diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 9a05ed6a3cb0..9c2edf68ce4b 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,13 +1 @@ -/ydb/core/fq/ @ydb-platform/fq -/ydb/core/public_http/ @ydb-platform/fq - -/ydb/docs/ @ydb-platform/docs - -/ydb/library/yql/ @ydb-platform/yql -/ydb/library/yql/providers/generic @ydb-platform/fq -/ydb/library/yql/providers/pq @ydb-platform/fq -/ydb/library/yql/providers/s3 @ydb-platform/fq -/ydb/library/yql/providers/solomon @ydb-platform/fq - -/ydb/services/fq/ @ydb-platform/fq - +* @ydb-platform/ReleaseApprovers diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index c3a56b3b95d0..85a05bbfa16d 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -11,6 +11,9 @@ inputs: required: false default: "" description: "extra compile flags will be added to the end of C_FLAGS and CXX_FLAGS" + ninja_target: + required: false + type: string runs: using: "composite" @@ -59,7 +62,7 @@ runs: export CCACHE_SLOPPINESS=locale export CCACHE_MAXSIZE=50G cd ../build - ninja + ninja ${{ inputs.ninja_target }} ccache -s df -h - name: report Build failed diff --git a/.github/actions/build_and_test_ya/action.yml b/.github/actions/build_and_test_ya/action.yml new file mode 100644 index 000000000000..c8acc5d5f2cb --- /dev/null +++ b/.github/actions/build_and_test_ya/action.yml @@ -0,0 +1,138 @@ +name: Ya-Build-and-Test +inputs: + build_target: + type: string + default: "ydb/" + description: "limit build and test to specific target" + build_preset: + type: string + run_build: + type: boolean + default: true + description: "run build" + run_tests: + type: boolean + default: true + description: "run tests" + run_tests_if_build_fails: + default: "true" + description: "run tests if build fails" + test_threads: + type: string + default: 28 + description: "Test threads count" + link_threads: + type: string + default: 8 + description: "link threads count" + test_size: + type: string + default: "small,medium,large" + test_type: + type: string + default: "unittest,py3test,py2test,pytest" + increment: + type: boolean + required: true + description: If true, compares build graphs between the current and previous commits to find a list of test suites to run. Otherwise, runs all tests. + folder_prefix: + type: string + default: "ya-" + put_build_results_to_cache: + type: boolean + default: true + secs: + type: string + default: "" + vars: + type: string + default: "" +defaults: + run: + shell: bash +runs: + using: "composite" + steps: + - name: comment-build-start + if: github.event_name == 'pull_request' || github.event_name == 'pull_request_target' + shell: bash + env: + BUILD_PRESET: ${{ inputs.build_preset }} + GITHUB_TOKEN: ${{ github.token }} + run: | + jobs_url="https://api.github.com/repos/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}/jobs" + # tricky: we are searching job with name that contains build_preset + check_url=$(curl -s $jobs_url | jq --arg n "$BUILD_PRESET" -r '.jobs[] | select(.name | contains($n)) | .html_url') + + echo "Pre-commit [check]($check_url) for $(git rev-parse HEAD) has started." | .github/scripts/tests/comment-pr.py --rewrite + + - name: Prepare s3cmd + uses: ./.github/actions/s3cmd + with: + s3_bucket: ${{ fromJSON( inputs.vars ).AWS_BUCKET }} + s3_endpoint: ${{ fromJSON( inputs.vars ).AWS_ENDPOINT }} + s3_key_id: ${{ fromJSON( inputs.secs ).AWS_KEY_ID }} + s3_key_secret: ${{ fromJSON( inputs.secs ).AWS_KEY_VALUE }} + folder_prefix: ya- + build_preset: ${{ inputs.build_preset }} + + - name: Build + uses: ./.github/actions/build_ya + id: build + if: ${{ inputs.run_build == 'true' }} + with: + build_target: ${{ inputs.build_target }} + build_preset: ${{ inputs.build_preset }} + bazel_remote_uri: ${{ fromJSON( inputs.vars ).REMOTE_CACHE_URL || '' }} + bazel_remote_username: ${{ inputs.put_build_results_to_cache && fromJSON( inputs.secs ).REMOTE_CACHE_USERNAME || '' }} + bazel_remote_password: ${{ inputs.put_build_results_to_cache && fromJSON( inputs.secs ).REMOTE_CACHE_PASSWORD || '' }} + link_threads: ${{ inputs.link_threads }} + + - name: Generate ya.make with affected test suites list + if: inputs.run_tests == 'true' && inputs.increment == 'true' + uses: ./.github/actions/graph_compare + + - name: Check if there's a list of tests to run + id: test_run_choice + shell: bash + run: | + if [ -f ya.make ];then + echo "target='.'" >> $GITHUB_OUTPUT + echo "Listed test targets: " + cat ya.make + else + echo "target=${{ inputs.build_target }}" >> $GITHUB_OUTPUT + fi + + - name: Run tests + uses: ./.github/actions/test_ya + if: ${{ inputs.run_tests == 'true' && (steps.build.outputs.success == 'true' || inputs.run_tests_if_build_fails == 'true') }} + with: + build_target: ${{ steps.test_run_choice.outputs.target }} + build_preset: ${{ inputs.build_preset }} + test_size: ${{ inputs.test_size }} + testman_token: ${{ fromJSON( inputs.secs ).TESTMO_TOKEN }} + testman_url: ${{ fromJSON( inputs.vars ).TESTMO_URL }} + testman_project_id: ${{ fromJSON( inputs.vars ).TESTMO_PROJECT_ID }} + link_threads: ${{ inputs.link_threads }} + test_threads: ${{ inputs.test_threads }} + + - name: Notify about failed build + if: ${{ steps.build.outputs.success != 'true' && inputs.run_tests == 'true' && inputs.run_tests_if_build_fails == 'false' }} + shell: bash + run: | + echo 'Build failed. See the [build log](${{ steps.build.outputs.log_url }}).' >> $GITHUB_STEP_SUMMARY + + if [[ "$GITHUB_EVENT_NAME" =~ ^pull_request ]]; then + echo "Tests run skipped." | .github/scripts/tests/comment-pr.py --fail + fi + + exit 1 + + - name: comment-if-cancel + shell: bash + if: cancelled() && (github.event_name == 'pull_request' || github.event_name == 'pull_request_target') + env: + BUILD_PRESET: ${{ inputs.build_preset }} + GITHUB_TOKEN: ${{ github.token }} + run: echo "Check cancelled" | .github/scripts/tests/comment-pr.py --color black diff --git a/.github/actions/build_ya/action.yml b/.github/actions/build_ya/action.yml index 281701e7aeea..df56694d0ee0 100644 --- a/.github/actions/build_ya/action.yml +++ b/.github/actions/build_ya/action.yml @@ -7,7 +7,7 @@ inputs: build_preset: required: true default: "relwithdebinfo" - description: "relwithdebinfo, release-asan, release-tsan" + description: "debug, relwithdebinfo, release-asan, release-tsan, release, release-cmake14" bazel_remote_uri: required: false description: "bazel-remote endpoint" @@ -21,7 +21,13 @@ inputs: required: false default: "8" description: "link threads count" - +outputs: + success: + value: ${{ steps.build.outputs.status }} + description: "build success" + log_url: + value: ${{ steps.init.outputs.log_url }} + description: "build log url" runs: using: "composite" steps: @@ -34,10 +40,15 @@ runs: echo "SHELLOPTS=xtrace" >> $GITHUB_ENV export TMP_DIR=$(pwd)/tmp_build echo "TMP_DIR=$TMP_DIR" >> $GITHUB_ENV + + export log_url="$S3_URL_PREFIX/build_logs/ya_make.log" + rm -rf $TMP_DIR && mkdir $TMP_DIR echo "BUILD_PRESET=$build_preset" >> $GITHUB_ENV echo "GITHUB_TOKEN=${{ github.token }}" >> $GITHUB_ENV + echo "LOG_URL=$log_url" >> $GITHUB_ENV + echo "log_url=$log_url" >> $GITHUB_OUTPUT - name: build id: build @@ -67,6 +78,14 @@ runs: relwithdebinfo) build_type=relwithdebinfo ;; + release) + build_type=release + ;; + release-clang14) + build_type=release + extra_params+=(--target-platform="CLANG14-LINUX-X86_64") + extra_params+=(-DLLD_VERSION=16) + ;; release-asan) build_type=release extra_params+=(--sanitize="address") @@ -99,7 +118,7 @@ runs: ./ya make -k --build "${build_type}" --force-build-depends -D'BUILD_LANGUAGES=CPP PY3 PY2 GO' -T --stat -DCONSISTENT_DEBUG \ --log-file "$TMP_DIR/ya_log.txt" --evlog-file "$TMP_DIR/ya_evlog.jsonl" \ --cache-size 512G --link-threads "${{ inputs.link_threads }}" \ - "${extra_params[@]}" |& tee $TMP_DIR/ya_make.log || ( + "${extra_params[@]}" |& tee $TMP_DIR/ya_make.log && echo "status=true" >> $GITHUB_OUTPUT || ( RC=$? echo "::debug::ya make RC=$RC" echo "status=failed" >> $GITHUB_OUTPUT @@ -118,10 +137,8 @@ runs: if: github.event_name == 'pull_request' || github.event_name == 'pull_request_target' shell: bash run: | - log_url="$S3_URL_PREFIX/build_logs/ya_make.log" - if [ "${{ steps.build.outputs.status }}" == "failed" ]; then - echo "Build failed. see the [build logs]($log_url)." | .github/scripts/tests/comment-pr.py --fail + echo "Build failed. see the [build logs]($LOG_URL)." | .github/scripts/tests/comment-pr.py --fail else echo "Build successful." | .github/scripts/tests/comment-pr.py --ok fi diff --git a/.github/actions/graph_compare/action.yml b/.github/actions/graph_compare/action.yml new file mode 100644 index 000000000000..388cb6d154a7 --- /dev/null +++ b/.github/actions/graph_compare/action.yml @@ -0,0 +1,18 @@ +name: graph_compare +description: Compare graphs between current and previous commits (merge commit base in case of a merge commit), and list affected tests in ya.make +runs: + using: "composite" + steps: + - name: original_ref + id: oref + shell: bash + run: | + echo "value=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT + - name: generate_ya_make + shell: bash + run: | + ./.github/scripts/graph_compare.sh ${{ steps.oref.outputs.value }}~1 ${{ steps.oref.outputs.value }} + - name: restore_ref + shell: bash + run: | + git checkout ${{ steps.oref.outputs.value }} diff --git a/.github/actions/s3cmd/action.yml b/.github/actions/s3cmd/action.yml index a503423ac6d5..a4ebb583555e 100644 --- a/.github/actions/s3cmd/action.yml +++ b/.github/actions/s3cmd/action.yml @@ -54,9 +54,10 @@ runs: exit 1 ;; esac - echo "S3_BUCKET_PATH=s3://${{ inputs.s3_bucket }}/${{ github.repository }}/${{github.workflow}}/${{ github.run_id }}/${{ inputs.folder_prefix }}${folder}" >> $GITHUB_ENV echo "S3_URL_PREFIX=${{ inputs.s3_endpoint }}/${{ inputs.s3_bucket }}/${{ github.repository }}/${{ github.workflow }}/${{ github.run_id }}/${{ inputs.folder_prefix }}${folder}" >> $GITHUB_ENV + echo "S3_TEST_ARTIFACTS_BUCKET_PATH=s3://${{ inputs.s3_bucket }}/testing_out_stuff/${{ github.repository }}/${{github.workflow}}/${{ github.run_id }}/${{ inputs.folder_prefix }}${folder}" >> $GITHUB_ENV + echo "S3_TEST_ARTIFACTS_URL_PREFIX=${{ inputs.s3_endpoint }}/${{ inputs.s3_bucket }}/testing_out_stuff/${{ github.repository }}/${{ github.workflow }}/${{ github.run_id }}/${{ inputs.folder_prefix }}${folder}" >> $GITHUB_ENV env: s3_key_id: ${{ inputs.s3_key_id }} s3_secret_access_key: ${{ inputs.s3_key_secret }} diff --git a/.github/actions/test_ya/action.yml b/.github/actions/test_ya/action.yml index 46fa5370409d..06c1e1e208a5 100644 --- a/.github/actions/test_ya/action.yml +++ b/.github/actions/test_ya/action.yml @@ -1,34 +1,24 @@ name: Run tests (ya make) -description: Run tests using ya make +description: Run test targets listed in repository root ya.make (to be created previously) inputs: build_target: - required: false - description: "build target" - + required: true build_preset: required: true default: "relwithdebinfo" description: "relwithdebinfo, release-asan, release-tsan" - test_size: required: false default: "small,medium,large" description: "small or small-medium or all" - - test_type: - required: false - default: "unittest,py3test,py2test,pytest" - description: "run " - test_threads: required: false - default: "28" + default: "56" description: "Test threads count" link_threads: required: false - default: "8" + default: "12" description: "link threads count" - testman_token: required: false description: "test manager auth token" @@ -38,15 +28,6 @@ inputs: testman_project_id: required: false description: "test manager project id" - bazel_remote_uri: - required: false - description: "bazel-remote endpoint" - bazel_remote_username: - required: false - description: "bazel-remote username" - bazel_remote_password: - required: false - description: "bazel-remote password" runs: using: "composite" steps: @@ -60,6 +41,7 @@ runs: echo "LOG_DIR=$TMP_DIR/logs" >> $GITHUB_ENV echo "OUT_DIR=$TMP_DIR/out" >> $GITHUB_ENV echo "ARTIFACTS_DIR=$TMP_DIR/artifacts" >> $GITHUB_ENV + echo "TEST_ARTIFACTS_DIR=$TMP_DIR/test_artifacts" >> $GITHUB_ENV echo "REPORTS_ARTIFACTS_DIR=$TMP_DIR/artifacts/test_reports" >> $GITHUB_ENV echo "JUNIT_REPORT_XML=$TMP_DIR/junit.xml" >> $GITHUB_ENV echo "JUNIT_REPORT_PARTS=$TMP_DIR/junit-split" >> $GITHUB_ENV @@ -73,7 +55,7 @@ runs: shell: bash run: | rm -rf $TMP_DIR $JUNIT_REPORT_XML $JUNIT_REPORT_PARTS $REPORTS_ARTIFACTS_DIR - mkdir -p $TMP_DIR $OUT_DIR $ARTIFACTS_DIR $LOG_DIR $JUNIT_REPORT_PARTS $REPORTS_ARTIFACTS_DIR + mkdir -p $TMP_DIR $OUT_DIR $ARTIFACTS_DIR $TEST_ARTIFACTS_DIR $LOG_DIR $JUNIT_REPORT_PARTS $REPORTS_ARTIFACTS_DIR - name: Install Node required for Testmo CLI uses: actions/setup-node@v3 @@ -160,13 +142,12 @@ runs: shell: bash run: | readarray -d ',' -t test_size < <(printf "%s" "${{ inputs.test_size }}") - readarray -d ',' -t test_type < <(printf "%s" "${{ inputs.test_type }}") params=( - -T -k -D'BUILD_LANGUAGES=CPP PY3 PY2 GO' - ${test_size[@]/#/--test-size=} ${test_type[@]/#/--test-type=} + -T -k + ${test_size[@]/#/--test-size=} --cache-size 512G --do-not-output-stderrs - --stat --canonization-backend=ydb-canondata.storage.yandexcloud.net + --stat --test-threads "${{ inputs.test_threads }}" --link-threads "${{ inputs.link_threads }}" ) @@ -202,36 +183,14 @@ runs: ;; esac - if [ ! -z "${{ inputs.build_target }}" ]; then - params+=(--target="${{ inputs.build_target }}") - fi - - if [ ! -z "${{ inputs.bazel_remote_uri }}" ]; then - params+=(--bazel-remote-store) - params+=(--bazel-remote-base-uri "${{ inputs.bazel_remote_uri }}") - fi - echo "::debug::get version" ./ya --version echo "Tests are running..." | .github/scripts/tests/comment-pr.py - - if [ ! -z "${{ inputs.bazel_remote_username }}" ]; then - echo "::debug::start tests" - ./ya test "${params[@]}" \ - --bazel-remote-put --bazel-remote-username "${{ inputs.bazel_remote_username }}" --bazel-remote-password "${{ inputs.bazel_remote_password }}" -DCONSISTENT_DEBUG \ - --log-file "$LOG_DIR/ya_log_prewarm.txt" --evlog-file "$LOG_DIR/ya_evlog_prewarm.jsonl" \ - --dist-cache-evict-bins --cache-tests --no-dir-outputs --test-node-output-limit 100000 --drop-graph-result-before-tests || ( - RC=$? - echo "::debug::ya test RC=$RC" - ) - fi - - echo "::debug::save tests reports" - ./ya test "${params[@]}" \ + ./ya test ${{ inputs.build_target }} "${params[@]}" \ --stat --log-file "$LOG_DIR/ya_log.txt" --evlog-file "$LOG_DIR/ya_evlog.jsonl" -DCONSISTENT_DEBUG \ - --cache-tests --dist-cache-evict-bins --no-dir-outputs --test-node-output-limit 100000 --drop-graph-result-before-tests \ + --no-dir-outputs \ --junit "$JUNIT_REPORT_XML" --output "$OUT_DIR" || ( RC=$? if [ $RC -ne 0 ]; then @@ -260,6 +219,8 @@ runs: --ya-out "$OUT_DIR" \ --log-url-prefix "$S3_URL_PREFIX/logs/" \ --log-out-dir "$ARTIFACTS_DIR/logs/" \ + --test-stuff-out "$TEST_ARTIFACTS_DIR/" \ + --test-stuff-prefix "$S3_TEST_ARTIFACTS_URL_PREFIX/" \ "$JUNIT_REPORT_XML" .github/scripts/tests/split-junit.py -o "$JUNIT_REPORT_PARTS" "$JUNIT_REPORT_XML" @@ -321,6 +282,7 @@ runs: run: | echo "::group::s3-sync" s3cmd sync -r --follow-symlinks --acl-public --no-progress --stats --no-check-md5 "$ARTIFACTS_DIR/" "$S3_BUCKET_PATH/" + s3cmd sync -r --follow-symlinks --acl-public --no-progress --stats --no-check-md5 "$TEST_ARTIFACTS_DIR/" "$S3_TEST_ARTIFACTS_BUCKET_PATH/" echo "::endgroup::" - name: sync logs results to s3 diff --git a/.github/config/muted_test.txt b/.github/config/muted_test.txt index 5d653c79c40c..571b4754e87a 100644 --- a/.github/config/muted_test.txt +++ b/.github/config/muted_test.txt @@ -3,8 +3,6 @@ ydb-core-blobstorage-ut_blobstorage/SpaceCheckForDiskReassign::* ydb-services-ydb-sdk_sessions_pool_ut/YdbSdkSessionsPool::StressTestSync10 ydb-tests-functional-kqp-kqp_query_session/KqpQuerySession::NoLocalAttach ydb-core-blobstorage-ut_blobstorage/VDiskAssimilation::Test -ydb-core-tx-columnshard-ut_schema/TColumnShardTestSchema::ForgetAfterFail -ydb-core-tx-columnshard-ut_schema/TColumnShardTestSchema::RebootForgetAfterFail ydb-library-yql-sql-pg-ut/PgSqlParsingAutoparam::AutoParamValues_DifferentTypes ydb-core-blobstorage-ut_blobstorage/[6/10]* ydb/core/blobstorage/ut_blobstorage/Defragmentation::DoesItWork diff --git a/.github/config/muted_ya.txt b/.github/config/muted_ya.txt index 0ab48b1f2287..1e7f35682e24 100644 --- a/.github/config/muted_ya.txt +++ b/.github/config/muted_ya.txt @@ -2,7 +2,7 @@ ydb/core/blobstorage/dsproxy/ut TBlobStorageProxySequenceTest.TestBlock42PutWith ydb/core/blobstorage/dsproxy/ut_fat TBlobStorageProxyTest.TestBatchedPutRequestDoesNotContainAHugeBlob ydb/core/blobstorage/pdisk/ut TSectorMap.* ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk ReadOnlyVDisk.TestStorageLoad -ydb/core/blobstorage/ut_blobstorage CostMetricsGetBlock4Plus2.TestGet4Plus2BlockRequests10000Inflight1BlobSize1000 +ydb/core/blobstorage/ut_blobstorage CostMetrics* ydb/core/blobstorage/ut_blobstorage Defragmentation.DoesItWork ydb/core/blobstorage/ut_blobstorage SpaceCheckForDiskReassign.* ydb/core/blobstorage/ut_blobstorage ScrubFast.SingleBlob @@ -13,16 +13,19 @@ ydb/core/client/ut TClientTest.PromoteFollower ydb/core/client/ut TClientTest.ReadFromFollower ydb/core/client/ut TFlatTest.AutoSplitMergeQueue ydb/core/cms/ut_sentinel TSentinelTests.BSControllerCantChangeStatus -ydb/core/persqueue/ut [31/40]* -ydb/core/persqueue/ut TopicSplitMerge.PartitionSplit -ydb/core/persqueue/ut TPersQueueMirrorer.TestBasicRemote -ydb/core/persqueue/ut TPQTest.TestDirectReadHappyWay +ydb/core/debug_tools/ut OperationLog.ConcurrentWrites ydb/core/quoter/ut QuoterWithKesusTest.PrefetchCoefficient ydb/core/kafka_proxy/ut KafkaProtocol.CreatePartitionsScenario ydb/core/kafka_proxy/ut KafkaProtocol.ProduceScenario ydb/core/kqp/provider/ut KikimrIcGateway.TestLoadBasicSecretValueFromExternalDataSourceMetadata ydb/core/kqp/ut/federated_query/generic * -ydb/core/kqp/ut/olap * +ydb/core/kqp/ut/olap KqpOlapAggregations.Json_Exists +ydb/core/kqp/ut/olap KqpOlapIndexes.Indexes +ydb/core/kqp/ut/olap KqpOlapIndexes.IndexesActualization +ydb/core/kqp/ut/olap KqpOlapBlobsSharing.* +ydb/core/kqp/ut/olap KqpOlap.ScanQueryOltpAndOlap +ydb/core/kqp/ut/olap KqpOlapStatistics.StatsUsageWithTTL +ydb/core/kqp/ut/olap KqpOlap.YqlScriptOltpAndOlap ydb/core/kqp/ut/pg KqpPg.CreateIndex ydb/core/kqp/ut/query KqpLimits.QueryReplySize ydb/core/kqp/ut/query KqpQuery.QueryTimeout @@ -35,9 +38,6 @@ ydb/core/kqp/ut/service KqpQueryService.QueryOnClosedSession ydb/core/kqp/ut/service KqpQueryServiceScripts.ForgetScriptExecutionRace ydb/core/kqp/ut/service KqpService.CloseSessionsWithLoad ydb/core/kqp/ut/service [38/50]* -ydb/core/tx/columnshard/ut_schema TColumnShardTestSchema.ForgetAfterFail -ydb/core/tx/columnshard/ut_schema TColumnShardTestSchema.RebootForgetAfterFail -ydb/core/tx/columnshard/engines/ut * ydb/core/tx/coordinator/ut Coordinator.RestoreTenantConfiguration ydb/core/tx/datashard/ut_change_exchange Cdc.InitialScanDebezium ydb/core/tx/replication/ydb_proxy/ut YdbProxyTests.ReadTopic @@ -54,7 +54,6 @@ ydb/library/yql/providers/generic/connector/tests sole* ydb/library/yql/providers/generic/connector/tests test.py.* ydb/library/yql/sql/pg/ut PgSqlParsingAutoparam.AutoParamValues_DifferentTypes ydb/library/yql/tests/sql/dq_file/part* * -ydb/public/sdk/cpp/client/ydb_federated_topic/ut BasicUsage.SimpleHandlers ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut RetryPolicy.RetryWithBatching ydb/public/sdk/cpp/client/ydb_topic/ut BasicUsage.WriteRead ydb/services/datastreams/ut DataStreams.TestPutRecordsWithRead @@ -66,7 +65,6 @@ ydb/services/persqueue_v1/ut TPersQueueTest.CheckACLForGrpcWrite ydb/services/persqueue_v1/ut TPersQueueTest.DirectRead* ydb/services/persqueue_v1/ut TPersQueueTest.SetupLockSession ydb/services/persqueue_v1/ut TPersQueueTest.TopicServiceCommitOffsetBadOffsets -ydb/services/persqueue_v1/ut TPersQueueTest.UpdatePartitionLocation ydb/services/persqueue_v1/ut TPQCompatTest.BadTopics ydb/services/persqueue_v1/ut [3/10]* ydb/services/ydb/sdk_sessions_pool_ut YdbSdkSessionsPool.StressTestSync* diff --git a/.github/scripts/graph_compare.sh b/.github/scripts/graph_compare.sh new file mode 100755 index 000000000000..89ebd65fd567 --- /dev/null +++ b/.github/scripts/graph_compare.sh @@ -0,0 +1,40 @@ + +# Compares build graphs for two given refs in the current directory git repo +# Creates ya.make in the current directory listing affected ydb test suites +# Parameters: base_commit_sha head_commit_sha + +set -e + +workdir=$(mktemp -d) +echo Workdir: $workdir +echo Checkout base commit... +git checkout $1 +echo Build graph for base commit... +./ya make -Gj0 -ttt ydb --build release -k --cache-tests | jq '.graph[] | select( ."node-type"=="test")' > $workdir/graph_base + +echo Checkout head commit... +git checkout $2 +echo Build graph for head commit... +./ya make -Gj0 -ttt ydb --build release -k --cache-tests | jq '.graph[] | select( ."node-type"=="test")' > $workdir/graph_head + +echo Generate lists of uids for base and head... +cat $workdir/graph_base | jq '.uid' > $workdir/uid_base +cat $workdir/graph_head | jq '.uid' > $workdir/uid_head + +echo Create a list of changed uids in the head graph... +(cat $workdir/uid_head;(cat $workdir/uid_base;cat $workdir/uid_head) | sort | uniq -u) | sort | uniq -d > $workdir/uids_new + +echo Generate list of test shard names from the head graph based on the list of uids... +cat $workdir/graph_head | jq -r --slurpfile uids $workdir/uids_new 'select( any( .uid; .==$uids[] )) | .kv.path' | sort | uniq > $workdir/testsuites + +echo Number of test suites: +cat $workdir/testsuites | wc -l + +echo Removing test suite name from the list to get target names... +sed -E 's/\/[^/]*$//g;/^null$/d' $workdir/testsuites > $workdir/ts2 + +echo Generating temp ya.make with recurses to all required tests... +cat $workdir/ts2 | (echo 'RECURSE_FOR_TESTS(';cat;echo ')') > ya.make + +# echo Running ya test... +# ./ya make -A -R --build relwithdebinfo . \ No newline at end of file diff --git a/.github/scripts/tests/transform-ya-junit.py b/.github/scripts/tests/transform-ya-junit.py index ef479fe66e19..f75b0712d1c5 100755 --- a/.github/scripts/tests/transform-ya-junit.py +++ b/.github/scripts/tests/transform-ya-junit.py @@ -5,6 +5,7 @@ import os import sys import urllib.parse +import zipfile from xml.etree import ElementTree as ET from mute_utils import mute_target, pattern_to_re from junit_utils import add_junit_link_property, is_faulty_testcase @@ -53,6 +54,10 @@ class YTestReportTrace: def __init__(self, out_root): self.out_root = out_root self.traces = {} + self.logs_dir = None + + def abs_path(self, path): + return path.replace("$(BUILD_ROOT)", self.out_root) def load(self, subdir): test_results_dir = os.path.join(self.out_root, f"{subdir}/test-results/") @@ -61,6 +66,7 @@ def load(self, subdir): log_print(f"Directory {test_results_dir} doesn't exist") return + # find the test result for folder in os.listdir(test_results_dir): fn = os.path.join(self.out_root, test_results_dir, folder, "ytest.report.trace") @@ -76,6 +82,9 @@ def load(self, subdir): subtest = event["subtest"] cls = cls.replace("::", ".") self.traces[(cls, subtest)] = event + logs_dir = self.abs_path(event['logs']['logsdir']) + self.logs_dir = logs_dir + break def has(self, cls, name): return (cls, name) in self.traces @@ -93,7 +102,7 @@ def get_logs(self, cls, name): if k == "logsdir": continue - result[k] = path.replace("$(BUILD_ROOT)", self.out_root) + result[k] = self.abs_path(path) return result @@ -135,7 +144,26 @@ def save_log(build_root, fn, out_dir, log_url_prefix, trunc_size): return f"{log_url_prefix}{quoted_fpath}" -def transform(fp, mute_check: YaMuteCheck, ya_out_dir, save_inplace, log_url_prefix, log_out_dir, log_trunc_size): +def save_zip(suite_name, out_dir, url_prefix, logs_dir): + arc_name = f"{suite_name.replace('/', '-')}.zip" + + arc_fn = os.path.join(out_dir, arc_name) + + zf = zipfile.ZipFile(arc_fn, mode="w", compression=zipfile.ZIP_DEFLATED, compresslevel=9) + + log_print(f"put {logs_dir} into {arc_name}") + for root, dirs, files in os.walk(logs_dir): + for f in files: + filename = os.path.join(root, f) + zf.write(filename, os.path.relpath(filename, logs_dir)) + zf.close() + + quoted_fpath = urllib.parse.quote(arc_name) + return f"{url_prefix}{quoted_fpath}" + + +def transform(fp, mute_check: YaMuteCheck, ya_out_dir, save_inplace, log_url_prefix, log_out_dir, log_trunc_size, + test_stuff_out, test_stuff_prefix): tree = ET.parse(fp) root = tree.getroot() @@ -144,11 +172,14 @@ def transform(fp, mute_check: YaMuteCheck, ya_out_dir, save_inplace, log_url_pre traces = YTestReportTrace(ya_out_dir) traces.load(suite_name) + has_fail_tests = False + for case in suite.findall("testcase"): test_name = case.get("name") case.set("classname", suite_name) is_fail = is_faulty_testcase(case) + has_fail_tests |= is_fail if mute_check(suite_name, test_name): log_print("mute", suite_name, test_name) @@ -164,6 +195,16 @@ def transform(fp, mute_check: YaMuteCheck, ya_out_dir, save_inplace, log_url_pre url = save_log(ya_out_dir, fn, log_out_dir, log_url_prefix, log_trunc_size) add_junit_link_property(case, name, url) + if has_fail_tests: + if not traces.logs_dir: + log_print(f"no logsdir for {suite_name}") + continue + + url = save_zip(suite_name, test_stuff_out, test_stuff_prefix, traces.logs_dir) + + for case in suite.findall("testcase"): + add_junit_link_property(case, 'logsdir', url) + if save_inplace: tree.write(fp.name) else: @@ -187,6 +228,8 @@ def main(): help="truncate log after specific size, 0 disables truncation", ) parser.add_argument("--ya-out", help="ya make output dir (for searching logs and artifacts)") + parser.add_argument('--test-stuff-out', help='output folder for archive testing_out_stuff') + parser.add_argument('--test-stuff-prefix', help='url prefix for testing_out_stuff') parser.add_argument("in_file", type=argparse.FileType("r")) args = parser.parse_args() @@ -204,6 +247,8 @@ def main(): args.log_url_prefix, args.log_out_dir, args.log_trunc_size, + args.test_stuff_out, + args.test_stuff_prefix, ) diff --git a/.github/workflows/build_and_test_provisioned.yml b/.github/workflows/build_and_test_provisioned.yml index 371fb7cc9694..d610b9d0a7e9 100644 --- a/.github/workflows/build_and_test_provisioned.yml +++ b/.github/workflows/build_and_test_provisioned.yml @@ -24,6 +24,12 @@ on: extra_compile_flags: required: false type: string + checkout_ref: + required: false + type: string + ninja_target: + required: false + type: string workflow_dispatch: inputs: runner_label: @@ -47,6 +53,12 @@ on: extra_compile_flags: required: false type: string + checkout_ref: + required: false + type: string + ninja_target: + required: false + type: string jobs: main: @@ -56,7 +68,7 @@ jobs: - name: Checkout uses: actions/checkout@v3 with: - ref: cmakebuild + ref: ${{ inputs.checkout_ref }} - name: Build uses: ./.github/actions/build if: inputs.run_build @@ -64,6 +76,7 @@ jobs: sanitizer: ${{ inputs.sanitizer }} ccache_remote_path: ${{ vars.REMOTE_CACHE_URL && format('http://{0}{1}', secrets.REMOTE_CACHE_AUTH, vars.REMOTE_CACHE_URL) || ''}} extra_compile_flags: ${{ inputs.extra_compile_flags }} + ninja_target: ${{ inputs.ninja_target }} - name: Run tests uses: ./.github/actions/test with: diff --git a/.github/workflows/build_and_test_ya.yml b/.github/workflows/build_and_test_ya.yml index 376a66e4959c..4226de9e35f8 100644 --- a/.github/workflows/build_and_test_ya.yml +++ b/.github/workflows/build_and_test_ya.yml @@ -27,11 +27,11 @@ on: description: "run tests" test_threads: type: string - default: 28 + default: 56 description: "Test threads count" link_threads: type: string - default: 8 + default: 12 description: "link threads count" test_size: type: string @@ -65,60 +65,18 @@ jobs: with: ref: ${{ inputs.commit_sha }} - - name: comment-build-start - if: github.event_name == 'pull_request' || github.event_name == 'pull_request_target' - shell: bash - env: - BUILD_PRESET: ${{ inputs.build_preset }} - GITHUB_TOKEN: ${{ github.token }} - run: | - jobs_url="https://api.github.com/repos/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}/jobs" - # tricky: we are searching job with name that contains build_preset - check_url=$(curl -s $jobs_url | jq --arg n "$BUILD_PRESET" -r '.jobs[] | select(.name | contains($n)) | .html_url') - - echo "Pre-commit [check]($check_url) for ${{ inputs.commit_sha }} has started." | .github/scripts/tests/comment-pr.py --rewrite - - - name: Prepare s3cmd - uses: ./.github/actions/s3cmd + - name: Build and test + uses: ./.github/actions/build_and_test_ya with: - s3_bucket: ${{ vars.AWS_BUCKET }} - s3_endpoint: ${{ vars.AWS_ENDPOINT }} - s3_key_id: ${{ secrets.AWS_KEY_ID }} - s3_key_secret: ${{ secrets.AWS_KEY_VALUE }} - folder_prefix: ya- build_preset: ${{ inputs.build_preset }} - - - name: Build - uses: ./.github/actions/build_ya - if: inputs.run_build - with: build_target: ${{ inputs.build_target }} - build_preset: ${{ inputs.build_preset }} - bazel_remote_uri: ${{ vars.REMOTE_CACHE_URL_YA || '' }} - bazel_remote_username: ${{ inputs.put_build_results_to_cache && secrets.REMOTE_CACHE_USERNAME || '' }} - bazel_remote_password: ${{ inputs.put_build_results_to_cache && secrets.REMOTE_CACHE_PASSWORD || '' }} - link_threads: ${{ inputs.link_threads }} - - - name: Run tests - uses: ./.github/actions/test_ya - if: inputs.run_tests - with: - build_target: ${{ inputs.build_target }} - build_preset: ${{ inputs.build_preset }} + increment: false + run_tests: ${{ inputs.run_tests }} test_size: ${{ inputs.test_size }} test_type: ${{ inputs.test_type }} - testman_token: ${{ secrets.TESTMO_TOKEN }} - testman_url: ${{ vars.TESTMO_URL }} - testman_project_id: ${{ vars.TESTMO_PROJECT_ID }} - bazel_remote_uri: ${{ vars.REMOTE_CACHE_URL_YA || '' }} - bazel_remote_username: ${{ inputs.put_build_results_to_cache && secrets.REMOTE_CACHE_USERNAME || '' }} - bazel_remote_password: ${{ inputs.put_build_results_to_cache && secrets.REMOTE_CACHE_PASSWORD || '' }} - link_threads: ${{ inputs.link_threads }} test_threads: ${{ inputs.test_threads }} - - - name: comment-if-cancel - if: cancelled() && (github.event_name == 'pull_request' || github.event_name == 'pull_request_target') - env: - BUILD_PRESET: ${{ inputs.build_preset }} - GITHUB_TOKEN: ${{ github.token }} - run: echo "Check cancelled" | .github/scripts/tests/comment-pr.py --color black + put_build_results_to_cache: ${{ inputs.put_build_results_to_cache }} + secs: ${{ format('{{"TESTMO_TOKEN":"{0}","AWS_KEY_ID":"{1}","AWS_KEY_VALUE":"{2}","REMOTE_CACHE_USERNAME":"{3}","REMOTE_CACHE_PASSWORD":"{4}"}}', + secrets.TESTMO_TOKEN, secrets.AWS_KEY_ID, secrets.AWS_KEY_VALUE, secrets.REMOTE_CACHE_USERNAME, secrets.REMOTE_CACHE_PASSWORD ) }} + vars: ${{ format('{{"AWS_BUCKET":"{0}","AWS_ENDPOINT":"{1}","REMOTE_CACHE_URL":"{2}","TESTMO_URL":"{3}","TESTMO_PROJECT_ID":"{4}"}}', + vars.AWS_BUCKET, vars.AWS_ENDPOINT, vars.REMOTE_CACHE_URL_YA, vars.TESTMO_URL, vars.TESTMO_PROJECT_ID ) }} diff --git a/.github/workflows/build_and_test_ya_provisioned.yml b/.github/workflows/build_and_test_ya_provisioned.yml index bbab9cf9b857..fe00ce167200 100644 --- a/.github/workflows/build_and_test_ya_provisioned.yml +++ b/.github/workflows/build_and_test_ya_provisioned.yml @@ -13,10 +13,12 @@ on: description: "Build preset" options: - debug + - release - relwithdebinfo - release-asan - release-tsan - release-msan + - release-cmake14 test_size: type: choice default: "small,medium,large" @@ -43,11 +45,11 @@ on: description: "run tests" test_threads: type: string - default: "28" + default: "56" description: "Test threads count" link_threads: type: string - default: "8" + default: "12" description: "link threads count" runner_label: type: string @@ -78,11 +80,11 @@ on: default: true test_threads: type: string - default: 28 + default: 56 description: "Test threads count" link_threads: type: string - default: 8 + default: 12 description: "link threads count" runner_label: type: string @@ -99,8 +101,7 @@ jobs: with: # FIXME: always use auto-provisioned here? runner_label: ${{ inputs.runner_label }} - # naive check for -asan, -tsan, -msan - runner_additional_label: ${{ contains(inputs.build_preset, '-') && format('build-preset-{0}', inputs.build_preset) || '' }} + runner_additional_label: ${{ format('build-preset-{0}', inputs.build_preset) }} build_target: ${{ inputs.build_target }} build_preset: ${{ inputs.build_preset }} run_build: ${{ inputs.run_build }} diff --git a/.github/workflows/embedded_ui_refresh.yaml b/.github/workflows/embedded_ui_refresh.yaml index d7cf2f073e42..b67bce4dc793 100644 --- a/.github/workflows/embedded_ui_refresh.yaml +++ b/.github/workflows/embedded_ui_refresh.yaml @@ -36,40 +36,42 @@ jobs: run: gh release download $TAG_NAME --repo $REPOSITORY --pattern $ASSET_NAME.zip --dir $TEMP_ASSET_DIR - name: Asset Placement env: + ASSET_DIR: monitoring START_POINTER: "# GENERATED MONITORING RESOURCES START" END_POINTER: "# GENERATED MONITORING RESOURCES END" - TARGET_DIR: ydb/core/viewer/monitoring - YA_MAKE_FILE: ydb/core/viewer/ya.make + WORKING_DIR: ydb/core/viewer run: | - unzip $TEMP_ASSET_DIR/$ASSET_NAME.zip -d $TEMP_ASSET_DIR - rm -rf $TARGET_DIR - mkdir $TARGET_DIR - mv -vf $TEMP_ASSET_DIR/$ASSET_NAME/* $TARGET_DIR + set -e + unzip $TEMP_ASSET_DIR/$ASSET_NAME.zip -d $TEMP_ASSET_DIR + + cd $WORKING_DIR + rm -rf $ASSET_DIR + mkdir $ASSET_DIR + mv -vf $TEMP_ASSET_DIR/$ASSET_NAME/* $ASSET_DIR + # List of files in the target directory. - NEW_RESOURCES=$(find $TARGET_DIR -type f | sort) - + NEW_RESOURCES=$(find $ASSET_DIR -type f | sort) + # Current indentation of the start pointer line. - INDENTATION=$(grep -e "$START_POINTER" $YA_MAKE_FILE | perl -lane 's/^(\s+)(.*)+$/$1/e; print') - + INDENTATION=$(grep -e "$START_POINTER" ya.make | perl -lane 's/^(\s+)(.*)+$/$1/e; print') + # Replacing resources list between start and end pointers with saving the current indentation. perl -0777 -pi -e "s/\s+$START_POINTER.*$END_POINTER/ $INDENTATION$START_POINTER ${INDENTATION}RESOURCE( $(echo "$NEW_RESOURCES" | perl -e "while (<>) {chomp; print \"$INDENTATION \$_ \$_\\n\";}" | sed -E 's/\//\\\//g') $INDENTATION) - $INDENTATION$END_POINTER/s" $YA_MAKE_FILE + $INDENTATION$END_POINTER/s" ya.make - name: Pull Request uses: peter-evans/create-pull-request@v5 with: - token: ${{ secrets.GITHUB_TOKEN }} + token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} commit-message: "build: refresh Embedded UI (${{ env.TAG_NAME }})" - branch: embedded-ui-refresh-${{ env.TAG_NAME }} + branch: embedded-ui-${{ env.TAG_NAME }} delete-branch: true title: "build: refresh Embedded UI (${{ env.TAG_NAME }})" body: | ### Embedded UI Refresh - Embedded UI - [${{ env.TAG_NAME }}](https://github.com/${{ env.REPOSITORY }}/releases/tag/${{ env.TAG_NAME }}) - ([CHANGELOG.md](https://github.com/${{ env.REPOSITORY }}/blob/${{ env.TAG_NAME }}/CHANGELOG.md)). + Embedded UI [${{ env.TAG_NAME }}](https://github.com/${{ env.REPOSITORY }}/releases/tag/${{ env.TAG_NAME }}) ([CHANGELOG.md](https://github.com/${{ env.REPOSITORY }}/blob/${{ env.TAG_NAME }}/CHANGELOG.md)). diff --git a/.github/workflows/libs_create_pr.yml b/.github/workflows/libs_create_pr.yml new file mode 100644 index 000000000000..89d9f29b48cf --- /dev/null +++ b/.github/workflows/libs_create_pr.yml @@ -0,0 +1,61 @@ +name: Create PR to import libraries to main +on: + workflow_dispatch: +concurrency: + group: ${{ github.workflow }} + cancel-in-progress: true +env: + REPO: ${{ github.repository }} + TOKEN: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} +jobs: + sync: + runs-on: ubuntu-latest + steps: + - name: Get current date + id: date + run: echo "::set-output name=dtm::$(date +'%y%m%d-%H%M')" + - name: Sync + run: | + currsha=$(curl -s -H "Accept: application/vnd.github.VERSION.sha" https://api.github.com/repos/$REPO/commits/rightlib) + echo "Current rightlib sha: ${currsha}" + lastsha=$(curl -s https://raw.githubusercontent.com/$REPO/main/ydb/ci/rightlib.txt) + echo "Last imported rightlib sha: ${lastsha}" + if [ "${currsha}" == "${lastsha}" ];then + echo "No new commits on the rightlib branch to merge, exiting" + exit 0 + fi + echo "Git clone..." + git clone https://$TOKEN@github.com/$REPO.git ydb + git config --global user.email "alex@ydb.tech" + git config --global user.name "Alexander Smirnov" + cd ydb + # git fetch --depth `expr $(git rev-list --count HEAD) + 1` + # echo "Commits in rightlib: $(git rev-list --count HEAD)" + # echo "Fetch main..." + # git fetch origin main:main --shallow-exclude rightlib + # git fetch --depth `expr $(git rev-list --count main) + 1` + # echo "Commits in main: $(git rev-list --count main)" + git checkout rightlib + libsha=$(git rev-parse HEAD) + echo "Libs sha: $libsha" + echo "Dev branch..." + git checkout main + devbranch="mergelibs-${{ steps.date.outputs.dtm }}" + git checkout -b ${devbranch} + prevsha=$(git rev-parse HEAD) + git merge rightlib --no-edit + currsha=$(git rev-parse HEAD) + if [ ${prevsha} == ${currsha} ];then + echo "Merge did not bring any changes, exiting" + exit + fi + echo ${libsha} > ydb/ci/rightlib.txt + git add . + git commit -m "Import libraries ${{ steps.date.outputs.dtm }}" + git push --set-upstream origin mergelibs-${{ steps.date.outputs.dtm }} + curl -L -X POST --fail-with-body \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer $TOKEN" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + https://api.github.com/repos/$REPO/pulls \ + -d '{"title":"Library import ${{ steps.date.outputs.dtm }}","body":"","head":"'${devbranch}'","base":"main"}' diff --git a/.github/workflows/postcommit_asan.yml b/.github/workflows/postcommit_asan.yml index 08b704115ebd..5a540243829d 100644 --- a/.github/workflows/postcommit_asan.yml +++ b/.github/workflows/postcommit_asan.yml @@ -5,6 +5,7 @@ on: branches: - 'main' - 'stable-*' + - 'stream-nb-*' paths-ignore: - 'ydb/docs/**' - '.github/**' @@ -12,14 +13,25 @@ on: jobs: build_and_test: if: ${{vars.CHECKS_SWITCH != '' && fromJSON(vars.CHECKS_SWITCH).postcommit_asan == true}} + runs-on: [ self-hosted, auto-provisioned, build-preset-release-asan ] name: Build and test release-asan - uses: ./.github/workflows/build_and_test_ya_provisioned.yml - with: - build_preset: "release-asan" - build_target: "ydb/" - test_size: "small,medium" - test_type: "unittest,py3test,py2test,pytest" - test_threads: 52 - runner_label: auto-provisioned - put_build_results_to_cache: true - secrets: inherit + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 2 + - name: Build and test + uses: ./.github/actions/build_and_test_ya + with: + build_preset: "release-asan" + build_target: "ydb/" + increment: true + run_tests: true + test_size: "small,medium" + test_type: "unittest,py3test,py2test,pytest" + test_threads: 52 + put_build_results_to_cache: true + secs: ${{ format('{{"TESTMO_TOKEN":"{0}","AWS_KEY_ID":"{1}","AWS_KEY_VALUE":"{2}","REMOTE_CACHE_USERNAME":"{3}","REMOTE_CACHE_PASSWORD":"{4}"}}', + secrets.TESTMO_TOKEN, secrets.AWS_KEY_ID, secrets.AWS_KEY_VALUE, secrets.REMOTE_CACHE_USERNAME, secrets.REMOTE_CACHE_PASSWORD ) }} + vars: ${{ format('{{"AWS_BUCKET":"{0}","AWS_ENDPOINT":"{1}","REMOTE_CACHE_URL":"{2}","TESTMO_URL":"{3}","TESTMO_PROJECT_ID":"{4}"}}', + vars.AWS_BUCKET, vars.AWS_ENDPOINT, vars.REMOTE_CACHE_URL_YA, vars.TESTMO_URL, vars.TESTMO_PROJECT_ID ) }} diff --git a/.github/workflows/postcommit_cmakebuild.yml b/.github/workflows/postcommit_cmakebuild.yml new file mode 100644 index 000000000000..7141ba9e2a65 --- /dev/null +++ b/.github/workflows/postcommit_cmakebuild.yml @@ -0,0 +1,18 @@ +name: Postcommit_cmake +on: + push: + branches: + - 'cmakebuild' + paths: + - 'ydb/ci/cmakegen.txt' +jobs: + build_and_test: + if: ${{vars.CHECKS_SWITCH != '' && fromJSON(vars.CHECKS_SWITCH).postcommit_cmake == true}} + name: Build and test cmake + uses: ./.github/workflows/build_and_test_provisioned.yml + with: + runner_label: auto-provisioned + run_unit_tests: false + run_functional_tests: false + secrets: inherit + diff --git a/.github/workflows/postcommit_relwithdebinfo.yml b/.github/workflows/postcommit_relwithdebinfo.yml index 53a56ed72a3e..d12971aafd5c 100644 --- a/.github/workflows/postcommit_relwithdebinfo.yml +++ b/.github/workflows/postcommit_relwithdebinfo.yml @@ -4,6 +4,7 @@ on: branches: - 'main' - 'stable-*' + - 'stream-nb-*' paths-ignore: - 'ydb/docs/**' - '.github/**' @@ -11,14 +12,25 @@ on: jobs: build_and_test: if: ${{vars.CHECKS_SWITCH != '' && fromJSON(vars.CHECKS_SWITCH).postcommit_relwithdebinfo == true}} + runs-on: [ self-hosted, auto-provisioned, build-preset-relwithdebinfo ] name: Build and test relwithdebinfo - uses: ./.github/workflows/build_and_test_ya_provisioned.yml - with: - build_preset: "relwithdebinfo" - build_target: "ydb/" - test_size: "small,medium" - test_type: "unittest,py3test,py2test,pytest" - test_threads: 52 - runner_label: auto-provisioned - put_build_results_to_cache: true - secrets: inherit + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 2 + - name: Build and test + uses: ./.github/actions/build_and_test_ya + with: + build_preset: relwithdebinfo + build_target: "ydb/" + increment: true + run_tests: true + test_size: "small,medium" + test_type: "unittest,py3test,py2test,pytest" + test_threads: 52 + put_build_results_to_cache: true + secs: ${{ format('{{"TESTMO_TOKEN":"{0}","AWS_KEY_ID":"{1}","AWS_KEY_VALUE":"{2}","REMOTE_CACHE_USERNAME":"{3}","REMOTE_CACHE_PASSWORD":"{4}"}}', + secrets.TESTMO_TOKEN, secrets.AWS_KEY_ID, secrets.AWS_KEY_VALUE, secrets.REMOTE_CACHE_USERNAME, secrets.REMOTE_CACHE_PASSWORD ) }} + vars: ${{ format('{{"AWS_BUCKET":"{0}","AWS_ENDPOINT":"{1}","REMOTE_CACHE_URL":"{2}","TESTMO_URL":"{3}","TESTMO_PROJECT_ID":"{4}"}}', + vars.AWS_BUCKET, vars.AWS_ENDPOINT, vars.REMOTE_CACHE_URL_YA, vars.TESTMO_URL, vars.TESTMO_PROJECT_ID ) }} \ No newline at end of file diff --git a/.github/workflows/pr_check.yml b/.github/workflows/pr_check.yml index 8e1a03a83ee4..19e962acb2da 100644 --- a/.github/workflows/pr_check.yml +++ b/.github/workflows/pr_check.yml @@ -4,6 +4,7 @@ on: branches: - 'main' - 'stable-*' + - 'stream-nb-*' paths-ignore: - 'ydb/docs/**' - '*' @@ -79,12 +80,21 @@ jobs: uses: actions/github-script@v6 with: script: | + let externalContributorLabel = 'external'; + github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: 'Hi! Thank you for contributing!\nThe tests on this PR will run after a maintainer adds an `ok-to-test` label to this PR manually. Thank you for your patience!' }); + + github.rest.issues.addLabels({ + ...context.repo, + issue_number: context.issue.number, + labels: [externalContributorLabel] + }); + - name: cleanup-test-label uses: actions/github-script@v6 with: @@ -186,16 +196,28 @@ jobs: strategy: fail-fast: false matrix: - build_preset: ["relwithdebinfo", "release-asan"] + build_preset: ["relwithdebinfo", "release-asan", "release-clang14"] + runs-on: [ self-hosted, auto-provisioned, "${{ format('build-preset-{0}', matrix.build_preset) }}" ] name: Build and test ${{ matrix.build_preset }} - uses: ./.github/workflows/build_and_test_ya_provisioned.yml - with: - build_preset: ${{ matrix.build_preset }} - build_target: "ydb/" - test_size: "small,medium" - test_type: "unittest,py3test,py2test,pytest" - test_threads: 52 - runner_label: auto-provisioned - put_build_results_to_cache: true - commit_sha: ${{ needs.check-running-allowed.outputs.commit_sha }} - secrets: inherit + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + ref: ${{ needs.check-running-allowed.outputs.commit_sha }} + fetch-depth: 2 + - name: Build and test + uses: ./.github/actions/build_and_test_ya + with: + build_preset: ${{ matrix.build_preset }} + build_target: "ydb/" + increment: true + run_tests: ${{ contains(fromJSON('["relwithdebinfo", "release-asan"]'), matrix.build_preset) }} + test_size: "small,medium" + test_type: "unittest,py3test,py2test,pytest" + test_threads: 52 + put_build_results_to_cache: true + run_tests_if_build_fails: false + secs: ${{ format('{{"TESTMO_TOKEN":"{0}","AWS_KEY_ID":"{1}","AWS_KEY_VALUE":"{2}","REMOTE_CACHE_USERNAME":"{3}","REMOTE_CACHE_PASSWORD":"{4}"}}', + secrets.TESTMO_TOKEN, secrets.AWS_KEY_ID, secrets.AWS_KEY_VALUE, secrets.REMOTE_CACHE_USERNAME, secrets.REMOTE_CACHE_PASSWORD ) }} + vars: ${{ format('{{"AWS_BUCKET":"{0}","AWS_ENDPOINT":"{1}","REMOTE_CACHE_URL":"{2}","TESTMO_URL":"{3}","TESTMO_PROJECT_ID":"{4}"}}', + vars.AWS_BUCKET, vars.AWS_ENDPOINT, vars.REMOTE_CACHE_URL_YA, vars.TESTMO_URL, vars.TESTMO_PROJECT_ID ) }} diff --git a/.github/workflows/sync_cmakebuild.yml b/.github/workflows/sync_cmakebuild.yml new file mode 100644 index 000000000000..710d2991b9aa --- /dev/null +++ b/.github/workflows/sync_cmakebuild.yml @@ -0,0 +1,47 @@ +name: Sync cmakebuild with main +on: + schedule: + - cron: "0 * * * *" + workflow_dispatch: +concurrency: + group: ${{ github.workflow }} + cancel-in-progress: true +env: + REPO: ${{ github.repository }} + TOKEN: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} +jobs: + sync: + runs-on: ubuntu-latest + steps: + - name: Sync + run: | + mainsha=$(curl -s -H "Accept: application/vnd.github.VERSION.sha" https://api.github.com/repos/$REPO/commits/main) + echo "Main sha: ${mainsha}" + lastsha=$(curl -s https://raw.githubusercontent.com/$REPO/cmakebuild/ydb/ci/cmakegen.txt) + echo "Last sha: ${lastsha}" + if [ "${mainsha}" == "${lastsha}" ];then + echo "No new commits on the main branch to merge, exiting" + exit 0 + fi + git clone -b main --shallow-exclude cmakebuild https://$TOKEN@github.com/$REPO.git ydb + git config --global user.email "alex@ydb.tech" + git config --global user.name "Alexander Smirnov" + cd ydb + git fetch --depth `expr $(git rev-list --count HEAD) + 1` + # Depth 10: 1st with cmake generation, 2nd with previous merge, 3rd is common between main and cmakebuild, + # others for possible commits directly on cmakebuild branch + git fetch origin cmakebuild:cmakebuild --depth 10 + mainsha=$(git rev-parse HEAD) + git checkout cmakebuild + prevsha=$(git rev-parse HEAD) + git merge main --no-edit + currsha=$(git rev-parse HEAD) + if [ ${prevsha} == ${currsha} ];then + echo "Merge did not bring any changes, exiting" + exit + fi + ./generate_cmake -k + echo ${mainsha} > ydb/ci/cmakegen.txt + git add . + git commit -m "Generate cmake for ${mainsha}" + git push --set-upstream origin cmakebuild diff --git a/CMakeLists.darwin-arm64.txt b/CMakeLists.darwin-arm64.txt index 075d57df5021..8da2d76ec957 100644 --- a/CMakeLists.darwin-arm64.txt +++ b/CMakeLists.darwin-arm64.txt @@ -10,6 +10,6 @@ add_subdirectory(tools) add_subdirectory(contrib) add_subdirectory(library) add_subdirectory(util) -add_subdirectory(yt) -add_subdirectory(certs) add_subdirectory(ydb) +add_subdirectory(certs) +add_subdirectory(yt) diff --git a/CMakeLists.darwin-x86_64.txt b/CMakeLists.darwin-x86_64.txt index 075d57df5021..8da2d76ec957 100644 --- a/CMakeLists.darwin-x86_64.txt +++ b/CMakeLists.darwin-x86_64.txt @@ -10,6 +10,6 @@ add_subdirectory(tools) add_subdirectory(contrib) add_subdirectory(library) add_subdirectory(util) -add_subdirectory(yt) -add_subdirectory(certs) add_subdirectory(ydb) +add_subdirectory(certs) +add_subdirectory(yt) diff --git a/CMakeLists.linux-aarch64.txt b/CMakeLists.linux-aarch64.txt index 075d57df5021..8da2d76ec957 100644 --- a/CMakeLists.linux-aarch64.txt +++ b/CMakeLists.linux-aarch64.txt @@ -10,6 +10,6 @@ add_subdirectory(tools) add_subdirectory(contrib) add_subdirectory(library) add_subdirectory(util) -add_subdirectory(yt) -add_subdirectory(certs) add_subdirectory(ydb) +add_subdirectory(certs) +add_subdirectory(yt) diff --git a/CMakeLists.linux-x86_64.txt b/CMakeLists.linux-x86_64.txt index 075d57df5021..8da2d76ec957 100644 --- a/CMakeLists.linux-x86_64.txt +++ b/CMakeLists.linux-x86_64.txt @@ -10,6 +10,6 @@ add_subdirectory(tools) add_subdirectory(contrib) add_subdirectory(library) add_subdirectory(util) -add_subdirectory(yt) -add_subdirectory(certs) add_subdirectory(ydb) +add_subdirectory(certs) +add_subdirectory(yt) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ee2ab2b04e7..7f582399aa69 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,18 +25,17 @@ enable_testing() # Can't set it in cuda.cmake because of CMake policy subdirectory stack rules cmake_policy(SET CMP0104 OLD) +include(cmake/global_flags.cmake) +include(cmake/global_vars.cmake) include(cmake/antlr.cmake) include(cmake/archive.cmake) include(cmake/bison.cmake) include(cmake/common.cmake) include(cmake/conan.cmake) include(cmake/fbs.cmake) -include(cmake/global_flags.cmake) -include(cmake/llvm-tools.cmake) include(cmake/masm.cmake) include(cmake/protobuf.cmake) include(cmake/shared_libs.cmake) -include(cmake/global_vars.cmake) if (CMAKE_CROSSCOMPILING) include(${CMAKE_BINARY_DIR}/conan_paths.cmake) diff --git a/CMakeLists.windows-x86_64.txt b/CMakeLists.windows-x86_64.txt index e8667d4e27c2..02abf1fdaa25 100644 --- a/CMakeLists.windows-x86_64.txt +++ b/CMakeLists.windows-x86_64.txt @@ -10,6 +10,6 @@ add_subdirectory(tools) add_subdirectory(contrib) add_subdirectory(util) add_subdirectory(library) -add_subdirectory(yt) -add_subdirectory(certs) add_subdirectory(ydb) +add_subdirectory(certs) +add_subdirectory(yt) diff --git a/cmake/global_vars.cmake b/cmake/global_vars.cmake new file mode 100644 index 000000000000..ebe4053b03c4 --- /dev/null +++ b/cmake/global_vars.cmake @@ -0,0 +1,41 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + set(YASM_FLAGS -f elf64 -D UNIX -D _x86_64_ -D_YASM_ -g dwarf2) + set(BISON_FLAGS -v) + set(FBS_CPP_FLAGS --no-warnings --cpp --keep-prefix --gen-mutable --schema -b --yandex-maps-iter --gen-object-api --filename-suffix .fbs) + set(RAGEL_FLAGS -L -I ${CMAKE_SOURCE_DIR}/) +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA) + set(BISON_FLAGS -v) + set(FBS_CPP_FLAGS --no-warnings --cpp --keep-prefix --gen-mutable --schema -b --yandex-maps-iter --gen-object-api --filename-suffix .fbs) + set(RAGEL_FLAGS -L -I ${CMAKE_SOURCE_DIR}/) +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + set(YASM_FLAGS -f macho64 -D DARWIN -D UNIX -D _x86_64_ -D_YASM_) + set(BISON_FLAGS -v) + set(FBS_CPP_FLAGS --no-warnings --cpp --keep-prefix --gen-mutable --schema -b --yandex-maps-iter --gen-object-api --filename-suffix .fbs) + set(RAGEL_FLAGS -L -I ${CMAKE_SOURCE_DIR}/) +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + set(BISON_FLAGS -v) + set(FBS_CPP_FLAGS --no-warnings --cpp --keep-prefix --gen-mutable --schema -b --yandex-maps-iter --gen-object-api --filename-suffix .fbs) + set(RAGEL_FLAGS -L -I ${CMAKE_SOURCE_DIR}/) +endif() + +if(WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + set(YASM_FLAGS -f win64 -D WIN64 -D _x86_64_ -D_YASM_) + set(BISON_FLAGS -v) + set(FBS_CPP_FLAGS --no-warnings --cpp --keep-prefix --gen-mutable --schema -b --yandex-maps-iter --gen-object-api --filename-suffix .fbs) + set(RAGEL_FLAGS -L -I ${CMAKE_SOURCE_DIR}/) +endif() + diff --git a/contrib/libs/CMakeLists.darwin-arm64.txt b/contrib/libs/CMakeLists.darwin-arm64.txt index 0f0d8f137b69..52a2dfaa4469 100644 --- a/contrib/libs/CMakeLists.darwin-arm64.txt +++ b/contrib/libs/CMakeLists.darwin-arm64.txt @@ -40,6 +40,7 @@ add_subdirectory(libunwind) add_subdirectory(libxml) add_subdirectory(linuxvdso) add_subdirectory(llvm12) +add_subdirectory(llvm14) add_subdirectory(lua) add_subdirectory(lz4) add_subdirectory(lzma) diff --git a/contrib/libs/CMakeLists.darwin-x86_64.txt b/contrib/libs/CMakeLists.darwin-x86_64.txt index f33f1273a2bb..9fb9b3981255 100644 --- a/contrib/libs/CMakeLists.darwin-x86_64.txt +++ b/contrib/libs/CMakeLists.darwin-x86_64.txt @@ -41,6 +41,7 @@ add_subdirectory(libunwind) add_subdirectory(libxml) add_subdirectory(linuxvdso) add_subdirectory(llvm12) +add_subdirectory(llvm14) add_subdirectory(lua) add_subdirectory(lz4) add_subdirectory(lzma) diff --git a/contrib/libs/CMakeLists.linux-aarch64.txt b/contrib/libs/CMakeLists.linux-aarch64.txt index 83f4328c25c3..918ac70643f7 100644 --- a/contrib/libs/CMakeLists.linux-aarch64.txt +++ b/contrib/libs/CMakeLists.linux-aarch64.txt @@ -43,6 +43,7 @@ add_subdirectory(libxml) add_subdirectory(linux-headers) add_subdirectory(linuxvdso) add_subdirectory(llvm12) +add_subdirectory(llvm14) add_subdirectory(lua) add_subdirectory(lz4) add_subdirectory(lzma) diff --git a/contrib/libs/CMakeLists.linux-x86_64.txt b/contrib/libs/CMakeLists.linux-x86_64.txt index ee516bf225dd..a842f7bfed35 100644 --- a/contrib/libs/CMakeLists.linux-x86_64.txt +++ b/contrib/libs/CMakeLists.linux-x86_64.txt @@ -44,6 +44,7 @@ add_subdirectory(libxml) add_subdirectory(linux-headers) add_subdirectory(linuxvdso) add_subdirectory(llvm12) +add_subdirectory(llvm14) add_subdirectory(lua) add_subdirectory(lz4) add_subdirectory(lzma) diff --git a/contrib/libs/CMakeLists.windows-x86_64.txt b/contrib/libs/CMakeLists.windows-x86_64.txt index 7bacb8e92b8f..aa6b9c7f5c4e 100644 --- a/contrib/libs/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/CMakeLists.windows-x86_64.txt @@ -33,10 +33,12 @@ add_subdirectory(libbz2) add_subdirectory(libc_compat) add_subdirectory(libevent) add_subdirectory(libfyaml) -add_subdirectory(libunwind) +add_subdirectory(libpq) +add_subdirectory(libpqxx) add_subdirectory(libxml) add_subdirectory(linuxvdso) add_subdirectory(llvm12) +add_subdirectory(llvm14) add_subdirectory(lua) add_subdirectory(lz4) add_subdirectory(lzma) diff --git a/contrib/libs/apache/arrow/CMakeLists.darwin-arm64.txt b/contrib/libs/apache/arrow/CMakeLists.darwin-arm64.txt index b9e70350e76b..641d42bcb9b0 100644 --- a/contrib/libs/apache/arrow/CMakeLists.darwin-arm64.txt +++ b/contrib/libs/apache/arrow/CMakeLists.darwin-arm64.txt @@ -99,6 +99,24 @@ target_link_libraries(libs-apache-arrow PUBLIC contrib-libs-flatbuffers ) target_sources(libs-apache-arrow PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.bfbs ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/adapters/orc/adapter.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/adapters/orc/adapter_util.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/array_base.cc diff --git a/contrib/libs/apache/arrow/CMakeLists.darwin-x86_64.txt b/contrib/libs/apache/arrow/CMakeLists.darwin-x86_64.txt index b9e70350e76b..641d42bcb9b0 100644 --- a/contrib/libs/apache/arrow/CMakeLists.darwin-x86_64.txt +++ b/contrib/libs/apache/arrow/CMakeLists.darwin-x86_64.txt @@ -99,6 +99,24 @@ target_link_libraries(libs-apache-arrow PUBLIC contrib-libs-flatbuffers ) target_sources(libs-apache-arrow PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.bfbs ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/adapters/orc/adapter.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/adapters/orc/adapter_util.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/array_base.cc diff --git a/contrib/libs/apache/arrow/CMakeLists.linux-aarch64.txt b/contrib/libs/apache/arrow/CMakeLists.linux-aarch64.txt index fb698641cb4c..a571d3c0de1c 100644 --- a/contrib/libs/apache/arrow/CMakeLists.linux-aarch64.txt +++ b/contrib/libs/apache/arrow/CMakeLists.linux-aarch64.txt @@ -100,6 +100,24 @@ target_link_libraries(libs-apache-arrow PUBLIC contrib-libs-flatbuffers ) target_sources(libs-apache-arrow PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.bfbs ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/adapters/orc/adapter.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/adapters/orc/adapter_util.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/array_base.cc diff --git a/contrib/libs/apache/arrow/CMakeLists.linux-x86_64.txt b/contrib/libs/apache/arrow/CMakeLists.linux-x86_64.txt index fb698641cb4c..a571d3c0de1c 100644 --- a/contrib/libs/apache/arrow/CMakeLists.linux-x86_64.txt +++ b/contrib/libs/apache/arrow/CMakeLists.linux-x86_64.txt @@ -100,6 +100,24 @@ target_link_libraries(libs-apache-arrow PUBLIC contrib-libs-flatbuffers ) target_sources(libs-apache-arrow PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.bfbs ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/adapters/orc/adapter.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/adapters/orc/adapter_util.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/array_base.cc diff --git a/contrib/libs/apache/arrow/CMakeLists.windows-x86_64.txt b/contrib/libs/apache/arrow/CMakeLists.windows-x86_64.txt index 5a5a245f2f1b..a8a9998410b4 100644 --- a/contrib/libs/apache/arrow/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/apache/arrow/CMakeLists.windows-x86_64.txt @@ -98,6 +98,24 @@ target_link_libraries(libs-apache-arrow PUBLIC contrib-libs-flatbuffers ) target_sources(libs-apache-arrow PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.iter.fbs.h + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/File.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Message.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Schema.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/SparseTensor.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/Tensor.bfbs + ${CMAKE_BINARY_DIR}/contrib/libs/apache/arrow/cpp/src/generated/feather.bfbs ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/adapters/orc/adapter.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/adapters/orc/adapter_util.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/arrow/cpp/src/arrow/array/array_base.cc diff --git a/contrib/libs/apache/orc/CMakeLists.darwin-arm64.txt b/contrib/libs/apache/orc/CMakeLists.darwin-arm64.txt index af2fe0863ce9..1b80303735d5 100644 --- a/contrib/libs/apache/orc/CMakeLists.darwin-arm64.txt +++ b/contrib/libs/apache/orc/CMakeLists.darwin-arm64.txt @@ -44,6 +44,7 @@ target_proto_messages(libs-apache-orc PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/proto/orc_proto.proto ) target_sources(libs-apache-orc PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/apache/orc/proto/orc_proto.pb.h ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Adaptor.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/BloomFilter.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/ByteRLE.cc diff --git a/contrib/libs/apache/orc/CMakeLists.darwin-x86_64.txt b/contrib/libs/apache/orc/CMakeLists.darwin-x86_64.txt index af2fe0863ce9..1b80303735d5 100644 --- a/contrib/libs/apache/orc/CMakeLists.darwin-x86_64.txt +++ b/contrib/libs/apache/orc/CMakeLists.darwin-x86_64.txt @@ -44,6 +44,7 @@ target_proto_messages(libs-apache-orc PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/proto/orc_proto.proto ) target_sources(libs-apache-orc PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/apache/orc/proto/orc_proto.pb.h ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Adaptor.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/BloomFilter.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/ByteRLE.cc diff --git a/contrib/libs/apache/orc/CMakeLists.linux-aarch64.txt b/contrib/libs/apache/orc/CMakeLists.linux-aarch64.txt index 0ae0e1d25007..41303e280b59 100644 --- a/contrib/libs/apache/orc/CMakeLists.linux-aarch64.txt +++ b/contrib/libs/apache/orc/CMakeLists.linux-aarch64.txt @@ -45,6 +45,7 @@ target_proto_messages(libs-apache-orc PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/proto/orc_proto.proto ) target_sources(libs-apache-orc PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/apache/orc/proto/orc_proto.pb.h ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Adaptor.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/BloomFilter.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/ByteRLE.cc diff --git a/contrib/libs/apache/orc/CMakeLists.linux-x86_64.txt b/contrib/libs/apache/orc/CMakeLists.linux-x86_64.txt index 0ae0e1d25007..41303e280b59 100644 --- a/contrib/libs/apache/orc/CMakeLists.linux-x86_64.txt +++ b/contrib/libs/apache/orc/CMakeLists.linux-x86_64.txt @@ -45,6 +45,7 @@ target_proto_messages(libs-apache-orc PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/proto/orc_proto.proto ) target_sources(libs-apache-orc PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/apache/orc/proto/orc_proto.pb.h ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Adaptor.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/BloomFilter.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/ByteRLE.cc diff --git a/contrib/libs/apache/orc/CMakeLists.windows-x86_64.txt b/contrib/libs/apache/orc/CMakeLists.windows-x86_64.txt index af2fe0863ce9..1b80303735d5 100644 --- a/contrib/libs/apache/orc/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/apache/orc/CMakeLists.windows-x86_64.txt @@ -44,6 +44,7 @@ target_proto_messages(libs-apache-orc PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/proto/orc_proto.proto ) target_sources(libs-apache-orc PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/apache/orc/proto/orc_proto.pb.h ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/Adaptor.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/BloomFilter.cc ${CMAKE_SOURCE_DIR}/contrib/libs/apache/orc/c++/src/ByteRLE.cc diff --git a/contrib/libs/base64/avx2/CMakeLists.windows-x86_64.txt b/contrib/libs/base64/avx2/CMakeLists.windows-x86_64.txt index b199f09cda5c..28788912b47e 100644 --- a/contrib/libs/base64/avx2/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/base64/avx2/CMakeLists.windows-x86_64.txt @@ -21,7 +21,7 @@ set_property( APPEND PROPERTY COMPILE_OPTIONS - -mavx2 + /D__AVX2__=1 ) set_property( SOURCE @@ -29,5 +29,5 @@ set_property( APPEND PROPERTY COMPILE_OPTIONS - -mavx2 + /D__AVX2__=1 ) diff --git a/contrib/libs/base64/ssse3/CMakeLists.windows-x86_64.txt b/contrib/libs/base64/ssse3/CMakeLists.windows-x86_64.txt index 5b488a3ae2c7..8080dd9d7313 100644 --- a/contrib/libs/base64/ssse3/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/base64/ssse3/CMakeLists.windows-x86_64.txt @@ -21,7 +21,7 @@ set_property( APPEND PROPERTY COMPILE_OPTIONS - -mssse3 + /D__SSSE3__=1 ) set_property( SOURCE @@ -29,5 +29,5 @@ set_property( APPEND PROPERTY COMPILE_OPTIONS - -mssse3 + /D__SSSE3__=1 ) diff --git a/contrib/libs/croaring/AUTHORS b/contrib/libs/croaring/AUTHORS new file mode 100644 index 000000000000..a53c36d59427 --- /dev/null +++ b/contrib/libs/croaring/AUTHORS @@ -0,0 +1,15 @@ +# List of authors for copyright purposes + +Tom Cornebize +Luca Deri +Jacob Evans +Owen Kaser +Nathan Kurz +Daniel Lemire +Wojciech Muła +Chris O'Hara +François Saint-Jacques +Gregory Ssi-Yan-Kai +Andrei Gudkov +Guillaume Holley +Brian Esch diff --git a/contrib/libs/croaring/LICENSE b/contrib/libs/croaring/LICENSE new file mode 100644 index 000000000000..8b0ad80d743d --- /dev/null +++ b/contrib/libs/croaring/LICENSE @@ -0,0 +1,236 @@ +The CRoaring project is under a dual license (Apache/MIT). +Users of the library may choose one or the other license. + +------------------ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2016-2022 The CRoaring authors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +----------------------------------- + +MIT License + +Copyright 2016-2022 The CRoaring authors + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/contrib/libs/croaring/README.md b/contrib/libs/croaring/README.md new file mode 100644 index 000000000000..954ff2d0d7e9 --- /dev/null +++ b/contrib/libs/croaring/README.md @@ -0,0 +1,916 @@ +# CRoaring + +[![Ubuntu-CI](https://github.com/RoaringBitmap/CRoaring/actions/workflows/ubuntu-noexcept-ci.yml/badge.svg)](https://github.com/RoaringBitmap/CRoaring/actions/workflows/ubuntu-noexcept-ci.yml) [![VS17-CI](https://github.com/RoaringBitmap/CRoaring/actions/workflows/vs17-ci.yml/badge.svg)](https://github.com/RoaringBitmap/CRoaring/actions/workflows/vs17-ci.yml) +[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/croaring.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:croaring) + +[![Doxygen Documentation](https://img.shields.io/badge/docs-doxygen-green.svg)](http://roaringbitmap.github.io/CRoaring/) + + + +Portable Roaring bitmaps in C (and C++) with full support for your favorite compiler (GNU GCC, LLVM's clang, Visual Studio, Apple Xcode, Intel oneAPI). Included in the [Awesome C](https://github.com/kozross/awesome-c) list of open source C software. + +# Introduction + +Bitsets, also called bitmaps, are commonly used as fast data structures. Unfortunately, they can use too much memory. + To compensate, we often use compressed bitmaps. + +Roaring bitmaps are compressed bitmaps which tend to outperform conventional compressed bitmaps such as WAH, EWAH or Concise. +They are used by several major systems such as [Apache Lucene][lucene] and derivative systems such as [Solr][solr] and +[Elasticsearch][elasticsearch], [Metamarkets' Druid][druid], [LinkedIn Pinot][pinot], [Netflix Atlas][atlas], [Apache Spark][spark], [OpenSearchServer][opensearchserver], [Cloud Torrent][cloudtorrent], [Whoosh][whoosh], [InfluxDB](https://www.influxdata.com), [Pilosa][pilosa], [Bleve](http://www.blevesearch.com), [Microsoft Visual Studio Team Services (VSTS)][vsts], and eBay's [Apache Kylin][kylin]. The CRoaring library is used in several systems such as [Apache Doris](http://doris.incubator.apache.org), [ClickHouse](https://github.com/ClickHouse/ClickHouse), and [StarRocks](https://github.com/StarRocks/starrocks). The YouTube SQL Engine, [Google Procella](https://research.google/pubs/pub48388/), uses Roaring bitmaps for indexing. + +We published a peer-reviewed article on the design and evaluation of this library: + +- Roaring Bitmaps: Implementation of an Optimized Software Library, Software: Practice and Experience 48 (4), 2018 [arXiv:1709.07821](https://arxiv.org/abs/1709.07821) + +[lucene]: https://lucene.apache.org/ +[solr]: https://lucene.apache.org/solr/ +[elasticsearch]: https://www.elastic.co/products/elasticsearch +[druid]: http://druid.io/ +[spark]: https://spark.apache.org/ +[opensearchserver]: http://www.opensearchserver.com +[cloudtorrent]: https://github.com/jpillora/cloud-torrent +[whoosh]: https://bitbucket.org/mchaput/whoosh/wiki/Home +[pilosa]: https://www.pilosa.com/ +[kylin]: http://kylin.apache.org/ +[pinot]: http://github.com/linkedin/pinot/wiki +[vsts]: https://www.visualstudio.com/team-services/ +[atlas]: https://github.com/Netflix/atlas + +Roaring bitmaps are found to work well in many important applications: + +> Use Roaring for bitmap compression whenever possible. Do not use other bitmap compression methods ([Wang et al., SIGMOD 2017](http://db.ucsd.edu/wp-content/uploads/2017/03/sidm338-wangA.pdf)) + + +[There is a serialized format specification for interoperability between implementations](https://github.com/RoaringBitmap/RoaringFormatSpec/). Hence, it is possible to serialize a Roaring Bitmap from C++, read it in Java, modify it, serialize it back and read it in Go and Python. + +# Objective + +The primary goal of the CRoaring is to provide a high performance low-level implementation that fully take advantage +of the latest hardware. Roaring bitmaps are already available on a variety of platform through Java, Go, Rust... implementations. CRoaring is a library that seeks to achieve superior performance by staying close to the latest hardware. + + +(c) 2016-... The CRoaring authors. + + + +# Requirements + +- Linux, macOS, FreeBSD, Windows (MSYS2 and Microsoft Visual studio). +- We test the library with ARM, x64/x86 and POWER processors. We only support little endian systems (big endian systems are vanishingly rare). +- Recent C compiler supporting the C11 standard (GCC 7 or better, LLVM 8 or better (clang), Xcode 11 or better, Microsoft Visual Studio 2022 or better, Intel oneAPI Compiler 2023.2 or better), there is also an optional C++ class that requires a C++ compiler supporting the C++11 standard. +- CMake (to contribute to the project, users can rely on amalgamation/unity builds if they do not wish to use CMake). +- The CMake system assumes that git is available. +- Under x64 systems, the library provides runtime dispatch so that optimized functions are called based on the detected CPU features. It works with GCC, clang (version 9 and up) and Visual Studio (2017 and up). Other systems (e.g., ARM) do not need runtime dispatch. + +Hardly anyone has access to an actual big-endian system. Nevertheless, +We support big-endian systems such as IBM s390x through emulators---except for +IO serialization which is only supported on little-endian systems (see [issue 423](https://github.com/RoaringBitmap/CRoaring/issues/423)). + + +# Quick Start + +The CRoaring library can be amalgamated into a single source file that makes it easier +for integration into other projects. Moreover, by making it possible to compile +all the critical code into one compilation unit, it can improve the performance. For +the rationale, please see the [SQLite documentation](https://www.sqlite.org/amalgamation.html), +or the corresponding [Wikipedia entry](https://en.wikipedia.org/wiki/Single_Compilation_Unit). +Users who choose this route, do not need to rely on CRoaring's build system (based on CMake). + +We offer amalgamated files as part of each release. + +Linux or macOS users might follow the following instructions if they have a recent C or C++ compiler installed and a standard utility (`wget`). + + + 1. Pull the library in a directory + ``` + wget https://github.com/RoaringBitmap/CRoaring/releases/download/v2.1.0/roaring.c + wget https://github.com/RoaringBitmap/CRoaring/releases/download/v2.1.0/roaring.h + wget https://github.com/RoaringBitmap/CRoaring/releases/download/v2.1.0/roaring.hh + ``` + 2. Create a new file named `demo.c` with this content: + ```C + #include + #include + #include "roaring.c" + int main() { + roaring_bitmap_t *r1 = roaring_bitmap_create(); + for (uint32_t i = 100; i < 1000; i++) roaring_bitmap_add(r1, i); + printf("cardinality = %d\n", (int) roaring_bitmap_get_cardinality(r1)); + roaring_bitmap_free(r1); + + bitset_t *b = bitset_create(); + for (int k = 0; k < 1000; ++k) { + bitset_set(b, 3 * k); + } + printf("%zu \n", bitset_count(b)); + bitset_free(b); + return EXIT_SUCCESS; + } + ``` + 2. Create a new file named `demo.cpp` with this content: + ```C++ + #include + #include "roaring.hh" // the amalgamated roaring.hh includes roaring64map.hh + #include "roaring.c" + int main() { + roaring::Roaring r1; + for (uint32_t i = 100; i < 1000; i++) { + r1.add(i); + } + std::cout << "cardinality = " << r1.cardinality() << std::endl; + + roaring::Roaring64Map r2; + for (uint64_t i = 18000000000000000100ull; i < 18000000000000001000ull; i++) { + r2.add(i); + } + std::cout << "cardinality = " << r2.cardinality() << std::endl; + return 0; + } + ``` + 2. Compile + ``` + cc -o demo demo.c + c++ -std=c++11 -o demopp demo.cpp + ``` + 3. `./demo` + ``` + cardinality = 900 + 1000 + ``` + 4. `./demopp` + ``` + cardinality = 900 + cardinality = 900 + ``` + + +# Using Roaring as a CPM dependency + + +If you like CMake and CPM, you can just a few lines in you `CMakeLists.txt` file to grab a `CRoaring` release. [See our CPM demonstration for further details](https://github.com/RoaringBitmap/CPMdemo). + + + +```CMake +cmake_minimum_required(VERSION 3.10) +project(roaring_demo + LANGUAGES CXX C +) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_C_STANDARD 11) + +add_executable(hello hello.cpp) +# You can add CPM.cmake like so: +# mkdir -p cmake +# wget -O cmake/CPM.cmake https://github.com/cpm-cmake/CPM.cmake/releases/latest/download/get_cpm.cmake +include(cmake/CPM.cmake) +CPMAddPackage( + NAME roaring + GITHUB_REPOSITORY "RoaringBitmap/CRoaring" + GIT_TAG v2.0.4 + OPTIONS "BUILD_TESTING OFF" +) + +target_link_libraries(hello roaring::roaring) +``` + + +# Using as a CMake dependency with FetchContent + +If you like CMake, you can just a few lines in you `CMakeLists.txt` file to grab a `CRoaring` release. [See our demonstration for further details](https://github.com/RoaringBitmap/croaring_cmake_demo_single_file). + +If you installed the CRoaring library locally, you may use it with CMake's `find_package` function as in this example: + +```CMake +cmake_minimum_required(VERSION 3.15) + +project(test_roaring_install VERSION 0.1.0 LANGUAGES CXX C) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + + +set(CMAKE_C_STANDARD 11) +set(CMAKE_C_STANDARD_REQUIRED ON) + +find_package(roaring REQUIRED) + +file(WRITE main.cpp " +#include +#include \"roaring/roaring.hh\" +int main() { + roaring::Roaring r1; + for (uint32_t i = 100; i < 1000; i++) { + r1.add(i); + } + std::cout << \"cardinality = \" << r1.cardinality() << std::endl; + return 0; +}") + +add_executable(repro main.cpp) +target_link_libraries(repro PUBLIC roaring::roaring) +``` + + +# Amalgamating + +To generate the amalgamated files yourself, you can invoke a bash script... + +```bash +./amalgamation.sh +``` + +If you prefer a silent output, you can use the following command to redirect ``stdout`` : + +```bash +./amalgamation.sh > /dev/null +``` + + +(Bash shells are standard under Linux and macOS. Bash shells are available under Windows as part of the  [GitHub Desktop](https://desktop.github.com/) under the name ``Git Shell``. So if you have cloned the ``CRoaring`` GitHub repository from within the GitHub Desktop, you can right-click on ``CRoaring``, select ``Git Shell`` and then enter the above commands.) + +It is not necessary to invoke the script in the CRoaring directory. You can invoke +it from any directory where you want the amalgamation files to be written. + +It will generate three files for C users: ``roaring.h``, ``roaring.c`` and ``amalgamation_demo.c``... as well as some brief instructions. The ``amalgamation_demo.c`` file is a short example, whereas ``roaring.h`` and ``roaring.c`` are "amalgamated" files (including all source and header files for the project). This means that you can simply copy the files ``roaring.h`` and ``roaring.c`` into your project and be ready to go! No need to produce a library! See the ``amalgamation_demo.c`` file. + +# API + +The C interface is found in the file ``include/roaring/roaring.h``. We have C++ interface at `cpp/roaring.hh`. + +# Dealing with large volumes + +Some users have to deal with large volumes of data. It may be important for these users to be aware of the `addMany` (C++) `roaring_bitmap_or_many` (C) functions as it is much faster and economical to add values in batches when possible. Furthermore, calling periodically the `runOptimize` (C++) or `roaring_bitmap_run_optimize` (C) functions may help. + + +# Running microbenchmarks + +We have microbenchmarks constructed with the Google Benchmarks. +Under Linux or macOS, you may run them as follows: + +``` +cmake -B build +cmake --build build +./build/microbenchmarks/bench +``` + +By default, the benchmark tools picks one data set (e.g., `CRoaring/benchmarks/realdata/census1881`). +We have several data sets and you may pick others: + +``` +./build/microbenchmarks/bench benchmarks/realdata/wikileaks-noquotes +``` + +You may disable some functionality for the purpose of benchmarking. For example, assuming you +have an x64 processor, you could benchmark the code without AVX-512 even if both your processor +and compiler supports it: + +``` +cmake -B buildnoavx512 -D ROARING_DISABLE_AVX512=ON +cmake --build buildnoavx512 +./buildnoavx512/microbenchmarks/bench +``` + +You can benchmark without AVX or AVX-512 as well: + +``` +cmake -B buildnoavx -D ROARING_DISABLE_AVX=ON +cmake --build buildnoavx +./buildnoavx/microbenchmarks/bench +``` + +# Custom memory allocators +For general users, CRoaring would apply default allocator without extra codes. But global memory hook is also provided for those who want a custom memory allocator. Here is an example: +```C +#include + +int main(){ + // define with your own memory hook + roaring_memory_t my_hook{my_malloc, my_free ...}; + // initialize global memory hook + roaring_init_memory_hook(my_hook); + // write you code here + ... +} +``` + + +# Example (C) + + +This example assumes that CRoaring has been build and that you are linking against the corresponding library. By default, CRoaring will install its header files in a `roaring` directory. If you are working from the amalgamation script, you may add the line `#include "roaring.c"` if you are not linking against a prebuilt CRoaring library and replace `#include ` by `#include "roaring.h"`. + +```c +#include +#include +#include +#include + +bool roaring_iterator_sumall(uint32_t value, void *param) { + *(uint32_t *)param += value; + return true; // iterate till the end +} + +int main() { + // create a new empty bitmap + roaring_bitmap_t *r1 = roaring_bitmap_create(); + // then we can add values + for (uint32_t i = 100; i < 1000; i++) roaring_bitmap_add(r1, i); + // check whether a value is contained + assert(roaring_bitmap_contains(r1, 500)); + // compute how many bits there are: + uint32_t cardinality = roaring_bitmap_get_cardinality(r1); + printf("Cardinality = %d \n", cardinality); + + // if your bitmaps have long runs, you can compress them by calling + // run_optimize + uint32_t expectedsizebasic = roaring_bitmap_portable_size_in_bytes(r1); + roaring_bitmap_run_optimize(r1); + uint32_t expectedsizerun = roaring_bitmap_portable_size_in_bytes(r1); + printf("size before run optimize %d bytes, and after %d bytes\n", + expectedsizebasic, expectedsizerun); + + // create a new bitmap containing the values {1,2,3,5,6} + roaring_bitmap_t *r2 = roaring_bitmap_from(1, 2, 3, 5, 6); + roaring_bitmap_printf(r2); // print it + + // we can also create a bitmap from a pointer to 32-bit integers + uint32_t somevalues[] = {2, 3, 4}; + roaring_bitmap_t *r3 = roaring_bitmap_of_ptr(3, somevalues); + + // we can also go in reverse and go from arrays to bitmaps + uint64_t card1 = roaring_bitmap_get_cardinality(r1); + uint32_t *arr1 = (uint32_t *)malloc(card1 * sizeof(uint32_t)); + assert(arr1 != NULL); + roaring_bitmap_to_uint32_array(r1, arr1); + roaring_bitmap_t *r1f = roaring_bitmap_of_ptr(card1, arr1); + free(arr1); + assert(roaring_bitmap_equals(r1, r1f)); // what we recover is equal + roaring_bitmap_free(r1f); + + // we can go from arrays to bitmaps from "offset" by "limit" + size_t offset = 100; + size_t limit = 1000; + uint32_t *arr3 = (uint32_t *)malloc(limit * sizeof(uint32_t)); + assert(arr3 != NULL); + roaring_bitmap_range_uint32_array(r1, offset, limit, arr3); + free(arr3); + + // we can copy and compare bitmaps + roaring_bitmap_t *z = roaring_bitmap_copy(r3); + assert(roaring_bitmap_equals(r3, z)); // what we recover is equal + roaring_bitmap_free(z); + + // we can compute union two-by-two + roaring_bitmap_t *r1_2_3 = roaring_bitmap_or(r1, r2); + roaring_bitmap_or_inplace(r1_2_3, r3); + + // we can compute a big union + const roaring_bitmap_t *allmybitmaps[] = {r1, r2, r3}; + roaring_bitmap_t *bigunion = roaring_bitmap_or_many(3, allmybitmaps); + assert( + roaring_bitmap_equals(r1_2_3, bigunion)); // what we recover is equal + // can also do the big union with a heap + roaring_bitmap_t *bigunionheap = + roaring_bitmap_or_many_heap(3, allmybitmaps); + assert(roaring_bitmap_equals(r1_2_3, bigunionheap)); + + roaring_bitmap_free(r1_2_3); + roaring_bitmap_free(bigunion); + roaring_bitmap_free(bigunionheap); + + // we can compute intersection two-by-two + roaring_bitmap_t *i1_2 = roaring_bitmap_and(r1, r2); + roaring_bitmap_free(i1_2); + + // we can write a bitmap to a pointer and recover it later + uint32_t expectedsize = roaring_bitmap_portable_size_in_bytes(r1); + char *serializedbytes = malloc(expectedsize); + roaring_bitmap_portable_serialize(r1, serializedbytes); + // Note: it is expected that the input follows the specification + // https://github.com/RoaringBitmap/RoaringFormatSpec + // otherwise the result may be unusable. + roaring_bitmap_t *t = roaring_bitmap_portable_deserialize_safe(serializedbytes, expectedsize); + if(t == NULL) { return EXIT_FAILURE; } + const char *reason = NULL; + if (!roaring_bitmap_internal_validate(t, &reason)) { + return EXIT_FAILURE; + } + assert(roaring_bitmap_equals(r1, t)); // what we recover is equal + roaring_bitmap_free(t); + // we can also check whether there is a bitmap at a memory location without + // reading it + size_t sizeofbitmap = + roaring_bitmap_portable_deserialize_size(serializedbytes, expectedsize); + assert(sizeofbitmap == + expectedsize); // sizeofbitmap would be zero if no bitmap were found + // we can also read the bitmap "safely" by specifying a byte size limit: + t = roaring_bitmap_portable_deserialize_safe(serializedbytes, expectedsize); + if(t == NULL) { + printf("Problem during deserialization.\n"); + // We could clear any memory and close any file here. + return EXIT_FAILURE; + } + // We can validate the bitmap we recovered to make sure it is proper. + const char *reason_failure = NULL; + if (!roaring_bitmap_internal_validate(t, &reason_failure)) { + printf("safely deserialized invalid bitmap: %s\n", reason_failure); + // We could clear any memory and close any file here. + return EXIT_FAILURE; + } + // It is still necessary for the content of seriallizedbytes to follow + // the standard: https://github.com/RoaringBitmap/RoaringFormatSpec + // This is guaranted when calling 'roaring_bitmap_portable_deserialize'. + assert(roaring_bitmap_equals(r1, t)); // what we recover is equal + roaring_bitmap_free(t); + + free(serializedbytes); + + // we can iterate over all values using custom functions + uint32_t counter = 0; + roaring_iterate(r1, roaring_iterator_sumall, &counter); + + // we can also create iterator structs + counter = 0; + roaring_uint32_iterator_t *i = roaring_iterator_create(r1); + while (i->has_value) { + counter++; // could use i->current_value + roaring_uint32_iterator_advance(i); + } + // you can skip over values and move the iterator with + // roaring_uint32_iterator_move_equalorlarger(i,someintvalue) + + roaring_uint32_iterator_free(i); + // roaring_bitmap_get_cardinality(r1) == counter + + // for greater speed, you can iterate over the data in bulk + i = roaring_iterator_create(r1); + uint32_t buffer[256]; + while (1) { + uint32_t ret = roaring_uint32_iterator_read(i, buffer, 256); + for (uint32_t j = 0; j < ret; j++) { + counter += buffer[j]; + } + if (ret < 256) { + break; + } + } + roaring_uint32_iterator_free(i); + + roaring_bitmap_free(r1); + roaring_bitmap_free(r2); + roaring_bitmap_free(r3); + return EXIT_SUCCESS; +} +``` + +# Compressed 64-bit Roaring bitmaps (C) + + +We also support efficient 64-bit compressed bitmaps in C: + +```c++ + roaring64_bitmap_t *r2 = roaring64_bitmap_create(); + for (uint64_t i = 100; i < 1000; i++) roaring64_bitmap_add(r2, i); + printf("cardinality (64-bit) = %d\n", (int) roaring64_bitmap_get_cardinality(r2)); + roaring64_bitmap_free(r2); +``` + + +# Conventional bitsets (C) + +We support convention bitsets (uncompressed) as part of the library. + +Simple example: + +```C +bitset_t * b = bitset_create(); +bitset_set(b,10); +bitset_get(b,10);// returns true +bitset_free(b); // frees memory +``` + +More advanced example: + +```C + bitset_t *b = bitset_create(); + for (int k = 0; k < 1000; ++k) { + bitset_set(b, 3 * k); + } + // We have bitset_count(b) == 1000. + // We have bitset_get(b, 3) is true + // You can iterate through the values: + size_t k = 0; + for (size_t i = 0; bitset_next_set_bit(b, &i); i++) { + // You will have i == k + k += 3; + } + // We support a wide range of operations on two bitsets such as + // bitset_inplace_symmetric_difference(b1,b2); + // bitset_inplace_symmetric_difference(b1,b2); + // bitset_inplace_difference(b1,b2);// should make no difference + // bitset_inplace_union(b1,b2); + // bitset_inplace_intersection(b1,b2); + // bitsets_disjoint + // bitsets_intersect +``` + +In some instances, you may want to convert a Roaring bitmap into a conventional (uncompressed) bitset. +Indeed, bitsets have advantages such as higher query performances in some cases. The following code +illustrates how you may do so: + +```C + roaring_bitmap_t *r1 = roaring_bitmap_create(); + for (uint32_t i = 100; i < 100000; i+= 1 + (i%5)) { + roaring_bitmap_add(r1, i); + } + for (uint32_t i = 100000; i < 500000; i+= 100) { + roaring_bitmap_add(r1, i); + } + roaring_bitmap_add_range(r1, 500000, 600000); + bitset_t * bitset = bitset_create(); + bool success = roaring_bitmap_to_bitset(r1, bitset); + assert(success); // could fail due to memory allocation. + assert(bitset_count(bitset) == roaring_bitmap_get_cardinality(r1)); + // You can then query the bitset: + for (uint32_t i = 100; i < 100000; i+= 1 + (i%5)) { + assert(bitset_get(bitset,i)); + } + for (uint32_t i = 100000; i < 500000; i+= 100) { + assert(bitset_get(bitset,i)); + } + // you must free the memory: + bitset_free(bitset); + roaring_bitmap_free(r1); +``` + +You should be aware that a convention bitset (`bitset_t *`) may use much more +memory than a Roaring bitmap in some cases. You should run benchmarks to determine +whether the conversion to a bitset has performance benefits in your case. + +# Example (C++) + + +This example assumes that CRoaring has been build and that you are linking against the corresponding library. By default, CRoaring will install its header files in a `roaring` directory so you may need to replace `#include "roaring.hh"` by `#include `. If you are working from the amalgamation script, you may add the line `#include "roaring.c"` if you are not linking against a CRoaring prebuilt library. + +```c++ +#include + +#include "roaring.hh" + +using namespace roaring; + +int main() { + Roaring r1; + for (uint32_t i = 100; i < 1000; i++) { + r1.add(i); + } + + // check whether a value is contained + assert(r1.contains(500)); + + // compute how many bits there are: + uint32_t cardinality = r1.cardinality(); + + // if your bitmaps have long runs, you can compress them by calling + // run_optimize + uint32_t size = r1.getSizeInBytes(); + r1.runOptimize(); + + // you can enable "copy-on-write" for fast and shallow copies + r1.setCopyOnWrite(true); + + uint32_t compact_size = r1.getSizeInBytes(); + std::cout << "size before run optimize " << size << " bytes, and after " + << compact_size << " bytes." << std::endl; + + // create a new bitmap with varargs + Roaring r2 = Roaring::bitmapOf(5, 1, 2, 3, 5, 6); + + r2.printf(); + printf("\n"); + + // create a new bitmap with initializer list + Roaring r2i = Roaring::bitmapOfList({1, 2, 3, 5, 6}); + + assert(r2i == r2); + + // we can also create a bitmap from a pointer to 32-bit integers + const uint32_t values[] = {2, 3, 4}; + Roaring r3(3, values); + + // we can also go in reverse and go from arrays to bitmaps + uint64_t card1 = r1.cardinality(); + uint32_t *arr1 = new uint32_t[card1]; + r1.toUint32Array(arr1); + Roaring r1f(card1, arr1); + delete[] arr1; + + // bitmaps shall be equal + assert(r1 == r1f); + + // we can copy and compare bitmaps + Roaring z(r3); + assert(r3 == z); + + // we can compute union two-by-two + Roaring r1_2_3 = r1 | r2; + r1_2_3 |= r3; + + // we can compute a big union + const Roaring *allmybitmaps[] = {&r1, &r2, &r3}; + Roaring bigunion = Roaring::fastunion(3, allmybitmaps); + assert(r1_2_3 == bigunion); + + // we can compute intersection two-by-two + Roaring i1_2 = r1 & r2; + + // we can write a bitmap to a pointer and recover it later + uint32_t expectedsize = r1.getSizeInBytes(); + char *serializedbytes = new char[expectedsize]; + r1.write(serializedbytes); + // readSafe will not overflow, but the resulting bitmap + // is only valid and usable if the input follows the + // Roaring specification: https://github.com/RoaringBitmap/RoaringFormatSpec/ + Roaring t = Roaring::readSafe(serializedbytes, expectedsize); + assert(r1 == t); + delete[] serializedbytes; + + // we can iterate over all values using custom functions + uint32_t counter = 0; + r1.iterate( + [](uint32_t value, void *param) { + *(uint32_t *)param += value; + return true; + }, + &counter); + + // we can also iterate the C++ way + counter = 0; + for (Roaring::const_iterator i = t.begin(); i != t.end(); i++) { + ++counter; + } + // counter == t.cardinality() + + // we can move iterators to skip values + const uint32_t manyvalues[] = {2, 3, 4, 7, 8}; + Roaring rogue(5, manyvalues); + Roaring::const_iterator j = rogue.begin(); + j.equalorlarger(4); // *j == 4 + return EXIT_SUCCESS; +} + +``` + + + +# Building with cmake (Linux and macOS, Visual Studio users should see below) + +CRoaring follows the standard cmake workflow. Starting from the root directory of +the project (CRoaring), you can do: + +``` +mkdir -p build +cd build +cmake .. +cmake --build . +# follow by 'ctest' if you want to test. +# you can also type 'make install' to install the library on your system +# C header files typically get installed to /usr/local/include/roaring +# whereas C++ header files get installed to /usr/local/include/roaring +``` +(You can replace the ``build`` directory with any other directory name.) +By default all tests are built on all platforms, to skip building and running tests add `` -DENABLE_ROARING_TESTS=OFF `` to the command line. + +As with all ``cmake`` projects, you can specify the compilers you wish to use by adding (for example) ``-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++`` to the ``cmake`` command line. + +If you are using clang or gcc and you know your target architecture, you can set the architecture by specifying `-DROARING_ARCH=arch`. For example, if you have many server but the oldest server is running the Intel `haswell` architecture, you can specify -`DROARING_ARCH=haswell`. In such cases, the produced binary will be optimized for processors having the characteristics of a haswell process and may not run on older architectures. You can find out the list of valid architecture values by typing `man gcc`. + + ``` + mkdir -p build_haswell + cd build_haswell + cmake -DROARING_ARCH=haswell .. + cmake --build . + ``` + +For a debug release, starting from the root directory of the project (CRoaring), try + +``` +mkdir -p debug +cd debug +cmake -DCMAKE_BUILD_TYPE=Debug -DROARING_SANITIZE=ON .. +ctest +``` + + +To check that your code abides by the style convention (make sure that ``clang-format`` is installed): + +``` +./tools/clang-format-check.sh +``` + +To reformat your code according to the style convention (make sure that ``clang-format`` is installed): + +``` +./tools/clang-format.sh +``` + +# Building (Visual Studio under Windows) + +We are assuming that you have a common Windows PC with at least Visual Studio 2015, and an x64 processor. + +To build with at least Visual Studio 2015 from the command line: +- Grab the CRoaring code from GitHub, e.g., by cloning it using [GitHub Desktop](https://desktop.github.com/). +- Install [CMake](https://cmake.org/download/). When you install it, make sure to ask that ``cmake`` be made available from the command line. +- Create a subdirectory within CRoaring, such as ``VisualStudio``. +- Using a shell, go to this newly created directory. For example, within GitHub Desktop, you can right-click on  ``CRoaring`` in your GitHub repository list, and select ``Open in Git Shell``, then type ``cd VisualStudio`` in the newly created shell. +- Type ``cmake -DCMAKE_GENERATOR_PLATFORM=x64 ..`` in the shell while in the ``VisualStudio`` repository. (Alternatively, if you want to build a static library, you may use the command line ``cmake -DCMAKE_GENERATOR_PLATFORM=x64 -DROARING_BUILD_STATIC=ON ..``.) +- This last command created a Visual Studio solution file in the newly created directory (e.g., ``RoaringBitmap.sln``). Open this file in Visual Studio. You should now be able to build the project and run the tests. For example, in the ``Solution Explorer`` window (available from the ``View`` menu), right-click ``ALL_BUILD`` and select ``Build``. To test the code, still in the ``Solution Explorer`` window, select ``RUN_TESTS`` and select ``Build``. + +To build with at least Visual Studio 2017 directly in the IDE: +- Grab the CRoaring code from GitHub, e.g., by cloning it using [GitHub Desktop](https://desktop.github.com/). +- Select the ``Visual C++ tools for CMake`` optional component when installing the C++ Development Workload within Visual Studio. +- Within Visual Studio use ``File > Open > Folder...`` to open the CRoaring folder. +- Right click on ``CMakeLists.txt`` in the parent directory within ``Solution Explorer`` and select ``Build`` to build the project. +- For testing, in the Standard toolbar, drop the ``Select Startup Item...`` menu and choose one of the tests. Run the test by pressing the button to the left of the dropdown. + + +We have optimizations specific to AVX2 and AVX-512 in the code, and they are turned dynamically based on the detected hardware at runtime. + + +## Usage (Using `conan`) + +You can install the library using the conan package manager: + +``` +$ echo -e "[requires]\nroaring/0.3.3" > conanfile.txt +$ conan install . +``` + + +## Usage (Using `vcpkg` on Windows, Linux and macOS) + +[vcpkg](https://github.com/Microsoft/vcpkg) users on Windows, Linux and macOS can download and install `roaring` with one single command from their favorite shell. + +On Linux and macOS: + +``` +$ ./vcpkg install roaring +``` + +will build and install `roaring` as a static library. + +On Windows (64-bit): + +``` +.\vcpkg.exe install roaring:x64-windows +``` + +will build and install `roaring` as a shared library. + +``` +.\vcpkg.exe install roaring:x64-windows-static +``` + +will build and install `roaring` as a static library. + +These commands will also print out instructions on how to use the library from MSBuild or CMake-based projects. + +If you find the version of `roaring` shipped with `vcpkg` is out-of-date, feel free to report it to `vcpkg` community either by submiting an issue or by creating a PR. + +# SIMD-related throttling + +Our AVX2 code does not use floating-point numbers or multiplications, so it is not subject to turbo frequency throttling on many-core Intel processors. + +Our AVX-512 code is only enabled on recent hardware (Intel Ice Lake or better and AMD Zen 4) where SIMD-specific frequency throttling is not observed. + +# Thread safety + +Like, for example, STL containers, the CRoaring library has no built-in thread support. Thus whenever you modify a bitmap in one thread, it is unsafe to query it in others. However, you can safely copy a bitmap and use both copies in concurrently. + +If you use "copy-on-write" (default to disabled), then you should pass copies to the different threads. They will create shared containers, and for shared containers, we use reference counting with an atomic counter. + + + +To summarize: +- If you do not use copy-on-write, you can access concurrent the same bitmap safely as long as you do not modify it. If you plan on modifying it, you should pass different copies to the different threads. +- If you use copy-on-write, you should always pass copies to the different threads. The copies and then lightweight (shared containers). + +Thus the following pattern where you copy bitmaps and pass them to different threads is safe with or without COW: + +```C + roaring_bitmap_set_copy_on_write(r1, true); + roaring_bitmap_set_copy_on_write(r2, true); + roaring_bitmap_set_copy_on_write(r3, true); + + roaring_bitmap_t * r1a = roaring_bitmap_copy(r1); + roaring_bitmap_t * r1b = roaring_bitmap_copy(r1); + + roaring_bitmap_t * r2a = roaring_bitmap_copy(r2); + roaring_bitmap_t * r2b = roaring_bitmap_copy(r2); + + roaring_bitmap_t * r3a = roaring_bitmap_copy(r3); + roaring_bitmap_t * r3b = roaring_bitmap_copy(r3); + + roaring_bitmap_t *rarray1[3] = {r1a, r2a, r3a}; + roaring_bitmap_t *rarray2[3] = {r1b, r2b, r3b}; + std::thread thread1(run, rarray1); + std::thread thread2(run, rarray2); +``` + +# How to best aggregate bitmaps? + +Suppose you want to compute the union (OR) of many bitmaps. How do you proceed? There are many +different strategies. + +You can use `roaring_bitmap_or_many(bitmapcount, bitmaps)` or `roaring_bitmap_or_many_heap(bitmapcount, bitmaps)` or you may +even roll your own aggregation: + +```C +roaring_bitmap_t *answer = roaring_bitmap_copy(bitmaps[0]); +for (size_t i = 1; i < bitmapcount; i++) { + roaring_bitmap_or_inplace(answer, bitmaps[i]); +} +``` + +All of them will work but they have different performance characteristics. The `roaring_bitmap_or_many_heap` should +probably only be used if, after benchmarking, you find that it is faster by a good margin: it uses more memory. + +The `roaring_bitmap_or_many` is meant as a good default. It works by trying to delay work as much as possible. +However, because it delays computations, it also does not optimize the format as the computation runs. It might +thus fail to see some useful pattern in the data such as long consecutive values. + +The approach based on repeated calls to `roaring_bitmap_or_inplace` +is also fine, and might even be faster in some cases. You can expect it to be faster if, after +a few calls, you get long sequences of consecutive values in the answer. That is, if the +final answer is all integers in the range [0,1000000), and this is apparent quickly, then the +later `roaring_bitmap_or_inplace` will be very fast. + +You should benchmark these alternatives on your own data to decide what is best. + +# Wrappers + +## Python +Tom Cornebize wrote a Python wrapper available at https://github.com/Ezibenroc/PyRoaringBitMap +Installing it is as easy as typing... + +``` +pip install pyroaring +``` + +## JavaScript + +Salvatore Previti wrote a Node/JavaScript wrapper available at https://github.com/SalvatorePreviti/roaring-node +Installing it is as easy as typing... + +``` +npm install roaring +``` + +## Swift + +Jérémie Piotte wrote a [Swift wrapper](https://github.com/RoaringBitmap/SwiftRoaring). + + +## C# + +Brandon Smith wrote a C# wrapper available at https://github.com/RogueException/CRoaring.Net (works for Windows and Linux under x64 processors) + + +## Go (golang) + +There is a Go (golang) wrapper available at https://github.com/RoaringBitmap/gocroaring + +## Rust + +Saulius Grigaliunas wrote a Rust wrapper available at https://github.com/saulius/croaring-rs + +## D + +Yuce Tekol wrote a D wrapper available at https://github.com/yuce/droaring + +## Redis + +Antonio Guilherme Ferreira Viggiano wrote a Redis Module available at https://github.com/aviggiano/redis-roaring + +## Zig + +Justin Whear wrote a Zig wrapper available at https://github.com/jwhear/roaring-zig + + +# Mailing list/discussion group + +https://groups.google.com/forum/#!forum/roaring-bitmaps + +# Contributing + +When contributing a change to the project, please run `tools/clang-format.sh` after making any changes. A github action runs on all PRs to ensure formatting is consistent with this. + +# References about Roaring + +- Daniel Lemire, Owen Kaser, Nathan Kurz, Luca Deri, Chris O'Hara, François Saint-Jacques, Gregory Ssi-Yan-Kai, Roaring Bitmaps: Implementation of an Optimized Software Library, Software: Practice and Experience Volume 48, Issue 4 April 2018 Pages 867-895 [arXiv:1709.07821](https://arxiv.org/abs/1709.07821) +- Samy Chambi, Daniel Lemire, Owen Kaser, Robert Godin, +Better bitmap performance with Roaring bitmaps, +Software: Practice and Experience Volume 46, Issue 5, pages 709–719, May 2016 [arXiv:1402.6407](http://arxiv.org/abs/1402.6407) +- Daniel Lemire, Gregory Ssi-Yan-Kai, Owen Kaser, Consistently faster and smaller compressed bitmaps with Roaring, Software: Practice and Experience Volume 46, Issue 11, pages 1547-1569, November 2016 [arXiv:1603.06549](http://arxiv.org/abs/1603.06549) +- Samy Chambi, Daniel Lemire, Robert Godin, Kamel Boukhalfa, Charles Allen, Fangjin Yang, Optimizing Druid with Roaring bitmaps, IDEAS 2016, 2016. http://r-libre.teluq.ca/950/ diff --git a/contrib/libs/croaring/SECURITY.md b/contrib/libs/croaring/SECURITY.md new file mode 100644 index 000000000000..1d9c45c86e1a --- /dev/null +++ b/contrib/libs/croaring/SECURITY.md @@ -0,0 +1,9 @@ +# Security Policy + +## Reporting a Vulnerability + +Please use the following contact information for reporting a vulnerability: + +- [Daniel Lemire]( https://www.teluq.ca/siteweb/univ/en/dlemire.html) - daniel@lemire.me + + diff --git a/contrib/libs/croaring/include/roaring/array_util.h b/contrib/libs/croaring/include/roaring/array_util.h new file mode 100644 index 000000000000..8ac875a76226 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/array_util.h @@ -0,0 +1,274 @@ +#ifndef CROARING_ARRAY_UTIL_H +#define CROARING_ARRAY_UTIL_H + +#include // for size_t +#include + +#include + +#if CROARING_IS_X64 +#ifndef CROARING_COMPILER_SUPPORTS_AVX512 +#error "CROARING_COMPILER_SUPPORTS_AVX512 needs to be defined." +#endif // CROARING_COMPILER_SUPPORTS_AVX512 +#endif +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wuninitialized" +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +/* + * Good old binary search. + * Assumes that array is sorted, has logarithmic complexity. + * if the result is x, then: + * if ( x>0 ) you have array[x] = ikey + * if ( x<0 ) then inserting ikey at position -x-1 in array (insuring that + * array[-x-1]=ikey) keys the array sorted. + */ +inline int32_t binarySearch(const uint16_t *array, int32_t lenarray, + uint16_t ikey) { + int32_t low = 0; + int32_t high = lenarray - 1; + while (low <= high) { + int32_t middleIndex = (low + high) >> 1; + uint16_t middleValue = array[middleIndex]; + if (middleValue < ikey) { + low = middleIndex + 1; + } else if (middleValue > ikey) { + high = middleIndex - 1; + } else { + return middleIndex; + } + } + return -(low + 1); +} + +/** + * Galloping search + * Assumes that array is sorted, has logarithmic complexity. + * if the result is x, then if x = length, you have that all values in array + * between pos and length are smaller than min. otherwise returns the first + * index x such that array[x] >= min. + */ +static inline int32_t advanceUntil(const uint16_t *array, int32_t pos, + int32_t length, uint16_t min) { + int32_t lower = pos + 1; + + if ((lower >= length) || (array[lower] >= min)) { + return lower; + } + + int32_t spansize = 1; + + while ((lower + spansize < length) && (array[lower + spansize] < min)) { + spansize <<= 1; + } + int32_t upper = (lower + spansize < length) ? lower + spansize : length - 1; + + if (array[upper] == min) { + return upper; + } + if (array[upper] < min) { + // means + // array + // has no + // item + // >= min + // pos = array.length; + return length; + } + + // we know that the next-smallest span was too small + lower += (spansize >> 1); + + int32_t mid = 0; + while (lower + 1 != upper) { + mid = (lower + upper) >> 1; + if (array[mid] == min) { + return mid; + } else if (array[mid] < min) { + lower = mid; + } else { + upper = mid; + } + } + return upper; +} + +/** + * Returns number of elements which are less than ikey. + * Array elements must be unique and sorted. + */ +static inline int32_t count_less(const uint16_t *array, int32_t lenarray, + uint16_t ikey) { + if (lenarray == 0) return 0; + int32_t pos = binarySearch(array, lenarray, ikey); + return pos >= 0 ? pos : -(pos + 1); +} + +/** + * Returns number of elements which are greater than ikey. + * Array elements must be unique and sorted. + */ +static inline int32_t count_greater(const uint16_t *array, int32_t lenarray, + uint16_t ikey) { + if (lenarray == 0) return 0; + int32_t pos = binarySearch(array, lenarray, ikey); + if (pos >= 0) { + return lenarray - (pos + 1); + } else { + return lenarray - (-pos - 1); + } +} + +/** + * From Schlegel et al., Fast Sorted-Set Intersection using SIMD Instructions + * Optimized by D. Lemire on May 3rd 2013 + * + * C should have capacity greater than the minimum of s_1 and s_b + 8 + * where 8 is sizeof(__m128i)/sizeof(uint16_t). + */ +int32_t intersect_vector16(const uint16_t *__restrict__ A, size_t s_a, + const uint16_t *__restrict__ B, size_t s_b, + uint16_t *C); + +int32_t intersect_vector16_inplace(uint16_t *__restrict__ A, size_t s_a, + const uint16_t *__restrict__ B, size_t s_b); + +/** + * Take an array container and write it out to a 32-bit array, using base + * as the offset. + */ +int array_container_to_uint32_array_vector16(void *vout, const uint16_t *array, + size_t cardinality, uint32_t base); +#if CROARING_COMPILER_SUPPORTS_AVX512 +int avx512_array_container_to_uint32_array(void *vout, const uint16_t *array, + size_t cardinality, uint32_t base); +#endif +/** + * Compute the cardinality of the intersection using SSE4 instructions + */ +int32_t intersect_vector16_cardinality(const uint16_t *__restrict__ A, + size_t s_a, + const uint16_t *__restrict__ B, + size_t s_b); + +/* Computes the intersection between one small and one large set of uint16_t. + * Stores the result into buffer and return the number of elements. */ +int32_t intersect_skewed_uint16(const uint16_t *smallarray, size_t size_s, + const uint16_t *largearray, size_t size_l, + uint16_t *buffer); + +/* Computes the size of the intersection between one small and one large set of + * uint16_t. */ +int32_t intersect_skewed_uint16_cardinality(const uint16_t *smallarray, + size_t size_s, + const uint16_t *largearray, + size_t size_l); + +/* Check whether the size of the intersection between one small and one large + * set of uint16_t is non-zero. */ +bool intersect_skewed_uint16_nonempty(const uint16_t *smallarray, size_t size_s, + const uint16_t *largearray, + size_t size_l); +/** + * Generic intersection function. + */ +int32_t intersect_uint16(const uint16_t *A, const size_t lenA, + const uint16_t *B, const size_t lenB, uint16_t *out); +/** + * Compute the size of the intersection (generic). + */ +int32_t intersect_uint16_cardinality(const uint16_t *A, const size_t lenA, + const uint16_t *B, const size_t lenB); + +/** + * Checking whether the size of the intersection is non-zero. + */ +bool intersect_uint16_nonempty(const uint16_t *A, const size_t lenA, + const uint16_t *B, const size_t lenB); +/** + * Generic union function. + */ +size_t union_uint16(const uint16_t *set_1, size_t size_1, const uint16_t *set_2, + size_t size_2, uint16_t *buffer); + +/** + * Generic XOR function. + */ +int32_t xor_uint16(const uint16_t *array_1, int32_t card_1, + const uint16_t *array_2, int32_t card_2, uint16_t *out); + +/** + * Generic difference function (ANDNOT). + */ +int difference_uint16(const uint16_t *a1, int length1, const uint16_t *a2, + int length2, uint16_t *a_out); + +/** + * Generic intersection function. + */ +size_t intersection_uint32(const uint32_t *A, const size_t lenA, + const uint32_t *B, const size_t lenB, uint32_t *out); + +/** + * Generic intersection function, returns just the cardinality. + */ +size_t intersection_uint32_card(const uint32_t *A, const size_t lenA, + const uint32_t *B, const size_t lenB); + +/** + * Generic union function. + */ +size_t union_uint32(const uint32_t *set_1, size_t size_1, const uint32_t *set_2, + size_t size_2, uint32_t *buffer); + +/** + * A fast SSE-based union function. + */ +uint32_t union_vector16(const uint16_t *__restrict__ set_1, uint32_t size_1, + const uint16_t *__restrict__ set_2, uint32_t size_2, + uint16_t *__restrict__ buffer); +/** + * A fast SSE-based XOR function. + */ +uint32_t xor_vector16(const uint16_t *__restrict__ array1, uint32_t length1, + const uint16_t *__restrict__ array2, uint32_t length2, + uint16_t *__restrict__ output); + +/** + * A fast SSE-based difference function. + */ +int32_t difference_vector16(const uint16_t *__restrict__ A, size_t s_a, + const uint16_t *__restrict__ B, size_t s_b, + uint16_t *C); + +/** + * Generic union function, returns just the cardinality. + */ +size_t union_uint32_card(const uint32_t *set_1, size_t size_1, + const uint32_t *set_2, size_t size_2); + +/** + * combines union_uint16 and union_vector16 optimally + */ +size_t fast_union_uint16(const uint16_t *set_1, size_t size_1, + const uint16_t *set_2, size_t size_2, + uint16_t *buffer); + +bool memequals(const void *s1, const void *s2, size_t n); + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif +#endif diff --git a/contrib/libs/croaring/include/roaring/art/art.h b/contrib/libs/croaring/include/roaring/art/art.h new file mode 100644 index 000000000000..e191c1eedaa3 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/art/art.h @@ -0,0 +1,192 @@ +#ifndef ART_ART_H +#define ART_ART_H + +#include +#include +#include + +/* + * This file contains an implementation of an Adaptive Radix Tree as described + * in https://db.in.tum.de/~leis/papers/ART.pdf. + * + * The ART contains the keys in _byte lexographical_ order. + * + * Other features: + * * Fixed 48 bit key length: all keys are assumed to be be 48 bits in size. + * This allows us to put the key and key prefixes directly in nodes, reducing + * indirection at no additional memory overhead. + * * Key compression: the only inner nodes created are at points where key + * chunks _differ_. This means that if there are two entries with different + * high 48 bits, then there is only one inner node containing the common key + * prefix, and two leaves. + * * Intrusive leaves: the leaf struct is included in user values. This removes + * a layer of indirection. + */ + +// Fixed length of keys in the ART. All keys are assumed to be of this length. +#define ART_KEY_BYTES 6 + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +typedef uint8_t art_key_chunk_t; +typedef struct art_node_s art_node_t; + +/** + * Wrapper to allow an empty tree. + */ +typedef struct art_s { + art_node_t *root; +} art_t; + +/** + * Values inserted into the tree have to be cast-able to art_val_t. This + * improves performance by reducing indirection. + * + * NOTE: Value pointers must be unique! This is because each value struct + * contains the key corresponding to the value. + */ +typedef struct art_val_s { + art_key_chunk_t key[ART_KEY_BYTES]; +} art_val_t; + +/** + * Compares two keys, returns their relative order: + * * Key 1 < key 2: returns a negative value + * * Key 1 == key 2: returns 0 + * * Key 1 > key 2: returns a positive value + */ +int art_compare_keys(const art_key_chunk_t key1[], + const art_key_chunk_t key2[]); + +/** + * Inserts the given key and value. + */ +void art_insert(art_t *art, const art_key_chunk_t *key, art_val_t *val); + +/** + * Returns the value erased, NULL if not found. + */ +art_val_t *art_erase(art_t *art, const art_key_chunk_t *key); + +/** + * Returns the value associated with the given key, NULL if not found. + */ +art_val_t *art_find(const art_t *art, const art_key_chunk_t *key); + +/** + * Returns true if the ART is empty. + */ +bool art_is_empty(const art_t *art); + +/** + * Frees the nodes of the ART except the values, which the user is expected to + * free. + */ +void art_free(art_t *art); + +/** + * Returns the size in bytes of the ART. Includes size of pointers to values, + * but not the values themselves. + */ +size_t art_size_in_bytes(const art_t *art); + +/** + * Prints the ART using printf, useful for debugging. + */ +void art_printf(const art_t *art); + +/** + * Callback for validating the value stored in a leaf. + * + * Should return true if the value is valid, false otherwise + * If false is returned, `*reason` should be set to a static string describing + * the reason for the failure. + */ +typedef bool (*art_validate_cb_t)(const art_val_t *val, const char **reason); + +/** + * Validate the ART tree, ensuring it is internally consistent. + */ +bool art_internal_validate(const art_t *art, const char **reason, + art_validate_cb_t validate_cb); + +/** + * ART-internal iterator bookkeeping. Users should treat this as an opaque type. + */ +typedef struct art_iterator_frame_s { + art_node_t *node; + uint8_t index_in_node; +} art_iterator_frame_t; + +/** + * Users should only access `key` and `value` in iterators. The iterator is + * valid when `value != NULL`. + */ +typedef struct art_iterator_s { + art_key_chunk_t key[ART_KEY_BYTES]; + art_val_t *value; + + uint8_t depth; // Key depth + uint8_t frame; // Node depth + + // State for each node in the ART the iterator has travelled from the root. + // This is `ART_KEY_BYTES + 1` because it includes state for the leaf too. + art_iterator_frame_t frames[ART_KEY_BYTES + 1]; +} art_iterator_t; + +/** + * Creates an iterator initialzed to the first or last entry in the ART, + * depending on `first`. The iterator is not valid if there are no entries in + * the ART. + */ +art_iterator_t art_init_iterator(const art_t *art, bool first); + +/** + * Returns an initialized iterator positioned at a key equal to or greater than + * the given key, if it exists. + */ +art_iterator_t art_lower_bound(const art_t *art, const art_key_chunk_t *key); + +/** + * Returns an initialized iterator positioned at a key greater than the given + * key, if it exists. + */ +art_iterator_t art_upper_bound(const art_t *art, const art_key_chunk_t *key); + +/** + * The following iterator movement functions return true if a new entry was + * encountered. + */ +bool art_iterator_move(art_iterator_t *iterator, bool forward); +bool art_iterator_next(art_iterator_t *iterator); +bool art_iterator_prev(art_iterator_t *iterator); + +/** + * Moves the iterator forward to a key equal to or greater than the given key. + */ +bool art_iterator_lower_bound(art_iterator_t *iterator, + const art_key_chunk_t *key); + +/** + * Insert the value and positions the iterator at the key. + */ +void art_iterator_insert(art_t *art, art_iterator_t *iterator, + const art_key_chunk_t *key, art_val_t *val); + +/** + * Erase the value pointed at by the iterator. Moves the iterator to the next + * leaf. Returns the value erased or NULL if nothing was erased. + */ +art_val_t *art_iterator_erase(art_t *art, art_iterator_t *iterator); + +#ifdef __cplusplus +} // extern "C" +} // namespace roaring +} // namespace internal +#endif + +#endif diff --git a/contrib/libs/croaring/include/roaring/bitset/bitset.h b/contrib/libs/croaring/include/roaring/bitset/bitset.h new file mode 100644 index 000000000000..c57d73d108a7 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/bitset/bitset.h @@ -0,0 +1,294 @@ +#ifndef CROARING_CBITSET_BITSET_H +#define CROARING_CBITSET_BITSET_H + +// For compatibility with MSVC with the use of `restrict` +#if (__STDC_VERSION__ >= 199901L) || \ + (defined(__GNUC__) && defined(__STDC_VERSION__)) +#define CROARING_CBITSET_RESTRICT restrict +#else +#define CROARING_CBITSET_RESTRICT +#endif // (__STDC_VERSION__ >= 199901L) || (defined(__GNUC__) && + // defined(__STDC_VERSION__ )) + +#include +#include +#include +#include +#include + +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace api { +#endif + +struct bitset_s { + uint64_t *CROARING_CBITSET_RESTRICT array; + /* For simplicity and performance, we prefer to have a size and a capacity + * that is a multiple of 64 bits. Thus we only track the size and the + * capacity in terms of 64-bit words allocated */ + size_t arraysize; + size_t capacity; +}; + +typedef struct bitset_s bitset_t; + +/* Create a new bitset. Return NULL in case of failure. */ +bitset_t *bitset_create(void); + +/* Create a new bitset able to contain size bits. Return NULL in case of + * failure. */ +bitset_t *bitset_create_with_capacity(size_t size); + +/* Free memory. */ +void bitset_free(bitset_t *bitset); + +/* Set all bits to zero. */ +void bitset_clear(bitset_t *bitset); + +/* Set all bits to one. */ +void bitset_fill(bitset_t *bitset); + +/* Create a copy */ +bitset_t *bitset_copy(const bitset_t *bitset); + +/* For advanced users: Resize the bitset so that it can support newarraysize * + * 64 bits. Return true in case of success, false for failure. Pad with zeroes + * new buffer areas if requested. */ +bool bitset_resize(bitset_t *bitset, size_t newarraysize, bool padwithzeroes); + +/* returns how many bytes of memory the backend buffer uses */ +inline size_t bitset_size_in_bytes(const bitset_t *bitset) { + return bitset->arraysize * sizeof(uint64_t); +} + +/* returns how many bits can be accessed */ +inline size_t bitset_size_in_bits(const bitset_t *bitset) { + return bitset->arraysize * 64; +} + +/* returns how many words (64-bit) of memory the backend buffer uses */ +inline size_t bitset_size_in_words(const bitset_t *bitset) { + return bitset->arraysize; +} + +/* For advanced users: Grow the bitset so that it can support newarraysize * 64 + * bits with padding. Return true in case of success, false for failure. */ +bool bitset_grow(bitset_t *bitset, size_t newarraysize); + +/* attempts to recover unused memory, return false in case of + * roaring_reallocation failure */ +bool bitset_trim(bitset_t *bitset); + +/* shifts all bits by 's' positions so that the bitset representing values + * 1,2,10 would represent values 1+s, 2+s, 10+s */ +void bitset_shift_left(bitset_t *bitset, size_t s); + +/* shifts all bits by 's' positions so that the bitset representing values + * 1,2,10 would represent values 1-s, 2-s, 10-s, negative values are deleted */ +void bitset_shift_right(bitset_t *bitset, size_t s); + +/* Set the ith bit. Attempts to resize the bitset if needed (may silently fail) + */ +inline void bitset_set(bitset_t *bitset, size_t i) { + size_t shiftedi = i / 64; + if (shiftedi >= bitset->arraysize) { + if (!bitset_grow(bitset, shiftedi + 1)) { + return; + } + } + bitset->array[shiftedi] |= ((uint64_t)1) << (i % 64); +} + +/* Set the ith bit to the specified value. Attempts to resize the bitset if + * needed (may silently fail) */ +inline void bitset_set_to_value(bitset_t *bitset, size_t i, bool flag) { + size_t shiftedi = i / 64; + uint64_t mask = ((uint64_t)1) << (i % 64); + uint64_t dynmask = ((uint64_t)flag) << (i % 64); + if (shiftedi >= bitset->arraysize) { + if (!bitset_grow(bitset, shiftedi + 1)) { + return; + } + } + uint64_t w = bitset->array[shiftedi]; + w &= ~mask; + w |= dynmask; + bitset->array[shiftedi] = w; +} + +/* Get the value of the ith bit. */ +inline bool bitset_get(const bitset_t *bitset, size_t i) { + size_t shiftedi = i / 64; + if (shiftedi >= bitset->arraysize) { + return false; + } + return (bitset->array[shiftedi] & (((uint64_t)1) << (i % 64))) != 0; +} + +/* Count number of bits set. */ +size_t bitset_count(const bitset_t *bitset); + +/* Find the index of the first bit set. Or zero if the bitset is empty. */ +size_t bitset_minimum(const bitset_t *bitset); + +/* Find the index of the last bit set. Or zero if the bitset is empty. */ +size_t bitset_maximum(const bitset_t *bitset); + +/* compute the union in-place (to b1), returns true if successful, to generate a + * new bitset first call bitset_copy */ +bool bitset_inplace_union(bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2); + +/* report the size of the union (without materializing it) */ +size_t bitset_union_count(const bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2); + +/* compute the intersection in-place (to b1), to generate a new bitset first + * call bitset_copy */ +void bitset_inplace_intersection(bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2); + +/* report the size of the intersection (without materializing it) */ +size_t bitset_intersection_count(const bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2); + +/* returns true if the bitsets contain no common elements */ +bool bitsets_disjoint(const bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2); + +/* returns true if the bitsets contain any common elements */ +bool bitsets_intersect(const bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2); + +/* returns true if b1 contains all of the set bits of b2 */ +bool bitset_contains_all(const bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2); + +/* compute the difference in-place (to b1), to generate a new bitset first call + * bitset_copy */ +void bitset_inplace_difference(bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2); + +/* compute the size of the difference */ +size_t bitset_difference_count(const bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2); + +/* compute the symmetric difference in-place (to b1), return true if successful, + * to generate a new bitset first call bitset_copy */ +bool bitset_inplace_symmetric_difference( + bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2); + +/* compute the size of the symmetric difference */ +size_t bitset_symmetric_difference_count( + const bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2); + +/* iterate over the set bits + like so : + for(size_t i = 0; bitset_next_set_bit(b,&i) ; i++) { + //..... + } + */ +inline bool bitset_next_set_bit(const bitset_t *bitset, size_t *i) { + size_t x = *i / 64; + if (x >= bitset->arraysize) { + return false; + } + uint64_t w = bitset->array[x]; + w >>= (*i & 63); + if (w != 0) { + *i += roaring_trailing_zeroes(w); + return true; + } + x++; + while (x < bitset->arraysize) { + w = bitset->array[x]; + if (w != 0) { + *i = x * 64 + roaring_trailing_zeroes(w); + return true; + } + x++; + } + return false; +} + +/* iterate over the set bits + like so : + size_t buffer[256]; + size_t howmany = 0; + for(size_t startfrom = 0; (howmany = bitset_next_set_bits(b,buffer,256, + &startfrom)) > 0 ; startfrom++) { + //..... + } + */ +inline size_t bitset_next_set_bits(const bitset_t *bitset, size_t *buffer, + size_t capacity, size_t *startfrom) { + if (capacity == 0) return 0; // sanity check + size_t x = *startfrom / 64; + if (x >= bitset->arraysize) { + return 0; // nothing more to iterate over + } + uint64_t w = bitset->array[x]; + w >>= (*startfrom & 63); + size_t howmany = 0; + size_t base = x << 6; + while (howmany < capacity) { + while (w != 0) { + uint64_t t = w & (~w + 1); + int r = roaring_trailing_zeroes(w); + buffer[howmany++] = r + base; + if (howmany == capacity) goto end; + w ^= t; + } + x += 1; + if (x == bitset->arraysize) { + break; + } + base += 64; + w = bitset->array[x]; + } +end: + if (howmany > 0) { + *startfrom = buffer[howmany - 1]; + } + return howmany; +} + +typedef bool (*bitset_iterator)(size_t value, void *param); + +// return true if uninterrupted +inline bool bitset_for_each(const bitset_t *b, bitset_iterator iterator, + void *ptr) { + size_t base = 0; + for (size_t i = 0; i < b->arraysize; ++i) { + uint64_t w = b->array[i]; + while (w != 0) { + uint64_t t = w & (~w + 1); + int r = roaring_trailing_zeroes(w); + if (!iterator(r + base, ptr)) return false; + w ^= t; + } + base += 64; + } + return true; +} + +inline void bitset_print(const bitset_t *b) { + printf("{"); + for (size_t i = 0; bitset_next_set_bit(b, &i); i++) { + printf("%zu, ", i); + } + printf("}"); +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace api { +#endif + +#endif diff --git a/contrib/libs/croaring/include/roaring/bitset_util.h b/contrib/libs/croaring/include/roaring/bitset_util.h new file mode 100644 index 000000000000..7e027f191949 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/bitset_util.h @@ -0,0 +1,718 @@ +#ifndef CROARING_BITSET_UTIL_H +#define CROARING_BITSET_UTIL_H + +#include + +#include +#include + +#if CROARING_IS_X64 +#ifndef CROARING_COMPILER_SUPPORTS_AVX512 +#error "CROARING_COMPILER_SUPPORTS_AVX512 needs to be defined." +#endif // CROARING_COMPILER_SUPPORTS_AVX512 +#endif +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wuninitialized" +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +/* + * Set all bits in indexes [begin,end) to true. + */ +static inline void bitset_set_range(uint64_t *words, uint32_t start, + uint32_t end) { + if (start == end) return; + uint32_t firstword = start / 64; + uint32_t endword = (end - 1) / 64; + if (firstword == endword) { + words[firstword] |= ((~UINT64_C(0)) << (start % 64)) & + ((~UINT64_C(0)) >> ((~end + 1) % 64)); + return; + } + words[firstword] |= (~UINT64_C(0)) << (start % 64); + for (uint32_t i = firstword + 1; i < endword; i++) { + words[i] = ~UINT64_C(0); + } + words[endword] |= (~UINT64_C(0)) >> ((~end + 1) % 64); +} + +/* + * Find the cardinality of the bitset in [begin,begin+lenminusone] + */ +static inline int bitset_lenrange_cardinality(const uint64_t *words, + uint32_t start, + uint32_t lenminusone) { + uint32_t firstword = start / 64; + uint32_t endword = (start + lenminusone) / 64; + if (firstword == endword) { + return roaring_hamming(words[firstword] & + ((~UINT64_C(0)) >> ((63 - lenminusone) % 64)) + << (start % 64)); + } + int answer = + roaring_hamming(words[firstword] & ((~UINT64_C(0)) << (start % 64))); + for (uint32_t i = firstword + 1; i < endword; i++) { + answer += roaring_hamming(words[i]); + } + answer += roaring_hamming(words[endword] & + (~UINT64_C(0)) >> + (((~start + 1) - lenminusone - 1) % 64)); + return answer; +} + +/* + * Check whether the cardinality of the bitset in [begin,begin+lenminusone] is 0 + */ +static inline bool bitset_lenrange_empty(const uint64_t *words, uint32_t start, + uint32_t lenminusone) { + uint32_t firstword = start / 64; + uint32_t endword = (start + lenminusone) / 64; + if (firstword == endword) { + return (words[firstword] & ((~UINT64_C(0)) >> ((63 - lenminusone) % 64)) + << (start % 64)) == 0; + } + if (((words[firstword] & ((~UINT64_C(0)) << (start % 64)))) != 0) { + return false; + } + for (uint32_t i = firstword + 1; i < endword; i++) { + if (words[i] != 0) { + return false; + } + } + if ((words[endword] & + (~UINT64_C(0)) >> (((~start + 1) - lenminusone - 1) % 64)) != 0) { + return false; + } + return true; +} + +/* + * Set all bits in indexes [begin,begin+lenminusone] to true. + */ +static inline void bitset_set_lenrange(uint64_t *words, uint32_t start, + uint32_t lenminusone) { + uint32_t firstword = start / 64; + uint32_t endword = (start + lenminusone) / 64; + if (firstword == endword) { + words[firstword] |= ((~UINT64_C(0)) >> ((63 - lenminusone) % 64)) + << (start % 64); + return; + } + uint64_t temp = words[endword]; + words[firstword] |= (~UINT64_C(0)) << (start % 64); + for (uint32_t i = firstword + 1; i < endword; i += 2) + words[i] = words[i + 1] = ~UINT64_C(0); + words[endword] = + temp | (~UINT64_C(0)) >> (((~start + 1) - lenminusone - 1) % 64); +} + +/* + * Flip all the bits in indexes [begin,end). + */ +static inline void bitset_flip_range(uint64_t *words, uint32_t start, + uint32_t end) { + if (start == end) return; + uint32_t firstword = start / 64; + uint32_t endword = (end - 1) / 64; + words[firstword] ^= ~((~UINT64_C(0)) << (start % 64)); + for (uint32_t i = firstword; i < endword; i++) { + words[i] = ~words[i]; + } + words[endword] ^= ((~UINT64_C(0)) >> ((~end + 1) % 64)); +} + +/* + * Set all bits in indexes [begin,end) to false. + */ +static inline void bitset_reset_range(uint64_t *words, uint32_t start, + uint32_t end) { + if (start == end) return; + uint32_t firstword = start / 64; + uint32_t endword = (end - 1) / 64; + if (firstword == endword) { + words[firstword] &= ~(((~UINT64_C(0)) << (start % 64)) & + ((~UINT64_C(0)) >> ((~end + 1) % 64))); + return; + } + words[firstword] &= ~((~UINT64_C(0)) << (start % 64)); + for (uint32_t i = firstword + 1; i < endword; i++) { + words[i] = UINT64_C(0); + } + words[endword] &= ~((~UINT64_C(0)) >> ((~end + 1) % 64)); +} + +/* + * Given a bitset containing "length" 64-bit words, write out the position + * of all the set bits to "out", values start at "base". + * + * The "out" pointer should be sufficient to store the actual number of bits + * set. + * + * Returns how many values were actually decoded. + * + * This function should only be expected to be faster than + * bitset_extract_setbits + * when the density of the bitset is high. + * + * This function uses AVX2 decoding. + */ +size_t bitset_extract_setbits_avx2(const uint64_t *words, size_t length, + uint32_t *out, size_t outcapacity, + uint32_t base); + +size_t bitset_extract_setbits_avx512(const uint64_t *words, size_t length, + uint32_t *out, size_t outcapacity, + uint32_t base); +/* + * Given a bitset containing "length" 64-bit words, write out the position + * of all the set bits to "out", values start at "base". + * + * The "out" pointer should be sufficient to store the actual number of bits + *set. + * + * Returns how many values were actually decoded. + */ +size_t bitset_extract_setbits(const uint64_t *words, size_t length, + uint32_t *out, uint32_t base); + +/* + * Given a bitset containing "length" 64-bit words, write out the position + * of all the set bits to "out" as 16-bit integers, values start at "base" (can + *be set to zero) + * + * The "out" pointer should be sufficient to store the actual number of bits + *set. + * + * Returns how many values were actually decoded. + * + * This function should only be expected to be faster than + *bitset_extract_setbits_uint16 + * when the density of the bitset is high. + * + * This function uses SSE decoding. + */ +size_t bitset_extract_setbits_sse_uint16(const uint64_t *words, size_t length, + uint16_t *out, size_t outcapacity, + uint16_t base); + +size_t bitset_extract_setbits_avx512_uint16(const uint64_t *words, + size_t length, uint16_t *out, + size_t outcapacity, uint16_t base); + +/* + * Given a bitset containing "length" 64-bit words, write out the position + * of all the set bits to "out", values start at "base" + * (can be set to zero) + * + * The "out" pointer should be sufficient to store the actual number of bits + *set. + * + * Returns how many values were actually decoded. + */ +size_t bitset_extract_setbits_uint16(const uint64_t *words, size_t length, + uint16_t *out, uint16_t base); + +/* + * Given two bitsets containing "length" 64-bit words, write out the position + * of all the common set bits to "out", values start at "base" + * (can be set to zero) + * + * The "out" pointer should be sufficient to store the actual number of bits + * set. + * + * Returns how many values were actually decoded. + */ +size_t bitset_extract_intersection_setbits_uint16( + const uint64_t *__restrict__ words1, const uint64_t *__restrict__ words2, + size_t length, uint16_t *out, uint16_t base); + +/* + * Given a bitset having cardinality card, set all bit values in the list (there + * are length of them) + * and return the updated cardinality. This evidently assumes that the bitset + * already contained data. + */ +uint64_t bitset_set_list_withcard(uint64_t *words, uint64_t card, + const uint16_t *list, uint64_t length); +/* + * Given a bitset, set all bit values in the list (there + * are length of them). + */ +void bitset_set_list(uint64_t *words, const uint16_t *list, uint64_t length); + +/* + * Given a bitset having cardinality card, unset all bit values in the list + * (there are length of them) + * and return the updated cardinality. This evidently assumes that the bitset + * already contained data. + */ +uint64_t bitset_clear_list(uint64_t *words, uint64_t card, const uint16_t *list, + uint64_t length); + +/* + * Given a bitset having cardinality card, toggle all bit values in the list + * (there are length of them) + * and return the updated cardinality. This evidently assumes that the bitset + * already contained data. + */ + +uint64_t bitset_flip_list_withcard(uint64_t *words, uint64_t card, + const uint16_t *list, uint64_t length); + +void bitset_flip_list(uint64_t *words, const uint16_t *list, uint64_t length); + +#if CROARING_IS_X64 +/*** + * BEGIN Harley-Seal popcount functions. + */ +CROARING_TARGET_AVX2 +/** + * Compute the population count of a 256-bit word + * This is not especially fast, but it is convenient as part of other functions. + */ +static inline __m256i popcount256(__m256i v) { + const __m256i lookuppos = _mm256_setr_epi8( + /* 0 */ 4 + 0, /* 1 */ 4 + 1, /* 2 */ 4 + 1, /* 3 */ 4 + 2, + /* 4 */ 4 + 1, /* 5 */ 4 + 2, /* 6 */ 4 + 2, /* 7 */ 4 + 3, + /* 8 */ 4 + 1, /* 9 */ 4 + 2, /* a */ 4 + 2, /* b */ 4 + 3, + /* c */ 4 + 2, /* d */ 4 + 3, /* e */ 4 + 3, /* f */ 4 + 4, + + /* 0 */ 4 + 0, /* 1 */ 4 + 1, /* 2 */ 4 + 1, /* 3 */ 4 + 2, + /* 4 */ 4 + 1, /* 5 */ 4 + 2, /* 6 */ 4 + 2, /* 7 */ 4 + 3, + /* 8 */ 4 + 1, /* 9 */ 4 + 2, /* a */ 4 + 2, /* b */ 4 + 3, + /* c */ 4 + 2, /* d */ 4 + 3, /* e */ 4 + 3, /* f */ 4 + 4); + const __m256i lookupneg = _mm256_setr_epi8( + /* 0 */ 4 - 0, /* 1 */ 4 - 1, /* 2 */ 4 - 1, /* 3 */ 4 - 2, + /* 4 */ 4 - 1, /* 5 */ 4 - 2, /* 6 */ 4 - 2, /* 7 */ 4 - 3, + /* 8 */ 4 - 1, /* 9 */ 4 - 2, /* a */ 4 - 2, /* b */ 4 - 3, + /* c */ 4 - 2, /* d */ 4 - 3, /* e */ 4 - 3, /* f */ 4 - 4, + + /* 0 */ 4 - 0, /* 1 */ 4 - 1, /* 2 */ 4 - 1, /* 3 */ 4 - 2, + /* 4 */ 4 - 1, /* 5 */ 4 - 2, /* 6 */ 4 - 2, /* 7 */ 4 - 3, + /* 8 */ 4 - 1, /* 9 */ 4 - 2, /* a */ 4 - 2, /* b */ 4 - 3, + /* c */ 4 - 2, /* d */ 4 - 3, /* e */ 4 - 3, /* f */ 4 - 4); + const __m256i low_mask = _mm256_set1_epi8(0x0f); + + const __m256i lo = _mm256_and_si256(v, low_mask); + const __m256i hi = _mm256_and_si256(_mm256_srli_epi16(v, 4), low_mask); + const __m256i popcnt1 = _mm256_shuffle_epi8(lookuppos, lo); + const __m256i popcnt2 = _mm256_shuffle_epi8(lookupneg, hi); + return _mm256_sad_epu8(popcnt1, popcnt2); +} +CROARING_UNTARGET_AVX2 + +CROARING_TARGET_AVX2 +/** + * Simple CSA over 256 bits + */ +static inline void CSA(__m256i *h, __m256i *l, __m256i a, __m256i b, + __m256i c) { + const __m256i u = _mm256_xor_si256(a, b); + *h = _mm256_or_si256(_mm256_and_si256(a, b), _mm256_and_si256(u, c)); + *l = _mm256_xor_si256(u, c); +} +CROARING_UNTARGET_AVX2 + +CROARING_TARGET_AVX2 +/** + * Fast Harley-Seal AVX population count function + */ +inline static uint64_t avx2_harley_seal_popcount256(const __m256i *data, + const uint64_t size) { + __m256i total = _mm256_setzero_si256(); + __m256i ones = _mm256_setzero_si256(); + __m256i twos = _mm256_setzero_si256(); + __m256i fours = _mm256_setzero_si256(); + __m256i eights = _mm256_setzero_si256(); + __m256i sixteens = _mm256_setzero_si256(); + __m256i twosA, twosB, foursA, foursB, eightsA, eightsB; + + const uint64_t limit = size - size % 16; + uint64_t i = 0; + + for (; i < limit; i += 16) { + CSA(&twosA, &ones, ones, _mm256_lddqu_si256(data + i), + _mm256_lddqu_si256(data + i + 1)); + CSA(&twosB, &ones, ones, _mm256_lddqu_si256(data + i + 2), + _mm256_lddqu_si256(data + i + 3)); + CSA(&foursA, &twos, twos, twosA, twosB); + CSA(&twosA, &ones, ones, _mm256_lddqu_si256(data + i + 4), + _mm256_lddqu_si256(data + i + 5)); + CSA(&twosB, &ones, ones, _mm256_lddqu_si256(data + i + 6), + _mm256_lddqu_si256(data + i + 7)); + CSA(&foursB, &twos, twos, twosA, twosB); + CSA(&eightsA, &fours, fours, foursA, foursB); + CSA(&twosA, &ones, ones, _mm256_lddqu_si256(data + i + 8), + _mm256_lddqu_si256(data + i + 9)); + CSA(&twosB, &ones, ones, _mm256_lddqu_si256(data + i + 10), + _mm256_lddqu_si256(data + i + 11)); + CSA(&foursA, &twos, twos, twosA, twosB); + CSA(&twosA, &ones, ones, _mm256_lddqu_si256(data + i + 12), + _mm256_lddqu_si256(data + i + 13)); + CSA(&twosB, &ones, ones, _mm256_lddqu_si256(data + i + 14), + _mm256_lddqu_si256(data + i + 15)); + CSA(&foursB, &twos, twos, twosA, twosB); + CSA(&eightsB, &fours, fours, foursA, foursB); + CSA(&sixteens, &eights, eights, eightsA, eightsB); + + total = _mm256_add_epi64(total, popcount256(sixteens)); + } + + total = _mm256_slli_epi64(total, 4); // * 16 + total = _mm256_add_epi64( + total, _mm256_slli_epi64(popcount256(eights), 3)); // += 8 * ... + total = _mm256_add_epi64( + total, _mm256_slli_epi64(popcount256(fours), 2)); // += 4 * ... + total = _mm256_add_epi64( + total, _mm256_slli_epi64(popcount256(twos), 1)); // += 2 * ... + total = _mm256_add_epi64(total, popcount256(ones)); + for (; i < size; i++) + total = + _mm256_add_epi64(total, popcount256(_mm256_lddqu_si256(data + i))); + + return (uint64_t)(_mm256_extract_epi64(total, 0)) + + (uint64_t)(_mm256_extract_epi64(total, 1)) + + (uint64_t)(_mm256_extract_epi64(total, 2)) + + (uint64_t)(_mm256_extract_epi64(total, 3)); +} +CROARING_UNTARGET_AVX2 + +#define CROARING_AVXPOPCNTFNC(opname, avx_intrinsic) \ + static inline uint64_t avx2_harley_seal_popcount256_##opname( \ + const __m256i *data1, const __m256i *data2, const uint64_t size) { \ + __m256i total = _mm256_setzero_si256(); \ + __m256i ones = _mm256_setzero_si256(); \ + __m256i twos = _mm256_setzero_si256(); \ + __m256i fours = _mm256_setzero_si256(); \ + __m256i eights = _mm256_setzero_si256(); \ + __m256i sixteens = _mm256_setzero_si256(); \ + __m256i twosA, twosB, foursA, foursB, eightsA, eightsB; \ + __m256i A1, A2; \ + const uint64_t limit = size - size % 16; \ + uint64_t i = 0; \ + for (; i < limit; i += 16) { \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i), \ + _mm256_lddqu_si256(data2 + i)); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 1), \ + _mm256_lddqu_si256(data2 + i + 1)); \ + CSA(&twosA, &ones, ones, A1, A2); \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 2), \ + _mm256_lddqu_si256(data2 + i + 2)); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 3), \ + _mm256_lddqu_si256(data2 + i + 3)); \ + CSA(&twosB, &ones, ones, A1, A2); \ + CSA(&foursA, &twos, twos, twosA, twosB); \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 4), \ + _mm256_lddqu_si256(data2 + i + 4)); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 5), \ + _mm256_lddqu_si256(data2 + i + 5)); \ + CSA(&twosA, &ones, ones, A1, A2); \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 6), \ + _mm256_lddqu_si256(data2 + i + 6)); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 7), \ + _mm256_lddqu_si256(data2 + i + 7)); \ + CSA(&twosB, &ones, ones, A1, A2); \ + CSA(&foursB, &twos, twos, twosA, twosB); \ + CSA(&eightsA, &fours, fours, foursA, foursB); \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 8), \ + _mm256_lddqu_si256(data2 + i + 8)); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 9), \ + _mm256_lddqu_si256(data2 + i + 9)); \ + CSA(&twosA, &ones, ones, A1, A2); \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 10), \ + _mm256_lddqu_si256(data2 + i + 10)); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 11), \ + _mm256_lddqu_si256(data2 + i + 11)); \ + CSA(&twosB, &ones, ones, A1, A2); \ + CSA(&foursA, &twos, twos, twosA, twosB); \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 12), \ + _mm256_lddqu_si256(data2 + i + 12)); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 13), \ + _mm256_lddqu_si256(data2 + i + 13)); \ + CSA(&twosA, &ones, ones, A1, A2); \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 14), \ + _mm256_lddqu_si256(data2 + i + 14)); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 15), \ + _mm256_lddqu_si256(data2 + i + 15)); \ + CSA(&twosB, &ones, ones, A1, A2); \ + CSA(&foursB, &twos, twos, twosA, twosB); \ + CSA(&eightsB, &fours, fours, foursA, foursB); \ + CSA(&sixteens, &eights, eights, eightsA, eightsB); \ + total = _mm256_add_epi64(total, popcount256(sixteens)); \ + } \ + total = _mm256_slli_epi64(total, 4); \ + total = _mm256_add_epi64(total, \ + _mm256_slli_epi64(popcount256(eights), 3)); \ + total = \ + _mm256_add_epi64(total, _mm256_slli_epi64(popcount256(fours), 2)); \ + total = \ + _mm256_add_epi64(total, _mm256_slli_epi64(popcount256(twos), 1)); \ + total = _mm256_add_epi64(total, popcount256(ones)); \ + for (; i < size; i++) { \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i), \ + _mm256_lddqu_si256(data2 + i)); \ + total = _mm256_add_epi64(total, popcount256(A1)); \ + } \ + return (uint64_t)(_mm256_extract_epi64(total, 0)) + \ + (uint64_t)(_mm256_extract_epi64(total, 1)) + \ + (uint64_t)(_mm256_extract_epi64(total, 2)) + \ + (uint64_t)(_mm256_extract_epi64(total, 3)); \ + } \ + static inline uint64_t avx2_harley_seal_popcount256andstore_##opname( \ + const __m256i *__restrict__ data1, const __m256i *__restrict__ data2, \ + __m256i *__restrict__ out, const uint64_t size) { \ + __m256i total = _mm256_setzero_si256(); \ + __m256i ones = _mm256_setzero_si256(); \ + __m256i twos = _mm256_setzero_si256(); \ + __m256i fours = _mm256_setzero_si256(); \ + __m256i eights = _mm256_setzero_si256(); \ + __m256i sixteens = _mm256_setzero_si256(); \ + __m256i twosA, twosB, foursA, foursB, eightsA, eightsB; \ + __m256i A1, A2; \ + const uint64_t limit = size - size % 16; \ + uint64_t i = 0; \ + for (; i < limit; i += 16) { \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i), \ + _mm256_lddqu_si256(data2 + i)); \ + _mm256_storeu_si256(out + i, A1); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 1), \ + _mm256_lddqu_si256(data2 + i + 1)); \ + _mm256_storeu_si256(out + i + 1, A2); \ + CSA(&twosA, &ones, ones, A1, A2); \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 2), \ + _mm256_lddqu_si256(data2 + i + 2)); \ + _mm256_storeu_si256(out + i + 2, A1); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 3), \ + _mm256_lddqu_si256(data2 + i + 3)); \ + _mm256_storeu_si256(out + i + 3, A2); \ + CSA(&twosB, &ones, ones, A1, A2); \ + CSA(&foursA, &twos, twos, twosA, twosB); \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 4), \ + _mm256_lddqu_si256(data2 + i + 4)); \ + _mm256_storeu_si256(out + i + 4, A1); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 5), \ + _mm256_lddqu_si256(data2 + i + 5)); \ + _mm256_storeu_si256(out + i + 5, A2); \ + CSA(&twosA, &ones, ones, A1, A2); \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 6), \ + _mm256_lddqu_si256(data2 + i + 6)); \ + _mm256_storeu_si256(out + i + 6, A1); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 7), \ + _mm256_lddqu_si256(data2 + i + 7)); \ + _mm256_storeu_si256(out + i + 7, A2); \ + CSA(&twosB, &ones, ones, A1, A2); \ + CSA(&foursB, &twos, twos, twosA, twosB); \ + CSA(&eightsA, &fours, fours, foursA, foursB); \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 8), \ + _mm256_lddqu_si256(data2 + i + 8)); \ + _mm256_storeu_si256(out + i + 8, A1); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 9), \ + _mm256_lddqu_si256(data2 + i + 9)); \ + _mm256_storeu_si256(out + i + 9, A2); \ + CSA(&twosA, &ones, ones, A1, A2); \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 10), \ + _mm256_lddqu_si256(data2 + i + 10)); \ + _mm256_storeu_si256(out + i + 10, A1); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 11), \ + _mm256_lddqu_si256(data2 + i + 11)); \ + _mm256_storeu_si256(out + i + 11, A2); \ + CSA(&twosB, &ones, ones, A1, A2); \ + CSA(&foursA, &twos, twos, twosA, twosB); \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 12), \ + _mm256_lddqu_si256(data2 + i + 12)); \ + _mm256_storeu_si256(out + i + 12, A1); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 13), \ + _mm256_lddqu_si256(data2 + i + 13)); \ + _mm256_storeu_si256(out + i + 13, A2); \ + CSA(&twosA, &ones, ones, A1, A2); \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 14), \ + _mm256_lddqu_si256(data2 + i + 14)); \ + _mm256_storeu_si256(out + i + 14, A1); \ + A2 = avx_intrinsic(_mm256_lddqu_si256(data1 + i + 15), \ + _mm256_lddqu_si256(data2 + i + 15)); \ + _mm256_storeu_si256(out + i + 15, A2); \ + CSA(&twosB, &ones, ones, A1, A2); \ + CSA(&foursB, &twos, twos, twosA, twosB); \ + CSA(&eightsB, &fours, fours, foursA, foursB); \ + CSA(&sixteens, &eights, eights, eightsA, eightsB); \ + total = _mm256_add_epi64(total, popcount256(sixteens)); \ + } \ + total = _mm256_slli_epi64(total, 4); \ + total = _mm256_add_epi64(total, \ + _mm256_slli_epi64(popcount256(eights), 3)); \ + total = \ + _mm256_add_epi64(total, _mm256_slli_epi64(popcount256(fours), 2)); \ + total = \ + _mm256_add_epi64(total, _mm256_slli_epi64(popcount256(twos), 1)); \ + total = _mm256_add_epi64(total, popcount256(ones)); \ + for (; i < size; i++) { \ + A1 = avx_intrinsic(_mm256_lddqu_si256(data1 + i), \ + _mm256_lddqu_si256(data2 + i)); \ + _mm256_storeu_si256(out + i, A1); \ + total = _mm256_add_epi64(total, popcount256(A1)); \ + } \ + return (uint64_t)(_mm256_extract_epi64(total, 0)) + \ + (uint64_t)(_mm256_extract_epi64(total, 1)) + \ + (uint64_t)(_mm256_extract_epi64(total, 2)) + \ + (uint64_t)(_mm256_extract_epi64(total, 3)); \ + } + +CROARING_TARGET_AVX2 +CROARING_AVXPOPCNTFNC(or, _mm256_or_si256) +CROARING_UNTARGET_AVX2 + +CROARING_TARGET_AVX2 +CROARING_AVXPOPCNTFNC(union, _mm256_or_si256) +CROARING_UNTARGET_AVX2 + +CROARING_TARGET_AVX2 +CROARING_AVXPOPCNTFNC(and, _mm256_and_si256) +CROARING_UNTARGET_AVX2 + +CROARING_TARGET_AVX2 +CROARING_AVXPOPCNTFNC(intersection, _mm256_and_si256) +CROARING_UNTARGET_AVX2 + +CROARING_TARGET_AVX2 +CROARING_AVXPOPCNTFNC(xor, _mm256_xor_si256) +CROARING_UNTARGET_AVX2 + +CROARING_TARGET_AVX2 +CROARING_AVXPOPCNTFNC(andnot, _mm256_andnot_si256) +CROARING_UNTARGET_AVX2 + +#define VPOPCNT_AND_ADD(ptr, i, accu) \ + const __m512i v##i = _mm512_loadu_si512((const __m512i *)ptr + i); \ + const __m512i p##i = _mm512_popcnt_epi64(v##i); \ + accu = _mm512_add_epi64(accu, p##i); + +#if CROARING_COMPILER_SUPPORTS_AVX512 +CROARING_TARGET_AVX512 +static inline uint64_t sum_epu64_256(const __m256i v) { + return (uint64_t)(_mm256_extract_epi64(v, 0)) + + (uint64_t)(_mm256_extract_epi64(v, 1)) + + (uint64_t)(_mm256_extract_epi64(v, 2)) + + (uint64_t)(_mm256_extract_epi64(v, 3)); +} + +static inline uint64_t simd_sum_epu64(const __m512i v) { + __m256i lo = _mm512_extracti64x4_epi64(v, 0); + __m256i hi = _mm512_extracti64x4_epi64(v, 1); + + return sum_epu64_256(lo) + sum_epu64_256(hi); +} + +static inline uint64_t avx512_vpopcount(const __m512i *data, + const uint64_t size) { + const uint64_t limit = size - size % 4; + __m512i total = _mm512_setzero_si512(); + uint64_t i = 0; + + for (; i < limit; i += 4) { + VPOPCNT_AND_ADD(data + i, 0, total); + VPOPCNT_AND_ADD(data + i, 1, total); + VPOPCNT_AND_ADD(data + i, 2, total); + VPOPCNT_AND_ADD(data + i, 3, total); + } + + for (; i < size; i++) { + total = _mm512_add_epi64( + total, _mm512_popcnt_epi64(_mm512_loadu_si512(data + i))); + } + + return simd_sum_epu64(total); +} +CROARING_UNTARGET_AVX512 +#endif + +#define CROARING_AVXPOPCNTFNC512(opname, avx_intrinsic) \ + static inline uint64_t avx512_harley_seal_popcount512_##opname( \ + const __m512i *data1, const __m512i *data2, const uint64_t size) { \ + __m512i total = _mm512_setzero_si512(); \ + const uint64_t limit = size - size % 4; \ + uint64_t i = 0; \ + for (; i < limit; i += 4) { \ + __m512i a1 = avx_intrinsic(_mm512_loadu_si512(data1 + i), \ + _mm512_loadu_si512(data2 + i)); \ + total = _mm512_add_epi64(total, _mm512_popcnt_epi64(a1)); \ + __m512i a2 = avx_intrinsic(_mm512_loadu_si512(data1 + i + 1), \ + _mm512_loadu_si512(data2 + i + 1)); \ + total = _mm512_add_epi64(total, _mm512_popcnt_epi64(a2)); \ + __m512i a3 = avx_intrinsic(_mm512_loadu_si512(data1 + i + 2), \ + _mm512_loadu_si512(data2 + i + 2)); \ + total = _mm512_add_epi64(total, _mm512_popcnt_epi64(a3)); \ + __m512i a4 = avx_intrinsic(_mm512_loadu_si512(data1 + i + 3), \ + _mm512_loadu_si512(data2 + i + 3)); \ + total = _mm512_add_epi64(total, _mm512_popcnt_epi64(a4)); \ + } \ + for (; i < size; i++) { \ + __m512i a = avx_intrinsic(_mm512_loadu_si512(data1 + i), \ + _mm512_loadu_si512(data2 + i)); \ + total = _mm512_add_epi64(total, _mm512_popcnt_epi64(a)); \ + } \ + return simd_sum_epu64(total); \ + } \ + static inline uint64_t avx512_harley_seal_popcount512andstore_##opname( \ + const __m512i *__restrict__ data1, const __m512i *__restrict__ data2, \ + __m512i *__restrict__ out, const uint64_t size) { \ + __m512i total = _mm512_setzero_si512(); \ + const uint64_t limit = size - size % 4; \ + uint64_t i = 0; \ + for (; i < limit; i += 4) { \ + __m512i a1 = avx_intrinsic(_mm512_loadu_si512(data1 + i), \ + _mm512_loadu_si512(data2 + i)); \ + _mm512_storeu_si512(out + i, a1); \ + total = _mm512_add_epi64(total, _mm512_popcnt_epi64(a1)); \ + __m512i a2 = avx_intrinsic(_mm512_loadu_si512(data1 + i + 1), \ + _mm512_loadu_si512(data2 + i + 1)); \ + _mm512_storeu_si512(out + i + 1, a2); \ + total = _mm512_add_epi64(total, _mm512_popcnt_epi64(a2)); \ + __m512i a3 = avx_intrinsic(_mm512_loadu_si512(data1 + i + 2), \ + _mm512_loadu_si512(data2 + i + 2)); \ + _mm512_storeu_si512(out + i + 2, a3); \ + total = _mm512_add_epi64(total, _mm512_popcnt_epi64(a3)); \ + __m512i a4 = avx_intrinsic(_mm512_loadu_si512(data1 + i + 3), \ + _mm512_loadu_si512(data2 + i + 3)); \ + _mm512_storeu_si512(out + i + 3, a4); \ + total = _mm512_add_epi64(total, _mm512_popcnt_epi64(a4)); \ + } \ + for (; i < size; i++) { \ + __m512i a = avx_intrinsic(_mm512_loadu_si512(data1 + i), \ + _mm512_loadu_si512(data2 + i)); \ + _mm512_storeu_si512(out + i, a); \ + total = _mm512_add_epi64(total, _mm512_popcnt_epi64(a)); \ + } \ + return simd_sum_epu64(total); \ + } + +#if CROARING_COMPILER_SUPPORTS_AVX512 +CROARING_TARGET_AVX512 +CROARING_AVXPOPCNTFNC512(or, _mm512_or_si512) +CROARING_AVXPOPCNTFNC512(union, _mm512_or_si512) +CROARING_AVXPOPCNTFNC512(and, _mm512_and_si512) +CROARING_AVXPOPCNTFNC512(intersection, _mm512_and_si512) +CROARING_AVXPOPCNTFNC512(xor, _mm512_xor_si512) +CROARING_AVXPOPCNTFNC512(andnot, _mm512_andnot_si512) +CROARING_UNTARGET_AVX512 +#endif +/*** + * END Harley-Seal popcount functions. + */ + +#endif // CROARING_IS_X64 + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal +#endif +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif +#endif diff --git a/contrib/libs/croaring/include/roaring/containers/array.h b/contrib/libs/croaring/include/roaring/containers/array.h new file mode 100644 index 000000000000..8d5c84a0cb50 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/containers/array.h @@ -0,0 +1,521 @@ +/* + * array.h + * + */ + +#ifndef INCLUDE_CONTAINERS_ARRAY_H_ +#define INCLUDE_CONTAINERS_ARRAY_H_ + +#include + +#include // roaring_iterator + +// Include other headers after roaring_types.h +#include // binarySearch()/memequals() for inlining +#include // container_t, perfparameters +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { + +// Note: in pure C++ code, you should avoid putting `using` in header files +using api::roaring_iterator; +using api::roaring_iterator64; + +namespace internal { +#endif + +/* Containers with DEFAULT_MAX_SIZE or less integers should be arrays */ +enum { DEFAULT_MAX_SIZE = 4096 }; + +/* struct array_container - sparse representation of a bitmap + * + * @cardinality: number of indices in `array` (and the bitmap) + * @capacity: allocated size of `array` + * @array: sorted list of integers + */ +STRUCT_CONTAINER(array_container_s) { + int32_t cardinality; + int32_t capacity; + uint16_t *array; +}; + +typedef struct array_container_s array_container_t; + +#define CAST_array(c) CAST(array_container_t *, c) // safer downcast +#define const_CAST_array(c) CAST(const array_container_t *, c) +#define movable_CAST_array(c) movable_CAST(array_container_t **, c) + +/* Create a new array with default. Return NULL in case of failure. See also + * array_container_create_given_capacity. */ +array_container_t *array_container_create(void); + +/* Create a new array with a specified capacity size. Return NULL in case of + * failure. */ +array_container_t *array_container_create_given_capacity(int32_t size); + +/* Create a new array containing all values in [min,max). */ +array_container_t *array_container_create_range(uint32_t min, uint32_t max); + +/* + * Shrink the capacity to the actual size, return the number of bytes saved. + */ +int array_container_shrink_to_fit(array_container_t *src); + +/* Free memory owned by `array'. */ +void array_container_free(array_container_t *array); + +/* Duplicate container */ +array_container_t *array_container_clone(const array_container_t *src); + +/* Get the cardinality of `array'. */ +ALLOW_UNALIGNED +static inline int array_container_cardinality(const array_container_t *array) { + return array->cardinality; +} + +static inline bool array_container_nonzero_cardinality( + const array_container_t *array) { + return array->cardinality > 0; +} + +/* Copy one container into another. We assume that they are distinct. */ +void array_container_copy(const array_container_t *src, array_container_t *dst); + +/* Add all the values in [min,max) (included) at a distance k*step from min. + The container must have a size less or equal to DEFAULT_MAX_SIZE after this + addition. */ +void array_container_add_from_range(array_container_t *arr, uint32_t min, + uint32_t max, uint16_t step); + +static inline bool array_container_empty(const array_container_t *array) { + return array->cardinality == 0; +} + +/* check whether the cardinality is equal to the capacity (this does not mean + * that it contains 1<<16 elements) */ +static inline bool array_container_full(const array_container_t *array) { + return array->cardinality == array->capacity; +} + +/* Compute the union of `src_1' and `src_2' and write the result to `dst' + * It is assumed that `dst' is distinct from both `src_1' and `src_2'. */ +void array_container_union(const array_container_t *src_1, + const array_container_t *src_2, + array_container_t *dst); + +/* symmetric difference, see array_container_union */ +void array_container_xor(const array_container_t *array_1, + const array_container_t *array_2, + array_container_t *out); + +/* Computes the intersection of src_1 and src_2 and write the result to + * dst. It is assumed that dst is distinct from both src_1 and src_2. */ +void array_container_intersection(const array_container_t *src_1, + const array_container_t *src_2, + array_container_t *dst); + +/* Check whether src_1 and src_2 intersect. */ +bool array_container_intersect(const array_container_t *src_1, + const array_container_t *src_2); + +/* computers the size of the intersection between two arrays. + */ +int array_container_intersection_cardinality(const array_container_t *src_1, + const array_container_t *src_2); + +/* computes the intersection of array1 and array2 and write the result to + * array1. + * */ +void array_container_intersection_inplace(array_container_t *src_1, + const array_container_t *src_2); + +/* + * Write out the 16-bit integers contained in this container as a list of 32-bit + * integers using base + * as the starting value (it might be expected that base has zeros in its 16 + * least significant bits). + * The function returns the number of values written. + * The caller is responsible for allocating enough memory in out. + */ +int array_container_to_uint32_array(void *vout, const array_container_t *cont, + uint32_t base); + +/* Compute the number of runs */ +int32_t array_container_number_of_runs(const array_container_t *ac); + +/* + * Print this container using printf (useful for debugging). + */ +void array_container_printf(const array_container_t *v); + +/* + * Print this container using printf as a comma-separated list of 32-bit + * integers starting at base. + */ +void array_container_printf_as_uint32_array(const array_container_t *v, + uint32_t base); + +bool array_container_validate(const array_container_t *v, const char **reason); + +/** + * Return the serialized size in bytes of a container having cardinality "card". + */ +static inline int32_t array_container_serialized_size_in_bytes(int32_t card) { + return card * 2 + 2; +} + +/** + * Increase capacity to at least min. + * Whether the existing data needs to be copied over depends on the "preserve" + * parameter. If preserve is false, then the new content will be uninitialized, + * otherwise the old content is copied. + */ +void array_container_grow(array_container_t *container, int32_t min, + bool preserve); + +bool array_container_iterate(const array_container_t *cont, uint32_t base, + roaring_iterator iterator, void *ptr); +bool array_container_iterate64(const array_container_t *cont, uint32_t base, + roaring_iterator64 iterator, uint64_t high_bits, + void *ptr); + +/** + * Writes the underlying array to buf, outputs how many bytes were written. + * This is meant to be byte-by-byte compatible with the Java and Go versions of + * Roaring. + * The number of bytes written should be + * array_container_size_in_bytes(container). + * + */ +int32_t array_container_write(const array_container_t *container, char *buf); +/** + * Reads the instance from buf, outputs how many bytes were read. + * This is meant to be byte-by-byte compatible with the Java and Go versions of + * Roaring. + * The number of bytes read should be array_container_size_in_bytes(container). + * You need to provide the (known) cardinality. + */ +int32_t array_container_read(int32_t cardinality, array_container_t *container, + const char *buf); + +/** + * Return the serialized size in bytes of a container (see + * bitset_container_write) + * This is meant to be compatible with the Java and Go versions of Roaring and + * assumes + * that the cardinality of the container is already known. + * + */ +ALLOW_UNALIGNED +static inline int32_t array_container_size_in_bytes( + const array_container_t *container) { + return container->cardinality * sizeof(uint16_t); +} + +/** + * Return true if the two arrays have the same content. + */ +ALLOW_UNALIGNED +static inline bool array_container_equals(const array_container_t *container1, + const array_container_t *container2) { + if (container1->cardinality != container2->cardinality) { + return false; + } + return memequals(container1->array, container2->array, + container1->cardinality * 2); +} + +/** + * Return true if container1 is a subset of container2. + */ +bool array_container_is_subset(const array_container_t *container1, + const array_container_t *container2); + +/** + * If the element of given rank is in this container, supposing that the first + * element has rank start_rank, then the function returns true and sets element + * accordingly. + * Otherwise, it returns false and update start_rank. + */ +static inline bool array_container_select(const array_container_t *container, + uint32_t *start_rank, uint32_t rank, + uint32_t *element) { + int card = array_container_cardinality(container); + if (*start_rank + card <= rank) { + *start_rank += card; + return false; + } else { + *element = container->array[rank - *start_rank]; + return true; + } +} + +/* Computes the difference of array1 and array2 and write the result + * to array out. + * Array out does not need to be distinct from array_1 + */ +void array_container_andnot(const array_container_t *array_1, + const array_container_t *array_2, + array_container_t *out); + +/* Append x to the set. Assumes that the value is larger than any preceding + * values. */ +static inline void array_container_append(array_container_t *arr, + uint16_t pos) { + const int32_t capacity = arr->capacity; + + if (array_container_full(arr)) { + array_container_grow(arr, capacity + 1, true); + } + + arr->array[arr->cardinality++] = pos; +} + +/** + * Add value to the set if final cardinality doesn't exceed max_cardinality. + * Return code: + * 1 -- value was added + * 0 -- value was already present + * -1 -- value was not added because cardinality would exceed max_cardinality + */ +static inline int array_container_try_add(array_container_t *arr, + uint16_t value, + int32_t max_cardinality) { + const int32_t cardinality = arr->cardinality; + + // best case, we can append. + if ((array_container_empty(arr) || arr->array[cardinality - 1] < value) && + cardinality < max_cardinality) { + array_container_append(arr, value); + return 1; + } + + const int32_t loc = binarySearch(arr->array, cardinality, value); + + if (loc >= 0) { + return 0; + } else if (cardinality < max_cardinality) { + if (array_container_full(arr)) { + array_container_grow(arr, arr->capacity + 1, true); + } + const int32_t insert_idx = -loc - 1; + memmove(arr->array + insert_idx + 1, arr->array + insert_idx, + (cardinality - insert_idx) * sizeof(uint16_t)); + arr->array[insert_idx] = value; + arr->cardinality++; + return 1; + } else { + return -1; + } +} + +/* Add value to the set. Returns true if x was not already present. */ +static inline bool array_container_add(array_container_t *arr, uint16_t value) { + return array_container_try_add(arr, value, INT32_MAX) == 1; +} + +/* Remove x from the set. Returns true if x was present. */ +static inline bool array_container_remove(array_container_t *arr, + uint16_t pos) { + const int32_t idx = binarySearch(arr->array, arr->cardinality, pos); + const bool is_present = idx >= 0; + if (is_present) { + memmove(arr->array + idx, arr->array + idx + 1, + (arr->cardinality - idx - 1) * sizeof(uint16_t)); + arr->cardinality--; + } + + return is_present; +} + +/* Check whether x is present. */ +inline bool array_container_contains(const array_container_t *arr, + uint16_t pos) { + // return binarySearch(arr->array, arr->cardinality, pos) >= 0; + // binary search with fallback to linear search for short ranges + int32_t low = 0; + const uint16_t *carr = (const uint16_t *)arr->array; + int32_t high = arr->cardinality - 1; + // while (high - low >= 0) { + while (high >= low + 16) { + int32_t middleIndex = (low + high) >> 1; + uint16_t middleValue = carr[middleIndex]; + if (middleValue < pos) { + low = middleIndex + 1; + } else if (middleValue > pos) { + high = middleIndex - 1; + } else { + return true; + } + } + + for (int i = low; i <= high; i++) { + uint16_t v = carr[i]; + if (v == pos) { + return true; + } + if (v > pos) return false; + } + return false; +} + +void array_container_offset(const array_container_t *c, container_t **loc, + container_t **hic, uint16_t offset); + +//* Check whether a range of values from range_start (included) to range_end +//(excluded) is present. */ +static inline bool array_container_contains_range(const array_container_t *arr, + uint32_t range_start, + uint32_t range_end) { + const int32_t range_count = range_end - range_start; + const uint16_t rs_included = (uint16_t)range_start; + const uint16_t re_included = (uint16_t)(range_end - 1); + + // Empty range is always included + if (range_count <= 0) { + return true; + } + if (range_count > arr->cardinality) { + return false; + } + + const int32_t start = + binarySearch(arr->array, arr->cardinality, rs_included); + // If this sorted array contains all items in the range: + // * the start item must be found + // * the last item in range range_count must exist, and be the expected end + // value + return (start >= 0) && (arr->cardinality >= start + range_count) && + (arr->array[start + range_count - 1] == re_included); +} + +/* Returns the smallest value (assumes not empty) */ +inline uint16_t array_container_minimum(const array_container_t *arr) { + if (arr->cardinality == 0) return 0; + return arr->array[0]; +} + +/* Returns the largest value (assumes not empty) */ +inline uint16_t array_container_maximum(const array_container_t *arr) { + if (arr->cardinality == 0) return 0; + return arr->array[arr->cardinality - 1]; +} + +/* Returns the number of values equal or smaller than x */ +inline int array_container_rank(const array_container_t *arr, uint16_t x) { + const int32_t idx = binarySearch(arr->array, arr->cardinality, x); + const bool is_present = idx >= 0; + if (is_present) { + return idx + 1; + } else { + return -idx - 1; + } +} + +/* bulk version of array_container_rank(); return number of consumed elements + */ +inline uint32_t array_container_rank_many(const array_container_t *arr, + uint64_t start_rank, + const uint32_t *begin, + const uint32_t *end, uint64_t *ans) { + const uint16_t high = (uint16_t)((*begin) >> 16); + uint32_t pos = 0; + const uint32_t *iter = begin; + for (; iter != end; iter++) { + uint32_t x = *iter; + uint16_t xhigh = (uint16_t)(x >> 16); + if (xhigh != high) return iter - begin; // stop at next container + + const int32_t idx = + binarySearch(arr->array + pos, arr->cardinality - pos, (uint16_t)x); + const bool is_present = idx >= 0; + if (is_present) { + *(ans++) = start_rank + pos + (idx + 1); + pos = idx + 1; + } else { + *(ans++) = start_rank + pos + (-idx - 1); + } + } + return iter - begin; +} + +/* Returns the index of x , if not exsist return -1 */ +inline int array_container_get_index(const array_container_t *arr, uint16_t x) { + const int32_t idx = binarySearch(arr->array, arr->cardinality, x); + const bool is_present = idx >= 0; + if (is_present) { + return idx; + } else { + return -1; + } +} + +/* Returns the index of the first value equal or larger than x, or -1 */ +inline int array_container_index_equalorlarger(const array_container_t *arr, + uint16_t x) { + const int32_t idx = binarySearch(arr->array, arr->cardinality, x); + const bool is_present = idx >= 0; + if (is_present) { + return idx; + } else { + int32_t candidate = -idx - 1; + if (candidate < arr->cardinality) return candidate; + return -1; + } +} + +/* + * Adds all values in range [min,max] using hint: + * nvals_less is the number of array values less than $min + * nvals_greater is the number of array values greater than $max + */ +static inline void array_container_add_range_nvals(array_container_t *array, + uint32_t min, uint32_t max, + int32_t nvals_less, + int32_t nvals_greater) { + int32_t union_cardinality = nvals_less + (max - min + 1) + nvals_greater; + if (union_cardinality > array->capacity) { + array_container_grow(array, union_cardinality, true); + } + memmove(&(array->array[union_cardinality - nvals_greater]), + &(array->array[array->cardinality - nvals_greater]), + nvals_greater * sizeof(uint16_t)); + for (uint32_t i = 0; i <= max - min; i++) { + array->array[nvals_less + i] = (uint16_t)(min + i); + } + array->cardinality = union_cardinality; +} + +/** + * Adds all values in range [min,max]. This function is currently unused + * and left as a documentation. + */ +/*static inline void array_container_add_range(array_container_t *array, + uint32_t min, uint32_t max) { + int32_t nvals_greater = count_greater(array->array, array->cardinality, +max); int32_t nvals_less = count_less(array->array, array->cardinality - +nvals_greater, min); array_container_add_range_nvals(array, min, max, +nvals_less, nvals_greater); +}*/ + +/* + * Removes all elements array[pos] .. array[pos+count-1] + */ +static inline void array_container_remove_range(array_container_t *array, + uint32_t pos, uint32_t count) { + if (count != 0) { + memmove(&(array->array[pos]), &(array->array[pos + count]), + (array->cardinality - pos - count) * sizeof(uint16_t)); + array->cardinality -= count; + } +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif + +#endif /* INCLUDE_CONTAINERS_ARRAY_H_ */ diff --git a/contrib/libs/croaring/include/roaring/containers/bitset.h b/contrib/libs/croaring/include/roaring/containers/bitset.h new file mode 100644 index 000000000000..a738a1ad63a7 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/containers/bitset.h @@ -0,0 +1,514 @@ +/* + * bitset.h + * + */ + +#ifndef INCLUDE_CONTAINERS_BITSET_H_ +#define INCLUDE_CONTAINERS_BITSET_H_ + +#include +#include + +#include // roaring_iterator + +// Include other headers after roaring_types.h +#include // container_t, perfparameters +#include +#include // roaring_iterator +#include // ASM_XXX macros + +#ifdef __cplusplus +extern "C" { +namespace roaring { + +// Note: in pure C++ code, you should avoid putting `using` in header files +using api::roaring_iterator; +using api::roaring_iterator64; + +namespace internal { +#endif + +enum { + BITSET_CONTAINER_SIZE_IN_WORDS = (1 << 16) / 64, + BITSET_UNKNOWN_CARDINALITY = -1 +}; + +STRUCT_CONTAINER(bitset_container_s) { + int32_t cardinality; + uint64_t *words; +}; + +typedef struct bitset_container_s bitset_container_t; + +#define CAST_bitset(c) CAST(bitset_container_t *, c) // safer downcast +#define const_CAST_bitset(c) CAST(const bitset_container_t *, c) +#define movable_CAST_bitset(c) movable_CAST(bitset_container_t **, c) + +/* Create a new bitset. Return NULL in case of failure. */ +bitset_container_t *bitset_container_create(void); + +/* Free memory. */ +void bitset_container_free(bitset_container_t *bitset); + +/* Clear bitset (sets bits to 0). */ +void bitset_container_clear(bitset_container_t *bitset); + +/* Set all bits to 1. */ +void bitset_container_set_all(bitset_container_t *bitset); + +/* Duplicate bitset */ +bitset_container_t *bitset_container_clone(const bitset_container_t *src); + +/* Set the bit in [begin,end). WARNING: as of April 2016, this method is slow + * and + * should not be used in performance-sensitive code. Ever. */ +void bitset_container_set_range(bitset_container_t *bitset, uint32_t begin, + uint32_t end); + +#if defined(CROARING_ASMBITMANIPOPTIMIZATION) && defined(__AVX2__) +/* Set the ith bit. */ +static inline void bitset_container_set(bitset_container_t *bitset, + uint16_t pos) { + uint64_t shift = 6; + uint64_t offset; + uint64_t p = pos; + ASM_SHIFT_RIGHT(p, shift, offset); + uint64_t load = bitset->words[offset]; + ASM_SET_BIT_INC_WAS_CLEAR(load, p, bitset->cardinality); + bitset->words[offset] = load; +} + +/* Unset the ith bit. Currently unused. Could be used for optimization. */ +/*static inline void bitset_container_unset(bitset_container_t *bitset, + uint16_t pos) { + uint64_t shift = 6; + uint64_t offset; + uint64_t p = pos; + ASM_SHIFT_RIGHT(p, shift, offset); + uint64_t load = bitset->words[offset]; + ASM_CLEAR_BIT_DEC_WAS_SET(load, p, bitset->cardinality); + bitset->words[offset] = load; +}*/ + +/* Add `pos' to `bitset'. Returns true if `pos' was not present. Might be slower + * than bitset_container_set. */ +static inline bool bitset_container_add(bitset_container_t *bitset, + uint16_t pos) { + uint64_t shift = 6; + uint64_t offset; + uint64_t p = pos; + ASM_SHIFT_RIGHT(p, shift, offset); + uint64_t load = bitset->words[offset]; + // could be possibly slightly further optimized + const int32_t oldcard = bitset->cardinality; + ASM_SET_BIT_INC_WAS_CLEAR(load, p, bitset->cardinality); + bitset->words[offset] = load; + return bitset->cardinality - oldcard; +} + +/* Remove `pos' from `bitset'. Returns true if `pos' was present. Might be + * slower than bitset_container_unset. */ +static inline bool bitset_container_remove(bitset_container_t *bitset, + uint16_t pos) { + uint64_t shift = 6; + uint64_t offset; + uint64_t p = pos; + ASM_SHIFT_RIGHT(p, shift, offset); + uint64_t load = bitset->words[offset]; + // could be possibly slightly further optimized + const int32_t oldcard = bitset->cardinality; + ASM_CLEAR_BIT_DEC_WAS_SET(load, p, bitset->cardinality); + bitset->words[offset] = load; + return oldcard - bitset->cardinality; +} + +/* Get the value of the ith bit. */ +inline bool bitset_container_get(const bitset_container_t *bitset, + uint16_t pos) { + uint64_t word = bitset->words[pos >> 6]; + const uint64_t p = pos; + ASM_INPLACESHIFT_RIGHT(word, p); + return word & 1; +} + +#else + +/* Set the ith bit. */ +static inline void bitset_container_set(bitset_container_t *bitset, + uint16_t pos) { + const uint64_t old_word = bitset->words[pos >> 6]; + const int index = pos & 63; + const uint64_t new_word = old_word | (UINT64_C(1) << index); + bitset->cardinality += (uint32_t)((old_word ^ new_word) >> index); + bitset->words[pos >> 6] = new_word; +} + +/* Unset the ith bit. Currently unused. */ +/*static inline void bitset_container_unset(bitset_container_t *bitset, + uint16_t pos) { + const uint64_t old_word = bitset->words[pos >> 6]; + const int index = pos & 63; + const uint64_t new_word = old_word & (~(UINT64_C(1) << index)); + bitset->cardinality -= (uint32_t)((old_word ^ new_word) >> index); + bitset->words[pos >> 6] = new_word; +}*/ + +/* Add `pos' to `bitset'. Returns true if `pos' was not present. Might be slower + * than bitset_container_set. */ +static inline bool bitset_container_add(bitset_container_t *bitset, + uint16_t pos) { + const uint64_t old_word = bitset->words[pos >> 6]; + const int index = pos & 63; + const uint64_t new_word = old_word | (UINT64_C(1) << index); + const uint64_t increment = (old_word ^ new_word) >> index; + bitset->cardinality += (uint32_t)increment; + bitset->words[pos >> 6] = new_word; + return increment > 0; +} + +/* Remove `pos' from `bitset'. Returns true if `pos' was present. Might be + * slower than bitset_container_unset. */ +static inline bool bitset_container_remove(bitset_container_t *bitset, + uint16_t pos) { + const uint64_t old_word = bitset->words[pos >> 6]; + const int index = pos & 63; + const uint64_t new_word = old_word & (~(UINT64_C(1) << index)); + const uint64_t increment = (old_word ^ new_word) >> index; + bitset->cardinality -= (uint32_t)increment; + bitset->words[pos >> 6] = new_word; + return increment > 0; +} + +/* Get the value of the ith bit. */ +inline bool bitset_container_get(const bitset_container_t *bitset, + uint16_t pos) { + const uint64_t word = bitset->words[pos >> 6]; + return (word >> (pos & 63)) & 1; +} + +#endif + +/* + * Check if all bits are set in a range of positions from pos_start (included) + * to pos_end (excluded). + */ +static inline bool bitset_container_get_range(const bitset_container_t *bitset, + uint32_t pos_start, + uint32_t pos_end) { + const uint32_t start = pos_start >> 6; + const uint32_t end = pos_end >> 6; + + const uint64_t first = ~((1ULL << (pos_start & 0x3F)) - 1); + const uint64_t last = (1ULL << (pos_end & 0x3F)) - 1; + + if (start == end) + return ((bitset->words[end] & first & last) == (first & last)); + if ((bitset->words[start] & first) != first) return false; + + if ((end < BITSET_CONTAINER_SIZE_IN_WORDS) && + ((bitset->words[end] & last) != last)) { + return false; + } + + for (uint32_t i = start + 1; + (i < BITSET_CONTAINER_SIZE_IN_WORDS) && (i < end); ++i) { + if (bitset->words[i] != UINT64_C(0xFFFFFFFFFFFFFFFF)) return false; + } + + return true; +} + +/* Check whether `bitset' is present in `array'. Calls bitset_container_get. */ +inline bool bitset_container_contains(const bitset_container_t *bitset, + uint16_t pos) { + return bitset_container_get(bitset, pos); +} + +/* + * Check whether a range of bits from position `pos_start' (included) to + * `pos_end' (excluded) is present in `bitset'. Calls bitset_container_get_all. + */ +static inline bool bitset_container_contains_range( + const bitset_container_t *bitset, uint32_t pos_start, uint32_t pos_end) { + return bitset_container_get_range(bitset, pos_start, pos_end); +} + +/* Get the number of bits set */ +ALLOW_UNALIGNED +static inline int bitset_container_cardinality( + const bitset_container_t *bitset) { + return bitset->cardinality; +} + +/* Copy one container into another. We assume that they are distinct. */ +void bitset_container_copy(const bitset_container_t *source, + bitset_container_t *dest); + +/* Add all the values [min,max) at a distance k*step from min: min, + * min+step,.... */ +void bitset_container_add_from_range(bitset_container_t *bitset, uint32_t min, + uint32_t max, uint16_t step); + +/* Get the number of bits set (force computation). This does not modify bitset. + * To update the cardinality, you should do + * bitset->cardinality = bitset_container_compute_cardinality(bitset).*/ +int bitset_container_compute_cardinality(const bitset_container_t *bitset); + +/* Check whether this bitset is empty, + * it never modifies the bitset struct. */ +static inline bool bitset_container_empty(const bitset_container_t *bitset) { + if (bitset->cardinality == BITSET_UNKNOWN_CARDINALITY) { + for (int i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; i++) { + if ((bitset->words[i]) != 0) return false; + } + return true; + } + return bitset->cardinality == 0; +} + +/* Get whether there is at least one bit set (see bitset_container_empty for + the reverse), the bitset is never modified */ +static inline bool bitset_container_const_nonzero_cardinality( + const bitset_container_t *bitset) { + return !bitset_container_empty(bitset); +} + +/* + * Check whether the two bitsets intersect + */ +bool bitset_container_intersect(const bitset_container_t *src_1, + const bitset_container_t *src_2); + +/* Computes the union of bitsets `src_1' and `src_2' into `dst' and return the + * cardinality. */ +int bitset_container_or(const bitset_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +/* Computes the union of bitsets `src_1' and `src_2' and return the cardinality. + */ +int bitset_container_or_justcard(const bitset_container_t *src_1, + const bitset_container_t *src_2); + +/* Computes the union of bitsets `src_1' and `src_2' into `dst' and return the + * cardinality. Same as bitset_container_or. */ +int bitset_container_union(const bitset_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +/* Computes the union of bitsets `src_1' and `src_2' and return the + * cardinality. Same as bitset_container_or_justcard. */ +int bitset_container_union_justcard(const bitset_container_t *src_1, + const bitset_container_t *src_2); + +/* Computes the union of bitsets `src_1' and `src_2' into `dst', but does + * not update the cardinality. Provided to optimize chained operations. */ +int bitset_container_union_nocard(const bitset_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +/* Computes the union of bitsets `src_1' and `src_2' into `dst', but does not + * update the cardinality. Provided to optimize chained operations. */ +int bitset_container_or_nocard(const bitset_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +/* Computes the intersection of bitsets `src_1' and `src_2' into `dst' and + * return the cardinality. */ +int bitset_container_and(const bitset_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +/* Computes the intersection of bitsets `src_1' and `src_2' and return the + * cardinality. */ +int bitset_container_and_justcard(const bitset_container_t *src_1, + const bitset_container_t *src_2); + +/* Computes the intersection of bitsets `src_1' and `src_2' into `dst' and + * return the cardinality. Same as bitset_container_and. */ +int bitset_container_intersection(const bitset_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +/* Computes the intersection of bitsets `src_1' and `src_2' and return the + * cardinality. Same as bitset_container_and_justcard. */ +int bitset_container_intersection_justcard(const bitset_container_t *src_1, + const bitset_container_t *src_2); + +/* Computes the intersection of bitsets `src_1' and `src_2' into `dst', but does + * not update the cardinality. Provided to optimize chained operations. */ +int bitset_container_intersection_nocard(const bitset_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +/* Computes the intersection of bitsets `src_1' and `src_2' into `dst', but does + * not update the cardinality. Provided to optimize chained operations. */ +int bitset_container_and_nocard(const bitset_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +/* Computes the exclusive or of bitsets `src_1' and `src_2' into `dst' and + * return the cardinality. */ +int bitset_container_xor(const bitset_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +/* Computes the exclusive or of bitsets `src_1' and `src_2' and return the + * cardinality. */ +int bitset_container_xor_justcard(const bitset_container_t *src_1, + const bitset_container_t *src_2); + +/* Computes the exclusive or of bitsets `src_1' and `src_2' into `dst', but does + * not update the cardinality. Provided to optimize chained operations. */ +int bitset_container_xor_nocard(const bitset_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +/* Computes the and not of bitsets `src_1' and `src_2' into `dst' and return the + * cardinality. */ +int bitset_container_andnot(const bitset_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +/* Computes the and not of bitsets `src_1' and `src_2' and return the + * cardinality. */ +int bitset_container_andnot_justcard(const bitset_container_t *src_1, + const bitset_container_t *src_2); + +/* Computes the and not or of bitsets `src_1' and `src_2' into `dst', but does + * not update the cardinality. Provided to optimize chained operations. */ +int bitset_container_andnot_nocard(const bitset_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +void bitset_container_offset(const bitset_container_t *c, container_t **loc, + container_t **hic, uint16_t offset); +/* + * Write out the 16-bit integers contained in this container as a list of 32-bit + * integers using base + * as the starting value (it might be expected that base has zeros in its 16 + * least significant bits). + * The function returns the number of values written. + * The caller is responsible for allocating enough memory in out. + * The out pointer should point to enough memory (the cardinality times 32 + * bits). + */ +int bitset_container_to_uint32_array(uint32_t *out, + const bitset_container_t *bc, + uint32_t base); + +/* + * Print this container using printf (useful for debugging). + */ +void bitset_container_printf(const bitset_container_t *v); + +/* + * Print this container using printf as a comma-separated list of 32-bit + * integers starting at base. + */ +void bitset_container_printf_as_uint32_array(const bitset_container_t *v, + uint32_t base); + +bool bitset_container_validate(const bitset_container_t *v, + const char **reason); + +/** + * Return the serialized size in bytes of a container. + */ +static inline int32_t bitset_container_serialized_size_in_bytes(void) { + return BITSET_CONTAINER_SIZE_IN_WORDS * 8; +} + +/** + * Return the the number of runs. + */ +int bitset_container_number_of_runs(bitset_container_t *bc); + +bool bitset_container_iterate(const bitset_container_t *cont, uint32_t base, + roaring_iterator iterator, void *ptr); +bool bitset_container_iterate64(const bitset_container_t *cont, uint32_t base, + roaring_iterator64 iterator, uint64_t high_bits, + void *ptr); + +/** + * Writes the underlying array to buf, outputs how many bytes were written. + * This is meant to be byte-by-byte compatible with the Java and Go versions of + * Roaring. + * The number of bytes written should be + * bitset_container_size_in_bytes(container). + */ +int32_t bitset_container_write(const bitset_container_t *container, char *buf); + +/** + * Reads the instance from buf, outputs how many bytes were read. + * This is meant to be byte-by-byte compatible with the Java and Go versions of + * Roaring. + * The number of bytes read should be bitset_container_size_in_bytes(container). + * You need to provide the (known) cardinality. + */ +int32_t bitset_container_read(int32_t cardinality, + bitset_container_t *container, const char *buf); +/** + * Return the serialized size in bytes of a container (see + * bitset_container_write). + * This is meant to be compatible with the Java and Go versions of Roaring and + * assumes + * that the cardinality of the container is already known or can be computed. + */ +static inline int32_t bitset_container_size_in_bytes( + const bitset_container_t *container) { + (void)container; + return BITSET_CONTAINER_SIZE_IN_WORDS * sizeof(uint64_t); +} + +/** + * Return true if the two containers have the same content. + */ +bool bitset_container_equals(const bitset_container_t *container1, + const bitset_container_t *container2); + +/** + * Return true if container1 is a subset of container2. + */ +bool bitset_container_is_subset(const bitset_container_t *container1, + const bitset_container_t *container2); + +/** + * If the element of given rank is in this container, supposing that the first + * element has rank start_rank, then the function returns true and sets element + * accordingly. + * Otherwise, it returns false and update start_rank. + */ +bool bitset_container_select(const bitset_container_t *container, + uint32_t *start_rank, uint32_t rank, + uint32_t *element); + +/* Returns the smallest value (assumes not empty) */ +uint16_t bitset_container_minimum(const bitset_container_t *container); + +/* Returns the largest value (assumes not empty) */ +uint16_t bitset_container_maximum(const bitset_container_t *container); + +/* Returns the number of values equal or smaller than x */ +int bitset_container_rank(const bitset_container_t *container, uint16_t x); + +/* bulk version of bitset_container_rank(); return number of consumed elements + */ +uint32_t bitset_container_rank_many(const bitset_container_t *container, + uint64_t start_rank, const uint32_t *begin, + const uint32_t *end, uint64_t *ans); + +/* Returns the index of x , if not exsist return -1 */ +int bitset_container_get_index(const bitset_container_t *container, uint16_t x); + +/* Returns the index of the first value equal or larger than x, or -1 */ +int bitset_container_index_equalorlarger(const bitset_container_t *container, + uint16_t x); + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif + +#endif /* INCLUDE_CONTAINERS_BITSET_H_ */ diff --git a/contrib/libs/croaring/include/roaring/containers/container_defs.h b/contrib/libs/croaring/include/roaring/containers/container_defs.h new file mode 100644 index 000000000000..402bad787d23 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/containers/container_defs.h @@ -0,0 +1,100 @@ +/* + * container_defs.h + * + * Unlike containers.h (which is a file aggregating all the container includes, + * like array.h, bitset.h, and run.h) this is a file included BY those headers + * to do things like define the container base class `container_t`. + */ + +#ifndef INCLUDE_CONTAINERS_CONTAINER_DEFS_H_ +#define INCLUDE_CONTAINERS_CONTAINER_DEFS_H_ + +#ifdef __cplusplus +#include // used by casting helper for compile-time check +#endif + +// The preferences are a separate file to separate out tweakable parameters +#include + +#ifdef __cplusplus +namespace roaring { +namespace internal { // No extern "C" (contains template) +#endif + +/* + * Since roaring_array_t's definition is not opaque, the container type is + * part of the API. If it's not going to be `void*` then it needs a name, and + * expectations are to prefix C library-exported names with `roaring_` etc. + * + * Rather than force the whole codebase to use the name `roaring_container_t`, + * the few API appearances use the macro ROARING_CONTAINER_T. Those includes + * are prior to containers.h, so make a short private alias of `container_t`. + * Then undefine the awkward macro so it's not used any more than it has to be. + */ +typedef ROARING_CONTAINER_T container_t; +#undef ROARING_CONTAINER_T + +/* + * See ROARING_CONTAINER_T for notes on using container_t as a base class. + * This macro helps make the following pattern look nicer: + * + * #ifdef __cplusplus + * struct roaring_array_s : public container_t { + * #else + * struct roaring_array_s { + * #endif + * int32_t cardinality; + * int32_t capacity; + * uint16_t *array; + * } + */ +#if defined(__cplusplus) +#define STRUCT_CONTAINER(name) struct name : public container_t /* { ... } */ +#else +#define STRUCT_CONTAINER(name) struct name /* { ... } */ +#endif + +/** + * Since container_t* is not void* in C++, "dangerous" casts are not needed to + * downcast; only a static_cast<> is needed. Define a macro for static casting + * which helps make casts more visible, and catches problems at compile-time + * when building the C sources in C++ mode: + * + * void some_func(container_t **c, ...) { // double pointer, not single + * array_container_t *ac1 = (array_container_t *)(c); // uncaught!! + * + * array_container_t *ac2 = CAST(array_container_t *, c) // C++ errors + * array_container_t *ac3 = CAST_array(c); // shorthand for #2, errors + * } + * + * Trickier to do is a cast from `container**` to `array_container_t**`. This + * needs a reinterpret_cast<>, which sacrifices safety...so a template is used + * leveraging to make sure it's legal in the C++ build. + */ +#ifdef __cplusplus +#define CAST(type, value) static_cast(value) +#define movable_CAST(type, value) movable_CAST_HELPER(value) + +template +PPDerived movable_CAST_HELPER(Base **ptr_to_ptr) { + typedef typename std::remove_pointer::type PDerived; + typedef typename std::remove_pointer::type Derived; + static_assert(std::is_base_of::value, + "use movable_CAST() for container_t** => xxx_container_t**"); + return reinterpret_cast(ptr_to_ptr); +} +#else +#define CAST(type, value) ((type)value) +#define movable_CAST(type, value) ((type)value) +#endif + +// Use for converting e.g. an `array_container_t**` to a `container_t**` +// +#define movable_CAST_base(c) movable_CAST(container_t **, c) + +#ifdef __cplusplus +} +} // namespace roaring { namespace internal { +#endif + +#endif /* INCLUDE_CONTAINERS_CONTAINER_DEFS_H_ */ diff --git a/contrib/libs/croaring/include/roaring/containers/containers.h b/contrib/libs/croaring/include/roaring/containers/containers.h new file mode 100644 index 000000000000..30b0cde1aae1 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/containers/containers.h @@ -0,0 +1,2486 @@ +#ifndef CONTAINERS_CONTAINERS_H +#define CONTAINERS_CONTAINERS_H + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +// would enum be possible or better? + +/** + * The switch case statements follow + * BITSET_CONTAINER_TYPE -- ARRAY_CONTAINER_TYPE -- RUN_CONTAINER_TYPE + * so it makes more sense to number them 1, 2, 3 (in the vague hope that the + * compiler might exploit this ordering). + */ + +#define BITSET_CONTAINER_TYPE 1 +#define ARRAY_CONTAINER_TYPE 2 +#define RUN_CONTAINER_TYPE 3 +#define SHARED_CONTAINER_TYPE 4 + +/** + * Macros for pairing container type codes, suitable for switch statements. + * Use PAIR_CONTAINER_TYPES() for the switch, CONTAINER_PAIR() for the cases: + * + * switch (PAIR_CONTAINER_TYPES(type1, type2)) { + * case CONTAINER_PAIR(BITSET,ARRAY): + * ... + * } + */ +#define PAIR_CONTAINER_TYPES(type1, type2) (4 * (type1) + (type2)) + +#define CONTAINER_PAIR(name1, name2) \ + (4 * (name1##_CONTAINER_TYPE) + (name2##_CONTAINER_TYPE)) + +/** + * A shared container is a wrapper around a container + * with reference counting. + */ +STRUCT_CONTAINER(shared_container_s) { + container_t *container; + uint8_t typecode; + croaring_refcount_t counter; // to be managed atomically +}; + +typedef struct shared_container_s shared_container_t; + +#define CAST_shared(c) CAST(shared_container_t *, c) // safer downcast +#define const_CAST_shared(c) CAST(const shared_container_t *, c) +#define movable_CAST_shared(c) movable_CAST(shared_container_t **, c) + +/* + * With copy_on_write = true + * Create a new shared container if the typecode is not SHARED_CONTAINER_TYPE, + * otherwise, increase the count + * If copy_on_write = false, then clone. + * Return NULL in case of failure. + **/ +container_t *get_copy_of_container(container_t *container, uint8_t *typecode, + bool copy_on_write); + +/* Frees a shared container (actually decrement its counter and only frees when + * the counter falls to zero). */ +void shared_container_free(shared_container_t *container); + +/* extract a copy from the shared container, freeing the shared container if +there is just one instance left, +clone instances when the counter is higher than one +*/ +container_t *shared_container_extract_copy(shared_container_t *container, + uint8_t *typecode); + +/* access to container underneath */ +static inline const container_t *container_unwrap_shared( + const container_t *candidate_shared_container, uint8_t *type) { + if (*type == SHARED_CONTAINER_TYPE) { + *type = const_CAST_shared(candidate_shared_container)->typecode; + assert(*type != SHARED_CONTAINER_TYPE); + return const_CAST_shared(candidate_shared_container)->container; + } else { + return candidate_shared_container; + } +} + +/* access to container underneath */ +static inline container_t *container_mutable_unwrap_shared(container_t *c, + uint8_t *type) { + if (*type == SHARED_CONTAINER_TYPE) { // the passed in container is shared + *type = CAST_shared(c)->typecode; + assert(*type != SHARED_CONTAINER_TYPE); + return CAST_shared(c)->container; // return the enclosed container + } else { + return c; // wasn't shared, so return as-is + } +} + +/* access to container underneath and queries its type */ +static inline uint8_t get_container_type(const container_t *c, uint8_t type) { + if (type == SHARED_CONTAINER_TYPE) { + return const_CAST_shared(c)->typecode; + } else { + return type; + } +} + +/** + * Copies a container, requires a typecode. This allocates new memory, caller + * is responsible for deallocation. If the container is not shared, then it is + * physically cloned. Sharable containers are not cloneable. + */ +container_t *container_clone(const container_t *container, uint8_t typecode); + +/* access to container underneath, cloning it if needed */ +static inline container_t *get_writable_copy_if_shared(container_t *c, + uint8_t *type) { + if (*type == SHARED_CONTAINER_TYPE) { // shared, return enclosed container + return shared_container_extract_copy(CAST_shared(c), type); + } else { + return c; // not shared, so return as-is + } +} + +/** + * End of shared container code + */ + +static const char *container_names[] = {"bitset", "array", "run", "shared"}; +static const char *shared_container_names[] = { + "bitset (shared)", "array (shared)", "run (shared)"}; + +// no matter what the initial container was, convert it to a bitset +// if a new container is produced, caller responsible for freeing the previous +// one +// container should not be a shared container +static inline bitset_container_t *container_to_bitset(container_t *c, + uint8_t typecode) { + bitset_container_t *result = NULL; + switch (typecode) { + case BITSET_CONTAINER_TYPE: + return CAST_bitset(c); // nothing to do + case ARRAY_CONTAINER_TYPE: + result = bitset_container_from_array(CAST_array(c)); + return result; + case RUN_CONTAINER_TYPE: + result = bitset_container_from_run(CAST_run(c)); + return result; + case SHARED_CONTAINER_TYPE: + assert(false); + roaring_unreachable; + } + assert(false); + roaring_unreachable; + return 0; // unreached +} + +/** + * Get the container name from the typecode + * (unused at time of writing) + */ +/*static inline const char *get_container_name(uint8_t typecode) { + switch (typecode) { + case BITSET_CONTAINER_TYPE: + return container_names[0]; + case ARRAY_CONTAINER_TYPE: + return container_names[1]; + case RUN_CONTAINER_TYPE: + return container_names[2]; + case SHARED_CONTAINER_TYPE: + return container_names[3]; + default: + assert(false); + roaring_unreachable; + return "unknown"; + } +}*/ + +static inline const char *get_full_container_name(const container_t *c, + uint8_t typecode) { + switch (typecode) { + case BITSET_CONTAINER_TYPE: + return container_names[0]; + case ARRAY_CONTAINER_TYPE: + return container_names[1]; + case RUN_CONTAINER_TYPE: + return container_names[2]; + case SHARED_CONTAINER_TYPE: + switch (const_CAST_shared(c)->typecode) { + case BITSET_CONTAINER_TYPE: + return shared_container_names[0]; + case ARRAY_CONTAINER_TYPE: + return shared_container_names[1]; + case RUN_CONTAINER_TYPE: + return shared_container_names[2]; + default: + assert(false); + roaring_unreachable; + return "unknown"; + } + break; + default: + assert(false); + roaring_unreachable; + return "unknown"; + } + roaring_unreachable; + return NULL; +} + +/** + * Get the container cardinality (number of elements), requires a typecode + */ +static inline int container_get_cardinality(const container_t *c, + uint8_t typecode) { + c = container_unwrap_shared(c, &typecode); + switch (typecode) { + case BITSET_CONTAINER_TYPE: + return bitset_container_cardinality(const_CAST_bitset(c)); + case ARRAY_CONTAINER_TYPE: + return array_container_cardinality(const_CAST_array(c)); + case RUN_CONTAINER_TYPE: + return run_container_cardinality(const_CAST_run(c)); + } + assert(false); + roaring_unreachable; + return 0; // unreached +} + +// returns true if a container is known to be full. Note that a lazy bitset +// container +// might be full without us knowing +static inline bool container_is_full(const container_t *c, uint8_t typecode) { + c = container_unwrap_shared(c, &typecode); + switch (typecode) { + case BITSET_CONTAINER_TYPE: + return bitset_container_cardinality(const_CAST_bitset(c)) == + (1 << 16); + case ARRAY_CONTAINER_TYPE: + return array_container_cardinality(const_CAST_array(c)) == + (1 << 16); + case RUN_CONTAINER_TYPE: + return run_container_is_full(const_CAST_run(c)); + } + assert(false); + roaring_unreachable; + return 0; // unreached +} + +static inline int container_shrink_to_fit(container_t *c, uint8_t type) { + c = container_mutable_unwrap_shared(c, &type); + switch (type) { + case BITSET_CONTAINER_TYPE: + return 0; // no shrinking possible + case ARRAY_CONTAINER_TYPE: + return array_container_shrink_to_fit(CAST_array(c)); + case RUN_CONTAINER_TYPE: + return run_container_shrink_to_fit(CAST_run(c)); + } + assert(false); + roaring_unreachable; + return 0; // unreached +} + +/** + * make a container with a run of ones + */ +/* initially always use a run container, even if an array might be + * marginally + * smaller */ +static inline container_t *container_range_of_ones(uint32_t range_start, + uint32_t range_end, + uint8_t *result_type) { + assert(range_end >= range_start); + uint64_t cardinality = range_end - range_start + 1; + if (cardinality <= 2) { + *result_type = ARRAY_CONTAINER_TYPE; + return array_container_create_range(range_start, range_end); + } else { + *result_type = RUN_CONTAINER_TYPE; + return run_container_create_range(range_start, range_end); + } +} + +/* Create a container with all the values between in [min,max) at a + distance k*step from min. */ +static inline container_t *container_from_range(uint8_t *type, uint32_t min, + uint32_t max, uint16_t step) { + if (step == 0) return NULL; // being paranoid + if (step == 1) { + return container_range_of_ones(min, max, type); + // Note: the result is not always a run (need to check the cardinality) + //*type = RUN_CONTAINER_TYPE; + // return run_container_create_range(min, max); + } + int size = (max - min + step - 1) / step; + if (size <= DEFAULT_MAX_SIZE) { // array container + *type = ARRAY_CONTAINER_TYPE; + array_container_t *array = array_container_create_given_capacity(size); + array_container_add_from_range(array, min, max, step); + assert(array->cardinality == size); + return array; + } else { // bitset container + *type = BITSET_CONTAINER_TYPE; + bitset_container_t *bitset = bitset_container_create(); + bitset_container_add_from_range(bitset, min, max, step); + assert(bitset->cardinality == size); + return bitset; + } +} + +/** + * "repair" the container after lazy operations. + */ +static inline container_t *container_repair_after_lazy(container_t *c, + uint8_t *type) { + c = get_writable_copy_if_shared(c, type); // !!! unnecessary cloning + container_t *result = NULL; + switch (*type) { + case BITSET_CONTAINER_TYPE: { + bitset_container_t *bc = CAST_bitset(c); + bc->cardinality = bitset_container_compute_cardinality(bc); + if (bc->cardinality <= DEFAULT_MAX_SIZE) { + result = array_container_from_bitset(bc); + bitset_container_free(bc); + *type = ARRAY_CONTAINER_TYPE; + return result; + } + return c; + } + case ARRAY_CONTAINER_TYPE: + return c; // nothing to do + case RUN_CONTAINER_TYPE: + return convert_run_to_efficient_container_and_free(CAST_run(c), + type); + case SHARED_CONTAINER_TYPE: + assert(false); + } + assert(false); + roaring_unreachable; + return 0; // unreached +} + +/** + * Writes the underlying array to buf, outputs how many bytes were written. + * This is meant to be byte-by-byte compatible with the Java and Go versions of + * Roaring. + * The number of bytes written should be + * container_write(container, buf). + * + */ +static inline int32_t container_write(const container_t *c, uint8_t typecode, + char *buf) { + c = container_unwrap_shared(c, &typecode); + switch (typecode) { + case BITSET_CONTAINER_TYPE: + return bitset_container_write(const_CAST_bitset(c), buf); + case ARRAY_CONTAINER_TYPE: + return array_container_write(const_CAST_array(c), buf); + case RUN_CONTAINER_TYPE: + return run_container_write(const_CAST_run(c), buf); + } + assert(false); + roaring_unreachable; + return 0; // unreached +} + +/** + * Get the container size in bytes under portable serialization (see + * container_write), requires a + * typecode + */ +static inline int32_t container_size_in_bytes(const container_t *c, + uint8_t typecode) { + c = container_unwrap_shared(c, &typecode); + switch (typecode) { + case BITSET_CONTAINER_TYPE: + return bitset_container_size_in_bytes(const_CAST_bitset(c)); + case ARRAY_CONTAINER_TYPE: + return array_container_size_in_bytes(const_CAST_array(c)); + case RUN_CONTAINER_TYPE: + return run_container_size_in_bytes(const_CAST_run(c)); + } + assert(false); + roaring_unreachable; + return 0; // unreached +} + +/** + * print the container (useful for debugging), requires a typecode + */ +void container_printf(const container_t *container, uint8_t typecode); + +/** + * print the content of the container as a comma-separated list of 32-bit values + * starting at base, requires a typecode + */ +void container_printf_as_uint32_array(const container_t *container, + uint8_t typecode, uint32_t base); + +bool container_internal_validate(const container_t *container, uint8_t typecode, + const char **reason); + +/** + * Checks whether a container is not empty, requires a typecode + */ +static inline bool container_nonzero_cardinality(const container_t *c, + uint8_t typecode) { + c = container_unwrap_shared(c, &typecode); + switch (typecode) { + case BITSET_CONTAINER_TYPE: + return bitset_container_const_nonzero_cardinality( + const_CAST_bitset(c)); + case ARRAY_CONTAINER_TYPE: + return array_container_nonzero_cardinality(const_CAST_array(c)); + case RUN_CONTAINER_TYPE: + return run_container_nonzero_cardinality(const_CAST_run(c)); + } + assert(false); + roaring_unreachable; + return 0; // unreached +} + +/** + * Recover memory from a container, requires a typecode + */ +void container_free(container_t *container, uint8_t typecode); + +/** + * Convert a container to an array of values, requires a typecode as well as a + * "base" (most significant values) + * Returns number of ints added. + */ +static inline int container_to_uint32_array(uint32_t *output, + const container_t *c, + uint8_t typecode, uint32_t base) { + c = container_unwrap_shared(c, &typecode); + switch (typecode) { + case BITSET_CONTAINER_TYPE: + return bitset_container_to_uint32_array(output, + const_CAST_bitset(c), base); + case ARRAY_CONTAINER_TYPE: + return array_container_to_uint32_array(output, const_CAST_array(c), + base); + case RUN_CONTAINER_TYPE: + return run_container_to_uint32_array(output, const_CAST_run(c), + base); + } + assert(false); + roaring_unreachable; + return 0; // unreached +} + +/** + * Add a value to a container, requires a typecode, fills in new_typecode and + * return (possibly different) container. + * This function may allocate a new container, and caller is responsible for + * memory deallocation + */ +static inline container_t *container_add( + container_t *c, uint16_t val, + uint8_t typecode, // !!! should be second argument? + uint8_t *new_typecode) { + c = get_writable_copy_if_shared(c, &typecode); + switch (typecode) { + case BITSET_CONTAINER_TYPE: + bitset_container_set(CAST_bitset(c), val); + *new_typecode = BITSET_CONTAINER_TYPE; + return c; + case ARRAY_CONTAINER_TYPE: { + array_container_t *ac = CAST_array(c); + if (array_container_try_add(ac, val, DEFAULT_MAX_SIZE) != -1) { + *new_typecode = ARRAY_CONTAINER_TYPE; + return ac; + } else { + bitset_container_t *bitset = bitset_container_from_array(ac); + bitset_container_add(bitset, val); + *new_typecode = BITSET_CONTAINER_TYPE; + return bitset; + } + } break; + case RUN_CONTAINER_TYPE: + // per Java, no container type adjustments are done (revisit?) + run_container_add(CAST_run(c), val); + *new_typecode = RUN_CONTAINER_TYPE; + return c; + default: + assert(false); + roaring_unreachable; + return NULL; + } +} + +/** + * Remove a value from a container, requires a typecode, fills in new_typecode + * and + * return (possibly different) container. + * This function may allocate a new container, and caller is responsible for + * memory deallocation + */ +static inline container_t *container_remove( + container_t *c, uint16_t val, + uint8_t typecode, // !!! should be second argument? + uint8_t *new_typecode) { + c = get_writable_copy_if_shared(c, &typecode); + switch (typecode) { + case BITSET_CONTAINER_TYPE: + if (bitset_container_remove(CAST_bitset(c), val)) { + int card = bitset_container_cardinality(CAST_bitset(c)); + if (card <= DEFAULT_MAX_SIZE) { + *new_typecode = ARRAY_CONTAINER_TYPE; + return array_container_from_bitset(CAST_bitset(c)); + } + } + *new_typecode = typecode; + return c; + case ARRAY_CONTAINER_TYPE: + *new_typecode = typecode; + array_container_remove(CAST_array(c), val); + return c; + case RUN_CONTAINER_TYPE: + // per Java, no container type adjustments are done (revisit?) + run_container_remove(CAST_run(c), val); + *new_typecode = RUN_CONTAINER_TYPE; + return c; + default: + assert(false); + roaring_unreachable; + return NULL; + } +} + +/** + * Check whether a value is in a container, requires a typecode + */ +static inline bool container_contains( + const container_t *c, uint16_t val, + uint8_t typecode // !!! should be second argument? +) { + c = container_unwrap_shared(c, &typecode); + switch (typecode) { + case BITSET_CONTAINER_TYPE: + return bitset_container_get(const_CAST_bitset(c), val); + case ARRAY_CONTAINER_TYPE: + return array_container_contains(const_CAST_array(c), val); + case RUN_CONTAINER_TYPE: + return run_container_contains(const_CAST_run(c), val); + default: + assert(false); + roaring_unreachable; + return false; + } +} + +/** + * Check whether a range of values from range_start (included) to range_end + * (excluded) is in a container, requires a typecode + */ +static inline bool container_contains_range( + const container_t *c, uint32_t range_start, uint32_t range_end, + uint8_t typecode // !!! should be second argument? +) { + c = container_unwrap_shared(c, &typecode); + switch (typecode) { + case BITSET_CONTAINER_TYPE: + return bitset_container_get_range(const_CAST_bitset(c), range_start, + range_end); + case ARRAY_CONTAINER_TYPE: + return array_container_contains_range(const_CAST_array(c), + range_start, range_end); + case RUN_CONTAINER_TYPE: + return run_container_contains_range(const_CAST_run(c), range_start, + range_end); + default: + assert(false); + roaring_unreachable; + return false; + } +} + +/** + * Returns true if the two containers have the same content. Note that + * two containers having different types can be "equal" in this sense. + */ +static inline bool container_equals(const container_t *c1, uint8_t type1, + const container_t *c2, uint8_t type2) { + c1 = container_unwrap_shared(c1, &type1); + c2 = container_unwrap_shared(c2, &type2); + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): + return bitset_container_equals(const_CAST_bitset(c1), + const_CAST_bitset(c2)); + + case CONTAINER_PAIR(BITSET, RUN): + return run_container_equals_bitset(const_CAST_run(c2), + const_CAST_bitset(c1)); + + case CONTAINER_PAIR(RUN, BITSET): + return run_container_equals_bitset(const_CAST_run(c1), + const_CAST_bitset(c2)); + + case CONTAINER_PAIR(BITSET, ARRAY): + // java would always return false? + return array_container_equal_bitset(const_CAST_array(c2), + const_CAST_bitset(c1)); + + case CONTAINER_PAIR(ARRAY, BITSET): + // java would always return false? + return array_container_equal_bitset(const_CAST_array(c1), + const_CAST_bitset(c2)); + + case CONTAINER_PAIR(ARRAY, RUN): + return run_container_equals_array(const_CAST_run(c2), + const_CAST_array(c1)); + + case CONTAINER_PAIR(RUN, ARRAY): + return run_container_equals_array(const_CAST_run(c1), + const_CAST_array(c2)); + + case CONTAINER_PAIR(ARRAY, ARRAY): + return array_container_equals(const_CAST_array(c1), + const_CAST_array(c2)); + + case CONTAINER_PAIR(RUN, RUN): + return run_container_equals(const_CAST_run(c1), const_CAST_run(c2)); + + default: + assert(false); + roaring_unreachable; + return false; + } +} + +/** + * Returns true if the container c1 is a subset of the container c2. Note that + * c1 can be a subset of c2 even if they have a different type. + */ +static inline bool container_is_subset(const container_t *c1, uint8_t type1, + const container_t *c2, uint8_t type2) { + c1 = container_unwrap_shared(c1, &type1); + c2 = container_unwrap_shared(c2, &type2); + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): + return bitset_container_is_subset(const_CAST_bitset(c1), + const_CAST_bitset(c2)); + + case CONTAINER_PAIR(BITSET, RUN): + return bitset_container_is_subset_run(const_CAST_bitset(c1), + const_CAST_run(c2)); + + case CONTAINER_PAIR(RUN, BITSET): + return run_container_is_subset_bitset(const_CAST_run(c1), + const_CAST_bitset(c2)); + + case CONTAINER_PAIR(BITSET, ARRAY): + return false; // by construction, size(c1) > size(c2) + + case CONTAINER_PAIR(ARRAY, BITSET): + return array_container_is_subset_bitset(const_CAST_array(c1), + const_CAST_bitset(c2)); + + case CONTAINER_PAIR(ARRAY, RUN): + return array_container_is_subset_run(const_CAST_array(c1), + const_CAST_run(c2)); + + case CONTAINER_PAIR(RUN, ARRAY): + return run_container_is_subset_array(const_CAST_run(c1), + const_CAST_array(c2)); + + case CONTAINER_PAIR(ARRAY, ARRAY): + return array_container_is_subset(const_CAST_array(c1), + const_CAST_array(c2)); + + case CONTAINER_PAIR(RUN, RUN): + return run_container_is_subset(const_CAST_run(c1), + const_CAST_run(c2)); + + default: + assert(false); + roaring_unreachable; + return false; + } +} + +// macro-izations possibilities for generic non-inplace binary-op dispatch + +/** + * Compute intersection between two containers, generate a new container (having + * type result_type), requires a typecode. This allocates new memory, caller + * is responsible for deallocation. + */ +static inline container_t *container_and(const container_t *c1, uint8_t type1, + const container_t *c2, uint8_t type2, + uint8_t *result_type) { + c1 = container_unwrap_shared(c1, &type1); + c2 = container_unwrap_shared(c2, &type2); + container_t *result = NULL; + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): + *result_type = + bitset_bitset_container_intersection( + const_CAST_bitset(c1), const_CAST_bitset(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, ARRAY): + result = array_container_create(); + array_container_intersection( + const_CAST_array(c1), const_CAST_array(c2), CAST_array(result)); + *result_type = ARRAY_CONTAINER_TYPE; // never bitset + return result; + + case CONTAINER_PAIR(RUN, RUN): + result = run_container_create(); + run_container_intersection(const_CAST_run(c1), const_CAST_run(c2), + CAST_run(result)); + return convert_run_to_efficient_container_and_free(CAST_run(result), + result_type); + + case CONTAINER_PAIR(BITSET, ARRAY): + result = array_container_create(); + array_bitset_container_intersection(const_CAST_array(c2), + const_CAST_bitset(c1), + CAST_array(result)); + *result_type = ARRAY_CONTAINER_TYPE; // never bitset + return result; + + case CONTAINER_PAIR(ARRAY, BITSET): + result = array_container_create(); + *result_type = ARRAY_CONTAINER_TYPE; // never bitset + array_bitset_container_intersection(const_CAST_array(c1), + const_CAST_bitset(c2), + CAST_array(result)); + return result; + + case CONTAINER_PAIR(BITSET, RUN): + *result_type = + run_bitset_container_intersection( + const_CAST_run(c2), const_CAST_bitset(c1), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(RUN, BITSET): + *result_type = + run_bitset_container_intersection( + const_CAST_run(c1), const_CAST_bitset(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, RUN): + result = array_container_create(); + *result_type = ARRAY_CONTAINER_TYPE; // never bitset + array_run_container_intersection( + const_CAST_array(c1), const_CAST_run(c2), CAST_array(result)); + return result; + + case CONTAINER_PAIR(RUN, ARRAY): + result = array_container_create(); + *result_type = ARRAY_CONTAINER_TYPE; // never bitset + array_run_container_intersection( + const_CAST_array(c2), const_CAST_run(c1), CAST_array(result)); + return result; + + default: + assert(false); + roaring_unreachable; + return NULL; + } +} + +/** + * Compute the size of the intersection between two containers. + */ +static inline int container_and_cardinality(const container_t *c1, + uint8_t type1, + const container_t *c2, + uint8_t type2) { + c1 = container_unwrap_shared(c1, &type1); + c2 = container_unwrap_shared(c2, &type2); + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): + return bitset_container_and_justcard(const_CAST_bitset(c1), + const_CAST_bitset(c2)); + + case CONTAINER_PAIR(ARRAY, ARRAY): + return array_container_intersection_cardinality( + const_CAST_array(c1), const_CAST_array(c2)); + + case CONTAINER_PAIR(RUN, RUN): + return run_container_intersection_cardinality(const_CAST_run(c1), + const_CAST_run(c2)); + + case CONTAINER_PAIR(BITSET, ARRAY): + return array_bitset_container_intersection_cardinality( + const_CAST_array(c2), const_CAST_bitset(c1)); + + case CONTAINER_PAIR(ARRAY, BITSET): + return array_bitset_container_intersection_cardinality( + const_CAST_array(c1), const_CAST_bitset(c2)); + + case CONTAINER_PAIR(BITSET, RUN): + return run_bitset_container_intersection_cardinality( + const_CAST_run(c2), const_CAST_bitset(c1)); + + case CONTAINER_PAIR(RUN, BITSET): + return run_bitset_container_intersection_cardinality( + const_CAST_run(c1), const_CAST_bitset(c2)); + + case CONTAINER_PAIR(ARRAY, RUN): + return array_run_container_intersection_cardinality( + const_CAST_array(c1), const_CAST_run(c2)); + + case CONTAINER_PAIR(RUN, ARRAY): + return array_run_container_intersection_cardinality( + const_CAST_array(c2), const_CAST_run(c1)); + + default: + assert(false); + roaring_unreachable; + return 0; + } +} + +/** + * Check whether two containers intersect. + */ +static inline bool container_intersect(const container_t *c1, uint8_t type1, + const container_t *c2, uint8_t type2) { + c1 = container_unwrap_shared(c1, &type1); + c2 = container_unwrap_shared(c2, &type2); + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): + return bitset_container_intersect(const_CAST_bitset(c1), + const_CAST_bitset(c2)); + + case CONTAINER_PAIR(ARRAY, ARRAY): + return array_container_intersect(const_CAST_array(c1), + const_CAST_array(c2)); + + case CONTAINER_PAIR(RUN, RUN): + return run_container_intersect(const_CAST_run(c1), + const_CAST_run(c2)); + + case CONTAINER_PAIR(BITSET, ARRAY): + return array_bitset_container_intersect(const_CAST_array(c2), + const_CAST_bitset(c1)); + + case CONTAINER_PAIR(ARRAY, BITSET): + return array_bitset_container_intersect(const_CAST_array(c1), + const_CAST_bitset(c2)); + + case CONTAINER_PAIR(BITSET, RUN): + return run_bitset_container_intersect(const_CAST_run(c2), + const_CAST_bitset(c1)); + + case CONTAINER_PAIR(RUN, BITSET): + return run_bitset_container_intersect(const_CAST_run(c1), + const_CAST_bitset(c2)); + + case CONTAINER_PAIR(ARRAY, RUN): + return array_run_container_intersect(const_CAST_array(c1), + const_CAST_run(c2)); + + case CONTAINER_PAIR(RUN, ARRAY): + return array_run_container_intersect(const_CAST_array(c2), + const_CAST_run(c1)); + + default: + assert(false); + roaring_unreachable; + return 0; + } +} + +/** + * Compute intersection between two containers, with result in the first + container if possible. If the returned pointer is identical to c1, + then the container has been modified. If the returned pointer is different + from c1, then a new container has been created and the caller is responsible + for freeing it. + The type of the first container may change. Returns the modified + (and possibly new) container. +*/ +static inline container_t *container_iand(container_t *c1, uint8_t type1, + const container_t *c2, uint8_t type2, + uint8_t *result_type) { + c1 = get_writable_copy_if_shared(c1, &type1); + c2 = container_unwrap_shared(c2, &type2); + container_t *result = NULL; + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): + *result_type = bitset_bitset_container_intersection_inplace( + CAST_bitset(c1), const_CAST_bitset(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, ARRAY): + array_container_intersection_inplace(CAST_array(c1), + const_CAST_array(c2)); + *result_type = ARRAY_CONTAINER_TYPE; + return c1; + + case CONTAINER_PAIR(RUN, RUN): + result = run_container_create(); + run_container_intersection(const_CAST_run(c1), const_CAST_run(c2), + CAST_run(result)); + // as of January 2016, Java code used non-in-place intersection for + // two runcontainers + return convert_run_to_efficient_container_and_free(CAST_run(result), + result_type); + + case CONTAINER_PAIR(BITSET, ARRAY): + // c1 is a bitmap so no inplace possible + result = array_container_create(); + array_bitset_container_intersection(const_CAST_array(c2), + const_CAST_bitset(c1), + CAST_array(result)); + *result_type = ARRAY_CONTAINER_TYPE; // never bitset + return result; + + case CONTAINER_PAIR(ARRAY, BITSET): + *result_type = ARRAY_CONTAINER_TYPE; // never bitset + array_bitset_container_intersection( + const_CAST_array(c1), const_CAST_bitset(c2), + CAST_array(c1)); // result is allowed to be same as c1 + return c1; + + case CONTAINER_PAIR(BITSET, RUN): + // will attempt in-place computation + *result_type = run_bitset_container_intersection( + const_CAST_run(c2), const_CAST_bitset(c1), &c1) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return c1; + + case CONTAINER_PAIR(RUN, BITSET): + *result_type = + run_bitset_container_intersection( + const_CAST_run(c1), const_CAST_bitset(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, RUN): + result = array_container_create(); + *result_type = ARRAY_CONTAINER_TYPE; // never bitset + array_run_container_intersection( + const_CAST_array(c1), const_CAST_run(c2), CAST_array(result)); + return result; + + case CONTAINER_PAIR(RUN, ARRAY): + result = array_container_create(); + *result_type = ARRAY_CONTAINER_TYPE; // never bitset + array_run_container_intersection( + const_CAST_array(c2), const_CAST_run(c1), CAST_array(result)); + return result; + + default: + assert(false); + roaring_unreachable; + return NULL; + } +} + +/** + * Compute union between two containers, generate a new container (having type + * result_type), requires a typecode. This allocates new memory, caller + * is responsible for deallocation. + */ +static inline container_t *container_or(const container_t *c1, uint8_t type1, + const container_t *c2, uint8_t type2, + uint8_t *result_type) { + c1 = container_unwrap_shared(c1, &type1); + c2 = container_unwrap_shared(c2, &type2); + container_t *result = NULL; + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): + result = bitset_container_create(); + bitset_container_or(const_CAST_bitset(c1), const_CAST_bitset(c2), + CAST_bitset(result)); + *result_type = BITSET_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, ARRAY): + *result_type = + array_array_container_union(const_CAST_array(c1), + const_CAST_array(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(RUN, RUN): + result = run_container_create(); + run_container_union(const_CAST_run(c1), const_CAST_run(c2), + CAST_run(result)); + *result_type = RUN_CONTAINER_TYPE; + // todo: could be optimized since will never convert to array + result = convert_run_to_efficient_container_and_free( + CAST_run(result), result_type); + return result; + + case CONTAINER_PAIR(BITSET, ARRAY): + result = bitset_container_create(); + array_bitset_container_union(const_CAST_array(c2), + const_CAST_bitset(c1), + CAST_bitset(result)); + *result_type = BITSET_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, BITSET): + result = bitset_container_create(); + array_bitset_container_union(const_CAST_array(c1), + const_CAST_bitset(c2), + CAST_bitset(result)); + *result_type = BITSET_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(BITSET, RUN): + if (run_container_is_full(const_CAST_run(c2))) { + result = run_container_create(); + *result_type = RUN_CONTAINER_TYPE; + run_container_copy(const_CAST_run(c2), CAST_run(result)); + return result; + } + result = bitset_container_create(); + run_bitset_container_union( + const_CAST_run(c2), const_CAST_bitset(c1), CAST_bitset(result)); + *result_type = BITSET_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(RUN, BITSET): + if (run_container_is_full(const_CAST_run(c1))) { + result = run_container_create(); + *result_type = RUN_CONTAINER_TYPE; + run_container_copy(const_CAST_run(c1), CAST_run(result)); + return result; + } + result = bitset_container_create(); + run_bitset_container_union( + const_CAST_run(c1), const_CAST_bitset(c2), CAST_bitset(result)); + *result_type = BITSET_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, RUN): + result = run_container_create(); + array_run_container_union(const_CAST_array(c1), const_CAST_run(c2), + CAST_run(result)); + result = convert_run_to_efficient_container_and_free( + CAST_run(result), result_type); + return result; + + case CONTAINER_PAIR(RUN, ARRAY): + result = run_container_create(); + array_run_container_union(const_CAST_array(c2), const_CAST_run(c1), + CAST_run(result)); + result = convert_run_to_efficient_container_and_free( + CAST_run(result), result_type); + return result; + + default: + assert(false); + roaring_unreachable; + return NULL; // unreached + } +} + +/** + * Compute union between two containers, generate a new container (having type + * result_type), requires a typecode. This allocates new memory, caller + * is responsible for deallocation. + * + * This lazy version delays some operations such as the maintenance of the + * cardinality. It requires repair later on the generated containers. + */ +static inline container_t *container_lazy_or(const container_t *c1, + uint8_t type1, + const container_t *c2, + uint8_t type2, + uint8_t *result_type) { + c1 = container_unwrap_shared(c1, &type1); + c2 = container_unwrap_shared(c2, &type2); + container_t *result = NULL; + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): + result = bitset_container_create(); + bitset_container_or_nocard(const_CAST_bitset(c1), + const_CAST_bitset(c2), + CAST_bitset(result)); // is lazy + *result_type = BITSET_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, ARRAY): + *result_type = + array_array_container_lazy_union(const_CAST_array(c1), + const_CAST_array(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(RUN, RUN): + result = run_container_create(); + run_container_union(const_CAST_run(c1), const_CAST_run(c2), + CAST_run(result)); + *result_type = RUN_CONTAINER_TYPE; + // we are being lazy + result = convert_run_to_efficient_container_and_free( + CAST_run(result), result_type); + return result; + + case CONTAINER_PAIR(BITSET, ARRAY): + result = bitset_container_create(); + array_bitset_container_lazy_union(const_CAST_array(c2), + const_CAST_bitset(c1), + CAST_bitset(result)); // is lazy + *result_type = BITSET_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, BITSET): + result = bitset_container_create(); + array_bitset_container_lazy_union(const_CAST_array(c1), + const_CAST_bitset(c2), + CAST_bitset(result)); // is lazy + *result_type = BITSET_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(BITSET, RUN): + if (run_container_is_full(const_CAST_run(c2))) { + result = run_container_create(); + *result_type = RUN_CONTAINER_TYPE; + run_container_copy(const_CAST_run(c2), CAST_run(result)); + return result; + } + result = bitset_container_create(); + run_bitset_container_lazy_union(const_CAST_run(c2), + const_CAST_bitset(c1), + CAST_bitset(result)); // is lazy + *result_type = BITSET_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(RUN, BITSET): + if (run_container_is_full(const_CAST_run(c1))) { + result = run_container_create(); + *result_type = RUN_CONTAINER_TYPE; + run_container_copy(const_CAST_run(c1), CAST_run(result)); + return result; + } + result = bitset_container_create(); + run_bitset_container_lazy_union(const_CAST_run(c1), + const_CAST_bitset(c2), + CAST_bitset(result)); // is lazy + *result_type = BITSET_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, RUN): + result = run_container_create(); + array_run_container_union(const_CAST_array(c1), const_CAST_run(c2), + CAST_run(result)); + *result_type = RUN_CONTAINER_TYPE; + // next line skipped since we are lazy + // result = convert_run_to_efficient_container(result, result_type); + return result; + + case CONTAINER_PAIR(RUN, ARRAY): + result = run_container_create(); + array_run_container_union(const_CAST_array(c2), const_CAST_run(c1), + CAST_run(result)); // TODO make lazy + *result_type = RUN_CONTAINER_TYPE; + // next line skipped since we are lazy + // result = convert_run_to_efficient_container(result, result_type); + return result; + + default: + assert(false); + roaring_unreachable; + return NULL; // unreached + } +} + +/** + * Compute the union between two containers, with result in the first container. + * If the returned pointer is identical to c1, then the container has been + * modified. + * If the returned pointer is different from c1, then a new container has been + * created and the caller is responsible for freeing it. + * The type of the first container may change. Returns the modified + * (and possibly new) container + */ +static inline container_t *container_ior(container_t *c1, uint8_t type1, + const container_t *c2, uint8_t type2, + uint8_t *result_type) { + c1 = get_writable_copy_if_shared(c1, &type1); + c2 = container_unwrap_shared(c2, &type2); + container_t *result = NULL; + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): + bitset_container_or(const_CAST_bitset(c1), const_CAST_bitset(c2), + CAST_bitset(c1)); +#ifdef OR_BITSET_CONVERSION_TO_FULL + if (CAST_bitset(c1)->cardinality == (1 << 16)) { // we convert + result = run_container_create_range(0, (1 << 16)); + *result_type = RUN_CONTAINER_TYPE; + return result; + } +#endif + *result_type = BITSET_CONTAINER_TYPE; + return c1; + + case CONTAINER_PAIR(ARRAY, ARRAY): + *result_type = array_array_container_inplace_union( + CAST_array(c1), const_CAST_array(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + if ((result == NULL) && (*result_type == ARRAY_CONTAINER_TYPE)) { + return c1; // the computation was done in-place! + } + return result; + + case CONTAINER_PAIR(RUN, RUN): + run_container_union_inplace(CAST_run(c1), const_CAST_run(c2)); + return convert_run_to_efficient_container(CAST_run(c1), + result_type); + + case CONTAINER_PAIR(BITSET, ARRAY): + array_bitset_container_union( + const_CAST_array(c2), const_CAST_bitset(c1), CAST_bitset(c1)); + *result_type = BITSET_CONTAINER_TYPE; // never array + return c1; + + case CONTAINER_PAIR(ARRAY, BITSET): + // c1 is an array, so no in-place possible + result = bitset_container_create(); + *result_type = BITSET_CONTAINER_TYPE; + array_bitset_container_union(const_CAST_array(c1), + const_CAST_bitset(c2), + CAST_bitset(result)); + return result; + + case CONTAINER_PAIR(BITSET, RUN): + if (run_container_is_full(const_CAST_run(c2))) { + result = run_container_create(); + *result_type = RUN_CONTAINER_TYPE; + run_container_copy(const_CAST_run(c2), CAST_run(result)); + return result; + } + run_bitset_container_union(const_CAST_run(c2), + const_CAST_bitset(c1), + CAST_bitset(c1)); // allowed + *result_type = BITSET_CONTAINER_TYPE; + return c1; + + case CONTAINER_PAIR(RUN, BITSET): + if (run_container_is_full(const_CAST_run(c1))) { + *result_type = RUN_CONTAINER_TYPE; + return c1; + } + result = bitset_container_create(); + run_bitset_container_union( + const_CAST_run(c1), const_CAST_bitset(c2), CAST_bitset(result)); + *result_type = BITSET_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, RUN): + result = run_container_create(); + array_run_container_union(const_CAST_array(c1), const_CAST_run(c2), + CAST_run(result)); + result = convert_run_to_efficient_container_and_free( + CAST_run(result), result_type); + return result; + + case CONTAINER_PAIR(RUN, ARRAY): + array_run_container_inplace_union(const_CAST_array(c2), + CAST_run(c1)); + c1 = convert_run_to_efficient_container(CAST_run(c1), result_type); + return c1; + + default: + assert(false); + roaring_unreachable; + return NULL; + } +} + +/** + * Compute the union between two containers, with result in the first container. + * If the returned pointer is identical to c1, then the container has been + * modified. + * If the returned pointer is different from c1, then a new container has been + * created and the caller is responsible for freeing it. + * The type of the first container may change. Returns the modified + * (and possibly new) container + * + * This lazy version delays some operations such as the maintenance of the + * cardinality. It requires repair later on the generated containers. + */ +static inline container_t *container_lazy_ior(container_t *c1, uint8_t type1, + const container_t *c2, + uint8_t type2, + uint8_t *result_type) { + assert(type1 != SHARED_CONTAINER_TYPE); + // c1 = get_writable_copy_if_shared(c1,&type1); + c2 = container_unwrap_shared(c2, &type2); + container_t *result = NULL; + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): +#ifdef LAZY_OR_BITSET_CONVERSION_TO_FULL + // if we have two bitsets, we might as well compute the cardinality + bitset_container_or(const_CAST_bitset(c1), const_CAST_bitset(c2), + CAST_bitset(c1)); + // it is possible that two bitsets can lead to a full container + if (CAST_bitset(c1)->cardinality == (1 << 16)) { // we convert + result = run_container_create_range(0, (1 << 16)); + *result_type = RUN_CONTAINER_TYPE; + return result; + } +#else + bitset_container_or_nocard(const_CAST_bitset(c1), + const_CAST_bitset(c2), CAST_bitset(c1)); + +#endif + *result_type = BITSET_CONTAINER_TYPE; + return c1; + + case CONTAINER_PAIR(ARRAY, ARRAY): + *result_type = array_array_container_lazy_inplace_union( + CAST_array(c1), const_CAST_array(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + if ((result == NULL) && (*result_type == ARRAY_CONTAINER_TYPE)) { + return c1; // the computation was done in-place! + } + return result; + + case CONTAINER_PAIR(RUN, RUN): + run_container_union_inplace(CAST_run(c1), const_CAST_run(c2)); + *result_type = RUN_CONTAINER_TYPE; + return convert_run_to_efficient_container(CAST_run(c1), + result_type); + + case CONTAINER_PAIR(BITSET, ARRAY): + array_bitset_container_lazy_union(const_CAST_array(c2), + const_CAST_bitset(c1), + CAST_bitset(c1)); // is lazy + *result_type = BITSET_CONTAINER_TYPE; // never array + return c1; + + case CONTAINER_PAIR(ARRAY, BITSET): + // c1 is an array, so no in-place possible + result = bitset_container_create(); + *result_type = BITSET_CONTAINER_TYPE; + array_bitset_container_lazy_union(const_CAST_array(c1), + const_CAST_bitset(c2), + CAST_bitset(result)); // is lazy + return result; + + case CONTAINER_PAIR(BITSET, RUN): + if (run_container_is_full(const_CAST_run(c2))) { + result = run_container_create(); + *result_type = RUN_CONTAINER_TYPE; + run_container_copy(const_CAST_run(c2), CAST_run(result)); + return result; + } + run_bitset_container_lazy_union( + const_CAST_run(c2), const_CAST_bitset(c1), + CAST_bitset(c1)); // allowed // lazy + *result_type = BITSET_CONTAINER_TYPE; + return c1; + + case CONTAINER_PAIR(RUN, BITSET): + if (run_container_is_full(const_CAST_run(c1))) { + *result_type = RUN_CONTAINER_TYPE; + return c1; + } + result = bitset_container_create(); + run_bitset_container_lazy_union(const_CAST_run(c1), + const_CAST_bitset(c2), + CAST_bitset(result)); // lazy + *result_type = BITSET_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, RUN): + result = run_container_create(); + array_run_container_union(const_CAST_array(c1), const_CAST_run(c2), + CAST_run(result)); + *result_type = RUN_CONTAINER_TYPE; + // next line skipped since we are lazy + // result = convert_run_to_efficient_container_and_free(result, + // result_type); + return result; + + case CONTAINER_PAIR(RUN, ARRAY): + array_run_container_inplace_union(const_CAST_array(c2), + CAST_run(c1)); + *result_type = RUN_CONTAINER_TYPE; + // next line skipped since we are lazy + // result = convert_run_to_efficient_container_and_free(result, + // result_type); + return c1; + + default: + assert(false); + roaring_unreachable; + return NULL; + } +} + +/** + * Compute symmetric difference (xor) between two containers, generate a new + * container (having type result_type), requires a typecode. This allocates new + * memory, caller is responsible for deallocation. + */ +static inline container_t *container_xor(const container_t *c1, uint8_t type1, + const container_t *c2, uint8_t type2, + uint8_t *result_type) { + c1 = container_unwrap_shared(c1, &type1); + c2 = container_unwrap_shared(c2, &type2); + container_t *result = NULL; + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): + *result_type = + bitset_bitset_container_xor(const_CAST_bitset(c1), + const_CAST_bitset(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, ARRAY): + *result_type = + array_array_container_xor(const_CAST_array(c1), + const_CAST_array(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(RUN, RUN): + *result_type = (uint8_t)run_run_container_xor( + const_CAST_run(c1), const_CAST_run(c2), &result); + return result; + + case CONTAINER_PAIR(BITSET, ARRAY): + *result_type = + array_bitset_container_xor(const_CAST_array(c2), + const_CAST_bitset(c1), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, BITSET): + *result_type = + array_bitset_container_xor(const_CAST_array(c1), + const_CAST_bitset(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(BITSET, RUN): + *result_type = + run_bitset_container_xor(const_CAST_run(c2), + const_CAST_bitset(c1), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(RUN, BITSET): + *result_type = + run_bitset_container_xor(const_CAST_run(c1), + const_CAST_bitset(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, RUN): + *result_type = (uint8_t)array_run_container_xor( + const_CAST_array(c1), const_CAST_run(c2), &result); + return result; + + case CONTAINER_PAIR(RUN, ARRAY): + *result_type = (uint8_t)array_run_container_xor( + const_CAST_array(c2), const_CAST_run(c1), &result); + return result; + + default: + assert(false); + roaring_unreachable; + return NULL; // unreached + } +} + +/* Applies an offset to the non-empty container 'c'. + * The results are stored in new containers returned via 'lo' and 'hi', for the + * low and high halves of the result (where the low half matches the original + * key and the high one corresponds to values for the following key). Either one + * of 'lo' and 'hi' are allowed to be 'NULL', but not both. Whenever one of them + * is not 'NULL', it should point to a 'NULL' container. Whenever one of them is + * 'NULL' the shifted elements for that part will not be computed. If either of + * the resulting containers turns out to be empty, the pointed container will + * remain 'NULL'. + */ +static inline void container_add_offset(const container_t *c, uint8_t type, + container_t **lo, container_t **hi, + uint16_t offset) { + assert(offset != 0); + assert(container_nonzero_cardinality(c, type)); + assert(lo != NULL || hi != NULL); + assert(lo == NULL || *lo == NULL); + assert(hi == NULL || *hi == NULL); + + switch (type) { + case BITSET_CONTAINER_TYPE: + bitset_container_offset(const_CAST_bitset(c), lo, hi, offset); + break; + case ARRAY_CONTAINER_TYPE: + array_container_offset(const_CAST_array(c), lo, hi, offset); + break; + case RUN_CONTAINER_TYPE: + run_container_offset(const_CAST_run(c), lo, hi, offset); + break; + default: + assert(false); + roaring_unreachable; + break; + } +} + +/** + * Compute xor between two containers, generate a new container (having type + * result_type), requires a typecode. This allocates new memory, caller + * is responsible for deallocation. + * + * This lazy version delays some operations such as the maintenance of the + * cardinality. It requires repair later on the generated containers. + */ +static inline container_t *container_lazy_xor(const container_t *c1, + uint8_t type1, + const container_t *c2, + uint8_t type2, + uint8_t *result_type) { + c1 = container_unwrap_shared(c1, &type1); + c2 = container_unwrap_shared(c2, &type2); + container_t *result = NULL; + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): + result = bitset_container_create(); + bitset_container_xor_nocard(const_CAST_bitset(c1), + const_CAST_bitset(c2), + CAST_bitset(result)); // is lazy + *result_type = BITSET_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, ARRAY): + *result_type = + array_array_container_lazy_xor(const_CAST_array(c1), + const_CAST_array(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(RUN, RUN): + // nothing special done yet. + *result_type = (uint8_t)run_run_container_xor( + const_CAST_run(c1), const_CAST_run(c2), &result); + return result; + + case CONTAINER_PAIR(BITSET, ARRAY): + result = bitset_container_create(); + *result_type = BITSET_CONTAINER_TYPE; + array_bitset_container_lazy_xor(const_CAST_array(c2), + const_CAST_bitset(c1), + CAST_bitset(result)); + return result; + + case CONTAINER_PAIR(ARRAY, BITSET): + result = bitset_container_create(); + *result_type = BITSET_CONTAINER_TYPE; + array_bitset_container_lazy_xor(const_CAST_array(c1), + const_CAST_bitset(c2), + CAST_bitset(result)); + return result; + + case CONTAINER_PAIR(BITSET, RUN): + result = bitset_container_create(); + run_bitset_container_lazy_xor( + const_CAST_run(c2), const_CAST_bitset(c1), CAST_bitset(result)); + *result_type = BITSET_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(RUN, BITSET): + result = bitset_container_create(); + run_bitset_container_lazy_xor( + const_CAST_run(c1), const_CAST_bitset(c2), CAST_bitset(result)); + *result_type = BITSET_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, RUN): + result = run_container_create(); + array_run_container_lazy_xor(const_CAST_array(c1), + const_CAST_run(c2), CAST_run(result)); + *result_type = RUN_CONTAINER_TYPE; + // next line skipped since we are lazy + // result = convert_run_to_efficient_container(result, result_type); + return result; + + case CONTAINER_PAIR(RUN, ARRAY): + result = run_container_create(); + array_run_container_lazy_xor(const_CAST_array(c2), + const_CAST_run(c1), CAST_run(result)); + *result_type = RUN_CONTAINER_TYPE; + // next line skipped since we are lazy + // result = convert_run_to_efficient_container(result, result_type); + return result; + + default: + assert(false); + roaring_unreachable; + return NULL; // unreached + } +} + +/** + * Compute the xor between two containers, with result in the first container. + * If the returned pointer is identical to c1, then the container has been + * modified. + * If the returned pointer is different from c1, then a new container has been + * created. The original container is freed by container_ixor. + * The type of the first container may change. Returns the modified (and + * possibly new) container. + */ +static inline container_t *container_ixor(container_t *c1, uint8_t type1, + const container_t *c2, uint8_t type2, + uint8_t *result_type) { + c1 = get_writable_copy_if_shared(c1, &type1); + c2 = container_unwrap_shared(c2, &type2); + container_t *result = NULL; + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): + *result_type = bitset_bitset_container_ixor( + CAST_bitset(c1), const_CAST_bitset(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, ARRAY): + *result_type = array_array_container_ixor( + CAST_array(c1), const_CAST_array(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(RUN, RUN): + *result_type = (uint8_t)run_run_container_ixor( + CAST_run(c1), const_CAST_run(c2), &result); + return result; + + case CONTAINER_PAIR(BITSET, ARRAY): + *result_type = bitset_array_container_ixor( + CAST_bitset(c1), const_CAST_array(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, BITSET): + *result_type = array_bitset_container_ixor( + CAST_array(c1), const_CAST_bitset(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(BITSET, RUN): + *result_type = bitset_run_container_ixor( + CAST_bitset(c1), const_CAST_run(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + + return result; + + case CONTAINER_PAIR(RUN, BITSET): + *result_type = run_bitset_container_ixor( + CAST_run(c1), const_CAST_bitset(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, RUN): + *result_type = (uint8_t)array_run_container_ixor( + CAST_array(c1), const_CAST_run(c2), &result); + return result; + + case CONTAINER_PAIR(RUN, ARRAY): + *result_type = (uint8_t)run_array_container_ixor( + CAST_run(c1), const_CAST_array(c2), &result); + return result; + + default: + assert(false); + roaring_unreachable; + return NULL; + } +} + +/** + * Compute the xor between two containers, with result in the first container. + * If the returned pointer is identical to c1, then the container has been + * modified. + * If the returned pointer is different from c1, then a new container has been + * created and the caller is responsible for freeing it. + * The type of the first container may change. Returns the modified + * (and possibly new) container + * + * This lazy version delays some operations such as the maintenance of the + * cardinality. It requires repair later on the generated containers. + */ +static inline container_t *container_lazy_ixor(container_t *c1, uint8_t type1, + const container_t *c2, + uint8_t type2, + uint8_t *result_type) { + assert(type1 != SHARED_CONTAINER_TYPE); + // c1 = get_writable_copy_if_shared(c1,&type1); + c2 = container_unwrap_shared(c2, &type2); + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): + bitset_container_xor_nocard(CAST_bitset(c1), const_CAST_bitset(c2), + CAST_bitset(c1)); // is lazy + *result_type = BITSET_CONTAINER_TYPE; + return c1; + + // TODO: other cases being lazy, esp. when we know inplace not likely + // could see the corresponding code for union + default: + // we may have a dirty bitset (without a precomputed cardinality) + // and calling container_ixor on it might be unsafe. + if (type1 == BITSET_CONTAINER_TYPE) { + bitset_container_t *bc = CAST_bitset(c1); + if (bc->cardinality == BITSET_UNKNOWN_CARDINALITY) { + bc->cardinality = bitset_container_compute_cardinality(bc); + } + } + return container_ixor(c1, type1, c2, type2, result_type); + } +} + +/** + * Compute difference (andnot) between two containers, generate a new + * container (having type result_type), requires a typecode. This allocates new + * memory, caller is responsible for deallocation. + */ +static inline container_t *container_andnot(const container_t *c1, + uint8_t type1, + const container_t *c2, + uint8_t type2, + uint8_t *result_type) { + c1 = container_unwrap_shared(c1, &type1); + c2 = container_unwrap_shared(c2, &type2); + container_t *result = NULL; + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): + *result_type = + bitset_bitset_container_andnot(const_CAST_bitset(c1), + const_CAST_bitset(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, ARRAY): + result = array_container_create(); + array_array_container_andnot( + const_CAST_array(c1), const_CAST_array(c2), CAST_array(result)); + *result_type = ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(RUN, RUN): + if (run_container_is_full(const_CAST_run(c2))) { + result = array_container_create(); + *result_type = ARRAY_CONTAINER_TYPE; + return result; + } + *result_type = (uint8_t)run_run_container_andnot( + const_CAST_run(c1), const_CAST_run(c2), &result); + return result; + + case CONTAINER_PAIR(BITSET, ARRAY): + *result_type = + bitset_array_container_andnot(const_CAST_bitset(c1), + const_CAST_array(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, BITSET): + result = array_container_create(); + array_bitset_container_andnot(const_CAST_array(c1), + const_CAST_bitset(c2), + CAST_array(result)); + *result_type = ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(BITSET, RUN): + if (run_container_is_full(const_CAST_run(c2))) { + result = array_container_create(); + *result_type = ARRAY_CONTAINER_TYPE; + return result; + } + *result_type = + bitset_run_container_andnot(const_CAST_bitset(c1), + const_CAST_run(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(RUN, BITSET): + *result_type = + run_bitset_container_andnot(const_CAST_run(c1), + const_CAST_bitset(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, RUN): + if (run_container_is_full(const_CAST_run(c2))) { + result = array_container_create(); + *result_type = ARRAY_CONTAINER_TYPE; + return result; + } + result = array_container_create(); + array_run_container_andnot(const_CAST_array(c1), const_CAST_run(c2), + CAST_array(result)); + *result_type = ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(RUN, ARRAY): + *result_type = (uint8_t)run_array_container_andnot( + const_CAST_run(c1), const_CAST_array(c2), &result); + return result; + + default: + assert(false); + roaring_unreachable; + return NULL; // unreached + } +} + +/** + * Compute the andnot between two containers, with result in the first + * container. + * If the returned pointer is identical to c1, then the container has been + * modified. + * If the returned pointer is different from c1, then a new container has been + * created. The original container is freed by container_iandnot. + * The type of the first container may change. Returns the modified (and + * possibly new) container. + */ +static inline container_t *container_iandnot(container_t *c1, uint8_t type1, + const container_t *c2, + uint8_t type2, + uint8_t *result_type) { + c1 = get_writable_copy_if_shared(c1, &type1); + c2 = container_unwrap_shared(c2, &type2); + container_t *result = NULL; + switch (PAIR_CONTAINER_TYPES(type1, type2)) { + case CONTAINER_PAIR(BITSET, BITSET): + *result_type = bitset_bitset_container_iandnot( + CAST_bitset(c1), const_CAST_bitset(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, ARRAY): + array_array_container_iandnot(CAST_array(c1), const_CAST_array(c2)); + *result_type = ARRAY_CONTAINER_TYPE; + return c1; + + case CONTAINER_PAIR(RUN, RUN): + *result_type = (uint8_t)run_run_container_iandnot( + CAST_run(c1), const_CAST_run(c2), &result); + return result; + + case CONTAINER_PAIR(BITSET, ARRAY): + *result_type = bitset_array_container_iandnot( + CAST_bitset(c1), const_CAST_array(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, BITSET): + *result_type = ARRAY_CONTAINER_TYPE; + array_bitset_container_iandnot(CAST_array(c1), + const_CAST_bitset(c2)); + return c1; + + case CONTAINER_PAIR(BITSET, RUN): + *result_type = bitset_run_container_iandnot( + CAST_bitset(c1), const_CAST_run(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(RUN, BITSET): + *result_type = run_bitset_container_iandnot( + CAST_run(c1), const_CAST_bitset(c2), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + + case CONTAINER_PAIR(ARRAY, RUN): + *result_type = ARRAY_CONTAINER_TYPE; + array_run_container_iandnot(CAST_array(c1), const_CAST_run(c2)); + return c1; + + case CONTAINER_PAIR(RUN, ARRAY): + *result_type = (uint8_t)run_array_container_iandnot( + CAST_run(c1), const_CAST_array(c2), &result); + return result; + + default: + assert(false); + roaring_unreachable; + return NULL; + } +} + +/** + * Visit all values x of the container once, passing (base+x,ptr) + * to iterator. You need to specify a container and its type. + * Returns true if the iteration should continue. + */ +static inline bool container_iterate(const container_t *c, uint8_t type, + uint32_t base, roaring_iterator iterator, + void *ptr) { + c = container_unwrap_shared(c, &type); + switch (type) { + case BITSET_CONTAINER_TYPE: + return bitset_container_iterate(const_CAST_bitset(c), base, + iterator, ptr); + case ARRAY_CONTAINER_TYPE: + return array_container_iterate(const_CAST_array(c), base, iterator, + ptr); + case RUN_CONTAINER_TYPE: + return run_container_iterate(const_CAST_run(c), base, iterator, + ptr); + default: + assert(false); + roaring_unreachable; + } + assert(false); + roaring_unreachable; + return false; +} + +static inline bool container_iterate64(const container_t *c, uint8_t type, + uint32_t base, + roaring_iterator64 iterator, + uint64_t high_bits, void *ptr) { + c = container_unwrap_shared(c, &type); + switch (type) { + case BITSET_CONTAINER_TYPE: + return bitset_container_iterate64(const_CAST_bitset(c), base, + iterator, high_bits, ptr); + case ARRAY_CONTAINER_TYPE: + return array_container_iterate64(const_CAST_array(c), base, + iterator, high_bits, ptr); + case RUN_CONTAINER_TYPE: + return run_container_iterate64(const_CAST_run(c), base, iterator, + high_bits, ptr); + default: + assert(false); + roaring_unreachable; + } + assert(false); + roaring_unreachable; + return false; +} + +static inline container_t *container_not(const container_t *c, uint8_t type, + uint8_t *result_type) { + c = container_unwrap_shared(c, &type); + container_t *result = NULL; + switch (type) { + case BITSET_CONTAINER_TYPE: + *result_type = + bitset_container_negation(const_CAST_bitset(c), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + case ARRAY_CONTAINER_TYPE: + result = bitset_container_create(); + *result_type = BITSET_CONTAINER_TYPE; + array_container_negation(const_CAST_array(c), CAST_bitset(result)); + return result; + case RUN_CONTAINER_TYPE: + *result_type = + (uint8_t)run_container_negation(const_CAST_run(c), &result); + return result; + + default: + assert(false); + roaring_unreachable; + } + assert(false); + roaring_unreachable; + return NULL; +} + +static inline container_t *container_not_range(const container_t *c, + uint8_t type, + uint32_t range_start, + uint32_t range_end, + uint8_t *result_type) { + c = container_unwrap_shared(c, &type); + container_t *result = NULL; + switch (type) { + case BITSET_CONTAINER_TYPE: + *result_type = + bitset_container_negation_range(const_CAST_bitset(c), + range_start, range_end, &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + case ARRAY_CONTAINER_TYPE: + *result_type = + array_container_negation_range(const_CAST_array(c), range_start, + range_end, &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + case RUN_CONTAINER_TYPE: + *result_type = (uint8_t)run_container_negation_range( + const_CAST_run(c), range_start, range_end, &result); + return result; + + default: + assert(false); + roaring_unreachable; + } + assert(false); + roaring_unreachable; + return NULL; +} + +static inline container_t *container_inot(container_t *c, uint8_t type, + uint8_t *result_type) { + c = get_writable_copy_if_shared(c, &type); + container_t *result = NULL; + switch (type) { + case BITSET_CONTAINER_TYPE: + *result_type = + bitset_container_negation_inplace(CAST_bitset(c), &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + case ARRAY_CONTAINER_TYPE: + // will never be inplace + result = bitset_container_create(); + *result_type = BITSET_CONTAINER_TYPE; + array_container_negation(CAST_array(c), CAST_bitset(result)); + array_container_free(CAST_array(c)); + return result; + case RUN_CONTAINER_TYPE: + *result_type = + (uint8_t)run_container_negation_inplace(CAST_run(c), &result); + return result; + + default: + assert(false); + roaring_unreachable; + } + assert(false); + roaring_unreachable; + return NULL; +} + +static inline container_t *container_inot_range(container_t *c, uint8_t type, + uint32_t range_start, + uint32_t range_end, + uint8_t *result_type) { + c = get_writable_copy_if_shared(c, &type); + container_t *result = NULL; + switch (type) { + case BITSET_CONTAINER_TYPE: + *result_type = bitset_container_negation_range_inplace( + CAST_bitset(c), range_start, range_end, &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + case ARRAY_CONTAINER_TYPE: + *result_type = array_container_negation_range_inplace( + CAST_array(c), range_start, range_end, &result) + ? BITSET_CONTAINER_TYPE + : ARRAY_CONTAINER_TYPE; + return result; + case RUN_CONTAINER_TYPE: + *result_type = (uint8_t)run_container_negation_range_inplace( + CAST_run(c), range_start, range_end, &result); + return result; + + default: + assert(false); + roaring_unreachable; + } + assert(false); + roaring_unreachable; + return NULL; +} + +/** + * If the element of given rank is in this container, supposing that + * the first + * element has rank start_rank, then the function returns true and + * sets element + * accordingly. + * Otherwise, it returns false and update start_rank. + */ +static inline bool container_select(const container_t *c, uint8_t type, + uint32_t *start_rank, uint32_t rank, + uint32_t *element) { + c = container_unwrap_shared(c, &type); + switch (type) { + case BITSET_CONTAINER_TYPE: + return bitset_container_select(const_CAST_bitset(c), start_rank, + rank, element); + case ARRAY_CONTAINER_TYPE: + return array_container_select(const_CAST_array(c), start_rank, rank, + element); + case RUN_CONTAINER_TYPE: + return run_container_select(const_CAST_run(c), start_rank, rank, + element); + default: + assert(false); + roaring_unreachable; + } + assert(false); + roaring_unreachable; + return false; +} + +static inline uint16_t container_maximum(const container_t *c, uint8_t type) { + c = container_unwrap_shared(c, &type); + switch (type) { + case BITSET_CONTAINER_TYPE: + return bitset_container_maximum(const_CAST_bitset(c)); + case ARRAY_CONTAINER_TYPE: + return array_container_maximum(const_CAST_array(c)); + case RUN_CONTAINER_TYPE: + return run_container_maximum(const_CAST_run(c)); + default: + assert(false); + roaring_unreachable; + } + assert(false); + roaring_unreachable; + return false; +} + +static inline uint16_t container_minimum(const container_t *c, uint8_t type) { + c = container_unwrap_shared(c, &type); + switch (type) { + case BITSET_CONTAINER_TYPE: + return bitset_container_minimum(const_CAST_bitset(c)); + case ARRAY_CONTAINER_TYPE: + return array_container_minimum(const_CAST_array(c)); + case RUN_CONTAINER_TYPE: + return run_container_minimum(const_CAST_run(c)); + default: + assert(false); + roaring_unreachable; + } + assert(false); + roaring_unreachable; + return false; +} + +// number of values smaller or equal to x +static inline int container_rank(const container_t *c, uint8_t type, + uint16_t x) { + c = container_unwrap_shared(c, &type); + switch (type) { + case BITSET_CONTAINER_TYPE: + return bitset_container_rank(const_CAST_bitset(c), x); + case ARRAY_CONTAINER_TYPE: + return array_container_rank(const_CAST_array(c), x); + case RUN_CONTAINER_TYPE: + return run_container_rank(const_CAST_run(c), x); + default: + assert(false); + roaring_unreachable; + } + assert(false); + roaring_unreachable; + return false; +} + +// bulk version of container_rank(); return number of consumed elements +static inline uint32_t container_rank_many(const container_t *c, uint8_t type, + uint64_t start_rank, + const uint32_t *begin, + const uint32_t *end, uint64_t *ans) { + c = container_unwrap_shared(c, &type); + switch (type) { + case BITSET_CONTAINER_TYPE: + return bitset_container_rank_many(const_CAST_bitset(c), start_rank, + begin, end, ans); + case ARRAY_CONTAINER_TYPE: + return array_container_rank_many(const_CAST_array(c), start_rank, + begin, end, ans); + case RUN_CONTAINER_TYPE: + return run_container_rank_many(const_CAST_run(c), start_rank, begin, + end, ans); + default: + assert(false); + roaring_unreachable; + } + assert(false); + roaring_unreachable; + return 0; +} + +// return the index of x, if not exsist return -1 +static inline int container_get_index(const container_t *c, uint8_t type, + uint16_t x) { + c = container_unwrap_shared(c, &type); + switch (type) { + case BITSET_CONTAINER_TYPE: + return bitset_container_get_index(const_CAST_bitset(c), x); + case ARRAY_CONTAINER_TYPE: + return array_container_get_index(const_CAST_array(c), x); + case RUN_CONTAINER_TYPE: + return run_container_get_index(const_CAST_run(c), x); + default: + assert(false); + roaring_unreachable; + } + assert(false); + roaring_unreachable; + return false; +} + +/** + * Add all values in range [min, max] to a given container. + * + * If the returned pointer is different from $container, then a new container + * has been created and the caller is responsible for freeing it. + * The type of the first container may change. Returns the modified + * (and possibly new) container. + */ +static inline container_t *container_add_range(container_t *c, uint8_t type, + uint32_t min, uint32_t max, + uint8_t *result_type) { + // NB: when selecting new container type, we perform only inexpensive checks + switch (type) { + case BITSET_CONTAINER_TYPE: { + bitset_container_t *bitset = CAST_bitset(c); + + int32_t union_cardinality = 0; + union_cardinality += bitset->cardinality; + union_cardinality += max - min + 1; + union_cardinality -= + bitset_lenrange_cardinality(bitset->words, min, max - min); + + if (union_cardinality == INT32_C(0x10000)) { + *result_type = RUN_CONTAINER_TYPE; + return run_container_create_range(0, INT32_C(0x10000)); + } else { + *result_type = BITSET_CONTAINER_TYPE; + bitset_set_lenrange(bitset->words, min, max - min); + bitset->cardinality = union_cardinality; + return bitset; + } + } + case ARRAY_CONTAINER_TYPE: { + array_container_t *array = CAST_array(c); + + int32_t nvals_greater = + count_greater(array->array, array->cardinality, (uint16_t)max); + int32_t nvals_less = + count_less(array->array, array->cardinality - nvals_greater, + (uint16_t)min); + int32_t union_cardinality = + nvals_less + (max - min + 1) + nvals_greater; + + if (union_cardinality == INT32_C(0x10000)) { + *result_type = RUN_CONTAINER_TYPE; + return run_container_create_range(0, INT32_C(0x10000)); + } else if (union_cardinality <= DEFAULT_MAX_SIZE) { + *result_type = ARRAY_CONTAINER_TYPE; + array_container_add_range_nvals(array, min, max, nvals_less, + nvals_greater); + return array; + } else { + *result_type = BITSET_CONTAINER_TYPE; + bitset_container_t *bitset = bitset_container_from_array(array); + bitset_set_lenrange(bitset->words, min, max - min); + bitset->cardinality = union_cardinality; + return bitset; + } + } + case RUN_CONTAINER_TYPE: { + run_container_t *run = CAST_run(c); + + int32_t nruns_greater = + rle16_count_greater(run->runs, run->n_runs, (uint16_t)max); + int32_t nruns_less = rle16_count_less( + run->runs, run->n_runs - nruns_greater, (uint16_t)min); + + int32_t run_size_bytes = + (nruns_less + 1 + nruns_greater) * sizeof(rle16_t); + int32_t bitset_size_bytes = + BITSET_CONTAINER_SIZE_IN_WORDS * sizeof(uint64_t); + + if (run_size_bytes <= bitset_size_bytes) { + run_container_add_range_nruns(run, min, max, nruns_less, + nruns_greater); + *result_type = RUN_CONTAINER_TYPE; + return run; + } else { + return container_from_run_range(run, min, max, result_type); + } + } + default: + roaring_unreachable; + } +} + +/* + * Removes all elements in range [min, max]. + * Returns one of: + * - NULL if no elements left + * - pointer to the original container + * - pointer to a newly-allocated container (if it is more efficient) + * + * If the returned pointer is different from $container, then a new container + * has been created and the caller is responsible for freeing the original + * container. + */ +static inline container_t *container_remove_range(container_t *c, uint8_t type, + uint32_t min, uint32_t max, + uint8_t *result_type) { + switch (type) { + case BITSET_CONTAINER_TYPE: { + bitset_container_t *bitset = CAST_bitset(c); + + int32_t result_cardinality = + bitset->cardinality - + bitset_lenrange_cardinality(bitset->words, min, max - min); + + if (result_cardinality == 0) { + return NULL; + } else if (result_cardinality <= DEFAULT_MAX_SIZE) { + *result_type = ARRAY_CONTAINER_TYPE; + bitset_reset_range(bitset->words, min, max + 1); + bitset->cardinality = result_cardinality; + return array_container_from_bitset(bitset); + } else { + *result_type = BITSET_CONTAINER_TYPE; + bitset_reset_range(bitset->words, min, max + 1); + bitset->cardinality = result_cardinality; + return bitset; + } + } + case ARRAY_CONTAINER_TYPE: { + array_container_t *array = CAST_array(c); + + int32_t nvals_greater = + count_greater(array->array, array->cardinality, (uint16_t)max); + int32_t nvals_less = + count_less(array->array, array->cardinality - nvals_greater, + (uint16_t)min); + int32_t result_cardinality = nvals_less + nvals_greater; + + if (result_cardinality == 0) { + return NULL; + } else { + *result_type = ARRAY_CONTAINER_TYPE; + array_container_remove_range( + array, nvals_less, array->cardinality - result_cardinality); + return array; + } + } + case RUN_CONTAINER_TYPE: { + run_container_t *run = CAST_run(c); + + if (run->n_runs == 0) { + return NULL; + } + if (min <= run_container_minimum(run) && + max >= run_container_maximum(run)) { + return NULL; + } + + run_container_remove_range(run, min, max); + return convert_run_to_efficient_container(run, result_type); + } + default: + roaring_unreachable; + } +} + +#ifdef __cplusplus +using api::roaring_container_iterator_t; +#endif + +/** + * Initializes the iterator at the first entry in the container. + */ +roaring_container_iterator_t container_init_iterator(const container_t *c, + uint8_t typecode, + uint16_t *value); + +/** + * Initializes the iterator at the last entry in the container. + */ +roaring_container_iterator_t container_init_iterator_last(const container_t *c, + uint8_t typecode, + uint16_t *value); + +/** + * Moves the iterator to the next entry. Returns true and sets `value` if a + * value is present. + */ +bool container_iterator_next(const container_t *c, uint8_t typecode, + roaring_container_iterator_t *it, uint16_t *value); + +/** + * Moves the iterator to the previous entry. Returns true and sets `value` if a + * value is present. + */ +bool container_iterator_prev(const container_t *c, uint8_t typecode, + roaring_container_iterator_t *it, uint16_t *value); + +/** + * Moves the iterator to the smallest entry that is greater than or equal to + * `val`. Returns true and sets `value_out` if a value is present. `value_out` + * should be initialized to a value. + */ +bool container_iterator_lower_bound(const container_t *c, uint8_t typecode, + roaring_container_iterator_t *it, + uint16_t *value_out, uint16_t val); + +/** + * Reads up to `count` entries from the container, and writes them into `buf` + * as `high16 | entry`. Returns true and sets `value_out` if a value is present + * after reading the entries. Sets `consumed` to the number of values read. + * `count` should be greater than zero. + */ +bool container_iterator_read_into_uint32(const container_t *c, uint8_t typecode, + roaring_container_iterator_t *it, + uint32_t high16, uint32_t *buf, + uint32_t count, uint32_t *consumed, + uint16_t *value_out); + +/** + * Reads up to `count` entries from the container, and writes them into `buf` + * as `high48 | entry`. Returns true and sets `value_out` if a value is present + * after reading the entries. Sets `consumed` to the number of values read. + * `count` should be greater than zero. + */ +bool container_iterator_read_into_uint64(const container_t *c, uint8_t typecode, + roaring_container_iterator_t *it, + uint64_t high48, uint64_t *buf, + uint32_t count, uint32_t *consumed, + uint16_t *value_out); + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif + +#endif diff --git a/contrib/libs/croaring/include/roaring/containers/convert.h b/contrib/libs/croaring/include/roaring/containers/convert.h new file mode 100644 index 000000000000..923c0c218f09 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/containers/convert.h @@ -0,0 +1,73 @@ +/* + * convert.h + * + */ + +#ifndef INCLUDE_CONTAINERS_CONVERT_H_ +#define INCLUDE_CONTAINERS_CONVERT_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +/* Convert an array into a bitset. The input container is not freed or modified. + */ +bitset_container_t *bitset_container_from_array(const array_container_t *arr); + +/* Convert a run into a bitset. The input container is not freed or modified. */ +bitset_container_t *bitset_container_from_run(const run_container_t *arr); + +/* Convert a run into an array. The input container is not freed or modified. */ +array_container_t *array_container_from_run(const run_container_t *arr); + +/* Convert a bitset into an array. The input container is not freed or modified. + */ +array_container_t *array_container_from_bitset(const bitset_container_t *bits); + +/* Convert an array into a run. The input container is not freed or modified. + */ +run_container_t *run_container_from_array(const array_container_t *c); + +/* convert a run into either an array or a bitset + * might free the container. This does not free the input run container. */ +container_t *convert_to_bitset_or_array_container(run_container_t *rc, + int32_t card, + uint8_t *resulttype); + +/* convert containers to and from runcontainers, as is most space efficient. + * The container might be freed. */ +container_t *convert_run_optimize(container_t *c, uint8_t typecode_original, + uint8_t *typecode_after); + +/* converts a run container to either an array or a bitset, IF it saves space. + */ +/* If a conversion occurs, the caller is responsible to free the original + * container and + * he becomes reponsible to free the new one. */ +container_t *convert_run_to_efficient_container(run_container_t *c, + uint8_t *typecode_after); + +// like convert_run_to_efficient_container but frees the old result if needed +container_t *convert_run_to_efficient_container_and_free( + run_container_t *c, uint8_t *typecode_after); + +/** + * Create new container which is a union of run container and + * range [min, max]. Caller is responsible for freeing run container. + */ +container_t *container_from_run_range(const run_container_t *run, uint32_t min, + uint32_t max, uint8_t *typecode_after); + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif + +#endif /* INCLUDE_CONTAINERS_CONVERT_H_ */ diff --git a/contrib/libs/croaring/include/roaring/containers/mixed_andnot.h b/contrib/libs/croaring/include/roaring/containers/mixed_andnot.h new file mode 100644 index 000000000000..f7ba19de9ab6 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/containers/mixed_andnot.h @@ -0,0 +1,181 @@ +/* + * mixed_andnot.h + */ +#ifndef INCLUDE_CONTAINERS_MIXED_ANDNOT_H_ +#define INCLUDE_CONTAINERS_MIXED_ANDNOT_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst, a valid array container that could be the same as dst.*/ +void array_bitset_container_andnot(const array_container_t *src_1, + const bitset_container_t *src_2, + array_container_t *dst); + +/* Compute the andnot of src_1 and src_2 and write the result to + * src_1 */ + +void array_bitset_container_iandnot(array_container_t *src_1, + const bitset_container_t *src_2); + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst, which does not initially have a valid container. + * Return true for a bitset result; false for array + */ + +bool bitset_array_container_andnot(const bitset_container_t *src_1, + const array_container_t *src_2, + container_t **dst); + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst (which has no container initially). It will modify src_1 + * to be dst if the result is a bitset. Otherwise, it will + * free src_1 and dst will be a new array container. In both + * cases, the caller is responsible for deallocating dst. + * Returns true iff dst is a bitset */ + +bool bitset_array_container_iandnot(bitset_container_t *src_1, + const array_container_t *src_2, + container_t **dst); + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst. Result may be either a bitset or an array container + * (returns "result is bitset"). dst does not initially have + * any container, but becomes either a bitset container (return + * result true) or an array container. + */ + +bool run_bitset_container_andnot(const run_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst); + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst. Result may be either a bitset or an array container + * (returns "result is bitset"). dst does not initially have + * any container, but becomes either a bitset container (return + * result true) or an array container. + */ + +bool run_bitset_container_iandnot(run_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst); + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst. Result may be either a bitset or an array container + * (returns "result is bitset"). dst does not initially have + * any container, but becomes either a bitset container (return + * result true) or an array container. + */ + +bool bitset_run_container_andnot(const bitset_container_t *src_1, + const run_container_t *src_2, + container_t **dst); + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst (which has no container initially). It will modify src_1 + * to be dst if the result is a bitset. Otherwise, it will + * free src_1 and dst will be a new array container. In both + * cases, the caller is responsible for deallocating dst. + * Returns true iff dst is a bitset */ + +bool bitset_run_container_iandnot(bitset_container_t *src_1, + const run_container_t *src_2, + container_t **dst); + +/* dst does not indicate a valid container initially. Eventually it + * can become any type of container. + */ + +int run_array_container_andnot(const run_container_t *src_1, + const array_container_t *src_2, + container_t **dst); + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst (which has no container initially). It will modify src_1 + * to be dst if the result is a bitset. Otherwise, it will + * free src_1 and dst will be a new array container. In both + * cases, the caller is responsible for deallocating dst. + * Returns true iff dst is a bitset */ + +int run_array_container_iandnot(run_container_t *src_1, + const array_container_t *src_2, + container_t **dst); + +/* dst must be a valid array container, allowed to be src_1 */ + +void array_run_container_andnot(const array_container_t *src_1, + const run_container_t *src_2, + array_container_t *dst); + +/* dst does not indicate a valid container initially. Eventually it + * can become any kind of container. + */ + +void array_run_container_iandnot(array_container_t *src_1, + const run_container_t *src_2); + +/* dst does not indicate a valid container initially. Eventually it + * can become any kind of container. + */ + +int run_run_container_andnot(const run_container_t *src_1, + const run_container_t *src_2, container_t **dst); + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst (which has no container initially). It will modify src_1 + * to be dst if the result is a bitset. Otherwise, it will + * free src_1 and dst will be a new array container. In both + * cases, the caller is responsible for deallocating dst. + * Returns true iff dst is a bitset */ + +int run_run_container_iandnot(run_container_t *src_1, + const run_container_t *src_2, container_t **dst); + +/* + * dst is a valid array container and may be the same as src_1 + */ + +void array_array_container_andnot(const array_container_t *src_1, + const array_container_t *src_2, + array_container_t *dst); + +/* inplace array-array andnot will always be able to reuse the space of + * src_1 */ +void array_array_container_iandnot(array_container_t *src_1, + const array_container_t *src_2); + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst (which has no container initially). Return value is + * "dst is a bitset" + */ + +bool bitset_bitset_container_andnot(const bitset_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst); + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst (which has no container initially). It will modify src_1 + * to be dst if the result is a bitset. Otherwise, it will + * free src_1 and dst will be a new array container. In both + * cases, the caller is responsible for deallocating dst. + * Returns true iff dst is a bitset */ + +bool bitset_bitset_container_iandnot(bitset_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst); + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif + +#endif diff --git a/contrib/libs/croaring/include/roaring/containers/mixed_equal.h b/contrib/libs/croaring/include/roaring/containers/mixed_equal.h new file mode 100644 index 000000000000..f1b236e0253d --- /dev/null +++ b/contrib/libs/croaring/include/roaring/containers/mixed_equal.h @@ -0,0 +1,42 @@ +/* + * mixed_equal.h + * + */ + +#ifndef CONTAINERS_MIXED_EQUAL_H_ +#define CONTAINERS_MIXED_EQUAL_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +/** + * Return true if the two containers have the same content. + */ +bool array_container_equal_bitset(const array_container_t* container1, + const bitset_container_t* container2); + +/** + * Return true if the two containers have the same content. + */ +bool run_container_equals_array(const run_container_t* container1, + const array_container_t* container2); +/** + * Return true if the two containers have the same content. + */ +bool run_container_equals_bitset(const run_container_t* container1, + const bitset_container_t* container2); + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif + +#endif /* CONTAINERS_MIXED_EQUAL_H_ */ diff --git a/contrib/libs/croaring/include/roaring/containers/mixed_intersection.h b/contrib/libs/croaring/include/roaring/containers/mixed_intersection.h new file mode 100644 index 000000000000..53c85298d9a0 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/containers/mixed_intersection.h @@ -0,0 +1,101 @@ +/* + * mixed_intersection.h + * + */ + +#ifndef INCLUDE_CONTAINERS_MIXED_INTERSECTION_H_ +#define INCLUDE_CONTAINERS_MIXED_INTERSECTION_H_ + +/* These functions appear to exclude cases where the + * inputs have the same type and the output is guaranteed + * to have the same type as the inputs. Eg, array intersection + */ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +/* Compute the intersection of src_1 and src_2 and write the result to + * dst. It is allowed for dst to be equal to src_1. We assume that dst is a + * valid container. */ +void array_bitset_container_intersection(const array_container_t *src_1, + const bitset_container_t *src_2, + array_container_t *dst); + +/* Compute the size of the intersection of src_1 and src_2. */ +int array_bitset_container_intersection_cardinality( + const array_container_t *src_1, const bitset_container_t *src_2); + +/* Checking whether src_1 and src_2 intersect. */ +bool array_bitset_container_intersect(const array_container_t *src_1, + const bitset_container_t *src_2); + +/* + * Compute the intersection between src_1 and src_2 and write the result + * to *dst. If the return function is true, the result is a bitset_container_t + * otherwise is a array_container_t. We assume that dst is not pre-allocated. In + * case of failure, *dst will be NULL. + */ +bool bitset_bitset_container_intersection(const bitset_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst); + +/* Compute the intersection between src_1 and src_2 and write the result to + * dst. It is allowed for dst to be equal to src_1. We assume that dst is a + * valid container. */ +void array_run_container_intersection(const array_container_t *src_1, + const run_container_t *src_2, + array_container_t *dst); + +/* Compute the intersection between src_1 and src_2 and write the result to + * *dst. If the result is true then the result is a bitset_container_t + * otherwise is a array_container_t. + * If *dst == src_2, then an in-place intersection is attempted + **/ +bool run_bitset_container_intersection(const run_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst); + +/* Compute the size of the intersection between src_1 and src_2 . */ +int array_run_container_intersection_cardinality(const array_container_t *src_1, + const run_container_t *src_2); + +/* Compute the size of the intersection between src_1 and src_2 + **/ +int run_bitset_container_intersection_cardinality( + const run_container_t *src_1, const bitset_container_t *src_2); + +/* Check that src_1 and src_2 intersect. */ +bool array_run_container_intersect(const array_container_t *src_1, + const run_container_t *src_2); + +/* Check that src_1 and src_2 intersect. + **/ +bool run_bitset_container_intersect(const run_container_t *src_1, + const bitset_container_t *src_2); + +/* + * Same as bitset_bitset_container_intersection except that if the output is to + * be a + * bitset_container_t, then src_1 is modified and no allocation is made. + * If the output is to be an array_container_t, then caller is responsible + * to free the container. + * In all cases, the result is in *dst. + */ +bool bitset_bitset_container_intersection_inplace( + bitset_container_t *src_1, const bitset_container_t *src_2, + container_t **dst); + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif + +#endif /* INCLUDE_CONTAINERS_MIXED_INTERSECTION_H_ */ diff --git a/contrib/libs/croaring/include/roaring/containers/mixed_negation.h b/contrib/libs/croaring/include/roaring/containers/mixed_negation.h new file mode 100644 index 000000000000..3788ca413b5d --- /dev/null +++ b/contrib/libs/croaring/include/roaring/containers/mixed_negation.h @@ -0,0 +1,140 @@ +/* + * mixed_negation.h + * + */ + +#ifndef INCLUDE_CONTAINERS_MIXED_NEGATION_H_ +#define INCLUDE_CONTAINERS_MIXED_NEGATION_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +/* Negation across the entire range of the container. + * Compute the negation of src and write the result + * to *dst. The complement of a + * sufficiently sparse set will always be dense and a hence a bitmap + * We assume that dst is pre-allocated and a valid bitset container + * There can be no in-place version. + */ +void array_container_negation(const array_container_t *src, + bitset_container_t *dst); + +/* Negation across the entire range of the container + * Compute the negation of src and write the result + * to *dst. A true return value indicates a bitset result, + * otherwise the result is an array container. + * We assume that dst is not pre-allocated. In + * case of failure, *dst will be NULL. + */ +bool bitset_container_negation(const bitset_container_t *src, + container_t **dst); + +/* inplace version */ +/* + * Same as bitset_container_negation except that if the output is to + * be a + * bitset_container_t, then src is modified and no allocation is made. + * If the output is to be an array_container_t, then caller is responsible + * to free the container. + * In all cases, the result is in *dst. + */ +bool bitset_container_negation_inplace(bitset_container_t *src, + container_t **dst); + +/* Negation across the entire range of container + * Compute the negation of src and write the result + * to *dst. + * Return values are the *_TYPECODES as defined * in containers.h + * We assume that dst is not pre-allocated. In + * case of failure, *dst will be NULL. + */ +int run_container_negation(const run_container_t *src, container_t **dst); + +/* + * Same as run_container_negation except that if the output is to + * be a + * run_container_t, and has the capacity to hold the result, + * then src is modified and no allocation is made. + * In all cases, the result is in *dst. + */ +int run_container_negation_inplace(run_container_t *src, container_t **dst); + +/* Negation across a range of the container. + * Compute the negation of src and write the result + * to *dst. Returns true if the result is a bitset container + * and false for an array container. *dst is not preallocated. + */ +bool array_container_negation_range(const array_container_t *src, + const int range_start, const int range_end, + container_t **dst); + +/* Even when the result would fit, it is unclear how to make an + * inplace version without inefficient copying. Thus this routine + * may be a wrapper for the non-in-place version + */ +bool array_container_negation_range_inplace(array_container_t *src, + const int range_start, + const int range_end, + container_t **dst); + +/* Negation across a range of the container + * Compute the negation of src and write the result + * to *dst. A true return value indicates a bitset result, + * otherwise the result is an array container. + * We assume that dst is not pre-allocated. In + * case of failure, *dst will be NULL. + */ +bool bitset_container_negation_range(const bitset_container_t *src, + const int range_start, const int range_end, + container_t **dst); + +/* inplace version */ +/* + * Same as bitset_container_negation except that if the output is to + * be a + * bitset_container_t, then src is modified and no allocation is made. + * If the output is to be an array_container_t, then caller is responsible + * to free the container. + * In all cases, the result is in *dst. + */ +bool bitset_container_negation_range_inplace(bitset_container_t *src, + const int range_start, + const int range_end, + container_t **dst); + +/* Negation across a range of container + * Compute the negation of src and write the result + * to *dst. Return values are the *_TYPECODES as defined * in containers.h + * We assume that dst is not pre-allocated. In + * case of failure, *dst will be NULL. + */ +int run_container_negation_range(const run_container_t *src, + const int range_start, const int range_end, + container_t **dst); + +/* + * Same as run_container_negation except that if the output is to + * be a + * run_container_t, and has the capacity to hold the result, + * then src is modified and no allocation is made. + * In all cases, the result is in *dst. + */ +int run_container_negation_range_inplace(run_container_t *src, + const int range_start, + const int range_end, + container_t **dst); + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif + +#endif /* INCLUDE_CONTAINERS_MIXED_NEGATION_H_ */ diff --git a/contrib/libs/croaring/include/roaring/containers/mixed_subset.h b/contrib/libs/croaring/include/roaring/containers/mixed_subset.h new file mode 100644 index 000000000000..e7ce1f866cd3 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/containers/mixed_subset.h @@ -0,0 +1,55 @@ +/* + * mixed_subset.h + * + */ + +#ifndef CONTAINERS_MIXED_SUBSET_H_ +#define CONTAINERS_MIXED_SUBSET_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +/** + * Return true if container1 is a subset of container2. + */ +bool array_container_is_subset_bitset(const array_container_t* container1, + const bitset_container_t* container2); + +/** + * Return true if container1 is a subset of container2. + */ +bool run_container_is_subset_array(const run_container_t* container1, + const array_container_t* container2); + +/** + * Return true if container1 is a subset of container2. + */ +bool array_container_is_subset_run(const array_container_t* container1, + const run_container_t* container2); + +/** + * Return true if container1 is a subset of container2. + */ +bool run_container_is_subset_bitset(const run_container_t* container1, + const bitset_container_t* container2); + +/** + * Return true if container1 is a subset of container2. + */ +bool bitset_container_is_subset_run(const bitset_container_t* container1, + const run_container_t* container2); + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif + +#endif /* CONTAINERS_MIXED_SUBSET_H_ */ diff --git a/contrib/libs/croaring/include/roaring/containers/mixed_union.h b/contrib/libs/croaring/include/roaring/containers/mixed_union.h new file mode 100644 index 000000000000..0ff439217e52 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/containers/mixed_union.h @@ -0,0 +1,117 @@ +/* + * mixed_intersection.h + * + */ + +#ifndef INCLUDE_CONTAINERS_MIXED_UNION_H_ +#define INCLUDE_CONTAINERS_MIXED_UNION_H_ + +/* These functions appear to exclude cases where the + * inputs have the same type and the output is guaranteed + * to have the same type as the inputs. Eg, bitset unions + */ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +/* Compute the union of src_1 and src_2 and write the result to + * dst. It is allowed for src_2 to be dst. */ +void array_bitset_container_union(const array_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +/* Compute the union of src_1 and src_2 and write the result to + * dst. It is allowed for src_2 to be dst. This version does not + * update the cardinality of dst (it is set to BITSET_UNKNOWN_CARDINALITY). */ +void array_bitset_container_lazy_union(const array_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +/* + * Compute the union between src_1 and src_2 and write the result + * to *dst. If the return function is true, the result is a bitset_container_t + * otherwise is a array_container_t. We assume that dst is not pre-allocated. In + * case of failure, *dst will be NULL. + */ +bool array_array_container_union(const array_container_t *src_1, + const array_container_t *src_2, + container_t **dst); + +/* + * Compute the union between src_1 and src_2 and write the result + * to *dst if it cannot be written to src_1. If the return function is true, + * the result is a bitset_container_t + * otherwise is a array_container_t. When the result is an array_container_t, it + * it either written to src_1 (if *dst is null) or to *dst. + * If the result is a bitset_container_t and *dst is null, then there was a + * failure. + */ +bool array_array_container_inplace_union(array_container_t *src_1, + const array_container_t *src_2, + container_t **dst); + +/* + * Same as array_array_container_union except that it will more eagerly produce + * a bitset. + */ +bool array_array_container_lazy_union(const array_container_t *src_1, + const array_container_t *src_2, + container_t **dst); + +/* + * Same as array_array_container_inplace_union except that it will more eagerly + * produce a bitset. + */ +bool array_array_container_lazy_inplace_union(array_container_t *src_1, + const array_container_t *src_2, + container_t **dst); + +/* Compute the union of src_1 and src_2 and write the result to + * dst. We assume that dst is a + * valid container. The result might need to be further converted to array or + * bitset container, + * the caller is responsible for the eventual conversion. */ +void array_run_container_union(const array_container_t *src_1, + const run_container_t *src_2, + run_container_t *dst); + +/* Compute the union of src_1 and src_2 and write the result to + * src2. The result might need to be further converted to array or + * bitset container, + * the caller is responsible for the eventual conversion. */ +void array_run_container_inplace_union(const array_container_t *src_1, + run_container_t *src_2); + +/* Compute the union of src_1 and src_2 and write the result to + * dst. It is allowed for dst to be src_2. + * If run_container_is_full(src_1) is true, you must not be calling this + *function. + **/ +void run_bitset_container_union(const run_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +/* Compute the union of src_1 and src_2 and write the result to + * dst. It is allowed for dst to be src_2. This version does not + * update the cardinality of dst (it is set to BITSET_UNKNOWN_CARDINALITY). + * If run_container_is_full(src_1) is true, you must not be calling this + * function. + * */ +void run_bitset_container_lazy_union(const run_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif + +#endif /* INCLUDE_CONTAINERS_MIXED_UNION_H_ */ diff --git a/contrib/libs/croaring/include/roaring/containers/mixed_xor.h b/contrib/libs/croaring/include/roaring/containers/mixed_xor.h new file mode 100644 index 000000000000..8000898bcf3c --- /dev/null +++ b/contrib/libs/croaring/include/roaring/containers/mixed_xor.h @@ -0,0 +1,177 @@ +/* + * mixed_xor.h + * + */ + +#ifndef INCLUDE_CONTAINERS_MIXED_XOR_H_ +#define INCLUDE_CONTAINERS_MIXED_XOR_H_ + +/* These functions appear to exclude cases where the + * inputs have the same type and the output is guaranteed + * to have the same type as the inputs. Eg, bitset unions + */ + +/* + * Java implementation (as of May 2016) for array_run, run_run + * and bitset_run don't do anything different for inplace. + * (They are not truly in place.) + */ + +#include +#include +#include + +// #include "containers.h" + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +/* Compute the xor of src_1 and src_2 and write the result to + * dst (which has no container initially). + * Result is true iff dst is a bitset */ +bool array_bitset_container_xor(const array_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst); + +/* Compute the xor of src_1 and src_2 and write the result to + * dst. It is allowed for src_2 to be dst. This version does not + * update the cardinality of dst (it is set to BITSET_UNKNOWN_CARDINALITY). + */ + +void array_bitset_container_lazy_xor(const array_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); +/* Compute the xor of src_1 and src_2 and write the result to + * dst (which has no container initially). Return value is + * "dst is a bitset" + */ + +bool bitset_bitset_container_xor(const bitset_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst); + +/* Compute the xor of src_1 and src_2 and write the result to + * dst. Result may be either a bitset or an array container + * (returns "result is bitset"). dst does not initially have + * any container, but becomes either a bitset container (return + * result true) or an array container. + */ + +bool run_bitset_container_xor(const run_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst); + +/* lazy xor. Dst is initialized and may be equal to src_2. + * Result is left as a bitset container, even if actual + * cardinality would dictate an array container. + */ + +void run_bitset_container_lazy_xor(const run_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst); + +/* dst does not indicate a valid container initially. Eventually it + * can become any kind of container. + */ + +int array_run_container_xor(const array_container_t *src_1, + const run_container_t *src_2, container_t **dst); + +/* dst does not initially have a valid container. Creates either + * an array or a bitset container, indicated by return code + */ + +bool array_array_container_xor(const array_container_t *src_1, + const array_container_t *src_2, + container_t **dst); + +/* dst does not initially have a valid container. Creates either + * an array or a bitset container, indicated by return code. + * A bitset container will not have a valid cardinality and the + * container type might not be correct for the actual cardinality + */ + +bool array_array_container_lazy_xor(const array_container_t *src_1, + const array_container_t *src_2, + container_t **dst); + +/* Dst is a valid run container. (Can it be src_2? Let's say not.) + * Leaves result as run container, even if other options are + * smaller. + */ + +void array_run_container_lazy_xor(const array_container_t *src_1, + const run_container_t *src_2, + run_container_t *dst); + +/* dst does not indicate a valid container initially. Eventually it + * can become any kind of container. + */ + +int run_run_container_xor(const run_container_t *src_1, + const run_container_t *src_2, container_t **dst); + +/* INPLACE versions (initial implementation may not exploit all inplace + * opportunities (if any...) + */ + +/* Compute the xor of src_1 and src_2 and write the result to + * dst (which has no container initially). It will modify src_1 + * to be dst if the result is a bitset. Otherwise, it will + * free src_1 and dst will be a new array container. In both + * cases, the caller is responsible for deallocating dst. + * Returns true iff dst is a bitset */ + +bool bitset_array_container_ixor(bitset_container_t *src_1, + const array_container_t *src_2, + container_t **dst); + +bool bitset_bitset_container_ixor(bitset_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst); + +bool array_bitset_container_ixor(array_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst); + +/* Compute the xor of src_1 and src_2 and write the result to + * dst. Result may be either a bitset or an array container + * (returns "result is bitset"). dst does not initially have + * any container, but becomes either a bitset container (return + * result true) or an array container. + */ + +bool run_bitset_container_ixor(run_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst); + +bool bitset_run_container_ixor(bitset_container_t *src_1, + const run_container_t *src_2, container_t **dst); + +/* dst does not indicate a valid container initially. Eventually it + * can become any kind of container. + */ + +int array_run_container_ixor(array_container_t *src_1, + const run_container_t *src_2, container_t **dst); + +int run_array_container_ixor(run_container_t *src_1, + const array_container_t *src_2, container_t **dst); + +bool array_array_container_ixor(array_container_t *src_1, + const array_container_t *src_2, + container_t **dst); + +int run_run_container_ixor(run_container_t *src_1, const run_container_t *src_2, + container_t **dst); + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif + +#endif diff --git a/contrib/libs/croaring/include/roaring/containers/perfparameters.h b/contrib/libs/croaring/include/roaring/containers/perfparameters.h new file mode 100644 index 000000000000..f42a87410956 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/containers/perfparameters.h @@ -0,0 +1,49 @@ +#ifndef PERFPARAMETERS_H_ +#define PERFPARAMETERS_H_ + +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +/** +During lazy computations, we can transform array containers into bitset +containers as +long as we can expect them to have ARRAY_LAZY_LOWERBOUND values. +*/ +enum { ARRAY_LAZY_LOWERBOUND = 1024 }; + +/* default initial size of a run container + setting it to zero delays the malloc.*/ +enum { RUN_DEFAULT_INIT_SIZE = 0 }; + +/* default initial size of an array container + setting it to zero delays the malloc */ +enum { ARRAY_DEFAULT_INIT_SIZE = 0 }; + +/* automatic bitset conversion during lazy or */ +#ifndef LAZY_OR_BITSET_CONVERSION +#define LAZY_OR_BITSET_CONVERSION true +#endif + +/* automatically attempt to convert a bitset to a full run during lazy + * evaluation */ +#ifndef LAZY_OR_BITSET_CONVERSION_TO_FULL +#define LAZY_OR_BITSET_CONVERSION_TO_FULL true +#endif + +/* automatically attempt to convert a bitset to a full run */ +#ifndef OR_BITSET_CONVERSION_TO_FULL +#define OR_BITSET_CONVERSION_TO_FULL true +#endif + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif + +#endif diff --git a/contrib/libs/croaring/include/roaring/containers/run.h b/contrib/libs/croaring/include/roaring/containers/run.h new file mode 100644 index 000000000000..486c9844345d --- /dev/null +++ b/contrib/libs/croaring/include/roaring/containers/run.h @@ -0,0 +1,718 @@ +/* + * run.h + * + */ + +#ifndef INCLUDE_CONTAINERS_RUN_H_ +#define INCLUDE_CONTAINERS_RUN_H_ + +#include // roaring_iterator + +// Include other headers after roaring_types.h +#include +#include +#include +#include + +#include // binarySearch()/memequals() for inlining +#include // container_t, perfparameters +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { + +// Note: in pure C++ code, you should avoid putting `using` in header files +using api::roaring_iterator; +using api::roaring_iterator64; + +namespace internal { +#endif + +/* struct rle16_s - run length pair + * + * @value: start position of the run + * @length: length of the run is `length + 1` + * + * An RLE pair {v, l} would represent the integers between the interval + * [v, v+l+1], e.g. {3, 2} = [3, 4, 5]. + */ +struct rle16_s { + uint16_t value; + uint16_t length; +}; + +typedef struct rle16_s rle16_t; + +#ifdef __cplusplus +#define CROARING_MAKE_RLE16(val, len) \ + { (uint16_t)(val), (uint16_t)(len) } // no tagged structs until c++20 +#else +#define CROARING_MAKE_RLE16(val, len) \ + (rle16_t) { .value = (uint16_t)(val), .length = (uint16_t)(len) } +#endif + +/* struct run_container_s - run container bitmap + * + * @n_runs: number of rle_t pairs in `runs`. + * @capacity: capacity in rle_t pairs `runs` can hold. + * @runs: pairs of rle_t. + */ +STRUCT_CONTAINER(run_container_s) { + int32_t n_runs; + int32_t capacity; + rle16_t *runs; +}; + +typedef struct run_container_s run_container_t; + +#define CAST_run(c) CAST(run_container_t *, c) // safer downcast +#define const_CAST_run(c) CAST(const run_container_t *, c) +#define movable_CAST_run(c) movable_CAST(run_container_t **, c) + +/* Create a new run container. Return NULL in case of failure. */ +run_container_t *run_container_create(void); + +/* Create a new run container with given capacity. Return NULL in case of + * failure. */ +run_container_t *run_container_create_given_capacity(int32_t size); + +/* + * Shrink the capacity to the actual size, return the number of bytes saved. + */ +int run_container_shrink_to_fit(run_container_t *src); + +/* Free memory owned by `run'. */ +void run_container_free(run_container_t *run); + +/* Duplicate container */ +run_container_t *run_container_clone(const run_container_t *src); + +/* + * Effectively deletes the value at index index, repacking data. + */ +static inline void recoverRoomAtIndex(run_container_t *run, uint16_t index) { + memmove(run->runs + index, run->runs + (1 + index), + (run->n_runs - index - 1) * sizeof(rle16_t)); + run->n_runs--; +} + +/** + * Good old binary search through rle data + */ +inline int32_t interleavedBinarySearch(const rle16_t *array, int32_t lenarray, + uint16_t ikey) { + int32_t low = 0; + int32_t high = lenarray - 1; + while (low <= high) { + int32_t middleIndex = (low + high) >> 1; + uint16_t middleValue = array[middleIndex].value; + if (middleValue < ikey) { + low = middleIndex + 1; + } else if (middleValue > ikey) { + high = middleIndex - 1; + } else { + return middleIndex; + } + } + return -(low + 1); +} + +/* + * Returns index of the run which contains $ikey + */ +static inline int32_t rle16_find_run(const rle16_t *array, int32_t lenarray, + uint16_t ikey) { + int32_t low = 0; + int32_t high = lenarray - 1; + while (low <= high) { + int32_t middleIndex = (low + high) >> 1; + uint16_t min = array[middleIndex].value; + uint16_t max = array[middleIndex].value + array[middleIndex].length; + if (ikey > max) { + low = middleIndex + 1; + } else if (ikey < min) { + high = middleIndex - 1; + } else { + return middleIndex; + } + } + return -(low + 1); +} + +/** + * Returns number of runs which can'be be merged with the key because they + * are less than the key. + * Note that [5,6,7,8] can be merged with the key 9 and won't be counted. + */ +static inline int32_t rle16_count_less(const rle16_t *array, int32_t lenarray, + uint16_t key) { + if (lenarray == 0) return 0; + int32_t low = 0; + int32_t high = lenarray - 1; + while (low <= high) { + int32_t middleIndex = (low + high) >> 1; + uint16_t min_value = array[middleIndex].value; + uint16_t max_value = + array[middleIndex].value + array[middleIndex].length; + if (max_value + UINT32_C(1) < key) { // uint32 arithmetic + low = middleIndex + 1; + } else if (key < min_value) { + high = middleIndex - 1; + } else { + return middleIndex; + } + } + return low; +} + +static inline int32_t rle16_count_greater(const rle16_t *array, + int32_t lenarray, uint16_t key) { + if (lenarray == 0) return 0; + int32_t low = 0; + int32_t high = lenarray - 1; + while (low <= high) { + int32_t middleIndex = (low + high) >> 1; + uint16_t min_value = array[middleIndex].value; + uint16_t max_value = + array[middleIndex].value + array[middleIndex].length; + if (max_value < key) { + low = middleIndex + 1; + } else if (key + UINT32_C(1) < min_value) { // uint32 arithmetic + high = middleIndex - 1; + } else { + return lenarray - (middleIndex + 1); + } + } + return lenarray - low; +} + +/** + * increase capacity to at least min. Whether the + * existing data needs to be copied over depends on copy. If "copy" is false, + * then the new content will be uninitialized, otherwise a copy is made. + */ +void run_container_grow(run_container_t *run, int32_t min, bool copy); + +/** + * Moves the data so that we can write data at index + */ +static inline void makeRoomAtIndex(run_container_t *run, uint16_t index) { + /* This function calls realloc + memmove sequentially to move by one index. + * Potentially copying twice the array. + */ + if (run->n_runs + 1 > run->capacity) + run_container_grow(run, run->n_runs + 1, true); + memmove(run->runs + 1 + index, run->runs + index, + (run->n_runs - index) * sizeof(rle16_t)); + run->n_runs++; +} + +/* Add `pos' to `run'. Returns true if `pos' was not present. */ +bool run_container_add(run_container_t *run, uint16_t pos); + +/* Remove `pos' from `run'. Returns true if `pos' was present. */ +static inline bool run_container_remove(run_container_t *run, uint16_t pos) { + int32_t index = interleavedBinarySearch(run->runs, run->n_runs, pos); + if (index >= 0) { + int32_t le = run->runs[index].length; + if (le == 0) { + recoverRoomAtIndex(run, (uint16_t)index); + } else { + run->runs[index].value++; + run->runs[index].length--; + } + return true; + } + index = -index - 2; // points to preceding value, possibly -1 + if (index >= 0) { // possible match + int32_t offset = pos - run->runs[index].value; + int32_t le = run->runs[index].length; + if (offset < le) { + // need to break in two + run->runs[index].length = (uint16_t)(offset - 1); + // need to insert + uint16_t newvalue = pos + 1; + int32_t newlength = le - offset - 1; + makeRoomAtIndex(run, (uint16_t)(index + 1)); + run->runs[index + 1].value = newvalue; + run->runs[index + 1].length = (uint16_t)newlength; + return true; + + } else if (offset == le) { + run->runs[index].length--; + return true; + } + } + // no match + return false; +} + +/* Check whether `pos' is present in `run'. */ +inline bool run_container_contains(const run_container_t *run, uint16_t pos) { + int32_t index = interleavedBinarySearch(run->runs, run->n_runs, pos); + if (index >= 0) return true; + index = -index - 2; // points to preceding value, possibly -1 + if (index != -1) { // possible match + int32_t offset = pos - run->runs[index].value; + int32_t le = run->runs[index].length; + if (offset <= le) return true; + } + return false; +} + +/* + * Check whether all positions in a range of positions from pos_start (included) + * to pos_end (excluded) is present in `run'. + */ +static inline bool run_container_contains_range(const run_container_t *run, + uint32_t pos_start, + uint32_t pos_end) { + uint32_t count = 0; + int32_t index = + interleavedBinarySearch(run->runs, run->n_runs, (uint16_t)pos_start); + if (index < 0) { + index = -index - 2; + if ((index == -1) || + ((pos_start - run->runs[index].value) > run->runs[index].length)) { + return false; + } + } + for (int32_t i = index; i < run->n_runs; ++i) { + const uint32_t stop = run->runs[i].value + run->runs[i].length; + if (run->runs[i].value >= pos_end) break; + if (stop >= pos_end) { + count += (((pos_end - run->runs[i].value) > 0) + ? (pos_end - run->runs[i].value) + : 0); + break; + } + const uint32_t min = (stop - pos_start) > 0 ? (stop - pos_start) : 0; + count += (min < run->runs[i].length) ? min : run->runs[i].length; + } + return count >= (pos_end - pos_start - 1); +} + +/* Get the cardinality of `run'. Requires an actual computation. */ +int run_container_cardinality(const run_container_t *run); + +/* Card > 0?, see run_container_empty for the reverse */ +static inline bool run_container_nonzero_cardinality( + const run_container_t *run) { + return run->n_runs > 0; // runs never empty +} + +/* Card == 0?, see run_container_nonzero_cardinality for the reverse */ +static inline bool run_container_empty(const run_container_t *run) { + return run->n_runs == 0; // runs never empty +} + +/* Copy one container into another. We assume that they are distinct. */ +void run_container_copy(const run_container_t *src, run_container_t *dst); + +/** + * Append run described by vl to the run container, possibly merging. + * It is assumed that the run would be inserted at the end of the container, no + * check is made. + * It is assumed that the run container has the necessary capacity: caller is + * responsible for checking memory capacity. + * + * + * This is not a safe function, it is meant for performance: use with care. + */ +static inline void run_container_append(run_container_t *run, rle16_t vl, + rle16_t *previousrl) { + const uint32_t previousend = previousrl->value + previousrl->length; + if (vl.value > previousend + 1) { // we add a new one + run->runs[run->n_runs] = vl; + run->n_runs++; + *previousrl = vl; + } else { + uint32_t newend = vl.value + vl.length + UINT32_C(1); + if (newend > previousend) { // we merge + previousrl->length = (uint16_t)(newend - 1 - previousrl->value); + run->runs[run->n_runs - 1] = *previousrl; + } + } +} + +/** + * Like run_container_append but it is assumed that the content of run is empty. + */ +static inline rle16_t run_container_append_first(run_container_t *run, + rle16_t vl) { + run->runs[run->n_runs] = vl; + run->n_runs++; + return vl; +} + +/** + * append a single value given by val to the run container, possibly merging. + * It is assumed that the value would be inserted at the end of the container, + * no check is made. + * It is assumed that the run container has the necessary capacity: caller is + * responsible for checking memory capacity. + * + * This is not a safe function, it is meant for performance: use with care. + */ +static inline void run_container_append_value(run_container_t *run, + uint16_t val, + rle16_t *previousrl) { + const uint32_t previousend = previousrl->value + previousrl->length; + if (val > previousend + 1) { // we add a new one + *previousrl = CROARING_MAKE_RLE16(val, 0); + run->runs[run->n_runs] = *previousrl; + run->n_runs++; + } else if (val == previousend + 1) { // we merge + previousrl->length++; + run->runs[run->n_runs - 1] = *previousrl; + } +} + +/** + * Like run_container_append_value but it is assumed that the content of run is + * empty. + */ +static inline rle16_t run_container_append_value_first(run_container_t *run, + uint16_t val) { + rle16_t newrle = CROARING_MAKE_RLE16(val, 0); + run->runs[run->n_runs] = newrle; + run->n_runs++; + return newrle; +} + +/* Check whether the container spans the whole chunk (cardinality = 1<<16). + * This check can be done in constant time (inexpensive). */ +static inline bool run_container_is_full(const run_container_t *run) { + rle16_t vl = run->runs[0]; + return (run->n_runs == 1) && (vl.value == 0) && (vl.length == 0xFFFF); +} + +/* Compute the union of `src_1' and `src_2' and write the result to `dst' + * It is assumed that `dst' is distinct from both `src_1' and `src_2'. */ +void run_container_union(const run_container_t *src_1, + const run_container_t *src_2, run_container_t *dst); + +/* Compute the union of `src_1' and `src_2' and write the result to `src_1' */ +void run_container_union_inplace(run_container_t *src_1, + const run_container_t *src_2); + +/* Compute the intersection of src_1 and src_2 and write the result to + * dst. It is assumed that dst is distinct from both src_1 and src_2. */ +void run_container_intersection(const run_container_t *src_1, + const run_container_t *src_2, + run_container_t *dst); + +/* Compute the size of the intersection of src_1 and src_2 . */ +int run_container_intersection_cardinality(const run_container_t *src_1, + const run_container_t *src_2); + +/* Check whether src_1 and src_2 intersect. */ +bool run_container_intersect(const run_container_t *src_1, + const run_container_t *src_2); + +/* Compute the symmetric difference of `src_1' and `src_2' and write the result + * to `dst' + * It is assumed that `dst' is distinct from both `src_1' and `src_2'. */ +void run_container_xor(const run_container_t *src_1, + const run_container_t *src_2, run_container_t *dst); + +/* + * Write out the 16-bit integers contained in this container as a list of 32-bit + * integers using base + * as the starting value (it might be expected that base has zeros in its 16 + * least significant bits). + * The function returns the number of values written. + * The caller is responsible for allocating enough memory in out. + */ +int run_container_to_uint32_array(void *vout, const run_container_t *cont, + uint32_t base); + +/* + * Print this container using printf (useful for debugging). + */ +void run_container_printf(const run_container_t *v); + +/* + * Print this container using printf as a comma-separated list of 32-bit + * integers starting at base. + */ +void run_container_printf_as_uint32_array(const run_container_t *v, + uint32_t base); + +bool run_container_validate(const run_container_t *run, const char **reason); + +/** + * Return the serialized size in bytes of a container having "num_runs" runs. + */ +static inline int32_t run_container_serialized_size_in_bytes(int32_t num_runs) { + return sizeof(uint16_t) + + sizeof(rle16_t) * num_runs; // each run requires 2 2-byte entries. +} + +bool run_container_iterate(const run_container_t *cont, uint32_t base, + roaring_iterator iterator, void *ptr); +bool run_container_iterate64(const run_container_t *cont, uint32_t base, + roaring_iterator64 iterator, uint64_t high_bits, + void *ptr); + +/** + * Writes the underlying array to buf, outputs how many bytes were written. + * This is meant to be byte-by-byte compatible with the Java and Go versions of + * Roaring. + * The number of bytes written should be run_container_size_in_bytes(container). + */ +int32_t run_container_write(const run_container_t *container, char *buf); + +/** + * Reads the instance from buf, outputs how many bytes were read. + * This is meant to be byte-by-byte compatible with the Java and Go versions of + * Roaring. + * The number of bytes read should be bitset_container_size_in_bytes(container). + * The cardinality parameter is provided for consistency with other containers, + * but + * it might be effectively ignored.. + */ +int32_t run_container_read(int32_t cardinality, run_container_t *container, + const char *buf); + +/** + * Return the serialized size in bytes of a container (see run_container_write). + * This is meant to be compatible with the Java and Go versions of Roaring. + */ +ALLOW_UNALIGNED +static inline int32_t run_container_size_in_bytes( + const run_container_t *container) { + return run_container_serialized_size_in_bytes(container->n_runs); +} + +/** + * Return true if the two containers have the same content. + */ +ALLOW_UNALIGNED +static inline bool run_container_equals(const run_container_t *container1, + const run_container_t *container2) { + if (container1->n_runs != container2->n_runs) { + return false; + } + return memequals(container1->runs, container2->runs, + container1->n_runs * sizeof(rle16_t)); +} + +/** + * Return true if container1 is a subset of container2. + */ +bool run_container_is_subset(const run_container_t *container1, + const run_container_t *container2); + +/** + * Used in a start-finish scan that appends segments, for XOR and NOT + */ + +void run_container_smart_append_exclusive(run_container_t *src, + const uint16_t start, + const uint16_t length); + +/** + * The new container consists of a single run [start,stop). + * It is required that stop>start, the caller is responsability for this check. + * It is required that stop <= (1<<16), the caller is responsability for this + * check. The cardinality of the created container is stop - start. Returns NULL + * on failure + */ +static inline run_container_t *run_container_create_range(uint32_t start, + uint32_t stop) { + run_container_t *rc = run_container_create_given_capacity(1); + if (rc) { + rle16_t r; + r.value = (uint16_t)start; + r.length = (uint16_t)(stop - start - 1); + run_container_append_first(rc, r); + } + return rc; +} + +/** + * If the element of given rank is in this container, supposing that the first + * element has rank start_rank, then the function returns true and sets element + * accordingly. + * Otherwise, it returns false and update start_rank. + */ +bool run_container_select(const run_container_t *container, + uint32_t *start_rank, uint32_t rank, + uint32_t *element); + +/* Compute the difference of src_1 and src_2 and write the result to + * dst. It is assumed that dst is distinct from both src_1 and src_2. */ + +void run_container_andnot(const run_container_t *src_1, + const run_container_t *src_2, run_container_t *dst); + +void run_container_offset(const run_container_t *c, container_t **loc, + container_t **hic, uint16_t offset); + +/* Returns the smallest value (assumes not empty) */ +inline uint16_t run_container_minimum(const run_container_t *run) { + if (run->n_runs == 0) return 0; + return run->runs[0].value; +} + +/* Returns the largest value (assumes not empty) */ +inline uint16_t run_container_maximum(const run_container_t *run) { + if (run->n_runs == 0) return 0; + return run->runs[run->n_runs - 1].value + run->runs[run->n_runs - 1].length; +} + +/* Returns the number of values equal or smaller than x */ +int run_container_rank(const run_container_t *arr, uint16_t x); + +/* bulk version of run_container_rank(); return number of consumed elements */ +uint32_t run_container_rank_many(const run_container_t *arr, + uint64_t start_rank, const uint32_t *begin, + const uint32_t *end, uint64_t *ans); + +/* Returns the index of x, if not exsist return -1 */ +int run_container_get_index(const run_container_t *arr, uint16_t x); + +/* Returns the index of the first run containing a value at least as large as x, + * or -1 */ +inline int run_container_index_equalorlarger(const run_container_t *arr, + uint16_t x) { + int32_t index = interleavedBinarySearch(arr->runs, arr->n_runs, x); + if (index >= 0) return index; + index = -index - 2; // points to preceding run, possibly -1 + if (index != -1) { // possible match + int32_t offset = x - arr->runs[index].value; + int32_t le = arr->runs[index].length; + if (offset <= le) return index; + } + index += 1; + if (index < arr->n_runs) { + return index; + } + return -1; +} + +/* + * Add all values in range [min, max] using hint. + */ +static inline void run_container_add_range_nruns(run_container_t *run, + uint32_t min, uint32_t max, + int32_t nruns_less, + int32_t nruns_greater) { + int32_t nruns_common = run->n_runs - nruns_less - nruns_greater; + if (nruns_common == 0) { + makeRoomAtIndex(run, (uint16_t)nruns_less); + run->runs[nruns_less].value = (uint16_t)min; + run->runs[nruns_less].length = (uint16_t)(max - min); + } else { + uint32_t common_min = run->runs[nruns_less].value; + uint32_t common_max = run->runs[nruns_less + nruns_common - 1].value + + run->runs[nruns_less + nruns_common - 1].length; + uint32_t result_min = (common_min < min) ? common_min : min; + uint32_t result_max = (common_max > max) ? common_max : max; + + run->runs[nruns_less].value = (uint16_t)result_min; + run->runs[nruns_less].length = (uint16_t)(result_max - result_min); + + memmove(&(run->runs[nruns_less + 1]), + &(run->runs[run->n_runs - nruns_greater]), + nruns_greater * sizeof(rle16_t)); + run->n_runs = nruns_less + 1 + nruns_greater; + } +} + +/** + * Add all values in range [min, max]. This function is currently unused + * and left as documentation. + */ +/*static inline void run_container_add_range(run_container_t* run, + uint32_t min, uint32_t max) { + int32_t nruns_greater = rle16_count_greater(run->runs, run->n_runs, max); + int32_t nruns_less = rle16_count_less(run->runs, run->n_runs - +nruns_greater, min); run_container_add_range_nruns(run, min, max, nruns_less, +nruns_greater); +}*/ + +/** + * Shifts last $count elements either left (distance < 0) or right (distance > + * 0) + */ +static inline void run_container_shift_tail(run_container_t *run, int32_t count, + int32_t distance) { + if (distance > 0) { + if (run->capacity < count + distance) { + run_container_grow(run, count + distance, true); + } + } + int32_t srcpos = run->n_runs - count; + int32_t dstpos = srcpos + distance; + memmove(&(run->runs[dstpos]), &(run->runs[srcpos]), + sizeof(rle16_t) * count); + run->n_runs += distance; +} + +/** + * Remove all elements in range [min, max] + */ +static inline void run_container_remove_range(run_container_t *run, + uint32_t min, uint32_t max) { + int32_t first = rle16_find_run(run->runs, run->n_runs, (uint16_t)min); + int32_t last = rle16_find_run(run->runs, run->n_runs, (uint16_t)max); + + if (first >= 0 && min > run->runs[first].value && + max < ((uint32_t)run->runs[first].value + + (uint32_t)run->runs[first].length)) { + // split this run into two adjacent runs + + // right subinterval + makeRoomAtIndex(run, (uint16_t)(first + 1)); + run->runs[first + 1].value = (uint16_t)(max + 1); + run->runs[first + 1].length = + (uint16_t)((run->runs[first].value + run->runs[first].length) - + (max + 1)); + + // left subinterval + run->runs[first].length = + (uint16_t)((min - 1) - run->runs[first].value); + + return; + } + + // update left-most partial run + if (first >= 0) { + if (min > run->runs[first].value) { + run->runs[first].length = + (uint16_t)((min - 1) - run->runs[first].value); + first++; + } + } else { + first = -first - 1; + } + + // update right-most run + if (last >= 0) { + uint16_t run_max = run->runs[last].value + run->runs[last].length; + if (run_max > max) { + run->runs[last].value = (uint16_t)(max + 1); + run->runs[last].length = (uint16_t)(run_max - (max + 1)); + last--; + } + } else { + last = (-last - 1) - 1; + } + + // remove intermediate runs + if (first <= last) { + run_container_shift_tail(run, run->n_runs - (last + 1), + -(last - first + 1)); + } +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif + +#endif /* INCLUDE_CONTAINERS_RUN_H_ */ diff --git a/contrib/libs/croaring/include/roaring/isadetection.h b/contrib/libs/croaring/include/roaring/isadetection.h new file mode 100644 index 000000000000..189db5f00a99 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/isadetection.h @@ -0,0 +1,42 @@ +#ifndef ROARING_ISADETECTION_H +#define ROARING_ISADETECTION_H +#if defined(__x86_64__) || defined(_M_AMD64) // x64 + +#ifndef CROARING_COMPILER_SUPPORTS_AVX512 +#ifdef __has_include +// We want to make sure that the AVX-512 functions are only built on compilers +// fully supporting AVX-512. +#if __has_include() +#define CROARING_COMPILER_SUPPORTS_AVX512 1 +#endif // #if __has_include() +#endif // #ifdef __has_include + +// Visual Studio 2019 and up support AVX-512 +#ifdef _MSC_VER +#if _MSC_VER >= 1920 +#define CROARING_COMPILER_SUPPORTS_AVX512 1 +#endif // #if _MSC_VER >= 1920 +#endif // #ifdef _MSC_VER + +#ifndef CROARING_COMPILER_SUPPORTS_AVX512 +#define CROARING_COMPILER_SUPPORTS_AVX512 0 +#endif // #ifndef CROARING_COMPILER_SUPPORTS_AVX512 +#endif // #ifndef CROARING_COMPILER_SUPPORTS_AVX512 + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif +enum { + ROARING_SUPPORTS_AVX2 = 1, + ROARING_SUPPORTS_AVX512 = 2, +}; +int croaring_hardware_support(void); +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif +#endif // x64 +#endif // ROARING_ISADETECTION_H diff --git a/contrib/libs/croaring/include/roaring/memory.h b/contrib/libs/croaring/include/roaring/memory.h new file mode 100644 index 000000000000..ad9a64f5e22b --- /dev/null +++ b/contrib/libs/croaring/include/roaring/memory.h @@ -0,0 +1,39 @@ +#ifndef INCLUDE_ROARING_MEMORY_H_ +#define INCLUDE_ROARING_MEMORY_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include // for size_t + +typedef void* (*roaring_malloc_p)(size_t); +typedef void* (*roaring_realloc_p)(void*, size_t); +typedef void* (*roaring_calloc_p)(size_t, size_t); +typedef void (*roaring_free_p)(void*); +typedef void* (*roaring_aligned_malloc_p)(size_t, size_t); +typedef void (*roaring_aligned_free_p)(void*); + +typedef struct roaring_memory_s { + roaring_malloc_p malloc; + roaring_realloc_p realloc; + roaring_calloc_p calloc; + roaring_free_p free; + roaring_aligned_malloc_p aligned_malloc; + roaring_aligned_free_p aligned_free; +} roaring_memory_t; + +void roaring_init_memory_hook(roaring_memory_t memory_hook); + +void* roaring_malloc(size_t); +void* roaring_realloc(void*, size_t); +void* roaring_calloc(size_t, size_t); +void roaring_free(void*); +void* roaring_aligned_malloc(size_t, size_t); +void roaring_aligned_free(void*); + +#ifdef __cplusplus +} +#endif + +#endif // INCLUDE_ROARING_MEMORY_H_ diff --git a/contrib/libs/croaring/include/roaring/portability.h b/contrib/libs/croaring/include/roaring/portability.h new file mode 100644 index 000000000000..78081ec88eda --- /dev/null +++ b/contrib/libs/croaring/include/roaring/portability.h @@ -0,0 +1,600 @@ +/* + * portability.h + * + */ + +/** + * All macros should be prefixed with either CROARING or ROARING. + * The library uses both ROARING_... + * as well as CROAIRING_ as prefixes. The ROARING_ prefix is for + * macros that are provided by the build system or that are closely + * related to the format. The header macros may also use ROARING_. + * The CROARING_ prefix is for internal macros that a user is unlikely + * to ever interact with. + */ + +#ifndef CROARING_INCLUDE_PORTABILITY_H_ +#define CROARING_INCLUDE_PORTABILITY_H_ + +#ifndef _GNU_SOURCE +#define _GNU_SOURCE 1 +#endif // _GNU_SOURCE +#ifndef __STDC_FORMAT_MACROS +#define __STDC_FORMAT_MACROS 1 +#endif // __STDC_FORMAT_MACROS + +#ifdef _MSC_VER +#define CROARING_VISUAL_STUDIO 1 +/** + * We want to differentiate carefully between + * clang under visual studio and regular visual + * studio. + */ +#ifdef __clang__ +// clang under visual studio +#define CROARING_CLANG_VISUAL_STUDIO 1 +#else +// just regular visual studio (best guess) +#define CROARING_REGULAR_VISUAL_STUDIO 1 +#endif // __clang__ +#endif // _MSC_VER +#ifndef CROARING_VISUAL_STUDIO +#define CROARING_VISUAL_STUDIO 0 +#endif +#ifndef CROARING_CLANG_VISUAL_STUDIO +#define CROARING_CLANG_VISUAL_STUDIO 0 +#endif +#ifndef CROARING_REGULAR_VISUAL_STUDIO +#define CROARING_REGULAR_VISUAL_STUDIO 0 +#endif + +#if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE < 200809L) +#undef _POSIX_C_SOURCE +#endif + +#ifndef _POSIX_C_SOURCE +#define _POSIX_C_SOURCE 200809L +#endif // !(defined(_POSIX_C_SOURCE)) || (_POSIX_C_SOURCE < 200809L) +#if !(defined(_XOPEN_SOURCE)) || (_XOPEN_SOURCE < 700) +#define _XOPEN_SOURCE 700 +#endif // !(defined(_XOPEN_SOURCE)) || (_XOPEN_SOURCE < 700) + +#ifdef __illumos__ +#define __EXTENSIONS__ +#endif + +#include +#include +#include // will provide posix_memalign with _POSIX_C_SOURCE as defined above +#ifdef __GLIBC__ +#include // this should never be needed but there are some reports that it is needed. +#endif + +#ifdef __cplusplus +extern "C" { // portability definitions are in global scope, not a namespace +#endif + +#if defined(__SIZEOF_LONG_LONG__) && __SIZEOF_LONG_LONG__ != 8 +#error This code assumes 64-bit long longs (by use of the GCC intrinsics). Your system is not currently supported. +#endif + +#if CROARING_REGULAR_VISUAL_STUDIO +#ifndef __restrict__ +#define __restrict__ __restrict +#endif // __restrict__ +#endif // CROARING_REGULAR_VISUAL_STUDIO + +#if defined(__x86_64__) || defined(_M_X64) +// we have an x64 processor +#define CROARING_IS_X64 1 + +#if defined(_MSC_VER) && (_MSC_VER < 1910) +// Old visual studio systems won't support AVX2 well. +#undef CROARING_IS_X64 +#endif + +#if defined(__clang_major__) && (__clang_major__ <= 8) && !defined(__AVX2__) +// Older versions of clang have a bug affecting us +// https://stackoverflow.com/questions/57228537/how-does-one-use-pragma-clang-attribute-push-with-c-namespaces +#undef CROARING_IS_X64 +#endif + +#ifdef ROARING_DISABLE_X64 +#undef CROARING_IS_X64 +#endif +// we include the intrinsic header +#if !CROARING_REGULAR_VISUAL_STUDIO +/* Non-Microsoft C/C++-compatible compiler */ +#include // on some recent GCC, this will declare posix_memalign + +#if CROARING_CLANG_VISUAL_STUDIO + +/** + * You are not supposed, normally, to include these + * headers directly. Instead you should either include intrin.h + * or x86intrin.h. However, when compiling with clang + * under Windows (i.e., when _MSC_VER is set), these headers + * only get included *if* the corresponding features are detected + * from macros: + * e.g., if __AVX2__ is set... in turn, we normally set these + * macros by compiling against the corresponding architecture + * (e.g., arch:AVX2, -mavx2, etc.) which compiles the whole + * software with these advanced instructions. These headers would + * normally guard against such usage, but we carefully included + * (or ) before, so the headers + * are fooled. + */ +// To avoid reordering imports: +// clang-format off +#include // for _blsr_u64 +#include // for __lzcnt64 +#include // for most things (AVX2, AVX512, _popcnt64) +#include +#include +#include +#include +#include +#if _MSC_VER >= 1920 +// Important: we need the AVX-512 headers: +#include +#include +#include +#include +#include +#include +#include +#include +// clang-format on +#endif // _MSC_VER >= 1920 +// unfortunately, we may not get _blsr_u64, but, thankfully, clang +// has it as a macro. +#ifndef _blsr_u64 +// we roll our own +#define _blsr_u64(n) ((n - 1) & n) +#endif // _blsr_u64 +#endif // SIMDJSON_CLANG_VISUAL_STUDIO + +#endif // CROARING_REGULAR_VISUAL_STUDIO +#endif // defined(__x86_64__) || defined(_M_X64) + +#if !defined(CROARING_USENEON) && !defined(DISABLENEON) && defined(__ARM_NEON) +#define CROARING_USENEON +#endif +#if defined(CROARING_USENEON) +#include +#endif + +#if !CROARING_REGULAR_VISUAL_STUDIO +/* Non-Microsoft C/C++-compatible compiler, assumes that it supports inline + * assembly */ +#define CROARING_INLINE_ASM 1 +#endif // _MSC_VER + +#if CROARING_REGULAR_VISUAL_STUDIO +/* Microsoft C/C++-compatible compiler */ +#include + +#ifndef __clang__ // if one compiles with MSVC *with* clang, then these + // intrinsics are defined!!! +#define CROARING_INTRINSICS 1 +// sadly there is no way to check whether we are missing these intrinsics +// specifically. + +/* wrappers for Visual Studio built-ins that look like gcc built-ins + * __builtin_ctzll */ +/** result might be undefined when input_num is zero */ +inline int roaring_trailing_zeroes(unsigned long long input_num) { + unsigned long index; +#ifdef _WIN64 // highly recommended!!! + _BitScanForward64(&index, input_num); +#else // if we must support 32-bit Windows + if ((uint32_t)input_num != 0) { + _BitScanForward(&index, (uint32_t)input_num); + } else { + _BitScanForward(&index, (uint32_t)(input_num >> 32)); + index += 32; + } +#endif // _WIN64 + return index; +} + +/* wrappers for Visual Studio built-ins that look like gcc built-ins + * __builtin_clzll */ +/** result might be undefined when input_num is zero */ +inline int roaring_leading_zeroes(unsigned long long input_num) { + unsigned long index; +#ifdef _WIN64 // highly recommended!!! + _BitScanReverse64(&index, input_num); +#else // if we must support 32-bit Windows + if (input_num > 0xFFFFFFFF) { + _BitScanReverse(&index, (uint32_t)(input_num >> 32)); + index += 32; + } else { + _BitScanReverse(&index, (uint32_t)(input_num)); + } +#endif // _WIN64 + return 63 - index; +} + +/* Use #define so this is effective even under /Ob0 (no inline) */ +#define roaring_unreachable __assume(0) +#endif // __clang__ + +#endif // CROARING_REGULAR_VISUAL_STUDIO + +#ifndef CROARING_INTRINSICS +#define CROARING_INTRINSICS 1 +#define roaring_unreachable __builtin_unreachable() +/** result might be undefined when input_num is zero */ +inline int roaring_trailing_zeroes(unsigned long long input_num) { + return __builtin_ctzll(input_num); +} +/** result might be undefined when input_num is zero */ +inline int roaring_leading_zeroes(unsigned long long input_num) { + return __builtin_clzll(input_num); +} +#endif + +#if CROARING_REGULAR_VISUAL_STUDIO +#define ALIGNED(x) __declspec(align(x)) +#elif defined(__GNUC__) || defined(__clang__) +#define ALIGNED(x) __attribute__((aligned(x))) +#else +#warning "Warning. Unrecognized compiler." +#define ALIGNED(x) +#endif + +#if defined(__GNUC__) || defined(__clang__) +#define CROARING_WARN_UNUSED __attribute__((warn_unused_result)) +#else +#define CROARING_WARN_UNUSED +#endif + +#define IS_BIG_ENDIAN (*(uint16_t *)"\0\xff" < 0x100) + +#ifdef CROARING_USENEON +// we can always compute the popcount fast. +#elif (defined(_M_ARM) || defined(_M_ARM64)) && \ + ((defined(_WIN64) || defined(_WIN32)) && \ + defined(CROARING_REGULAR_VISUAL_STUDIO) && \ + CROARING_REGULAR_VISUAL_STUDIO) +// we will need this function: +static inline int roaring_hamming_backup(uint64_t x) { + uint64_t c1 = UINT64_C(0x5555555555555555); + uint64_t c2 = UINT64_C(0x3333333333333333); + uint64_t c4 = UINT64_C(0x0F0F0F0F0F0F0F0F); + x -= (x >> 1) & c1; + x = ((x >> 2) & c2) + (x & c2); + x = (x + (x >> 4)) & c4; + x *= UINT64_C(0x0101010101010101); + return x >> 56; +} +#endif + +static inline int roaring_hamming(uint64_t x) { +#if defined(_WIN64) && defined(CROARING_REGULAR_VISUAL_STUDIO) && \ + CROARING_REGULAR_VISUAL_STUDIO +#ifdef CROARING_USENEON + return vaddv_u8(vcnt_u8(vcreate_u8(input_num))); +#elif defined(_M_ARM64) + return roaring_hamming_backup(x); + // (int) _CountOneBits64(x); is unavailable +#else // _M_ARM64 + return (int)__popcnt64(x); +#endif // _M_ARM64 +#elif defined(_WIN32) && defined(CROARING_REGULAR_VISUAL_STUDIO) && \ + CROARING_REGULAR_VISUAL_STUDIO +#ifdef _M_ARM + return roaring_hamming_backup(x); + // _CountOneBits is unavailable +#else // _M_ARM + return (int)__popcnt((unsigned int)x) + + (int)__popcnt((unsigned int)(x >> 32)); +#endif // _M_ARM +#else + return __builtin_popcountll(x); +#endif +} + +#ifndef UINT64_C +#define UINT64_C(c) (c##ULL) +#endif // UINT64_C + +#ifndef UINT32_C +#define UINT32_C(c) (c##UL) +#endif // UINT32_C + +#ifdef __cplusplus +} // extern "C" { +#endif // __cplusplus + +// this is almost standard? +#undef STRINGIFY_IMPLEMENTATION_ +#undef STRINGIFY +#define STRINGIFY_IMPLEMENTATION_(a) #a +#define STRINGIFY(a) STRINGIFY_IMPLEMENTATION_(a) + +// Our fast kernels require 64-bit systems. +// +// On 32-bit x86, we lack 64-bit popcnt, lzcnt, blsr instructions. +// Furthermore, the number of SIMD registers is reduced. +// +// On 32-bit ARM, we would have smaller registers. +// +// The library should still have the fallback kernel. It is +// slower, but it should run everywhere. + +// +// Enable valid runtime implementations, and select +// CROARING_BUILTIN_IMPLEMENTATION +// + +// We are going to use runtime dispatch. +#if CROARING_IS_X64 +#ifdef __clang__ +// clang does not have GCC push pop +// warning: clang attribute push can't be used within a namespace in clang up +// til 8.0 so CROARING_TARGET_REGION and CROARING_UNTARGET_REGION must be +// *outside* of a namespace. +#define CROARING_TARGET_REGION(T) \ + _Pragma(STRINGIFY(clang attribute push(__attribute__((target(T))), \ + apply_to = function))) +#define CROARING_UNTARGET_REGION _Pragma("clang attribute pop") +#elif defined(__GNUC__) +// GCC is easier +#define CROARING_TARGET_REGION(T) \ + _Pragma("GCC push_options") _Pragma(STRINGIFY(GCC target(T))) +#define CROARING_UNTARGET_REGION _Pragma("GCC pop_options") +#endif // clang then gcc + +#endif // CROARING_IS_X64 + +// Default target region macros don't do anything. +#ifndef CROARING_TARGET_REGION +#define CROARING_TARGET_REGION(T) +#define CROARING_UNTARGET_REGION +#endif + +#define CROARING_TARGET_AVX2 \ + CROARING_TARGET_REGION("avx2,bmi,pclmul,lzcnt,popcnt") +#define CROARING_TARGET_AVX512 \ + CROARING_TARGET_REGION( \ + "avx2,bmi,bmi2,pclmul,lzcnt,popcnt,avx512f,avx512dq,avx512bw," \ + "avx512vbmi2,avx512bitalg,avx512vpopcntdq") +#define CROARING_UNTARGET_AVX2 CROARING_UNTARGET_REGION +#define CROARING_UNTARGET_AVX512 CROARING_UNTARGET_REGION + +#ifdef __AVX2__ +// No need for runtime dispatching. +// It is unnecessary and harmful to old clang to tag regions. +#undef CROARING_TARGET_AVX2 +#define CROARING_TARGET_AVX2 +#undef CROARING_UNTARGET_AVX2 +#define CROARING_UNTARGET_AVX2 +#endif + +#if defined(__AVX512F__) && defined(__AVX512DQ__) && defined(__AVX512BW__) && \ + defined(__AVX512VBMI2__) && defined(__AVX512BITALG__) && \ + defined(__AVX512VPOPCNTDQ__) +// No need for runtime dispatching. +// It is unnecessary and harmful to old clang to tag regions. +#undef CROARING_TARGET_AVX512 +#define CROARING_TARGET_AVX512 +#undef CROARING_UNTARGET_AVX512 +#define CROARING_UNTARGET_AVX512 +#endif + +// Allow unaligned memory access +#if defined(__GNUC__) || defined(__clang__) +#define ALLOW_UNALIGNED __attribute__((no_sanitize("alignment"))) +#else +#define ALLOW_UNALIGNED +#endif + +#if defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) +#define CROARING_IS_BIG_ENDIAN (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) +#elif defined(_WIN32) +#define CROARING_IS_BIG_ENDIAN 0 +#else +#if defined(__APPLE__) || \ + defined(__FreeBSD__) // defined __BYTE_ORDER__ && defined + // __ORDER_BIG_ENDIAN__ +#include +#elif defined(sun) || \ + defined(__sun) // defined(__APPLE__) || defined(__FreeBSD__) +#error #include +#else // defined(__APPLE__) || defined(__FreeBSD__) + +#ifdef __has_include +#if __has_include() +#include +#endif //__has_include() +#endif //__has_include + +#endif // defined(__APPLE__) || defined(__FreeBSD__) + +#ifndef !defined(__BYTE_ORDER__) || !defined(__ORDER_LITTLE_ENDIAN__) +#define CROARING_IS_BIG_ENDIAN 0 +#endif + +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +#define CROARING_IS_BIG_ENDIAN 0 +#else // __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +#define CROARING_IS_BIG_ENDIAN 1 +#endif // __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +#endif + +// Host <-> big endian conversion. +#if CROARING_IS_BIG_ENDIAN +#define croaring_htobe64(x) (x) + +#elif defined(_WIN32) || defined(_WIN64) // CROARING_IS_BIG_ENDIAN +#include +#define croaring_htobe64(x) _byteswap_uint64(x) + +#elif defined(__APPLE__) // CROARING_IS_BIG_ENDIAN +#include +#define croaring_htobe64(x) OSSwapInt64(x) + +#elif defined(__has_include) && \ + __has_include( \ + ) && (defined(__linux__) || defined(__FreeBSD__)) // CROARING_IS_BIG_ENDIAN +#include +#if defined(__linux__) +#define croaring_htobe64(x) bswap_64(x) +#elif defined(__FreeBSD__) +#define croaring_htobe64(x) bswap64(x) +#else +#warning "Unknown platform, report as an error" +#endif + +#else // CROARING_IS_BIG_ENDIAN +// Gets compiled to bswap or equivalent on most compilers. +#define croaring_htobe64(x) \ + (((x & 0x00000000000000FFULL) << 56) | \ + ((x & 0x000000000000FF00ULL) << 40) | \ + ((x & 0x0000000000FF0000ULL) << 24) | \ + ((x & 0x00000000FF000000ULL) << 8) | ((x & 0x000000FF00000000ULL) >> 8) | \ + ((x & 0x0000FF0000000000ULL) >> 24) | \ + ((x & 0x00FF000000000000ULL) >> 40) | \ + ((x & 0xFF00000000000000ULL) >> 56)) +#endif // CROARING_IS_BIG_ENDIAN +#define croaring_be64toh(x) croaring_htobe64(x) +// End of host <-> big endian conversion. + +// Defines for the possible CROARING atomic implementations +#define CROARING_ATOMIC_IMPL_NONE 1 +#define CROARING_ATOMIC_IMPL_CPP 2 +#define CROARING_ATOMIC_IMPL_C 3 +#define CROARING_ATOMIC_IMPL_C_WINDOWS 4 + +// If the use has forced a specific implementation, use that, otherwise, +// figure out the best implementation we can use. +#if !defined(CROARING_ATOMIC_IMPL) +#if defined(__cplusplus) && __cplusplus >= 201103L +#ifdef __has_include +#if __has_include() +#define CROARING_ATOMIC_IMPL CROARING_ATOMIC_IMPL_CPP +#endif //__has_include() +#else + // We lack __has_include to check: +#define CROARING_ATOMIC_IMPL CROARING_ATOMIC_IMPL_CPP +#endif //__has_include +#elif __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_ATOMICS__) +#define CROARING_ATOMIC_IMPL CROARING_ATOMIC_IMPL_C +#elif CROARING_REGULAR_VISUAL_STUDIO + // https://www.technetworkhub.com/c11-atomics-in-visual-studio-2022-version-17/ +#define CROARING_ATOMIC_IMPL CROARING_ATOMIC_IMPL_C_WINDOWS +#endif +#endif // !defined(CROARING_ATOMIC_IMPL) + +#if CROARING_ATOMIC_IMPL == CROARING_ATOMIC_IMPL_C +#include +typedef _Atomic(uint32_t) croaring_refcount_t; + +static inline void croaring_refcount_inc(croaring_refcount_t *val) { + // Increasing the reference counter can always be done with + // memory_order_relaxed: New references to an object can only be formed from + // an existing reference, and passing an existing reference from one thread + // to another must already provide any required synchronization. + atomic_fetch_add_explicit(val, 1, memory_order_relaxed); +} + +static inline bool croaring_refcount_dec(croaring_refcount_t *val) { + // It is important to enforce any possible access to the object in one + // thread (through an existing reference) to happen before deleting the + // object in a different thread. This is achieved by a "release" operation + // after dropping a reference (any access to the object through this + // reference must obviously happened before), and an "acquire" operation + // before deleting the object. + bool is_zero = atomic_fetch_sub_explicit(val, 1, memory_order_release) == 1; + if (is_zero) { + atomic_thread_fence(memory_order_acquire); + } + return is_zero; +} + +static inline uint32_t croaring_refcount_get(const croaring_refcount_t *val) { + return atomic_load_explicit(val, memory_order_relaxed); +} +#elif CROARING_ATOMIC_IMPL == CROARING_ATOMIC_IMPL_CPP +#include +typedef std::atomic croaring_refcount_t; + +static inline void croaring_refcount_inc(croaring_refcount_t *val) { + val->fetch_add(1, std::memory_order_relaxed); +} + +static inline bool croaring_refcount_dec(croaring_refcount_t *val) { + // See above comments on the c11 atomic implementation for memory ordering + bool is_zero = val->fetch_sub(1, std::memory_order_release) == 1; + if (is_zero) { + std::atomic_thread_fence(std::memory_order_acquire); + } + return is_zero; +} + +static inline uint32_t croaring_refcount_get(const croaring_refcount_t *val) { + return val->load(std::memory_order_relaxed); +} +#elif CROARING_ATOMIC_IMPL == CROARING_ATOMIC_IMPL_C_WINDOWS +#include +#pragma intrinsic(_InterlockedIncrement) +#pragma intrinsic(_InterlockedDecrement) + +// _InterlockedIncrement and _InterlockedDecrement take a (signed) long, and +// overflow is defined to wrap, so we can pretend it is a uint32_t for our case +typedef volatile long croaring_refcount_t; + +static inline void croaring_refcount_inc(croaring_refcount_t *val) { + _InterlockedIncrement(val); +} + +static inline bool croaring_refcount_dec(croaring_refcount_t *val) { + return _InterlockedDecrement(val) == 0; +} + +static inline uint32_t croaring_refcount_get(const croaring_refcount_t *val) { + // Per + // https://learn.microsoft.com/en-us/windows/win32/sync/interlocked-variable-access + // > Simple reads and writes to properly-aligned 32-bit variables are atomic + // > operations. In other words, you will not end up with only one portion + // > of the variable updated; all bits are updated in an atomic fashion. + return *val; +} +#elif CROARING_ATOMIC_IMPL == CROARING_ATOMIC_IMPL_NONE +#include +typedef uint32_t croaring_refcount_t; + +static inline void croaring_refcount_inc(croaring_refcount_t *val) { + *val += 1; +} + +static inline bool croaring_refcount_dec(croaring_refcount_t *val) { + assert(*val > 0); + *val -= 1; + return val == 0; +} + +static inline uint32_t croaring_refcount_get(const croaring_refcount_t *val) { + return *val; +} +#else +#error "Unknown atomic implementation" +#endif + +#if defined(__GNUC__) || defined(__clang__) +#define CROARING_DEPRECATED __attribute__((deprecated)) +#else +#define CROARING_DEPRECATED +#endif // defined(__GNUC__) || defined(__clang__) + +// We need portability.h to be included first, +// but we also always want isadetection.h to be +// included (right after). +// See https://github.com/RoaringBitmap/CRoaring/issues/394 +// There is no scenario where we want portability.h to +// be included, but not isadetection.h: the latter is a +// strict requirement. +#include // include it last! +#endif /* INCLUDE_PORTABILITY_H_ */ diff --git a/contrib/libs/croaring/include/roaring/roaring.h b/contrib/libs/croaring/include/roaring/roaring.h new file mode 100644 index 000000000000..295bc3cb33a4 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/roaring.h @@ -0,0 +1,1132 @@ +/* + * An implementation of Roaring Bitmaps in C. + */ + +#ifndef ROARING_H +#define ROARING_H + +#include +#include // for `size_t` +#include + +#include + +// Include other headers after roaring_types.h +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace api { +#endif + +typedef struct roaring_bitmap_s { + roaring_array_t high_low_container; +} roaring_bitmap_t; + +/** + * Dynamically allocates a new bitmap (initially empty). + * Returns NULL if the allocation fails. + * Capacity is a performance hint for how many "containers" the data will need. + * Client is responsible for calling `roaring_bitmap_free()`. + */ +roaring_bitmap_t *roaring_bitmap_create_with_capacity(uint32_t cap); + +/** + * Dynamically allocates a new bitmap (initially empty). + * Returns NULL if the allocation fails. + * Client is responsible for calling `roaring_bitmap_free()`. + */ +inline roaring_bitmap_t *roaring_bitmap_create(void) { + return roaring_bitmap_create_with_capacity(0); +} + +/** + * Initialize a roaring bitmap structure in memory controlled by client. + * Capacity is a performance hint for how many "containers" the data will need. + * Can return false if auxiliary allocations fail when capacity greater than 0. + */ +bool roaring_bitmap_init_with_capacity(roaring_bitmap_t *r, uint32_t cap); + +/** + * Initialize a roaring bitmap structure in memory controlled by client. + * The bitmap will be in a "clear" state, with no auxiliary allocations. + * Since this performs no allocations, the function will not fail. + */ +inline void roaring_bitmap_init_cleared(roaring_bitmap_t *r) { + roaring_bitmap_init_with_capacity(r, 0); +} + +/** + * Add all the values between min (included) and max (excluded) that are at a + * distance k*step from min. + */ +roaring_bitmap_t *roaring_bitmap_from_range(uint64_t min, uint64_t max, + uint32_t step); + +/** + * Creates a new bitmap from a pointer of uint32_t integers + */ +roaring_bitmap_t *roaring_bitmap_of_ptr(size_t n_args, const uint32_t *vals); + +/* + * Whether you want to use copy-on-write. + * Saves memory and avoids copies, but needs more care in a threaded context. + * Most users should ignore this flag. + * + * Note: If you do turn this flag to 'true', enabling COW, then ensure that you + * do so for all of your bitmaps, since interactions between bitmaps with and + * without COW is unsafe. + */ +inline bool roaring_bitmap_get_copy_on_write(const roaring_bitmap_t *r) { + return r->high_low_container.flags & ROARING_FLAG_COW; +} +inline void roaring_bitmap_set_copy_on_write(roaring_bitmap_t *r, bool cow) { + if (cow) { + r->high_low_container.flags |= ROARING_FLAG_COW; + } else { + r->high_low_container.flags &= ~ROARING_FLAG_COW; + } +} + +roaring_bitmap_t *roaring_bitmap_add_offset(const roaring_bitmap_t *bm, + int64_t offset); +/** + * Describe the inner structure of the bitmap. + */ +void roaring_bitmap_printf_describe(const roaring_bitmap_t *r); + +/** + * Creates a new bitmap from a list of uint32_t integers + * + * This function is deprecated, use `roaring_bitmap_from` instead, which + * doesn't require the number of elements to be passed in. + * + * @see roaring_bitmap_from + */ +CROARING_DEPRECATED roaring_bitmap_t *roaring_bitmap_of(size_t n, ...); + +#ifdef __cplusplus +/** + * Creates a new bitmap which contains all values passed in as arguments. + * + * To create a bitmap from a variable number of arguments, use the + * `roaring_bitmap_of_ptr` function instead. + */ +// Use an immediately invoked closure, capturing by reference +// (in case __VA_ARGS__ refers to context outside the closure) +// Include a 0 at the beginning of the array to make the array length > 0 +// (zero sized arrays are not valid in standard c/c++) +#define roaring_bitmap_from(...) \ + [&]() { \ + const uint32_t roaring_bitmap_from_array[] = {0, __VA_ARGS__}; \ + return roaring_bitmap_of_ptr((sizeof(roaring_bitmap_from_array) / \ + sizeof(roaring_bitmap_from_array[0])) - \ + 1, \ + &roaring_bitmap_from_array[1]); \ + }() +#else +/** + * Creates a new bitmap which contains all values passed in as arguments. + * + * To create a bitmap from a variable number of arguments, use the + * `roaring_bitmap_of_ptr` function instead. + */ +// While __VA_ARGS__ occurs twice in expansion, one of the times is in a sizeof +// expression, which is an unevaluated context, so it's even safe in the case +// where expressions passed have side effects (roaring64_bitmap_from(my_func(), +// ++i)) +// Include a 0 at the beginning of the array to make the array length > 0 +// (zero sized arrays are not valid in standard c/c++) +#define roaring_bitmap_from(...) \ + roaring_bitmap_of_ptr( \ + (sizeof((const uint32_t[]){0, __VA_ARGS__}) / sizeof(uint32_t)) - 1, \ + &((const uint32_t[]){0, __VA_ARGS__})[1]) +#endif + +/** + * Copies a bitmap (this does memory allocation). + * The caller is responsible for memory management. + */ +roaring_bitmap_t *roaring_bitmap_copy(const roaring_bitmap_t *r); + +/** + * Copies a bitmap from src to dest. It is assumed that the pointer dest + * is to an already allocated bitmap. The content of the dest bitmap is + * freed/deleted. + * + * It might be preferable and simpler to call roaring_bitmap_copy except + * that roaring_bitmap_overwrite can save on memory allocations. + * + * Returns true if successful, or false if there was an error. On failure, + * the dest bitmap is left in a valid, empty state (even if it was not empty + * before). + */ +bool roaring_bitmap_overwrite(roaring_bitmap_t *dest, + const roaring_bitmap_t *src); + +/** + * Print the content of the bitmap. + */ +void roaring_bitmap_printf(const roaring_bitmap_t *r); + +/** + * Computes the intersection between two bitmaps and returns new bitmap. The + * caller is responsible for memory management. + * + * Performance hint: if you are computing the intersection between several + * bitmaps, two-by-two, it is best to start with the smallest bitmap. + * You may also rely on roaring_bitmap_and_inplace to avoid creating + * many temporary bitmaps. + */ +roaring_bitmap_t *roaring_bitmap_and(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Computes the size of the intersection between two bitmaps. + */ +uint64_t roaring_bitmap_and_cardinality(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Check whether two bitmaps intersect. + */ +bool roaring_bitmap_intersect(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Check whether a bitmap and an open range intersect. + */ +bool roaring_bitmap_intersect_with_range(const roaring_bitmap_t *bm, uint64_t x, + uint64_t y); + +/** + * Computes the Jaccard index between two bitmaps. (Also known as the Tanimoto + * distance, or the Jaccard similarity coefficient) + * + * The Jaccard index is undefined if both bitmaps are empty. + */ +double roaring_bitmap_jaccard_index(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Computes the size of the union between two bitmaps. + */ +uint64_t roaring_bitmap_or_cardinality(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Computes the size of the difference (andnot) between two bitmaps. + */ +uint64_t roaring_bitmap_andnot_cardinality(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Computes the size of the symmetric difference (xor) between two bitmaps. + */ +uint64_t roaring_bitmap_xor_cardinality(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Inplace version of `roaring_bitmap_and()`, modifies r1 + * r1 == r2 is allowed. + * + * Performance hint: if you are computing the intersection between several + * bitmaps, two-by-two, it is best to start with the smallest bitmap. + */ +void roaring_bitmap_and_inplace(roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Computes the union between two bitmaps and returns new bitmap. The caller is + * responsible for memory management. + */ +roaring_bitmap_t *roaring_bitmap_or(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Inplace version of `roaring_bitmap_or(), modifies r1. + * TODO: decide whether r1 == r2 ok + */ +void roaring_bitmap_or_inplace(roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Compute the union of 'number' bitmaps. + * Caller is responsible for freeing the result. + * See also `roaring_bitmap_or_many_heap()` + */ +roaring_bitmap_t *roaring_bitmap_or_many(size_t number, + const roaring_bitmap_t **rs); + +/** + * Compute the union of 'number' bitmaps using a heap. This can sometimes be + * faster than `roaring_bitmap_or_many() which uses a naive algorithm. + * Caller is responsible for freeing the result. + */ +roaring_bitmap_t *roaring_bitmap_or_many_heap(uint32_t number, + const roaring_bitmap_t **rs); + +/** + * Computes the symmetric difference (xor) between two bitmaps + * and returns new bitmap. The caller is responsible for memory management. + */ +roaring_bitmap_t *roaring_bitmap_xor(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Inplace version of roaring_bitmap_xor, modifies r1, r1 != r2. + */ +void roaring_bitmap_xor_inplace(roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Compute the xor of 'number' bitmaps. + * Caller is responsible for freeing the result. + */ +roaring_bitmap_t *roaring_bitmap_xor_many(size_t number, + const roaring_bitmap_t **rs); + +/** + * Computes the difference (andnot) between two bitmaps and returns new bitmap. + * Caller is responsible for freeing the result. + */ +roaring_bitmap_t *roaring_bitmap_andnot(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Inplace version of roaring_bitmap_andnot, modifies r1, r1 != r2. + */ +void roaring_bitmap_andnot_inplace(roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * TODO: consider implementing: + * + * "Compute the xor of 'number' bitmaps using a heap. This can sometimes be + * faster than roaring_bitmap_xor_many which uses a naive algorithm. Caller is + * responsible for freeing the result."" + * + * roaring_bitmap_t *roaring_bitmap_xor_many_heap(uint32_t number, + * const roaring_bitmap_t **rs); + */ + +/** + * Frees the memory. + */ +void roaring_bitmap_free(const roaring_bitmap_t *r); + +/** + * A bit of context usable with `roaring_bitmap_*_bulk()` functions + * + * Should be initialized with `{0}` (or `memset()` to all zeros). + * Callers should treat it as an opaque type. + * + * A context may only be used with a single bitmap + * (unless re-initialized to zero), and any modification to a bitmap + * (other than modifications performed with `_bulk()` functions with the context + * passed) will invalidate any contexts associated with that bitmap. + */ +typedef struct roaring_bulk_context_s { + ROARING_CONTAINER_T *container; + int idx; + uint16_t key; + uint8_t typecode; +} roaring_bulk_context_t; + +/** + * Add an item, using context from a previous insert for speed optimization. + * + * `context` will be used to store information between calls to make bulk + * operations faster. `*context` should be zero-initialized before the first + * call to this function. + * + * Modifying the bitmap in any way (other than `-bulk` suffixed functions) + * will invalidate the stored context, calling this function with a non-zero + * context after doing any modification invokes undefined behavior. + * + * In order to exploit this optimization, the caller should call this function + * with values with the same "key" (high 16 bits of the value) consecutively. + */ +void roaring_bitmap_add_bulk(roaring_bitmap_t *r, + roaring_bulk_context_t *context, uint32_t val); + +/** + * Add value n_args from pointer vals, faster than repeatedly calling + * `roaring_bitmap_add()` + * + * In order to exploit this optimization, the caller should attempt to keep + * values with the same "key" (high 16 bits of the value) as consecutive + * elements in `vals` + */ +void roaring_bitmap_add_many(roaring_bitmap_t *r, size_t n_args, + const uint32_t *vals); + +/** + * Add value x + */ +void roaring_bitmap_add(roaring_bitmap_t *r, uint32_t x); + +/** + * Add value x + * Returns true if a new value was added, false if the value already existed. + */ +bool roaring_bitmap_add_checked(roaring_bitmap_t *r, uint32_t x); + +/** + * Add all values in range [min, max] + */ +void roaring_bitmap_add_range_closed(roaring_bitmap_t *r, uint32_t min, + uint32_t max); + +/** + * Add all values in range [min, max) + */ +inline void roaring_bitmap_add_range(roaring_bitmap_t *r, uint64_t min, + uint64_t max) { + if (max <= min) return; + roaring_bitmap_add_range_closed(r, (uint32_t)min, (uint32_t)(max - 1)); +} + +/** + * Remove value x + */ +void roaring_bitmap_remove(roaring_bitmap_t *r, uint32_t x); + +/** + * Remove all values in range [min, max] + */ +void roaring_bitmap_remove_range_closed(roaring_bitmap_t *r, uint32_t min, + uint32_t max); + +/** + * Remove all values in range [min, max) + */ +inline void roaring_bitmap_remove_range(roaring_bitmap_t *r, uint64_t min, + uint64_t max) { + if (max <= min) return; + roaring_bitmap_remove_range_closed(r, (uint32_t)min, (uint32_t)(max - 1)); +} + +/** + * Remove multiple values + */ +void roaring_bitmap_remove_many(roaring_bitmap_t *r, size_t n_args, + const uint32_t *vals); + +/** + * Remove value x + * Returns true if a new value was removed, false if the value was not existing. + */ +bool roaring_bitmap_remove_checked(roaring_bitmap_t *r, uint32_t x); + +/** + * Check if value is present + */ +bool roaring_bitmap_contains(const roaring_bitmap_t *r, uint32_t val); + +/** + * Check whether a range of values from range_start (included) + * to range_end (excluded) is present + */ +bool roaring_bitmap_contains_range(const roaring_bitmap_t *r, + uint64_t range_start, uint64_t range_end); + +/** + * Check if an items is present, using context from a previous insert or search + * for speed optimization. + * + * `context` will be used to store information between calls to make bulk + * operations faster. `*context` should be zero-initialized before the first + * call to this function. + * + * Modifying the bitmap in any way (other than `-bulk` suffixed functions) + * will invalidate the stored context, calling this function with a non-zero + * context after doing any modification invokes undefined behavior. + * + * In order to exploit this optimization, the caller should call this function + * with values with the same "key" (high 16 bits of the value) consecutively. + */ +bool roaring_bitmap_contains_bulk(const roaring_bitmap_t *r, + roaring_bulk_context_t *context, + uint32_t val); + +/** + * Get the cardinality of the bitmap (number of elements). + */ +uint64_t roaring_bitmap_get_cardinality(const roaring_bitmap_t *r); + +/** + * Returns the number of elements in the range [range_start, range_end). + */ +uint64_t roaring_bitmap_range_cardinality(const roaring_bitmap_t *r, + uint64_t range_start, + uint64_t range_end); + +/** + * Returns true if the bitmap is empty (cardinality is zero). + */ +bool roaring_bitmap_is_empty(const roaring_bitmap_t *r); + +/** + * Empties the bitmap. It will have no auxiliary allocations (so if the bitmap + * was initialized in client memory via roaring_bitmap_init(), then a call to + * roaring_bitmap_clear() would be enough to "free" it) + */ +void roaring_bitmap_clear(roaring_bitmap_t *r); + +/** + * Convert the bitmap to a sorted array, output in `ans`. + * + * Caller is responsible to ensure that there is enough memory allocated, e.g. + * + * ans = malloc(roaring_bitmap_get_cardinality(bitmap) * sizeof(uint32_t)); + */ +void roaring_bitmap_to_uint32_array(const roaring_bitmap_t *r, uint32_t *ans); + +/** + * Store the bitmap to a bitset. This can be useful for people + * who need the performance and simplicity of a standard bitset. + * We assume that the input bitset is originally empty (does not + * have any set bit). + * + * bitset_t * out = bitset_create(); + * // if the bitset has content in it, call "bitset_clear(out)" + * bool success = roaring_bitmap_to_bitset(mybitmap, out); + * // on failure, success will be false. + * // You can then query the bitset: + * bool is_present = bitset_get(out, 10011 ); + * // you must free the memory: + * bitset_free(out); + * + */ +bool roaring_bitmap_to_bitset(const roaring_bitmap_t *r, bitset_t *bitset); + +/** + * Convert the bitmap to a sorted array from `offset` by `limit`, output in + * `ans`. + * + * Caller is responsible to ensure that there is enough memory allocated, e.g. + * + * ans = malloc(roaring_bitmap_get_cardinality(limit) * sizeof(uint32_t)); + * + * Return false in case of failure (e.g., insufficient memory) + */ +bool roaring_bitmap_range_uint32_array(const roaring_bitmap_t *r, size_t offset, + size_t limit, uint32_t *ans); + +/** + * Remove run-length encoding even when it is more space efficient. + * Return whether a change was applied. + */ +bool roaring_bitmap_remove_run_compression(roaring_bitmap_t *r); + +/** + * Convert array and bitmap containers to run containers when it is more + * efficient; also convert from run containers when more space efficient. + * + * Returns true if the result has at least one run container. + * Additional savings might be possible by calling `shrinkToFit()`. + */ +bool roaring_bitmap_run_optimize(roaring_bitmap_t *r); + +/** + * If needed, reallocate memory to shrink the memory usage. + * Returns the number of bytes saved. + */ +size_t roaring_bitmap_shrink_to_fit(roaring_bitmap_t *r); + +/** + * Write the bitmap to an output pointer, this output buffer should refer to + * at least `roaring_bitmap_size_in_bytes(r)` allocated bytes. + * + * See `roaring_bitmap_portable_serialize()` if you want a format that's + * compatible with Java and Go implementations. This format can sometimes be + * more space efficient than the portable form, e.g. when the data is sparse. + * + * Returns how many bytes written, should be `roaring_bitmap_size_in_bytes(r)`. + * + * This function is endian-sensitive. If you have a big-endian system (e.g., a + * mainframe IBM s390x), the data format is going to be big-endian and not + * compatible with little-endian systems. + */ +size_t roaring_bitmap_serialize(const roaring_bitmap_t *r, char *buf); + +/** + * Use with `roaring_bitmap_serialize()`. + * + * (See `roaring_bitmap_portable_deserialize()` if you want a format that's + * compatible with Java and Go implementations). + * + * This function is endian-sensitive. If you have a big-endian system (e.g., a + * mainframe IBM s390x), the data format is going to be big-endian and not + * compatible with little-endian systems. + */ +roaring_bitmap_t *roaring_bitmap_deserialize(const void *buf); + +/** + * Use with `roaring_bitmap_serialize()`. + * + * (See `roaring_bitmap_portable_deserialize_safe()` if you want a format that's + * compatible with Java and Go implementations). + * + * This function is endian-sensitive. If you have a big-endian system (e.g., a + * mainframe IBM s390x), the data format is going to be big-endian and not + * compatible with little-endian systems. + * + * The difference with `roaring_bitmap_deserialize()` is that this function + * checks that the input buffer is a valid bitmap. If the buffer is too small, + * NULL is returned. + */ +roaring_bitmap_t *roaring_bitmap_deserialize_safe(const void *buf, + size_t maxbytes); + +/** + * How many bytes are required to serialize this bitmap (NOT compatible + * with Java and Go versions) + */ +size_t roaring_bitmap_size_in_bytes(const roaring_bitmap_t *r); + +/** + * Read bitmap from a serialized buffer. + * In case of failure, NULL is returned. + * + * This function is unsafe in the sense that if there is no valid serialized + * bitmap at the pointer, then many bytes could be read, possibly causing a + * buffer overflow. See also roaring_bitmap_portable_deserialize_safe(). + * + * This is meant to be compatible with the Java and Go versions: + * https://github.com/RoaringBitmap/RoaringFormatSpec + * + * This function is endian-sensitive. If you have a big-endian system (e.g., a + * mainframe IBM s390x), the data format is going to be big-endian and not + * compatible with little-endian systems. + */ +roaring_bitmap_t *roaring_bitmap_portable_deserialize(const char *buf); + +/** + * Read bitmap from a serialized buffer safely (reading up to maxbytes). + * In case of failure, NULL is returned. + * + * This is meant to be compatible with the Java and Go versions: + * https://github.com/RoaringBitmap/RoaringFormatSpec + * + * The function itself is safe in the sense that it will not cause buffer + * overflows. However, for correct operations, it is assumed that the bitmap + * read was once serialized from a valid bitmap (i.e., it follows the format + * specification). If you provided an incorrect input (garbage), then the bitmap + * read may not be in a valid state and following operations may not lead to + * sensible results. In particular, the serialized array containers need to be + * in sorted order, and the run containers should be in sorted non-overlapping + * order. This is is guaranteed to happen when serializing an existing bitmap, + * but not for random inputs. + * + * You may use roaring_bitmap_internal_validate to check the validity of the + * bitmap prior to using it. You may also use other strategies to check for + * corrupted inputs (e.g., checksums). + * + * This function is endian-sensitive. If you have a big-endian system (e.g., a + * mainframe IBM s390x), the data format is going to be big-endian and not + * compatible with little-endian systems. + */ +roaring_bitmap_t *roaring_bitmap_portable_deserialize_safe(const char *buf, + size_t maxbytes); + +/** + * Read bitmap from a serialized buffer. + * In case of failure, NULL is returned. + * + * Bitmap returned by this function can be used in all readonly contexts. + * Bitmap must be freed as usual, by calling roaring_bitmap_free(). + * Underlying buffer must not be freed or modified while it backs any bitmaps. + * + * The function is unsafe in the following ways: + * 1) It may execute unaligned memory accesses. + * 2) A buffer overflow may occur if buf does not point to a valid serialized + * bitmap. + * + * This is meant to be compatible with the Java and Go versions: + * https://github.com/RoaringBitmap/RoaringFormatSpec + * + * This function is endian-sensitive. If you have a big-endian system (e.g., a + * mainframe IBM s390x), the data format is going to be big-endian and not + * compatible with little-endian systems. + */ +roaring_bitmap_t *roaring_bitmap_portable_deserialize_frozen(const char *buf); + +/** + * Check how many bytes would be read (up to maxbytes) at this pointer if there + * is a bitmap, returns zero if there is no valid bitmap. + * + * This is meant to be compatible with the Java and Go versions: + * https://github.com/RoaringBitmap/RoaringFormatSpec + */ +size_t roaring_bitmap_portable_deserialize_size(const char *buf, + size_t maxbytes); + +/** + * How many bytes are required to serialize this bitmap. + * + * This is meant to be compatible with the Java and Go versions: + * https://github.com/RoaringBitmap/RoaringFormatSpec + */ +size_t roaring_bitmap_portable_size_in_bytes(const roaring_bitmap_t *r); + +/** + * Write a bitmap to a char buffer. The output buffer should refer to at least + * `roaring_bitmap_portable_size_in_bytes(r)` bytes of allocated memory. + * + * Returns how many bytes were written which should match + * `roaring_bitmap_portable_size_in_bytes(r)`. + * + * This is meant to be compatible with the Java and Go versions: + * https://github.com/RoaringBitmap/RoaringFormatSpec + * + * This function is endian-sensitive. If you have a big-endian system (e.g., a + * mainframe IBM s390x), the data format is going to be big-endian and not + * compatible with little-endian systems. + */ +size_t roaring_bitmap_portable_serialize(const roaring_bitmap_t *r, char *buf); + +/* + * "Frozen" serialization format imitates memory layout of roaring_bitmap_t. + * Deserialized bitmap is a constant view of the underlying buffer. + * This significantly reduces amount of allocations and copying required during + * deserialization. + * It can be used with memory mapped files. + * Example can be found in benchmarks/frozen_benchmark.c + * + * [#####] const roaring_bitmap_t * + * | | | + * +----+ | +-+ + * | | | + * [#####################################] underlying buffer + * + * Note that because frozen serialization format imitates C memory layout + * of roaring_bitmap_t, it is not fixed. It is different on big/little endian + * platforms and can be changed in future. + */ + +/** + * Returns number of bytes required to serialize bitmap using frozen format. + */ +size_t roaring_bitmap_frozen_size_in_bytes(const roaring_bitmap_t *r); + +/** + * Serializes bitmap using frozen format. + * Buffer size must be at least roaring_bitmap_frozen_size_in_bytes(). + * + * This function is endian-sensitive. If you have a big-endian system (e.g., a + * mainframe IBM s390x), the data format is going to be big-endian and not + * compatible with little-endian systems. + */ +void roaring_bitmap_frozen_serialize(const roaring_bitmap_t *r, char *buf); + +/** + * Creates constant bitmap that is a view of a given buffer. + * Buffer data should have been written by `roaring_bitmap_frozen_serialize()` + * Its beginning must also be aligned by 32 bytes. + * Length must be equal exactly to `roaring_bitmap_frozen_size_in_bytes()`. + * In case of failure, NULL is returned. + * + * Bitmap returned by this function can be used in all readonly contexts. + * Bitmap must be freed as usual, by calling roaring_bitmap_free(). + * Underlying buffer must not be freed or modified while it backs any bitmaps. + * + * This function is endian-sensitive. If you have a big-endian system (e.g., a + * mainframe IBM s390x), the data format is going to be big-endian and not + * compatible with little-endian systems. + */ +const roaring_bitmap_t *roaring_bitmap_frozen_view(const char *buf, + size_t length); + +/** + * Iterate over the bitmap elements. The function iterator is called once for + * all the values with ptr (can be NULL) as the second parameter of each call. + * + * `roaring_iterator` is simply a pointer to a function that returns bool + * (true means that the iteration should continue while false means that it + * should stop), and takes (uint32_t,void*) as inputs. + * + * Returns true if the roaring_iterator returned true throughout (so that all + * data points were necessarily visited). + * + * Iteration is ordered: from the smallest to the largest elements. + */ +bool roaring_iterate(const roaring_bitmap_t *r, roaring_iterator iterator, + void *ptr); + +bool roaring_iterate64(const roaring_bitmap_t *r, roaring_iterator64 iterator, + uint64_t high_bits, void *ptr); + +/** + * Return true if the two bitmaps contain the same elements. + */ +bool roaring_bitmap_equals(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Return true if all the elements of r1 are also in r2. + */ +bool roaring_bitmap_is_subset(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Return true if all the elements of r1 are also in r2, and r2 is strictly + * greater than r1. + */ +bool roaring_bitmap_is_strict_subset(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * (For expert users who seek high performance.) + * + * Computes the union between two bitmaps and returns new bitmap. The caller is + * responsible for memory management. + * + * The lazy version defers some computations such as the maintenance of the + * cardinality counts. Thus you must call `roaring_bitmap_repair_after_lazy()` + * after executing "lazy" computations. + * + * It is safe to repeatedly call roaring_bitmap_lazy_or_inplace on the result. + * + * `bitsetconversion` is a flag which determines whether container-container + * operations force a bitset conversion. + */ +roaring_bitmap_t *roaring_bitmap_lazy_or(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2, + const bool bitsetconversion); + +/** + * (For expert users who seek high performance.) + * + * Inplace version of roaring_bitmap_lazy_or, modifies r1. + * + * `bitsetconversion` is a flag which determines whether container-container + * operations force a bitset conversion. + */ +void roaring_bitmap_lazy_or_inplace(roaring_bitmap_t *r1, + const roaring_bitmap_t *r2, + const bool bitsetconversion); + +/** + * (For expert users who seek high performance.) + * + * Execute maintenance on a bitmap created from `roaring_bitmap_lazy_or()` + * or modified with `roaring_bitmap_lazy_or_inplace()`. + */ +void roaring_bitmap_repair_after_lazy(roaring_bitmap_t *r1); + +/** + * Computes the symmetric difference between two bitmaps and returns new bitmap. + * The caller is responsible for memory management. + * + * The lazy version defers some computations such as the maintenance of the + * cardinality counts. Thus you must call `roaring_bitmap_repair_after_lazy()` + * after executing "lazy" computations. + * + * It is safe to repeatedly call `roaring_bitmap_lazy_xor_inplace()` on + * the result. + */ +roaring_bitmap_t *roaring_bitmap_lazy_xor(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * (For expert users who seek high performance.) + * + * Inplace version of roaring_bitmap_lazy_xor, modifies r1. r1 != r2 + */ +void roaring_bitmap_lazy_xor_inplace(roaring_bitmap_t *r1, + const roaring_bitmap_t *r2); + +/** + * Compute the negation of the bitmap in the interval [range_start, range_end). + * The number of negated values is range_end - range_start. + * Areas outside the range are passed through unchanged. + */ +roaring_bitmap_t *roaring_bitmap_flip(const roaring_bitmap_t *r1, + uint64_t range_start, uint64_t range_end); + +/** + * compute (in place) the negation of the roaring bitmap within a specified + * interval: [range_start, range_end). The number of negated values is + * range_end - range_start. + * Areas outside the range are passed through unchanged. + */ +void roaring_bitmap_flip_inplace(roaring_bitmap_t *r1, uint64_t range_start, + uint64_t range_end); + +/** + * Selects the element at index 'rank' where the smallest element is at index 0. + * If the size of the roaring bitmap is strictly greater than rank, then this + * function returns true and sets element to the element of given rank. + * Otherwise, it returns false. + */ +bool roaring_bitmap_select(const roaring_bitmap_t *r, uint32_t rank, + uint32_t *element); + +/** + * roaring_bitmap_rank returns the number of integers that are smaller or equal + * to x. Thus if x is the first element, this function will return 1. If + * x is smaller than the smallest element, this function will return 0. + * + * The indexing convention differs between roaring_bitmap_select and + * roaring_bitmap_rank: roaring_bitmap_select refers to the smallest value + * as having index 0, whereas roaring_bitmap_rank returns 1 when ranking + * the smallest value. + */ +uint64_t roaring_bitmap_rank(const roaring_bitmap_t *r, uint32_t x); + +/** + * roaring_bitmap_rank_many is an `Bulk` version of `roaring_bitmap_rank` + * it puts rank value of each element in `[begin .. end)` to `ans[]` + * + * the values in `[begin .. end)` must be sorted in Ascending order; + * Caller is responsible to ensure that there is enough memory allocated, e.g. + * + * ans = malloc((end-begin) * sizeof(uint64_t)); + */ +void roaring_bitmap_rank_many(const roaring_bitmap_t *r, const uint32_t *begin, + const uint32_t *end, uint64_t *ans); + +/** + * Returns the index of x in the given roaring bitmap. + * If the roaring bitmap doesn't contain x , this function will return -1. + * The difference with rank function is that this function will return -1 when x + * is not the element of roaring bitmap, but the rank function will return a + * non-negative number. + */ +int64_t roaring_bitmap_get_index(const roaring_bitmap_t *r, uint32_t x); + +/** + * Returns the smallest value in the set, or UINT32_MAX if the set is empty. + */ +uint32_t roaring_bitmap_minimum(const roaring_bitmap_t *r); + +/** + * Returns the greatest value in the set, or 0 if the set is empty. + */ +uint32_t roaring_bitmap_maximum(const roaring_bitmap_t *r); + +/** + * (For advanced users.) + * + * Collect statistics about the bitmap, see roaring_types.h for + * a description of roaring_statistics_t + */ +void roaring_bitmap_statistics(const roaring_bitmap_t *r, + roaring_statistics_t *stat); + +/** + * Perform internal consistency checks. Returns true if the bitmap is + * consistent. It may be useful to call this after deserializing bitmaps from + * untrusted sources. If roaring_bitmap_internal_validate returns true, then the + * bitmap should be consistent and can be trusted not to cause crashes or memory + * corruption. + * + * Note that some operations intentionally leave bitmaps in an inconsistent + * state temporarily, for example, `roaring_bitmap_lazy_*` functions, until + * `roaring_bitmap_repair_after_lazy` is called. + * + * If reason is non-null, it will be set to a string describing the first + * inconsistency found if any. + */ +bool roaring_bitmap_internal_validate(const roaring_bitmap_t *r, + const char **reason); + +/********************* +* What follows is code use to iterate through values in a roaring bitmap + +roaring_bitmap_t *r =... +roaring_uint32_iterator_t i; +roaring_iterator_create(r, &i); +while(i.has_value) { + printf("value = %d\n", i.current_value); + roaring_uint32_iterator_advance(&i); +} + +Obviously, if you modify the underlying bitmap, the iterator +becomes invalid. So don't. +*/ + +/** + * A struct used to keep iterator state. Users should only access + * `current_value` and `has_value`, the rest of the type should be treated as + * opaque. + */ +typedef struct roaring_uint32_iterator_s { + const roaring_bitmap_t *parent; // Owner + const ROARING_CONTAINER_T *container; // Current container + uint8_t typecode; // Typecode of current container + int32_t container_index; // Current container index + uint32_t highbits; // High 16 bits of the current value + roaring_container_iterator_t container_it; + + uint32_t current_value; + bool has_value; +} roaring_uint32_iterator_t; + +/** + * Initialize an iterator object that can be used to iterate through the values. + * If there is a value, then this iterator points to the first value and + * `it->has_value` is true. The value is in `it->current_value`. + */ +void roaring_iterator_init(const roaring_bitmap_t *r, + roaring_uint32_iterator_t *newit); + +/** DEPRECATED, use `roaring_iterator_init`. */ +CROARING_DEPRECATED static inline void roaring_init_iterator( + const roaring_bitmap_t *r, roaring_uint32_iterator_t *newit) { + roaring_iterator_init(r, newit); +} + +/** + * Initialize an iterator object that can be used to iterate through the values. + * If there is a value, then this iterator points to the last value and + * `it->has_value` is true. The value is in `it->current_value`. + */ +void roaring_iterator_init_last(const roaring_bitmap_t *r, + roaring_uint32_iterator_t *newit); + +/** DEPRECATED, use `roaring_iterator_init_last`. */ +CROARING_DEPRECATED static inline void roaring_init_iterator_last( + const roaring_bitmap_t *r, roaring_uint32_iterator_t *newit) { + roaring_iterator_init_last(r, newit); +} + +/** + * Create an iterator object that can be used to iterate through the values. + * Caller is responsible for calling `roaring_free_iterator()`. + * + * The iterator is initialized (this function calls `roaring_iterator_init()`) + * If there is a value, then this iterator points to the first value and + * `it->has_value` is true. The value is in `it->current_value`. + */ +roaring_uint32_iterator_t *roaring_iterator_create(const roaring_bitmap_t *r); + +/** DEPRECATED, use `roaring_iterator_create`. */ +CROARING_DEPRECATED static inline roaring_uint32_iterator_t * +roaring_create_iterator(const roaring_bitmap_t *r) { + return roaring_iterator_create(r); +} + +/** + * Advance the iterator. If there is a new value, then `it->has_value` is true. + * The new value is in `it->current_value`. Values are traversed in increasing + * orders. For convenience, returns `it->has_value`. + * + * Once `it->has_value` is false, `roaring_uint32_iterator_advance` should not + * be called on the iterator again. Calling `roaring_uint32_iterator_previous` + * is allowed. + */ +bool roaring_uint32_iterator_advance(roaring_uint32_iterator_t *it); + +/** DEPRECATED, use `roaring_uint32_iterator_advance`. */ +CROARING_DEPRECATED static inline bool roaring_advance_uint32_iterator( + roaring_uint32_iterator_t *it) { + return roaring_uint32_iterator_advance(it); +} + +/** + * Decrement the iterator. If there's a new value, then `it->has_value` is true. + * The new value is in `it->current_value`. Values are traversed in decreasing + * order. For convenience, returns `it->has_value`. + * + * Once `it->has_value` is false, `roaring_uint32_iterator_previous` should not + * be called on the iterator again. Calling `roaring_uint32_iterator_advance` is + * allowed. + */ +bool roaring_uint32_iterator_previous(roaring_uint32_iterator_t *it); + +/** DEPRECATED, use `roaring_uint32_iterator_previous`. */ +CROARING_DEPRECATED static inline bool roaring_previous_uint32_iterator( + roaring_uint32_iterator_t *it) { + return roaring_uint32_iterator_previous(it); +} + +/** + * Move the iterator to the first value >= `val`. If there is a such a value, + * then `it->has_value` is true. The new value is in `it->current_value`. + * For convenience, returns `it->has_value`. + */ +bool roaring_uint32_iterator_move_equalorlarger(roaring_uint32_iterator_t *it, + uint32_t val); + +/** DEPRECATED, use `roaring_uint32_iterator_move_equalorlarger`. */ +CROARING_DEPRECATED static inline bool +roaring_move_uint32_iterator_equalorlarger(roaring_uint32_iterator_t *it, + uint32_t val) { + return roaring_uint32_iterator_move_equalorlarger(it, val); +} + +/** + * Creates a copy of an iterator. + * Caller must free it. + */ +roaring_uint32_iterator_t *roaring_uint32_iterator_copy( + const roaring_uint32_iterator_t *it); + +/** DEPRECATED, use `roaring_uint32_iterator_copy`. */ +CROARING_DEPRECATED static inline roaring_uint32_iterator_t * +roaring_copy_uint32_iterator(const roaring_uint32_iterator_t *it) { + return roaring_uint32_iterator_copy(it); +} + +/** + * Free memory following `roaring_iterator_create()` + */ +void roaring_uint32_iterator_free(roaring_uint32_iterator_t *it); + +/** DEPRECATED, use `roaring_uint32_iterator_free`. */ +CROARING_DEPRECATED static inline void roaring_free_uint32_iterator( + roaring_uint32_iterator_t *it) { + roaring_uint32_iterator_free(it); +} + +/* + * Reads next ${count} values from iterator into user-supplied ${buf}. + * Returns the number of read elements. + * This number can be smaller than ${count}, which means that iterator is + * drained. + * + * This function satisfies semantics of iteration and can be used together with + * other iterator functions. + * - first value is copied from ${it}->current_value + * - after function returns, iterator is positioned at the next element + */ +uint32_t roaring_uint32_iterator_read(roaring_uint32_iterator_t *it, + uint32_t *buf, uint32_t count); + +/** DEPRECATED, use `roaring_uint32_iterator_read`. */ +CROARING_DEPRECATED static inline uint32_t roaring_read_uint32_iterator( + roaring_uint32_iterator_t *it, uint32_t *buf, uint32_t count) { + return roaring_uint32_iterator_read(it, buf, count); +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace api { +#endif + +#endif /* ROARING_H */ + +#ifdef __cplusplus +/** + * Best practices for C++ headers is to avoid polluting global scope. + * But for C compatibility when just `roaring.h` is included building as + * C++, default to global access for the C public API. + * + * BUT when `roaring.hh` is included instead, it sets this flag. That way + * explicit namespacing must be used to get the C functions. + * + * This is outside the include guard so that if you include BOTH headers, + * the order won't matter; you still get the global definitions. + */ +#if !defined(ROARING_API_NOT_IN_GLOBAL_NAMESPACE) +using namespace ::roaring::api; +#endif +#endif diff --git a/contrib/libs/croaring/include/roaring/roaring64.h b/contrib/libs/croaring/include/roaring/roaring64.h new file mode 100644 index 000000000000..cd73ba604a01 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/roaring64.h @@ -0,0 +1,657 @@ +#ifndef ROARING64_H +#define ROARING64_H + +#include +#include +#include + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace api { +#endif + +typedef struct roaring64_bitmap_s roaring64_bitmap_t; +typedef struct roaring64_leaf_s roaring64_leaf_t; +typedef struct roaring64_iterator_s roaring64_iterator_t; + +/** + * A bit of context usable with `roaring64_bitmap_*_bulk()` functions. + * + * Should be initialized with `{0}` (or `memset()` to all zeros). + * Callers should treat it as an opaque type. + * + * A context may only be used with a single bitmap (unless re-initialized to + * zero), and any modification to a bitmap (other than modifications performed + * with `_bulk()` functions with the context passed) will invalidate any + * contexts associated with that bitmap. + */ +typedef struct roaring64_bulk_context_s { + uint8_t high_bytes[6]; + roaring64_leaf_t *leaf; +} roaring64_bulk_context_t; + +/** + * Dynamically allocates a new bitmap (initially empty). + * Client is responsible for calling `roaring64_bitmap_free()`. + */ +roaring64_bitmap_t *roaring64_bitmap_create(void); +void roaring64_bitmap_free(roaring64_bitmap_t *r); + +/** + * Returns a copy of a bitmap. + */ +roaring64_bitmap_t *roaring64_bitmap_copy(const roaring64_bitmap_t *r); + +/** + * Creates a new bitmap of a pointer to N 64-bit integers. + */ +roaring64_bitmap_t *roaring64_bitmap_of_ptr(size_t n_args, + const uint64_t *vals); + +#ifdef __cplusplus +/** + * Creates a new bitmap which contains all values passed in as arguments. + * + * To create a bitmap from a variable number of arguments, use the + * `roaring64_bitmap_of_ptr` function instead. + */ +// Use an immediately invoked closure, capturing by reference +// (in case __VA_ARGS__ refers to context outside the closure) +// Include a 0 at the beginning of the array to make the array length > 0 +// (zero sized arrays are not valid in standard c/c++) +#define roaring64_bitmap_from(...) \ + [&]() { \ + const uint64_t roaring64_bitmap_from_array[] = {0, __VA_ARGS__}; \ + return roaring64_bitmap_of_ptr( \ + (sizeof(roaring64_bitmap_from_array) / \ + sizeof(roaring64_bitmap_from_array[0])) - \ + 1, \ + &roaring64_bitmap_from_array[1]); \ + }() +#else +/** + * Creates a new bitmap which contains all values passed in as arguments. + * + * To create a bitmap from a variable number of arguments, use the + * `roaring64_bitmap_of_ptr` function instead. + */ +// While __VA_ARGS__ occurs twice in expansion, one of the times is in a sizeof +// expression, which is an unevaluated context, so it's even safe in the case +// where expressions passed have side effects (roaring64_bitmap_from(my_func(), +// ++i)) +// Include a 0 at the beginning of the array to make the array length > 0 +// (zero sized arrays are not valid in standard c/c++) +#define roaring64_bitmap_from(...) \ + roaring64_bitmap_of_ptr( \ + (sizeof((const uint64_t[]){0, __VA_ARGS__}) / sizeof(uint64_t)) - 1, \ + &((const uint64_t[]){0, __VA_ARGS__})[1]) +#endif + +/** + * Create a new bitmap containing all the values in [min, max) that are at a + * distance k*step from min. + */ +roaring64_bitmap_t *roaring64_bitmap_from_range(uint64_t min, uint64_t max, + uint64_t step); + +/** + * Adds the provided value to the bitmap. + */ +void roaring64_bitmap_add(roaring64_bitmap_t *r, uint64_t val); + +/** + * Adds the provided value to the bitmap. + * Returns true if a new value was added, false if the value already existed. + */ +bool roaring64_bitmap_add_checked(roaring64_bitmap_t *r, uint64_t val); + +/** + * Add an item, using context from a previous insert for faster insertion. + * + * `context` will be used to store information between calls to make bulk + * operations faster. `*context` should be zero-initialized before the first + * call to this function. + * + * Modifying the bitmap in any way (other than `-bulk` suffixed functions) + * will invalidate the stored context, calling this function with a non-zero + * context after doing any modification invokes undefined behavior. + * + * In order to exploit this optimization, the caller should call this function + * with values with the same high 48 bits of the value consecutively. + */ +void roaring64_bitmap_add_bulk(roaring64_bitmap_t *r, + roaring64_bulk_context_t *context, uint64_t val); + +/** + * Add `n_args` values from `vals`, faster than repeatedly calling + * `roaring64_bitmap_add()` + * + * In order to exploit this optimization, the caller should attempt to keep + * values with the same high 48 bits of the value as consecutive elements in + * `vals`. + */ +void roaring64_bitmap_add_many(roaring64_bitmap_t *r, size_t n_args, + const uint64_t *vals); + +/** + * Add all values in range [min, max). + */ +void roaring64_bitmap_add_range(roaring64_bitmap_t *r, uint64_t min, + uint64_t max); + +/** + * Add all values in range [min, max]. + */ +void roaring64_bitmap_add_range_closed(roaring64_bitmap_t *r, uint64_t min, + uint64_t max); + +/** + * Removes a value from the bitmap if present. + */ +void roaring64_bitmap_remove(roaring64_bitmap_t *r, uint64_t val); + +/** + * Removes a value from the bitmap if present, returns true if the value was + * removed and false if the value was not present. + */ +bool roaring64_bitmap_remove_checked(roaring64_bitmap_t *r, uint64_t val); + +/** + * Remove an item, using context from a previous insert for faster removal. + * + * `context` will be used to store information between calls to make bulk + * operations faster. `*context` should be zero-initialized before the first + * call to this function. + * + * Modifying the bitmap in any way (other than `-bulk` suffixed functions) + * will invalidate the stored context, calling this function with a non-zero + * context after doing any modification invokes undefined behavior. + * + * In order to exploit this optimization, the caller should call this function + * with values with the same high 48 bits of the value consecutively. + */ +void roaring64_bitmap_remove_bulk(roaring64_bitmap_t *r, + roaring64_bulk_context_t *context, + uint64_t val); + +/** + * Remove `n_args` values from `vals`, faster than repeatedly calling + * `roaring64_bitmap_remove()` + * + * In order to exploit this optimization, the caller should attempt to keep + * values with the same high 48 bits of the value as consecutive elements in + * `vals`. + */ +void roaring64_bitmap_remove_many(roaring64_bitmap_t *r, size_t n_args, + const uint64_t *vals); + +/** + * Remove all values in range [min, max). + */ +void roaring64_bitmap_remove_range(roaring64_bitmap_t *r, uint64_t min, + uint64_t max); + +/** + * Remove all values in range [min, max]. + */ +void roaring64_bitmap_remove_range_closed(roaring64_bitmap_t *r, uint64_t min, + uint64_t max); + +/** + * Returns true if the provided value is present. + */ +bool roaring64_bitmap_contains(const roaring64_bitmap_t *r, uint64_t val); + +/** + * Returns true if all values in the range [min, max) are present. + */ +bool roaring64_bitmap_contains_range(const roaring64_bitmap_t *r, uint64_t min, + uint64_t max); + +/** + * Check if an item is present using context from a previous insert or search + * for faster search. + * + * `context` will be used to store information between calls to make bulk + * operations faster. `*context` should be zero-initialized before the first + * call to this function. + * + * Modifying the bitmap in any way (other than `-bulk` suffixed functions) + * will invalidate the stored context, calling this function with a non-zero + * context after doing any modification invokes undefined behavior. + * + * In order to exploit this optimization, the caller should call this function + * with values with the same high 48 bits of the value consecutively. + */ +bool roaring64_bitmap_contains_bulk(const roaring64_bitmap_t *r, + roaring64_bulk_context_t *context, + uint64_t val); + +/** + * Selects the element at index 'rank' where the smallest element is at index 0. + * If the size of the bitmap is strictly greater than rank, then this function + * returns true and sets element to the element of given rank. Otherwise, it + * returns false. + */ +bool roaring64_bitmap_select(const roaring64_bitmap_t *r, uint64_t rank, + uint64_t *element); + +/** + * Returns the number of integers that are smaller or equal to x. Thus if x is + * the first element, this function will return 1. If x is smaller than the + * smallest element, this function will return 0. + * + * The indexing convention differs between roaring64_bitmap_select and + * roaring64_bitmap_rank: roaring_bitmap64_select refers to the smallest value + * as having index 0, whereas roaring64_bitmap_rank returns 1 when ranking + * the smallest value. + */ +uint64_t roaring64_bitmap_rank(const roaring64_bitmap_t *r, uint64_t val); + +/** + * Returns true if the given value is in the bitmap, and sets `out_index` to the + * (0-based) index of the value in the bitmap. Returns false if the value is not + * in the bitmap. + */ +bool roaring64_bitmap_get_index(const roaring64_bitmap_t *r, uint64_t val, + uint64_t *out_index); + +/** + * Returns the number of values in the bitmap. + */ +uint64_t roaring64_bitmap_get_cardinality(const roaring64_bitmap_t *r); + +/** + * Returns the number of elements in the range [min, max). + */ +uint64_t roaring64_bitmap_range_cardinality(const roaring64_bitmap_t *r, + uint64_t min, uint64_t max); + +/** + * Returns true if the bitmap is empty (cardinality is zero). + */ +bool roaring64_bitmap_is_empty(const roaring64_bitmap_t *r); + +/** + * Returns the smallest value in the set, or UINT64_MAX if the set is empty. + */ +uint64_t roaring64_bitmap_minimum(const roaring64_bitmap_t *r); + +/** + * Returns the largest value in the set, or 0 if empty. + */ +uint64_t roaring64_bitmap_maximum(const roaring64_bitmap_t *r); + +/** + * Returns true if the result has at least one run container. + */ +bool roaring64_bitmap_run_optimize(roaring64_bitmap_t *r); + +/** + * Perform internal consistency checks. + * + * Returns true if the bitmap is consistent. It may be useful to call this + * after deserializing bitmaps from untrusted sources. If + * roaring64_bitmap_internal_validate returns true, then the bitmap is + * consistent and can be trusted not to cause crashes or memory corruption. + * + * If reason is non-null, it will be set to a string describing the first + * inconsistency found if any. + */ +bool roaring64_bitmap_internal_validate(const roaring64_bitmap_t *r, + const char **reason); + +/** + * Return true if the two bitmaps contain the same elements. + */ +bool roaring64_bitmap_equals(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * Return true if all the elements of r1 are also in r2. + */ +bool roaring64_bitmap_is_subset(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * Return true if all the elements of r1 are also in r2, and r2 is strictly + * greater than r1. + */ +bool roaring64_bitmap_is_strict_subset(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * Computes the intersection between two bitmaps and returns new bitmap. The + * caller is responsible for free-ing the result. + * + * Performance hint: if you are computing the intersection between several + * bitmaps, two-by-two, it is best to start with the smallest bitmaps. You may + * also rely on roaring64_bitmap_and_inplace to avoid creating many temporary + * bitmaps. + */ +roaring64_bitmap_t *roaring64_bitmap_and(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * Computes the size of the intersection between two bitmaps. + */ +uint64_t roaring64_bitmap_and_cardinality(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * In-place version of `roaring64_bitmap_and()`, modifies `r1`. `r1` and `r2` + * are allowed to be equal. + * + * Performance hint: if you are computing the intersection between several + * bitmaps, two-by-two, it is best to start with the smallest bitmaps. + */ +void roaring64_bitmap_and_inplace(roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * Check whether two bitmaps intersect. + */ +bool roaring64_bitmap_intersect(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * Check whether a bitmap intersects the range [min, max). + */ +bool roaring64_bitmap_intersect_with_range(const roaring64_bitmap_t *r, + uint64_t min, uint64_t max); + +/** + * Computes the Jaccard index between two bitmaps. (Also known as the Tanimoto + * distance, or the Jaccard similarity coefficient) + * + * The Jaccard index is undefined if both bitmaps are empty. + */ +double roaring64_bitmap_jaccard_index(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * Computes the union between two bitmaps and returns new bitmap. The caller is + * responsible for free-ing the result. + */ +roaring64_bitmap_t *roaring64_bitmap_or(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * Computes the size of the union between two bitmaps. + */ +uint64_t roaring64_bitmap_or_cardinality(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * In-place version of `roaring64_bitmap_or(), modifies `r1`. + */ +void roaring64_bitmap_or_inplace(roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * Computes the symmetric difference (xor) between two bitmaps and returns a new + * bitmap. The caller is responsible for free-ing the result. + */ +roaring64_bitmap_t *roaring64_bitmap_xor(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * Computes the size of the symmetric difference (xor) between two bitmaps. + */ +uint64_t roaring64_bitmap_xor_cardinality(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * In-place version of `roaring64_bitmap_xor()`, modifies `r1`. `r1` and `r2` + * are not allowed to be equal (that would result in an empty bitmap). + */ +void roaring64_bitmap_xor_inplace(roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * Computes the difference (andnot) between two bitmaps and returns a new + * bitmap. The caller is responsible for free-ing the result. + */ +roaring64_bitmap_t *roaring64_bitmap_andnot(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * Computes the size of the difference (andnot) between two bitmaps. + */ +uint64_t roaring64_bitmap_andnot_cardinality(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * In-place version of `roaring64_bitmap_andnot()`, modifies `r1`. `r1` and `r2` + * are not allowed to be equal (that would result in an empty bitmap). + */ +void roaring64_bitmap_andnot_inplace(roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2); + +/** + * Compute the negation of the bitmap in the interval [min, max). + * The number of negated values is `max - min`. Areas outside the range are + * passed through unchanged. + */ +roaring64_bitmap_t *roaring64_bitmap_flip(const roaring64_bitmap_t *r, + uint64_t min, uint64_t max); + +/** + * Compute the negation of the bitmap in the interval [min, max]. + * The number of negated values is `max - min + 1`. Areas outside the range are + * passed through unchanged. + */ +roaring64_bitmap_t *roaring64_bitmap_flip_closed(const roaring64_bitmap_t *r, + uint64_t min, uint64_t max); + +/** + * In-place version of `roaring64_bitmap_flip`. Compute the negation of the + * bitmap in the interval [min, max). The number of negated values is `max - + * min`. Areas outside the range are passed through unchanged. + */ +void roaring64_bitmap_flip_inplace(roaring64_bitmap_t *r, uint64_t min, + uint64_t max); +/** + * In-place version of `roaring64_bitmap_flip_closed`. Compute the negation of + * the bitmap in the interval [min, max]. The number of negated values is `max - + * min + 1`. Areas outside the range are passed through unchanged. + */ +void roaring64_bitmap_flip_closed_inplace(roaring64_bitmap_t *r, uint64_t min, + uint64_t max); +/** + * How many bytes are required to serialize this bitmap. + * + * This is meant to be compatible with other languages: + * https://github.com/RoaringBitmap/RoaringFormatSpec#extension-for-64-bit-implementations + */ +size_t roaring64_bitmap_portable_size_in_bytes(const roaring64_bitmap_t *r); + +/** + * Write a bitmap to a buffer. The output buffer should refer to at least + * `roaring64_bitmap_portable_size_in_bytes(r)` bytes of allocated memory. + * + * Returns how many bytes were written, which should match + * `roaring64_bitmap_portable_size_in_bytes(r)`. + * + * This is meant to be compatible with other languages: + * https://github.com/RoaringBitmap/RoaringFormatSpec#extension-for-64-bit-implementations + * + * This function is endian-sensitive. If you have a big-endian system (e.g., a + * mainframe IBM s390x), the data format is going to be big-endian and not + * compatible with little-endian systems. + */ +size_t roaring64_bitmap_portable_serialize(const roaring64_bitmap_t *r, + char *buf); +/** + * Check how many bytes would be read (up to maxbytes) at this pointer if there + * is a valid bitmap, returns zero if there is no valid bitmap. + * + * This is meant to be compatible with other languages + * https://github.com/RoaringBitmap/RoaringFormatSpec#extension-for-64-bit-implementations + */ +size_t roaring64_bitmap_portable_deserialize_size(const char *buf, + size_t maxbytes); + +/** + * Read a bitmap from a serialized buffer safely (reading up to maxbytes). + * In case of failure, NULL is returned. + * + * This is meant to be compatible with other languages + * https://github.com/RoaringBitmap/RoaringFormatSpec#extension-for-64-bit-implementations + * + * The function itself is safe in the sense that it will not cause buffer + * overflows. However, for correct operations, it is assumed that the bitmap + * read was once serialized from a valid bitmap (i.e., it follows the format + * specification). If you provided an incorrect input (garbage), then the bitmap + * read may not be in a valid state and following operations may not lead to + * sensible results. In particular, the serialized array containers need to be + * in sorted order, and the run containers should be in sorted non-overlapping + * order. This is is guaranteed to happen when serializing an existing bitmap, + * but not for random inputs. + * + * This function is endian-sensitive. If you have a big-endian system (e.g., a + * mainframe IBM s390x), the data format is going to be big-endian and not + * compatible with little-endian systems. + */ +roaring64_bitmap_t *roaring64_bitmap_portable_deserialize_safe(const char *buf, + size_t maxbytes); + +/** + * Iterate over the bitmap elements. The function `iterator` is called once for + * all the values with `ptr` (can be NULL) as the second parameter of each call. + * + * `roaring_iterator64` is simply a pointer to a function that returns a bool + * and takes `(uint64_t, void*)` as inputs. True means that the iteration should + * continue, while false means that it should stop. + * + * Returns true if the `roaring64_iterator` returned true throughout (so that + * all data points were necessarily visited). + * + * Iteration is ordered from the smallest to the largest elements. + */ +bool roaring64_bitmap_iterate(const roaring64_bitmap_t *r, + roaring_iterator64 iterator, void *ptr); + +/** + * Convert the bitmap to a sorted array `out`. + * + * Caller is responsible to ensure that there is enough memory allocated, e.g. + * ``` + * out = malloc(roaring64_bitmap_get_cardinality(bitmap) * sizeof(uint64_t)); + * ``` + */ +void roaring64_bitmap_to_uint64_array(const roaring64_bitmap_t *r, + uint64_t *out); + +/** + * Create an iterator object that can be used to iterate through the values. + * Caller is responsible for calling `roaring64_iterator_free()`. + * + * The iterator is initialized. If there is a value, then this iterator points + * to the first value and `roaring64_iterator_has_value()` returns true. The + * value can be retrieved with `roaring64_iterator_value()`. + */ +roaring64_iterator_t *roaring64_iterator_create(const roaring64_bitmap_t *r); + +/** + * Create an iterator object that can be used to iterate through the values. + * Caller is responsible for calling `roaring64_iterator_free()`. + * + * The iterator is initialized. If there is a value, then this iterator points + * to the last value and `roaring64_iterator_has_value()` returns true. The + * value can be retrieved with `roaring64_iterator_value()`. + */ +roaring64_iterator_t *roaring64_iterator_create_last( + const roaring64_bitmap_t *r); + +/** + * Re-initializes an existing iterator. Functionally the same as + * `roaring64_iterator_create` without a allocation. + */ +void roaring64_iterator_reinit(const roaring64_bitmap_t *r, + roaring64_iterator_t *it); + +/** + * Re-initializes an existing iterator. Functionally the same as + * `roaring64_iterator_create_last` without a allocation. + */ +void roaring64_iterator_reinit_last(const roaring64_bitmap_t *r, + roaring64_iterator_t *it); + +/** + * Creates a copy of the iterator. Caller is responsible for calling + * `roaring64_iterator_free()` on the resulting iterator. + */ +roaring64_iterator_t *roaring64_iterator_copy(const roaring64_iterator_t *it); + +/** + * Free the iterator. + */ +void roaring64_iterator_free(roaring64_iterator_t *it); + +/** + * Returns true if the iterator currently points to a value. If so, calling + * `roaring64_iterator_value()` returns the value. + */ +bool roaring64_iterator_has_value(const roaring64_iterator_t *it); + +/** + * Returns the value the iterator currently points to. Should only be called if + * `roaring64_iterator_has_value()` returns true. + */ +uint64_t roaring64_iterator_value(const roaring64_iterator_t *it); + +/** + * Advance the iterator. If there is a new value, then + * `roaring64_iterator_has_value()` returns true. Values are traversed in + * increasing order. For convenience, returns the result of + * `roaring64_iterator_has_value()`. + * + * Once this returns false, `roaring64_iterator_advance` should not be called on + * the iterator again. Calling `roaring64_iterator_previous` is allowed. + */ +bool roaring64_iterator_advance(roaring64_iterator_t *it); + +/** + * Decrement the iterator. If there is a new value, then + * `roaring64_iterator_has_value()` returns true. Values are traversed in + * decreasing order. For convenience, returns the result of + * `roaring64_iterator_has_value()`. + * + * Once this returns false, `roaring64_iterator_previous` should not be called + * on the iterator again. Calling `roaring64_iterator_advance` is allowed. + */ +bool roaring64_iterator_previous(roaring64_iterator_t *it); + +/** + * Move the iterator to the first value greater than or equal to `val`, if it + * exists at or after the current position of the iterator. If there is a new + * value, then `roaring64_iterator_has_value()` returns true. Values are + * traversed in increasing order. For convenience, returns the result of + * `roaring64_iterator_has_value()`. + */ +bool roaring64_iterator_move_equalorlarger(roaring64_iterator_t *it, + uint64_t val); + +/** + * Reads up to `count` values from the iterator into the given `buf`. Returns + * the number of elements read. The number of elements read can be smaller than + * `count`, which means that there are no more elements in the bitmap. + * + * This function can be used together with other iterator functions. + */ +uint64_t roaring64_iterator_read(roaring64_iterator_t *it, uint64_t *buf, + uint64_t count); + +#ifdef __cplusplus +} // extern "C" +} // namespace roaring +} // namespace api +#endif + +#endif /* ROARING64_H */ diff --git a/contrib/libs/croaring/include/roaring/roaring_array.h b/contrib/libs/croaring/include/roaring/roaring_array.h new file mode 100644 index 000000000000..594a10b6089f --- /dev/null +++ b/contrib/libs/croaring/include/roaring/roaring_array.h @@ -0,0 +1,305 @@ +#ifndef INCLUDE_ROARING_ARRAY_H +#define INCLUDE_ROARING_ARRAY_H + +#include +#include +#include + +#include +#include // get_writable_copy_if_shared() + +#ifdef __cplusplus +extern "C" { +namespace roaring { + +// Note: in pure C++ code, you should avoid putting `using` in header files +using api::roaring_array_t; + +namespace internal { +#endif + +enum { + SERIAL_COOKIE_NO_RUNCONTAINER = 12346, + SERIAL_COOKIE = 12347, + FROZEN_COOKIE = 13766, + NO_OFFSET_THRESHOLD = 4 +}; + +/** + * Create a new roaring array + */ +roaring_array_t *ra_create(void); + +/** + * Initialize an existing roaring array with the specified capacity (in number + * of containers) + */ +bool ra_init_with_capacity(roaring_array_t *new_ra, uint32_t cap); + +/** + * Initialize with zero capacity + */ +void ra_init(roaring_array_t *t); + +/** + * Copies this roaring array, we assume that dest is not initialized + */ +bool ra_copy(const roaring_array_t *source, roaring_array_t *dest, + bool copy_on_write); + +/* + * Shrinks the capacity, returns the number of bytes saved. + */ +int ra_shrink_to_fit(roaring_array_t *ra); + +/** + * Copies this roaring array, we assume that dest is initialized + */ +bool ra_overwrite(const roaring_array_t *source, roaring_array_t *dest, + bool copy_on_write); + +/** + * Frees the memory used by a roaring array + */ +void ra_clear(roaring_array_t *r); + +/** + * Frees the memory used by a roaring array, but does not free the containers + */ +void ra_clear_without_containers(roaring_array_t *r); + +/** + * Frees just the containers + */ +void ra_clear_containers(roaring_array_t *ra); + +/** + * Get the index corresponding to a 16-bit key + */ +inline int32_t ra_get_index(const roaring_array_t *ra, uint16_t x) { + if ((ra->size == 0) || ra->keys[ra->size - 1] == x) return ra->size - 1; + return binarySearch(ra->keys, (int32_t)ra->size, x); +} + +/** + * Retrieves the container at index i, filling in the typecode + */ +inline container_t *ra_get_container_at_index(const roaring_array_t *ra, + uint16_t i, uint8_t *typecode) { + *typecode = ra->typecodes[i]; + return ra->containers[i]; +} + +/** + * Retrieves the key at index i + */ +inline uint16_t ra_get_key_at_index(const roaring_array_t *ra, uint16_t i) { + return ra->keys[i]; +} + +/** + * Add a new key-value pair at index i + */ +void ra_insert_new_key_value_at(roaring_array_t *ra, int32_t i, uint16_t key, + container_t *c, uint8_t typecode); + +/** + * Append a new key-value pair + */ +void ra_append(roaring_array_t *ra, uint16_t key, container_t *c, + uint8_t typecode); + +/** + * Append a new key-value pair to ra, cloning (in COW sense) a value from sa + * at index index + */ +void ra_append_copy(roaring_array_t *ra, const roaring_array_t *sa, + uint16_t index, bool copy_on_write); + +/** + * Append new key-value pairs to ra, cloning (in COW sense) values from sa + * at indexes + * [start_index, end_index) + */ +void ra_append_copy_range(roaring_array_t *ra, const roaring_array_t *sa, + int32_t start_index, int32_t end_index, + bool copy_on_write); + +/** appends from sa to ra, ending with the greatest key that is + * is less or equal stopping_key + */ +void ra_append_copies_until(roaring_array_t *ra, const roaring_array_t *sa, + uint16_t stopping_key, bool copy_on_write); + +/** appends from sa to ra, starting with the smallest key that is + * is strictly greater than before_start + */ + +void ra_append_copies_after(roaring_array_t *ra, const roaring_array_t *sa, + uint16_t before_start, bool copy_on_write); + +/** + * Move the key-value pairs to ra from sa at indexes + * [start_index, end_index), old array should not be freed + * (use ra_clear_without_containers) + **/ +void ra_append_move_range(roaring_array_t *ra, roaring_array_t *sa, + int32_t start_index, int32_t end_index); +/** + * Append new key-value pairs to ra, from sa at indexes + * [start_index, end_index) + */ +void ra_append_range(roaring_array_t *ra, roaring_array_t *sa, + int32_t start_index, int32_t end_index, + bool copy_on_write); + +/** + * Set the container at the corresponding index using the specified + * typecode. + */ +inline void ra_set_container_at_index(const roaring_array_t *ra, int32_t i, + container_t *c, uint8_t typecode) { + assert(i < ra->size); + ra->containers[i] = c; + ra->typecodes[i] = typecode; +} + +container_t *ra_get_container(roaring_array_t *ra, uint16_t x, + uint8_t *typecode); + +/** + * If needed, increase the capacity of the array so that it can fit k values + * (at + * least); + */ +bool extend_array(roaring_array_t *ra, int32_t k); + +inline int32_t ra_get_size(const roaring_array_t *ra) { return ra->size; } + +static inline int32_t ra_advance_until(const roaring_array_t *ra, uint16_t x, + int32_t pos) { + return advanceUntil(ra->keys, pos, ra->size, x); +} + +int32_t ra_advance_until_freeing(roaring_array_t *ra, uint16_t x, int32_t pos); + +void ra_downsize(roaring_array_t *ra, int32_t new_length); + +inline void ra_replace_key_and_container_at_index(roaring_array_t *ra, + int32_t i, uint16_t key, + container_t *c, + uint8_t typecode) { + assert(i < ra->size); + + ra->keys[i] = key; + ra->containers[i] = c; + ra->typecodes[i] = typecode; +} + +// write set bits to an array +void ra_to_uint32_array(const roaring_array_t *ra, uint32_t *ans); + +bool ra_range_uint32_array(const roaring_array_t *ra, size_t offset, + size_t limit, uint32_t *ans); + +/** + * write a bitmap to a buffer. This is meant to be compatible with + * the + * Java and Go versions. Return the size in bytes of the serialized + * output (which should be ra_portable_size_in_bytes(ra)). + */ +size_t ra_portable_serialize(const roaring_array_t *ra, char *buf); + +/** + * read a bitmap from a serialized version. This is meant to be compatible + * with the Java and Go versions. + * maxbytes indicates how many bytes available from buf. + * When the function returns true, roaring_array_t is populated with the data + * and *readbytes indicates how many bytes were read. In all cases, if the + * function returns true, then maxbytes >= *readbytes. + */ +bool ra_portable_deserialize(roaring_array_t *ra, const char *buf, + const size_t maxbytes, size_t *readbytes); + +/** + * Quickly checks whether there is a serialized bitmap at the pointer, + * not exceeding size "maxbytes" in bytes. This function does not allocate + * memory dynamically. + * + * This function returns 0 if and only if no valid bitmap is found. + * Otherwise, it returns how many bytes are occupied by the bitmap data. + */ +size_t ra_portable_deserialize_size(const char *buf, const size_t maxbytes); + +/** + * How many bytes are required to serialize this bitmap (meant to be + * compatible + * with Java and Go versions) + */ +size_t ra_portable_size_in_bytes(const roaring_array_t *ra); + +/** + * return true if it contains at least one run container. + */ +bool ra_has_run_container(const roaring_array_t *ra); + +/** + * Size of the header when serializing (meant to be compatible + * with Java and Go versions) + */ +uint32_t ra_portable_header_size(const roaring_array_t *ra); + +/** + * If the container at the index i is share, unshare it (creating a local + * copy if needed). + */ +static inline void ra_unshare_container_at_index(roaring_array_t *ra, + uint16_t i) { + assert(i < ra->size); + ra->containers[i] = + get_writable_copy_if_shared(ra->containers[i], &ra->typecodes[i]); +} + +/** + * remove at index i, sliding over all entries after i + */ +void ra_remove_at_index(roaring_array_t *ra, int32_t i); + +/** + * clears all containers, sets the size at 0 and shrinks the memory usage. + */ +void ra_reset(roaring_array_t *ra); + +/** + * remove at index i, sliding over all entries after i. Free removed container. + */ +void ra_remove_at_index_and_free(roaring_array_t *ra, int32_t i); + +/** + * remove a chunk of indices, sliding over entries after it + */ +// void ra_remove_index_range(roaring_array_t *ra, int32_t begin, int32_t end); + +// used in inplace andNot only, to slide left the containers from +// the mutated RoaringBitmap that are after the largest container of +// the argument RoaringBitmap. It is followed by a call to resize. +// +void ra_copy_range(roaring_array_t *ra, uint32_t begin, uint32_t end, + uint32_t new_begin); + +/** + * Shifts rightmost $count containers to the left (distance < 0) or + * to the right (distance > 0). + * Allocates memory if necessary. + * This function doesn't free or create new containers. + * Caller is responsible for that. + */ +void ra_shift_tail(roaring_array_t *ra, int32_t count, int32_t distance); + +#ifdef __cplusplus +} // namespace internal +} +} // extern "C" { namespace roaring { +#endif + +#endif diff --git a/contrib/libs/croaring/include/roaring/roaring_types.h b/contrib/libs/croaring/include/roaring/roaring_types.h new file mode 100644 index 000000000000..d215c248b7b7 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/roaring_types.h @@ -0,0 +1,115 @@ +/* + Typedefs used by various components +*/ + +#ifndef ROARING_TYPES_H +#define ROARING_TYPES_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace api { +#endif + +/** + * When building .c files as C++, there's added compile-time checking if the + * container types are derived from a `container_t` base class. So long as + * such a base class is empty, the struct will behave compatibly with C structs + * despite the derivation. This is due to the Empty Base Class Optimization: + * + * https://en.cppreference.com/w/cpp/language/ebo + * + * But since C isn't namespaced, taking `container_t` globally might collide + * with other projects. So roaring.h uses ROARING_CONTAINER_T, while internal + * code #undefs that after declaring `typedef ROARING_CONTAINER_T container_t;` + */ +#if defined(__cplusplus) +extern "C++" { +struct container_s {}; +} +#define ROARING_CONTAINER_T ::roaring::api::container_s +#else +#define ROARING_CONTAINER_T void // no compile-time checking +#endif + +#define ROARING_FLAG_COW UINT8_C(0x1) +#define ROARING_FLAG_FROZEN UINT8_C(0x2) + +/** + * Roaring arrays are array-based key-value pairs having containers as values + * and 16-bit integer keys. A roaring bitmap might be implemented as such. + */ + +// parallel arrays. Element sizes quite different. +// Alternative is array +// of structs. Which would have better +// cache performance through binary searches? + +typedef struct roaring_array_s { + int32_t size; + int32_t allocation_size; + ROARING_CONTAINER_T **containers; // Use container_t in non-API files! + uint16_t *keys; + uint8_t *typecodes; + uint8_t flags; +} roaring_array_t; + +typedef bool (*roaring_iterator)(uint32_t value, void *param); +typedef bool (*roaring_iterator64)(uint64_t value, void *param); + +/** + * (For advanced users.) + * The roaring_statistics_t can be used to collect detailed statistics about + * the composition of a roaring bitmap. + */ +typedef struct roaring_statistics_s { + uint32_t n_containers; /* number of containers */ + + uint32_t n_array_containers; /* number of array containers */ + uint32_t n_run_containers; /* number of run containers */ + uint32_t n_bitset_containers; /* number of bitmap containers */ + + uint32_t + n_values_array_containers; /* number of values in array containers */ + uint32_t n_values_run_containers; /* number of values in run containers */ + uint32_t + n_values_bitset_containers; /* number of values in bitmap containers */ + + uint32_t n_bytes_array_containers; /* number of allocated bytes in array + containers */ + uint32_t n_bytes_run_containers; /* number of allocated bytes in run + containers */ + uint32_t n_bytes_bitset_containers; /* number of allocated bytes in bitmap + containers */ + + uint32_t + max_value; /* the maximal value, undefined if cardinality is zero */ + uint32_t + min_value; /* the minimal value, undefined if cardinality is zero */ + uint64_t sum_value; /* the sum of all values (could be used to compute + average) */ + + uint64_t cardinality; /* total number of values stored in the bitmap */ + + // and n_values_arrays, n_values_rle, n_values_bitmap +} roaring_statistics_t; + +/** + * Roaring-internal type used to iterate within a roaring container. + */ +typedef struct roaring_container_iterator_s { + // For bitset and array containers this is the index of the bit / entry. + // For run containers this points at the run. + int32_t index; +} roaring_container_iterator_t; + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace api { +#endif + +#endif /* ROARING_TYPES_H */ diff --git a/contrib/libs/croaring/include/roaring/roaring_version.h b/contrib/libs/croaring/include/roaring/roaring_version.h new file mode 100644 index 000000000000..6dcf54f47792 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/roaring_version.h @@ -0,0 +1,11 @@ +// /include/roaring/roaring_version.h automatically generated by release.py, do +// not change by hand +#ifndef ROARING_INCLUDE_ROARING_VERSION +#define ROARING_INCLUDE_ROARING_VERSION +#define ROARING_VERSION "3.0.0" +enum { + ROARING_VERSION_MAJOR = 3, + ROARING_VERSION_MINOR = 0, + ROARING_VERSION_REVISION = 0 +}; +#endif // ROARING_INCLUDE_ROARING_VERSION diff --git a/contrib/libs/croaring/include/roaring/utilasm.h b/contrib/libs/croaring/include/roaring/utilasm.h new file mode 100644 index 000000000000..860a706e3357 --- /dev/null +++ b/contrib/libs/croaring/include/roaring/utilasm.h @@ -0,0 +1,80 @@ +/* + * utilasm.h + * + */ + +#ifndef INCLUDE_UTILASM_H_ +#define INCLUDE_UTILASM_H_ + +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +#endif + +#if defined(CROARING_INLINE_ASM) +#define CROARING_ASMBITMANIPOPTIMIZATION // optimization flag + +#define ASM_SHIFT_RIGHT(srcReg, bitsReg, destReg) \ + __asm volatile("shrx %1, %2, %0" \ + : "=r"(destReg) \ + : /* write */ \ + "r"(bitsReg), /* read only */ \ + "r"(srcReg) /* read only */ \ + ) + +#define ASM_INPLACESHIFT_RIGHT(srcReg, bitsReg) \ + __asm volatile("shrx %1, %0, %0" \ + : "+r"(srcReg) \ + : /* read/write */ \ + "r"(bitsReg) /* read only */ \ + ) + +#define ASM_SHIFT_LEFT(srcReg, bitsReg, destReg) \ + __asm volatile("shlx %1, %2, %0" \ + : "=r"(destReg) \ + : /* write */ \ + "r"(bitsReg), /* read only */ \ + "r"(srcReg) /* read only */ \ + ) +// set bit at position testBit within testByte to 1 and +// copy cmovDst to cmovSrc if that bit was previously clear +#define ASM_SET_BIT_INC_WAS_CLEAR(testByte, testBit, count) \ + __asm volatile( \ + "bts %2, %0\n" \ + "sbb $-1, %1\n" \ + : "+r"(testByte), /* read/write */ \ + "+r"(count) \ + : /* read/write */ \ + "r"(testBit) /* read only */ \ + ) + +#define ASM_CLEAR_BIT_DEC_WAS_SET(testByte, testBit, count) \ + __asm volatile( \ + "btr %2, %0\n" \ + "sbb $0, %1\n" \ + : "+r"(testByte), /* read/write */ \ + "+r"(count) \ + : /* read/write */ \ + "r"(testBit) /* read only */ \ + ) + +#define ASM_BT64(testByte, testBit, count) \ + __asm volatile( \ + "bt %2,%1\n" \ + "sbb %0,%0" /*could use setb */ \ + : "=r"(count) \ + : /* write */ \ + "r"(testByte), /* read only */ \ + "r"(testBit) /* read only */ \ + ) + +#endif + +#ifdef __cplusplus +} +} // extern "C" { namespace roaring { +#endif + +#endif /* INCLUDE_UTILASM_H_ */ diff --git a/contrib/libs/croaring/src/array_util.c b/contrib/libs/croaring/src/array_util.c new file mode 100644 index 000000000000..a4ff98d2dfe2 --- /dev/null +++ b/contrib/libs/croaring/src/array_util.c @@ -0,0 +1,2172 @@ +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#if CROARING_IS_X64 +#ifndef CROARING_COMPILER_SUPPORTS_AVX512 +#error "CROARING_COMPILER_SUPPORTS_AVX512 needs to be defined." +#endif // CROARING_COMPILER_SUPPORTS_AVX512 +#endif + +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wuninitialized" +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +#ifdef __cplusplus +using namespace ::roaring::internal; +extern "C" { +namespace roaring { +namespace internal { +#endif + +extern inline int32_t binarySearch(const uint16_t *array, int32_t lenarray, + uint16_t ikey); + +#if CROARING_IS_X64 +// used by intersect_vector16 +ALIGNED(0x1000) +static const uint8_t shuffle_mask16[] = { + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 4, 5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 6, 7, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 6, 7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 6, 7, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 6, 7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 4, 5, 6, 7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, 6, 7, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, + 6, 7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 4, 5, 6, 7, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 8, 9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 8, 9, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 8, 9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 8, 9, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 8, 9, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 4, 5, 8, 9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, 8, 9, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 4, 5, 8, 9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 6, 7, 8, 9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 6, 7, 8, 9, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 6, 7, + 8, 9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 6, 7, 8, 9, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 6, 7, 8, 9, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, + 6, 7, 8, 9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 4, 5, 6, 7, 8, 9, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 10, 11, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 4, 5, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, 10, 11, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, + 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 4, 5, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 6, 7, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 6, 7, + 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 6, 7, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 6, 7, 10, 11, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 6, 7, + 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 4, 5, 6, 7, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, 6, 7, 10, 11, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 4, 5, 6, 7, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 8, 9, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 8, 9, 10, 11, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 8, 9, + 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 8, 9, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 8, 9, 10, 11, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, + 8, 9, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 4, 5, 8, 9, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 8, 9, + 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 6, 7, 8, 9, + 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 6, 7, 8, 9, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 6, 7, 8, 9, 10, 11, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 6, 7, 8, 9, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 4, 5, 6, 7, 8, 9, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, 6, 7, 8, 9, + 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 0xFF, 0xFF, 0xFF, 0xFF, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 12, 13, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 12, 13, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 12, 13, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 4, 5, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, 12, 13, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 4, 5, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 6, 7, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 6, 7, 12, 13, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 6, 7, + 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 6, 7, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 6, 7, 12, 13, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, + 6, 7, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 4, 5, 6, 7, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 6, 7, + 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 8, 9, 12, 13, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 8, 9, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 8, 9, 12, 13, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 8, 9, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 4, 5, 8, 9, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, 8, 9, 12, 13, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, + 8, 9, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 4, 5, 8, 9, 12, 13, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 6, 7, 8, 9, 12, 13, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 6, 7, + 8, 9, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 6, 7, 8, 9, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 6, 7, 8, 9, + 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 6, 7, + 8, 9, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 4, 5, 6, 7, 8, 9, 12, 13, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, 6, 7, 8, 9, + 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, + 10, 11, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 10, 11, 12, 13, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 10, 11, + 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 10, 11, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 10, 11, 12, 13, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, + 10, 11, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 4, 5, 10, 11, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 10, 11, + 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 6, 7, 10, 11, + 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 6, 7, 10, 11, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 6, 7, 10, 11, 12, 13, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 6, 7, 10, 11, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 4, 5, 6, 7, 10, 11, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, 6, 7, 10, 11, + 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, + 6, 7, 10, 11, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, + 0xFF, 0xFF, 0xFF, 0xFF, 8, 9, 10, 11, 12, 13, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 8, 9, + 10, 11, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 8, 9, 10, 11, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 8, 9, 10, 11, + 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 8, 9, + 10, 11, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 4, 5, 8, 9, 10, 11, 12, 13, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, 8, 9, 10, 11, + 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 4, 5, 8, 9, 10, 11, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, + 6, 7, 8, 9, 10, 11, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 6, 7, 8, 9, 10, 11, + 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 6, 7, + 8, 9, 10, 11, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, + 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 0xFF, 0xFF, 14, 15, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 4, 5, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, 14, 15, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 4, 5, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 6, 7, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 6, 7, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 6, 7, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 6, 7, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 6, 7, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 4, 5, 6, 7, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, 6, 7, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 4, 5, 6, 7, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 8, 9, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 8, 9, 14, 15, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 8, 9, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 8, 9, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 8, 9, 14, 15, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, + 8, 9, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 4, 5, 8, 9, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 8, 9, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 6, 7, 8, 9, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 6, 7, 8, 9, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 6, 7, 8, 9, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 6, 7, 8, 9, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 4, 5, 6, 7, 8, 9, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, 6, 7, 8, 9, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, + 6, 7, 8, 9, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 10, 11, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 10, 11, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 10, 11, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 4, 5, 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, 10, 11, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 4, 5, 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 6, 7, 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 6, 7, 10, 11, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 6, 7, + 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 6, 7, 10, 11, 14, 15, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 6, 7, 10, 11, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, + 6, 7, 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 4, 5, 6, 7, 10, 11, 14, 15, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 6, 7, + 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 8, 9, 10, 11, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 8, 9, 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 8, 9, 10, 11, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 8, 9, 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 4, 5, 8, 9, 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, 8, 9, 10, 11, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, + 8, 9, 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 6, 7, 8, 9, 10, 11, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 6, 7, + 8, 9, 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 6, 7, 8, 9, 10, 11, 14, 15, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 6, 7, 8, 9, + 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 6, 7, + 8, 9, 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 14, 15, 0xFF, 0xFF, + 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 12, 13, 14, 15, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 12, 13, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 12, 13, 14, 15, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, + 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 4, 5, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 12, 13, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 6, 7, 12, 13, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 6, 7, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 6, 7, 12, 13, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 6, 7, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 4, 5, 6, 7, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, 6, 7, 12, 13, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, + 6, 7, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 4, 5, 6, 7, 12, 13, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 8, 9, 12, 13, 14, 15, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 8, 9, + 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 8, 9, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 8, 9, 12, 13, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 8, 9, + 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 4, 5, 8, 9, 12, 13, 14, 15, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, 8, 9, 12, 13, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 4, 5, 8, 9, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 6, 7, 8, 9, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 6, 7, 8, 9, 12, 13, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 6, 7, + 8, 9, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 6, 7, 8, 9, 12, 13, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 6, 7, 8, 9, 12, 13, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, + 6, 7, 8, 9, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 12, 13, 14, 15, 0xFF, 0xFF, 10, 11, 12, 13, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 10, 11, 12, 13, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 4, 5, 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, 10, 11, 12, 13, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, + 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 6, 7, 10, 11, 12, 13, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 6, 7, + 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 6, 7, 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 6, 7, 10, 11, + 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 6, 7, + 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 4, 5, 6, 7, 10, 11, + 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, + 8, 9, 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 8, 9, 10, 11, 12, 13, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 8, 9, + 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 2, 3, 8, 9, 10, 11, 12, 13, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 4, 5, 8, 9, 10, 11, 12, 13, + 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, + 8, 9, 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, + 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, 4, 5, 8, 9, + 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0, 1, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 2, 3, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 2, 3, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 0xFF, 0xFF, 0xFF, 0xFF, 0, 1, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0xFF, 0xFF, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15}; + +/** + * From Schlegel et al., Fast Sorted-Set Intersection using SIMD Instructions + * Optimized by D. Lemire on May 3rd 2013 + */ +CROARING_TARGET_AVX2 +int32_t intersect_vector16(const uint16_t *__restrict__ A, size_t s_a, + const uint16_t *__restrict__ B, size_t s_b, + uint16_t *C) { + size_t count = 0; + size_t i_a = 0, i_b = 0; + const int vectorlength = sizeof(__m128i) / sizeof(uint16_t); + const size_t st_a = (s_a / vectorlength) * vectorlength; + const size_t st_b = (s_b / vectorlength) * vectorlength; + __m128i v_a, v_b; + if ((i_a < st_a) && (i_b < st_b)) { + v_a = _mm_lddqu_si128((__m128i *)&A[i_a]); + v_b = _mm_lddqu_si128((__m128i *)&B[i_b]); + while ((A[i_a] == 0) || (B[i_b] == 0)) { + const __m128i res_v = _mm_cmpestrm( + v_b, vectorlength, v_a, vectorlength, + _SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_BIT_MASK); + const int r = _mm_extract_epi32(res_v, 0); + __m128i sm16 = _mm_loadu_si128((const __m128i *)shuffle_mask16 + r); + __m128i p = _mm_shuffle_epi8(v_a, sm16); + _mm_storeu_si128((__m128i *)&C[count], p); // can overflow + count += _mm_popcnt_u32(r); + const uint16_t a_max = A[i_a + vectorlength - 1]; + const uint16_t b_max = B[i_b + vectorlength - 1]; + if (a_max <= b_max) { + i_a += vectorlength; + if (i_a == st_a) break; + v_a = _mm_lddqu_si128((__m128i *)&A[i_a]); + } + if (b_max <= a_max) { + i_b += vectorlength; + if (i_b == st_b) break; + v_b = _mm_lddqu_si128((__m128i *)&B[i_b]); + } + } + if ((i_a < st_a) && (i_b < st_b)) + while (true) { + const __m128i res_v = _mm_cmpistrm( + v_b, v_a, + _SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_BIT_MASK); + const int r = _mm_extract_epi32(res_v, 0); + __m128i sm16 = + _mm_loadu_si128((const __m128i *)shuffle_mask16 + r); + __m128i p = _mm_shuffle_epi8(v_a, sm16); + _mm_storeu_si128((__m128i *)&C[count], p); // can overflow + count += _mm_popcnt_u32(r); + const uint16_t a_max = A[i_a + vectorlength - 1]; + const uint16_t b_max = B[i_b + vectorlength - 1]; + if (a_max <= b_max) { + i_a += vectorlength; + if (i_a == st_a) break; + v_a = _mm_lddqu_si128((__m128i *)&A[i_a]); + } + if (b_max <= a_max) { + i_b += vectorlength; + if (i_b == st_b) break; + v_b = _mm_lddqu_si128((__m128i *)&B[i_b]); + } + } + } + // intersect the tail using scalar intersection + while (i_a < s_a && i_b < s_b) { + uint16_t a = A[i_a]; + uint16_t b = B[i_b]; + if (a < b) { + i_a++; + } else if (b < a) { + i_b++; + } else { + C[count] = a; //==b; + count++; + i_a++; + i_b++; + } + } + return (int32_t)count; +} + +ALLOW_UNALIGNED +int array_container_to_uint32_array_vector16(void *vout, const uint16_t *array, + size_t cardinality, + uint32_t base) { + int outpos = 0; + uint32_t *out = (uint32_t *)vout; + size_t i = 0; + for (; i + sizeof(__m128i) / sizeof(uint16_t) <= cardinality; + i += sizeof(__m128i) / sizeof(uint16_t)) { + __m128i vinput = _mm_loadu_si128((const __m128i *)(array + i)); + __m256i voutput = _mm256_add_epi32(_mm256_cvtepu16_epi32(vinput), + _mm256_set1_epi32(base)); + _mm256_storeu_si256((__m256i *)(out + outpos), voutput); + outpos += sizeof(__m256i) / sizeof(uint32_t); + } + for (; i < cardinality; ++i) { + const uint32_t val = base + array[i]; + memcpy(out + outpos, &val, + sizeof(uint32_t)); // should be compiled as a MOV on x64 + outpos++; + } + return outpos; +} + +int32_t intersect_vector16_inplace(uint16_t *__restrict__ A, size_t s_a, + const uint16_t *__restrict__ B, size_t s_b) { + size_t count = 0; + size_t i_a = 0, i_b = 0; + const int vectorlength = sizeof(__m128i) / sizeof(uint16_t); + const size_t st_a = (s_a / vectorlength) * vectorlength; + const size_t st_b = (s_b / vectorlength) * vectorlength; + __m128i v_a, v_b; + if ((i_a < st_a) && (i_b < st_b)) { + v_a = _mm_lddqu_si128((__m128i *)&A[i_a]); + v_b = _mm_lddqu_si128((__m128i *)&B[i_b]); + __m128i tmp[2] = {_mm_setzero_si128()}; + size_t tmp_count = 0; + while ((A[i_a] == 0) || (B[i_b] == 0)) { + const __m128i res_v = _mm_cmpestrm( + v_b, vectorlength, v_a, vectorlength, + _SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_BIT_MASK); + const int r = _mm_extract_epi32(res_v, 0); + __m128i sm16 = _mm_loadu_si128((const __m128i *)shuffle_mask16 + r); + __m128i p = _mm_shuffle_epi8(v_a, sm16); + _mm_storeu_si128((__m128i *)&((uint16_t *)tmp)[tmp_count], p); + tmp_count += _mm_popcnt_u32(r); + const uint16_t a_max = A[i_a + vectorlength - 1]; + const uint16_t b_max = B[i_b + vectorlength - 1]; + if (a_max <= b_max) { + _mm_storeu_si128((__m128i *)&A[count], tmp[0]); + _mm_storeu_si128(tmp, _mm_setzero_si128()); + count += tmp_count; + tmp_count = 0; + i_a += vectorlength; + if (i_a == st_a) break; + v_a = _mm_lddqu_si128((__m128i *)&A[i_a]); + } + if (b_max <= a_max) { + i_b += vectorlength; + if (i_b == st_b) break; + v_b = _mm_lddqu_si128((__m128i *)&B[i_b]); + } + } + if ((i_a < st_a) && (i_b < st_b)) { + while (true) { + const __m128i res_v = _mm_cmpistrm( + v_b, v_a, + _SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_BIT_MASK); + const int r = _mm_extract_epi32(res_v, 0); + __m128i sm16 = + _mm_loadu_si128((const __m128i *)shuffle_mask16 + r); + __m128i p = _mm_shuffle_epi8(v_a, sm16); + _mm_storeu_si128((__m128i *)&((uint16_t *)tmp)[tmp_count], p); + tmp_count += _mm_popcnt_u32(r); + const uint16_t a_max = A[i_a + vectorlength - 1]; + const uint16_t b_max = B[i_b + vectorlength - 1]; + if (a_max <= b_max) { + _mm_storeu_si128((__m128i *)&A[count], tmp[0]); + _mm_storeu_si128(tmp, _mm_setzero_si128()); + count += tmp_count; + tmp_count = 0; + i_a += vectorlength; + if (i_a == st_a) break; + v_a = _mm_lddqu_si128((__m128i *)&A[i_a]); + } + if (b_max <= a_max) { + i_b += vectorlength; + if (i_b == st_b) break; + v_b = _mm_lddqu_si128((__m128i *)&B[i_b]); + } + } + } + // tmp_count <= 8, so this does not affect efficiency so much + for (size_t i = 0; i < tmp_count; i++) { + A[count] = ((uint16_t *)tmp)[i]; + count++; + } + i_a += tmp_count; // We can at least jump pass $tmp_count elements in A + } + // intersect the tail using scalar intersection + while (i_a < s_a && i_b < s_b) { + uint16_t a = A[i_a]; + uint16_t b = B[i_b]; + if (a < b) { + i_a++; + } else if (b < a) { + i_b++; + } else { + A[count] = a; //==b; + count++; + i_a++; + i_b++; + } + } + return (int32_t)count; +} +CROARING_UNTARGET_AVX2 + +CROARING_TARGET_AVX2 +int32_t intersect_vector16_cardinality(const uint16_t *__restrict__ A, + size_t s_a, + const uint16_t *__restrict__ B, + size_t s_b) { + size_t count = 0; + size_t i_a = 0, i_b = 0; + const int vectorlength = sizeof(__m128i) / sizeof(uint16_t); + const size_t st_a = (s_a / vectorlength) * vectorlength; + const size_t st_b = (s_b / vectorlength) * vectorlength; + __m128i v_a, v_b; + if ((i_a < st_a) && (i_b < st_b)) { + v_a = _mm_lddqu_si128((__m128i *)&A[i_a]); + v_b = _mm_lddqu_si128((__m128i *)&B[i_b]); + while ((A[i_a] == 0) || (B[i_b] == 0)) { + const __m128i res_v = _mm_cmpestrm( + v_b, vectorlength, v_a, vectorlength, + _SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_BIT_MASK); + const int r = _mm_extract_epi32(res_v, 0); + count += _mm_popcnt_u32(r); + const uint16_t a_max = A[i_a + vectorlength - 1]; + const uint16_t b_max = B[i_b + vectorlength - 1]; + if (a_max <= b_max) { + i_a += vectorlength; + if (i_a == st_a) break; + v_a = _mm_lddqu_si128((__m128i *)&A[i_a]); + } + if (b_max <= a_max) { + i_b += vectorlength; + if (i_b == st_b) break; + v_b = _mm_lddqu_si128((__m128i *)&B[i_b]); + } + } + if ((i_a < st_a) && (i_b < st_b)) + while (true) { + const __m128i res_v = _mm_cmpistrm( + v_b, v_a, + _SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_BIT_MASK); + const int r = _mm_extract_epi32(res_v, 0); + count += _mm_popcnt_u32(r); + const uint16_t a_max = A[i_a + vectorlength - 1]; + const uint16_t b_max = B[i_b + vectorlength - 1]; + if (a_max <= b_max) { + i_a += vectorlength; + if (i_a == st_a) break; + v_a = _mm_lddqu_si128((__m128i *)&A[i_a]); + } + if (b_max <= a_max) { + i_b += vectorlength; + if (i_b == st_b) break; + v_b = _mm_lddqu_si128((__m128i *)&B[i_b]); + } + } + } + // intersect the tail using scalar intersection + while (i_a < s_a && i_b < s_b) { + uint16_t a = A[i_a]; + uint16_t b = B[i_b]; + if (a < b) { + i_a++; + } else if (b < a) { + i_b++; + } else { + count++; + i_a++; + i_b++; + } + } + return (int32_t)count; +} +CROARING_UNTARGET_AVX2 + +CROARING_TARGET_AVX2 +///////// +// Warning: +// This function may not be safe if A == C or B == C. +///////// +int32_t difference_vector16(const uint16_t *__restrict__ A, size_t s_a, + const uint16_t *__restrict__ B, size_t s_b, + uint16_t *C) { + // we handle the degenerate case + if (s_a == 0) return 0; + if (s_b == 0) { + if (A != C) memcpy(C, A, sizeof(uint16_t) * s_a); + return (int32_t)s_a; + } + // handle the leading zeroes, it is messy but it allows us to use the fast + // _mm_cmpistrm instrinsic safely + int32_t count = 0; + if ((A[0] == 0) || (B[0] == 0)) { + if ((A[0] == 0) && (B[0] == 0)) { + A++; + s_a--; + B++; + s_b--; + } else if (A[0] == 0) { + C[count++] = 0; + A++; + s_a--; + } else { + B++; + s_b--; + } + } + // at this point, we have two non-empty arrays, made of non-zero + // increasing values. + size_t i_a = 0, i_b = 0; + const size_t vectorlength = sizeof(__m128i) / sizeof(uint16_t); + const size_t st_a = (s_a / vectorlength) * vectorlength; + const size_t st_b = (s_b / vectorlength) * vectorlength; + if ((i_a < st_a) && (i_b < st_b)) { // this is the vectorized code path + __m128i v_a, v_b; //, v_bmax; + // we load a vector from A and a vector from B + v_a = _mm_lddqu_si128((__m128i *)&A[i_a]); + v_b = _mm_lddqu_si128((__m128i *)&B[i_b]); + // we have a runningmask which indicates which values from A have been + // spotted in B, these don't get written out. + __m128i runningmask_a_found_in_b = _mm_setzero_si128(); + /**** + * start of the main vectorized loop + *****/ + while (true) { + // afoundinb will contain a mask indicate for each entry in A + // whether it is seen + // in B + const __m128i a_found_in_b = _mm_cmpistrm( + v_b, v_a, + _SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_BIT_MASK); + runningmask_a_found_in_b = + _mm_or_si128(runningmask_a_found_in_b, a_found_in_b); + // we always compare the last values of A and B + const uint16_t a_max = A[i_a + vectorlength - 1]; + const uint16_t b_max = B[i_b + vectorlength - 1]; + if (a_max <= b_max) { + // Ok. In this code path, we are ready to write our v_a + // because there is no need to read more from B, they will + // all be large values. + const int bitmask_belongs_to_difference = + _mm_extract_epi32(runningmask_a_found_in_b, 0) ^ 0xFF; + /*** next few lines are probably expensive *****/ + __m128i sm16 = _mm_loadu_si128((const __m128i *)shuffle_mask16 + + bitmask_belongs_to_difference); + __m128i p = _mm_shuffle_epi8(v_a, sm16); + _mm_storeu_si128((__m128i *)&C[count], p); // can overflow + count += _mm_popcnt_u32(bitmask_belongs_to_difference); + // we advance a + i_a += vectorlength; + if (i_a == st_a) // no more + break; + runningmask_a_found_in_b = _mm_setzero_si128(); + v_a = _mm_lddqu_si128((__m128i *)&A[i_a]); + } + if (b_max <= a_max) { + // in this code path, the current v_b has become useless + i_b += vectorlength; + if (i_b == st_b) break; + v_b = _mm_lddqu_si128((__m128i *)&B[i_b]); + } + } + // at this point, either we have i_a == st_a, which is the end of the + // vectorized processing, + // or we have i_b == st_b, and we are not done processing the vector... + // so we need to finish it off. + if (i_a < st_a) { // we have unfinished business... + uint16_t buffer[8]; // buffer to do a masked load + memset(buffer, 0, 8 * sizeof(uint16_t)); + memcpy(buffer, B + i_b, (s_b - i_b) * sizeof(uint16_t)); + v_b = _mm_lddqu_si128((__m128i *)buffer); + const __m128i a_found_in_b = _mm_cmpistrm( + v_b, v_a, + _SIDD_UWORD_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_BIT_MASK); + runningmask_a_found_in_b = + _mm_or_si128(runningmask_a_found_in_b, a_found_in_b); + const int bitmask_belongs_to_difference = + _mm_extract_epi32(runningmask_a_found_in_b, 0) ^ 0xFF; + __m128i sm16 = _mm_loadu_si128((const __m128i *)shuffle_mask16 + + bitmask_belongs_to_difference); + __m128i p = _mm_shuffle_epi8(v_a, sm16); + _mm_storeu_si128((__m128i *)&C[count], p); // can overflow + count += _mm_popcnt_u32(bitmask_belongs_to_difference); + i_a += vectorlength; + } + // at this point we should have i_a == st_a and i_b == st_b + } + // do the tail using scalar code + while (i_a < s_a && i_b < s_b) { + uint16_t a = A[i_a]; + uint16_t b = B[i_b]; + if (b < a) { + i_b++; + } else if (a < b) { + C[count] = a; + count++; + i_a++; + } else { //== + i_a++; + i_b++; + } + } + if (i_a < s_a) { + if (C == A) { + assert((size_t)count <= i_a); + if ((size_t)count < i_a) { + memmove(C + count, A + i_a, sizeof(uint16_t) * (s_a - i_a)); + } + } else { + for (size_t i = 0; i < (s_a - i_a); i++) { + C[count + i] = A[i + i_a]; + } + } + count += (int32_t)(s_a - i_a); + } + return count; +} +CROARING_UNTARGET_AVX2 +#endif // CROARING_IS_X64 + +/** + * Branchless binary search going after 4 values at once. + * Assumes that array is sorted. + * You have that array[*index1] >= target1, array[*index12] >= target2, ... + * except when *index1 = n, in which case you know that all values in array are + * smaller than target1, and so forth. + * It has logarithmic complexity. + */ +static void binarySearch4(const uint16_t *array, int32_t n, uint16_t target1, + uint16_t target2, uint16_t target3, uint16_t target4, + int32_t *index1, int32_t *index2, int32_t *index3, + int32_t *index4) { + const uint16_t *base1 = array; + const uint16_t *base2 = array; + const uint16_t *base3 = array; + const uint16_t *base4 = array; + if (n == 0) return; + while (n > 1) { + int32_t half = n >> 1; + base1 = (base1[half] < target1) ? &base1[half] : base1; + base2 = (base2[half] < target2) ? &base2[half] : base2; + base3 = (base3[half] < target3) ? &base3[half] : base3; + base4 = (base4[half] < target4) ? &base4[half] : base4; + n -= half; + } + *index1 = (int32_t)((*base1 < target1) + base1 - array); + *index2 = (int32_t)((*base2 < target2) + base2 - array); + *index3 = (int32_t)((*base3 < target3) + base3 - array); + *index4 = (int32_t)((*base4 < target4) + base4 - array); +} + +/** + * Branchless binary search going after 2 values at once. + * Assumes that array is sorted. + * You have that array[*index1] >= target1, array[*index12] >= target2. + * except when *index1 = n, in which case you know that all values in array are + * smaller than target1, and so forth. + * It has logarithmic complexity. + */ +static void binarySearch2(const uint16_t *array, int32_t n, uint16_t target1, + uint16_t target2, int32_t *index1, int32_t *index2) { + const uint16_t *base1 = array; + const uint16_t *base2 = array; + if (n == 0) return; + while (n > 1) { + int32_t half = n >> 1; + base1 = (base1[half] < target1) ? &base1[half] : base1; + base2 = (base2[half] < target2) ? &base2[half] : base2; + n -= half; + } + *index1 = (int32_t)((*base1 < target1) + base1 - array); + *index2 = (int32_t)((*base2 < target2) + base2 - array); +} + +/* Computes the intersection between one small and one large set of uint16_t. + * Stores the result into buffer and return the number of elements. + * Processes the small set in blocks of 4 values calling binarySearch4 + * and binarySearch2. This approach can be slightly superior to a conventional + * galloping search in some instances. + */ +int32_t intersect_skewed_uint16(const uint16_t *small, size_t size_s, + const uint16_t *large, size_t size_l, + uint16_t *buffer) { + size_t pos = 0, idx_l = 0, idx_s = 0; + + if (0 == size_s) { + return 0; + } + int32_t index1 = 0, index2 = 0, index3 = 0, index4 = 0; + while ((idx_s + 4 <= size_s) && (idx_l < size_l)) { + uint16_t target1 = small[idx_s]; + uint16_t target2 = small[idx_s + 1]; + uint16_t target3 = small[idx_s + 2]; + uint16_t target4 = small[idx_s + 3]; + binarySearch4(large + idx_l, (int32_t)(size_l - idx_l), target1, + target2, target3, target4, &index1, &index2, &index3, + &index4); + if ((index1 + idx_l < size_l) && (large[idx_l + index1] == target1)) { + buffer[pos++] = target1; + } + if ((index2 + idx_l < size_l) && (large[idx_l + index2] == target2)) { + buffer[pos++] = target2; + } + if ((index3 + idx_l < size_l) && (large[idx_l + index3] == target3)) { + buffer[pos++] = target3; + } + if ((index4 + idx_l < size_l) && (large[idx_l + index4] == target4)) { + buffer[pos++] = target4; + } + idx_s += 4; + idx_l += index4; + } + if ((idx_s + 2 <= size_s) && (idx_l < size_l)) { + uint16_t target1 = small[idx_s]; + uint16_t target2 = small[idx_s + 1]; + binarySearch2(large + idx_l, (int32_t)(size_l - idx_l), target1, + target2, &index1, &index2); + if ((index1 + idx_l < size_l) && (large[idx_l + index1] == target1)) { + buffer[pos++] = target1; + } + if ((index2 + idx_l < size_l) && (large[idx_l + index2] == target2)) { + buffer[pos++] = target2; + } + idx_s += 2; + idx_l += index2; + } + if ((idx_s < size_s) && (idx_l < size_l)) { + uint16_t val_s = small[idx_s]; + int32_t index = + binarySearch(large + idx_l, (int32_t)(size_l - idx_l), val_s); + if (index >= 0) buffer[pos++] = val_s; + } + return (int32_t)pos; +} + +// TODO: this could be accelerated, possibly, by using binarySearch4 as above. +int32_t intersect_skewed_uint16_cardinality(const uint16_t *small, + size_t size_s, + const uint16_t *large, + size_t size_l) { + size_t pos = 0, idx_l = 0, idx_s = 0; + + if (0 == size_s) { + return 0; + } + + uint16_t val_l = large[idx_l], val_s = small[idx_s]; + + while (true) { + if (val_l < val_s) { + idx_l = advanceUntil(large, (int32_t)idx_l, (int32_t)size_l, val_s); + if (idx_l == size_l) break; + val_l = large[idx_l]; + } else if (val_s < val_l) { + idx_s++; + if (idx_s == size_s) break; + val_s = small[idx_s]; + } else { + pos++; + idx_s++; + if (idx_s == size_s) break; + val_s = small[idx_s]; + idx_l = advanceUntil(large, (int32_t)idx_l, (int32_t)size_l, val_s); + if (idx_l == size_l) break; + val_l = large[idx_l]; + } + } + + return (int32_t)pos; +} + +bool intersect_skewed_uint16_nonempty(const uint16_t *small, size_t size_s, + const uint16_t *large, size_t size_l) { + size_t idx_l = 0, idx_s = 0; + + if (0 == size_s) { + return false; + } + + uint16_t val_l = large[idx_l], val_s = small[idx_s]; + + while (true) { + if (val_l < val_s) { + idx_l = advanceUntil(large, (int32_t)idx_l, (int32_t)size_l, val_s); + if (idx_l == size_l) break; + val_l = large[idx_l]; + } else if (val_s < val_l) { + idx_s++; + if (idx_s == size_s) break; + val_s = small[idx_s]; + } else { + return true; + } + } + + return false; +} + +/** + * Generic intersection function. + */ +int32_t intersect_uint16(const uint16_t *A, const size_t lenA, + const uint16_t *B, const size_t lenB, uint16_t *out) { + const uint16_t *initout = out; + if (lenA == 0 || lenB == 0) return 0; + const uint16_t *endA = A + lenA; + const uint16_t *endB = B + lenB; + + while (1) { + while (*A < *B) { + SKIP_FIRST_COMPARE: + if (++A == endA) return (int32_t)(out - initout); + } + while (*A > *B) { + if (++B == endB) return (int32_t)(out - initout); + } + if (*A == *B) { + *out++ = *A; + if (++A == endA || ++B == endB) return (int32_t)(out - initout); + } else { + goto SKIP_FIRST_COMPARE; + } + } + // return (int32_t)(out - initout); // NOTREACHED +} + +int32_t intersect_uint16_cardinality(const uint16_t *A, const size_t lenA, + const uint16_t *B, const size_t lenB) { + int32_t answer = 0; + if (lenA == 0 || lenB == 0) return 0; + const uint16_t *endA = A + lenA; + const uint16_t *endB = B + lenB; + + while (1) { + while (*A < *B) { + SKIP_FIRST_COMPARE: + if (++A == endA) return answer; + } + while (*A > *B) { + if (++B == endB) return answer; + } + if (*A == *B) { + ++answer; + if (++A == endA || ++B == endB) return answer; + } else { + goto SKIP_FIRST_COMPARE; + } + } + // return answer; // NOTREACHED +} + +bool intersect_uint16_nonempty(const uint16_t *A, const size_t lenA, + const uint16_t *B, const size_t lenB) { + if (lenA == 0 || lenB == 0) return 0; + const uint16_t *endA = A + lenA; + const uint16_t *endB = B + lenB; + + while (1) { + while (*A < *B) { + SKIP_FIRST_COMPARE: + if (++A == endA) return false; + } + while (*A > *B) { + if (++B == endB) return false; + } + if (*A == *B) { + return true; + } else { + goto SKIP_FIRST_COMPARE; + } + } + return false; // NOTREACHED +} + +/** + * Generic intersection function. + */ +size_t intersection_uint32(const uint32_t *A, const size_t lenA, + const uint32_t *B, const size_t lenB, + uint32_t *out) { + const uint32_t *initout = out; + if (lenA == 0 || lenB == 0) return 0; + const uint32_t *endA = A + lenA; + const uint32_t *endB = B + lenB; + + while (1) { + while (*A < *B) { + SKIP_FIRST_COMPARE: + if (++A == endA) return (out - initout); + } + while (*A > *B) { + if (++B == endB) return (out - initout); + } + if (*A == *B) { + *out++ = *A; + if (++A == endA || ++B == endB) return (out - initout); + } else { + goto SKIP_FIRST_COMPARE; + } + } + // return (out - initout); // NOTREACHED +} + +size_t intersection_uint32_card(const uint32_t *A, const size_t lenA, + const uint32_t *B, const size_t lenB) { + if (lenA == 0 || lenB == 0) return 0; + size_t card = 0; + const uint32_t *endA = A + lenA; + const uint32_t *endB = B + lenB; + + while (1) { + while (*A < *B) { + SKIP_FIRST_COMPARE: + if (++A == endA) return card; + } + while (*A > *B) { + if (++B == endB) return card; + } + if (*A == *B) { + card++; + if (++A == endA || ++B == endB) return card; + } else { + goto SKIP_FIRST_COMPARE; + } + } + // return card; // NOTREACHED +} + +// can one vectorize the computation of the union? (Update: Yes! See +// union_vector16). + +size_t union_uint16(const uint16_t *set_1, size_t size_1, const uint16_t *set_2, + size_t size_2, uint16_t *buffer) { + size_t pos = 0, idx_1 = 0, idx_2 = 0; + + if (0 == size_2) { + memmove(buffer, set_1, size_1 * sizeof(uint16_t)); + return size_1; + } + if (0 == size_1) { + memmove(buffer, set_2, size_2 * sizeof(uint16_t)); + return size_2; + } + + uint16_t val_1 = set_1[idx_1], val_2 = set_2[idx_2]; + + while (true) { + if (val_1 < val_2) { + buffer[pos++] = val_1; + ++idx_1; + if (idx_1 >= size_1) break; + val_1 = set_1[idx_1]; + } else if (val_2 < val_1) { + buffer[pos++] = val_2; + ++idx_2; + if (idx_2 >= size_2) break; + val_2 = set_2[idx_2]; + } else { + buffer[pos++] = val_1; + ++idx_1; + ++idx_2; + if (idx_1 >= size_1 || idx_2 >= size_2) break; + val_1 = set_1[idx_1]; + val_2 = set_2[idx_2]; + } + } + + if (idx_1 < size_1) { + const size_t n_elems = size_1 - idx_1; + memmove(buffer + pos, set_1 + idx_1, n_elems * sizeof(uint16_t)); + pos += n_elems; + } else if (idx_2 < size_2) { + const size_t n_elems = size_2 - idx_2; + memmove(buffer + pos, set_2 + idx_2, n_elems * sizeof(uint16_t)); + pos += n_elems; + } + + return pos; +} + +int difference_uint16(const uint16_t *a1, int length1, const uint16_t *a2, + int length2, uint16_t *a_out) { + int out_card = 0; + int k1 = 0, k2 = 0; + if (length1 == 0) return 0; + if (length2 == 0) { + if (a1 != a_out) memcpy(a_out, a1, sizeof(uint16_t) * length1); + return length1; + } + uint16_t s1 = a1[k1]; + uint16_t s2 = a2[k2]; + while (true) { + if (s1 < s2) { + a_out[out_card++] = s1; + ++k1; + if (k1 >= length1) { + break; + } + s1 = a1[k1]; + } else if (s1 == s2) { + ++k1; + ++k2; + if (k1 >= length1) { + break; + } + if (k2 >= length2) { + memmove(a_out + out_card, a1 + k1, + sizeof(uint16_t) * (length1 - k1)); + return out_card + length1 - k1; + } + s1 = a1[k1]; + s2 = a2[k2]; + } else { // if (val1>val2) + ++k2; + if (k2 >= length2) { + memmove(a_out + out_card, a1 + k1, + sizeof(uint16_t) * (length1 - k1)); + return out_card + length1 - k1; + } + s2 = a2[k2]; + } + } + return out_card; +} + +int32_t xor_uint16(const uint16_t *array_1, int32_t card_1, + const uint16_t *array_2, int32_t card_2, uint16_t *out) { + int32_t pos1 = 0, pos2 = 0, pos_out = 0; + while (pos1 < card_1 && pos2 < card_2) { + const uint16_t v1 = array_1[pos1]; + const uint16_t v2 = array_2[pos2]; + if (v1 == v2) { + ++pos1; + ++pos2; + continue; + } + if (v1 < v2) { + out[pos_out++] = v1; + ++pos1; + } else { + out[pos_out++] = v2; + ++pos2; + } + } + if (pos1 < card_1) { + const size_t n_elems = card_1 - pos1; + memcpy(out + pos_out, array_1 + pos1, n_elems * sizeof(uint16_t)); + pos_out += (int32_t)n_elems; + } else if (pos2 < card_2) { + const size_t n_elems = card_2 - pos2; + memcpy(out + pos_out, array_2 + pos2, n_elems * sizeof(uint16_t)); + pos_out += (int32_t)n_elems; + } + return pos_out; +} + +#if CROARING_IS_X64 + +/*** + * start of the SIMD 16-bit union code + * + */ +CROARING_TARGET_AVX2 + +// Assuming that vInput1 and vInput2 are sorted, produces a sorted output going +// from vecMin all the way to vecMax +// developed originally for merge sort using SIMD instructions. +// Standard merge. See, e.g., Inoue and Taura, SIMD- and Cache-Friendly +// Algorithm for Sorting an Array of Structures +static inline void sse_merge(const __m128i *vInput1, + const __m128i *vInput2, // input 1 & 2 + __m128i *vecMin, __m128i *vecMax) { // output + __m128i vecTmp; + vecTmp = _mm_min_epu16(*vInput1, *vInput2); + *vecMax = _mm_max_epu16(*vInput1, *vInput2); + vecTmp = _mm_alignr_epi8(vecTmp, vecTmp, 2); + *vecMin = _mm_min_epu16(vecTmp, *vecMax); + *vecMax = _mm_max_epu16(vecTmp, *vecMax); + vecTmp = _mm_alignr_epi8(*vecMin, *vecMin, 2); + *vecMin = _mm_min_epu16(vecTmp, *vecMax); + *vecMax = _mm_max_epu16(vecTmp, *vecMax); + vecTmp = _mm_alignr_epi8(*vecMin, *vecMin, 2); + *vecMin = _mm_min_epu16(vecTmp, *vecMax); + *vecMax = _mm_max_epu16(vecTmp, *vecMax); + vecTmp = _mm_alignr_epi8(*vecMin, *vecMin, 2); + *vecMin = _mm_min_epu16(vecTmp, *vecMax); + *vecMax = _mm_max_epu16(vecTmp, *vecMax); + vecTmp = _mm_alignr_epi8(*vecMin, *vecMin, 2); + *vecMin = _mm_min_epu16(vecTmp, *vecMax); + *vecMax = _mm_max_epu16(vecTmp, *vecMax); + vecTmp = _mm_alignr_epi8(*vecMin, *vecMin, 2); + *vecMin = _mm_min_epu16(vecTmp, *vecMax); + *vecMax = _mm_max_epu16(vecTmp, *vecMax); + vecTmp = _mm_alignr_epi8(*vecMin, *vecMin, 2); + *vecMin = _mm_min_epu16(vecTmp, *vecMax); + *vecMax = _mm_max_epu16(vecTmp, *vecMax); + *vecMin = _mm_alignr_epi8(*vecMin, *vecMin, 2); +} +CROARING_UNTARGET_AVX2 +// used by store_unique, generated by simdunion.py +static uint8_t uniqshuf[] = { + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, + 0xc, 0xd, 0xe, 0xf, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, + 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, + 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, + 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x6, 0x7, 0x8, 0x9, + 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0x2, 0x3, 0x6, 0x7, + 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x4, 0x5, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, + 0x2, 0x3, 0x4, 0x5, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, 0x8, 0x9, 0xa, 0xb, + 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x8, 0x9, + 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x8, 0x9, + 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, + 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, + 0x6, 0x7, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x4, 0x5, 0x6, 0x7, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x6, 0x7, 0xa, 0xb, 0xc, 0xd, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x6, 0x7, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x6, 0x7, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x6, 0x7, 0xa, 0xb, 0xc, 0xd, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6, 0x7, 0xa, 0xb, + 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, 0xa, 0xb, 0xc, 0xd, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, + 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x4, 0x5, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0xa, 0xb, 0xc, 0xd, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0xa, 0xb, + 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, + 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xc, 0xd, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, + 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x6, 0x7, + 0x8, 0x9, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x6, 0x7, 0x8, 0x9, 0xc, 0xd, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x6, 0x7, 0x8, 0x9, 0xc, 0xd, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x6, 0x7, + 0x8, 0x9, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x6, 0x7, 0x8, 0x9, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x8, 0x9, + 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, + 0x8, 0x9, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x4, 0x5, 0x8, 0x9, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x8, 0x9, 0xc, 0xd, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x8, 0x9, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x8, 0x9, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x8, 0x9, 0xc, 0xd, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8, 0x9, 0xc, 0xd, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0xc, 0xd, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0xc, 0xd, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, + 0x6, 0x7, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x4, 0x5, 0x6, 0x7, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x6, 0x7, 0xc, 0xd, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x6, 0x7, + 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x6, 0x7, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x6, 0x7, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x4, 0x5, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x4, 0x5, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, 0xc, 0xd, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0xc, 0xd, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0xc, 0xd, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xc, 0xd, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, + 0x8, 0x9, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, + 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6, 0x7, 0x8, 0x9, + 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x8, 0x9, 0xa, 0xb, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, 0x8, 0x9, 0xa, 0xb, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, + 0x8, 0x9, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x4, 0x5, 0x8, 0x9, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x8, 0x9, 0xa, 0xb, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x8, 0x9, + 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x8, 0x9, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x8, 0x9, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x4, 0x5, 0x6, 0x7, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, 0x6, 0x7, 0xa, 0xb, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x6, 0x7, + 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x6, 0x7, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x6, 0x7, 0xa, 0xb, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x6, 0x7, + 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x6, 0x7, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0xa, 0xb, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, + 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x4, 0x5, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0xa, 0xb, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xa, 0xb, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, + 0x6, 0x7, 0x8, 0x9, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x6, 0x7, 0x8, 0x9, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x6, 0x7, + 0x8, 0x9, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x6, 0x7, 0x8, 0x9, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x6, 0x7, 0x8, 0x9, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x4, 0x5, 0x8, 0x9, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x4, 0x5, 0x8, 0x9, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, 0x8, 0x9, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x8, 0x9, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x8, 0x9, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x8, 0x9, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x8, 0x9, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x8, 0x9, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, + 0x6, 0x7, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x4, 0x5, 0x6, 0x7, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x6, 0x7, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x6, 0x7, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x6, 0x7, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x6, 0x7, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6, 0x7, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, + 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x4, 0x5, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0xe, 0xf, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0xe, 0xf, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xe, 0xf, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, + 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, + 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x6, 0x7, + 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, + 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x6, 0x7, + 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x8, 0x9, + 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, + 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x4, 0x5, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8, 0x9, 0xa, 0xb, + 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0xa, 0xb, 0xc, 0xd, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0xa, 0xb, + 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, + 0x6, 0x7, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x4, 0x5, 0x6, 0x7, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x6, 0x7, 0xa, 0xb, + 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x6, 0x7, + 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x6, 0x7, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x6, 0x7, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x4, 0x5, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x4, 0x5, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, 0xa, 0xb, 0xc, 0xd, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0xa, 0xb, + 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0xa, 0xb, + 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xa, 0xb, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, + 0x8, 0x9, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, + 0x6, 0x7, 0x8, 0x9, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xc, 0xd, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xc, 0xd, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x6, 0x7, 0x8, 0x9, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x6, 0x7, 0x8, 0x9, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x6, 0x7, 0x8, 0x9, 0xc, 0xd, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6, 0x7, 0x8, 0x9, + 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x8, 0x9, 0xc, 0xd, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, 0x8, 0x9, 0xc, 0xd, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, + 0x8, 0x9, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x4, 0x5, 0x8, 0x9, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x8, 0x9, 0xc, 0xd, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x8, 0x9, + 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x8, 0x9, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x8, 0x9, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x4, 0x5, 0x6, 0x7, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, 0x6, 0x7, 0xc, 0xd, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x6, 0x7, + 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x6, 0x7, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x6, 0x7, 0xc, 0xd, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x6, 0x7, + 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x6, 0x7, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0xc, 0xd, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, + 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x4, 0x5, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0xc, 0xd, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xc, 0xd, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, + 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, + 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x6, 0x7, 0x8, 0x9, + 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x6, 0x7, + 0x8, 0x9, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x4, 0x5, 0x8, 0x9, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x4, 0x5, 0x8, 0x9, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, 0x8, 0x9, 0xa, 0xb, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x8, 0x9, + 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x8, 0x9, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x8, 0x9, 0xa, 0xb, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x8, 0x9, + 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x8, 0x9, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, + 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, + 0x6, 0x7, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x4, 0x5, 0x6, 0x7, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x6, 0x7, 0xa, 0xb, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x6, 0x7, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x6, 0x7, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x6, 0x7, 0xa, 0xb, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6, 0x7, 0xa, 0xb, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, 0xa, 0xb, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, + 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x4, 0x5, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0xa, 0xb, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0xa, 0xb, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xa, 0xb, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x6, 0x7, + 0x8, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x6, 0x7, 0x8, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x6, 0x7, 0x8, 0x9, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x6, 0x7, + 0x8, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x6, 0x7, 0x8, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x8, 0x9, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, + 0x8, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x4, 0x5, 0x8, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0x8, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x8, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x8, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x8, 0x9, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8, 0x9, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, + 0x6, 0x7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x4, 0x5, 0x6, 0x7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, 0x6, 0x7, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0x6, 0x7, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x6, 0x7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x6, 0x7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x2, 0x3, + 0x4, 0x5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x2, 0x3, 0x4, 0x5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0x4, 0x5, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4, 0x5, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x0, 0x1, 0x2, 0x3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x2, 0x3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0, 0x1, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF}; +CROARING_TARGET_AVX2 +// write vector new, while omitting repeated values assuming that previously +// written vector was "old" +static inline int store_unique(__m128i old, __m128i newval, uint16_t *output) { + __m128i vecTmp = _mm_alignr_epi8(newval, old, 16 - 2); + // lots of high latency instructions follow (optimize?) + int M = _mm_movemask_epi8( + _mm_packs_epi16(_mm_cmpeq_epi16(vecTmp, newval), _mm_setzero_si128())); + int numberofnewvalues = 8 - _mm_popcnt_u32(M); + __m128i key = _mm_lddqu_si128((const __m128i *)uniqshuf + M); + __m128i val = _mm_shuffle_epi8(newval, key); + _mm_storeu_si128((__m128i *)output, val); + return numberofnewvalues; +} +CROARING_UNTARGET_AVX2 + +// working in-place, this function overwrites the repeated values +// could be avoided? +static inline uint32_t unique(uint16_t *out, uint32_t len) { + uint32_t pos = 1; + for (uint32_t i = 1; i < len; ++i) { + if (out[i] != out[i - 1]) { + out[pos++] = out[i]; + } + } + return pos; +} + +// use with qsort, could be avoided +static int uint16_compare(const void *a, const void *b) { + return (*(uint16_t *)a - *(uint16_t *)b); +} + +CROARING_TARGET_AVX2 +// a one-pass SSE union algorithm +// This function may not be safe if array1 == output or array2 == output. +uint32_t union_vector16(const uint16_t *__restrict__ array1, uint32_t length1, + const uint16_t *__restrict__ array2, uint32_t length2, + uint16_t *__restrict__ output) { + if ((length1 < 8) || (length2 < 8)) { + return (uint32_t)union_uint16(array1, length1, array2, length2, output); + } + __m128i vA, vB, V, vecMin, vecMax; + __m128i laststore; + uint16_t *initoutput = output; + uint32_t len1 = length1 / 8; + uint32_t len2 = length2 / 8; + uint32_t pos1 = 0; + uint32_t pos2 = 0; + // we start the machine + vA = _mm_lddqu_si128((const __m128i *)array1 + pos1); + pos1++; + vB = _mm_lddqu_si128((const __m128i *)array2 + pos2); + pos2++; + sse_merge(&vA, &vB, &vecMin, &vecMax); + laststore = _mm_set1_epi16(-1); + output += store_unique(laststore, vecMin, output); + laststore = vecMin; + if ((pos1 < len1) && (pos2 < len2)) { + uint16_t curA, curB; + curA = array1[8 * pos1]; + curB = array2[8 * pos2]; + while (true) { + if (curA <= curB) { + V = _mm_lddqu_si128((const __m128i *)array1 + pos1); + pos1++; + if (pos1 < len1) { + curA = array1[8 * pos1]; + } else { + break; + } + } else { + V = _mm_lddqu_si128((const __m128i *)array2 + pos2); + pos2++; + if (pos2 < len2) { + curB = array2[8 * pos2]; + } else { + break; + } + } + sse_merge(&V, &vecMax, &vecMin, &vecMax); + output += store_unique(laststore, vecMin, output); + laststore = vecMin; + } + sse_merge(&V, &vecMax, &vecMin, &vecMax); + output += store_unique(laststore, vecMin, output); + laststore = vecMin; + } + // we finish the rest off using a scalar algorithm + // could be improved? + // + // copy the small end on a tmp buffer + uint32_t len = (uint32_t)(output - initoutput); + uint16_t buffer[16]; + uint32_t leftoversize = store_unique(laststore, vecMax, buffer); + if (pos1 == len1) { + memcpy(buffer + leftoversize, array1 + 8 * pos1, + (length1 - 8 * len1) * sizeof(uint16_t)); + leftoversize += length1 - 8 * len1; + qsort(buffer, leftoversize, sizeof(uint16_t), uint16_compare); + + leftoversize = unique(buffer, leftoversize); + len += (uint32_t)union_uint16(buffer, leftoversize, array2 + 8 * pos2, + length2 - 8 * pos2, output); + } else { + memcpy(buffer + leftoversize, array2 + 8 * pos2, + (length2 - 8 * len2) * sizeof(uint16_t)); + leftoversize += length2 - 8 * len2; + qsort(buffer, leftoversize, sizeof(uint16_t), uint16_compare); + leftoversize = unique(buffer, leftoversize); + len += (uint32_t)union_uint16(buffer, leftoversize, array1 + 8 * pos1, + length1 - 8 * pos1, output); + } + return len; +} +CROARING_UNTARGET_AVX2 + +/** + * End of the SIMD 16-bit union code + * + */ + +/** + * Start of SIMD 16-bit XOR code + */ + +CROARING_TARGET_AVX2 +// write vector new, while omitting repeated values assuming that previously +// written vector was "old" +static inline int store_unique_xor(__m128i old, __m128i newval, + uint16_t *output) { + __m128i vecTmp1 = _mm_alignr_epi8(newval, old, 16 - 4); + __m128i vecTmp2 = _mm_alignr_epi8(newval, old, 16 - 2); + __m128i equalleft = _mm_cmpeq_epi16(vecTmp2, vecTmp1); + __m128i equalright = _mm_cmpeq_epi16(vecTmp2, newval); + __m128i equalleftoright = _mm_or_si128(equalleft, equalright); + int M = _mm_movemask_epi8( + _mm_packs_epi16(equalleftoright, _mm_setzero_si128())); + int numberofnewvalues = 8 - _mm_popcnt_u32(M); + __m128i key = _mm_lddqu_si128((const __m128i *)uniqshuf + M); + __m128i val = _mm_shuffle_epi8(vecTmp2, key); + _mm_storeu_si128((__m128i *)output, val); + return numberofnewvalues; +} +CROARING_UNTARGET_AVX2 + +// working in-place, this function overwrites the repeated values +// could be avoided? Warning: assumes len > 0 +static inline uint32_t unique_xor(uint16_t *out, uint32_t len) { + uint32_t pos = 1; + for (uint32_t i = 1; i < len; ++i) { + if (out[i] != out[i - 1]) { + out[pos++] = out[i]; + } else + pos--; // if it is identical to previous, delete it + } + return pos; +} +CROARING_TARGET_AVX2 +// a one-pass SSE xor algorithm +uint32_t xor_vector16(const uint16_t *__restrict__ array1, uint32_t length1, + const uint16_t *__restrict__ array2, uint32_t length2, + uint16_t *__restrict__ output) { + if ((length1 < 8) || (length2 < 8)) { + return xor_uint16(array1, length1, array2, length2, output); + } + __m128i vA, vB, V, vecMin, vecMax; + __m128i laststore; + uint16_t *initoutput = output; + uint32_t len1 = length1 / 8; + uint32_t len2 = length2 / 8; + uint32_t pos1 = 0; + uint32_t pos2 = 0; + // we start the machine + vA = _mm_lddqu_si128((const __m128i *)array1 + pos1); + pos1++; + vB = _mm_lddqu_si128((const __m128i *)array2 + pos2); + pos2++; + sse_merge(&vA, &vB, &vecMin, &vecMax); + laststore = _mm_set1_epi16(-1); + uint16_t buffer[17]; + output += store_unique_xor(laststore, vecMin, output); + + laststore = vecMin; + if ((pos1 < len1) && (pos2 < len2)) { + uint16_t curA, curB; + curA = array1[8 * pos1]; + curB = array2[8 * pos2]; + while (true) { + if (curA <= curB) { + V = _mm_lddqu_si128((const __m128i *)array1 + pos1); + pos1++; + if (pos1 < len1) { + curA = array1[8 * pos1]; + } else { + break; + } + } else { + V = _mm_lddqu_si128((const __m128i *)array2 + pos2); + pos2++; + if (pos2 < len2) { + curB = array2[8 * pos2]; + } else { + break; + } + } + sse_merge(&V, &vecMax, &vecMin, &vecMax); + // conditionally stores the last value of laststore as well as all + // but the + // last value of vecMin + output += store_unique_xor(laststore, vecMin, output); + laststore = vecMin; + } + sse_merge(&V, &vecMax, &vecMin, &vecMax); + // conditionally stores the last value of laststore as well as all but + // the + // last value of vecMin + output += store_unique_xor(laststore, vecMin, output); + laststore = vecMin; + } + uint32_t len = (uint32_t)(output - initoutput); + + // we finish the rest off using a scalar algorithm + // could be improved? + // conditionally stores the last value of laststore as well as all but the + // last value of vecMax, + // we store to "buffer" + int leftoversize = store_unique_xor(laststore, vecMax, buffer); + uint16_t vec7 = (uint16_t)_mm_extract_epi16(vecMax, 7); + uint16_t vec6 = (uint16_t)_mm_extract_epi16(vecMax, 6); + if (vec7 != vec6) buffer[leftoversize++] = vec7; + if (pos1 == len1) { + memcpy(buffer + leftoversize, array1 + 8 * pos1, + (length1 - 8 * len1) * sizeof(uint16_t)); + leftoversize += length1 - 8 * len1; + if (leftoversize == 0) { // trivial case + memcpy(output, array2 + 8 * pos2, + (length2 - 8 * pos2) * sizeof(uint16_t)); + len += (length2 - 8 * pos2); + } else { + qsort(buffer, leftoversize, sizeof(uint16_t), uint16_compare); + leftoversize = unique_xor(buffer, leftoversize); + len += xor_uint16(buffer, leftoversize, array2 + 8 * pos2, + length2 - 8 * pos2, output); + } + } else { + memcpy(buffer + leftoversize, array2 + 8 * pos2, + (length2 - 8 * len2) * sizeof(uint16_t)); + leftoversize += length2 - 8 * len2; + if (leftoversize == 0) { // trivial case + memcpy(output, array1 + 8 * pos1, + (length1 - 8 * pos1) * sizeof(uint16_t)); + len += (length1 - 8 * pos1); + } else { + qsort(buffer, leftoversize, sizeof(uint16_t), uint16_compare); + leftoversize = unique_xor(buffer, leftoversize); + len += xor_uint16(buffer, leftoversize, array1 + 8 * pos1, + length1 - 8 * pos1, output); + } + } + return len; +} +CROARING_UNTARGET_AVX2 +/** + * End of SIMD 16-bit XOR code + */ + +#endif // CROARING_IS_X64 + +size_t union_uint32(const uint32_t *set_1, size_t size_1, const uint32_t *set_2, + size_t size_2, uint32_t *buffer) { + size_t pos = 0, idx_1 = 0, idx_2 = 0; + + if (0 == size_2) { + memmove(buffer, set_1, size_1 * sizeof(uint32_t)); + return size_1; + } + if (0 == size_1) { + memmove(buffer, set_2, size_2 * sizeof(uint32_t)); + return size_2; + } + + uint32_t val_1 = set_1[idx_1], val_2 = set_2[idx_2]; + + while (true) { + if (val_1 < val_2) { + buffer[pos++] = val_1; + ++idx_1; + if (idx_1 >= size_1) break; + val_1 = set_1[idx_1]; + } else if (val_2 < val_1) { + buffer[pos++] = val_2; + ++idx_2; + if (idx_2 >= size_2) break; + val_2 = set_2[idx_2]; + } else { + buffer[pos++] = val_1; + ++idx_1; + ++idx_2; + if (idx_1 >= size_1 || idx_2 >= size_2) break; + val_1 = set_1[idx_1]; + val_2 = set_2[idx_2]; + } + } + + if (idx_1 < size_1) { + const size_t n_elems = size_1 - idx_1; + memmove(buffer + pos, set_1 + idx_1, n_elems * sizeof(uint32_t)); + pos += n_elems; + } else if (idx_2 < size_2) { + const size_t n_elems = size_2 - idx_2; + memmove(buffer + pos, set_2 + idx_2, n_elems * sizeof(uint32_t)); + pos += n_elems; + } + + return pos; +} + +size_t union_uint32_card(const uint32_t *set_1, size_t size_1, + const uint32_t *set_2, size_t size_2) { + size_t pos = 0, idx_1 = 0, idx_2 = 0; + + if (0 == size_2) { + return size_1; + } + if (0 == size_1) { + return size_2; + } + + uint32_t val_1 = set_1[idx_1], val_2 = set_2[idx_2]; + + while (true) { + if (val_1 < val_2) { + ++idx_1; + ++pos; + if (idx_1 >= size_1) break; + val_1 = set_1[idx_1]; + } else if (val_2 < val_1) { + ++idx_2; + ++pos; + if (idx_2 >= size_2) break; + val_2 = set_2[idx_2]; + } else { + ++idx_1; + ++idx_2; + ++pos; + if (idx_1 >= size_1 || idx_2 >= size_2) break; + val_1 = set_1[idx_1]; + val_2 = set_2[idx_2]; + } + } + + if (idx_1 < size_1) { + const size_t n_elems = size_1 - idx_1; + pos += n_elems; + } else if (idx_2 < size_2) { + const size_t n_elems = size_2 - idx_2; + pos += n_elems; + } + return pos; +} + +size_t fast_union_uint16(const uint16_t *set_1, size_t size_1, + const uint16_t *set_2, size_t size_2, + uint16_t *buffer) { +#if CROARING_IS_X64 + if (croaring_hardware_support() & ROARING_SUPPORTS_AVX2) { + // compute union with smallest array first + if (size_1 < size_2) { + return union_vector16(set_1, (uint32_t)size_1, set_2, + (uint32_t)size_2, buffer); + } else { + return union_vector16(set_2, (uint32_t)size_2, set_1, + (uint32_t)size_1, buffer); + } + } else { + // compute union with smallest array first + if (size_1 < size_2) { + return union_uint16(set_1, size_1, set_2, size_2, buffer); + } else { + return union_uint16(set_2, size_2, set_1, size_1, buffer); + } + } +#else + // compute union with smallest array first + if (size_1 < size_2) { + return union_uint16(set_1, size_1, set_2, size_2, buffer); + } else { + return union_uint16(set_2, size_2, set_1, size_1, buffer); + } +#endif +} +#if CROARING_IS_X64 +#if CROARING_COMPILER_SUPPORTS_AVX512 +CROARING_TARGET_AVX512 +static inline bool _avx512_memequals(const void *s1, const void *s2, size_t n) { + const uint8_t *ptr1 = (const uint8_t *)s1; + const uint8_t *ptr2 = (const uint8_t *)s2; + const uint8_t *end1 = ptr1 + n; + const uint8_t *end8 = ptr1 + ((n >> 3) << 3); + const uint8_t *end32 = ptr1 + ((n >> 5) << 5); + const uint8_t *end64 = ptr1 + ((n >> 6) << 6); + + while (ptr1 < end64) { + __m512i r1 = _mm512_loadu_si512((const __m512i *)ptr1); + __m512i r2 = _mm512_loadu_si512((const __m512i *)ptr2); + + uint64_t mask = _mm512_cmpeq_epi8_mask(r1, r2); + + if (mask != UINT64_MAX) { + return false; + } + + ptr1 += 64; + ptr2 += 64; + } + + while (ptr1 < end32) { + __m256i r1 = _mm256_loadu_si256((const __m256i *)ptr1); + __m256i r2 = _mm256_loadu_si256((const __m256i *)ptr2); + int mask = _mm256_movemask_epi8(_mm256_cmpeq_epi8(r1, r2)); + if ((uint32_t)mask != UINT32_MAX) { + return false; + } + ptr1 += 32; + ptr2 += 32; + } + + while (ptr1 < end8) { + uint64_t v1, v2; + memcpy(&v1, ptr1, sizeof(uint64_t)); + memcpy(&v2, ptr2, sizeof(uint64_t)); + if (v1 != v2) { + return false; + } + ptr1 += 8; + ptr2 += 8; + } + + while (ptr1 < end1) { + if (*ptr1 != *ptr2) { + return false; + } + ptr1++; + ptr2++; + } + + return true; +} +CROARING_UNTARGET_AVX512 +#endif // CROARING_COMPILER_SUPPORTS_AVX512 + +CROARING_TARGET_AVX2 +static inline bool _avx2_memequals(const void *s1, const void *s2, size_t n) { + const uint8_t *ptr1 = (const uint8_t *)s1; + const uint8_t *ptr2 = (const uint8_t *)s2; + const uint8_t *end1 = ptr1 + n; + const uint8_t *end8 = ptr1 + n / 8 * 8; + const uint8_t *end32 = ptr1 + n / 32 * 32; + + while (ptr1 < end32) { + __m256i r1 = _mm256_loadu_si256((const __m256i *)ptr1); + __m256i r2 = _mm256_loadu_si256((const __m256i *)ptr2); + int mask = _mm256_movemask_epi8(_mm256_cmpeq_epi8(r1, r2)); + if ((uint32_t)mask != UINT32_MAX) { + return false; + } + ptr1 += 32; + ptr2 += 32; + } + + while (ptr1 < end8) { + uint64_t v1, v2; + memcpy(&v1, ptr1, sizeof(uint64_t)); + memcpy(&v2, ptr2, sizeof(uint64_t)); + if (v1 != v2) { + return false; + } + ptr1 += 8; + ptr2 += 8; + } + + while (ptr1 < end1) { + if (*ptr1 != *ptr2) { + return false; + } + ptr1++; + ptr2++; + } + + return true; +} +CROARING_UNTARGET_AVX2 +#endif + +bool memequals(const void *s1, const void *s2, size_t n) { + if (n == 0) { + return true; + } +#if CROARING_IS_X64 + int support = croaring_hardware_support(); +#if CROARING_COMPILER_SUPPORTS_AVX512 + if (support & ROARING_SUPPORTS_AVX512) { + return _avx512_memequals(s1, s2, n); + } else +#endif // CROARING_COMPILER_SUPPORTS_AVX512 + if (support & ROARING_SUPPORTS_AVX2) { + return _avx2_memequals(s1, s2, n); + } else { + return memcmp(s1, s2, n) == 0; + } +#else + return memcmp(s1, s2, n) == 0; +#endif +} + +#if CROARING_IS_X64 +#if CROARING_COMPILER_SUPPORTS_AVX512 +CROARING_TARGET_AVX512 +ALLOW_UNALIGNED +int avx512_array_container_to_uint32_array(void *vout, const uint16_t *array, + size_t cardinality, uint32_t base) { + int outpos = 0; + uint32_t *out = (uint32_t *)vout; + size_t i = 0; + for (; i + sizeof(__m256i) / sizeof(uint16_t) <= cardinality; + i += sizeof(__m256i) / sizeof(uint16_t)) { + __m256i vinput = _mm256_loadu_si256((const __m256i *)(array + i)); + __m512i voutput = _mm512_add_epi32(_mm512_cvtepu16_epi32(vinput), + _mm512_set1_epi32(base)); + _mm512_storeu_si512((__m512i *)(out + outpos), voutput); + outpos += sizeof(__m512i) / sizeof(uint32_t); + } + for (; i < cardinality; ++i) { + const uint32_t val = base + array[i]; + memcpy(out + outpos, &val, + sizeof(uint32_t)); // should be compiled as a MOV on x64 + outpos++; + } + return outpos; +} +CROARING_UNTARGET_AVX512 +#endif // #if CROARING_COMPILER_SUPPORTS_AVX512 +#endif // #if CROARING_IS_X64 + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif \ No newline at end of file diff --git a/contrib/libs/croaring/src/art/art.c b/contrib/libs/croaring/src/art/art.c new file mode 100644 index 000000000000..20a346f8d959 --- /dev/null +++ b/contrib/libs/croaring/src/art/art.c @@ -0,0 +1,1897 @@ +#include +#include +#include + +#include +#include +#include + +#define CROARING_ART_NODE4_TYPE 0 +#define CROARING_ART_NODE16_TYPE 1 +#define CROARING_ART_NODE48_TYPE 2 +#define CROARING_ART_NODE256_TYPE 3 +#define CROARING_ART_NUM_TYPES 4 + +// Node48 placeholder value to indicate no child is present at this key index. +#define CROARING_ART_NODE48_EMPTY_VAL 48 + +// We use the least significant bit of node pointers to indicate whether a node +// is a leaf or an inner node. This is never surfaced to the user. +// +// Using pointer tagging to indicate leaves not only saves a bit of memory by +// sparing the typecode, but also allows us to use an intrusive leaf struct. +// Using an intrusive leaf struct leaves leaf allocation up to the user. Upon +// deallocation of the ART, we know not to free the leaves without having to +// dereference the leaf pointers. +// +// All internal operations on leaves should use CROARING_CAST_LEAF before using +// the leaf. The only places that use CROARING_SET_LEAF are locations where a +// field is directly assigned to a leaf pointer. After using CROARING_SET_LEAF, +// the leaf should be treated as a node of unknown type. +#define CROARING_IS_LEAF(p) (((uintptr_t)(p) & 1)) +#define CROARING_SET_LEAF(p) ((art_node_t *)((uintptr_t)(p) | 1)) +#define CROARING_CAST_LEAF(p) ((art_leaf_t *)((void *)((uintptr_t)(p) & ~1))) + +#define CROARING_NODE48_AVAILABLE_CHILDREN_MASK ((UINT64_C(1) << 48) - 1) + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +typedef uint8_t art_typecode_t; + +// Aliasing with a "leaf" naming so that its purpose is clearer in the context +// of the trie internals. +typedef art_val_t art_leaf_t; + +typedef struct art_internal_validate_s { + const char **reason; + art_validate_cb_t validate_cb; + + int depth; + art_key_chunk_t current_key[ART_KEY_BYTES]; +} art_internal_validate_t; + +// Set the reason message, and return false for convenience. +static inline bool art_validate_fail(const art_internal_validate_t *validate, + const char *msg) { + *validate->reason = msg; + return false; +} + +// Inner node, with prefix. +// +// We use a fixed-length array as a pointer would be larger than the array. +typedef struct art_inner_node_s { + art_typecode_t typecode; + uint8_t prefix_size; + uint8_t prefix[ART_KEY_BYTES - 1]; +} art_inner_node_t; + +// Inner node types. + +// Node4: key[i] corresponds with children[i]. Keys are sorted. +typedef struct art_node4_s { + art_inner_node_t base; + uint8_t count; + uint8_t keys[4]; + art_node_t *children[4]; +} art_node4_t; + +// Node16: key[i] corresponds with children[i]. Keys are sorted. +typedef struct art_node16_s { + art_inner_node_t base; + uint8_t count; + uint8_t keys[16]; + art_node_t *children[16]; +} art_node16_t; + +// Node48: key[i] corresponds with children[key[i]] if key[i] != +// CROARING_ART_NODE48_EMPTY_VAL. Keys are naturally sorted due to direct +// indexing. +typedef struct art_node48_s { + art_inner_node_t base; + uint8_t count; + // Bitset where the ith bit is set if children[i] is available + // Because there are at most 48 children, only the bottom 48 bits are used. + uint64_t available_children; + uint8_t keys[256]; + art_node_t *children[48]; +} art_node48_t; + +// Node256: children[i] is directly indexed by key chunk. A child is present if +// children[i] != NULL. +typedef struct art_node256_s { + art_inner_node_t base; + uint16_t count; + art_node_t *children[256]; +} art_node256_t; + +// Helper struct to refer to a child within a node at a specific index. +typedef struct art_indexed_child_s { + art_node_t *child; + uint8_t index; + art_key_chunk_t key_chunk; +} art_indexed_child_t; + +static inline bool art_is_leaf(const art_node_t *node) { + return CROARING_IS_LEAF(node); +} + +static void art_leaf_populate(art_leaf_t *leaf, const art_key_chunk_t key[]) { + memcpy(leaf->key, key, ART_KEY_BYTES); +} + +static inline uint8_t art_get_type(const art_inner_node_t *node) { + return node->typecode; +} + +static inline void art_init_inner_node(art_inner_node_t *node, + art_typecode_t typecode, + const art_key_chunk_t prefix[], + uint8_t prefix_size) { + node->typecode = typecode; + node->prefix_size = prefix_size; + memcpy(node->prefix, prefix, prefix_size * sizeof(art_key_chunk_t)); +} + +static void art_free_node(art_node_t *node); + +// ===================== Start of node-specific functions ====================== + +static art_node4_t *art_node4_create(const art_key_chunk_t prefix[], + uint8_t prefix_size); +static art_node16_t *art_node16_create(const art_key_chunk_t prefix[], + uint8_t prefix_size); +static art_node48_t *art_node48_create(const art_key_chunk_t prefix[], + uint8_t prefix_size); +static art_node256_t *art_node256_create(const art_key_chunk_t prefix[], + uint8_t prefix_size); + +static art_node_t *art_node4_insert(art_node4_t *node, art_node_t *child, + uint8_t key); +static art_node_t *art_node16_insert(art_node16_t *node, art_node_t *child, + uint8_t key); +static art_node_t *art_node48_insert(art_node48_t *node, art_node_t *child, + uint8_t key); +static art_node_t *art_node256_insert(art_node256_t *node, art_node_t *child, + uint8_t key); + +static art_node4_t *art_node4_create(const art_key_chunk_t prefix[], + uint8_t prefix_size) { + art_node4_t *node = (art_node4_t *)roaring_malloc(sizeof(art_node4_t)); + art_init_inner_node(&node->base, CROARING_ART_NODE4_TYPE, prefix, + prefix_size); + node->count = 0; + return node; +} + +static void art_free_node4(art_node4_t *node) { + for (size_t i = 0; i < node->count; ++i) { + art_free_node(node->children[i]); + } + roaring_free(node); +} + +static inline art_node_t *art_node4_find_child(const art_node4_t *node, + art_key_chunk_t key) { + for (size_t i = 0; i < node->count; ++i) { + if (node->keys[i] == key) { + return node->children[i]; + } + } + return NULL; +} + +static art_node_t *art_node4_insert(art_node4_t *node, art_node_t *child, + uint8_t key) { + if (node->count < 4) { + size_t idx = 0; + for (; idx < node->count; ++idx) { + if (node->keys[idx] > key) { + break; + } + } + size_t after = node->count - idx; + // Shift other keys to maintain sorted order. + memmove(node->keys + idx + 1, node->keys + idx, + after * sizeof(art_key_chunk_t)); + memmove(node->children + idx + 1, node->children + idx, + after * sizeof(art_node_t *)); + + node->children[idx] = child; + node->keys[idx] = key; + node->count++; + return (art_node_t *)node; + } + art_node16_t *new_node = + art_node16_create(node->base.prefix, node->base.prefix_size); + // Instead of calling insert, this could be specialized to 2x memcpy and + // setting the count. + for (size_t i = 0; i < 4; ++i) { + art_node16_insert(new_node, node->children[i], node->keys[i]); + } + roaring_free(node); + return art_node16_insert(new_node, child, key); +} + +static inline art_node_t *art_node4_erase(art_node4_t *node, + art_key_chunk_t key_chunk) { + int idx = -1; + for (size_t i = 0; i < node->count; ++i) { + if (node->keys[i] == key_chunk) { + idx = i; + } + } + if (idx == -1) { + return (art_node_t *)node; + } + if (node->count == 2) { + // Only one child remains after erasing, so compress the path by + // removing this node. + uint8_t other_idx = idx ^ 1; + art_node_t *remaining_child = node->children[other_idx]; + art_key_chunk_t remaining_child_key = node->keys[other_idx]; + if (!art_is_leaf(remaining_child)) { + // Correct the prefix of the child node. + art_inner_node_t *inner_node = (art_inner_node_t *)remaining_child; + memmove(inner_node->prefix + node->base.prefix_size + 1, + inner_node->prefix, inner_node->prefix_size); + memcpy(inner_node->prefix, node->base.prefix, + node->base.prefix_size); + inner_node->prefix[node->base.prefix_size] = remaining_child_key; + inner_node->prefix_size += node->base.prefix_size + 1; + } + roaring_free(node); + return remaining_child; + } + // Shift other keys to maintain sorted order. + size_t after_next = node->count - idx - 1; + memmove(node->keys + idx, node->keys + idx + 1, + after_next * sizeof(art_key_chunk_t)); + memmove(node->children + idx, node->children + idx + 1, + after_next * sizeof(art_node_t *)); + node->count--; + return (art_node_t *)node; +} + +static inline void art_node4_replace(art_node4_t *node, + art_key_chunk_t key_chunk, + art_node_t *new_child) { + for (size_t i = 0; i < node->count; ++i) { + if (node->keys[i] == key_chunk) { + node->children[i] = new_child; + return; + } + } +} + +static inline art_indexed_child_t art_node4_next_child(const art_node4_t *node, + int index) { + art_indexed_child_t indexed_child; + index++; + if (index >= node->count) { + indexed_child.child = NULL; + return indexed_child; + } + indexed_child.index = index; + indexed_child.child = node->children[index]; + indexed_child.key_chunk = node->keys[index]; + return indexed_child; +} + +static inline art_indexed_child_t art_node4_prev_child(const art_node4_t *node, + int index) { + if (index > node->count) { + index = node->count; + } + index--; + art_indexed_child_t indexed_child; + if (index < 0) { + indexed_child.child = NULL; + return indexed_child; + } + indexed_child.index = index; + indexed_child.child = node->children[index]; + indexed_child.key_chunk = node->keys[index]; + return indexed_child; +} + +static inline art_indexed_child_t art_node4_child_at(const art_node4_t *node, + int index) { + art_indexed_child_t indexed_child; + if (index < 0 || index >= node->count) { + indexed_child.child = NULL; + return indexed_child; + } + indexed_child.index = index; + indexed_child.child = node->children[index]; + indexed_child.key_chunk = node->keys[index]; + return indexed_child; +} + +static inline art_indexed_child_t art_node4_lower_bound( + art_node4_t *node, art_key_chunk_t key_chunk) { + art_indexed_child_t indexed_child; + for (size_t i = 0; i < node->count; ++i) { + if (node->keys[i] >= key_chunk) { + indexed_child.index = i; + indexed_child.child = node->children[i]; + indexed_child.key_chunk = node->keys[i]; + return indexed_child; + } + } + indexed_child.child = NULL; + return indexed_child; +} + +static bool art_internal_validate_at(const art_node_t *node, + art_internal_validate_t validator); + +static bool art_node4_internal_validate(const art_node4_t *node, + art_internal_validate_t validator) { + if (node->count == 0) { + return art_validate_fail(&validator, "Node4 has no children"); + } + if (node->count > 4) { + return art_validate_fail(&validator, "Node4 has too many children"); + } + if (node->count == 1) { + return art_validate_fail( + &validator, "Node4 and child node should have been combined"); + } + validator.depth++; + for (int i = 0; i < node->count; ++i) { + if (i > 0) { + if (node->keys[i - 1] >= node->keys[i]) { + return art_validate_fail( + &validator, "Node4 keys are not strictly increasing"); + } + } + for (int j = i + 1; j < node->count; ++j) { + if (node->children[i] == node->children[j]) { + return art_validate_fail(&validator, + "Node4 has duplicate children"); + } + } + validator.current_key[validator.depth - 1] = node->keys[i]; + if (!art_internal_validate_at(node->children[i], validator)) { + return false; + } + } + return true; +} + +static art_node16_t *art_node16_create(const art_key_chunk_t prefix[], + uint8_t prefix_size) { + art_node16_t *node = (art_node16_t *)roaring_malloc(sizeof(art_node16_t)); + art_init_inner_node(&node->base, CROARING_ART_NODE16_TYPE, prefix, + prefix_size); + node->count = 0; + return node; +} + +static void art_free_node16(art_node16_t *node) { + for (size_t i = 0; i < node->count; ++i) { + art_free_node(node->children[i]); + } + roaring_free(node); +} + +static inline art_node_t *art_node16_find_child(const art_node16_t *node, + art_key_chunk_t key) { + for (size_t i = 0; i < node->count; ++i) { + if (node->keys[i] == key) { + return node->children[i]; + } + } + return NULL; +} + +static art_node_t *art_node16_insert(art_node16_t *node, art_node_t *child, + uint8_t key) { + if (node->count < 16) { + size_t idx = 0; + for (; idx < node->count; ++idx) { + if (node->keys[idx] > key) { + break; + } + } + size_t after = node->count - idx; + // Shift other keys to maintain sorted order. + memmove(node->keys + idx + 1, node->keys + idx, + after * sizeof(art_key_chunk_t)); + memmove(node->children + idx + 1, node->children + idx, + after * sizeof(art_node_t *)); + + node->children[idx] = child; + node->keys[idx] = key; + node->count++; + return (art_node_t *)node; + } + art_node48_t *new_node = + art_node48_create(node->base.prefix, node->base.prefix_size); + for (size_t i = 0; i < 16; ++i) { + art_node48_insert(new_node, node->children[i], node->keys[i]); + } + roaring_free(node); + return art_node48_insert(new_node, child, key); +} + +static inline art_node_t *art_node16_erase(art_node16_t *node, + uint8_t key_chunk) { + for (size_t i = 0; i < node->count; ++i) { + if (node->keys[i] == key_chunk) { + // Shift other keys to maintain sorted order. + size_t after_next = node->count - i - 1; + memmove(node->keys + i, node->keys + i + 1, + after_next * sizeof(key_chunk)); + memmove(node->children + i, node->children + i + 1, + after_next * sizeof(art_node_t *)); + node->count--; + break; + } + } + if (node->count > 4) { + return (art_node_t *)node; + } + art_node4_t *new_node = + art_node4_create(node->base.prefix, node->base.prefix_size); + // Instead of calling insert, this could be specialized to 2x memcpy and + // setting the count. + for (size_t i = 0; i < 4; ++i) { + art_node4_insert(new_node, node->children[i], node->keys[i]); + } + roaring_free(node); + return (art_node_t *)new_node; +} + +static inline void art_node16_replace(art_node16_t *node, + art_key_chunk_t key_chunk, + art_node_t *new_child) { + for (uint8_t i = 0; i < node->count; ++i) { + if (node->keys[i] == key_chunk) { + node->children[i] = new_child; + return; + } + } +} + +static inline art_indexed_child_t art_node16_next_child( + const art_node16_t *node, int index) { + art_indexed_child_t indexed_child; + index++; + if (index >= node->count) { + indexed_child.child = NULL; + return indexed_child; + } + indexed_child.index = index; + indexed_child.child = node->children[index]; + indexed_child.key_chunk = node->keys[index]; + return indexed_child; +} + +static inline art_indexed_child_t art_node16_prev_child( + const art_node16_t *node, int index) { + if (index > node->count) { + index = node->count; + } + index--; + art_indexed_child_t indexed_child; + if (index < 0) { + indexed_child.child = NULL; + return indexed_child; + } + indexed_child.index = index; + indexed_child.child = node->children[index]; + indexed_child.key_chunk = node->keys[index]; + return indexed_child; +} + +static inline art_indexed_child_t art_node16_child_at(const art_node16_t *node, + int index) { + art_indexed_child_t indexed_child; + if (index < 0 || index >= node->count) { + indexed_child.child = NULL; + return indexed_child; + } + indexed_child.index = index; + indexed_child.child = node->children[index]; + indexed_child.key_chunk = node->keys[index]; + return indexed_child; +} + +static inline art_indexed_child_t art_node16_lower_bound( + art_node16_t *node, art_key_chunk_t key_chunk) { + art_indexed_child_t indexed_child; + for (size_t i = 0; i < node->count; ++i) { + if (node->keys[i] >= key_chunk) { + indexed_child.index = i; + indexed_child.child = node->children[i]; + indexed_child.key_chunk = node->keys[i]; + return indexed_child; + } + } + indexed_child.child = NULL; + return indexed_child; +} + +static bool art_node16_internal_validate(const art_node16_t *node, + art_internal_validate_t validator) { + if (node->count <= 4) { + return art_validate_fail(&validator, "Node16 has too few children"); + } + if (node->count > 16) { + return art_validate_fail(&validator, "Node16 has too many children"); + } + validator.depth++; + for (int i = 0; i < node->count; ++i) { + if (i > 0) { + if (node->keys[i - 1] >= node->keys[i]) { + return art_validate_fail( + &validator, "Node16 keys are not strictly increasing"); + } + } + for (int j = i + 1; j < node->count; ++j) { + if (node->children[i] == node->children[j]) { + return art_validate_fail(&validator, + "Node16 has duplicate children"); + } + } + validator.current_key[validator.depth - 1] = node->keys[i]; + if (!art_internal_validate_at(node->children[i], validator)) { + return false; + } + } + return true; +} + +static art_node48_t *art_node48_create(const art_key_chunk_t prefix[], + uint8_t prefix_size) { + art_node48_t *node = (art_node48_t *)roaring_malloc(sizeof(art_node48_t)); + art_init_inner_node(&node->base, CROARING_ART_NODE48_TYPE, prefix, + prefix_size); + node->count = 0; + node->available_children = CROARING_NODE48_AVAILABLE_CHILDREN_MASK; + for (size_t i = 0; i < 256; ++i) { + node->keys[i] = CROARING_ART_NODE48_EMPTY_VAL; + } + return node; +} + +static void art_free_node48(art_node48_t *node) { + uint64_t used_children = + (node->available_children) ^ CROARING_NODE48_AVAILABLE_CHILDREN_MASK; + while (used_children != 0) { + // We checked above that used_children is not zero + uint8_t child_idx = roaring_trailing_zeroes(used_children); + art_free_node(node->children[child_idx]); + used_children &= ~(UINT64_C(1) << child_idx); + } + roaring_free(node); +} + +static inline art_node_t *art_node48_find_child(const art_node48_t *node, + art_key_chunk_t key) { + uint8_t val_idx = node->keys[key]; + if (val_idx != CROARING_ART_NODE48_EMPTY_VAL) { + return node->children[val_idx]; + } + return NULL; +} + +static art_node_t *art_node48_insert(art_node48_t *node, art_node_t *child, + uint8_t key) { + if (node->count < 48) { + // node->available_children is only zero when the node is full (count == + // 48), we just checked count < 48 + uint8_t val_idx = roaring_trailing_zeroes(node->available_children); + node->keys[key] = val_idx; + node->children[val_idx] = child; + node->count++; + node->available_children &= ~(UINT64_C(1) << val_idx); + return (art_node_t *)node; + } + art_node256_t *new_node = + art_node256_create(node->base.prefix, node->base.prefix_size); + for (size_t i = 0; i < 256; ++i) { + uint8_t val_idx = node->keys[i]; + if (val_idx != CROARING_ART_NODE48_EMPTY_VAL) { + art_node256_insert(new_node, node->children[val_idx], i); + } + } + roaring_free(node); + return art_node256_insert(new_node, child, key); +} + +static inline art_node_t *art_node48_erase(art_node48_t *node, + uint8_t key_chunk) { + uint8_t val_idx = node->keys[key_chunk]; + if (val_idx == CROARING_ART_NODE48_EMPTY_VAL) { + return (art_node_t *)node; + } + node->keys[key_chunk] = CROARING_ART_NODE48_EMPTY_VAL; + node->available_children |= UINT64_C(1) << val_idx; + node->count--; + if (node->count > 16) { + return (art_node_t *)node; + } + + art_node16_t *new_node = + art_node16_create(node->base.prefix, node->base.prefix_size); + for (size_t i = 0; i < 256; ++i) { + val_idx = node->keys[i]; + if (val_idx != CROARING_ART_NODE48_EMPTY_VAL) { + art_node16_insert(new_node, node->children[val_idx], i); + } + } + roaring_free(node); + return (art_node_t *)new_node; +} + +static inline void art_node48_replace(art_node48_t *node, + art_key_chunk_t key_chunk, + art_node_t *new_child) { + uint8_t val_idx = node->keys[key_chunk]; + assert(val_idx != CROARING_ART_NODE48_EMPTY_VAL); + node->children[val_idx] = new_child; +} + +static inline art_indexed_child_t art_node48_next_child( + const art_node48_t *node, int index) { + art_indexed_child_t indexed_child; + index++; + for (size_t i = index; i < 256; ++i) { + if (node->keys[i] != CROARING_ART_NODE48_EMPTY_VAL) { + indexed_child.index = i; + indexed_child.child = node->children[node->keys[i]]; + indexed_child.key_chunk = i; + return indexed_child; + } + } + indexed_child.child = NULL; + return indexed_child; +} + +static inline art_indexed_child_t art_node48_prev_child( + const art_node48_t *node, int index) { + if (index > 256) { + index = 256; + } + index--; + art_indexed_child_t indexed_child; + for (int i = index; i >= 0; --i) { + if (node->keys[i] != CROARING_ART_NODE48_EMPTY_VAL) { + indexed_child.index = i; + indexed_child.child = node->children[node->keys[i]]; + indexed_child.key_chunk = i; + return indexed_child; + } + } + indexed_child.child = NULL; + return indexed_child; +} + +static inline art_indexed_child_t art_node48_child_at(const art_node48_t *node, + int index) { + art_indexed_child_t indexed_child; + if (index < 0 || index >= 256) { + indexed_child.child = NULL; + return indexed_child; + } + indexed_child.index = index; + indexed_child.child = node->children[node->keys[index]]; + indexed_child.key_chunk = index; + return indexed_child; +} + +static inline art_indexed_child_t art_node48_lower_bound( + art_node48_t *node, art_key_chunk_t key_chunk) { + art_indexed_child_t indexed_child; + for (size_t i = key_chunk; i < 256; ++i) { + if (node->keys[i] != CROARING_ART_NODE48_EMPTY_VAL) { + indexed_child.index = i; + indexed_child.child = node->children[node->keys[i]]; + indexed_child.key_chunk = i; + return indexed_child; + } + } + indexed_child.child = NULL; + return indexed_child; +} + +static bool art_node48_internal_validate(const art_node48_t *node, + art_internal_validate_t validator) { + if (node->count <= 16) { + return art_validate_fail(&validator, "Node48 has too few children"); + } + if (node->count > 48) { + return art_validate_fail(&validator, "Node48 has too many children"); + } + uint64_t used_children = 0; + for (int i = 0; i < 256; ++i) { + uint8_t child_idx = node->keys[i]; + if (child_idx != CROARING_ART_NODE48_EMPTY_VAL) { + if (used_children & (UINT64_C(1) << child_idx)) { + return art_validate_fail( + &validator, "Node48 keys point to the same child index"); + } + + art_node_t *child = node->children[child_idx]; + if (child == NULL) { + return art_validate_fail(&validator, "Node48 has a NULL child"); + } + used_children |= UINT64_C(1) << child_idx; + } + } + uint64_t expected_used_children = + (node->available_children) ^ CROARING_NODE48_AVAILABLE_CHILDREN_MASK; + if (used_children != expected_used_children) { + return art_validate_fail( + &validator, + "Node48 available_children does not match actual children"); + } + while (used_children != 0) { + uint8_t child_idx = roaring_trailing_zeroes(used_children); + used_children &= used_children - 1; + + uint64_t other_children = used_children; + while (other_children != 0) { + uint8_t other_child_idx = roaring_trailing_zeroes(other_children); + if (node->children[child_idx] == node->children[other_child_idx]) { + return art_validate_fail(&validator, + "Node48 has duplicate children"); + } + other_children &= other_children - 1; + } + } + + validator.depth++; + for (int i = 0; i < 256; ++i) { + if (node->keys[i] != CROARING_ART_NODE48_EMPTY_VAL) { + validator.current_key[validator.depth - 1] = i; + if (!art_internal_validate_at(node->children[node->keys[i]], + validator)) { + return false; + } + } + } + return true; +} + +static art_node256_t *art_node256_create(const art_key_chunk_t prefix[], + uint8_t prefix_size) { + art_node256_t *node = + (art_node256_t *)roaring_malloc(sizeof(art_node256_t)); + art_init_inner_node(&node->base, CROARING_ART_NODE256_TYPE, prefix, + prefix_size); + node->count = 0; + for (size_t i = 0; i < 256; ++i) { + node->children[i] = NULL; + } + return node; +} + +static void art_free_node256(art_node256_t *node) { + for (size_t i = 0; i < 256; ++i) { + if (node->children[i] != NULL) { + art_free_node(node->children[i]); + } + } + roaring_free(node); +} + +static inline art_node_t *art_node256_find_child(const art_node256_t *node, + art_key_chunk_t key) { + return node->children[key]; +} + +static art_node_t *art_node256_insert(art_node256_t *node, art_node_t *child, + uint8_t key) { + node->children[key] = child; + node->count++; + return (art_node_t *)node; +} + +static inline art_node_t *art_node256_erase(art_node256_t *node, + uint8_t key_chunk) { + node->children[key_chunk] = NULL; + node->count--; + if (node->count > 48) { + return (art_node_t *)node; + } + + art_node48_t *new_node = + art_node48_create(node->base.prefix, node->base.prefix_size); + for (size_t i = 0; i < 256; ++i) { + if (node->children[i] != NULL) { + art_node48_insert(new_node, node->children[i], i); + } + } + roaring_free(node); + return (art_node_t *)new_node; +} + +static inline void art_node256_replace(art_node256_t *node, + art_key_chunk_t key_chunk, + art_node_t *new_child) { + node->children[key_chunk] = new_child; +} + +static inline art_indexed_child_t art_node256_next_child( + const art_node256_t *node, int index) { + art_indexed_child_t indexed_child; + index++; + for (size_t i = index; i < 256; ++i) { + if (node->children[i] != NULL) { + indexed_child.index = i; + indexed_child.child = node->children[i]; + indexed_child.key_chunk = i; + return indexed_child; + } + } + indexed_child.child = NULL; + return indexed_child; +} + +static inline art_indexed_child_t art_node256_prev_child( + const art_node256_t *node, int index) { + if (index > 256) { + index = 256; + } + index--; + art_indexed_child_t indexed_child; + for (int i = index; i >= 0; --i) { + if (node->children[i] != NULL) { + indexed_child.index = i; + indexed_child.child = node->children[i]; + indexed_child.key_chunk = i; + return indexed_child; + } + } + indexed_child.child = NULL; + return indexed_child; +} + +static inline art_indexed_child_t art_node256_child_at( + const art_node256_t *node, int index) { + art_indexed_child_t indexed_child; + if (index < 0 || index >= 256) { + indexed_child.child = NULL; + return indexed_child; + } + indexed_child.index = index; + indexed_child.child = node->children[index]; + indexed_child.key_chunk = index; + return indexed_child; +} + +static inline art_indexed_child_t art_node256_lower_bound( + art_node256_t *node, art_key_chunk_t key_chunk) { + art_indexed_child_t indexed_child; + for (size_t i = key_chunk; i < 256; ++i) { + if (node->children[i] != NULL) { + indexed_child.index = i; + indexed_child.child = node->children[i]; + indexed_child.key_chunk = i; + return indexed_child; + } + } + indexed_child.child = NULL; + return indexed_child; +} + +static bool art_node256_internal_validate(const art_node256_t *node, + art_internal_validate_t validator) { + if (node->count <= 48) { + return art_validate_fail(&validator, "Node256 has too few children"); + } + if (node->count > 256) { + return art_validate_fail(&validator, "Node256 has too many children"); + } + validator.depth++; + int actual_count = 0; + for (int i = 0; i < 256; ++i) { + if (node->children[i] != NULL) { + actual_count++; + + for (int j = i + 1; j < 256; ++j) { + if (node->children[i] == node->children[j]) { + return art_validate_fail(&validator, + "Node256 has duplicate children"); + } + } + + validator.current_key[validator.depth - 1] = i; + if (!art_internal_validate_at(node->children[i], validator)) { + return false; + } + } + } + if (actual_count != node->count) { + return art_validate_fail( + &validator, "Node256 count does not match actual children"); + } + return true; +} + +// Finds the child with the given key chunk in the inner node, returns NULL if +// no such child is found. +static art_node_t *art_find_child(const art_inner_node_t *node, + art_key_chunk_t key_chunk) { + switch (art_get_type(node)) { + case CROARING_ART_NODE4_TYPE: + return art_node4_find_child((art_node4_t *)node, key_chunk); + case CROARING_ART_NODE16_TYPE: + return art_node16_find_child((art_node16_t *)node, key_chunk); + case CROARING_ART_NODE48_TYPE: + return art_node48_find_child((art_node48_t *)node, key_chunk); + case CROARING_ART_NODE256_TYPE: + return art_node256_find_child((art_node256_t *)node, key_chunk); + default: + assert(false); + return NULL; + } +} + +// Replaces the child with the given key chunk in the inner node. +static void art_replace(art_inner_node_t *node, art_key_chunk_t key_chunk, + art_node_t *new_child) { + switch (art_get_type(node)) { + case CROARING_ART_NODE4_TYPE: + art_node4_replace((art_node4_t *)node, key_chunk, new_child); + break; + case CROARING_ART_NODE16_TYPE: + art_node16_replace((art_node16_t *)node, key_chunk, new_child); + break; + case CROARING_ART_NODE48_TYPE: + art_node48_replace((art_node48_t *)node, key_chunk, new_child); + break; + case CROARING_ART_NODE256_TYPE: + art_node256_replace((art_node256_t *)node, key_chunk, new_child); + break; + default: + assert(false); + } +} + +// Erases the child with the given key chunk from the inner node, returns the +// updated node (the same as the initial node if it was not shrunk). +static art_node_t *art_node_erase(art_inner_node_t *node, + art_key_chunk_t key_chunk) { + switch (art_get_type(node)) { + case CROARING_ART_NODE4_TYPE: + return art_node4_erase((art_node4_t *)node, key_chunk); + case CROARING_ART_NODE16_TYPE: + return art_node16_erase((art_node16_t *)node, key_chunk); + case CROARING_ART_NODE48_TYPE: + return art_node48_erase((art_node48_t *)node, key_chunk); + case CROARING_ART_NODE256_TYPE: + return art_node256_erase((art_node256_t *)node, key_chunk); + default: + assert(false); + return NULL; + } +} + +// Inserts the leaf with the given key chunk in the inner node, returns a +// pointer to the (possibly expanded) node. +static art_node_t *art_node_insert_leaf(art_inner_node_t *node, + art_key_chunk_t key_chunk, + art_leaf_t *leaf) { + art_node_t *child = (art_node_t *)(CROARING_SET_LEAF(leaf)); + switch (art_get_type(node)) { + case CROARING_ART_NODE4_TYPE: + return art_node4_insert((art_node4_t *)node, child, key_chunk); + case CROARING_ART_NODE16_TYPE: + return art_node16_insert((art_node16_t *)node, child, key_chunk); + case CROARING_ART_NODE48_TYPE: + return art_node48_insert((art_node48_t *)node, child, key_chunk); + case CROARING_ART_NODE256_TYPE: + return art_node256_insert((art_node256_t *)node, child, key_chunk); + default: + assert(false); + return NULL; + } +} + +// Frees the node and its children. Leaves are freed by the user. +static void art_free_node(art_node_t *node) { + if (art_is_leaf(node)) { + // We leave it up to the user to free leaves. + return; + } + switch (art_get_type((art_inner_node_t *)node)) { + case CROARING_ART_NODE4_TYPE: + art_free_node4((art_node4_t *)node); + break; + case CROARING_ART_NODE16_TYPE: + art_free_node16((art_node16_t *)node); + break; + case CROARING_ART_NODE48_TYPE: + art_free_node48((art_node48_t *)node); + break; + case CROARING_ART_NODE256_TYPE: + art_free_node256((art_node256_t *)node); + break; + default: + assert(false); + } +} + +// Returns the next child in key order, or NULL if called on a leaf. +// Provided index may be in the range [-1, 255]. +static art_indexed_child_t art_node_next_child(const art_node_t *node, + int index) { + if (art_is_leaf(node)) { + art_indexed_child_t indexed_child; + indexed_child.child = NULL; + return indexed_child; + } + switch (art_get_type((art_inner_node_t *)node)) { + case CROARING_ART_NODE4_TYPE: + return art_node4_next_child((art_node4_t *)node, index); + case CROARING_ART_NODE16_TYPE: + return art_node16_next_child((art_node16_t *)node, index); + case CROARING_ART_NODE48_TYPE: + return art_node48_next_child((art_node48_t *)node, index); + case CROARING_ART_NODE256_TYPE: + return art_node256_next_child((art_node256_t *)node, index); + default: + assert(false); + return (art_indexed_child_t){0}; + } +} + +// Returns the previous child in key order, or NULL if called on a leaf. +// Provided index may be in the range [0, 256]. +static art_indexed_child_t art_node_prev_child(const art_node_t *node, + int index) { + if (art_is_leaf(node)) { + art_indexed_child_t indexed_child; + indexed_child.child = NULL; + return indexed_child; + } + switch (art_get_type((art_inner_node_t *)node)) { + case CROARING_ART_NODE4_TYPE: + return art_node4_prev_child((art_node4_t *)node, index); + case CROARING_ART_NODE16_TYPE: + return art_node16_prev_child((art_node16_t *)node, index); + case CROARING_ART_NODE48_TYPE: + return art_node48_prev_child((art_node48_t *)node, index); + case CROARING_ART_NODE256_TYPE: + return art_node256_prev_child((art_node256_t *)node, index); + default: + assert(false); + return (art_indexed_child_t){0}; + } +} + +// Returns the child found at the provided index, or NULL if called on a leaf. +// Provided index is only valid if returned by art_node_(next|prev)_child. +static art_indexed_child_t art_node_child_at(const art_node_t *node, + int index) { + if (art_is_leaf(node)) { + art_indexed_child_t indexed_child; + indexed_child.child = NULL; + return indexed_child; + } + switch (art_get_type((art_inner_node_t *)node)) { + case CROARING_ART_NODE4_TYPE: + return art_node4_child_at((art_node4_t *)node, index); + case CROARING_ART_NODE16_TYPE: + return art_node16_child_at((art_node16_t *)node, index); + case CROARING_ART_NODE48_TYPE: + return art_node48_child_at((art_node48_t *)node, index); + case CROARING_ART_NODE256_TYPE: + return art_node256_child_at((art_node256_t *)node, index); + default: + assert(false); + return (art_indexed_child_t){0}; + } +} + +// Returns the child with the smallest key equal to or greater than the given +// key chunk, NULL if called on a leaf or no such child was found. +static art_indexed_child_t art_node_lower_bound(const art_node_t *node, + art_key_chunk_t key_chunk) { + if (art_is_leaf(node)) { + art_indexed_child_t indexed_child; + indexed_child.child = NULL; + return indexed_child; + } + switch (art_get_type((art_inner_node_t *)node)) { + case CROARING_ART_NODE4_TYPE: + return art_node4_lower_bound((art_node4_t *)node, key_chunk); + case CROARING_ART_NODE16_TYPE: + return art_node16_lower_bound((art_node16_t *)node, key_chunk); + case CROARING_ART_NODE48_TYPE: + return art_node48_lower_bound((art_node48_t *)node, key_chunk); + case CROARING_ART_NODE256_TYPE: + return art_node256_lower_bound((art_node256_t *)node, key_chunk); + default: + assert(false); + return (art_indexed_child_t){0}; + } +} + +// ====================== End of node-specific functions ======================= + +// Compares the given ranges of two keys, returns their relative order: +// * Key range 1 < key range 2: a negative value +// * Key range 1 == key range 2: 0 +// * Key range 1 > key range 2: a positive value +static inline int art_compare_prefix(const art_key_chunk_t key1[], + uint8_t key1_from, + const art_key_chunk_t key2[], + uint8_t key2_from, uint8_t length) { + return memcmp(key1 + key1_from, key2 + key2_from, length); +} + +// Compares two keys in full, see art_compare_prefix. +int art_compare_keys(const art_key_chunk_t key1[], + const art_key_chunk_t key2[]) { + return art_compare_prefix(key1, 0, key2, 0, ART_KEY_BYTES); +} + +// Returns the length of the common prefix between two key ranges. +static uint8_t art_common_prefix(const art_key_chunk_t key1[], + uint8_t key1_from, uint8_t key1_to, + const art_key_chunk_t key2[], + uint8_t key2_from, uint8_t key2_to) { + uint8_t min_len = key1_to - key1_from; + uint8_t key2_len = key2_to - key2_from; + if (key2_len < min_len) { + min_len = key2_len; + } + uint8_t offset = 0; + for (; offset < min_len; ++offset) { + if (key1[key1_from + offset] != key2[key2_from + offset]) { + return offset; + } + } + return offset; +} + +// Returns a pointer to the rootmost node where the value was inserted, may not +// be equal to `node`. +static art_node_t *art_insert_at(art_node_t *node, const art_key_chunk_t key[], + uint8_t depth, art_leaf_t *new_leaf) { + if (art_is_leaf(node)) { + art_leaf_t *leaf = CROARING_CAST_LEAF(node); + uint8_t common_prefix = art_common_prefix( + leaf->key, depth, ART_KEY_BYTES, key, depth, ART_KEY_BYTES); + + // Previously this was a leaf, create an inner node instead and add both + // the existing and new leaf to it. + art_node_t *new_node = + (art_node_t *)art_node4_create(key + depth, common_prefix); + + new_node = art_node_insert_leaf((art_inner_node_t *)new_node, + leaf->key[depth + common_prefix], leaf); + new_node = art_node_insert_leaf((art_inner_node_t *)new_node, + key[depth + common_prefix], new_leaf); + + // The new inner node is now the rootmost node. + return new_node; + } + art_inner_node_t *inner_node = (art_inner_node_t *)node; + // Not a leaf: inner node + uint8_t common_prefix = + art_common_prefix(inner_node->prefix, 0, inner_node->prefix_size, key, + depth, ART_KEY_BYTES); + if (common_prefix != inner_node->prefix_size) { + // Partial prefix match. Create a new internal node to hold the common + // prefix. + art_node4_t *node4 = + art_node4_create(inner_node->prefix, common_prefix); + + // Make the existing internal node a child of the new internal node. + node4 = (art_node4_t *)art_node4_insert( + node4, node, inner_node->prefix[common_prefix]); + + // Correct the prefix of the moved internal node, trimming off the chunk + // inserted into the new internal node. + inner_node->prefix_size = inner_node->prefix_size - common_prefix - 1; + if (inner_node->prefix_size > 0) { + // Move the remaining prefix to the correct position. + memmove(inner_node->prefix, inner_node->prefix + common_prefix + 1, + inner_node->prefix_size); + } + + // Insert the value in the new internal node. + return art_node_insert_leaf(&node4->base, key[common_prefix + depth], + new_leaf); + } + // Prefix matches entirely or node has no prefix. Look for an existing + // child. + art_key_chunk_t key_chunk = key[depth + common_prefix]; + art_node_t *child = art_find_child(inner_node, key_chunk); + if (child != NULL) { + art_node_t *new_child = + art_insert_at(child, key, depth + common_prefix + 1, new_leaf); + if (new_child != child) { + // Node type changed. + art_replace(inner_node, key_chunk, new_child); + } + return node; + } + return art_node_insert_leaf(inner_node, key_chunk, new_leaf); +} + +// Erase helper struct. +typedef struct art_erase_result_s { + // The rootmost node where the value was erased, may not be equal to `node`. + // If no value was removed, this is null. + art_node_t *rootmost_node; + + // Value removed, null if not removed. + art_val_t *value_erased; +} art_erase_result_t; + +// Searches for the given key starting at `node`, erases it if found. +static art_erase_result_t art_erase_at(art_node_t *node, + const art_key_chunk_t *key, + uint8_t depth) { + art_erase_result_t result; + result.rootmost_node = NULL; + result.value_erased = NULL; + + if (art_is_leaf(node)) { + art_leaf_t *leaf = CROARING_CAST_LEAF(node); + uint8_t common_prefix = art_common_prefix(leaf->key, 0, ART_KEY_BYTES, + key, 0, ART_KEY_BYTES); + if (common_prefix != ART_KEY_BYTES) { + // Leaf key mismatch. + return result; + } + result.value_erased = (art_val_t *)leaf; + return result; + } + art_inner_node_t *inner_node = (art_inner_node_t *)node; + uint8_t common_prefix = + art_common_prefix(inner_node->prefix, 0, inner_node->prefix_size, key, + depth, ART_KEY_BYTES); + if (common_prefix != inner_node->prefix_size) { + // Prefix mismatch. + return result; + } + art_key_chunk_t key_chunk = key[depth + common_prefix]; + art_node_t *child = art_find_child(inner_node, key_chunk); + if (child == NULL) { + // No child with key chunk. + return result; + } + // Try to erase the key further down. Skip the key chunk associated with the + // child in the node. + art_erase_result_t child_result = + art_erase_at(child, key, depth + common_prefix + 1); + if (child_result.value_erased == NULL) { + return result; + } + result.value_erased = child_result.value_erased; + result.rootmost_node = node; + if (child_result.rootmost_node == NULL) { + // Child node was fully erased, erase it from this node's children. + result.rootmost_node = art_node_erase(inner_node, key_chunk); + } else if (child_result.rootmost_node != child) { + // Child node was not fully erased, update the pointer to it in this + // node. + art_replace(inner_node, key_chunk, child_result.rootmost_node); + } + return result; +} + +// Searches for the given key starting at `node`, returns NULL if the key was +// not found. +static art_val_t *art_find_at(const art_node_t *node, + const art_key_chunk_t *key, uint8_t depth) { + while (!art_is_leaf(node)) { + art_inner_node_t *inner_node = (art_inner_node_t *)node; + uint8_t common_prefix = + art_common_prefix(inner_node->prefix, 0, inner_node->prefix_size, + key, depth, ART_KEY_BYTES); + if (common_prefix != inner_node->prefix_size) { + return NULL; + } + art_node_t *child = + art_find_child(inner_node, key[depth + inner_node->prefix_size]); + if (child == NULL) { + return NULL; + } + node = child; + // Include both the prefix and the child key chunk in the depth. + depth += inner_node->prefix_size + 1; + } + art_leaf_t *leaf = CROARING_CAST_LEAF(node); + if (depth >= ART_KEY_BYTES) { + return (art_val_t *)leaf; + } + uint8_t common_prefix = + art_common_prefix(leaf->key, 0, ART_KEY_BYTES, key, 0, ART_KEY_BYTES); + if (common_prefix == ART_KEY_BYTES) { + return (art_val_t *)leaf; + } + return NULL; +} + +// Returns the size in bytes of the subtrie. +size_t art_size_in_bytes_at(const art_node_t *node) { + if (art_is_leaf(node)) { + return 0; + } + size_t size = 0; + switch (art_get_type((art_inner_node_t *)node)) { + case CROARING_ART_NODE4_TYPE: { + size += sizeof(art_node4_t); + } break; + case CROARING_ART_NODE16_TYPE: { + size += sizeof(art_node16_t); + } break; + case CROARING_ART_NODE48_TYPE: { + size += sizeof(art_node48_t); + } break; + case CROARING_ART_NODE256_TYPE: { + size += sizeof(art_node256_t); + } break; + default: + assert(false); + break; + } + art_indexed_child_t indexed_child = art_node_next_child(node, -1); + while (indexed_child.child != NULL) { + size += art_size_in_bytes_at(indexed_child.child); + indexed_child = art_node_next_child(node, indexed_child.index); + } + return size; +} + +static void art_node_print_type(const art_node_t *node) { + if (art_is_leaf(node)) { + printf("Leaf"); + return; + } + switch (art_get_type((art_inner_node_t *)node)) { + case CROARING_ART_NODE4_TYPE: + printf("Node4"); + return; + case CROARING_ART_NODE16_TYPE: + printf("Node16"); + return; + case CROARING_ART_NODE48_TYPE: + printf("Node48"); + return; + case CROARING_ART_NODE256_TYPE: + printf("Node256"); + return; + default: + assert(false); + return; + } +} + +void art_node_printf(const art_node_t *node, uint8_t depth) { + if (art_is_leaf(node)) { + printf("{ type: Leaf, key: "); + art_leaf_t *leaf = CROARING_CAST_LEAF(node); + for (size_t i = 0; i < ART_KEY_BYTES; ++i) { + printf("%02x", leaf->key[i]); + } + printf(" }\n"); + return; + } + printf("{\n"); + depth++; + + printf("%*s", depth, ""); + printf("type: "); + art_node_print_type(node); + printf("\n"); + + art_inner_node_t *inner_node = (art_inner_node_t *)node; + printf("%*s", depth, ""); + printf("prefix_size: %d\n", inner_node->prefix_size); + + printf("%*s", depth, ""); + printf("prefix: "); + for (uint8_t i = 0; i < inner_node->prefix_size; ++i) { + printf("%02x", inner_node->prefix[i]); + } + printf("\n"); + + switch (art_get_type(inner_node)) { + case CROARING_ART_NODE4_TYPE: { + art_node4_t *node4 = (art_node4_t *)node; + for (uint8_t i = 0; i < node4->count; ++i) { + printf("%*s", depth, ""); + printf("key: %02x ", node4->keys[i]); + art_node_printf(node4->children[i], depth); + } + } break; + case CROARING_ART_NODE16_TYPE: { + art_node16_t *node16 = (art_node16_t *)node; + for (uint8_t i = 0; i < node16->count; ++i) { + printf("%*s", depth, ""); + printf("key: %02x ", node16->keys[i]); + art_node_printf(node16->children[i], depth); + } + } break; + case CROARING_ART_NODE48_TYPE: { + art_node48_t *node48 = (art_node48_t *)node; + for (int i = 0; i < 256; ++i) { + if (node48->keys[i] != CROARING_ART_NODE48_EMPTY_VAL) { + printf("%*s", depth, ""); + printf("key: %02x ", i); + printf("child: %02x ", node48->keys[i]); + art_node_printf(node48->children[node48->keys[i]], depth); + } + } + } break; + case CROARING_ART_NODE256_TYPE: { + art_node256_t *node256 = (art_node256_t *)node; + for (int i = 0; i < 256; ++i) { + if (node256->children[i] != NULL) { + printf("%*s", depth, ""); + printf("key: %02x ", i); + art_node_printf(node256->children[i], depth); + } + } + } break; + default: + assert(false); + break; + } + depth--; + printf("%*s", depth, ""); + printf("}\n"); +} + +void art_insert(art_t *art, const art_key_chunk_t *key, art_val_t *val) { + art_leaf_t *leaf = (art_leaf_t *)val; + art_leaf_populate(leaf, key); + if (art->root == NULL) { + art->root = (art_node_t *)CROARING_SET_LEAF(leaf); + return; + } + art->root = art_insert_at(art->root, key, 0, leaf); +} + +art_val_t *art_erase(art_t *art, const art_key_chunk_t *key) { + if (art->root == NULL) { + return NULL; + } + art_erase_result_t result = art_erase_at(art->root, key, 0); + if (result.value_erased == NULL) { + return NULL; + } + art->root = result.rootmost_node; + return result.value_erased; +} + +art_val_t *art_find(const art_t *art, const art_key_chunk_t *key) { + if (art->root == NULL) { + return NULL; + } + return art_find_at(art->root, key, 0); +} + +bool art_is_empty(const art_t *art) { return art->root == NULL; } + +void art_free(art_t *art) { + if (art->root == NULL) { + return; + } + art_free_node(art->root); +} + +size_t art_size_in_bytes(const art_t *art) { + size_t size = sizeof(art_t); + if (art->root != NULL) { + size += art_size_in_bytes_at(art->root); + } + return size; +} + +void art_printf(const art_t *art) { + if (art->root == NULL) { + return; + } + art_node_printf(art->root, 0); +} + +// Returns the current node that the iterator is positioned at. +static inline art_node_t *art_iterator_node(art_iterator_t *iterator) { + return iterator->frames[iterator->frame].node; +} + +// Sets the iterator key and value to the leaf's key and value. Always returns +// true for convenience. +static inline bool art_iterator_valid_loc(art_iterator_t *iterator, + art_leaf_t *leaf) { + iterator->frames[iterator->frame].node = CROARING_SET_LEAF(leaf); + iterator->frames[iterator->frame].index_in_node = 0; + memcpy(iterator->key, leaf->key, ART_KEY_BYTES); + iterator->value = (art_val_t *)leaf; + return true; +} + +// Invalidates the iterator key and value. Always returns false for convenience. +static inline bool art_iterator_invalid_loc(art_iterator_t *iterator) { + memset(iterator->key, 0, ART_KEY_BYTES); + iterator->value = NULL; + return false; +} + +// Moves the iterator one level down in the tree, given a node at the current +// level and the index of the child that we're going down to. +// +// Note: does not set the index at the new level. +static void art_iterator_down(art_iterator_t *iterator, + const art_inner_node_t *node, + uint8_t index_in_node) { + iterator->frames[iterator->frame].node = (art_node_t *)node; + iterator->frames[iterator->frame].index_in_node = index_in_node; + iterator->frame++; + art_indexed_child_t indexed_child = + art_node_child_at((art_node_t *)node, index_in_node); + assert(indexed_child.child != NULL); + iterator->frames[iterator->frame].node = indexed_child.child; + iterator->depth += node->prefix_size + 1; +} + +// Moves the iterator to the next/previous child of the current node. Returns +// the child moved to, or NULL if there is no neighboring child. +static art_node_t *art_iterator_neighbor_child( + art_iterator_t *iterator, const art_inner_node_t *inner_node, + bool forward) { + art_iterator_frame_t frame = iterator->frames[iterator->frame]; + art_indexed_child_t indexed_child; + if (forward) { + indexed_child = art_node_next_child(frame.node, frame.index_in_node); + } else { + indexed_child = art_node_prev_child(frame.node, frame.index_in_node); + } + if (indexed_child.child != NULL) { + art_iterator_down(iterator, inner_node, indexed_child.index); + } + return indexed_child.child; +} + +// Moves the iterator one level up in the tree, returns false if not possible. +static bool art_iterator_up(art_iterator_t *iterator) { + if (iterator->frame == 0) { + return false; + } + iterator->frame--; + // We went up, so we are at an inner node. + iterator->depth -= + ((art_inner_node_t *)art_iterator_node(iterator))->prefix_size + 1; + return true; +} + +// Moves the iterator one level, followed by a move to the next / previous leaf. +// Sets the status of the iterator. +static bool art_iterator_up_and_move(art_iterator_t *iterator, bool forward) { + if (!art_iterator_up(iterator)) { + // We're at the root. + return art_iterator_invalid_loc(iterator); + } + return art_iterator_move(iterator, forward); +} + +// Initializes the iterator at the first / last leaf of the given node. +// Returns true for convenience. +static bool art_node_init_iterator(const art_node_t *node, + art_iterator_t *iterator, bool first) { + while (!art_is_leaf(node)) { + art_indexed_child_t indexed_child; + if (first) { + indexed_child = art_node_next_child(node, -1); + } else { + indexed_child = art_node_prev_child(node, 256); + } + art_iterator_down(iterator, (art_inner_node_t *)node, + indexed_child.index); + node = indexed_child.child; + } + // We're at a leaf. + iterator->frames[iterator->frame].node = (art_node_t *)node; + iterator->frames[iterator->frame].index_in_node = 0; // Should not matter. + return art_iterator_valid_loc(iterator, CROARING_CAST_LEAF(node)); +} + +bool art_iterator_move(art_iterator_t *iterator, bool forward) { + if (art_is_leaf(art_iterator_node(iterator))) { + bool went_up = art_iterator_up(iterator); + if (!went_up) { + // This leaf is the root, we're done. + return art_iterator_invalid_loc(iterator); + } + } + // Advance within inner node. + art_node_t *neighbor_child = art_iterator_neighbor_child( + iterator, (art_inner_node_t *)art_iterator_node(iterator), forward); + if (neighbor_child != NULL) { + // There is another child at this level, go down to the first or last + // leaf. + return art_node_init_iterator(neighbor_child, iterator, forward); + } + // No more children at this level, go up. + return art_iterator_up_and_move(iterator, forward); +} + +// Assumes the iterator is positioned at a node with an equal prefix path up to +// the depth of the iterator. +static bool art_node_iterator_lower_bound(const art_node_t *node, + art_iterator_t *iterator, + const art_key_chunk_t key[]) { + while (!art_is_leaf(node)) { + art_inner_node_t *inner_node = (art_inner_node_t *)node; + int prefix_comparison = + art_compare_prefix(inner_node->prefix, 0, key, iterator->depth, + inner_node->prefix_size); + if (prefix_comparison < 0) { + // Prefix so far has been equal, but we've found a smaller key. + // Since we take the lower bound within each node, we can return the + // next leaf. + return art_iterator_up_and_move(iterator, true); + } else if (prefix_comparison > 0) { + // No key equal to the key we're looking for, return the first leaf. + return art_node_init_iterator(node, iterator, true); + } + // Prefix is equal, move to lower bound child. + art_key_chunk_t key_chunk = + key[iterator->depth + inner_node->prefix_size]; + art_indexed_child_t indexed_child = + art_node_lower_bound(node, key_chunk); + if (indexed_child.child == NULL) { + // Only smaller keys among children. + return art_iterator_up_and_move(iterator, true); + } + if (indexed_child.key_chunk > key_chunk) { + // Only larger children, return the first larger child. + art_iterator_down(iterator, inner_node, indexed_child.index); + return art_node_init_iterator(indexed_child.child, iterator, true); + } + // We found a child with an equal prefix. + art_iterator_down(iterator, inner_node, indexed_child.index); + node = indexed_child.child; + } + art_leaf_t *leaf = CROARING_CAST_LEAF(node); + if (art_compare_keys(leaf->key, key) >= 0) { + // Leaf has an equal or larger key. + return art_iterator_valid_loc(iterator, leaf); + } + // Leaf has an equal prefix, but the full key is smaller. Move to the next + // leaf. + return art_iterator_up_and_move(iterator, true); +} + +art_iterator_t art_init_iterator(const art_t *art, bool first) { + art_iterator_t iterator = {0}; + if (art->root == NULL) { + return iterator; + } + art_node_init_iterator(art->root, &iterator, first); + return iterator; +} + +bool art_iterator_next(art_iterator_t *iterator) { + return art_iterator_move(iterator, true); +} + +bool art_iterator_prev(art_iterator_t *iterator) { + return art_iterator_move(iterator, false); +} + +bool art_iterator_lower_bound(art_iterator_t *iterator, + const art_key_chunk_t *key) { + if (iterator->value == NULL) { + // We're beyond the end / start of the ART so the iterator does not have + // a valid key. Start from the root. + iterator->frame = 0; + iterator->depth = 0; + return art_node_iterator_lower_bound(art_iterator_node(iterator), + iterator, key); + } + int compare_result = + art_compare_prefix(iterator->key, 0, key, 0, ART_KEY_BYTES); + // Move up until we have an equal prefix, after which we can do a normal + // lower bound search. + while (compare_result != 0) { + if (!art_iterator_up(iterator)) { + if (compare_result < 0) { + // Only smaller keys found. + return art_iterator_invalid_loc(iterator); + } else { + return art_node_init_iterator(art_iterator_node(iterator), + iterator, true); + } + } + // Since we're only moving up, we can keep comparing against the + // iterator key. + art_inner_node_t *inner_node = + (art_inner_node_t *)art_iterator_node(iterator); + compare_result = + art_compare_prefix(iterator->key, 0, key, 0, + iterator->depth + inner_node->prefix_size); + } + if (compare_result > 0) { + return art_node_init_iterator(art_iterator_node(iterator), iterator, + true); + } + return art_node_iterator_lower_bound(art_iterator_node(iterator), iterator, + key); +} + +art_iterator_t art_lower_bound(const art_t *art, const art_key_chunk_t *key) { + art_iterator_t iterator = {0}; + if (art->root != NULL) { + art_node_iterator_lower_bound(art->root, &iterator, key); + } + return iterator; +} + +art_iterator_t art_upper_bound(const art_t *art, const art_key_chunk_t *key) { + art_iterator_t iterator = {0}; + if (art->root != NULL) { + if (art_node_iterator_lower_bound(art->root, &iterator, key) && + art_compare_keys(iterator.key, key) == 0) { + art_iterator_next(&iterator); + } + } + return iterator; +} + +void art_iterator_insert(art_t *art, art_iterator_t *iterator, + const art_key_chunk_t *key, art_val_t *val) { + // TODO: This can likely be faster. + art_insert(art, key, val); + assert(art->root != NULL); + iterator->frame = 0; + iterator->depth = 0; + art_node_iterator_lower_bound(art->root, iterator, key); +} + +// TODO: consider keeping `art_t *art` in the iterator. +art_val_t *art_iterator_erase(art_t *art, art_iterator_t *iterator) { + if (iterator->value == NULL) { + return NULL; + } + art_key_chunk_t initial_key[ART_KEY_BYTES]; + memcpy(initial_key, iterator->key, ART_KEY_BYTES); + + art_val_t *value_erased = iterator->value; + bool went_up = art_iterator_up(iterator); + if (!went_up) { + // We're erasing the root. + art->root = NULL; + art_iterator_invalid_loc(iterator); + return value_erased; + } + + // Erase the leaf. + art_inner_node_t *parent_node = + (art_inner_node_t *)art_iterator_node(iterator); + art_key_chunk_t key_chunk_in_parent = + iterator->key[iterator->depth + parent_node->prefix_size]; + art_node_t *new_parent_node = + art_node_erase(parent_node, key_chunk_in_parent); + + if (new_parent_node != ((art_node_t *)parent_node)) { + // Replace the pointer to the inner node we erased from in its + // parent (it may be a leaf now). + iterator->frames[iterator->frame].node = new_parent_node; + went_up = art_iterator_up(iterator); + if (went_up) { + art_inner_node_t *grandparent_node = + (art_inner_node_t *)art_iterator_node(iterator); + art_key_chunk_t key_chunk_in_grandparent = + iterator->key[iterator->depth + grandparent_node->prefix_size]; + art_replace(grandparent_node, key_chunk_in_grandparent, + new_parent_node); + } else { + // We were already at the rootmost node. + art->root = new_parent_node; + } + } + + iterator->frame = 0; + iterator->depth = 0; + // Do a lower bound search for the initial key, which will find the first + // greater key if it exists. This can likely be mildly faster if we instead + // start from the current position. + art_node_iterator_lower_bound(art->root, iterator, initial_key); + return value_erased; +} + +static bool art_internal_validate_at(const art_node_t *node, + art_internal_validate_t validator) { + if (node == NULL) { + return art_validate_fail(&validator, "node is null"); + } + if (art_is_leaf(node)) { + art_leaf_t *leaf = CROARING_CAST_LEAF(node); + if (art_compare_prefix(leaf->key, 0, validator.current_key, 0, + validator.depth) != 0) { + return art_validate_fail( + &validator, + "leaf key does not match its position's prefix in the tree"); + } + if (validator.validate_cb != NULL && + !validator.validate_cb(leaf, validator.reason)) { + if (*validator.reason == NULL) { + *validator.reason = "leaf validation failed"; + } + return false; + } + } else { + art_inner_node_t *inner_node = (art_inner_node_t *)node; + + if (validator.depth + inner_node->prefix_size + 1 > ART_KEY_BYTES) { + return art_validate_fail(&validator, + "node has too much prefix at given depth"); + } + memcpy(validator.current_key + validator.depth, inner_node->prefix, + inner_node->prefix_size); + validator.depth += inner_node->prefix_size; + + switch (inner_node->typecode) { + case CROARING_ART_NODE4_TYPE: + if (!art_node4_internal_validate((art_node4_t *)inner_node, + validator)) { + return false; + } + break; + case CROARING_ART_NODE16_TYPE: + if (!art_node16_internal_validate((art_node16_t *)inner_node, + validator)) { + return false; + } + break; + case CROARING_ART_NODE48_TYPE: + if (!art_node48_internal_validate((art_node48_t *)inner_node, + validator)) { + return false; + } + break; + case CROARING_ART_NODE256_TYPE: + if (!art_node256_internal_validate((art_node256_t *)inner_node, + validator)) { + return false; + } + break; + default: + return art_validate_fail(&validator, "invalid node type"); + } + } + return true; +} + +bool art_internal_validate(const art_t *art, const char **reason, + art_validate_cb_t validate_cb) { + const char *reason_local; + if (reason == NULL) { + // Always allow assigning through *reason + reason = &reason_local; + } + *reason = NULL; + if (art->root == NULL) { + return true; + } + art_internal_validate_t validator = { + .reason = reason, + .validate_cb = validate_cb, + .depth = 0, + .current_key = {0}, + }; + return art_internal_validate_at(art->root, validator); +} + +#ifdef __cplusplus +} // extern "C" +} // namespace roaring +} // namespace internal +#endif diff --git a/contrib/libs/croaring/src/bitset.c b/contrib/libs/croaring/src/bitset.c new file mode 100644 index 000000000000..5d23af1e7b62 --- /dev/null +++ b/contrib/libs/croaring/src/bitset.c @@ -0,0 +1,482 @@ +#include +#include +#include +#include +#include + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +extern inline void bitset_print(const bitset_t *b); +extern inline bool bitset_for_each(const bitset_t *b, bitset_iterator iterator, + void *ptr); +extern inline size_t bitset_next_set_bits(const bitset_t *bitset, + size_t *buffer, size_t capacity, + size_t *startfrom); +extern inline void bitset_set_to_value(bitset_t *bitset, size_t i, bool flag); +extern inline bool bitset_next_set_bit(const bitset_t *bitset, size_t *i); +extern inline void bitset_set(bitset_t *bitset, size_t i); +extern inline bool bitset_get(const bitset_t *bitset, size_t i); +extern inline size_t bitset_size_in_words(const bitset_t *bitset); +extern inline size_t bitset_size_in_bits(const bitset_t *bitset); +extern inline size_t bitset_size_in_bytes(const bitset_t *bitset); + +/* Create a new bitset. Return NULL in case of failure. */ +bitset_t *bitset_create(void) { + bitset_t *bitset = NULL; + /* Allocate the bitset itself. */ + if ((bitset = (bitset_t *)roaring_malloc(sizeof(bitset_t))) == NULL) { + return NULL; + } + bitset->array = NULL; + bitset->arraysize = 0; + bitset->capacity = 0; + return bitset; +} + +/* Create a new bitset able to contain size bits. Return NULL in case of + * failure. */ +bitset_t *bitset_create_with_capacity(size_t size) { + bitset_t *bitset = NULL; + /* Allocate the bitset itself. */ + if ((bitset = (bitset_t *)roaring_malloc(sizeof(bitset_t))) == NULL) { + return NULL; + } + bitset->arraysize = + (size + sizeof(uint64_t) * 8 - 1) / (sizeof(uint64_t) * 8); + bitset->capacity = bitset->arraysize; + if ((bitset->array = (uint64_t *)roaring_calloc( + bitset->arraysize, sizeof(uint64_t))) == NULL) { + roaring_free(bitset); + return NULL; + } + return bitset; +} + +/* Create a copy */ +bitset_t *bitset_copy(const bitset_t *bitset) { + bitset_t *copy = NULL; + /* Allocate the bitset itself. */ + if ((copy = (bitset_t *)roaring_malloc(sizeof(bitset_t))) == NULL) { + return NULL; + } + memcpy(copy, bitset, sizeof(bitset_t)); + copy->capacity = copy->arraysize; + if ((copy->array = (uint64_t *)roaring_malloc(sizeof(uint64_t) * + bitset->arraysize)) == NULL) { + roaring_free(copy); + return NULL; + } + memcpy(copy->array, bitset->array, sizeof(uint64_t) * bitset->arraysize); + return copy; +} + +void bitset_clear(bitset_t *bitset) { + memset(bitset->array, 0, sizeof(uint64_t) * bitset->arraysize); +} + +void bitset_fill(bitset_t *bitset) { + memset(bitset->array, 0xff, sizeof(uint64_t) * bitset->arraysize); +} + +void bitset_shift_left(bitset_t *bitset, size_t s) { + size_t extra_words = s / 64; + int inword_shift = s % 64; + size_t as = bitset->arraysize; + if (inword_shift == 0) { + bitset_resize(bitset, as + extra_words, false); + // could be done with a memmove + for (size_t i = as + extra_words; i > extra_words; i--) { + bitset->array[i - 1] = bitset->array[i - 1 - extra_words]; + } + } else { + bitset_resize(bitset, as + extra_words + 1, true); + bitset->array[as + extra_words] = + bitset->array[as - 1] >> (64 - inword_shift); + for (size_t i = as + extra_words; i >= extra_words + 2; i--) { + bitset->array[i - 1] = + (bitset->array[i - 1 - extra_words] << inword_shift) | + (bitset->array[i - 2 - extra_words] >> (64 - inword_shift)); + } + bitset->array[extra_words] = bitset->array[0] << inword_shift; + } + for (size_t i = 0; i < extra_words; i++) { + bitset->array[i] = 0; + } +} + +void bitset_shift_right(bitset_t *bitset, size_t s) { + size_t extra_words = s / 64; + int inword_shift = s % 64; + size_t as = bitset->arraysize; + if (inword_shift == 0) { + // could be done with a memmove + for (size_t i = 0; i < as - extra_words; i++) { + bitset->array[i] = bitset->array[i + extra_words]; + } + bitset_resize(bitset, as - extra_words, false); + + } else { + for (size_t i = 0; i + extra_words + 1 < as; i++) { + bitset->array[i] = + (bitset->array[i + extra_words] >> inword_shift) | + (bitset->array[i + extra_words + 1] << (64 - inword_shift)); + } + bitset->array[as - extra_words - 1] = + (bitset->array[as - 1] >> inword_shift); + bitset_resize(bitset, as - extra_words, false); + } +} + +/* Free memory. */ +void bitset_free(bitset_t *bitset) { + if (bitset == NULL) { + return; + } + roaring_free(bitset->array); + roaring_free(bitset); +} + +/* Resize the bitset so that it can support newarraysize * 64 bits. Return true + * in case of success, false for failure. */ +bool bitset_resize(bitset_t *bitset, size_t newarraysize, bool padwithzeroes) { + if (newarraysize > SIZE_MAX / 64) { + return false; + } + size_t smallest = + newarraysize < bitset->arraysize ? newarraysize : bitset->arraysize; + if (bitset->capacity < newarraysize) { + uint64_t *newarray; + size_t newcapacity = bitset->capacity; + if (newcapacity == 0) { + newcapacity = 1; + } + while (newcapacity < newarraysize) { + newcapacity *= 2; + } + if ((newarray = (uint64_t *)roaring_realloc( + bitset->array, sizeof(uint64_t) * newcapacity)) == NULL) { + return false; + } + bitset->capacity = newcapacity; + bitset->array = newarray; + } + if (padwithzeroes && (newarraysize > smallest)) + memset(bitset->array + smallest, 0, + sizeof(uint64_t) * (newarraysize - smallest)); + bitset->arraysize = newarraysize; + return true; // success! +} + +size_t bitset_count(const bitset_t *bitset) { + size_t card = 0; + size_t k = 0; + for (; k + 7 < bitset->arraysize; k += 8) { + card += roaring_hamming(bitset->array[k]); + card += roaring_hamming(bitset->array[k + 1]); + card += roaring_hamming(bitset->array[k + 2]); + card += roaring_hamming(bitset->array[k + 3]); + card += roaring_hamming(bitset->array[k + 4]); + card += roaring_hamming(bitset->array[k + 5]); + card += roaring_hamming(bitset->array[k + 6]); + card += roaring_hamming(bitset->array[k + 7]); + } + for (; k + 3 < bitset->arraysize; k += 4) { + card += roaring_hamming(bitset->array[k]); + card += roaring_hamming(bitset->array[k + 1]); + card += roaring_hamming(bitset->array[k + 2]); + card += roaring_hamming(bitset->array[k + 3]); + } + for (; k < bitset->arraysize; k++) { + card += roaring_hamming(bitset->array[k]); + } + return card; +} + +bool bitset_inplace_union(bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2) { + size_t minlength = + b1->arraysize < b2->arraysize ? b1->arraysize : b2->arraysize; + for (size_t k = 0; k < minlength; ++k) { + b1->array[k] |= b2->array[k]; + } + if (b2->arraysize > b1->arraysize) { + size_t oldsize = b1->arraysize; + if (!bitset_resize(b1, b2->arraysize, false)) return false; + memcpy(b1->array + oldsize, b2->array + oldsize, + (b2->arraysize - oldsize) * sizeof(uint64_t)); + } + return true; +} + +size_t bitset_minimum(const bitset_t *bitset) { + for (size_t k = 0; k < bitset->arraysize; k++) { + uint64_t w = bitset->array[k]; + if (w != 0) { + return roaring_trailing_zeroes(w) + k * 64; + } + } + return 0; +} + +bool bitset_grow(bitset_t *bitset, size_t newarraysize) { + if (newarraysize < bitset->arraysize) { + return false; + } + if (newarraysize > SIZE_MAX / 64) { + return false; + } + if (bitset->capacity < newarraysize) { + uint64_t *newarray; + size_t newcapacity = (UINT64_C(0xFFFFFFFFFFFFFFFF) >> + roaring_leading_zeroes(newarraysize)) + + 1; + while (newcapacity < newarraysize) { + newcapacity *= 2; + } + if ((newarray = (uint64_t *)roaring_realloc( + bitset->array, sizeof(uint64_t) * newcapacity)) == NULL) { + return false; + } + bitset->capacity = newcapacity; + bitset->array = newarray; + } + memset(bitset->array + bitset->arraysize, 0, + sizeof(uint64_t) * (newarraysize - bitset->arraysize)); + bitset->arraysize = newarraysize; + return true; // success! +} + +size_t bitset_maximum(const bitset_t *bitset) { + for (size_t k = bitset->arraysize; k > 0; k--) { + uint64_t w = bitset->array[k - 1]; + if (w != 0) { + return 63 - roaring_leading_zeroes(w) + (k - 1) * 64; + } + } + return 0; +} + +/* Returns true if bitsets share no common elements, false otherwise. + * + * Performs early-out if common element found. */ +bool bitsets_disjoint(const bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2) { + size_t minlength = + b1->arraysize < b2->arraysize ? b1->arraysize : b2->arraysize; + + for (size_t k = 0; k < minlength; k++) { + if ((b1->array[k] & b2->array[k]) != 0) return false; + } + return true; +} + +/* Returns true if bitsets contain at least 1 common element, false if they are + * disjoint. + * + * Performs early-out if common element found. */ +bool bitsets_intersect(const bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2) { + size_t minlength = + b1->arraysize < b2->arraysize ? b1->arraysize : b2->arraysize; + + for (size_t k = 0; k < minlength; k++) { + if ((b1->array[k] & b2->array[k]) != 0) return true; + } + return false; +} + +/* Returns true if b has any bits set in or after b->array[starting_loc]. */ +static bool any_bits_set(const bitset_t *b, size_t starting_loc) { + if (starting_loc >= b->arraysize) { + return false; + } + for (size_t k = starting_loc; k < b->arraysize; k++) { + if (b->array[k] != 0) return true; + } + return false; +} + +/* Returns true if b1 has all of b2's bits set. + * + * Performs early out if a bit is found in b2 that is not found in b1. */ +bool bitset_contains_all(const bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2) { + size_t min_size = b1->arraysize; + if (b1->arraysize > b2->arraysize) { + min_size = b2->arraysize; + } + for (size_t k = 0; k < min_size; k++) { + if ((b1->array[k] & b2->array[k]) != b2->array[k]) { + return false; + } + } + if (b2->arraysize > b1->arraysize) { + /* Need to check if b2 has any bits set beyond b1's array */ + return !any_bits_set(b2, b1->arraysize); + } + return true; +} + +size_t bitset_union_count(const bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2) { + size_t answer = 0; + size_t minlength = + b1->arraysize < b2->arraysize ? b1->arraysize : b2->arraysize; + size_t k = 0; + for (; k + 3 < minlength; k += 4) { + answer += roaring_hamming(b1->array[k] | b2->array[k]); + answer += roaring_hamming(b1->array[k + 1] | b2->array[k + 1]); + answer += roaring_hamming(b1->array[k + 2] | b2->array[k + 2]); + answer += roaring_hamming(b1->array[k + 3] | b2->array[k + 3]); + } + for (; k < minlength; ++k) { + answer += roaring_hamming(b1->array[k] | b2->array[k]); + } + if (b2->arraysize > b1->arraysize) { + // k is equal to b1->arraysize + for (; k + 3 < b2->arraysize; k += 4) { + answer += roaring_hamming(b2->array[k]); + answer += roaring_hamming(b2->array[k + 1]); + answer += roaring_hamming(b2->array[k + 2]); + answer += roaring_hamming(b2->array[k + 3]); + } + for (; k < b2->arraysize; ++k) { + answer += roaring_hamming(b2->array[k]); + } + } else { + // k is equal to b2->arraysize + for (; k + 3 < b1->arraysize; k += 4) { + answer += roaring_hamming(b1->array[k]); + answer += roaring_hamming(b1->array[k + 1]); + answer += roaring_hamming(b1->array[k + 2]); + answer += roaring_hamming(b1->array[k + 3]); + } + for (; k < b1->arraysize; ++k) { + answer += roaring_hamming(b1->array[k]); + } + } + return answer; +} + +void bitset_inplace_intersection(bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2) { + size_t minlength = + b1->arraysize < b2->arraysize ? b1->arraysize : b2->arraysize; + size_t k = 0; + for (; k < minlength; ++k) { + b1->array[k] &= b2->array[k]; + } + for (; k < b1->arraysize; ++k) { + b1->array[k] = 0; // memset could, maybe, be a tiny bit faster + } +} + +size_t bitset_intersection_count(const bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2) { + size_t answer = 0; + size_t minlength = + b1->arraysize < b2->arraysize ? b1->arraysize : b2->arraysize; + for (size_t k = 0; k < minlength; ++k) { + answer += roaring_hamming(b1->array[k] & b2->array[k]); + } + return answer; +} + +void bitset_inplace_difference(bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2) { + size_t minlength = + b1->arraysize < b2->arraysize ? b1->arraysize : b2->arraysize; + size_t k = 0; + for (; k < minlength; ++k) { + b1->array[k] &= ~(b2->array[k]); + } +} + +size_t bitset_difference_count(const bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2) { + size_t minlength = + b1->arraysize < b2->arraysize ? b1->arraysize : b2->arraysize; + size_t k = 0; + size_t answer = 0; + for (; k < minlength; ++k) { + answer += roaring_hamming(b1->array[k] & ~(b2->array[k])); + } + for (; k < b1->arraysize; ++k) { + answer += roaring_hamming(b1->array[k]); + } + return answer; +} + +bool bitset_inplace_symmetric_difference( + bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2) { + size_t minlength = + b1->arraysize < b2->arraysize ? b1->arraysize : b2->arraysize; + size_t k = 0; + for (; k < minlength; ++k) { + b1->array[k] ^= b2->array[k]; + } + if (b2->arraysize > b1->arraysize) { + size_t oldsize = b1->arraysize; + if (!bitset_resize(b1, b2->arraysize, false)) return false; + memcpy(b1->array + oldsize, b2->array + oldsize, + (b2->arraysize - oldsize) * sizeof(uint64_t)); + } + return true; +} + +size_t bitset_symmetric_difference_count( + const bitset_t *CROARING_CBITSET_RESTRICT b1, + const bitset_t *CROARING_CBITSET_RESTRICT b2) { + size_t minlength = + b1->arraysize < b2->arraysize ? b1->arraysize : b2->arraysize; + size_t k = 0; + size_t answer = 0; + for (; k < minlength; ++k) { + answer += roaring_hamming(b1->array[k] ^ b2->array[k]); + } + if (b2->arraysize > b1->arraysize) { + for (; k < b2->arraysize; ++k) { + answer += roaring_hamming(b2->array[k]); + } + } else { + for (; k < b1->arraysize; ++k) { + answer += roaring_hamming(b1->array[k]); + } + } + return answer; +} + +bool bitset_trim(bitset_t *bitset) { + size_t newsize = bitset->arraysize; + while (newsize > 0) { + if (bitset->array[newsize - 1] == 0) + newsize -= 1; + else + break; + } + if (bitset->capacity == newsize) return true; // nothing to do + uint64_t *newarray; + if ((newarray = (uint64_t *)roaring_realloc( + bitset->array, sizeof(uint64_t) * newsize)) == NULL) { + return false; + } + bitset->array = newarray; + bitset->capacity = newsize; + bitset->arraysize = newsize; + return true; +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif diff --git a/contrib/libs/croaring/src/bitset_util.c b/contrib/libs/croaring/src/bitset_util.c new file mode 100644 index 000000000000..0ae7d925827a --- /dev/null +++ b/contrib/libs/croaring/src/bitset_util.c @@ -0,0 +1,1161 @@ +#include +#include +#include +#include +#include + +#include + +#if CROARING_IS_X64 +#ifndef CROARING_COMPILER_SUPPORTS_AVX512 +#error "CROARING_COMPILER_SUPPORTS_AVX512 needs to be defined." +#endif // CROARING_COMPILER_SUPPORTS_AVX512 +#endif +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wuninitialized" +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +#ifdef __cplusplus +using namespace ::roaring::internal; +extern "C" { +namespace roaring { +namespace api { +#endif + +#if CROARING_IS_X64 +static uint8_t lengthTable[256] = { + 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, 1, 2, 2, 3, 2, 3, 3, 4, + 2, 3, 3, 4, 3, 4, 4, 5, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 1, 2, 2, 3, 2, 3, 3, 4, + 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, + 4, 5, 5, 6, 5, 6, 6, 7, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 2, 3, 3, 4, 3, 4, 4, 5, + 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, + 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, + 4, 5, 5, 6, 5, 6, 6, 7, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, + 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8}; +#endif + +#if CROARING_IS_X64 +ALIGNED(32) +static uint32_t vecDecodeTable[256][8] = { + {0, 0, 0, 0, 0, 0, 0, 0}, /* 0x00 (00000000) */ + {1, 0, 0, 0, 0, 0, 0, 0}, /* 0x01 (00000001) */ + {2, 0, 0, 0, 0, 0, 0, 0}, /* 0x02 (00000010) */ + {1, 2, 0, 0, 0, 0, 0, 0}, /* 0x03 (00000011) */ + {3, 0, 0, 0, 0, 0, 0, 0}, /* 0x04 (00000100) */ + {1, 3, 0, 0, 0, 0, 0, 0}, /* 0x05 (00000101) */ + {2, 3, 0, 0, 0, 0, 0, 0}, /* 0x06 (00000110) */ + {1, 2, 3, 0, 0, 0, 0, 0}, /* 0x07 (00000111) */ + {4, 0, 0, 0, 0, 0, 0, 0}, /* 0x08 (00001000) */ + {1, 4, 0, 0, 0, 0, 0, 0}, /* 0x09 (00001001) */ + {2, 4, 0, 0, 0, 0, 0, 0}, /* 0x0A (00001010) */ + {1, 2, 4, 0, 0, 0, 0, 0}, /* 0x0B (00001011) */ + {3, 4, 0, 0, 0, 0, 0, 0}, /* 0x0C (00001100) */ + {1, 3, 4, 0, 0, 0, 0, 0}, /* 0x0D (00001101) */ + {2, 3, 4, 0, 0, 0, 0, 0}, /* 0x0E (00001110) */ + {1, 2, 3, 4, 0, 0, 0, 0}, /* 0x0F (00001111) */ + {5, 0, 0, 0, 0, 0, 0, 0}, /* 0x10 (00010000) */ + {1, 5, 0, 0, 0, 0, 0, 0}, /* 0x11 (00010001) */ + {2, 5, 0, 0, 0, 0, 0, 0}, /* 0x12 (00010010) */ + {1, 2, 5, 0, 0, 0, 0, 0}, /* 0x13 (00010011) */ + {3, 5, 0, 0, 0, 0, 0, 0}, /* 0x14 (00010100) */ + {1, 3, 5, 0, 0, 0, 0, 0}, /* 0x15 (00010101) */ + {2, 3, 5, 0, 0, 0, 0, 0}, /* 0x16 (00010110) */ + {1, 2, 3, 5, 0, 0, 0, 0}, /* 0x17 (00010111) */ + {4, 5, 0, 0, 0, 0, 0, 0}, /* 0x18 (00011000) */ + {1, 4, 5, 0, 0, 0, 0, 0}, /* 0x19 (00011001) */ + {2, 4, 5, 0, 0, 0, 0, 0}, /* 0x1A (00011010) */ + {1, 2, 4, 5, 0, 0, 0, 0}, /* 0x1B (00011011) */ + {3, 4, 5, 0, 0, 0, 0, 0}, /* 0x1C (00011100) */ + {1, 3, 4, 5, 0, 0, 0, 0}, /* 0x1D (00011101) */ + {2, 3, 4, 5, 0, 0, 0, 0}, /* 0x1E (00011110) */ + {1, 2, 3, 4, 5, 0, 0, 0}, /* 0x1F (00011111) */ + {6, 0, 0, 0, 0, 0, 0, 0}, /* 0x20 (00100000) */ + {1, 6, 0, 0, 0, 0, 0, 0}, /* 0x21 (00100001) */ + {2, 6, 0, 0, 0, 0, 0, 0}, /* 0x22 (00100010) */ + {1, 2, 6, 0, 0, 0, 0, 0}, /* 0x23 (00100011) */ + {3, 6, 0, 0, 0, 0, 0, 0}, /* 0x24 (00100100) */ + {1, 3, 6, 0, 0, 0, 0, 0}, /* 0x25 (00100101) */ + {2, 3, 6, 0, 0, 0, 0, 0}, /* 0x26 (00100110) */ + {1, 2, 3, 6, 0, 0, 0, 0}, /* 0x27 (00100111) */ + {4, 6, 0, 0, 0, 0, 0, 0}, /* 0x28 (00101000) */ + {1, 4, 6, 0, 0, 0, 0, 0}, /* 0x29 (00101001) */ + {2, 4, 6, 0, 0, 0, 0, 0}, /* 0x2A (00101010) */ + {1, 2, 4, 6, 0, 0, 0, 0}, /* 0x2B (00101011) */ + {3, 4, 6, 0, 0, 0, 0, 0}, /* 0x2C (00101100) */ + {1, 3, 4, 6, 0, 0, 0, 0}, /* 0x2D (00101101) */ + {2, 3, 4, 6, 0, 0, 0, 0}, /* 0x2E (00101110) */ + {1, 2, 3, 4, 6, 0, 0, 0}, /* 0x2F (00101111) */ + {5, 6, 0, 0, 0, 0, 0, 0}, /* 0x30 (00110000) */ + {1, 5, 6, 0, 0, 0, 0, 0}, /* 0x31 (00110001) */ + {2, 5, 6, 0, 0, 0, 0, 0}, /* 0x32 (00110010) */ + {1, 2, 5, 6, 0, 0, 0, 0}, /* 0x33 (00110011) */ + {3, 5, 6, 0, 0, 0, 0, 0}, /* 0x34 (00110100) */ + {1, 3, 5, 6, 0, 0, 0, 0}, /* 0x35 (00110101) */ + {2, 3, 5, 6, 0, 0, 0, 0}, /* 0x36 (00110110) */ + {1, 2, 3, 5, 6, 0, 0, 0}, /* 0x37 (00110111) */ + {4, 5, 6, 0, 0, 0, 0, 0}, /* 0x38 (00111000) */ + {1, 4, 5, 6, 0, 0, 0, 0}, /* 0x39 (00111001) */ + {2, 4, 5, 6, 0, 0, 0, 0}, /* 0x3A (00111010) */ + {1, 2, 4, 5, 6, 0, 0, 0}, /* 0x3B (00111011) */ + {3, 4, 5, 6, 0, 0, 0, 0}, /* 0x3C (00111100) */ + {1, 3, 4, 5, 6, 0, 0, 0}, /* 0x3D (00111101) */ + {2, 3, 4, 5, 6, 0, 0, 0}, /* 0x3E (00111110) */ + {1, 2, 3, 4, 5, 6, 0, 0}, /* 0x3F (00111111) */ + {7, 0, 0, 0, 0, 0, 0, 0}, /* 0x40 (01000000) */ + {1, 7, 0, 0, 0, 0, 0, 0}, /* 0x41 (01000001) */ + {2, 7, 0, 0, 0, 0, 0, 0}, /* 0x42 (01000010) */ + {1, 2, 7, 0, 0, 0, 0, 0}, /* 0x43 (01000011) */ + {3, 7, 0, 0, 0, 0, 0, 0}, /* 0x44 (01000100) */ + {1, 3, 7, 0, 0, 0, 0, 0}, /* 0x45 (01000101) */ + {2, 3, 7, 0, 0, 0, 0, 0}, /* 0x46 (01000110) */ + {1, 2, 3, 7, 0, 0, 0, 0}, /* 0x47 (01000111) */ + {4, 7, 0, 0, 0, 0, 0, 0}, /* 0x48 (01001000) */ + {1, 4, 7, 0, 0, 0, 0, 0}, /* 0x49 (01001001) */ + {2, 4, 7, 0, 0, 0, 0, 0}, /* 0x4A (01001010) */ + {1, 2, 4, 7, 0, 0, 0, 0}, /* 0x4B (01001011) */ + {3, 4, 7, 0, 0, 0, 0, 0}, /* 0x4C (01001100) */ + {1, 3, 4, 7, 0, 0, 0, 0}, /* 0x4D (01001101) */ + {2, 3, 4, 7, 0, 0, 0, 0}, /* 0x4E (01001110) */ + {1, 2, 3, 4, 7, 0, 0, 0}, /* 0x4F (01001111) */ + {5, 7, 0, 0, 0, 0, 0, 0}, /* 0x50 (01010000) */ + {1, 5, 7, 0, 0, 0, 0, 0}, /* 0x51 (01010001) */ + {2, 5, 7, 0, 0, 0, 0, 0}, /* 0x52 (01010010) */ + {1, 2, 5, 7, 0, 0, 0, 0}, /* 0x53 (01010011) */ + {3, 5, 7, 0, 0, 0, 0, 0}, /* 0x54 (01010100) */ + {1, 3, 5, 7, 0, 0, 0, 0}, /* 0x55 (01010101) */ + {2, 3, 5, 7, 0, 0, 0, 0}, /* 0x56 (01010110) */ + {1, 2, 3, 5, 7, 0, 0, 0}, /* 0x57 (01010111) */ + {4, 5, 7, 0, 0, 0, 0, 0}, /* 0x58 (01011000) */ + {1, 4, 5, 7, 0, 0, 0, 0}, /* 0x59 (01011001) */ + {2, 4, 5, 7, 0, 0, 0, 0}, /* 0x5A (01011010) */ + {1, 2, 4, 5, 7, 0, 0, 0}, /* 0x5B (01011011) */ + {3, 4, 5, 7, 0, 0, 0, 0}, /* 0x5C (01011100) */ + {1, 3, 4, 5, 7, 0, 0, 0}, /* 0x5D (01011101) */ + {2, 3, 4, 5, 7, 0, 0, 0}, /* 0x5E (01011110) */ + {1, 2, 3, 4, 5, 7, 0, 0}, /* 0x5F (01011111) */ + {6, 7, 0, 0, 0, 0, 0, 0}, /* 0x60 (01100000) */ + {1, 6, 7, 0, 0, 0, 0, 0}, /* 0x61 (01100001) */ + {2, 6, 7, 0, 0, 0, 0, 0}, /* 0x62 (01100010) */ + {1, 2, 6, 7, 0, 0, 0, 0}, /* 0x63 (01100011) */ + {3, 6, 7, 0, 0, 0, 0, 0}, /* 0x64 (01100100) */ + {1, 3, 6, 7, 0, 0, 0, 0}, /* 0x65 (01100101) */ + {2, 3, 6, 7, 0, 0, 0, 0}, /* 0x66 (01100110) */ + {1, 2, 3, 6, 7, 0, 0, 0}, /* 0x67 (01100111) */ + {4, 6, 7, 0, 0, 0, 0, 0}, /* 0x68 (01101000) */ + {1, 4, 6, 7, 0, 0, 0, 0}, /* 0x69 (01101001) */ + {2, 4, 6, 7, 0, 0, 0, 0}, /* 0x6A (01101010) */ + {1, 2, 4, 6, 7, 0, 0, 0}, /* 0x6B (01101011) */ + {3, 4, 6, 7, 0, 0, 0, 0}, /* 0x6C (01101100) */ + {1, 3, 4, 6, 7, 0, 0, 0}, /* 0x6D (01101101) */ + {2, 3, 4, 6, 7, 0, 0, 0}, /* 0x6E (01101110) */ + {1, 2, 3, 4, 6, 7, 0, 0}, /* 0x6F (01101111) */ + {5, 6, 7, 0, 0, 0, 0, 0}, /* 0x70 (01110000) */ + {1, 5, 6, 7, 0, 0, 0, 0}, /* 0x71 (01110001) */ + {2, 5, 6, 7, 0, 0, 0, 0}, /* 0x72 (01110010) */ + {1, 2, 5, 6, 7, 0, 0, 0}, /* 0x73 (01110011) */ + {3, 5, 6, 7, 0, 0, 0, 0}, /* 0x74 (01110100) */ + {1, 3, 5, 6, 7, 0, 0, 0}, /* 0x75 (01110101) */ + {2, 3, 5, 6, 7, 0, 0, 0}, /* 0x76 (01110110) */ + {1, 2, 3, 5, 6, 7, 0, 0}, /* 0x77 (01110111) */ + {4, 5, 6, 7, 0, 0, 0, 0}, /* 0x78 (01111000) */ + {1, 4, 5, 6, 7, 0, 0, 0}, /* 0x79 (01111001) */ + {2, 4, 5, 6, 7, 0, 0, 0}, /* 0x7A (01111010) */ + {1, 2, 4, 5, 6, 7, 0, 0}, /* 0x7B (01111011) */ + {3, 4, 5, 6, 7, 0, 0, 0}, /* 0x7C (01111100) */ + {1, 3, 4, 5, 6, 7, 0, 0}, /* 0x7D (01111101) */ + {2, 3, 4, 5, 6, 7, 0, 0}, /* 0x7E (01111110) */ + {1, 2, 3, 4, 5, 6, 7, 0}, /* 0x7F (01111111) */ + {8, 0, 0, 0, 0, 0, 0, 0}, /* 0x80 (10000000) */ + {1, 8, 0, 0, 0, 0, 0, 0}, /* 0x81 (10000001) */ + {2, 8, 0, 0, 0, 0, 0, 0}, /* 0x82 (10000010) */ + {1, 2, 8, 0, 0, 0, 0, 0}, /* 0x83 (10000011) */ + {3, 8, 0, 0, 0, 0, 0, 0}, /* 0x84 (10000100) */ + {1, 3, 8, 0, 0, 0, 0, 0}, /* 0x85 (10000101) */ + {2, 3, 8, 0, 0, 0, 0, 0}, /* 0x86 (10000110) */ + {1, 2, 3, 8, 0, 0, 0, 0}, /* 0x87 (10000111) */ + {4, 8, 0, 0, 0, 0, 0, 0}, /* 0x88 (10001000) */ + {1, 4, 8, 0, 0, 0, 0, 0}, /* 0x89 (10001001) */ + {2, 4, 8, 0, 0, 0, 0, 0}, /* 0x8A (10001010) */ + {1, 2, 4, 8, 0, 0, 0, 0}, /* 0x8B (10001011) */ + {3, 4, 8, 0, 0, 0, 0, 0}, /* 0x8C (10001100) */ + {1, 3, 4, 8, 0, 0, 0, 0}, /* 0x8D (10001101) */ + {2, 3, 4, 8, 0, 0, 0, 0}, /* 0x8E (10001110) */ + {1, 2, 3, 4, 8, 0, 0, 0}, /* 0x8F (10001111) */ + {5, 8, 0, 0, 0, 0, 0, 0}, /* 0x90 (10010000) */ + {1, 5, 8, 0, 0, 0, 0, 0}, /* 0x91 (10010001) */ + {2, 5, 8, 0, 0, 0, 0, 0}, /* 0x92 (10010010) */ + {1, 2, 5, 8, 0, 0, 0, 0}, /* 0x93 (10010011) */ + {3, 5, 8, 0, 0, 0, 0, 0}, /* 0x94 (10010100) */ + {1, 3, 5, 8, 0, 0, 0, 0}, /* 0x95 (10010101) */ + {2, 3, 5, 8, 0, 0, 0, 0}, /* 0x96 (10010110) */ + {1, 2, 3, 5, 8, 0, 0, 0}, /* 0x97 (10010111) */ + {4, 5, 8, 0, 0, 0, 0, 0}, /* 0x98 (10011000) */ + {1, 4, 5, 8, 0, 0, 0, 0}, /* 0x99 (10011001) */ + {2, 4, 5, 8, 0, 0, 0, 0}, /* 0x9A (10011010) */ + {1, 2, 4, 5, 8, 0, 0, 0}, /* 0x9B (10011011) */ + {3, 4, 5, 8, 0, 0, 0, 0}, /* 0x9C (10011100) */ + {1, 3, 4, 5, 8, 0, 0, 0}, /* 0x9D (10011101) */ + {2, 3, 4, 5, 8, 0, 0, 0}, /* 0x9E (10011110) */ + {1, 2, 3, 4, 5, 8, 0, 0}, /* 0x9F (10011111) */ + {6, 8, 0, 0, 0, 0, 0, 0}, /* 0xA0 (10100000) */ + {1, 6, 8, 0, 0, 0, 0, 0}, /* 0xA1 (10100001) */ + {2, 6, 8, 0, 0, 0, 0, 0}, /* 0xA2 (10100010) */ + {1, 2, 6, 8, 0, 0, 0, 0}, /* 0xA3 (10100011) */ + {3, 6, 8, 0, 0, 0, 0, 0}, /* 0xA4 (10100100) */ + {1, 3, 6, 8, 0, 0, 0, 0}, /* 0xA5 (10100101) */ + {2, 3, 6, 8, 0, 0, 0, 0}, /* 0xA6 (10100110) */ + {1, 2, 3, 6, 8, 0, 0, 0}, /* 0xA7 (10100111) */ + {4, 6, 8, 0, 0, 0, 0, 0}, /* 0xA8 (10101000) */ + {1, 4, 6, 8, 0, 0, 0, 0}, /* 0xA9 (10101001) */ + {2, 4, 6, 8, 0, 0, 0, 0}, /* 0xAA (10101010) */ + {1, 2, 4, 6, 8, 0, 0, 0}, /* 0xAB (10101011) */ + {3, 4, 6, 8, 0, 0, 0, 0}, /* 0xAC (10101100) */ + {1, 3, 4, 6, 8, 0, 0, 0}, /* 0xAD (10101101) */ + {2, 3, 4, 6, 8, 0, 0, 0}, /* 0xAE (10101110) */ + {1, 2, 3, 4, 6, 8, 0, 0}, /* 0xAF (10101111) */ + {5, 6, 8, 0, 0, 0, 0, 0}, /* 0xB0 (10110000) */ + {1, 5, 6, 8, 0, 0, 0, 0}, /* 0xB1 (10110001) */ + {2, 5, 6, 8, 0, 0, 0, 0}, /* 0xB2 (10110010) */ + {1, 2, 5, 6, 8, 0, 0, 0}, /* 0xB3 (10110011) */ + {3, 5, 6, 8, 0, 0, 0, 0}, /* 0xB4 (10110100) */ + {1, 3, 5, 6, 8, 0, 0, 0}, /* 0xB5 (10110101) */ + {2, 3, 5, 6, 8, 0, 0, 0}, /* 0xB6 (10110110) */ + {1, 2, 3, 5, 6, 8, 0, 0}, /* 0xB7 (10110111) */ + {4, 5, 6, 8, 0, 0, 0, 0}, /* 0xB8 (10111000) */ + {1, 4, 5, 6, 8, 0, 0, 0}, /* 0xB9 (10111001) */ + {2, 4, 5, 6, 8, 0, 0, 0}, /* 0xBA (10111010) */ + {1, 2, 4, 5, 6, 8, 0, 0}, /* 0xBB (10111011) */ + {3, 4, 5, 6, 8, 0, 0, 0}, /* 0xBC (10111100) */ + {1, 3, 4, 5, 6, 8, 0, 0}, /* 0xBD (10111101) */ + {2, 3, 4, 5, 6, 8, 0, 0}, /* 0xBE (10111110) */ + {1, 2, 3, 4, 5, 6, 8, 0}, /* 0xBF (10111111) */ + {7, 8, 0, 0, 0, 0, 0, 0}, /* 0xC0 (11000000) */ + {1, 7, 8, 0, 0, 0, 0, 0}, /* 0xC1 (11000001) */ + {2, 7, 8, 0, 0, 0, 0, 0}, /* 0xC2 (11000010) */ + {1, 2, 7, 8, 0, 0, 0, 0}, /* 0xC3 (11000011) */ + {3, 7, 8, 0, 0, 0, 0, 0}, /* 0xC4 (11000100) */ + {1, 3, 7, 8, 0, 0, 0, 0}, /* 0xC5 (11000101) */ + {2, 3, 7, 8, 0, 0, 0, 0}, /* 0xC6 (11000110) */ + {1, 2, 3, 7, 8, 0, 0, 0}, /* 0xC7 (11000111) */ + {4, 7, 8, 0, 0, 0, 0, 0}, /* 0xC8 (11001000) */ + {1, 4, 7, 8, 0, 0, 0, 0}, /* 0xC9 (11001001) */ + {2, 4, 7, 8, 0, 0, 0, 0}, /* 0xCA (11001010) */ + {1, 2, 4, 7, 8, 0, 0, 0}, /* 0xCB (11001011) */ + {3, 4, 7, 8, 0, 0, 0, 0}, /* 0xCC (11001100) */ + {1, 3, 4, 7, 8, 0, 0, 0}, /* 0xCD (11001101) */ + {2, 3, 4, 7, 8, 0, 0, 0}, /* 0xCE (11001110) */ + {1, 2, 3, 4, 7, 8, 0, 0}, /* 0xCF (11001111) */ + {5, 7, 8, 0, 0, 0, 0, 0}, /* 0xD0 (11010000) */ + {1, 5, 7, 8, 0, 0, 0, 0}, /* 0xD1 (11010001) */ + {2, 5, 7, 8, 0, 0, 0, 0}, /* 0xD2 (11010010) */ + {1, 2, 5, 7, 8, 0, 0, 0}, /* 0xD3 (11010011) */ + {3, 5, 7, 8, 0, 0, 0, 0}, /* 0xD4 (11010100) */ + {1, 3, 5, 7, 8, 0, 0, 0}, /* 0xD5 (11010101) */ + {2, 3, 5, 7, 8, 0, 0, 0}, /* 0xD6 (11010110) */ + {1, 2, 3, 5, 7, 8, 0, 0}, /* 0xD7 (11010111) */ + {4, 5, 7, 8, 0, 0, 0, 0}, /* 0xD8 (11011000) */ + {1, 4, 5, 7, 8, 0, 0, 0}, /* 0xD9 (11011001) */ + {2, 4, 5, 7, 8, 0, 0, 0}, /* 0xDA (11011010) */ + {1, 2, 4, 5, 7, 8, 0, 0}, /* 0xDB (11011011) */ + {3, 4, 5, 7, 8, 0, 0, 0}, /* 0xDC (11011100) */ + {1, 3, 4, 5, 7, 8, 0, 0}, /* 0xDD (11011101) */ + {2, 3, 4, 5, 7, 8, 0, 0}, /* 0xDE (11011110) */ + {1, 2, 3, 4, 5, 7, 8, 0}, /* 0xDF (11011111) */ + {6, 7, 8, 0, 0, 0, 0, 0}, /* 0xE0 (11100000) */ + {1, 6, 7, 8, 0, 0, 0, 0}, /* 0xE1 (11100001) */ + {2, 6, 7, 8, 0, 0, 0, 0}, /* 0xE2 (11100010) */ + {1, 2, 6, 7, 8, 0, 0, 0}, /* 0xE3 (11100011) */ + {3, 6, 7, 8, 0, 0, 0, 0}, /* 0xE4 (11100100) */ + {1, 3, 6, 7, 8, 0, 0, 0}, /* 0xE5 (11100101) */ + {2, 3, 6, 7, 8, 0, 0, 0}, /* 0xE6 (11100110) */ + {1, 2, 3, 6, 7, 8, 0, 0}, /* 0xE7 (11100111) */ + {4, 6, 7, 8, 0, 0, 0, 0}, /* 0xE8 (11101000) */ + {1, 4, 6, 7, 8, 0, 0, 0}, /* 0xE9 (11101001) */ + {2, 4, 6, 7, 8, 0, 0, 0}, /* 0xEA (11101010) */ + {1, 2, 4, 6, 7, 8, 0, 0}, /* 0xEB (11101011) */ + {3, 4, 6, 7, 8, 0, 0, 0}, /* 0xEC (11101100) */ + {1, 3, 4, 6, 7, 8, 0, 0}, /* 0xED (11101101) */ + {2, 3, 4, 6, 7, 8, 0, 0}, /* 0xEE (11101110) */ + {1, 2, 3, 4, 6, 7, 8, 0}, /* 0xEF (11101111) */ + {5, 6, 7, 8, 0, 0, 0, 0}, /* 0xF0 (11110000) */ + {1, 5, 6, 7, 8, 0, 0, 0}, /* 0xF1 (11110001) */ + {2, 5, 6, 7, 8, 0, 0, 0}, /* 0xF2 (11110010) */ + {1, 2, 5, 6, 7, 8, 0, 0}, /* 0xF3 (11110011) */ + {3, 5, 6, 7, 8, 0, 0, 0}, /* 0xF4 (11110100) */ + {1, 3, 5, 6, 7, 8, 0, 0}, /* 0xF5 (11110101) */ + {2, 3, 5, 6, 7, 8, 0, 0}, /* 0xF6 (11110110) */ + {1, 2, 3, 5, 6, 7, 8, 0}, /* 0xF7 (11110111) */ + {4, 5, 6, 7, 8, 0, 0, 0}, /* 0xF8 (11111000) */ + {1, 4, 5, 6, 7, 8, 0, 0}, /* 0xF9 (11111001) */ + {2, 4, 5, 6, 7, 8, 0, 0}, /* 0xFA (11111010) */ + {1, 2, 4, 5, 6, 7, 8, 0}, /* 0xFB (11111011) */ + {3, 4, 5, 6, 7, 8, 0, 0}, /* 0xFC (11111100) */ + {1, 3, 4, 5, 6, 7, 8, 0}, /* 0xFD (11111101) */ + {2, 3, 4, 5, 6, 7, 8, 0}, /* 0xFE (11111110) */ + {1, 2, 3, 4, 5, 6, 7, 8} /* 0xFF (11111111) */ +}; + +#endif // #if CROARING_IS_X64 + +#if CROARING_IS_X64 +// same as vecDecodeTable but in 16 bits +ALIGNED(32) +static uint16_t vecDecodeTable_uint16[256][8] = { + {0, 0, 0, 0, 0, 0, 0, 0}, /* 0x00 (00000000) */ + {1, 0, 0, 0, 0, 0, 0, 0}, /* 0x01 (00000001) */ + {2, 0, 0, 0, 0, 0, 0, 0}, /* 0x02 (00000010) */ + {1, 2, 0, 0, 0, 0, 0, 0}, /* 0x03 (00000011) */ + {3, 0, 0, 0, 0, 0, 0, 0}, /* 0x04 (00000100) */ + {1, 3, 0, 0, 0, 0, 0, 0}, /* 0x05 (00000101) */ + {2, 3, 0, 0, 0, 0, 0, 0}, /* 0x06 (00000110) */ + {1, 2, 3, 0, 0, 0, 0, 0}, /* 0x07 (00000111) */ + {4, 0, 0, 0, 0, 0, 0, 0}, /* 0x08 (00001000) */ + {1, 4, 0, 0, 0, 0, 0, 0}, /* 0x09 (00001001) */ + {2, 4, 0, 0, 0, 0, 0, 0}, /* 0x0A (00001010) */ + {1, 2, 4, 0, 0, 0, 0, 0}, /* 0x0B (00001011) */ + {3, 4, 0, 0, 0, 0, 0, 0}, /* 0x0C (00001100) */ + {1, 3, 4, 0, 0, 0, 0, 0}, /* 0x0D (00001101) */ + {2, 3, 4, 0, 0, 0, 0, 0}, /* 0x0E (00001110) */ + {1, 2, 3, 4, 0, 0, 0, 0}, /* 0x0F (00001111) */ + {5, 0, 0, 0, 0, 0, 0, 0}, /* 0x10 (00010000) */ + {1, 5, 0, 0, 0, 0, 0, 0}, /* 0x11 (00010001) */ + {2, 5, 0, 0, 0, 0, 0, 0}, /* 0x12 (00010010) */ + {1, 2, 5, 0, 0, 0, 0, 0}, /* 0x13 (00010011) */ + {3, 5, 0, 0, 0, 0, 0, 0}, /* 0x14 (00010100) */ + {1, 3, 5, 0, 0, 0, 0, 0}, /* 0x15 (00010101) */ + {2, 3, 5, 0, 0, 0, 0, 0}, /* 0x16 (00010110) */ + {1, 2, 3, 5, 0, 0, 0, 0}, /* 0x17 (00010111) */ + {4, 5, 0, 0, 0, 0, 0, 0}, /* 0x18 (00011000) */ + {1, 4, 5, 0, 0, 0, 0, 0}, /* 0x19 (00011001) */ + {2, 4, 5, 0, 0, 0, 0, 0}, /* 0x1A (00011010) */ + {1, 2, 4, 5, 0, 0, 0, 0}, /* 0x1B (00011011) */ + {3, 4, 5, 0, 0, 0, 0, 0}, /* 0x1C (00011100) */ + {1, 3, 4, 5, 0, 0, 0, 0}, /* 0x1D (00011101) */ + {2, 3, 4, 5, 0, 0, 0, 0}, /* 0x1E (00011110) */ + {1, 2, 3, 4, 5, 0, 0, 0}, /* 0x1F (00011111) */ + {6, 0, 0, 0, 0, 0, 0, 0}, /* 0x20 (00100000) */ + {1, 6, 0, 0, 0, 0, 0, 0}, /* 0x21 (00100001) */ + {2, 6, 0, 0, 0, 0, 0, 0}, /* 0x22 (00100010) */ + {1, 2, 6, 0, 0, 0, 0, 0}, /* 0x23 (00100011) */ + {3, 6, 0, 0, 0, 0, 0, 0}, /* 0x24 (00100100) */ + {1, 3, 6, 0, 0, 0, 0, 0}, /* 0x25 (00100101) */ + {2, 3, 6, 0, 0, 0, 0, 0}, /* 0x26 (00100110) */ + {1, 2, 3, 6, 0, 0, 0, 0}, /* 0x27 (00100111) */ + {4, 6, 0, 0, 0, 0, 0, 0}, /* 0x28 (00101000) */ + {1, 4, 6, 0, 0, 0, 0, 0}, /* 0x29 (00101001) */ + {2, 4, 6, 0, 0, 0, 0, 0}, /* 0x2A (00101010) */ + {1, 2, 4, 6, 0, 0, 0, 0}, /* 0x2B (00101011) */ + {3, 4, 6, 0, 0, 0, 0, 0}, /* 0x2C (00101100) */ + {1, 3, 4, 6, 0, 0, 0, 0}, /* 0x2D (00101101) */ + {2, 3, 4, 6, 0, 0, 0, 0}, /* 0x2E (00101110) */ + {1, 2, 3, 4, 6, 0, 0, 0}, /* 0x2F (00101111) */ + {5, 6, 0, 0, 0, 0, 0, 0}, /* 0x30 (00110000) */ + {1, 5, 6, 0, 0, 0, 0, 0}, /* 0x31 (00110001) */ + {2, 5, 6, 0, 0, 0, 0, 0}, /* 0x32 (00110010) */ + {1, 2, 5, 6, 0, 0, 0, 0}, /* 0x33 (00110011) */ + {3, 5, 6, 0, 0, 0, 0, 0}, /* 0x34 (00110100) */ + {1, 3, 5, 6, 0, 0, 0, 0}, /* 0x35 (00110101) */ + {2, 3, 5, 6, 0, 0, 0, 0}, /* 0x36 (00110110) */ + {1, 2, 3, 5, 6, 0, 0, 0}, /* 0x37 (00110111) */ + {4, 5, 6, 0, 0, 0, 0, 0}, /* 0x38 (00111000) */ + {1, 4, 5, 6, 0, 0, 0, 0}, /* 0x39 (00111001) */ + {2, 4, 5, 6, 0, 0, 0, 0}, /* 0x3A (00111010) */ + {1, 2, 4, 5, 6, 0, 0, 0}, /* 0x3B (00111011) */ + {3, 4, 5, 6, 0, 0, 0, 0}, /* 0x3C (00111100) */ + {1, 3, 4, 5, 6, 0, 0, 0}, /* 0x3D (00111101) */ + {2, 3, 4, 5, 6, 0, 0, 0}, /* 0x3E (00111110) */ + {1, 2, 3, 4, 5, 6, 0, 0}, /* 0x3F (00111111) */ + {7, 0, 0, 0, 0, 0, 0, 0}, /* 0x40 (01000000) */ + {1, 7, 0, 0, 0, 0, 0, 0}, /* 0x41 (01000001) */ + {2, 7, 0, 0, 0, 0, 0, 0}, /* 0x42 (01000010) */ + {1, 2, 7, 0, 0, 0, 0, 0}, /* 0x43 (01000011) */ + {3, 7, 0, 0, 0, 0, 0, 0}, /* 0x44 (01000100) */ + {1, 3, 7, 0, 0, 0, 0, 0}, /* 0x45 (01000101) */ + {2, 3, 7, 0, 0, 0, 0, 0}, /* 0x46 (01000110) */ + {1, 2, 3, 7, 0, 0, 0, 0}, /* 0x47 (01000111) */ + {4, 7, 0, 0, 0, 0, 0, 0}, /* 0x48 (01001000) */ + {1, 4, 7, 0, 0, 0, 0, 0}, /* 0x49 (01001001) */ + {2, 4, 7, 0, 0, 0, 0, 0}, /* 0x4A (01001010) */ + {1, 2, 4, 7, 0, 0, 0, 0}, /* 0x4B (01001011) */ + {3, 4, 7, 0, 0, 0, 0, 0}, /* 0x4C (01001100) */ + {1, 3, 4, 7, 0, 0, 0, 0}, /* 0x4D (01001101) */ + {2, 3, 4, 7, 0, 0, 0, 0}, /* 0x4E (01001110) */ + {1, 2, 3, 4, 7, 0, 0, 0}, /* 0x4F (01001111) */ + {5, 7, 0, 0, 0, 0, 0, 0}, /* 0x50 (01010000) */ + {1, 5, 7, 0, 0, 0, 0, 0}, /* 0x51 (01010001) */ + {2, 5, 7, 0, 0, 0, 0, 0}, /* 0x52 (01010010) */ + {1, 2, 5, 7, 0, 0, 0, 0}, /* 0x53 (01010011) */ + {3, 5, 7, 0, 0, 0, 0, 0}, /* 0x54 (01010100) */ + {1, 3, 5, 7, 0, 0, 0, 0}, /* 0x55 (01010101) */ + {2, 3, 5, 7, 0, 0, 0, 0}, /* 0x56 (01010110) */ + {1, 2, 3, 5, 7, 0, 0, 0}, /* 0x57 (01010111) */ + {4, 5, 7, 0, 0, 0, 0, 0}, /* 0x58 (01011000) */ + {1, 4, 5, 7, 0, 0, 0, 0}, /* 0x59 (01011001) */ + {2, 4, 5, 7, 0, 0, 0, 0}, /* 0x5A (01011010) */ + {1, 2, 4, 5, 7, 0, 0, 0}, /* 0x5B (01011011) */ + {3, 4, 5, 7, 0, 0, 0, 0}, /* 0x5C (01011100) */ + {1, 3, 4, 5, 7, 0, 0, 0}, /* 0x5D (01011101) */ + {2, 3, 4, 5, 7, 0, 0, 0}, /* 0x5E (01011110) */ + {1, 2, 3, 4, 5, 7, 0, 0}, /* 0x5F (01011111) */ + {6, 7, 0, 0, 0, 0, 0, 0}, /* 0x60 (01100000) */ + {1, 6, 7, 0, 0, 0, 0, 0}, /* 0x61 (01100001) */ + {2, 6, 7, 0, 0, 0, 0, 0}, /* 0x62 (01100010) */ + {1, 2, 6, 7, 0, 0, 0, 0}, /* 0x63 (01100011) */ + {3, 6, 7, 0, 0, 0, 0, 0}, /* 0x64 (01100100) */ + {1, 3, 6, 7, 0, 0, 0, 0}, /* 0x65 (01100101) */ + {2, 3, 6, 7, 0, 0, 0, 0}, /* 0x66 (01100110) */ + {1, 2, 3, 6, 7, 0, 0, 0}, /* 0x67 (01100111) */ + {4, 6, 7, 0, 0, 0, 0, 0}, /* 0x68 (01101000) */ + {1, 4, 6, 7, 0, 0, 0, 0}, /* 0x69 (01101001) */ + {2, 4, 6, 7, 0, 0, 0, 0}, /* 0x6A (01101010) */ + {1, 2, 4, 6, 7, 0, 0, 0}, /* 0x6B (01101011) */ + {3, 4, 6, 7, 0, 0, 0, 0}, /* 0x6C (01101100) */ + {1, 3, 4, 6, 7, 0, 0, 0}, /* 0x6D (01101101) */ + {2, 3, 4, 6, 7, 0, 0, 0}, /* 0x6E (01101110) */ + {1, 2, 3, 4, 6, 7, 0, 0}, /* 0x6F (01101111) */ + {5, 6, 7, 0, 0, 0, 0, 0}, /* 0x70 (01110000) */ + {1, 5, 6, 7, 0, 0, 0, 0}, /* 0x71 (01110001) */ + {2, 5, 6, 7, 0, 0, 0, 0}, /* 0x72 (01110010) */ + {1, 2, 5, 6, 7, 0, 0, 0}, /* 0x73 (01110011) */ + {3, 5, 6, 7, 0, 0, 0, 0}, /* 0x74 (01110100) */ + {1, 3, 5, 6, 7, 0, 0, 0}, /* 0x75 (01110101) */ + {2, 3, 5, 6, 7, 0, 0, 0}, /* 0x76 (01110110) */ + {1, 2, 3, 5, 6, 7, 0, 0}, /* 0x77 (01110111) */ + {4, 5, 6, 7, 0, 0, 0, 0}, /* 0x78 (01111000) */ + {1, 4, 5, 6, 7, 0, 0, 0}, /* 0x79 (01111001) */ + {2, 4, 5, 6, 7, 0, 0, 0}, /* 0x7A (01111010) */ + {1, 2, 4, 5, 6, 7, 0, 0}, /* 0x7B (01111011) */ + {3, 4, 5, 6, 7, 0, 0, 0}, /* 0x7C (01111100) */ + {1, 3, 4, 5, 6, 7, 0, 0}, /* 0x7D (01111101) */ + {2, 3, 4, 5, 6, 7, 0, 0}, /* 0x7E (01111110) */ + {1, 2, 3, 4, 5, 6, 7, 0}, /* 0x7F (01111111) */ + {8, 0, 0, 0, 0, 0, 0, 0}, /* 0x80 (10000000) */ + {1, 8, 0, 0, 0, 0, 0, 0}, /* 0x81 (10000001) */ + {2, 8, 0, 0, 0, 0, 0, 0}, /* 0x82 (10000010) */ + {1, 2, 8, 0, 0, 0, 0, 0}, /* 0x83 (10000011) */ + {3, 8, 0, 0, 0, 0, 0, 0}, /* 0x84 (10000100) */ + {1, 3, 8, 0, 0, 0, 0, 0}, /* 0x85 (10000101) */ + {2, 3, 8, 0, 0, 0, 0, 0}, /* 0x86 (10000110) */ + {1, 2, 3, 8, 0, 0, 0, 0}, /* 0x87 (10000111) */ + {4, 8, 0, 0, 0, 0, 0, 0}, /* 0x88 (10001000) */ + {1, 4, 8, 0, 0, 0, 0, 0}, /* 0x89 (10001001) */ + {2, 4, 8, 0, 0, 0, 0, 0}, /* 0x8A (10001010) */ + {1, 2, 4, 8, 0, 0, 0, 0}, /* 0x8B (10001011) */ + {3, 4, 8, 0, 0, 0, 0, 0}, /* 0x8C (10001100) */ + {1, 3, 4, 8, 0, 0, 0, 0}, /* 0x8D (10001101) */ + {2, 3, 4, 8, 0, 0, 0, 0}, /* 0x8E (10001110) */ + {1, 2, 3, 4, 8, 0, 0, 0}, /* 0x8F (10001111) */ + {5, 8, 0, 0, 0, 0, 0, 0}, /* 0x90 (10010000) */ + {1, 5, 8, 0, 0, 0, 0, 0}, /* 0x91 (10010001) */ + {2, 5, 8, 0, 0, 0, 0, 0}, /* 0x92 (10010010) */ + {1, 2, 5, 8, 0, 0, 0, 0}, /* 0x93 (10010011) */ + {3, 5, 8, 0, 0, 0, 0, 0}, /* 0x94 (10010100) */ + {1, 3, 5, 8, 0, 0, 0, 0}, /* 0x95 (10010101) */ + {2, 3, 5, 8, 0, 0, 0, 0}, /* 0x96 (10010110) */ + {1, 2, 3, 5, 8, 0, 0, 0}, /* 0x97 (10010111) */ + {4, 5, 8, 0, 0, 0, 0, 0}, /* 0x98 (10011000) */ + {1, 4, 5, 8, 0, 0, 0, 0}, /* 0x99 (10011001) */ + {2, 4, 5, 8, 0, 0, 0, 0}, /* 0x9A (10011010) */ + {1, 2, 4, 5, 8, 0, 0, 0}, /* 0x9B (10011011) */ + {3, 4, 5, 8, 0, 0, 0, 0}, /* 0x9C (10011100) */ + {1, 3, 4, 5, 8, 0, 0, 0}, /* 0x9D (10011101) */ + {2, 3, 4, 5, 8, 0, 0, 0}, /* 0x9E (10011110) */ + {1, 2, 3, 4, 5, 8, 0, 0}, /* 0x9F (10011111) */ + {6, 8, 0, 0, 0, 0, 0, 0}, /* 0xA0 (10100000) */ + {1, 6, 8, 0, 0, 0, 0, 0}, /* 0xA1 (10100001) */ + {2, 6, 8, 0, 0, 0, 0, 0}, /* 0xA2 (10100010) */ + {1, 2, 6, 8, 0, 0, 0, 0}, /* 0xA3 (10100011) */ + {3, 6, 8, 0, 0, 0, 0, 0}, /* 0xA4 (10100100) */ + {1, 3, 6, 8, 0, 0, 0, 0}, /* 0xA5 (10100101) */ + {2, 3, 6, 8, 0, 0, 0, 0}, /* 0xA6 (10100110) */ + {1, 2, 3, 6, 8, 0, 0, 0}, /* 0xA7 (10100111) */ + {4, 6, 8, 0, 0, 0, 0, 0}, /* 0xA8 (10101000) */ + {1, 4, 6, 8, 0, 0, 0, 0}, /* 0xA9 (10101001) */ + {2, 4, 6, 8, 0, 0, 0, 0}, /* 0xAA (10101010) */ + {1, 2, 4, 6, 8, 0, 0, 0}, /* 0xAB (10101011) */ + {3, 4, 6, 8, 0, 0, 0, 0}, /* 0xAC (10101100) */ + {1, 3, 4, 6, 8, 0, 0, 0}, /* 0xAD (10101101) */ + {2, 3, 4, 6, 8, 0, 0, 0}, /* 0xAE (10101110) */ + {1, 2, 3, 4, 6, 8, 0, 0}, /* 0xAF (10101111) */ + {5, 6, 8, 0, 0, 0, 0, 0}, /* 0xB0 (10110000) */ + {1, 5, 6, 8, 0, 0, 0, 0}, /* 0xB1 (10110001) */ + {2, 5, 6, 8, 0, 0, 0, 0}, /* 0xB2 (10110010) */ + {1, 2, 5, 6, 8, 0, 0, 0}, /* 0xB3 (10110011) */ + {3, 5, 6, 8, 0, 0, 0, 0}, /* 0xB4 (10110100) */ + {1, 3, 5, 6, 8, 0, 0, 0}, /* 0xB5 (10110101) */ + {2, 3, 5, 6, 8, 0, 0, 0}, /* 0xB6 (10110110) */ + {1, 2, 3, 5, 6, 8, 0, 0}, /* 0xB7 (10110111) */ + {4, 5, 6, 8, 0, 0, 0, 0}, /* 0xB8 (10111000) */ + {1, 4, 5, 6, 8, 0, 0, 0}, /* 0xB9 (10111001) */ + {2, 4, 5, 6, 8, 0, 0, 0}, /* 0xBA (10111010) */ + {1, 2, 4, 5, 6, 8, 0, 0}, /* 0xBB (10111011) */ + {3, 4, 5, 6, 8, 0, 0, 0}, /* 0xBC (10111100) */ + {1, 3, 4, 5, 6, 8, 0, 0}, /* 0xBD (10111101) */ + {2, 3, 4, 5, 6, 8, 0, 0}, /* 0xBE (10111110) */ + {1, 2, 3, 4, 5, 6, 8, 0}, /* 0xBF (10111111) */ + {7, 8, 0, 0, 0, 0, 0, 0}, /* 0xC0 (11000000) */ + {1, 7, 8, 0, 0, 0, 0, 0}, /* 0xC1 (11000001) */ + {2, 7, 8, 0, 0, 0, 0, 0}, /* 0xC2 (11000010) */ + {1, 2, 7, 8, 0, 0, 0, 0}, /* 0xC3 (11000011) */ + {3, 7, 8, 0, 0, 0, 0, 0}, /* 0xC4 (11000100) */ + {1, 3, 7, 8, 0, 0, 0, 0}, /* 0xC5 (11000101) */ + {2, 3, 7, 8, 0, 0, 0, 0}, /* 0xC6 (11000110) */ + {1, 2, 3, 7, 8, 0, 0, 0}, /* 0xC7 (11000111) */ + {4, 7, 8, 0, 0, 0, 0, 0}, /* 0xC8 (11001000) */ + {1, 4, 7, 8, 0, 0, 0, 0}, /* 0xC9 (11001001) */ + {2, 4, 7, 8, 0, 0, 0, 0}, /* 0xCA (11001010) */ + {1, 2, 4, 7, 8, 0, 0, 0}, /* 0xCB (11001011) */ + {3, 4, 7, 8, 0, 0, 0, 0}, /* 0xCC (11001100) */ + {1, 3, 4, 7, 8, 0, 0, 0}, /* 0xCD (11001101) */ + {2, 3, 4, 7, 8, 0, 0, 0}, /* 0xCE (11001110) */ + {1, 2, 3, 4, 7, 8, 0, 0}, /* 0xCF (11001111) */ + {5, 7, 8, 0, 0, 0, 0, 0}, /* 0xD0 (11010000) */ + {1, 5, 7, 8, 0, 0, 0, 0}, /* 0xD1 (11010001) */ + {2, 5, 7, 8, 0, 0, 0, 0}, /* 0xD2 (11010010) */ + {1, 2, 5, 7, 8, 0, 0, 0}, /* 0xD3 (11010011) */ + {3, 5, 7, 8, 0, 0, 0, 0}, /* 0xD4 (11010100) */ + {1, 3, 5, 7, 8, 0, 0, 0}, /* 0xD5 (11010101) */ + {2, 3, 5, 7, 8, 0, 0, 0}, /* 0xD6 (11010110) */ + {1, 2, 3, 5, 7, 8, 0, 0}, /* 0xD7 (11010111) */ + {4, 5, 7, 8, 0, 0, 0, 0}, /* 0xD8 (11011000) */ + {1, 4, 5, 7, 8, 0, 0, 0}, /* 0xD9 (11011001) */ + {2, 4, 5, 7, 8, 0, 0, 0}, /* 0xDA (11011010) */ + {1, 2, 4, 5, 7, 8, 0, 0}, /* 0xDB (11011011) */ + {3, 4, 5, 7, 8, 0, 0, 0}, /* 0xDC (11011100) */ + {1, 3, 4, 5, 7, 8, 0, 0}, /* 0xDD (11011101) */ + {2, 3, 4, 5, 7, 8, 0, 0}, /* 0xDE (11011110) */ + {1, 2, 3, 4, 5, 7, 8, 0}, /* 0xDF (11011111) */ + {6, 7, 8, 0, 0, 0, 0, 0}, /* 0xE0 (11100000) */ + {1, 6, 7, 8, 0, 0, 0, 0}, /* 0xE1 (11100001) */ + {2, 6, 7, 8, 0, 0, 0, 0}, /* 0xE2 (11100010) */ + {1, 2, 6, 7, 8, 0, 0, 0}, /* 0xE3 (11100011) */ + {3, 6, 7, 8, 0, 0, 0, 0}, /* 0xE4 (11100100) */ + {1, 3, 6, 7, 8, 0, 0, 0}, /* 0xE5 (11100101) */ + {2, 3, 6, 7, 8, 0, 0, 0}, /* 0xE6 (11100110) */ + {1, 2, 3, 6, 7, 8, 0, 0}, /* 0xE7 (11100111) */ + {4, 6, 7, 8, 0, 0, 0, 0}, /* 0xE8 (11101000) */ + {1, 4, 6, 7, 8, 0, 0, 0}, /* 0xE9 (11101001) */ + {2, 4, 6, 7, 8, 0, 0, 0}, /* 0xEA (11101010) */ + {1, 2, 4, 6, 7, 8, 0, 0}, /* 0xEB (11101011) */ + {3, 4, 6, 7, 8, 0, 0, 0}, /* 0xEC (11101100) */ + {1, 3, 4, 6, 7, 8, 0, 0}, /* 0xED (11101101) */ + {2, 3, 4, 6, 7, 8, 0, 0}, /* 0xEE (11101110) */ + {1, 2, 3, 4, 6, 7, 8, 0}, /* 0xEF (11101111) */ + {5, 6, 7, 8, 0, 0, 0, 0}, /* 0xF0 (11110000) */ + {1, 5, 6, 7, 8, 0, 0, 0}, /* 0xF1 (11110001) */ + {2, 5, 6, 7, 8, 0, 0, 0}, /* 0xF2 (11110010) */ + {1, 2, 5, 6, 7, 8, 0, 0}, /* 0xF3 (11110011) */ + {3, 5, 6, 7, 8, 0, 0, 0}, /* 0xF4 (11110100) */ + {1, 3, 5, 6, 7, 8, 0, 0}, /* 0xF5 (11110101) */ + {2, 3, 5, 6, 7, 8, 0, 0}, /* 0xF6 (11110110) */ + {1, 2, 3, 5, 6, 7, 8, 0}, /* 0xF7 (11110111) */ + {4, 5, 6, 7, 8, 0, 0, 0}, /* 0xF8 (11111000) */ + {1, 4, 5, 6, 7, 8, 0, 0}, /* 0xF9 (11111001) */ + {2, 4, 5, 6, 7, 8, 0, 0}, /* 0xFA (11111010) */ + {1, 2, 4, 5, 6, 7, 8, 0}, /* 0xFB (11111011) */ + {3, 4, 5, 6, 7, 8, 0, 0}, /* 0xFC (11111100) */ + {1, 3, 4, 5, 6, 7, 8, 0}, /* 0xFD (11111101) */ + {2, 3, 4, 5, 6, 7, 8, 0}, /* 0xFE (11111110) */ + {1, 2, 3, 4, 5, 6, 7, 8} /* 0xFF (11111111) */ +}; + +#endif + +#if CROARING_IS_X64 +#if CROARING_COMPILER_SUPPORTS_AVX512 +CROARING_TARGET_AVX512 +const uint8_t vbmi2_table[64] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63}; +size_t bitset_extract_setbits_avx512(const uint64_t *words, size_t length, + uint32_t *vout, size_t outcapacity, + uint32_t base) { + uint32_t *out = (uint32_t *)vout; + uint32_t *initout = out; + uint32_t *safeout = out + outcapacity; + __m512i base_v = _mm512_set1_epi32(base); + __m512i index_table = _mm512_loadu_si512(vbmi2_table); + size_t i = 0; + + for (; (i < length) && ((out + 64) < safeout); i += 1) { + uint64_t v = words[i]; + __m512i vec = _mm512_maskz_compress_epi8(v, index_table); + + uint8_t advance = (uint8_t)roaring_hamming(v); + + __m512i vbase = + _mm512_add_epi32(base_v, _mm512_set1_epi32((int)(i * 64))); + __m512i r1 = _mm512_cvtepi8_epi32(_mm512_extracti32x4_epi32(vec, 0)); + __m512i r2 = _mm512_cvtepi8_epi32(_mm512_extracti32x4_epi32(vec, 1)); + __m512i r3 = _mm512_cvtepi8_epi32(_mm512_extracti32x4_epi32(vec, 2)); + __m512i r4 = _mm512_cvtepi8_epi32(_mm512_extracti32x4_epi32(vec, 3)); + + r1 = _mm512_add_epi32(r1, vbase); + r2 = _mm512_add_epi32(r2, vbase); + r3 = _mm512_add_epi32(r3, vbase); + r4 = _mm512_add_epi32(r4, vbase); + _mm512_storeu_si512((__m512i *)out, r1); + _mm512_storeu_si512((__m512i *)(out + 16), r2); + _mm512_storeu_si512((__m512i *)(out + 32), r3); + _mm512_storeu_si512((__m512i *)(out + 48), r4); + + out += advance; + } + + base += i * 64; + + for (; (i < length) && (out < safeout); ++i) { + uint64_t w = words[i]; + while ((w != 0) && (out < safeout)) { + uint64_t t = + w & (~w + 1); // on x64, should compile to BLSI (careful: the + // Intel compiler seems to fail) + int r = + roaring_trailing_zeroes(w); // on x64, should compile to TZCNT + uint32_t val = r + base; + memcpy(out, &val, + sizeof(uint32_t)); // should be compiled as a MOV on x64 + out++; + w ^= t; + } + base += 64; + } + + return out - initout; +} + +// Reference: +// https://lemire.me/blog/2022/05/10/faster-bitset-decoding-using-intel-avx-512/ +size_t bitset_extract_setbits_avx512_uint16(const uint64_t *array, + size_t length, uint16_t *vout, + size_t capacity, uint16_t base) { + uint16_t *out = (uint16_t *)vout; + uint16_t *initout = out; + uint16_t *safeout = vout + capacity; + + __m512i base_v = _mm512_set1_epi16(base); + __m512i index_table = _mm512_loadu_si512(vbmi2_table); + size_t i = 0; + + for (; (i < length) && ((out + 64) < safeout); i++) { + uint64_t v = array[i]; + __m512i vec = _mm512_maskz_compress_epi8(v, index_table); + + uint8_t advance = (uint8_t)roaring_hamming(v); + + __m512i vbase = + _mm512_add_epi16(base_v, _mm512_set1_epi16((short)(i * 64))); + __m512i r1 = _mm512_cvtepi8_epi16(_mm512_extracti32x8_epi32(vec, 0)); + __m512i r2 = _mm512_cvtepi8_epi16(_mm512_extracti32x8_epi32(vec, 1)); + + r1 = _mm512_add_epi16(r1, vbase); + r2 = _mm512_add_epi16(r2, vbase); + + _mm512_storeu_si512((__m512i *)out, r1); + _mm512_storeu_si512((__m512i *)(out + 32), r2); + out += advance; + } + + base += i * 64; + + for (; (i < length) && (out < safeout); ++i) { + uint64_t w = array[i]; + while ((w != 0) && (out < safeout)) { + uint64_t t = + w & (~w + 1); // on x64, should compile to BLSI (careful: the + // Intel compiler seems to fail) + int r = + roaring_trailing_zeroes(w); // on x64, should compile to TZCNT + uint32_t val = r + base; + memcpy(out, &val, sizeof(uint16_t)); + out++; + w ^= t; + } + base += 64; + } + + return out - initout; +} +CROARING_UNTARGET_AVX512 +#endif + +CROARING_TARGET_AVX2 +size_t bitset_extract_setbits_avx2(const uint64_t *words, size_t length, + uint32_t *out, size_t outcapacity, + uint32_t base) { + uint32_t *initout = out; + __m256i baseVec = _mm256_set1_epi32(base - 1); + __m256i incVec = _mm256_set1_epi32(64); + __m256i add8 = _mm256_set1_epi32(8); + uint32_t *safeout = out + outcapacity; + size_t i = 0; + for (; (i < length) && (out + 64 <= safeout); ++i) { + uint64_t w = words[i]; + if (w == 0) { + baseVec = _mm256_add_epi32(baseVec, incVec); + } else { + for (int k = 0; k < 4; ++k) { + uint8_t byteA = (uint8_t)w; + uint8_t byteB = (uint8_t)(w >> 8); + w >>= 16; + __m256i vecA = + _mm256_loadu_si256((const __m256i *)vecDecodeTable[byteA]); + __m256i vecB = + _mm256_loadu_si256((const __m256i *)vecDecodeTable[byteB]); + uint8_t advanceA = lengthTable[byteA]; + uint8_t advanceB = lengthTable[byteB]; + vecA = _mm256_add_epi32(baseVec, vecA); + baseVec = _mm256_add_epi32(baseVec, add8); + vecB = _mm256_add_epi32(baseVec, vecB); + baseVec = _mm256_add_epi32(baseVec, add8); + _mm256_storeu_si256((__m256i *)out, vecA); + out += advanceA; + _mm256_storeu_si256((__m256i *)out, vecB); + out += advanceB; + } + } + } + base += i * 64; + for (; (i < length) && (out < safeout); ++i) { + uint64_t w = words[i]; + while ((w != 0) && (out < safeout)) { + uint64_t t = + w & (~w + 1); // on x64, should compile to BLSI (careful: the + // Intel compiler seems to fail) + int r = + roaring_trailing_zeroes(w); // on x64, should compile to TZCNT + uint32_t val = r + base; + memcpy(out, &val, + sizeof(uint32_t)); // should be compiled as a MOV on x64 + out++; + w ^= t; + } + base += 64; + } + return out - initout; +} +CROARING_UNTARGET_AVX2 +#endif // CROARING_IS_X64 + +size_t bitset_extract_setbits(const uint64_t *words, size_t length, + uint32_t *out, uint32_t base) { + int outpos = 0; + for (size_t i = 0; i < length; ++i) { + uint64_t w = words[i]; + while (w != 0) { + uint64_t t = + w & (~w + 1); // on x64, should compile to BLSI (careful: the + // Intel compiler seems to fail) + int r = + roaring_trailing_zeroes(w); // on x64, should compile to TZCNT + uint32_t val = r + base; + memcpy(out + outpos, &val, + sizeof(uint32_t)); // should be compiled as a MOV on x64 + outpos++; + w ^= t; + } + base += 64; + } + return outpos; +} + +size_t bitset_extract_intersection_setbits_uint16( + const uint64_t *__restrict__ words1, const uint64_t *__restrict__ words2, + size_t length, uint16_t *out, uint16_t base) { + int outpos = 0; + for (size_t i = 0; i < length; ++i) { + uint64_t w = words1[i] & words2[i]; + while (w != 0) { + uint64_t t = w & (~w + 1); + int r = roaring_trailing_zeroes(w); + out[outpos++] = (uint16_t)(r + base); + w ^= t; + } + base += 64; + } + return outpos; +} + +#if CROARING_IS_X64 +/* + * Given a bitset containing "length" 64-bit words, write out the position + * of all the set bits to "out" as 16-bit integers, values start at "base" (can + *be set to zero). + * + * The "out" pointer should be sufficient to store the actual number of bits + *set. + * + * Returns how many values were actually decoded. + * + * This function uses SSE decoding. + */ +CROARING_TARGET_AVX2 +size_t bitset_extract_setbits_sse_uint16(const uint64_t *words, size_t length, + uint16_t *out, size_t outcapacity, + uint16_t base) { + uint16_t *initout = out; + __m128i baseVec = _mm_set1_epi16(base - 1); + __m128i incVec = _mm_set1_epi16(64); + __m128i add8 = _mm_set1_epi16(8); + uint16_t *safeout = out + outcapacity; + const int numberofbytes = 2; // process two bytes at a time + size_t i = 0; + for (; (i < length) && (out + numberofbytes * 8 <= safeout); ++i) { + uint64_t w = words[i]; + if (w == 0) { + baseVec = _mm_add_epi16(baseVec, incVec); + } else { + for (int k = 0; k < 4; ++k) { + uint8_t byteA = (uint8_t)w; + uint8_t byteB = (uint8_t)(w >> 8); + w >>= 16; + __m128i vecA = _mm_loadu_si128( + (const __m128i *)vecDecodeTable_uint16[byteA]); + __m128i vecB = _mm_loadu_si128( + (const __m128i *)vecDecodeTable_uint16[byteB]); + uint8_t advanceA = lengthTable[byteA]; + uint8_t advanceB = lengthTable[byteB]; + vecA = _mm_add_epi16(baseVec, vecA); + baseVec = _mm_add_epi16(baseVec, add8); + vecB = _mm_add_epi16(baseVec, vecB); + baseVec = _mm_add_epi16(baseVec, add8); + _mm_storeu_si128((__m128i *)out, vecA); + out += advanceA; + _mm_storeu_si128((__m128i *)out, vecB); + out += advanceB; + } + } + } + base += (uint16_t)(i * 64); + for (; (i < length) && (out < safeout); ++i) { + uint64_t w = words[i]; + while ((w != 0) && (out < safeout)) { + uint64_t t = w & (~w + 1); + int r = roaring_trailing_zeroes(w); + *out = (uint16_t)(r + base); + out++; + w ^= t; + } + base += 64; + } + return out - initout; +} +CROARING_UNTARGET_AVX2 +#endif + +/* + * Given a bitset containing "length" 64-bit words, write out the position + * of all the set bits to "out", values start at "base" (can be set to zero). + * + * The "out" pointer should be sufficient to store the actual number of bits + *set. + * + * Returns how many values were actually decoded. + */ +size_t bitset_extract_setbits_uint16(const uint64_t *words, size_t length, + uint16_t *out, uint16_t base) { + int outpos = 0; + for (size_t i = 0; i < length; ++i) { + uint64_t w = words[i]; + while (w != 0) { + uint64_t t = w & (~w + 1); + int r = roaring_trailing_zeroes(w); + out[outpos++] = (uint16_t)(r + base); + w ^= t; + } + base += 64; + } + return outpos; +} + +#if defined(CROARING_ASMBITMANIPOPTIMIZATION) && defined(CROARING_IS_X64) + +static inline uint64_t _asm_bitset_set_list_withcard(uint64_t *words, + uint64_t card, + const uint16_t *list, + uint64_t length) { + uint64_t offset, load, pos; + uint64_t shift = 6; + const uint16_t *end = list + length; + if (!length) return card; + // TODO: could unroll for performance, see bitset_set_list + // bts is not available as an intrinsic in GCC + __asm volatile( + "1:\n" + "movzwq (%[list]), %[pos]\n" + "shrx %[shift], %[pos], %[offset]\n" + "mov (%[words],%[offset],8), %[load]\n" + "bts %[pos], %[load]\n" + "mov %[load], (%[words],%[offset],8)\n" + "sbb $-1, %[card]\n" + "add $2, %[list]\n" + "cmp %[list], %[end]\n" + "jnz 1b" + : [card] "+&r"(card), [list] "+&r"(list), [load] "=&r"(load), + [pos] "=&r"(pos), [offset] "=&r"(offset) + : [end] "r"(end), [words] "r"(words), [shift] "r"(shift)); + return card; +} + +static inline void _asm_bitset_set_list(uint64_t *words, const uint16_t *list, + uint64_t length) { + uint64_t pos; + const uint16_t *end = list + length; + + uint64_t shift = 6; + uint64_t offset; + uint64_t load; + for (; list + 3 < end; list += 4) { + pos = list[0]; + __asm volatile( + "shrx %[shift], %[pos], %[offset]\n" + "mov (%[words],%[offset],8), %[load]\n" + "bts %[pos], %[load]\n" + "mov %[load], (%[words],%[offset],8)" + : [load] "=&r"(load), [offset] "=&r"(offset) + : [words] "r"(words), [shift] "r"(shift), [pos] "r"(pos)); + pos = list[1]; + __asm volatile( + "shrx %[shift], %[pos], %[offset]\n" + "mov (%[words],%[offset],8), %[load]\n" + "bts %[pos], %[load]\n" + "mov %[load], (%[words],%[offset],8)" + : [load] "=&r"(load), [offset] "=&r"(offset) + : [words] "r"(words), [shift] "r"(shift), [pos] "r"(pos)); + pos = list[2]; + __asm volatile( + "shrx %[shift], %[pos], %[offset]\n" + "mov (%[words],%[offset],8), %[load]\n" + "bts %[pos], %[load]\n" + "mov %[load], (%[words],%[offset],8)" + : [load] "=&r"(load), [offset] "=&r"(offset) + : [words] "r"(words), [shift] "r"(shift), [pos] "r"(pos)); + pos = list[3]; + __asm volatile( + "shrx %[shift], %[pos], %[offset]\n" + "mov (%[words],%[offset],8), %[load]\n" + "bts %[pos], %[load]\n" + "mov %[load], (%[words],%[offset],8)" + : [load] "=&r"(load), [offset] "=&r"(offset) + : [words] "r"(words), [shift] "r"(shift), [pos] "r"(pos)); + } + + while (list != end) { + pos = list[0]; + __asm volatile( + "shrx %[shift], %[pos], %[offset]\n" + "mov (%[words],%[offset],8), %[load]\n" + "bts %[pos], %[load]\n" + "mov %[load], (%[words],%[offset],8)" + : [load] "=&r"(load), [offset] "=&r"(offset) + : [words] "r"(words), [shift] "r"(shift), [pos] "r"(pos)); + list++; + } +} + +static inline uint64_t _asm_bitset_clear_list(uint64_t *words, uint64_t card, + const uint16_t *list, + uint64_t length) { + uint64_t offset, load, pos; + uint64_t shift = 6; + const uint16_t *end = list + length; + if (!length) return card; + // btr is not available as an intrinsic in GCC + __asm volatile( + "1:\n" + "movzwq (%[list]), %[pos]\n" + "shrx %[shift], %[pos], %[offset]\n" + "mov (%[words],%[offset],8), %[load]\n" + "btr %[pos], %[load]\n" + "mov %[load], (%[words],%[offset],8)\n" + "sbb $0, %[card]\n" + "add $2, %[list]\n" + "cmp %[list], %[end]\n" + "jnz 1b" + : [card] "+&r"(card), [list] "+&r"(list), [load] "=&r"(load), + [pos] "=&r"(pos), [offset] "=&r"(offset) + : [end] "r"(end), [words] "r"(words), [shift] "r"(shift) + : + /* clobbers */ "memory"); + return card; +} + +static inline uint64_t _scalar_bitset_clear_list(uint64_t *words, uint64_t card, + const uint16_t *list, + uint64_t length) { + uint64_t offset, load, newload, pos, index; + const uint16_t *end = list + length; + while (list != end) { + pos = *(const uint16_t *)list; + offset = pos >> 6; + index = pos % 64; + load = words[offset]; + newload = load & ~(UINT64_C(1) << index); + card -= (load ^ newload) >> index; + words[offset] = newload; + list++; + } + return card; +} + +static inline uint64_t _scalar_bitset_set_list_withcard(uint64_t *words, + uint64_t card, + const uint16_t *list, + uint64_t length) { + uint64_t offset, load, newload, pos, index; + const uint16_t *end = list + length; + while (list != end) { + pos = *list; + offset = pos >> 6; + index = pos % 64; + load = words[offset]; + newload = load | (UINT64_C(1) << index); + card += (load ^ newload) >> index; + words[offset] = newload; + list++; + } + return card; +} + +static inline void _scalar_bitset_set_list(uint64_t *words, + const uint16_t *list, + uint64_t length) { + uint64_t offset, load, newload, pos, index; + const uint16_t *end = list + length; + while (list != end) { + pos = *list; + offset = pos >> 6; + index = pos % 64; + load = words[offset]; + newload = load | (UINT64_C(1) << index); + words[offset] = newload; + list++; + } +} + +uint64_t bitset_clear_list(uint64_t *words, uint64_t card, const uint16_t *list, + uint64_t length) { + if (croaring_hardware_support() & ROARING_SUPPORTS_AVX2) { + return _asm_bitset_clear_list(words, card, list, length); + } else { + return _scalar_bitset_clear_list(words, card, list, length); + } +} + +uint64_t bitset_set_list_withcard(uint64_t *words, uint64_t card, + const uint16_t *list, uint64_t length) { + if (croaring_hardware_support() & ROARING_SUPPORTS_AVX2) { + return _asm_bitset_set_list_withcard(words, card, list, length); + } else { + return _scalar_bitset_set_list_withcard(words, card, list, length); + } +} + +void bitset_set_list(uint64_t *words, const uint16_t *list, uint64_t length) { + if (croaring_hardware_support() & ROARING_SUPPORTS_AVX2) { + _asm_bitset_set_list(words, list, length); + } else { + _scalar_bitset_set_list(words, list, length); + } +} +#else +uint64_t bitset_clear_list(uint64_t *words, uint64_t card, const uint16_t *list, + uint64_t length) { + uint64_t offset, load, newload, pos, index; + const uint16_t *end = list + length; + while (list != end) { + pos = *(const uint16_t *)list; + offset = pos >> 6; + index = pos % 64; + load = words[offset]; + newload = load & ~(UINT64_C(1) << index); + card -= (load ^ newload) >> index; + words[offset] = newload; + list++; + } + return card; +} + +uint64_t bitset_set_list_withcard(uint64_t *words, uint64_t card, + const uint16_t *list, uint64_t length) { + uint64_t offset, load, newload, pos, index; + const uint16_t *end = list + length; + while (list != end) { + pos = *list; + offset = pos >> 6; + index = pos % 64; + load = words[offset]; + newload = load | (UINT64_C(1) << index); + card += (load ^ newload) >> index; + words[offset] = newload; + list++; + } + return card; +} + +void bitset_set_list(uint64_t *words, const uint16_t *list, uint64_t length) { + uint64_t offset, load, newload, pos, index; + const uint16_t *end = list + length; + while (list != end) { + pos = *list; + offset = pos >> 6; + index = pos % 64; + load = words[offset]; + newload = load | (UINT64_C(1) << index); + words[offset] = newload; + list++; + } +} + +#endif + +/* flip specified bits */ +/* TODO: consider whether worthwhile to make an asm version */ + +uint64_t bitset_flip_list_withcard(uint64_t *words, uint64_t card, + const uint16_t *list, uint64_t length) { + uint64_t offset, load, newload, pos, index; + const uint16_t *end = list + length; + while (list != end) { + pos = *list; + offset = pos >> 6; + index = pos % 64; + load = words[offset]; + newload = load ^ (UINT64_C(1) << index); + // todo: is a branch here all that bad? + card += + (1 - 2 * (((UINT64_C(1) << index) & load) >> index)); // +1 or -1 + words[offset] = newload; + list++; + } + return card; +} + +void bitset_flip_list(uint64_t *words, const uint16_t *list, uint64_t length) { + uint64_t offset, load, newload, pos, index; + const uint16_t *end = list + length; + while (list != end) { + pos = *list; + offset = pos >> 6; + index = pos % 64; + load = words[offset]; + newload = load ^ (UINT64_C(1) << index); + words[offset] = newload; + list++; + } +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace api { +#endif +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif \ No newline at end of file diff --git a/contrib/libs/croaring/src/containers/array.c b/contrib/libs/croaring/src/containers/array.c new file mode 100644 index 000000000000..0a24482a32b7 --- /dev/null +++ b/contrib/libs/croaring/src/containers/array.c @@ -0,0 +1,575 @@ +/* + * array.c + * + */ + +#include +#include +#include + +#include +#include + +#if CROARING_IS_X64 +#ifndef CROARING_COMPILER_SUPPORTS_AVX512 +#error "CROARING_COMPILER_SUPPORTS_AVX512 needs to be defined." +#endif // CROARING_COMPILER_SUPPORTS_AVX512 +#endif + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +extern inline uint16_t array_container_minimum(const array_container_t *arr); +extern inline uint16_t array_container_maximum(const array_container_t *arr); +extern inline int array_container_index_equalorlarger( + const array_container_t *arr, uint16_t x); + +extern inline int array_container_rank(const array_container_t *arr, + uint16_t x); +extern inline uint32_t array_container_rank_many(const array_container_t *arr, + uint64_t start_rank, + const uint32_t *begin, + const uint32_t *end, + uint64_t *ans); +extern inline int array_container_get_index(const array_container_t *arr, + uint16_t x); +extern inline bool array_container_contains(const array_container_t *arr, + uint16_t pos); +extern inline int array_container_cardinality(const array_container_t *array); +extern inline bool array_container_nonzero_cardinality( + const array_container_t *array); +extern inline int32_t array_container_serialized_size_in_bytes(int32_t card); +extern inline bool array_container_empty(const array_container_t *array); +extern inline bool array_container_full(const array_container_t *array); + +/* Create a new array with capacity size. Return NULL in case of failure. */ +array_container_t *array_container_create_given_capacity(int32_t size) { + array_container_t *container; + + if ((container = (array_container_t *)roaring_malloc( + sizeof(array_container_t))) == NULL) { + return NULL; + } + + if (size <= 0) { // we don't want to rely on malloc(0) + container->array = NULL; + } else if ((container->array = (uint16_t *)roaring_malloc(sizeof(uint16_t) * + size)) == NULL) { + roaring_free(container); + return NULL; + } + + container->capacity = size; + container->cardinality = 0; + + return container; +} + +/* Create a new array. Return NULL in case of failure. */ +array_container_t *array_container_create(void) { + return array_container_create_given_capacity(ARRAY_DEFAULT_INIT_SIZE); +} + +/* Create a new array containing all values in [min,max). */ +array_container_t *array_container_create_range(uint32_t min, uint32_t max) { + array_container_t *answer = + array_container_create_given_capacity(max - min + 1); + if (answer == NULL) return answer; + answer->cardinality = 0; + for (uint32_t k = min; k < max; k++) { + answer->array[answer->cardinality++] = k; + } + return answer; +} + +/* Duplicate container */ +ALLOW_UNALIGNED +array_container_t *array_container_clone(const array_container_t *src) { + array_container_t *newcontainer = + array_container_create_given_capacity(src->capacity); + if (newcontainer == NULL) return NULL; + + newcontainer->cardinality = src->cardinality; + + memcpy(newcontainer->array, src->array, + src->cardinality * sizeof(uint16_t)); + + return newcontainer; +} + +void array_container_offset(const array_container_t *c, container_t **loc, + container_t **hic, uint16_t offset) { + array_container_t *lo = NULL, *hi = NULL; + int top, lo_cap, hi_cap; + + top = (1 << 16) - offset; + + lo_cap = count_less(c->array, c->cardinality, top); + if (loc && lo_cap) { + lo = array_container_create_given_capacity(lo_cap); + for (int i = 0; i < lo_cap; ++i) { + array_container_add(lo, c->array[i] + offset); + } + *loc = (container_t *)lo; + } + + hi_cap = c->cardinality - lo_cap; + if (hic && hi_cap) { + hi = array_container_create_given_capacity(hi_cap); + for (int i = lo_cap; i < c->cardinality; ++i) { + array_container_add(hi, c->array[i] + offset); + } + *hic = (container_t *)hi; + } +} + +int array_container_shrink_to_fit(array_container_t *src) { + if (src->cardinality == src->capacity) return 0; // nothing to do + int savings = src->capacity - src->cardinality; + src->capacity = src->cardinality; + if (src->capacity == + 0) { // we do not want to rely on realloc for zero allocs + roaring_free(src->array); + src->array = NULL; + } else { + uint16_t *oldarray = src->array; + src->array = (uint16_t *)roaring_realloc( + oldarray, src->capacity * sizeof(uint16_t)); + if (src->array == NULL) roaring_free(oldarray); // should never happen? + } + return savings; +} + +/* Free memory. */ +void array_container_free(array_container_t *arr) { + if (arr->array != + NULL) { // Jon Strabala reports that some tools complain otherwise + roaring_free(arr->array); + arr->array = NULL; // pedantic + } + roaring_free(arr); +} + +static inline int32_t grow_capacity(int32_t capacity) { + return (capacity <= 0) ? ARRAY_DEFAULT_INIT_SIZE + : capacity < 64 ? capacity * 2 + : capacity < 1024 ? capacity * 3 / 2 + : capacity * 5 / 4; +} + +static inline int32_t clamp(int32_t val, int32_t min, int32_t max) { + return ((val < min) ? min : (val > max) ? max : val); +} + +void array_container_grow(array_container_t *container, int32_t min, + bool preserve) { + int32_t max = (min <= DEFAULT_MAX_SIZE ? DEFAULT_MAX_SIZE : 65536); + int32_t new_capacity = clamp(grow_capacity(container->capacity), min, max); + + container->capacity = new_capacity; + uint16_t *array = container->array; + + if (preserve) { + container->array = + (uint16_t *)roaring_realloc(array, new_capacity * sizeof(uint16_t)); + if (container->array == NULL) roaring_free(array); + } else { + // Jon Strabala reports that some tools complain otherwise + if (array != NULL) { + roaring_free(array); + } + container->array = + (uint16_t *)roaring_malloc(new_capacity * sizeof(uint16_t)); + } + + // if realloc fails, we have container->array == NULL. +} + +/* Copy one container into another. We assume that they are distinct. */ +void array_container_copy(const array_container_t *src, + array_container_t *dst) { + const int32_t cardinality = src->cardinality; + if (cardinality > dst->capacity) { + array_container_grow(dst, cardinality, false); + } + + dst->cardinality = cardinality; + memcpy(dst->array, src->array, cardinality * sizeof(uint16_t)); +} + +void array_container_add_from_range(array_container_t *arr, uint32_t min, + uint32_t max, uint16_t step) { + for (uint32_t value = min; value < max; value += step) { + array_container_append(arr, value); + } +} + +/* Computes the union of array1 and array2 and write the result to arrayout. + * It is assumed that arrayout is distinct from both array1 and array2. + */ +void array_container_union(const array_container_t *array_1, + const array_container_t *array_2, + array_container_t *out) { + const int32_t card_1 = array_1->cardinality, card_2 = array_2->cardinality; + const int32_t max_cardinality = card_1 + card_2; + + if (out->capacity < max_cardinality) { + array_container_grow(out, max_cardinality, false); + } + out->cardinality = (int32_t)fast_union_uint16( + array_1->array, card_1, array_2->array, card_2, out->array); +} + +/* Computes the difference of array1 and array2 and write the result + * to array out. + * Array out does not need to be distinct from array_1 + */ +void array_container_andnot(const array_container_t *array_1, + const array_container_t *array_2, + array_container_t *out) { + if (out->capacity < array_1->cardinality) + array_container_grow(out, array_1->cardinality, false); +#if CROARING_IS_X64 + if ((croaring_hardware_support() & ROARING_SUPPORTS_AVX2) && + (out != array_1) && (out != array_2)) { + out->cardinality = difference_vector16( + array_1->array, array_1->cardinality, array_2->array, + array_2->cardinality, out->array); + } else { + out->cardinality = + difference_uint16(array_1->array, array_1->cardinality, + array_2->array, array_2->cardinality, out->array); + } +#else + out->cardinality = + difference_uint16(array_1->array, array_1->cardinality, array_2->array, + array_2->cardinality, out->array); +#endif +} + +/* Computes the symmetric difference of array1 and array2 and write the + * result + * to arrayout. + * It is assumed that arrayout is distinct from both array1 and array2. + */ +void array_container_xor(const array_container_t *array_1, + const array_container_t *array_2, + array_container_t *out) { + const int32_t card_1 = array_1->cardinality, card_2 = array_2->cardinality; + const int32_t max_cardinality = card_1 + card_2; + if (out->capacity < max_cardinality) { + array_container_grow(out, max_cardinality, false); + } + +#if CROARING_IS_X64 + if (croaring_hardware_support() & ROARING_SUPPORTS_AVX2) { + out->cardinality = + xor_vector16(array_1->array, array_1->cardinality, array_2->array, + array_2->cardinality, out->array); + } else { + out->cardinality = + xor_uint16(array_1->array, array_1->cardinality, array_2->array, + array_2->cardinality, out->array); + } +#else + out->cardinality = + xor_uint16(array_1->array, array_1->cardinality, array_2->array, + array_2->cardinality, out->array); +#endif +} + +static inline int32_t minimum_int32(int32_t a, int32_t b) { + return (a < b) ? a : b; +} + +/* computes the intersection of array1 and array2 and write the result to + * arrayout. + * It is assumed that arrayout is distinct from both array1 and array2. + * */ +void array_container_intersection(const array_container_t *array1, + const array_container_t *array2, + array_container_t *out) { + int32_t card_1 = array1->cardinality, card_2 = array2->cardinality, + min_card = minimum_int32(card_1, card_2); + const int threshold = 64; // subject to tuning +#if CROARING_IS_X64 + if (out->capacity < min_card) { + array_container_grow(out, min_card + sizeof(__m128i) / sizeof(uint16_t), + false); + } +#else + if (out->capacity < min_card) { + array_container_grow(out, min_card, false); + } +#endif + + if (card_1 * threshold < card_2) { + out->cardinality = intersect_skewed_uint16( + array1->array, card_1, array2->array, card_2, out->array); + } else if (card_2 * threshold < card_1) { + out->cardinality = intersect_skewed_uint16( + array2->array, card_2, array1->array, card_1, out->array); + } else { +#if CROARING_IS_X64 + if (croaring_hardware_support() & ROARING_SUPPORTS_AVX2) { + out->cardinality = intersect_vector16( + array1->array, card_1, array2->array, card_2, out->array); + } else { + out->cardinality = intersect_uint16( + array1->array, card_1, array2->array, card_2, out->array); + } +#else + out->cardinality = intersect_uint16(array1->array, card_1, + array2->array, card_2, out->array); +#endif + } +} + +/* computes the size of the intersection of array1 and array2 + * */ +int array_container_intersection_cardinality(const array_container_t *array1, + const array_container_t *array2) { + int32_t card_1 = array1->cardinality, card_2 = array2->cardinality; + const int threshold = 64; // subject to tuning + if (card_1 * threshold < card_2) { + return intersect_skewed_uint16_cardinality(array1->array, card_1, + array2->array, card_2); + } else if (card_2 * threshold < card_1) { + return intersect_skewed_uint16_cardinality(array2->array, card_2, + array1->array, card_1); + } else { +#if CROARING_IS_X64 + if (croaring_hardware_support() & ROARING_SUPPORTS_AVX2) { + return intersect_vector16_cardinality(array1->array, card_1, + array2->array, card_2); + } else { + return intersect_uint16_cardinality(array1->array, card_1, + array2->array, card_2); + } +#else + return intersect_uint16_cardinality(array1->array, card_1, + array2->array, card_2); +#endif + } +} + +bool array_container_intersect(const array_container_t *array1, + const array_container_t *array2) { + int32_t card_1 = array1->cardinality, card_2 = array2->cardinality; + const int threshold = 64; // subject to tuning + if (card_1 * threshold < card_2) { + return intersect_skewed_uint16_nonempty(array1->array, card_1, + array2->array, card_2); + } else if (card_2 * threshold < card_1) { + return intersect_skewed_uint16_nonempty(array2->array, card_2, + array1->array, card_1); + } else { + // we do not bother vectorizing + return intersect_uint16_nonempty(array1->array, card_1, array2->array, + card_2); + } +} + +/* computes the intersection of array1 and array2 and write the result to + * array1. + * */ +void array_container_intersection_inplace(array_container_t *src_1, + const array_container_t *src_2) { + int32_t card_1 = src_1->cardinality, card_2 = src_2->cardinality; + const int threshold = 64; // subject to tuning + if (card_1 * threshold < card_2) { + src_1->cardinality = intersect_skewed_uint16( + src_1->array, card_1, src_2->array, card_2, src_1->array); + } else if (card_2 * threshold < card_1) { + src_1->cardinality = intersect_skewed_uint16( + src_2->array, card_2, src_1->array, card_1, src_1->array); + } else { +#if CROARING_IS_X64 + if (croaring_hardware_support() & ROARING_SUPPORTS_AVX2) { + src_1->cardinality = intersect_vector16_inplace( + src_1->array, card_1, src_2->array, card_2); + } else { + src_1->cardinality = intersect_uint16( + src_1->array, card_1, src_2->array, card_2, src_1->array); + } +#else + src_1->cardinality = intersect_uint16( + src_1->array, card_1, src_2->array, card_2, src_1->array); +#endif + } +} + +ALLOW_UNALIGNED +int array_container_to_uint32_array(void *vout, const array_container_t *cont, + uint32_t base) { +#if CROARING_IS_X64 + int support = croaring_hardware_support(); +#if CROARING_COMPILER_SUPPORTS_AVX512 + if (support & ROARING_SUPPORTS_AVX512) { + return avx512_array_container_to_uint32_array(vout, cont->array, + cont->cardinality, base); + } +#endif + if (support & ROARING_SUPPORTS_AVX2) { + return array_container_to_uint32_array_vector16( + vout, cont->array, cont->cardinality, base); + } +#endif // CROARING_IS_X64 + int outpos = 0; + uint32_t *out = (uint32_t *)vout; + size_t i = 0; + for (; i < (size_t)cont->cardinality; ++i) { + const uint32_t val = base + cont->array[i]; + memcpy(out + outpos, &val, + sizeof(uint32_t)); // should be compiled as a MOV on x64 + outpos++; + } + return outpos; +} + +void array_container_printf(const array_container_t *v) { + if (v->cardinality == 0) { + printf("{}"); + return; + } + printf("{"); + printf("%d", v->array[0]); + for (int i = 1; i < v->cardinality; ++i) { + printf(",%d", v->array[i]); + } + printf("}"); +} + +void array_container_printf_as_uint32_array(const array_container_t *v, + uint32_t base) { + if (v->cardinality == 0) { + return; + } + printf("%u", v->array[0] + base); + for (int i = 1; i < v->cardinality; ++i) { + printf(",%u", v->array[i] + base); + } +} + +/* + * Validate the container. Returns true if valid. + */ +bool array_container_validate(const array_container_t *v, const char **reason) { + if (v->capacity < 0) { + *reason = "negative capacity"; + return false; + } + if (v->cardinality < 0) { + *reason = "negative cardinality"; + return false; + } + if (v->cardinality > v->capacity) { + *reason = "cardinality exceeds capacity"; + return false; + } + if (v->cardinality > DEFAULT_MAX_SIZE) { + *reason = "cardinality exceeds DEFAULT_MAX_SIZE"; + return false; + } + if (v->cardinality == 0) { + *reason = "zero cardinality"; + return false; + } + + if (v->array == NULL) { + *reason = "NULL array pointer"; + return false; + } + uint16_t prev = v->array[0]; + for (int i = 1; i < v->cardinality; ++i) { + if (v->array[i] <= prev) { + *reason = "array elements not strictly increasing"; + return false; + } + prev = v->array[i]; + } + + return true; +} + +/* Compute the number of runs */ +int32_t array_container_number_of_runs(const array_container_t *ac) { + // Can SIMD work here? + int32_t nr_runs = 0; + int32_t prev = -2; + for (const uint16_t *p = ac->array; p != ac->array + ac->cardinality; ++p) { + if (*p != prev + 1) nr_runs++; + prev = *p; + } + return nr_runs; +} + +/** + * Writes the underlying array to buf, outputs how many bytes were written. + * The number of bytes written should be + * array_container_size_in_bytes(container). + * + */ +int32_t array_container_write(const array_container_t *container, char *buf) { + memcpy(buf, container->array, container->cardinality * sizeof(uint16_t)); + return array_container_size_in_bytes(container); +} + +bool array_container_is_subset(const array_container_t *container1, + const array_container_t *container2) { + if (container1->cardinality > container2->cardinality) { + return false; + } + int i1 = 0, i2 = 0; + while (i1 < container1->cardinality && i2 < container2->cardinality) { + if (container1->array[i1] == container2->array[i2]) { + i1++; + i2++; + } else if (container1->array[i1] > container2->array[i2]) { + i2++; + } else { // container1->array[i1] < container2->array[i2] + return false; + } + } + if (i1 == container1->cardinality) { + return true; + } else { + return false; + } +} + +int32_t array_container_read(int32_t cardinality, array_container_t *container, + const char *buf) { + if (container->capacity < cardinality) { + array_container_grow(container, cardinality, false); + } + container->cardinality = cardinality; + memcpy(container->array, buf, container->cardinality * sizeof(uint16_t)); + + return array_container_size_in_bytes(container); +} + +bool array_container_iterate(const array_container_t *cont, uint32_t base, + roaring_iterator iterator, void *ptr) { + for (int i = 0; i < cont->cardinality; i++) + if (!iterator(cont->array[i] + base, ptr)) return false; + return true; +} + +bool array_container_iterate64(const array_container_t *cont, uint32_t base, + roaring_iterator64 iterator, uint64_t high_bits, + void *ptr) { + for (int i = 0; i < cont->cardinality; i++) + if (!iterator(high_bits | (uint64_t)(cont->array[i] + base), ptr)) + return false; + return true; +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif diff --git a/contrib/libs/croaring/src/containers/bitset.c b/contrib/libs/croaring/src/containers/bitset.c new file mode 100644 index 000000000000..f49739594cc4 --- /dev/null +++ b/contrib/libs/croaring/src/containers/bitset.c @@ -0,0 +1,1309 @@ +/* + * bitset.c + * + */ +#ifndef _POSIX_C_SOURCE +#define _POSIX_C_SOURCE 200809L +#endif +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#if CROARING_IS_X64 +#ifndef CROARING_COMPILER_SUPPORTS_AVX512 +#error "CROARING_COMPILER_SUPPORTS_AVX512 needs to be defined." +#endif // CROARING_COMPILER_SUPPORTS_AVX512 +#endif + +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wuninitialized" +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +extern inline int bitset_container_cardinality( + const bitset_container_t *bitset); +extern inline void bitset_container_set(bitset_container_t *bitset, + uint16_t pos); +// unused at this time: +// extern inline void bitset_container_unset(bitset_container_t *bitset, +// uint16_t pos); +extern inline bool bitset_container_get(const bitset_container_t *bitset, + uint16_t pos); +extern inline int32_t bitset_container_serialized_size_in_bytes(void); +extern inline bool bitset_container_add(bitset_container_t *bitset, + uint16_t pos); +extern inline bool bitset_container_remove(bitset_container_t *bitset, + uint16_t pos); +extern inline bool bitset_container_contains(const bitset_container_t *bitset, + uint16_t pos); + +void bitset_container_clear(bitset_container_t *bitset) { + memset(bitset->words, 0, sizeof(uint64_t) * BITSET_CONTAINER_SIZE_IN_WORDS); + bitset->cardinality = 0; +} + +void bitset_container_set_all(bitset_container_t *bitset) { + memset(bitset->words, INT64_C(-1), + sizeof(uint64_t) * BITSET_CONTAINER_SIZE_IN_WORDS); + bitset->cardinality = (1 << 16); +} + +/* Create a new bitset. Return NULL in case of failure. */ +bitset_container_t *bitset_container_create(void) { + bitset_container_t *bitset = + (bitset_container_t *)roaring_malloc(sizeof(bitset_container_t)); + + if (!bitset) { + return NULL; + } + + size_t align_size = 32; +#if CROARING_IS_X64 + int support = croaring_hardware_support(); + if (support & ROARING_SUPPORTS_AVX512) { + // sizeof(__m512i) == 64 + align_size = 64; + } else { + // sizeof(__m256i) == 32 + align_size = 32; + } +#endif + bitset->words = (uint64_t *)roaring_aligned_malloc( + align_size, sizeof(uint64_t) * BITSET_CONTAINER_SIZE_IN_WORDS); + if (!bitset->words) { + roaring_free(bitset); + return NULL; + } + bitset_container_clear(bitset); + return bitset; +} + +/* Copy one container into another. We assume that they are distinct. */ +void bitset_container_copy(const bitset_container_t *source, + bitset_container_t *dest) { + dest->cardinality = source->cardinality; + memcpy(dest->words, source->words, + sizeof(uint64_t) * BITSET_CONTAINER_SIZE_IN_WORDS); +} + +void bitset_container_add_from_range(bitset_container_t *bitset, uint32_t min, + uint32_t max, uint16_t step) { + if (step == 0) return; // refuse to crash + if ((64 % step) == 0) { // step divides 64 + uint64_t mask = 0; // construct the repeated mask + for (uint32_t value = (min % step); value < 64; value += step) { + mask |= ((uint64_t)1 << value); + } + uint32_t firstword = min / 64; + uint32_t endword = (max - 1) / 64; + bitset->cardinality = (max - min + step - 1) / step; + if (firstword == endword) { + bitset->words[firstword] |= + mask & (((~UINT64_C(0)) << (min % 64)) & + ((~UINT64_C(0)) >> ((~max + 1) % 64))); + return; + } + bitset->words[firstword] = mask & ((~UINT64_C(0)) << (min % 64)); + for (uint32_t i = firstword + 1; i < endword; i++) + bitset->words[i] = mask; + bitset->words[endword] = mask & ((~UINT64_C(0)) >> ((~max + 1) % 64)); + } else { + for (uint32_t value = min; value < max; value += step) { + bitset_container_add(bitset, value); + } + } +} + +/* Free memory. */ +void bitset_container_free(bitset_container_t *bitset) { + if (bitset->words != + NULL) { // Jon Strabala reports that some tools complain otherwise + roaring_aligned_free(bitset->words); + bitset->words = NULL; // pedantic + } + roaring_free(bitset); +} + +/* duplicate container. */ +ALLOW_UNALIGNED +bitset_container_t *bitset_container_clone(const bitset_container_t *src) { + bitset_container_t *bitset = + (bitset_container_t *)roaring_malloc(sizeof(bitset_container_t)); + + if (!bitset) { + return NULL; + } + + size_t align_size = 32; +#if CROARING_IS_X64 + if (croaring_hardware_support() & ROARING_SUPPORTS_AVX512) { + // sizeof(__m512i) == 64 + align_size = 64; + } else { + // sizeof(__m256i) == 32 + align_size = 32; + } +#endif + bitset->words = (uint64_t *)roaring_aligned_malloc( + align_size, sizeof(uint64_t) * BITSET_CONTAINER_SIZE_IN_WORDS); + if (!bitset->words) { + roaring_free(bitset); + return NULL; + } + bitset->cardinality = src->cardinality; + memcpy(bitset->words, src->words, + sizeof(uint64_t) * BITSET_CONTAINER_SIZE_IN_WORDS); + return bitset; +} + +void bitset_container_offset(const bitset_container_t *c, container_t **loc, + container_t **hic, uint16_t offset) { + bitset_container_t *bc = NULL; + uint64_t val; + uint16_t b, i, end; + + b = offset >> 6; + i = offset % 64; + end = 1024 - b; + + if (loc != NULL) { + bc = bitset_container_create(); + if (i == 0) { + memcpy(bc->words + b, c->words, 8 * end); + } else { + bc->words[b] = c->words[0] << i; + for (uint32_t k = 1; k < end; ++k) { + val = c->words[k] << i; + val |= c->words[k - 1] >> (64 - i); + bc->words[b + k] = val; + } + } + + bc->cardinality = bitset_container_compute_cardinality(bc); + if (bc->cardinality != 0) { + *loc = bc; + } + if (bc->cardinality == c->cardinality) { + return; + } + } + + if (hic == NULL) { + // Both hic and loc can't be NULL, so bc is never NULL here + if (bc->cardinality == 0) { + bitset_container_free(bc); + } + return; + } + + if (bc == NULL || bc->cardinality != 0) { + bc = bitset_container_create(); + } + + if (i == 0) { + memcpy(bc->words, c->words + end, 8 * b); + } else { + for (uint32_t k = end; k < 1024; ++k) { + val = c->words[k] << i; + val |= c->words[k - 1] >> (64 - i); + bc->words[k - end] = val; + } + bc->words[b] = c->words[1023] >> (64 - i); + } + + bc->cardinality = bitset_container_compute_cardinality(bc); + if (bc->cardinality == 0) { + bitset_container_free(bc); + return; + } + *hic = bc; +} + +void bitset_container_set_range(bitset_container_t *bitset, uint32_t begin, + uint32_t end) { + bitset_set_range(bitset->words, begin, end); + bitset->cardinality = + bitset_container_compute_cardinality(bitset); // could be smarter +} + +bool bitset_container_intersect(const bitset_container_t *src_1, + const bitset_container_t *src_2) { + // could vectorize, but this is probably already quite fast in practice + const uint64_t *__restrict__ words_1 = src_1->words; + const uint64_t *__restrict__ words_2 = src_2->words; + for (int i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; i++) { + if ((words_1[i] & words_2[i]) != 0) return true; + } + return false; +} + +#if CROARING_IS_X64 +#ifndef CROARING_WORDS_IN_AVX2_REG +#define CROARING_WORDS_IN_AVX2_REG sizeof(__m256i) / sizeof(uint64_t) +#endif +#ifndef WORDS_IN_AVX512_REG +#define WORDS_IN_AVX512_REG sizeof(__m512i) / sizeof(uint64_t) +#endif +/* Get the number of bits set (force computation) */ +static inline int _scalar_bitset_container_compute_cardinality( + const bitset_container_t *bitset) { + const uint64_t *words = bitset->words; + int32_t sum = 0; + for (int i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; i += 4) { + sum += roaring_hamming(words[i]); + sum += roaring_hamming(words[i + 1]); + sum += roaring_hamming(words[i + 2]); + sum += roaring_hamming(words[i + 3]); + } + return sum; +} +/* Get the number of bits set (force computation) */ +int bitset_container_compute_cardinality(const bitset_container_t *bitset) { + int support = croaring_hardware_support(); +#if CROARING_COMPILER_SUPPORTS_AVX512 + if (support & ROARING_SUPPORTS_AVX512) { + return (int)avx512_vpopcount( + (const __m512i *)bitset->words, + BITSET_CONTAINER_SIZE_IN_WORDS / (WORDS_IN_AVX512_REG)); + } else +#endif // CROARING_COMPILER_SUPPORTS_AVX512 + if (support & ROARING_SUPPORTS_AVX2) { + return (int)avx2_harley_seal_popcount256( + (const __m256i *)bitset->words, + BITSET_CONTAINER_SIZE_IN_WORDS / (CROARING_WORDS_IN_AVX2_REG)); + } else { + return _scalar_bitset_container_compute_cardinality(bitset); + } +} + +#elif defined(CROARING_USENEON) +int bitset_container_compute_cardinality(const bitset_container_t *bitset) { + uint16x8_t n0 = vdupq_n_u16(0); + uint16x8_t n1 = vdupq_n_u16(0); + uint16x8_t n2 = vdupq_n_u16(0); + uint16x8_t n3 = vdupq_n_u16(0); + for (size_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; i += 8) { + uint64x2_t c0 = vld1q_u64(&bitset->words[i + 0]); + n0 = vaddq_u16(n0, vpaddlq_u8(vcntq_u8(vreinterpretq_u8_u64(c0)))); + uint64x2_t c1 = vld1q_u64(&bitset->words[i + 2]); + n1 = vaddq_u16(n1, vpaddlq_u8(vcntq_u8(vreinterpretq_u8_u64(c1)))); + uint64x2_t c2 = vld1q_u64(&bitset->words[i + 4]); + n2 = vaddq_u16(n2, vpaddlq_u8(vcntq_u8(vreinterpretq_u8_u64(c2)))); + uint64x2_t c3 = vld1q_u64(&bitset->words[i + 6]); + n3 = vaddq_u16(n3, vpaddlq_u8(vcntq_u8(vreinterpretq_u8_u64(c3)))); + } + uint64x2_t n = vdupq_n_u64(0); + n = vaddq_u64(n, vpaddlq_u32(vpaddlq_u16(n0))); + n = vaddq_u64(n, vpaddlq_u32(vpaddlq_u16(n1))); + n = vaddq_u64(n, vpaddlq_u32(vpaddlq_u16(n2))); + n = vaddq_u64(n, vpaddlq_u32(vpaddlq_u16(n3))); + return vgetq_lane_u64(n, 0) + vgetq_lane_u64(n, 1); +} + +#else // CROARING_IS_X64 + +/* Get the number of bits set (force computation) */ +int bitset_container_compute_cardinality(const bitset_container_t *bitset) { + const uint64_t *words = bitset->words; + int32_t sum = 0; + for (int i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; i += 4) { + sum += roaring_hamming(words[i]); + sum += roaring_hamming(words[i + 1]); + sum += roaring_hamming(words[i + 2]); + sum += roaring_hamming(words[i + 3]); + } + return sum; +} + +#endif // CROARING_IS_X64 + +#if CROARING_IS_X64 + +#define CROARING_BITSET_CONTAINER_FN_REPEAT 8 +#ifndef WORDS_IN_AVX512_REG +#define WORDS_IN_AVX512_REG sizeof(__m512i) / sizeof(uint64_t) +#endif // WORDS_IN_AVX512_REG + +/* Computes a binary operation (eg union) on bitset1 and bitset2 and write the + result to bitsetout */ +// clang-format off +#define CROARING_AVX512_BITSET_CONTAINER_FN1(before, opname, opsymbol, avx_intrinsic, \ + neon_intrinsic, after) \ + static inline int _avx512_bitset_container_##opname##_nocard( \ + const bitset_container_t *src_1, const bitset_container_t *src_2, \ + bitset_container_t *dst) { \ + const uint8_t * __restrict__ words_1 = (const uint8_t *)src_1->words; \ + const uint8_t * __restrict__ words_2 = (const uint8_t *)src_2->words; \ + /* not using the blocking optimization for some reason*/ \ + uint8_t *out = (uint8_t*)dst->words; \ + const int innerloop = 8; \ + for (size_t i = 0; \ + i < BITSET_CONTAINER_SIZE_IN_WORDS / (WORDS_IN_AVX512_REG); \ + i+=innerloop) { \ + __m512i A1, A2, AO; \ + A1 = _mm512_loadu_si512((const __m512i *)(words_1)); \ + A2 = _mm512_loadu_si512((const __m512i *)(words_2)); \ + AO = avx_intrinsic(A2, A1); \ + _mm512_storeu_si512((__m512i *)out, AO); \ + A1 = _mm512_loadu_si512((const __m512i *)(words_1 + 64)); \ + A2 = _mm512_loadu_si512((const __m512i *)(words_2 + 64)); \ + AO = avx_intrinsic(A2, A1); \ + _mm512_storeu_si512((__m512i *)(out+64), AO); \ + A1 = _mm512_loadu_si512((const __m512i *)(words_1 + 128)); \ + A2 = _mm512_loadu_si512((const __m512i *)(words_2 + 128)); \ + AO = avx_intrinsic(A2, A1); \ + _mm512_storeu_si512((__m512i *)(out+128), AO); \ + A1 = _mm512_loadu_si512((const __m512i *)(words_1 + 192)); \ + A2 = _mm512_loadu_si512((const __m512i *)(words_2 + 192)); \ + AO = avx_intrinsic(A2, A1); \ + _mm512_storeu_si512((__m512i *)(out+192), AO); \ + A1 = _mm512_loadu_si512((const __m512i *)(words_1 + 256)); \ + A2 = _mm512_loadu_si512((const __m512i *)(words_2 + 256)); \ + AO = avx_intrinsic(A2, A1); \ + _mm512_storeu_si512((__m512i *)(out+256), AO); \ + A1 = _mm512_loadu_si512((const __m512i *)(words_1 + 320)); \ + A2 = _mm512_loadu_si512((const __m512i *)(words_2 + 320)); \ + AO = avx_intrinsic(A2, A1); \ + _mm512_storeu_si512((__m512i *)(out+320), AO); \ + A1 = _mm512_loadu_si512((const __m512i *)(words_1 + 384)); \ + A2 = _mm512_loadu_si512((const __m512i *)(words_2 + 384)); \ + AO = avx_intrinsic(A2, A1); \ + _mm512_storeu_si512((__m512i *)(out+384), AO); \ + A1 = _mm512_loadu_si512((const __m512i *)(words_1 + 448)); \ + A2 = _mm512_loadu_si512((const __m512i *)(words_2 + 448)); \ + AO = avx_intrinsic(A2, A1); \ + _mm512_storeu_si512((__m512i *)(out+448), AO); \ + out+=512; \ + words_1 += 512; \ + words_2 += 512; \ + } \ + dst->cardinality = BITSET_UNKNOWN_CARDINALITY; \ + return dst->cardinality; \ + } + +#define CROARING_AVX512_BITSET_CONTAINER_FN2(before, opname, opsymbol, avx_intrinsic, \ + neon_intrinsic, after) \ + /* next, a version that updates cardinality*/ \ + static inline int _avx512_bitset_container_##opname(const bitset_container_t *src_1, \ + const bitset_container_t *src_2, \ + bitset_container_t *dst) { \ + const __m512i * __restrict__ words_1 = (const __m512i *) src_1->words; \ + const __m512i * __restrict__ words_2 = (const __m512i *) src_2->words; \ + __m512i *out = (__m512i *) dst->words; \ + dst->cardinality = (int32_t)avx512_harley_seal_popcount512andstore_##opname(words_2,\ + words_1, out,BITSET_CONTAINER_SIZE_IN_WORDS / (WORDS_IN_AVX512_REG)); \ + return dst->cardinality; \ + } + +#define CROARING_AVX512_BITSET_CONTAINER_FN3(before, opname, opsymbol, avx_intrinsic, \ + neon_intrinsic, after) \ + /* next, a version that just computes the cardinality*/ \ + static inline int _avx512_bitset_container_##opname##_justcard( \ + const bitset_container_t *src_1, const bitset_container_t *src_2) { \ + const __m512i * __restrict__ data1 = (const __m512i *) src_1->words; \ + const __m512i * __restrict__ data2 = (const __m512i *) src_2->words; \ + return (int)avx512_harley_seal_popcount512_##opname(data2, \ + data1, BITSET_CONTAINER_SIZE_IN_WORDS / (WORDS_IN_AVX512_REG)); \ + } + + +// we duplicate the function because other containers use the "or" term, makes API more consistent +#if CROARING_COMPILER_SUPPORTS_AVX512 +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN1(CROARING_TARGET_AVX512, or, |, _mm512_or_si512, vorrq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN1(CROARING_TARGET_AVX512, union, |, _mm512_or_si512, vorrq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 + +// we duplicate the function because other containers use the "intersection" term, makes API more consistent +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN1(CROARING_TARGET_AVX512, and, &, _mm512_and_si512, vandq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN1(CROARING_TARGET_AVX512, intersection, &, _mm512_and_si512, vandq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 + +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN1(CROARING_TARGET_AVX512, xor, ^, _mm512_xor_si512, veorq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN1(CROARING_TARGET_AVX512, andnot, &~, _mm512_andnot_si512, vbicq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 + +// we duplicate the function because other containers use the "or" term, makes API more consistent +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN2(CROARING_TARGET_AVX512, or, |, _mm512_or_si512, vorrq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN2(CROARING_TARGET_AVX512, union, |, _mm512_or_si512, vorrq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 + +// we duplicate the function because other containers use the "intersection" term, makes API more consistent +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN2(CROARING_TARGET_AVX512, and, &, _mm512_and_si512, vandq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN2(CROARING_TARGET_AVX512, intersection, &, _mm512_and_si512, vandq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 + +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN2(CROARING_TARGET_AVX512, xor, ^, _mm512_xor_si512, veorq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN2(CROARING_TARGET_AVX512, andnot, &~, _mm512_andnot_si512, vbicq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 + +// we duplicate the function because other containers use the "or" term, makes API more consistent +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN3(CROARING_TARGET_AVX512, or, |, _mm512_or_si512, vorrq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN3(CROARING_TARGET_AVX512, union, |, _mm512_or_si512, vorrq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 + +// we duplicate the function because other containers use the "intersection" term, makes API more consistent +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN3(CROARING_TARGET_AVX512, and, &, _mm512_and_si512, vandq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN3(CROARING_TARGET_AVX512, intersection, &, _mm512_and_si512, vandq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 + +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN3(CROARING_TARGET_AVX512, xor, ^, _mm512_xor_si512, veorq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 +CROARING_TARGET_AVX512 +CROARING_AVX512_BITSET_CONTAINER_FN3(CROARING_TARGET_AVX512, andnot, &~, _mm512_andnot_si512, vbicq_u64, CROARING_UNTARGET_AVX512) +CROARING_UNTARGET_AVX512 +#endif // CROARING_COMPILER_SUPPORTS_AVX512 + +#ifndef CROARING_WORDS_IN_AVX2_REG +#define CROARING_WORDS_IN_AVX2_REG sizeof(__m256i) / sizeof(uint64_t) +#endif // CROARING_WORDS_IN_AVX2_REG +#define CROARING_LOOP_SIZE \ + BITSET_CONTAINER_SIZE_IN_WORDS / \ + ((CROARING_WORDS_IN_AVX2_REG)*CROARING_BITSET_CONTAINER_FN_REPEAT) + +/* Computes a binary operation (eg union) on bitset1 and bitset2 and write the + result to bitsetout */ +// clang-format off +#define CROARING_AVX_BITSET_CONTAINER_FN1(before, opname, opsymbol, avx_intrinsic, \ + neon_intrinsic, after) \ + static inline int _avx2_bitset_container_##opname##_nocard( \ + const bitset_container_t *src_1, const bitset_container_t *src_2, \ + bitset_container_t *dst) { \ + const uint8_t *__restrict__ words_1 = (const uint8_t *)src_1->words; \ + const uint8_t *__restrict__ words_2 = (const uint8_t *)src_2->words; \ + /* not using the blocking optimization for some reason*/ \ + uint8_t *out = (uint8_t *)dst->words; \ + const int innerloop = 8; \ + for (size_t i = 0; \ + i < BITSET_CONTAINER_SIZE_IN_WORDS / (CROARING_WORDS_IN_AVX2_REG); \ + i += innerloop) { \ + __m256i A1, A2, AO; \ + A1 = _mm256_lddqu_si256((const __m256i *)(words_1)); \ + A2 = _mm256_lddqu_si256((const __m256i *)(words_2)); \ + AO = avx_intrinsic(A2, A1); \ + _mm256_storeu_si256((__m256i *)out, AO); \ + A1 = _mm256_lddqu_si256((const __m256i *)(words_1 + 32)); \ + A2 = _mm256_lddqu_si256((const __m256i *)(words_2 + 32)); \ + AO = avx_intrinsic(A2, A1); \ + _mm256_storeu_si256((__m256i *)(out + 32), AO); \ + A1 = _mm256_lddqu_si256((const __m256i *)(words_1 + 64)); \ + A2 = _mm256_lddqu_si256((const __m256i *)(words_2 + 64)); \ + AO = avx_intrinsic(A2, A1); \ + _mm256_storeu_si256((__m256i *)(out + 64), AO); \ + A1 = _mm256_lddqu_si256((const __m256i *)(words_1 + 96)); \ + A2 = _mm256_lddqu_si256((const __m256i *)(words_2 + 96)); \ + AO = avx_intrinsic(A2, A1); \ + _mm256_storeu_si256((__m256i *)(out + 96), AO); \ + A1 = _mm256_lddqu_si256((const __m256i *)(words_1 + 128)); \ + A2 = _mm256_lddqu_si256((const __m256i *)(words_2 + 128)); \ + AO = avx_intrinsic(A2, A1); \ + _mm256_storeu_si256((__m256i *)(out + 128), AO); \ + A1 = _mm256_lddqu_si256((const __m256i *)(words_1 + 160)); \ + A2 = _mm256_lddqu_si256((const __m256i *)(words_2 + 160)); \ + AO = avx_intrinsic(A2, A1); \ + _mm256_storeu_si256((__m256i *)(out + 160), AO); \ + A1 = _mm256_lddqu_si256((const __m256i *)(words_1 + 192)); \ + A2 = _mm256_lddqu_si256((const __m256i *)(words_2 + 192)); \ + AO = avx_intrinsic(A2, A1); \ + _mm256_storeu_si256((__m256i *)(out + 192), AO); \ + A1 = _mm256_lddqu_si256((const __m256i *)(words_1 + 224)); \ + A2 = _mm256_lddqu_si256((const __m256i *)(words_2 + 224)); \ + AO = avx_intrinsic(A2, A1); \ + _mm256_storeu_si256((__m256i *)(out + 224), AO); \ + out += 256; \ + words_1 += 256; \ + words_2 += 256; \ + } \ + dst->cardinality = BITSET_UNKNOWN_CARDINALITY; \ + return dst->cardinality; \ + } + +#define CROARING_AVX_BITSET_CONTAINER_FN2(before, opname, opsymbol, avx_intrinsic, \ + neon_intrinsic, after) \ + /* next, a version that updates cardinality*/ \ + static inline int _avx2_bitset_container_##opname(const bitset_container_t *src_1, \ + const bitset_container_t *src_2, \ + bitset_container_t *dst) { \ + const __m256i *__restrict__ words_1 = (const __m256i *)src_1->words; \ + const __m256i *__restrict__ words_2 = (const __m256i *)src_2->words; \ + __m256i *out = (__m256i *)dst->words; \ + dst->cardinality = (int32_t)avx2_harley_seal_popcount256andstore_##opname( \ + words_2, words_1, out, \ + BITSET_CONTAINER_SIZE_IN_WORDS / (CROARING_WORDS_IN_AVX2_REG)); \ + return dst->cardinality; \ + } \ + +#define CROARING_AVX_BITSET_CONTAINER_FN3(before, opname, opsymbol, avx_intrinsic, \ + neon_intrinsic, after) \ + /* next, a version that just computes the cardinality*/ \ + static inline int _avx2_bitset_container_##opname##_justcard( \ + const bitset_container_t *src_1, const bitset_container_t *src_2) { \ + const __m256i *__restrict__ data1 = (const __m256i *)src_1->words; \ + const __m256i *__restrict__ data2 = (const __m256i *)src_2->words; \ + return (int)avx2_harley_seal_popcount256_##opname( \ + data2, data1, BITSET_CONTAINER_SIZE_IN_WORDS / (CROARING_WORDS_IN_AVX2_REG)); \ + } + + +// we duplicate the function because other containers use the "or" term, makes API more consistent +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN1(CROARING_TARGET_AVX2, or, |, _mm256_or_si256, vorrq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN1(CROARING_TARGET_AVX2, union, |, _mm256_or_si256, vorrq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 + +// we duplicate the function because other containers use the "intersection" term, makes API more consistent +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN1(CROARING_TARGET_AVX2, and, &, _mm256_and_si256, vandq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN1(CROARING_TARGET_AVX2, intersection, &, _mm256_and_si256, vandq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 + +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN1(CROARING_TARGET_AVX2, xor, ^, _mm256_xor_si256, veorq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN1(CROARING_TARGET_AVX2, andnot, &~, _mm256_andnot_si256, vbicq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 + +// we duplicate the function because other containers use the "or" term, makes API more consistent +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN2(CROARING_TARGET_AVX2, or, |, _mm256_or_si256, vorrq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN2(CROARING_TARGET_AVX2, union, |, _mm256_or_si256, vorrq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 + +// we duplicate the function because other containers use the "intersection" term, makes API more consistent +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN2(CROARING_TARGET_AVX2, and, &, _mm256_and_si256, vandq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN2(CROARING_TARGET_AVX2, intersection, &, _mm256_and_si256, vandq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 + +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN2(CROARING_TARGET_AVX2, xor, ^, _mm256_xor_si256, veorq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN2(CROARING_TARGET_AVX2, andnot, &~, _mm256_andnot_si256, vbicq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 + +// we duplicate the function because other containers use the "or" term, makes API more consistent +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN3(CROARING_TARGET_AVX2, or, |, _mm256_or_si256, vorrq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN3(CROARING_TARGET_AVX2, union, |, _mm256_or_si256, vorrq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 + +// we duplicate the function because other containers use the "intersection" term, makes API more consistent +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN3(CROARING_TARGET_AVX2, and, &, _mm256_and_si256, vandq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN3(CROARING_TARGET_AVX2, intersection, &, _mm256_and_si256, vandq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 + +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN3(CROARING_TARGET_AVX2, xor, ^, _mm256_xor_si256, veorq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 +CROARING_TARGET_AVX2 +CROARING_AVX_BITSET_CONTAINER_FN3(CROARING_TARGET_AVX2, andnot, &~, _mm256_andnot_si256, vbicq_u64, CROARING_UNTARGET_AVX2) +CROARING_UNTARGET_AVX2 + + +#define SCALAR_BITSET_CONTAINER_FN(opname, opsymbol, avx_intrinsic, \ + neon_intrinsic) \ + static inline int _scalar_bitset_container_##opname(const bitset_container_t *src_1, \ + const bitset_container_t *src_2, \ + bitset_container_t *dst) { \ + const uint64_t *__restrict__ words_1 = src_1->words; \ + const uint64_t *__restrict__ words_2 = src_2->words; \ + uint64_t *out = dst->words; \ + int32_t sum = 0; \ + for (size_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; i += 2) { \ + const uint64_t word_1 = (words_1[i])opsymbol(words_2[i]), \ + word_2 = (words_1[i + 1]) opsymbol(words_2[i + 1]); \ + out[i] = word_1; \ + out[i + 1] = word_2; \ + sum += roaring_hamming(word_1); \ + sum += roaring_hamming(word_2); \ + } \ + dst->cardinality = sum; \ + return dst->cardinality; \ + } \ + static inline int _scalar_bitset_container_##opname##_nocard( \ + const bitset_container_t *src_1, const bitset_container_t *src_2, \ + bitset_container_t *dst) { \ + const uint64_t *__restrict__ words_1 = src_1->words; \ + const uint64_t *__restrict__ words_2 = src_2->words; \ + uint64_t *out = dst->words; \ + for (size_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; i++) { \ + out[i] = (words_1[i])opsymbol(words_2[i]); \ + } \ + dst->cardinality = BITSET_UNKNOWN_CARDINALITY; \ + return dst->cardinality; \ + } \ + static inline int _scalar_bitset_container_##opname##_justcard( \ + const bitset_container_t *src_1, const bitset_container_t *src_2) { \ + const uint64_t *__restrict__ words_1 = src_1->words; \ + const uint64_t *__restrict__ words_2 = src_2->words; \ + int32_t sum = 0; \ + for (size_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; i += 2) { \ + const uint64_t word_1 = (words_1[i])opsymbol(words_2[i]), \ + word_2 = (words_1[i + 1]) opsymbol(words_2[i + 1]); \ + sum += roaring_hamming(word_1); \ + sum += roaring_hamming(word_2); \ + } \ + return sum; \ + } + +// we duplicate the function because other containers use the "or" term, makes API more consistent +SCALAR_BITSET_CONTAINER_FN(or, |, _mm256_or_si256, vorrq_u64) +SCALAR_BITSET_CONTAINER_FN(union, |, _mm256_or_si256, vorrq_u64) + +// we duplicate the function because other containers use the "intersection" term, makes API more consistent +SCALAR_BITSET_CONTAINER_FN(and, &, _mm256_and_si256, vandq_u64) +SCALAR_BITSET_CONTAINER_FN(intersection, &, _mm256_and_si256, vandq_u64) + +SCALAR_BITSET_CONTAINER_FN(xor, ^, _mm256_xor_si256, veorq_u64) +SCALAR_BITSET_CONTAINER_FN(andnot, &~, _mm256_andnot_si256, vbicq_u64) + +#if CROARING_COMPILER_SUPPORTS_AVX512 +#define CROARING_BITSET_CONTAINER_FN(opname, opsymbol, avx_intrinsic, neon_intrinsic) \ + int bitset_container_##opname(const bitset_container_t *src_1, \ + const bitset_container_t *src_2, \ + bitset_container_t *dst) { \ + int support = croaring_hardware_support(); \ + if ( support & ROARING_SUPPORTS_AVX512 ) { \ + return _avx512_bitset_container_##opname(src_1, src_2, dst); \ + } \ + else if ( support & ROARING_SUPPORTS_AVX2 ) { \ + return _avx2_bitset_container_##opname(src_1, src_2, dst); \ + } else { \ + return _scalar_bitset_container_##opname(src_1, src_2, dst); \ + } \ + } \ + int bitset_container_##opname##_nocard(const bitset_container_t *src_1, \ + const bitset_container_t *src_2, \ + bitset_container_t *dst) { \ + int support = croaring_hardware_support(); \ + if ( support & ROARING_SUPPORTS_AVX512 ) { \ + return _avx512_bitset_container_##opname##_nocard(src_1, src_2, dst); \ + } \ + else if ( support & ROARING_SUPPORTS_AVX2 ) { \ + return _avx2_bitset_container_##opname##_nocard(src_1, src_2, dst); \ + } else { \ + return _scalar_bitset_container_##opname##_nocard(src_1, src_2, dst); \ + } \ + } \ + int bitset_container_##opname##_justcard(const bitset_container_t *src_1, \ + const bitset_container_t *src_2) { \ + int support = croaring_hardware_support(); \ + if ( support & ROARING_SUPPORTS_AVX512 ) { \ + return _avx512_bitset_container_##opname##_justcard(src_1, src_2); \ + } \ + else if ( support & ROARING_SUPPORTS_AVX2 ) { \ + return _avx2_bitset_container_##opname##_justcard(src_1, src_2); \ + } else { \ + return _scalar_bitset_container_##opname##_justcard(src_1, src_2); \ + } \ + } + +#else // CROARING_COMPILER_SUPPORTS_AVX512 + + +#define CROARING_BITSET_CONTAINER_FN(opname, opsymbol, avx_intrinsic, neon_intrinsic) \ + int bitset_container_##opname(const bitset_container_t *src_1, \ + const bitset_container_t *src_2, \ + bitset_container_t *dst) { \ + if ( croaring_hardware_support() & ROARING_SUPPORTS_AVX2 ) { \ + return _avx2_bitset_container_##opname(src_1, src_2, dst); \ + } else { \ + return _scalar_bitset_container_##opname(src_1, src_2, dst); \ + } \ + } \ + int bitset_container_##opname##_nocard(const bitset_container_t *src_1, \ + const bitset_container_t *src_2, \ + bitset_container_t *dst) { \ + if ( croaring_hardware_support() & ROARING_SUPPORTS_AVX2 ) { \ + return _avx2_bitset_container_##opname##_nocard(src_1, src_2, dst); \ + } else { \ + return _scalar_bitset_container_##opname##_nocard(src_1, src_2, dst); \ + } \ + } \ + int bitset_container_##opname##_justcard(const bitset_container_t *src_1, \ + const bitset_container_t *src_2) { \ + if ( croaring_hardware_support() & ROARING_SUPPORTS_AVX2 ) { \ + return _avx2_bitset_container_##opname##_justcard(src_1, src_2); \ + } else { \ + return _scalar_bitset_container_##opname##_justcard(src_1, src_2); \ + } \ + } + +#endif // CROARING_COMPILER_SUPPORTS_AVX512 + +#elif defined(CROARING_USENEON) + +#define CROARING_BITSET_CONTAINER_FN(opname, opsymbol, avx_intrinsic, neon_intrinsic) \ +int bitset_container_##opname(const bitset_container_t *src_1, \ + const bitset_container_t *src_2, \ + bitset_container_t *dst) { \ + const uint64_t * __restrict__ words_1 = src_1->words; \ + const uint64_t * __restrict__ words_2 = src_2->words; \ + uint64_t *out = dst->words; \ + uint16x8_t n0 = vdupq_n_u16(0); \ + uint16x8_t n1 = vdupq_n_u16(0); \ + uint16x8_t n2 = vdupq_n_u16(0); \ + uint16x8_t n3 = vdupq_n_u16(0); \ + for (size_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; i += 8) { \ + uint64x2_t c0 = neon_intrinsic(vld1q_u64(&words_1[i + 0]), \ + vld1q_u64(&words_2[i + 0])); \ + n0 = vaddq_u16(n0, vpaddlq_u8(vcntq_u8(vreinterpretq_u8_u64(c0)))); \ + vst1q_u64(&out[i + 0], c0); \ + uint64x2_t c1 = neon_intrinsic(vld1q_u64(&words_1[i + 2]), \ + vld1q_u64(&words_2[i + 2])); \ + n1 = vaddq_u16(n1, vpaddlq_u8(vcntq_u8(vreinterpretq_u8_u64(c1)))); \ + vst1q_u64(&out[i + 2], c1); \ + uint64x2_t c2 = neon_intrinsic(vld1q_u64(&words_1[i + 4]), \ + vld1q_u64(&words_2[i + 4])); \ + n2 = vaddq_u16(n2, vpaddlq_u8(vcntq_u8(vreinterpretq_u8_u64(c2)))); \ + vst1q_u64(&out[i + 4], c2); \ + uint64x2_t c3 = neon_intrinsic(vld1q_u64(&words_1[i + 6]), \ + vld1q_u64(&words_2[i + 6])); \ + n3 = vaddq_u16(n3, vpaddlq_u8(vcntq_u8(vreinterpretq_u8_u64(c3)))); \ + vst1q_u64(&out[i + 6], c3); \ + } \ + uint64x2_t n = vdupq_n_u64(0); \ + n = vaddq_u64(n, vpaddlq_u32(vpaddlq_u16(n0))); \ + n = vaddq_u64(n, vpaddlq_u32(vpaddlq_u16(n1))); \ + n = vaddq_u64(n, vpaddlq_u32(vpaddlq_u16(n2))); \ + n = vaddq_u64(n, vpaddlq_u32(vpaddlq_u16(n3))); \ + dst->cardinality = vgetq_lane_u64(n, 0) + vgetq_lane_u64(n, 1); \ + return dst->cardinality; \ +} \ +int bitset_container_##opname##_nocard(const bitset_container_t *src_1, \ + const bitset_container_t *src_2, \ + bitset_container_t *dst) { \ + const uint64_t * __restrict__ words_1 = src_1->words; \ + const uint64_t * __restrict__ words_2 = src_2->words; \ + uint64_t *out = dst->words; \ + for (size_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; i += 8) { \ + vst1q_u64(&out[i + 0], neon_intrinsic(vld1q_u64(&words_1[i + 0]), \ + vld1q_u64(&words_2[i + 0]))); \ + vst1q_u64(&out[i + 2], neon_intrinsic(vld1q_u64(&words_1[i + 2]), \ + vld1q_u64(&words_2[i + 2]))); \ + vst1q_u64(&out[i + 4], neon_intrinsic(vld1q_u64(&words_1[i + 4]), \ + vld1q_u64(&words_2[i + 4]))); \ + vst1q_u64(&out[i + 6], neon_intrinsic(vld1q_u64(&words_1[i + 6]), \ + vld1q_u64(&words_2[i + 6]))); \ + } \ + dst->cardinality = BITSET_UNKNOWN_CARDINALITY; \ + return dst->cardinality; \ +} \ +int bitset_container_##opname##_justcard(const bitset_container_t *src_1, \ + const bitset_container_t *src_2) { \ + const uint64_t * __restrict__ words_1 = src_1->words; \ + const uint64_t * __restrict__ words_2 = src_2->words; \ + uint16x8_t n0 = vdupq_n_u16(0); \ + uint16x8_t n1 = vdupq_n_u16(0); \ + uint16x8_t n2 = vdupq_n_u16(0); \ + uint16x8_t n3 = vdupq_n_u16(0); \ + for (size_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; i += 8) { \ + uint64x2_t c0 = neon_intrinsic(vld1q_u64(&words_1[i + 0]), \ + vld1q_u64(&words_2[i + 0])); \ + n0 = vaddq_u16(n0, vpaddlq_u8(vcntq_u8(vreinterpretq_u8_u64(c0)))); \ + uint64x2_t c1 = neon_intrinsic(vld1q_u64(&words_1[i + 2]), \ + vld1q_u64(&words_2[i + 2])); \ + n1 = vaddq_u16(n1, vpaddlq_u8(vcntq_u8(vreinterpretq_u8_u64(c1)))); \ + uint64x2_t c2 = neon_intrinsic(vld1q_u64(&words_1[i + 4]), \ + vld1q_u64(&words_2[i + 4])); \ + n2 = vaddq_u16(n2, vpaddlq_u8(vcntq_u8(vreinterpretq_u8_u64(c2)))); \ + uint64x2_t c3 = neon_intrinsic(vld1q_u64(&words_1[i + 6]), \ + vld1q_u64(&words_2[i + 6])); \ + n3 = vaddq_u16(n3, vpaddlq_u8(vcntq_u8(vreinterpretq_u8_u64(c3)))); \ + } \ + uint64x2_t n = vdupq_n_u64(0); \ + n = vaddq_u64(n, vpaddlq_u32(vpaddlq_u16(n0))); \ + n = vaddq_u64(n, vpaddlq_u32(vpaddlq_u16(n1))); \ + n = vaddq_u64(n, vpaddlq_u32(vpaddlq_u16(n2))); \ + n = vaddq_u64(n, vpaddlq_u32(vpaddlq_u16(n3))); \ + return vgetq_lane_u64(n, 0) + vgetq_lane_u64(n, 1); \ +} + +#else + +#define CROARING_BITSET_CONTAINER_FN(opname, opsymbol, avx_intrinsic, neon_intrinsic) \ +int bitset_container_##opname(const bitset_container_t *src_1, \ + const bitset_container_t *src_2, \ + bitset_container_t *dst) { \ + const uint64_t * __restrict__ words_1 = src_1->words; \ + const uint64_t * __restrict__ words_2 = src_2->words; \ + uint64_t *out = dst->words; \ + int32_t sum = 0; \ + for (size_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; i += 2) { \ + const uint64_t word_1 = (words_1[i])opsymbol(words_2[i]), \ + word_2 = (words_1[i + 1])opsymbol(words_2[i + 1]); \ + out[i] = word_1; \ + out[i + 1] = word_2; \ + sum += roaring_hamming(word_1); \ + sum += roaring_hamming(word_2); \ + } \ + dst->cardinality = sum; \ + return dst->cardinality; \ +} \ +int bitset_container_##opname##_nocard(const bitset_container_t *src_1, \ + const bitset_container_t *src_2, \ + bitset_container_t *dst) { \ + const uint64_t * __restrict__ words_1 = src_1->words; \ + const uint64_t * __restrict__ words_2 = src_2->words; \ + uint64_t *out = dst->words; \ + for (size_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; i++) { \ + out[i] = (words_1[i])opsymbol(words_2[i]); \ + } \ + dst->cardinality = BITSET_UNKNOWN_CARDINALITY; \ + return dst->cardinality; \ +} \ +int bitset_container_##opname##_justcard(const bitset_container_t *src_1, \ + const bitset_container_t *src_2) { \ + printf("A1\n"); const uint64_t * __restrict__ words_1 = src_1->words; \ + const uint64_t * __restrict__ words_2 = src_2->words; \ + int32_t sum = 0; \ + for (size_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; i += 2) { \ + const uint64_t word_1 = (words_1[i])opsymbol(words_2[i]), \ + word_2 = (words_1[i + 1])opsymbol(words_2[i + 1]); \ + sum += roaring_hamming(word_1); \ + sum += roaring_hamming(word_2); \ + } \ + return sum; \ +} + +#endif // CROARING_IS_X64 + +// we duplicate the function because other containers use the "or" term, makes API more consistent +CROARING_BITSET_CONTAINER_FN(or, |, _mm256_or_si256, vorrq_u64) +CROARING_BITSET_CONTAINER_FN(union, |, _mm256_or_si256, vorrq_u64) + +// we duplicate the function because other containers use the "intersection" term, makes API more consistent +CROARING_BITSET_CONTAINER_FN(and, &, _mm256_and_si256, vandq_u64) +CROARING_BITSET_CONTAINER_FN(intersection, &, _mm256_and_si256, vandq_u64) + +CROARING_BITSET_CONTAINER_FN(xor, ^, _mm256_xor_si256, veorq_u64) +CROARING_BITSET_CONTAINER_FN(andnot, &~, _mm256_andnot_si256, vbicq_u64) +// clang-format On + + +ALLOW_UNALIGNED +int bitset_container_to_uint32_array( + uint32_t *out, + const bitset_container_t *bc, + uint32_t base +){ +#if CROARING_IS_X64 + int support = croaring_hardware_support(); +#if CROARING_COMPILER_SUPPORTS_AVX512 + if(( support & ROARING_SUPPORTS_AVX512 ) && (bc->cardinality >= 8192)) // heuristic + return (int) bitset_extract_setbits_avx512(bc->words, + BITSET_CONTAINER_SIZE_IN_WORDS, out, bc->cardinality, base); + else +#endif + if(( support & ROARING_SUPPORTS_AVX2 ) && (bc->cardinality >= 8192)) // heuristic + return (int) bitset_extract_setbits_avx2(bc->words, + BITSET_CONTAINER_SIZE_IN_WORDS, out, bc->cardinality, base); + else + return (int) bitset_extract_setbits(bc->words, + BITSET_CONTAINER_SIZE_IN_WORDS, out, base); +#else + return (int) bitset_extract_setbits(bc->words, + BITSET_CONTAINER_SIZE_IN_WORDS, out, base); +#endif +} + +/* + * Print this container using printf (useful for debugging). + */ +void bitset_container_printf(const bitset_container_t * v) { + printf("{"); + uint32_t base = 0; + bool iamfirst = true;// TODO: rework so that this is not necessary yet still readable + for (int i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; ++i) { + uint64_t w = v->words[i]; + while (w != 0) { + uint64_t t = w & (~w + 1); + int r = roaring_trailing_zeroes(w); + if(iamfirst) {// predicted to be false + printf("%u",base + r); + iamfirst = false; + } else { + printf(",%u",base + r); + } + w ^= t; + } + base += 64; + } + printf("}"); +} + + +/* + * Print this container using printf as a comma-separated list of 32-bit integers starting at base. + */ +void bitset_container_printf_as_uint32_array(const bitset_container_t * v, uint32_t base) { + bool iamfirst = true;// TODO: rework so that this is not necessary yet still readable + for (int i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; ++i) { + uint64_t w = v->words[i]; + while (w != 0) { + uint64_t t = w & (~w + 1); + int r = roaring_trailing_zeroes(w); + if(iamfirst) {// predicted to be false + printf("%u", r + base); + iamfirst = false; + } else { + printf(",%u",r + base); + } + w ^= t; + } + base += 64; + } +} + +/* + * Validate the container. Returns true if valid. + */ +bool bitset_container_validate(const bitset_container_t *v, const char **reason) { + if (v->words == NULL) { + *reason = "words is NULL"; + return false; + } + if (v->cardinality != bitset_container_compute_cardinality(v)) { + *reason = "cardinality is incorrect"; + return false; + } + if (v->cardinality <= DEFAULT_MAX_SIZE) { + *reason = "cardinality is too small for a bitmap container"; + return false; + } + // Attempt to forcibly load the first and last words, hopefully causing + // a segfault or an address sanitizer error if words is not allocated. + volatile uint64_t *words = v->words; + (void) words[0]; + (void) words[BITSET_CONTAINER_SIZE_IN_WORDS - 1]; + return true; +} + + +// TODO: use the fast lower bound, also +int bitset_container_number_of_runs(bitset_container_t *bc) { + int num_runs = 0; + uint64_t next_word = bc->words[0]; + + for (int i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS-1; ++i) { + uint64_t word = next_word; + next_word = bc->words[i+1]; + num_runs += roaring_hamming((~word) & (word << 1)) + ( (word >> 63) & ~next_word); + } + + uint64_t word = next_word; + num_runs += roaring_hamming((~word) & (word << 1)); + if((word & 0x8000000000000000ULL) != 0) + num_runs++; + return num_runs; +} + + +int32_t bitset_container_write(const bitset_container_t *container, + char *buf) { + memcpy(buf, container->words, BITSET_CONTAINER_SIZE_IN_WORDS * sizeof(uint64_t)); + return bitset_container_size_in_bytes(container); +} + + +int32_t bitset_container_read(int32_t cardinality, bitset_container_t *container, + const char *buf) { + container->cardinality = cardinality; + memcpy(container->words, buf, BITSET_CONTAINER_SIZE_IN_WORDS * sizeof(uint64_t)); + return bitset_container_size_in_bytes(container); +} + +bool bitset_container_iterate(const bitset_container_t *cont, uint32_t base, roaring_iterator iterator, void *ptr) { + for (int32_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; ++i ) { + uint64_t w = cont->words[i]; + while (w != 0) { + uint64_t t = w & (~w + 1); + int r = roaring_trailing_zeroes(w); + if(!iterator(r + base, ptr)) return false; + w ^= t; + } + base += 64; + } + return true; +} + +bool bitset_container_iterate64(const bitset_container_t *cont, uint32_t base, roaring_iterator64 iterator, uint64_t high_bits, void *ptr) { + for (int32_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; ++i ) { + uint64_t w = cont->words[i]; + while (w != 0) { + uint64_t t = w & (~w + 1); + int r = roaring_trailing_zeroes(w); + if(!iterator(high_bits | (uint64_t)(r + base), ptr)) return false; + w ^= t; + } + base += 64; + } + return true; +} + +#if CROARING_IS_X64 +#if CROARING_COMPILER_SUPPORTS_AVX512 +CROARING_TARGET_AVX512 +ALLOW_UNALIGNED +static inline bool _avx512_bitset_container_equals(const bitset_container_t *container1, const bitset_container_t *container2) { + const __m512i *ptr1 = (const __m512i*)container1->words; + const __m512i *ptr2 = (const __m512i*)container2->words; + for (size_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS*sizeof(uint64_t)/64; i++) { + __m512i r1 = _mm512_loadu_si512(ptr1+i); + __m512i r2 = _mm512_loadu_si512(ptr2+i); + __mmask64 mask = _mm512_cmpeq_epi8_mask(r1, r2); + if ((uint64_t)mask != UINT64_MAX) { + return false; + } + } + return true; +} +CROARING_UNTARGET_AVX512 +#endif // CROARING_COMPILER_SUPPORTS_AVX512 +CROARING_TARGET_AVX2 +ALLOW_UNALIGNED +static inline bool _avx2_bitset_container_equals(const bitset_container_t *container1, const bitset_container_t *container2) { + const __m256i *ptr1 = (const __m256i*)container1->words; + const __m256i *ptr2 = (const __m256i*)container2->words; + for (size_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS*sizeof(uint64_t)/32; i++) { + __m256i r1 = _mm256_loadu_si256(ptr1+i); + __m256i r2 = _mm256_loadu_si256(ptr2+i); + int mask = _mm256_movemask_epi8(_mm256_cmpeq_epi8(r1, r2)); + if ((uint32_t)mask != UINT32_MAX) { + return false; + } + } + return true; +} +CROARING_UNTARGET_AVX2 +#endif // CROARING_IS_X64 + +ALLOW_UNALIGNED +bool bitset_container_equals(const bitset_container_t *container1, const bitset_container_t *container2) { + if((container1->cardinality != BITSET_UNKNOWN_CARDINALITY) && (container2->cardinality != BITSET_UNKNOWN_CARDINALITY)) { + if(container1->cardinality != container2->cardinality) { + return false; + } + if (container1->cardinality == INT32_C(0x10000)) { + return true; + } + } +#if CROARING_IS_X64 + int support = croaring_hardware_support(); +#if CROARING_COMPILER_SUPPORTS_AVX512 + if( support & ROARING_SUPPORTS_AVX512 ) { + return _avx512_bitset_container_equals(container1, container2); + } + else +#endif + if( support & ROARING_SUPPORTS_AVX2 ) { + return _avx2_bitset_container_equals(container1, container2); + } +#endif + return memcmp(container1->words, + container2->words, + BITSET_CONTAINER_SIZE_IN_WORDS*sizeof(uint64_t)) == 0; +} + +bool bitset_container_is_subset(const bitset_container_t *container1, + const bitset_container_t *container2) { + if((container1->cardinality != BITSET_UNKNOWN_CARDINALITY) && (container2->cardinality != BITSET_UNKNOWN_CARDINALITY)) { + if(container1->cardinality > container2->cardinality) { + return false; + } + } + for(int32_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; ++i ) { + if((container1->words[i] & container2->words[i]) != container1->words[i]) { + return false; + } + } + return true; +} + +bool bitset_container_select(const bitset_container_t *container, uint32_t *start_rank, uint32_t rank, uint32_t *element) { + int card = bitset_container_cardinality(container); + if(rank >= *start_rank + card) { + *start_rank += card; + return false; + } + const uint64_t *words = container->words; + int32_t size; + for (int i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; i += 1) { + size = roaring_hamming(words[i]); + if(rank <= *start_rank + size) { + uint64_t w = container->words[i]; + uint16_t base = i*64; + while (w != 0) { + uint64_t t = w & (~w + 1); + int r = roaring_trailing_zeroes(w); + if(*start_rank == rank) { + *element = r+base; + return true; + } + w ^= t; + *start_rank += 1; + } + } + else + *start_rank += size; + } + assert(false); + roaring_unreachable; +} + + +/* Returns the smallest value (assumes not empty) */ +uint16_t bitset_container_minimum(const bitset_container_t *container) { + for (int32_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; ++i ) { + uint64_t w = container->words[i]; + if (w != 0) { + int r = roaring_trailing_zeroes(w); + return r + i * 64; + } + } + return UINT16_MAX; +} + +/* Returns the largest value (assumes not empty) */ +uint16_t bitset_container_maximum(const bitset_container_t *container) { + for (int32_t i = BITSET_CONTAINER_SIZE_IN_WORDS - 1; i > 0; --i ) { + uint64_t w = container->words[i]; + if (w != 0) { + int r = roaring_leading_zeroes(w); + return i * 64 + 63 - r; + } + } + return 0; +} + +/* Returns the number of values equal or smaller than x */ +int bitset_container_rank(const bitset_container_t *container, uint16_t x) { + // credit: aqrit + int sum = 0; + int i = 0; + for (int end = x / 64; i < end; i++){ + sum += roaring_hamming(container->words[i]); + } + uint64_t lastword = container->words[i]; + uint64_t lastpos = UINT64_C(1) << (x % 64); + uint64_t mask = lastpos + lastpos - 1; // smear right + sum += roaring_hamming(lastword & mask); + return sum; +} + +uint32_t bitset_container_rank_many(const bitset_container_t *container, uint64_t start_rank, const uint32_t* begin, const uint32_t* end, uint64_t* ans){ + const uint16_t high = (uint16_t)((*begin) >> 16); + int i = 0; + int sum = 0; + const uint32_t* iter = begin; + for(; iter != end; iter++) { + uint32_t x = *iter; + uint16_t xhigh = (uint16_t)(x >> 16); + if(xhigh != high) return iter - begin; // stop at next container + + uint16_t xlow = (uint16_t)x; + for(int count = xlow / 64; i < count; i++){ + sum += roaring_hamming(container->words[i]); + } + uint64_t lastword = container->words[i]; + uint64_t lastpos = UINT64_C(1) << (xlow % 64); + uint64_t mask = lastpos + lastpos - 1; // smear right + *(ans++) = start_rank + sum + roaring_hamming(lastword & mask); + } + return iter - begin; +} + + +/* Returns the index of x , if not exsist return -1 */ +int bitset_container_get_index(const bitset_container_t *container, uint16_t x) { + if (bitset_container_get(container, x)) { + // credit: aqrit + int sum = 0; + int i = 0; + for (int end = x / 64; i < end; i++){ + sum += roaring_hamming(container->words[i]); + } + uint64_t lastword = container->words[i]; + uint64_t lastpos = UINT64_C(1) << (x % 64); + uint64_t mask = lastpos + lastpos - 1; // smear right + sum += roaring_hamming(lastword & mask); + return sum - 1; + } else { + return -1; + } +} + +/* Returns the index of the first value equal or larger than x, or -1 */ +int bitset_container_index_equalorlarger(const bitset_container_t *container, uint16_t x) { + uint32_t x32 = x; + uint32_t k = x32 / 64; + uint64_t word = container->words[k]; + const int diff = x32 - k * 64; // in [0,64) + word = (word >> diff) << diff; // a mask is faster, but we don't care + while(word == 0) { + k++; + if(k == BITSET_CONTAINER_SIZE_IN_WORDS) return -1; + word = container->words[k]; + } + return k * 64 + roaring_trailing_zeroes(word); +} + +#ifdef __cplusplus +} } } // extern "C" { namespace roaring { namespace internal { +#endif +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif \ No newline at end of file diff --git a/contrib/libs/croaring/src/containers/containers.c b/contrib/libs/croaring/src/containers/containers.c new file mode 100644 index 000000000000..eb5a346be59c --- /dev/null +++ b/contrib/libs/croaring/src/containers/containers.c @@ -0,0 +1,715 @@ + +#include +#include + +#ifdef __cplusplus +extern "C" { +// In Windows MSVC C++ compiler, (type){init} does not compile, +// it causes C4576: a parenthesized type followed by an initializer list is a +// non-standard explicit type conversion syntax The correct syntax is type{init} +#define ROARING_INIT_ROARING_CONTAINER_ITERATOR_T roaring_container_iterator_t +namespace roaring { +namespace internal { +#else +#define ROARING_INIT_ROARING_CONTAINER_ITERATOR_T (roaring_container_iterator_t) +#endif + +static inline uint32_t minimum_uint32(uint32_t a, uint32_t b) { + return (a < b) ? a : b; +} + +extern inline const container_t *container_unwrap_shared( + const container_t *candidate_shared_container, uint8_t *type); + +extern inline container_t *container_mutable_unwrap_shared( + container_t *candidate_shared_container, uint8_t *type); + +extern inline int container_get_cardinality(const container_t *c, + uint8_t typecode); + +extern inline container_t *container_iand(container_t *c1, uint8_t type1, + const container_t *c2, uint8_t type2, + uint8_t *result_type); + +extern inline container_t *container_ior(container_t *c1, uint8_t type1, + const container_t *c2, uint8_t type2, + uint8_t *result_type); + +extern inline container_t *container_ixor(container_t *c1, uint8_t type1, + const container_t *c2, uint8_t type2, + uint8_t *result_type); + +extern inline container_t *container_iandnot(container_t *c1, uint8_t type1, + const container_t *c2, + uint8_t type2, + uint8_t *result_type); + +void container_free(container_t *c, uint8_t type) { + switch (type) { + case BITSET_CONTAINER_TYPE: + bitset_container_free(CAST_bitset(c)); + break; + case ARRAY_CONTAINER_TYPE: + array_container_free(CAST_array(c)); + break; + case RUN_CONTAINER_TYPE: + run_container_free(CAST_run(c)); + break; + case SHARED_CONTAINER_TYPE: + shared_container_free(CAST_shared(c)); + break; + default: + assert(false); + roaring_unreachable; + } +} + +void container_printf(const container_t *c, uint8_t type) { + c = container_unwrap_shared(c, &type); + switch (type) { + case BITSET_CONTAINER_TYPE: + bitset_container_printf(const_CAST_bitset(c)); + return; + case ARRAY_CONTAINER_TYPE: + array_container_printf(const_CAST_array(c)); + return; + case RUN_CONTAINER_TYPE: + run_container_printf(const_CAST_run(c)); + return; + default: + roaring_unreachable; + } +} + +void container_printf_as_uint32_array(const container_t *c, uint8_t typecode, + uint32_t base) { + c = container_unwrap_shared(c, &typecode); + switch (typecode) { + case BITSET_CONTAINER_TYPE: + bitset_container_printf_as_uint32_array(const_CAST_bitset(c), base); + return; + case ARRAY_CONTAINER_TYPE: + array_container_printf_as_uint32_array(const_CAST_array(c), base); + return; + case RUN_CONTAINER_TYPE: + run_container_printf_as_uint32_array(const_CAST_run(c), base); + return; + default: + roaring_unreachable; + } +} + +bool container_internal_validate(const container_t *container, uint8_t typecode, + const char **reason) { + if (container == NULL) { + *reason = "container is NULL"; + return false; + } + // Not using container_unwrap_shared because it asserts if shared containers + // are nested + if (typecode == SHARED_CONTAINER_TYPE) { + const shared_container_t *shared_container = + const_CAST_shared(container); + if (croaring_refcount_get(&shared_container->counter) == 0) { + *reason = "shared container has zero refcount"; + return false; + } + if (shared_container->typecode == SHARED_CONTAINER_TYPE) { + *reason = "shared container is nested"; + return false; + } + if (shared_container->container == NULL) { + *reason = "shared container has NULL container"; + return false; + } + container = shared_container->container; + typecode = shared_container->typecode; + } + switch (typecode) { + case BITSET_CONTAINER_TYPE: + return bitset_container_validate(const_CAST_bitset(container), + reason); + case ARRAY_CONTAINER_TYPE: + return array_container_validate(const_CAST_array(container), + reason); + case RUN_CONTAINER_TYPE: + return run_container_validate(const_CAST_run(container), reason); + default: + *reason = "invalid typecode"; + return false; + } +} + +extern inline bool container_nonzero_cardinality(const container_t *c, + uint8_t typecode); + +extern inline int container_to_uint32_array(uint32_t *output, + const container_t *c, + uint8_t typecode, uint32_t base); + +extern inline container_t *container_add(container_t *c, uint16_t val, + uint8_t typecode, // !!! 2nd arg? + uint8_t *new_typecode); + +extern inline bool container_contains(const container_t *c, uint16_t val, + uint8_t typecode); // !!! 2nd arg? + +extern inline container_t *container_and(const container_t *c1, uint8_t type1, + const container_t *c2, uint8_t type2, + uint8_t *result_type); + +extern inline container_t *container_or(const container_t *c1, uint8_t type1, + const container_t *c2, uint8_t type2, + uint8_t *result_type); + +extern inline container_t *container_xor(const container_t *c1, uint8_t type1, + const container_t *c2, uint8_t type2, + uint8_t *result_type); + +container_t *get_copy_of_container(container_t *c, uint8_t *typecode, + bool copy_on_write) { + if (copy_on_write) { + shared_container_t *shared_container; + if (*typecode == SHARED_CONTAINER_TYPE) { + shared_container = CAST_shared(c); + croaring_refcount_inc(&shared_container->counter); + return shared_container; + } + assert(*typecode != SHARED_CONTAINER_TYPE); + + if ((shared_container = (shared_container_t *)roaring_malloc( + sizeof(shared_container_t))) == NULL) { + return NULL; + } + + shared_container->container = c; + shared_container->typecode = *typecode; + // At this point, we are creating new shared container + // so there should be no other references, and setting + // the counter to 2 - even non-atomically - is safe as + // long as the value is set before the return statement. + shared_container->counter = 2; + *typecode = SHARED_CONTAINER_TYPE; + + return shared_container; + } // copy_on_write + // otherwise, no copy on write... + const container_t *actual_container = container_unwrap_shared(c, typecode); + assert(*typecode != SHARED_CONTAINER_TYPE); + return container_clone(actual_container, *typecode); +} + +/** + * Copies a container, requires a typecode. This allocates new memory, caller + * is responsible for deallocation. + */ +container_t *container_clone(const container_t *c, uint8_t typecode) { + // We do not want to allow cloning of shared containers. + // c = container_unwrap_shared(c, &typecode); + switch (typecode) { + case BITSET_CONTAINER_TYPE: + return bitset_container_clone(const_CAST_bitset(c)); + case ARRAY_CONTAINER_TYPE: + return array_container_clone(const_CAST_array(c)); + case RUN_CONTAINER_TYPE: + return run_container_clone(const_CAST_run(c)); + case SHARED_CONTAINER_TYPE: + // Shared containers are not cloneable. Are you mixing COW and + // non-COW bitmaps? + return NULL; + default: + assert(false); + roaring_unreachable; + return NULL; + } +} + +container_t *shared_container_extract_copy(shared_container_t *sc, + uint8_t *typecode) { + assert(sc->typecode != SHARED_CONTAINER_TYPE); + *typecode = sc->typecode; + container_t *answer; + if (croaring_refcount_dec(&sc->counter)) { + answer = sc->container; + sc->container = NULL; // paranoid + roaring_free(sc); + } else { + answer = container_clone(sc->container, *typecode); + } + assert(*typecode != SHARED_CONTAINER_TYPE); + return answer; +} + +void shared_container_free(shared_container_t *container) { + if (croaring_refcount_dec(&container->counter)) { + assert(container->typecode != SHARED_CONTAINER_TYPE); + container_free(container->container, container->typecode); + container->container = NULL; // paranoid + roaring_free(container); + } +} + +extern inline container_t *container_not(const container_t *c1, uint8_t type1, + uint8_t *result_type); + +extern inline container_t *container_not_range(const container_t *c1, + uint8_t type1, + uint32_t range_start, + uint32_t range_end, + uint8_t *result_type); + +extern inline container_t *container_inot(container_t *c1, uint8_t type1, + uint8_t *result_type); + +extern inline container_t *container_inot_range(container_t *c1, uint8_t type1, + uint32_t range_start, + uint32_t range_end, + uint8_t *result_type); + +extern inline container_t *container_range_of_ones(uint32_t range_start, + uint32_t range_end, + uint8_t *result_type); + +// where are the correponding things for union and intersection?? +extern inline container_t *container_lazy_xor(const container_t *c1, + uint8_t type1, + const container_t *c2, + uint8_t type2, + uint8_t *result_type); + +extern inline container_t *container_lazy_ixor(container_t *c1, uint8_t type1, + const container_t *c2, + uint8_t type2, + uint8_t *result_type); + +extern inline container_t *container_andnot(const container_t *c1, + uint8_t type1, + const container_t *c2, + uint8_t type2, + uint8_t *result_type); + +roaring_container_iterator_t container_init_iterator(const container_t *c, + uint8_t typecode, + uint16_t *value) { + switch (typecode) { + case BITSET_CONTAINER_TYPE: { + const bitset_container_t *bc = const_CAST_bitset(c); + uint32_t wordindex = 0; + uint64_t word; + while ((word = bc->words[wordindex]) == 0) { + wordindex++; + } + // word is non-zero + int32_t index = wordindex * 64 + roaring_trailing_zeroes(word); + *value = index; + return ROARING_INIT_ROARING_CONTAINER_ITERATOR_T{ + .index = index, + }; + } + case ARRAY_CONTAINER_TYPE: { + const array_container_t *ac = const_CAST_array(c); + *value = ac->array[0]; + return ROARING_INIT_ROARING_CONTAINER_ITERATOR_T{ + .index = 0, + }; + } + case RUN_CONTAINER_TYPE: { + const run_container_t *rc = const_CAST_run(c); + *value = rc->runs[0].value; + return ROARING_INIT_ROARING_CONTAINER_ITERATOR_T{ + .index = 0, + }; + } + default: + assert(false); + roaring_unreachable; + return ROARING_INIT_ROARING_CONTAINER_ITERATOR_T{0}; + } +} + +roaring_container_iterator_t container_init_iterator_last(const container_t *c, + uint8_t typecode, + uint16_t *value) { + switch (typecode) { + case BITSET_CONTAINER_TYPE: { + const bitset_container_t *bc = const_CAST_bitset(c); + uint32_t wordindex = BITSET_CONTAINER_SIZE_IN_WORDS - 1; + uint64_t word; + while ((word = bc->words[wordindex]) == 0) { + wordindex--; + } + // word is non-zero + int32_t index = + wordindex * 64 + (63 - roaring_leading_zeroes(word)); + *value = index; + return ROARING_INIT_ROARING_CONTAINER_ITERATOR_T{ + .index = index, + }; + } + case ARRAY_CONTAINER_TYPE: { + const array_container_t *ac = const_CAST_array(c); + int32_t index = ac->cardinality - 1; + *value = ac->array[index]; + return ROARING_INIT_ROARING_CONTAINER_ITERATOR_T{ + .index = index, + }; + } + case RUN_CONTAINER_TYPE: { + const run_container_t *rc = const_CAST_run(c); + int32_t run_index = rc->n_runs - 1; + const rle16_t *last_run = &rc->runs[run_index]; + *value = last_run->value + last_run->length; + return ROARING_INIT_ROARING_CONTAINER_ITERATOR_T{ + .index = run_index, + }; + } + default: + assert(false); + roaring_unreachable; + return ROARING_INIT_ROARING_CONTAINER_ITERATOR_T{0}; + } +} + +bool container_iterator_next(const container_t *c, uint8_t typecode, + roaring_container_iterator_t *it, + uint16_t *value) { + switch (typecode) { + case BITSET_CONTAINER_TYPE: { + const bitset_container_t *bc = const_CAST_bitset(c); + it->index++; + + uint32_t wordindex = it->index / 64; + if (wordindex >= BITSET_CONTAINER_SIZE_IN_WORDS) { + return false; + } + + uint64_t word = + bc->words[wordindex] & (UINT64_MAX << (it->index % 64)); + // next part could be optimized/simplified + while (word == 0 && + (wordindex + 1 < BITSET_CONTAINER_SIZE_IN_WORDS)) { + wordindex++; + word = bc->words[wordindex]; + } + if (word != 0) { + it->index = wordindex * 64 + roaring_trailing_zeroes(word); + *value = it->index; + return true; + } + return false; + } + case ARRAY_CONTAINER_TYPE: { + const array_container_t *ac = const_CAST_array(c); + it->index++; + if (it->index < ac->cardinality) { + *value = ac->array[it->index]; + return true; + } + return false; + } + case RUN_CONTAINER_TYPE: { + if (*value == UINT16_MAX) { // Avoid overflow to zero + return false; + } + + const run_container_t *rc = const_CAST_run(c); + uint32_t limit = + rc->runs[it->index].value + rc->runs[it->index].length; + if (*value < limit) { + (*value)++; + return true; + } + + it->index++; + if (it->index < rc->n_runs) { + *value = rc->runs[it->index].value; + return true; + } + return false; + } + default: + assert(false); + roaring_unreachable; + return false; + } +} + +bool container_iterator_prev(const container_t *c, uint8_t typecode, + roaring_container_iterator_t *it, + uint16_t *value) { + switch (typecode) { + case BITSET_CONTAINER_TYPE: { + if (--it->index < 0) { + return false; + } + + const bitset_container_t *bc = const_CAST_bitset(c); + int32_t wordindex = it->index / 64; + uint64_t word = + bc->words[wordindex] & (UINT64_MAX >> (63 - (it->index % 64))); + + while (word == 0 && --wordindex >= 0) { + word = bc->words[wordindex]; + } + if (word == 0) { + return false; + } + + it->index = (wordindex * 64) + (63 - roaring_leading_zeroes(word)); + *value = it->index; + return true; + } + case ARRAY_CONTAINER_TYPE: { + if (--it->index < 0) { + return false; + } + const array_container_t *ac = const_CAST_array(c); + *value = ac->array[it->index]; + return true; + } + case RUN_CONTAINER_TYPE: { + if (*value == 0) { + return false; + } + + const run_container_t *rc = const_CAST_run(c); + (*value)--; + if (*value >= rc->runs[it->index].value) { + return true; + } + + if (--it->index < 0) { + return false; + } + + *value = rc->runs[it->index].value + rc->runs[it->index].length; + return true; + } + default: + assert(false); + roaring_unreachable; + return false; + } +} + +bool container_iterator_lower_bound(const container_t *c, uint8_t typecode, + roaring_container_iterator_t *it, + uint16_t *value_out, uint16_t val) { + if (val > container_maximum(c, typecode)) { + return false; + } + switch (typecode) { + case BITSET_CONTAINER_TYPE: { + const bitset_container_t *bc = const_CAST_bitset(c); + it->index = bitset_container_index_equalorlarger(bc, val); + *value_out = it->index; + return true; + } + case ARRAY_CONTAINER_TYPE: { + const array_container_t *ac = const_CAST_array(c); + it->index = array_container_index_equalorlarger(ac, val); + *value_out = ac->array[it->index]; + return true; + } + case RUN_CONTAINER_TYPE: { + const run_container_t *rc = const_CAST_run(c); + it->index = run_container_index_equalorlarger(rc, val); + if (rc->runs[it->index].value <= val) { + *value_out = val; + } else { + *value_out = rc->runs[it->index].value; + } + return true; + } + default: + assert(false); + roaring_unreachable; + return false; + } +} + +bool container_iterator_read_into_uint32(const container_t *c, uint8_t typecode, + roaring_container_iterator_t *it, + uint32_t high16, uint32_t *buf, + uint32_t count, uint32_t *consumed, + uint16_t *value_out) { + *consumed = 0; + if (count == 0) { + return false; + } + switch (typecode) { + case BITSET_CONTAINER_TYPE: { + const bitset_container_t *bc = const_CAST_bitset(c); + uint32_t wordindex = it->index / 64; + uint64_t word = + bc->words[wordindex] & (UINT64_MAX << (it->index % 64)); + do { + // Read set bits. + while (word != 0 && *consumed < count) { + *buf = high16 | + (wordindex * 64 + roaring_trailing_zeroes(word)); + word = word & (word - 1); + buf++; + (*consumed)++; + } + // Skip unset bits. + while (word == 0 && + wordindex + 1 < BITSET_CONTAINER_SIZE_IN_WORDS) { + wordindex++; + word = bc->words[wordindex]; + } + } while (word != 0 && *consumed < count); + + if (word != 0) { + it->index = wordindex * 64 + roaring_trailing_zeroes(word); + *value_out = it->index; + return true; + } + return false; + } + case ARRAY_CONTAINER_TYPE: { + const array_container_t *ac = const_CAST_array(c); + uint32_t num_values = + minimum_uint32(ac->cardinality - it->index, count); + for (uint32_t i = 0; i < num_values; i++) { + buf[i] = high16 | ac->array[it->index + i]; + } + *consumed += num_values; + it->index += num_values; + if (it->index < ac->cardinality) { + *value_out = ac->array[it->index]; + return true; + } + return false; + } + case RUN_CONTAINER_TYPE: { + const run_container_t *rc = const_CAST_run(c); + do { + uint32_t largest_run_value = + rc->runs[it->index].value + rc->runs[it->index].length; + uint32_t num_values = minimum_uint32( + largest_run_value - *value_out + 1, count - *consumed); + for (uint32_t i = 0; i < num_values; i++) { + buf[i] = high16 | (*value_out + i); + } + *value_out += num_values; + buf += num_values; + *consumed += num_values; + + // We check for `value == 0` because `it->value += num_values` + // can overflow when `value == UINT16_MAX`, and `count > + // length`. In this case `value` will overflow to 0. + if (*value_out > largest_run_value || *value_out == 0) { + it->index++; + if (it->index < rc->n_runs) { + *value_out = rc->runs[it->index].value; + } else { + return false; + } + } + } while (*consumed < count); + return true; + } + default: + assert(false); + roaring_unreachable; + return 0; + } +} + +bool container_iterator_read_into_uint64(const container_t *c, uint8_t typecode, + roaring_container_iterator_t *it, + uint64_t high48, uint64_t *buf, + uint32_t count, uint32_t *consumed, + uint16_t *value_out) { + *consumed = 0; + if (count == 0) { + return false; + } + switch (typecode) { + case BITSET_CONTAINER_TYPE: { + const bitset_container_t *bc = const_CAST_bitset(c); + uint32_t wordindex = it->index / 64; + uint64_t word = + bc->words[wordindex] & (UINT64_MAX << (it->index % 64)); + do { + // Read set bits. + while (word != 0 && *consumed < count) { + *buf = high48 | + (wordindex * 64 + roaring_trailing_zeroes(word)); + word = word & (word - 1); + buf++; + (*consumed)++; + } + // Skip unset bits. + while (word == 0 && + wordindex + 1 < BITSET_CONTAINER_SIZE_IN_WORDS) { + wordindex++; + word = bc->words[wordindex]; + } + } while (word != 0 && *consumed < count); + + if (word != 0) { + it->index = wordindex * 64 + roaring_trailing_zeroes(word); + *value_out = it->index; + return true; + } + return false; + } + case ARRAY_CONTAINER_TYPE: { + const array_container_t *ac = const_CAST_array(c); + uint32_t num_values = + minimum_uint32(ac->cardinality - it->index, count); + for (uint32_t i = 0; i < num_values; i++) { + buf[i] = high48 | ac->array[it->index + i]; + } + *consumed += num_values; + it->index += num_values; + if (it->index < ac->cardinality) { + *value_out = ac->array[it->index]; + return true; + } + return false; + } + case RUN_CONTAINER_TYPE: { + const run_container_t *rc = const_CAST_run(c); + do { + uint32_t largest_run_value = + rc->runs[it->index].value + rc->runs[it->index].length; + uint32_t num_values = minimum_uint32( + largest_run_value - *value_out + 1, count - *consumed); + for (uint32_t i = 0; i < num_values; i++) { + buf[i] = high48 | (*value_out + i); + } + *value_out += num_values; + buf += num_values; + *consumed += num_values; + + // We check for `value == 0` because `it->value += num_values` + // can overflow when `value == UINT16_MAX`, and `count > + // length`. In this case `value` will overflow to 0. + if (*value_out > largest_run_value || *value_out == 0) { + it->index++; + if (it->index < rc->n_runs) { + *value_out = rc->runs[it->index].value; + } else { + return false; + } + } + } while (*consumed < count); + return true; + } + default: + assert(false); + roaring_unreachable; + return 0; + } +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif + +#undef ROARING_INIT_ROARING_CONTAINER_ITERATOR_T diff --git a/contrib/libs/croaring/src/containers/convert.c b/contrib/libs/croaring/src/containers/convert.c new file mode 100644 index 000000000000..6cd31d34c332 --- /dev/null +++ b/contrib/libs/croaring/src/containers/convert.c @@ -0,0 +1,354 @@ +#include + +#include +#include +#include +#include + +#if CROARING_IS_X64 +#ifndef CROARING_COMPILER_SUPPORTS_AVX512 +#error "CROARING_COMPILER_SUPPORTS_AVX512 needs to be defined." +#endif // CROARING_COMPILER_SUPPORTS_AVX512 +#endif + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +// file contains grubby stuff that must know impl. details of all container +// types. +bitset_container_t *bitset_container_from_array(const array_container_t *ac) { + bitset_container_t *ans = bitset_container_create(); + int limit = array_container_cardinality(ac); + for (int i = 0; i < limit; ++i) bitset_container_set(ans, ac->array[i]); + return ans; +} + +bitset_container_t *bitset_container_from_run(const run_container_t *arr) { + int card = run_container_cardinality(arr); + bitset_container_t *answer = bitset_container_create(); + for (int rlepos = 0; rlepos < arr->n_runs; ++rlepos) { + rle16_t vl = arr->runs[rlepos]; + bitset_set_lenrange(answer->words, vl.value, vl.length); + } + answer->cardinality = card; + return answer; +} + +array_container_t *array_container_from_run(const run_container_t *arr) { + array_container_t *answer = + array_container_create_given_capacity(run_container_cardinality(arr)); + answer->cardinality = 0; + for (int rlepos = 0; rlepos < arr->n_runs; ++rlepos) { + int run_start = arr->runs[rlepos].value; + int run_end = run_start + arr->runs[rlepos].length; + + for (int run_value = run_start; run_value <= run_end; ++run_value) { + answer->array[answer->cardinality++] = (uint16_t)run_value; + } + } + return answer; +} + +array_container_t *array_container_from_bitset(const bitset_container_t *bits) { + array_container_t *result = + array_container_create_given_capacity(bits->cardinality); + result->cardinality = bits->cardinality; +#if CROARING_IS_X64 +#if CROARING_COMPILER_SUPPORTS_AVX512 + if (croaring_hardware_support() & ROARING_SUPPORTS_AVX512) { + bitset_extract_setbits_avx512_uint16( + bits->words, BITSET_CONTAINER_SIZE_IN_WORDS, result->array, + bits->cardinality, 0); + } else +#endif + { + // sse version ends up being slower here + // (bitset_extract_setbits_sse_uint16) + // because of the sparsity of the data + bitset_extract_setbits_uint16( + bits->words, BITSET_CONTAINER_SIZE_IN_WORDS, result->array, 0); + } +#else + // If the system is not x64, then we have no accelerated function. + bitset_extract_setbits_uint16(bits->words, BITSET_CONTAINER_SIZE_IN_WORDS, + result->array, 0); +#endif + + return result; +} + +/* assumes that container has adequate space. Run from [s,e] (inclusive) */ +static void add_run(run_container_t *rc, int s, int e) { + rc->runs[rc->n_runs].value = s; + rc->runs[rc->n_runs].length = e - s; + rc->n_runs++; +} + +run_container_t *run_container_from_array(const array_container_t *c) { + int32_t n_runs = array_container_number_of_runs(c); + run_container_t *answer = run_container_create_given_capacity(n_runs); + int prev = -2; + int run_start = -1; + int32_t card = c->cardinality; + if (card == 0) return answer; + for (int i = 0; i < card; ++i) { + const uint16_t cur_val = c->array[i]; + if (cur_val != prev + 1) { + // new run starts; flush old one, if any + if (run_start != -1) add_run(answer, run_start, prev); + run_start = cur_val; + } + prev = c->array[i]; + } + // now prev is the last seen value + add_run(answer, run_start, prev); + // assert(run_container_cardinality(answer) == c->cardinality); + return answer; +} + +/** + * Convert the runcontainer to either a Bitmap or an Array Container, depending + * on the cardinality. Frees the container. + * Allocates and returns new container, which caller is responsible for freeing. + * It does not free the run container. + */ +container_t *convert_to_bitset_or_array_container(run_container_t *rc, + int32_t card, + uint8_t *resulttype) { + if (card <= DEFAULT_MAX_SIZE) { + array_container_t *answer = array_container_create_given_capacity(card); + answer->cardinality = 0; + for (int rlepos = 0; rlepos < rc->n_runs; ++rlepos) { + uint16_t run_start = rc->runs[rlepos].value; + uint16_t run_end = run_start + rc->runs[rlepos].length; + for (uint16_t run_value = run_start; run_value < run_end; + ++run_value) { + answer->array[answer->cardinality++] = run_value; + } + answer->array[answer->cardinality++] = run_end; + } + assert(card == answer->cardinality); + *resulttype = ARRAY_CONTAINER_TYPE; + // run_container_free(r); + return answer; + } + bitset_container_t *answer = bitset_container_create(); + for (int rlepos = 0; rlepos < rc->n_runs; ++rlepos) { + uint16_t run_start = rc->runs[rlepos].value; + bitset_set_lenrange(answer->words, run_start, rc->runs[rlepos].length); + } + answer->cardinality = card; + *resulttype = BITSET_CONTAINER_TYPE; + // run_container_free(r); + return answer; +} + +/* Converts a run container to either an array or a bitset, IF it saves space. + */ +/* If a conversion occurs, the caller is responsible to free the original + * container and + * he becomes responsible to free the new one. */ +container_t *convert_run_to_efficient_container(run_container_t *c, + uint8_t *typecode_after) { + int32_t size_as_run_container = + run_container_serialized_size_in_bytes(c->n_runs); + + int32_t size_as_bitset_container = + bitset_container_serialized_size_in_bytes(); + int32_t card = run_container_cardinality(c); + int32_t size_as_array_container = + array_container_serialized_size_in_bytes(card); + + int32_t min_size_non_run = + size_as_bitset_container < size_as_array_container + ? size_as_bitset_container + : size_as_array_container; + if (size_as_run_container <= min_size_non_run) { // no conversion + *typecode_after = RUN_CONTAINER_TYPE; + return c; + } + if (card <= DEFAULT_MAX_SIZE) { + // to array + array_container_t *answer = array_container_create_given_capacity(card); + answer->cardinality = 0; + for (int rlepos = 0; rlepos < c->n_runs; ++rlepos) { + int run_start = c->runs[rlepos].value; + int run_end = run_start + c->runs[rlepos].length; + + for (int run_value = run_start; run_value <= run_end; ++run_value) { + answer->array[answer->cardinality++] = (uint16_t)run_value; + } + } + *typecode_after = ARRAY_CONTAINER_TYPE; + return answer; + } + + // else to bitset + bitset_container_t *answer = bitset_container_create(); + + for (int rlepos = 0; rlepos < c->n_runs; ++rlepos) { + int start = c->runs[rlepos].value; + int end = start + c->runs[rlepos].length; + bitset_set_range(answer->words, start, end + 1); + } + answer->cardinality = card; + *typecode_after = BITSET_CONTAINER_TYPE; + return answer; +} + +// like convert_run_to_efficient_container but frees the old result if needed +container_t *convert_run_to_efficient_container_and_free( + run_container_t *c, uint8_t *typecode_after) { + container_t *answer = convert_run_to_efficient_container(c, typecode_after); + if (answer != c) run_container_free(c); + return answer; +} + +/* once converted, the original container is disposed here, rather than + in roaring_array +*/ + +// TODO: split into run- array- and bitset- subfunctions for sanity; +// a few function calls won't really matter. + +container_t *convert_run_optimize(container_t *c, uint8_t typecode_original, + uint8_t *typecode_after) { + if (typecode_original == RUN_CONTAINER_TYPE) { + container_t *newc = + convert_run_to_efficient_container(CAST_run(c), typecode_after); + if (newc != c) { + container_free(c, typecode_original); + } + return newc; + } else if (typecode_original == ARRAY_CONTAINER_TYPE) { + // it might need to be converted to a run container. + array_container_t *c_qua_array = CAST_array(c); + int32_t n_runs = array_container_number_of_runs(c_qua_array); + int32_t size_as_run_container = + run_container_serialized_size_in_bytes(n_runs); + int32_t card = array_container_cardinality(c_qua_array); + int32_t size_as_array_container = + array_container_serialized_size_in_bytes(card); + + if (size_as_run_container >= size_as_array_container) { + *typecode_after = ARRAY_CONTAINER_TYPE; + return c; + } + // else convert array to run container + run_container_t *answer = run_container_create_given_capacity(n_runs); + int prev = -2; + int run_start = -1; + + assert(card > 0); + for (int i = 0; i < card; ++i) { + uint16_t cur_val = c_qua_array->array[i]; + if (cur_val != prev + 1) { + // new run starts; flush old one, if any + if (run_start != -1) add_run(answer, run_start, prev); + run_start = cur_val; + } + prev = c_qua_array->array[i]; + } + assert(run_start >= 0); + // now prev is the last seen value + add_run(answer, run_start, prev); + *typecode_after = RUN_CONTAINER_TYPE; + array_container_free(c_qua_array); + return answer; + } else if (typecode_original == + BITSET_CONTAINER_TYPE) { // run conversions on bitset + // does bitset need conversion to run? + bitset_container_t *c_qua_bitset = CAST_bitset(c); + int32_t n_runs = bitset_container_number_of_runs(c_qua_bitset); + int32_t size_as_run_container = + run_container_serialized_size_in_bytes(n_runs); + int32_t size_as_bitset_container = + bitset_container_serialized_size_in_bytes(); + + if (size_as_bitset_container <= size_as_run_container) { + // no conversion needed. + *typecode_after = BITSET_CONTAINER_TYPE; + return c; + } + // bitset to runcontainer (ported from Java RunContainer( + // BitmapContainer bc, int nbrRuns)) + assert(n_runs > 0); // no empty bitmaps + run_container_t *answer = run_container_create_given_capacity(n_runs); + + int long_ctr = 0; + uint64_t cur_word = c_qua_bitset->words[0]; + while (true) { + while (cur_word == UINT64_C(0) && + long_ctr < BITSET_CONTAINER_SIZE_IN_WORDS - 1) + cur_word = c_qua_bitset->words[++long_ctr]; + + if (cur_word == UINT64_C(0)) { + bitset_container_free(c_qua_bitset); + *typecode_after = RUN_CONTAINER_TYPE; + return answer; + } + + int local_run_start = roaring_trailing_zeroes(cur_word); + int run_start = local_run_start + 64 * long_ctr; + uint64_t cur_word_with_1s = cur_word | (cur_word - 1); + + int run_end = 0; + while (cur_word_with_1s == UINT64_C(0xFFFFFFFFFFFFFFFF) && + long_ctr < BITSET_CONTAINER_SIZE_IN_WORDS - 1) + cur_word_with_1s = c_qua_bitset->words[++long_ctr]; + + if (cur_word_with_1s == UINT64_C(0xFFFFFFFFFFFFFFFF)) { + run_end = 64 + long_ctr * 64; // exclusive, I guess + add_run(answer, run_start, run_end - 1); + bitset_container_free(c_qua_bitset); + *typecode_after = RUN_CONTAINER_TYPE; + return answer; + } + int local_run_end = roaring_trailing_zeroes(~cur_word_with_1s); + run_end = local_run_end + long_ctr * 64; + add_run(answer, run_start, run_end - 1); + cur_word = cur_word_with_1s & (cur_word_with_1s + 1); + } + return answer; + } else { + assert(false); + roaring_unreachable; + return NULL; + } +} + +container_t *container_from_run_range(const run_container_t *run, uint32_t min, + uint32_t max, uint8_t *typecode_after) { + // We expect most of the time to end up with a bitset container + bitset_container_t *bitset = bitset_container_create(); + *typecode_after = BITSET_CONTAINER_TYPE; + int32_t union_cardinality = 0; + for (int32_t i = 0; i < run->n_runs; ++i) { + uint32_t rle_min = run->runs[i].value; + uint32_t rle_max = rle_min + run->runs[i].length; + bitset_set_lenrange(bitset->words, rle_min, rle_max - rle_min); + union_cardinality += run->runs[i].length + 1; + } + union_cardinality += max - min + 1; + union_cardinality -= + bitset_lenrange_cardinality(bitset->words, min, max - min); + bitset_set_lenrange(bitset->words, min, max - min); + bitset->cardinality = union_cardinality; + if (bitset->cardinality <= DEFAULT_MAX_SIZE) { + // we need to convert to an array container + array_container_t *array = array_container_from_bitset(bitset); + *typecode_after = ARRAY_CONTAINER_TYPE; + bitset_container_free(bitset); + return array; + } + return bitset; +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif diff --git a/contrib/libs/croaring/src/containers/mixed_andnot.c b/contrib/libs/croaring/src/containers/mixed_andnot.c new file mode 100644 index 000000000000..8641e16b95bb --- /dev/null +++ b/contrib/libs/croaring/src/containers/mixed_andnot.c @@ -0,0 +1,522 @@ +/* + * mixed_andnot.c. More methods since operation is not symmetric, + * except no "wide" andnot , so no lazy options motivated. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst, a valid array container that could be the same as dst.*/ +void array_bitset_container_andnot(const array_container_t *src_1, + const bitset_container_t *src_2, + array_container_t *dst) { + // follows Java implementation as of June 2016 + if (dst->capacity < src_1->cardinality) { + array_container_grow(dst, src_1->cardinality, false); + } + int32_t newcard = 0; + const int32_t origcard = src_1->cardinality; + for (int i = 0; i < origcard; ++i) { + uint16_t key = src_1->array[i]; + dst->array[newcard] = key; + newcard += 1 - bitset_container_contains(src_2, key); + } + dst->cardinality = newcard; +} + +/* Compute the andnot of src_1 and src_2 and write the result to + * src_1 */ + +void array_bitset_container_iandnot(array_container_t *src_1, + const bitset_container_t *src_2) { + array_bitset_container_andnot(src_1, src_2, src_1); +} + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst, which does not initially have a valid container. + * Return true for a bitset result; false for array + */ + +bool bitset_array_container_andnot(const bitset_container_t *src_1, + const array_container_t *src_2, + container_t **dst) { + // Java did this directly, but we have option of asm or avx + bitset_container_t *result = bitset_container_create(); + bitset_container_copy(src_1, result); + result->cardinality = + (int32_t)bitset_clear_list(result->words, (uint64_t)result->cardinality, + src_2->array, (uint64_t)src_2->cardinality); + + // do required type conversions. + if (result->cardinality <= DEFAULT_MAX_SIZE) { + *dst = array_container_from_bitset(result); + bitset_container_free(result); + return false; + } + *dst = result; + return true; +} + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst (which has no container initially). It will modify src_1 + * to be dst if the result is a bitset. Otherwise, it will + * free src_1 and dst will be a new array container. In both + * cases, the caller is responsible for deallocating dst. + * Returns true iff dst is a bitset */ + +bool bitset_array_container_iandnot(bitset_container_t *src_1, + const array_container_t *src_2, + container_t **dst) { + *dst = src_1; + src_1->cardinality = + (int32_t)bitset_clear_list(src_1->words, (uint64_t)src_1->cardinality, + src_2->array, (uint64_t)src_2->cardinality); + + if (src_1->cardinality <= DEFAULT_MAX_SIZE) { + *dst = array_container_from_bitset(src_1); + bitset_container_free(src_1); + return false; // not bitset + } else + return true; +} + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst. Result may be either a bitset or an array container + * (returns "result is bitset"). dst does not initially have + * any container, but becomes either a bitset container (return + * result true) or an array container. + */ + +bool run_bitset_container_andnot(const run_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst) { + // follows the Java implementation as of June 2016 + int card = run_container_cardinality(src_1); + if (card <= DEFAULT_MAX_SIZE) { + // must be an array + array_container_t *answer = array_container_create_given_capacity(card); + answer->cardinality = 0; + for (int32_t rlepos = 0; rlepos < src_1->n_runs; ++rlepos) { + rle16_t rle = src_1->runs[rlepos]; + for (int run_value = rle.value; run_value <= rle.value + rle.length; + ++run_value) { + if (!bitset_container_get(src_2, (uint16_t)run_value)) { + answer->array[answer->cardinality++] = (uint16_t)run_value; + } + } + } + *dst = answer; + return false; + } else { // we guess it will be a bitset, though have to check guess when + // done + bitset_container_t *answer = bitset_container_clone(src_2); + + uint32_t last_pos = 0; + for (int32_t rlepos = 0; rlepos < src_1->n_runs; ++rlepos) { + rle16_t rle = src_1->runs[rlepos]; + + uint32_t start = rle.value; + uint32_t end = start + rle.length + 1; + bitset_reset_range(answer->words, last_pos, start); + bitset_flip_range(answer->words, start, end); + last_pos = end; + } + bitset_reset_range(answer->words, last_pos, (uint32_t)(1 << 16)); + + answer->cardinality = bitset_container_compute_cardinality(answer); + + if (answer->cardinality <= DEFAULT_MAX_SIZE) { + *dst = array_container_from_bitset(answer); + bitset_container_free(answer); + return false; // not bitset + } + *dst = answer; + return true; // bitset + } +} + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst. Result may be either a bitset or an array container + * (returns "result is bitset"). dst does not initially have + * any container, but becomes either a bitset container (return + * result true) or an array container. + */ + +bool run_bitset_container_iandnot(run_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst) { + // dummy implementation + bool ans = run_bitset_container_andnot(src_1, src_2, dst); + run_container_free(src_1); + return ans; +} + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst. Result may be either a bitset or an array container + * (returns "result is bitset"). dst does not initially have + * any container, but becomes either a bitset container (return + * result true) or an array container. + */ + +bool bitset_run_container_andnot(const bitset_container_t *src_1, + const run_container_t *src_2, + container_t **dst) { + // follows Java implementation + bitset_container_t *result = bitset_container_create(); + + bitset_container_copy(src_1, result); + for (int32_t rlepos = 0; rlepos < src_2->n_runs; ++rlepos) { + rle16_t rle = src_2->runs[rlepos]; + bitset_reset_range(result->words, rle.value, + rle.value + rle.length + UINT32_C(1)); + } + result->cardinality = bitset_container_compute_cardinality(result); + + if (result->cardinality <= DEFAULT_MAX_SIZE) { + *dst = array_container_from_bitset(result); + bitset_container_free(result); + return false; // not bitset + } + *dst = result; + return true; // bitset +} + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst (which has no container initially). It will modify src_1 + * to be dst if the result is a bitset. Otherwise, it will + * free src_1 and dst will be a new array container. In both + * cases, the caller is responsible for deallocating dst. + * Returns true iff dst is a bitset */ + +bool bitset_run_container_iandnot(bitset_container_t *src_1, + const run_container_t *src_2, + container_t **dst) { + *dst = src_1; + + for (int32_t rlepos = 0; rlepos < src_2->n_runs; ++rlepos) { + rle16_t rle = src_2->runs[rlepos]; + bitset_reset_range(src_1->words, rle.value, + rle.value + rle.length + UINT32_C(1)); + } + src_1->cardinality = bitset_container_compute_cardinality(src_1); + + if (src_1->cardinality <= DEFAULT_MAX_SIZE) { + *dst = array_container_from_bitset(src_1); + bitset_container_free(src_1); + return false; // not bitset + } else + return true; +} + +/* helper. a_out must be a valid array container with adequate capacity. + * Returns the cardinality of the output container. Partly Based on Java + * implementation Util.unsignedDifference. + * + * TODO: Util.unsignedDifference does not use advanceUntil. Is it cheaper + * to avoid advanceUntil? + */ + +static int run_array_array_subtract(const run_container_t *rc, + const array_container_t *a_in, + array_container_t *a_out) { + int out_card = 0; + int32_t in_array_pos = + -1; // since advanceUntil always assumes we start the search AFTER this + + for (int rlepos = 0; rlepos < rc->n_runs; rlepos++) { + int32_t start = rc->runs[rlepos].value; + int32_t end = start + rc->runs[rlepos].length + 1; + + in_array_pos = advanceUntil(a_in->array, in_array_pos, + a_in->cardinality, (uint16_t)start); + + if (in_array_pos >= a_in->cardinality) { // run has no items subtracted + for (int32_t i = start; i < end; ++i) + a_out->array[out_card++] = (uint16_t)i; + } else { + uint16_t next_nonincluded = a_in->array[in_array_pos]; + if (next_nonincluded >= end) { + // another case when run goes unaltered + for (int32_t i = start; i < end; ++i) + a_out->array[out_card++] = (uint16_t)i; + in_array_pos--; // ensure we see this item again if necessary + } else { + for (int32_t i = start; i < end; ++i) + if (i != next_nonincluded) + a_out->array[out_card++] = (uint16_t)i; + else // 0 should ensure we don't match + next_nonincluded = + (in_array_pos + 1 >= a_in->cardinality) + ? 0 + : a_in->array[++in_array_pos]; + in_array_pos--; // see again + } + } + } + return out_card; +} + +/* dst does not indicate a valid container initially. Eventually it + * can become any type of container. + */ + +int run_array_container_andnot(const run_container_t *src_1, + const array_container_t *src_2, + container_t **dst) { + // follows the Java impl as of June 2016 + + int card = run_container_cardinality(src_1); + const int arbitrary_threshold = 32; + + if (card <= arbitrary_threshold) { + if (src_2->cardinality == 0) { + *dst = run_container_clone(src_1); + return RUN_CONTAINER_TYPE; + } + // Java's "lazyandNot.toEfficientContainer" thing + run_container_t *answer = run_container_create_given_capacity( + card + array_container_cardinality(src_2)); + + int rlepos = 0; + int xrlepos = 0; // "x" is src_2 + rle16_t rle = src_1->runs[rlepos]; + int32_t start = rle.value; + int32_t end = start + rle.length + 1; + int32_t xstart = src_2->array[xrlepos]; + + while ((rlepos < src_1->n_runs) && (xrlepos < src_2->cardinality)) { + if (end <= xstart) { + // output the first run + answer->runs[answer->n_runs++] = + CROARING_MAKE_RLE16(start, end - start - 1); + rlepos++; + if (rlepos < src_1->n_runs) { + start = src_1->runs[rlepos].value; + end = start + src_1->runs[rlepos].length + 1; + } + } else if (xstart + 1 <= start) { + // exit the second run + xrlepos++; + if (xrlepos < src_2->cardinality) { + xstart = src_2->array[xrlepos]; + } + } else { + if (start < xstart) { + answer->runs[answer->n_runs++] = + CROARING_MAKE_RLE16(start, xstart - start - 1); + } + if (xstart + 1 < end) { + start = xstart + 1; + } else { + rlepos++; + if (rlepos < src_1->n_runs) { + start = src_1->runs[rlepos].value; + end = start + src_1->runs[rlepos].length + 1; + } + } + } + } + if (rlepos < src_1->n_runs) { + answer->runs[answer->n_runs++] = + CROARING_MAKE_RLE16(start, end - start - 1); + rlepos++; + if (rlepos < src_1->n_runs) { + memcpy(answer->runs + answer->n_runs, src_1->runs + rlepos, + (src_1->n_runs - rlepos) * sizeof(rle16_t)); + answer->n_runs += (src_1->n_runs - rlepos); + } + } + uint8_t return_type; + *dst = convert_run_to_efficient_container(answer, &return_type); + if (answer != *dst) run_container_free(answer); + return return_type; + } + // else it's a bitmap or array + + if (card <= DEFAULT_MAX_SIZE) { + array_container_t *ac = array_container_create_given_capacity(card); + // nb Java code used a generic iterator-based merge to compute + // difference + ac->cardinality = run_array_array_subtract(src_1, src_2, ac); + *dst = ac; + return ARRAY_CONTAINER_TYPE; + } + bitset_container_t *ans = bitset_container_from_run(src_1); + bool result_is_bitset = bitset_array_container_iandnot(ans, src_2, dst); + return (result_is_bitset ? BITSET_CONTAINER_TYPE : ARRAY_CONTAINER_TYPE); +} + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst (which has no container initially). It will modify src_1 + * to be dst if the result is a bitset. Otherwise, it will + * free src_1 and dst will be a new array container. In both + * cases, the caller is responsible for deallocating dst. + * Returns true iff dst is a bitset */ + +int run_array_container_iandnot(run_container_t *src_1, + const array_container_t *src_2, + container_t **dst) { + // dummy implementation same as June 2016 Java + int ans = run_array_container_andnot(src_1, src_2, dst); + run_container_free(src_1); + return ans; +} + +/* dst must be a valid array container, allowed to be src_1 */ + +void array_run_container_andnot(const array_container_t *src_1, + const run_container_t *src_2, + array_container_t *dst) { + // basically following Java impl as of June 2016 + if (src_1->cardinality > dst->capacity) { + array_container_grow(dst, src_1->cardinality, false); + } + + if (src_2->n_runs == 0) { + memmove(dst->array, src_1->array, + sizeof(uint16_t) * src_1->cardinality); + dst->cardinality = src_1->cardinality; + return; + } + int32_t run_start = src_2->runs[0].value; + int32_t run_end = run_start + src_2->runs[0].length; + int which_run = 0; + + uint16_t val = 0; + int dest_card = 0; + for (int i = 0; i < src_1->cardinality; ++i) { + val = src_1->array[i]; + if (val < run_start) + dst->array[dest_card++] = val; + else if (val <= run_end) { + ; // omitted item + } else { + do { + if (which_run + 1 < src_2->n_runs) { + ++which_run; + run_start = src_2->runs[which_run].value; + run_end = run_start + src_2->runs[which_run].length; + + } else + run_start = run_end = (1 << 16) + 1; + } while (val > run_end); + --i; + } + } + dst->cardinality = dest_card; +} + +/* dst does not indicate a valid container initially. Eventually it + * can become any kind of container. + */ + +void array_run_container_iandnot(array_container_t *src_1, + const run_container_t *src_2) { + array_run_container_andnot(src_1, src_2, src_1); +} + +/* dst does not indicate a valid container initially. Eventually it + * can become any kind of container. + */ + +int run_run_container_andnot(const run_container_t *src_1, + const run_container_t *src_2, container_t **dst) { + run_container_t *ans = run_container_create(); + run_container_andnot(src_1, src_2, ans); + uint8_t typecode_after; + *dst = convert_run_to_efficient_container_and_free(ans, &typecode_after); + return typecode_after; +} + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst (which has no container initially). It will modify src_1 + * to be dst if the result is a bitset. Otherwise, it will + * free src_1 and dst will be a new array container. In both + * cases, the caller is responsible for deallocating dst. + * Returns true iff dst is a bitset */ + +int run_run_container_iandnot(run_container_t *src_1, + const run_container_t *src_2, container_t **dst) { + // following Java impl as of June 2016 (dummy) + int ans = run_run_container_andnot(src_1, src_2, dst); + run_container_free(src_1); + return ans; +} + +/* + * dst is a valid array container and may be the same as src_1 + */ + +void array_array_container_andnot(const array_container_t *src_1, + const array_container_t *src_2, + array_container_t *dst) { + array_container_andnot(src_1, src_2, dst); +} + +/* inplace array-array andnot will always be able to reuse the space of + * src_1 */ +void array_array_container_iandnot(array_container_t *src_1, + const array_container_t *src_2) { + array_container_andnot(src_1, src_2, src_1); +} + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst (which has no container initially). Return value is + * "dst is a bitset" + */ + +bool bitset_bitset_container_andnot(const bitset_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst) { + bitset_container_t *ans = bitset_container_create(); + int card = bitset_container_andnot(src_1, src_2, ans); + if (card <= DEFAULT_MAX_SIZE) { + *dst = array_container_from_bitset(ans); + bitset_container_free(ans); + return false; // not bitset + } else { + *dst = ans; + return true; + } +} + +/* Compute the andnot of src_1 and src_2 and write the result to + * dst (which has no container initially). It will modify src_1 + * to be dst if the result is a bitset. Otherwise, it will + * free src_1 and dst will be a new array container. In both + * cases, the caller is responsible for deallocating dst. + * Returns true iff dst is a bitset */ + +bool bitset_bitset_container_iandnot(bitset_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst) { + int card = bitset_container_andnot(src_1, src_2, src_1); + if (card <= DEFAULT_MAX_SIZE) { + *dst = array_container_from_bitset(src_1); + bitset_container_free(src_1); + return false; // not bitset + } else { + *dst = src_1; + return true; + } +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif diff --git a/contrib/libs/croaring/src/containers/mixed_equal.c b/contrib/libs/croaring/src/containers/mixed_equal.c new file mode 100644 index 000000000000..761431e9014e --- /dev/null +++ b/contrib/libs/croaring/src/containers/mixed_equal.c @@ -0,0 +1,88 @@ +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +bool array_container_equal_bitset(const array_container_t* container1, + const bitset_container_t* container2) { + if (container2->cardinality != BITSET_UNKNOWN_CARDINALITY) { + if (container2->cardinality != container1->cardinality) { + return false; + } + } + int32_t pos = 0; + for (int32_t i = 0; i < BITSET_CONTAINER_SIZE_IN_WORDS; ++i) { + uint64_t w = container2->words[i]; + while (w != 0) { + uint64_t t = w & (~w + 1); + uint16_t r = i * 64 + roaring_trailing_zeroes(w); + if (pos >= container1->cardinality) { + return false; + } + if (container1->array[pos] != r) { + return false; + } + ++pos; + w ^= t; + } + } + return (pos == container1->cardinality); +} + +bool run_container_equals_array(const run_container_t* container1, + const array_container_t* container2) { + if (run_container_cardinality(container1) != container2->cardinality) + return false; + int32_t pos = 0; + for (int i = 0; i < container1->n_runs; ++i) { + const uint32_t run_start = container1->runs[i].value; + const uint32_t le = container1->runs[i].length; + + if (container2->array[pos] != run_start) { + return false; + } + + if (container2->array[pos + le] != run_start + le) { + return false; + } + + pos += le + 1; + } + return true; +} + +bool run_container_equals_bitset(const run_container_t* container1, + const bitset_container_t* container2) { + int run_card = run_container_cardinality(container1); + int bitset_card = (container2->cardinality != BITSET_UNKNOWN_CARDINALITY) + ? container2->cardinality + : bitset_container_compute_cardinality(container2); + if (bitset_card != run_card) { + return false; + } + + for (int32_t i = 0; i < container1->n_runs; i++) { + uint32_t begin = container1->runs[i].value; + if (container1->runs[i].length) { + uint32_t end = begin + container1->runs[i].length + 1; + if (!bitset_container_contains_range(container2, begin, end)) { + return false; + } + } else { + if (!bitset_container_contains(container2, begin)) { + return false; + } + } + } + + return true; +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif diff --git a/contrib/libs/croaring/src/containers/mixed_intersection.c b/contrib/libs/croaring/src/containers/mixed_intersection.c new file mode 100644 index 000000000000..56efe210b845 --- /dev/null +++ b/contrib/libs/croaring/src/containers/mixed_intersection.c @@ -0,0 +1,351 @@ +/* + * mixed_intersection.c + * + */ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +/* Compute the intersection of src_1 and src_2 and write the result to + * dst. */ +void array_bitset_container_intersection(const array_container_t *src_1, + const bitset_container_t *src_2, + array_container_t *dst) { + if (dst->capacity < src_1->cardinality) { + array_container_grow(dst, src_1->cardinality, false); + } + int32_t newcard = 0; // dst could be src_1 + const int32_t origcard = src_1->cardinality; + for (int i = 0; i < origcard; ++i) { + uint16_t key = src_1->array[i]; + // this branchless approach is much faster... + dst->array[newcard] = key; + newcard += bitset_container_contains(src_2, key); + /** + * we could do it this way instead... + * if (bitset_container_contains(src_2, key)) { + * dst->array[newcard++] = key; + * } + * but if the result is unpredictible, the processor generates + * many mispredicted branches. + * Difference can be huge (from 3 cycles when predictible all the way + * to 16 cycles when unpredictible. + * See + * https://github.com/lemire/Code-used-on-Daniel-Lemire-s-blog/blob/master/extra/bitset/c/arraybitsetintersection.c + */ + } + dst->cardinality = newcard; +} + +/* Compute the size of the intersection of src_1 and src_2. */ +int array_bitset_container_intersection_cardinality( + const array_container_t *src_1, const bitset_container_t *src_2) { + int32_t newcard = 0; + const int32_t origcard = src_1->cardinality; + for (int i = 0; i < origcard; ++i) { + uint16_t key = src_1->array[i]; + newcard += bitset_container_contains(src_2, key); + } + return newcard; +} + +bool array_bitset_container_intersect(const array_container_t *src_1, + const bitset_container_t *src_2) { + const int32_t origcard = src_1->cardinality; + for (int i = 0; i < origcard; ++i) { + uint16_t key = src_1->array[i]; + if (bitset_container_contains(src_2, key)) return true; + } + return false; +} + +/* Compute the intersection of src_1 and src_2 and write the result to + * dst. It is allowed for dst to be equal to src_1. We assume that dst is a + * valid container. */ +void array_run_container_intersection(const array_container_t *src_1, + const run_container_t *src_2, + array_container_t *dst) { + if (run_container_is_full(src_2)) { + if (dst != src_1) array_container_copy(src_1, dst); + return; + } + if (dst->capacity < src_1->cardinality) { + array_container_grow(dst, src_1->cardinality, false); + } + if (src_2->n_runs == 0) { + return; + } + int32_t rlepos = 0; + int32_t arraypos = 0; + rle16_t rle = src_2->runs[rlepos]; + int32_t newcard = 0; + while (arraypos < src_1->cardinality) { + const uint16_t arrayval = src_1->array[arraypos]; + while (rle.value + rle.length < + arrayval) { // this will frequently be false + ++rlepos; + if (rlepos == src_2->n_runs) { + dst->cardinality = newcard; + return; // we are done + } + rle = src_2->runs[rlepos]; + } + if (rle.value > arrayval) { + arraypos = advanceUntil(src_1->array, arraypos, src_1->cardinality, + rle.value); + } else { + dst->array[newcard] = arrayval; + newcard++; + arraypos++; + } + } + dst->cardinality = newcard; +} + +/* Compute the intersection of src_1 and src_2 and write the result to + * *dst. If the result is true then the result is a bitset_container_t + * otherwise is a array_container_t. If *dst == src_2, an in-place processing + * is attempted.*/ +bool run_bitset_container_intersection(const run_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst) { + if (run_container_is_full(src_1)) { + if (*dst != src_2) *dst = bitset_container_clone(src_2); + return true; + } + int32_t card = run_container_cardinality(src_1); + if (card <= DEFAULT_MAX_SIZE) { + // result can only be an array (assuming that we never make a + // RunContainer) + if (card > src_2->cardinality) { + card = src_2->cardinality; + } + array_container_t *answer = array_container_create_given_capacity(card); + *dst = answer; + if (*dst == NULL) { + return false; + } + for (int32_t rlepos = 0; rlepos < src_1->n_runs; ++rlepos) { + rle16_t rle = src_1->runs[rlepos]; + uint32_t endofrun = (uint32_t)rle.value + rle.length; + for (uint32_t runValue = rle.value; runValue <= endofrun; + ++runValue) { + answer->array[answer->cardinality] = (uint16_t)runValue; + answer->cardinality += + bitset_container_contains(src_2, runValue); + } + } + return false; + } + if (*dst == src_2) { // we attempt in-place + bitset_container_t *answer = CAST_bitset(*dst); + uint32_t start = 0; + for (int32_t rlepos = 0; rlepos < src_1->n_runs; ++rlepos) { + const rle16_t rle = src_1->runs[rlepos]; + uint32_t end = rle.value; + bitset_reset_range(src_2->words, start, end); + + start = end + rle.length + 1; + } + bitset_reset_range(src_2->words, start, UINT32_C(1) << 16); + answer->cardinality = bitset_container_compute_cardinality(answer); + if (src_2->cardinality > DEFAULT_MAX_SIZE) { + return true; + } else { + array_container_t *newanswer = array_container_from_bitset(src_2); + if (newanswer == NULL) { + *dst = NULL; + return false; + } + *dst = newanswer; + return false; + } + } else { // no inplace + // we expect the answer to be a bitmap (if we are lucky) + bitset_container_t *answer = bitset_container_clone(src_2); + + *dst = answer; + if (answer == NULL) { + return true; + } + uint32_t start = 0; + for (int32_t rlepos = 0; rlepos < src_1->n_runs; ++rlepos) { + const rle16_t rle = src_1->runs[rlepos]; + uint32_t end = rle.value; + bitset_reset_range(answer->words, start, end); + start = end + rle.length + 1; + } + bitset_reset_range(answer->words, start, UINT32_C(1) << 16); + answer->cardinality = bitset_container_compute_cardinality(answer); + + if (answer->cardinality > DEFAULT_MAX_SIZE) { + return true; + } else { + array_container_t *newanswer = array_container_from_bitset(answer); + bitset_container_free(CAST_bitset(*dst)); + if (newanswer == NULL) { + *dst = NULL; + return false; + } + *dst = newanswer; + return false; + } + } +} + +/* Compute the size of the intersection between src_1 and src_2 . */ +int array_run_container_intersection_cardinality(const array_container_t *src_1, + const run_container_t *src_2) { + if (run_container_is_full(src_2)) { + return src_1->cardinality; + } + if (src_2->n_runs == 0) { + return 0; + } + int32_t rlepos = 0; + int32_t arraypos = 0; + rle16_t rle = src_2->runs[rlepos]; + int32_t newcard = 0; + while (arraypos < src_1->cardinality) { + const uint16_t arrayval = src_1->array[arraypos]; + while (rle.value + rle.length < + arrayval) { // this will frequently be false + ++rlepos; + if (rlepos == src_2->n_runs) { + return newcard; // we are done + } + rle = src_2->runs[rlepos]; + } + if (rle.value > arrayval) { + arraypos = advanceUntil(src_1->array, arraypos, src_1->cardinality, + rle.value); + } else { + newcard++; + arraypos++; + } + } + return newcard; +} + +/* Compute the intersection between src_1 and src_2 + **/ +int run_bitset_container_intersection_cardinality( + const run_container_t *src_1, const bitset_container_t *src_2) { + if (run_container_is_full(src_1)) { + return bitset_container_cardinality(src_2); + } + int answer = 0; + for (int32_t rlepos = 0; rlepos < src_1->n_runs; ++rlepos) { + rle16_t rle = src_1->runs[rlepos]; + answer += + bitset_lenrange_cardinality(src_2->words, rle.value, rle.length); + } + return answer; +} + +bool array_run_container_intersect(const array_container_t *src_1, + const run_container_t *src_2) { + if (run_container_is_full(src_2)) { + return !array_container_empty(src_1); + } + if (src_2->n_runs == 0) { + return false; + } + int32_t rlepos = 0; + int32_t arraypos = 0; + rle16_t rle = src_2->runs[rlepos]; + while (arraypos < src_1->cardinality) { + const uint16_t arrayval = src_1->array[arraypos]; + while (rle.value + rle.length < + arrayval) { // this will frequently be false + ++rlepos; + if (rlepos == src_2->n_runs) { + return false; // we are done + } + rle = src_2->runs[rlepos]; + } + if (rle.value > arrayval) { + arraypos = advanceUntil(src_1->array, arraypos, src_1->cardinality, + rle.value); + } else { + return true; + } + } + return false; +} + +/* Compute the intersection between src_1 and src_2 + **/ +bool run_bitset_container_intersect(const run_container_t *src_1, + const bitset_container_t *src_2) { + if (run_container_is_full(src_1)) { + return !bitset_container_empty(src_2); + } + for (int32_t rlepos = 0; rlepos < src_1->n_runs; ++rlepos) { + rle16_t rle = src_1->runs[rlepos]; + if (!bitset_lenrange_empty(src_2->words, rle.value, rle.length)) + return true; + } + return false; +} + +/* + * Compute the intersection between src_1 and src_2 and write the result + * to *dst. If the return function is true, the result is a bitset_container_t + * otherwise is a array_container_t. + */ +bool bitset_bitset_container_intersection(const bitset_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst) { + const int newCardinality = bitset_container_and_justcard(src_1, src_2); + if (newCardinality > DEFAULT_MAX_SIZE) { + *dst = bitset_container_create(); + if (*dst != NULL) { + bitset_container_and_nocard(src_1, src_2, CAST_bitset(*dst)); + CAST_bitset(*dst)->cardinality = newCardinality; + } + return true; // it is a bitset + } + *dst = array_container_create_given_capacity(newCardinality); + if (*dst != NULL) { + CAST_array(*dst)->cardinality = newCardinality; + bitset_extract_intersection_setbits_uint16( + src_1->words, src_2->words, BITSET_CONTAINER_SIZE_IN_WORDS, + CAST_array(*dst)->array, 0); + } + return false; // not a bitset +} + +bool bitset_bitset_container_intersection_inplace( + bitset_container_t *src_1, const bitset_container_t *src_2, + container_t **dst) { + const int newCardinality = bitset_container_and_justcard(src_1, src_2); + if (newCardinality > DEFAULT_MAX_SIZE) { + *dst = src_1; + bitset_container_and_nocard(src_1, src_2, src_1); + CAST_bitset(*dst)->cardinality = newCardinality; + return true; // it is a bitset + } + *dst = array_container_create_given_capacity(newCardinality); + if (*dst != NULL) { + CAST_array(*dst)->cardinality = newCardinality; + bitset_extract_intersection_setbits_uint16( + src_1->words, src_2->words, BITSET_CONTAINER_SIZE_IN_WORDS, + CAST_array(*dst)->array, 0); + } + return false; // not a bitset +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif diff --git a/contrib/libs/croaring/src/containers/mixed_negation.c b/contrib/libs/croaring/src/containers/mixed_negation.c new file mode 100644 index 000000000000..0ed354a837bd --- /dev/null +++ b/contrib/libs/croaring/src/containers/mixed_negation.c @@ -0,0 +1,354 @@ +/* + * mixed_negation.c + * + */ + +#include +#include + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +// TODO: make simplified and optimized negation code across +// the full range. + +/* Negation across the entire range of the container. + * Compute the negation of src and write the result + * to *dst. The complement of a + * sufficiently sparse set will always be dense and a hence a bitmap +' * We assume that dst is pre-allocated and a valid bitset container + * There can be no in-place version. + */ +void array_container_negation(const array_container_t *src, + bitset_container_t *dst) { + uint64_t card = UINT64_C(1 << 16); + bitset_container_set_all(dst); + + if (src->cardinality == 0) { + return; + } + + dst->cardinality = (int32_t)bitset_clear_list(dst->words, card, src->array, + (uint64_t)src->cardinality); +} + +/* Negation across the entire range of the container + * Compute the negation of src and write the result + * to *dst. A true return value indicates a bitset result, + * otherwise the result is an array container. + * We assume that dst is not pre-allocated. In + * case of failure, *dst will be NULL. + */ +bool bitset_container_negation(const bitset_container_t *src, + container_t **dst) { + return bitset_container_negation_range(src, 0, (1 << 16), dst); +} + +/* inplace version */ +/* + * Same as bitset_container_negation except that if the output is to + * be a + * bitset_container_t, then src is modified and no allocation is made. + * If the output is to be an array_container_t, then caller is responsible + * to free the container. + * In all cases, the result is in *dst. + */ +bool bitset_container_negation_inplace(bitset_container_t *src, + container_t **dst) { + return bitset_container_negation_range_inplace(src, 0, (1 << 16), dst); +} + +/* Negation across the entire range of container + * Compute the negation of src and write the result + * to *dst. Return values are the *_TYPECODES as defined * in containers.h + * We assume that dst is not pre-allocated. In + * case of failure, *dst will be NULL. + */ +int run_container_negation(const run_container_t *src, container_t **dst) { + return run_container_negation_range(src, 0, (1 << 16), dst); +} + +/* + * Same as run_container_negation except that if the output is to + * be a + * run_container_t, and has the capacity to hold the result, + * then src is modified and no allocation is made. + * In all cases, the result is in *dst. + */ +int run_container_negation_inplace(run_container_t *src, container_t **dst) { + return run_container_negation_range_inplace(src, 0, (1 << 16), dst); +} + +/* Negation across a range of the container. + * Compute the negation of src and write the result + * to *dst. Returns true if the result is a bitset container + * and false for an array container. *dst is not preallocated. + */ +bool array_container_negation_range(const array_container_t *src, + const int range_start, const int range_end, + container_t **dst) { + /* close port of the Java implementation */ + if (range_start >= range_end) { + *dst = array_container_clone(src); + return false; + } + + int32_t start_index = + binarySearch(src->array, src->cardinality, (uint16_t)range_start); + if (start_index < 0) start_index = -start_index - 1; + + int32_t last_index = + binarySearch(src->array, src->cardinality, (uint16_t)(range_end - 1)); + if (last_index < 0) last_index = -last_index - 2; + + const int32_t current_values_in_range = last_index - start_index + 1; + const int32_t span_to_be_flipped = range_end - range_start; + const int32_t new_values_in_range = + span_to_be_flipped - current_values_in_range; + const int32_t cardinality_change = + new_values_in_range - current_values_in_range; + const int32_t new_cardinality = src->cardinality + cardinality_change; + + if (new_cardinality > DEFAULT_MAX_SIZE) { + bitset_container_t *temp = bitset_container_from_array(src); + bitset_flip_range(temp->words, (uint32_t)range_start, + (uint32_t)range_end); + temp->cardinality = new_cardinality; + *dst = temp; + return true; + } + + array_container_t *arr = + array_container_create_given_capacity(new_cardinality); + *dst = (container_t *)arr; + if (new_cardinality == 0) { + arr->cardinality = new_cardinality; + return false; // we are done. + } + // copy stuff before the active area + memcpy(arr->array, src->array, start_index * sizeof(uint16_t)); + + // work on the range + int32_t out_pos = start_index, in_pos = start_index; + int32_t val_in_range = range_start; + for (; val_in_range < range_end && in_pos <= last_index; ++val_in_range) { + if ((uint16_t)val_in_range != src->array[in_pos]) { + arr->array[out_pos++] = (uint16_t)val_in_range; + } else { + ++in_pos; + } + } + for (; val_in_range < range_end; ++val_in_range) + arr->array[out_pos++] = (uint16_t)val_in_range; + + // content after the active range + memcpy(arr->array + out_pos, src->array + (last_index + 1), + (src->cardinality - (last_index + 1)) * sizeof(uint16_t)); + arr->cardinality = new_cardinality; + return false; +} + +/* Even when the result would fit, it is unclear how to make an + * inplace version without inefficient copying. + */ + +bool array_container_negation_range_inplace(array_container_t *src, + const int range_start, + const int range_end, + container_t **dst) { + bool ans = array_container_negation_range(src, range_start, range_end, dst); + // TODO : try a real inplace version + array_container_free(src); + return ans; +} + +/* Negation across a range of the container + * Compute the negation of src and write the result + * to *dst. A true return value indicates a bitset result, + * otherwise the result is an array container. + * We assume that dst is not pre-allocated. In + * case of failure, *dst will be NULL. + */ +bool bitset_container_negation_range(const bitset_container_t *src, + const int range_start, const int range_end, + container_t **dst) { + // TODO maybe consider density-based estimate + // and sometimes build result directly as array, with + // conversion back to bitset if wrong. Or determine + // actual result cardinality, then go directly for the known final cont. + + // keep computation using bitsets as long as possible. + bitset_container_t *t = bitset_container_clone(src); + bitset_flip_range(t->words, (uint32_t)range_start, (uint32_t)range_end); + t->cardinality = bitset_container_compute_cardinality(t); + + if (t->cardinality > DEFAULT_MAX_SIZE) { + *dst = t; + return true; + } else { + *dst = array_container_from_bitset(t); + bitset_container_free(t); + return false; + } +} + +/* inplace version */ +/* + * Same as bitset_container_negation except that if the output is to + * be a + * bitset_container_t, then src is modified and no allocation is made. + * If the output is to be an array_container_t, then caller is responsible + * to free the container. + * In all cases, the result is in *dst. + */ +bool bitset_container_negation_range_inplace(bitset_container_t *src, + const int range_start, + const int range_end, + container_t **dst) { + bitset_flip_range(src->words, (uint32_t)range_start, (uint32_t)range_end); + src->cardinality = bitset_container_compute_cardinality(src); + if (src->cardinality > DEFAULT_MAX_SIZE) { + *dst = src; + return true; + } + *dst = array_container_from_bitset(src); + bitset_container_free(src); + return false; +} + +/* Negation across a range of container + * Compute the negation of src and write the result + * to *dst. Return values are the *_TYPECODES as defined * in containers.h + * We assume that dst is not pre-allocated. In + * case of failure, *dst will be NULL. + */ +int run_container_negation_range(const run_container_t *src, + const int range_start, const int range_end, + container_t **dst) { + uint8_t return_typecode; + + // follows the Java implementation + if (range_end <= range_start) { + *dst = run_container_clone(src); + return RUN_CONTAINER_TYPE; + } + + run_container_t *ans = run_container_create_given_capacity( + src->n_runs + 1); // src->n_runs + 1); + int k = 0; + for (; k < src->n_runs && src->runs[k].value < range_start; ++k) { + ans->runs[k] = src->runs[k]; + ans->n_runs++; + } + + run_container_smart_append_exclusive( + ans, (uint16_t)range_start, (uint16_t)(range_end - range_start - 1)); + + for (; k < src->n_runs; ++k) { + run_container_smart_append_exclusive(ans, src->runs[k].value, + src->runs[k].length); + } + + *dst = convert_run_to_efficient_container(ans, &return_typecode); + if (return_typecode != RUN_CONTAINER_TYPE) run_container_free(ans); + + return return_typecode; +} + +/* + * Same as run_container_negation except that if the output is to + * be a + * run_container_t, and has the capacity to hold the result, + * then src is modified and no allocation is made. + * In all cases, the result is in *dst. + */ +int run_container_negation_range_inplace(run_container_t *src, + const int range_start, + const int range_end, + container_t **dst) { + uint8_t return_typecode; + + if (range_end <= range_start) { + *dst = src; + return RUN_CONTAINER_TYPE; + } + + // TODO: efficient special case when range is 0 to 65535 inclusive + + if (src->capacity == src->n_runs) { + // no excess room. More checking to see if result can fit + bool last_val_before_range = false; + bool first_val_in_range = false; + bool last_val_in_range = false; + bool first_val_past_range = false; + + if (range_start > 0) + last_val_before_range = + run_container_contains(src, (uint16_t)(range_start - 1)); + first_val_in_range = run_container_contains(src, (uint16_t)range_start); + + if (last_val_before_range == first_val_in_range) { + last_val_in_range = + run_container_contains(src, (uint16_t)(range_end - 1)); + if (range_end != 0x10000) + first_val_past_range = + run_container_contains(src, (uint16_t)range_end); + + if (last_val_in_range == + first_val_past_range) { // no space for inplace + int ans = run_container_negation_range(src, range_start, + range_end, dst); + run_container_free(src); + return ans; + } + } + } + // all other cases: result will fit + + run_container_t *ans = src; + int my_nbr_runs = src->n_runs; + + ans->n_runs = 0; + int k = 0; + for (; (k < my_nbr_runs) && (src->runs[k].value < range_start); ++k) { + // ans->runs[k] = src->runs[k]; (would be self-copy) + ans->n_runs++; + } + + // as with Java implementation, use locals to give self a buffer of depth 1 + rle16_t buffered = CROARING_MAKE_RLE16(0, 0); + rle16_t next = buffered; + if (k < my_nbr_runs) buffered = src->runs[k]; + + run_container_smart_append_exclusive( + ans, (uint16_t)range_start, (uint16_t)(range_end - range_start - 1)); + + for (; k < my_nbr_runs; ++k) { + if (k + 1 < my_nbr_runs) next = src->runs[k + 1]; + + run_container_smart_append_exclusive(ans, buffered.value, + buffered.length); + buffered = next; + } + + *dst = convert_run_to_efficient_container(ans, &return_typecode); + if (return_typecode != RUN_CONTAINER_TYPE) run_container_free(ans); + + return return_typecode; +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif diff --git a/contrib/libs/croaring/src/containers/mixed_subset.c b/contrib/libs/croaring/src/containers/mixed_subset.c new file mode 100644 index 000000000000..1fcf2f063dea --- /dev/null +++ b/contrib/libs/croaring/src/containers/mixed_subset.c @@ -0,0 +1,145 @@ +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +bool array_container_is_subset_bitset(const array_container_t* container1, + const bitset_container_t* container2) { + if (container2->cardinality != BITSET_UNKNOWN_CARDINALITY) { + if (container2->cardinality < container1->cardinality) { + return false; + } + } + for (int i = 0; i < container1->cardinality; ++i) { + if (!bitset_container_contains(container2, container1->array[i])) { + return false; + } + } + return true; +} + +bool run_container_is_subset_array(const run_container_t* container1, + const array_container_t* container2) { + if (run_container_cardinality(container1) > container2->cardinality) + return false; + int32_t start_pos = -1, stop_pos = -1; + for (int i = 0; i < container1->n_runs; ++i) { + int32_t start = container1->runs[i].value; + int32_t stop = start + container1->runs[i].length; + start_pos = advanceUntil(container2->array, stop_pos, + container2->cardinality, start); + stop_pos = advanceUntil(container2->array, stop_pos, + container2->cardinality, stop); + if (stop_pos == container2->cardinality) { + return false; + } else if (stop_pos - start_pos != stop - start || + container2->array[start_pos] != start || + container2->array[stop_pos] != stop) { + return false; + } + } + return true; +} + +bool array_container_is_subset_run(const array_container_t* container1, + const run_container_t* container2) { + if (container1->cardinality > run_container_cardinality(container2)) + return false; + int i_array = 0, i_run = 0; + while (i_array < container1->cardinality && i_run < container2->n_runs) { + uint32_t start = container2->runs[i_run].value; + uint32_t stop = start + container2->runs[i_run].length; + if (container1->array[i_array] < start) { + return false; + } else if (container1->array[i_array] > stop) { + i_run++; + } else { // the value of the array is in the run + i_array++; + } + } + if (i_array == container1->cardinality) { + return true; + } else { + return false; + } +} + +bool run_container_is_subset_bitset(const run_container_t* container1, + const bitset_container_t* container2) { + // todo: this code could be much faster + if (container2->cardinality != BITSET_UNKNOWN_CARDINALITY) { + if (container2->cardinality < run_container_cardinality(container1)) { + return false; + } + } else { + int32_t card = bitset_container_compute_cardinality( + container2); // modify container2? + if (card < run_container_cardinality(container1)) { + return false; + } + } + for (int i = 0; i < container1->n_runs; ++i) { + uint32_t run_start = container1->runs[i].value; + uint32_t le = container1->runs[i].length; + for (uint32_t j = run_start; j <= run_start + le; ++j) { + if (!bitset_container_contains(container2, j)) { + return false; + } + } + } + return true; +} + +bool bitset_container_is_subset_run(const bitset_container_t* container1, + const run_container_t* container2) { + // todo: this code could be much faster + if (container1->cardinality != BITSET_UNKNOWN_CARDINALITY) { + if (container1->cardinality > run_container_cardinality(container2)) { + return false; + } + } + int32_t i_bitset = 0, i_run = 0; + while (i_bitset < BITSET_CONTAINER_SIZE_IN_WORDS && + i_run < container2->n_runs) { + uint64_t w = container1->words[i_bitset]; + while (w != 0 && i_run < container2->n_runs) { + uint32_t start = container2->runs[i_run].value; + uint32_t stop = start + container2->runs[i_run].length; + uint64_t t = w & (~w + 1); + uint16_t r = i_bitset * 64 + roaring_trailing_zeroes(w); + if (r < start) { + return false; + } else if (r > stop) { + i_run++; + continue; + } else { + w ^= t; + } + } + if (w == 0) { + i_bitset++; + } else { + return false; + } + } + if (i_bitset < BITSET_CONTAINER_SIZE_IN_WORDS) { + // terminated iterating on the run containers, check that rest of bitset + // is empty + for (; i_bitset < BITSET_CONTAINER_SIZE_IN_WORDS; i_bitset++) { + if (container1->words[i_bitset] != 0) { + return false; + } + } + } + return true; +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif diff --git a/contrib/libs/croaring/src/containers/mixed_union.c b/contrib/libs/croaring/src/containers/mixed_union.c new file mode 100644 index 000000000000..9fe315395ae1 --- /dev/null +++ b/contrib/libs/croaring/src/containers/mixed_union.c @@ -0,0 +1,372 @@ +/* + * mixed_union.c + * + */ + +#include +#include + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +/* Compute the union of src_1 and src_2 and write the result to + * dst. */ +void array_bitset_container_union(const array_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst) { + if (src_2 != dst) bitset_container_copy(src_2, dst); + dst->cardinality = (int32_t)bitset_set_list_withcard( + dst->words, dst->cardinality, src_1->array, src_1->cardinality); +} + +/* Compute the union of src_1 and src_2 and write the result to + * dst. It is allowed for src_2 to be dst. This version does not + * update the cardinality of dst (it is set to BITSET_UNKNOWN_CARDINALITY). */ +void array_bitset_container_lazy_union(const array_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst) { + if (src_2 != dst) bitset_container_copy(src_2, dst); + bitset_set_list(dst->words, src_1->array, src_1->cardinality); + dst->cardinality = BITSET_UNKNOWN_CARDINALITY; +} + +void run_bitset_container_union(const run_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst) { + assert(!run_container_is_full(src_1)); // catch this case upstream + if (src_2 != dst) bitset_container_copy(src_2, dst); + for (int32_t rlepos = 0; rlepos < src_1->n_runs; ++rlepos) { + rle16_t rle = src_1->runs[rlepos]; + bitset_set_lenrange(dst->words, rle.value, rle.length); + } + dst->cardinality = bitset_container_compute_cardinality(dst); +} + +void run_bitset_container_lazy_union(const run_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst) { + assert(!run_container_is_full(src_1)); // catch this case upstream + if (src_2 != dst) bitset_container_copy(src_2, dst); + for (int32_t rlepos = 0; rlepos < src_1->n_runs; ++rlepos) { + rle16_t rle = src_1->runs[rlepos]; + bitset_set_lenrange(dst->words, rle.value, rle.length); + } + dst->cardinality = BITSET_UNKNOWN_CARDINALITY; +} + +// why do we leave the result as a run container?? +void array_run_container_union(const array_container_t *src_1, + const run_container_t *src_2, + run_container_t *dst) { + if (run_container_is_full(src_2)) { + run_container_copy(src_2, dst); + return; + } + // TODO: see whether the "2*" is spurious + run_container_grow(dst, 2 * (src_1->cardinality + src_2->n_runs), false); + int32_t rlepos = 0; + int32_t arraypos = 0; + rle16_t previousrle; + if (src_2->runs[rlepos].value <= src_1->array[arraypos]) { + previousrle = run_container_append_first(dst, src_2->runs[rlepos]); + rlepos++; + } else { + previousrle = + run_container_append_value_first(dst, src_1->array[arraypos]); + arraypos++; + } + while ((rlepos < src_2->n_runs) && (arraypos < src_1->cardinality)) { + if (src_2->runs[rlepos].value <= src_1->array[arraypos]) { + run_container_append(dst, src_2->runs[rlepos], &previousrle); + rlepos++; + } else { + run_container_append_value(dst, src_1->array[arraypos], + &previousrle); + arraypos++; + } + } + if (arraypos < src_1->cardinality) { + while (arraypos < src_1->cardinality) { + run_container_append_value(dst, src_1->array[arraypos], + &previousrle); + arraypos++; + } + } else { + while (rlepos < src_2->n_runs) { + run_container_append(dst, src_2->runs[rlepos], &previousrle); + rlepos++; + } + } +} + +void array_run_container_inplace_union(const array_container_t *src_1, + run_container_t *src_2) { + if (run_container_is_full(src_2)) { + return; + } + const int32_t maxoutput = src_1->cardinality + src_2->n_runs; + const int32_t neededcapacity = maxoutput + src_2->n_runs; + if (src_2->capacity < neededcapacity) + run_container_grow(src_2, neededcapacity, true); + memmove(src_2->runs + maxoutput, src_2->runs, + src_2->n_runs * sizeof(rle16_t)); + rle16_t *inputsrc2 = src_2->runs + maxoutput; + int32_t rlepos = 0; + int32_t arraypos = 0; + int src2nruns = src_2->n_runs; + src_2->n_runs = 0; + + rle16_t previousrle; + + if (inputsrc2[rlepos].value <= src_1->array[arraypos]) { + previousrle = run_container_append_first(src_2, inputsrc2[rlepos]); + rlepos++; + } else { + previousrle = + run_container_append_value_first(src_2, src_1->array[arraypos]); + arraypos++; + } + + while ((rlepos < src2nruns) && (arraypos < src_1->cardinality)) { + if (inputsrc2[rlepos].value <= src_1->array[arraypos]) { + run_container_append(src_2, inputsrc2[rlepos], &previousrle); + rlepos++; + } else { + run_container_append_value(src_2, src_1->array[arraypos], + &previousrle); + arraypos++; + } + } + if (arraypos < src_1->cardinality) { + while (arraypos < src_1->cardinality) { + run_container_append_value(src_2, src_1->array[arraypos], + &previousrle); + arraypos++; + } + } else { + while (rlepos < src2nruns) { + run_container_append(src_2, inputsrc2[rlepos], &previousrle); + rlepos++; + } + } +} + +bool array_array_container_union(const array_container_t *src_1, + const array_container_t *src_2, + container_t **dst) { + int totalCardinality = src_1->cardinality + src_2->cardinality; + if (totalCardinality <= DEFAULT_MAX_SIZE) { + *dst = array_container_create_given_capacity(totalCardinality); + if (*dst != NULL) { + array_container_union(src_1, src_2, CAST_array(*dst)); + } else { + return true; // otherwise failure won't be caught + } + return false; // not a bitset + } + *dst = bitset_container_create(); + bool returnval = true; // expect a bitset + if (*dst != NULL) { + bitset_container_t *ourbitset = CAST_bitset(*dst); + bitset_set_list(ourbitset->words, src_1->array, src_1->cardinality); + ourbitset->cardinality = (int32_t)bitset_set_list_withcard( + ourbitset->words, src_1->cardinality, src_2->array, + src_2->cardinality); + if (ourbitset->cardinality <= DEFAULT_MAX_SIZE) { + // need to convert! + *dst = array_container_from_bitset(ourbitset); + bitset_container_free(ourbitset); + returnval = false; // not going to be a bitset + } + } + return returnval; +} + +bool array_array_container_inplace_union(array_container_t *src_1, + const array_container_t *src_2, + container_t **dst) { + int totalCardinality = src_1->cardinality + src_2->cardinality; + *dst = NULL; + if (totalCardinality <= DEFAULT_MAX_SIZE) { + if (src_1->capacity < totalCardinality) { + *dst = array_container_create_given_capacity( + 2 * totalCardinality); // be purposefully generous + if (*dst != NULL) { + array_container_union(src_1, src_2, CAST_array(*dst)); + } else { + return true; // otherwise failure won't be caught + } + return false; // not a bitset + } else { + memmove(src_1->array + src_2->cardinality, src_1->array, + src_1->cardinality * sizeof(uint16_t)); + // In theory, we could use fast_union_uint16, but it is unsafe. It + // fails with Intel compilers in particular. + // https://github.com/RoaringBitmap/CRoaring/pull/452 + // See report https://github.com/RoaringBitmap/CRoaring/issues/476 + src_1->cardinality = (int32_t)union_uint16( + src_1->array + src_2->cardinality, src_1->cardinality, + src_2->array, src_2->cardinality, src_1->array); + return false; // not a bitset + } + } + *dst = bitset_container_create(); + bool returnval = true; // expect a bitset + if (*dst != NULL) { + bitset_container_t *ourbitset = CAST_bitset(*dst); + bitset_set_list(ourbitset->words, src_1->array, src_1->cardinality); + ourbitset->cardinality = (int32_t)bitset_set_list_withcard( + ourbitset->words, src_1->cardinality, src_2->array, + src_2->cardinality); + if (ourbitset->cardinality <= DEFAULT_MAX_SIZE) { + // need to convert! + if (src_1->capacity < ourbitset->cardinality) { + array_container_grow(src_1, ourbitset->cardinality, false); + } + + bitset_extract_setbits_uint16(ourbitset->words, + BITSET_CONTAINER_SIZE_IN_WORDS, + src_1->array, 0); + src_1->cardinality = ourbitset->cardinality; + *dst = src_1; + bitset_container_free(ourbitset); + returnval = false; // not going to be a bitset + } + } + return returnval; +} + +bool array_array_container_lazy_union(const array_container_t *src_1, + const array_container_t *src_2, + container_t **dst) { + int totalCardinality = src_1->cardinality + src_2->cardinality; + // + // We assume that operations involving bitset containers will be faster than + // operations involving solely array containers, except maybe when array + // containers are small. Indeed, for example, it is cheap to compute the + // union between an array and a bitset container, generally more so than + // between a large array and another array. So it is advantageous to favour + // bitset containers during the computation. Of course, if we convert array + // containers eagerly to bitset containers, we may later need to revert the + // bitset containers to array containerr to satisfy the Roaring format + // requirements, but such one-time conversions at the end may not be overly + // expensive. We arrived to this design based on extensive benchmarking. + // + if (totalCardinality <= ARRAY_LAZY_LOWERBOUND) { + *dst = array_container_create_given_capacity(totalCardinality); + if (*dst != NULL) { + array_container_union(src_1, src_2, CAST_array(*dst)); + } else { + return true; // otherwise failure won't be caught + } + return false; // not a bitset + } + *dst = bitset_container_create(); + bool returnval = true; // expect a bitset + if (*dst != NULL) { + bitset_container_t *ourbitset = CAST_bitset(*dst); + bitset_set_list(ourbitset->words, src_1->array, src_1->cardinality); + bitset_set_list(ourbitset->words, src_2->array, src_2->cardinality); + ourbitset->cardinality = BITSET_UNKNOWN_CARDINALITY; + } + return returnval; +} + +bool array_array_container_lazy_inplace_union(array_container_t *src_1, + const array_container_t *src_2, + container_t **dst) { + int totalCardinality = src_1->cardinality + src_2->cardinality; + *dst = NULL; + // + // We assume that operations involving bitset containers will be faster than + // operations involving solely array containers, except maybe when array + // containers are small. Indeed, for example, it is cheap to compute the + // union between an array and a bitset container, generally more so than + // between a large array and another array. So it is advantageous to favour + // bitset containers during the computation. Of course, if we convert array + // containers eagerly to bitset containers, we may later need to revert the + // bitset containers to array containerr to satisfy the Roaring format + // requirements, but such one-time conversions at the end may not be overly + // expensive. We arrived to this design based on extensive benchmarking. + // + if (totalCardinality <= ARRAY_LAZY_LOWERBOUND) { + if (src_1->capacity < totalCardinality) { + *dst = array_container_create_given_capacity( + 2 * totalCardinality); // be purposefully generous + if (*dst != NULL) { + array_container_union(src_1, src_2, CAST_array(*dst)); + } else { + return true; // otherwise failure won't be caught + } + return false; // not a bitset + } else { + memmove(src_1->array + src_2->cardinality, src_1->array, + src_1->cardinality * sizeof(uint16_t)); + /* + Next line is safe: + + We just need to focus on the reading and writing performed on + array1. In `union_vector16`, both vectorized and scalar code still + obey the basic rule: read from two inputs, do the union, and then + write the output. + + Let's say the length(cardinality) of input2 is L2: + ``` + |<- L2 ->| + array1: [output--- |input 1---|---] + array2: [input 2---] + ``` + Let's define 3 __m128i pointers, `pos1` starts from `input1`, + `pos2` starts from `input2`, these 2 point at the next byte to + read, `out` starts from `output`, pointing at the next byte to + overwrite. + ``` + array1: [output--- |input 1---|---] + ^ ^ + out pos1 + array2: [input 2---] + ^ + pos2 + ``` + The union output always contains less or equal number of elements + than all inputs added, so we have: + ``` + out <= pos1 + pos2 + ``` + therefore: + ``` + out <= pos1 + L2 + ``` + which means you will not overwrite data beyond pos1, so the data + haven't read is safe, and we don't care the data already read. + */ + src_1->cardinality = (int32_t)fast_union_uint16( + src_1->array + src_2->cardinality, src_1->cardinality, + src_2->array, src_2->cardinality, src_1->array); + return false; // not a bitset + } + } + *dst = bitset_container_create(); + bool returnval = true; // expect a bitset + if (*dst != NULL) { + bitset_container_t *ourbitset = CAST_bitset(*dst); + bitset_set_list(ourbitset->words, src_1->array, src_1->cardinality); + bitset_set_list(ourbitset->words, src_2->array, src_2->cardinality); + ourbitset->cardinality = BITSET_UNKNOWN_CARDINALITY; + } + return returnval; +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif diff --git a/contrib/libs/croaring/src/containers/mixed_xor.c b/contrib/libs/croaring/src/containers/mixed_xor.c new file mode 100644 index 000000000000..ad23aa336647 --- /dev/null +++ b/contrib/libs/croaring/src/containers/mixed_xor.c @@ -0,0 +1,385 @@ +/* + * mixed_xor.c + */ + +#include +#include + +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +/* Compute the xor of src_1 and src_2 and write the result to + * dst (which has no container initially). + * Result is true iff dst is a bitset */ +bool array_bitset_container_xor(const array_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst) { + bitset_container_t *result = bitset_container_create(); + bitset_container_copy(src_2, result); + result->cardinality = (int32_t)bitset_flip_list_withcard( + result->words, result->cardinality, src_1->array, src_1->cardinality); + + // do required type conversions. + if (result->cardinality <= DEFAULT_MAX_SIZE) { + *dst = array_container_from_bitset(result); + bitset_container_free(result); + return false; // not bitset + } + *dst = result; + return true; // bitset +} + +/* Compute the xor of src_1 and src_2 and write the result to + * dst. It is allowed for src_2 to be dst. This version does not + * update the cardinality of dst (it is set to BITSET_UNKNOWN_CARDINALITY). + */ + +void array_bitset_container_lazy_xor(const array_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst) { + if (src_2 != dst) bitset_container_copy(src_2, dst); + bitset_flip_list(dst->words, src_1->array, src_1->cardinality); + dst->cardinality = BITSET_UNKNOWN_CARDINALITY; +} + +/* Compute the xor of src_1 and src_2 and write the result to + * dst. Result may be either a bitset or an array container + * (returns "result is bitset"). dst does not initially have + * any container, but becomes either a bitset container (return + * result true) or an array container. + */ + +bool run_bitset_container_xor(const run_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst) { + bitset_container_t *result = bitset_container_create(); + + bitset_container_copy(src_2, result); + for (int32_t rlepos = 0; rlepos < src_1->n_runs; ++rlepos) { + rle16_t rle = src_1->runs[rlepos]; + bitset_flip_range(result->words, rle.value, + rle.value + rle.length + UINT32_C(1)); + } + result->cardinality = bitset_container_compute_cardinality(result); + + if (result->cardinality <= DEFAULT_MAX_SIZE) { + *dst = array_container_from_bitset(result); + bitset_container_free(result); + return false; // not bitset + } + *dst = result; + return true; // bitset +} + +/* lazy xor. Dst is initialized and may be equal to src_2. + * Result is left as a bitset container, even if actual + * cardinality would dictate an array container. + */ + +void run_bitset_container_lazy_xor(const run_container_t *src_1, + const bitset_container_t *src_2, + bitset_container_t *dst) { + if (src_2 != dst) bitset_container_copy(src_2, dst); + for (int32_t rlepos = 0; rlepos < src_1->n_runs; ++rlepos) { + rle16_t rle = src_1->runs[rlepos]; + bitset_flip_range(dst->words, rle.value, + rle.value + rle.length + UINT32_C(1)); + } + dst->cardinality = BITSET_UNKNOWN_CARDINALITY; +} + +/* dst does not indicate a valid container initially. Eventually it + * can become any kind of container. + */ + +int array_run_container_xor(const array_container_t *src_1, + const run_container_t *src_2, container_t **dst) { + // semi following Java XOR implementation as of May 2016 + // the C OR implementation works quite differently and can return a run + // container + // TODO could optimize for full run containers. + + // use of lazy following Java impl. + const int arbitrary_threshold = 32; + if (src_1->cardinality < arbitrary_threshold) { + run_container_t *ans = run_container_create(); + array_run_container_lazy_xor(src_1, src_2, ans); // keeps runs. + uint8_t typecode_after; + *dst = + convert_run_to_efficient_container_and_free(ans, &typecode_after); + return typecode_after; + } + + int card = run_container_cardinality(src_2); + if (card <= DEFAULT_MAX_SIZE) { + // Java implementation works with the array, xoring the run elements via + // iterator + array_container_t *temp = array_container_from_run(src_2); + bool ret_is_bitset = array_array_container_xor(temp, src_1, dst); + array_container_free(temp); + return ret_is_bitset ? BITSET_CONTAINER_TYPE : ARRAY_CONTAINER_TYPE; + + } else { // guess that it will end up as a bitset + bitset_container_t *result = bitset_container_from_run(src_2); + bool is_bitset = bitset_array_container_ixor(result, src_1, dst); + // any necessary type conversion has been done by the ixor + int retval = (is_bitset ? BITSET_CONTAINER_TYPE : ARRAY_CONTAINER_TYPE); + return retval; + } +} + +/* Dst is a valid run container. (Can it be src_2? Let's say not.) + * Leaves result as run container, even if other options are + * smaller. + */ + +void array_run_container_lazy_xor(const array_container_t *src_1, + const run_container_t *src_2, + run_container_t *dst) { + run_container_grow(dst, src_1->cardinality + src_2->n_runs, false); + int32_t rlepos = 0; + int32_t arraypos = 0; + dst->n_runs = 0; + + while ((rlepos < src_2->n_runs) && (arraypos < src_1->cardinality)) { + if (src_2->runs[rlepos].value <= src_1->array[arraypos]) { + run_container_smart_append_exclusive(dst, src_2->runs[rlepos].value, + src_2->runs[rlepos].length); + rlepos++; + } else { + run_container_smart_append_exclusive(dst, src_1->array[arraypos], + 0); + arraypos++; + } + } + while (arraypos < src_1->cardinality) { + run_container_smart_append_exclusive(dst, src_1->array[arraypos], 0); + arraypos++; + } + while (rlepos < src_2->n_runs) { + run_container_smart_append_exclusive(dst, src_2->runs[rlepos].value, + src_2->runs[rlepos].length); + rlepos++; + } +} + +/* dst does not indicate a valid container initially. Eventually it + * can become any kind of container. + */ + +int run_run_container_xor(const run_container_t *src_1, + const run_container_t *src_2, container_t **dst) { + run_container_t *ans = run_container_create(); + run_container_xor(src_1, src_2, ans); + uint8_t typecode_after; + *dst = convert_run_to_efficient_container_and_free(ans, &typecode_after); + return typecode_after; +} + +/* + * Java implementation (as of May 2016) for array_run, run_run + * and bitset_run don't do anything different for inplace. + * Could adopt the mixed_union.c approach instead (ie, using + * smart_append_exclusive) + * + */ + +bool array_array_container_xor(const array_container_t *src_1, + const array_container_t *src_2, + container_t **dst) { + int totalCardinality = + src_1->cardinality + src_2->cardinality; // upper bound + if (totalCardinality <= DEFAULT_MAX_SIZE) { + *dst = array_container_create_given_capacity(totalCardinality); + array_container_xor(src_1, src_2, CAST_array(*dst)); + return false; // not a bitset + } + *dst = bitset_container_from_array(src_1); + bool returnval = true; // expect a bitset + bitset_container_t *ourbitset = CAST_bitset(*dst); + ourbitset->cardinality = (uint32_t)bitset_flip_list_withcard( + ourbitset->words, src_1->cardinality, src_2->array, src_2->cardinality); + if (ourbitset->cardinality <= DEFAULT_MAX_SIZE) { + // need to convert! + *dst = array_container_from_bitset(ourbitset); + bitset_container_free(ourbitset); + returnval = false; // not going to be a bitset + } + + return returnval; +} + +bool array_array_container_lazy_xor(const array_container_t *src_1, + const array_container_t *src_2, + container_t **dst) { + int totalCardinality = src_1->cardinality + src_2->cardinality; + // + // We assume that operations involving bitset containers will be faster than + // operations involving solely array containers, except maybe when array + // containers are small. Indeed, for example, it is cheap to compute the + // exclusive union between an array and a bitset container, generally more + // so than between a large array and another array. So it is advantageous to + // favour bitset containers during the computation. Of course, if we convert + // array containers eagerly to bitset containers, we may later need to + // revert the bitset containers to array containerr to satisfy the Roaring + // format requirements, but such one-time conversions at the end may not be + // overly expensive. We arrived to this design based on extensive + // benchmarking on unions. For XOR/exclusive union, we simply followed the + // heuristic used by the unions (see mixed_union.c). Further tuning is + // possible. + // + if (totalCardinality <= ARRAY_LAZY_LOWERBOUND) { + *dst = array_container_create_given_capacity(totalCardinality); + if (*dst != NULL) array_container_xor(src_1, src_2, CAST_array(*dst)); + return false; // not a bitset + } + *dst = bitset_container_from_array(src_1); + bool returnval = true; // expect a bitset (maybe, for XOR??) + if (*dst != NULL) { + bitset_container_t *ourbitset = CAST_bitset(*dst); + bitset_flip_list(ourbitset->words, src_2->array, src_2->cardinality); + ourbitset->cardinality = BITSET_UNKNOWN_CARDINALITY; + } + return returnval; +} + +/* Compute the xor of src_1 and src_2 and write the result to + * dst (which has no container initially). Return value is + * "dst is a bitset" + */ + +bool bitset_bitset_container_xor(const bitset_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst) { + bitset_container_t *ans = bitset_container_create(); + int card = bitset_container_xor(src_1, src_2, ans); + if (card <= DEFAULT_MAX_SIZE) { + *dst = array_container_from_bitset(ans); + bitset_container_free(ans); + return false; // not bitset + } else { + *dst = ans; + return true; + } +} + +/* Compute the xor of src_1 and src_2 and write the result to + * dst (which has no container initially). It will modify src_1 + * to be dst if the result is a bitset. Otherwise, it will + * free src_1 and dst will be a new array container. In both + * cases, the caller is responsible for deallocating dst. + * Returns true iff dst is a bitset */ + +bool bitset_array_container_ixor(bitset_container_t *src_1, + const array_container_t *src_2, + container_t **dst) { + *dst = src_1; + src_1->cardinality = (uint32_t)bitset_flip_list_withcard( + src_1->words, src_1->cardinality, src_2->array, src_2->cardinality); + + if (src_1->cardinality <= DEFAULT_MAX_SIZE) { + *dst = array_container_from_bitset(src_1); + bitset_container_free(src_1); + return false; // not bitset + } else + return true; +} + +/* a bunch of in-place, some of which may not *really* be inplace. + * TODO: write actual inplace routine if efficiency warrants it + * Anything inplace with a bitset is a good candidate + */ + +bool bitset_bitset_container_ixor(bitset_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst) { + int card = bitset_container_xor(src_1, src_2, src_1); + if (card <= DEFAULT_MAX_SIZE) { + *dst = array_container_from_bitset(src_1); + bitset_container_free(src_1); + return false; // not bitset + } else { + *dst = src_1; + return true; + } +} + +bool array_bitset_container_ixor(array_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst) { + bool ans = array_bitset_container_xor(src_1, src_2, dst); + array_container_free(src_1); + return ans; +} + +/* Compute the xor of src_1 and src_2 and write the result to + * dst. Result may be either a bitset or an array container + * (returns "result is bitset"). dst does not initially have + * any container, but becomes either a bitset container (return + * result true) or an array container. + */ + +bool run_bitset_container_ixor(run_container_t *src_1, + const bitset_container_t *src_2, + container_t **dst) { + bool ans = run_bitset_container_xor(src_1, src_2, dst); + run_container_free(src_1); + return ans; +} + +bool bitset_run_container_ixor(bitset_container_t *src_1, + const run_container_t *src_2, + container_t **dst) { + bool ans = run_bitset_container_xor(src_2, src_1, dst); + bitset_container_free(src_1); + return ans; +} + +/* dst does not indicate a valid container initially. Eventually it + * can become any kind of container. + */ + +int array_run_container_ixor(array_container_t *src_1, + const run_container_t *src_2, container_t **dst) { + int ans = array_run_container_xor(src_1, src_2, dst); + array_container_free(src_1); + return ans; +} + +int run_array_container_ixor(run_container_t *src_1, + const array_container_t *src_2, + container_t **dst) { + int ans = array_run_container_xor(src_2, src_1, dst); + run_container_free(src_1); + return ans; +} + +bool array_array_container_ixor(array_container_t *src_1, + const array_container_t *src_2, + container_t **dst) { + bool ans = array_array_container_xor(src_1, src_2, dst); + array_container_free(src_1); + return ans; +} + +int run_run_container_ixor(run_container_t *src_1, const run_container_t *src_2, + container_t **dst) { + int ans = run_run_container_xor(src_1, src_2, dst); + run_container_free(src_1); + return ans; +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif diff --git a/contrib/libs/croaring/src/containers/run.c b/contrib/libs/croaring/src/containers/run.c new file mode 100644 index 000000000000..0d6472643446 --- /dev/null +++ b/contrib/libs/croaring/src/containers/run.c @@ -0,0 +1,1083 @@ +#include +#include + +#include +#include +#include + +#if CROARING_IS_X64 +#ifndef CROARING_COMPILER_SUPPORTS_AVX512 +#error "CROARING_COMPILER_SUPPORTS_AVX512 needs to be defined." +#endif // CROARING_COMPILER_SUPPORTS_AVX512 +#endif +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wuninitialized" +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +extern inline uint16_t run_container_minimum(const run_container_t *run); +extern inline uint16_t run_container_maximum(const run_container_t *run); +extern inline int32_t interleavedBinarySearch(const rle16_t *array, + int32_t lenarray, uint16_t ikey); +extern inline bool run_container_contains(const run_container_t *run, + uint16_t pos); +extern inline int run_container_index_equalorlarger(const run_container_t *arr, + uint16_t x); +extern inline bool run_container_is_full(const run_container_t *run); +extern inline bool run_container_nonzero_cardinality(const run_container_t *rc); +extern inline int32_t run_container_serialized_size_in_bytes(int32_t num_runs); +extern inline run_container_t *run_container_create_range(uint32_t start, + uint32_t stop); +extern inline int run_container_cardinality(const run_container_t *run); + +bool run_container_add(run_container_t *run, uint16_t pos) { + int32_t index = interleavedBinarySearch(run->runs, run->n_runs, pos); + if (index >= 0) return false; // already there + index = -index - 2; // points to preceding value, possibly -1 + if (index >= 0) { // possible match + int32_t offset = pos - run->runs[index].value; + int32_t le = run->runs[index].length; + if (offset <= le) return false; // already there + if (offset == le + 1) { + // we may need to fuse + if (index + 1 < run->n_runs) { + if (run->runs[index + 1].value == pos + 1) { + // indeed fusion is needed + run->runs[index].length = run->runs[index + 1].value + + run->runs[index + 1].length - + run->runs[index].value; + recoverRoomAtIndex(run, (uint16_t)(index + 1)); + return true; + } + } + run->runs[index].length++; + return true; + } + if (index + 1 < run->n_runs) { + // we may need to fuse + if (run->runs[index + 1].value == pos + 1) { + // indeed fusion is needed + run->runs[index + 1].value = pos; + run->runs[index + 1].length = run->runs[index + 1].length + 1; + return true; + } + } + } + if (index == -1) { + // we may need to extend the first run + if (0 < run->n_runs) { + if (run->runs[0].value == pos + 1) { + run->runs[0].length++; + run->runs[0].value--; + return true; + } + } + } + makeRoomAtIndex(run, (uint16_t)(index + 1)); + run->runs[index + 1].value = pos; + run->runs[index + 1].length = 0; + return true; +} + +/* Create a new run container. Return NULL in case of failure. */ +run_container_t *run_container_create_given_capacity(int32_t size) { + run_container_t *run; + /* Allocate the run container itself. */ + if ((run = (run_container_t *)roaring_malloc(sizeof(run_container_t))) == + NULL) { + return NULL; + } + if (size <= 0) { // we don't want to rely on malloc(0) + run->runs = NULL; + } else if ((run->runs = (rle16_t *)roaring_malloc(sizeof(rle16_t) * + size)) == NULL) { + roaring_free(run); + return NULL; + } + run->capacity = size; + run->n_runs = 0; + return run; +} + +int run_container_shrink_to_fit(run_container_t *src) { + if (src->n_runs == src->capacity) return 0; // nothing to do + int savings = src->capacity - src->n_runs; + src->capacity = src->n_runs; + rle16_t *oldruns = src->runs; + src->runs = + (rle16_t *)roaring_realloc(oldruns, src->capacity * sizeof(rle16_t)); + if (src->runs == NULL) roaring_free(oldruns); // should never happen? + return savings; +} +/* Create a new run container. Return NULL in case of failure. */ +run_container_t *run_container_create(void) { + return run_container_create_given_capacity(RUN_DEFAULT_INIT_SIZE); +} + +ALLOW_UNALIGNED +run_container_t *run_container_clone(const run_container_t *src) { + run_container_t *run = run_container_create_given_capacity(src->capacity); + if (run == NULL) return NULL; + run->capacity = src->capacity; + run->n_runs = src->n_runs; + memcpy(run->runs, src->runs, src->n_runs * sizeof(rle16_t)); + return run; +} + +void run_container_offset(const run_container_t *c, container_t **loc, + container_t **hic, uint16_t offset) { + run_container_t *lo = NULL, *hi = NULL; + + bool split; + int lo_cap, hi_cap; + int top, pivot; + + top = (1 << 16) - offset; + pivot = run_container_index_equalorlarger(c, top); + + if (pivot == -1) { + split = false; + lo_cap = c->n_runs; + hi_cap = 0; + } else { + split = c->runs[pivot].value < top; + lo_cap = pivot + (split ? 1 : 0); + hi_cap = c->n_runs - pivot; + } + + if (loc && lo_cap) { + lo = run_container_create_given_capacity(lo_cap); + memcpy(lo->runs, c->runs, lo_cap * sizeof(rle16_t)); + lo->n_runs = lo_cap; + for (int i = 0; i < lo_cap; ++i) { + lo->runs[i].value += offset; + } + *loc = (container_t *)lo; + } + + if (hic && hi_cap) { + hi = run_container_create_given_capacity(hi_cap); + memcpy(hi->runs, c->runs + pivot, hi_cap * sizeof(rle16_t)); + hi->n_runs = hi_cap; + for (int i = 0; i < hi_cap; ++i) { + hi->runs[i].value += offset; + } + *hic = (container_t *)hi; + } + + // Fix the split. + if (split) { + if (lo != NULL) { + // Add the missing run to 'lo', exhausting length. + lo->runs[lo->n_runs - 1].length = + (1 << 16) - lo->runs[lo->n_runs - 1].value - 1; + } + + if (hi != NULL) { + // Fix the first run in 'hi'. + hi->runs[0].length -= UINT16_MAX - hi->runs[0].value + 1; + hi->runs[0].value = 0; + } + } +} + +/* Free memory. */ +void run_container_free(run_container_t *run) { + if (run->runs != + NULL) { // Jon Strabala reports that some tools complain otherwise + roaring_free(run->runs); + run->runs = NULL; // pedantic + } + roaring_free(run); +} + +void run_container_grow(run_container_t *run, int32_t min, bool copy) { + int32_t newCapacity = (run->capacity == 0) ? RUN_DEFAULT_INIT_SIZE + : run->capacity < 64 ? run->capacity * 2 + : run->capacity < 1024 ? run->capacity * 3 / 2 + : run->capacity * 5 / 4; + if (newCapacity < min) newCapacity = min; + run->capacity = newCapacity; + assert(run->capacity >= min); + if (copy) { + rle16_t *oldruns = run->runs; + run->runs = (rle16_t *)roaring_realloc(oldruns, + run->capacity * sizeof(rle16_t)); + if (run->runs == NULL) roaring_free(oldruns); + } else { + // Jon Strabala reports that some tools complain otherwise + if (run->runs != NULL) { + roaring_free(run->runs); + } + run->runs = (rle16_t *)roaring_malloc(run->capacity * sizeof(rle16_t)); + } + // We may have run->runs == NULL. +} + +/* copy one container into another */ +void run_container_copy(const run_container_t *src, run_container_t *dst) { + const int32_t n_runs = src->n_runs; + if (src->n_runs > dst->capacity) { + run_container_grow(dst, n_runs, false); + } + dst->n_runs = n_runs; + memcpy(dst->runs, src->runs, sizeof(rle16_t) * n_runs); +} + +/* Compute the union of `src_1' and `src_2' and write the result to `dst' + * It is assumed that `dst' is distinct from both `src_1' and `src_2'. */ +void run_container_union(const run_container_t *src_1, + const run_container_t *src_2, run_container_t *dst) { + // TODO: this could be a lot more efficient + + // we start out with inexpensive checks + const bool if1 = run_container_is_full(src_1); + const bool if2 = run_container_is_full(src_2); + if (if1 || if2) { + if (if1) { + run_container_copy(src_1, dst); + return; + } + if (if2) { + run_container_copy(src_2, dst); + return; + } + } + const int32_t neededcapacity = src_1->n_runs + src_2->n_runs; + if (dst->capacity < neededcapacity) + run_container_grow(dst, neededcapacity, false); + dst->n_runs = 0; + int32_t rlepos = 0; + int32_t xrlepos = 0; + + rle16_t previousrle; + if (src_1->runs[rlepos].value <= src_2->runs[xrlepos].value) { + previousrle = run_container_append_first(dst, src_1->runs[rlepos]); + rlepos++; + } else { + previousrle = run_container_append_first(dst, src_2->runs[xrlepos]); + xrlepos++; + } + + while ((xrlepos < src_2->n_runs) && (rlepos < src_1->n_runs)) { + rle16_t newrl; + if (src_1->runs[rlepos].value <= src_2->runs[xrlepos].value) { + newrl = src_1->runs[rlepos]; + rlepos++; + } else { + newrl = src_2->runs[xrlepos]; + xrlepos++; + } + run_container_append(dst, newrl, &previousrle); + } + while (xrlepos < src_2->n_runs) { + run_container_append(dst, src_2->runs[xrlepos], &previousrle); + xrlepos++; + } + while (rlepos < src_1->n_runs) { + run_container_append(dst, src_1->runs[rlepos], &previousrle); + rlepos++; + } +} + +/* Compute the union of `src_1' and `src_2' and write the result to `src_1' + */ +void run_container_union_inplace(run_container_t *src_1, + const run_container_t *src_2) { + // TODO: this could be a lot more efficient + + // we start out with inexpensive checks + const bool if1 = run_container_is_full(src_1); + const bool if2 = run_container_is_full(src_2); + if (if1 || if2) { + if (if1) { + return; + } + if (if2) { + run_container_copy(src_2, src_1); + return; + } + } + // we move the data to the end of the current array + const int32_t maxoutput = src_1->n_runs + src_2->n_runs; + const int32_t neededcapacity = maxoutput + src_1->n_runs; + if (src_1->capacity < neededcapacity) + run_container_grow(src_1, neededcapacity, true); + memmove(src_1->runs + maxoutput, src_1->runs, + src_1->n_runs * sizeof(rle16_t)); + rle16_t *inputsrc1 = src_1->runs + maxoutput; + const int32_t input1nruns = src_1->n_runs; + src_1->n_runs = 0; + int32_t rlepos = 0; + int32_t xrlepos = 0; + + rle16_t previousrle; + if (inputsrc1[rlepos].value <= src_2->runs[xrlepos].value) { + previousrle = run_container_append_first(src_1, inputsrc1[rlepos]); + rlepos++; + } else { + previousrle = run_container_append_first(src_1, src_2->runs[xrlepos]); + xrlepos++; + } + while ((xrlepos < src_2->n_runs) && (rlepos < input1nruns)) { + rle16_t newrl; + if (inputsrc1[rlepos].value <= src_2->runs[xrlepos].value) { + newrl = inputsrc1[rlepos]; + rlepos++; + } else { + newrl = src_2->runs[xrlepos]; + xrlepos++; + } + run_container_append(src_1, newrl, &previousrle); + } + while (xrlepos < src_2->n_runs) { + run_container_append(src_1, src_2->runs[xrlepos], &previousrle); + xrlepos++; + } + while (rlepos < input1nruns) { + run_container_append(src_1, inputsrc1[rlepos], &previousrle); + rlepos++; + } +} + +/* Compute the symmetric difference of `src_1' and `src_2' and write the result + * to `dst' + * It is assumed that `dst' is distinct from both `src_1' and `src_2'. */ +void run_container_xor(const run_container_t *src_1, + const run_container_t *src_2, run_container_t *dst) { + // don't bother to convert xor with full range into negation + // since negation is implemented similarly + + const int32_t neededcapacity = src_1->n_runs + src_2->n_runs; + if (dst->capacity < neededcapacity) + run_container_grow(dst, neededcapacity, false); + + int32_t pos1 = 0; + int32_t pos2 = 0; + dst->n_runs = 0; + + while ((pos1 < src_1->n_runs) && (pos2 < src_2->n_runs)) { + if (src_1->runs[pos1].value <= src_2->runs[pos2].value) { + run_container_smart_append_exclusive(dst, src_1->runs[pos1].value, + src_1->runs[pos1].length); + pos1++; + } else { + run_container_smart_append_exclusive(dst, src_2->runs[pos2].value, + src_2->runs[pos2].length); + pos2++; + } + } + while (pos1 < src_1->n_runs) { + run_container_smart_append_exclusive(dst, src_1->runs[pos1].value, + src_1->runs[pos1].length); + pos1++; + } + + while (pos2 < src_2->n_runs) { + run_container_smart_append_exclusive(dst, src_2->runs[pos2].value, + src_2->runs[pos2].length); + pos2++; + } +} + +/* Compute the intersection of src_1 and src_2 and write the result to + * dst. It is assumed that dst is distinct from both src_1 and src_2. */ +void run_container_intersection(const run_container_t *src_1, + const run_container_t *src_2, + run_container_t *dst) { + const bool if1 = run_container_is_full(src_1); + const bool if2 = run_container_is_full(src_2); + if (if1 || if2) { + if (if1) { + run_container_copy(src_2, dst); + return; + } + if (if2) { + run_container_copy(src_1, dst); + return; + } + } + // TODO: this could be a lot more efficient, could use SIMD optimizations + const int32_t neededcapacity = src_1->n_runs + src_2->n_runs; + if (dst->capacity < neededcapacity) + run_container_grow(dst, neededcapacity, false); + dst->n_runs = 0; + int32_t rlepos = 0; + int32_t xrlepos = 0; + int32_t start = src_1->runs[rlepos].value; + int32_t end = start + src_1->runs[rlepos].length + 1; + int32_t xstart = src_2->runs[xrlepos].value; + int32_t xend = xstart + src_2->runs[xrlepos].length + 1; + while ((rlepos < src_1->n_runs) && (xrlepos < src_2->n_runs)) { + if (end <= xstart) { + ++rlepos; + if (rlepos < src_1->n_runs) { + start = src_1->runs[rlepos].value; + end = start + src_1->runs[rlepos].length + 1; + } + } else if (xend <= start) { + ++xrlepos; + if (xrlepos < src_2->n_runs) { + xstart = src_2->runs[xrlepos].value; + xend = xstart + src_2->runs[xrlepos].length + 1; + } + } else { // they overlap + const int32_t lateststart = start > xstart ? start : xstart; + int32_t earliestend; + if (end == xend) { // improbable + earliestend = end; + rlepos++; + xrlepos++; + if (rlepos < src_1->n_runs) { + start = src_1->runs[rlepos].value; + end = start + src_1->runs[rlepos].length + 1; + } + if (xrlepos < src_2->n_runs) { + xstart = src_2->runs[xrlepos].value; + xend = xstart + src_2->runs[xrlepos].length + 1; + } + } else if (end < xend) { + earliestend = end; + rlepos++; + if (rlepos < src_1->n_runs) { + start = src_1->runs[rlepos].value; + end = start + src_1->runs[rlepos].length + 1; + } + + } else { // end > xend + earliestend = xend; + xrlepos++; + if (xrlepos < src_2->n_runs) { + xstart = src_2->runs[xrlepos].value; + xend = xstart + src_2->runs[xrlepos].length + 1; + } + } + dst->runs[dst->n_runs].value = (uint16_t)lateststart; + dst->runs[dst->n_runs].length = + (uint16_t)(earliestend - lateststart - 1); + dst->n_runs++; + } + } +} + +/* Compute the size of the intersection of src_1 and src_2 . */ +int run_container_intersection_cardinality(const run_container_t *src_1, + const run_container_t *src_2) { + const bool if1 = run_container_is_full(src_1); + const bool if2 = run_container_is_full(src_2); + if (if1 || if2) { + if (if1) { + return run_container_cardinality(src_2); + } + if (if2) { + return run_container_cardinality(src_1); + } + } + int answer = 0; + int32_t rlepos = 0; + int32_t xrlepos = 0; + int32_t start = src_1->runs[rlepos].value; + int32_t end = start + src_1->runs[rlepos].length + 1; + int32_t xstart = src_2->runs[xrlepos].value; + int32_t xend = xstart + src_2->runs[xrlepos].length + 1; + while ((rlepos < src_1->n_runs) && (xrlepos < src_2->n_runs)) { + if (end <= xstart) { + ++rlepos; + if (rlepos < src_1->n_runs) { + start = src_1->runs[rlepos].value; + end = start + src_1->runs[rlepos].length + 1; + } + } else if (xend <= start) { + ++xrlepos; + if (xrlepos < src_2->n_runs) { + xstart = src_2->runs[xrlepos].value; + xend = xstart + src_2->runs[xrlepos].length + 1; + } + } else { // they overlap + const int32_t lateststart = start > xstart ? start : xstart; + int32_t earliestend; + if (end == xend) { // improbable + earliestend = end; + rlepos++; + xrlepos++; + if (rlepos < src_1->n_runs) { + start = src_1->runs[rlepos].value; + end = start + src_1->runs[rlepos].length + 1; + } + if (xrlepos < src_2->n_runs) { + xstart = src_2->runs[xrlepos].value; + xend = xstart + src_2->runs[xrlepos].length + 1; + } + } else if (end < xend) { + earliestend = end; + rlepos++; + if (rlepos < src_1->n_runs) { + start = src_1->runs[rlepos].value; + end = start + src_1->runs[rlepos].length + 1; + } + + } else { // end > xend + earliestend = xend; + xrlepos++; + if (xrlepos < src_2->n_runs) { + xstart = src_2->runs[xrlepos].value; + xend = xstart + src_2->runs[xrlepos].length + 1; + } + } + answer += earliestend - lateststart; + } + } + return answer; +} + +bool run_container_intersect(const run_container_t *src_1, + const run_container_t *src_2) { + const bool if1 = run_container_is_full(src_1); + const bool if2 = run_container_is_full(src_2); + if (if1 || if2) { + if (if1) { + return !run_container_empty(src_2); + } + if (if2) { + return !run_container_empty(src_1); + } + } + int32_t rlepos = 0; + int32_t xrlepos = 0; + int32_t start = src_1->runs[rlepos].value; + int32_t end = start + src_1->runs[rlepos].length + 1; + int32_t xstart = src_2->runs[xrlepos].value; + int32_t xend = xstart + src_2->runs[xrlepos].length + 1; + while ((rlepos < src_1->n_runs) && (xrlepos < src_2->n_runs)) { + if (end <= xstart) { + ++rlepos; + if (rlepos < src_1->n_runs) { + start = src_1->runs[rlepos].value; + end = start + src_1->runs[rlepos].length + 1; + } + } else if (xend <= start) { + ++xrlepos; + if (xrlepos < src_2->n_runs) { + xstart = src_2->runs[xrlepos].value; + xend = xstart + src_2->runs[xrlepos].length + 1; + } + } else { // they overlap + return true; + } + } + return false; +} + +/* Compute the difference of src_1 and src_2 and write the result to + * dst. It is assumed that dst is distinct from both src_1 and src_2. */ +void run_container_andnot(const run_container_t *src_1, + const run_container_t *src_2, run_container_t *dst) { + // following Java implementation as of June 2016 + + if (dst->capacity < src_1->n_runs + src_2->n_runs) + run_container_grow(dst, src_1->n_runs + src_2->n_runs, false); + + dst->n_runs = 0; + + int rlepos1 = 0; + int rlepos2 = 0; + int32_t start = src_1->runs[rlepos1].value; + int32_t end = start + src_1->runs[rlepos1].length + 1; + int32_t start2 = src_2->runs[rlepos2].value; + int32_t end2 = start2 + src_2->runs[rlepos2].length + 1; + + while ((rlepos1 < src_1->n_runs) && (rlepos2 < src_2->n_runs)) { + if (end <= start2) { + // output the first run + dst->runs[dst->n_runs++] = + CROARING_MAKE_RLE16(start, end - start - 1); + rlepos1++; + if (rlepos1 < src_1->n_runs) { + start = src_1->runs[rlepos1].value; + end = start + src_1->runs[rlepos1].length + 1; + } + } else if (end2 <= start) { + // exit the second run + rlepos2++; + if (rlepos2 < src_2->n_runs) { + start2 = src_2->runs[rlepos2].value; + end2 = start2 + src_2->runs[rlepos2].length + 1; + } + } else { + if (start < start2) { + dst->runs[dst->n_runs++] = + CROARING_MAKE_RLE16(start, start2 - start - 1); + } + if (end2 < end) { + start = end2; + } else { + rlepos1++; + if (rlepos1 < src_1->n_runs) { + start = src_1->runs[rlepos1].value; + end = start + src_1->runs[rlepos1].length + 1; + } + } + } + } + if (rlepos1 < src_1->n_runs) { + dst->runs[dst->n_runs++] = CROARING_MAKE_RLE16(start, end - start - 1); + rlepos1++; + if (rlepos1 < src_1->n_runs) { + memcpy(dst->runs + dst->n_runs, src_1->runs + rlepos1, + sizeof(rle16_t) * (src_1->n_runs - rlepos1)); + dst->n_runs += src_1->n_runs - rlepos1; + } + } +} + +ALLOW_UNALIGNED +int run_container_to_uint32_array(void *vout, const run_container_t *cont, + uint32_t base) { + int outpos = 0; + uint32_t *out = (uint32_t *)vout; + for (int i = 0; i < cont->n_runs; ++i) { + uint32_t run_start = base + cont->runs[i].value; + uint16_t le = cont->runs[i].length; + for (int j = 0; j <= le; ++j) { + uint32_t val = run_start + j; + memcpy(out + outpos, &val, + sizeof(uint32_t)); // should be compiled as a MOV on x64 + outpos++; + } + } + return outpos; +} + +/* + * Print this container using printf (useful for debugging). + */ +void run_container_printf(const run_container_t *cont) { + for (int i = 0; i < cont->n_runs; ++i) { + uint16_t run_start = cont->runs[i].value; + uint16_t le = cont->runs[i].length; + printf("[%d,%d]", run_start, run_start + le); + } +} + +/* + * Print this container using printf as a comma-separated list of 32-bit + * integers starting at base. + */ +void run_container_printf_as_uint32_array(const run_container_t *cont, + uint32_t base) { + if (cont->n_runs == 0) return; + { + uint32_t run_start = base + cont->runs[0].value; + uint16_t le = cont->runs[0].length; + printf("%u", run_start); + for (uint32_t j = 1; j <= le; ++j) printf(",%u", run_start + j); + } + for (int32_t i = 1; i < cont->n_runs; ++i) { + uint32_t run_start = base + cont->runs[i].value; + uint16_t le = cont->runs[i].length; + for (uint32_t j = 0; j <= le; ++j) printf(",%u", run_start + j); + } +} + +/* + * Validate the container. Returns true if valid. + */ +bool run_container_validate(const run_container_t *run, const char **reason) { + if (run->n_runs < 0) { + *reason = "negative run count"; + return false; + } + if (run->capacity < 0) { + *reason = "negative run capacity"; + return false; + } + if (run->capacity < run->n_runs) { + *reason = "capacity less than run count"; + return false; + } + + if (run->n_runs == 0) { + *reason = "zero run count"; + return false; + } + if (run->runs == NULL) { + *reason = "NULL runs"; + return false; + } + + // Use uint32_t to avoid overflow issues on ranges that contain UINT16_MAX. + uint32_t last_end = 0; + for (int i = 0; i < run->n_runs; ++i) { + uint32_t start = run->runs[i].value; + uint32_t end = start + run->runs[i].length + 1; + if (end <= start) { + *reason = "run start + length overflow"; + return false; + } + if (end > (1 << 16)) { + *reason = "run start + length too large"; + return false; + } + if (start < last_end) { + *reason = "run start less than last end"; + return false; + } + if (start == last_end && last_end != 0) { + *reason = "run start equal to last end, should have combined"; + return false; + } + last_end = end; + } + return true; +} + +int32_t run_container_write(const run_container_t *container, char *buf) { + uint16_t cast_16 = container->n_runs; + memcpy(buf, &cast_16, sizeof(uint16_t)); + memcpy(buf + sizeof(uint16_t), container->runs, + container->n_runs * sizeof(rle16_t)); + return run_container_size_in_bytes(container); +} + +int32_t run_container_read(int32_t cardinality, run_container_t *container, + const char *buf) { + (void)cardinality; + uint16_t cast_16; + memcpy(&cast_16, buf, sizeof(uint16_t)); + container->n_runs = cast_16; + if (container->n_runs > container->capacity) + run_container_grow(container, container->n_runs, false); + if (container->n_runs > 0) { + memcpy(container->runs, buf + sizeof(uint16_t), + container->n_runs * sizeof(rle16_t)); + } + return run_container_size_in_bytes(container); +} + +bool run_container_iterate(const run_container_t *cont, uint32_t base, + roaring_iterator iterator, void *ptr) { + for (int i = 0; i < cont->n_runs; ++i) { + uint32_t run_start = base + cont->runs[i].value; + uint16_t le = cont->runs[i].length; + + for (int j = 0; j <= le; ++j) + if (!iterator(run_start + j, ptr)) return false; + } + return true; +} + +bool run_container_iterate64(const run_container_t *cont, uint32_t base, + roaring_iterator64 iterator, uint64_t high_bits, + void *ptr) { + for (int i = 0; i < cont->n_runs; ++i) { + uint32_t run_start = base + cont->runs[i].value; + uint16_t le = cont->runs[i].length; + + for (int j = 0; j <= le; ++j) + if (!iterator(high_bits | (uint64_t)(run_start + j), ptr)) + return false; + } + return true; +} + +bool run_container_is_subset(const run_container_t *container1, + const run_container_t *container2) { + int i1 = 0, i2 = 0; + while (i1 < container1->n_runs && i2 < container2->n_runs) { + int start1 = container1->runs[i1].value; + int stop1 = start1 + container1->runs[i1].length; + int start2 = container2->runs[i2].value; + int stop2 = start2 + container2->runs[i2].length; + if (start1 < start2) { + return false; + } else { // start1 >= start2 + if (stop1 < stop2) { + i1++; + } else if (stop1 == stop2) { + i1++; + i2++; + } else { // stop1 > stop2 + i2++; + } + } + } + if (i1 == container1->n_runs) { + return true; + } else { + return false; + } +} + +// TODO: write smart_append_exclusive version to match the overloaded 1 param +// Java version (or is it even used?) + +// follows the Java implementation closely +// length is the rle-value. Ie, run [10,12) uses a length value 1. +void run_container_smart_append_exclusive(run_container_t *src, + const uint16_t start, + const uint16_t length) { + int old_end; + rle16_t *last_run = src->n_runs ? src->runs + (src->n_runs - 1) : NULL; + rle16_t *appended_last_run = src->runs + src->n_runs; + + if (!src->n_runs || + (start > (old_end = last_run->value + last_run->length + 1))) { + *appended_last_run = CROARING_MAKE_RLE16(start, length); + src->n_runs++; + return; + } + if (old_end == start) { + // we merge + last_run->length += (length + 1); + return; + } + int new_end = start + length + 1; + + if (start == last_run->value) { + // wipe out previous + if (new_end < old_end) { + *last_run = CROARING_MAKE_RLE16(new_end, old_end - new_end - 1); + return; + } else if (new_end > old_end) { + *last_run = CROARING_MAKE_RLE16(old_end, new_end - old_end - 1); + return; + } else { + src->n_runs--; + return; + } + } + last_run->length = start - last_run->value - 1; + if (new_end < old_end) { + *appended_last_run = + CROARING_MAKE_RLE16(new_end, old_end - new_end - 1); + src->n_runs++; + } else if (new_end > old_end) { + *appended_last_run = + CROARING_MAKE_RLE16(old_end, new_end - old_end - 1); + src->n_runs++; + } +} + +bool run_container_select(const run_container_t *container, + uint32_t *start_rank, uint32_t rank, + uint32_t *element) { + for (int i = 0; i < container->n_runs; i++) { + uint16_t length = container->runs[i].length; + if (rank <= *start_rank + length) { + uint16_t value = container->runs[i].value; + *element = value + rank - (*start_rank); + return true; + } else + *start_rank += length + 1; + } + return false; +} + +int run_container_rank(const run_container_t *container, uint16_t x) { + int sum = 0; + uint32_t x32 = x; + for (int i = 0; i < container->n_runs; i++) { + uint32_t startpoint = container->runs[i].value; + uint32_t length = container->runs[i].length; + uint32_t endpoint = length + startpoint; + if (x <= endpoint) { + if (x < startpoint) break; + return sum + (x32 - startpoint) + 1; + } else { + sum += length + 1; + } + } + return sum; +} +uint32_t run_container_rank_many(const run_container_t *container, + uint64_t start_rank, const uint32_t *begin, + const uint32_t *end, uint64_t *ans) { + const uint16_t high = (uint16_t)((*begin) >> 16); + const uint32_t *iter = begin; + int sum = 0; + int i = 0; + for (; iter != end; iter++) { + uint32_t x = *iter; + uint16_t xhigh = (uint16_t)(x >> 16); + if (xhigh != high) return iter - begin; // stop at next container + + uint32_t x32 = x & 0xFFFF; + while (i < container->n_runs) { + uint32_t startpoint = container->runs[i].value; + uint32_t length = container->runs[i].length; + uint32_t endpoint = length + startpoint; + if (x32 <= endpoint) { + if (x32 < startpoint) { + *(ans++) = start_rank + sum; + } else { + *(ans++) = start_rank + sum + (x32 - startpoint) + 1; + } + break; + } else { + sum += length + 1; + i++; + } + } + if (i >= container->n_runs) *(ans++) = start_rank + sum; + } + + return iter - begin; +} + +int run_container_get_index(const run_container_t *container, uint16_t x) { + if (run_container_contains(container, x)) { + int sum = 0; + uint32_t x32 = x; + for (int i = 0; i < container->n_runs; i++) { + uint32_t startpoint = container->runs[i].value; + uint32_t length = container->runs[i].length; + uint32_t endpoint = length + startpoint; + if (x <= endpoint) { + if (x < startpoint) break; + return sum + (x32 - startpoint); + } else { + sum += length + 1; + } + } + return sum - 1; + } else { + return -1; + } +} + +#if defined(CROARING_IS_X64) && CROARING_COMPILER_SUPPORTS_AVX512 + +CROARING_TARGET_AVX512 +ALLOW_UNALIGNED +/* Get the cardinality of `run'. Requires an actual computation. */ +static inline int _avx512_run_container_cardinality( + const run_container_t *run) { + const int32_t n_runs = run->n_runs; + const rle16_t *runs = run->runs; + + /* by initializing with n_runs, we omit counting the +1 for each pair. */ + int sum = n_runs; + int32_t k = 0; + const int32_t step = sizeof(__m512i) / sizeof(rle16_t); + if (n_runs > step) { + __m512i total = _mm512_setzero_si512(); + for (; k + step <= n_runs; k += step) { + __m512i ymm1 = _mm512_loadu_si512((const __m512i *)(runs + k)); + __m512i justlengths = _mm512_srli_epi32(ymm1, 16); + total = _mm512_add_epi32(total, justlengths); + } + + __m256i lo = _mm512_extracti32x8_epi32(total, 0); + __m256i hi = _mm512_extracti32x8_epi32(total, 1); + + // a store might be faster than extract? + uint32_t buffer[sizeof(__m256i) / sizeof(rle16_t)]; + _mm256_storeu_si256((__m256i *)buffer, lo); + sum += (buffer[0] + buffer[1]) + (buffer[2] + buffer[3]) + + (buffer[4] + buffer[5]) + (buffer[6] + buffer[7]); + + _mm256_storeu_si256((__m256i *)buffer, hi); + sum += (buffer[0] + buffer[1]) + (buffer[2] + buffer[3]) + + (buffer[4] + buffer[5]) + (buffer[6] + buffer[7]); + } + for (; k < n_runs; ++k) { + sum += runs[k].length; + } + + return sum; +} + +CROARING_UNTARGET_AVX512 + +CROARING_TARGET_AVX2 +ALLOW_UNALIGNED +/* Get the cardinality of `run'. Requires an actual computation. */ +static inline int _avx2_run_container_cardinality(const run_container_t *run) { + const int32_t n_runs = run->n_runs; + const rle16_t *runs = run->runs; + + /* by initializing with n_runs, we omit counting the +1 for each pair. */ + int sum = n_runs; + int32_t k = 0; + const int32_t step = sizeof(__m256i) / sizeof(rle16_t); + if (n_runs > step) { + __m256i total = _mm256_setzero_si256(); + for (; k + step <= n_runs; k += step) { + __m256i ymm1 = _mm256_lddqu_si256((const __m256i *)(runs + k)); + __m256i justlengths = _mm256_srli_epi32(ymm1, 16); + total = _mm256_add_epi32(total, justlengths); + } + // a store might be faster than extract? + uint32_t buffer[sizeof(__m256i) / sizeof(rle16_t)]; + _mm256_storeu_si256((__m256i *)buffer, total); + sum += (buffer[0] + buffer[1]) + (buffer[2] + buffer[3]) + + (buffer[4] + buffer[5]) + (buffer[6] + buffer[7]); + } + for (; k < n_runs; ++k) { + sum += runs[k].length; + } + + return sum; +} + +CROARING_UNTARGET_AVX2 + +/* Get the cardinality of `run'. Requires an actual computation. */ +static inline int _scalar_run_container_cardinality( + const run_container_t *run) { + const int32_t n_runs = run->n_runs; + const rle16_t *runs = run->runs; + + /* by initializing with n_runs, we omit counting the +1 for each pair. */ + int sum = n_runs; + for (int k = 0; k < n_runs; ++k) { + sum += runs[k].length; + } + + return sum; +} + +int run_container_cardinality(const run_container_t *run) { +#if CROARING_COMPILER_SUPPORTS_AVX512 + if (croaring_hardware_support() & ROARING_SUPPORTS_AVX512) { + return _avx512_run_container_cardinality(run); + } else +#endif + if (croaring_hardware_support() & ROARING_SUPPORTS_AVX2) { + return _avx2_run_container_cardinality(run); + } else { + return _scalar_run_container_cardinality(run); + } +} +#else + +/* Get the cardinality of `run'. Requires an actual computation. */ +ALLOW_UNALIGNED +int run_container_cardinality(const run_container_t *run) { + const int32_t n_runs = run->n_runs; + const rle16_t *runs = run->runs; + + /* by initializing with n_runs, we omit counting the +1 for each pair. */ + int sum = n_runs; + for (int k = 0; k < n_runs; ++k) { + sum += runs[k].length; + } + + return sum; +} +#endif + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic pop +#endif \ No newline at end of file diff --git a/contrib/libs/croaring/src/isadetection.c b/contrib/libs/croaring/src/isadetection.c new file mode 100644 index 000000000000..d7904149ba95 --- /dev/null +++ b/contrib/libs/croaring/src/isadetection.c @@ -0,0 +1,339 @@ + +/* From +https://github.com/endorno/pytorch/blob/master/torch/lib/TH/generic/simd/simd.h +Highly modified. + +Copyright (c) 2016- Facebook, Inc (Adam Paszke) +Copyright (c) 2014- Facebook, Inc (Soumith Chintala) +Copyright (c) 2011-2014 Idiap Research Institute (Ronan Collobert) +Copyright (c) 2012-2014 Deepmind Technologies (Koray Kavukcuoglu) +Copyright (c) 2011-2012 NEC Laboratories America (Koray Kavukcuoglu) +Copyright (c) 2011-2013 NYU (Clement Farabet) +Copyright (c) 2006-2010 NEC Laboratories America (Ronan Collobert, Leon Bottou, +Iain Melvin, Jason Weston) Copyright (c) 2006 Idiap Research Institute +(Samy Bengio) Copyright (c) 2001-2004 Idiap Research Institute (Ronan Collobert, +Samy Bengio, Johnny Mariethoz) + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the names of Facebook, Deepmind Technologies, NYU, NEC Laboratories +America and IDIAP Research Institute nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +*/ + +#include +#include +#include + +// Binaries produced by Visual Studio with solely AVX2 routines +// can compile to AVX-512 thus causing crashes on non-AVX-512 systems. +// This appears to affect VS 17.8 and 17.9. We disable AVX-512 and AVX2 +// on these systems. It seems that ClangCL is not affected. +// https://github.com/RoaringBitmap/CRoaring/pull/603 +#ifndef __clang__ +#if _MSC_VER >= 1938 +#define ROARING_DISABLE_AVX 1 +#endif // _MSC_VER >= 1938 +#endif // __clang__ + +// We need portability.h to be included first, see +// https://github.com/RoaringBitmap/CRoaring/issues/394 +#include +#if CROARING_REGULAR_VISUAL_STUDIO +#include +#elif defined(HAVE_GCC_GET_CPUID) && defined(USE_GCC_GET_CPUID) +#include +#endif // CROARING_REGULAR_VISUAL_STUDIO +#include + +#if CROARING_IS_X64 +#ifndef CROARING_COMPILER_SUPPORTS_AVX512 +#error "CROARING_COMPILER_SUPPORTS_AVX512 needs to be defined." +#endif // CROARING_COMPILER_SUPPORTS_AVX512 +#endif + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif +enum croaring_instruction_set { + CROARING_DEFAULT = 0x0, + CROARING_NEON = 0x1, + CROARING_AVX2 = 0x4, + CROARING_SSE42 = 0x8, + CROARING_PCLMULQDQ = 0x10, + CROARING_BMI1 = 0x20, + CROARING_BMI2 = 0x40, + CROARING_ALTIVEC = 0x80, + CROARING_AVX512F = 0x100, + CROARING_AVX512DQ = 0x200, + CROARING_AVX512BW = 0x400, + CROARING_AVX512VBMI2 = 0x800, + CROARING_AVX512BITALG = 0x1000, + CROARING_AVX512VPOPCNTDQ = 0x2000, + CROARING_UNINITIALIZED = 0x8000 +}; + +#if CROARING_COMPILER_SUPPORTS_AVX512 +unsigned int CROARING_AVX512_REQUIRED = + (CROARING_AVX512F | CROARING_AVX512DQ | CROARING_AVX512BW | + CROARING_AVX512VBMI2 | CROARING_AVX512BITALG | CROARING_AVX512VPOPCNTDQ); +#endif + +#if defined(__x86_64__) || defined(_M_AMD64) // x64 + +static inline void cpuid(uint32_t *eax, uint32_t *ebx, uint32_t *ecx, + uint32_t *edx) { +#if CROARING_REGULAR_VISUAL_STUDIO + int cpu_info[4]; + __cpuidex(cpu_info, *eax, *ecx); + *eax = cpu_info[0]; + *ebx = cpu_info[1]; + *ecx = cpu_info[2]; + *edx = cpu_info[3]; +#elif defined(HAVE_GCC_GET_CPUID) && defined(USE_GCC_GET_CPUID) + uint32_t level = *eax; + __get_cpuid(level, eax, ebx, ecx, edx); +#else + uint32_t a = *eax, b, c = *ecx, d; + __asm__("cpuid\n\t" : "+a"(a), "=b"(b), "+c"(c), "=d"(d)); + *eax = a; + *ebx = b; + *ecx = c; + *edx = d; +#endif +} + +static inline uint64_t xgetbv(void) { +#if defined(_MSC_VER) + return _xgetbv(0); +#else + uint32_t xcr0_lo, xcr0_hi; + __asm__("xgetbv\n\t" : "=a"(xcr0_lo), "=d"(xcr0_hi) : "c"(0)); + return xcr0_lo | ((uint64_t)xcr0_hi << 32); +#endif +} + +/** + * This is a relatively expensive function but it will get called at most + * *once* per compilation units. Normally, the CRoaring library is built + * as one compilation unit. + */ +static inline uint32_t dynamic_croaring_detect_supported_architectures(void) { + uint32_t eax, ebx, ecx, edx; + uint32_t host_isa = 0x0; + // Can be found on Intel ISA Reference for CPUID + static uint32_t cpuid_avx2_bit = + 1 << 5; ///< @private Bit 5 of EBX for EAX=0x7 + static uint32_t cpuid_bmi1_bit = + 1 << 3; ///< @private bit 3 of EBX for EAX=0x7 + static uint32_t cpuid_bmi2_bit = + 1 << 8; ///< @private bit 8 of EBX for EAX=0x7 + static uint32_t cpuid_avx512f_bit = + 1 << 16; ///< @private bit 16 of EBX for EAX=0x7 + static uint32_t cpuid_avx512dq_bit = + 1 << 17; ///< @private bit 17 of EBX for EAX=0x7 + static uint32_t cpuid_avx512bw_bit = + 1 << 30; ///< @private bit 30 of EBX for EAX=0x7 + static uint32_t cpuid_avx512vbmi2_bit = + 1 << 6; ///< @private bit 6 of ECX for EAX=0x7 + static uint32_t cpuid_avx512bitalg_bit = + 1 << 12; ///< @private bit 12 of ECX for EAX=0x7 + static uint32_t cpuid_avx512vpopcntdq_bit = + 1 << 14; ///< @private bit 14 of ECX for EAX=0x7 + static uint64_t cpuid_avx256_saved = 1 << 2; ///< @private bit 2 = AVX + static uint64_t cpuid_avx512_saved = + 7 << 5; ///< @private bits 5,6,7 = opmask, ZMM_hi256, hi16_ZMM + static uint32_t cpuid_sse42_bit = + 1 << 20; ///< @private bit 20 of ECX for EAX=0x1 + static uint32_t cpuid_osxsave = + (1 << 26) | (1 << 27); ///< @private bits 26+27 of ECX for EAX=0x1 + static uint32_t cpuid_pclmulqdq_bit = + 1 << 1; ///< @private bit 1 of ECX for EAX=0x1 + + // EBX for EAX=0x1 + eax = 0x1; + ecx = 0x0; + cpuid(&eax, &ebx, &ecx, &edx); + + if (ecx & cpuid_sse42_bit) { + host_isa |= CROARING_SSE42; + } else { + return host_isa; // everything after is redundant + } + + if (ecx & cpuid_pclmulqdq_bit) { + host_isa |= CROARING_PCLMULQDQ; + } + + if ((ecx & cpuid_osxsave) != cpuid_osxsave) { + return host_isa; + } + + // xgetbv for checking if the OS saves registers + uint64_t xcr0 = xgetbv(); + + if ((xcr0 & cpuid_avx256_saved) == 0) { + return host_isa; + } + + // ECX for EAX=0x7 + eax = 0x7; + ecx = 0x0; + cpuid(&eax, &ebx, &ecx, &edx); + if (ebx & cpuid_avx2_bit) { + host_isa |= CROARING_AVX2; + } + if (ebx & cpuid_bmi1_bit) { + host_isa |= CROARING_BMI1; + } + + if (ebx & cpuid_bmi2_bit) { + host_isa |= CROARING_BMI2; + } + + if (!((xcr0 & cpuid_avx512_saved) == cpuid_avx512_saved)) { + return host_isa; + } + + if (ebx & cpuid_avx512f_bit) { + host_isa |= CROARING_AVX512F; + } + + if (ebx & cpuid_avx512bw_bit) { + host_isa |= CROARING_AVX512BW; + } + + if (ebx & cpuid_avx512dq_bit) { + host_isa |= CROARING_AVX512DQ; + } + + if (ecx & cpuid_avx512vbmi2_bit) { + host_isa |= CROARING_AVX512VBMI2; + } + + if (ecx & cpuid_avx512bitalg_bit) { + host_isa |= CROARING_AVX512BITALG; + } + + if (ecx & cpuid_avx512vpopcntdq_bit) { + host_isa |= CROARING_AVX512VPOPCNTDQ; + } + + return host_isa; +} + +#endif // end SIMD extension detection code + +#if defined(__x86_64__) || defined(_M_AMD64) // x64 + +#if CROARING_ATOMIC_IMPL == CROARING_ATOMIC_IMPL_CPP +static inline uint32_t croaring_detect_supported_architectures(void) { + // thread-safe as per the C++11 standard. + static uint32_t buffer = dynamic_croaring_detect_supported_architectures(); + return buffer; +} +#elif CROARING_ATOMIC_IMPL == CROARING_ATOMIC_IMPL_C +static uint32_t croaring_detect_supported_architectures(void) { + // we use an atomic for thread safety + static _Atomic uint32_t buffer = CROARING_UNINITIALIZED; + if (buffer == CROARING_UNINITIALIZED) { + // atomicity is sufficient + buffer = dynamic_croaring_detect_supported_architectures(); + } + return buffer; +} +#else +// If we do not have atomics, we do the best we can. +static inline uint32_t croaring_detect_supported_architectures(void) { + static uint32_t buffer = CROARING_UNINITIALIZED; + if (buffer == CROARING_UNINITIALIZED) { + buffer = dynamic_croaring_detect_supported_architectures(); + } + return buffer; +} +#endif // CROARING_C_ATOMIC + +#ifdef ROARING_DISABLE_AVX + +int croaring_hardware_support(void) { return 0; } + +#elif defined(__AVX512F__) && defined(__AVX512DQ__) && \ + defined(__AVX512BW__) && defined(__AVX512VBMI2__) && \ + defined(__AVX512BITALG__) && defined(__AVX512VPOPCNTDQ__) +int croaring_hardware_support(void) { + return ROARING_SUPPORTS_AVX2 | ROARING_SUPPORTS_AVX512; +} +#elif defined(__AVX2__) + +int croaring_hardware_support(void) { + static +#if CROARING_ATOMIC_IMPL == CROARING_ATOMIC_IMPL_C + _Atomic +#endif + int support = 0xFFFFFFF; + if (support == 0xFFFFFFF) { + bool avx512_support = false; +#if CROARING_COMPILER_SUPPORTS_AVX512 + avx512_support = + ((croaring_detect_supported_architectures() & + CROARING_AVX512_REQUIRED) == CROARING_AVX512_REQUIRED); +#endif + support = ROARING_SUPPORTS_AVX2 | + (avx512_support ? ROARING_SUPPORTS_AVX512 : 0); + } + return support; +} +#else + +int croaring_hardware_support(void) { + static +#if CROARING_ATOMIC_IMPL == CROARING_ATOMIC_IMPL_C + _Atomic +#endif + int support = 0xFFFFFFF; + if (support == 0xFFFFFFF) { + bool has_avx2 = (croaring_detect_supported_architectures() & + CROARING_AVX2) == CROARING_AVX2; + bool has_avx512 = false; +#if CROARING_COMPILER_SUPPORTS_AVX512 + has_avx512 = (croaring_detect_supported_architectures() & + CROARING_AVX512_REQUIRED) == CROARING_AVX512_REQUIRED; +#endif // CROARING_COMPILER_SUPPORTS_AVX512 + support = (has_avx2 ? ROARING_SUPPORTS_AVX2 : 0) | + (has_avx512 ? ROARING_SUPPORTS_AVX512 : 0); + } + return support; +} +#endif + +#endif // defined(__x86_64__) || defined(_M_AMD64) // x64 +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif diff --git a/contrib/libs/croaring/src/memory.c b/contrib/libs/croaring/src/memory.c new file mode 100644 index 000000000000..1b474ed992b7 --- /dev/null +++ b/contrib/libs/croaring/src/memory.c @@ -0,0 +1,64 @@ +#include + +#include + +// without the following, we get lots of warnings about posix_memalign +#ifndef __cplusplus +extern int posix_memalign(void** __memptr, size_t __alignment, size_t __size); +#endif //__cplusplus // C++ does not have a well defined signature + +// portable version of posix_memalign +static void* roaring_bitmap_aligned_malloc(size_t alignment, size_t size) { + void* p; +#ifdef _MSC_VER + p = _aligned_malloc(size, alignment); +#elif defined(__MINGW32__) || defined(__MINGW64__) + p = __mingw_aligned_malloc(size, alignment); +#else + // somehow, if this is used before including "x86intrin.h", it creates an + // implicit defined warning. + if (posix_memalign(&p, alignment, size) != 0) return NULL; +#endif + return p; +} + +static void roaring_bitmap_aligned_free(void* memblock) { +#ifdef _MSC_VER + _aligned_free(memblock); +#elif defined(__MINGW32__) || defined(__MINGW64__) + __mingw_aligned_free(memblock); +#else + free(memblock); +#endif +} + +static roaring_memory_t global_memory_hook = { + .malloc = malloc, + .realloc = realloc, + .calloc = calloc, + .free = free, + .aligned_malloc = roaring_bitmap_aligned_malloc, + .aligned_free = roaring_bitmap_aligned_free, +}; + +void roaring_init_memory_hook(roaring_memory_t memory_hook) { + global_memory_hook = memory_hook; +} + +void* roaring_malloc(size_t n) { return global_memory_hook.malloc(n); } + +void* roaring_realloc(void* p, size_t new_sz) { + return global_memory_hook.realloc(p, new_sz); +} + +void* roaring_calloc(size_t n_elements, size_t element_size) { + return global_memory_hook.calloc(n_elements, element_size); +} + +void roaring_free(void* p) { global_memory_hook.free(p); } + +void* roaring_aligned_malloc(size_t alignment, size_t size) { + return global_memory_hook.aligned_malloc(alignment, size); +} + +void roaring_aligned_free(void* p) { global_memory_hook.aligned_free(p); } diff --git a/contrib/libs/croaring/src/roaring.c b/contrib/libs/croaring/src/roaring.c new file mode 100644 index 000000000000..f644b8f071af --- /dev/null +++ b/contrib/libs/croaring/src/roaring.c @@ -0,0 +1,3386 @@ +#include +#include +#include +#include +#include +#include + +#include + +// Include after roaring.h +#include +#include +#include +#include + +#ifdef __cplusplus +using namespace ::roaring::internal; + +extern "C" { +namespace roaring { +namespace api { +#endif + +#define CROARING_SERIALIZATION_ARRAY_UINT32 1 +#define CROARING_SERIALIZATION_CONTAINER 2 +extern inline int roaring_trailing_zeroes(unsigned long long input_num); +extern inline int roaring_leading_zeroes(unsigned long long input_num); +extern inline void roaring_bitmap_init_cleared(roaring_bitmap_t *r); +extern inline bool roaring_bitmap_get_copy_on_write(const roaring_bitmap_t *r); +extern inline void roaring_bitmap_set_copy_on_write(roaring_bitmap_t *r, + bool cow); +extern inline roaring_bitmap_t *roaring_bitmap_create(void); +extern inline void roaring_bitmap_add_range(roaring_bitmap_t *r, uint64_t min, + uint64_t max); +extern inline void roaring_bitmap_remove_range(roaring_bitmap_t *r, + uint64_t min, uint64_t max); + +static inline bool is_cow(const roaring_bitmap_t *r) { + return r->high_low_container.flags & ROARING_FLAG_COW; +} +static inline bool is_frozen(const roaring_bitmap_t *r) { + return r->high_low_container.flags & ROARING_FLAG_FROZEN; +} + +// this is like roaring_bitmap_add, but it populates pointer arguments in such a +// way +// that we can recover the container touched, which, in turn can be used to +// accelerate some functions (when you repeatedly need to add to the same +// container) +static inline container_t *containerptr_roaring_bitmap_add(roaring_bitmap_t *r, + uint32_t val, + uint8_t *type, + int *index) { + roaring_array_t *ra = &r->high_low_container; + + uint16_t hb = val >> 16; + const int i = ra_get_index(ra, hb); + if (i >= 0) { + ra_unshare_container_at_index(ra, (uint16_t)i); + container_t *c = ra_get_container_at_index(ra, (uint16_t)i, type); + uint8_t new_type = *type; + container_t *c2 = container_add(c, val & 0xFFFF, *type, &new_type); + *index = i; + if (c2 != c) { + container_free(c, *type); + ra_set_container_at_index(ra, i, c2, new_type); + *type = new_type; + return c2; + } else { + return c; + } + } else { + array_container_t *new_ac = array_container_create(); + container_t *c = + container_add(new_ac, val & 0xFFFF, ARRAY_CONTAINER_TYPE, type); + // we could just assume that it stays an array container + ra_insert_new_key_value_at(ra, -i - 1, hb, c, *type); + *index = -i - 1; + return c; + } +} + +roaring_bitmap_t *roaring_bitmap_create_with_capacity(uint32_t cap) { + roaring_bitmap_t *ans = + (roaring_bitmap_t *)roaring_malloc(sizeof(roaring_bitmap_t)); + if (!ans) { + return NULL; + } + bool is_ok = ra_init_with_capacity(&ans->high_low_container, cap); + if (!is_ok) { + roaring_free(ans); + return NULL; + } + return ans; +} + +bool roaring_bitmap_init_with_capacity(roaring_bitmap_t *r, uint32_t cap) { + return ra_init_with_capacity(&r->high_low_container, cap); +} + +static inline void add_bulk_impl(roaring_bitmap_t *r, + roaring_bulk_context_t *context, + uint32_t val) { + uint16_t key = val >> 16; + if (context->container == NULL || context->key != key) { + uint8_t typecode; + int idx; + context->container = + containerptr_roaring_bitmap_add(r, val, &typecode, &idx); + context->typecode = typecode; + context->idx = idx; + context->key = key; + } else { + // no need to seek the container, it is at hand + // because we already have the container at hand, we can do the + // insertion directly, bypassing the roaring_bitmap_add call + uint8_t new_typecode; + container_t *container2 = container_add( + context->container, val & 0xFFFF, context->typecode, &new_typecode); + if (container2 != context->container) { + // rare instance when we need to change the container type + container_free(context->container, context->typecode); + ra_set_container_at_index(&r->high_low_container, context->idx, + container2, new_typecode); + context->typecode = new_typecode; + context->container = container2; + } + } +} + +void roaring_bitmap_add_many(roaring_bitmap_t *r, size_t n_args, + const uint32_t *vals) { + uint32_t val; + const uint32_t *start = vals; + const uint32_t *end = vals + n_args; + const uint32_t *current_val = start; + + if (n_args == 0) { + return; + } + + uint8_t typecode; + int idx; + container_t *container; + val = *current_val; + container = containerptr_roaring_bitmap_add(r, val, &typecode, &idx); + roaring_bulk_context_t context = {container, idx, (uint16_t)(val >> 16), + typecode}; + + for (; current_val != end; current_val++) { + memcpy(&val, current_val, sizeof(val)); + add_bulk_impl(r, &context, val); + } +} + +void roaring_bitmap_add_bulk(roaring_bitmap_t *r, + roaring_bulk_context_t *context, uint32_t val) { + add_bulk_impl(r, context, val); +} + +bool roaring_bitmap_contains_bulk(const roaring_bitmap_t *r, + roaring_bulk_context_t *context, + uint32_t val) { + uint16_t key = val >> 16; + if (context->container == NULL || context->key != key) { + int32_t start_idx = -1; + if (context->container != NULL && context->key < key) { + start_idx = context->idx; + } + int idx = ra_advance_until(&r->high_low_container, key, start_idx); + if (idx == ra_get_size(&r->high_low_container)) { + return false; + } + uint8_t typecode; + context->container = ra_get_container_at_index( + &r->high_low_container, (uint16_t)idx, &typecode); + context->typecode = typecode; + context->idx = idx; + context->key = + ra_get_key_at_index(&r->high_low_container, (uint16_t)idx); + // ra_advance_until finds the next key >= the target, we found a later + // container. + if (context->key != key) { + return false; + } + } + // context is now set up + return container_contains(context->container, val & 0xFFFF, + context->typecode); +} + +roaring_bitmap_t *roaring_bitmap_of_ptr(size_t n_args, const uint32_t *vals) { + roaring_bitmap_t *answer = roaring_bitmap_create(); + roaring_bitmap_add_many(answer, n_args, vals); + return answer; +} + +roaring_bitmap_t *roaring_bitmap_of(size_t n_args, ...) { + // todo: could be greatly optimized but we do not expect this call to ever + // include long lists + roaring_bitmap_t *answer = roaring_bitmap_create(); + roaring_bulk_context_t context = {0}; + va_list ap; + va_start(ap, n_args); + for (size_t i = 0; i < n_args; i++) { + uint32_t val = va_arg(ap, uint32_t); + roaring_bitmap_add_bulk(answer, &context, val); + } + va_end(ap); + return answer; +} + +static inline uint64_t minimum_uint64(uint64_t a, uint64_t b) { + return (a < b) ? a : b; +} + +roaring_bitmap_t *roaring_bitmap_from_range(uint64_t min, uint64_t max, + uint32_t step) { + if (max >= UINT64_C(0x100000000)) { + max = UINT64_C(0x100000000); + } + if (step == 0) return NULL; + if (max <= min) return NULL; + roaring_bitmap_t *answer = roaring_bitmap_create(); + if (step >= (1 << 16)) { + for (uint32_t value = (uint32_t)min; value < max; value += step) { + roaring_bitmap_add(answer, value); + } + return answer; + } + uint64_t min_tmp = min; + do { + uint32_t key = (uint32_t)min_tmp >> 16; + uint32_t container_min = min_tmp & 0xFFFF; + uint32_t container_max = + (uint32_t)minimum_uint64(max - (key << 16), 1 << 16); + uint8_t type; + container_t *container = container_from_range( + &type, container_min, container_max, (uint16_t)step); + ra_append(&answer->high_low_container, (uint16_t)key, container, type); + uint32_t gap = container_max - container_min + step - 1; + min_tmp += gap - (gap % step); + } while (min_tmp < max); + // cardinality of bitmap will be ((uint64_t) max - min + step - 1 ) / step + return answer; +} + +void roaring_bitmap_add_range_closed(roaring_bitmap_t *r, uint32_t min, + uint32_t max) { + if (min > max) { + return; + } + + roaring_array_t *ra = &r->high_low_container; + + uint32_t min_key = min >> 16; + uint32_t max_key = max >> 16; + + int32_t num_required_containers = max_key - min_key + 1; + int32_t suffix_length = + count_greater(ra->keys, ra->size, (uint16_t)max_key); + int32_t prefix_length = + count_less(ra->keys, ra->size - suffix_length, (uint16_t)min_key); + int32_t common_length = ra->size - prefix_length - suffix_length; + + if (num_required_containers > common_length) { + ra_shift_tail(ra, suffix_length, + num_required_containers - common_length); + } + + int32_t src = prefix_length + common_length - 1; + int32_t dst = ra->size - suffix_length - 1; + for (uint32_t key = max_key; key != min_key - 1; + key--) { // beware of min_key==0 + uint32_t container_min = (min_key == key) ? (min & 0xffff) : 0; + uint32_t container_max = (max_key == key) ? (max & 0xffff) : 0xffff; + container_t *new_container; + uint8_t new_type; + + if (src >= 0 && ra->keys[src] == key) { + ra_unshare_container_at_index(ra, (uint16_t)src); + new_container = + container_add_range(ra->containers[src], ra->typecodes[src], + container_min, container_max, &new_type); + if (new_container != ra->containers[src]) { + container_free(ra->containers[src], ra->typecodes[src]); + } + src--; + } else { + new_container = container_from_range(&new_type, container_min, + container_max + 1, 1); + } + ra_replace_key_and_container_at_index(ra, dst, (uint16_t)key, + new_container, new_type); + dst--; + } +} + +void roaring_bitmap_remove_range_closed(roaring_bitmap_t *r, uint32_t min, + uint32_t max) { + if (min > max) { + return; + } + + roaring_array_t *ra = &r->high_low_container; + + uint32_t min_key = min >> 16; + uint32_t max_key = max >> 16; + + int32_t src = count_less(ra->keys, ra->size, (uint16_t)min_key); + int32_t dst = src; + while (src < ra->size && ra->keys[src] <= max_key) { + uint32_t container_min = + (min_key == ra->keys[src]) ? (min & 0xffff) : 0; + uint32_t container_max = + (max_key == ra->keys[src]) ? (max & 0xffff) : 0xffff; + ra_unshare_container_at_index(ra, (uint16_t)src); + container_t *new_container; + uint8_t new_type; + new_container = + container_remove_range(ra->containers[src], ra->typecodes[src], + container_min, container_max, &new_type); + if (new_container != ra->containers[src]) { + container_free(ra->containers[src], ra->typecodes[src]); + } + if (new_container) { + ra_replace_key_and_container_at_index(ra, dst, ra->keys[src], + new_container, new_type); + dst++; + } + src++; + } + if (src > dst) { + ra_shift_tail(ra, ra->size - src, dst - src); + } +} + +void roaring_bitmap_printf(const roaring_bitmap_t *r) { + const roaring_array_t *ra = &r->high_low_container; + + printf("{"); + for (int i = 0; i < ra->size; ++i) { + container_printf_as_uint32_array(ra->containers[i], ra->typecodes[i], + ((uint32_t)ra->keys[i]) << 16); + + if (i + 1 < ra->size) { + printf(","); + } + } + printf("}"); +} + +void roaring_bitmap_printf_describe(const roaring_bitmap_t *r) { + const roaring_array_t *ra = &r->high_low_container; + + printf("{"); + for (int i = 0; i < ra->size; ++i) { + printf("%d: %s (%d)", ra->keys[i], + get_full_container_name(ra->containers[i], ra->typecodes[i]), + container_get_cardinality(ra->containers[i], ra->typecodes[i])); + if (ra->typecodes[i] == SHARED_CONTAINER_TYPE) { + printf("(shared count = %" PRIu32 " )", + croaring_refcount_get( + &(CAST_shared(ra->containers[i])->counter))); + } + + if (i + 1 < ra->size) { + printf(", "); + } + } + printf("}"); +} + +typedef struct min_max_sum_s { + uint32_t min; + uint32_t max; + uint64_t sum; +} min_max_sum_t; + +static bool min_max_sum_fnc(uint32_t value, void *param) { + min_max_sum_t *mms = (min_max_sum_t *)param; + if (value > mms->max) mms->max = value; + if (value < mms->min) mms->min = value; + mms->sum += value; + return true; // we always process all data points +} + +/** + * (For advanced users.) + * Collect statistics about the bitmap + */ +void roaring_bitmap_statistics(const roaring_bitmap_t *r, + roaring_statistics_t *stat) { + const roaring_array_t *ra = &r->high_low_container; + + memset(stat, 0, sizeof(*stat)); + stat->n_containers = ra->size; + stat->cardinality = roaring_bitmap_get_cardinality(r); + min_max_sum_t mms; + mms.min = UINT32_C(0xFFFFFFFF); + mms.max = UINT32_C(0); + mms.sum = 0; + roaring_iterate(r, &min_max_sum_fnc, &mms); + stat->min_value = mms.min; + stat->max_value = mms.max; + stat->sum_value = mms.sum; + + for (int i = 0; i < ra->size; ++i) { + uint8_t truetype = + get_container_type(ra->containers[i], ra->typecodes[i]); + uint32_t card = + container_get_cardinality(ra->containers[i], ra->typecodes[i]); + uint32_t sbytes = + container_size_in_bytes(ra->containers[i], ra->typecodes[i]); + switch (truetype) { + case BITSET_CONTAINER_TYPE: + stat->n_bitset_containers++; + stat->n_values_bitset_containers += card; + stat->n_bytes_bitset_containers += sbytes; + break; + case ARRAY_CONTAINER_TYPE: + stat->n_array_containers++; + stat->n_values_array_containers += card; + stat->n_bytes_array_containers += sbytes; + break; + case RUN_CONTAINER_TYPE: + stat->n_run_containers++; + stat->n_values_run_containers += card; + stat->n_bytes_run_containers += sbytes; + break; + default: + assert(false); + roaring_unreachable; + } + } +} + +/* + * Checks that: + * - Array containers are sorted and contain no duplicates + * - Range containers are sorted and contain no overlapping ranges + * - Roaring containers are sorted by key and there are no duplicate keys + * - The correct container type is use for each container (e.g. bitmaps aren't + * used for small containers) + */ +bool roaring_bitmap_internal_validate(const roaring_bitmap_t *r, + const char **reason) { + const char *reason_local; + if (reason == NULL) { + // Always allow assigning through *reason + reason = &reason_local; + } + *reason = NULL; + const roaring_array_t *ra = &r->high_low_container; + if (ra->size < 0) { + *reason = "negative size"; + return false; + } + if (ra->allocation_size < 0) { + *reason = "negative allocation size"; + return false; + } + if (ra->size > ra->allocation_size) { + *reason = "more containers than allocated space"; + return false; + } + if (ra->flags & ~(ROARING_FLAG_COW | ROARING_FLAG_FROZEN)) { + *reason = "invalid flags"; + return false; + } + if (ra->size == 0) { + return true; + } + + if (ra->keys == NULL) { + *reason = "keys is NULL"; + return false; + } + if (ra->typecodes == NULL) { + *reason = "typecodes is NULL"; + return false; + } + if (ra->containers == NULL) { + *reason = "containers is NULL"; + return false; + } + + uint32_t prev_key = ra->keys[0]; + for (int32_t i = 1; i < ra->size; ++i) { + if (ra->keys[i] <= prev_key) { + *reason = "keys not strictly increasing"; + return false; + } + prev_key = ra->keys[i]; + } + + for (int32_t i = 0; i < ra->size; ++i) { + if (!container_internal_validate(ra->containers[i], ra->typecodes[i], + reason)) { + // reason should already be set + if (*reason == NULL) { + *reason = "container failed to validate but no reason given"; + } + return false; + } + } + + return true; +} + +roaring_bitmap_t *roaring_bitmap_copy(const roaring_bitmap_t *r) { + roaring_bitmap_t *ans = + (roaring_bitmap_t *)roaring_malloc(sizeof(roaring_bitmap_t)); + if (!ans) { + return NULL; + } + if (!ra_init_with_capacity( // allocation of list of containers can fail + &ans->high_low_container, r->high_low_container.size)) { + roaring_free(ans); + return NULL; + } + if (!ra_overwrite( // memory allocation of individual containers may fail + &r->high_low_container, &ans->high_low_container, is_cow(r))) { + roaring_bitmap_free(ans); // overwrite should leave in freeable state + return NULL; + } + roaring_bitmap_set_copy_on_write(ans, is_cow(r)); + return ans; +} + +bool roaring_bitmap_overwrite(roaring_bitmap_t *dest, + const roaring_bitmap_t *src) { + roaring_bitmap_set_copy_on_write(dest, is_cow(src)); + return ra_overwrite(&src->high_low_container, &dest->high_low_container, + is_cow(src)); +} + +void roaring_bitmap_free(const roaring_bitmap_t *r) { + if (r == NULL) { + return; + } + if (!is_frozen(r)) { + ra_clear((roaring_array_t *)&r->high_low_container); + } + roaring_free((roaring_bitmap_t *)r); +} + +void roaring_bitmap_clear(roaring_bitmap_t *r) { + ra_reset(&r->high_low_container); +} + +void roaring_bitmap_add(roaring_bitmap_t *r, uint32_t val) { + roaring_array_t *ra = &r->high_low_container; + + const uint16_t hb = val >> 16; + const int i = ra_get_index(ra, hb); + uint8_t typecode; + if (i >= 0) { + ra_unshare_container_at_index(ra, (uint16_t)i); + container_t *container = + ra_get_container_at_index(ra, (uint16_t)i, &typecode); + uint8_t newtypecode = typecode; + container_t *container2 = + container_add(container, val & 0xFFFF, typecode, &newtypecode); + if (container2 != container) { + container_free(container, typecode); + ra_set_container_at_index(&r->high_low_container, i, container2, + newtypecode); + } + } else { + array_container_t *newac = array_container_create(); + container_t *container = + container_add(newac, val & 0xFFFF, ARRAY_CONTAINER_TYPE, &typecode); + // we could just assume that it stays an array container + ra_insert_new_key_value_at(&r->high_low_container, -i - 1, hb, + container, typecode); + } +} + +bool roaring_bitmap_add_checked(roaring_bitmap_t *r, uint32_t val) { + const uint16_t hb = val >> 16; + const int i = ra_get_index(&r->high_low_container, hb); + uint8_t typecode; + bool result = false; + if (i >= 0) { + ra_unshare_container_at_index(&r->high_low_container, (uint16_t)i); + container_t *container = ra_get_container_at_index( + &r->high_low_container, (uint16_t)i, &typecode); + + const int oldCardinality = + container_get_cardinality(container, typecode); + + uint8_t newtypecode = typecode; + container_t *container2 = + container_add(container, val & 0xFFFF, typecode, &newtypecode); + if (container2 != container) { + container_free(container, typecode); + ra_set_container_at_index(&r->high_low_container, i, container2, + newtypecode); + result = true; + } else { + const int newCardinality = + container_get_cardinality(container, newtypecode); + + result = oldCardinality != newCardinality; + } + } else { + array_container_t *newac = array_container_create(); + container_t *container = + container_add(newac, val & 0xFFFF, ARRAY_CONTAINER_TYPE, &typecode); + // we could just assume that it stays an array container + ra_insert_new_key_value_at(&r->high_low_container, -i - 1, hb, + container, typecode); + result = true; + } + + return result; +} + +void roaring_bitmap_remove(roaring_bitmap_t *r, uint32_t val) { + const uint16_t hb = val >> 16; + const int i = ra_get_index(&r->high_low_container, hb); + uint8_t typecode; + if (i >= 0) { + ra_unshare_container_at_index(&r->high_low_container, (uint16_t)i); + container_t *container = ra_get_container_at_index( + &r->high_low_container, (uint16_t)i, &typecode); + uint8_t newtypecode = typecode; + container_t *container2 = + container_remove(container, val & 0xFFFF, typecode, &newtypecode); + if (container2 != container) { + container_free(container, typecode); + ra_set_container_at_index(&r->high_low_container, i, container2, + newtypecode); + } + if (container_get_cardinality(container2, newtypecode) != 0) { + ra_set_container_at_index(&r->high_low_container, i, container2, + newtypecode); + } else { + ra_remove_at_index_and_free(&r->high_low_container, i); + } + } +} + +bool roaring_bitmap_remove_checked(roaring_bitmap_t *r, uint32_t val) { + const uint16_t hb = val >> 16; + const int i = ra_get_index(&r->high_low_container, hb); + uint8_t typecode; + bool result = false; + if (i >= 0) { + ra_unshare_container_at_index(&r->high_low_container, (uint16_t)i); + container_t *container = ra_get_container_at_index( + &r->high_low_container, (uint16_t)i, &typecode); + + const int oldCardinality = + container_get_cardinality(container, typecode); + + uint8_t newtypecode = typecode; + container_t *container2 = + container_remove(container, val & 0xFFFF, typecode, &newtypecode); + if (container2 != container) { + container_free(container, typecode); + ra_set_container_at_index(&r->high_low_container, i, container2, + newtypecode); + } + + const int newCardinality = + container_get_cardinality(container2, newtypecode); + + if (newCardinality != 0) { + ra_set_container_at_index(&r->high_low_container, i, container2, + newtypecode); + } else { + ra_remove_at_index_and_free(&r->high_low_container, i); + } + + result = oldCardinality != newCardinality; + } + return result; +} + +void roaring_bitmap_remove_many(roaring_bitmap_t *r, size_t n_args, + const uint32_t *vals) { + if (n_args == 0 || r->high_low_container.size == 0) { + return; + } + int32_t pos = + -1; // position of the container used in the previous iteration + for (size_t i = 0; i < n_args; i++) { + uint16_t key = (uint16_t)(vals[i] >> 16); + if (pos < 0 || key != r->high_low_container.keys[pos]) { + pos = ra_get_index(&r->high_low_container, key); + } + if (pos >= 0) { + uint8_t new_typecode; + container_t *new_container; + new_container = container_remove( + r->high_low_container.containers[pos], vals[i] & 0xffff, + r->high_low_container.typecodes[pos], &new_typecode); + if (new_container != r->high_low_container.containers[pos]) { + container_free(r->high_low_container.containers[pos], + r->high_low_container.typecodes[pos]); + ra_replace_key_and_container_at_index(&r->high_low_container, + pos, key, new_container, + new_typecode); + } + if (!container_nonzero_cardinality(new_container, new_typecode)) { + container_free(new_container, new_typecode); + ra_remove_at_index(&r->high_low_container, pos); + pos = -1; + } + } + } +} + +// there should be some SIMD optimizations possible here +roaring_bitmap_t *roaring_bitmap_and(const roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + uint8_t result_type = 0; + const int length1 = x1->high_low_container.size, + length2 = x2->high_low_container.size; + uint32_t neededcap = length1 > length2 ? length2 : length1; + roaring_bitmap_t *answer = roaring_bitmap_create_with_capacity(neededcap); + roaring_bitmap_set_copy_on_write(answer, is_cow(x1) || is_cow(x2)); + + int pos1 = 0, pos2 = 0; + + while (pos1 < length1 && pos2 < length2) { + const uint16_t s1 = + ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + const uint16_t s2 = + ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + + if (s1 == s2) { + uint8_t type1, type2; + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + container_t *c = container_and(c1, type1, c2, type2, &result_type); + + if (container_nonzero_cardinality(c, result_type)) { + ra_append(&answer->high_low_container, s1, c, result_type); + } else { + container_free(c, result_type); // otherwise: memory leak! + } + ++pos1; + ++pos2; + } else if (s1 < s2) { // s1 < s2 + pos1 = ra_advance_until(&x1->high_low_container, s2, pos1); + } else { // s1 > s2 + pos2 = ra_advance_until(&x2->high_low_container, s1, pos2); + } + } + return answer; +} + +/** + * Compute the union of 'number' bitmaps. + */ +roaring_bitmap_t *roaring_bitmap_or_many(size_t number, + const roaring_bitmap_t **x) { + if (number == 0) { + return roaring_bitmap_create(); + } + if (number == 1) { + return roaring_bitmap_copy(x[0]); + } + roaring_bitmap_t *answer = + roaring_bitmap_lazy_or(x[0], x[1], LAZY_OR_BITSET_CONVERSION); + for (size_t i = 2; i < number; i++) { + roaring_bitmap_lazy_or_inplace(answer, x[i], LAZY_OR_BITSET_CONVERSION); + } + roaring_bitmap_repair_after_lazy(answer); + return answer; +} + +/** + * Compute the xor of 'number' bitmaps. + */ +roaring_bitmap_t *roaring_bitmap_xor_many(size_t number, + const roaring_bitmap_t **x) { + if (number == 0) { + return roaring_bitmap_create(); + } + if (number == 1) { + return roaring_bitmap_copy(x[0]); + } + roaring_bitmap_t *answer = roaring_bitmap_lazy_xor(x[0], x[1]); + for (size_t i = 2; i < number; i++) { + roaring_bitmap_lazy_xor_inplace(answer, x[i]); + } + roaring_bitmap_repair_after_lazy(answer); + return answer; +} + +// inplace and (modifies its first argument). +void roaring_bitmap_and_inplace(roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + if (x1 == x2) return; + int pos1 = 0, pos2 = 0, intersection_size = 0; + const int length1 = ra_get_size(&x1->high_low_container); + const int length2 = ra_get_size(&x2->high_low_container); + + // any skipped-over or newly emptied containers in x1 + // have to be freed. + while (pos1 < length1 && pos2 < length2) { + const uint16_t s1 = + ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + const uint16_t s2 = + ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + + if (s1 == s2) { + uint8_t type1, type2, result_type; + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + + // We do the computation "in place" only when c1 is not a shared + // container. Rationale: using a shared container safely with in + // place computation would require making a copy and then doing the + // computation in place which is likely less efficient than avoiding + // in place entirely and always generating a new container. + container_t *c = + (type1 == SHARED_CONTAINER_TYPE) + ? container_and(c1, type1, c2, type2, &result_type) + : container_iand(c1, type1, c2, type2, &result_type); + + if (c != c1) { // in this instance a new container was created, and + // we need to free the old one + container_free(c1, type1); + } + if (container_nonzero_cardinality(c, result_type)) { + ra_replace_key_and_container_at_index(&x1->high_low_container, + intersection_size, s1, c, + result_type); + intersection_size++; + } else { + container_free(c, result_type); + } + ++pos1; + ++pos2; + } else if (s1 < s2) { + pos1 = ra_advance_until_freeing(&x1->high_low_container, s2, pos1); + } else { // s1 > s2 + pos2 = ra_advance_until(&x2->high_low_container, s1, pos2); + } + } + + // if we ended early because x2 ran out, then all remaining in x1 should be + // freed + while (pos1 < length1) { + container_free(x1->high_low_container.containers[pos1], + x1->high_low_container.typecodes[pos1]); + ++pos1; + } + + // all containers after this have either been copied or freed + ra_downsize(&x1->high_low_container, intersection_size); +} + +roaring_bitmap_t *roaring_bitmap_or(const roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + uint8_t result_type = 0; + const int length1 = x1->high_low_container.size, + length2 = x2->high_low_container.size; + if (0 == length1) { + return roaring_bitmap_copy(x2); + } + if (0 == length2) { + return roaring_bitmap_copy(x1); + } + roaring_bitmap_t *answer = + roaring_bitmap_create_with_capacity(length1 + length2); + roaring_bitmap_set_copy_on_write(answer, is_cow(x1) || is_cow(x2)); + int pos1 = 0, pos2 = 0; + uint8_t type1, type2; + uint16_t s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + uint16_t s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + while (true) { + if (s1 == s2) { + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + container_t *c = container_or(c1, type1, c2, type2, &result_type); + + // since we assume that the initial containers are non-empty, the + // result here + // can only be non-empty + ra_append(&answer->high_low_container, s1, c, result_type); + ++pos1; + ++pos2; + if (pos1 == length1) break; + if (pos2 == length2) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + + } else if (s1 < s2) { // s1 < s2 + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + // c1 = container_clone(c1, type1); + c1 = get_copy_of_container(c1, &type1, is_cow(x1)); + if (is_cow(x1)) { + ra_set_container_at_index(&x1->high_low_container, pos1, c1, + type1); + } + ra_append(&answer->high_low_container, s1, c1, type1); + pos1++; + if (pos1 == length1) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + + } else { // s1 > s2 + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + // c2 = container_clone(c2, type2); + c2 = get_copy_of_container(c2, &type2, is_cow(x2)); + if (is_cow(x2)) { + ra_set_container_at_index(&x2->high_low_container, pos2, c2, + type2); + } + ra_append(&answer->high_low_container, s2, c2, type2); + pos2++; + if (pos2 == length2) break; + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + } + } + if (pos1 == length1) { + ra_append_copy_range(&answer->high_low_container, + &x2->high_low_container, pos2, length2, + is_cow(x2)); + } else if (pos2 == length2) { + ra_append_copy_range(&answer->high_low_container, + &x1->high_low_container, pos1, length1, + is_cow(x1)); + } + return answer; +} + +// inplace or (modifies its first argument). +void roaring_bitmap_or_inplace(roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + uint8_t result_type = 0; + int length1 = x1->high_low_container.size; + const int length2 = x2->high_low_container.size; + + if (0 == length2) return; + + if (0 == length1) { + roaring_bitmap_overwrite(x1, x2); + return; + } + int pos1 = 0, pos2 = 0; + uint8_t type1, type2; + uint16_t s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + uint16_t s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + while (true) { + if (s1 == s2) { + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + if (!container_is_full(c1, type1)) { + container_t *c2 = ra_get_container_at_index( + &x2->high_low_container, (uint16_t)pos2, &type2); + container_t *c = + (type1 == SHARED_CONTAINER_TYPE) + ? container_or(c1, type1, c2, type2, &result_type) + : container_ior(c1, type1, c2, type2, &result_type); + + if (c != c1) { // in this instance a new container was created, + // and we need to free the old one + container_free(c1, type1); + } + ra_set_container_at_index(&x1->high_low_container, pos1, c, + result_type); + } + ++pos1; + ++pos2; + if (pos1 == length1) break; + if (pos2 == length2) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + + } else if (s1 < s2) { // s1 < s2 + pos1++; + if (pos1 == length1) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + + } else { // s1 > s2 + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + c2 = get_copy_of_container(c2, &type2, is_cow(x2)); + if (is_cow(x2)) { + ra_set_container_at_index(&x2->high_low_container, pos2, c2, + type2); + } + + // container_t *c2_clone = container_clone(c2, type2); + ra_insert_new_key_value_at(&x1->high_low_container, pos1, s2, c2, + type2); + pos1++; + length1++; + pos2++; + if (pos2 == length2) break; + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + } + } + if (pos1 == length1) { + ra_append_copy_range(&x1->high_low_container, &x2->high_low_container, + pos2, length2, is_cow(x2)); + } +} + +roaring_bitmap_t *roaring_bitmap_xor(const roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + uint8_t result_type = 0; + const int length1 = x1->high_low_container.size, + length2 = x2->high_low_container.size; + if (0 == length1) { + return roaring_bitmap_copy(x2); + } + if (0 == length2) { + return roaring_bitmap_copy(x1); + } + roaring_bitmap_t *answer = + roaring_bitmap_create_with_capacity(length1 + length2); + roaring_bitmap_set_copy_on_write(answer, is_cow(x1) || is_cow(x2)); + int pos1 = 0, pos2 = 0; + uint8_t type1, type2; + uint16_t s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + uint16_t s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + while (true) { + if (s1 == s2) { + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + container_t *c = container_xor(c1, type1, c2, type2, &result_type); + + if (container_nonzero_cardinality(c, result_type)) { + ra_append(&answer->high_low_container, s1, c, result_type); + } else { + container_free(c, result_type); + } + ++pos1; + ++pos2; + if (pos1 == length1) break; + if (pos2 == length2) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + + } else if (s1 < s2) { // s1 < s2 + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + c1 = get_copy_of_container(c1, &type1, is_cow(x1)); + if (is_cow(x1)) { + ra_set_container_at_index(&x1->high_low_container, pos1, c1, + type1); + } + ra_append(&answer->high_low_container, s1, c1, type1); + pos1++; + if (pos1 == length1) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + + } else { // s1 > s2 + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + c2 = get_copy_of_container(c2, &type2, is_cow(x2)); + if (is_cow(x2)) { + ra_set_container_at_index(&x2->high_low_container, pos2, c2, + type2); + } + ra_append(&answer->high_low_container, s2, c2, type2); + pos2++; + if (pos2 == length2) break; + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + } + } + if (pos1 == length1) { + ra_append_copy_range(&answer->high_low_container, + &x2->high_low_container, pos2, length2, + is_cow(x2)); + } else if (pos2 == length2) { + ra_append_copy_range(&answer->high_low_container, + &x1->high_low_container, pos1, length1, + is_cow(x1)); + } + return answer; +} + +// inplace xor (modifies its first argument). + +void roaring_bitmap_xor_inplace(roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + assert(x1 != x2); + uint8_t result_type = 0; + int length1 = x1->high_low_container.size; + const int length2 = x2->high_low_container.size; + + if (0 == length2) return; + + if (0 == length1) { + roaring_bitmap_overwrite(x1, x2); + return; + } + + // XOR can have new containers inserted from x2, but can also + // lose containers when x1 and x2 are nonempty and identical. + + int pos1 = 0, pos2 = 0; + uint8_t type1, type2; + uint16_t s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + uint16_t s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + while (true) { + if (s1 == s2) { + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + + // We do the computation "in place" only when c1 is not a shared + // container. Rationale: using a shared container safely with in + // place computation would require making a copy and then doing the + // computation in place which is likely less efficient than avoiding + // in place entirely and always generating a new container. + + container_t *c; + if (type1 == SHARED_CONTAINER_TYPE) { + c = container_xor(c1, type1, c2, type2, &result_type); + shared_container_free(CAST_shared(c1)); // so release + } else { + c = container_ixor(c1, type1, c2, type2, &result_type); + } + + if (container_nonzero_cardinality(c, result_type)) { + ra_set_container_at_index(&x1->high_low_container, pos1, c, + result_type); + ++pos1; + } else { + container_free(c, result_type); + ra_remove_at_index(&x1->high_low_container, pos1); + --length1; + } + + ++pos2; + if (pos1 == length1) break; + if (pos2 == length2) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + + } else if (s1 < s2) { // s1 < s2 + pos1++; + if (pos1 == length1) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + + } else { // s1 > s2 + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + c2 = get_copy_of_container(c2, &type2, is_cow(x2)); + if (is_cow(x2)) { + ra_set_container_at_index(&x2->high_low_container, pos2, c2, + type2); + } + + ra_insert_new_key_value_at(&x1->high_low_container, pos1, s2, c2, + type2); + pos1++; + length1++; + pos2++; + if (pos2 == length2) break; + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + } + } + if (pos1 == length1) { + ra_append_copy_range(&x1->high_low_container, &x2->high_low_container, + pos2, length2, is_cow(x2)); + } +} + +roaring_bitmap_t *roaring_bitmap_andnot(const roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + uint8_t result_type = 0; + const int length1 = x1->high_low_container.size, + length2 = x2->high_low_container.size; + if (0 == length1) { + roaring_bitmap_t *empty_bitmap = roaring_bitmap_create(); + roaring_bitmap_set_copy_on_write(empty_bitmap, + is_cow(x1) || is_cow(x2)); + return empty_bitmap; + } + if (0 == length2) { + return roaring_bitmap_copy(x1); + } + roaring_bitmap_t *answer = roaring_bitmap_create_with_capacity(length1); + roaring_bitmap_set_copy_on_write(answer, is_cow(x1) || is_cow(x2)); + + int pos1 = 0, pos2 = 0; + uint8_t type1, type2; + uint16_t s1 = 0; + uint16_t s2 = 0; + while (true) { + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + + if (s1 == s2) { + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + container_t *c = + container_andnot(c1, type1, c2, type2, &result_type); + + if (container_nonzero_cardinality(c, result_type)) { + ra_append(&answer->high_low_container, s1, c, result_type); + } else { + container_free(c, result_type); + } + ++pos1; + ++pos2; + if (pos1 == length1) break; + if (pos2 == length2) break; + } else if (s1 < s2) { // s1 < s2 + const int next_pos1 = + ra_advance_until(&x1->high_low_container, s2, pos1); + ra_append_copy_range(&answer->high_low_container, + &x1->high_low_container, pos1, next_pos1, + is_cow(x1)); + // TODO : perhaps some of the copy_on_write should be based on + // answer rather than x1 (more stringent?). Many similar cases + pos1 = next_pos1; + if (pos1 == length1) break; + } else { // s1 > s2 + pos2 = ra_advance_until(&x2->high_low_container, s1, pos2); + if (pos2 == length2) break; + } + } + if (pos2 == length2) { + ra_append_copy_range(&answer->high_low_container, + &x1->high_low_container, pos1, length1, + is_cow(x1)); + } + return answer; +} + +// inplace andnot (modifies its first argument). + +void roaring_bitmap_andnot_inplace(roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + assert(x1 != x2); + + uint8_t result_type = 0; + int length1 = x1->high_low_container.size; + const int length2 = x2->high_low_container.size; + int intersection_size = 0; + + if (0 == length2) return; + + if (0 == length1) { + roaring_bitmap_clear(x1); + return; + } + + int pos1 = 0, pos2 = 0; + uint8_t type1, type2; + uint16_t s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + uint16_t s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + while (true) { + if (s1 == s2) { + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + + // We do the computation "in place" only when c1 is not a shared + // container. Rationale: using a shared container safely with in + // place computation would require making a copy and then doing the + // computation in place which is likely less efficient than avoiding + // in place entirely and always generating a new container. + + container_t *c; + if (type1 == SHARED_CONTAINER_TYPE) { + c = container_andnot(c1, type1, c2, type2, &result_type); + shared_container_free(CAST_shared(c1)); // release + } else { + c = container_iandnot(c1, type1, c2, type2, &result_type); + } + + if (container_nonzero_cardinality(c, result_type)) { + ra_replace_key_and_container_at_index(&x1->high_low_container, + intersection_size++, s1, + c, result_type); + } else { + container_free(c, result_type); + } + + ++pos1; + ++pos2; + if (pos1 == length1) break; + if (pos2 == length2) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + + } else if (s1 < s2) { // s1 < s2 + if (pos1 != intersection_size) { + container_t *c1 = ra_get_container_at_index( + &x1->high_low_container, (uint16_t)pos1, &type1); + + ra_replace_key_and_container_at_index( + &x1->high_low_container, intersection_size, s1, c1, type1); + } + intersection_size++; + pos1++; + if (pos1 == length1) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + + } else { // s1 > s2 + pos2 = ra_advance_until(&x2->high_low_container, s1, pos2); + if (pos2 == length2) break; + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + } + } + + if (pos1 < length1) { + // all containers between intersection_size and + // pos1 are junk. However, they have either been moved + // (thus still referenced) or involved in an iandnot + // that will clean up all containers that could not be reused. + // Thus we should not free the junk containers between + // intersection_size and pos1. + if (pos1 > intersection_size) { + // left slide of remaining items + ra_copy_range(&x1->high_low_container, pos1, length1, + intersection_size); + } + // else current placement is fine + intersection_size += (length1 - pos1); + } + ra_downsize(&x1->high_low_container, intersection_size); +} + +uint64_t roaring_bitmap_get_cardinality(const roaring_bitmap_t *r) { + const roaring_array_t *ra = &r->high_low_container; + + uint64_t card = 0; + for (int i = 0; i < ra->size; ++i) + card += container_get_cardinality(ra->containers[i], ra->typecodes[i]); + return card; +} + +uint64_t roaring_bitmap_range_cardinality(const roaring_bitmap_t *r, + uint64_t range_start, + uint64_t range_end) { + const roaring_array_t *ra = &r->high_low_container; + + if (range_end > UINT32_MAX) { + range_end = UINT32_MAX + UINT64_C(1); + } + if (range_start >= range_end) { + return 0; + } + range_end--; // make range_end inclusive + // now we have: 0 <= range_start <= range_end <= UINT32_MAX + + uint16_t minhb = (uint16_t)(range_start >> 16); + uint16_t maxhb = (uint16_t)(range_end >> 16); + + uint64_t card = 0; + + int i = ra_get_index(ra, minhb); + if (i >= 0) { + if (minhb == maxhb) { + card += container_rank(ra->containers[i], ra->typecodes[i], + range_end & 0xffff); + } else { + card += + container_get_cardinality(ra->containers[i], ra->typecodes[i]); + } + if ((range_start & 0xffff) != 0) { + card -= container_rank(ra->containers[i], ra->typecodes[i], + (range_start & 0xffff) - 1); + } + i++; + } else { + i = -i - 1; + } + + for (; i < ra->size; i++) { + uint16_t key = ra->keys[i]; + if (key < maxhb) { + card += + container_get_cardinality(ra->containers[i], ra->typecodes[i]); + } else if (key == maxhb) { + card += container_rank(ra->containers[i], ra->typecodes[i], + range_end & 0xffff); + break; + } else { + break; + } + } + + return card; +} + +bool roaring_bitmap_is_empty(const roaring_bitmap_t *r) { + return r->high_low_container.size == 0; +} + +void roaring_bitmap_to_uint32_array(const roaring_bitmap_t *r, uint32_t *ans) { + ra_to_uint32_array(&r->high_low_container, ans); +} + +bool roaring_bitmap_range_uint32_array(const roaring_bitmap_t *r, size_t offset, + size_t limit, uint32_t *ans) { + return ra_range_uint32_array(&r->high_low_container, offset, limit, ans); +} + +/** convert array and bitmap containers to run containers when it is more + * efficient; + * also convert from run containers when more space efficient. Returns + * true if the result has at least one run container. + */ +bool roaring_bitmap_run_optimize(roaring_bitmap_t *r) { + bool answer = false; + for (int i = 0; i < r->high_low_container.size; i++) { + uint8_t type_original, type_after; + ra_unshare_container_at_index( + &r->high_low_container, + (uint16_t)i); // TODO: this introduces extra cloning! + container_t *c = ra_get_container_at_index(&r->high_low_container, + (uint16_t)i, &type_original); + container_t *c1 = convert_run_optimize(c, type_original, &type_after); + if (type_after == RUN_CONTAINER_TYPE) { + answer = true; + } + ra_set_container_at_index(&r->high_low_container, i, c1, type_after); + } + return answer; +} + +size_t roaring_bitmap_shrink_to_fit(roaring_bitmap_t *r) { + size_t answer = 0; + for (int i = 0; i < r->high_low_container.size; i++) { + uint8_t type_original; + container_t *c = ra_get_container_at_index(&r->high_low_container, + (uint16_t)i, &type_original); + answer += container_shrink_to_fit(c, type_original); + } + answer += ra_shrink_to_fit(&r->high_low_container); + return answer; +} + +/** + * Remove run-length encoding even when it is more space efficient + * return whether a change was applied + */ +bool roaring_bitmap_remove_run_compression(roaring_bitmap_t *r) { + bool answer = false; + for (int i = 0; i < r->high_low_container.size; i++) { + uint8_t type_original, type_after; + container_t *c = ra_get_container_at_index(&r->high_low_container, + (uint16_t)i, &type_original); + if (get_container_type(c, type_original) == RUN_CONTAINER_TYPE) { + answer = true; + if (type_original == SHARED_CONTAINER_TYPE) { + run_container_t *truec = CAST_run(CAST_shared(c)->container); + int32_t card = run_container_cardinality(truec); + container_t *c1 = convert_to_bitset_or_array_container( + truec, card, &type_after); + shared_container_free(CAST_shared(c)); // frees run as needed + ra_set_container_at_index(&r->high_low_container, i, c1, + type_after); + + } else { + int32_t card = run_container_cardinality(CAST_run(c)); + container_t *c1 = convert_to_bitset_or_array_container( + CAST_run(c), card, &type_after); + run_container_free(CAST_run(c)); + ra_set_container_at_index(&r->high_low_container, i, c1, + type_after); + } + } + } + return answer; +} + +size_t roaring_bitmap_serialize(const roaring_bitmap_t *r, char *buf) { + size_t portablesize = roaring_bitmap_portable_size_in_bytes(r); + uint64_t cardinality = roaring_bitmap_get_cardinality(r); + uint64_t sizeasarray = cardinality * sizeof(uint32_t) + sizeof(uint32_t); + if (portablesize < sizeasarray) { + buf[0] = CROARING_SERIALIZATION_CONTAINER; + return roaring_bitmap_portable_serialize(r, buf + 1) + 1; + } else { + buf[0] = CROARING_SERIALIZATION_ARRAY_UINT32; + memcpy(buf + 1, &cardinality, sizeof(uint32_t)); + roaring_bitmap_to_uint32_array( + r, (uint32_t *)(buf + 1 + sizeof(uint32_t))); + return 1 + (size_t)sizeasarray; + } +} + +size_t roaring_bitmap_size_in_bytes(const roaring_bitmap_t *r) { + size_t portablesize = roaring_bitmap_portable_size_in_bytes(r); + uint64_t sizeasarray = + roaring_bitmap_get_cardinality(r) * sizeof(uint32_t) + sizeof(uint32_t); + return portablesize < sizeasarray ? portablesize + 1 + : (size_t)sizeasarray + 1; +} + +size_t roaring_bitmap_portable_size_in_bytes(const roaring_bitmap_t *r) { + return ra_portable_size_in_bytes(&r->high_low_container); +} + +roaring_bitmap_t *roaring_bitmap_portable_deserialize_safe(const char *buf, + size_t maxbytes) { + roaring_bitmap_t *ans = + (roaring_bitmap_t *)roaring_malloc(sizeof(roaring_bitmap_t)); + if (ans == NULL) { + return NULL; + } + size_t bytesread; + bool is_ok = ra_portable_deserialize(&ans->high_low_container, buf, + maxbytes, &bytesread); + if (!is_ok) { + roaring_free(ans); + return NULL; + } + roaring_bitmap_set_copy_on_write(ans, false); + if (!is_ok) { + roaring_free(ans); + return NULL; + } + return ans; +} + +roaring_bitmap_t *roaring_bitmap_portable_deserialize(const char *buf) { + return roaring_bitmap_portable_deserialize_safe(buf, SIZE_MAX); +} + +size_t roaring_bitmap_portable_deserialize_size(const char *buf, + size_t maxbytes) { + return ra_portable_deserialize_size(buf, maxbytes); +} + +size_t roaring_bitmap_portable_serialize(const roaring_bitmap_t *r, char *buf) { + return ra_portable_serialize(&r->high_low_container, buf); +} + +roaring_bitmap_t *roaring_bitmap_deserialize(const void *buf) { + const char *bufaschar = (const char *)buf; + if (bufaschar[0] == CROARING_SERIALIZATION_ARRAY_UINT32) { + /* This looks like a compressed set of uint32_t elements */ + uint32_t card; + + memcpy(&card, bufaschar + 1, sizeof(uint32_t)); + + const uint32_t *elems = + (const uint32_t *)(bufaschar + 1 + sizeof(uint32_t)); + + roaring_bitmap_t *bitmap = roaring_bitmap_create(); + if (bitmap == NULL) { + return NULL; + } + roaring_bulk_context_t context = {0}; + for (uint32_t i = 0; i < card; i++) { + // elems may not be aligned, read with memcpy + uint32_t elem; + memcpy(&elem, elems + i, sizeof(elem)); + roaring_bitmap_add_bulk(bitmap, &context, elem); + } + return bitmap; + + } else if (bufaschar[0] == CROARING_SERIALIZATION_CONTAINER) { + return roaring_bitmap_portable_deserialize(bufaschar + 1); + } else + return (NULL); +} + +roaring_bitmap_t *roaring_bitmap_deserialize_safe(const void *buf, + size_t maxbytes) { + if (maxbytes < 1) { + return NULL; + } + + const char *bufaschar = (const char *)buf; + if (bufaschar[0] == CROARING_SERIALIZATION_ARRAY_UINT32) { + if (maxbytes < 1 + sizeof(uint32_t)) { + return NULL; + } + + /* This looks like a compressed set of uint32_t elements */ + uint32_t card; + memcpy(&card, bufaschar + 1, sizeof(uint32_t)); + + // Check the buffer is big enough to contain card uint32_t elements + if (maxbytes < 1 + sizeof(uint32_t) + card * sizeof(uint32_t)) { + return NULL; + } + + const uint32_t *elems = + (const uint32_t *)(bufaschar + 1 + sizeof(uint32_t)); + + roaring_bitmap_t *bitmap = roaring_bitmap_create(); + if (bitmap == NULL) { + return NULL; + } + roaring_bulk_context_t context = {0}; + for (uint32_t i = 0; i < card; i++) { + // elems may not be aligned, read with memcpy + uint32_t elem; + memcpy(&elem, elems + i, sizeof(elem)); + roaring_bitmap_add_bulk(bitmap, &context, elem); + } + return bitmap; + + } else if (bufaschar[0] == CROARING_SERIALIZATION_CONTAINER) { + return roaring_bitmap_portable_deserialize_safe(bufaschar + 1, + maxbytes - 1); + } else + return (NULL); +} + +bool roaring_iterate(const roaring_bitmap_t *r, roaring_iterator iterator, + void *ptr) { + const roaring_array_t *ra = &r->high_low_container; + + for (int i = 0; i < ra->size; ++i) + if (!container_iterate(ra->containers[i], ra->typecodes[i], + ((uint32_t)ra->keys[i]) << 16, iterator, ptr)) { + return false; + } + return true; +} + +bool roaring_iterate64(const roaring_bitmap_t *r, roaring_iterator64 iterator, + uint64_t high_bits, void *ptr) { + const roaring_array_t *ra = &r->high_low_container; + + for (int i = 0; i < ra->size; ++i) + if (!container_iterate64(ra->containers[i], ra->typecodes[i], + ((uint32_t)ra->keys[i]) << 16, iterator, + high_bits, ptr)) { + return false; + } + return true; +} + +/**** + * begin roaring_uint32_iterator_t + *****/ + +/** + * Partially initializes the iterator. Leaves it in either state: + * 1. Invalid due to `has_value = false`, or + * 2. At a container, with the high bits set, `has_value = true`. + */ +CROARING_WARN_UNUSED static bool iter_new_container_partial_init( + roaring_uint32_iterator_t *newit) { + newit->current_value = 0; + if (newit->container_index >= newit->parent->high_low_container.size || + newit->container_index < 0) { + newit->current_value = UINT32_MAX; + return (newit->has_value = false); + } + newit->has_value = true; + // we precompute container, typecode and highbits so that successive + // iterators do not have to grab them from odd memory locations + // and have to worry about the (easily predicted) container_unwrap_shared + // call. + newit->container = + newit->parent->high_low_container.containers[newit->container_index]; + newit->typecode = + newit->parent->high_low_container.typecodes[newit->container_index]; + newit->highbits = + ((uint32_t) + newit->parent->high_low_container.keys[newit->container_index]) + << 16; + newit->container = + container_unwrap_shared(newit->container, &(newit->typecode)); + return true; +} + +/** + * Positions the iterator at the first value of the current container that the + * iterator points at, if available. + */ +CROARING_WARN_UNUSED static bool loadfirstvalue( + roaring_uint32_iterator_t *newit) { + if (iter_new_container_partial_init(newit)) { + uint16_t value = 0; + newit->container_it = + container_init_iterator(newit->container, newit->typecode, &value); + newit->current_value = newit->highbits | value; + } + return newit->has_value; +} + +/** + * Positions the iterator at the last value of the current container that the + * iterator points at, if available. + */ +CROARING_WARN_UNUSED static bool loadlastvalue( + roaring_uint32_iterator_t *newit) { + if (iter_new_container_partial_init(newit)) { + uint16_t value = 0; + newit->container_it = container_init_iterator_last( + newit->container, newit->typecode, &value); + newit->current_value = newit->highbits | value; + } + return newit->has_value; +} + +/** + * Positions the iterator at the smallest value that is larger than or equal to + * `val` within the current container that the iterator points at. Assumes such + * a value exists within the current container. + */ +CROARING_WARN_UNUSED static bool loadfirstvalue_largeorequal( + roaring_uint32_iterator_t *newit, uint32_t val) { + bool partial_init = iter_new_container_partial_init(newit); + assert(partial_init); + if (!partial_init) { + return false; + } + uint16_t value = 0; + newit->container_it = + container_init_iterator(newit->container, newit->typecode, &value); + bool found = container_iterator_lower_bound( + newit->container, newit->typecode, &newit->container_it, &value, + val & 0xFFFF); + assert(found); + if (!found) { + return false; + } + newit->current_value = newit->highbits | value; + return true; +} + +void roaring_iterator_init(const roaring_bitmap_t *r, + roaring_uint32_iterator_t *newit) { + newit->parent = r; + newit->container_index = 0; + newit->has_value = loadfirstvalue(newit); +} + +void roaring_iterator_init_last(const roaring_bitmap_t *r, + roaring_uint32_iterator_t *newit) { + newit->parent = r; + newit->container_index = newit->parent->high_low_container.size - 1; + newit->has_value = loadlastvalue(newit); +} + +roaring_uint32_iterator_t *roaring_iterator_create(const roaring_bitmap_t *r) { + roaring_uint32_iterator_t *newit = + (roaring_uint32_iterator_t *)roaring_malloc( + sizeof(roaring_uint32_iterator_t)); + if (newit == NULL) return NULL; + roaring_iterator_init(r, newit); + return newit; +} + +roaring_uint32_iterator_t *roaring_uint32_iterator_copy( + const roaring_uint32_iterator_t *it) { + roaring_uint32_iterator_t *newit = + (roaring_uint32_iterator_t *)roaring_malloc( + sizeof(roaring_uint32_iterator_t)); + memcpy(newit, it, sizeof(roaring_uint32_iterator_t)); + return newit; +} + +bool roaring_uint32_iterator_move_equalorlarger(roaring_uint32_iterator_t *it, + uint32_t val) { + uint16_t hb = val >> 16; + const int i = ra_get_index(&it->parent->high_low_container, hb); + if (i >= 0) { + uint32_t lowvalue = + container_maximum(it->parent->high_low_container.containers[i], + it->parent->high_low_container.typecodes[i]); + uint16_t lb = val & 0xFFFF; + if (lowvalue < lb) { + // will have to load first value of next container + it->container_index = i + 1; + } else { + // the value is necessarily within the range of the container + it->container_index = i; + it->has_value = loadfirstvalue_largeorequal(it, val); + return it->has_value; + } + } else { + // there is no matching, so we are going for the next container + it->container_index = -i - 1; + } + it->has_value = loadfirstvalue(it); + return it->has_value; +} + +bool roaring_uint32_iterator_advance(roaring_uint32_iterator_t *it) { + if (it->container_index >= it->parent->high_low_container.size) { + return (it->has_value = false); + } + if (it->container_index < 0) { + it->container_index = 0; + return (it->has_value = loadfirstvalue(it)); + } + uint16_t low16 = (uint16_t)it->current_value; + if (container_iterator_next(it->container, it->typecode, &it->container_it, + &low16)) { + it->current_value = it->highbits | low16; + return (it->has_value = true); + } + it->container_index++; + return (it->has_value = loadfirstvalue(it)); +} + +bool roaring_uint32_iterator_previous(roaring_uint32_iterator_t *it) { + if (it->container_index < 0) { + return (it->has_value = false); + } + if (it->container_index >= it->parent->high_low_container.size) { + it->container_index = it->parent->high_low_container.size - 1; + return (it->has_value = loadlastvalue(it)); + } + uint16_t low16 = (uint16_t)it->current_value; + if (container_iterator_prev(it->container, it->typecode, &it->container_it, + &low16)) { + it->current_value = it->highbits | low16; + return (it->has_value = true); + } + it->container_index--; + return (it->has_value = loadlastvalue(it)); +} + +uint32_t roaring_uint32_iterator_read(roaring_uint32_iterator_t *it, + uint32_t *buf, uint32_t count) { + uint32_t ret = 0; + while (it->has_value && ret < count) { + uint32_t consumed; + uint16_t low16 = (uint16_t)it->current_value; + bool has_value = container_iterator_read_into_uint32( + it->container, it->typecode, &it->container_it, it->highbits, buf, + count - ret, &consumed, &low16); + ret += consumed; + buf += consumed; + if (has_value) { + it->has_value = true; + it->current_value = it->highbits | low16; + assert(ret == count); + return ret; + } + it->container_index++; + it->has_value = loadfirstvalue(it); + } + return ret; +} + +void roaring_uint32_iterator_free(roaring_uint32_iterator_t *it) { + roaring_free(it); +} + +/**** + * end of roaring_uint32_iterator_t + *****/ + +bool roaring_bitmap_equals(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2) { + const roaring_array_t *ra1 = &r1->high_low_container; + const roaring_array_t *ra2 = &r2->high_low_container; + + if (ra1->size != ra2->size) { + return false; + } + for (int i = 0; i < ra1->size; ++i) { + if (ra1->keys[i] != ra2->keys[i]) { + return false; + } + } + for (int i = 0; i < ra1->size; ++i) { + bool areequal = container_equals(ra1->containers[i], ra1->typecodes[i], + ra2->containers[i], ra2->typecodes[i]); + if (!areequal) { + return false; + } + } + return true; +} + +bool roaring_bitmap_is_subset(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2) { + const roaring_array_t *ra1 = &r1->high_low_container; + const roaring_array_t *ra2 = &r2->high_low_container; + + const int length1 = ra1->size, length2 = ra2->size; + + int pos1 = 0, pos2 = 0; + + while (pos1 < length1 && pos2 < length2) { + const uint16_t s1 = ra_get_key_at_index(ra1, (uint16_t)pos1); + const uint16_t s2 = ra_get_key_at_index(ra2, (uint16_t)pos2); + + if (s1 == s2) { + uint8_t type1, type2; + container_t *c1 = + ra_get_container_at_index(ra1, (uint16_t)pos1, &type1); + container_t *c2 = + ra_get_container_at_index(ra2, (uint16_t)pos2, &type2); + if (!container_is_subset(c1, type1, c2, type2)) return false; + ++pos1; + ++pos2; + } else if (s1 < s2) { // s1 < s2 + return false; + } else { // s1 > s2 + pos2 = ra_advance_until(ra2, s1, pos2); + } + } + if (pos1 == length1) + return true; + else + return false; +} + +static void insert_flipped_container(roaring_array_t *ans_arr, + const roaring_array_t *x1_arr, uint16_t hb, + uint16_t lb_start, uint16_t lb_end) { + const int i = ra_get_index(x1_arr, hb); + const int j = ra_get_index(ans_arr, hb); + uint8_t ctype_in, ctype_out; + container_t *flipped_container = NULL; + if (i >= 0) { + container_t *container_to_flip = + ra_get_container_at_index(x1_arr, (uint16_t)i, &ctype_in); + flipped_container = + container_not_range(container_to_flip, ctype_in, (uint32_t)lb_start, + (uint32_t)(lb_end + 1), &ctype_out); + + if (container_get_cardinality(flipped_container, ctype_out)) + ra_insert_new_key_value_at(ans_arr, -j - 1, hb, flipped_container, + ctype_out); + else { + container_free(flipped_container, ctype_out); + } + } else { + flipped_container = container_range_of_ones( + (uint32_t)lb_start, (uint32_t)(lb_end + 1), &ctype_out); + ra_insert_new_key_value_at(ans_arr, -j - 1, hb, flipped_container, + ctype_out); + } +} + +static void inplace_flip_container(roaring_array_t *x1_arr, uint16_t hb, + uint16_t lb_start, uint16_t lb_end) { + const int i = ra_get_index(x1_arr, hb); + uint8_t ctype_in, ctype_out; + container_t *flipped_container = NULL; + if (i >= 0) { + container_t *container_to_flip = + ra_get_container_at_index(x1_arr, (uint16_t)i, &ctype_in); + flipped_container = container_inot_range( + container_to_flip, ctype_in, (uint32_t)lb_start, + (uint32_t)(lb_end + 1), &ctype_out); + // if a new container was created, the old one was already freed + if (container_get_cardinality(flipped_container, ctype_out)) { + ra_set_container_at_index(x1_arr, i, flipped_container, ctype_out); + } else { + container_free(flipped_container, ctype_out); + ra_remove_at_index(x1_arr, i); + } + + } else { + flipped_container = container_range_of_ones( + (uint32_t)lb_start, (uint32_t)(lb_end + 1), &ctype_out); + ra_insert_new_key_value_at(x1_arr, -i - 1, hb, flipped_container, + ctype_out); + } +} + +static void insert_fully_flipped_container(roaring_array_t *ans_arr, + const roaring_array_t *x1_arr, + uint16_t hb) { + const int i = ra_get_index(x1_arr, hb); + const int j = ra_get_index(ans_arr, hb); + uint8_t ctype_in, ctype_out; + container_t *flipped_container = NULL; + if (i >= 0) { + container_t *container_to_flip = + ra_get_container_at_index(x1_arr, (uint16_t)i, &ctype_in); + flipped_container = + container_not(container_to_flip, ctype_in, &ctype_out); + if (container_get_cardinality(flipped_container, ctype_out)) + ra_insert_new_key_value_at(ans_arr, -j - 1, hb, flipped_container, + ctype_out); + else { + container_free(flipped_container, ctype_out); + } + } else { + flipped_container = container_range_of_ones(0U, 0x10000U, &ctype_out); + ra_insert_new_key_value_at(ans_arr, -j - 1, hb, flipped_container, + ctype_out); + } +} + +static void inplace_fully_flip_container(roaring_array_t *x1_arr, uint16_t hb) { + const int i = ra_get_index(x1_arr, hb); + uint8_t ctype_in, ctype_out; + container_t *flipped_container = NULL; + if (i >= 0) { + container_t *container_to_flip = + ra_get_container_at_index(x1_arr, (uint16_t)i, &ctype_in); + flipped_container = + container_inot(container_to_flip, ctype_in, &ctype_out); + + if (container_get_cardinality(flipped_container, ctype_out)) { + ra_set_container_at_index(x1_arr, i, flipped_container, ctype_out); + } else { + container_free(flipped_container, ctype_out); + ra_remove_at_index(x1_arr, i); + } + + } else { + flipped_container = container_range_of_ones(0U, 0x10000U, &ctype_out); + ra_insert_new_key_value_at(x1_arr, -i - 1, hb, flipped_container, + ctype_out); + } +} + +roaring_bitmap_t *roaring_bitmap_flip(const roaring_bitmap_t *x1, + uint64_t range_start, + uint64_t range_end) { + if (range_start >= range_end) { + return roaring_bitmap_copy(x1); + } + if (range_end >= UINT64_C(0x100000000)) { + range_end = UINT64_C(0x100000000); + } + + roaring_bitmap_t *ans = roaring_bitmap_create(); + roaring_bitmap_set_copy_on_write(ans, is_cow(x1)); + + uint16_t hb_start = (uint16_t)(range_start >> 16); + const uint16_t lb_start = (uint16_t)range_start; // & 0xFFFF; + uint16_t hb_end = (uint16_t)((range_end - 1) >> 16); + const uint16_t lb_end = (uint16_t)(range_end - 1); // & 0xFFFF; + + ra_append_copies_until(&ans->high_low_container, &x1->high_low_container, + hb_start, is_cow(x1)); + if (hb_start == hb_end) { + insert_flipped_container(&ans->high_low_container, + &x1->high_low_container, hb_start, lb_start, + lb_end); + } else { + // start and end containers are distinct + if (lb_start > 0) { + // handle first (partial) container + insert_flipped_container(&ans->high_low_container, + &x1->high_low_container, hb_start, + lb_start, 0xFFFF); + ++hb_start; // for the full containers. Can't wrap. + } + + if (lb_end != 0xFFFF) --hb_end; // later we'll handle the partial block + + for (uint32_t hb = hb_start; hb <= hb_end; ++hb) { + insert_fully_flipped_container(&ans->high_low_container, + &x1->high_low_container, + (uint16_t)hb); + } + + // handle a partial final container + if (lb_end != 0xFFFF) { + insert_flipped_container(&ans->high_low_container, + &x1->high_low_container, hb_end + 1, 0, + lb_end); + ++hb_end; + } + } + ra_append_copies_after(&ans->high_low_container, &x1->high_low_container, + hb_end, is_cow(x1)); + return ans; +} + +void roaring_bitmap_flip_inplace(roaring_bitmap_t *x1, uint64_t range_start, + uint64_t range_end) { + if (range_start >= range_end) { + return; // empty range + } + if (range_end >= UINT64_C(0x100000000)) { + range_end = UINT64_C(0x100000000); + } + + uint16_t hb_start = (uint16_t)(range_start >> 16); + const uint16_t lb_start = (uint16_t)range_start; + uint16_t hb_end = (uint16_t)((range_end - 1) >> 16); + const uint16_t lb_end = (uint16_t)(range_end - 1); + + if (hb_start == hb_end) { + inplace_flip_container(&x1->high_low_container, hb_start, lb_start, + lb_end); + } else { + // start and end containers are distinct + if (lb_start > 0) { + // handle first (partial) container + inplace_flip_container(&x1->high_low_container, hb_start, lb_start, + 0xFFFF); + ++hb_start; // for the full containers. Can't wrap. + } + + if (lb_end != 0xFFFF) --hb_end; + + for (uint32_t hb = hb_start; hb <= hb_end; ++hb) { + inplace_fully_flip_container(&x1->high_low_container, (uint16_t)hb); + } + // handle a partial final container + if (lb_end != 0xFFFF) { + inplace_flip_container(&x1->high_low_container, hb_end + 1, 0, + lb_end); + ++hb_end; + } + } +} + +static void offset_append_with_merge(roaring_array_t *ra, int k, container_t *c, + uint8_t t) { + int size = ra_get_size(ra); + if (size == 0 || ra_get_key_at_index(ra, (uint16_t)(size - 1)) != k) { + // No merge. + ra_append(ra, (uint16_t)k, c, t); + return; + } + + uint8_t last_t, new_t; + container_t *last_c, *new_c; + + // NOTE: we don't need to unwrap here, since we added last_c ourselves + // we have the certainty it's not a shared container. + // The same applies to c, as it's the result of calling container_offset. + last_c = ra_get_container_at_index(ra, (uint16_t)(size - 1), &last_t); + new_c = container_ior(last_c, last_t, c, t, &new_t); + + ra_set_container_at_index(ra, size - 1, new_c, new_t); + + // Comparison of pointers of different origin is UB (or so claim some + // compiler makers), so we compare their bit representation only. + if ((uintptr_t)last_c != (uintptr_t)new_c) { + container_free(last_c, last_t); + } + container_free(c, t); +} + +// roaring_bitmap_add_offset adds the value 'offset' to each and every value in +// a bitmap, generating a new bitmap in the process. If offset + element is +// outside of the range [0,2^32), that the element will be dropped. +// We need "offset" to be 64 bits because we want to support values +// between -0xFFFFFFFF up to +0xFFFFFFFF. +roaring_bitmap_t *roaring_bitmap_add_offset(const roaring_bitmap_t *bm, + int64_t offset) { + roaring_bitmap_t *answer; + roaring_array_t *ans_ra; + int64_t container_offset; + uint16_t in_offset; + + const roaring_array_t *bm_ra = &bm->high_low_container; + int length = bm_ra->size; + + if (offset == 0) { + return roaring_bitmap_copy(bm); + } + + container_offset = offset >> 16; + in_offset = (uint16_t)(offset - container_offset * (1 << 16)); + + answer = roaring_bitmap_create(); + bool cow = is_cow(bm); + roaring_bitmap_set_copy_on_write(answer, cow); + + ans_ra = &answer->high_low_container; + + if (in_offset == 0) { + ans_ra = &answer->high_low_container; + + for (int i = 0, j = 0; i < length; ++i) { + int64_t key = ra_get_key_at_index(bm_ra, (uint16_t)i); + key += container_offset; + + if (key < 0 || key >= (1 << 16)) { + continue; + } + ra_append_copy(ans_ra, bm_ra, (uint16_t)i, cow); + ans_ra->keys[j++] = (uint16_t)key; + } + return answer; + } + + uint8_t t; + const container_t *c; + container_t *lo, *hi, **lo_ptr, **hi_ptr; + int64_t k; + + for (int i = 0; i < length; ++i) { + lo = hi = NULL; + lo_ptr = hi_ptr = NULL; + + k = ra_get_key_at_index(bm_ra, (uint16_t)i) + container_offset; + if (k >= 0 && k < (1 << 16)) { + lo_ptr = &lo; + } + if (k + 1 >= 0 && k + 1 < (1 << 16)) { + hi_ptr = &hi; + } + if (lo_ptr == NULL && hi_ptr == NULL) { + continue; + } + c = ra_get_container_at_index(bm_ra, (uint16_t)i, &t); + c = container_unwrap_shared(c, &t); + + container_add_offset(c, t, lo_ptr, hi_ptr, in_offset); + if (lo != NULL) { + offset_append_with_merge(ans_ra, (int)k, lo, t); + } + if (hi != NULL) { + ra_append(ans_ra, (uint16_t)(k + 1), hi, t); + } + // the `lo` and `hi` container type always keep same as container `c`. + // in the case of `container_add_offset` on bitset container, `lo` and + // `hi` may has small cardinality, they must be repaired to array + // container. + } + + roaring_bitmap_repair_after_lazy(answer); // do required type conversions. + return answer; +} + +roaring_bitmap_t *roaring_bitmap_lazy_or(const roaring_bitmap_t *x1, + const roaring_bitmap_t *x2, + const bool bitsetconversion) { + uint8_t result_type = 0; + const int length1 = x1->high_low_container.size, + length2 = x2->high_low_container.size; + if (0 == length1) { + return roaring_bitmap_copy(x2); + } + if (0 == length2) { + return roaring_bitmap_copy(x1); + } + roaring_bitmap_t *answer = + roaring_bitmap_create_with_capacity(length1 + length2); + roaring_bitmap_set_copy_on_write(answer, is_cow(x1) || is_cow(x2)); + int pos1 = 0, pos2 = 0; + uint8_t type1, type2; + uint16_t s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + uint16_t s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + while (true) { + if (s1 == s2) { + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + container_t *c; + if (bitsetconversion && + (get_container_type(c1, type1) != BITSET_CONTAINER_TYPE) && + (get_container_type(c2, type2) != BITSET_CONTAINER_TYPE)) { + container_t *newc1 = + container_mutable_unwrap_shared(c1, &type1); + newc1 = container_to_bitset(newc1, type1); + type1 = BITSET_CONTAINER_TYPE; + c = container_lazy_ior(newc1, type1, c2, type2, &result_type); + if (c != newc1) { // should not happen + container_free(newc1, type1); + } + } else { + c = container_lazy_or(c1, type1, c2, type2, &result_type); + } + // since we assume that the initial containers are non-empty, + // the + // result here + // can only be non-empty + ra_append(&answer->high_low_container, s1, c, result_type); + ++pos1; + ++pos2; + if (pos1 == length1) break; + if (pos2 == length2) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + + } else if (s1 < s2) { // s1 < s2 + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + c1 = get_copy_of_container(c1, &type1, is_cow(x1)); + if (is_cow(x1)) { + ra_set_container_at_index(&x1->high_low_container, pos1, c1, + type1); + } + ra_append(&answer->high_low_container, s1, c1, type1); + pos1++; + if (pos1 == length1) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + + } else { // s1 > s2 + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + c2 = get_copy_of_container(c2, &type2, is_cow(x2)); + if (is_cow(x2)) { + ra_set_container_at_index(&x2->high_low_container, pos2, c2, + type2); + } + ra_append(&answer->high_low_container, s2, c2, type2); + pos2++; + if (pos2 == length2) break; + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + } + } + if (pos1 == length1) { + ra_append_copy_range(&answer->high_low_container, + &x2->high_low_container, pos2, length2, + is_cow(x2)); + } else if (pos2 == length2) { + ra_append_copy_range(&answer->high_low_container, + &x1->high_low_container, pos1, length1, + is_cow(x1)); + } + return answer; +} + +void roaring_bitmap_lazy_or_inplace(roaring_bitmap_t *x1, + const roaring_bitmap_t *x2, + const bool bitsetconversion) { + uint8_t result_type = 0; + int length1 = x1->high_low_container.size; + const int length2 = x2->high_low_container.size; + + if (0 == length2) return; + + if (0 == length1) { + roaring_bitmap_overwrite(x1, x2); + return; + } + int pos1 = 0, pos2 = 0; + uint8_t type1, type2; + uint16_t s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + uint16_t s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + while (true) { + if (s1 == s2) { + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + if (!container_is_full(c1, type1)) { + if ((bitsetconversion == false) || + (get_container_type(c1, type1) == BITSET_CONTAINER_TYPE)) { + c1 = get_writable_copy_if_shared(c1, &type1); + } else { + // convert to bitset + container_t *old_c1 = c1; + uint8_t old_type1 = type1; + c1 = container_mutable_unwrap_shared(c1, &type1); + c1 = container_to_bitset(c1, type1); + container_free(old_c1, old_type1); + type1 = BITSET_CONTAINER_TYPE; + } + + container_t *c2 = ra_get_container_at_index( + &x2->high_low_container, (uint16_t)pos2, &type2); + container_t *c = + container_lazy_ior(c1, type1, c2, type2, &result_type); + + if (c != c1) { // in this instance a new container was created, + // and we need to free the old one + container_free(c1, type1); + } + + ra_set_container_at_index(&x1->high_low_container, pos1, c, + result_type); + } + ++pos1; + ++pos2; + if (pos1 == length1) break; + if (pos2 == length2) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + + } else if (s1 < s2) { // s1 < s2 + pos1++; + if (pos1 == length1) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + + } else { // s1 > s2 + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + // container_t *c2_clone = container_clone(c2, type2); + c2 = get_copy_of_container(c2, &type2, is_cow(x2)); + if (is_cow(x2)) { + ra_set_container_at_index(&x2->high_low_container, pos2, c2, + type2); + } + ra_insert_new_key_value_at(&x1->high_low_container, pos1, s2, c2, + type2); + pos1++; + length1++; + pos2++; + if (pos2 == length2) break; + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + } + } + if (pos1 == length1) { + ra_append_copy_range(&x1->high_low_container, &x2->high_low_container, + pos2, length2, is_cow(x2)); + } +} + +roaring_bitmap_t *roaring_bitmap_lazy_xor(const roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + uint8_t result_type = 0; + const int length1 = x1->high_low_container.size, + length2 = x2->high_low_container.size; + if (0 == length1) { + return roaring_bitmap_copy(x2); + } + if (0 == length2) { + return roaring_bitmap_copy(x1); + } + roaring_bitmap_t *answer = + roaring_bitmap_create_with_capacity(length1 + length2); + roaring_bitmap_set_copy_on_write(answer, is_cow(x1) || is_cow(x2)); + int pos1 = 0, pos2 = 0; + uint8_t type1, type2; + uint16_t s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + uint16_t s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + while (true) { + if (s1 == s2) { + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + container_t *c = + container_lazy_xor(c1, type1, c2, type2, &result_type); + + if (container_nonzero_cardinality(c, result_type)) { + ra_append(&answer->high_low_container, s1, c, result_type); + } else { + container_free(c, result_type); + } + + ++pos1; + ++pos2; + if (pos1 == length1) break; + if (pos2 == length2) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + + } else if (s1 < s2) { // s1 < s2 + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + c1 = get_copy_of_container(c1, &type1, is_cow(x1)); + if (is_cow(x1)) { + ra_set_container_at_index(&x1->high_low_container, pos1, c1, + type1); + } + ra_append(&answer->high_low_container, s1, c1, type1); + pos1++; + if (pos1 == length1) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + + } else { // s1 > s2 + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + c2 = get_copy_of_container(c2, &type2, is_cow(x2)); + if (is_cow(x2)) { + ra_set_container_at_index(&x2->high_low_container, pos2, c2, + type2); + } + ra_append(&answer->high_low_container, s2, c2, type2); + pos2++; + if (pos2 == length2) break; + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + } + } + if (pos1 == length1) { + ra_append_copy_range(&answer->high_low_container, + &x2->high_low_container, pos2, length2, + is_cow(x2)); + } else if (pos2 == length2) { + ra_append_copy_range(&answer->high_low_container, + &x1->high_low_container, pos1, length1, + is_cow(x1)); + } + return answer; +} + +void roaring_bitmap_lazy_xor_inplace(roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + assert(x1 != x2); + uint8_t result_type = 0; + int length1 = x1->high_low_container.size; + const int length2 = x2->high_low_container.size; + + if (0 == length2) return; + + if (0 == length1) { + roaring_bitmap_overwrite(x1, x2); + return; + } + int pos1 = 0, pos2 = 0; + uint8_t type1, type2; + uint16_t s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + uint16_t s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + while (true) { + if (s1 == s2) { + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + + // We do the computation "in place" only when c1 is not a shared + // container. Rationale: using a shared container safely with in + // place computation would require making a copy and then doing the + // computation in place which is likely less efficient than avoiding + // in place entirely and always generating a new container. + + container_t *c; + if (type1 == SHARED_CONTAINER_TYPE) { + c = container_lazy_xor(c1, type1, c2, type2, &result_type); + shared_container_free(CAST_shared(c1)); // release + } else { + c = container_lazy_ixor(c1, type1, c2, type2, &result_type); + } + + if (container_nonzero_cardinality(c, result_type)) { + ra_set_container_at_index(&x1->high_low_container, pos1, c, + result_type); + ++pos1; + } else { + container_free(c, result_type); + ra_remove_at_index(&x1->high_low_container, pos1); + --length1; + } + ++pos2; + if (pos1 == length1) break; + if (pos2 == length2) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + + } else if (s1 < s2) { // s1 < s2 + pos1++; + if (pos1 == length1) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + + } else { // s1 > s2 + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + // container_t *c2_clone = container_clone(c2, type2); + c2 = get_copy_of_container(c2, &type2, is_cow(x2)); + if (is_cow(x2)) { + ra_set_container_at_index(&x2->high_low_container, pos2, c2, + type2); + } + ra_insert_new_key_value_at(&x1->high_low_container, pos1, s2, c2, + type2); + pos1++; + length1++; + pos2++; + if (pos2 == length2) break; + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + } + } + if (pos1 == length1) { + ra_append_copy_range(&x1->high_low_container, &x2->high_low_container, + pos2, length2, is_cow(x2)); + } +} + +void roaring_bitmap_repair_after_lazy(roaring_bitmap_t *r) { + roaring_array_t *ra = &r->high_low_container; + + for (int i = 0; i < ra->size; ++i) { + const uint8_t old_type = ra->typecodes[i]; + container_t *old_c = ra->containers[i]; + uint8_t new_type = old_type; + container_t *new_c = container_repair_after_lazy(old_c, &new_type); + ra->containers[i] = new_c; + ra->typecodes[i] = new_type; + } +} + +/** + * roaring_bitmap_rank returns the number of integers that are smaller or equal + * to x. + */ +uint64_t roaring_bitmap_rank(const roaring_bitmap_t *bm, uint32_t x) { + uint64_t size = 0; + uint32_t xhigh = x >> 16; + for (int i = 0; i < bm->high_low_container.size; i++) { + uint32_t key = bm->high_low_container.keys[i]; + if (xhigh > key) { + size += + container_get_cardinality(bm->high_low_container.containers[i], + bm->high_low_container.typecodes[i]); + } else if (xhigh == key) { + return size + container_rank(bm->high_low_container.containers[i], + bm->high_low_container.typecodes[i], + x & 0xFFFF); + } else { + return size; + } + } + return size; +} +void roaring_bitmap_rank_many(const roaring_bitmap_t *bm, const uint32_t *begin, + const uint32_t *end, uint64_t *ans) { + uint64_t size = 0; + + int i = 0; + const uint32_t *iter = begin; + while (i < bm->high_low_container.size && iter != end) { + uint32_t x = *iter; + uint32_t xhigh = x >> 16; + uint32_t key = bm->high_low_container.keys[i]; + if (xhigh > key) { + size += + container_get_cardinality(bm->high_low_container.containers[i], + bm->high_low_container.typecodes[i]); + i++; + } else if (xhigh == key) { + uint32_t consumed = container_rank_many( + bm->high_low_container.containers[i], + bm->high_low_container.typecodes[i], size, iter, end, ans); + iter += consumed; + ans += consumed; + } else { + *(ans++) = size; + iter++; + } + } +} + +/** + * roaring_bitmap_get_index returns the index of x, if not exsist return -1. + */ +int64_t roaring_bitmap_get_index(const roaring_bitmap_t *bm, uint32_t x) { + int64_t index = 0; + const uint16_t xhigh = x >> 16; + int32_t high_idx = ra_get_index(&bm->high_low_container, xhigh); + if (high_idx < 0) return -1; + + for (int i = 0; i < bm->high_low_container.size; i++) { + uint32_t key = bm->high_low_container.keys[i]; + if (xhigh > key) { + index += + container_get_cardinality(bm->high_low_container.containers[i], + bm->high_low_container.typecodes[i]); + } else if (xhigh == key) { + int32_t low_idx = container_get_index( + bm->high_low_container.containers[high_idx], + bm->high_low_container.typecodes[high_idx], x & 0xFFFF); + if (low_idx < 0) return -1; + return index + low_idx; + } else { + return -1; + } + } + return index; +} + +/** + * roaring_bitmap_smallest returns the smallest value in the set. + * Returns UINT32_MAX if the set is empty. + */ +uint32_t roaring_bitmap_minimum(const roaring_bitmap_t *bm) { + if (bm->high_low_container.size > 0) { + container_t *c = bm->high_low_container.containers[0]; + uint8_t type = bm->high_low_container.typecodes[0]; + uint32_t key = bm->high_low_container.keys[0]; + uint32_t lowvalue = container_minimum(c, type); + return lowvalue | (key << 16); + } + return UINT32_MAX; +} + +/** + * roaring_bitmap_smallest returns the greatest value in the set. + * Returns 0 if the set is empty. + */ +uint32_t roaring_bitmap_maximum(const roaring_bitmap_t *bm) { + if (bm->high_low_container.size > 0) { + container_t *container = + bm->high_low_container.containers[bm->high_low_container.size - 1]; + uint8_t typecode = + bm->high_low_container.typecodes[bm->high_low_container.size - 1]; + uint32_t key = + bm->high_low_container.keys[bm->high_low_container.size - 1]; + uint32_t lowvalue = container_maximum(container, typecode); + return lowvalue | (key << 16); + } + return 0; +} + +bool roaring_bitmap_select(const roaring_bitmap_t *bm, uint32_t rank, + uint32_t *element) { + container_t *container; + uint8_t typecode; + uint16_t key; + uint32_t start_rank = 0; + int i = 0; + bool valid = false; + while (!valid && i < bm->high_low_container.size) { + container = bm->high_low_container.containers[i]; + typecode = bm->high_low_container.typecodes[i]; + valid = + container_select(container, typecode, &start_rank, rank, element); + i++; + } + + if (valid) { + key = bm->high_low_container.keys[i - 1]; + *element |= (((uint32_t)key) << 16); // w/o cast, key promotes signed + return true; + } else + return false; +} + +bool roaring_bitmap_intersect(const roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + const int length1 = x1->high_low_container.size, + length2 = x2->high_low_container.size; + uint64_t answer = 0; + int pos1 = 0, pos2 = 0; + + while (pos1 < length1 && pos2 < length2) { + const uint16_t s1 = + ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + const uint16_t s2 = + ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + + if (s1 == s2) { + uint8_t type1, type2; + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + if (container_intersect(c1, type1, c2, type2)) return true; + ++pos1; + ++pos2; + } else if (s1 < s2) { // s1 < s2 + pos1 = ra_advance_until(&x1->high_low_container, s2, pos1); + } else { // s1 > s2 + pos2 = ra_advance_until(&x2->high_low_container, s1, pos2); + } + } + return answer != 0; +} + +bool roaring_bitmap_intersect_with_range(const roaring_bitmap_t *bm, uint64_t x, + uint64_t y) { + if (x >= y) { + // Empty range. + return false; + } + roaring_uint32_iterator_t it; + roaring_iterator_init(bm, &it); + if (!roaring_uint32_iterator_move_equalorlarger(&it, (uint32_t)x)) { + // No values above x. + return false; + } + if (it.current_value >= y) { + // No values below y. + return false; + } + return true; +} + +uint64_t roaring_bitmap_and_cardinality(const roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + const int length1 = x1->high_low_container.size, + length2 = x2->high_low_container.size; + uint64_t answer = 0; + int pos1 = 0, pos2 = 0; + while (pos1 < length1 && pos2 < length2) { + const uint16_t s1 = + ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + const uint16_t s2 = + ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + + if (s1 == s2) { + uint8_t type1, type2; + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + answer += container_and_cardinality(c1, type1, c2, type2); + ++pos1; + ++pos2; + } else if (s1 < s2) { // s1 < s2 + pos1 = ra_advance_until(&x1->high_low_container, s2, pos1); + } else { // s1 > s2 + pos2 = ra_advance_until(&x2->high_low_container, s1, pos2); + } + } + return answer; +} + +double roaring_bitmap_jaccard_index(const roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + const uint64_t c1 = roaring_bitmap_get_cardinality(x1); + const uint64_t c2 = roaring_bitmap_get_cardinality(x2); + const uint64_t inter = roaring_bitmap_and_cardinality(x1, x2); + return (double)inter / (double)(c1 + c2 - inter); +} + +uint64_t roaring_bitmap_or_cardinality(const roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + const uint64_t c1 = roaring_bitmap_get_cardinality(x1); + const uint64_t c2 = roaring_bitmap_get_cardinality(x2); + const uint64_t inter = roaring_bitmap_and_cardinality(x1, x2); + return c1 + c2 - inter; +} + +uint64_t roaring_bitmap_andnot_cardinality(const roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + const uint64_t c1 = roaring_bitmap_get_cardinality(x1); + const uint64_t inter = roaring_bitmap_and_cardinality(x1, x2); + return c1 - inter; +} + +uint64_t roaring_bitmap_xor_cardinality(const roaring_bitmap_t *x1, + const roaring_bitmap_t *x2) { + const uint64_t c1 = roaring_bitmap_get_cardinality(x1); + const uint64_t c2 = roaring_bitmap_get_cardinality(x2); + const uint64_t inter = roaring_bitmap_and_cardinality(x1, x2); + return c1 + c2 - 2 * inter; +} + +bool roaring_bitmap_contains(const roaring_bitmap_t *r, uint32_t val) { + const uint16_t hb = val >> 16; + /* + * the next function call involves a binary search and lots of branching. + */ + int32_t i = ra_get_index(&r->high_low_container, hb); + if (i < 0) return false; + + uint8_t typecode; + // next call ought to be cheap + container_t *container = ra_get_container_at_index(&r->high_low_container, + (uint16_t)i, &typecode); + // rest might be a tad expensive, possibly involving another round of binary + // search + return container_contains(container, val & 0xFFFF, typecode); +} + +/** + * Check whether a range of values from range_start (included) to range_end + * (excluded) is present + */ +bool roaring_bitmap_contains_range(const roaring_bitmap_t *r, + uint64_t range_start, uint64_t range_end) { + if (range_end >= UINT64_C(0x100000000)) { + range_end = UINT64_C(0x100000000); + } + if (range_start >= range_end) + return true; // empty range are always contained! + if (range_end - range_start == 1) + return roaring_bitmap_contains(r, (uint32_t)range_start); + uint16_t hb_rs = (uint16_t)(range_start >> 16); + uint16_t hb_re = (uint16_t)((range_end - 1) >> 16); + const int32_t span = hb_re - hb_rs; + const int32_t hlc_sz = ra_get_size(&r->high_low_container); + if (hlc_sz < span + 1) { + return false; + } + int32_t is = ra_get_index(&r->high_low_container, hb_rs); + int32_t ie = ra_get_index(&r->high_low_container, hb_re); + if ((ie < 0) || (is < 0) || ((ie - is) != span) || ie >= hlc_sz) { + return false; + } + const uint32_t lb_rs = range_start & 0xFFFF; + const uint32_t lb_re = ((range_end - 1) & 0xFFFF) + 1; + uint8_t type; + container_t *c = + ra_get_container_at_index(&r->high_low_container, (uint16_t)is, &type); + if (hb_rs == hb_re) { + return container_contains_range(c, lb_rs, lb_re, type); + } + if (!container_contains_range(c, lb_rs, 1 << 16, type)) { + return false; + } + c = ra_get_container_at_index(&r->high_low_container, (uint16_t)ie, &type); + if (!container_contains_range(c, 0, lb_re, type)) { + return false; + } + for (int32_t i = is + 1; i < ie; ++i) { + c = ra_get_container_at_index(&r->high_low_container, (uint16_t)i, + &type); + if (!container_is_full(c, type)) { + return false; + } + } + return true; +} + +bool roaring_bitmap_is_strict_subset(const roaring_bitmap_t *r1, + const roaring_bitmap_t *r2) { + return (roaring_bitmap_get_cardinality(r2) > + roaring_bitmap_get_cardinality(r1) && + roaring_bitmap_is_subset(r1, r2)); +} + +/* + * FROZEN SERIALIZATION FORMAT DESCRIPTION + * + * -- (beginning must be aligned by 32 bytes) -- + * uint64_t[BITSET_CONTAINER_SIZE_IN_WORDS * + * num_bitset_containers] rle16_t[total number of rle elements in + * all run containers] uint16_t[total number of array elements in + * all array containers] uint16_t[num_containers] + * uint16_t[num_containers] uint8_t[num_containers]
+ * uint32_t + * + *
is a 4-byte value which is a bit union of FROZEN_COOKIE (15 bits) + * and the number of containers (17 bits). + * + * stores number of elements for every container. + * Its meaning depends on container type. + * For array and bitset containers, this value is the container cardinality + * minus one. For run container, it is the number of rle_t elements (n_runs). + * + * ,, are flat arrays of elements of + * all containers of respective type. + * + * <*_data> and are kept close together because they are not accessed + * during deserilization. This may reduce IO in case of large mmaped bitmaps. + * All members have their native alignments during deserilization except + *
, which is not guaranteed to be aligned by 4 bytes. + */ + +size_t roaring_bitmap_frozen_size_in_bytes(const roaring_bitmap_t *rb) { + const roaring_array_t *ra = &rb->high_low_container; + size_t num_bytes = 0; + for (int32_t i = 0; i < ra->size; i++) { + switch (ra->typecodes[i]) { + case BITSET_CONTAINER_TYPE: { + num_bytes += BITSET_CONTAINER_SIZE_IN_WORDS * sizeof(uint64_t); + break; + } + case RUN_CONTAINER_TYPE: { + const run_container_t *rc = const_CAST_run(ra->containers[i]); + num_bytes += rc->n_runs * sizeof(rle16_t); + break; + } + case ARRAY_CONTAINER_TYPE: { + const array_container_t *ac = + const_CAST_array(ra->containers[i]); + num_bytes += ac->cardinality * sizeof(uint16_t); + break; + } + default: + roaring_unreachable; + } + } + num_bytes += (2 + 2 + 1) * ra->size; // keys, counts, typecodes + num_bytes += 4; // header + return num_bytes; +} + +inline static void *arena_alloc(char **arena, size_t num_bytes) { + char *res = *arena; + *arena += num_bytes; + return res; +} + +void roaring_bitmap_frozen_serialize(const roaring_bitmap_t *rb, char *buf) { + /* + * Note: we do not require user to supply a specifically aligned buffer. + * Thus we have to use memcpy() everywhere. + */ + + const roaring_array_t *ra = &rb->high_low_container; + + size_t bitset_zone_size = 0; + size_t run_zone_size = 0; + size_t array_zone_size = 0; + for (int32_t i = 0; i < ra->size; i++) { + switch (ra->typecodes[i]) { + case BITSET_CONTAINER_TYPE: { + bitset_zone_size += + BITSET_CONTAINER_SIZE_IN_WORDS * sizeof(uint64_t); + break; + } + case RUN_CONTAINER_TYPE: { + const run_container_t *rc = const_CAST_run(ra->containers[i]); + run_zone_size += rc->n_runs * sizeof(rle16_t); + break; + } + case ARRAY_CONTAINER_TYPE: { + const array_container_t *ac = + const_CAST_array(ra->containers[i]); + array_zone_size += ac->cardinality * sizeof(uint16_t); + break; + } + default: + roaring_unreachable; + } + } + + uint64_t *bitset_zone = (uint64_t *)arena_alloc(&buf, bitset_zone_size); + rle16_t *run_zone = (rle16_t *)arena_alloc(&buf, run_zone_size); + uint16_t *array_zone = (uint16_t *)arena_alloc(&buf, array_zone_size); + uint16_t *key_zone = (uint16_t *)arena_alloc(&buf, 2 * ra->size); + uint16_t *count_zone = (uint16_t *)arena_alloc(&buf, 2 * ra->size); + uint8_t *typecode_zone = (uint8_t *)arena_alloc(&buf, ra->size); + uint32_t *header_zone = (uint32_t *)arena_alloc(&buf, 4); + + for (int32_t i = 0; i < ra->size; i++) { + uint16_t count; + switch (ra->typecodes[i]) { + case BITSET_CONTAINER_TYPE: { + const bitset_container_t *bc = + const_CAST_bitset(ra->containers[i]); + memcpy(bitset_zone, bc->words, + BITSET_CONTAINER_SIZE_IN_WORDS * sizeof(uint64_t)); + bitset_zone += BITSET_CONTAINER_SIZE_IN_WORDS; + if (bc->cardinality != BITSET_UNKNOWN_CARDINALITY) { + count = (uint16_t)(bc->cardinality - 1); + } else { + count = + (uint16_t)(bitset_container_compute_cardinality(bc) - + 1); + } + break; + } + case RUN_CONTAINER_TYPE: { + const run_container_t *rc = const_CAST_run(ra->containers[i]); + size_t num_bytes = rc->n_runs * sizeof(rle16_t); + memcpy(run_zone, rc->runs, num_bytes); + run_zone += rc->n_runs; + count = (uint16_t)rc->n_runs; + break; + } + case ARRAY_CONTAINER_TYPE: { + const array_container_t *ac = + const_CAST_array(ra->containers[i]); + size_t num_bytes = ac->cardinality * sizeof(uint16_t); + memcpy(array_zone, ac->array, num_bytes); + array_zone += ac->cardinality; + count = (uint16_t)(ac->cardinality - 1); + break; + } + default: + roaring_unreachable; + } + memcpy(&count_zone[i], &count, 2); + } + memcpy(key_zone, ra->keys, ra->size * sizeof(uint16_t)); + memcpy(typecode_zone, ra->typecodes, ra->size * sizeof(uint8_t)); + uint32_t header = ((uint32_t)ra->size << 15) | FROZEN_COOKIE; + memcpy(header_zone, &header, 4); +} + +const roaring_bitmap_t *roaring_bitmap_frozen_view(const char *buf, + size_t length) { + if ((uintptr_t)buf % 32 != 0) { + return NULL; + } + + // cookie and num_containers + if (length < 4) { + return NULL; + } + uint32_t header; + memcpy(&header, buf + length - 4, 4); // header may be misaligned + if ((header & 0x7FFF) != FROZEN_COOKIE) { + return NULL; + } + int32_t num_containers = (header >> 15); + + // typecodes, counts and keys + if (length < 4 + (size_t)num_containers * (1 + 2 + 2)) { + return NULL; + } + uint16_t *keys = (uint16_t *)(buf + length - 4 - num_containers * 5); + uint16_t *counts = (uint16_t *)(buf + length - 4 - num_containers * 3); + uint8_t *typecodes = (uint8_t *)(buf + length - 4 - num_containers * 1); + + // {bitset,array,run}_zone + int32_t num_bitset_containers = 0; + int32_t num_run_containers = 0; + int32_t num_array_containers = 0; + size_t bitset_zone_size = 0; + size_t run_zone_size = 0; + size_t array_zone_size = 0; + for (int32_t i = 0; i < num_containers; i++) { + switch (typecodes[i]) { + case BITSET_CONTAINER_TYPE: + num_bitset_containers++; + bitset_zone_size += + BITSET_CONTAINER_SIZE_IN_WORDS * sizeof(uint64_t); + break; + case RUN_CONTAINER_TYPE: + num_run_containers++; + run_zone_size += counts[i] * sizeof(rle16_t); + break; + case ARRAY_CONTAINER_TYPE: + num_array_containers++; + array_zone_size += (counts[i] + UINT32_C(1)) * sizeof(uint16_t); + break; + default: + return NULL; + } + } + if (length != bitset_zone_size + run_zone_size + array_zone_size + + 5 * num_containers + 4) { + return NULL; + } + uint64_t *bitset_zone = (uint64_t *)(buf); + rle16_t *run_zone = (rle16_t *)(buf + bitset_zone_size); + uint16_t *array_zone = (uint16_t *)(buf + bitset_zone_size + run_zone_size); + + size_t alloc_size = 0; + alloc_size += sizeof(roaring_bitmap_t); + alloc_size += num_containers * sizeof(container_t *); + alloc_size += num_bitset_containers * sizeof(bitset_container_t); + alloc_size += num_run_containers * sizeof(run_container_t); + alloc_size += num_array_containers * sizeof(array_container_t); + + char *arena = (char *)roaring_malloc(alloc_size); + if (arena == NULL) { + return NULL; + } + + roaring_bitmap_t *rb = + (roaring_bitmap_t *)arena_alloc(&arena, sizeof(roaring_bitmap_t)); + rb->high_low_container.flags = ROARING_FLAG_FROZEN; + rb->high_low_container.allocation_size = num_containers; + rb->high_low_container.size = num_containers; + rb->high_low_container.keys = (uint16_t *)keys; + rb->high_low_container.typecodes = (uint8_t *)typecodes; + rb->high_low_container.containers = (container_t **)arena_alloc( + &arena, sizeof(container_t *) * num_containers); + // Ensure offset of high_low_container.containers is known distance used in + // C++ wrapper. sizeof(roaring_bitmap_t) is used as it is the size of the + // only allocation that precedes high_low_container.containers. If this is + // changed (new allocation or changed order), this offset will also need to + // be changed in the C++ wrapper. + assert(rb == + (roaring_bitmap_t *)((char *)rb->high_low_container.containers - + sizeof(roaring_bitmap_t))); + for (int32_t i = 0; i < num_containers; i++) { + switch (typecodes[i]) { + case BITSET_CONTAINER_TYPE: { + bitset_container_t *bitset = (bitset_container_t *)arena_alloc( + &arena, sizeof(bitset_container_t)); + bitset->words = bitset_zone; + bitset->cardinality = counts[i] + UINT32_C(1); + rb->high_low_container.containers[i] = bitset; + bitset_zone += BITSET_CONTAINER_SIZE_IN_WORDS; + break; + } + case RUN_CONTAINER_TYPE: { + run_container_t *run = (run_container_t *)arena_alloc( + &arena, sizeof(run_container_t)); + run->capacity = counts[i]; + run->n_runs = counts[i]; + run->runs = run_zone; + rb->high_low_container.containers[i] = run; + run_zone += run->n_runs; + break; + } + case ARRAY_CONTAINER_TYPE: { + array_container_t *array = (array_container_t *)arena_alloc( + &arena, sizeof(array_container_t)); + array->capacity = counts[i] + UINT32_C(1); + array->cardinality = counts[i] + UINT32_C(1); + array->array = array_zone; + rb->high_low_container.containers[i] = array; + array_zone += counts[i] + UINT32_C(1); + break; + } + default: + roaring_free(arena); + return NULL; + } + } + + return rb; +} + +ALLOW_UNALIGNED +roaring_bitmap_t *roaring_bitmap_portable_deserialize_frozen(const char *buf) { + char *start_of_buf = (char *)buf; + uint32_t cookie; + int32_t num_containers; + uint16_t *descriptive_headers; + uint32_t *offset_headers = NULL; + const char *run_flag_bitset = NULL; + bool hasrun = false; + + // deserialize cookie + memcpy(&cookie, buf, sizeof(uint32_t)); + buf += sizeof(uint32_t); + if (cookie == SERIAL_COOKIE_NO_RUNCONTAINER) { + memcpy(&num_containers, buf, sizeof(int32_t)); + buf += sizeof(int32_t); + descriptive_headers = (uint16_t *)buf; + buf += num_containers * 2 * sizeof(uint16_t); + offset_headers = (uint32_t *)buf; + buf += num_containers * sizeof(uint32_t); + } else if ((cookie & 0xFFFF) == SERIAL_COOKIE) { + num_containers = (cookie >> 16) + 1; + hasrun = true; + int32_t run_flag_bitset_size = (num_containers + 7) / 8; + run_flag_bitset = buf; + buf += run_flag_bitset_size; + descriptive_headers = (uint16_t *)buf; + buf += num_containers * 2 * sizeof(uint16_t); + if (num_containers >= NO_OFFSET_THRESHOLD) { + offset_headers = (uint32_t *)buf; + buf += num_containers * sizeof(uint32_t); + } + } else { + return NULL; + } + + // calculate total size for allocation + int32_t num_bitset_containers = 0; + int32_t num_run_containers = 0; + int32_t num_array_containers = 0; + + for (int32_t i = 0; i < num_containers; i++) { + uint16_t tmp; + memcpy(&tmp, descriptive_headers + 2 * i + 1, sizeof(tmp)); + uint32_t cardinality = tmp + 1; + bool isbitmap = (cardinality > DEFAULT_MAX_SIZE); + bool isrun = false; + if (hasrun) { + if ((run_flag_bitset[i / 8] & (1 << (i % 8))) != 0) { + isbitmap = false; + isrun = true; + } + } + + if (isbitmap) { + num_bitset_containers++; + } else if (isrun) { + num_run_containers++; + } else { + num_array_containers++; + } + } + + size_t alloc_size = 0; + alloc_size += sizeof(roaring_bitmap_t); + alloc_size += num_containers * sizeof(container_t *); + alloc_size += num_bitset_containers * sizeof(bitset_container_t); + alloc_size += num_run_containers * sizeof(run_container_t); + alloc_size += num_array_containers * sizeof(array_container_t); + alloc_size += num_containers * sizeof(uint16_t); // keys + alloc_size += num_containers * sizeof(uint8_t); // typecodes + + // allocate bitmap and construct containers + char *arena = (char *)roaring_malloc(alloc_size); + if (arena == NULL) { + return NULL; + } + + roaring_bitmap_t *rb = + (roaring_bitmap_t *)arena_alloc(&arena, sizeof(roaring_bitmap_t)); + rb->high_low_container.flags = ROARING_FLAG_FROZEN; + rb->high_low_container.allocation_size = num_containers; + rb->high_low_container.size = num_containers; + rb->high_low_container.containers = (container_t **)arena_alloc( + &arena, sizeof(container_t *) * num_containers); + + uint16_t *keys = + (uint16_t *)arena_alloc(&arena, num_containers * sizeof(uint16_t)); + uint8_t *typecodes = + (uint8_t *)arena_alloc(&arena, num_containers * sizeof(uint8_t)); + + rb->high_low_container.keys = keys; + rb->high_low_container.typecodes = typecodes; + + for (int32_t i = 0; i < num_containers; i++) { + uint16_t tmp; + memcpy(&tmp, descriptive_headers + 2 * i + 1, sizeof(tmp)); + int32_t cardinality = tmp + 1; + bool isbitmap = (cardinality > DEFAULT_MAX_SIZE); + bool isrun = false; + if (hasrun) { + if ((run_flag_bitset[i / 8] & (1 << (i % 8))) != 0) { + isbitmap = false; + isrun = true; + } + } + + keys[i] = descriptive_headers[2 * i]; + + if (isbitmap) { + typecodes[i] = BITSET_CONTAINER_TYPE; + bitset_container_t *c = (bitset_container_t *)arena_alloc( + &arena, sizeof(bitset_container_t)); + c->cardinality = cardinality; + if (offset_headers != NULL) { + c->words = (uint64_t *)(start_of_buf + offset_headers[i]); + } else { + c->words = (uint64_t *)buf; + buf += BITSET_CONTAINER_SIZE_IN_WORDS * sizeof(uint64_t); + } + rb->high_low_container.containers[i] = c; + } else if (isrun) { + typecodes[i] = RUN_CONTAINER_TYPE; + run_container_t *c = + (run_container_t *)arena_alloc(&arena, sizeof(run_container_t)); + c->capacity = cardinality; + uint16_t n_runs; + if (offset_headers != NULL) { + memcpy(&n_runs, start_of_buf + offset_headers[i], + sizeof(uint16_t)); + c->n_runs = n_runs; + c->runs = (rle16_t *)(start_of_buf + offset_headers[i] + + sizeof(uint16_t)); + } else { + memcpy(&n_runs, buf, sizeof(uint16_t)); + c->n_runs = n_runs; + buf += sizeof(uint16_t); + c->runs = (rle16_t *)buf; + buf += c->n_runs * sizeof(rle16_t); + } + rb->high_low_container.containers[i] = c; + } else { + typecodes[i] = ARRAY_CONTAINER_TYPE; + array_container_t *c = (array_container_t *)arena_alloc( + &arena, sizeof(array_container_t)); + c->cardinality = cardinality; + c->capacity = cardinality; + if (offset_headers != NULL) { + c->array = (uint16_t *)(start_of_buf + offset_headers[i]); + } else { + c->array = (uint16_t *)buf; + buf += cardinality * sizeof(uint16_t); + } + rb->high_low_container.containers[i] = c; + } + } + + return rb; +} + +bool roaring_bitmap_to_bitset(const roaring_bitmap_t *r, bitset_t *bitset) { + uint32_t max_value = roaring_bitmap_maximum(r); + size_t new_array_size = (size_t)(((uint64_t)max_value + 63) / 64); + bool resize_ok = bitset_resize(bitset, new_array_size, true); + if (!resize_ok) { + return false; + } + const roaring_array_t *ra = &r->high_low_container; + for (int i = 0; i < ra->size; ++i) { + uint64_t *words = bitset->array + (ra->keys[i] << 10); + uint8_t type = ra->typecodes[i]; + const container_t *c = ra->containers[i]; + if (type == SHARED_CONTAINER_TYPE) { + c = container_unwrap_shared(c, &type); + } + switch (type) { + case BITSET_CONTAINER_TYPE: { + size_t max_word_index = new_array_size - (ra->keys[i] << 10); + if (max_word_index > 1024) { + max_word_index = 1024; + } + const bitset_container_t *src = const_CAST_bitset(c); + memcpy(words, src->words, max_word_index * sizeof(uint64_t)); + } break; + case ARRAY_CONTAINER_TYPE: { + const array_container_t *src = const_CAST_array(c); + bitset_set_list(words, src->array, src->cardinality); + } break; + case RUN_CONTAINER_TYPE: { + const run_container_t *src = const_CAST_run(c); + for (int32_t rlepos = 0; rlepos < src->n_runs; ++rlepos) { + rle16_t rle = src->runs[rlepos]; + bitset_set_lenrange(words, rle.value, rle.length); + } + } break; + default: + roaring_unreachable; + } + } + return true; +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { +#endif diff --git a/contrib/libs/croaring/src/roaring64.c b/contrib/libs/croaring/src/roaring64.c new file mode 100644 index 000000000000..c49353ced559 --- /dev/null +++ b/contrib/libs/croaring/src/roaring64.c @@ -0,0 +1,2091 @@ +#include +#include +#include +#include + +#include +#include +#include + +// For serialization / deserialization +#include +#include +// containers.h last to avoid conflict with ROARING_CONTAINER_T. +#include + +#ifdef __cplusplus +using namespace ::roaring::internal; + +extern "C" { +namespace roaring { +namespace api { +#endif + +// TODO: Copy on write. +// TODO: Error on failed allocation. + +typedef struct roaring64_bitmap_s { + art_t art; + uint8_t flags; +} roaring64_bitmap_t; + +// Leaf type of the ART used to keep the high 48 bits of each entry. +typedef struct roaring64_leaf_s { + art_val_t _pad; + uint8_t typecode; + container_t *container; +} roaring64_leaf_t; + +// Alias to make it easier to work with, since it's an internal-only type +// anyway. +typedef struct roaring64_leaf_s leaf_t; + +// Iterator struct to hold iteration state. +typedef struct roaring64_iterator_s { + const roaring64_bitmap_t *parent; + art_iterator_t art_it; + roaring_container_iterator_t container_it; + uint64_t high48; // Key that art_it points to. + + uint64_t value; + bool has_value; + + // If has_value is false, then the iterator is saturated. This field + // indicates the direction of saturation. If true, there are no more values + // in the forward direction. If false, there are no more values in the + // backward direction. + bool saturated_forward; +} roaring64_iterator_t; + +// Splits the given uint64 key into high 48 bit and low 16 bit components. +// Expects high48_out to be of length ART_KEY_BYTES. +static inline uint16_t split_key(uint64_t key, uint8_t high48_out[]) { + uint64_t tmp = croaring_htobe64(key); + memcpy(high48_out, (uint8_t *)(&tmp), ART_KEY_BYTES); + return (uint16_t)key; +} + +// Recombines the high 48 bit and low 16 bit components into a uint64 key. +// Expects high48_out to be of length ART_KEY_BYTES. +static inline uint64_t combine_key(const uint8_t high48[], uint16_t low16) { + uint64_t result = 0; + memcpy((uint8_t *)(&result), high48, ART_KEY_BYTES); + return croaring_be64toh(result) | low16; +} + +static inline uint64_t minimum(uint64_t a, uint64_t b) { + return (a < b) ? a : b; +} + +static inline leaf_t *create_leaf(container_t *container, uint8_t typecode) { + leaf_t *leaf = (leaf_t *)roaring_malloc(sizeof(leaf_t)); + leaf->container = container; + leaf->typecode = typecode; + return leaf; +} + +static inline leaf_t *copy_leaf_container(const leaf_t *leaf) { + leaf_t *result_leaf = (leaf_t *)roaring_malloc(sizeof(leaf_t)); + result_leaf->typecode = leaf->typecode; + // get_copy_of_container modifies the typecode passed in. + result_leaf->container = get_copy_of_container( + leaf->container, &result_leaf->typecode, /*copy_on_write=*/false); + return result_leaf; +} + +static inline void free_leaf(leaf_t *leaf) { roaring_free(leaf); } + +static inline int compare_high48(art_key_chunk_t key1[], + art_key_chunk_t key2[]) { + return art_compare_keys(key1, key2); +} + +static inline bool roaring64_iterator_init_at_leaf_first( + roaring64_iterator_t *it) { + it->high48 = combine_key(it->art_it.key, 0); + leaf_t *leaf = (leaf_t *)it->art_it.value; + uint16_t low16 = 0; + it->container_it = + container_init_iterator(leaf->container, leaf->typecode, &low16); + it->value = it->high48 | low16; + return (it->has_value = true); +} + +static inline bool roaring64_iterator_init_at_leaf_last( + roaring64_iterator_t *it) { + it->high48 = combine_key(it->art_it.key, 0); + leaf_t *leaf = (leaf_t *)it->art_it.value; + uint16_t low16 = 0; + it->container_it = + container_init_iterator_last(leaf->container, leaf->typecode, &low16); + it->value = it->high48 | low16; + return (it->has_value = true); +} + +static inline roaring64_iterator_t *roaring64_iterator_init_at( + const roaring64_bitmap_t *r, roaring64_iterator_t *it, bool first) { + it->parent = r; + it->art_it = art_init_iterator(&r->art, first); + it->has_value = it->art_it.value != NULL; + if (it->has_value) { + if (first) { + roaring64_iterator_init_at_leaf_first(it); + } else { + roaring64_iterator_init_at_leaf_last(it); + } + } else { + it->saturated_forward = first; + } + return it; +} + +roaring64_bitmap_t *roaring64_bitmap_create(void) { + roaring64_bitmap_t *r = + (roaring64_bitmap_t *)roaring_malloc(sizeof(roaring64_bitmap_t)); + r->art.root = NULL; + r->flags = 0; + return r; +} + +void roaring64_bitmap_free(roaring64_bitmap_t *r) { + art_iterator_t it = art_init_iterator(&r->art, /*first=*/true); + while (it.value != NULL) { + leaf_t *leaf = (leaf_t *)it.value; + container_free(leaf->container, leaf->typecode); + free_leaf(leaf); + art_iterator_next(&it); + } + art_free(&r->art); + roaring_free(r); +} + +roaring64_bitmap_t *roaring64_bitmap_copy(const roaring64_bitmap_t *r) { + roaring64_bitmap_t *result = roaring64_bitmap_create(); + + art_iterator_t it = art_init_iterator(&r->art, /*first=*/true); + while (it.value != NULL) { + leaf_t *leaf = (leaf_t *)it.value; + uint8_t result_typecode = leaf->typecode; + container_t *result_container = get_copy_of_container( + leaf->container, &result_typecode, /*copy_on_write=*/false); + leaf_t *result_leaf = create_leaf(result_container, result_typecode); + art_insert(&result->art, it.key, (art_val_t *)result_leaf); + art_iterator_next(&it); + } + return result; +} + +roaring64_bitmap_t *roaring64_bitmap_from_range(uint64_t min, uint64_t max, + uint64_t step) { + if (step == 0 || max <= min) { + return NULL; + } + roaring64_bitmap_t *r = roaring64_bitmap_create(); + if (step >= (1 << 16)) { + // Only one value per container. + for (uint64_t value = min; value < max; value += step) { + roaring64_bitmap_add(r, value); + if (value > UINT64_MAX - step) { + break; + } + } + return r; + } + do { + uint64_t high_bits = min & 0xFFFFFFFFFFFF0000; + uint16_t container_min = min & 0xFFFF; + uint32_t container_max = (uint32_t)minimum(max - high_bits, 1 << 16); + + uint8_t typecode; + container_t *container = container_from_range( + &typecode, container_min, container_max, (uint16_t)step); + + uint8_t high48[ART_KEY_BYTES]; + split_key(min, high48); + leaf_t *leaf = create_leaf(container, typecode); + art_insert(&r->art, high48, (art_val_t *)leaf); + + uint64_t gap = container_max - container_min + step - 1; + uint64_t increment = gap - (gap % step); + if (min > UINT64_MAX - increment) { + break; + } + min += increment; + } while (min < max); + return r; +} + +roaring64_bitmap_t *roaring64_bitmap_of_ptr(size_t n_args, + const uint64_t *vals) { + roaring64_bitmap_t *r = roaring64_bitmap_create(); + roaring64_bitmap_add_many(r, n_args, vals); + return r; +} + +roaring64_bitmap_t *roaring64_bitmap_of(size_t n_args, ...) { + roaring64_bitmap_t *r = roaring64_bitmap_create(); + roaring64_bulk_context_t context = {0}; + va_list ap; + va_start(ap, n_args); + for (size_t i = 0; i < n_args; i++) { + uint64_t val = va_arg(ap, uint64_t); + roaring64_bitmap_add_bulk(r, &context, val); + } + va_end(ap); + return r; +} + +static inline leaf_t *containerptr_roaring64_bitmap_add(roaring64_bitmap_t *r, + uint8_t *high48, + uint16_t low16, + leaf_t *leaf) { + if (leaf != NULL) { + uint8_t typecode2; + container_t *container2 = + container_add(leaf->container, low16, leaf->typecode, &typecode2); + if (container2 != leaf->container) { + container_free(leaf->container, leaf->typecode); + leaf->container = container2; + leaf->typecode = typecode2; + } + return leaf; + } else { + array_container_t *ac = array_container_create(); + uint8_t typecode; + container_t *container = + container_add(ac, low16, ARRAY_CONTAINER_TYPE, &typecode); + assert(ac == container); + leaf = create_leaf(container, typecode); + art_insert(&r->art, high48, (art_val_t *)leaf); + return leaf; + } +} + +void roaring64_bitmap_add(roaring64_bitmap_t *r, uint64_t val) { + uint8_t high48[ART_KEY_BYTES]; + uint16_t low16 = split_key(val, high48); + leaf_t *leaf = (leaf_t *)art_find(&r->art, high48); + containerptr_roaring64_bitmap_add(r, high48, low16, leaf); +} + +bool roaring64_bitmap_add_checked(roaring64_bitmap_t *r, uint64_t val) { + uint8_t high48[ART_KEY_BYTES]; + uint16_t low16 = split_key(val, high48); + leaf_t *leaf = (leaf_t *)art_find(&r->art, high48); + + int old_cardinality = 0; + if (leaf != NULL) { + old_cardinality = + container_get_cardinality(leaf->container, leaf->typecode); + } + leaf = containerptr_roaring64_bitmap_add(r, high48, low16, leaf); + int new_cardinality = + container_get_cardinality(leaf->container, leaf->typecode); + return old_cardinality != new_cardinality; +} + +void roaring64_bitmap_add_bulk(roaring64_bitmap_t *r, + roaring64_bulk_context_t *context, + uint64_t val) { + uint8_t high48[ART_KEY_BYTES]; + uint16_t low16 = split_key(val, high48); + if (context->leaf != NULL && + compare_high48(context->high_bytes, high48) == 0) { + // We're at a container with the correct high bits. + uint8_t typecode2; + container_t *container2 = + container_add(context->leaf->container, low16, + context->leaf->typecode, &typecode2); + if (container2 != context->leaf->container) { + container_free(context->leaf->container, context->leaf->typecode); + context->leaf->container = container2; + context->leaf->typecode = typecode2; + } + } else { + // We're not positioned anywhere yet or the high bits of the key + // differ. + leaf_t *leaf = (leaf_t *)art_find(&r->art, high48); + context->leaf = + containerptr_roaring64_bitmap_add(r, high48, low16, leaf); + memcpy(context->high_bytes, high48, ART_KEY_BYTES); + } +} + +void roaring64_bitmap_add_many(roaring64_bitmap_t *r, size_t n_args, + const uint64_t *vals) { + if (n_args == 0) { + return; + } + const uint64_t *end = vals + n_args; + roaring64_bulk_context_t context = {0}; + for (const uint64_t *current_val = vals; current_val != end; + current_val++) { + roaring64_bitmap_add_bulk(r, &context, *current_val); + } +} + +static inline void add_range_closed_at(art_t *art, uint8_t *high48, + uint16_t min, uint16_t max) { + leaf_t *leaf = (leaf_t *)art_find(art, high48); + if (leaf != NULL) { + uint8_t typecode2; + container_t *container2 = container_add_range( + leaf->container, leaf->typecode, min, max, &typecode2); + if (container2 != leaf->container) { + container_free(leaf->container, leaf->typecode); + leaf->container = container2; + leaf->typecode = typecode2; + } + return; + } + uint8_t typecode; + // container_add_range is inclusive, but `container_range_of_ones` is + // exclusive. + container_t *container = container_range_of_ones(min, max + 1, &typecode); + leaf = create_leaf(container, typecode); + art_insert(art, high48, (art_val_t *)leaf); +} + +void roaring64_bitmap_add_range(roaring64_bitmap_t *r, uint64_t min, + uint64_t max) { + if (min >= max) { + return; + } + roaring64_bitmap_add_range_closed(r, min, max - 1); +} + +void roaring64_bitmap_add_range_closed(roaring64_bitmap_t *r, uint64_t min, + uint64_t max) { + if (min > max) { + return; + } + + art_t *art = &r->art; + uint8_t min_high48[ART_KEY_BYTES]; + uint16_t min_low16 = split_key(min, min_high48); + uint8_t max_high48[ART_KEY_BYTES]; + uint16_t max_low16 = split_key(max, max_high48); + if (compare_high48(min_high48, max_high48) == 0) { + // Only populate range within one container. + add_range_closed_at(art, min_high48, min_low16, max_low16); + return; + } + + // Populate a range across containers. Fill intermediate containers + // entirely. + add_range_closed_at(art, min_high48, min_low16, 0xffff); + uint64_t min_high_bits = min >> 16; + uint64_t max_high_bits = max >> 16; + for (uint64_t current = min_high_bits + 1; current < max_high_bits; + ++current) { + uint8_t current_high48[ART_KEY_BYTES]; + split_key(current << 16, current_high48); + add_range_closed_at(art, current_high48, 0, 0xffff); + } + add_range_closed_at(art, max_high48, 0, max_low16); +} + +bool roaring64_bitmap_contains(const roaring64_bitmap_t *r, uint64_t val) { + uint8_t high48[ART_KEY_BYTES]; + uint16_t low16 = split_key(val, high48); + leaf_t *leaf = (leaf_t *)art_find(&r->art, high48); + if (leaf != NULL) { + return container_contains(leaf->container, low16, leaf->typecode); + } + return false; +} + +bool roaring64_bitmap_contains_range(const roaring64_bitmap_t *r, uint64_t min, + uint64_t max) { + if (min >= max) { + return true; + } + + uint8_t min_high48[ART_KEY_BYTES]; + uint16_t min_low16 = split_key(min, min_high48); + uint8_t max_high48[ART_KEY_BYTES]; + uint16_t max_low16 = split_key(max, max_high48); + uint64_t max_high48_bits = (max - 1) & 0xFFFFFFFFFFFF0000; // Inclusive + + art_iterator_t it = art_lower_bound(&r->art, min_high48); + if (it.value == NULL || combine_key(it.key, 0) > min) { + return false; + } + uint64_t prev_high48_bits = min & 0xFFFFFFFFFFFF0000; + while (it.value != NULL) { + uint64_t current_high48_bits = combine_key(it.key, 0); + if (current_high48_bits > max_high48_bits) { + // We've passed the end of the range with all containers containing + // the range. + return true; + } + if (current_high48_bits - prev_high48_bits > 0x10000) { + // There is a gap in the iterator that falls in the range. + return false; + } + + leaf_t *leaf = (leaf_t *)it.value; + uint32_t container_min = 0; + if (compare_high48(it.key, min_high48) == 0) { + container_min = min_low16; + } + uint32_t container_max = 0xFFFF + 1; // Exclusive + if (compare_high48(it.key, max_high48) == 0) { + container_max = max_low16; + } + + // For the first and last containers we use container_contains_range, + // for the intermediate containers we can use container_is_full. + if (container_min == 0 && container_max == 0xFFFF + 1) { + if (!container_is_full(leaf->container, leaf->typecode)) { + return false; + } + } else if (!container_contains_range(leaf->container, container_min, + container_max, leaf->typecode)) { + return false; + } + prev_high48_bits = current_high48_bits; + art_iterator_next(&it); + } + return prev_high48_bits == max_high48_bits; +} + +bool roaring64_bitmap_contains_bulk(const roaring64_bitmap_t *r, + roaring64_bulk_context_t *context, + uint64_t val) { + uint8_t high48[ART_KEY_BYTES]; + uint16_t low16 = split_key(val, high48); + + if (context->leaf == NULL || context->high_bytes != high48) { + // We're not positioned anywhere yet or the high bits of the key + // differ. + leaf_t *leaf = (leaf_t *)art_find(&r->art, high48); + if (leaf == NULL) { + return false; + } + context->leaf = leaf; + memcpy(context->high_bytes, high48, ART_KEY_BYTES); + } + return container_contains(context->leaf->container, low16, + context->leaf->typecode); +} + +bool roaring64_bitmap_select(const roaring64_bitmap_t *r, uint64_t rank, + uint64_t *element) { + art_iterator_t it = art_init_iterator(&r->art, /*first=*/true); + uint64_t start_rank = 0; + while (it.value != NULL) { + leaf_t *leaf = (leaf_t *)it.value; + uint64_t cardinality = + container_get_cardinality(leaf->container, leaf->typecode); + if (start_rank + cardinality > rank) { + uint32_t uint32_start = 0; + uint32_t uint32_rank = rank - start_rank; + uint32_t uint32_element = 0; + if (container_select(leaf->container, leaf->typecode, &uint32_start, + uint32_rank, &uint32_element)) { + *element = combine_key(it.key, (uint16_t)uint32_element); + return true; + } + return false; + } + start_rank += cardinality; + art_iterator_next(&it); + } + return false; +} + +uint64_t roaring64_bitmap_rank(const roaring64_bitmap_t *r, uint64_t val) { + uint8_t high48[ART_KEY_BYTES]; + uint16_t low16 = split_key(val, high48); + + art_iterator_t it = art_init_iterator(&r->art, /*first=*/true); + uint64_t rank = 0; + while (it.value != NULL) { + leaf_t *leaf = (leaf_t *)it.value; + int compare_result = compare_high48(it.key, high48); + if (compare_result < 0) { + rank += container_get_cardinality(leaf->container, leaf->typecode); + } else if (compare_result == 0) { + return rank + + container_rank(leaf->container, leaf->typecode, low16); + } else { + return rank; + } + art_iterator_next(&it); + } + return rank; +} + +bool roaring64_bitmap_get_index(const roaring64_bitmap_t *r, uint64_t val, + uint64_t *out_index) { + uint8_t high48[ART_KEY_BYTES]; + uint16_t low16 = split_key(val, high48); + + art_iterator_t it = art_init_iterator(&r->art, /*first=*/true); + uint64_t index = 0; + while (it.value != NULL) { + leaf_t *leaf = (leaf_t *)it.value; + int compare_result = compare_high48(it.key, high48); + if (compare_result < 0) { + index += container_get_cardinality(leaf->container, leaf->typecode); + } else if (compare_result == 0) { + int index16 = + container_get_index(leaf->container, leaf->typecode, low16); + if (index16 < 0) { + return false; + } + *out_index = index + index16; + return true; + } else { + return false; + } + art_iterator_next(&it); + } + return false; +} + +static inline leaf_t *containerptr_roaring64_bitmap_remove( + roaring64_bitmap_t *r, uint8_t *high48, uint16_t low16, leaf_t *leaf) { + if (leaf == NULL) { + return NULL; + } + + container_t *container = leaf->container; + uint8_t typecode = leaf->typecode; + uint8_t typecode2; + container_t *container2 = + container_remove(container, low16, typecode, &typecode2); + if (container2 != container) { + container_free(container, typecode); + leaf->container = container2; + leaf->typecode = typecode2; + } + if (!container_nonzero_cardinality(container2, typecode2)) { + container_free(container2, typecode2); + leaf = (leaf_t *)art_erase(&r->art, high48); + if (leaf != NULL) { + free_leaf(leaf); + } + return NULL; + } + return leaf; +} + +void roaring64_bitmap_remove(roaring64_bitmap_t *r, uint64_t val) { + art_t *art = &r->art; + uint8_t high48[ART_KEY_BYTES]; + uint16_t low16 = split_key(val, high48); + + leaf_t *leaf = (leaf_t *)art_find(art, high48); + containerptr_roaring64_bitmap_remove(r, high48, low16, leaf); +} + +bool roaring64_bitmap_remove_checked(roaring64_bitmap_t *r, uint64_t val) { + art_t *art = &r->art; + uint8_t high48[ART_KEY_BYTES]; + uint16_t low16 = split_key(val, high48); + leaf_t *leaf = (leaf_t *)art_find(art, high48); + + if (leaf == NULL) { + return false; + } + int old_cardinality = + container_get_cardinality(leaf->container, leaf->typecode); + leaf = containerptr_roaring64_bitmap_remove(r, high48, low16, leaf); + if (leaf == NULL) { + return true; + } + int new_cardinality = + container_get_cardinality(leaf->container, leaf->typecode); + return new_cardinality != old_cardinality; +} + +void roaring64_bitmap_remove_bulk(roaring64_bitmap_t *r, + roaring64_bulk_context_t *context, + uint64_t val) { + art_t *art = &r->art; + uint8_t high48[ART_KEY_BYTES]; + uint16_t low16 = split_key(val, high48); + if (context->leaf != NULL && + compare_high48(context->high_bytes, high48) == 0) { + // We're at a container with the correct high bits. + uint8_t typecode2; + container_t *container2 = + container_remove(context->leaf->container, low16, + context->leaf->typecode, &typecode2); + if (container2 != context->leaf->container) { + container_free(context->leaf->container, context->leaf->typecode); + context->leaf->container = container2; + context->leaf->typecode = typecode2; + } + if (!container_nonzero_cardinality(container2, typecode2)) { + leaf_t *leaf = (leaf_t *)art_erase(art, high48); + container_free(container2, typecode2); + free_leaf(leaf); + } + } else { + // We're not positioned anywhere yet or the high bits of the key + // differ. + leaf_t *leaf = (leaf_t *)art_find(art, high48); + context->leaf = + containerptr_roaring64_bitmap_remove(r, high48, low16, leaf); + memcpy(context->high_bytes, high48, ART_KEY_BYTES); + } +} + +void roaring64_bitmap_remove_many(roaring64_bitmap_t *r, size_t n_args, + const uint64_t *vals) { + if (n_args == 0) { + return; + } + const uint64_t *end = vals + n_args; + roaring64_bulk_context_t context = {0}; + for (const uint64_t *current_val = vals; current_val != end; + current_val++) { + roaring64_bitmap_remove_bulk(r, &context, *current_val); + } +} + +static inline void remove_range_closed_at(art_t *art, uint8_t *high48, + uint16_t min, uint16_t max) { + leaf_t *leaf = (leaf_t *)art_find(art, high48); + if (leaf == NULL) { + return; + } + uint8_t typecode2; + container_t *container2 = container_remove_range( + leaf->container, leaf->typecode, min, max, &typecode2); + if (container2 != leaf->container) { + container_free(leaf->container, leaf->typecode); + if (container2 != NULL) { + leaf->container = container2; + leaf->typecode = typecode2; + } else { + art_erase(art, high48); + free_leaf(leaf); + } + } +} + +void roaring64_bitmap_remove_range(roaring64_bitmap_t *r, uint64_t min, + uint64_t max) { + if (min >= max) { + return; + } + roaring64_bitmap_remove_range_closed(r, min, max - 1); +} + +void roaring64_bitmap_remove_range_closed(roaring64_bitmap_t *r, uint64_t min, + uint64_t max) { + if (min > max) { + return; + } + + art_t *art = &r->art; + uint8_t min_high48[ART_KEY_BYTES]; + uint16_t min_low16 = split_key(min, min_high48); + uint8_t max_high48[ART_KEY_BYTES]; + uint16_t max_low16 = split_key(max, max_high48); + if (compare_high48(min_high48, max_high48) == 0) { + // Only remove a range within one container. + remove_range_closed_at(art, min_high48, min_low16, max_low16); + return; + } + + // Remove a range across containers. Remove intermediate containers + // entirely. + remove_range_closed_at(art, min_high48, min_low16, 0xffff); + + art_iterator_t it = art_upper_bound(art, min_high48); + while (it.value != NULL && art_compare_keys(it.key, max_high48) < 0) { + leaf_t *leaf = (leaf_t *)art_iterator_erase(art, &it); + container_free(leaf->container, leaf->typecode); + free_leaf(leaf); + } + remove_range_closed_at(art, max_high48, 0, max_low16); +} + +uint64_t roaring64_bitmap_get_cardinality(const roaring64_bitmap_t *r) { + art_iterator_t it = art_init_iterator(&r->art, /*first=*/true); + uint64_t cardinality = 0; + while (it.value != NULL) { + leaf_t *leaf = (leaf_t *)it.value; + cardinality += + container_get_cardinality(leaf->container, leaf->typecode); + art_iterator_next(&it); + } + return cardinality; +} + +uint64_t roaring64_bitmap_range_cardinality(const roaring64_bitmap_t *r, + uint64_t min, uint64_t max) { + if (min >= max) { + return 0; + } + max--; // A closed range is easier to work with. + + uint64_t cardinality = 0; + uint8_t min_high48[ART_KEY_BYTES]; + uint16_t min_low16 = split_key(min, min_high48); + uint8_t max_high48[ART_KEY_BYTES]; + uint16_t max_low16 = split_key(max, max_high48); + + art_iterator_t it = art_lower_bound(&r->art, min_high48); + while (it.value != NULL) { + int max_compare_result = compare_high48(it.key, max_high48); + if (max_compare_result > 0) { + // We're outside the range. + break; + } + + leaf_t *leaf = (leaf_t *)it.value; + if (max_compare_result == 0) { + // We're at the max high key, add only the range up to the low + // 16 bits of max. + cardinality += + container_rank(leaf->container, leaf->typecode, max_low16); + } else { + // We're not yet at the max high key, add the full container + // range. + cardinality += + container_get_cardinality(leaf->container, leaf->typecode); + } + if (compare_high48(it.key, min_high48) == 0 && min_low16 > 0) { + // We're at the min high key, remove the range up to the low 16 + // bits of min. + cardinality -= + container_rank(leaf->container, leaf->typecode, min_low16 - 1); + } + art_iterator_next(&it); + } + return cardinality; +} + +bool roaring64_bitmap_is_empty(const roaring64_bitmap_t *r) { + return art_is_empty(&r->art); +} + +uint64_t roaring64_bitmap_minimum(const roaring64_bitmap_t *r) { + art_iterator_t it = art_init_iterator(&r->art, /*first=*/true); + if (it.value == NULL) { + return UINT64_MAX; + } + leaf_t *leaf = (leaf_t *)it.value; + return combine_key(it.key, + container_minimum(leaf->container, leaf->typecode)); +} + +uint64_t roaring64_bitmap_maximum(const roaring64_bitmap_t *r) { + art_iterator_t it = art_init_iterator(&r->art, /*first=*/false); + if (it.value == NULL) { + return 0; + } + leaf_t *leaf = (leaf_t *)it.value; + return combine_key(it.key, + container_maximum(leaf->container, leaf->typecode)); +} + +bool roaring64_bitmap_run_optimize(roaring64_bitmap_t *r) { + art_iterator_t it = art_init_iterator(&r->art, /*first=*/true); + bool has_run_container = false; + while (it.value != NULL) { + leaf_t *leaf = (leaf_t *)it.value; + uint8_t new_typecode; + // We don't need to free the existing container if a new one was + // created, convert_run_optimize does that internally. + leaf->container = convert_run_optimize(leaf->container, leaf->typecode, + &new_typecode); + leaf->typecode = new_typecode; + has_run_container |= new_typecode == RUN_CONTAINER_TYPE; + art_iterator_next(&it); + } + return has_run_container; +} + +static bool roaring64_leaf_internal_validate(const art_val_t *val, + const char **reason) { + leaf_t *leaf = (leaf_t *)val; + return container_internal_validate(leaf->container, leaf->typecode, reason); +} + +bool roaring64_bitmap_internal_validate(const roaring64_bitmap_t *r, + const char **reason) { + return art_internal_validate(&r->art, reason, + roaring64_leaf_internal_validate); +} + +bool roaring64_bitmap_equals(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + art_iterator_t it1 = art_init_iterator(&r1->art, /*first=*/true); + art_iterator_t it2 = art_init_iterator(&r2->art, /*first=*/true); + + while (it1.value != NULL && it2.value != NULL) { + if (compare_high48(it1.key, it2.key) != 0) { + return false; + } + leaf_t *leaf1 = (leaf_t *)it1.value; + leaf_t *leaf2 = (leaf_t *)it2.value; + if (!container_equals(leaf1->container, leaf1->typecode, + leaf2->container, leaf2->typecode)) { + return false; + } + art_iterator_next(&it1); + art_iterator_next(&it2); + } + return it1.value == NULL && it2.value == NULL; +} + +bool roaring64_bitmap_is_subset(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + art_iterator_t it1 = art_init_iterator(&r1->art, /*first=*/true); + art_iterator_t it2 = art_init_iterator(&r2->art, /*first=*/true); + + while (it1.value != NULL) { + bool it2_present = it2.value != NULL; + + int compare_result = 0; + if (it2_present) { + compare_result = compare_high48(it1.key, it2.key); + if (compare_result == 0) { + leaf_t *leaf1 = (leaf_t *)it1.value; + leaf_t *leaf2 = (leaf_t *)it2.value; + if (!container_is_subset(leaf1->container, leaf1->typecode, + leaf2->container, leaf2->typecode)) { + return false; + } + art_iterator_next(&it1); + art_iterator_next(&it2); + } + } + if (!it2_present || compare_result < 0) { + return false; + } else if (compare_result > 0) { + art_iterator_lower_bound(&it2, it1.key); + } + } + return true; +} + +bool roaring64_bitmap_is_strict_subset(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + return roaring64_bitmap_get_cardinality(r1) < + roaring64_bitmap_get_cardinality(r2) && + roaring64_bitmap_is_subset(r1, r2); +} + +roaring64_bitmap_t *roaring64_bitmap_and(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + roaring64_bitmap_t *result = roaring64_bitmap_create(); + + art_iterator_t it1 = art_init_iterator(&r1->art, /*first=*/true); + art_iterator_t it2 = art_init_iterator(&r2->art, /*first=*/true); + + while (it1.value != NULL && it2.value != NULL) { + // Cases: + // 1. it1 < it2 -> it1++ + // 2. it1 == it1 -> output it1 & it2, it1++, it2++ + // 3. it1 > it2 -> it2++ + int compare_result = compare_high48(it1.key, it2.key); + if (compare_result == 0) { + // Case 2: iterators at the same high key position. + leaf_t *result_leaf = (leaf_t *)roaring_malloc(sizeof(leaf_t)); + leaf_t *leaf1 = (leaf_t *)it1.value; + leaf_t *leaf2 = (leaf_t *)it2.value; + result_leaf->container = container_and( + leaf1->container, leaf1->typecode, leaf2->container, + leaf2->typecode, &result_leaf->typecode); + + if (container_nonzero_cardinality(result_leaf->container, + result_leaf->typecode)) { + art_insert(&result->art, it1.key, (art_val_t *)result_leaf); + } else { + container_free(result_leaf->container, result_leaf->typecode); + free_leaf(result_leaf); + } + art_iterator_next(&it1); + art_iterator_next(&it2); + } else if (compare_result < 0) { + // Case 1: it1 is before it2. + art_iterator_lower_bound(&it1, it2.key); + } else { + // Case 3: it2 is before it1. + art_iterator_lower_bound(&it2, it1.key); + } + } + return result; +} + +uint64_t roaring64_bitmap_and_cardinality(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + uint64_t result = 0; + + art_iterator_t it1 = art_init_iterator(&r1->art, /*first=*/true); + art_iterator_t it2 = art_init_iterator(&r2->art, /*first=*/true); + + while (it1.value != NULL && it2.value != NULL) { + // Cases: + // 1. it1 < it2 -> it1++ + // 2. it1 == it1 -> output cardinaltiy it1 & it2, it1++, it2++ + // 3. it1 > it2 -> it2++ + int compare_result = compare_high48(it1.key, it2.key); + if (compare_result == 0) { + // Case 2: iterators at the same high key position. + leaf_t *leaf1 = (leaf_t *)it1.value; + leaf_t *leaf2 = (leaf_t *)it2.value; + result += + container_and_cardinality(leaf1->container, leaf1->typecode, + leaf2->container, leaf2->typecode); + art_iterator_next(&it1); + art_iterator_next(&it2); + } else if (compare_result < 0) { + // Case 1: it1 is before it2. + art_iterator_lower_bound(&it1, it2.key); + } else { + // Case 3: it2 is before it1. + art_iterator_lower_bound(&it2, it1.key); + } + } + return result; +} + +// Inplace and (modifies its first argument). +void roaring64_bitmap_and_inplace(roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + if (r1 == r2) { + return; + } + art_iterator_t it1 = art_init_iterator(&r1->art, /*first=*/true); + art_iterator_t it2 = art_init_iterator(&r2->art, /*first=*/true); + + while (it1.value != NULL) { + // Cases: + // 1. !it2_present -> erase it1 + // 2. it2_present + // a. it1 < it2 -> erase it1 + // b. it1 == it2 -> output it1 & it2, it1++, it2++ + // c. it1 > it2 -> it2++ + bool it2_present = it2.value != NULL; + int compare_result = 0; + if (it2_present) { + compare_result = compare_high48(it1.key, it2.key); + if (compare_result == 0) { + // Case 2a: iterators at the same high key position. + leaf_t *leaf1 = (leaf_t *)it1.value; + leaf_t *leaf2 = (leaf_t *)it2.value; + + // We do the computation "in place" only when c1 is not a + // shared container. Rationale: using a shared container + // safely with in place computation would require making a + // copy and then doing the computation in place which is + // likely less efficient than avoiding in place entirely and + // always generating a new container. + uint8_t typecode2; + container_t *container2; + if (leaf1->typecode == SHARED_CONTAINER_TYPE) { + container2 = container_and( + leaf1->container, leaf1->typecode, leaf2->container, + leaf2->typecode, &typecode2); + } else { + container2 = container_iand( + leaf1->container, leaf1->typecode, leaf2->container, + leaf2->typecode, &typecode2); + } + + if (container2 != leaf1->container) { + container_free(leaf1->container, leaf1->typecode); + leaf1->container = container2; + leaf1->typecode = typecode2; + } + if (!container_nonzero_cardinality(container2, typecode2)) { + container_free(container2, typecode2); + art_iterator_erase(&r1->art, &it1); + free_leaf(leaf1); + } else { + // Only advance the iterator if we didn't delete the + // leaf, as erasing advances by itself. + art_iterator_next(&it1); + } + art_iterator_next(&it2); + } + } + + if (!it2_present || compare_result < 0) { + // Cases 1 and 3a: it1 is the only iterator or is before it2. + leaf_t *leaf = (leaf_t *)art_iterator_erase(&r1->art, &it1); + assert(leaf != NULL); + container_free(leaf->container, leaf->typecode); + free_leaf(leaf); + } else if (compare_result > 0) { + // Case 2c: it1 is after it2. + art_iterator_lower_bound(&it2, it1.key); + } + } +} + +bool roaring64_bitmap_intersect(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + bool intersect = false; + art_iterator_t it1 = art_init_iterator(&r1->art, /*first=*/true); + art_iterator_t it2 = art_init_iterator(&r2->art, /*first=*/true); + + while (it1.value != NULL && it2.value != NULL) { + // Cases: + // 1. it1 < it2 -> it1++ + // 2. it1 == it1 -> intersect |= it1 & it2, it1++, it2++ + // 3. it1 > it2 -> it2++ + int compare_result = compare_high48(it1.key, it2.key); + if (compare_result == 0) { + // Case 2: iterators at the same high key position. + leaf_t *leaf1 = (leaf_t *)it1.value; + leaf_t *leaf2 = (leaf_t *)it2.value; + intersect |= container_intersect(leaf1->container, leaf1->typecode, + leaf2->container, leaf2->typecode); + art_iterator_next(&it1); + art_iterator_next(&it2); + } else if (compare_result < 0) { + // Case 1: it1 is before it2. + art_iterator_lower_bound(&it1, it2.key); + } else { + // Case 3: it2 is before it1. + art_iterator_lower_bound(&it2, it1.key); + } + } + return intersect; +} + +bool roaring64_bitmap_intersect_with_range(const roaring64_bitmap_t *r, + uint64_t min, uint64_t max) { + if (min >= max) { + return false; + } + roaring64_iterator_t it; + roaring64_iterator_init_at(r, &it, /*first=*/true); + if (!roaring64_iterator_move_equalorlarger(&it, min)) { + return false; + } + return roaring64_iterator_has_value(&it) && + roaring64_iterator_value(&it) < max; +} + +double roaring64_bitmap_jaccard_index(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + uint64_t c1 = roaring64_bitmap_get_cardinality(r1); + uint64_t c2 = roaring64_bitmap_get_cardinality(r2); + uint64_t inter = roaring64_bitmap_and_cardinality(r1, r2); + return (double)inter / (double)(c1 + c2 - inter); +} + +roaring64_bitmap_t *roaring64_bitmap_or(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + roaring64_bitmap_t *result = roaring64_bitmap_create(); + + art_iterator_t it1 = art_init_iterator(&r1->art, /*first=*/true); + art_iterator_t it2 = art_init_iterator(&r2->art, /*first=*/true); + + while (it1.value != NULL || it2.value != NULL) { + bool it1_present = it1.value != NULL; + bool it2_present = it2.value != NULL; + + // Cases: + // 1. it1_present && !it2_present -> output it1, it1++ + // 2. !it1_present && it2_present -> output it2, it2++ + // 3. it1_present && it2_present + // a. it1 < it2 -> output it1, it1++ + // b. it1 == it2 -> output it1 | it2, it1++, it2++ + // c. it1 > it2 -> output it2, it2++ + int compare_result = 0; + if (it1_present && it2_present) { + compare_result = compare_high48(it1.key, it2.key); + if (compare_result == 0) { + // Case 3b: iterators at the same high key position. + leaf_t *leaf1 = (leaf_t *)it1.value; + leaf_t *leaf2 = (leaf_t *)it2.value; + leaf_t *result_leaf = (leaf_t *)roaring_malloc(sizeof(leaf_t)); + result_leaf->container = container_or( + leaf1->container, leaf1->typecode, leaf2->container, + leaf2->typecode, &result_leaf->typecode); + art_insert(&result->art, it1.key, (art_val_t *)result_leaf); + art_iterator_next(&it1); + art_iterator_next(&it2); + } + } + if ((it1_present && !it2_present) || compare_result < 0) { + // Cases 1 and 3a: it1 is the only iterator or is before it2. + leaf_t *result_leaf = copy_leaf_container((leaf_t *)it1.value); + art_insert(&result->art, it1.key, (art_val_t *)result_leaf); + art_iterator_next(&it1); + } else if ((!it1_present && it2_present) || compare_result > 0) { + // Cases 2 and 3c: it2 is the only iterator or is before it1. + leaf_t *result_leaf = copy_leaf_container((leaf_t *)it2.value); + art_insert(&result->art, it2.key, (art_val_t *)result_leaf); + art_iterator_next(&it2); + } + } + return result; +} + +uint64_t roaring64_bitmap_or_cardinality(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + uint64_t c1 = roaring64_bitmap_get_cardinality(r1); + uint64_t c2 = roaring64_bitmap_get_cardinality(r2); + uint64_t inter = roaring64_bitmap_and_cardinality(r1, r2); + return c1 + c2 - inter; +} + +void roaring64_bitmap_or_inplace(roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + if (r1 == r2) { + return; + } + art_iterator_t it1 = art_init_iterator(&r1->art, /*first=*/true); + art_iterator_t it2 = art_init_iterator(&r2->art, /*first=*/true); + + while (it1.value != NULL || it2.value != NULL) { + bool it1_present = it1.value != NULL; + bool it2_present = it2.value != NULL; + + // Cases: + // 1. it1_present && !it2_present -> it1++ + // 2. !it1_present && it2_present -> add it2, it2++ + // 3. it1_present && it2_present + // a. it1 < it2 -> it1++ + // b. it1 == it2 -> it1 | it2, it1++, it2++ + // c. it1 > it2 -> add it2, it2++ + int compare_result = 0; + if (it1_present && it2_present) { + compare_result = compare_high48(it1.key, it2.key); + if (compare_result == 0) { + // Case 3b: iterators at the same high key position. + leaf_t *leaf1 = (leaf_t *)it1.value; + leaf_t *leaf2 = (leaf_t *)it2.value; + uint8_t typecode2; + container_t *container2; + if (leaf1->typecode == SHARED_CONTAINER_TYPE) { + container2 = container_or(leaf1->container, leaf1->typecode, + leaf2->container, leaf2->typecode, + &typecode2); + } else { + container2 = container_ior( + leaf1->container, leaf1->typecode, leaf2->container, + leaf2->typecode, &typecode2); + } + if (container2 != leaf1->container) { + container_free(leaf1->container, leaf1->typecode); + leaf1->container = container2; + leaf1->typecode = typecode2; + } + art_iterator_next(&it1); + art_iterator_next(&it2); + } + } + if ((it1_present && !it2_present) || compare_result < 0) { + // Cases 1 and 3a: it1 is the only iterator or is before it2. + art_iterator_next(&it1); + } else if ((!it1_present && it2_present) || compare_result > 0) { + // Cases 2 and 3c: it2 is the only iterator or is before it1. + leaf_t *result_leaf = copy_leaf_container((leaf_t *)it2.value); + art_iterator_insert(&r1->art, &it1, it2.key, + (art_val_t *)result_leaf); + art_iterator_next(&it2); + } + } +} + +roaring64_bitmap_t *roaring64_bitmap_xor(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + roaring64_bitmap_t *result = roaring64_bitmap_create(); + + art_iterator_t it1 = art_init_iterator(&r1->art, /*first=*/true); + art_iterator_t it2 = art_init_iterator(&r2->art, /*first=*/true); + + while (it1.value != NULL || it2.value != NULL) { + bool it1_present = it1.value != NULL; + bool it2_present = it2.value != NULL; + + // Cases: + // 1. it1_present && !it2_present -> output it1, it1++ + // 2. !it1_present && it2_present -> output it2, it2++ + // 3. it1_present && it2_present + // a. it1 < it2 -> output it1, it1++ + // b. it1 == it2 -> output it1 ^ it2, it1++, it2++ + // c. it1 > it2 -> output it2, it2++ + int compare_result = 0; + if (it1_present && it2_present) { + compare_result = compare_high48(it1.key, it2.key); + if (compare_result == 0) { + // Case 3b: iterators at the same high key position. + leaf_t *leaf1 = (leaf_t *)it1.value; + leaf_t *leaf2 = (leaf_t *)it2.value; + leaf_t *result_leaf = (leaf_t *)roaring_malloc(sizeof(leaf_t)); + result_leaf->container = container_xor( + leaf1->container, leaf1->typecode, leaf2->container, + leaf2->typecode, &result_leaf->typecode); + if (container_nonzero_cardinality(result_leaf->container, + result_leaf->typecode)) { + art_insert(&result->art, it1.key, (art_val_t *)result_leaf); + } else { + container_free(result_leaf->container, + result_leaf->typecode); + free_leaf(result_leaf); + } + art_iterator_next(&it1); + art_iterator_next(&it2); + } + } + if ((it1_present && !it2_present) || compare_result < 0) { + // Cases 1 and 3a: it1 is the only iterator or is before it2. + leaf_t *result_leaf = copy_leaf_container((leaf_t *)it1.value); + art_insert(&result->art, it1.key, (art_val_t *)result_leaf); + art_iterator_next(&it1); + } else if ((!it1_present && it2_present) || compare_result > 0) { + // Cases 2 and 3c: it2 is the only iterator or is before it1. + leaf_t *result_leaf = copy_leaf_container((leaf_t *)it2.value); + art_insert(&result->art, it2.key, (art_val_t *)result_leaf); + art_iterator_next(&it2); + } + } + return result; +} + +uint64_t roaring64_bitmap_xor_cardinality(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + uint64_t c1 = roaring64_bitmap_get_cardinality(r1); + uint64_t c2 = roaring64_bitmap_get_cardinality(r2); + uint64_t inter = roaring64_bitmap_and_cardinality(r1, r2); + return c1 + c2 - 2 * inter; +} + +void roaring64_bitmap_xor_inplace(roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + assert(r1 != r2); + art_iterator_t it1 = art_init_iterator(&r1->art, /*first=*/true); + art_iterator_t it2 = art_init_iterator(&r2->art, /*first=*/true); + + while (it1.value != NULL || it2.value != NULL) { + bool it1_present = it1.value != NULL; + bool it2_present = it2.value != NULL; + + // Cases: + // 1. it1_present && !it2_present -> it1++ + // 2. !it1_present && it2_present -> add it2, it2++ + // 3. it1_present && it2_present + // a. it1 < it2 -> it1++ + // b. it1 == it2 -> it1 ^ it2, it1++, it2++ + // c. it1 > it2 -> add it2, it2++ + int compare_result = 0; + if (it1_present && it2_present) { + compare_result = compare_high48(it1.key, it2.key); + if (compare_result == 0) { + // Case 3b: iterators at the same high key position. + leaf_t *leaf1 = (leaf_t *)it1.value; + leaf_t *leaf2 = (leaf_t *)it2.value; + container_t *container1 = leaf1->container; + uint8_t typecode1 = leaf1->typecode; + uint8_t typecode2; + container_t *container2; + if (leaf1->typecode == SHARED_CONTAINER_TYPE) { + container2 = container_xor( + leaf1->container, leaf1->typecode, leaf2->container, + leaf2->typecode, &typecode2); + if (container2 != container1) { + // We only free when doing container_xor, not + // container_ixor, as ixor frees the original + // internally. + container_free(container1, typecode1); + } + } else { + container2 = container_ixor( + leaf1->container, leaf1->typecode, leaf2->container, + leaf2->typecode, &typecode2); + } + leaf1->container = container2; + leaf1->typecode = typecode2; + + if (!container_nonzero_cardinality(container2, typecode2)) { + container_free(container2, typecode2); + art_iterator_erase(&r1->art, &it1); + free_leaf(leaf1); + } else { + // Only advance the iterator if we didn't delete the + // leaf, as erasing advances by itself. + art_iterator_next(&it1); + } + art_iterator_next(&it2); + } + } + if ((it1_present && !it2_present) || compare_result < 0) { + // Cases 1 and 3a: it1 is the only iterator or is before it2. + art_iterator_next(&it1); + } else if ((!it1_present && it2_present) || compare_result > 0) { + // Cases 2 and 3c: it2 is the only iterator or is before it1. + leaf_t *result_leaf = copy_leaf_container((leaf_t *)it2.value); + if (it1_present) { + art_iterator_insert(&r1->art, &it1, it2.key, + (art_val_t *)result_leaf); + art_iterator_next(&it1); + } else { + art_insert(&r1->art, it2.key, (art_val_t *)result_leaf); + } + art_iterator_next(&it2); + } + } +} + +roaring64_bitmap_t *roaring64_bitmap_andnot(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + roaring64_bitmap_t *result = roaring64_bitmap_create(); + + art_iterator_t it1 = art_init_iterator(&r1->art, /*first=*/true); + art_iterator_t it2 = art_init_iterator(&r2->art, /*first=*/true); + + while (it1.value != NULL) { + // Cases: + // 1. it1_present && !it2_present -> output it1, it1++ + // 2. it1_present && it2_present + // a. it1 < it2 -> output it1, it1++ + // b. it1 == it2 -> output it1 - it2, it1++, it2++ + // c. it1 > it2 -> it2++ + bool it2_present = it2.value != NULL; + int compare_result = 0; + if (it2_present) { + compare_result = compare_high48(it1.key, it2.key); + if (compare_result == 0) { + // Case 2b: iterators at the same high key position. + leaf_t *result_leaf = (leaf_t *)roaring_malloc(sizeof(leaf_t)); + leaf_t *leaf1 = (leaf_t *)it1.value; + leaf_t *leaf2 = (leaf_t *)it2.value; + result_leaf->container = container_andnot( + leaf1->container, leaf1->typecode, leaf2->container, + leaf2->typecode, &result_leaf->typecode); + + if (container_nonzero_cardinality(result_leaf->container, + result_leaf->typecode)) { + art_insert(&result->art, it1.key, (art_val_t *)result_leaf); + } else { + container_free(result_leaf->container, + result_leaf->typecode); + free_leaf(result_leaf); + } + art_iterator_next(&it1); + art_iterator_next(&it2); + } + } + if (!it2_present || compare_result < 0) { + // Cases 1 and 2a: it1 is the only iterator or is before it2. + leaf_t *result_leaf = copy_leaf_container((leaf_t *)it1.value); + art_insert(&result->art, it1.key, (art_val_t *)result_leaf); + art_iterator_next(&it1); + } else if (compare_result > 0) { + // Case 2c: it1 is after it2. + art_iterator_next(&it2); + } + } + return result; +} + +uint64_t roaring64_bitmap_andnot_cardinality(const roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + uint64_t c1 = roaring64_bitmap_get_cardinality(r1); + uint64_t inter = roaring64_bitmap_and_cardinality(r1, r2); + return c1 - inter; +} + +void roaring64_bitmap_andnot_inplace(roaring64_bitmap_t *r1, + const roaring64_bitmap_t *r2) { + art_iterator_t it1 = art_init_iterator(&r1->art, /*first=*/true); + art_iterator_t it2 = art_init_iterator(&r2->art, /*first=*/true); + + while (it1.value != NULL) { + // Cases: + // 1. it1_present && !it2_present -> it1++ + // 2. it1_present && it2_present + // a. it1 < it2 -> it1++ + // b. it1 == it2 -> it1 - it2, it1++, it2++ + // c. it1 > it2 -> it2++ + bool it2_present = it2.value != NULL; + int compare_result = 0; + if (it2_present) { + compare_result = compare_high48(it1.key, it2.key); + if (compare_result == 0) { + // Case 2b: iterators at the same high key position. + leaf_t *leaf1 = (leaf_t *)it1.value; + leaf_t *leaf2 = (leaf_t *)it2.value; + container_t *container1 = leaf1->container; + uint8_t typecode1 = leaf1->typecode; + uint8_t typecode2; + container_t *container2; + if (leaf1->typecode == SHARED_CONTAINER_TYPE) { + container2 = container_andnot( + leaf1->container, leaf1->typecode, leaf2->container, + leaf2->typecode, &typecode2); + if (container2 != container1) { + // We only free when doing container_andnot, not + // container_iandnot, as iandnot frees the original + // internally. + container_free(container1, typecode1); + } + } else { + container2 = container_iandnot( + leaf1->container, leaf1->typecode, leaf2->container, + leaf2->typecode, &typecode2); + } + if (container2 != container1) { + leaf1->container = container2; + leaf1->typecode = typecode2; + } + + if (!container_nonzero_cardinality(container2, typecode2)) { + container_free(container2, typecode2); + art_iterator_erase(&r1->art, &it1); + free_leaf(leaf1); + } else { + // Only advance the iterator if we didn't delete the + // leaf, as erasing advances by itself. + art_iterator_next(&it1); + } + art_iterator_next(&it2); + } + } + if (!it2_present || compare_result < 0) { + // Cases 1 and 2a: it1 is the only iterator or is before it2. + art_iterator_next(&it1); + } else if (compare_result > 0) { + // Case 2c: it1 is after it2. + art_iterator_next(&it2); + } + } +} + +/** + * Flips the leaf at high48 in the range [min, max), returning a new leaf with a + * new container. If the high48 key is not found in the existing bitmap, a new + * container is created. Returns null if the negation results in an empty range. + */ +static leaf_t *roaring64_flip_leaf(const roaring64_bitmap_t *r, + uint8_t high48[], uint32_t min, + uint32_t max) { + leaf_t *leaf1 = (leaf_t *)art_find(&r->art, high48); + container_t *container2; + uint8_t typecode2; + if (leaf1 == NULL) { + // No container at this key, create a full container. + container2 = container_range_of_ones(min, max, &typecode2); + } else if (min == 0 && max > 0xFFFF) { + // Flip whole container. + container2 = + container_not(leaf1->container, leaf1->typecode, &typecode2); + } else { + // Partially flip a container. + container2 = container_not_range(leaf1->container, leaf1->typecode, min, + max, &typecode2); + } + if (container_nonzero_cardinality(container2, typecode2)) { + return create_leaf(container2, typecode2); + } + container_free(container2, typecode2); + return NULL; +} + +/** + * Flips the leaf at high48 in the range [min, max). If the high48 key is not + * found in the bitmap, a new container is created. Deletes the leaf and + * associated container if the negation results in an empty range. + */ +static void roaring64_flip_leaf_inplace(roaring64_bitmap_t *r, uint8_t high48[], + uint32_t min, uint32_t max) { + leaf_t *leaf = (leaf_t *)art_find(&r->art, high48); + container_t *container2; + uint8_t typecode2; + if (leaf == NULL) { + // No container at this key, insert a full container. + container2 = container_range_of_ones(min, max, &typecode2); + art_insert(&r->art, high48, + (art_val_t *)create_leaf(container2, typecode2)); + return; + } + + if (min == 0 && max > 0xFFFF) { + // Flip whole container. + container2 = + container_inot(leaf->container, leaf->typecode, &typecode2); + } else { + // Partially flip a container. + container2 = container_inot_range(leaf->container, leaf->typecode, min, + max, &typecode2); + } + + leaf->container = container2; + leaf->typecode = typecode2; + + if (!container_nonzero_cardinality(leaf->container, leaf->typecode)) { + art_erase(&r->art, high48); + container_free(leaf->container, leaf->typecode); + free_leaf(leaf); + } +} + +roaring64_bitmap_t *roaring64_bitmap_flip(const roaring64_bitmap_t *r, + uint64_t min, uint64_t max) { + if (min >= max) { + return roaring64_bitmap_copy(r); + } + return roaring64_bitmap_flip_closed(r, min, max - 1); +} + +roaring64_bitmap_t *roaring64_bitmap_flip_closed(const roaring64_bitmap_t *r1, + uint64_t min, uint64_t max) { + if (min > max) { + return roaring64_bitmap_copy(r1); + } + uint8_t min_high48_key[ART_KEY_BYTES]; + uint16_t min_low16 = split_key(min, min_high48_key); + uint8_t max_high48_key[ART_KEY_BYTES]; + uint16_t max_low16 = split_key(max, max_high48_key); + uint64_t min_high48_bits = (min & 0xFFFFFFFFFFFF0000ULL) >> 16; + uint64_t max_high48_bits = (max & 0xFFFFFFFFFFFF0000ULL) >> 16; + + roaring64_bitmap_t *r2 = roaring64_bitmap_create(); + art_iterator_t it = art_init_iterator(&r1->art, /*first=*/true); + + // Copy the containers before min unchanged. + while (it.value != NULL && compare_high48(it.key, min_high48_key) < 0) { + leaf_t *leaf1 = (leaf_t *)it.value; + uint8_t typecode2 = leaf1->typecode; + container_t *container2 = get_copy_of_container( + leaf1->container, &typecode2, /*copy_on_write=*/false); + art_insert(&r2->art, it.key, + (art_val_t *)create_leaf(container2, typecode2)); + art_iterator_next(&it); + } + + // Flip the range (including non-existent containers!) between min and max. + for (uint64_t high48_bits = min_high48_bits; high48_bits <= max_high48_bits; + high48_bits++) { + uint8_t current_high48_key[ART_KEY_BYTES]; + split_key(high48_bits << 16, current_high48_key); + + uint32_t min_container = 0; + if (high48_bits == min_high48_bits) { + min_container = min_low16; + } + uint32_t max_container = 0xFFFF + 1; // Exclusive range. + if (high48_bits == max_high48_bits) { + max_container = max_low16 + 1; // Exclusive. + } + + leaf_t *leaf = roaring64_flip_leaf(r1, current_high48_key, + min_container, max_container); + if (leaf != NULL) { + art_insert(&r2->art, current_high48_key, (art_val_t *)leaf); + } + } + + // Copy the containers after max unchanged. + it = art_upper_bound(&r1->art, max_high48_key); + while (it.value != NULL) { + leaf_t *leaf1 = (leaf_t *)it.value; + uint8_t typecode2 = leaf1->typecode; + container_t *container2 = get_copy_of_container( + leaf1->container, &typecode2, /*copy_on_write=*/false); + art_insert(&r2->art, it.key, + (art_val_t *)create_leaf(container2, typecode2)); + art_iterator_next(&it); + } + + return r2; +} + +void roaring64_bitmap_flip_inplace(roaring64_bitmap_t *r, uint64_t min, + uint64_t max) { + if (min >= max) { + return; + } + roaring64_bitmap_flip_closed_inplace(r, min, max - 1); +} + +void roaring64_bitmap_flip_closed_inplace(roaring64_bitmap_t *r, uint64_t min, + uint64_t max) { + if (min > max) { + return; + } + uint16_t min_low16 = (uint16_t)min; + uint16_t max_low16 = (uint16_t)max; + uint64_t min_high48_bits = (min & 0xFFFFFFFFFFFF0000ULL) >> 16; + uint64_t max_high48_bits = (max & 0xFFFFFFFFFFFF0000ULL) >> 16; + + // Flip the range (including non-existent containers!) between min and max. + for (uint64_t high48_bits = min_high48_bits; high48_bits <= max_high48_bits; + high48_bits++) { + uint8_t current_high48_key[ART_KEY_BYTES]; + split_key(high48_bits << 16, current_high48_key); + + uint32_t min_container = 0; + if (high48_bits == min_high48_bits) { + min_container = min_low16; + } + uint32_t max_container = 0xFFFF + 1; // Exclusive range. + if (high48_bits == max_high48_bits) { + max_container = max_low16 + 1; // Exclusive. + } + + roaring64_flip_leaf_inplace(r, current_high48_key, min_container, + max_container); + } +} + +// Returns the number of distinct high 32-bit entries in the bitmap. +static inline uint64_t count_high32(const roaring64_bitmap_t *r) { + art_iterator_t it = art_init_iterator(&r->art, /*first=*/true); + uint64_t high32_count = 0; + uint32_t prev_high32 = 0; + while (it.value != NULL) { + uint32_t current_high32 = (uint32_t)(combine_key(it.key, 0) >> 32); + if (high32_count == 0 || prev_high32 != current_high32) { + high32_count++; + prev_high32 = current_high32; + } + art_iterator_next(&it); + } + return high32_count; +} + +// Frees the (32-bit!) bitmap without freeing the containers. +static inline void roaring_bitmap_free_without_containers(roaring_bitmap_t *r) { + ra_clear_without_containers(&r->high_low_container); + roaring_free(r); +} + +size_t roaring64_bitmap_portable_size_in_bytes(const roaring64_bitmap_t *r) { + // https://github.com/RoaringBitmap/RoaringFormatSpec#extension-for-64-bit-implementations + size_t size = 0; + + // Write as uint64 the distinct number of "buckets", where a bucket is + // defined as the most significant 32 bits of an element. + uint64_t high32_count; + size += sizeof(high32_count); + + art_iterator_t it = art_init_iterator(&r->art, /*first=*/true); + uint32_t prev_high32 = 0; + roaring_bitmap_t *bitmap32 = NULL; + + // Iterate through buckets ordered by increasing keys. + while (it.value != NULL) { + uint32_t current_high32 = (uint32_t)(combine_key(it.key, 0) >> 32); + if (bitmap32 == NULL || prev_high32 != current_high32) { + if (bitmap32 != NULL) { + // Write as uint32 the most significant 32 bits of the bucket. + size += sizeof(prev_high32); + + // Write the 32-bit Roaring bitmaps representing the least + // significant bits of a set of elements. + size += roaring_bitmap_portable_size_in_bytes(bitmap32); + roaring_bitmap_free_without_containers(bitmap32); + } + + // Start a new 32-bit bitmap with the current high 32 bits. + art_iterator_t it2 = it; + uint32_t containers_with_high32 = 0; + while (it2.value != NULL && (uint32_t)(combine_key(it2.key, 0) >> + 32) == current_high32) { + containers_with_high32++; + art_iterator_next(&it2); + } + bitmap32 = + roaring_bitmap_create_with_capacity(containers_with_high32); + + prev_high32 = current_high32; + } + leaf_t *leaf = (leaf_t *)it.value; + ra_append(&bitmap32->high_low_container, + (uint16_t)(current_high32 >> 16), leaf->container, + leaf->typecode); + art_iterator_next(&it); + } + + if (bitmap32 != NULL) { + // Write as uint32 the most significant 32 bits of the bucket. + size += sizeof(prev_high32); + + // Write the 32-bit Roaring bitmaps representing the least + // significant bits of a set of elements. + size += roaring_bitmap_portable_size_in_bytes(bitmap32); + roaring_bitmap_free_without_containers(bitmap32); + } + + return size; +} + +size_t roaring64_bitmap_portable_serialize(const roaring64_bitmap_t *r, + char *buf) { + // https://github.com/RoaringBitmap/RoaringFormatSpec#extension-for-64-bit-implementations + if (buf == NULL) { + return 0; + } + const char *initial_buf = buf; + + // Write as uint64 the distinct number of "buckets", where a bucket is + // defined as the most significant 32 bits of an element. + uint64_t high32_count = count_high32(r); + memcpy(buf, &high32_count, sizeof(high32_count)); + buf += sizeof(high32_count); + + art_iterator_t it = art_init_iterator(&r->art, /*first=*/true); + uint32_t prev_high32 = 0; + roaring_bitmap_t *bitmap32 = NULL; + + // Iterate through buckets ordered by increasing keys. + while (it.value != NULL) { + uint64_t current_high48 = combine_key(it.key, 0); + uint32_t current_high32 = (uint32_t)(current_high48 >> 32); + if (bitmap32 == NULL || prev_high32 != current_high32) { + if (bitmap32 != NULL) { + // Write as uint32 the most significant 32 bits of the bucket. + memcpy(buf, &prev_high32, sizeof(prev_high32)); + buf += sizeof(prev_high32); + + // Write the 32-bit Roaring bitmaps representing the least + // significant bits of a set of elements. + buf += roaring_bitmap_portable_serialize(bitmap32, buf); + roaring_bitmap_free_without_containers(bitmap32); + } + + // Start a new 32-bit bitmap with the current high 32 bits. + art_iterator_t it2 = it; + uint32_t containers_with_high32 = 0; + while (it2.value != NULL && + (uint32_t)combine_key(it2.key, 0) == current_high32) { + containers_with_high32++; + art_iterator_next(&it2); + } + bitmap32 = + roaring_bitmap_create_with_capacity(containers_with_high32); + + prev_high32 = current_high32; + } + leaf_t *leaf = (leaf_t *)it.value; + ra_append(&bitmap32->high_low_container, + (uint16_t)(current_high48 >> 16), leaf->container, + leaf->typecode); + art_iterator_next(&it); + } + + if (bitmap32 != NULL) { + // Write as uint32 the most significant 32 bits of the bucket. + memcpy(buf, &prev_high32, sizeof(prev_high32)); + buf += sizeof(prev_high32); + + // Write the 32-bit Roaring bitmaps representing the least + // significant bits of a set of elements. + buf += roaring_bitmap_portable_serialize(bitmap32, buf); + roaring_bitmap_free_without_containers(bitmap32); + } + + return buf - initial_buf; +} + +size_t roaring64_bitmap_portable_deserialize_size(const char *buf, + size_t maxbytes) { + // https://github.com/RoaringBitmap/RoaringFormatSpec#extension-for-64-bit-implementations + if (buf == NULL) { + return 0; + } + size_t read_bytes = 0; + + // Read as uint64 the distinct number of "buckets", where a bucket is + // defined as the most significant 32 bits of an element. + uint64_t buckets; + if (read_bytes + sizeof(buckets) > maxbytes) { + return 0; + } + memcpy(&buckets, buf, sizeof(buckets)); + buf += sizeof(buckets); + read_bytes += sizeof(buckets); + + // Buckets should be 32 bits with 4 bits of zero padding. + if (buckets > UINT32_MAX) { + return 0; + } + + // Iterate through buckets ordered by increasing keys. + for (uint64_t bucket = 0; bucket < buckets; ++bucket) { + // Read as uint32 the most significant 32 bits of the bucket. + uint32_t high32; + if (read_bytes + sizeof(high32) > maxbytes) { + return 0; + } + buf += sizeof(high32); + read_bytes += sizeof(high32); + + // Read the 32-bit Roaring bitmaps representing the least significant + // bits of a set of elements. + size_t bitmap32_size = roaring_bitmap_portable_deserialize_size( + buf, maxbytes - read_bytes); + if (bitmap32_size == 0) { + return 0; + } + buf += bitmap32_size; + read_bytes += bitmap32_size; + } + return read_bytes; +} + +roaring64_bitmap_t *roaring64_bitmap_portable_deserialize_safe( + const char *buf, size_t maxbytes) { + // https://github.com/RoaringBitmap/RoaringFormatSpec#extension-for-64-bit-implementations + if (buf == NULL) { + return NULL; + } + size_t read_bytes = 0; + + // Read as uint64 the distinct number of "buckets", where a bucket is + // defined as the most significant 32 bits of an element. + uint64_t buckets; + if (read_bytes + sizeof(buckets) > maxbytes) { + return NULL; + } + memcpy(&buckets, buf, sizeof(buckets)); + buf += sizeof(buckets); + read_bytes += sizeof(buckets); + + // Buckets should be 32 bits with 4 bits of zero padding. + if (buckets > UINT32_MAX) { + return NULL; + } + + roaring64_bitmap_t *r = roaring64_bitmap_create(); + // Iterate through buckets ordered by increasing keys. + for (uint64_t bucket = 0; bucket < buckets; ++bucket) { + // Read as uint32 the most significant 32 bits of the bucket. + uint32_t high32; + if (read_bytes + sizeof(high32) > maxbytes) { + roaring64_bitmap_free(r); + return NULL; + } + memcpy(&high32, buf, sizeof(high32)); + buf += sizeof(high32); + read_bytes += sizeof(high32); + + // Read the 32-bit Roaring bitmaps representing the least significant + // bits of a set of elements. + size_t bitmap32_size = roaring_bitmap_portable_deserialize_size( + buf, maxbytes - read_bytes); + if (bitmap32_size == 0) { + roaring64_bitmap_free(r); + return NULL; + } + + roaring_bitmap_t *bitmap32 = roaring_bitmap_portable_deserialize_safe( + buf, maxbytes - read_bytes); + if (bitmap32 == NULL) { + roaring64_bitmap_free(r); + return NULL; + } + buf += bitmap32_size; + read_bytes += bitmap32_size; + + // Insert all containers of the 32-bit bitmap into the 64-bit bitmap. + uint32_t r32_size = ra_get_size(&bitmap32->high_low_container); + for (size_t i = 0; i < r32_size; ++i) { + uint16_t key16 = + ra_get_key_at_index(&bitmap32->high_low_container, (uint16_t)i); + uint8_t typecode; + container_t *container = ra_get_container_at_index( + &bitmap32->high_low_container, (uint16_t)i, &typecode); + + uint64_t high48_bits = + (((uint64_t)high32) << 32) | (((uint64_t)key16) << 16); + uint8_t high48[ART_KEY_BYTES]; + split_key(high48_bits, high48); + leaf_t *leaf = create_leaf(container, typecode); + art_insert(&r->art, high48, (art_val_t *)leaf); + } + roaring_bitmap_free_without_containers(bitmap32); + } + return r; +} + +bool roaring64_bitmap_iterate(const roaring64_bitmap_t *r, + roaring_iterator64 iterator, void *ptr) { + art_iterator_t it = art_init_iterator(&r->art, /*first=*/true); + while (it.value != NULL) { + uint64_t high48 = combine_key(it.key, 0); + uint64_t high32 = high48 & 0xFFFFFFFF00000000ULL; + uint32_t low32 = high48; + leaf_t *leaf = (leaf_t *)it.value; + if (!container_iterate64(leaf->container, leaf->typecode, low32, + iterator, high32, ptr)) { + return false; + } + art_iterator_next(&it); + } + return true; +} + +void roaring64_bitmap_to_uint64_array(const roaring64_bitmap_t *r, + uint64_t *out) { + roaring64_iterator_t it = {0}; + roaring64_iterator_init_at(r, &it, /*first=*/true); + roaring64_iterator_read(&it, out, UINT64_MAX); +} + +roaring64_iterator_t *roaring64_iterator_create(const roaring64_bitmap_t *r) { + roaring64_iterator_t *it = + (roaring64_iterator_t *)roaring_malloc(sizeof(roaring64_iterator_t)); + return roaring64_iterator_init_at(r, it, /*first=*/true); +} + +roaring64_iterator_t *roaring64_iterator_create_last( + const roaring64_bitmap_t *r) { + roaring64_iterator_t *it = + (roaring64_iterator_t *)roaring_malloc(sizeof(roaring64_iterator_t)); + return roaring64_iterator_init_at(r, it, /*first=*/false); +} + +void roaring64_iterator_reinit(const roaring64_bitmap_t *r, + roaring64_iterator_t *it) { + roaring64_iterator_init_at(r, it, /*first=*/true); +} + +void roaring64_iterator_reinit_last(const roaring64_bitmap_t *r, + roaring64_iterator_t *it) { + roaring64_iterator_init_at(r, it, /*first=*/false); +} + +roaring64_iterator_t *roaring64_iterator_copy(const roaring64_iterator_t *it) { + roaring64_iterator_t *new_it = + (roaring64_iterator_t *)roaring_malloc(sizeof(roaring64_iterator_t)); + memcpy(new_it, it, sizeof(*it)); + return new_it; +} + +void roaring64_iterator_free(roaring64_iterator_t *it) { roaring_free(it); } + +bool roaring64_iterator_has_value(const roaring64_iterator_t *it) { + return it->has_value; +} + +uint64_t roaring64_iterator_value(const roaring64_iterator_t *it) { + return it->value; +} + +bool roaring64_iterator_advance(roaring64_iterator_t *it) { + if (it->art_it.value == NULL) { + if (it->saturated_forward) { + return (it->has_value = false); + } + roaring64_iterator_init_at(it->parent, it, /*first=*/true); + return it->has_value; + } + leaf_t *leaf = (leaf_t *)it->art_it.value; + uint16_t low16 = (uint16_t)it->value; + if (container_iterator_next(leaf->container, leaf->typecode, + &it->container_it, &low16)) { + it->value = it->high48 | low16; + return (it->has_value = true); + } + if (art_iterator_next(&it->art_it)) { + return roaring64_iterator_init_at_leaf_first(it); + } + it->saturated_forward = true; + return (it->has_value = false); +} + +bool roaring64_iterator_previous(roaring64_iterator_t *it) { + if (it->art_it.value == NULL) { + if (!it->saturated_forward) { + // Saturated backward. + return (it->has_value = false); + } + roaring64_iterator_init_at(it->parent, it, /*first=*/false); + return it->has_value; + } + leaf_t *leaf = (leaf_t *)it->art_it.value; + uint16_t low16 = (uint16_t)it->value; + if (container_iterator_prev(leaf->container, leaf->typecode, + &it->container_it, &low16)) { + it->value = it->high48 | low16; + return (it->has_value = true); + } + if (art_iterator_prev(&it->art_it)) { + return roaring64_iterator_init_at_leaf_last(it); + } + it->saturated_forward = false; // Saturated backward. + return (it->has_value = false); +} + +bool roaring64_iterator_move_equalorlarger(roaring64_iterator_t *it, + uint64_t val) { + uint8_t val_high48[ART_KEY_BYTES]; + uint16_t val_low16 = split_key(val, val_high48); + if (!it->has_value || it->high48 != (val & 0xFFFFFFFFFFFF0000)) { + // The ART iterator is before or after the high48 bits of `val` (or + // beyond the ART altogether), so we need to move to a leaf with a key + // equal or greater. + if (!art_iterator_lower_bound(&it->art_it, val_high48)) { + // Only smaller keys found. + it->saturated_forward = true; + return (it->has_value = false); + } + it->high48 = combine_key(it->art_it.key, 0); + // Fall through to the next if statement. + } + + if (it->high48 == (val & 0xFFFFFFFFFFFF0000)) { + // We're at equal high bits, check if a suitable value can be found in + // this container. + leaf_t *leaf = (leaf_t *)it->art_it.value; + uint16_t low16 = (uint16_t)it->value; + if (container_iterator_lower_bound(leaf->container, leaf->typecode, + &it->container_it, &low16, + val_low16)) { + it->value = it->high48 | low16; + return (it->has_value = true); + } + // Only smaller entries in this container, move to the next. + if (!art_iterator_next(&it->art_it)) { + it->saturated_forward = true; + return (it->has_value = false); + } + } + + // We're at a leaf with high bits greater than `val`, so the first entry in + // this container is our result. + return roaring64_iterator_init_at_leaf_first(it); +} + +uint64_t roaring64_iterator_read(roaring64_iterator_t *it, uint64_t *buf, + uint64_t count) { + uint64_t consumed = 0; + while (it->has_value && consumed < count) { + uint32_t container_consumed; + leaf_t *leaf = (leaf_t *)it->art_it.value; + uint16_t low16 = (uint16_t)it->value; + uint32_t container_count = UINT32_MAX; + if (count - consumed < (uint64_t)UINT32_MAX) { + container_count = count - consumed; + } + bool has_value = container_iterator_read_into_uint64( + leaf->container, leaf->typecode, &it->container_it, it->high48, buf, + container_count, &container_consumed, &low16); + consumed += container_consumed; + buf += container_consumed; + if (has_value) { + it->has_value = true; + it->value = it->high48 | low16; + assert(consumed == count); + return consumed; + } + it->has_value = art_iterator_next(&it->art_it); + if (it->has_value) { + roaring64_iterator_init_at_leaf_first(it); + } + } + return consumed; +} + +#ifdef __cplusplus +} // extern "C" +} // namespace roaring +} // namespace api +#endif diff --git a/contrib/libs/croaring/src/roaring_array.c b/contrib/libs/croaring/src/roaring_array.c new file mode 100644 index 000000000000..fabc8b5b6495 --- /dev/null +++ b/contrib/libs/croaring/src/roaring_array.c @@ -0,0 +1,888 @@ +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +namespace roaring { +namespace internal { +#endif + +// Convention: [0,ra->size) all elements are initialized +// [ra->size, ra->allocation_size) is junk and contains nothing needing freeing + +extern inline int32_t ra_get_size(const roaring_array_t *ra); +extern inline int32_t ra_get_index(const roaring_array_t *ra, uint16_t x); + +extern inline container_t *ra_get_container_at_index(const roaring_array_t *ra, + uint16_t i, + uint8_t *typecode); + +extern inline void ra_unshare_container_at_index(roaring_array_t *ra, + uint16_t i); + +extern inline void ra_replace_key_and_container_at_index(roaring_array_t *ra, + int32_t i, + uint16_t key, + container_t *c, + uint8_t typecode); + +extern inline void ra_set_container_at_index(const roaring_array_t *ra, + int32_t i, container_t *c, + uint8_t typecode); + +static bool realloc_array(roaring_array_t *ra, int32_t new_capacity) { + // + // Note: not implemented using C's realloc(), because the memory layout is + // Struct-of-Arrays vs. Array-of-Structs: + // https://github.com/RoaringBitmap/CRoaring/issues/256 + + if (new_capacity == 0) { + roaring_free(ra->containers); + ra->containers = NULL; + ra->keys = NULL; + ra->typecodes = NULL; + ra->allocation_size = 0; + return true; + } + const size_t memoryneeded = + new_capacity * + (sizeof(uint16_t) + sizeof(container_t *) + sizeof(uint8_t)); + void *bigalloc = roaring_malloc(memoryneeded); + if (!bigalloc) return false; + void *oldbigalloc = ra->containers; + container_t **newcontainers = (container_t **)bigalloc; + uint16_t *newkeys = (uint16_t *)(newcontainers + new_capacity); + uint8_t *newtypecodes = (uint8_t *)(newkeys + new_capacity); + assert((char *)(newtypecodes + new_capacity) == + (char *)bigalloc + memoryneeded); + if (ra->size > 0) { + memcpy(newcontainers, ra->containers, sizeof(container_t *) * ra->size); + memcpy(newkeys, ra->keys, sizeof(uint16_t) * ra->size); + memcpy(newtypecodes, ra->typecodes, sizeof(uint8_t) * ra->size); + } + ra->containers = newcontainers; + ra->keys = newkeys; + ra->typecodes = newtypecodes; + ra->allocation_size = new_capacity; + roaring_free(oldbigalloc); + return true; +} + +bool ra_init_with_capacity(roaring_array_t *new_ra, uint32_t cap) { + if (!new_ra) return false; + ra_init(new_ra); + + // Containers hold 64Ki elements, so 64Ki containers is enough to hold + // `0x10000 * 0x10000` (all 2^32) elements + if (cap > 0x10000) { + cap = 0x10000; + } + + if (cap > 0) { + void *bigalloc = roaring_malloc( + cap * (sizeof(uint16_t) + sizeof(container_t *) + sizeof(uint8_t))); + if (bigalloc == NULL) return false; + new_ra->containers = (container_t **)bigalloc; + new_ra->keys = (uint16_t *)(new_ra->containers + cap); + new_ra->typecodes = (uint8_t *)(new_ra->keys + cap); + // Narrowing is safe because of above check + new_ra->allocation_size = (int32_t)cap; + } + return true; +} + +int ra_shrink_to_fit(roaring_array_t *ra) { + int savings = (ra->allocation_size - ra->size) * + (sizeof(uint16_t) + sizeof(container_t *) + sizeof(uint8_t)); + if (!realloc_array(ra, ra->size)) { + return 0; + } + ra->allocation_size = ra->size; + return savings; +} + +void ra_init(roaring_array_t *new_ra) { + if (!new_ra) { + return; + } + new_ra->keys = NULL; + new_ra->containers = NULL; + new_ra->typecodes = NULL; + + new_ra->allocation_size = 0; + new_ra->size = 0; + new_ra->flags = 0; +} + +bool ra_overwrite(const roaring_array_t *source, roaring_array_t *dest, + bool copy_on_write) { + ra_clear_containers(dest); // we are going to overwrite them + if (source->size == 0) { // Note: can't call memcpy(NULL), even w/size + dest->size = 0; // <--- This is important. + return true; // output was just cleared, so they match + } + if (dest->allocation_size < source->size) { + if (!realloc_array(dest, source->size)) { + return false; + } + } + dest->size = source->size; + memcpy(dest->keys, source->keys, dest->size * sizeof(uint16_t)); + // we go through the containers, turning them into shared containers... + if (copy_on_write) { + for (int32_t i = 0; i < dest->size; ++i) { + source->containers[i] = get_copy_of_container( + source->containers[i], &source->typecodes[i], copy_on_write); + } + // we do a shallow copy to the other bitmap + memcpy(dest->containers, source->containers, + dest->size * sizeof(container_t *)); + memcpy(dest->typecodes, source->typecodes, + dest->size * sizeof(uint8_t)); + } else { + memcpy(dest->typecodes, source->typecodes, + dest->size * sizeof(uint8_t)); + for (int32_t i = 0; i < dest->size; i++) { + dest->containers[i] = + container_clone(source->containers[i], source->typecodes[i]); + if (dest->containers[i] == NULL) { + for (int32_t j = 0; j < i; j++) { + container_free(dest->containers[j], dest->typecodes[j]); + } + ra_clear_without_containers(dest); + return false; + } + } + } + return true; +} + +void ra_clear_containers(roaring_array_t *ra) { + for (int32_t i = 0; i < ra->size; ++i) { + container_free(ra->containers[i], ra->typecodes[i]); + } +} + +void ra_reset(roaring_array_t *ra) { + ra_clear_containers(ra); + ra->size = 0; + ra_shrink_to_fit(ra); +} + +void ra_clear_without_containers(roaring_array_t *ra) { + roaring_free( + ra->containers); // keys and typecodes are allocated with containers + ra->size = 0; + ra->allocation_size = 0; + ra->containers = NULL; + ra->keys = NULL; + ra->typecodes = NULL; +} + +void ra_clear(roaring_array_t *ra) { + ra_clear_containers(ra); + ra_clear_without_containers(ra); +} + +bool extend_array(roaring_array_t *ra, int32_t k) { + int32_t desired_size = ra->size + k; + const int32_t max_containers = 65536; + assert(desired_size <= max_containers); + if (desired_size > ra->allocation_size) { + int32_t new_capacity = + (ra->size < 1024) ? 2 * desired_size : 5 * desired_size / 4; + if (new_capacity > max_containers) { + new_capacity = max_containers; + } + + return realloc_array(ra, new_capacity); + } + return true; +} + +void ra_append(roaring_array_t *ra, uint16_t key, container_t *c, + uint8_t typecode) { + extend_array(ra, 1); + const int32_t pos = ra->size; + + ra->keys[pos] = key; + ra->containers[pos] = c; + ra->typecodes[pos] = typecode; + ra->size++; +} + +void ra_append_copy(roaring_array_t *ra, const roaring_array_t *sa, + uint16_t index, bool copy_on_write) { + extend_array(ra, 1); + const int32_t pos = ra->size; + + // old contents is junk that does not need freeing + ra->keys[pos] = sa->keys[index]; + // the shared container will be in two bitmaps + if (copy_on_write) { + sa->containers[index] = get_copy_of_container( + sa->containers[index], &sa->typecodes[index], copy_on_write); + ra->containers[pos] = sa->containers[index]; + ra->typecodes[pos] = sa->typecodes[index]; + } else { + ra->containers[pos] = + container_clone(sa->containers[index], sa->typecodes[index]); + ra->typecodes[pos] = sa->typecodes[index]; + } + ra->size++; +} + +void ra_append_copies_until(roaring_array_t *ra, const roaring_array_t *sa, + uint16_t stopping_key, bool copy_on_write) { + for (int32_t i = 0; i < sa->size; ++i) { + if (sa->keys[i] >= stopping_key) break; + ra_append_copy(ra, sa, (uint16_t)i, copy_on_write); + } +} + +void ra_append_copy_range(roaring_array_t *ra, const roaring_array_t *sa, + int32_t start_index, int32_t end_index, + bool copy_on_write) { + extend_array(ra, end_index - start_index); + for (int32_t i = start_index; i < end_index; ++i) { + const int32_t pos = ra->size; + ra->keys[pos] = sa->keys[i]; + if (copy_on_write) { + sa->containers[i] = get_copy_of_container( + sa->containers[i], &sa->typecodes[i], copy_on_write); + ra->containers[pos] = sa->containers[i]; + ra->typecodes[pos] = sa->typecodes[i]; + } else { + ra->containers[pos] = + container_clone(sa->containers[i], sa->typecodes[i]); + ra->typecodes[pos] = sa->typecodes[i]; + } + ra->size++; + } +} + +void ra_append_copies_after(roaring_array_t *ra, const roaring_array_t *sa, + uint16_t before_start, bool copy_on_write) { + int start_location = ra_get_index(sa, before_start); + if (start_location >= 0) + ++start_location; + else + start_location = -start_location - 1; + ra_append_copy_range(ra, sa, start_location, sa->size, copy_on_write); +} + +void ra_append_move_range(roaring_array_t *ra, roaring_array_t *sa, + int32_t start_index, int32_t end_index) { + extend_array(ra, end_index - start_index); + + for (int32_t i = start_index; i < end_index; ++i) { + const int32_t pos = ra->size; + + ra->keys[pos] = sa->keys[i]; + ra->containers[pos] = sa->containers[i]; + ra->typecodes[pos] = sa->typecodes[i]; + ra->size++; + } +} + +void ra_append_range(roaring_array_t *ra, roaring_array_t *sa, + int32_t start_index, int32_t end_index, + bool copy_on_write) { + extend_array(ra, end_index - start_index); + + for (int32_t i = start_index; i < end_index; ++i) { + const int32_t pos = ra->size; + ra->keys[pos] = sa->keys[i]; + if (copy_on_write) { + sa->containers[i] = get_copy_of_container( + sa->containers[i], &sa->typecodes[i], copy_on_write); + ra->containers[pos] = sa->containers[i]; + ra->typecodes[pos] = sa->typecodes[i]; + } else { + ra->containers[pos] = + container_clone(sa->containers[i], sa->typecodes[i]); + ra->typecodes[pos] = sa->typecodes[i]; + } + ra->size++; + } +} + +container_t *ra_get_container(roaring_array_t *ra, uint16_t x, + uint8_t *typecode) { + int i = binarySearch(ra->keys, (int32_t)ra->size, x); + if (i < 0) return NULL; + *typecode = ra->typecodes[i]; + return ra->containers[i]; +} + +extern inline container_t *ra_get_container_at_index(const roaring_array_t *ra, + uint16_t i, + uint8_t *typecode); + +extern inline uint16_t ra_get_key_at_index(const roaring_array_t *ra, + uint16_t i); + +extern inline int32_t ra_get_index(const roaring_array_t *ra, uint16_t x); + +extern inline int32_t ra_advance_until(const roaring_array_t *ra, uint16_t x, + int32_t pos); + +// everything skipped over is freed +int32_t ra_advance_until_freeing(roaring_array_t *ra, uint16_t x, int32_t pos) { + while (pos < ra->size && ra->keys[pos] < x) { + container_free(ra->containers[pos], ra->typecodes[pos]); + ++pos; + } + return pos; +} + +void ra_insert_new_key_value_at(roaring_array_t *ra, int32_t i, uint16_t key, + container_t *c, uint8_t typecode) { + extend_array(ra, 1); + // May be an optimization opportunity with DIY memmove + memmove(&(ra->keys[i + 1]), &(ra->keys[i]), + sizeof(uint16_t) * (ra->size - i)); + memmove(&(ra->containers[i + 1]), &(ra->containers[i]), + sizeof(container_t *) * (ra->size - i)); + memmove(&(ra->typecodes[i + 1]), &(ra->typecodes[i]), + sizeof(uint8_t) * (ra->size - i)); + ra->keys[i] = key; + ra->containers[i] = c; + ra->typecodes[i] = typecode; + ra->size++; +} + +// note: Java routine set things to 0, enabling GC. +// Java called it "resize" but it was always used to downsize. +// Allowing upsize would break the conventions about +// valid containers below ra->size. + +void ra_downsize(roaring_array_t *ra, int32_t new_length) { + assert(new_length <= ra->size); + ra->size = new_length; +} + +void ra_remove_at_index(roaring_array_t *ra, int32_t i) { + memmove(&(ra->containers[i]), &(ra->containers[i + 1]), + sizeof(container_t *) * (ra->size - i - 1)); + memmove(&(ra->keys[i]), &(ra->keys[i + 1]), + sizeof(uint16_t) * (ra->size - i - 1)); + memmove(&(ra->typecodes[i]), &(ra->typecodes[i + 1]), + sizeof(uint8_t) * (ra->size - i - 1)); + ra->size--; +} + +void ra_remove_at_index_and_free(roaring_array_t *ra, int32_t i) { + container_free(ra->containers[i], ra->typecodes[i]); + ra_remove_at_index(ra, i); +} + +// used in inplace andNot only, to slide left the containers from +// the mutated RoaringBitmap that are after the largest container of +// the argument RoaringBitmap. In use it should be followed by a call to +// downsize. +// +void ra_copy_range(roaring_array_t *ra, uint32_t begin, uint32_t end, + uint32_t new_begin) { + assert(begin <= end); + assert(new_begin < begin); + + const int range = end - begin; + + // We ensure to previously have freed overwritten containers + // that are not copied elsewhere + + memmove(&(ra->containers[new_begin]), &(ra->containers[begin]), + sizeof(container_t *) * range); + memmove(&(ra->keys[new_begin]), &(ra->keys[begin]), + sizeof(uint16_t) * range); + memmove(&(ra->typecodes[new_begin]), &(ra->typecodes[begin]), + sizeof(uint8_t) * range); +} + +void ra_shift_tail(roaring_array_t *ra, int32_t count, int32_t distance) { + if (distance > 0) { + extend_array(ra, distance); + } + int32_t srcpos = ra->size - count; + int32_t dstpos = srcpos + distance; + memmove(&(ra->keys[dstpos]), &(ra->keys[srcpos]), sizeof(uint16_t) * count); + memmove(&(ra->containers[dstpos]), &(ra->containers[srcpos]), + sizeof(container_t *) * count); + memmove(&(ra->typecodes[dstpos]), &(ra->typecodes[srcpos]), + sizeof(uint8_t) * count); + ra->size += distance; +} + +void ra_to_uint32_array(const roaring_array_t *ra, uint32_t *ans) { + size_t ctr = 0; + for (int32_t i = 0; i < ra->size; ++i) { + int num_added = container_to_uint32_array( + ans + ctr, ra->containers[i], ra->typecodes[i], + ((uint32_t)ra->keys[i]) << 16); + ctr += num_added; + } +} + +bool ra_range_uint32_array(const roaring_array_t *ra, size_t offset, + size_t limit, uint32_t *ans) { + size_t ctr = 0; + size_t dtr = 0; + + size_t t_limit = 0; + + bool first = false; + size_t first_skip = 0; + + uint32_t *t_ans = NULL; + size_t cur_len = 0; + + for (int i = 0; i < ra->size; ++i) { + const container_t *c = + container_unwrap_shared(ra->containers[i], &ra->typecodes[i]); + switch (ra->typecodes[i]) { + case BITSET_CONTAINER_TYPE: + t_limit = (const_CAST_bitset(c))->cardinality; + break; + case ARRAY_CONTAINER_TYPE: + t_limit = (const_CAST_array(c))->cardinality; + break; + case RUN_CONTAINER_TYPE: + t_limit = run_container_cardinality(const_CAST_run(c)); + break; + } + if (ctr + t_limit - 1 >= offset && ctr < offset + limit) { + if (!first) { + // first_skip = t_limit - (ctr + t_limit - offset); + first_skip = offset - ctr; + first = true; + t_ans = (uint32_t *)roaring_malloc(sizeof(*t_ans) * + (first_skip + limit)); + if (t_ans == NULL) { + return false; + } + memset(t_ans, 0, sizeof(*t_ans) * (first_skip + limit)); + cur_len = first_skip + limit; + } + if (dtr + t_limit > cur_len) { + uint32_t *append_ans = (uint32_t *)roaring_malloc( + sizeof(*append_ans) * (cur_len + t_limit)); + if (append_ans == NULL) { + if (t_ans != NULL) roaring_free(t_ans); + return false; + } + memset(append_ans, 0, + sizeof(*append_ans) * (cur_len + t_limit)); + cur_len = cur_len + t_limit; + memcpy(append_ans, t_ans, dtr * sizeof(uint32_t)); + roaring_free(t_ans); + t_ans = append_ans; + } + switch (ra->typecodes[i]) { + case BITSET_CONTAINER_TYPE: + container_to_uint32_array(t_ans + dtr, const_CAST_bitset(c), + ra->typecodes[i], + ((uint32_t)ra->keys[i]) << 16); + break; + case ARRAY_CONTAINER_TYPE: + container_to_uint32_array(t_ans + dtr, const_CAST_array(c), + ra->typecodes[i], + ((uint32_t)ra->keys[i]) << 16); + break; + case RUN_CONTAINER_TYPE: + container_to_uint32_array(t_ans + dtr, const_CAST_run(c), + ra->typecodes[i], + ((uint32_t)ra->keys[i]) << 16); + break; + } + dtr += t_limit; + } + ctr += t_limit; + if (dtr - first_skip >= limit) break; + } + if (t_ans != NULL) { + memcpy(ans, t_ans + first_skip, limit * sizeof(uint32_t)); + free(t_ans); + } + return true; +} + +bool ra_has_run_container(const roaring_array_t *ra) { + for (int32_t k = 0; k < ra->size; ++k) { + if (get_container_type(ra->containers[k], ra->typecodes[k]) == + RUN_CONTAINER_TYPE) + return true; + } + return false; +} + +uint32_t ra_portable_header_size(const roaring_array_t *ra) { + if (ra_has_run_container(ra)) { + if (ra->size < + NO_OFFSET_THRESHOLD) { // for small bitmaps, we omit the offsets + return 4 + (ra->size + 7) / 8 + 4 * ra->size; + } + return 4 + (ra->size + 7) / 8 + + 8 * ra->size; // - 4 because we pack the size with the cookie + } else { + return 4 + 4 + 8 * ra->size; + } +} + +size_t ra_portable_size_in_bytes(const roaring_array_t *ra) { + size_t count = ra_portable_header_size(ra); + + for (int32_t k = 0; k < ra->size; ++k) { + count += container_size_in_bytes(ra->containers[k], ra->typecodes[k]); + } + return count; +} + +// This function is endian-sensitive. +size_t ra_portable_serialize(const roaring_array_t *ra, char *buf) { + char *initbuf = buf; + uint32_t startOffset = 0; + bool hasrun = ra_has_run_container(ra); + if (hasrun) { + uint32_t cookie = SERIAL_COOKIE | ((uint32_t)(ra->size - 1) << 16); + memcpy(buf, &cookie, sizeof(cookie)); + buf += sizeof(cookie); + uint32_t s = (ra->size + 7) / 8; + uint8_t *bitmapOfRunContainers = (uint8_t *)roaring_calloc(s, 1); + assert(bitmapOfRunContainers != NULL); // todo: handle + for (int32_t i = 0; i < ra->size; ++i) { + if (get_container_type(ra->containers[i], ra->typecodes[i]) == + RUN_CONTAINER_TYPE) { + bitmapOfRunContainers[i / 8] |= (1 << (i % 8)); + } + } + memcpy(buf, bitmapOfRunContainers, s); + buf += s; + roaring_free(bitmapOfRunContainers); + if (ra->size < NO_OFFSET_THRESHOLD) { + startOffset = 4 + 4 * ra->size + s; + } else { + startOffset = 4 + 8 * ra->size + s; + } + } else { // backwards compatibility + uint32_t cookie = SERIAL_COOKIE_NO_RUNCONTAINER; + + memcpy(buf, &cookie, sizeof(cookie)); + buf += sizeof(cookie); + memcpy(buf, &ra->size, sizeof(ra->size)); + buf += sizeof(ra->size); + + startOffset = 4 + 4 + 4 * ra->size + 4 * ra->size; + } + for (int32_t k = 0; k < ra->size; ++k) { + memcpy(buf, &ra->keys[k], sizeof(ra->keys[k])); + buf += sizeof(ra->keys[k]); + // get_cardinality returns a value in [1,1<<16], subtracting one + // we get [0,1<<16 - 1] which fits in 16 bits + uint16_t card = (uint16_t)(container_get_cardinality(ra->containers[k], + ra->typecodes[k]) - + 1); + memcpy(buf, &card, sizeof(card)); + buf += sizeof(card); + } + if ((!hasrun) || (ra->size >= NO_OFFSET_THRESHOLD)) { + // writing the containers offsets + for (int32_t k = 0; k < ra->size; k++) { + memcpy(buf, &startOffset, sizeof(startOffset)); + buf += sizeof(startOffset); + startOffset = + startOffset + + container_size_in_bytes(ra->containers[k], ra->typecodes[k]); + } + } + for (int32_t k = 0; k < ra->size; ++k) { + buf += container_write(ra->containers[k], ra->typecodes[k], buf); + } + return buf - initbuf; +} + +// Quickly checks whether there is a serialized bitmap at the pointer, +// not exceeding size "maxbytes" in bytes. This function does not allocate +// memory dynamically. +// +// This function returns 0 if and only if no valid bitmap is found. +// Otherwise, it returns how many bytes are occupied. +// +size_t ra_portable_deserialize_size(const char *buf, const size_t maxbytes) { + size_t bytestotal = sizeof(int32_t); // for cookie + if (bytestotal > maxbytes) return 0; + uint32_t cookie; + memcpy(&cookie, buf, sizeof(int32_t)); + buf += sizeof(uint32_t); + if ((cookie & 0xFFFF) != SERIAL_COOKIE && + cookie != SERIAL_COOKIE_NO_RUNCONTAINER) { + return 0; + } + int32_t size; + + if ((cookie & 0xFFFF) == SERIAL_COOKIE) + size = (cookie >> 16) + 1; + else { + bytestotal += sizeof(int32_t); + if (bytestotal > maxbytes) return 0; + memcpy(&size, buf, sizeof(int32_t)); + buf += sizeof(uint32_t); + } + if (size > (1 << 16)) { + return 0; + } + char *bitmapOfRunContainers = NULL; + bool hasrun = (cookie & 0xFFFF) == SERIAL_COOKIE; + if (hasrun) { + int32_t s = (size + 7) / 8; + bytestotal += s; + if (bytestotal > maxbytes) return 0; + bitmapOfRunContainers = (char *)buf; + buf += s; + } + bytestotal += size * 2 * sizeof(uint16_t); + if (bytestotal > maxbytes) return 0; + uint16_t *keyscards = (uint16_t *)buf; + buf += size * 2 * sizeof(uint16_t); + if ((!hasrun) || (size >= NO_OFFSET_THRESHOLD)) { + // skipping the offsets + bytestotal += size * 4; + if (bytestotal > maxbytes) return 0; + buf += size * 4; + } + // Reading the containers + for (int32_t k = 0; k < size; ++k) { + uint16_t tmp; + memcpy(&tmp, keyscards + 2 * k + 1, sizeof(tmp)); + uint32_t thiscard = tmp + 1; + bool isbitmap = (thiscard > DEFAULT_MAX_SIZE); + bool isrun = false; + if (hasrun) { + if ((bitmapOfRunContainers[k / 8] & (1 << (k % 8))) != 0) { + isbitmap = false; + isrun = true; + } + } + if (isbitmap) { + size_t containersize = + BITSET_CONTAINER_SIZE_IN_WORDS * sizeof(uint64_t); + bytestotal += containersize; + if (bytestotal > maxbytes) return 0; + buf += containersize; + } else if (isrun) { + bytestotal += sizeof(uint16_t); + if (bytestotal > maxbytes) return 0; + uint16_t n_runs; + memcpy(&n_runs, buf, sizeof(uint16_t)); + buf += sizeof(uint16_t); + size_t containersize = n_runs * sizeof(rle16_t); + bytestotal += containersize; + if (bytestotal > maxbytes) return 0; + buf += containersize; + } else { + size_t containersize = thiscard * sizeof(uint16_t); + bytestotal += containersize; + if (bytestotal > maxbytes) return 0; + buf += containersize; + } + } + return bytestotal; +} + +// This function populates answer from the content of buf (reading up to +// maxbytes bytes). The function returns false if a properly serialized bitmap +// cannot be found. If it returns true, readbytes is populated by how many bytes +// were read, we have that *readbytes <= maxbytes. +// +// This function is endian-sensitive. +bool ra_portable_deserialize(roaring_array_t *answer, const char *buf, + const size_t maxbytes, size_t *readbytes) { + *readbytes = sizeof(int32_t); // for cookie + if (*readbytes > maxbytes) { + // Ran out of bytes while reading first 4 bytes. + return false; + } + uint32_t cookie; + memcpy(&cookie, buf, sizeof(int32_t)); + buf += sizeof(uint32_t); + if ((cookie & 0xFFFF) != SERIAL_COOKIE && + cookie != SERIAL_COOKIE_NO_RUNCONTAINER) { + // "I failed to find one of the right cookies. + return false; + } + int32_t size; + + if ((cookie & 0xFFFF) == SERIAL_COOKIE) + size = (cookie >> 16) + 1; + else { + *readbytes += sizeof(int32_t); + if (*readbytes > maxbytes) { + // Ran out of bytes while reading second part of the cookie. + return false; + } + memcpy(&size, buf, sizeof(int32_t)); + buf += sizeof(uint32_t); + } + if (size < 0) { + // You cannot have a negative number of containers, the data must be + // corrupted. + return false; + } + if (size > (1 << 16)) { + // You cannot have so many containers, the data must be corrupted. + return false; + } + const char *bitmapOfRunContainers = NULL; + bool hasrun = (cookie & 0xFFFF) == SERIAL_COOKIE; + if (hasrun) { + int32_t s = (size + 7) / 8; + *readbytes += s; + if (*readbytes > maxbytes) { // data is corrupted? + // Ran out of bytes while reading run bitmap. + return false; + } + bitmapOfRunContainers = buf; + buf += s; + } + uint16_t *keyscards = (uint16_t *)buf; + + *readbytes += size * 2 * sizeof(uint16_t); + if (*readbytes > maxbytes) { + // Ran out of bytes while reading key-cardinality array. + return false; + } + buf += size * 2 * sizeof(uint16_t); + + bool is_ok = ra_init_with_capacity(answer, size); + if (!is_ok) { + // Failed to allocate memory for roaring array. Bailing out. + return false; + } + + for (int32_t k = 0; k < size; ++k) { + uint16_t tmp; + memcpy(&tmp, keyscards + 2 * k, sizeof(tmp)); + answer->keys[k] = tmp; + } + if ((!hasrun) || (size >= NO_OFFSET_THRESHOLD)) { + *readbytes += size * 4; + if (*readbytes > maxbytes) { // data is corrupted? + // Ran out of bytes while reading offsets. + ra_clear(answer); // we need to clear the containers already + // allocated, and the roaring array + return false; + } + + // skipping the offsets + buf += size * 4; + } + // Reading the containers + for (int32_t k = 0; k < size; ++k) { + uint16_t tmp; + memcpy(&tmp, keyscards + 2 * k + 1, sizeof(tmp)); + uint32_t thiscard = tmp + 1; + bool isbitmap = (thiscard > DEFAULT_MAX_SIZE); + bool isrun = false; + if (hasrun) { + if ((bitmapOfRunContainers[k / 8] & (1 << (k % 8))) != 0) { + isbitmap = false; + isrun = true; + } + } + if (isbitmap) { + // we check that the read is allowed + size_t containersize = + BITSET_CONTAINER_SIZE_IN_WORDS * sizeof(uint64_t); + *readbytes += containersize; + if (*readbytes > maxbytes) { + // Running out of bytes while reading a bitset container. + ra_clear(answer); // we need to clear the containers already + // allocated, and the roaring array + return false; + } + // it is now safe to read + bitset_container_t *c = bitset_container_create(); + if (c == NULL) { // memory allocation failure + // Failed to allocate memory for a bitset container. + ra_clear(answer); // we need to clear the containers already + // allocated, and the roaring array + return false; + } + answer->size++; + buf += bitset_container_read(thiscard, c, buf); + answer->containers[k] = c; + answer->typecodes[k] = BITSET_CONTAINER_TYPE; + } else if (isrun) { + // we check that the read is allowed + *readbytes += sizeof(uint16_t); + if (*readbytes > maxbytes) { + // Running out of bytes while reading a run container (header). + ra_clear(answer); // we need to clear the containers already + // allocated, and the roaring array + return false; + } + uint16_t n_runs; + memcpy(&n_runs, buf, sizeof(uint16_t)); + size_t containersize = n_runs * sizeof(rle16_t); + *readbytes += containersize; + if (*readbytes > maxbytes) { // data is corrupted? + // Running out of bytes while reading a run container. + ra_clear(answer); // we need to clear the containers already + // allocated, and the roaring array + return false; + } + // it is now safe to read + + run_container_t *c = run_container_create(); + if (c == NULL) { // memory allocation failure + // Failed to allocate memory for a run container. + ra_clear(answer); // we need to clear the containers already + // allocated, and the roaring array + return false; + } + answer->size++; + buf += run_container_read(thiscard, c, buf); + answer->containers[k] = c; + answer->typecodes[k] = RUN_CONTAINER_TYPE; + } else { + // we check that the read is allowed + size_t containersize = thiscard * sizeof(uint16_t); + *readbytes += containersize; + if (*readbytes > maxbytes) { // data is corrupted? + // Running out of bytes while reading an array container. + ra_clear(answer); // we need to clear the containers already + // allocated, and the roaring array + return false; + } + // it is now safe to read + array_container_t *c = + array_container_create_given_capacity(thiscard); + if (c == NULL) { // memory allocation failure + // Failed to allocate memory for an array container. + ra_clear(answer); // we need to clear the containers already + // allocated, and the roaring array + return false; + } + answer->size++; + buf += array_container_read(thiscard, c, buf); + answer->containers[k] = c; + answer->typecodes[k] = ARRAY_CONTAINER_TYPE; + } + } + return true; +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace internal { +#endif diff --git a/contrib/libs/croaring/src/roaring_priority_queue.c b/contrib/libs/croaring/src/roaring_priority_queue.c new file mode 100644 index 000000000000..d53df8ee81e9 --- /dev/null +++ b/contrib/libs/croaring/src/roaring_priority_queue.c @@ -0,0 +1,253 @@ +#include +#include + +#ifdef __cplusplus +using namespace ::roaring::internal; + +extern "C" { +namespace roaring { +namespace api { +#endif + +struct roaring_pq_element_s { + uint64_t size; + bool is_temporary; + roaring_bitmap_t *bitmap; +}; + +typedef struct roaring_pq_element_s roaring_pq_element_t; + +struct roaring_pq_s { + roaring_pq_element_t *elements; + uint64_t size; +}; + +typedef struct roaring_pq_s roaring_pq_t; + +static inline bool compare(roaring_pq_element_t *t1, roaring_pq_element_t *t2) { + return t1->size < t2->size; +} + +static void pq_add(roaring_pq_t *pq, roaring_pq_element_t *t) { + uint64_t i = pq->size; + pq->elements[pq->size++] = *t; + while (i > 0) { + uint64_t p = (i - 1) >> 1; + roaring_pq_element_t ap = pq->elements[p]; + if (!compare(t, &ap)) break; + pq->elements[i] = ap; + i = p; + } + pq->elements[i] = *t; +} + +static void pq_free(roaring_pq_t *pq) { roaring_free(pq); } + +static void percolate_down(roaring_pq_t *pq, uint32_t i) { + uint32_t size = (uint32_t)pq->size; + uint32_t hsize = size >> 1; + roaring_pq_element_t ai = pq->elements[i]; + while (i < hsize) { + uint32_t l = (i << 1) + 1; + uint32_t r = l + 1; + roaring_pq_element_t bestc = pq->elements[l]; + if (r < size) { + if (compare(pq->elements + r, &bestc)) { + l = r; + bestc = pq->elements[r]; + } + } + if (!compare(&bestc, &ai)) { + break; + } + pq->elements[i] = bestc; + i = l; + } + pq->elements[i] = ai; +} + +static roaring_pq_t *create_pq(const roaring_bitmap_t **arr, uint32_t length) { + size_t alloc_size = + sizeof(roaring_pq_t) + sizeof(roaring_pq_element_t) * length; + roaring_pq_t *answer = (roaring_pq_t *)roaring_malloc(alloc_size); + answer->elements = (roaring_pq_element_t *)(answer + 1); + answer->size = length; + for (uint32_t i = 0; i < length; i++) { + answer->elements[i].bitmap = (roaring_bitmap_t *)arr[i]; + answer->elements[i].is_temporary = false; + answer->elements[i].size = + roaring_bitmap_portable_size_in_bytes(arr[i]); + } + for (int32_t i = (length >> 1); i >= 0; i--) { + percolate_down(answer, i); + } + return answer; +} + +static roaring_pq_element_t pq_poll(roaring_pq_t *pq) { + roaring_pq_element_t ans = *pq->elements; + if (pq->size > 1) { + pq->elements[0] = pq->elements[--pq->size]; + percolate_down(pq, 0); + } else + --pq->size; + // memmove(pq->elements,pq->elements+1,(pq->size-1)*sizeof(roaring_pq_element_t));--pq->size; + return ans; +} + +// this function consumes and frees the inputs +static roaring_bitmap_t *lazy_or_from_lazy_inputs(roaring_bitmap_t *x1, + roaring_bitmap_t *x2) { + uint8_t result_type = 0; + const int length1 = ra_get_size(&x1->high_low_container), + length2 = ra_get_size(&x2->high_low_container); + if (0 == length1) { + roaring_bitmap_free(x1); + return x2; + } + if (0 == length2) { + roaring_bitmap_free(x2); + return x1; + } + uint32_t neededcap = length1 > length2 ? length2 : length1; + roaring_bitmap_t *answer = roaring_bitmap_create_with_capacity(neededcap); + int pos1 = 0, pos2 = 0; + uint8_t type1, type2; + uint16_t s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + uint16_t s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + while (true) { + if (s1 == s2) { + // todo: unsharing can be inefficient as it may create a clone where + // none + // is needed, but it has the benefit of being easy to reason about. + + ra_unshare_container_at_index(&x1->high_low_container, + (uint16_t)pos1); + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + assert(type1 != SHARED_CONTAINER_TYPE); + + ra_unshare_container_at_index(&x2->high_low_container, + (uint16_t)pos2); + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + assert(type2 != SHARED_CONTAINER_TYPE); + + container_t *c; + + if ((type2 == BITSET_CONTAINER_TYPE) && + (type1 != BITSET_CONTAINER_TYPE)) { + c = container_lazy_ior(c2, type2, c1, type1, &result_type); + container_free(c1, type1); + if (c != c2) { + container_free(c2, type2); + } + } else { + c = container_lazy_ior(c1, type1, c2, type2, &result_type); + container_free(c2, type2); + if (c != c1) { + container_free(c1, type1); + } + } + // since we assume that the initial containers are non-empty, the + // result here + // can only be non-empty + ra_append(&answer->high_low_container, s1, c, result_type); + ++pos1; + ++pos2; + if (pos1 == length1) break; + if (pos2 == length2) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + + } else if (s1 < s2) { // s1 < s2 + container_t *c1 = ra_get_container_at_index(&x1->high_low_container, + (uint16_t)pos1, &type1); + ra_append(&answer->high_low_container, s1, c1, type1); + pos1++; + if (pos1 == length1) break; + s1 = ra_get_key_at_index(&x1->high_low_container, (uint16_t)pos1); + + } else { // s1 > s2 + container_t *c2 = ra_get_container_at_index(&x2->high_low_container, + (uint16_t)pos2, &type2); + ra_append(&answer->high_low_container, s2, c2, type2); + pos2++; + if (pos2 == length2) break; + s2 = ra_get_key_at_index(&x2->high_low_container, (uint16_t)pos2); + } + } + if (pos1 == length1) { + ra_append_move_range(&answer->high_low_container, + &x2->high_low_container, pos2, length2); + } else if (pos2 == length2) { + ra_append_move_range(&answer->high_low_container, + &x1->high_low_container, pos1, length1); + } + ra_clear_without_containers(&x1->high_low_container); + ra_clear_without_containers(&x2->high_low_container); + roaring_free(x1); + roaring_free(x2); + return answer; +} + +/** + * Compute the union of 'number' bitmaps using a heap. This can + * sometimes be faster than roaring_bitmap_or_many which uses + * a naive algorithm. Caller is responsible for freeing the + * result. + */ +roaring_bitmap_t *roaring_bitmap_or_many_heap(uint32_t number, + const roaring_bitmap_t **x) { + if (number == 0) { + return roaring_bitmap_create(); + } + if (number == 1) { + return roaring_bitmap_copy(x[0]); + } + roaring_pq_t *pq = create_pq(x, number); + while (pq->size > 1) { + roaring_pq_element_t x1 = pq_poll(pq); + roaring_pq_element_t x2 = pq_poll(pq); + + if (x1.is_temporary && x2.is_temporary) { + roaring_bitmap_t *newb = + lazy_or_from_lazy_inputs(x1.bitmap, x2.bitmap); + // should normally return a fresh new bitmap *except* that + // it can return x1.bitmap or x2.bitmap in degenerate cases + bool temporary = !((newb == x1.bitmap) && (newb == x2.bitmap)); + uint64_t bsize = roaring_bitmap_portable_size_in_bytes(newb); + roaring_pq_element_t newelement = { + .size = bsize, .is_temporary = temporary, .bitmap = newb}; + pq_add(pq, &newelement); + } else if (x2.is_temporary) { + roaring_bitmap_lazy_or_inplace(x2.bitmap, x1.bitmap, false); + x2.size = roaring_bitmap_portable_size_in_bytes(x2.bitmap); + pq_add(pq, &x2); + } else if (x1.is_temporary) { + roaring_bitmap_lazy_or_inplace(x1.bitmap, x2.bitmap, false); + x1.size = roaring_bitmap_portable_size_in_bytes(x1.bitmap); + + pq_add(pq, &x1); + } else { + roaring_bitmap_t *newb = + roaring_bitmap_lazy_or(x1.bitmap, x2.bitmap, false); + uint64_t bsize = roaring_bitmap_portable_size_in_bytes(newb); + roaring_pq_element_t newelement = { + .size = bsize, .is_temporary = true, .bitmap = newb}; + + pq_add(pq, &newelement); + } + } + roaring_pq_element_t X = pq_poll(pq); + roaring_bitmap_t *answer = X.bitmap; + roaring_bitmap_repair_after_lazy(answer); + pq_free(pq); + return answer; +} + +#ifdef __cplusplus +} +} +} // extern "C" { namespace roaring { namespace api { +#endif diff --git a/contrib/libs/croaring/ya.make b/contrib/libs/croaring/ya.make new file mode 100644 index 000000000000..6e923d2394e7 --- /dev/null +++ b/contrib/libs/croaring/ya.make @@ -0,0 +1,51 @@ +# Generated by devtools/yamaker from nixpkgs 22.11. + +LIBRARY() + +LICENSE( + Apache-2.0 AND + BSD-3-Clause AND + MIT +) + +LICENSE_TEXTS(.yandex_meta/licenses.list.txt) + +VERSION(3.0.1) + +ORIGINAL_SOURCE(https://github.com/RoaringBitmap/CRoaring/archive/v3.0.1.tar.gz) + +ADDINCL( + GLOBAL contrib/libs/croaring/include + contrib/libs/croaring/include/roaring +) + +NO_COMPILER_WARNINGS() + +NO_RUNTIME() + +SRCS( + src/array_util.c + src/art/art.c + src/bitset.c + src/bitset_util.c + src/containers/array.c + src/containers/bitset.c + src/containers/containers.c + src/containers/convert.c + src/containers/mixed_andnot.c + src/containers/mixed_equal.c + src/containers/mixed_intersection.c + src/containers/mixed_negation.c + src/containers/mixed_subset.c + src/containers/mixed_union.c + src/containers/mixed_xor.c + src/containers/run.c + src/isadetection.c + src/memory.c + src/roaring.c + src/roaring64.c + src/roaring_array.c + src/roaring_priority_queue.c +) + +END() diff --git a/contrib/libs/curl/CMakeLists.darwin-arm64.txt b/contrib/libs/curl/CMakeLists.darwin-arm64.txt index 6dcd71469bd6..b4c4d8e40ee8 100644 --- a/contrib/libs/curl/CMakeLists.darwin-arm64.txt +++ b/contrib/libs/curl/CMakeLists.darwin-arm64.txt @@ -61,7 +61,6 @@ target_sources(contrib-libs-curl PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_get_line.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_gethostname.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_gssapi.c - ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_log.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_memrchr.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_multibyte.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_ntlm_core.c @@ -72,6 +71,7 @@ target_sources(contrib-libs-curl PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_sasl.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_sspi.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_threads.c + ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_trc.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/dict.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/doh.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/dynbuf.c diff --git a/contrib/libs/curl/CMakeLists.darwin-x86_64.txt b/contrib/libs/curl/CMakeLists.darwin-x86_64.txt index 6dcd71469bd6..b4c4d8e40ee8 100644 --- a/contrib/libs/curl/CMakeLists.darwin-x86_64.txt +++ b/contrib/libs/curl/CMakeLists.darwin-x86_64.txt @@ -61,7 +61,6 @@ target_sources(contrib-libs-curl PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_get_line.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_gethostname.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_gssapi.c - ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_log.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_memrchr.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_multibyte.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_ntlm_core.c @@ -72,6 +71,7 @@ target_sources(contrib-libs-curl PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_sasl.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_sspi.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_threads.c + ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_trc.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/dict.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/doh.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/dynbuf.c diff --git a/contrib/libs/curl/CMakeLists.linux-aarch64.txt b/contrib/libs/curl/CMakeLists.linux-aarch64.txt index 8b2de2eb4176..620feaf01073 100644 --- a/contrib/libs/curl/CMakeLists.linux-aarch64.txt +++ b/contrib/libs/curl/CMakeLists.linux-aarch64.txt @@ -58,7 +58,6 @@ target_sources(contrib-libs-curl PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_get_line.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_gethostname.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_gssapi.c - ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_log.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_memrchr.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_multibyte.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_ntlm_core.c @@ -69,6 +68,7 @@ target_sources(contrib-libs-curl PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_sasl.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_sspi.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_threads.c + ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_trc.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/dict.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/doh.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/dynbuf.c diff --git a/contrib/libs/curl/CMakeLists.linux-x86_64.txt b/contrib/libs/curl/CMakeLists.linux-x86_64.txt index 8b2de2eb4176..620feaf01073 100644 --- a/contrib/libs/curl/CMakeLists.linux-x86_64.txt +++ b/contrib/libs/curl/CMakeLists.linux-x86_64.txt @@ -58,7 +58,6 @@ target_sources(contrib-libs-curl PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_get_line.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_gethostname.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_gssapi.c - ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_log.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_memrchr.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_multibyte.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_ntlm_core.c @@ -69,6 +68,7 @@ target_sources(contrib-libs-curl PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_sasl.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_sspi.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_threads.c + ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_trc.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/dict.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/doh.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/dynbuf.c diff --git a/contrib/libs/curl/CMakeLists.windows-x86_64.txt b/contrib/libs/curl/CMakeLists.windows-x86_64.txt index 4d72bbd0b504..2672052d1a57 100644 --- a/contrib/libs/curl/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/curl/CMakeLists.windows-x86_64.txt @@ -56,7 +56,6 @@ target_sources(contrib-libs-curl PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_get_line.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_gethostname.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_gssapi.c - ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_log.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_memrchr.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_multibyte.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_ntlm_core.c @@ -67,6 +66,7 @@ target_sources(contrib-libs-curl PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_sasl.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_sspi.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_threads.c + ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/curl_trc.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/dict.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/doh.c ${CMAKE_SOURCE_DIR}/contrib/libs/curl/lib/dynbuf.c diff --git a/contrib/libs/cxxsupp/CMakeLists.windows-x86_64.txt b/contrib/libs/cxxsupp/CMakeLists.windows-x86_64.txt index d5862909e416..f1baa27a2abf 100644 --- a/contrib/libs/cxxsupp/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/cxxsupp/CMakeLists.windows-x86_64.txt @@ -6,10 +6,9 @@ # original buildsystem will not be accepted. -add_subdirectory(builtins) -add_subdirectory(libcxx) +add_subdirectory(libcxxmsvc) add_library(contrib-libs-cxxsupp INTERFACE) target_link_libraries(contrib-libs-cxxsupp INTERFACE - libs-cxxsupp-libcxx + libs-cxxsupp-libcxxmsvc ) diff --git a/contrib/libs/cxxsupp/builtins/CMakeLists.txt b/contrib/libs/cxxsupp/builtins/CMakeLists.txt index d863ebd18067..380079ac7b4a 100644 --- a/contrib/libs/cxxsupp/builtins/CMakeLists.txt +++ b/contrib/libs/cxxsupp/builtins/CMakeLists.txt @@ -14,6 +14,4 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL include(CMakeLists.darwin-x86_64.txt) elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/contrib/libs/cxxsupp/libcxx/CMakeLists.darwin-arm64.txt b/contrib/libs/cxxsupp/libcxx/CMakeLists.darwin-arm64.txt index 109da232d23a..921dddae5a60 100644 --- a/contrib/libs/cxxsupp/libcxx/CMakeLists.darwin-arm64.txt +++ b/contrib/libs/cxxsupp/libcxx/CMakeLists.darwin-arm64.txt @@ -31,7 +31,6 @@ target_link_libraries(libs-cxxsupp-libcxx PUBLIC target_sources(libs-cxxsupp-libcxx PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/algorithm.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/any.cpp - ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/assert.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/atomic.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/barrier.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/bind.cpp @@ -52,6 +51,7 @@ target_sources(libs-cxxsupp-libcxx PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/locale.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/memory.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/memory_resource.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/mutex.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/mutex_destructor.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/optional.cpp @@ -72,6 +72,7 @@ target_sources(libs-cxxsupp-libcxx PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/valarray.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/variant.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/vector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/verbose_abort.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/format.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/new.cpp ) diff --git a/contrib/libs/cxxsupp/libcxx/CMakeLists.darwin-x86_64.txt b/contrib/libs/cxxsupp/libcxx/CMakeLists.darwin-x86_64.txt index 109da232d23a..921dddae5a60 100644 --- a/contrib/libs/cxxsupp/libcxx/CMakeLists.darwin-x86_64.txt +++ b/contrib/libs/cxxsupp/libcxx/CMakeLists.darwin-x86_64.txt @@ -31,7 +31,6 @@ target_link_libraries(libs-cxxsupp-libcxx PUBLIC target_sources(libs-cxxsupp-libcxx PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/algorithm.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/any.cpp - ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/assert.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/atomic.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/barrier.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/bind.cpp @@ -52,6 +51,7 @@ target_sources(libs-cxxsupp-libcxx PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/locale.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/memory.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/memory_resource.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/mutex.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/mutex_destructor.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/optional.cpp @@ -72,6 +72,7 @@ target_sources(libs-cxxsupp-libcxx PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/valarray.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/variant.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/vector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/verbose_abort.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/format.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/new.cpp ) diff --git a/contrib/libs/cxxsupp/libcxx/CMakeLists.linux-aarch64.txt b/contrib/libs/cxxsupp/libcxx/CMakeLists.linux-aarch64.txt index 4c91bf7fa8c6..9842df1ef1f4 100644 --- a/contrib/libs/cxxsupp/libcxx/CMakeLists.linux-aarch64.txt +++ b/contrib/libs/cxxsupp/libcxx/CMakeLists.linux-aarch64.txt @@ -32,7 +32,6 @@ target_link_libraries(libs-cxxsupp-libcxx PUBLIC target_sources(libs-cxxsupp-libcxx PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/algorithm.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/any.cpp - ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/assert.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/atomic.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/barrier.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/bind.cpp @@ -53,6 +52,7 @@ target_sources(libs-cxxsupp-libcxx PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/locale.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/memory.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/memory_resource.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/mutex.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/mutex_destructor.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/optional.cpp @@ -73,6 +73,7 @@ target_sources(libs-cxxsupp-libcxx PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/valarray.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/variant.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/vector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/verbose_abort.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/format.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/new.cpp ) diff --git a/contrib/libs/cxxsupp/libcxx/CMakeLists.linux-x86_64.txt b/contrib/libs/cxxsupp/libcxx/CMakeLists.linux-x86_64.txt index 4c91bf7fa8c6..9842df1ef1f4 100644 --- a/contrib/libs/cxxsupp/libcxx/CMakeLists.linux-x86_64.txt +++ b/contrib/libs/cxxsupp/libcxx/CMakeLists.linux-x86_64.txt @@ -32,7 +32,6 @@ target_link_libraries(libs-cxxsupp-libcxx PUBLIC target_sources(libs-cxxsupp-libcxx PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/algorithm.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/any.cpp - ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/assert.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/atomic.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/barrier.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/bind.cpp @@ -53,6 +52,7 @@ target_sources(libs-cxxsupp-libcxx PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/locale.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/memory.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/memory_resource.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/mutex.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/mutex_destructor.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/optional.cpp @@ -73,6 +73,7 @@ target_sources(libs-cxxsupp-libcxx PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/valarray.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/variant.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/vector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/verbose_abort.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/format.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/new.cpp ) diff --git a/contrib/libs/cxxsupp/libcxx/CMakeLists.txt b/contrib/libs/cxxsupp/libcxx/CMakeLists.txt index d863ebd18067..380079ac7b4a 100644 --- a/contrib/libs/cxxsupp/libcxx/CMakeLists.txt +++ b/contrib/libs/cxxsupp/libcxx/CMakeLists.txt @@ -14,6 +14,4 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL include(CMakeLists.darwin-x86_64.txt) elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/contrib/libs/cxxsupp/libcxxmsvc/CMakeLists.txt b/contrib/libs/cxxsupp/libcxxmsvc/CMakeLists.txt new file mode 100644 index 000000000000..03d4a7153cff --- /dev/null +++ b/contrib/libs/cxxsupp/libcxxmsvc/CMakeLists.txt @@ -0,0 +1,11 @@ + +# 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 (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/cxxsupp/libcxxmsvc/CMakeLists.windows-x86_64.txt b/contrib/libs/cxxsupp/libcxxmsvc/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..33422e3d6e9f --- /dev/null +++ b/contrib/libs/cxxsupp/libcxxmsvc/CMakeLists.windows-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_library(libs-cxxsupp-libcxxmsvc) +target_compile_options(libs-cxxsupp-libcxxmsvc PUBLIC + -D_LIBCPP_VASPRINTF_DEFINED + -D_WCHAR_H_CPLUSPLUS_98_CONFORMANCE_ +) +target_compile_options(libs-cxxsupp-libcxxmsvc PRIVATE + -D_LIBCPP_BUILDING_LIBRARY + $,,-Wno-everything> +) +target_include_directories(libs-cxxsupp-libcxxmsvc PUBLIC + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/include +) +target_include_directories(libs-cxxsupp-libcxxmsvc PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src +) +target_sources(libs-cxxsupp-libcxxmsvc PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/support/win32/locale_win32.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/support/win32/support.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/support/win32/atomic_win32.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/support/win32/new_win32.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/support/win32/thread_win32.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/algorithm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/any.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/assert.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/atomic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/barrier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/bind.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/charconv.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/chrono.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/condition_variable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/condition_variable_destructor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/debug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/exception.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/filesystem/directory_iterator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/filesystem/operations.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/functional.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/future.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/hash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/ios.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/ios.instantiations.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/iostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/legacy_pointer_safety.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/locale.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/memory.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/mutex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/mutex_destructor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/optional.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/random.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/random_shuffle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/regex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/ryu/d2fixed.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/ryu/d2s.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/ryu/f2s.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/shared_mutex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/stdexcept.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/string.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/strstream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/system_error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/thread.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/typeinfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/utility.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/valarray.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/variant.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/vector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxxmsvc/src/format.cpp +) diff --git a/contrib/libs/farmhash/arch/sse41/CMakeLists.windows-x86_64.txt b/contrib/libs/farmhash/arch/sse41/CMakeLists.windows-x86_64.txt index 921c50874eac..58aa3609ec96 100644 --- a/contrib/libs/farmhash/arch/sse41/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/farmhash/arch/sse41/CMakeLists.windows-x86_64.txt @@ -9,7 +9,6 @@ add_library(farmhash-arch-sse41) target_compile_options(farmhash-arch-sse41 PRIVATE - -msse4.1 $,,-Wno-everything> ) target_link_libraries(farmhash-arch-sse41 PUBLIC diff --git a/contrib/libs/farmhash/arch/sse42/CMakeLists.windows-x86_64.txt b/contrib/libs/farmhash/arch/sse42/CMakeLists.windows-x86_64.txt index 92f77b4d9a6a..83392f428edb 100644 --- a/contrib/libs/farmhash/arch/sse42/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/farmhash/arch/sse42/CMakeLists.windows-x86_64.txt @@ -9,7 +9,6 @@ add_library(farmhash-arch-sse42) target_compile_options(farmhash-arch-sse42 PRIVATE - -msse4.2 $,,-Wno-everything> ) target_link_libraries(farmhash-arch-sse42 PUBLIC diff --git a/contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.windows-x86_64.txt b/contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.windows-x86_64.txt index c73d04f960e9..6bc0649050f7 100644 --- a/contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/farmhash/arch/sse42_aesni/CMakeLists.windows-x86_64.txt @@ -9,8 +9,6 @@ add_library(farmhash-arch-sse42_aesni) target_compile_options(farmhash-arch-sse42_aesni PRIVATE - -msse4.2 - -maes $,,-Wno-everything> ) target_link_libraries(farmhash-arch-sse42_aesni PUBLIC diff --git a/contrib/libs/fastlz/CMakeLists.darwin-arm64.txt b/contrib/libs/fastlz/CMakeLists.darwin-arm64.txt index eab41c060a76..e4608106057b 100644 --- a/contrib/libs/fastlz/CMakeLists.darwin-arm64.txt +++ b/contrib/libs/fastlz/CMakeLists.darwin-arm64.txt @@ -15,5 +15,6 @@ target_link_libraries(contrib-libs-fastlz PUBLIC contrib-libs-cxxsupp ) target_sources(contrib-libs-fastlz PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/fastlz/rename.h ${CMAKE_SOURCE_DIR}/contrib/libs/fastlz/fastlz.c ) diff --git a/contrib/libs/fastlz/CMakeLists.darwin-x86_64.txt b/contrib/libs/fastlz/CMakeLists.darwin-x86_64.txt index eab41c060a76..e4608106057b 100644 --- a/contrib/libs/fastlz/CMakeLists.darwin-x86_64.txt +++ b/contrib/libs/fastlz/CMakeLists.darwin-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(contrib-libs-fastlz PUBLIC contrib-libs-cxxsupp ) target_sources(contrib-libs-fastlz PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/fastlz/rename.h ${CMAKE_SOURCE_DIR}/contrib/libs/fastlz/fastlz.c ) diff --git a/contrib/libs/fastlz/CMakeLists.linux-aarch64.txt b/contrib/libs/fastlz/CMakeLists.linux-aarch64.txt index e6a67c5372d0..13191c0bfefc 100644 --- a/contrib/libs/fastlz/CMakeLists.linux-aarch64.txt +++ b/contrib/libs/fastlz/CMakeLists.linux-aarch64.txt @@ -16,5 +16,6 @@ target_link_libraries(contrib-libs-fastlz PUBLIC contrib-libs-cxxsupp ) target_sources(contrib-libs-fastlz PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/fastlz/rename.h ${CMAKE_SOURCE_DIR}/contrib/libs/fastlz/fastlz.c ) diff --git a/contrib/libs/fastlz/CMakeLists.linux-x86_64.txt b/contrib/libs/fastlz/CMakeLists.linux-x86_64.txt index e6a67c5372d0..13191c0bfefc 100644 --- a/contrib/libs/fastlz/CMakeLists.linux-x86_64.txt +++ b/contrib/libs/fastlz/CMakeLists.linux-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(contrib-libs-fastlz PUBLIC contrib-libs-cxxsupp ) target_sources(contrib-libs-fastlz PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/fastlz/rename.h ${CMAKE_SOURCE_DIR}/contrib/libs/fastlz/fastlz.c ) diff --git a/contrib/libs/fastlz/CMakeLists.windows-x86_64.txt b/contrib/libs/fastlz/CMakeLists.windows-x86_64.txt index eab41c060a76..e4608106057b 100644 --- a/contrib/libs/fastlz/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/fastlz/CMakeLists.windows-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(contrib-libs-fastlz PUBLIC contrib-libs-cxxsupp ) target_sources(contrib-libs-fastlz PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/fastlz/rename.h ${CMAKE_SOURCE_DIR}/contrib/libs/fastlz/fastlz.c ) diff --git a/contrib/libs/googleapis-common-protos/CMakeLists.darwin-arm64.txt b/contrib/libs/googleapis-common-protos/CMakeLists.darwin-arm64.txt index a2b6d3385ff2..7544d08723c1 100644 --- a/contrib/libs/googleapis-common-protos/CMakeLists.darwin-arm64.txt +++ b/contrib/libs/googleapis-common-protos/CMakeLists.darwin-arm64.txt @@ -837,6 +837,132 @@ target_proto_messages(contrib-libs-googleapis-common-protos PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.proto ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.proto ) +target_sources(contrib-libs-googleapis-common-protos PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/annotations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/annotations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/auth.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/auth.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/backend.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/backend.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/billing.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/billing.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/client.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/client.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/config_change.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/config_change.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/consumer.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/consumer.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/context.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/context.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/control.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/control.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/distribution.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/distribution.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/documentation.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/documentation.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/endpoint.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/endpoint.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/error_reason.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/error_reason.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_behavior.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_behavior.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_info.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_info.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/http.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/http.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/httpbody.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/httpbody.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/label.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/label.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/launch_stage.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/launch_stage.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/log.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/log.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/logging.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/logging.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/metric.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/metric.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitored_resource.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitored_resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitoring.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitoring.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/policy.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/policy.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/quota.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/quota.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/resource.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/routing.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/routing.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/source_info.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/source_info.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/system_parameter.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/system_parameter.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/usage.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/usage.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/visibility.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/visibility.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/extended_operations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/extended_operations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/location/locations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/location/locations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/gapic/metadata/gapic_metadata.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/gapic/metadata/gapic_metadata.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/http_request.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/http_request.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/log_severity.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/log_severity.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/longrunning/operations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/longrunning/operations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/code.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/code.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/attribute_context.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/attribute_context.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/audit_context.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/audit_context.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/error_details.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/error_details.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/http.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/http.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/status.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/status.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/calendar_period.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/calendar_period.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/color.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/color.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/date.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/date.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/datetime.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/datetime.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/dayofweek.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/dayofweek.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/decimal.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/decimal.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/expr.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/expr.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/fraction.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/fraction.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/interval.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/interval.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/latlng.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/latlng.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/localized_text.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/localized_text.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/money.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/money.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/month.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/month.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/phone_number.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/phone_number.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/postal_address.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/postal_address.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.grpc.pb.h +) target_proto_addincls(contrib-libs-googleapis-common-protos ./contrib/libs/googleapis-common-protos ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos diff --git a/contrib/libs/googleapis-common-protos/CMakeLists.darwin-x86_64.txt b/contrib/libs/googleapis-common-protos/CMakeLists.darwin-x86_64.txt index a2b6d3385ff2..7544d08723c1 100644 --- a/contrib/libs/googleapis-common-protos/CMakeLists.darwin-x86_64.txt +++ b/contrib/libs/googleapis-common-protos/CMakeLists.darwin-x86_64.txt @@ -837,6 +837,132 @@ target_proto_messages(contrib-libs-googleapis-common-protos PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.proto ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.proto ) +target_sources(contrib-libs-googleapis-common-protos PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/annotations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/annotations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/auth.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/auth.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/backend.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/backend.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/billing.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/billing.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/client.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/client.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/config_change.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/config_change.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/consumer.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/consumer.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/context.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/context.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/control.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/control.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/distribution.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/distribution.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/documentation.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/documentation.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/endpoint.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/endpoint.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/error_reason.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/error_reason.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_behavior.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_behavior.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_info.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_info.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/http.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/http.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/httpbody.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/httpbody.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/label.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/label.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/launch_stage.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/launch_stage.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/log.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/log.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/logging.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/logging.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/metric.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/metric.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitored_resource.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitored_resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitoring.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitoring.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/policy.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/policy.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/quota.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/quota.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/resource.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/routing.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/routing.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/source_info.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/source_info.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/system_parameter.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/system_parameter.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/usage.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/usage.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/visibility.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/visibility.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/extended_operations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/extended_operations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/location/locations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/location/locations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/gapic/metadata/gapic_metadata.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/gapic/metadata/gapic_metadata.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/http_request.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/http_request.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/log_severity.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/log_severity.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/longrunning/operations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/longrunning/operations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/code.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/code.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/attribute_context.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/attribute_context.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/audit_context.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/audit_context.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/error_details.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/error_details.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/http.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/http.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/status.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/status.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/calendar_period.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/calendar_period.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/color.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/color.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/date.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/date.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/datetime.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/datetime.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/dayofweek.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/dayofweek.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/decimal.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/decimal.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/expr.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/expr.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/fraction.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/fraction.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/interval.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/interval.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/latlng.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/latlng.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/localized_text.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/localized_text.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/money.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/money.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/month.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/month.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/phone_number.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/phone_number.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/postal_address.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/postal_address.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.grpc.pb.h +) target_proto_addincls(contrib-libs-googleapis-common-protos ./contrib/libs/googleapis-common-protos ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos diff --git a/contrib/libs/googleapis-common-protos/CMakeLists.linux-aarch64.txt b/contrib/libs/googleapis-common-protos/CMakeLists.linux-aarch64.txt index 48c7a1d1cb2e..a7bbbfe6782f 100644 --- a/contrib/libs/googleapis-common-protos/CMakeLists.linux-aarch64.txt +++ b/contrib/libs/googleapis-common-protos/CMakeLists.linux-aarch64.txt @@ -838,6 +838,132 @@ target_proto_messages(contrib-libs-googleapis-common-protos PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.proto ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.proto ) +target_sources(contrib-libs-googleapis-common-protos PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/annotations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/annotations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/auth.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/auth.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/backend.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/backend.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/billing.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/billing.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/client.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/client.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/config_change.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/config_change.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/consumer.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/consumer.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/context.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/context.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/control.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/control.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/distribution.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/distribution.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/documentation.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/documentation.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/endpoint.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/endpoint.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/error_reason.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/error_reason.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_behavior.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_behavior.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_info.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_info.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/http.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/http.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/httpbody.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/httpbody.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/label.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/label.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/launch_stage.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/launch_stage.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/log.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/log.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/logging.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/logging.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/metric.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/metric.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitored_resource.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitored_resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitoring.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitoring.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/policy.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/policy.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/quota.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/quota.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/resource.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/routing.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/routing.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/source_info.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/source_info.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/system_parameter.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/system_parameter.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/usage.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/usage.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/visibility.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/visibility.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/extended_operations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/extended_operations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/location/locations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/location/locations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/gapic/metadata/gapic_metadata.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/gapic/metadata/gapic_metadata.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/http_request.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/http_request.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/log_severity.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/log_severity.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/longrunning/operations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/longrunning/operations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/code.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/code.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/attribute_context.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/attribute_context.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/audit_context.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/audit_context.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/error_details.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/error_details.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/http.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/http.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/status.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/status.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/calendar_period.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/calendar_period.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/color.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/color.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/date.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/date.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/datetime.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/datetime.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/dayofweek.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/dayofweek.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/decimal.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/decimal.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/expr.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/expr.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/fraction.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/fraction.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/interval.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/interval.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/latlng.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/latlng.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/localized_text.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/localized_text.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/money.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/money.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/month.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/month.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/phone_number.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/phone_number.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/postal_address.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/postal_address.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.grpc.pb.h +) target_proto_addincls(contrib-libs-googleapis-common-protos ./contrib/libs/googleapis-common-protos ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos diff --git a/contrib/libs/googleapis-common-protos/CMakeLists.linux-x86_64.txt b/contrib/libs/googleapis-common-protos/CMakeLists.linux-x86_64.txt index 48c7a1d1cb2e..a7bbbfe6782f 100644 --- a/contrib/libs/googleapis-common-protos/CMakeLists.linux-x86_64.txt +++ b/contrib/libs/googleapis-common-protos/CMakeLists.linux-x86_64.txt @@ -838,6 +838,132 @@ target_proto_messages(contrib-libs-googleapis-common-protos PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.proto ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.proto ) +target_sources(contrib-libs-googleapis-common-protos PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/annotations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/annotations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/auth.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/auth.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/backend.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/backend.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/billing.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/billing.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/client.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/client.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/config_change.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/config_change.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/consumer.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/consumer.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/context.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/context.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/control.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/control.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/distribution.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/distribution.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/documentation.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/documentation.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/endpoint.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/endpoint.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/error_reason.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/error_reason.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_behavior.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_behavior.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_info.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_info.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/http.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/http.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/httpbody.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/httpbody.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/label.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/label.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/launch_stage.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/launch_stage.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/log.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/log.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/logging.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/logging.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/metric.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/metric.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitored_resource.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitored_resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitoring.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitoring.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/policy.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/policy.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/quota.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/quota.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/resource.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/routing.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/routing.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/source_info.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/source_info.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/system_parameter.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/system_parameter.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/usage.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/usage.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/visibility.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/visibility.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/extended_operations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/extended_operations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/location/locations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/location/locations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/gapic/metadata/gapic_metadata.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/gapic/metadata/gapic_metadata.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/http_request.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/http_request.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/log_severity.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/log_severity.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/longrunning/operations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/longrunning/operations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/code.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/code.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/attribute_context.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/attribute_context.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/audit_context.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/audit_context.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/error_details.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/error_details.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/http.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/http.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/status.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/status.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/calendar_period.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/calendar_period.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/color.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/color.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/date.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/date.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/datetime.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/datetime.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/dayofweek.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/dayofweek.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/decimal.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/decimal.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/expr.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/expr.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/fraction.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/fraction.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/interval.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/interval.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/latlng.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/latlng.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/localized_text.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/localized_text.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/money.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/money.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/month.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/month.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/phone_number.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/phone_number.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/postal_address.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/postal_address.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.grpc.pb.h +) target_proto_addincls(contrib-libs-googleapis-common-protos ./contrib/libs/googleapis-common-protos ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos diff --git a/contrib/libs/googleapis-common-protos/CMakeLists.windows-x86_64.txt b/contrib/libs/googleapis-common-protos/CMakeLists.windows-x86_64.txt index a2b6d3385ff2..7544d08723c1 100644 --- a/contrib/libs/googleapis-common-protos/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/googleapis-common-protos/CMakeLists.windows-x86_64.txt @@ -837,6 +837,132 @@ target_proto_messages(contrib-libs-googleapis-common-protos PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.proto ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.proto ) +target_sources(contrib-libs-googleapis-common-protos PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/annotations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/annotations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/auth.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/auth.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/backend.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/backend.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/billing.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/billing.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/client.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/client.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/config_change.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/config_change.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/consumer.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/consumer.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/context.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/context.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/control.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/control.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/distribution.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/distribution.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/documentation.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/documentation.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/endpoint.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/endpoint.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/error_reason.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/error_reason.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_behavior.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_behavior.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_info.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/field_info.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/http.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/http.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/httpbody.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/httpbody.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/label.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/label.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/launch_stage.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/launch_stage.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/log.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/log.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/logging.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/logging.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/metric.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/metric.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitored_resource.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitored_resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitoring.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/monitoring.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/policy.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/policy.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/quota.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/quota.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/resource.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/routing.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/routing.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/source_info.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/source_info.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/system_parameter.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/system_parameter.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/usage.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/usage.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/visibility.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/api/visibility.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/extended_operations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/extended_operations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/location/locations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/cloud/location/locations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/gapic/metadata/gapic_metadata.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/gapic/metadata/gapic_metadata.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/http_request.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/http_request.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/log_severity.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/logging/type/log_severity.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/longrunning/operations.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/longrunning/operations.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/code.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/code.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/attribute_context.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/attribute_context.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/audit_context.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/context/audit_context.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/error_details.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/error_details.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/http.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/http.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/status.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/rpc/status.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/calendar_period.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/calendar_period.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/color.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/color.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/date.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/date.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/datetime.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/datetime.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/dayofweek.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/dayofweek.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/decimal.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/decimal.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/expr.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/expr.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/fraction.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/fraction.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/interval.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/interval.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/latlng.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/latlng.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/localized_text.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/localized_text.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/money.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/money.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/month.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/month.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/phone_number.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/phone_number.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/postal_address.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/postal_address.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/quaternion.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/googleapis-common-protos/google/type/timeofday.grpc.pb.h +) target_proto_addincls(contrib-libs-googleapis-common-protos ./contrib/libs/googleapis-common-protos ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos diff --git a/contrib/libs/hyperscan/runtime_avx2/CMakeLists.windows-x86_64.txt b/contrib/libs/hyperscan/runtime_avx2/CMakeLists.windows-x86_64.txt index 85764417b721..53cc46d2b92d 100644 --- a/contrib/libs/hyperscan/runtime_avx2/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/hyperscan/runtime_avx2/CMakeLists.windows-x86_64.txt @@ -9,18 +9,17 @@ add_library(libs-hyperscan-runtime_avx2) target_compile_options(libs-hyperscan-runtime_avx2 PRIVATE - -msse4.1 + /D__SSE4_1__=1 -DHAVE_SSE41 - -msse4.2 + /D__SSE4_2__=1 -DHAVE_SSE42 - -mpopcnt + /D__POPCNT__=1 -DHAVE_POPCOUNT_INSTR - -mavx + /arch:AVX + /DAVX_ENABLED=1 -DHAVE_AVX - -mavx2 - -mfma - -mbmi - -mbmi2 + /arch:AVX2 + /DAVX2_ENABLED=1 -DHAVE_AVX2 -DCrc32c_ComputeBuf=avx2_Crc32c_ComputeBuf -DblockInitSufPQ=avx2_blockInitSufPQ diff --git a/contrib/libs/hyperscan/runtime_avx512/CMakeLists.windows-x86_64.txt b/contrib/libs/hyperscan/runtime_avx512/CMakeLists.windows-x86_64.txt index e11134a46a83..bf75f07d09b6 100644 --- a/contrib/libs/hyperscan/runtime_avx512/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/hyperscan/runtime_avx512/CMakeLists.windows-x86_64.txt @@ -9,24 +9,20 @@ add_library(libs-hyperscan-runtime_avx512) target_compile_options(libs-hyperscan-runtime_avx512 PRIVATE - -msse4.1 + /D__SSE4_1__=1 -DHAVE_SSE41 - -msse4.2 + /D__SSE4_2__=1 -DHAVE_SSE42 -DHAVE_POPCOUNT_INSTR - -mpopcnt - -mavx + /D__POPCNT__=1 + /arch:AVX + /DAVX_ENABLED=1 -DHAVE_AVX - -mavx2 - -mfma - -mbmi - -mbmi2 + /arch:AVX2 + /DAVX2_ENABLED=1 -DHAVE_AVX2 - -mavx512f - -mavx512cd - -mavx512bw - -mavx512dq - -mavx512vl + /arch:AVX512 + /DAVX512_ENABLED=1 -DHAVE_AVX512 -DCrc32c_ComputeBuf=avx512_Crc32c_ComputeBuf -DblockInitSufPQ=avx512_blockInitSufPQ diff --git a/contrib/libs/hyperscan/runtime_corei7/CMakeLists.windows-x86_64.txt b/contrib/libs/hyperscan/runtime_corei7/CMakeLists.windows-x86_64.txt index c3088fa842c2..c66f3c8131d7 100644 --- a/contrib/libs/hyperscan/runtime_corei7/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/hyperscan/runtime_corei7/CMakeLists.windows-x86_64.txt @@ -9,11 +9,11 @@ add_library(libs-hyperscan-runtime_corei7) target_compile_options(libs-hyperscan-runtime_corei7 PRIVATE - -msse4.1 + /D__SSE4_1__=1 -DHAVE_SSE41 - -msse4.2 + /D__SSE4_2__=1 -DHAVE_SSE42 - -mpopcnt + /D__POPCNT__=1 -DHAVE_POPCOUNT_INSTR -DCrc32c_ComputeBuf=corei7_Crc32c_ComputeBuf -DblockInitSufPQ=corei7_blockInitSufPQ diff --git a/contrib/libs/libpq/CMakeLists.txt b/contrib/libs/libpq/CMakeLists.txt index 380079ac7b4a..d863ebd18067 100644 --- a/contrib/libs/libpq/CMakeLists.txt +++ b/contrib/libs/libpq/CMakeLists.txt @@ -14,4 +14,6 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL include(CMakeLists.darwin-x86_64.txt) elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) endif() diff --git a/contrib/libs/libpq/CMakeLists.windows-x86_64.txt b/contrib/libs/libpq/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..993d96763bad --- /dev/null +++ b/contrib/libs/libpq/CMakeLists.windows-x86_64.txt @@ -0,0 +1,128 @@ + +# 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(contrib-libs-libpq) +target_compile_options(contrib-libs-libpq PRIVATE + -DFRONTEND + -DUNSAFE_STAT_OK + -D_POSIX_PTHREAD_SEMANTICS + -D_REENTRANT + -D_THREAD_SAFE + $,,-Wno-everything> +) +target_include_directories(contrib-libs-libpq PUBLIC + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/include +) +target_include_directories(contrib-libs-libpq PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/backend + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/include/port + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/include/port/win32 + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/include/port/win32_msvc +) +target_link_libraries(contrib-libs-libpq PUBLIC + contrib-libs-libc_compat + contrib-libs-openssl + contrib-libs-zlib +) +target_sources(contrib-libs-libpq PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/archive.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/base64.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/checksum_helper.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/compression.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/config_info.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/controldata_utils.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/cryptohash_openssl.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/d2s.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/encnames.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/exec.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/f2s.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/fe_memutils.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/file_perm.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/file_utils.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/hashfn.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/hmac_openssl.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/ip.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/jsonapi.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/keywords.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/kwlookup.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/link-canary.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/logging.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/md5_common.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/percentrepl.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/pg_get_line.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/pg_lzcompress.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/pg_prng.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/pgfnames.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/protocol_openssl.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/psprintf.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/relpath.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/restricted_token.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/rmtree.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/saslprep.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/scram-common.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/sprompt.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/string.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/stringinfo.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/unicode_norm.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/username.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/wait_error.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/common/wchar.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/fe-auth-scram.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/fe-auth.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/fe-connect.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/fe-exec.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/fe-lobj.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/fe-misc.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/fe-print.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/fe-protocol3.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/fe-secure-common.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/fe-secure-openssl.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/fe-secure.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/fe-trace.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/libpq-events.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/pqexpbuffer.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/bsearch_arg.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/chklocale.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/getpeereid.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/inet_net_ntop.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/noblock.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/path.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/pg_bitutils.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/pg_crc32c_sb8.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/pg_strong_random.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/pgcheckdir.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/pgmkdirp.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/pgsleep.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/pgstrcasecmp.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/pgstrsignal.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/pqsignal.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/qsort.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/qsort_arg.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/quotes.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/snprintf.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/strerror.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/tar.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/thread.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/pg_crc32c_sse42.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/pg_crc32c_sse42_choose.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/pthread-win32.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq/win32.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/dirmod.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/inet_aton.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/open.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/win32common.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/win32error.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/win32gettimeofday.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/win32ntdll.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/win32setlocale.c + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/port/win32stat.c +) diff --git a/contrib/libs/libpqxx/CMakeLists.txt b/contrib/libs/libpqxx/CMakeLists.txt index 380079ac7b4a..d863ebd18067 100644 --- a/contrib/libs/libpqxx/CMakeLists.txt +++ b/contrib/libs/libpqxx/CMakeLists.txt @@ -14,4 +14,6 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL include(CMakeLists.darwin-x86_64.txt) elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) endif() diff --git a/contrib/libs/libpqxx/CMakeLists.windows-x86_64.txt b/contrib/libs/libpqxx/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..14c39564eedb --- /dev/null +++ b/contrib/libs/libpqxx/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_library(contrib-libs-libpqxx) +target_compile_options(contrib-libs-libpqxx PRIVATE + -DHAVE_CONFIG_H + $,,-Wno-everything> +) +target_include_directories(contrib-libs-libpqxx PUBLIC + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/include +) +target_include_directories(contrib-libs-libpqxx PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq + ${CMAKE_SOURCE_DIR}/contrib/libs/libpq/src/interfaces/libpq +) +target_link_libraries(contrib-libs-libpqxx PUBLIC + contrib-libs-cxxsupp + contrib-libs-libpq +) +target_sources(contrib-libs-libpqxx PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/array.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/binarystring.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/connection.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/connection_base.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/cursor.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/dbtransaction.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/encodings.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/errorhandler.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/except.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/field.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/largeobject.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/nontransaction.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/notification.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/pipeline.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/prepared_statement.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/result.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/robusttransaction.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/row.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/sql_cursor.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/statement_parameters.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/strconv.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/stream_base.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/stream_from.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/stream_to.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/subtransaction.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/tablereader.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/tablestream.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/tablewriter.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/transaction.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/transaction_base.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/util.cxx + ${CMAKE_SOURCE_DIR}/contrib/libs/libpqxx/src/version.cxx +) diff --git a/contrib/libs/libunwind/CMakeLists.txt b/contrib/libs/libunwind/CMakeLists.txt index d863ebd18067..380079ac7b4a 100644 --- a/contrib/libs/libunwind/CMakeLists.txt +++ b/contrib/libs/libunwind/CMakeLists.txt @@ -14,6 +14,4 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL include(CMakeLists.darwin-x86_64.txt) elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/contrib/libs/llvm12/include/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm12/include/CMakeLists.darwin-arm64.txt index 7ea3024199af..0b44da499887 100644 --- a/contrib/libs/llvm12/include/CMakeLists.darwin-arm64.txt +++ b/contrib/libs/llvm12/include/CMakeLists.darwin-arm64.txt @@ -670,6 +670,224 @@ target_link_libraries(libs-llvm12-include PUBLIC contrib-libs-llvm12 ) target_sources(libs-llvm12-include PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicEnums.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicImpl.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVPTX.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsR600.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsS390.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenACC/ACC.cpp + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenACC/ACC.cpp.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSystemOperands.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSystemRegister.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenEVEX2VEXTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.inc.d ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc diff --git a/contrib/libs/llvm12/include/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm12/include/CMakeLists.darwin-x86_64.txt index 7ea3024199af..0b44da499887 100644 --- a/contrib/libs/llvm12/include/CMakeLists.darwin-x86_64.txt +++ b/contrib/libs/llvm12/include/CMakeLists.darwin-x86_64.txt @@ -670,6 +670,224 @@ target_link_libraries(libs-llvm12-include PUBLIC contrib-libs-llvm12 ) target_sources(libs-llvm12-include PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicEnums.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicImpl.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVPTX.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsR600.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsS390.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenACC/ACC.cpp + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenACC/ACC.cpp.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSystemOperands.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSystemRegister.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenEVEX2VEXTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.inc.d ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc diff --git a/contrib/libs/llvm12/include/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm12/include/CMakeLists.linux-aarch64.txt index 468c652df5d9..dc8ea924e249 100644 --- a/contrib/libs/llvm12/include/CMakeLists.linux-aarch64.txt +++ b/contrib/libs/llvm12/include/CMakeLists.linux-aarch64.txt @@ -671,6 +671,224 @@ target_link_libraries(libs-llvm12-include PUBLIC contrib-libs-llvm12 ) target_sources(libs-llvm12-include PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicEnums.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicImpl.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVPTX.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsR600.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsS390.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenACC/ACC.cpp + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenACC/ACC.cpp.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSystemOperands.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSystemRegister.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenEVEX2VEXTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.inc.d ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc diff --git a/contrib/libs/llvm12/include/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm12/include/CMakeLists.linux-x86_64.txt index 468c652df5d9..dc8ea924e249 100644 --- a/contrib/libs/llvm12/include/CMakeLists.linux-x86_64.txt +++ b/contrib/libs/llvm12/include/CMakeLists.linux-x86_64.txt @@ -671,6 +671,224 @@ target_link_libraries(libs-llvm12-include PUBLIC contrib-libs-llvm12 ) target_sources(libs-llvm12-include PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicEnums.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicImpl.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVPTX.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsR600.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsS390.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenACC/ACC.cpp + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenACC/ACC.cpp.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSystemOperands.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSystemRegister.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenEVEX2VEXTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.inc.d ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc diff --git a/contrib/libs/llvm12/include/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm12/include/CMakeLists.windows-x86_64.txt index 7ea3024199af..0b44da499887 100644 --- a/contrib/libs/llvm12/include/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/llvm12/include/CMakeLists.windows-x86_64.txt @@ -670,6 +670,224 @@ target_link_libraries(libs-llvm12-include PUBLIC contrib-libs-llvm12 ) target_sources(libs-llvm12-include PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicEnums.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicImpl.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAArch64.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsAMDGPU.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsARM.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsBPF.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsHexagon.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsMips.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsNVPTX.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsPowerPC.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsR600.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsRISCV.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsS390.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsVE.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsWebAssembly.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsX86.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/IntrinsicsXCore.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenACC/ACC.cpp + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenACC/ACC.cpp.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Frontend/OpenMP/OMP.cpp.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/AArch64/AArch64GenSystemOperands.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/ARM/ARMGenSystemRegister.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/BPF/BPFGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenEVEX2VEXTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/Target/X86/X86GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-dlltool/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/lib/ToolDrivers/llvm-lib/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/dsymutil/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-cvtres/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-lipo/LipoOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-ml/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-mt/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/BitcodeStripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/InstallNameToolOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/ObjcopyOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-objcopy/StripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-rc/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/tools/llvm-symbolizer/Opts.inc.d ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenACC/ACC.h.inc ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/Frontend/OpenMP/OMP.h.inc ${CMAKE_BINARY_DIR}/contrib/libs/llvm12/include/llvm/IR/Attributes.inc diff --git a/contrib/libs/llvm12/lib/DebugInfo/CMakeLists.txt b/contrib/libs/llvm12/lib/DebugInfo/CMakeLists.txt index a1fc05a892e5..705bb739960c 100644 --- a/contrib/libs/llvm12/lib/DebugInfo/CMakeLists.txt +++ b/contrib/libs/llvm12/lib/DebugInfo/CMakeLists.txt @@ -9,5 +9,3 @@ add_subdirectory(CodeView) add_subdirectory(DWARF) add_subdirectory(MSF) -add_subdirectory(PDB) -add_subdirectory(Symbolize) diff --git a/contrib/libs/llvm12/utils/TableGen/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm12/utils/TableGen/CMakeLists.linux-aarch64.txt index 1421a2e7acfc..3460c057128e 100644 --- a/contrib/libs/llvm12/utils/TableGen/CMakeLists.linux-aarch64.txt +++ b/contrib/libs/llvm12/utils/TableGen/CMakeLists.linux-aarch64.txt @@ -31,9 +31,6 @@ target_link_options(llvm-tblgen PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(llvm-tblgen PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/AsmMatcherEmitter.cpp diff --git a/contrib/libs/llvm12/utils/TableGen/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm12/utils/TableGen/CMakeLists.linux-x86_64.txt index 947f97be9421..63db0f795dcd 100644 --- a/contrib/libs/llvm12/utils/TableGen/CMakeLists.linux-x86_64.txt +++ b/contrib/libs/llvm12/utils/TableGen/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(llvm-tblgen PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(llvm-tblgen PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/llvm12/utils/TableGen/AsmMatcherEmitter.cpp diff --git a/contrib/libs/llvm14/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..71de99706a42 --- /dev/null +++ b/contrib/libs/llvm14/CMakeLists.darwin-arm64.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_subdirectory(include) +add_subdirectory(lib) +add_subdirectory(utils) + +add_library(contrib-libs-llvm14 INTERFACE) +target_include_directories(contrib-libs-llvm14 INTERFACE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include +) +target_link_libraries(contrib-libs-llvm14 INTERFACE + contrib-libs-cxxsupp + yutil +) diff --git a/contrib/libs/llvm14/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..71de99706a42 --- /dev/null +++ b/contrib/libs/llvm14/CMakeLists.darwin-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_subdirectory(include) +add_subdirectory(lib) +add_subdirectory(utils) + +add_library(contrib-libs-llvm14 INTERFACE) +target_include_directories(contrib-libs-llvm14 INTERFACE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include +) +target_link_libraries(contrib-libs-llvm14 INTERFACE + contrib-libs-cxxsupp + yutil +) diff --git a/contrib/libs/llvm14/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..408e915e88d3 --- /dev/null +++ b/contrib/libs/llvm14/CMakeLists.linux-aarch64.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_subdirectory(include) +add_subdirectory(lib) +add_subdirectory(utils) + +add_library(contrib-libs-llvm14 INTERFACE) +target_include_directories(contrib-libs-llvm14 INTERFACE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include +) +target_link_libraries(contrib-libs-llvm14 INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) diff --git a/contrib/libs/llvm14/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..408e915e88d3 --- /dev/null +++ b/contrib/libs/llvm14/CMakeLists.linux-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_subdirectory(include) +add_subdirectory(lib) +add_subdirectory(utils) + +add_library(contrib-libs-llvm14 INTERFACE) +target_include_directories(contrib-libs-llvm14 INTERFACE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include +) +target_link_libraries(contrib-libs-llvm14 INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) diff --git a/ydb/core/formats/arrow/compression/CMakeLists.txt b/contrib/libs/llvm14/CMakeLists.txt similarity index 100% rename from ydb/core/formats/arrow/compression/CMakeLists.txt rename to contrib/libs/llvm14/CMakeLists.txt diff --git a/contrib/libs/llvm14/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..71de99706a42 --- /dev/null +++ b/contrib/libs/llvm14/CMakeLists.windows-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_subdirectory(include) +add_subdirectory(lib) +add_subdirectory(utils) + +add_library(contrib-libs-llvm14 INTERFACE) +target_include_directories(contrib-libs-llvm14 INTERFACE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include +) +target_link_libraries(contrib-libs-llvm14 INTERFACE + contrib-libs-cxxsupp + yutil +) diff --git a/contrib/libs/llvm14/include/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/include/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..6ae718c49825 --- /dev/null +++ b/contrib/libs/llvm14/include/CMakeLists.darwin-arm64.txt @@ -0,0 +1,8721 @@ + +# 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_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) + +add_library(libs-llvm14-include STATIC) +set_property(TARGET libs-llvm14-include PROPERTY + LINKER_LANGUAGE CXX +) +target_link_libraries(libs-llvm14-include PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 +) +target_sources(libs-llvm14-include PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-decl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-impl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-decl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-impl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/AttributesAMDGPU.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-attrs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-impl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=aarch64 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=amdgcn + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=arm + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=bpf + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=hexagon + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=mips + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=nvvm + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=ppc + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=r600 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=riscv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=s390 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=ve + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=wasm + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=x86 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=xcore + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -asmwriternum=1 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-exegesis + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-pseudo-lowering + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64O0PreLegalizerCombinerHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64PostLegalizerCombinerHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64PostLegalizerLoweringHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64PreLegalizerCombinerHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-searchable-tables + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-pseudo-lowering + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-searchable-tables + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-exegesis + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -asmwriternum=1 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-x86-EVEX2VEX-tables + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-exegesis + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc.d + --long-string-literals=0 +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/dsymutil + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cvtres + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-lipo + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-ml + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-mt + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-nm + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/CommonOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/CommonOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-readobj + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-size + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-strings + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc.d +) +if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(libs-llvm14-include + llvm-tblgen +) +endif() diff --git a/contrib/libs/llvm14/include/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/include/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..6ae718c49825 --- /dev/null +++ b/contrib/libs/llvm14/include/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,8721 @@ + +# 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_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) + +add_library(libs-llvm14-include STATIC) +set_property(TARGET libs-llvm14-include PROPERTY + LINKER_LANGUAGE CXX +) +target_link_libraries(libs-llvm14-include PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 +) +target_sources(libs-llvm14-include PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-decl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-impl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-decl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-impl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/AttributesAMDGPU.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-attrs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-impl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=aarch64 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=amdgcn + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=arm + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=bpf + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=hexagon + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=mips + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=nvvm + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=ppc + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=r600 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=riscv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=s390 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=ve + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=wasm + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=x86 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=xcore + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -asmwriternum=1 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-exegesis + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-pseudo-lowering + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64O0PreLegalizerCombinerHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64PostLegalizerCombinerHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64PostLegalizerLoweringHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64PreLegalizerCombinerHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-searchable-tables + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-pseudo-lowering + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-searchable-tables + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-exegesis + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -asmwriternum=1 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-x86-EVEX2VEX-tables + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-exegesis + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc.d + --long-string-literals=0 +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/dsymutil + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cvtres + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-lipo + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-ml + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-mt + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-nm + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/CommonOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/CommonOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-readobj + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-size + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-strings + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc.d +) +if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(libs-llvm14-include + llvm-tblgen +) +endif() diff --git a/contrib/libs/llvm14/include/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/include/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..51551c8d96c6 --- /dev/null +++ b/contrib/libs/llvm14/include/CMakeLists.linux-aarch64.txt @@ -0,0 +1,8722 @@ + +# 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_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) + +add_library(libs-llvm14-include STATIC) +set_property(TARGET libs-llvm14-include PROPERTY + LINKER_LANGUAGE CXX +) +target_link_libraries(libs-llvm14-include PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 +) +target_sources(libs-llvm14-include PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-decl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-impl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-decl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-impl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/AttributesAMDGPU.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-attrs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-impl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=aarch64 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=amdgcn + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=arm + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=bpf + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=hexagon + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=mips + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=nvvm + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=ppc + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=r600 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=riscv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=s390 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=ve + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=wasm + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=x86 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=xcore + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -asmwriternum=1 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-exegesis + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-pseudo-lowering + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64O0PreLegalizerCombinerHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64PostLegalizerCombinerHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64PostLegalizerLoweringHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64PreLegalizerCombinerHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-searchable-tables + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-pseudo-lowering + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-searchable-tables + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-exegesis + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -asmwriternum=1 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-x86-EVEX2VEX-tables + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-exegesis + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc.d + --long-string-literals=0 +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/dsymutil + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cvtres + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-lipo + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-ml + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-mt + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-nm + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/CommonOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/CommonOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-readobj + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-size + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-strings + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc.d +) +if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(libs-llvm14-include + llvm-tblgen +) +endif() diff --git a/contrib/libs/llvm14/include/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/include/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..51551c8d96c6 --- /dev/null +++ b/contrib/libs/llvm14/include/CMakeLists.linux-x86_64.txt @@ -0,0 +1,8722 @@ + +# 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_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) + +add_library(libs-llvm14-include STATIC) +set_property(TARGET libs-llvm14-include PROPERTY + LINKER_LANGUAGE CXX +) +target_link_libraries(libs-llvm14-include PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 +) +target_sources(libs-llvm14-include PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-decl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-impl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-decl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-impl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/AttributesAMDGPU.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-attrs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-impl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=aarch64 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=amdgcn + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=arm + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=bpf + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=hexagon + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=mips + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=nvvm + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=ppc + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=r600 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=riscv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=s390 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=ve + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=wasm + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=x86 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=xcore + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -asmwriternum=1 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-exegesis + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-pseudo-lowering + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64O0PreLegalizerCombinerHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64PostLegalizerCombinerHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64PostLegalizerLoweringHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64PreLegalizerCombinerHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-searchable-tables + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-pseudo-lowering + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-searchable-tables + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-exegesis + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -asmwriternum=1 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-x86-EVEX2VEX-tables + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-exegesis + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc.d + --long-string-literals=0 +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/dsymutil + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cvtres + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-lipo + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-ml + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-mt + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-nm + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/CommonOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/CommonOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-readobj + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-size + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-strings + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc.d +) +if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(libs-llvm14-include + llvm-tblgen +) +endif() diff --git a/contrib/libs/llvm14/include/CMakeLists.txt b/contrib/libs/llvm14/include/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/include/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/include/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/include/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..6ae718c49825 --- /dev/null +++ b/contrib/libs/llvm14/include/CMakeLists.windows-x86_64.txt @@ -0,0 +1,8721 @@ + +# 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_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) +get_built_tool_path( + TOOL_llvm-tblgen_bin + TOOL_llvm-tblgen_dependency + contrib/libs/llvm14/utils/TableGen + llvm-tblgen +) + +add_library(libs-llvm14-include STATIC) +set_property(TARGET libs-llvm14-include PROPERTY + LINKER_LANGUAGE CXX +) +target_link_libraries(libs-llvm14-include PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 +) +target_sources(libs-llvm14-include PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc.d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-decl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.h.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-impl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenACC/ACC.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-decl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.h.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/Directive/DirectiveBase.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + --gen-directive-impl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/Frontend/OpenMP/OMP.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/AttributesAMDGPU.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-attrs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/Attributes.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicEnums.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-impl + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicImpl.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=aarch64 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=amdgcn + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=arm + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=bpf + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=hexagon + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=mips + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=nvvm + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVPTX.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=ppc + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=r600 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsR600.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=riscv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=s390 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsS390.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=ve + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=wasm + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=x86 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-intrinsic-enums + -intrinsic-prefix=xcore + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.h.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -asmwriternum=1 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenAsmWriter1.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-exegesis + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenExegesis.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-pseudo-lowering + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenMCPseudoLowering.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64O0PreLegalizerCombinerHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenO0PreLegalizeGICombiner.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64PostLegalizerCombinerHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGICombiner.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64PostLegalizerLoweringHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPostLegalizeGILowering.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel-combiner + -combiners=AArch64PreLegalizerCombinerHelper + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenPreLegalizeGICombiner.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64CallingConvention.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrAtomics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrGISel.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SMEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SVEInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA53.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA55.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedA64FX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedAmpere1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedCyclone.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedExynosM5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkor.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedFalkorDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedKryoDetails.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredAmpere.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredExynos.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedTSV110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX2T99.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SchedThunderX3T110.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64SystemOperands.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SMEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/SVEInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Combine.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-searchable-tables + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/AArch64/AArch64GenSystemOperands.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-pseudo-lowering + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenMCPseudoLowering.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrCDE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrMVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrNEON.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrThumb2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMInstrVFP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA57WriteRes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleA9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleM7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleR52.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleSwift.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMScheduleV6.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMSystemRegister.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/TableGen/SearchableTable.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-searchable-tables + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARM.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/ARM/ARMGenSystemRegister.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPF.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/BPF/BPFGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXIntrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTX.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/NVPTX/NVPTXGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-exegesis + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenExegesis.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenInstrInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-emitter + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenMCCodeEmitter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/GISel/PPCRegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P10InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/P9InstrResources.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstr64Bit.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrAltivec.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrHTM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrPrefix.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrSPE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCInstrVSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCRegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCSchedule440.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleA2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE500mc.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleE5500.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG4Plus.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleG5.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP10.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP7.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP8.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCScheduleP9.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPC.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/PowerPC/PPCGenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-matcher + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmMatcher.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-asm-writer + -asmwriternum=1 + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenAsmWriter1.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-callingconv + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenCallingConv.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-dag-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + -omit-comments + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDAGISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-disassembler + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenDisassemblerTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-x86-EVEX2VEX-tables + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenEVEX2VEXTables.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-exegesis + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenExegesis.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-fast-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenFastISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-global-isel + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenGlobalISel.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-instr-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenInstrInfo.inc.d + --long-string-literals=0 +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-bank + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterBank.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-register-info + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenRegisterInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Instr3DNow.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrAVX512.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrArithmetic.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCMovSetCC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrControl.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrExtension.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFPStack.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFormats.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFragmentsSIMD.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrKL.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrMMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSGX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSNP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSSE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrShiftRotate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrSystem.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTDX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrTSX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVMX.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrVecCompiler.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrXOP.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBanks.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedBroadwell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedHaswell.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedIceLake.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedPredicates.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSandyBridge.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeClient.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SchedSkylakeServer.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Schedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleAtom.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBdVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleBtVer2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleSLM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver1.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver2.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ScheduleZnver3.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/SDNodeProperties.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/CodeGen/ValueTypes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/Intrinsics.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAArch64.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsAMDGPU.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsARM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsBPF.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagon.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsHexagonDep.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsMips.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsNVVM.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsPowerPC.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsRISCV.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsSystemZ.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVE.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsVEVL.gen.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsWebAssembly.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsX86.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/IR/IntrinsicsXCore.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GenericOpcodes.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/RegisterBank.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/SelectionDAGCompat.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/GlobalISel/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/Target.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetCallingConv.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetInstrPredicate.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetItinerary.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetPfmCounters.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSchedule.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Target/TargetSelectionDAG.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-subtarget + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86/X86GenSubtargetInfo.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-dlltool/Options.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/ToolDrivers/llvm-lib/Options.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/dsymutil + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/dsymutil/Options.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cvtres + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cvtres/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-cxxfilt/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-lipo + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-lipo/LipoOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-ml + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-ml/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-mt + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-mt/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-nm + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-nm/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/BitcodeStripOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/InstallNameToolOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/CommonOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/ObjcopyOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/CommonOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objcopy/StripOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/ObjdumpOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-objdump/OtoolOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-rc/WindresOpts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-readobj + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-readobj/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-size + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-size/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-strings + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-strings/Opts.inc.d +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc.d + DEPENDS + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.td + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include/llvm/Option/OptParser.td + ${TOOL_llvm-tblgen_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14 + COMMAND + ${TOOL_llvm-tblgen_bin} + -gen-opt-parser-defs + -I + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer + -Iinclude + -I${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/include + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.td + --write-if-changed + -o + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc + -d + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/tools/llvm-symbolizer/Opts.inc.d +) +if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(libs-llvm14-include + llvm-tblgen +) +endif() diff --git a/contrib/libs/llvm14/lib/Analysis/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Analysis/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..d777403df808 --- /dev/null +++ b/contrib/libs/llvm14/lib/Analysis/CMakeLists.darwin-arm64.txt @@ -0,0 +1,144 @@ + +# 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(llvm14-lib-Analysis) +target_compile_options(llvm14-lib-Analysis PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Analysis PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis +) +target_link_libraries(llvm14-lib-Analysis PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-ProfileData + llvm14-lib-Support +) +target_sources(llvm14-lib-Analysis PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasAnalysisEvaluator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasAnalysisSummary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasSetTracker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Analysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AssumeBundleQueries.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AssumptionCache.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BasicAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BlockFrequencyInfoImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BranchProbabilityInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFLAndersAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFLSteensAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CGSCCPassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CallGraph.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CallGraphSCCPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CallPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CaptureTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CmpInstAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CodeMetrics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ConstantFolding.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ConstraintSystem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CostModel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CycleAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DDG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DDGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Delinearization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DemandedBits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DependenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DependenceGraphBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DevelopmentModeInlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DivergenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DomPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DomTreeUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DominanceFrontier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/EHPersonalities.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/FunctionPropertiesAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/GlobalsModRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/GuardUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/HeatUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IRSimilarityIdentifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IVDescriptors.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IVUsers.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ImportedFunctionsInliningStatistics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IndirectCallPromotionAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InlineCost.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InlineSizeEstimatorAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InstCount.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InstructionPrecedenceTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InstructionSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Interval.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IntervalPartition.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyBlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyBranchProbabilityInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyCallGraph.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyValueInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LegacyDivergenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Lint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Loads.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopAccessAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopAnalysisManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopCacheAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopNestAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopUnrollAnalyzer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MLInlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemDepPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemDerefPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemoryBuiltins.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemoryDependenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemoryLocation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemorySSA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemorySSAUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ModelUnderTrainingRunner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ModuleDebugInfoPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ModuleSummaryAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MustExecute.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/NoInferenceModelRunner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ObjCARCAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ObjCARCAnalysisUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ObjCARCInstKind.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/OptimizationRemarkEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/OverflowInstAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PHITransAddr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PhiValues.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PostDominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ProfileSummaryInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PtrUseVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/RegionInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/RegionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/RegionPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ReplayInlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolution.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolutionDivision.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolutionNormalization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScopedNoAliasAA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/StackLifetime.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/StackSafetyAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/SyncDependenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/SyntheticCountsUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TFUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TargetLibraryInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TargetTransformInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Trace.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TypeBasedAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TypeMetadataUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/VFABIDemangling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ValueLattice.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ValueLatticeUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ValueTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/VectorUtils.cpp +) diff --git a/contrib/libs/llvm14/lib/Analysis/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Analysis/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..d777403df808 --- /dev/null +++ b/contrib/libs/llvm14/lib/Analysis/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,144 @@ + +# 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(llvm14-lib-Analysis) +target_compile_options(llvm14-lib-Analysis PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Analysis PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis +) +target_link_libraries(llvm14-lib-Analysis PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-ProfileData + llvm14-lib-Support +) +target_sources(llvm14-lib-Analysis PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasAnalysisEvaluator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasAnalysisSummary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasSetTracker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Analysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AssumeBundleQueries.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AssumptionCache.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BasicAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BlockFrequencyInfoImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BranchProbabilityInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFLAndersAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFLSteensAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CGSCCPassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CallGraph.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CallGraphSCCPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CallPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CaptureTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CmpInstAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CodeMetrics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ConstantFolding.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ConstraintSystem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CostModel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CycleAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DDG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DDGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Delinearization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DemandedBits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DependenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DependenceGraphBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DevelopmentModeInlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DivergenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DomPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DomTreeUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DominanceFrontier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/EHPersonalities.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/FunctionPropertiesAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/GlobalsModRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/GuardUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/HeatUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IRSimilarityIdentifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IVDescriptors.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IVUsers.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ImportedFunctionsInliningStatistics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IndirectCallPromotionAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InlineCost.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InlineSizeEstimatorAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InstCount.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InstructionPrecedenceTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InstructionSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Interval.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IntervalPartition.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyBlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyBranchProbabilityInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyCallGraph.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyValueInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LegacyDivergenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Lint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Loads.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopAccessAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopAnalysisManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopCacheAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopNestAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopUnrollAnalyzer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MLInlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemDepPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemDerefPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemoryBuiltins.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemoryDependenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemoryLocation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemorySSA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemorySSAUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ModelUnderTrainingRunner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ModuleDebugInfoPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ModuleSummaryAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MustExecute.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/NoInferenceModelRunner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ObjCARCAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ObjCARCAnalysisUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ObjCARCInstKind.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/OptimizationRemarkEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/OverflowInstAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PHITransAddr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PhiValues.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PostDominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ProfileSummaryInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PtrUseVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/RegionInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/RegionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/RegionPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ReplayInlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolution.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolutionDivision.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolutionNormalization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScopedNoAliasAA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/StackLifetime.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/StackSafetyAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/SyncDependenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/SyntheticCountsUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TFUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TargetLibraryInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TargetTransformInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Trace.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TypeBasedAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TypeMetadataUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/VFABIDemangling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ValueLattice.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ValueLatticeUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ValueTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/VectorUtils.cpp +) diff --git a/contrib/libs/llvm14/lib/Analysis/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Analysis/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..d9bdffe85a3c --- /dev/null +++ b/contrib/libs/llvm14/lib/Analysis/CMakeLists.linux-aarch64.txt @@ -0,0 +1,145 @@ + +# 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(llvm14-lib-Analysis) +target_compile_options(llvm14-lib-Analysis PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Analysis PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis +) +target_link_libraries(llvm14-lib-Analysis PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-ProfileData + llvm14-lib-Support +) +target_sources(llvm14-lib-Analysis PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasAnalysisEvaluator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasAnalysisSummary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasSetTracker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Analysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AssumeBundleQueries.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AssumptionCache.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BasicAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BlockFrequencyInfoImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BranchProbabilityInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFLAndersAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFLSteensAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CGSCCPassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CallGraph.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CallGraphSCCPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CallPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CaptureTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CmpInstAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CodeMetrics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ConstantFolding.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ConstraintSystem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CostModel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CycleAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DDG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DDGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Delinearization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DemandedBits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DependenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DependenceGraphBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DevelopmentModeInlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DivergenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DomPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DomTreeUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DominanceFrontier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/EHPersonalities.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/FunctionPropertiesAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/GlobalsModRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/GuardUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/HeatUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IRSimilarityIdentifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IVDescriptors.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IVUsers.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ImportedFunctionsInliningStatistics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IndirectCallPromotionAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InlineCost.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InlineSizeEstimatorAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InstCount.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InstructionPrecedenceTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InstructionSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Interval.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IntervalPartition.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyBlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyBranchProbabilityInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyCallGraph.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyValueInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LegacyDivergenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Lint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Loads.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopAccessAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopAnalysisManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopCacheAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopNestAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopUnrollAnalyzer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MLInlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemDepPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemDerefPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemoryBuiltins.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemoryDependenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemoryLocation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemorySSA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemorySSAUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ModelUnderTrainingRunner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ModuleDebugInfoPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ModuleSummaryAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MustExecute.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/NoInferenceModelRunner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ObjCARCAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ObjCARCAnalysisUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ObjCARCInstKind.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/OptimizationRemarkEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/OverflowInstAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PHITransAddr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PhiValues.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PostDominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ProfileSummaryInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PtrUseVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/RegionInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/RegionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/RegionPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ReplayInlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolution.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolutionDivision.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolutionNormalization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScopedNoAliasAA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/StackLifetime.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/StackSafetyAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/SyncDependenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/SyntheticCountsUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TFUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TargetLibraryInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TargetTransformInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Trace.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TypeBasedAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TypeMetadataUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/VFABIDemangling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ValueLattice.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ValueLatticeUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ValueTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/VectorUtils.cpp +) diff --git a/contrib/libs/llvm14/lib/Analysis/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Analysis/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..d9bdffe85a3c --- /dev/null +++ b/contrib/libs/llvm14/lib/Analysis/CMakeLists.linux-x86_64.txt @@ -0,0 +1,145 @@ + +# 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(llvm14-lib-Analysis) +target_compile_options(llvm14-lib-Analysis PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Analysis PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis +) +target_link_libraries(llvm14-lib-Analysis PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-ProfileData + llvm14-lib-Support +) +target_sources(llvm14-lib-Analysis PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasAnalysisEvaluator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasAnalysisSummary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasSetTracker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Analysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AssumeBundleQueries.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AssumptionCache.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BasicAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BlockFrequencyInfoImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BranchProbabilityInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFLAndersAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFLSteensAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CGSCCPassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CallGraph.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CallGraphSCCPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CallPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CaptureTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CmpInstAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CodeMetrics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ConstantFolding.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ConstraintSystem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CostModel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CycleAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DDG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DDGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Delinearization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DemandedBits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DependenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DependenceGraphBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DevelopmentModeInlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DivergenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DomPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DomTreeUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DominanceFrontier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/EHPersonalities.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/FunctionPropertiesAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/GlobalsModRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/GuardUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/HeatUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IRSimilarityIdentifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IVDescriptors.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IVUsers.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ImportedFunctionsInliningStatistics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IndirectCallPromotionAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InlineCost.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InlineSizeEstimatorAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InstCount.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InstructionPrecedenceTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InstructionSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Interval.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IntervalPartition.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyBlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyBranchProbabilityInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyCallGraph.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyValueInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LegacyDivergenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Lint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Loads.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopAccessAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopAnalysisManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopCacheAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopNestAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopUnrollAnalyzer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MLInlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemDepPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemDerefPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemoryBuiltins.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemoryDependenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemoryLocation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemorySSA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemorySSAUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ModelUnderTrainingRunner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ModuleDebugInfoPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ModuleSummaryAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MustExecute.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/NoInferenceModelRunner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ObjCARCAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ObjCARCAnalysisUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ObjCARCInstKind.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/OptimizationRemarkEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/OverflowInstAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PHITransAddr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PhiValues.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PostDominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ProfileSummaryInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PtrUseVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/RegionInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/RegionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/RegionPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ReplayInlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolution.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolutionDivision.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolutionNormalization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScopedNoAliasAA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/StackLifetime.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/StackSafetyAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/SyncDependenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/SyntheticCountsUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TFUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TargetLibraryInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TargetTransformInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Trace.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TypeBasedAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TypeMetadataUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/VFABIDemangling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ValueLattice.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ValueLatticeUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ValueTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/VectorUtils.cpp +) diff --git a/contrib/libs/llvm14/lib/Analysis/CMakeLists.txt b/contrib/libs/llvm14/lib/Analysis/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Analysis/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Analysis/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Analysis/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..d777403df808 --- /dev/null +++ b/contrib/libs/llvm14/lib/Analysis/CMakeLists.windows-x86_64.txt @@ -0,0 +1,144 @@ + +# 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(llvm14-lib-Analysis) +target_compile_options(llvm14-lib-Analysis PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Analysis PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis +) +target_link_libraries(llvm14-lib-Analysis PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-ProfileData + llvm14-lib-Support +) +target_sources(llvm14-lib-Analysis PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasAnalysisEvaluator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasAnalysisSummary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AliasSetTracker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Analysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AssumeBundleQueries.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/AssumptionCache.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BasicAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BlockFrequencyInfoImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/BranchProbabilityInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFLAndersAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CFLSteensAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CGSCCPassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CallGraph.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CallGraphSCCPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CallPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CaptureTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CmpInstAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CodeMetrics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ConstantFolding.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ConstraintSystem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CostModel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/CycleAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DDG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DDGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Delinearization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DemandedBits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DependenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DependenceGraphBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DevelopmentModeInlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DivergenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DomPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DomTreeUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/DominanceFrontier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/EHPersonalities.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/FunctionPropertiesAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/GlobalsModRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/GuardUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/HeatUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IRSimilarityIdentifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IVDescriptors.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IVUsers.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ImportedFunctionsInliningStatistics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IndirectCallPromotionAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InlineCost.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InlineSizeEstimatorAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InstCount.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InstructionPrecedenceTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/InstructionSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Interval.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/IntervalPartition.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyBlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyBranchProbabilityInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyCallGraph.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LazyValueInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LegacyDivergenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Lint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Loads.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopAccessAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopAnalysisManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopCacheAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopNestAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/LoopUnrollAnalyzer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MLInlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemDepPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemDerefPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemoryBuiltins.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemoryDependenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemoryLocation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemorySSA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MemorySSAUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ModelUnderTrainingRunner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ModuleDebugInfoPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ModuleSummaryAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/MustExecute.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/NoInferenceModelRunner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ObjCARCAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ObjCARCAnalysisUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ObjCARCInstKind.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/OptimizationRemarkEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/OverflowInstAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PHITransAddr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PhiValues.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PostDominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ProfileSummaryInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/PtrUseVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/RegionInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/RegionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/RegionPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ReplayInlineAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolution.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolutionDivision.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScalarEvolutionNormalization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ScopedNoAliasAA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/StackLifetime.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/StackSafetyAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/SyncDependenceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/SyntheticCountsUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TFUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TargetLibraryInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TargetTransformInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/Trace.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TypeBasedAliasAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/TypeMetadataUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/VFABIDemangling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ValueLattice.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ValueLatticeUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/ValueTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Analysis/VectorUtils.cpp +) diff --git a/contrib/libs/llvm14/lib/AsmParser/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/AsmParser/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..ad1f7a852750 --- /dev/null +++ b/contrib/libs/llvm14/lib/AsmParser/CMakeLists.darwin-arm64.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(llvm14-lib-AsmParser) +target_compile_options(llvm14-lib-AsmParser PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-AsmParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser +) +target_link_libraries(llvm14-lib-AsmParser PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(llvm14-lib-AsmParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser/LLLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser/LLParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser/Parser.cpp +) diff --git a/contrib/libs/llvm14/lib/AsmParser/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/AsmParser/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..ad1f7a852750 --- /dev/null +++ b/contrib/libs/llvm14/lib/AsmParser/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(llvm14-lib-AsmParser) +target_compile_options(llvm14-lib-AsmParser PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-AsmParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser +) +target_link_libraries(llvm14-lib-AsmParser PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(llvm14-lib-AsmParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser/LLLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser/LLParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser/Parser.cpp +) diff --git a/contrib/libs/llvm14/lib/AsmParser/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/AsmParser/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..31d8b865b626 --- /dev/null +++ b/contrib/libs/llvm14/lib/AsmParser/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(llvm14-lib-AsmParser) +target_compile_options(llvm14-lib-AsmParser PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-AsmParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser +) +target_link_libraries(llvm14-lib-AsmParser PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(llvm14-lib-AsmParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser/LLLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser/LLParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser/Parser.cpp +) diff --git a/contrib/libs/llvm14/lib/AsmParser/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/AsmParser/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..31d8b865b626 --- /dev/null +++ b/contrib/libs/llvm14/lib/AsmParser/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(llvm14-lib-AsmParser) +target_compile_options(llvm14-lib-AsmParser PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-AsmParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser +) +target_link_libraries(llvm14-lib-AsmParser PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(llvm14-lib-AsmParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser/LLLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser/LLParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser/Parser.cpp +) diff --git a/contrib/libs/llvm14/lib/AsmParser/CMakeLists.txt b/contrib/libs/llvm14/lib/AsmParser/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/AsmParser/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/AsmParser/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/AsmParser/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..ad1f7a852750 --- /dev/null +++ b/contrib/libs/llvm14/lib/AsmParser/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(llvm14-lib-AsmParser) +target_compile_options(llvm14-lib-AsmParser PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-AsmParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser +) +target_link_libraries(llvm14-lib-AsmParser PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(llvm14-lib-AsmParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser/LLLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser/LLParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/AsmParser/Parser.cpp +) diff --git a/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..f4032add327f --- /dev/null +++ b/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.darwin-arm64.txt @@ -0,0 +1,36 @@ + +# 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(llvm14-lib-BinaryFormat) +target_compile_options(llvm14-lib-BinaryFormat PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-BinaryFormat PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat +) +target_link_libraries(llvm14-lib-BinaryFormat PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(llvm14-lib-BinaryFormat PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/COFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Dwarf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/ELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MachO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Magic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Minidump.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackDocument.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackDocumentYAML.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Wasm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/XCOFF.cpp +) diff --git a/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..f4032add327f --- /dev/null +++ b/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,36 @@ + +# 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(llvm14-lib-BinaryFormat) +target_compile_options(llvm14-lib-BinaryFormat PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-BinaryFormat PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat +) +target_link_libraries(llvm14-lib-BinaryFormat PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(llvm14-lib-BinaryFormat PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/COFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Dwarf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/ELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MachO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Magic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Minidump.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackDocument.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackDocumentYAML.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Wasm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/XCOFF.cpp +) diff --git a/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..58818499537f --- /dev/null +++ b/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.linux-aarch64.txt @@ -0,0 +1,37 @@ + +# 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(llvm14-lib-BinaryFormat) +target_compile_options(llvm14-lib-BinaryFormat PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-BinaryFormat PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat +) +target_link_libraries(llvm14-lib-BinaryFormat PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(llvm14-lib-BinaryFormat PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/COFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Dwarf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/ELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MachO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Magic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Minidump.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackDocument.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackDocumentYAML.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Wasm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/XCOFF.cpp +) diff --git a/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..58818499537f --- /dev/null +++ b/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.linux-x86_64.txt @@ -0,0 +1,37 @@ + +# 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(llvm14-lib-BinaryFormat) +target_compile_options(llvm14-lib-BinaryFormat PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-BinaryFormat PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat +) +target_link_libraries(llvm14-lib-BinaryFormat PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(llvm14-lib-BinaryFormat PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/COFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Dwarf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/ELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MachO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Magic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Minidump.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackDocument.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackDocumentYAML.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Wasm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/XCOFF.cpp +) diff --git a/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.txt b/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..f4032add327f --- /dev/null +++ b/contrib/libs/llvm14/lib/BinaryFormat/CMakeLists.windows-x86_64.txt @@ -0,0 +1,36 @@ + +# 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(llvm14-lib-BinaryFormat) +target_compile_options(llvm14-lib-BinaryFormat PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-BinaryFormat PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat +) +target_link_libraries(llvm14-lib-BinaryFormat PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(llvm14-lib-BinaryFormat PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/COFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Dwarf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/ELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MachO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Magic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Minidump.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackDocument.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackDocumentYAML.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/MsgPackWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/Wasm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/BinaryFormat/XCOFF.cpp +) diff --git a/contrib/libs/llvm14/lib/Bitcode/CMakeLists.txt b/contrib/libs/llvm14/lib/Bitcode/CMakeLists.txt new file mode 100644 index 000000000000..9099f95be414 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitcode/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(Reader) +add_subdirectory(Writer) diff --git a/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..b1e64bce5170 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.darwin-arm64.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(lib-Bitcode-Reader) +target_compile_options(lib-Bitcode-Reader PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Bitcode-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader +) +target_link_libraries(lib-Bitcode-Reader PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + lib-Bitstream-Reader + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(lib-Bitcode-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/BitReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/BitcodeAnalyzer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/BitcodeReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/MetadataLoader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/ValueList.cpp +) diff --git a/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..b1e64bce5170 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.darwin-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(lib-Bitcode-Reader) +target_compile_options(lib-Bitcode-Reader PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Bitcode-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader +) +target_link_libraries(lib-Bitcode-Reader PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + lib-Bitstream-Reader + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(lib-Bitcode-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/BitReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/BitcodeAnalyzer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/BitcodeReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/MetadataLoader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/ValueList.cpp +) diff --git a/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..d277e4f7cfb5 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.linux-aarch64.txt @@ -0,0 +1,32 @@ + +# 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(lib-Bitcode-Reader) +target_compile_options(lib-Bitcode-Reader PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Bitcode-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader +) +target_link_libraries(lib-Bitcode-Reader PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + lib-Bitstream-Reader + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(lib-Bitcode-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/BitReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/BitcodeAnalyzer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/BitcodeReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/MetadataLoader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/ValueList.cpp +) diff --git a/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..d277e4f7cfb5 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.linux-x86_64.txt @@ -0,0 +1,32 @@ + +# 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(lib-Bitcode-Reader) +target_compile_options(lib-Bitcode-Reader PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Bitcode-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader +) +target_link_libraries(lib-Bitcode-Reader PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + lib-Bitstream-Reader + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(lib-Bitcode-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/BitReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/BitcodeAnalyzer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/BitcodeReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/MetadataLoader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/ValueList.cpp +) diff --git a/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.txt b/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..b1e64bce5170 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitcode/Reader/CMakeLists.windows-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(lib-Bitcode-Reader) +target_compile_options(lib-Bitcode-Reader PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Bitcode-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader +) +target_link_libraries(lib-Bitcode-Reader PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + lib-Bitstream-Reader + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(lib-Bitcode-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/BitReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/BitcodeAnalyzer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/BitcodeReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/MetadataLoader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Reader/ValueList.cpp +) diff --git a/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..dd0158ded790 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.darwin-arm64.txt @@ -0,0 +1,32 @@ + +# 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(lib-Bitcode-Writer) +target_compile_options(lib-Bitcode-Writer PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Bitcode-Writer PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer +) +target_link_libraries(lib-Bitcode-Writer PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-Bitcode-Writer PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/BitWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/BitcodeWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/BitcodeWriterPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/ValueEnumerator.cpp +) diff --git a/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..dd0158ded790 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,32 @@ + +# 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(lib-Bitcode-Writer) +target_compile_options(lib-Bitcode-Writer PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Bitcode-Writer PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer +) +target_link_libraries(lib-Bitcode-Writer PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-Bitcode-Writer PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/BitWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/BitcodeWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/BitcodeWriterPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/ValueEnumerator.cpp +) diff --git a/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..3c09508990e5 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.linux-aarch64.txt @@ -0,0 +1,33 @@ + +# 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(lib-Bitcode-Writer) +target_compile_options(lib-Bitcode-Writer PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Bitcode-Writer PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer +) +target_link_libraries(lib-Bitcode-Writer PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-Bitcode-Writer PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/BitWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/BitcodeWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/BitcodeWriterPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/ValueEnumerator.cpp +) diff --git a/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..3c09508990e5 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.linux-x86_64.txt @@ -0,0 +1,33 @@ + +# 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(lib-Bitcode-Writer) +target_compile_options(lib-Bitcode-Writer PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Bitcode-Writer PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer +) +target_link_libraries(lib-Bitcode-Writer PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-Bitcode-Writer PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/BitWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/BitcodeWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/BitcodeWriterPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/ValueEnumerator.cpp +) diff --git a/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.txt b/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..dd0158ded790 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitcode/Writer/CMakeLists.windows-x86_64.txt @@ -0,0 +1,32 @@ + +# 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(lib-Bitcode-Writer) +target_compile_options(lib-Bitcode-Writer PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Bitcode-Writer PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer +) +target_link_libraries(lib-Bitcode-Writer PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-Bitcode-Writer PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/BitWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/BitcodeWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/BitcodeWriterPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitcode/Writer/ValueEnumerator.cpp +) diff --git a/contrib/libs/llvm14/lib/Bitstream/CMakeLists.txt b/contrib/libs/llvm14/lib/Bitstream/CMakeLists.txt new file mode 100644 index 000000000000..51e0986406af --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitstream/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(Reader) diff --git a/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..6f018eb0a874 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.darwin-arm64.txt @@ -0,0 +1,24 @@ + +# 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(lib-Bitstream-Reader) +target_compile_options(lib-Bitstream-Reader PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Bitstream-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitstream/Reader +) +target_link_libraries(lib-Bitstream-Reader PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(lib-Bitstream-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitstream/Reader/BitstreamReader.cpp +) diff --git a/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..6f018eb0a874 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,24 @@ + +# 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(lib-Bitstream-Reader) +target_compile_options(lib-Bitstream-Reader PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Bitstream-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitstream/Reader +) +target_link_libraries(lib-Bitstream-Reader PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(lib-Bitstream-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitstream/Reader/BitstreamReader.cpp +) diff --git a/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..565ada21d6b4 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.linux-aarch64.txt @@ -0,0 +1,25 @@ + +# 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(lib-Bitstream-Reader) +target_compile_options(lib-Bitstream-Reader PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Bitstream-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitstream/Reader +) +target_link_libraries(lib-Bitstream-Reader PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(lib-Bitstream-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitstream/Reader/BitstreamReader.cpp +) diff --git a/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..565ada21d6b4 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.linux-x86_64.txt @@ -0,0 +1,25 @@ + +# 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(lib-Bitstream-Reader) +target_compile_options(lib-Bitstream-Reader PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Bitstream-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitstream/Reader +) +target_link_libraries(lib-Bitstream-Reader PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(lib-Bitstream-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitstream/Reader/BitstreamReader.cpp +) diff --git a/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.txt b/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..6f018eb0a874 --- /dev/null +++ b/contrib/libs/llvm14/lib/Bitstream/Reader/CMakeLists.windows-x86_64.txt @@ -0,0 +1,24 @@ + +# 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(lib-Bitstream-Reader) +target_compile_options(lib-Bitstream-Reader PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Bitstream-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitstream/Reader +) +target_link_libraries(lib-Bitstream-Reader PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(lib-Bitstream-Reader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Bitstream/Reader/BitstreamReader.cpp +) diff --git a/contrib/libs/llvm14/lib/CMakeLists.txt b/contrib/libs/llvm14/lib/CMakeLists.txt new file mode 100644 index 000000000000..d6a1483fa0cc --- /dev/null +++ b/contrib/libs/llvm14/lib/CMakeLists.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_subdirectory(Analysis) +add_subdirectory(AsmParser) +add_subdirectory(BinaryFormat) +add_subdirectory(Bitcode) +add_subdirectory(Bitstream) +add_subdirectory(CodeGen) +add_subdirectory(DebugInfo) +add_subdirectory(Demangle) +add_subdirectory(ExecutionEngine) +add_subdirectory(Frontend) +add_subdirectory(IR) +add_subdirectory(IRReader) +add_subdirectory(Linker) +add_subdirectory(MC) +add_subdirectory(Object) +add_subdirectory(ProfileData) +add_subdirectory(Remarks) +add_subdirectory(Support) +add_subdirectory(TableGen) +add_subdirectory(Target) +add_subdirectory(TextAPI) +add_subdirectory(Transforms) diff --git a/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..7a16593bf6ba --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.darwin-arm64.txt @@ -0,0 +1,62 @@ + +# 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(lib-CodeGen-AsmPrinter) +target_compile_options(lib-CodeGen-AsmPrinter PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-CodeGen-AsmPrinter PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter +) +target_link_libraries(lib-CodeGen-AsmPrinter PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-BinaryFormat + llvm14-lib-CodeGen + lib-DebugInfo-CodeView + lib-DebugInfo-DWARF + lib-DebugInfo-MSF + llvm14-lib-IR + llvm14-lib-MC + lib-MC-MCParser + llvm14-lib-Remarks + llvm14-lib-Support + llvm14-lib-Target +) +target_sources(lib-CodeGen-AsmPrinter PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AIXException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/ARMException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AccelTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AddressPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AsmPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DIE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DIEHash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DebugLocStream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfDebug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfExpression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/EHStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/WasmException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/WinCFGuard.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/WinException.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..7a16593bf6ba --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,62 @@ + +# 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(lib-CodeGen-AsmPrinter) +target_compile_options(lib-CodeGen-AsmPrinter PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-CodeGen-AsmPrinter PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter +) +target_link_libraries(lib-CodeGen-AsmPrinter PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-BinaryFormat + llvm14-lib-CodeGen + lib-DebugInfo-CodeView + lib-DebugInfo-DWARF + lib-DebugInfo-MSF + llvm14-lib-IR + llvm14-lib-MC + lib-MC-MCParser + llvm14-lib-Remarks + llvm14-lib-Support + llvm14-lib-Target +) +target_sources(lib-CodeGen-AsmPrinter PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AIXException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/ARMException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AccelTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AddressPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AsmPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DIE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DIEHash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DebugLocStream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfDebug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfExpression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/EHStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/WasmException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/WinCFGuard.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/WinException.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..32b55a36076e --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.linux-aarch64.txt @@ -0,0 +1,63 @@ + +# 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(lib-CodeGen-AsmPrinter) +target_compile_options(lib-CodeGen-AsmPrinter PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-CodeGen-AsmPrinter PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter +) +target_link_libraries(lib-CodeGen-AsmPrinter PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-BinaryFormat + llvm14-lib-CodeGen + lib-DebugInfo-CodeView + lib-DebugInfo-DWARF + lib-DebugInfo-MSF + llvm14-lib-IR + llvm14-lib-MC + lib-MC-MCParser + llvm14-lib-Remarks + llvm14-lib-Support + llvm14-lib-Target +) +target_sources(lib-CodeGen-AsmPrinter PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AIXException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/ARMException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AccelTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AddressPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AsmPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DIE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DIEHash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DebugLocStream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfDebug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfExpression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/EHStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/WasmException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/WinCFGuard.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/WinException.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..32b55a36076e --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.linux-x86_64.txt @@ -0,0 +1,63 @@ + +# 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(lib-CodeGen-AsmPrinter) +target_compile_options(lib-CodeGen-AsmPrinter PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-CodeGen-AsmPrinter PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter +) +target_link_libraries(lib-CodeGen-AsmPrinter PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-BinaryFormat + llvm14-lib-CodeGen + lib-DebugInfo-CodeView + lib-DebugInfo-DWARF + lib-DebugInfo-MSF + llvm14-lib-IR + llvm14-lib-MC + lib-MC-MCParser + llvm14-lib-Remarks + llvm14-lib-Support + llvm14-lib-Target +) +target_sources(lib-CodeGen-AsmPrinter PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AIXException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/ARMException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AccelTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AddressPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AsmPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DIE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DIEHash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DebugLocStream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfDebug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfExpression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/EHStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/WasmException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/WinCFGuard.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/WinException.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.txt b/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..7a16593bf6ba --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CMakeLists.windows-x86_64.txt @@ -0,0 +1,62 @@ + +# 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(lib-CodeGen-AsmPrinter) +target_compile_options(lib-CodeGen-AsmPrinter PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-CodeGen-AsmPrinter PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter +) +target_link_libraries(lib-CodeGen-AsmPrinter PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-BinaryFormat + llvm14-lib-CodeGen + lib-DebugInfo-CodeView + lib-DebugInfo-DWARF + lib-DebugInfo-MSF + llvm14-lib-IR + llvm14-lib-MC + lib-MC-MCParser + llvm14-lib-Remarks + llvm14-lib-Support + llvm14-lib-Target +) +target_sources(lib-CodeGen-AsmPrinter PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AIXException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/ARMException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AccelTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AddressPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AsmPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DIE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DIEHash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DebugLocStream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfDebug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfExpression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/DwarfUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/EHStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/WasmException.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/WinCFGuard.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AsmPrinter/WinException.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/CodeGen/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..70993ab3c5c6 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/CMakeLists.darwin-arm64.txt @@ -0,0 +1,239 @@ + +# 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(AsmPrinter) +add_subdirectory(GlobalISel) +add_subdirectory(SelectionDAG) + +add_library(llvm14-lib-CodeGen) +target_compile_options(llvm14-lib-CodeGen PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-CodeGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen +) +target_link_libraries(llvm14-lib-CodeGen PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + lib-Bitcode-Reader + lib-Bitcode-Writer + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-ProfileData + llvm14-lib-Support + llvm14-lib-Target + lib-Transforms-Scalar + lib-Transforms-Utils +) +target_sources(llvm14-lib-CodeGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AggressiveAntiDepBreaker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AllocationOrder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/Analysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AtomicExpandPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BasicBlockSections.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BasicTargetTransformInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BranchFolding.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BranchRelaxation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BreakFalseDeps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CFGuardLongjmp.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CFIInstrInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CalcSpillWeights.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CallingConvLower.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGenCommonISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGenPassBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGenPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CommandFlags.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CriticalAntiDepBreaker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DFAPacketizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DeadMachineInstructionElim.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DetectDeadLanes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DwarfEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/EHContGuardCatchret.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/EarlyIfConversion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/EdgeBundles.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExecutionDomainFix.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandMemCmp.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandPostRAPseudos.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandReductions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandVectorPredication.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FEntryInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FaultMaps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FinalizeISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FixupStatepointCallerSaved.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FuncletLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GCMetadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GCMetadataPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GCRootLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalMerge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/HardwareLoops.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/IfConversion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ImplicitNullChecks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/IndirectBrExpandPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InlineSpiller.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InterferenceCache.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InterleavedAccessPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InterleavedLoadCombinePass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/IntrinsicLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LLVMTargetMachine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LatencyPriorityQueue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LexicalScopes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugVariables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveInterval.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveIntervalCalc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveIntervalUnion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveIntervals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LivePhysRegs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRangeCalc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRangeEdit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRangeShrink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRegMatrix.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRegUnits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveStacks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveVariables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LocalStackSlotAllocation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LoopTraversal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LowLevelType.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LowerEmuTLS.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MBFIWrapper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRCanonicalizerPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRFSDiscriminator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRNamerPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRPrintingPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRSampleProfile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRVRegNamerUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRYamlMapping.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MLRegallocEvictAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBasicBlock.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBlockPlacement.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBranchProbabilityInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCSE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCheckDebugify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCombiner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCopyPropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCycleAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineDebugify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineDominanceFrontier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineDominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFrameInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunctionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunctionPrinterPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunctionSplitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineInstr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineInstrBundle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineLICM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineLoopInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineLoopUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineModuleInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineModuleInfoImpls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineModuleSlotTracker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineOperand.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineOutliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachinePassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachinePipeliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachinePostDominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineRegionInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineRegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSSAContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSSAUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineScheduler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSizeOpts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineStableHash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineStripDebug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineTraceMetrics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MacroFusion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ModuloSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MultiHazardRecognizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/NonRelocatableStringpool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/OptimizePHIs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PHIElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PHIEliminationUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ParallelCG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PatchableFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PeepholeOptimizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PostRAHazardRecognizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PostRASchedulerList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PreISelIntrinsicLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ProcessImplicitDefs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PrologEpilogInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PseudoProbeInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PseudoSourceValue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RDFGraph.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RDFLiveness.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RDFRegisters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ReachingDefAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocBase.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocBasic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocEvictionAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocFast.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocGreedy.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocPBQP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocScore.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegUsageInfoCollector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegUsageInfoPropagate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterClassInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterCoalescer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterPressure.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterScavenging.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterUsageInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RemoveRedundantDebugValues.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RenameIndependentSubregs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ReplaceWithVeclib.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ResetMachineFunctionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SafeStack.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SafeStackLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScheduleDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScheduleDAGInstrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScheduleDAGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScoreboardHazardRecognizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ShadowStackGCLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ShrinkWrap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SjLjEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SlotIndexes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SpillPlacement.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SplitKit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackColoring.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackMapLivenessAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackMaps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackProtector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackSlotColoring.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SwiftErrorValueTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SwitchLoweringUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TailDuplication.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TailDuplicator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetFrameLoweringImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetInstrInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetLoweringBase.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetLoweringObjectFileImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetOptionsImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetPassConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetRegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetSubtargetInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TwoAddressInstructionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TypePromotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/UnreachableBlockElim.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/VLIWMachineScheduler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ValueTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/VirtRegMap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/WasmEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/WinEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/XRayInstrumentation.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/CodeGen/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..70993ab3c5c6 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,239 @@ + +# 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(AsmPrinter) +add_subdirectory(GlobalISel) +add_subdirectory(SelectionDAG) + +add_library(llvm14-lib-CodeGen) +target_compile_options(llvm14-lib-CodeGen PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-CodeGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen +) +target_link_libraries(llvm14-lib-CodeGen PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + lib-Bitcode-Reader + lib-Bitcode-Writer + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-ProfileData + llvm14-lib-Support + llvm14-lib-Target + lib-Transforms-Scalar + lib-Transforms-Utils +) +target_sources(llvm14-lib-CodeGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AggressiveAntiDepBreaker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AllocationOrder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/Analysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AtomicExpandPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BasicBlockSections.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BasicTargetTransformInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BranchFolding.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BranchRelaxation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BreakFalseDeps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CFGuardLongjmp.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CFIInstrInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CalcSpillWeights.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CallingConvLower.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGenCommonISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGenPassBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGenPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CommandFlags.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CriticalAntiDepBreaker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DFAPacketizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DeadMachineInstructionElim.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DetectDeadLanes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DwarfEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/EHContGuardCatchret.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/EarlyIfConversion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/EdgeBundles.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExecutionDomainFix.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandMemCmp.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandPostRAPseudos.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandReductions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandVectorPredication.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FEntryInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FaultMaps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FinalizeISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FixupStatepointCallerSaved.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FuncletLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GCMetadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GCMetadataPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GCRootLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalMerge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/HardwareLoops.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/IfConversion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ImplicitNullChecks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/IndirectBrExpandPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InlineSpiller.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InterferenceCache.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InterleavedAccessPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InterleavedLoadCombinePass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/IntrinsicLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LLVMTargetMachine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LatencyPriorityQueue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LexicalScopes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugVariables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveInterval.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveIntervalCalc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveIntervalUnion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveIntervals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LivePhysRegs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRangeCalc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRangeEdit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRangeShrink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRegMatrix.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRegUnits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveStacks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveVariables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LocalStackSlotAllocation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LoopTraversal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LowLevelType.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LowerEmuTLS.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MBFIWrapper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRCanonicalizerPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRFSDiscriminator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRNamerPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRPrintingPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRSampleProfile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRVRegNamerUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRYamlMapping.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MLRegallocEvictAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBasicBlock.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBlockPlacement.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBranchProbabilityInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCSE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCheckDebugify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCombiner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCopyPropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCycleAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineDebugify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineDominanceFrontier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineDominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFrameInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunctionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunctionPrinterPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunctionSplitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineInstr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineInstrBundle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineLICM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineLoopInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineLoopUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineModuleInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineModuleInfoImpls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineModuleSlotTracker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineOperand.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineOutliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachinePassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachinePipeliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachinePostDominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineRegionInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineRegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSSAContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSSAUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineScheduler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSizeOpts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineStableHash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineStripDebug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineTraceMetrics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MacroFusion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ModuloSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MultiHazardRecognizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/NonRelocatableStringpool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/OptimizePHIs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PHIElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PHIEliminationUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ParallelCG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PatchableFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PeepholeOptimizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PostRAHazardRecognizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PostRASchedulerList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PreISelIntrinsicLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ProcessImplicitDefs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PrologEpilogInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PseudoProbeInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PseudoSourceValue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RDFGraph.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RDFLiveness.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RDFRegisters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ReachingDefAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocBase.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocBasic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocEvictionAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocFast.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocGreedy.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocPBQP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocScore.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegUsageInfoCollector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegUsageInfoPropagate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterClassInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterCoalescer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterPressure.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterScavenging.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterUsageInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RemoveRedundantDebugValues.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RenameIndependentSubregs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ReplaceWithVeclib.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ResetMachineFunctionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SafeStack.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SafeStackLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScheduleDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScheduleDAGInstrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScheduleDAGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScoreboardHazardRecognizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ShadowStackGCLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ShrinkWrap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SjLjEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SlotIndexes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SpillPlacement.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SplitKit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackColoring.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackMapLivenessAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackMaps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackProtector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackSlotColoring.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SwiftErrorValueTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SwitchLoweringUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TailDuplication.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TailDuplicator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetFrameLoweringImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetInstrInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetLoweringBase.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetLoweringObjectFileImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetOptionsImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetPassConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetRegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetSubtargetInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TwoAddressInstructionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TypePromotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/UnreachableBlockElim.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/VLIWMachineScheduler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ValueTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/VirtRegMap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/WasmEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/WinEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/XRayInstrumentation.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/CodeGen/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..04e364985e23 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/CMakeLists.linux-aarch64.txt @@ -0,0 +1,240 @@ + +# 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(AsmPrinter) +add_subdirectory(GlobalISel) +add_subdirectory(SelectionDAG) + +add_library(llvm14-lib-CodeGen) +target_compile_options(llvm14-lib-CodeGen PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-CodeGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen +) +target_link_libraries(llvm14-lib-CodeGen PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + lib-Bitcode-Reader + lib-Bitcode-Writer + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-ProfileData + llvm14-lib-Support + llvm14-lib-Target + lib-Transforms-Scalar + lib-Transforms-Utils +) +target_sources(llvm14-lib-CodeGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AggressiveAntiDepBreaker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AllocationOrder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/Analysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AtomicExpandPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BasicBlockSections.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BasicTargetTransformInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BranchFolding.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BranchRelaxation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BreakFalseDeps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CFGuardLongjmp.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CFIInstrInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CalcSpillWeights.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CallingConvLower.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGenCommonISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGenPassBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGenPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CommandFlags.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CriticalAntiDepBreaker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DFAPacketizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DeadMachineInstructionElim.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DetectDeadLanes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DwarfEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/EHContGuardCatchret.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/EarlyIfConversion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/EdgeBundles.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExecutionDomainFix.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandMemCmp.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandPostRAPseudos.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandReductions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandVectorPredication.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FEntryInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FaultMaps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FinalizeISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FixupStatepointCallerSaved.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FuncletLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GCMetadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GCMetadataPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GCRootLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalMerge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/HardwareLoops.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/IfConversion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ImplicitNullChecks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/IndirectBrExpandPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InlineSpiller.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InterferenceCache.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InterleavedAccessPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InterleavedLoadCombinePass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/IntrinsicLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LLVMTargetMachine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LatencyPriorityQueue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LexicalScopes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugVariables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveInterval.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveIntervalCalc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveIntervalUnion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveIntervals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LivePhysRegs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRangeCalc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRangeEdit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRangeShrink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRegMatrix.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRegUnits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveStacks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveVariables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LocalStackSlotAllocation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LoopTraversal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LowLevelType.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LowerEmuTLS.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MBFIWrapper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRCanonicalizerPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRFSDiscriminator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRNamerPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRPrintingPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRSampleProfile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRVRegNamerUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRYamlMapping.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MLRegallocEvictAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBasicBlock.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBlockPlacement.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBranchProbabilityInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCSE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCheckDebugify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCombiner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCopyPropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCycleAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineDebugify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineDominanceFrontier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineDominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFrameInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunctionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunctionPrinterPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunctionSplitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineInstr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineInstrBundle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineLICM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineLoopInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineLoopUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineModuleInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineModuleInfoImpls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineModuleSlotTracker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineOperand.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineOutliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachinePassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachinePipeliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachinePostDominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineRegionInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineRegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSSAContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSSAUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineScheduler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSizeOpts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineStableHash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineStripDebug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineTraceMetrics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MacroFusion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ModuloSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MultiHazardRecognizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/NonRelocatableStringpool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/OptimizePHIs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PHIElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PHIEliminationUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ParallelCG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PatchableFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PeepholeOptimizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PostRAHazardRecognizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PostRASchedulerList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PreISelIntrinsicLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ProcessImplicitDefs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PrologEpilogInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PseudoProbeInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PseudoSourceValue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RDFGraph.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RDFLiveness.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RDFRegisters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ReachingDefAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocBase.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocBasic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocEvictionAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocFast.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocGreedy.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocPBQP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocScore.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegUsageInfoCollector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegUsageInfoPropagate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterClassInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterCoalescer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterPressure.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterScavenging.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterUsageInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RemoveRedundantDebugValues.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RenameIndependentSubregs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ReplaceWithVeclib.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ResetMachineFunctionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SafeStack.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SafeStackLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScheduleDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScheduleDAGInstrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScheduleDAGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScoreboardHazardRecognizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ShadowStackGCLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ShrinkWrap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SjLjEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SlotIndexes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SpillPlacement.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SplitKit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackColoring.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackMapLivenessAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackMaps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackProtector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackSlotColoring.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SwiftErrorValueTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SwitchLoweringUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TailDuplication.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TailDuplicator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetFrameLoweringImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetInstrInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetLoweringBase.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetLoweringObjectFileImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetOptionsImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetPassConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetRegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetSubtargetInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TwoAddressInstructionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TypePromotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/UnreachableBlockElim.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/VLIWMachineScheduler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ValueTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/VirtRegMap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/WasmEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/WinEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/XRayInstrumentation.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/CodeGen/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..04e364985e23 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/CMakeLists.linux-x86_64.txt @@ -0,0 +1,240 @@ + +# 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(AsmPrinter) +add_subdirectory(GlobalISel) +add_subdirectory(SelectionDAG) + +add_library(llvm14-lib-CodeGen) +target_compile_options(llvm14-lib-CodeGen PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-CodeGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen +) +target_link_libraries(llvm14-lib-CodeGen PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + lib-Bitcode-Reader + lib-Bitcode-Writer + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-ProfileData + llvm14-lib-Support + llvm14-lib-Target + lib-Transforms-Scalar + lib-Transforms-Utils +) +target_sources(llvm14-lib-CodeGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AggressiveAntiDepBreaker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AllocationOrder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/Analysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AtomicExpandPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BasicBlockSections.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BasicTargetTransformInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BranchFolding.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BranchRelaxation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BreakFalseDeps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CFGuardLongjmp.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CFIInstrInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CalcSpillWeights.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CallingConvLower.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGenCommonISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGenPassBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGenPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CommandFlags.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CriticalAntiDepBreaker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DFAPacketizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DeadMachineInstructionElim.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DetectDeadLanes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DwarfEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/EHContGuardCatchret.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/EarlyIfConversion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/EdgeBundles.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExecutionDomainFix.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandMemCmp.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandPostRAPseudos.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandReductions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandVectorPredication.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FEntryInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FaultMaps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FinalizeISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FixupStatepointCallerSaved.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FuncletLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GCMetadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GCMetadataPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GCRootLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalMerge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/HardwareLoops.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/IfConversion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ImplicitNullChecks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/IndirectBrExpandPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InlineSpiller.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InterferenceCache.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InterleavedAccessPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InterleavedLoadCombinePass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/IntrinsicLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LLVMTargetMachine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LatencyPriorityQueue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LexicalScopes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugVariables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveInterval.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveIntervalCalc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveIntervalUnion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveIntervals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LivePhysRegs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRangeCalc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRangeEdit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRangeShrink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRegMatrix.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRegUnits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveStacks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveVariables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LocalStackSlotAllocation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LoopTraversal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LowLevelType.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LowerEmuTLS.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MBFIWrapper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRCanonicalizerPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRFSDiscriminator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRNamerPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRPrintingPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRSampleProfile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRVRegNamerUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRYamlMapping.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MLRegallocEvictAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBasicBlock.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBlockPlacement.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBranchProbabilityInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCSE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCheckDebugify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCombiner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCopyPropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCycleAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineDebugify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineDominanceFrontier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineDominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFrameInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunctionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunctionPrinterPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunctionSplitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineInstr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineInstrBundle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineLICM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineLoopInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineLoopUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineModuleInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineModuleInfoImpls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineModuleSlotTracker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineOperand.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineOutliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachinePassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachinePipeliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachinePostDominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineRegionInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineRegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSSAContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSSAUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineScheduler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSizeOpts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineStableHash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineStripDebug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineTraceMetrics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MacroFusion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ModuloSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MultiHazardRecognizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/NonRelocatableStringpool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/OptimizePHIs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PHIElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PHIEliminationUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ParallelCG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PatchableFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PeepholeOptimizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PostRAHazardRecognizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PostRASchedulerList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PreISelIntrinsicLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ProcessImplicitDefs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PrologEpilogInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PseudoProbeInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PseudoSourceValue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RDFGraph.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RDFLiveness.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RDFRegisters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ReachingDefAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocBase.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocBasic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocEvictionAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocFast.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocGreedy.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocPBQP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocScore.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegUsageInfoCollector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegUsageInfoPropagate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterClassInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterCoalescer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterPressure.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterScavenging.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterUsageInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RemoveRedundantDebugValues.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RenameIndependentSubregs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ReplaceWithVeclib.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ResetMachineFunctionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SafeStack.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SafeStackLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScheduleDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScheduleDAGInstrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScheduleDAGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScoreboardHazardRecognizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ShadowStackGCLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ShrinkWrap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SjLjEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SlotIndexes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SpillPlacement.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SplitKit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackColoring.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackMapLivenessAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackMaps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackProtector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackSlotColoring.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SwiftErrorValueTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SwitchLoweringUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TailDuplication.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TailDuplicator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetFrameLoweringImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetInstrInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetLoweringBase.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetLoweringObjectFileImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetOptionsImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetPassConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetRegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetSubtargetInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TwoAddressInstructionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TypePromotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/UnreachableBlockElim.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/VLIWMachineScheduler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ValueTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/VirtRegMap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/WasmEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/WinEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/XRayInstrumentation.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/CMakeLists.txt b/contrib/libs/llvm14/lib/CodeGen/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/CodeGen/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/CodeGen/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..70993ab3c5c6 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/CMakeLists.windows-x86_64.txt @@ -0,0 +1,239 @@ + +# 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(AsmPrinter) +add_subdirectory(GlobalISel) +add_subdirectory(SelectionDAG) + +add_library(llvm14-lib-CodeGen) +target_compile_options(llvm14-lib-CodeGen PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-CodeGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen +) +target_link_libraries(llvm14-lib-CodeGen PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + lib-Bitcode-Reader + lib-Bitcode-Writer + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-ProfileData + llvm14-lib-Support + llvm14-lib-Target + lib-Transforms-Scalar + lib-Transforms-Utils +) +target_sources(llvm14-lib-CodeGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AggressiveAntiDepBreaker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AllocationOrder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/Analysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/AtomicExpandPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BasicBlockSections.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BasicTargetTransformInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BranchFolding.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BranchRelaxation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/BreakFalseDeps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CFGuardLongjmp.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CFIInstrInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CalcSpillWeights.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CallingConvLower.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGenCommonISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGenPassBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CodeGenPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CommandFlags.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/CriticalAntiDepBreaker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DFAPacketizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DeadMachineInstructionElim.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DetectDeadLanes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/DwarfEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/EHContGuardCatchret.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/EarlyIfConversion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/EdgeBundles.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExecutionDomainFix.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandMemCmp.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandPostRAPseudos.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandReductions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ExpandVectorPredication.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FEntryInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FaultMaps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FinalizeISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FixupStatepointCallerSaved.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/FuncletLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GCMetadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GCMetadataPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GCRootLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalMerge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/HardwareLoops.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/IfConversion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ImplicitNullChecks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/IndirectBrExpandPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InlineSpiller.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InterferenceCache.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InterleavedAccessPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/InterleavedLoadCombinePass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/IntrinsicLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LLVMTargetMachine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LatencyPriorityQueue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LexicalScopes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveDebugVariables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveInterval.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveIntervalCalc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveIntervalUnion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveIntervals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LivePhysRegs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRangeCalc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRangeEdit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRangeShrink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRegMatrix.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveRegUnits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveStacks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LiveVariables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LocalStackSlotAllocation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LoopTraversal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LowLevelType.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/LowerEmuTLS.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MBFIWrapper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRCanonicalizerPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRFSDiscriminator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRNamerPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRPrintingPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRSampleProfile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRVRegNamerUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MIRYamlMapping.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MLRegallocEvictAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBasicBlock.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBlockFrequencyInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBlockPlacement.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineBranchProbabilityInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCSE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCheckDebugify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCombiner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCopyPropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineCycleAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineDebugify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineDominanceFrontier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineDominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFrameInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunctionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunctionPrinterPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineFunctionSplitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineInstr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineInstrBundle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineLICM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineLoopInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineLoopUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineModuleInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineModuleInfoImpls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineModuleSlotTracker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineOperand.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineOutliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachinePassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachinePipeliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachinePostDominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineRegionInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineRegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSSAContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSSAUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineScheduler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineSizeOpts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineStableHash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineStripDebug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineTraceMetrics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MachineVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MacroFusion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ModuloSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/MultiHazardRecognizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/NonRelocatableStringpool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/OptimizePHIs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PHIElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PHIEliminationUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ParallelCG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PatchableFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PeepholeOptimizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PostRAHazardRecognizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PostRASchedulerList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PreISelIntrinsicLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ProcessImplicitDefs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PrologEpilogInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PseudoProbeInserter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/PseudoSourceValue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RDFGraph.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RDFLiveness.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RDFRegisters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ReachingDefAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocBase.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocBasic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocEvictionAdvisor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocFast.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocGreedy.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocPBQP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegAllocScore.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegUsageInfoCollector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegUsageInfoPropagate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterClassInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterCoalescer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterPressure.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterScavenging.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RegisterUsageInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RemoveRedundantDebugValues.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/RenameIndependentSubregs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ReplaceWithVeclib.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ResetMachineFunctionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SafeStack.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SafeStackLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScheduleDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScheduleDAGInstrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScheduleDAGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ScoreboardHazardRecognizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ShadowStackGCLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ShrinkWrap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SjLjEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SlotIndexes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SpillPlacement.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SplitKit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackColoring.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackMapLivenessAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackMaps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackProtector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/StackSlotColoring.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SwiftErrorValueTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SwitchLoweringUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TailDuplication.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TailDuplicator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetFrameLoweringImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetInstrInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetLoweringBase.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetLoweringObjectFileImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetOptionsImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetPassConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetRegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TargetSubtargetInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TwoAddressInstructionPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/TypePromotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/UnreachableBlockElim.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/VLIWMachineScheduler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/ValueTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/VirtRegMap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/WasmEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/WinEHPrepare.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/XRayInstrumentation.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..514c2baa2f58 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.darwin-arm64.txt @@ -0,0 +1,57 @@ + +# 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(lib-CodeGen-GlobalISel) +target_compile_options(lib-CodeGen-GlobalISel PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-CodeGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel +) +target_link_libraries(lib-CodeGen-GlobalISel PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-CodeGen + lib-CodeGen-SelectionDAG + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support + llvm14-lib-Target + lib-Transforms-Utils +) +target_sources(lib-CodeGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CSEInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CallLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Combiner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CombinerHelper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/GISelChangeObserver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/GISelKnownBits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/GlobalISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/IRTranslator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/InstructionSelect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/InstructionSelector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegacyLegalizerInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalityPredicates.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalizeMutations.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Legalizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalizerHelper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalizerInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Localizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LostDebugLocObserver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/RegBankSelect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/RegisterBank.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Utils.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..514c2baa2f58 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,57 @@ + +# 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(lib-CodeGen-GlobalISel) +target_compile_options(lib-CodeGen-GlobalISel PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-CodeGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel +) +target_link_libraries(lib-CodeGen-GlobalISel PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-CodeGen + lib-CodeGen-SelectionDAG + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support + llvm14-lib-Target + lib-Transforms-Utils +) +target_sources(lib-CodeGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CSEInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CallLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Combiner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CombinerHelper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/GISelChangeObserver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/GISelKnownBits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/GlobalISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/IRTranslator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/InstructionSelect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/InstructionSelector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegacyLegalizerInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalityPredicates.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalizeMutations.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Legalizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalizerHelper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalizerInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Localizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LostDebugLocObserver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/RegBankSelect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/RegisterBank.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Utils.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..ed55f6e511a0 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.linux-aarch64.txt @@ -0,0 +1,58 @@ + +# 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(lib-CodeGen-GlobalISel) +target_compile_options(lib-CodeGen-GlobalISel PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-CodeGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel +) +target_link_libraries(lib-CodeGen-GlobalISel PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-CodeGen + lib-CodeGen-SelectionDAG + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support + llvm14-lib-Target + lib-Transforms-Utils +) +target_sources(lib-CodeGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CSEInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CallLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Combiner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CombinerHelper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/GISelChangeObserver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/GISelKnownBits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/GlobalISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/IRTranslator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/InstructionSelect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/InstructionSelector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegacyLegalizerInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalityPredicates.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalizeMutations.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Legalizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalizerHelper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalizerInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Localizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LostDebugLocObserver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/RegBankSelect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/RegisterBank.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Utils.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..ed55f6e511a0 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.linux-x86_64.txt @@ -0,0 +1,58 @@ + +# 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(lib-CodeGen-GlobalISel) +target_compile_options(lib-CodeGen-GlobalISel PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-CodeGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel +) +target_link_libraries(lib-CodeGen-GlobalISel PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-CodeGen + lib-CodeGen-SelectionDAG + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support + llvm14-lib-Target + lib-Transforms-Utils +) +target_sources(lib-CodeGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CSEInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CallLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Combiner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CombinerHelper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/GISelChangeObserver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/GISelKnownBits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/GlobalISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/IRTranslator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/InstructionSelect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/InstructionSelector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegacyLegalizerInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalityPredicates.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalizeMutations.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Legalizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalizerHelper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalizerInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Localizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LostDebugLocObserver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/RegBankSelect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/RegisterBank.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Utils.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.txt b/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..514c2baa2f58 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CMakeLists.windows-x86_64.txt @@ -0,0 +1,57 @@ + +# 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(lib-CodeGen-GlobalISel) +target_compile_options(lib-CodeGen-GlobalISel PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-CodeGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel +) +target_link_libraries(lib-CodeGen-GlobalISel PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-CodeGen + lib-CodeGen-SelectionDAG + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support + llvm14-lib-Target + lib-Transforms-Utils +) +target_sources(lib-CodeGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CSEInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CallLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Combiner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/CombinerHelper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/GISelChangeObserver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/GISelKnownBits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/GlobalISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/IRTranslator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/InlineAsmLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/InstructionSelect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/InstructionSelector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegacyLegalizerInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalityPredicates.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalizeMutations.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Legalizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalizerHelper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LegalizerInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Localizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/LostDebugLocObserver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/RegBankSelect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/RegisterBank.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/GlobalISel/Utils.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..4690a1148401 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.darwin-arm64.txt @@ -0,0 +1,55 @@ + +# 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(lib-CodeGen-SelectionDAG) +target_compile_options(lib-CodeGen-SelectionDAG PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-CodeGen-SelectionDAG PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG +) +target_link_libraries(lib-CodeGen-SelectionDAG PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-CodeGen + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support + llvm14-lib-Target + lib-Transforms-Utils +) +target_sources(lib-CodeGen-SelectionDAG PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/DAGCombiner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/FastISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/InstrEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/StatepointLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/TargetLowering.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..4690a1148401 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,55 @@ + +# 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(lib-CodeGen-SelectionDAG) +target_compile_options(lib-CodeGen-SelectionDAG PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-CodeGen-SelectionDAG PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG +) +target_link_libraries(lib-CodeGen-SelectionDAG PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-CodeGen + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support + llvm14-lib-Target + lib-Transforms-Utils +) +target_sources(lib-CodeGen-SelectionDAG PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/DAGCombiner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/FastISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/InstrEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/StatepointLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/TargetLowering.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..b85c8b90245c --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.linux-aarch64.txt @@ -0,0 +1,56 @@ + +# 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(lib-CodeGen-SelectionDAG) +target_compile_options(lib-CodeGen-SelectionDAG PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-CodeGen-SelectionDAG PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG +) +target_link_libraries(lib-CodeGen-SelectionDAG PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-CodeGen + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support + llvm14-lib-Target + lib-Transforms-Utils +) +target_sources(lib-CodeGen-SelectionDAG PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/DAGCombiner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/FastISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/InstrEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/StatepointLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/TargetLowering.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..b85c8b90245c --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.linux-x86_64.txt @@ -0,0 +1,56 @@ + +# 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(lib-CodeGen-SelectionDAG) +target_compile_options(lib-CodeGen-SelectionDAG PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-CodeGen-SelectionDAG PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG +) +target_link_libraries(lib-CodeGen-SelectionDAG PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-CodeGen + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support + llvm14-lib-Target + lib-Transforms-Utils +) +target_sources(lib-CodeGen-SelectionDAG PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/DAGCombiner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/FastISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/InstrEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/StatepointLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/TargetLowering.cpp +) diff --git a/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.txt b/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..4690a1148401 --- /dev/null +++ b/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/CMakeLists.windows-x86_64.txt @@ -0,0 +1,55 @@ + +# 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(lib-CodeGen-SelectionDAG) +target_compile_options(lib-CodeGen-SelectionDAG PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-CodeGen-SelectionDAG PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG +) +target_link_libraries(lib-CodeGen-SelectionDAG PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-CodeGen + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support + llvm14-lib-Target + lib-Transforms-Utils +) +target_sources(lib-CodeGen-SelectionDAG PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/DAGCombiner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/FastISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/InstrEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/StatepointLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/CodeGen/SelectionDAG/TargetLowering.cpp +) diff --git a/contrib/libs/llvm14/lib/DebugInfo/CMakeLists.txt b/contrib/libs/llvm14/lib/DebugInfo/CMakeLists.txt new file mode 100644 index 000000000000..705bb739960c --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/CMakeLists.txt @@ -0,0 +1,11 @@ + +# 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(CodeView) +add_subdirectory(DWARF) +add_subdirectory(MSF) diff --git a/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..205c53b4e2c8 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.darwin-arm64.txt @@ -0,0 +1,63 @@ + +# 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(lib-DebugInfo-CodeView) +target_compile_options(lib-DebugInfo-CodeView PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-DebugInfo-CodeView PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView +) +target_link_libraries(lib-DebugInfo-CodeView PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(lib-DebugInfo-CodeView PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CVTypeVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CodeViewError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugChecksumsSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugCrossExSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugLinesSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSymbolRVASubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSymbolsSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/EnumTables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/Formatters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/Line.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/RecordName.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/RecordSerialization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/StringsAndChecksums.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolDumper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeHashing.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeRecordMapping.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeStreamMerger.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeTableCollection.cpp +) diff --git a/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..205c53b4e2c8 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,63 @@ + +# 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(lib-DebugInfo-CodeView) +target_compile_options(lib-DebugInfo-CodeView PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-DebugInfo-CodeView PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView +) +target_link_libraries(lib-DebugInfo-CodeView PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(lib-DebugInfo-CodeView PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CVTypeVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CodeViewError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugChecksumsSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugCrossExSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugLinesSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSymbolRVASubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSymbolsSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/EnumTables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/Formatters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/Line.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/RecordName.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/RecordSerialization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/StringsAndChecksums.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolDumper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeHashing.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeRecordMapping.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeStreamMerger.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeTableCollection.cpp +) diff --git a/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..f3cfd2dde253 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.linux-aarch64.txt @@ -0,0 +1,64 @@ + +# 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(lib-DebugInfo-CodeView) +target_compile_options(lib-DebugInfo-CodeView PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-DebugInfo-CodeView PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView +) +target_link_libraries(lib-DebugInfo-CodeView PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(lib-DebugInfo-CodeView PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CVTypeVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CodeViewError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugChecksumsSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugCrossExSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugLinesSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSymbolRVASubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSymbolsSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/EnumTables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/Formatters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/Line.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/RecordName.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/RecordSerialization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/StringsAndChecksums.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolDumper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeHashing.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeRecordMapping.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeStreamMerger.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeTableCollection.cpp +) diff --git a/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..f3cfd2dde253 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.linux-x86_64.txt @@ -0,0 +1,64 @@ + +# 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(lib-DebugInfo-CodeView) +target_compile_options(lib-DebugInfo-CodeView PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-DebugInfo-CodeView PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView +) +target_link_libraries(lib-DebugInfo-CodeView PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(lib-DebugInfo-CodeView PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CVTypeVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CodeViewError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugChecksumsSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugCrossExSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugLinesSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSymbolRVASubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSymbolsSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/EnumTables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/Formatters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/Line.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/RecordName.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/RecordSerialization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/StringsAndChecksums.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolDumper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeHashing.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeRecordMapping.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeStreamMerger.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeTableCollection.cpp +) diff --git a/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.txt b/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..205c53b4e2c8 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/CodeView/CMakeLists.windows-x86_64.txt @@ -0,0 +1,63 @@ + +# 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(lib-DebugInfo-CodeView) +target_compile_options(lib-DebugInfo-CodeView PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-DebugInfo-CodeView PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView +) +target_link_libraries(lib-DebugInfo-CodeView PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(lib-DebugInfo-CodeView PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CVTypeVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CodeViewError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugChecksumsSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugCrossExSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugLinesSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSymbolRVASubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/DebugSymbolsSubsection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/EnumTables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/Formatters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/Line.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/RecordName.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/RecordSerialization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/StringsAndChecksums.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolDumper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/SymbolSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeHashing.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeRecordHelpers.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeRecordMapping.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeStreamMerger.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/CodeView/TypeTableCollection.cpp +) diff --git a/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..0706657462c0 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.darwin-arm64.txt @@ -0,0 +1,54 @@ + +# 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(lib-DebugInfo-DWARF) +target_compile_options(lib-DebugInfo-DWARF PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-DebugInfo-DWARF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF +) +target_link_libraries(lib-DebugInfo-DWARF PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-BinaryFormat + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-DebugInfo-DWARF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFAddressRange.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugLine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDie.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFExpression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFFormValue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFListTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFLocationExpression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFVerifier.cpp +) diff --git a/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..0706657462c0 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,54 @@ + +# 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(lib-DebugInfo-DWARF) +target_compile_options(lib-DebugInfo-DWARF PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-DebugInfo-DWARF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF +) +target_link_libraries(lib-DebugInfo-DWARF PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-BinaryFormat + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-DebugInfo-DWARF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFAddressRange.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugLine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDie.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFExpression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFFormValue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFListTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFLocationExpression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFVerifier.cpp +) diff --git a/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..9622ab8887e7 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.linux-aarch64.txt @@ -0,0 +1,55 @@ + +# 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(lib-DebugInfo-DWARF) +target_compile_options(lib-DebugInfo-DWARF PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-DebugInfo-DWARF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF +) +target_link_libraries(lib-DebugInfo-DWARF PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-BinaryFormat + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-DebugInfo-DWARF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFAddressRange.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugLine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDie.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFExpression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFFormValue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFListTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFLocationExpression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFVerifier.cpp +) diff --git a/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..9622ab8887e7 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.linux-x86_64.txt @@ -0,0 +1,55 @@ + +# 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(lib-DebugInfo-DWARF) +target_compile_options(lib-DebugInfo-DWARF PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-DebugInfo-DWARF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF +) +target_link_libraries(lib-DebugInfo-DWARF PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-BinaryFormat + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-DebugInfo-DWARF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFAddressRange.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugLine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDie.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFExpression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFFormValue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFListTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFLocationExpression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFVerifier.cpp +) diff --git a/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.txt b/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..0706657462c0 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/DWARF/CMakeLists.windows-x86_64.txt @@ -0,0 +1,54 @@ + +# 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(lib-DebugInfo-DWARF) +target_compile_options(lib-DebugInfo-DWARF PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-DebugInfo-DWARF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF +) +target_link_libraries(lib-DebugInfo-DWARF PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-BinaryFormat + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-DebugInfo-DWARF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFAddressRange.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugAddr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugInfoEntry.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugLine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFDie.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFExpression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFFormValue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFGdbIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFListTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFLocationExpression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFUnit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/DWARF/DWARFVerifier.cpp +) diff --git a/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..bd654324b7a8 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.darwin-arm64.txt @@ -0,0 +1,27 @@ + +# 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(lib-DebugInfo-MSF) +target_compile_options(lib-DebugInfo-MSF PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-DebugInfo-MSF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF +) +target_link_libraries(lib-DebugInfo-MSF PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(lib-DebugInfo-MSF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MSFBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MSFCommon.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MSFError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MappedBlockStream.cpp +) diff --git a/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..bd654324b7a8 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,27 @@ + +# 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(lib-DebugInfo-MSF) +target_compile_options(lib-DebugInfo-MSF PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-DebugInfo-MSF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF +) +target_link_libraries(lib-DebugInfo-MSF PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(lib-DebugInfo-MSF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MSFBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MSFCommon.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MSFError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MappedBlockStream.cpp +) diff --git a/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..1a9e4ab85a4a --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.linux-aarch64.txt @@ -0,0 +1,28 @@ + +# 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(lib-DebugInfo-MSF) +target_compile_options(lib-DebugInfo-MSF PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-DebugInfo-MSF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF +) +target_link_libraries(lib-DebugInfo-MSF PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(lib-DebugInfo-MSF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MSFBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MSFCommon.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MSFError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MappedBlockStream.cpp +) diff --git a/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..1a9e4ab85a4a --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.linux-x86_64.txt @@ -0,0 +1,28 @@ + +# 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(lib-DebugInfo-MSF) +target_compile_options(lib-DebugInfo-MSF PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-DebugInfo-MSF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF +) +target_link_libraries(lib-DebugInfo-MSF PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(lib-DebugInfo-MSF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MSFBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MSFCommon.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MSFError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MappedBlockStream.cpp +) diff --git a/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.txt b/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..bd654324b7a8 --- /dev/null +++ b/contrib/libs/llvm14/lib/DebugInfo/MSF/CMakeLists.windows-x86_64.txt @@ -0,0 +1,27 @@ + +# 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(lib-DebugInfo-MSF) +target_compile_options(lib-DebugInfo-MSF PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-DebugInfo-MSF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF +) +target_link_libraries(lib-DebugInfo-MSF PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(lib-DebugInfo-MSF PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MSFBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MSFCommon.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MSFError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/DebugInfo/MSF/MappedBlockStream.cpp +) diff --git a/contrib/libs/llvm14/lib/Demangle/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Demangle/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..c5555bbab0fe --- /dev/null +++ b/contrib/libs/llvm14/lib/Demangle/CMakeLists.darwin-arm64.txt @@ -0,0 +1,28 @@ + +# 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(llvm14-lib-Demangle) +target_compile_options(llvm14-lib-Demangle PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Demangle PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle +) +target_link_libraries(llvm14-lib-Demangle PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 +) +target_sources(llvm14-lib-Demangle PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/DLangDemangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/Demangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/ItaniumDemangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/MicrosoftDemangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/MicrosoftDemangleNodes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/RustDemangle.cpp +) diff --git a/contrib/libs/llvm14/lib/Demangle/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Demangle/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..c5555bbab0fe --- /dev/null +++ b/contrib/libs/llvm14/lib/Demangle/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,28 @@ + +# 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(llvm14-lib-Demangle) +target_compile_options(llvm14-lib-Demangle PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Demangle PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle +) +target_link_libraries(llvm14-lib-Demangle PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 +) +target_sources(llvm14-lib-Demangle PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/DLangDemangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/Demangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/ItaniumDemangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/MicrosoftDemangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/MicrosoftDemangleNodes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/RustDemangle.cpp +) diff --git a/contrib/libs/llvm14/lib/Demangle/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Demangle/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..87c499e92ffd --- /dev/null +++ b/contrib/libs/llvm14/lib/Demangle/CMakeLists.linux-aarch64.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(llvm14-lib-Demangle) +target_compile_options(llvm14-lib-Demangle PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Demangle PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle +) +target_link_libraries(llvm14-lib-Demangle PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 +) +target_sources(llvm14-lib-Demangle PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/DLangDemangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/Demangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/ItaniumDemangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/MicrosoftDemangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/MicrosoftDemangleNodes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/RustDemangle.cpp +) diff --git a/contrib/libs/llvm14/lib/Demangle/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Demangle/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..87c499e92ffd --- /dev/null +++ b/contrib/libs/llvm14/lib/Demangle/CMakeLists.linux-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(llvm14-lib-Demangle) +target_compile_options(llvm14-lib-Demangle PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Demangle PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle +) +target_link_libraries(llvm14-lib-Demangle PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 +) +target_sources(llvm14-lib-Demangle PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/DLangDemangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/Demangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/ItaniumDemangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/MicrosoftDemangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/MicrosoftDemangleNodes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/RustDemangle.cpp +) diff --git a/contrib/libs/llvm14/lib/Demangle/CMakeLists.txt b/contrib/libs/llvm14/lib/Demangle/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Demangle/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Demangle/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Demangle/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..c5555bbab0fe --- /dev/null +++ b/contrib/libs/llvm14/lib/Demangle/CMakeLists.windows-x86_64.txt @@ -0,0 +1,28 @@ + +# 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(llvm14-lib-Demangle) +target_compile_options(llvm14-lib-Demangle PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Demangle PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle +) +target_link_libraries(llvm14-lib-Demangle PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 +) +target_sources(llvm14-lib-Demangle PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/DLangDemangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/Demangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/ItaniumDemangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/MicrosoftDemangle.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/MicrosoftDemangleNodes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Demangle/RustDemangle.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..9296b409e5fa --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.darwin-arm64.txt @@ -0,0 +1,38 @@ + +# 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(MCJIT) +add_subdirectory(Orc) +add_subdirectory(RuntimeDyld) + +add_library(llvm14-lib-ExecutionEngine) +target_compile_options(llvm14-lib-ExecutionEngine PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-ExecutionEngine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine +) +target_link_libraries(llvm14-lib-ExecutionEngine PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + ExecutionEngine-Orc-TargetProcess + lib-ExecutionEngine-RuntimeDyld + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support + llvm14-lib-Target +) +target_sources(llvm14-lib-ExecutionEngine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/ExecutionEngine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/ExecutionEngineBindings.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/GDBRegistrationListener.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/SectionMemoryManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/TargetSelect.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..9296b409e5fa --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,38 @@ + +# 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(MCJIT) +add_subdirectory(Orc) +add_subdirectory(RuntimeDyld) + +add_library(llvm14-lib-ExecutionEngine) +target_compile_options(llvm14-lib-ExecutionEngine PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-ExecutionEngine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine +) +target_link_libraries(llvm14-lib-ExecutionEngine PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + ExecutionEngine-Orc-TargetProcess + lib-ExecutionEngine-RuntimeDyld + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support + llvm14-lib-Target +) +target_sources(llvm14-lib-ExecutionEngine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/ExecutionEngine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/ExecutionEngineBindings.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/GDBRegistrationListener.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/SectionMemoryManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/TargetSelect.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..2654c1046b43 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.linux-aarch64.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_subdirectory(MCJIT) +add_subdirectory(Orc) +add_subdirectory(PerfJITEvents) +add_subdirectory(RuntimeDyld) + +add_library(llvm14-lib-ExecutionEngine) +target_compile_options(llvm14-lib-ExecutionEngine PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-ExecutionEngine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine +) +target_link_libraries(llvm14-lib-ExecutionEngine PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + ExecutionEngine-Orc-TargetProcess + lib-ExecutionEngine-RuntimeDyld + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support + llvm14-lib-Target +) +target_sources(llvm14-lib-ExecutionEngine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/ExecutionEngine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/ExecutionEngineBindings.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/GDBRegistrationListener.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/SectionMemoryManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/TargetSelect.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..2654c1046b43 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.linux-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_subdirectory(MCJIT) +add_subdirectory(Orc) +add_subdirectory(PerfJITEvents) +add_subdirectory(RuntimeDyld) + +add_library(llvm14-lib-ExecutionEngine) +target_compile_options(llvm14-lib-ExecutionEngine PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-ExecutionEngine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine +) +target_link_libraries(llvm14-lib-ExecutionEngine PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + ExecutionEngine-Orc-TargetProcess + lib-ExecutionEngine-RuntimeDyld + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support + llvm14-lib-Target +) +target_sources(llvm14-lib-ExecutionEngine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/ExecutionEngine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/ExecutionEngineBindings.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/GDBRegistrationListener.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/SectionMemoryManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/TargetSelect.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.txt b/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..9296b409e5fa --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/CMakeLists.windows-x86_64.txt @@ -0,0 +1,38 @@ + +# 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(MCJIT) +add_subdirectory(Orc) +add_subdirectory(RuntimeDyld) + +add_library(llvm14-lib-ExecutionEngine) +target_compile_options(llvm14-lib-ExecutionEngine PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-ExecutionEngine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine +) +target_link_libraries(llvm14-lib-ExecutionEngine PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + ExecutionEngine-Orc-TargetProcess + lib-ExecutionEngine-RuntimeDyld + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support + llvm14-lib-Target +) +target_sources(llvm14-lib-ExecutionEngine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/ExecutionEngine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/ExecutionEngineBindings.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/GDBRegistrationListener.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/SectionMemoryManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/TargetSelect.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..c198fef469e7 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/CMakeLists.darwin-arm64.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(lib-ExecutionEngine-MCJIT) +target_compile_options(lib-ExecutionEngine-MCJIT PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-ExecutionEngine-MCJIT PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT +) +target_link_libraries(lib-ExecutionEngine-MCJIT PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-ExecutionEngine + lib-ExecutionEngine-RuntimeDyld + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support + llvm14-lib-Target +) +target_sources(lib-ExecutionEngine-MCJIT PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/MCJIT.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..c198fef469e7 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/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(lib-ExecutionEngine-MCJIT) +target_compile_options(lib-ExecutionEngine-MCJIT PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-ExecutionEngine-MCJIT PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT +) +target_link_libraries(lib-ExecutionEngine-MCJIT PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-ExecutionEngine + lib-ExecutionEngine-RuntimeDyld + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support + llvm14-lib-Target +) +target_sources(lib-ExecutionEngine-MCJIT PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/MCJIT.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..71a6b55b9af4 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/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(lib-ExecutionEngine-MCJIT) +target_compile_options(lib-ExecutionEngine-MCJIT PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-ExecutionEngine-MCJIT PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT +) +target_link_libraries(lib-ExecutionEngine-MCJIT PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-ExecutionEngine + lib-ExecutionEngine-RuntimeDyld + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support + llvm14-lib-Target +) +target_sources(lib-ExecutionEngine-MCJIT PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/MCJIT.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..71a6b55b9af4 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/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(lib-ExecutionEngine-MCJIT) +target_compile_options(lib-ExecutionEngine-MCJIT PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-ExecutionEngine-MCJIT PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT +) +target_link_libraries(lib-ExecutionEngine-MCJIT PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-ExecutionEngine + lib-ExecutionEngine-RuntimeDyld + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support + llvm14-lib-Target +) +target_sources(lib-ExecutionEngine-MCJIT PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/MCJIT.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/CMakeLists.txt b/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..c198fef469e7 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/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(lib-ExecutionEngine-MCJIT) +target_compile_options(lib-ExecutionEngine-MCJIT PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-ExecutionEngine-MCJIT PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT +) +target_link_libraries(lib-ExecutionEngine-MCJIT PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-ExecutionEngine + lib-ExecutionEngine-RuntimeDyld + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support + llvm14-lib-Target +) +target_sources(lib-ExecutionEngine-MCJIT PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/MCJIT/MCJIT.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/Orc/CMakeLists.txt b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/CMakeLists.txt new file mode 100644 index 000000000000..6ce684aa0a47 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/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(Shared) +add_subdirectory(TargetProcess) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..bb133cbb7765 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.darwin-arm64.txt @@ -0,0 +1,27 @@ + +# 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(ExecutionEngine-Orc-Shared) +target_compile_options(ExecutionEngine-Orc-Shared PRIVATE + $,,-Wno-everything> +) +target_include_directories(ExecutionEngine-Orc-Shared PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared +) +target_link_libraries(ExecutionEngine-Orc-Shared PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(ExecutionEngine-Orc-Shared PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/AllocationActions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/OrcError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..bb133cbb7765 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,27 @@ + +# 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(ExecutionEngine-Orc-Shared) +target_compile_options(ExecutionEngine-Orc-Shared PRIVATE + $,,-Wno-everything> +) +target_include_directories(ExecutionEngine-Orc-Shared PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared +) +target_link_libraries(ExecutionEngine-Orc-Shared PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(ExecutionEngine-Orc-Shared PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/AllocationActions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/OrcError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..715d2dd7a1b3 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.linux-aarch64.txt @@ -0,0 +1,28 @@ + +# 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(ExecutionEngine-Orc-Shared) +target_compile_options(ExecutionEngine-Orc-Shared PRIVATE + $,,-Wno-everything> +) +target_include_directories(ExecutionEngine-Orc-Shared PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared +) +target_link_libraries(ExecutionEngine-Orc-Shared PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(ExecutionEngine-Orc-Shared PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/AllocationActions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/OrcError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..715d2dd7a1b3 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.linux-x86_64.txt @@ -0,0 +1,28 @@ + +# 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(ExecutionEngine-Orc-Shared) +target_compile_options(ExecutionEngine-Orc-Shared PRIVATE + $,,-Wno-everything> +) +target_include_directories(ExecutionEngine-Orc-Shared PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared +) +target_link_libraries(ExecutionEngine-Orc-Shared PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(ExecutionEngine-Orc-Shared PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/AllocationActions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/OrcError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.txt b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..bb133cbb7765 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/CMakeLists.windows-x86_64.txt @@ -0,0 +1,27 @@ + +# 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(ExecutionEngine-Orc-Shared) +target_compile_options(ExecutionEngine-Orc-Shared PRIVATE + $,,-Wno-everything> +) +target_include_directories(ExecutionEngine-Orc-Shared PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared +) +target_link_libraries(ExecutionEngine-Orc-Shared PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(ExecutionEngine-Orc-Shared PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/AllocationActions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/OrcError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..ff3144cc9dce --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.darwin-arm64.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(ExecutionEngine-Orc-TargetProcess) +target_compile_options(ExecutionEngine-Orc-TargetProcess PRIVATE + $,,-Wno-everything> +) +target_include_directories(ExecutionEngine-Orc-TargetProcess PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess +) +target_link_libraries(ExecutionEngine-Orc-TargetProcess PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + ExecutionEngine-Orc-Shared + llvm14-lib-Support +) +target_sources(ExecutionEngine-Orc-TargetProcess PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorDylibManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/TargetExecutionUtils.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..ff3144cc9dce --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.darwin-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(ExecutionEngine-Orc-TargetProcess) +target_compile_options(ExecutionEngine-Orc-TargetProcess PRIVATE + $,,-Wno-everything> +) +target_include_directories(ExecutionEngine-Orc-TargetProcess PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess +) +target_link_libraries(ExecutionEngine-Orc-TargetProcess PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + ExecutionEngine-Orc-Shared + llvm14-lib-Support +) +target_sources(ExecutionEngine-Orc-TargetProcess PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorDylibManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/TargetExecutionUtils.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..c5206f3b0bcb --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.linux-aarch64.txt @@ -0,0 +1,32 @@ + +# 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(ExecutionEngine-Orc-TargetProcess) +target_compile_options(ExecutionEngine-Orc-TargetProcess PRIVATE + $,,-Wno-everything> +) +target_include_directories(ExecutionEngine-Orc-TargetProcess PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess +) +target_link_libraries(ExecutionEngine-Orc-TargetProcess PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + ExecutionEngine-Orc-Shared + llvm14-lib-Support +) +target_sources(ExecutionEngine-Orc-TargetProcess PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorDylibManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/TargetExecutionUtils.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..c5206f3b0bcb --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.linux-x86_64.txt @@ -0,0 +1,32 @@ + +# 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(ExecutionEngine-Orc-TargetProcess) +target_compile_options(ExecutionEngine-Orc-TargetProcess PRIVATE + $,,-Wno-everything> +) +target_include_directories(ExecutionEngine-Orc-TargetProcess PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess +) +target_link_libraries(ExecutionEngine-Orc-TargetProcess PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + ExecutionEngine-Orc-Shared + llvm14-lib-Support +) +target_sources(ExecutionEngine-Orc-TargetProcess PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorDylibManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/TargetExecutionUtils.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.txt b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..ff3144cc9dce --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/CMakeLists.windows-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(ExecutionEngine-Orc-TargetProcess) +target_compile_options(ExecutionEngine-Orc-TargetProcess PRIVATE + $,,-Wno-everything> +) +target_include_directories(ExecutionEngine-Orc-TargetProcess PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess +) +target_link_libraries(ExecutionEngine-Orc-TargetProcess PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + ExecutionEngine-Orc-Shared + llvm14-lib-Support +) +target_sources(ExecutionEngine-Orc-TargetProcess PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorDylibManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/Orc/TargetProcess/TargetExecutionUtils.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/PerfJITEvents/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/PerfJITEvents/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..8444459360f3 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/PerfJITEvents/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(lib-ExecutionEngine-PerfJITEvents) +target_compile_options(lib-ExecutionEngine-PerfJITEvents PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-ExecutionEngine-PerfJITEvents PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/PerfJITEvents +) +target_link_libraries(lib-ExecutionEngine-PerfJITEvents PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-CodeGen + lib-DebugInfo-DWARF + llvm14-lib-ExecutionEngine + lib-ExecutionEngine-RuntimeDyld + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-ExecutionEngine-PerfJITEvents PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/PerfJITEvents/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/PerfJITEvents/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..8444459360f3 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/PerfJITEvents/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(lib-ExecutionEngine-PerfJITEvents) +target_compile_options(lib-ExecutionEngine-PerfJITEvents PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-ExecutionEngine-PerfJITEvents PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/PerfJITEvents +) +target_link_libraries(lib-ExecutionEngine-PerfJITEvents PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-CodeGen + lib-DebugInfo-DWARF + llvm14-lib-ExecutionEngine + lib-ExecutionEngine-RuntimeDyld + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-ExecutionEngine-PerfJITEvents PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/PerfJITEvents/CMakeLists.txt b/contrib/libs/llvm14/lib/ExecutionEngine/PerfJITEvents/CMakeLists.txt new file mode 100644 index 000000000000..d6c5c0bbeb44 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/PerfJITEvents/CMakeLists.txt @@ -0,0 +1,13 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-aarch64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..2a8da1b66cf6 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.darwin-arm64.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. + + + +add_library(lib-ExecutionEngine-RuntimeDyld) +target_compile_options(lib-ExecutionEngine-RuntimeDyld PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-ExecutionEngine-RuntimeDyld PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld +) +target_link_libraries(lib-ExecutionEngine-RuntimeDyld PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-ExecutionEngine-RuntimeDyld PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..2a8da1b66cf6 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.darwin-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. + + + +add_library(lib-ExecutionEngine-RuntimeDyld) +target_compile_options(lib-ExecutionEngine-RuntimeDyld PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-ExecutionEngine-RuntimeDyld PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld +) +target_link_libraries(lib-ExecutionEngine-RuntimeDyld PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-ExecutionEngine-RuntimeDyld PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..455fbc159542 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.linux-aarch64.txt @@ -0,0 +1,36 @@ + +# 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(lib-ExecutionEngine-RuntimeDyld) +target_compile_options(lib-ExecutionEngine-RuntimeDyld PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-ExecutionEngine-RuntimeDyld PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld +) +target_link_libraries(lib-ExecutionEngine-RuntimeDyld PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-ExecutionEngine-RuntimeDyld PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..455fbc159542 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.linux-x86_64.txt @@ -0,0 +1,36 @@ + +# 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(lib-ExecutionEngine-RuntimeDyld) +target_compile_options(lib-ExecutionEngine-RuntimeDyld PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-ExecutionEngine-RuntimeDyld PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld +) +target_link_libraries(lib-ExecutionEngine-RuntimeDyld PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-ExecutionEngine-RuntimeDyld PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp +) diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt b/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..2a8da1b66cf6 --- /dev/null +++ b/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/CMakeLists.windows-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. + + + +add_library(lib-ExecutionEngine-RuntimeDyld) +target_compile_options(lib-ExecutionEngine-RuntimeDyld PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-ExecutionEngine-RuntimeDyld PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld +) +target_link_libraries(lib-ExecutionEngine-RuntimeDyld PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(lib-ExecutionEngine-RuntimeDyld PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp +) diff --git a/contrib/libs/llvm14/lib/Frontend/CMakeLists.txt b/contrib/libs/llvm14/lib/Frontend/CMakeLists.txt new file mode 100644 index 000000000000..2f3f84b97767 --- /dev/null +++ b/contrib/libs/llvm14/lib/Frontend/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(OpenMP) diff --git a/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..e16d150dc18a --- /dev/null +++ b/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.darwin-arm64.txt @@ -0,0 +1,32 @@ + +# 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(lib-Frontend-OpenMP) +target_compile_options(lib-Frontend-OpenMP PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Frontend-OpenMP PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP +) +target_link_libraries(lib-Frontend-OpenMP PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support + lib-Transforms-Scalar + lib-Transforms-Utils +) +target_sources(lib-Frontend-OpenMP PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP/OMP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP/OMPContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP/OMPIRBuilder.cpp +) diff --git a/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..e16d150dc18a --- /dev/null +++ b/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,32 @@ + +# 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(lib-Frontend-OpenMP) +target_compile_options(lib-Frontend-OpenMP PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Frontend-OpenMP PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP +) +target_link_libraries(lib-Frontend-OpenMP PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support + lib-Transforms-Scalar + lib-Transforms-Utils +) +target_sources(lib-Frontend-OpenMP PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP/OMP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP/OMPContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP/OMPIRBuilder.cpp +) diff --git a/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..61a99b1331ee --- /dev/null +++ b/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.linux-aarch64.txt @@ -0,0 +1,33 @@ + +# 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(lib-Frontend-OpenMP) +target_compile_options(lib-Frontend-OpenMP PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Frontend-OpenMP PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP +) +target_link_libraries(lib-Frontend-OpenMP PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support + lib-Transforms-Scalar + lib-Transforms-Utils +) +target_sources(lib-Frontend-OpenMP PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP/OMP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP/OMPContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP/OMPIRBuilder.cpp +) diff --git a/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..61a99b1331ee --- /dev/null +++ b/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.linux-x86_64.txt @@ -0,0 +1,33 @@ + +# 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(lib-Frontend-OpenMP) +target_compile_options(lib-Frontend-OpenMP PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Frontend-OpenMP PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP +) +target_link_libraries(lib-Frontend-OpenMP PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support + lib-Transforms-Scalar + lib-Transforms-Utils +) +target_sources(lib-Frontend-OpenMP PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP/OMP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP/OMPContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP/OMPIRBuilder.cpp +) diff --git a/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.txt b/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..e16d150dc18a --- /dev/null +++ b/contrib/libs/llvm14/lib/Frontend/OpenMP/CMakeLists.windows-x86_64.txt @@ -0,0 +1,32 @@ + +# 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(lib-Frontend-OpenMP) +target_compile_options(lib-Frontend-OpenMP PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Frontend-OpenMP PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP +) +target_link_libraries(lib-Frontend-OpenMP PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support + lib-Transforms-Scalar + lib-Transforms-Utils +) +target_sources(lib-Frontend-OpenMP PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP/OMP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP/OMPContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Frontend/OpenMP/OMPIRBuilder.cpp +) diff --git a/contrib/libs/llvm14/lib/IR/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/IR/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..ae3ebd8a1505 --- /dev/null +++ b/contrib/libs/llvm14/lib/IR/CMakeLists.darwin-arm64.txt @@ -0,0 +1,89 @@ + +# 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(llvm14-lib-IR) +target_compile_options(llvm14-lib-IR PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-IR PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR +) +target_link_libraries(llvm14-lib-IR PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-Remarks + llvm14-lib-Support +) +target_sources(llvm14-lib-IR PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/AbstractCallSite.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/AsmWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Assumptions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Attributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/AutoUpgrade.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/BasicBlock.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/BuiltinGCs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Comdat.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ConstantFold.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ConstantRange.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Constants.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Core.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DIBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DataLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DebugInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DebugInfoMetadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DebugLoc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DiagnosticHandler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DiagnosticInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DiagnosticPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Dominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/FPEnv.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Function.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/GCStrategy.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/GVMaterializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Globals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/IRBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/IRPrintingPasses.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/InlineAsm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Instruction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Instructions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/IntrinsicInst.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LLVMContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LLVMContextImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LLVMRemarkStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LegacyPassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/MDBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Mangler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Metadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Module.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ModuleSummaryIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Operator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/OptBisect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Pass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassInstrumentation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassRegistry.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassTimingInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PrintPasses.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ProfileSummary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PseudoProbe.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ReplaceConstant.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/SSAContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/SafepointIRVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Statepoint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/StructuralHash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Type.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/TypeFinder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Use.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/User.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Value.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ValueSymbolTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Verifier.cpp +) diff --git a/contrib/libs/llvm14/lib/IR/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/IR/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..ae3ebd8a1505 --- /dev/null +++ b/contrib/libs/llvm14/lib/IR/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,89 @@ + +# 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(llvm14-lib-IR) +target_compile_options(llvm14-lib-IR PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-IR PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR +) +target_link_libraries(llvm14-lib-IR PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-Remarks + llvm14-lib-Support +) +target_sources(llvm14-lib-IR PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/AbstractCallSite.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/AsmWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Assumptions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Attributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/AutoUpgrade.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/BasicBlock.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/BuiltinGCs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Comdat.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ConstantFold.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ConstantRange.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Constants.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Core.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DIBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DataLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DebugInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DebugInfoMetadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DebugLoc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DiagnosticHandler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DiagnosticInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DiagnosticPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Dominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/FPEnv.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Function.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/GCStrategy.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/GVMaterializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Globals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/IRBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/IRPrintingPasses.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/InlineAsm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Instruction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Instructions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/IntrinsicInst.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LLVMContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LLVMContextImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LLVMRemarkStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LegacyPassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/MDBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Mangler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Metadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Module.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ModuleSummaryIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Operator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/OptBisect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Pass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassInstrumentation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassRegistry.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassTimingInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PrintPasses.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ProfileSummary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PseudoProbe.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ReplaceConstant.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/SSAContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/SafepointIRVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Statepoint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/StructuralHash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Type.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/TypeFinder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Use.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/User.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Value.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ValueSymbolTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Verifier.cpp +) diff --git a/contrib/libs/llvm14/lib/IR/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/IR/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..10e4eb21e124 --- /dev/null +++ b/contrib/libs/llvm14/lib/IR/CMakeLists.linux-aarch64.txt @@ -0,0 +1,90 @@ + +# 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(llvm14-lib-IR) +target_compile_options(llvm14-lib-IR PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-IR PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR +) +target_link_libraries(llvm14-lib-IR PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-Remarks + llvm14-lib-Support +) +target_sources(llvm14-lib-IR PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/AbstractCallSite.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/AsmWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Assumptions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Attributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/AutoUpgrade.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/BasicBlock.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/BuiltinGCs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Comdat.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ConstantFold.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ConstantRange.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Constants.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Core.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DIBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DataLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DebugInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DebugInfoMetadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DebugLoc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DiagnosticHandler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DiagnosticInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DiagnosticPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Dominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/FPEnv.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Function.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/GCStrategy.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/GVMaterializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Globals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/IRBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/IRPrintingPasses.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/InlineAsm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Instruction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Instructions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/IntrinsicInst.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LLVMContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LLVMContextImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LLVMRemarkStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LegacyPassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/MDBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Mangler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Metadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Module.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ModuleSummaryIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Operator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/OptBisect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Pass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassInstrumentation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassRegistry.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassTimingInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PrintPasses.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ProfileSummary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PseudoProbe.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ReplaceConstant.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/SSAContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/SafepointIRVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Statepoint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/StructuralHash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Type.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/TypeFinder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Use.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/User.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Value.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ValueSymbolTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Verifier.cpp +) diff --git a/contrib/libs/llvm14/lib/IR/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/IR/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..10e4eb21e124 --- /dev/null +++ b/contrib/libs/llvm14/lib/IR/CMakeLists.linux-x86_64.txt @@ -0,0 +1,90 @@ + +# 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(llvm14-lib-IR) +target_compile_options(llvm14-lib-IR PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-IR PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR +) +target_link_libraries(llvm14-lib-IR PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-Remarks + llvm14-lib-Support +) +target_sources(llvm14-lib-IR PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/AbstractCallSite.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/AsmWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Assumptions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Attributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/AutoUpgrade.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/BasicBlock.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/BuiltinGCs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Comdat.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ConstantFold.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ConstantRange.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Constants.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Core.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DIBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DataLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DebugInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DebugInfoMetadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DebugLoc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DiagnosticHandler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DiagnosticInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DiagnosticPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Dominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/FPEnv.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Function.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/GCStrategy.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/GVMaterializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Globals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/IRBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/IRPrintingPasses.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/InlineAsm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Instruction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Instructions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/IntrinsicInst.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LLVMContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LLVMContextImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LLVMRemarkStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LegacyPassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/MDBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Mangler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Metadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Module.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ModuleSummaryIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Operator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/OptBisect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Pass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassInstrumentation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassRegistry.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassTimingInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PrintPasses.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ProfileSummary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PseudoProbe.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ReplaceConstant.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/SSAContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/SafepointIRVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Statepoint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/StructuralHash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Type.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/TypeFinder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Use.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/User.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Value.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ValueSymbolTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Verifier.cpp +) diff --git a/contrib/libs/llvm14/lib/IR/CMakeLists.txt b/contrib/libs/llvm14/lib/IR/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/IR/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/IR/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/IR/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..ae3ebd8a1505 --- /dev/null +++ b/contrib/libs/llvm14/lib/IR/CMakeLists.windows-x86_64.txt @@ -0,0 +1,89 @@ + +# 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(llvm14-lib-IR) +target_compile_options(llvm14-lib-IR PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-IR PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR +) +target_link_libraries(llvm14-lib-IR PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-Remarks + llvm14-lib-Support +) +target_sources(llvm14-lib-IR PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/AbstractCallSite.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/AsmWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Assumptions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Attributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/AutoUpgrade.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/BasicBlock.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/BuiltinGCs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Comdat.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ConstantFold.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ConstantRange.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Constants.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Core.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DIBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DataLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DebugInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DebugInfoMetadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DebugLoc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DiagnosticHandler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DiagnosticInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/DiagnosticPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Dominators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/FPEnv.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Function.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/GCStrategy.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/GVMaterializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Globals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/IRBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/IRPrintingPasses.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/InlineAsm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Instruction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Instructions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/IntrinsicInst.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LLVMContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LLVMContextImpl.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LLVMRemarkStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/LegacyPassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/MDBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Mangler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Metadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Module.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ModuleSummaryIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Operator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/OptBisect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Pass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassInstrumentation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassRegistry.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PassTimingInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PrintPasses.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ProfileSummary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/PseudoProbe.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ReplaceConstant.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/SSAContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/SafepointIRVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Statepoint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/StructuralHash.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Type.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/TypeFinder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Use.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/User.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Value.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/ValueSymbolTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IR/Verifier.cpp +) diff --git a/contrib/libs/llvm14/lib/IRReader/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/IRReader/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..e43858882e31 --- /dev/null +++ b/contrib/libs/llvm14/lib/IRReader/CMakeLists.darwin-arm64.txt @@ -0,0 +1,28 @@ + +# 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(llvm14-lib-IRReader) +target_compile_options(llvm14-lib-IRReader PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-IRReader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IRReader +) +target_link_libraries(llvm14-lib-IRReader PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-AsmParser + lib-Bitcode-Reader + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(llvm14-lib-IRReader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IRReader/IRReader.cpp +) diff --git a/contrib/libs/llvm14/lib/IRReader/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/IRReader/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..e43858882e31 --- /dev/null +++ b/contrib/libs/llvm14/lib/IRReader/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,28 @@ + +# 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(llvm14-lib-IRReader) +target_compile_options(llvm14-lib-IRReader PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-IRReader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IRReader +) +target_link_libraries(llvm14-lib-IRReader PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-AsmParser + lib-Bitcode-Reader + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(llvm14-lib-IRReader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IRReader/IRReader.cpp +) diff --git a/contrib/libs/llvm14/lib/IRReader/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/IRReader/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..814a19102f3c --- /dev/null +++ b/contrib/libs/llvm14/lib/IRReader/CMakeLists.linux-aarch64.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(llvm14-lib-IRReader) +target_compile_options(llvm14-lib-IRReader PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-IRReader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IRReader +) +target_link_libraries(llvm14-lib-IRReader PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-AsmParser + lib-Bitcode-Reader + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(llvm14-lib-IRReader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IRReader/IRReader.cpp +) diff --git a/contrib/libs/llvm14/lib/IRReader/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/IRReader/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..814a19102f3c --- /dev/null +++ b/contrib/libs/llvm14/lib/IRReader/CMakeLists.linux-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(llvm14-lib-IRReader) +target_compile_options(llvm14-lib-IRReader PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-IRReader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IRReader +) +target_link_libraries(llvm14-lib-IRReader PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-AsmParser + lib-Bitcode-Reader + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(llvm14-lib-IRReader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IRReader/IRReader.cpp +) diff --git a/contrib/libs/llvm14/lib/IRReader/CMakeLists.txt b/contrib/libs/llvm14/lib/IRReader/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/IRReader/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/IRReader/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/IRReader/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..e43858882e31 --- /dev/null +++ b/contrib/libs/llvm14/lib/IRReader/CMakeLists.windows-x86_64.txt @@ -0,0 +1,28 @@ + +# 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(llvm14-lib-IRReader) +target_compile_options(llvm14-lib-IRReader PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-IRReader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IRReader +) +target_link_libraries(llvm14-lib-IRReader PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-AsmParser + lib-Bitcode-Reader + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(llvm14-lib-IRReader PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/IRReader/IRReader.cpp +) diff --git a/contrib/libs/llvm14/lib/Linker/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Linker/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..a9fbd64b68f8 --- /dev/null +++ b/contrib/libs/llvm14/lib/Linker/CMakeLists.darwin-arm64.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(llvm14-lib-Linker) +target_compile_options(llvm14-lib-Linker PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Linker PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Linker +) +target_link_libraries(llvm14-lib-Linker PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(llvm14-lib-Linker PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Linker/IRMover.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Linker/LinkModules.cpp +) diff --git a/contrib/libs/llvm14/lib/Linker/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Linker/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..a9fbd64b68f8 --- /dev/null +++ b/contrib/libs/llvm14/lib/Linker/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(llvm14-lib-Linker) +target_compile_options(llvm14-lib-Linker PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Linker PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Linker +) +target_link_libraries(llvm14-lib-Linker PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(llvm14-lib-Linker PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Linker/IRMover.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Linker/LinkModules.cpp +) diff --git a/contrib/libs/llvm14/lib/Linker/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Linker/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..b0456f1bcead --- /dev/null +++ b/contrib/libs/llvm14/lib/Linker/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(llvm14-lib-Linker) +target_compile_options(llvm14-lib-Linker PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Linker PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Linker +) +target_link_libraries(llvm14-lib-Linker PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(llvm14-lib-Linker PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Linker/IRMover.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Linker/LinkModules.cpp +) diff --git a/contrib/libs/llvm14/lib/Linker/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Linker/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..b0456f1bcead --- /dev/null +++ b/contrib/libs/llvm14/lib/Linker/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(llvm14-lib-Linker) +target_compile_options(llvm14-lib-Linker PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Linker PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Linker +) +target_link_libraries(llvm14-lib-Linker PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(llvm14-lib-Linker PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Linker/IRMover.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Linker/LinkModules.cpp +) diff --git a/contrib/libs/llvm14/lib/Linker/CMakeLists.txt b/contrib/libs/llvm14/lib/Linker/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Linker/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Linker/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Linker/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..a9fbd64b68f8 --- /dev/null +++ b/contrib/libs/llvm14/lib/Linker/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(llvm14-lib-Linker) +target_compile_options(llvm14-lib-Linker PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Linker PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Linker +) +target_link_libraries(llvm14-lib-Linker PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(llvm14-lib-Linker PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Linker/IRMover.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Linker/LinkModules.cpp +) diff --git a/contrib/libs/llvm14/lib/MC/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/MC/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..06bbcfc20eab --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/CMakeLists.darwin-arm64.txt @@ -0,0 +1,92 @@ + +# 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(MCDisassembler) +add_subdirectory(MCParser) + +add_library(llvm14-lib-MC) +target_compile_options(llvm14-lib-MC PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-MC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC +) +target_link_libraries(llvm14-lib-MC PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-BinaryFormat + lib-DebugInfo-CodeView + llvm14-lib-Support +) +target_sources(llvm14-lib-MC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/ConstantPools.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/ELFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoDarwin.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoGOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoWasm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoXCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmMacro.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAssembler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCCodeEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCCodeView.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDwarf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCELFObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCELFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCExpr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCFragment.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInst.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstrAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstrDesc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstrInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCLabel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCLinkerOptimizationHint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCMachOStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCMachObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCNullStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCObjectFileInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCObjectStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCPseudoProbe.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCRegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionMachO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionWasm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionXCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSubtargetInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSymbol.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSymbolELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSymbolXCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCTargetOptions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCTargetOptionsCommandFlags.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCValue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWasmObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWasmStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWin64EH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWinCOFFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWinEH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCXCOFFObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCXCOFFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MachObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/StringTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/SubtargetFeature.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/TargetRegistry.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/WasmObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/WinCOFFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/XCOFFObjectWriter.cpp +) diff --git a/contrib/libs/llvm14/lib/MC/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/MC/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..06bbcfc20eab --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,92 @@ + +# 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(MCDisassembler) +add_subdirectory(MCParser) + +add_library(llvm14-lib-MC) +target_compile_options(llvm14-lib-MC PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-MC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC +) +target_link_libraries(llvm14-lib-MC PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-BinaryFormat + lib-DebugInfo-CodeView + llvm14-lib-Support +) +target_sources(llvm14-lib-MC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/ConstantPools.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/ELFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoDarwin.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoGOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoWasm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoXCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmMacro.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAssembler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCCodeEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCCodeView.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDwarf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCELFObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCELFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCExpr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCFragment.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInst.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstrAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstrDesc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstrInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCLabel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCLinkerOptimizationHint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCMachOStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCMachObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCNullStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCObjectFileInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCObjectStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCPseudoProbe.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCRegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionMachO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionWasm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionXCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSubtargetInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSymbol.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSymbolELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSymbolXCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCTargetOptions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCTargetOptionsCommandFlags.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCValue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWasmObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWasmStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWin64EH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWinCOFFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWinEH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCXCOFFObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCXCOFFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MachObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/StringTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/SubtargetFeature.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/TargetRegistry.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/WasmObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/WinCOFFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/XCOFFObjectWriter.cpp +) diff --git a/contrib/libs/llvm14/lib/MC/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/MC/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..1aada8620f3d --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/CMakeLists.linux-aarch64.txt @@ -0,0 +1,93 @@ + +# 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(MCDisassembler) +add_subdirectory(MCParser) + +add_library(llvm14-lib-MC) +target_compile_options(llvm14-lib-MC PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-MC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC +) +target_link_libraries(llvm14-lib-MC PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-BinaryFormat + lib-DebugInfo-CodeView + llvm14-lib-Support +) +target_sources(llvm14-lib-MC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/ConstantPools.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/ELFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoDarwin.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoGOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoWasm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoXCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmMacro.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAssembler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCCodeEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCCodeView.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDwarf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCELFObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCELFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCExpr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCFragment.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInst.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstrAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstrDesc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstrInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCLabel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCLinkerOptimizationHint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCMachOStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCMachObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCNullStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCObjectFileInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCObjectStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCPseudoProbe.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCRegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionMachO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionWasm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionXCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSubtargetInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSymbol.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSymbolELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSymbolXCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCTargetOptions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCTargetOptionsCommandFlags.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCValue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWasmObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWasmStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWin64EH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWinCOFFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWinEH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCXCOFFObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCXCOFFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MachObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/StringTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/SubtargetFeature.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/TargetRegistry.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/WasmObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/WinCOFFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/XCOFFObjectWriter.cpp +) diff --git a/contrib/libs/llvm14/lib/MC/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/MC/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..1aada8620f3d --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/CMakeLists.linux-x86_64.txt @@ -0,0 +1,93 @@ + +# 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(MCDisassembler) +add_subdirectory(MCParser) + +add_library(llvm14-lib-MC) +target_compile_options(llvm14-lib-MC PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-MC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC +) +target_link_libraries(llvm14-lib-MC PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-BinaryFormat + lib-DebugInfo-CodeView + llvm14-lib-Support +) +target_sources(llvm14-lib-MC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/ConstantPools.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/ELFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoDarwin.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoGOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoWasm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoXCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmMacro.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAssembler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCCodeEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCCodeView.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDwarf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCELFObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCELFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCExpr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCFragment.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInst.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstrAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstrDesc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstrInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCLabel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCLinkerOptimizationHint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCMachOStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCMachObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCNullStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCObjectFileInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCObjectStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCPseudoProbe.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCRegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionMachO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionWasm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionXCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSubtargetInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSymbol.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSymbolELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSymbolXCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCTargetOptions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCTargetOptionsCommandFlags.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCValue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWasmObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWasmStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWin64EH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWinCOFFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWinEH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCXCOFFObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCXCOFFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MachObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/StringTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/SubtargetFeature.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/TargetRegistry.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/WasmObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/WinCOFFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/XCOFFObjectWriter.cpp +) diff --git a/contrib/libs/llvm14/lib/MC/CMakeLists.txt b/contrib/libs/llvm14/lib/MC/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/MC/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/MC/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..06bbcfc20eab --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/CMakeLists.windows-x86_64.txt @@ -0,0 +1,92 @@ + +# 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(MCDisassembler) +add_subdirectory(MCParser) + +add_library(llvm14-lib-MC) +target_compile_options(llvm14-lib-MC PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-MC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC +) +target_link_libraries(llvm14-lib-MC PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-BinaryFormat + lib-DebugInfo-CodeView + llvm14-lib-Support +) +target_sources(llvm14-lib-MC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/ConstantPools.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/ELFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoDarwin.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoGOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoWasm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmInfoXCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmMacro.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAsmStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCAssembler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCCodeEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCCodeView.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDwarf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCELFObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCELFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCExpr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCFragment.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInst.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstrAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstrDesc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCInstrInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCLabel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCLinkerOptimizationHint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCMachOStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCMachObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCNullStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCObjectFileInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCObjectStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCPseudoProbe.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCRegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSection.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionMachO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionWasm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSectionXCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSubtargetInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSymbol.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSymbolELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCSymbolXCOFF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCTargetOptions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCTargetOptionsCommandFlags.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCValue.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWasmObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWasmStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWin64EH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWinCOFFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCWinEH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCXCOFFObjectTargetWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCXCOFFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MachObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/StringTableBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/SubtargetFeature.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/TargetRegistry.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/WasmObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/WinCOFFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/XCOFFObjectWriter.cpp +) diff --git a/contrib/libs/llvm14/lib/MC/MCDisassembler/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/MC/MCDisassembler/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..b9fe49fdcdd3 --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/MCDisassembler/CMakeLists.darwin-arm64.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(lib-MC-MCDisassembler) +target_compile_options(lib-MC-MCDisassembler PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-MC-MCDisassembler PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler +) +target_link_libraries(lib-MC-MCDisassembler PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(lib-MC-MCDisassembler PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/Disassembler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCDisassembler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCRelocationInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCSymbolizer.cpp +) diff --git a/contrib/libs/llvm14/lib/MC/MCDisassembler/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/MC/MCDisassembler/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..b9fe49fdcdd3 --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/MCDisassembler/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(lib-MC-MCDisassembler) +target_compile_options(lib-MC-MCDisassembler PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-MC-MCDisassembler PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler +) +target_link_libraries(lib-MC-MCDisassembler PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(lib-MC-MCDisassembler PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/Disassembler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCDisassembler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCRelocationInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCSymbolizer.cpp +) diff --git a/contrib/libs/llvm14/lib/MC/MCDisassembler/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/MC/MCDisassembler/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..095467d9075c --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/MCDisassembler/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(lib-MC-MCDisassembler) +target_compile_options(lib-MC-MCDisassembler PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-MC-MCDisassembler PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler +) +target_link_libraries(lib-MC-MCDisassembler PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(lib-MC-MCDisassembler PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/Disassembler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCDisassembler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCRelocationInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCSymbolizer.cpp +) diff --git a/contrib/libs/llvm14/lib/MC/MCDisassembler/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/MC/MCDisassembler/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..095467d9075c --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/MCDisassembler/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(lib-MC-MCDisassembler) +target_compile_options(lib-MC-MCDisassembler PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-MC-MCDisassembler PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler +) +target_link_libraries(lib-MC-MCDisassembler PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(lib-MC-MCDisassembler PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/Disassembler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCDisassembler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCRelocationInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCSymbolizer.cpp +) diff --git a/contrib/libs/llvm14/lib/MC/MCDisassembler/CMakeLists.txt b/contrib/libs/llvm14/lib/MC/MCDisassembler/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/MCDisassembler/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/MC/MCDisassembler/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/MC/MCDisassembler/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..b9fe49fdcdd3 --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/MCDisassembler/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(lib-MC-MCDisassembler) +target_compile_options(lib-MC-MCDisassembler PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-MC-MCDisassembler PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler +) +target_link_libraries(lib-MC-MCDisassembler PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(lib-MC-MCDisassembler PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/Disassembler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCDisassembler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCRelocationInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCDisassembler/MCSymbolizer.cpp +) diff --git a/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..401c179ee88a --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.darwin-arm64.txt @@ -0,0 +1,38 @@ + +# 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(lib-MC-MCParser) +target_compile_options(lib-MC-MCParser PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-MC-MCParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser +) +target_link_libraries(lib-MC-MCParser PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(lib-MC-MCParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/AsmLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/AsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/COFFAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/COFFMasmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/DarwinAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/ELFAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/GOFFAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCAsmLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCAsmParserExtension.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCTargetAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MasmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/WasmAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/XCOFFAsmParser.cpp +) diff --git a/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..401c179ee88a --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,38 @@ + +# 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(lib-MC-MCParser) +target_compile_options(lib-MC-MCParser PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-MC-MCParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser +) +target_link_libraries(lib-MC-MCParser PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(lib-MC-MCParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/AsmLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/AsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/COFFAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/COFFMasmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/DarwinAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/ELFAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/GOFFAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCAsmLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCAsmParserExtension.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCTargetAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MasmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/WasmAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/XCOFFAsmParser.cpp +) diff --git a/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..3d79d4a27434 --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.linux-aarch64.txt @@ -0,0 +1,39 @@ + +# 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(lib-MC-MCParser) +target_compile_options(lib-MC-MCParser PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-MC-MCParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser +) +target_link_libraries(lib-MC-MCParser PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(lib-MC-MCParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/AsmLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/AsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/COFFAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/COFFMasmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/DarwinAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/ELFAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/GOFFAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCAsmLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCAsmParserExtension.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCTargetAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MasmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/WasmAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/XCOFFAsmParser.cpp +) diff --git a/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..3d79d4a27434 --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.linux-x86_64.txt @@ -0,0 +1,39 @@ + +# 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(lib-MC-MCParser) +target_compile_options(lib-MC-MCParser PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-MC-MCParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser +) +target_link_libraries(lib-MC-MCParser PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(lib-MC-MCParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/AsmLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/AsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/COFFAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/COFFMasmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/DarwinAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/ELFAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/GOFFAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCAsmLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCAsmParserExtension.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCTargetAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MasmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/WasmAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/XCOFFAsmParser.cpp +) diff --git a/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.txt b/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..401c179ee88a --- /dev/null +++ b/contrib/libs/llvm14/lib/MC/MCParser/CMakeLists.windows-x86_64.txt @@ -0,0 +1,38 @@ + +# 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(lib-MC-MCParser) +target_compile_options(lib-MC-MCParser PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-MC-MCParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser +) +target_link_libraries(lib-MC-MCParser PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(lib-MC-MCParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/AsmLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/AsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/COFFAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/COFFMasmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/DarwinAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/ELFAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/GOFFAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCAsmLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCAsmParserExtension.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MCTargetAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/MasmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/WasmAsmParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/MC/MCParser/XCOFFAsmParser.cpp +) diff --git a/contrib/libs/llvm14/lib/Object/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Object/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..53c7496168b2 --- /dev/null +++ b/contrib/libs/llvm14/lib/Object/CMakeLists.darwin-arm64.txt @@ -0,0 +1,60 @@ + +# 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(llvm14-lib-Object) +target_compile_options(llvm14-lib-Object PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Object PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object +) +target_link_libraries(llvm14-lib-Object PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + lib-Bitcode-Reader + llvm14-lib-IR + llvm14-lib-MC + lib-MC-MCParser + llvm14-lib-Support + llvm14-lib-TextAPI +) +target_sources(llvm14-lib-Object PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Archive.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ArchiveWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Binary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/COFFImportFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/COFFModuleDefinition.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/COFFObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Decompressor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ELFObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/FaultMapParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/IRObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/IRSymtab.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/MachOObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/MachOUniversal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/MachOUniversalWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Minidump.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ModuleSymbolTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Object.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/RecordStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/RelocationResolver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/SymbolSize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/SymbolicFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/TapiFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/TapiUniversal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/WasmObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/WindowsMachineFlag.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/WindowsResource.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/XCOFFObjectFile.cpp +) diff --git a/contrib/libs/llvm14/lib/Object/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Object/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..53c7496168b2 --- /dev/null +++ b/contrib/libs/llvm14/lib/Object/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,60 @@ + +# 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(llvm14-lib-Object) +target_compile_options(llvm14-lib-Object PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Object PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object +) +target_link_libraries(llvm14-lib-Object PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + lib-Bitcode-Reader + llvm14-lib-IR + llvm14-lib-MC + lib-MC-MCParser + llvm14-lib-Support + llvm14-lib-TextAPI +) +target_sources(llvm14-lib-Object PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Archive.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ArchiveWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Binary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/COFFImportFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/COFFModuleDefinition.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/COFFObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Decompressor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ELFObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/FaultMapParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/IRObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/IRSymtab.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/MachOObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/MachOUniversal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/MachOUniversalWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Minidump.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ModuleSymbolTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Object.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/RecordStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/RelocationResolver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/SymbolSize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/SymbolicFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/TapiFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/TapiUniversal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/WasmObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/WindowsMachineFlag.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/WindowsResource.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/XCOFFObjectFile.cpp +) diff --git a/contrib/libs/llvm14/lib/Object/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Object/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..750c087a34ce --- /dev/null +++ b/contrib/libs/llvm14/lib/Object/CMakeLists.linux-aarch64.txt @@ -0,0 +1,61 @@ + +# 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(llvm14-lib-Object) +target_compile_options(llvm14-lib-Object PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Object PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object +) +target_link_libraries(llvm14-lib-Object PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + lib-Bitcode-Reader + llvm14-lib-IR + llvm14-lib-MC + lib-MC-MCParser + llvm14-lib-Support + llvm14-lib-TextAPI +) +target_sources(llvm14-lib-Object PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Archive.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ArchiveWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Binary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/COFFImportFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/COFFModuleDefinition.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/COFFObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Decompressor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ELFObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/FaultMapParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/IRObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/IRSymtab.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/MachOObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/MachOUniversal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/MachOUniversalWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Minidump.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ModuleSymbolTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Object.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/RecordStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/RelocationResolver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/SymbolSize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/SymbolicFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/TapiFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/TapiUniversal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/WasmObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/WindowsMachineFlag.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/WindowsResource.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/XCOFFObjectFile.cpp +) diff --git a/contrib/libs/llvm14/lib/Object/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Object/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..750c087a34ce --- /dev/null +++ b/contrib/libs/llvm14/lib/Object/CMakeLists.linux-x86_64.txt @@ -0,0 +1,61 @@ + +# 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(llvm14-lib-Object) +target_compile_options(llvm14-lib-Object PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Object PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object +) +target_link_libraries(llvm14-lib-Object PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + lib-Bitcode-Reader + llvm14-lib-IR + llvm14-lib-MC + lib-MC-MCParser + llvm14-lib-Support + llvm14-lib-TextAPI +) +target_sources(llvm14-lib-Object PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Archive.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ArchiveWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Binary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/COFFImportFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/COFFModuleDefinition.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/COFFObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Decompressor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ELFObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/FaultMapParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/IRObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/IRSymtab.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/MachOObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/MachOUniversal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/MachOUniversalWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Minidump.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ModuleSymbolTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Object.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/RecordStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/RelocationResolver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/SymbolSize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/SymbolicFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/TapiFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/TapiUniversal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/WasmObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/WindowsMachineFlag.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/WindowsResource.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/XCOFFObjectFile.cpp +) diff --git a/contrib/libs/llvm14/lib/Object/CMakeLists.txt b/contrib/libs/llvm14/lib/Object/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Object/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Object/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Object/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..53c7496168b2 --- /dev/null +++ b/contrib/libs/llvm14/lib/Object/CMakeLists.windows-x86_64.txt @@ -0,0 +1,60 @@ + +# 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(llvm14-lib-Object) +target_compile_options(llvm14-lib-Object PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Object PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object +) +target_link_libraries(llvm14-lib-Object PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + lib-Bitcode-Reader + llvm14-lib-IR + llvm14-lib-MC + lib-MC-MCParser + llvm14-lib-Support + llvm14-lib-TextAPI +) +target_sources(llvm14-lib-Object PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Archive.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ArchiveWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Binary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/COFFImportFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/COFFModuleDefinition.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/COFFObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Decompressor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ELF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ELFObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/FaultMapParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/IRObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/IRSymtab.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/MachOObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/MachOUniversal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/MachOUniversalWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Minidump.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ModuleSymbolTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/Object.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/ObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/RecordStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/RelocationResolver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/SymbolSize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/SymbolicFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/TapiFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/TapiUniversal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/WasmObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/WindowsMachineFlag.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/WindowsResource.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Object/XCOFFObjectFile.cpp +) diff --git a/contrib/libs/llvm14/lib/ProfileData/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/ProfileData/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..59de7575b123 --- /dev/null +++ b/contrib/libs/llvm14/lib/ProfileData/CMakeLists.darwin-arm64.txt @@ -0,0 +1,38 @@ + +# 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(llvm14-lib-ProfileData) +target_compile_options(llvm14-lib-ProfileData PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-ProfileData PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData +) +target_link_libraries(llvm14-lib-ProfileData PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + lib-DebugInfo-DWARF + llvm14-lib-Demangle + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(llvm14-lib-ProfileData PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/GCOV.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProfCorrelator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProfReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProfWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/ProfileSummaryBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/RawMemProfReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/SampleProf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/SampleProfReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/SampleProfWriter.cpp +) diff --git a/contrib/libs/llvm14/lib/ProfileData/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/ProfileData/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..59de7575b123 --- /dev/null +++ b/contrib/libs/llvm14/lib/ProfileData/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,38 @@ + +# 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(llvm14-lib-ProfileData) +target_compile_options(llvm14-lib-ProfileData PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-ProfileData PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData +) +target_link_libraries(llvm14-lib-ProfileData PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + lib-DebugInfo-DWARF + llvm14-lib-Demangle + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(llvm14-lib-ProfileData PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/GCOV.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProfCorrelator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProfReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProfWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/ProfileSummaryBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/RawMemProfReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/SampleProf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/SampleProfReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/SampleProfWriter.cpp +) diff --git a/contrib/libs/llvm14/lib/ProfileData/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/ProfileData/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..f3fb87b8f237 --- /dev/null +++ b/contrib/libs/llvm14/lib/ProfileData/CMakeLists.linux-aarch64.txt @@ -0,0 +1,39 @@ + +# 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(llvm14-lib-ProfileData) +target_compile_options(llvm14-lib-ProfileData PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-ProfileData PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData +) +target_link_libraries(llvm14-lib-ProfileData PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + lib-DebugInfo-DWARF + llvm14-lib-Demangle + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(llvm14-lib-ProfileData PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/GCOV.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProfCorrelator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProfReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProfWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/ProfileSummaryBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/RawMemProfReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/SampleProf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/SampleProfReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/SampleProfWriter.cpp +) diff --git a/contrib/libs/llvm14/lib/ProfileData/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/ProfileData/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..f3fb87b8f237 --- /dev/null +++ b/contrib/libs/llvm14/lib/ProfileData/CMakeLists.linux-x86_64.txt @@ -0,0 +1,39 @@ + +# 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(llvm14-lib-ProfileData) +target_compile_options(llvm14-lib-ProfileData PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-ProfileData PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData +) +target_link_libraries(llvm14-lib-ProfileData PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + lib-DebugInfo-DWARF + llvm14-lib-Demangle + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(llvm14-lib-ProfileData PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/GCOV.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProfCorrelator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProfReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProfWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/ProfileSummaryBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/RawMemProfReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/SampleProf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/SampleProfReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/SampleProfWriter.cpp +) diff --git a/contrib/libs/llvm14/lib/ProfileData/CMakeLists.txt b/contrib/libs/llvm14/lib/ProfileData/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/ProfileData/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/ProfileData/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/ProfileData/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..59de7575b123 --- /dev/null +++ b/contrib/libs/llvm14/lib/ProfileData/CMakeLists.windows-x86_64.txt @@ -0,0 +1,38 @@ + +# 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(llvm14-lib-ProfileData) +target_compile_options(llvm14-lib-ProfileData PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-ProfileData PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData +) +target_link_libraries(llvm14-lib-ProfileData PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + lib-DebugInfo-DWARF + llvm14-lib-Demangle + llvm14-lib-IR + llvm14-lib-Object + llvm14-lib-Support +) +target_sources(llvm14-lib-ProfileData PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/GCOV.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProfCorrelator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProfReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/InstrProfWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/ProfileSummaryBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/RawMemProfReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/SampleProf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/SampleProfReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/ProfileData/SampleProfWriter.cpp +) diff --git a/contrib/libs/llvm14/lib/Remarks/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Remarks/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..59ec252e813f --- /dev/null +++ b/contrib/libs/llvm14/lib/Remarks/CMakeLists.darwin-arm64.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. + + + +add_library(llvm14-lib-Remarks) +target_compile_options(llvm14-lib-Remarks PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Remarks PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks +) +target_link_libraries(llvm14-lib-Remarks PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + lib-Bitstream-Reader + llvm14-lib-Support +) +target_sources(llvm14-lib-Remarks PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/BitstreamRemarkParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/BitstreamRemarkSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/Remark.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkFormat.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkLinker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkStringTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/YAMLRemarkParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/YAMLRemarkSerializer.cpp +) diff --git a/contrib/libs/llvm14/lib/Remarks/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Remarks/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..59ec252e813f --- /dev/null +++ b/contrib/libs/llvm14/lib/Remarks/CMakeLists.darwin-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. + + + +add_library(llvm14-lib-Remarks) +target_compile_options(llvm14-lib-Remarks PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Remarks PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks +) +target_link_libraries(llvm14-lib-Remarks PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + lib-Bitstream-Reader + llvm14-lib-Support +) +target_sources(llvm14-lib-Remarks PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/BitstreamRemarkParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/BitstreamRemarkSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/Remark.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkFormat.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkLinker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkStringTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/YAMLRemarkParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/YAMLRemarkSerializer.cpp +) diff --git a/contrib/libs/llvm14/lib/Remarks/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Remarks/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..b06557b9a751 --- /dev/null +++ b/contrib/libs/llvm14/lib/Remarks/CMakeLists.linux-aarch64.txt @@ -0,0 +1,36 @@ + +# 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(llvm14-lib-Remarks) +target_compile_options(llvm14-lib-Remarks PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Remarks PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks +) +target_link_libraries(llvm14-lib-Remarks PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + lib-Bitstream-Reader + llvm14-lib-Support +) +target_sources(llvm14-lib-Remarks PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/BitstreamRemarkParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/BitstreamRemarkSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/Remark.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkFormat.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkLinker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkStringTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/YAMLRemarkParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/YAMLRemarkSerializer.cpp +) diff --git a/contrib/libs/llvm14/lib/Remarks/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Remarks/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..b06557b9a751 --- /dev/null +++ b/contrib/libs/llvm14/lib/Remarks/CMakeLists.linux-x86_64.txt @@ -0,0 +1,36 @@ + +# 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(llvm14-lib-Remarks) +target_compile_options(llvm14-lib-Remarks PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Remarks PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks +) +target_link_libraries(llvm14-lib-Remarks PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + lib-Bitstream-Reader + llvm14-lib-Support +) +target_sources(llvm14-lib-Remarks PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/BitstreamRemarkParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/BitstreamRemarkSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/Remark.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkFormat.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkLinker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkStringTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/YAMLRemarkParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/YAMLRemarkSerializer.cpp +) diff --git a/contrib/libs/llvm14/lib/Remarks/CMakeLists.txt b/contrib/libs/llvm14/lib/Remarks/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Remarks/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Remarks/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Remarks/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..59ec252e813f --- /dev/null +++ b/contrib/libs/llvm14/lib/Remarks/CMakeLists.windows-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. + + + +add_library(llvm14-lib-Remarks) +target_compile_options(llvm14-lib-Remarks PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Remarks PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks +) +target_link_libraries(llvm14-lib-Remarks PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + lib-Bitstream-Reader + llvm14-lib-Support +) +target_sources(llvm14-lib-Remarks PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/BitstreamRemarkParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/BitstreamRemarkSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/Remark.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkFormat.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkLinker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkSerializer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/RemarkStringTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/YAMLRemarkParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Remarks/YAMLRemarkSerializer.cpp +) diff --git a/contrib/libs/llvm14/lib/Support/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Support/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..aa385fbe2416 --- /dev/null +++ b/contrib/libs/llvm14/lib/Support/CMakeLists.darwin-arm64.txt @@ -0,0 +1,167 @@ + +# 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(llvm14-lib-Support) +target_compile_options(llvm14-lib-Support PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Support PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support +) +target_link_libraries(llvm14-lib-Support PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Demangle + contrib-libs-zlib + cpp-sanitizer-include +) +target_sources(llvm14-lib-Support PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/AArch64TargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ABIBreak.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/AMDGPUMetadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APFixedPoint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APFloat.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APInt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APSInt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMAttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMBuildAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMTargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMWinEH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Allocator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Atomic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/AutoConvert.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BlockFrequency.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BranchProbability.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BuryPointer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/COM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CRC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CachePruning.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Caching.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Chrono.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CodeGenCoverage.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CommandLine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Compression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ConvertUTF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ConvertUTFWrapper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CrashRecoveryContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DAGDeltaAlgorithm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DJB.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DataExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Debug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DebugCounter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DeltaAlgorithm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DivisionByConstantInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DynamicLibrary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ELFAttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ELFAttributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Errno.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ErrorHandling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ExtensibleRTTI.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FileCollector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FileOutputBuffer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FileUtilities.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FoldingSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FormatVariadic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FormattedStream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/GlobPattern.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/GraphWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Hashing.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Host.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/InitLLVM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/InstructionCost.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/IntEqClasses.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/IntervalMap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ItaniumManglingCanonicalizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/JSON.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/KnownBits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LEB128.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LineIterator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Locale.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LockFileManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LowLevelType.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MD5.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MSP430AttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MSP430Attributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ManagedStatic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MathExtras.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MemAlloc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Memory.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MemoryBuffer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MemoryBufferRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/NativeFormatting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/OptimizedStructLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Optional.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Parallel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Path.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/PluginLoader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/PrettyStackTrace.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Process.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Program.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RISCVAttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RISCVAttributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RISCVISAInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RWMutex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RandomNumberGenerator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Regex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SHA1.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SHA256.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ScaledNumber.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ScopedPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Signals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Signposts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SmallPtrSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SmallVector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SourceMgr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SpecialCaseList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Statistic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringExtras.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringMap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringSaver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SuffixTree.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SymbolRemappingReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SystemUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TarWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ThreadLocal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ThreadPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Threading.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TimeProfiler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Timer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ToolOutputFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TrigramIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Triple.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Twine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TypeSize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Unicode.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/UnicodeCaseFold.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Valgrind.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/VersionTuple.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/VirtualFileSystem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Watchdog.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/WithColor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/X86TargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/YAMLParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/YAMLTraits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Z3Solver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/circular_raw_ostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/raw_os_ostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/raw_ostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regcomp.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regerror.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regexec.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regfree.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regstrlcpy.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/xxhash.cpp +) diff --git a/contrib/libs/llvm14/lib/Support/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Support/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..aa385fbe2416 --- /dev/null +++ b/contrib/libs/llvm14/lib/Support/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,167 @@ + +# 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(llvm14-lib-Support) +target_compile_options(llvm14-lib-Support PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Support PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support +) +target_link_libraries(llvm14-lib-Support PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Demangle + contrib-libs-zlib + cpp-sanitizer-include +) +target_sources(llvm14-lib-Support PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/AArch64TargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ABIBreak.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/AMDGPUMetadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APFixedPoint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APFloat.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APInt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APSInt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMAttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMBuildAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMTargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMWinEH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Allocator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Atomic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/AutoConvert.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BlockFrequency.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BranchProbability.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BuryPointer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/COM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CRC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CachePruning.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Caching.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Chrono.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CodeGenCoverage.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CommandLine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Compression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ConvertUTF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ConvertUTFWrapper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CrashRecoveryContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DAGDeltaAlgorithm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DJB.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DataExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Debug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DebugCounter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DeltaAlgorithm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DivisionByConstantInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DynamicLibrary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ELFAttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ELFAttributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Errno.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ErrorHandling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ExtensibleRTTI.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FileCollector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FileOutputBuffer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FileUtilities.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FoldingSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FormatVariadic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FormattedStream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/GlobPattern.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/GraphWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Hashing.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Host.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/InitLLVM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/InstructionCost.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/IntEqClasses.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/IntervalMap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ItaniumManglingCanonicalizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/JSON.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/KnownBits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LEB128.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LineIterator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Locale.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LockFileManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LowLevelType.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MD5.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MSP430AttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MSP430Attributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ManagedStatic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MathExtras.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MemAlloc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Memory.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MemoryBuffer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MemoryBufferRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/NativeFormatting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/OptimizedStructLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Optional.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Parallel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Path.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/PluginLoader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/PrettyStackTrace.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Process.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Program.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RISCVAttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RISCVAttributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RISCVISAInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RWMutex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RandomNumberGenerator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Regex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SHA1.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SHA256.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ScaledNumber.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ScopedPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Signals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Signposts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SmallPtrSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SmallVector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SourceMgr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SpecialCaseList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Statistic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringExtras.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringMap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringSaver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SuffixTree.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SymbolRemappingReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SystemUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TarWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ThreadLocal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ThreadPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Threading.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TimeProfiler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Timer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ToolOutputFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TrigramIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Triple.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Twine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TypeSize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Unicode.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/UnicodeCaseFold.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Valgrind.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/VersionTuple.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/VirtualFileSystem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Watchdog.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/WithColor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/X86TargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/YAMLParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/YAMLTraits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Z3Solver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/circular_raw_ostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/raw_os_ostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/raw_ostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regcomp.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regerror.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regexec.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regfree.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regstrlcpy.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/xxhash.cpp +) diff --git a/contrib/libs/llvm14/lib/Support/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Support/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..b9378d53bfc7 --- /dev/null +++ b/contrib/libs/llvm14/lib/Support/CMakeLists.linux-aarch64.txt @@ -0,0 +1,168 @@ + +# 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(llvm14-lib-Support) +target_compile_options(llvm14-lib-Support PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Support PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support +) +target_link_libraries(llvm14-lib-Support PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Demangle + contrib-libs-zlib + cpp-sanitizer-include +) +target_sources(llvm14-lib-Support PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/AArch64TargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ABIBreak.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/AMDGPUMetadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APFixedPoint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APFloat.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APInt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APSInt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMAttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMBuildAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMTargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMWinEH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Allocator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Atomic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/AutoConvert.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BlockFrequency.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BranchProbability.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BuryPointer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/COM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CRC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CachePruning.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Caching.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Chrono.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CodeGenCoverage.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CommandLine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Compression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ConvertUTF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ConvertUTFWrapper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CrashRecoveryContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DAGDeltaAlgorithm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DJB.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DataExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Debug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DebugCounter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DeltaAlgorithm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DivisionByConstantInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DynamicLibrary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ELFAttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ELFAttributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Errno.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ErrorHandling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ExtensibleRTTI.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FileCollector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FileOutputBuffer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FileUtilities.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FoldingSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FormatVariadic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FormattedStream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/GlobPattern.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/GraphWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Hashing.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Host.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/InitLLVM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/InstructionCost.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/IntEqClasses.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/IntervalMap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ItaniumManglingCanonicalizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/JSON.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/KnownBits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LEB128.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LineIterator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Locale.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LockFileManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LowLevelType.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MD5.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MSP430AttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MSP430Attributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ManagedStatic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MathExtras.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MemAlloc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Memory.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MemoryBuffer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MemoryBufferRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/NativeFormatting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/OptimizedStructLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Optional.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Parallel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Path.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/PluginLoader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/PrettyStackTrace.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Process.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Program.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RISCVAttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RISCVAttributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RISCVISAInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RWMutex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RandomNumberGenerator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Regex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SHA1.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SHA256.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ScaledNumber.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ScopedPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Signals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Signposts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SmallPtrSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SmallVector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SourceMgr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SpecialCaseList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Statistic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringExtras.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringMap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringSaver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SuffixTree.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SymbolRemappingReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SystemUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TarWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ThreadLocal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ThreadPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Threading.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TimeProfiler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Timer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ToolOutputFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TrigramIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Triple.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Twine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TypeSize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Unicode.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/UnicodeCaseFold.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Valgrind.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/VersionTuple.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/VirtualFileSystem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Watchdog.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/WithColor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/X86TargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/YAMLParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/YAMLTraits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Z3Solver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/circular_raw_ostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/raw_os_ostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/raw_ostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regcomp.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regerror.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regexec.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regfree.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regstrlcpy.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/xxhash.cpp +) diff --git a/contrib/libs/llvm14/lib/Support/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Support/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..b9378d53bfc7 --- /dev/null +++ b/contrib/libs/llvm14/lib/Support/CMakeLists.linux-x86_64.txt @@ -0,0 +1,168 @@ + +# 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(llvm14-lib-Support) +target_compile_options(llvm14-lib-Support PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Support PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support +) +target_link_libraries(llvm14-lib-Support PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Demangle + contrib-libs-zlib + cpp-sanitizer-include +) +target_sources(llvm14-lib-Support PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/AArch64TargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ABIBreak.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/AMDGPUMetadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APFixedPoint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APFloat.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APInt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APSInt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMAttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMBuildAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMTargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMWinEH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Allocator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Atomic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/AutoConvert.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BlockFrequency.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BranchProbability.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BuryPointer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/COM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CRC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CachePruning.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Caching.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Chrono.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CodeGenCoverage.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CommandLine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Compression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ConvertUTF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ConvertUTFWrapper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CrashRecoveryContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DAGDeltaAlgorithm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DJB.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DataExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Debug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DebugCounter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DeltaAlgorithm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DivisionByConstantInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DynamicLibrary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ELFAttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ELFAttributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Errno.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ErrorHandling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ExtensibleRTTI.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FileCollector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FileOutputBuffer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FileUtilities.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FoldingSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FormatVariadic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FormattedStream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/GlobPattern.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/GraphWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Hashing.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Host.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/InitLLVM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/InstructionCost.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/IntEqClasses.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/IntervalMap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ItaniumManglingCanonicalizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/JSON.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/KnownBits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LEB128.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LineIterator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Locale.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LockFileManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LowLevelType.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MD5.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MSP430AttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MSP430Attributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ManagedStatic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MathExtras.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MemAlloc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Memory.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MemoryBuffer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MemoryBufferRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/NativeFormatting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/OptimizedStructLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Optional.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Parallel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Path.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/PluginLoader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/PrettyStackTrace.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Process.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Program.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RISCVAttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RISCVAttributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RISCVISAInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RWMutex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RandomNumberGenerator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Regex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SHA1.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SHA256.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ScaledNumber.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ScopedPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Signals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Signposts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SmallPtrSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SmallVector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SourceMgr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SpecialCaseList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Statistic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringExtras.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringMap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringSaver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SuffixTree.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SymbolRemappingReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SystemUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TarWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ThreadLocal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ThreadPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Threading.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TimeProfiler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Timer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ToolOutputFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TrigramIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Triple.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Twine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TypeSize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Unicode.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/UnicodeCaseFold.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Valgrind.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/VersionTuple.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/VirtualFileSystem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Watchdog.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/WithColor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/X86TargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/YAMLParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/YAMLTraits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Z3Solver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/circular_raw_ostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/raw_os_ostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/raw_ostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regcomp.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regerror.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regexec.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regfree.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regstrlcpy.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/xxhash.cpp +) diff --git a/contrib/libs/llvm14/lib/Support/CMakeLists.txt b/contrib/libs/llvm14/lib/Support/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Support/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Support/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Support/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..aa385fbe2416 --- /dev/null +++ b/contrib/libs/llvm14/lib/Support/CMakeLists.windows-x86_64.txt @@ -0,0 +1,167 @@ + +# 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(llvm14-lib-Support) +target_compile_options(llvm14-lib-Support PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Support PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support +) +target_link_libraries(llvm14-lib-Support PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Demangle + contrib-libs-zlib + cpp-sanitizer-include +) +target_sources(llvm14-lib-Support PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/AArch64TargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ABIBreak.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/AMDGPUMetadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APFixedPoint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APFloat.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APInt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/APSInt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMAttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMBuildAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMTargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ARMWinEH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Allocator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Atomic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/AutoConvert.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamError.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BinaryStreamWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BlockFrequency.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BranchProbability.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/BuryPointer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/COM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CRC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CachePruning.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Caching.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Chrono.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CodeGenCoverage.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CommandLine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Compression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ConvertUTF.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ConvertUTFWrapper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/CrashRecoveryContext.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DAGDeltaAlgorithm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DJB.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DataExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Debug.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DebugCounter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DeltaAlgorithm.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DivisionByConstantInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/DynamicLibrary.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ELFAttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ELFAttributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Errno.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ErrorHandling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ExtensibleRTTI.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FileCollector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FileOutputBuffer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FileUtilities.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FoldingSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FormatVariadic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/FormattedStream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/GlobPattern.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/GraphWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Hashing.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Host.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/InitLLVM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/InstructionCost.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/IntEqClasses.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/IntervalMap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ItaniumManglingCanonicalizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/JSON.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/KnownBits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LEB128.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LineIterator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Locale.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LockFileManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/LowLevelType.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MD5.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MSP430AttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MSP430Attributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ManagedStatic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MathExtras.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MemAlloc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Memory.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MemoryBuffer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/MemoryBufferRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/NativeFormatting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/OptimizedStructLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Optional.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Parallel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Path.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/PluginLoader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/PrettyStackTrace.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Process.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Program.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RISCVAttributeParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RISCVAttributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RISCVISAInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RWMutex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/RandomNumberGenerator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Regex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SHA1.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SHA256.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ScaledNumber.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ScopedPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Signals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Signposts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SmallPtrSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SmallVector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SourceMgr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SpecialCaseList.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Statistic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringExtras.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringMap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringRef.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/StringSaver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SuffixTree.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SymbolRemappingReader.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/SystemUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TarWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ThreadLocal.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ThreadPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Threading.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TimeProfiler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Timer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/ToolOutputFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TrigramIndex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Triple.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Twine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/TypeSize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Unicode.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/UnicodeCaseFold.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Valgrind.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/VersionTuple.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/VirtualFileSystem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Watchdog.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/WithColor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/X86TargetParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/YAMLParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/YAMLTraits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/Z3Solver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/circular_raw_ostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/raw_os_ostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/raw_ostream.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regcomp.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regerror.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regexec.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regfree.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/regstrlcpy.c + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Support/xxhash.cpp +) diff --git a/contrib/libs/llvm14/lib/TableGen/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/TableGen/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..d677125538d8 --- /dev/null +++ b/contrib/libs/llvm14/lib/TableGen/CMakeLists.darwin-arm64.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. + + + +add_library(llvm14-lib-TableGen) +target_compile_options(llvm14-lib-TableGen PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-TableGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen +) +target_link_libraries(llvm14-lib-TableGen PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(llvm14-lib-TableGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/DetailedRecordsBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/Error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/JSONBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/Main.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/Record.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/SetTheory.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/StringMatcher.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TGLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TGParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TableGenBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TableGenBackendSkeleton.cpp +) diff --git a/contrib/libs/llvm14/lib/TableGen/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/TableGen/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..d677125538d8 --- /dev/null +++ b/contrib/libs/llvm14/lib/TableGen/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. + + + +add_library(llvm14-lib-TableGen) +target_compile_options(llvm14-lib-TableGen PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-TableGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen +) +target_link_libraries(llvm14-lib-TableGen PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(llvm14-lib-TableGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/DetailedRecordsBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/Error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/JSONBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/Main.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/Record.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/SetTheory.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/StringMatcher.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TGLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TGParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TableGenBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TableGenBackendSkeleton.cpp +) diff --git a/contrib/libs/llvm14/lib/TableGen/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/TableGen/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..77c91520da4f --- /dev/null +++ b/contrib/libs/llvm14/lib/TableGen/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. + + + +add_library(llvm14-lib-TableGen) +target_compile_options(llvm14-lib-TableGen PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-TableGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen +) +target_link_libraries(llvm14-lib-TableGen PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(llvm14-lib-TableGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/DetailedRecordsBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/Error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/JSONBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/Main.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/Record.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/SetTheory.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/StringMatcher.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TGLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TGParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TableGenBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TableGenBackendSkeleton.cpp +) diff --git a/contrib/libs/llvm14/lib/TableGen/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/TableGen/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..77c91520da4f --- /dev/null +++ b/contrib/libs/llvm14/lib/TableGen/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. + + + +add_library(llvm14-lib-TableGen) +target_compile_options(llvm14-lib-TableGen PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-TableGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen +) +target_link_libraries(llvm14-lib-TableGen PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(llvm14-lib-TableGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/DetailedRecordsBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/Error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/JSONBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/Main.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/Record.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/SetTheory.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/StringMatcher.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TGLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TGParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TableGenBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TableGenBackendSkeleton.cpp +) diff --git a/contrib/libs/llvm14/lib/TableGen/CMakeLists.txt b/contrib/libs/llvm14/lib/TableGen/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/TableGen/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/TableGen/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/TableGen/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..d677125538d8 --- /dev/null +++ b/contrib/libs/llvm14/lib/TableGen/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. + + + +add_library(llvm14-lib-TableGen) +target_compile_options(llvm14-lib-TableGen PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-TableGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen +) +target_link_libraries(llvm14-lib-TableGen PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support +) +target_sources(llvm14-lib-TableGen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/DetailedRecordsBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/Error.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/JSONBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/Main.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/Record.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/SetTheory.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/StringMatcher.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TGLexer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TGParser.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TableGenBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TableGen/TableGenBackendSkeleton.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Target/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..ba7f47a3c1cb --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/CMakeLists.darwin-arm64.txt @@ -0,0 +1,33 @@ + +# 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(X86) + +add_library(llvm14-lib-Target) +target_compile_options(llvm14-lib-Target PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Target PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target +) +target_link_libraries(llvm14-lib-Target PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(llvm14-lib-Target PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/Target.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetIntrinsicInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetLoweringObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetMachine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetMachineC.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Target/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..ba7f47a3c1cb --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,33 @@ + +# 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(X86) + +add_library(llvm14-lib-Target) +target_compile_options(llvm14-lib-Target PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Target PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target +) +target_link_libraries(llvm14-lib-Target PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(llvm14-lib-Target PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/Target.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetIntrinsicInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetLoweringObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetMachine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetMachineC.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Target/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..d5ab937935ac --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/CMakeLists.linux-aarch64.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. + + +add_subdirectory(X86) + +add_library(llvm14-lib-Target) +target_compile_options(llvm14-lib-Target PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Target PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target +) +target_link_libraries(llvm14-lib-Target PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(llvm14-lib-Target PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/Target.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetIntrinsicInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetLoweringObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetMachine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetMachineC.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Target/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..d5ab937935ac --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/CMakeLists.linux-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. + + +add_subdirectory(X86) + +add_library(llvm14-lib-Target) +target_compile_options(llvm14-lib-Target PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Target PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target +) +target_link_libraries(llvm14-lib-Target PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(llvm14-lib-Target PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/Target.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetIntrinsicInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetLoweringObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetMachine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetMachineC.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/CMakeLists.txt b/contrib/libs/llvm14/lib/Target/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Target/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Target/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..ba7f47a3c1cb --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/CMakeLists.windows-x86_64.txt @@ -0,0 +1,33 @@ + +# 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(X86) + +add_library(llvm14-lib-Target) +target_compile_options(llvm14-lib-Target PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-Target PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target +) +target_link_libraries(llvm14-lib-Target PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(llvm14-lib-Target PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/Target.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetIntrinsicInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetLoweringObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetMachine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/TargetMachineC.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..cb4c64a01f44 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.darwin-arm64.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(Target-X86-AsmParser) +target_compile_options(Target-X86-AsmParser PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-AsmParser PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/AsmParser +) +target_link_libraries(Target-X86-AsmParser PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-MC + lib-MC-MCParser + llvm14-lib-Support + Target-X86-MCTargetDesc + Target-X86-TargetInfo +) +target_sources(Target-X86-AsmParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/AsmParser/X86AsmParser.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..cb4c64a01f44 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.darwin-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(Target-X86-AsmParser) +target_compile_options(Target-X86-AsmParser PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-AsmParser PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/AsmParser +) +target_link_libraries(Target-X86-AsmParser PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-MC + lib-MC-MCParser + llvm14-lib-Support + Target-X86-MCTargetDesc + Target-X86-TargetInfo +) +target_sources(Target-X86-AsmParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/AsmParser/X86AsmParser.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..063058f4f46e --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.linux-aarch64.txt @@ -0,0 +1,32 @@ + +# 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(Target-X86-AsmParser) +target_compile_options(Target-X86-AsmParser PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-AsmParser PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/AsmParser +) +target_link_libraries(Target-X86-AsmParser PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-MC + lib-MC-MCParser + llvm14-lib-Support + Target-X86-MCTargetDesc + Target-X86-TargetInfo +) +target_sources(Target-X86-AsmParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/AsmParser/X86AsmParser.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..063058f4f46e --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.linux-x86_64.txt @@ -0,0 +1,32 @@ + +# 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(Target-X86-AsmParser) +target_compile_options(Target-X86-AsmParser PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-AsmParser PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/AsmParser +) +target_link_libraries(Target-X86-AsmParser PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-MC + lib-MC-MCParser + llvm14-lib-Support + Target-X86-MCTargetDesc + Target-X86-TargetInfo +) +target_sources(Target-X86-AsmParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/AsmParser/X86AsmParser.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.txt b/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..cb4c64a01f44 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/AsmParser/CMakeLists.windows-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(Target-X86-AsmParser) +target_compile_options(Target-X86-AsmParser PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-AsmParser PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/AsmParser +) +target_link_libraries(Target-X86-AsmParser PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-MC + lib-MC-MCParser + llvm14-lib-Support + Target-X86-MCTargetDesc + Target-X86-TargetInfo +) +target_sources(Target-X86-AsmParser PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/AsmParser/X86AsmParser.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Target/X86/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..d5725916fddf --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/CMakeLists.darwin-arm64.txt @@ -0,0 +1,102 @@ + +# 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(AsmParser) +add_subdirectory(Disassembler) +add_subdirectory(MCTargetDesc) +add_subdirectory(TargetInfo) + +add_library(lib-Target-X86) +target_compile_options(lib-Target-X86 PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Target-X86 PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 +) +target_link_libraries(lib-Target-X86 PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-CodeGen + lib-CodeGen-AsmPrinter + lib-CodeGen-GlobalISel + lib-CodeGen-SelectionDAG + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-ProfileData + llvm14-lib-Support + llvm14-lib-Target + Target-X86-MCTargetDesc + Target-X86-TargetInfo + lib-Transforms-CFGuard + lib-Transforms-Instrumentation + lib-Transforms-Utils +) +target_sources(lib-Target-X86 PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86AsmPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86AvoidTrailingCall.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallFrameOptimization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CmovConversion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86DiscriminateMemOps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86DomainReassignment.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86DynAllocaExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86EvexToVex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ExpandPseudo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FastISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FastTileConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FixupBWInsts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FixupLEAs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FixupSetCC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FlagsCopyLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FloatingPoint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FrameLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ISelDAGToDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ISelLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86IndirectBranchTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86IndirectThunks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InsertPrefetch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InsertWait.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstCombineIntrinsic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA3Info.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFoldTables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstructionSelector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InterleavedAccess.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LegalizerInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LowerAMXIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LowerAMXType.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LowerTileCopy.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86MCInstLower.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86MachineFunctionInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86MacroFusion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86OptimizeLEAs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PadShortFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PartialReduction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PreAMXConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PreTileConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBankInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SelectionDAGInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SpeculativeExecutionSideEffectSuppression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SpeculativeLoadHardening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Subtarget.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TargetMachine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TargetObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TargetTransformInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TileConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86VZeroUpper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86WinEHState.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Target/X86/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..d5725916fddf --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,102 @@ + +# 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(AsmParser) +add_subdirectory(Disassembler) +add_subdirectory(MCTargetDesc) +add_subdirectory(TargetInfo) + +add_library(lib-Target-X86) +target_compile_options(lib-Target-X86 PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Target-X86 PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 +) +target_link_libraries(lib-Target-X86 PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-CodeGen + lib-CodeGen-AsmPrinter + lib-CodeGen-GlobalISel + lib-CodeGen-SelectionDAG + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-ProfileData + llvm14-lib-Support + llvm14-lib-Target + Target-X86-MCTargetDesc + Target-X86-TargetInfo + lib-Transforms-CFGuard + lib-Transforms-Instrumentation + lib-Transforms-Utils +) +target_sources(lib-Target-X86 PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86AsmPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86AvoidTrailingCall.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallFrameOptimization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CmovConversion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86DiscriminateMemOps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86DomainReassignment.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86DynAllocaExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86EvexToVex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ExpandPseudo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FastISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FastTileConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FixupBWInsts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FixupLEAs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FixupSetCC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FlagsCopyLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FloatingPoint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FrameLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ISelDAGToDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ISelLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86IndirectBranchTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86IndirectThunks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InsertPrefetch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InsertWait.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstCombineIntrinsic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA3Info.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFoldTables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstructionSelector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InterleavedAccess.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LegalizerInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LowerAMXIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LowerAMXType.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LowerTileCopy.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86MCInstLower.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86MachineFunctionInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86MacroFusion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86OptimizeLEAs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PadShortFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PartialReduction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PreAMXConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PreTileConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBankInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SelectionDAGInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SpeculativeExecutionSideEffectSuppression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SpeculativeLoadHardening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Subtarget.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TargetMachine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TargetObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TargetTransformInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TileConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86VZeroUpper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86WinEHState.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Target/X86/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..8b9a48b3cccc --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/CMakeLists.linux-aarch64.txt @@ -0,0 +1,103 @@ + +# 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(AsmParser) +add_subdirectory(Disassembler) +add_subdirectory(MCTargetDesc) +add_subdirectory(TargetInfo) + +add_library(lib-Target-X86) +target_compile_options(lib-Target-X86 PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Target-X86 PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 +) +target_link_libraries(lib-Target-X86 PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-CodeGen + lib-CodeGen-AsmPrinter + lib-CodeGen-GlobalISel + lib-CodeGen-SelectionDAG + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-ProfileData + llvm14-lib-Support + llvm14-lib-Target + Target-X86-MCTargetDesc + Target-X86-TargetInfo + lib-Transforms-CFGuard + lib-Transforms-Instrumentation + lib-Transforms-Utils +) +target_sources(lib-Target-X86 PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86AsmPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86AvoidTrailingCall.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallFrameOptimization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CmovConversion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86DiscriminateMemOps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86DomainReassignment.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86DynAllocaExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86EvexToVex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ExpandPseudo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FastISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FastTileConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FixupBWInsts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FixupLEAs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FixupSetCC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FlagsCopyLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FloatingPoint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FrameLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ISelDAGToDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ISelLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86IndirectBranchTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86IndirectThunks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InsertPrefetch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InsertWait.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstCombineIntrinsic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA3Info.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFoldTables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstructionSelector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InterleavedAccess.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LegalizerInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LowerAMXIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LowerAMXType.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LowerTileCopy.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86MCInstLower.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86MachineFunctionInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86MacroFusion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86OptimizeLEAs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PadShortFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PartialReduction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PreAMXConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PreTileConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBankInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SelectionDAGInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SpeculativeExecutionSideEffectSuppression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SpeculativeLoadHardening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Subtarget.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TargetMachine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TargetObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TargetTransformInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TileConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86VZeroUpper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86WinEHState.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Target/X86/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..8b9a48b3cccc --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/CMakeLists.linux-x86_64.txt @@ -0,0 +1,103 @@ + +# 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(AsmParser) +add_subdirectory(Disassembler) +add_subdirectory(MCTargetDesc) +add_subdirectory(TargetInfo) + +add_library(lib-Target-X86) +target_compile_options(lib-Target-X86 PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Target-X86 PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 +) +target_link_libraries(lib-Target-X86 PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-CodeGen + lib-CodeGen-AsmPrinter + lib-CodeGen-GlobalISel + lib-CodeGen-SelectionDAG + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-ProfileData + llvm14-lib-Support + llvm14-lib-Target + Target-X86-MCTargetDesc + Target-X86-TargetInfo + lib-Transforms-CFGuard + lib-Transforms-Instrumentation + lib-Transforms-Utils +) +target_sources(lib-Target-X86 PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86AsmPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86AvoidTrailingCall.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallFrameOptimization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CmovConversion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86DiscriminateMemOps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86DomainReassignment.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86DynAllocaExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86EvexToVex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ExpandPseudo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FastISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FastTileConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FixupBWInsts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FixupLEAs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FixupSetCC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FlagsCopyLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FloatingPoint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FrameLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ISelDAGToDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ISelLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86IndirectBranchTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86IndirectThunks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InsertPrefetch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InsertWait.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstCombineIntrinsic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA3Info.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFoldTables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstructionSelector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InterleavedAccess.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LegalizerInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LowerAMXIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LowerAMXType.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LowerTileCopy.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86MCInstLower.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86MachineFunctionInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86MacroFusion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86OptimizeLEAs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PadShortFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PartialReduction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PreAMXConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PreTileConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBankInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SelectionDAGInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SpeculativeExecutionSideEffectSuppression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SpeculativeLoadHardening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Subtarget.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TargetMachine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TargetObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TargetTransformInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TileConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86VZeroUpper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86WinEHState.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/CMakeLists.txt b/contrib/libs/llvm14/lib/Target/X86/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Target/X86/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Target/X86/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..d5725916fddf --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/CMakeLists.windows-x86_64.txt @@ -0,0 +1,102 @@ + +# 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(AsmParser) +add_subdirectory(Disassembler) +add_subdirectory(MCTargetDesc) +add_subdirectory(TargetInfo) + +add_library(lib-Target-X86) +target_compile_options(lib-Target-X86 PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Target-X86 PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 +) +target_link_libraries(lib-Target-X86 PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-CodeGen + lib-CodeGen-AsmPrinter + lib-CodeGen-GlobalISel + lib-CodeGen-SelectionDAG + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-ProfileData + llvm14-lib-Support + llvm14-lib-Target + Target-X86-MCTargetDesc + Target-X86-TargetInfo + lib-Transforms-CFGuard + lib-Transforms-Instrumentation + lib-Transforms-Utils +) +target_sources(lib-Target-X86 PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86AsmPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86AvoidTrailingCall.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallFrameOptimization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CallingConv.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86CmovConversion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86DiscriminateMemOps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86DomainReassignment.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86DynAllocaExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86EvexToVex.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ExpandPseudo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FastISel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FastTileConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FixupBWInsts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FixupLEAs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FixupSetCC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FlagsCopyLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FloatingPoint.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86FrameLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ISelDAGToDAG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ISelLowering.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86IndirectBranchTracking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86IndirectThunks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InsertPrefetch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InsertWait.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstCombineIntrinsic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFMA3Info.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrFoldTables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstrInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InstructionSelector.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86InterleavedAccess.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LegalizerInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LowerAMXIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LowerAMXType.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86LowerTileCopy.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86MCInstLower.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86MachineFunctionInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86MacroFusion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86OptimizeLEAs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PadShortFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PartialReduction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PreAMXConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86PreTileConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterBankInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86RegisterInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SelectionDAGInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SpeculativeExecutionSideEffectSuppression.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86SpeculativeLoadHardening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86Subtarget.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TargetMachine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TargetObjectFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TargetTransformInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86TileConfig.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86VZeroUpper.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/X86WinEHState.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/Disassembler/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Target/X86/Disassembler/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..1e8c66c7a0b0 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/Disassembler/CMakeLists.darwin-arm64.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(Target-X86-Disassembler) +target_compile_options(Target-X86-Disassembler PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-Disassembler PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/Disassembler +) +target_link_libraries(Target-X86-Disassembler PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + lib-MC-MCDisassembler + llvm14-lib-Support + Target-X86-TargetInfo +) +target_sources(Target-X86-Disassembler PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/Disassembler/X86Disassembler.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/Disassembler/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Target/X86/Disassembler/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..1e8c66c7a0b0 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/Disassembler/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(Target-X86-Disassembler) +target_compile_options(Target-X86-Disassembler PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-Disassembler PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/Disassembler +) +target_link_libraries(Target-X86-Disassembler PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + lib-MC-MCDisassembler + llvm14-lib-Support + Target-X86-TargetInfo +) +target_sources(Target-X86-Disassembler PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/Disassembler/X86Disassembler.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/Disassembler/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Target/X86/Disassembler/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..9f59dd15364b --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/Disassembler/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(Target-X86-Disassembler) +target_compile_options(Target-X86-Disassembler PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-Disassembler PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/Disassembler +) +target_link_libraries(Target-X86-Disassembler PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + lib-MC-MCDisassembler + llvm14-lib-Support + Target-X86-TargetInfo +) +target_sources(Target-X86-Disassembler PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/Disassembler/X86Disassembler.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/Disassembler/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Target/X86/Disassembler/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..9f59dd15364b --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/Disassembler/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(Target-X86-Disassembler) +target_compile_options(Target-X86-Disassembler PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-Disassembler PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/Disassembler +) +target_link_libraries(Target-X86-Disassembler PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + lib-MC-MCDisassembler + llvm14-lib-Support + Target-X86-TargetInfo +) +target_sources(Target-X86-Disassembler PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/Disassembler/X86Disassembler.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/Disassembler/CMakeLists.txt b/contrib/libs/llvm14/lib/Target/X86/Disassembler/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/Disassembler/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Target/X86/Disassembler/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Target/X86/Disassembler/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..1e8c66c7a0b0 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/Disassembler/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(Target-X86-Disassembler) +target_compile_options(Target-X86-Disassembler PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-Disassembler PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/Disassembler +) +target_link_libraries(Target-X86-Disassembler PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + lib-MC-MCDisassembler + llvm14-lib-Support + Target-X86-TargetInfo +) +target_sources(Target-X86-Disassembler PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/Disassembler/X86Disassembler.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..ecc1a34cef4f --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/CMakeLists.darwin-arm64.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. + + + +add_library(Target-X86-MCTargetDesc) +target_compile_options(Target-X86-MCTargetDesc PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-MCTargetDesc PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc +) +target_link_libraries(Target-X86-MCTargetDesc PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-MC + lib-MC-MCDisassembler + llvm14-lib-Support + Target-X86-TargetInfo +) +target_sources(Target-X86-MCTargetDesc PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86InstComments.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..ecc1a34cef4f --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/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. + + + +add_library(Target-X86-MCTargetDesc) +target_compile_options(Target-X86-MCTargetDesc PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-MCTargetDesc PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc +) +target_link_libraries(Target-X86-MCTargetDesc PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-MC + lib-MC-MCDisassembler + llvm14-lib-Support + Target-X86-TargetInfo +) +target_sources(Target-X86-MCTargetDesc PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86InstComments.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..9756eaf945e3 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/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. + + + +add_library(Target-X86-MCTargetDesc) +target_compile_options(Target-X86-MCTargetDesc PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-MCTargetDesc PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc +) +target_link_libraries(Target-X86-MCTargetDesc PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-MC + lib-MC-MCDisassembler + llvm14-lib-Support + Target-X86-TargetInfo +) +target_sources(Target-X86-MCTargetDesc PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86InstComments.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..9756eaf945e3 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/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. + + + +add_library(Target-X86-MCTargetDesc) +target_compile_options(Target-X86-MCTargetDesc PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-MCTargetDesc PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc +) +target_link_libraries(Target-X86-MCTargetDesc PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-MC + lib-MC-MCDisassembler + llvm14-lib-Support + Target-X86-TargetInfo +) +target_sources(Target-X86-MCTargetDesc PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86InstComments.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/CMakeLists.txt b/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..ecc1a34cef4f --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/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. + + + +add_library(Target-X86-MCTargetDesc) +target_compile_options(Target-X86-MCTargetDesc PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-MCTargetDesc PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc +) +target_link_libraries(Target-X86-MCTargetDesc PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-BinaryFormat + llvm14-lib-MC + lib-MC-MCDisassembler + llvm14-lib-Support + Target-X86-TargetInfo +) +target_sources(Target-X86-MCTargetDesc PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86InstComments.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..d0cb99814e47 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.darwin-arm64.txt @@ -0,0 +1,26 @@ + +# 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(Target-X86-TargetInfo) +target_compile_options(Target-X86-TargetInfo PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-TargetInfo PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/TargetInfo +) +target_link_libraries(Target-X86-TargetInfo PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(Target-X86-TargetInfo PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/TargetInfo/X86TargetInfo.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..d0cb99814e47 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,26 @@ + +# 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(Target-X86-TargetInfo) +target_compile_options(Target-X86-TargetInfo PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-TargetInfo PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/TargetInfo +) +target_link_libraries(Target-X86-TargetInfo PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(Target-X86-TargetInfo PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/TargetInfo/X86TargetInfo.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..5c8860f4f3ed --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.linux-aarch64.txt @@ -0,0 +1,27 @@ + +# 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(Target-X86-TargetInfo) +target_compile_options(Target-X86-TargetInfo PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-TargetInfo PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/TargetInfo +) +target_link_libraries(Target-X86-TargetInfo PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(Target-X86-TargetInfo PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/TargetInfo/X86TargetInfo.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..5c8860f4f3ed --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.linux-x86_64.txt @@ -0,0 +1,27 @@ + +# 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(Target-X86-TargetInfo) +target_compile_options(Target-X86-TargetInfo PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-TargetInfo PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/TargetInfo +) +target_link_libraries(Target-X86-TargetInfo PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(Target-X86-TargetInfo PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/TargetInfo/X86TargetInfo.cpp +) diff --git a/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.txt b/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..d0cb99814e47 --- /dev/null +++ b/contrib/libs/llvm14/lib/Target/X86/TargetInfo/CMakeLists.windows-x86_64.txt @@ -0,0 +1,26 @@ + +# 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(Target-X86-TargetInfo) +target_compile_options(Target-X86-TargetInfo PRIVATE + $,,-Wno-everything> +) +target_include_directories(Target-X86-TargetInfo PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86 + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/TargetInfo +) +target_link_libraries(Target-X86-TargetInfo PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-MC + llvm14-lib-Support +) +target_sources(Target-X86-TargetInfo PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Target/X86/TargetInfo/X86TargetInfo.cpp +) diff --git a/contrib/libs/llvm14/lib/TextAPI/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/TextAPI/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..b7deb7ed46f2 --- /dev/null +++ b/contrib/libs/llvm14/lib/TextAPI/CMakeLists.darwin-arm64.txt @@ -0,0 +1,33 @@ + +# 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(llvm14-lib-TextAPI) +target_compile_options(llvm14-lib-TextAPI PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-TextAPI PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI +) +target_link_libraries(llvm14-lib-TextAPI PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-BinaryFormat + llvm14-lib-Support +) +target_sources(llvm14-lib-TextAPI PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Architecture.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/ArchitectureSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/InterfaceFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/PackedVersion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Platform.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Symbol.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Target.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/TextStub.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/TextStubCommon.cpp +) diff --git a/contrib/libs/llvm14/lib/TextAPI/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/TextAPI/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..b7deb7ed46f2 --- /dev/null +++ b/contrib/libs/llvm14/lib/TextAPI/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,33 @@ + +# 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(llvm14-lib-TextAPI) +target_compile_options(llvm14-lib-TextAPI PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-TextAPI PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI +) +target_link_libraries(llvm14-lib-TextAPI PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-BinaryFormat + llvm14-lib-Support +) +target_sources(llvm14-lib-TextAPI PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Architecture.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/ArchitectureSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/InterfaceFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/PackedVersion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Platform.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Symbol.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Target.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/TextStub.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/TextStubCommon.cpp +) diff --git a/contrib/libs/llvm14/lib/TextAPI/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/TextAPI/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..895b2cd23699 --- /dev/null +++ b/contrib/libs/llvm14/lib/TextAPI/CMakeLists.linux-aarch64.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. + + + +add_library(llvm14-lib-TextAPI) +target_compile_options(llvm14-lib-TextAPI PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-TextAPI PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI +) +target_link_libraries(llvm14-lib-TextAPI PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-BinaryFormat + llvm14-lib-Support +) +target_sources(llvm14-lib-TextAPI PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Architecture.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/ArchitectureSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/InterfaceFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/PackedVersion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Platform.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Symbol.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Target.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/TextStub.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/TextStubCommon.cpp +) diff --git a/contrib/libs/llvm14/lib/TextAPI/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/TextAPI/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..895b2cd23699 --- /dev/null +++ b/contrib/libs/llvm14/lib/TextAPI/CMakeLists.linux-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. + + + +add_library(llvm14-lib-TextAPI) +target_compile_options(llvm14-lib-TextAPI PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-TextAPI PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI +) +target_link_libraries(llvm14-lib-TextAPI PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-BinaryFormat + llvm14-lib-Support +) +target_sources(llvm14-lib-TextAPI PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Architecture.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/ArchitectureSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/InterfaceFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/PackedVersion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Platform.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Symbol.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Target.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/TextStub.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/TextStubCommon.cpp +) diff --git a/contrib/libs/llvm14/lib/TextAPI/CMakeLists.txt b/contrib/libs/llvm14/lib/TextAPI/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/TextAPI/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/TextAPI/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/TextAPI/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..b7deb7ed46f2 --- /dev/null +++ b/contrib/libs/llvm14/lib/TextAPI/CMakeLists.windows-x86_64.txt @@ -0,0 +1,33 @@ + +# 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(llvm14-lib-TextAPI) +target_compile_options(llvm14-lib-TextAPI PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm14-lib-TextAPI PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI +) +target_link_libraries(llvm14-lib-TextAPI PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-BinaryFormat + llvm14-lib-Support +) +target_sources(llvm14-lib-TextAPI PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Architecture.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/ArchitectureSet.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/InterfaceFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/PackedVersion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Platform.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Symbol.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/Target.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/TextStub.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/TextAPI/TextStubCommon.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..e93ebb147929 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/CMakeLists.darwin-arm64.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(lib-Transforms-AggressiveInstCombine) +target_compile_options(lib-Transforms-AggressiveInstCombine PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-AggressiveInstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine +) +target_link_libraries(lib-Transforms-AggressiveInstCombine PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-AggressiveInstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..e93ebb147929 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/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(lib-Transforms-AggressiveInstCombine) +target_compile_options(lib-Transforms-AggressiveInstCombine PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-AggressiveInstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine +) +target_link_libraries(lib-Transforms-AggressiveInstCombine PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-AggressiveInstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..0db0cee3d683 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/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(lib-Transforms-AggressiveInstCombine) +target_compile_options(lib-Transforms-AggressiveInstCombine PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-AggressiveInstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine +) +target_link_libraries(lib-Transforms-AggressiveInstCombine PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-AggressiveInstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..0db0cee3d683 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/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(lib-Transforms-AggressiveInstCombine) +target_compile_options(lib-Transforms-AggressiveInstCombine PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-AggressiveInstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine +) +target_link_libraries(lib-Transforms-AggressiveInstCombine PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-AggressiveInstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/CMakeLists.txt b/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..e93ebb147929 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/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(lib-Transforms-AggressiveInstCombine) +target_compile_options(lib-Transforms-AggressiveInstCombine PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-AggressiveInstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine +) +target_link_libraries(lib-Transforms-AggressiveInstCombine PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-AggressiveInstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..94b81361e296 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.darwin-arm64.txt @@ -0,0 +1,26 @@ + +# 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(lib-Transforms-CFGuard) +target_compile_options(lib-Transforms-CFGuard PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-CFGuard PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/CFGuard +) +target_link_libraries(lib-Transforms-CFGuard PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(lib-Transforms-CFGuard PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/CFGuard/CFGuard.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..94b81361e296 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,26 @@ + +# 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(lib-Transforms-CFGuard) +target_compile_options(lib-Transforms-CFGuard PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-CFGuard PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/CFGuard +) +target_link_libraries(lib-Transforms-CFGuard PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(lib-Transforms-CFGuard PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/CFGuard/CFGuard.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..0c4d50c12268 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.linux-aarch64.txt @@ -0,0 +1,27 @@ + +# 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(lib-Transforms-CFGuard) +target_compile_options(lib-Transforms-CFGuard PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-CFGuard PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/CFGuard +) +target_link_libraries(lib-Transforms-CFGuard PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(lib-Transforms-CFGuard PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/CFGuard/CFGuard.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..0c4d50c12268 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.linux-x86_64.txt @@ -0,0 +1,27 @@ + +# 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(lib-Transforms-CFGuard) +target_compile_options(lib-Transforms-CFGuard PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-CFGuard PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/CFGuard +) +target_link_libraries(lib-Transforms-CFGuard PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(lib-Transforms-CFGuard PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/CFGuard/CFGuard.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.txt b/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..94b81361e296 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/CFGuard/CMakeLists.windows-x86_64.txt @@ -0,0 +1,26 @@ + +# 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(lib-Transforms-CFGuard) +target_compile_options(lib-Transforms-CFGuard PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-CFGuard PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/CFGuard +) +target_link_libraries(lib-Transforms-CFGuard PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(lib-Transforms-CFGuard PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/CFGuard/CFGuard.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/CMakeLists.txt b/contrib/libs/llvm14/lib/Transforms/CMakeLists.txt new file mode 100644 index 000000000000..3b48fccabd65 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/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. + + +add_subdirectory(AggressiveInstCombine) +add_subdirectory(CFGuard) +add_subdirectory(IPO) +add_subdirectory(InstCombine) +add_subdirectory(Instrumentation) +add_subdirectory(ObjCARC) +add_subdirectory(Scalar) +add_subdirectory(Utils) +add_subdirectory(Vectorize) diff --git a/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..bd58904628d6 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.darwin-arm64.txt @@ -0,0 +1,83 @@ + +# 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(lib-Transforms-IPO) +target_compile_options(lib-Transforms-IPO PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-IPO PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO +) +target_link_libraries(lib-Transforms-IPO PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + lib-Bitcode-Reader + lib-Bitcode-Writer + lib-Frontend-OpenMP + llvm14-lib-IR + llvm14-lib-IRReader + llvm14-lib-Linker + llvm14-lib-Object + llvm14-lib-ProfileData + llvm14-lib-Support + lib-Transforms-AggressiveInstCombine + lib-Transforms-InstCombine + lib-Transforms-Instrumentation + lib-Transforms-Scalar + lib-Transforms-Utils + lib-Transforms-Vectorize +) +target_sources(lib-Transforms-IPO PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/AlwaysInliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Annotation2Metadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ArgumentPromotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Attributor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/AttributorAttributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/BarrierNoopPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/BlockExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/CalledValuePropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ConstantMerge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/CrossDSOCFI.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/DeadArgumentElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ElimAvailExtern.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ExtractGV.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ForceFunctionAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/FunctionAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/FunctionImport.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/FunctionSpecialization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/GlobalDCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/GlobalOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/GlobalSplit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/HotColdSplitting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/IPO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/IROutliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/InferFunctionAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/InlineSimple.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Inliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Internalize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/LoopExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/LowerTypeTests.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/MergeFunctions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ModuleInliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/OpenMPOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/PartialInlining.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/PassManagerBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/PruneEH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SCCP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SampleContextTracker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SampleProfile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SampleProfileProbe.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/StripDeadPrototypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/StripSymbols.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SyntheticCountsPropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/WholeProgramDevirt.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..bd58904628d6 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,83 @@ + +# 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(lib-Transforms-IPO) +target_compile_options(lib-Transforms-IPO PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-IPO PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO +) +target_link_libraries(lib-Transforms-IPO PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + lib-Bitcode-Reader + lib-Bitcode-Writer + lib-Frontend-OpenMP + llvm14-lib-IR + llvm14-lib-IRReader + llvm14-lib-Linker + llvm14-lib-Object + llvm14-lib-ProfileData + llvm14-lib-Support + lib-Transforms-AggressiveInstCombine + lib-Transforms-InstCombine + lib-Transforms-Instrumentation + lib-Transforms-Scalar + lib-Transforms-Utils + lib-Transforms-Vectorize +) +target_sources(lib-Transforms-IPO PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/AlwaysInliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Annotation2Metadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ArgumentPromotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Attributor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/AttributorAttributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/BarrierNoopPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/BlockExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/CalledValuePropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ConstantMerge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/CrossDSOCFI.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/DeadArgumentElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ElimAvailExtern.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ExtractGV.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ForceFunctionAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/FunctionAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/FunctionImport.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/FunctionSpecialization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/GlobalDCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/GlobalOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/GlobalSplit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/HotColdSplitting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/IPO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/IROutliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/InferFunctionAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/InlineSimple.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Inliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Internalize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/LoopExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/LowerTypeTests.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/MergeFunctions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ModuleInliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/OpenMPOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/PartialInlining.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/PassManagerBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/PruneEH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SCCP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SampleContextTracker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SampleProfile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SampleProfileProbe.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/StripDeadPrototypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/StripSymbols.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SyntheticCountsPropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/WholeProgramDevirt.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..c1ef12dd7d05 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.linux-aarch64.txt @@ -0,0 +1,84 @@ + +# 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(lib-Transforms-IPO) +target_compile_options(lib-Transforms-IPO PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-IPO PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO +) +target_link_libraries(lib-Transforms-IPO PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + lib-Bitcode-Reader + lib-Bitcode-Writer + lib-Frontend-OpenMP + llvm14-lib-IR + llvm14-lib-IRReader + llvm14-lib-Linker + llvm14-lib-Object + llvm14-lib-ProfileData + llvm14-lib-Support + lib-Transforms-AggressiveInstCombine + lib-Transforms-InstCombine + lib-Transforms-Instrumentation + lib-Transforms-Scalar + lib-Transforms-Utils + lib-Transforms-Vectorize +) +target_sources(lib-Transforms-IPO PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/AlwaysInliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Annotation2Metadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ArgumentPromotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Attributor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/AttributorAttributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/BarrierNoopPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/BlockExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/CalledValuePropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ConstantMerge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/CrossDSOCFI.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/DeadArgumentElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ElimAvailExtern.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ExtractGV.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ForceFunctionAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/FunctionAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/FunctionImport.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/FunctionSpecialization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/GlobalDCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/GlobalOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/GlobalSplit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/HotColdSplitting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/IPO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/IROutliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/InferFunctionAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/InlineSimple.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Inliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Internalize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/LoopExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/LowerTypeTests.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/MergeFunctions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ModuleInliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/OpenMPOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/PartialInlining.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/PassManagerBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/PruneEH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SCCP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SampleContextTracker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SampleProfile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SampleProfileProbe.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/StripDeadPrototypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/StripSymbols.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SyntheticCountsPropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/WholeProgramDevirt.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..c1ef12dd7d05 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.linux-x86_64.txt @@ -0,0 +1,84 @@ + +# 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(lib-Transforms-IPO) +target_compile_options(lib-Transforms-IPO PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-IPO PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO +) +target_link_libraries(lib-Transforms-IPO PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + lib-Bitcode-Reader + lib-Bitcode-Writer + lib-Frontend-OpenMP + llvm14-lib-IR + llvm14-lib-IRReader + llvm14-lib-Linker + llvm14-lib-Object + llvm14-lib-ProfileData + llvm14-lib-Support + lib-Transforms-AggressiveInstCombine + lib-Transforms-InstCombine + lib-Transforms-Instrumentation + lib-Transforms-Scalar + lib-Transforms-Utils + lib-Transforms-Vectorize +) +target_sources(lib-Transforms-IPO PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/AlwaysInliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Annotation2Metadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ArgumentPromotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Attributor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/AttributorAttributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/BarrierNoopPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/BlockExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/CalledValuePropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ConstantMerge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/CrossDSOCFI.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/DeadArgumentElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ElimAvailExtern.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ExtractGV.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ForceFunctionAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/FunctionAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/FunctionImport.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/FunctionSpecialization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/GlobalDCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/GlobalOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/GlobalSplit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/HotColdSplitting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/IPO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/IROutliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/InferFunctionAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/InlineSimple.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Inliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Internalize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/LoopExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/LowerTypeTests.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/MergeFunctions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ModuleInliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/OpenMPOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/PartialInlining.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/PassManagerBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/PruneEH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SCCP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SampleContextTracker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SampleProfile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SampleProfileProbe.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/StripDeadPrototypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/StripSymbols.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SyntheticCountsPropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/WholeProgramDevirt.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.txt b/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..bd58904628d6 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/IPO/CMakeLists.windows-x86_64.txt @@ -0,0 +1,83 @@ + +# 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(lib-Transforms-IPO) +target_compile_options(lib-Transforms-IPO PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-IPO PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO +) +target_link_libraries(lib-Transforms-IPO PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + lib-Bitcode-Reader + lib-Bitcode-Writer + lib-Frontend-OpenMP + llvm14-lib-IR + llvm14-lib-IRReader + llvm14-lib-Linker + llvm14-lib-Object + llvm14-lib-ProfileData + llvm14-lib-Support + lib-Transforms-AggressiveInstCombine + lib-Transforms-InstCombine + lib-Transforms-Instrumentation + lib-Transforms-Scalar + lib-Transforms-Utils + lib-Transforms-Vectorize +) +target_sources(lib-Transforms-IPO PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/AlwaysInliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Annotation2Metadata.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ArgumentPromotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Attributor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/AttributorAttributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/BarrierNoopPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/BlockExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/CalledValuePropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ConstantMerge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/CrossDSOCFI.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/DeadArgumentElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ElimAvailExtern.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ExtractGV.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ForceFunctionAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/FunctionAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/FunctionImport.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/FunctionSpecialization.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/GlobalDCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/GlobalOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/GlobalSplit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/HotColdSplitting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/IPO.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/IROutliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/InferFunctionAttrs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/InlineSimple.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Inliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/Internalize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/LoopExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/LowerTypeTests.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/MergeFunctions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ModuleInliner.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/OpenMPOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/PartialInlining.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/PassManagerBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/PruneEH.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SCCP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SampleContextTracker.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SampleProfile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SampleProfileProbe.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/StripDeadPrototypes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/StripSymbols.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/SyntheticCountsPropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/IPO/WholeProgramDevirt.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..c6dc4864667c --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.darwin-arm64.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(lib-Transforms-InstCombine) +target_compile_options(lib-Transforms-InstCombine PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-InstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine +) +target_link_libraries(lib-Transforms-InstCombine PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-InstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineAddSub.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineCasts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineCompares.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineNegator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombinePHI.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineSelect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineShifts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineVectorOps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstructionCombining.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..c6dc4864667c --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.darwin-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(lib-Transforms-InstCombine) +target_compile_options(lib-Transforms-InstCombine PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-InstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine +) +target_link_libraries(lib-Transforms-InstCombine PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-InstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineAddSub.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineCasts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineCompares.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineNegator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombinePHI.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineSelect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineShifts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineVectorOps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstructionCombining.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..0f3e8fe7fd97 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.linux-aarch64.txt @@ -0,0 +1,43 @@ + +# 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(lib-Transforms-InstCombine) +target_compile_options(lib-Transforms-InstCombine PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-InstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine +) +target_link_libraries(lib-Transforms-InstCombine PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-InstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineAddSub.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineCasts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineCompares.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineNegator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombinePHI.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineSelect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineShifts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineVectorOps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstructionCombining.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..0f3e8fe7fd97 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.linux-x86_64.txt @@ -0,0 +1,43 @@ + +# 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(lib-Transforms-InstCombine) +target_compile_options(lib-Transforms-InstCombine PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-InstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine +) +target_link_libraries(lib-Transforms-InstCombine PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-InstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineAddSub.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineCasts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineCompares.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineNegator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombinePHI.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineSelect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineShifts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineVectorOps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstructionCombining.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.txt b/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..c6dc4864667c --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/InstCombine/CMakeLists.windows-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(lib-Transforms-InstCombine) +target_compile_options(lib-Transforms-InstCombine PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-InstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine +) +target_link_libraries(lib-Transforms-InstCombine PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-InstCombine PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineAddSub.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineAtomicRMW.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineCasts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineCompares.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineNegator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombinePHI.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineSelect.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineShifts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstCombineVectorOps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/InstCombine/InstructionCombining.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..41d5f49dc299 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.darwin-arm64.txt @@ -0,0 +1,48 @@ + +# 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(lib-Transforms-Instrumentation) +target_compile_options(lib-Transforms-Instrumentation PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Instrumentation PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation +) +target_link_libraries(lib-Transforms-Instrumentation PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-ProfileData + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-Instrumentation PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/AddressSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/BoundsChecking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/CGProfile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/ControlHeightReduction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/GCOVProfiling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/InstrOrderFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/InstrProfiling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/Instrumentation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/MemProfiler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/MemorySanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/PGOInstrumentation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/PoisonChecking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/SanitizerCoverage.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/ThreadSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/ValueProfileCollector.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..41d5f49dc299 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,48 @@ + +# 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(lib-Transforms-Instrumentation) +target_compile_options(lib-Transforms-Instrumentation PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Instrumentation PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation +) +target_link_libraries(lib-Transforms-Instrumentation PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-ProfileData + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-Instrumentation PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/AddressSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/BoundsChecking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/CGProfile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/ControlHeightReduction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/GCOVProfiling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/InstrOrderFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/InstrProfiling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/Instrumentation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/MemProfiler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/MemorySanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/PGOInstrumentation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/PoisonChecking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/SanitizerCoverage.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/ThreadSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/ValueProfileCollector.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..1dbd2a3fa921 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.linux-aarch64.txt @@ -0,0 +1,49 @@ + +# 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(lib-Transforms-Instrumentation) +target_compile_options(lib-Transforms-Instrumentation PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Instrumentation PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation +) +target_link_libraries(lib-Transforms-Instrumentation PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-ProfileData + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-Instrumentation PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/AddressSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/BoundsChecking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/CGProfile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/ControlHeightReduction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/GCOVProfiling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/InstrOrderFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/InstrProfiling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/Instrumentation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/MemProfiler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/MemorySanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/PGOInstrumentation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/PoisonChecking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/SanitizerCoverage.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/ThreadSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/ValueProfileCollector.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..1dbd2a3fa921 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.linux-x86_64.txt @@ -0,0 +1,49 @@ + +# 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(lib-Transforms-Instrumentation) +target_compile_options(lib-Transforms-Instrumentation PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Instrumentation PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation +) +target_link_libraries(lib-Transforms-Instrumentation PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-ProfileData + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-Instrumentation PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/AddressSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/BoundsChecking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/CGProfile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/ControlHeightReduction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/GCOVProfiling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/InstrOrderFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/InstrProfiling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/Instrumentation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/MemProfiler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/MemorySanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/PGOInstrumentation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/PoisonChecking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/SanitizerCoverage.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/ThreadSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/ValueProfileCollector.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.txt b/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..41d5f49dc299 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Instrumentation/CMakeLists.windows-x86_64.txt @@ -0,0 +1,48 @@ + +# 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(lib-Transforms-Instrumentation) +target_compile_options(lib-Transforms-Instrumentation PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Instrumentation PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation +) +target_link_libraries(lib-Transforms-Instrumentation PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-MC + llvm14-lib-ProfileData + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-Instrumentation PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/AddressSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/BoundsChecking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/CGProfile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/ControlHeightReduction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/GCOVProfiling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/InstrOrderFile.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/InstrProfiling.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/Instrumentation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/MemProfiler.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/MemorySanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/PGOInstrumentation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/PoisonChecking.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/SanitizerCoverage.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/ThreadSanitizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Instrumentation/ValueProfileCollector.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..48566cf1a606 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.darwin-arm64.txt @@ -0,0 +1,36 @@ + +# 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(lib-Transforms-ObjCARC) +target_compile_options(lib-Transforms-ObjCARC PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-ObjCARC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC +) +target_link_libraries(lib-Transforms-ObjCARC PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-ObjCARC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/DependencyAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCContract.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCExpand.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCOpts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/PtrState.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..48566cf1a606 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,36 @@ + +# 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(lib-Transforms-ObjCARC) +target_compile_options(lib-Transforms-ObjCARC PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-ObjCARC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC +) +target_link_libraries(lib-Transforms-ObjCARC PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-ObjCARC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/DependencyAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCContract.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCExpand.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCOpts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/PtrState.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..05fc2d977aae --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.linux-aarch64.txt @@ -0,0 +1,37 @@ + +# 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(lib-Transforms-ObjCARC) +target_compile_options(lib-Transforms-ObjCARC PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-ObjCARC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC +) +target_link_libraries(lib-Transforms-ObjCARC PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-ObjCARC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/DependencyAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCContract.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCExpand.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCOpts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/PtrState.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..05fc2d977aae --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.linux-x86_64.txt @@ -0,0 +1,37 @@ + +# 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(lib-Transforms-ObjCARC) +target_compile_options(lib-Transforms-ObjCARC PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-ObjCARC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC +) +target_link_libraries(lib-Transforms-ObjCARC PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-ObjCARC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/DependencyAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCContract.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCExpand.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCOpts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/PtrState.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.txt b/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..48566cf1a606 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/ObjCARC/CMakeLists.windows-x86_64.txt @@ -0,0 +1,36 @@ + +# 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(lib-Transforms-ObjCARC) +target_compile_options(lib-Transforms-ObjCARC PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-ObjCARC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC +) +target_link_libraries(lib-Transforms-ObjCARC PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-ObjCARC PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/DependencyAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCContract.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCExpand.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ObjCARCOpts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/ObjCARC/PtrState.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..9ed80178f3b7 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.darwin-arm64.txt @@ -0,0 +1,108 @@ + +# 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(lib-Transforms-Scalar) +target_compile_options(lib-Transforms-Scalar PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Scalar PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar +) +target_link_libraries(lib-Transforms-Scalar PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-AggressiveInstCombine + lib-Transforms-InstCombine + lib-Transforms-Utils +) +target_sources(lib-Transforms-Scalar PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ADCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/AnnotationRemarks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/BDCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/CallSiteSplitting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ConstantHoisting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ConstraintElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DFAJumpThreading.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DeadStoreElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DivRemPairs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/EarlyCSE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/FlattenCFGPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Float2Int.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GVN.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GVNHoist.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GVNSink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GuardWidening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/IVUsersPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/IndVarSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/InferAddressSpaces.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/InstSimplifyPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/JumpThreading.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LICM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopBoundSplit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopDataPrefetch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopDeletion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopDistribute.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopFlatten.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopFuse.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopIdiomRecognize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopInstSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopInterchange.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopLoadElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopPassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopPredication.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopRerollPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopRotation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopSimplifyCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopSink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopStrengthReduce.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopUnrollPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopUnswitch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopVersioningLICM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerAtomic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerWidenableCondition.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MakeGuardsExplicit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MemCpyOptimizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MergeICmps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/NaryReassociate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/NewGVN.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/PlaceSafepoints.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Reassociate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Reg2Mem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SCCP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SROA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Scalar.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Scalarizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SimplifyCFGPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Sink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SpeculativeExecution.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/StructurizeCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/TailRecursionElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/WarnMissedTransforms.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..9ed80178f3b7 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,108 @@ + +# 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(lib-Transforms-Scalar) +target_compile_options(lib-Transforms-Scalar PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Scalar PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar +) +target_link_libraries(lib-Transforms-Scalar PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-AggressiveInstCombine + lib-Transforms-InstCombine + lib-Transforms-Utils +) +target_sources(lib-Transforms-Scalar PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ADCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/AnnotationRemarks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/BDCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/CallSiteSplitting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ConstantHoisting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ConstraintElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DFAJumpThreading.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DeadStoreElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DivRemPairs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/EarlyCSE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/FlattenCFGPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Float2Int.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GVN.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GVNHoist.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GVNSink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GuardWidening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/IVUsersPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/IndVarSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/InferAddressSpaces.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/InstSimplifyPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/JumpThreading.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LICM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopBoundSplit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopDataPrefetch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopDeletion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopDistribute.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopFlatten.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopFuse.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopIdiomRecognize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopInstSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopInterchange.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopLoadElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopPassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopPredication.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopRerollPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopRotation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopSimplifyCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopSink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopStrengthReduce.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopUnrollPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopUnswitch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopVersioningLICM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerAtomic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerWidenableCondition.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MakeGuardsExplicit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MemCpyOptimizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MergeICmps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/NaryReassociate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/NewGVN.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/PlaceSafepoints.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Reassociate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Reg2Mem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SCCP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SROA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Scalar.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Scalarizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SimplifyCFGPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Sink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SpeculativeExecution.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/StructurizeCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/TailRecursionElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/WarnMissedTransforms.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..cbc5530fbcb5 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.linux-aarch64.txt @@ -0,0 +1,109 @@ + +# 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(lib-Transforms-Scalar) +target_compile_options(lib-Transforms-Scalar PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Scalar PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar +) +target_link_libraries(lib-Transforms-Scalar PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-AggressiveInstCombine + lib-Transforms-InstCombine + lib-Transforms-Utils +) +target_sources(lib-Transforms-Scalar PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ADCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/AnnotationRemarks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/BDCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/CallSiteSplitting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ConstantHoisting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ConstraintElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DFAJumpThreading.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DeadStoreElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DivRemPairs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/EarlyCSE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/FlattenCFGPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Float2Int.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GVN.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GVNHoist.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GVNSink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GuardWidening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/IVUsersPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/IndVarSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/InferAddressSpaces.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/InstSimplifyPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/JumpThreading.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LICM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopBoundSplit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopDataPrefetch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopDeletion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopDistribute.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopFlatten.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopFuse.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopIdiomRecognize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopInstSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopInterchange.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopLoadElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopPassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopPredication.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopRerollPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopRotation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopSimplifyCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopSink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopStrengthReduce.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopUnrollPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopUnswitch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopVersioningLICM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerAtomic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerWidenableCondition.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MakeGuardsExplicit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MemCpyOptimizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MergeICmps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/NaryReassociate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/NewGVN.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/PlaceSafepoints.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Reassociate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Reg2Mem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SCCP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SROA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Scalar.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Scalarizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SimplifyCFGPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Sink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SpeculativeExecution.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/StructurizeCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/TailRecursionElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/WarnMissedTransforms.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..cbc5530fbcb5 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.linux-x86_64.txt @@ -0,0 +1,109 @@ + +# 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(lib-Transforms-Scalar) +target_compile_options(lib-Transforms-Scalar PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Scalar PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar +) +target_link_libraries(lib-Transforms-Scalar PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-AggressiveInstCombine + lib-Transforms-InstCombine + lib-Transforms-Utils +) +target_sources(lib-Transforms-Scalar PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ADCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/AnnotationRemarks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/BDCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/CallSiteSplitting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ConstantHoisting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ConstraintElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DFAJumpThreading.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DeadStoreElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DivRemPairs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/EarlyCSE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/FlattenCFGPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Float2Int.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GVN.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GVNHoist.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GVNSink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GuardWidening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/IVUsersPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/IndVarSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/InferAddressSpaces.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/InstSimplifyPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/JumpThreading.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LICM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopBoundSplit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopDataPrefetch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopDeletion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopDistribute.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopFlatten.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopFuse.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopIdiomRecognize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopInstSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopInterchange.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopLoadElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopPassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopPredication.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopRerollPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopRotation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopSimplifyCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopSink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopStrengthReduce.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopUnrollPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopUnswitch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopVersioningLICM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerAtomic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerWidenableCondition.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MakeGuardsExplicit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MemCpyOptimizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MergeICmps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/NaryReassociate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/NewGVN.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/PlaceSafepoints.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Reassociate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Reg2Mem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SCCP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SROA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Scalar.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Scalarizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SimplifyCFGPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Sink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SpeculativeExecution.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/StructurizeCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/TailRecursionElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/WarnMissedTransforms.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.txt b/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..9ed80178f3b7 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Scalar/CMakeLists.windows-x86_64.txt @@ -0,0 +1,108 @@ + +# 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(lib-Transforms-Scalar) +target_compile_options(lib-Transforms-Scalar PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Scalar PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar +) +target_link_libraries(lib-Transforms-Scalar PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-AggressiveInstCombine + lib-Transforms-InstCombine + lib-Transforms-Utils +) +target_sources(lib-Transforms-Scalar PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ADCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/AnnotationRemarks.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/BDCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/CallSiteSplitting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ConstantHoisting.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ConstraintElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DCE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DFAJumpThreading.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DeadStoreElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/DivRemPairs.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/EarlyCSE.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/FlattenCFGPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Float2Int.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GVN.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GVNHoist.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GVNSink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/GuardWidening.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/IVUsersPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/IndVarSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/InferAddressSpaces.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/InstSimplifyPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/JumpThreading.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LICM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopBoundSplit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopDataPrefetch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopDeletion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopDistribute.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopFlatten.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopFuse.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopIdiomRecognize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopInstSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopInterchange.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopLoadElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopPassManager.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopPredication.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopRerollPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopRotation.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopSimplifyCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopSink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopStrengthReduce.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopUnrollPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopUnswitch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LoopVersioningLICM.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerAtomic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/LowerWidenableCondition.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MakeGuardsExplicit.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MemCpyOptimizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MergeICmps.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/NaryReassociate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/NewGVN.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/PlaceSafepoints.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Reassociate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Reg2Mem.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SCCP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SROA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Scalar.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Scalarizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SimplifyCFGPass.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/Sink.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/SpeculativeExecution.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/StructurizeCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/TailRecursionElimination.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Scalar/WarnMissedTransforms.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..7546a71a489c --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.darwin-arm64.txt @@ -0,0 +1,103 @@ + +# 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(lib-Transforms-Utils) +target_compile_options(lib-Transforms-Utils PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Utils PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils +) +target_link_libraries(lib-Transforms-Utils PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(lib-Transforms-Utils PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ASanStackFrameLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/AddDiscriminators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/AssumeBundleBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BasicBlockUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BreakCriticalEdges.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BuildLibCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BypassSlowDivision.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CallGraphUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CallPromotionUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CanonicalizeAliases.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CloneFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CloneModule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CodeExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CodeLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CodeMoverUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CtorUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Debugify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/DemoteRegToStack.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/EntryExitInstrumenter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/EscapeEnumerator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Evaluator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FixIrreducible.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FlattenCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FunctionComparator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FunctionImportUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/GlobalStatus.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/GuardUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/HelloWorld.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/InjectTLIMappings.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/InlineFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/InstructionNamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/IntegerDivision.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LCSSA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LibCallsShrinkWrap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Local.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopPeel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopRotationUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUnroll.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUnrollAndJam.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUnrollRuntime.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopVersioning.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LowerInvoke.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LowerMemIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LowerSwitch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/MatrixUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Mem2Reg.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/MemoryOpRemark.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/MetaRenamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ModuleUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/NameAnonGlobals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/PredicateInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/PromoteMemoryToRegister.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/RelLookupTableConverter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SCCPSolver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SSAUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SSAUpdaterBulk.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SampleProfileInference.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SampleProfileLoaderBaseUtil.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SanitizerStats.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ScalarEvolutionExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SimplifyCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SimplifyIndVar.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SimplifyLibCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SizeOpts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SplitModule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/StripGCRelocates.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SymbolRewriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/UnifyLoopExits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Utils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/VNCoercion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ValueMapper.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..7546a71a489c --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,103 @@ + +# 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(lib-Transforms-Utils) +target_compile_options(lib-Transforms-Utils PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Utils PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils +) +target_link_libraries(lib-Transforms-Utils PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(lib-Transforms-Utils PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ASanStackFrameLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/AddDiscriminators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/AssumeBundleBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BasicBlockUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BreakCriticalEdges.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BuildLibCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BypassSlowDivision.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CallGraphUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CallPromotionUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CanonicalizeAliases.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CloneFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CloneModule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CodeExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CodeLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CodeMoverUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CtorUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Debugify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/DemoteRegToStack.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/EntryExitInstrumenter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/EscapeEnumerator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Evaluator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FixIrreducible.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FlattenCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FunctionComparator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FunctionImportUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/GlobalStatus.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/GuardUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/HelloWorld.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/InjectTLIMappings.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/InlineFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/InstructionNamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/IntegerDivision.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LCSSA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LibCallsShrinkWrap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Local.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopPeel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopRotationUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUnroll.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUnrollAndJam.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUnrollRuntime.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopVersioning.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LowerInvoke.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LowerMemIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LowerSwitch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/MatrixUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Mem2Reg.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/MemoryOpRemark.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/MetaRenamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ModuleUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/NameAnonGlobals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/PredicateInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/PromoteMemoryToRegister.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/RelLookupTableConverter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SCCPSolver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SSAUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SSAUpdaterBulk.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SampleProfileInference.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SampleProfileLoaderBaseUtil.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SanitizerStats.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ScalarEvolutionExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SimplifyCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SimplifyIndVar.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SimplifyLibCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SizeOpts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SplitModule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/StripGCRelocates.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SymbolRewriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/UnifyLoopExits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Utils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/VNCoercion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ValueMapper.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..45ca66c4a7f7 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.linux-aarch64.txt @@ -0,0 +1,104 @@ + +# 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(lib-Transforms-Utils) +target_compile_options(lib-Transforms-Utils PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Utils PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils +) +target_link_libraries(lib-Transforms-Utils PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(lib-Transforms-Utils PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ASanStackFrameLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/AddDiscriminators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/AssumeBundleBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BasicBlockUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BreakCriticalEdges.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BuildLibCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BypassSlowDivision.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CallGraphUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CallPromotionUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CanonicalizeAliases.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CloneFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CloneModule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CodeExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CodeLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CodeMoverUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CtorUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Debugify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/DemoteRegToStack.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/EntryExitInstrumenter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/EscapeEnumerator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Evaluator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FixIrreducible.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FlattenCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FunctionComparator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FunctionImportUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/GlobalStatus.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/GuardUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/HelloWorld.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/InjectTLIMappings.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/InlineFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/InstructionNamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/IntegerDivision.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LCSSA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LibCallsShrinkWrap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Local.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopPeel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopRotationUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUnroll.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUnrollAndJam.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUnrollRuntime.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopVersioning.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LowerInvoke.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LowerMemIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LowerSwitch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/MatrixUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Mem2Reg.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/MemoryOpRemark.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/MetaRenamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ModuleUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/NameAnonGlobals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/PredicateInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/PromoteMemoryToRegister.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/RelLookupTableConverter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SCCPSolver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SSAUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SSAUpdaterBulk.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SampleProfileInference.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SampleProfileLoaderBaseUtil.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SanitizerStats.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ScalarEvolutionExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SimplifyCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SimplifyIndVar.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SimplifyLibCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SizeOpts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SplitModule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/StripGCRelocates.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SymbolRewriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/UnifyLoopExits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Utils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/VNCoercion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ValueMapper.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..45ca66c4a7f7 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.linux-x86_64.txt @@ -0,0 +1,104 @@ + +# 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(lib-Transforms-Utils) +target_compile_options(lib-Transforms-Utils PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Utils PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils +) +target_link_libraries(lib-Transforms-Utils PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(lib-Transforms-Utils PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ASanStackFrameLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/AddDiscriminators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/AssumeBundleBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BasicBlockUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BreakCriticalEdges.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BuildLibCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BypassSlowDivision.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CallGraphUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CallPromotionUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CanonicalizeAliases.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CloneFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CloneModule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CodeExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CodeLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CodeMoverUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CtorUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Debugify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/DemoteRegToStack.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/EntryExitInstrumenter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/EscapeEnumerator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Evaluator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FixIrreducible.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FlattenCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FunctionComparator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FunctionImportUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/GlobalStatus.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/GuardUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/HelloWorld.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/InjectTLIMappings.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/InlineFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/InstructionNamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/IntegerDivision.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LCSSA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LibCallsShrinkWrap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Local.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopPeel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopRotationUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUnroll.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUnrollAndJam.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUnrollRuntime.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopVersioning.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LowerInvoke.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LowerMemIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LowerSwitch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/MatrixUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Mem2Reg.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/MemoryOpRemark.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/MetaRenamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ModuleUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/NameAnonGlobals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/PredicateInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/PromoteMemoryToRegister.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/RelLookupTableConverter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SCCPSolver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SSAUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SSAUpdaterBulk.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SampleProfileInference.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SampleProfileLoaderBaseUtil.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SanitizerStats.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ScalarEvolutionExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SimplifyCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SimplifyIndVar.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SimplifyLibCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SizeOpts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SplitModule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/StripGCRelocates.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SymbolRewriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/UnifyLoopExits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Utils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/VNCoercion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ValueMapper.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.txt b/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..7546a71a489c --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Utils/CMakeLists.windows-x86_64.txt @@ -0,0 +1,103 @@ + +# 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(lib-Transforms-Utils) +target_compile_options(lib-Transforms-Utils PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Utils PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils +) +target_link_libraries(lib-Transforms-Utils PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support +) +target_sources(lib-Transforms-Utils PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ASanStackFrameLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/AddDiscriminators.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/AssumeBundleBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BasicBlockUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BreakCriticalEdges.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BuildLibCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/BypassSlowDivision.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CallGraphUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CallPromotionUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CanonicalizeAliases.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CloneFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CloneModule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CodeExtractor.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CodeLayout.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CodeMoverUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/CtorUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Debugify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/DemoteRegToStack.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/EntryExitInstrumenter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/EscapeEnumerator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Evaluator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FixIrreducible.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FlattenCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FunctionComparator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/FunctionImportUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/GlobalStatus.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/GuardUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/HelloWorld.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/InjectTLIMappings.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/InlineFunction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/InstructionNamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/IntegerDivision.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LCSSA.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LibCallsShrinkWrap.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Local.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopPeel.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopRotationUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopSimplify.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUnroll.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUnrollAndJam.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUnrollRuntime.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LoopVersioning.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LowerInvoke.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LowerMemIntrinsics.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/LowerSwitch.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/MatrixUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Mem2Reg.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/MemoryOpRemark.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/MetaRenamer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ModuleUtils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/NameAnonGlobals.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/PredicateInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/PromoteMemoryToRegister.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/RelLookupTableConverter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SCCPSolver.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SSAUpdater.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SSAUpdaterBulk.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SampleProfileInference.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SampleProfileLoaderBaseUtil.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SanitizerStats.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ScalarEvolutionExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SimplifyCFG.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SimplifyIndVar.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SimplifyLibCalls.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SizeOpts.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SplitModule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/StripGCRelocates.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/SymbolRewriter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/UnifyLoopExits.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/Utils.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/VNCoercion.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Utils/ValueMapper.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..bb9a9d7ea151 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.darwin-arm64.txt @@ -0,0 +1,39 @@ + +# 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(lib-Transforms-Vectorize) +target_compile_options(lib-Transforms-Vectorize PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Vectorize PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize +) +target_link_libraries(lib-Transforms-Vectorize PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-Vectorize PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/LoopVectorize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/SLPVectorizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlan.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanPredicator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanSLP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanTransforms.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VectorCombine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/Vectorize.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..bb9a9d7ea151 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,39 @@ + +# 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(lib-Transforms-Vectorize) +target_compile_options(lib-Transforms-Vectorize PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Vectorize PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize +) +target_link_libraries(lib-Transforms-Vectorize PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-Vectorize PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/LoopVectorize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/SLPVectorizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlan.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanPredicator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanSLP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanTransforms.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VectorCombine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/Vectorize.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..cea55ea004e2 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.linux-aarch64.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(lib-Transforms-Vectorize) +target_compile_options(lib-Transforms-Vectorize PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Vectorize PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize +) +target_link_libraries(lib-Transforms-Vectorize PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-Vectorize PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/LoopVectorize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/SLPVectorizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlan.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanPredicator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanSLP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanTransforms.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VectorCombine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/Vectorize.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..cea55ea004e2 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.linux-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(lib-Transforms-Vectorize) +target_compile_options(lib-Transforms-Vectorize PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Vectorize PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize +) +target_link_libraries(lib-Transforms-Vectorize PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-Vectorize PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/LoopVectorize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/SLPVectorizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlan.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanPredicator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanSLP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanTransforms.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VectorCombine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/Vectorize.cpp +) diff --git a/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.txt b/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..bb9a9d7ea151 --- /dev/null +++ b/contrib/libs/llvm14/lib/Transforms/Vectorize/CMakeLists.windows-x86_64.txt @@ -0,0 +1,39 @@ + +# 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(lib-Transforms-Vectorize) +target_compile_options(lib-Transforms-Vectorize PRIVATE + $,,-Wno-everything> +) +target_include_directories(lib-Transforms-Vectorize PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize +) +target_link_libraries(lib-Transforms-Vectorize PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + libs-llvm14-include + llvm14-lib-Analysis + llvm14-lib-IR + llvm14-lib-Support + lib-Transforms-Utils +) +target_sources(lib-Transforms-Vectorize PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/LoopVectorize.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/SLPVectorizer.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlan.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanPredicator.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanSLP.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanTransforms.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VPlanVerifier.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/VectorCombine.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/lib/Transforms/Vectorize/Vectorize.cpp +) diff --git a/contrib/libs/llvm14/utils/CMakeLists.txt b/contrib/libs/llvm14/utils/CMakeLists.txt new file mode 100644 index 000000000000..b58ec8b78f15 --- /dev/null +++ b/contrib/libs/llvm14/utils/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(TableGen) diff --git a/contrib/libs/llvm14/utils/TableGen/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/utils/TableGen/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..8acb2dfb32d7 --- /dev/null +++ b/contrib/libs/llvm14/utils/TableGen/CMakeLists.darwin-arm64.txt @@ -0,0 +1,90 @@ + +# 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(GlobalISel) + +add_executable(llvm-tblgen) +target_compile_options(llvm-tblgen PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm-tblgen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen +) +target_link_libraries(llvm-tblgen PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Demangle + llvm14-lib-Support + llvm14-lib-TableGen + utils-TableGen-GlobalISel + cpp-sanitizer-include +) +target_link_options(llvm-tblgen PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(llvm-tblgen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/AsmMatcherEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/AsmWriterEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/AsmWriterInst.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/Attributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CTagsEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CallingConvEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeBeadsGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeEmitterGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenDAGPatterns.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenHwModes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenInstruction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenMapTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenRegisters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenTarget.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CompressInstEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcher.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcherEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcherGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcherOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DFAEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DFAPacketizerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DirectiveEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DisassemblerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/ExegesisEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/FastISelEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/FixedLenDecoderEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GICombinerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISelEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/InfoByHwMode.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/InstrDocsEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/InstrInfoEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/IntrinsicEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/OptEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/OptParserEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/OptRSTEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/PredicateExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/PseudoLoweringEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/RegisterBankEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/RegisterInfoEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SDNodeProperties.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SearchableTableEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SubtargetEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SubtargetFeatureInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/TableGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/Types.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86DisassemblerTables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86FoldTablesEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86ModRMFilters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86RecognizableInstr.cpp +) +target_allocator(llvm-tblgen + system_allocator +) +vcs_info(llvm-tblgen) diff --git a/contrib/libs/llvm14/utils/TableGen/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/utils/TableGen/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..8acb2dfb32d7 --- /dev/null +++ b/contrib/libs/llvm14/utils/TableGen/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,90 @@ + +# 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(GlobalISel) + +add_executable(llvm-tblgen) +target_compile_options(llvm-tblgen PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm-tblgen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen +) +target_link_libraries(llvm-tblgen PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Demangle + llvm14-lib-Support + llvm14-lib-TableGen + utils-TableGen-GlobalISel + cpp-sanitizer-include +) +target_link_options(llvm-tblgen PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(llvm-tblgen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/AsmMatcherEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/AsmWriterEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/AsmWriterInst.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/Attributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CTagsEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CallingConvEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeBeadsGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeEmitterGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenDAGPatterns.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenHwModes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenInstruction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenMapTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenRegisters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenTarget.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CompressInstEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcher.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcherEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcherGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcherOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DFAEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DFAPacketizerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DirectiveEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DisassemblerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/ExegesisEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/FastISelEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/FixedLenDecoderEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GICombinerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISelEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/InfoByHwMode.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/InstrDocsEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/InstrInfoEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/IntrinsicEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/OptEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/OptParserEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/OptRSTEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/PredicateExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/PseudoLoweringEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/RegisterBankEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/RegisterInfoEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SDNodeProperties.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SearchableTableEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SubtargetEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SubtargetFeatureInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/TableGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/Types.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86DisassemblerTables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86FoldTablesEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86ModRMFilters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86RecognizableInstr.cpp +) +target_allocator(llvm-tblgen + system_allocator +) +vcs_info(llvm-tblgen) diff --git a/contrib/libs/llvm14/utils/TableGen/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/utils/TableGen/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..25b0fa9b7cc1 --- /dev/null +++ b/contrib/libs/llvm14/utils/TableGen/CMakeLists.linux-aarch64.txt @@ -0,0 +1,93 @@ + +# 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(GlobalISel) + +add_executable(llvm-tblgen) +target_compile_options(llvm-tblgen PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm-tblgen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen +) +target_link_libraries(llvm-tblgen PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Demangle + llvm14-lib-Support + llvm14-lib-TableGen + utils-TableGen-GlobalISel + cpp-sanitizer-include +) +target_link_options(llvm-tblgen PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(llvm-tblgen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/AsmMatcherEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/AsmWriterEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/AsmWriterInst.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/Attributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CTagsEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CallingConvEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeBeadsGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeEmitterGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenDAGPatterns.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenHwModes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenInstruction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenMapTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenRegisters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenTarget.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CompressInstEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcher.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcherEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcherGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcherOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DFAEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DFAPacketizerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DirectiveEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DisassemblerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/ExegesisEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/FastISelEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/FixedLenDecoderEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GICombinerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISelEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/InfoByHwMode.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/InstrDocsEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/InstrInfoEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/IntrinsicEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/OptEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/OptParserEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/OptRSTEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/PredicateExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/PseudoLoweringEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/RegisterBankEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/RegisterInfoEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SDNodeProperties.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SearchableTableEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SubtargetEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SubtargetFeatureInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/TableGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/Types.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86DisassemblerTables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86FoldTablesEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86ModRMFilters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86RecognizableInstr.cpp +) +target_allocator(llvm-tblgen + cpp-malloc-jemalloc +) +vcs_info(llvm-tblgen) diff --git a/contrib/libs/llvm14/utils/TableGen/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/utils/TableGen/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..fe9dbdcf1b8b --- /dev/null +++ b/contrib/libs/llvm14/utils/TableGen/CMakeLists.linux-x86_64.txt @@ -0,0 +1,94 @@ + +# 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(GlobalISel) + +add_executable(llvm-tblgen) +target_compile_options(llvm-tblgen PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm-tblgen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen +) +target_link_libraries(llvm-tblgen PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Demangle + llvm14-lib-Support + llvm14-lib-TableGen + utils-TableGen-GlobalISel + cpp-sanitizer-include +) +target_link_options(llvm-tblgen PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(llvm-tblgen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/AsmMatcherEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/AsmWriterEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/AsmWriterInst.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/Attributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CTagsEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CallingConvEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeBeadsGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeEmitterGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenDAGPatterns.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenHwModes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenInstruction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenMapTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenRegisters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenTarget.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CompressInstEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcher.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcherEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcherGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcherOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DFAEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DFAPacketizerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DirectiveEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DisassemblerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/ExegesisEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/FastISelEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/FixedLenDecoderEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GICombinerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISelEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/InfoByHwMode.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/InstrDocsEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/InstrInfoEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/IntrinsicEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/OptEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/OptParserEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/OptRSTEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/PredicateExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/PseudoLoweringEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/RegisterBankEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/RegisterInfoEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SDNodeProperties.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SearchableTableEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SubtargetEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SubtargetFeatureInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/TableGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/Types.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86DisassemblerTables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86FoldTablesEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86ModRMFilters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86RecognizableInstr.cpp +) +target_allocator(llvm-tblgen + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(llvm-tblgen) diff --git a/contrib/libs/llvm14/utils/TableGen/CMakeLists.txt b/contrib/libs/llvm14/utils/TableGen/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/utils/TableGen/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/utils/TableGen/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/utils/TableGen/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..25ae00a6c731 --- /dev/null +++ b/contrib/libs/llvm14/utils/TableGen/CMakeLists.windows-x86_64.txt @@ -0,0 +1,85 @@ + +# 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(GlobalISel) + +add_executable(llvm-tblgen) +target_compile_options(llvm-tblgen PRIVATE + $,,-Wno-everything> +) +target_include_directories(llvm-tblgen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen +) +target_link_libraries(llvm-tblgen PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Demangle + llvm14-lib-Support + llvm14-lib-TableGen + utils-TableGen-GlobalISel + cpp-sanitizer-include +) +target_sources(llvm-tblgen PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/AsmMatcherEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/AsmWriterEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/AsmWriterInst.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/Attributes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CTagsEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CallingConvEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeBeadsGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeEmitterGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenDAGPatterns.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenHwModes.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenInstruction.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenMapTable.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenRegisters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenSchedule.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CodeGenTarget.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/CompressInstEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcher.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcherEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcherGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DAGISelMatcherOpt.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DFAEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DFAPacketizerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DirectiveEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/DisassemblerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/ExegesisEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/FastISelEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/FixedLenDecoderEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GICombinerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISelEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/InfoByHwMode.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/InstrDocsEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/InstrInfoEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/IntrinsicEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/OptEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/OptParserEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/OptRSTEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/PredicateExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/PseudoLoweringEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/RegisterBankEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/RegisterInfoEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SDNodeProperties.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SearchableTableEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SubtargetEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/SubtargetFeatureInfo.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/TableGen.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/Types.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86DisassemblerTables.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86FoldTablesEmitter.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86ModRMFilters.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/X86RecognizableInstr.cpp +) +target_allocator(llvm-tblgen + system_allocator +) +vcs_info(llvm-tblgen) diff --git a/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.darwin-arm64.txt b/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..43275d7d1f8a --- /dev/null +++ b/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.darwin-arm64.txt @@ -0,0 +1,32 @@ + +# 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(utils-TableGen-GlobalISel) +target_compile_options(utils-TableGen-GlobalISel PRIVATE + $,,-Wno-everything> +) +target_include_directories(utils-TableGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel +) +target_link_libraries(utils-TableGen-GlobalISel PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support + llvm14-lib-TableGen +) +target_sources(utils-TableGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/CodeExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDag.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagEdge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagInstr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagOperands.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagPredicate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagPredicateDependencyEdge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchTree.cpp +) diff --git a/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.darwin-x86_64.txt b/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..43275d7d1f8a --- /dev/null +++ b/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,32 @@ + +# 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(utils-TableGen-GlobalISel) +target_compile_options(utils-TableGen-GlobalISel PRIVATE + $,,-Wno-everything> +) +target_include_directories(utils-TableGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel +) +target_link_libraries(utils-TableGen-GlobalISel PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support + llvm14-lib-TableGen +) +target_sources(utils-TableGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/CodeExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDag.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagEdge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagInstr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagOperands.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagPredicate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagPredicateDependencyEdge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchTree.cpp +) diff --git a/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.linux-aarch64.txt b/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..b312adf510e1 --- /dev/null +++ b/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.linux-aarch64.txt @@ -0,0 +1,33 @@ + +# 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(utils-TableGen-GlobalISel) +target_compile_options(utils-TableGen-GlobalISel PRIVATE + $,,-Wno-everything> +) +target_include_directories(utils-TableGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel +) +target_link_libraries(utils-TableGen-GlobalISel PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support + llvm14-lib-TableGen +) +target_sources(utils-TableGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/CodeExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDag.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagEdge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagInstr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagOperands.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagPredicate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagPredicateDependencyEdge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchTree.cpp +) diff --git a/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.linux-x86_64.txt b/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..b312adf510e1 --- /dev/null +++ b/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.linux-x86_64.txt @@ -0,0 +1,33 @@ + +# 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(utils-TableGen-GlobalISel) +target_compile_options(utils-TableGen-GlobalISel PRIVATE + $,,-Wno-everything> +) +target_include_directories(utils-TableGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel +) +target_link_libraries(utils-TableGen-GlobalISel PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support + llvm14-lib-TableGen +) +target_sources(utils-TableGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/CodeExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDag.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagEdge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagInstr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagOperands.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagPredicate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagPredicateDependencyEdge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchTree.cpp +) diff --git a/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.txt b/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.windows-x86_64.txt b/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..43275d7d1f8a --- /dev/null +++ b/contrib/libs/llvm14/utils/TableGen/GlobalISel/CMakeLists.windows-x86_64.txt @@ -0,0 +1,32 @@ + +# 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(utils-TableGen-GlobalISel) +target_compile_options(utils-TableGen-GlobalISel PRIVATE + $,,-Wno-everything> +) +target_include_directories(utils-TableGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel +) +target_link_libraries(utils-TableGen-GlobalISel PUBLIC + contrib-libs-cxxsupp + contrib-libs-llvm14 + llvm14-lib-Support + llvm14-lib-TableGen +) +target_sources(utils-TableGen-GlobalISel PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/CodeExpander.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDag.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagEdge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagInstr.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagOperands.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagPredicate.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchDagPredicateDependencyEdge.cpp + ${CMAKE_SOURCE_DIR}/contrib/libs/llvm14/utils/TableGen/GlobalISel/GIMatchTree.cpp +) diff --git a/contrib/libs/lua/CMakeLists.darwin-arm64.txt b/contrib/libs/lua/CMakeLists.darwin-arm64.txt index b8bb770b445b..bd2e5d4bc8f8 100644 --- a/contrib/libs/lua/CMakeLists.darwin-arm64.txt +++ b/contrib/libs/lua/CMakeLists.darwin-arm64.txt @@ -30,6 +30,7 @@ target_link_libraries(contrib-libs-lua PUBLIC library-cpp-archive ) target_sources(contrib-libs-lua PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/lua/common.inc ${CMAKE_SOURCE_DIR}/contrib/libs/lua/lib.cpp ${CMAKE_BINARY_DIR}/contrib/libs/lua/common.inc ) diff --git a/contrib/libs/lua/CMakeLists.darwin-x86_64.txt b/contrib/libs/lua/CMakeLists.darwin-x86_64.txt index b8bb770b445b..bd2e5d4bc8f8 100644 --- a/contrib/libs/lua/CMakeLists.darwin-x86_64.txt +++ b/contrib/libs/lua/CMakeLists.darwin-x86_64.txt @@ -30,6 +30,7 @@ target_link_libraries(contrib-libs-lua PUBLIC library-cpp-archive ) target_sources(contrib-libs-lua PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/lua/common.inc ${CMAKE_SOURCE_DIR}/contrib/libs/lua/lib.cpp ${CMAKE_BINARY_DIR}/contrib/libs/lua/common.inc ) diff --git a/contrib/libs/lua/CMakeLists.linux-aarch64.txt b/contrib/libs/lua/CMakeLists.linux-aarch64.txt index c9c201999bbf..ebedc945e244 100644 --- a/contrib/libs/lua/CMakeLists.linux-aarch64.txt +++ b/contrib/libs/lua/CMakeLists.linux-aarch64.txt @@ -31,6 +31,7 @@ target_link_libraries(contrib-libs-lua PUBLIC library-cpp-archive ) target_sources(contrib-libs-lua PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/lua/common.inc ${CMAKE_SOURCE_DIR}/contrib/libs/lua/lib.cpp ${CMAKE_BINARY_DIR}/contrib/libs/lua/common.inc ) diff --git a/contrib/libs/lua/CMakeLists.linux-x86_64.txt b/contrib/libs/lua/CMakeLists.linux-x86_64.txt index c9c201999bbf..ebedc945e244 100644 --- a/contrib/libs/lua/CMakeLists.linux-x86_64.txt +++ b/contrib/libs/lua/CMakeLists.linux-x86_64.txt @@ -31,6 +31,7 @@ target_link_libraries(contrib-libs-lua PUBLIC library-cpp-archive ) target_sources(contrib-libs-lua PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/lua/common.inc ${CMAKE_SOURCE_DIR}/contrib/libs/lua/lib.cpp ${CMAKE_BINARY_DIR}/contrib/libs/lua/common.inc ) diff --git a/contrib/libs/lua/CMakeLists.windows-x86_64.txt b/contrib/libs/lua/CMakeLists.windows-x86_64.txt index eae8e899a2da..6a25dc93dea5 100644 --- a/contrib/libs/lua/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/lua/CMakeLists.windows-x86_64.txt @@ -30,6 +30,7 @@ target_link_libraries(contrib-libs-lua PUBLIC library-cpp-archive ) target_sources(contrib-libs-lua PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/lua/common.inc ${CMAKE_SOURCE_DIR}/contrib/libs/lua/lib.cpp ${CMAKE_BINARY_DIR}/contrib/libs/lua/common.inc ) diff --git a/contrib/libs/opentelemetry-proto/CMakeLists.darwin-arm64.txt b/contrib/libs/opentelemetry-proto/CMakeLists.darwin-arm64.txt index c26ac9dfec60..09bd686ee0a2 100644 --- a/contrib/libs/opentelemetry-proto/CMakeLists.darwin-arm64.txt +++ b/contrib/libs/opentelemetry-proto/CMakeLists.darwin-arm64.txt @@ -135,6 +135,24 @@ target_proto_messages(contrib-libs-opentelemetry-proto PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.proto ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.proto ) +target_sources(contrib-libs-opentelemetry-proto PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/common/v1/common.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/common/v1/common.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/logs/v1/logs.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/logs/v1/logs.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.grpc.pb.h +) target_proto_addincls(contrib-libs-opentelemetry-proto ./contrib/libs/opentelemetry-proto ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto diff --git a/contrib/libs/opentelemetry-proto/CMakeLists.darwin-x86_64.txt b/contrib/libs/opentelemetry-proto/CMakeLists.darwin-x86_64.txt index c26ac9dfec60..09bd686ee0a2 100644 --- a/contrib/libs/opentelemetry-proto/CMakeLists.darwin-x86_64.txt +++ b/contrib/libs/opentelemetry-proto/CMakeLists.darwin-x86_64.txt @@ -135,6 +135,24 @@ target_proto_messages(contrib-libs-opentelemetry-proto PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.proto ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.proto ) +target_sources(contrib-libs-opentelemetry-proto PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/common/v1/common.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/common/v1/common.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/logs/v1/logs.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/logs/v1/logs.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.grpc.pb.h +) target_proto_addincls(contrib-libs-opentelemetry-proto ./contrib/libs/opentelemetry-proto ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto diff --git a/contrib/libs/opentelemetry-proto/CMakeLists.linux-aarch64.txt b/contrib/libs/opentelemetry-proto/CMakeLists.linux-aarch64.txt index 3379498d0ebf..03d9f9516583 100644 --- a/contrib/libs/opentelemetry-proto/CMakeLists.linux-aarch64.txt +++ b/contrib/libs/opentelemetry-proto/CMakeLists.linux-aarch64.txt @@ -136,6 +136,24 @@ target_proto_messages(contrib-libs-opentelemetry-proto PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.proto ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.proto ) +target_sources(contrib-libs-opentelemetry-proto PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/common/v1/common.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/common/v1/common.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/logs/v1/logs.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/logs/v1/logs.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.grpc.pb.h +) target_proto_addincls(contrib-libs-opentelemetry-proto ./contrib/libs/opentelemetry-proto ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto diff --git a/contrib/libs/opentelemetry-proto/CMakeLists.linux-x86_64.txt b/contrib/libs/opentelemetry-proto/CMakeLists.linux-x86_64.txt index 3379498d0ebf..03d9f9516583 100644 --- a/contrib/libs/opentelemetry-proto/CMakeLists.linux-x86_64.txt +++ b/contrib/libs/opentelemetry-proto/CMakeLists.linux-x86_64.txt @@ -136,6 +136,24 @@ target_proto_messages(contrib-libs-opentelemetry-proto PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.proto ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.proto ) +target_sources(contrib-libs-opentelemetry-proto PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/common/v1/common.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/common/v1/common.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/logs/v1/logs.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/logs/v1/logs.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.grpc.pb.h +) target_proto_addincls(contrib-libs-opentelemetry-proto ./contrib/libs/opentelemetry-proto ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto diff --git a/contrib/libs/opentelemetry-proto/CMakeLists.windows-x86_64.txt b/contrib/libs/opentelemetry-proto/CMakeLists.windows-x86_64.txt index c26ac9dfec60..09bd686ee0a2 100644 --- a/contrib/libs/opentelemetry-proto/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/opentelemetry-proto/CMakeLists.windows-x86_64.txt @@ -135,6 +135,24 @@ target_proto_messages(contrib-libs-opentelemetry-proto PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.proto ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.proto ) +target_sources(contrib-libs-opentelemetry-proto PRIVATE + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/logs/v1/logs_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/metrics/v1/metrics_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/common/v1/common.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/common/v1/common.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/logs/v1/logs.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/logs/v1/logs.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/metrics/v1/metrics.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/resource/v1/resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.pb.h + ${CMAKE_BINARY_DIR}/contrib/libs/opentelemetry-proto/opentelemetry/proto/trace/v1/trace.grpc.pb.h +) target_proto_addincls(contrib-libs-opentelemetry-proto ./contrib/libs/opentelemetry-proto ${CMAKE_SOURCE_DIR}/contrib/libs/opentelemetry-proto diff --git a/contrib/libs/protobuf/CMakeLists.darwin-arm64.txt b/contrib/libs/protobuf/CMakeLists.darwin-arm64.txt index 7bb6b1fa02a5..8c7d5f73f1ce 100644 --- a/contrib/libs/protobuf/CMakeLists.darwin-arm64.txt +++ b/contrib/libs/protobuf/CMakeLists.darwin-arm64.txt @@ -109,50 +109,6 @@ target_sources(contrib-libs-protobuf PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wire_format_lite.cc ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.pb.cc ) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/any.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/any.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/api.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/api.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/descriptor.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/descriptor.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/duration.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/duration.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/empty.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/empty.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/field_mask.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/field_mask.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/source_context.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/source_context.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/struct.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/struct.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/timestamp.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/timestamp.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/type.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/type.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.proto -) add_global_library_for(contrib-libs-protobuf.global contrib-libs-protobuf) target_compile_options(contrib-libs-protobuf.global PRIVATE diff --git a/contrib/libs/protobuf/CMakeLists.darwin-x86_64.txt b/contrib/libs/protobuf/CMakeLists.darwin-x86_64.txt index 7bb6b1fa02a5..8c7d5f73f1ce 100644 --- a/contrib/libs/protobuf/CMakeLists.darwin-x86_64.txt +++ b/contrib/libs/protobuf/CMakeLists.darwin-x86_64.txt @@ -109,50 +109,6 @@ target_sources(contrib-libs-protobuf PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wire_format_lite.cc ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.pb.cc ) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/any.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/any.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/api.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/api.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/descriptor.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/descriptor.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/duration.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/duration.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/empty.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/empty.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/field_mask.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/field_mask.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/source_context.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/source_context.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/struct.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/struct.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/timestamp.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/timestamp.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/type.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/type.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.proto -) add_global_library_for(contrib-libs-protobuf.global contrib-libs-protobuf) target_compile_options(contrib-libs-protobuf.global PRIVATE diff --git a/contrib/libs/protobuf/CMakeLists.linux-aarch64.txt b/contrib/libs/protobuf/CMakeLists.linux-aarch64.txt index 5357276de1a1..6cd6c00aa9db 100644 --- a/contrib/libs/protobuf/CMakeLists.linux-aarch64.txt +++ b/contrib/libs/protobuf/CMakeLists.linux-aarch64.txt @@ -110,50 +110,6 @@ target_sources(contrib-libs-protobuf PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wire_format_lite.cc ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.pb.cc ) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/any.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/any.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/api.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/api.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/descriptor.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/descriptor.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/duration.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/duration.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/empty.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/empty.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/field_mask.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/field_mask.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/source_context.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/source_context.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/struct.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/struct.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/timestamp.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/timestamp.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/type.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/type.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.proto -) add_global_library_for(contrib-libs-protobuf.global contrib-libs-protobuf) target_compile_options(contrib-libs-protobuf.global PRIVATE diff --git a/contrib/libs/protobuf/CMakeLists.linux-x86_64.txt b/contrib/libs/protobuf/CMakeLists.linux-x86_64.txt index 5357276de1a1..6cd6c00aa9db 100644 --- a/contrib/libs/protobuf/CMakeLists.linux-x86_64.txt +++ b/contrib/libs/protobuf/CMakeLists.linux-x86_64.txt @@ -110,50 +110,6 @@ target_sources(contrib-libs-protobuf PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wire_format_lite.cc ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.pb.cc ) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/any.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/any.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/api.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/api.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/descriptor.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/descriptor.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/duration.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/duration.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/empty.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/empty.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/field_mask.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/field_mask.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/source_context.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/source_context.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/struct.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/struct.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/timestamp.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/timestamp.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/type.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/type.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.proto -) add_global_library_for(contrib-libs-protobuf.global contrib-libs-protobuf) target_compile_options(contrib-libs-protobuf.global PRIVATE diff --git a/contrib/libs/protobuf/CMakeLists.windows-x86_64.txt b/contrib/libs/protobuf/CMakeLists.windows-x86_64.txt index 7bb6b1fa02a5..8c7d5f73f1ce 100644 --- a/contrib/libs/protobuf/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/protobuf/CMakeLists.windows-x86_64.txt @@ -109,50 +109,6 @@ target_sources(contrib-libs-protobuf PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wire_format_lite.cc ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.pb.cc ) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/any.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/any.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/api.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/api.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/descriptor.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/descriptor.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/duration.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/duration.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/empty.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/empty.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/field_mask.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/field_mask.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/source_context.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/source_context.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/struct.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/struct.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/timestamp.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/timestamp.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/type.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/type.proto -) -copy_file( - ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.proto - ${CMAKE_BINARY_DIR}/contrib/libs/protobuf/src/google/protobuf/wrappers.proto -) add_global_library_for(contrib-libs-protobuf.global contrib-libs-protobuf) target_compile_options(contrib-libs-protobuf.global PRIVATE diff --git a/contrib/libs/tbb/CMakeLists.windows-x86_64.txt b/contrib/libs/tbb/CMakeLists.windows-x86_64.txt index b87f54ab2747..159456e1593c 100644 --- a/contrib/libs/tbb/CMakeLists.windows-x86_64.txt +++ b/contrib/libs/tbb/CMakeLists.windows-x86_64.txt @@ -10,8 +10,6 @@ add_library(contrib-libs-tbb) target_compile_options(contrib-libs-tbb PRIVATE -D__TBB_BUILD - -mrtm - -mwaitpkg -DUSE_WINTHREAD -D__TBB_USE_ITT_NOTIFY -DDO_ITT_NOTIFY diff --git a/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.darwin-arm64.txt index 51a0971139aa..66c0af350577 100644 --- a/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.darwin-arm64.txt +++ b/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.darwin-arm64.txt @@ -30,7 +30,6 @@ target_link_libraries(abseil-cpp-absl-flags PUBLIC ) target_sources(abseil-cpp-absl-flags PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/commandlineflag.cc - ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/flag.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/commandlineflag.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/flag.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/private_handle_accessor.cc diff --git a/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.darwin-x86_64.txt b/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.darwin-x86_64.txt index 51a0971139aa..66c0af350577 100644 --- a/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.darwin-x86_64.txt +++ b/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.darwin-x86_64.txt @@ -30,7 +30,6 @@ target_link_libraries(abseil-cpp-absl-flags PUBLIC ) target_sources(abseil-cpp-absl-flags PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/commandlineflag.cc - ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/flag.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/commandlineflag.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/flag.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/private_handle_accessor.cc diff --git a/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.linux-aarch64.txt b/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.linux-aarch64.txt index a61094881a3b..00550a57091d 100644 --- a/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.linux-aarch64.txt +++ b/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.linux-aarch64.txt @@ -31,7 +31,6 @@ target_link_libraries(abseil-cpp-absl-flags PUBLIC ) target_sources(abseil-cpp-absl-flags PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/commandlineflag.cc - ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/flag.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/commandlineflag.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/flag.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/private_handle_accessor.cc diff --git a/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.linux-x86_64.txt b/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.linux-x86_64.txt index a61094881a3b..00550a57091d 100644 --- a/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.linux-x86_64.txt +++ b/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.linux-x86_64.txt @@ -31,7 +31,6 @@ target_link_libraries(abseil-cpp-absl-flags PUBLIC ) target_sources(abseil-cpp-absl-flags PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/commandlineflag.cc - ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/flag.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/commandlineflag.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/flag.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/private_handle_accessor.cc diff --git a/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.windows-x86_64.txt b/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.windows-x86_64.txt index 51a0971139aa..66c0af350577 100644 --- a/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.windows-x86_64.txt +++ b/contrib/restricted/abseil-cpp/absl/flags/CMakeLists.windows-x86_64.txt @@ -30,7 +30,6 @@ target_link_libraries(abseil-cpp-absl-flags PUBLIC ) target_sources(abseil-cpp-absl-flags PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/commandlineflag.cc - ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/flag.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/commandlineflag.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/flag.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/flags/internal/private_handle_accessor.cc diff --git a/contrib/restricted/abseil-cpp/absl/log/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/log/CMakeLists.darwin-arm64.txt index c2793a97eaa1..45409ec603cd 100644 --- a/contrib/restricted/abseil-cpp/absl/log/CMakeLists.darwin-arm64.txt +++ b/contrib/restricted/abseil-cpp/absl/log/CMakeLists.darwin-arm64.txt @@ -35,12 +35,14 @@ target_sources(abseil-cpp-absl-log PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/initialize.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/check_op.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/conditions.cc + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/fnmatch.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/globals.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_format.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_message.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_sink_set.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/nullguard.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/proto.cc + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/vlog_config.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/log_entry.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/log_sink.cc ) diff --git a/contrib/restricted/abseil-cpp/absl/log/CMakeLists.darwin-x86_64.txt b/contrib/restricted/abseil-cpp/absl/log/CMakeLists.darwin-x86_64.txt index c2793a97eaa1..45409ec603cd 100644 --- a/contrib/restricted/abseil-cpp/absl/log/CMakeLists.darwin-x86_64.txt +++ b/contrib/restricted/abseil-cpp/absl/log/CMakeLists.darwin-x86_64.txt @@ -35,12 +35,14 @@ target_sources(abseil-cpp-absl-log PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/initialize.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/check_op.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/conditions.cc + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/fnmatch.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/globals.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_format.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_message.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_sink_set.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/nullguard.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/proto.cc + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/vlog_config.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/log_entry.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/log_sink.cc ) diff --git a/contrib/restricted/abseil-cpp/absl/log/CMakeLists.linux-aarch64.txt b/contrib/restricted/abseil-cpp/absl/log/CMakeLists.linux-aarch64.txt index a7743e41a055..d3d4f2c40ec4 100644 --- a/contrib/restricted/abseil-cpp/absl/log/CMakeLists.linux-aarch64.txt +++ b/contrib/restricted/abseil-cpp/absl/log/CMakeLists.linux-aarch64.txt @@ -36,12 +36,14 @@ target_sources(abseil-cpp-absl-log PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/initialize.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/check_op.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/conditions.cc + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/fnmatch.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/globals.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_format.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_message.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_sink_set.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/nullguard.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/proto.cc + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/vlog_config.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/log_entry.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/log_sink.cc ) diff --git a/contrib/restricted/abseil-cpp/absl/log/CMakeLists.linux-x86_64.txt b/contrib/restricted/abseil-cpp/absl/log/CMakeLists.linux-x86_64.txt index a7743e41a055..d3d4f2c40ec4 100644 --- a/contrib/restricted/abseil-cpp/absl/log/CMakeLists.linux-x86_64.txt +++ b/contrib/restricted/abseil-cpp/absl/log/CMakeLists.linux-x86_64.txt @@ -36,12 +36,14 @@ target_sources(abseil-cpp-absl-log PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/initialize.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/check_op.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/conditions.cc + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/fnmatch.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/globals.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_format.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_message.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_sink_set.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/nullguard.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/proto.cc + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/vlog_config.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/log_entry.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/log_sink.cc ) diff --git a/contrib/restricted/abseil-cpp/absl/log/CMakeLists.windows-x86_64.txt b/contrib/restricted/abseil-cpp/absl/log/CMakeLists.windows-x86_64.txt index c2793a97eaa1..45409ec603cd 100644 --- a/contrib/restricted/abseil-cpp/absl/log/CMakeLists.windows-x86_64.txt +++ b/contrib/restricted/abseil-cpp/absl/log/CMakeLists.windows-x86_64.txt @@ -35,12 +35,14 @@ target_sources(abseil-cpp-absl-log PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/initialize.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/check_op.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/conditions.cc + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/fnmatch.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/globals.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_format.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_message.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/log_sink_set.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/nullguard.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/proto.cc + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/internal/vlog_config.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/log_entry.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/log/log_sink.cc ) diff --git a/contrib/restricted/abseil-cpp/absl/status/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/status/CMakeLists.darwin-arm64.txt index 82c6e43c9117..0f12fbafd79c 100644 --- a/contrib/restricted/abseil-cpp/absl/status/CMakeLists.darwin-arm64.txt +++ b/contrib/restricted/abseil-cpp/absl/status/CMakeLists.darwin-arm64.txt @@ -26,6 +26,7 @@ target_link_libraries(abseil-cpp-absl-status PUBLIC abseil-cpp-absl-types ) target_sources(abseil-cpp-absl-status PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/internal/status_internal.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/status.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/status_payload_printer.cc ) diff --git a/contrib/restricted/abseil-cpp/absl/status/CMakeLists.darwin-x86_64.txt b/contrib/restricted/abseil-cpp/absl/status/CMakeLists.darwin-x86_64.txt index 82c6e43c9117..0f12fbafd79c 100644 --- a/contrib/restricted/abseil-cpp/absl/status/CMakeLists.darwin-x86_64.txt +++ b/contrib/restricted/abseil-cpp/absl/status/CMakeLists.darwin-x86_64.txt @@ -26,6 +26,7 @@ target_link_libraries(abseil-cpp-absl-status PUBLIC abseil-cpp-absl-types ) target_sources(abseil-cpp-absl-status PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/internal/status_internal.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/status.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/status_payload_printer.cc ) diff --git a/contrib/restricted/abseil-cpp/absl/status/CMakeLists.linux-aarch64.txt b/contrib/restricted/abseil-cpp/absl/status/CMakeLists.linux-aarch64.txt index ef805d8dde2a..76efbb8a76d3 100644 --- a/contrib/restricted/abseil-cpp/absl/status/CMakeLists.linux-aarch64.txt +++ b/contrib/restricted/abseil-cpp/absl/status/CMakeLists.linux-aarch64.txt @@ -27,6 +27,7 @@ target_link_libraries(abseil-cpp-absl-status PUBLIC abseil-cpp-absl-types ) target_sources(abseil-cpp-absl-status PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/internal/status_internal.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/status.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/status_payload_printer.cc ) diff --git a/contrib/restricted/abseil-cpp/absl/status/CMakeLists.linux-x86_64.txt b/contrib/restricted/abseil-cpp/absl/status/CMakeLists.linux-x86_64.txt index ef805d8dde2a..76efbb8a76d3 100644 --- a/contrib/restricted/abseil-cpp/absl/status/CMakeLists.linux-x86_64.txt +++ b/contrib/restricted/abseil-cpp/absl/status/CMakeLists.linux-x86_64.txt @@ -27,6 +27,7 @@ target_link_libraries(abseil-cpp-absl-status PUBLIC abseil-cpp-absl-types ) target_sources(abseil-cpp-absl-status PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/internal/status_internal.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/status.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/status_payload_printer.cc ) diff --git a/contrib/restricted/abseil-cpp/absl/status/CMakeLists.windows-x86_64.txt b/contrib/restricted/abseil-cpp/absl/status/CMakeLists.windows-x86_64.txt index 82c6e43c9117..0f12fbafd79c 100644 --- a/contrib/restricted/abseil-cpp/absl/status/CMakeLists.windows-x86_64.txt +++ b/contrib/restricted/abseil-cpp/absl/status/CMakeLists.windows-x86_64.txt @@ -26,6 +26,7 @@ target_link_libraries(abseil-cpp-absl-status PUBLIC abseil-cpp-absl-types ) target_sources(abseil-cpp-absl-status PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/internal/status_internal.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/status.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/status_payload_printer.cc ) diff --git a/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.darwin-arm64.txt b/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.darwin-arm64.txt index e3aa400b959a..a9e4eff8889c 100644 --- a/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.darwin-arm64.txt +++ b/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.darwin-arm64.txt @@ -25,7 +25,7 @@ target_sources(abseil-cpp-absl-strings PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_cord_state.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc - ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/statusor.cc @@ -43,7 +43,6 @@ target_sources(abseil-cpp-absl-strings PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_consume.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_crc.cc - ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_ring.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_functions.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_handle.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_info.cc diff --git a/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.darwin-x86_64.txt b/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.darwin-x86_64.txt index e3aa400b959a..a9e4eff8889c 100644 --- a/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.darwin-x86_64.txt +++ b/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.darwin-x86_64.txt @@ -25,7 +25,7 @@ target_sources(abseil-cpp-absl-strings PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_cord_state.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc - ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/statusor.cc @@ -43,7 +43,6 @@ target_sources(abseil-cpp-absl-strings PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_consume.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_crc.cc - ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_ring.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_functions.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_handle.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_info.cc diff --git a/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.linux-aarch64.txt b/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.linux-aarch64.txt index 2da01ab774e3..83a8fa70e66d 100644 --- a/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.linux-aarch64.txt +++ b/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.linux-aarch64.txt @@ -26,7 +26,7 @@ target_sources(abseil-cpp-absl-strings PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_cord_state.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc - ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/statusor.cc @@ -44,7 +44,6 @@ target_sources(abseil-cpp-absl-strings PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_consume.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_crc.cc - ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_ring.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_functions.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_handle.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_info.cc diff --git a/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.linux-x86_64.txt b/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.linux-x86_64.txt index 2da01ab774e3..83a8fa70e66d 100644 --- a/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.linux-x86_64.txt +++ b/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.linux-x86_64.txt @@ -26,7 +26,7 @@ target_sources(abseil-cpp-absl-strings PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_cord_state.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc - ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/statusor.cc @@ -44,7 +44,6 @@ target_sources(abseil-cpp-absl-strings PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_consume.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_crc.cc - ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_ring.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_functions.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_handle.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_info.cc diff --git a/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.windows-x86_64.txt b/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.windows-x86_64.txt index e3aa400b959a..a9e4eff8889c 100644 --- a/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.windows-x86_64.txt +++ b/contrib/restricted/abseil-cpp/absl/strings/CMakeLists.windows-x86_64.txt @@ -25,7 +25,7 @@ target_sources(abseil-cpp-absl-strings PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_cord_state.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc - ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc + ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/status/statusor.cc @@ -43,7 +43,6 @@ target_sources(abseil-cpp-absl-strings PRIVATE ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_consume.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_crc.cc - ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cord_rep_ring.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_functions.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_handle.cc ${CMAKE_SOURCE_DIR}/contrib/restricted/abseil-cpp/absl/strings/internal/cordz_info.cc diff --git a/contrib/restricted/aws/aws-c-cal/CMakeLists.darwin-arm64.txt b/contrib/restricted/aws/aws-c-cal/CMakeLists.darwin-arm64.txt index 6206412f6471..fca049829106 100644 --- a/contrib/restricted/aws/aws-c-cal/CMakeLists.darwin-arm64.txt +++ b/contrib/restricted/aws/aws-c-cal/CMakeLists.darwin-arm64.txt @@ -26,6 +26,7 @@ target_link_options(restricted-aws-aws-c-cal INTERFACE Security ) target_sources(restricted-aws-aws-c-cal PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/darwin/common_cryptor_spi.h ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/cal.c ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/der.c ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/ecc.c diff --git a/contrib/restricted/aws/aws-c-cal/CMakeLists.darwin-x86_64.txt b/contrib/restricted/aws/aws-c-cal/CMakeLists.darwin-x86_64.txt index 6206412f6471..fca049829106 100644 --- a/contrib/restricted/aws/aws-c-cal/CMakeLists.darwin-x86_64.txt +++ b/contrib/restricted/aws/aws-c-cal/CMakeLists.darwin-x86_64.txt @@ -26,6 +26,7 @@ target_link_options(restricted-aws-aws-c-cal INTERFACE Security ) target_sources(restricted-aws-aws-c-cal PRIVATE + ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/darwin/common_cryptor_spi.h ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/cal.c ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/der.c ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/ecc.c diff --git a/contrib/restricted/aws/aws-c-common/CMakeLists.windows-x86_64.txt b/contrib/restricted/aws/aws-c-common/CMakeLists.windows-x86_64.txt index fb7823f7c5d9..5403dfef9ed4 100644 --- a/contrib/restricted/aws/aws-c-common/CMakeLists.windows-x86_64.txt +++ b/contrib/restricted/aws/aws-c-common/CMakeLists.windows-x86_64.txt @@ -74,8 +74,6 @@ target_sources_custom(restricted-aws-aws-c-common SRCS ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/arch/intel/encoding_avx2.c CUSTOM_FLAGS - -mavx2 - -mfma - -mbmi - -mbmi2 + /arch:AVX2 + /DAVX2_ENABLED=1 ) diff --git a/contrib/restricted/aws/aws-c-http/CMakeLists.windows-x86_64.txt b/contrib/restricted/aws/aws-c-http/CMakeLists.windows-x86_64.txt index 8d1599b73092..904c60d055a7 100644 --- a/contrib/restricted/aws/aws-c-http/CMakeLists.windows-x86_64.txt +++ b/contrib/restricted/aws/aws-c-http/CMakeLists.windows-x86_64.txt @@ -29,7 +29,6 @@ target_compile_options(restricted-aws-aws-c-http PRIVATE -DS2N_STACKTRACE -DS2N___RESTRICT__SUPPORTED -DAWS_HTTP_EXPORTS - -std=c99 $,,-Wno-everything> ) target_include_directories(restricted-aws-aws-c-http PUBLIC diff --git a/contrib/restricted/aws/aws-c-io/CMakeLists.windows-x86_64.txt b/contrib/restricted/aws/aws-c-io/CMakeLists.windows-x86_64.txt index f353ab49e0f0..11d506e7fcbb 100644 --- a/contrib/restricted/aws/aws-c-io/CMakeLists.windows-x86_64.txt +++ b/contrib/restricted/aws/aws-c-io/CMakeLists.windows-x86_64.txt @@ -27,7 +27,6 @@ target_compile_options(restricted-aws-aws-c-io PRIVATE -DS2N___RESTRICT__SUPPORTED -DAWS_IO_EXPORTS -DAWS_USE_IO_COMPLETION_PORTS - -std=c99 $,,-Wno-everything> ) target_include_directories(restricted-aws-aws-c-io PUBLIC diff --git a/contrib/restricted/boost/CMakeLists.windows-x86_64.txt b/contrib/restricted/boost/CMakeLists.windows-x86_64.txt index 79eb1eb674dd..b02cf0ea8a6d 100644 --- a/contrib/restricted/boost/CMakeLists.windows-x86_64.txt +++ b/contrib/restricted/boost/CMakeLists.windows-x86_64.txt @@ -28,7 +28,6 @@ add_subdirectory(dynamic_bitset) add_subdirectory(endian) add_subdirectory(exception) add_subdirectory(foreach) -add_subdirectory(format) add_subdirectory(function) add_subdirectory(function_types) add_subdirectory(functional) diff --git a/contrib/restricted/boost/container_hash/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/container_hash/CMakeLists.darwin-arm64.txt index f6ba33a6e963..be93cb43a71a 100644 --- a/contrib/restricted/boost/container_hash/CMakeLists.darwin-arm64.txt +++ b/contrib/restricted/boost/container_hash/CMakeLists.darwin-arm64.txt @@ -16,5 +16,4 @@ target_link_libraries(restricted-boost-container_hash INTERFACE restricted-boost-config restricted-boost-describe restricted-boost-mp11 - restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/container_hash/CMakeLists.darwin-x86_64.txt b/contrib/restricted/boost/container_hash/CMakeLists.darwin-x86_64.txt index f6ba33a6e963..be93cb43a71a 100644 --- a/contrib/restricted/boost/container_hash/CMakeLists.darwin-x86_64.txt +++ b/contrib/restricted/boost/container_hash/CMakeLists.darwin-x86_64.txt @@ -16,5 +16,4 @@ target_link_libraries(restricted-boost-container_hash INTERFACE restricted-boost-config restricted-boost-describe restricted-boost-mp11 - restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/container_hash/CMakeLists.linux-aarch64.txt b/contrib/restricted/boost/container_hash/CMakeLists.linux-aarch64.txt index 0e9a7fc39015..469e2aca8042 100644 --- a/contrib/restricted/boost/container_hash/CMakeLists.linux-aarch64.txt +++ b/contrib/restricted/boost/container_hash/CMakeLists.linux-aarch64.txt @@ -17,5 +17,4 @@ target_link_libraries(restricted-boost-container_hash INTERFACE restricted-boost-config restricted-boost-describe restricted-boost-mp11 - restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/container_hash/CMakeLists.linux-x86_64.txt b/contrib/restricted/boost/container_hash/CMakeLists.linux-x86_64.txt index 0e9a7fc39015..469e2aca8042 100644 --- a/contrib/restricted/boost/container_hash/CMakeLists.linux-x86_64.txt +++ b/contrib/restricted/boost/container_hash/CMakeLists.linux-x86_64.txt @@ -17,5 +17,4 @@ target_link_libraries(restricted-boost-container_hash INTERFACE restricted-boost-config restricted-boost-describe restricted-boost-mp11 - restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/container_hash/CMakeLists.windows-x86_64.txt b/contrib/restricted/boost/container_hash/CMakeLists.windows-x86_64.txt index f6ba33a6e963..be93cb43a71a 100644 --- a/contrib/restricted/boost/container_hash/CMakeLists.windows-x86_64.txt +++ b/contrib/restricted/boost/container_hash/CMakeLists.windows-x86_64.txt @@ -16,5 +16,4 @@ target_link_libraries(restricted-boost-container_hash INTERFACE restricted-boost-config restricted-boost-describe restricted-boost-mp11 - restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/format/CMakeLists.txt b/contrib/restricted/boost/format/CMakeLists.txt index d863ebd18067..380079ac7b4a 100644 --- a/contrib/restricted/boost/format/CMakeLists.txt +++ b/contrib/restricted/boost/format/CMakeLists.txt @@ -14,6 +14,4 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL include(CMakeLists.darwin-x86_64.txt) elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/contrib/restricted/boost/iterator/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/iterator/CMakeLists.darwin-arm64.txt index df59b473b284..a997178c2c48 100644 --- a/contrib/restricted/boost/iterator/CMakeLists.darwin-arm64.txt +++ b/contrib/restricted/boost/iterator/CMakeLists.darwin-arm64.txt @@ -16,7 +16,6 @@ target_link_libraries(restricted-boost-iterator INTERFACE restricted-boost-assert restricted-boost-concept_check restricted-boost-config - restricted-boost-conversion restricted-boost-core restricted-boost-detail restricted-boost-function_types diff --git a/contrib/restricted/boost/iterator/CMakeLists.darwin-x86_64.txt b/contrib/restricted/boost/iterator/CMakeLists.darwin-x86_64.txt index df59b473b284..a997178c2c48 100644 --- a/contrib/restricted/boost/iterator/CMakeLists.darwin-x86_64.txt +++ b/contrib/restricted/boost/iterator/CMakeLists.darwin-x86_64.txt @@ -16,7 +16,6 @@ target_link_libraries(restricted-boost-iterator INTERFACE restricted-boost-assert restricted-boost-concept_check restricted-boost-config - restricted-boost-conversion restricted-boost-core restricted-boost-detail restricted-boost-function_types diff --git a/contrib/restricted/boost/iterator/CMakeLists.linux-aarch64.txt b/contrib/restricted/boost/iterator/CMakeLists.linux-aarch64.txt index a1ebd81a38f7..6bccab05c831 100644 --- a/contrib/restricted/boost/iterator/CMakeLists.linux-aarch64.txt +++ b/contrib/restricted/boost/iterator/CMakeLists.linux-aarch64.txt @@ -17,7 +17,6 @@ target_link_libraries(restricted-boost-iterator INTERFACE restricted-boost-assert restricted-boost-concept_check restricted-boost-config - restricted-boost-conversion restricted-boost-core restricted-boost-detail restricted-boost-function_types diff --git a/contrib/restricted/boost/iterator/CMakeLists.linux-x86_64.txt b/contrib/restricted/boost/iterator/CMakeLists.linux-x86_64.txt index a1ebd81a38f7..6bccab05c831 100644 --- a/contrib/restricted/boost/iterator/CMakeLists.linux-x86_64.txt +++ b/contrib/restricted/boost/iterator/CMakeLists.linux-x86_64.txt @@ -17,7 +17,6 @@ target_link_libraries(restricted-boost-iterator INTERFACE restricted-boost-assert restricted-boost-concept_check restricted-boost-config - restricted-boost-conversion restricted-boost-core restricted-boost-detail restricted-boost-function_types diff --git a/contrib/restricted/boost/iterator/CMakeLists.windows-x86_64.txt b/contrib/restricted/boost/iterator/CMakeLists.windows-x86_64.txt index df59b473b284..a997178c2c48 100644 --- a/contrib/restricted/boost/iterator/CMakeLists.windows-x86_64.txt +++ b/contrib/restricted/boost/iterator/CMakeLists.windows-x86_64.txt @@ -16,7 +16,6 @@ target_link_libraries(restricted-boost-iterator INTERFACE restricted-boost-assert restricted-boost-concept_check restricted-boost-config - restricted-boost-conversion restricted-boost-core restricted-boost-detail restricted-boost-function_types diff --git a/contrib/restricted/boost/lexical_cast/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/lexical_cast/CMakeLists.darwin-arm64.txt index c4aff4db0d5e..6ca4efe3360e 100644 --- a/contrib/restricted/boost/lexical_cast/CMakeLists.darwin-arm64.txt +++ b/contrib/restricted/boost/lexical_cast/CMakeLists.darwin-arm64.txt @@ -13,15 +13,11 @@ target_include_directories(restricted-boost-lexical_cast INTERFACE ) target_link_libraries(restricted-boost-lexical_cast INTERFACE contrib-libs-cxxsupp - restricted-boost-array - restricted-boost-assert restricted-boost-config restricted-boost-container restricted-boost-core restricted-boost-integer restricted-boost-numeric_conversion - restricted-boost-range - restricted-boost-static_assert restricted-boost-throw_exception restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/lexical_cast/CMakeLists.darwin-x86_64.txt b/contrib/restricted/boost/lexical_cast/CMakeLists.darwin-x86_64.txt index c4aff4db0d5e..6ca4efe3360e 100644 --- a/contrib/restricted/boost/lexical_cast/CMakeLists.darwin-x86_64.txt +++ b/contrib/restricted/boost/lexical_cast/CMakeLists.darwin-x86_64.txt @@ -13,15 +13,11 @@ target_include_directories(restricted-boost-lexical_cast INTERFACE ) target_link_libraries(restricted-boost-lexical_cast INTERFACE contrib-libs-cxxsupp - restricted-boost-array - restricted-boost-assert restricted-boost-config restricted-boost-container restricted-boost-core restricted-boost-integer restricted-boost-numeric_conversion - restricted-boost-range - restricted-boost-static_assert restricted-boost-throw_exception restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/lexical_cast/CMakeLists.linux-aarch64.txt b/contrib/restricted/boost/lexical_cast/CMakeLists.linux-aarch64.txt index d746f22befeb..b8c101adf91d 100644 --- a/contrib/restricted/boost/lexical_cast/CMakeLists.linux-aarch64.txt +++ b/contrib/restricted/boost/lexical_cast/CMakeLists.linux-aarch64.txt @@ -14,15 +14,11 @@ target_include_directories(restricted-boost-lexical_cast INTERFACE target_link_libraries(restricted-boost-lexical_cast INTERFACE contrib-libs-linux-headers contrib-libs-cxxsupp - restricted-boost-array - restricted-boost-assert restricted-boost-config restricted-boost-container restricted-boost-core restricted-boost-integer restricted-boost-numeric_conversion - restricted-boost-range - restricted-boost-static_assert restricted-boost-throw_exception restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/lexical_cast/CMakeLists.linux-x86_64.txt b/contrib/restricted/boost/lexical_cast/CMakeLists.linux-x86_64.txt index d746f22befeb..b8c101adf91d 100644 --- a/contrib/restricted/boost/lexical_cast/CMakeLists.linux-x86_64.txt +++ b/contrib/restricted/boost/lexical_cast/CMakeLists.linux-x86_64.txt @@ -14,15 +14,11 @@ target_include_directories(restricted-boost-lexical_cast INTERFACE target_link_libraries(restricted-boost-lexical_cast INTERFACE contrib-libs-linux-headers contrib-libs-cxxsupp - restricted-boost-array - restricted-boost-assert restricted-boost-config restricted-boost-container restricted-boost-core restricted-boost-integer restricted-boost-numeric_conversion - restricted-boost-range - restricted-boost-static_assert restricted-boost-throw_exception restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/lexical_cast/CMakeLists.windows-x86_64.txt b/contrib/restricted/boost/lexical_cast/CMakeLists.windows-x86_64.txt index c4aff4db0d5e..6ca4efe3360e 100644 --- a/contrib/restricted/boost/lexical_cast/CMakeLists.windows-x86_64.txt +++ b/contrib/restricted/boost/lexical_cast/CMakeLists.windows-x86_64.txt @@ -13,15 +13,11 @@ target_include_directories(restricted-boost-lexical_cast INTERFACE ) target_link_libraries(restricted-boost-lexical_cast INTERFACE contrib-libs-cxxsupp - restricted-boost-array - restricted-boost-assert restricted-boost-config restricted-boost-container restricted-boost-core restricted-boost-integer restricted-boost-numeric_conversion - restricted-boost-range - restricted-boost-static_assert restricted-boost-throw_exception restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/property_tree/CMakeLists.darwin-x86_64.txt b/contrib/restricted/boost/property_tree/CMakeLists.darwin-x86_64.txt index 57f107d22d6d..664325c48ded 100644 --- a/contrib/restricted/boost/property_tree/CMakeLists.darwin-x86_64.txt +++ b/contrib/restricted/boost/property_tree/CMakeLists.darwin-x86_64.txt @@ -18,7 +18,6 @@ target_link_libraries(restricted-boost-property_tree INTERFACE restricted-boost-bind restricted-boost-config restricted-boost-core - restricted-boost-format restricted-boost-iterator restricted-boost-mpl restricted-boost-multi_index diff --git a/contrib/restricted/boost/property_tree/CMakeLists.linux-x86_64.txt b/contrib/restricted/boost/property_tree/CMakeLists.linux-x86_64.txt index b64b977a6456..5cc82a47607e 100644 --- a/contrib/restricted/boost/property_tree/CMakeLists.linux-x86_64.txt +++ b/contrib/restricted/boost/property_tree/CMakeLists.linux-x86_64.txt @@ -19,7 +19,6 @@ target_link_libraries(restricted-boost-property_tree INTERFACE restricted-boost-bind restricted-boost-config restricted-boost-core - restricted-boost-format restricted-boost-iterator restricted-boost-mpl restricted-boost-multi_index diff --git a/contrib/restricted/boost/property_tree/CMakeLists.windows-x86_64.txt b/contrib/restricted/boost/property_tree/CMakeLists.windows-x86_64.txt index 57f107d22d6d..664325c48ded 100644 --- a/contrib/restricted/boost/property_tree/CMakeLists.windows-x86_64.txt +++ b/contrib/restricted/boost/property_tree/CMakeLists.windows-x86_64.txt @@ -18,7 +18,6 @@ target_link_libraries(restricted-boost-property_tree INTERFACE restricted-boost-bind restricted-boost-config restricted-boost-core - restricted-boost-format restricted-boost-iterator restricted-boost-mpl restricted-boost-multi_index diff --git a/contrib/restricted/boost/rational/CMakeLists.darwin-x86_64.txt b/contrib/restricted/boost/rational/CMakeLists.darwin-x86_64.txt index c4d92a21a6e3..f0cb6d48aa6e 100644 --- a/contrib/restricted/boost/rational/CMakeLists.darwin-x86_64.txt +++ b/contrib/restricted/boost/rational/CMakeLists.darwin-x86_64.txt @@ -8,9 +8,6 @@ add_library(restricted-boost-rational INTERFACE) -target_include_directories(restricted-boost-rational INTERFACE - ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/rational/include -) target_link_libraries(restricted-boost-rational INTERFACE contrib-libs-cxxsupp restricted-boost-assert diff --git a/contrib/restricted/boost/rational/CMakeLists.linux-x86_64.txt b/contrib/restricted/boost/rational/CMakeLists.linux-x86_64.txt index 61fd5149ab30..58b190a47a07 100644 --- a/contrib/restricted/boost/rational/CMakeLists.linux-x86_64.txt +++ b/contrib/restricted/boost/rational/CMakeLists.linux-x86_64.txt @@ -8,9 +8,6 @@ add_library(restricted-boost-rational INTERFACE) -target_include_directories(restricted-boost-rational INTERFACE - ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/rational/include -) target_link_libraries(restricted-boost-rational INTERFACE contrib-libs-linux-headers contrib-libs-cxxsupp diff --git a/contrib/restricted/boost/rational/CMakeLists.windows-x86_64.txt b/contrib/restricted/boost/rational/CMakeLists.windows-x86_64.txt index c4d92a21a6e3..f0cb6d48aa6e 100644 --- a/contrib/restricted/boost/rational/CMakeLists.windows-x86_64.txt +++ b/contrib/restricted/boost/rational/CMakeLists.windows-x86_64.txt @@ -8,9 +8,6 @@ add_library(restricted-boost-rational INTERFACE) -target_include_directories(restricted-boost-rational INTERFACE - ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/rational/include -) target_link_libraries(restricted-boost-rational INTERFACE contrib-libs-cxxsupp restricted-boost-assert diff --git a/contrib/restricted/boost/type_index/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/type_index/CMakeLists.darwin-arm64.txt index 701e4811957c..b167e31a32ce 100644 --- a/contrib/restricted/boost/type_index/CMakeLists.darwin-arm64.txt +++ b/contrib/restricted/boost/type_index/CMakeLists.darwin-arm64.txt @@ -16,8 +16,5 @@ target_link_libraries(restricted-boost-type_index INTERFACE restricted-boost-config restricted-boost-container_hash restricted-boost-core - restricted-boost-preprocessor - restricted-boost-static_assert restricted-boost-throw_exception - restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/type_index/CMakeLists.darwin-x86_64.txt b/contrib/restricted/boost/type_index/CMakeLists.darwin-x86_64.txt index 701e4811957c..b167e31a32ce 100644 --- a/contrib/restricted/boost/type_index/CMakeLists.darwin-x86_64.txt +++ b/contrib/restricted/boost/type_index/CMakeLists.darwin-x86_64.txt @@ -16,8 +16,5 @@ target_link_libraries(restricted-boost-type_index INTERFACE restricted-boost-config restricted-boost-container_hash restricted-boost-core - restricted-boost-preprocessor - restricted-boost-static_assert restricted-boost-throw_exception - restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/type_index/CMakeLists.linux-aarch64.txt b/contrib/restricted/boost/type_index/CMakeLists.linux-aarch64.txt index 5d9a71e2cc4a..150623a9c31d 100644 --- a/contrib/restricted/boost/type_index/CMakeLists.linux-aarch64.txt +++ b/contrib/restricted/boost/type_index/CMakeLists.linux-aarch64.txt @@ -17,8 +17,5 @@ target_link_libraries(restricted-boost-type_index INTERFACE restricted-boost-config restricted-boost-container_hash restricted-boost-core - restricted-boost-preprocessor - restricted-boost-static_assert restricted-boost-throw_exception - restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/type_index/CMakeLists.linux-x86_64.txt b/contrib/restricted/boost/type_index/CMakeLists.linux-x86_64.txt index 5d9a71e2cc4a..150623a9c31d 100644 --- a/contrib/restricted/boost/type_index/CMakeLists.linux-x86_64.txt +++ b/contrib/restricted/boost/type_index/CMakeLists.linux-x86_64.txt @@ -17,8 +17,5 @@ target_link_libraries(restricted-boost-type_index INTERFACE restricted-boost-config restricted-boost-container_hash restricted-boost-core - restricted-boost-preprocessor - restricted-boost-static_assert restricted-boost-throw_exception - restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/type_index/CMakeLists.windows-x86_64.txt b/contrib/restricted/boost/type_index/CMakeLists.windows-x86_64.txt index 701e4811957c..b167e31a32ce 100644 --- a/contrib/restricted/boost/type_index/CMakeLists.windows-x86_64.txt +++ b/contrib/restricted/boost/type_index/CMakeLists.windows-x86_64.txt @@ -16,8 +16,5 @@ target_link_libraries(restricted-boost-type_index INTERFACE restricted-boost-config restricted-boost-container_hash restricted-boost-core - restricted-boost-preprocessor - restricted-boost-static_assert restricted-boost-throw_exception - restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/typeof/CMakeLists.darwin-arm64.txt b/contrib/restricted/boost/typeof/CMakeLists.darwin-arm64.txt index 04fff27108b1..87586deb2833 100644 --- a/contrib/restricted/boost/typeof/CMakeLists.darwin-arm64.txt +++ b/contrib/restricted/boost/typeof/CMakeLists.darwin-arm64.txt @@ -14,6 +14,4 @@ target_include_directories(restricted-boost-typeof INTERFACE target_link_libraries(restricted-boost-typeof INTERFACE contrib-libs-cxxsupp restricted-boost-config - restricted-boost-preprocessor - restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/typeof/CMakeLists.darwin-x86_64.txt b/contrib/restricted/boost/typeof/CMakeLists.darwin-x86_64.txt index 04fff27108b1..87586deb2833 100644 --- a/contrib/restricted/boost/typeof/CMakeLists.darwin-x86_64.txt +++ b/contrib/restricted/boost/typeof/CMakeLists.darwin-x86_64.txt @@ -14,6 +14,4 @@ target_include_directories(restricted-boost-typeof INTERFACE target_link_libraries(restricted-boost-typeof INTERFACE contrib-libs-cxxsupp restricted-boost-config - restricted-boost-preprocessor - restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/typeof/CMakeLists.linux-aarch64.txt b/contrib/restricted/boost/typeof/CMakeLists.linux-aarch64.txt index ff3ee3a26605..9bee1c60fe8b 100644 --- a/contrib/restricted/boost/typeof/CMakeLists.linux-aarch64.txt +++ b/contrib/restricted/boost/typeof/CMakeLists.linux-aarch64.txt @@ -15,6 +15,4 @@ target_link_libraries(restricted-boost-typeof INTERFACE contrib-libs-linux-headers contrib-libs-cxxsupp restricted-boost-config - restricted-boost-preprocessor - restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/typeof/CMakeLists.linux-x86_64.txt b/contrib/restricted/boost/typeof/CMakeLists.linux-x86_64.txt index ff3ee3a26605..9bee1c60fe8b 100644 --- a/contrib/restricted/boost/typeof/CMakeLists.linux-x86_64.txt +++ b/contrib/restricted/boost/typeof/CMakeLists.linux-x86_64.txt @@ -15,6 +15,4 @@ target_link_libraries(restricted-boost-typeof INTERFACE contrib-libs-linux-headers contrib-libs-cxxsupp restricted-boost-config - restricted-boost-preprocessor - restricted-boost-type_traits ) diff --git a/contrib/restricted/boost/typeof/CMakeLists.windows-x86_64.txt b/contrib/restricted/boost/typeof/CMakeLists.windows-x86_64.txt index 04fff27108b1..87586deb2833 100644 --- a/contrib/restricted/boost/typeof/CMakeLists.windows-x86_64.txt +++ b/contrib/restricted/boost/typeof/CMakeLists.windows-x86_64.txt @@ -14,6 +14,4 @@ target_include_directories(restricted-boost-typeof INTERFACE target_link_libraries(restricted-boost-typeof INTERFACE contrib-libs-cxxsupp restricted-boost-config - restricted-boost-preprocessor - restricted-boost-type_traits ) diff --git a/contrib/tools/flatc/bin/CMakeLists.linux-aarch64.txt b/contrib/tools/flatc/bin/CMakeLists.linux-aarch64.txt index 83ac0382b9a4..55533e40e92e 100644 --- a/contrib/tools/flatc/bin/CMakeLists.linux-aarch64.txt +++ b/contrib/tools/flatc/bin/CMakeLists.linux-aarch64.txt @@ -22,7 +22,6 @@ target_link_options(flatc PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread ) target_sources(flatc PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/flatc_main.cpp diff --git a/contrib/tools/flatc/bin/CMakeLists.linux-x86_64.txt b/contrib/tools/flatc/bin/CMakeLists.linux-x86_64.txt index bf662e0f7910..7a29fdea9969 100644 --- a/contrib/tools/flatc/bin/CMakeLists.linux-x86_64.txt +++ b/contrib/tools/flatc/bin/CMakeLists.linux-x86_64.txt @@ -22,7 +22,6 @@ target_link_options(flatc PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread ) target_sources(flatc PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/flatbuffers/src/flatc_main.cpp diff --git a/contrib/tools/protoc/bin/CMakeLists.linux-aarch64.txt b/contrib/tools/protoc/bin/CMakeLists.linux-aarch64.txt index 7aa65033fd02..b6dc2b747ebc 100644 --- a/contrib/tools/protoc/bin/CMakeLists.linux-aarch64.txt +++ b/contrib/tools/protoc/bin/CMakeLists.linux-aarch64.txt @@ -23,9 +23,6 @@ target_link_options(protoc PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(protoc PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/main.cc diff --git a/contrib/tools/protoc/bin/CMakeLists.linux-x86_64.txt b/contrib/tools/protoc/bin/CMakeLists.linux-x86_64.txt index 37364dc61aac..7a233fd38d5c 100644 --- a/contrib/tools/protoc/bin/CMakeLists.linux-x86_64.txt +++ b/contrib/tools/protoc/bin/CMakeLists.linux-x86_64.txt @@ -24,9 +24,6 @@ target_link_options(protoc PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(protoc PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/protoc/src/google/protobuf/compiler/main.cc diff --git a/contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.linux-aarch64.txt b/contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.linux-aarch64.txt index 744e24124bff..42da49f53694 100644 --- a/contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.linux-aarch64.txt +++ b/contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.linux-aarch64.txt @@ -23,9 +23,6 @@ target_link_options(cpp_styleguide PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(cpp_styleguide PRIVATE ${CMAKE_SOURCE_DIR}/contrib/tools/protoc/plugins/cpp_styleguide/cpp_styleguide.cpp diff --git a/contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.linux-x86_64.txt b/contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.linux-x86_64.txt index d39ea8b10b1b..8cbd55c43671 100644 --- a/contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.linux-x86_64.txt +++ b/contrib/tools/protoc/plugins/cpp_styleguide/CMakeLists.linux-x86_64.txt @@ -24,9 +24,6 @@ target_link_options(cpp_styleguide PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(cpp_styleguide PRIVATE ${CMAKE_SOURCE_DIR}/contrib/tools/protoc/plugins/cpp_styleguide/cpp_styleguide.cpp diff --git a/contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.linux-aarch64.txt b/contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.linux-aarch64.txt index 860ce479935e..d2a3c99c3bc9 100644 --- a/contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.linux-aarch64.txt +++ b/contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(grpc_cpp PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(grpc_cpp PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/compiler/cpp_plugin.cc diff --git a/contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.linux-x86_64.txt b/contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.linux-x86_64.txt index 38f77750e6b6..bd6bc76ba1d5 100644 --- a/contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.linux-x86_64.txt +++ b/contrib/tools/protoc/plugins/grpc_cpp/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(grpc_cpp PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(grpc_cpp PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/grpc/src/compiler/cpp_plugin.cc diff --git a/library/cpp/CMakeLists.windows-x86_64.txt b/library/cpp/CMakeLists.windows-x86_64.txt index 7867eb10618e..1fc99ac7c865 100644 --- a/library/cpp/CMakeLists.windows-x86_64.txt +++ b/library/cpp/CMakeLists.windows-x86_64.txt @@ -18,6 +18,7 @@ add_subdirectory(cache) add_subdirectory(case_insensitive_string) add_subdirectory(cgiparam) add_subdirectory(charset) +add_subdirectory(clickhouse) add_subdirectory(codecs) add_subdirectory(colorizer) add_subdirectory(compproto) diff --git a/library/cpp/accurate_accumulate/CMakeLists.darwin-arm64.txt b/library/cpp/accurate_accumulate/CMakeLists.darwin-arm64.txt index 6d68faefed96..62f15debba1d 100644 --- a/library/cpp/accurate_accumulate/CMakeLists.darwin-arm64.txt +++ b/library/cpp/accurate_accumulate/CMakeLists.darwin-arm64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-cpp-accurate_accumulate PUBLIC yutil ) target_sources(library-cpp-accurate_accumulate PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/accurate_accumulate/accurate_accumulate.h ${CMAKE_SOURCE_DIR}/library/cpp/accurate_accumulate/accurate_accumulate.cpp ) diff --git a/library/cpp/accurate_accumulate/CMakeLists.darwin-x86_64.txt b/library/cpp/accurate_accumulate/CMakeLists.darwin-x86_64.txt index 6d68faefed96..62f15debba1d 100644 --- a/library/cpp/accurate_accumulate/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/accurate_accumulate/CMakeLists.darwin-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-cpp-accurate_accumulate PUBLIC yutil ) target_sources(library-cpp-accurate_accumulate PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/accurate_accumulate/accurate_accumulate.h ${CMAKE_SOURCE_DIR}/library/cpp/accurate_accumulate/accurate_accumulate.cpp ) diff --git a/library/cpp/accurate_accumulate/CMakeLists.linux-aarch64.txt b/library/cpp/accurate_accumulate/CMakeLists.linux-aarch64.txt index d168ea5295a7..d8a5028e256d 100644 --- a/library/cpp/accurate_accumulate/CMakeLists.linux-aarch64.txt +++ b/library/cpp/accurate_accumulate/CMakeLists.linux-aarch64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-cpp-accurate_accumulate PUBLIC yutil ) target_sources(library-cpp-accurate_accumulate PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/accurate_accumulate/accurate_accumulate.h ${CMAKE_SOURCE_DIR}/library/cpp/accurate_accumulate/accurate_accumulate.cpp ) diff --git a/library/cpp/accurate_accumulate/CMakeLists.linux-x86_64.txt b/library/cpp/accurate_accumulate/CMakeLists.linux-x86_64.txt index d168ea5295a7..d8a5028e256d 100644 --- a/library/cpp/accurate_accumulate/CMakeLists.linux-x86_64.txt +++ b/library/cpp/accurate_accumulate/CMakeLists.linux-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-cpp-accurate_accumulate PUBLIC yutil ) target_sources(library-cpp-accurate_accumulate PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/accurate_accumulate/accurate_accumulate.h ${CMAKE_SOURCE_DIR}/library/cpp/accurate_accumulate/accurate_accumulate.cpp ) diff --git a/library/cpp/accurate_accumulate/CMakeLists.windows-x86_64.txt b/library/cpp/accurate_accumulate/CMakeLists.windows-x86_64.txt index 6d68faefed96..62f15debba1d 100644 --- a/library/cpp/accurate_accumulate/CMakeLists.windows-x86_64.txt +++ b/library/cpp/accurate_accumulate/CMakeLists.windows-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-cpp-accurate_accumulate PUBLIC yutil ) target_sources(library-cpp-accurate_accumulate PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/accurate_accumulate/accurate_accumulate.h ${CMAKE_SOURCE_DIR}/library/cpp/accurate_accumulate/accurate_accumulate.cpp ) diff --git a/library/cpp/archive/CMakeLists.darwin-arm64.txt b/library/cpp/archive/CMakeLists.darwin-arm64.txt index 37c28ba02a3c..680cd10706bf 100644 --- a/library/cpp/archive/CMakeLists.darwin-arm64.txt +++ b/library/cpp/archive/CMakeLists.darwin-arm64.txt @@ -13,6 +13,8 @@ target_link_libraries(library-cpp-archive PUBLIC yutil ) target_sources(library-cpp-archive PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/archive/yarchive.h + ${CMAKE_SOURCE_DIR}/library/cpp/archive/directory_models_archive_reader.h ${CMAKE_SOURCE_DIR}/library/cpp/archive/yarchive.cpp ${CMAKE_SOURCE_DIR}/library/cpp/archive/directory_models_archive_reader.cpp ) diff --git a/library/cpp/archive/CMakeLists.darwin-x86_64.txt b/library/cpp/archive/CMakeLists.darwin-x86_64.txt index 37c28ba02a3c..680cd10706bf 100644 --- a/library/cpp/archive/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/archive/CMakeLists.darwin-x86_64.txt @@ -13,6 +13,8 @@ target_link_libraries(library-cpp-archive PUBLIC yutil ) target_sources(library-cpp-archive PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/archive/yarchive.h + ${CMAKE_SOURCE_DIR}/library/cpp/archive/directory_models_archive_reader.h ${CMAKE_SOURCE_DIR}/library/cpp/archive/yarchive.cpp ${CMAKE_SOURCE_DIR}/library/cpp/archive/directory_models_archive_reader.cpp ) diff --git a/library/cpp/archive/CMakeLists.linux-aarch64.txt b/library/cpp/archive/CMakeLists.linux-aarch64.txt index 03631029ddfe..c6ba0eeceedd 100644 --- a/library/cpp/archive/CMakeLists.linux-aarch64.txt +++ b/library/cpp/archive/CMakeLists.linux-aarch64.txt @@ -14,6 +14,8 @@ target_link_libraries(library-cpp-archive PUBLIC yutil ) target_sources(library-cpp-archive PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/archive/yarchive.h + ${CMAKE_SOURCE_DIR}/library/cpp/archive/directory_models_archive_reader.h ${CMAKE_SOURCE_DIR}/library/cpp/archive/yarchive.cpp ${CMAKE_SOURCE_DIR}/library/cpp/archive/directory_models_archive_reader.cpp ) diff --git a/library/cpp/archive/CMakeLists.linux-x86_64.txt b/library/cpp/archive/CMakeLists.linux-x86_64.txt index 03631029ddfe..c6ba0eeceedd 100644 --- a/library/cpp/archive/CMakeLists.linux-x86_64.txt +++ b/library/cpp/archive/CMakeLists.linux-x86_64.txt @@ -14,6 +14,8 @@ target_link_libraries(library-cpp-archive PUBLIC yutil ) target_sources(library-cpp-archive PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/archive/yarchive.h + ${CMAKE_SOURCE_DIR}/library/cpp/archive/directory_models_archive_reader.h ${CMAKE_SOURCE_DIR}/library/cpp/archive/yarchive.cpp ${CMAKE_SOURCE_DIR}/library/cpp/archive/directory_models_archive_reader.cpp ) diff --git a/library/cpp/archive/CMakeLists.windows-x86_64.txt b/library/cpp/archive/CMakeLists.windows-x86_64.txt index 37c28ba02a3c..680cd10706bf 100644 --- a/library/cpp/archive/CMakeLists.windows-x86_64.txt +++ b/library/cpp/archive/CMakeLists.windows-x86_64.txt @@ -13,6 +13,8 @@ target_link_libraries(library-cpp-archive PUBLIC yutil ) target_sources(library-cpp-archive PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/archive/yarchive.h + ${CMAKE_SOURCE_DIR}/library/cpp/archive/directory_models_archive_reader.h ${CMAKE_SOURCE_DIR}/library/cpp/archive/yarchive.cpp ${CMAKE_SOURCE_DIR}/library/cpp/archive/directory_models_archive_reader.cpp ) diff --git a/library/cpp/balloc/lib/CMakeLists.darwin-arm64.txt b/library/cpp/balloc/lib/CMakeLists.darwin-arm64.txt index 044487668190..fe7191923f05 100644 --- a/library/cpp/balloc/lib/CMakeLists.darwin-arm64.txt +++ b/library/cpp/balloc/lib/CMakeLists.darwin-arm64.txt @@ -17,5 +17,6 @@ target_link_libraries(cpp-balloc-lib PUBLIC cpp-malloc-api ) target_sources(cpp-balloc-lib PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/balloc/lib/alloc_stats.h ${CMAKE_SOURCE_DIR}/library/cpp/balloc/lib/alloc_stats.cpp ) diff --git a/library/cpp/balloc/lib/CMakeLists.darwin-x86_64.txt b/library/cpp/balloc/lib/CMakeLists.darwin-x86_64.txt index 044487668190..fe7191923f05 100644 --- a/library/cpp/balloc/lib/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/balloc/lib/CMakeLists.darwin-x86_64.txt @@ -17,5 +17,6 @@ target_link_libraries(cpp-balloc-lib PUBLIC cpp-malloc-api ) target_sources(cpp-balloc-lib PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/balloc/lib/alloc_stats.h ${CMAKE_SOURCE_DIR}/library/cpp/balloc/lib/alloc_stats.cpp ) diff --git a/library/cpp/balloc/lib/CMakeLists.linux-aarch64.txt b/library/cpp/balloc/lib/CMakeLists.linux-aarch64.txt index 78dd3d4b903a..37a61dfda991 100644 --- a/library/cpp/balloc/lib/CMakeLists.linux-aarch64.txt +++ b/library/cpp/balloc/lib/CMakeLists.linux-aarch64.txt @@ -19,5 +19,6 @@ target_link_libraries(cpp-balloc-lib PUBLIC cpp-malloc-api ) target_sources(cpp-balloc-lib PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/balloc/lib/alloc_stats.h ${CMAKE_SOURCE_DIR}/library/cpp/balloc/lib/alloc_stats.cpp ) diff --git a/library/cpp/balloc/lib/CMakeLists.linux-x86_64.txt b/library/cpp/balloc/lib/CMakeLists.linux-x86_64.txt index 78dd3d4b903a..37a61dfda991 100644 --- a/library/cpp/balloc/lib/CMakeLists.linux-x86_64.txt +++ b/library/cpp/balloc/lib/CMakeLists.linux-x86_64.txt @@ -19,5 +19,6 @@ target_link_libraries(cpp-balloc-lib PUBLIC cpp-malloc-api ) target_sources(cpp-balloc-lib PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/balloc/lib/alloc_stats.h ${CMAKE_SOURCE_DIR}/library/cpp/balloc/lib/alloc_stats.cpp ) diff --git a/library/cpp/binsaver/CMakeLists.darwin-arm64.txt b/library/cpp/binsaver/CMakeLists.darwin-arm64.txt index 3430226be1f9..a48ef9811266 100644 --- a/library/cpp/binsaver/CMakeLists.darwin-arm64.txt +++ b/library/cpp/binsaver/CMakeLists.darwin-arm64.txt @@ -14,6 +14,7 @@ target_link_libraries(library-cpp-binsaver PUBLIC cpp-containers-2d_array ) target_sources(library-cpp-binsaver PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/class_factory.h ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/bin_saver.cpp ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/blob_io.cpp ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/buffered_io.cpp diff --git a/library/cpp/binsaver/CMakeLists.darwin-x86_64.txt b/library/cpp/binsaver/CMakeLists.darwin-x86_64.txt index 3430226be1f9..a48ef9811266 100644 --- a/library/cpp/binsaver/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/binsaver/CMakeLists.darwin-x86_64.txt @@ -14,6 +14,7 @@ target_link_libraries(library-cpp-binsaver PUBLIC cpp-containers-2d_array ) target_sources(library-cpp-binsaver PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/class_factory.h ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/bin_saver.cpp ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/blob_io.cpp ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/buffered_io.cpp diff --git a/library/cpp/binsaver/CMakeLists.linux-aarch64.txt b/library/cpp/binsaver/CMakeLists.linux-aarch64.txt index 1a5048d32f57..1b24d0daeab4 100644 --- a/library/cpp/binsaver/CMakeLists.linux-aarch64.txt +++ b/library/cpp/binsaver/CMakeLists.linux-aarch64.txt @@ -15,6 +15,7 @@ target_link_libraries(library-cpp-binsaver PUBLIC cpp-containers-2d_array ) target_sources(library-cpp-binsaver PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/class_factory.h ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/bin_saver.cpp ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/blob_io.cpp ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/buffered_io.cpp diff --git a/library/cpp/binsaver/CMakeLists.linux-x86_64.txt b/library/cpp/binsaver/CMakeLists.linux-x86_64.txt index 1a5048d32f57..1b24d0daeab4 100644 --- a/library/cpp/binsaver/CMakeLists.linux-x86_64.txt +++ b/library/cpp/binsaver/CMakeLists.linux-x86_64.txt @@ -15,6 +15,7 @@ target_link_libraries(library-cpp-binsaver PUBLIC cpp-containers-2d_array ) target_sources(library-cpp-binsaver PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/class_factory.h ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/bin_saver.cpp ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/blob_io.cpp ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/buffered_io.cpp diff --git a/library/cpp/binsaver/CMakeLists.windows-x86_64.txt b/library/cpp/binsaver/CMakeLists.windows-x86_64.txt index 3430226be1f9..a48ef9811266 100644 --- a/library/cpp/binsaver/CMakeLists.windows-x86_64.txt +++ b/library/cpp/binsaver/CMakeLists.windows-x86_64.txt @@ -14,6 +14,7 @@ target_link_libraries(library-cpp-binsaver PUBLIC cpp-containers-2d_array ) target_sources(library-cpp-binsaver PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/class_factory.h ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/bin_saver.cpp ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/blob_io.cpp ${CMAKE_SOURCE_DIR}/library/cpp/binsaver/buffered_io.cpp diff --git a/library/cpp/bucket_quoter/bucket_quoter.h b/library/cpp/bucket_quoter/bucket_quoter.h index f8396b7b7e6c..ce2d96b65d8b 100644 --- a/library/cpp/bucket_quoter/bucket_quoter.h +++ b/library/cpp/bucket_quoter/bucket_quoter.h @@ -172,8 +172,8 @@ class TBucketQuoter { i64 UseAndFill(ui64 tokens) { TGuard g(BucketMutex); - UseNoLock(tokens); FillBucket(); + UseNoLock(tokens); return Bucket; } diff --git a/library/cpp/build_info/CMakeLists.darwin-arm64.txt b/library/cpp/build_info/CMakeLists.darwin-arm64.txt index a749cac8a038..2f6c940a39ff 100644 --- a/library/cpp/build_info/CMakeLists.darwin-arm64.txt +++ b/library/cpp/build_info/CMakeLists.darwin-arm64.txt @@ -30,6 +30,7 @@ target_link_libraries(library-cpp-build_info PUBLIC cpp-string_utils-base64 ) target_sources(library-cpp-build_info PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/build_info/buildinfo_data.h ${CMAKE_SOURCE_DIR}/library/cpp/build_info/build_info_static.cpp ${CMAKE_BINARY_DIR}/library/cpp/build_info/buildinfo_data.h ${CMAKE_BINARY_DIR}/library/cpp/build_info/sandbox.cpp diff --git a/library/cpp/build_info/CMakeLists.darwin-x86_64.txt b/library/cpp/build_info/CMakeLists.darwin-x86_64.txt index a749cac8a038..2f6c940a39ff 100644 --- a/library/cpp/build_info/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/build_info/CMakeLists.darwin-x86_64.txt @@ -30,6 +30,7 @@ target_link_libraries(library-cpp-build_info PUBLIC cpp-string_utils-base64 ) target_sources(library-cpp-build_info PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/build_info/buildinfo_data.h ${CMAKE_SOURCE_DIR}/library/cpp/build_info/build_info_static.cpp ${CMAKE_BINARY_DIR}/library/cpp/build_info/buildinfo_data.h ${CMAKE_BINARY_DIR}/library/cpp/build_info/sandbox.cpp diff --git a/library/cpp/build_info/CMakeLists.linux-aarch64.txt b/library/cpp/build_info/CMakeLists.linux-aarch64.txt index 7067bdf107c2..f515b52d6a01 100644 --- a/library/cpp/build_info/CMakeLists.linux-aarch64.txt +++ b/library/cpp/build_info/CMakeLists.linux-aarch64.txt @@ -31,6 +31,7 @@ target_link_libraries(library-cpp-build_info PUBLIC cpp-string_utils-base64 ) target_sources(library-cpp-build_info PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/build_info/buildinfo_data.h ${CMAKE_SOURCE_DIR}/library/cpp/build_info/build_info_static.cpp ${CMAKE_BINARY_DIR}/library/cpp/build_info/buildinfo_data.h ${CMAKE_BINARY_DIR}/library/cpp/build_info/sandbox.cpp diff --git a/library/cpp/build_info/CMakeLists.linux-x86_64.txt b/library/cpp/build_info/CMakeLists.linux-x86_64.txt index 7067bdf107c2..f515b52d6a01 100644 --- a/library/cpp/build_info/CMakeLists.linux-x86_64.txt +++ b/library/cpp/build_info/CMakeLists.linux-x86_64.txt @@ -31,6 +31,7 @@ target_link_libraries(library-cpp-build_info PUBLIC cpp-string_utils-base64 ) target_sources(library-cpp-build_info PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/build_info/buildinfo_data.h ${CMAKE_SOURCE_DIR}/library/cpp/build_info/build_info_static.cpp ${CMAKE_BINARY_DIR}/library/cpp/build_info/buildinfo_data.h ${CMAKE_BINARY_DIR}/library/cpp/build_info/sandbox.cpp diff --git a/library/cpp/build_info/CMakeLists.windows-x86_64.txt b/library/cpp/build_info/CMakeLists.windows-x86_64.txt index a749cac8a038..2f6c940a39ff 100644 --- a/library/cpp/build_info/CMakeLists.windows-x86_64.txt +++ b/library/cpp/build_info/CMakeLists.windows-x86_64.txt @@ -30,6 +30,7 @@ target_link_libraries(library-cpp-build_info PUBLIC cpp-string_utils-base64 ) target_sources(library-cpp-build_info PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/build_info/buildinfo_data.h ${CMAKE_SOURCE_DIR}/library/cpp/build_info/build_info_static.cpp ${CMAKE_BINARY_DIR}/library/cpp/build_info/buildinfo_data.h ${CMAKE_BINARY_DIR}/library/cpp/build_info/sandbox.cpp diff --git a/library/cpp/cgiparam/CMakeLists.darwin-arm64.txt b/library/cpp/cgiparam/CMakeLists.darwin-arm64.txt index 186d00a9389b..a3bb2ba5a2bc 100644 --- a/library/cpp/cgiparam/CMakeLists.darwin-arm64.txt +++ b/library/cpp/cgiparam/CMakeLists.darwin-arm64.txt @@ -16,5 +16,6 @@ target_link_libraries(library-cpp-cgiparam PUBLIC cpp-string_utils-scan ) target_sources(library-cpp-cgiparam PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/cgiparam/cgiparam.h ${CMAKE_SOURCE_DIR}/library/cpp/cgiparam/cgiparam.cpp ) diff --git a/library/cpp/cgiparam/CMakeLists.darwin-x86_64.txt b/library/cpp/cgiparam/CMakeLists.darwin-x86_64.txt index 186d00a9389b..a3bb2ba5a2bc 100644 --- a/library/cpp/cgiparam/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/cgiparam/CMakeLists.darwin-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(library-cpp-cgiparam PUBLIC cpp-string_utils-scan ) target_sources(library-cpp-cgiparam PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/cgiparam/cgiparam.h ${CMAKE_SOURCE_DIR}/library/cpp/cgiparam/cgiparam.cpp ) diff --git a/library/cpp/cgiparam/CMakeLists.linux-aarch64.txt b/library/cpp/cgiparam/CMakeLists.linux-aarch64.txt index eec57f881a2e..0edbc3928af0 100644 --- a/library/cpp/cgiparam/CMakeLists.linux-aarch64.txt +++ b/library/cpp/cgiparam/CMakeLists.linux-aarch64.txt @@ -17,5 +17,6 @@ target_link_libraries(library-cpp-cgiparam PUBLIC cpp-string_utils-scan ) target_sources(library-cpp-cgiparam PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/cgiparam/cgiparam.h ${CMAKE_SOURCE_DIR}/library/cpp/cgiparam/cgiparam.cpp ) diff --git a/library/cpp/cgiparam/CMakeLists.linux-x86_64.txt b/library/cpp/cgiparam/CMakeLists.linux-x86_64.txt index eec57f881a2e..0edbc3928af0 100644 --- a/library/cpp/cgiparam/CMakeLists.linux-x86_64.txt +++ b/library/cpp/cgiparam/CMakeLists.linux-x86_64.txt @@ -17,5 +17,6 @@ target_link_libraries(library-cpp-cgiparam PUBLIC cpp-string_utils-scan ) target_sources(library-cpp-cgiparam PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/cgiparam/cgiparam.h ${CMAKE_SOURCE_DIR}/library/cpp/cgiparam/cgiparam.cpp ) diff --git a/library/cpp/cgiparam/CMakeLists.windows-x86_64.txt b/library/cpp/cgiparam/CMakeLists.windows-x86_64.txt index 186d00a9389b..a3bb2ba5a2bc 100644 --- a/library/cpp/cgiparam/CMakeLists.windows-x86_64.txt +++ b/library/cpp/cgiparam/CMakeLists.windows-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(library-cpp-cgiparam PUBLIC cpp-string_utils-scan ) target_sources(library-cpp-cgiparam PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/cgiparam/cgiparam.h ${CMAKE_SOURCE_DIR}/library/cpp/cgiparam/cgiparam.cpp ) diff --git a/library/cpp/charset/CMakeLists.darwin-arm64.txt b/library/cpp/charset/CMakeLists.darwin-arm64.txt index cade4ef3cd98..75e8c65c99c5 100644 --- a/library/cpp/charset/CMakeLists.darwin-arm64.txt +++ b/library/cpp/charset/CMakeLists.darwin-arm64.txt @@ -15,6 +15,8 @@ target_link_libraries(library-cpp-charset PUBLIC cpp-charset-lite ) target_sources(library-cpp-charset PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/charset/recyr.hh + ${CMAKE_SOURCE_DIR}/library/cpp/charset/recyr_int.hh ${CMAKE_SOURCE_DIR}/library/cpp/charset/decodeunknownplane.cpp ${CMAKE_SOURCE_DIR}/library/cpp/charset/wide.cpp ${CMAKE_SOURCE_DIR}/library/cpp/charset/iconv.cpp diff --git a/library/cpp/charset/CMakeLists.darwin-x86_64.txt b/library/cpp/charset/CMakeLists.darwin-x86_64.txt index cade4ef3cd98..75e8c65c99c5 100644 --- a/library/cpp/charset/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/charset/CMakeLists.darwin-x86_64.txt @@ -15,6 +15,8 @@ target_link_libraries(library-cpp-charset PUBLIC cpp-charset-lite ) target_sources(library-cpp-charset PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/charset/recyr.hh + ${CMAKE_SOURCE_DIR}/library/cpp/charset/recyr_int.hh ${CMAKE_SOURCE_DIR}/library/cpp/charset/decodeunknownplane.cpp ${CMAKE_SOURCE_DIR}/library/cpp/charset/wide.cpp ${CMAKE_SOURCE_DIR}/library/cpp/charset/iconv.cpp diff --git a/library/cpp/charset/CMakeLists.linux-aarch64.txt b/library/cpp/charset/CMakeLists.linux-aarch64.txt index 63f8766de9b3..5bb17b13bd77 100644 --- a/library/cpp/charset/CMakeLists.linux-aarch64.txt +++ b/library/cpp/charset/CMakeLists.linux-aarch64.txt @@ -16,6 +16,8 @@ target_link_libraries(library-cpp-charset PUBLIC cpp-charset-lite ) target_sources(library-cpp-charset PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/charset/recyr.hh + ${CMAKE_SOURCE_DIR}/library/cpp/charset/recyr_int.hh ${CMAKE_SOURCE_DIR}/library/cpp/charset/decodeunknownplane.cpp ${CMAKE_SOURCE_DIR}/library/cpp/charset/wide.cpp ${CMAKE_SOURCE_DIR}/library/cpp/charset/iconv.cpp diff --git a/library/cpp/charset/CMakeLists.linux-x86_64.txt b/library/cpp/charset/CMakeLists.linux-x86_64.txt index 63f8766de9b3..5bb17b13bd77 100644 --- a/library/cpp/charset/CMakeLists.linux-x86_64.txt +++ b/library/cpp/charset/CMakeLists.linux-x86_64.txt @@ -16,6 +16,8 @@ target_link_libraries(library-cpp-charset PUBLIC cpp-charset-lite ) target_sources(library-cpp-charset PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/charset/recyr.hh + ${CMAKE_SOURCE_DIR}/library/cpp/charset/recyr_int.hh ${CMAKE_SOURCE_DIR}/library/cpp/charset/decodeunknownplane.cpp ${CMAKE_SOURCE_DIR}/library/cpp/charset/wide.cpp ${CMAKE_SOURCE_DIR}/library/cpp/charset/iconv.cpp diff --git a/library/cpp/charset/CMakeLists.windows-x86_64.txt b/library/cpp/charset/CMakeLists.windows-x86_64.txt index 951a43b8122c..41443ad9b0d9 100644 --- a/library/cpp/charset/CMakeLists.windows-x86_64.txt +++ b/library/cpp/charset/CMakeLists.windows-x86_64.txt @@ -17,6 +17,8 @@ target_link_libraries(library-cpp-charset PUBLIC Iconv::Iconv ) target_sources(library-cpp-charset PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/charset/recyr.hh + ${CMAKE_SOURCE_DIR}/library/cpp/charset/recyr_int.hh ${CMAKE_SOURCE_DIR}/library/cpp/charset/decodeunknownplane.cpp ${CMAKE_SOURCE_DIR}/library/cpp/charset/wide.cpp ${CMAKE_SOURCE_DIR}/library/cpp/charset/iconv.cpp diff --git a/library/cpp/clickhouse/CMakeLists.darwin-arm64.txt b/library/cpp/clickhouse/CMakeLists.darwin-arm64.txt deleted file mode 100644 index 7f79107ebc79..000000000000 --- a/library/cpp/clickhouse/CMakeLists.darwin-arm64.txt +++ /dev/null @@ -1,9 +0,0 @@ - -# 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(client) diff --git a/library/cpp/clickhouse/CMakeLists.darwin-x86_64.txt b/library/cpp/clickhouse/CMakeLists.darwin-x86_64.txt deleted file mode 100644 index 7f79107ebc79..000000000000 --- a/library/cpp/clickhouse/CMakeLists.darwin-x86_64.txt +++ /dev/null @@ -1,9 +0,0 @@ - -# 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(client) diff --git a/library/cpp/clickhouse/CMakeLists.linux-aarch64.txt b/library/cpp/clickhouse/CMakeLists.linux-aarch64.txt deleted file mode 100644 index 7f79107ebc79..000000000000 --- a/library/cpp/clickhouse/CMakeLists.linux-aarch64.txt +++ /dev/null @@ -1,9 +0,0 @@ - -# 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(client) diff --git a/library/cpp/clickhouse/CMakeLists.linux-x86_64.txt b/library/cpp/clickhouse/CMakeLists.linux-x86_64.txt deleted file mode 100644 index 7f79107ebc79..000000000000 --- a/library/cpp/clickhouse/CMakeLists.linux-x86_64.txt +++ /dev/null @@ -1,9 +0,0 @@ - -# 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(client) diff --git a/library/cpp/clickhouse/CMakeLists.txt b/library/cpp/clickhouse/CMakeLists.txt index 380079ac7b4a..7f79107ebc79 100644 --- a/library/cpp/clickhouse/CMakeLists.txt +++ b/library/cpp/clickhouse/CMakeLists.txt @@ -6,12 +6,4 @@ # original buildsystem will not be accepted. -if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA) - include(CMakeLists.linux-x86_64.txt) -elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -endif() +add_subdirectory(client) diff --git a/library/cpp/clickhouse/client/CMakeLists.txt b/library/cpp/clickhouse/client/CMakeLists.txt index 380079ac7b4a..d863ebd18067 100644 --- a/library/cpp/clickhouse/client/CMakeLists.txt +++ b/library/cpp/clickhouse/client/CMakeLists.txt @@ -14,4 +14,6 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL include(CMakeLists.darwin-x86_64.txt) elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) endif() diff --git a/library/cpp/clickhouse/client/CMakeLists.windows-x86_64.txt b/library/cpp/clickhouse/client/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..d31f838946c2 --- /dev/null +++ b/library/cpp/clickhouse/client/CMakeLists.windows-x86_64.txt @@ -0,0 +1,28 @@ + +# 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(base) +add_subdirectory(columns) +add_subdirectory(types) + +add_library(cpp-clickhouse-client) +target_link_libraries(cpp-clickhouse-client PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-lz4 + contrib-restricted-cityhash-1.0.2 + clickhouse-client-base + clickhouse-client-columns + clickhouse-client-types + cpp-openssl-io +) +target_sources(cpp-clickhouse-client PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/block.cpp + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/client.cpp + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/query.cpp +) diff --git a/library/cpp/clickhouse/client/base/CMakeLists.darwin-arm64.txt b/library/cpp/clickhouse/client/base/CMakeLists.darwin-arm64.txt index a76303537c6e..4bb9a0bad779 100644 --- a/library/cpp/clickhouse/client/base/CMakeLists.darwin-arm64.txt +++ b/library/cpp/clickhouse/client/base/CMakeLists.darwin-arm64.txt @@ -13,6 +13,7 @@ target_link_libraries(clickhouse-client-base PUBLIC yutil ) target_sources(clickhouse-client-base PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/base/wire_format.h ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/base/coded.cpp ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/base/compressed.cpp ) diff --git a/library/cpp/clickhouse/client/base/CMakeLists.darwin-x86_64.txt b/library/cpp/clickhouse/client/base/CMakeLists.darwin-x86_64.txt index a76303537c6e..4bb9a0bad779 100644 --- a/library/cpp/clickhouse/client/base/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/clickhouse/client/base/CMakeLists.darwin-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(clickhouse-client-base PUBLIC yutil ) target_sources(clickhouse-client-base PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/base/wire_format.h ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/base/coded.cpp ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/base/compressed.cpp ) diff --git a/library/cpp/clickhouse/client/base/CMakeLists.linux-aarch64.txt b/library/cpp/clickhouse/client/base/CMakeLists.linux-aarch64.txt index 98015a9e92da..4cd03128b8b5 100644 --- a/library/cpp/clickhouse/client/base/CMakeLists.linux-aarch64.txt +++ b/library/cpp/clickhouse/client/base/CMakeLists.linux-aarch64.txt @@ -14,6 +14,7 @@ target_link_libraries(clickhouse-client-base PUBLIC yutil ) target_sources(clickhouse-client-base PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/base/wire_format.h ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/base/coded.cpp ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/base/compressed.cpp ) diff --git a/library/cpp/clickhouse/client/base/CMakeLists.linux-x86_64.txt b/library/cpp/clickhouse/client/base/CMakeLists.linux-x86_64.txt index 98015a9e92da..4cd03128b8b5 100644 --- a/library/cpp/clickhouse/client/base/CMakeLists.linux-x86_64.txt +++ b/library/cpp/clickhouse/client/base/CMakeLists.linux-x86_64.txt @@ -14,6 +14,7 @@ target_link_libraries(clickhouse-client-base PUBLIC yutil ) target_sources(clickhouse-client-base PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/base/wire_format.h ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/base/coded.cpp ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/base/compressed.cpp ) diff --git a/library/cpp/clickhouse/client/base/CMakeLists.txt b/library/cpp/clickhouse/client/base/CMakeLists.txt index 380079ac7b4a..d863ebd18067 100644 --- a/library/cpp/clickhouse/client/base/CMakeLists.txt +++ b/library/cpp/clickhouse/client/base/CMakeLists.txt @@ -14,4 +14,6 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL include(CMakeLists.darwin-x86_64.txt) elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) endif() diff --git a/library/cpp/clickhouse/client/base/CMakeLists.windows-x86_64.txt b/library/cpp/clickhouse/client/base/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..4bb9a0bad779 --- /dev/null +++ b/library/cpp/clickhouse/client/base/CMakeLists.windows-x86_64.txt @@ -0,0 +1,19 @@ + +# 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(clickhouse-client-base) +target_link_libraries(clickhouse-client-base PUBLIC + contrib-libs-cxxsupp + yutil +) +target_sources(clickhouse-client-base PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/base/wire_format.h + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/base/coded.cpp + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/base/compressed.cpp +) diff --git a/library/cpp/clickhouse/client/columns/CMakeLists.txt b/library/cpp/clickhouse/client/columns/CMakeLists.txt index 380079ac7b4a..d863ebd18067 100644 --- a/library/cpp/clickhouse/client/columns/CMakeLists.txt +++ b/library/cpp/clickhouse/client/columns/CMakeLists.txt @@ -14,4 +14,6 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL include(CMakeLists.darwin-x86_64.txt) elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) endif() diff --git a/library/cpp/clickhouse/client/columns/CMakeLists.windows-x86_64.txt b/library/cpp/clickhouse/client/columns/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..306332e5fa77 --- /dev/null +++ b/library/cpp/clickhouse/client/columns/CMakeLists.windows-x86_64.txt @@ -0,0 +1,26 @@ + +# 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(clickhouse-client-columns) +target_link_libraries(clickhouse-client-columns PUBLIC + contrib-libs-cxxsupp + yutil + clickhouse-client-base + clickhouse-client-types +) +target_sources(clickhouse-client-columns PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/columns/array.cpp + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/columns/date.cpp + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/columns/enum.cpp + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/columns/factory.cpp + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/columns/nullable.cpp + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/columns/numeric.cpp + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/columns/string.cpp + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/columns/tuple.cpp +) diff --git a/library/cpp/clickhouse/client/types/CMakeLists.txt b/library/cpp/clickhouse/client/types/CMakeLists.txt index 380079ac7b4a..d863ebd18067 100644 --- a/library/cpp/clickhouse/client/types/CMakeLists.txt +++ b/library/cpp/clickhouse/client/types/CMakeLists.txt @@ -14,4 +14,6 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL include(CMakeLists.darwin-x86_64.txt) elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) endif() diff --git a/library/cpp/clickhouse/client/types/CMakeLists.windows-x86_64.txt b/library/cpp/clickhouse/client/types/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..abd32a87511e --- /dev/null +++ b/library/cpp/clickhouse/client/types/CMakeLists.windows-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(clickhouse-client-types) +target_link_libraries(clickhouse-client-types PUBLIC + contrib-libs-cxxsupp + yutil +) +target_sources(clickhouse-client-types PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/types/type_parser.cpp + ${CMAKE_SOURCE_DIR}/library/cpp/clickhouse/client/types/types.cpp +) diff --git a/library/cpp/compproto/CMakeLists.darwin-arm64.txt b/library/cpp/compproto/CMakeLists.darwin-arm64.txt index abcc95d486fe..ca226d4a15b7 100644 --- a/library/cpp/compproto/CMakeLists.darwin-arm64.txt +++ b/library/cpp/compproto/CMakeLists.darwin-arm64.txt @@ -13,5 +13,9 @@ target_link_libraries(library-cpp-compproto PUBLIC yutil ) target_sources(library-cpp-compproto PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/bit.h + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/compressor.h + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/huff.h + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/metainfo.h ${CMAKE_SOURCE_DIR}/library/cpp/compproto/lib.cpp ) diff --git a/library/cpp/compproto/CMakeLists.darwin-x86_64.txt b/library/cpp/compproto/CMakeLists.darwin-x86_64.txt index abcc95d486fe..ca226d4a15b7 100644 --- a/library/cpp/compproto/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/compproto/CMakeLists.darwin-x86_64.txt @@ -13,5 +13,9 @@ target_link_libraries(library-cpp-compproto PUBLIC yutil ) target_sources(library-cpp-compproto PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/bit.h + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/compressor.h + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/huff.h + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/metainfo.h ${CMAKE_SOURCE_DIR}/library/cpp/compproto/lib.cpp ) diff --git a/library/cpp/compproto/CMakeLists.linux-aarch64.txt b/library/cpp/compproto/CMakeLists.linux-aarch64.txt index f7c1ee7be784..387fd6309adb 100644 --- a/library/cpp/compproto/CMakeLists.linux-aarch64.txt +++ b/library/cpp/compproto/CMakeLists.linux-aarch64.txt @@ -14,5 +14,9 @@ target_link_libraries(library-cpp-compproto PUBLIC yutil ) target_sources(library-cpp-compproto PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/bit.h + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/compressor.h + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/huff.h + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/metainfo.h ${CMAKE_SOURCE_DIR}/library/cpp/compproto/lib.cpp ) diff --git a/library/cpp/compproto/CMakeLists.linux-x86_64.txt b/library/cpp/compproto/CMakeLists.linux-x86_64.txt index f7c1ee7be784..387fd6309adb 100644 --- a/library/cpp/compproto/CMakeLists.linux-x86_64.txt +++ b/library/cpp/compproto/CMakeLists.linux-x86_64.txt @@ -14,5 +14,9 @@ target_link_libraries(library-cpp-compproto PUBLIC yutil ) target_sources(library-cpp-compproto PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/bit.h + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/compressor.h + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/huff.h + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/metainfo.h ${CMAKE_SOURCE_DIR}/library/cpp/compproto/lib.cpp ) diff --git a/library/cpp/compproto/CMakeLists.windows-x86_64.txt b/library/cpp/compproto/CMakeLists.windows-x86_64.txt index abcc95d486fe..ca226d4a15b7 100644 --- a/library/cpp/compproto/CMakeLists.windows-x86_64.txt +++ b/library/cpp/compproto/CMakeLists.windows-x86_64.txt @@ -13,5 +13,9 @@ target_link_libraries(library-cpp-compproto PUBLIC yutil ) target_sources(library-cpp-compproto PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/bit.h + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/compressor.h + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/huff.h + ${CMAKE_SOURCE_DIR}/library/cpp/compproto/metainfo.h ${CMAKE_SOURCE_DIR}/library/cpp/compproto/lib.cpp ) diff --git a/library/cpp/config/CMakeLists.darwin-arm64.txt b/library/cpp/config/CMakeLists.darwin-arm64.txt index 23c772e4fc25..fd836e3f61bb 100644 --- a/library/cpp/config/CMakeLists.darwin-arm64.txt +++ b/library/cpp/config/CMakeLists.darwin-arm64.txt @@ -26,6 +26,7 @@ target_link_libraries(library-cpp-config PUBLIC cpp-string_utils-relaxed_escaper ) target_sources(library-cpp-config PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/config/code.inc ${CMAKE_SOURCE_DIR}/library/cpp/config/config.cpp ${CMAKE_SOURCE_DIR}/library/cpp/config/sax.cpp ${CMAKE_SOURCE_DIR}/library/cpp/config/value.cpp diff --git a/library/cpp/config/CMakeLists.darwin-x86_64.txt b/library/cpp/config/CMakeLists.darwin-x86_64.txt index 23c772e4fc25..fd836e3f61bb 100644 --- a/library/cpp/config/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/config/CMakeLists.darwin-x86_64.txt @@ -26,6 +26,7 @@ target_link_libraries(library-cpp-config PUBLIC cpp-string_utils-relaxed_escaper ) target_sources(library-cpp-config PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/config/code.inc ${CMAKE_SOURCE_DIR}/library/cpp/config/config.cpp ${CMAKE_SOURCE_DIR}/library/cpp/config/sax.cpp ${CMAKE_SOURCE_DIR}/library/cpp/config/value.cpp diff --git a/library/cpp/config/CMakeLists.linux-aarch64.txt b/library/cpp/config/CMakeLists.linux-aarch64.txt index 3e91ece220b4..d03a43c75608 100644 --- a/library/cpp/config/CMakeLists.linux-aarch64.txt +++ b/library/cpp/config/CMakeLists.linux-aarch64.txt @@ -27,6 +27,7 @@ target_link_libraries(library-cpp-config PUBLIC cpp-string_utils-relaxed_escaper ) target_sources(library-cpp-config PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/config/code.inc ${CMAKE_SOURCE_DIR}/library/cpp/config/config.cpp ${CMAKE_SOURCE_DIR}/library/cpp/config/sax.cpp ${CMAKE_SOURCE_DIR}/library/cpp/config/value.cpp diff --git a/library/cpp/config/CMakeLists.linux-x86_64.txt b/library/cpp/config/CMakeLists.linux-x86_64.txt index 3e91ece220b4..d03a43c75608 100644 --- a/library/cpp/config/CMakeLists.linux-x86_64.txt +++ b/library/cpp/config/CMakeLists.linux-x86_64.txt @@ -27,6 +27,7 @@ target_link_libraries(library-cpp-config PUBLIC cpp-string_utils-relaxed_escaper ) target_sources(library-cpp-config PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/config/code.inc ${CMAKE_SOURCE_DIR}/library/cpp/config/config.cpp ${CMAKE_SOURCE_DIR}/library/cpp/config/sax.cpp ${CMAKE_SOURCE_DIR}/library/cpp/config/value.cpp diff --git a/library/cpp/config/CMakeLists.windows-x86_64.txt b/library/cpp/config/CMakeLists.windows-x86_64.txt index a3573c913a04..e4b4e279c9da 100644 --- a/library/cpp/config/CMakeLists.windows-x86_64.txt +++ b/library/cpp/config/CMakeLists.windows-x86_64.txt @@ -26,6 +26,7 @@ target_link_libraries(library-cpp-config PUBLIC cpp-string_utils-relaxed_escaper ) target_sources(library-cpp-config PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/config/code.inc ${CMAKE_SOURCE_DIR}/library/cpp/config/config.cpp ${CMAKE_SOURCE_DIR}/library/cpp/config/sax.cpp ${CMAKE_SOURCE_DIR}/library/cpp/config/value.cpp diff --git a/library/cpp/containers/comptrie/CMakeLists.darwin-arm64.txt b/library/cpp/containers/comptrie/CMakeLists.darwin-arm64.txt index 3a3d86aed707..14a8206214d6 100644 --- a/library/cpp/containers/comptrie/CMakeLists.darwin-arm64.txt +++ b/library/cpp/containers/comptrie/CMakeLists.darwin-arm64.txt @@ -17,6 +17,15 @@ target_link_libraries(cpp-containers-comptrie PUBLIC util-draft ) target_sources(cpp-containers-comptrie PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/array_with_size.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/chunked_helpers_trie.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_packer.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_trie.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/first_symbol_iterator.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/key_selector.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/leaf_skipper.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/set.h ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie.cpp ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_builder.cpp ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_impl.cpp diff --git a/library/cpp/containers/comptrie/CMakeLists.darwin-x86_64.txt b/library/cpp/containers/comptrie/CMakeLists.darwin-x86_64.txt index 3a3d86aed707..14a8206214d6 100644 --- a/library/cpp/containers/comptrie/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/containers/comptrie/CMakeLists.darwin-x86_64.txt @@ -17,6 +17,15 @@ target_link_libraries(cpp-containers-comptrie PUBLIC util-draft ) target_sources(cpp-containers-comptrie PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/array_with_size.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/chunked_helpers_trie.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_packer.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_trie.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/first_symbol_iterator.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/key_selector.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/leaf_skipper.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/set.h ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie.cpp ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_builder.cpp ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_impl.cpp diff --git a/library/cpp/containers/comptrie/CMakeLists.linux-aarch64.txt b/library/cpp/containers/comptrie/CMakeLists.linux-aarch64.txt index 599cc37088e1..1173812687ea 100644 --- a/library/cpp/containers/comptrie/CMakeLists.linux-aarch64.txt +++ b/library/cpp/containers/comptrie/CMakeLists.linux-aarch64.txt @@ -18,6 +18,15 @@ target_link_libraries(cpp-containers-comptrie PUBLIC util-draft ) target_sources(cpp-containers-comptrie PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/array_with_size.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/chunked_helpers_trie.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_packer.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_trie.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/first_symbol_iterator.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/key_selector.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/leaf_skipper.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/set.h ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie.cpp ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_builder.cpp ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_impl.cpp diff --git a/library/cpp/containers/comptrie/CMakeLists.linux-x86_64.txt b/library/cpp/containers/comptrie/CMakeLists.linux-x86_64.txt index 599cc37088e1..1173812687ea 100644 --- a/library/cpp/containers/comptrie/CMakeLists.linux-x86_64.txt +++ b/library/cpp/containers/comptrie/CMakeLists.linux-x86_64.txt @@ -18,6 +18,15 @@ target_link_libraries(cpp-containers-comptrie PUBLIC util-draft ) target_sources(cpp-containers-comptrie PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/array_with_size.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/chunked_helpers_trie.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_packer.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_trie.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/first_symbol_iterator.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/key_selector.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/leaf_skipper.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/set.h ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie.cpp ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_builder.cpp ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_impl.cpp diff --git a/library/cpp/containers/comptrie/CMakeLists.windows-x86_64.txt b/library/cpp/containers/comptrie/CMakeLists.windows-x86_64.txt index 3a3d86aed707..14a8206214d6 100644 --- a/library/cpp/containers/comptrie/CMakeLists.windows-x86_64.txt +++ b/library/cpp/containers/comptrie/CMakeLists.windows-x86_64.txt @@ -17,6 +17,15 @@ target_link_libraries(cpp-containers-comptrie PUBLIC util-draft ) target_sources(cpp-containers-comptrie PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/array_with_size.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/chunked_helpers_trie.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_packer.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_trie.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/first_symbol_iterator.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/key_selector.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/leaf_skipper.h + ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/set.h ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie.cpp ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_builder.cpp ${CMAKE_SOURCE_DIR}/library/cpp/containers/comptrie/comptrie_impl.cpp diff --git a/library/cpp/containers/disjoint_interval_tree/disjoint_interval_tree.h b/library/cpp/containers/disjoint_interval_tree/disjoint_interval_tree.h index 3f51c61277c5..f0c6644d4be7 100644 --- a/library/cpp/containers/disjoint_interval_tree/disjoint_interval_tree.h +++ b/library/cpp/containers/disjoint_interval_tree/disjoint_interval_tree.h @@ -132,7 +132,7 @@ class TDisjointIntervalTree { } TIterator completelyRemoveEnd = completelyRemoveBegin != Tree.end() ? Tree.lower_bound(end) : Tree.end(); - if (completelyRemoveEnd != Tree.end() && completelyRemoveEnd != Tree.begin() && completelyRemoveEnd->first != end) { + if (completelyRemoveEnd != Tree.begin() && (completelyRemoveEnd == Tree.end() || completelyRemoveEnd->first != end)) { TIterator containingEnd = completelyRemoveEnd; --containingEnd; if (containingEnd->second > end) { diff --git a/library/cpp/containers/disjoint_interval_tree/ut/disjoint_interval_tree_ut.cpp b/library/cpp/containers/disjoint_interval_tree/ut/disjoint_interval_tree_ut.cpp index 8474ae89b04b..508a82459af6 100644 --- a/library/cpp/containers/disjoint_interval_tree/ut/disjoint_interval_tree_ut.cpp +++ b/library/cpp/containers/disjoint_interval_tree/ut/disjoint_interval_tree_ut.cpp @@ -232,6 +232,18 @@ Y_UNIT_TEST_SUITE(DisjointIntervalTreeTest) { UNIT_ASSERT_VALUES_EQUAL(tree.GetNumIntervals(), 2); UNIT_ASSERT_VALUES_EQUAL(tree.GetNumElements(), 8); } + + // 12. The only one interval + { + TDisjointIntervalTree tree; + tree.InsertInterval(1, 10); + UNIT_ASSERT_VALUES_EQUAL(tree.GetNumIntervals(), 1); + UNIT_ASSERT_VALUES_EQUAL(tree.GetNumElements(), 9); + UNIT_ASSERT_VALUES_EQUAL(tree.EraseInterval(0, 6), 5); + UNIT_ASSERT_VALUES_EQUAL(tree.GetNumIntervals(), 1); + UNIT_ASSERT_VALUES_EQUAL(tree.GetNumElements(), 4); + UNIT_ASSERT(tree.Intersects(5, 10)); + } } Y_UNIT_TEST(IntersectsTest) { diff --git a/library/cpp/deprecated/kmp/CMakeLists.darwin-arm64.txt b/library/cpp/deprecated/kmp/CMakeLists.darwin-arm64.txt index 1a8b825dad6c..fbfdcadb62e0 100644 --- a/library/cpp/deprecated/kmp/CMakeLists.darwin-arm64.txt +++ b/library/cpp/deprecated/kmp/CMakeLists.darwin-arm64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-deprecated-kmp PUBLIC yutil ) target_sources(cpp-deprecated-kmp PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/kmp/kmp.h ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/kmp/kmp.cpp ) diff --git a/library/cpp/deprecated/kmp/CMakeLists.darwin-x86_64.txt b/library/cpp/deprecated/kmp/CMakeLists.darwin-x86_64.txt index 1a8b825dad6c..fbfdcadb62e0 100644 --- a/library/cpp/deprecated/kmp/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/deprecated/kmp/CMakeLists.darwin-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-deprecated-kmp PUBLIC yutil ) target_sources(cpp-deprecated-kmp PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/kmp/kmp.h ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/kmp/kmp.cpp ) diff --git a/library/cpp/deprecated/kmp/CMakeLists.linux-aarch64.txt b/library/cpp/deprecated/kmp/CMakeLists.linux-aarch64.txt index ed7a436e3c9f..9c7c481d1f79 100644 --- a/library/cpp/deprecated/kmp/CMakeLists.linux-aarch64.txt +++ b/library/cpp/deprecated/kmp/CMakeLists.linux-aarch64.txt @@ -14,5 +14,6 @@ target_link_libraries(cpp-deprecated-kmp PUBLIC yutil ) target_sources(cpp-deprecated-kmp PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/kmp/kmp.h ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/kmp/kmp.cpp ) diff --git a/library/cpp/deprecated/kmp/CMakeLists.linux-x86_64.txt b/library/cpp/deprecated/kmp/CMakeLists.linux-x86_64.txt index ed7a436e3c9f..9c7c481d1f79 100644 --- a/library/cpp/deprecated/kmp/CMakeLists.linux-x86_64.txt +++ b/library/cpp/deprecated/kmp/CMakeLists.linux-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(cpp-deprecated-kmp PUBLIC yutil ) target_sources(cpp-deprecated-kmp PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/kmp/kmp.h ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/kmp/kmp.cpp ) diff --git a/library/cpp/deprecated/kmp/CMakeLists.windows-x86_64.txt b/library/cpp/deprecated/kmp/CMakeLists.windows-x86_64.txt index 1a8b825dad6c..fbfdcadb62e0 100644 --- a/library/cpp/deprecated/kmp/CMakeLists.windows-x86_64.txt +++ b/library/cpp/deprecated/kmp/CMakeLists.windows-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-deprecated-kmp PUBLIC yutil ) target_sources(cpp-deprecated-kmp PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/kmp/kmp.h ${CMAKE_SOURCE_DIR}/library/cpp/deprecated/kmp/kmp.cpp ) diff --git a/library/cpp/digest/argonish/internal/proxies/avx2/CMakeLists.windows-x86_64.txt b/library/cpp/digest/argonish/internal/proxies/avx2/CMakeLists.windows-x86_64.txt index 6242e299b8f6..665a06a7b6f6 100644 --- a/library/cpp/digest/argonish/internal/proxies/avx2/CMakeLists.windows-x86_64.txt +++ b/library/cpp/digest/argonish/internal/proxies/avx2/CMakeLists.windows-x86_64.txt @@ -19,8 +19,6 @@ target_sources_custom(internal-proxies-avx2 SRCS ${CMAKE_SOURCE_DIR}/library/cpp/digest/argonish/internal/proxies/avx2/proxy_avx2.cpp CUSTOM_FLAGS - -mavx2 - -mfma - -mbmi - -mbmi2 + /arch:AVX2 + /DAVX2_ENABLED=1 ) diff --git a/library/cpp/digest/argonish/internal/proxies/sse2/CMakeLists.windows-x86_64.txt b/library/cpp/digest/argonish/internal/proxies/sse2/CMakeLists.windows-x86_64.txt index 7b57a5e09b2f..e929684c1e52 100644 --- a/library/cpp/digest/argonish/internal/proxies/sse2/CMakeLists.windows-x86_64.txt +++ b/library/cpp/digest/argonish/internal/proxies/sse2/CMakeLists.windows-x86_64.txt @@ -19,5 +19,5 @@ target_sources_custom(internal-proxies-sse2 SRCS ${CMAKE_SOURCE_DIR}/library/cpp/digest/argonish/internal/proxies/sse2/proxy_sse2.cpp CUSTOM_FLAGS - -msse2 + /D__SSE2__=1 ) diff --git a/library/cpp/digest/argonish/internal/proxies/sse41/CMakeLists.windows-x86_64.txt b/library/cpp/digest/argonish/internal/proxies/sse41/CMakeLists.windows-x86_64.txt index 48f772826d37..68503d8c632c 100644 --- a/library/cpp/digest/argonish/internal/proxies/sse41/CMakeLists.windows-x86_64.txt +++ b/library/cpp/digest/argonish/internal/proxies/sse41/CMakeLists.windows-x86_64.txt @@ -19,5 +19,5 @@ target_sources_custom(internal-proxies-sse41 SRCS ${CMAKE_SOURCE_DIR}/library/cpp/digest/argonish/internal/proxies/sse41/proxy_sse41.cpp CUSTOM_FLAGS - -msse4.1 + /D__SSE4_1__=1 ) diff --git a/library/cpp/digest/argonish/internal/proxies/ssse3/CMakeLists.windows-x86_64.txt b/library/cpp/digest/argonish/internal/proxies/ssse3/CMakeLists.windows-x86_64.txt index 8c1d2591ed7d..71c2df1d19f8 100644 --- a/library/cpp/digest/argonish/internal/proxies/ssse3/CMakeLists.windows-x86_64.txt +++ b/library/cpp/digest/argonish/internal/proxies/ssse3/CMakeLists.windows-x86_64.txt @@ -19,5 +19,5 @@ target_sources_custom(internal-proxies-ssse3 SRCS ${CMAKE_SOURCE_DIR}/library/cpp/digest/argonish/internal/proxies/ssse3/proxy_ssse3.cpp CUSTOM_FLAGS - -mssse3 + /D__SSSE3__=1 ) diff --git a/library/cpp/digest/old_crc/CMakeLists.darwin-arm64.txt b/library/cpp/digest/old_crc/CMakeLists.darwin-arm64.txt index a4caa8c7569f..136c4353647f 100644 --- a/library/cpp/digest/old_crc/CMakeLists.darwin-arm64.txt +++ b/library/cpp/digest/old_crc/CMakeLists.darwin-arm64.txt @@ -20,6 +20,7 @@ target_link_libraries(cpp-digest-old_crc PUBLIC yutil ) target_sources(cpp-digest-old_crc PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/digest/old_crc/crc.inc ${CMAKE_SOURCE_DIR}/library/cpp/digest/old_crc/crc.cpp ${CMAKE_BINARY_DIR}/library/cpp/digest/old_crc/crc.inc ) diff --git a/library/cpp/digest/old_crc/CMakeLists.darwin-x86_64.txt b/library/cpp/digest/old_crc/CMakeLists.darwin-x86_64.txt index a4caa8c7569f..136c4353647f 100644 --- a/library/cpp/digest/old_crc/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/digest/old_crc/CMakeLists.darwin-x86_64.txt @@ -20,6 +20,7 @@ target_link_libraries(cpp-digest-old_crc PUBLIC yutil ) target_sources(cpp-digest-old_crc PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/digest/old_crc/crc.inc ${CMAKE_SOURCE_DIR}/library/cpp/digest/old_crc/crc.cpp ${CMAKE_BINARY_DIR}/library/cpp/digest/old_crc/crc.inc ) diff --git a/library/cpp/digest/old_crc/CMakeLists.linux-aarch64.txt b/library/cpp/digest/old_crc/CMakeLists.linux-aarch64.txt index a0883b65f5e4..c7abb5dc5daf 100644 --- a/library/cpp/digest/old_crc/CMakeLists.linux-aarch64.txt +++ b/library/cpp/digest/old_crc/CMakeLists.linux-aarch64.txt @@ -21,6 +21,7 @@ target_link_libraries(cpp-digest-old_crc PUBLIC yutil ) target_sources(cpp-digest-old_crc PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/digest/old_crc/crc.inc ${CMAKE_SOURCE_DIR}/library/cpp/digest/old_crc/crc.cpp ${CMAKE_BINARY_DIR}/library/cpp/digest/old_crc/crc.inc ) diff --git a/library/cpp/digest/old_crc/CMakeLists.linux-x86_64.txt b/library/cpp/digest/old_crc/CMakeLists.linux-x86_64.txt index a0883b65f5e4..c7abb5dc5daf 100644 --- a/library/cpp/digest/old_crc/CMakeLists.linux-x86_64.txt +++ b/library/cpp/digest/old_crc/CMakeLists.linux-x86_64.txt @@ -21,6 +21,7 @@ target_link_libraries(cpp-digest-old_crc PUBLIC yutil ) target_sources(cpp-digest-old_crc PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/digest/old_crc/crc.inc ${CMAKE_SOURCE_DIR}/library/cpp/digest/old_crc/crc.cpp ${CMAKE_BINARY_DIR}/library/cpp/digest/old_crc/crc.inc ) diff --git a/library/cpp/digest/old_crc/CMakeLists.windows-x86_64.txt b/library/cpp/digest/old_crc/CMakeLists.windows-x86_64.txt index a4caa8c7569f..136c4353647f 100644 --- a/library/cpp/digest/old_crc/CMakeLists.windows-x86_64.txt +++ b/library/cpp/digest/old_crc/CMakeLists.windows-x86_64.txt @@ -20,6 +20,7 @@ target_link_libraries(cpp-digest-old_crc PUBLIC yutil ) target_sources(cpp-digest-old_crc PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/digest/old_crc/crc.inc ${CMAKE_SOURCE_DIR}/library/cpp/digest/old_crc/crc.cpp ${CMAKE_BINARY_DIR}/library/cpp/digest/old_crc/crc.inc ) diff --git a/library/cpp/digest/old_crc/gencrc/CMakeLists.linux-aarch64.txt b/library/cpp/digest/old_crc/gencrc/CMakeLists.linux-aarch64.txt index f4a3176047ed..9f0f0c044fce 100644 --- a/library/cpp/digest/old_crc/gencrc/CMakeLists.linux-aarch64.txt +++ b/library/cpp/digest/old_crc/gencrc/CMakeLists.linux-aarch64.txt @@ -19,9 +19,6 @@ target_link_options(gencrc PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(gencrc PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/digest/old_crc/gencrc/main.cpp diff --git a/library/cpp/digest/old_crc/gencrc/CMakeLists.linux-x86_64.txt b/library/cpp/digest/old_crc/gencrc/CMakeLists.linux-x86_64.txt index 33bcd9c559fd..9a392ff54a73 100644 --- a/library/cpp/digest/old_crc/gencrc/CMakeLists.linux-x86_64.txt +++ b/library/cpp/digest/old_crc/gencrc/CMakeLists.linux-x86_64.txt @@ -20,9 +20,6 @@ target_link_options(gencrc PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(gencrc PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/digest/old_crc/gencrc/main.cpp diff --git a/library/cpp/dot_product/README.md b/library/cpp/dot_product/README.md new file mode 100644 index 000000000000..516dcf31de31 --- /dev/null +++ b/library/cpp/dot_product/README.md @@ -0,0 +1,15 @@ +Библиотека для вычисления скалярного произведения векторов. +===================================================== + +Данная библиотека содержит функцию DotProduct, вычисляющую скалярное произведение векторов различных типов. +В отличии от наивной реализации, библиотека использует SSE и работает существенно быстрее. Для сравнения +можно посмотреть результаты бенчмарка. + +Типичное использование - замена кусков кода вроде: +``` +for (int i = 0; i < len; i++) + dot_product += a[i] * b[i]); +``` +на существенно более эффективный вызов ```DotProduct(a, b, len)```. + +Работает для типов i8, i32, float, double. diff --git a/library/cpp/dot_product/dot_product.cpp b/library/cpp/dot_product/dot_product.cpp new file mode 100644 index 000000000000..6be4d0a78f37 --- /dev/null +++ b/library/cpp/dot_product/dot_product.cpp @@ -0,0 +1,274 @@ +#include "dot_product.h" +#include "dot_product_sse.h" +#include "dot_product_avx2.h" +#include "dot_product_simple.h" + +#include +#include +#include +#include +#include +#include + +namespace NDotProductImpl { + i32 (*DotProductI8Impl)(const i8* lhs, const i8* rhs, size_t length) noexcept = &DotProductSimple; + ui32 (*DotProductUi8Impl)(const ui8* lhs, const ui8* rhs, size_t length) noexcept = &DotProductSimple; + i64 (*DotProductI32Impl)(const i32* lhs, const i32* rhs, size_t length) noexcept = &DotProductSimple; + float (*DotProductFloatImpl)(const float* lhs, const float* rhs, size_t length) noexcept = &DotProductSimple; + double (*DotProductDoubleImpl)(const double* lhs, const double* rhs, size_t length) noexcept = &DotProductSimple; + + namespace { + [[maybe_unused]] const int _ = [] { + if (!FromYaTest() && GetEnv("Y_NO_AVX_IN_DOT_PRODUCT") == "" && NX86::HaveAVX2() && NX86::HaveFMA()) { + DotProductI8Impl = &DotProductAvx2; + DotProductUi8Impl = &DotProductAvx2; + DotProductI32Impl = &DotProductAvx2; + DotProductFloatImpl = &DotProductAvx2; + DotProductDoubleImpl = &DotProductAvx2; + } else { +#ifdef ARCADIA_SSE + DotProductI8Impl = &DotProductSse; + DotProductUi8Impl = &DotProductSse; + DotProductI32Impl = &DotProductSse; + DotProductFloatImpl = &DotProductSse; + DotProductDoubleImpl = &DotProductSse; +#endif + } + return 0; + }(); + } +} + +#ifdef ARCADIA_SSE +float L2NormSquared(const float* v, size_t length) noexcept { + __m128 sum1 = _mm_setzero_ps(); + __m128 sum2 = _mm_setzero_ps(); + __m128 a1, a2, m1, m2; + + while (length >= 8) { + a1 = _mm_loadu_ps(v); + m1 = _mm_mul_ps(a1, a1); + + a2 = _mm_loadu_ps(v + 4); + sum1 = _mm_add_ps(sum1, m1); + + m2 = _mm_mul_ps(a2, a2); + sum2 = _mm_add_ps(sum2, m2); + + length -= 8; + v += 8; + } + + if (length >= 4) { + a1 = _mm_loadu_ps(v); + sum1 = _mm_add_ps(sum1, _mm_mul_ps(a1, a1)); + + length -= 4; + v += 4; + } + + sum1 = _mm_add_ps(sum1, sum2); + + if (length) { + switch (length) { + case 3: + a1 = _mm_set_ps(0.0f, v[2], v[1], v[0]); + break; + + case 2: + a1 = _mm_set_ps(0.0f, 0.0f, v[1], v[0]); + break; + + case 1: + a1 = _mm_set_ps(0.0f, 0.0f, 0.0f, v[0]); + break; + + default: + Y_UNREACHABLE(); + } + + sum1 = _mm_add_ps(sum1, _mm_mul_ps(a1, a1)); + } + + alignas(16) float res[4]; + _mm_store_ps(res, sum1); + + return res[0] + res[1] + res[2] + res[3]; +} + +template +Y_FORCE_INLINE +static void TriWayDotProductIteration(__m128& sumLL, __m128& sumLR, __m128& sumRR, const __m128 a, const __m128 b) { + if constexpr (computeLL) { + sumLL = _mm_add_ps(sumLL, _mm_mul_ps(a, a)); + } + if constexpr (computeLR) { + sumLR = _mm_add_ps(sumLR, _mm_mul_ps(a, b)); + } + if constexpr (computeRR) { + sumRR = _mm_add_ps(sumRR, _mm_mul_ps(b, b)); + } +} + + +template +static TTriWayDotProduct TriWayDotProductImpl(const float* lhs, const float* rhs, size_t length) noexcept { + __m128 sumLL1 = _mm_setzero_ps(); + __m128 sumLR1 = _mm_setzero_ps(); + __m128 sumRR1 = _mm_setzero_ps(); + __m128 sumLL2 = _mm_setzero_ps(); + __m128 sumLR2 = _mm_setzero_ps(); + __m128 sumRR2 = _mm_setzero_ps(); + + while (length >= 8) { + TriWayDotProductIteration(sumLL1, sumLR1, sumRR1, _mm_loadu_ps(lhs + 0), _mm_loadu_ps(rhs + 0)); + TriWayDotProductIteration(sumLL2, sumLR2, sumRR2, _mm_loadu_ps(lhs + 4), _mm_loadu_ps(rhs + 4)); + length -= 8; + lhs += 8; + rhs += 8; + } + + if (length >= 4) { + TriWayDotProductIteration(sumLL1, sumLR1, sumRR1, _mm_loadu_ps(lhs + 0), _mm_loadu_ps(rhs + 0)); + length -= 4; + lhs += 4; + rhs += 4; + } + + if constexpr (computeLL) { + sumLL1 = _mm_add_ps(sumLL1, sumLL2); + } + if constexpr (computeLR) { + sumLR1 = _mm_add_ps(sumLR1, sumLR2); + } + if constexpr (computeRR) { + sumRR1 = _mm_add_ps(sumRR1, sumRR2); + } + + if (length) { + __m128 a, b; + switch (length) { + case 3: + a = _mm_set_ps(0.0f, lhs[2], lhs[1], lhs[0]); + b = _mm_set_ps(0.0f, rhs[2], rhs[1], rhs[0]); + break; + case 2: + a = _mm_set_ps(0.0f, 0.0f, lhs[1], lhs[0]); + b = _mm_set_ps(0.0f, 0.0f, rhs[1], rhs[0]); + break; + case 1: + a = _mm_set_ps(0.0f, 0.0f, 0.0f, lhs[0]); + b = _mm_set_ps(0.0f, 0.0f, 0.0f, rhs[0]); + break; + default: + Y_UNREACHABLE(); + } + TriWayDotProductIteration(sumLL1, sumLR1, sumRR1, a, b); + } + + __m128 t0 = sumLL1; + __m128 t1 = sumLR1; + __m128 t2 = sumRR1; + __m128 t3 = _mm_setzero_ps(); + _MM_TRANSPOSE4_PS(t0, t1, t2, t3); + t0 = _mm_add_ps(t0, t1); + t0 = _mm_add_ps(t0, t2); + t0 = _mm_add_ps(t0, t3); + + alignas(16) float res[4]; + _mm_store_ps(res, t0); + TTriWayDotProduct result{res[0], res[1], res[2]}; + static constexpr const TTriWayDotProduct def; + // fill skipped fields with default values + if constexpr (!computeLL) { + result.LL = def.LL; + } + if constexpr (!computeLR) { + result.LR = def.LR; + } + if constexpr (!computeRR) { + result.RR = def.RR; + } + return result; +} + + +TTriWayDotProduct TriWayDotProduct(const float* lhs, const float* rhs, size_t length, unsigned mask) noexcept { + mask &= 0b111; + if (Y_LIKELY(mask == 0b111)) { // compute dot-product and length² of two vectors + return TriWayDotProductImpl(lhs, rhs, length); + } else if (Y_LIKELY(mask == 0b110 || mask == 0b011)) { // compute dot-product and length² of one vector + const bool computeLL = (mask == 0b110); + if (!computeLL) { + DoSwap(lhs, rhs); + } + auto result = TriWayDotProductImpl(lhs, rhs, length); + if (!computeLL) { + DoSwap(result.LL, result.RR); + } + return result; + } else { + // dispatch unlikely & sparse cases + TTriWayDotProduct result{}; + switch(mask) { + case 0b000: + break; + case 0b100: + result.LL = L2NormSquared(lhs, length); + break; + case 0b010: + result.LR = DotProduct(lhs, rhs, length); + break; + case 0b001: + result.RR = L2NormSquared(rhs, length); + break; + case 0b101: + result.LL = L2NormSquared(lhs, length); + result.RR = L2NormSquared(rhs, length); + break; + default: + Y_UNREACHABLE(); + } + return result; + } +} + +#else + +float L2NormSquared(const float* v, size_t length) noexcept { + return DotProduct(v, v, length); +} + +TTriWayDotProduct TriWayDotProduct(const float* lhs, const float* rhs, size_t length, unsigned mask) noexcept { + TTriWayDotProduct result; + if (mask & static_cast(ETriWayDotProductComputeMask::LL)) { + result.LL = L2NormSquared(lhs, length); + } + if (mask & static_cast(ETriWayDotProductComputeMask::LR)) { + result.LR = DotProduct(lhs, rhs, length); + } + if (mask & static_cast(ETriWayDotProductComputeMask::RR)) { + result.RR = L2NormSquared(rhs, length); + } + return result; +} + +#endif // ARCADIA_SSE + +namespace NDotProduct { + void DisableAvx2() { +#ifdef ARCADIA_SSE + NDotProductImpl::DotProductI8Impl = &DotProductSse; + NDotProductImpl::DotProductUi8Impl = &DotProductSse; + NDotProductImpl::DotProductI32Impl = &DotProductSse; + NDotProductImpl::DotProductFloatImpl = &DotProductSse; + NDotProductImpl::DotProductDoubleImpl = &DotProductSse; +#else + NDotProductImpl::DotProductI8Impl = &DotProductSimple; + NDotProductImpl::DotProductUi8Impl = &DotProductSimple; + NDotProductImpl::DotProductI32Impl = &DotProductSimple; + NDotProductImpl::DotProductFloatImpl = &DotProductSimple; + NDotProductImpl::DotProductDoubleImpl = &DotProductSimple; +#endif + } +} diff --git a/library/cpp/dot_product/dot_product.h b/library/cpp/dot_product/dot_product.h new file mode 100644 index 000000000000..0765633abdbf --- /dev/null +++ b/library/cpp/dot_product/dot_product.h @@ -0,0 +1,96 @@ +#pragma once + +#include +#include + +#include + +/** + * Dot product (Inner product or scalar product) implementation using SSE when possible. + */ +namespace NDotProductImpl { + extern i32 (*DotProductI8Impl)(const i8* lhs, const i8* rhs, size_t length) noexcept; + extern ui32 (*DotProductUi8Impl)(const ui8* lhs, const ui8* rhs, size_t length) noexcept; + extern i64 (*DotProductI32Impl)(const i32* lhs, const i32* rhs, size_t length) noexcept; + extern float (*DotProductFloatImpl)(const float* lhs, const float* rhs, size_t length) noexcept; + extern double (*DotProductDoubleImpl)(const double* lhs, const double* rhs, size_t length) noexcept; +} + +Y_PURE_FUNCTION +inline i32 DotProduct(const i8* lhs, const i8* rhs, size_t length) noexcept { + return NDotProductImpl::DotProductI8Impl(lhs, rhs, length); +} + +Y_PURE_FUNCTION +inline ui32 DotProduct(const ui8* lhs, const ui8* rhs, size_t length) noexcept { + return NDotProductImpl::DotProductUi8Impl(lhs, rhs, length); +} + +Y_PURE_FUNCTION +inline i64 DotProduct(const i32* lhs, const i32* rhs, size_t length) noexcept { + return NDotProductImpl::DotProductI32Impl(lhs, rhs, length); +} + +Y_PURE_FUNCTION +inline float DotProduct(const float* lhs, const float* rhs, size_t length) noexcept { + return NDotProductImpl::DotProductFloatImpl(lhs, rhs, length); +} + +Y_PURE_FUNCTION +inline double DotProduct(const double* lhs, const double* rhs, size_t length) noexcept { + return NDotProductImpl::DotProductDoubleImpl(lhs, rhs, length); +} + +/** + * Dot product to itself + */ +Y_PURE_FUNCTION +float L2NormSquared(const float* v, size_t length) noexcept; + +// TODO(yazevnul): make `L2NormSquared` for double, this should be faster than `DotProduct` +// where `lhs == rhs` because it will save N load instructions. + +template +struct TTriWayDotProduct { + T LL = 1; + T LR = 0; + T RR = 1; +}; + +enum class ETriWayDotProductComputeMask: unsigned { + // basic + LL = 0b100, + LR = 0b010, + RR = 0b001, + + // useful combinations + All = 0b111, + Left = 0b110, // skip computation of R·R + Right = 0b011, // skip computation of L·L +}; + +Y_PURE_FUNCTION +TTriWayDotProduct TriWayDotProduct(const float* lhs, const float* rhs, size_t length, unsigned mask) noexcept; + +/** + * For two vectors L and R computes 3 dot-products: L·L, L·R, R·R + */ +Y_PURE_FUNCTION +static inline TTriWayDotProduct TriWayDotProduct(const float* lhs, const float* rhs, size_t length, ETriWayDotProductComputeMask mask = ETriWayDotProductComputeMask::All) noexcept { + return TriWayDotProduct(lhs, rhs, length, static_cast(mask)); +} + +namespace NDotProduct { + // Simpler wrapper allowing to use this functions as template argument. + template + struct TDotProduct { + using TResult = decltype(DotProduct(static_cast(nullptr), static_cast(nullptr), 0)); + Y_PURE_FUNCTION + inline TResult operator()(const T* l, const T* r, size_t length) const { + return DotProduct(l, r, length); + } + }; + + void DisableAvx2(); +} + diff --git a/library/cpp/dot_product/dot_product_avx2.cpp b/library/cpp/dot_product/dot_product_avx2.cpp new file mode 100644 index 000000000000..a0f7c169ee72 --- /dev/null +++ b/library/cpp/dot_product/dot_product_avx2.cpp @@ -0,0 +1,344 @@ +#include "dot_product_avx2.h" +#include "dot_product_simple.h" +#include "dot_product_sse.h" + +#if defined(_avx2_) && defined(_fma_) + +#include +#include +#include + +#include + +namespace { + constexpr i64 Bits(int n) { + return i64(-1) ^ ((i64(1) << (64 - n)) - 1); + } + + constexpr __m256 BlendMask64[8] = { + __m256i{Bits(64), Bits(64), Bits(64), Bits(64)}, + __m256i{0, Bits(64), Bits(64), Bits(64)}, + __m256i{0, 0, Bits(64), Bits(64)}, + __m256i{0, 0, 0, Bits(64)}, + }; + + constexpr __m256 BlendMask32[8] = { + __m256i{Bits(64), Bits(64), Bits(64), Bits(64)}, + __m256i{Bits(32), Bits(64), Bits(64), Bits(64)}, + __m256i{0, Bits(64), Bits(64), Bits(64)}, + __m256i{0, Bits(32), Bits(64), Bits(64)}, + __m256i{0, 0, Bits(64), Bits(64)}, + __m256i{0, 0, Bits(32), Bits(64)}, + __m256i{0, 0, 0, Bits(64)}, + __m256i{0, 0, 0, Bits(32)}, + }; + + constexpr __m128 BlendMask8[16] = { + __m128i{Bits(64), Bits(64)}, + __m128i{Bits(56), Bits(64)}, + __m128i{Bits(48), Bits(64)}, + __m128i{Bits(40), Bits(64)}, + __m128i{Bits(32), Bits(64)}, + __m128i{Bits(24), Bits(64)}, + __m128i{Bits(16), Bits(64)}, + __m128i{Bits(8), Bits(64)}, + __m128i{0, Bits(64)}, + __m128i{0, Bits(56)}, + __m128i{0, Bits(48)}, + __m128i{0, Bits(40)}, + __m128i{0, Bits(32)}, + __m128i{0, Bits(24)}, + __m128i{0, Bits(16)}, + __m128i{0, Bits(8)}, + }; + + // See https://stackoverflow.com/a/60109639 + // Horizontal sum of eight i32 values in an avx register + i32 HsumI32(__m256i v) { + __m128i x = _mm_add_epi32(_mm256_castsi256_si128(v), _mm256_extracti128_si256(v, 1)); + __m128i hi64 = _mm_unpackhi_epi64(x, x); + __m128i sum64 = _mm_add_epi32(hi64, x); + __m128i hi32 = _mm_shuffle_epi32(sum64, _MM_SHUFFLE(2, 3, 0, 1)); + __m128i sum32 = _mm_add_epi32(sum64, hi32); + return _mm_cvtsi128_si32(sum32); + } + + // Horizontal sum of four i64 values in an avx register + i64 HsumI64(__m256i v) { + __m128i x = _mm_add_epi64(_mm256_castsi256_si128(v), _mm256_extracti128_si256(v, 1)); + return _mm_cvtsi128_si64(x) + _mm_extract_epi64(x, 1); + } + + // Horizontal sum of eight float values in an avx register + float HsumFloat(__m256 v) { + __m256 y = _mm256_permute2f128_ps(v, v, 1); + v = _mm256_add_ps(v, y); + v = _mm256_hadd_ps(v, v); + return _mm256_cvtss_f32(_mm256_hadd_ps(v, v)); + } + + // Horizontal sum of four double values in an avx register + double HsumDouble(__m256 v) { + __m128d x = _mm_add_pd(_mm256_castpd256_pd128(v), _mm256_extractf128_pd(v, 1)); + x = _mm_add_pd(x, _mm_shuffle_pd(x, x, 1)); + return _mm_cvtsd_f64(x); + } + + __m128i Load128i(const void* ptr) { + return _mm_loadu_si128((const __m128i*)ptr); + } + + __m256i Load256i(const void* ptr) { + return _mm256_loadu_si256((const __m256i*)ptr); + } + + // Unrolled dot product for relatively small sizes + // The loop with known upper bound is unrolled by the compiler, no need to do anything special about it + template + i32 DotProductInt8Avx2_Unroll(const TInput* lhs, const TInput* rhs, TExtend extend) noexcept { + static_assert(size % 16 == 0); + auto sum = _mm256_setzero_ps(); + for (size_t i = 0; i != size; i += 16) { + sum = _mm256_add_epi32(sum, _mm256_madd_epi16(extend(Load128i(lhs + i)), extend(Load128i(rhs + i)))); + } + + return HsumI32(sum); + } + + template + i32 DotProductInt8Avx2(const TInput* lhs, const TInput* rhs, size_t length, TExtend extend) noexcept { + // Fully unrolled versions for small multiples for 16 + switch (length) { + case 16: return DotProductInt8Avx2_Unroll<16>(lhs, rhs, extend); + case 32: return DotProductInt8Avx2_Unroll<32>(lhs, rhs, extend); + case 48: return DotProductInt8Avx2_Unroll<48>(lhs, rhs, extend); + case 64: return DotProductInt8Avx2_Unroll<64>(lhs, rhs, extend); + } + + __m256i sum = _mm256_setzero_ps(); + + if (const auto leftover = length % 16; leftover != 0) { + auto a = _mm_blendv_epi8( + Load128i(lhs), _mm_setzero_ps(), BlendMask8[leftover]); + auto b = _mm_blendv_epi8( + Load128i(rhs), _mm_setzero_ps(), BlendMask8[leftover]); + + sum = _mm256_madd_epi16(extend(a), extend(b)); + + lhs += leftover; + rhs += leftover; + length -= leftover; + } + + while (length >= 32) { + const auto l0 = extend(Load128i(lhs)); + const auto r0 = extend(Load128i(rhs)); + const auto l1 = extend(Load128i(lhs + 16)); + const auto r1 = extend(Load128i(rhs + 16)); + + const auto s0 = _mm256_madd_epi16(l0, r0); + const auto s1 = _mm256_madd_epi16(l1, r1); + + sum = _mm256_add_epi32(sum, _mm256_add_epi32(s0, s1)); + + lhs += 32; + rhs += 32; + length -= 32; + } + + if (length > 0) { + auto l = extend(Load128i(lhs)); + auto r = extend(Load128i(rhs)); + + sum = _mm256_add_epi32(sum, _mm256_madd_epi16(l, r)); + } + + return HsumI32(sum); + } +} + +i32 DotProductAvx2(const i8* lhs, const i8* rhs, size_t length) noexcept { + if (length < 16) { + return DotProductSse(lhs, rhs, length); + } + return DotProductInt8Avx2(lhs, rhs, length, [](const __m128i x) { + return _mm256_cvtepi8_epi16(x); + }); +} + +ui32 DotProductAvx2(const ui8* lhs, const ui8* rhs, size_t length) noexcept { + if (length < 16) { + return DotProductSse(lhs, rhs, length); + } + return DotProductInt8Avx2(lhs, rhs, length, [](const __m128i x) { + return _mm256_cvtepu8_epi16(x); + }); +} + +i64 DotProductAvx2(const i32* lhs, const i32* rhs, size_t length) noexcept { + if (length < 16) { + return DotProductSse(lhs, rhs, length); + } + __m256i res = _mm256_setzero_ps(); + + if (const auto leftover = length % 8; leftover != 0) { + // Use floating-point blendv. Who cares as long as the size is right. + __m256i a = _mm256_blendv_ps( + Load256i(lhs), _mm256_setzero_ps(), BlendMask32[leftover]); + __m256i b = _mm256_blendv_ps( + Load256i(rhs), _mm256_setzero_ps(), BlendMask32[leftover]); + + res = _mm256_mul_epi32(a, b); + a = _mm256_alignr_epi8(a, a, 4); + b = _mm256_alignr_epi8(b, b, 4); + res = _mm256_add_epi64(_mm256_mul_epi32(a, b), res); + + lhs += leftover; + rhs += leftover; + length -= leftover; + } + + while (length >= 8) { + __m256i a = Load256i(lhs); + __m256i b = Load256i(rhs); + res = _mm256_add_epi64(_mm256_mul_epi32(a, b), res); // This is lower parts multiplication + a = _mm256_alignr_epi8(a, a, 4); + b = _mm256_alignr_epi8(b, b, 4); + res = _mm256_add_epi64(_mm256_mul_epi32(a, b), res); + rhs += 8; + lhs += 8; + length -= 8; + } + + return HsumI64(res); +} + +float DotProductAvx2(const float* lhs, const float* rhs, size_t length) noexcept { + if (length < 16) { + return DotProductSse(lhs, rhs, length); + } + __m256 sum1 = _mm256_setzero_ps(); + __m256 sum2 = _mm256_setzero_ps(); + __m256 a1, b1, a2, b2; + + if (const auto leftover = length % 8; leftover != 0) { + a1 = _mm256_blendv_ps( + _mm256_loadu_ps(lhs), _mm256_setzero_ps(), BlendMask32[leftover]); + b1 = _mm256_blendv_ps( + _mm256_loadu_ps(rhs), _mm256_setzero_ps(), BlendMask32[leftover]); + sum1 = _mm256_mul_ps(a1, b1); + lhs += leftover; + rhs += leftover; + length -= leftover; + } + + while (length >= 16) { + a1 = _mm256_loadu_ps(lhs); + b1 = _mm256_loadu_ps(rhs); + a2 = _mm256_loadu_ps(lhs + 8); + b2 = _mm256_loadu_ps(rhs + 8); + + sum1 = _mm256_fmadd_ps(a1, b1, sum1); + sum2 = _mm256_fmadd_ps(a2, b2, sum2); + + length -= 16; + lhs += 16; + rhs += 16; + } + + if (length > 0) { + a1 = _mm256_loadu_ps(lhs); + b1 = _mm256_loadu_ps(rhs); + sum1 = _mm256_fmadd_ps(a1, b1, sum1); + } + + return HsumFloat(_mm256_add_ps(sum1, sum2)); +} + +double DotProductAvx2(const double* lhs, const double* rhs, size_t length) noexcept { + if (length < 16) { + return DotProductSse(lhs, rhs, length); + } + __m256d sum1 = _mm256_setzero_pd(); + __m256d sum2 = _mm256_setzero_pd(); + __m256d a1, b1, a2, b2; + + if (const auto leftover = length % 4; leftover != 0) { + a1 = _mm256_blendv_pd( + _mm256_loadu_pd(lhs), _mm256_setzero_ps(), BlendMask64[leftover]); + b1 = _mm256_blendv_pd( + _mm256_loadu_pd(rhs), _mm256_setzero_ps(), BlendMask64[leftover]); + sum1 = _mm256_mul_pd(a1, b1); + lhs += leftover; + rhs += leftover; + length -= leftover; + } + + while (length >= 8) { + a1 = _mm256_loadu_pd(lhs); + b1 = _mm256_loadu_pd(rhs); + a2 = _mm256_loadu_pd(lhs + 4); + b2 = _mm256_loadu_pd(rhs + 4); + + sum1 = _mm256_fmadd_pd(a1, b1, sum1); + sum2 = _mm256_fmadd_pd(a2, b2, sum2); + + length -= 8; + lhs += 8; + rhs += 8; + } + + if (length > 0) { + a1 = _mm256_loadu_pd(lhs); + b1 = _mm256_loadu_pd(rhs); + sum1 = _mm256_fmadd_pd(a1, b1, sum1); + } + + return HsumDouble(_mm256_add_pd(sum1, sum2)); +} + +#elif defined(ARCADIA_SSE) + +i32 DotProductAvx2(const i8* lhs, const i8* rhs, size_t length) noexcept { + return DotProductSse(lhs, rhs, length); +} + +ui32 DotProductAvx2(const ui8* lhs, const ui8* rhs, size_t length) noexcept { + return DotProductSse(lhs, rhs, length); +} + +i64 DotProductAvx2(const i32* lhs, const i32* rhs, size_t length) noexcept { + return DotProductSse(lhs, rhs, length); +} + +float DotProductAvx2(const float* lhs, const float* rhs, size_t length) noexcept { + return DotProductSse(lhs, rhs, length); +} + +double DotProductAvx2(const double* lhs, const double* rhs, size_t length) noexcept { + return DotProductSse(lhs, rhs, length); +} + +#else + +i32 DotProductAvx2(const i8* lhs, const i8* rhs, size_t length) noexcept { + return DotProductSimple(lhs, rhs, length); +} + +ui32 DotProductAvx2(const ui8* lhs, const ui8* rhs, size_t length) noexcept { + return DotProductSimple(lhs, rhs, length); +} + +i64 DotProductAvx2(const i32* lhs, const i32* rhs, size_t length) noexcept { + return DotProductSimple(lhs, rhs, length); +} + +float DotProductAvx2(const float* lhs, const float* rhs, size_t length) noexcept { + return DotProductSimple(lhs, rhs, length); +} + +double DotProductAvx2(const double* lhs, const double* rhs, size_t length) noexcept { + return DotProductSimple(lhs, rhs, length); +} + +#endif diff --git a/library/cpp/dot_product/dot_product_avx2.h b/library/cpp/dot_product/dot_product_avx2.h new file mode 100644 index 000000000000..715f151f4486 --- /dev/null +++ b/library/cpp/dot_product/dot_product_avx2.h @@ -0,0 +1,19 @@ +#pragma once + +#include +#include + +Y_PURE_FUNCTION +i32 DotProductAvx2(const i8* lhs, const i8* rhs, size_t length) noexcept; + +Y_PURE_FUNCTION +ui32 DotProductAvx2(const ui8* lhs, const ui8* rhs, size_t length) noexcept; + +Y_PURE_FUNCTION +i64 DotProductAvx2(const i32* lhs, const i32* rhs, size_t length) noexcept; + +Y_PURE_FUNCTION +float DotProductAvx2(const float* lhs, const float* rhs, size_t length) noexcept; + +Y_PURE_FUNCTION +double DotProductAvx2(const double* lhs, const double* rhs, size_t length) noexcept; diff --git a/library/cpp/dot_product/dot_product_simple.cpp b/library/cpp/dot_product/dot_product_simple.cpp new file mode 100644 index 000000000000..02891c8a2280 --- /dev/null +++ b/library/cpp/dot_product/dot_product_simple.cpp @@ -0,0 +1,44 @@ +#include "dot_product_simple.h" + +namespace { + template + static Res DotProductSimpleImpl(const Number* lhs, const Number* rhs, size_t length) noexcept { + Res s0 = 0; + Res s1 = 0; + Res s2 = 0; + Res s3 = 0; + + while (length >= 4) { + s0 += static_cast(lhs[0]) * static_cast(rhs[0]); + s1 += static_cast(lhs[1]) * static_cast(rhs[1]); + s2 += static_cast(lhs[2]) * static_cast(rhs[2]); + s3 += static_cast(lhs[3]) * static_cast(rhs[3]); + lhs += 4; + rhs += 4; + length -= 4; + } + + while (length--) { + s0 += static_cast(*lhs++) * static_cast(*rhs++); + } + + return s0 + s1 + s2 + s3; + } +} + +float DotProductSimple(const float* lhs, const float* rhs, size_t length) noexcept { + return DotProductSimpleImpl(lhs, rhs, length); +} + +double DotProductSimple(const double* lhs, const double* rhs, size_t length) noexcept { + return DotProductSimpleImpl(lhs, rhs, length); +} + +ui32 DotProductUI4Simple(const ui8* lhs, const ui8* rhs, size_t lengtInBytes) noexcept { + ui32 res = 0; + for (size_t i = 0; i < lengtInBytes; ++i) { + res += static_cast(lhs[i] & 0x0f) * static_cast(rhs[i] & 0x0f); + res += static_cast(lhs[i] & 0xf0) * static_cast(rhs[i] & 0xf0) >> 8; + } + return res; +} diff --git a/library/cpp/dot_product/dot_product_simple.h b/library/cpp/dot_product/dot_product_simple.h new file mode 100644 index 000000000000..dd13dd7592cd --- /dev/null +++ b/library/cpp/dot_product/dot_product_simple.h @@ -0,0 +1,40 @@ +#pragma once + +#include +#include + +#include + +/** + * Dot product implementation without SSE optimizations. + */ +Y_PURE_FUNCTION +inline ui32 DotProductSimple(const ui8* lhs, const ui8* rhs, size_t length) noexcept { + return std::inner_product(lhs, lhs + length, rhs, static_cast(0u), + [](ui32 x1, ui16 x2) {return x1 + x2;}, + [](ui16 x1, ui8 x2) {return x1 * x2;}); +} + +Y_PURE_FUNCTION +inline i32 DotProductSimple(const i8* lhs, const i8* rhs, size_t length) noexcept { + return std::inner_product(lhs, lhs + length, rhs, static_cast(0), + [](i32 x1, i16 x2) {return x1 + x2;}, + [](i16 x1, i8 x2) {return x1 * x2;}); +} + +Y_PURE_FUNCTION +inline i64 DotProductSimple(const i32* lhs, const i32* rhs, size_t length) noexcept { + return std::inner_product(lhs, lhs + length, rhs, static_cast(0), + [](i64 x1, i64 x2) {return x1 + x2;}, + [](i64 x1, i32 x2) {return x1 * x2;}); +} + +Y_PURE_FUNCTION +float DotProductSimple(const float* lhs, const float* rhs, size_t length) noexcept; + +Y_PURE_FUNCTION +double DotProductSimple(const double* lhs, const double* rhs, size_t length) noexcept; + +Y_PURE_FUNCTION +ui32 DotProductUI4Simple(const ui8* lhs, const ui8* rhs, size_t lengtInBytes) noexcept; + diff --git a/library/cpp/dot_product/dot_product_sse.cpp b/library/cpp/dot_product/dot_product_sse.cpp new file mode 100644 index 000000000000..5256cfe98aff --- /dev/null +++ b/library/cpp/dot_product/dot_product_sse.cpp @@ -0,0 +1,219 @@ +#include "dot_product_sse.h" + +#include +#include +#include + +#ifdef ARCADIA_SSE +i32 DotProductSse(const i8* lhs, const i8* rhs, size_t length) noexcept { + const __m128i zero = _mm_setzero_si128(); + __m128i resVec = zero; + while (length >= 16) { + __m128i lVec = _mm_loadu_si128((const __m128i*)lhs); + __m128i rVec = _mm_loadu_si128((const __m128i*)rhs); + +#ifdef _sse4_1_ + __m128i lLo = _mm_cvtepi8_epi16(lVec); + __m128i rLo = _mm_cvtepi8_epi16(rVec); + __m128i lHi = _mm_cvtepi8_epi16(_mm_alignr_epi8(lVec, lVec, 8)); + __m128i rHi = _mm_cvtepi8_epi16(_mm_alignr_epi8(rVec, rVec, 8)); +#else + __m128i lLo = _mm_srai_epi16(_mm_unpacklo_epi8(zero, lVec), 8); + __m128i rLo = _mm_srai_epi16(_mm_unpacklo_epi8(zero, rVec), 8); + __m128i lHi = _mm_srai_epi16(_mm_unpackhi_epi8(zero, lVec), 8); + __m128i rHi = _mm_srai_epi16(_mm_unpackhi_epi8(zero, rVec), 8); +#endif + resVec = _mm_add_epi32(resVec, + _mm_add_epi32(_mm_madd_epi16(lLo, rLo), _mm_madd_epi16(lHi, rHi))); + + lhs += 16; + rhs += 16; + length -= 16; + } + + alignas(16) i32 res[4]; + _mm_store_si128((__m128i*)res, resVec); + i32 sum = res[0] + res[1] + res[2] + res[3]; + for (size_t i = 0; i < length; ++i) { + sum += static_cast(lhs[i]) * static_cast(rhs[i]); + } + + return sum; +} + +ui32 DotProductSse(const ui8* lhs, const ui8* rhs, size_t length) noexcept { + const __m128i zero = _mm_setzero_si128(); + __m128i resVec = zero; + while (length >= 16) { + __m128i lVec = _mm_loadu_si128((const __m128i*)lhs); + __m128i rVec = _mm_loadu_si128((const __m128i*)rhs); + + __m128i lLo = _mm_unpacklo_epi8(lVec, zero); + __m128i rLo = _mm_unpacklo_epi8(rVec, zero); + __m128i lHi = _mm_unpackhi_epi8(lVec, zero); + __m128i rHi = _mm_unpackhi_epi8(rVec, zero); + + resVec = _mm_add_epi32(resVec, + _mm_add_epi32(_mm_madd_epi16(lLo, rLo), _mm_madd_epi16(lHi, rHi))); + + lhs += 16; + rhs += 16; + length -= 16; + } + + alignas(16) i32 res[4]; + _mm_store_si128((__m128i*)res, resVec); + i32 sum = res[0] + res[1] + res[2] + res[3]; + for (size_t i = 0; i < length; ++i) { + sum += static_cast(lhs[i]) * static_cast(rhs[i]); + } + + return static_cast(sum); +} +#ifdef _sse4_1_ + +i64 DotProductSse(const i32* lhs, const i32* rhs, size_t length) noexcept { + __m128i zero = _mm_setzero_si128(); + __m128i res = zero; + + while (length >= 4) { + __m128i a = _mm_loadu_si128((const __m128i*)lhs); + __m128i b = _mm_loadu_si128((const __m128i*)rhs); + res = _mm_add_epi64(_mm_mul_epi32(a, b), res); // This is lower parts multiplication + a = _mm_alignr_epi8(a, a, 4); + b = _mm_alignr_epi8(b, b, 4); + res = _mm_add_epi64(_mm_mul_epi32(a, b), res); + rhs += 4; + lhs += 4; + length -= 4; + } + + alignas(16) i64 r[2]; + _mm_store_si128((__m128i*)r, res); + i64 sum = r[0] + r[1]; + + for (size_t i = 0; i < length; ++i) { + sum += static_cast(lhs[i]) * static_cast(rhs[i]); + } + + return sum; +} + +#else +#include "dot_product_simple.h" + +i64 DotProductSse(const i32* lhs, const i32* rhs, size_t length) noexcept { + return DotProductSimple(lhs, rhs, length); +} + +#endif + +float DotProductSse(const float* lhs, const float* rhs, size_t length) noexcept { + __m128 sum1 = _mm_setzero_ps(); + __m128 sum2 = _mm_setzero_ps(); + __m128 a1, b1, a2, b2, m1, m2; + + while (length >= 8) { + a1 = _mm_loadu_ps(lhs); + b1 = _mm_loadu_ps(rhs); + m1 = _mm_mul_ps(a1, b1); + + a2 = _mm_loadu_ps(lhs + 4); + sum1 = _mm_add_ps(sum1, m1); + + b2 = _mm_loadu_ps(rhs + 4); + m2 = _mm_mul_ps(a2, b2); + + sum2 = _mm_add_ps(sum2, m2); + + length -= 8; + lhs += 8; + rhs += 8; + } + + if (length >= 4) { + a1 = _mm_loadu_ps(lhs); + b1 = _mm_loadu_ps(rhs); + sum1 = _mm_add_ps(sum1, _mm_mul_ps(a1, b1)); + + length -= 4; + lhs += 4; + rhs += 4; + } + + sum1 = _mm_add_ps(sum1, sum2); + + if (length) { + switch (length) { + case 3: + a1 = _mm_set_ps(0.0f, lhs[2], lhs[1], lhs[0]); + b1 = _mm_set_ps(0.0f, rhs[2], rhs[1], rhs[0]); + break; + + case 2: + a1 = _mm_set_ps(0.0f, 0.0f, lhs[1], lhs[0]); + b1 = _mm_set_ps(0.0f, 0.0f, rhs[1], rhs[0]); + break; + + case 1: + a1 = _mm_set_ps(0.0f, 0.0f, 0.0f, lhs[0]); + b1 = _mm_set_ps(0.0f, 0.0f, 0.0f, rhs[0]); + break; + + default: + Y_UNREACHABLE(); + } + + sum1 = _mm_add_ps(sum1, _mm_mul_ps(a1, b1)); + } + + alignas(16) float res[4]; + _mm_store_ps(res, sum1); + + return res[0] + res[1] + res[2] + res[3]; +} + +double DotProductSse(const double* lhs, const double* rhs, size_t length) noexcept { + __m128d sum1 = _mm_setzero_pd(); + __m128d sum2 = _mm_setzero_pd(); + __m128d a1, b1, a2, b2; + + while (length >= 4) { + a1 = _mm_loadu_pd(lhs); + b1 = _mm_loadu_pd(rhs); + sum1 = _mm_add_pd(sum1, _mm_mul_pd(a1, b1)); + + a2 = _mm_loadu_pd(lhs + 2); + b2 = _mm_loadu_pd(rhs + 2); + sum2 = _mm_add_pd(sum2, _mm_mul_pd(a2, b2)); + + length -= 4; + lhs += 4; + rhs += 4; + } + + if (length >= 2) { + a1 = _mm_loadu_pd(lhs); + b1 = _mm_loadu_pd(rhs); + sum1 = _mm_add_pd(sum1, _mm_mul_pd(a1, b1)); + + length -= 2; + lhs += 2; + rhs += 2; + } + + sum1 = _mm_add_pd(sum1, sum2); + + if (length > 0) { + a1 = _mm_set_pd(lhs[0], 0.0); + b1 = _mm_set_pd(rhs[0], 0.0); + sum1 = _mm_add_pd(sum1, _mm_mul_pd(a1, b1)); + } + + alignas(16) double res[2]; + _mm_store_pd(res, sum1); + + return res[0] + res[1]; +} + +#endif // ARCADIA_SSE diff --git a/library/cpp/dot_product/dot_product_sse.h b/library/cpp/dot_product/dot_product_sse.h new file mode 100644 index 000000000000..814736007d08 --- /dev/null +++ b/library/cpp/dot_product/dot_product_sse.h @@ -0,0 +1,19 @@ +#pragma once + +#include +#include + +Y_PURE_FUNCTION +i32 DotProductSse(const i8* lhs, const i8* rhs, size_t length) noexcept; + +Y_PURE_FUNCTION +ui32 DotProductSse(const ui8* lhs, const ui8* rhs, size_t length) noexcept; + +Y_PURE_FUNCTION +i64 DotProductSse(const i32* lhs, const i32* rhs, size_t length) noexcept; + +Y_PURE_FUNCTION +float DotProductSse(const float* lhs, const float* rhs, size_t length) noexcept; + +Y_PURE_FUNCTION +double DotProductSse(const double* lhs, const double* rhs, size_t length) noexcept; diff --git a/library/cpp/dot_product/ya.make b/library/cpp/dot_product/ya.make new file mode 100644 index 000000000000..b308967b4be7 --- /dev/null +++ b/library/cpp/dot_product/ya.make @@ -0,0 +1,20 @@ +LIBRARY() + +SRCS( + dot_product.cpp + dot_product_sse.cpp + dot_product_simple.cpp +) + +IF (USE_SSE4 == "yes" AND OS_LINUX == "yes") + SRC_C_AVX2(dot_product_avx2.cpp -mfma) +ELSE() + SRC(dot_product_avx2.cpp) +ENDIF() + +PEERDIR( + library/cpp/sse + library/cpp/testing/common +) + +END() diff --git a/library/cpp/histogram/adaptive/protos/CMakeLists.darwin-arm64.txt b/library/cpp/histogram/adaptive/protos/CMakeLists.darwin-arm64.txt index ff0b6ce0f9bd..ff50f811b05a 100644 --- a/library/cpp/histogram/adaptive/protos/CMakeLists.darwin-arm64.txt +++ b/library/cpp/histogram/adaptive/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(histogram-adaptive-protos PUBLIC target_proto_messages(histogram-adaptive-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/histogram/adaptive/protos/histo.proto ) +target_sources(histogram-adaptive-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/histogram/adaptive/protos/histo.pb.h +) target_proto_addincls(histogram-adaptive-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/histogram/adaptive/protos/CMakeLists.darwin-x86_64.txt b/library/cpp/histogram/adaptive/protos/CMakeLists.darwin-x86_64.txt index ff0b6ce0f9bd..ff50f811b05a 100644 --- a/library/cpp/histogram/adaptive/protos/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/histogram/adaptive/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(histogram-adaptive-protos PUBLIC target_proto_messages(histogram-adaptive-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/histogram/adaptive/protos/histo.proto ) +target_sources(histogram-adaptive-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/histogram/adaptive/protos/histo.pb.h +) target_proto_addincls(histogram-adaptive-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/histogram/adaptive/protos/CMakeLists.linux-aarch64.txt b/library/cpp/histogram/adaptive/protos/CMakeLists.linux-aarch64.txt index c2746fae7777..f40e1f1a5d54 100644 --- a/library/cpp/histogram/adaptive/protos/CMakeLists.linux-aarch64.txt +++ b/library/cpp/histogram/adaptive/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(histogram-adaptive-protos PUBLIC target_proto_messages(histogram-adaptive-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/histogram/adaptive/protos/histo.proto ) +target_sources(histogram-adaptive-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/histogram/adaptive/protos/histo.pb.h +) target_proto_addincls(histogram-adaptive-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/histogram/adaptive/protos/CMakeLists.linux-x86_64.txt b/library/cpp/histogram/adaptive/protos/CMakeLists.linux-x86_64.txt index c2746fae7777..f40e1f1a5d54 100644 --- a/library/cpp/histogram/adaptive/protos/CMakeLists.linux-x86_64.txt +++ b/library/cpp/histogram/adaptive/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(histogram-adaptive-protos PUBLIC target_proto_messages(histogram-adaptive-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/histogram/adaptive/protos/histo.proto ) +target_sources(histogram-adaptive-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/histogram/adaptive/protos/histo.pb.h +) target_proto_addincls(histogram-adaptive-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/histogram/adaptive/protos/CMakeLists.windows-x86_64.txt b/library/cpp/histogram/adaptive/protos/CMakeLists.windows-x86_64.txt index ff0b6ce0f9bd..ff50f811b05a 100644 --- a/library/cpp/histogram/adaptive/protos/CMakeLists.windows-x86_64.txt +++ b/library/cpp/histogram/adaptive/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(histogram-adaptive-protos PUBLIC target_proto_messages(histogram-adaptive-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/histogram/adaptive/protos/histo.proto ) +target_sources(histogram-adaptive-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/histogram/adaptive/protos/histo.pb.h +) target_proto_addincls(histogram-adaptive-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/html/pcdata/CMakeLists.darwin-arm64.txt b/library/cpp/html/pcdata/CMakeLists.darwin-arm64.txt index 0efffd69e04e..a013c5f23972 100644 --- a/library/cpp/html/pcdata/CMakeLists.darwin-arm64.txt +++ b/library/cpp/html/pcdata/CMakeLists.darwin-arm64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-html-pcdata PUBLIC yutil ) target_sources(cpp-html-pcdata PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/html/pcdata/pcdata.h ${CMAKE_SOURCE_DIR}/library/cpp/html/pcdata/pcdata.cpp ) diff --git a/library/cpp/html/pcdata/CMakeLists.darwin-x86_64.txt b/library/cpp/html/pcdata/CMakeLists.darwin-x86_64.txt index 0efffd69e04e..a013c5f23972 100644 --- a/library/cpp/html/pcdata/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/html/pcdata/CMakeLists.darwin-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-html-pcdata PUBLIC yutil ) target_sources(cpp-html-pcdata PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/html/pcdata/pcdata.h ${CMAKE_SOURCE_DIR}/library/cpp/html/pcdata/pcdata.cpp ) diff --git a/library/cpp/html/pcdata/CMakeLists.linux-aarch64.txt b/library/cpp/html/pcdata/CMakeLists.linux-aarch64.txt index c6a073acafcc..0722abf6fffc 100644 --- a/library/cpp/html/pcdata/CMakeLists.linux-aarch64.txt +++ b/library/cpp/html/pcdata/CMakeLists.linux-aarch64.txt @@ -14,5 +14,6 @@ target_link_libraries(cpp-html-pcdata PUBLIC yutil ) target_sources(cpp-html-pcdata PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/html/pcdata/pcdata.h ${CMAKE_SOURCE_DIR}/library/cpp/html/pcdata/pcdata.cpp ) diff --git a/library/cpp/html/pcdata/CMakeLists.linux-x86_64.txt b/library/cpp/html/pcdata/CMakeLists.linux-x86_64.txt index c6a073acafcc..0722abf6fffc 100644 --- a/library/cpp/html/pcdata/CMakeLists.linux-x86_64.txt +++ b/library/cpp/html/pcdata/CMakeLists.linux-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(cpp-html-pcdata PUBLIC yutil ) target_sources(cpp-html-pcdata PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/html/pcdata/pcdata.h ${CMAKE_SOURCE_DIR}/library/cpp/html/pcdata/pcdata.cpp ) diff --git a/library/cpp/html/pcdata/CMakeLists.windows-x86_64.txt b/library/cpp/html/pcdata/CMakeLists.windows-x86_64.txt index 0efffd69e04e..a013c5f23972 100644 --- a/library/cpp/html/pcdata/CMakeLists.windows-x86_64.txt +++ b/library/cpp/html/pcdata/CMakeLists.windows-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-html-pcdata PUBLIC yutil ) target_sources(cpp-html-pcdata PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/html/pcdata/pcdata.h ${CMAKE_SOURCE_DIR}/library/cpp/html/pcdata/pcdata.cpp ) diff --git a/library/cpp/http/fetch/CMakeLists.darwin-arm64.txt b/library/cpp/http/fetch/CMakeLists.darwin-arm64.txt index 553e7fc0354f..4b9df6d266e2 100644 --- a/library/cpp/http/fetch/CMakeLists.darwin-arm64.txt +++ b/library/cpp/http/fetch/CMakeLists.darwin-arm64.txt @@ -27,6 +27,12 @@ target_link_libraries(cpp-http-fetch PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-http-fetch PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpagent.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpfetcher.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpheader.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpparser.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpzreader.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/sockhandler.h ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/http_digest.cpp ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/http_socket.cpp ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpheader.cpp diff --git a/library/cpp/http/fetch/CMakeLists.darwin-x86_64.txt b/library/cpp/http/fetch/CMakeLists.darwin-x86_64.txt index 553e7fc0354f..4b9df6d266e2 100644 --- a/library/cpp/http/fetch/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/http/fetch/CMakeLists.darwin-x86_64.txt @@ -27,6 +27,12 @@ target_link_libraries(cpp-http-fetch PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-http-fetch PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpagent.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpfetcher.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpheader.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpparser.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpzreader.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/sockhandler.h ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/http_digest.cpp ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/http_socket.cpp ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpheader.cpp diff --git a/library/cpp/http/fetch/CMakeLists.linux-aarch64.txt b/library/cpp/http/fetch/CMakeLists.linux-aarch64.txt index 4de49d554dec..dc89cb422d64 100644 --- a/library/cpp/http/fetch/CMakeLists.linux-aarch64.txt +++ b/library/cpp/http/fetch/CMakeLists.linux-aarch64.txt @@ -28,6 +28,12 @@ target_link_libraries(cpp-http-fetch PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-http-fetch PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpagent.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpfetcher.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpheader.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpparser.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpzreader.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/sockhandler.h ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/http_digest.cpp ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/http_socket.cpp ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpheader.cpp diff --git a/library/cpp/http/fetch/CMakeLists.linux-x86_64.txt b/library/cpp/http/fetch/CMakeLists.linux-x86_64.txt index 4de49d554dec..dc89cb422d64 100644 --- a/library/cpp/http/fetch/CMakeLists.linux-x86_64.txt +++ b/library/cpp/http/fetch/CMakeLists.linux-x86_64.txt @@ -28,6 +28,12 @@ target_link_libraries(cpp-http-fetch PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-http-fetch PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpagent.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpfetcher.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpheader.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpparser.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpzreader.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/sockhandler.h ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/http_digest.cpp ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/http_socket.cpp ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpheader.cpp diff --git a/library/cpp/http/fetch/CMakeLists.windows-x86_64.txt b/library/cpp/http/fetch/CMakeLists.windows-x86_64.txt index 553e7fc0354f..4b9df6d266e2 100644 --- a/library/cpp/http/fetch/CMakeLists.windows-x86_64.txt +++ b/library/cpp/http/fetch/CMakeLists.windows-x86_64.txt @@ -27,6 +27,12 @@ target_link_libraries(cpp-http-fetch PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-http-fetch PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpagent.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpfetcher.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpheader.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpparser.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpzreader.h + ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/sockhandler.h ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/http_digest.cpp ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/http_socket.cpp ${CMAKE_SOURCE_DIR}/library/cpp/http/fetch/httpheader.cpp diff --git a/library/cpp/hyperloglog/CMakeLists.darwin-arm64.txt b/library/cpp/hyperloglog/CMakeLists.darwin-arm64.txt index 5a180602bc5c..bb90c998a070 100644 --- a/library/cpp/hyperloglog/CMakeLists.darwin-arm64.txt +++ b/library/cpp/hyperloglog/CMakeLists.darwin-arm64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-cpp-hyperloglog PUBLIC yutil ) target_sources(library-cpp-hyperloglog PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/hyperloglog/hyperloglog.h ${CMAKE_SOURCE_DIR}/library/cpp/hyperloglog/hyperloglog.cpp ) diff --git a/library/cpp/hyperloglog/CMakeLists.darwin-x86_64.txt b/library/cpp/hyperloglog/CMakeLists.darwin-x86_64.txt index 5a180602bc5c..bb90c998a070 100644 --- a/library/cpp/hyperloglog/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/hyperloglog/CMakeLists.darwin-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-cpp-hyperloglog PUBLIC yutil ) target_sources(library-cpp-hyperloglog PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/hyperloglog/hyperloglog.h ${CMAKE_SOURCE_DIR}/library/cpp/hyperloglog/hyperloglog.cpp ) diff --git a/library/cpp/hyperloglog/CMakeLists.linux-aarch64.txt b/library/cpp/hyperloglog/CMakeLists.linux-aarch64.txt index bbbb9103f6d4..4e031406829f 100644 --- a/library/cpp/hyperloglog/CMakeLists.linux-aarch64.txt +++ b/library/cpp/hyperloglog/CMakeLists.linux-aarch64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-cpp-hyperloglog PUBLIC yutil ) target_sources(library-cpp-hyperloglog PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/hyperloglog/hyperloglog.h ${CMAKE_SOURCE_DIR}/library/cpp/hyperloglog/hyperloglog.cpp ) diff --git a/library/cpp/hyperloglog/CMakeLists.linux-x86_64.txt b/library/cpp/hyperloglog/CMakeLists.linux-x86_64.txt index bbbb9103f6d4..4e031406829f 100644 --- a/library/cpp/hyperloglog/CMakeLists.linux-x86_64.txt +++ b/library/cpp/hyperloglog/CMakeLists.linux-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-cpp-hyperloglog PUBLIC yutil ) target_sources(library-cpp-hyperloglog PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/hyperloglog/hyperloglog.h ${CMAKE_SOURCE_DIR}/library/cpp/hyperloglog/hyperloglog.cpp ) diff --git a/library/cpp/hyperloglog/CMakeLists.windows-x86_64.txt b/library/cpp/hyperloglog/CMakeLists.windows-x86_64.txt index 5a180602bc5c..bb90c998a070 100644 --- a/library/cpp/hyperloglog/CMakeLists.windows-x86_64.txt +++ b/library/cpp/hyperloglog/CMakeLists.windows-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-cpp-hyperloglog PUBLIC yutil ) target_sources(library-cpp-hyperloglog PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/hyperloglog/hyperloglog.h ${CMAKE_SOURCE_DIR}/library/cpp/hyperloglog/hyperloglog.cpp ) diff --git a/library/cpp/int128/CMakeLists.darwin-arm64.txt b/library/cpp/int128/CMakeLists.darwin-arm64.txt index cdc5d289eec8..556b89637334 100644 --- a/library/cpp/int128/CMakeLists.darwin-arm64.txt +++ b/library/cpp/int128/CMakeLists.darwin-arm64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-cpp-int128 PUBLIC yutil ) target_sources(library-cpp-int128 PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/int128/int128.h ${CMAKE_SOURCE_DIR}/library/cpp/int128/int128.cpp ) diff --git a/library/cpp/int128/CMakeLists.darwin-x86_64.txt b/library/cpp/int128/CMakeLists.darwin-x86_64.txt index cdc5d289eec8..556b89637334 100644 --- a/library/cpp/int128/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/int128/CMakeLists.darwin-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-cpp-int128 PUBLIC yutil ) target_sources(library-cpp-int128 PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/int128/int128.h ${CMAKE_SOURCE_DIR}/library/cpp/int128/int128.cpp ) diff --git a/library/cpp/int128/CMakeLists.linux-aarch64.txt b/library/cpp/int128/CMakeLists.linux-aarch64.txt index 504a4558f752..ca19b9966f7b 100644 --- a/library/cpp/int128/CMakeLists.linux-aarch64.txt +++ b/library/cpp/int128/CMakeLists.linux-aarch64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-cpp-int128 PUBLIC yutil ) target_sources(library-cpp-int128 PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/int128/int128.h ${CMAKE_SOURCE_DIR}/library/cpp/int128/int128.cpp ) diff --git a/library/cpp/int128/CMakeLists.linux-x86_64.txt b/library/cpp/int128/CMakeLists.linux-x86_64.txt index 504a4558f752..ca19b9966f7b 100644 --- a/library/cpp/int128/CMakeLists.linux-x86_64.txt +++ b/library/cpp/int128/CMakeLists.linux-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-cpp-int128 PUBLIC yutil ) target_sources(library-cpp-int128 PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/int128/int128.h ${CMAKE_SOURCE_DIR}/library/cpp/int128/int128.cpp ) diff --git a/library/cpp/int128/CMakeLists.windows-x86_64.txt b/library/cpp/int128/CMakeLists.windows-x86_64.txt index cdc5d289eec8..556b89637334 100644 --- a/library/cpp/int128/CMakeLists.windows-x86_64.txt +++ b/library/cpp/int128/CMakeLists.windows-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-cpp-int128 PUBLIC yutil ) target_sources(library-cpp-int128 PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/int128/int128.h ${CMAKE_SOURCE_DIR}/library/cpp/int128/int128.cpp ) diff --git a/library/cpp/ipv6_address/CMakeLists.darwin-arm64.txt b/library/cpp/ipv6_address/CMakeLists.darwin-arm64.txt index 6156f5cbe2b1..50df9c54eea5 100644 --- a/library/cpp/ipv6_address/CMakeLists.darwin-arm64.txt +++ b/library/cpp/ipv6_address/CMakeLists.darwin-arm64.txt @@ -14,5 +14,7 @@ target_link_libraries(library-cpp-ipv6_address PUBLIC library-cpp-int128 ) target_sources(library-cpp-ipv6_address PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address.h + ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address_p.h ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address.cpp ) diff --git a/library/cpp/ipv6_address/CMakeLists.darwin-x86_64.txt b/library/cpp/ipv6_address/CMakeLists.darwin-x86_64.txt index 6156f5cbe2b1..50df9c54eea5 100644 --- a/library/cpp/ipv6_address/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/ipv6_address/CMakeLists.darwin-x86_64.txt @@ -14,5 +14,7 @@ target_link_libraries(library-cpp-ipv6_address PUBLIC library-cpp-int128 ) target_sources(library-cpp-ipv6_address PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address.h + ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address_p.h ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address.cpp ) diff --git a/library/cpp/ipv6_address/CMakeLists.linux-aarch64.txt b/library/cpp/ipv6_address/CMakeLists.linux-aarch64.txt index 478d0655cf0f..6b120b0cf4db 100644 --- a/library/cpp/ipv6_address/CMakeLists.linux-aarch64.txt +++ b/library/cpp/ipv6_address/CMakeLists.linux-aarch64.txt @@ -15,5 +15,7 @@ target_link_libraries(library-cpp-ipv6_address PUBLIC library-cpp-int128 ) target_sources(library-cpp-ipv6_address PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address.h + ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address_p.h ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address.cpp ) diff --git a/library/cpp/ipv6_address/CMakeLists.linux-x86_64.txt b/library/cpp/ipv6_address/CMakeLists.linux-x86_64.txt index 478d0655cf0f..6b120b0cf4db 100644 --- a/library/cpp/ipv6_address/CMakeLists.linux-x86_64.txt +++ b/library/cpp/ipv6_address/CMakeLists.linux-x86_64.txt @@ -15,5 +15,7 @@ target_link_libraries(library-cpp-ipv6_address PUBLIC library-cpp-int128 ) target_sources(library-cpp-ipv6_address PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address.h + ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address_p.h ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address.cpp ) diff --git a/library/cpp/ipv6_address/CMakeLists.windows-x86_64.txt b/library/cpp/ipv6_address/CMakeLists.windows-x86_64.txt index 6156f5cbe2b1..50df9c54eea5 100644 --- a/library/cpp/ipv6_address/CMakeLists.windows-x86_64.txt +++ b/library/cpp/ipv6_address/CMakeLists.windows-x86_64.txt @@ -14,5 +14,7 @@ target_link_libraries(library-cpp-ipv6_address PUBLIC library-cpp-int128 ) target_sources(library-cpp-ipv6_address PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address.h + ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address_p.h ${CMAKE_SOURCE_DIR}/library/cpp/ipv6_address/ipv6_address.cpp ) diff --git a/library/cpp/l1_distance/README.md b/library/cpp/l1_distance/README.md new file mode 100644 index 000000000000..a25f09f12a33 --- /dev/null +++ b/library/cpp/l1_distance/README.md @@ -0,0 +1,15 @@ +Библиотека для вычисления расстояния между векторами. +===================================================== + +Данная библиотека содержит функцию L1Distance, вычисляющую расстояние между векторами разных типов. +В отличии от наивной реализации, библиотека использует SSE и работает существенно быстрее. Для +сравнения можно посмотреть результаты бенчмарка. + +Типичное использование - замена кусков кода вроде: +``` +for (int i = 0; i < len; i++) + dist += std::abs(a[i] - b[i]); +``` +на существенно более эффективный вызов ```L1Distance(a, b, len)```. + +Работает для типов i8, ui8, i32, ui32, float, double. diff --git a/library/cpp/l1_distance/l1_distance.h b/library/cpp/l1_distance/l1_distance.h new file mode 100644 index 000000000000..71545cbe3372 --- /dev/null +++ b/library/cpp/l1_distance/l1_distance.h @@ -0,0 +1,477 @@ +#pragma once + +#include + +#include +#include +#include +#include + +namespace NL1Distance { + namespace NPrivate { + template + inline T AbsDelta(T a, T b) { + if (a < b) + return b - a; + return a - b; + } + + template + inline Result L1DistanceImpl(const Number* lhs, const Number* rhs, int length) { + Result sum = 0; + + for (int i = 0; i < length; i++) + sum += AbsDelta(lhs[i], rhs[i]); + + return sum; + } + + template + inline Result L1DistanceImpl2(const Number* lhs, const Number* rhs, int length) { + Result s0 = 0; + Result s1 = 0; + + while (length >= 2) { + s0 += AbsDelta(lhs[0], rhs[0]); + s1 += AbsDelta(lhs[1], rhs[1]); + lhs += 2; + rhs += 2; + length -= 2; + } + + while (length--) + s0 += AbsDelta(*lhs++, *rhs++); + + return s0 + s1; + } + + template + inline Result L1DistanceImpl4(const Number* lhs, const Number* rhs, int length) { + Result s0 = 0; + Result s1 = 0; + Result s2 = 0; + Result s3 = 0; + + while (length >= 4) { + s0 += AbsDelta(lhs[0], rhs[0]); + s1 += AbsDelta(lhs[1], rhs[1]); + s2 += AbsDelta(lhs[2], rhs[2]); + s3 += AbsDelta(lhs[3], rhs[3]); + lhs += 4; + rhs += 4; + length -= 4; + } + + while (length--) + s0 += AbsDelta(*lhs++, *rhs++); + + return s0 + s1 + s2 + s3; + } + + template + inline Result L1DistanceImplUI4(const ui8* lhs, const ui8* rhs, int lengtInBytes) { + Result sum = 0; + + for (int i = 0; i < lengtInBytes; ++i) { + sum += AbsDelta(lhs[i] & 0x0f, rhs[i] & 0x0f); + sum += AbsDelta(lhs[i] & 0xf0, rhs[i] & 0xf0) >> 4; + } + + return sum; + } + +#ifdef ARCADIA_SSE + static const __m128i MASK_UI4_1 = _mm_set_epi8(0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f); + static const __m128i MASK_UI4_2 = _mm_set_epi8(0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0); + + + Y_FORCE_INLINE ui32 L1Distance96Ui8(const ui8* lhs, const ui8* rhs) { + __m128i x1 = _mm_loadu_si128((const __m128i*)&lhs[0]); + __m128i y1 = _mm_loadu_si128((const __m128i*)&rhs[0]); + + __m128i sum = _mm_sad_epu8(x1, y1); + + __m128i x2 = _mm_loadu_si128((const __m128i*)&lhs[16]); + __m128i y2 = _mm_loadu_si128((const __m128i*)&rhs[16]); + + sum = _mm_add_epi64(sum, _mm_sad_epu8(x2, y2)); + + __m128i x3 = _mm_loadu_si128((const __m128i*)&lhs[32]); + __m128i y3 = _mm_loadu_si128((const __m128i*)&rhs[32]); + + sum = _mm_add_epi64(sum, _mm_sad_epu8(x3, y3)); + + __m128i x4 = _mm_loadu_si128((const __m128i*)&lhs[48]); + __m128i y4 = _mm_loadu_si128((const __m128i*)&rhs[48]); + + sum = _mm_add_epi64(sum, _mm_sad_epu8(x4, y4)); + + __m128i x5 = _mm_loadu_si128((const __m128i*)&lhs[64]); + __m128i y5 = _mm_loadu_si128((const __m128i*)&rhs[64]); + + sum = _mm_add_epi64(sum, _mm_sad_epu8(x5, y5)); + + __m128i x6 = _mm_loadu_si128((const __m128i*)&lhs[80]); + __m128i y6 = _mm_loadu_si128((const __m128i*)&rhs[80]); + + sum = _mm_add_epi64(sum, _mm_sad_epu8(x6, y6)); + return _mm_cvtsi128_si32(sum) + _mm_cvtsi128_si32(_mm_shuffle_epi32(sum, _MM_SHUFFLE(2, 2, 2, 2))); + } + + Y_FORCE_INLINE ui32 L1Distance96Ui4(const ui8* lhs, const ui8* rhs) { + __m128i x1 = _mm_loadu_si128((const __m128i*)&lhs[0]); + __m128i y1 = _mm_loadu_si128((const __m128i*)&rhs[0]); + __m128i sum1 = _mm_sad_epu8(_mm_and_si128(x1, MASK_UI4_1), _mm_and_si128(y1, MASK_UI4_1)); + __m128i sum2 = _mm_sad_epu8(_mm_and_si128(x1, MASK_UI4_2), _mm_and_si128(y1, MASK_UI4_2)); + + __m128i x2 = _mm_loadu_si128((const __m128i*)&lhs[16]); + __m128i y2 = _mm_loadu_si128((const __m128i*)&rhs[16]); + sum1 = _mm_add_epi64(sum1, _mm_sad_epu8(_mm_and_si128(x2, MASK_UI4_1), _mm_and_si128(y2, MASK_UI4_1))); + sum2 = _mm_add_epi64(sum2, _mm_sad_epu8(_mm_and_si128(x2, MASK_UI4_2), _mm_and_si128(y2, MASK_UI4_2))); + + __m128i x3 = _mm_loadu_si128((const __m128i*)&lhs[32]); + __m128i y3 = _mm_loadu_si128((const __m128i*)&rhs[32]); + sum1 = _mm_add_epi64(sum1, _mm_sad_epu8(_mm_and_si128(x3, MASK_UI4_1), _mm_and_si128(y3, MASK_UI4_1))); + sum2 = _mm_add_epi64(sum2, _mm_sad_epu8(_mm_and_si128(x3, MASK_UI4_2), _mm_and_si128(y3, MASK_UI4_2))); + + __m128i x4 = _mm_loadu_si128((const __m128i*)&lhs[48]); + __m128i y4 = _mm_loadu_si128((const __m128i*)&rhs[48]); + sum1 = _mm_add_epi64(sum1, _mm_sad_epu8(_mm_and_si128(x4, MASK_UI4_1), _mm_and_si128(y4, MASK_UI4_1))); + sum2 = _mm_add_epi64(sum2, _mm_sad_epu8(_mm_and_si128(x4, MASK_UI4_2), _mm_and_si128(y4, MASK_UI4_2))); + + __m128i x5 = _mm_loadu_si128((const __m128i*)&lhs[64]); + __m128i y5 = _mm_loadu_si128((const __m128i*)&rhs[64]); + sum1 = _mm_add_epi64(sum1, _mm_sad_epu8(_mm_and_si128(x5, MASK_UI4_1), _mm_and_si128(y5, MASK_UI4_1))); + sum2 = _mm_add_epi64(sum2, _mm_sad_epu8(_mm_and_si128(x5, MASK_UI4_2), _mm_and_si128(y5, MASK_UI4_2))); + + __m128i x6 = _mm_loadu_si128((const __m128i*)&lhs[80]); + __m128i y6 = _mm_loadu_si128((const __m128i*)&rhs[80]); + sum1 = _mm_add_epi64(sum1, _mm_sad_epu8(_mm_and_si128(x6, MASK_UI4_1), _mm_and_si128(y6, MASK_UI4_1))); + sum2 = _mm_add_epi64(sum2, _mm_sad_epu8(_mm_and_si128(x6, MASK_UI4_2), _mm_and_si128(y6, MASK_UI4_2))); + + return _mm_cvtsi128_si32(sum1) + _mm_cvtsi128_si32(_mm_shuffle_epi32(sum1, _MM_SHUFFLE(2, 2, 2, 2))) + + ((_mm_cvtsi128_si32(sum2) + _mm_cvtsi128_si32(_mm_shuffle_epi32(sum2, _MM_SHUFFLE(2, 2, 2, 2)))) >> 4); + } +#endif // ARCADIA_SSE + } // namespace NPrivate +} + +/** + * L1Distance (sum(abs(l[i] - r[i]))) implementation using SSE when possible. + */ +#ifdef ARCADIA_SSE + +Y_FORCE_INLINE ui32 L1Distance(const i8* lhs, const i8* rhs, int length) { + static const __m128i unsignedToSignedDiff = _mm_set_epi8( + -128, -128, -128, -128, -128, -128, -128, -128, + -128, -128, -128, -128, -128, -128, -128, -128); + __m128i resVec = _mm_setzero_si128(); + + while (length >= 16) { + __m128i lVec = _mm_sub_epi8(_mm_loadu_si128((const __m128i*)lhs), unsignedToSignedDiff); + __m128i rVec = _mm_sub_epi8(_mm_loadu_si128((const __m128i*)rhs), unsignedToSignedDiff); + + resVec = _mm_add_epi64(_mm_sad_epu8(lVec, rVec), resVec); + + lhs += 16; + rhs += 16; + length -= 16; + } + + alignas(16) i64 res[2]; + _mm_store_si128((__m128i*)res, resVec); + ui32 sum = res[0] + res[1]; + for (int i = 0; i < length; ++i) { + const i32 diff = static_cast(lhs[i]) - static_cast(rhs[i]); + sum += (diff >= 0) ? diff : -diff; + } + + return sum; +} + +Y_FORCE_INLINE ui32 L1Distance(const ui8* lhs, const ui8* rhs, int length) { + if (length == 96) + return NL1Distance::NPrivate::L1Distance96Ui8(lhs, rhs); + + int l16 = length & (~15); + __m128i sum = _mm_setzero_si128(); + + if ((reinterpret_cast(lhs) & 0x0f) || (reinterpret_cast(rhs) & 0x0f)) { + for (int i = 0; i < l16; i += 16) { + __m128i a = _mm_loadu_si128((const __m128i*)(&lhs[i])); + __m128i b = _mm_loadu_si128((const __m128i*)(&rhs[i])); + + sum = _mm_add_epi64(sum, _mm_sad_epu8(a, b)); + } + } else { + for (int i = 0; i < l16; i += 16) { + __m128i sum_ab = _mm_sad_epu8(*(const __m128i*)(&lhs[i]), *(const __m128i*)(&rhs[i])); + sum = _mm_add_epi64(sum, sum_ab); + } + } + + if (l16 == length) + return _mm_cvtsi128_si32(sum) + _mm_cvtsi128_si32(_mm_shuffle_epi32(sum, _MM_SHUFFLE(2, 2, 2, 2))); + + int l4 = length & (~3); + for (int i = l16; i < l4; i += 4) { + __m128i a = _mm_set_epi32(*((const ui32*)&lhs[i]), 0, 0, 0); + __m128i b = _mm_set_epi32(*((const ui32*)&rhs[i]), 0, 0, 0); + sum = _mm_add_epi64(sum, _mm_sad_epu8(a, b)); + } + + ui32 res = _mm_cvtsi128_si32(sum) + _mm_cvtsi128_si32(_mm_shuffle_epi32(sum, _MM_SHUFFLE(2, 2, 2, 2))); + + for (int i = l4; i < length; i++) + res += lhs[i] < rhs[i] ? rhs[i] - lhs[i] : lhs[i] - rhs[i]; + + return res; +} + +Y_FORCE_INLINE ui32 L1DistanceUI4(const ui8* lhs, const ui8* rhs, int lengtInBytes) { + + if (lengtInBytes == 96) + return NL1Distance::NPrivate::L1Distance96Ui4(lhs, rhs); + + int l16 = lengtInBytes & (~15); + __m128i sum1 = _mm_setzero_si128(); + __m128i sum2 = _mm_setzero_si128(); + + for (int i = 0; i < l16; i += 16) { + __m128i a = _mm_loadu_si128((const __m128i*)(&lhs[i])); + __m128i b = _mm_loadu_si128((const __m128i*)(&rhs[i])); + + sum1 = _mm_add_epi64(sum1, _mm_sad_epu8(_mm_and_si128(a, NL1Distance::NPrivate::MASK_UI4_1), _mm_and_si128(b, NL1Distance::NPrivate::MASK_UI4_1))); + sum2 = _mm_add_epi64(sum2, _mm_sad_epu8(_mm_and_si128(a, NL1Distance::NPrivate::MASK_UI4_2), _mm_and_si128(b, NL1Distance::NPrivate::MASK_UI4_2))); + } + + if (l16 == lengtInBytes) + return _mm_cvtsi128_si32(sum1) + _mm_cvtsi128_si32(_mm_shuffle_epi32(sum1, _MM_SHUFFLE(2, 2, 2, 2))) + + ((_mm_cvtsi128_si32(sum2) + _mm_cvtsi128_si32(_mm_shuffle_epi32(sum2, _MM_SHUFFLE(2, 2, 2, 2)))) >> 4); + + int l4 = lengtInBytes & (~3); + for (int i = l16; i < l4; i += 4) { + __m128i a = _mm_set_epi32(*((const ui32*)&lhs[i]), 0, 0, 0); + __m128i b = _mm_set_epi32(*((const ui32*)&rhs[i]), 0, 0, 0); + sum1 = _mm_add_epi64(sum1, _mm_sad_epu8(_mm_and_si128(a, NL1Distance::NPrivate::MASK_UI4_1), _mm_and_si128(b, NL1Distance::NPrivate::MASK_UI4_1))); + sum2 = _mm_add_epi64(sum2, _mm_sad_epu8(_mm_and_si128(a, NL1Distance::NPrivate::MASK_UI4_2), _mm_and_si128(b, NL1Distance::NPrivate::MASK_UI4_2))); + } + + ui32 res = _mm_cvtsi128_si32(sum1) + _mm_cvtsi128_si32(_mm_shuffle_epi32(sum1, _MM_SHUFFLE(2, 2, 2, 2))) + + ((_mm_cvtsi128_si32(sum2) + _mm_cvtsi128_si32(_mm_shuffle_epi32(sum2, _MM_SHUFFLE(2, 2, 2, 2)))) >> 4); + + for (int i = l4; i < lengtInBytes; ++i) { + ui8 a1 = lhs[i] & 0x0f; + ui8 a2 = (lhs[i] & 0xf0) >> 4; + ui8 b1 = rhs[i] & 0x0f; + ui8 b2 = (rhs[i] & 0xf0) >> 4; + res += a1 < b1 ? b1 - a1 : a1 - b1; + res += a2 < b2 ? b2 - a2 : a2 - b2; + } + + return res; +} + +Y_FORCE_INLINE ui64 L1Distance(const i32* lhs, const i32* rhs, int length) { + __m128i zero = _mm_setzero_si128(); + __m128i res = zero; + + while (length >= 4) { + __m128i a = _mm_loadu_si128((const __m128i*)lhs); + __m128i b = _mm_loadu_si128((const __m128i*)rhs); + __m128i mask = _mm_cmpgt_epi32(a, b); + __m128i a2 = _mm_and_si128(mask, _mm_sub_epi32(a, b)); + b = _mm_andnot_si128(mask, _mm_sub_epi32(b, a)); + a = _mm_or_si128(a2, b); + res = _mm_add_epi64(_mm_unpackhi_epi32(a, zero), res); + res = _mm_add_epi64(_mm_unpacklo_epi32(a, zero), res); + rhs += 4; + lhs += 4; + length -= 4; + } + + alignas(16) ui64 r[2]; + _mm_store_si128((__m128i*)r, res); + ui64 sum = r[0] + r[1]; + + while (length) { + sum += lhs[0] < rhs[0] ? rhs[0] - lhs[0] : lhs[0] - rhs[0]; + ++lhs; + ++rhs; + --length; + } + + return sum; +} + +Y_FORCE_INLINE ui64 L1Distance(const ui32* lhs, const ui32* rhs, int length) { + __m128i zero = _mm_setzero_si128(); + __m128i shift = _mm_set1_epi32(0x80000000); + __m128i res = zero; + + while (length >= 4) { + __m128i a = _mm_add_epi32(_mm_loadu_si128((const __m128i*)lhs), shift); + __m128i b = _mm_add_epi32(_mm_loadu_si128((const __m128i*)rhs), shift); + __m128i mask = _mm_cmpgt_epi32(a, b); + __m128i a2 = _mm_and_si128(mask, _mm_sub_epi32(a, b)); + b = _mm_andnot_si128(mask, _mm_sub_epi32(b, a)); + a = _mm_or_si128(a2, b); + res = _mm_add_epi64(_mm_unpackhi_epi32(a, zero), res); + res = _mm_add_epi64(_mm_unpacklo_epi32(a, zero), res); + rhs += 4; + lhs += 4; + length -= 4; + } + + alignas(16) ui64 r[2]; + _mm_store_si128((__m128i*)r, res); + ui64 sum = r[0] + r[1]; + + while (length) { + sum += lhs[0] < rhs[0] ? rhs[0] - lhs[0] : lhs[0] - rhs[0]; + ++lhs; + ++rhs; + --length; + } + + return sum; +} + +Y_FORCE_INLINE float L1Distance(const float* lhs, const float* rhs, int length) { + __m128 res = _mm_setzero_ps(); + __m128 absMask = _mm_castsi128_ps(_mm_set1_epi32(0x7fffffff)); + + while (length >= 4) { + __m128 a = _mm_loadu_ps(lhs); + __m128 b = _mm_loadu_ps(rhs); + __m128 d = _mm_sub_ps(a, b); + res = _mm_add_ps(_mm_and_ps(d, absMask), res); + rhs += 4; + lhs += 4; + length -= 4; + } + + alignas(16) float r[4]; + _mm_store_ps(r, res); + float sum = r[0] + r[1] + r[2] + r[3]; + + while (length) { + sum += std::abs(*lhs - *rhs); + ++lhs; + ++rhs; + --length; + } + + return sum; +} + +Y_FORCE_INLINE double L1Distance(const double* lhs, const double* rhs, int length) { + __m128d res = _mm_setzero_pd(); + __m128d absMask = _mm_castsi128_pd(_mm_set_epi32(0x7fffffff, 0xffffffff, 0x7fffffff, 0xffffffff)); + + while (length >= 2) { + __m128d a = _mm_loadu_pd(lhs); + __m128d b = _mm_loadu_pd(rhs); + __m128d d = _mm_sub_pd(a, b); + res = _mm_add_pd(_mm_and_pd(d, absMask), res); + rhs += 2; + lhs += 2; + length -= 2; + } + + alignas(16) double r[2]; + _mm_store_pd(r, res); + double sum = r[0] + r[1]; + + while (length) { + sum += std::abs(*lhs - *rhs); + ++lhs; + ++rhs; + --length; + } + + return sum; +} + +#else // ARCADIA_SSE + +inline ui32 L1Distance(const i8* lhs, const i8* rhs, int length) { + return NL1Distance::NPrivate::L1DistanceImpl(lhs, rhs, length); +} + +inline ui32 L1Distance(const ui8* lhs, const ui8* rhs, int length) { + return NL1Distance::NPrivate::L1DistanceImpl(lhs, rhs, length); +} + +inline ui32 L1DistanceUI4(const ui8* lhs, const ui8* rhs, int lengtInBytes) { + return NL1Distance::NPrivate::L1DistanceImplUI4(lhs, rhs, lengtInBytes); +} + +inline ui64 L1Distance(const ui32* lhs, const ui32* rhs, int length) { + return NL1Distance::NPrivate::L1DistanceImpl2(lhs, rhs, length); +} + +inline ui64 L1Distance(const i32* lhs, const i32* rhs, int length) { + return NL1Distance::NPrivate::L1DistanceImpl2(lhs, rhs, length); +} + +inline float L1Distance(const float* lhs, const float* rhs, int length) { + return NL1Distance::NPrivate::L1DistanceImpl4(lhs, rhs, length); +} + +inline double L1Distance(const double* lhs, const double* rhs, int length) { + return NL1Distance::NPrivate::L1DistanceImpl4(lhs, rhs, length); +} + +#endif // _sse_ + +/** + * L1Distance (sum(abs(l[i] - r[i]))) implementation without SSE. + */ +inline ui32 L1DistanceSlow(const i8* lhs, const i8* rhs, int length) { + return NL1Distance::NPrivate::L1DistanceImpl(lhs, rhs, length); +} + +inline ui32 L1DistanceSlow(const ui8* lhs, const ui8* rhs, int length) { + return NL1Distance::NPrivate::L1DistanceImpl(lhs, rhs, length); +} + +inline ui32 L1DistanceUI4Slow(const ui8* lhs, const ui8* rhs, int lengtInBytes) { + return NL1Distance::NPrivate::L1DistanceImplUI4(lhs, rhs, lengtInBytes); +} + +inline ui64 L1DistanceSlow(const ui32* lhs, const ui32* rhs, int length) { + return NL1Distance::NPrivate::L1DistanceImpl2(lhs, rhs, length); +} + +inline ui64 L1DistanceSlow(const i32* lhs, const i32* rhs, int length) { + return NL1Distance::NPrivate::L1DistanceImpl2(lhs, rhs, length); +} + +inline float L1DistanceSlow(const float* lhs, const float* rhs, int length) { + return NL1Distance::NPrivate::L1DistanceImpl4(lhs, rhs, length); +} + +inline double L1DistanceSlow(const double* lhs, const double* rhs, int length) { + return NL1Distance::NPrivate::L1DistanceImpl4(lhs, rhs, length); +} + +namespace NL1Distance { + // Simpler wrapper allowing to use this functions as template argument. + template + struct TL1Distance { + using TResult = decltype(L1Distance(static_cast(nullptr), static_cast(nullptr), 0)); + + inline TResult operator()(const T* a, const T* b, int length) const { + return L1Distance(a, b, length); + } + }; + + struct TL1DistanceUI4 { + using TResult = ui32; + + inline TResult operator()(const ui8* a, const ui8* b, int lengtInBytes) const { + return L1DistanceUI4(a, b, lengtInBytes); + } + }; +} diff --git a/library/cpp/l1_distance/ya.make b/library/cpp/l1_distance/ya.make new file mode 100644 index 000000000000..9345cb99af80 --- /dev/null +++ b/library/cpp/l1_distance/ya.make @@ -0,0 +1,11 @@ +LIBRARY() + +SRCS( + l1_distance.h +) + +PEERDIR( + library/cpp/sse +) + +END() diff --git a/library/cpp/l2_distance/README.md b/library/cpp/l2_distance/README.md new file mode 100644 index 000000000000..e6d3b7ad4178 --- /dev/null +++ b/library/cpp/l2_distance/README.md @@ -0,0 +1,15 @@ +Библиотека для вычисления расстояния между векторами. +===================================================== + +Данная библиотека содержит две функции L2Distance и L2SqrDistance. Первая вычисляет L2 расстояние между векторами +разных типов, а вторая его квадрат. В отличии от наивной реализации, библиотека использует SSE и работает существенно +быстрее. Для сравнения можно посмотреть результаты бенчмарка. + +Типичное использование - замена кусков кода вроде: +``` +for (int i = 0; i < len; i++) + dist += (a[i] - b[i]) * (a[i] - b[i]); +``` +на существенно более эффективный вызов ```L2SqrDistance(a, b, len)```. + +Работает для типов i8, ui8, i32, ui32, float, double. diff --git a/library/cpp/l2_distance/l2_distance.cpp b/library/cpp/l2_distance/l2_distance.cpp new file mode 100644 index 000000000000..2266e10aaaad --- /dev/null +++ b/library/cpp/l2_distance/l2_distance.cpp @@ -0,0 +1,376 @@ +#include "l2_distance.h" + +#include + +#include + +#include + +template +inline Result SqrDelta(Number a, Number b) { + Result diff = a < b ? b - a : a - b; + return diff * diff; +} + +template +inline Result L2SqrDistanceImpl(const Number* a, const Number* b, int length) { + Result res = 0; + + for (int i = 0; i < length; i++) { + res += SqrDelta(a[i], b[i]); + } + + return res; +} + +template +inline Result L2SqrDistanceImpl2(const Number* a, const Number* b, int length) { + Result s0 = 0; + Result s1 = 0; + + while (length >= 2) { + s0 += SqrDelta(a[0], b[0]); + s1 += SqrDelta(a[1], b[1]); + a += 2; + b += 2; + length -= 2; + } + + while (length--) + s0 += SqrDelta(*a++, *b++); + + return s0 + s1; +} + +template +inline Result L2SqrDistanceImpl4(const Number* a, const Number* b, int length) { + Result s0 = 0; + Result s1 = 0; + Result s2 = 0; + Result s3 = 0; + + while (length >= 4) { + s0 += SqrDelta(a[0], b[0]); + s1 += SqrDelta(a[1], b[1]); + s2 += SqrDelta(a[2], b[2]); + s3 += SqrDelta(a[3], b[3]); + a += 4; + b += 4; + length -= 4; + } + + while (length--) + s0 += SqrDelta(*a++, *b++); + + return s0 + s1 + s2 + s3; +} + +inline ui32 L2SqrDistanceImplUI4(const ui8* a, const ui8* b, int length) { + ui32 res = 0; + for (int i = 0; i < length; i++) { + res += SqrDelta(a[i] & 0x0f, b[i] & 0x0f); + res += SqrDelta(a[i] & 0xf0, b[i] & 0xf0) >> 8; + } + return res; +} + + +#ifdef ARCADIA_SSE +namespace NL2Distance { + static const __m128i MASK_UI4_1 = _mm_set_epi8(0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f); + static const __m128i MASK_UI4_2 = _mm_set_epi8(0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0); +} +ui32 L2SqrDistance(const i8* lhs, const i8* rhs, int length) { + const __m128i zero = _mm_setzero_si128(); + __m128i resVec = zero; + + while (length >= 16) { + __m128i vec = _mm_subs_epi8(_mm_loadu_si128((const __m128i*)lhs), _mm_loadu_si128((const __m128i*)rhs)); + +#ifdef _sse4_1_ + __m128i lo = _mm_cvtepi8_epi16(vec); + __m128i hi = _mm_cvtepi8_epi16(_mm_alignr_epi8(vec, vec, 8)); +#else + __m128i lo = _mm_srai_epi16(_mm_unpacklo_epi8(zero, vec), 8); + __m128i hi = _mm_srai_epi16(_mm_unpackhi_epi8(zero, vec), 8); +#endif + + resVec = _mm_add_epi32(resVec, + _mm_add_epi32(_mm_madd_epi16(lo, lo), _mm_madd_epi16(hi, hi))); + + lhs += 16; + rhs += 16; + length -= 16; + } + + alignas(16) ui32 res[4]; + _mm_store_si128((__m128i*)res, resVec); + ui32 sum = res[0] + res[1] + res[2] + res[3]; + for (int i = 0; i < length; ++i) { + sum += Sqr(static_cast(lhs[i]) - static_cast(rhs[i])); + } + + return sum; +} + +ui32 L2SqrDistance(const ui8* lhs, const ui8* rhs, int length) { + const __m128i zero = _mm_setzero_si128(); + __m128i resVec = zero; + + while (length >= 16) { + __m128i lVec = _mm_loadu_si128((const __m128i*)lhs); + __m128i rVec = _mm_loadu_si128((const __m128i*)rhs); + + // We will think about this vectors as about i16. + __m128i lo = _mm_sub_epi16(_mm_unpacklo_epi8(lVec, zero), _mm_unpacklo_epi8(rVec, zero)); + __m128i hi = _mm_sub_epi16(_mm_unpackhi_epi8(lVec, zero), _mm_unpackhi_epi8(rVec, zero)); + + resVec = _mm_add_epi32(resVec, + _mm_add_epi32(_mm_madd_epi16(lo, lo), _mm_madd_epi16(hi, hi))); + + lhs += 16; + rhs += 16; + length -= 16; + } + + alignas(16) ui32 res[4]; + _mm_store_si128((__m128i*)res, resVec); + ui32 sum = res[0] + res[1] + res[2] + res[3]; + for (int i = 0; i < length; ++i) { + sum += Sqr(static_cast(lhs[i]) - static_cast(rhs[i])); + } + + return sum; +} + +float L2SqrDistance(const float* lhs, const float* rhs, int length) { + __m128 sum = _mm_setzero_ps(); + + while (length >= 4) { + __m128 a = _mm_loadu_ps(lhs); + __m128 b = _mm_loadu_ps(rhs); + __m128 delta = _mm_sub_ps(a, b); + sum = _mm_add_ps(sum, _mm_mul_ps(delta, delta)); + length -= 4; + rhs += 4; + lhs += 4; + } + + alignas(16) float res[4]; + _mm_store_ps(res, sum); + + while (length--) + res[0] += Sqr(*rhs++ - *lhs++); + + return res[0] + res[1] + res[2] + res[3]; +} + +double L2SqrDistance(const double* lhs, const double* rhs, int length) { + __m128d sum = _mm_setzero_pd(); + + while (length >= 2) { + __m128d a = _mm_loadu_pd(lhs); + __m128d b = _mm_loadu_pd(rhs); + __m128d delta = _mm_sub_pd(a, b); + sum = _mm_add_pd(sum, _mm_mul_pd(delta, delta)); + length -= 2; + rhs += 2; + lhs += 2; + } + + alignas(16) double res[2]; + _mm_store_pd(res, sum); + + while (length--) + res[0] += Sqr(*rhs++ - *lhs++); + + return res[0] + res[1]; +} + +ui64 L2SqrDistance(const i32* lhs, const i32* rhs, int length) { + __m128i zero = _mm_setzero_si128(); + __m128i res = zero; + + while (length >= 4) { + __m128i a = _mm_loadu_si128((const __m128i*)lhs); + __m128i b = _mm_loadu_si128((const __m128i*)rhs); + +#ifdef _sse4_1_ + // In SSE4.1 si32*si32->si64 is available, so we may do just (a-b)*(a-b) not caring about (a-b) sign + a = _mm_sub_epi32(a, b); + res = _mm_add_epi64(_mm_mul_epi32(a, a), res); + a = _mm_alignr_epi8(a, a, 4); + res = _mm_add_epi64(_mm_mul_epi32(a, a), res); +#else + __m128i mask = _mm_cmpgt_epi32(a, b); // mask = a > b? 0xffffffff: 0; + __m128i a2 = _mm_sub_epi32(_mm_and_si128(mask, a), _mm_and_si128(mask, b)); // a2 = (a & mask) - (b & mask) (for a > b) + b = _mm_sub_epi32(_mm_andnot_si128(mask, b), _mm_andnot_si128(mask, a)); // b = (b & ~mask) - (a & ~mask) (for b > a) + a = _mm_or_si128(a2, b); // a = abs(a - b) + a2 = _mm_unpackhi_epi32(a, zero); + res = _mm_add_epi64(_mm_mul_epu32(a2, a2), res); + a2 = _mm_unpacklo_epi32(a, zero); + res = _mm_add_epi64(_mm_mul_epu32(a2, a2), res); +#endif + + rhs += 4; + lhs += 4; + length -= 4; + } + + alignas(16) ui64 r[2]; + _mm_store_si128((__m128i*)r, res); + ui64 sum = r[0] + r[1]; + + while (length) { + sum += SqrDelta(lhs[0], rhs[0]); + ++lhs; + ++rhs; + --length; + } + + return sum; +} + +ui64 L2SqrDistance(const ui32* lhs, const ui32* rhs, int length) { + __m128i zero = _mm_setzero_si128(); + __m128i shift = _mm_set1_epi32(0x80000000); + __m128i res = zero; + + while (length >= 4) { + __m128i a = _mm_add_epi32(_mm_loadu_si128((const __m128i*)lhs), shift); + __m128i b = _mm_add_epi32(_mm_loadu_si128((const __m128i*)rhs), shift); + __m128i mask = _mm_cmpgt_epi32(a, b); // mask = a > b? 0xffffffff: 0; + __m128i a2 = _mm_sub_epi32(_mm_and_si128(mask, a), _mm_and_si128(mask, b)); // a2 = (a & mask) - (b & mask) (for a > b) + b = _mm_sub_epi32(_mm_andnot_si128(mask, b), _mm_andnot_si128(mask, a)); // b = (b & ~mask) - (a & ~mask) (for b > a) + a = _mm_or_si128(a2, b); // a = abs(a - b) + +#ifdef _sse4_1_ + res = _mm_add_epi64(_mm_mul_epu32(a, a), res); + a = _mm_alignr_epi8(a, a, 4); + res = _mm_add_epi64(_mm_mul_epu32(a, a), res); +#else + a2 = _mm_unpackhi_epi32(a, zero); + res = _mm_add_epi64(_mm_mul_epu32(a2, a2), res); + a2 = _mm_unpacklo_epi32(a, zero); + res = _mm_add_epi64(_mm_mul_epu32(a2, a2), res); +#endif + + rhs += 4; + lhs += 4; + length -= 4; + } + + alignas(16) ui64 r[2]; + _mm_store_si128((__m128i*)r, res); + ui64 sum = r[0] + r[1]; + + while (length) { + sum += SqrDelta(lhs[0], rhs[0]); + ++lhs; + ++rhs; + --length; + } + + return sum; +} + +ui32 L2SqrDistanceUI4(const ui8* lhs, const ui8* rhs, int length) { + const __m128i zero = _mm_setzero_si128(); + __m128i resVec1 = zero; + __m128i resVec2 = zero; + + while (length >= 16) { + __m128i lVec = _mm_loadu_si128((const __m128i*)lhs); + __m128i rVec = _mm_loadu_si128((const __m128i*)rhs); + + __m128i lVec1 = _mm_and_si128(lVec, NL2Distance::MASK_UI4_1); + __m128i lVec2 = _mm_and_si128(lVec, NL2Distance::MASK_UI4_2); + __m128i rVec1 = _mm_and_si128(rVec, NL2Distance::MASK_UI4_1); + __m128i rVec2 = _mm_and_si128(rVec, NL2Distance::MASK_UI4_2); + // We will think about this vectors as about i16. + __m128i lo1 = _mm_sub_epi16(_mm_unpacklo_epi8(lVec1, zero), _mm_unpacklo_epi8(rVec1, zero)); + __m128i hi1 = _mm_sub_epi16(_mm_unpackhi_epi8(lVec1, zero), _mm_unpackhi_epi8(rVec1, zero)); + __m128i lo2 = _mm_sub_epi16(_mm_unpacklo_epi8(lVec2, zero), _mm_unpacklo_epi8(rVec2, zero)); + __m128i hi2 = _mm_sub_epi16(_mm_unpackhi_epi8(lVec2, zero), _mm_unpackhi_epi8(rVec2, zero)); + + resVec1 = _mm_add_epi32(resVec1, _mm_add_epi32(_mm_madd_epi16(lo1, lo1), _mm_madd_epi16(hi1, hi1))); + resVec2 = _mm_add_epi32(resVec2, _mm_add_epi32(_mm_madd_epi16(lo2, lo2), _mm_madd_epi16(hi2, hi2))); + + lhs += 16; + rhs += 16; + length -= 16; + } + + alignas(16) ui32 res[4]; + _mm_store_si128((__m128i*)res, resVec1); + ui32 sum = res[0] + res[1] + res[2] + res[3]; + _mm_store_si128((__m128i*)res, resVec2); + sum += (res[0] + res[1] + res[2] + res[3]) >> 8; + for (int i = 0; i < length; ++i) { + sum += Sqr(static_cast(lhs[i] & 0x0f) - static_cast(rhs[i] & 0x0f)); + sum += Sqr(static_cast(lhs[i] & 0xf0) - static_cast(rhs[i] & 0xf0)) >> 8; + } + return sum; +} + +#else /* !ARCADIA_SSE */ + +ui32 L2SqrDistance(const i8* lhs, const i8* rhs, int length) { + return L2SqrDistanceImpl(lhs, rhs, length); +} + +ui32 L2SqrDistance(const ui8* lhs, const ui8* rhs, int length) { + return L2SqrDistanceImpl(lhs, rhs, length); +} + +ui64 L2SqrDistance(const i32* a, const i32* b, int length) { + return L2SqrDistanceImpl2(a, b, length); +} + +ui64 L2SqrDistance(const ui32* a, const ui32* b, int length) { + return L2SqrDistanceImpl2(a, b, length); +} + +float L2SqrDistance(const float* a, const float* b, int length) { + return L2SqrDistanceImpl4(a, b, length); +} + +double L2SqrDistance(const double* a, const double* b, int length) { + return L2SqrDistanceImpl2(a, b, length); +} + +ui32 L2SqrDistanceUI4(const ui8* lhs, const ui8* rhs, int length) { + return L2SqrDistanceImplUI4(lhs, rhs, length); +} + +#endif /* ARCADIA_SSE */ + +ui32 L2SqrDistanceSlow(const i8* lhs, const i8* rhs, int length) { + return L2SqrDistanceImpl(lhs, rhs, length); +} + +ui32 L2SqrDistanceSlow(const ui8* lhs, const ui8* rhs, int length) { + return L2SqrDistanceImpl(lhs, rhs, length); +} + +ui64 L2SqrDistanceSlow(const i32* a, const i32* b, int length) { + return L2SqrDistanceImpl2(a, b, length); +} + +ui64 L2SqrDistanceSlow(const ui32* a, const ui32* b, int length) { + return L2SqrDistanceImpl2(a, b, length); +} + +float L2SqrDistanceSlow(const float* a, const float* b, int length) { + return L2SqrDistanceImpl4(a, b, length); +} + +double L2SqrDistanceSlow(const double* a, const double* b, int length) { + return L2SqrDistanceImpl2(a, b, length); +} + +ui32 L2SqrDistanceUI4Slow(const ui8* lhs, const ui8* rhs, int length) { + return L2SqrDistanceImplUI4(lhs, rhs, length); +} diff --git a/library/cpp/l2_distance/l2_distance.h b/library/cpp/l2_distance/l2_distance.h new file mode 100644 index 000000000000..0106be70a5cc --- /dev/null +++ b/library/cpp/l2_distance/l2_distance.h @@ -0,0 +1,140 @@ +#pragma once + +#include +#include +#include + +namespace NPrivate { + namespace NL2Distance { + template + inline Number L2DistanceSqrt(Number a) { + return std::sqrt(a); + } + + template <> + inline ui64 L2DistanceSqrt(ui64 a) { + // https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Binary_numeral_system_.28base_2.29 + ui64 res = 0; + ui64 bit = static_cast(1) << (sizeof(ui64) * 8 - 2); + + while (bit > a) + bit >>= 2; + + while (bit != 0) { + if (a >= res + bit) { + a -= (res + bit); + res = (res >> 1) + bit; + } else { + res >>= 1; + } + bit >>= 2; + } + + return res; + } + + template <> + inline ui32 L2DistanceSqrt(ui32 a) { + return L2DistanceSqrt(a); + } + + // Special class to match argument type and result type. + template + class TMatchArgumentResult { + public: + using TResult = Arg; + }; + + template <> + class TMatchArgumentResult { + public: + using TResult = ui32; + }; + + template <> + class TMatchArgumentResult { + public: + using TResult = ui32; + }; + + template <> + class TMatchArgumentResult { + public: + using TResult = ui64; + }; + + template <> + class TMatchArgumentResult { + public: + using TResult = ui64; + }; + + } + +} + +/** + * sqr(l2_distance) = sum((a[i]-b[i])^2) + * If target system does not support SSE2 Slow functions are used automatically. + */ +ui32 L2SqrDistance(const i8* a, const i8* b, int cnt); +ui32 L2SqrDistance(const ui8* a, const ui8* b, int cnt); +ui64 L2SqrDistance(const i32* a, const i32* b, int length); +ui64 L2SqrDistance(const ui32* a, const ui32* b, int length); +float L2SqrDistance(const float* a, const float* b, int length); +double L2SqrDistance(const double* a, const double* b, int length); +ui32 L2SqrDistanceUI4(const ui8* a, const ui8* b, int cnt); + +ui32 L2SqrDistanceSlow(const i8* a, const i8* b, int cnt); +ui32 L2SqrDistanceSlow(const ui8* a, const ui8* b, int cnt); +ui64 L2SqrDistanceSlow(const i32* a, const i32* b, int length); +ui64 L2SqrDistanceSlow(const ui32* a, const ui32* b, int length); +float L2SqrDistanceSlow(const float* a, const float* b, int length); +double L2SqrDistanceSlow(const double* a, const double* b, int length); +ui32 L2SqrDistanceUI4Slow(const ui8* a, const ui8* b, int cnt); + +/** + * L2 distance = sqrt(sum((a[i]-b[i])^2)) + */ +template ::TResult> +inline Result L2Distance(const Number* a, const Number* b, int cnt) { + return NPrivate::NL2Distance::L2DistanceSqrt(L2SqrDistance(a, b, cnt)); +} + +template ::TResult> +inline Result L2DistanceSlow(const Number* a, const Number* b, int cnt) { + return NPrivate::NL2Distance::L2DistanceSqrt(L2SqrDistanceSlow(a, b, cnt)); +} + +namespace NL2Distance { + // You can use this structures as template function arguments. + template + struct TL2Distance { + using TResult = decltype(L2Distance(static_cast(nullptr), static_cast(nullptr), 0)); + inline TResult operator()(const T* a, const T* b, int length) const { + return L2Distance(a, b, length); + } + }; + + struct TL2DistanceUI4 { + using TResult = ui32; + inline TResult operator()(const ui8* a, const ui8* b, int lengtInBytes) const { + return NPrivate::NL2Distance::L2DistanceSqrt(L2SqrDistanceUI4(a, b, lengtInBytes)); + } + }; + + template + struct TL2SqrDistance { + using TResult = decltype(L2SqrDistance(static_cast(nullptr), static_cast(nullptr), 0)); + inline TResult operator()(const T* a, const T* b, int length) const { + return L2SqrDistance(a, b, length); + } + }; + + struct TL2SqrDistanceUI4 { + using TResult = ui32; + inline TResult operator()(const ui8* a, const ui8* b, int lengtInBytes) const { + return L2SqrDistanceUI4(a, b, lengtInBytes); + } + }; +} diff --git a/library/cpp/l2_distance/ya.make b/library/cpp/l2_distance/ya.make new file mode 100644 index 000000000000..919e77ae4a9a --- /dev/null +++ b/library/cpp/l2_distance/ya.make @@ -0,0 +1,12 @@ +LIBRARY() + +SRCS( + l2_distance.h + l2_distance.cpp +) + +PEERDIR( + library/cpp/sse +) + +END() diff --git a/library/cpp/logger/CMakeLists.darwin-arm64.txt b/library/cpp/logger/CMakeLists.darwin-arm64.txt index 92cf5b5d93af..757396fc7acc 100644 --- a/library/cpp/logger/CMakeLists.darwin-arm64.txt +++ b/library/cpp/logger/CMakeLists.darwin-arm64.txt @@ -23,6 +23,10 @@ target_link_libraries(library-cpp-logger PUBLIC cpp-deprecated-atomic ) target_sources(library-cpp-logger PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/logger/all.h + ${CMAKE_SOURCE_DIR}/library/cpp/logger/priority.h + ${CMAKE_SOURCE_DIR}/library/cpp/logger/record.h + ${CMAKE_SOURCE_DIR}/library/cpp/logger/reopen.h ${CMAKE_SOURCE_DIR}/library/cpp/logger/backend.cpp ${CMAKE_SOURCE_DIR}/library/cpp/logger/backend_creator.cpp ${CMAKE_SOURCE_DIR}/library/cpp/logger/composite.cpp diff --git a/library/cpp/logger/CMakeLists.darwin-x86_64.txt b/library/cpp/logger/CMakeLists.darwin-x86_64.txt index 92cf5b5d93af..757396fc7acc 100644 --- a/library/cpp/logger/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/logger/CMakeLists.darwin-x86_64.txt @@ -23,6 +23,10 @@ target_link_libraries(library-cpp-logger PUBLIC cpp-deprecated-atomic ) target_sources(library-cpp-logger PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/logger/all.h + ${CMAKE_SOURCE_DIR}/library/cpp/logger/priority.h + ${CMAKE_SOURCE_DIR}/library/cpp/logger/record.h + ${CMAKE_SOURCE_DIR}/library/cpp/logger/reopen.h ${CMAKE_SOURCE_DIR}/library/cpp/logger/backend.cpp ${CMAKE_SOURCE_DIR}/library/cpp/logger/backend_creator.cpp ${CMAKE_SOURCE_DIR}/library/cpp/logger/composite.cpp diff --git a/library/cpp/logger/CMakeLists.linux-aarch64.txt b/library/cpp/logger/CMakeLists.linux-aarch64.txt index 7656dd686183..7c30bc1d6e30 100644 --- a/library/cpp/logger/CMakeLists.linux-aarch64.txt +++ b/library/cpp/logger/CMakeLists.linux-aarch64.txt @@ -24,6 +24,10 @@ target_link_libraries(library-cpp-logger PUBLIC cpp-deprecated-atomic ) target_sources(library-cpp-logger PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/logger/all.h + ${CMAKE_SOURCE_DIR}/library/cpp/logger/priority.h + ${CMAKE_SOURCE_DIR}/library/cpp/logger/record.h + ${CMAKE_SOURCE_DIR}/library/cpp/logger/reopen.h ${CMAKE_SOURCE_DIR}/library/cpp/logger/backend.cpp ${CMAKE_SOURCE_DIR}/library/cpp/logger/backend_creator.cpp ${CMAKE_SOURCE_DIR}/library/cpp/logger/composite.cpp diff --git a/library/cpp/logger/CMakeLists.linux-x86_64.txt b/library/cpp/logger/CMakeLists.linux-x86_64.txt index 7656dd686183..7c30bc1d6e30 100644 --- a/library/cpp/logger/CMakeLists.linux-x86_64.txt +++ b/library/cpp/logger/CMakeLists.linux-x86_64.txt @@ -24,6 +24,10 @@ target_link_libraries(library-cpp-logger PUBLIC cpp-deprecated-atomic ) target_sources(library-cpp-logger PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/logger/all.h + ${CMAKE_SOURCE_DIR}/library/cpp/logger/priority.h + ${CMAKE_SOURCE_DIR}/library/cpp/logger/record.h + ${CMAKE_SOURCE_DIR}/library/cpp/logger/reopen.h ${CMAKE_SOURCE_DIR}/library/cpp/logger/backend.cpp ${CMAKE_SOURCE_DIR}/library/cpp/logger/backend_creator.cpp ${CMAKE_SOURCE_DIR}/library/cpp/logger/composite.cpp diff --git a/library/cpp/logger/CMakeLists.windows-x86_64.txt b/library/cpp/logger/CMakeLists.windows-x86_64.txt index 92cf5b5d93af..757396fc7acc 100644 --- a/library/cpp/logger/CMakeLists.windows-x86_64.txt +++ b/library/cpp/logger/CMakeLists.windows-x86_64.txt @@ -23,6 +23,10 @@ target_link_libraries(library-cpp-logger PUBLIC cpp-deprecated-atomic ) target_sources(library-cpp-logger PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/logger/all.h + ${CMAKE_SOURCE_DIR}/library/cpp/logger/priority.h + ${CMAKE_SOURCE_DIR}/library/cpp/logger/record.h + ${CMAKE_SOURCE_DIR}/library/cpp/logger/reopen.h ${CMAKE_SOURCE_DIR}/library/cpp/logger/backend.cpp ${CMAKE_SOURCE_DIR}/library/cpp/logger/backend_creator.cpp ${CMAKE_SOURCE_DIR}/library/cpp/logger/composite.cpp diff --git a/library/cpp/lwtrace/protos/CMakeLists.darwin-arm64.txt b/library/cpp/lwtrace/protos/CMakeLists.darwin-arm64.txt index 9caa6f58bf42..8cc894531eb2 100644 --- a/library/cpp/lwtrace/protos/CMakeLists.darwin-arm64.txt +++ b/library/cpp/lwtrace/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(cpp-lwtrace-protos PUBLIC target_proto_messages(cpp-lwtrace-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/protos/lwtrace.proto ) +target_sources(cpp-lwtrace-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/lwtrace/protos/lwtrace.pb.h +) target_proto_addincls(cpp-lwtrace-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/lwtrace/protos/CMakeLists.darwin-x86_64.txt b/library/cpp/lwtrace/protos/CMakeLists.darwin-x86_64.txt index 9caa6f58bf42..8cc894531eb2 100644 --- a/library/cpp/lwtrace/protos/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/lwtrace/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(cpp-lwtrace-protos PUBLIC target_proto_messages(cpp-lwtrace-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/protos/lwtrace.proto ) +target_sources(cpp-lwtrace-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/lwtrace/protos/lwtrace.pb.h +) target_proto_addincls(cpp-lwtrace-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/lwtrace/protos/CMakeLists.linux-aarch64.txt b/library/cpp/lwtrace/protos/CMakeLists.linux-aarch64.txt index f9321305c17f..9c7d33c0a102 100644 --- a/library/cpp/lwtrace/protos/CMakeLists.linux-aarch64.txt +++ b/library/cpp/lwtrace/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(cpp-lwtrace-protos PUBLIC target_proto_messages(cpp-lwtrace-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/protos/lwtrace.proto ) +target_sources(cpp-lwtrace-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/lwtrace/protos/lwtrace.pb.h +) target_proto_addincls(cpp-lwtrace-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/lwtrace/protos/CMakeLists.linux-x86_64.txt b/library/cpp/lwtrace/protos/CMakeLists.linux-x86_64.txt index f9321305c17f..9c7d33c0a102 100644 --- a/library/cpp/lwtrace/protos/CMakeLists.linux-x86_64.txt +++ b/library/cpp/lwtrace/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(cpp-lwtrace-protos PUBLIC target_proto_messages(cpp-lwtrace-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/protos/lwtrace.proto ) +target_sources(cpp-lwtrace-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/lwtrace/protos/lwtrace.pb.h +) target_proto_addincls(cpp-lwtrace-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/lwtrace/protos/CMakeLists.windows-x86_64.txt b/library/cpp/lwtrace/protos/CMakeLists.windows-x86_64.txt index 9caa6f58bf42..8cc894531eb2 100644 --- a/library/cpp/lwtrace/protos/CMakeLists.windows-x86_64.txt +++ b/library/cpp/lwtrace/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(cpp-lwtrace-protos PUBLIC target_proto_messages(cpp-lwtrace-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/lwtrace/protos/lwtrace.proto ) +target_sources(cpp-lwtrace-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/lwtrace/protos/lwtrace.pb.h +) target_proto_addincls(cpp-lwtrace-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/messagebus/CMakeLists.darwin-arm64.txt b/library/cpp/messagebus/CMakeLists.darwin-arm64.txt index af2b7a200835..06eb9f1e4c95 100644 --- a/library/cpp/messagebus/CMakeLists.darwin-arm64.txt +++ b/library/cpp/messagebus/CMakeLists.darwin-arm64.txt @@ -32,6 +32,12 @@ target_link_libraries(library-cpp-messagebus PUBLIC cpp-deprecated-atomic ) target_sources(library-cpp-messagebus PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/atomic_box.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/granup.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/test_sync.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/tokenquota.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/weak_ptr.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/ybus.h ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/acceptor.cpp ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/acceptor_status.cpp ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/connection.cpp diff --git a/library/cpp/messagebus/CMakeLists.darwin-x86_64.txt b/library/cpp/messagebus/CMakeLists.darwin-x86_64.txt index af2b7a200835..06eb9f1e4c95 100644 --- a/library/cpp/messagebus/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/messagebus/CMakeLists.darwin-x86_64.txt @@ -32,6 +32,12 @@ target_link_libraries(library-cpp-messagebus PUBLIC cpp-deprecated-atomic ) target_sources(library-cpp-messagebus PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/atomic_box.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/granup.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/test_sync.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/tokenquota.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/weak_ptr.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/ybus.h ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/acceptor.cpp ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/acceptor_status.cpp ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/connection.cpp diff --git a/library/cpp/messagebus/CMakeLists.linux-aarch64.txt b/library/cpp/messagebus/CMakeLists.linux-aarch64.txt index e27549d923a8..082f332fbc11 100644 --- a/library/cpp/messagebus/CMakeLists.linux-aarch64.txt +++ b/library/cpp/messagebus/CMakeLists.linux-aarch64.txt @@ -33,6 +33,12 @@ target_link_libraries(library-cpp-messagebus PUBLIC cpp-deprecated-atomic ) target_sources(library-cpp-messagebus PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/atomic_box.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/granup.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/test_sync.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/tokenquota.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/weak_ptr.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/ybus.h ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/acceptor.cpp ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/acceptor_status.cpp ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/connection.cpp diff --git a/library/cpp/messagebus/CMakeLists.linux-x86_64.txt b/library/cpp/messagebus/CMakeLists.linux-x86_64.txt index e27549d923a8..082f332fbc11 100644 --- a/library/cpp/messagebus/CMakeLists.linux-x86_64.txt +++ b/library/cpp/messagebus/CMakeLists.linux-x86_64.txt @@ -33,6 +33,12 @@ target_link_libraries(library-cpp-messagebus PUBLIC cpp-deprecated-atomic ) target_sources(library-cpp-messagebus PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/atomic_box.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/granup.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/test_sync.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/tokenquota.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/weak_ptr.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/ybus.h ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/acceptor.cpp ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/acceptor_status.cpp ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/connection.cpp diff --git a/library/cpp/messagebus/CMakeLists.windows-x86_64.txt b/library/cpp/messagebus/CMakeLists.windows-x86_64.txt index af2b7a200835..06eb9f1e4c95 100644 --- a/library/cpp/messagebus/CMakeLists.windows-x86_64.txt +++ b/library/cpp/messagebus/CMakeLists.windows-x86_64.txt @@ -32,6 +32,12 @@ target_link_libraries(library-cpp-messagebus PUBLIC cpp-deprecated-atomic ) target_sources(library-cpp-messagebus PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/atomic_box.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/granup.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/test_sync.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/tokenquota.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/misc/weak_ptr.h + ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/ybus.h ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/acceptor.cpp ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/acceptor_status.cpp ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/connection.cpp diff --git a/library/cpp/messagebus/monitoring/CMakeLists.darwin-arm64.txt b/library/cpp/messagebus/monitoring/CMakeLists.darwin-arm64.txt index 0a5f1f85022a..eb89055ff017 100644 --- a/library/cpp/messagebus/monitoring/CMakeLists.darwin-arm64.txt +++ b/library/cpp/messagebus/monitoring/CMakeLists.darwin-arm64.txt @@ -29,6 +29,9 @@ target_link_libraries(cpp-messagebus-monitoring PUBLIC target_proto_messages(cpp-messagebus-monitoring PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/monitoring/mon_proto.proto ) +target_sources(cpp-messagebus-monitoring PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/messagebus/monitoring/mon_proto.pb.h +) target_proto_addincls(cpp-messagebus-monitoring ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/messagebus/monitoring/CMakeLists.darwin-x86_64.txt b/library/cpp/messagebus/monitoring/CMakeLists.darwin-x86_64.txt index 0a5f1f85022a..eb89055ff017 100644 --- a/library/cpp/messagebus/monitoring/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/messagebus/monitoring/CMakeLists.darwin-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(cpp-messagebus-monitoring PUBLIC target_proto_messages(cpp-messagebus-monitoring PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/monitoring/mon_proto.proto ) +target_sources(cpp-messagebus-monitoring PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/messagebus/monitoring/mon_proto.pb.h +) target_proto_addincls(cpp-messagebus-monitoring ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/messagebus/monitoring/CMakeLists.linux-aarch64.txt b/library/cpp/messagebus/monitoring/CMakeLists.linux-aarch64.txt index d7ac9c9c03f5..33f54b66f323 100644 --- a/library/cpp/messagebus/monitoring/CMakeLists.linux-aarch64.txt +++ b/library/cpp/messagebus/monitoring/CMakeLists.linux-aarch64.txt @@ -30,6 +30,9 @@ target_link_libraries(cpp-messagebus-monitoring PUBLIC target_proto_messages(cpp-messagebus-monitoring PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/monitoring/mon_proto.proto ) +target_sources(cpp-messagebus-monitoring PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/messagebus/monitoring/mon_proto.pb.h +) target_proto_addincls(cpp-messagebus-monitoring ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/messagebus/monitoring/CMakeLists.linux-x86_64.txt b/library/cpp/messagebus/monitoring/CMakeLists.linux-x86_64.txt index d7ac9c9c03f5..33f54b66f323 100644 --- a/library/cpp/messagebus/monitoring/CMakeLists.linux-x86_64.txt +++ b/library/cpp/messagebus/monitoring/CMakeLists.linux-x86_64.txt @@ -30,6 +30,9 @@ target_link_libraries(cpp-messagebus-monitoring PUBLIC target_proto_messages(cpp-messagebus-monitoring PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/monitoring/mon_proto.proto ) +target_sources(cpp-messagebus-monitoring PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/messagebus/monitoring/mon_proto.pb.h +) target_proto_addincls(cpp-messagebus-monitoring ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/messagebus/monitoring/CMakeLists.windows-x86_64.txt b/library/cpp/messagebus/monitoring/CMakeLists.windows-x86_64.txt index 0a5f1f85022a..eb89055ff017 100644 --- a/library/cpp/messagebus/monitoring/CMakeLists.windows-x86_64.txt +++ b/library/cpp/messagebus/monitoring/CMakeLists.windows-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(cpp-messagebus-monitoring PUBLIC target_proto_messages(cpp-messagebus-monitoring PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/messagebus/monitoring/mon_proto.proto ) +target_sources(cpp-messagebus-monitoring PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/messagebus/monitoring/mon_proto.pb.h +) target_proto_addincls(cpp-messagebus-monitoring ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/monlib/deprecated/json/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/deprecated/json/CMakeLists.darwin-arm64.txt index 6bcb22f8ccb4..a018e8be700b 100644 --- a/library/cpp/monlib/deprecated/json/CMakeLists.darwin-arm64.txt +++ b/library/cpp/monlib/deprecated/json/CMakeLists.darwin-arm64.txt @@ -14,5 +14,6 @@ target_link_libraries(monlib-deprecated-json PUBLIC library-cpp-json ) target_sources(monlib-deprecated-json PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/deprecated/json/writer.h ${CMAKE_SOURCE_DIR}/library/cpp/monlib/deprecated/json/writer.cpp ) diff --git a/library/cpp/monlib/deprecated/json/CMakeLists.darwin-x86_64.txt b/library/cpp/monlib/deprecated/json/CMakeLists.darwin-x86_64.txt index 6bcb22f8ccb4..a018e8be700b 100644 --- a/library/cpp/monlib/deprecated/json/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/monlib/deprecated/json/CMakeLists.darwin-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(monlib-deprecated-json PUBLIC library-cpp-json ) target_sources(monlib-deprecated-json PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/deprecated/json/writer.h ${CMAKE_SOURCE_DIR}/library/cpp/monlib/deprecated/json/writer.cpp ) diff --git a/library/cpp/monlib/deprecated/json/CMakeLists.linux-aarch64.txt b/library/cpp/monlib/deprecated/json/CMakeLists.linux-aarch64.txt index c7cb3720d3e9..7a67eceaad20 100644 --- a/library/cpp/monlib/deprecated/json/CMakeLists.linux-aarch64.txt +++ b/library/cpp/monlib/deprecated/json/CMakeLists.linux-aarch64.txt @@ -15,5 +15,6 @@ target_link_libraries(monlib-deprecated-json PUBLIC library-cpp-json ) target_sources(monlib-deprecated-json PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/deprecated/json/writer.h ${CMAKE_SOURCE_DIR}/library/cpp/monlib/deprecated/json/writer.cpp ) diff --git a/library/cpp/monlib/deprecated/json/CMakeLists.linux-x86_64.txt b/library/cpp/monlib/deprecated/json/CMakeLists.linux-x86_64.txt index c7cb3720d3e9..7a67eceaad20 100644 --- a/library/cpp/monlib/deprecated/json/CMakeLists.linux-x86_64.txt +++ b/library/cpp/monlib/deprecated/json/CMakeLists.linux-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(monlib-deprecated-json PUBLIC library-cpp-json ) target_sources(monlib-deprecated-json PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/deprecated/json/writer.h ${CMAKE_SOURCE_DIR}/library/cpp/monlib/deprecated/json/writer.cpp ) diff --git a/library/cpp/monlib/deprecated/json/CMakeLists.windows-x86_64.txt b/library/cpp/monlib/deprecated/json/CMakeLists.windows-x86_64.txt index 6bcb22f8ccb4..a018e8be700b 100644 --- a/library/cpp/monlib/deprecated/json/CMakeLists.windows-x86_64.txt +++ b/library/cpp/monlib/deprecated/json/CMakeLists.windows-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(monlib-deprecated-json PUBLIC library-cpp-json ) target_sources(monlib-deprecated-json PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/deprecated/json/writer.h ${CMAKE_SOURCE_DIR}/library/cpp/monlib/deprecated/json/writer.cpp ) diff --git a/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.darwin-arm64.txt index fa99d9dc2f56..a34ae332ba99 100644 --- a/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.darwin-arm64.txt +++ b/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.darwin-arm64.txt @@ -14,3 +14,7 @@ target_link_libraries(monlib-dynamic_counters-percentile INTERFACE cpp-containers-stack_vector cpp-monlib-dynamic_counters ) +target_sources(monlib-dynamic_counters-percentile INTERFACE + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/dynamic_counters/percentile/percentile.h + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/dynamic_counters/percentile/percentile_lg.h +) diff --git a/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.darwin-x86_64.txt b/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.darwin-x86_64.txt index fa99d9dc2f56..a34ae332ba99 100644 --- a/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.darwin-x86_64.txt @@ -14,3 +14,7 @@ target_link_libraries(monlib-dynamic_counters-percentile INTERFACE cpp-containers-stack_vector cpp-monlib-dynamic_counters ) +target_sources(monlib-dynamic_counters-percentile INTERFACE + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/dynamic_counters/percentile/percentile.h + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/dynamic_counters/percentile/percentile_lg.h +) diff --git a/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.linux-aarch64.txt b/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.linux-aarch64.txt index b6a771543e55..b724f85cd96b 100644 --- a/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.linux-aarch64.txt +++ b/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.linux-aarch64.txt @@ -15,3 +15,7 @@ target_link_libraries(monlib-dynamic_counters-percentile INTERFACE cpp-containers-stack_vector cpp-monlib-dynamic_counters ) +target_sources(monlib-dynamic_counters-percentile INTERFACE + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/dynamic_counters/percentile/percentile.h + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/dynamic_counters/percentile/percentile_lg.h +) diff --git a/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.linux-x86_64.txt b/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.linux-x86_64.txt index b6a771543e55..b724f85cd96b 100644 --- a/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.linux-x86_64.txt +++ b/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.linux-x86_64.txt @@ -15,3 +15,7 @@ target_link_libraries(monlib-dynamic_counters-percentile INTERFACE cpp-containers-stack_vector cpp-monlib-dynamic_counters ) +target_sources(monlib-dynamic_counters-percentile INTERFACE + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/dynamic_counters/percentile/percentile.h + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/dynamic_counters/percentile/percentile_lg.h +) diff --git a/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.windows-x86_64.txt b/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.windows-x86_64.txt index fa99d9dc2f56..a34ae332ba99 100644 --- a/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.windows-x86_64.txt +++ b/library/cpp/monlib/dynamic_counters/percentile/CMakeLists.windows-x86_64.txt @@ -14,3 +14,7 @@ target_link_libraries(monlib-dynamic_counters-percentile INTERFACE cpp-containers-stack_vector cpp-monlib-dynamic_counters ) +target_sources(monlib-dynamic_counters-percentile INTERFACE + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/dynamic_counters/percentile/percentile.h + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/dynamic_counters/percentile/percentile_lg.h +) diff --git a/library/cpp/monlib/encode/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/encode/CMakeLists.darwin-arm64.txt index a74b6d023d01..69cb06346346 100644 --- a/library/cpp/monlib/encode/CMakeLists.darwin-arm64.txt +++ b/library/cpp/monlib/encode/CMakeLists.darwin-arm64.txt @@ -27,6 +27,7 @@ target_link_libraries(cpp-monlib-encode PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-monlib-encode PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/monlib/encode/encoder_state_enum.h_serialized.h ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/encoder.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/encoder_state.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/format.cpp diff --git a/library/cpp/monlib/encode/CMakeLists.darwin-x86_64.txt b/library/cpp/monlib/encode/CMakeLists.darwin-x86_64.txt index a74b6d023d01..69cb06346346 100644 --- a/library/cpp/monlib/encode/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/monlib/encode/CMakeLists.darwin-x86_64.txt @@ -27,6 +27,7 @@ target_link_libraries(cpp-monlib-encode PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-monlib-encode PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/monlib/encode/encoder_state_enum.h_serialized.h ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/encoder.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/encoder_state.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/format.cpp diff --git a/library/cpp/monlib/encode/CMakeLists.linux-aarch64.txt b/library/cpp/monlib/encode/CMakeLists.linux-aarch64.txt index 6c319f9b6872..114b6bbf2054 100644 --- a/library/cpp/monlib/encode/CMakeLists.linux-aarch64.txt +++ b/library/cpp/monlib/encode/CMakeLists.linux-aarch64.txt @@ -28,6 +28,7 @@ target_link_libraries(cpp-monlib-encode PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-monlib-encode PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/monlib/encode/encoder_state_enum.h_serialized.h ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/encoder.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/encoder_state.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/format.cpp diff --git a/library/cpp/monlib/encode/CMakeLists.linux-x86_64.txt b/library/cpp/monlib/encode/CMakeLists.linux-x86_64.txt index 6c319f9b6872..114b6bbf2054 100644 --- a/library/cpp/monlib/encode/CMakeLists.linux-x86_64.txt +++ b/library/cpp/monlib/encode/CMakeLists.linux-x86_64.txt @@ -28,6 +28,7 @@ target_link_libraries(cpp-monlib-encode PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-monlib-encode PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/monlib/encode/encoder_state_enum.h_serialized.h ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/encoder.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/encoder_state.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/format.cpp diff --git a/library/cpp/monlib/encode/CMakeLists.windows-x86_64.txt b/library/cpp/monlib/encode/CMakeLists.windows-x86_64.txt index a74b6d023d01..69cb06346346 100644 --- a/library/cpp/monlib/encode/CMakeLists.windows-x86_64.txt +++ b/library/cpp/monlib/encode/CMakeLists.windows-x86_64.txt @@ -27,6 +27,7 @@ target_link_libraries(cpp-monlib-encode PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-monlib-encode PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/monlib/encode/encoder_state_enum.h_serialized.h ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/encoder.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/encoder_state.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/format.cpp diff --git a/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.darwin-arm64.txt index bce491e67e59..197c383a0fbd 100644 --- a/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.darwin-arm64.txt +++ b/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(encode-legacy_protobuf-protos PUBLIC target_proto_messages(encode-legacy_protobuf-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/legacy_protobuf/protos/metric_meta.proto ) +target_sources(encode-legacy_protobuf-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/monlib/encode/legacy_protobuf/protos/metric_meta.pb.h +) target_proto_addincls(encode-legacy_protobuf-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.darwin-x86_64.txt b/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.darwin-x86_64.txt index bce491e67e59..197c383a0fbd 100644 --- a/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(encode-legacy_protobuf-protos PUBLIC target_proto_messages(encode-legacy_protobuf-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/legacy_protobuf/protos/metric_meta.proto ) +target_sources(encode-legacy_protobuf-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/monlib/encode/legacy_protobuf/protos/metric_meta.pb.h +) target_proto_addincls(encode-legacy_protobuf-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.linux-aarch64.txt b/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.linux-aarch64.txt index a86da32e117c..c1b141733817 100644 --- a/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.linux-aarch64.txt +++ b/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(encode-legacy_protobuf-protos PUBLIC target_proto_messages(encode-legacy_protobuf-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/legacy_protobuf/protos/metric_meta.proto ) +target_sources(encode-legacy_protobuf-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/monlib/encode/legacy_protobuf/protos/metric_meta.pb.h +) target_proto_addincls(encode-legacy_protobuf-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.linux-x86_64.txt b/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.linux-x86_64.txt index a86da32e117c..c1b141733817 100644 --- a/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.linux-x86_64.txt +++ b/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(encode-legacy_protobuf-protos PUBLIC target_proto_messages(encode-legacy_protobuf-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/legacy_protobuf/protos/metric_meta.proto ) +target_sources(encode-legacy_protobuf-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/monlib/encode/legacy_protobuf/protos/metric_meta.pb.h +) target_proto_addincls(encode-legacy_protobuf-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.windows-x86_64.txt b/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.windows-x86_64.txt index bce491e67e59..197c383a0fbd 100644 --- a/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.windows-x86_64.txt +++ b/library/cpp/monlib/encode/legacy_protobuf/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(encode-legacy_protobuf-protos PUBLIC target_proto_messages(encode-legacy_protobuf-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/monlib/encode/legacy_protobuf/protos/metric_meta.proto ) +target_sources(encode-legacy_protobuf-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/monlib/encode/legacy_protobuf/protos/metric_meta.pb.h +) target_proto_addincls(encode-legacy_protobuf-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/monlib/encode/prometheus/prometheus_encoder.cpp b/library/cpp/monlib/encode/prometheus/prometheus_encoder.cpp index f3015c48bc29..8083221b63d0 100644 --- a/library/cpp/monlib/encode/prometheus/prometheus_encoder.cpp +++ b/library/cpp/monlib/encode/prometheus/prometheus_encoder.cpp @@ -370,9 +370,9 @@ namespace NMonitoring { } TMaybe nameLabel = MetricState_.Labels.Extract(MetricNameLabel_); - Y_ENSURE(nameLabel, - "labels " << MetricState_.Labels << - " does not contain label '" << MetricNameLabel_ << '\''); + if (!nameLabel) { + return; + } const TString& metricName = ToString(nameLabel->Value()); if (MetricState_.Type != EMetricType::DSUMMARY) { diff --git a/library/cpp/monlib/metrics/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/metrics/CMakeLists.darwin-arm64.txt index 052ed067e171..9760edd92f9a 100644 --- a/library/cpp/monlib/metrics/CMakeLists.darwin-arm64.txt +++ b/library/cpp/monlib/metrics/CMakeLists.darwin-arm64.txt @@ -20,6 +20,7 @@ target_link_libraries(cpp-monlib-metrics PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-monlib-metrics PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/monlib/metrics/metric_value_type.h_serialized.h ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/ewma.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/fake.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/histogram_collector_explicit.cpp diff --git a/library/cpp/monlib/metrics/CMakeLists.darwin-x86_64.txt b/library/cpp/monlib/metrics/CMakeLists.darwin-x86_64.txt index 052ed067e171..9760edd92f9a 100644 --- a/library/cpp/monlib/metrics/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/monlib/metrics/CMakeLists.darwin-x86_64.txt @@ -20,6 +20,7 @@ target_link_libraries(cpp-monlib-metrics PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-monlib-metrics PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/monlib/metrics/metric_value_type.h_serialized.h ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/ewma.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/fake.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/histogram_collector_explicit.cpp diff --git a/library/cpp/monlib/metrics/CMakeLists.linux-aarch64.txt b/library/cpp/monlib/metrics/CMakeLists.linux-aarch64.txt index eb18b40c1891..0e1d18c3b16d 100644 --- a/library/cpp/monlib/metrics/CMakeLists.linux-aarch64.txt +++ b/library/cpp/monlib/metrics/CMakeLists.linux-aarch64.txt @@ -21,6 +21,7 @@ target_link_libraries(cpp-monlib-metrics PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-monlib-metrics PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/monlib/metrics/metric_value_type.h_serialized.h ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/ewma.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/fake.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/histogram_collector_explicit.cpp diff --git a/library/cpp/monlib/metrics/CMakeLists.linux-x86_64.txt b/library/cpp/monlib/metrics/CMakeLists.linux-x86_64.txt index eb18b40c1891..0e1d18c3b16d 100644 --- a/library/cpp/monlib/metrics/CMakeLists.linux-x86_64.txt +++ b/library/cpp/monlib/metrics/CMakeLists.linux-x86_64.txt @@ -21,6 +21,7 @@ target_link_libraries(cpp-monlib-metrics PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-monlib-metrics PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/monlib/metrics/metric_value_type.h_serialized.h ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/ewma.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/fake.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/histogram_collector_explicit.cpp diff --git a/library/cpp/monlib/metrics/CMakeLists.windows-x86_64.txt b/library/cpp/monlib/metrics/CMakeLists.windows-x86_64.txt index 052ed067e171..9760edd92f9a 100644 --- a/library/cpp/monlib/metrics/CMakeLists.windows-x86_64.txt +++ b/library/cpp/monlib/metrics/CMakeLists.windows-x86_64.txt @@ -20,6 +20,7 @@ target_link_libraries(cpp-monlib-metrics PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-monlib-metrics PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/monlib/metrics/metric_value_type.h_serialized.h ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/ewma.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/fake.cpp ${CMAKE_SOURCE_DIR}/library/cpp/monlib/metrics/histogram_collector_explicit.cpp diff --git a/library/cpp/monlib/service/pages/resources/CMakeLists.darwin-arm64.txt b/library/cpp/monlib/service/pages/resources/CMakeLists.darwin-arm64.txt index f74d5e30a397..d61b00e7cc12 100644 --- a/library/cpp/monlib/service/pages/resources/CMakeLists.darwin-arm64.txt +++ b/library/cpp/monlib/service/pages/resources/CMakeLists.darwin-arm64.txt @@ -20,6 +20,11 @@ target_link_libraries(service-pages-resources INTERFACE library-cpp-resource cpp-monlib-dynamic_counters ) +target_sources(service-pages-resources INTERFACE + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/css_mon_page.h + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/fonts_mon_page.h + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/js_mon_page.h +) add_global_library_for(service-pages-resources.global service-pages-resources) target_link_libraries(service-pages-resources.global PUBLIC diff --git a/library/cpp/monlib/service/pages/resources/CMakeLists.darwin-x86_64.txt b/library/cpp/monlib/service/pages/resources/CMakeLists.darwin-x86_64.txt index f74d5e30a397..d61b00e7cc12 100644 --- a/library/cpp/monlib/service/pages/resources/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/monlib/service/pages/resources/CMakeLists.darwin-x86_64.txt @@ -20,6 +20,11 @@ target_link_libraries(service-pages-resources INTERFACE library-cpp-resource cpp-monlib-dynamic_counters ) +target_sources(service-pages-resources INTERFACE + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/css_mon_page.h + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/fonts_mon_page.h + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/js_mon_page.h +) add_global_library_for(service-pages-resources.global service-pages-resources) target_link_libraries(service-pages-resources.global PUBLIC diff --git a/library/cpp/monlib/service/pages/resources/CMakeLists.linux-aarch64.txt b/library/cpp/monlib/service/pages/resources/CMakeLists.linux-aarch64.txt index b00466a43022..2680db6bdb70 100644 --- a/library/cpp/monlib/service/pages/resources/CMakeLists.linux-aarch64.txt +++ b/library/cpp/monlib/service/pages/resources/CMakeLists.linux-aarch64.txt @@ -21,6 +21,11 @@ target_link_libraries(service-pages-resources INTERFACE library-cpp-resource cpp-monlib-dynamic_counters ) +target_sources(service-pages-resources INTERFACE + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/css_mon_page.h + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/fonts_mon_page.h + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/js_mon_page.h +) add_global_library_for(service-pages-resources.global service-pages-resources) target_link_libraries(service-pages-resources.global PUBLIC diff --git a/library/cpp/monlib/service/pages/resources/CMakeLists.linux-x86_64.txt b/library/cpp/monlib/service/pages/resources/CMakeLists.linux-x86_64.txt index b00466a43022..2680db6bdb70 100644 --- a/library/cpp/monlib/service/pages/resources/CMakeLists.linux-x86_64.txt +++ b/library/cpp/monlib/service/pages/resources/CMakeLists.linux-x86_64.txt @@ -21,6 +21,11 @@ target_link_libraries(service-pages-resources INTERFACE library-cpp-resource cpp-monlib-dynamic_counters ) +target_sources(service-pages-resources INTERFACE + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/css_mon_page.h + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/fonts_mon_page.h + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/js_mon_page.h +) add_global_library_for(service-pages-resources.global service-pages-resources) target_link_libraries(service-pages-resources.global PUBLIC diff --git a/library/cpp/monlib/service/pages/resources/CMakeLists.windows-x86_64.txt b/library/cpp/monlib/service/pages/resources/CMakeLists.windows-x86_64.txt index f74d5e30a397..d61b00e7cc12 100644 --- a/library/cpp/monlib/service/pages/resources/CMakeLists.windows-x86_64.txt +++ b/library/cpp/monlib/service/pages/resources/CMakeLists.windows-x86_64.txt @@ -20,6 +20,11 @@ target_link_libraries(service-pages-resources INTERFACE library-cpp-resource cpp-monlib-dynamic_counters ) +target_sources(service-pages-resources INTERFACE + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/css_mon_page.h + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/fonts_mon_page.h + ${CMAKE_SOURCE_DIR}/library/cpp/monlib/service/pages/resources/js_mon_page.h +) add_global_library_for(service-pages-resources.global service-pages-resources) target_link_libraries(service-pages-resources.global PUBLIC diff --git a/library/cpp/packedtypes/CMakeLists.darwin-arm64.txt b/library/cpp/packedtypes/CMakeLists.darwin-arm64.txt index 9e3e6c0b53ee..0f2fb32b3c4c 100644 --- a/library/cpp/packedtypes/CMakeLists.darwin-arm64.txt +++ b/library/cpp/packedtypes/CMakeLists.darwin-arm64.txt @@ -14,6 +14,10 @@ target_link_libraries(library-cpp-packedtypes PUBLIC cpp-streams-zc_memory_input ) target_sources(library-cpp-packedtypes PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/fixed_point.h + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packed.h + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packedfloat.h + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/zigzag.h ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/longs.cpp ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packedfloat.cpp ) diff --git a/library/cpp/packedtypes/CMakeLists.darwin-x86_64.txt b/library/cpp/packedtypes/CMakeLists.darwin-x86_64.txt index 9e3e6c0b53ee..0f2fb32b3c4c 100644 --- a/library/cpp/packedtypes/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/packedtypes/CMakeLists.darwin-x86_64.txt @@ -14,6 +14,10 @@ target_link_libraries(library-cpp-packedtypes PUBLIC cpp-streams-zc_memory_input ) target_sources(library-cpp-packedtypes PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/fixed_point.h + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packed.h + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packedfloat.h + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/zigzag.h ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/longs.cpp ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packedfloat.cpp ) diff --git a/library/cpp/packedtypes/CMakeLists.linux-aarch64.txt b/library/cpp/packedtypes/CMakeLists.linux-aarch64.txt index d2705961bdff..68369683b45b 100644 --- a/library/cpp/packedtypes/CMakeLists.linux-aarch64.txt +++ b/library/cpp/packedtypes/CMakeLists.linux-aarch64.txt @@ -15,6 +15,10 @@ target_link_libraries(library-cpp-packedtypes PUBLIC cpp-streams-zc_memory_input ) target_sources(library-cpp-packedtypes PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/fixed_point.h + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packed.h + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packedfloat.h + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/zigzag.h ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/longs.cpp ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packedfloat.cpp ) diff --git a/library/cpp/packedtypes/CMakeLists.linux-x86_64.txt b/library/cpp/packedtypes/CMakeLists.linux-x86_64.txt index d2705961bdff..68369683b45b 100644 --- a/library/cpp/packedtypes/CMakeLists.linux-x86_64.txt +++ b/library/cpp/packedtypes/CMakeLists.linux-x86_64.txt @@ -15,6 +15,10 @@ target_link_libraries(library-cpp-packedtypes PUBLIC cpp-streams-zc_memory_input ) target_sources(library-cpp-packedtypes PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/fixed_point.h + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packed.h + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packedfloat.h + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/zigzag.h ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/longs.cpp ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packedfloat.cpp ) diff --git a/library/cpp/packedtypes/CMakeLists.windows-x86_64.txt b/library/cpp/packedtypes/CMakeLists.windows-x86_64.txt index 9e3e6c0b53ee..0f2fb32b3c4c 100644 --- a/library/cpp/packedtypes/CMakeLists.windows-x86_64.txt +++ b/library/cpp/packedtypes/CMakeLists.windows-x86_64.txt @@ -14,6 +14,10 @@ target_link_libraries(library-cpp-packedtypes PUBLIC cpp-streams-zc_memory_input ) target_sources(library-cpp-packedtypes PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/fixed_point.h + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packed.h + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packedfloat.h + ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/zigzag.h ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/longs.cpp ${CMAKE_SOURCE_DIR}/library/cpp/packedtypes/packedfloat.cpp ) diff --git a/library/cpp/protobuf/json/CMakeLists.darwin-arm64.txt b/library/cpp/protobuf/json/CMakeLists.darwin-arm64.txt index 6914995d2eed..7b73e78d9b99 100644 --- a/library/cpp/protobuf/json/CMakeLists.darwin-arm64.txt +++ b/library/cpp/protobuf/json/CMakeLists.darwin-arm64.txt @@ -19,6 +19,7 @@ target_link_libraries(cpp-protobuf-json PUBLIC cpp-string_utils-relaxed_escaper ) target_sources(cpp-protobuf-json PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/util.h ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json2proto.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json_output_create.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json_value_output.cpp diff --git a/library/cpp/protobuf/json/CMakeLists.darwin-x86_64.txt b/library/cpp/protobuf/json/CMakeLists.darwin-x86_64.txt index 6914995d2eed..7b73e78d9b99 100644 --- a/library/cpp/protobuf/json/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/protobuf/json/CMakeLists.darwin-x86_64.txt @@ -19,6 +19,7 @@ target_link_libraries(cpp-protobuf-json PUBLIC cpp-string_utils-relaxed_escaper ) target_sources(cpp-protobuf-json PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/util.h ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json2proto.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json_output_create.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json_value_output.cpp diff --git a/library/cpp/protobuf/json/CMakeLists.linux-aarch64.txt b/library/cpp/protobuf/json/CMakeLists.linux-aarch64.txt index e3f2a26102ac..547bb846c24c 100644 --- a/library/cpp/protobuf/json/CMakeLists.linux-aarch64.txt +++ b/library/cpp/protobuf/json/CMakeLists.linux-aarch64.txt @@ -20,6 +20,7 @@ target_link_libraries(cpp-protobuf-json PUBLIC cpp-string_utils-relaxed_escaper ) target_sources(cpp-protobuf-json PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/util.h ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json2proto.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json_output_create.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json_value_output.cpp diff --git a/library/cpp/protobuf/json/CMakeLists.linux-x86_64.txt b/library/cpp/protobuf/json/CMakeLists.linux-x86_64.txt index e3f2a26102ac..547bb846c24c 100644 --- a/library/cpp/protobuf/json/CMakeLists.linux-x86_64.txt +++ b/library/cpp/protobuf/json/CMakeLists.linux-x86_64.txt @@ -20,6 +20,7 @@ target_link_libraries(cpp-protobuf-json PUBLIC cpp-string_utils-relaxed_escaper ) target_sources(cpp-protobuf-json PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/util.h ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json2proto.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json_output_create.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json_value_output.cpp diff --git a/library/cpp/protobuf/json/CMakeLists.windows-x86_64.txt b/library/cpp/protobuf/json/CMakeLists.windows-x86_64.txt index 6914995d2eed..7b73e78d9b99 100644 --- a/library/cpp/protobuf/json/CMakeLists.windows-x86_64.txt +++ b/library/cpp/protobuf/json/CMakeLists.windows-x86_64.txt @@ -19,6 +19,7 @@ target_link_libraries(cpp-protobuf-json PUBLIC cpp-string_utils-relaxed_escaper ) target_sources(cpp-protobuf-json PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/util.h ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json2proto.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json_output_create.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/json_value_output.cpp diff --git a/library/cpp/protobuf/json/proto/CMakeLists.darwin-arm64.txt b/library/cpp/protobuf/json/proto/CMakeLists.darwin-arm64.txt index 6c6f4228c3a5..6dd50235e8b7 100644 --- a/library/cpp/protobuf/json/proto/CMakeLists.darwin-arm64.txt +++ b/library/cpp/protobuf/json/proto/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(protobuf-json-proto PUBLIC target_proto_messages(protobuf-json-proto PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/proto/enum_options.proto ) +target_sources(protobuf-json-proto PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/protobuf/json/proto/enum_options.pb.h +) target_proto_addincls(protobuf-json-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/protobuf/json/proto/CMakeLists.darwin-x86_64.txt b/library/cpp/protobuf/json/proto/CMakeLists.darwin-x86_64.txt index 6c6f4228c3a5..6dd50235e8b7 100644 --- a/library/cpp/protobuf/json/proto/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/protobuf/json/proto/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(protobuf-json-proto PUBLIC target_proto_messages(protobuf-json-proto PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/proto/enum_options.proto ) +target_sources(protobuf-json-proto PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/protobuf/json/proto/enum_options.pb.h +) target_proto_addincls(protobuf-json-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/protobuf/json/proto/CMakeLists.linux-aarch64.txt b/library/cpp/protobuf/json/proto/CMakeLists.linux-aarch64.txt index 1840a34ee654..84dd2c36ddd5 100644 --- a/library/cpp/protobuf/json/proto/CMakeLists.linux-aarch64.txt +++ b/library/cpp/protobuf/json/proto/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(protobuf-json-proto PUBLIC target_proto_messages(protobuf-json-proto PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/proto/enum_options.proto ) +target_sources(protobuf-json-proto PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/protobuf/json/proto/enum_options.pb.h +) target_proto_addincls(protobuf-json-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/protobuf/json/proto/CMakeLists.linux-x86_64.txt b/library/cpp/protobuf/json/proto/CMakeLists.linux-x86_64.txt index 1840a34ee654..84dd2c36ddd5 100644 --- a/library/cpp/protobuf/json/proto/CMakeLists.linux-x86_64.txt +++ b/library/cpp/protobuf/json/proto/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(protobuf-json-proto PUBLIC target_proto_messages(protobuf-json-proto PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/proto/enum_options.proto ) +target_sources(protobuf-json-proto PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/protobuf/json/proto/enum_options.pb.h +) target_proto_addincls(protobuf-json-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/protobuf/json/proto/CMakeLists.windows-x86_64.txt b/library/cpp/protobuf/json/proto/CMakeLists.windows-x86_64.txt index 6c6f4228c3a5..6dd50235e8b7 100644 --- a/library/cpp/protobuf/json/proto/CMakeLists.windows-x86_64.txt +++ b/library/cpp/protobuf/json/proto/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(protobuf-json-proto PUBLIC target_proto_messages(protobuf-json-proto PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/json/proto/enum_options.proto ) +target_sources(protobuf-json-proto PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/protobuf/json/proto/enum_options.pb.h +) target_proto_addincls(protobuf-json-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/protobuf/util/CMakeLists.darwin-arm64.txt b/library/cpp/protobuf/util/CMakeLists.darwin-arm64.txt index 51b65cd5b9be..dcf5a9eef72c 100644 --- a/library/cpp/protobuf/util/CMakeLists.darwin-arm64.txt +++ b/library/cpp/protobuf/util/CMakeLists.darwin-arm64.txt @@ -18,6 +18,9 @@ target_link_libraries(cpp-protobuf-util PUBLIC cpp-string_utils-base64 ) target_sources(cpp-protobuf-util PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/iterators.h + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/pb_utils.h + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/repeated_field_utils.h ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/is_equal.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/merge.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/path.cpp diff --git a/library/cpp/protobuf/util/CMakeLists.darwin-x86_64.txt b/library/cpp/protobuf/util/CMakeLists.darwin-x86_64.txt index 51b65cd5b9be..dcf5a9eef72c 100644 --- a/library/cpp/protobuf/util/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/protobuf/util/CMakeLists.darwin-x86_64.txt @@ -18,6 +18,9 @@ target_link_libraries(cpp-protobuf-util PUBLIC cpp-string_utils-base64 ) target_sources(cpp-protobuf-util PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/iterators.h + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/pb_utils.h + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/repeated_field_utils.h ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/is_equal.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/merge.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/path.cpp diff --git a/library/cpp/protobuf/util/CMakeLists.linux-aarch64.txt b/library/cpp/protobuf/util/CMakeLists.linux-aarch64.txt index 9ab7bb59e908..6f1e96e4fccd 100644 --- a/library/cpp/protobuf/util/CMakeLists.linux-aarch64.txt +++ b/library/cpp/protobuf/util/CMakeLists.linux-aarch64.txt @@ -19,6 +19,9 @@ target_link_libraries(cpp-protobuf-util PUBLIC cpp-string_utils-base64 ) target_sources(cpp-protobuf-util PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/iterators.h + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/pb_utils.h + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/repeated_field_utils.h ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/is_equal.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/merge.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/path.cpp diff --git a/library/cpp/protobuf/util/CMakeLists.linux-x86_64.txt b/library/cpp/protobuf/util/CMakeLists.linux-x86_64.txt index 9ab7bb59e908..6f1e96e4fccd 100644 --- a/library/cpp/protobuf/util/CMakeLists.linux-x86_64.txt +++ b/library/cpp/protobuf/util/CMakeLists.linux-x86_64.txt @@ -19,6 +19,9 @@ target_link_libraries(cpp-protobuf-util PUBLIC cpp-string_utils-base64 ) target_sources(cpp-protobuf-util PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/iterators.h + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/pb_utils.h + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/repeated_field_utils.h ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/is_equal.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/merge.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/path.cpp diff --git a/library/cpp/protobuf/util/CMakeLists.windows-x86_64.txt b/library/cpp/protobuf/util/CMakeLists.windows-x86_64.txt index 51b65cd5b9be..dcf5a9eef72c 100644 --- a/library/cpp/protobuf/util/CMakeLists.windows-x86_64.txt +++ b/library/cpp/protobuf/util/CMakeLists.windows-x86_64.txt @@ -18,6 +18,9 @@ target_link_libraries(cpp-protobuf-util PUBLIC cpp-string_utils-base64 ) target_sources(cpp-protobuf-util PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/iterators.h + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/pb_utils.h + ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/repeated_field_utils.h ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/is_equal.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/merge.cpp ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/path.cpp diff --git a/library/cpp/protobuf/util/proto/CMakeLists.darwin-arm64.txt b/library/cpp/protobuf/util/proto/CMakeLists.darwin-arm64.txt index 7a58b4bfebdd..ed50e9c005bc 100644 --- a/library/cpp/protobuf/util/proto/CMakeLists.darwin-arm64.txt +++ b/library/cpp/protobuf/util/proto/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(protobuf-util-proto PUBLIC target_proto_messages(protobuf-util-proto PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/proto/merge.proto ) +target_sources(protobuf-util-proto PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/protobuf/util/proto/merge.pb.h +) target_proto_addincls(protobuf-util-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/protobuf/util/proto/CMakeLists.darwin-x86_64.txt b/library/cpp/protobuf/util/proto/CMakeLists.darwin-x86_64.txt index 7a58b4bfebdd..ed50e9c005bc 100644 --- a/library/cpp/protobuf/util/proto/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/protobuf/util/proto/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(protobuf-util-proto PUBLIC target_proto_messages(protobuf-util-proto PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/proto/merge.proto ) +target_sources(protobuf-util-proto PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/protobuf/util/proto/merge.pb.h +) target_proto_addincls(protobuf-util-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/protobuf/util/proto/CMakeLists.linux-aarch64.txt b/library/cpp/protobuf/util/proto/CMakeLists.linux-aarch64.txt index 5f08e7a6913d..0c512915cd23 100644 --- a/library/cpp/protobuf/util/proto/CMakeLists.linux-aarch64.txt +++ b/library/cpp/protobuf/util/proto/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(protobuf-util-proto PUBLIC target_proto_messages(protobuf-util-proto PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/proto/merge.proto ) +target_sources(protobuf-util-proto PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/protobuf/util/proto/merge.pb.h +) target_proto_addincls(protobuf-util-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/protobuf/util/proto/CMakeLists.linux-x86_64.txt b/library/cpp/protobuf/util/proto/CMakeLists.linux-x86_64.txt index 5f08e7a6913d..0c512915cd23 100644 --- a/library/cpp/protobuf/util/proto/CMakeLists.linux-x86_64.txt +++ b/library/cpp/protobuf/util/proto/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(protobuf-util-proto PUBLIC target_proto_messages(protobuf-util-proto PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/proto/merge.proto ) +target_sources(protobuf-util-proto PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/protobuf/util/proto/merge.pb.h +) target_proto_addincls(protobuf-util-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/protobuf/util/proto/CMakeLists.windows-x86_64.txt b/library/cpp/protobuf/util/proto/CMakeLists.windows-x86_64.txt index 7a58b4bfebdd..ed50e9c005bc 100644 --- a/library/cpp/protobuf/util/proto/CMakeLists.windows-x86_64.txt +++ b/library/cpp/protobuf/util/proto/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(protobuf-util-proto PUBLIC target_proto_messages(protobuf-util-proto PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/protobuf/util/proto/merge.proto ) +target_sources(protobuf-util-proto PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/protobuf/util/proto/merge.pb.h +) target_proto_addincls(protobuf-util-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/random_provider/CMakeLists.darwin-arm64.txt b/library/cpp/random_provider/CMakeLists.darwin-arm64.txt index ac70e71b915e..6bbb82259fea 100644 --- a/library/cpp/random_provider/CMakeLists.darwin-arm64.txt +++ b/library/cpp/random_provider/CMakeLists.darwin-arm64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-cpp-random_provider PUBLIC yutil ) target_sources(library-cpp-random_provider PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/random_provider/random_provider.h ${CMAKE_SOURCE_DIR}/library/cpp/random_provider/random_provider.cpp ) diff --git a/library/cpp/random_provider/CMakeLists.darwin-x86_64.txt b/library/cpp/random_provider/CMakeLists.darwin-x86_64.txt index ac70e71b915e..6bbb82259fea 100644 --- a/library/cpp/random_provider/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/random_provider/CMakeLists.darwin-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-cpp-random_provider PUBLIC yutil ) target_sources(library-cpp-random_provider PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/random_provider/random_provider.h ${CMAKE_SOURCE_DIR}/library/cpp/random_provider/random_provider.cpp ) diff --git a/library/cpp/random_provider/CMakeLists.linux-aarch64.txt b/library/cpp/random_provider/CMakeLists.linux-aarch64.txt index 797bda818a9e..221fa29df124 100644 --- a/library/cpp/random_provider/CMakeLists.linux-aarch64.txt +++ b/library/cpp/random_provider/CMakeLists.linux-aarch64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-cpp-random_provider PUBLIC yutil ) target_sources(library-cpp-random_provider PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/random_provider/random_provider.h ${CMAKE_SOURCE_DIR}/library/cpp/random_provider/random_provider.cpp ) diff --git a/library/cpp/random_provider/CMakeLists.linux-x86_64.txt b/library/cpp/random_provider/CMakeLists.linux-x86_64.txt index 797bda818a9e..221fa29df124 100644 --- a/library/cpp/random_provider/CMakeLists.linux-x86_64.txt +++ b/library/cpp/random_provider/CMakeLists.linux-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-cpp-random_provider PUBLIC yutil ) target_sources(library-cpp-random_provider PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/random_provider/random_provider.h ${CMAKE_SOURCE_DIR}/library/cpp/random_provider/random_provider.cpp ) diff --git a/library/cpp/random_provider/CMakeLists.windows-x86_64.txt b/library/cpp/random_provider/CMakeLists.windows-x86_64.txt index ac70e71b915e..6bbb82259fea 100644 --- a/library/cpp/random_provider/CMakeLists.windows-x86_64.txt +++ b/library/cpp/random_provider/CMakeLists.windows-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-cpp-random_provider PUBLIC yutil ) target_sources(library-cpp-random_provider PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/random_provider/random_provider.h ${CMAKE_SOURCE_DIR}/library/cpp/random_provider/random_provider.cpp ) diff --git a/library/cpp/regex/pire/CMakeLists.darwin-arm64.txt b/library/cpp/regex/pire/CMakeLists.darwin-arm64.txt index 1448b058e873..fe6fe744b6a5 100644 --- a/library/cpp/regex/pire/CMakeLists.darwin-arm64.txt +++ b/library/cpp/regex/pire/CMakeLists.darwin-arm64.txt @@ -21,6 +21,8 @@ target_link_libraries(cpp-regex-pire PUBLIC bison-bison-induced ) target_sources(cpp-regex-pire PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/regex/pire/__/__/__/__/contrib/libs/pire/pire/re_parser.h + ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/minimize.h ${CMAKE_SOURCE_DIR}/library/cpp/regex/pire/pcre2pire.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/classes.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/encoding.cpp diff --git a/library/cpp/regex/pire/CMakeLists.darwin-x86_64.txt b/library/cpp/regex/pire/CMakeLists.darwin-x86_64.txt index 1448b058e873..fe6fe744b6a5 100644 --- a/library/cpp/regex/pire/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/regex/pire/CMakeLists.darwin-x86_64.txt @@ -21,6 +21,8 @@ target_link_libraries(cpp-regex-pire PUBLIC bison-bison-induced ) target_sources(cpp-regex-pire PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/regex/pire/__/__/__/__/contrib/libs/pire/pire/re_parser.h + ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/minimize.h ${CMAKE_SOURCE_DIR}/library/cpp/regex/pire/pcre2pire.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/classes.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/encoding.cpp diff --git a/library/cpp/regex/pire/CMakeLists.linux-aarch64.txt b/library/cpp/regex/pire/CMakeLists.linux-aarch64.txt index 0fab775d7ab5..3f08e550520b 100644 --- a/library/cpp/regex/pire/CMakeLists.linux-aarch64.txt +++ b/library/cpp/regex/pire/CMakeLists.linux-aarch64.txt @@ -22,6 +22,8 @@ target_link_libraries(cpp-regex-pire PUBLIC bison-bison-induced ) target_sources(cpp-regex-pire PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/regex/pire/__/__/__/__/contrib/libs/pire/pire/re_parser.h + ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/minimize.h ${CMAKE_SOURCE_DIR}/library/cpp/regex/pire/pcre2pire.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/classes.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/encoding.cpp diff --git a/library/cpp/regex/pire/CMakeLists.linux-x86_64.txt b/library/cpp/regex/pire/CMakeLists.linux-x86_64.txt index 0fab775d7ab5..3f08e550520b 100644 --- a/library/cpp/regex/pire/CMakeLists.linux-x86_64.txt +++ b/library/cpp/regex/pire/CMakeLists.linux-x86_64.txt @@ -22,6 +22,8 @@ target_link_libraries(cpp-regex-pire PUBLIC bison-bison-induced ) target_sources(cpp-regex-pire PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/regex/pire/__/__/__/__/contrib/libs/pire/pire/re_parser.h + ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/minimize.h ${CMAKE_SOURCE_DIR}/library/cpp/regex/pire/pcre2pire.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/classes.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/encoding.cpp diff --git a/library/cpp/regex/pire/CMakeLists.windows-x86_64.txt b/library/cpp/regex/pire/CMakeLists.windows-x86_64.txt index 1448b058e873..fe6fe744b6a5 100644 --- a/library/cpp/regex/pire/CMakeLists.windows-x86_64.txt +++ b/library/cpp/regex/pire/CMakeLists.windows-x86_64.txt @@ -21,6 +21,8 @@ target_link_libraries(cpp-regex-pire PUBLIC bison-bison-induced ) target_sources(cpp-regex-pire PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/regex/pire/__/__/__/__/contrib/libs/pire/pire/re_parser.h + ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/minimize.h ${CMAKE_SOURCE_DIR}/library/cpp/regex/pire/pcre2pire.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/classes.cpp ${CMAKE_SOURCE_DIR}/contrib/libs/pire/pire/encoding.cpp diff --git a/library/cpp/retry/protos/CMakeLists.darwin-arm64.txt b/library/cpp/retry/protos/CMakeLists.darwin-arm64.txt index ba41965df26d..7d924f8f6bb6 100644 --- a/library/cpp/retry/protos/CMakeLists.darwin-arm64.txt +++ b/library/cpp/retry/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(cpp-retry-protos PUBLIC target_proto_messages(cpp-retry-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/retry/protos/retry_options.proto ) +target_sources(cpp-retry-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/retry/protos/retry_options.pb.h +) target_proto_addincls(cpp-retry-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/retry/protos/CMakeLists.darwin-x86_64.txt b/library/cpp/retry/protos/CMakeLists.darwin-x86_64.txt index ba41965df26d..7d924f8f6bb6 100644 --- a/library/cpp/retry/protos/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/retry/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(cpp-retry-protos PUBLIC target_proto_messages(cpp-retry-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/retry/protos/retry_options.proto ) +target_sources(cpp-retry-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/retry/protos/retry_options.pb.h +) target_proto_addincls(cpp-retry-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/retry/protos/CMakeLists.linux-aarch64.txt b/library/cpp/retry/protos/CMakeLists.linux-aarch64.txt index 3c4f9aed25cd..361dffca6506 100644 --- a/library/cpp/retry/protos/CMakeLists.linux-aarch64.txt +++ b/library/cpp/retry/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(cpp-retry-protos PUBLIC target_proto_messages(cpp-retry-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/retry/protos/retry_options.proto ) +target_sources(cpp-retry-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/retry/protos/retry_options.pb.h +) target_proto_addincls(cpp-retry-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/retry/protos/CMakeLists.linux-x86_64.txt b/library/cpp/retry/protos/CMakeLists.linux-x86_64.txt index 3c4f9aed25cd..361dffca6506 100644 --- a/library/cpp/retry/protos/CMakeLists.linux-x86_64.txt +++ b/library/cpp/retry/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(cpp-retry-protos PUBLIC target_proto_messages(cpp-retry-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/retry/protos/retry_options.proto ) +target_sources(cpp-retry-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/retry/protos/retry_options.pb.h +) target_proto_addincls(cpp-retry-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/retry/protos/CMakeLists.windows-x86_64.txt b/library/cpp/retry/protos/CMakeLists.windows-x86_64.txt index ba41965df26d..7d924f8f6bb6 100644 --- a/library/cpp/retry/protos/CMakeLists.windows-x86_64.txt +++ b/library/cpp/retry/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(cpp-retry-protos PUBLIC target_proto_messages(cpp-retry-protos PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/retry/protos/retry_options.proto ) +target_sources(cpp-retry-protos PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/retry/protos/retry_options.pb.h +) target_proto_addincls(cpp-retry-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/library/cpp/sanitizer/include/CMakeLists.darwin-arm64.txt b/library/cpp/sanitizer/include/CMakeLists.darwin-arm64.txt index a2871edfc28e..c6705a4cac02 100644 --- a/library/cpp/sanitizer/include/CMakeLists.darwin-arm64.txt +++ b/library/cpp/sanitizer/include/CMakeLists.darwin-arm64.txt @@ -9,5 +9,5 @@ add_library(cpp-sanitizer-include INTERFACE) target_include_directories(cpp-sanitizer-include INTERFACE - ${CMAKE_SOURCE_DIR}/contrib/libs/clang16-rt/include + ${CMAKE_SOURCE_DIR}/contrib/libs/clang14-rt/include ) diff --git a/library/cpp/sanitizer/include/CMakeLists.darwin-x86_64.txt b/library/cpp/sanitizer/include/CMakeLists.darwin-x86_64.txt index a2871edfc28e..c6705a4cac02 100644 --- a/library/cpp/sanitizer/include/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/sanitizer/include/CMakeLists.darwin-x86_64.txt @@ -9,5 +9,5 @@ add_library(cpp-sanitizer-include INTERFACE) target_include_directories(cpp-sanitizer-include INTERFACE - ${CMAKE_SOURCE_DIR}/contrib/libs/clang16-rt/include + ${CMAKE_SOURCE_DIR}/contrib/libs/clang14-rt/include ) diff --git a/library/cpp/sanitizer/include/CMakeLists.linux-aarch64.txt b/library/cpp/sanitizer/include/CMakeLists.linux-aarch64.txt index fa46dce697c1..ade2eca0b4ca 100644 --- a/library/cpp/sanitizer/include/CMakeLists.linux-aarch64.txt +++ b/library/cpp/sanitizer/include/CMakeLists.linux-aarch64.txt @@ -9,7 +9,7 @@ add_library(cpp-sanitizer-include INTERFACE) target_include_directories(cpp-sanitizer-include INTERFACE - ${CMAKE_SOURCE_DIR}/contrib/libs/clang16-rt/include + ${CMAKE_SOURCE_DIR}/contrib/libs/clang14-rt/include ) target_link_libraries(cpp-sanitizer-include INTERFACE contrib-libs-linux-headers diff --git a/library/cpp/sanitizer/include/CMakeLists.linux-x86_64.txt b/library/cpp/sanitizer/include/CMakeLists.linux-x86_64.txt index fa46dce697c1..ade2eca0b4ca 100644 --- a/library/cpp/sanitizer/include/CMakeLists.linux-x86_64.txt +++ b/library/cpp/sanitizer/include/CMakeLists.linux-x86_64.txt @@ -9,7 +9,7 @@ add_library(cpp-sanitizer-include INTERFACE) target_include_directories(cpp-sanitizer-include INTERFACE - ${CMAKE_SOURCE_DIR}/contrib/libs/clang16-rt/include + ${CMAKE_SOURCE_DIR}/contrib/libs/clang14-rt/include ) target_link_libraries(cpp-sanitizer-include INTERFACE contrib-libs-linux-headers diff --git a/library/cpp/scheme/CMakeLists.darwin-arm64.txt b/library/cpp/scheme/CMakeLists.darwin-arm64.txt index 851add2e6cd9..f791eb18d6fe 100644 --- a/library/cpp/scheme/CMakeLists.darwin-arm64.txt +++ b/library/cpp/scheme/CMakeLists.darwin-arm64.txt @@ -23,6 +23,9 @@ target_link_libraries(library-cpp-scheme PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(library-cpp-scheme PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scheme_cast.h + ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl.h + ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_defs.h ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scheme.cpp ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_private.cpp ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_protobuf.cpp diff --git a/library/cpp/scheme/CMakeLists.darwin-x86_64.txt b/library/cpp/scheme/CMakeLists.darwin-x86_64.txt index 851add2e6cd9..f791eb18d6fe 100644 --- a/library/cpp/scheme/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/scheme/CMakeLists.darwin-x86_64.txt @@ -23,6 +23,9 @@ target_link_libraries(library-cpp-scheme PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(library-cpp-scheme PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scheme_cast.h + ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl.h + ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_defs.h ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scheme.cpp ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_private.cpp ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_protobuf.cpp diff --git a/library/cpp/scheme/CMakeLists.linux-aarch64.txt b/library/cpp/scheme/CMakeLists.linux-aarch64.txt index 39139ce3c86a..a4c85102a843 100644 --- a/library/cpp/scheme/CMakeLists.linux-aarch64.txt +++ b/library/cpp/scheme/CMakeLists.linux-aarch64.txt @@ -24,6 +24,9 @@ target_link_libraries(library-cpp-scheme PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(library-cpp-scheme PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scheme_cast.h + ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl.h + ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_defs.h ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scheme.cpp ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_private.cpp ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_protobuf.cpp diff --git a/library/cpp/scheme/CMakeLists.linux-x86_64.txt b/library/cpp/scheme/CMakeLists.linux-x86_64.txt index 39139ce3c86a..a4c85102a843 100644 --- a/library/cpp/scheme/CMakeLists.linux-x86_64.txt +++ b/library/cpp/scheme/CMakeLists.linux-x86_64.txt @@ -24,6 +24,9 @@ target_link_libraries(library-cpp-scheme PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(library-cpp-scheme PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scheme_cast.h + ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl.h + ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_defs.h ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scheme.cpp ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_private.cpp ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_protobuf.cpp diff --git a/library/cpp/scheme/CMakeLists.windows-x86_64.txt b/library/cpp/scheme/CMakeLists.windows-x86_64.txt index a08385558d31..5621529bcd56 100644 --- a/library/cpp/scheme/CMakeLists.windows-x86_64.txt +++ b/library/cpp/scheme/CMakeLists.windows-x86_64.txt @@ -23,6 +23,9 @@ target_link_libraries(library-cpp-scheme PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(library-cpp-scheme PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scheme_cast.h + ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl.h + ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_defs.h ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scheme.cpp ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_private.cpp ${CMAKE_SOURCE_DIR}/library/cpp/scheme/scimpl_protobuf.cpp diff --git a/library/cpp/sighandler/CMakeLists.darwin-arm64.txt b/library/cpp/sighandler/CMakeLists.darwin-arm64.txt index 3f330b9bb514..e5b921a59f45 100644 --- a/library/cpp/sighandler/CMakeLists.darwin-arm64.txt +++ b/library/cpp/sighandler/CMakeLists.darwin-arm64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-cpp-sighandler PUBLIC cpp-deprecated-atomic ) target_sources(library-cpp-sighandler PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/sighandler/async_signals_handler.h ${CMAKE_SOURCE_DIR}/library/cpp/sighandler/async_signals_handler.cpp ) diff --git a/library/cpp/sighandler/CMakeLists.darwin-x86_64.txt b/library/cpp/sighandler/CMakeLists.darwin-x86_64.txt index 3f330b9bb514..e5b921a59f45 100644 --- a/library/cpp/sighandler/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/sighandler/CMakeLists.darwin-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-cpp-sighandler PUBLIC cpp-deprecated-atomic ) target_sources(library-cpp-sighandler PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/sighandler/async_signals_handler.h ${CMAKE_SOURCE_DIR}/library/cpp/sighandler/async_signals_handler.cpp ) diff --git a/library/cpp/sighandler/CMakeLists.linux-aarch64.txt b/library/cpp/sighandler/CMakeLists.linux-aarch64.txt index 73b4b95275cc..3ffae3f4259d 100644 --- a/library/cpp/sighandler/CMakeLists.linux-aarch64.txt +++ b/library/cpp/sighandler/CMakeLists.linux-aarch64.txt @@ -15,5 +15,6 @@ target_link_libraries(library-cpp-sighandler PUBLIC cpp-deprecated-atomic ) target_sources(library-cpp-sighandler PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/sighandler/async_signals_handler.h ${CMAKE_SOURCE_DIR}/library/cpp/sighandler/async_signals_handler.cpp ) diff --git a/library/cpp/sighandler/CMakeLists.linux-x86_64.txt b/library/cpp/sighandler/CMakeLists.linux-x86_64.txt index 73b4b95275cc..3ffae3f4259d 100644 --- a/library/cpp/sighandler/CMakeLists.linux-x86_64.txt +++ b/library/cpp/sighandler/CMakeLists.linux-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(library-cpp-sighandler PUBLIC cpp-deprecated-atomic ) target_sources(library-cpp-sighandler PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/sighandler/async_signals_handler.h ${CMAKE_SOURCE_DIR}/library/cpp/sighandler/async_signals_handler.cpp ) diff --git a/library/cpp/sighandler/CMakeLists.windows-x86_64.txt b/library/cpp/sighandler/CMakeLists.windows-x86_64.txt index 3f330b9bb514..e5b921a59f45 100644 --- a/library/cpp/sighandler/CMakeLists.windows-x86_64.txt +++ b/library/cpp/sighandler/CMakeLists.windows-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-cpp-sighandler PUBLIC cpp-deprecated-atomic ) target_sources(library-cpp-sighandler PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/sighandler/async_signals_handler.h ${CMAKE_SOURCE_DIR}/library/cpp/sighandler/async_signals_handler.cpp ) diff --git a/library/cpp/sliding_window/CMakeLists.darwin-arm64.txt b/library/cpp/sliding_window/CMakeLists.darwin-arm64.txt index 15be6f0095d8..f3a82f86431d 100644 --- a/library/cpp/sliding_window/CMakeLists.darwin-arm64.txt +++ b/library/cpp/sliding_window/CMakeLists.darwin-arm64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-cpp-sliding_window PUBLIC yutil ) target_sources(library-cpp-sliding_window PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/sliding_window/sliding_window.h ${CMAKE_SOURCE_DIR}/library/cpp/sliding_window/sliding_window.cpp ) diff --git a/library/cpp/sliding_window/CMakeLists.darwin-x86_64.txt b/library/cpp/sliding_window/CMakeLists.darwin-x86_64.txt index 15be6f0095d8..f3a82f86431d 100644 --- a/library/cpp/sliding_window/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/sliding_window/CMakeLists.darwin-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-cpp-sliding_window PUBLIC yutil ) target_sources(library-cpp-sliding_window PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/sliding_window/sliding_window.h ${CMAKE_SOURCE_DIR}/library/cpp/sliding_window/sliding_window.cpp ) diff --git a/library/cpp/sliding_window/CMakeLists.linux-aarch64.txt b/library/cpp/sliding_window/CMakeLists.linux-aarch64.txt index 110e2807e9b8..df458ad81ac8 100644 --- a/library/cpp/sliding_window/CMakeLists.linux-aarch64.txt +++ b/library/cpp/sliding_window/CMakeLists.linux-aarch64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-cpp-sliding_window PUBLIC yutil ) target_sources(library-cpp-sliding_window PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/sliding_window/sliding_window.h ${CMAKE_SOURCE_DIR}/library/cpp/sliding_window/sliding_window.cpp ) diff --git a/library/cpp/sliding_window/CMakeLists.linux-x86_64.txt b/library/cpp/sliding_window/CMakeLists.linux-x86_64.txt index 110e2807e9b8..df458ad81ac8 100644 --- a/library/cpp/sliding_window/CMakeLists.linux-x86_64.txt +++ b/library/cpp/sliding_window/CMakeLists.linux-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-cpp-sliding_window PUBLIC yutil ) target_sources(library-cpp-sliding_window PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/sliding_window/sliding_window.h ${CMAKE_SOURCE_DIR}/library/cpp/sliding_window/sliding_window.cpp ) diff --git a/library/cpp/sliding_window/CMakeLists.windows-x86_64.txt b/library/cpp/sliding_window/CMakeLists.windows-x86_64.txt index 15be6f0095d8..f3a82f86431d 100644 --- a/library/cpp/sliding_window/CMakeLists.windows-x86_64.txt +++ b/library/cpp/sliding_window/CMakeLists.windows-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-cpp-sliding_window PUBLIC yutil ) target_sources(library-cpp-sliding_window PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/sliding_window/sliding_window.h ${CMAKE_SOURCE_DIR}/library/cpp/sliding_window/sliding_window.cpp ) diff --git a/library/cpp/string_utils/parse_size/CMakeLists.darwin-arm64.txt b/library/cpp/string_utils/parse_size/CMakeLists.darwin-arm64.txt index 5cd758efec8f..d512fa26ee0d 100644 --- a/library/cpp/string_utils/parse_size/CMakeLists.darwin-arm64.txt +++ b/library/cpp/string_utils/parse_size/CMakeLists.darwin-arm64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-string_utils-parse_size PUBLIC yutil ) target_sources(cpp-string_utils-parse_size PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/parse_size/parse_size.h ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/parse_size/parse_size.cpp ) diff --git a/library/cpp/string_utils/parse_size/CMakeLists.darwin-x86_64.txt b/library/cpp/string_utils/parse_size/CMakeLists.darwin-x86_64.txt index 5cd758efec8f..d512fa26ee0d 100644 --- a/library/cpp/string_utils/parse_size/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/string_utils/parse_size/CMakeLists.darwin-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-string_utils-parse_size PUBLIC yutil ) target_sources(cpp-string_utils-parse_size PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/parse_size/parse_size.h ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/parse_size/parse_size.cpp ) diff --git a/library/cpp/string_utils/parse_size/CMakeLists.linux-aarch64.txt b/library/cpp/string_utils/parse_size/CMakeLists.linux-aarch64.txt index c50fd344c4ec..529812f55d07 100644 --- a/library/cpp/string_utils/parse_size/CMakeLists.linux-aarch64.txt +++ b/library/cpp/string_utils/parse_size/CMakeLists.linux-aarch64.txt @@ -14,5 +14,6 @@ target_link_libraries(cpp-string_utils-parse_size PUBLIC yutil ) target_sources(cpp-string_utils-parse_size PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/parse_size/parse_size.h ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/parse_size/parse_size.cpp ) diff --git a/library/cpp/string_utils/parse_size/CMakeLists.linux-x86_64.txt b/library/cpp/string_utils/parse_size/CMakeLists.linux-x86_64.txt index c50fd344c4ec..529812f55d07 100644 --- a/library/cpp/string_utils/parse_size/CMakeLists.linux-x86_64.txt +++ b/library/cpp/string_utils/parse_size/CMakeLists.linux-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(cpp-string_utils-parse_size PUBLIC yutil ) target_sources(cpp-string_utils-parse_size PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/parse_size/parse_size.h ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/parse_size/parse_size.cpp ) diff --git a/library/cpp/string_utils/parse_size/CMakeLists.windows-x86_64.txt b/library/cpp/string_utils/parse_size/CMakeLists.windows-x86_64.txt index 5cd758efec8f..d512fa26ee0d 100644 --- a/library/cpp/string_utils/parse_size/CMakeLists.windows-x86_64.txt +++ b/library/cpp/string_utils/parse_size/CMakeLists.windows-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-string_utils-parse_size PUBLIC yutil ) target_sources(cpp-string_utils-parse_size PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/parse_size/parse_size.h ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/parse_size/parse_size.cpp ) diff --git a/library/cpp/string_utils/quote/CMakeLists.darwin-arm64.txt b/library/cpp/string_utils/quote/CMakeLists.darwin-arm64.txt index e2bedf1e187b..e374c709abee 100644 --- a/library/cpp/string_utils/quote/CMakeLists.darwin-arm64.txt +++ b/library/cpp/string_utils/quote/CMakeLists.darwin-arm64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-string_utils-quote PUBLIC yutil ) target_sources(cpp-string_utils-quote PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/quote/quote.h ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/quote/quote.cpp ) diff --git a/library/cpp/string_utils/quote/CMakeLists.darwin-x86_64.txt b/library/cpp/string_utils/quote/CMakeLists.darwin-x86_64.txt index e2bedf1e187b..e374c709abee 100644 --- a/library/cpp/string_utils/quote/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/string_utils/quote/CMakeLists.darwin-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-string_utils-quote PUBLIC yutil ) target_sources(cpp-string_utils-quote PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/quote/quote.h ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/quote/quote.cpp ) diff --git a/library/cpp/string_utils/quote/CMakeLists.linux-aarch64.txt b/library/cpp/string_utils/quote/CMakeLists.linux-aarch64.txt index 28d1aabe8d24..bed3e277ffa0 100644 --- a/library/cpp/string_utils/quote/CMakeLists.linux-aarch64.txt +++ b/library/cpp/string_utils/quote/CMakeLists.linux-aarch64.txt @@ -14,5 +14,6 @@ target_link_libraries(cpp-string_utils-quote PUBLIC yutil ) target_sources(cpp-string_utils-quote PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/quote/quote.h ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/quote/quote.cpp ) diff --git a/library/cpp/string_utils/quote/CMakeLists.linux-x86_64.txt b/library/cpp/string_utils/quote/CMakeLists.linux-x86_64.txt index 28d1aabe8d24..bed3e277ffa0 100644 --- a/library/cpp/string_utils/quote/CMakeLists.linux-x86_64.txt +++ b/library/cpp/string_utils/quote/CMakeLists.linux-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(cpp-string_utils-quote PUBLIC yutil ) target_sources(cpp-string_utils-quote PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/quote/quote.h ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/quote/quote.cpp ) diff --git a/library/cpp/string_utils/quote/CMakeLists.windows-x86_64.txt b/library/cpp/string_utils/quote/CMakeLists.windows-x86_64.txt index e2bedf1e187b..e374c709abee 100644 --- a/library/cpp/string_utils/quote/CMakeLists.windows-x86_64.txt +++ b/library/cpp/string_utils/quote/CMakeLists.windows-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-string_utils-quote PUBLIC yutil ) target_sources(cpp-string_utils-quote PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/quote/quote.h ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/quote/quote.cpp ) diff --git a/library/cpp/string_utils/url/CMakeLists.darwin-arm64.txt b/library/cpp/string_utils/url/CMakeLists.darwin-arm64.txt index 672139e643ec..979c37081948 100644 --- a/library/cpp/string_utils/url/CMakeLists.darwin-arm64.txt +++ b/library/cpp/string_utils/url/CMakeLists.darwin-arm64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-string_utils-url PUBLIC yutil ) target_sources(cpp-string_utils-url PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/url/url.h ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/url/url.cpp ) diff --git a/library/cpp/string_utils/url/CMakeLists.darwin-x86_64.txt b/library/cpp/string_utils/url/CMakeLists.darwin-x86_64.txt index 672139e643ec..979c37081948 100644 --- a/library/cpp/string_utils/url/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/string_utils/url/CMakeLists.darwin-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-string_utils-url PUBLIC yutil ) target_sources(cpp-string_utils-url PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/url/url.h ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/url/url.cpp ) diff --git a/library/cpp/string_utils/url/CMakeLists.linux-aarch64.txt b/library/cpp/string_utils/url/CMakeLists.linux-aarch64.txt index b84dcb3263d0..cdfdc913cd21 100644 --- a/library/cpp/string_utils/url/CMakeLists.linux-aarch64.txt +++ b/library/cpp/string_utils/url/CMakeLists.linux-aarch64.txt @@ -14,5 +14,6 @@ target_link_libraries(cpp-string_utils-url PUBLIC yutil ) target_sources(cpp-string_utils-url PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/url/url.h ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/url/url.cpp ) diff --git a/library/cpp/string_utils/url/CMakeLists.linux-x86_64.txt b/library/cpp/string_utils/url/CMakeLists.linux-x86_64.txt index b84dcb3263d0..cdfdc913cd21 100644 --- a/library/cpp/string_utils/url/CMakeLists.linux-x86_64.txt +++ b/library/cpp/string_utils/url/CMakeLists.linux-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(cpp-string_utils-url PUBLIC yutil ) target_sources(cpp-string_utils-url PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/url/url.h ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/url/url.cpp ) diff --git a/library/cpp/string_utils/url/CMakeLists.windows-x86_64.txt b/library/cpp/string_utils/url/CMakeLists.windows-x86_64.txt index 672139e643ec..979c37081948 100644 --- a/library/cpp/string_utils/url/CMakeLists.windows-x86_64.txt +++ b/library/cpp/string_utils/url/CMakeLists.windows-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-string_utils-url PUBLIC yutil ) target_sources(cpp-string_utils-url PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/url/url.h ${CMAKE_SOURCE_DIR}/library/cpp/string_utils/url/url.cpp ) diff --git a/library/cpp/tdigest/CMakeLists.darwin-arm64.txt b/library/cpp/tdigest/CMakeLists.darwin-arm64.txt index 9dd7437db0ae..8b8484722289 100644 --- a/library/cpp/tdigest/CMakeLists.darwin-arm64.txt +++ b/library/cpp/tdigest/CMakeLists.darwin-arm64.txt @@ -29,6 +29,7 @@ target_proto_messages(library-cpp-tdigest PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/tdigest/tdigest.proto ) target_sources(library-cpp-tdigest PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/tdigest/tdigest.pb.h ${CMAKE_SOURCE_DIR}/library/cpp/tdigest/tdigest.cpp ) target_proto_addincls(library-cpp-tdigest diff --git a/library/cpp/tdigest/CMakeLists.darwin-x86_64.txt b/library/cpp/tdigest/CMakeLists.darwin-x86_64.txt index 9dd7437db0ae..8b8484722289 100644 --- a/library/cpp/tdigest/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/tdigest/CMakeLists.darwin-x86_64.txt @@ -29,6 +29,7 @@ target_proto_messages(library-cpp-tdigest PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/tdigest/tdigest.proto ) target_sources(library-cpp-tdigest PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/tdigest/tdigest.pb.h ${CMAKE_SOURCE_DIR}/library/cpp/tdigest/tdigest.cpp ) target_proto_addincls(library-cpp-tdigest diff --git a/library/cpp/tdigest/CMakeLists.linux-aarch64.txt b/library/cpp/tdigest/CMakeLists.linux-aarch64.txt index 2fdc4b7b1259..de551fbf8acc 100644 --- a/library/cpp/tdigest/CMakeLists.linux-aarch64.txt +++ b/library/cpp/tdigest/CMakeLists.linux-aarch64.txt @@ -30,6 +30,7 @@ target_proto_messages(library-cpp-tdigest PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/tdigest/tdigest.proto ) target_sources(library-cpp-tdigest PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/tdigest/tdigest.pb.h ${CMAKE_SOURCE_DIR}/library/cpp/tdigest/tdigest.cpp ) target_proto_addincls(library-cpp-tdigest diff --git a/library/cpp/tdigest/CMakeLists.linux-x86_64.txt b/library/cpp/tdigest/CMakeLists.linux-x86_64.txt index 2fdc4b7b1259..de551fbf8acc 100644 --- a/library/cpp/tdigest/CMakeLists.linux-x86_64.txt +++ b/library/cpp/tdigest/CMakeLists.linux-x86_64.txt @@ -30,6 +30,7 @@ target_proto_messages(library-cpp-tdigest PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/tdigest/tdigest.proto ) target_sources(library-cpp-tdigest PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/tdigest/tdigest.pb.h ${CMAKE_SOURCE_DIR}/library/cpp/tdigest/tdigest.cpp ) target_proto_addincls(library-cpp-tdigest diff --git a/library/cpp/tdigest/CMakeLists.windows-x86_64.txt b/library/cpp/tdigest/CMakeLists.windows-x86_64.txt index 9dd7437db0ae..8b8484722289 100644 --- a/library/cpp/tdigest/CMakeLists.windows-x86_64.txt +++ b/library/cpp/tdigest/CMakeLists.windows-x86_64.txt @@ -29,6 +29,7 @@ target_proto_messages(library-cpp-tdigest PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/tdigest/tdigest.proto ) target_sources(library-cpp-tdigest PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/tdigest/tdigest.pb.h ${CMAKE_SOURCE_DIR}/library/cpp/tdigest/tdigest.cpp ) target_proto_addincls(library-cpp-tdigest diff --git a/library/cpp/threading/equeue/CMakeLists.darwin-arm64.txt b/library/cpp/threading/equeue/CMakeLists.darwin-arm64.txt index 902b6d7a9acd..5e20bafaf93d 100644 --- a/library/cpp/threading/equeue/CMakeLists.darwin-arm64.txt +++ b/library/cpp/threading/equeue/CMakeLists.darwin-arm64.txt @@ -14,5 +14,6 @@ target_link_libraries(cpp-threading-equeue PUBLIC cpp-deprecated-atomic ) target_sources(cpp-threading-equeue PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/threading/equeue/equeue.h ${CMAKE_SOURCE_DIR}/library/cpp/threading/equeue/equeue.cpp ) diff --git a/library/cpp/threading/equeue/CMakeLists.darwin-x86_64.txt b/library/cpp/threading/equeue/CMakeLists.darwin-x86_64.txt index 902b6d7a9acd..5e20bafaf93d 100644 --- a/library/cpp/threading/equeue/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/threading/equeue/CMakeLists.darwin-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(cpp-threading-equeue PUBLIC cpp-deprecated-atomic ) target_sources(cpp-threading-equeue PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/threading/equeue/equeue.h ${CMAKE_SOURCE_DIR}/library/cpp/threading/equeue/equeue.cpp ) diff --git a/library/cpp/threading/equeue/CMakeLists.linux-aarch64.txt b/library/cpp/threading/equeue/CMakeLists.linux-aarch64.txt index 5653d3d3f3fd..e8744435557e 100644 --- a/library/cpp/threading/equeue/CMakeLists.linux-aarch64.txt +++ b/library/cpp/threading/equeue/CMakeLists.linux-aarch64.txt @@ -15,5 +15,6 @@ target_link_libraries(cpp-threading-equeue PUBLIC cpp-deprecated-atomic ) target_sources(cpp-threading-equeue PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/threading/equeue/equeue.h ${CMAKE_SOURCE_DIR}/library/cpp/threading/equeue/equeue.cpp ) diff --git a/library/cpp/threading/equeue/CMakeLists.linux-x86_64.txt b/library/cpp/threading/equeue/CMakeLists.linux-x86_64.txt index 5653d3d3f3fd..e8744435557e 100644 --- a/library/cpp/threading/equeue/CMakeLists.linux-x86_64.txt +++ b/library/cpp/threading/equeue/CMakeLists.linux-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(cpp-threading-equeue PUBLIC cpp-deprecated-atomic ) target_sources(cpp-threading-equeue PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/threading/equeue/equeue.h ${CMAKE_SOURCE_DIR}/library/cpp/threading/equeue/equeue.cpp ) diff --git a/library/cpp/threading/equeue/CMakeLists.windows-x86_64.txt b/library/cpp/threading/equeue/CMakeLists.windows-x86_64.txt index 902b6d7a9acd..5e20bafaf93d 100644 --- a/library/cpp/threading/equeue/CMakeLists.windows-x86_64.txt +++ b/library/cpp/threading/equeue/CMakeLists.windows-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(cpp-threading-equeue PUBLIC cpp-deprecated-atomic ) target_sources(cpp-threading-equeue PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/threading/equeue/equeue.h ${CMAKE_SOURCE_DIR}/library/cpp/threading/equeue/equeue.cpp ) diff --git a/library/cpp/threading/light_rw_lock/CMakeLists.darwin-arm64.txt b/library/cpp/threading/light_rw_lock/CMakeLists.darwin-arm64.txt index 934c52018ecc..d31cb4ca9104 100644 --- a/library/cpp/threading/light_rw_lock/CMakeLists.darwin-arm64.txt +++ b/library/cpp/threading/light_rw_lock/CMakeLists.darwin-arm64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-threading-light_rw_lock PUBLIC yutil ) target_sources(cpp-threading-light_rw_lock PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/threading/light_rw_lock/lightrwlock.h ${CMAKE_SOURCE_DIR}/library/cpp/threading/light_rw_lock/lightrwlock.cpp ) diff --git a/library/cpp/threading/light_rw_lock/CMakeLists.darwin-x86_64.txt b/library/cpp/threading/light_rw_lock/CMakeLists.darwin-x86_64.txt index 934c52018ecc..d31cb4ca9104 100644 --- a/library/cpp/threading/light_rw_lock/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/threading/light_rw_lock/CMakeLists.darwin-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-threading-light_rw_lock PUBLIC yutil ) target_sources(cpp-threading-light_rw_lock PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/threading/light_rw_lock/lightrwlock.h ${CMAKE_SOURCE_DIR}/library/cpp/threading/light_rw_lock/lightrwlock.cpp ) diff --git a/library/cpp/threading/light_rw_lock/CMakeLists.linux-aarch64.txt b/library/cpp/threading/light_rw_lock/CMakeLists.linux-aarch64.txt index 2f54f7fe5b7b..d42b5f1c2b24 100644 --- a/library/cpp/threading/light_rw_lock/CMakeLists.linux-aarch64.txt +++ b/library/cpp/threading/light_rw_lock/CMakeLists.linux-aarch64.txt @@ -14,5 +14,6 @@ target_link_libraries(cpp-threading-light_rw_lock PUBLIC yutil ) target_sources(cpp-threading-light_rw_lock PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/threading/light_rw_lock/lightrwlock.h ${CMAKE_SOURCE_DIR}/library/cpp/threading/light_rw_lock/lightrwlock.cpp ) diff --git a/library/cpp/threading/light_rw_lock/CMakeLists.linux-x86_64.txt b/library/cpp/threading/light_rw_lock/CMakeLists.linux-x86_64.txt index 2f54f7fe5b7b..d42b5f1c2b24 100644 --- a/library/cpp/threading/light_rw_lock/CMakeLists.linux-x86_64.txt +++ b/library/cpp/threading/light_rw_lock/CMakeLists.linux-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(cpp-threading-light_rw_lock PUBLIC yutil ) target_sources(cpp-threading-light_rw_lock PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/threading/light_rw_lock/lightrwlock.h ${CMAKE_SOURCE_DIR}/library/cpp/threading/light_rw_lock/lightrwlock.cpp ) diff --git a/library/cpp/threading/light_rw_lock/CMakeLists.windows-x86_64.txt b/library/cpp/threading/light_rw_lock/CMakeLists.windows-x86_64.txt index 934c52018ecc..d31cb4ca9104 100644 --- a/library/cpp/threading/light_rw_lock/CMakeLists.windows-x86_64.txt +++ b/library/cpp/threading/light_rw_lock/CMakeLists.windows-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(cpp-threading-light_rw_lock PUBLIC yutil ) target_sources(cpp-threading-light_rw_lock PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/threading/light_rw_lock/lightrwlock.h ${CMAKE_SOURCE_DIR}/library/cpp/threading/light_rw_lock/lightrwlock.cpp ) diff --git a/library/cpp/threading/queue/CMakeLists.darwin-arm64.txt b/library/cpp/threading/queue/CMakeLists.darwin-arm64.txt index ff0797688e72..410d713d74f6 100644 --- a/library/cpp/threading/queue/CMakeLists.darwin-arm64.txt +++ b/library/cpp/threading/queue/CMakeLists.darwin-arm64.txt @@ -14,6 +14,11 @@ target_link_libraries(cpp-threading-queue PUBLIC cpp-deprecated-atomic ) target_sources(cpp-threading-queue PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpmc_unordered_ring.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_htswap.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_intrusive_unordered.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_read_as_filled.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_vinfarr_obstructive.h ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpmc_unordered_ring.cpp ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_htswap.cpp ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_intrusive_unordered.cpp diff --git a/library/cpp/threading/queue/CMakeLists.darwin-x86_64.txt b/library/cpp/threading/queue/CMakeLists.darwin-x86_64.txt index ff0797688e72..410d713d74f6 100644 --- a/library/cpp/threading/queue/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/threading/queue/CMakeLists.darwin-x86_64.txt @@ -14,6 +14,11 @@ target_link_libraries(cpp-threading-queue PUBLIC cpp-deprecated-atomic ) target_sources(cpp-threading-queue PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpmc_unordered_ring.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_htswap.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_intrusive_unordered.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_read_as_filled.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_vinfarr_obstructive.h ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpmc_unordered_ring.cpp ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_htswap.cpp ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_intrusive_unordered.cpp diff --git a/library/cpp/threading/queue/CMakeLists.linux-aarch64.txt b/library/cpp/threading/queue/CMakeLists.linux-aarch64.txt index c6338ea17b00..caf9b0fd1684 100644 --- a/library/cpp/threading/queue/CMakeLists.linux-aarch64.txt +++ b/library/cpp/threading/queue/CMakeLists.linux-aarch64.txt @@ -15,6 +15,11 @@ target_link_libraries(cpp-threading-queue PUBLIC cpp-deprecated-atomic ) target_sources(cpp-threading-queue PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpmc_unordered_ring.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_htswap.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_intrusive_unordered.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_read_as_filled.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_vinfarr_obstructive.h ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpmc_unordered_ring.cpp ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_htswap.cpp ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_intrusive_unordered.cpp diff --git a/library/cpp/threading/queue/CMakeLists.linux-x86_64.txt b/library/cpp/threading/queue/CMakeLists.linux-x86_64.txt index c6338ea17b00..caf9b0fd1684 100644 --- a/library/cpp/threading/queue/CMakeLists.linux-x86_64.txt +++ b/library/cpp/threading/queue/CMakeLists.linux-x86_64.txt @@ -15,6 +15,11 @@ target_link_libraries(cpp-threading-queue PUBLIC cpp-deprecated-atomic ) target_sources(cpp-threading-queue PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpmc_unordered_ring.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_htswap.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_intrusive_unordered.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_read_as_filled.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_vinfarr_obstructive.h ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpmc_unordered_ring.cpp ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_htswap.cpp ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_intrusive_unordered.cpp diff --git a/library/cpp/threading/queue/CMakeLists.windows-x86_64.txt b/library/cpp/threading/queue/CMakeLists.windows-x86_64.txt index ff0797688e72..410d713d74f6 100644 --- a/library/cpp/threading/queue/CMakeLists.windows-x86_64.txt +++ b/library/cpp/threading/queue/CMakeLists.windows-x86_64.txt @@ -14,6 +14,11 @@ target_link_libraries(cpp-threading-queue PUBLIC cpp-deprecated-atomic ) target_sources(cpp-threading-queue PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpmc_unordered_ring.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_htswap.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_intrusive_unordered.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_read_as_filled.h + ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_vinfarr_obstructive.h ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpmc_unordered_ring.cpp ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_htswap.cpp ${CMAKE_SOURCE_DIR}/library/cpp/threading/queue/mpsc_intrusive_unordered.cpp diff --git a/library/cpp/tld/CMakeLists.darwin-arm64.txt b/library/cpp/tld/CMakeLists.darwin-arm64.txt index cf90e8b74f36..8c72fd8a48b4 100644 --- a/library/cpp/tld/CMakeLists.darwin-arm64.txt +++ b/library/cpp/tld/CMakeLists.darwin-arm64.txt @@ -15,6 +15,7 @@ target_link_libraries(library-cpp-tld PUBLIC cpp-digest-lower_case ) target_sources(library-cpp-tld PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/tld/tld.inc ${CMAKE_SOURCE_DIR}/library/cpp/tld/tld.cpp ${CMAKE_BINARY_DIR}/library/cpp/tld/tld.inc ) diff --git a/library/cpp/tld/CMakeLists.darwin-x86_64.txt b/library/cpp/tld/CMakeLists.darwin-x86_64.txt index cf90e8b74f36..8c72fd8a48b4 100644 --- a/library/cpp/tld/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/tld/CMakeLists.darwin-x86_64.txt @@ -15,6 +15,7 @@ target_link_libraries(library-cpp-tld PUBLIC cpp-digest-lower_case ) target_sources(library-cpp-tld PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/tld/tld.inc ${CMAKE_SOURCE_DIR}/library/cpp/tld/tld.cpp ${CMAKE_BINARY_DIR}/library/cpp/tld/tld.inc ) diff --git a/library/cpp/tld/CMakeLists.linux-aarch64.txt b/library/cpp/tld/CMakeLists.linux-aarch64.txt index 30fe4361801b..9d5d73f21d4f 100644 --- a/library/cpp/tld/CMakeLists.linux-aarch64.txt +++ b/library/cpp/tld/CMakeLists.linux-aarch64.txt @@ -16,6 +16,7 @@ target_link_libraries(library-cpp-tld PUBLIC cpp-digest-lower_case ) target_sources(library-cpp-tld PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/tld/tld.inc ${CMAKE_SOURCE_DIR}/library/cpp/tld/tld.cpp ${CMAKE_BINARY_DIR}/library/cpp/tld/tld.inc ) diff --git a/library/cpp/tld/CMakeLists.linux-x86_64.txt b/library/cpp/tld/CMakeLists.linux-x86_64.txt index 30fe4361801b..9d5d73f21d4f 100644 --- a/library/cpp/tld/CMakeLists.linux-x86_64.txt +++ b/library/cpp/tld/CMakeLists.linux-x86_64.txt @@ -16,6 +16,7 @@ target_link_libraries(library-cpp-tld PUBLIC cpp-digest-lower_case ) target_sources(library-cpp-tld PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/tld/tld.inc ${CMAKE_SOURCE_DIR}/library/cpp/tld/tld.cpp ${CMAKE_BINARY_DIR}/library/cpp/tld/tld.inc ) diff --git a/library/cpp/tld/CMakeLists.windows-x86_64.txt b/library/cpp/tld/CMakeLists.windows-x86_64.txt index cf90e8b74f36..8c72fd8a48b4 100644 --- a/library/cpp/tld/CMakeLists.windows-x86_64.txt +++ b/library/cpp/tld/CMakeLists.windows-x86_64.txt @@ -15,6 +15,7 @@ target_link_libraries(library-cpp-tld PUBLIC cpp-digest-lower_case ) target_sources(library-cpp-tld PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/tld/tld.inc ${CMAKE_SOURCE_DIR}/library/cpp/tld/tld.cpp ${CMAKE_BINARY_DIR}/library/cpp/tld/tld.inc ) diff --git a/library/cpp/unicode/normalization/CMakeLists.darwin-arm64.txt b/library/cpp/unicode/normalization/CMakeLists.darwin-arm64.txt index faa65c7f2bae..4a02aa194d47 100644 --- a/library/cpp/unicode/normalization/CMakeLists.darwin-arm64.txt +++ b/library/cpp/unicode/normalization/CMakeLists.darwin-arm64.txt @@ -12,6 +12,7 @@ target_link_libraries(cpp-unicode-normalization PUBLIC contrib-libs-cxxsupp ) target_sources(cpp-unicode-normalization PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/decomposition_table.h ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/generated/composition.cpp ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/generated/decomposition.cpp ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/normalization.cpp diff --git a/library/cpp/unicode/normalization/CMakeLists.darwin-x86_64.txt b/library/cpp/unicode/normalization/CMakeLists.darwin-x86_64.txt index faa65c7f2bae..4a02aa194d47 100644 --- a/library/cpp/unicode/normalization/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/unicode/normalization/CMakeLists.darwin-x86_64.txt @@ -12,6 +12,7 @@ target_link_libraries(cpp-unicode-normalization PUBLIC contrib-libs-cxxsupp ) target_sources(cpp-unicode-normalization PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/decomposition_table.h ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/generated/composition.cpp ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/generated/decomposition.cpp ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/normalization.cpp diff --git a/library/cpp/unicode/normalization/CMakeLists.linux-aarch64.txt b/library/cpp/unicode/normalization/CMakeLists.linux-aarch64.txt index 8f5bf5189e10..d848ee2ac0ae 100644 --- a/library/cpp/unicode/normalization/CMakeLists.linux-aarch64.txt +++ b/library/cpp/unicode/normalization/CMakeLists.linux-aarch64.txt @@ -13,6 +13,7 @@ target_link_libraries(cpp-unicode-normalization PUBLIC contrib-libs-cxxsupp ) target_sources(cpp-unicode-normalization PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/decomposition_table.h ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/generated/composition.cpp ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/generated/decomposition.cpp ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/normalization.cpp diff --git a/library/cpp/unicode/normalization/CMakeLists.linux-x86_64.txt b/library/cpp/unicode/normalization/CMakeLists.linux-x86_64.txt index 8f5bf5189e10..d848ee2ac0ae 100644 --- a/library/cpp/unicode/normalization/CMakeLists.linux-x86_64.txt +++ b/library/cpp/unicode/normalization/CMakeLists.linux-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(cpp-unicode-normalization PUBLIC contrib-libs-cxxsupp ) target_sources(cpp-unicode-normalization PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/decomposition_table.h ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/generated/composition.cpp ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/generated/decomposition.cpp ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/normalization.cpp diff --git a/library/cpp/unicode/normalization/CMakeLists.windows-x86_64.txt b/library/cpp/unicode/normalization/CMakeLists.windows-x86_64.txt index faa65c7f2bae..4a02aa194d47 100644 --- a/library/cpp/unicode/normalization/CMakeLists.windows-x86_64.txt +++ b/library/cpp/unicode/normalization/CMakeLists.windows-x86_64.txt @@ -12,6 +12,7 @@ target_link_libraries(cpp-unicode-normalization PUBLIC contrib-libs-cxxsupp ) target_sources(cpp-unicode-normalization PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/decomposition_table.h ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/generated/composition.cpp ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/generated/decomposition.cpp ${CMAKE_SOURCE_DIR}/library/cpp/unicode/normalization/normalization.cpp diff --git a/library/cpp/unified_agent_client/proto/CMakeLists.darwin-arm64.txt b/library/cpp/unified_agent_client/proto/CMakeLists.darwin-arm64.txt index 6f12b2aa5eee..80cbac9ae255 100644 --- a/library/cpp/unified_agent_client/proto/CMakeLists.darwin-arm64.txt +++ b/library/cpp/unified_agent_client/proto/CMakeLists.darwin-arm64.txt @@ -45,6 +45,10 @@ target_link_libraries(cpp-unified_agent_client-proto PUBLIC target_proto_messages(cpp-unified_agent_client-proto PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/proto/unified_agent.proto ) +target_sources(cpp-unified_agent_client-proto PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.pb.h + ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.grpc.pb.h +) generate_enum_serilization(cpp-unified_agent_client-proto ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.pb.h INCLUDE_HEADERS diff --git a/library/cpp/unified_agent_client/proto/CMakeLists.darwin-x86_64.txt b/library/cpp/unified_agent_client/proto/CMakeLists.darwin-x86_64.txt index 6f12b2aa5eee..80cbac9ae255 100644 --- a/library/cpp/unified_agent_client/proto/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/unified_agent_client/proto/CMakeLists.darwin-x86_64.txt @@ -45,6 +45,10 @@ target_link_libraries(cpp-unified_agent_client-proto PUBLIC target_proto_messages(cpp-unified_agent_client-proto PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/proto/unified_agent.proto ) +target_sources(cpp-unified_agent_client-proto PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.pb.h + ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.grpc.pb.h +) generate_enum_serilization(cpp-unified_agent_client-proto ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.pb.h INCLUDE_HEADERS diff --git a/library/cpp/unified_agent_client/proto/CMakeLists.linux-aarch64.txt b/library/cpp/unified_agent_client/proto/CMakeLists.linux-aarch64.txt index 571e21b861eb..bc8c5e7c30e7 100644 --- a/library/cpp/unified_agent_client/proto/CMakeLists.linux-aarch64.txt +++ b/library/cpp/unified_agent_client/proto/CMakeLists.linux-aarch64.txt @@ -46,6 +46,10 @@ target_link_libraries(cpp-unified_agent_client-proto PUBLIC target_proto_messages(cpp-unified_agent_client-proto PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/proto/unified_agent.proto ) +target_sources(cpp-unified_agent_client-proto PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.pb.h + ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.grpc.pb.h +) generate_enum_serilization(cpp-unified_agent_client-proto ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.pb.h INCLUDE_HEADERS diff --git a/library/cpp/unified_agent_client/proto/CMakeLists.linux-x86_64.txt b/library/cpp/unified_agent_client/proto/CMakeLists.linux-x86_64.txt index 571e21b861eb..bc8c5e7c30e7 100644 --- a/library/cpp/unified_agent_client/proto/CMakeLists.linux-x86_64.txt +++ b/library/cpp/unified_agent_client/proto/CMakeLists.linux-x86_64.txt @@ -46,6 +46,10 @@ target_link_libraries(cpp-unified_agent_client-proto PUBLIC target_proto_messages(cpp-unified_agent_client-proto PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/proto/unified_agent.proto ) +target_sources(cpp-unified_agent_client-proto PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.pb.h + ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.grpc.pb.h +) generate_enum_serilization(cpp-unified_agent_client-proto ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.pb.h INCLUDE_HEADERS diff --git a/library/cpp/unified_agent_client/proto/CMakeLists.windows-x86_64.txt b/library/cpp/unified_agent_client/proto/CMakeLists.windows-x86_64.txt index 6f12b2aa5eee..80cbac9ae255 100644 --- a/library/cpp/unified_agent_client/proto/CMakeLists.windows-x86_64.txt +++ b/library/cpp/unified_agent_client/proto/CMakeLists.windows-x86_64.txt @@ -45,6 +45,10 @@ target_link_libraries(cpp-unified_agent_client-proto PUBLIC target_proto_messages(cpp-unified_agent_client-proto PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/unified_agent_client/proto/unified_agent.proto ) +target_sources(cpp-unified_agent_client-proto PRIVATE + ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.pb.h + ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.grpc.pb.h +) generate_enum_serilization(cpp-unified_agent_client-proto ${CMAKE_BINARY_DIR}/library/cpp/unified_agent_client/proto/unified_agent.pb.h INCLUDE_HEADERS diff --git a/library/cpp/uri/CMakeLists.darwin-arm64.txt b/library/cpp/uri/CMakeLists.darwin-arm64.txt index f4437a0a2b4d..411f67ad161b 100644 --- a/library/cpp/uri/CMakeLists.darwin-arm64.txt +++ b/library/cpp/uri/CMakeLists.darwin-arm64.txt @@ -16,6 +16,7 @@ target_link_libraries(library-cpp-uri PUBLIC library-cpp-charset ) target_sources(library-cpp-uri PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/uri/http_url.h ${CMAKE_SOURCE_DIR}/library/cpp/uri/assign.cpp ${CMAKE_SOURCE_DIR}/library/cpp/uri/common.cpp ${CMAKE_SOURCE_DIR}/library/cpp/uri/encode.cpp diff --git a/library/cpp/uri/CMakeLists.darwin-x86_64.txt b/library/cpp/uri/CMakeLists.darwin-x86_64.txt index f4437a0a2b4d..411f67ad161b 100644 --- a/library/cpp/uri/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/uri/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,7 @@ target_link_libraries(library-cpp-uri PUBLIC library-cpp-charset ) target_sources(library-cpp-uri PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/uri/http_url.h ${CMAKE_SOURCE_DIR}/library/cpp/uri/assign.cpp ${CMAKE_SOURCE_DIR}/library/cpp/uri/common.cpp ${CMAKE_SOURCE_DIR}/library/cpp/uri/encode.cpp diff --git a/library/cpp/uri/CMakeLists.linux-aarch64.txt b/library/cpp/uri/CMakeLists.linux-aarch64.txt index e5d2e1e2813c..97b15055171d 100644 --- a/library/cpp/uri/CMakeLists.linux-aarch64.txt +++ b/library/cpp/uri/CMakeLists.linux-aarch64.txt @@ -17,6 +17,7 @@ target_link_libraries(library-cpp-uri PUBLIC library-cpp-charset ) target_sources(library-cpp-uri PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/uri/http_url.h ${CMAKE_SOURCE_DIR}/library/cpp/uri/assign.cpp ${CMAKE_SOURCE_DIR}/library/cpp/uri/common.cpp ${CMAKE_SOURCE_DIR}/library/cpp/uri/encode.cpp diff --git a/library/cpp/uri/CMakeLists.linux-x86_64.txt b/library/cpp/uri/CMakeLists.linux-x86_64.txt index e5d2e1e2813c..97b15055171d 100644 --- a/library/cpp/uri/CMakeLists.linux-x86_64.txt +++ b/library/cpp/uri/CMakeLists.linux-x86_64.txt @@ -17,6 +17,7 @@ target_link_libraries(library-cpp-uri PUBLIC library-cpp-charset ) target_sources(library-cpp-uri PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/uri/http_url.h ${CMAKE_SOURCE_DIR}/library/cpp/uri/assign.cpp ${CMAKE_SOURCE_DIR}/library/cpp/uri/common.cpp ${CMAKE_SOURCE_DIR}/library/cpp/uri/encode.cpp diff --git a/library/cpp/uri/CMakeLists.windows-x86_64.txt b/library/cpp/uri/CMakeLists.windows-x86_64.txt index a9fe2359ba49..f9b970c559cd 100644 --- a/library/cpp/uri/CMakeLists.windows-x86_64.txt +++ b/library/cpp/uri/CMakeLists.windows-x86_64.txt @@ -16,6 +16,7 @@ target_link_libraries(library-cpp-uri PUBLIC library-cpp-charset ) target_sources(library-cpp-uri PRIVATE + ${CMAKE_SOURCE_DIR}/library/cpp/uri/http_url.h ${CMAKE_SOURCE_DIR}/library/cpp/uri/assign.cpp ${CMAKE_SOURCE_DIR}/library/cpp/uri/common.cpp ${CMAKE_SOURCE_DIR}/library/cpp/uri/encode.cpp diff --git a/library/cpp/yt/CMakeLists.darwin-arm64.txt b/library/cpp/yt/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..b1dc1594fc1a --- /dev/null +++ b/library/cpp/yt/CMakeLists.darwin-arm64.txt @@ -0,0 +1,24 @@ + +# 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(assert) +add_subdirectory(backtrace) +add_subdirectory(coding) +add_subdirectory(containers) +add_subdirectory(cpu_clock) +add_subdirectory(exception) +add_subdirectory(logging) +add_subdirectory(malloc) +add_subdirectory(memory) +add_subdirectory(misc) +add_subdirectory(small_containers) +add_subdirectory(string) +add_subdirectory(system) +add_subdirectory(threading) +add_subdirectory(yson) +add_subdirectory(yson_string) diff --git a/library/cpp/yt/CMakeLists.darwin-x86_64.txt b/library/cpp/yt/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..b1dc1594fc1a --- /dev/null +++ b/library/cpp/yt/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,24 @@ + +# 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(assert) +add_subdirectory(backtrace) +add_subdirectory(coding) +add_subdirectory(containers) +add_subdirectory(cpu_clock) +add_subdirectory(exception) +add_subdirectory(logging) +add_subdirectory(malloc) +add_subdirectory(memory) +add_subdirectory(misc) +add_subdirectory(small_containers) +add_subdirectory(string) +add_subdirectory(system) +add_subdirectory(threading) +add_subdirectory(yson) +add_subdirectory(yson_string) diff --git a/library/cpp/yt/CMakeLists.linux-aarch64.txt b/library/cpp/yt/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..d05e8fb68e83 --- /dev/null +++ b/library/cpp/yt/CMakeLists.linux-aarch64.txt @@ -0,0 +1,26 @@ + +# 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(assert) +add_subdirectory(backtrace) +add_subdirectory(coding) +add_subdirectory(containers) +add_subdirectory(cpu_clock) +add_subdirectory(exception) +add_subdirectory(logging) +add_subdirectory(malloc) +add_subdirectory(memory) +add_subdirectory(misc) +add_subdirectory(mlock) +add_subdirectory(small_containers) +add_subdirectory(stockpile) +add_subdirectory(string) +add_subdirectory(system) +add_subdirectory(threading) +add_subdirectory(yson) +add_subdirectory(yson_string) diff --git a/library/cpp/yt/CMakeLists.linux-x86_64.txt b/library/cpp/yt/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..d05e8fb68e83 --- /dev/null +++ b/library/cpp/yt/CMakeLists.linux-x86_64.txt @@ -0,0 +1,26 @@ + +# 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(assert) +add_subdirectory(backtrace) +add_subdirectory(coding) +add_subdirectory(containers) +add_subdirectory(cpu_clock) +add_subdirectory(exception) +add_subdirectory(logging) +add_subdirectory(malloc) +add_subdirectory(memory) +add_subdirectory(misc) +add_subdirectory(mlock) +add_subdirectory(small_containers) +add_subdirectory(stockpile) +add_subdirectory(string) +add_subdirectory(system) +add_subdirectory(threading) +add_subdirectory(yson) +add_subdirectory(yson_string) diff --git a/library/cpp/yt/CMakeLists.txt b/library/cpp/yt/CMakeLists.txt index d05e8fb68e83..d863ebd18067 100644 --- a/library/cpp/yt/CMakeLists.txt +++ b/library/cpp/yt/CMakeLists.txt @@ -6,21 +6,14 @@ # original buildsystem will not be accepted. -add_subdirectory(assert) -add_subdirectory(backtrace) -add_subdirectory(coding) -add_subdirectory(containers) -add_subdirectory(cpu_clock) -add_subdirectory(exception) -add_subdirectory(logging) -add_subdirectory(malloc) -add_subdirectory(memory) -add_subdirectory(misc) -add_subdirectory(mlock) -add_subdirectory(small_containers) -add_subdirectory(stockpile) -add_subdirectory(string) -add_subdirectory(system) -add_subdirectory(threading) -add_subdirectory(yson) -add_subdirectory(yson_string) +if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/library/cpp/yt/CMakeLists.windows-x86_64.txt b/library/cpp/yt/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..b1dc1594fc1a --- /dev/null +++ b/library/cpp/yt/CMakeLists.windows-x86_64.txt @@ -0,0 +1,24 @@ + +# 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(assert) +add_subdirectory(backtrace) +add_subdirectory(coding) +add_subdirectory(containers) +add_subdirectory(cpu_clock) +add_subdirectory(exception) +add_subdirectory(logging) +add_subdirectory(malloc) +add_subdirectory(memory) +add_subdirectory(misc) +add_subdirectory(small_containers) +add_subdirectory(string) +add_subdirectory(system) +add_subdirectory(threading) +add_subdirectory(yson) +add_subdirectory(yson_string) diff --git a/library/cpp/yt/backtrace/cursors/CMakeLists.darwin-arm64.txt b/library/cpp/yt/backtrace/cursors/CMakeLists.darwin-arm64.txt index 76c3eda332ef..6c6f5d1c5091 100644 --- a/library/cpp/yt/backtrace/cursors/CMakeLists.darwin-arm64.txt +++ b/library/cpp/yt/backtrace/cursors/CMakeLists.darwin-arm64.txt @@ -6,6 +6,4 @@ # original buildsystem will not be accepted. -add_subdirectory(frame_pointer) -add_subdirectory(interop) add_subdirectory(libunwind) diff --git a/library/cpp/yt/backtrace/cursors/CMakeLists.darwin-x86_64.txt b/library/cpp/yt/backtrace/cursors/CMakeLists.darwin-x86_64.txt index 76c3eda332ef..6c6f5d1c5091 100644 --- a/library/cpp/yt/backtrace/cursors/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/yt/backtrace/cursors/CMakeLists.darwin-x86_64.txt @@ -6,6 +6,4 @@ # original buildsystem will not be accepted. -add_subdirectory(frame_pointer) -add_subdirectory(interop) add_subdirectory(libunwind) diff --git a/library/cpp/yt/backtrace/cursors/CMakeLists.windows-x86_64.txt b/library/cpp/yt/backtrace/cursors/CMakeLists.windows-x86_64.txt index 27fb2d841759..961a9a908b1c 100644 --- a/library/cpp/yt/backtrace/cursors/CMakeLists.windows-x86_64.txt +++ b/library/cpp/yt/backtrace/cursors/CMakeLists.windows-x86_64.txt @@ -7,6 +7,3 @@ add_subdirectory(dummy) -add_subdirectory(frame_pointer) -add_subdirectory(interop) -add_subdirectory(libunwind) diff --git a/library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.txt b/library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.txt +++ b/library/cpp/yt/backtrace/cursors/frame_pointer/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/library/cpp/yt/backtrace/cursors/interop/CMakeLists.txt b/library/cpp/yt/backtrace/cursors/interop/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/library/cpp/yt/backtrace/cursors/interop/CMakeLists.txt +++ b/library/cpp/yt/backtrace/cursors/interop/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.txt b/library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.txt index d863ebd18067..380079ac7b4a 100644 --- a/library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.txt +++ b/library/cpp/yt/backtrace/cursors/libunwind/CMakeLists.txt @@ -14,6 +14,4 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL include(CMakeLists.darwin-x86_64.txt) elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/library/cpp/yt/misc/CMakeLists.darwin-arm64.txt b/library/cpp/yt/misc/CMakeLists.darwin-arm64.txt index bb8ae6f36801..84fff69dad57 100644 --- a/library/cpp/yt/misc/CMakeLists.darwin-arm64.txt +++ b/library/cpp/yt/misc/CMakeLists.darwin-arm64.txt @@ -15,6 +15,7 @@ target_link_libraries(cpp-yt-misc PUBLIC contrib-libs-cxxsupp yutil cpp-yt-exception + cpp-yt-assert ) target_sources(cpp-yt-misc PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/yt/misc/guid.cpp diff --git a/library/cpp/yt/misc/CMakeLists.darwin-x86_64.txt b/library/cpp/yt/misc/CMakeLists.darwin-x86_64.txt index bb8ae6f36801..84fff69dad57 100644 --- a/library/cpp/yt/misc/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/yt/misc/CMakeLists.darwin-x86_64.txt @@ -15,6 +15,7 @@ target_link_libraries(cpp-yt-misc PUBLIC contrib-libs-cxxsupp yutil cpp-yt-exception + cpp-yt-assert ) target_sources(cpp-yt-misc PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/yt/misc/guid.cpp diff --git a/library/cpp/yt/misc/CMakeLists.linux-aarch64.txt b/library/cpp/yt/misc/CMakeLists.linux-aarch64.txt index 7715f3febe99..15b686711c2d 100644 --- a/library/cpp/yt/misc/CMakeLists.linux-aarch64.txt +++ b/library/cpp/yt/misc/CMakeLists.linux-aarch64.txt @@ -16,6 +16,7 @@ target_link_libraries(cpp-yt-misc PUBLIC contrib-libs-cxxsupp yutil cpp-yt-exception + cpp-yt-assert ) target_sources(cpp-yt-misc PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/yt/misc/guid.cpp diff --git a/library/cpp/yt/misc/CMakeLists.linux-x86_64.txt b/library/cpp/yt/misc/CMakeLists.linux-x86_64.txt index 7715f3febe99..15b686711c2d 100644 --- a/library/cpp/yt/misc/CMakeLists.linux-x86_64.txt +++ b/library/cpp/yt/misc/CMakeLists.linux-x86_64.txt @@ -16,6 +16,7 @@ target_link_libraries(cpp-yt-misc PUBLIC contrib-libs-cxxsupp yutil cpp-yt-exception + cpp-yt-assert ) target_sources(cpp-yt-misc PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/yt/misc/guid.cpp diff --git a/library/cpp/yt/misc/CMakeLists.windows-x86_64.txt b/library/cpp/yt/misc/CMakeLists.windows-x86_64.txt index 0d302cdb6d93..305d47e0f03e 100644 --- a/library/cpp/yt/misc/CMakeLists.windows-x86_64.txt +++ b/library/cpp/yt/misc/CMakeLists.windows-x86_64.txt @@ -12,6 +12,7 @@ target_link_libraries(cpp-yt-misc PUBLIC contrib-libs-cxxsupp yutil cpp-yt-exception + cpp-yt-assert ) target_sources(cpp-yt-misc PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/yt/misc/guid.cpp diff --git a/library/cpp/yt/mlock/CMakeLists.txt b/library/cpp/yt/mlock/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/library/cpp/yt/mlock/CMakeLists.txt +++ b/library/cpp/yt/mlock/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/library/cpp/yt/stockpile/CMakeLists.txt b/library/cpp/yt/stockpile/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/library/cpp/yt/stockpile/CMakeLists.txt +++ b/library/cpp/yt/stockpile/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/library/cpp/ytalloc/api/CMakeLists.darwin-arm64.txt b/library/cpp/ytalloc/api/CMakeLists.darwin-arm64.txt index a550e54f0019..dd85d46945c8 100644 --- a/library/cpp/ytalloc/api/CMakeLists.darwin-arm64.txt +++ b/library/cpp/ytalloc/api/CMakeLists.darwin-arm64.txt @@ -12,6 +12,7 @@ target_link_libraries(cpp-ytalloc-api PUBLIC contrib-libs-cxxsupp yutil cpp-yt-misc + cpp-yt-containers ) target_sources(cpp-ytalloc-api PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/ytalloc/api/fallback.cpp diff --git a/library/cpp/ytalloc/api/CMakeLists.darwin-x86_64.txt b/library/cpp/ytalloc/api/CMakeLists.darwin-x86_64.txt index a550e54f0019..dd85d46945c8 100644 --- a/library/cpp/ytalloc/api/CMakeLists.darwin-x86_64.txt +++ b/library/cpp/ytalloc/api/CMakeLists.darwin-x86_64.txt @@ -12,6 +12,7 @@ target_link_libraries(cpp-ytalloc-api PUBLIC contrib-libs-cxxsupp yutil cpp-yt-misc + cpp-yt-containers ) target_sources(cpp-ytalloc-api PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/ytalloc/api/fallback.cpp diff --git a/library/cpp/ytalloc/api/CMakeLists.linux-aarch64.txt b/library/cpp/ytalloc/api/CMakeLists.linux-aarch64.txt index 3557a63ea82e..ad3ea51dca24 100644 --- a/library/cpp/ytalloc/api/CMakeLists.linux-aarch64.txt +++ b/library/cpp/ytalloc/api/CMakeLists.linux-aarch64.txt @@ -13,6 +13,7 @@ target_link_libraries(cpp-ytalloc-api PUBLIC contrib-libs-cxxsupp yutil cpp-yt-misc + cpp-yt-containers ) target_sources(cpp-ytalloc-api PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/ytalloc/api/fallback.cpp diff --git a/library/cpp/ytalloc/api/CMakeLists.linux-x86_64.txt b/library/cpp/ytalloc/api/CMakeLists.linux-x86_64.txt index 3557a63ea82e..ad3ea51dca24 100644 --- a/library/cpp/ytalloc/api/CMakeLists.linux-x86_64.txt +++ b/library/cpp/ytalloc/api/CMakeLists.linux-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(cpp-ytalloc-api PUBLIC contrib-libs-cxxsupp yutil cpp-yt-misc + cpp-yt-containers ) target_sources(cpp-ytalloc-api PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/ytalloc/api/fallback.cpp diff --git a/library/cpp/ytalloc/api/CMakeLists.windows-x86_64.txt b/library/cpp/ytalloc/api/CMakeLists.windows-x86_64.txt index a550e54f0019..dd85d46945c8 100644 --- a/library/cpp/ytalloc/api/CMakeLists.windows-x86_64.txt +++ b/library/cpp/ytalloc/api/CMakeLists.windows-x86_64.txt @@ -12,6 +12,7 @@ target_link_libraries(cpp-ytalloc-api PUBLIC contrib-libs-cxxsupp yutil cpp-yt-misc + cpp-yt-containers ) target_sources(cpp-ytalloc-api PRIVATE ${CMAKE_SOURCE_DIR}/library/cpp/ytalloc/api/fallback.cpp diff --git a/tools/archiver/CMakeLists.linux-aarch64.txt b/tools/archiver/CMakeLists.linux-aarch64.txt index d3947a906d35..84309748c819 100644 --- a/tools/archiver/CMakeLists.linux-aarch64.txt +++ b/tools/archiver/CMakeLists.linux-aarch64.txt @@ -22,9 +22,6 @@ target_link_options(archiver PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(archiver PRIVATE ${CMAKE_SOURCE_DIR}/tools/archiver/main.cpp diff --git a/tools/archiver/CMakeLists.linux-x86_64.txt b/tools/archiver/CMakeLists.linux-x86_64.txt index 7ae5f5ed7f20..c4b4c40e8811 100644 --- a/tools/archiver/CMakeLists.linux-x86_64.txt +++ b/tools/archiver/CMakeLists.linux-x86_64.txt @@ -23,9 +23,6 @@ target_link_options(archiver PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(archiver PRIVATE ${CMAKE_SOURCE_DIR}/tools/archiver/main.cpp diff --git a/tools/enum_parser/enum_parser/CMakeLists.linux-aarch64.txt b/tools/enum_parser/enum_parser/CMakeLists.linux-aarch64.txt index 04196e5f087f..c22d4430d3bf 100644 --- a/tools/enum_parser/enum_parser/CMakeLists.linux-aarch64.txt +++ b/tools/enum_parser/enum_parser/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(enum_parser PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(enum_parser PRIVATE ${CMAKE_SOURCE_DIR}/tools/enum_parser/enum_parser/main.cpp diff --git a/tools/enum_parser/enum_parser/CMakeLists.linux-x86_64.txt b/tools/enum_parser/enum_parser/CMakeLists.linux-x86_64.txt index 18ccff5c5522..56fabecd3bfe 100644 --- a/tools/enum_parser/enum_parser/CMakeLists.linux-x86_64.txt +++ b/tools/enum_parser/enum_parser/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(enum_parser PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(enum_parser PRIVATE ${CMAKE_SOURCE_DIR}/tools/enum_parser/enum_parser/main.cpp diff --git a/tools/rescompiler/bin/CMakeLists.linux-aarch64.txt b/tools/rescompiler/bin/CMakeLists.linux-aarch64.txt index 149f6f4225b6..c716fcd7c954 100644 --- a/tools/rescompiler/bin/CMakeLists.linux-aarch64.txt +++ b/tools/rescompiler/bin/CMakeLists.linux-aarch64.txt @@ -20,9 +20,6 @@ target_link_options(rescompiler PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(rescompiler PRIVATE ${CMAKE_SOURCE_DIR}/tools/rescompiler/main.cpp diff --git a/tools/rescompiler/bin/CMakeLists.linux-x86_64.txt b/tools/rescompiler/bin/CMakeLists.linux-x86_64.txt index dda1f62fe383..3a09473cdf26 100644 --- a/tools/rescompiler/bin/CMakeLists.linux-x86_64.txt +++ b/tools/rescompiler/bin/CMakeLists.linux-x86_64.txt @@ -21,9 +21,6 @@ target_link_options(rescompiler PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(rescompiler PRIVATE ${CMAKE_SOURCE_DIR}/tools/rescompiler/main.cpp diff --git a/util/CMakeLists.windows-x86_64.txt b/util/CMakeLists.windows-x86_64.txt index c906d00cad0d..fa8e52e246ab 100644 --- a/util/CMakeLists.windows-x86_64.txt +++ b/util/CMakeLists.windows-x86_64.txt @@ -10,9 +10,6 @@ add_subdirectory(charset) add_subdirectory(draft) add_library(yutil) -target_compile_options(yutil PRIVATE - -Wnarrowing -) target_link_libraries(yutil PUBLIC contrib-libs-cxxsupp util-charset diff --git a/util/charset/CMakeLists.windows-x86_64.txt b/util/charset/CMakeLists.windows-x86_64.txt index b63f9cf0470a..a13d66250fea 100644 --- a/util/charset/CMakeLists.windows-x86_64.txt +++ b/util/charset/CMakeLists.windows-x86_64.txt @@ -25,5 +25,5 @@ target_sources_custom(util-charset SRCS ${CMAKE_SOURCE_DIR}/util/charset/wide_sse41.cpp CUSTOM_FLAGS - -msse4.1 + /D__SSE4_1__=1 ) diff --git a/ydb/CMakeLists.txt b/ydb/CMakeLists.txt index 066036e84b3e..0f0a2d60411f 100644 --- a/ydb/CMakeLists.txt +++ b/ydb/CMakeLists.txt @@ -12,6 +12,7 @@ add_subdirectory(library) add_subdirectory(public) add_subdirectory(services) add_subdirectory(tests) +add_subdirectory(tools) add_custom_target(ydb_py_protos) add_custom_command( diff --git a/ydb/apps/CMakeLists.txt b/ydb/apps/CMakeLists.txt index e1c6d2181e21..08df7dd2187e 100644 --- a/ydb/apps/CMakeLists.txt +++ b/ydb/apps/CMakeLists.txt @@ -7,5 +7,6 @@ add_subdirectory(pgwire) +add_subdirectory(version) add_subdirectory(ydb) add_subdirectory(ydbd) diff --git a/ydb/apps/pgwire/CMakeLists.darwin-arm64.txt b/ydb/apps/pgwire/CMakeLists.darwin-arm64.txt index c690091c8ad8..b23b1fa63c23 100644 --- a/ydb/apps/pgwire/CMakeLists.darwin-arm64.txt +++ b/ydb/apps/pgwire/CMakeLists.darwin-arm64.txt @@ -25,10 +25,14 @@ target_link_options(pgwire PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(pgwire PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/appdata.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_connection.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pgwire.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/signals.h ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/main.cpp ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_connection.cpp ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_proxy.cpp diff --git a/ydb/apps/pgwire/CMakeLists.darwin-x86_64.txt b/ydb/apps/pgwire/CMakeLists.darwin-x86_64.txt index 0b58afab88a0..193dbe465126 100644 --- a/ydb/apps/pgwire/CMakeLists.darwin-x86_64.txt +++ b/ydb/apps/pgwire/CMakeLists.darwin-x86_64.txt @@ -26,10 +26,14 @@ target_link_options(pgwire PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(pgwire PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/appdata.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_connection.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pgwire.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/signals.h ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/main.cpp ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_connection.cpp ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_proxy.cpp diff --git a/ydb/apps/pgwire/CMakeLists.linux-aarch64.txt b/ydb/apps/pgwire/CMakeLists.linux-aarch64.txt index 29022b358bcd..877af26e9392 100644 --- a/ydb/apps/pgwire/CMakeLists.linux-aarch64.txt +++ b/ydb/apps/pgwire/CMakeLists.linux-aarch64.txt @@ -28,11 +28,14 @@ target_link_options(pgwire PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(pgwire PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/appdata.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_connection.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pgwire.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/signals.h ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/main.cpp ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_connection.cpp ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_proxy.cpp diff --git a/ydb/apps/pgwire/CMakeLists.linux-x86_64.txt b/ydb/apps/pgwire/CMakeLists.linux-x86_64.txt index 2cb4b411b95b..1ee3fd6a1a3e 100644 --- a/ydb/apps/pgwire/CMakeLists.linux-x86_64.txt +++ b/ydb/apps/pgwire/CMakeLists.linux-x86_64.txt @@ -29,11 +29,14 @@ target_link_options(pgwire PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(pgwire PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/appdata.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_connection.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pgwire.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/signals.h ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/main.cpp ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_connection.cpp ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_proxy.cpp diff --git a/ydb/apps/pgwire/CMakeLists.windows-x86_64.txt b/ydb/apps/pgwire/CMakeLists.windows-x86_64.txt index 542ff8e33c82..c3b707609028 100644 --- a/ydb/apps/pgwire/CMakeLists.windows-x86_64.txt +++ b/ydb/apps/pgwire/CMakeLists.windows-x86_64.txt @@ -23,6 +23,12 @@ target_link_libraries(pgwire PUBLIC udf-service-exception_policy ) target_sources(pgwire PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/appdata.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_connection.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pgwire.h + ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/signals.h ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/main.cpp ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_connection.cpp ${CMAKE_SOURCE_DIR}/ydb/apps/pgwire/pg_ydb_proxy.cpp diff --git a/ydb/apps/version/CMakeLists.darwin-arm64.txt b/ydb/apps/version/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..ce969ee15772 --- /dev/null +++ b/ydb/apps/version/CMakeLists.darwin-arm64.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(version_definition) +target_link_libraries(version_definition PUBLIC + contrib-libs-cxxsupp + yutil + version +) +target_sources(version_definition PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/apps/version/version_definition.cpp +) diff --git a/ydb/apps/version/CMakeLists.darwin-x86_64.txt b/ydb/apps/version/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..ce969ee15772 --- /dev/null +++ b/ydb/apps/version/CMakeLists.darwin-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(version_definition) +target_link_libraries(version_definition PUBLIC + contrib-libs-cxxsupp + yutil + version +) +target_sources(version_definition PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/apps/version/version_definition.cpp +) diff --git a/ydb/apps/version/CMakeLists.linux-aarch64.txt b/ydb/apps/version/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..bca854e1db0f --- /dev/null +++ b/ydb/apps/version/CMakeLists.linux-aarch64.txt @@ -0,0 +1,19 @@ + +# 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(version_definition) +target_link_libraries(version_definition PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + version +) +target_sources(version_definition PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/apps/version/version_definition.cpp +) diff --git a/ydb/apps/version/CMakeLists.linux-x86_64.txt b/ydb/apps/version/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..bca854e1db0f --- /dev/null +++ b/ydb/apps/version/CMakeLists.linux-x86_64.txt @@ -0,0 +1,19 @@ + +# 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(version_definition) +target_link_libraries(version_definition PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + version +) +target_sources(version_definition PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/apps/version/version_definition.cpp +) diff --git a/ydb/apps/version/CMakeLists.txt b/ydb/apps/version/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/apps/version/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/apps/version/CMakeLists.windows-x86_64.txt b/ydb/apps/version/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..ce969ee15772 --- /dev/null +++ b/ydb/apps/version/CMakeLists.windows-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(version_definition) +target_link_libraries(version_definition PUBLIC + contrib-libs-cxxsupp + yutil + version +) +target_sources(version_definition PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/apps/version/version_definition.cpp +) diff --git a/ydb/apps/version/version_definition.cpp b/ydb/apps/version/version_definition.cpp new file mode 100644 index 000000000000..9941913948be --- /dev/null +++ b/ydb/apps/version/version_definition.cpp @@ -0,0 +1,22 @@ +#include + +NKikimrConfig::TCurrentCompatibilityInfo NKikimr::TCompatibilityInfo::MakeCurrent() { + using TCurrentConstructor = NKikimr::TCompatibilityInfo::TProtoConstructor::TCurrentCompatibilityInfo; + using TVersionConstructor = NKikimr::TCompatibilityInfo::TProtoConstructor::TVersion; + using TCompatibilityRuleConstructor = NKikimr::TCompatibilityInfo::TProtoConstructor::TCompatibilityRule; + + return TCurrentConstructor{ + .Application = "ydb", + .Version = TVersionConstructor{ + .Year = 24, + .Major = 2, + }, + .CanConnectTo = { + TCompatibilityRuleConstructor{ + .Application = "nbs", + .LowerLimit = TVersionConstructor{ .Year = 23, .Major = 3 }, + .UpperLimit = TVersionConstructor{ .Year = 24, .Major = 2 }, + }, + }, + }.ToPB(); +} diff --git a/ydb/apps/version/ya.make b/ydb/apps/version/ya.make new file mode 100644 index 000000000000..d3b1eb34a7f1 --- /dev/null +++ b/ydb/apps/version/ya.make @@ -0,0 +1,11 @@ +LIBRARY(version_definition) + +SRCS( + version_definition.cpp +) + +PEERDIR( + ydb/core/driver_lib/version +) + +END() diff --git a/ydb/apps/ydb/CMakeLists.darwin-arm64.txt b/ydb/apps/ydb/CMakeLists.darwin-arm64.txt index 4cc7165a1ad5..a4fc00d12181 100644 --- a/ydb/apps/ydb/CMakeLists.darwin-arm64.txt +++ b/ydb/apps/ydb/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(ydb PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb PRIVATE ${CMAKE_SOURCE_DIR}/ydb/apps/ydb/main.cpp diff --git a/ydb/apps/ydb/CMakeLists.darwin-x86_64.txt b/ydb/apps/ydb/CMakeLists.darwin-x86_64.txt index 87e7b9d72a89..f26e80a52a79 100644 --- a/ydb/apps/ydb/CMakeLists.darwin-x86_64.txt +++ b/ydb/apps/ydb/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(ydb PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb PRIVATE ${CMAKE_SOURCE_DIR}/ydb/apps/ydb/main.cpp diff --git a/ydb/apps/ydb/CMakeLists.linux-aarch64.txt b/ydb/apps/ydb/CMakeLists.linux-aarch64.txt index 619d67ad354a..85974a40d7f0 100644 --- a/ydb/apps/ydb/CMakeLists.linux-aarch64.txt +++ b/ydb/apps/ydb/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb PRIVATE ${CMAKE_SOURCE_DIR}/ydb/apps/ydb/main.cpp diff --git a/ydb/apps/ydb/CMakeLists.linux-x86_64.txt b/ydb/apps/ydb/CMakeLists.linux-x86_64.txt index ab7446e04241..43fb744390ff 100644 --- a/ydb/apps/ydb/CMakeLists.linux-x86_64.txt +++ b/ydb/apps/ydb/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb PRIVATE ${CMAKE_SOURCE_DIR}/ydb/apps/ydb/main.cpp diff --git a/ydb/apps/ydb/ut/CMakeLists.linux-aarch64.txt b/ydb/apps/ydb/ut/CMakeLists.linux-aarch64.txt index 8b6e16f12afb..b39c65f5ffcf 100644 --- a/ydb/apps/ydb/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/apps/ydb/ut/CMakeLists.linux-aarch64.txt @@ -22,9 +22,6 @@ target_link_options(ydb-apps-ydb-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-apps-ydb-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/apps/ydb/ut/workload-topic.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/apps/ydb/ut/CMakeLists.linux-x86_64.txt b/ydb/apps/ydb/ut/CMakeLists.linux-x86_64.txt index 077cbbdad073..d282351a9f0d 100644 --- a/ydb/apps/ydb/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/apps/ydb/ut/CMakeLists.linux-x86_64.txt @@ -23,9 +23,6 @@ target_link_options(ydb-apps-ydb-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-apps-ydb-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/apps/ydb/ut/workload-topic.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/apps/ydbd/CMakeLists.darwin-arm64.txt b/ydb/apps/ydbd/CMakeLists.darwin-arm64.txt index 4516b5c7c8ec..e9139a985617 100644 --- a/ydb/apps/ydbd/CMakeLists.darwin-arm64.txt +++ b/ydb/apps/ydbd/CMakeLists.darwin-arm64.txt @@ -14,6 +14,7 @@ target_compile_options(ydbd PRIVATE target_link_libraries(ydbd PUBLIC contrib-libs-cxxsupp yutil + version_definition run ydb-core-protos ydb-core-security @@ -53,10 +54,9 @@ target_link_options(ydbd PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydbd PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/export.h ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/export.cpp ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/main.cpp ) diff --git a/ydb/apps/ydbd/CMakeLists.darwin-x86_64.txt b/ydb/apps/ydbd/CMakeLists.darwin-x86_64.txt index b7b8faa6d08e..1d6341727d76 100644 --- a/ydb/apps/ydbd/CMakeLists.darwin-x86_64.txt +++ b/ydb/apps/ydbd/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,7 @@ target_link_libraries(ydbd PUBLIC yutil library-cpp-cpuid_check udfs-common-hyperscan + version_definition run ydb-core-protos ydb-core-security @@ -55,10 +56,9 @@ target_link_options(ydbd PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydbd PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/export.h ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/export.cpp ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/main.cpp ) diff --git a/ydb/apps/ydbd/CMakeLists.linux-aarch64.txt b/ydb/apps/ydbd/CMakeLists.linux-aarch64.txt index f44a2cbc9449..1cecfe06897d 100644 --- a/ydb/apps/ydbd/CMakeLists.linux-aarch64.txt +++ b/ydb/apps/ydbd/CMakeLists.linux-aarch64.txt @@ -15,6 +15,7 @@ target_link_libraries(ydbd PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + version_definition run ydb-core-protos ydb-core-security @@ -56,11 +57,9 @@ target_link_options(ydbd PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydbd PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/export.h ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/export.cpp ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/main.cpp ) diff --git a/ydb/apps/ydbd/CMakeLists.linux-x86_64.txt b/ydb/apps/ydbd/CMakeLists.linux-x86_64.txt index 5f9d4bf8df83..dd34e31acbb1 100644 --- a/ydb/apps/ydbd/CMakeLists.linux-x86_64.txt +++ b/ydb/apps/ydbd/CMakeLists.linux-x86_64.txt @@ -17,6 +17,7 @@ target_link_libraries(ydbd PUBLIC yutil library-cpp-cpuid_check hyperscan_udf + version_definition run ydb-core-protos ydb-core-security @@ -58,11 +59,9 @@ target_link_options(ydbd PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydbd PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/export.h ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/export.cpp ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/main.cpp ) diff --git a/ydb/apps/ydbd/CMakeLists.windows-x86_64.txt b/ydb/apps/ydbd/CMakeLists.windows-x86_64.txt index c0296c58f8e4..2e7334f4eb8f 100644 --- a/ydb/apps/ydbd/CMakeLists.windows-x86_64.txt +++ b/ydb/apps/ydbd/CMakeLists.windows-x86_64.txt @@ -17,6 +17,7 @@ target_link_libraries(ydbd PUBLIC yutil library-cpp-cpuid_check udfs-common-hyperscan + version_definition run ydb-core-protos ydb-core-security @@ -53,6 +54,7 @@ target_link_libraries(ydbd PUBLIC client-ydb_persqueue_public-codecs ) target_sources(ydbd PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/export.h ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/export.cpp ${CMAKE_SOURCE_DIR}/ydb/apps/ydbd/main.cpp ) diff --git a/ydb/apps/ydbd/ya.make b/ydb/apps/ydbd/ya.make index 4f15c464fba0..8fa887680987 100644 --- a/ydb/apps/ydbd/ya.make +++ b/ydb/apps/ydbd/ya.make @@ -35,6 +35,7 @@ IF (ARCH_X86_64) ENDIF() PEERDIR( + ydb/apps/version ydb/core/driver_lib/run ydb/core/protos ydb/core/security @@ -54,6 +55,7 @@ PEERDIR( ydb/library/yql/udfs/common/histogram ydb/library/yql/udfs/common/hyperloglog ydb/library/yql/udfs/common/ip_base + ydb/library/yql/udfs/common/knn ydb/library/yql/udfs/common/json ydb/library/yql/udfs/common/json2 ydb/library/yql/udfs/common/math diff --git a/ydb/core/CMakeLists.txt b/ydb/core/CMakeLists.txt index 3436fc14bd8c..9255620f7c65 100644 --- a/ydb/core/CMakeLists.txt +++ b/ydb/core/CMakeLists.txt @@ -12,6 +12,7 @@ add_subdirectory(base) add_subdirectory(blob_depot) add_subdirectory(blobstorage) add_subdirectory(blockstore) +add_subdirectory(change_exchange) add_subdirectory(client) add_subdirectory(cms) add_subdirectory(control) @@ -26,6 +27,7 @@ add_subdirectory(external_sources) add_subdirectory(filestore) add_subdirectory(formats) add_subdirectory(fq) +add_subdirectory(graph) add_subdirectory(grpc_caching) add_subdirectory(grpc_services) add_subdirectory(grpc_streaming) diff --git a/ydb/core/actorlib_impl/CMakeLists.darwin-arm64.txt b/ydb/core/actorlib_impl/CMakeLists.darwin-arm64.txt index 5255accbc3ec..44857f123d07 100644 --- a/ydb/core/actorlib_impl/CMakeLists.darwin-arm64.txt +++ b/ydb/core/actorlib_impl/CMakeLists.darwin-arm64.txt @@ -37,6 +37,21 @@ target_link_libraries(ydb-core-actorlib_impl PUBLIC ydb-core-util ) target_sources(ydb-core-actorlib_impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/async_destroyer.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/connect_socket_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/destruct_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/http_request_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/load_network.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/long_timer.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/mad_squirrel.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/name_service_client_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/proto_ready_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/read_data_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/read_http_reply_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/router_rr.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/send_data_protocol.h ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_tracker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/connect_socket_protocol.cpp ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/load_network.cpp diff --git a/ydb/core/actorlib_impl/CMakeLists.darwin-x86_64.txt b/ydb/core/actorlib_impl/CMakeLists.darwin-x86_64.txt index 5255accbc3ec..44857f123d07 100644 --- a/ydb/core/actorlib_impl/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/actorlib_impl/CMakeLists.darwin-x86_64.txt @@ -37,6 +37,21 @@ target_link_libraries(ydb-core-actorlib_impl PUBLIC ydb-core-util ) target_sources(ydb-core-actorlib_impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/async_destroyer.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/connect_socket_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/destruct_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/http_request_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/load_network.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/long_timer.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/mad_squirrel.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/name_service_client_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/proto_ready_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/read_data_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/read_http_reply_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/router_rr.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/send_data_protocol.h ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_tracker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/connect_socket_protocol.cpp ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/load_network.cpp diff --git a/ydb/core/actorlib_impl/CMakeLists.linux-aarch64.txt b/ydb/core/actorlib_impl/CMakeLists.linux-aarch64.txt index 039f2bbc20c3..f544cba4c8f4 100644 --- a/ydb/core/actorlib_impl/CMakeLists.linux-aarch64.txt +++ b/ydb/core/actorlib_impl/CMakeLists.linux-aarch64.txt @@ -38,6 +38,21 @@ target_link_libraries(ydb-core-actorlib_impl PUBLIC ydb-core-util ) target_sources(ydb-core-actorlib_impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/async_destroyer.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/connect_socket_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/destruct_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/http_request_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/load_network.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/long_timer.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/mad_squirrel.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/name_service_client_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/proto_ready_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/read_data_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/read_http_reply_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/router_rr.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/send_data_protocol.h ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_tracker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/connect_socket_protocol.cpp ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/load_network.cpp diff --git a/ydb/core/actorlib_impl/CMakeLists.linux-x86_64.txt b/ydb/core/actorlib_impl/CMakeLists.linux-x86_64.txt index 039f2bbc20c3..f544cba4c8f4 100644 --- a/ydb/core/actorlib_impl/CMakeLists.linux-x86_64.txt +++ b/ydb/core/actorlib_impl/CMakeLists.linux-x86_64.txt @@ -38,6 +38,21 @@ target_link_libraries(ydb-core-actorlib_impl PUBLIC ydb-core-util ) target_sources(ydb-core-actorlib_impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/async_destroyer.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/connect_socket_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/destruct_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/http_request_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/load_network.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/long_timer.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/mad_squirrel.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/name_service_client_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/proto_ready_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/read_data_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/read_http_reply_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/router_rr.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/send_data_protocol.h ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_tracker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/connect_socket_protocol.cpp ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/load_network.cpp diff --git a/ydb/core/actorlib_impl/CMakeLists.windows-x86_64.txt b/ydb/core/actorlib_impl/CMakeLists.windows-x86_64.txt index 5255accbc3ec..44857f123d07 100644 --- a/ydb/core/actorlib_impl/CMakeLists.windows-x86_64.txt +++ b/ydb/core/actorlib_impl/CMakeLists.windows-x86_64.txt @@ -37,6 +37,21 @@ target_link_libraries(ydb-core-actorlib_impl PUBLIC ydb-core-util ) target_sources(ydb-core-actorlib_impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/async_destroyer.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/connect_socket_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/destruct_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/http_request_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/load_network.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/long_timer.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/mad_squirrel.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/name_service_client_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/proto_ready_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/read_data_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/read_http_reply_protocol.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/router_rr.h + ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/send_data_protocol.h ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_tracker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/connect_socket_protocol.cpp ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/load_network.cpp diff --git a/ydb/core/actorlib_impl/ut/CMakeLists.darwin-arm64.txt b/ydb/core/actorlib_impl/ut/CMakeLists.darwin-arm64.txt index 8af6e8854fca..8cf38ba69fb3 100644 --- a/ydb/core/actorlib_impl/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/actorlib_impl/ut/CMakeLists.darwin-arm64.txt @@ -19,19 +19,19 @@ target_link_libraries(ydb-core-actorlib_impl-ut PUBLIC yutil cpp-testing-unittest_main ydb-core-actorlib_impl + version_definition library-actors-core library-actors-interconnect library-cpp-getopt library-cpp-svnversion core-testlib-actors testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-core-actorlib_impl-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-actorlib_impl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_activity_ut.cpp @@ -65,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/actorlib_impl/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/actorlib_impl/ut/CMakeLists.darwin-x86_64.txt index b9973a4830cb..089fb719b212 100644 --- a/ydb/core/actorlib_impl/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/actorlib_impl/ut/CMakeLists.darwin-x86_64.txt @@ -20,19 +20,19 @@ target_link_libraries(ydb-core-actorlib_impl-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main ydb-core-actorlib_impl + version_definition library-actors-core library-actors-interconnect library-cpp-getopt library-cpp-svnversion core-testlib-actors testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-core-actorlib_impl-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-actorlib_impl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_activity_ut.cpp @@ -66,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/actorlib_impl/ut/CMakeLists.linux-aarch64.txt b/ydb/core/actorlib_impl/ut/CMakeLists.linux-aarch64.txt index 42d60e26b33b..5b399007a656 100644 --- a/ydb/core/actorlib_impl/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/actorlib_impl/ut/CMakeLists.linux-aarch64.txt @@ -20,12 +20,14 @@ target_link_libraries(ydb-core-actorlib_impl-ut PUBLIC yutil cpp-testing-unittest_main ydb-core-actorlib_impl + version_definition library-actors-core library-actors-interconnect library-cpp-getopt library-cpp-svnversion core-testlib-actors testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-core-actorlib_impl-ut PRIVATE -ldl @@ -33,9 +35,6 @@ target_link_options(ydb-core-actorlib_impl-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-actorlib_impl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_activity_ut.cpp @@ -69,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/actorlib_impl/ut/CMakeLists.linux-x86_64.txt b/ydb/core/actorlib_impl/ut/CMakeLists.linux-x86_64.txt index 6f3a983e6926..cec69ce080fd 100644 --- a/ydb/core/actorlib_impl/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/actorlib_impl/ut/CMakeLists.linux-x86_64.txt @@ -21,12 +21,14 @@ target_link_libraries(ydb-core-actorlib_impl-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main ydb-core-actorlib_impl + version_definition library-actors-core library-actors-interconnect library-cpp-getopt library-cpp-svnversion core-testlib-actors testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-core-actorlib_impl-ut PRIVATE -ldl @@ -34,9 +36,6 @@ target_link_options(ydb-core-actorlib_impl-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-actorlib_impl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_activity_ut.cpp @@ -70,6 +69,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/actorlib_impl/ut/CMakeLists.windows-x86_64.txt b/ydb/core/actorlib_impl/ut/CMakeLists.windows-x86_64.txt index 056946a8b432..dfcd699fb474 100644 --- a/ydb/core/actorlib_impl/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/actorlib_impl/ut/CMakeLists.windows-x86_64.txt @@ -20,12 +20,14 @@ target_link_libraries(ydb-core-actorlib_impl-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main ydb-core-actorlib_impl + version_definition library-actors-core library-actors-interconnect library-cpp-getopt library-cpp-svnversion core-testlib-actors testlib-basics-default + minikql-comp_nodes-llvm14 ) target_sources(ydb-core-actorlib_impl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/actorlib_impl/actor_activity_ut.cpp @@ -59,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/actorlib_impl/ut/ya.make b/ydb/core/actorlib_impl/ut/ya.make index 0a89b3e4b6e9..d4f2a0bb1540 100644 --- a/ydb/core/actorlib_impl/ut/ya.make +++ b/ydb/core/actorlib_impl/ut/ya.make @@ -13,6 +13,7 @@ ELSE() ENDIF() PEERDIR( + ydb/apps/version ydb/library/actors/core ydb/library/actors/interconnect library/cpp/getopt diff --git a/ydb/core/audit/CMakeLists.darwin-arm64.txt b/ydb/core/audit/CMakeLists.darwin-arm64.txt index c66501c4bb2b..66c4ee2b9394 100644 --- a/ydb/core/audit/CMakeLists.darwin-arm64.txt +++ b/ydb/core/audit/CMakeLists.darwin-arm64.txt @@ -24,6 +24,8 @@ target_link_libraries(ydb-core-audit PUBLIC library-cpp-resource ) target_sources(ydb-core-audit PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log.h ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log.cpp ) diff --git a/ydb/core/audit/CMakeLists.darwin-x86_64.txt b/ydb/core/audit/CMakeLists.darwin-x86_64.txt index c66501c4bb2b..66c4ee2b9394 100644 --- a/ydb/core/audit/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/audit/CMakeLists.darwin-x86_64.txt @@ -24,6 +24,8 @@ target_link_libraries(ydb-core-audit PUBLIC library-cpp-resource ) target_sources(ydb-core-audit PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log.h ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log.cpp ) diff --git a/ydb/core/audit/CMakeLists.linux-aarch64.txt b/ydb/core/audit/CMakeLists.linux-aarch64.txt index aeec46ea8451..c7b451b2dded 100644 --- a/ydb/core/audit/CMakeLists.linux-aarch64.txt +++ b/ydb/core/audit/CMakeLists.linux-aarch64.txt @@ -25,6 +25,8 @@ target_link_libraries(ydb-core-audit PUBLIC library-cpp-resource ) target_sources(ydb-core-audit PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log.h ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log.cpp ) diff --git a/ydb/core/audit/CMakeLists.linux-x86_64.txt b/ydb/core/audit/CMakeLists.linux-x86_64.txt index aeec46ea8451..c7b451b2dded 100644 --- a/ydb/core/audit/CMakeLists.linux-x86_64.txt +++ b/ydb/core/audit/CMakeLists.linux-x86_64.txt @@ -25,6 +25,8 @@ target_link_libraries(ydb-core-audit PUBLIC library-cpp-resource ) target_sources(ydb-core-audit PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log.h ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log.cpp ) diff --git a/ydb/core/audit/CMakeLists.windows-x86_64.txt b/ydb/core/audit/CMakeLists.windows-x86_64.txt index c66501c4bb2b..66c4ee2b9394 100644 --- a/ydb/core/audit/CMakeLists.windows-x86_64.txt +++ b/ydb/core/audit/CMakeLists.windows-x86_64.txt @@ -24,6 +24,8 @@ target_link_libraries(ydb-core-audit PUBLIC library-cpp-resource ) target_sources(ydb-core-audit PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log.h ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/audit/audit_log.cpp ) diff --git a/ydb/core/base/CMakeLists.darwin-arm64.txt b/ydb/core/base/CMakeLists.darwin-arm64.txt index c6b5d1ae705e..9006334ad342 100644 --- a/ydb/core/base/CMakeLists.darwin-arm64.txt +++ b/ydb/core/base/CMakeLists.darwin-arm64.txt @@ -28,9 +28,9 @@ target_link_libraries(ydb-core-base PUBLIC core-base-services ydb-core-debug ydb-core-erasure + core-graph-api ydb-core-protos core-protos-out - ydb-core-scheme ydb-library-aclib ydb-library-login ydb-library-pdisk_io @@ -42,6 +42,42 @@ target_link_libraries(ydb-core-base PUBLIC library-cpp-dwarf_backtrace ) target_sources(ydb-core-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/base/appdata.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/backtrace.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/blobstorage.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/channel_profiles.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/counters.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/domain.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/event_filter.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/group_stat.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/hive.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/interconnect_channels.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/localdb.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/location.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/logoblob.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/memobserver.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/nameservice.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/pool_stats_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/resource_profile.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/row_version.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/shared_quota.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_guardian_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/storage_pools.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/subdomain.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_pipe.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_pipecache.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tabletid.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_types.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/traceid.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tracing.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tx_processing.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/user_registry.h ${CMAKE_SOURCE_DIR}/ydb/core/base/actor_activity_names.cpp ${CMAKE_SOURCE_DIR}/ydb/core/base/appdata.cpp ${CMAKE_SOURCE_DIR}/ydb/core/base/backtrace.cpp diff --git a/ydb/core/base/CMakeLists.darwin-x86_64.txt b/ydb/core/base/CMakeLists.darwin-x86_64.txt index c6b5d1ae705e..9006334ad342 100644 --- a/ydb/core/base/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/base/CMakeLists.darwin-x86_64.txt @@ -28,9 +28,9 @@ target_link_libraries(ydb-core-base PUBLIC core-base-services ydb-core-debug ydb-core-erasure + core-graph-api ydb-core-protos core-protos-out - ydb-core-scheme ydb-library-aclib ydb-library-login ydb-library-pdisk_io @@ -42,6 +42,42 @@ target_link_libraries(ydb-core-base PUBLIC library-cpp-dwarf_backtrace ) target_sources(ydb-core-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/base/appdata.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/backtrace.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/blobstorage.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/channel_profiles.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/counters.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/domain.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/event_filter.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/group_stat.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/hive.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/interconnect_channels.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/localdb.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/location.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/logoblob.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/memobserver.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/nameservice.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/pool_stats_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/resource_profile.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/row_version.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/shared_quota.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_guardian_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/storage_pools.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/subdomain.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_pipe.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_pipecache.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tabletid.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_types.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/traceid.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tracing.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tx_processing.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/user_registry.h ${CMAKE_SOURCE_DIR}/ydb/core/base/actor_activity_names.cpp ${CMAKE_SOURCE_DIR}/ydb/core/base/appdata.cpp ${CMAKE_SOURCE_DIR}/ydb/core/base/backtrace.cpp diff --git a/ydb/core/base/CMakeLists.linux-aarch64.txt b/ydb/core/base/CMakeLists.linux-aarch64.txt index 8439bb743e78..90c5ec4c5b9a 100644 --- a/ydb/core/base/CMakeLists.linux-aarch64.txt +++ b/ydb/core/base/CMakeLists.linux-aarch64.txt @@ -29,9 +29,9 @@ target_link_libraries(ydb-core-base PUBLIC core-base-services ydb-core-debug ydb-core-erasure + core-graph-api ydb-core-protos core-protos-out - ydb-core-scheme ydb-library-aclib ydb-library-login ydb-library-pdisk_io @@ -43,6 +43,42 @@ target_link_libraries(ydb-core-base PUBLIC library-cpp-dwarf_backtrace ) target_sources(ydb-core-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/base/appdata.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/backtrace.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/blobstorage.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/channel_profiles.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/counters.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/domain.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/event_filter.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/group_stat.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/hive.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/interconnect_channels.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/localdb.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/location.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/logoblob.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/memobserver.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/nameservice.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/pool_stats_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/resource_profile.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/row_version.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/shared_quota.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_guardian_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/storage_pools.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/subdomain.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_pipe.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_pipecache.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tabletid.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_types.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/traceid.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tracing.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tx_processing.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/user_registry.h ${CMAKE_SOURCE_DIR}/ydb/core/base/actor_activity_names.cpp ${CMAKE_SOURCE_DIR}/ydb/core/base/appdata.cpp ${CMAKE_SOURCE_DIR}/ydb/core/base/backtrace.cpp diff --git a/ydb/core/base/CMakeLists.linux-x86_64.txt b/ydb/core/base/CMakeLists.linux-x86_64.txt index 8439bb743e78..90c5ec4c5b9a 100644 --- a/ydb/core/base/CMakeLists.linux-x86_64.txt +++ b/ydb/core/base/CMakeLists.linux-x86_64.txt @@ -29,9 +29,9 @@ target_link_libraries(ydb-core-base PUBLIC core-base-services ydb-core-debug ydb-core-erasure + core-graph-api ydb-core-protos core-protos-out - ydb-core-scheme ydb-library-aclib ydb-library-login ydb-library-pdisk_io @@ -43,6 +43,42 @@ target_link_libraries(ydb-core-base PUBLIC library-cpp-dwarf_backtrace ) target_sources(ydb-core-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/base/appdata.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/backtrace.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/blobstorage.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/channel_profiles.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/counters.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/domain.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/event_filter.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/group_stat.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/hive.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/interconnect_channels.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/localdb.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/location.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/logoblob.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/memobserver.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/nameservice.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/pool_stats_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/resource_profile.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/row_version.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/shared_quota.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_guardian_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/storage_pools.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/subdomain.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_pipe.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_pipecache.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tabletid.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_types.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/traceid.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tracing.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tx_processing.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/user_registry.h ${CMAKE_SOURCE_DIR}/ydb/core/base/actor_activity_names.cpp ${CMAKE_SOURCE_DIR}/ydb/core/base/appdata.cpp ${CMAKE_SOURCE_DIR}/ydb/core/base/backtrace.cpp diff --git a/ydb/core/base/CMakeLists.windows-x86_64.txt b/ydb/core/base/CMakeLists.windows-x86_64.txt index dfa768a96b98..7b53d11c64bb 100644 --- a/ydb/core/base/CMakeLists.windows-x86_64.txt +++ b/ydb/core/base/CMakeLists.windows-x86_64.txt @@ -28,9 +28,9 @@ target_link_libraries(ydb-core-base PUBLIC core-base-services ydb-core-debug ydb-core-erasure + core-graph-api ydb-core-protos core-protos-out - ydb-core-scheme ydb-library-aclib ydb-library-login ydb-library-pdisk_io @@ -41,6 +41,42 @@ target_link_libraries(ydb-core-base PUBLIC cpp-deprecated-atomic ) target_sources(ydb-core-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/base/appdata.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/backtrace.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/blobstorage.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/channel_profiles.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/counters.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/domain.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/event_filter.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/group_stat.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/hive.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/interconnect_channels.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/localdb.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/location.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/logoblob.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/memobserver.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/nameservice.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/pool_stats_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/resource_profile.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/row_version.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/shared_quota.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_guardian_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/statestorage_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/storage_pools.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/subdomain.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_pipe.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_pipecache.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tabletid.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tablet_types.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/traceid.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tracing.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/tx_processing.h + ${CMAKE_SOURCE_DIR}/ydb/core/base/user_registry.h ${CMAKE_SOURCE_DIR}/ydb/core/base/actor_activity_names.cpp ${CMAKE_SOURCE_DIR}/ydb/core/base/appdata.cpp ${CMAKE_SOURCE_DIR}/ydb/core/base/backtrace.cpp diff --git a/ydb/core/base/appdata_fwd.h b/ydb/core/base/appdata_fwd.h index c1f49337d067..750277b06165 100644 --- a/ydb/core/base/appdata_fwd.h +++ b/ydb/core/base/appdata_fwd.h @@ -239,7 +239,9 @@ struct TAppData { TVector AdministrationAllowedSIDs; // users/groups which allowed to perform administrative tasks TVector DefaultUserSIDs; TString AllAuthenticatedUsers = "all-users@well-known"; + TVector RegisterDynamicNodeAllowedSIDs; TString TenantName; + TString NodeName; TIntrusivePtr ResourceProfiles; diff --git a/ydb/core/base/blobstorage.h b/ydb/core/base/blobstorage.h index 34c07e6feaa3..f4037f27ca2c 100644 --- a/ydb/core/base/blobstorage.h +++ b/ydb/core/base/blobstorage.h @@ -786,64 +786,35 @@ struct TEvBlobStorage { EvBunchOfEvents, // blobstorage controller interface - // EvControllerReadSchemeString = EvPut + 11 * 512, - // EvControllerReadDataString, - EvControllerRegisterNode = EvPut + 11 * 512 + 2, - EvControllerCreatePDisk, - EvControllerCreateVDiskSlots, - EvControllerCreateGroup, - EvControllerSelectGroups, - EvControllerGetGroup, - EvControllerUpdateDiskStatus, - EvControllerUpdateGroupsUsage, // Not used. - EvControllerConfigRequest, - EvControllerConfigResponse, - EvControllerProposeRequest, - EvControllerProposeResponse, - EvControllerVDiskStatusSubscribeRequest, - EvControllerVDiskStatusReport, - EvControllerGroupStatusRequest, - EvControllerGroupStatusResponse, - EvControllerUpdateGroup, - EvControllerUpdateFaultyDisks, - EvControllerProposeGroupKey, - EvControllerUpdateGroupLatencies, // Not used. - EvControllerUpdateGroupStat, - EvControllerNotifyGroupChange, - EvControllerCommitGroupLatencies, - EvControllerUpdateSelfHealInfo, - EvControllerScrubQueryStartQuantum, - EvControllerScrubQuantumFinished, - EvControllerScrubReportQuantumInProgress, - EvControllerUpdateNodeDrives, - EvControllerGroupDecommittedNotify, - EvControllerGroupDecommittedResponse, - EvControllerGroupMetricsExchange, - - // EvControllerReadSchemeStringResult = EvPut + 12 * 512, - // EvControllerReadDataStringResult, - EvControllerNodeServiceSetUpdate = EvPut + 12 * 512 + 2, - EvControllerCreatePDiskResult, - EvControllerCreateVDiskSlotsResult, - EvControllerCreateGroupResult, - EvControllerSelectGroupsResult, - EvRequestControllerInfo, - EvResponseControllerInfo, - EvControllerGroupReconfigureReplace, // Not used. - EvControllerGroupReconfigureReplaceResult, // Not used. - EvControllerGroupReconfigureWipe, - EvControllerGroupReconfigureWipeResult, - EvControllerNodeReport, - EvControllerScrubStartQuantum, - - EvControllerMigrationPause, - EvControllerMigrationContinue, - EvControllerMigrationFinished, - EvControllerMigrationBatch, - EvControllerMigrationBatchRequest, - EvControllerMigrationDone, - - EvControllerUpdateSystemViews, + EvControllerRegisterNode = 0x10031602, + EvControllerSelectGroups = 0x10031606, + EvControllerGetGroup = 0x10031607, + EvControllerUpdateDiskStatus = 0x10031608, + EvControllerConfigRequest = 0x1003160a, + EvControllerConfigResponse = 0x1003160b, + EvControllerProposeGroupKey = 0x10031614, + EvControllerUpdateGroupStat = 0x10031616, + EvControllerNotifyGroupChange = 0x10031617, + EvControllerCommitGroupLatencies = 0x10031618, + EvControllerUpdateSelfHealInfo = 0x10031619, + EvControllerScrubQueryStartQuantum = 0x1003161a, + EvControllerScrubQuantumFinished = 0x1003161b, + EvControllerScrubReportQuantumInProgress = 0x1003161c, + EvControllerUpdateNodeDrives = 0x1003161d, + EvControllerGroupDecommittedNotify = 0x1003161e, + EvControllerGroupDecommittedResponse = 0x1003161f, + EvControllerGroupMetricsExchange = 0x10031620, + + // BSC interface result section + EvControllerNodeServiceSetUpdate = 0x10031802, + EvControllerSelectGroupsResult = 0x10031806, + EvRequestControllerInfo = 0x10031807, + EvResponseControllerInfo = 0x10031808, + EvControllerGroupReconfigureWipe = 0x1003180b, + EvControllerGroupReconfigureWipeResult = 0x1003180c, + EvControllerNodeReport = 0x1003180d, + EvControllerScrubStartQuantum = 0x1003180e, + EvControllerUpdateSystemViews = 0x10031815, // proxy - node controller interface EvConfigureProxy = EvPut + 13 * 512, @@ -1010,14 +981,16 @@ struct TEvBlobStorage { bool WrittenBeyondBarrier = false; // was this blob written beyond the barrier? mutable NLWTrace::TOrbit Orbit; std::shared_ptr ExecutionRelay; + const TString StorageId; TEvPutResult(NKikimrProto::EReplyStatus status, const TLogoBlobID &id, const TStorageStatusFlags statusFlags, - ui32 groupId, float approximateFreeSpaceShare) + ui32 groupId, float approximateFreeSpaceShare, const TString& storageId = Default()) : Status(status) , Id(id) , StatusFlags(statusFlags) , GroupId(groupId) , ApproximateFreeSpaceShare(approximateFreeSpaceShare) + , StorageId(storageId) {} TString Print(bool isFull) const { diff --git a/ydb/core/base/blobstorage_grouptype.cpp b/ydb/core/base/blobstorage_grouptype.cpp index 747a91ead9af..65effc85ffb1 100644 --- a/ydb/core/base/blobstorage_grouptype.cpp +++ b/ydb/core/base/blobstorage_grouptype.cpp @@ -196,7 +196,11 @@ ui64 TBlobStorageGroupType::PartSize(const TLogoBlobID &id) const { ui64 TBlobStorageGroupType::MaxPartSize(const TLogoBlobID &id) const { Y_ABORT_UNLESS(!id.PartId()); - return TErasureType::PartSize((TErasureType::ECrcMode)id.CrcMode(), id.BlobSize()); + return MaxPartSize((TErasureType::ECrcMode)id.CrcMode(), id.BlobSize()); +} + +ui64 TBlobStorageGroupType::MaxPartSize(TErasureType::ECrcMode crcMode, ui32 blobSize) const { + return TErasureType::PartSize(crcMode, blobSize); } bool TBlobStorageGroupType::PartFits(ui32 partId, ui32 idxInSubgroup) const { diff --git a/ydb/core/base/blobstorage_grouptype.h b/ydb/core/base/blobstorage_grouptype.h index aeca719493ad..5d067087fbe6 100644 --- a/ydb/core/base/blobstorage_grouptype.h +++ b/ydb/core/base/blobstorage_grouptype.h @@ -144,6 +144,7 @@ struct TBlobStorageGroupType : public TErasureType { ui64 PartSize(const TLogoBlobID &id) const; ui64 MaxPartSize(const TLogoBlobID &id) const; + ui64 MaxPartSize(TErasureType::ECrcMode crcMode, ui32 blobSize) const; bool PartFits(ui32 partId, ui32 idxInSubgroup) const; }; diff --git a/ydb/core/base/events.h b/ydb/core/base/events.h index 97f89dc978a2..7d112c064043 100644 --- a/ydb/core/base/events.h +++ b/ydb/core/base/events.h @@ -173,6 +173,7 @@ struct TKikimrEvents : TEvents { ES_GRAPH, ES_REPLICATION_SERVICE, ES_CHANGE_EXCHANGE, + ES_LIMITER }; }; diff --git a/ydb/core/base/services/CMakeLists.darwin-arm64.txt b/ydb/core/base/services/CMakeLists.darwin-arm64.txt index 9104faa00c4f..3563fd08aefc 100644 --- a/ydb/core/base/services/CMakeLists.darwin-arm64.txt +++ b/ydb/core/base/services/CMakeLists.darwin-arm64.txt @@ -16,3 +16,6 @@ target_link_libraries(core-base-services INTERFACE library-actors-interconnect library-actors-helpers ) +target_sources(core-base-services INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/base/services/blobstorage_service_id.h +) diff --git a/ydb/core/base/services/CMakeLists.darwin-x86_64.txt b/ydb/core/base/services/CMakeLists.darwin-x86_64.txt index 9104faa00c4f..3563fd08aefc 100644 --- a/ydb/core/base/services/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/base/services/CMakeLists.darwin-x86_64.txt @@ -16,3 +16,6 @@ target_link_libraries(core-base-services INTERFACE library-actors-interconnect library-actors-helpers ) +target_sources(core-base-services INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/base/services/blobstorage_service_id.h +) diff --git a/ydb/core/base/services/CMakeLists.linux-aarch64.txt b/ydb/core/base/services/CMakeLists.linux-aarch64.txt index 171dae54225e..8925b1e8b391 100644 --- a/ydb/core/base/services/CMakeLists.linux-aarch64.txt +++ b/ydb/core/base/services/CMakeLists.linux-aarch64.txt @@ -17,3 +17,6 @@ target_link_libraries(core-base-services INTERFACE library-actors-interconnect library-actors-helpers ) +target_sources(core-base-services INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/base/services/blobstorage_service_id.h +) diff --git a/ydb/core/base/services/CMakeLists.linux-x86_64.txt b/ydb/core/base/services/CMakeLists.linux-x86_64.txt index 171dae54225e..8925b1e8b391 100644 --- a/ydb/core/base/services/CMakeLists.linux-x86_64.txt +++ b/ydb/core/base/services/CMakeLists.linux-x86_64.txt @@ -17,3 +17,6 @@ target_link_libraries(core-base-services INTERFACE library-actors-interconnect library-actors-helpers ) +target_sources(core-base-services INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/base/services/blobstorage_service_id.h +) diff --git a/ydb/core/base/services/CMakeLists.windows-x86_64.txt b/ydb/core/base/services/CMakeLists.windows-x86_64.txt index 9104faa00c4f..3563fd08aefc 100644 --- a/ydb/core/base/services/CMakeLists.windows-x86_64.txt +++ b/ydb/core/base/services/CMakeLists.windows-x86_64.txt @@ -16,3 +16,6 @@ target_link_libraries(core-base-services INTERFACE library-actors-interconnect library-actors-helpers ) +target_sources(core-base-services INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/base/services/blobstorage_service_id.h +) diff --git a/ydb/core/base/ut/CMakeLists.darwin-arm64.txt b/ydb/core/base/ut/CMakeLists.darwin-arm64.txt index 0846008a4eba..2181112608b4 100644 --- a/ydb/core/base/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/base/ut/CMakeLists.darwin-arm64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-core-base-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/base/ut/path_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/base/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/base/ut/CMakeLists.darwin-x86_64.txt index 3b942310d6f1..0431707e6423 100644 --- a/ydb/core/base/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/base/ut/CMakeLists.darwin-x86_64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-core-base-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/base/ut/path_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/base/ut/CMakeLists.linux-aarch64.txt b/ydb/core/base/ut/CMakeLists.linux-aarch64.txt index c95512a9d830..21a9249cd7dc 100644 --- a/ydb/core/base/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/base/ut/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-core-base-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/base/ut/path_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/base/ut/CMakeLists.linux-x86_64.txt b/ydb/core/base/ut/CMakeLists.linux-x86_64.txt index febb0aba96e9..7b754b8142fb 100644 --- a/ydb/core/base/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/base/ut/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-core-base-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/base/ut/path_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/base/ut/CMakeLists.windows-x86_64.txt b/ydb/core/base/ut/CMakeLists.windows-x86_64.txt index 4f061c51af01..96ee4500fd60 100644 --- a/ydb/core/base/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/base/ut/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/base/ut_board_subscriber/CMakeLists.darwin-arm64.txt b/ydb/core/base/ut_board_subscriber/CMakeLists.darwin-arm64.txt index 525cc9a7955d..068c3470cb73 100644 --- a/ydb/core/base/ut_board_subscriber/CMakeLists.darwin-arm64.txt +++ b/ydb/core/base/ut_board_subscriber/CMakeLists.darwin-arm64.txt @@ -24,13 +24,12 @@ target_link_libraries(ydb-core-base-ut_board_subscriber PUBLIC cpp-testing-unittest core-testlib-basics testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-core-base-ut_board_subscriber PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-base-ut_board_subscriber PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/base/board_subscriber_ut.cpp @@ -60,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/base/ut_board_subscriber/CMakeLists.darwin-x86_64.txt b/ydb/core/base/ut_board_subscriber/CMakeLists.darwin-x86_64.txt index a23759b69aac..bb3888b0fecc 100644 --- a/ydb/core/base/ut_board_subscriber/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/base/ut_board_subscriber/CMakeLists.darwin-x86_64.txt @@ -25,13 +25,12 @@ target_link_libraries(ydb-core-base-ut_board_subscriber PUBLIC cpp-testing-unittest core-testlib-basics testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-core-base-ut_board_subscriber PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-base-ut_board_subscriber PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/base/board_subscriber_ut.cpp @@ -61,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/base/ut_board_subscriber/CMakeLists.linux-aarch64.txt b/ydb/core/base/ut_board_subscriber/CMakeLists.linux-aarch64.txt index cfbe3f4a2863..c08325091b37 100644 --- a/ydb/core/base/ut_board_subscriber/CMakeLists.linux-aarch64.txt +++ b/ydb/core/base/ut_board_subscriber/CMakeLists.linux-aarch64.txt @@ -25,6 +25,7 @@ target_link_libraries(ydb-core-base-ut_board_subscriber PUBLIC cpp-testing-unittest core-testlib-basics testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-core-base-ut_board_subscriber PRIVATE -ldl @@ -32,9 +33,6 @@ target_link_options(ydb-core-base-ut_board_subscriber PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-base-ut_board_subscriber PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/base/board_subscriber_ut.cpp @@ -64,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/base/ut_board_subscriber/CMakeLists.linux-x86_64.txt b/ydb/core/base/ut_board_subscriber/CMakeLists.linux-x86_64.txt index 505cee05908e..247bc95f6727 100644 --- a/ydb/core/base/ut_board_subscriber/CMakeLists.linux-x86_64.txt +++ b/ydb/core/base/ut_board_subscriber/CMakeLists.linux-x86_64.txt @@ -26,6 +26,7 @@ target_link_libraries(ydb-core-base-ut_board_subscriber PUBLIC cpp-testing-unittest core-testlib-basics testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-core-base-ut_board_subscriber PRIVATE -ldl @@ -33,9 +34,6 @@ target_link_options(ydb-core-base-ut_board_subscriber PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-base-ut_board_subscriber PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/base/board_subscriber_ut.cpp @@ -65,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/base/ut_board_subscriber/CMakeLists.windows-x86_64.txt b/ydb/core/base/ut_board_subscriber/CMakeLists.windows-x86_64.txt index 44d92d40f408..c022d883a6f7 100644 --- a/ydb/core/base/ut_board_subscriber/CMakeLists.windows-x86_64.txt +++ b/ydb/core/base/ut_board_subscriber/CMakeLists.windows-x86_64.txt @@ -25,6 +25,7 @@ target_link_libraries(ydb-core-base-ut_board_subscriber PUBLIC cpp-testing-unittest core-testlib-basics testlib-basics-default + minikql-comp_nodes-llvm14 ) target_sources(ydb-core-base-ut_board_subscriber PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/base/board_subscriber_ut.cpp @@ -54,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blob_depot/CMakeLists.darwin-arm64.txt b/ydb/core/blob_depot/CMakeLists.darwin-arm64.txt index 601a05c08f34..6058c9f1f4d7 100644 --- a/ydb/core/blob_depot/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blob_depot/CMakeLists.darwin-arm64.txt @@ -18,6 +18,22 @@ target_link_libraries(ydb-core-blob_depot PUBLIC ydb-core-protos ) target_sources(ydb-core-blob_depot PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/types.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/schema.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/assimilator.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot_tablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blocks.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/coro_tx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_resolve.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_uncertain.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/garbage_collection.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/mon_main.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/space_monitor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/testing.h ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/assimilator.cpp diff --git a/ydb/core/blob_depot/CMakeLists.darwin-x86_64.txt b/ydb/core/blob_depot/CMakeLists.darwin-x86_64.txt index 601a05c08f34..6058c9f1f4d7 100644 --- a/ydb/core/blob_depot/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blob_depot/CMakeLists.darwin-x86_64.txt @@ -18,6 +18,22 @@ target_link_libraries(ydb-core-blob_depot PUBLIC ydb-core-protos ) target_sources(ydb-core-blob_depot PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/types.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/schema.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/assimilator.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot_tablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blocks.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/coro_tx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_resolve.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_uncertain.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/garbage_collection.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/mon_main.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/space_monitor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/testing.h ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/assimilator.cpp diff --git a/ydb/core/blob_depot/CMakeLists.linux-aarch64.txt b/ydb/core/blob_depot/CMakeLists.linux-aarch64.txt index e12fd5266e98..ddb31981d098 100644 --- a/ydb/core/blob_depot/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blob_depot/CMakeLists.linux-aarch64.txt @@ -19,6 +19,22 @@ target_link_libraries(ydb-core-blob_depot PUBLIC ydb-core-protos ) target_sources(ydb-core-blob_depot PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/types.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/schema.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/assimilator.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot_tablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blocks.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/coro_tx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_resolve.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_uncertain.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/garbage_collection.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/mon_main.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/space_monitor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/testing.h ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/assimilator.cpp diff --git a/ydb/core/blob_depot/CMakeLists.linux-x86_64.txt b/ydb/core/blob_depot/CMakeLists.linux-x86_64.txt index e12fd5266e98..ddb31981d098 100644 --- a/ydb/core/blob_depot/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blob_depot/CMakeLists.linux-x86_64.txt @@ -19,6 +19,22 @@ target_link_libraries(ydb-core-blob_depot PUBLIC ydb-core-protos ) target_sources(ydb-core-blob_depot PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/types.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/schema.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/assimilator.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot_tablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blocks.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/coro_tx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_resolve.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_uncertain.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/garbage_collection.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/mon_main.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/space_monitor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/testing.h ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/assimilator.cpp diff --git a/ydb/core/blob_depot/CMakeLists.windows-x86_64.txt b/ydb/core/blob_depot/CMakeLists.windows-x86_64.txt index 601a05c08f34..6058c9f1f4d7 100644 --- a/ydb/core/blob_depot/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blob_depot/CMakeLists.windows-x86_64.txt @@ -18,6 +18,22 @@ target_link_libraries(ydb-core-blob_depot PUBLIC ydb-core-protos ) target_sources(ydb-core-blob_depot PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/types.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/schema.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/assimilator.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot_tablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blocks.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/coro_tx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_resolve.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/data_uncertain.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/garbage_collection.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/mon_main.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/space_monitor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/testing.h ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/blob_depot.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/assimilator.cpp diff --git a/ydb/core/blob_depot/agent/CMakeLists.darwin-arm64.txt b/ydb/core/blob_depot/agent/CMakeLists.darwin-arm64.txt index c18d69d6cf9f..924636a6f417 100644 --- a/ydb/core/blob_depot/agent/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blob_depot/agent/CMakeLists.darwin-arm64.txt @@ -16,6 +16,12 @@ target_link_libraries(core-blob_depot-agent PUBLIC ydb-core-protos ) target_sources(core-blob_depot-agent PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blob_mapping_cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blocks.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/resolved_value.h ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blob_mapping_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blocks.cpp diff --git a/ydb/core/blob_depot/agent/CMakeLists.darwin-x86_64.txt b/ydb/core/blob_depot/agent/CMakeLists.darwin-x86_64.txt index c18d69d6cf9f..924636a6f417 100644 --- a/ydb/core/blob_depot/agent/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blob_depot/agent/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,12 @@ target_link_libraries(core-blob_depot-agent PUBLIC ydb-core-protos ) target_sources(core-blob_depot-agent PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blob_mapping_cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blocks.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/resolved_value.h ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blob_mapping_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blocks.cpp diff --git a/ydb/core/blob_depot/agent/CMakeLists.linux-aarch64.txt b/ydb/core/blob_depot/agent/CMakeLists.linux-aarch64.txt index 37da1726ef2a..408074da382f 100644 --- a/ydb/core/blob_depot/agent/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blob_depot/agent/CMakeLists.linux-aarch64.txt @@ -17,6 +17,12 @@ target_link_libraries(core-blob_depot-agent PUBLIC ydb-core-protos ) target_sources(core-blob_depot-agent PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blob_mapping_cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blocks.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/resolved_value.h ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blob_mapping_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blocks.cpp diff --git a/ydb/core/blob_depot/agent/CMakeLists.linux-x86_64.txt b/ydb/core/blob_depot/agent/CMakeLists.linux-x86_64.txt index 37da1726ef2a..408074da382f 100644 --- a/ydb/core/blob_depot/agent/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blob_depot/agent/CMakeLists.linux-x86_64.txt @@ -17,6 +17,12 @@ target_link_libraries(core-blob_depot-agent PUBLIC ydb-core-protos ) target_sources(core-blob_depot-agent PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blob_mapping_cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blocks.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/resolved_value.h ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blob_mapping_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blocks.cpp diff --git a/ydb/core/blob_depot/agent/CMakeLists.windows-x86_64.txt b/ydb/core/blob_depot/agent/CMakeLists.windows-x86_64.txt index c18d69d6cf9f..924636a6f417 100644 --- a/ydb/core/blob_depot/agent/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blob_depot/agent/CMakeLists.windows-x86_64.txt @@ -16,6 +16,12 @@ target_link_libraries(core-blob_depot-agent PUBLIC ydb-core-protos ) target_sources(core-blob_depot-agent PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blob_mapping_cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blocks.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/resolved_value.h ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/agent.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blob_mapping_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/agent/blocks.cpp diff --git a/ydb/core/blob_depot/assimilator.cpp b/ydb/core/blob_depot/assimilator.cpp index a31fcc4c4207..5ad46d8f8e93 100644 --- a/ydb/core/blob_depot/assimilator.cpp +++ b/ydb/core/blob_depot/assimilator.cpp @@ -89,10 +89,12 @@ namespace NKikimr::NBlobDepot { if (stateBits & TStateBits::Blobs) { Load(&stream, SkipBlobsUpTo.emplace()); } + UpdateAssimilatorPosition(); } Become(&TThis::StateFunc); Action(); + UpdateBytesCopiedQ(); } void TAssimilator::PassAway() { @@ -115,8 +117,10 @@ namespace NKikimr::NBlobDepot { hFunc(TEvTabletPipe::TEvClientDestroyed, Handle); hFunc(TEvBlobStorage::TEvControllerGroupDecommittedResponse, Handle); cFunc(TEvPrivate::EvResume, Action); + cFunc(TEvPrivate::EvResumeScanDataForPlanning, HandleResumeScanDataForPlanning); cFunc(TEvPrivate::EvResumeScanDataForCopying, HandleResumeScanDataForCopying); fFunc(TEvPrivate::EvTxComplete, HandleTxComplete); + cFunc(TEvPrivate::EvUpdateBytesCopiedQ, UpdateBytesCopiedQ); cFunc(TEvents::TSystem::Poison, PassAway); default: @@ -133,7 +137,11 @@ namespace NKikimr::NBlobDepot { if (Self->DecommitState < EDecommitState::BlobsFinished) { SendAssimilateRequest(); } else if (Self->DecommitState < EDecommitState::BlobsCopied) { - ScanDataForCopying(); + if (PlanningComplete) { + ScanDataForCopying(); + } else { + ScanDataForPlanning(); + } } else if (Self->DecommitState == EDecommitState::BlobsCopied) { Y_ABORT_UNLESS(!PipeId); CreatePipe(); @@ -210,6 +218,7 @@ namespace NKikimr::NBlobDepot { Self->Self->Data->AddDataOnDecommit(blob, txc, this); Self->SkipBlobsUpTo.emplace(blob.Id); Self->Self->Data->LastAssimilatedBlobId = blob.Id; + Self->Self->JsonHandler.Invalidate(); BlocksFinished = BarriersFinished = true; // no blocks and no more barriers } @@ -226,6 +235,7 @@ namespace NKikimr::NBlobDepot { if (wasEmpty && decommitState < EDecommitState::BlobsFinished) { decommitState = EDecommitState::BlobsFinished; } + Self->Self->JsonHandler.Invalidate(); db.Table().Key(Schema::Config::Key::Value).Update( NIceDb::TUpdate(decommitState), @@ -255,6 +265,7 @@ namespace NKikimr::NBlobDepot { void Complete(const TActorContext&) override { Self->Self->Data->CommitTrash(this); + Self->UpdateAssimilatorPosition(); if (MoreData) { Self->Self->Execute(std::make_unique(*this)); @@ -281,7 +292,63 @@ namespace NKikimr::NBlobDepot { } } + void TAssimilator::ScanDataForPlanning() { + if (ResumeScanDataForPlanningInFlight) { + return; + } + + THPTimer timer; + ui32 numItems = 0; + bool timeout = false; + + if (!LastPlanScannedKey) { + ++Self->AsStats.CopyIteration; + Self->AsStats.BytesToCopy = 0; + Self->JsonHandler.Invalidate(); + } + + TData::TScanRange range{ + LastPlanScannedKey ? TData::TKey(*LastPlanScannedKey) : TData::TKey::Min(), + TData::TKey::Max(), + }; + Self->Data->ScanRange(range, nullptr, nullptr, [&](const TData::TKey& key, const TData::TValue& value) { + if (++numItems == 1000) { + numItems = 0; + if (TDuration::Seconds(timer.Passed()) >= TDuration::MilliSeconds(1)) { + timeout = true; + return false; + } + } + if (value.GoingToAssimilate) { + Self->AsStats.BytesToCopy += key.GetBlobId().BlobSize(); + Self->JsonHandler.Invalidate(); + } + LastPlanScannedKey.emplace(key.GetBlobId()); + return true; + }); + + if (timeout) { + ResumeScanDataForPlanningInFlight = true; + TActivationContext::Send(new IEventHandle(TEvPrivate::EvResumeScanDataForPlanning, 0, SelfId(), {}, nullptr, 0)); + return; + } + + ActionInProgress = false; + PlanningComplete = true; + Action(); + } + + void TAssimilator::HandleResumeScanDataForPlanning() { + Y_ABORT_UNLESS(ResumeScanDataForPlanningInFlight); + ResumeScanDataForPlanningInFlight = false; + ScanDataForPlanning(); + } + void TAssimilator::ScanDataForCopying() { + if (ResumeScanDataForCopyingInFlight) { + return; + } + STLOG(PRI_DEBUG, BLOB_DEPOT, BDT54, "TAssimilator::ScanDataForCopying", (Id, Self->GetLogId()), (LastScannedKey, LastScannedKey), (NumGetsUnprocessed, GetIdToUnprocessedPuts.size())); @@ -322,11 +389,8 @@ namespace NKikimr::NBlobDepot { (EntriesToProcess, EntriesToProcess), (Timeout, timeout), (NumGetsUnprocessed, GetIdToUnprocessedPuts.size())); if (timeout) { // timeout hit, reschedule work - if (!ResumeScanDataForCopyingInFlight) { - TActivationContext::Send(new IEventHandle(TEvPrivate::EvResumeScanDataForCopying, 0, SelfId(), {}, nullptr, 0)); - ResumeScanDataForCopyingInFlight = true; - } - break; + TActivationContext::Send(new IEventHandle(TEvPrivate::EvResumeScanDataForCopying, 0, SelfId(), {}, nullptr, 0)); + ResumeScanDataForCopyingInFlight = true; } else if (!ScanQ.empty()) { using TQuery = TEvBlobStorage::TEvGet::TQuery; const ui32 sz = ScanQ.size(); @@ -343,15 +407,18 @@ namespace NKikimr::NBlobDepot { GetIdToUnprocessedPuts.try_emplace(getId); ScanQ.clear(); TotalSize = 0; - } else if (!GetIdToUnprocessedPuts.empty()) { // there are some unprocessed get queries, still have to wait - break; + continue; + } else if (!GetIdToUnprocessedPuts.empty()) { + // there are some unprocessed get queries, still have to wait } else if (!EntriesToProcess) { // we have finished scanning the whole table without any entries, copying is done OnCopyDone(); - break; } else { // we have finished scanning, but we have replicated some data, restart scanning to ensure that nothing left LastScannedKey.reset(); - EntriesToProcess = false; + LastPlanScannedKey.reset(); + EntriesToProcess = PlanningComplete = ActionInProgress = false; + Action(); } + break; } } @@ -363,6 +430,8 @@ namespace NKikimr::NBlobDepot { void TAssimilator::Handle(TEvBlobStorage::TEvGetResult::TPtr ev) { auto& msg = *ev->Get(); + (msg.Status == NKikimrProto::OK ? Self->AsStats.LatestOkGet : Self->AsStats.LatestErrorGet) = TInstant::Now(); + Self->JsonHandler.Invalidate(); const auto it = GetIdToUnprocessedPuts.find(ev->Cookie); Y_ABORT_UNLESS(it != GetIdToUnprocessedPuts.end()); ui32 getBytes = 0; @@ -386,20 +455,29 @@ namespace NKikimr::NBlobDepot { ++it->second; } getBytes += resp.Id.BlobSize(); + ++Self->AsStats.BlobsReadOk; + Self->JsonHandler.Invalidate(); } else if (resp.Status == NKikimrProto::NODATA) { Self->Data->ExecuteTxCommitAssimilatedBlob(NKikimrProto::NODATA, TBlobSeqId(), TData::TKey(resp.Id), TEvPrivate::EvTxComplete, SelfId(), it->first); ++it->second; + ++Self->AsStats.BlobsReadNoData; + Self->AsStats.BytesToCopy -= resp.Id.BlobSize(); + Self->JsonHandler.Invalidate(); + } else { + ++Self->AsStats.BlobsReadError; + Self->JsonHandler.Invalidate(); + continue; } + Self->AsStats.LastReadBlobId = resp.Id; + Self->JsonHandler.Invalidate(); } if (getBytes) { Self->TabletCounters->Cumulative()[NKikimrBlobDepot::COUNTER_DECOMMIT_GET_BYTES] += getBytes; } if (!it->second) { GetIdToUnprocessedPuts.erase(it); - if (!ResumeScanDataForCopyingInFlight) { - ScanDataForCopying(); - } + ScanDataForCopying(); } } @@ -408,17 +486,23 @@ namespace NKikimr::NBlobDepot { Y_ABORT_UNLESS(it != GetIdToUnprocessedPuts.end()); if (!--it->second) { GetIdToUnprocessedPuts.erase(it); - if (!ResumeScanDataForCopyingInFlight) { - ScanDataForCopying(); - } + ScanDataForCopying(); } } void TAssimilator::Handle(TEvBlobStorage::TEvPutResult::TPtr ev) { auto& msg = *ev->Get(); + (msg.Status == NKikimrProto::OK ? Self->AsStats.LatestOkPut : Self->AsStats.LatestErrorPut) = TInstant::Now(); + Self->JsonHandler.Invalidate(); if (msg.Status == NKikimrProto::OK) { Self->TabletCounters->Cumulative()[NKikimrBlobDepot::COUNTER_DECOMMIT_PUT_OK_BYTES] += msg.Id.BlobSize(); + ++Self->AsStats.BlobsPutOk; + Self->AsStats.BytesToCopy -= msg.Id.BlobSize(); + Self->AsStats.BytesCopied += msg.Id.BlobSize(); + } else { + ++Self->AsStats.BlobsPutError; } + Self->JsonHandler.Invalidate(); const auto it = PutIdToKey.find(ev->Cookie); Y_ABORT_UNLESS(it != PutIdToKey.end()); const auto& [key, getId] = it->second; @@ -450,6 +534,7 @@ namespace NKikimr::NBlobDepot { db.Table().Key(Schema::Config::Key::Value).Update( NIceDb::TUpdate(Self->Self->DecommitState) ); + Self->Self->JsonHandler.Invalidate(); return true; } @@ -500,6 +585,7 @@ namespace NKikimr::NBlobDepot { bool Execute(TTransactionContext& txc, const TActorContext&) override { NIceDb::TNiceDb db(txc.DB); Self->DecommitState = EDecommitState::Done; + Self->JsonHandler.Invalidate(); db.Table().Key(Schema::Config::Key::Value).Update( NIceDb::TUpdate(Self->DecommitState) ); @@ -510,6 +596,7 @@ namespace NKikimr::NBlobDepot { }; Self->GroupAssimilatorId = {}; + Self->JsonHandler.Invalidate(); Self->Execute(std::make_unique(this)); PassAway(); } else { @@ -540,6 +627,70 @@ namespace NKikimr::NBlobDepot { return stream.Str(); } + void TAssimilator::UpdateAssimilatorPosition() const { + Self->AsStats.SkipBlocksUpTo = SkipBlocksUpTo; + Self->AsStats.SkipBarriersUpTo = SkipBarriersUpTo; + Self->AsStats.SkipBlobsUpTo = SkipBlobsUpTo; + Self->JsonHandler.Invalidate(); + } + + void TAssimilator::UpdateBytesCopiedQ() { + while (BytesCopiedQ.size() >= 3) { + BytesCopiedQ.pop_front(); + } + BytesCopiedQ.emplace_back(TActivationContext::Monotonic(), Self->AsStats.BytesCopied); + + Self->AsStats.CopySpeed = 0; + Self->AsStats.CopyTimeRemaining = TDuration::Max(); + + if (BytesCopiedQ.size() > 1) { + const auto& [frontTs, frontBytes] = BytesCopiedQ.front(); + const auto& [backTs, backBytes] = BytesCopiedQ.back(); + const TDuration deltaTs = backTs - frontTs; + const ui64 deltaBytes = backBytes - frontBytes; + if (deltaTs != TDuration::Zero()) { + Self->AsStats.CopySpeed = deltaBytes * 1'000'000 / deltaTs.MicroSeconds(); + } + if (deltaBytes) { + Self->AsStats.CopyTimeRemaining = TDuration::MicroSeconds(Self->AsStats.BytesToCopy * + deltaTs.MicroSeconds() / deltaBytes); + } + } + + Self->JsonHandler.Invalidate(); + TActivationContext::Schedule(TDuration::Seconds(1), new IEventHandle(TEvPrivate::EvUpdateBytesCopiedQ, 0, + SelfId(), {}, nullptr, 0)); + } + + void TBlobDepot::TAsStats::ToJson(NJson::TJsonValue& json, bool pretty) const { + auto formatSize = [&](ui64 size) { return pretty ? FormatByteSize(size) : ToString(size); }; + + json["d.skip_blocks_up_to"] = SkipBlocksUpTo + ? ToString(*SkipBlocksUpTo) + : ""; + json["d.skip_barriers_up_to"] = SkipBarriersUpTo + ? TStringBuilder() << std::get<0>(*SkipBarriersUpTo) << ':' << (int)std::get<1>(*SkipBarriersUpTo) + : ""_sb; + json["d.skip_blobs_up_to"] = SkipBlobsUpTo + ? SkipBlobsUpTo->ToString() + : ""; + json["d.latest_error_get"] = LatestErrorGet.ToString(); + json["d.latest_ok_get"] = LatestOkGet.ToString(); + json["d.latest_error_put"] = LatestErrorPut.ToString(); + json["d.latest_ok_put"] = LatestOkPut.ToString(); + json["d.last_read_blob_id"] = LastReadBlobId.ToString(); + json["d.bytes_to_copy"] = formatSize(BytesToCopy); + json["d.bytes_copied"] = formatSize(BytesCopied); + json["d.copy_speed"] = TStringBuilder() << formatSize(CopySpeed) << "/s"; + json["d.copy_time_remaining"] = TStringBuilder() << CopyTimeRemaining; + json["d.blobs_read_ok"] = ToString(BlobsReadOk); + json["d.blobs_read_nodata"] = ToString(BlobsReadNoData); + json["d.blobs_read_error"] = ToString(BlobsReadError); + json["d.blobs_put_ok"] = ToString(BlobsPutOk); + json["d.blobs_put_error"] = ToString(BlobsPutError); + json["d.copy_iteration"] = ToString(CopyIteration); + } + void TBlobDepot::TData::ExecuteTxCommitAssimilatedBlob(NKikimrProto::EReplyStatus status, TBlobSeqId blobSeqId, TData::TKey key, ui32 notifyEventType, TActorId parentId, ui64 cookie, bool keep, bool doNotKeep) { Self->Execute(std::make_unique(Self, status, blobSeqId, std::move(key), @@ -551,6 +702,7 @@ namespace NKikimr::NBlobDepot { Y_ABORT_UNLESS(!GroupAssimilatorId); Y_ABORT_UNLESS(Data->IsLoaded()); GroupAssimilatorId = RegisterWithSameMailbox(new TGroupAssimilator(this)); + JsonHandler.Invalidate(); } } diff --git a/ydb/core/blob_depot/assimilator.h b/ydb/core/blob_depot/assimilator.h index 7e4b570bcb63..d0e757e5eaee 100644 --- a/ydb/core/blob_depot/assimilator.h +++ b/ydb/core/blob_depot/assimilator.h @@ -10,8 +10,10 @@ namespace NKikimr::NBlobDepot { struct TEvPrivate { enum { EvResume = EventSpaceBegin(TEvents::ES_PRIVATE), + EvResumeScanDataForPlanning, EvResumeScanDataForCopying, EvTxComplete, + EvUpdateBytesCopiedQ, }; }; @@ -42,6 +44,12 @@ namespace NKikimr::NBlobDepot { bool ActionInProgress = false; bool ResumeScanDataForCopyingInFlight = false; + std::optional LastPlanScannedKey; + bool PlanningComplete = false; + bool ResumeScanDataForPlanningInFlight = false; + + std::deque> BytesCopiedQ; + public: static constexpr NKikimrServices::TActivity::EType ActorActivityType() { return NKikimrServices::TActivity::BLOB_DEPOT_ASSIMILATOR_ACTOR; @@ -62,6 +70,8 @@ namespace NKikimr::NBlobDepot { void Action(); void SendAssimilateRequest(); void Handle(TEvBlobStorage::TEvAssimilateResult::TPtr ev); + void ScanDataForPlanning(); + void HandleResumeScanDataForPlanning(); void ScanDataForCopying(); void HandleResumeScanDataForCopying(); void Handle(TEvBlobStorage::TEvGetResult::TPtr ev); @@ -73,6 +83,8 @@ namespace NKikimr::NBlobDepot { void Handle(TEvTabletPipe::TEvClientDestroyed::TPtr ev); void Handle(TEvBlobStorage::TEvControllerGroupDecommittedResponse::TPtr ev); TString SerializeAssimilatorState() const; + void UpdateAssimilatorPosition() const; + void UpdateBytesCopiedQ(); }; } // NKikimrBlobDepot::NBlobDepot diff --git a/ydb/core/blob_depot/blob_depot.cpp b/ydb/core/blob_depot/blob_depot.cpp index 32eb8d5ff97c..19cc2596242d 100644 --- a/ydb/core/blob_depot/blob_depot.cpp +++ b/ydb/core/blob_depot/blob_depot.cpp @@ -22,6 +22,7 @@ namespace NKikimr::NBlobDepot { , BarrierServer(new TBarrierServer(this)) , Data(new TData(this)) , SpaceMonitor(new TSpaceMonitor(this)) + , JsonHandler(std::bind(&TBlobDepot::RenderJson, this, std::placeholders::_1), TEvPrivate::EvJsonTimer, TEvPrivate::EvJsonUpdate) {} TBlobDepot::~TBlobDepot() @@ -128,6 +129,9 @@ namespace NKikimr::NBlobDepot { hFunc(TEvBlobStorage::TEvControllerGroupMetricsExchange, Handle); cFunc(TEvPrivate::EvUpdateThroughputs, UpdateThroughputs); + cFunc(TEvPrivate::EvJsonTimer, JsonHandler.HandleTimer); + cFunc(TEvPrivate::EvJsonUpdate, JsonHandler.HandleUpdate); + default: if (!HandleDefaultEvents(ev, SelfId())) { Y_ABORT("unexpected event Type# 0x%08" PRIx32, type); diff --git a/ydb/core/blob_depot/blob_depot_tablet.h b/ydb/core/blob_depot/blob_depot_tablet.h index c0b6efa3e08d..c41cc1b03c2f 100644 --- a/ydb/core/blob_depot/blob_depot_tablet.h +++ b/ydb/core/blob_depot/blob_depot_tablet.h @@ -4,6 +4,7 @@ #include "events.h" #include "types.h" #include "schema.h" +#include "mon_main.h" namespace NKikimr::NTesting { @@ -29,6 +30,8 @@ namespace NKikimr::NBlobDepot { EvKickSpaceMonitor, EvUpdateThroughputs, EvDeliver, + EvJsonTimer, + EvJsonUpdate, }; }; @@ -167,6 +170,7 @@ namespace NKikimr::NBlobDepot { } void StartOperation() { + JsonHandler.Setup(SelfId(), Executor()->Generation()); InitChannelKinds(); DoGroupMetricsExchange(); ProcessRegisterAgentQ(); @@ -278,9 +282,12 @@ namespace NKikimr::NBlobDepot { class TTxMonData; + TJsonHandler JsonHandler; + bool OnRenderAppHtmlPage(NMon::TEvRemoteHttpInfo::TPtr ev, const TActorContext&) override; void RenderMainPage(IOutputStream& s); + NJson::TJsonValue RenderJson(bool pretty); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Group assimilation @@ -288,6 +295,28 @@ namespace NKikimr::NBlobDepot { TActorId GroupAssimilatorId; EDecommitState DecommitState = EDecommitState::Default; std::optional AssimilatorState; + struct TAsStats { + std::optional SkipBlocksUpTo; + std::optional> SkipBarriersUpTo; + std::optional SkipBlobsUpTo; + TInstant LatestErrorGet; + TInstant LatestOkGet; + TInstant LatestErrorPut; + TInstant LatestOkPut; + TLogoBlobID LastReadBlobId; + ui64 BytesToCopy = 0; + ui64 BytesCopied = 0; + ui64 CopySpeed = 0; + TDuration CopyTimeRemaining = TDuration::Max(); + ui64 BlobsReadOk = 0; + ui64 BlobsReadNoData = 0; + ui64 BlobsReadError = 0; + ui64 BlobsPutOk = 0; + ui64 BlobsPutError = 0; + ui32 CopyIteration = 0; + + void ToJson(NJson::TJsonValue& json, bool pretty) const; + } AsStats; class TGroupAssimilator; @@ -299,6 +328,8 @@ namespace NKikimr::NBlobDepot { ui64 BytesRead = 0; ui64 BytesWritten = 0; std::deque> MetricsQ; + ui64 ReadThroughput = 0; + ui64 WriteThroughput = 0; void DoGroupMetricsExchange(); void Handle(TEvBlobStorage::TEvControllerGroupMetricsExchange::TPtr ev); diff --git a/ydb/core/blob_depot/data_mon.cpp b/ydb/core/blob_depot/data_mon.cpp index 9a286b67813e..174ca8a53e6e 100644 --- a/ydb/core/blob_depot/data_mon.cpp +++ b/ydb/core/blob_depot/data_mon.cpp @@ -15,7 +15,6 @@ namespace NKikimr::NBlobDepot { DIV_CLASS("panel-body") { KEYVALUE_TABLE({ KEYVALUE_P("Loaded", Loaded ? "true" : "false"); - KEYVALUE_P("Last assimilated blob id", LastAssimilatedBlobId ? LastAssimilatedBlobId->ToString() : ""); KEYVALUE_P("Data size, number of keys", Data.size()); KEYVALUE_P("RefCount size, number of blobs", RefCount.size()); KEYVALUE_P("Total stored data size, bytes", FormatByteSize(TotalStoredDataSize)); diff --git a/ydb/core/blob_depot/defs.h b/ydb/core/blob_depot/defs.h index bd9fbc66ddac..72360877fc89 100644 --- a/ydb/core/blob_depot/defs.h +++ b/ydb/core/blob_depot/defs.h @@ -19,5 +19,6 @@ #include #include +#include #include diff --git a/ydb/core/blob_depot/given_id_range.cpp b/ydb/core/blob_depot/given_id_range.cpp index fc56b348e397..75073a23a9e5 100644 --- a/ydb/core/blob_depot/given_id_range.cpp +++ b/ydb/core/blob_depot/given_id_range.cpp @@ -43,6 +43,7 @@ namespace NKikimr::NBlobDepot { Y_ABORT_UNLESS(it != Ranges.end()); TChunk& chunk = it->second; const size_t offset = value % BitsPerChunk; + Y_DEBUG_ABORT_UNLESS(chunk[offset]); chunk.Reset(offset); --NumAvailableItems; if (chunk.Empty()) { diff --git a/ydb/core/blob_depot/group_metrics_exchange.cpp b/ydb/core/blob_depot/group_metrics_exchange.cpp index 6fbb75eee5f2..e9810bf0089b 100644 --- a/ydb/core/blob_depot/group_metrics_exchange.cpp +++ b/ydb/core/blob_depot/group_metrics_exchange.cpp @@ -81,12 +81,16 @@ namespace NKikimr::NBlobDepot { } } - auto ev = std::make_unique(); - auto& wb = ev->Record; - wb.SetGroupID(Config.GetVirtualGroupId()); - wb.SetAllocatedSize(Data->GetTotalStoredDataSize()); - wb.SetAvailableSize(params->GetAvailableSize()); - Send(NNodeWhiteboard::MakeNodeWhiteboardServiceId(SelfId().NodeId()), ev.release()); + auto *wb = record.MutableWhiteboardUpdate(); + wb->SetGroupID(Config.GetVirtualGroupId()); + wb->SetAllocatedSize(Data->GetTotalStoredDataSize()); + wb->SetAvailableSize(params->GetAvailableSize()); + wb->SetReadThroughput(ReadThroughput); + wb->SetWriteThroughput(WriteThroughput); + + if (ReadyForAgentQueries()) { + wb->SetBlobDepotOnlineTime(TInstant::Now().MilliSeconds()); + } params->SetAllocatedSize(Data->GetTotalStoredDataSize()); Send(MakeBlobStorageNodeWardenID(SelfId().NodeId()), response.release()); @@ -103,7 +107,9 @@ namespace NKikimr::NBlobDepot { const auto& record = ev->Get()->Record; BytesRead += record.GetBytesRead(); BytesWritten += record.GetBytesWritten(); - MetricsQ.emplace_back(TActivationContext::Monotonic(), BytesRead, BytesWritten); + if (Config.HasVirtualGroupId()) { + MetricsQ.emplace_back(TActivationContext::Monotonic(), BytesRead, BytesWritten); + } UpdateThroughputs(false); } @@ -128,24 +134,17 @@ namespace NKikimr::NBlobDepot { } } - ui64 readThroughput = 0; - ui64 writeThroughput = 0; const auto& [ts, read, written] = MetricsQ.front(); if (ts + TDuration::Seconds(1) < now) { - readThroughput = (BytesRead - read) * 1'000'000 / (now - ts).MicroSeconds(); - writeThroughput = (BytesWritten - written) * 1'000'000 / (now - ts).MicroSeconds(); + ReadThroughput = (BytesRead - read) * 1'000'000 / (now - ts).MicroSeconds(); + WriteThroughput = (BytesWritten - written) * 1'000'000 / (now - ts).MicroSeconds(); + } else { + ReadThroughput = WriteThroughput = 0; } - - auto ev = std::make_unique(); - auto& wb = ev->Record; - wb.SetGroupID(Config.GetVirtualGroupId()); - wb.SetReadThroughput(readThroughput); - wb.SetWriteThroughput(writeThroughput); - Send(NNodeWhiteboard::MakeNodeWhiteboardServiceId(SelfId().NodeId()), ev.release()); } if (reschedule) { - TActivationContext::Schedule(TDuration::Seconds(1), new IEventHandle(TEvPrivate::EvUpdateThroughputs, 0, + TActivationContext::Schedule(Window, new IEventHandle(TEvPrivate::EvUpdateThroughputs, 0, SelfId(), {}, nullptr, 0)); } } diff --git a/ydb/core/blob_depot/mon_main.cpp b/ydb/core/blob_depot/mon_main.cpp index 2953d187e48b..0ea803bd861a 100644 --- a/ydb/core/blob_depot/mon_main.cpp +++ b/ydb/core/blob_depot/mon_main.cpp @@ -379,7 +379,11 @@ namespace NKikimr::NBlobDepot { TStringStream s; const TCgiParameters& cgi = ev->Get()->Cgi(); - if (cgi.Has("page")) { + + if (cgi.Has("json")) { + JsonHandler.ProcessRenderPage(cgi, ev->Sender, ev->Cookie); + return true; + } else if (cgi.Has("page")) { const TString& page = cgi.Get("page"); if (page == "data") { Execute(std::make_unique(this, ev)); @@ -405,6 +409,66 @@ namespace NKikimr::NBlobDepot { HTML(s) { s << "Contained data
"; + s << R"( +)"; + +#define UP(NAME, VALUE) "
" + + s << "
"; + DIV_CLASS("panel panel-info") { DIV_CLASS("panel-heading") { s << "Stats"; @@ -412,25 +476,19 @@ namespace NKikimr::NBlobDepot { DIV_CLASS("panel-body") { KEYVALUE_TABLE({ - TABLER() { - TABLED() { s << "Data, bytes"; } - TABLED() { - ui64 total = 0; - Data->EnumerateRefCount([&](TLogoBlobID id, ui32 /*refCount*/) { - total += id.BlobSize(); - }); - s << FormatByteSize(total); - } - } - + ui64 total = 0; ui64 trashInFlight = 0; ui64 trashPending = 0; + Data->EnumerateRefCount([&](TLogoBlobID id, ui32 /*refCount*/) { + total += id.BlobSize(); + }); Data->EnumerateTrash([&](ui32 /*groupId*/, TLogoBlobID id, bool inFlight) { (inFlight ? trashInFlight : trashPending) += id.BlobSize(); }); - KEYVALUE_P("Trash in flight, bytes", FormatByteSize(trashInFlight)); - KEYVALUE_P("Trash pending, bytes", FormatByteSize(trashPending)); + KEYVALUE_UP("Data, bytes", "data", FormatByteSize(total)); + KEYVALUE_UP("Trash in flight, bytes", "trash_in_flight", FormatByteSize(trashInFlight)); + KEYVALUE_UP("Trash pending, bytes", "trash_pending", FormatByteSize(trashPending)); std::vector groups; for (const auto& [groupId, _] : Groups) { @@ -439,12 +497,51 @@ namespace NKikimr::NBlobDepot { std::sort(groups.begin(), groups.end()); for (const ui32 groupId : groups) { TGroupInfo& group = Groups[groupId]; - KEYVALUE_P(TStringBuilder() << "Data in GroupId# " << groupId << ", bytes", - FormatByteSize(group.AllocatedBytes)); + KEYVALUE_UP(TStringBuilder() << "Data in GroupId# " << groupId << ", bytes", + 'g' << groupId, FormatByteSize(group.AllocatedBytes)); } }) } } + + if (Configured && Config.GetIsDecommittingGroup()) { + DIV_CLASS("panel panel-info") { + DIV_CLASS("panel-heading") { + s << "Decommission"; + } + DIV_CLASS("panel-body") { + KEYVALUE_TABLE({ + KEYVALUE_UP("Decommit state", "d.state", DecommitState); + KEYVALUE_UP("Assimilator state", "d.running", GroupAssimilatorId ? "running" : "stopped"); + KEYVALUE_UP("Last assimilated blob id", "d.last_assimilated_blob_id", + Data->LastAssimilatedBlobId ? Data->LastAssimilatedBlobId->ToString() : ""); + KEYVALUE_UP("Skip blocks up to", "d.skip_blocks_up_to", + AsStats.SkipBlocksUpTo ? ToString(*AsStats.SkipBlocksUpTo) : ""); + KEYVALUE_UP("Skip barriers up to", "d.skip_barriers_up_to", + AsStats.SkipBarriersUpTo ? TStringBuilder() << std::get<0>(*AsStats.SkipBarriersUpTo) + << ':' << (int)std::get<1>(*AsStats.SkipBarriersUpTo) : ""_sb); + KEYVALUE_UP("Skip blobs up to", "d.skip_blobs_up_to", + AsStats.SkipBlobsUpTo ? AsStats.SkipBlobsUpTo->ToString() : ""); + KEYVALUE_UP("Copy iteration", "d.copy_iteration", AsStats.CopyIteration); + KEYVALUE_UP("Bytes to copy", "d.bytes_to_copy", FormatByteSize(AsStats.BytesToCopy)); + KEYVALUE_UP("Bytes already copied", "d.bytes_copied", FormatByteSize(AsStats.BytesCopied)); + KEYVALUE_UP("Copy speed, bytes per second", "d.copy_speed", FormatByteSize(AsStats.CopySpeed) + "/s"); + KEYVALUE_UP("Copy time remaining", "d.copy_time_remaining", AsStats.CopyTimeRemaining); + KEYVALUE_UP("Last read blob id", "d.last_read_blob_id", AsStats.LastReadBlobId); + KEYVALUE_UP("Latest successful get", "d.latest_ok_get", AsStats.LatestOkGet); + KEYVALUE_UP("Latest erroneous get", "d.latest_error_get", AsStats.LatestErrorGet); + KEYVALUE_UP("Latest successful put", "d.latest_ok_put", AsStats.LatestOkPut); + KEYVALUE_UP("Latest erroneous put", "d.latest_error_put", AsStats.LatestErrorPut); + KEYVALUE_UP("Blobs read with OK", "d.blobs_read_ok", AsStats.BlobsReadOk); + KEYVALUE_UP("Blobs read with NODATA", "d.blobs_read_nodata", AsStats.BlobsReadNoData); + KEYVALUE_UP("Blobs read with error", "d.blobs_read_error", AsStats.BlobsReadError); + KEYVALUE_UP("Blobs put with OK", "d.blobs_put_ok", AsStats.BlobsPutOk); + KEYVALUE_UP("Blobs put with error", "d.blobs_put_error", AsStats.BlobsPutError); + }) + } + } + } + DIV_CLASS("panel panel-info") { DIV_CLASS("panel-heading") { s << "Data"; @@ -456,4 +553,211 @@ namespace NKikimr::NBlobDepot { } } + NJson::TJsonValue TBlobDepot::RenderJson(bool pretty) { + NJson::TJsonMap json; + + const auto formatSize = [&](ui64 size) -> NJson::TJsonValue { + if (pretty) { + return FormatByteSize(size); + } else { + return size; + } + }; + + ui64 total = 0; + ui64 trashInFlight = 0; + ui64 trashPending = 0; + Data->EnumerateRefCount([&](TLogoBlobID id, ui32 /*refCount*/) { + total += id.BlobSize(); + }); + Data->EnumerateTrash([&](ui32 /*groupId*/, TLogoBlobID id, bool inFlight) { + (inFlight ? trashInFlight : trashPending) += id.BlobSize(); + }); + + NJson::TJsonMap data{ + {"data", formatSize(total)}, + {"trash_in_flight", formatSize(trashInFlight)}, + {"trash_pending", formatSize(trashPending)}, + }; + + for (const auto& [groupId, group] : Groups) { + data[TStringBuilder() << "g" << groupId] = formatSize(group.AllocatedBytes); + } + + if (Configured && Config.GetIsDecommittingGroup()) { + data["d.running"] = GroupAssimilatorId ? "running" : "stopped"; + data["d.state"] = TStringBuilder() << DecommitState; + data["d.last_assimilated_blob_id"] = Data->LastAssimilatedBlobId ? Data->LastAssimilatedBlobId->ToString() : ""; + AsStats.ToJson(data, pretty); + } + + json["data"] = std::move(data); + + return json; + } + + TJsonHandler::TJsonHandler(TRenderJson renderJson, ui32 timerEv, ui32 updateEv) + : RenderJson(renderJson) + , TimerEv(timerEv) + , UpdateEv(updateEv) + {} + + void TJsonHandler::Setup(TActorId selfId, ui32 generation) { + SelfId = selfId; + Generation = generation; + } + + void TJsonHandler::ProcessRenderPage(const TCgiParameters& cgi, TActorId sender, ui64 cookie) { + const TMonotonic now = TActivationContext::Monotonic(); + + auto issueResponse = [&](const NJson::TJsonValue& json) { + TStringStream s; + NJson::WriteJson(&s, &json); + TActivationContext::Send(new IEventHandle(sender, SelfId, new NMon::TEvRemoteJsonInfoRes(s.Str()), 0, cookie)); + }; + + auto issueError = [&](TString message) { + issueResponse(NJson::TJsonMap{{"error", std::move(message)}}); + }; + + if (!cgi.Has("pretty")) { + return issueResponse(RenderJson(false)); + } + + UpdateHistory(now); + + if (cgi.Has("generation")) { + ui32 gen; + if (!TryFromString(cgi.Get("generation"), gen)) { + return issueError("incorrect 'generation' parameter"); + } else if (gen != Generation) { + return issueError("generation mismatch"); + } + } + + if (cgi.Has("sequence")) { + ui64 seq; + if (!TryFromString(cgi.Get("sequence"), seq)) { + return issueError("incorrect 'sequence' parameter"); + } else if (seq == Sequence) { + const TMonotonic when = now + LongPollTimeout; + LongPolls.emplace_back(TJsonHandler::TLongPoll{when, sender, cookie, seq}); + if (!LongPollTimerPending) { + TActivationContext::Schedule(when, new IEventHandle(TimerEv, 0, SelfId, {}, nullptr, 0)); + LongPollTimerPending = true; + } + return; + } else { + return IssueResponse({TMonotonic(), sender, cookie, seq}); + } + } + + IssueResponse({TMonotonic(), sender, cookie, 0}); + } + + void TJsonHandler::Invalidate() { + Invalid = true; + if (!LongPolls.empty() && !UpdateTimerPending) { + const TMonotonic when = LastUpdatedTimestamp + UpdateTimeout; + TActivationContext::Schedule(when, new IEventHandle(UpdateEv, 0, SelfId, {}, nullptr, 0)); + UpdateTimerPending = true; + } + } + + void TJsonHandler::HandleTimer() { + Y_ABORT_UNLESS(LongPollTimerPending); + + NJson::TJsonMap json{{"no_change", true}, {"generation", Generation}, {"sequence", Sequence}}; + TStringStream s; + NJson::WriteJson(&s, &json); + + const TMonotonic now = TActivationContext::Monotonic(); + for (; !LongPolls.empty() && LongPolls.front().When <= now; LongPolls.pop_front()) { + const auto& item = LongPolls.front(); + TActivationContext::Send(new IEventHandle(item.Sender, SelfId, new NMon::TEvRemoteJsonInfoRes(s.Str()), 0, item.Cookie)); + } + + if (LongPolls.empty()) { + LongPollTimerPending = false; + } else { + TActivationContext::Schedule(LongPolls.front().When, new IEventHandle(TimerEv, 0, SelfId, {}, nullptr, 0)); + } + } + + void TJsonHandler::HandleUpdate() { + Y_ABORT_UNLESS(UpdateTimerPending); + UpdateTimerPending = false; + if (!LongPolls.empty()) { + UpdateHistory(TActivationContext::Monotonic()); + } + } + + void TJsonHandler::UpdateHistory(TMonotonic now) { + if (LastUpdatedTimestamp + UpdateTimeout <= now && Invalid) { + NJson::TJsonValue json = RenderJson(true); + json["generation"] = Generation; + json["sequence"] = Sequence; + if (History.empty() || json != History.back().Json) { + json["sequence"] = ++Sequence; + History.emplace_back(THistory{Sequence, std::move(json)}); + while (History.size() > 3) { + History.pop_front(); + } + + TStringStream s; + NJson::WriteJson(&s, &History.back().Json); + + for (const auto& lp : LongPolls) { + IssueResponse(lp); + } + LongPolls.clear(); + } + + LastUpdatedTimestamp = now; + Invalid = false; + } + if (Invalid && !UpdateTimerPending) { + const TMonotonic when = LastUpdatedTimestamp + UpdateTimeout; + TActivationContext::Schedule(when, new IEventHandle(UpdateEv, 0, SelfId, {}, nullptr, 0)); + UpdateTimerPending = true; + } + } + + void TJsonHandler::IssueResponse(const TLongPoll& lp) { + const NJson::TJsonValue *base = nullptr; + + if (lp.BaseSequence) { + auto comp = [](const THistory& item, ui64 sequence) { return item.Sequence < sequence; }; + auto it = std::lower_bound(History.begin(), History.end(), lp.BaseSequence, comp); + if (it != History.end() && it->Sequence == lp.BaseSequence) { + base = &it->Json; + } + } + + Y_ABORT_UNLESS(!History.empty()); + + auto issueResponse = [&](const NJson::TJsonValue& json) { + TStringStream s; + NJson::WriteJson(&s, &json); + TActivationContext::Send(new IEventHandle(lp.Sender, SelfId, new NMon::TEvRemoteJsonInfoRes(s.Str()), 0, + lp.Cookie)); + }; + + if (base) { + NJson::TJsonValue response = History.back().Json; + const auto& baseMap = (*base)["data"].GetMapSafe(); + auto& map = response["data"].GetMapSafe(); + for (auto it = map.begin(); it != map.end(); ) { + if (const auto jt = baseMap.find(it->first); jt != baseMap.end() && jt->second == it->second) { + map.erase(it++); + } else { + ++it; + } + } + issueResponse(response); + } else { + issueResponse(History.back().Json); + } + } + } // NKikimr::NBlobDepot diff --git a/ydb/core/blob_depot/mon_main.h b/ydb/core/blob_depot/mon_main.h index b9aa0fd39bc9..499adda38cad 100644 --- a/ydb/core/blob_depot/mon_main.h +++ b/ydb/core/blob_depot/mon_main.h @@ -23,6 +23,14 @@ namespace NKikimr::NBlobDepot { TABLED() { __stream << (VALUE); } \ } + #define KEYVALUE_UP(KEY, NAME, VALUE) \ + TABLER() { \ + TABLED() { __stream << (KEY); } \ + TABLED() { \ + __stream << "
"; \ + } \ + } + inline TString FormatByteSize(ui64 size) { static const char *suffixes[] = {"B", "KiB", "MiB", "GiB", "TiB", "PiB", nullptr}; TStringStream s; @@ -30,4 +38,54 @@ namespace NKikimr::NBlobDepot { return s.Str(); } + class TJsonHandler { + public: + using TRenderJson = std::function; + + private: + struct THistory { + ui64 Sequence; + NJson::TJsonValue Json; + }; + + struct TLongPoll { + TMonotonic When; + TActorId Sender; + ui64 Cookie; + ui64 BaseSequence; + }; + + private: + TRenderJson RenderJson; + ui32 TimerEv; + ui32 UpdateEv; + TActorId SelfId; + ui32 Generation; + std::deque History; + ui64 Sequence = 0; + bool Invalid = true; + TMonotonic LastUpdatedTimestamp; + std::deque LongPolls; + bool LongPollTimerPending = false; + bool UpdateTimerPending = false; + + const TDuration LongPollTimeout = TDuration::Seconds(10); + const TDuration UpdateTimeout = TDuration::MilliSeconds(750); + + public: + TJsonHandler(TRenderJson renderJson, ui32 timerEv, ui32 updateEv); + + void Setup(TActorId selfId, ui32 generation); + + void ProcessRenderPage(const TCgiParameters& cgi, TActorId sender, ui64 cookie); + void Invalidate(); // called then RenderJson may generate another value + + void HandleTimer(); + void HandleUpdate(); + + private: + void UpdateHistory(TMonotonic now); + void IssueResponse(const TLongPoll& lp); + }; + } // NKikimr::NBlobDepot diff --git a/ydb/core/blob_depot/op_commit_blob_seq.cpp b/ydb/core/blob_depot/op_commit_blob_seq.cpp index 5011438d8932..e7aa4f6ec1f4 100644 --- a/ydb/core/blob_depot/op_commit_blob_seq.cpp +++ b/ydb/core/blob_depot/op_commit_blob_seq.cpp @@ -14,6 +14,8 @@ namespace NKikimr::NBlobDepot { std::unique_ptr Response; std::vector BlobSeqIds; std::set FailedBlobSeqIds; + std::set CanBeCollectedBlobSeqIds; + std::set AllowedBlobSeqIds; public: TTxType GetTxType() const override { return NKikimrBlobDepot::TXTYPE_COMMIT_BLOB_SEQ; } @@ -35,8 +37,11 @@ namespace NKikimr::NBlobDepot { Y_VERIFY_S(blobSeqId.Generation < generation, "committing trimmed BlobSeqId" << " BlobSeqId# " << blobSeqId.ToString() << " Id# " << Self->GetLogId()); + CanBeCollectedBlobSeqIds.insert(blobSeqId); } else if (!Self->Data->BeginCommittingBlobSeqId(agent, blobSeqId)) { FailedBlobSeqIds.insert(blobSeqId); + } else { + AllowedBlobSeqIds.insert(blobSeqId); } BlobSeqIds.push_back(blobSeqId); } @@ -102,6 +107,8 @@ namespace NKikimr::NBlobDepot { continue; } + Y_VERIFY_DEBUG_S(!CanBeCollectedBlobSeqIds.contains(blobSeqId), "BlobSeqId# " << blobSeqId); + TString error; if (!CheckKeyAgainstBarrier(key, &error)) { responseItem->SetStatus(NKikimrProto::ERROR); @@ -121,6 +128,15 @@ namespace NKikimr::NBlobDepot { responseItem->SetStatus(NKikimrProto::RACE); } } else { + Y_VERIFY_DEBUG_S(AllowedBlobSeqIds.contains(blobSeqId), "BlobSeqId# " << blobSeqId); + Y_VERIFY_DEBUG_S( + Self->Channels[blobSeqId.Channel].GetLeastExpectedBlobId(generation) <= blobSeqId, + "BlobSeqId# " << blobSeqId + << " LeastExpectedBlobId# " << Self->Channels[blobSeqId.Channel].GetLeastExpectedBlobId(generation) + << " Generation# " << generation); + Y_VERIFY_DEBUG_S(blobSeqId.Generation == generation, "BlobSeqId# " << blobSeqId << " Generation# " << generation); + Y_VERIFY_DEBUG_S(Self->Channels[blobSeqId.Channel].SequenceNumbersInFlight.contains(blobSeqId.ToSequentialNumber()), + "BlobSeqId# " << blobSeqId); Self->Data->UpdateKey(key, item, txc, this); } } diff --git a/ydb/core/blob_depot/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blob_depot/ut/CMakeLists.darwin-arm64.txt index c74fa9a7d068..017232c5bef6 100644 --- a/ydb/core/blob_depot/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blob_depot/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-core-blob_depot-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blob_depot-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/closed_interval_set_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blob_depot/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blob_depot/ut/CMakeLists.darwin-x86_64.txt index 88c56c58f2fd..fbafba6738fc 100644 --- a/ydb/core/blob_depot/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blob_depot/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-core-blob_depot-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blob_depot-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/closed_interval_set_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blob_depot/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blob_depot/ut/CMakeLists.linux-aarch64.txt index 941634f5f7f0..84ddb021cf8a 100644 --- a/ydb/core/blob_depot/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blob_depot/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-core-blob_depot-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blob_depot-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/closed_interval_set_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blob_depot/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blob_depot/ut/CMakeLists.linux-x86_64.txt index dabbcfcf71cb..e7660e7a4e13 100644 --- a/ydb/core/blob_depot/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blob_depot/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-core-blob_depot-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blob_depot-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blob_depot/closed_interval_set_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blob_depot/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blob_depot/ut/CMakeLists.windows-x86_64.txt index 12c675dd52dc..fc9826b6b3c3 100644 --- a/ydb/core/blob_depot/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blob_depot/ut/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blob_depot/ya.make b/ydb/core/blob_depot/ya.make index 9d3d3d9f6998..346426639341 100644 --- a/ydb/core/blob_depot/ya.make +++ b/ydb/core/blob_depot/ya.make @@ -51,6 +51,8 @@ LIBRARY() ydb/core/protos ) + GENERATE_ENUM_SERIALIZATION(schema.h) + END() RECURSE( diff --git a/ydb/core/blobstorage/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/CMakeLists.darwin-arm64.txt index 68b0f9d3f56c..9587189349c9 100644 --- a/ydb/core/blobstorage/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/CMakeLists.darwin-arm64.txt @@ -45,3 +45,6 @@ target_link_libraries(ydb-core-blobstorage INTERFACE core-blobstorage-storagepoolmon core-blobstorage-vdisk ) +target_sources(ydb-core-blobstorage INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/defs.h +) diff --git a/ydb/core/blobstorage/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/CMakeLists.darwin-x86_64.txt index 68b0f9d3f56c..9587189349c9 100644 --- a/ydb/core/blobstorage/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/CMakeLists.darwin-x86_64.txt @@ -45,3 +45,6 @@ target_link_libraries(ydb-core-blobstorage INTERFACE core-blobstorage-storagepoolmon core-blobstorage-vdisk ) +target_sources(ydb-core-blobstorage INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/defs.h +) diff --git a/ydb/core/blobstorage/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/CMakeLists.linux-aarch64.txt index 93d433b2b5fc..8ccf2f330f46 100644 --- a/ydb/core/blobstorage/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/CMakeLists.linux-aarch64.txt @@ -46,3 +46,6 @@ target_link_libraries(ydb-core-blobstorage INTERFACE core-blobstorage-storagepoolmon core-blobstorage-vdisk ) +target_sources(ydb-core-blobstorage INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/defs.h +) diff --git a/ydb/core/blobstorage/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/CMakeLists.linux-x86_64.txt index 93d433b2b5fc..8ccf2f330f46 100644 --- a/ydb/core/blobstorage/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/CMakeLists.linux-x86_64.txt @@ -46,3 +46,6 @@ target_link_libraries(ydb-core-blobstorage INTERFACE core-blobstorage-storagepoolmon core-blobstorage-vdisk ) +target_sources(ydb-core-blobstorage INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/defs.h +) diff --git a/ydb/core/blobstorage/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/CMakeLists.windows-x86_64.txt index 68b0f9d3f56c..9587189349c9 100644 --- a/ydb/core/blobstorage/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/CMakeLists.windows-x86_64.txt @@ -45,3 +45,6 @@ target_link_libraries(ydb-core-blobstorage INTERFACE core-blobstorage-storagepoolmon core-blobstorage-vdisk ) +target_sources(ydb-core-blobstorage INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/defs.h +) diff --git a/ydb/core/blobstorage/backpressure/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/backpressure/CMakeLists.darwin-arm64.txt index e5d77fdae0b7..ceac6e237594 100644 --- a/ydb/core/blobstorage/backpressure/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/backpressure/CMakeLists.darwin-arm64.txt @@ -23,6 +23,14 @@ target_link_libraries(core-blobstorage-backpressure PUBLIC ydb-core-protos ) target_sources(core-blobstorage-backpressure PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/event.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/unisched.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/event.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client.cpp diff --git a/ydb/core/blobstorage/backpressure/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/backpressure/CMakeLists.darwin-x86_64.txt index e5d77fdae0b7..ceac6e237594 100644 --- a/ydb/core/blobstorage/backpressure/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/backpressure/CMakeLists.darwin-x86_64.txt @@ -23,6 +23,14 @@ target_link_libraries(core-blobstorage-backpressure PUBLIC ydb-core-protos ) target_sources(core-blobstorage-backpressure PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/event.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/unisched.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/event.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client.cpp diff --git a/ydb/core/blobstorage/backpressure/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/backpressure/CMakeLists.linux-aarch64.txt index bfa651249a60..688b733df828 100644 --- a/ydb/core/blobstorage/backpressure/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/backpressure/CMakeLists.linux-aarch64.txt @@ -24,6 +24,14 @@ target_link_libraries(core-blobstorage-backpressure PUBLIC ydb-core-protos ) target_sources(core-blobstorage-backpressure PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/event.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/unisched.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/event.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client.cpp diff --git a/ydb/core/blobstorage/backpressure/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/backpressure/CMakeLists.linux-x86_64.txt index bfa651249a60..688b733df828 100644 --- a/ydb/core/blobstorage/backpressure/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/backpressure/CMakeLists.linux-x86_64.txt @@ -24,6 +24,14 @@ target_link_libraries(core-blobstorage-backpressure PUBLIC ydb-core-protos ) target_sources(core-blobstorage-backpressure PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/event.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/unisched.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/event.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client.cpp diff --git a/ydb/core/blobstorage/backpressure/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/backpressure/CMakeLists.windows-x86_64.txt index e5d77fdae0b7..ceac6e237594 100644 --- a/ydb/core/blobstorage/backpressure/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/backpressure/CMakeLists.windows-x86_64.txt @@ -23,6 +23,14 @@ target_link_libraries(core-blobstorage-backpressure PUBLIC ydb-core-protos ) target_sources(core-blobstorage-backpressure PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/event.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/unisched.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/event.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client.cpp diff --git a/ydb/core/blobstorage/backpressure/queue.h b/ydb/core/blobstorage/backpressure/queue.h index 5ba7a745a73c..f7e49e66805d 100644 --- a/ydb/core/blobstorage/backpressure/queue.h +++ b/ydb/core/blobstorage/backpressure/queue.h @@ -180,6 +180,10 @@ class TBlobStorageQueue { return Queues.InFlight.size(); } + ui64 GetInFlightCost() const { + return InFlightCost; + } + void UpdateCostModel(TInstant now, const NKikimrBlobStorage::TVDiskCostSettings& settings, const TBlobStorageGroupType& type); void InvalidateCosts(); diff --git a/ydb/core/blobstorage/backpressure/queue_backpressure_client.cpp b/ydb/core/blobstorage/backpressure/queue_backpressure_client.cpp index b3c9d1d33c4d..f60b2d78a0ac 100644 --- a/ydb/core/blobstorage/backpressure/queue_backpressure_client.cpp +++ b/ydb/core/blobstorage/backpressure/queue_backpressure_client.cpp @@ -365,7 +365,11 @@ class TVDiskBackpressureClientActor : public TActorBootstrapped= cost); Cost -= cost; --InFlight; diff --git a/ydb/core/blobstorage/backpressure/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/backpressure/ut/CMakeLists.darwin-arm64.txt index fb8a0c70c893..8808bc35e755 100644 --- a/ydb/core/blobstorage/backpressure/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/backpressure/ut/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-core-blobstorage-backpressure-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-backpressure-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/backpressure/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/backpressure/ut/CMakeLists.darwin-x86_64.txt index 92ecd9ad5e5f..ec766c95179c 100644 --- a/ydb/core/blobstorage/backpressure/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/backpressure/ut/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-blobstorage-backpressure-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-backpressure-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/backpressure/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/backpressure/ut/CMakeLists.linux-aarch64.txt index f75e12197e13..c0f8ce04fc4f 100644 --- a/ydb/core/blobstorage/backpressure/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/backpressure/ut/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-core-blobstorage-backpressure-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-backpressure-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/backpressure/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/backpressure/ut/CMakeLists.linux-x86_64.txt index b03121d6cfab..277d8ee21c28 100644 --- a/ydb/core/blobstorage/backpressure/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/backpressure/ut/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-blobstorage-backpressure-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-backpressure-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/queue_backpressure_client_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/backpressure/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/backpressure/ut/CMakeLists.windows-x86_64.txt index a1c24d85862a..ea550cc88871 100644 --- a/ydb/core/blobstorage/backpressure/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/backpressure/ut/CMakeLists.windows-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.darwin-arm64.txt index 1e8fec3fcafd..2da82393bbcf 100644 --- a/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.darwin-arm64.txt @@ -27,10 +27,11 @@ target_link_options(ydb-core-blobstorage-backpressure-ut_client PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-backpressure-ut_client PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/loader.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/skeleton_front_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/backpressure_ut.cpp ) set_property( @@ -58,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.darwin-x86_64.txt index 11ec47d4904d..c8c9193df2f3 100644 --- a/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.darwin-x86_64.txt @@ -28,10 +28,11 @@ target_link_options(ydb-core-blobstorage-backpressure-ut_client PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-backpressure-ut_client PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/loader.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/skeleton_front_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/backpressure_ut.cpp ) set_property( @@ -59,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.linux-aarch64.txt index ca1852fce5fc..d4e478db4cf7 100644 --- a/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.linux-aarch64.txt @@ -30,11 +30,11 @@ target_link_options(ydb-core-blobstorage-backpressure-ut_client PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-backpressure-ut_client PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/loader.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/skeleton_front_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/backpressure_ut.cpp ) set_property( @@ -62,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.linux-x86_64.txt index b3845044aa30..fc97f175542f 100644 --- a/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.linux-x86_64.txt @@ -31,11 +31,11 @@ target_link_options(ydb-core-blobstorage-backpressure-ut_client PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-backpressure-ut_client PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/loader.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/skeleton_front_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/backpressure_ut.cpp ) set_property( @@ -63,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.windows-x86_64.txt index 882f909a7699..fd47ffdceb9d 100644 --- a/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/backpressure/ut_client/CMakeLists.windows-x86_64.txt @@ -25,6 +25,9 @@ target_link_libraries(ydb-core-blobstorage-backpressure-ut_client PUBLIC udf-service-stub ) target_sources(ydb-core-blobstorage-backpressure-ut_client PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/loader.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/skeleton_front_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/backpressure/ut_client/backpressure_ut.cpp ) set_property( @@ -52,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/base/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/base/CMakeLists.darwin-arm64.txt index 1de126851572..bd547d6706f4 100644 --- a/ydb/core/blobstorage/base/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/base/CMakeLists.darwin-arm64.txt @@ -18,6 +18,18 @@ target_link_libraries(core-blobstorage-base PUBLIC ydb-core-protos ) target_sources(core-blobstorage-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/batched_vec.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_oos_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_vdiskid.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_syncstate.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/html.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/ptr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/vdisk_lsn.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/vdisk_sync_common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/vdisk_priorities.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/utility.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_events.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_vdiskid.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_syncstate.cpp diff --git a/ydb/core/blobstorage/base/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/base/CMakeLists.darwin-x86_64.txt index 1de126851572..bd547d6706f4 100644 --- a/ydb/core/blobstorage/base/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/base/CMakeLists.darwin-x86_64.txt @@ -18,6 +18,18 @@ target_link_libraries(core-blobstorage-base PUBLIC ydb-core-protos ) target_sources(core-blobstorage-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/batched_vec.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_oos_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_vdiskid.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_syncstate.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/html.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/ptr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/vdisk_lsn.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/vdisk_sync_common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/vdisk_priorities.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/utility.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_events.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_vdiskid.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_syncstate.cpp diff --git a/ydb/core/blobstorage/base/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/base/CMakeLists.linux-aarch64.txt index a0586c525fbc..e355846bebe0 100644 --- a/ydb/core/blobstorage/base/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/base/CMakeLists.linux-aarch64.txt @@ -19,6 +19,18 @@ target_link_libraries(core-blobstorage-base PUBLIC ydb-core-protos ) target_sources(core-blobstorage-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/batched_vec.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_oos_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_vdiskid.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_syncstate.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/html.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/ptr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/vdisk_lsn.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/vdisk_sync_common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/vdisk_priorities.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/utility.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_events.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_vdiskid.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_syncstate.cpp diff --git a/ydb/core/blobstorage/base/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/base/CMakeLists.linux-x86_64.txt index a0586c525fbc..e355846bebe0 100644 --- a/ydb/core/blobstorage/base/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/base/CMakeLists.linux-x86_64.txt @@ -19,6 +19,18 @@ target_link_libraries(core-blobstorage-base PUBLIC ydb-core-protos ) target_sources(core-blobstorage-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/batched_vec.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_oos_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_vdiskid.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_syncstate.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/html.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/ptr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/vdisk_lsn.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/vdisk_sync_common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/vdisk_priorities.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/utility.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_events.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_vdiskid.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_syncstate.cpp diff --git a/ydb/core/blobstorage/base/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/base/CMakeLists.windows-x86_64.txt index 1de126851572..bd547d6706f4 100644 --- a/ydb/core/blobstorage/base/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/base/CMakeLists.windows-x86_64.txt @@ -18,6 +18,18 @@ target_link_libraries(core-blobstorage-base PUBLIC ydb-core-protos ) target_sources(core-blobstorage-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/batched_vec.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_oos_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_vdiskid.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_syncstate.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/html.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/ptr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/vdisk_lsn.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/vdisk_sync_common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/vdisk_priorities.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/utility.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_events.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_vdiskid.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/blobstorage_syncstate.cpp diff --git a/ydb/core/blobstorage/base/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/base/ut/CMakeLists.darwin-arm64.txt index e2ed31e39866..cc79b86a8aea 100644 --- a/ydb/core/blobstorage/base/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/base/ut/CMakeLists.darwin-arm64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-core-blobstorage-base-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/batched_vec_ut.cpp @@ -43,6 +41,7 @@ set_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_property( TEST diff --git a/ydb/core/blobstorage/base/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/base/ut/CMakeLists.darwin-x86_64.txt index 27587b97f51e..ef09be7659a5 100644 --- a/ydb/core/blobstorage/base/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/base/ut/CMakeLists.darwin-x86_64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-core-blobstorage-base-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/batched_vec_ut.cpp @@ -44,6 +42,7 @@ set_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_property( TEST diff --git a/ydb/core/blobstorage/base/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/base/ut/CMakeLists.linux-aarch64.txt index f93bc0867b2a..ac3826de7ea9 100644 --- a/ydb/core/blobstorage/base/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/base/ut/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-core-blobstorage-base-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/batched_vec_ut.cpp @@ -47,6 +44,7 @@ set_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_property( TEST diff --git a/ydb/core/blobstorage/base/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/base/ut/CMakeLists.linux-x86_64.txt index 8eb4be35d7fc..2730d79b4ef7 100644 --- a/ydb/core/blobstorage/base/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/base/ut/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-core-blobstorage-base-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/base/batched_vec_ut.cpp @@ -48,6 +45,7 @@ set_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_property( TEST diff --git a/ydb/core/blobstorage/base/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/base/ut/CMakeLists.windows-x86_64.txt index 7faedc25739d..5f88274eaee5 100644 --- a/ydb/core/blobstorage/base/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/base/ut/CMakeLists.windows-x86_64.txt @@ -37,6 +37,7 @@ set_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_property( TEST diff --git a/ydb/core/blobstorage/crypto/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/crypto/CMakeLists.darwin-arm64.txt index 5fb7db780812..2118ab2f7f0a 100644 --- a/ydb/core/blobstorage/crypto/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/crypto/CMakeLists.darwin-arm64.txt @@ -17,6 +17,7 @@ target_link_libraries(core-blobstorage-crypto PUBLIC library-actors-util ) target_sources(core-blobstorage-crypto PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/crypto.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/chacha.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/crypto.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/poly1305.cpp diff --git a/ydb/core/blobstorage/crypto/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/crypto/CMakeLists.darwin-x86_64.txt index 0d5aaf0045fd..6ee87adff500 100644 --- a/ydb/core/blobstorage/crypto/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/crypto/CMakeLists.darwin-x86_64.txt @@ -17,6 +17,7 @@ target_link_libraries(core-blobstorage-crypto PUBLIC library-actors-util ) target_sources(core-blobstorage-crypto PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/crypto.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/chacha.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/crypto.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/poly1305.cpp diff --git a/ydb/core/blobstorage/crypto/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/crypto/CMakeLists.linux-aarch64.txt index 475ed669f39f..5f306a04ccae 100644 --- a/ydb/core/blobstorage/crypto/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/crypto/CMakeLists.linux-aarch64.txt @@ -18,6 +18,7 @@ target_link_libraries(core-blobstorage-crypto PUBLIC library-actors-util ) target_sources(core-blobstorage-crypto PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/crypto.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/chacha.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/crypto.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/poly1305.cpp diff --git a/ydb/core/blobstorage/crypto/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/crypto/CMakeLists.linux-x86_64.txt index 5f644bf8f458..34154392a738 100644 --- a/ydb/core/blobstorage/crypto/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/crypto/CMakeLists.linux-x86_64.txt @@ -18,6 +18,7 @@ target_link_libraries(core-blobstorage-crypto PUBLIC library-actors-util ) target_sources(core-blobstorage-crypto PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/crypto.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/chacha.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/crypto.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/poly1305.cpp diff --git a/ydb/core/blobstorage/crypto/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/crypto/CMakeLists.windows-x86_64.txt index 5fb7db780812..2118ab2f7f0a 100644 --- a/ydb/core/blobstorage/crypto/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/crypto/CMakeLists.windows-x86_64.txt @@ -17,6 +17,7 @@ target_link_libraries(core-blobstorage-crypto PUBLIC library-actors-util ) target_sources(core-blobstorage-crypto PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/crypto.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/chacha.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/crypto.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/poly1305.cpp diff --git a/ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-arm64.txt index 23ddb219a971..10c2c001fe78 100644 --- a/ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ 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 @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 8a9975fbf263..3bc5bcd005a8 100644 --- a/ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/crypto/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ 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 @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/crypto/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/crypto/ut/CMakeLists.linux-aarch64.txt index e43314a95b96..a229cc05bffe 100644 --- a/ydb/core/blobstorage/crypto/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/crypto/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-core-blobstorage-crypto-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-crypto-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/chacha_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/crypto/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/crypto/ut/CMakeLists.linux-x86_64.txt index 7e4159190903..049bad8ab231 100644 --- a/ydb/core/blobstorage/crypto/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/crypto/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-core-blobstorage-crypto-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-crypto-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/crypto/chacha_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/crypto/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/crypto/ut/CMakeLists.windows-x86_64.txt index 5fbf413500a4..c995a8707b18 100644 --- a/ydb/core/blobstorage/crypto/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/crypto/ut/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/dsproxy/CMakeLists.darwin-arm64.txt index cc7101fad7de..7af3483fb28f 100644 --- a/ydb/core/blobstorage/dsproxy/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/dsproxy/CMakeLists.darwin-arm64.txt @@ -10,6 +10,7 @@ add_subdirectory(mock) add_subdirectory(ut) add_subdirectory(ut_fat) add_subdirectory(ut_ftol) +add_subdirectory(ut_strategy) add_library(core-blobstorage-dsproxy) target_link_libraries(core-blobstorage-dsproxy PUBLIC @@ -26,6 +27,32 @@ target_link_libraries(core-blobstorage-dsproxy PUBLIC ydb-core-util ) target_sources(core-blobstorage-dsproxy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_blackboard.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_monactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_nodemon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_nodemonactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_quorum_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_responsiveness.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_accelerate_put.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_accelerate_put_m3dc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_base.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_bold.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3dc_basic.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3dc_restore.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3of4.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_min_iops_block.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_min_iops_mirror.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_m3of4_base.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_put_m3dc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_put_m3of4.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_restore.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/group_sessions.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/log_acc.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_encrypt.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_request.cpp diff --git a/ydb/core/blobstorage/dsproxy/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/dsproxy/CMakeLists.darwin-x86_64.txt index cc7101fad7de..7af3483fb28f 100644 --- a/ydb/core/blobstorage/dsproxy/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/dsproxy/CMakeLists.darwin-x86_64.txt @@ -10,6 +10,7 @@ add_subdirectory(mock) add_subdirectory(ut) add_subdirectory(ut_fat) add_subdirectory(ut_ftol) +add_subdirectory(ut_strategy) add_library(core-blobstorage-dsproxy) target_link_libraries(core-blobstorage-dsproxy PUBLIC @@ -26,6 +27,32 @@ target_link_libraries(core-blobstorage-dsproxy PUBLIC ydb-core-util ) target_sources(core-blobstorage-dsproxy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_blackboard.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_monactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_nodemon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_nodemonactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_quorum_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_responsiveness.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_accelerate_put.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_accelerate_put_m3dc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_base.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_bold.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3dc_basic.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3dc_restore.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3of4.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_min_iops_block.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_min_iops_mirror.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_m3of4_base.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_put_m3dc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_put_m3of4.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_restore.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/group_sessions.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/log_acc.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_encrypt.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_request.cpp diff --git a/ydb/core/blobstorage/dsproxy/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/dsproxy/CMakeLists.linux-aarch64.txt index 478beeec5a89..514c72308304 100644 --- a/ydb/core/blobstorage/dsproxy/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/dsproxy/CMakeLists.linux-aarch64.txt @@ -10,6 +10,7 @@ add_subdirectory(mock) add_subdirectory(ut) add_subdirectory(ut_fat) add_subdirectory(ut_ftol) +add_subdirectory(ut_strategy) add_library(core-blobstorage-dsproxy) target_link_libraries(core-blobstorage-dsproxy PUBLIC @@ -27,6 +28,32 @@ target_link_libraries(core-blobstorage-dsproxy PUBLIC ydb-core-util ) target_sources(core-blobstorage-dsproxy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_blackboard.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_monactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_nodemon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_nodemonactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_quorum_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_responsiveness.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_accelerate_put.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_accelerate_put_m3dc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_base.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_bold.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3dc_basic.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3dc_restore.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3of4.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_min_iops_block.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_min_iops_mirror.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_m3of4_base.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_put_m3dc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_put_m3of4.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_restore.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/group_sessions.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/log_acc.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_encrypt.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_request.cpp diff --git a/ydb/core/blobstorage/dsproxy/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/dsproxy/CMakeLists.linux-x86_64.txt index 478beeec5a89..514c72308304 100644 --- a/ydb/core/blobstorage/dsproxy/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/dsproxy/CMakeLists.linux-x86_64.txt @@ -10,6 +10,7 @@ add_subdirectory(mock) add_subdirectory(ut) add_subdirectory(ut_fat) add_subdirectory(ut_ftol) +add_subdirectory(ut_strategy) add_library(core-blobstorage-dsproxy) target_link_libraries(core-blobstorage-dsproxy PUBLIC @@ -27,6 +28,32 @@ target_link_libraries(core-blobstorage-dsproxy PUBLIC ydb-core-util ) target_sources(core-blobstorage-dsproxy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_blackboard.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_monactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_nodemon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_nodemonactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_quorum_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_responsiveness.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_accelerate_put.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_accelerate_put_m3dc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_base.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_bold.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3dc_basic.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3dc_restore.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3of4.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_min_iops_block.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_min_iops_mirror.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_m3of4_base.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_put_m3dc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_put_m3of4.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_restore.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/group_sessions.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/log_acc.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_encrypt.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_request.cpp diff --git a/ydb/core/blobstorage/dsproxy/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/dsproxy/CMakeLists.windows-x86_64.txt index cc7101fad7de..7af3483fb28f 100644 --- a/ydb/core/blobstorage/dsproxy/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/dsproxy/CMakeLists.windows-x86_64.txt @@ -10,6 +10,7 @@ add_subdirectory(mock) add_subdirectory(ut) add_subdirectory(ut_fat) add_subdirectory(ut_ftol) +add_subdirectory(ut_strategy) add_library(core-blobstorage-dsproxy) target_link_libraries(core-blobstorage-dsproxy PUBLIC @@ -26,6 +27,32 @@ target_link_libraries(core-blobstorage-dsproxy PUBLIC ydb-core-util ) target_sources(core-blobstorage-dsproxy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_blackboard.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_monactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_nodemon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_nodemonactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_quorum_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_responsiveness.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_accelerate_put.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_accelerate_put_m3dc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_base.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_bold.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3dc_basic.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3dc_restore.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_m3of4.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_min_iops_block.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_get_min_iops_mirror.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_m3of4_base.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_put_m3dc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_put_m3of4.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_strategy_restore.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/group_sessions.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/log_acc.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_encrypt.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/dsproxy_request.cpp diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_blackboard.cpp b/ydb/core/blobstorage/dsproxy/dsproxy_blackboard.cpp index 97706a1b6f13..6df5e4ce8698 100644 --- a/ydb/core/blobstorage/dsproxy/dsproxy_blackboard.cpp +++ b/ydb/core/blobstorage/dsproxy/dsproxy_blackboard.cpp @@ -48,12 +48,6 @@ void TBlobState::AddPartToPut(ui32 partIdx, TRope&& partData) { IsChanged = true; } -void TBlobState::MarkBlobReadyToPut(ui8 blobIdx) { - Y_ABORT_UNLESS(WholeSituation == ESituation::Unknown || WholeSituation == ESituation::Present); - BlobIdx = blobIdx; - IsChanged = true; -} - bool TBlobState::Restore(const TBlobStorageGroupInfo &info) { const TIntervalVec fullBlobInterval(0, Id.BlobSize()); const TIntervalSet here = Whole.Here(); @@ -227,7 +221,7 @@ TString TBlobState::ToString() const { for (ui32 i = 0; i < Disks.size(); ++i) { str << Endl << " Disks[" << i << "]# " << Disks[i].ToString() << Endl; } - str << " BlobIdx# " << (ui32)BlobIdx << Endl; + str << " BlobIdx# " << BlobIdx << Endl; str << "}"; return str.Str(); } @@ -304,7 +298,7 @@ void TGroupDiskRequests::AddGet(ui32 diskOrderNumber, const TLogoBlobID &id, ui3 } void TGroupDiskRequests::AddPut(ui32 diskOrderNumber, const TLogoBlobID &id, TRope buffer, - TDiskPutRequest::EPutReason putReason, bool isHandoff, ui8 blobIdx) { + TDiskPutRequest::EPutReason putReason, bool isHandoff, size_t blobIdx) { PutsPending.emplace_back(diskOrderNumber, id, buffer, putReason, isHandoff, blobIdx); } @@ -340,20 +334,6 @@ void TBlackboard::AddPartToPut(const TLogoBlobID &id, ui32 partIdx, TRope&& part (*this)[id].AddPartToPut(partIdx, std::move(partData)); } -void TBlackboard::MarkBlobReadyToPut(const TLogoBlobID &id, ui8 blobIdx) { - Y_ABORT_UNLESS(bool(id)); - Y_ABORT_UNLESS(id.PartId() == 0); - Y_ABORT_UNLESS(id.BlobSize() != 0); - (*this)[id].MarkBlobReadyToPut(blobIdx); -} - -void TBlackboard::MoveBlobStateToDone(const TLogoBlobID &id) { - Y_ABORT_UNLESS(bool(id)); - Y_ABORT_UNLESS(id.PartId() == 0); - Y_ABORT_UNLESS(id.BlobSize() != 0); - DoneBlobStates.insert(BlobStates.extract(id)); -} - void TBlackboard::AddPutOkResponse(const TLogoBlobID &id, ui32 orderNumber) { Y_ABORT_UNLESS(bool(id)); Y_ABORT_UNLESS(id.PartId() != 0); @@ -390,8 +370,7 @@ void TBlackboard::AddErrorResponse(const TLogoBlobID &id, ui32 orderNumber) { } EStrategyOutcome TBlackboard::RunStrategies(TLogContext &logCtx, const TStackVec& s, - TBatchedVec *finished, const TBlobStorageGroupInfo::TGroupVDisks *expired) { - TString errorReason; + TBatchedVec *finished, const TBlobStorageGroupInfo::TGroupVDisks *expired) { for (auto it = BlobStates.begin(); it != BlobStates.end(); ) { auto& blob = it->second; if (!std::exchange(blob.IsChanged, false)) { @@ -401,6 +380,7 @@ EStrategyOutcome TBlackboard::RunStrategies(TLogContext &logCtx, const TStackVec // recalculate blob outcome if it is not yet determined NKikimrProto::EReplyStatus status = NKikimrProto::OK; + TString errorReason; for (IStrategy *strategy : s) { switch (auto res = strategy->Process(logCtx, blob, *Info, *this, GroupDiskRequests)) { case EStrategyOutcome::IN_PROGRESS: @@ -408,16 +388,11 @@ EStrategyOutcome TBlackboard::RunStrategies(TLogContext &logCtx, const TStackVec break; case EStrategyOutcome::ERROR: - if (IsAllRequestsTogether) { + if (!finished) { return res; } - if (errorReason) { - errorReason += " && "; - errorReason += res.ErrorReason; - } else { - errorReason = res.ErrorReason; - } status = NKikimrProto::ERROR; + errorReason = std::move(res.ErrorReason); break; case EStrategyOutcome::DONE: @@ -431,26 +406,25 @@ EStrategyOutcome TBlackboard::RunStrategies(TLogContext &logCtx, const TStackVec status = NKikimrProto::UNKNOWN; } if (status != NKikimrProto::UNKNOWN) { + if (finished) { // we are operating on independent blobs + finished->push_back(TFinishedBlob{ + blob.BlobIdx, + status, + std::move(errorReason), + }); + } const auto [doneIt, inserted, node] = DoneBlobStates.insert(BlobStates.extract(it++)); Y_ABORT_UNLESS(inserted); - if (!IsAllRequestsTogether) { - blob.Status = status; - if (finished) { - finished->push_back(&*doneIt); - } - } } else { ++it; } } - EStrategyOutcome outcome(BlobStates.empty() ? EStrategyOutcome::DONE : EStrategyOutcome::IN_PROGRESS); - outcome.ErrorReason = std::move(errorReason); - return outcome; + return BlobStates.empty() ? EStrategyOutcome::DONE : EStrategyOutcome::IN_PROGRESS; } EStrategyOutcome TBlackboard::RunStrategy(TLogContext &logCtx, const IStrategy& s, - TBatchedVec *finished, const TBlobStorageGroupInfo::TGroupVDisks *expired) { + TBatchedVec *finished, const TBlobStorageGroupInfo::TGroupVDisks *expired) { return RunStrategies(logCtx, {const_cast(&s)}, finished, expired); } @@ -464,8 +438,7 @@ TBlobState& TBlackboard::GetState(const TLogoBlobID &id) { << " blobId# " << fullId << " BlackBoard# " << ToString()); } - TBlobState &state = it->second; - return state; + return it->second; } ssize_t TBlackboard::AddPartMap(const TLogoBlobID &id, ui32 diskOrderNumber, ui32 requestIndex) { @@ -512,8 +485,12 @@ void TBlackboard::GetWorstPredictedDelaysNs(const TBlobStorageGroupInfo &info, T } } -void TBlackboard::RegisterBlobForPut(const TLogoBlobID& id) { - (*this)[id]; +void TBlackboard::RegisterBlobForPut(const TLogoBlobID& id, size_t blobIdx) { + const auto [it, inserted] = BlobStates.try_emplace(id); + Y_ABORT_UNLESS(inserted); + TBlobState& state = it->second; + state.Init(id, *Info); + state.BlobIdx = blobIdx; } TBlobState& TBlackboard::operator [](const TLogoBlobID& id) { @@ -559,9 +536,7 @@ void TBlackboard::InvalidatePartStates(ui32 orderNumber) { const TVDiskID vdiskId = Info->GetVDiskId(orderNumber); for (auto& [id, state] : BlobStates) { if (const ui32 diskIdx = Info->GetIdxInSubgroup(vdiskId, id.Hash()); diskIdx != Info->Type.BlobSubgroupSize()) { - TBlobState::TDisk& disk = state.Disks[diskIdx]; - for (ui32 partIdx = 0; partIdx < disk.DiskParts.size(); ++partIdx) { - TBlobState::TDiskPart& part = disk.DiskParts[partIdx]; + for (TBlobState::TDiskPart& part : state.Disks[diskIdx].DiskParts) { if (part.Situation == TBlobState::ESituation::Present) { part.Situation = TBlobState::ESituation::Unknown; if (state.WholeSituation == TBlobState::ESituation::Present) { diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_blackboard.h b/ydb/core/blobstorage/dsproxy/dsproxy_blackboard.h index c128a013e507..84dc4780c9a5 100644 --- a/ydb/core/blobstorage/dsproxy/dsproxy_blackboard.h +++ b/ydb/core/blobstorage/dsproxy/dsproxy_blackboard.h @@ -81,14 +81,12 @@ struct TBlobState { TStackVec Parts; TStackVec Disks; TVector PartMap; - NKikimrProto::EReplyStatus Status = NKikimrProto::UNKNOWN; - ui8 BlobIdx; + size_t BlobIdx; bool IsChanged = false; void Init(const TLogoBlobID &id, const TBlobStorageGroupInfo &Info); void AddNeeded(ui64 begin, ui64 size); void AddPartToPut(ui32 partIdx, TRope&& partData); - void MarkBlobReadyToPut(ui8 blobIdx = 0); bool Restore(const TBlobStorageGroupInfo &info); void AddResponseData(const TBlobStorageGroupInfo &info, const TLogoBlobID &id, ui32 diskIdxInSubring, ui32 shift, TRope&& data); @@ -133,9 +131,9 @@ struct TDiskPutRequest { TRope Buffer; EPutReason Reason; bool IsHandoff; - ui8 BlobIdx; + size_t BlobIdx; - TDiskPutRequest(ui32 orderNumber, const TLogoBlobID &id, TRope buffer, EPutReason reason, bool isHandoff, ui8 blobIdx) + TDiskPutRequest(ui32 orderNumber, const TLogoBlobID &id, TRope buffer, EPutReason reason, bool isHandoff, size_t blobIdx) : OrderNumber(orderNumber) , Id(id) , Buffer(std::move(buffer)) @@ -152,7 +150,7 @@ struct TGroupDiskRequests { void AddGet(ui32 diskOrderNumber, const TLogoBlobID &id, const TIntervalSet &intervalSet); void AddGet(ui32 diskOrderNumber, const TLogoBlobID &id, ui32 shift, ui32 size); void AddPut(ui32 diskOrderNumber, const TLogoBlobID &id, TRope buffer, - TDiskPutRequest::EPutReason putReason, bool isHandoff, ui8 blobIdx); + TDiskPutRequest::EPutReason putReason, bool isHandoff, size_t blobIdx); }; struct TBlackboard; @@ -170,6 +168,12 @@ struct TBlackboard { AccelerationModeSkipMarked }; + struct TFinishedBlob { + size_t BlobIdx; + NKikimrProto::EReplyStatus Status; + TString ErrorReason; + }; + using TBlobStates = TMap; TBlobStates BlobStates; TBlobStates DoneBlobStates; @@ -179,31 +183,27 @@ struct TBlackboard { EAccelerationMode AccelerationMode; const NKikimrBlobStorage::EPutHandleClass PutHandleClass; const NKikimrBlobStorage::EGetHandleClass GetHandleClass; - const bool IsAllRequestsTogether; TBlackboard(const TIntrusivePtr &info, const TIntrusivePtr &groupQueues, - NKikimrBlobStorage::EPutHandleClass putHandleClass, NKikimrBlobStorage::EGetHandleClass getHandleClass, - bool isAllRequestsTogether = true) + NKikimrBlobStorage::EPutHandleClass putHandleClass, NKikimrBlobStorage::EGetHandleClass getHandleClass) : Info(info) , GroupQueues(groupQueues) , AccelerationMode(AccelerationModeSkipOneSlowest) , PutHandleClass(putHandleClass) , GetHandleClass(getHandleClass) - , IsAllRequestsTogether(isAllRequestsTogether) {} void AddNeeded(const TLogoBlobID &id, ui32 inShift, ui32 inSize); void AddPartToPut(const TLogoBlobID &id, ui32 partIdx, TRope&& partData); - void MarkBlobReadyToPut(const TLogoBlobID &id, ui8 blobIdx = 0); - void MoveBlobStateToDone(const TLogoBlobID &id); void AddResponseData(const TLogoBlobID &id, ui32 orderNumber, ui32 shift, TRope&& data); void AddPutOkResponse(const TLogoBlobID &id, ui32 orderNumber); void AddNoDataResponse(const TLogoBlobID &id, ui32 orderNumber); void AddErrorResponse(const TLogoBlobID &id, ui32 orderNumber); void AddNotYetResponse(const TLogoBlobID &id, ui32 orderNumber); + EStrategyOutcome RunStrategies(TLogContext& logCtx, const TStackVec& strategies, - TBatchedVec *finished = nullptr, const TBlobStorageGroupInfo::TGroupVDisks *expired = nullptr); - EStrategyOutcome RunStrategy(TLogContext &logCtx, const IStrategy& s, TBatchedVec *finished = nullptr, + TBatchedVec *finished = nullptr, const TBlobStorageGroupInfo::TGroupVDisks *expired = nullptr); + EStrategyOutcome RunStrategy(TLogContext &logCtx, const IStrategy& s, TBatchedVec *finished = nullptr, const TBlobStorageGroupInfo::TGroupVDisks *expired = nullptr); TBlobState& GetState(const TLogoBlobID &id); ssize_t AddPartMap(const TLogoBlobID &id, ui32 diskOrderNumber, ui32 requestIndex); @@ -221,7 +221,7 @@ struct TBlackboard { void InvalidatePartStates(ui32 orderNumber); - void RegisterBlobForPut(const TLogoBlobID& id); + void RegisterBlobForPut(const TLogoBlobID& id, size_t blobIdx); TBlobState& operator [](const TLogoBlobID& id); }; diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.cpp b/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.cpp index 003a4e1a777d..87cdf96a2bf9 100644 --- a/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.cpp +++ b/ydb/core/blobstorage/dsproxy/dsproxy_get_impl.cpp @@ -293,12 +293,13 @@ void TGetImpl::PrepareRequests(TLogContext &logCtx, TDequeSetId(ReaderTabletData->Id); msg->SetGeneration(ReaderTabletData->Generation); } - R_LOG_DEBUG_SX(logCtx, "BPG14", "Send get to orderNumber# " << get.OrderNumber - << " vget# " << vget->ToString()); } for (auto& vget : gets) { if (vget) { + R_LOG_DEBUG_SX(logCtx, "BPG14", "Send get to orderNumber# " + << Info->GetTopology().GetOrderNumber(VDiskIDFromVDiskID(vget->Record.GetVDiskID())) + << " vget# " << vget->ToString()); outVGets.push_back(std::move(vget)); ++RequestIndex; } diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_patch.cpp b/ydb/core/blobstorage/dsproxy/dsproxy_patch.cpp index 131112c799d5..e3429b5f3de4 100644 --- a/ydb/core/blobstorage/dsproxy/dsproxy_patch.cpp +++ b/ydb/core/blobstorage/dsproxy/dsproxy_patch.cpp @@ -68,6 +68,7 @@ class TBlobStorageGroupPatchRequest : public TBlobStorageGroupRequestActor ReceivedResponseFlags; TStackVec EmptyResponseFlags; TStackVec ErrorResponseFlags; + TStackVec ForceStopFlags; TBlobStorageGroupInfo::TVDiskIds VDisks; bool UseVPatch = false; @@ -332,8 +333,15 @@ class TBlobStorageGroupPatchRequest : public TBlobStorageGroupRequestActorGet()->Record; + + Y_ABORT_UNLESS(record.HasCookie()); + ui8 subgroupIdx = record.GetCookie(); + if (ForceStopFlags[subgroupIdx]) { + return; // ignore force stop response + } + ReceivedResults++; + PullOutStatusFlagsAndFressSpace(record); Y_ABORT_UNLESS(record.HasStatus()); NKikimrProto::EReplyStatus status = record.GetStatus(); @@ -342,9 +350,6 @@ class TBlobStorageGroupPatchRequest : public TBlobStorageGroupRequestActor> events; - for (ui32 vdiskIdx = 0; vdiskIdx < VDisks.size(); ++vdiskIdx) { - if (!ErrorResponseFlags[vdiskIdx] && !EmptyResponseFlags[vdiskIdx] && ReceivedResponseFlags[vdiskIdx]) { + for (ui32 subgroupIdx = 0; subgroupIdx < VDisks.size(); ++subgroupIdx) { + if (!ErrorResponseFlags[subgroupIdx] && !EmptyResponseFlags[subgroupIdx] && ReceivedResponseFlags[subgroupIdx]) { std::unique_ptr ev = std::make_unique( - OriginalId, PatchedId, VDisks[vdiskIdx], 0, Deadline, vdiskIdx); + OriginalId, PatchedId, VDisks[subgroupIdx], 0, Deadline, subgroupIdx); ev->SetForceEnd(); + ForceStopFlags[subgroupIdx] = true; events.emplace_back(std::move(ev)); PATCH_LOG(PRI_DEBUG, BS_PROXY_PATCH, BPPA19, "Send stop message", - (VDiskIdxInSubgroup, vdiskIdx), - (VDiskId, VDisks[vdiskIdx])); + (VDiskIdxInSubgroup, subgroupIdx), + (VDiskId, VDisks[subgroupIdx])); } } SendToQueues(events, false); @@ -495,6 +501,7 @@ class TBlobStorageGroupPatchRequest : public TBlobStorageGroupRequestActor> events; diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_put.cpp b/ydb/core/blobstorage/dsproxy/dsproxy_put.cpp index a092e45872a7..b776e8106e74 100644 --- a/ydb/core/blobstorage/dsproxy/dsproxy_put.cpp +++ b/ydb/core/blobstorage/dsproxy/dsproxy_put.cpp @@ -103,11 +103,11 @@ class TBlobStorageGroupPutRequest : public TBlobStorageGroupRequestActorNodeMon->AccelerateEvVMultiPutCount : Mon->NodeMon->AccelerateEvVPutCount) += v.size(); } @@ -208,11 +206,14 @@ class TBlobStorageGroupPutRequest : public TBlobStorageGroupRequestActorNodeMon->IncarnationChanges; } - if (Action()) { - return; - } + Action(); } void Handle(TEvBlobStorage::TEvVPutResult::TPtr &ev) { @@ -265,7 +266,7 @@ class TBlobStorageGroupPutRequest : public TBlobStorageGroupRequestActorGet()); @@ -351,7 +352,7 @@ class TBlobStorageGroupPutRequest : public TBlobStorageGroupRequestActor putResult, ui64 blobIdx) { + void SendReply(std::unique_ptr putResult, size_t blobIdx) { NKikimrProto::EReplyStatus status = putResult->Status; A_LOG_LOG_S(false, status == NKikimrProto::OK ? NLog::PRI_INFO : NLog::PRI_NOTICE, "BPP21", "SendReply putResult# " << putResult->ToString() << " ResponsesSent# " << ResponsesSent @@ -449,7 +450,7 @@ class TBlobStorageGroupPutRequest : public TBlobStorageGroupRequestActorGetTypeRewrite(); diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.cpp b/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.cpp index 81f56bed5363..3049ab1a039b 100644 --- a/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.cpp +++ b/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.cpp @@ -11,22 +11,44 @@ namespace NKikimr { using TPutResultVec = TPutImpl::TPutResultVec; -void TPutImpl::RunStrategies(TLogContext &logCtx, TPutResultVec &outPutResults, const TBlobStorageGroupInfo::TGroupVDisks& expired) { +void TPutImpl::RunStrategies(TLogContext &logCtx, TPutResultVec &outPutResults, + const TBlobStorageGroupInfo::TGroupVDisks& expired, bool accelerate) { + if (accelerate) { + ChangeAll(); + } + switch (Info->Type.GetErasure()) { case TBlobStorageGroupType::ErasureMirror3dc: - return RunStrategy(logCtx, TPut3dcStrategy(Tactic, EnableRequestMod3x3ForMinLatecy), outPutResults, expired); + return accelerate + ? RunStrategy(logCtx, TAcceleratePut3dcStrategy(Tactic, EnableRequestMod3x3ForMinLatecy), outPutResults, expired) + : RunStrategy(logCtx, TPut3dcStrategy(Tactic, EnableRequestMod3x3ForMinLatecy), outPutResults, expired); case TBlobStorageGroupType::ErasureMirror3of4: - return RunStrategy(logCtx, TPut3of4Strategy(Tactic), outPutResults, expired); + return accelerate + ? RunStrategy(logCtx, TPut3of4Strategy(Tactic, true), outPutResults, expired) + : RunStrategy(logCtx, TPut3of4Strategy(Tactic), outPutResults, expired); default: - return RunStrategy(logCtx, TRestoreStrategy(), outPutResults, expired); + return accelerate + ? RunStrategy(logCtx, TAcceleratePutStrategy(), outPutResults, expired) + : RunStrategy(logCtx, TRestoreStrategy(), outPutResults, expired); } } void TPutImpl::RunStrategy(TLogContext &logCtx, const IStrategy& strategy, TPutResultVec &outPutResults, const TBlobStorageGroupInfo::TGroupVDisks& expired) { - TBatchedVec finished; + Y_VERIFY_S(Blackboard.BlobStates.size(), "State# " << DumpFullState()); + TBatchedVec finished; const EStrategyOutcome outcome = Blackboard.RunStrategy(logCtx, strategy, &finished, &expired); - PrepareReply(logCtx, outcome.ErrorReason, finished, outPutResults); + for (const TBlackboard::TFinishedBlob& item : finished) { + Y_ABORT_UNLESS(item.BlobIdx < Blobs.size()); + Y_ABORT_UNLESS(!IsDone[item.BlobIdx]); + PrepareOneReply(item.Status, item.BlobIdx, logCtx, item.ErrorReason, outPutResults); + Y_VERIFY_S(IsDone[item.BlobIdx], "State# " << DumpFullState()); + } + if (outcome == EStrategyOutcome::DONE) { + for (const auto& done : IsDone) { + Y_VERIFY_S(done, "finished.size# " << finished.size() << " State# " << DumpFullState()); + } + } } NLog::EPriority GetPriorityForReply(TAtomicLogPriorityMuteChecker &checker, @@ -40,62 +62,23 @@ NLog::EPriority GetPriorityForReply(TAtomicLogPriorityMuteCheckerGroupID, - ApproximateFreeSpaceShare)); - outPutResults.back().second->ErrorReason = errorReason; - NLog::EPriority priority = GetPriorityForReply(Info->PutErrorMuteChecker, status); - A_LOG_LOG_SX(logCtx, true, priority, "BPP12", "Result# " << outPutResults.back().second->Print(false)); - MarkBlobAsSent(blobIdx); + if (!std::exchange(IsDone[blobIdx], true)) { + auto ev = std::make_unique(status, Blobs[blobIdx].BlobId, StatusFlags, + Info->GroupID, ApproximateFreeSpaceShare); + ev->ErrorReason = std::move(errorReason); + const NLog::EPriority priority = GetPriorityForReply(Info->PutErrorMuteChecker, status); + A_LOG_LOG_SX(logCtx, true, priority, "BPP12", "Result# " << ev->Print(false)); + outPutResults.emplace_back(blobIdx, std::move(ev)); } } void TPutImpl::PrepareReply(NKikimrProto::EReplyStatus status, TLogContext &logCtx, TString errorReason, TPutResultVec &outPutResults) { A_LOG_DEBUG_SX(logCtx, "BPP34", "PrepareReply status# " << status << " errorReason# " << errorReason); - for (ui64 idx = 0; idx < Blobs.size(); ++idx) { - if (IsDone[idx]) { - A_LOG_DEBUG_SX(logCtx, "BPP35", "blob# " << Blobs[idx].ToString() << - " idx# " << idx << " is sent, skipped"); - continue; - } - - outPutResults.emplace_back(idx, new TEvBlobStorage::TEvPutResult(status, Blobs[idx].BlobId, StatusFlags, - Info->GroupID, ApproximateFreeSpaceShare)); - outPutResults.back().second->ErrorReason = errorReason; - - NLog::EPriority priority = GetPriorityForReply(Info->PutErrorMuteChecker, status); - A_LOG_LOG_SX(logCtx, true, priority, "BPP38", - "PrepareReply Result# " << outPutResults.back().second->Print(false)); - - if (IsInitialized) { - MarkBlobAsSent(idx); - } - } -} - -void TPutImpl::PrepareReply(TLogContext &logCtx, TString errorReason, - TBatchedVec& finished, TPutResultVec &outPutResults) { - A_LOG_DEBUG_SX(logCtx, "BPP36", "PrepareReply errorReason# " << errorReason); - Y_ABORT_UNLESS(IsInitialized); - for (auto item : finished) { - auto &[blobId, state] = *item; - const ui64 idx = state.BlobIdx; - Y_ABORT_UNLESS(blobId == Blobs[idx].BlobId, "BlobIdx# %" PRIu64 " BlobState# %s Blackboard# %s", - idx, state.ToString().c_str(), Blackboard.ToString().c_str()); - Y_ABORT_UNLESS(!IsDone[idx]); - Y_ABORT_UNLESS(state.Status != NKikimrProto::UNKNOWN); - outPutResults.emplace_back(idx, new TEvBlobStorage::TEvPutResult(state.Status, blobId, StatusFlags, - Info->GroupID, ApproximateFreeSpaceShare)); - outPutResults.back().second->ErrorReason = errorReason; - - NLog::EPriority priority = GetPriorityForReply(Info->PutErrorMuteChecker, state.Status); - A_LOG_LOG_SX(logCtx, true, priority, "BPP37", - "PrepareReply Result# " << outPutResults.back().second->Print(false)); - MarkBlobAsSent(idx); + for (size_t blobIdx = 0; blobIdx < Blobs.size(); ++blobIdx) { + PrepareOneReply(status, blobIdx, logCtx, errorReason, outPutResults); } } @@ -125,7 +108,7 @@ TString TPutImpl::DumpFullState() const { str << Endl; str << " Blobs# " << Blobs.ToString(); str << Endl; - str << "IsDone# " << IsDone.ToString(); + str << " IsDone# " << IsDone.ToString(); str << Endl; str << " HandoffPartsSent# " << HandoffPartsSent; str << Endl; @@ -143,15 +126,6 @@ TString TPutImpl::DumpFullState() const { return str.Str(); } -bool TPutImpl::MarkBlobAsSent(ui64 idx) { - Y_ABORT_UNLESS(idx < Blobs.size()); - Y_ABORT_UNLESS(!IsDone[idx]); - Blackboard.MoveBlobStateToDone(Blobs[idx].BlobId); - IsDone[idx] = true; - DoneBlobs++; - return true; -} - }//NKikimr Y_DECLARE_OUT_SPEC(, NKikimr::TPutImpl::TBlobInfo, stream, value) { diff --git a/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.h b/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.h index 5c499eda22ab..b15b864837aa 100644 --- a/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.h +++ b/ydb/core/blobstorage/dsproxy/dsproxy_put_impl.h @@ -43,8 +43,6 @@ class TPutImpl { bool AtLeastOneResponseWasNotOk = false; bool EnableRequestMod3x3ForMinLatecy = false; - ui64 DoneBlobs = 0; - const TEvBlobStorage::TEvPut::ETactic Tactic; struct TBlobInfo { @@ -99,8 +97,6 @@ class TPutImpl { friend class TBlobStorageGroupPutRequest; - bool IsInitialized = false; - friend void ::Out(IOutputStream&, const TBlobInfo&); public: @@ -109,7 +105,7 @@ class TPutImpl { bool enableRequestMod3x3ForMinLatecy, TActorId recipient, ui64 cookie, NWilson::TTraceId traceId) : Deadline(ev->Deadline) , Info(info) - , Blackboard(info, state, ev->HandleClass, NKikimrBlobStorage::EGetHandleClass::AsyncRead, false) + , Blackboard(info, state, ev->HandleClass, NKikimrBlobStorage::EGetHandleClass::AsyncRead) , IsDone(1) , WrittenBeyondBarrier(1) , StatusFlags(0) @@ -133,7 +129,7 @@ class TPutImpl { bool enableRequestMod3x3ForMinLatecy) : Deadline(TInstant::Zero()) , Info(info) - , Blackboard(info, state, putHandleClass, NKikimrBlobStorage::EGetHandleClass::AsyncRead, false) + , Blackboard(info, state, putHandleClass, NKikimrBlobStorage::EGetHandleClass::AsyncRead) , IsDone(events.size()) , WrittenBeyondBarrier(events.size()) , StatusFlags(0) @@ -175,47 +171,26 @@ class TPutImpl { Y_VERIFY_S(partSets.size() == Blobs.size(), "partSets.size# " << partSets.size() << " Blobs.size# " << Blobs.size()); const ui32 totalParts = Info->Type.TotalPartCount(); - for (ui64 blobIdx = 0; blobIdx < Blobs.size(); ++blobIdx) { + for (size_t blobIdx = 0; blobIdx < Blobs.size(); ++blobIdx) { TBlobInfo& blob = Blobs[blobIdx]; - Blackboard.RegisterBlobForPut(blob.BlobId); + Blackboard.RegisterBlobForPut(blob.BlobId, blobIdx); for (ui32 i = 0; i < totalParts; ++i) { if (Info->Type.PartSize(TLogoBlobID(blob.BlobId, i + 1))) { Blackboard.AddPartToPut(blob.BlobId, i, TRope(partSets[blobIdx][i])); } } - Blackboard.MarkBlobReadyToPut(blob.BlobId, blobIdx); } - IsInitialized = true; } void PrepareReply(NKikimrProto::EReplyStatus status, TLogContext &logCtx, TString errorReason, TPutResultVec &outPutResults); - void PrepareReply(TLogContext &logCtx, TString errorReason, TBatchedVec& finished, - TPutResultVec &outPutResults); - void PrepareOneReply(NKikimrProto::EReplyStatus status, TLogoBlobID blobId, ui64 blobIdx, TLogContext &logCtx, + void PrepareOneReply(NKikimrProto::EReplyStatus status, size_t blobIdx, TLogContext &logCtx, TString errorReason, TPutResultVec &outPutResults); ui64 GetTimeToAccelerateNs(TLogContext &logCtx); - void Accelerate(TLogContext &logCtx) { - Blackboard.ChangeAll(); - switch (Info->Type.GetErasure()) { - case TBlobStorageGroupType::ErasureMirror3dc: - Blackboard.RunStrategy(logCtx, TAcceleratePut3dcStrategy(Tactic, EnableRequestMod3x3ForMinLatecy)); - break; - case TBlobStorageGroupType::ErasureMirror3of4: - Blackboard.RunStrategy(logCtx, TPut3of4Strategy(Tactic, true)); - break; - default: - Blackboard.RunStrategy(logCtx, TAcceleratePutStrategy()); - break; - } - } - TString DumpFullState() const; - bool MarkBlobAsSent(ui64 blobIdx); - TString ToString() const; void InvalidatePartStates(ui32 orderNumber) { @@ -226,8 +201,8 @@ class TPutImpl { Blackboard.ChangeAll(); } - void Step(TLogContext &logCtx, TPutResultVec& putResults, const TBlobStorageGroupInfo::TGroupVDisks& expired) { - RunStrategies(logCtx, putResults, expired); + void Step(TLogContext &logCtx, TPutResultVec& putResults, const TBlobStorageGroupInfo::TGroupVDisks& expired, bool accelerate) { + RunStrategies(logCtx, putResults, expired, accelerate); } TDeque GeneratePutRequests() { @@ -299,7 +274,8 @@ class TPutImpl { } protected: - void RunStrategies(TLogContext &logCtx, TPutResultVec &outPutResults, const TBlobStorageGroupInfo::TGroupVDisks& expired); + void RunStrategies(TLogContext &logCtx, TPutResultVec &outPutResults, const TBlobStorageGroupInfo::TGroupVDisks& expired, + bool accelerate); void RunStrategy(TLogContext &logCtx, const IStrategy& strategy, TPutResultVec &outPutResults, const TBlobStorageGroupInfo::TGroupVDisks& expired); @@ -339,7 +315,7 @@ class TPutImpl { void ProcessResponseCommonPart(TProtobuf& record) { Y_ABORT_UNLESS(record.HasStatus()); const NKikimrProto::EReplyStatus status = record.GetStatus(); - Y_ABORT_UNLESS(status != NKikimrProto::BLOCKED && status != NKikimrProto::RACE && status != NKikimrProto::DEADLINE); + Y_ABORT_UNLESS(status != NKikimrProto::RACE); if (record.HasStatusFlags()) { StatusFlags.Merge(record.GetStatusFlags()); } diff --git a/ydb/core/blobstorage/dsproxy/mock/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/dsproxy/mock/CMakeLists.darwin-arm64.txt index 52990414c993..4c3adac11511 100644 --- a/ydb/core/blobstorage/dsproxy/mock/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/dsproxy/mock/CMakeLists.darwin-arm64.txt @@ -15,5 +15,7 @@ target_link_libraries(blobstorage-dsproxy-mock PUBLIC blobstorage-vdisk-common ) target_sources(blobstorage-dsproxy-mock PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/dsproxy_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/dsproxy_mock.cpp ) diff --git a/ydb/core/blobstorage/dsproxy/mock/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/dsproxy/mock/CMakeLists.darwin-x86_64.txt index 52990414c993..4c3adac11511 100644 --- a/ydb/core/blobstorage/dsproxy/mock/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/dsproxy/mock/CMakeLists.darwin-x86_64.txt @@ -15,5 +15,7 @@ target_link_libraries(blobstorage-dsproxy-mock PUBLIC blobstorage-vdisk-common ) target_sources(blobstorage-dsproxy-mock PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/dsproxy_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/dsproxy_mock.cpp ) diff --git a/ydb/core/blobstorage/dsproxy/mock/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/dsproxy/mock/CMakeLists.linux-aarch64.txt index a8ae37f8d290..1b9964e0d441 100644 --- a/ydb/core/blobstorage/dsproxy/mock/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/dsproxy/mock/CMakeLists.linux-aarch64.txt @@ -16,5 +16,7 @@ target_link_libraries(blobstorage-dsproxy-mock PUBLIC blobstorage-vdisk-common ) target_sources(blobstorage-dsproxy-mock PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/dsproxy_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/dsproxy_mock.cpp ) diff --git a/ydb/core/blobstorage/dsproxy/mock/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/dsproxy/mock/CMakeLists.linux-x86_64.txt index a8ae37f8d290..1b9964e0d441 100644 --- a/ydb/core/blobstorage/dsproxy/mock/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/dsproxy/mock/CMakeLists.linux-x86_64.txt @@ -16,5 +16,7 @@ target_link_libraries(blobstorage-dsproxy-mock PUBLIC blobstorage-vdisk-common ) target_sources(blobstorage-dsproxy-mock PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/dsproxy_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/dsproxy_mock.cpp ) diff --git a/ydb/core/blobstorage/dsproxy/mock/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/dsproxy/mock/CMakeLists.windows-x86_64.txt index 52990414c993..4c3adac11511 100644 --- a/ydb/core/blobstorage/dsproxy/mock/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/dsproxy/mock/CMakeLists.windows-x86_64.txt @@ -15,5 +15,7 @@ target_link_libraries(blobstorage-dsproxy-mock PUBLIC blobstorage-vdisk-common ) target_sources(blobstorage-dsproxy-mock PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/dsproxy_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/mock/dsproxy_mock.cpp ) diff --git a/ydb/core/blobstorage/dsproxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/dsproxy/ut/CMakeLists.darwin-arm64.txt index 3f3cf032b762..903ec2c8d7e3 100644 --- a/ydb/core/blobstorage/dsproxy/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/dsproxy/ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-core-blobstorage-dsproxy-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-dsproxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut/dsproxy_put_ut.cpp @@ -65,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/dsproxy/ut/CMakeLists.darwin-x86_64.txt index 525589312059..2645bd0cde13 100644 --- a/ydb/core/blobstorage/dsproxy/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/dsproxy/ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-core-blobstorage-dsproxy-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-dsproxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut/dsproxy_put_ut.cpp @@ -66,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/dsproxy/ut/CMakeLists.linux-aarch64.txt index e1c639e2911c..acf029fef69a 100644 --- a/ydb/core/blobstorage/dsproxy/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/dsproxy/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-core-blobstorage-dsproxy-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-dsproxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut/dsproxy_put_ut.cpp @@ -69,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/dsproxy/ut/CMakeLists.linux-x86_64.txt index 2590054db34d..6b67baea4995 100644 --- a/ydb/core/blobstorage/dsproxy/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/dsproxy/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-core-blobstorage-dsproxy-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-dsproxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut/dsproxy_put_ut.cpp @@ -70,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/dsproxy/ut/CMakeLists.windows-x86_64.txt index 70bbe8545ef1..b44e9810a522 100644 --- a/ydb/core/blobstorage/dsproxy/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/dsproxy/ut/CMakeLists.windows-x86_64.txt @@ -59,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/ut/dsproxy_put_ut.cpp b/ydb/core/blobstorage/dsproxy/ut/dsproxy_put_ut.cpp index 09dca39bb5fd..2af3baccace5 100644 --- a/ydb/core/blobstorage/dsproxy/ut/dsproxy_put_ut.cpp +++ b/ydb/core/blobstorage/dsproxy/ut/dsproxy_put_ut.cpp @@ -76,7 +76,7 @@ void TestPutMaxPartCountOnHandoff(TErasureType::EErasureSpecies erasureSpecies) TPutImpl::TPutResultVec putResults; putImpl.GenerateInitialRequests(logCtx, partSetSingleton); - putImpl.Step(logCtx, putResults, {&group.GetInfo()->GetTopology()}); + putImpl.Step(logCtx, putResults, {&group.GetInfo()->GetTopology()}, false); auto vPuts = putImpl.GeneratePutRequests(); group.SetError(0, NKikimrProto::ERROR); @@ -119,7 +119,7 @@ void TestPutMaxPartCountOnHandoff(TErasureType::EErasureSpecies erasureSpecies) vPutResult.MakeError(status, TString(), vPut.Record); putImpl.ProcessResponse(vPutResult); - putImpl.Step(logCtx, putResults, {&group.GetInfo()->GetTopology()}); + putImpl.Step(logCtx, putResults, {&group.GetInfo()->GetTopology()}, false); auto nextVPuts = putImpl.GeneratePutRequests(); if (putResults.size()) { @@ -273,7 +273,7 @@ struct TTestPutAllOk { } std::visit([&](auto &ev) { putImpl.ProcessResponse(*ev); }, vPutResults[resIdx]); - putImpl.Step(LogCtx, putResults, &Group.GetInfo()->GetTopology()); + putImpl.Step(LogCtx, putResults, &Group.GetInfo()->GetTopology(), false); auto vPuts = putImpl.GeneratePutRequests(); if (putResults.size() == BlobCount) { break; @@ -309,7 +309,7 @@ struct TTestPutAllOk { } putImpl->GenerateInitialRequests(LogCtx, PartSets); - putImpl->Step(LogCtx, putResults, &Group.GetInfo()->GetTopology()); + putImpl->Step(LogCtx, putResults, &Group.GetInfo()->GetTopology(), false); auto vPuts = putImpl->GeneratePutRequests(); UNIT_ASSERT(vPuts.size() == 6 || !IsVPut); TDeque vPutResults; @@ -367,7 +367,7 @@ Y_UNIT_TEST(TestMirror3dcWith3x3MinLatencyMod) { ErasureSplit((TErasureType::ECrcMode)blobId.CrcMode(), env.Info->Type, TRope(encryptedData), partSetSingleton[0]); putImpl.GenerateInitialRequests(logCtx, partSetSingleton); TPutImpl::TPutResultVec putResults; - putImpl.Step(logCtx, putResults, &env.Info->GetTopology()); + putImpl.Step(logCtx, putResults, &env.Info->GetTopology(), false); auto vPuts = putImpl.GeneratePutRequests(); UNIT_ASSERT_VALUES_EQUAL(vPuts.size(), 9); diff --git a/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.darwin-arm64.txt index d18658c8624d..8896650fbc52 100644 --- a/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.darwin-arm64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-core-blobstorage-dsproxy-ut_fat PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-dsproxy-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.darwin-x86_64.txt index 9358d3056af5..4eb0bef8cb98 100644 --- a/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.darwin-x86_64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-core-blobstorage-dsproxy-ut_fat PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-dsproxy-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.linux-aarch64.txt index ca7b2f12ce05..c7b2e662b4ca 100644 --- a/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-core-blobstorage-dsproxy-ut_fat PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-dsproxy-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.linux-x86_64.txt index 176ce94d18d4..86686501f91f 100644 --- a/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.linux-x86_64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-core-blobstorage-dsproxy-ut_fat PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-dsproxy-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.windows-x86_64.txt index b25573de03a1..33eef8230001 100644 --- a/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/dsproxy/ut_fat/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp b/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp index abd56038b9a2..38b1698bed98 100644 --- a/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp +++ b/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp @@ -4252,6 +4252,7 @@ class TBlobStorageProxyTest: public TTestBase { vDiskConfig->GCOnlySynced = false; vDiskConfig->HullCompLevelRateThreshold = 0.1; vDiskConfig->SkeletonFrontQueueBackpressureCheckMsgId = false; + vDiskConfig->UseCostTracker = false; IActor* vDisk = CreateVDisk(vDiskConfig, bsInfo, counters); TActorSetupCmd vDiskSetup(vDisk, TMailboxType::Revolving, 0); diff --git a/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.darwin-arm64.txt index 732d50edbd02..d2948bbea5b5 100644 --- a/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.darwin-arm64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-core-blobstorage-dsproxy-ut_ftol PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-dsproxy-ut_ftol PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut_ftol/dsproxy_fault_tolerance_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.darwin-x86_64.txt index 8565fad5859f..83bd446ccf84 100644 --- a/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.darwin-x86_64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-core-blobstorage-dsproxy-ut_ftol PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-dsproxy-ut_ftol PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut_ftol/dsproxy_fault_tolerance_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.linux-aarch64.txt index 537490c37716..dd18caa561d3 100644 --- a/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-core-blobstorage-dsproxy-ut_ftol PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-dsproxy-ut_ftol PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut_ftol/dsproxy_fault_tolerance_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.linux-x86_64.txt index 8a6cbf6a91e5..6095509cda85 100644 --- a/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-core-blobstorage-dsproxy-ut_ftol PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-dsproxy-ut_ftol PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut_ftol/dsproxy_fault_tolerance_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.windows-x86_64.txt index 7a45dbfbe6bc..864bc2da586c 100644 --- a/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/dsproxy/ut_ftol/CMakeLists.windows-x86_64.txt @@ -55,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..fbc34903928d --- /dev/null +++ b/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.darwin-arm64.txt @@ -0,0 +1,72 @@ + +# 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-core-blobstorage-dsproxy-ut_strategy) +target_compile_options(ydb-core-blobstorage-dsproxy-ut_strategy PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-core-blobstorage-dsproxy-ut_strategy PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + core-blobstorage-dsproxy +) +target_link_options(ydb-core-blobstorage-dsproxy-ut_strategy PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-core-blobstorage-dsproxy-ut_strategy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut_strategy/strategy_ut.cpp +) +set_property( + TARGET + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-core-blobstorage-dsproxy-ut_strategy + TEST_TARGET + ydb-core-blobstorage-dsproxy-ut_strategy + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-core-blobstorage-dsproxy-ut_strategy + system_allocator +) +vcs_info(ydb-core-blobstorage-dsproxy-ut_strategy) diff --git a/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..bc0c3b027f3e --- /dev/null +++ b/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,73 @@ + +# 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-core-blobstorage-dsproxy-ut_strategy) +target_compile_options(ydb-core-blobstorage-dsproxy-ut_strategy PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-core-blobstorage-dsproxy-ut_strategy PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + core-blobstorage-dsproxy +) +target_link_options(ydb-core-blobstorage-dsproxy-ut_strategy PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-core-blobstorage-dsproxy-ut_strategy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut_strategy/strategy_ut.cpp +) +set_property( + TARGET + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-core-blobstorage-dsproxy-ut_strategy + TEST_TARGET + ydb-core-blobstorage-dsproxy-ut_strategy + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-core-blobstorage-dsproxy-ut_strategy + system_allocator +) +vcs_info(ydb-core-blobstorage-dsproxy-ut_strategy) diff --git a/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..ed3f4db6d96f --- /dev/null +++ b/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.linux-aarch64.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-core-blobstorage-dsproxy-ut_strategy) +target_compile_options(ydb-core-blobstorage-dsproxy-ut_strategy PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-core-blobstorage-dsproxy-ut_strategy PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + core-blobstorage-dsproxy +) +target_link_options(ydb-core-blobstorage-dsproxy-ut_strategy PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-core-blobstorage-dsproxy-ut_strategy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut_strategy/strategy_ut.cpp +) +set_property( + TARGET + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-core-blobstorage-dsproxy-ut_strategy + TEST_TARGET + ydb-core-blobstorage-dsproxy-ut_strategy + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-core-blobstorage-dsproxy-ut_strategy + cpp-malloc-jemalloc +) +vcs_info(ydb-core-blobstorage-dsproxy-ut_strategy) diff --git a/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..cef69009de3c --- /dev/null +++ b/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.linux-x86_64.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-core-blobstorage-dsproxy-ut_strategy) +target_compile_options(ydb-core-blobstorage-dsproxy-ut_strategy PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-core-blobstorage-dsproxy-ut_strategy PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + core-blobstorage-dsproxy +) +target_link_options(ydb-core-blobstorage-dsproxy-ut_strategy PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-core-blobstorage-dsproxy-ut_strategy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut_strategy/strategy_ut.cpp +) +set_property( + TARGET + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-core-blobstorage-dsproxy-ut_strategy + TEST_TARGET + ydb-core-blobstorage-dsproxy-ut_strategy + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-core-blobstorage-dsproxy-ut_strategy + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-core-blobstorage-dsproxy-ut_strategy) diff --git a/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.txt b/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..bec8faf15f4e --- /dev/null +++ b/ydb/core/blobstorage/dsproxy/ut_strategy/CMakeLists.windows-x86_64.txt @@ -0,0 +1,68 @@ + +# 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-core-blobstorage-dsproxy-ut_strategy) +target_compile_options(ydb-core-blobstorage-dsproxy-ut_strategy PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-core-blobstorage-dsproxy-ut_strategy PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + core-blobstorage-dsproxy +) +target_sources(ydb-core-blobstorage-dsproxy-ut_strategy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/dsproxy/ut_strategy/strategy_ut.cpp +) +set_property( + TARGET + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-core-blobstorage-dsproxy-ut_strategy + TEST_TARGET + ydb-core-blobstorage-dsproxy-ut_strategy + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-core-blobstorage-dsproxy-ut_strategy + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-core-blobstorage-dsproxy-ut_strategy + system_allocator +) +vcs_info(ydb-core-blobstorage-dsproxy-ut_strategy) diff --git a/ydb/core/blobstorage/dsproxy/ut_strategy/strategy_ut.cpp b/ydb/core/blobstorage/dsproxy/ut_strategy/strategy_ut.cpp index 8b77cc4ee6b8..64ace509dd63 100644 --- a/ydb/core/blobstorage/dsproxy/ut_strategy/strategy_ut.cpp +++ b/ydb/core/blobstorage/dsproxy/ut_strategy/strategy_ut.cpp @@ -105,7 +105,7 @@ void RunStrategyTest(TBlobStorageGroupType type) { TLogoBlobID id(1'000'000'000, 1, 1, 0, data.size(), 0); std::vector parts(type.TotalPartCount()); ErasureSplit(TBlobStorageGroupType::CrcModeNone, type, TRope(data), parts); - blackboard.RegisterBlobForPut(id); + blackboard.RegisterBlobForPut(id, 0); for (ui32 i = 0; i < parts.size(); ++i) { blackboard.AddPartToPut(id, i, TRope(parts[i])); } diff --git a/ydb/core/blobstorage/groupinfo/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/groupinfo/CMakeLists.darwin-arm64.txt index 4d5277077bfe..5b2a2180a106 100644 --- a/ydb/core/blobstorage/groupinfo/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/groupinfo/CMakeLists.darwin-arm64.txt @@ -22,6 +22,12 @@ target_link_libraries(core-blobstorage-groupinfo PUBLIC ydb-core-protos ) target_sources(core-blobstorage-groupinfo PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_iter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_partlayout.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_sets.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_partlayout.cpp diff --git a/ydb/core/blobstorage/groupinfo/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/groupinfo/CMakeLists.darwin-x86_64.txt index 4d5277077bfe..5b2a2180a106 100644 --- a/ydb/core/blobstorage/groupinfo/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/groupinfo/CMakeLists.darwin-x86_64.txt @@ -22,6 +22,12 @@ target_link_libraries(core-blobstorage-groupinfo PUBLIC ydb-core-protos ) target_sources(core-blobstorage-groupinfo PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_iter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_partlayout.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_sets.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_partlayout.cpp diff --git a/ydb/core/blobstorage/groupinfo/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/groupinfo/CMakeLists.linux-aarch64.txt index 40c85cd80854..47e17a014ab7 100644 --- a/ydb/core/blobstorage/groupinfo/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/groupinfo/CMakeLists.linux-aarch64.txt @@ -23,6 +23,12 @@ target_link_libraries(core-blobstorage-groupinfo PUBLIC ydb-core-protos ) target_sources(core-blobstorage-groupinfo PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_iter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_partlayout.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_sets.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_partlayout.cpp diff --git a/ydb/core/blobstorage/groupinfo/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/groupinfo/CMakeLists.linux-x86_64.txt index 40c85cd80854..47e17a014ab7 100644 --- a/ydb/core/blobstorage/groupinfo/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/groupinfo/CMakeLists.linux-x86_64.txt @@ -23,6 +23,12 @@ target_link_libraries(core-blobstorage-groupinfo PUBLIC ydb-core-protos ) target_sources(core-blobstorage-groupinfo PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_iter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_partlayout.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_sets.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_partlayout.cpp diff --git a/ydb/core/blobstorage/groupinfo/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/groupinfo/CMakeLists.windows-x86_64.txt index 4d5277077bfe..5b2a2180a106 100644 --- a/ydb/core/blobstorage/groupinfo/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/groupinfo/CMakeLists.windows-x86_64.txt @@ -22,6 +22,12 @@ target_link_libraries(core-blobstorage-groupinfo PUBLIC ydb-core-protos ) target_sources(core-blobstorage-groupinfo PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_iter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_partlayout.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_sets.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_partlayout.cpp diff --git a/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap.cpp b/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap.cpp index 75eba136ce44..013622e1b3ab 100644 --- a/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap.cpp +++ b/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_blobmap.cpp @@ -165,12 +165,14 @@ namespace NKikimr { TMirror3dcMapper(const TBlobStorageGroupInfo::TTopology *topology) : Topology(topology) , NumFailRealms(Topology->FailRealms.size()) - , NumFailDomainsPerFailRealm(Topology->FailRealms[0].FailDomains.size()) - , NumVDisksPerFailDomain(Topology->FailRealms[0].FailDomains[0].VDisks.size()) + , NumFailDomainsPerFailRealm(NumFailRealms ? Topology->FailRealms[0].FailDomains.size() : 0) + , NumVDisksPerFailDomain(NumFailDomainsPerFailRealm ? Topology->FailRealms[0].FailDomains[0].VDisks.size() : 0) { - Y_ABORT_UNLESS(NumFailRealms >= NumFailRealmsInSubgroup && - NumFailDomainsPerFailRealm >= NumFailDomainsPerFailRealmInSubgroup, - "mirror-3-dc group tolopogy is invalid: %s", topology->ToString().data()); + if (NumFailRealms && NumFailDomainsPerFailRealm && NumVDisksPerFailDomain) { + Y_ABORT_UNLESS(NumFailRealms >= NumFailRealmsInSubgroup && + NumFailDomainsPerFailRealm >= NumFailDomainsPerFailRealmInSubgroup, + "mirror-3-dc group tolopogy is invalid: %s", topology->ToString().data()); + } } void PickSubgroup(ui32 hash, TBlobStorageGroupInfo::TOrderNums &orderNums) override final { diff --git a/ydb/core/blobstorage/groupinfo/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/groupinfo/ut/CMakeLists.darwin-arm64.txt index f1335e87fe9c..2e40819d8e21 100644 --- a/ydb/core/blobstorage/groupinfo/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/groupinfo/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-blobstorage-groupinfo-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-groupinfo-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_iter_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/groupinfo/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/groupinfo/ut/CMakeLists.darwin-x86_64.txt index b9a8c76ed682..9ff01a021ce9 100644 --- a/ydb/core/blobstorage/groupinfo/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/groupinfo/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-blobstorage-groupinfo-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-groupinfo-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_iter_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/groupinfo/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/groupinfo/ut/CMakeLists.linux-aarch64.txt index a3976a5db303..b9fbffb1a07f 100644 --- a/ydb/core/blobstorage/groupinfo/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/groupinfo/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-blobstorage-groupinfo-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-groupinfo-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_iter_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/groupinfo/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/groupinfo/ut/CMakeLists.linux-x86_64.txt index 7fd129a03995..9c8b9f6a8483 100644 --- a/ydb/core/blobstorage/groupinfo/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/groupinfo/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-blobstorage-groupinfo-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-groupinfo-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/groupinfo/blobstorage_groupinfo_iter_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/groupinfo/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/groupinfo/ut/CMakeLists.windows-x86_64.txt index 7c6fa0404d9c..cff3ead97aa0 100644 --- a/ydb/core/blobstorage/groupinfo/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/groupinfo/ut/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/incrhuge/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/incrhuge/CMakeLists.darwin-arm64.txt index 25ce270b595b..d571b90bfd5e 100644 --- a/ydb/core/blobstorage/incrhuge/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/incrhuge/CMakeLists.darwin-arm64.txt @@ -16,6 +16,21 @@ target_link_libraries(core-blobstorage-incrhuge PUBLIC ydb-core-protos ) target_sources(core-blobstorage-incrhuge PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_id_dict.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_alloc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_defrag.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_delete.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_read.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery_read_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery_scan.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_write.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_alloc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_common.cpp diff --git a/ydb/core/blobstorage/incrhuge/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/incrhuge/CMakeLists.darwin-x86_64.txt index 25ce270b595b..d571b90bfd5e 100644 --- a/ydb/core/blobstorage/incrhuge/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/incrhuge/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,21 @@ target_link_libraries(core-blobstorage-incrhuge PUBLIC ydb-core-protos ) target_sources(core-blobstorage-incrhuge PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_id_dict.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_alloc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_defrag.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_delete.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_read.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery_read_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery_scan.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_write.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_alloc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_common.cpp diff --git a/ydb/core/blobstorage/incrhuge/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/incrhuge/CMakeLists.linux-aarch64.txt index 5b78d857a599..69fc54c1cd24 100644 --- a/ydb/core/blobstorage/incrhuge/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/incrhuge/CMakeLists.linux-aarch64.txt @@ -17,6 +17,21 @@ target_link_libraries(core-blobstorage-incrhuge PUBLIC ydb-core-protos ) target_sources(core-blobstorage-incrhuge PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_id_dict.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_alloc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_defrag.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_delete.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_read.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery_read_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery_scan.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_write.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_alloc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_common.cpp diff --git a/ydb/core/blobstorage/incrhuge/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/incrhuge/CMakeLists.linux-x86_64.txt index 5b78d857a599..69fc54c1cd24 100644 --- a/ydb/core/blobstorage/incrhuge/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/incrhuge/CMakeLists.linux-x86_64.txt @@ -17,6 +17,21 @@ target_link_libraries(core-blobstorage-incrhuge PUBLIC ydb-core-protos ) target_sources(core-blobstorage-incrhuge PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_id_dict.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_alloc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_defrag.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_delete.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_read.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery_read_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery_scan.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_write.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_alloc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_common.cpp diff --git a/ydb/core/blobstorage/incrhuge/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/incrhuge/CMakeLists.windows-x86_64.txt index 25ce270b595b..d571b90bfd5e 100644 --- a/ydb/core/blobstorage/incrhuge/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/incrhuge/CMakeLists.windows-x86_64.txt @@ -16,6 +16,21 @@ target_link_libraries(core-blobstorage-incrhuge PUBLIC ydb-core-protos ) target_sources(core-blobstorage-incrhuge PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_id_dict.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_alloc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_defrag.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_delete.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_read.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery_read_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_recovery_scan.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_write.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_alloc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/incrhuge_keeper_common.cpp diff --git a/ydb/core/blobstorage/incrhuge/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/incrhuge/ut/CMakeLists.darwin-arm64.txt index c33b5ff2738f..51b840c6a43a 100644 --- a/ydb/core/blobstorage/incrhuge/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/incrhuge/ut/CMakeLists.darwin-arm64.txt @@ -12,6 +12,7 @@ target_link_libraries(ydb-core-blobstorage-incrhuge-ut PUBLIC contrib-libs-cxxsupp yutil cpp-testing-unittest_main + version_definition library-actors-protos ydb-core-blobstorage core-blobstorage-incrhuge @@ -21,8 +22,6 @@ target_link_options(ydb-core-blobstorage-incrhuge-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-incrhuge-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/ut/incrhuge_basic_ut.cpp @@ -54,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/incrhuge/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/incrhuge/ut/CMakeLists.darwin-x86_64.txt index b6ac197143be..f0293a9024ff 100644 --- a/ydb/core/blobstorage/incrhuge/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/incrhuge/ut/CMakeLists.darwin-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-incrhuge-ut PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition library-actors-protos ydb-core-blobstorage core-blobstorage-incrhuge @@ -22,8 +23,6 @@ target_link_options(ydb-core-blobstorage-incrhuge-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-incrhuge-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/ut/incrhuge_basic_ut.cpp @@ -55,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/incrhuge/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/incrhuge/ut/CMakeLists.linux-aarch64.txt index 649f6c2f4bad..4b62e15a07c2 100644 --- a/ydb/core/blobstorage/incrhuge/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/incrhuge/ut/CMakeLists.linux-aarch64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-incrhuge-ut PUBLIC contrib-libs-cxxsupp yutil cpp-testing-unittest_main + version_definition library-actors-protos ydb-core-blobstorage core-blobstorage-incrhuge @@ -24,9 +25,6 @@ target_link_options(ydb-core-blobstorage-incrhuge-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-incrhuge-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/ut/incrhuge_basic_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/incrhuge/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/incrhuge/ut/CMakeLists.linux-x86_64.txt index 88e1549f8860..1b632fce1e63 100644 --- a/ydb/core/blobstorage/incrhuge/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/incrhuge/ut/CMakeLists.linux-x86_64.txt @@ -14,6 +14,7 @@ target_link_libraries(ydb-core-blobstorage-incrhuge-ut PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition library-actors-protos ydb-core-blobstorage core-blobstorage-incrhuge @@ -25,9 +26,6 @@ target_link_options(ydb-core-blobstorage-incrhuge-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-incrhuge-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/incrhuge/ut/incrhuge_basic_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/incrhuge/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/incrhuge/ut/CMakeLists.windows-x86_64.txt index 2defcb2ad82e..264ff4621bdf 100644 --- a/ydb/core/blobstorage/incrhuge/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/incrhuge/ut/CMakeLists.windows-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-incrhuge-ut PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition library-actors-protos ydb-core-blobstorage core-blobstorage-incrhuge @@ -48,6 +49,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/incrhuge/ut/ya.make b/ydb/core/blobstorage/incrhuge/ut/ya.make index 1dab38ef3f26..c7936f615c71 100644 --- a/ydb/core/blobstorage/incrhuge/ut/ya.make +++ b/ydb/core/blobstorage/incrhuge/ut/ya.make @@ -12,6 +12,7 @@ ELSE() ENDIF() PEERDIR( + ydb/apps/version ydb/library/actors/protos ydb/core/blobstorage ydb/core/blobstorage/incrhuge diff --git a/ydb/core/blobstorage/nodewarden/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/nodewarden/CMakeLists.darwin-arm64.txt index 64591dd97008..30edce11625c 100644 --- a/ydb/core/blobstorage/nodewarden/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/nodewarden/CMakeLists.darwin-arm64.txt @@ -24,6 +24,12 @@ target_link_libraries(core-blobstorage-nodewarden PUBLIC ydb-library-pdisk_io ) target_sources(core-blobstorage-nodewarden PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/group_stat_aggregator.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_impl.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/group_stat_aggregator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf_binding.cpp diff --git a/ydb/core/blobstorage/nodewarden/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/nodewarden/CMakeLists.darwin-x86_64.txt index 64591dd97008..30edce11625c 100644 --- a/ydb/core/blobstorage/nodewarden/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/nodewarden/CMakeLists.darwin-x86_64.txt @@ -24,6 +24,12 @@ target_link_libraries(core-blobstorage-nodewarden PUBLIC ydb-library-pdisk_io ) target_sources(core-blobstorage-nodewarden PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/group_stat_aggregator.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_impl.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/group_stat_aggregator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf_binding.cpp diff --git a/ydb/core/blobstorage/nodewarden/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/nodewarden/CMakeLists.linux-aarch64.txt index e5d3a29006f2..bb9a1f8f0511 100644 --- a/ydb/core/blobstorage/nodewarden/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/nodewarden/CMakeLists.linux-aarch64.txt @@ -25,6 +25,12 @@ target_link_libraries(core-blobstorage-nodewarden PUBLIC ydb-library-pdisk_io ) target_sources(core-blobstorage-nodewarden PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/group_stat_aggregator.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_impl.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/group_stat_aggregator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf_binding.cpp diff --git a/ydb/core/blobstorage/nodewarden/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/nodewarden/CMakeLists.linux-x86_64.txt index e5d3a29006f2..bb9a1f8f0511 100644 --- a/ydb/core/blobstorage/nodewarden/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/nodewarden/CMakeLists.linux-x86_64.txt @@ -25,6 +25,12 @@ target_link_libraries(core-blobstorage-nodewarden PUBLIC ydb-library-pdisk_io ) target_sources(core-blobstorage-nodewarden PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/group_stat_aggregator.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_impl.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/group_stat_aggregator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf_binding.cpp diff --git a/ydb/core/blobstorage/nodewarden/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/nodewarden/CMakeLists.windows-x86_64.txt index 64591dd97008..30edce11625c 100644 --- a/ydb/core/blobstorage/nodewarden/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/nodewarden/CMakeLists.windows-x86_64.txt @@ -24,6 +24,12 @@ target_link_libraries(core-blobstorage-nodewarden PUBLIC ydb-library-pdisk_io ) target_sources(core-blobstorage-nodewarden PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/group_stat_aggregator.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/node_warden_impl.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/group_stat_aggregator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/distconf_binding.cpp diff --git a/ydb/core/blobstorage/nodewarden/node_warden_impl.cpp b/ydb/core/blobstorage/nodewarden/node_warden_impl.cpp index 66c6f1e0e2b4..5e7fb8cf3f56 100644 --- a/ydb/core/blobstorage/nodewarden/node_warden_impl.cpp +++ b/ydb/core/blobstorage/nodewarden/node_warden_impl.cpp @@ -89,6 +89,9 @@ void TNodeWarden::RemoveDrivesWithBadSerialsAndReport(TVector TNodeWarden::ListLocalDrives() { + return {}; + +#if 0 TStringStream details; TVector drives = ListDevicesWithPartlabel(details); @@ -114,6 +117,7 @@ TVector TNodeWarden::ListLocalDrives() { RemoveDrivesWithBadSerialsAndReport(drives, details); return drives; +#endif } void TNodeWarden::StartInvalidGroupProxy() { @@ -171,6 +175,20 @@ void TNodeWarden::Bootstrap() { if (actorSystem && actorSystem->AppData() && actorSystem->AppData()->Icb) { actorSystem->AppData()->Icb->RegisterLocalControl(EnablePutBatching, "BlobStorage_EnablePutBatching"); actorSystem->AppData()->Icb->RegisterLocalControl(EnableVPatch, "BlobStorage_EnableVPatch"); + const TIntrusivePtr& icb = actorSystem->AppData()->Icb; + + icb->RegisterSharedControl(CostMetricsParametersByMedia[NPDisk::DEVICE_TYPE_ROT].BurstThresholdNs, + "VDiskControls.BurstThresholdNsHDD"); + icb->RegisterSharedControl(CostMetricsParametersByMedia[NPDisk::DEVICE_TYPE_SSD].BurstThresholdNs, + "VDiskControls.BurstThresholdNsSSD"); + icb->RegisterSharedControl(CostMetricsParametersByMedia[NPDisk::DEVICE_TYPE_NVME].BurstThresholdNs, + "VDiskControls.BurstThresholdNsNVME"); + icb->RegisterSharedControl(CostMetricsParametersByMedia[NPDisk::DEVICE_TYPE_ROT].DiskTimeAvailableScale, + "VDiskControls.DiskTimeAvailableScaleHDD"); + icb->RegisterSharedControl(CostMetricsParametersByMedia[NPDisk::DEVICE_TYPE_SSD].DiskTimeAvailableScale, + "VDiskControls.DiskTimeAvailableScaleSSD"); + icb->RegisterSharedControl(CostMetricsParametersByMedia[NPDisk::DEVICE_TYPE_NVME].DiskTimeAvailableScale, + "VDiskControls.DiskTimeAvailableScaleNVME"); } // start replication broker @@ -231,7 +249,7 @@ void TNodeWarden::Bootstrap() { StartInvalidGroupProxy(); - StartDistributedConfigKeeper(); + // StartDistributedConfigKeeper(); // disabled in 24-1 } void TNodeWarden::HandleReadCache() { diff --git a/ydb/core/blobstorage/nodewarden/node_warden_impl.h b/ydb/core/blobstorage/nodewarden/node_warden_impl.h index 1cc803bed339..2c9e91a37e31 100644 --- a/ydb/core/blobstorage/nodewarden/node_warden_impl.h +++ b/ydb/core/blobstorage/nodewarden/node_warden_impl.h @@ -125,6 +125,8 @@ namespace NKikimr::NStorage { TReplQuoter::TPtr ReplNodeRequestQuoter; TReplQuoter::TPtr ReplNodeResponseQuoter; + TCostMetricsParametersByMedia CostMetricsParametersByMedia; + public: struct TGroupRecord; @@ -137,6 +139,11 @@ namespace NKikimr::NStorage { : Cfg(cfg) , EnablePutBatching(Cfg->FeatureFlags.GetEnablePutBatchingForBlobStorage(), false, true) , EnableVPatch(Cfg->FeatureFlags.GetEnableVPatch(), false, true) + , CostMetricsParametersByMedia({ + TCostMetricsParameters{200}, + TCostMetricsParameters{50}, + TCostMetricsParameters{32}, + }) { Y_ABORT_UNLESS(Cfg->BlobStorageConfig.GetServiceSet().AvailabilityDomainsSize() <= 1); AvailDomainId = 1; diff --git a/ydb/core/blobstorage/nodewarden/node_warden_resource.cpp b/ydb/core/blobstorage/nodewarden/node_warden_resource.cpp index a8b811f517bd..044c6c2e1ee9 100644 --- a/ydb/core/blobstorage/nodewarden/node_warden_resource.cpp +++ b/ydb/core/blobstorage/nodewarden/node_warden_resource.cpp @@ -95,7 +95,7 @@ void TNodeWarden::Handle(TEvNodeWardenStorageConfig::TPtr ev) { ev->Get()->Config->Swap(&StorageConfig); if (StorageConfig.HasBlobStorageConfig()) { if (const auto& bsConfig = StorageConfig.GetBlobStorageConfig(); bsConfig.HasServiceSet()) { - ApplyServiceSet(bsConfig.GetServiceSet(), true, false, true); + ApplyServiceSet(bsConfig.GetServiceSet(), true, false, false); } } for (const TActorId& subscriber : StorageConfigSubscribers) { diff --git a/ydb/core/blobstorage/nodewarden/node_warden_vdisk.cpp b/ydb/core/blobstorage/nodewarden/node_warden_vdisk.cpp index 781dd6070fba..1711ab36bec8 100644 --- a/ydb/core/blobstorage/nodewarden/node_warden_vdisk.cpp +++ b/ydb/core/blobstorage/nodewarden/node_warden_vdisk.cpp @@ -174,6 +174,9 @@ namespace NKikimr::NStorage { vdiskConfig->EnableVDiskCooldownTimeout = Cfg->EnableVDiskCooldownTimeout; vdiskConfig->ReplPausedAtStart = Cfg->VDiskReplPausedAtStart; vdiskConfig->EnableVPatch = EnableVPatch; + + vdiskConfig->CostMetricsParametersByMedia = CostMetricsParametersByMedia; + vdiskConfig->FeatureFlags = Cfg->FeatureFlags; // issue initial report to whiteboard before creating actor to avoid races diff --git a/ydb/core/blobstorage/nodewarden/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/nodewarden/ut/CMakeLists.darwin-arm64.txt index 04c755901c42..2b77875aa78f 100644 --- a/ydb/core/blobstorage/nodewarden/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/nodewarden/ut/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-core-blobstorage-nodewarden-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-nodewarden-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/blobstorage_node_warden_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/nodewarden/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/nodewarden/ut/CMakeLists.darwin-x86_64.txt index e11ea74cfdb0..6efb6711f2a2 100644 --- a/ydb/core/blobstorage/nodewarden/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/nodewarden/ut/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-blobstorage-nodewarden-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-nodewarden-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/blobstorage_node_warden_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/nodewarden/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/nodewarden/ut/CMakeLists.linux-aarch64.txt index e7405aebada6..17c290d39c9e 100644 --- a/ydb/core/blobstorage/nodewarden/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/nodewarden/ut/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-core-blobstorage-nodewarden-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-nodewarden-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/blobstorage_node_warden_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/nodewarden/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/nodewarden/ut/CMakeLists.linux-x86_64.txt index ae54868da3fb..bd0591a4f1c2 100644 --- a/ydb/core/blobstorage/nodewarden/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/nodewarden/ut/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-blobstorage-nodewarden-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-nodewarden-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/blobstorage_node_warden_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/nodewarden/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/nodewarden/ut/CMakeLists.windows-x86_64.txt index 42365ea45558..dfc5894e5dfc 100644 --- a/ydb/core/blobstorage/nodewarden/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/nodewarden/ut/CMakeLists.windows-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.darwin-arm64.txt index 4675693f0eec..0276f9ad2bed 100644 --- a/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-core-blobstorage-nodewarden-ut_sequence PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-nodewarden-ut_sequence PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/ut_sequence/dsproxy_config_retrieval.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.darwin-x86_64.txt index d28c194572c4..3b203cece4a0 100644 --- a/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-blobstorage-nodewarden-ut_sequence PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-nodewarden-ut_sequence PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/ut_sequence/dsproxy_config_retrieval.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.linux-aarch64.txt index 0e8834eb5bb8..75d86ab06a1f 100644 --- a/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-core-blobstorage-nodewarden-ut_sequence PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-nodewarden-ut_sequence PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/ut_sequence/dsproxy_config_retrieval.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.linux-x86_64.txt index 0b2b3e673f03..17867237e89e 100644 --- a/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-blobstorage-nodewarden-ut_sequence PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-nodewarden-ut_sequence PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/nodewarden/ut_sequence/dsproxy_config_retrieval.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.windows-x86_64.txt index 955c0388ed4b..8385a796fb08 100644 --- a/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/nodewarden/ut_sequence/CMakeLists.windows-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/other/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/other/CMakeLists.darwin-arm64.txt index c4b11025238a..95544ba5d686 100644 --- a/ydb/core/blobstorage/other/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/other/CMakeLists.darwin-arm64.txt @@ -18,6 +18,10 @@ target_link_libraries(core-blobstorage-other PUBLIC core-blobstorage-base ) target_sources(core-blobstorage-other PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_blob_range_page.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_get_blob_page.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_vdisk_stream.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_blob_range_page.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_get_blob_page.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_vdisk_stream.cpp diff --git a/ydb/core/blobstorage/other/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/other/CMakeLists.darwin-x86_64.txt index c4b11025238a..95544ba5d686 100644 --- a/ydb/core/blobstorage/other/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/other/CMakeLists.darwin-x86_64.txt @@ -18,6 +18,10 @@ target_link_libraries(core-blobstorage-other PUBLIC core-blobstorage-base ) target_sources(core-blobstorage-other PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_blob_range_page.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_get_blob_page.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_vdisk_stream.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_blob_range_page.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_get_blob_page.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_vdisk_stream.cpp diff --git a/ydb/core/blobstorage/other/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/other/CMakeLists.linux-aarch64.txt index 0cba04d287e2..3eb6b7c17586 100644 --- a/ydb/core/blobstorage/other/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/other/CMakeLists.linux-aarch64.txt @@ -19,6 +19,10 @@ target_link_libraries(core-blobstorage-other PUBLIC core-blobstorage-base ) target_sources(core-blobstorage-other PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_blob_range_page.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_get_blob_page.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_vdisk_stream.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_blob_range_page.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_get_blob_page.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_vdisk_stream.cpp diff --git a/ydb/core/blobstorage/other/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/other/CMakeLists.linux-x86_64.txt index 0cba04d287e2..3eb6b7c17586 100644 --- a/ydb/core/blobstorage/other/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/other/CMakeLists.linux-x86_64.txt @@ -19,6 +19,10 @@ target_link_libraries(core-blobstorage-other PUBLIC core-blobstorage-base ) target_sources(core-blobstorage-other PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_blob_range_page.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_get_blob_page.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_vdisk_stream.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_blob_range_page.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_get_blob_page.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_vdisk_stream.cpp diff --git a/ydb/core/blobstorage/other/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/other/CMakeLists.windows-x86_64.txt index c4b11025238a..95544ba5d686 100644 --- a/ydb/core/blobstorage/other/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/other/CMakeLists.windows-x86_64.txt @@ -18,6 +18,10 @@ target_link_libraries(core-blobstorage-other PUBLIC core-blobstorage-base ) target_sources(core-blobstorage-other PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_blob_range_page.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_get_blob_page.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_vdisk_stream.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_blob_range_page.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_get_blob_page.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/other/mon_vdisk_stream.cpp diff --git a/ydb/core/blobstorage/pdisk/blobstorage_pdisk.h b/ydb/core/blobstorage/pdisk/blobstorage_pdisk.h index 2c1654a83b36..f0a07545df36 100644 --- a/ydb/core/blobstorage/pdisk/blobstorage_pdisk.h +++ b/ydb/core/blobstorage/pdisk/blobstorage_pdisk.h @@ -173,7 +173,7 @@ struct TEvYardInitResult : public TEventLocal ownedChunks, - const TString &errorReason) + EDeviceType trueMediaType, const TString &errorReason) : Status(status) , StatusFlags(statusFlags) , PDiskParams(new TPDiskParams( @@ -196,8 +196,8 @@ struct TEvYardInitResult : public TEventLocalReqCreator.CreateFromArgs(std::move(CommitedLogChunks), std::move(span)); PDisk->InputRequest(req); //isNewChunksCommited = true; @@ -146,7 +146,7 @@ TBuffer *TCompletionChunkReadPart::GetBuffer() { } void TCompletionChunkReadPart::Exec(TActorSystem *actorSystem) { - auto execSpan = Span.CreateChild(TWilson::PDisk, "PDisk.CompletionChunkReadPart.Exec"); + auto execSpan = Span.CreateChild(TWilson::PDiskDetailed, "PDisk.CompletionChunkReadPart.Exec"); Y_ABORT_UNLESS(actorSystem); Y_ABORT_UNLESS(CumulativeCompletion); if (TCompletionAction::Result != EIoResult::Ok) { @@ -306,7 +306,7 @@ TCompletionChunkRead::~TCompletionChunkRead() { } void TCompletionChunkRead::Exec(TActorSystem *actorSystem) { - auto execSpan = Span.CreateChild(TWilson::PDisk, "PDisk.CompletionChunkRead.Exec"); + auto execSpan = Span.CreateChild(TWilson::PDiskDetailed, "PDisk.CompletionChunkRead.Exec"); THolder result = MakeHolder(NKikimrProto::OK, Read->ChunkIdx, Read->Offset, Read->Cookie, PDisk->GetStatusFlags(Read->Owner, Read->OwnerGroupType), ""); result->Data = std::move(CommonBuffer); @@ -393,7 +393,7 @@ void TChunkTrimCompletion::Exec(TActorSystem *actorSystem) { << ui64(responseTimeMs) << " sizeBytes# " << SizeBytes); LWPROBE(PDiskTrimResponseTime, PDisk->PDiskId, ReqId.Id, responseTimeMs, SizeBytes); PDisk->Mon.Trim.CountResponse(); - NWilson::TSpan span(TWilson::PDisk, std::move(TraceId), "PDisk.TryTrimChunk", NWilson::EFlags::AUTO_END, actorSystem); + NWilson::TSpan span(TWilson::PDiskBasic, std::move(TraceId), "PDisk.TryTrimChunk", NWilson::EFlags::AUTO_END, actorSystem); span.Attribute("size", static_cast(SizeBytes)); TTryTrimChunk *tryTrim = PDisk->ReqCreator.CreateFromArgs(SizeBytes, std::move(span)); PDisk->InputRequest(tryTrim); diff --git a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_completion_impl.h b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_completion_impl.h index 415f5a2549e3..5ae63cc4384f 100644 --- a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_completion_impl.h +++ b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_completion_impl.h @@ -100,7 +100,7 @@ class TCompletionChunkWrite : public TCompletionAction { } void Exec(TActorSystem *actorSystem) override { - auto execSpan = Span.CreateChild(TWilson::PDisk, "PDisk.CompletionChunkWrite.Exec"); + auto execSpan = Span.CreateChild(TWilson::PDiskDetailed, "PDisk.CompletionChunkWrite.Exec"); double responseTimeMs = HPMilliSecondsFloat(HPNow() - StartTime); LOG_DEBUG_S(*actorSystem, NKikimrServices::BS_PDISK, "PDiskId# " << PDiskId << " ReqId# " << ReqId diff --git a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_impl.cpp b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_impl.cpp index 6a6c4700fd3d..e7249e8bb52b 100644 --- a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_impl.cpp +++ b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_impl.cpp @@ -1051,7 +1051,7 @@ TPDisk::EChunkReadPieceResult TPDisk::ChunkReadPiece(TIntrusivePtr & ui64 readOffset = Format.Offset(read->ChunkIdx, read->FirstSector, currentSectorOffset); // TODO: Get this from the drive - NWilson::TSpan span(TWilson::PDisk, std::move(traceId), "PDisk.CompletionChunkReadPart", NWilson::EFlags::NONE, ActorSystem); + NWilson::TSpan span(TWilson::PDiskBasic, std::move(traceId), "PDisk.CompletionChunkReadPart", NWilson::EFlags::NONE, ActorSystem); traceId = span.GetTraceId(); THolder completion(new TCompletionChunkReadPart(this, read, bytesToRead, payloadBytesToRead, payloadOffset, read->FinalCompletion, isTheLastPart, Cfg->UseT1ha0HashInFooter, std::move(span))); @@ -1769,7 +1769,8 @@ void TPDisk::ReplyErrorYardInitResult(TYardInit &evYardInit, const TString &str) DriveModel.Speed(TDriveModel::OP_TYPE_WRITE), readBlockSize, writeBlockSize, DriveModel.BulkWriteBlockSize(), GetUserAccessibleChunkSize(), GetChunkAppendBlockSize(), OwnerSystem, 0, - GetStatusFlags(OwnerSystem, evYardInit.OwnerGroupType), TVector(), error.Str())); + GetStatusFlags(OwnerSystem, evYardInit.OwnerGroupType), TVector(), + Cfg->RetrieveDeviceType(), error.Str())); Mon.YardInit.CountResponse(); } @@ -1816,7 +1817,8 @@ bool TPDisk::YardInitForKnownVDisk(TYardInit &evYardInit, TOwner owner) { DriveModel.SeekTimeNs() / 1000ull, DriveModel.Speed(TDriveModel::OP_TYPE_READ), DriveModel.Speed(TDriveModel::OP_TYPE_WRITE), readBlockSize, writeBlockSize, DriveModel.BulkWriteBlockSize(), GetUserAccessibleChunkSize(), GetChunkAppendBlockSize(), owner, - ownerRound, GetStatusFlags(OwnerSystem, evYardInit.OwnerGroupType), ownedChunks, nullptr)); + ownerRound, GetStatusFlags(OwnerSystem, evYardInit.OwnerGroupType), ownedChunks, + Cfg->RetrieveDeviceType(), nullptr)); GetStartingPoints(owner, result->StartingPoints); ownerData.VDiskId = vDiskId; ownerData.CutLogId = evYardInit.CutLogId; @@ -1967,7 +1969,7 @@ void TPDisk::YardInitFinish(TYardInit &evYardInit) { DriveModel.Speed(TDriveModel::OP_TYPE_WRITE), readBlockSize, writeBlockSize, DriveModel.BulkWriteBlockSize(), GetUserAccessibleChunkSize(), GetChunkAppendBlockSize(), owner, ownerRound, GetStatusFlags(OwnerSystem, evYardInit.OwnerGroupType) | ui32(NKikimrBlobStorage::StatusNewOwner), TVector(), - nullptr)); + Cfg->RetrieveDeviceType(), nullptr)); GetStartingPoints(result->PDiskParams->Owner, result->StartingPoints); WriteSysLogRestorePoint(new TCompletionEventSender( this, evYardInit.Sender, result.Release(), Mon.YardInit.Results), evYardInit.ReqId, {}); @@ -2248,7 +2250,7 @@ void TPDisk::ProcessChunkWriteQueue() { for (auto it = JointChunkWrites.begin(); it != JointChunkWrites.end(); ++it) { TRequestBase *req = (*it); req->SpanStack.PopOk(); - req->SpanStack.Push(TWilson::PDisk, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END); + req->SpanStack.Push(TWilson::PDiskDetailed, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END); switch (req->GetType()) { case ERequestType::RequestChunkWritePiece: { @@ -2279,7 +2281,7 @@ void TPDisk::ProcessChunkReadQueue() { for (auto& req : JointChunkReads) { req->SpanStack.PopOk(); - req->SpanStack.Push(TWilson::PDisk, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END); + req->SpanStack.Push(TWilson::PDiskDetailed, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END); switch (req->GetType()) { case ERequestType::RequestChunkReadPiece: { @@ -2351,7 +2353,7 @@ void TPDisk::ProcessChunkTrimQueue() { for (auto it = JointChunkTrims.begin(); it != JointChunkTrims.end(); ++it) { TChunkTrim *trim = (*it); trim->SpanStack.PopOk(); - trim->SpanStack.Push(TWilson::PDisk, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END); + trim->SpanStack.Push(TWilson::PDiskDetailed, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END); ui64 chunkOffset = Format.ChunkSize * ui64(trim->ChunkIdx); ui64 offset = chunkOffset + trim->Offset; ui64 trimSize = trim->Size; @@ -2888,7 +2890,7 @@ bool TPDisk::PreprocessRequest(TRequestBase *request) { --state.OperationsInProgress; --inFlight->ChunkReads; }; - auto completionSpan = request->SpanStack.CreateChild(TWilson::PDisk, "PDisk.CompletionChunkRead"); + auto completionSpan = request->SpanStack.CreateChild(TWilson::PDiskTopLevel, "PDisk.CompletionChunkRead"); read->FinalCompletion = new TCompletionChunkRead(this, read, std::move(onDestroy), state.Nonce, std::move(completionSpan)); static_cast(request)->SelfPointer = std::move(read); @@ -2974,7 +2976,7 @@ bool TPDisk::PreprocessRequest(TRequestBase *request) { }; ev.Completion = MakeHolder(ev.Sender, result.release(), &Mon, PDiskId, ev.CreationTime, ev.TotalSize, ev.PriorityClass, std::move(onDestroy), ev.ReqId, - ev.SpanStack.CreateChild(TWilson::PDisk, "PDisk.CompletionChunkWrite")); + ev.SpanStack.CreateChild(TWilson::PDiskTopLevel, "PDisk.CompletionChunkWrite")); return true; } @@ -3169,7 +3171,7 @@ void TPDisk::PushRequestToForseti(TRequestBase *request) { && static_cast(job->Payload)->GetType() == ERequestType::RequestLogWrite) { TLogWrite &batch = *static_cast(job->Payload); - if (auto span = request->SpanStack.Push(TWilson::PDisk, "PDisk.InScheduler.InLogWriteBatch")) { + if (auto span = request->SpanStack.Push(TWilson::PDiskDetailed, "PDisk.InScheduler.InLogWriteBatch")) { span->Attribute("Batch.ReqId", static_cast(batch.ReqId.Id)); } batch.AddToBatch(static_cast(request)); @@ -3195,7 +3197,7 @@ void TPDisk::PushRequestToForseti(TRequestBase *request) { SplitChunkJobSize(whole->TotalSize, &smallJobSize, &largeJobSize, &smallJobCount); for (ui32 idx = 0; idx < smallJobCount; ++idx) { // Schedule small job. - auto span = request->SpanStack.CreateChild(TWilson::PDisk, "PDisk.ChunkWritePiece", NWilson::EFlags::AUTO_END); + auto span = request->SpanStack.CreateChild(TWilson::PDiskBasic, "PDisk.ChunkWritePiece", NWilson::EFlags::AUTO_END); span.Attribute("small_job_idx", idx) .Attribute("is_last_piece", false); TChunkWritePiece *piece = new TChunkWritePiece(whole, idx * smallJobSize, smallJobSize, std::move(span)); @@ -3203,7 +3205,7 @@ void TPDisk::PushRequestToForseti(TRequestBase *request) { AddJobToForseti(cbs, piece, request->JobKind); } // Schedule large job (there always is one) - auto span = request->SpanStack.CreateChild(TWilson::PDisk, "PDisk.ChunkWritePiece", NWilson::EFlags::AUTO_END); + auto span = request->SpanStack.CreateChild(TWilson::PDiskBasic, "PDisk.ChunkWritePiece", NWilson::EFlags::AUTO_END); span.Attribute("is_last_piece", true); TChunkWritePiece *piece = new TChunkWritePiece(whole, smallJobCount * smallJobSize, largeJobSize, std::move(span)); piece->EstimateCost(DriveModel); @@ -3223,7 +3225,7 @@ void TPDisk::PushRequestToForseti(TRequestBase *request) { ui32 largeJobSize = totalSectors - smallJobSize * smallJobCount; for (ui32 idx = 0; idx < smallJobCount; ++idx) { - auto span = request->SpanStack.CreateChild(TWilson::PDisk, "PDisk.ChunkReadPiece", NWilson::EFlags::AUTO_END); + auto span = request->SpanStack.CreateChild(TWilson::PDiskBasic, "PDisk.ChunkReadPiece", NWilson::EFlags::AUTO_END); span.Attribute("small_job_idx", idx) .Attribute("is_last_piece", false); // Schedule small job. @@ -3236,7 +3238,7 @@ void TPDisk::PushRequestToForseti(TRequestBase *request) { AddJobToForseti(cbs, piece, request->JobKind); } // Schedule large job (there always is one) - auto span = request->SpanStack.CreateChild(TWilson::PDisk, "PDisk.ChunkReadPiece"); + auto span = request->SpanStack.CreateChild(TWilson::PDiskBasic, "PDisk.ChunkReadPiece"); span.Attribute("is_last_piece", true); auto piece = new TChunkReadPiece(read, smallJobCount * smallJobSize, largeJobSize * Format.SectorSize, true, std::move(span)); @@ -3272,7 +3274,7 @@ void TPDisk::SplitChunkJobSize(ui32 totalSize, ui32 *outSmallJobSize, ui32 *outL void TPDisk::AddJobToForseti(NSchLab::TCbs *cbs, TRequestBase *request, NSchLab::EJobKind jobKind) { LWTRACK(PDiskAddToScheduler, request->Orbit, PDiskId, request->ReqId.Id, HPSecondsFloat(request->CreationTime), request->Owner, request->IsFast, request->PriorityClass); - request->SpanStack.Push(TWilson::PDisk, "PDisk.InScheduler"); + request->SpanStack.Push(TWilson::PDiskDetailed, "PDisk.InScheduler"); TIntrusivePtr job = ForsetiScheduler.CreateJob(); job->Payload = request; job->Cost = request->Cost; diff --git a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_impl_log.cpp b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_impl_log.cpp index 44d5bb98a11c..d884c84ee794 100644 --- a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_impl_log.cpp +++ b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_impl_log.cpp @@ -535,7 +535,7 @@ void TPDisk::ReadAndParseMainLog(const TActorId &pDiskActor) { void TPDisk::ProcessLogReadQueue() { for (auto& req : JointLogReads) { req->SpanStack.PopOk(); - req->SpanStack.Push(TWilson::PDisk, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END); + req->SpanStack.Push(TWilson::PDiskDetailed, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END); switch (req->GetType()) { case ERequestType::RequestLogRead: { @@ -736,7 +736,7 @@ void TPDisk::ProcessLogWriteQueueAndCommits() { TStringStream errorReason; NKikimrProto::EReplyStatus status = ValidateRequest(logWrite, errorReason); if (status == NKikimrProto::OK) { - logWrite->SpanStack.Push(TWilson::PDisk, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END); + logWrite->SpanStack.Push(TWilson::PDiskDetailed, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END); LogWrite(*logWrite, logChunksToCommit); logWrite->ScheduleTime = HPNow(); if (auto logWriteTraceId = logWrite->SpanStack.GetTraceId()) { @@ -1282,7 +1282,7 @@ void TPDisk::MarkChunksAsReleased(TReleaseChunks& req) { } if (req.IsChunksFromLogSplice) { - auto *releaseReq = ReqCreator.CreateFromArgs(std::move(req.ChunksToRelease), req.SpanStack.CreateChild(TWilson::PDisk, "PDisk.ReleaseChunks")); + auto *releaseReq = ReqCreator.CreateFromArgs(std::move(req.ChunksToRelease), req.SpanStack.CreateChild(TWilson::PDiskTopLevel, "PDisk.ReleaseChunks")); auto flushAction = MakeHolder(this, THolder(releaseReq)); diff --git a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_mon.h b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_mon.h index 621d28c7d7b9..664451321e7e 100644 --- a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_mon.h +++ b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_mon.h @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -14,270 +15,6 @@ namespace NKikimr { struct TPDiskConfig; -inline NHPTimer::STime HPNow() { - NHPTimer::STime ret; - GetTimeFast(&ret); - return ret; -} - -inline double HPSecondsFloat(i64 cycles) { - if (cycles > 0) { - return double(cycles) / NHPTimer::GetClockRate(); - } else { - return 0.0; - } -} - -inline double HPMilliSecondsFloat(i64 cycles) { - if (cycles > 0) { - return double(cycles) * 1000.0 / NHPTimer::GetClockRate(); - } else { - return 0; - } -} - -inline ui64 HPMilliSeconds(i64 cycles) { - return (ui64)HPMilliSecondsFloat(cycles); -} - -inline ui64 HPMicroSecondsFloat(i64 cycles) { - if (cycles > 0) { - return double(cycles) * 1000000.0 / NHPTimer::GetClockRate(); - } else { - return 0; - } -} - -inline ui64 HPMicroSeconds(i64 cycles) { - return (ui64)HPMicroSecondsFloat(cycles); -} - -inline ui64 HPNanoSeconds(i64 cycles) { - if (cycles > 0) { - return ui64(double(cycles) * 1000000000.0 / NHPTimer::GetClockRate()); - } else { - return 0; - } -} - -inline ui64 HPCyclesNs(ui64 ns) { - return ui64(NHPTimer::GetClockRate() * double(ns) / 1000000000.0); -} - -inline ui64 HPCyclesUs(ui64 us) { - return ui64(NHPTimer::GetClockRate() * double(us) / 1000000.0); -} - -inline ui64 HPCyclesMs(ui64 ms) { - return ui64(NHPTimer::GetClockRate() * double(ms) / 1000.0); -} - -class TLightBase { -protected: - TString Name; - ::NMonitoring::TDynamicCounters::TCounterPtr State; // Current state (0=OFF=green, 1=ON=red) - ::NMonitoring::TDynamicCounters::TCounterPtr Count; // Number of switches to ON state - ::NMonitoring::TDynamicCounters::TCounterPtr RedMs; // Time elapsed in ON state - ::NMonitoring::TDynamicCounters::TCounterPtr GreenMs; // Time elapsed in OFF state -private: - ui64 RedCycles = 0; - ui64 GreenCycles = 0; - NHPTimer::STime AdvancedTill = 0; - NHPTimer::STime LastNow = 0; - ui64 UpdateThreshold = 0; -public: - void Initialize(TIntrusivePtr<::NMonitoring::TDynamicCounters>& counters, const TString& name) { - Name = name; - State = counters->GetCounter(name + "_state"); - Count = counters->GetCounter(name + "_count", true); - RedMs = counters->GetCounter(name + "_redMs", true); - GreenMs = counters->GetCounter(name + "_greenMs", true); - UpdateThreshold = HPCyclesMs(100); - AdvancedTill = Now(); - } - - void Initialize(TIntrusivePtr<::NMonitoring::TDynamicCounters>& counters, const TString& countName, - const TString& redMsName,const TString& greenMsName) { - Count = counters->GetCounter(countName, true); - RedMs = counters->GetCounter(redMsName, true); - GreenMs = counters->GetCounter(greenMsName, true); - UpdateThreshold = HPCyclesMs(100); - AdvancedTill = Now(); - } - - ui64 GetCount() const { - return *Count; - } - - ui64 GetRedMs() const { - return *RedMs; - } - - ui64 GetGreenMs() const { - return *GreenMs; - } -protected: - void Modify(bool state, bool prevState) { - if (state && !prevState) { // Switched to ON state - if (State) { - *State = true; - } - (*Count)++; - return; - } - if (!state && prevState) { // Switched to OFF state - if (State) { - *State = false; - } - return; - } - } - - void Advance(bool state, NHPTimer::STime now) { - if (now == AdvancedTill) { - return; - } - Elapsed(state, now - AdvancedTill); - if (RedCycles > UpdateThreshold) { - *RedMs += CutMs(RedCycles); - } - if (GreenCycles > UpdateThreshold) { - *GreenMs += CutMs(GreenCycles); - } - AdvancedTill = now; - } - - NHPTimer::STime Now() { - // Avoid time going backwards - NHPTimer::STime now = HPNow(); - if (now < LastNow) { - now = LastNow; - } - LastNow = now; - return now; - } -private: - void Elapsed(bool state, ui64 cycles) { - if (state) { - RedCycles += cycles; - } else { - GreenCycles += cycles; - } - } - - ui64 CutMs(ui64& src) { - ui64 ms = HPMilliSeconds(src); - ui64 cycles = HPCyclesMs(ms); - src -= cycles; - return ms; - } -}; - -// Thread-safe light -class TLight : public TLightBase { -private: - struct TItem { - bool State; - bool Filled; - TItem(bool state = false, bool filled = false) - : State(state) - , Filled(filled) - {} - }; - - // Cyclic buffer to enforce event ordering by seqno - TSpinLock Lock; - size_t HeadIdx = 0; // Index of current state - size_t FilledCount = 0; - ui16 Seqno = 0; // Current seqno - TStackVec Data; // In theory should have not more than thread count items -public: - TLight() { - InitData(); - } - - void Set(bool state, ui16 seqno) { - TGuard g(Lock); - Push(state, seqno); - bool prevState; - // Note that 'state' variable is being reused - NHPTimer::STime now = Now(); - while (Pop(state, prevState)) { - Modify(state, prevState); - Advance(prevState, now); - } - } - - void Update() { - TGuard g(Lock); - Advance(Data[HeadIdx].State, Now()); - } - -private: - void InitData(bool state = false, bool filled = false) { - Data.clear(); - Data.emplace_back(state, filled); - Data.resize(32); - HeadIdx = 0; - } - - void Push(bool state, ui16 seqno) { - FilledCount++; - if (FilledCount == 1) { // First event must initialize seqno - Seqno = seqno; - InitData(state, true); - if (state) { - Modify(true, false); - } - return; - } - Y_ABORT_UNLESS(seqno != Seqno, "ordering overflow or duplicate event headSeqno# %d seqno# %d state# %d filled# %d", - (int)Seqno, (int)seqno, (int)state, (int)CountFilled()); - ui16 diff = seqno; - diff -= Seqno; // Underflow is fine - size_t size = Data.size(); - if (size <= diff) { // Buffer is full -- extend and move wrapped part - Data.resize(size * 2); - for (size_t i = 0; i < HeadIdx; i++) { - Data[size + i] = Data[i]; - Data[i].Filled = false; - } - } - TItem& item = Data[(HeadIdx + diff) % Data.size()]; - Y_ABORT_UNLESS(!item.Filled, "ordering overflow or duplicate event headSeqno# %d seqno# %d state# %d filled# %d", - (int)Seqno, (int)seqno, (int)state, (int)CountFilled()); - item.Filled = true; - item.State = state; - } - - bool Pop(bool& state, bool& prevState) { - size_t nextIdx = (HeadIdx + 1) % Data.size(); - TItem& head = Data[HeadIdx]; - TItem& next = Data[nextIdx]; - if (!head.Filled || !next.Filled) { - return false; - } - state = next.State; - prevState = head.State; - head.Filled = false; - HeadIdx = nextIdx; - Seqno++; // Overflow is fine - FilledCount--; - if (FilledCount == 1 && Data.size() > 32) { - InitData(state, true); - } - return true; - } - - size_t CountFilled() const { - size_t ret = 0; - for (const TItem& item : Data) { - ret += item.Filled; - } - return ret; - } -}; - class TBurstmeter { private: TBucketQuoter Bucket; diff --git a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_params.cpp b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_params.cpp index b8564ea0305e..4e7078f9a8d9 100644 --- a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_params.cpp +++ b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_params.cpp @@ -11,7 +11,7 @@ namespace NKikimr { //////////////////////////////////////////////////////////////////////////// TPDiskParams::TPDiskParams(NPDisk::TOwner owner, ui64 ownerRound, ui32 chunkSize, ui32 appendBlockSize, ui64 seekTimeUs, ui64 readSpeedBps, ui64 writeSpeedBps, ui64 readBlockSize, - ui64 writeBlockSize, ui64 bulkWriteBlockSize) + ui64 writeBlockSize, ui64 bulkWriteBlockSize, NPDisk::EDeviceType trueMediaType) : Owner(owner) , OwnerRound(ownerRound) , ChunkSize(chunkSize) @@ -25,6 +25,7 @@ namespace NKikimr { , BulkWriteBlockSize(bulkWriteBlockSize) , PrefetchSizeBytes(CalculatePrefetchSizeBytes(seekTimeUs, readSpeedBps)) , GlueRequestDistanceBytes(CalculateGlueRequestDistanceBytes(seekTimeUs, readSpeedBps)) + , TrueMediaType(trueMediaType) { Y_DEBUG_ABORT_UNLESS(AppendBlockSize <= ChunkSize); } diff --git a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_params.h b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_params.h index 7e5017d87916..175bd3ec0ddd 100644 --- a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_params.h +++ b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_params.h @@ -27,13 +27,15 @@ namespace NKikimr { const ui64 PrefetchSizeBytes; // Pdisk is expected to stream data of this size at 83% of max speed. const ui64 GlueRequestDistanceBytes; // It is faster to read unneeded data of this size than to seek over it. + const NPDisk::EDeviceType TrueMediaType; + static ui32 CalculateRecommendedReadSize(ui64 seekTimeUs, ui64 readSpeedBps, ui64 appendBlockSize); static ui64 CalculatePrefetchSizeBytes(ui64 seekTimeUs, ui64 readSpeedBps); static ui64 CalculateGlueRequestDistanceBytes(ui64 seekTimeUs, ui64 readSpeedBps); TPDiskParams(NPDisk::TOwner owner, ui64 ownerRound, ui32 chunkSize, ui32 appendBlockSize, ui64 seekTimeUs, ui64 readSpeedBps, ui64 writeSpeedBps, ui64 readBlockSize, - ui64 writeBlockSize, ui64 bulkWriteBlockSize); + ui64 writeBlockSize, ui64 bulkWriteBlockSize, NPDisk::EDeviceType trueMediaType); void OutputHtml(IOutputStream &str) const; TString ToString() const; }; diff --git a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_req_creator.h b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_req_creator.h index c8ab252f8f7d..dc0d534b4e1a 100644 --- a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_req_creator.h +++ b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_req_creator.h @@ -218,7 +218,7 @@ class TReqCreator { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // TODO: Make all functions in style [[nodiscard]] TChunkTrim* CreateChunkTrim(ui32 chunkIdx, ui32 offset, ui64 size, const NWilson::TSpan& parent) { - NWilson::TSpan span = parent.CreateChild(TWilson::PDisk, "PDisk.ChunkTrim"); + NWilson::TSpan span = parent.CreateChild(TWilson::PDiskTopLevel, "PDisk.ChunkTrim"); span.Attribute("chunk_idx", chunkIdx) .Attribute("offset", offset) .Attribute("size", static_cast(size)) @@ -228,7 +228,7 @@ class TReqCreator { } [[nodiscard]] TLogWrite* CreateLogWrite(NPDisk::TEvLog &ev, const TActorId &sender, double& burstMs, NWilson::TTraceId traceId) { - NWilson::TSpan span(TWilson::PDisk, std::move(traceId), "PDisk.LogWrite", NWilson::EFlags::AUTO_END, ActorSystem); + NWilson::TSpan span(TWilson::PDiskTopLevel, std::move(traceId), "PDisk.LogWrite", NWilson::EFlags::AUTO_END, ActorSystem); span.Attribute("pdisk_id", PDiskId); TReqId reqId(TReqId::LogWrite, AtomicIncrement(LastReqId)); @@ -245,7 +245,7 @@ class TReqCreator { [[nodiscard]] TChunkRead* CreateChunkRead(const NPDisk::TEvChunkRead &ev, const TActorId &sender, double& burstMs, NWilson::TTraceId traceId) { - NWilson::TSpan span(TWilson::PDisk, std::move(traceId), "PDisk.ChunkRead", NWilson::EFlags::AUTO_END, ActorSystem); + NWilson::TSpan span(TWilson::PDiskTopLevel, std::move(traceId), "PDisk.ChunkRead", NWilson::EFlags::AUTO_END, ActorSystem); span.Attribute("pdisk_id", PDiskId); TReqId reqId(TReqId::ChunkRead, AtomicIncrement(LastReqId)); @@ -261,7 +261,7 @@ class TReqCreator { [[nodiscard]] TChunkWrite* CreateChunkWrite(const NPDisk::TEvChunkWrite &ev, const TActorId &sender, double& burstMs, NWilson::TTraceId traceId) { - NWilson::TSpan span(TWilson::PDisk, std::move(traceId), "PDisk.ChunkWrite", NWilson::EFlags::AUTO_END, ActorSystem); + NWilson::TSpan span(TWilson::PDiskTopLevel, std::move(traceId), "PDisk.ChunkWrite", NWilson::EFlags::AUTO_END, ActorSystem); span.Attribute("pdisk_id", PDiskId); TReqId reqId(TReqId::ChunkWrite, AtomicIncrement(LastReqId)); diff --git a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_requestimpl.h b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_requestimpl.h index ee89bc085331..d8d6da23393d 100644 --- a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_requestimpl.h +++ b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_requestimpl.h @@ -185,7 +185,7 @@ class TLogRead : public TRequestBase { TLogRead(const NPDisk::TEvReadLog::TPtr &ev, ui32 pdiskId, TAtomicBase reqIdx) : TRequestBase(ev->Sender, TReqId(TReqId::LogRead, reqIdx), ev->Get()->Owner, ev->Get()->OwnerRound, NPriInternal::LogRead, - NWilson::TSpan(TWilson::PDisk, std::move(ev->TraceId), "PDisk.LogRead")) + NWilson::TSpan(TWilson::PDiskTopLevel, std::move(ev->TraceId), "PDisk.LogRead")) , Position(ev->Get()->Position) , SizeLimit(ev->Get()->SizeLimit) { @@ -214,7 +214,7 @@ class TLogReadContinue : public TRequestBase { TLogReadContinue(const NPDisk::TEvReadLogContinue::TPtr &ev, ui32 pdiskId, TAtomicBase /*reqIdx*/) : TRequestBase(ev->Sender, ev->Get()->ReqId, 0, 0, NPriInternal::LogRead, - NWilson::TSpan(TWilson::PDisk, std::move(ev->TraceId), "PDisk.LogReadContinue")) + NWilson::TSpan(TWilson::PDiskTopLevel, std::move(ev->TraceId), "PDisk.LogReadContinue")) , Data(ev->Get()->Data) , Size(ev->Get()->Size) , Offset(ev->Get()->Offset) @@ -850,7 +850,7 @@ class TAskForCutLog : public TRequestBase { public: TAskForCutLog(const NPDisk::TEvAskForCutLog::TPtr &ev, ui32 pdiskId, TAtomicBase reqIdx) : TRequestBase(ev->Sender, TReqId(TReqId::AskForCutLog, reqIdx), ev->Get()->Owner, ev->Get()->OwnerRound, NPriInternal::Other, - NWilson::TSpan(TWilson::PDisk, std::move(ev->TraceId), "PDisk.AskForCutLog") + NWilson::TSpan(TWilson::PDiskTopLevel, std::move(ev->TraceId), "PDisk.AskForCutLog") ) { if (auto span = SpanStack.PeekTop()) { diff --git a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut_env.h b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut_env.h index f1b5d2b0c042..0012985963f5 100644 --- a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut_env.h +++ b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut_env.h @@ -72,7 +72,7 @@ struct TActorTestContext { appData->IoContextFactory = IoContext.get(); Runtime->SetLogBackend(IsLowVerbose ? CreateStderrBackend() : CreateNullBackend()); - Runtime->Initialize(TTestActorRuntime::TEgg{appData.Release(), nullptr, {}}); + Runtime->Initialize(TTestActorRuntime::TEgg{appData.Release(), nullptr, {}, {}}); Runtime->SetLogPriority(NKikimrServices::BS_PDISK, NLog::PRI_NOTICE); Runtime->SetLogPriority(NKikimrServices::BS_PDISK_SYSLOG, NLog::PRI_NOTICE); Runtime->SetLogPriority(NKikimrServices::BS_PDISK_TEST, NLog::PRI_DEBUG); diff --git a/ydb/core/blobstorage/pdisk/mock/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/pdisk/mock/CMakeLists.darwin-arm64.txt index 0f825d0c45bc..a5f9954a239d 100644 --- a/ydb/core/blobstorage/pdisk/mock/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/pdisk/mock/CMakeLists.darwin-arm64.txt @@ -15,5 +15,6 @@ target_link_libraries(blobstorage-pdisk-mock PUBLIC core-blobstorage-pdisk ) target_sources(blobstorage-pdisk-mock PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/mock/pdisk_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/mock/pdisk_mock.cpp ) diff --git a/ydb/core/blobstorage/pdisk/mock/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/pdisk/mock/CMakeLists.darwin-x86_64.txt index 0f825d0c45bc..a5f9954a239d 100644 --- a/ydb/core/blobstorage/pdisk/mock/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/pdisk/mock/CMakeLists.darwin-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(blobstorage-pdisk-mock PUBLIC core-blobstorage-pdisk ) target_sources(blobstorage-pdisk-mock PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/mock/pdisk_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/mock/pdisk_mock.cpp ) diff --git a/ydb/core/blobstorage/pdisk/mock/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/pdisk/mock/CMakeLists.linux-aarch64.txt index 8e03928b8a1b..29322a4dd02b 100644 --- a/ydb/core/blobstorage/pdisk/mock/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/pdisk/mock/CMakeLists.linux-aarch64.txt @@ -16,5 +16,6 @@ target_link_libraries(blobstorage-pdisk-mock PUBLIC core-blobstorage-pdisk ) target_sources(blobstorage-pdisk-mock PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/mock/pdisk_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/mock/pdisk_mock.cpp ) diff --git a/ydb/core/blobstorage/pdisk/mock/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/pdisk/mock/CMakeLists.linux-x86_64.txt index 8e03928b8a1b..29322a4dd02b 100644 --- a/ydb/core/blobstorage/pdisk/mock/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/pdisk/mock/CMakeLists.linux-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(blobstorage-pdisk-mock PUBLIC core-blobstorage-pdisk ) target_sources(blobstorage-pdisk-mock PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/mock/pdisk_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/mock/pdisk_mock.cpp ) diff --git a/ydb/core/blobstorage/pdisk/mock/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/pdisk/mock/CMakeLists.windows-x86_64.txt index 0f825d0c45bc..a5f9954a239d 100644 --- a/ydb/core/blobstorage/pdisk/mock/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/pdisk/mock/CMakeLists.windows-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(blobstorage-pdisk-mock PUBLIC core-blobstorage-pdisk ) target_sources(blobstorage-pdisk-mock PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/mock/pdisk_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/mock/pdisk_mock.cpp ) diff --git a/ydb/core/blobstorage/pdisk/mock/pdisk_mock.cpp b/ydb/core/blobstorage/pdisk/mock/pdisk_mock.cpp index f057bb46d5df..ff6fc007ce9a 100644 --- a/ydb/core/blobstorage/pdisk/mock/pdisk_mock.cpp +++ b/ydb/core/blobstorage/pdisk/mock/pdisk_mock.cpp @@ -46,8 +46,9 @@ struct TPDiskMockState::TImpl { NPDisk::TStatusFlags StatusFlags; THashSet ReadOnlyVDisks; TString StateErrorReason; + NPDisk::EDeviceType DeviceType; - TImpl(ui32 nodeId, ui32 pdiskId, ui64 pdiskGuid, ui64 size, ui32 chunkSize) + TImpl(ui32 nodeId, ui32 pdiskId, ui64 pdiskGuid, ui64 size, ui32 chunkSize, NPDisk::EDeviceType deviceType) : NodeId(nodeId) , PDiskId(pdiskId) , PDiskGuid(pdiskGuid) @@ -57,6 +58,7 @@ struct TPDiskMockState::TImpl { , AppendBlockSize(4096) , NextFreeChunk(1) , StatusFlags(NPDisk::TStatusFlags{}) + , DeviceType(deviceType) {} TImpl(const TImpl&) = default; @@ -207,6 +209,11 @@ struct TPDiskMockState::TImpl { } } + bool HasCorruptedArea(ui32 chunkIdx, ui32 begin, ui32 end) { + const ui64 chunkBegin = ui64(chunkIdx) * ChunkSize; + return static_cast(Corrupted & TIntervalSet{chunkBegin + begin, chunkBegin + end}); + } + std::set GetChunks() { std::set res; for (auto& [ownerId, owner] : Owners) { @@ -275,8 +282,9 @@ struct TPDiskMockState::TImpl { } }; -TPDiskMockState::TPDiskMockState(ui32 nodeId, ui32 pdiskId, ui64 pdiskGuid, ui64 size, ui32 chunkSize) - : TPDiskMockState(std::make_unique(nodeId, pdiskId, pdiskGuid, size, chunkSize)) +TPDiskMockState::TPDiskMockState(ui32 nodeId, ui32 pdiskId, ui64 pdiskGuid, ui64 size, ui32 chunkSize, + NPDisk::EDeviceType deviceType) + : TPDiskMockState(std::make_unique(nodeId, pdiskId, pdiskGuid, size, chunkSize, deviceType)) {} TPDiskMockState::TPDiskMockState(std::unique_ptr&& impl) @@ -290,6 +298,10 @@ void TPDiskMockState::SetCorruptedArea(ui32 chunkIdx, ui32 begin, ui32 end, bool Impl->SetCorruptedArea(chunkIdx, begin, end, enabled); } +bool TPDiskMockState::HasCorruptedArea(ui32 chunkIdx, ui32 begin, ui32 end) { + return Impl->HasCorruptedArea(chunkIdx, begin, end); +} + std::set TPDiskMockState::GetChunks() { return Impl->GetChunks(); } @@ -406,15 +418,16 @@ class TPDiskMockActor : public TActorBootstrapped { // fill in the response TVector ownedChunks(owner->CommittedChunks.begin(), owner->CommittedChunks.end()); - const ui64 seekTimeUs = 100; - const ui64 readSpeedBps = 100 * 1000 * 1000; - const ui64 writeSpeedBps = 100 * 1000 * 1000; + const auto& performanceParams = NPDisk::DevicePerformance.at(Impl.DeviceType); + const ui64 seekTimeUs = (performanceParams.SeekTimeNs + 1000) / 1000 - 1; + const ui64 readSpeedBps = performanceParams.FirstSectorReadBytesPerSec; + const ui64 writeSpeedBps = performanceParams.FirstSectorWriteBytesPerSec; const ui64 readBlockSize = 65536; const ui64 writeBlockSize = 65536; const ui64 bulkWriteBlockSize = 65536; res = std::make_unique(NKikimrProto::OK, seekTimeUs, readSpeedBps, writeSpeedBps, readBlockSize, writeBlockSize, bulkWriteBlockSize, Impl.ChunkSize, Impl.AppendBlockSize, ownerId, - owner->OwnerRound, GetStatusFlags(), std::move(ownedChunks), TString()); + owner->OwnerRound, GetStatusFlags(), std::move(ownedChunks), NPDisk::DEVICE_TYPE_NVME, TString()); res->StartingPoints = owner->StartingPoints; } else { res = std::make_unique(NKikimrProto::INVALID_ROUND, "invalid owner round"); diff --git a/ydb/core/blobstorage/pdisk/mock/pdisk_mock.h b/ydb/core/blobstorage/pdisk/mock/pdisk_mock.h index c22944034760..919027fe4c0f 100644 --- a/ydb/core/blobstorage/pdisk/mock/pdisk_mock.h +++ b/ydb/core/blobstorage/pdisk/mock/pdisk_mock.h @@ -21,11 +21,13 @@ namespace NKikimr { using TPtr = TIntrusivePtr; public: - TPDiskMockState(ui32 nodeId, ui32 pdiskId, ui64 pdiskGuid, ui64 size, ui32 chunkSize = 128 << 20); + TPDiskMockState(ui32 nodeId, ui32 pdiskId, ui64 pdiskGuid, ui64 size, ui32 chunkSize = 128 << 20, + NPDisk::EDeviceType deviceType = NPDisk::EDeviceType::DEVICE_TYPE_NVME); TPDiskMockState(std::unique_ptr&& impl); ~TPDiskMockState(); void SetCorruptedArea(ui32 chunkIdx, ui32 begin, ui32 end, bool enabled); + bool HasCorruptedArea(ui32 chunkIdx, ui32 begin, ui32 end); std::set GetChunks(); TMaybe GetOwnerRound(const TVDiskID& vDiskId) const; ui32 GetChunkSize() const; diff --git a/ydb/core/blobstorage/pdisk/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/pdisk/ut/CMakeLists.darwin-arm64.txt index fdd6b5c2d58c..ac297f84317c 100644 --- a/ydb/core/blobstorage/pdisk/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/pdisk/ut/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-core-blobstorage-pdisk-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-pdisk-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_blockdevice_ut.cpp @@ -69,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/pdisk/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/pdisk/ut/CMakeLists.darwin-x86_64.txt index 95f69321e94b..a47374333f55 100644 --- a/ydb/core/blobstorage/pdisk/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/pdisk/ut/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-blobstorage-pdisk-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-pdisk-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_blockdevice_ut.cpp @@ -70,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/pdisk/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/pdisk/ut/CMakeLists.linux-aarch64.txt index faef05f81f8c..11acaf98d0fc 100644 --- a/ydb/core/blobstorage/pdisk/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/pdisk/ut/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-core-blobstorage-pdisk-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-pdisk-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_blockdevice_ut.cpp @@ -73,6 +70,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/pdisk/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/pdisk/ut/CMakeLists.linux-x86_64.txt index 268016dec16e..3a8c2527c6bb 100644 --- a/ydb/core/blobstorage/pdisk/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/pdisk/ut/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-blobstorage-pdisk-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-pdisk-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/pdisk/blobstorage_pdisk_blockdevice_ut.cpp @@ -74,6 +71,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/pdisk/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/pdisk/ut/CMakeLists.windows-x86_64.txt index 0533f6adb7df..2d781494a242 100644 --- a/ydb/core/blobstorage/pdisk/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/pdisk/ut/CMakeLists.windows-x86_64.txt @@ -63,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/storagepoolmon/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/storagepoolmon/CMakeLists.darwin-arm64.txt index d5c1a02d8f86..42075072ba12 100644 --- a/ydb/core/blobstorage/storagepoolmon/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/storagepoolmon/CMakeLists.darwin-arm64.txt @@ -16,3 +16,6 @@ target_link_libraries(core-blobstorage-storagepoolmon INTERFACE ydb-core-base core-blobstorage-base ) +target_sources(core-blobstorage-storagepoolmon INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/storagepoolmon/storagepool_counters.h +) diff --git a/ydb/core/blobstorage/storagepoolmon/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/storagepoolmon/CMakeLists.darwin-x86_64.txt index d5c1a02d8f86..42075072ba12 100644 --- a/ydb/core/blobstorage/storagepoolmon/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/storagepoolmon/CMakeLists.darwin-x86_64.txt @@ -16,3 +16,6 @@ target_link_libraries(core-blobstorage-storagepoolmon INTERFACE ydb-core-base core-blobstorage-base ) +target_sources(core-blobstorage-storagepoolmon INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/storagepoolmon/storagepool_counters.h +) diff --git a/ydb/core/blobstorage/storagepoolmon/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/storagepoolmon/CMakeLists.linux-aarch64.txt index ccd7e3d8914b..667d6e845037 100644 --- a/ydb/core/blobstorage/storagepoolmon/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/storagepoolmon/CMakeLists.linux-aarch64.txt @@ -17,3 +17,6 @@ target_link_libraries(core-blobstorage-storagepoolmon INTERFACE ydb-core-base core-blobstorage-base ) +target_sources(core-blobstorage-storagepoolmon INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/storagepoolmon/storagepool_counters.h +) diff --git a/ydb/core/blobstorage/storagepoolmon/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/storagepoolmon/CMakeLists.linux-x86_64.txt index ccd7e3d8914b..667d6e845037 100644 --- a/ydb/core/blobstorage/storagepoolmon/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/storagepoolmon/CMakeLists.linux-x86_64.txt @@ -17,3 +17,6 @@ target_link_libraries(core-blobstorage-storagepoolmon INTERFACE ydb-core-base core-blobstorage-base ) +target_sources(core-blobstorage-storagepoolmon INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/storagepoolmon/storagepool_counters.h +) diff --git a/ydb/core/blobstorage/storagepoolmon/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/storagepoolmon/CMakeLists.windows-x86_64.txt index d5c1a02d8f86..42075072ba12 100644 --- a/ydb/core/blobstorage/storagepoolmon/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/storagepoolmon/CMakeLists.windows-x86_64.txt @@ -16,3 +16,6 @@ target_link_libraries(core-blobstorage-storagepoolmon INTERFACE ydb-core-base core-blobstorage-base ) +target_sources(core-blobstorage-storagepoolmon INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/storagepoolmon/storagepool_counters.h +) diff --git a/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.darwin-arm64.txt index 16be7a9ac167..52c513166112 100644 --- a/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.darwin-arm64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-core-blobstorage-storagepoolmon-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-storagepoolmon-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/storagepoolmon/ut/storagepoolmon_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.darwin-x86_64.txt index 5c007a5507fa..22110cc1a298 100644 --- a/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.darwin-x86_64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-core-blobstorage-storagepoolmon-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-storagepoolmon-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/storagepoolmon/ut/storagepoolmon_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.linux-aarch64.txt index f44ef37435f4..e1f6cf1efed2 100644 --- a/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-core-blobstorage-storagepoolmon-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-storagepoolmon-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/storagepoolmon/ut/storagepoolmon_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.linux-x86_64.txt index 6b624e17873b..5ebe34b7fd22 100644 --- a/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-core-blobstorage-storagepoolmon-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-storagepoolmon-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/storagepoolmon/ut/storagepoolmon_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.windows-x86_64.txt index ab57ae25dd30..77e06560d70f 100644 --- a/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/storagepoolmon/ut/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/testing/group_overseer/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/testing/group_overseer/CMakeLists.darwin-arm64.txt index 65ce705be6dc..618263929d00 100644 --- a/ydb/core/blobstorage/testing/group_overseer/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/testing/group_overseer/CMakeLists.darwin-arm64.txt @@ -15,6 +15,9 @@ target_link_libraries(blobstorage-testing-group_overseer PUBLIC contrib-libs-t1ha ) target_sources(blobstorage-testing-group_overseer PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_overseer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_state.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_overseer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_state.cpp ) diff --git a/ydb/core/blobstorage/testing/group_overseer/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/testing/group_overseer/CMakeLists.darwin-x86_64.txt index 65ce705be6dc..618263929d00 100644 --- a/ydb/core/blobstorage/testing/group_overseer/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/testing/group_overseer/CMakeLists.darwin-x86_64.txt @@ -15,6 +15,9 @@ target_link_libraries(blobstorage-testing-group_overseer PUBLIC contrib-libs-t1ha ) target_sources(blobstorage-testing-group_overseer PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_overseer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_state.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_overseer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_state.cpp ) diff --git a/ydb/core/blobstorage/testing/group_overseer/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/testing/group_overseer/CMakeLists.linux-aarch64.txt index 372c18f418a4..6cd423972175 100644 --- a/ydb/core/blobstorage/testing/group_overseer/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/testing/group_overseer/CMakeLists.linux-aarch64.txt @@ -16,6 +16,9 @@ target_link_libraries(blobstorage-testing-group_overseer PUBLIC contrib-libs-t1ha ) target_sources(blobstorage-testing-group_overseer PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_overseer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_state.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_overseer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_state.cpp ) diff --git a/ydb/core/blobstorage/testing/group_overseer/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/testing/group_overseer/CMakeLists.linux-x86_64.txt index 372c18f418a4..6cd423972175 100644 --- a/ydb/core/blobstorage/testing/group_overseer/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/testing/group_overseer/CMakeLists.linux-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(blobstorage-testing-group_overseer PUBLIC contrib-libs-t1ha ) target_sources(blobstorage-testing-group_overseer PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_overseer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_state.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_overseer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_state.cpp ) diff --git a/ydb/core/blobstorage/testing/group_overseer/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/testing/group_overseer/CMakeLists.windows-x86_64.txt index 65ce705be6dc..618263929d00 100644 --- a/ydb/core/blobstorage/testing/group_overseer/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/testing/group_overseer/CMakeLists.windows-x86_64.txt @@ -15,6 +15,9 @@ target_link_libraries(blobstorage-testing-group_overseer PUBLIC contrib-libs-t1ha ) target_sources(blobstorage-testing-group_overseer PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_overseer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_state.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_overseer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/testing/group_overseer/group_state.cpp ) diff --git a/ydb/core/blobstorage/ut_blobstorage/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/CMakeLists.darwin-arm64.txt index 207b619e9bce..45dbafa31b91 100644 --- a/ydb/core/blobstorage/ut_blobstorage/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/CMakeLists.darwin-arm64.txt @@ -7,6 +7,7 @@ add_subdirectory(lib) +add_subdirectory(ut_balancing) add_subdirectory(ut_blob_depot) add_subdirectory(ut_blob_depot_fat) add_subdirectory(ut_donor) @@ -33,8 +34,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_blobstorage PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/assimilation.cpp @@ -49,6 +48,7 @@ target_sources(ydb-core-blobstorage-ut_blobstorage PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/incorrect_queries.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/index_restore_get.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/main.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/mirror3dc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/mirror3of4.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/monitoring.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/recovery.cpp @@ -87,6 +87,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/CMakeLists.darwin-x86_64.txt index 2428e80682a9..0e4ff7a29c48 100644 --- a/ydb/core/blobstorage/ut_blobstorage/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/CMakeLists.darwin-x86_64.txt @@ -7,6 +7,7 @@ add_subdirectory(lib) +add_subdirectory(ut_balancing) add_subdirectory(ut_blob_depot) add_subdirectory(ut_blob_depot_fat) add_subdirectory(ut_donor) @@ -34,8 +35,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_blobstorage PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/assimilation.cpp @@ -50,6 +49,7 @@ target_sources(ydb-core-blobstorage-ut_blobstorage PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/incorrect_queries.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/index_restore_get.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/main.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/mirror3dc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/mirror3of4.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/monitoring.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/recovery.cpp @@ -88,6 +88,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_blobstorage/CMakeLists.linux-aarch64.txt index 994ec6ce40c9..7fc91b877652 100644 --- a/ydb/core/blobstorage/ut_blobstorage/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/CMakeLists.linux-aarch64.txt @@ -7,6 +7,7 @@ add_subdirectory(lib) +add_subdirectory(ut_balancing) add_subdirectory(ut_blob_depot) add_subdirectory(ut_blob_depot_fat) add_subdirectory(ut_donor) @@ -36,9 +37,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_blobstorage PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/assimilation.cpp @@ -53,6 +51,7 @@ target_sources(ydb-core-blobstorage-ut_blobstorage PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/incorrect_queries.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/index_restore_get.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/main.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/mirror3dc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/mirror3of4.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/monitoring.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/recovery.cpp @@ -91,6 +90,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/CMakeLists.linux-x86_64.txt index 8fdd87322a18..eb33b3473b6b 100644 --- a/ydb/core/blobstorage/ut_blobstorage/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/CMakeLists.linux-x86_64.txt @@ -7,6 +7,7 @@ add_subdirectory(lib) +add_subdirectory(ut_balancing) add_subdirectory(ut_blob_depot) add_subdirectory(ut_blob_depot_fat) add_subdirectory(ut_donor) @@ -37,9 +38,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_blobstorage PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/assimilation.cpp @@ -54,6 +52,7 @@ target_sources(ydb-core-blobstorage-ut_blobstorage PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/incorrect_queries.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/index_restore_get.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/main.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/mirror3dc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/mirror3of4.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/monitoring.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/recovery.cpp @@ -92,6 +91,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/CMakeLists.windows-x86_64.txt index 711abadf8a86..6c44db0c05d3 100644 --- a/ydb/core/blobstorage/ut_blobstorage/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/CMakeLists.windows-x86_64.txt @@ -7,6 +7,7 @@ add_subdirectory(lib) +add_subdirectory(ut_balancing) add_subdirectory(ut_blob_depot) add_subdirectory(ut_blob_depot_fat) add_subdirectory(ut_donor) @@ -43,6 +44,7 @@ target_sources(ydb-core-blobstorage-ut_blobstorage PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/incorrect_queries.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/index_restore_get.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/main.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/mirror3dc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/mirror3of4.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/monitoring.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/recovery.cpp @@ -81,6 +83,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/balancing.cpp b/ydb/core/blobstorage/ut_blobstorage/balancing.cpp index 983f9a674550..7a98768e0cfc 100644 --- a/ydb/core/blobstorage/ut_blobstorage/balancing.cpp +++ b/ydb/core/blobstorage/ut_blobstorage/balancing.cpp @@ -303,9 +303,11 @@ struct TRandomTest { ui32 pos = random() % Env->Settings.NodeCount; if (Env.RunningNodes.contains(pos)) { auto baseConfig = Env->FetchBaseConfig(); - const auto& somePDisk = baseConfig.GetPDisk(pos); const auto& someVSlot = baseConfig.GetVSlot(pos); - Env->Wipe(somePDisk.GetNodeId(), somePDisk.GetPDiskId(), someVSlot.GetVSlotId().GetVSlotId()); + const auto& loc = someVSlot.GetVSlotId(); + Env->Wipe(loc.GetNodeId(), loc.GetPDiskId(), loc.GetVSlotId(), + TVDiskID(someVSlot.GetGroupId(), someVSlot.GetGroupGeneration(), someVSlot.GetFailRealmIdx(), + someVSlot.GetFailDomainIdx(), someVSlot.GetVDiskIdx())); Env->Sim(TDuration::Seconds(10)); } } diff --git a/ydb/core/blobstorage/ut_blobstorage/gc.cpp b/ydb/core/blobstorage/ut_blobstorage/gc.cpp new file mode 100644 index 000000000000..80c779093259 --- /dev/null +++ b/ydb/core/blobstorage/ut_blobstorage/gc.cpp @@ -0,0 +1,22 @@ +#include + +Y_UNIT_TEST_SUITE(GarbageCollection) { + Y_UNIT_TEST(EmptyGcCmd) { + TEnvironmentSetup env({ + .Erasure = TBlobStorageGroupType::Erasure4Plus2Block, + }); + auto& runtime = env.Runtime; + + env.CreateBoxAndPool(1, 1); + auto info = env.GetGroupInfo(env.GetGroups().front()); + + auto ev = std::make_unique(1u, 1u, 1u, 0u, false, 0u, 0u, nullptr, nullptr, + TInstant::Max(), true); + const TActorId edge = runtime->AllocateEdgeActor(1, __FILE__, __LINE__); + runtime->WrapInActorContext(edge, [&] { + SendToBSProxy(edge, info->GroupID, ev.release()); + }); + auto res = env.WaitForEdgeActorEvent(edge); + UNIT_ASSERT_VALUES_EQUAL(res->Get()->Status, NKikimrProto::ERROR); + } +} diff --git a/ydb/core/blobstorage/ut_blobstorage/group_reconfiguration.cpp b/ydb/core/blobstorage/ut_blobstorage/group_reconfiguration.cpp index d6ff8bc331f0..13a4d7f36f5e 100644 --- a/ydb/core/blobstorage/ut_blobstorage/group_reconfiguration.cpp +++ b/ydb/core/blobstorage/ut_blobstorage/group_reconfiguration.cpp @@ -331,7 +331,7 @@ Y_UNIT_TEST_SUITE(GroupReconfiguration) { Timer.Reset(); auto ev = std::make_unique(); ev->Record.AddGroupIDs(GroupId); - NTabletPipe::SendData(SelfId(), ClientId, ev.release(), 0); + NTabletPipe::SendData(SelfId(), ClientId, ev.release(), Max()); } } diff --git a/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.darwin-arm64.txt index 2eaad09f8358..60160019c364 100644 --- a/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.darwin-arm64.txt @@ -13,6 +13,7 @@ target_link_libraries(blobstorage-ut_blobstorage-lib PUBLIC yutil cpp-digest-md5 cpp-testing-unittest + version_definition ydb-core-base ydb-core-blob_depot core-blobstorage-backpressure @@ -30,10 +31,18 @@ target_link_libraries(blobstorage-ut_blobstorage-lib PUBLIC core-tx-mediator core-tx-coordinator ydb-core-util + minikql-comp_nodes-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) target_sources(blobstorage-ut_blobstorage-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/activity.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/env.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_vdisk.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_bsc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_pipe.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_state.cpp diff --git a/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.darwin-x86_64.txt index 2eaad09f8358..60160019c364 100644 --- a/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.darwin-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(blobstorage-ut_blobstorage-lib PUBLIC yutil cpp-digest-md5 cpp-testing-unittest + version_definition ydb-core-base ydb-core-blob_depot core-blobstorage-backpressure @@ -30,10 +31,18 @@ target_link_libraries(blobstorage-ut_blobstorage-lib PUBLIC core-tx-mediator core-tx-coordinator ydb-core-util + minikql-comp_nodes-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) target_sources(blobstorage-ut_blobstorage-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/activity.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/env.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_vdisk.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_bsc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_pipe.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_state.cpp diff --git a/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.linux-aarch64.txt index 80ebb80f6f95..26965076f973 100644 --- a/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.linux-aarch64.txt @@ -14,6 +14,7 @@ target_link_libraries(blobstorage-ut_blobstorage-lib PUBLIC yutil cpp-digest-md5 cpp-testing-unittest + version_definition ydb-core-base ydb-core-blob_depot core-blobstorage-backpressure @@ -31,10 +32,18 @@ target_link_libraries(blobstorage-ut_blobstorage-lib PUBLIC core-tx-mediator core-tx-coordinator ydb-core-util + minikql-comp_nodes-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) target_sources(blobstorage-ut_blobstorage-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/activity.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/env.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_vdisk.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_bsc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_pipe.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_state.cpp diff --git a/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.linux-x86_64.txt index 80ebb80f6f95..26965076f973 100644 --- a/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.linux-x86_64.txt @@ -14,6 +14,7 @@ target_link_libraries(blobstorage-ut_blobstorage-lib PUBLIC yutil cpp-digest-md5 cpp-testing-unittest + version_definition ydb-core-base ydb-core-blob_depot core-blobstorage-backpressure @@ -31,10 +32,18 @@ target_link_libraries(blobstorage-ut_blobstorage-lib PUBLIC core-tx-mediator core-tx-coordinator ydb-core-util + minikql-comp_nodes-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) target_sources(blobstorage-ut_blobstorage-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/activity.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/env.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_vdisk.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_bsc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_pipe.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_state.cpp diff --git a/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.windows-x86_64.txt index 2eaad09f8358..60160019c364 100644 --- a/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/lib/CMakeLists.windows-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(blobstorage-ut_blobstorage-lib PUBLIC yutil cpp-digest-md5 cpp-testing-unittest + version_definition ydb-core-base ydb-core-blob_depot core-blobstorage-backpressure @@ -30,10 +31,18 @@ target_link_libraries(blobstorage-ut_blobstorage-lib PUBLIC core-tx-mediator core-tx-coordinator ydb-core-util + minikql-comp_nodes-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) target_sources(blobstorage-ut_blobstorage-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/activity.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/common.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/env.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_vdisk.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_bsc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_pipe.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/lib/node_warden_mock_state.cpp diff --git a/ydb/core/blobstorage/ut_blobstorage/lib/env.h b/ydb/core/blobstorage/ut_blobstorage/lib/env.h index 6c8bc1f9538a..f9c0ddd02fe1 100644 --- a/ydb/core/blobstorage/ut_blobstorage/lib/env.h +++ b/ydb/core/blobstorage/ut_blobstorage/lib/env.h @@ -23,6 +23,10 @@ struct TEnvironmentSetup { std::set CommencedReplication; std::unordered_map Cache; + using TIcbControlKey = std::pair; // { nodeId, name } + + std::unordered_map IcbControls; + struct TSettings { const ui32 NodeCount = 9; const bool VDiskReplPausedAtStart = false; @@ -38,6 +42,9 @@ struct TEnvironmentSetup { const bool SetupHive = false; const bool SuppressCompatibilityCheck = false; const TFeatureFlags FeatureFlags; + const NPDisk::EDeviceType DiskType = NPDisk::EDeviceType::DEVICE_TYPE_NVME; + const ui64 BurstThresholdNs = 0; + const float DiskTimeAvailableScale = 1; }; const TSettings Settings; @@ -55,7 +62,8 @@ struct TEnvironmentSetup { const auto key = std::make_pair(nodeId, pdiskId); TIntrusivePtr& state = Env.PDiskMockStates[key]; if (!state) { - state.Reset(new TPDiskMockState(nodeId, pdiskId, cfg->PDiskGuid, ui64(10) << 40, cfg->ChunkSize)); + state.Reset(new TPDiskMockState(nodeId, pdiskId, cfg->PDiskGuid, ui64(10) << 40, cfg->ChunkSize, + Env.Settings.DiskType)); } const TActorId& actorId = ctx.Register(CreatePDiskMockActor(state), TMailboxType::HTSwap, poolId); const TActorId& serviceId = MakeBlobStoragePDiskID(nodeId, pdiskId); @@ -321,6 +329,26 @@ struct TEnvironmentSetup { config->CacheAccessor = std::make_unique(Cache[nodeId]); } config->FeatureFlags = Settings.FeatureFlags; + + TAppData* appData = Runtime->GetNode(nodeId)->AppData.get(); + +#define ADD_ICB_CONTROL(controlName, defaultVal, minVal, maxVal, currentValue) { \ + TControlWrapper control(defaultVal, minVal, maxVal); \ + appData->Icb->RegisterSharedControl(control, controlName); \ + control = currentValue; \ + IcbControls.insert({{nodeId, controlName}, std::move(control)}); \ + } + + if (Settings.BurstThresholdNs) { + ADD_ICB_CONTROL("VDiskControls.BurstThresholdNsHDD", 200'000'000, 1, 1'000'000'000'000, Settings.BurstThresholdNs); + ADD_ICB_CONTROL("VDiskControls.BurstThresholdNsSSD", 50'000'000, 1, 1'000'000'000'000, Settings.BurstThresholdNs); + ADD_ICB_CONTROL("VDiskControls.BurstThresholdNsNVME", 32'000'000, 1, 1'000'000'000'000, Settings.BurstThresholdNs); + } + ADD_ICB_CONTROL("VDiskControls.DiskTimeAvailableScaleHDD", 1'000, 1, 1'000'000, std::round(Settings.DiskTimeAvailableScale * 1'000)); + ADD_ICB_CONTROL("VDiskControls.DiskTimeAvailableScaleSSD", 1'000, 1, 1'000'000, std::round(Settings.DiskTimeAvailableScale * 1'000)); + ADD_ICB_CONTROL("VDiskControls.DiskTimeAvailableScaleNVME", 1'000, 1, 1'000'000, std::round(Settings.DiskTimeAvailableScale * 1'000)); +#undef ADD_ICB_CONTROL + warden.reset(CreateBSNodeWarden(config)); } @@ -751,17 +779,20 @@ struct TEnvironmentSetup { Sim(TDuration::Seconds(15)); } - void Wipe(ui32 nodeId, ui32 pdiskId, ui32 vslotId) { - const TActorId self = Runtime->AllocateEdgeActor(Settings.ControllerNodeId, __FILE__, __LINE__); - auto ev = std::make_unique(); - auto& record = ev->Record; - auto *vslot = record.MutableVSlotId(); + void Wipe(ui32 nodeId, ui32 pdiskId, ui32 vslotId, const TVDiskID& vdiskId) { + NKikimrBlobStorage::TConfigRequest request; + request.SetIgnoreGroupFailModelChecks(true); + request.SetIgnoreDegradedGroupsChecks(true); + request.SetIgnoreDisintegratedGroupsChecks(true); + auto *cmd = request.AddCommand(); + auto *wipe = cmd->MutableWipeVDisk(); + auto *vslot = wipe->MutableVSlotId(); vslot->SetNodeId(nodeId); vslot->SetPDiskId(pdiskId); vslot->SetVSlotId(vslotId); - Runtime->SendToPipe(TabletId, self, ev.release(), 0, TTestActorSystem::GetPipeConfigWithRetries()); - auto response = WaitForEdgeActorEvent(self); - UNIT_ASSERT_VALUES_EQUAL(response->Get()->Record.GetStatus(), NKikimrProto::OK); + VDiskIDFromVDiskID(vdiskId, wipe->MutableVDiskId()); + auto response = Invoke(request); + UNIT_ASSERT_C(response.GetSuccess(), response.GetErrorDescription()); } void WaitForVDiskToGetRunning(const TVDiskID& vdiskId, TActorId actorId) { @@ -814,4 +845,44 @@ struct TEnvironmentSetup { return SyncQueryFactory(actorId, [&] { return std::make_unique(args...); }); } + ui64 AggregateVDiskCounters(TString storagePool, ui32 nodesCount, ui32 groupSize, ui32 groupId, + const std::vector& pdiskLayout, TString subsystem, TString counter, bool derivative = false) { + ui64 ctr = 0; + + for (ui32 nodeId = 1; nodeId <= nodesCount; ++nodeId) { + auto* appData = Runtime->GetNode(nodeId)->AppData.get(); + for (ui32 i = 0; i < groupSize; ++i) { + TStringStream ss; + ss << LeftPad(i, 2, '0'); + TString orderNumber = ss.Str(); + ss.Clear(); + ss << LeftPad(pdiskLayout[i], 9, '0'); + TString pdisk = ss.Str(); + ctr += GetServiceCounters(appData->Counters, "vdisks")-> + GetSubgroup("storagePool", storagePool)-> + GetSubgroup("group", std::to_string(groupId))-> + GetSubgroup("orderNumber", orderNumber)-> + GetSubgroup("pdisk", pdisk)-> + GetSubgroup("media", "rot")-> + GetSubgroup("subsystem", subsystem)-> + GetCounter(counter, derivative)->Val(); + } + } + return ctr; + }; + + void SetIcbControl(ui32 nodeId, TString controlName, ui64 value) { + if (nodeId == 0) { + for (nodeId = 1; nodeId <= Settings.NodeCount; ++nodeId) { + auto it = IcbControls.find({nodeId, controlName}); + Y_ABORT_UNLESS(it != IcbControls.end()); + it->second = value; + } + } else { + auto it = IcbControls.find({nodeId, controlName}); + Y_ABORT_UNLESS(it != IcbControls.end()); + it->second = value; + } + } + }; diff --git a/ydb/core/blobstorage/ut_blobstorage/lib/ya.make b/ydb/core/blobstorage/ut_blobstorage/lib/ya.make index 0572ce32b6a4..58b44a1be8e2 100644 --- a/ydb/core/blobstorage/ut_blobstorage/lib/ya.make +++ b/ydb/core/blobstorage/ut_blobstorage/lib/ya.make @@ -16,6 +16,7 @@ SRCS( PEERDIR( library/cpp/digest/md5 library/cpp/testing/unittest + ydb/apps/version ydb/core/base ydb/core/blob_depot ydb/core/blobstorage/backpressure diff --git a/ydb/core/blobstorage/ut_blobstorage/mirror3of4.cpp b/ydb/core/blobstorage/ut_blobstorage/mirror3of4.cpp index b9ffea9da2c4..2e6dcf73138c 100644 --- a/ydb/core/blobstorage/ut_blobstorage/mirror3of4.cpp +++ b/ydb/core/blobstorage/ut_blobstorage/mirror3of4.cpp @@ -65,26 +65,10 @@ Y_UNIT_TEST_SUITE(Mirror3of4) { UNIT_ASSERT_VALUES_EQUAL(res->Get()->Status, NKikimrProto::OK); } if (i == 500) { - const TActorId self = runtime->AllocateEdgeActor(1); - auto ev = std::make_unique(); - ev->Record.MutableVSlotId()->SetNodeId(2); - ev->Record.MutableVSlotId()->SetPDiskId(1000); - ev->Record.MutableVSlotId()->SetVSlotId(1000); - runtime->SendToPipe(env.TabletId, self, ev.release(), 0, TTestActorSystem::GetPipeConfigWithRetries()); - auto response = env.WaitForEdgeActorEvent(self); - auto& r = response->Get()->Record; - UNIT_ASSERT_EQUAL(r.GetStatus(), NKikimrProto::OK); + env.Wipe(2, 1000, 1000, TVDiskID(groupId, 1, 0, 1, 0)); } if (i == 600) { - const TActorId self = runtime->AllocateEdgeActor(1); - auto ev = std::make_unique(); - ev->Record.MutableVSlotId()->SetNodeId(3); - ev->Record.MutableVSlotId()->SetPDiskId(1000); - ev->Record.MutableVSlotId()->SetVSlotId(1000); - runtime->SendToPipe(env.TabletId, self, ev.release(), 0, TTestActorSystem::GetPipeConfigWithRetries()); - auto response = env.WaitForEdgeActorEvent(self); - auto& r = response->Get()->Record; - UNIT_ASSERT_EQUAL(r.GetStatus(), NKikimrProto::OK); + env.Wipe(3, 1000, 1000, TVDiskID(groupId, 1, 0, 2, 0)); } } diff --git a/ydb/core/blobstorage/ut_blobstorage/monitoring.cpp b/ydb/core/blobstorage/ut_blobstorage/monitoring.cpp index 2af16506ab5e..243991276d72 100644 --- a/ydb/core/blobstorage/ut_blobstorage/monitoring.cpp +++ b/ydb/core/blobstorage/ut_blobstorage/monitoring.cpp @@ -1,5 +1,6 @@ #include #include +#include "ut_helpers.h" constexpr bool VERBOSE = false; @@ -11,181 +12,118 @@ TString MakeData(ui32 dataSize) { return data; } -template -class TInflightActor : public TActorBootstrapped { -public: - TInflightActor(ui32 requests, ui32 inflight) - : RequestCount(requests) - , RequestInflight(inflight) - {} +ui64 AggregateVDiskCounters(std::unique_ptr& env, const NKikimrBlobStorage::TBaseConfig& baseConfig, + TString storagePool, ui32 groupSize, ui32 groupId, const std::vector& pdiskLayout, TString subsystem, + TString counter, bool derivative = false) { + ui64 ctr = 0; - virtual ~TInflightActor() = default; - - void SetGroupId(ui32 groupId) { - GroupId = groupId; - } - void Bootstrap(const TActorContext &ctx) { - BootstrapImpl(ctx); - } - -protected: - void SendRequests() { - while (RequestInflight > 0 && RequestCount > 0) { - RequestInflight--; - RequestCount--; - SendRequest(); - } - } - - void HandleReply(NKikimrProto::EReplyStatus status) { - if (status == NKikimrProto::OK) { - OKs++; - } else { - Fails++; + for (const auto& vslot : baseConfig.GetVSlot()) { + auto* appData = env->Runtime->GetNode(vslot.GetVSlotId().GetNodeId())->AppData.get(); + for (ui32 i = 0; i < groupSize; ++i) { + ctr += GetServiceCounters(appData->Counters, "vdisks")-> + GetSubgroup("storagePool", storagePool)-> + GetSubgroup("group", std::to_string(groupId))-> + GetSubgroup("orderNumber", "0" + std::to_string(i))-> + GetSubgroup("pdisk", "00000" + std::to_string(pdiskLayout[i]))-> + GetSubgroup("media", "rot")-> + GetSubgroup("subsystem", subsystem)-> + GetCounter(counter, derivative)->Val(); } - ++RequestInflight; - SendRequests(); } - - virtual void BootstrapImpl(const TActorContext &ctx) = 0; - virtual void SendRequest() = 0; - -protected: - ui32 RequestCount; - ui32 RequestInflight; - ui32 GroupId; - -public: - ui32 OKs = 0; - ui32 Fails = 0; + return ctr; }; -template -void Test(const TBlobStorageGroupInfo::TTopology& topology, TInflightActor* actor) { - const ui32 groupSize = topology.TotalVDisks; - const auto& groupErasure = topology.GType; - TEnvironmentSetup env{{ +void SetupEnv(const TBlobStorageGroupInfo::TTopology& topology, std::unique_ptr& env, + NKikimrBlobStorage::TBaseConfig& baseConfig, ui32& groupSize, TBlobStorageGroupType& groupType, + ui32& groupId, std::vector& pdiskLayout, ui32 burstThresholdNs = 0, float diskTimeAvailableScale = 1) { + groupSize = topology.TotalVDisks; + groupType = topology.GType; + env.reset(new TEnvironmentSetup({ .NodeCount = groupSize, - .Erasure = groupErasure, - }}; + .Erasure = groupType, + .DiskType = NPDisk::EDeviceType::DEVICE_TYPE_ROT, + .BurstThresholdNs = burstThresholdNs, + .DiskTimeAvailableScale = diskTimeAvailableScale, + })); - env.CreateBoxAndPool(1, 1); - env.Sim(TDuration::Seconds(30)); + env->CreateBoxAndPool(1, 1); + env->Sim(TDuration::Seconds(30)); NKikimrBlobStorage::TConfigRequest request; request.AddCommand()->MutableQueryBaseConfig(); - auto response = env.Invoke(request); + auto response = env->Invoke(request); - const auto& baseConfig = response.GetStatus(0).GetBaseConfig(); + baseConfig = response.GetStatus(0).GetBaseConfig(); UNIT_ASSERT_VALUES_EQUAL(baseConfig.GroupSize(), 1); - ui32 groupId = baseConfig.GetGroup(0).GetGroupId(); - std::vector pdiskIds(groupSize); + groupId = baseConfig.GetGroup(0).GetGroupId(); + pdiskLayout.resize(groupSize); for (const auto& vslot : baseConfig.GetVSlot()) { const auto& vslotId = vslot.GetVSlotId(); ui32 orderNumber = topology.GetOrderNumber(TVDiskIdShort(vslot.GetFailRealmIdx(), vslot.GetFailDomainIdx(), vslot.GetVDiskIdx())); if (vslot.GetGroupId() == groupId) { - pdiskIds[orderNumber] = vslotId.GetPDiskId(); + pdiskLayout[orderNumber] = vslotId.GetPDiskId(); } } +} + +template +void TestDSProxyAndVDiskEqualCost(const TBlobStorageGroupInfo::TTopology& topology, TInflightActor* actor) { + std::unique_ptr env; + NKikimrBlobStorage::TBaseConfig baseConfig; + ui32 groupSize; + TBlobStorageGroupType groupType; + ui32 groupId; + std::vector pdiskLayout; + SetupEnv(topology, env, baseConfig, groupSize, groupType, groupId, pdiskLayout); ui64 dsproxyCost = 0; ui64 vdiskCost = 0; - auto vdisksTotal = [&](TString subsystem, TString counter, bool derivative = false) { - ui64 ctr = 0; - for (const auto& vslot : baseConfig.GetVSlot()) { - auto* appData = env.Runtime->GetNode(vslot.GetVSlotId().GetNodeId())->AppData.get(); - for (ui32 i = 0; i < groupSize; ++i) { - ctr += GetServiceCounters(appData->Counters, "vdisks")-> - GetSubgroup("storagePool", env.StoragePoolName)-> - GetSubgroup("group", std::to_string(groupId))-> - GetSubgroup("orderNumber", "0" + std::to_string(i))-> - GetSubgroup("pdisk", "00000" + std::to_string(pdiskIds[i]))-> - GetSubgroup("media", "rot")-> - GetSubgroup("subsystem", subsystem)-> - GetCounter(counter, derivative)->Val(); - } - } - return ctr; - }; - auto updateCounters = [&]() { + dsproxyCost = 0; + for (const auto& vslot : baseConfig.GetVSlot()) { - auto* appData = env.Runtime->GetNode(vslot.GetVSlotId().GetNodeId())->AppData.get(); + auto* appData = env->Runtime->GetNode(vslot.GetVSlotId().GetNodeId())->AppData.get(); dsproxyCost += GetServiceCounters(appData->Counters, "dsproxynode")-> GetSubgroup("subsystem", "request")-> - GetSubgroup("storagePool", env.StoragePoolName)-> + GetSubgroup("storagePool", env->StoragePoolName)-> GetCounter("DSProxyDiskCostNs")->Val(); } - vdiskCost = vdisksTotal("cost", "SkeletonFrontUserCostNs"); + vdiskCost = AggregateVDiskCounters(env, baseConfig, env->StoragePoolName, groupSize, groupId, + pdiskLayout, "cost", "SkeletonFrontUserCostNs"); }; updateCounters(); UNIT_ASSERT_VALUES_EQUAL(dsproxyCost, vdiskCost); actor->SetGroupId(groupId); - env.Runtime->Register(actor, 1); - env.Sim(TDuration::Minutes(15)); + env->Runtime->Register(actor, 1); + env->Sim(TDuration::Minutes(15)); updateCounters(); TStringStream str; double proportion = 1. * dsproxyCost / vdiskCost; i64 diff = (i64)dsproxyCost - vdiskCost; - str << "OKs# " << actor->OKs << ", Fails# " << actor->Fails << ", Cost on dsproxy# " - << dsproxyCost << ", Cost on vdisks# " << vdiskCost << ", proportion# " << proportion + str << "OKs# " << actor->ResponsesByStatus[NKikimrProto::OK] << ", Errors# " << actor->ResponsesByStatus[NKikimrProto::ERROR] + << ", Cost on dsproxy# " << dsproxyCost << ", Cost on vdisks# " << vdiskCost << ", proportion# " << proportion << " diff# " << diff; if constexpr(VERBOSE) { Cerr << str.Str() << Endl; + // env->Runtime->GetAppData()->Counters->OutputPlainText(Cerr); } UNIT_ASSERT_VALUES_EQUAL_C(dsproxyCost, vdiskCost, str.Str()); } -class TInflightActorPut : public TInflightActor { -public: - TInflightActorPut(ui32 requests, ui32 inflight, ui32 dataSize = 1024) - : TInflightActor(requests, inflight) - , DataSize(dataSize) - {} - - STRICT_STFUNC(StateWork, - cFunc(TEvBlobStorage::TEvStatusResult::EventType, SendRequests); - hFunc(TEvBlobStorage::TEvPutResult, Handle); - ) - - virtual void BootstrapImpl(const TActorContext&/* ctx*/) override { - // dummy request to establish the session - auto ev = new TEvBlobStorage::TEvStatus(TInstant::Max()); - SendToBSProxy(SelfId(), GroupId, ev, 0); - Become(&TInflightActorPut::StateWork); - } - -protected: - virtual void SendRequest() override { - TString data = MakeData(DataSize); - auto ev = new TEvBlobStorage::TEvPut(TLogoBlobID(1, 1, 1, 10, DataSize, RequestCount + 1), - data, TInstant::Max(), NKikimrBlobStorage::UserData); - SendToBSProxy(SelfId(), GroupId, ev, 0); - } - - void Handle(TEvBlobStorage::TEvPutResult::TPtr res) { - HandleReply(res->Get()->Status); - } - -private: - std::string Data; - ui32 DataSize; -}; - #define MAKE_TEST(erasure, requestType, requests, inflight) \ Y_UNIT_TEST(Test##requestType##erasure##Requests##requests##Inflight##inflight) { \ auto groupType = TBlobStorageGroupType::Erasure##erasure; \ ui32 realms = (groupType == TBlobStorageGroupType::ErasureMirror3dc) ? 3 : 1; \ ui32 domains = (groupType == TBlobStorageGroupType::ErasureMirror3dc) ? 3 : 8; \ TBlobStorageGroupInfo::TTopology topology(groupType, realms, domains, 1, true); \ - auto actor = new TInflightActor##requestType(requests, inflight); \ - Test(topology, actor); \ + auto actor = new TInflightActor##requestType({requests, inflight}); \ + TestDSProxyAndVDiskEqualCost(topology, actor); \ } #define MAKE_TEST_W_DATASIZE(erasure, requestType, requests, inflight, dataSize) \ @@ -194,102 +132,10 @@ Y_UNIT_TEST(Test##requestType##erasure##Requests##requests##Inflight##inflight## ui32 realms = (groupType == TBlobStorageGroupType::ErasureMirror3dc) ? 3 : 1; \ ui32 domains = (groupType == TBlobStorageGroupType::ErasureMirror3dc) ? 3 : 8; \ TBlobStorageGroupInfo::TTopology topology(groupType, realms, domains, 1, true); \ - auto actor = new TInflightActor##requestType(requests, inflight, dataSize); \ - Test(topology, actor); \ + auto actor = new TInflightActor##requestType({requests, inflight}, dataSize); \ + TestDSProxyAndVDiskEqualCost(topology, actor); \ } -class TInflightActorGet : public TInflightActor { -public: - TInflightActorGet(ui32 requests, ui32 inflight, ui32 dataSize = 1024) - : TInflightActor(requests, inflight) - , DataSize(dataSize) - {} - - STRICT_STFUNC(StateWork, - cFunc(TEvBlobStorage::TEvPutResult::EventType, SendRequests); - hFunc(TEvBlobStorage::TEvGetResult, Handle); - ) - - virtual void BootstrapImpl(const TActorContext&/* ctx*/) override { - TString data = MakeData(DataSize); - BlobId = TLogoBlobID(1, 1, 1, 10, DataSize, 1); - auto ev = new TEvBlobStorage::TEvPut(BlobId, data, TInstant::Max()); - SendToBSProxy(SelfId(), GroupId, ev, 0); - Become(&TInflightActorGet::StateWork); - } - -protected: - virtual void SendRequest() override { - auto ev = new TEvBlobStorage::TEvGet(BlobId, 0, 10, TInstant::Max(), NKikimrBlobStorage::EGetHandleClass::FastRead); - SendToBSProxy(SelfId(), GroupId, ev, 0); - } - - void Handle(TEvBlobStorage::TEvGetResult::TPtr res) { - HandleReply(res->Get()->Status); - } - -private: - TLogoBlobID BlobId; - std::string Data; - ui32 DataSize; -}; - -class TInflightActorPatch : public TInflightActor { -public: - TInflightActorPatch(ui32 requests, ui32 inflight, ui32 dataSize = 1024) - : TInflightActor(requests, inflight) - , DataSize(dataSize) - {} - - STRICT_STFUNC(StateWork, - hFunc(TEvBlobStorage::TEvPatchResult, Handle); - hFunc(TEvBlobStorage::TEvPutResult, Handle); - ) - - virtual void BootstrapImpl(const TActorContext&/* ctx*/) override { - TString data = MakeData(DataSize); - for (ui32 i = 0; i < RequestInflight; ++i) { - TLogoBlobID blobId(1, 1, 1, 10, DataSize, 1 + i); - auto ev = new TEvBlobStorage::TEvPut(blobId, data, TInstant::Max()); - SendToBSProxy(SelfId(), GroupId, ev, 0); - } - Become(&TInflightActorPatch::StateWork); - } - -protected: - virtual void SendRequest() override { - TLogoBlobID oldId = Blobs.front(); - Blobs.pop_front(); - TLogoBlobID newId(1, 1, oldId.Step() + 1, 10, DataSize, oldId.Cookie()); - Y_ABORT_UNLESS(TEvBlobStorage::TEvPatch::GetBlobIdWithSamePlacement(oldId, &newId, BlobIdMask, GroupId, GroupId)); - TArrayHolder diffs(new TEvBlobStorage::TEvPatch::TDiff[1]); - char c = 'a' + RequestCount % 26; - diffs[0].Set(TString(DataSize, c), 0); - auto ev = new TEvBlobStorage::TEvPatch(GroupId, oldId, newId, BlobIdMask, std::move(diffs), 1, TInstant::Max()); - SendToBSProxy(SelfId(), GroupId, ev, 0); - } - - - void Handle(TEvBlobStorage::TEvPatchResult::TPtr res) { - Blobs.push_back(res->Get()->Id); - HandleReply(res->Get()->Status); - } - - void Handle(TEvBlobStorage::TEvPutResult::TPtr res) { - Blobs.push_back(res->Get()->Id); - if (++BlobsWritten == RequestInflight) { - SendRequests(); - } - } - -protected: - std::deque Blobs; - ui32 BlobIdMask = TLogoBlobID::MaxCookie & 0xfffff000; - ui32 BlobsWritten = 0; - std::string Data; - ui32 DataSize; -}; - Y_UNIT_TEST_SUITE(CostMetricsPutMirror3dc) { MAKE_TEST_W_DATASIZE(Mirror3dc, Put, 1, 1, 1000); MAKE_TEST_W_DATASIZE(Mirror3dc, Put, 10, 1, 1000); @@ -368,3 +214,82 @@ Y_UNIT_TEST_SUITE(CostMetricsPatchBlock4Plus2) { MAKE_TEST_W_DATASIZE(4Plus2Block, Patch, 100, 10, 1000); MAKE_TEST_W_DATASIZE(4Plus2Block, Patch, 10000, 100, 1000); } + +enum class ELoadDistribution : ui8 { + DistributionBurst = 0, + DistributionEvenly, +}; + +template +void TestBurst(ui32 requests, ui32 inflight, TDuration delay, ELoadDistribution loadDistribution, + ui32 burstThresholdNs = 0, float diskTimeAvailableScale = 1) { + TBlobStorageGroupInfo::TTopology topology(TBlobStorageGroupType::ErasureNone, 1, 1, 1, true); + auto* actor = new TInflightActor({requests, inflight, delay}, 8_MB); + std::unique_ptr env; + NKikimrBlobStorage::TBaseConfig baseConfig; + ui32 groupSize; + TBlobStorageGroupType groupType; + ui32 groupId; + std::vector pdiskLayout; + SetupEnv(topology, env, baseConfig, groupSize, groupType, groupId, pdiskLayout, burstThresholdNs, diskTimeAvailableScale); + + actor->SetGroupId(groupId); + env->Runtime->Register(actor, 1); + env->Sim(TDuration::Minutes(10)); + + ui64 redMs = AggregateVDiskCounters(env, baseConfig, env->StoragePoolName, groupSize, groupId, + pdiskLayout, "advancedCost", "BurstDetector_redMs"); + + if (loadDistribution == ELoadDistribution::DistributionBurst) { + UNIT_ASSERT_VALUES_UNEQUAL(redMs, 0); + } else { + UNIT_ASSERT_VALUES_EQUAL(redMs, 0); + } +} + +Y_UNIT_TEST_SUITE(BurstDetection) { + Y_UNIT_TEST(TestPutEvenly) { + TestBurst(10, 1, TDuration::Seconds(1), ELoadDistribution::DistributionEvenly); + } + + Y_UNIT_TEST(TestPutBurst) { + TestBurst(10, 10, TDuration::MilliSeconds(1), ELoadDistribution::DistributionBurst); + } + + Y_UNIT_TEST(TestOverlySensitive) { + TestBurst(10, 1, TDuration::Seconds(1), ELoadDistribution::DistributionBurst, 1); + } +} + +void TestDiskTimeAvailableScaling() { + TBlobStorageGroupInfo::TTopology topology(TBlobStorageGroupType::ErasureNone, 1, 1, 1, true); + std::unique_ptr env; + NKikimrBlobStorage::TBaseConfig baseConfig; + ui32 groupSize; + TBlobStorageGroupType groupType; + ui32 groupId; + std::vector pdiskLayout; + SetupEnv(topology, env, baseConfig, groupSize, groupType, groupId, pdiskLayout, 0, 1); + + i64 test1 = env->AggregateVDiskCounters(env->StoragePoolName, groupSize, groupSize, groupId, pdiskLayout, + "advancedCost", "DiskTimeAvailable"); + + env->SetIcbControl(0, "VDiskControls.DiskTimeAvailableScaleNVME", 2'000); + env->Sim(TDuration::Minutes(5)); + + i64 test2 = env->AggregateVDiskCounters(env->StoragePoolName, groupSize, groupSize, groupId, pdiskLayout, + "advancedCost", "DiskTimeAvailable"); + + i64 delta = test1 * 2 - test2; + + UNIT_ASSERT_LE_C(std::abs(delta), 10, "Total time available: with scale=1 time=" << test1 << + ", with scale=2 time=" << test2); +} + +Y_UNIT_TEST_SUITE(DiskTimeAvailable) { + Y_UNIT_TEST(Scaling) { + TestDiskTimeAvailableScaling(); + } +} + +#undef MAKE_BURST_TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/osiris.cpp b/ydb/core/blobstorage/ut_blobstorage/osiris.cpp index 39cbaf9f4a9b..d818edff1c0c 100644 --- a/ydb/core/blobstorage/ut_blobstorage/osiris.cpp +++ b/ydb/core/blobstorage/ut_blobstorage/osiris.cpp @@ -62,15 +62,8 @@ bool DoTestCase(TBlobStorageGroupType::EErasureSpecies erasure, const std::setAllocateEdgeActor(1); - auto ev = std::make_unique(); - auto *slotId = ev->Record.MutableVSlotId(); - slotId->CopyFrom(vslot.GetVSlotId()); - env.Runtime->SendToPipe(env.TabletId, sender, ev.release(), 0, TTestActorSystem::GetPipeConfigWithRetries()); - auto response = env.WaitForEdgeActorEvent(sender); - Y_ABORT_UNLESS(response->Get()->Record.GetStatus() == NKikimrProto::OK); - + const auto& v = vslot.GetVSlotId(); + env.Wipe(v.GetNodeId(), v.GetPDiskId(), v.GetVSlotId(), vdiskId); env.Sim(TDuration::Seconds(30)); } diff --git a/ydb/core/blobstorage/ut_blobstorage/scrub_fast.cpp b/ydb/core/blobstorage/ut_blobstorage/scrub_fast.cpp index 4ceb6595d927..2e24b5318d41 100644 --- a/ydb/core/blobstorage/ut_blobstorage/scrub_fast.cpp +++ b/ydb/core/blobstorage/ut_blobstorage/scrub_fast.cpp @@ -16,60 +16,125 @@ void Test() { TString data = TString::Uninitialized(8_MB); memset(data.Detach(), 'X', data.size()); - TLogoBlobID id(1, 1, 1, 0, data.size(), 0); - - { // write data to group - TActorId sender = runtime->AllocateEdgeActor(1); - runtime->WrapInActorContext(sender, [&] { - SendToBSProxy(sender, info->GroupID, new TEvBlobStorage::TEvPut(id, data, TInstant::Max())); - }); - auto res = env.WaitForEdgeActorEvent(sender); - UNIT_ASSERT_VALUES_EQUAL(res->Get()->Status, NKikimrProto::OK); - } - auto checkReadable = [&](NKikimrProto::EReplyStatus status) { - TActorId sender = runtime->AllocateEdgeActor(1); - runtime->WrapInActorContext(sender, [&] { - SendToBSProxy(sender, info->GroupID, new TEvBlobStorage::TEvGet(id, 0, 0, TInstant::Max(), - NKikimrBlobStorage::EGetHandleClass::FastRead)); - }); - auto res = env.WaitForEdgeActorEvent(sender); - UNIT_ASSERT_VALUES_EQUAL(res->Get()->Status, NKikimrProto::OK); - UNIT_ASSERT_VALUES_EQUAL(res->Get()->ResponseSz, 1); - auto& r = res->Get()->Responses[0]; - UNIT_ASSERT_VALUES_EQUAL(r.Status, status); - if (status == NKikimrProto::OK) { - UNIT_ASSERT_VALUES_EQUAL(r.Buffer.ConvertToString(), data); + for (ui32 step = 1; step < 100; ++step) { + TLogoBlobID id(1, 1, step, 0, data.size(), 0); + + { // write data to group + TActorId sender = runtime->AllocateEdgeActor(1); + runtime->WrapInActorContext(sender, [&] { + SendToBSProxy(sender, info->GroupID, new TEvBlobStorage::TEvPut(id, data, TInstant::Max())); + }); + auto res = env.WaitForEdgeActorEvent(sender); + UNIT_ASSERT_VALUES_EQUAL(res->Get()->Status, NKikimrProto::OK); } - }; - checkReadable(NKikimrProto::OK); + auto checkReadable = [&] { + TActorId sender = runtime->AllocateEdgeActor(1); + runtime->WrapInActorContext(sender, [&] { + SendToBSProxy(sender, info->GroupID, new TEvBlobStorage::TEvGet(id, 0, 0, TInstant::Max(), + NKikimrBlobStorage::EGetHandleClass::FastRead)); + }); + auto res = env.WaitForEdgeActorEvent(sender); + UNIT_ASSERT_VALUES_EQUAL(res->Get()->Status, NKikimrProto::OK); + UNIT_ASSERT_VALUES_EQUAL(res->Get()->ResponseSz, 1); + auto& r = res->Get()->Responses[0]; + UNIT_ASSERT_VALUES_EQUAL(r.Status, NKikimrProto::OK); + UNIT_ASSERT_VALUES_EQUAL(r.Buffer.ConvertToString(), data); + + ui32 partsMask = 0; + for (ui32 i = 0; i < info->GetTotalVDisksNum(); ++i) { + const TVDiskID& vdiskId = info->GetVDiskId(i); + env.WithQueueId(vdiskId, NKikimrBlobStorage::EVDiskQueueId::GetFastRead, [&](TActorId queueId) { + const TActorId sender = runtime->AllocateEdgeActor(1); + auto ev = TEvBlobStorage::TEvVGet::CreateExtremeDataQuery(vdiskId, TInstant::Max(), + NKikimrBlobStorage::EGetHandleClass::FastRead); + ev->AddExtremeQuery(id, 0, 0); + runtime->Send(new IEventHandle(queueId, sender, ev.release()), sender.NodeId()); + auto reply = env.WaitForEdgeActorEvent(sender); + auto& record = reply->Get()->Record; + UNIT_ASSERT_VALUES_EQUAL(record.GetStatus(), NKikimrProto::OK); + UNIT_ASSERT_VALUES_EQUAL(record.ResultSize(), 1); + for (const auto& result : record.GetResult()) { + if (result.GetStatus() == NKikimrProto::OK) { + const TLogoBlobID& id = LogoBlobIDFromLogoBlobID(result.GetBlobID()); + UNIT_ASSERT(id.PartId()); + const ui32 partIdx = id.PartId() - 1; + const ui32 mask = 1 << partIdx; + UNIT_ASSERT(!(partsMask & mask)); + partsMask |= mask; + } else { + UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), NKikimrProto::NODATA); + } + } + }); + } + UNIT_ASSERT_VALUES_EQUAL(partsMask, (1 << info->Type.TotalPartCount()) - 1); + }; - for (ui32 i = 0; i < info->GetTotalVDisksNum(); ++i) { - const TActorId vdiskActorId = info->GetActorId(i); + checkReadable(); - ui32 nodeId, pdiskId; - std::tie(nodeId, pdiskId, std::ignore) = DecomposeVDiskServiceId(vdiskActorId); - auto it = env.PDiskMockStates.find(std::make_pair(nodeId, pdiskId)); - Y_ABORT_UNLESS(it != env.PDiskMockStates.end()); + ui32 mask = 0; - const TActorId sender = runtime->AllocateEdgeActor(vdiskActorId.NodeId()); - env.Runtime->Send(new IEventHandle(vdiskActorId, sender, new TEvBlobStorage::TEvCaptureVDiskLayout), sender.NodeId()); - auto res = env.WaitForEdgeActorEvent(sender); + for (ui32 i = 0; i < info->GetTotalVDisksNum(); ++i) { + const TActorId vdiskActorId = info->GetActorId(i); - for (auto& item : res->Get()->Layout) { - using T = TEvBlobStorage::TEvCaptureVDiskLayoutResult; - if (item.Database == T::EDatabase::LogoBlobs && item.RecordType == T::ERecordType::HugeBlob) { - const TDiskPart& part = item.Location; - it->second->SetCorruptedArea(part.ChunkIdx, part.Offset, part.Offset + part.Size, true); - break; + ui32 nodeId, pdiskId; + std::tie(nodeId, pdiskId, std::ignore) = DecomposeVDiskServiceId(vdiskActorId); + auto it = env.PDiskMockStates.find(std::make_pair(nodeId, pdiskId)); + Y_ABORT_UNLESS(it != env.PDiskMockStates.end()); + + const TActorId sender = runtime->AllocateEdgeActor(vdiskActorId.NodeId()); + env.Runtime->Send(new IEventHandle(vdiskActorId, sender, new TEvBlobStorage::TEvCaptureVDiskLayout), sender.NodeId()); + auto res = env.WaitForEdgeActorEvent(sender); + + for (auto& item : res->Get()->Layout) { + using T = TEvBlobStorage::TEvCaptureVDiskLayoutResult; + if (item.Database == T::EDatabase::LogoBlobs && item.RecordType == T::ERecordType::HugeBlob && item.BlobId.FullID() == id) { + const TDiskPart& part = item.Location; + mask |= 1 << i; + it->second->SetCorruptedArea(part.ChunkIdx, part.Offset, part.Offset + 1 + RandomNumber(part.Size), true); + break; + } } + + checkReadable(); } - checkReadable(NKikimrProto::OK); - } + env.Sim(TDuration::Seconds(60)); - env.Sim(TDuration::Seconds(60)); + for (ui32 i = 0; i < info->GetTotalVDisksNum(); ++i) { + if (~mask >> i & 1) { + continue; + } + + const TActorId vdiskActorId = info->GetActorId(i); + + ui32 nodeId, pdiskId; + std::tie(nodeId, pdiskId, std::ignore) = DecomposeVDiskServiceId(vdiskActorId); + auto it = env.PDiskMockStates.find(std::make_pair(nodeId, pdiskId)); + Y_ABORT_UNLESS(it != env.PDiskMockStates.end()); + + const TActorId sender = runtime->AllocateEdgeActor(vdiskActorId.NodeId()); + env.Runtime->Send(new IEventHandle(vdiskActorId, sender, new TEvBlobStorage::TEvCaptureVDiskLayout), sender.NodeId()); + auto res = env.WaitForEdgeActorEvent(sender); + + bool anyPartReadable = false; + + for (auto& item : res->Get()->Layout) { + using T = TEvBlobStorage::TEvCaptureVDiskLayoutResult; + if (item.Database == T::EDatabase::LogoBlobs && item.RecordType == T::ERecordType::HugeBlob && item.BlobId.FullID() == id) { + const TDiskPart& part = item.Location; + anyPartReadable = !it->second->HasCorruptedArea(part.ChunkIdx, part.Offset, part.Offset + part.Size); + if (anyPartReadable) { + break; + } + } + } + + UNIT_ASSERT(anyPartReadable); + } + } } Y_UNIT_TEST_SUITE(ScrubFast) { @@ -77,3 +142,4 @@ Y_UNIT_TEST_SUITE(ScrubFast) { Test(); } } + diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..00d4ca23aa52 --- /dev/null +++ b/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.darwin-arm64.txt @@ -0,0 +1,72 @@ + +# 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-core-blobstorage-ut_blobstorage-ut_balancing) +target_include_directories(ydb-core-blobstorage-ut_blobstorage-ut_balancing PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage +) +target_link_libraries(ydb-core-blobstorage-ut_blobstorage-ut_balancing PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + blobstorage-ut_blobstorage-lib +) +target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_balancing PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-core-blobstorage-ut_blobstorage-ut_balancing PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/balancing.cpp +) +set_property( + TARGET + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-blobstorage-ut_blobstorage-ut_balancing + TEST_TARGET + ydb-core-blobstorage-ut_blobstorage-ut_balancing + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-core-blobstorage-ut_blobstorage-ut_balancing + system_allocator +) +vcs_info(ydb-core-blobstorage-ut_blobstorage-ut_balancing) diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..a50052a8c024 --- /dev/null +++ b/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,73 @@ + +# 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-core-blobstorage-ut_blobstorage-ut_balancing) +target_include_directories(ydb-core-blobstorage-ut_blobstorage-ut_balancing PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage +) +target_link_libraries(ydb-core-blobstorage-ut_blobstorage-ut_balancing PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + blobstorage-ut_blobstorage-lib +) +target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_balancing PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-core-blobstorage-ut_blobstorage-ut_balancing PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/balancing.cpp +) +set_property( + TARGET + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-blobstorage-ut_blobstorage-ut_balancing + TEST_TARGET + ydb-core-blobstorage-ut_blobstorage-ut_balancing + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-core-blobstorage-ut_blobstorage-ut_balancing + system_allocator +) +vcs_info(ydb-core-blobstorage-ut_blobstorage-ut_balancing) diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..6f421c6a52f3 --- /dev/null +++ b/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.linux-aarch64.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-core-blobstorage-ut_blobstorage-ut_balancing) +target_include_directories(ydb-core-blobstorage-ut_blobstorage-ut_balancing PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage +) +target_link_libraries(ydb-core-blobstorage-ut_blobstorage-ut_balancing PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + blobstorage-ut_blobstorage-lib +) +target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_balancing PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-core-blobstorage-ut_blobstorage-ut_balancing PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/balancing.cpp +) +set_property( + TARGET + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-blobstorage-ut_blobstorage-ut_balancing + TEST_TARGET + ydb-core-blobstorage-ut_blobstorage-ut_balancing + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-core-blobstorage-ut_blobstorage-ut_balancing + cpp-malloc-jemalloc +) +vcs_info(ydb-core-blobstorage-ut_blobstorage-ut_balancing) diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..de4f30680d54 --- /dev/null +++ b/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.linux-x86_64.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-core-blobstorage-ut_blobstorage-ut_balancing) +target_include_directories(ydb-core-blobstorage-ut_blobstorage-ut_balancing PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage +) +target_link_libraries(ydb-core-blobstorage-ut_blobstorage-ut_balancing PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + blobstorage-ut_blobstorage-lib +) +target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_balancing PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-core-blobstorage-ut_blobstorage-ut_balancing PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/balancing.cpp +) +set_property( + TARGET + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-blobstorage-ut_blobstorage-ut_balancing + TEST_TARGET + ydb-core-blobstorage-ut_blobstorage-ut_balancing + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-core-blobstorage-ut_blobstorage-ut_balancing + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-core-blobstorage-ut_blobstorage-ut_balancing) diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.txt b/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..4f77da71866a --- /dev/null +++ b/ydb/core/blobstorage/ut_blobstorage/ut_balancing/CMakeLists.windows-x86_64.txt @@ -0,0 +1,68 @@ + +# 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-core-blobstorage-ut_blobstorage-ut_balancing) +target_include_directories(ydb-core-blobstorage-ut_blobstorage-ut_balancing PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage +) +target_link_libraries(ydb-core-blobstorage-ut_blobstorage-ut_balancing PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + blobstorage-ut_blobstorage-lib +) +target_sources(ydb-core-blobstorage-ut_blobstorage-ut_balancing PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/balancing.cpp +) +set_property( + TARGET + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-blobstorage-ut_blobstorage-ut_balancing + TEST_TARGET + ydb-core-blobstorage-ut_blobstorage-ut_balancing + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-core-blobstorage-ut_blobstorage-ut_balancing + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-core-blobstorage-ut_blobstorage-ut_balancing + system_allocator +) +vcs_info(ydb-core-blobstorage-ut_blobstorage-ut_balancing) diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.darwin-arm64.txt index de835e3fa1e2..da1e3346c4a9 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_blob_depot PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_blob_depot PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/blob_depot.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.darwin-x86_64.txt index c5983e76e01d..afcbb89df2ca 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_blob_depot PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_blob_depot PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/blob_depot.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.linux-aarch64.txt index a37e1d7dccc6..cab33b33698d 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_blob_depot PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_blob_depot PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/blob_depot.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.linux-x86_64.txt index fcf9cb636a29..1cd0cac8cbcf 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_blob_depot PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_blob_depot PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/blob_depot.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.windows-x86_64.txt index 5bef89226dbf..c59959ce1bac 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.darwin-arm64.txt index 83dad0658d3e..b78cfbfe529e 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(blobstorage-ut_blobstorage-ut_blob_depot_fat PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(blobstorage-ut_blobstorage-ut_blob_depot_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/blob_depot_fat.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.darwin-x86_64.txt index af6ef29380db..17aa316b2790 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(blobstorage-ut_blobstorage-ut_blob_depot_fat PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(blobstorage-ut_blobstorage-ut_blob_depot_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/blob_depot_fat.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.linux-aarch64.txt index 13abf54784c8..15f5009db74a 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(blobstorage-ut_blobstorage-ut_blob_depot_fat PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(blobstorage-ut_blobstorage-ut_blob_depot_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/blob_depot_fat.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.linux-x86_64.txt index 9e37b9151e23..600263620167 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(blobstorage-ut_blobstorage-ut_blob_depot_fat PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(blobstorage-ut_blobstorage-ut_blob_depot_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/blob_depot_fat.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.windows-x86_64.txt index 0c0fbb91a35f..b5b8364963d3 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_blob_depot_fat/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.darwin-arm64.txt index 029d60eec34b..95320234e747 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_donor PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_donor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/donor.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.darwin-x86_64.txt index 1aeb0e9ad189..b572a2387fbf 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_donor PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_donor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/donor.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.linux-aarch64.txt index 37630a5c953f..1bc865239255 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_donor PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_donor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/donor.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.linux-x86_64.txt index e9d5423fc2c6..4d7e00d1ebac 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_donor PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_donor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/donor.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.windows-x86_64.txt index b1536564b09a..75564b28847f 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_donor/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.darwin-arm64.txt index 554b2bcd1f2d..f13612193059 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ut_group_reconfiguration PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ut_group_reconfiguration PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/race.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.darwin-x86_64.txt index 57e1fd626616..9f050947e9ca 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ut_group_reconfiguration PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ut_group_reconfiguration PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/race.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.linux-aarch64.txt index c839fe105508..ae433a83f937 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ut_group_reconfiguration PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ut_group_reconfiguration PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/race.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.linux-x86_64.txt index 86c5607b924c..a9e6d6ad4eb0 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ut_group_reconfiguration PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ut_group_reconfiguration PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/race.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.windows-x86_64.txt index a7d9fd10889f..e26431bbdb61 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_group_reconfiguration/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_helpers.cpp b/ydb/core/blobstorage/ut_blobstorage/ut_helpers.cpp new file mode 100644 index 000000000000..5ed093531003 --- /dev/null +++ b/ydb/core/blobstorage/ut_blobstorage/ut_helpers.cpp @@ -0,0 +1,15 @@ +#include "ut_helpers.h" + +namespace NKikimr { + +TString MakeData(ui32 dataSize) { + TString data(dataSize, '\0'); + for (ui32 i = 0; i < dataSize; ++i) { + data[i] = 'A' + (i % 26); + } + return data; +} + +ui64 TInflightActor::Cookie = 1; + +} // namespace NKikimr diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_helpers.h b/ydb/core/blobstorage/ut_blobstorage/ut_helpers.h new file mode 100644 index 000000000000..a42f754dc66f --- /dev/null +++ b/ydb/core/blobstorage/ut_blobstorage/ut_helpers.h @@ -0,0 +1,226 @@ +#pragma once + +#include +#include + +namespace NKikimr { + +TString MakeData(ui32 dataSize); + +class TInflightActor : public TActorBootstrapped { +public: + struct TSettings { + ui32 Requests; + ui32 MaxInFlight; + TDuration Delay = TDuration::Zero(); + ui32 GroupId = 0; + ui32 GroupGeneration = 1; + }; + +public: + TInflightActor(TSettings settings) + : RequestsToSend(settings.Requests) + , RequestInFlight(settings.MaxInFlight) + , GroupId(settings.GroupId) + , Settings(settings) + {} + + virtual ~TInflightActor() = default; + + void SetGroupId(ui32 groupId) { + GroupId = groupId; + } + + void Bootstrap(const TActorContext &ctx) { + LastTs = TAppData::TimeProvider->Now(); + BootstrapImpl(ctx); + } + +protected: + void ScheduleRequests() { + while (RequestInFlight > 0 && RequestsToSend > 0) { + TInstant now = TAppData::TimeProvider->Now(); + TDuration timePassed = now - LastTs; + if (timePassed >= Settings.Delay) { + LastTs = now; + RequestInFlight--; + RequestsToSend--; + RequestsSent++; + SendRequest(); + continue; + } else if (!WakeupScheduled) { + Schedule(Settings.Delay - timePassed, new TEvents::TEvWakeup); + WakeupScheduled = true; + } + break; + } + } + + void WakeupAndSchedule() { + WakeupScheduled = false; + ScheduleRequests(); + } + + void HandleReply(NKikimrProto::EReplyStatus status) { + ResponsesByStatus[status]++; + ++RequestInFlight; + ScheduleRequests(); + } + + virtual void BootstrapImpl(const TActorContext &ctx) = 0; + virtual void SendRequest() = 0; + +protected: + ui32 RequestsToSend; + ui32 RequestInFlight; + ui32 GroupId; + TInstant LastTs; + TSettings Settings; + bool WakeupScheduled = false; + +public: + std::unordered_map ResponsesByStatus; + ui32 RequestsSent = 0; + +protected: + static ui64 Cookie; +}; + +/////////////////////////////////// TInflightActorPut /////////////////////////////////// + +class TInflightActorPut : public TInflightActor { +public: + TInflightActorPut(TSettings settings, ui32 dataSize = 1024) + : TInflightActor(settings) + , DataSize(dataSize) + {} + + STRICT_STFUNC(StateWork, + cFunc(TEvBlobStorage::TEvStatusResult::EventType, ScheduleRequests); + cFunc(TEvents::TEvWakeup::EventType, WakeupAndSchedule); + hFunc(TEvBlobStorage::TEvPutResult, Handle); + ) + + virtual void BootstrapImpl(const TActorContext&/* ctx*/) override { + // dummy request to establish the session + auto ev = new TEvBlobStorage::TEvStatus(TInstant::Max()); + SendToBSProxy(SelfId(), GroupId, ev, 0); + Become(&TInflightActorPut::StateWork); + } + +protected: + virtual void SendRequest() override { + TString data = MakeData(DataSize); + auto ev = new TEvBlobStorage::TEvPut(TLogoBlobID(1, 1, 1, 10, DataSize, Cookie++), + data, TInstant::Max(), NKikimrBlobStorage::UserData); + SendToBSProxy(SelfId(), GroupId, ev, 0); + } + + void Handle(TEvBlobStorage::TEvPutResult::TPtr res) { + HandleReply(res->Get()->Status); + } + +private: + std::string Data; + ui32 DataSize; +}; + +/////////////////////////////////// TInflightActorGet /////////////////////////////////// + +class TInflightActorGet : public TInflightActor { +public: + TInflightActorGet(TSettings settings, ui32 dataSize = 1024) + : TInflightActor(settings) + , DataSize(dataSize) + {} + + STRICT_STFUNC(StateWork, + cFunc(TEvBlobStorage::TEvPutResult::EventType, ScheduleRequests); + cFunc(TEvents::TEvWakeup::EventType, WakeupAndSchedule); + hFunc(TEvBlobStorage::TEvGetResult, Handle); + ) + + virtual void BootstrapImpl(const TActorContext&/* ctx*/) override { + TString data = MakeData(DataSize); + BlobId = TLogoBlobID(1, 1, 1, 10, DataSize, Cookie++); + auto ev = new TEvBlobStorage::TEvPut(BlobId, data, TInstant::Max()); + SendToBSProxy(SelfId(), GroupId, ev, 0); + Become(&TInflightActorGet::StateWork); + } + +protected: + virtual void SendRequest() override { + auto ev = new TEvBlobStorage::TEvGet(BlobId, 0, 10, TInstant::Max(), NKikimrBlobStorage::EGetHandleClass::FastRead); + SendToBSProxy(SelfId(), GroupId, ev, 0); + } + + void Handle(TEvBlobStorage::TEvGetResult::TPtr res) { + HandleReply(res->Get()->Status); + } + +private: + TLogoBlobID BlobId; + std::string Data; + ui32 DataSize; +}; + +/////////////////////////////////// TInflightActorPatch /////////////////////////////////// + +class TInflightActorPatch : public TInflightActor { +public: + TInflightActorPatch(TSettings settings, ui32 dataSize = 1024) + : TInflightActor(settings) + , DataSize(dataSize) + {} + + STRICT_STFUNC(StateWork, + cFunc(TEvents::TEvWakeup::EventType, WakeupAndSchedule); + hFunc(TEvBlobStorage::TEvPatchResult, Handle); + hFunc(TEvBlobStorage::TEvPutResult, Handle); + ) + + virtual void BootstrapImpl(const TActorContext&/* ctx*/) override { + TString data = MakeData(DataSize); + for (ui32 i = 0; i < RequestInFlight; ++i) { + TLogoBlobID blobId(1, 1, 1, 10, DataSize, Cookie++); + auto ev = new TEvBlobStorage::TEvPut(blobId, data, TInstant::Max()); + SendToBSProxy(SelfId(), GroupId, ev, 0); + } + Become(&TInflightActorPatch::StateWork); + } + +protected: + virtual void SendRequest() override { + TLogoBlobID oldId = Blobs.front(); + Blobs.pop_front(); + TLogoBlobID newId(1, 1, oldId.Step() + 1, 10, DataSize, oldId.Cookie()); + Y_ABORT_UNLESS(TEvBlobStorage::TEvPatch::GetBlobIdWithSamePlacement(oldId, &newId, BlobIdMask, GroupId, GroupId)); + TArrayHolder diffs(new TEvBlobStorage::TEvPatch::TDiff[1]); + char c = 'a' + RequestsToSend % 26; + diffs[0].Set(TString(DataSize, c), 0); + auto ev = new TEvBlobStorage::TEvPatch(GroupId, oldId, newId, BlobIdMask, std::move(diffs), 1, TInstant::Max()); + SendToBSProxy(SelfId(), GroupId, ev, 0); + } + + + void Handle(TEvBlobStorage::TEvPatchResult::TPtr res) { + Blobs.push_back(res->Get()->Id); + HandleReply(res->Get()->Status); + } + + void Handle(TEvBlobStorage::TEvPutResult::TPtr res) { + Blobs.push_back(res->Get()->Id); + if (++BlobsWritten == RequestInFlight) { + ScheduleRequests(); + } + } + +protected: + std::deque Blobs; + ui32 BlobIdMask = TLogoBlobID::MaxCookie & 0xfffff000; + ui32 BlobsWritten = 0; + std::string Data; + ui32 DataSize; +}; + +} // namespace NKikimr diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.darwin-arm64.txt index 018d2d0dafe7..425a85812b9b 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_osiris PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_osiris PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/osiris.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.darwin-x86_64.txt index 2b1ddf17679b..bb1268cbb1f2 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_osiris PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_osiris PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/osiris.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.linux-aarch64.txt index aaf59a02476c..4f4043f6c410 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_osiris PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_osiris PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/osiris.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.linux-x86_64.txt index 1ea280b18053..68f0cde904e6 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_osiris PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_osiris PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/osiris.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.windows-x86_64.txt index 86f90085f3c2..ff8511d77ce8 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_osiris/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.darwin-arm64.txt index 051c7b6a05f1..2a6449c41359 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(ut_blobstorage-ut_read_only_vdisk PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ut_blobstorage-ut_read_only_vdisk PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/read_only_vdisk.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.darwin-x86_64.txt index 120d5a11a61f..5658485cc033 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(ut_blobstorage-ut_read_only_vdisk PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ut_blobstorage-ut_read_only_vdisk PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/read_only_vdisk.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.linux-aarch64.txt index c70807e76756..f59715ea20b9 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ut_blobstorage-ut_read_only_vdisk PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ut_blobstorage-ut_read_only_vdisk PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/read_only_vdisk.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.linux-x86_64.txt index cc9423575fd3..c15e203918bd 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ut_blobstorage-ut_read_only_vdisk PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ut_blobstorage-ut_read_only_vdisk PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/read_only_vdisk.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.windows-x86_64.txt index 2b7653193c1c..4ca4a37f2527 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_read_only_vdisk/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.darwin-arm64.txt index 874e28d34160..93cfee2de94d 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(core-blobstorage-ut_blobstorage-ut_replication PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(core-blobstorage-ut_blobstorage-ut_replication PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/replication.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.darwin-x86_64.txt index 4ac02bb68300..42030ce6c975 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(core-blobstorage-ut_blobstorage-ut_replication PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(core-blobstorage-ut_blobstorage-ut_replication PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/replication.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.linux-aarch64.txt index 88c3d2dbe0a4..40925cdc6e75 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(core-blobstorage-ut_blobstorage-ut_replication PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(core-blobstorage-ut_blobstorage-ut_replication PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/replication.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.linux-x86_64.txt index bff6c1407f91..d7161827fd5c 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(core-blobstorage-ut_blobstorage-ut_replication PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(core-blobstorage-ut_blobstorage-ut_replication PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/replication.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.windows-x86_64.txt index 60ff0fa24d40..f59838786b3b 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_replication/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.darwin-arm64.txt index b1e9a8ac9e34..7b35793aae39 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_scrub PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_scrub PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/scrub.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.darwin-x86_64.txt index 275607dedad1..9ed0fb8e6cab 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_scrub PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_scrub PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/scrub.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.linux-aarch64.txt index 07dac5c320f4..a9b6034300fd 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_scrub PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_scrub PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/scrub.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.linux-x86_64.txt index 07f21ccbde3b..eefd5b6fd4eb 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-core-blobstorage-ut_blobstorage-ut_scrub PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_blobstorage-ut_scrub PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/scrub.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.windows-x86_64.txt index 0bb270a82d61..5a1bbe744c3f 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_scrub/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.darwin-arm64.txt index 36a04655d0e6..103d3b192b95 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(blobstorage-ut_blobstorage-ut_vdisk_restart PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(blobstorage-ut_blobstorage-ut_vdisk_restart PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/vdisk_restart.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.darwin-x86_64.txt index 379dd6aafcac..c47437c3dd05 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(blobstorage-ut_blobstorage-ut_vdisk_restart PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(blobstorage-ut_blobstorage-ut_vdisk_restart PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/vdisk_restart.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.linux-aarch64.txt index 1026c68db9f1..1ee47adce63f 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(blobstorage-ut_blobstorage-ut_vdisk_restart PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(blobstorage-ut_blobstorage-ut_vdisk_restart PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/vdisk_restart.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.linux-x86_64.txt index 7d6211c77808..134f615e24e5 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(blobstorage-ut_blobstorage-ut_vdisk_restart PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(blobstorage-ut_blobstorage-ut_vdisk_restart PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_blobstorage/vdisk_restart.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.windows-x86_64.txt index 40828e092235..54455d2dae71 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_blobstorage/ut_vdisk_restart/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_blobstorage/ya.make b/ydb/core/blobstorage/ut_blobstorage/ya.make index 7fa92b4924b7..daefe3430ff6 100644 --- a/ydb/core/blobstorage/ut_blobstorage/ya.make +++ b/ydb/core/blobstorage/ut_blobstorage/ya.make @@ -19,6 +19,7 @@ SRCS( defrag.cpp encryption.cpp extra_block_checks.cpp + gc.cpp gc_quorum_3dc.cpp group_reconfiguration.cpp incorrect_queries.cpp @@ -33,6 +34,7 @@ SRCS( snapshots.cpp space_check.cpp sync.cpp + ut_helpers.cpp ) IF (BUILD_TYPE != "DEBUG") diff --git a/ydb/core/blobstorage/ut_group/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_group/CMakeLists.darwin-arm64.txt index 7b7b0305ef00..ac67abed5452 100644 --- a/ydb/core/blobstorage/ut_group/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_group/CMakeLists.darwin-arm64.txt @@ -12,6 +12,7 @@ target_link_libraries(ydb-core-blobstorage-ut_group PUBLIC contrib-libs-cxxsupp yutil cpp-testing-unittest_main + version_definition actors-interconnect-mock cpp-testing-unittest core-blobstorage-crypto @@ -27,8 +28,6 @@ target_link_options(ydb-core-blobstorage-ut_group PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_group PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_group/main.cpp @@ -58,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_group/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_group/CMakeLists.darwin-x86_64.txt index 08d864c7dd26..e0c4daf3fe72 100644 --- a/ydb/core/blobstorage/ut_group/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_group/CMakeLists.darwin-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-ut_group PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition actors-interconnect-mock cpp-testing-unittest core-blobstorage-crypto @@ -28,8 +29,6 @@ target_link_options(ydb-core-blobstorage-ut_group PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_group PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_group/main.cpp @@ -59,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_group/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_group/CMakeLists.linux-aarch64.txt index 37f052af9207..8aee02b36535 100644 --- a/ydb/core/blobstorage/ut_group/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_group/CMakeLists.linux-aarch64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-ut_group PUBLIC contrib-libs-cxxsupp yutil cpp-testing-unittest_main + version_definition actors-interconnect-mock cpp-testing-unittest core-blobstorage-crypto @@ -30,9 +31,6 @@ target_link_options(ydb-core-blobstorage-ut_group PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_group PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_group/main.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_group/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_group/CMakeLists.linux-x86_64.txt index d73cc840a2e6..a050e4a489be 100644 --- a/ydb/core/blobstorage/ut_group/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_group/CMakeLists.linux-x86_64.txt @@ -14,6 +14,7 @@ target_link_libraries(ydb-core-blobstorage-ut_group PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition actors-interconnect-mock cpp-testing-unittest core-blobstorage-crypto @@ -31,9 +32,6 @@ target_link_options(ydb-core-blobstorage-ut_group PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_group PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_group/main.cpp @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_group/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_group/CMakeLists.windows-x86_64.txt index 61c4d57b0bab..f47b37d786a1 100644 --- a/ydb/core/blobstorage/ut_group/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_group/CMakeLists.windows-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-ut_group PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition actors-interconnect-mock cpp-testing-unittest core-blobstorage-crypto @@ -52,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_group/main.cpp b/ydb/core/blobstorage/ut_group/main.cpp index 81b1266c5bdc..a7e9e12a6702 100644 --- a/ydb/core/blobstorage/ut_group/main.cpp +++ b/ydb/core/blobstorage/ut_group/main.cpp @@ -417,6 +417,7 @@ class TTestEnv { TString()); auto vdiskConfig = AllVDiskKinds->MakeVDiskConfig(baseInfo); vdiskConfig->EnableVDiskCooldownTimeout = true; + vdiskConfig->UseCostTracker = false; auto counters = Counters->GetSubgroup("node", ToString(disk.NodeId))->GetSubgroup("vdisk", disk.VDiskId.ToString()); const TActorId& actorId = runtime.Register(CreateVDisk(vdiskConfig, Info, counters), TActorId(), 0, std::nullopt, disk.NodeId); runtime.RegisterService(disk.VDiskActorId, actorId); diff --git a/ydb/core/blobstorage/ut_group/ya.make b/ydb/core/blobstorage/ut_group/ya.make index aa0a9c0ebab8..88e601a9eaa3 100644 --- a/ydb/core/blobstorage/ut_group/ya.make +++ b/ydb/core/blobstorage/ut_group/ya.make @@ -16,6 +16,7 @@ ELSE() ENDIF() PEERDIR( + ydb/apps/version ydb/library/actors/interconnect/mock library/cpp/testing/unittest ydb/core/blobstorage/crypto diff --git a/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.darwin-arm64.txt index 9820fee5f6e5..4c7cad058acb 100644 --- a/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.darwin-arm64.txt @@ -12,6 +12,7 @@ target_link_libraries(ydb-core-blobstorage-ut_mirror3of4 PUBLIC contrib-libs-cxxsupp yutil cpp-testing-unittest_main + version_definition actors-interconnect-mock cpp-testing-unittest core-blobstorage-backpressure @@ -29,8 +30,6 @@ target_link_options(ydb-core-blobstorage-ut_mirror3of4 PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_mirror3of4 PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_mirror3of4/main.cpp @@ -60,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.darwin-x86_64.txt index 3318697df854..ce6f8ca30e0f 100644 --- a/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.darwin-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-ut_mirror3of4 PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition actors-interconnect-mock cpp-testing-unittest core-blobstorage-backpressure @@ -30,8 +31,6 @@ target_link_options(ydb-core-blobstorage-ut_mirror3of4 PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_mirror3of4 PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_mirror3of4/main.cpp @@ -61,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.linux-aarch64.txt index 5f05c475eed5..dc13b4d1f416 100644 --- a/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.linux-aarch64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-ut_mirror3of4 PUBLIC contrib-libs-cxxsupp yutil cpp-testing-unittest_main + version_definition actors-interconnect-mock cpp-testing-unittest core-blobstorage-backpressure @@ -32,9 +33,6 @@ target_link_options(ydb-core-blobstorage-ut_mirror3of4 PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_mirror3of4 PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_mirror3of4/main.cpp @@ -64,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.linux-x86_64.txt index c741d4810c98..a696701b1d63 100644 --- a/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.linux-x86_64.txt @@ -14,6 +14,7 @@ target_link_libraries(ydb-core-blobstorage-ut_mirror3of4 PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition actors-interconnect-mock cpp-testing-unittest core-blobstorage-backpressure @@ -33,9 +34,6 @@ target_link_options(ydb-core-blobstorage-ut_mirror3of4 PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_mirror3of4 PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_mirror3of4/main.cpp @@ -65,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.windows-x86_64.txt index 01ab56d5efdc..01fde9d224d7 100644 --- a/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_mirror3of4/CMakeLists.windows-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-ut_mirror3of4 PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition actors-interconnect-mock cpp-testing-unittest core-blobstorage-backpressure @@ -54,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_mirror3of4/main.cpp b/ydb/core/blobstorage/ut_mirror3of4/main.cpp index b8f950d70ffe..b7fc225d63d0 100644 --- a/ydb/core/blobstorage/ut_mirror3of4/main.cpp +++ b/ydb/core/blobstorage/ut_mirror3of4/main.cpp @@ -273,6 +273,7 @@ class TTestEnv { "" ); const auto vcfg = MakeIntrusive(baseInfo); + vcfg->UseCostTracker = false; auto vdiskCounters = Counters->GetSubgroup("vdisk", ToString(i)); runtime.RegisterService(info.GetActorId(i), runtime.Register(CreateVDisk(vcfg, Info, vdiskCounters), TActorId(), 0, std::nullopt, pdisk.NodeId)); diff --git a/ydb/core/blobstorage/ut_mirror3of4/ya.make b/ydb/core/blobstorage/ut_mirror3of4/ya.make index 4d89f5e383fd..bfd43f049cd1 100644 --- a/ydb/core/blobstorage/ut_mirror3of4/ya.make +++ b/ydb/core/blobstorage/ut_mirror3of4/ya.make @@ -9,6 +9,7 @@ SIZE(MEDIUM) TIMEOUT(600) PEERDIR( + ydb/apps/version ydb/library/actors/interconnect/mock library/cpp/testing/unittest ydb/core/blobstorage/backpressure diff --git a/ydb/core/blobstorage/ut_pdiskfit/pdiskfit/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_pdiskfit/pdiskfit/CMakeLists.linux-aarch64.txt index eed53b79d90d..aed8d4e44586 100644 --- a/ydb/core/blobstorage/ut_pdiskfit/pdiskfit/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_pdiskfit/pdiskfit/CMakeLists.linux-aarch64.txt @@ -12,6 +12,7 @@ target_link_libraries(pdiskfit PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + version_definition library-cpp-getopt cpp-string_utils-parse_size ydb-core-blobstorage @@ -24,9 +25,6 @@ target_link_options(pdiskfit PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(pdiskfit PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_pdiskfit/pdiskfit/pdiskfit.cpp diff --git a/ydb/core/blobstorage/ut_pdiskfit/pdiskfit/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_pdiskfit/pdiskfit/CMakeLists.linux-x86_64.txt index 1f4e24ee467e..25dd867af41f 100644 --- a/ydb/core/blobstorage/ut_pdiskfit/pdiskfit/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_pdiskfit/pdiskfit/CMakeLists.linux-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(pdiskfit PUBLIC contrib-libs-cxxsupp yutil library-cpp-cpuid_check + version_definition library-cpp-getopt cpp-string_utils-parse_size ydb-core-blobstorage @@ -25,9 +26,6 @@ target_link_options(pdiskfit PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(pdiskfit PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_pdiskfit/pdiskfit/pdiskfit.cpp diff --git a/ydb/core/blobstorage/ut_pdiskfit/pdiskfit/ya.make b/ydb/core/blobstorage/ut_pdiskfit/pdiskfit/ya.make index 3f1ae9920495..ef98e816685e 100644 --- a/ydb/core/blobstorage/ut_pdiskfit/pdiskfit/ya.make +++ b/ydb/core/blobstorage/ut_pdiskfit/pdiskfit/ya.make @@ -6,6 +6,7 @@ IF (OS_LINUX) ) PEERDIR( + ydb/apps/version library/cpp/getopt library/cpp/string_utils/parse_size ydb/core/blobstorage diff --git a/ydb/core/blobstorage/ut_pdiskfit/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_pdiskfit/ut/CMakeLists.linux-aarch64.txt index a07a565bbb10..6a6dce60f5a0 100644 --- a/ydb/core/blobstorage/ut_pdiskfit/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_pdiskfit/ut/CMakeLists.linux-aarch64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-ut_pdiskfit-ut PUBLIC contrib-libs-cxxsupp yutil cpp-testing-unittest_main + version_definition ydb-core-blobstorage blobstorage-ut_pdiskfit-lib ) @@ -22,9 +23,6 @@ target_link_options(ydb-core-blobstorage-ut_pdiskfit-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_pdiskfit-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_pdiskfit/ut/main.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_pdiskfit/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_pdiskfit/ut/CMakeLists.linux-x86_64.txt index 6ca5988b753f..5b779405228d 100644 --- a/ydb/core/blobstorage/ut_pdiskfit/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_pdiskfit/ut/CMakeLists.linux-x86_64.txt @@ -14,6 +14,7 @@ target_link_libraries(ydb-core-blobstorage-ut_pdiskfit-ut PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition ydb-core-blobstorage blobstorage-ut_pdiskfit-lib ) @@ -23,9 +24,6 @@ target_link_options(ydb-core-blobstorage-ut_pdiskfit-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_pdiskfit-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_pdiskfit/ut/main.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_pdiskfit/ut/ya.make b/ydb/core/blobstorage/ut_pdiskfit/ut/ya.make index b4e9ff9707ba..31b328c8a37f 100644 --- a/ydb/core/blobstorage/ut_pdiskfit/ut/ya.make +++ b/ydb/core/blobstorage/ut_pdiskfit/ut/ya.make @@ -16,6 +16,7 @@ IF (OS_LINUX AND NOT WITH_VALGRIND) ENDIF () PEERDIR( + ydb/apps/version ydb/core/blobstorage ydb/core/blobstorage/ut_pdiskfit/lib ) diff --git a/ydb/core/blobstorage/ut_testshard/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_testshard/CMakeLists.darwin-arm64.txt index cb1989c3bb3e..19b8a576735e 100644 --- a/ydb/core/blobstorage/ut_testshard/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_testshard/CMakeLists.darwin-arm64.txt @@ -12,6 +12,7 @@ target_link_libraries(ydb-core-blobstorage-ut_testshard PUBLIC contrib-libs-cxxsupp yutil cpp-testing-unittest_main + version_definition ydb-core-base ydb-core-blob_depot core-blobstorage-backpressure @@ -38,8 +39,6 @@ target_link_options(ydb-core-blobstorage-ut_testshard PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_testshard PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_testshard/main.cpp @@ -69,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_testshard/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_testshard/CMakeLists.darwin-x86_64.txt index f47f514347e3..972e7c84ccaa 100644 --- a/ydb/core/blobstorage/ut_testshard/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_testshard/CMakeLists.darwin-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-ut_testshard PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition ydb-core-base ydb-core-blob_depot core-blobstorage-backpressure @@ -39,8 +40,6 @@ target_link_options(ydb-core-blobstorage-ut_testshard PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_testshard PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_testshard/main.cpp @@ -70,6 +69,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_testshard/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_testshard/CMakeLists.linux-aarch64.txt index 40b4796e9b3b..59ed90704881 100644 --- a/ydb/core/blobstorage/ut_testshard/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_testshard/CMakeLists.linux-aarch64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-ut_testshard PUBLIC contrib-libs-cxxsupp yutil cpp-testing-unittest_main + version_definition ydb-core-base ydb-core-blob_depot core-blobstorage-backpressure @@ -41,9 +42,6 @@ target_link_options(ydb-core-blobstorage-ut_testshard PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_testshard PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_testshard/main.cpp @@ -73,6 +71,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_testshard/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_testshard/CMakeLists.linux-x86_64.txt index bd5bce128abf..1d86546dcea5 100644 --- a/ydb/core/blobstorage/ut_testshard/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_testshard/CMakeLists.linux-x86_64.txt @@ -14,6 +14,7 @@ target_link_libraries(ydb-core-blobstorage-ut_testshard PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition ydb-core-base ydb-core-blob_depot core-blobstorage-backpressure @@ -42,9 +43,6 @@ target_link_options(ydb-core-blobstorage-ut_testshard PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_testshard PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_testshard/main.cpp @@ -74,6 +72,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_testshard/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_testshard/CMakeLists.windows-x86_64.txt index d3f264e8d3ca..e1748212ae74 100644 --- a/ydb/core/blobstorage/ut_testshard/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_testshard/CMakeLists.windows-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-ut_testshard PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition ydb-core-base ydb-core-blob_depot core-blobstorage-backpressure @@ -63,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_testshard/ya.make b/ydb/core/blobstorage/ut_testshard/ya.make index e1c6adef761d..47409b20d301 100644 --- a/ydb/core/blobstorage/ut_testshard/ya.make +++ b/ydb/core/blobstorage/ut_testshard/ya.make @@ -12,6 +12,7 @@ UNITTEST() ) PEERDIR( + ydb/apps/version ydb/core/base ydb/core/blob_depot ydb/core/blobstorage/backpressure diff --git a/ydb/core/blobstorage/ut_vdisk/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_vdisk/CMakeLists.darwin-arm64.txt index 73b173a9b8d6..fe3bd0df4a23 100644 --- a/ydb/core/blobstorage/ut_vdisk/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_vdisk/CMakeLists.darwin-arm64.txt @@ -20,6 +20,7 @@ target_link_libraries(ydb-core-blobstorage-ut_vdisk PUBLIC yutil cpp-testing-unittest_main ydb-core-blobstorage + version_definition library-actors-protos library-cpp-codecs ydb-core-base @@ -34,10 +35,10 @@ target_link_options(ydb-core-blobstorage-ut_vdisk PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_vdisk PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/defaults.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/gen_restarts.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/gen_restarts.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/huge_migration_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/mon_reregister_ut.cpp @@ -68,6 +69,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_vdisk/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_vdisk/CMakeLists.darwin-x86_64.txt index 2370736f2720..2b13c91661e2 100644 --- a/ydb/core/blobstorage/ut_vdisk/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_vdisk/CMakeLists.darwin-x86_64.txt @@ -21,6 +21,7 @@ target_link_libraries(ydb-core-blobstorage-ut_vdisk PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main ydb-core-blobstorage + version_definition library-actors-protos library-cpp-codecs ydb-core-base @@ -35,10 +36,10 @@ target_link_options(ydb-core-blobstorage-ut_vdisk PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_vdisk PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/defaults.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/gen_restarts.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/gen_restarts.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/huge_migration_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/mon_reregister_ut.cpp @@ -69,6 +70,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_vdisk/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_vdisk/CMakeLists.linux-aarch64.txt index 9a25566fc5f5..30f3761dce83 100644 --- a/ydb/core/blobstorage/ut_vdisk/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_vdisk/CMakeLists.linux-aarch64.txt @@ -21,6 +21,7 @@ target_link_libraries(ydb-core-blobstorage-ut_vdisk PUBLIC yutil cpp-testing-unittest_main ydb-core-blobstorage + version_definition library-actors-protos library-cpp-codecs ydb-core-base @@ -37,11 +38,10 @@ target_link_options(ydb-core-blobstorage-ut_vdisk PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_vdisk PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/defaults.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/gen_restarts.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/gen_restarts.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/huge_migration_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/mon_reregister_ut.cpp @@ -72,6 +72,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_vdisk/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_vdisk/CMakeLists.linux-x86_64.txt index e1c234e58800..c350eb55659e 100644 --- a/ydb/core/blobstorage/ut_vdisk/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_vdisk/CMakeLists.linux-x86_64.txt @@ -22,6 +22,7 @@ target_link_libraries(ydb-core-blobstorage-ut_vdisk PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main ydb-core-blobstorage + version_definition library-actors-protos library-cpp-codecs ydb-core-base @@ -38,11 +39,10 @@ target_link_options(ydb-core-blobstorage-ut_vdisk PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_vdisk PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/defaults.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/gen_restarts.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/gen_restarts.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/huge_migration_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/mon_reregister_ut.cpp @@ -73,6 +73,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_vdisk/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_vdisk/CMakeLists.windows-x86_64.txt index a3e798825411..284a5a11ac12 100644 --- a/ydb/core/blobstorage/ut_vdisk/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_vdisk/CMakeLists.windows-x86_64.txt @@ -21,6 +21,7 @@ target_link_libraries(ydb-core-blobstorage-ut_vdisk PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main ydb-core-blobstorage + version_definition library-actors-protos library-cpp-codecs ydb-core-base @@ -32,6 +33,8 @@ target_link_libraries(ydb-core-blobstorage-ut_vdisk PUBLIC yql-sql-pg_dummy ) target_sources(ydb-core-blobstorage-ut_vdisk PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/defaults.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/gen_restarts.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/gen_restarts.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/huge_migration_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/mon_reregister_ut.cpp @@ -62,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.darwin-arm64.txt index b1a6bb04cb68..d89b7b260dc5 100644 --- a/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.darwin-arm64.txt @@ -33,6 +33,28 @@ target_link_libraries(blobstorage-ut_vdisk-lib PUBLIC ydb-library-pdisk_io ) target_sources(blobstorage-ut_vdisk-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/astest.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/dataset.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/http_client.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/prepare.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/setup.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_brokendevice.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_dbstat.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_defrag.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_faketablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_gc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_huge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_load.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_localrecovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_many.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_outofspace.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_repl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_simplebs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_synclog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/vdisk_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/dataset.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/http_client.cpp diff --git a/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.darwin-x86_64.txt index b1a6bb04cb68..d89b7b260dc5 100644 --- a/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.darwin-x86_64.txt @@ -33,6 +33,28 @@ target_link_libraries(blobstorage-ut_vdisk-lib PUBLIC ydb-library-pdisk_io ) target_sources(blobstorage-ut_vdisk-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/astest.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/dataset.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/http_client.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/prepare.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/setup.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_brokendevice.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_dbstat.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_defrag.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_faketablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_gc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_huge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_load.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_localrecovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_many.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_outofspace.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_repl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_simplebs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_synclog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/vdisk_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/dataset.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/http_client.cpp diff --git a/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.linux-aarch64.txt index c5950cc05d10..d41161fb30e5 100644 --- a/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.linux-aarch64.txt @@ -34,6 +34,28 @@ target_link_libraries(blobstorage-ut_vdisk-lib PUBLIC ydb-library-pdisk_io ) target_sources(blobstorage-ut_vdisk-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/astest.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/dataset.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/http_client.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/prepare.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/setup.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_brokendevice.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_dbstat.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_defrag.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_faketablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_gc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_huge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_load.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_localrecovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_many.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_outofspace.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_repl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_simplebs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_synclog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/vdisk_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/dataset.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/http_client.cpp diff --git a/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.linux-x86_64.txt index c5950cc05d10..d41161fb30e5 100644 --- a/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.linux-x86_64.txt @@ -34,6 +34,28 @@ target_link_libraries(blobstorage-ut_vdisk-lib PUBLIC ydb-library-pdisk_io ) target_sources(blobstorage-ut_vdisk-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/astest.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/dataset.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/http_client.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/prepare.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/setup.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_brokendevice.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_dbstat.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_defrag.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_faketablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_gc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_huge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_load.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_localrecovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_many.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_outofspace.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_repl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_simplebs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_synclog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/vdisk_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/dataset.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/http_client.cpp diff --git a/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.windows-x86_64.txt index b1a6bb04cb68..d89b7b260dc5 100644 --- a/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_vdisk/lib/CMakeLists.windows-x86_64.txt @@ -33,6 +33,28 @@ target_link_libraries(blobstorage-ut_vdisk-lib PUBLIC ydb-library-pdisk_io ) target_sources(blobstorage-ut_vdisk-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/astest.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/dataset.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/http_client.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/prepare.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/setup.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_brokendevice.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_dbstat.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_defrag.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_faketablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_gc.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_huge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_load.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_localrecovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_many.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_outofspace.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_repl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_simplebs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/test_synclog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/vdisk_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/dataset.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/helpers.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk/lib/http_client.cpp diff --git a/ydb/core/blobstorage/ut_vdisk/lib/prepare.cpp b/ydb/core/blobstorage/ut_vdisk/lib/prepare.cpp index a52190e897c9..7a3ef866095a 100644 --- a/ydb/core/blobstorage/ut_vdisk/lib/prepare.cpp +++ b/ydb/core/blobstorage/ut_vdisk/lib/prepare.cpp @@ -256,6 +256,7 @@ bool TDefaultVDiskSetup::SetUp(TAllVDisks::TVDiskInstance &vdisk, TAllPDisks *pd modifier(vdisk.Cfg.Get()); } vdisk.Cfg->RunRepl = runRepl; + vdisk.Cfg->UseCostTracker = false; return true; } diff --git a/ydb/core/blobstorage/ut_vdisk/ya.make b/ydb/core/blobstorage/ut_vdisk/ya.make index 6b95175079a9..526d1e82de93 100644 --- a/ydb/core/blobstorage/ut_vdisk/ya.make +++ b/ydb/core/blobstorage/ut_vdisk/ya.make @@ -18,6 +18,7 @@ SRCS( ) PEERDIR( + ydb/apps/version ydb/library/actors/protos library/cpp/codecs ydb/core/base diff --git a/ydb/core/blobstorage/ut_vdisk2/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/ut_vdisk2/CMakeLists.darwin-arm64.txt index 1ddc6153fbe2..3f16b18c6b95 100644 --- a/ydb/core/blobstorage/ut_vdisk2/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/ut_vdisk2/CMakeLists.darwin-arm64.txt @@ -12,6 +12,7 @@ target_link_libraries(ydb-core-blobstorage-ut_vdisk2 PUBLIC contrib-libs-cxxsupp yutil cpp-testing-unittest_main + version_definition cpp-testing-unittest core-blobstorage-backpressure core-blobstorage-groupinfo @@ -25,10 +26,10 @@ target_link_options(ydb-core-blobstorage-ut_vdisk2 PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_vdisk2 PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/env.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/huge.cpp ) set_property( @@ -56,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_vdisk2/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/ut_vdisk2/CMakeLists.darwin-x86_64.txt index c9c054200586..a163d72935b2 100644 --- a/ydb/core/blobstorage/ut_vdisk2/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/ut_vdisk2/CMakeLists.darwin-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-ut_vdisk2 PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition cpp-testing-unittest core-blobstorage-backpressure core-blobstorage-groupinfo @@ -26,10 +27,10 @@ target_link_options(ydb-core-blobstorage-ut_vdisk2 PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-ut_vdisk2 PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/env.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/huge.cpp ) set_property( @@ -57,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_vdisk2/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/ut_vdisk2/CMakeLists.linux-aarch64.txt index 210d080cf96e..767d418c4ebf 100644 --- a/ydb/core/blobstorage/ut_vdisk2/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/ut_vdisk2/CMakeLists.linux-aarch64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-ut_vdisk2 PUBLIC contrib-libs-cxxsupp yutil cpp-testing-unittest_main + version_definition cpp-testing-unittest core-blobstorage-backpressure core-blobstorage-groupinfo @@ -28,11 +29,10 @@ target_link_options(ydb-core-blobstorage-ut_vdisk2 PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_vdisk2 PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/env.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/huge.cpp ) set_property( @@ -60,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_vdisk2/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/ut_vdisk2/CMakeLists.linux-x86_64.txt index 2fbd10f34ad1..b6cfc5355922 100644 --- a/ydb/core/blobstorage/ut_vdisk2/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/ut_vdisk2/CMakeLists.linux-x86_64.txt @@ -14,6 +14,7 @@ target_link_libraries(ydb-core-blobstorage-ut_vdisk2 PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition cpp-testing-unittest core-blobstorage-backpressure core-blobstorage-groupinfo @@ -29,11 +30,10 @@ target_link_options(ydb-core-blobstorage-ut_vdisk2 PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-ut_vdisk2 PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/env.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/huge.cpp ) set_property( @@ -61,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_vdisk2/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/ut_vdisk2/CMakeLists.windows-x86_64.txt index 9f290235a737..19ffd0ac9b8f 100644 --- a/ydb/core/blobstorage/ut_vdisk2/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/ut_vdisk2/CMakeLists.windows-x86_64.txt @@ -13,6 +13,7 @@ target_link_libraries(ydb-core-blobstorage-ut_vdisk2 PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition cpp-testing-unittest core-blobstorage-backpressure core-blobstorage-groupinfo @@ -23,6 +24,8 @@ target_link_libraries(ydb-core-blobstorage-ut_vdisk2 PUBLIC udf-service-stub ) target_sources(ydb-core-blobstorage-ut_vdisk2 PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/env.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/ut_vdisk2/huge.cpp ) set_property( @@ -50,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/ut_vdisk2/env.h b/ydb/core/blobstorage/ut_vdisk2/env.h index f1019a874082..608dc28b3965 100644 --- a/ydb/core/blobstorage/ut_vdisk2/env.h +++ b/ydb/core/blobstorage/ut_vdisk2/env.h @@ -112,6 +112,7 @@ namespace NKikimr { NPDisk::DEVICE_TYPE_SSD, VSlotId, NKikimrBlobStorage::TVDiskKind::Default, 1, "static"); VDiskConfig = AllVDiskKinds->MakeVDiskConfig(baseInfo); + VDiskConfig->UseCostTracker = false; // create and register actor std::unique_ptr vdisk(NKikimr::CreateVDisk(VDiskConfig, Info, Counters->GetSubgroup("subsystem", "vdisk"))); diff --git a/ydb/core/blobstorage/ut_vdisk2/ya.make b/ydb/core/blobstorage/ut_vdisk2/ya.make index 8d2d47103207..394f0576b6ac 100644 --- a/ydb/core/blobstorage/ut_vdisk2/ya.make +++ b/ydb/core/blobstorage/ut_vdisk2/ya.make @@ -16,6 +16,7 @@ SRCS( ) PEERDIR( + ydb/apps/version library/cpp/testing/unittest ydb/core/blobstorage/backpressure ydb/core/blobstorage/groupinfo diff --git a/ydb/core/blobstorage/vdisk/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/CMakeLists.darwin-arm64.txt index 2632812048ef..5c642863c60f 100644 --- a/ydb/core/blobstorage/vdisk/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/CMakeLists.darwin-arm64.txt @@ -7,6 +7,7 @@ add_subdirectory(anubis_osiris) +add_subdirectory(balance) add_subdirectory(common) add_subdirectory(defrag) add_subdirectory(handoff) @@ -45,5 +46,8 @@ target_link_libraries(core-blobstorage-vdisk PUBLIC blobstorage-vdisk-synclog ) target_sources(core-blobstorage-vdisk PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_services.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_actor.cpp ) diff --git a/ydb/core/blobstorage/vdisk/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/CMakeLists.darwin-x86_64.txt index 2632812048ef..5c642863c60f 100644 --- a/ydb/core/blobstorage/vdisk/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/CMakeLists.darwin-x86_64.txt @@ -7,6 +7,7 @@ add_subdirectory(anubis_osiris) +add_subdirectory(balance) add_subdirectory(common) add_subdirectory(defrag) add_subdirectory(handoff) @@ -45,5 +46,8 @@ target_link_libraries(core-blobstorage-vdisk PUBLIC blobstorage-vdisk-synclog ) target_sources(core-blobstorage-vdisk PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_services.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_actor.cpp ) diff --git a/ydb/core/blobstorage/vdisk/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/CMakeLists.linux-aarch64.txt index 9428ff308e7b..4b1efaa44dcc 100644 --- a/ydb/core/blobstorage/vdisk/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/CMakeLists.linux-aarch64.txt @@ -7,6 +7,7 @@ add_subdirectory(anubis_osiris) +add_subdirectory(balance) add_subdirectory(common) add_subdirectory(defrag) add_subdirectory(handoff) @@ -46,5 +47,8 @@ target_link_libraries(core-blobstorage-vdisk PUBLIC blobstorage-vdisk-synclog ) target_sources(core-blobstorage-vdisk PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_services.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_actor.cpp ) diff --git a/ydb/core/blobstorage/vdisk/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/CMakeLists.linux-x86_64.txt index 9428ff308e7b..4b1efaa44dcc 100644 --- a/ydb/core/blobstorage/vdisk/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/CMakeLists.linux-x86_64.txt @@ -7,6 +7,7 @@ add_subdirectory(anubis_osiris) +add_subdirectory(balance) add_subdirectory(common) add_subdirectory(defrag) add_subdirectory(handoff) @@ -46,5 +47,8 @@ target_link_libraries(core-blobstorage-vdisk PUBLIC blobstorage-vdisk-synclog ) target_sources(core-blobstorage-vdisk PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_services.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_actor.cpp ) diff --git a/ydb/core/blobstorage/vdisk/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/CMakeLists.windows-x86_64.txt index 2632812048ef..5c642863c60f 100644 --- a/ydb/core/blobstorage/vdisk/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/CMakeLists.windows-x86_64.txt @@ -7,6 +7,7 @@ add_subdirectory(anubis_osiris) +add_subdirectory(balance) add_subdirectory(common) add_subdirectory(defrag) add_subdirectory(handoff) @@ -45,5 +46,8 @@ target_link_libraries(core-blobstorage-vdisk PUBLIC blobstorage-vdisk-synclog ) target_sources(core-blobstorage-vdisk PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_services.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/vdisk_actor.cpp ) diff --git a/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.darwin-arm64.txt index 308e5d11ad1c..38ce022d34c8 100644 --- a/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.darwin-arm64.txt @@ -24,6 +24,7 @@ target_link_libraries(blobstorage-vdisk-anubis_osiris PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-anubis_osiris PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_algo.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_osiris.cpp diff --git a/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.darwin-x86_64.txt index 308e5d11ad1c..38ce022d34c8 100644 --- a/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.darwin-x86_64.txt @@ -24,6 +24,7 @@ target_link_libraries(blobstorage-vdisk-anubis_osiris PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-anubis_osiris PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_algo.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_osiris.cpp diff --git a/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.linux-aarch64.txt index c73f259c813b..ff58974819fb 100644 --- a/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.linux-aarch64.txt @@ -25,6 +25,7 @@ target_link_libraries(blobstorage-vdisk-anubis_osiris PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-anubis_osiris PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_algo.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_osiris.cpp diff --git a/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.linux-x86_64.txt index c73f259c813b..ff58974819fb 100644 --- a/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.linux-x86_64.txt @@ -25,6 +25,7 @@ target_link_libraries(blobstorage-vdisk-anubis_osiris PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-anubis_osiris PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_algo.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_osiris.cpp diff --git a/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.windows-x86_64.txt index 308e5d11ad1c..38ce022d34c8 100644 --- a/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/anubis_osiris/CMakeLists.windows-x86_64.txt @@ -24,6 +24,7 @@ target_link_libraries(blobstorage-vdisk-anubis_osiris PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-anubis_osiris PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_algo.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_osiris.cpp diff --git a/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.darwin-arm64.txt index 4ffcd6efbca5..5f7666f59222 100644 --- a/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.darwin-arm64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-core-blobstorage-vdisk-anubis_osiris-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-anubis_osiris-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_algo_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.darwin-x86_64.txt index 18783cd684a8..4324ab1f5136 100644 --- a/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.darwin-x86_64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-core-blobstorage-vdisk-anubis_osiris-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-anubis_osiris-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_algo_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.linux-aarch64.txt index dbf401412f85..5f2834527b7f 100644 --- a/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.linux-aarch64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-core-blobstorage-vdisk-anubis_osiris-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-anubis_osiris-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_algo_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.linux-x86_64.txt index b23696e67419..92d2f44edd52 100644 --- a/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.linux-x86_64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-core-blobstorage-vdisk-anubis_osiris-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-anubis_osiris-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/anubis_osiris/blobstorage_anubis_algo_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.windows-x86_64.txt index d9a75e334908..c6617449f9ec 100644 --- a/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/anubis_osiris/ut/CMakeLists.windows-x86_64.txt @@ -49,6 +49,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/balance/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/balance/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..d42ed53dd56c --- /dev/null +++ b/ydb/core/blobstorage/vdisk/balance/CMakeLists.darwin-arm64.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(blobstorage-vdisk-balance) +target_link_libraries(blobstorage-vdisk-balance PUBLIC + contrib-libs-cxxsupp + yutil + core-blobstorage-base + core-blobstorage-groupinfo + blobstorage-vdisk-common + blobstorage-vdisk-hulldb + blobstorage-vdisk-ingress + blobstorage-vdisk-repl +) +target_sources(blobstorage-vdisk-balance PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/balance/balancing_actor.cpp +) diff --git a/ydb/core/blobstorage/vdisk/balance/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/balance/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..d42ed53dd56c --- /dev/null +++ b/ydb/core/blobstorage/vdisk/balance/CMakeLists.darwin-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(blobstorage-vdisk-balance) +target_link_libraries(blobstorage-vdisk-balance PUBLIC + contrib-libs-cxxsupp + yutil + core-blobstorage-base + core-blobstorage-groupinfo + blobstorage-vdisk-common + blobstorage-vdisk-hulldb + blobstorage-vdisk-ingress + blobstorage-vdisk-repl +) +target_sources(blobstorage-vdisk-balance PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/balance/balancing_actor.cpp +) diff --git a/ydb/core/blobstorage/vdisk/balance/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/balance/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..b9e3ca7f7a4b --- /dev/null +++ b/ydb/core/blobstorage/vdisk/balance/CMakeLists.linux-aarch64.txt @@ -0,0 +1,24 @@ + +# 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(blobstorage-vdisk-balance) +target_link_libraries(blobstorage-vdisk-balance PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + core-blobstorage-base + core-blobstorage-groupinfo + blobstorage-vdisk-common + blobstorage-vdisk-hulldb + blobstorage-vdisk-ingress + blobstorage-vdisk-repl +) +target_sources(blobstorage-vdisk-balance PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/balance/balancing_actor.cpp +) diff --git a/ydb/core/blobstorage/vdisk/balance/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/balance/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..b9e3ca7f7a4b --- /dev/null +++ b/ydb/core/blobstorage/vdisk/balance/CMakeLists.linux-x86_64.txt @@ -0,0 +1,24 @@ + +# 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(blobstorage-vdisk-balance) +target_link_libraries(blobstorage-vdisk-balance PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + core-blobstorage-base + core-blobstorage-groupinfo + blobstorage-vdisk-common + blobstorage-vdisk-hulldb + blobstorage-vdisk-ingress + blobstorage-vdisk-repl +) +target_sources(blobstorage-vdisk-balance PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/balance/balancing_actor.cpp +) diff --git a/ydb/core/blobstorage/vdisk/balance/CMakeLists.txt b/ydb/core/blobstorage/vdisk/balance/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/blobstorage/vdisk/balance/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/blobstorage/vdisk/balance/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/balance/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..d42ed53dd56c --- /dev/null +++ b/ydb/core/blobstorage/vdisk/balance/CMakeLists.windows-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(blobstorage-vdisk-balance) +target_link_libraries(blobstorage-vdisk-balance PUBLIC + contrib-libs-cxxsupp + yutil + core-blobstorage-base + core-blobstorage-groupinfo + blobstorage-vdisk-common + blobstorage-vdisk-hulldb + blobstorage-vdisk-ingress + blobstorage-vdisk-repl +) +target_sources(blobstorage-vdisk-balance PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/balance/balancing_actor.cpp +) diff --git a/ydb/core/blobstorage/vdisk/common/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/common/CMakeLists.darwin-arm64.txt index f746d947c182..bb93784e376e 100644 --- a/ydb/core/blobstorage/vdisk/common/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/common/CMakeLists.darwin-arm64.txt @@ -20,6 +20,38 @@ target_link_libraries(blobstorage-vdisk-common PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/align.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_dblogcutter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_event_filter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_status.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_vdisk_guids.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/disk_part.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/sublog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_config.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_context.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_costmodel.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_dbtype.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_defrag.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_handle_class.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_histogram_latency.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_histograms.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_hugeblobctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_hulllogctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_lsnmngr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_mongroups.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_outofspace.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_pdisk_error.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_pdiskctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_private_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_queues.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_recoverylogwriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_response.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_syncneighbors.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_cost_tracker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_dblogcutter.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_event_filter.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_status.cpp diff --git a/ydb/core/blobstorage/vdisk/common/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/common/CMakeLists.darwin-x86_64.txt index f746d947c182..bb93784e376e 100644 --- a/ydb/core/blobstorage/vdisk/common/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/common/CMakeLists.darwin-x86_64.txt @@ -20,6 +20,38 @@ target_link_libraries(blobstorage-vdisk-common PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/align.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_dblogcutter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_event_filter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_status.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_vdisk_guids.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/disk_part.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/sublog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_config.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_context.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_costmodel.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_dbtype.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_defrag.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_handle_class.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_histogram_latency.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_histograms.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_hugeblobctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_hulllogctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_lsnmngr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_mongroups.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_outofspace.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_pdisk_error.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_pdiskctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_private_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_queues.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_recoverylogwriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_response.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_syncneighbors.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_cost_tracker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_dblogcutter.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_event_filter.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_status.cpp diff --git a/ydb/core/blobstorage/vdisk/common/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/common/CMakeLists.linux-aarch64.txt index b1e8f91af068..abc6c9a88083 100644 --- a/ydb/core/blobstorage/vdisk/common/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/common/CMakeLists.linux-aarch64.txt @@ -21,6 +21,38 @@ target_link_libraries(blobstorage-vdisk-common PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/align.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_dblogcutter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_event_filter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_status.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_vdisk_guids.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/disk_part.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/sublog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_config.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_context.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_costmodel.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_dbtype.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_defrag.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_handle_class.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_histogram_latency.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_histograms.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_hugeblobctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_hulllogctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_lsnmngr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_mongroups.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_outofspace.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_pdisk_error.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_pdiskctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_private_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_queues.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_recoverylogwriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_response.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_syncneighbors.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_cost_tracker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_dblogcutter.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_event_filter.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_status.cpp diff --git a/ydb/core/blobstorage/vdisk/common/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/common/CMakeLists.linux-x86_64.txt index b1e8f91af068..abc6c9a88083 100644 --- a/ydb/core/blobstorage/vdisk/common/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/common/CMakeLists.linux-x86_64.txt @@ -21,6 +21,38 @@ target_link_libraries(blobstorage-vdisk-common PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/align.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_dblogcutter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_event_filter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_status.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_vdisk_guids.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/disk_part.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/sublog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_config.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_context.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_costmodel.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_dbtype.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_defrag.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_handle_class.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_histogram_latency.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_histograms.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_hugeblobctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_hulllogctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_lsnmngr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_mongroups.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_outofspace.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_pdisk_error.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_pdiskctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_private_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_queues.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_recoverylogwriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_response.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_syncneighbors.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_cost_tracker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_dblogcutter.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_event_filter.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_status.cpp diff --git a/ydb/core/blobstorage/vdisk/common/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/common/CMakeLists.windows-x86_64.txt index f746d947c182..bb93784e376e 100644 --- a/ydb/core/blobstorage/vdisk/common/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/common/CMakeLists.windows-x86_64.txt @@ -20,6 +20,38 @@ target_link_libraries(blobstorage-vdisk-common PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/align.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_dblogcutter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_event_filter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_status.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_vdisk_guids.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/disk_part.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/sublog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_config.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_context.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_costmodel.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_dbtype.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_defrag.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_handle_class.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_histogram_latency.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_histograms.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_hugeblobctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_hulllogctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_lsnmngr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_mongroups.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_outofspace.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_pdisk_error.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_pdiskctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_private_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_queues.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_recoverylogwriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_response.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/vdisk_syncneighbors.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_cost_tracker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_dblogcutter.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_event_filter.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/blobstorage_status.cpp diff --git a/ydb/core/blobstorage/vdisk/common/blobstorage_cost_tracker.cpp b/ydb/core/blobstorage/vdisk/common/blobstorage_cost_tracker.cpp index 87eeafc2e7fa..7e6787f76ddd 100644 --- a/ydb/core/blobstorage/vdisk/common/blobstorage_cost_tracker.cpp +++ b/ydb/core/blobstorage/vdisk/common/blobstorage_cost_tracker.cpp @@ -8,6 +8,12 @@ const TDiskOperationCostEstimator TBsCostModelBase::HDDEstimator{ { 6.089e+06, 8.1 }, // HugeWriteCoefficients }; +const TDiskOperationCostEstimator TBsCostModelBase::SSDEstimator{ + { 180000, 3.00 }, // ReadCoefficients + { 430, 4.2 }, // WriteCoefficients + { 110000, 3.6 }, // HugeWriteCoefficients +}; + const TDiskOperationCostEstimator TBsCostModelBase::NVMEEstimator{ { 10000, 1.3 }, // ReadCoefficients { 3300, 1.5 }, // WriteCoefficients @@ -36,7 +42,8 @@ class TBsCostModelMirror3of4 : public TBsCostModelBase { }; TBsCostTracker::TBsCostTracker(const TBlobStorageGroupType& groupType, NPDisk::EDeviceType diskType, - const TIntrusivePtr<::NMonitoring::TDynamicCounters>& counters) + const TIntrusivePtr<::NMonitoring::TDynamicCounters>& counters, + const TCostMetricsParameters& costMetricsParameters) : GroupType(groupType) , CostCounters(counters->GetSubgroup("subsystem", "advancedCost")) , UserDiskCost(CostCounters->GetCounter("UserDiskCost", true)) @@ -44,7 +51,13 @@ TBsCostTracker::TBsCostTracker(const TBlobStorageGroupType& groupType, NPDisk::E , ScrubDiskCost(CostCounters->GetCounter("ScrubDiskCost", true)) , DefragDiskCost(CostCounters->GetCounter("DefragDiskCost", true)) , InternalDiskCost(CostCounters->GetCounter("InternalDiskCost", true)) + , DiskTimeAvailableCtr(CostCounters->GetCounter("DiskTimeAvailable", false)) + , Bucket(&DiskTimeAvailable, &BucketCapacity, nullptr, nullptr, nullptr, nullptr, true) + , BurstThresholdNs(costMetricsParameters.BurstThresholdNs) + , DiskTimeAvailableScale(costMetricsParameters.DiskTimeAvailableScale) { + AtomicSet(BucketCapacity, GetDiskTimeAvailableScale() * BurstThresholdNs); + BurstDetector.Initialize(CostCounters, "BurstDetector"); switch (GroupType.GetErasure()) { case TBlobStorageGroupType::ErasureMirror3dc: CostModel = std::make_unique(diskType); diff --git a/ydb/core/blobstorage/vdisk/common/blobstorage_cost_tracker.h b/ydb/core/blobstorage/vdisk/common/blobstorage_cost_tracker.h index baf9f6fa9f1e..6832df748826 100644 --- a/ydb/core/blobstorage/vdisk/common/blobstorage_cost_tracker.h +++ b/ydb/core/blobstorage/vdisk/common/blobstorage_cost_tracker.h @@ -4,9 +4,14 @@ #include "vdisk_costmodel.h" #include "vdisk_events.h" #include "vdisk_handle_class.h" +#include "vdisk_mongroups.h" +#include "vdisk_performance_params.h" +#include #include +#include #include +#include namespace NKikimr { @@ -48,6 +53,8 @@ class TBsCostModelBase { virtual ~TBsCostModelBase() = default; + friend class TBsCostTracker; + protected: NPDisk::EDeviceType DeviceType = NPDisk::DEVICE_TYPE_UNKNOWN; @@ -63,6 +70,7 @@ class TBsCostModelBase { ui64 PDiskWriteBlockSize = 4ull * 1'000'000; // 4MB static const TDiskOperationCostEstimator HDDEstimator; + static const TDiskOperationCostEstimator SSDEstimator; static const TDiskOperationCostEstimator NVMEEstimator; private: @@ -100,6 +108,9 @@ class TBsCostModelBase { case NPDisk::DEVICE_TYPE_ROT: { return HDDEstimator.Write(chunkSize); } + case NPDisk::DEVICE_TYPE_SSD: { + return SSDEstimator.Write(chunkSize); + } case NPDisk::DEVICE_TYPE_NVME: { return NVMEEstimator.Write(chunkSize); } @@ -116,6 +127,9 @@ class TBsCostModelBase { case NPDisk::DEVICE_TYPE_ROT: { return HDDEstimator.HugeWrite(chunkSize); } + case NPDisk::DEVICE_TYPE_SSD: { + return SSDEstimator.HugeWrite(chunkSize); + } case NPDisk::DEVICE_TYPE_NVME: { return NVMEEstimator.HugeWrite(chunkSize); } @@ -133,6 +147,9 @@ class TBsCostModelBase { case NPDisk::DEVICE_TYPE_ROT: { return HDDEstimator.Read(chunkSize); } + case NPDisk::DEVICE_TYPE_SSD: { + return SSDEstimator.Read(chunkSize); + } case NPDisk::DEVICE_TYPE_NVME: { return NVMEEstimator.Read(chunkSize); } @@ -263,6 +280,29 @@ class TBsCostModelBase { } }; +struct TFailTimer { + using TTime = TInstant; + static TTime Now() { + Y_FAIL(); + } +}; + +template +struct TAppDataTimerMs { + using TTime = TInstant; + static constexpr ui64 Resolution = 1000ull; // milliseconds + static TTime Now() { + if (NKikimr::TAppData::TimeProvider) { + return NKikimr::TAppData::TimeProvider->Now(); + } else { + return TBackupTimer::Now(); + } + } + static ui64 Duration(TTime from, TTime to) { + return (to - from).MilliSeconds(); + } +}; + using TBsCostModelErasureNone = TBsCostModelBase; class TBsCostModelMirror3dc; class TBsCostModel4Plus2Block; @@ -272,18 +312,29 @@ class TBsCostTracker { private: TBlobStorageGroupType GroupType; std::unique_ptr CostModel; - - const TIntrusivePtr<::NMonitoring::TDynamicCounters> CostCounters; + TIntrusivePtr<::NMonitoring::TDynamicCounters> CostCounters; ::NMonitoring::TDynamicCounters::TCounterPtr UserDiskCost; ::NMonitoring::TDynamicCounters::TCounterPtr CompactionDiskCost; ::NMonitoring::TDynamicCounters::TCounterPtr ScrubDiskCost; ::NMonitoring::TDynamicCounters::TCounterPtr DefragDiskCost; ::NMonitoring::TDynamicCounters::TCounterPtr InternalDiskCost; + ::NMonitoring::TDynamicCounters::TCounterPtr DiskTimeAvailableCtr; + + TAtomic BucketCapacity = 1'000'000'000; // 10^9 nsec + TAtomic DiskTimeAvailable = 1'000'000'000; + TBucketQuoter> Bucket; + TLight BurstDetector; + std::atomic SeqnoBurstDetector = 0; + static constexpr ui32 ConcurrentHugeRequestsAllowed = 3; + + TMemorizableControlWrapper BurstThresholdNs; + TMemorizableControlWrapper DiskTimeAvailableScale; public: TBsCostTracker(const TBlobStorageGroupType& groupType, NPDisk::EDeviceType diskType, - const TIntrusivePtr<::NMonitoring::TDynamicCounters>& counters); + const TIntrusivePtr<::NMonitoring::TDynamicCounters>& counters, + const TCostMetricsParameters& costMetricsParameters); template ui64 GetCost(const TEv& ev) const { @@ -296,9 +347,6 @@ class TBsCostTracker { return cost; } - /// SETTINGS - void UpdateFromVDiskSettings(NKikimrBlobStorage::TVDiskCostSettings &settings) const; - public: void UpdateCostModel(const TCostModel& costModel) { if (CostModel) { @@ -306,38 +354,72 @@ class TBsCostTracker { } } + void CountRequest(ui64 cost) { + AtomicSet(BucketCapacity, GetDiskTimeAvailableScale() * BurstThresholdNs.Update(TAppData::TimeProvider->Now())); + Bucket.UseAndFill(cost); + BurstDetector.Set(!Bucket.IsAvail(), SeqnoBurstDetector.fetch_add(1)); + } + + void SetTimeAvailable(ui64 diskTimeAvailableNSec) { + ui64 diskTimeAvailable = diskTimeAvailableNSec * GetDiskTimeAvailableScale(); + + AtomicSet(DiskTimeAvailable, diskTimeAvailable); + *DiskTimeAvailableCtr = diskTimeAvailable; + } + public: template void CountUserRequest(const TEvent& ev) { - *UserDiskCost += GetCost(ev); + ui64 cost = GetCost(ev); + *UserDiskCost += cost; + CountRequest(cost); } void CountUserCost(ui64 cost) { *UserDiskCost += cost; + CountRequest(cost); } template void CountCompactionRequest(const TEvent& ev) { - *CompactionDiskCost += GetCost(ev); + ui64 cost = GetCost(ev); + *CompactionDiskCost += cost; + CountRequest(cost); } template void CountScrubRequest(const TEvent& ev) { - *UserDiskCost += GetCost(ev); + ui64 cost = GetCost(ev); + *UserDiskCost += cost; + CountRequest(cost); } template void CountDefragRequest(const TEvent& ev) { - *DefragDiskCost += GetCost(ev); + ui64 cost = GetCost(ev); + *DefragDiskCost += cost; + CountRequest(cost); } template void CountInternalRequest(const TEvent& ev) { - *InternalDiskCost += GetCost(ev); + ui64 cost = GetCost(ev); + *InternalDiskCost += cost; + CountRequest(cost); } void CountInternalCost(ui64 cost) { *InternalDiskCost += cost; + CountRequest(cost); + } + + void CountPDiskResponse() { + BurstDetector.Set(!Bucket.IsAvail(), SeqnoBurstDetector.fetch_add(1)); + } + +private: + float GetDiskTimeAvailableScale() { + return 0.001 * DiskTimeAvailableScale.Update(TAppData::TimeProvider->Now()); } }; diff --git a/ydb/core/blobstorage/vdisk/common/blobstorage_event_filter.cpp b/ydb/core/blobstorage/vdisk/common/blobstorage_event_filter.cpp index ee912aff02e3..34603f90b722 100644 --- a/ydb/core/blobstorage/vdisk/common/blobstorage_event_filter.cpp +++ b/ydb/core/blobstorage/vdisk/common/blobstorage_event_filter.cpp @@ -54,12 +54,6 @@ namespace NKikimr { TEvBlobStorage::EvControllerUpdateDiskStatus, TEvBlobStorage::EvControllerConfigRequest, TEvBlobStorage::EvControllerConfigResponse, - TEvBlobStorage::EvControllerVDiskStatusSubscribeRequest, - TEvBlobStorage::EvControllerVDiskStatusReport, - TEvBlobStorage::EvControllerGroupStatusRequest, - TEvBlobStorage::EvControllerGroupStatusResponse, - TEvBlobStorage::EvControllerUpdateGroup, - TEvBlobStorage::EvControllerUpdateFaultyDisks, TEvBlobStorage::EvControllerUpdateGroupStat, TEvBlobStorage::EvControllerSelectGroupsResult, diff --git a/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.darwin-arm64.txt index d2830e33d7d4..dc0200148a9b 100644 --- a/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-blobstorage-vdisk-common-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/circlebufresize_ut.cpp @@ -65,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.darwin-x86_64.txt index 4db5b1a24d58..d2c6159332d9 100644 --- a/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-blobstorage-vdisk-common-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/circlebufresize_ut.cpp @@ -66,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.linux-aarch64.txt index 854e38b0dec1..45ac0cbcd14a 100644 --- a/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-blobstorage-vdisk-common-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/circlebufresize_ut.cpp @@ -69,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.linux-x86_64.txt index cae0ebc50fb2..deb2980faa3a 100644 --- a/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-blobstorage-vdisk-common-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/common/circlebufresize_ut.cpp @@ -70,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.windows-x86_64.txt index 13f43bbab632..4cc23b384a7e 100644 --- a/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/common/ut/CMakeLists.windows-x86_64.txt @@ -59,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/common/vdisk_config.cpp b/ydb/core/blobstorage/vdisk/common/vdisk_config.cpp index 49378e396817..618b384591ce 100644 --- a/ydb/core/blobstorage/vdisk/common/vdisk_config.cpp +++ b/ydb/core/blobstorage/vdisk/common/vdisk_config.cpp @@ -119,6 +119,7 @@ namespace NKikimr { #else BarrierValidation = true; // switch by default on debug builds #endif + } void TVDiskConfig::SetupHugeBytes() { @@ -160,6 +161,7 @@ namespace NKikimr { UPDATE_MACRO(ReplInterconnectChannel); UPDATE_MACRO(BarrierValidation); + #undef UPDATE_MACRO } @@ -180,6 +182,15 @@ namespace NKikimr { ParseConfig(); } + TAllVDiskKinds::TAllVDiskKinds(const NKikimrBlobStorage::TAllVDiskKinds &proto) + : AllKindsConfig() + , VDiskMegaBaseConfig(TVDiskConfig::TBaseInfo()) + , KindsMap() + { + AllKindsConfig.CopyFrom(proto); + ParseConfig(); + } + TIntrusivePtr TAllVDiskKinds::MakeVDiskConfig(const TVDiskConfig::TBaseInfo &baseInfo) { EKind k = baseInfo.Kind; TVector merge; diff --git a/ydb/core/blobstorage/vdisk/common/vdisk_config.h b/ydb/core/blobstorage/vdisk/common/vdisk_config.h index 93efc58d34fa..4fed5f2e0ad8 100644 --- a/ydb/core/blobstorage/vdisk/common/vdisk_config.h +++ b/ydb/core/blobstorage/vdisk/common/vdisk_config.h @@ -1,5 +1,8 @@ #pragma once #include "defs.h" + +#include "vdisk_performance_params.h" + #include #include #include @@ -210,6 +213,10 @@ namespace NKikimr { bool EnableVDiskCooldownTimeout; TControlWrapper EnableVPatch = true; + ///////////// COST METRICS SETTINGS //////////////// + bool UseCostTracker = true; + TCostMetricsParametersByMedia CostMetricsParametersByMedia; + ///////////// FEATURE FLAGS //////////////////////// NKikimrConfig::TFeatureFlags FeatureFlags; @@ -228,6 +235,7 @@ namespace NKikimr { class TAllVDiskKinds : public TThrRefBase { public: TAllVDiskKinds(const TString &prototext = TString()); + TAllVDiskKinds(const NKikimrBlobStorage::TAllVDiskKinds &proto); TIntrusivePtr MakeVDiskConfig(const TVDiskConfig::TBaseInfo &baseInfo); void Merge(const NKikimrBlobStorage::TAllVDiskKinds &allVDiskKinds); diff --git a/ydb/core/blobstorage/vdisk/common/vdisk_context.cpp b/ydb/core/blobstorage/vdisk/common/vdisk_context.cpp index 6a6c80e8df0f..d1dcbccaec1a 100644 --- a/ydb/core/blobstorage/vdisk/common/vdisk_context.cpp +++ b/ydb/core/blobstorage/vdisk/common/vdisk_context.cpp @@ -57,7 +57,7 @@ namespace NKikimr { , ReplPDiskWriteQuoter(std::move(replPDiskWriteQuoter)) , ReplNodeRequestQuoter(std::move(replNodeRequestQuoter)) , ReplNodeResponseQuoter(std::move(replNodeResponseQuoter)) - , CostTracker(std::make_shared(Top->GType, type, vdiskCounters)) + , CostTracker() , OutOfSpaceState(Top->GetTotalVDisksNum(), Top->GetOrderNumber(ShortSelfVDisk)) , CostMonGroup(vdiskCounters, "subsystem", "cost") , Logger(as ? ActorSystemLogger(as) : DevNullLogger()) diff --git a/ydb/core/blobstorage/vdisk/common/vdisk_context.h b/ydb/core/blobstorage/vdisk/common/vdisk_context.h index 09a5f0b1bf96..e1ac1338599a 100644 --- a/ydb/core/blobstorage/vdisk/common/vdisk_context.h +++ b/ydb/core/blobstorage/vdisk/common/vdisk_context.h @@ -68,7 +68,7 @@ namespace NKikimr { TString LocalRecoveryErrorStr; std::unique_ptr CostModel; - std::shared_ptr CostTracker; + std::unique_ptr CostTracker; private: // Managing disk space @@ -174,7 +174,9 @@ namespace NKikimr { if (CostModel) { CostMonGroup.DefragCostNs() += CostModel->GetCost(ev); } - CostTracker->CountDefragRequest(ev); + if (CostTracker) { + CostTracker->CountDefragRequest(ev); + } } template @@ -182,7 +184,9 @@ namespace NKikimr { if (CostModel) { CostMonGroup.ScrubCostNs() += CostModel->GetCost(ev); } - CostTracker->CountScrubRequest(ev); + if (CostTracker) { + CostTracker->CountScrubRequest(ev); + } } template @@ -190,12 +194,14 @@ namespace NKikimr { if (CostModel) { CostMonGroup.CompactionCostNs() += CostModel->GetCost(ev); } - CostTracker->CountCompactionRequest(ev); + if (CostTracker) { + CostTracker->CountCompactionRequest(ev); + } } void UpdateCostModel(std::unique_ptr&& newCostModel) { CostModel = std::move(newCostModel); - if (CostModel) { + if (CostModel && CostTracker) { CostTracker->UpdateCostModel(*CostModel); } } diff --git a/ydb/core/blobstorage/vdisk/common/vdisk_events.h b/ydb/core/blobstorage/vdisk/common/vdisk_events.h index f33888e534a9..dfc24c096ff9 100644 --- a/ydb/core/blobstorage/vdisk/common/vdisk_events.h +++ b/ydb/core/blobstorage/vdisk/common/vdisk_events.h @@ -366,10 +366,12 @@ namespace NKikimr { : public TEventLocal { TVMsgContext Ctx; std::unique_ptr Event; + bool DoNotResend; - TEvVDiskRequestCompleted(const TVMsgContext &ctx, std::unique_ptr event) + TEvVDiskRequestCompleted(const TVMsgContext &ctx, std::unique_ptr event, bool doNotResend = false) : Ctx(ctx) , Event(std::move(event)) + , DoNotResend(doNotResend) { Y_DEBUG_ABORT_UNLESS(Ctx.ExtQueueId != NKikimrBlobStorage::EVDiskQueueId::Unknown); Y_DEBUG_ABORT_UNLESS(Ctx.IntQueueId != NKikimrBlobStorage::EVDiskInternalQueueId::IntUnknown); @@ -468,6 +470,9 @@ namespace NKikimr { TActorIDPtr SkeletonFrontIDPtr; THPTimer ExecutionTimer; + protected: + bool DoNotResendFromSkeletonFront = false; + public: TEvVResultBaseWithQoSPB() = default; @@ -526,7 +531,7 @@ namespace NKikimr { byteSize, this->ToString().data()); if (SkeletonFrontIDPtr && MsgCtx.IntQueueId != NKikimrBlobStorage::IntUnknown) { - ctx.Send(*SkeletonFrontIDPtr, new TEvVDiskRequestCompleted(MsgCtx, std::move(ev))); + ctx.Send(*SkeletonFrontIDPtr, new TEvVDiskRequestCompleted(MsgCtx, std::move(ev), DoNotResendFromSkeletonFront)); } else { TActivationContext::Send(ev.release()); } @@ -2182,6 +2187,10 @@ namespace NKikimr { Record.SetApproximateFreeSpaceShare(approximateFreeSpaceShare); } + void SetForceEndResponse() { + DoNotResendFromSkeletonFront = true; + } + void MakeError(NKikimrProto::EReplyStatus status, const TString &errorReason, const NKikimrBlobStorage::TEvVPatchDiff &request) { diff --git a/ydb/core/blobstorage/vdisk/common/vdisk_performance_params.cpp b/ydb/core/blobstorage/vdisk/common/vdisk_performance_params.cpp new file mode 100644 index 000000000000..14bb5043763f --- /dev/null +++ b/ydb/core/blobstorage/vdisk/common/vdisk_performance_params.cpp @@ -0,0 +1,10 @@ +#include "vdisk_performance_params.h" + +namespace NKikimr { + +TCostMetricsParameters::TCostMetricsParameters(ui64 defaultBurstThresholdMs) + : BurstThresholdNs(defaultBurstThresholdMs * 1'000'000, 1, 1'000'000'000'000) + , DiskTimeAvailableScale(1'000, 1, 1'000'000) +{} + +} // namespace NKikimr diff --git a/ydb/core/blobstorage/vdisk/common/vdisk_performance_params.h b/ydb/core/blobstorage/vdisk/common/vdisk_performance_params.h new file mode 100644 index 000000000000..76e50d42ba0c --- /dev/null +++ b/ydb/core/blobstorage/vdisk/common/vdisk_performance_params.h @@ -0,0 +1,20 @@ +#pragma once + +#include + +#include "defs.h" + +#include +#include + +namespace NKikimr { + +struct TCostMetricsParameters { + TCostMetricsParameters(ui64 defaultBurstThresholdMs = 100); + TControlWrapper BurstThresholdNs; + TControlWrapper DiskTimeAvailableScale; +}; + +using TCostMetricsParametersByMedia = TStackVec; + +} // namespace NKikimr diff --git a/ydb/core/blobstorage/vdisk/common/ya.make b/ydb/core/blobstorage/vdisk/common/ya.make index 62f2b6ae0af8..3004482aef98 100644 --- a/ydb/core/blobstorage/vdisk/common/ya.make +++ b/ydb/core/blobstorage/vdisk/common/ya.make @@ -22,6 +22,7 @@ SRCS( blobstorage_vdisk_guids.h defs.h disk_part.h + vdisk_performance_params.cpp sublog.h vdisk_config.cpp vdisk_config.h diff --git a/ydb/core/blobstorage/vdisk/defrag/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/defrag/CMakeLists.darwin-arm64.txt index 7e3b60a43400..808278b352d6 100644 --- a/ydb/core/blobstorage/vdisk/defrag/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/defrag/CMakeLists.darwin-arm64.txt @@ -17,6 +17,11 @@ target_link_libraries(blobstorage-vdisk-defrag PUBLIC blobstorage-vdisk-hulldb ) target_sources(blobstorage-vdisk-defrag PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_quantum.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_rewriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_search.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_quantum.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_rewriter.cpp diff --git a/ydb/core/blobstorage/vdisk/defrag/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/defrag/CMakeLists.darwin-x86_64.txt index 7e3b60a43400..808278b352d6 100644 --- a/ydb/core/blobstorage/vdisk/defrag/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/defrag/CMakeLists.darwin-x86_64.txt @@ -17,6 +17,11 @@ target_link_libraries(blobstorage-vdisk-defrag PUBLIC blobstorage-vdisk-hulldb ) target_sources(blobstorage-vdisk-defrag PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_quantum.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_rewriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_search.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_quantum.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_rewriter.cpp diff --git a/ydb/core/blobstorage/vdisk/defrag/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/defrag/CMakeLists.linux-aarch64.txt index 8bef9d5b299e..29c43b96cff5 100644 --- a/ydb/core/blobstorage/vdisk/defrag/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/defrag/CMakeLists.linux-aarch64.txt @@ -18,6 +18,11 @@ target_link_libraries(blobstorage-vdisk-defrag PUBLIC blobstorage-vdisk-hulldb ) target_sources(blobstorage-vdisk-defrag PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_quantum.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_rewriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_search.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_quantum.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_rewriter.cpp diff --git a/ydb/core/blobstorage/vdisk/defrag/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/defrag/CMakeLists.linux-x86_64.txt index 8bef9d5b299e..29c43b96cff5 100644 --- a/ydb/core/blobstorage/vdisk/defrag/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/defrag/CMakeLists.linux-x86_64.txt @@ -18,6 +18,11 @@ target_link_libraries(blobstorage-vdisk-defrag PUBLIC blobstorage-vdisk-hulldb ) target_sources(blobstorage-vdisk-defrag PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_quantum.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_rewriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_search.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_quantum.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_rewriter.cpp diff --git a/ydb/core/blobstorage/vdisk/defrag/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/defrag/CMakeLists.windows-x86_64.txt index 7e3b60a43400..808278b352d6 100644 --- a/ydb/core/blobstorage/vdisk/defrag/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/defrag/CMakeLists.windows-x86_64.txt @@ -17,6 +17,11 @@ target_link_libraries(blobstorage-vdisk-defrag PUBLIC blobstorage-vdisk-hulldb ) target_sources(blobstorage-vdisk-defrag PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_quantum.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_rewriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_search.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_quantum.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_rewriter.cpp diff --git a/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.darwin-arm64.txt index 0bf470301287..3c6f8d5222d4 100644 --- a/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.darwin-arm64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-core-blobstorage-vdisk-defrag-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-defrag-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.darwin-x86_64.txt index a81810a624cb..468f090fd276 100644 --- a/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.darwin-x86_64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-core-blobstorage-vdisk-defrag-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-defrag-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.linux-aarch64.txt index 24e3bb98e69b..a6627759c35a 100644 --- a/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.linux-aarch64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-core-blobstorage-vdisk-defrag-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-defrag-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.linux-x86_64.txt index 065b8481b8bd..b854f5ce66fd 100644 --- a/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.linux-x86_64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-core-blobstorage-vdisk-defrag-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-defrag-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/defrag/defrag_actor_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.windows-x86_64.txt index 16ab544bef69..59189ed28566 100644 --- a/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/defrag/ut/CMakeLists.windows-x86_64.txt @@ -49,6 +49,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/handoff/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/handoff/CMakeLists.darwin-arm64.txt index 30d79a88ff93..5b8495fa234e 100644 --- a/ydb/core/blobstorage/vdisk/handoff/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/handoff/CMakeLists.darwin-arm64.txt @@ -21,6 +21,13 @@ target_link_libraries(blobstorage-vdisk-handoff PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-handoff PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_basic.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_delegate.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_map.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_synclogproxy.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_basic.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_delegate.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_map.cpp diff --git a/ydb/core/blobstorage/vdisk/handoff/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/handoff/CMakeLists.darwin-x86_64.txt index 30d79a88ff93..5b8495fa234e 100644 --- a/ydb/core/blobstorage/vdisk/handoff/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/handoff/CMakeLists.darwin-x86_64.txt @@ -21,6 +21,13 @@ target_link_libraries(blobstorage-vdisk-handoff PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-handoff PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_basic.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_delegate.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_map.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_synclogproxy.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_basic.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_delegate.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_map.cpp diff --git a/ydb/core/blobstorage/vdisk/handoff/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/handoff/CMakeLists.linux-aarch64.txt index 1c646bc1a975..b66c3a5ff1f6 100644 --- a/ydb/core/blobstorage/vdisk/handoff/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/handoff/CMakeLists.linux-aarch64.txt @@ -22,6 +22,13 @@ target_link_libraries(blobstorage-vdisk-handoff PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-handoff PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_basic.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_delegate.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_map.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_synclogproxy.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_basic.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_delegate.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_map.cpp diff --git a/ydb/core/blobstorage/vdisk/handoff/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/handoff/CMakeLists.linux-x86_64.txt index 1c646bc1a975..b66c3a5ff1f6 100644 --- a/ydb/core/blobstorage/vdisk/handoff/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/handoff/CMakeLists.linux-x86_64.txt @@ -22,6 +22,13 @@ target_link_libraries(blobstorage-vdisk-handoff PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-handoff PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_basic.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_delegate.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_map.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_synclogproxy.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_basic.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_delegate.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_map.cpp diff --git a/ydb/core/blobstorage/vdisk/handoff/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/handoff/CMakeLists.windows-x86_64.txt index 30d79a88ff93..5b8495fa234e 100644 --- a/ydb/core/blobstorage/vdisk/handoff/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/handoff/CMakeLists.windows-x86_64.txt @@ -21,6 +21,13 @@ target_link_libraries(blobstorage-vdisk-handoff PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-handoff PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_basic.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_delegate.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_map.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_synclogproxy.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_basic.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_delegate.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/handoff/handoff_map.cpp diff --git a/ydb/core/blobstorage/vdisk/huge/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/huge/CMakeLists.darwin-arm64.txt index 589355bf844f..0ba4e848b1f3 100644 --- a/ydb/core/blobstorage/vdisk/huge/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/huge/CMakeLists.darwin-arm64.txt @@ -18,6 +18,12 @@ target_link_libraries(blobstorage-vdisk-huge PUBLIC vdisk-hulldb-base ) target_sources(blobstorage-vdisk-huge PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugerecovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/booltt.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap.cpp diff --git a/ydb/core/blobstorage/vdisk/huge/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/huge/CMakeLists.darwin-x86_64.txt index 589355bf844f..0ba4e848b1f3 100644 --- a/ydb/core/blobstorage/vdisk/huge/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/huge/CMakeLists.darwin-x86_64.txt @@ -18,6 +18,12 @@ target_link_libraries(blobstorage-vdisk-huge PUBLIC vdisk-hulldb-base ) target_sources(blobstorage-vdisk-huge PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugerecovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/booltt.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap.cpp diff --git a/ydb/core/blobstorage/vdisk/huge/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/huge/CMakeLists.linux-aarch64.txt index 00d7bccd97ed..bbb968b4a651 100644 --- a/ydb/core/blobstorage/vdisk/huge/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/huge/CMakeLists.linux-aarch64.txt @@ -19,6 +19,12 @@ target_link_libraries(blobstorage-vdisk-huge PUBLIC vdisk-hulldb-base ) target_sources(blobstorage-vdisk-huge PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugerecovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/booltt.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap.cpp diff --git a/ydb/core/blobstorage/vdisk/huge/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/huge/CMakeLists.linux-x86_64.txt index 00d7bccd97ed..bbb968b4a651 100644 --- a/ydb/core/blobstorage/vdisk/huge/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/huge/CMakeLists.linux-x86_64.txt @@ -19,6 +19,12 @@ target_link_libraries(blobstorage-vdisk-huge PUBLIC vdisk-hulldb-base ) target_sources(blobstorage-vdisk-huge PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugerecovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/booltt.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap.cpp diff --git a/ydb/core/blobstorage/vdisk/huge/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/huge/CMakeLists.windows-x86_64.txt index 589355bf844f..0ba4e848b1f3 100644 --- a/ydb/core/blobstorage/vdisk/huge/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/huge/CMakeLists.windows-x86_64.txt @@ -18,6 +18,12 @@ target_link_libraries(blobstorage-vdisk-huge PUBLIC vdisk-hulldb-base ) target_sources(blobstorage-vdisk-huge PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugerecovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/booltt.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhuge.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap.cpp diff --git a/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap.cpp b/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap.cpp index 7b283455b9b6..df68e38eb662 100644 --- a/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap.cpp +++ b/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugeheap.cpp @@ -538,13 +538,26 @@ namespace NKikimr { } Y_ABORT_UNLESS(loadedIt == loadedEnd); } else { - // entry point size rollback case Y_ABORT_UNLESS(size > ChainDelegators.size()); - ui32 curChainDelegatorsSize = ChainDelegators.size(); - Y_FAIL_S("Impossible case; MinHugeBlobInBytes# " << MinHugeBlobInBytes - << " MilestoneBlobInBytes# " << MilestoneBlobInBytes - << " loadedSize# " << size - << " curChainDelegatorsSize# " << curChainDelegatorsSize); + + // skip first delegators, which must not be used + for (size_t i = ChainDelegators.size(); i < size; ++i) { + ui32 slotsInChunk; + ::Load(s, slotsInChunk); + ui32 allocatedSlots; + ::Load(s, allocatedSlots); + TMap freeSpace; + ::Load(s, freeSpace); + Y_ABORT_UNLESS(slotsInChunk > ChainDelegators.front().SlotsInChunk, "incompatible format"); + Y_ABORT_UNLESS(!allocatedSlots, "incompatible format"); + Y_ABORT_UNLESS(freeSpace.empty(), "incompatible format"); + } + + // load the rest as usual + StartMode = EStartMode::Loaded; + for (TChainDelegator& delegator : ChainDelegators) { + ::Load(s, delegator); + } } } diff --git a/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.darwin-arm64.txt index aa7cac164447..bfaddbbb0b6f 100644 --- a/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-blobstorage-vdisk-huge-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-huge-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs_ut.cpp @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.darwin-x86_64.txt index 1618be180a0e..6e0be114ebf0 100644 --- a/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-blobstorage-vdisk-huge-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-huge-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs_ut.cpp @@ -64,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.linux-aarch64.txt index aae603091521..5f4254f66e5e 100644 --- a/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-blobstorage-vdisk-huge-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-huge-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs_ut.cpp @@ -67,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.linux-x86_64.txt index 82d176152e97..565a2cdb41ef 100644 --- a/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-blobstorage-vdisk-huge-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-huge-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/huge/blobstorage_hullhugedefs_ut.cpp @@ -68,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.windows-x86_64.txt index 0d45fed9825c..804ba166c36a 100644 --- a/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/huge/ut/CMakeLists.windows-x86_64.txt @@ -57,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.darwin-arm64.txt index 880fd7ff67d7..09fc1162c0a6 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.darwin-arm64.txt @@ -31,3 +31,8 @@ target_link_libraries(blobstorage-vdisk-hulldb INTERFACE vdisk-hulldb-bulksst_add ydb-core-protos ) +target_sources(blobstorage-vdisk-hulldb INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/blobstorage_hullgcmap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/hull_ds_all.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/hull_ds_all_snap.h +) diff --git a/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.darwin-x86_64.txt index 880fd7ff67d7..09fc1162c0a6 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.darwin-x86_64.txt @@ -31,3 +31,8 @@ target_link_libraries(blobstorage-vdisk-hulldb INTERFACE vdisk-hulldb-bulksst_add ydb-core-protos ) +target_sources(blobstorage-vdisk-hulldb INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/blobstorage_hullgcmap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/hull_ds_all.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/hull_ds_all_snap.h +) diff --git a/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.linux-aarch64.txt index 0774dd133fa1..11be52afc343 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.linux-aarch64.txt @@ -32,3 +32,8 @@ target_link_libraries(blobstorage-vdisk-hulldb INTERFACE vdisk-hulldb-bulksst_add ydb-core-protos ) +target_sources(blobstorage-vdisk-hulldb INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/blobstorage_hullgcmap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/hull_ds_all.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/hull_ds_all_snap.h +) diff --git a/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.linux-x86_64.txt index 0774dd133fa1..11be52afc343 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.linux-x86_64.txt @@ -32,3 +32,8 @@ target_link_libraries(blobstorage-vdisk-hulldb INTERFACE vdisk-hulldb-bulksst_add ydb-core-protos ) +target_sources(blobstorage-vdisk-hulldb INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/blobstorage_hullgcmap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/hull_ds_all.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/hull_ds_all_snap.h +) diff --git a/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.windows-x86_64.txt index 880fd7ff67d7..09fc1162c0a6 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/CMakeLists.windows-x86_64.txt @@ -31,3 +31,8 @@ target_link_libraries(blobstorage-vdisk-hulldb INTERFACE vdisk-hulldb-bulksst_add ydb-core-protos ) +target_sources(blobstorage-vdisk-hulldb INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/blobstorage_hullgcmap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/hull_ds_all.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/hull_ds_all_snap.h +) diff --git a/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.darwin-arm64.txt index 4a479fb693d4..81f7ff4b884f 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.darwin-arm64.txt @@ -18,6 +18,13 @@ target_link_libraries(vdisk-hulldb-barriers PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-barriers PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_chain.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_essence.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_public.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_tree.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/hullds_cache_barrier.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/hullds_gcessence_defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_chain.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_essence.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_public.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.darwin-x86_64.txt index 4a479fb693d4..81f7ff4b884f 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.darwin-x86_64.txt @@ -18,6 +18,13 @@ target_link_libraries(vdisk-hulldb-barriers PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-barriers PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_chain.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_essence.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_public.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_tree.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/hullds_cache_barrier.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/hullds_gcessence_defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_chain.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_essence.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_public.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.linux-aarch64.txt index 0d1e93397260..3b6620b01ec9 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.linux-aarch64.txt @@ -19,6 +19,13 @@ target_link_libraries(vdisk-hulldb-barriers PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-barriers PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_chain.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_essence.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_public.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_tree.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/hullds_cache_barrier.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/hullds_gcessence_defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_chain.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_essence.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_public.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.linux-x86_64.txt index 0d1e93397260..3b6620b01ec9 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.linux-x86_64.txt @@ -19,6 +19,13 @@ target_link_libraries(vdisk-hulldb-barriers PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-barriers PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_chain.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_essence.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_public.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_tree.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/hullds_cache_barrier.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/hullds_gcessence_defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_chain.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_essence.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_public.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.windows-x86_64.txt index 4a479fb693d4..81f7ff4b884f 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/barriers/CMakeLists.windows-x86_64.txt @@ -18,6 +18,13 @@ target_link_libraries(vdisk-hulldb-barriers PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-barriers PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_chain.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_essence.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_public.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_tree.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/hullds_cache_barrier.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/hullds_gcessence_defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_chain.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_essence.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_public.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.darwin-arm64.txt index 9816a491f6b9..b9bd48732dea 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-barriers-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-hulldb-barriers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_tree_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.darwin-x86_64.txt index b6c054d5bc69..a29502202c16 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-barriers-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-hulldb-barriers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_tree_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.linux-aarch64.txt index 2bb83912d89c..5892f0da3acc 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-barriers-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-hulldb-barriers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_tree_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.linux-x86_64.txt index e0ad742c38f6..4a4f0c023c2b 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-barriers-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-hulldb-barriers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/barriers/barriers_tree_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.windows-x86_64.txt index 327e8f1673d7..484936dd6f7c 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/barriers/ut/CMakeLists.windows-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.darwin-arm64.txt index 6db91dc19dd6..00376f3b3831 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.darwin-arm64.txt @@ -18,6 +18,18 @@ target_link_libraries(vdisk-hulldb-base PUBLIC blobstorage-vdisk-protos ) target_sources(vdisk-hulldb-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_blob.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hulldefs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullsatisfactionrank.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullstorageratio.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_barrier.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_block.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_logoblob.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_arena.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_generic_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_glue.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_settings.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hulldefs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullsatisfactionrank.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_barrier.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.darwin-x86_64.txt index 6db91dc19dd6..00376f3b3831 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.darwin-x86_64.txt @@ -18,6 +18,18 @@ target_link_libraries(vdisk-hulldb-base PUBLIC blobstorage-vdisk-protos ) target_sources(vdisk-hulldb-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_blob.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hulldefs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullsatisfactionrank.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullstorageratio.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_barrier.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_block.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_logoblob.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_arena.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_generic_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_glue.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_settings.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hulldefs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullsatisfactionrank.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_barrier.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.linux-aarch64.txt index ca7e9fc114db..13a65568bb2f 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.linux-aarch64.txt @@ -19,6 +19,18 @@ target_link_libraries(vdisk-hulldb-base PUBLIC blobstorage-vdisk-protos ) target_sources(vdisk-hulldb-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_blob.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hulldefs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullsatisfactionrank.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullstorageratio.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_barrier.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_block.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_logoblob.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_arena.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_generic_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_glue.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_settings.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hulldefs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullsatisfactionrank.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_barrier.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.linux-x86_64.txt index ca7e9fc114db..13a65568bb2f 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.linux-x86_64.txt @@ -19,6 +19,18 @@ target_link_libraries(vdisk-hulldb-base PUBLIC blobstorage-vdisk-protos ) target_sources(vdisk-hulldb-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_blob.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hulldefs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullsatisfactionrank.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullstorageratio.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_barrier.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_block.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_logoblob.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_arena.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_generic_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_glue.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_settings.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hulldefs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullsatisfactionrank.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_barrier.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.windows-x86_64.txt index 6db91dc19dd6..00376f3b3831 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/base/CMakeLists.windows-x86_64.txt @@ -18,6 +18,18 @@ target_link_libraries(vdisk-hulldb-base PUBLIC blobstorage-vdisk-protos ) target_sources(vdisk-hulldb-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_blob.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hulldefs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullsatisfactionrank.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullstorageratio.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_barrier.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_block.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_logoblob.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_arena.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_generic_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_glue.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullds_settings.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hulldefs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_hullsatisfactionrank.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/hullbase_barrier.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.darwin-arm64.txt index 34b87d524977..55fb6ba9eeb5 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-base-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-hulldb-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_blob_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.darwin-x86_64.txt index 6fab6f907538..22a7ac8720af 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-base-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-hulldb-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_blob_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.linux-aarch64.txt index 07bdc935fd6e..6a702c5a5cf8 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-base-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-hulldb-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_blob_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.linux-x86_64.txt index a71b32991af3..716a82532422 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-base-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-hulldb-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/base/blobstorage_blob_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.windows-x86_64.txt index 9257f2e0b72c..85396e761605 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/base/ut/CMakeLists.windows-x86_64.txt @@ -55,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.darwin-arm64.txt index 24bf99401fe4..bac4536f3d88 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.darwin-arm64.txt @@ -15,5 +15,6 @@ target_link_libraries(vdisk-hulldb-bulksst_add PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-bulksst_add PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/hulldb_bulksst_add.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/hulldb_bulksst_add.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.darwin-x86_64.txt index 24bf99401fe4..bac4536f3d88 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.darwin-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(vdisk-hulldb-bulksst_add PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-bulksst_add PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/hulldb_bulksst_add.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/hulldb_bulksst_add.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.linux-aarch64.txt index f9372dcb37f4..41dc489b2adb 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.linux-aarch64.txt @@ -16,5 +16,6 @@ target_link_libraries(vdisk-hulldb-bulksst_add PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-bulksst_add PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/hulldb_bulksst_add.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/hulldb_bulksst_add.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.linux-x86_64.txt index f9372dcb37f4..41dc489b2adb 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.linux-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(vdisk-hulldb-bulksst_add PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-bulksst_add PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/hulldb_bulksst_add.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/hulldb_bulksst_add.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.windows-x86_64.txt index 24bf99401fe4..bac4536f3d88 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/CMakeLists.windows-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(vdisk-hulldb-bulksst_add PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-bulksst_add PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/hulldb_bulksst_add.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/bulksst_add/hulldb_bulksst_add.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.darwin-arm64.txt index 7fb5712363e0..51a692fe587e 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-cache_block-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-hulldb-cache_block-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/cache_block/cache_block_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.darwin-x86_64.txt index 8a08a1b8d263..3f866225fa0e 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-cache_block-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-hulldb-cache_block-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/cache_block/cache_block_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.linux-aarch64.txt index ecd42d5893ff..e38d35a241f7 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-cache_block-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-hulldb-cache_block-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/cache_block/cache_block_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.linux-x86_64.txt index 90e503919f14..2b32e4df3613 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-cache_block-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-hulldb-cache_block-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/cache_block/cache_block_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.windows-x86_64.txt index b2d993e4b779..87e7a9bb22ef 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/cache_block/ut/CMakeLists.windows-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.darwin-arm64.txt index 7c9fa1b94717..fa1bb770218e 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.darwin-arm64.txt @@ -17,6 +17,17 @@ target_link_libraries(vdisk-hulldb-compstrat PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-compstrat PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_balance.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_delsst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_lazy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_promote.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_ratio.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_selector.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_space.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_squeeze.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_utils.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_defs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_selector.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.darwin-x86_64.txt index 7c9fa1b94717..fa1bb770218e 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.darwin-x86_64.txt @@ -17,6 +17,17 @@ target_link_libraries(vdisk-hulldb-compstrat PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-compstrat PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_balance.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_delsst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_lazy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_promote.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_ratio.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_selector.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_space.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_squeeze.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_utils.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_defs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_selector.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.linux-aarch64.txt index cf6ffe3ed47e..49f0ec0e450a 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.linux-aarch64.txt @@ -18,6 +18,17 @@ target_link_libraries(vdisk-hulldb-compstrat PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-compstrat PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_balance.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_delsst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_lazy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_promote.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_ratio.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_selector.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_space.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_squeeze.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_utils.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_defs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_selector.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.linux-x86_64.txt index cf6ffe3ed47e..49f0ec0e450a 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.linux-x86_64.txt @@ -18,6 +18,17 @@ target_link_libraries(vdisk-hulldb-compstrat PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-compstrat PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_balance.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_delsst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_lazy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_promote.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_ratio.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_selector.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_space.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_squeeze.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_utils.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_defs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_selector.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.windows-x86_64.txt index 7c9fa1b94717..fa1bb770218e 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/compstrat/CMakeLists.windows-x86_64.txt @@ -17,6 +17,17 @@ target_link_libraries(vdisk-hulldb-compstrat PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-compstrat PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_balance.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_delsst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_lazy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_promote.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_ratio.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_selector.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_space.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_squeeze.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_utils.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_defs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_selector.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.darwin-arm64.txt index b6acc247940a..ebf13044ef3f 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-compstrat-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-hulldb-compstrat-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.darwin-x86_64.txt index eb2ac2468fc7..fbf677f13a88 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-compstrat-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-hulldb-compstrat-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.linux-aarch64.txt index 36eda4424dd4..d3b972185201 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-compstrat-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-hulldb-compstrat-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.linux-x86_64.txt index 7119d16d9651..a7f3e4da60e4 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-compstrat-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-hulldb-compstrat-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/compstrat/hulldb_compstrat_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.windows-x86_64.txt index be411b678eb4..b8d832f949c7 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/compstrat/ut/CMakeLists.windows-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.darwin-arm64.txt index c43891962ef1..f0c7cc97e260 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.darwin-arm64.txt @@ -18,6 +18,13 @@ target_link_libraries(vdisk-hulldb-fresh PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-fresh PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_datasnap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_segment.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_segment_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/snap_vec.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_data.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_datasnap.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.darwin-x86_64.txt index c43891962ef1..f0c7cc97e260 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.darwin-x86_64.txt @@ -18,6 +18,13 @@ target_link_libraries(vdisk-hulldb-fresh PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-fresh PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_datasnap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_segment.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_segment_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/snap_vec.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_data.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_datasnap.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.linux-aarch64.txt index b9411234446d..8f9cd362cefb 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.linux-aarch64.txt @@ -19,6 +19,13 @@ target_link_libraries(vdisk-hulldb-fresh PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-fresh PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_datasnap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_segment.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_segment_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/snap_vec.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_data.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_datasnap.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.linux-x86_64.txt index b9411234446d..8f9cd362cefb 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.linux-x86_64.txt @@ -19,6 +19,13 @@ target_link_libraries(vdisk-hulldb-fresh PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-fresh PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_datasnap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_segment.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_segment_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/snap_vec.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_data.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_datasnap.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.windows-x86_64.txt index c43891962ef1..f0c7cc97e260 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/fresh/CMakeLists.windows-x86_64.txt @@ -18,6 +18,13 @@ target_link_libraries(vdisk-hulldb-fresh PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-fresh PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_datasnap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_segment.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_segment_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/snap_vec.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_data.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_datasnap.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.darwin-arm64.txt index f95e1f7634ef..d83b48d13eef 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-fresh-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-hulldb-fresh-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.darwin-x86_64.txt index 59a813f7d8c3..d1a922c260b2 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-fresh-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-hulldb-fresh-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.linux-aarch64.txt index 5e242c602e4b..ed34ebfd4da7 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-fresh-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-hulldb-fresh-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.linux-x86_64.txt index d41b6f2895fb..0b026f7d573c 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-fresh-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-hulldb-fresh-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/fresh/fresh_appendix_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.windows-x86_64.txt index 0e79645ecddc..1fe3a7b31fe8 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/fresh/ut/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.darwin-arm64.txt index ff0ea8a96ce2..b2c5c37204be 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.darwin-arm64.txt @@ -18,6 +18,24 @@ target_link_libraries(vdisk-hulldb-generic PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-generic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulldatamerger.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullmergeits.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulloptlsn.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullrecmerger.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullwritesst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstloaded.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstmngr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idxsnap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idxsnap_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_leveledssts.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstslice.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstslice_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstvec.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstvec_it.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulloptlsn.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstmngr.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idx.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.darwin-x86_64.txt index ff0ea8a96ce2..b2c5c37204be 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.darwin-x86_64.txt @@ -18,6 +18,24 @@ target_link_libraries(vdisk-hulldb-generic PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-generic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulldatamerger.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullmergeits.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulloptlsn.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullrecmerger.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullwritesst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstloaded.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstmngr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idxsnap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idxsnap_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_leveledssts.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstslice.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstslice_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstvec.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstvec_it.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulloptlsn.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstmngr.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idx.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.linux-aarch64.txt index d29505f4b957..e95757619a3b 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.linux-aarch64.txt @@ -19,6 +19,24 @@ target_link_libraries(vdisk-hulldb-generic PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-generic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulldatamerger.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullmergeits.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulloptlsn.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullrecmerger.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullwritesst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstloaded.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstmngr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idxsnap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idxsnap_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_leveledssts.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstslice.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstslice_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstvec.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstvec_it.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulloptlsn.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstmngr.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idx.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.linux-x86_64.txt index d29505f4b957..e95757619a3b 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.linux-x86_64.txt @@ -19,6 +19,24 @@ target_link_libraries(vdisk-hulldb-generic PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-generic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulldatamerger.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullmergeits.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulloptlsn.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullrecmerger.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullwritesst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstloaded.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstmngr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idxsnap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idxsnap_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_leveledssts.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstslice.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstslice_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstvec.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstvec_it.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulloptlsn.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstmngr.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idx.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.windows-x86_64.txt index ff0ea8a96ce2..b2c5c37204be 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/generic/CMakeLists.windows-x86_64.txt @@ -18,6 +18,24 @@ target_link_libraries(vdisk-hulldb-generic PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-generic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulldatamerger.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullmergeits.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulloptlsn.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullrecmerger.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hullwritesst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstloaded.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstmngr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idxsnap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idxsnap_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_leveledssts.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstslice.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstslice_it.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstvec.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sstvec_it.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/blobstorage_hulloptlsn.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hulldb_bulksstmngr.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_idx.cpp diff --git a/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.darwin-arm64.txt index c9ccec73fe00..d3a60bb8f681 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-generic-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-hulldb-generic-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst_it_all_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.darwin-x86_64.txt index 24be005d68ac..4d25d4ffcbf5 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-generic-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-hulldb-generic-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst_it_all_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.linux-aarch64.txt index 011355907fea..008fefb68e45 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-generic-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-hulldb-generic-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst_it_all_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.linux-x86_64.txt index a7b32bc5af73..173e98a5443b 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hulldb-generic-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-hulldb-generic-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/generic/hullds_sst_it_all_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.windows-x86_64.txt index 08f67bab0c18..7d523978fdf2 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/generic/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.darwin-arm64.txt index 50e400c52544..389e3fc7c0da 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.darwin-arm64.txt @@ -17,5 +17,6 @@ target_link_libraries(vdisk-hulldb-recovery PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-recovery PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/recovery/hulldb_recovery.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/recovery/hulldb_recovery.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.darwin-x86_64.txt index 50e400c52544..389e3fc7c0da 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.darwin-x86_64.txt @@ -17,5 +17,6 @@ target_link_libraries(vdisk-hulldb-recovery PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-recovery PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/recovery/hulldb_recovery.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/recovery/hulldb_recovery.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.linux-aarch64.txt index cad216c5d3c7..38536cc6789d 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.linux-aarch64.txt @@ -18,5 +18,6 @@ target_link_libraries(vdisk-hulldb-recovery PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-recovery PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/recovery/hulldb_recovery.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/recovery/hulldb_recovery.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.linux-x86_64.txt index cad216c5d3c7..38536cc6789d 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.linux-x86_64.txt @@ -18,5 +18,6 @@ target_link_libraries(vdisk-hulldb-recovery PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-recovery PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/recovery/hulldb_recovery.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/recovery/hulldb_recovery.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.windows-x86_64.txt index 50e400c52544..389e3fc7c0da 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/recovery/CMakeLists.windows-x86_64.txt @@ -17,5 +17,6 @@ target_link_libraries(vdisk-hulldb-recovery PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-recovery PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/recovery/hulldb_recovery.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/recovery/hulldb_recovery.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.darwin-arm64.txt index 279e7bdb8f0e..8c74216684ec 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.darwin-arm64.txt @@ -16,5 +16,7 @@ target_link_libraries(vdisk-hulldb-test PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-test PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/testhull_index.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/testhull_index.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.darwin-x86_64.txt index 279e7bdb8f0e..8c74216684ec 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.darwin-x86_64.txt @@ -16,5 +16,7 @@ target_link_libraries(vdisk-hulldb-test PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-test PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/testhull_index.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/testhull_index.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.linux-aarch64.txt index ec53987ef5e7..fff6db36eb7b 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.linux-aarch64.txt @@ -17,5 +17,7 @@ target_link_libraries(vdisk-hulldb-test PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-test PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/testhull_index.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/testhull_index.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.linux-x86_64.txt index ec53987ef5e7..fff6db36eb7b 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.linux-x86_64.txt @@ -17,5 +17,7 @@ target_link_libraries(vdisk-hulldb-test PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-test PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/testhull_index.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/testhull_index.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.windows-x86_64.txt index 279e7bdb8f0e..8c74216684ec 100644 --- a/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hulldb/test/CMakeLists.windows-x86_64.txt @@ -16,5 +16,7 @@ target_link_libraries(vdisk-hulldb-test PUBLIC ydb-core-protos ) target_sources(vdisk-hulldb-test PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/testhull_index.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hulldb/test/testhull_index.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hullop/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hullop/CMakeLists.darwin-arm64.txt index 525fefdd9aeb..babe957c9bd9 100644 --- a/ydb/core/blobstorage/vdisk/hullop/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hullop/CMakeLists.darwin-arm64.txt @@ -26,6 +26,21 @@ target_link_libraries(blobstorage-vdisk-hullop PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-hullop PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_buildslice.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcommit.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompactdeferredqueue.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompact.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompactworker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullload.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllogcutternotify.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_readbatch.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_compactfreshappendix.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_delayedresp.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_entryserialize.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullactor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllog.cpp diff --git a/ydb/core/blobstorage/vdisk/hullop/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hullop/CMakeLists.darwin-x86_64.txt index 525fefdd9aeb..babe957c9bd9 100644 --- a/ydb/core/blobstorage/vdisk/hullop/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hullop/CMakeLists.darwin-x86_64.txt @@ -26,6 +26,21 @@ target_link_libraries(blobstorage-vdisk-hullop PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-hullop PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_buildslice.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcommit.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompactdeferredqueue.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompact.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompactworker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullload.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllogcutternotify.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_readbatch.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_compactfreshappendix.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_delayedresp.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_entryserialize.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullactor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllog.cpp diff --git a/ydb/core/blobstorage/vdisk/hullop/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hullop/CMakeLists.linux-aarch64.txt index c96aa5c05282..9cfe6439cdc8 100644 --- a/ydb/core/blobstorage/vdisk/hullop/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hullop/CMakeLists.linux-aarch64.txt @@ -27,6 +27,21 @@ target_link_libraries(blobstorage-vdisk-hullop PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-hullop PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_buildslice.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcommit.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompactdeferredqueue.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompact.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompactworker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullload.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllogcutternotify.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_readbatch.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_compactfreshappendix.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_delayedresp.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_entryserialize.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullactor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllog.cpp diff --git a/ydb/core/blobstorage/vdisk/hullop/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hullop/CMakeLists.linux-x86_64.txt index c96aa5c05282..9cfe6439cdc8 100644 --- a/ydb/core/blobstorage/vdisk/hullop/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hullop/CMakeLists.linux-x86_64.txt @@ -27,6 +27,21 @@ target_link_libraries(blobstorage-vdisk-hullop PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-hullop PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_buildslice.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcommit.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompactdeferredqueue.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompact.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompactworker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullload.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllogcutternotify.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_readbatch.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_compactfreshappendix.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_delayedresp.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_entryserialize.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullactor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllog.cpp diff --git a/ydb/core/blobstorage/vdisk/hullop/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hullop/CMakeLists.windows-x86_64.txt index 525fefdd9aeb..babe957c9bd9 100644 --- a/ydb/core/blobstorage/vdisk/hullop/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hullop/CMakeLists.windows-x86_64.txt @@ -26,6 +26,21 @@ target_link_libraries(blobstorage-vdisk-hullop PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-hullop PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_buildslice.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcommit.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompactdeferredqueue.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompact.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompactworker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullload.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllogcutternotify.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_readbatch.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_compactfreshappendix.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_delayedresp.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullop_entryserialize.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullactor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hulllog.cpp diff --git a/ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.cpp b/ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.cpp index 27a80af6f3cb..45ea62ab138e 100644 --- a/ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.cpp +++ b/ydb/core/blobstorage/vdisk/hullop/blobstorage_hull.cpp @@ -415,6 +415,13 @@ namespace NKikimr { if (!CheckGC(ctx, record)) return {NKikimrProto::ERROR, 0, false}; // record has duplicates + if (!collect && !record.KeepSize() && !record.DoNotKeepSize()) { + LOG_ERROR_S(ctx, NKikimrServices::BS_HULLRECS, HullDs->HullCtx->VCtx->VDiskLogPrefix + << "Db# Barriers ValidateGCCmd: empty garbage collection command" + << " TabletId# " << tabletID); + return {NKikimrProto::ERROR, "empty garbage collection command"}; + } + auto blockStatus = THullDbRecovery::IsBlocked(record); switch (blockStatus.Status) { case TBlocksCache::EStatus::OK: diff --git a/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompact.h b/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompact.h index e208983b08ad..a064cf4efbd5 100644 --- a/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompact.h +++ b/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompact.h @@ -170,6 +170,9 @@ namespace NKikimr { // the same logic for every yard response: apply response and restart main cycle void HandleYardResponse(NPDisk::TEvChunkReadResult::TPtr& ev, const TActorContext &ctx) { --PendingResponses; + if (HullCtx->VCtx->CostTracker) { + HullCtx->VCtx->CostTracker->CountPDiskResponse(); + } if (ev->Get()->Status != NKikimrProto::CORRUPTED) { CHECK_PDISK_RESPONSE(HullCtx->VCtx, ev, ctx); } @@ -202,6 +205,9 @@ namespace NKikimr { void HandleYardResponse(NPDisk::TEvChunkWriteResult::TPtr& ev, const TActorContext &ctx) { --PendingResponses; + if (HullCtx->VCtx->CostTracker) { + HullCtx->VCtx->CostTracker->CountPDiskResponse(); + } CHECK_PDISK_RESPONSE(HullCtx->VCtx, ev, ctx); if (FinalizeIfAborting(ctx)) { return; diff --git a/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.darwin-arm64.txt index 9c6c88c18a04..7102fc51f19a 100644 --- a/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.darwin-arm64.txt @@ -15,5 +15,6 @@ target_link_libraries(vdisk-hullop-hullcompdelete PUBLIC ydb-core-protos ) target_sources(vdisk-hullop-hullcompdelete PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/blobstorage_hullcompdelete.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/blobstorage_hullcompdelete.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.darwin-x86_64.txt index 9c6c88c18a04..7102fc51f19a 100644 --- a/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.darwin-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(vdisk-hullop-hullcompdelete PUBLIC ydb-core-protos ) target_sources(vdisk-hullop-hullcompdelete PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/blobstorage_hullcompdelete.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/blobstorage_hullcompdelete.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.linux-aarch64.txt index 4bb7d4621322..b4f8506123d5 100644 --- a/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.linux-aarch64.txt @@ -16,5 +16,6 @@ target_link_libraries(vdisk-hullop-hullcompdelete PUBLIC ydb-core-protos ) target_sources(vdisk-hullop-hullcompdelete PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/blobstorage_hullcompdelete.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/blobstorage_hullcompdelete.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.linux-x86_64.txt index 4bb7d4621322..b4f8506123d5 100644 --- a/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.linux-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(vdisk-hullop-hullcompdelete PUBLIC ydb-core-protos ) target_sources(vdisk-hullop-hullcompdelete PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/blobstorage_hullcompdelete.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/blobstorage_hullcompdelete.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.windows-x86_64.txt index 9c6c88c18a04..7102fc51f19a 100644 --- a/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/CMakeLists.windows-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(vdisk-hullop-hullcompdelete PUBLIC ydb-core-protos ) target_sources(vdisk-hullop-hullcompdelete PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/blobstorage_hullcompdelete.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/hullcompdelete/blobstorage_hullcompdelete.cpp ) diff --git a/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.darwin-arm64.txt index 38eef49949a1..7080754e2838 100644 --- a/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.darwin-arm64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hullop-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-hullop-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompactdeferredqueue_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.darwin-x86_64.txt index a26709914db8..eb8a8c3d445e 100644 --- a/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.darwin-x86_64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hullop-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-hullop-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompactdeferredqueue_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.linux-aarch64.txt index b4c2d5d343ae..aacf856fea81 100644 --- a/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.linux-aarch64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hullop-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-hullop-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompactdeferredqueue_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.linux-x86_64.txt index f00eba32fb30..a5ad00bd39e3 100644 --- a/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.linux-x86_64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-core-blobstorage-vdisk-hullop-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-hullop-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/hullop/blobstorage_hullcompactdeferredqueue_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.windows-x86_64.txt index da2ca8673379..4c47ca881a93 100644 --- a/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/hullop/ut/CMakeLists.windows-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/ingress/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/ingress/CMakeLists.darwin-arm64.txt index 097ee5fb7ffc..e5f5c5fc841a 100644 --- a/ydb/core/blobstorage/vdisk/ingress/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/ingress/CMakeLists.darwin-arm64.txt @@ -18,6 +18,9 @@ target_link_libraries(blobstorage-vdisk-ingress PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-ingress PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix.cpp ) diff --git a/ydb/core/blobstorage/vdisk/ingress/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/ingress/CMakeLists.darwin-x86_64.txt index 097ee5fb7ffc..e5f5c5fc841a 100644 --- a/ydb/core/blobstorage/vdisk/ingress/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/ingress/CMakeLists.darwin-x86_64.txt @@ -18,6 +18,9 @@ target_link_libraries(blobstorage-vdisk-ingress PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-ingress PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix.cpp ) diff --git a/ydb/core/blobstorage/vdisk/ingress/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/ingress/CMakeLists.linux-aarch64.txt index 289d40aed815..04a0370a64f0 100644 --- a/ydb/core/blobstorage/vdisk/ingress/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/ingress/CMakeLists.linux-aarch64.txt @@ -19,6 +19,9 @@ target_link_libraries(blobstorage-vdisk-ingress PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-ingress PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix.cpp ) diff --git a/ydb/core/blobstorage/vdisk/ingress/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/ingress/CMakeLists.linux-x86_64.txt index 289d40aed815..04a0370a64f0 100644 --- a/ydb/core/blobstorage/vdisk/ingress/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/ingress/CMakeLists.linux-x86_64.txt @@ -19,6 +19,9 @@ target_link_libraries(blobstorage-vdisk-ingress PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-ingress PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix.cpp ) diff --git a/ydb/core/blobstorage/vdisk/ingress/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/ingress/CMakeLists.windows-x86_64.txt index 097ee5fb7ffc..e5f5c5fc841a 100644 --- a/ydb/core/blobstorage/vdisk/ingress/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/ingress/CMakeLists.windows-x86_64.txt @@ -18,6 +18,9 @@ target_link_libraries(blobstorage-vdisk-ingress PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-ingress PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix.cpp ) diff --git a/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.darwin-arm64.txt index 3970efad7540..3220b9565c4c 100644 --- a/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-blobstorage-vdisk-ingress-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-ingress-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.darwin-x86_64.txt index 88d30cdd302c..8d5f646f2f93 100644 --- a/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-blobstorage-vdisk-ingress-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-ingress-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.linux-aarch64.txt index 5babbbdc7ff6..33ae9f44d63f 100644 --- a/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-blobstorage-vdisk-ingress-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-ingress-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.linux-x86_64.txt index 14e5d5bc0b4f..1db620acddf7 100644 --- a/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-blobstorage-vdisk-ingress-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-ingress-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/ingress/blobstorage_ingress_matrix_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.windows-x86_64.txt index 5b43ec10ab80..460a4489aaf5 100644 --- a/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/ingress/ut/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.darwin-arm64.txt index 797ce866c9c0..54899d07f91c 100644 --- a/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.darwin-arm64.txt @@ -17,6 +17,11 @@ target_link_libraries(blobstorage-vdisk-localrecovery PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-localrecovery PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_logreplay.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_public.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_readbulksst.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_defs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_logreplay.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_public.cpp diff --git a/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.darwin-x86_64.txt index 797ce866c9c0..54899d07f91c 100644 --- a/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.darwin-x86_64.txt @@ -17,6 +17,11 @@ target_link_libraries(blobstorage-vdisk-localrecovery PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-localrecovery PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_logreplay.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_public.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_readbulksst.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_defs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_logreplay.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_public.cpp diff --git a/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.linux-aarch64.txt index 6f01238c284f..bc444b561cb2 100644 --- a/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.linux-aarch64.txt @@ -18,6 +18,11 @@ target_link_libraries(blobstorage-vdisk-localrecovery PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-localrecovery PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_logreplay.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_public.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_readbulksst.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_defs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_logreplay.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_public.cpp diff --git a/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.linux-x86_64.txt index 6f01238c284f..bc444b561cb2 100644 --- a/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.linux-x86_64.txt @@ -18,6 +18,11 @@ target_link_libraries(blobstorage-vdisk-localrecovery PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-localrecovery PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_logreplay.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_public.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_readbulksst.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_defs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_logreplay.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_public.cpp diff --git a/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.windows-x86_64.txt index 797ce866c9c0..54899d07f91c 100644 --- a/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/localrecovery/CMakeLists.windows-x86_64.txt @@ -17,6 +17,11 @@ target_link_libraries(blobstorage-vdisk-localrecovery PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-localrecovery PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_logreplay.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_public.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_readbulksst.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_defs.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_logreplay.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_public.cpp diff --git a/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_public.cpp b/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_public.cpp index e90483d6a6e3..b6d328d7030f 100644 --- a/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_public.cpp +++ b/ydb/core/blobstorage/vdisk/localrecovery/localrecovery_public.cpp @@ -505,6 +505,21 @@ namespace NKikimr { LocRecCtx->HullDbRecovery = std::make_shared(hullCtx); LocRecCtx->HullCtx = hullCtx; + if (Config->UseCostTracker) { + NPDisk::EDeviceType trueMediaType = LocRecCtx->PDiskCtx->Dsk->TrueMediaType; + if (trueMediaType == NPDisk::DEVICE_TYPE_UNKNOWN) { + // Unable to resolve type from PDisk's properties, using type from VDisk config + trueMediaType = Config->BaseInfo.DeviceType; + } + if (trueMediaType != NPDisk::DEVICE_TYPE_UNKNOWN) { + LocRecCtx->HullCtx->VCtx->CostTracker.reset(new TBsCostTracker( + LocRecCtx->HullCtx->VCtx->Top->GType, trueMediaType, + LocRecCtx->HullCtx->VCtx->VDiskCounters, + Config->CostMetricsParametersByMedia[trueMediaType] + )); + } + } + // store reported owned chunks LocRecCtx->ReportedOwnedChunks = std::move(m->OwnedChunks); diff --git a/ydb/core/blobstorage/vdisk/protos/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/protos/CMakeLists.darwin-arm64.txt index 83c328d60b8f..fac99e9a47f9 100644 --- a/ydb/core/blobstorage/vdisk/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(blobstorage-vdisk-protos PUBLIC target_proto_messages(blobstorage-vdisk-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/protos/events.proto ) +target_sources(blobstorage-vdisk-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/blobstorage/vdisk/protos/events.pb.h +) target_proto_addincls(blobstorage-vdisk-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/blobstorage/vdisk/protos/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/protos/CMakeLists.darwin-x86_64.txt index 83c328d60b8f..fac99e9a47f9 100644 --- a/ydb/core/blobstorage/vdisk/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(blobstorage-vdisk-protos PUBLIC target_proto_messages(blobstorage-vdisk-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/protos/events.proto ) +target_sources(blobstorage-vdisk-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/blobstorage/vdisk/protos/events.pb.h +) target_proto_addincls(blobstorage-vdisk-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/blobstorage/vdisk/protos/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/protos/CMakeLists.linux-aarch64.txt index 5a4de11188f5..b6f8ae32958f 100644 --- a/ydb/core/blobstorage/vdisk/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(blobstorage-vdisk-protos PUBLIC target_proto_messages(blobstorage-vdisk-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/protos/events.proto ) +target_sources(blobstorage-vdisk-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/blobstorage/vdisk/protos/events.pb.h +) target_proto_addincls(blobstorage-vdisk-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/blobstorage/vdisk/protos/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/protos/CMakeLists.linux-x86_64.txt index 5a4de11188f5..b6f8ae32958f 100644 --- a/ydb/core/blobstorage/vdisk/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(blobstorage-vdisk-protos PUBLIC target_proto_messages(blobstorage-vdisk-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/protos/events.proto ) +target_sources(blobstorage-vdisk-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/blobstorage/vdisk/protos/events.pb.h +) target_proto_addincls(blobstorage-vdisk-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/blobstorage/vdisk/protos/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/protos/CMakeLists.windows-x86_64.txt index 83c328d60b8f..fac99e9a47f9 100644 --- a/ydb/core/blobstorage/vdisk/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(blobstorage-vdisk-protos PUBLIC target_proto_messages(blobstorage-vdisk-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/protos/events.proto ) +target_sources(blobstorage-vdisk-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/blobstorage/vdisk/protos/events.pb.h +) target_proto_addincls(blobstorage-vdisk-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/blobstorage/vdisk/query/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/query/CMakeLists.darwin-arm64.txt index 6cb0244a1b5b..550fd8d86e82 100644 --- a/ydb/core/blobstorage/vdisk/query/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/query/CMakeLists.darwin-arm64.txt @@ -19,6 +19,19 @@ target_link_libraries(blobstorage-vdisk-query PUBLIC vdisk-hulldb-base ) target_sources(blobstorage-vdisk-query PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/assimilation.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_base.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_dumpdb.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_public.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_readactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_readbatch.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_spacetracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_statalgo.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_statdb.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stathuge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stattablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stream.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/assimilation.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_barrier.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_extr.cpp diff --git a/ydb/core/blobstorage/vdisk/query/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/query/CMakeLists.darwin-x86_64.txt index 6cb0244a1b5b..550fd8d86e82 100644 --- a/ydb/core/blobstorage/vdisk/query/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/query/CMakeLists.darwin-x86_64.txt @@ -19,6 +19,19 @@ target_link_libraries(blobstorage-vdisk-query PUBLIC vdisk-hulldb-base ) target_sources(blobstorage-vdisk-query PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/assimilation.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_base.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_dumpdb.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_public.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_readactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_readbatch.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_spacetracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_statalgo.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_statdb.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stathuge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stattablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stream.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/assimilation.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_barrier.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_extr.cpp diff --git a/ydb/core/blobstorage/vdisk/query/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/query/CMakeLists.linux-aarch64.txt index 18f93a637d50..970686c2a3e4 100644 --- a/ydb/core/blobstorage/vdisk/query/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/query/CMakeLists.linux-aarch64.txt @@ -20,6 +20,19 @@ target_link_libraries(blobstorage-vdisk-query PUBLIC vdisk-hulldb-base ) target_sources(blobstorage-vdisk-query PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/assimilation.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_base.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_dumpdb.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_public.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_readactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_readbatch.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_spacetracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_statalgo.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_statdb.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stathuge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stattablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stream.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/assimilation.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_barrier.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_extr.cpp diff --git a/ydb/core/blobstorage/vdisk/query/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/query/CMakeLists.linux-x86_64.txt index 18f93a637d50..970686c2a3e4 100644 --- a/ydb/core/blobstorage/vdisk/query/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/query/CMakeLists.linux-x86_64.txt @@ -20,6 +20,19 @@ target_link_libraries(blobstorage-vdisk-query PUBLIC vdisk-hulldb-base ) target_sources(blobstorage-vdisk-query PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/assimilation.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_base.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_dumpdb.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_public.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_readactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_readbatch.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_spacetracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_statalgo.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_statdb.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stathuge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stattablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stream.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/assimilation.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_barrier.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_extr.cpp diff --git a/ydb/core/blobstorage/vdisk/query/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/query/CMakeLists.windows-x86_64.txt index 6cb0244a1b5b..550fd8d86e82 100644 --- a/ydb/core/blobstorage/vdisk/query/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/query/CMakeLists.windows-x86_64.txt @@ -19,6 +19,19 @@ target_link_libraries(blobstorage-vdisk-query PUBLIC vdisk-hulldb-base ) target_sources(blobstorage-vdisk-query PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/assimilation.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_base.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_dumpdb.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_public.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_readactor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_readbatch.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_spacetracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_statalgo.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_statdb.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stathuge.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stattablet.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_stream.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/assimilation.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_barrier.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_extr.cpp diff --git a/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.darwin-arm64.txt index 57057b8e8b5b..6392ba0b945d 100644 --- a/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.darwin-arm64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-core-blobstorage-vdisk-query-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-query-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_spacetracker_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.darwin-x86_64.txt index 83f4895d610d..8707ac884d94 100644 --- a/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.darwin-x86_64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-core-blobstorage-vdisk-query-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-query-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_spacetracker_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.linux-aarch64.txt index 1244deca81a0..6a94af0076eb 100644 --- a/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-core-blobstorage-vdisk-query-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-query-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_spacetracker_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.linux-x86_64.txt index ebfc18f10ea9..d44ec66e9d6d 100644 --- a/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-core-blobstorage-vdisk-query-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-query-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/query/query_spacetracker_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.windows-x86_64.txt index 8b57c4d6019d..99ac8fe1636c 100644 --- a/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/query/ut/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/repl/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/repl/CMakeLists.darwin-arm64.txt index 56105e6bf738..c4f08c3fbd1e 100644 --- a/ydb/core/blobstorage/vdisk/repl/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/repl/CMakeLists.darwin-arm64.txt @@ -25,6 +25,16 @@ target_link_libraries(blobstorage-vdisk-repl PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-repl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullreplwritesst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replbroker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_repl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replproxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replrecoverymachine.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/query_donor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/repl_quoter.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replbroker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_repl.cpp diff --git a/ydb/core/blobstorage/vdisk/repl/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/repl/CMakeLists.darwin-x86_64.txt index 56105e6bf738..c4f08c3fbd1e 100644 --- a/ydb/core/blobstorage/vdisk/repl/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/repl/CMakeLists.darwin-x86_64.txt @@ -25,6 +25,16 @@ target_link_libraries(blobstorage-vdisk-repl PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-repl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullreplwritesst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replbroker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_repl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replproxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replrecoverymachine.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/query_donor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/repl_quoter.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replbroker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_repl.cpp diff --git a/ydb/core/blobstorage/vdisk/repl/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/repl/CMakeLists.linux-aarch64.txt index 2dbebb2c46d4..afb417f57161 100644 --- a/ydb/core/blobstorage/vdisk/repl/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/repl/CMakeLists.linux-aarch64.txt @@ -26,6 +26,16 @@ target_link_libraries(blobstorage-vdisk-repl PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-repl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullreplwritesst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replbroker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_repl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replproxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replrecoverymachine.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/query_donor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/repl_quoter.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replbroker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_repl.cpp diff --git a/ydb/core/blobstorage/vdisk/repl/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/repl/CMakeLists.linux-x86_64.txt index 2dbebb2c46d4..afb417f57161 100644 --- a/ydb/core/blobstorage/vdisk/repl/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/repl/CMakeLists.linux-x86_64.txt @@ -26,6 +26,16 @@ target_link_libraries(blobstorage-vdisk-repl PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-repl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullreplwritesst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replbroker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_repl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replproxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replrecoverymachine.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/query_donor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/repl_quoter.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replbroker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_repl.cpp diff --git a/ydb/core/blobstorage/vdisk/repl/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/repl/CMakeLists.windows-x86_64.txt index 56105e6bf738..c4f08c3fbd1e 100644 --- a/ydb/core/blobstorage/vdisk/repl/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/repl/CMakeLists.windows-x86_64.txt @@ -25,6 +25,16 @@ target_link_libraries(blobstorage-vdisk-repl PUBLIC ydb-core-protos ) target_sources(blobstorage-vdisk-repl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullreplwritesst.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replbroker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replctx.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_repl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replproxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replrecoverymachine.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/query_donor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/repl_quoter.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_replbroker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_repl.cpp diff --git a/ydb/core/blobstorage/vdisk/repl/blobstorage_hullreplwritesst_ut.cpp b/ydb/core/blobstorage/vdisk/repl/blobstorage_hullreplwritesst_ut.cpp index f38d872c6ec0..c2131faba130 100644 --- a/ydb/core/blobstorage/vdisk/repl/blobstorage_hullreplwritesst_ut.cpp +++ b/ydb/core/blobstorage/vdisk/repl/blobstorage_hullreplwritesst_ut.cpp @@ -15,7 +15,8 @@ std::shared_ptr CreateReplCtx(TVector& vdisks, const TIntrus auto vctx = MakeIntrusive(TActorId(), info->PickTopology(), counters, TVDiskID(0, 1, 0, 0, 0), nullptr, NPDisk::DEVICE_TYPE_UNKNOWN); auto hugeBlobCtx = std::make_shared(512u << 10u, nullptr); - auto dsk = MakeIntrusive(ui8(1), 1u, 128u << 20, 4096u, 0u, 1000000000u, 1000000000u, 65536u, 65536u, 65536u); + auto dsk = MakeIntrusive(ui8(1), 1u, 128u << 20, 4096u, 0u, 1000000000u, 1000000000u, 65536u, 65536u, 65536u, + NPDisk::DEVICE_TYPE_UNKNOWN); auto pdiskCtx = std::make_shared(dsk, TActorId(), TString()); auto replCtx = std::make_shared( vctx, diff --git a/ydb/core/blobstorage/vdisk/repl/blobstorage_repl.cpp b/ydb/core/blobstorage/vdisk/repl/blobstorage_repl.cpp index 3c88c998a38c..47906cdd0963 100644 --- a/ydb/core/blobstorage/vdisk/repl/blobstorage_repl.cpp +++ b/ydb/core/blobstorage/vdisk/repl/blobstorage_repl.cpp @@ -409,8 +409,8 @@ namespace NKikimr { // no more blobs to replicate; replication will not resume State = Finished; ReplCtx->MonGroup.ReplUnreplicatedVDisks() = 0; - ReplCtx->MonGroup.ReplUnreplicatedPhantoms() = 1; - ReplCtx->MonGroup.ReplUnreplicatedNonPhantoms() = 1; + ReplCtx->MonGroup.ReplUnreplicatedPhantoms() = 0; + ReplCtx->MonGroup.ReplUnreplicatedNonPhantoms() = 0; ReplCtx->MonGroup.ReplWorkUnitsRemaining() = 0; ReplCtx->MonGroup.ReplWorkUnitsDone() = 0; ReplCtx->MonGroup.ReplItemsRemaining() = 0; diff --git a/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.darwin-arm64.txt index 16023ad1b64d..6fa5e625e484 100644 --- a/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-blobstorage-vdisk-repl-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-repl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullreplwritesst_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.darwin-x86_64.txt index cd42f2129ebe..8d30e7ec4e19 100644 --- a/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-blobstorage-vdisk-repl-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-repl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullreplwritesst_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.linux-aarch64.txt index 530395ef98d1..e78ea5b4ef49 100644 --- a/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-blobstorage-vdisk-repl-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-repl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullreplwritesst_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.linux-x86_64.txt index fd4c6c13e391..0248e8355efd 100644 --- a/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-blobstorage-vdisk-repl-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-repl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/repl/blobstorage_hullreplwritesst_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.windows-x86_64.txt index 83564a2c8fb5..3dcfe29217cc 100644 --- a/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/repl/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/scrub/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/scrub/CMakeLists.darwin-arm64.txt index c8c2529e7ba3..79d4ffe3ae9f 100644 --- a/ydb/core/blobstorage/vdisk/scrub/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/scrub/CMakeLists.darwin-arm64.txt @@ -16,6 +16,13 @@ target_link_libraries(blobstorage-vdisk-scrub PUBLIC blobstorage-vdisk-skeleton ) target_sources(blobstorage-vdisk-scrub PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/restore_corrupted_blob_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_huge_blob_merger.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_sst_blob_merger.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery_process.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery_queue.cpp diff --git a/ydb/core/blobstorage/vdisk/scrub/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/scrub/CMakeLists.darwin-x86_64.txt index c8c2529e7ba3..79d4ffe3ae9f 100644 --- a/ydb/core/blobstorage/vdisk/scrub/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/scrub/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,13 @@ target_link_libraries(blobstorage-vdisk-scrub PUBLIC blobstorage-vdisk-skeleton ) target_sources(blobstorage-vdisk-scrub PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/restore_corrupted_blob_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_huge_blob_merger.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_sst_blob_merger.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery_process.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery_queue.cpp diff --git a/ydb/core/blobstorage/vdisk/scrub/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/scrub/CMakeLists.linux-aarch64.txt index af30c5651509..833db226c4dc 100644 --- a/ydb/core/blobstorage/vdisk/scrub/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/scrub/CMakeLists.linux-aarch64.txt @@ -17,6 +17,13 @@ target_link_libraries(blobstorage-vdisk-scrub PUBLIC blobstorage-vdisk-skeleton ) target_sources(blobstorage-vdisk-scrub PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/restore_corrupted_blob_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_huge_blob_merger.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_sst_blob_merger.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery_process.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery_queue.cpp diff --git a/ydb/core/blobstorage/vdisk/scrub/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/scrub/CMakeLists.linux-x86_64.txt index af30c5651509..833db226c4dc 100644 --- a/ydb/core/blobstorage/vdisk/scrub/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/scrub/CMakeLists.linux-x86_64.txt @@ -17,6 +17,13 @@ target_link_libraries(blobstorage-vdisk-scrub PUBLIC blobstorage-vdisk-skeleton ) target_sources(blobstorage-vdisk-scrub PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/restore_corrupted_blob_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_huge_blob_merger.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_sst_blob_merger.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery_process.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery_queue.cpp diff --git a/ydb/core/blobstorage/vdisk/scrub/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/scrub/CMakeLists.windows-x86_64.txt index c8c2529e7ba3..79d4ffe3ae9f 100644 --- a/ydb/core/blobstorage/vdisk/scrub/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/scrub/CMakeLists.windows-x86_64.txt @@ -16,6 +16,13 @@ target_link_libraries(blobstorage-vdisk-scrub PUBLIC blobstorage-vdisk-skeleton ) target_sources(blobstorage-vdisk-scrub PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/restore_corrupted_blob_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_huge_blob_merger.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/scrub_actor_sst_blob_merger.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery_process.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/scrub/blob_recovery_queue.cpp diff --git a/ydb/core/blobstorage/vdisk/scrub/blob_recovery_impl.h b/ydb/core/blobstorage/vdisk/scrub/blob_recovery_impl.h index 0e9022168f2c..cf645679aad6 100644 --- a/ydb/core/blobstorage/vdisk/scrub/blob_recovery_impl.h +++ b/ydb/core/blobstorage/vdisk/scrub/blob_recovery_impl.h @@ -99,15 +99,15 @@ namespace NKikimr { // a map to fill upon receiving VGet result struct TPerBlobInfo { - const TInstant Deadline; std::weak_ptr Context; TEvRecoverBlobResult::TItem *Item; // item to update ui32 BlobReplyCounter = 0; // number of unreplied queries for this blob }; std::unordered_multimap> VGetResultMap; + std::set> GetsInFlight; void AddBlobQuery(const TLogoBlobID& id, NMatrix::TVectorType needed, const std::shared_ptr& context, TEvRecoverBlobResult::TItem *item); - void AddExtremeQuery(const TVDiskID& vdiskId, const TLogoBlobID& id, TInstant deadline, ui32 worstReplySize); + void AddExtremeQuery(const TVDiskID& vdiskId, const TLogoBlobID& id, TInstant deadline, ui32 idxInSubgroup); void SendPendingQueries(); void Handle(TEvBlobStorage::TEvVGetResult::TPtr ev); NKikimrProto::EReplyStatus ProcessItemData(TEvRecoverBlobResult::TItem& item); diff --git a/ydb/core/blobstorage/vdisk/scrub/blob_recovery_process.cpp b/ydb/core/blobstorage/vdisk/scrub/blob_recovery_process.cpp index 24a1d5dd087a..378c689fc4f3 100644 --- a/ydb/core/blobstorage/vdisk/scrub/blob_recovery_process.cpp +++ b/ydb/core/blobstorage/vdisk/scrub/blob_recovery_process.cpp @@ -7,46 +7,56 @@ namespace NKikimr { STLOG(PRI_DEBUG, BS_VDISK_SCRUB, VDS32, VDISKP(LogPrefix, "AddBlobQuery"), (SelfId, SelfId()), (Id, id), (Needed, needed), (RequestId, context->RequestId)); const TInstant deadline = context->Iterator->first; - const TBlobStorageGroupType& gtype = Info->Type; TBlobStorageGroupInfo::TOrderNums nums; Info->GetTopology().PickSubgroup(id.Hash(), nums); ui32 blobReplyCounter = 0; for (ui32 i = 0; i < nums.size(); ++i) { const TVDiskID& vdiskId = Info->GetVDiskId(i); // obtain VDisk - if (TVDiskIdShort(vdiskId) == VCtx->ShortSelfVDisk) { - continue; + if (TVDiskIdShort(vdiskId) != VCtx->ShortSelfVDisk) { + AddExtremeQuery(vdiskId, id, deadline, i); + ++blobReplyCounter; } + } + VGetResultMap.emplace(id, TPerBlobInfo{context, item, blobReplyCounter}); + } + + void TBlobRecoveryActor::AddExtremeQuery(const TVDiskID& vdiskId, const TLogoBlobID& id, TInstant deadline, ui32 idxInSubgroup) { + const auto [_, inserted] = GetsInFlight.emplace(vdiskId, id); + + ui32 worstReplySize = 0; + if (inserted) { + const TBlobStorageGroupType& gtype = Info->Type; switch (TIngress::IngressMode(gtype)) { case TIngress::EMode::GENERIC: - ui32 maxSize; - maxSize = 0; if (gtype.GetErasure() == TBlobStorageGroupType::ErasureMirror3dc) { - maxSize += gtype.PartSize(TLogoBlobID(id, i % 3 + 1)); + worstReplySize = gtype.PartSize(TLogoBlobID(id, idxInSubgroup % 3 + 1)); } else { for (ui32 k = 0; k < gtype.TotalPartCount(); ++k) { - maxSize += i >= gtype.TotalPartCount() || k == i ? gtype.PartSize(TLogoBlobID(id, k + 1)) : 0; + worstReplySize += idxInSubgroup >= gtype.TotalPartCount() || k == idxInSubgroup + ? gtype.PartSize(TLogoBlobID(id, k + 1)) : 0; } } - AddExtremeQuery(vdiskId, id, deadline, maxSize); break; case TIngress::EMode::MIRROR3OF4: - AddExtremeQuery(vdiskId, id, deadline, gtype.PartSize(TLogoBlobID(id, 1)) + - gtype.PartSize(TLogoBlobID(id, 2))); + for (ui32 i = 0; i < 2; ++i) { + if (idxInSubgroup % 2 == i || idxInSubgroup >= 4) { + worstReplySize += gtype.PartSize(TLogoBlobID(id, i + 1)); + } + } break; } - ++blobReplyCounter; } - VGetResultMap.emplace(id, TPerBlobInfo{context->Iterator->first, context, item, blobReplyCounter}); - } - void TBlobRecoveryActor::AddExtremeQuery(const TVDiskID& vdiskId, const TLogoBlobID& id, TInstant deadline, ui32 worstReplySize) { STLOG(PRI_DEBUG, BS_VDISK_SCRUB, VDS33, VDISKP(LogPrefix, "AddExtremeQuery"), (SelfId, SelfId()), - (VDiskId, vdiskId), (Id, id), (WorstReplySize, worstReplySize)); + (VDiskId, vdiskId), (Id, id), (WorstReplySize, worstReplySize), (AlreadyInFlight, !inserted)); + if (!inserted) { // the request is already in flight + return; + } TQuery& query = Queries[vdiskId]; - const ui32 maxReplySize = 10000000; // FIXME + const ui32 maxReplySize = 32_MB; if (query.VGet && query.WorstReplySize + worstReplySize > maxReplySize) { // send the request on overflow query.Pending.push_back(std::move(query.VGet)); query.WorstReplySize = 0; @@ -79,35 +89,51 @@ namespace NKikimr { STLOG(PRI_DEBUG, BS_VDISK_SCRUB, VDS35, VDISKP(LogPrefix, "received TEvVGetResult"), (SelfId, SelfId()), (Msg, ev->Get()->ToString())); + const TInstant now = TActivationContext::Now(); const auto& record = ev->Get()->Record; + const TVDiskID vdiskId = VDiskIDFromVDiskID(record.GetVDiskID()); + std::unordered_map> rerequest; + std::unordered_set done; + for (const auto& res : record.GetResult()) { const TLogoBlobID& id = LogoBlobIDFromLogoBlobID(res.GetBlobID()); const TLogoBlobID& fullId = id.FullID(); // whole blob id - auto r = VGetResultMap.equal_range(fullId); - for (auto it = r.first; it != r.second; ) { + done.insert(fullId); + const NKikimrProto::EReplyStatus status = res.GetStatus(); + auto [begin, end] = VGetResultMap.equal_range(fullId); + for (auto it = begin; it != end; ) { TPerBlobInfo& info = it->second; if (auto context = info.Context.lock()) { // context acquired, request is still intact - auto& item = *info.Item; // only here we can access item, after obtaining context pointer - TRope data = ev->Get()->GetBlobData(res); - bool update = false; - if (res.GetStatus() == NKikimrProto::OK && data) { - item.SetPartData(id, std::move(data)); - update = true; - } - const bool term = !--info.BlobReplyCounter; - if (item.Status == NKikimrProto::UNKNOWN && (term || update)) { - const NKikimrProto::EReplyStatus prevStatus = std::exchange(item.Status, ProcessItemData(item)); - if (item.Status == NKikimrProto::UNKNOWN && term) { // not enough parts to fulfill request - item.Status = NKikimrProto::NODATA; + if (status == NKikimrProto::DEADLINE && now < context->Iterator->first) { + auto& deadline = rerequest[fullId]; + deadline = Max(deadline, context->Iterator->first); + } else { + auto& item = *info.Item; // only here we can access item, after obtaining context pointer + TRope data = ev->Get()->GetBlobData(res); + bool update = false; + if (res.GetStatus() == NKikimrProto::OK && data) { + item.SetPartData(id, std::move(data)); + update = true; + } + const bool term = !--info.BlobReplyCounter; + if (item.Status == NKikimrProto::UNKNOWN && (term || update)) { + const NKikimrProto::EReplyStatus prevStatus = std::exchange(item.Status, ProcessItemData(item)); + if (item.Status == NKikimrProto::UNKNOWN && term) { // not enough parts to fulfill request + item.Status = NKikimrProto::NODATA; + } + STLOG(PRI_DEBUG, BS_VDISK_SCRUB, VDS36, VDISKP(LogPrefix, "processing item"), + (SelfId, SelfId()), (RequestId, context->RequestId), (Id, id), + (Status, res.GetStatus()), (Last, term), (DataUpdated, update), + (EntryStatus, prevStatus), (ExitStatus, item.Status)); + } + if (item.Status != NKikimrProto::UNKNOWN && !--context->NumUnrespondedBlobs) { // request fully completed + context->SendResult(SelfId()); + InFlight.erase(context->Iterator); + } + if (term) { // this was the last reply for current blob + it = VGetResultMap.erase(it); + continue; } - STLOG(PRI_DEBUG, BS_VDISK_SCRUB, VDS36, VDISKP(LogPrefix, "processing item"), - (SelfId, SelfId()), (RequestId, context->RequestId), (Id, id), - (Status, res.GetStatus()), (Last, term), (DataUpdated, update), - (EntryStatus, prevStatus), (ExitStatus, item.Status)); - } - if (item.Status != NKikimrProto::UNKNOWN && !--context->NumUnrespondedBlobs) { - context->SendResult(SelfId()); - InFlight.erase(context->Iterator); } ++it; } else { // request deadlined or canceled, we erase it from the map @@ -115,6 +141,15 @@ namespace NKikimr { } } } + + for (const auto& id : done) { + const size_t n = GetsInFlight.erase(std::make_tuple(vdiskId, id)); + Y_DEBUG_ABORT_UNLESS(n == 1); + } + for (const auto& [id, deadline] : rerequest) { + AddExtremeQuery(vdiskId, id, deadline, Info->GetTopology().GetIdxInSubgroup(vdiskId, id.Hash())); + } + SendPendingQueries(); } NKikimrProto::EReplyStatus TBlobRecoveryActor::ProcessItemData(TEvRecoverBlobResult::TItem& item) { diff --git a/ydb/core/blobstorage/vdisk/scrub/blob_recovery_request.cpp b/ydb/core/blobstorage/vdisk/scrub/blob_recovery_request.cpp index fcfbd6ed9f3a..e86edcacbbb9 100644 --- a/ydb/core/blobstorage/vdisk/scrub/blob_recovery_request.cpp +++ b/ydb/core/blobstorage/vdisk/scrub/blob_recovery_request.cpp @@ -49,14 +49,9 @@ namespace NKikimr { } InFlight.erase(InFlight.begin(), it); - TInstant deadline = TInstant::Max(); // next deadline - if (it != InFlight.end()) { - deadline = it->first; - } - // reschedule timer - if (deadline != TInstant::Max()) { - Schedule(deadline, new TEvents::TEvWakeup); + if (it != InFlight.end()) { + Schedule(it->first, new TEvents::TEvWakeup); } else { WakeupScheduled = false; } diff --git a/ydb/core/blobstorage/vdisk/scrub/restore_corrupted_blob_actor.cpp b/ydb/core/blobstorage/vdisk/scrub/restore_corrupted_blob_actor.cpp index 87b1113d5f2e..8957d7a998da 100644 --- a/ydb/core/blobstorage/vdisk/scrub/restore_corrupted_blob_actor.cpp +++ b/ydb/core/blobstorage/vdisk/scrub/restore_corrupted_blob_actor.cpp @@ -196,6 +196,8 @@ namespace NKikimr { } void IssueQuery() { + STLOG(PRI_DEBUG, BS_VDISK_SCRUB, VDS00, VDISKP(LogPrefix, "IssueQuery"), (SelfId, SelfId())); + std::unique_ptr ev; for (size_t i = 0; i < Items.size(); ++i) { const auto& item = Items[i]; @@ -205,6 +207,8 @@ namespace NKikimr { ev->Deadline = Deadline; } ev->Items.emplace_back(item.BlobId, TStackVec(item.Parts), item.PartsMask, item.Needed, TDiskPart(), i); + STLOG(PRI_DEBUG, BS_VDISK_SCRUB, VDS17, VDISKP(LogPrefix, "IssueQuery item"), (SelfId, SelfId()), + (BlobId, item.BlobId), (PartsMask, item.PartsMask), (Needed, item.Needed)); } } if (ev) { @@ -222,6 +226,8 @@ namespace NKikimr { } void Handle(TEvRecoverBlobResult::TPtr ev) { + STLOG(PRI_DEBUG, BS_VDISK_SCRUB, VDS24, VDISKP(LogPrefix, "Handle(TEvRecoverBlobResult)"), (SelfId, SelfId())); + for (auto& item : ev->Get()->Items) { auto& myItem = Items[item.Cookie]; Y_ABORT_UNLESS(myItem.Status == NKikimrProto::UNKNOWN); @@ -233,6 +239,8 @@ namespace NKikimr { IssueWrite(myItem, item.Cookie); } } + STLOG(PRI_DEBUG, BS_VDISK_SCRUB, VDS43, VDISKP(LogPrefix, "Handle(TEvRecoverBlobResult) item"), + (SelfId, SelfId()), (BlobId, item.BlobId), (Status, item.Status), (PartsMask, item.PartsMask)); } for (const auto& item : Items) { if (item.Status == NKikimrProto::UNKNOWN) { diff --git a/ydb/core/blobstorage/vdisk/scrub/scrub_actor_pdisk.cpp b/ydb/core/blobstorage/vdisk/scrub/scrub_actor_pdisk.cpp index ef68ca83e0c4..22e93924194c 100644 --- a/ydb/core/blobstorage/vdisk/scrub/scrub_actor_pdisk.cpp +++ b/ydb/core/blobstorage/vdisk/scrub/scrub_actor_pdisk.cpp @@ -11,6 +11,9 @@ namespace NKikimr { Send(ScrubCtx->PDiskCtx->PDiskId, msg.release()); CurrentState = TStringBuilder() << "reading data from " << part.ToString(); auto res = WaitForPDiskEvent(); + if (ScrubCtx->VCtx->CostTracker) { + ScrubCtx->VCtx->CostTracker->CountPDiskResponse(); + } auto *m = res->Get(); Y_VERIFY_S(m->Status == NKikimrProto::OK || m->Status == NKikimrProto::CORRUPTED, "Status# " << NKikimrProto::EReplyStatus_Name(m->Status)); @@ -41,6 +44,9 @@ namespace NKikimr { Send(ScrubCtx->PDiskCtx->PDiskId, msg.release()); CurrentState = TStringBuilder() << "writing index to " << part.ToString(); auto res = WaitForPDiskEvent(); + if (ScrubCtx->VCtx->CostTracker) { + ScrubCtx->VCtx->CostTracker->CountPDiskResponse(); + } Y_ABORT_UNLESS(res->Get()->Status == NKikimrProto::OK); // FIXME: good logic } diff --git a/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.darwin-arm64.txt index e06a3623235d..d1a7ae94d46c 100644 --- a/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.darwin-arm64.txt @@ -13,12 +13,35 @@ target_link_libraries(blobstorage-vdisk-skeleton PUBLIC contrib-libs-cxxsupp yutil ydb-core-base + blobstorage-vdisk-balance vdisk-hulldb-base vdisk-hulldb-bulksst_add blobstorage-vdisk-synclog ydb-core-protos ) target_sources(blobstorage-vdisk-skeleton PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_db.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_monactors.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeleton.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonerr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonfront.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_syncfull.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_syncfullhandler.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_takedbsnap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_block_and_get.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_capturevdisklayout.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_compactionstate.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_loggedrec.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_mon_dbmainpage.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_mon_util.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_logic.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_overload_handler.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmultiput_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmovedpatch_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vpatch_actor.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_db.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_monactors.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeleton.cpp diff --git a/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.darwin-x86_64.txt index e06a3623235d..d1a7ae94d46c 100644 --- a/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.darwin-x86_64.txt @@ -13,12 +13,35 @@ target_link_libraries(blobstorage-vdisk-skeleton PUBLIC contrib-libs-cxxsupp yutil ydb-core-base + blobstorage-vdisk-balance vdisk-hulldb-base vdisk-hulldb-bulksst_add blobstorage-vdisk-synclog ydb-core-protos ) target_sources(blobstorage-vdisk-skeleton PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_db.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_monactors.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeleton.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonerr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonfront.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_syncfull.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_syncfullhandler.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_takedbsnap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_block_and_get.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_capturevdisklayout.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_compactionstate.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_loggedrec.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_mon_dbmainpage.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_mon_util.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_logic.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_overload_handler.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmultiput_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmovedpatch_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vpatch_actor.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_db.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_monactors.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeleton.cpp diff --git a/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.linux-aarch64.txt index bc6836ca5f8f..c572d7f1940d 100644 --- a/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.linux-aarch64.txt @@ -14,12 +14,35 @@ target_link_libraries(blobstorage-vdisk-skeleton PUBLIC contrib-libs-cxxsupp yutil ydb-core-base + blobstorage-vdisk-balance vdisk-hulldb-base vdisk-hulldb-bulksst_add blobstorage-vdisk-synclog ydb-core-protos ) target_sources(blobstorage-vdisk-skeleton PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_db.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_monactors.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeleton.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonerr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonfront.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_syncfull.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_syncfullhandler.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_takedbsnap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_block_and_get.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_capturevdisklayout.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_compactionstate.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_loggedrec.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_mon_dbmainpage.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_mon_util.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_logic.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_overload_handler.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmultiput_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmovedpatch_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vpatch_actor.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_db.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_monactors.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeleton.cpp diff --git a/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.linux-x86_64.txt index bc6836ca5f8f..c572d7f1940d 100644 --- a/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.linux-x86_64.txt @@ -14,12 +14,35 @@ target_link_libraries(blobstorage-vdisk-skeleton PUBLIC contrib-libs-cxxsupp yutil ydb-core-base + blobstorage-vdisk-balance vdisk-hulldb-base vdisk-hulldb-bulksst_add blobstorage-vdisk-synclog ydb-core-protos ) target_sources(blobstorage-vdisk-skeleton PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_db.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_monactors.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeleton.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonerr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonfront.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_syncfull.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_syncfullhandler.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_takedbsnap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_block_and_get.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_capturevdisklayout.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_compactionstate.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_loggedrec.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_mon_dbmainpage.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_mon_util.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_logic.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_overload_handler.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmultiput_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmovedpatch_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vpatch_actor.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_db.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_monactors.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeleton.cpp diff --git a/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.windows-x86_64.txt index e06a3623235d..d1a7ae94d46c 100644 --- a/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/skeleton/CMakeLists.windows-x86_64.txt @@ -13,12 +13,35 @@ target_link_libraries(blobstorage-vdisk-skeleton PUBLIC contrib-libs-cxxsupp yutil ydb-core-base + blobstorage-vdisk-balance vdisk-hulldb-base vdisk-hulldb-bulksst_add blobstorage-vdisk-synclog ydb-core-protos ) target_sources(blobstorage-vdisk-skeleton PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_db.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_monactors.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeleton.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonerr.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonfront.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_syncfull.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_syncfullhandler.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_takedbsnap.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_block_and_get.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_capturevdisklayout.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_compactionstate.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_loggedrec.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_mon_dbmainpage.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_mon_util.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_logic.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_overload_handler.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmultiput_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vmovedpatch_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_vpatch_actor.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_db.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_monactors.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeleton.cpp diff --git a/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeleton.cpp b/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeleton.cpp index da904f927202..a8f380b04f92 100644 --- a/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeleton.cpp +++ b/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeleton.cpp @@ -2153,6 +2153,22 @@ namespace NKikimr { TABLED() {str << "VDiskIncarnationGuid";} TABLED() {str << Db->GetVDiskIncarnationGuid(true);} } + + if (PDiskCtx && PDiskCtx->Dsk) { + NPDisk::EDeviceType trueMedia = PDiskCtx->Dsk->TrueMediaType; + TABLER() { + TABLED() {str << "TrueMediaType";} + TABLED() {str << NPDisk::DeviceTypeStr(trueMedia, true); } + } + TABLER() { + TABLED() {str << "BurstThresholdNs";} + TABLED() {str << (i64)Config->CostMetricsParametersByMedia[trueMedia].BurstThresholdNs;} + } + TABLER() { + TABLED() {str << "DiskTimeAvailableScale";} + TABLED() {str << 0.001 * Config->CostMetricsParametersByMedia[trueMedia].DiskTimeAvailableScale;} + } + } } } diff --git a/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonfront.cpp b/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonfront.cpp index 238a69e391c5..744daf28cde9 100644 --- a/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonfront.cpp +++ b/ydb/core/blobstorage/vdisk/skeleton/blobstorage_skeletonfront.cpp @@ -1233,7 +1233,7 @@ namespace NKikimr { void HandleRequestWithQoS(const TActorContext &ctx, TEventPtr &ev, const char *msgName, ui64 cost, TIntQueueClass &intQueue) { CheckEvent(ev, msgName); - const ui64 advancedCost = VCtx->CostTracker->GetCost(*ev->Get()); + const ui64 advancedCost = VCtx->CostTracker ? VCtx->CostTracker->GetCost(*ev->Get()) : 0; const ui32 recByteSize = ev->Get()->GetCachedByteSize(); auto &record = ev->Get()->Record; auto &msgQoS = *record.MutableMsgQoS(); @@ -1281,10 +1281,14 @@ namespace NKikimr { } else { if (clientId.GetType() == NBackpressure::EQueueClientType::DSProxy) { CostGroup.SkeletonFrontUserCostNs() += cost; - VCtx->CostTracker->CountUserCost(advancedCost); + if (VCtx->CostTracker) { + VCtx->CostTracker->CountUserCost(advancedCost); + } } else { CostGroup.SkeletonFrontInternalCostNs() += cost; - VCtx->CostTracker->CountInternalCost(advancedCost); + if (VCtx->CostTracker) { + VCtx->CostTracker->CountInternalCost(advancedCost); + } } } } @@ -1632,7 +1636,12 @@ namespace NKikimr { extQueue.Completed(ctx, msgCtx, event); TIntQueueClass &intQueue = GetIntQueue(msgCtx.IntQueueId); intQueue.Completed(ctx, msgCtx, *this, id); - TActivationContext::Send(event.release()); + if (VCtx->CostTracker) { + VCtx->CostTracker->CountPDiskResponse(); + } + if (!ev->Get()->DoNotResend) { + TActivationContext::Send(event.release()); + } } void ChangeGeneration(const TVDiskID& vdiskId, const TIntrusivePtr& info, diff --git a/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_tracker.cpp b/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_tracker.cpp index a924e52057ad..a21d19f4bd42 100644 --- a/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_tracker.cpp +++ b/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_tracker.cpp @@ -91,8 +91,13 @@ namespace NKikimr { VCtx->OutOfSpaceState.UpdateLocalUsedChunks(msg->UsedChunks); MonGroup.DskTotalBytes() = msg->TotalChunks * PDiskCtx->Dsk->ChunkSize; MonGroup.DskFreeBytes() = msg->FreeChunks * PDiskCtx->Dsk->ChunkSize; + MonGroup.DskUsedBytes() = msg->UsedChunks * PDiskCtx->Dsk->ChunkSize; if (msg->NumSlots > 0) { - CostGroup.DiskTimeAvailableNs() = 1'000'000'000ull / msg->NumSlots; + ui32 timeAvailable = 1'000'000'000 / msg->NumSlots; + CostGroup.DiskTimeAvailableNs() = timeAvailable; + if (VCtx->CostTracker) { + VCtx->CostTracker->SetTimeAvailable(timeAvailable); + } } Become(&TThis::WaitFunc); diff --git a/ydb/core/blobstorage/vdisk/skeleton/skeleton_vpatch_actor.cpp b/ydb/core/blobstorage/vdisk/skeleton/skeleton_vpatch_actor.cpp index 8aaec57b68b4..a3587f75ef24 100644 --- a/ydb/core/blobstorage/vdisk/skeleton/skeleton_vpatch_actor.cpp +++ b/ydb/core/blobstorage/vdisk/skeleton/skeleton_vpatch_actor.cpp @@ -291,7 +291,7 @@ namespace NKikimr::NPrivate { } } - void SendVPatchResult(NKikimrProto::EReplyStatus status) + void SendVPatchResult(NKikimrProto::EReplyStatus status, bool forceEnd = false) { STLOG(PRI_INFO, BS_VDISK_PATCH, BSVSP07, VDiskLogPrefix << " TEvVPatch: send patch result;", @@ -308,6 +308,9 @@ namespace NKikimr::NPrivate { } AddMark((status == NKikimrProto::OK ? "Patch ends with OK" : "Patch ends witn NOT OK")); CurrentEventTrace = nullptr; + if (forceEnd) { + ResultEvent->SetForceEndResponse(); + } SendVDiskResponse(TActivationContext::AsActorContext(), Sender, ResultEvent.release(), Cookie); } @@ -501,7 +504,7 @@ namespace NKikimr::NPrivate { Cookie = ev->Cookie; CurrentEventTrace = ev->Get()->VDiskSkeletonTrace; AddMark("Error: HandleError TEvVPatchDiff"); - SendVPatchResult(NKikimrProto::ERROR); + SendVPatchResult(NKikimrProto::ERROR, ev->Get()->IsForceEnd()); } void HandleForceEnd(TEvBlobStorage::TEvVPatchDiff::TPtr &ev) { @@ -509,7 +512,7 @@ namespace NKikimr::NPrivate { SendVPatchFoundParts(NKikimrProto::ERROR); if (forceEnd) { AddMark("Force end"); - SendVPatchResult(NKikimrProto::OK); + SendVPatchResult(NKikimrProto::OK, true); } else { AddMark("Force end by error"); SendVPatchResult(NKikimrProto::ERROR); @@ -566,7 +569,7 @@ namespace NKikimr::NPrivate { if (forceEnd) { AddMark("Force end"); - SendVPatchResult(NKikimrProto::OK); + SendVPatchResult(NKikimrProto::OK, true); NotifySkeletonAboutDying(); Become(&TThis::ErrorState); return; diff --git a/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.darwin-arm64.txt index b898b908bb44..fa7a6c269001 100644 --- a/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.darwin-arm64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-core-blobstorage-vdisk-skeleton-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-skeleton-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_logic_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.darwin-x86_64.txt index 819db2d04ef3..48ddc0d0ca89 100644 --- a/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.darwin-x86_64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-core-blobstorage-vdisk-skeleton-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-skeleton-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_logic_ut.cpp @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.linux-aarch64.txt index e79e549815c7..7159e147e23f 100644 --- a/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-core-blobstorage-vdisk-skeleton-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-skeleton-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_logic_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.linux-x86_64.txt index 764a1a2346e4..23d26289d63b 100644 --- a/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-core-blobstorage-vdisk-skeleton-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-skeleton-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/skeleton/skeleton_oos_logic_ut.cpp @@ -67,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.windows-x86_64.txt index 404e8ceac676..a3051c2c4c2f 100644 --- a/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/skeleton/ut/CMakeLists.windows-x86_64.txt @@ -56,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/syncer/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/syncer/CMakeLists.darwin-arm64.txt index 9051a00f6610..c15438701b90 100644 --- a/ydb/core/blobstorage/vdisk/syncer/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/syncer/CMakeLists.darwin-arm64.txt @@ -24,6 +24,25 @@ target_link_libraries(blobstorage-vdisk-syncer PUBLIC version ) target_sources(blobstorage-vdisk-syncer PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_committer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_dataserdes.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_localwriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_recoverlostdata.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_recoverlostdata_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_scheduler.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_firstrun.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_propagator.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxybase.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxyobtain.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxywrite.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_recovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_context.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_job_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_job_task.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_committer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data.cpp diff --git a/ydb/core/blobstorage/vdisk/syncer/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/syncer/CMakeLists.darwin-x86_64.txt index 9051a00f6610..c15438701b90 100644 --- a/ydb/core/blobstorage/vdisk/syncer/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/syncer/CMakeLists.darwin-x86_64.txt @@ -24,6 +24,25 @@ target_link_libraries(blobstorage-vdisk-syncer PUBLIC version ) target_sources(blobstorage-vdisk-syncer PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_committer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_dataserdes.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_localwriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_recoverlostdata.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_recoverlostdata_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_scheduler.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_firstrun.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_propagator.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxybase.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxyobtain.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxywrite.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_recovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_context.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_job_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_job_task.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_committer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data.cpp diff --git a/ydb/core/blobstorage/vdisk/syncer/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/syncer/CMakeLists.linux-aarch64.txt index 29dcf5244278..fa88c4ae00af 100644 --- a/ydb/core/blobstorage/vdisk/syncer/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/syncer/CMakeLists.linux-aarch64.txt @@ -25,6 +25,25 @@ target_link_libraries(blobstorage-vdisk-syncer PUBLIC version ) target_sources(blobstorage-vdisk-syncer PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_committer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_dataserdes.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_localwriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_recoverlostdata.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_recoverlostdata_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_scheduler.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_firstrun.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_propagator.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxybase.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxyobtain.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxywrite.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_recovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_context.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_job_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_job_task.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_committer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data.cpp diff --git a/ydb/core/blobstorage/vdisk/syncer/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/syncer/CMakeLists.linux-x86_64.txt index 29dcf5244278..fa88c4ae00af 100644 --- a/ydb/core/blobstorage/vdisk/syncer/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/syncer/CMakeLists.linux-x86_64.txt @@ -25,6 +25,25 @@ target_link_libraries(blobstorage-vdisk-syncer PUBLIC version ) target_sources(blobstorage-vdisk-syncer PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_committer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_dataserdes.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_localwriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_recoverlostdata.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_recoverlostdata_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_scheduler.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_firstrun.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_propagator.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxybase.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxyobtain.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxywrite.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_recovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_context.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_job_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_job_task.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_committer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data.cpp diff --git a/ydb/core/blobstorage/vdisk/syncer/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/syncer/CMakeLists.windows-x86_64.txt index 9051a00f6610..c15438701b90 100644 --- a/ydb/core/blobstorage/vdisk/syncer/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/syncer/CMakeLists.windows-x86_64.txt @@ -24,6 +24,25 @@ target_link_libraries(blobstorage-vdisk-syncer PUBLIC version ) target_sources(blobstorage-vdisk-syncer PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_committer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_dataserdes.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_localwriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_recoverlostdata.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_recoverlostdata_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_scheduler.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_firstrun.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_propagator.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxybase.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxyobtain.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_proxywrite.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/guid_recovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_context.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_job_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/syncer_job_task.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_committer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data.cpp diff --git a/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.darwin-arm64.txt index 9eada578661b..578fa0238b10 100644 --- a/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.darwin-arm64.txt @@ -16,6 +16,7 @@ target_link_libraries(ydb-core-blobstorage-vdisk-syncer-ut PUBLIC yutil cpp-testing-unittest_main blobstorage-vdisk-syncer + version_definition library-cpp-getopt library-cpp-svnversion ydb-core-base @@ -25,8 +26,6 @@ target_link_options(ydb-core-blobstorage-vdisk-syncer-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-syncer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data_ut.cpp @@ -58,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.darwin-x86_64.txt index 47e586bf7467..a4157f2d94fe 100644 --- a/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.darwin-x86_64.txt @@ -17,6 +17,7 @@ target_link_libraries(ydb-core-blobstorage-vdisk-syncer-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main blobstorage-vdisk-syncer + version_definition library-cpp-getopt library-cpp-svnversion ydb-core-base @@ -26,8 +27,6 @@ target_link_options(ydb-core-blobstorage-vdisk-syncer-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-syncer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data_ut.cpp @@ -59,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.linux-aarch64.txt index b6de287e21fd..cfee695d7895 100644 --- a/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.linux-aarch64.txt @@ -17,6 +17,7 @@ target_link_libraries(ydb-core-blobstorage-vdisk-syncer-ut PUBLIC yutil cpp-testing-unittest_main blobstorage-vdisk-syncer + version_definition library-cpp-getopt library-cpp-svnversion ydb-core-base @@ -28,9 +29,6 @@ target_link_options(ydb-core-blobstorage-vdisk-syncer-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-syncer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.linux-x86_64.txt index 15bf4f809a7f..8ce55a24c606 100644 --- a/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.linux-x86_64.txt @@ -18,6 +18,7 @@ target_link_libraries(ydb-core-blobstorage-vdisk-syncer-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main blobstorage-vdisk-syncer + version_definition library-cpp-getopt library-cpp-svnversion ydb-core-base @@ -29,9 +30,6 @@ target_link_options(ydb-core-blobstorage-vdisk-syncer-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-syncer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/syncer/blobstorage_syncer_data_ut.cpp @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.windows-x86_64.txt index 24fa651f9538..8eb0e7465a02 100644 --- a/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/syncer/ut/CMakeLists.windows-x86_64.txt @@ -17,6 +17,7 @@ target_link_libraries(ydb-core-blobstorage-vdisk-syncer-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main blobstorage-vdisk-syncer + version_definition library-cpp-getopt library-cpp-svnversion ydb-core-base @@ -52,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/syncer/ut/ya.make b/ydb/core/blobstorage/vdisk/syncer/ut/ya.make index 8844b2aeafd0..21f122b246d4 100644 --- a/ydb/core/blobstorage/vdisk/syncer/ut/ya.make +++ b/ydb/core/blobstorage/vdisk/syncer/ut/ya.make @@ -7,6 +7,7 @@ TIMEOUT(600) SIZE(MEDIUM) PEERDIR( + ydb/apps/version library/cpp/getopt library/cpp/svnversion ydb/core/base diff --git a/ydb/core/blobstorage/vdisk/synclog/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/synclog/CMakeLists.darwin-arm64.txt index 0e7a1ace7f35..381f0d77c9ce 100644 --- a/ydb/core/blobstorage/vdisk/synclog/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/synclog/CMakeLists.darwin-arm64.txt @@ -28,6 +28,26 @@ target_link_libraries(blobstorage-vdisk-synclog PUBLIC ydb-core-util ) target_sources(blobstorage-vdisk-synclog PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_private_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_public_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdsk.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogformat.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_syncloghttp.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper_committer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmem.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgimpl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgreader.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgwriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogneighbors.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogreader.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogrecovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogwriteparts.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/codecs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_private_events.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata.cpp diff --git a/ydb/core/blobstorage/vdisk/synclog/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/synclog/CMakeLists.darwin-x86_64.txt index 0e7a1ace7f35..381f0d77c9ce 100644 --- a/ydb/core/blobstorage/vdisk/synclog/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/synclog/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,26 @@ target_link_libraries(blobstorage-vdisk-synclog PUBLIC ydb-core-util ) target_sources(blobstorage-vdisk-synclog PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_private_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_public_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdsk.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogformat.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_syncloghttp.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper_committer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmem.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgimpl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgreader.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgwriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogneighbors.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogreader.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogrecovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogwriteparts.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/codecs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_private_events.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata.cpp diff --git a/ydb/core/blobstorage/vdisk/synclog/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/synclog/CMakeLists.linux-aarch64.txt index 39f5e6a6ee5f..66bd938e7ecd 100644 --- a/ydb/core/blobstorage/vdisk/synclog/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/synclog/CMakeLists.linux-aarch64.txt @@ -29,6 +29,26 @@ target_link_libraries(blobstorage-vdisk-synclog PUBLIC ydb-core-util ) target_sources(blobstorage-vdisk-synclog PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_private_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_public_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdsk.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogformat.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_syncloghttp.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper_committer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmem.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgimpl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgreader.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgwriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogneighbors.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogreader.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogrecovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogwriteparts.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/codecs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_private_events.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata.cpp diff --git a/ydb/core/blobstorage/vdisk/synclog/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/synclog/CMakeLists.linux-x86_64.txt index 39f5e6a6ee5f..66bd938e7ecd 100644 --- a/ydb/core/blobstorage/vdisk/synclog/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/synclog/CMakeLists.linux-x86_64.txt @@ -29,6 +29,26 @@ target_link_libraries(blobstorage-vdisk-synclog PUBLIC ydb-core-util ) target_sources(blobstorage-vdisk-synclog PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_private_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_public_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdsk.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogformat.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_syncloghttp.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper_committer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmem.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgimpl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgreader.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgwriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogneighbors.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogreader.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogrecovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogwriteparts.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/codecs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_private_events.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata.cpp diff --git a/ydb/core/blobstorage/vdisk/synclog/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/synclog/CMakeLists.windows-x86_64.txt index 0e7a1ace7f35..381f0d77c9ce 100644 --- a/ydb/core/blobstorage/vdisk/synclog/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/synclog/CMakeLists.windows-x86_64.txt @@ -28,6 +28,26 @@ target_link_libraries(blobstorage-vdisk-synclog PUBLIC ydb-core-util ) target_sources(blobstorage-vdisk-synclog PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_private_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_public_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdsk.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogformat.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_syncloghttp.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper_committer.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogkeeper_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmem.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgimpl.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgreader.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogmsgwriter.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogneighbors.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogreader.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogrecovery.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogwriteparts.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/codecs.h ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclog_private_events.cpp ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata.cpp diff --git a/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.darwin-arm64.txt b/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.darwin-arm64.txt index 0294becc64e2..9438729f6ffd 100644 --- a/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-blobstorage-vdisk-synclog-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-synclog-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata_ut.cpp @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.darwin-x86_64.txt index 0608ca46b5aa..ed54370f49a1 100644 --- a/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-blobstorage-vdisk-synclog-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-blobstorage-vdisk-synclog-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata_ut.cpp @@ -64,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.linux-aarch64.txt b/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.linux-aarch64.txt index b388342bad56..0d8bf369f9b8 100644 --- a/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-blobstorage-vdisk-synclog-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-synclog-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata_ut.cpp @@ -67,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.linux-x86_64.txt b/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.linux-x86_64.txt index 33d9f1e445fa..45f55b9f8e31 100644 --- a/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-blobstorage-vdisk-synclog-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-blobstorage-vdisk-synclog-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/blobstorage/vdisk/synclog/blobstorage_synclogdata_ut.cpp @@ -68,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.windows-x86_64.txt b/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.windows-x86_64.txt index b65db6b2924b..aadd0798c115 100644 --- a/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/blobstorage/vdisk/synclog/ut/CMakeLists.windows-x86_64.txt @@ -57,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/change_exchange/CMakeLists.darwin-arm64.txt b/ydb/core/change_exchange/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..006168ed4df6 --- /dev/null +++ b/ydb/core/change_exchange/CMakeLists.darwin-arm64.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. + + +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) + +add_library(ydb-core-change_exchange) +target_compile_options(ydb-core-change_exchange PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-core-change_exchange PUBLIC + contrib-libs-cxxsupp + yutil + tools-enum_parser-enum_serialization_runtime + ydb-core-base + ydb-core-scheme + library-actors-core + ydb-library-yverify_stream + monlib-service-pages +) +target_sources(ydb-core-change_exchange PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_exchange.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_record.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_sender_common_ops.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_sender_monitoring.cpp +) +generate_enum_serilization(ydb-core-change_exchange + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_record.h + INCLUDE_HEADERS + ydb/core/change_exchange/change_record.h +) diff --git a/ydb/core/change_exchange/CMakeLists.darwin-x86_64.txt b/ydb/core/change_exchange/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..006168ed4df6 --- /dev/null +++ b/ydb/core/change_exchange/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. + + +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) + +add_library(ydb-core-change_exchange) +target_compile_options(ydb-core-change_exchange PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-core-change_exchange PUBLIC + contrib-libs-cxxsupp + yutil + tools-enum_parser-enum_serialization_runtime + ydb-core-base + ydb-core-scheme + library-actors-core + ydb-library-yverify_stream + monlib-service-pages +) +target_sources(ydb-core-change_exchange PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_exchange.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_record.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_sender_common_ops.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_sender_monitoring.cpp +) +generate_enum_serilization(ydb-core-change_exchange + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_record.h + INCLUDE_HEADERS + ydb/core/change_exchange/change_record.h +) diff --git a/ydb/core/change_exchange/CMakeLists.linux-aarch64.txt b/ydb/core/change_exchange/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..c1c22233b26f --- /dev/null +++ b/ydb/core/change_exchange/CMakeLists.linux-aarch64.txt @@ -0,0 +1,41 @@ + +# 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(ydb-core-change_exchange) +target_compile_options(ydb-core-change_exchange PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-core-change_exchange PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + tools-enum_parser-enum_serialization_runtime + ydb-core-base + ydb-core-scheme + library-actors-core + ydb-library-yverify_stream + monlib-service-pages +) +target_sources(ydb-core-change_exchange PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_exchange.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_record.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_sender_common_ops.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_sender_monitoring.cpp +) +generate_enum_serilization(ydb-core-change_exchange + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_record.h + INCLUDE_HEADERS + ydb/core/change_exchange/change_record.h +) diff --git a/ydb/core/change_exchange/CMakeLists.linux-x86_64.txt b/ydb/core/change_exchange/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..c1c22233b26f --- /dev/null +++ b/ydb/core/change_exchange/CMakeLists.linux-x86_64.txt @@ -0,0 +1,41 @@ + +# 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(ydb-core-change_exchange) +target_compile_options(ydb-core-change_exchange PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-core-change_exchange PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + tools-enum_parser-enum_serialization_runtime + ydb-core-base + ydb-core-scheme + library-actors-core + ydb-library-yverify_stream + monlib-service-pages +) +target_sources(ydb-core-change_exchange PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_exchange.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_record.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_sender_common_ops.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_sender_monitoring.cpp +) +generate_enum_serilization(ydb-core-change_exchange + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_record.h + INCLUDE_HEADERS + ydb/core/change_exchange/change_record.h +) diff --git a/ydb/core/change_exchange/CMakeLists.txt b/ydb/core/change_exchange/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/change_exchange/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/change_exchange/CMakeLists.windows-x86_64.txt b/ydb/core/change_exchange/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..006168ed4df6 --- /dev/null +++ b/ydb/core/change_exchange/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. + + +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) + +add_library(ydb-core-change_exchange) +target_compile_options(ydb-core-change_exchange PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-core-change_exchange PUBLIC + contrib-libs-cxxsupp + yutil + tools-enum_parser-enum_serialization_runtime + ydb-core-base + ydb-core-scheme + library-actors-core + ydb-library-yverify_stream + monlib-service-pages +) +target_sources(ydb-core-change_exchange PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_exchange.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_record.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_sender_common_ops.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_sender_monitoring.cpp +) +generate_enum_serilization(ydb-core-change_exchange + ${CMAKE_SOURCE_DIR}/ydb/core/change_exchange/change_record.h + INCLUDE_HEADERS + ydb/core/change_exchange/change_record.h +) diff --git a/ydb/core/change_exchange/change_sender_common_ops.cpp b/ydb/core/change_exchange/change_sender_common_ops.cpp index b2b3e90718fa..3d189ee6b4d1 100644 --- a/ydb/core/change_exchange/change_sender_common_ops.cpp +++ b/ydb/core/change_exchange/change_sender_common_ops.cpp @@ -18,7 +18,7 @@ void TBaseChangeSender::LazyCreateSender(THashMap& senders, ui64 for (const auto& [order, broadcast] : Broadcasting) { if (AddBroadcastPartition(order, partitionId)) { // re-enqueue record to send it in the correct order - Enqueued.insert(broadcast.Record); + Enqueued.insert(ReEnqueue(broadcast.Record)); } } } @@ -101,11 +101,16 @@ bool TBaseChangeSender::RequestRecords() { } auto it = Enqueued.begin(); - TVector records; + TVector records; + bool exceeded = false; while (it != Enqueued.end()) { if (MemUsage && (MemUsage + it->BodySize) > MemLimit) { - break; + if (!it->ReEnqueued || exceeded) { + break; + } + + exceeded = true; } MemUsage += it->BodySize; @@ -162,6 +167,14 @@ void TBaseChangeSender::SendRecords() { bool needToResolve = false; while (it != PendingSent.end()) { + if (Enqueued && Enqueued.begin()->Order <= it->first) { + break; + } + + if (PendingBody && PendingBody.begin()->Order <= it->first) { + break; + } + if (!it->second->IsBroadcast()) { const ui64 partitionId = Resolver->GetPartitionId(it->second); if (!Senders.contains(partitionId)) { @@ -184,7 +197,7 @@ void TBaseChangeSender::SendRecords() { EraseNodesIf(broadcast.PendingPartitions, [&](ui64 partitionId) { if (Senders.contains(partitionId)) { auto& sender = Senders.at(partitionId); - sender.Prepared.push_back(std::move(it->second)); + sender.Prepared.push_back(it->second); if (!sender.ActorId) { Y_ABORT_UNLESS(!sender.Ready); registrations.insert(partitionId); @@ -297,12 +310,12 @@ void TBaseChangeSender::SendPreparedRecords(ui64 partitionId) { void TBaseChangeSender::ReEnqueueRecords(const TSender& sender) { for (const auto& record : sender.Pending) { - Enqueued.insert(record); + Enqueued.insert(ReEnqueue(record)); } for (const auto& record : sender.Prepared) { if (!record->IsBroadcast()) { - Enqueued.emplace(record->GetOrder(), record->GetBody().size()); + Enqueued.insert(ReEnqueue(record->GetOrder(), record->GetBody().size())); MemUsage -= record->GetBody().size(); } } @@ -338,7 +351,7 @@ bool TBaseChangeSender::AddBroadcastPartition(ui64 order, ui64 partitionId) { Y_ABORT_UNLESS(it != Broadcasting.end()); auto& broadcast = it->second; - if (broadcast.Partitions.contains(partitionId)) { + if (broadcast.CompletedPartitions.contains(partitionId)) { return false; } diff --git a/ydb/core/change_exchange/change_sender_common_ops.h b/ydb/core/change_exchange/change_sender_common_ops.h index 2e25c8aa72f4..3a3faf5412a4 100644 --- a/ydb/core/change_exchange/change_sender_common_ops.h +++ b/ydb/core/change_exchange/change_sender_common_ops.h @@ -76,19 +76,35 @@ class IChangeSenderResolver { }; class TBaseChangeSender: public IChangeSender { - using TEnqueuedRecord = TEvChangeExchange::TEvRequestRecords::TRecordInfo; - using TRequestedRecord = TEvChangeExchange::TEvRequestRecords::TRecordInfo; + using TIncompleteRecord = TEvChangeExchange::TEvRequestRecords::TRecordInfo; + + struct TEnqueuedRecord: TIncompleteRecord { + bool ReEnqueued = false; + + using TIncompleteRecord::TIncompleteRecord; + explicit TEnqueuedRecord(const TIncompleteRecord& record) + : TIncompleteRecord(record) + { + } + }; + + template + static TEnqueuedRecord ReEnqueue(Args&&... args) { + TEnqueuedRecord record(std::forward(args)...); + record.ReEnqueued = true; + return record; + } struct TSender { TActorId ActorId; bool Ready = false; - TVector Pending; + TVector Pending; TVector Prepared; TVector Broadcasting; }; struct TBroadcast { - const TEnqueuedRecord Record; + const TIncompleteRecord Record; THashSet Partitions; THashSet PendingPartitions; THashSet CompletedPartitions; @@ -156,7 +172,7 @@ class TBaseChangeSender: public IChangeSender { THashMap Senders; // ui64 is partition id TSet Enqueued; - TSet PendingBody; + TSet PendingBody; TMap PendingSent; // ui64 is order THashMap Broadcasting; // ui64 is order diff --git a/ydb/core/client/metadata/CMakeLists.darwin-arm64.txt b/ydb/core/client/metadata/CMakeLists.darwin-arm64.txt index cfe7195d8579..d7e337d69317 100644 --- a/ydb/core/client/metadata/CMakeLists.darwin-arm64.txt +++ b/ydb/core/client/metadata/CMakeLists.darwin-arm64.txt @@ -17,7 +17,7 @@ target_link_libraries(core-client-metadata PUBLIC yutil ydb-core-protos ydb-core-scheme_types - minikql-invoke_builtins-llvm + library-yql-minikql ) target_sources(core-client-metadata PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/metadata/types_metadata.cpp diff --git a/ydb/core/client/metadata/CMakeLists.darwin-x86_64.txt b/ydb/core/client/metadata/CMakeLists.darwin-x86_64.txt index cfe7195d8579..d7e337d69317 100644 --- a/ydb/core/client/metadata/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/client/metadata/CMakeLists.darwin-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(core-client-metadata PUBLIC yutil ydb-core-protos ydb-core-scheme_types - minikql-invoke_builtins-llvm + library-yql-minikql ) target_sources(core-client-metadata PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/metadata/types_metadata.cpp diff --git a/ydb/core/client/metadata/CMakeLists.linux-aarch64.txt b/ydb/core/client/metadata/CMakeLists.linux-aarch64.txt index 5969a9ece27c..3806a43b170b 100644 --- a/ydb/core/client/metadata/CMakeLists.linux-aarch64.txt +++ b/ydb/core/client/metadata/CMakeLists.linux-aarch64.txt @@ -18,7 +18,7 @@ target_link_libraries(core-client-metadata PUBLIC yutil ydb-core-protos ydb-core-scheme_types - minikql-invoke_builtins-llvm + library-yql-minikql ) target_sources(core-client-metadata PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/metadata/types_metadata.cpp diff --git a/ydb/core/client/metadata/CMakeLists.linux-x86_64.txt b/ydb/core/client/metadata/CMakeLists.linux-x86_64.txt index 5969a9ece27c..3806a43b170b 100644 --- a/ydb/core/client/metadata/CMakeLists.linux-x86_64.txt +++ b/ydb/core/client/metadata/CMakeLists.linux-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(core-client-metadata PUBLIC yutil ydb-core-protos ydb-core-scheme_types - minikql-invoke_builtins-llvm + library-yql-minikql ) target_sources(core-client-metadata PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/metadata/types_metadata.cpp diff --git a/ydb/core/client/metadata/CMakeLists.windows-x86_64.txt b/ydb/core/client/metadata/CMakeLists.windows-x86_64.txt index cfe7195d8579..d7e337d69317 100644 --- a/ydb/core/client/metadata/CMakeLists.windows-x86_64.txt +++ b/ydb/core/client/metadata/CMakeLists.windows-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(core-client-metadata PUBLIC yutil ydb-core-protos ydb-core-scheme_types - minikql-invoke_builtins-llvm + library-yql-minikql ) target_sources(core-client-metadata PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/metadata/types_metadata.cpp diff --git a/ydb/core/client/metadata/ut/CMakeLists.darwin-arm64.txt b/ydb/core/client/metadata/ut/CMakeLists.darwin-arm64.txt index 4630637c5ae5..7b485a8c32af 100644 --- a/ydb/core/client/metadata/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/client/metadata/ut/CMakeLists.darwin-arm64.txt @@ -19,6 +19,7 @@ target_link_libraries(ydb-core-client-metadata-ut PUBLIC yutil cpp-testing-unittest_main core-client-metadata + minikql-invoke_builtins-llvm14 udf-service-stub yql-sql-pg_dummy ) @@ -26,8 +27,6 @@ target_link_options(ydb-core-client-metadata-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-client-metadata-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/metadata/ut/functions_metadata_ut.cpp @@ -57,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/metadata/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/client/metadata/ut/CMakeLists.darwin-x86_64.txt index 711d57cbeac7..dbba7f1d7ea7 100644 --- a/ydb/core/client/metadata/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/client/metadata/ut/CMakeLists.darwin-x86_64.txt @@ -20,6 +20,7 @@ target_link_libraries(ydb-core-client-metadata-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main core-client-metadata + minikql-invoke_builtins-llvm14 udf-service-stub yql-sql-pg_dummy ) @@ -27,8 +28,6 @@ target_link_options(ydb-core-client-metadata-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-client-metadata-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/metadata/ut/functions_metadata_ut.cpp @@ -58,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/metadata/ut/CMakeLists.linux-aarch64.txt b/ydb/core/client/metadata/ut/CMakeLists.linux-aarch64.txt index 4f26a42ee3f4..6659c374a289 100644 --- a/ydb/core/client/metadata/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/client/metadata/ut/CMakeLists.linux-aarch64.txt @@ -20,6 +20,7 @@ target_link_libraries(ydb-core-client-metadata-ut PUBLIC yutil cpp-testing-unittest_main core-client-metadata + minikql-invoke_builtins-llvm14 udf-service-stub yql-sql-pg_dummy ) @@ -29,9 +30,6 @@ target_link_options(ydb-core-client-metadata-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-client-metadata-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/metadata/ut/functions_metadata_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/metadata/ut/CMakeLists.linux-x86_64.txt b/ydb/core/client/metadata/ut/CMakeLists.linux-x86_64.txt index 8d96ad302619..00f0255b187d 100644 --- a/ydb/core/client/metadata/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/client/metadata/ut/CMakeLists.linux-x86_64.txt @@ -21,6 +21,7 @@ target_link_libraries(ydb-core-client-metadata-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main core-client-metadata + minikql-invoke_builtins-llvm14 udf-service-stub yql-sql-pg_dummy ) @@ -30,9 +31,6 @@ target_link_options(ydb-core-client-metadata-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-client-metadata-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/metadata/ut/functions_metadata_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/metadata/ut/CMakeLists.windows-x86_64.txt b/ydb/core/client/metadata/ut/CMakeLists.windows-x86_64.txt index c57de3851fad..449f32b9253f 100644 --- a/ydb/core/client/metadata/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/client/metadata/ut/CMakeLists.windows-x86_64.txt @@ -20,6 +20,7 @@ target_link_libraries(ydb-core-client-metadata-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main core-client-metadata + minikql-invoke_builtins-llvm14 udf-service-stub yql-sql-pg_dummy ) @@ -51,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/minikql_compile/CMakeLists.darwin-arm64.txt b/ydb/core/client/minikql_compile/CMakeLists.darwin-arm64.txt index 97acc3e7d874..64fa4f9b6ab8 100644 --- a/ydb/core/client/minikql_compile/CMakeLists.darwin-arm64.txt +++ b/ydb/core/client/minikql_compile/CMakeLists.darwin-arm64.txt @@ -27,6 +27,10 @@ target_link_libraries(core-client-minikql_compile PUBLIC providers-common-mkql ) target_sources(core-client-minikql_compile PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_context.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_result.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/db_key_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/yql_expr_minikql.h ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_context.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_result.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/db_key_resolver.cpp diff --git a/ydb/core/client/minikql_compile/CMakeLists.darwin-x86_64.txt b/ydb/core/client/minikql_compile/CMakeLists.darwin-x86_64.txt index 97acc3e7d874..64fa4f9b6ab8 100644 --- a/ydb/core/client/minikql_compile/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/client/minikql_compile/CMakeLists.darwin-x86_64.txt @@ -27,6 +27,10 @@ target_link_libraries(core-client-minikql_compile PUBLIC providers-common-mkql ) target_sources(core-client-minikql_compile PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_context.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_result.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/db_key_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/yql_expr_minikql.h ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_context.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_result.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/db_key_resolver.cpp diff --git a/ydb/core/client/minikql_compile/CMakeLists.linux-aarch64.txt b/ydb/core/client/minikql_compile/CMakeLists.linux-aarch64.txt index 79ab31524614..f9c986e0e2f6 100644 --- a/ydb/core/client/minikql_compile/CMakeLists.linux-aarch64.txt +++ b/ydb/core/client/minikql_compile/CMakeLists.linux-aarch64.txt @@ -28,6 +28,10 @@ target_link_libraries(core-client-minikql_compile PUBLIC providers-common-mkql ) target_sources(core-client-minikql_compile PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_context.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_result.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/db_key_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/yql_expr_minikql.h ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_context.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_result.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/db_key_resolver.cpp diff --git a/ydb/core/client/minikql_compile/CMakeLists.linux-x86_64.txt b/ydb/core/client/minikql_compile/CMakeLists.linux-x86_64.txt index 79ab31524614..f9c986e0e2f6 100644 --- a/ydb/core/client/minikql_compile/CMakeLists.linux-x86_64.txt +++ b/ydb/core/client/minikql_compile/CMakeLists.linux-x86_64.txt @@ -28,6 +28,10 @@ target_link_libraries(core-client-minikql_compile PUBLIC providers-common-mkql ) target_sources(core-client-minikql_compile PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_context.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_result.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/db_key_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/yql_expr_minikql.h ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_context.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_result.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/db_key_resolver.cpp diff --git a/ydb/core/client/minikql_compile/CMakeLists.windows-x86_64.txt b/ydb/core/client/minikql_compile/CMakeLists.windows-x86_64.txt index 97acc3e7d874..64fa4f9b6ab8 100644 --- a/ydb/core/client/minikql_compile/CMakeLists.windows-x86_64.txt +++ b/ydb/core/client/minikql_compile/CMakeLists.windows-x86_64.txt @@ -27,6 +27,10 @@ target_link_libraries(core-client-minikql_compile PUBLIC providers-common-mkql ) target_sources(core-client-minikql_compile PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_context.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_result.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/db_key_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/yql_expr_minikql.h ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_context.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/compile_result.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/db_key_resolver.cpp diff --git a/ydb/core/client/minikql_compile/ut/CMakeLists.darwin-arm64.txt b/ydb/core/client/minikql_compile/ut/CMakeLists.darwin-arm64.txt index ebfc048068a4..d704ff41f11f 100644 --- a/ydb/core/client/minikql_compile/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/client/minikql_compile/ut/CMakeLists.darwin-arm64.txt @@ -32,8 +32,6 @@ target_link_options(ydb-core-client-minikql_compile-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-client-minikql_compile-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/yql_expr_minikql_compile_ut.cpp @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/minikql_compile/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/client/minikql_compile/ut/CMakeLists.darwin-x86_64.txt index a0c0fda01361..00b84854c9cd 100644 --- a/ydb/core/client/minikql_compile/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/client/minikql_compile/ut/CMakeLists.darwin-x86_64.txt @@ -33,8 +33,6 @@ target_link_options(ydb-core-client-minikql_compile-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-client-minikql_compile-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/yql_expr_minikql_compile_ut.cpp @@ -64,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/minikql_compile/ut/CMakeLists.linux-aarch64.txt b/ydb/core/client/minikql_compile/ut/CMakeLists.linux-aarch64.txt index 4e1f9ed74747..39c8a032b76b 100644 --- a/ydb/core/client/minikql_compile/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/client/minikql_compile/ut/CMakeLists.linux-aarch64.txt @@ -35,9 +35,6 @@ target_link_options(ydb-core-client-minikql_compile-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-client-minikql_compile-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/yql_expr_minikql_compile_ut.cpp @@ -67,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/minikql_compile/ut/CMakeLists.linux-x86_64.txt b/ydb/core/client/minikql_compile/ut/CMakeLists.linux-x86_64.txt index a138e888ea04..3ee05f1d9307 100644 --- a/ydb/core/client/minikql_compile/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/client/minikql_compile/ut/CMakeLists.linux-x86_64.txt @@ -36,9 +36,6 @@ target_link_options(ydb-core-client-minikql_compile-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-client-minikql_compile-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_compile/yql_expr_minikql_compile_ut.cpp @@ -68,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/minikql_compile/ut/CMakeLists.windows-x86_64.txt b/ydb/core/client/minikql_compile/ut/CMakeLists.windows-x86_64.txt index f910632f5cee..37f93a7a754e 100644 --- a/ydb/core/client/minikql_compile/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/client/minikql_compile/ut/CMakeLists.windows-x86_64.txt @@ -57,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/minikql_result_lib/CMakeLists.darwin-arm64.txt b/ydb/core/client/minikql_result_lib/CMakeLists.darwin-arm64.txt index d66fdd861bb9..e31cb1c19e79 100644 --- a/ydb/core/client/minikql_result_lib/CMakeLists.darwin-arm64.txt +++ b/ydb/core/client/minikql_result_lib/CMakeLists.darwin-arm64.txt @@ -19,6 +19,8 @@ target_link_libraries(core-client-minikql_result_lib PUBLIC lib-deprecated-kicli ) target_sources(core-client-minikql_result_lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/objects.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter.h ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/objects.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter.cpp ) diff --git a/ydb/core/client/minikql_result_lib/CMakeLists.darwin-x86_64.txt b/ydb/core/client/minikql_result_lib/CMakeLists.darwin-x86_64.txt index d66fdd861bb9..e31cb1c19e79 100644 --- a/ydb/core/client/minikql_result_lib/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/client/minikql_result_lib/CMakeLists.darwin-x86_64.txt @@ -19,6 +19,8 @@ target_link_libraries(core-client-minikql_result_lib PUBLIC lib-deprecated-kicli ) target_sources(core-client-minikql_result_lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/objects.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter.h ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/objects.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter.cpp ) diff --git a/ydb/core/client/minikql_result_lib/CMakeLists.linux-aarch64.txt b/ydb/core/client/minikql_result_lib/CMakeLists.linux-aarch64.txt index 58ffd370d261..746f49665791 100644 --- a/ydb/core/client/minikql_result_lib/CMakeLists.linux-aarch64.txt +++ b/ydb/core/client/minikql_result_lib/CMakeLists.linux-aarch64.txt @@ -20,6 +20,8 @@ target_link_libraries(core-client-minikql_result_lib PUBLIC lib-deprecated-kicli ) target_sources(core-client-minikql_result_lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/objects.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter.h ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/objects.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter.cpp ) diff --git a/ydb/core/client/minikql_result_lib/CMakeLists.linux-x86_64.txt b/ydb/core/client/minikql_result_lib/CMakeLists.linux-x86_64.txt index 58ffd370d261..746f49665791 100644 --- a/ydb/core/client/minikql_result_lib/CMakeLists.linux-x86_64.txt +++ b/ydb/core/client/minikql_result_lib/CMakeLists.linux-x86_64.txt @@ -20,6 +20,8 @@ target_link_libraries(core-client-minikql_result_lib PUBLIC lib-deprecated-kicli ) target_sources(core-client-minikql_result_lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/objects.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter.h ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/objects.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter.cpp ) diff --git a/ydb/core/client/minikql_result_lib/CMakeLists.windows-x86_64.txt b/ydb/core/client/minikql_result_lib/CMakeLists.windows-x86_64.txt index d66fdd861bb9..e31cb1c19e79 100644 --- a/ydb/core/client/minikql_result_lib/CMakeLists.windows-x86_64.txt +++ b/ydb/core/client/minikql_result_lib/CMakeLists.windows-x86_64.txt @@ -19,6 +19,8 @@ target_link_libraries(core-client-minikql_result_lib PUBLIC lib-deprecated-kicli ) target_sources(core-client-minikql_result_lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/objects.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter.h ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/objects.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter.cpp ) diff --git a/ydb/core/client/minikql_result_lib/ut/CMakeLists.darwin-arm64.txt b/ydb/core/client/minikql_result_lib/ut/CMakeLists.darwin-arm64.txt index b0dd4768e755..399e6246ff86 100644 --- a/ydb/core/client/minikql_result_lib/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/client/minikql_result_lib/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-client-minikql_result_lib-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-client-minikql_result_lib-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/minikql_result_lib/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/client/minikql_result_lib/ut/CMakeLists.darwin-x86_64.txt index 8920736a1016..28cc1a9c6608 100644 --- a/ydb/core/client/minikql_result_lib/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/client/minikql_result_lib/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-client-minikql_result_lib-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-client-minikql_result_lib-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/minikql_result_lib/ut/CMakeLists.linux-aarch64.txt b/ydb/core/client/minikql_result_lib/ut/CMakeLists.linux-aarch64.txt index 692f1f1816d9..8bc3b939a8c1 100644 --- a/ydb/core/client/minikql_result_lib/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/client/minikql_result_lib/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-client-minikql_result_lib-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-client-minikql_result_lib-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/minikql_result_lib/ut/CMakeLists.linux-x86_64.txt b/ydb/core/client/minikql_result_lib/ut/CMakeLists.linux-x86_64.txt index 37f6c488acb8..a0741ae40fe0 100644 --- a/ydb/core/client/minikql_result_lib/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/client/minikql_result_lib/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-client-minikql_result_lib-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-client-minikql_result_lib-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/minikql_result_lib/converter_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/minikql_result_lib/ut/CMakeLists.windows-x86_64.txt b/ydb/core/client/minikql_result_lib/ut/CMakeLists.windows-x86_64.txt index dfa6015200c2..9d7257bbbbce 100644 --- a/ydb/core/client/minikql_result_lib/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/client/minikql_result_lib/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/scheme_cache_lib/CMakeLists.darwin-arm64.txt b/ydb/core/client/scheme_cache_lib/CMakeLists.darwin-arm64.txt index eb0967cc3f3b..68d282d7bfea 100644 --- a/ydb/core/client/scheme_cache_lib/CMakeLists.darwin-arm64.txt +++ b/ydb/core/client/scheme_cache_lib/CMakeLists.darwin-arm64.txt @@ -26,5 +26,6 @@ target_link_libraries(core-client-scheme_cache_lib PUBLIC ydb-core-tx ) target_sources(core-client-scheme_cache_lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/scheme_cache_lib/yql_db_scheme_resolver.h ${CMAKE_SOURCE_DIR}/ydb/core/client/scheme_cache_lib/yql_db_scheme_resolver.cpp ) diff --git a/ydb/core/client/scheme_cache_lib/CMakeLists.darwin-x86_64.txt b/ydb/core/client/scheme_cache_lib/CMakeLists.darwin-x86_64.txt index eb0967cc3f3b..68d282d7bfea 100644 --- a/ydb/core/client/scheme_cache_lib/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/client/scheme_cache_lib/CMakeLists.darwin-x86_64.txt @@ -26,5 +26,6 @@ target_link_libraries(core-client-scheme_cache_lib PUBLIC ydb-core-tx ) target_sources(core-client-scheme_cache_lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/scheme_cache_lib/yql_db_scheme_resolver.h ${CMAKE_SOURCE_DIR}/ydb/core/client/scheme_cache_lib/yql_db_scheme_resolver.cpp ) diff --git a/ydb/core/client/scheme_cache_lib/CMakeLists.linux-aarch64.txt b/ydb/core/client/scheme_cache_lib/CMakeLists.linux-aarch64.txt index 3fa2bcdf019d..98147eba1d93 100644 --- a/ydb/core/client/scheme_cache_lib/CMakeLists.linux-aarch64.txt +++ b/ydb/core/client/scheme_cache_lib/CMakeLists.linux-aarch64.txt @@ -27,5 +27,6 @@ target_link_libraries(core-client-scheme_cache_lib PUBLIC ydb-core-tx ) target_sources(core-client-scheme_cache_lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/scheme_cache_lib/yql_db_scheme_resolver.h ${CMAKE_SOURCE_DIR}/ydb/core/client/scheme_cache_lib/yql_db_scheme_resolver.cpp ) diff --git a/ydb/core/client/scheme_cache_lib/CMakeLists.linux-x86_64.txt b/ydb/core/client/scheme_cache_lib/CMakeLists.linux-x86_64.txt index 3fa2bcdf019d..98147eba1d93 100644 --- a/ydb/core/client/scheme_cache_lib/CMakeLists.linux-x86_64.txt +++ b/ydb/core/client/scheme_cache_lib/CMakeLists.linux-x86_64.txt @@ -27,5 +27,6 @@ target_link_libraries(core-client-scheme_cache_lib PUBLIC ydb-core-tx ) target_sources(core-client-scheme_cache_lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/scheme_cache_lib/yql_db_scheme_resolver.h ${CMAKE_SOURCE_DIR}/ydb/core/client/scheme_cache_lib/yql_db_scheme_resolver.cpp ) diff --git a/ydb/core/client/scheme_cache_lib/CMakeLists.windows-x86_64.txt b/ydb/core/client/scheme_cache_lib/CMakeLists.windows-x86_64.txt index eb0967cc3f3b..68d282d7bfea 100644 --- a/ydb/core/client/scheme_cache_lib/CMakeLists.windows-x86_64.txt +++ b/ydb/core/client/scheme_cache_lib/CMakeLists.windows-x86_64.txt @@ -26,5 +26,6 @@ target_link_libraries(core-client-scheme_cache_lib PUBLIC ydb-core-tx ) target_sources(core-client-scheme_cache_lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/scheme_cache_lib/yql_db_scheme_resolver.h ${CMAKE_SOURCE_DIR}/ydb/core/client/scheme_cache_lib/yql_db_scheme_resolver.cpp ) diff --git a/ydb/core/client/server/CMakeLists.darwin-arm64.txt b/ydb/core/client/server/CMakeLists.darwin-arm64.txt index 723e569c9b00..2a2beb561348 100644 --- a/ydb/core/client/server/CMakeLists.darwin-arm64.txt +++ b/ydb/core/client/server/CMakeLists.darwin-arm64.txt @@ -54,6 +54,19 @@ target_link_libraries(core-client-server PUBLIC cpp-deprecated-atomic ) target_sources(core-client-server PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/document_conversion.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/http_ping.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_http_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_persqueue.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metacache.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metarequest.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_request.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_servicereq.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_tabletreq.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/grpc_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/grpc_proxy_status.h ${CMAKE_SOURCE_DIR}/ydb/core/client/server/http_ping.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_blobstorage_config.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_bsadm.cpp diff --git a/ydb/core/client/server/CMakeLists.darwin-x86_64.txt b/ydb/core/client/server/CMakeLists.darwin-x86_64.txt index 723e569c9b00..2a2beb561348 100644 --- a/ydb/core/client/server/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/client/server/CMakeLists.darwin-x86_64.txt @@ -54,6 +54,19 @@ target_link_libraries(core-client-server PUBLIC cpp-deprecated-atomic ) target_sources(core-client-server PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/document_conversion.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/http_ping.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_http_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_persqueue.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metacache.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metarequest.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_request.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_servicereq.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_tabletreq.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/grpc_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/grpc_proxy_status.h ${CMAKE_SOURCE_DIR}/ydb/core/client/server/http_ping.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_blobstorage_config.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_bsadm.cpp diff --git a/ydb/core/client/server/CMakeLists.linux-aarch64.txt b/ydb/core/client/server/CMakeLists.linux-aarch64.txt index 45108117f248..a91ff927b33e 100644 --- a/ydb/core/client/server/CMakeLists.linux-aarch64.txt +++ b/ydb/core/client/server/CMakeLists.linux-aarch64.txt @@ -55,6 +55,19 @@ target_link_libraries(core-client-server PUBLIC cpp-deprecated-atomic ) target_sources(core-client-server PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/document_conversion.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/http_ping.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_http_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_persqueue.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metacache.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metarequest.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_request.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_servicereq.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_tabletreq.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/grpc_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/grpc_proxy_status.h ${CMAKE_SOURCE_DIR}/ydb/core/client/server/http_ping.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_blobstorage_config.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_bsadm.cpp diff --git a/ydb/core/client/server/CMakeLists.linux-x86_64.txt b/ydb/core/client/server/CMakeLists.linux-x86_64.txt index 45108117f248..a91ff927b33e 100644 --- a/ydb/core/client/server/CMakeLists.linux-x86_64.txt +++ b/ydb/core/client/server/CMakeLists.linux-x86_64.txt @@ -55,6 +55,19 @@ target_link_libraries(core-client-server PUBLIC cpp-deprecated-atomic ) target_sources(core-client-server PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/document_conversion.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/http_ping.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_http_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_persqueue.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metacache.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metarequest.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_request.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_servicereq.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_tabletreq.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/grpc_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/grpc_proxy_status.h ${CMAKE_SOURCE_DIR}/ydb/core/client/server/http_ping.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_blobstorage_config.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_bsadm.cpp diff --git a/ydb/core/client/server/CMakeLists.windows-x86_64.txt b/ydb/core/client/server/CMakeLists.windows-x86_64.txt index 723e569c9b00..2a2beb561348 100644 --- a/ydb/core/client/server/CMakeLists.windows-x86_64.txt +++ b/ydb/core/client/server/CMakeLists.windows-x86_64.txt @@ -54,6 +54,19 @@ target_link_libraries(core-client-server PUBLIC cpp-deprecated-atomic ) target_sources(core-client-server PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/document_conversion.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/http_ping.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_http_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_persqueue.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metacache.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metarequest.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_request.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_servicereq.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_tabletreq.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/grpc_server.h + ${CMAKE_SOURCE_DIR}/ydb/core/client/server/grpc_proxy_status.h ${CMAKE_SOURCE_DIR}/ydb/core/client/server/http_ping.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_blobstorage_config.cpp ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_bsadm.cpp diff --git a/ydb/core/client/server/grpc_server.cpp b/ydb/core/client/server/grpc_server.cpp index 95079d6bc7dc..2e43a0f75f72 100644 --- a/ydb/core/client/server/grpc_server.cpp +++ b/ydb/core/client/server/grpc_server.cpp @@ -11,8 +11,6 @@ #include -#include - #include #include #include @@ -266,15 +264,8 @@ class TSimpleRequest } void Finish(const TOut& resp, ui32 status) { - auto makeResponseString = [&] { - TString x; - google::protobuf::TextFormat::Printer printer; - printer.SetSingleLineMode(true); - printer.PrintToString(resp, &x); - return x; - }; LOG_DEBUG(ActorSystem, NKikimrServices::GRPC_SERVER, "[%p] issuing response Name# %s data# %s peer# %s", this, - Name, makeResponseString().data(), GetPeerName().c_str()); + Name, NYdbGrpc::FormatMessage(resp).data(), GetPeerName().c_str()); ResponseSize = resp.ByteSize(); ResponseStatus = status; StateFunc = &TSimpleRequest::FinishDone; @@ -300,19 +291,8 @@ class TSimpleRequest bool RequestDone(bool ok) { OnAfterCall(); - auto makeRequestString = [&] { - TString resp; - if (ok) { - google::protobuf::TextFormat::Printer printer; - printer.SetSingleLineMode(true); - printer.PrintToString(Request, &resp); - } else { - resp = ""; - } - return resp; - }; LOG_DEBUG(ActorSystem, NKikimrServices::GRPC_SERVER, "[%p] received request Name# %s ok# %s data# %s peer# %s current inflight# %li", this, - Name, ok ? "true" : "false", makeRequestString().data(), GetPeerName().c_str(), Server->GetCurrentInFlight()); + Name, ok ? "true" : "false", NYdbGrpc::FormatMessage(Request, ok).data(), GetPeerName().c_str(), Server->GetCurrentInFlight()); if (Context.c_call() == nullptr) { Y_ABORT_UNLESS(!ok); @@ -498,7 +478,7 @@ void TGRpcService::SetupIncomingRequests() { // dynamic node registration ADD_REQUEST(RegisterNode, TNodeRegistrationRequest, TNodeRegistrationResponse, { NMsgBusProxy::TBusMessageContext msg(ctx->BindBusContext(NMsgBusProxy::MTYPE_CLIENT_NODE_REGISTRATION_REQUEST)); - RegisterRequestActor(CreateMessageBusRegisterNode(msg, DynamicNodeAuthorizationParams)); + RegisterRequestActor(CreateMessageBusRegisterNode(msg)); }) // CMS request diff --git a/ydb/core/client/server/grpc_server.h b/ydb/core/client/server/grpc_server.h index f98fbcfa6399..0ecb4344c712 100644 --- a/ydb/core/client/server/grpc_server.h +++ b/ydb/core/client/server/grpc_server.h @@ -1,6 +1,4 @@ #pragma once -#include - #include #include @@ -60,10 +58,6 @@ class TGRpcService public: TGRpcService(); - void SetDynamicNodeAuthParams(const TDynamicNodeAuthorizationParams& dynamicNodeAuthorizationParams) { - DynamicNodeAuthorizationParams = dynamicNodeAuthorizationParams; - } - void InitService(grpc::ServerCompletionQueue* cq, NYdbGrpc::TLoggerPtr logger) override; void SetGlobalLimiterHandle(NYdbGrpc::TGlobalLimiter* limiter) override; @@ -98,8 +92,6 @@ class TGRpcService std::function InitCb_; // In flight request management. NYdbGrpc::TGlobalLimiter* Limiter_ = nullptr; - - TDynamicNodeAuthorizationParams DynamicNodeAuthorizationParams = {}; }; } diff --git a/ydb/core/client/server/msgbus_blobstorage_config.cpp b/ydb/core/client/server/msgbus_blobstorage_config.cpp index a0af40eac959..acd7dac452bc 100644 --- a/ydb/core/client/server/msgbus_blobstorage_config.cpp +++ b/ydb/core/client/server/msgbus_blobstorage_config.cpp @@ -40,6 +40,7 @@ class TMessageBusBlobStorageConfig TEvBlobStorage::TEvControllerConfigRequest *MakeReq(const TActorContext&) { auto ev = MakeHolder(); auto &record = ev->Record; + Request.SetUserSID(GetUserSID()); Request.Swap(record.MutableRequest()); return ev.Release(); } diff --git a/ydb/core/client/server/msgbus_server.h b/ydb/core/client/server/msgbus_server.h index cafedda8c332..d405348ffb0b 100644 --- a/ydb/core/client/server/msgbus_server.h +++ b/ydb/core/client/server/msgbus_server.h @@ -1,5 +1,4 @@ #pragma once -#include #include #include #include @@ -298,7 +297,7 @@ IActor* CreateMessageBusBlobStorageConfig(TBusMessageContext &msg); IActor* CreateMessageBusDrainNode(TBusMessageContext &msg); IActor* CreateMessageBusFillNode(TBusMessageContext &msg); IActor* CreateMessageBusResolveNode(TBusMessageContext &msg); -IActor* CreateMessageBusRegisterNode(TBusMessageContext &msg, const TDynamicNodeAuthorizationParams& dynamicNodeAuthorizationParams); +IActor* CreateMessageBusRegisterNode(TBusMessageContext &msg); IActor* CreateMessageBusCmsRequest(TBusMessageContext &msg); IActor* CreateMessageBusSqsRequest(TBusMessageContext &msg); IActor* CreateMessageBusWhoAmI(TBusMessageContext &msg); diff --git a/ydb/core/client/server/msgbus_server_console.cpp b/ydb/core/client/server/msgbus_server_console.cpp index 411181f2cf76..7792e53fd5a5 100644 --- a/ydb/core/client/server/msgbus_server_console.cpp +++ b/ydb/core/client/server/msgbus_server_console.cpp @@ -30,8 +30,20 @@ class TConsoleRequestActor : public TMessageBusSecureRequestRecord.CopyFrom(Request.GetGetNodeConfigItemsRequest()); NTabletPipe::SendData(ctx, ConsolePipe, request.Release()); } else if (Request.HasGetNodeConfigRequest()) { + if (!CheckAccessGetNodeConfig()) { + ReplyWithErrorAndDie(Ydb::StatusIds::UNAUTHORIZED, "Cannot get node config. Access denied. Node is not authorized", ctx); + return; + } auto request = MakeHolder(); request->Record.CopyFrom(Request.GetGetNodeConfigRequest()); NTabletPipe::SendData(ctx, ConsolePipe, request.Release()); @@ -348,6 +364,21 @@ class TConsoleRequestActor : public TMessageBusSecureRequestRegisterDynamicNodeAllowedSIDs.empty()) { + NACLib::TUserToken token(serializedToken); + for (const auto& sid : AppData()->RegisterDynamicNodeAllowedSIDs) { + if (token.IsExist(sid)) { + return true; + } + } + return false; + } + return true; + } + private: NKikimrClient::TConsoleRequest Request; NKikimrClient::TConsoleResponse Response; diff --git a/ydb/core/client/server/msgbus_server_node_registration.cpp b/ydb/core/client/server/msgbus_server_node_registration.cpp index 3710b4a438ff..1f41a5921cda 100644 --- a/ydb/core/client/server/msgbus_server_node_registration.cpp +++ b/ydb/core/client/server/msgbus_server_node_registration.cpp @@ -1,4 +1,5 @@ -#include "msgbus_servicereq.h" +#include "msgbus_server_request.h" +#include "msgbus_securereq.h" #include "grpc_server.h" #include @@ -19,36 +20,35 @@ using namespace NNodeBroker; namespace { -class TNodeRegistrationActor : public TActorBootstrapped, public TMessageBusSessionIdentHolder +class TNodeRegistrationActor : public TMessageBusSecureRequest> { using TActorBase = TActorBootstrapped; - - struct TNodeAuthorizationResult { - bool IsAuthorized = false; - bool IsCertificateUsed = false; - - operator bool() const { - return IsAuthorized; - } - }; + using TBase = TMessageBusSecureRequest>; public: static constexpr NKikimrServices::TActivity::EType ActorActivityType() { return NKikimrServices::TActivity::MSGBUS_COMMON; } - TNodeRegistrationActor(NKikimrClient::TNodeRegistrationRequest &request, NMsgBusProxy::TBusMessageContext &msg, const NKikimr::TDynamicNodeAuthorizationParams& dynamicNodeAuthorizationParams) - : TMessageBusSessionIdentHolder(msg) + TNodeRegistrationActor(NKikimrClient::TNodeRegistrationRequest &request, NMsgBusProxy::TBusMessageContext &msg) + : TBase(msg) , Request(request) - , DynamicNodeAuthorizationParams(dynamicNodeAuthorizationParams) { + const auto& clientCertificates = msg.FindClientCert(); + if (!clientCertificates.empty()) { + TBase::SetSecurityToken(TString(clientCertificates.front())); + } else { + TBase::SetSecurityToken(BUILTIN_ACL_ROOT); // NBS compatibility + } } void Bootstrap(const TActorContext &ctx) { - const TNodeAuthorizationResult nodeAuthorizationResult = IsNodeAuthorized(); - if (!nodeAuthorizationResult.IsAuthorized) { + if (!CheckAccess()) { + Response.MutableStatus()->SetCode(TStatus::UNAUTHORIZED); + Response.MutableStatus()->SetReason("Cannot authorize node. Access denied"); SendReplyAndDie(ctx); + return; } auto dinfo = AppData(ctx)->DomainsInfo; @@ -90,7 +90,7 @@ class TNodeRegistrationActor : public TActorBootstrapped if (Request.HasPath()) { request->Record.SetPath(Request.GetPath()); } - request->Record.SetAuthorizedByCertificate(nodeAuthorizationResult.IsCertificateUsed); + request->Record.SetAuthorizedByCertificate(IsNodeAuthorizedByCertificate); NTabletPipe::SendData(ctx, NodeBrokerPipe, request.Release()); @@ -157,7 +157,7 @@ class TNodeRegistrationActor : public TActorBootstrapped void Die(const TActorContext &ctx) { NTabletPipe::CloseClient(ctx, NodeBrokerPipe); - TActorBase::Die(ctx); + TBase::Die(ctx); } void SendReplyAndDie(const TActorContext &ctx) @@ -186,52 +186,34 @@ class TNodeRegistrationActor : public TActorBootstrapped } private: - TNodeAuthorizationResult IsNodeAuthorized() { - TNodeAuthorizationResult result {.IsAuthorized = false, .IsCertificateUsed = false}; - auto* appdata = AppData(); - if (appdata && appdata->FeatureFlags.GetEnableDynamicNodeAuthorization() && DynamicNodeAuthorizationParams) { - const auto& nodeAuthValues = FindClientCert(); - if (nodeAuthValues.empty()) { - Response.MutableStatus()->SetCode(TStatus::UNAUTHORIZED); - Response.MutableStatus()->SetReason("Cannot authorize node. Node has not provided certificate"); - return result; - } - const auto& pemCert = nodeAuthValues.front(); - TMap subjectDescription; - X509CertificateReader::X509Ptr x509cert = X509CertificateReader::ReadCertAsPEM(pemCert); - for(const auto& term: X509CertificateReader::ReadSubjectTerms(x509cert)) { - subjectDescription.insert(term); - } - - if (!DynamicNodeAuthorizationParams.IsSubjectDescriptionMatched(subjectDescription)) { - Response.MutableStatus()->SetCode(TStatus::UNAUTHORIZED); - Response.MutableStatus()->SetReason("Cannot authorize node by certificate"); - return result; - } - const auto& host = Request.GetHost(); - if (!DynamicNodeAuthorizationParams.IsHostMatchAttributeCN(host)) { - Response.MutableStatus()->SetCode(TStatus::UNAUTHORIZED); - Response.MutableStatus()->SetReason("Cannot authorize node with host: " + host); - return result; + bool CheckAccess() { + const auto serializedToken = TBase::GetSerializedToken(); + // Empty serializedToken means token is not required. Checked in secure_request.h + if (!serializedToken.empty() && !AppData()->RegisterDynamicNodeAllowedSIDs.empty()) { + NACLib::TUserToken token(serializedToken); + for (const auto& sid : AppData()->RegisterDynamicNodeAllowedSIDs) { + if (token.IsExist(sid)) { + IsNodeAuthorizedByCertificate = true; + return true; + } } - result.IsCertificateUsed = true; + return false; } - result.IsAuthorized = true; - return result;; + return true; } NKikimrClient::TNodeRegistrationRequest Request; NKikimrClient::TNodeRegistrationResponse Response; TActorId NodeBrokerPipe; - const TDynamicNodeAuthorizationParams DynamicNodeAuthorizationParams; + bool IsNodeAuthorizedByCertificate = false; }; } // namespace -IActor *CreateMessageBusRegisterNode(NMsgBusProxy::TBusMessageContext &msg, const NKikimr::TDynamicNodeAuthorizationParams& dynamicNodeAuthorizationParams) { +IActor *CreateMessageBusRegisterNode(NMsgBusProxy::TBusMessageContext &msg) { NKikimrClient::TNodeRegistrationRequest &record = static_cast(msg.GetMessage())->Record; - return new TNodeRegistrationActor(record, msg, dynamicNodeAuthorizationParams); + return new TNodeRegistrationActor(record, msg); } } // namespace NMsgBusProxy diff --git a/ydb/core/client/server/ut/CMakeLists.darwin-arm64.txt b/ydb/core/client/server/ut/CMakeLists.darwin-arm64.txt index 7d553634a45e..81bf62b171f4 100644 --- a/ydb/core/client/server/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/client/server/ut/CMakeLists.darwin-arm64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-core-client-server-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-client-server-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metarequest_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/server/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/client/server/ut/CMakeLists.darwin-x86_64.txt index 06537c3a75cc..5fa77004029b 100644 --- a/ydb/core/client/server/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/client/server/ut/CMakeLists.darwin-x86_64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-core-client-server-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-client-server-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metarequest_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/server/ut/CMakeLists.linux-aarch64.txt b/ydb/core/client/server/ut/CMakeLists.linux-aarch64.txt index 095647ab92dc..3b1d25cfdec3 100644 --- a/ydb/core/client/server/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/client/server/ut/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-core-client-server-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-client-server-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metarequest_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/server/ut/CMakeLists.linux-x86_64.txt b/ydb/core/client/server/ut/CMakeLists.linux-x86_64.txt index 3f26224c6190..61366a5b462b 100644 --- a/ydb/core/client/server/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/client/server/ut/CMakeLists.linux-x86_64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-core-client-server-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-client-server-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/server/msgbus_server_pq_metarequest_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/server/ut/CMakeLists.windows-x86_64.txt b/ydb/core/client/server/ut/CMakeLists.windows-x86_64.txt index 88057798e880..32d6bfbc3999 100644 --- a/ydb/core/client/server/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/client/server/ut/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/server/ya.make b/ydb/core/client/server/ya.make index ff7720ab3362..97fa1cc45cf3 100644 --- a/ydb/core/client/server/ya.make +++ b/ydb/core/client/server/ya.make @@ -74,7 +74,7 @@ PEERDIR( ydb/core/engine ydb/core/engine/minikql ydb/core/grpc_services - ydb/core/grpc_services/auth_processor + ydb/core/security/certificate_check ydb/core/grpc_services/base ydb/core/keyvalue ydb/core/kqp/common diff --git a/ydb/core/client/ut/CMakeLists.darwin-arm64.txt b/ydb/core/client/ut/CMakeLists.darwin-arm64.txt index fe31a10e0858..25ef41702978 100644 --- a/ydb/core/client/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/client/ut/CMakeLists.darwin-arm64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-core-client-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-client-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/cancel_tx_ut.cpp @@ -65,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/client/ut/CMakeLists.darwin-x86_64.txt index 27a8521cb1f9..712768c2ba51 100644 --- a/ydb/core/client/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/client/ut/CMakeLists.darwin-x86_64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-core-client-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-client-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/cancel_tx_ut.cpp @@ -66,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/ut/CMakeLists.linux-aarch64.txt b/ydb/core/client/ut/CMakeLists.linux-aarch64.txt index 9cef71b7b902..9bdcad37a170 100644 --- a/ydb/core/client/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/client/ut/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-core-client-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-client-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/cancel_tx_ut.cpp @@ -69,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/ut/CMakeLists.linux-x86_64.txt b/ydb/core/client/ut/CMakeLists.linux-x86_64.txt index e804d63cb7c0..3592ad21b561 100644 --- a/ydb/core/client/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/client/ut/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-core-client-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-client-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/client/cancel_tx_ut.cpp @@ -70,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/client/ut/CMakeLists.windows-x86_64.txt b/ydb/core/client/ut/CMakeLists.windows-x86_64.txt index 0cd389cdf235..0451dcf0a19a 100644 --- a/ydb/core/client/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/client/ut/CMakeLists.windows-x86_64.txt @@ -59,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/CMakeLists.darwin-arm64.txt b/ydb/core/cms/CMakeLists.darwin-arm64.txt index 672177e0f3e4..c3a38b99234e 100644 --- a/ydb/core/cms/CMakeLists.darwin-arm64.txt +++ b/ydb/core/cms/CMakeLists.darwin-arm64.txt @@ -52,6 +52,32 @@ target_link_libraries(ydb-core-cms PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-core-cms PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/base_handler.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/downtime.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/erasure_checkers.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/http.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/info_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_config_items.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_config_updates.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_config_validators.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_console_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_operations.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_proto.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_sentinel.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_toggle_config_validator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/logger.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/node_checkers.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/log_formatter.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/pdiskid.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/walle.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/api_adapters.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/audit_log.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info.cpp diff --git a/ydb/core/cms/CMakeLists.darwin-x86_64.txt b/ydb/core/cms/CMakeLists.darwin-x86_64.txt index 672177e0f3e4..c3a38b99234e 100644 --- a/ydb/core/cms/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/cms/CMakeLists.darwin-x86_64.txt @@ -52,6 +52,32 @@ target_link_libraries(ydb-core-cms PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-core-cms PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/base_handler.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/downtime.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/erasure_checkers.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/http.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/info_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_config_items.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_config_updates.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_config_validators.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_console_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_operations.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_proto.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_sentinel.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_toggle_config_validator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/logger.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/node_checkers.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/log_formatter.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/pdiskid.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/walle.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/api_adapters.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/audit_log.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info.cpp diff --git a/ydb/core/cms/CMakeLists.linux-aarch64.txt b/ydb/core/cms/CMakeLists.linux-aarch64.txt index 700de3c15b92..b255aecdb037 100644 --- a/ydb/core/cms/CMakeLists.linux-aarch64.txt +++ b/ydb/core/cms/CMakeLists.linux-aarch64.txt @@ -53,6 +53,32 @@ target_link_libraries(ydb-core-cms PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-core-cms PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/base_handler.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/downtime.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/erasure_checkers.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/http.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/info_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_config_items.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_config_updates.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_config_validators.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_console_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_operations.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_proto.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_sentinel.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_toggle_config_validator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/logger.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/node_checkers.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/log_formatter.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/pdiskid.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/walle.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/api_adapters.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/audit_log.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info.cpp diff --git a/ydb/core/cms/CMakeLists.linux-x86_64.txt b/ydb/core/cms/CMakeLists.linux-x86_64.txt index 700de3c15b92..b255aecdb037 100644 --- a/ydb/core/cms/CMakeLists.linux-x86_64.txt +++ b/ydb/core/cms/CMakeLists.linux-x86_64.txt @@ -53,6 +53,32 @@ target_link_libraries(ydb-core-cms PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-core-cms PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/base_handler.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/downtime.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/erasure_checkers.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/http.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/info_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_config_items.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_config_updates.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_config_validators.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_console_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_operations.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_proto.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_sentinel.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_toggle_config_validator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/logger.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/node_checkers.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/log_formatter.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/pdiskid.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/walle.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/api_adapters.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/audit_log.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info.cpp diff --git a/ydb/core/cms/CMakeLists.windows-x86_64.txt b/ydb/core/cms/CMakeLists.windows-x86_64.txt index 672177e0f3e4..c3a38b99234e 100644 --- a/ydb/core/cms/CMakeLists.windows-x86_64.txt +++ b/ydb/core/cms/CMakeLists.windows-x86_64.txt @@ -52,6 +52,32 @@ target_link_libraries(ydb-core-cms PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-core-cms PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/base_handler.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/downtime.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/erasure_checkers.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/http.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/info_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_config_items.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_config_updates.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_config_validators.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_console_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_operations.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_proto.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_sentinel.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/json_proxy_toggle_config_validator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/logger.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/node_checkers.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/log_formatter.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/pdiskid.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/walle.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/api_adapters.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/audit_log.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info.cpp diff --git a/ydb/core/cms/api_adapters.cpp b/ydb/core/cms/api_adapters.cpp index 4ec7c2c7c11b..bc56fa7b90d2 100644 --- a/ydb/core/cms/api_adapters.cpp +++ b/ydb/core/cms/api_adapters.cpp @@ -163,6 +163,8 @@ class TListClusterNodes: public TAdapterActor< out.set_host(in.Host); out.set_port(in.IcPort); out.set_state(ConvertNodeState(in.State)); + out.set_version(in.Version); + *out.mutable_start_time() = TimeUtil::MicrosecondsToTimestamp(in.StartTime.GetValue()); auto& location = *out.mutable_location(); location.set_data_center(in.Location.GetDataCenterId()); @@ -379,6 +381,11 @@ class TCreateMaintenanceTask: public TPermissionResponseProcessor< cmsRequest.SetPartialPermissionAllowed(true); cmsRequest.SetSchedule(true); + i32 priority = opts.priority(); + if (priority != 0) { + cmsRequest.SetPriority(priority); + } + for (const auto& group : request.action_groups()) { Y_ABORT_UNLESS(group.actions().size() == 1); for (const auto& action : group.actions()) { @@ -559,7 +566,8 @@ class TGetMaintenanceTask: public TAdapterActor< opts.set_task_uid(taskUid); opts.set_description(request.GetReason()); opts.set_availability_mode(ConvertAvailabilityMode(request.GetAvailabilityMode())); - + opts.set_priority(request.GetPriority()); + // pending actions for (const auto& action : request.GetActions()) { ConvertAction(action, *result.add_action_group_states()->add_action_states()); diff --git a/ydb/core/cms/cluster_info.cpp b/ydb/core/cms/cluster_info.cpp index ffeab7b70d2d..1bfa92b04e68 100644 --- a/ydb/core/cms/cluster_info.cpp +++ b/ydb/core/cms/cluster_info.cpp @@ -60,12 +60,12 @@ bool TLockableItem::IsLocked(TErrorInfo &error, TDuration defaultRetryTime, return true; } - if (!ScheduledLocks.empty() && ScheduledLocks.begin()->Order < DeactivatedLocksOrder) { + if (!ScheduledLocks.empty() && ScheduledLocks.begin()->Priority < DeactivatedLocksPriority) { error.Code = TStatus::DISALLOW_TEMP; - error.Reason = Sprintf("%s has scheduled action %s owned by %s (order %" PRIu64 " vs %" PRIu64 ")", + error.Reason = Sprintf("%s has scheduled action %s owned by %s (priority %" PRIi32 " vs %" PRIi32 ")", PrettyItemName().data(), ScheduledLocks.begin()->RequestId.data(), - ScheduledLocks.begin()->Owner.data(), ScheduledLocks.begin()->Order, - DeactivatedLocksOrder); + ScheduledLocks.begin()->Owner.data(), ScheduledLocks.begin()->Priority, + DeactivatedLocksPriority); error.Deadline = now + defaultRetryTime; return true; } @@ -113,12 +113,12 @@ void TLockableItem::RollbackLocks(ui64 point) void TLockableItem::ReactivateScheduledLocks() { - DeactivatedLocksOrder = Max(); + DeactivatedLocksPriority = Max(); } -void TLockableItem::DeactivateScheduledLocks(ui64 order) +void TLockableItem::DeactivateScheduledLocks(i32 priority) { - DeactivatedLocksOrder = order; + DeactivatedLocksPriority = priority; } void TLockableItem::RemoveScheduledLocks(const TString &requestId) @@ -650,8 +650,11 @@ void TClusterInfo::ApplyActionWithoutLog(const NKikimrCms::TAction &action) case TAction::REBOOT_HOST: if (auto nodes = NodePtrs(action.GetHost(), MakeServices(action))) { for (const auto node : nodes) { - for (auto &nodeGroup: node->NodeGroups) - nodeGroup->LockNode(node->NodeId); + for (auto &nodeGroup: node->NodeGroups) { + if (!nodeGroup->IsNodeLocked(node->NodeId)) { + nodeGroup->LockNode(node->NodeId); + } + } } } break; @@ -659,12 +662,18 @@ void TClusterInfo::ApplyActionWithoutLog(const NKikimrCms::TAction &action) for (const auto &device : action.GetDevices()) { if (HasPDisk(device)) { auto pdisk = &PDiskRef(device); - for (auto &nodeGroup: NodeRef(pdisk->NodeId).NodeGroups) - nodeGroup->LockNode(pdisk->NodeId); + for (auto &nodeGroup: NodeRef(pdisk->NodeId).NodeGroups) { + if (!nodeGroup->IsNodeLocked(pdisk->NodeId)) { + nodeGroup->LockNode(pdisk->NodeId); + } + } } else if (HasVDisk(device)) { auto vdisk = &VDiskRef(device); - for (auto &nodeGroup: NodeRef(vdisk->NodeId).NodeGroups) - nodeGroup->LockNode(vdisk->NodeId); + for (auto &nodeGroup: NodeRef(vdisk->NodeId).NodeGroups) { + if (!nodeGroup->IsNodeLocked(vdisk->NodeId)) { + nodeGroup->LockNode(vdisk->NodeId); + } + } } } break; @@ -756,7 +765,7 @@ ui64 TClusterInfo::AddLocks(const TPermissionInfo &permission, const TActorConte || permission.Action.GetType() == TAction::REBOOT_HOST || permission.Action.GetType() == TAction::REPLACE_DEVICES)) { item->State = RESTART; - lock = true;; + lock = true; } if (lock) { @@ -854,7 +863,7 @@ ui64 TClusterInfo::ScheduleActions(const TRequestInfo &request, const TActorCont auto items = FindLockedItems(action, ctx); for (auto item : items) - item->ScheduleLock({action, request.Owner, request.RequestId, request.Order}); + item->ScheduleLock({action, request.Owner, request.RequestId, request.Priority}); locks += items.size(); } @@ -868,10 +877,10 @@ void TClusterInfo::UnscheduleActions(const TString &requestId) entry.second->RemoveScheduledLocks(requestId); } -void TClusterInfo::DeactivateScheduledLocks(ui64 order) +void TClusterInfo::DeactivateScheduledLocks(i32 priority) { for (auto &entry : LockableItems) - entry.second->DeactivateScheduledLocks(order); + entry.second->DeactivateScheduledLocks(priority); } void TClusterInfo::ReactivateScheduledLocks() @@ -1020,8 +1029,11 @@ void TOperationLogManager::ApplyAction(const NKikimrCms::TAction &action, case NKikimrCms::TAction::REBOOT_HOST: if (auto nodes = clusterState->NodePtrs(action.GetHost(), MakeServices(action))) { for (const auto node : nodes) { - for (auto &nodeGroup: node->NodeGroups) - AddNodeLockOperation(node->NodeId, nodeGroup); + for (auto &nodeGroup: node->NodeGroups) { + if (!nodeGroup->IsNodeLocked(node->NodeId)) { + AddNodeLockOperation(node->NodeId, nodeGroup); + } + } } } break; @@ -1029,13 +1041,18 @@ void TOperationLogManager::ApplyAction(const NKikimrCms::TAction &action, for (const auto &device : action.GetDevices()) { if (clusterState->HasPDisk(device)) { auto pdisk = &clusterState->PDisk(device); - for (auto &nodeGroup: clusterState->NodeRef(pdisk->NodeId).NodeGroups) - AddNodeLockOperation(pdisk->NodeId, nodeGroup); - + for (auto &nodeGroup: clusterState->NodeRef(pdisk->NodeId).NodeGroups) { + if (!nodeGroup->IsNodeLocked(pdisk->NodeId)) { + AddNodeLockOperation(pdisk->NodeId, nodeGroup); + } + } } else if (clusterState->HasVDisk(device)) { auto vdisk = &clusterState->VDisk(device); - for (auto &nodeGroup: clusterState->NodeRef(vdisk->NodeId).NodeGroups) - AddNodeLockOperation(vdisk->NodeId, nodeGroup); + for (auto &nodeGroup: clusterState->NodeRef(vdisk->NodeId).NodeGroups) { + if (!nodeGroup->IsNodeLocked(vdisk->NodeId)) { + AddNodeLockOperation(vdisk->NodeId, nodeGroup); + } + } } } break; diff --git a/ydb/core/cms/cluster_info.h b/ydb/core/cms/cluster_info.h index 5ba7fddd126f..f9439ad46d15 100644 --- a/ydb/core/cms/cluster_info.h +++ b/ydb/core/cms/cluster_info.h @@ -97,11 +97,13 @@ struct TRequestInfo { request.SetPartialPermissionAllowed(Request.GetPartialPermissionAllowed()); request.SetReason(Request.GetReason()); request.SetAvailabilityMode(Request.GetAvailabilityMode()); + request.SetPriority(Priority); } TString RequestId; TString Owner; ui64 Order = 0; + i32 Priority = 0; NKikimrCms::TPermissionRequest Request; }; @@ -203,10 +205,10 @@ class TLockableItem : public TThrRefBase { }; struct TScheduledLock : TBaseLock { - TScheduledLock(const NKikimrCms::TAction &action, const TString &owner, const TString &requestId, ui64 order) + TScheduledLock(const NKikimrCms::TAction &action, const TString &owner, const TString &requestId, i32 priority) : TBaseLock(owner, action) , RequestId(requestId) - , Order(order) + , Priority(priority) { } @@ -217,7 +219,7 @@ class TLockableItem : public TThrRefBase { TScheduledLock &operator=(TScheduledLock &&other) = default; TString RequestId; - ui64 Order = 0; + i32 Priority = 0; }; struct TTemporaryLock : TBaseLock { @@ -268,7 +270,7 @@ class TLockableItem : public TThrRefBase { void ScheduleLock(TScheduledLock &&lock) { auto pos = LowerBound(ScheduledLocks.begin(), ScheduledLocks.end(), lock, [](auto &l, auto &r) { - return l.Order < r.Order; + return l.Priority < r.Priority; }); ScheduledLocks.insert(pos, lock); } @@ -278,7 +280,7 @@ class TLockableItem : public TThrRefBase { void RollbackLocks(ui64 point); - void DeactivateScheduledLocks(ui64 order); + void DeactivateScheduledLocks(i32 priority); void ReactivateScheduledLocks(); void RemoveScheduledLocks(const TString &requestId); @@ -296,7 +298,7 @@ class TLockableItem : public TThrRefBase { std::list ExternalLocks; std::list ScheduledLocks; TVector TempLocks; - ui64 DeactivatedLocksOrder = Max(); + i32 DeactivatedLocksPriority = Max(); THashSet Markers; }; @@ -667,7 +669,6 @@ class TClusterInfo : public TThrRefBase { TOperationLogManager LogManager; TOperationLogManager ScheduledLogManager; - void ApplyActionToOperationLog(const NKikimrCms::TAction &action); void ApplyActionWithoutLog(const NKikimrCms::TAction &action); void ApplyNodeLimits(ui32 clusterLimit, ui32 clusterRatioLimit, ui32 tenantLimit, ui32 tenantRatioLimit); @@ -912,7 +913,7 @@ class TClusterInfo : public TThrRefBase { ui64 AddTempLocks(const NKikimrCms::TAction &action, const TActorContext *ctx); ui64 ScheduleActions(const TRequestInfo &request, const TActorContext *ctx); void UnscheduleActions(const TString &requestId); - void DeactivateScheduledLocks(ui64 order); + void DeactivateScheduledLocks(i32 priority); void ReactivateScheduledLocks(); void RollbackLocks(ui64 point); diff --git a/ydb/core/cms/cluster_info_ut.cpp b/ydb/core/cms/cluster_info_ut.cpp index cfe643214261..9fc6a14cc9f7 100644 --- a/ydb/core/cms/cluster_info_ut.cpp +++ b/ydb/core/cms/cluster_info_ut.cpp @@ -199,33 +199,33 @@ void AddActions(TRequestInfo &request, const NKikimrCms::TAction &action, Ts... } template -TRequestInfo MakeRequest(const TString &id, const TString &owner, ui64 order, Ts... actions) +TRequestInfo MakeRequest(const TString &id, const TString &owner, i32 priority, Ts... actions) { TRequestInfo res; res.RequestId = id; res.Owner = owner; - res.Order = order; + res.Priority = priority; AddActions(res, actions...); return res; } template -void CheckScheduledLocks(I pos, I end, const TString &id, const TString &owner, ui64 order) +void CheckScheduledLocks(I pos, I end, const TString &id, const TString &owner, i32 priority) { UNIT_ASSERT(pos != end); UNIT_ASSERT_VALUES_EQUAL(pos->RequestId, id); UNIT_ASSERT_VALUES_EQUAL(pos->Owner, owner); - UNIT_ASSERT_VALUES_EQUAL(pos->Order, order); + UNIT_ASSERT_VALUES_EQUAL(pos->Priority, priority); UNIT_ASSERT(++pos == end); } template -void CheckScheduledLocks(I pos, I end, const TString &id, const TString &owner, ui64 order, Ts... locks) +void CheckScheduledLocks(I pos, I end, const TString &id, const TString &owner, i32 priority, Ts... locks) { UNIT_ASSERT(pos != end); UNIT_ASSERT_VALUES_EQUAL(pos->RequestId, id); UNIT_ASSERT_VALUES_EQUAL(pos->Owner, owner); - UNIT_ASSERT_VALUES_EQUAL(pos->Order, order); + UNIT_ASSERT_VALUES_EQUAL(pos->Priority, priority); CheckScheduledLocks(++pos, end, locks...); } @@ -442,7 +442,7 @@ Y_UNIT_TEST_SUITE(TClusterInfoTest) { "request-3", "user-3", 3, "request-4", "user-4", 4); - cluster->DeactivateScheduledLocks(request2.Order); + cluster->DeactivateScheduledLocks(request2.Priority); TErrorInfo error; UNIT_ASSERT(cluster->Node(1).IsLocked(error, TDuration(), Now(), TDuration())); diff --git a/ydb/core/cms/cms.cpp b/ydb/core/cms/cms.cpp index 12f543aa5cc8..31cea8f2e289 100644 --- a/ydb/core/cms/cms.cpp +++ b/ydb/core/cms/cms.cpp @@ -50,6 +50,8 @@ void TCms::OnActivateExecutor(const TActorContext &ctx) return; } + EnableCMSRequestPriorities = AppData(ctx)->FeatureFlags.GetEnableCMSRequestPriorities(); + Executor()->RegisterExternalTabletCounters(TabletCountersPtr.Release()); State->CmsTabletId = TabletID(); @@ -244,13 +246,16 @@ void TCms::ProcessInitQueue(const TActorContext &ctx) void TCms::SubscribeForConfig(const TActorContext &ctx) { - NConsole::SubscribeViaConfigDispatcher(ctx, {(ui32)NKikimrConsole::TConfigItem::CmsConfigItem}, ctx.SelfID); + NConsole::SubscribeViaConfigDispatcher(ctx, {(ui32)NKikimrConsole::TConfigItem::CmsConfigItem, + (ui32)NKikimrConsole::TConfigItem::FeatureFlagsItem}, ctx.SelfID); } void TCms::AdjustInfo(TClusterInfoPtr &info, const TActorContext &ctx) const { for (const auto &entry : State->Permissions) info->AddLocks(entry.second, &ctx); + for (const auto &entry : State->ScheduledRequests) + info->ScheduleActions(entry.second, &ctx); for (const auto &entry : State->Notifications) info->AddExternalLocks(entry.second, &ctx); for (const auto &entry : State->HostMarkers) @@ -305,6 +310,9 @@ bool TCms::CheckPermissionRequest(const TPermissionRequest &request, scheduled.SetDuration(request.GetDuration()); scheduled.SetTenantPolicy(request.GetTenantPolicy()); scheduled.SetAvailabilityMode(request.GetAvailabilityMode()); + if (request.HasPriority()) { + scheduled.SetPriority(request.GetPriority()); + } } LOG_INFO_S(ctx, NKikimrServices::CMS, @@ -1160,6 +1168,7 @@ void TCms::AddHostState(const TClusterInfoPtr &clusterInfo, const TNodeInfo &nod host->SetNodeId(node.NodeId); host->SetInterconnectPort(node.IcPort); host->SetTimestamp(timestamp.GetValue()); + host->SetStartTimeSeconds(node.StartTime.Seconds()); node.Location.Serialize(host->MutableLocation(), false); for (auto marker : node.Markers) { host->AddMarkers(marker); @@ -1467,6 +1476,20 @@ void TCms::CheckAndEnqueueRequest(TEvCms::TEvPermissionRequest::TPtr &ev, const } } + if (rec.HasPriority() && !EnableCMSRequestPriorities) { + if (rec.GetUser() == WALLE_CMS_USER) { + rec.ClearPriority(); + } else { + return ReplyWithError( + ev, TStatus::WRONG_REQUEST, "Unsupported: feature flag EnableCMSRequestPriorities is off", ctx); + } + } + + if (-100 > rec.GetPriority() || rec.GetPriority() > 100) { + return ReplyWithError( + ev, TStatus::WRONG_REQUEST, "Priority value is out of range", ctx); + } + EnqueueRequest(ev.Release(), ctx); } @@ -1819,7 +1842,6 @@ void TCms::Handle(TEvCms::TEvPermissionRequest::TPtr &ev, TAutoPtr resp = new TEvCms::TEvPermissionResponse; TRequestInfo scheduled; auto &rec = ev->Get()->Record; - TString user = rec.GetUser(); auto requestStartTime = TInstant::Now(); @@ -1859,12 +1881,25 @@ void TCms::Handle(TEvCms::TEvPermissionRequest::TPtr &ev, } } + ClusterInfo->LogManager.PushRollbackPoint(); + const i32 priority = rec.GetPriority(); + for (const auto &[_, scheduledRequest] : State->ScheduledRequests) { + if (scheduledRequest.Priority < priority) { + for (const auto &action : scheduledRequest.Request.GetActions()) { + ClusterInfo->LogManager.ApplyAction(action, ClusterInfo); + } + } + } + ClusterInfo->DeactivateScheduledLocks(priority); bool ok = CheckPermissionRequest(rec, resp->Record, scheduled.Request, ctx); + ClusterInfo->ReactivateScheduledLocks(); + ClusterInfo->LogManager.RollbackOperations(); // Schedule request if required. if (rec.GetDryRun()) { Reply(ev, std::move(resp), ctx); } else { + TString user = rec.GetUser(); auto reqId = user + "-r-" + ToString(State->NextRequestId++); resp->Record.SetRequestId(reqId); @@ -1872,7 +1907,9 @@ void TCms::Handle(TEvCms::TEvPermissionRequest::TPtr &ev, if (scheduled.Request.ActionsSize() || scheduled.Request.GetEvictVDisks()) { scheduled.Owner = user; scheduled.Order = State->NextRequestId - 1; + scheduled.Priority = priority; scheduled.RequestId = reqId; + ClusterInfo->ScheduleActions(scheduled, &ctx); copy = new TRequestInfo(scheduled); State->ScheduledRequests.emplace(reqId, std::move(scheduled)); @@ -1923,8 +1960,19 @@ void TCms::Handle(TEvCms::TEvCheckRequest::TPtr &ev, const TActorContext &ctx) auto requestStartTime = TInstant::Now(); + ClusterInfo->LogManager.PushRollbackPoint(); + for (const auto &scheduled_request : State->ScheduledRequests) { + if (scheduled_request.second.Priority < request.Priority) { + for (const auto &action : scheduled_request.second.Request.GetActions()) + ClusterInfo->LogManager.ApplyAction(action, ClusterInfo); + } + } + + ClusterInfo->DeactivateScheduledLocks(request.Priority); request.Request.SetAvailabilityMode(rec.GetAvailabilityMode()); bool ok = CheckPermissionRequest(request.Request, resp->Record, scheduled.Request, ctx); + ClusterInfo->ReactivateScheduledLocks(); + ClusterInfo->LogManager.RollbackOperations(); // Schedule request if required. if (rec.GetDryRun()) { @@ -1932,14 +1980,19 @@ void TCms::Handle(TEvCms::TEvCheckRequest::TPtr &ev, const TActorContext &ctx) } else { TAutoPtr copy; auto order = request.Order; + auto priority = request.Priority; + ClusterInfo->UnscheduleActions(request.RequestId); State->ScheduledRequests.erase(it); if (scheduled.Request.ActionsSize() || scheduled.Request.GetEvictVDisks()) { scheduled.Owner = user; scheduled.Order = order; + scheduled.Priority = priority; scheduled.RequestId = rec.GetRequestId(); resp->Record.SetRequestId(scheduled.RequestId); + ClusterInfo->ScheduleActions(scheduled, &ctx); + copy = new TRequestInfo(scheduled); State->ScheduledRequests.emplace(rec.GetRequestId(), std::move(scheduled)); } else { @@ -2222,7 +2275,12 @@ void TCms::Handle(TEvCms::TEvGetSentinelStateRequest::TPtr &ev, const TActorCont void TCms::Handle(TEvConsole::TEvConfigNotificationRequest::TPtr &ev, const TActorContext &ctx) -{ +{ + const auto& appConfig = ev->Get()->Record.GetConfig(); + if (appConfig.HasFeatureFlags()) { + EnableCMSRequestPriorities = appConfig.GetFeatureFlags().GetEnableCMSRequestPriorities(); + } + if (ev->Get()->Record.HasLocal() && ev->Get()->Record.GetLocal()) { Execute(CreateTxUpdateConfig(ev), ctx); } else { diff --git a/ydb/core/cms/cms_impl.h b/ydb/core/cms/cms_impl.h index 3f588599edf0..e25dd4349ccf 100644 --- a/ydb/core/cms/cms_impl.h +++ b/ydb/core/cms/cms_impl.h @@ -464,6 +464,8 @@ class TCms : public TActor, public TTabletExecutedFlat { TInstant InfoCollectorStartTime; + bool EnableCMSRequestPriorities = false; + private: TString GenerateStat(); void GenerateNodeState(IOutputStream&); diff --git a/ydb/core/cms/cms_tx_load_state.cpp b/ydb/core/cms/cms_tx_load_state.cpp index 829ce9f94573..80a1de452197 100644 --- a/ydb/core/cms/cms_tx_load_state.cpp +++ b/ydb/core/cms/cms_tx_load_state.cpp @@ -9,6 +9,17 @@ namespace NKikimr::NCms { +namespace { + +template +bool ParseFromStringSafe(const TString& input, T* output) { + google::protobuf::TextFormat::Parser parser; + parser.AllowUnknownField(true); + return parser.ParseFromString(input, output); +} + +} // anonymous namespace + class TCms::TTxLoadState : public TTransactionBase { public: TTxLoadState(TCms *self) @@ -83,13 +94,15 @@ class TCms::TTxLoadState : public TTransactionBase { TString id = requestRowset.GetValue(); TString owner = requestRowset.GetValue(); ui64 order = requestRowset.GetValue(); + i32 priority = requestRowset.GetValueOrDefault(); TString requestStr = requestRowset.GetValue(); TRequestInfo request; request.RequestId = id; request.Owner = owner; request.Order = order; - google::protobuf::TextFormat::ParseFromString(requestStr, &request.Request); + request.Priority = priority; + ParseFromStringSafe(requestStr, &request.Request); LOG_DEBUG(ctx, NKikimrServices::CMS, "Loaded request %s owned by %s: %s", id.data(), owner.data(), requestStr.data()); @@ -147,7 +160,7 @@ class TCms::TTxLoadState : public TTransactionBase { permission.PermissionId = id; permission.RequestId = requestId; permission.Owner = owner; - google::protobuf::TextFormat::ParseFromString(actionStr, &permission.Action); + ParseFromStringSafe(actionStr, &permission.Action); permission.Deadline = TInstant::MicroSeconds(deadline); LOG_DEBUG(ctx, NKikimrServices::CMS, "Loaded permission %s owned by %s valid until %s: %s", @@ -183,7 +196,7 @@ class TCms::TTxLoadState : public TTransactionBase { TNotificationInfo notification; notification.NotificationId = id; notification.Owner = owner; - google::protobuf::TextFormat::ParseFromString(notificationStr, ¬ification.Notification); + ParseFromStringSafe(notificationStr, ¬ification.Notification); LOG_DEBUG(ctx, NKikimrServices::CMS, "Loaded notification %s owned by %s: %s", id.data(), owner.data(), notificationStr.data()); diff --git a/ydb/core/cms/cms_tx_store_permissions.cpp b/ydb/core/cms/cms_tx_store_permissions.cpp index db625f2d1437..6a382b33fb88 100644 --- a/ydb/core/cms/cms_tx_store_permissions.cpp +++ b/ydb/core/cms/cms_tx_store_permissions.cpp @@ -82,18 +82,21 @@ class TCms::TTxStorePermissions : public TTransactionBase { if (Scheduled->Request.ActionsSize() || Scheduled->Request.GetEvictVDisks()) { ui64 order = Scheduled->Order; + i32 priority = Scheduled->Priority; TString requestStr; google::protobuf::TextFormat::PrintToString(Scheduled->Request, &requestStr); auto row = db.Table().Key(id); row.Update(NIceDb::TUpdate(owner), NIceDb::TUpdate(order), + NIceDb::TUpdate(priority), NIceDb::TUpdate(requestStr)); Self->AuditLog(ctx, TStringBuilder() << "Store request" << ": id# " << id << ", owner# " << owner << ", order# " << order + << ", priority# " << priority << ", body# " << requestStr); if (Scheduled->Request.GetEvictVDisks()) { diff --git a/ydb/core/cms/cms_ut.cpp b/ydb/core/cms/cms_ut.cpp index 03dde0cba74b..54279556431d 100644 --- a/ydb/core/cms/cms_ut.cpp +++ b/ydb/core/cms/cms_ut.cpp @@ -1807,6 +1807,266 @@ Y_UNIT_TEST_SUITE(TCmsTest) { // reject until prepared env.CheckRejectRequest("user", request3.GetRequestId()); } + + Y_UNIT_TEST(EmergencyDuringRollingRestart) + { + TCmsTestEnv env(TTestEnvOpts(8).WithEnableCMSRequestPriorities()); + + // Start rolling restart + auto rollingRestart = env.CheckPermissionRequest + ("user", true, false, true, true, -80, TStatus::ALLOW_PARTIAL, + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(0), 60000000, "storage"), + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(1), 60000000, "storage")); + UNIT_ASSERT_VALUES_EQUAL(rollingRestart.PermissionsSize(), 1); + + // Done with restarting first node + env.CheckDonePermission("user", rollingRestart.GetPermissions(0).GetId()); + + // Emergency request + auto emergency = env.CheckPermissionRequest + ("user", true, false, true, true, -100, TStatus::ALLOW, + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(1), 60000000, "storage")); + + // Rolling restart is blocked by emergency request + env.CheckRequest("user", rollingRestart.GetRequestId(), false, TStatus::DISALLOW_TEMP, 0); + + // Done with emergency request + env.CheckDonePermission("user", emergency.GetPermissions(0).GetId()); + + // Rolling restart can continue + env.CheckRequest("user", rollingRestart.GetRequestId(), false, TStatus::ALLOW, 1); + } + + Y_UNIT_TEST(ScheduledEmergencyDuringRollingRestart) + { + TCmsTestEnv env(TTestEnvOpts(8).WithEnableCMSRequestPriorities()); + + // Start rolling restart + auto rollingRestart = env.CheckPermissionRequest + ("user", true, false, true, true, -80, TStatus::ALLOW_PARTIAL, + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(0), 60000000, "storage"), + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(1), 60000000, "storage")); + UNIT_ASSERT_VALUES_EQUAL(rollingRestart.PermissionsSize(), 1); + + // Emergency request + auto emergency = env.CheckPermissionRequest + ("user", true, false, true, true, -100, TStatus::DISALLOW_TEMP, + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(1), 60000000, "storage")); + + // Done with restarting first node + env.CheckDonePermission("user", rollingRestart.GetPermissions(0).GetId()); + + // Rolling restart is blocked by emergency request + env.CheckRequest("user", rollingRestart.GetRequestId(), false, TStatus::DISALLOW_TEMP, 0); + + // Emergency request is not blocked + emergency = env.CheckRequest("user", emergency.GetRequestId(), false, TStatus::ALLOW, 1); + + // Done with emergency request + env.CheckDonePermission("user", emergency.GetPermissions(0).GetId()); + + // Rolling restart can continue + env.CheckRequest("user", rollingRestart.GetRequestId(), false, TStatus::ALLOW, 1); + } + + Y_UNIT_TEST(WalleRequestDuringRollingRestart) + { + TCmsTestEnv env(TTestEnvOpts(8).WithEnableCMSRequestPriorities()); + + // Start rolling restart + auto rollingRestart = env.CheckPermissionRequest + ("user", true, false, true, true, -80, TStatus::ALLOW_PARTIAL, + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(0), 60000000, "storage"), + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(1), 60000000, "storage")); + UNIT_ASSERT_VALUES_EQUAL(rollingRestart.PermissionsSize(), 1); + + // Done with restarting first node + env.CheckDonePermission("user", rollingRestart.GetPermissions(0).GetId()); + + // Wall-E task is blocked by rolling restart + env.CheckWalleCreateTask("task-1", "reboot", false, TStatus::DISALLOW_TEMP, env.GetNodeId(1)); + + // Rolling restart is not blocked + rollingRestart = env.CheckRequest("user", rollingRestart.GetRequestId(), false, TStatus::ALLOW, 1); + UNIT_ASSERT_VALUES_EQUAL(rollingRestart.PermissionsSize(), 1); + + // Done with restarting second node + env.CheckDonePermission("user", rollingRestart.GetPermissions(0).GetId()); + + // Wall-E task can continue + env.CheckWalleCheckTask("task-1", TStatus::ALLOW, env.GetNodeId(1)); + } + + Y_UNIT_TEST(ScheduledWalleRequestDuringRollingRestart) + { + TCmsTestEnv env(TTestEnvOpts(8).WithEnableCMSRequestPriorities()); + + // Start rolling restart + auto rollingRestart = env.CheckPermissionRequest + ("user", true, false, true, true, -80, TStatus::ALLOW_PARTIAL, + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(0), 60000000, "storage"), + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(1), 60000000, "storage")); + UNIT_ASSERT_VALUES_EQUAL(rollingRestart.PermissionsSize(), 1); + + // Wall-E task is blocked by rolling restart + env.CheckWalleCreateTask("task-1", "reboot", false, TStatus::DISALLOW_TEMP, env.GetNodeId(1)); + + // Done with restarting first node + env.CheckDonePermission("user", rollingRestart.GetPermissions(0).GetId()); + + // Wall-E task is stil blocked + env.CheckWalleCheckTask("task-1", TStatus::DISALLOW_TEMP, env.GetNodeId(1)); + + // Rolling restart is not blocked + rollingRestart = env.CheckRequest("user", rollingRestart.GetRequestId(), false, TStatus::ALLOW, 1); + UNIT_ASSERT_VALUES_EQUAL(rollingRestart.PermissionsSize(), 1); + + // Done with restarting second node + env.CheckDonePermission("user", rollingRestart.GetPermissions(0).GetId()); + + // Wall-E task can continue + env.CheckWalleCheckTask("task-1", TStatus::ALLOW, env.GetNodeId(1)); + } + + Y_UNIT_TEST(EnableCMSRequestPrioritiesFeatureFlag) + { + TCmsTestEnv env(8); + // Start rolling restart with specified priority + auto rollingRestart = env.CheckPermissionRequest + ("user", true, false, true, true, -80, TStatus::WRONG_REQUEST, + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(0), 60000000, "storage"), + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(1), 60000000, "storage")); + + const TString expectedReason = "Unsupported: feature flag EnableCMSRequestPriorities is off"; + UNIT_ASSERT_VALUES_EQUAL(rollingRestart.GetStatus().GetReason(), expectedReason); + } + + Y_UNIT_TEST(SamePriorityRequest) + { + TCmsTestEnv env(TTestEnvOpts(8).WithEnableCMSRequestPriorities()); + + // Start rolling restart + auto rollingRestart = env.CheckPermissionRequest + ("user", true, false, true, true, -80, TStatus::ALLOW_PARTIAL, + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(0), 60000000, "storage"), + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(1), 60000000, "storage")); + UNIT_ASSERT_VALUES_EQUAL(rollingRestart.PermissionsSize(), 1); + + // Issue same priority request + auto samePriorityRequest = env.CheckPermissionRequest + ("user", true, false, true, true, -80, TStatus::DISALLOW_TEMP, + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(1), 60000000, "storage")); + + // Done with restarting first node + env.CheckDonePermission("user", rollingRestart.GetPermissions(0).GetId()); + + // Rolling restart is not blocked by same priority request + rollingRestart = env.CheckRequest("user", rollingRestart.GetRequestId(), false, TStatus::ALLOW, 1); + UNIT_ASSERT_VALUES_EQUAL(rollingRestart.PermissionsSize(), 1); + + // Done with restarting second node + env.CheckDonePermission("user", rollingRestart.GetPermissions(0).GetId()); + + // Same priority can continue + env.CheckRequest("user", samePriorityRequest.GetRequestId(), false, TStatus::ALLOW, 1); + } + + Y_UNIT_TEST(SamePriorityRequest2) + { + TCmsTestEnv env(TTestEnvOpts(8).WithEnableCMSRequestPriorities()); + + // Start rolling restart + auto rollingRestart = env.CheckPermissionRequest + ("user", true, false, true, true, -80, TStatus::ALLOW_PARTIAL, + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(0), 60000000, "storage"), + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(1), 60000000, "storage")); + UNIT_ASSERT_VALUES_EQUAL(rollingRestart.PermissionsSize(), 1); + + // Issue same priority request + auto samePriorityRequest = env.CheckPermissionRequest + ("user", true, false, true, true, -80, TStatus::DISALLOW_TEMP, + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(1), 60000000, "storage")); + + // Done with restarting first node + env.CheckDonePermission("user", rollingRestart.GetPermissions(0).GetId()); + + // Request is not blocked by rolling restart of same priority + samePriorityRequest = env.CheckRequest("user", samePriorityRequest.GetRequestId(), false, TStatus::ALLOW, 1); + UNIT_ASSERT_VALUES_EQUAL(samePriorityRequest.PermissionsSize(), 1); + + // Done with same priority request permissions + env.CheckDonePermission("user", samePriorityRequest.GetPermissions(0).GetId()); + + // Rolling restart can continue + env.CheckRequest("user", rollingRestart.GetRequestId(), false, TStatus::ALLOW, 1); + } + + Y_UNIT_TEST(PriorityRange) + { + TCmsTestEnv env(TTestEnvOpts(8).WithEnableCMSRequestPriorities()); + + const TString expectedReason = "Priority value is out of range"; + + // Out of range priority + auto request = env.CheckPermissionRequest + ("user", true, false, true, true, -101, TStatus::WRONG_REQUEST, + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(0), 60000000, "storage"), + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(1), 60000000, "storage")); + UNIT_ASSERT_VALUES_EQUAL(request.GetStatus().GetReason(), expectedReason); + + // Out of range priority + request = env.CheckPermissionRequest + ("user", true, false, true, true, 101, TStatus::WRONG_REQUEST, + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(0), 60000000, "storage"), + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(1), 60000000, "storage")); + UNIT_ASSERT_VALUES_EQUAL(request.GetStatus().GetReason(), expectedReason); + } + + Y_UNIT_TEST(WalleTasksDifferentPriorities) + { + TCmsTestEnv env(TTestEnvOpts(8).WithEnableCMSRequestPriorities()); + + // Without node limits + NKikimrCms::TCmsConfig config; + config.MutableClusterLimits()->SetDisabledNodesLimit(0); + config.MutableClusterLimits()->SetDisabledNodesRatioLimit(0); + env.SetCmsConfig(config); + + // Start rolling restart + auto rollingRestart = env.CheckPermissionRequest + ("user", true, false, true, true, -80, TStatus::ALLOW_PARTIAL, + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(0), 60000000, "storage"), + MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(1), 60000000, "storage")); + UNIT_ASSERT_VALUES_EQUAL(rollingRestart.PermissionsSize(), 1); + + // Done with restarting first node + env.CheckDonePermission("user", rollingRestart.GetPermissions(0).GetId()); + + // Rolling restart is continue + rollingRestart = env.CheckRequest("user", rollingRestart.GetRequestId(), false, TStatus::ALLOW, 1); + UNIT_ASSERT_VALUES_EQUAL(rollingRestart.PermissionsSize(), 1); + + // Wall-E soft maintainance task is blocked by rolling restart + env.CheckWalleCreateTask("task-1", "temporary-unreachable", false, TStatus::DISALLOW_TEMP, env.GetNodeId(2)); + + // Wall-E reboot task is blocked by rolling restart + env.CheckWalleCreateTask("task-2", "reboot", false, TStatus::DISALLOW_TEMP, env.GetNodeId(1)); + + // Done with restarting second node + env.CheckDonePermission("user", rollingRestart.GetPermissions(0).GetId()); + + // Wall-E soft maintainance task is blocked by Wall-E reboot task + env.CheckWalleCheckTask("task-1", TStatus::DISALLOW_TEMP, env.GetNodeId(2)); + + // Wall-E reboot task can continue + env.CheckWalleCheckTask("task-2", TStatus::ALLOW, env.GetNodeId(1)); + + // Done with Wall-E reboot task + env.CheckWalleRemoveTask("task-2"); + + // Wall-E soft maintainance task can continue + env.CheckWalleCheckTask("task-1", TStatus::ALLOW, env.GetNodeId(2)); + } } } diff --git a/ydb/core/cms/cms_ut_common.cpp b/ydb/core/cms/cms_ut_common.cpp index ab8843330d19..4e261a265b45 100644 --- a/ydb/core/cms/cms_ut_common.cpp +++ b/ydb/core/cms/cms_ut_common.cpp @@ -485,8 +485,15 @@ static void SetupServices(TTestActorRuntime &runtime, const TTestEnvOpts &option NKikimrConfig::TAppConfig appConfig; appConfig.MutableBootstrapConfig()->CopyFrom(TFakeNodeWhiteboardService::BootstrapConfig); + appConfig.MutableFeatureFlags()->SetEnableCMSRequestPriorities(options.EnableCMSRequestPriorities); runtime.AddLocalService(MakeConfigsDispatcherID(runtime.GetNodeId(0)), - TActorSetupCmd(CreateConfigsDispatcher(appConfig, {}), TMailboxType::Simple, 0), 0); + TActorSetupCmd(CreateConfigsDispatcher( + NKikimr::NConsole::TConfigsDispatcherInitInfo { + .InitialConfig = appConfig, + }), + TMailboxType::Simple, + 0), + 0); runtime.Initialize(app.Unwrap()); auto dnsConfig = new TDynamicNameserviceConfig(); diff --git a/ydb/core/cms/cms_ut_common.h b/ydb/core/cms/cms_ut_common.h index be43e21b74ab..383546a32cae 100644 --- a/ydb/core/cms/cms_ut_common.h +++ b/ydb/core/cms/cms_ut_common.h @@ -86,6 +86,7 @@ struct TTestEnvOpts { bool UseMirror3dcErasure; bool AdvanceCurrentTime; bool EnableSentinel; + bool EnableCMSRequestPriorities; TTestEnvOpts() = default; @@ -102,6 +103,7 @@ struct TTestEnvOpts { , UseMirror3dcErasure(false) , AdvanceCurrentTime(false) , EnableSentinel(false) + , EnableCMSRequestPriorities(false) { } @@ -114,6 +116,11 @@ struct TTestEnvOpts { EnableSentinel = false; return *this; } + + TTestEnvOpts& WithEnableCMSRequestPriorities() { + EnableCMSRequestPriorities = true; + return *this; + } }; class TCmsTestEnv : public TTestBasicRuntime { @@ -159,6 +166,7 @@ class TCmsTestEnv : public TTestBasicRuntime { bool defaultTenantPolicy, TDuration duration, NKikimrCms::EAvailabilityMode availabilityMode, + i32 priority, NKikimrCms::TStatus::ECode code, Ts... actions) { @@ -168,6 +176,8 @@ class TCmsTestEnv : public TTestBasicRuntime { if (duration) req->Record.SetDuration(duration.GetValue()); req->Record.SetAvailabilityMode(availabilityMode); + if (priority) + req->Record.SetPriority(priority); return CheckPermissionRequest(req, code); } @@ -184,7 +194,7 @@ class TCmsTestEnv : public TTestBasicRuntime { { return CheckPermissionRequest(user, partial, dry, schedule, defaultTenantPolicy, TDuration::Zero(), - availabilityMode, + availabilityMode, 0, code, actions...); } template @@ -199,7 +209,7 @@ class TCmsTestEnv : public TTestBasicRuntime { Ts... actions) { return CheckPermissionRequest(user, partial, dry, schedule, defaultTenantPolicy, - duration, NKikimrCms::MODE_MAX_AVAILABILITY, code, actions...); + duration, NKikimrCms::MODE_MAX_AVAILABILITY, 0, code, actions...); } template @@ -216,6 +226,21 @@ class TCmsTestEnv : public TTestBasicRuntime { NKikimrCms::MODE_MAX_AVAILABILITY, code, actions...); } + template + NKikimrCms::TPermissionResponse CheckPermissionRequest( + const TString &user, + bool partial, + bool dry, + bool schedule, + bool defaultTenantPolicy, + i32 priority, + NKikimrCms::TStatus::ECode code, + Ts... actions) + { + return CheckPermissionRequest(user, partial, dry, schedule, defaultTenantPolicy, + TDuration::Zero(), NKikimrCms::MODE_MAX_AVAILABILITY, priority, code, actions...); + } + NKikimrCms::TPermissionResponse CheckPermissionRequest(TAutoPtr req, NKikimrCms::TStatus::ECode code); diff --git a/ydb/core/cms/console/CMakeLists.darwin-arm64.txt b/ydb/core/cms/console/CMakeLists.darwin-arm64.txt index 589b75be3d99..b37ecdf577b7 100644 --- a/ydb/core/cms/console/CMakeLists.darwin-arm64.txt +++ b/ydb/core/cms/console/CMakeLists.darwin-arm64.txt @@ -43,6 +43,26 @@ target_link_libraries(core-cms-console PUBLIC public-lib-operation_id ) target_sources(core-cms-console PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/config_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_config.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_dispatcher.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_manager.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_provider.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_subscriber.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_tenants_manager.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/http.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/immediate_controls_configurator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/log_settings_configurator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/logger.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/modifications_validator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/shared_cache_configurator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/tx_processor.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/config_helpers.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_config.cpp diff --git a/ydb/core/cms/console/CMakeLists.darwin-x86_64.txt b/ydb/core/cms/console/CMakeLists.darwin-x86_64.txt index 589b75be3d99..b37ecdf577b7 100644 --- a/ydb/core/cms/console/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/cms/console/CMakeLists.darwin-x86_64.txt @@ -43,6 +43,26 @@ target_link_libraries(core-cms-console PUBLIC public-lib-operation_id ) target_sources(core-cms-console PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/config_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_config.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_dispatcher.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_manager.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_provider.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_subscriber.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_tenants_manager.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/http.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/immediate_controls_configurator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/log_settings_configurator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/logger.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/modifications_validator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/shared_cache_configurator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/tx_processor.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/config_helpers.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_config.cpp diff --git a/ydb/core/cms/console/CMakeLists.linux-aarch64.txt b/ydb/core/cms/console/CMakeLists.linux-aarch64.txt index 6d6b88064ffe..7a14cc28b5ee 100644 --- a/ydb/core/cms/console/CMakeLists.linux-aarch64.txt +++ b/ydb/core/cms/console/CMakeLists.linux-aarch64.txt @@ -44,6 +44,26 @@ target_link_libraries(core-cms-console PUBLIC public-lib-operation_id ) target_sources(core-cms-console PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/config_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_config.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_dispatcher.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_manager.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_provider.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_subscriber.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_tenants_manager.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/http.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/immediate_controls_configurator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/log_settings_configurator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/logger.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/modifications_validator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/shared_cache_configurator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/tx_processor.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/config_helpers.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_config.cpp diff --git a/ydb/core/cms/console/CMakeLists.linux-x86_64.txt b/ydb/core/cms/console/CMakeLists.linux-x86_64.txt index 6d6b88064ffe..7a14cc28b5ee 100644 --- a/ydb/core/cms/console/CMakeLists.linux-x86_64.txt +++ b/ydb/core/cms/console/CMakeLists.linux-x86_64.txt @@ -44,6 +44,26 @@ target_link_libraries(core-cms-console PUBLIC public-lib-operation_id ) target_sources(core-cms-console PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/config_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_config.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_dispatcher.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_manager.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_provider.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_subscriber.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_tenants_manager.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/http.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/immediate_controls_configurator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/log_settings_configurator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/logger.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/modifications_validator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/shared_cache_configurator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/tx_processor.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/config_helpers.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_config.cpp diff --git a/ydb/core/cms/console/CMakeLists.windows-x86_64.txt b/ydb/core/cms/console/CMakeLists.windows-x86_64.txt index 589b75be3d99..b37ecdf577b7 100644 --- a/ydb/core/cms/console/CMakeLists.windows-x86_64.txt +++ b/ydb/core/cms/console/CMakeLists.windows-x86_64.txt @@ -43,6 +43,26 @@ target_link_libraries(core-cms-console PUBLIC public-lib-operation_id ) target_sources(core-cms-console PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/config_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_config.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_dispatcher.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_manager.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_provider.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_configs_subscriber.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console_tenants_manager.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/console__scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/http.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/immediate_controls_configurator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/log_settings_configurator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/logger.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/modifications_validator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/shared_cache_configurator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/tx_processor.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/config_helpers.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_config.cpp diff --git a/ydb/core/cms/console/configs_dispatcher.cpp b/ydb/core/cms/console/configs_dispatcher.cpp index bd6b40d2edf8..f415cf3243c0 100644 --- a/ydb/core/cms/console/configs_dispatcher.cpp +++ b/ydb/core/cms/console/configs_dispatcher.cpp @@ -57,7 +57,8 @@ const THashSet DYNAMIC_KINDS({ (ui32)NKikimrConsole::TConfigItem::TenantPoolConfigItem, (ui32)NKikimrConsole::TConfigItem::TenantSlotBrokerConfigItem, (ui32)NKikimrConsole::TConfigItem::AllowEditYamlInUiItem, - (ui32)NKikimrConsole::TConfigItem::BackgroundCleaningConfigItem + (ui32)NKikimrConsole::TConfigItem::BackgroundCleaningConfigItem, + (ui32)NKikimrConsole::TConfigItem::TracingConfigItem, }); const THashSet NON_YAML_KINDS({ @@ -133,12 +134,7 @@ class TConfigsDispatcher : public TActorBootstrapped { return NKikimrServices::TActivity::CONFIGS_DISPATCHER_ACTOR; } - TConfigsDispatcher( - const NKikimrConfig::TAppConfig &config, - const TMap &labels, - const NKikimrConfig::TAppConfig &initialCmsConfig, - const NKikimrConfig::TAppConfig &initialCmsYamlConfig, - const THashMap &configInitInfo); + TConfigsDispatcher(const TConfigsDispatcherInitInfo& initInfo); void Bootstrap(); @@ -163,6 +159,8 @@ class TConfigsDispatcher : public TActorBootstrapped { NKikimrConfig::TAppConfig ParseYamlProtoConfig(); + TDynBitMap FilterKinds(const TDynBitMap& in); + void Handle(NMon::TEvHttpInfo::TPtr &ev); void Handle(TEvInterconnect::TEvNodesInfo::TPtr &ev); void Handle(TEvConsole::TEvConfigSubscriptionNotification::TPtr &ev); @@ -230,12 +228,11 @@ class TConfigsDispatcher : public TActorBootstrapped { private: - TMap Labels; - const NKikimrConfig::TAppConfig InitialConfig; + const TMap Labels; + const std::variant ItemsServeRules; + const NKikimrConfig::TAppConfig BaseConfig; NKikimrConfig::TAppConfig CurrentConfig; - const NKikimrConfig::TAppConfig InitialCmsConfig; - const NKikimrConfig::TAppConfig InitialCmsYamlConfig; - const THashMap ConfigInitInfo; + const std::optional DebugInfo; ui64 NextRequestCookie; TVector HttpRequests; TActorId CommonSubscriptionClient; @@ -255,21 +252,14 @@ class TConfigsDispatcher : public TActorBootstrapped { }; -TConfigsDispatcher::TConfigsDispatcher( - const NKikimrConfig::TAppConfig &config, - const TMap &labels, - const NKikimrConfig::TAppConfig &initialCmsConfig, - const NKikimrConfig::TAppConfig &initialCmsYamlConfig, - const THashMap &configInitInfo) - : Labels(labels) - , InitialConfig(config) - , CurrentConfig(config) - , InitialCmsConfig(initialCmsConfig) - , InitialCmsYamlConfig(initialCmsYamlConfig) - , ConfigInitInfo(configInitInfo) +TConfigsDispatcher::TConfigsDispatcher(const TConfigsDispatcherInitInfo& initInfo) + : Labels(initInfo.Labels) + , ItemsServeRules(initInfo.ItemsServeRules) + , BaseConfig(initInfo.InitialConfig) + , CurrentConfig(initInfo.InitialConfig) + , DebugInfo(initInfo.DebugInfo) , NextRequestCookie(Now().GetValue()) -{ -} +{} void TConfigsDispatcher::Bootstrap() { @@ -400,9 +390,12 @@ void TConfigsDispatcher::ReplyMonJson(TActorId mailbox) { response.InsertValue("yaml_config", YamlConfig); response.InsertValue("resolved_json_config", NJson::ReadJsonFastTree(ResolvedJsonConfig, true)); response.InsertValue("current_json_config", NJson::ReadJsonFastTree(NProtobufJson::Proto2Json(CurrentConfig, NYamlConfig::GetProto2JsonConfig()), true)); - response.InsertValue("initial_json_config", NJson::ReadJsonFastTree(NProtobufJson::Proto2Json(InitialConfig, NYamlConfig::GetProto2JsonConfig()), true)); - response.InsertValue("initial_cms_json_config", NJson::ReadJsonFastTree(NProtobufJson::Proto2Json(InitialCmsConfig, NYamlConfig::GetProto2JsonConfig()), true)); - response.InsertValue("initial_cms_yaml_json_config", NJson::ReadJsonFastTree(NProtobufJson::Proto2Json(InitialCmsYamlConfig, NYamlConfig::GetProto2JsonConfig()), true)); + + if (DebugInfo) { + response.InsertValue("initial_json_config", NJson::ReadJsonFastTree(NProtobufJson::Proto2Json(DebugInfo->StaticConfig, NYamlConfig::GetProto2JsonConfig()), true)); + response.InsertValue("initial_cms_json_config", NJson::ReadJsonFastTree(NProtobufJson::Proto2Json(DebugInfo->OldDynConfig, NYamlConfig::GetProto2JsonConfig()), true)); + response.InsertValue("initial_cms_yaml_json_config", NJson::ReadJsonFastTree(NProtobufJson::Proto2Json(DebugInfo->NewDynConfig, NYamlConfig::GetProto2JsonConfig()), true)); + } NJson::WriteJson(&str, &response, {}); @@ -419,6 +412,29 @@ void TConfigsDispatcher::Handle(TEvConsole::TEvConfigNotificationRequest::TPtr & Send(ev->Sender, resp.Release(), 0, ev->Cookie); } + +TDynBitMap TConfigsDispatcher::FilterKinds(const TDynBitMap& in) { + TDynBitMap out; + + if (const auto* denyList = std::get_if(&ItemsServeRules)) { + Y_FOR_EACH_BIT(kind, in) { + if (!denyList->Items.contains(kind)) { + out.Set(kind); + } + } + } else if (const auto* allowList = std::get_if(&ItemsServeRules)) { + Y_FOR_EACH_BIT(kind, in) { + if (allowList->Items.contains(kind)) { + out.Set(kind); + } + } + } else { + out = in; + } + + return out; +} + void TConfigsDispatcher::Handle(TEvInterconnect::TEvNodesInfo::TPtr &ev) { Y_UNUSED(ev); @@ -494,14 +510,14 @@ void TConfigsDispatcher::Handle(TEvInterconnect::TEvNodesInfo::TPtr &ev) str << "Coloring: \"config not set\"," << " \"config set in dynamic config\", \"config set in static config\"" << Endl; str << "
" << Endl; - NHttp::OutputRichConfigHTML(str, InitialConfig, YamlProtoConfig, CurrentConfig, DYNAMIC_KINDS, NON_YAML_KINDS, YamlConfigEnabled); + NHttp::OutputRichConfigHTML(str, BaseConfig, YamlProtoConfig, CurrentConfig, DYNAMIC_KINDS, NON_YAML_KINDS, YamlConfigEnabled); } str << "
" << Endl; COLLAPSED_REF_CONTENT("effective-startup-config", "Effective startup config") { str << "
" << Endl; str << "Some of these configs may be overwritten by dynamic ones." << Endl; str << "
" << Endl; - NHttp::OutputConfigHTML(str, InitialConfig); + NHttp::OutputConfigHTML(str, BaseConfig); } str << "
" << Endl; COLLAPSED_REF_CONTENT("effective-dynamic-config", "Effective dynamic config") { @@ -510,10 +526,10 @@ void TConfigsDispatcher::Handle(TEvInterconnect::TEvNodesInfo::TPtr &ev) str << "
" << Endl; NKikimrConfig::TAppConfig trunc; if (YamlConfigEnabled) { - ReplaceConfigItems(YamlProtoConfig, trunc, KindsToBitMap(DYNAMIC_KINDS), InitialConfig); - ReplaceConfigItems(CurrentConfig, trunc, KindsToBitMap(NON_YAML_KINDS), trunc, false); + ReplaceConfigItems(YamlProtoConfig, trunc, FilterKinds(KindsToBitMap(DYNAMIC_KINDS)), BaseConfig); + ReplaceConfigItems(CurrentConfig, trunc, FilterKinds(KindsToBitMap(NON_YAML_KINDS)), trunc, false); } else { - ReplaceConfigItems(CurrentConfig, trunc, KindsToBitMap(DYNAMIC_KINDS), InitialConfig); + ReplaceConfigItems(CurrentConfig, trunc, FilterKinds(KindsToBitMap(DYNAMIC_KINDS)), BaseConfig); } NHttp::OutputConfigHTML(str, trunc); } @@ -521,7 +537,15 @@ void TConfigsDispatcher::Handle(TEvInterconnect::TEvNodesInfo::TPtr &ev) COLLAPSED_REF_CONTENT("debug-info", "Debug info") { DIV_CLASS("tab-left") { COLLAPSED_REF_CONTENT("effective-config-debug-info", "Effective config debug info") { - NHttp::OutputConfigDebugInfoHTML(str, InitialConfig, YamlProtoConfig, CurrentConfig, ConfigInitInfo, DYNAMIC_KINDS, NON_YAML_KINDS, YamlConfigEnabled); + NHttp::OutputConfigDebugInfoHTML( + str, + BaseConfig, + YamlProtoConfig, + CurrentConfig, + {DebugInfo ? DebugInfo->InitInfo : THashMap{}}, + DYNAMIC_KINDS, + NON_YAML_KINDS, + YamlConfigEnabled); } str << "
" << Endl; COLLAPSED_REF_CONTENT("state", "State") { @@ -651,15 +675,17 @@ void TConfigsDispatcher::Handle(TEvInterconnect::TEvNodesInfo::TPtr &ev) } str << "
" << Endl; COLLAPSED_REF_CONTENT("initial-config", "Initial config") { - NHttp::OutputConfigHTML(str, InitialConfig); + NHttp::OutputConfigHTML(str, BaseConfig); } - str << "
" << Endl; - COLLAPSED_REF_CONTENT("initial-cms-config", "Initial CMS config") { - NHttp::OutputConfigHTML(str, InitialCmsConfig); - } - str << "
" << Endl; - COLLAPSED_REF_CONTENT("initial-cms-yaml-config", "Initial CMS YAML config") { - NHttp::OutputConfigHTML(str, InitialCmsYamlConfig); + if (DebugInfo) { + str << "
" << Endl; + COLLAPSED_REF_CONTENT("initial-cms-config", "Initial CMS config") { + NHttp::OutputConfigHTML(str, DebugInfo->OldDynConfig); + } + str << "
" << Endl; + COLLAPSED_REF_CONTENT("initial-cms-yaml-config", "Initial CMS YAML config") { + NHttp::OutputConfigHTML(str, DebugInfo->NewDynConfig); + } } } } @@ -742,7 +768,7 @@ void TConfigsDispatcher::Handle(TEvConsole::TEvConfigSubscriptionNotification::T bool hasAffectedKinds = false; if (subscription->Yaml && YamlConfigEnabled) { - ReplaceConfigItems(YamlProtoConfig, trunc, subscription->Kinds, InitialConfig); + ReplaceConfigItems(YamlProtoConfig, trunc, FilterKinds(subscription->Kinds), BaseConfig); } else { Y_FOR_EACH_BIT(kind, kinds) { if (affectedKinds.contains(kind)) { @@ -755,7 +781,7 @@ void TConfigsDispatcher::Handle(TEvConsole::TEvConfigSubscriptionNotification::T continue; } - ReplaceConfigItems(ev->Get()->Record.GetConfig(), trunc, kinds, InitialConfig); + ReplaceConfigItems(ev->Get()->Record.GetConfig(), trunc, FilterKinds(kinds), BaseConfig); } if (hasAffectedKinds || !CompareConfigs(subscription->CurrentConfig.Config, trunc) || CurrentStateFunc() == &TThis::StateInit) { @@ -820,9 +846,9 @@ void TConfigsDispatcher::Handle(TEvConfigsDispatcher::TEvGetConfigRequest::TPtr auto trunc = std::make_shared(); auto kinds = KindsToBitMap(ev->Get()->ConfigItemKinds); if (YamlConfigEnabled && yamlKinds) { - ReplaceConfigItems(YamlProtoConfig, *trunc, kinds, InitialConfig); + ReplaceConfigItems(YamlProtoConfig, *trunc, FilterKinds(kinds), BaseConfig); } else { - ReplaceConfigItems(CurrentConfig, *trunc, kinds, InitialConfig); + ReplaceConfigItems(CurrentConfig, *trunc, FilterKinds(kinds), BaseConfig); } resp->Config = trunc; @@ -893,9 +919,9 @@ void TConfigsDispatcher::Handle(TEvConfigsDispatcher::TEvSetConfigSubscriptionRe subscription->UpdateInProcess = MakeHolder(); NKikimrConfig::TAppConfig trunc; if (YamlConfigEnabled) { - ReplaceConfigItems(YamlProtoConfig, trunc, kinds, InitialConfig); + ReplaceConfigItems(YamlProtoConfig, trunc, FilterKinds(kinds), BaseConfig); } else { - ReplaceConfigItems(CurrentConfig, trunc, kinds, InitialConfig); + ReplaceConfigItems(CurrentConfig, trunc, FilterKinds(kinds), BaseConfig); } subscription->UpdateInProcess->Record.MutableConfig()->CopyFrom(trunc); Y_FOR_EACH_BIT(kind, kinds) { @@ -997,14 +1023,8 @@ void TConfigsDispatcher::Handle(TEvConsole::TEvGetNodeLabelsRequest::TPtr &ev) { Send(ev->Sender, Response.Release()); } -IActor *CreateConfigsDispatcher( - const NKikimrConfig::TAppConfig &config, - const TMap &labels, - const NKikimrConfig::TAppConfig &initialCmsConfig, - const NKikimrConfig::TAppConfig &initialCmsYamlConfig, - const THashMap &configInitInfo) -{ - return new TConfigsDispatcher(config, labels, initialCmsConfig, initialCmsYamlConfig, configInitInfo); +IActor *CreateConfigsDispatcher(const TConfigsDispatcherInitInfo& initInfo) { + return new TConfigsDispatcher(initInfo); } } // namespace NKikimr::NConsole diff --git a/ydb/core/cms/console/configs_dispatcher.h b/ydb/core/cms/console/configs_dispatcher.h index b771a8a72529..e3034f932522 100644 --- a/ydb/core/cms/console/configs_dispatcher.h +++ b/ydb/core/cms/console/configs_dispatcher.h @@ -5,6 +5,7 @@ #include #include +#include namespace NKikimr::NConsole { @@ -107,17 +108,34 @@ struct TEvConfigsDispatcher { }; }; +struct TDenyList { + std::set Items; +}; + +struct TAllowList { + std::set Items; +}; + +struct TDebugInfo { + NKikimrConfig::TAppConfig StaticConfig; + NKikimrConfig::TAppConfig OldDynConfig; + NKikimrConfig::TAppConfig NewDynConfig; + THashMap InitInfo; +}; + +struct TConfigsDispatcherInitInfo { + NKikimrConfig::TAppConfig InitialConfig; + TMap Labels; + std::variant ItemsServeRules; + std::optional DebugInfo; +}; + /** * Initial config is used to initilize Configs Dispatcher. All received configs * are compared to the current one and notifications are not sent to local * subscribers if there is no config modification detected. */ -IActor *CreateConfigsDispatcher( - const NKikimrConfig::TAppConfig &config, - const TMap &labels, - const NKikimrConfig::TAppConfig &initialCmsConfig = {}, - const NKikimrConfig::TAppConfig &initialCmsYamlConfig = {}, - const THashMap &configInitInfo = {}); +IActor *CreateConfigsDispatcher(const TConfigsDispatcherInitInfo& initInfo); inline TActorId MakeConfigsDispatcherID(ui32 node = 0) { char x[12] = { 'c', 'o', 'n', 'f', 'i', 'g', 's', 'd', 'i', 's', 'p' }; diff --git a/ydb/core/cms/console/jaeger_tracing_configurator.cpp b/ydb/core/cms/console/jaeger_tracing_configurator.cpp new file mode 100644 index 000000000000..b20fa0429eb5 --- /dev/null +++ b/ydb/core/cms/console/jaeger_tracing_configurator.cpp @@ -0,0 +1,221 @@ +#include "jaeger_tracing_configurator.h" + +#include "configs_dispatcher.h" +#include "console.h" + +#include +#include +#include + +namespace NKikimr::NConsole { + +using namespace NJaegerTracing; + +class TJaegerTracingConfigurator : public TActorBootstrapped { +public: + static constexpr NKikimrServices::TActivity::EType ActorActivityType() { + return NKikimrServices::TActivity::JAEGER_TRACING_CONFIGURATOR; + } + + TJaegerTracingConfigurator(TSamplingThrottlingConfigurator tracingConfigurator, + NKikimrConfig::TTracingConfig cfg); + + void Bootstrap(const TActorContext& ctx); + +private: + void Handle(TEvConsole::TEvConfigNotificationRequest::TPtr& ev, const TActorContext& ctx); + + STRICT_STFUNC(StateWork, + HFunc(TEvConsole::TEvConfigNotificationRequest, Handle) + IgnoreFunc(TEvConfigsDispatcher::TEvSetConfigSubscriptionResponse) + ) + + void ApplyConfigs(const NKikimrConfig::TTracingConfig& cfg); + static TVector GetRequestTypes(const NKikimrConfig::TTracingConfig::TSelectors& selectors); + static TMaybe GetDatabase(const NKikimrConfig::TTracingConfig::TSelectors& selectors); + static TSettings> GetSettings(const NKikimrConfig::TTracingConfig& cfg); + + TSamplingThrottlingConfigurator TracingConfigurator; + NKikimrConfig::TTracingConfig initialConfig; +}; + +TJaegerTracingConfigurator::TJaegerTracingConfigurator( + TSamplingThrottlingConfigurator tracingConfigurator, + NKikimrConfig::TTracingConfig cfg) + : TracingConfigurator(std::move(tracingConfigurator)) + , initialConfig(std::move(cfg)) +{} + +void TJaegerTracingConfigurator::Bootstrap(const TActorContext& ctx) { + LOG_DEBUG_S(ctx, NKikimrServices::CMS_CONFIGS, "TJaegerTracingConfigurator: Bootstrap"); + Become(&TThis::StateWork); + + ApplyConfigs(initialConfig); + + LOG_DEBUG_S(ctx, NKikimrServices::CMS_CONFIGS, "TJaegerTracingConfigurator: subscribing to config updates"); + ui32 item = static_cast(NKikimrConsole::TConfigItem::TracingConfigItem); + ctx.Send(MakeConfigsDispatcherID(SelfId().NodeId()), + new TEvConfigsDispatcher::TEvSetConfigSubscriptionRequest(item)); +} + +void TJaegerTracingConfigurator::Handle(TEvConsole::TEvConfigNotificationRequest::TPtr& ev, const TActorContext& ctx) { + auto& rec = ev->Get()->Record; + + LOG_INFO_S(ctx, NKikimrServices::CMS_CONFIGS, "TJaegerTracingConfigurator: got new config: " << rec.GetConfig().ShortDebugString()); + + ApplyConfigs(rec.GetConfig().GetTracingConfig()); + + auto resp = MakeHolder(rec); + LOG_TRACE_S(ctx, NKikimrServices::CMS_CONFIGS, + "TJaegerTracingConfigurator: Send TEvConfigNotificationResponse"); + ctx.Send(ev->Sender, resp.Release(), 0, ev->Cookie); +} + +void TJaegerTracingConfigurator::ApplyConfigs(const NKikimrConfig::TTracingConfig& cfg) { + auto settings = GetSettings(cfg); + return TracingConfigurator.UpdateSettings(std::move(settings)); +} + +TVector TJaegerTracingConfigurator::GetRequestTypes(const NKikimrConfig::TTracingConfig::TSelectors& selectors) { + TVector requestTypes; + bool hasErrors = false; + for (const auto& requestType: selectors.GetRequestTypes()) { + if (auto it = NameToRequestType.FindPtr(requestType)) { + requestTypes.push_back(*it); + } else { + ALOG_ERROR(NKikimrServices::CMS_CONFIGS, "Failed to parse request type \"" << requestType << "\""); + hasErrors = true; + } + } + + if (hasErrors) { + return {}; + } + if (requestTypes.empty()) { + requestTypes.push_back(ERequestType::UNSPECIFIED); + } + return requestTypes; +} + +TMaybe TJaegerTracingConfigurator::GetDatabase(const NKikimrConfig::TTracingConfig::TSelectors& selectors) { + if (selectors.HasDatabase()) { + return selectors.GetDatabase(); + } + return NothingObject; +} + +TSettings> TJaegerTracingConfigurator::GetSettings(const NKikimrConfig::TTracingConfig& cfg) { + TSettings> settings; + + size_t tag = 0; + + for (const auto& samplingRule : cfg.GetSampling()) { + const auto& scope = samplingRule.GetScope(); + + auto requestTypes = GetRequestTypes(scope); + if (requestTypes.empty()) { + ALOG_ERROR(NKikimrServices::CMS_CONFIGS, "failed to parse request type in the rule " + << samplingRule.ShortDebugString() << ". Skipping the rule"); + continue; + } + + if (!samplingRule.HasLevel() || !samplingRule.HasFraction() || !samplingRule.HasMaxTracesPerMinute()) { + ALOG_ERROR(NKikimrServices::CMS_CONFIGS, "missing required fields in rule " << samplingRule.ShortDebugString() + << " (required fields are: level, fraction, max_traces_per_minute). Skipping the rule"); + continue; + } + if (samplingRule.GetMaxTracesPerMinute() == 0) { + ALOG_ERROR(NKikimrServices::CMS_CONFIGS, "max_traces_per_minute should never be zero. Found in rule " << samplingRule.GetMaxTracesPerMinute() + << ". Skipping the rule"); + continue; + } + + ui64 level = samplingRule.GetLevel(); + double fraction = samplingRule.GetFraction(); + if (level > 15) { + ALOG_ERROR(NKikimrServices::CMS_CONFIGS, "sampling level exceeds maximum allowed value (" << level + << " provided, maximum is 15). Lowering the level"); + level = 15; + } + if (fraction < 0 || fraction > 1) { + ALOG_ERROR(NKikimrServices::CMS_CONFIGS, "provided fraction " << fraction + << " violated range [0; 1]. Clamping it to the range"); + fraction = std::min(1.0, std::max(0.0, fraction)); + } + + TSamplingRule> rule { + .Level = static_cast(level), + .Sampler = fraction, + .Throttler = TWithTag { + .Value = TThrottlingSettings { + .MaxTracesPerMinute = samplingRule.GetMaxTracesPerMinute(), + .MaxTracesBurst = samplingRule.GetMaxTracesBurst(), + }, + .Tag = tag++, + }, + }; + + for (auto requestType: requestTypes) { + auto& requestTypeRules = settings.SamplingRules[static_cast(requestType)]; + auto database = GetDatabase(scope); + if (database) { + requestTypeRules.DatabaseRules[*database].push_back(rule); + } else { + requestTypeRules.Global.push_back(rule); + } + } + } + + for (const auto& throttlingRule : cfg.GetExternalThrottling()) { + const auto& scope = throttlingRule.GetScope(); + + auto requestTypes = GetRequestTypes(throttlingRule.GetScope()); + if (requestTypes.empty()) { + ALOG_ERROR(NKikimrServices::CMS_CONFIGS, "failed to parse request type in rule " + << throttlingRule.ShortDebugString() << ". Skipping the rule"); + continue; + } + + if (!throttlingRule.HasMaxTracesPerMinute()) { + ALOG_ERROR(NKikimrServices::CMS_CONFIGS, "missing required field max_traces_per_minute in rule " + << throttlingRule.ShortDebugString() << ". Skipping the rule"); + continue; + } + if (throttlingRule.GetMaxTracesPerMinute() == 0) { + ALOG_ERROR(NKikimrServices::CMS_CONFIGS, "max_traces_per_minute should never be zero. Found in rule " << throttlingRule.GetMaxTracesPerMinute() + << ". Skipping the rule"); + continue; + } + + ui64 maxRatePerMinute = throttlingRule.GetMaxTracesPerMinute(); + ui64 maxBurst = throttlingRule.GetMaxTracesBurst(); + TExternalThrottlingRule> rule { + .Throttler = TWithTag { + .Value = TThrottlingSettings { + .MaxTracesPerMinute = maxRatePerMinute, + .MaxTracesBurst = maxBurst, + }, + .Tag = tag++, + } + }; + + for (auto requestType : requestTypes) { + auto& requestTypeRules = settings.ExternalThrottlingRules[static_cast(requestType)]; + auto database = GetDatabase(scope); + if (database) { + requestTypeRules.DatabaseRules[*database].push_back(rule); + } else { + requestTypeRules.Global.push_back(rule); + } + } + } + + return settings; +} + +IActor* CreateJaegerTracingConfigurator(TSamplingThrottlingConfigurator tracingConfigurator, + NKikimrConfig::TTracingConfig cfg) { + return new TJaegerTracingConfigurator(std::move(tracingConfigurator), std::move(cfg)); +} + +} // namespace NKikimr::NConsole diff --git a/ydb/core/cms/console/jaeger_tracing_configurator.h b/ydb/core/cms/console/jaeger_tracing_configurator.h new file mode 100644 index 000000000000..54b22bd0741c --- /dev/null +++ b/ydb/core/cms/console/jaeger_tracing_configurator.h @@ -0,0 +1,13 @@ +#pragma once + +#include "defs.h" + +#include +#include + +namespace NKikimr::NConsole { + +IActor* CreateJaegerTracingConfigurator(NJaegerTracing::TSamplingThrottlingConfigurator tracingConfigurator, + NKikimrConfig::TTracingConfig cfg); + +} // namespace NKikimr::NConsole diff --git a/ydb/core/cms/console/jaeger_tracing_configurator_ut.cpp b/ydb/core/cms/console/jaeger_tracing_configurator_ut.cpp new file mode 100644 index 000000000000..8867c49b4522 --- /dev/null +++ b/ydb/core/cms/console/jaeger_tracing_configurator_ut.cpp @@ -0,0 +1,816 @@ +#include "ut_helpers.h" +#include "jaeger_tracing_configurator.h" + +#include + +#include +#include + +#include + +namespace NKikimr { + +using namespace NConsole; +using namespace NUT; +using namespace NJaegerTracing; + +namespace { + +TTenantTestConfig::TTenantPoolConfig StaticTenantPoolConfig() { + TTenantTestConfig::TTenantPoolConfig res = { + // Static slots {tenant, {cpu, memory, network}} + {{ {DOMAIN1_NAME, {1, 1, 1}} }}, + // NodeType + "type1" + }; + return res; +} + +TTenantTestConfig DefaultConsoleTestConfig() { + TTenantTestConfig res = { + // Domains {name, schemeshard {{ subdomain_names }}} + {{ {DOMAIN1_NAME, SCHEME_SHARD1_ID, TVector()} }}, + // HiveId + HIVE_ID, + // FakeTenantSlotBroker + true, + // FakeSchemeShard + false, + // CreateConsole + true, + // Nodes {tenant_pool_config, data_center} + {{ + {StaticTenantPoolConfig()}, + }}, + // DataCenterCount + 1, + // CreateConfigsDispatcher + true + }; + return res; +} + +void InitJaegerTracingConfigurator( + TTenantTestRuntime& runtime, + TSamplingThrottlingConfigurator configurator, + const NKikimrConfig::TTracingConfig& initCfg +) { + runtime.Register(CreateJaegerTracingConfigurator(std::move(configurator), initCfg)); + + TDispatchOptions options; + options.FinalEvents.emplace_back(TEvConfigsDispatcher::EvSetConfigSubscriptionResponse, 1); + runtime.DispatchEvents(std::move(options)); +} + +void WaitForUpdate(TTenantTestRuntime& runtime) { + TDispatchOptions options; + options.FinalEvents.emplace_back(TEvConsole::EvConfigNotificationResponse, 1); + runtime.DispatchEvents(std::move(options)); +} + +void ConfigureAndWaitUpdate(TTenantTestRuntime& runtime, const NKikimrConfig::TTracingConfig& cfg, ui32 order) { + auto configItem = MakeConfigItem(NKikimrConsole::TConfigItem::TracingConfigItem, + NKikimrConfig::TAppConfig(), {}, {}, "", "", order, + NKikimrConsole::TConfigItem::OVERWRITE, ""); + configItem.MutableConfig()->MutableTracingConfig()->CopyFrom(cfg); + + auto* event = new TEvConsole::TEvConfigureRequest; + event->Record.AddActions()->CopyFrom(MakeAddAction(configItem)); + + runtime.SendToConsole(event); + WaitForUpdate(runtime); +} + +auto& RandomChoice(auto& Container) { + return Container[RandomNumber() % Container.size()]; +} + +class TTracingControls { +public: + enum ETraceState { + OFF, + SAMPLED, + EXTERNAL, + }; + + TTracingControls(TVector> controls) + : Controls(std::move(controls)) + {} + + std::pair HandleTracing(bool isExternal, TRequestDiscriminator discriminator) { + auto& control = RandomChoice(Controls); + + NWilson::TTraceId traceId; + if (isExternal) { + traceId = NWilson::TTraceId::NewTraceId(TComponentTracingLevels::ProductionVerbose, Max()); + } + auto before = traceId.Clone(); + + control->HandleTracing(traceId, discriminator); + if (!traceId) { + return {OFF, 0}; + } + + ETraceState state; + if (traceId == before) { + state = ETraceState::EXTERNAL; + } else { + state = ETraceState::SAMPLED; + } + + return {state, traceId.GetVerbosity()}; + } + +private: + TVector> Controls; +}; + +std::pair + CreateSamplingThrottlingConfigurator(size_t n, TIntrusivePtr timeProvider) { + auto randomProvider = CreateDefaultRandomProvider(); + TSamplingThrottlingConfigurator configurator(timeProvider, randomProvider); + TVector> controls; + for (size_t i = 0; i < n; ++i) { + controls.emplace_back(configurator.GetControl()); + } + + return {TTracingControls(std::move(controls)), std::move(configurator)}; +} + +struct TTimeProviderMock : public ITimeProvider { + TTimeProviderMock(TInstant now) : Now_(now) {} + + TInstant Now() override { + return Now_; + } + + void Advance(TDuration delta) { + Now_ += delta; + } + + TInstant Now_; +}; + +} // namespace anonymous + +Y_UNIT_TEST_SUITE(TJaegerTracingConfiguratorTests) { + Y_UNIT_TEST(DefaultConfig) { + TTenantTestRuntime runtime(DefaultConsoleTestConfig()); + auto timeProvider = MakeIntrusive(TInstant::Now()); + auto [controls, configurator] = CreateSamplingThrottlingConfigurator(10, timeProvider); + InitJaegerTracingConfigurator(runtime, std::move(configurator), {}); + + for (size_t i = 0; i < 100; ++i) { + auto [state, _] = controls.HandleTracing(false, {}); + UNIT_ASSERT_EQUAL(state, TTracingControls::OFF); // No requests are sampled + } + + for (size_t i = 0; i < 100; ++i) { + auto [state, _] = controls.HandleTracing(true, {}); + UNIT_ASSERT_EQUAL(state, TTracingControls::OFF); // No request with trace-id are traced + } + WaitForUpdate(runtime); // Initial update + } + + Y_UNIT_TEST(GlobalRules) { + TTenantTestRuntime runtime(DefaultConsoleTestConfig()); + auto timeProvider = MakeIntrusive(TInstant::Now()); + auto [controls, configurator] = CreateSamplingThrottlingConfigurator(10, timeProvider); + NKikimrConfig::TTracingConfig cfg; + { + auto rule = cfg.AddExternalThrottling(); + rule->SetMaxTracesBurst(0); + rule->SetMaxTracesPerMinute(60); + } + { + auto rule = cfg.AddSampling(); + rule->SetFraction(1. / 3); + rule->SetLevel(5); + rule->SetMaxTracesBurst(10); + rule->SetMaxTracesPerMinute(30); + } + InitJaegerTracingConfigurator(runtime, std::move(configurator), cfg); + + std::array discriminators{ + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_READROWS, + .Database = "/Root/test3", + }, + TRequestDiscriminator{ + .RequestType = ERequestType::KEYVALUE_READ, + }, + TRequestDiscriminator{ + .Database = "/Root/test2", + }, + TRequestDiscriminator{}, + }; + + { + size_t sampled = 0; + size_t traced = 0; + for (size_t i = 0; i < 1000; ++i) { + auto [state, level] = controls.HandleTracing(true, RandomChoice(discriminators)); + + switch (state) { + case TTracingControls::OFF: + break; + case TTracingControls::SAMPLED: + UNIT_ASSERT_EQUAL(level, 5); + ++sampled; + break; + case TTracingControls::EXTERNAL: + ++traced; + break; + } + timeProvider->Advance(TDuration::MilliSeconds(250)); + } + UNIT_ASSERT_EQUAL(traced, 250); + UNIT_ASSERT(sampled >= 110 && sampled <= 135); + } + timeProvider->Advance(TDuration::Minutes(1)); + + { + for (size_t i = 0; i < 100; ++i) { + auto [state, _] = controls.HandleTracing(true, RandomChoice(discriminators)); + UNIT_ASSERT_EQUAL(state, TTracingControls::EXTERNAL); + timeProvider->Advance(TDuration::Seconds(1)); + } + } + timeProvider->Advance(TDuration::Minutes(1)); + + { + size_t sampled = 0; + for (size_t i = 0; i < 750; ++i) { + auto [state, level] = controls.HandleTracing(false, RandomChoice(discriminators)); + UNIT_ASSERT_UNEQUAL(state, TTracingControls::EXTERNAL); + if (state == TTracingControls::SAMPLED) { + ++sampled; + UNIT_ASSERT_EQUAL(level, 5); + } + timeProvider->Advance(TDuration::Seconds(1)); + } + UNIT_ASSERT(sampled >= 210 && sampled <= 300); + } + } + + Y_UNIT_TEST(RequestTypeThrottler) { + TTenantTestRuntime runtime(DefaultConsoleTestConfig()); + auto timeProvider = MakeIntrusive(TInstant::Now()); + auto [controls, configurator] = CreateSamplingThrottlingConfigurator(10, timeProvider); + NKikimrConfig::TTracingConfig cfg; + { + auto rule = cfg.AddExternalThrottling(); + rule->SetMaxTracesBurst(5); + rule->SetMaxTracesPerMinute(120); + rule->MutableScope()->AddRequestTypes()->assign("KeyValue.ExecuteTransaction"); + } + InitJaegerTracingConfigurator(runtime, std::move(configurator), cfg); + + for (size_t i = 0; i < 100; ++i) { + auto [state, _] = controls.HandleTracing(false, {}); + UNIT_ASSERT_EQUAL(state, TTracingControls::OFF); // No requests are sampled + } + + UNIT_ASSERT_EQUAL(controls.HandleTracing(true, {}).first, TTracingControls::OFF); // No request type + UNIT_ASSERT_EQUAL(controls.HandleTracing(true, {.RequestType = ERequestType::KEYVALUE_READ}).first, + TTracingControls::OFF); // Wrong request type + std::array executeTransactionDiscriminators{ + TRequestDiscriminator{ + .RequestType = ERequestType::KEYVALUE_EXECUTETRANSACTION, + }, + TRequestDiscriminator{ + .RequestType = ERequestType::KEYVALUE_EXECUTETRANSACTION, + .Database = "/Root/test", + } + }; + + for (size_t i = 0; i < 6; ++i) { + UNIT_ASSERT_EQUAL( + controls.HandleTracing(true, RandomChoice(executeTransactionDiscriminators)).first, + TTracingControls::EXTERNAL); + } + UNIT_ASSERT_EQUAL( + controls.HandleTracing(true, RandomChoice(executeTransactionDiscriminators)).first, + TTracingControls::OFF); + timeProvider->Advance(TDuration::MilliSeconds(1500)); + for (size_t i = 0; i < 3; ++i) { + UNIT_ASSERT_EQUAL( + controls.HandleTracing(true, RandomChoice(executeTransactionDiscriminators)).first, + TTracingControls::EXTERNAL); + } + UNIT_ASSERT_EQUAL( + controls.HandleTracing(true, RandomChoice(executeTransactionDiscriminators)).first, + TTracingControls::OFF); + + WaitForUpdate(runtime); // Initial update + cfg.MutableExternalThrottling(0)->SetMaxTracesPerMinute(10); + cfg.MutableExternalThrottling(0)->SetMaxTracesBurst(2); + ConfigureAndWaitUpdate(runtime, cfg, 1); + + for (size_t i = 0; i < 3; ++i) { + UNIT_ASSERT_EQUAL( + controls.HandleTracing(true, RandomChoice(executeTransactionDiscriminators)).first, + TTracingControls::EXTERNAL); + } + auto [state, _] = controls.HandleTracing(true, RandomChoice(executeTransactionDiscriminators)); + UNIT_ASSERT_EQUAL( + state, + TTracingControls::OFF); + + timeProvider->Advance(TDuration::Seconds(12)); + for (size_t i = 0; i < 2; ++i) { + UNIT_ASSERT_EQUAL( + controls.HandleTracing(true, RandomChoice(executeTransactionDiscriminators)).first, + TTracingControls::EXTERNAL); + } + UNIT_ASSERT_EQUAL( + controls.HandleTracing(true, RandomChoice(executeTransactionDiscriminators)).first, + TTracingControls::OFF); + + timeProvider->Advance(TDuration::Seconds(60)); + for (size_t i = 0; i < 3; ++i) { + UNIT_ASSERT_EQUAL( + controls.HandleTracing(true, RandomChoice(executeTransactionDiscriminators)).first, + TTracingControls::EXTERNAL); + } + UNIT_ASSERT_EQUAL( + controls.HandleTracing(true, RandomChoice(executeTransactionDiscriminators)).first, + TTracingControls::OFF); + } + + Y_UNIT_TEST(RequestTypeSampler) { + TTenantTestRuntime runtime(DefaultConsoleTestConfig()); + auto timeProvider = MakeIntrusive(TInstant::Now()); + auto [controls, configurator] = CreateSamplingThrottlingConfigurator(10, timeProvider); + NKikimrConfig::TTracingConfig cfg; + { + auto rule = cfg.AddSampling(); + rule->SetMaxTracesBurst(5); + rule->SetMaxTracesPerMinute(120); + rule->SetFraction(0.5); + rule->SetLevel(10); + rule->MutableScope()->AddRequestTypes()->assign("KeyValue.ExecuteTransaction"); + } + InitJaegerTracingConfigurator(runtime, std::move(configurator), cfg); + + for (size_t i = 0; i < 1000; ++i) { + auto [state, level] = controls.HandleTracing(false, {}); + UNIT_ASSERT_EQUAL(state, TTracingControls::OFF); + } + + for (size_t i = 0; i < 10; ++i) { + UNIT_ASSERT_EQUAL(controls.HandleTracing(false, {}).first, TTracingControls::OFF); // No request type + UNIT_ASSERT_EQUAL(controls.HandleTracing(false, {.RequestType = ERequestType::KEYVALUE_READ}).first, + TTracingControls::OFF); // Wrong request type + } + std::array executeTransactionDiscriminators{ + TRequestDiscriminator { + .RequestType = ERequestType::KEYVALUE_EXECUTETRANSACTION, + }, + TRequestDiscriminator { + .RequestType = ERequestType::KEYVALUE_EXECUTETRANSACTION, + .Database = "/Root/test", + } + }; + + { + uint64_t sampled = 0; + for (size_t i = 0; i < 1000; ++i) { + auto [state, level] = controls.HandleTracing(false, RandomChoice(executeTransactionDiscriminators)); + UNIT_ASSERT_UNEQUAL(state, TTracingControls::EXTERNAL); + if (state == TTracingControls::SAMPLED) { + ++sampled; + UNIT_ASSERT_EQUAL(level, 10); + timeProvider->Advance(TDuration::MilliSeconds(500)); + } + } + UNIT_ASSERT(sampled >= 400 && sampled <= 600); + } + + { + uint64_t sampled = 0; + for (size_t i = 0; i < 1000; ++i) { + auto [state, level] = controls.HandleTracing(false, RandomChoice(executeTransactionDiscriminators)); + UNIT_ASSERT_UNEQUAL(state, TTracingControls::EXTERNAL); + if (state == TTracingControls::SAMPLED) { + ++sampled; + UNIT_ASSERT_EQUAL(level, 10); + } + timeProvider->Advance(TDuration::MilliSeconds(125)); + } + UNIT_ASSERT(sampled >= 190 && sampled <= 260); + } + for (size_t i = 0; i < 50; ++i) { + controls.HandleTracing(false, RandomChoice(executeTransactionDiscriminators)); + } + for (size_t i = 0; i < 50; ++i) { + UNIT_ASSERT_EQUAL(controls.HandleTracing(false, RandomChoice(executeTransactionDiscriminators)).first, TTracingControls::OFF); + } + timeProvider->Advance(TDuration::Seconds(10)); + + WaitForUpdate(runtime); // Initial update + { + auto& rule = *cfg.MutableSampling(0); + rule.SetMaxTracesPerMinute(10); + rule.SetMaxTracesBurst(2); + rule.SetLevel(9); + rule.SetFraction(0.25); + rule.MutableScope()->MutableRequestTypes(0)->assign("KeyValue.ReadRange"); + } + ConfigureAndWaitUpdate(runtime, cfg, 1); + + std::array readRangeDiscriminators{ + TRequestDiscriminator{ + .RequestType = ERequestType::KEYVALUE_READRANGE, + }, + TRequestDiscriminator{ + .RequestType = ERequestType::KEYVALUE_READRANGE, + .Database = "/Root/test2", + } + }; + + for (size_t i = 0; i < 20; ++i) { + UNIT_ASSERT_EQUAL(controls.HandleTracing(false, RandomChoice(executeTransactionDiscriminators)).first, TTracingControls::OFF); + } + { + uint64_t sampled = 0; + for (size_t i = 0; i < 1000; ++i) { + auto [state, level] = controls.HandleTracing(false, RandomChoice(readRangeDiscriminators)); + UNIT_ASSERT_UNEQUAL(state, TTracingControls::EXTERNAL); + if (state == TTracingControls::SAMPLED) { + ++sampled; + UNIT_ASSERT_EQUAL(level, 9); + } + timeProvider->Advance(TDuration::Seconds(6)); + } + UNIT_ASSERT(sampled >= 190 && sampled <= 310); + } + } + + Y_UNIT_TEST(SamplingSameScope) { + TTenantTestRuntime runtime(DefaultConsoleTestConfig()); + auto timeProvider = MakeIntrusive(TInstant::Now()); + auto [controls, configurator] = CreateSamplingThrottlingConfigurator(10, timeProvider); + NKikimrConfig::TTracingConfig cfg; + { + auto rule = cfg.AddSampling(); + rule->SetMaxTracesBurst(10); + rule->SetMaxTracesPerMinute(120); + rule->SetFraction(0.5); + rule->SetLevel(8); + } + { + auto rule = cfg.AddSampling(); + rule->SetMaxTracesBurst(10); + rule->SetMaxTracesPerMinute(60); + rule->SetFraction(1. / 3); + rule->SetLevel(10); + } + InitJaegerTracingConfigurator(runtime, std::move(configurator), cfg); + + { + size_t level8 = 0; + size_t level10 = 0; + for (size_t i = 0; i < 1500; ++i) { + auto [state, level] = controls.HandleTracing(false, {}); + UNIT_ASSERT_UNEQUAL(state, TTracingControls::EXTERNAL); + if (state == TTracingControls::SAMPLED) { + UNIT_ASSERT(level == 8 || level == 10); + if (level == 8) { + ++level8; + } else { + ++level10; + } + } + timeProvider->Advance(TDuration::Seconds(1)); + } + UNIT_ASSERT(level8 >= 450 && level8 <= 570); + UNIT_ASSERT(level10 >= 450 && level10 <= 570); + } + timeProvider->Advance(TDuration::Minutes(1)); + + { + size_t level8 = 0; + size_t level10 = 0; + for (size_t i = 0; i < 1500; ++i) { + auto [state, level] = controls.HandleTracing(false, {}); + UNIT_ASSERT_UNEQUAL(state, TTracingControls::EXTERNAL); + if (state == TTracingControls::SAMPLED) { + UNIT_ASSERT(level == 8 || level == 10); + if (level == 8) { + ++level8; + } else { + ++level10; + } + } + timeProvider->Advance(TDuration::MilliSeconds(250)); + } + UNIT_ASSERT(level8 >= 470 && level8 <= 760); + UNIT_ASSERT(level10 >= 340 && level10 <= 385); + } + } + + Y_UNIT_TEST(ThrottlingByDb) { + TTenantTestRuntime runtime(DefaultConsoleTestConfig()); + auto timeProvider = MakeIntrusive(TInstant::Now()); + auto [controls, configurator] = CreateSamplingThrottlingConfigurator(10, timeProvider); + NKikimrConfig::TTracingConfig cfg; + { + auto rule = cfg.AddExternalThrottling(); + rule->SetMaxTracesBurst(10); + rule->SetMaxTracesPerMinute(60); + rule->MutableScope()->MutableDatabase()->assign("/Root/db1"); + } + InitJaegerTracingConfigurator(runtime, std::move(configurator), cfg); + + std::array discriminators{ + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_READROWS, + .Database = "/Root/db1", + }, + TRequestDiscriminator{ + .Database = "/Root/db1", + }, + }; + + { + size_t traced = 0; + for (size_t i = 0; i < 100; ++i) { + auto [state, _] = controls.HandleTracing(true, RandomChoice(discriminators)); + UNIT_ASSERT_UNEQUAL(state, TTracingControls::SAMPLED); + if (state == TTracingControls::EXTERNAL) { + ++traced; + } + timeProvider->Advance(TDuration::Seconds(1)); + } + UNIT_ASSERT_EQUAL(traced, 100); + + for (size_t i = 0; i < 12; ++i) { + auto [state, _] = controls.HandleTracing(true, RandomChoice(discriminators)); + UNIT_ASSERT_UNEQUAL(state, TTracingControls::SAMPLED); + if (state == TTracingControls::EXTERNAL) { + ++traced; + } + } + UNIT_ASSERT_EQUAL(traced, 111); + } + + cfg.MutableExternalThrottling(0)->MutableScope()->AddRequestTypes()->assign("Table.ReadRows"); + WaitForUpdate(runtime); // Initial update + ConfigureAndWaitUpdate(runtime, cfg, 1); + timeProvider->Advance(TDuration::Minutes(1)); + + { + size_t traced = 0; + for (size_t i = 0; i < 12; ++i) { + auto [state, _] = controls.HandleTracing(true, discriminators[0]); + UNIT_ASSERT_UNEQUAL(state, TTracingControls::SAMPLED); + if (state == TTracingControls::EXTERNAL) { + ++traced; + } + } + UNIT_ASSERT_EQUAL(traced, 11); + timeProvider->Advance(TDuration::Minutes(1)); + + std::array notMatchingDiscriminators{ + discriminators[1], + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_DROPTABLE, + .Database = "/Root/db1", + }, + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_READROWS, + .Database = "/Root/db2", + }, + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_READROWS, + }, + TRequestDiscriminator{ + .Database = "/Root/db1", + }, + TRequestDiscriminator{}, + }; + + for (auto& discriminator : notMatchingDiscriminators) { + UNIT_ASSERT_EQUAL(controls.HandleTracing(true, discriminator).first, TTracingControls::OFF); + timeProvider->Advance(TDuration::Seconds(1)); + } + } + } + + Y_UNIT_TEST(SamplingByDb) { + TTenantTestRuntime runtime(DefaultConsoleTestConfig()); + auto timeProvider = MakeIntrusive(TInstant::Now()); + auto [controls, configurator] = CreateSamplingThrottlingConfigurator(10, timeProvider); + NKikimrConfig::TTracingConfig cfg; + { + auto rule = cfg.AddSampling(); + rule->SetMaxTracesBurst(10); + rule->SetMaxTracesPerMinute(60); + rule->SetLevel(0); + rule->SetFraction(0.5); + rule->MutableScope()->MutableDatabase()->assign("/Root/db1"); + } + InitJaegerTracingConfigurator(runtime, std::move(configurator), cfg); + + std::array discriminators{ + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_READROWS, + .Database = "/Root/db1", + }, + TRequestDiscriminator{ + .Database = "/Root/db1", + }, + }; + + { + size_t sampled = 0; + for (size_t i = 0; i < 1000; ++i) { + auto [state, level] = controls.HandleTracing(false, RandomChoice(discriminators)); + UNIT_ASSERT_UNEQUAL(state, TTracingControls::EXTERNAL); + if (state == TTracingControls::SAMPLED) { + UNIT_ASSERT_EQUAL(level, 0); + ++sampled; + } + timeProvider->Advance(TDuration::Seconds(1)); + } + UNIT_ASSERT(sampled >= 400 && sampled <= 600); + + } + { + size_t sampled = 0; + for (size_t i = 0; i < 60; ++i) { + auto [state, level] = controls.HandleTracing(false, RandomChoice(discriminators)); + UNIT_ASSERT_UNEQUAL(state, TTracingControls::EXTERNAL); + if (state == TTracingControls::SAMPLED) { + UNIT_ASSERT_EQUAL(level, 0); + ++sampled; + } + } + UNIT_ASSERT_EQUAL(sampled, 11); + } + + cfg.MutableSampling(0)->MutableScope()->AddRequestTypes()->assign("Table.ReadRows"); + WaitForUpdate(runtime); // Initial update + ConfigureAndWaitUpdate(runtime, cfg, 1); + timeProvider->Advance(TDuration::Minutes(1)); + + { + size_t sampled = 0; + for (size_t i = 0; i < 1000; ++i) { + auto [state, level] = controls.HandleTracing(false, discriminators[0]); + UNIT_ASSERT_UNEQUAL(state, TTracingControls::EXTERNAL); + if (state == TTracingControls::SAMPLED) { + UNIT_ASSERT_EQUAL(level, 0); + ++sampled; + } + timeProvider->Advance(TDuration::Seconds(1)); + } + UNIT_ASSERT(sampled >= 400 && sampled <= 600); + timeProvider->Advance(TDuration::Minutes(1)); + + std::array notMatchingDiscriminators{ + discriminators[1], + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_DROPTABLE, + .Database = "/Root/db1", + }, + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_READROWS, + .Database = "/Root/db2", + }, + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_READROWS, + }, + TRequestDiscriminator{ + .Database = "/Root/db1", + }, + TRequestDiscriminator{}, + }; + + for (size_t i = 0; i < 10; ++i) { + for (auto& discriminator : notMatchingDiscriminators) { + UNIT_ASSERT_EQUAL(controls.HandleTracing(false, discriminator).first, TTracingControls::OFF); + timeProvider->Advance(TDuration::Seconds(1)); + } + } + } + } + + Y_UNIT_TEST(SharedThrottlingLimits) { + TTenantTestRuntime runtime(DefaultConsoleTestConfig()); + auto timeProvider = MakeIntrusive(TInstant::Now()); + auto [controls, configurator] = CreateSamplingThrottlingConfigurator(10, timeProvider); + NKikimrConfig::TTracingConfig cfg; + { + auto rule = cfg.AddExternalThrottling(); + rule->SetMaxTracesBurst(10); + rule->SetMaxTracesPerMinute(60); + auto scope = rule->MutableScope(); + scope->AddRequestTypes("Table.DropTable"); + scope->AddRequestTypes("Table.ReadRows"); + scope->AddRequestTypes("Table.AlterTable"); + } + InitJaegerTracingConfigurator(runtime, std::move(configurator), cfg); + + std::array matchingDiscriminators{ + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_DROPTABLE, + }, + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_ALTERTABLE, + .Database = "/Root/db1", + }, + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_READROWS, + .Database = "/Root/db2", + }, + }; + + std::array notMatchingDiscriminators{ + TRequestDiscriminator{}, + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_KEEPALIVE, + }, + }; + + for (size_t i = 0; i < 21; ++i) { + UNIT_ASSERT_EQUAL(controls.HandleTracing(false, RandomChoice(matchingDiscriminators)).first, TTracingControls::OFF); + UNIT_ASSERT_EQUAL(controls.HandleTracing(true, RandomChoice(matchingDiscriminators)).first, TTracingControls::EXTERNAL); + UNIT_ASSERT_EQUAL(controls.HandleTracing(true, RandomChoice(notMatchingDiscriminators)).first, TTracingControls::OFF); + timeProvider->Advance(TDuration::MilliSeconds(500)); + } + UNIT_ASSERT_EQUAL(controls.HandleTracing(true, RandomChoice(matchingDiscriminators)).first, TTracingControls::OFF); + } + + Y_UNIT_TEST(SharedSamplingLimits) { + TTenantTestRuntime runtime(DefaultConsoleTestConfig()); + auto timeProvider = MakeIntrusive(TInstant::Now()); + auto [controls, configurator] = CreateSamplingThrottlingConfigurator(10, timeProvider); + NKikimrConfig::TTracingConfig cfg; + { + auto rule = cfg.AddSampling(); + rule->SetMaxTracesBurst(10); + rule->SetMaxTracesPerMinute(60); + rule->SetLevel(8); + rule->SetFraction(0.5); + auto scope = rule->MutableScope(); + scope->AddRequestTypes("Table.DropTable"); + scope->AddRequestTypes("Table.ReadRows"); + scope->AddRequestTypes("Table.AlterTable"); + } + InitJaegerTracingConfigurator(runtime, std::move(configurator), cfg); + + std::array matchingDiscriminators{ + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_DROPTABLE, + }, + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_ALTERTABLE, + .Database = "/Root/db1", + }, + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_READROWS, + .Database = "/Root/db2", + }, + }; + + std::array notMatchingDiscriminators{ + TRequestDiscriminator{}, + TRequestDiscriminator{ + .RequestType = ERequestType::TABLE_KEEPALIVE, + }, + }; + + { + size_t sampled = 0; + for (size_t i = 0; i < 1000; ++i) { + auto [state, level] = controls.HandleTracing(false, RandomChoice(matchingDiscriminators)); + UNIT_ASSERT_UNEQUAL(state, TTracingControls::EXTERNAL); + if (state == TTracingControls::SAMPLED) { + UNIT_ASSERT_EQUAL(level, 8); + ++sampled; + } + UNIT_ASSERT_EQUAL(controls.HandleTracing(false, RandomChoice(notMatchingDiscriminators)).first, TTracingControls::OFF); + timeProvider->Advance(TDuration::Seconds(1)); + } + UNIT_ASSERT(sampled >= 400 && sampled <= 600); + } + timeProvider->Advance(TDuration::Minutes(1)); + + { + size_t sampled = 0; + for (size_t i = 0; i < 65; ++i) { + auto [state, level] = controls.HandleTracing(false, RandomChoice(matchingDiscriminators)); + UNIT_ASSERT_UNEQUAL(state, TTracingControls::EXTERNAL); + if (state == TTracingControls::SAMPLED) { + UNIT_ASSERT_EQUAL(level, 8); + ++sampled; + } + } + UNIT_ASSERT_EQUAL(sampled, 11); + } + } + +} +} // namespace NKikimr diff --git a/ydb/core/cms/console/ut/CMakeLists.darwin-arm64.txt b/ydb/core/cms/console/ut/CMakeLists.darwin-arm64.txt index c86287b46dcc..bb7d210d886b 100644 --- a/ydb/core/cms/console/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/cms/console/ut/CMakeLists.darwin-arm64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-core-cms-console-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-cms-console-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache_ut.cpp @@ -67,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/console/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/cms/console/ut/CMakeLists.darwin-x86_64.txt index 966bdb80a6a7..e9c72f840aa3 100644 --- a/ydb/core/cms/console/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/cms/console/ut/CMakeLists.darwin-x86_64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-core-cms-console-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-cms-console-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache_ut.cpp @@ -68,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/console/ut/CMakeLists.linux-aarch64.txt b/ydb/core/cms/console/ut/CMakeLists.linux-aarch64.txt index 8478050b90ce..454cdf140859 100644 --- a/ydb/core/cms/console/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/cms/console/ut/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-core-cms-console-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-cms-console-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache_ut.cpp @@ -71,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/console/ut/CMakeLists.linux-x86_64.txt b/ydb/core/cms/console/ut/CMakeLists.linux-x86_64.txt index e3ab82d09c3a..c755a3632f4e 100644 --- a/ydb/core/cms/console/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/cms/console/ut/CMakeLists.linux-x86_64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-core-cms-console-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-cms-console-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/configs_cache_ut.cpp @@ -72,6 +69,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/console/ut/CMakeLists.windows-x86_64.txt b/ydb/core/cms/console/ut/CMakeLists.windows-x86_64.txt index 05c7ccd4f3cc..6e5d9f285db3 100644 --- a/ydb/core/cms/console/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/cms/console/ut/CMakeLists.windows-x86_64.txt @@ -61,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/console/ut/ya.make b/ydb/core/cms/console/ut/ya.make index 2daf90fac99a..88788f1b9324 100644 --- a/ydb/core/cms/console/ut/ya.make +++ b/ydb/core/cms/console/ut/ya.make @@ -25,6 +25,7 @@ SRCS( log_settings_configurator_ut.cpp modifications_validator_ut.cpp net_classifier_updater_ut.cpp + jaeger_tracing_configurator_ut.cpp ) END() diff --git a/ydb/core/cms/console/util/CMakeLists.darwin-arm64.txt b/ydb/core/cms/console/util/CMakeLists.darwin-arm64.txt index 2a8aa60113a6..4a1e202f1aaf 100644 --- a/ydb/core/cms/console/util/CMakeLists.darwin-arm64.txt +++ b/ydb/core/cms/console/util/CMakeLists.darwin-arm64.txt @@ -15,5 +15,7 @@ target_link_libraries(cms-console-util PUBLIC ydb-core-protos ) target_sources(cms-console-util PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/config_index.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/config_index.cpp ) diff --git a/ydb/core/cms/console/util/CMakeLists.darwin-x86_64.txt b/ydb/core/cms/console/util/CMakeLists.darwin-x86_64.txt index 2a8aa60113a6..4a1e202f1aaf 100644 --- a/ydb/core/cms/console/util/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/cms/console/util/CMakeLists.darwin-x86_64.txt @@ -15,5 +15,7 @@ target_link_libraries(cms-console-util PUBLIC ydb-core-protos ) target_sources(cms-console-util PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/config_index.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/config_index.cpp ) diff --git a/ydb/core/cms/console/util/CMakeLists.linux-aarch64.txt b/ydb/core/cms/console/util/CMakeLists.linux-aarch64.txt index 4793dbe9ea17..89d845bc8569 100644 --- a/ydb/core/cms/console/util/CMakeLists.linux-aarch64.txt +++ b/ydb/core/cms/console/util/CMakeLists.linux-aarch64.txt @@ -16,5 +16,7 @@ target_link_libraries(cms-console-util PUBLIC ydb-core-protos ) target_sources(cms-console-util PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/config_index.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/config_index.cpp ) diff --git a/ydb/core/cms/console/util/CMakeLists.linux-x86_64.txt b/ydb/core/cms/console/util/CMakeLists.linux-x86_64.txt index 4793dbe9ea17..89d845bc8569 100644 --- a/ydb/core/cms/console/util/CMakeLists.linux-x86_64.txt +++ b/ydb/core/cms/console/util/CMakeLists.linux-x86_64.txt @@ -16,5 +16,7 @@ target_link_libraries(cms-console-util PUBLIC ydb-core-protos ) target_sources(cms-console-util PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/config_index.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/config_index.cpp ) diff --git a/ydb/core/cms/console/util/CMakeLists.windows-x86_64.txt b/ydb/core/cms/console/util/CMakeLists.windows-x86_64.txt index 2a8aa60113a6..4a1e202f1aaf 100644 --- a/ydb/core/cms/console/util/CMakeLists.windows-x86_64.txt +++ b/ydb/core/cms/console/util/CMakeLists.windows-x86_64.txt @@ -15,5 +15,7 @@ target_link_libraries(cms-console-util PUBLIC ydb-core-protos ) target_sources(cms-console-util PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/config_index.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/defs.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/util/config_index.cpp ) diff --git a/ydb/core/cms/console/validators/CMakeLists.darwin-arm64.txt b/ydb/core/cms/console/validators/CMakeLists.darwin-arm64.txt index ae6ae3abc0e0..1db13cff1818 100644 --- a/ydb/core/cms/console/validators/CMakeLists.darwin-arm64.txt +++ b/ydb/core/cms/console/validators/CMakeLists.darwin-arm64.txt @@ -19,6 +19,11 @@ target_link_libraries(cms-console-validators PUBLIC cpp-deprecated-atomic ) target_sources(cms-console-validators PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/core_validators.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_bootstrap.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_nameservice.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/core_validators.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator.cpp diff --git a/ydb/core/cms/console/validators/CMakeLists.darwin-x86_64.txt b/ydb/core/cms/console/validators/CMakeLists.darwin-x86_64.txt index ae6ae3abc0e0..1db13cff1818 100644 --- a/ydb/core/cms/console/validators/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/cms/console/validators/CMakeLists.darwin-x86_64.txt @@ -19,6 +19,11 @@ target_link_libraries(cms-console-validators PUBLIC cpp-deprecated-atomic ) target_sources(cms-console-validators PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/core_validators.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_bootstrap.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_nameservice.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/core_validators.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator.cpp diff --git a/ydb/core/cms/console/validators/CMakeLists.linux-aarch64.txt b/ydb/core/cms/console/validators/CMakeLists.linux-aarch64.txt index 11d91e59fc08..40fa3a8cba17 100644 --- a/ydb/core/cms/console/validators/CMakeLists.linux-aarch64.txt +++ b/ydb/core/cms/console/validators/CMakeLists.linux-aarch64.txt @@ -20,6 +20,11 @@ target_link_libraries(cms-console-validators PUBLIC cpp-deprecated-atomic ) target_sources(cms-console-validators PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/core_validators.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_bootstrap.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_nameservice.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/core_validators.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator.cpp diff --git a/ydb/core/cms/console/validators/CMakeLists.linux-x86_64.txt b/ydb/core/cms/console/validators/CMakeLists.linux-x86_64.txt index 11d91e59fc08..40fa3a8cba17 100644 --- a/ydb/core/cms/console/validators/CMakeLists.linux-x86_64.txt +++ b/ydb/core/cms/console/validators/CMakeLists.linux-x86_64.txt @@ -20,6 +20,11 @@ target_link_libraries(cms-console-validators PUBLIC cpp-deprecated-atomic ) target_sources(cms-console-validators PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/core_validators.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_bootstrap.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_nameservice.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/core_validators.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator.cpp diff --git a/ydb/core/cms/console/validators/CMakeLists.windows-x86_64.txt b/ydb/core/cms/console/validators/CMakeLists.windows-x86_64.txt index ae6ae3abc0e0..1db13cff1818 100644 --- a/ydb/core/cms/console/validators/CMakeLists.windows-x86_64.txt +++ b/ydb/core/cms/console/validators/CMakeLists.windows-x86_64.txt @@ -19,6 +19,11 @@ target_link_libraries(cms-console-validators PUBLIC cpp-deprecated-atomic ) target_sources(cms-console-validators PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/core_validators.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_bootstrap.h + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_nameservice.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/core_validators.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator.cpp diff --git a/ydb/core/cms/console/validators/ut/CMakeLists.darwin-arm64.txt b/ydb/core/cms/console/validators/ut/CMakeLists.darwin-arm64.txt index 38926d6d6379..deb391abee2e 100644 --- a/ydb/core/cms/console/validators/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/cms/console/validators/ut/CMakeLists.darwin-arm64.txt @@ -22,10 +22,9 @@ target_link_options(ydb-core-cms-console-validators-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-cms-console-validators-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_bootstrap_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_nameservice_ut.cpp @@ -55,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/console/validators/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/cms/console/validators/ut/CMakeLists.darwin-x86_64.txt index 773ed4c1cc79..1cd85f647947 100644 --- a/ydb/core/cms/console/validators/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/cms/console/validators/ut/CMakeLists.darwin-x86_64.txt @@ -23,10 +23,9 @@ target_link_options(ydb-core-cms-console-validators-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-cms-console-validators-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_bootstrap_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_nameservice_ut.cpp @@ -56,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/console/validators/ut/CMakeLists.linux-aarch64.txt b/ydb/core/cms/console/validators/ut/CMakeLists.linux-aarch64.txt index 31fc2fe9a664..098728a47348 100644 --- a/ydb/core/cms/console/validators/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/cms/console/validators/ut/CMakeLists.linux-aarch64.txt @@ -25,11 +25,9 @@ target_link_options(ydb-core-cms-console-validators-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-cms-console-validators-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_bootstrap_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_nameservice_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/console/validators/ut/CMakeLists.linux-x86_64.txt b/ydb/core/cms/console/validators/ut/CMakeLists.linux-x86_64.txt index a6cd6cef9919..2641e4f29452 100644 --- a/ydb/core/cms/console/validators/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/cms/console/validators/ut/CMakeLists.linux-x86_64.txt @@ -26,11 +26,9 @@ target_link_options(ydb-core-cms-console-validators-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-cms-console-validators-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_bootstrap_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_nameservice_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/console/validators/ut/CMakeLists.windows-x86_64.txt b/ydb/core/cms/console/validators/ut/CMakeLists.windows-x86_64.txt index f53d17188ff3..1249a14f430e 100644 --- a/ydb/core/cms/console/validators/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/cms/console/validators/ut/CMakeLists.windows-x86_64.txt @@ -20,6 +20,7 @@ target_link_libraries(ydb-core-cms-console-validators-ut PUBLIC cpp-testing-unittest ) target_sources(ydb-core-cms-console-validators-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/registry_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_bootstrap_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/console/validators/validator_nameservice_ut.cpp @@ -49,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/console/ya.make b/ydb/core/cms/console/ya.make index 1f786284e430..80a68a361dd9 100644 --- a/ydb/core/cms/console/ya.make +++ b/ydb/core/cms/console/ya.make @@ -56,6 +56,8 @@ SRCS( http.h immediate_controls_configurator.cpp immediate_controls_configurator.h + jaeger_tracing_configurator.cpp + jaeger_tracing_configurator.h log_settings_configurator.cpp log_settings_configurator.h logger.cpp diff --git a/ydb/core/cms/json_proxy_proto.h b/ydb/core/cms/json_proxy_proto.h index 4844919de311..8079eb6971e2 100644 --- a/ydb/core/cms/json_proxy_proto.h +++ b/ydb/core/cms/json_proxy_proto.h @@ -76,16 +76,10 @@ class TJsonProxyProto : public TActorBootstrapped { return ReplyWithTypeDescription(*NKikimrConfig::TImmediateControlsConfig::TSchemeShardControls::descriptor(), ctx); else if (name == ".NKikimrConfig.TImmediateControlsConfig.TTCMallocControls") return ReplyWithTypeDescription(*NKikimrConfig::TImmediateControlsConfig::TTCMallocControls::descriptor(), ctx); - else if (name == ".NKikimrConfig.TImmediateControlsConfig.TTracingControls") - return ReplyWithTypeDescription(*NKikimrConfig::TImmediateControlsConfig::TTracingControls::descriptor(), ctx); - else if (name == ".NKikimrConfig.TImmediateControlsConfig.TTracingControls.TSamplingThrottlingOptions") - return ReplyWithTypeDescription(*NKikimrConfig::TImmediateControlsConfig::TTracingControls::TSamplingThrottlingOptions::descriptor(), ctx); - else if (name == ".NKikimrConfig.TImmediateControlsConfig.TTracingControls.TSamplingThrottlingOptions.TThrottlingOptions") - return ReplyWithTypeDescription(*NKikimrConfig::TImmediateControlsConfig::TTracingControls::TSamplingThrottlingOptions::TThrottlingOptions::descriptor(), ctx); - else if (name == ".NKikimrConfig.TImmediateControlsConfig.TTracingControls.TSamplingThrottlingOptions.TSamplingOptions") - return ReplyWithTypeDescription(*NKikimrConfig::TImmediateControlsConfig::TTracingControls::TSamplingThrottlingOptions::TSamplingOptions::descriptor(), ctx); - else if (name == ".NKikimrConfig.TImmediateControlsConfig.TTracingControls.TKeyValue") - return ReplyWithTypeDescription(*NKikimrConfig::TImmediateControlsConfig::TTracingControls::TKeyValue::descriptor(), ctx); + else if (name == ".NKikimrConfig.TImmediateControlsConfig.TVDiskControls") + return ReplyWithTypeDescription(*NKikimrConfig::TImmediateControlsConfig::TVDiskControls::descriptor(), ctx); + else if (name == ".NKikimrConfig.TImmediateControlsConfig.TTabletControls") + return ReplyWithTypeDescription(*NKikimrConfig::TImmediateControlsConfig::TTabletControls::descriptor(), ctx); } ctx.Send(RequestEvent->Sender, diff --git a/ydb/core/cms/node_checkers.cpp b/ydb/core/cms/node_checkers.cpp index 75c9b3c91bac..51306ab3efb6 100644 --- a/ydb/core/cms/node_checkers.cpp +++ b/ydb/core/cms/node_checkers.cpp @@ -60,9 +60,7 @@ bool TNodesCounterBase::IsNodeLocked(ui32 nodeId) const { } void TNodesCounterBase::LockNode(ui32 nodeId) { - if (IsNodeLocked(nodeId)) { - return; - } + Y_ABORT_UNLESS(!IsNodeLocked(nodeId)); ++LockedNodesCount; if (NodeToState[nodeId] == NODE_STATE_DOWN) { @@ -74,10 +72,8 @@ void TNodesCounterBase::LockNode(ui32 nodeId) { } void TNodesCounterBase::UnlockNode(ui32 nodeId) { - if (!IsNodeLocked(nodeId)) { - return; - } - + Y_ABORT_UNLESS(IsNodeLocked(nodeId)); + --LockedNodesCount; if (NodeToState[nodeId] == NODE_STATE_RESTART) { NodeToState[nodeId] = NODE_STATE_DOWN; diff --git a/ydb/core/cms/scheme.h b/ydb/core/cms/scheme.h index 5bbd7dcc5645..35dcb10c6310 100644 --- a/ydb/core/cms/scheme.h +++ b/ydb/core/cms/scheme.h @@ -37,9 +37,10 @@ struct Schema : NIceDb::Schema { struct Owner : Column<2, NScheme::NTypeIds::Utf8> {}; struct Order : Column<3, NScheme::NTypeIds::Uint64> {}; struct Content : Column<4, NScheme::NTypeIds::Utf8> {}; + struct Priority : Column<5, NScheme::NTypeIds::Int32> {}; using TKey = TableKey; - using TColumns = TableColumns; + using TColumns = TableColumns; }; struct WalleTask : Table<4> { diff --git a/ydb/core/cms/ui/sentinel_state.js b/ydb/core/cms/ui/sentinel_state.js index 78942081f8c2..991e79808157 100644 --- a/ydb/core/cms/ui/sentinel_state.js +++ b/ydb/core/cms/ui/sentinel_state.js @@ -22,14 +22,14 @@ TPDiskState[253] = "Timeout"; TPDiskState[254] = "NodeDisconnected"; TPDiskState[255] = "Unknown"; -const EPDiskStatus = [ - "UNKNOWN", - "ACTIVE", - "INACTIVE", - "BROKEN", - "FAULTY", - "TO_BE_REMOVED", -]; +const EPDiskStatus = { + 0: "UNKNOWN", + 1: "ACTIVE", + 2: "INACTIVE", + 3: "BROKEN", + 5: "FAULTY", + 6: "TO_BE_REMOVED", +}; const PDiskHeaders = [ "PDiskId", diff --git a/ydb/core/cms/ut/CMakeLists.darwin-arm64.txt b/ydb/core/cms/ut/CMakeLists.darwin-arm64.txt index 8ebcb62a6937..9d444cb58ee9 100644 --- a/ydb/core/cms/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/cms/ut/CMakeLists.darwin-arm64.txt @@ -27,10 +27,9 @@ target_link_options(ydb-core-cms-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-cms-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tenants_ut.cpp @@ -63,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/cms/ut/CMakeLists.darwin-x86_64.txt index 922dc62a7b99..4281ce100f50 100644 --- a/ydb/core/cms/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/cms/ut/CMakeLists.darwin-x86_64.txt @@ -28,10 +28,9 @@ target_link_options(ydb-core-cms-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-cms-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tenants_ut.cpp @@ -64,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/ut/CMakeLists.linux-aarch64.txt b/ydb/core/cms/ut/CMakeLists.linux-aarch64.txt index 64ee05e59311..bbb7ed408a7c 100644 --- a/ydb/core/cms/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/cms/ut/CMakeLists.linux-aarch64.txt @@ -30,11 +30,9 @@ target_link_options(ydb-core-cms-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-cms-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tenants_ut.cpp @@ -67,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/ut/CMakeLists.linux-x86_64.txt b/ydb/core/cms/ut/CMakeLists.linux-x86_64.txt index ede8d036c2ad..b4bcc6476c07 100644 --- a/ydb/core/cms/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/cms/ut/CMakeLists.linux-x86_64.txt @@ -31,11 +31,9 @@ target_link_options(ydb-core-cms-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-cms-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tenants_ut.cpp @@ -68,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/ut/CMakeLists.windows-x86_64.txt b/ydb/core/cms/ut/CMakeLists.windows-x86_64.txt index 1dbbee1959ad..92273ea5095e 100644 --- a/ydb/core/cms/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/cms/ut/CMakeLists.windows-x86_64.txt @@ -25,6 +25,7 @@ target_link_libraries(ydb-core-cms-ut PUBLIC core-testlib-default ) target_sources(ydb-core-cms-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/cluster_info_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_tenants_ut.cpp @@ -57,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/ut_sentinel/CMakeLists.darwin-arm64.txt b/ydb/core/cms/ut_sentinel/CMakeLists.darwin-arm64.txt index 32f82e1f42b6..6622d1e34152 100644 --- a/ydb/core/cms/ut_sentinel/CMakeLists.darwin-arm64.txt +++ b/ydb/core/cms/ut_sentinel/CMakeLists.darwin-arm64.txt @@ -27,10 +27,9 @@ target_link_options(ydb-core-cms-ut_sentinel PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-cms-ut_sentinel PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/sentinel_ut.cpp ) @@ -59,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/ut_sentinel/CMakeLists.darwin-x86_64.txt b/ydb/core/cms/ut_sentinel/CMakeLists.darwin-x86_64.txt index 21090b142de2..52d13fbc1ad1 100644 --- a/ydb/core/cms/ut_sentinel/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/cms/ut_sentinel/CMakeLists.darwin-x86_64.txt @@ -28,10 +28,9 @@ target_link_options(ydb-core-cms-ut_sentinel PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-cms-ut_sentinel PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/sentinel_ut.cpp ) @@ -60,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/ut_sentinel/CMakeLists.linux-aarch64.txt b/ydb/core/cms/ut_sentinel/CMakeLists.linux-aarch64.txt index b467fc19dcbc..99f98c0f8a5a 100644 --- a/ydb/core/cms/ut_sentinel/CMakeLists.linux-aarch64.txt +++ b/ydb/core/cms/ut_sentinel/CMakeLists.linux-aarch64.txt @@ -30,11 +30,9 @@ target_link_options(ydb-core-cms-ut_sentinel PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-cms-ut_sentinel PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/sentinel_ut.cpp ) @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/ut_sentinel/CMakeLists.linux-x86_64.txt b/ydb/core/cms/ut_sentinel/CMakeLists.linux-x86_64.txt index 804549a8abe0..f98006fbe60b 100644 --- a/ydb/core/cms/ut_sentinel/CMakeLists.linux-x86_64.txt +++ b/ydb/core/cms/ut_sentinel/CMakeLists.linux-x86_64.txt @@ -31,11 +31,9 @@ target_link_options(ydb-core-cms-ut_sentinel PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-cms-ut_sentinel PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/sentinel_ut.cpp ) @@ -64,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/ut_sentinel/CMakeLists.windows-x86_64.txt b/ydb/core/cms/ut_sentinel/CMakeLists.windows-x86_64.txt index 70f1faf287f1..b3f47a8721ff 100644 --- a/ydb/core/cms/ut_sentinel/CMakeLists.windows-x86_64.txt +++ b/ydb/core/cms/ut_sentinel/CMakeLists.windows-x86_64.txt @@ -25,6 +25,7 @@ target_link_libraries(ydb-core-cms-ut_sentinel PUBLIC core-testlib-default ) target_sources(ydb-core-cms-ut_sentinel PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/cms/cms_ut_common.cpp ${CMAKE_SOURCE_DIR}/ydb/core/cms/sentinel_ut.cpp ) @@ -53,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/cms/walle.h b/ydb/core/cms/walle.h index bb12bd090ec2..d6e6cf9e2d6d 100644 --- a/ydb/core/cms/walle.h +++ b/ydb/core/cms/walle.h @@ -13,6 +13,9 @@ namespace NKikimr::NCms { constexpr const char *WALLE_CMS_USER = "Wall-E"; constexpr const char *WALLE_API_URL_PREFIX = "/api/walle/v11/"; +constexpr const i32 WALLE_DEFAULT_PRIORITY = 20; +constexpr const i32 WALLE_SOFT_MAINTAINANCE_PRIORITY = 50; + IActor *CreateWalleAdapter(TEvCms::TEvWalleCreateTaskRequest::TPtr &ev, TActorId cms); IActor *CreateWalleAdapter(TEvCms::TEvWalleListTasksRequest::TPtr &ev, const TCmsStatePtr state); IActor *CreateWalleAdapter(TEvCms::TEvWalleCheckTaskRequest::TPtr &ev, const TCmsStatePtr state, TActorId cms); diff --git a/ydb/core/cms/walle_create_task_adapter.cpp b/ydb/core/cms/walle_create_task_adapter.cpp index 83724568eace..744da6eb250e 100644 --- a/ydb/core/cms/walle_create_task_adapter.cpp +++ b/ydb/core/cms/walle_create_task_adapter.cpp @@ -121,8 +121,14 @@ class TWalleCreateTaskAdapter : public TActorBootstrappedRecord.SetUser(WALLE_CMS_USER); request->Record.SetSchedule(true); request->Record.SetDryRun(task.GetDryRun()); - - auto it = Actions.find(task.GetAction()); + const auto &action = task.GetAction(); + if (action == "temporary-unreachable") { + request->Record.SetPriority(WALLE_SOFT_MAINTAINANCE_PRIORITY); + } else { + request->Record.SetPriority(WALLE_DEFAULT_PRIORITY); + } + + auto it = Actions.find(action); Y_ABORT_UNLESS(it != Actions.end()); if (!it->second) { diff --git a/ydb/core/control/CMakeLists.darwin-arm64.txt b/ydb/core/control/CMakeLists.darwin-arm64.txt index 8f45b8eaa490..3d24b9460a59 100644 --- a/ydb/core/control/CMakeLists.darwin-arm64.txt +++ b/ydb/core/control/CMakeLists.darwin-arm64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(common_controls) add_subdirectory(ut) add_library(ydb-core-control) @@ -20,6 +21,13 @@ target_link_libraries(ydb-core-control PUBLIC cpp-deprecated-atomic ) target_sources(ydb-core-control PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/control/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_control.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_wrapper.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_throttler.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_sampler.h ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_control.cpp ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_impl.cpp diff --git a/ydb/core/control/CMakeLists.darwin-x86_64.txt b/ydb/core/control/CMakeLists.darwin-x86_64.txt index 8f45b8eaa490..3d24b9460a59 100644 --- a/ydb/core/control/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/control/CMakeLists.darwin-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(common_controls) add_subdirectory(ut) add_library(ydb-core-control) @@ -20,6 +21,13 @@ target_link_libraries(ydb-core-control PUBLIC cpp-deprecated-atomic ) target_sources(ydb-core-control PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/control/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_control.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_wrapper.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_throttler.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_sampler.h ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_control.cpp ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_impl.cpp diff --git a/ydb/core/control/CMakeLists.linux-aarch64.txt b/ydb/core/control/CMakeLists.linux-aarch64.txt index 9fb8392e6e79..5f4cceef8df0 100644 --- a/ydb/core/control/CMakeLists.linux-aarch64.txt +++ b/ydb/core/control/CMakeLists.linux-aarch64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(common_controls) add_subdirectory(ut) add_library(ydb-core-control) @@ -21,6 +22,13 @@ target_link_libraries(ydb-core-control PUBLIC cpp-deprecated-atomic ) target_sources(ydb-core-control PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/control/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_control.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_wrapper.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_throttler.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_sampler.h ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_control.cpp ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_impl.cpp diff --git a/ydb/core/control/CMakeLists.linux-x86_64.txt b/ydb/core/control/CMakeLists.linux-x86_64.txt index 9fb8392e6e79..5f4cceef8df0 100644 --- a/ydb/core/control/CMakeLists.linux-x86_64.txt +++ b/ydb/core/control/CMakeLists.linux-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(common_controls) add_subdirectory(ut) add_library(ydb-core-control) @@ -21,6 +22,13 @@ target_link_libraries(ydb-core-control PUBLIC cpp-deprecated-atomic ) target_sources(ydb-core-control PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/control/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_control.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_wrapper.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_throttler.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_sampler.h ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_control.cpp ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_impl.cpp diff --git a/ydb/core/control/CMakeLists.windows-x86_64.txt b/ydb/core/control/CMakeLists.windows-x86_64.txt index 8f45b8eaa490..3d24b9460a59 100644 --- a/ydb/core/control/CMakeLists.windows-x86_64.txt +++ b/ydb/core/control/CMakeLists.windows-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(common_controls) add_subdirectory(ut) add_library(ydb-core-control) @@ -20,6 +21,13 @@ target_link_libraries(ydb-core-control PUBLIC cpp-deprecated-atomic ) target_sources(ydb-core-control PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/control/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_control.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_wrapper.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_throttler.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_sampler.h ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_control.cpp ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_impl.cpp diff --git a/ydb/core/control/common_controls/CMakeLists.darwin-arm64.txt b/ydb/core/control/common_controls/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..4788eae0c69c --- /dev/null +++ b/ydb/core/control/common_controls/CMakeLists.darwin-arm64.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(core-control-common_controls) +target_link_libraries(core-control-common_controls PUBLIC + contrib-libs-cxxsupp + yutil + library-actors-wilson + ydb-core-protos +) +target_sources(core-control-common_controls PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/control/common_controls/tracing_control.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/common_controls/tracing_control.cpp +) diff --git a/ydb/core/control/common_controls/CMakeLists.darwin-x86_64.txt b/ydb/core/control/common_controls/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..4788eae0c69c --- /dev/null +++ b/ydb/core/control/common_controls/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(core-control-common_controls) +target_link_libraries(core-control-common_controls PUBLIC + contrib-libs-cxxsupp + yutil + library-actors-wilson + ydb-core-protos +) +target_sources(core-control-common_controls PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/control/common_controls/tracing_control.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/common_controls/tracing_control.cpp +) diff --git a/ydb/core/control/common_controls/CMakeLists.linux-aarch64.txt b/ydb/core/control/common_controls/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..d50d2eec75f5 --- /dev/null +++ b/ydb/core/control/common_controls/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(core-control-common_controls) +target_link_libraries(core-control-common_controls PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-actors-wilson + ydb-core-protos +) +target_sources(core-control-common_controls PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/control/common_controls/tracing_control.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/common_controls/tracing_control.cpp +) diff --git a/ydb/core/control/common_controls/CMakeLists.linux-x86_64.txt b/ydb/core/control/common_controls/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..d50d2eec75f5 --- /dev/null +++ b/ydb/core/control/common_controls/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(core-control-common_controls) +target_link_libraries(core-control-common_controls PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-actors-wilson + ydb-core-protos +) +target_sources(core-control-common_controls PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/control/common_controls/tracing_control.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/common_controls/tracing_control.cpp +) diff --git a/ydb/core/control/common_controls/CMakeLists.txt b/ydb/core/control/common_controls/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/control/common_controls/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/control/common_controls/CMakeLists.windows-x86_64.txt b/ydb/core/control/common_controls/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..4788eae0c69c --- /dev/null +++ b/ydb/core/control/common_controls/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(core-control-common_controls) +target_link_libraries(core-control-common_controls PUBLIC + contrib-libs-cxxsupp + yutil + library-actors-wilson + ydb-core-protos +) +target_sources(core-control-common_controls PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/control/common_controls/tracing_control.h + ${CMAKE_SOURCE_DIR}/ydb/core/control/common_controls/tracing_control.cpp +) diff --git a/ydb/core/control/common_controls/tracing_control.cpp b/ydb/core/control/common_controls/tracing_control.cpp deleted file mode 100644 index 536738dd289f..000000000000 --- a/ydb/core/control/common_controls/tracing_control.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include "tracing_control.h" - -#include -#include -#include - -namespace NKikimr { - -namespace { - -const NKikimrConfig::TImmediateControlOptions& GetImmediateControlOptionsForField( - const google::protobuf::Descriptor& descriptor, TString fieldName) { - auto field = descriptor.FindFieldByName(fieldName); - Y_ABORT_UNLESS(field); - auto& fieldOptions = field->options(); - return fieldOptions.GetExtension(NKikimrConfig::ControlOptions); -} - -TThrottler CreateThrottler(TIntrusivePtr& icb, TIntrusivePtr timeProvider, TString domain) { - TControlWrapper maxRatePerMinute; - TControlWrapper maxBurst; - - const std::array, 2> controls = {{ - {maxRatePerMinute, "MaxRatePerMinute"}, - {maxBurst, "MaxBurst"}, - }}; - const auto& throttlingOptions = *NKikimrConfig::TImmediateControlsConfig::TTracingControls::TSamplingThrottlingOptions::TThrottlingOptions::descriptor(); - for (auto& [control, fieldName] : controls) { - const auto& controlOptions = GetImmediateControlOptionsForField(throttlingOptions, TString(fieldName)); - - control.Reset(controlOptions.GetDefaultValue(), controlOptions.GetMinValue(), controlOptions.GetMaxValue()); - icb->RegisterSharedControl(control, domain + "." + fieldName); - } - - return TThrottler(std::move(maxRatePerMinute), std::move(maxBurst), std::move(timeProvider)); -} - -} - -TTracingControl::TTracingControl(TIntrusivePtr& icb, TIntrusivePtr timeProvider, - TIntrusivePtr& randomProvider, TString controlDomain) -{ - SampledThrottler = CreateThrottler(icb, timeProvider, controlDomain + ".SampledThrottling"); - ExternalThrottler = CreateThrottler(icb, timeProvider, controlDomain + ".ExternalThrottling"); - - TControlWrapper samplingPPM; - const std::array, 2> controls = {{ - {samplingPPM, "PPM"}, - {SampledLevel, "Level"}, - }}; - - const auto& samplingOptions = *NKikimrConfig::TImmediateControlsConfig::TTracingControls::TSamplingThrottlingOptions::TSamplingOptions::descriptor(); - for (auto [control, name] : controls) { - const auto& controlOptions = GetImmediateControlOptionsForField(samplingOptions, TString(name)); - control.Reset(controlOptions.GetDefaultValue(), controlOptions.GetMinValue(), controlOptions.GetMaxValue()); - icb->RegisterSharedControl(control, controlDomain + ".Sampling." + name); - } - - Sampler = TSampler(std::move(samplingPPM), randomProvider->GenRand64()); -} - -} // namespace NKikimr diff --git a/ydb/core/control/common_controls/tracing_control.h b/ydb/core/control/common_controls/tracing_control.h deleted file mode 100644 index 56b7f45966da..000000000000 --- a/ydb/core/control/common_controls/tracing_control.h +++ /dev/null @@ -1,33 +0,0 @@ -#pragma once - -#include -#include -#include - -namespace NKikimr { - -class TTracingControl { -public: - TTracingControl(TIntrusivePtr& icb, TIntrusivePtr timeProvider, - TIntrusivePtr& randomProvider, TString controlDomain); - - bool SampleThrottle() { - return Sampler.Sample() && !SampledThrottler.Throttle(); - } - - bool ThrottleExternal() { - return ExternalThrottler.Throttle(); - } - - ui8 SampledVerbosity() const { - return SampledLevel; - } - -private: - TSampler Sampler; - TThrottler SampledThrottler; - TThrottler ExternalThrottler; - TControlWrapper SampledLevel; -}; - -} // namespace NKikimr diff --git a/ydb/core/control/common_controls/ya.make b/ydb/core/control/common_controls/ya.make deleted file mode 100644 index afc6df1f79d2..000000000000 --- a/ydb/core/control/common_controls/ya.make +++ /dev/null @@ -1,13 +0,0 @@ -LIBRARY() - -PEERDIR( - ydb/library/actors/wilson - ydb/core/protos -) - -SRCS( - tracing_control.h - tracing_control.cpp -) - -END() diff --git a/ydb/core/control/immediate_control_board_sampler.h b/ydb/core/control/immediate_control_board_sampler.h deleted file mode 100644 index e6d6784540b7..000000000000 --- a/ydb/core/control/immediate_control_board_sampler.h +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once - -#include - -namespace NKikimr { - -class TSampler { -public: - TSampler() : Rng(0) {} - - TSampler(TControlWrapper samplingPPM, ui64 seed) - : SamplingPPM(std::move(samplingPPM)) - , Rng(seed) - {} - - bool Sample() { - return Rng() % 1'000'000 < SamplingPPM; - } - -private: - TControlWrapper SamplingPPM; - TReallyFastRng32 Rng; -}; - -} // namespace NKikimr diff --git a/ydb/core/control/immediate_control_board_sampler_ut.cpp b/ydb/core/control/immediate_control_board_sampler_ut.cpp deleted file mode 100644 index 5df3cbe18bfd..000000000000 --- a/ydb/core/control/immediate_control_board_sampler_ut.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include "immediate_control_board_sampler.h" - -#include - -namespace NKikimr { - -Y_UNIT_TEST_SUITE(SamplingControlTests) { - ui32 RunTrials(TSampler& sampler, ui32 trials) { - ui32 cnt = 0; - for (ui32 i = 0; i < trials; ++i) { - if (sampler.Sample()) { - ++cnt; - } - } - return cnt; - } - - Y_UNIT_TEST(Simple) { - TControlWrapper control(500'000, 0, 1'000'000); - TSampler sampler(control, 42); - - auto samples = RunTrials(sampler, 100'000); - UNIT_ASSERT_GE(samples, 48'000); - UNIT_ASSERT_LE(samples, 52'000); - } - - Y_UNIT_TEST(EdgeCaseLower) { - TControlWrapper control(0, 0, 1'000'000); - TSampler sampler(control, 42); - - auto samples = RunTrials(sampler, 100'000); - UNIT_ASSERT_EQUAL(samples, 0); - } - - Y_UNIT_TEST(EdgeCaseUpper) { - TControlWrapper control(1'000'000, 0, 1'000'000); - TSampler sampler(control, 42); - - auto samples = RunTrials(sampler, 100'000); - UNIT_ASSERT_EQUAL(samples, 100'000); - } - - Y_UNIT_TEST(ChangingControl) { - TControlWrapper control(250'000, 0, 1'000'000); - TSampler sampler(control, 42); - - { - auto samples = RunTrials(sampler, 100'000); - UNIT_ASSERT_GE(samples, 23'000); - UNIT_ASSERT_LE(samples, 27'000); - } - - control = 750'000; - { - auto samples = RunTrials(sampler, 100'000); - UNIT_ASSERT_GE(samples, 73'000); - UNIT_ASSERT_LE(samples, 77'000); - } - } -} - -} // namespace NKikimr diff --git a/ydb/core/control/immediate_control_board_throttler.h b/ydb/core/control/immediate_control_board_throttler.h deleted file mode 100644 index c3ee83bf0f43..000000000000 --- a/ydb/core/control/immediate_control_board_throttler.h +++ /dev/null @@ -1,66 +0,0 @@ -#pragma once - -#include -#include - -namespace NKikimr { - -class TThrottler { -public: - TThrottler() = default; - - TThrottler(TControlWrapper maxRatePerMinute, TControlWrapper maxBurst, - TIntrusivePtr timeProvider) - : TimeProvider(std::move(timeProvider)) - , MaxRatePerMinute(std::move(maxRatePerMinute)) - , MaxBurst(std::move(maxBurst)) - , LastUpdate(TimeProvider->Now()) - {} - - bool Throttle() { - auto maxRatePerMinute = static_cast(MaxRatePerMinute); - auto maxBurst = static_cast(MaxBurst); - auto maxTotal = maxBurst + 1; - CurrentBurst = std::min(CurrentBurst, maxTotal); - if (maxRatePerMinute == 0) { - return true; - } - - auto now = TimeProvider->Now(); - if (now < LastUpdate) { - return true; - } - - const auto deltaBetweenSends = TDuration::Minutes(1) / maxRatePerMinute; - UpdateStats(now, deltaBetweenSends); - - if (CurrentBurst < maxTotal) { - CurrentBurst += 1; - return false; - } - - return true; - } - -private: - void UpdateStats(TInstant now, TDuration deltaBetweenSends) { - i64 decrease = (now - LastUpdate) / deltaBetweenSends; - decrease = std::min(decrease, CurrentBurst); - Y_ABORT_UNLESS(decrease >= 0); - CurrentBurst -= decrease; - LastUpdate += decrease * deltaBetweenSends; - if (CurrentBurst == 0) { - LastUpdate = now; - } - } - - TIntrusivePtr TimeProvider; - - TControlWrapper MaxRatePerMinute; - TControlWrapper MaxBurst; - - TInstant LastUpdate = TInstant::Zero(); - i64 CurrentBurst = 0; -}; - -} // namespace NKikimr diff --git a/ydb/core/control/immediate_control_board_throttler_ut.cpp b/ydb/core/control/immediate_control_board_throttler_ut.cpp deleted file mode 100644 index 3a5e40edf532..000000000000 --- a/ydb/core/control/immediate_control_board_throttler_ut.cpp +++ /dev/null @@ -1,126 +0,0 @@ -#include "immediate_control_board_throttler.h" - -#include - -namespace NKikimr { - -class TTimeProviderMock : public ITimeProvider { -public: - TTimeProviderMock(TInstant now) : CurrentTime(now) {} - - void Advance(TDuration delta) { - CurrentTime += delta; - } - - TInstant Now() final { - return CurrentTime; - } - -private: - TInstant CurrentTime; -}; - -Y_UNIT_TEST_SUITE(ThrottlerControlTests) { - void CheckAtLeast(TThrottler& throttler, ui32 n) { - for (ui32 i = 0; i < n; ++i) { - UNIT_ASSERT(!throttler.Throttle()); - } - } - - void CheckExact(TThrottler& throttler, ui32 n) { - CheckAtLeast(throttler, n); - UNIT_ASSERT(throttler.Throttle()); - } - - Y_UNIT_TEST(Simple) { - TControlWrapper maxPerMinute(6, 0, 180); - TControlWrapper maxBurst(2, 0, 180); - - auto timeProvider = MakeIntrusive(TInstant::Now()); - - TThrottler throttler(maxPerMinute, maxBurst, timeProvider); - CheckExact(throttler, 3); - CheckExact(throttler, 0); - - timeProvider->Advance(TDuration::Seconds(9)); - CheckExact(throttler, 0); - timeProvider->Advance(TDuration::Seconds(1)); - CheckExact(throttler, 1); - - timeProvider->Advance(TDuration::Seconds(15)); - CheckExact(throttler, 1); - - timeProvider->Advance(TDuration::Seconds(15)); - CheckExact(throttler, 2); - } - - Y_UNIT_TEST(LongIdle) { - TControlWrapper maxPerMinute(10, 0, 180); - TControlWrapper maxBurst(2, 0, 180); - - auto timeProvider = MakeIntrusive(TInstant::Now()); - - TThrottler throttler(maxPerMinute, maxBurst, timeProvider); - CheckAtLeast(throttler, 3); - - timeProvider->Advance(TDuration::Hours(1)); - CheckExact(throttler, 3); - } - - Y_UNIT_TEST(Overflow) { - TControlWrapper maxPerMinute(6'000, 0, 6'000); - TControlWrapper maxBurst(6'000, 0, 6'000); - - auto timeProvider = MakeIntrusive(TInstant::Now()); - - TThrottler throttler(maxPerMinute, maxBurst, timeProvider); - CheckExact(throttler, 6'001); - - timeProvider->Advance(TDuration::Days(365 * 10)); - - CheckExact(throttler, 6'001); - } - - Y_UNIT_TEST(ChangingControls) { - TControlWrapper maxPerMinute(6, 0, 180); - TControlWrapper maxBurst(2, 0, 180); - - auto timeProvider = MakeIntrusive(TInstant::Now()); - - TThrottler throttler(maxPerMinute, maxBurst, timeProvider); - CheckExact(throttler, 3); - - maxBurst = 4; - CheckExact(throttler, 2); - - maxBurst = 0; - CheckExact(throttler, 0); - - timeProvider->Advance(TDuration::Seconds(9)); - CheckExact(throttler, 0); - timeProvider->Advance(TDuration::Seconds(1)); - CheckExact(throttler, 1); - - maxPerMinute = 12 * 60; - timeProvider->Advance(TDuration::Seconds(1)); - CheckExact(throttler, 1); - - maxBurst = 20; - - timeProvider->Advance(TDuration::Seconds(3)); - CheckExact(throttler, 21); - - maxBurst = 0; - timeProvider->Advance(TDuration::Seconds(59)); - CheckAtLeast(throttler, 1); - maxPerMinute = 1; - CheckExact(throttler, 0); - timeProvider->Advance(TDuration::Minutes(1)); - CheckExact(throttler, 1); - - maxBurst = 2; - CheckExact(throttler, 2); - } -} - -} // namespace NKikimr diff --git a/ydb/core/control/ut/CMakeLists.darwin-arm64.txt b/ydb/core/control/ut/CMakeLists.darwin-arm64.txt index 9e35db8ab972..499db870a927 100644 --- a/ydb/core/control/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/control/ut/CMakeLists.darwin-arm64.txt @@ -30,12 +30,12 @@ target_link_options(ydb-core-control-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-control-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_sampler_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_throttler_ut.cpp ) set_property( TARGET @@ -62,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/control/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/control/ut/CMakeLists.darwin-x86_64.txt index 01234b59939b..26029c5bd91b 100644 --- a/ydb/core/control/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/control/ut/CMakeLists.darwin-x86_64.txt @@ -31,12 +31,12 @@ target_link_options(ydb-core-control-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-control-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_sampler_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_throttler_ut.cpp ) set_property( TARGET @@ -63,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/control/ut/CMakeLists.linux-aarch64.txt b/ydb/core/control/ut/CMakeLists.linux-aarch64.txt index 4b7923fa481f..c31203d4e7e8 100644 --- a/ydb/core/control/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/control/ut/CMakeLists.linux-aarch64.txt @@ -33,13 +33,12 @@ target_link_options(ydb-core-control-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-control-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_sampler_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_throttler_ut.cpp ) set_property( TARGET @@ -66,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/control/ut/CMakeLists.linux-x86_64.txt b/ydb/core/control/ut/CMakeLists.linux-x86_64.txt index 271bcf375831..866b30a3d21d 100644 --- a/ydb/core/control/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/control/ut/CMakeLists.linux-x86_64.txt @@ -34,13 +34,12 @@ target_link_options(ydb-core-control-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-control-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_sampler_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_throttler_ut.cpp ) set_property( TARGET @@ -67,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/control/ut/CMakeLists.windows-x86_64.txt b/ydb/core/control/ut/CMakeLists.windows-x86_64.txt index 2640c1175b47..bef999eab2bd 100644 --- a/ydb/core/control/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/control/ut/CMakeLists.windows-x86_64.txt @@ -30,6 +30,8 @@ target_link_libraries(ydb-core-control-ut PUBLIC target_sources(ydb-core-control-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_actor_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_sampler_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/control/immediate_control_board_throttler_ut.cpp ) set_property( TARGET @@ -56,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/control/ut/ya.make b/ydb/core/control/ut/ya.make index ede54f7d8c00..1e4885a42485 100644 --- a/ydb/core/control/ut/ya.make +++ b/ydb/core/control/ut/ya.make @@ -22,8 +22,6 @@ PEERDIR( SRCS( immediate_control_board_ut.cpp immediate_control_board_actor_ut.cpp - immediate_control_board_sampler_ut.cpp - immediate_control_board_throttler_ut.cpp ) END() diff --git a/ydb/core/control/ya.make b/ydb/core/control/ya.make index 4faca2369cf5..8c1c83bff961 100644 --- a/ydb/core/control/ya.make +++ b/ydb/core/control/ya.make @@ -19,16 +19,10 @@ SRCS( immediate_control_board_impl.cpp immediate_control_board_impl.h immediate_control_board_wrapper.h - immediate_control_board_throttler.h - immediate_control_board_sampler.h ) END() -RECURSE( - common_controls -) - RECURSE_FOR_TESTS( ut ) diff --git a/ydb/core/debug/CMakeLists.darwin-arm64.txt b/ydb/core/debug/CMakeLists.darwin-arm64.txt index ebb5e769c71a..3b08af1d3949 100644 --- a/ydb/core/debug/CMakeLists.darwin-arm64.txt +++ b/ydb/core/debug/CMakeLists.darwin-arm64.txt @@ -13,5 +13,6 @@ target_link_libraries(ydb-core-debug PUBLIC yutil ) target_sources(ydb-core-debug PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/debug/valgrind_check.h ${CMAKE_SOURCE_DIR}/ydb/core/debug/valgrind_check.cpp ) diff --git a/ydb/core/debug/CMakeLists.darwin-x86_64.txt b/ydb/core/debug/CMakeLists.darwin-x86_64.txt index ebb5e769c71a..3b08af1d3949 100644 --- a/ydb/core/debug/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/debug/CMakeLists.darwin-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(ydb-core-debug PUBLIC yutil ) target_sources(ydb-core-debug PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/debug/valgrind_check.h ${CMAKE_SOURCE_DIR}/ydb/core/debug/valgrind_check.cpp ) diff --git a/ydb/core/debug/CMakeLists.linux-aarch64.txt b/ydb/core/debug/CMakeLists.linux-aarch64.txt index d5b228940e6c..e7a4350f9086 100644 --- a/ydb/core/debug/CMakeLists.linux-aarch64.txt +++ b/ydb/core/debug/CMakeLists.linux-aarch64.txt @@ -14,5 +14,6 @@ target_link_libraries(ydb-core-debug PUBLIC yutil ) target_sources(ydb-core-debug PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/debug/valgrind_check.h ${CMAKE_SOURCE_DIR}/ydb/core/debug/valgrind_check.cpp ) diff --git a/ydb/core/debug/CMakeLists.linux-x86_64.txt b/ydb/core/debug/CMakeLists.linux-x86_64.txt index d5b228940e6c..e7a4350f9086 100644 --- a/ydb/core/debug/CMakeLists.linux-x86_64.txt +++ b/ydb/core/debug/CMakeLists.linux-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(ydb-core-debug PUBLIC yutil ) target_sources(ydb-core-debug PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/debug/valgrind_check.h ${CMAKE_SOURCE_DIR}/ydb/core/debug/valgrind_check.cpp ) diff --git a/ydb/core/debug/CMakeLists.windows-x86_64.txt b/ydb/core/debug/CMakeLists.windows-x86_64.txt index ebb5e769c71a..3b08af1d3949 100644 --- a/ydb/core/debug/CMakeLists.windows-x86_64.txt +++ b/ydb/core/debug/CMakeLists.windows-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(ydb-core-debug PUBLIC yutil ) target_sources(ydb-core-debug PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/debug/valgrind_check.h ${CMAKE_SOURCE_DIR}/ydb/core/debug/valgrind_check.cpp ) diff --git a/ydb/core/debug_tools/ut/CMakeLists.darwin-arm64.txt b/ydb/core/debug_tools/ut/CMakeLists.darwin-arm64.txt index 8d1200f4a223..980fec4c4ff7 100644 --- a/ydb/core/debug_tools/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/debug_tools/ut/CMakeLists.darwin-arm64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/debug_tools/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/debug_tools/ut/CMakeLists.darwin-x86_64.txt index c7b7447ddb93..c5a3a49cf635 100644 --- a/ydb/core/debug_tools/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/debug_tools/ut/CMakeLists.darwin-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/debug_tools/ut/CMakeLists.linux-aarch64.txt b/ydb/core/debug_tools/ut/CMakeLists.linux-aarch64.txt index e9317040b5c8..fa19065997e9 100644 --- a/ydb/core/debug_tools/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/debug_tools/ut/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(ydb-core-debug_tools-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-debug_tools-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/debug_tools/ut/main.cpp @@ -53,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/debug_tools/ut/CMakeLists.linux-x86_64.txt b/ydb/core/debug_tools/ut/CMakeLists.linux-x86_64.txt index b7fd30e9f7d0..cc23d7f401f1 100644 --- a/ydb/core/debug_tools/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/debug_tools/ut/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(ydb-core-debug_tools-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-debug_tools-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/debug_tools/ut/main.cpp @@ -54,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/debug_tools/ut/CMakeLists.windows-x86_64.txt b/ydb/core/debug_tools/ut/CMakeLists.windows-x86_64.txt index ed56e5468611..21fd862581c7 100644 --- a/ydb/core/debug_tools/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/debug_tools/ut/CMakeLists.windows-x86_64.txt @@ -43,6 +43,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/driver_lib/base_utils/CMakeLists.darwin-arm64.txt b/ydb/core/driver_lib/base_utils/CMakeLists.darwin-arm64.txt index d04bba414857..f63fcdb3fd04 100644 --- a/ydb/core/driver_lib/base_utils/CMakeLists.darwin-arm64.txt +++ b/ydb/core/driver_lib/base_utils/CMakeLists.darwin-arm64.txt @@ -23,6 +23,10 @@ target_link_libraries(base_utils PUBLIC lib-deprecated-client ) target_sources(base_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/base_utils.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_util.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/node_by_host.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_util.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/node_by_host.cpp diff --git a/ydb/core/driver_lib/base_utils/CMakeLists.darwin-x86_64.txt b/ydb/core/driver_lib/base_utils/CMakeLists.darwin-x86_64.txt index d04bba414857..f63fcdb3fd04 100644 --- a/ydb/core/driver_lib/base_utils/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/driver_lib/base_utils/CMakeLists.darwin-x86_64.txt @@ -23,6 +23,10 @@ target_link_libraries(base_utils PUBLIC lib-deprecated-client ) target_sources(base_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/base_utils.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_util.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/node_by_host.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_util.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/node_by_host.cpp diff --git a/ydb/core/driver_lib/base_utils/CMakeLists.linux-aarch64.txt b/ydb/core/driver_lib/base_utils/CMakeLists.linux-aarch64.txt index fc2d0020a2c4..ed1df30b5638 100644 --- a/ydb/core/driver_lib/base_utils/CMakeLists.linux-aarch64.txt +++ b/ydb/core/driver_lib/base_utils/CMakeLists.linux-aarch64.txt @@ -24,6 +24,10 @@ target_link_libraries(base_utils PUBLIC lib-deprecated-client ) target_sources(base_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/base_utils.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_util.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/node_by_host.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_util.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/node_by_host.cpp diff --git a/ydb/core/driver_lib/base_utils/CMakeLists.linux-x86_64.txt b/ydb/core/driver_lib/base_utils/CMakeLists.linux-x86_64.txt index fc2d0020a2c4..ed1df30b5638 100644 --- a/ydb/core/driver_lib/base_utils/CMakeLists.linux-x86_64.txt +++ b/ydb/core/driver_lib/base_utils/CMakeLists.linux-x86_64.txt @@ -24,6 +24,10 @@ target_link_libraries(base_utils PUBLIC lib-deprecated-client ) target_sources(base_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/base_utils.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_util.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/node_by_host.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_util.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/node_by_host.cpp diff --git a/ydb/core/driver_lib/base_utils/CMakeLists.windows-x86_64.txt b/ydb/core/driver_lib/base_utils/CMakeLists.windows-x86_64.txt index d04bba414857..f63fcdb3fd04 100644 --- a/ydb/core/driver_lib/base_utils/CMakeLists.windows-x86_64.txt +++ b/ydb/core/driver_lib/base_utils/CMakeLists.windows-x86_64.txt @@ -23,6 +23,10 @@ target_link_libraries(base_utils PUBLIC lib-deprecated-client ) target_sources(base_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/base_utils.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_util.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/node_by_host.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/format_util.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/base_utils/node_by_host.cpp diff --git a/ydb/core/driver_lib/cli_config_base/CMakeLists.darwin-arm64.txt b/ydb/core/driver_lib/cli_config_base/CMakeLists.darwin-arm64.txt index 55f3c886ac72..9c98d7518960 100644 --- a/ydb/core/driver_lib/cli_config_base/CMakeLists.darwin-arm64.txt +++ b/ydb/core/driver_lib/cli_config_base/CMakeLists.darwin-arm64.txt @@ -20,5 +20,6 @@ target_link_libraries(core-driver_lib-cli_config_base PUBLIC library-yql-minikql ) target_sources(core-driver_lib-cli_config_base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_config_base/config_base.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_config_base/config_base.cpp ) diff --git a/ydb/core/driver_lib/cli_config_base/CMakeLists.darwin-x86_64.txt b/ydb/core/driver_lib/cli_config_base/CMakeLists.darwin-x86_64.txt index 55f3c886ac72..9c98d7518960 100644 --- a/ydb/core/driver_lib/cli_config_base/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/driver_lib/cli_config_base/CMakeLists.darwin-x86_64.txt @@ -20,5 +20,6 @@ target_link_libraries(core-driver_lib-cli_config_base PUBLIC library-yql-minikql ) target_sources(core-driver_lib-cli_config_base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_config_base/config_base.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_config_base/config_base.cpp ) diff --git a/ydb/core/driver_lib/cli_config_base/CMakeLists.linux-aarch64.txt b/ydb/core/driver_lib/cli_config_base/CMakeLists.linux-aarch64.txt index 60de3239637d..536b08e8b15b 100644 --- a/ydb/core/driver_lib/cli_config_base/CMakeLists.linux-aarch64.txt +++ b/ydb/core/driver_lib/cli_config_base/CMakeLists.linux-aarch64.txt @@ -21,5 +21,6 @@ target_link_libraries(core-driver_lib-cli_config_base PUBLIC library-yql-minikql ) target_sources(core-driver_lib-cli_config_base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_config_base/config_base.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_config_base/config_base.cpp ) diff --git a/ydb/core/driver_lib/cli_config_base/CMakeLists.linux-x86_64.txt b/ydb/core/driver_lib/cli_config_base/CMakeLists.linux-x86_64.txt index 60de3239637d..536b08e8b15b 100644 --- a/ydb/core/driver_lib/cli_config_base/CMakeLists.linux-x86_64.txt +++ b/ydb/core/driver_lib/cli_config_base/CMakeLists.linux-x86_64.txt @@ -21,5 +21,6 @@ target_link_libraries(core-driver_lib-cli_config_base PUBLIC library-yql-minikql ) target_sources(core-driver_lib-cli_config_base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_config_base/config_base.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_config_base/config_base.cpp ) diff --git a/ydb/core/driver_lib/cli_config_base/CMakeLists.windows-x86_64.txt b/ydb/core/driver_lib/cli_config_base/CMakeLists.windows-x86_64.txt index 55f3c886ac72..9c98d7518960 100644 --- a/ydb/core/driver_lib/cli_config_base/CMakeLists.windows-x86_64.txt +++ b/ydb/core/driver_lib/cli_config_base/CMakeLists.windows-x86_64.txt @@ -20,5 +20,6 @@ target_link_libraries(core-driver_lib-cli_config_base PUBLIC library-yql-minikql ) target_sources(core-driver_lib-cli_config_base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_config_base/config_base.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_config_base/config_base.cpp ) diff --git a/ydb/core/driver_lib/cli_utils/CMakeLists.darwin-arm64.txt b/ydb/core/driver_lib/cli_utils/CMakeLists.darwin-arm64.txt index a6fa732a27cd..9b0aef0e4ca9 100644 --- a/ydb/core/driver_lib/cli_utils/CMakeLists.darwin-arm64.txt +++ b/ydb/core/driver_lib/cli_utils/CMakeLists.darwin-arm64.txt @@ -40,6 +40,9 @@ target_link_libraries(cli_utils PUBLIC cpp-client-ydb_driver ) target_sources(cli_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmd_config.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_actorsystem_perftest.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmd_config.cpp diff --git a/ydb/core/driver_lib/cli_utils/CMakeLists.darwin-x86_64.txt b/ydb/core/driver_lib/cli_utils/CMakeLists.darwin-x86_64.txt index a6fa732a27cd..9b0aef0e4ca9 100644 --- a/ydb/core/driver_lib/cli_utils/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/driver_lib/cli_utils/CMakeLists.darwin-x86_64.txt @@ -40,6 +40,9 @@ target_link_libraries(cli_utils PUBLIC cpp-client-ydb_driver ) target_sources(cli_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmd_config.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_actorsystem_perftest.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmd_config.cpp diff --git a/ydb/core/driver_lib/cli_utils/CMakeLists.linux-aarch64.txt b/ydb/core/driver_lib/cli_utils/CMakeLists.linux-aarch64.txt index 65eb5ba00592..f622ee31dc5e 100644 --- a/ydb/core/driver_lib/cli_utils/CMakeLists.linux-aarch64.txt +++ b/ydb/core/driver_lib/cli_utils/CMakeLists.linux-aarch64.txt @@ -41,6 +41,9 @@ target_link_libraries(cli_utils PUBLIC cpp-client-ydb_driver ) target_sources(cli_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmd_config.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_actorsystem_perftest.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmd_config.cpp diff --git a/ydb/core/driver_lib/cli_utils/CMakeLists.linux-x86_64.txt b/ydb/core/driver_lib/cli_utils/CMakeLists.linux-x86_64.txt index 65eb5ba00592..f622ee31dc5e 100644 --- a/ydb/core/driver_lib/cli_utils/CMakeLists.linux-x86_64.txt +++ b/ydb/core/driver_lib/cli_utils/CMakeLists.linux-x86_64.txt @@ -41,6 +41,9 @@ target_link_libraries(cli_utils PUBLIC cpp-client-ydb_driver ) target_sources(cli_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmd_config.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_actorsystem_perftest.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmd_config.cpp diff --git a/ydb/core/driver_lib/cli_utils/CMakeLists.windows-x86_64.txt b/ydb/core/driver_lib/cli_utils/CMakeLists.windows-x86_64.txt index a6fa732a27cd..9b0aef0e4ca9 100644 --- a/ydb/core/driver_lib/cli_utils/CMakeLists.windows-x86_64.txt +++ b/ydb/core/driver_lib/cli_utils/CMakeLists.windows-x86_64.txt @@ -40,6 +40,9 @@ target_link_libraries(cli_utils PUBLIC cpp-client-ydb_driver ) target_sources(cli_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmd_config.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmds.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_actorsystem_perftest.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/cli_utils/cli_cmd_config.cpp diff --git a/ydb/core/driver_lib/cli_utils/cli_cmds_cms.cpp b/ydb/core/driver_lib/cli_utils/cli_cmds_cms.cpp index 59ae3bf3d06f..3206ff8b21fa 100644 --- a/ydb/core/driver_lib/cli_utils/cli_cmds_cms.cpp +++ b/ydb/core/driver_lib/cli_utils/cli_cmds_cms.cpp @@ -412,6 +412,7 @@ class TClientCommandMakeRequest : public TClientCommandWithAction { ui32 Minutes; TString TenantPolicy; TString AvailabilityMode; + i32 Priority; TClientCommandMakeRequest(const TString &description, NKikimrCms::TAction::EType type, @@ -433,6 +434,7 @@ class TClientCommandMakeRequest : public TClientCommandWithAction { EvictVDisks = false; Hours = 0; Minutes = 0; + Priority = 0; config.Opts->AddLongOption("user", "User name").Required() .RequiredArgument("NAME").StoreResult(&User); @@ -453,6 +455,9 @@ class TClientCommandMakeRequest : public TClientCommandWithAction { .RequiredArgument("max|keep|force").DefaultValue("max").StoreResult(&AvailabilityMode); config.Opts->AddLongOption("evict-vdisks", "Evict vdisks before granting permission(s)") .NoArgument().SetFlag(&EvictVDisks); + config.Opts->AddLongOption("priority", "Request priority") + .RequiredArgument("NUM").StoreResult(&Priority); + } void Parse(TConfig& config) override @@ -495,6 +500,9 @@ class TClientCommandMakeRequest : public TClientCommandWithAction { auto duration = TDuration::Minutes(Minutes) + TDuration::Hours(Hours); rec.SetDuration(duration.GetValue()); } + if (Priority) { + rec.SetPriority(Priority); + } } }; diff --git a/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp b/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp index 138f467ec37f..6445b7894b99 100644 --- a/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp +++ b/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp @@ -722,8 +722,23 @@ class TClientCommandServerBase : public TClientCommand { TRACE_CONFIG_CHANGE_INPLACE_T(TenantPoolConfig, UpdateExplicitly); } - if (config.ParseResult->Has("tenant") && InterconnectPort != DefaultInterconnectPort) { - AppConfig.MutableMonitoringConfig()->SetHostLabelOverride(HostAndICPort()); + if (config.ParseResult->Has("tenant")) { + if (AppConfig.GetDynamicNodeConfig().GetNodeInfo().HasName()) { + const TString& nodeName = AppConfig.GetDynamicNodeConfig().GetNodeInfo().GetName(); + AppConfig.MutableMonitoringConfig()->SetHostLabelOverride(nodeName); + TRACE_CONFIG_CHANGE_INPLACE_T(MonitoringConfig, UpdateExplicitly); + } else if (InterconnectPort != DefaultInterconnectPort) { + AppConfig.MutableMonitoringConfig()->SetHostLabelOverride(HostAndICPort()); + TRACE_CONFIG_CHANGE_INPLACE_T(MonitoringConfig, UpdateExplicitly); + } + } + + if (config.ParseResult->Has("tenant")) { + if (InterconnectPort == DefaultInterconnectPort) { + AppConfig.MutableMonitoringConfig()->SetProcessLocation(Host()); + } else { + AppConfig.MutableMonitoringConfig()->SetProcessLocation(HostAndICPort()); + } TRACE_CONFIG_CHANGE_INPLACE_T(MonitoringConfig, UpdateExplicitly); } @@ -823,6 +838,9 @@ class TClientCommandServerBase : public TClientCommand { } inline void LoadYamlConfig(TCallContext callCtx) { + if (!YamlConfigFile) { + return; + } auto yamlConfig = TFileInput(YamlConfigFile); NKikimrConfig::TAppConfig parsedConfig; NKikimr::NYaml::Parse(yamlConfig.ReadAll(), parsedConfig); @@ -986,11 +1004,18 @@ class TClientCommandServerBase : public TClientCommand { ShuffleRange(addrs); } - TString HostAndICPort() { + TString HostAndICPort() const { + auto hostname = Host(); + if (!hostname) { + return ""; + } + return TStringBuilder() << hostname << ":" << InterconnectPort; + } + + TString Host() const { try { auto hostname = to_lower(HostName()); - hostname = hostname.substr(0, hostname.find('.')); - return TStringBuilder() << hostname << ":" << InterconnectPort; + return hostname.substr(0, hostname.find('.')); } catch (TSystemError& error) { return ""; } @@ -1012,6 +1037,11 @@ class TClientCommandServerBase : public TClientCommand { result = TryToRegisterDynamicNodeViaDiscoveryService(addr, domainName, NodeHost, NodeAddress, NodeResolveHost, GetSchemePath()); if (result.IsSuccess()) { Cout << "Success. Registered via discovery service as " << result.GetNodeId() << Endl; + Cout << "Node name: "; + if (result.HasNodeName()) { + Cout << result.GetNodeName(); + } + Cout << Endl; break; } Cerr << "Registration error: " << static_cast(result) << Endl; @@ -1049,6 +1079,9 @@ class TClientCommandServerBase : public TClientCommand { nodeInfo->SetAddress(node.Address); nodeInfo->SetExpire(node.Expire); CopyNodeLocation(nodeInfo->MutableLocation(), node.Location); + if (result.HasNodeName()) { + nodeInfo->SetName(result.GetNodeName()); + } } else { auto &info = *nsConfig.AddNode(); info.SetNodeId(node.NodeId); diff --git a/ydb/core/driver_lib/run/CMakeLists.darwin-arm64.txt b/ydb/core/driver_lib/run/CMakeLists.darwin-arm64.txt index a3aa7ffb29f8..cb6369bf8a72 100644 --- a/ydb/core/driver_lib/run/CMakeLists.darwin-arm64.txt +++ b/ydb/core/driver_lib/run/CMakeLists.darwin-arm64.txt @@ -58,6 +58,8 @@ target_link_libraries(run PUBLIC ydb-core-formats fq-libs-init fq-libs-logs + core-graph-service + core-graph-shard ydb-core-grpc_services core-grpc_services-base core-grpc_services-auth_processor @@ -122,7 +124,7 @@ target_link_libraries(run PUBLIC library-folder_service-proto ydb-library-pdisk_io ydb-library-security - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 providers-pq-cm_client udf-service-exception_policy public-lib-base @@ -151,6 +153,16 @@ target_link_libraries(run PUBLIC ydb-services-ydb ) target_sources(run PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config_parser.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/driver.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/dummy.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/factories.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/kikimr_services_initializers.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/main.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/run.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/service_initializer.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/cert_auth_props.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/auto_config_initializer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config_parser.cpp diff --git a/ydb/core/driver_lib/run/CMakeLists.darwin-x86_64.txt b/ydb/core/driver_lib/run/CMakeLists.darwin-x86_64.txt index a3aa7ffb29f8..cb6369bf8a72 100644 --- a/ydb/core/driver_lib/run/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/driver_lib/run/CMakeLists.darwin-x86_64.txt @@ -58,6 +58,8 @@ target_link_libraries(run PUBLIC ydb-core-formats fq-libs-init fq-libs-logs + core-graph-service + core-graph-shard ydb-core-grpc_services core-grpc_services-base core-grpc_services-auth_processor @@ -122,7 +124,7 @@ target_link_libraries(run PUBLIC library-folder_service-proto ydb-library-pdisk_io ydb-library-security - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 providers-pq-cm_client udf-service-exception_policy public-lib-base @@ -151,6 +153,16 @@ target_link_libraries(run PUBLIC ydb-services-ydb ) target_sources(run PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config_parser.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/driver.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/dummy.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/factories.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/kikimr_services_initializers.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/main.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/run.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/service_initializer.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/cert_auth_props.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/auto_config_initializer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config_parser.cpp diff --git a/ydb/core/driver_lib/run/CMakeLists.linux-aarch64.txt b/ydb/core/driver_lib/run/CMakeLists.linux-aarch64.txt index 5d041be3895d..3558a2cdc1cb 100644 --- a/ydb/core/driver_lib/run/CMakeLists.linux-aarch64.txt +++ b/ydb/core/driver_lib/run/CMakeLists.linux-aarch64.txt @@ -59,6 +59,8 @@ target_link_libraries(run PUBLIC ydb-core-formats fq-libs-init fq-libs-logs + core-graph-service + core-graph-shard ydb-core-grpc_services core-grpc_services-base core-grpc_services-auth_processor @@ -123,7 +125,7 @@ target_link_libraries(run PUBLIC library-folder_service-proto ydb-library-pdisk_io ydb-library-security - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 providers-pq-cm_client udf-service-exception_policy public-lib-base @@ -152,6 +154,16 @@ target_link_libraries(run PUBLIC ydb-services-ydb ) target_sources(run PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config_parser.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/driver.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/dummy.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/factories.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/kikimr_services_initializers.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/main.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/run.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/service_initializer.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/cert_auth_props.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/auto_config_initializer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config_parser.cpp diff --git a/ydb/core/driver_lib/run/CMakeLists.linux-x86_64.txt b/ydb/core/driver_lib/run/CMakeLists.linux-x86_64.txt index 5d041be3895d..3558a2cdc1cb 100644 --- a/ydb/core/driver_lib/run/CMakeLists.linux-x86_64.txt +++ b/ydb/core/driver_lib/run/CMakeLists.linux-x86_64.txt @@ -59,6 +59,8 @@ target_link_libraries(run PUBLIC ydb-core-formats fq-libs-init fq-libs-logs + core-graph-service + core-graph-shard ydb-core-grpc_services core-grpc_services-base core-grpc_services-auth_processor @@ -123,7 +125,7 @@ target_link_libraries(run PUBLIC library-folder_service-proto ydb-library-pdisk_io ydb-library-security - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 providers-pq-cm_client udf-service-exception_policy public-lib-base @@ -152,6 +154,16 @@ target_link_libraries(run PUBLIC ydb-services-ydb ) target_sources(run PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config_parser.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/driver.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/dummy.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/factories.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/kikimr_services_initializers.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/main.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/run.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/service_initializer.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/cert_auth_props.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/auto_config_initializer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config_parser.cpp diff --git a/ydb/core/driver_lib/run/CMakeLists.windows-x86_64.txt b/ydb/core/driver_lib/run/CMakeLists.windows-x86_64.txt index a3aa7ffb29f8..cb6369bf8a72 100644 --- a/ydb/core/driver_lib/run/CMakeLists.windows-x86_64.txt +++ b/ydb/core/driver_lib/run/CMakeLists.windows-x86_64.txt @@ -58,6 +58,8 @@ target_link_libraries(run PUBLIC ydb-core-formats fq-libs-init fq-libs-logs + core-graph-service + core-graph-shard ydb-core-grpc_services core-grpc_services-base core-grpc_services-auth_processor @@ -122,7 +124,7 @@ target_link_libraries(run PUBLIC library-folder_service-proto ydb-library-pdisk_io ydb-library-security - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 providers-pq-cm_client udf-service-exception_policy public-lib-base @@ -151,6 +153,16 @@ target_link_libraries(run PUBLIC ydb-services-ydb ) target_sources(run PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config_parser.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/driver.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/dummy.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/factories.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/kikimr_services_initializers.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/main.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/run.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/service_initializer.h + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/cert_auth_props.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/auto_config_initializer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config.cpp ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/config_parser.cpp diff --git a/ydb/core/driver_lib/run/auto_config_initializer.cpp b/ydb/core/driver_lib/run/auto_config_initializer.cpp index d74c37609602..0aa3d8ce66e9 100644 --- a/ydb/core/driver_lib/run/auto_config_initializer.cpp +++ b/ydb/core/driver_lib/run/auto_config_initializer.cpp @@ -3,6 +3,7 @@ #include #include +#include #include namespace { @@ -50,27 +51,27 @@ namespace { { {2, 4}, {4, 8}, {1, 2}, {0, 0}, {1, 3} }, // 8 { {2, 5}, {4, 9}, {2, 3}, {0, 0}, {1, 3} }, // 9 { {2, 5}, {5, 10}, {2, 3}, {0, 0}, {1, 3} }, // 10 - { {2, 6}, {6, 11}, {2, 3}, {0, 0}, {2, 4} }, // 11 - { {2, 6}, {7, 12}, {2, 3}, {0, 0}, {2, 5} }, // 12 - { {3, 7}, {7, 13}, {2, 3}, {0, 0}, {2, 5} }, // 13 - { {3, 7}, {7, 14}, {2, 3}, {0, 0}, {3, 6} }, // 14 - { {3, 8}, {8, 15}, {2, 4}, {0, 0}, {3, 6} }, // 15 - { {3, 8}, {9, 16}, {2, 4}, {0, 0}, {3, 6} }, // 16 - { {3, 9}, {10, 17}, {2, 4}, {0, 0}, {3, 7} }, // 17 - { {3, 9}, {10, 18}, {3, 5}, {0, 0}, {3, 7} }, // 18 - { {4, 10}, {10, 19}, {3, 5}, {0, 0}, {4, 8} }, // 19 - { {4, 10}, {10, 20}, {3, 5}, {0, 0}, {4, 8} }, // 20 - { {4, 11}, {11, 21}, {3, 5}, {0, 0}, {4, 8} }, // 21 - { {4, 11}, {12, 22}, {3, 5}, {0, 0}, {4, 9} }, // 22 - { {4, 12}, {13, 23}, {3, 6}, {0, 0}, {4, 9} }, // 23 - { {4, 12}, {13, 24}, {3, 6}, {0, 0}, {5, 10} }, // 24 - { {5, 13}, {13, 25}, {3, 6}, {0, 0}, {5, 10} }, // 25 - { {5, 13}, {13, 26}, {4, 7}, {0, 0}, {5, 10} }, // 26 - { {5, 14}, {14, 27}, {4, 7}, {0, 0}, {5, 11} }, // 27 + { {2, 6}, {5, 11}, {2, 3}, {0, 0}, {2, 4} }, // 11 + { {2, 6}, {6, 12}, {2, 3}, {0, 0}, {2, 5} }, // 12 + { {3, 7}, {6, 13}, {2, 3}, {0, 0}, {2, 5} }, // 13 + { {3, 7}, {6, 14}, {2, 3}, {0, 0}, {3, 6} }, // 14 + { {3, 8}, {7, 15}, {2, 4}, {0, 0}, {3, 6} }, // 15 + { {3, 8}, {8, 16}, {2, 4}, {0, 0}, {3, 6} }, // 16 + { {3, 9}, {9, 17}, {2, 4}, {0, 0}, {3, 7} }, // 17 + { {3, 9}, {9, 18}, {3, 5}, {0, 0}, {3, 7} }, // 18 + { {3, 10}, {9, 19}, {3, 5}, {0, 0}, {4, 8} }, // 19 + { {4, 10}, {9, 20}, {3, 5}, {0, 0}, {4, 8} }, // 20 + { {4, 11}, {10, 21}, {3, 5}, {0, 0}, {4, 8} }, // 21 + { {4, 11}, {11, 22}, {3, 5}, {0, 0}, {4, 9} }, // 22 + { {4, 12}, {12, 23}, {3, 6}, {0, 0}, {4, 9} }, // 23 + { {4, 12}, {12, 24}, {3, 6}, {0, 0}, {5, 10} }, // 24 + { {5, 13}, {12, 25}, {3, 6}, {0, 0}, {5, 10} }, // 25 + { {5, 13}, {12, 26}, {4, 7}, {0, 0}, {5, 10} }, // 26 + { {5, 14}, {13, 27}, {4, 7}, {0, 0}, {5, 11} }, // 27 { {5, 14}, {14, 28}, {4, 7}, {0, 0}, {5, 11} }, // 28 - { {5, 15}, {15, 29}, {4, 8}, {0, 0}, {6, 12} }, // 29 - { {5, 15}, {16, 30}, {4, 8}, {0, 0}, {6, 12} }, // 30 - { {6, 18}, {16, 31}, {4, 8}, {0, 0}, {6, 12} }, // 31 + { {5, 15}, {14, 29}, {4, 8}, {0, 0}, {6, 12} }, // 29 + { {5, 15}, {15, 30}, {4, 8}, {0, 0}, {6, 12} }, // 30 + { {6, 18}, {15, 31}, {4, 8}, {0, 0}, {6, 12} }, // 31 }; TShortPoolCfg HybridCpuTable[MaxPreparedCpuCount + 1][5] { @@ -158,9 +159,11 @@ namespace { TShortPoolCfg result = cpuTable[MaxPreparedCpuCount][poolIdx]; result.ThreadCount *= k; result.MaxThreadCount *= k; - TShortPoolCfg additional = cpuTable[mod][poolIdx]; - result.ThreadCount += additional.ThreadCount; - result.MaxThreadCount += additional.MaxThreadCount; + if (mod) { + TShortPoolCfg additional = cpuTable[mod][poolIdx]; + result.ThreadCount += additional.ThreadCount; + result.MaxThreadCount += additional.MaxThreadCount; + } return result; } @@ -274,6 +277,13 @@ namespace NKikimr::NAutoConfigInitializer { config->GetNodeType() == NKikimrConfig::TActorSystemConfig::COMPUTE ? ComputeCpuTable : HybridCpuTable ); + // check cpu table + i16 cpuSum = 0; + for (auto poolKind : {EPoolKind::System, EPoolKind::User, EPoolKind::Batch, EPoolKind::IC}) { + TShortPoolCfg cfg = GetShortPoolChg(poolKind, cpuCount, cpuTable); + cpuSum += cfg.ThreadCount; + } + Y_VERIFY_S(cpuSum == cpuCount, "cpuSum# " << cpuSum << " cpuCount# " << cpuCount); for (ui32 poolIdx = 0; poolIdx < poolCount; ++poolIdx) { auto *executor = executors[poolIdx]; diff --git a/ydb/core/driver_lib/run/cert_auth_props.cpp b/ydb/core/driver_lib/run/cert_auth_props.cpp deleted file mode 100644 index d01c3140819c..000000000000 --- a/ydb/core/driver_lib/run/cert_auth_props.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include "cert_auth_props.h" - -namespace NKikimr { - -TDynamicNodeAuthorizationParams GetDynamicNodeAuthorizationParams(const NKikimrConfig::TClientCertificateAuthorization &clientSertificateAuth) { - TDynamicNodeAuthorizationParams certAuthConf; - if (!clientSertificateAuth.HasDynamicNodeAuthorization()) { - return certAuthConf; - } - - const auto& dynNodeAuth = clientSertificateAuth.GetDynamicNodeAuthorization(); - TDynamicNodeAuthorizationParams::TDistinguishedName distinguishedName; - for (const auto& term: dynNodeAuth.GetSubjectTerms()) { - auto name = TDynamicNodeAuthorizationParams::TRelativeDistinguishedName(term.GetShortName()); - for (const auto& value: term.GetValues()) { - name.AddValue(value); - } - for (const auto& suffix: term.GetSuffixes()) { - name.AddSuffix(suffix); - } - distinguishedName.AddRelativeDistinguishedName(std::move(name)); - } - certAuthConf.AddCertSubjectDescription(distinguishedName); - certAuthConf.CanCheckNodeByAttributeCN = dynNodeAuth.GetCanCheckNodeHostByCN(); - return certAuthConf; -} - -} //namespace NKikimr diff --git a/ydb/core/driver_lib/run/cert_auth_props.h b/ydb/core/driver_lib/run/cert_auth_props.h deleted file mode 100644 index 2b69e6aaff9f..000000000000 --- a/ydb/core/driver_lib/run/cert_auth_props.h +++ /dev/null @@ -1,11 +0,0 @@ -#pragma once - -#include -#include -#include - -namespace NKikimr { - -TDynamicNodeAuthorizationParams GetDynamicNodeAuthorizationParams(const NKikimrConfig::TClientCertificateAuthorization& clientSertificateAuth); - -} //namespace NKikimr diff --git a/ydb/core/driver_lib/run/config.h b/ydb/core/driver_lib/run/config.h index 2cd944329a68..9a113c5d5f3d 100644 --- a/ydb/core/driver_lib/run/config.h +++ b/ydb/core/driver_lib/run/config.h @@ -84,6 +84,7 @@ union TBasicKikimrServicesMask { bool EnableDatabaseMetadataCache:1; bool EnableGraphService:1; + bool EnableCompDiskLimiter:1; }; struct { @@ -125,6 +126,7 @@ union TBasicKikimrServicesMask { TBasicKikimrServicesMask() { EnableAll(); + EnableDatabaseMetadataCache = false; } }; diff --git a/ydb/core/driver_lib/run/factories.h b/ydb/core/driver_lib/run/factories.h index e309fda49a0f..c8b96e4e5a90 100644 --- a/ydb/core/driver_lib/run/factories.h +++ b/ydb/core/driver_lib/run/factories.h @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -40,7 +41,7 @@ struct TModuleFactories { // Factory for Simple queue services implementation details std::shared_ptr SqsEventsWriterFactory; - IActor*(*CreateTicketParser)(const NKikimrProto::TAuthConfig&); + IActor*(*CreateTicketParser)(const TTicketParserSettings&); IActor*(*FolderServiceFactory)(const NKikimrProto::NFolderService::TFolderServiceConfig&); // Factory for grpc services @@ -56,7 +57,7 @@ struct TModuleFactories { std::shared_ptr DataStreamsAuthFactory; std::vector AdditionalComputationNodeFactories; - std::unique_ptr(*WilsonGrpcSignerFactory)(const NKikimrConfig::TTracingConfig::TAuthConfig&); + std::unique_ptr(*WilsonGrpcSignerFactory)(const NKikimrConfig::TTracingConfig::TBackendConfig::TAuthConfig&); ~TModuleFactories(); }; diff --git a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp index 38da10016654..5b9227507286 100644 --- a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp +++ b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -115,7 +116,8 @@ #include #include -#include +#include +#include #include #include @@ -173,9 +175,12 @@ #include #include -#include #include +#include #include +#include +#include +#include #include #include @@ -534,6 +539,16 @@ static TInterconnectSettings GetInterconnectSettings(const NKikimrConfig::TInter } result.SocketBacklogSize = config.GetSocketBacklogSize(); + if (config.HasFirstErrorSleep()) { + result.FirstErrorSleep = DurationFromProto(config.GetFirstErrorSleep()); + } + if (config.HasMaxErrorSleep()) { + result.MaxErrorSleep = DurationFromProto(config.GetMaxErrorSleep()); + } + if (config.HasErrorSleepRetryMultiplier()) { + result.ErrorSleepRetryMultiplier = config.GetErrorSleepRetryMultiplier(); + } + return result; } @@ -697,8 +712,10 @@ void TBasicServicesInitializer::InitializeServices(NActors::TActorSystemSetup* s data.Yellow ? NKikimrWhiteboard::EFlag::Yellow : data.Orange ? NKikimrWhiteboard::EFlag::Orange : data.Red ? NKikimrWhiteboard::EFlag::Red : NKikimrWhiteboard::EFlag())); - data.ActorSystem->Send(whiteboardId, new NNodeWhiteboard::TEvWhiteboard::TEvClockSkewUpdate( - data.PeerId, data.ClockSkew)); + if (data.ReportClockSkew) { + data.ActorSystem->Send(whiteboardId, new NNodeWhiteboard::TEvWhiteboard::TEvClockSkewUpdate( + data.PeerId, data.ClockSkew)); + } }; } @@ -826,22 +843,69 @@ void TBasicServicesInitializer::InitializeServices(NActors::TActorSystemSetup* s } } - if (Config.HasTracingConfig()) { - const auto& tracing = Config.GetTracingConfig(); + if (Config.HasTracingConfig() && Config.GetTracingConfig().HasBackend()) { + const auto& tracingConfig = Config.GetTracingConfig(); + const auto& tracingBackend = tracingConfig.GetBackend(); + std::unique_ptr grpcSigner; - if (tracing.HasAuthConfig() && Factories && Factories->WilsonGrpcSignerFactory) { - grpcSigner = Factories->WilsonGrpcSignerFactory(tracing.GetAuthConfig()); + if (tracingBackend.HasAuthConfig() && Factories && Factories->WilsonGrpcSignerFactory) { + grpcSigner = Factories->WilsonGrpcSignerFactory(tracingBackend.GetAuthConfig()); + if (!grpcSigner) { + Cerr << "Failed to initialize wilson grpc signer due to misconfiguration. Config provided: " + << tracingBackend.GetAuthConfig().DebugString() << Endl; + } + } + + std::unique_ptr wilsonUploader; + switch (tracingBackend.GetBackendCase()) { + case NKikimrConfig::TTracingConfig::TBackendConfig::BackendCase::kOpentelemetry: { + const auto& opentelemetry = tracingBackend.GetOpentelemetry(); + if (!(opentelemetry.HasCollectorUrl() && opentelemetry.HasServiceName())) { + Cerr << "Both collector_url and service_name should be present in opentelemetry backend config" << Endl; + break; + } + + NWilson::TWilsonUploaderParams uploaderParams { + .CollectorUrl = opentelemetry.GetCollectorUrl(), + .ServiceName = opentelemetry.GetServiceName(), + .GrpcSigner = std::move(grpcSigner), + }; + + if (tracingConfig.HasUploader()) { + const auto& uploaderConfig = tracingConfig.GetUploader(); + +#ifdef GET_FIELD_FROM_CONFIG +#error Macro collision +#endif +#define GET_FIELD_FROM_CONFIG(field) \ + if (uploaderConfig.Has##field()) { \ + uploaderParams.field = uploaderConfig.Get##field(); \ + } + + GET_FIELD_FROM_CONFIG(MaxExportedSpansPerSecond) + GET_FIELD_FROM_CONFIG(MaxSpansInBatch) + GET_FIELD_FROM_CONFIG(MaxBytesInBatch) + GET_FIELD_FROM_CONFIG(MaxBatchAccumulationMilliseconds) + GET_FIELD_FROM_CONFIG(SpanExportTimeoutSeconds) + GET_FIELD_FROM_CONFIG(MaxExportRequestsInflight) + +#undef GET_FIELD_FROM_CONFIG + } + + wilsonUploader.reset(std::move(uploaderParams).CreateUploader()); + break; + } + + case NKikimrConfig::TTracingConfig::TBackendConfig::BackendCase::BACKEND_NOT_SET: { + Cerr << "No backend option was provided in tracing config" << Endl; + break; + } + } + if (wilsonUploader) { + setup->LocalServices.emplace_back( + NWilson::MakeWilsonUploaderId(), + TActorSetupCmd(wilsonUploader.release(), TMailboxType::ReadAsFilled, appData->BatchPoolId)); } - auto wilsonUploader = NWilson::WilsonUploaderParams { - .Host = tracing.GetHost(), - .Port = static_cast(tracing.GetPort()), - .RootCA = tracing.GetRootCA(), - .ServiceName = tracing.GetServiceName(), - .GrpcSigner = std::move(grpcSigner), - }.CreateUploader(); - setup->LocalServices.emplace_back( - NWilson::MakeWilsonUploaderId(), - TActorSetupCmd(wilsonUploader, TMailboxType::ReadAsFilled, appData->BatchPoolId)); } } @@ -1560,10 +1624,19 @@ void TSecurityServicesInitializer::InitializeServices(NActors::TActorSystemSetup } if (!IsServiceInitialized(setup, MakeTicketParserID())) { IActor* ticketParser = nullptr; + auto grpcConfig = Config.GetGRpcConfig(); + TTicketParserSettings settings { + .AuthConfig = Config.GetAuthConfig(), + .CertificateAuthValues = { + .ClientCertificateAuthorization = Config.GetClientCertificateAuthorization(), + .ServerCertificateFilePath = grpcConfig.GetCert(), + .Domain = Config.GetAuthConfig().GetCertificateAuthenticationDomain() + } + }; if (Factories && Factories->CreateTicketParser) { - ticketParser = Factories->CreateTicketParser(Config.GetAuthConfig()); + ticketParser = Factories->CreateTicketParser(settings); } else { - ticketParser = CreateTicketParser(Config.GetAuthConfig()); + ticketParser = CreateTicketParser(settings); } if (ticketParser) { setup->LocalServices.push_back(std::pair(MakeTicketParserID(), @@ -1616,15 +1689,22 @@ void TGRpcServicesInitializer::InitializeServices(NActors::TActorSystemSetup* se if (!IsServiceInitialized(setup, NGRpcService::CreateGRpcRequestProxyId(0))) { const size_t proxyCount = Config.HasGRpcConfig() ? Config.GetGRpcConfig().GetGRpcProxyCount() : 1UL; + NJaegerTracing::TSamplingThrottlingConfigurator tracingConfigurator(appData->TimeProvider, appData->RandomProvider); for (size_t i = 0; i < proxyCount; ++i) { auto grpcReqProxy = Config.HasGRpcConfig() && Config.GetGRpcConfig().GetSkipSchemeCheck() ? NGRpcService::CreateGRpcRequestProxySimple(Config) - : NGRpcService::CreateGRpcRequestProxy(Config, appData->Icb); + : NGRpcService::CreateGRpcRequestProxy(Config, tracingConfigurator.GetControl()); setup->LocalServices.push_back(std::pair(NGRpcService::CreateGRpcRequestProxyId(i), TActorSetupCmd(grpcReqProxy, TMailboxType::ReadAsFilled, appData->UserPoolId))); } + setup->LocalServices.push_back(std::pair( + TActorId(), + TActorSetupCmd( + NConsole::CreateJaegerTracingConfigurator(std::move(tracingConfigurator), Config.GetTracingConfig()), + TMailboxType::ReadAsFilled, + appData->UserPoolId))); } if (!IsServiceInitialized(setup, NKesus::MakeKesusProxyServiceId())) { @@ -2051,7 +2131,7 @@ void TKqpServiceInitializer::InitializeServices(NActors::TActorSystemSetup* setu auto kqpProxySharedResources = std::make_shared(); - // Crate resource manager + // Create resource manager auto rm = NKqp::CreateKqpResourceManagerActor(Config.GetTableServiceConfig().GetResourceManager(), nullptr, {}, kqpProxySharedResources); setup->LocalServices.push_back(std::make_pair( @@ -2080,6 +2160,26 @@ void TKqpServiceInitializer::InitializeServices(NActors::TActorSystemSetup* setu } } +TCompDiskLimiterInitializer::TCompDiskLimiterInitializer(const TKikimrRunConfig& runConfig) + : IKikimrServicesInitializer(runConfig) { +} + +void TCompDiskLimiterInitializer::InitializeServices(NActors::TActorSystemSetup* setup, const NKikimr::TAppData* appData) { + NLimiter::TConfig serviceConfig; + Y_ABORT_UNLESS(serviceConfig.DeserializeFromProto(Config.GetCompDiskLimiterConfig())); + + if (serviceConfig.IsEnabled()) { + TIntrusivePtr<::NMonitoring::TDynamicCounters> tabletGroup = GetServiceCounters(appData->Counters, "tablets"); + TIntrusivePtr<::NMonitoring::TDynamicCounters> countersGroup = tabletGroup->GetSubgroup("type", "TX_COMP_DISK_LIMITER"); + + auto service = NLimiter::TCompDiskOperator::CreateService(serviceConfig, countersGroup); + + setup->LocalServices.push_back(std::make_pair( + NLimiter::TCompDiskOperator::MakeServiceId(NodeId), + TActorSetupCmd(service, TMailboxType::HTSwap, appData->UserPoolId))); + } +} + TCompConveyorInitializer::TCompConveyorInitializer(const TKikimrRunConfig& runConfig) : IKikimrServicesInitializer(runConfig) { } @@ -2381,7 +2481,18 @@ TConfigsDispatcherInitializer::TConfigsDispatcherInitializer(const TKikimrRunCon } void TConfigsDispatcherInitializer::InitializeServices(NActors::TActorSystemSetup* setup, const NKikimr::TAppData* appData) { - IActor* actor = NConsole::CreateConfigsDispatcher(Config, Labels, InitialCmsConfig, InitialCmsYamlConfig, ConfigInitInfo); + NKikimr::NConsole::TConfigsDispatcherInitInfo initInfo { + .InitialConfig = Config, + .Labels = Labels, + .ItemsServeRules = std::monostate{}, + .DebugInfo = NKikimr::NConsole::TDebugInfo { + .StaticConfig = Config, + .OldDynConfig = InitialCmsConfig, + .NewDynConfig = InitialCmsYamlConfig, + .InitInfo = ConfigInitInfo, + }, + }; + IActor* actor = NConsole::CreateConfigsDispatcher(initInfo); setup->LocalServices.push_back(std::pair( NConsole::MakeConfigsDispatcherID(NodeId), TActorSetupCmd(actor, TMailboxType::HTSwap, appData->UserPoolId))); diff --git a/ydb/core/driver_lib/run/kikimr_services_initializers.h b/ydb/core/driver_lib/run/kikimr_services_initializers.h index 2b6cd37f7c6d..7a541f380817 100644 --- a/ydb/core/driver_lib/run/kikimr_services_initializers.h +++ b/ydb/core/driver_lib/run/kikimr_services_initializers.h @@ -391,6 +391,12 @@ class TKqpServiceInitializer : public IKikimrServicesInitializer { IGlobalObjectStorage& GlobalObjects; }; +class TCompDiskLimiterInitializer: public IKikimrServicesInitializer { +public: + TCompDiskLimiterInitializer(const TKikimrRunConfig& runConfig); + void InitializeServices(NActors::TActorSystemSetup* setup, const NKikimr::TAppData* appData) override; +}; + class TCompConveyorInitializer: public IKikimrServicesInitializer { public: TCompConveyorInitializer(const TKikimrRunConfig& runConfig); diff --git a/ydb/core/driver_lib/run/run.cpp b/ydb/core/driver_lib/run/run.cpp index 9691bc7f542f..5208eb2239b1 100644 --- a/ydb/core/driver_lib/run/run.cpp +++ b/ydb/core/driver_lib/run/run.cpp @@ -1,7 +1,5 @@ #include "auto_config_initializer.h" #include "run.h" -#include "dummy.h" -#include "cert_auth_props.h" #include "service_initializer.h" #include "kikimr_services_initializers.h" @@ -222,6 +220,11 @@ class TDomainsInitializer : public IAppDataInitializer { appData->AllAuthenticatedUsers = allUsersGroup; } } + if (securityConfig.RegisterDynamicNodeAllowedSIDsSize() > 0) { + const auto& allowedSids = securityConfig.GetRegisterDynamicNodeAllowedSIDs(); + TVector registerDynamicNodeAllowedSIDs(allowedSids.cbegin(), allowedSids.cend()); + appData->RegisterDynamicNodeAllowedSIDs = std::move(registerDynamicNodeAllowedSIDs); + } appData->FeatureFlags = Config.GetFeatureFlags(); appData->AllowHugeKeyValueDeletes = Config.GetFeatureFlags().GetAllowHugeKeyValueDeletes(); @@ -637,6 +640,10 @@ void TKikimrRunner::InitializeGRpc(const TKikimrRunConfig& runConfig) { hasImport = true; } + if (hasTableService || hasYql) { + hasQueryService = true; + } + // Enable RL for all services if enabled list is empty if (rlServicesEnabled.empty()) { for (auto& [name, cfg] : names) { @@ -685,9 +692,6 @@ void TKikimrRunner::InitializeGRpc(const TKikimrRunConfig& runConfig) { if (hasLegacy) { // start legacy service auto grpcService = new NGRpcProxy::TGRpcService(); - if (!opts.SslData.Empty()) { - grpcService->SetDynamicNodeAuthParams(GetDynamicNodeAuthorizationParams(appConfig.GetClientCertificateAuthorization())); - } auto future = grpcService->Prepare(ActorSystem.Get(), NMsgBusProxy::CreatePersQueueMetaCacheV2Id(), NMsgBusProxy::CreateMsgBusProxyId(), Counters); auto startCb = [grpcService](NThreading::TFuture result) { if (result.HasException()) { @@ -789,19 +793,11 @@ void TKikimrRunner::InitializeGRpc(const TKikimrRunConfig& runConfig) { } if (hasDiscovery) { - auto discoveryService = new NGRpcService::TGRpcDiscoveryService(ActorSystem.Get(), Counters,grpcRequestProxies[0], hasDiscovery.IsRlAllowed()); - if (!opts.SslData.Empty()) { - discoveryService->SetDynamicNodeAuthParams(GetDynamicNodeAuthorizationParams(appConfig.GetClientCertificateAuthorization())); - } - server.AddService(discoveryService); + server.AddService(new NGRpcService::TGRpcDiscoveryService(ActorSystem.Get(), Counters,grpcRequestProxies[0], hasDiscovery.IsRlAllowed())); } if (hasLocalDiscovery) { - auto localDiscoveryService = new NGRpcService::TGRpcLocalDiscoveryService(grpcConfig, ActorSystem.Get(), Counters, grpcRequestProxies[0]); - if (!opts.SslData.Empty()) { - localDiscoveryService->SetDynamicNodeAuthParams(GetDynamicNodeAuthorizationParams(appConfig.GetClientCertificateAuthorization())); - } - server.AddService(localDiscoveryService); + server.AddService(new NGRpcService::TGRpcLocalDiscoveryService(grpcConfig, ActorSystem.Get(), Counters, grpcRequestProxies[0])); } if (hasRateLimiter) { @@ -832,7 +828,7 @@ void TKikimrRunner::InitializeGRpc(const TKikimrRunConfig& runConfig) { if (hasQueryService) { server.AddService(new NGRpcService::TGRpcYdbQueryService(ActorSystem.Get(), Counters, - grpcRequestProxies[0], hasDataStreams.IsRlAllowed())); + grpcRequestProxies, hasDataStreams.IsRlAllowed(), grpcConfig.GetHandlersPerCompletionQueue())); } if (hasLogStore) { @@ -901,7 +897,7 @@ void TKikimrRunner::InitializeGRpc(const TKikimrRunConfig& runConfig) { sslData.Root = ReadFile(pathToCaFile); sslData.Cert = ReadFile(pathToCertificateFile); sslData.Key = ReadFile(pathToPrivateKeyFile); - sslData.DoRequestClientCertificate = appConfig.GetFeatureFlags().GetEnableDynamicNodeAuthorization() && appConfig.GetClientCertificateAuthorization().HasDynamicNodeAuthorization(); + sslData.DoRequestClientCertificate = appConfig.GetClientCertificateAuthorization().GetRequestClientCertificate(); sslOpts.SetSslData(sslData); GRpcServers.push_back({ "grpcs", new NYdbGrpc::TGRpcServer(sslOpts) }); @@ -1071,6 +1067,10 @@ void TKikimrRunner::InitializeAppData(const TKikimrRunConfig& runConfig) AppData->TenantName = runConfig.TenantName; + if (runConfig.AppConfig.GetDynamicNodeConfig().GetNodeInfo().HasName()) { + AppData->NodeName = runConfig.AppConfig.GetDynamicNodeConfig().GetNodeInfo().GetName(); + } + if (runConfig.AppConfig.HasBootstrapConfig()) { AppData->BootstrapConfig = runConfig.AppConfig.GetBootstrapConfig(); } @@ -1508,6 +1508,10 @@ TIntrusivePtr TKikimrRunner::CreateServiceInitializers sil->AddServiceInitializer(new TExternalIndexInitializer(runConfig)); } + if (serviceMask.EnableCompDiskLimiter) { + sil->AddServiceInitializer(new TCompDiskLimiterInitializer(runConfig)); + } + if (serviceMask.EnableScanConveyor) { sil->AddServiceInitializer(new TScanConveyorInitializer(runConfig)); } @@ -1684,8 +1688,8 @@ void TKikimrRunner::KikimrStop(bool graceful) { } auto stillOnline = drainProgress->GetOnlineTabletsEstimate(); - if (stillOnline) { - Cerr << "Drain completed, but " << stillOnline << " tablet(s) are online." << Endl; + if (stillOnline > 0) { + Cerr << "Drain completed, but " << *stillOnline << " tablet(s) are online." << Endl; } } diff --git a/ydb/core/driver_lib/run/ut/CMakeLists.darwin-arm64.txt b/ydb/core/driver_lib/run/ut/CMakeLists.darwin-arm64.txt index 892768c8c49b..1da1bb546635 100644 --- a/ydb/core/driver_lib/run/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/driver_lib/run/ut/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-core-driver_lib-run-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-driver_lib-run-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/auto_config_initializer_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/driver_lib/run/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/driver_lib/run/ut/CMakeLists.darwin-x86_64.txt index efd77ad094cd..6889623691fb 100644 --- a/ydb/core/driver_lib/run/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/driver_lib/run/ut/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-driver_lib-run-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-driver_lib-run-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/auto_config_initializer_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/driver_lib/run/ut/CMakeLists.linux-aarch64.txt b/ydb/core/driver_lib/run/ut/CMakeLists.linux-aarch64.txt index 096613ddb59e..98ae15ff5be1 100644 --- a/ydb/core/driver_lib/run/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/driver_lib/run/ut/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-core-driver_lib-run-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-driver_lib-run-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/auto_config_initializer_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/driver_lib/run/ut/CMakeLists.linux-x86_64.txt b/ydb/core/driver_lib/run/ut/CMakeLists.linux-x86_64.txt index 272f212f575e..f4b3cd1e2c39 100644 --- a/ydb/core/driver_lib/run/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/driver_lib/run/ut/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-driver_lib-run-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-driver_lib-run-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/run/auto_config_initializer_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/driver_lib/run/ut/CMakeLists.windows-x86_64.txt b/ydb/core/driver_lib/run/ut/CMakeLists.windows-x86_64.txt index cbb124fc9e41..66f69e8e562a 100644 --- a/ydb/core/driver_lib/run/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/driver_lib/run/ut/CMakeLists.windows-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/driver_lib/run/ya.make b/ydb/core/driver_lib/run/ya.make index 63b1a7f4cc5c..f071a9c79400 100644 --- a/ydb/core/driver_lib/run/ya.make +++ b/ydb/core/driver_lib/run/ya.make @@ -19,8 +19,6 @@ SRCS( run.h service_initializer.cpp service_initializer.h - cert_auth_props.h - cert_auth_props.cpp ) PEERDIR( @@ -71,9 +69,9 @@ PEERDIR( ydb/core/graph/shard ydb/core/grpc_services ydb/core/grpc_services/base - ydb/core/grpc_services/auth_processor ydb/core/health_check ydb/core/http_proxy + ydb/core/jaeger_tracing ydb/core/kesus/proxy ydb/core/kesus/tablet ydb/core/keyvalue @@ -100,6 +98,7 @@ PEERDIR( ydb/core/scheme ydb/core/scheme_types ydb/core/security + ydb/core/security/ldap_auth_provider ydb/core/statistics ydb/core/statistics/aggregator ydb/core/sys_view/processor @@ -112,6 +111,7 @@ PEERDIR( ydb/core/tx/columnshard ydb/core/tx/coordinator ydb/core/tx/conveyor/service + ydb/core/tx/limiter/service ydb/core/tx/datashard ydb/core/tx/long_tx_service ydb/core/tx/long_tx_service/public diff --git a/ydb/core/driver_lib/version/CMakeLists.darwin-arm64.txt b/ydb/core/driver_lib/version/CMakeLists.darwin-arm64.txt index 122d3326b3bf..328f804c830f 100644 --- a/ydb/core/driver_lib/version/CMakeLists.darwin-arm64.txt +++ b/ydb/core/driver_lib/version/CMakeLists.darwin-arm64.txt @@ -20,5 +20,6 @@ target_link_libraries(version PUBLIC core-viewer-json ) target_sources(version PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/version.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/version.cpp ) diff --git a/ydb/core/driver_lib/version/CMakeLists.darwin-x86_64.txt b/ydb/core/driver_lib/version/CMakeLists.darwin-x86_64.txt index 122d3326b3bf..328f804c830f 100644 --- a/ydb/core/driver_lib/version/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/driver_lib/version/CMakeLists.darwin-x86_64.txt @@ -20,5 +20,6 @@ target_link_libraries(version PUBLIC core-viewer-json ) target_sources(version PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/version.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/version.cpp ) diff --git a/ydb/core/driver_lib/version/CMakeLists.linux-aarch64.txt b/ydb/core/driver_lib/version/CMakeLists.linux-aarch64.txt index 475f443e9685..8d91cfefea6f 100644 --- a/ydb/core/driver_lib/version/CMakeLists.linux-aarch64.txt +++ b/ydb/core/driver_lib/version/CMakeLists.linux-aarch64.txt @@ -21,5 +21,6 @@ target_link_libraries(version PUBLIC core-viewer-json ) target_sources(version PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/version.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/version.cpp ) diff --git a/ydb/core/driver_lib/version/CMakeLists.linux-x86_64.txt b/ydb/core/driver_lib/version/CMakeLists.linux-x86_64.txt index 475f443e9685..8d91cfefea6f 100644 --- a/ydb/core/driver_lib/version/CMakeLists.linux-x86_64.txt +++ b/ydb/core/driver_lib/version/CMakeLists.linux-x86_64.txt @@ -21,5 +21,6 @@ target_link_libraries(version PUBLIC core-viewer-json ) target_sources(version PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/version.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/version.cpp ) diff --git a/ydb/core/driver_lib/version/CMakeLists.windows-x86_64.txt b/ydb/core/driver_lib/version/CMakeLists.windows-x86_64.txt index 122d3326b3bf..328f804c830f 100644 --- a/ydb/core/driver_lib/version/CMakeLists.windows-x86_64.txt +++ b/ydb/core/driver_lib/version/CMakeLists.windows-x86_64.txt @@ -20,5 +20,6 @@ target_link_libraries(version PUBLIC core-viewer-json ) target_sources(version PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/version.h ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/version.cpp ) diff --git a/ydb/core/driver_lib/version/ut/CMakeLists.darwin-arm64.txt b/ydb/core/driver_lib/version/ut/CMakeLists.darwin-arm64.txt index 8f1886e8debb..340107041898 100644 --- a/ydb/core/driver_lib/version/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/driver_lib/version/ut/CMakeLists.darwin-arm64.txt @@ -16,13 +16,12 @@ target_link_libraries(ydb-core-driver_lib-version-ut PUBLIC yutil cpp-testing-unittest_main version + version_definition ) target_link_options(ydb-core-driver_lib-version-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-driver_lib-version-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/ut/version_ut.cpp @@ -52,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/driver_lib/version/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/driver_lib/version/ut/CMakeLists.darwin-x86_64.txt index e0a3ec19bc8b..11879a5ca99b 100644 --- a/ydb/core/driver_lib/version/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/driver_lib/version/ut/CMakeLists.darwin-x86_64.txt @@ -17,13 +17,12 @@ target_link_libraries(ydb-core-driver_lib-version-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main version + version_definition ) target_link_options(ydb-core-driver_lib-version-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-driver_lib-version-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/ut/version_ut.cpp @@ -53,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/driver_lib/version/ut/CMakeLists.linux-aarch64.txt b/ydb/core/driver_lib/version/ut/CMakeLists.linux-aarch64.txt index 0905a7b00a6f..c2f3a1a268e1 100644 --- a/ydb/core/driver_lib/version/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/driver_lib/version/ut/CMakeLists.linux-aarch64.txt @@ -17,6 +17,7 @@ target_link_libraries(ydb-core-driver_lib-version-ut PUBLIC yutil cpp-testing-unittest_main version + version_definition ) target_link_options(ydb-core-driver_lib-version-ut PRIVATE -ldl @@ -24,9 +25,6 @@ target_link_options(ydb-core-driver_lib-version-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-driver_lib-version-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/ut/version_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/driver_lib/version/ut/CMakeLists.linux-x86_64.txt b/ydb/core/driver_lib/version/ut/CMakeLists.linux-x86_64.txt index 7e32e2defdf3..6b89d73255c3 100644 --- a/ydb/core/driver_lib/version/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/driver_lib/version/ut/CMakeLists.linux-x86_64.txt @@ -18,6 +18,7 @@ target_link_libraries(ydb-core-driver_lib-version-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main version + version_definition ) target_link_options(ydb-core-driver_lib-version-ut PRIVATE -ldl @@ -25,9 +26,6 @@ target_link_options(ydb-core-driver_lib-version-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-driver_lib-version-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/ut/version_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/driver_lib/version/ut/CMakeLists.windows-x86_64.txt b/ydb/core/driver_lib/version/ut/CMakeLists.windows-x86_64.txt index 811a5dda44d3..5d3d9db541e7 100644 --- a/ydb/core/driver_lib/version/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/driver_lib/version/ut/CMakeLists.windows-x86_64.txt @@ -17,6 +17,7 @@ target_link_libraries(ydb-core-driver_lib-version-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main version + version_definition ) target_sources(ydb-core-driver_lib-version-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/driver_lib/version/ut/version_ut.cpp @@ -46,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/driver_lib/version/ut/ya.make b/ydb/core/driver_lib/version/ut/ya.make index 0c5a755c2a82..4b3833beacea 100644 --- a/ydb/core/driver_lib/version/ut/ya.make +++ b/ydb/core/driver_lib/version/ut/ya.make @@ -7,6 +7,7 @@ SIZE(MEDIUM) PEERDIR( ydb/core/driver_lib/version + ydb/apps/version ) END() diff --git a/ydb/core/driver_lib/version/version.cpp b/ydb/core/driver_lib/version/version.cpp index 4781640d0339..3e3ac3a7df01 100644 --- a/ydb/core/driver_lib/version/version.cpp +++ b/ydb/core/driver_lib/version/version.cpp @@ -17,20 +17,17 @@ using EComponentId = NKikimrConfig::TCompatibilityRule; using TComponentId = NKikimrConfig::TCompatibilityRule::EComponentId; TCompatibilityInfo::TCompatibilityInfo() { - using TCurrentConstructor = TCompatibilityInfo::TProtoConstructor::TCurrentCompatibilityInfo; using TStoredConstructor = TCompatibilityInfo::TProtoConstructor::TStoredCompatibilityInfo; - // using TCompatibilityRuleConstructor = TCompatibilityInfo::TProtoConstructor::TCompatibilityRule; using TVersionConstructor = TCompatibilityInfo::TProtoConstructor::TVersion; ///////////////////////////////////////////////////////// // Current CompatibilityInfo ///////////////////////////////////////////////////////// - auto current = TCurrentConstructor{ - .Application = "ydb" - }.ToPB(); + auto current = MakeCurrent(); - // bool success = CompleteFromTag(current); + bool success = CompleteFromTag(current); + Y_UNUSED(success); // Y_ABORT_UNLESS(success); CurrentCompatibilityInfo.CopyFrom(current); @@ -76,12 +73,13 @@ const TStored* TCompatibilityInfo::GetDefault(TComponentId componentId) const { // obsolete version control TMaybe VERSION = NActors::TInterconnectProxyCommon::TVersionInfo{ // version of this binary - "trunk", + "stable-24-2", // 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-24-1", + "stable-24-2" } }; diff --git a/ydb/core/driver_lib/version/version.h b/ydb/core/driver_lib/version/version.h index 1ecf76cb9e28..a18b2ad0cb5b 100644 --- a/ydb/core/driver_lib/version/version.h +++ b/ydb/core/driver_lib/version/version.h @@ -141,6 +141,8 @@ class TCompatibilityInfo { bool CompleteFromTag(NKikimrConfig::TCurrentCompatibilityInfo& current); + static NKikimrConfig::TCurrentCompatibilityInfo MakeCurrent(); + NKikimrConfig::TStoredCompatibilityInfo MakeStored(TComponentId componentId) const; NKikimrConfig::TStoredCompatibilityInfo MakeStored(TComponentId componentId, const NKikimrConfig::TCurrentCompatibilityInfo* current) const; diff --git a/ydb/core/engine/CMakeLists.darwin-arm64.txt b/ydb/core/engine/CMakeLists.darwin-arm64.txt index e424e4640f26..026972831831 100644 --- a/ydb/core/engine/CMakeLists.darwin-arm64.txt +++ b/ydb/core/engine/CMakeLists.darwin-arm64.txt @@ -26,11 +26,12 @@ target_link_libraries(ydb-core-engine PUBLIC ydb-library-mkql_proto library-mkql_proto-protos api-protos - minikql-comp_nodes-llvm + yql-minikql-comp_nodes parser-pg_wrapper-interface yql-public-decimal ) target_sources(ydb-core-engine PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_proto.h ${CMAKE_SOURCE_DIR}/ydb/core/engine/kikimr_program_builder.cpp ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat.cpp ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat_extfunc.cpp diff --git a/ydb/core/engine/CMakeLists.darwin-x86_64.txt b/ydb/core/engine/CMakeLists.darwin-x86_64.txt index e424e4640f26..026972831831 100644 --- a/ydb/core/engine/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/engine/CMakeLists.darwin-x86_64.txt @@ -26,11 +26,12 @@ target_link_libraries(ydb-core-engine PUBLIC ydb-library-mkql_proto library-mkql_proto-protos api-protos - minikql-comp_nodes-llvm + yql-minikql-comp_nodes parser-pg_wrapper-interface yql-public-decimal ) target_sources(ydb-core-engine PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_proto.h ${CMAKE_SOURCE_DIR}/ydb/core/engine/kikimr_program_builder.cpp ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat.cpp ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat_extfunc.cpp diff --git a/ydb/core/engine/CMakeLists.linux-aarch64.txt b/ydb/core/engine/CMakeLists.linux-aarch64.txt index 4650f2e89a16..1b38ba2411e2 100644 --- a/ydb/core/engine/CMakeLists.linux-aarch64.txt +++ b/ydb/core/engine/CMakeLists.linux-aarch64.txt @@ -27,11 +27,12 @@ target_link_libraries(ydb-core-engine PUBLIC ydb-library-mkql_proto library-mkql_proto-protos api-protos - minikql-comp_nodes-llvm + yql-minikql-comp_nodes parser-pg_wrapper-interface yql-public-decimal ) target_sources(ydb-core-engine PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_proto.h ${CMAKE_SOURCE_DIR}/ydb/core/engine/kikimr_program_builder.cpp ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat.cpp ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat_extfunc.cpp diff --git a/ydb/core/engine/CMakeLists.linux-x86_64.txt b/ydb/core/engine/CMakeLists.linux-x86_64.txt index 4650f2e89a16..1b38ba2411e2 100644 --- a/ydb/core/engine/CMakeLists.linux-x86_64.txt +++ b/ydb/core/engine/CMakeLists.linux-x86_64.txt @@ -27,11 +27,12 @@ target_link_libraries(ydb-core-engine PUBLIC ydb-library-mkql_proto library-mkql_proto-protos api-protos - minikql-comp_nodes-llvm + yql-minikql-comp_nodes parser-pg_wrapper-interface yql-public-decimal ) target_sources(ydb-core-engine PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_proto.h ${CMAKE_SOURCE_DIR}/ydb/core/engine/kikimr_program_builder.cpp ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat.cpp ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat_extfunc.cpp diff --git a/ydb/core/engine/CMakeLists.windows-x86_64.txt b/ydb/core/engine/CMakeLists.windows-x86_64.txt index e424e4640f26..026972831831 100644 --- a/ydb/core/engine/CMakeLists.windows-x86_64.txt +++ b/ydb/core/engine/CMakeLists.windows-x86_64.txt @@ -26,11 +26,12 @@ target_link_libraries(ydb-core-engine PUBLIC ydb-library-mkql_proto library-mkql_proto-protos api-protos - minikql-comp_nodes-llvm + yql-minikql-comp_nodes parser-pg_wrapper-interface yql-public-decimal ) target_sources(ydb-core-engine PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_proto.h ${CMAKE_SOURCE_DIR}/ydb/core/engine/kikimr_program_builder.cpp ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat.cpp ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat_extfunc.cpp diff --git a/ydb/core/engine/minikql/CMakeLists.darwin-arm64.txt b/ydb/core/engine/minikql/CMakeLists.darwin-arm64.txt index 924d66edc5bf..a87666e19b47 100644 --- a/ydb/core/engine/minikql/CMakeLists.darwin-arm64.txt +++ b/ydb/core/engine/minikql/CMakeLists.darwin-arm64.txt @@ -22,6 +22,8 @@ target_link_libraries(core-engine-minikql PUBLIC parser-pg_wrapper-interface ) target_sources(core-engine-minikql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/flat_local_minikql_host.h + ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/minikql_engine_host.h ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/flat_local_tx_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/minikql_engine_host.cpp ) diff --git a/ydb/core/engine/minikql/CMakeLists.darwin-x86_64.txt b/ydb/core/engine/minikql/CMakeLists.darwin-x86_64.txt index 924d66edc5bf..a87666e19b47 100644 --- a/ydb/core/engine/minikql/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/engine/minikql/CMakeLists.darwin-x86_64.txt @@ -22,6 +22,8 @@ target_link_libraries(core-engine-minikql PUBLIC parser-pg_wrapper-interface ) target_sources(core-engine-minikql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/flat_local_minikql_host.h + ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/minikql_engine_host.h ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/flat_local_tx_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/minikql_engine_host.cpp ) diff --git a/ydb/core/engine/minikql/CMakeLists.linux-aarch64.txt b/ydb/core/engine/minikql/CMakeLists.linux-aarch64.txt index 2189242369ab..639aaefe3f81 100644 --- a/ydb/core/engine/minikql/CMakeLists.linux-aarch64.txt +++ b/ydb/core/engine/minikql/CMakeLists.linux-aarch64.txt @@ -23,6 +23,8 @@ target_link_libraries(core-engine-minikql PUBLIC parser-pg_wrapper-interface ) target_sources(core-engine-minikql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/flat_local_minikql_host.h + ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/minikql_engine_host.h ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/flat_local_tx_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/minikql_engine_host.cpp ) diff --git a/ydb/core/engine/minikql/CMakeLists.linux-x86_64.txt b/ydb/core/engine/minikql/CMakeLists.linux-x86_64.txt index 2189242369ab..639aaefe3f81 100644 --- a/ydb/core/engine/minikql/CMakeLists.linux-x86_64.txt +++ b/ydb/core/engine/minikql/CMakeLists.linux-x86_64.txt @@ -23,6 +23,8 @@ target_link_libraries(core-engine-minikql PUBLIC parser-pg_wrapper-interface ) target_sources(core-engine-minikql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/flat_local_minikql_host.h + ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/minikql_engine_host.h ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/flat_local_tx_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/minikql_engine_host.cpp ) diff --git a/ydb/core/engine/minikql/CMakeLists.windows-x86_64.txt b/ydb/core/engine/minikql/CMakeLists.windows-x86_64.txt index 924d66edc5bf..a87666e19b47 100644 --- a/ydb/core/engine/minikql/CMakeLists.windows-x86_64.txt +++ b/ydb/core/engine/minikql/CMakeLists.windows-x86_64.txt @@ -22,6 +22,8 @@ target_link_libraries(core-engine-minikql PUBLIC parser-pg_wrapper-interface ) target_sources(core-engine-minikql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/flat_local_minikql_host.h + ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/minikql_engine_host.h ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/flat_local_tx_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/core/engine/minikql/minikql_engine_host.cpp ) diff --git a/ydb/core/engine/minikql/minikql_engine_host.cpp b/ydb/core/engine/minikql/minikql_engine_host.cpp index bbddd3310ca3..0305762e618b 100644 --- a/ydb/core/engine/minikql/minikql_engine_host.cpp +++ b/ydb/core/engine/minikql/minikql_engine_host.cpp @@ -73,7 +73,7 @@ bool TEngineHost::IsValidKey(TKeyDesc& key) const { return NMiniKQL::IsValidKey(Scheme, localTableId, key); } ui64 TEngineHost::CalculateReadSize(const TVector& keys) const { - NTable::TSizeEnv env; + auto env = Db.CreateSizeEnv(); for (const TKeyDesc* ki : keys) { DoCalculateReadSize(*ki, env); @@ -120,7 +120,7 @@ ui64 TEngineHost::CalculateResultSize(const TKeyDesc& key) const { if (key.Range.Point) { return Db.EstimateRowSize(localTid); } else { - NTable::TSizeEnv env; + auto env = Db.CreateSizeEnv(); DoCalculateReadSize(key, env); ui64 size = env.GetSize(); diff --git a/ydb/core/engine/mkql_proto.cpp b/ydb/core/engine/mkql_proto.cpp index 7ed500cc1a73..4725924e7c84 100644 --- a/ydb/core/engine/mkql_proto.cpp +++ b/ydb/core/engine/mkql_proto.cpp @@ -13,9 +13,11 @@ namespace NKikimr::NMiniKQL { // NOTE: TCell's can reference memomry from tupleValue +// TODO: Place notNull flag in to the NScheme::TTypeInfo? bool CellsFromTuple(const NKikimrMiniKQL::TType* tupleType, const NKikimrMiniKQL::TValue& tupleValue, const TConstArrayRef& types, + TVector notNullTypes, bool allowCastFromString, TVector& key, TString& errStr, @@ -28,6 +30,18 @@ bool CellsFromTuple(const NKikimrMiniKQL::TType* tupleType, return false; \ } + // Please note we modify notNullTypes during tuplyType verification to allow cast nullable to non nullable value + if (notNullTypes) { + CHECK_OR_RETURN_ERROR(notNullTypes.size() == types.size(), + "The size of type array and given not null markers must be equial"); + if (tupleType) { + CHECK_OR_RETURN_ERROR(notNullTypes.size() >= tupleType->GetTuple().ElementSize(), + "The size of tuple type and given not null markers must be equal"); + } + } else { + notNullTypes.resize(types.size()); + } + if (tupleType) { CHECK_OR_RETURN_ERROR(tupleType->GetKind() == NKikimrMiniKQL::Tuple || (tupleType->GetKind() == NKikimrMiniKQL::Unknown && tupleType->GetTuple().ElementSize() == 0), "Must be a tuple"); @@ -36,8 +50,14 @@ bool CellsFromTuple(const NKikimrMiniKQL::TType* tupleType, for (size_t i = 0; i < tupleType->GetTuple().ElementSize(); ++i) { const auto& ti = tupleType->GetTuple().GetElement(i); - CHECK_OR_RETURN_ERROR(ti.GetKind() == NKikimrMiniKQL::Optional, "Element at index " + ToString(i) + " in not an Optional"); - const auto& item = ti.GetOptional().GetItem(); + if (notNullTypes[i]) { + // For not null column type we allow to build cell from nullable mkql type for compatibility reason. + notNullTypes[i] = ti.GetKind() != NKikimrMiniKQL::Optional; + } else { + // But we do not allow to build cell for nullable column from not nullable type + CHECK_OR_RETURN_ERROR(ti.GetKind() == NKikimrMiniKQL::Optional, "Element at index " + ToString(i) + " in not an Optional"); + } + const auto& item = notNullTypes[i] ? ti : ti.GetOptional().GetItem(); CHECK_OR_RETURN_ERROR(item.GetKind() == NKikimrMiniKQL::Data, "Element at index " + ToString(i) + " Item kind is not Data"); const auto& typeId = item.GetData().GetScheme(); CHECK_OR_RETURN_ERROR(typeId == types[i].GetTypeId() || @@ -53,26 +73,36 @@ bool CellsFromTuple(const NKikimrMiniKQL::TType* tupleType, } for (ui32 i = 0; i < tupleValue.TupleSize(); ++i) { - auto& o = tupleValue.GetTuple(i); - - auto element_case = o.value_value_case(); - - CHECK_OR_RETURN_ERROR(element_case == NKikimrMiniKQL::TValue::kOptional || - element_case == NKikimrMiniKQL::TValue::VALUE_VALUE_NOT_SET, - Sprintf("Optional type is expected in tuple at position %" PRIu32, i)); - CHECK_OR_RETURN_ERROR(o.ListSize() == 0 && - o.StructSize() == 0 && - o.TupleSize() == 0 && - o.DictSize() == 0, - Sprintf("Optional type is expected in tuple at position %" PRIu32, i)); + auto& o = tupleValue.GetTuple(i); - if (!o.HasOptional()) { - key.push_back(TCell()); - continue; + if (notNullTypes[i]) { + CHECK_OR_RETURN_ERROR(o.ListSize() == 0 && + o.StructSize() == 0 && + o.TupleSize() == 0 && + o.DictSize() == 0 && + !o.HasOptional(), + Sprintf("Primitive type is expected in tuple at position %" PRIu32, i)); + } else { + auto element_case = o.value_value_case(); + + CHECK_OR_RETURN_ERROR(element_case == NKikimrMiniKQL::TValue::kOptional || + element_case == NKikimrMiniKQL::TValue::VALUE_VALUE_NOT_SET, + Sprintf("Optional type is expected in tuple at position %" PRIu32, i)); + + CHECK_OR_RETURN_ERROR(o.ListSize() == 0 && + o.StructSize() == 0 && + o.TupleSize() == 0 && + o.DictSize() == 0, + Sprintf("Optional type is expected in tuple at position %" PRIu32, i)); + + if (!o.HasOptional()) { + key.push_back(TCell()); + continue; + } } - auto& v = o.GetOptional(); + auto& v = notNullTypes[i] ? o : o.GetOptional(); auto value_case = v.value_value_case(); diff --git a/ydb/core/engine/mkql_proto.h b/ydb/core/engine/mkql_proto.h index 6e7880622785..ce9da1e72125 100644 --- a/ydb/core/engine/mkql_proto.h +++ b/ydb/core/engine/mkql_proto.h @@ -16,6 +16,7 @@ class THolderFactory; bool CellsFromTuple(const NKikimrMiniKQL::TType* tupleType, const NKikimrMiniKQL::TValue& tupleValue, const TConstArrayRef& expectedTypes, + TVector notNullTypes, bool allowCastFromString, TVector& key, TString& errStr, diff --git a/ydb/core/engine/mkql_proto_ut.cpp b/ydb/core/engine/mkql_proto_ut.cpp index eda9583be7cf..39e24b6968e8 100644 --- a/ydb/core/engine/mkql_proto_ut.cpp +++ b/ydb/core/engine/mkql_proto_ut.cpp @@ -511,7 +511,7 @@ Y_UNIT_TEST(TestExportVariantStructTypeYdb) { TVector cells; TVector memoryOwner; TString errStr; - bool res = CellsFromTuple(¶ms.GetType(), params.GetValue(), types, true, cells, errStr, memoryOwner); + bool res = CellsFromTuple(¶ms.GetType(), params.GetValue(), types, {}, true, cells, errStr, memoryOwner); UNIT_ASSERT_VALUES_EQUAL_C(res, errStr.empty(), paramsProto); return errStr; diff --git a/ydb/core/engine/ut/CMakeLists.darwin-arm64.txt b/ydb/core/engine/ut/CMakeLists.darwin-arm64.txt index fc6a0f5a05da..9dfe0f7e9b39 100644 --- a/ydb/core/engine/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/engine/ut/CMakeLists.darwin-arm64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-core-engine-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-engine-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat_host_ut.cpp @@ -64,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/engine/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/engine/ut/CMakeLists.darwin-x86_64.txt index 77157af6b6f9..ee369a3e16ae 100644 --- a/ydb/core/engine/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/engine/ut/CMakeLists.darwin-x86_64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-core-engine-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-engine-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat_host_ut.cpp @@ -65,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/engine/ut/CMakeLists.linux-aarch64.txt b/ydb/core/engine/ut/CMakeLists.linux-aarch64.txt index f8f1f84e4903..36fc34aa6490 100644 --- a/ydb/core/engine/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/engine/ut/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-core-engine-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-engine-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat_host_ut.cpp @@ -68,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/engine/ut/CMakeLists.linux-x86_64.txt b/ydb/core/engine/ut/CMakeLists.linux-x86_64.txt index caa1af7aa60b..f9f848b5043b 100644 --- a/ydb/core/engine/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/engine/ut/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-core-engine-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-engine-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/engine/mkql_engine_flat_host_ut.cpp @@ -69,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/engine/ut/CMakeLists.windows-x86_64.txt b/ydb/core/engine/ut/CMakeLists.windows-x86_64.txt index e846ff614d7d..3c1c869716d9 100644 --- a/ydb/core/engine/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/engine/ut/CMakeLists.windows-x86_64.txt @@ -58,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/erasure/CMakeLists.darwin-arm64.txt b/ydb/core/erasure/CMakeLists.darwin-arm64.txt index 068a0bb37ac0..e88fc798e5ef 100644 --- a/ydb/core/erasure/CMakeLists.darwin-arm64.txt +++ b/ydb/core/erasure/CMakeLists.darwin-arm64.txt @@ -21,6 +21,8 @@ target_link_libraries(ydb-core-erasure PUBLIC ydb-core-debug ) target_sources(ydb-core-erasure PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure.h + ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_rope.h ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure.cpp ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_rope.cpp ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_perf_test.cpp diff --git a/ydb/core/erasure/CMakeLists.darwin-x86_64.txt b/ydb/core/erasure/CMakeLists.darwin-x86_64.txt index 068a0bb37ac0..e88fc798e5ef 100644 --- a/ydb/core/erasure/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/erasure/CMakeLists.darwin-x86_64.txt @@ -21,6 +21,8 @@ target_link_libraries(ydb-core-erasure PUBLIC ydb-core-debug ) target_sources(ydb-core-erasure PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure.h + ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_rope.h ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure.cpp ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_rope.cpp ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_perf_test.cpp diff --git a/ydb/core/erasure/CMakeLists.linux-aarch64.txt b/ydb/core/erasure/CMakeLists.linux-aarch64.txt index ffd9912bb95e..bc37231d6225 100644 --- a/ydb/core/erasure/CMakeLists.linux-aarch64.txt +++ b/ydb/core/erasure/CMakeLists.linux-aarch64.txt @@ -22,6 +22,8 @@ target_link_libraries(ydb-core-erasure PUBLIC ydb-core-debug ) target_sources(ydb-core-erasure PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure.h + ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_rope.h ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure.cpp ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_rope.cpp ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_perf_test.cpp diff --git a/ydb/core/erasure/CMakeLists.linux-x86_64.txt b/ydb/core/erasure/CMakeLists.linux-x86_64.txt index ffd9912bb95e..bc37231d6225 100644 --- a/ydb/core/erasure/CMakeLists.linux-x86_64.txt +++ b/ydb/core/erasure/CMakeLists.linux-x86_64.txt @@ -22,6 +22,8 @@ target_link_libraries(ydb-core-erasure PUBLIC ydb-core-debug ) target_sources(ydb-core-erasure PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure.h + ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_rope.h ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure.cpp ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_rope.cpp ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_perf_test.cpp diff --git a/ydb/core/erasure/CMakeLists.windows-x86_64.txt b/ydb/core/erasure/CMakeLists.windows-x86_64.txt index 71aec8b22643..fe2e5a32528a 100644 --- a/ydb/core/erasure/CMakeLists.windows-x86_64.txt +++ b/ydb/core/erasure/CMakeLists.windows-x86_64.txt @@ -24,6 +24,8 @@ target_link_libraries(ydb-core-erasure PUBLIC ydb-core-debug ) target_sources(ydb-core-erasure PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure.h + ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_rope.h ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure.cpp ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_rope.cpp ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_perf_test.cpp diff --git a/ydb/core/erasure/ut/CMakeLists.darwin-arm64.txt b/ydb/core/erasure/ut/CMakeLists.darwin-arm64.txt index fe867c1d46f8..c2bf1145834f 100644 --- a/ydb/core/erasure/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/erasure/ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ 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 @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/erasure/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/erasure/ut/CMakeLists.darwin-x86_64.txt index ff15eec7e550..ba77c9d20c87 100644 --- a/ydb/core/erasure/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/erasure/ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ 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 @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/erasure/ut/CMakeLists.linux-aarch64.txt b/ydb/core/erasure/ut/CMakeLists.linux-aarch64.txt index 2282138caa05..162b123f722c 100644 --- a/ydb/core/erasure/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/erasure/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-core-erasure-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-erasure-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/erasure/ut/CMakeLists.linux-x86_64.txt b/ydb/core/erasure/ut/CMakeLists.linux-x86_64.txt index fb817d461ff9..a2fbe6582226 100644 --- a/ydb/core/erasure/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/erasure/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-core-erasure-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-erasure-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/erasure/ut/CMakeLists.windows-x86_64.txt b/ydb/core/erasure/ut/CMakeLists.windows-x86_64.txt index 1dc16fe51f6a..01fcc7bcd0d5 100644 --- a/ydb/core/erasure/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/erasure/ut/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/erasure/ut_perf/CMakeLists.darwin-arm64.txt b/ydb/core/erasure/ut_perf/CMakeLists.darwin-arm64.txt index 19e7454b5fb0..53e65c0f7f88 100644 --- a/ydb/core/erasure/ut_perf/CMakeLists.darwin-arm64.txt +++ b/ydb/core/erasure/ut_perf/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ 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 @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 82951db456ff..6586d72db955 100644 --- a/ydb/core/erasure/ut_perf/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/erasure/ut_perf/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ 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 @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/erasure/ut_perf/CMakeLists.linux-aarch64.txt b/ydb/core/erasure/ut_perf/CMakeLists.linux-aarch64.txt index 9084a377ad9c..a41bc735badd 100644 --- a/ydb/core/erasure/ut_perf/CMakeLists.linux-aarch64.txt +++ b/ydb/core/erasure/ut_perf/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-core-erasure-ut_perf PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-erasure-ut_perf PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_perf_test.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/erasure/ut_perf/CMakeLists.linux-x86_64.txt b/ydb/core/erasure/ut_perf/CMakeLists.linux-x86_64.txt index 4ff939bb432a..54fc31d8fe96 100644 --- a/ydb/core/erasure/ut_perf/CMakeLists.linux-x86_64.txt +++ b/ydb/core/erasure/ut_perf/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-core-erasure-ut_perf PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-erasure-ut_perf PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_perf_test.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/erasure/ut_perf/CMakeLists.windows-x86_64.txt b/ydb/core/erasure/ut_perf/CMakeLists.windows-x86_64.txt index af7c68bbe07f..1a9822e31957 100644 --- a/ydb/core/erasure/ut_perf/CMakeLists.windows-x86_64.txt +++ b/ydb/core/erasure/ut_perf/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/erasure/ut_rope/CMakeLists.darwin-arm64.txt b/ydb/core/erasure/ut_rope/CMakeLists.darwin-arm64.txt index 480656c7c6b4..f213db6ebbd6 100644 --- a/ydb/core/erasure/ut_rope/CMakeLists.darwin-arm64.txt +++ b/ydb/core/erasure/ut_rope/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ 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 @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 f07378583d3c..b7b1269a1760 100644 --- a/ydb/core/erasure/ut_rope/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/erasure/ut_rope/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ 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 @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/erasure/ut_rope/CMakeLists.linux-aarch64.txt b/ydb/core/erasure/ut_rope/CMakeLists.linux-aarch64.txt index bf91fac5d78a..cebc58d48775 100644 --- a/ydb/core/erasure/ut_rope/CMakeLists.linux-aarch64.txt +++ b/ydb/core/erasure/ut_rope/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-core-erasure-ut_rope PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-erasure-ut_rope PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_rope_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/erasure/ut_rope/CMakeLists.linux-x86_64.txt b/ydb/core/erasure/ut_rope/CMakeLists.linux-x86_64.txt index 5ceba48e1ed6..1d11fb6337bd 100644 --- a/ydb/core/erasure/ut_rope/CMakeLists.linux-x86_64.txt +++ b/ydb/core/erasure/ut_rope/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-core-erasure-ut_rope PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-erasure-ut_rope PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/erasure/erasure_rope_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/erasure/ut_rope/CMakeLists.windows-x86_64.txt b/ydb/core/erasure/ut_rope/CMakeLists.windows-x86_64.txt index 817347b30741..f2afbf4c4c8a 100644 --- a/ydb/core/erasure/ut_rope/CMakeLists.windows-x86_64.txt +++ b/ydb/core/erasure/ut_rope/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/external_sources/ut/CMakeLists.darwin-arm64.txt b/ydb/core/external_sources/ut/CMakeLists.darwin-arm64.txt index 1b138ada4702..6152d8ac5b52 100644 --- a/ydb/core/external_sources/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/external_sources/ut/CMakeLists.darwin-arm64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-core-external_sources-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-external_sources-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/external_sources/object_storage_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/external_sources/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/external_sources/ut/CMakeLists.darwin-x86_64.txt index 608d02c37e92..2ccc1091a751 100644 --- a/ydb/core/external_sources/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/external_sources/ut/CMakeLists.darwin-x86_64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-core-external_sources-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-external_sources-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/external_sources/object_storage_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/external_sources/ut/CMakeLists.linux-aarch64.txt b/ydb/core/external_sources/ut/CMakeLists.linux-aarch64.txt index 60647ffd9dbc..830b2eececcb 100644 --- a/ydb/core/external_sources/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/external_sources/ut/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-core-external_sources-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-external_sources-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/external_sources/object_storage_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/external_sources/ut/CMakeLists.linux-x86_64.txt b/ydb/core/external_sources/ut/CMakeLists.linux-x86_64.txt index 3b617e428312..38259a6fba6b 100644 --- a/ydb/core/external_sources/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/external_sources/ut/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-core-external_sources-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-external_sources-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/external_sources/object_storage_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/external_sources/ut/CMakeLists.windows-x86_64.txt b/ydb/core/external_sources/ut/CMakeLists.windows-x86_64.txt index 8679bf77c692..f9378fda1ba8 100644 --- a/ydb/core/external_sources/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/external_sources/ut/CMakeLists.windows-x86_64.txt @@ -49,6 +49,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/formats/CMakeLists.darwin-arm64.txt b/ydb/core/formats/CMakeLists.darwin-arm64.txt index f1230dd58c11..0dc3d23c5805 100644 --- a/ydb/core/formats/CMakeLists.darwin-arm64.txt +++ b/ydb/core/formats/CMakeLists.darwin-arm64.txt @@ -18,5 +18,7 @@ target_link_libraries(ydb-core-formats PUBLIC ydb-core-scheme ) target_sources(ydb-core-formats PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/formats/clickhouse_block.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/factory.h ${CMAKE_SOURCE_DIR}/ydb/core/formats/clickhouse_block.cpp ) diff --git a/ydb/core/formats/CMakeLists.darwin-x86_64.txt b/ydb/core/formats/CMakeLists.darwin-x86_64.txt index f1230dd58c11..0dc3d23c5805 100644 --- a/ydb/core/formats/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/formats/CMakeLists.darwin-x86_64.txt @@ -18,5 +18,7 @@ target_link_libraries(ydb-core-formats PUBLIC ydb-core-scheme ) target_sources(ydb-core-formats PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/formats/clickhouse_block.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/factory.h ${CMAKE_SOURCE_DIR}/ydb/core/formats/clickhouse_block.cpp ) diff --git a/ydb/core/formats/CMakeLists.linux-aarch64.txt b/ydb/core/formats/CMakeLists.linux-aarch64.txt index 0c1fd44e5f26..4e6274ea56f1 100644 --- a/ydb/core/formats/CMakeLists.linux-aarch64.txt +++ b/ydb/core/formats/CMakeLists.linux-aarch64.txt @@ -19,5 +19,7 @@ target_link_libraries(ydb-core-formats PUBLIC ydb-core-scheme ) target_sources(ydb-core-formats PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/formats/clickhouse_block.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/factory.h ${CMAKE_SOURCE_DIR}/ydb/core/formats/clickhouse_block.cpp ) diff --git a/ydb/core/formats/CMakeLists.linux-x86_64.txt b/ydb/core/formats/CMakeLists.linux-x86_64.txt index 0c1fd44e5f26..4e6274ea56f1 100644 --- a/ydb/core/formats/CMakeLists.linux-x86_64.txt +++ b/ydb/core/formats/CMakeLists.linux-x86_64.txt @@ -19,5 +19,7 @@ target_link_libraries(ydb-core-formats PUBLIC ydb-core-scheme ) target_sources(ydb-core-formats PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/formats/clickhouse_block.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/factory.h ${CMAKE_SOURCE_DIR}/ydb/core/formats/clickhouse_block.cpp ) diff --git a/ydb/core/formats/CMakeLists.windows-x86_64.txt b/ydb/core/formats/CMakeLists.windows-x86_64.txt index f1230dd58c11..0dc3d23c5805 100644 --- a/ydb/core/formats/CMakeLists.windows-x86_64.txt +++ b/ydb/core/formats/CMakeLists.windows-x86_64.txt @@ -18,5 +18,7 @@ target_link_libraries(ydb-core-formats PUBLIC ydb-core-scheme ) target_sources(ydb-core-formats PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/formats/clickhouse_block.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/factory.h ${CMAKE_SOURCE_DIR}/ydb/core/formats/clickhouse_block.cpp ) diff --git a/ydb/core/formats/arrow/CMakeLists.darwin-arm64.txt b/ydb/core/formats/arrow/CMakeLists.darwin-arm64.txt index e6f485e74179..8c8d349fc9ff 100644 --- a/ydb/core/formats/arrow/CMakeLists.darwin-arm64.txt +++ b/ydb/core/formats/arrow/CMakeLists.darwin-arm64.txt @@ -7,7 +7,6 @@ add_subdirectory(common) -add_subdirectory(compression) add_subdirectory(dictionary) add_subdirectory(hash) add_subdirectory(reader) @@ -40,9 +39,15 @@ target_link_libraries(core-formats-arrow PUBLIC ydb-library-binary_json ydb-library-dynumber ydb-library-services + core-arrow_kernels-request ydb-library-arrow_clickhouse ) target_sources(core-formats-arrow PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/converter.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/input_stream.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/merging_sorted_input_stream.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/one_batch_input_stream.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/sort_cursor.h ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_batch_builder.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_filter.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_helpers.cpp diff --git a/ydb/core/formats/arrow/CMakeLists.darwin-x86_64.txt b/ydb/core/formats/arrow/CMakeLists.darwin-x86_64.txt index e6f485e74179..8c8d349fc9ff 100644 --- a/ydb/core/formats/arrow/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/formats/arrow/CMakeLists.darwin-x86_64.txt @@ -7,7 +7,6 @@ add_subdirectory(common) -add_subdirectory(compression) add_subdirectory(dictionary) add_subdirectory(hash) add_subdirectory(reader) @@ -40,9 +39,15 @@ target_link_libraries(core-formats-arrow PUBLIC ydb-library-binary_json ydb-library-dynumber ydb-library-services + core-arrow_kernels-request ydb-library-arrow_clickhouse ) target_sources(core-formats-arrow PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/converter.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/input_stream.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/merging_sorted_input_stream.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/one_batch_input_stream.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/sort_cursor.h ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_batch_builder.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_filter.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_helpers.cpp diff --git a/ydb/core/formats/arrow/CMakeLists.linux-aarch64.txt b/ydb/core/formats/arrow/CMakeLists.linux-aarch64.txt index 92b2cb86a557..048cb62cfeb4 100644 --- a/ydb/core/formats/arrow/CMakeLists.linux-aarch64.txt +++ b/ydb/core/formats/arrow/CMakeLists.linux-aarch64.txt @@ -7,7 +7,6 @@ add_subdirectory(common) -add_subdirectory(compression) add_subdirectory(dictionary) add_subdirectory(hash) add_subdirectory(reader) @@ -41,9 +40,15 @@ target_link_libraries(core-formats-arrow PUBLIC ydb-library-binary_json ydb-library-dynumber ydb-library-services + core-arrow_kernels-request ydb-library-arrow_clickhouse ) target_sources(core-formats-arrow PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/converter.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/input_stream.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/merging_sorted_input_stream.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/one_batch_input_stream.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/sort_cursor.h ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_batch_builder.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_filter.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_helpers.cpp diff --git a/ydb/core/formats/arrow/CMakeLists.linux-x86_64.txt b/ydb/core/formats/arrow/CMakeLists.linux-x86_64.txt index 92b2cb86a557..048cb62cfeb4 100644 --- a/ydb/core/formats/arrow/CMakeLists.linux-x86_64.txt +++ b/ydb/core/formats/arrow/CMakeLists.linux-x86_64.txt @@ -7,7 +7,6 @@ add_subdirectory(common) -add_subdirectory(compression) add_subdirectory(dictionary) add_subdirectory(hash) add_subdirectory(reader) @@ -41,9 +40,15 @@ target_link_libraries(core-formats-arrow PUBLIC ydb-library-binary_json ydb-library-dynumber ydb-library-services + core-arrow_kernels-request ydb-library-arrow_clickhouse ) target_sources(core-formats-arrow PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/converter.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/input_stream.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/merging_sorted_input_stream.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/one_batch_input_stream.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/sort_cursor.h ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_batch_builder.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_filter.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_helpers.cpp diff --git a/ydb/core/formats/arrow/CMakeLists.windows-x86_64.txt b/ydb/core/formats/arrow/CMakeLists.windows-x86_64.txt index 66ab0217c244..729f3b6b52f0 100644 --- a/ydb/core/formats/arrow/CMakeLists.windows-x86_64.txt +++ b/ydb/core/formats/arrow/CMakeLists.windows-x86_64.txt @@ -7,7 +7,6 @@ add_subdirectory(common) -add_subdirectory(compression) add_subdirectory(dictionary) add_subdirectory(hash) add_subdirectory(reader) @@ -41,8 +40,14 @@ target_link_libraries(core-formats-arrow PUBLIC ydb-library-binary_json ydb-library-dynumber ydb-library-services + core-arrow_kernels-request ) target_sources(core-formats-arrow PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/converter.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/input_stream.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/merging_sorted_input_stream.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/one_batch_input_stream.h + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/sort_cursor.h ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_batch_builder.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_filter.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/arrow_helpers.cpp diff --git a/ydb/core/formats/arrow/arrow_batch_builder.cpp b/ydb/core/formats/arrow/arrow_batch_builder.cpp index 76c19421555d..1e49120c0c7c 100644 --- a/ydb/core/formats/arrow/arrow_batch_builder.cpp +++ b/ydb/core/formats/arrow/arrow_batch_builder.cpp @@ -1,7 +1,7 @@ #include "arrow_batch_builder.h" +#include "switch/switch_type.h" #include #include - namespace NKikimr::NArrow { namespace { @@ -195,12 +195,18 @@ TArrowBatchBuilder::TArrowBatchBuilder(arrow::Compression::type codec, const std WriteOptions.use_threads = false; } -bool TArrowBatchBuilder::Start(const std::vector>& ydbColumns) { +arrow::Status TArrowBatchBuilder::Start(const std::vector>& ydbColumns) { YdbSchema = ydbColumns; auto schema = MakeArrowSchema(ydbColumns, NotNullColumns); - auto status = arrow::RecordBatchBuilder::Make(schema, arrow::default_memory_pool(), RowsToReserve, &BatchBuilder); + if (!schema.ok()) { + return arrow::Status::FromArgs(schema.status().code(), "Cannot make arrow schema: ", schema.status().ToString()); + } + auto status = arrow::RecordBatchBuilder::Make(*schema, arrow::default_memory_pool(), RowsToReserve, &BatchBuilder); NumRows = NumBytes = 0; - return status.ok(); + if (!status.ok()) { + return arrow::Status::FromArgs(schema.status().code(), "Cannot make arrow builder: ", status.ToString()); + } + return arrow::Status::OK(); } void TArrowBatchBuilder::AppendCell(const TCell& cell, ui32 colNum) { @@ -259,7 +265,7 @@ void TArrowBatchBuilder::ReserveData(ui32 columnNo, size_t size) { Y_ABORT_UNLESS(columnNo < YdbSchema.size()); auto type = YdbSchema[columnNo].second; - SwitchYqlTypeToArrowType(type, [&](const auto& type) { + Y_ABORT_UNLESS(SwitchYqlTypeToArrowType(type, [&](const auto& type) { using TWrap = std::decay_t; using TBuilder = typename arrow::TypeTraits::BuilderType; @@ -270,7 +276,7 @@ void TArrowBatchBuilder::ReserveData(ui32 columnNo, size_t size) { Y_ABORT_UNLESS(status.ok()); } return true; - }); + })); } std::shared_ptr TArrowBatchBuilder::FlushBatch(bool reinitialize) { diff --git a/ydb/core/formats/arrow/arrow_batch_builder.h b/ydb/core/formats/arrow/arrow_batch_builder.h index 2d4e1f3ed6b0..cacf7fd7882f 100644 --- a/ydb/core/formats/arrow/arrow_batch_builder.h +++ b/ydb/core/formats/arrow/arrow_batch_builder.h @@ -2,6 +2,7 @@ #include "arrow_helpers.h" #include #include +#include namespace NKikimr::NArrow { @@ -155,8 +156,11 @@ class TArrowBatchBuilder : public NKikimr::IBlockBuilder { ui64 maxRowsInBlock, ui64 maxBytesInBlock, TString& err) override { Y_UNUSED(maxRowsInBlock); Y_UNUSED(maxBytesInBlock); - Y_UNUSED(err); - return Start(columns); + const auto result = Start(columns); + if (!result.ok()) { + err = result.ToString(); + } + return result.ok(); } void AddRow(const NKikimr::TDbTupleRef& key, const NKikimr::TDbTupleRef& value) override; @@ -175,7 +179,7 @@ class TArrowBatchBuilder : public NKikimr::IBlockBuilder { return NumBytes; } - bool Start(const std::vector>& columns); + arrow::Status Start(const std::vector>& columns); std::shared_ptr FlushBatch(bool reinitialize); std::shared_ptr GetBatch() const { return Batch; } diff --git a/ydb/core/formats/arrow/arrow_filter.cpp b/ydb/core/formats/arrow/arrow_filter.cpp index bdfb8d0355f1..58cd7116baed 100644 --- a/ydb/core/formats/arrow/arrow_filter.cpp +++ b/ydb/core/formats/arrow/arrow_filter.cpp @@ -1,5 +1,8 @@ #include "arrow_filter.h" #include "switch_type.h" +#include "common/container.h" +#include "common/adapter.h" + #include #include #include @@ -307,7 +310,7 @@ NKikimr::NArrow::TColumnFilter TColumnFilter::MakePredicateFilter(const arrow::D return NArrow::TColumnFilter(std::move(bits)); } -template +template bool ApplyImpl(const TColumnFilter& filter, std::shared_ptr& batch, const std::optional startPos, const std::optional count) { if (!batch || !batch->num_rows()) { return false; @@ -322,33 +325,26 @@ bool ApplyImpl(const TColumnFilter& filter, std::shared_ptr& batch, const } } if (filter.IsTotalDenyFilter()) { - batch = batch->Slice(0, 0); + batch = NAdapter::TDataBuilderPolicy::GetEmptySame(batch); return true; } if (filter.IsTotalAllowFilter()) { return true; } - auto res = arrow::compute::Filter(batch, filter.BuildArrowFilter(batch->num_rows(), startPos, count)); - Y_VERIFY_S(res.ok(), res.status().message()); - Y_ABORT_UNLESS((*res).kind() == kindExpected); - if constexpr (kindExpected == arrow::Datum::TABLE) { - batch = (*res).table(); - return batch->num_rows(); - } - if constexpr (kindExpected == arrow::Datum::RECORD_BATCH) { - batch = (*res).record_batch(); - return batch->num_rows(); - } - AFL_VERIFY(false); - return false; + batch = NAdapter::TDataBuilderPolicy::ApplyArrowFilter(batch, filter.BuildArrowFilter(batch->num_rows(), startPos, count)); + return batch->num_rows(); +} + +bool TColumnFilter::Apply(std::shared_ptr& batch, const std::optional startPos, const std::optional count) const { + return ApplyImpl(*this, batch, startPos, count); } bool TColumnFilter::Apply(std::shared_ptr& batch, const std::optional startPos, const std::optional count) const { - return ApplyImpl(*this, batch, startPos, count); + return ApplyImpl(*this, batch, startPos, count); } bool TColumnFilter::Apply(std::shared_ptr& batch, const std::optional startPos, const std::optional count) const { - return ApplyImpl(*this, batch, startPos, count); + return ApplyImpl(*this, batch, startPos, count); } void TColumnFilter::Apply(const ui32 expectedRecordsCount, std::vector& datums) const { @@ -569,7 +565,7 @@ TColumnFilter TColumnFilter::CombineSequentialAnd(const TColumnFilter& extFilter ++itExt; } } - Y_ABORT_UNLESS(itSelf == Filter.end() && itExt == extFilter.Filter.cend()); + AFL_VERIFY(itSelf == Filter.end() && itExt == extFilter.Filter.cend()); TColumnFilter result = TColumnFilter::BuildAllowFilter(); std::swap(resultFilter, result.Filter); std::swap(curCurrent, result.LastValue); @@ -611,4 +607,12 @@ std::optional TColumnFilter::GetFilteredCount() const { return *FilteredCount; } +void TColumnFilter::Append(const TColumnFilter& filter) { + bool currentVal = filter.GetStartValue(); + for (auto&& i : filter.Filter) { + Add(currentVal, i); + currentVal = !currentVal; + } +} + } diff --git a/ydb/core/formats/arrow/arrow_filter.h b/ydb/core/formats/arrow/arrow_filter.h index b33b9a13707e..a83b37a78333 100644 --- a/ydb/core/formats/arrow/arrow_filter.h +++ b/ydb/core/formats/arrow/arrow_filter.h @@ -8,6 +8,8 @@ namespace NKikimr::NArrow { +class TGeneralContainer; + enum class ECompareType { LESS = 1, LESS_OR_EQUAL, @@ -52,6 +54,7 @@ class TColumnFilter { FilteredCount.reset(); } public: + void Append(const TColumnFilter& filter); void Add(const bool value, const ui32 count = 1); std::optional GetFilteredCount() const; const std::vector& BuildSimpleFilter() const; @@ -61,6 +64,10 @@ class TColumnFilter { return Filter.capacity() * sizeof(ui32) + Count * sizeof(bool); } + static ui64 GetPredictedMemorySize(const ui32 recordsCount) { + return 2 /* capacity */ * recordsCount * (sizeof(ui32) + sizeof(bool)); + } + class TIterator { private: i64 InternalPosition = 0; @@ -171,6 +178,7 @@ class TColumnFilter { // It makes a filter using composite predicate static TColumnFilter MakePredicateFilter(const arrow::Datum& datum, const arrow::Datum& border, ECompareType compareType); + bool Apply(std::shared_ptr& batch, const std::optional startPos = {}, const std::optional count = {}) const; bool Apply(std::shared_ptr& batch, const std::optional startPos = {}, const std::optional count = {}) const; bool Apply(std::shared_ptr& batch, const std::optional startPos = {}, const std::optional count = {}) const; void Apply(const ui32 expectedRecordsCount, std::vector& datums) const; diff --git a/ydb/core/formats/arrow/arrow_helpers.cpp b/ydb/core/formats/arrow/arrow_helpers.cpp index eac6a6670e00..b71c9a342a81 100644 --- a/ydb/core/formats/arrow/arrow_helpers.cpp +++ b/ydb/core/formats/arrow/arrow_helpers.cpp @@ -1,10 +1,9 @@ #include "arrow_helpers.h" #include "switch_type.h" -#include "one_batch_input_stream.h" #include "common/validation.h" -#include "merging_sorted_input_stream.h" #include "permutations.h" -#include "serializer/batch_only.h" +#include "common/adapter.h" +#include "serializer/native.h" #include "serializer/abstract.h" #include "serializer/stream.h" #include "simple_arrays_cache.h" @@ -48,7 +47,7 @@ std::shared_ptr CreateEmptyArrowImpl() { return arrow::duration(arrow::TimeUnit::TimeUnit::MICRO); } -std::shared_ptr GetArrowType(NScheme::TTypeInfo typeId) { +arrow::Result> GetArrowType(NScheme::TTypeInfo typeId) { std::shared_ptr result; bool success = SwitchYqlTypeToArrowType(typeId, [&](TTypeWrapper typeHolder) { Y_UNUSED(typeHolder); @@ -58,10 +57,11 @@ std::shared_ptr GetArrowType(NScheme::TTypeInfo typeId) { if (success) { return result; } - return std::make_shared(); + + return arrow::Status::TypeError("unsupported type ", NKikimr::NScheme::TypeName(typeId.GetTypeId())); } -std::shared_ptr GetCSVArrowType(NScheme::TTypeInfo typeId) { +arrow::Result> GetCSVArrowType(NScheme::TTypeInfo typeId) { std::shared_ptr result; switch (typeId.GetTypeId()) { case NScheme::NTypeIds::Datetime: @@ -75,18 +75,31 @@ std::shared_ptr GetCSVArrowType(NScheme::TTypeInfo typeId) { } } -std::vector> MakeArrowFields(const std::vector>& columns, const std::set& notNullColumns) { +arrow::Result MakeArrowFields(const std::vector>& columns, const std::set& notNullColumns) { std::vector> fields; fields.reserve(columns.size()); + TVector errors; for (auto& [name, ydbType] : columns) { std::string colName(name.data(), name.size()); - fields.emplace_back(std::make_shared(colName, GetArrowType(ydbType), !notNullColumns.contains(colName))); + auto arrowType = GetArrowType(ydbType); + if (arrowType.ok()) { + fields.emplace_back(std::make_shared(colName, arrowType.ValueUnsafe(), !notNullColumns.contains(colName))); + } else { + errors.emplace_back(colName + " error: " + arrowType.status().ToString()); + } + } + if (errors.empty()) { + return fields; } - return fields; + return arrow::Status::TypeError(JoinSeq(", ", errors)); } -std::shared_ptr MakeArrowSchema(const std::vector>& ydbColumns, const std::set& notNullColumns) { - return std::make_shared(MakeArrowFields(ydbColumns, notNullColumns)); +arrow::Result> MakeArrowSchema(const std::vector>& ydbColumns, const std::set& notNullColumns) { + const auto fields = MakeArrowFields(ydbColumns, notNullColumns); + if (fields.ok()) { + return std::make_shared(fields.ValueUnsafe()); + } + return fields.status(); } TString SerializeSchema(const arrow::Schema& schema) { @@ -106,7 +119,7 @@ std::shared_ptr DeserializeSchema(const TString& str) { } TString SerializeBatch(const std::shared_ptr& batch, const arrow::ipc::IpcWriteOptions& options) { - return NSerialization::TBatchPayloadSerializer(options).Serialize(batch); + return NSerialization::TNativeSerializer(options).SerializePayload(batch); } TString SerializeBatchNoCompression(const std::shared_ptr& batch) { @@ -117,7 +130,7 @@ TString SerializeBatchNoCompression(const std::shared_ptr& b std::shared_ptr DeserializeBatch(const TString& blob, const std::shared_ptr& schema) { - auto result = NSerialization::TBatchPayloadDeserializer(schema).Deserialize(blob); + auto result = NSerialization::TNativeSerializer().Deserialize(blob, schema); if (result.ok()) { return *result; } else { @@ -136,30 +149,31 @@ std::shared_ptr MakeEmptyBatch(const std::shared_ptr - std::shared_ptr ExtractColumnsImpl(const std::shared_ptr& srcBatch, - const std::vector& columnNames) { - std::vector> fields; - fields.reserve(columnNames.size()); - std::vector> columns; - columns.reserve(columnNames.size()); - - auto srcSchema = srcBatch->schema(); - for (auto& name : columnNames) { - int pos = srcSchema->GetFieldIndex(name); - if (pos < 0) { - return {}; - } - fields.push_back(srcSchema->field(pos)); - columns.push_back(srcBatch->column(pos)); - } - return arrow::RecordBatch::Make(std::make_shared(std::move(fields)), srcBatch->num_rows(), std::move(columns)); +template +std::shared_ptr ExtractColumnsImpl(const std::shared_ptr& srcBatch, + const std::vector& columnNames) { + std::vector> fields; + fields.reserve(columnNames.size()); + std::vector::TColumn>> columns; + columns.reserve(columnNames.size()); + + auto srcSchema = srcBatch->schema(); + for (auto& name : columnNames) { + int pos = srcSchema->GetFieldIndex(name); + if (pos < 0) { + return {}; + } + fields.push_back(srcSchema->field(pos)); + columns.push_back(srcBatch->column(pos)); } + + return NAdapter::TDataBuilderPolicy::Build(std::move(fields), std::move(columns), srcBatch->num_rows()); +} } std::shared_ptr ExtractColumns(const std::shared_ptr& srcBatch, @@ -172,7 +186,19 @@ std::shared_ptr ExtractColumns(const std::shared_ptr ExtractColumnsValidate(const std::shared_ptr& srcBatch, +std::shared_ptr ExtractColumns(const std::shared_ptr& srcBatch, + const std::vector& columnNames) { + return ExtractColumnsImpl(srcBatch, columnNames); +} + +std::shared_ptr ExtractColumns(const std::shared_ptr& srcBatch, + const std::vector& columnNames) { + return ExtractColumnsImpl(srcBatch, columnNames); +} + +namespace { +template +std::shared_ptr ExtractColumnsValidateImpl(const std::shared_ptr& srcBatch, const std::vector& columnNames) { if (!srcBatch) { return srcBatch; @@ -182,7 +208,7 @@ std::shared_ptr ExtractColumnsValidate(const std::shared_ptr } std::vector> fields; fields.reserve(columnNames.size()); - std::vector> columns; + std::vector::TColumn>> columns; columns.reserve(columnNames.size()); auto srcSchema = srcBatch->schema(); @@ -193,7 +219,18 @@ std::shared_ptr ExtractColumnsValidate(const std::shared_ptr columns.push_back(srcBatch->column(pos)); } - return arrow::RecordBatch::Make(std::make_shared(std::move(fields)), srcBatch->num_rows(), std::move(columns)); + return NAdapter::TDataBuilderPolicy::Build(std::move(fields), std::move(columns), srcBatch->num_rows()); +} +} + +std::shared_ptr ExtractColumnsValidate(const std::shared_ptr& srcBatch, + const std::vector& columnNames) { + return ExtractColumnsValidateImpl(srcBatch, columnNames); +} + +std::shared_ptr ExtractColumnsValidate(const std::shared_ptr& srcBatch, + const std::vector& columnNames) { + return ExtractColumnsValidateImpl(srcBatch, columnNames); } std::shared_ptr ExtractColumns(const std::shared_ptr& srcBatch, @@ -259,30 +296,18 @@ std::shared_ptr ExtractExistedColumns(const std::shared_ptr< return arrow::RecordBatch::Make(std::make_shared(std::move(fields)), srcBatch->num_rows(), std::move(columns)); } -std::shared_ptr CombineInTable(const std::vector>& batches) { - auto res = arrow::Table::FromRecordBatches(batches); - if (!res.ok()) { - return nullptr; - } - - res = (*res)->CombineChunks(); - if (!res.ok()) { - return nullptr; - } - - return res.ValueOrDie(); -} - std::shared_ptr CombineBatches(const std::vector>& batches) { if (batches.empty()) { return nullptr; } - auto table = CombineInTable(batches); - return table ? ToBatch(table) : nullptr; + auto table = TStatusValidator::GetValid(arrow::Table::FromRecordBatches(batches)); + return table ? ToBatch(table, true) : nullptr; } std::shared_ptr ToBatch(const std::shared_ptr& tableExt, const bool combine) { - Y_ABORT_UNLESS(tableExt); + if (!tableExt) { + return nullptr; + } std::shared_ptr table; if (combine) { auto res = tableExt->CombineChunks(); @@ -294,74 +319,13 @@ std::shared_ptr ToBatch(const std::shared_ptr& std::vector> columns; columns.reserve(table->num_columns()); for (auto& col : table->columns()) { - Y_ABORT_UNLESS(col->num_chunks() == 1); + AFL_VERIFY(col->num_chunks() == 1)("size", col->num_chunks())("size_bytes", GetTableDataSize(tableExt)) + ("schema", tableExt->schema()->ToString())("size_new", GetTableDataSize(table)); columns.push_back(col->chunk(0)); } return arrow::RecordBatch::Make(table->schema(), table->num_rows(), columns); } -std::shared_ptr CombineSortedBatches(const std::vector>& batches, - const std::shared_ptr& description) { - std::vector streams; - for (auto& batch : batches) { - streams.push_back(std::make_shared(batch)); - } - - auto mergeStream = std::make_shared(streams, description, Max()); - std::shared_ptr batch = mergeStream->Read(); - Y_ABORT_UNLESS(!mergeStream->Read()); - return batch; -} - -std::vector> MergeSortedBatches(const std::vector>& batches, - const std::shared_ptr& description, - size_t maxBatchRows) { - Y_ABORT_UNLESS(maxBatchRows); - ui64 numRows = 0; - std::vector streams; - streams.reserve(batches.size()); - for (auto& batch : batches) { - if (batch->num_rows()) { - numRows += batch->num_rows(); - streams.push_back(std::make_shared(batch)); - } - } - - std::vector> out; - out.reserve(numRows / maxBatchRows + 1); - - auto mergeStream = std::make_shared(streams, description, maxBatchRows); - while (std::shared_ptr batch = mergeStream->Read()) { - Y_ABORT_UNLESS(batch->num_rows()); - out.push_back(batch); - } - return out; -} - -std::vector> SliceSortedBatches(const std::vector>& batches, - const std::shared_ptr& description, - size_t maxBatchRows) { - Y_ABORT_UNLESS(!description->Reverse); - - std::vector streams; - streams.reserve(batches.size()); - for (auto& batch : batches) { - if (batch->num_rows()) { - streams.push_back(std::make_shared(batch)); - } - } - - std::vector> out; - out.reserve(streams.size()); - - auto dedupStream = std::make_shared(streams, description, maxBatchRows, true); - while (std::shared_ptr batch = dedupStream->Read()) { - Y_ABORT_UNLESS(batch->num_rows()); - out.push_back(batch); - } - return out; -} - // Check if the permutation doesn't reorder anything bool IsTrivial(const arrow::UInt64Array& permutation, const ui64 originalLength) { if ((ui64)permutation.length() != originalLength) { @@ -977,4 +941,42 @@ std::shared_ptr MergeColumns(const std::vector> SliceToRecordBatches(const std::shared_ptr& t) { + std::set splitPositions; + const ui32 numRows = t->num_rows(); + for (auto&& i : t->columns()) { + ui32 pos = 0; + for (auto&& arr : i->chunks()) { + splitPositions.emplace(pos); + pos += arr->length(); + } + AFL_VERIFY(pos == t->num_rows()); + } + std::vector>> slicedData; + slicedData.resize(splitPositions.size()); + std::vector positions(splitPositions.begin(), splitPositions.end()); + for (auto&& i : t->columns()) { + for (ui32 idx = 0; idx < positions.size(); ++idx) { + auto slice = i->Slice(positions[idx], ((idx + 1 == positions.size()) ? numRows : positions[idx + 1]) - positions[idx]); + AFL_VERIFY(slice->num_chunks() == 1); + slicedData[idx].emplace_back(slice->chunks().front()); + } + } + std::vector> result; + ui32 count = 0; + for (auto&& i : slicedData) { + result.emplace_back(arrow::RecordBatch::Make(t->schema(), i.front()->length(), i)); + count += result.back()->num_rows(); + } + AFL_VERIFY(count == t->num_rows())("count", count)("t", t->num_rows()); + return result; +} + +std::shared_ptr ToTable(const std::shared_ptr& batch) { + if (!batch) { + return nullptr; + } + return TStatusValidator::GetValid(arrow::Table::FromRecordBatches(batch->schema(), {batch})); +} + } diff --git a/ydb/core/formats/arrow/arrow_helpers.h b/ydb/core/formats/arrow/arrow_helpers.h index 84aba485fa7e..f4871e126e04 100644 --- a/ydb/core/formats/arrow/arrow_helpers.h +++ b/ydb/core/formats/arrow/arrow_helpers.h @@ -13,8 +13,8 @@ namespace NKikimr::NArrow { using TArrayVec = std::vector>; -std::shared_ptr GetArrowType(NScheme::TTypeInfo typeInfo); -std::shared_ptr GetCSVArrowType(NScheme::TTypeInfo typeId); +arrow::Result> GetArrowType(NScheme::TTypeInfo typeInfo); +arrow::Result> GetCSVArrowType(NScheme::TTypeInfo typeId); template inline bool ArrayEqualValue(const std::shared_ptr& x, const std::shared_ptr& y) { @@ -42,8 +42,8 @@ inline bool ArrayEqualView(const std::shared_ptr& x, const std::sh struct TSortDescription; -std::vector> MakeArrowFields(const std::vector>& columns, const std::set& notNullColumns = {}); -std::shared_ptr MakeArrowSchema(const std::vector>& columns, const std::set& notNullColumns = {}); +arrow::Result MakeArrowFields(const std::vector>& columns, const std::set& notNullColumns = {}); +arrow::Result> MakeArrowSchema(const std::vector>& columns, const std::set& notNullColumns = {}); TString SerializeSchema(const arrow::Schema& schema); std::shared_ptr DeserializeSchema(const TString& str); @@ -54,13 +54,20 @@ TString SerializeBatchNoCompression(const std::shared_ptr& b std::shared_ptr DeserializeBatch(const TString& blob, const std::shared_ptr& schema); std::shared_ptr MakeEmptyBatch(const std::shared_ptr& schema, const ui32 rowsCount = 0); +std::shared_ptr ToTable(const std::shared_ptr& batch); std::shared_ptr ExtractColumns(const std::shared_ptr& srcBatch, - const std::vector& columnNames); + const std::vector& columnNames); std::shared_ptr ExtractColumns(const std::shared_ptr& srcBatch, - const std::vector& columnNames); + const std::vector& columnNames); +std::shared_ptr ExtractColumns(const std::shared_ptr& srcBatch, + const std::vector& columnNames); +std::shared_ptr ExtractColumns(const std::shared_ptr& srcBatch, + const std::vector& columnNames); +std::shared_ptr ExtractColumnsValidate(const std::shared_ptr& srcBatch, + const std::vector& columnNames); std::shared_ptr ExtractColumnsValidate(const std::shared_ptr& srcBatch, - const std::vector& columnNames); + const std::vector& columnNames); std::shared_ptr ExtractColumns(const std::shared_ptr& srcBatch, const std::shared_ptr& dstSchema, bool addNotExisted = false); @@ -72,18 +79,9 @@ inline std::shared_ptr ExtractExistedColumns(const std::shar return ExtractExistedColumns(srcBatch, dstSchema->fields()); } -std::shared_ptr CombineInTable(const std::vector>& batches); -std::shared_ptr ToBatch(const std::shared_ptr& combinedTable, const bool combine = false); +std::shared_ptr ToBatch(const std::shared_ptr& combinedTable, const bool combine); std::shared_ptr CombineBatches(const std::vector>& batches); -std::shared_ptr CombineSortedBatches(const std::vector>& batches, - const std::shared_ptr& description); std::shared_ptr MergeColumns(const std::vector>& rb); -std::vector> MergeSortedBatches(const std::vector>& batches, - const std::shared_ptr& description, - size_t maxBatchRows); -std::vector> SliceSortedBatches(const std::vector>& batches, - const std::shared_ptr& description, - size_t maxBatchRows = 0); std::vector> ShardingSplit(const std::shared_ptr& batch, const std::vector& sharding, ui32 numShards); @@ -103,8 +101,8 @@ bool MergeBatchColumns(const std::vector>& batches std::shared_ptr SortBatch(const std::shared_ptr& batch, const std::shared_ptr& sortingKey, const bool andUnique); bool IsSorted(const std::shared_ptr& batch, - const std::shared_ptr& sortingKey, - bool desc = false); + const std::shared_ptr& sortingKey, + bool desc = false); bool IsSortedAndUnique(const std::shared_ptr& batch, const std::shared_ptr& sortingKey, bool desc = false); @@ -128,6 +126,8 @@ inline bool HasNulls(const std::shared_ptr& column) { return column->null_bitmap_data(); } +std::vector> SliceToRecordBatches(const std::shared_ptr& t); + bool ArrayScalarsEqual(const std::shared_ptr& lhs, const std::shared_ptr& rhs); std::shared_ptr BoolVecToArray(const std::vector& vec); diff --git a/ydb/core/formats/arrow/common/accessor.cpp b/ydb/core/formats/arrow/common/accessor.cpp new file mode 100644 index 000000000000..9865b2a692f7 --- /dev/null +++ b/ydb/core/formats/arrow/common/accessor.cpp @@ -0,0 +1,122 @@ +#include "accessor.h" +#include +#include +#include +#include +#include + +namespace NKikimr::NArrow::NAccessor { + +void IChunkedArray::TReader::AppendPositionTo(arrow::ArrayBuilder& builder, const ui64 position, ui64* recordSize) const { + auto address = GetReadChunk(position); + AFL_VERIFY(NArrow::Append(builder, *address.GetArray(), address.GetPosition(), recordSize)); +} + +std::shared_ptr IChunkedArray::TReader::CopyRecord(const ui64 recordIndex) const { + auto address = GetReadChunk(recordIndex); + return NArrow::CopyRecords(address.GetArray(), {address.GetPosition()}); +} + +std::shared_ptr IChunkedArray::Slice(const ui32 offset, const ui32 count) const { + AFL_VERIFY(offset + count <= (ui64)GetRecordsCount())("offset", offset)("count", count)("length", GetRecordsCount()); + ui32 currentOffset = offset; + ui32 countLeast = count; + std::vector> chunks; + auto address = GetChunk({}, offset); + while (countLeast) { + address = GetChunk(address, currentOffset); + const ui64 internalPos = currentOffset - address.GetStartPosition(); + if (internalPos + countLeast <= (ui64)address.GetArray()->length()) { + chunks.emplace_back(address.GetArray()->Slice(internalPos, countLeast)); + break; + } else { + const ui32 deltaCount = address.GetArray()->length() - internalPos; + chunks.emplace_back(address.GetArray()->Slice(internalPos, deltaCount)); + AFL_VERIFY(countLeast >= deltaCount); + countLeast -= deltaCount; + currentOffset += deltaCount; + } + } + return std::make_shared(chunks, DataType); +} + +TString IChunkedArray::TReader::DebugString(const ui32 position) const { + auto address = GetReadChunk(position); + return NArrow::DebugString(address.GetArray(), address.GetPosition()); +} + +std::partial_ordering IChunkedArray::TReader::CompareColumns(const std::vector& l, const ui64 lPosition, const std::vector& r, const ui64 rPosition) { + AFL_VERIFY(l.size() == r.size()); + for (ui32 i = 0; i < l.size(); ++i) { + const TAddress lAddress = l[i].GetReadChunk(lPosition); + const TAddress rAddress = r[i].GetReadChunk(rPosition); + auto cmp = lAddress.Compare(rAddress); + if (std::is_neq(cmp)) { + return cmp; + } + } + return std::partial_ordering::equivalent; +} + +IChunkedArray::TAddress IChunkedArray::TReader::GetReadChunk(const ui64 position) const { + AFL_VERIFY(position < ChunkedArray->GetRecordsCount()); + if (CurrentChunkAddress && position < CurrentChunkAddress->GetStartPosition() + CurrentChunkAddress->GetArray()->length() && CurrentChunkAddress->GetStartPosition() <= position) { + } else { + CurrentChunkAddress = ChunkedArray->DoGetChunk(CurrentChunkAddress, position); + } + return IChunkedArray::TAddress(CurrentChunkAddress->GetArray(), position - CurrentChunkAddress->GetStartPosition(), CurrentChunkAddress->GetChunkIndex()); +} + +const std::partial_ordering IChunkedArray::TAddress::Compare(const TAddress& item) const { + return TComparator::TypedCompare(*Array, Position, *item.Array, item.Position); +} + +namespace { +class TChunkAccessor { +private: + std::shared_ptr ChunkedArray; +public: + TChunkAccessor(const std::shared_ptr& chunkedArray) + : ChunkedArray(chunkedArray) + { + + } + ui64 GetChunksCount() const { + return (ui64)ChunkedArray->num_chunks(); + } + ui64 GetChunkLength(const ui32 idx) const { + return (ui64)ChunkedArray->chunk(idx)->length(); + } + std::shared_ptr GetArray(const ui32 idx) const { + return ChunkedArray->chunk(idx); + } +}; + +} + +std::partial_ordering IChunkedArray::TCurrentChunkAddress::Compare(const ui64 position, const TCurrentChunkAddress& item, const ui64 itemPosition) const { + AFL_VERIFY(StartPosition <= position); + AFL_VERIFY(position < FinishPosition); + AFL_VERIFY(item.StartPosition <= itemPosition); + AFL_VERIFY(itemPosition < item.FinishPosition); + return TComparator::TypedCompare(*Array, position - StartPosition, *item.Array, itemPosition - item.StartPosition); +} + +std::shared_ptr IChunkedArray::TCurrentChunkAddress::CopyRecord(const ui64 recordIndex) const { + AFL_VERIFY(StartPosition <= recordIndex); + AFL_VERIFY(recordIndex < FinishPosition); + return NArrow::CopyRecords(Array, { recordIndex - StartPosition }); +} + +TString IChunkedArray::TCurrentChunkAddress::DebugString(const ui64 position) const { + AFL_VERIFY(position < FinishPosition); + AFL_VERIFY(StartPosition <= position); + return NArrow::DebugString(Array, position - StartPosition); +} + +IChunkedArray::TCurrentChunkAddress TTrivialChunkedArray::DoGetChunk(const std::optional& chunkCurrent, const ui64 position) const { + TChunkAccessor accessor(Array); + return SelectChunk(chunkCurrent, position, accessor); +} + +} diff --git a/ydb/core/formats/arrow/common/accessor.h b/ydb/core/formats/arrow/common/accessor.h new file mode 100644 index 000000000000..3765d726992b --- /dev/null +++ b/ydb/core/formats/arrow/common/accessor.h @@ -0,0 +1,216 @@ +#pragma once +#include +#include + +#include +#include +#include + +namespace NKikimr::NArrow::NAccessor { + +class IChunkedArray { +public: + enum class EType { + Undefined, + Array, + ChunkedArray, + SerializedChunkedArray + }; + + class TCurrentChunkAddress { + private: + YDB_READONLY_DEF(std::shared_ptr, Array); + YDB_READONLY(ui64, StartPosition, 0); + YDB_READONLY(ui64, FinishPosition, 0); + YDB_READONLY(ui64, ChunkIndex, 0); + public: + TString DebugString(const ui64 position) const; + + ui64 GetLength() const { + return Array->length(); + } + + bool Contains(const ui64 position) const { + return position >= StartPosition && position < FinishPosition; + } + + std::shared_ptr CopyRecord(const ui64 recordIndex) const; + + std::partial_ordering Compare(const ui64 position, const TCurrentChunkAddress& item, const ui64 itemPosition) const; + + TCurrentChunkAddress(const std::shared_ptr& arr, const ui64 pos, const ui32 chunkIdx) + : Array(arr) + , StartPosition(pos) + , ChunkIndex(chunkIdx) + { + AFL_VERIFY(arr); + AFL_VERIFY(arr->length()); + FinishPosition = StartPosition + arr->length(); + } + + TString DebugString() const { + return TStringBuilder() + << "start=" << StartPosition << ";" + << "chunk_index=" << ChunkIndex << ";" + << "length=" << Array->length() << ";"; + } + }; + + class TAddress { + private: + YDB_READONLY_DEF(std::shared_ptr, Array); + YDB_READONLY(ui64, Position, 0); + YDB_READONLY(ui64, ChunkIdx, 0); + public: + bool NextPosition() { + if (Position + 1 < (ui32)Array->length()) { + ++Position; + return true; + } + return false; + } + + TAddress(const std::shared_ptr& arr, const ui64 position, const ui64 chunkIdx) + : Array(arr) + , Position(position) + , ChunkIdx(chunkIdx) + { + + } + + const std::partial_ordering Compare(const TAddress& item) const; + }; +private: + YDB_READONLY_DEF(std::shared_ptr, DataType); + YDB_READONLY(ui64, RecordsCount, 0); + YDB_READONLY(EType, Type, EType::Undefined); +protected: + virtual std::shared_ptr DoGetChunkedArray() const = 0; + virtual TCurrentChunkAddress DoGetChunk(const std::optional& chunkCurrent, const ui64 position) const = 0; + + template + TCurrentChunkAddress SelectChunk(const std::optional& chunkCurrent, const ui64 position, const TChunkAccessor& accessor) const { + if (!chunkCurrent || position >= chunkCurrent->GetStartPosition() + chunkCurrent->GetLength()) { + ui32 startIndex = 0; + ui64 idx = 0; + if (chunkCurrent) { + AFL_VERIFY(chunkCurrent->GetChunkIndex() + 1 < accessor.GetChunksCount()); + startIndex = chunkCurrent->GetChunkIndex() + 1; + idx = chunkCurrent->GetStartPosition() + chunkCurrent->GetLength(); + } + for (ui32 i = startIndex; i < accessor.GetChunksCount(); ++i) { + const ui64 nextIdx = idx + accessor.GetChunkLength(i); + if (idx <= position && position < nextIdx) { + return TCurrentChunkAddress(accessor.GetArray(i), idx, i); + } + idx = nextIdx; + } + } else if (position < chunkCurrent->GetStartPosition()) { + AFL_VERIFY(chunkCurrent->GetChunkIndex() > 0); + ui64 idx = chunkCurrent->GetStartPosition(); + for (i32 i = chunkCurrent->GetChunkIndex() - 1; i >= 0; --i) { + AFL_VERIFY(idx >= accessor.GetChunkLength(i))("idx", idx)("length", accessor.GetChunkLength(i)); + const ui64 nextIdx = idx - accessor.GetChunkLength(i); + if (nextIdx <= position && position < idx) { + return TCurrentChunkAddress(accessor.GetArray(i), nextIdx, i); + } + idx = nextIdx; + } + } + TStringBuilder sb; + ui64 recordsCountChunks = 0; + for (ui32 i = 0; i < accessor.GetChunksCount(); ++i) { + sb << accessor.GetChunkLength(i) << ","; + recordsCountChunks += accessor.GetChunkLength(i); + } + TStringBuilder chunkCurrentInfo; + if (chunkCurrent) { + chunkCurrentInfo << chunkCurrent->DebugString(); + } + AFL_VERIFY(recordsCountChunks == GetRecordsCount())("pos", position)("count", GetRecordsCount())("chunks_map", sb)("chunk_current", chunkCurrentInfo); + AFL_VERIFY(false)("pos", position)("count", GetRecordsCount())("chunks_map", sb)("chunk_current", chunkCurrentInfo); + return TCurrentChunkAddress(nullptr, 0, 0); + } + +public: + + class TReader { + private: + std::shared_ptr ChunkedArray; + mutable std::optional CurrentChunkAddress; + public: + TReader(const std::shared_ptr& data) + : ChunkedArray(data) + { + AFL_VERIFY(ChunkedArray); + } + + ui64 GetRecordsCount() const { + return ChunkedArray->GetRecordsCount(); + } + + TAddress GetReadChunk(const ui64 position) const; + static std::partial_ordering CompareColumns(const std::vector& l, const ui64 lPosition, const std::vector& r, const ui64 rPosition); + void AppendPositionTo(arrow::ArrayBuilder& builder, const ui64 position, ui64* recordSize) const; + std::shared_ptr CopyRecord(const ui64 recordIndex) const; + TString DebugString(const ui32 position) const; + }; + + std::shared_ptr GetChunkedArray() const { + return DoGetChunkedArray(); + } + virtual ~IChunkedArray() = default; + + std::shared_ptr Slice(const ui32 offset, const ui32 count) const; + + TCurrentChunkAddress GetChunk(const std::optional& chunkCurrent, const ui64 position) const { + return DoGetChunk(chunkCurrent, position); + } + + IChunkedArray(const ui64 recordsCount, const EType type, const std::shared_ptr& dataType) + : DataType(dataType) + , RecordsCount(recordsCount) + , Type(type) { + + } +}; + +class TTrivialArray: public IChunkedArray { +private: + using TBase = IChunkedArray; + const std::shared_ptr Array; +protected: + virtual TCurrentChunkAddress DoGetChunk(const std::optional& /*chunkCurrent*/, const ui64 /*position*/) const override { + return TCurrentChunkAddress(Array, 0, 0); + } + virtual std::shared_ptr DoGetChunkedArray() const override { + return std::make_shared(Array); + } + +public: + TTrivialArray(const std::shared_ptr& data) + : TBase(data->length(), EType::Array, data->type()) + , Array(data) { + + } +}; + +class TTrivialChunkedArray: public IChunkedArray { +private: + using TBase = IChunkedArray; + const std::shared_ptr Array; +protected: + virtual TCurrentChunkAddress DoGetChunk(const std::optional& chunkCurrent, const ui64 position) const override; + virtual std::shared_ptr DoGetChunkedArray() const override { + return Array; + } + +public: + TTrivialChunkedArray(const std::shared_ptr& data) + : TBase(data->length(), EType::ChunkedArray, data->type()) + , Array(data) { + + } +}; + +} diff --git a/ydb/core/formats/arrow/common/adapter.cpp b/ydb/core/formats/arrow/common/adapter.cpp new file mode 100644 index 000000000000..ed02117a2e13 --- /dev/null +++ b/ydb/core/formats/arrow/common/adapter.cpp @@ -0,0 +1,5 @@ +#include "adapter.h" + +namespace NKikimr::NArrow::NAdapter { + +} diff --git a/ydb/core/formats/arrow/common/adapter.h b/ydb/core/formats/arrow/common/adapter.h new file mode 100644 index 000000000000..f3552019a20d --- /dev/null +++ b/ydb/core/formats/arrow/common/adapter.h @@ -0,0 +1,96 @@ +#pragma once +#include "container.h" +#include "accessor.h" +#include "validation.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace NKikimr::NArrow::NAdapter { + +template +class TDataBuilderPolicy { +public: +}; + +template <> +class TDataBuilderPolicy { +public: + using TColumn = arrow::Array; + using TAccessor = NAccessor::TTrivialArray; + + [[nodiscard]] static std::shared_ptr AddColumn(const std::shared_ptr& batch, const std::shared_ptr& field, const std::shared_ptr& extCol) { + return TStatusValidator::GetValid(batch->AddColumn(batch->num_columns(), field, extCol)); + } + + [[nodiscard]] static std::shared_ptr Build(std::vector>&& fields, std::vector>&& columns, const ui32 count) { + return arrow::RecordBatch::Make(std::make_shared(std::move(fields)), count, std::move(columns)); + } + [[nodiscard]] static std::shared_ptr ApplyArrowFilter(const std::shared_ptr& batch, const std::shared_ptr& filter) { + auto res = arrow::compute::Filter(batch, filter); + Y_VERIFY_S(res.ok(), res.status().message()); + Y_ABORT_UNLESS(res->kind() == arrow::Datum::RECORD_BATCH); + return res->record_batch(); + } + [[nodiscard]] static std::shared_ptr GetEmptySame(const std::shared_ptr& batch) { + return batch->Slice(0, 0); + } + +}; + +template <> +class TDataBuilderPolicy { +public: + using TColumn = arrow::ChunkedArray; + using TAccessor = NAccessor::TTrivialChunkedArray; + [[nodiscard]] static std::shared_ptr Build(std::vector>&& fields, std::vector>&& columns, const ui32 count) { + return arrow::Table::Make(std::make_shared(std::move(fields)), std::move(columns), count); + } + [[nodiscard]] static std::shared_ptr AddColumn(const std::shared_ptr& batch, const std::shared_ptr& field, const std::shared_ptr& extCol) { + return TStatusValidator::GetValid(batch->AddColumn(batch->num_columns(), field, std::make_shared(extCol))); + } + + [[nodiscard]] static std::shared_ptr ApplyArrowFilter(const std::shared_ptr& batch, const std::shared_ptr& filter) { + auto res = arrow::compute::Filter(batch, filter); + Y_VERIFY_S(res.ok(), res.status().message()); + Y_ABORT_UNLESS(res->kind() == arrow::Datum::TABLE); + return res->table(); + } + [[nodiscard]] static std::shared_ptr GetEmptySame(const std::shared_ptr& batch) { + return batch->Slice(0, 0); + } +}; + +template <> +class TDataBuilderPolicy { +public: + using TColumn = NAccessor::IChunkedArray; + [[nodiscard]] static std::shared_ptr Build(std::vector>&& fields, std::vector>&& columns, const ui32 count) { + Y_ABORT_UNLESS(columns.size()); + for (auto&& i : columns) { + Y_ABORT_UNLESS(i->GetRecordsCount() == count); + } + return std::make_shared(std::make_shared(std::move(fields)), std::move(columns)); + } + [[nodiscard]] static std::shared_ptr AddColumn(const std::shared_ptr& batch, const std::shared_ptr& field, const std::shared_ptr& extCol) { + batch->AddField(field, std::make_shared(extCol)).Validate(); + return batch; + } + [[nodiscard]] static std::shared_ptr ApplyArrowFilter(const std::shared_ptr& batch, const std::shared_ptr& filter) { + auto table = batch->BuildTable(); + return std::make_shared(TDataBuilderPolicy::ApplyArrowFilter(table, filter)); + } + [[nodiscard]] static std::shared_ptr GetEmptySame(const std::shared_ptr& batch) { + return batch->BuildEmptySame(); + } +}; + +} diff --git a/ydb/core/formats/arrow/common/container.cpp b/ydb/core/formats/arrow/common/container.cpp new file mode 100644 index 000000000000..58ce2dfb4447 --- /dev/null +++ b/ydb/core/formats/arrow/common/container.cpp @@ -0,0 +1,116 @@ +#include "container.h" +#include +#include + +namespace NKikimr::NArrow { + +NKikimr::TConclusionStatus TGeneralContainer::MergeColumnsStrictly(const TGeneralContainer& container) { + if (RecordsCount != container.RecordsCount) { + return TConclusionStatus::Fail(TStringBuilder() << "inconsistency records count in additional container: " << + container.GetSchema()->ToString() << ". expected: " << RecordsCount << ", reality: " << container.GetRecordsCount()); + } + for (i32 i = 0; i < container.Schema->num_fields(); ++i) { + auto addFieldResult = AddField(container.Schema->field(i), container.Columns[i]); + if (!addFieldResult) { + return addFieldResult; + } + } + return TConclusionStatus::Success(); +} + +NKikimr::TConclusionStatus TGeneralContainer::AddField(const std::shared_ptr& f, const std::shared_ptr& data) { + AFL_VERIFY(f); + AFL_VERIFY(data); + if (data->GetRecordsCount() != RecordsCount) { + return TConclusionStatus::Fail(TStringBuilder() << "inconsistency records count in new column: " << + f->name() << ". expected: " << RecordsCount << ", reality: " << data->GetRecordsCount()); + } + if (!data->GetDataType()->Equals(f->type())) { + return TConclusionStatus::Fail("schema and data type are not equals: " + data->GetDataType()->ToString() + " vs " + f->type()->ToString()); + } + if (Schema->GetFieldByName(f->name())) { + return TConclusionStatus::Fail("field name duplication: " + f->name()); + } + auto resultAdd = Schema->AddField(Schema->num_fields(), f); + if (!resultAdd.ok()) { + return TConclusionStatus::Fail("internal schema error on add field: " + resultAdd.status().ToString()); + } + Schema = *resultAdd; + Columns.emplace_back(data); + return TConclusionStatus::Success(); +} + +TGeneralContainer::TGeneralContainer(const std::shared_ptr& schema, std::vector>&& columns) + : Schema(schema) + , Columns(std::move(columns)) +{ + AFL_VERIFY(schema); + std::optional recordsCount; + AFL_VERIFY(Schema->num_fields() == (i32)Columns.size())("schema", Schema->num_fields())("columns", Columns.size()); + for (i32 i = 0; i < Schema->num_fields(); ++i) { + AFL_VERIFY(Columns[i]); + AFL_VERIFY(Schema->field(i)->type()->Equals(Columns[i]->GetDataType())); + if (!recordsCount) { + recordsCount = Columns[i]->GetRecordsCount(); + } else { + AFL_VERIFY(*recordsCount == Columns[i]->GetRecordsCount()) + ("event", "inconsistency_records_count")("expect", *recordsCount)("real", Columns[i]->GetRecordsCount())("field_name", Schema->field(i)->name()); + } + } + AFL_VERIFY(recordsCount); + RecordsCount = *recordsCount; +} + +TGeneralContainer::TGeneralContainer(const std::shared_ptr& table) { + AFL_VERIFY(table); + Schema = table->schema(); + RecordsCount = table->num_rows(); + for (auto&& i : table->columns()) { + if (i->num_chunks() == 1) { + Columns.emplace_back(std::make_shared(i->chunk(0))); + } else { + Columns.emplace_back(std::make_shared(i)); + } + } +} + +TGeneralContainer::TGeneralContainer(const std::shared_ptr& table) { + AFL_VERIFY(table); + Schema = table->schema(); + RecordsCount = table->num_rows(); + for (auto&& i : table->columns()) { + Columns.emplace_back(std::make_shared(i)); + } +} + +std::shared_ptr TGeneralContainer::GetAccessorByNameVerified(const std::string& fieldId) const { + auto result = GetAccessorByNameOptional(fieldId); + AFL_VERIFY(result)("event", "cannot_find_accessor_in_general_container")("field_id", fieldId)("schema", Schema->ToString()); + return result; +} + +std::shared_ptr TGeneralContainer::BuildEmptySame() const { + std::vector> columns; + for (auto&& c : Columns) { + columns.emplace_back(std::make_shared(NArrow::TThreadSimpleArraysCache::GetNull(c->GetDataType(), 0))); + } + return std::make_shared(Schema, std::move(columns)); +} + +std::shared_ptr TGeneralContainer::BuildTable(const std::optional>& columnNames /*= {}*/) const { + std::vector> columns; + std::vector> fields; + ui32 count = 0; + for (i32 i = 0; i < Schema->num_fields(); ++i) { + if (columnNames && !columnNames->contains(Schema->field(i)->name())) { + continue; + } + ++count; + columns.emplace_back(Columns[i]->GetChunkedArray()); + fields.emplace_back(Schema->field(i)); + } + AFL_VERIFY(!columnNames || count == columnNames->size()); + return arrow::Table::Make(std::make_shared(fields), columns, RecordsCount); +} + +} diff --git a/ydb/core/formats/arrow/common/container.h b/ydb/core/formats/arrow/common/container.h new file mode 100644 index 000000000000..638ce85fe1ec --- /dev/null +++ b/ydb/core/formats/arrow/common/container.h @@ -0,0 +1,61 @@ +#pragma once +#include "accessor.h" + +#include +#include + +#include +#include + +#include +#include + +namespace NKikimr::NArrow { + +class TGeneralContainer { +private: + YDB_READONLY(ui64, RecordsCount, 0); + YDB_READONLY_DEF(std::shared_ptr, Schema); + std::vector> Columns; +public: + TString DebugString() const { + return TStringBuilder() + << "records_count=" << RecordsCount << ";" + << "schema=" << Schema->ToString() << ";" + ; + } + + ui64 num_rows() const { + return RecordsCount; + } + + std::shared_ptr BuildTable(const std::optional>& columnNames = {}) const; + + std::shared_ptr BuildEmptySame() const; + + [[nodiscard]] TConclusionStatus MergeColumnsStrictly(const TGeneralContainer& container); + [[nodiscard]] TConclusionStatus AddField(const std::shared_ptr& f, const std::shared_ptr& data); + + TGeneralContainer(const std::shared_ptr& table); + + TGeneralContainer(const std::shared_ptr& table); + + TGeneralContainer(const std::shared_ptr& schema, std::vector>&& columns); + + arrow::Status ValidateFull() const { + return arrow::Status::OK(); + } + + std::shared_ptr GetAccessorByNameOptional(const std::string& fieldId) const { + for (i32 i = 0; i < Schema->num_fields(); ++i) { + if (Schema->field(i)->name() == fieldId) { + return Columns[i]; + } + } + return nullptr; + } + + std::shared_ptr GetAccessorByNameVerified(const std::string& fieldId) const; +}; + +} diff --git a/ydb/core/formats/arrow/common/ya.make b/ydb/core/formats/arrow/common/ya.make index e060fae10d8e..61f742b09b76 100644 --- a/ydb/core/formats/arrow/common/ya.make +++ b/ydb/core/formats/arrow/common/ya.make @@ -2,11 +2,16 @@ LIBRARY() PEERDIR( contrib/libs/apache/arrow + ydb/core/formats/arrow/switch ydb/library/actors/core + ydb/library/conclusion ) SRCS( + container.cpp validation.cpp + adapter.cpp + accessor.cpp ) END() diff --git a/ydb/core/formats/arrow/compression/CMakeLists.darwin-arm64.txt b/ydb/core/formats/arrow/compression/CMakeLists.darwin-arm64.txt deleted file mode 100644 index 0f1b4b72adce..000000000000 --- a/ydb/core/formats/arrow/compression/CMakeLists.darwin-arm64.txt +++ /dev/null @@ -1,23 +0,0 @@ - -# 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(formats-arrow-compression) -target_link_libraries(formats-arrow-compression PUBLIC - contrib-libs-cxxsupp - yutil - libs-apache-arrow - ydb-core-protos - core-formats-arrow - ydb-library-conclusion -) -target_sources(formats-arrow-compression PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/diff.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/object.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/parsing.cpp -) diff --git a/ydb/core/formats/arrow/compression/CMakeLists.darwin-x86_64.txt b/ydb/core/formats/arrow/compression/CMakeLists.darwin-x86_64.txt deleted file mode 100644 index 0f1b4b72adce..000000000000 --- a/ydb/core/formats/arrow/compression/CMakeLists.darwin-x86_64.txt +++ /dev/null @@ -1,23 +0,0 @@ - -# 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(formats-arrow-compression) -target_link_libraries(formats-arrow-compression PUBLIC - contrib-libs-cxxsupp - yutil - libs-apache-arrow - ydb-core-protos - core-formats-arrow - ydb-library-conclusion -) -target_sources(formats-arrow-compression PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/diff.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/object.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/parsing.cpp -) diff --git a/ydb/core/formats/arrow/compression/CMakeLists.linux-aarch64.txt b/ydb/core/formats/arrow/compression/CMakeLists.linux-aarch64.txt deleted file mode 100644 index 80620e94bb4b..000000000000 --- a/ydb/core/formats/arrow/compression/CMakeLists.linux-aarch64.txt +++ /dev/null @@ -1,24 +0,0 @@ - -# 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(formats-arrow-compression) -target_link_libraries(formats-arrow-compression PUBLIC - contrib-libs-linux-headers - contrib-libs-cxxsupp - yutil - libs-apache-arrow - ydb-core-protos - core-formats-arrow - ydb-library-conclusion -) -target_sources(formats-arrow-compression PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/diff.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/object.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/parsing.cpp -) diff --git a/ydb/core/formats/arrow/compression/CMakeLists.linux-x86_64.txt b/ydb/core/formats/arrow/compression/CMakeLists.linux-x86_64.txt deleted file mode 100644 index 80620e94bb4b..000000000000 --- a/ydb/core/formats/arrow/compression/CMakeLists.linux-x86_64.txt +++ /dev/null @@ -1,24 +0,0 @@ - -# 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(formats-arrow-compression) -target_link_libraries(formats-arrow-compression PUBLIC - contrib-libs-linux-headers - contrib-libs-cxxsupp - yutil - libs-apache-arrow - ydb-core-protos - core-formats-arrow - ydb-library-conclusion -) -target_sources(formats-arrow-compression PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/diff.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/object.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/parsing.cpp -) diff --git a/ydb/core/formats/arrow/compression/CMakeLists.windows-x86_64.txt b/ydb/core/formats/arrow/compression/CMakeLists.windows-x86_64.txt deleted file mode 100644 index 0f1b4b72adce..000000000000 --- a/ydb/core/formats/arrow/compression/CMakeLists.windows-x86_64.txt +++ /dev/null @@ -1,23 +0,0 @@ - -# 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(formats-arrow-compression) -target_link_libraries(formats-arrow-compression PUBLIC - contrib-libs-cxxsupp - yutil - libs-apache-arrow - ydb-core-protos - core-formats-arrow - ydb-library-conclusion -) -target_sources(formats-arrow-compression PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/diff.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/object.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/compression/parsing.cpp -) diff --git a/ydb/core/formats/arrow/compression/diff.cpp b/ydb/core/formats/arrow/compression/diff.cpp deleted file mode 100644 index 0659cba5e2ab..000000000000 --- a/ydb/core/formats/arrow/compression/diff.cpp +++ /dev/null @@ -1,77 +0,0 @@ -#include "diff.h" -#include "object.h" -#include "parsing.h" -#include - -namespace NKikimr::NArrow { - -NKikimrSchemeOp::TCompressionOptions TCompressionDiff::SerializeToProto() const { - NKikimrSchemeOp::TCompressionOptions result; - if (Level) { - result.SetCompressionLevel(*Level); - } - if (Codec) { - result.SetCompressionCodec(CompressionToProto(*Codec)); - } - return result; -} - -TConclusionStatus TCompressionDiff::DeserializeFromRequestFeatures(NYql::TFeaturesExtractor& features) { - { - auto fValue = features.Extract("COMPRESSION.TYPE"); - if (fValue) { - Codec = NArrow::CompressionFromString(*fValue); - if (!Codec) { - return TConclusionStatus::Fail("cannot parse COMPRESSION.TYPE as arrow::Compression"); - } - } - } - { - auto fValue = features.Extract("COMPRESSION.LEVEL"); - if (fValue) { - ui32 level; - if (!TryFromString(*fValue, level)) { - return TConclusionStatus::Fail("cannot parse COMPRESSION.LEVEL as ui32"); - } - Level = level; - } - } - return TConclusionStatus::Success(); -} - -bool TCompressionDiff::DeserializeFromProto(const NKikimrSchemeOp::TCompressionOptions& proto) { - if (proto.HasCompressionLevel()) { - Level = proto.GetCompressionLevel(); - } - if (proto.HasCompressionCodec()) { - Codec = CompressionFromProto(proto.GetCompressionCodec()); - if (!Codec) { - return false; - } - } - return true; -} - -NKikimr::TConclusionStatus TCompressionDiff::Apply(std::optional& settings) const { - if (IsEmpty()) { - return TConclusionStatus::Success(); - } - TCompression merged; - if (!!settings) { - merged = *settings; - } - if (Codec) { - merged.Codec = *Codec; - } - if (Level) { - merged.Level = *Level; - } - auto validation = merged.Validate(); - if (!validation) { - return validation; - } - settings = merged; - return TConclusionStatus::Success(); -} - -} diff --git a/ydb/core/formats/arrow/compression/diff.h b/ydb/core/formats/arrow/compression/diff.h deleted file mode 100644 index 53cdd5bae788..000000000000 --- a/ydb/core/formats/arrow/compression/diff.h +++ /dev/null @@ -1,34 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include -#include - -namespace NKikimr::NArrow { - -class TCompression; - -class TCompressionDiff { -private: - std::optional Codec; - std::optional Level; - bool IsEmpty() const { - return !Level && !Codec; - } -public: - NKikimrSchemeOp::TCompressionOptions SerializeToProto() const; - bool DeserializeFromProto(const NKikimrSchemeOp::TCompressionOptions& proto); - TConclusionStatus DeserializeFromRequestFeatures(NYql::TFeaturesExtractor& features); - const std::optional& GetCodec() const { - return Codec; - } - const std::optional& GetLevel() const { - return Level; - } - TConclusionStatus Apply(std::optional& settings) const; -}; -} diff --git a/ydb/core/formats/arrow/compression/object.cpp b/ydb/core/formats/arrow/compression/object.cpp deleted file mode 100644 index 7f58d2618e90..000000000000 --- a/ydb/core/formats/arrow/compression/object.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#include "object.h" -#include "parsing.h" -#include -#include - -namespace NKikimr::NArrow { - -TConclusionStatus NKikimr::NArrow::TCompression::Validate() const { - if (Level) { - auto codec = TStatusValidator::GetValid(arrow::util::Codec::Create(Codec)); - const int levelMin = codec->minimum_compression_level(); - const int levelMax = codec->maximum_compression_level(); - if (Level && (*Level < levelMin || levelMax < *Level)) { - return TConclusionStatus::Fail( - TStringBuilder() << "incorrect level for codec. have to be: [" << levelMin << ":" << levelMax << "]" - ); - } - } - return TConclusionStatus::Success(); -} - -TConclusionStatus TCompression::DeserializeFromProto(const NKikimrSchemeOp::TCompressionOptions& compression) { - if (compression.HasCompressionCodec()) { - auto codecOpt = NArrow::CompressionFromProto(compression.GetCompressionCodec()); - if (!codecOpt) { - return TConclusionStatus::Fail("cannot parse codec type from proto"); - } - Codec = *codecOpt; - } - if (compression.HasCompressionLevel()) { - Level = compression.GetCompressionLevel(); - } - return Validate(); -} - -NKikimrSchemeOp::TCompressionOptions TCompression::SerializeToProto() const { - NKikimrSchemeOp::TCompressionOptions result; - result.SetCompressionCodec(NArrow::CompressionToProto(Codec)); - if (Level) { - result.SetCompressionLevel(*Level); - } - return result; -} - -TString TCompression::DebugString() const { - TStringBuilder sb; - sb << arrow::util::Codec::GetCodecAsString(Codec) << ":" << Level.value_or(arrow::util::kUseDefaultCompressionLevel); - return sb; -} - -std::unique_ptr TCompression::BuildArrowCodec() const { - return NArrow::TStatusValidator::GetValid( - arrow::util::Codec::Create( - Codec, Level.value_or(arrow::util::kUseDefaultCompressionLevel))); -} - -NKikimr::TConclusion TCompression::BuildFromProto(const NKikimrSchemeOp::TCompressionOptions& compression) { - TCompression result; - auto resultStatus = result.DeserializeFromProto(compression); - if (!resultStatus) { - return resultStatus; - } - return result; -} - -std::unique_ptr TCompression::BuildDefaultCodec() { - return *arrow::util::Codec::Create(arrow::Compression::LZ4_FRAME); -} - -} diff --git a/ydb/core/formats/arrow/compression/object.h b/ydb/core/formats/arrow/compression/object.h deleted file mode 100644 index 18c32b592212..000000000000 --- a/ydb/core/formats/arrow/compression/object.h +++ /dev/null @@ -1,39 +0,0 @@ -#pragma once - -#include -#include -#include "diff.h" - -namespace NKikimr::NArrow { - -class TCompression { -private: - arrow::Compression::type Codec = arrow::Compression::LZ4_FRAME; - std::optional Level; - TCompression() = default; - - TConclusionStatus Validate() const; - friend class TCompressionDiff; -public: - - static std::unique_ptr BuildDefaultCodec(); - - TConclusionStatus DeserializeFromProto(const NKikimrSchemeOp::TCompressionOptions& compression); - - NKikimrSchemeOp::TCompressionOptions SerializeToProto() const; - - static TConclusion BuildFromProto(const NKikimrSchemeOp::TCompressionOptions& compression); - - explicit TCompression(const arrow::Compression::type codec, std::optional level = {}) - : Codec(codec) - , Level(level) - { - - } - - TString DebugString() const; - std::unique_ptr BuildArrowCodec() const; - -}; - -} diff --git a/ydb/core/formats/arrow/compression/ya.make b/ydb/core/formats/arrow/compression/ya.make deleted file mode 100644 index 420b028e3f29..000000000000 --- a/ydb/core/formats/arrow/compression/ya.make +++ /dev/null @@ -1,16 +0,0 @@ -LIBRARY() - -SRCS( - diff.cpp - object.cpp - parsing.cpp -) - -PEERDIR( - contrib/libs/apache/arrow - ydb/core/protos - ydb/core/formats/arrow - ydb/library/conclusion -) - -END() diff --git a/ydb/core/formats/arrow/converter.cpp b/ydb/core/formats/arrow/converter.cpp index 052bccdd6669..8d4be308e3e6 100644 --- a/ydb/core/formats/arrow/converter.cpp +++ b/ydb/core/formats/arrow/converter.cpp @@ -39,29 +39,26 @@ static bool ConvertData(TCell& cell, const NScheme::TTypeInfo& colType, TMemoryP cell = TCell(saved.data(), saved.size()); break; } - case NScheme::NTypeIds::Decimal: - errorMessage = "Decimal conversion is not supported yet"; - return false; default: break; } return true; } -static bool ConvertColumn(const NScheme::TTypeInfo colType, std::shared_ptr& column, std::shared_ptr& field) { +static arrow::Status ConvertColumn(const NScheme::TTypeInfo colType, std::shared_ptr& column, std::shared_ptr& field) { switch (colType.GetTypeId()) { case NScheme::NTypeIds::Decimal: - return false; + return arrow::Status::TypeError("Cannot convert Decimal type"); case NScheme::NTypeIds::JsonDocument: { const static TSet jsonDocArrowTypes{ arrow::Type::BINARY, arrow::Type::STRING }; if (!jsonDocArrowTypes.contains(column->type()->id())) { - return false; + return arrow::Status::TypeError("Cannot convert JsonDocument to ", column->type()->ToString()); } break; } default: if (column->type()->id() != arrow::Type::BINARY) { - return false; + return arrow::Status::TypeError("Cannot convert ", NScheme::TypeName(colType), " to ", column->type()->ToString()); } break; } @@ -76,8 +73,12 @@ static bool ConvertColumn(const NScheme::TTypeInfo colType, std::shared_ptrData(), binaryJson->Size()).ok()) { - return false; + if (!binaryJson.Defined()) { + return arrow::Status::SerializationError("Cannot serialize json: ", valueBuf); + } + auto appendResult = builder.Append(binaryJson->Data(), binaryJson->Size()); + if (!appendResult.ok()) { + return appendResult; } } } @@ -108,8 +114,9 @@ static bool ConvertColumn(const NScheme::TTypeInfo colType, std::shared_ptr result; - if (!builder.Finish(&result).ok()) { - return false; + auto finishResult = builder.Finish(&result); + if (!finishResult.ok()) { + return finishResult; } column = result; @@ -117,10 +124,10 @@ static bool ConvertColumn(const NScheme::TTypeInfo colType, std::shared_ptr(field->name(), std::make_shared()); } - return true; + return arrow::Status::OK(); } -std::shared_ptr ConvertColumns(const std::shared_ptr& batch, +arrow::Result> ConvertColumns(const std::shared_ptr& batch, const THashMap& columnsToConvert) { std::vector> columns = batch->columns(); @@ -130,8 +137,9 @@ std::shared_ptr ConvertColumns(const std::shared_ptrcolumn_name(i); auto it = columnsToConvert.find(TString(colName.data(), colName.size())); if (it != columnsToConvert.end()) { - if (!ConvertColumn(it->second, columns[i], fields[i])) { - return {}; + auto convertResult = ConvertColumn(it->second, columns[i], fields[i]); + if (!convertResult.ok()) { + return arrow::Status::FromArgs(convertResult.code(), "column ", colName, ": ", convertResult.ToString()); } } } @@ -176,7 +184,7 @@ static std::shared_ptr InplaceConvertColumn(const std::shared_ptr< } } -std::shared_ptr InplaceConvertColumns(const std::shared_ptr& batch, +arrow::Result> InplaceConvertColumns(const std::shared_ptr& batch, const THashMap& columnsToConvert) { std::vector> columns = batch->columns(); std::vector> fields; diff --git a/ydb/core/formats/arrow/converter.h b/ydb/core/formats/arrow/converter.h index 47906fb48150..b998a724bd01 100644 --- a/ydb/core/formats/arrow/converter.h +++ b/ydb/core/formats/arrow/converter.h @@ -71,9 +71,9 @@ class TArrowToYdbConverter { bool Process(const arrow::RecordBatch& batch, TString& errorMessage); }; -std::shared_ptr ConvertColumns(const std::shared_ptr& batch, - const THashMap& columnsToConvert); -std::shared_ptr InplaceConvertColumns(const std::shared_ptr& batch, - const THashMap& columnsToConvert); +arrow::Result> ConvertColumns(const std::shared_ptr& batch, + const THashMap& columnsToConvert); +arrow::Result> InplaceConvertColumns(const std::shared_ptr& batch, + const THashMap& columnsToConvert); } // namespace NKikimr::NArrow diff --git a/ydb/core/formats/arrow/dictionary/object.h b/ydb/core/formats/arrow/dictionary/object.h index ba8b39a4f683..2fd4d6a12924 100644 --- a/ydb/core/formats/arrow/dictionary/object.h +++ b/ydb/core/formats/arrow/dictionary/object.h @@ -13,7 +13,9 @@ class TEncodingSettings { TEncodingSettings() = default; friend class TEncodingDiff; public: - + bool IsEqualTo(const TEncodingSettings& item) const { + return Enabled == item.Enabled; + } NTransformation::ITransformer::TPtr BuildEncoder() const; NTransformation::ITransformer::TPtr BuildDecoder() const; @@ -21,7 +23,7 @@ class TEncodingSettings { static TConclusion BuildFromProto(const NKikimrSchemeOp::TDictionaryEncodingSettings& proto) { TEncodingSettings result; auto resultParse = result.DeserializeFromProto(proto); - if (!resultParse) { + if (resultParse.IsFail()) { return resultParse; } return result; diff --git a/ydb/core/formats/arrow/hash/calcer.cpp b/ydb/core/formats/arrow/hash/calcer.cpp index b9833216dc6d..71af0492cfea 100644 --- a/ydb/core/formats/arrow/hash/calcer.cpp +++ b/ydb/core/formats/arrow/hash/calcer.cpp @@ -83,53 +83,6 @@ TXX64::TXX64(const std::vector& columnNames, const ENoColumnPolicy Y_ABORT_UNLESS(ColumnNames.size() >= 1); } -std::shared_ptr TXX64::ExecuteToArray(const std::shared_ptr& batch, const std::string& hashFieldName) const { - std::vector> columns = GetColumns(batch); - if (columns.empty()) { - return nullptr; - } - - auto builder = NArrow::MakeBuilder(std::make_shared(hashFieldName, arrow::TypeTraits::type_singleton())); - auto& intBuilder = static_cast(*builder); - TStatusValidator::Validate(intBuilder.Reserve(batch->num_rows())); - { - NXX64::TStreamStringHashCalcer hashCalcer(Seed); - for (int row = 0; row < batch->num_rows(); ++row) { - hashCalcer.Start(); - for (auto& column : columns) { - AppendField(column, row, hashCalcer); - } - intBuilder.UnsafeAppend(hashCalcer.Finish()); - } - } - return NArrow::TStatusValidator::GetValid(builder->Finish()); -} - -std::vector> TXX64::GetColumns(const std::shared_ptr& batch) const { - std::vector> columns; - columns.reserve(ColumnNames.size()); - for (auto& colName : ColumnNames) { - auto array = batch->GetColumnByName(colName); - if (!array) { - switch (NoColumnPolicy) { - case ENoColumnPolicy::Ignore: - break; - case ENoColumnPolicy::Verify: - AFL_VERIFY(false)("reason", "no_column")("column_name", colName); - case ENoColumnPolicy::ReturnEmpty: - return {}; - } - } else { - columns.emplace_back(array); - } - } - if (columns.empty()) { - AFL_WARN(NKikimrServices::ARROW_HELPER)("event", "cannot_read_all_columns")("reason", "fields_not_found") - ("field_names", JoinSeq(",", ColumnNames))("batch_fields", JoinSeq(",", batch->schema()->field_names())); - } - return columns; -} - ui64 TXX64::CalcHash(const std::shared_ptr& scalar) { NXX64::TStreamStringHashCalcer calcer(0); calcer.Start(); diff --git a/ydb/core/formats/arrow/hash/calcer.h b/ydb/core/formats/arrow/hash/calcer.h index d7f49e2ef1ee..465549e22c1a 100644 --- a/ydb/core/formats/arrow/hash/calcer.h +++ b/ydb/core/formats/arrow/hash/calcer.h @@ -1,13 +1,21 @@ #pragma once -#include -#include +#include "xx_hash.h" +#include +#include +#include + +#include +#include #include #include +#include +#include +#include + #include #include -#include "xx_hash.h" namespace NKikimr::NArrow::NHash { @@ -23,7 +31,31 @@ class TXX64 { const std::vector ColumnNames; const ENoColumnPolicy NoColumnPolicy; - std::vector> GetColumns(const std::shared_ptr& batch) const; + template + std::vector::TColumn>> GetColumns(const std::shared_ptr& batch) const { + std::vector::TColumn>> columns; + columns.reserve(ColumnNames.size()); + for (auto& colName : ColumnNames) { + auto array = batch->GetColumnByName(colName); + if (!array) { + switch (NoColumnPolicy) { + case ENoColumnPolicy::Ignore: + break; + case ENoColumnPolicy::Verify: + AFL_VERIFY(false)("reason", "no_column")("column_name", colName); + case ENoColumnPolicy::ReturnEmpty: + return {}; + } + } else { + columns.emplace_back(array); + } + } + if (columns.empty()) { + AFL_WARN(NKikimrServices::ARROW_HELPER)("event", "cannot_read_all_columns")("reason", "fields_not_found") + ("field_names", JoinSeq(",", ColumnNames))("batch_fields", JoinSeq(",", batch->schema()->field_names())); + } + return columns; + } public: TXX64(const std::vector& columnNames, const ENoColumnPolicy noColumnPolicy, const ui64 seed = 0); @@ -33,7 +65,37 @@ class TXX64 { static void AppendField(const std::shared_ptr& scalar, NXX64::TStreamStringHashCalcer& hashCalcer); static ui64 CalcHash(const std::shared_ptr& scalar); std::optional> Execute(const std::shared_ptr& batch) const; - std::shared_ptr ExecuteToArray(const std::shared_ptr& batch, const std::string& hashFieldName) const; + + template + std::shared_ptr ExecuteToArray(const std::shared_ptr& batch, const std::string& hashFieldName) const { + std::vector::TColumn>> columns = GetColumns(batch); + if (columns.empty()) { + return nullptr; + } + + std::vector columnScanners; + for (auto&& i : columns) { + columnScanners.emplace_back(NAccessor::IChunkedArray::TReader(std::make_shared::TAccessor>(i))); + } + + + auto builder = NArrow::MakeBuilder(std::make_shared(hashFieldName, arrow::TypeTraits::type_singleton())); + auto& intBuilder = static_cast(*builder); + TStatusValidator::Validate(intBuilder.Reserve(batch->num_rows())); + { + NXX64::TStreamStringHashCalcer hashCalcer(Seed); + for (int row = 0; row < batch->num_rows(); ++row) { + hashCalcer.Start(); + for (auto& column : columnScanners) { + auto address = column.GetReadChunk(row); + AppendField(address.GetArray(), address.GetPosition(), hashCalcer); + } + intBuilder.UnsafeAppend(hashCalcer.Finish()); + } + } + return NArrow::TStatusValidator::GetValid(builder->Finish()); + } + }; } diff --git a/ydb/core/formats/arrow/hash/ya.make b/ydb/core/formats/arrow/hash/ya.make index 031034a4d2e6..6d9a98b836a6 100644 --- a/ydb/core/formats/arrow/hash/ya.make +++ b/ydb/core/formats/arrow/hash/ya.make @@ -4,6 +4,7 @@ PEERDIR( contrib/libs/apache/arrow ydb/core/formats/arrow/simple_builder ydb/core/formats/arrow/switch + ydb/core/formats/arrow/reader ydb/library/actors/core ydb/library/services ydb/library/actors/protos diff --git a/ydb/core/formats/arrow/merging_sorted_input_stream.cpp b/ydb/core/formats/arrow/merging_sorted_input_stream.cpp deleted file mode 100644 index 7cc56d695a05..000000000000 --- a/ydb/core/formats/arrow/merging_sorted_input_stream.cpp +++ /dev/null @@ -1,303 +0,0 @@ -// The code in this file is based on original ClickHouse source code -// which is licensed under Apache license v2.0 -// See: https://github.com/ClickHouse/ClickHouse/ - -#include -#include "merging_sorted_input_stream.h" -#include "switch_type.h" -#include "size_calcer.h" - -namespace NKikimr::NArrow { - -class TRowsBuffer : public IRowsBuffer { -public: - using TBuilders = std::vector>; - - static constexpr const size_t BUFFER_SIZE = 256; - - TRowsBuffer(TBuilders& columns, size_t maxRows) - : Columns(columns) - , MaxRows(maxRows) - { - Rows.reserve(BUFFER_SIZE); - } - - bool AddRow(const TSortCursor& cursor) override { - Rows.emplace_back(cursor->all_columns, cursor->getRow()); - if (Rows.size() >= BUFFER_SIZE) { - Flush(); - } - ++AddedRows; - return true; - } - - void Flush() override { - if (Rows.empty()) { - return; - } - for (size_t i = 0; i < Columns.size(); ++i) { - arrow::ArrayBuilder& builder = *Columns[i]; - for (auto& [srcColumn, rowPosition] : Rows) { - Append(builder, *srcColumn->at(i), rowPosition); - } - } - Rows.clear(); - } - - bool Limit() const override { - return MaxRows && (AddedRows >= MaxRows); - } - - bool HasLimit() const override { - return MaxRows; - } - -private: - TBuilders& Columns; - std::vector> Rows; - size_t MaxRows = 0; - size_t AddedRows = 0; -}; - -class TSlicedRowsBuffer : public IRowsBuffer { -public: - TSlicedRowsBuffer(size_t maxRows) - : MaxRows(maxRows) - {} - - bool AddRow(const TSortCursor& cursor) override { - if (!Batch) { - Batch = cursor->current_batch; - Offset = cursor->getRow(); - } - if (Batch.get() != cursor->current_batch.get()) { - // append from another batch - return false; - } else if (cursor->getRow() != (Offset + AddedRows)) { - // append from the same batch with data hole - return false; - } - ++AddedRows; - return true; - } - - void Flush() override { - } - - bool Limit() const override { - return MaxRows && (AddedRows >= MaxRows); - } - - bool HasLimit() const override { - return MaxRows; - } - - std::shared_ptr GetBatch() { - if (Batch) { - return Batch->Slice(Offset, AddedRows); - } - return {}; - } - -private: - std::shared_ptr Batch; - size_t Offset = 0; - size_t MaxRows = 0; - size_t AddedRows = 0; -}; - -TMergingSortedInputStream::TMergingSortedInputStream(const std::vector& inputs, - std::shared_ptr description, - size_t maxBatchRows, bool slice) - : Description(description) - , MaxBatchSize(maxBatchRows) - , SliceSources(slice) - , SourceBatches(inputs.size()) - , Cursors(inputs.size()) -{ - Children.insert(Children.end(), inputs.begin(), inputs.end()); - Header = Children.at(0)->Schema(); -} - -/// Read the first blocks, initialize the queue. -void TMergingSortedInputStream::Init() { - Y_ABORT_UNLESS(First); - First = false; - size_t totalRows = 0; - for (size_t i = 0; i < SourceBatches.size(); ++i) { - auto& batch = SourceBatches[i]; - if (batch) { - continue; - } - - batch = Children[i]->Read(); - if (!batch || batch->num_rows() == 0) { - continue; - } - - for (i32 i = 0; i < batch->num_columns(); ++i) { - ColumnSize[batch->column_name(i)] += NArrow::GetArrayDataSize(batch->column(i)); - } - - totalRows += batch->num_rows(); - Cursors[i] = TSortCursorImpl(batch, Description, i); - } - - ExpectedBatchSize = MaxBatchSize ? std::min(totalRows, MaxBatchSize) : totalRows; - if (MaxBatchSize && MaxBatchSize < totalRows) { - ColumnSize.clear(); - } - - Queue = TSortingHeap(Cursors, Description->NotNull); - - /// Let's check that all source blocks have the same structure. - for (const auto& batch : SourceBatches) { - if (batch) { - Y_DEBUG_ABORT_UNLESS(batch->schema()->Equals(*Header)); - } - } -} - -std::shared_ptr TMergingSortedInputStream::ReadImpl() { - if (Finished) { - return {}; - } - - if (Children.size() == 1 && !Description->Replace()) { - return Children[0]->Read(); - } - - if (First) { - Init(); - } - - if (SliceSources) { - Y_DEBUG_ABORT_UNLESS(!Description->Reverse); - TSlicedRowsBuffer rowsBuffer(MaxBatchSize); - Merge(rowsBuffer, Queue); - auto batch = rowsBuffer.GetBatch(); - Y_ABORT_UNLESS(batch); - if (!batch->num_rows()) { - Y_ABORT_UNLESS(Finished); - return {}; - } - return batch; - } else { - auto builders = NArrow::MakeBuilders(Header, ExpectedBatchSize, ColumnSize); - if (builders.empty()) { - return {}; - } - - Y_ABORT_UNLESS(builders.size() == (size_t)Header->num_fields()); - TRowsBuffer rowsBuffer(builders, MaxBatchSize); - Merge(rowsBuffer, Queue); - - auto arrays = NArrow::Finish(std::move(builders)); - Y_ABORT_UNLESS(arrays.size()); - if (!arrays[0]->length()) { - Y_ABORT_UNLESS(Finished); - return {}; - } - return arrow::RecordBatch::Make(Header, arrays[0]->length(), arrays); - } -} - -/// Get the next block from the corresponding source, if there is one. -void TMergingSortedInputStream::FetchNextBatch(const TSortCursor& current, TSortingHeap& queue) { - size_t order = current->order; - Y_ABORT_UNLESS(order < Cursors.size() && &Cursors[order] == current.Impl); - - while (true) { - SourceBatches[order] = Children[order]->Read(); - auto& batch = SourceBatches[order]; - - if (!batch) { - queue.RemoveTop(); - break; - } - - if (batch->num_rows()) { - Y_DEBUG_ABORT_UNLESS(batch->schema()->Equals(*Header)); - - Cursors[order].Reset(batch); - queue.ReplaceTop(TSortCursor(&Cursors[order], Description->NotNull)); - break; - } - } -} - -/// Take rows in required order and put them into `rowBuffer`, -/// while the number of rows are no more than `max_block_size` -template -void TMergingSortedInputStream::MergeImpl(IRowsBuffer& rowsBuffer, TSortingHeap& queue) { - if constexpr (replace) { - if (!PrevKey && queue.IsValid()) { - auto current = queue.Current(); - PrevKey = std::make_shared(current->replace_columns, current->getRow()); - if (!rowsBuffer.AddRow(current)) { - return; - } - // Do not get Next() for simplicity. Lead to a dup - } - } - - while (queue.IsValid()) { - if constexpr (limit) { - if (rowsBuffer.Limit()) { - return; - } - } - - auto current = queue.Current(); - - if constexpr (replace) { - TReplaceKey key(current->replace_columns, current->getRow()); - - if (key == *PrevKey) { - // do nothing - } else if (rowsBuffer.AddRow(current)) { - *PrevKey = key; - } else { - return; - } - } else { - if (!rowsBuffer.AddRow(current)) { - return; - } - } - - if (!current->isLast()) { - queue.Next(); - } else { - rowsBuffer.Flush(); - FetchNextBatch(current, queue); - } - } - - /// We have read all data. Ask children to cancel providing more data. - Cancel(); - Finished = true; -} - -void TMergingSortedInputStream::Merge(IRowsBuffer& rowsBuffer, TSortingHeap& queue) { - const bool replace = Description->Replace(); - const bool limit = rowsBuffer.HasLimit(); - - if (replace) { - if (limit) { - MergeImpl(rowsBuffer, queue); - } else { - MergeImpl(rowsBuffer, queue); - } - } else { - if (limit) { - MergeImpl(rowsBuffer, queue); - } else { - MergeImpl(rowsBuffer, queue); - } - } - - rowsBuffer.Flush(); -} - -} diff --git a/ydb/core/formats/arrow/merging_sorted_input_stream.h b/ydb/core/formats/arrow/merging_sorted_input_stream.h deleted file mode 100644 index 2a3a2f722775..000000000000 --- a/ydb/core/formats/arrow/merging_sorted_input_stream.h +++ /dev/null @@ -1,54 +0,0 @@ -// The code in this file is based on original ClickHouse source code -// which is licensed under Apache license v2.0 -// See: https://github.com/ClickHouse/ClickHouse/ - -#pragma once -#include "input_stream.h" -#include "sort_cursor.h" - -namespace NKikimr::NArrow { - -struct IRowsBuffer { - virtual bool AddRow(const TSortCursor& cursor) = 0; - virtual void Flush() = 0; - virtual bool Limit() const = 0; - virtual bool HasLimit() const = 0; -}; - -/// Merges several sorted streams into one sorted stream. -class TMergingSortedInputStream : public IInputStream { -public: - TMergingSortedInputStream(const std::vector& inputs, - std::shared_ptr description, - size_t maxBatchRows, bool slice = false); - - std::shared_ptr Schema() const override { return Header; } - -protected: - std::shared_ptr ReadImpl() override; - -private: - std::shared_ptr Header; - std::shared_ptr Description; - const ui64 MaxBatchSize; - const bool SliceSources; - bool First = true; - bool Finished = false; - ui64 ExpectedBatchSize = 0; /// May be smaller or equal to max_block_size. To do 'reserve' for columns. - std::map ColumnSize; - - std::vector> SourceBatches; - std::shared_ptr PrevKey; - - std::vector Cursors; - TSortingHeap Queue; - - void Init(); - void FetchNextBatch(const TSortCursor& current, TSortingHeap& queue); - void Merge(IRowsBuffer& rowsBuffer, TSortingHeap& queue); - - template - void MergeImpl(IRowsBuffer& rowsBuffer, TSortingHeap& queue); -}; - -} diff --git a/ydb/core/formats/arrow/one_batch_input_stream.h b/ydb/core/formats/arrow/one_batch_input_stream.h deleted file mode 100644 index 647e70a3f6a7..000000000000 --- a/ydb/core/formats/arrow/one_batch_input_stream.h +++ /dev/null @@ -1,36 +0,0 @@ -// The code in this file is based on original ClickHouse source code -// which is licensed under Apache license v2.0 -// See: https://github.com/ClickHouse/ClickHouse/ - -#pragma once -#include "input_stream.h" - -namespace NKikimr::NArrow { - -class TOneBatchInputStream : public IInputStream { -public: - explicit TOneBatchInputStream(std::shared_ptr batch) - : Batch(batch) - , Header(Batch->schema()) - {} - - std::shared_ptr Schema() const override { - return Header; - } - -protected: - std::shared_ptr ReadImpl() override { - if (Batch) { - auto out = Batch; - Batch.reset(); - return out; - } - return {}; - } - -private: - std::shared_ptr Batch; - std::shared_ptr Header; -}; - -} diff --git a/ydb/core/formats/arrow/permutations.cpp b/ydb/core/formats/arrow/permutations.cpp index 6f38f9fb0050..ace1fad33663 100644 --- a/ydb/core/formats/arrow/permutations.cpp +++ b/ydb/core/formats/arrow/permutations.cpp @@ -1,5 +1,6 @@ -#include "arrow_helpers.h" #include "permutations.h" + +#include "arrow_helpers.h" #include "replace_key.h" #include "size_calcer.h" #include "hash/calcer.h" @@ -15,34 +16,24 @@ namespace NKikimr::NArrow { std::shared_ptr MakePermutation(const int size, const bool reverse) { - if (size < 1) { - return {}; - } - arrow::UInt64Builder builder; - if (!builder.Reserve(size).ok()) { - return {}; - } + TStatusValidator::Validate(builder.Reserve(size)); - if (reverse) { - ui64 value = size - 1; - for (i64 i = 0; i < size; ++i, --value) { - if (!builder.Append(value).ok()) { - return {}; + if (size) { + if (reverse) { + ui64 value = size - 1; + for (i64 i = 0; i < size; ++i, --value) { + TStatusValidator::Validate(builder.Append(value)); } - } - } else { - for (i64 i = 0; i < size; ++i) { - if (!builder.Append(i).ok()) { - return {}; + } else { + for (i64 i = 0; i < size; ++i) { + TStatusValidator::Validate(builder.Append(i)); } } } std::shared_ptr out; - if (!builder.Finish(&out).ok()) { - return {}; - } + TStatusValidator::Validate(builder.Finish(&out)); return out; } @@ -190,7 +181,10 @@ std::shared_ptr CopyRecords(const std::shared_ptr& s return result; } -bool THashConstructor::BuildHashUI64(std::shared_ptr& batch, const std::vector& fieldNames, const std::string& hashFieldName) { +namespace { + +template +bool BuildHashUI64Impl(std::shared_ptr& batch, const std::vector& fieldNames, const std::string& hashFieldName) { if (fieldNames.size() == 0) { return false; } @@ -203,26 +197,43 @@ bool THashConstructor::BuildHashUI64(std::shared_ptr& batch, } Y_ABORT_UNLESS(column); if (column->type()->id() == arrow::Type::UINT64 || column->type()->id() == arrow::Type::UINT32 || column->type()->id() == arrow::Type::INT64 || column->type()->id() == arrow::Type::INT32) { - batch = TStatusValidator::GetValid(batch->AddColumn(batch->num_columns(), hashFieldName, column)); + batch = TStatusValidator::GetValid(batch->AddColumn(batch->num_columns(), std::make_shared(hashFieldName, column->type()), column)); return true; } } - std::shared_ptr hashColumn = NArrow::NHash::TXX64(fieldNames, NArrow::NHash::TXX64::ENoColumnPolicy::Verify, 34323543).ExecuteToArray(batch, hashFieldName); - batch = TStatusValidator::GetValid(batch->AddColumn(batch->num_columns(), hashFieldName, hashColumn)); + std::shared_ptr hashColumn = NArrow::NHash::TXX64(fieldNames, NArrow::NHash::TXX64::ENoColumnPolicy::Verify, 34323543) + .ExecuteToArray(batch, hashFieldName); + batch = NAdapter::TDataBuilderPolicy::AddColumn(batch, std::make_shared(hashFieldName, hashColumn->type()), hashColumn); return true; } +} + +bool THashConstructor::BuildHashUI64(std::shared_ptr& batch, const std::vector& fieldNames, const std::string& hashFieldName) { + return BuildHashUI64Impl(batch, fieldNames, hashFieldName); +} + +bool THashConstructor::BuildHashUI64(std::shared_ptr& batch, const std::vector& fieldNames, const std::string& hashFieldName) { + return BuildHashUI64Impl(batch, fieldNames, hashFieldName); +} + ui64 TShardedRecordBatch::GetMemorySize() const { - return NArrow::GetBatchMemorySize(RecordBatch); + return NArrow::GetTableMemorySize(RecordBatch); +} + +TShardedRecordBatch::TShardedRecordBatch(const std::shared_ptr& batch) { + AFL_VERIFY(batch); + RecordBatch = TStatusValidator::GetValid(arrow::Table::FromRecordBatches(batch->schema(), {batch})); } -TShardedRecordBatch::TShardedRecordBatch(const std::shared_ptr& batch) + +TShardedRecordBatch::TShardedRecordBatch(const std::shared_ptr& batch) : RecordBatch(batch) { AFL_VERIFY(RecordBatch); } -TShardedRecordBatch::TShardedRecordBatch(const std::shared_ptr& batch, std::vector>&& splittedByShards) +TShardedRecordBatch::TShardedRecordBatch(const std::shared_ptr& batch, std::vector>&& splittedByShards) : RecordBatch(batch) , SplittedByShards(std::move(splittedByShards)) { @@ -230,13 +241,13 @@ TShardedRecordBatch::TShardedRecordBatch(const std::shared_ptr> TShardingSplitIndex::Apply(const std::shared_ptr& input) { +std::vector> TShardingSplitIndex::Apply(const std::shared_ptr& input) { AFL_VERIFY(input); AFL_VERIFY(input->num_rows() == RecordsCount); auto permutation = BuildPermutation(); - auto resultBatch = NArrow::TStatusValidator::GetValid(arrow::compute::Take(input, *permutation)).record_batch(); + auto resultBatch = NArrow::TStatusValidator::GetValid(arrow::compute::Take(input, *permutation)).table(); AFL_VERIFY(resultBatch->num_rows() == RecordsCount); - std::vector> result; + std::vector> result; ui64 startIndex = 0; for (auto&& i : Remapping) { result.emplace_back(resultBatch->Slice(startIndex, i.size())); @@ -246,7 +257,7 @@ std::vector> TShardingSplitIndex::Apply(cons return result; } -NKikimr::NArrow::TShardedRecordBatch TShardingSplitIndex::Apply(const ui32 shardsCount, const std::shared_ptr& input, const std::string& hashColumnName) { +NKikimr::NArrow::TShardedRecordBatch TShardingSplitIndex::Apply(const ui32 shardsCount, const std::shared_ptr& input, const std::string& hashColumnName) { AFL_VERIFY(input); if (shardsCount == 1) { return TShardedRecordBatch(input); @@ -271,6 +282,11 @@ NKikimr::NArrow::TShardedRecordBatch TShardingSplitIndex::Apply(const ui32 shard return TShardedRecordBatch(resultBatch, splitter->DetachRemapping()); } +TShardedRecordBatch TShardingSplitIndex::Apply(const ui32 shardsCount, const std::shared_ptr& input, const std::string& hashColumnName) { + return Apply(shardsCount, TStatusValidator::GetValid(arrow::Table::FromRecordBatches(input->schema(), {input})) + , hashColumnName); +} + std::shared_ptr TShardingSplitIndex::BuildPermutation() const { arrow::UInt64Builder builder; Y_ABORT_UNLESS(builder.Reserve(RecordsCount).ok()); @@ -287,8 +303,15 @@ std::shared_ptr TShardingSplitIndex::BuildPermutation() cons } std::shared_ptr ReverseRecords(const std::shared_ptr& batch) { + AFL_VERIFY(batch); auto permutation = NArrow::MakePermutation(batch->num_rows(), true); return NArrow::TStatusValidator::GetValid(arrow::compute::Take(batch, permutation)).record_batch(); } +std::shared_ptr ReverseRecords(const std::shared_ptr& batch) { + AFL_VERIFY(batch); + auto permutation = NArrow::MakePermutation(batch->num_rows(), true); + return NArrow::TStatusValidator::GetValid(arrow::compute::Take(batch, permutation)).table(); +} + } diff --git a/ydb/core/formats/arrow/permutations.h b/ydb/core/formats/arrow/permutations.h index 584db8350888..73a433ee52a2 100644 --- a/ydb/core/formats/arrow/permutations.h +++ b/ydb/core/formats/arrow/permutations.h @@ -1,4 +1,7 @@ #pragma once +#include "arrow_helpers.h" + +#include #include #include #include @@ -7,14 +10,17 @@ namespace NKikimr::NArrow { class THashConstructor { public: + static bool BuildHashUI64(std::shared_ptr& batch, const std::vector& fieldNames, const std::string& hashFieldName); static bool BuildHashUI64(std::shared_ptr& batch, const std::vector& fieldNames, const std::string& hashFieldName); + }; class TShardedRecordBatch { private: - YDB_READONLY_DEF(std::shared_ptr, RecordBatch); + YDB_READONLY_DEF(std::shared_ptr, RecordBatch); YDB_READONLY_DEF(std::vector>, SplittedByShards); public: + TShardedRecordBatch(const std::shared_ptr& batch); TShardedRecordBatch(const std::shared_ptr& batch); void Cut(const ui32 limit) { @@ -31,11 +37,7 @@ class TShardedRecordBatch { return SplittedByShards.size() > 1; } - TShardedRecordBatch(const std::shared_ptr& batch, std::vector>&& splittedByShards); - - void StripColumns(const std::shared_ptr& schema) { - RecordBatch = NArrow::ExtractColumns(RecordBatch, schema); - } + TShardedRecordBatch(const std::shared_ptr& batch, std::vector>&& splittedByShards); ui64 GetMemorySize() const; @@ -74,17 +76,22 @@ class TShardingSplitIndex { } template - void Initialize(const TIntArrowArray& arrowHashArray) { + void Initialize(const arrow::ChunkedArray& arrowHashArrayChunked) { Y_ABORT_UNLESS(ShardsCount); Remapping.resize(ShardsCount); - const ui32 expectation = arrowHashArray.length() / ShardsCount + 1; + const ui32 expectation = arrowHashArrayChunked.length() / ShardsCount + 1; for (auto&& i : Remapping) { i.reserve(2 * expectation); } - for (ui64 i = 0; i < (ui64)arrowHashArray.length(); ++i) { - const i64 v = arrowHashArray.GetView(i); - const ui32 idx = ((v < 0) ? (-v) : v) % ShardsCount; - Remapping[idx].emplace_back(i); + for (auto&& arrowHashArrayAbstract : arrowHashArrayChunked.chunks()) { + auto& arrowHashArray = static_cast(*arrowHashArrayAbstract); + ui64 offset = 0; + for (ui64 i = 0; i < (ui64)arrowHashArray.length(); ++i) { + const i64 v = arrowHashArray.GetView(i); + const ui32 idx = ((v < 0) ? (-v) : v) % ShardsCount; + Remapping[idx].emplace_back(offset + i); + } + offset += (ui64)arrowHashArray.length(); } std::deque*> sizeCorrection; for (auto&& i : Remapping) { @@ -112,7 +119,7 @@ class TShardingSplitIndex { } } - TShardingSplitIndex(const ui32 shardsCount, const arrow::Array& arrowHashArray) + TShardingSplitIndex(const ui32 shardsCount, const arrow::ChunkedArray& arrowHashArray) : ShardsCount(shardsCount) , RecordsCount(arrowHashArray.length()) { } @@ -124,16 +131,16 @@ class TShardingSplitIndex { } template - static TShardingSplitIndex Build(const ui32 shardsCount, const arrow::Array& arrowHashArray) { + static TShardingSplitIndex Build(const ui32 shardsCount, const arrow::ChunkedArray& arrowHashArray) { TShardingSplitIndex result(shardsCount, arrowHashArray); - result.Initialize(static_cast(arrowHashArray)); + result.Initialize(arrowHashArray); return result; } std::shared_ptr BuildPermutation() const; - std::vector> Apply(const std::shared_ptr& input); - + std::vector> Apply(const std::shared_ptr& input); + static TShardedRecordBatch Apply(const ui32 shardsCount, const std::shared_ptr& input, const std::string& hashColumnName); static TShardedRecordBatch Apply(const ui32 shardsCount, const std::shared_ptr& input, const std::string& hashColumnName); }; @@ -142,6 +149,7 @@ std::shared_ptr MakeFilterPermutation(const std::vector MakeFilterPermutation(const std::vector& indexes); std::shared_ptr MakeSortPermutation(const std::shared_ptr& batch, const std::shared_ptr& sortingKey, const bool andUnique); std::shared_ptr ReverseRecords(const std::shared_ptr& batch); +std::shared_ptr ReverseRecords(const std::shared_ptr& batch); std::shared_ptr CopyRecords(const std::shared_ptr& source, const std::vector& indexes); std::shared_ptr CopyRecords(const std::shared_ptr& source, const std::vector& indexes); diff --git a/ydb/core/formats/arrow/program.cpp b/ydb/core/formats/arrow/program.cpp index fadd6bbf76b4..f84435bdefd5 100644 --- a/ydb/core/formats/arrow/program.cpp +++ b/ydb/core/formats/arrow/program.cpp @@ -33,6 +33,7 @@ struct GroupByOptions: public arrow::compute::ScalarAggregateOptions { }; } #endif +#include "common/container.h" #include #include @@ -139,7 +140,9 @@ class TKernelFunction : public IStepFunction { TKernelFunction(const TFunctionPtr kernelsFunction, arrow::compute::ExecContext* ctx) : TBase(ctx) , Function(kernelsFunction) - {} + { + AFL_VERIFY(Function); + } arrow::Result Call(const TAssignObject& assign, const TDatumBatch& batch) const override { auto arguments = TBase::BuildArgs(batch, assign.GetArguments()); @@ -550,13 +553,36 @@ arrow::Result TDatumBatch::GetColumnByName(const std::string& name return Datums[i]; } +std::shared_ptr TDatumBatch::ToTable() const { + std::vector> columns; + columns.reserve(Datums.size()); + for (auto col : Datums) { + if (col.is_scalar()) { + columns.push_back(std::make_shared(NArrow::TStatusValidator::GetValid(arrow::MakeArrayFromScalar(*col.scalar(), Rows)))); + } else if (col.is_array()) { + if (col.length() == -1) { + return {}; + } + columns.push_back(std::make_shared(col.make_array())); + } else if (col.is_arraylike()) { + if (col.length() == -1) { + return {}; + } + columns.push_back(col.chunked_array()); + } else { + AFL_VERIFY(false); + } + } + return arrow::Table::Make(Schema, columns, Rows); +} + std::shared_ptr TDatumBatch::ToRecordBatch() const { std::vector> columns; columns.reserve(Datums.size()); for (auto col : Datums) { if (col.is_scalar()) { - columns.push_back(*arrow::MakeArrayFromScalar(*col.scalar(), Rows)); - } else if (col.is_array()){ + columns.push_back(NArrow::TStatusValidator::GetValid(arrow::MakeArrayFromScalar(*col.scalar(), Rows))); + } else if (col.is_array()) { if (col.length() == -1) { return {}; } @@ -836,10 +862,30 @@ arrow::Status TProgramStep::ApplyProjection(std::shared_ptr& arrow::Status TProgramStep::Apply(std::shared_ptr& batch, arrow::compute::ExecContext* ctx) const { auto rb = TDatumBatch::FromRecordBatch(batch); - NArrow::TStatusValidator::Validate(ApplyAssignes(*rb, ctx)); - NArrow::TStatusValidator::Validate(ApplyFilters(*rb)); - NArrow::TStatusValidator::Validate(ApplyAggregates(*rb, ctx)); - NArrow::TStatusValidator::Validate(ApplyProjection(*rb)); + { + auto status = ApplyAssignes(*rb, ctx); + if (!status.ok()) { + return status; + } + } + { + auto status = ApplyFilters(*rb); + if (!status.ok()) { + return status; + } + } + { + auto status = ApplyAggregates(*rb, ctx); + if (!status.ok()) { + return status; + } + } + { + auto status = ApplyProjection(*rb); + if (!status.ok()) { + return status; + } + } batch = (*rb).ToRecordBatch(); if (!batch) { @@ -848,29 +894,48 @@ arrow::Status TProgramStep::Apply(std::shared_ptr& batch, ar return arrow::Status::OK(); } -std::set TProgramStep::GetColumnsInUsage() const { +std::set TProgramStep::GetColumnsInUsage(const bool originalOnly/* = false*/) const { std::set result; for (auto&& i : Filters) { - result.emplace(i.GetColumnName()); + if (!originalOnly || !i.IsGenerated()) { + result.emplace(i.GetColumnName()); + } } for (auto&& i : Assignes) { for (auto&& f : i.GetArguments()) { - result.emplace(f.GetColumnName()); + if (!originalOnly || !f.IsGenerated()) { + result.emplace(f.GetColumnName()); + } } } return result; } -std::shared_ptr TProgramStep::BuildFilter(const std::shared_ptr& t) const { +arrow::Result> TProgramStep::BuildFilter(const std::shared_ptr& t) const { + return BuildFilter(t->BuildTable(GetColumnsInUsage(true))); +} + +arrow::Result> TProgramStep::BuildFilter(const std::shared_ptr& t) const { if (Filters.empty()) { return nullptr; } - auto datumBatch = TDatumBatch::FromTable(t); - - NArrow::TStatusValidator::Validate(ApplyAssignes(*datumBatch, NArrow::GetCustomExecContext())); - NArrow::TColumnFilter local = NArrow::TColumnFilter::BuildAllowFilter(); - NArrow::TStatusValidator::Validate(MakeCombinedFilter(*datumBatch, local)); - return std::make_shared(std::move(local)); + std::vector> batches = NArrow::SliceToRecordBatches(t); + NArrow::TColumnFilter fullLocal = NArrow::TColumnFilter::BuildAllowFilter(); + for (auto&& rb : batches) { + auto datumBatch = TDatumBatch::FromRecordBatch(rb); + { + auto statusAssign = ApplyAssignes(*datumBatch, NArrow::GetCustomExecContext()); + if (!statusAssign.ok()) { + return statusAssign; + } + } + NArrow::TColumnFilter local = NArrow::TColumnFilter::BuildAllowFilter(); + NArrow::TStatusValidator::Validate(MakeCombinedFilter(*datumBatch, local)); + AFL_VERIFY(local.Size() == datumBatch->Rows)("local", local.Size())("datum", datumBatch->Rows); + fullLocal.Append(local); + } + AFL_VERIFY(fullLocal.Size() == t->num_rows())("filter", fullLocal.Size())("t", t->num_rows()); + return std::make_shared(std::move(fullLocal)); } const std::set& TProgramStep::GetFilterOriginalColumnIds() const { @@ -898,30 +963,4 @@ std::set TProgram::GetProcessingColumns() const { return result; } -std::shared_ptr TProgram::ApplyEarlyFilter(std::shared_ptr& batch, const bool useFilter) const { - std::shared_ptr filter = std::make_shared(NArrow::TColumnFilter::BuildAllowFilter()); - for (ui32 i = 0; i < Steps.size(); ++i) { - try { - auto& step = Steps[i]; - if (!step->IsFilterOnly()) { - break; - } - - std::shared_ptr local = step->BuildFilter(batch); - AFL_VERIFY(local); - if (!useFilter) { - *filter = filter->And(*local); - } else { - *filter = filter->CombineSequentialAnd(*local); - if (!local->Apply(batch)) { - break; - } - } - } catch (const std::exception& ex) { - AFL_VERIFY(false); - } - } - return filter; -} - } diff --git a/ydb/core/formats/arrow/program.h b/ydb/core/formats/arrow/program.h index 000bd447b1e5..ed5f13403d02 100644 --- a/ydb/core/formats/arrow/program.h +++ b/ydb/core/formats/arrow/program.h @@ -44,6 +44,7 @@ struct TDatumBatch { arrow::Status AddColumn(const std::string& name, arrow::Datum&& column); arrow::Result GetColumnByName(const std::string& name) const; + std::shared_ptr ToTable() const; std::shared_ptr ToRecordBatch() const; static std::shared_ptr FromRecordBatch(const std::shared_ptr& batch); static std::shared_ptr FromTable(const std::shared_ptr& batch); @@ -353,7 +354,7 @@ class TProgramStep { return sb; } - std::set GetColumnsInUsage() const; + std::set GetColumnsInUsage(const bool originalOnly = false) const; const std::set& GetFilterOriginalColumnIds() const; @@ -390,7 +391,7 @@ class TProgramStep { arrow::Status Apply(std::shared_ptr& batch, arrow::compute::ExecContext* ctx) const; - arrow::Status ApplyAssignes(TDatumBatch& batch, arrow::compute::ExecContext* ctx) const; + [[nodiscard]] arrow::Status ApplyAssignes(TDatumBatch& batch, arrow::compute::ExecContext* ctx) const; arrow::Status ApplyAggregates(TDatumBatch& batch, arrow::compute::ExecContext* ctx) const; arrow::Status ApplyFilters(TDatumBatch& batch) const; arrow::Status ApplyProjection(std::shared_ptr& batch) const; @@ -402,7 +403,8 @@ class TProgramStep { return Filters.size() && (!GroupBy.size() && !GroupByKeys.size()); } - std::shared_ptr BuildFilter(const std::shared_ptr& t) const; + [[nodiscard]] arrow::Result> BuildFilter(const std::shared_ptr& t) const; + [[nodiscard]] arrow::Result> BuildFilter(const std::shared_ptr& t) const; }; struct TProgram { @@ -416,6 +418,18 @@ struct TProgram { : Steps(std::move(steps)) {} + arrow::Status ApplyTo(std::shared_ptr& table, arrow::compute::ExecContext* ctx) const { + std::vector> batches = NArrow::SliceToRecordBatches(table); + for (auto&& i : batches) { + auto status = ApplyTo(i, ctx); + if (!status.ok()) { + return status; + } + } + table = NArrow::TStatusValidator::GetValid(arrow::Table::FromRecordBatches(batches)); + return arrow::Status::OK(); + } + arrow::Status ApplyTo(std::shared_ptr& batch, arrow::compute::ExecContext* ctx) const { try { for (auto& step : Steps) { @@ -432,7 +446,6 @@ struct TProgram { std::set GetEarlyFilterColumns() const; std::set GetProcessingColumns() const; - std::shared_ptr ApplyEarlyFilter(std::shared_ptr& batch, const bool useFilter) const; TString DebugString() const { TStringBuilder sb; sb << "["; @@ -444,11 +457,17 @@ struct TProgram { } }; +inline arrow::Status ApplyProgram( + std::shared_ptr& batch, + const TProgram& program, + arrow::compute::ExecContext* ctx = nullptr) { + return program.ApplyTo(batch, ctx); +} + inline arrow::Status ApplyProgram( std::shared_ptr& batch, const TProgram& program, - arrow::compute::ExecContext* ctx = nullptr) -{ + arrow::compute::ExecContext* ctx = nullptr) { return program.ApplyTo(batch, ctx); } diff --git a/ydb/core/formats/arrow/reader/batch_iterator.cpp b/ydb/core/formats/arrow/reader/batch_iterator.cpp new file mode 100644 index 000000000000..5216691dd208 --- /dev/null +++ b/ydb/core/formats/arrow/reader/batch_iterator.cpp @@ -0,0 +1,51 @@ +#include "batch_iterator.h" + +namespace NKikimr::NArrow::NMerger { + +NJson::TJsonValue TBatchIterator::DebugJson() const { + NJson::TJsonValue result; + result["is_cp"] = IsControlPoint(); + result["key"] = KeyColumns.DebugJson(); + return result; +} + +NKikimr::NArrow::NMerger::TSortableBatchPosition::TFoundPosition TBatchIterator::SkipToLower(const TSortableBatchPosition& pos) { + const ui32 posStart = KeyColumns.GetPosition(); + auto result = KeyColumns.SkipToLower(pos); + const i32 delta = IsReverse() ? (posStart - KeyColumns.GetPosition()) : (KeyColumns.GetPosition() - posStart); + AFL_VERIFY(delta >= 0); + AFL_VERIFY(VersionColumns.InitPosition(KeyColumns.GetPosition()))("pos", KeyColumns.GetPosition()) + ("size", VersionColumns.GetRecordsCount())("key_size", KeyColumns.GetRecordsCount()); + if (FilterIterator && delta) { + AFL_VERIFY(FilterIterator->Next(delta)); + } + return result; +} + +bool TBatchIterator::Next() { + const bool result = KeyColumns.NextPosition(ReverseSortKff) && VersionColumns.NextPosition(ReverseSortKff); + if (FilterIterator) { + Y_ABORT_UNLESS(result == FilterIterator->Next(1)); + } + return result; +} + +bool TBatchIterator::operator<(const TBatchIterator& item) const { + const std::partial_ordering result = KeyColumns.Compare(item.KeyColumns); + if (result == std::partial_ordering::equivalent) { + if (IsControlPoint() && item.IsControlPoint()) { + return false; + } else if (IsControlPoint()) { + return false; + } else if (item.IsControlPoint()) { + return true; + } + //don't need inverse through we need maximal version at first (reverse analytic not included in VersionColumns) + return VersionColumns.Compare(item.VersionColumns) == std::partial_ordering::less; + } else { + //inverse logic through we use max heap, but need minimal element if not reverse (reverse analytic included in KeyColumns) + return result == std::partial_ordering::greater; + } +} + +} diff --git a/ydb/core/formats/arrow/reader/batch_iterator.h b/ydb/core/formats/arrow/reader/batch_iterator.h new file mode 100644 index 000000000000..48497a53c452 --- /dev/null +++ b/ydb/core/formats/arrow/reader/batch_iterator.h @@ -0,0 +1,89 @@ +#pragma once +#include "position.h" +#include + +namespace NKikimr::NArrow::NMerger { + +class TBatchIterator { +private: + bool ControlPointFlag; + TRWSortableBatchPosition KeyColumns; + TRWSortableBatchPosition VersionColumns; + i64 RecordsCount; + int ReverseSortKff; + + std::shared_ptr Filter; + std::shared_ptr FilterIterator; + + i32 GetFirstPosition() const { + if (ReverseSortKff > 0) { + return 0; + } else { + return RecordsCount - 1; + } + } + +public: + NJson::TJsonValue DebugJson() const; + + const std::shared_ptr& GetFilter() const { + return Filter; + } + + bool IsControlPoint() const { + return ControlPointFlag; + } + + const TRWSortableBatchPosition& GetKeyColumns() const { + return KeyColumns; + } + + const TRWSortableBatchPosition& GetVersionColumns() const { + return VersionColumns; + } + + TBatchIterator(TRWSortableBatchPosition&& keyColumns) + : ControlPointFlag(true) + , KeyColumns(std::move(keyColumns)) { + + } + + template + TBatchIterator(std::shared_ptr batch, std::shared_ptr filter, + const std::vector& keyColumns, const std::vector& dataColumns, const bool reverseSort, const std::vector& versionColumnNames) + : ControlPointFlag(false) + , KeyColumns(batch, 0, keyColumns, dataColumns, reverseSort) + , VersionColumns(batch, 0, versionColumnNames, {}, false) + , RecordsCount(batch->num_rows()) + , ReverseSortKff(reverseSort ? -1 : 1) + , Filter(filter) { + Y_ABORT_UNLESS(KeyColumns.InitPosition(GetFirstPosition())); + Y_ABORT_UNLESS(VersionColumns.InitPosition(GetFirstPosition())); + if (Filter) { + FilterIterator = std::make_shared(Filter->GetIterator(reverseSort, RecordsCount)); + } + } + + bool CheckNextBatch(const TBatchIterator& nextIterator) { + return KeyColumns.Compare(nextIterator.KeyColumns) == std::partial_ordering::less; + } + + bool IsReverse() const { + return ReverseSortKff < 0; + } + + bool IsDeleted() const { + if (!FilterIterator) { + return false; + } + return !FilterIterator->GetCurrentAcceptance(); + } + + TSortableBatchPosition::TFoundPosition SkipToLower(const TSortableBatchPosition& pos); + + bool Next(); + + bool operator<(const TBatchIterator& item) const; +}; + +} diff --git a/ydb/core/formats/arrow/reader/heap.cpp b/ydb/core/formats/arrow/reader/heap.cpp new file mode 100644 index 000000000000..33f6a65369ec --- /dev/null +++ b/ydb/core/formats/arrow/reader/heap.cpp @@ -0,0 +1,5 @@ +#include "heap.h" + +namespace NKikimr::NArrow::NMerger { + +} diff --git a/ydb/core/formats/arrow/reader/heap.h b/ydb/core/formats/arrow/reader/heap.h new file mode 100644 index 000000000000..4ffc216bb0cd --- /dev/null +++ b/ydb/core/formats/arrow/reader/heap.h @@ -0,0 +1,133 @@ +#pragma once +#include + +#include +#include + +namespace NKikimr::NArrow::NMerger { + +class TRecordBatchBuilder; + +template +class TSortingHeap { +private: + std::deque FinishedCursors; +public: + TSortingHeap() = default; + + template + TSortingHeap(TCursors& cursors, bool notNull) { + Queue.reserve(cursors.size()); + for (auto& cur : cursors) { + if (!cur.Empty()) { + Queue.emplace_back(TSortCursor(&cur, notNull)); + } + } + std::make_heap(Queue.begin(), Queue.end()); + } + + const TSortCursor& Current() const { return Queue.front(); } + TSortCursor& MutableCurrent() { return Queue.front(); } + size_t Size() const { return Queue.size(); } + bool Empty() const { return Queue.empty(); } + TSortCursor& NextChild() { return Queue[NextChildIndex()]; } + + void Next() { + Y_ABORT_UNLESS(Size()); + + if (Queue.front().Next()) { + UpdateTop(); + } else { + RemoveTop(); + } + } + + void CleanFinished() { + FinishedCursors.clear(); + } + + void RemoveTop() { + std::pop_heap(Queue.begin(), Queue.end()); + FinishedCursors.emplace_back(std::move(Queue.back())); + Queue.pop_back(); + NextIdx = 0; + } + + void Push(TSortCursor&& cursor) { + Queue.emplace_back(std::move(cursor)); + std::push_heap(Queue.begin(), Queue.end()); + NextIdx = 0; + } + + NJson::TJsonValue DebugJson() const { + NJson::TJsonValue result = NJson::JSON_ARRAY; + for (auto&& i : Queue) { + result.AppendValue(i.DebugJson()); + } + return result; + } + + /// This is adapted version of the function __sift_down from libc++. + /// Why cannot simply use std::priority_queue? + /// - because it doesn't support updating the top element and requires pop and push instead. + /// Also look at "Boost.Heap" library. + void UpdateTop() { + size_t size = Queue.size(); + if (size < 2) + return; + + auto begin = Queue.begin(); + + size_t child_idx = NextChildIndex(); + auto child_it = begin + child_idx; + + /// Check if we are in order. + if (*child_it < *begin) + return; + + NextIdx = 0; + + auto curr_it = begin; + auto top(std::move(*begin)); + do { + /// We are not in heap-order, swap the parent with it's largest child. + *curr_it = std::move(*child_it); + curr_it = child_it; + + // recompute the child based off of the updated parent + child_idx = 2 * child_idx + 1; + + if (child_idx >= size) + break; + + child_it = begin + child_idx; + + if ((child_idx + 1) < size && *child_it < *(child_it + 1)) { + /// Right child exists and is greater than left child. + ++child_it; + ++child_idx; + } + + /// Check if we are in order. + } while (!(*child_it < top)); + *curr_it = std::move(top); + } +private: + std::vector Queue; + /// Cache comparison between first and second child if the order in queue has not been changed. + size_t NextIdx = 0; + + size_t NextChildIndex() { + if (NextIdx == 0) { + NextIdx = 1; + if (Queue.size() > 2 && Queue[1] < Queue[2]) { + ++NextIdx; + } + } + + return NextIdx; + } + +}; + +} diff --git a/ydb/core/formats/arrow/reader/merger.cpp b/ydb/core/formats/arrow/reader/merger.cpp new file mode 100644 index 000000000000..ddae86c1ed28 --- /dev/null +++ b/ydb/core/formats/arrow/reader/merger.cpp @@ -0,0 +1,238 @@ +#include "merger.h" +#include "result_builder.h" +#include + +namespace NKikimr::NArrow::NMerger { + +void TMergePartialStream::PutControlPoint(const TSortableBatchPosition& point) { + AFL_VERIFY(point.IsSameSortingSchema(SortSchema))("point", point.DebugJson())("schema", SortSchema->ToString()); + Y_ABORT_UNLESS(point.IsReverseSort() == Reverse); + Y_ABORT_UNLESS(++ControlPoints == 1); + + SortHeap.Push(TBatchIterator(point.BuildRWPosition())); +} + +void TMergePartialStream::RemoveControlPoint() { + Y_ABORT_UNLESS(ControlPoints == 1); + Y_ABORT_UNLESS(ControlPointEnriched()); + Y_ABORT_UNLESS(-- ControlPoints == 0); + Y_ABORT_UNLESS(SortHeap.Current().IsControlPoint()); + SortHeap.RemoveTop(); +} + +void TMergePartialStream::CheckSequenceInDebug(const TRWSortableBatchPosition& nextKeyColumnsPosition) { +#ifndef NDEBUG + if (CurrentKeyColumns) { + const bool linearExecutionCorrectness = nextKeyColumnsPosition.Compare(*CurrentKeyColumns) == std::partial_ordering::greater; + if (!linearExecutionCorrectness) { + const bool newSegmentScan = nextKeyColumnsPosition.GetPosition() == 0; + AFL_VERIFY(newSegmentScan && nextKeyColumnsPosition.Compare(*CurrentKeyColumns) == std::partial_ordering::less) + ("merge_debug", DebugJson())("current_ext", nextKeyColumnsPosition.DebugJson())("newSegmentScan", newSegmentScan); + } + } + CurrentKeyColumns = nextKeyColumnsPosition.BuildSortingCursor(); +#else + Y_UNUSED(nextKeyColumnsPosition); +#endif +} + +bool TMergePartialStream::DrainToControlPoint(TRecordBatchBuilder& builder, const bool includeFinish, std::optional* lastResultPosition) { + AFL_VERIFY(ControlPoints == 1); + Y_ABORT_UNLESS((ui32)DataSchema->num_fields() == builder.GetBuildersCount()); + builder.ValidateDataSchema(DataSchema); + bool cpReachedFlag = false; + std::shared_ptr resultScanData; + ui64 resultPosition; + while (SortHeap.Size() && !cpReachedFlag && !builder.IsBufferExhausted()) { + if (SortHeap.Current().IsControlPoint()) { + auto keyColumns = SortHeap.Current().GetKeyColumns().BuildSortingCursor(); + RemoveControlPoint(); + cpReachedFlag = true; + if (SortHeap.Empty() || !includeFinish || SortHeap.Current().GetKeyColumns().Compare(keyColumns) == std::partial_ordering::greater) { + if (lastResultPosition && resultScanData) { + *lastResultPosition = resultScanData->BuildCursor(resultPosition); + } + return true; + } + } + + DrainCurrentPosition(&builder, &resultScanData, &resultPosition); + } + if (lastResultPosition && resultScanData) { + *lastResultPosition = resultScanData->BuildCursor(resultPosition); + } + return cpReachedFlag; +} + +bool TMergePartialStream::DrainCurrentTo(TRecordBatchBuilder& builder, const TSortableBatchPosition& readTo, const bool includeFinish, std::optional* lastResultPosition) { + PutControlPoint(readTo); + return DrainToControlPoint(builder, includeFinish, lastResultPosition); +} + +std::shared_ptr TMergePartialStream::SingleSourceDrain(const TSortableBatchPosition& readTo, const bool includeFinish, std::optional* lastResultPosition) { + std::shared_ptr result; + if (SortHeap.Empty()) { + return result; + } + const ui32 startPos = SortHeap.Current().GetKeyColumns().GetPosition(); + const TSortableBatchPosition::TFoundPosition pos = SortHeap.MutableCurrent().SkipToLower(readTo); + bool finished = false; + const i32 delta = Reverse ? startPos - pos.GetPosition() : pos.GetPosition() - startPos; + if (delta == 0 && pos.IsGreater()) { + return nullptr; + } + bool include = false; + AFL_VERIFY(delta >= 0); + if (pos.IsEqual()) { + if (includeFinish) { + finished = !SortHeap.MutableCurrent().Next(); + include = true; + } else { + finished = false; + } + } else if (pos.IsGreater()) { + finished = false; + } else { + finished = true; + include = true; + } + const ui32 resultSize = delta + (include ? 1 : 0); + if (Reverse) { + result = SortHeap.Current().GetKeyColumns().SliceData(pos.GetPosition() + (include ? 0 : 1), resultSize); + if (lastResultPosition && resultSize) { + auto keys = SortHeap.Current().GetKeyColumns().SliceKeys(pos.GetPosition() + (include ? 0 : 1), resultSize); + *lastResultPosition = TCursor(keys, 0, SortSchema->field_names()); + } + if (SortHeap.Current().GetFilter()) { + SortHeap.Current().GetFilter()->Apply(result, pos.GetPosition() + (include ? 0 : 1), resultSize); + } + } else { + result = SortHeap.Current().GetKeyColumns().SliceData(startPos, resultSize); + if (lastResultPosition && resultSize) { + auto keys = SortHeap.Current().GetKeyColumns().SliceKeys(startPos, resultSize); + *lastResultPosition = TCursor(keys, keys->num_rows() - 1, SortSchema->field_names()); + } + if (SortHeap.Current().GetFilter()) { + SortHeap.Current().GetFilter()->Apply(result, startPos, resultSize); + } + } + if (!result || !result->num_rows()) { + if (lastResultPosition) { + *lastResultPosition = {}; + } + } +#ifndef NDEBUG + NArrow::TStatusValidator::Validate(result->ValidateFull()); +#endif + + if (Reverse) { + result = NArrow::ReverseRecords(result); + } + + if (finished) { + SortHeap.RemoveTop(); + } else { + SortHeap.UpdateTop(); + } + if (SortHeap.Empty()) { + AFL_DEBUG(NKikimrServices::ARROW_HELPER)("pos", readTo.DebugJson().GetStringRobust())("heap", "EMPTY"); + } else { + AFL_DEBUG(NKikimrServices::ARROW_HELPER)("pos", readTo.DebugJson().GetStringRobust())("heap", SortHeap.Current().GetKeyColumns().DebugJson().GetStringRobust()); + } + return result; +} + +void TMergePartialStream::DrainAll(TRecordBatchBuilder& builder) { + Y_ABORT_UNLESS((ui32)DataSchema->num_fields() == builder.GetBuildersCount()); + while (SortHeap.Size()) { + DrainCurrentPosition(&builder, nullptr, nullptr); + } +} + +void TMergePartialStream::DrainCurrentPosition(TRecordBatchBuilder* builder, std::shared_ptr* resultScanData, ui64* resultPosition) { + Y_ABORT_UNLESS(SortHeap.Size()); + Y_ABORT_UNLESS(!SortHeap.Current().IsControlPoint()); + if (!SortHeap.Current().IsDeleted()) { + if (builder) { + builder->AddRecord(SortHeap.Current().GetKeyColumns()); + } + if (resultScanData && resultPosition) { + *resultScanData = SortHeap.Current().GetKeyColumns().GetSorting(); + *resultPosition = SortHeap.Current().GetKeyColumns().GetPosition(); + } + } + CheckSequenceInDebug(SortHeap.Current().GetKeyColumns()); + const ui64 startPosition = SortHeap.Current().GetKeyColumns().GetPosition(); + const TSortableScanData* startSorting = SortHeap.Current().GetKeyColumns().GetSorting().get(); + const TSortableScanData* startVersion = SortHeap.Current().GetVersionColumns().GetSorting().get(); + bool isFirst = true; + while (SortHeap.Size() && (isFirst || SortHeap.Current().GetKeyColumns().Compare(*startSorting, startPosition) == std::partial_ordering::equivalent)) { + if (!isFirst) { + auto& anotherIterator = SortHeap.Current(); + if (PossibleSameVersionFlag) { + AFL_VERIFY(anotherIterator.GetVersionColumns().Compare(*startVersion, startPosition) != std::partial_ordering::greater) + ("r", startVersion->BuildCursor(startPosition).DebugJson())("a", anotherIterator.GetVersionColumns().DebugJson()) + ("key", startSorting->BuildCursor(startPosition).DebugJson()); + } else { + AFL_VERIFY(anotherIterator.GetVersionColumns().Compare(*startVersion, startPosition) == std::partial_ordering::less) + ("r", startVersion->BuildCursor(startPosition).DebugJson())("a", anotherIterator.GetVersionColumns().DebugJson()) + ("key", startSorting->BuildCursor(startPosition).DebugJson()); + } + } + SortHeap.Next(); + isFirst = false; + } + SortHeap.CleanFinished(); +} + +std::vector> TMergePartialStream::DrainAllParts(const std::map& positions, + const std::vector>& resultFields) +{ + std::vector> result; + for (auto&& i : positions) { + TRecordBatchBuilder indexesBuilder(resultFields); + DrainCurrentTo(indexesBuilder, i.first, i.second); + result.emplace_back(indexesBuilder.Finalize()); + if (result.back()->num_rows() == 0) { + result.pop_back(); + } + } + TRecordBatchBuilder indexesBuilder(resultFields); + DrainAll(indexesBuilder); + result.emplace_back(indexesBuilder.Finalize()); + if (result.back()->num_rows() == 0) { + result.pop_back(); + } + return result; +} + +void TMergePartialStream::SkipToLowerBound(const TSortableBatchPosition& pos, const bool include) { + if (SortHeap.Empty()) { + return; + } + AFL_DEBUG(NKikimrServices::ARROW_HELPER)("pos", pos.DebugJson().GetStringRobust())("heap", SortHeap.Current().GetKeyColumns().DebugJson().GetStringRobust()); + while (!SortHeap.Empty()) { + const auto cmpResult = SortHeap.Current().GetKeyColumns().Compare(pos); + if (cmpResult == std::partial_ordering::greater) { + break; + } + if (cmpResult == std::partial_ordering::equivalent && include) { + break; + } + const TSortableBatchPosition::TFoundPosition skipPos = SortHeap.MutableCurrent().SkipToLower(pos); + AFL_DEBUG(NKikimrServices::ARROW_HELPER)("pos", pos.DebugJson().GetStringRobust())("heap", SortHeap.Current().GetKeyColumns().DebugJson().GetStringRobust()); + if (skipPos.IsEqual()) { + if (!include && !SortHeap.MutableCurrent().Next()) { + SortHeap.RemoveTop(); + } else { + SortHeap.UpdateTop(); + } + } else if (skipPos.IsLess()) { + SortHeap.RemoveTop(); + } else { + SortHeap.UpdateTop(); + } + } +} + +} diff --git a/ydb/core/formats/arrow/reader/merger.h b/ydb/core/formats/arrow/reader/merger.h new file mode 100644 index 000000000000..6a522a801ed7 --- /dev/null +++ b/ydb/core/formats/arrow/reader/merger.h @@ -0,0 +1,103 @@ +#pragma once +#include "position.h" +#include "heap.h" +#include "result_builder.h" +#include "batch_iterator.h" + +#include + +namespace NKikimr::NArrow::NMerger { + +class TMergePartialStream { +private: +#ifndef NDEBUG + std::optional CurrentKeyColumns; +#endif + bool PossibleSameVersionFlag = true; + + std::shared_ptr SortSchema; + std::shared_ptr DataSchema; + const bool Reverse; + const std::vector VersionColumnNames; + ui32 ControlPoints = 0; + + TSortingHeap SortHeap; + + NJson::TJsonValue DebugJson() const { + NJson::TJsonValue result = NJson::JSON_MAP; +#ifndef NDEBUG + if (CurrentKeyColumns) { + result["current"] = CurrentKeyColumns->DebugJson(); + } +#endif + result.InsertValue("heap", SortHeap.DebugJson()); + return result; + } + + void DrainCurrentPosition(TRecordBatchBuilder* builder, std::shared_ptr* resultScanData, ui64* resultPosition); + + void CheckSequenceInDebug(const TRWSortableBatchPosition& nextKeyColumnsPosition); +public: + TMergePartialStream(std::shared_ptr sortSchema, std::shared_ptr dataSchema, const bool reverse, const std::vector& versionColumnNames) + : SortSchema(sortSchema) + , DataSchema(dataSchema) + , Reverse(reverse) + , VersionColumnNames(versionColumnNames) + { + Y_ABORT_UNLESS(SortSchema); + Y_ABORT_UNLESS(SortSchema->num_fields()); + Y_ABORT_UNLESS(!DataSchema || DataSchema->num_fields()); + } + + void SkipToLowerBound(const TSortableBatchPosition& pos, const bool include); + + void SetPossibleSameVersion(const bool value) { + PossibleSameVersionFlag = value; + } + + bool IsValid() const { + return SortHeap.Size(); + } + + ui32 GetSourcesCount() const { + return SortHeap.Size(); + } + + TString DebugString() const { + return TStringBuilder() << "sort_heap=" << SortHeap.DebugJson(); + } + + void PutControlPoint(const TSortableBatchPosition& point); + + void RemoveControlPoint(); + + bool ControlPointEnriched() const { + return SortHeap.Size() && SortHeap.Current().IsControlPoint(); + } + + template + void AddSource(const std::shared_ptr& batch, const std::shared_ptr& filter) { + if (!batch || !batch->num_rows()) { + return; + } + if (filter && filter->IsTotalDenyFilter()) { + return; + } +// Y_DEBUG_ABORT_UNLESS(NArrow::IsSorted(batch, SortSchema)); + auto filterImpl = (!filter || filter->IsTotalAllowFilter()) ? nullptr : filter; + SortHeap.Push(TBatchIterator(batch, filterImpl, SortSchema->field_names(), DataSchema ? DataSchema->field_names() : std::vector(), Reverse, VersionColumnNames)); + } + + bool IsEmpty() const { + return !SortHeap.Size(); + } + + void DrainAll(TRecordBatchBuilder& builder); + std::shared_ptr SingleSourceDrain(const TSortableBatchPosition& readTo, const bool includeFinish, std::optional* lastResultPosition = nullptr); + bool DrainCurrentTo(TRecordBatchBuilder& builder, const TSortableBatchPosition& readTo, const bool includeFinish, std::optional* lastResultPosition = nullptr); + bool DrainToControlPoint(TRecordBatchBuilder& builder, const bool includeFinish, std::optional* lastResultPosition = nullptr); + std::vector> DrainAllParts(const std::map& positions, + const std::vector>& resultFields); +}; + +} diff --git a/ydb/core/formats/arrow/reader/position.cpp b/ydb/core/formats/arrow/reader/position.cpp new file mode 100644 index 000000000000..def3bbc5d2a6 --- /dev/null +++ b/ydb/core/formats/arrow/reader/position.cpp @@ -0,0 +1,225 @@ +#include "position.h" +#include + +namespace NKikimr::NArrow::NMerger { + +NJson::TJsonValue TSortableBatchPosition::DebugJson() const { + NJson::TJsonValue result; + result["reverse"] = ReverseSort; + result["records_count"] = RecordsCount; + result["position"] = Position; + result["sorting"] = Sorting->DebugJson(Position); + if (Data) { + result["data"] = Data->DebugJson(Position); + } + return result; +} + +std::optional TSortableBatchPosition::FindPosition(TRWSortableBatchPosition& position, const ui64 posStartExt, const ui64 posFinishExt, const TSortableBatchPosition& forFound, const bool greater) { + ui64 posStart = posStartExt; + ui64 posFinish = posFinishExt; + { + position.InitPosition(posStart); + auto cmp = position.Compare(forFound); + if (cmp == std::partial_ordering::greater) { + return TFoundPosition::Greater(posStart); + } else if (cmp == std::partial_ordering::equivalent) { + return TFoundPosition::Equal(posStart); + } + } + { + position.InitPosition(posFinish); + auto cmp = position.Compare(forFound); + if (cmp == std::partial_ordering::less) { + return TFoundPosition::Less(posFinish); + } else if (cmp == std::partial_ordering::equivalent) { + return TFoundPosition::Equal(posFinish); + } + } + while (posFinish > posStart + 1) { + Y_ABORT_UNLESS(position.InitPosition(0.5 * (posStart + posFinish))); + const auto comparision = position.Compare(forFound); + if (comparision == std::partial_ordering::less) { + posStart = position.Position; + } else if (comparision == std::partial_ordering::greater) { + posFinish = position.Position; + } else { + return TFoundPosition::Equal(position.Position); + } + } + Y_ABORT_UNLESS(posFinish != posStart); + if (greater) { + Y_ABORT_UNLESS(position.InitPosition(posFinish)); + return TFoundPosition::Greater(posFinish); + } else { + Y_ABORT_UNLESS(position.InitPosition(posStart)); + return TFoundPosition::Less(posStart); + } +} + +std::optional TSortableBatchPosition::FindPosition(const std::shared_ptr& batch, const TSortableBatchPosition& forFound, const bool greater, const std::optional includedStartPosition) { + if (!batch || !batch->num_rows()) { + return {}; + } + i64 posStart = 0; + i64 posFinish = batch->num_rows() - 1; + if (forFound.IsReverseSort()) { + std::swap(posStart, posFinish); + } + if (includedStartPosition) { + posStart = *includedStartPosition; + } + + TRWSortableBatchPosition position = forFound.BuildRWPosition(batch, posStart); + return FindPosition(position, posStart, posFinish, forFound, greater); +} + +NKikimr::NArrow::NMerger::TRWSortableBatchPosition TSortableBatchPosition::BuildRWPosition() const { + return TRWSortableBatchPosition(Position, RecordsCount, ReverseSort, Sorting->BuildCopy(Position), Data ? Data->BuildCopy(Position) : nullptr); +} + +NKikimr::NArrow::NMerger::TRWSortableBatchPosition TSortableBatchPosition::BuildRWPosition(std::shared_ptr batch, const ui32 position) const { + std::vector dataColumns; + if (Data) { + dataColumns = Data->GetFieldNames(); + } + return TRWSortableBatchPosition(batch, position, Sorting->GetFieldNames(), dataColumns, ReverseSort); +} + +TSortableBatchPosition::TFoundPosition TRWSortableBatchPosition::SkipToLower(const TSortableBatchPosition& forFound) { + const ui32 posStart = Position; + auto pos = FindPosition(*this, posStart, ReverseSort ? 0 : (RecordsCount - 1), forFound, true); + AFL_VERIFY(pos)("cursor", DebugJson())("found", forFound.DebugJson()); + if (ReverseSort) { + AFL_VERIFY(Position <= posStart)("pos", Position)("pos_skip", pos->GetPosition())("reverse", true); + } else { + AFL_VERIFY(posStart <= Position)("pos", Position)("pos_skip", pos->GetPosition())("reverse", false); + } + return *pos; +} + +TSortableScanData::TSortableScanData(const ui64 position, const std::shared_ptr& batch, const std::vector& columns) { + for (auto&& i : columns) { + auto c = batch->GetAccessorByNameOptional(i); + AFL_VERIFY(c)("column_name", i)("columns", JoinSeq(",", columns))("batch", batch->DebugString()); + Columns.emplace_back(c); + auto f = batch->GetSchema()->GetFieldByName(i); + AFL_VERIFY(f); + Fields.emplace_back(f); + } + BuildPosition(position); +} + +TSortableScanData::TSortableScanData(const ui64 position, const std::shared_ptr& batch, const std::vector& columns) { + for (auto&& i : columns) { + auto c = batch->GetColumnByName(i); + AFL_VERIFY(c)("column_name", i)("columns", JoinSeq(",", columns)); + Columns.emplace_back(std::make_shared(c)); + auto f = batch->schema()->GetFieldByName(i); + AFL_VERIFY(f); + Fields.emplace_back(f); + } + BuildPosition(position); +} + +TSortableScanData::TSortableScanData(const ui64 position, const std::shared_ptr& batch, const std::vector& columns) { + for (auto&& i : columns) { + auto c = batch->GetColumnByName(i); + AFL_VERIFY(c)("column_name", i)("columns", JoinSeq(",", columns)); + Columns.emplace_back(std::make_shared(c)); + auto f = batch->schema()->GetFieldByName(i); + AFL_VERIFY(f); + Fields.emplace_back(f); + } + BuildPosition(position); +} + +void TSortableScanData::AppendPositionTo(const std::vector>& builders, const ui64 position, ui64* recordSize) const { + AFL_VERIFY(builders.size() == PositionAddress.size()); + for (ui32 i = 0; i < PositionAddress.size(); ++i) { + AFL_VERIFY(NArrow::Append(*builders[i], *PositionAddress[i].GetArray(), position - PositionAddress[i].GetStartPosition(), recordSize)); + } +} + +void TSortableScanData::BuildPosition(const ui64 position) { + PositionAddress.clear(); + std::optional recordsCount; + FinishPosition = Max(); + StartPosition = 0; + LastInit = position; + for (auto&& i : Columns) { + PositionAddress.emplace_back(i->GetChunk({}, position)); + StartPosition = std::max(StartPosition, PositionAddress.back().GetStartPosition()); + FinishPosition = std::min(FinishPosition, PositionAddress.back().GetFinishPosition()); + if (!recordsCount) { + recordsCount = i->GetRecordsCount(); + } else { + AFL_VERIFY(*recordsCount == i->GetRecordsCount()); + } + } + AFL_VERIFY(StartPosition < FinishPosition); + AFL_VERIFY(recordsCount); + RecordsCount = *recordsCount; + AFL_VERIFY(position < RecordsCount); +} + +bool TSortableScanData::InitPosition(const ui64 position) { + AFL_VERIFY(position < RecordsCount); + if (position < FinishPosition && StartPosition <= position) { + return false; + } + LastInit = position; + ui32 idx = 0; + FinishPosition = Max(); + StartPosition = 0; + for (auto&& i : PositionAddress) { + if (!i.Contains(position)) { + i = Columns[idx]->GetChunk(i, position); + } + StartPosition = std::max(StartPosition, i.GetStartPosition()); + FinishPosition = std::min(FinishPosition, i.GetFinishPosition()); + ++idx; + } + AFL_VERIFY(StartPosition < FinishPosition); + return true; +} + +std::partial_ordering TCursor::Compare(const TSortableScanData& item, const ui64 itemPosition) const { + AFL_VERIFY(PositionAddress.size() == item.GetPositionAddress().size()); + for (ui32 idx = 0; idx < PositionAddress.size(); ++idx) { + auto cmp = PositionAddress[idx].Compare(Position, item.GetPositionAddress()[idx], itemPosition); + if (std::is_neq(cmp)) { + return cmp; + } + } + + return std::partial_ordering::equivalent; +} + +std::partial_ordering TCursor::Compare(const TCursor& item) const { + AFL_VERIFY(PositionAddress.size() == item.PositionAddress.size()); + for (ui32 idx = 0; idx < PositionAddress.size(); ++idx) { + auto cmp = PositionAddress[idx].Compare(Position, item.PositionAddress[idx], item.Position); + if (std::is_neq(cmp)) { + return cmp; + } + } + + return std::partial_ordering::equivalent; +} + +void TCursor::AppendPositionTo(const std::vector>& builders, ui64* recordSize) const { + AFL_VERIFY(builders.size() == PositionAddress.size()); + for (ui32 i = 0; i < PositionAddress.size(); ++i) { + AFL_VERIFY_DEBUG(builders[i]->type()->Equals(PositionAddress[i].GetArray()->type())); + AFL_VERIFY(NArrow::Append(*builders[i], *PositionAddress[i].GetArray(), Position - PositionAddress[i].GetStartPosition(), recordSize)); + } +} + +TCursor::TCursor(const std::shared_ptr& table, const ui64 position, const std::vector& columns) + : Position(position) +{ + PositionAddress = TSortableScanData(position, table, columns).GetPositionAddress(); +} + +} diff --git a/ydb/core/formats/arrow/reader/position.h b/ydb/core/formats/arrow/reader/position.h new file mode 100644 index 000000000000..3782614f56e1 --- /dev/null +++ b/ydb/core/formats/arrow/reader/position.h @@ -0,0 +1,515 @@ +#pragma once +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include + +namespace NKikimr::NArrow::NMerger { + +class TRecordBatchBuilder; +class TSortableScanData; + +class TCursor { +private: + YDB_READONLY(ui64, Position, 0); + std::vector PositionAddress; +public: + TCursor() = default; + TCursor(const std::shared_ptr& table, const ui64 position, const std::vector& columns); + + TCursor(const ui64 position, const std::vector& addresses) + : Position(position) + , PositionAddress(addresses) + { + + } + + NJson::TJsonValue DebugJson() const { + NJson::TJsonValue result = NJson::JSON_MAP; + for (ui32 i = 0; i < PositionAddress.size(); ++i) { + auto& jsonColumn = result["sorting_columns"].AppendValue(NJson::JSON_MAP); + jsonColumn["value"] = PositionAddress[i].DebugString(Position); + } + return result; + } + + std::shared_ptr ExtractSortingPosition(const std::vector>& fields) const { + AFL_VERIFY(fields.size() == PositionAddress.size()); + std::vector> columns; + std::shared_ptr schema = std::make_shared(fields); + for (ui32 i = 0; i < PositionAddress.size(); ++i) { + auto extracted = PositionAddress[i].CopyRecord(Position); + columns.emplace_back(extracted); + } + return arrow::RecordBatch::Make(schema, 1, columns); + } + + void AppendPositionTo(const std::vector>& builders, ui64* recordSize) const; + + std::partial_ordering Compare(const TSortableScanData& item, const ui64 itemPosition) const; + std::partial_ordering Compare(const TCursor& item) const; + +}; + +class TSortableScanData { +private: + ui64 RecordsCount = 0; + YDB_READONLY_DEF(std::vector, PositionAddress); + YDB_READONLY_DEF(std::vector>, Columns); + YDB_READONLY_DEF(std::vector>, Fields); + ui64 StartPosition = 0; + ui64 FinishPosition = 0; + void BuildPosition(const ui64 position); + ui64 LastInit = 0; + + bool Contains(const ui64 position) const { + return StartPosition <= position && position < FinishPosition; + } +public: + TSortableScanData(const ui64 position, const std::shared_ptr& batch, const std::vector& columns); + TSortableScanData(const ui64 position, const std::shared_ptr& batch, const std::vector& columns); + TSortableScanData(const ui64 position, const std::shared_ptr& batch, const std::vector& columns); + TSortableScanData(const ui64 position, const ui64 recordsCount, const std::vector>& columns, const std::vector>& fields) + : RecordsCount(recordsCount) + , Columns(columns) + , Fields(fields) + { + BuildPosition(position); + } + + std::shared_ptr BuildCopy(const ui64 position) const { + return std::make_shared(position, RecordsCount, Columns, Fields); + } + + TCursor BuildCursor(const ui64 position) const { + if (Contains(position)) { + return TCursor(position, PositionAddress); + } + auto addresses = PositionAddress; + ui32 idx = 0; + for (auto&& i : addresses) { + if (!i.Contains(position)) { + i = Columns[idx]->GetChunk(i, position); + } + ++idx; + } + return TCursor(position, addresses); + } + + std::partial_ordering Compare(const ui64 position, const TSortableScanData& item, const ui64 itemPosition) const { + AFL_VERIFY(PositionAddress.size() == item.PositionAddress.size()); + if (Contains(position) && item.Contains(itemPosition)) { + for (ui32 idx = 0; idx < PositionAddress.size(); ++idx) { + std::partial_ordering cmp = PositionAddress[idx].Compare(position, item.PositionAddress[idx], itemPosition); + if (cmp != std::partial_ordering::equivalent) { + return cmp; + } + } + } else { + for (ui32 idx = 0; idx < PositionAddress.size(); ++idx) { + std::partial_ordering cmp = std::partial_ordering::equivalent; + const bool containsSelf = PositionAddress[idx].Contains(position); + const bool containsItem = item.PositionAddress[idx].Contains(itemPosition); + if (containsSelf && containsItem) { + cmp = PositionAddress[idx].Compare(position, item.PositionAddress[idx], itemPosition); + } else if (containsSelf) { + auto temporaryAddress = item.Columns[idx]->GetChunk(item.PositionAddress[idx], itemPosition); + cmp = PositionAddress[idx].Compare(position, temporaryAddress, itemPosition); + } else if (containsItem) { + auto temporaryAddress = Columns[idx]->GetChunk(PositionAddress[idx], position); + cmp = temporaryAddress.Compare(position, item.PositionAddress[idx], itemPosition); + } else { + AFL_VERIFY(false); + } + if (cmp != std::partial_ordering::equivalent) { + return cmp; + } + } + } + + return std::partial_ordering::equivalent; + } + + void AppendPositionTo(const std::vector>& builders, const ui64 position, ui64* recordSize) const; + + bool InitPosition(const ui64 position); + + std::shared_ptr Slice(const ui64 offset, const ui64 count) const { + std::vector> slicedArrays; + for (auto&& i : Columns) { + slicedArrays.emplace_back(i->Slice(offset, count)); + } + return arrow::Table::Make(std::make_shared(Fields), slicedArrays, count); + } + + bool IsSameSchema(const std::shared_ptr& schema) const { + if (Fields.size() != (size_t)schema->num_fields()) { + return false; + } + for (ui32 i = 0; i < Fields.size(); ++i) { + if (!Fields[i]->type()->Equals(schema->field(i)->type())) { + return false; + } + if (Fields[i]->name() != schema->field(i)->name()) { + return false; + } + } + return true; + } + + NJson::TJsonValue DebugJson(const ui64 position) const { + NJson::TJsonValue result = NJson::JSON_MAP; + auto& jsonFields = result.InsertValue("fields", NJson::JSON_ARRAY); + for (auto&& i : Fields) { + jsonFields.AppendValue(i->ToString()); + } + for (ui32 i = 0; i < Columns.size(); ++i) { + auto& jsonColumn = result["sorting_columns"].AppendValue(NJson::JSON_MAP); + jsonColumn["name"] = Fields[i]->name(); + jsonColumn["value"] = PositionAddress[i].DebugString(position); + } + return result; + } + + std::vector GetFieldNames() const { + std::vector result; + for (auto&& i : Fields) { + result.emplace_back(i->name()); + } + return result; + } +}; + +class TRWSortableBatchPosition; + +class TSortableBatchPosition { +protected: + i64 Position = 0; + i64 RecordsCount = 0; + bool ReverseSort = false; + std::shared_ptr Sorting; + std::shared_ptr Data; +public: + TSortableBatchPosition() = default; + + i64 GetPosition() const { + return Position; + } + + i64 GetRecordsCount() const { + return RecordsCount; + } + + std::shared_ptr GetSorting() const { + return Sorting; + } + + TCursor BuildSortingCursor() const { + return Sorting->BuildCursor(Position); + } + + TCursor BuildDataCursor() const { + if (!Data) { + return TCursor(); + } + return Data->BuildCursor(Position); + } + + const std::vector>& GetSortFields() const { + return Sorting->GetFields(); + } + + TSortableBatchPosition(const i64 position, const i64 recordsCount, const bool reverseSort, const std::shared_ptr& sorting, const std::shared_ptr& data) + : Position(position) + , RecordsCount(recordsCount) + , ReverseSort(reverseSort) + , Sorting(sorting) + , Data(data) + { + + } + + TSortableBatchPosition(const TRWSortableBatchPosition& source) = delete; + TSortableBatchPosition(TRWSortableBatchPosition& source) = delete; + TSortableBatchPosition(TRWSortableBatchPosition&& source) = delete; + + TSortableBatchPosition operator= (const TRWSortableBatchPosition& source) = delete; + TSortableBatchPosition operator= (TRWSortableBatchPosition& source) = delete; + TSortableBatchPosition operator= (TRWSortableBatchPosition&& source) = delete; + + TRWSortableBatchPosition BuildRWPosition() const; + + std::shared_ptr SliceData(const ui64 offset, const ui64 count) const { + AFL_VERIFY(Data); + return Data->Slice(offset, count); + } + + std::shared_ptr SliceKeys(const ui64 offset, const ui64 count) const { + AFL_VERIFY(Sorting); + return Sorting->Slice(offset, count); + } + + class TFoundPosition { + private: + YDB_READONLY(ui32, Position, 0); + std::optional GreaterIfNotEqual; + explicit TFoundPosition(const ui32 pos, const bool greater) + : Position(pos) { + GreaterIfNotEqual = greater; + } + explicit TFoundPosition(const ui32 pos) + : Position(pos) { + } + public: + bool IsEqual() const { + return !GreaterIfNotEqual; + } + bool IsLess() const { + return !!GreaterIfNotEqual && !*GreaterIfNotEqual; + } + bool IsGreater() const { + return !!GreaterIfNotEqual && *GreaterIfNotEqual; + } + + static TFoundPosition Less(const ui32 pos) { + return TFoundPosition(pos, false); + } + static TFoundPosition Greater(const ui32 pos) { + return TFoundPosition(pos, true); + } + static TFoundPosition Equal(const ui32 pos) { + return TFoundPosition(pos); + } + }; + + static std::optional FindPosition(const std::shared_ptr& batch, const TSortableBatchPosition& forFound, const bool needGreater, const std::optional includedStartPosition); + static std::optional FindPosition(TRWSortableBatchPosition& position, const ui64 posStart, const ui64 posFinish, const TSortableBatchPosition& forFound, const bool greater); + + const TSortableScanData& GetData() const { + return *Data; + } + + bool IsReverseSort() const { + return ReverseSort; + } + NJson::TJsonValue DebugJson() const; + + TRWSortableBatchPosition BuildRWPosition(std::shared_ptr batch, const ui32 position) const; + + bool IsSameSortingSchema(const std::shared_ptr& schema) const { + return Sorting->IsSameSchema(schema); + } + + template + TSortableBatchPosition(const std::shared_ptr& batch, const ui32 position, const std::vector& sortingColumns, + const std::vector& dataColumns, const bool reverseSort) + : Position(position) + , ReverseSort(reverseSort) { + Y_ABORT_UNLESS(batch); + Y_ABORT_UNLESS(batch->num_rows()); + RecordsCount = batch->num_rows(); + AFL_VERIFY(Position < RecordsCount)("position", Position)("count", RecordsCount); + + if (dataColumns.size()) { + Data = std::make_shared(Position, batch, dataColumns); + } + Sorting = std::make_shared(Position, batch, sortingColumns); + Y_DEBUG_ABORT_UNLESS(batch->ValidateFull().ok()); + Y_ABORT_UNLESS(Sorting->GetColumns().size()); + } + + std::partial_ordering GetReverseForCompareResult(const std::partial_ordering directResult) const { + if (directResult == std::partial_ordering::less) { + return std::partial_ordering::greater; + } else if (directResult == std::partial_ordering::greater) { + return std::partial_ordering::less; + } else { + return directResult; + } + } + + std::partial_ordering ApplyOptionalReverseForCompareResult(const std::partial_ordering directResult) const { + if (ReverseSort) { + return GetReverseForCompareResult(directResult); + } else { + return directResult; + } + } + + std::partial_ordering Compare(const TCursor& cursor) const { + if (ReverseSort) { + return cursor.Compare(*Sorting, Position); + } else { + return GetReverseForCompareResult(cursor.Compare(*Sorting, Position)); + } + } + + std::partial_ordering Compare(const TSortableBatchPosition& item) const { + Y_ABORT_UNLESS(item.ReverseSort == ReverseSort); + Y_ABORT_UNLESS(item.Sorting->GetColumns().size() == Sorting->GetColumns().size()); + const auto directResult = Sorting->Compare(Position, *item.Sorting, item.GetPosition()); + return ApplyOptionalReverseForCompareResult(directResult); + } + + std::partial_ordering Compare(const TSortableScanData& data, const ui64 dataPosition) const { + return Sorting->Compare(Position, data, dataPosition); + } + + bool operator<(const TSortableBatchPosition& item) const { + return Compare(item) == std::partial_ordering::less; + } + + bool operator==(const TSortableBatchPosition& item) const { + return Compare(item) == std::partial_ordering::equivalent; + } + + bool operator!=(const TSortableBatchPosition& item) const { + return Compare(item) != std::partial_ordering::equivalent; + } + +}; + +class TRWSortableBatchPosition: public TSortableBatchPosition, public TMoveOnly { +private: + using TBase = TSortableBatchPosition; +public: + using TBase::TBase; + + bool NextPosition(const i64 delta) { + return InitPosition(Position + delta); + } + + bool InitPosition(const i64 position) { + if (position < RecordsCount && position >= 0) { + Sorting->InitPosition(position); + if (Data) { + Data->InitPosition(position); + } + Position = position; + return true; + } else { + return false; + } + + } + TSortableBatchPosition::TFoundPosition SkipToLower(const TSortableBatchPosition& forFound); + + // (-inf, it1), [it1, it2), [it2, it3), ..., [itLast, +inf) + template + static std::vector> SplitByBorders(const std::shared_ptr& batch, + const std::vector& columnNames, TBordersIterator& it) { + std::vector> result; + if (!batch || batch->num_rows() == 0) { + while (it.IsValid()) { + result.emplace_back(nullptr); + } + result.emplace_back(nullptr); + return result; + } + TRWSortableBatchPosition pos(batch, 0, columnNames, {}, false); + bool batchFinished = false; + i64 recordsCountSplitted = 0; + for (; it.IsValid() && !batchFinished; it.Next()) { + const ui32 startPos = pos.GetPosition(); + auto posFound = pos.SkipToLower(it.CurrentPosition()); + if (posFound.IsGreater() || posFound.IsEqual()) { + if (posFound.GetPosition() == startPos) { + result.emplace_back(nullptr); + } else { + result.emplace_back(batch->Slice(startPos, posFound.GetPosition() - startPos)); + recordsCountSplitted += result.back()->num_rows(); + } + } else { + result.emplace_back(batch->Slice(startPos, posFound.GetPosition() - startPos + 1)); + recordsCountSplitted += result.back()->num_rows(); + batchFinished = true; + } + } + if (batchFinished) { + for (; it.IsValid(); it.Next()) { + result.emplace_back(nullptr); + } + result.emplace_back(nullptr); + } else { + AFL_VERIFY(!it.IsValid()); + result.emplace_back(batch->Slice(pos.GetPosition())); + AFL_VERIFY(result.back()->num_rows()); + recordsCountSplitted += result.back()->num_rows(); + } + AFL_VERIFY(batch->num_rows() == recordsCountSplitted); + return result; + } + + template + class TAssociatedContainerIterator { + private: + typename TContainer::const_iterator Current; + typename TContainer::const_iterator End; + public: + TAssociatedContainerIterator(const TContainer& container) + : Current(container.begin()) + , End(container.end()) { + } + + bool IsValid() const { + return Current != End; + } + + void Next() { + ++Current; + } + + const auto& CurrentPosition() const { + return Current->first; + } + }; + + template + static std::vector> SplitByBordersInAssociativeContainer(const std::shared_ptr& batch, const std::vector& columnNames, const TContainer& container) { + TAssociatedContainerIterator it(container); + return SplitByBorders(batch, columnNames, it); + } + + template + class TSequentialContainerIterator { + private: + typename TContainer::const_iterator Current; + typename TContainer::const_iterator End; + public: + TSequentialContainerIterator(const TContainer& container) + : Current(container.begin()) + , End(container.end()) { + } + + bool IsValid() const { + return Current != End; + } + + void Next() { + ++Current; + } + + const auto& CurrentPosition() const { + return *Current; + } + }; + + template + static std::vector> SplitByBordersInSequentialContainer(const std::shared_ptr& batch, const std::vector& columnNames, const TContainer& container) { + TSequentialContainerIterator it(container); + return SplitByBorders(batch, columnNames, it); + } + +}; + +} diff --git a/ydb/core/formats/arrow/reader/read_filter_merger.cpp b/ydb/core/formats/arrow/reader/read_filter_merger.cpp deleted file mode 100644 index 726767dbecc0..000000000000 --- a/ydb/core/formats/arrow/reader/read_filter_merger.cpp +++ /dev/null @@ -1,99 +0,0 @@ -#include "read_filter_merger.h" -#include - -namespace NKikimr::NOlap::NIndexedReader { - -NJson::TJsonValue TSortableBatchPosition::DebugJson() const { - NJson::TJsonValue result; - result["reverse"] = ReverseSort; - result["records_count"] = RecordsCount; - result["position"] = Position; - result["sorting"] = Sorting->DebugJson(Position); - if (Data) { - result["data"] = Data->DebugJson(Position); - } - return result; -} - -std::optional TSortableBatchPosition::FindPosition(TSortableBatchPosition& position, const ui64 posStartExt, const ui64 posFinishExt, const TSortableBatchPosition& forFound, const bool greater) { - ui64 posStart = posStartExt; - ui64 posFinish = posFinishExt; - { - position.InitPosition(posStart); - auto cmp = position.Compare(forFound); - if (cmp == std::partial_ordering::greater) { - return TFoundPosition::Greater(posStart); - } else if (cmp == std::partial_ordering::equivalent) { - return TFoundPosition::Equal(posStart); - } - } - { - position.InitPosition(posFinish); - auto cmp = position.Compare(forFound); - if (cmp == std::partial_ordering::less) { - return TFoundPosition::Less(posFinish); - } else if (cmp == std::partial_ordering::equivalent) { - return TFoundPosition::Equal(posFinish); - } - } - while (posFinish > posStart + 1) { - Y_ABORT_UNLESS(position.InitPosition(0.5 * (posStart + posFinish))); - const auto comparision = position.Compare(forFound); - if (comparision == std::partial_ordering::less) { - posStart = position.Position; - } else if (comparision == std::partial_ordering::greater) { - posFinish = position.Position; - } else { - return TFoundPosition::Equal(position.Position); - } - } - Y_ABORT_UNLESS(posFinish != posStart); - if (greater) { - Y_ABORT_UNLESS(position.InitPosition(posFinish)); - return TFoundPosition::Greater(posFinish); - } else { - Y_ABORT_UNLESS(position.InitPosition(posStart)); - return TFoundPosition::Less(posStart); - } -} - -std::optional TSortableBatchPosition::FindPosition(const std::shared_ptr& batch, const TSortableBatchPosition& forFound, const bool greater, const std::optional includedStartPosition) { - if (!batch || !batch->num_rows()) { - return {}; - } - i64 posStart = 0; - i64 posFinish = batch->num_rows() - 1; - if (forFound.IsReverseSort()) { - std::swap(posStart, posFinish); - } - if (includedStartPosition) { - posStart = *includedStartPosition; - } - - TSortableBatchPosition position = forFound.BuildSame(batch, posStart); - return FindPosition(position, posStart, posFinish, forFound, greater); -} - -TSortableBatchPosition::TFoundPosition TSortableBatchPosition::SkipToLower(const TSortableBatchPosition& forFound) { - const ui32 posStart = Position; - auto pos = FindPosition(*this, posStart, ReverseSort ? 0 : (RecordsCount - 1), forFound, true); - AFL_VERIFY(pos)("cursor", DebugJson())("found", forFound.DebugJson()); - if (ReverseSort) { - AFL_VERIFY(Position <= posStart)("pos", Position)("pos_skip", pos->GetPosition())("reverse", true); - } else { - AFL_VERIFY(posStart <= Position)("pos", Position)("pos_skip", pos->GetPosition())("reverse", false); - } - return *pos; -} - -TSortableScanData::TSortableScanData(const std::shared_ptr& batch, const std::vector& columns) { - for (auto&& i : columns) { - auto c = batch->GetColumnByName(i); - AFL_VERIFY(c)("column_name", i)("columns", JoinSeq(",", columns)); - Columns.emplace_back(c); - auto f = batch->schema()->GetFieldByName(i); - Fields.emplace_back(f); - } -} - -} diff --git a/ydb/core/formats/arrow/reader/read_filter_merger.h b/ydb/core/formats/arrow/reader/read_filter_merger.h deleted file mode 100644 index 9ed0befd0442..000000000000 --- a/ydb/core/formats/arrow/reader/read_filter_merger.h +++ /dev/null @@ -1,332 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace NKikimr::NOlap::NIndexedReader { - -class TRecordBatchBuilder; - -class TSortableScanData { -private: - YDB_READONLY_DEF(std::vector>, Columns); - YDB_READONLY_DEF(std::vector>, Fields); -public: - TSortableScanData() = default; - TSortableScanData(const std::shared_ptr& batch, const std::vector& columns); - - std::shared_ptr ExtractPosition(const ui64 pos) const { - std::vector> columns; - std::shared_ptr schema = std::make_shared(Fields); - for (ui32 i = 0; i < Columns.size(); ++i) { - auto extracted = NArrow::CopyRecords(Columns[i], {pos}); - columns.emplace_back(extracted); - } - return arrow::RecordBatch::Make(schema, 1, columns); - } - - std::shared_ptr Slice(const ui64 offset, const ui64 count) const { - std::vector> slicedArrays; - for (auto&& i : Columns) { - AFL_VERIFY(offset + count <= (ui64)i->length())("offset", offset)("count", count)("length", i->length()); - slicedArrays.emplace_back(i->Slice(offset, count)); - } - return arrow::RecordBatch::Make(std::make_shared(Fields), count, slicedArrays); - } - - bool IsSameSchema(const std::shared_ptr& schema) const { - if (Fields.size() != (size_t)schema->num_fields()) { - return false; - } - for (ui32 i = 0; i < Fields.size(); ++i) { - if (!Fields[i]->type()->Equals(schema->field(i)->type())) { - return false; - } - if (Fields[i]->name() != schema->field(i)->name()) { - return false; - } - } - return true; - } - - NJson::TJsonValue DebugJson(const i32 position) const { - NJson::TJsonValue result = NJson::JSON_MAP; - auto& jsonFields = result.InsertValue("fields", NJson::JSON_ARRAY); - for (auto&& i : Fields) { - jsonFields.AppendValue(i->ToString()); - } - for (ui32 i = 0; i < Columns.size(); ++i) { - auto& jsonColumn = result["sorting_columns"].AppendValue(NJson::JSON_MAP); - jsonColumn["name"] = Fields[i]->name(); - if (position >= 0 && position < Columns[i]->length()) { - jsonColumn["value"] = NArrow::DebugString(Columns[i], position); - } - } - return result; - } - - std::vector GetFieldNames() const { - std::vector result; - for (auto&& i : Fields) { - result.emplace_back(i->name()); - } - return result; - } -}; - -class TSortableBatchPosition { -private: - YDB_READONLY(i64, Position, 0); - i64 RecordsCount = 0; - bool ReverseSort = false; - std::shared_ptr Sorting; - std::shared_ptr Data; -public: - TSortableBatchPosition() = default; - - std::shared_ptr ExtractSortingPosition() const { - return Sorting->ExtractPosition(Position); - } - - std::shared_ptr SliceData(const ui64 offset, const ui64 count) const { - AFL_VERIFY(Data); - return Data->Slice(offset, count); - } - - std::shared_ptr SliceKeys(const ui64 offset, const ui64 count) const { - AFL_VERIFY(Sorting); - return Sorting->Slice(offset, count); - } - - class TFoundPosition { - private: - YDB_READONLY(ui32, Position, 0); - std::optional GreaterIfNotEqual; - explicit TFoundPosition(const ui32 pos, const bool greater) - : Position(pos) { - GreaterIfNotEqual = greater; - } - explicit TFoundPosition(const ui32 pos) - : Position(pos) { - } - public: - bool IsEqual() const { - return !GreaterIfNotEqual; - } - bool IsLess() const { - return !!GreaterIfNotEqual && !*GreaterIfNotEqual; - } - bool IsGreater() const { - return !!GreaterIfNotEqual && *GreaterIfNotEqual; - } - - static TFoundPosition Less(const ui32 pos) { - return TFoundPosition(pos, false); - } - static TFoundPosition Greater(const ui32 pos) { - return TFoundPosition(pos, true); - } - static TFoundPosition Equal(const ui32 pos) { - return TFoundPosition(pos); - } - }; - - // (-inf, it1), [it1, it2), [it2, it3), ..., [itLast, +inf) - template - static std::vector> SplitByBorders(const std::shared_ptr& batch, const std::vector& columnNames, TBordersIterator& it) { - std::vector> result; - if (!batch || batch->num_rows() == 0) { - while (it.IsValid()) { - result.emplace_back(nullptr); - } - result.emplace_back(nullptr); - return result; - } - TSortableBatchPosition pos(batch, 0, columnNames, {}, false); - bool batchFinished = false; - i64 recordsCountSplitted = 0; - for (; it.IsValid() && !batchFinished; it.Next()) { - const ui32 startPos = pos.GetPosition(); - auto posFound = pos.SkipToLower(it.CurrentPosition()); - if (posFound.IsGreater() || posFound.IsEqual()) { - if (posFound.GetPosition() == startPos) { - result.emplace_back(nullptr); - } else { - result.emplace_back(batch->Slice(startPos, posFound.GetPosition() - startPos)); - recordsCountSplitted += result.back()->num_rows(); - } - } else { - result.emplace_back(batch->Slice(startPos, posFound.GetPosition() - startPos + 1)); - recordsCountSplitted += result.back()->num_rows(); - batchFinished = true; - } - } - if (batchFinished) { - for (; it.IsValid(); it.Next()) { - result.emplace_back(nullptr); - } - result.emplace_back(nullptr); - } else { - AFL_VERIFY(!it.IsValid()); - result.emplace_back(batch->Slice(pos.GetPosition())); - AFL_VERIFY(result.back()->num_rows()); - recordsCountSplitted += result.back()->num_rows(); - } - AFL_VERIFY(batch->num_rows() == recordsCountSplitted); - return result; - } - - template - class TAssociatedContainerIterator { - private: - typename TContainer::const_iterator Current; - typename TContainer::const_iterator End; - public: - TAssociatedContainerIterator(const TContainer& container) - : Current(container.begin()) - , End(container.end()) { - } - - bool IsValid() const { - return Current != End; - } - - void Next() { - ++Current; - } - - const auto& CurrentPosition() const { - return Current->first; - } - }; - - template - static std::vector> SplitByBordersInAssociativeContainer(const std::shared_ptr& batch, const std::vector& columnNames, const TContainer& container) { - TAssociatedContainerIterator it(container); - return SplitByBorders(batch, columnNames, it); - } - - template - class TSequentialContainerIterator { - private: - typename TContainer::const_iterator Current; - typename TContainer::const_iterator End; - public: - TSequentialContainerIterator(const TContainer& container) - : Current(container.begin()) - , End(container.end()) { - } - - bool IsValid() const { - return Current != End; - } - - void Next() { - ++Current; - } - - const auto& CurrentPosition() const { - return *Current; - } - }; - - template - static std::vector> SplitByBordersInSequentialContainer(const std::shared_ptr& batch, const std::vector& columnNames, const TContainer& container) { - TSequentialContainerIterator it(container); - return SplitByBorders(batch, columnNames, it); - } - - static std::optional FindPosition(const std::shared_ptr& batch, const TSortableBatchPosition& forFound, const bool needGreater, const std::optional includedStartPosition); - static std::optional FindPosition(TSortableBatchPosition& position, const ui64 posStart, const ui64 posFinish, const TSortableBatchPosition& forFound, const bool greater); - TSortableBatchPosition::TFoundPosition SkipToLower(const TSortableBatchPosition & forFound); - - const TSortableScanData& GetData() const { - return *Data; - } - - bool IsReverseSort() const { - return ReverseSort; - } - NJson::TJsonValue DebugJson() const; - - TSortableBatchPosition BuildSame(std::shared_ptr batch, const ui32 position) const { - std::vector dataColumns; - if (Data) { - dataColumns = Data->GetFieldNames(); - } - return TSortableBatchPosition(batch, position, Sorting->GetFieldNames(), dataColumns, ReverseSort); - } - - bool IsSameSortingSchema(const std::shared_ptr& schema) { - return Sorting->IsSameSchema(schema); - } - - TSortableBatchPosition(const std::shared_ptr& batch, const ui32 position, const std::vector& sortingColumns, const std::vector& dataColumns, const bool reverseSort) - : Position(position) - , ReverseSort(reverseSort) - { - Y_ABORT_UNLESS(batch); - Y_ABORT_UNLESS(batch->num_rows()); - RecordsCount = batch->num_rows(); - - if (dataColumns.size()) { - Data = std::make_shared(batch, dataColumns); - } - Sorting = std::make_shared(batch, sortingColumns); - Y_DEBUG_ABORT_UNLESS(batch->ValidateFull().ok()); - Y_ABORT_UNLESS(Sorting->GetColumns().size()); - } - - std::partial_ordering Compare(const TSortableBatchPosition& item) const { - Y_ABORT_UNLESS(item.ReverseSort == ReverseSort); - Y_ABORT_UNLESS(item.Sorting->GetColumns().size() == Sorting->GetColumns().size()); - const auto directResult = NArrow::ColumnsCompare(Sorting->GetColumns(), Position, item.Sorting->GetColumns(), item.Position); - if (ReverseSort) { - if (directResult == std::partial_ordering::less) { - return std::partial_ordering::greater; - } else if (directResult == std::partial_ordering::greater) { - return std::partial_ordering::less; - } else { - return std::partial_ordering::equivalent; - } - } else { - return directResult; - } - } - - bool operator<(const TSortableBatchPosition& item) const { - return Compare(item) == std::partial_ordering::less; - } - - bool operator==(const TSortableBatchPosition& item) const { - return Compare(item) == std::partial_ordering::equivalent; - } - - bool operator!=(const TSortableBatchPosition& item) const { - return Compare(item) != std::partial_ordering::equivalent; - } - - bool NextPosition(const i64 delta) { - return InitPosition(Position + delta); - } - - bool InitPosition(const i64 position) { - if (position < RecordsCount && position >= 0) { - Position = position; - return true; - } else { - return false; - } - - } - -}; - -} diff --git a/ydb/core/formats/arrow/reader/result_builder.cpp b/ydb/core/formats/arrow/reader/result_builder.cpp new file mode 100644 index 000000000000..deb4fe3e1427 --- /dev/null +++ b/ydb/core/formats/arrow/reader/result_builder.cpp @@ -0,0 +1,82 @@ +#include "result_builder.h" + +#include + +#include +#include + +#include + +#include "position.h" + +namespace NKikimr::NArrow::NMerger { + +void TRecordBatchBuilder::ValidateDataSchema(const std::shared_ptr& schema) { + AFL_VERIFY(IsSameFieldsSequence(schema->fields(), Fields)); +} + +void TRecordBatchBuilder::AddRecord(const TCursor& position) { +// AFL_VERIFY_DEBUG(IsSameFieldsSequence(position.GetData().GetFields(), Fields)); +// AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("event", "record_add_on_read")("record", position.DebugJson()); + position.AppendPositionTo(Builders, MemoryBufferLimit ? &CurrentBytesUsed : nullptr); + ++RecordsCount; +} + +void TRecordBatchBuilder::AddRecord(const TRWSortableBatchPosition& position) { + AFL_VERIFY_DEBUG(position.GetData().GetColumns().size() == Builders.size()); + AFL_VERIFY_DEBUG(IsSameFieldsSequence(position.GetData().GetFields(), Fields)); + // AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("event", "record_add_on_read")("record", position.DebugJson()); + position.GetData().AppendPositionTo(Builders, position.GetPosition(), MemoryBufferLimit ? &CurrentBytesUsed : nullptr); + ++RecordsCount; +} + +bool TRecordBatchBuilder::IsSameFieldsSequence(const std::vector>& f1, const std::vector>& f2) { + if (f1.size() != f2.size()) { + return false; + } + for (ui32 i = 0; i < f1.size(); ++i) { + if (!f1[i]->Equals(f2[i])) { + return false; + } + } + return true; +} + +TRecordBatchBuilder::TRecordBatchBuilder(const std::vector>& fields, const std::optional rowsCountExpectation /*= {}*/, const THashMap& fieldDataSizePreallocated /*= {}*/) + : Fields(fields) +{ + AFL_VERIFY(Fields.size()); + for (auto&& f : fields) { + Builders.emplace_back(NArrow::MakeBuilder(f)); + auto it = fieldDataSizePreallocated.find(f->name()); + if (it != fieldDataSizePreallocated.end()) { + NArrow::ReserveData(*Builders.back(), it->second); + } + if (rowsCountExpectation) { + NArrow::TStatusValidator::Validate(Builders.back()->Reserve(*rowsCountExpectation)); + } + } +} + +std::shared_ptr TRecordBatchBuilder::Finalize() { + auto schema = std::make_shared(Fields); + std::vector> columns; + for (auto&& i : Builders) { + columns.emplace_back(NArrow::TStatusValidator::GetValid(i->Finish())); + } + auto result = arrow::RecordBatch::Make(schema, columns.front()->length(), columns); +#ifndef NDEBUG + NArrow::TStatusValidator::Validate(result->ValidateFull()); +#endif + return result; +} + +TString TRecordBatchBuilder::GetColumnNames() const { + TStringBuilder result; + for (auto&& f : Fields) { + result << f->name() << ","; + } + return result; +} + +} diff --git a/ydb/core/formats/arrow/reader/result_builder.h b/ydb/core/formats/arrow/reader/result_builder.h new file mode 100644 index 000000000000..56e8250af206 --- /dev/null +++ b/ydb/core/formats/arrow/reader/result_builder.h @@ -0,0 +1,39 @@ +#pragma once +#include "position.h" +#include +#include +#include +#include + +namespace NKikimr::NArrow::NMerger { + +class TRecordBatchBuilder { +private: + std::vector> Builders; + YDB_READONLY_DEF(std::vector>, Fields); + YDB_READONLY(ui32, RecordsCount, 0); + YDB_ACCESSOR_DEF(std::optional, MemoryBufferLimit); + + ui64 CurrentBytesUsed = 0; + bool IsSameFieldsSequence(const std::vector>& f1, const std::vector>& f2); + +public: + ui32 GetBuildersCount() const { + return Builders.size(); + } + + TString GetColumnNames() const; + + TRecordBatchBuilder(const std::vector>& fields, const std::optional rowsCountExpectation = {}, const THashMap& fieldDataSizePreallocated = {}); + + std::shared_ptr Finalize(); + + bool IsBufferExhausted() const { + return MemoryBufferLimit && *MemoryBufferLimit < CurrentBytesUsed; + } + void AddRecord(const TCursor& position); + void AddRecord(const TRWSortableBatchPosition& position); + void ValidateDataSchema(const std::shared_ptr& schema); +}; + +} diff --git a/ydb/core/formats/arrow/reader/ya.make b/ydb/core/formats/arrow/reader/ya.make index 16e5877a6ee4..d57bb4e501ca 100644 --- a/ydb/core/formats/arrow/reader/ya.make +++ b/ydb/core/formats/arrow/reader/ya.make @@ -4,11 +4,17 @@ PEERDIR( contrib/libs/apache/arrow ydb/core/formats/arrow/simple_builder ydb/core/formats/arrow/switch + ydb/core/formats/arrow/common ydb/library/actors/core + ydb/library/services ) SRCS( - read_filter_merger.cpp + batch_iterator.cpp + merger.cpp + position.cpp + heap.cpp + result_builder.cpp ) END() diff --git a/ydb/core/formats/arrow/replace_key.h b/ydb/core/formats/arrow/replace_key.h index f92a677050fb..a25e93f9c613 100644 --- a/ydb/core/formats/arrow/replace_key.h +++ b/ydb/core/formats/arrow/replace_key.h @@ -1,7 +1,10 @@ #pragma once #include "arrow_helpers.h" #include "permutations.h" + #include "common/validation.h" +#include "switch/compare.h" + #include #include @@ -54,6 +57,9 @@ class TReplaceKeyTemplate { , Position(position) { Y_ABORT_UNLESS(Size() > 0 && Position < (ui64)Column(0).length()); + for (auto&& i : *Columns) { + Types.emplace_back(i->type_id()); + } } template requires IsOwning @@ -62,13 +68,16 @@ class TReplaceKeyTemplate { , Position(position) { Y_ABORT_UNLESS(Size() > 0 && Position < (ui64)Column(0).length()); + for (auto&& i : *Columns) { + Types.emplace_back(i->type_id()); + } } template bool operator == (const TReplaceKeyTemplate& key) const { Y_ABORT_UNLESS(Size() == key.Size()); - for (int i = 0; i < Size(); ++i) { + for (ui32 i = 0; i < Size(); ++i) { auto cmp = CompareColumnValue(i, key, i); if (std::is_neq(cmp)) { return false; @@ -81,7 +90,7 @@ class TReplaceKeyTemplate { std::partial_ordering operator <=> (const TReplaceKeyTemplate& key) const { Y_ABORT_UNLESS(Size() == key.Size()); - for (int i = 0; i < Size(); ++i) { + for (ui32 i = 0; i < Size(); ++i) { auto cmp = CompareColumnValue(i, key, i); if (std::is_neq(cmp)) { return cmp; @@ -94,7 +103,7 @@ class TReplaceKeyTemplate { std::partial_ordering CompareNotNull(const TReplaceKeyTemplate& key) const { Y_ABORT_UNLESS(Size() == key.Size()); - for (int i = 0; i < Size(); ++i) { + for (ui32 i = 0; i < Size(); ++i) { auto cmp = CompareColumnValueNotNull(i, key, i); if (std::is_neq(cmp)) { return cmp; @@ -104,11 +113,11 @@ class TReplaceKeyTemplate { } template - std::partial_ordering ComparePartNotNull(const TReplaceKeyTemplate& key, int size) const { + std::partial_ordering ComparePartNotNull(const TReplaceKeyTemplate& key, const ui32 size) const { Y_ABORT_UNLESS(size <= key.Size()); Y_ABORT_UNLESS(size <= Size()); - for (int i = 0; i < size; ++i) { + for (ui32 i = 0; i < size; ++i) { auto cmp = CompareColumnValueNotNull(i, key, i); if (std::is_neq(cmp)) { return cmp; @@ -121,17 +130,19 @@ class TReplaceKeyTemplate { std::partial_ordering CompareColumnValueNotNull(int column, const TReplaceKeyTemplate& key, int keyColumn) const { Y_DEBUG_ABORT_UNLESS(Column(column).type_id() == key.Column(keyColumn).type_id()); - return TypedCompare(Column(column), Position, key.Column(keyColumn), key.Position); + return TComparator::TypedCompare(Column(column), Position, key.Column(keyColumn), key.Position); } template std::partial_ordering CompareColumnValue(int column, const TReplaceKeyTemplate& key, int keyColumn) const { Y_DEBUG_ABORT_UNLESS(Column(column).type_id() == key.Column(keyColumn).type_id()); + Y_DEBUG_ABORT_UNLESS(Types[column] == Column(column).type_id()); + Y_DEBUG_ABORT_UNLESS(Types.size() == Size()); - return TypedCompare(Column(column), Position, key.Column(keyColumn), key.Position); + return TComparator::ConcreteTypedCompare(Types[column], Column(column), Position, key.Column(keyColumn), key.Position); } - int Size() const { + ui64 Size() const { Y_DEBUG_ABORT_UNLESS(Columns); return Columns->size(); } @@ -163,7 +174,7 @@ class TReplaceKeyTemplate { template requires IsOwning std::shared_ptr RestoreBatch(const std::shared_ptr& schema) const { - AFL_VERIFY(Size() && Size() == schema->num_fields())("columns", DebugString())("schema", JoinSeq(",", schema->field_names())); + AFL_VERIFY(Size() && Size() == (ui32)schema->num_fields())("columns", DebugString())("schema", JoinSeq(",", schema->field_names())); const auto& columns = *Columns; return arrow::RecordBatch::Make(schema, columns[0]->length(), columns); } @@ -217,113 +228,9 @@ class TReplaceKeyTemplate { private: TArrayVecPtr Columns = nullptr; + std::vector Types; ui64 Position = 0; - template - static std::partial_ordering TypedCompare(const arrow::Array& lhs, int lpos, const arrow::Array& rhs, int rpos) { - arrow::Type::type typeId = lhs.type_id(); - switch (typeId) { - case arrow::Type::NA: - case arrow::Type::BOOL: - break; - case arrow::Type::UINT8: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::INT8: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::UINT16: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::INT16: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::UINT32: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::INT32: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::UINT64: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::INT64: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::HALF_FLOAT: - break; - case arrow::Type::FLOAT: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::DOUBLE: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::STRING: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::BINARY: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::FIXED_SIZE_BINARY: - case arrow::Type::DATE32: - case arrow::Type::DATE64: - break; - case arrow::Type::TIMESTAMP: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::TIME32: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::TIME64: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::DURATION: - return CompareView(lhs, lpos, rhs, rpos); - case arrow::Type::DECIMAL256: - case arrow::Type::DECIMAL: - case arrow::Type::DENSE_UNION: - case arrow::Type::DICTIONARY: - case arrow::Type::EXTENSION: - case arrow::Type::FIXED_SIZE_LIST: - case arrow::Type::INTERVAL_DAY_TIME: - case arrow::Type::INTERVAL_MONTHS: - case arrow::Type::LARGE_BINARY: - case arrow::Type::LARGE_LIST: - case arrow::Type::LARGE_STRING: - case arrow::Type::LIST: - case arrow::Type::MAP: - case arrow::Type::MAX_ID: - case arrow::Type::SPARSE_UNION: - case arrow::Type::STRUCT: - Y_ABORT("not implemented"); - break; - } - return std::partial_ordering::equivalent; - } - - template - static std::partial_ordering CompareView(const arrow::Array& lhs, int lpos, const arrow::Array& rhs, int rpos) { - auto& left = static_cast(lhs); - auto& right = static_cast(rhs); - if constexpr (notNull) { - return CompareValueNotNull(left.GetView(lpos), right.GetView(rpos)); - } else { - return CompareValue(left.GetView(lpos), right.GetView(rpos), left.IsNull(lpos), right.IsNull(rpos)); - } - } - - template - static std::partial_ordering CompareValue(const T& x, const T& y, bool xIsNull, bool yIsNull) { - // TODO: std::partial_ordering::unordered for both nulls? - if (xIsNull) { - return std::partial_ordering::less; - } - if (yIsNull) { - return std::partial_ordering::greater; - } - return CompareValueNotNull(x, y); - } - - template - static std::partial_ordering CompareValueNotNull(const T& x, const T& y) { - if constexpr (std::is_same_v) { - size_t minSize = (x.size() < y.size()) ? x.size() : y.size(); - int cmp = memcmp(x.data(), y.data(), minSize); - if (cmp < 0) { - return std::partial_ordering::less; - } else if (cmp > 0) { - return std::partial_ordering::greater; - } - return CompareValueNotNull(x.size(), y.size()); - } else { - return x <=> y; - } - } }; using TReplaceKey = TReplaceKeyTemplate>; diff --git a/ydb/core/formats/arrow/serializer/CMakeLists.darwin-arm64.txt b/ydb/core/formats/arrow/serializer/CMakeLists.darwin-arm64.txt index 157c1f3be538..2c9a89ff5c5c 100644 --- a/ydb/core/formats/arrow/serializer/CMakeLists.darwin-arm64.txt +++ b/ydb/core/formats/arrow/serializer/CMakeLists.darwin-arm64.txt @@ -13,12 +13,26 @@ target_link_libraries(formats-arrow-serializer PUBLIC yutil libs-apache-arrow formats-arrow-common + services-metadata-abstract library-actors-core ydb-core-protos ) target_sources(formats-arrow-serializer PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/abstract.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/full.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/batch_only.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/stream.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/parsing.cpp +) + +add_global_library_for(formats-arrow-serializer.global formats-arrow-serializer) +target_link_libraries(formats-arrow-serializer.global PUBLIC + contrib-libs-cxxsupp + yutil + libs-apache-arrow + formats-arrow-common + services-metadata-abstract + library-actors-core + ydb-core-protos +) +target_sources(formats-arrow-serializer.global PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/native.cpp ) diff --git a/ydb/core/formats/arrow/serializer/CMakeLists.darwin-x86_64.txt b/ydb/core/formats/arrow/serializer/CMakeLists.darwin-x86_64.txt index 157c1f3be538..2c9a89ff5c5c 100644 --- a/ydb/core/formats/arrow/serializer/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/formats/arrow/serializer/CMakeLists.darwin-x86_64.txt @@ -13,12 +13,26 @@ target_link_libraries(formats-arrow-serializer PUBLIC yutil libs-apache-arrow formats-arrow-common + services-metadata-abstract library-actors-core ydb-core-protos ) target_sources(formats-arrow-serializer PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/abstract.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/full.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/batch_only.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/stream.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/parsing.cpp +) + +add_global_library_for(formats-arrow-serializer.global formats-arrow-serializer) +target_link_libraries(formats-arrow-serializer.global PUBLIC + contrib-libs-cxxsupp + yutil + libs-apache-arrow + formats-arrow-common + services-metadata-abstract + library-actors-core + ydb-core-protos +) +target_sources(formats-arrow-serializer.global PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/native.cpp ) diff --git a/ydb/core/formats/arrow/serializer/CMakeLists.linux-aarch64.txt b/ydb/core/formats/arrow/serializer/CMakeLists.linux-aarch64.txt index 9faab4d0ae87..eb79f403ca0f 100644 --- a/ydb/core/formats/arrow/serializer/CMakeLists.linux-aarch64.txt +++ b/ydb/core/formats/arrow/serializer/CMakeLists.linux-aarch64.txt @@ -14,12 +14,27 @@ target_link_libraries(formats-arrow-serializer PUBLIC yutil libs-apache-arrow formats-arrow-common + services-metadata-abstract library-actors-core ydb-core-protos ) target_sources(formats-arrow-serializer PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/abstract.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/full.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/batch_only.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/stream.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/parsing.cpp +) + +add_global_library_for(formats-arrow-serializer.global formats-arrow-serializer) +target_link_libraries(formats-arrow-serializer.global PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + libs-apache-arrow + formats-arrow-common + services-metadata-abstract + library-actors-core + ydb-core-protos +) +target_sources(formats-arrow-serializer.global PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/native.cpp ) diff --git a/ydb/core/formats/arrow/serializer/CMakeLists.linux-x86_64.txt b/ydb/core/formats/arrow/serializer/CMakeLists.linux-x86_64.txt index 9faab4d0ae87..eb79f403ca0f 100644 --- a/ydb/core/formats/arrow/serializer/CMakeLists.linux-x86_64.txt +++ b/ydb/core/formats/arrow/serializer/CMakeLists.linux-x86_64.txt @@ -14,12 +14,27 @@ target_link_libraries(formats-arrow-serializer PUBLIC yutil libs-apache-arrow formats-arrow-common + services-metadata-abstract library-actors-core ydb-core-protos ) target_sources(formats-arrow-serializer PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/abstract.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/full.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/batch_only.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/stream.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/parsing.cpp +) + +add_global_library_for(formats-arrow-serializer.global formats-arrow-serializer) +target_link_libraries(formats-arrow-serializer.global PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + libs-apache-arrow + formats-arrow-common + services-metadata-abstract + library-actors-core + ydb-core-protos +) +target_sources(formats-arrow-serializer.global PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/native.cpp ) diff --git a/ydb/core/formats/arrow/serializer/CMakeLists.windows-x86_64.txt b/ydb/core/formats/arrow/serializer/CMakeLists.windows-x86_64.txt index 157c1f3be538..2c9a89ff5c5c 100644 --- a/ydb/core/formats/arrow/serializer/CMakeLists.windows-x86_64.txt +++ b/ydb/core/formats/arrow/serializer/CMakeLists.windows-x86_64.txt @@ -13,12 +13,26 @@ target_link_libraries(formats-arrow-serializer PUBLIC yutil libs-apache-arrow formats-arrow-common + services-metadata-abstract library-actors-core ydb-core-protos ) target_sources(formats-arrow-serializer PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/abstract.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/full.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/batch_only.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/stream.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/parsing.cpp +) + +add_global_library_for(formats-arrow-serializer.global formats-arrow-serializer) +target_link_libraries(formats-arrow-serializer.global PUBLIC + contrib-libs-cxxsupp + yutil + libs-apache-arrow + formats-arrow-common + services-metadata-abstract + library-actors-core + ydb-core-protos +) +target_sources(formats-arrow-serializer.global PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/serializer/native.cpp ) diff --git a/ydb/core/formats/arrow/serializer/abstract.cpp b/ydb/core/formats/arrow/serializer/abstract.cpp index 13ee3d731bb6..6347cd765b9b 100644 --- a/ydb/core/formats/arrow/serializer/abstract.cpp +++ b/ydb/core/formats/arrow/serializer/abstract.cpp @@ -1,11 +1,28 @@ #include "abstract.h" +#include "native.h" namespace NKikimr::NArrow::NSerialization { -arrow::Result> IDeserializer::Deserialize(const TString& data) const { - if (!data) { - return nullptr; +NKikimr::TConclusionStatus TSerializerContainer::DeserializeFromProto(const NKikimrSchemeOp::TCompressionOptions& proto) { + NKikimrSchemeOp::TOlapColumn::TSerializer serializerProto; + serializerProto.SetClassName(NArrow::NSerialization::TNativeSerializer::GetClassNameStatic()); + *serializerProto.MutableArrowCompression() = proto; + AFL_VERIFY(Initialize(NArrow::NSerialization::TNativeSerializer::GetClassNameStatic(), true)); + return GetObjectPtr()->DeserializeFromProto(serializerProto); +} + +NKikimr::TConclusionStatus TSerializerContainer::DeserializeFromRequest(NYql::TFeaturesExtractor& features) { + const std::optional className = features.Extract("SERIALIZER.CLASS_NAME"); + if (!className) { + return TConclusionStatus::Success(); + } + if (!TBase::Initialize(*className)) { + return TConclusionStatus::Fail("dont know anything about class_name=" + *className); } - return DoDeserialize(data); + return TBase::GetObjectPtr()->DeserializeFromRequest(features); +} + +std::shared_ptr TSerializerContainer::GetDefaultSerializer() { + return std::make_shared(); } } diff --git a/ydb/core/formats/arrow/serializer/abstract.h b/ydb/core/formats/arrow/serializer/abstract.h index f21ac1d58f74..1c8d9963dd7e 100644 --- a/ydb/core/formats/arrow/serializer/abstract.h +++ b/ydb/core/formats/arrow/serializer/abstract.h @@ -1,38 +1,172 @@ #pragma once +#include +#include +#include +#include +#include + +#include + #include #include #include +#include namespace NKikimr::NArrow::NSerialization { class ISerializer { protected: - virtual TString DoSerialize(const std::shared_ptr& batch) const = 0; + virtual TString DoSerializeFull(const std::shared_ptr& batch) const = 0; + virtual TString DoSerializePayload(const std::shared_ptr& batch) const = 0; + virtual arrow::Result> DoDeserialize(const TString& data) const = 0; + virtual arrow::Result> DoDeserialize(const TString& data, const std::shared_ptr& schema) const = 0; + virtual TString DoDebugString() const { + return ""; + } + + virtual TConclusionStatus DoDeserializeFromRequest(NYql::TFeaturesExtractor& features) = 0; + + virtual TConclusionStatus DoDeserializeFromProto(const NKikimrSchemeOp::TOlapColumn::TSerializer& proto) = 0; + virtual void DoSerializeToProto(NKikimrSchemeOp::TOlapColumn::TSerializer& proto) const = 0; public: using TPtr = std::shared_ptr; + using TFactory = NObjectFactory::TObjectFactory; + using TProto = NKikimrSchemeOp::TOlapColumn::TSerializer; virtual ~ISerializer() = default; - TString Serialize(const std::shared_ptr& batch) const { - return DoSerialize(batch); + virtual bool IsCompatibleForExchangeWithSameClass(const ISerializer& item) const = 0; + virtual bool IsEqualToSameClass(const ISerializer& item) const = 0; + + TConclusionStatus DeserializeFromRequest(NYql::TFeaturesExtractor& features) { + return DoDeserializeFromRequest(features); + } + + TString DebugString() const { + return TStringBuilder() << "{class_name=" << GetClassName() << ";details={" << DoDebugString() << "}}"; + } + + TConclusionStatus DeserializeFromProto(const NKikimrSchemeOp::TOlapColumn::TSerializer& proto) { + return DoDeserializeFromProto(proto); + } + + void SerializeToProto(NKikimrSchemeOp::TOlapColumn::TSerializer& proto) const { + return DoSerializeToProto(proto); + } + + TString SerializeFull(const std::shared_ptr& batch) const { + if (!batch) { + return ""; + } + return DoSerializeFull(batch); + } + + TString SerializePayload(const std::shared_ptr& batch) const { + if (!batch) { + return ""; + } + return DoSerializePayload(batch); + } + + std::shared_ptr Repack(const std::shared_ptr& batch) { + if (!batch) { + return batch; + } + return TStatusValidator::GetValid(Deserialize(SerializeFull(batch))); + } + + TString Repack(const TString& batchString) { + return SerializeFull(TStatusValidator::GetValid(Deserialize(batchString))); + } + + arrow::Result> Deserialize(const TString& data) const { + if (!data) { + return nullptr; + } + return DoDeserialize(data); + } + + arrow::Result> Deserialize(const TString& data, const std::shared_ptr& schema) const { + if (!data) { + return nullptr; + } + return DoDeserialize(data, schema); } virtual bool IsHardPacker() const = 0; + + virtual TString GetClassName() const = 0; }; -class IDeserializer { -protected: - virtual arrow::Result> DoDeserialize(const TString& data) const = 0; - virtual TString DoDebugString() const = 0; +class TSerializerContainer: public NBackgroundTasks::TInterfaceProtoContainer { +private: + using TBase = NBackgroundTasks::TInterfaceProtoContainer; public: - using TPtr = std::shared_ptr; - virtual ~IDeserializer() = default; + using TBase::TBase; + + TSerializerContainer(const std::shared_ptr& object) + : TBase(object) + { + + } + + bool IsCompatibleForExchange(const TSerializerContainer& item) const { + if (!GetObjectPtr() && !!item.GetObjectPtr()) { + return false; + } + if (!!GetObjectPtr() && !item.GetObjectPtr()) { + return false; + } + if (GetObjectPtr()->GetClassName() != item.GetObjectPtr()->GetClassName()) { + return false; + } + return GetObjectPtr()->IsCompatibleForExchangeWithSameClass(*item.GetObjectPtr()); + } + + bool IsEqualTo(const TSerializerContainer& item) const { + if (!GetObjectPtr() && !!item.GetObjectPtr()) { + return false; + } + if (!!GetObjectPtr() && !item.GetObjectPtr()) { + return false; + } + if (GetObjectPtr()->GetClassName() != item.GetObjectPtr()->GetClassName()) { + return false; + } + return GetObjectPtr()->IsEqualToSameClass(*item.GetObjectPtr()); + } TString DebugString() const { - return DoDebugString(); + if (GetObjectPtr()) { + return GetObjectPtr()->DebugString(); + } else { + return "NO_OBJECT"; + } + } + using TBase::DeserializeFromProto; + + static std::shared_ptr GetDefaultSerializer(); + + TConclusionStatus DeserializeFromProto(const NKikimrSchemeOp::TCompressionOptions& proto); + + TConclusionStatus DeserializeFromRequest(NYql::TFeaturesExtractor& features); + + static TConclusion BuildFromProto(const NKikimrSchemeOp::TOlapColumn::TSerializer& proto) { + TSerializerContainer result; + if (!result.DeserializeFromProto(proto)) { + return TConclusionStatus::Fail("cannot parse proto for serializer construction: " + proto.DebugString()); + } + return result; } - arrow::Result> Deserialize(const TString& data) const; + static TConclusion BuildFromProto(const NKikimrSchemeOp::TCompressionOptions& proto) { + TSerializerContainer result; + auto parsed = result.DeserializeFromProto(proto); + if (!parsed) { + return parsed; + } + return result; + } }; } diff --git a/ydb/core/formats/arrow/serializer/batch_only.cpp b/ydb/core/formats/arrow/serializer/batch_only.cpp deleted file mode 100644 index c93f97b3f559..000000000000 --- a/ydb/core/formats/arrow/serializer/batch_only.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include "batch_only.h" -#include "stream.h" -#include -#include -#include -#include -#include -#include -#include -#include -namespace NKikimr::NArrow::NSerialization { - -arrow::Result> TBatchPayloadDeserializer::DoDeserialize(const TString& data) const { - arrow::ipc::DictionaryMemo dictMemo; - auto options = arrow::ipc::IpcReadOptions::Defaults(); - options.use_threads = false; - - std::shared_ptr buffer(std::make_shared(data)); - arrow::io::BufferReader reader(buffer); - AFL_TRACE(NKikimrServices::ARROW_HELPER)("event", "parsing")("size", data.size())("columns", Schema->num_fields()); - auto batchResult = arrow::ipc::ReadRecordBatch(Schema, &dictMemo, options, &reader); - if (!batchResult.ok()) { - return batchResult; - } - std::shared_ptr batch = *batchResult; - if (!batch) { - return arrow::Status(arrow::StatusCode::SerializationError, "empty batch"); - } - auto validation = batch->Validate(); - if (!validation.ok()) { - return arrow::Status(arrow::StatusCode::SerializationError, "batch is not valid: " + validation.ToString()); - } - return batch; -} - -TString TBatchPayloadSerializer::DoSerialize(const std::shared_ptr& batch) const { - arrow::ipc::IpcPayload payload; - // Build payload. Compression if set up performed here. - TStatusValidator::Validate(arrow::ipc::GetRecordBatchPayload(*batch, Options, &payload)); - - int32_t metadata_length = 0; - arrow::io::MockOutputStream mock; - // Process prepared payload through mock stream. Fast and efficient. - TStatusValidator::Validate(arrow::ipc::WriteIpcPayload(payload, Options, &mock, &metadata_length)); - - TString str; - str.resize(mock.GetExtentBytesWritten()); - - TFixedStringOutputStream out(&str); - // Write prepared payload into the resultant string. No extra allocation will be made. - TStatusValidator::Validate(arrow::ipc::WriteIpcPayload(payload, Options, &out, &metadata_length)); - Y_ABORT_UNLESS(out.GetPosition() == str.size()); - Y_DEBUG_ABORT_UNLESS(TBatchPayloadDeserializer(batch->schema()).Deserialize(str).ok()); - AFL_DEBUG(NKikimrServices::ARROW_HELPER)("event", "serialize")("size", str.size())("columns", batch->schema()->num_fields()); - return str; -} - -} diff --git a/ydb/core/formats/arrow/serializer/batch_only.h b/ydb/core/formats/arrow/serializer/batch_only.h deleted file mode 100644 index b3dfda9e7ffb..000000000000 --- a/ydb/core/formats/arrow/serializer/batch_only.h +++ /dev/null @@ -1,38 +0,0 @@ -#pragma once -#include "abstract.h" -#include -#include - -namespace NKikimr::NArrow::NSerialization { - -class TBatchPayloadSerializer: public ISerializer { -private: - const arrow::ipc::IpcWriteOptions Options; -protected: - virtual TString DoSerialize(const std::shared_ptr& batch) const override; -public: - virtual bool IsHardPacker() const override { - return Options.codec && Options.codec->compression_type() == arrow::Compression::ZSTD && Options.codec->compression_level() > 3; - } - TBatchPayloadSerializer(const arrow::ipc::IpcWriteOptions& options) - : Options(options) { - - } -}; - -class TBatchPayloadDeserializer: public IDeserializer { -private: - const std::shared_ptr Schema; -protected: - virtual arrow::Result> DoDeserialize(const TString& data) const override; - virtual TString DoDebugString() const override { - return "type=BATCH_PAYLOAD;"; - } -public: - TBatchPayloadDeserializer(const std::shared_ptr schema) - : Schema(schema) { - - } -}; - -} diff --git a/ydb/core/formats/arrow/serializer/full.cpp b/ydb/core/formats/arrow/serializer/full.cpp deleted file mode 100644 index 9f830c3662cb..000000000000 --- a/ydb/core/formats/arrow/serializer/full.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include "full.h" -#include "stream.h" -#include -#include -#include -#include -#include -#include -#include -namespace NKikimr::NArrow::NSerialization { - -arrow::Result> TFullDataDeserializer::DoDeserialize(const TString& data) const { - arrow::ipc::DictionaryMemo dictMemo; - auto options = arrow::ipc::IpcReadOptions::Defaults(); - options.use_threads = false; - - std::shared_ptr buffer(std::make_shared(data)); - arrow::io::BufferReader readerStream(buffer); - auto reader = TStatusValidator::GetValid(arrow::ipc::RecordBatchStreamReader::Open(&readerStream)); - - std::shared_ptr batch; - auto readResult = reader->ReadNext(&batch); - if (!readResult.ok()) { - return readResult; - } - if (!batch) { - return arrow::Status(arrow::StatusCode::SerializationError, "null batch"); - } - auto validation = batch->Validate(); - if (!validation.ok()) { - return arrow::Status(arrow::StatusCode::SerializationError, "validation error: " + validation.ToString()); - } - return batch; -} - -TString TFullDataSerializer::DoSerialize(const std::shared_ptr& batch) const { - TString result; - { - arrow::io::MockOutputStream mock; - auto writer = TStatusValidator::GetValid(arrow::ipc::MakeStreamWriter(&mock, batch->schema(), Options)); - TStatusValidator::Validate(writer->WriteRecordBatch(*batch)); - result.reserve(mock.GetExtentBytesWritten()); - } - { - TStringOutputStream stream(&result); - auto writer = TStatusValidator::GetValid(arrow::ipc::MakeStreamWriter(&stream, batch->schema(), Options)); - TStatusValidator::Validate(writer->WriteRecordBatch(*batch)); - TStatusValidator::Validate(writer->Close()); - Y_ABORT_UNLESS(stream.GetPosition() == result.size()); - } - return result; -} - -} diff --git a/ydb/core/formats/arrow/serializer/full.h b/ydb/core/formats/arrow/serializer/full.h deleted file mode 100644 index 56761a3d752e..000000000000 --- a/ydb/core/formats/arrow/serializer/full.h +++ /dev/null @@ -1,38 +0,0 @@ -#pragma once - -#include "abstract.h" -#include -#include -#include - -namespace NKikimr::NArrow::NSerialization { - -class TFullDataSerializer: public ISerializer { -private: - const arrow::ipc::IpcWriteOptions Options; -protected: - virtual TString DoSerialize(const std::shared_ptr& batch) const override; -public: - virtual bool IsHardPacker() const override { - return Options.codec && Options.codec->compression_type() == arrow::Compression::ZSTD && Options.codec->compression_level() > 3; - } - - TFullDataSerializer(const arrow::ipc::IpcWriteOptions& options) - : Options(options) { - - } -}; - -class TFullDataDeserializer: public IDeserializer { -protected: - virtual arrow::Result> DoDeserialize(const TString& data) const override; - virtual TString DoDebugString() const override { - return "type=FULL_DATA;"; - } -public: - TFullDataDeserializer() { - - } -}; - -} diff --git a/ydb/core/formats/arrow/serializer/native.cpp b/ydb/core/formats/arrow/serializer/native.cpp new file mode 100644 index 000000000000..5a6819ee270a --- /dev/null +++ b/ydb/core/formats/arrow/serializer/native.cpp @@ -0,0 +1,185 @@ +#include "native.h" +#include "stream.h" +#include "parsing.h" +#include +#include + +#include +#include + +#include +#include +#include +#include +#include + +namespace NKikimr::NArrow::NSerialization { + +arrow::Result> TNativeSerializer::DoDeserialize(const TString& data) const { + arrow::ipc::DictionaryMemo dictMemo; + auto options = arrow::ipc::IpcReadOptions::Defaults(); + options.use_threads = false; + + std::shared_ptr buffer(std::make_shared(data)); + arrow::io::BufferReader readerStream(buffer); + auto reader = TStatusValidator::GetValid(arrow::ipc::RecordBatchStreamReader::Open(&readerStream)); + + std::shared_ptr batch; + auto readResult = reader->ReadNext(&batch); + if (!readResult.ok()) { + return readResult; + } + if (!batch) { + return arrow::Status(arrow::StatusCode::SerializationError, "null batch"); + } + auto validation = batch->Validate(); + if (!validation.ok()) { + return arrow::Status(arrow::StatusCode::SerializationError, "validation error: " + validation.ToString()); + } + return batch; +} + +TString TNativeSerializer::DoSerializeFull(const std::shared_ptr& batch) const { + TString result; + { + arrow::io::MockOutputStream mock; + auto writer = TStatusValidator::GetValid(arrow::ipc::MakeStreamWriter(&mock, batch->schema(), Options)); + TStatusValidator::Validate(writer->WriteRecordBatch(*batch)); + result.reserve(mock.GetExtentBytesWritten()); + } + { + TStringOutputStream stream(&result); + auto writer = TStatusValidator::GetValid(arrow::ipc::MakeStreamWriter(&stream, batch->schema(), Options)); + TStatusValidator::Validate(writer->WriteRecordBatch(*batch)); + TStatusValidator::Validate(writer->Close()); + Y_ABORT_UNLESS(stream.GetPosition() == result.size()); + } + return result; +} + +arrow::Result> TNativeSerializer::DoDeserialize(const TString& data, const std::shared_ptr& schema) const { + arrow::ipc::DictionaryMemo dictMemo; + auto options = arrow::ipc::IpcReadOptions::Defaults(); + options.use_threads = false; + + std::shared_ptr buffer(std::make_shared(data)); + arrow::io::BufferReader reader(buffer); + AFL_TRACE(NKikimrServices::ARROW_HELPER)("event", "parsing")("size", data.size())("columns", schema->num_fields()); + auto batchResult = arrow::ipc::ReadRecordBatch(schema, &dictMemo, options, &reader); + if (!batchResult.ok()) { + return batchResult; + } + std::shared_ptr batch = *batchResult; + if (!batch) { + return arrow::Status(arrow::StatusCode::SerializationError, "empty batch"); + } + auto validation = batch->Validate(); + if (!validation.ok()) { + return arrow::Status(arrow::StatusCode::SerializationError, "batch is not valid: " + validation.ToString()); + } + return batch; +} + +TString TNativeSerializer::DoSerializePayload(const std::shared_ptr& batch) const { + arrow::ipc::IpcPayload payload; + // Build payload. Compression if set up performed here. + TStatusValidator::Validate(arrow::ipc::GetRecordBatchPayload(*batch, Options, &payload)); + + int32_t metadata_length = 0; + arrow::io::MockOutputStream mock; + // Process prepared payload through mock stream. Fast and efficient. + TStatusValidator::Validate(arrow::ipc::WriteIpcPayload(payload, Options, &mock, &metadata_length)); + + TString str; + str.resize(mock.GetExtentBytesWritten()); + + TFixedStringOutputStream out(&str); + // Write prepared payload into the resultant string. No extra allocation will be made. + TStatusValidator::Validate(arrow::ipc::WriteIpcPayload(payload, Options, &out, &metadata_length)); + Y_ABORT_UNLESS(out.GetPosition() == str.size()); + Y_DEBUG_ABORT_UNLESS(Deserialize(str, batch->schema()).ok()); + AFL_DEBUG(NKikimrServices::ARROW_HELPER)("event", "serialize")("size", str.size())("columns", batch->schema()->num_fields()); + return str; +} + +NKikimr::TConclusion> TNativeSerializer::BuildCodec(const arrow::Compression::type& cType, const std::optional level) const { + auto codec = NArrow::TStatusValidator::GetValid(arrow::util::Codec::Create(cType)); + if (!codec) { + return std::shared_ptr(); + } + const int levelDef = level.value_or(codec->default_compression_level()); + const int levelMin = codec->minimum_compression_level(); + const int levelMax = codec->maximum_compression_level(); + if (levelDef < levelMin || levelMax < levelDef) { + return TConclusionStatus::Fail( + TStringBuilder() << "incorrect level for codec. have to be: [" << levelMin << ":" << levelMax << "]" + ); + } + std::shared_ptr codecPtr = std::move(NArrow::TStatusValidator::GetValid(arrow::util::Codec::Create(cType, levelDef))); + return codecPtr; +} + +NKikimr::TConclusionStatus TNativeSerializer::DoDeserializeFromRequest(NYql::TFeaturesExtractor& features) { + std::optional codec; + std::optional level; + { + auto fValue = features.Extract("COMPRESSION.TYPE"); + if (!fValue) { + return TConclusionStatus::Fail("not defined COMPRESSION.TYPE as arrow::Compression"); + } + codec = NArrow::CompressionFromString(*fValue); + if (!codec) { + return TConclusionStatus::Fail("cannot parse COMPRESSION.TYPE as arrow::Compression"); + } + } + { + auto fValue = features.Extract("COMPRESSION.LEVEL"); + if (fValue) { + ui32 levelLocal; + if (!TryFromString(*fValue, levelLocal)) { + return TConclusionStatus::Fail("cannot parse COMPRESSION.LEVEL as ui32"); + } + level = levelLocal; + } + } + auto codecPtrStatus = BuildCodec(codec.value_or(Options.codec->compression_type()), level); + if (!codecPtrStatus) { + return codecPtrStatus.GetError(); + } + Options.codec = *codecPtrStatus; + return TConclusionStatus::Success(); +} + +NKikimr::TConclusionStatus TNativeSerializer::DoDeserializeFromProto(const NKikimrSchemeOp::TOlapColumn::TSerializer& proto) { + if (!proto.HasArrowCompression()) { + return TConclusionStatus::Fail("no arrow serializer data in proto"); + } + auto compression = proto.GetArrowCompression(); + if (!compression.HasCodec()) { + Options = GetDefaultOptions(); + return TConclusionStatus::Success(); + } + std::optional codec = NArrow::CompressionFromProto(compression.GetCodec()); + if (!codec) { + return TConclusionStatus::Fail("cannot parse codec type from proto"); + } + std::optional level; + if (compression.HasLevel()) { + level = compression.GetLevel(); + } + + Options.use_threads = false; + auto result = BuildCodec(*codec, level); + if (!result) { + return result.GetError(); + } + Options.codec = *result; + return TConclusionStatus::Success(); +} + +void TNativeSerializer::DoSerializeToProto(NKikimrSchemeOp::TOlapColumn::TSerializer& proto) const { + proto.MutableArrowCompression()->SetCodec(NArrow::CompressionToProto(Options.codec->compression_type())); + proto.MutableArrowCompression()->SetLevel(Options.codec->compression_level()); +} + +} diff --git a/ydb/core/formats/arrow/serializer/native.h b/ydb/core/formats/arrow/serializer/native.h new file mode 100644 index 000000000000..260b1f73c324 --- /dev/null +++ b/ydb/core/formats/arrow/serializer/native.h @@ -0,0 +1,92 @@ +#pragma once + +#include "abstract.h" + +#include + +#include +#include + +#include +#include + +namespace NKikimr::NArrow::NSerialization { + +class TNativeSerializer: public ISerializer { +public: + static TString GetClassNameStatic() { + return "ARROW_SERIALIZER"; + } +private: + arrow::ipc::IpcWriteOptions Options; + + TConclusion> BuildCodec(const arrow::Compression::type& cType, const std::optional level) const; + static const inline TFactory::TRegistrator Registrator = TFactory::TRegistrator(GetClassNameStatic()); +protected: + virtual bool IsCompatibleForExchangeWithSameClass(const ISerializer& /*item*/) const override { + return true; + } + + virtual bool IsEqualToSameClass(const ISerializer& item) const override { + auto& itemOptions = static_cast(item).Options; + if (!!itemOptions.codec != !!Options.codec) { + return false; + } + if (!itemOptions.codec) { + return true; + } + if (itemOptions.codec->name() != Options.codec->name()) { + return false; + } + if (itemOptions.codec->compression_level() != Options.codec->compression_level()) { + return false; + } + return true; + } + virtual TString DoSerializeFull(const std::shared_ptr& batch) const override; + virtual TString DoSerializePayload(const std::shared_ptr& batch) const override; + virtual arrow::Result> DoDeserialize(const TString& data) const override; + virtual arrow::Result> DoDeserialize(const TString& data, const std::shared_ptr& schema) const override; + + virtual TConclusionStatus DoDeserializeFromRequest(NYql::TFeaturesExtractor& features) override; + + static arrow::ipc::IpcOptions BuildDefaultOptions() { + arrow::ipc::IpcWriteOptions options; + options.use_threads = false; + options.codec = *arrow::util::Codec::Create(arrow::Compression::LZ4_FRAME); + return options; + } + + virtual TConclusionStatus DoDeserializeFromProto(const NKikimrSchemeOp::TOlapColumn::TSerializer& proto) override; + + virtual void DoSerializeToProto(NKikimrSchemeOp::TOlapColumn::TSerializer& proto) const override; + +public: + virtual TString GetClassName() const override { + return GetClassNameStatic(); + } + + virtual bool IsHardPacker() const override { + return Options.codec && Options.codec->compression_type() == arrow::Compression::ZSTD && Options.codec->compression_level() > 3; + } + + static arrow::ipc::IpcOptions GetDefaultOptions() { + static arrow::ipc::IpcWriteOptions options = BuildDefaultOptions(); + return options; + } + + TNativeSerializer(const arrow::Compression::type compressionType) { + Options.use_threads = false; + auto r = arrow::util::Codec::Create(compressionType); + AFL_VERIFY(r.ok()); + Options.codec = std::move(*r); + } + + TNativeSerializer(const arrow::ipc::IpcWriteOptions& options = GetDefaultOptions()) + : Options(options) { + Options.use_threads = false; + + } +}; + +} diff --git a/ydb/core/formats/arrow/compression/parsing.cpp b/ydb/core/formats/arrow/serializer/parsing.cpp similarity index 100% rename from ydb/core/formats/arrow/compression/parsing.cpp rename to ydb/core/formats/arrow/serializer/parsing.cpp diff --git a/ydb/core/formats/arrow/compression/parsing.h b/ydb/core/formats/arrow/serializer/parsing.h similarity index 100% rename from ydb/core/formats/arrow/compression/parsing.h rename to ydb/core/formats/arrow/serializer/parsing.h diff --git a/ydb/core/formats/arrow/serializer/ya.make b/ydb/core/formats/arrow/serializer/ya.make index 558825873a2c..bf7e091ab4bf 100644 --- a/ydb/core/formats/arrow/serializer/ya.make +++ b/ydb/core/formats/arrow/serializer/ya.make @@ -3,15 +3,16 @@ LIBRARY() PEERDIR( contrib/libs/apache/arrow ydb/core/formats/arrow/common + ydb/services/metadata/abstract ydb/library/actors/core ydb/core/protos ) SRCS( abstract.cpp - full.cpp - batch_only.cpp + GLOBAL native.cpp stream.cpp + parsing.cpp ) END() diff --git a/ydb/core/formats/arrow/size_calcer.cpp b/ydb/core/formats/arrow/size_calcer.cpp index 838511202514..6a9e29bcbdf4 100644 --- a/ydb/core/formats/arrow/size_calcer.cpp +++ b/ydb/core/formats/arrow/size_calcer.cpp @@ -147,6 +147,32 @@ ui64 GetBatchMemorySize(const std::shared_ptr& batch) { return bytes; } +ui64 GetTableMemorySize(const std::shared_ptr& batch) { + if (!batch) { + return 0; + } + ui64 bytes = 0; + for (auto& column : batch->columns()) { + for (auto&& chunk : column->chunks()) { + bytes += GetArrayMemorySize(chunk->data()); + } + } + return bytes; +} + +ui64 GetTableDataSize(const std::shared_ptr& batch) { + if (!batch) { + return 0; + } + ui64 bytes = 0; + for (auto& column : batch->columns()) { + for (auto&& chunk : column->chunks()) { + bytes += GetArrayDataSize(chunk); + } + } + return bytes; +} + template ui64 GetArrayDataSizeImpl(const std::shared_ptr& column) { return sizeof(typename TType::c_type) * column->length(); @@ -215,11 +241,12 @@ ui64 GetArrayDataSize(const std::shared_ptr& column) { } NKikimr::NArrow::TSerializedBatch TSerializedBatch::Build(std::shared_ptr batch, const TBatchSplitttingContext& context) { - std::optional specialKeys; + std::optional specialKeys; if (context.GetFieldsForSpecialKeys().size()) { - specialKeys = TFirstLastSpecialKeys(batch, context.GetFieldsForSpecialKeys()); + specialKeys = TFirstLastSpecialKeys(batch, context.GetFieldsForSpecialKeys()).SerializeToString(); } - return TSerializedBatch(NArrow::SerializeSchema(*batch->schema()), NArrow::SerializeBatchNoCompression(batch), batch->num_rows(), NArrow::GetBatchDataSize(batch), specialKeys); + return TSerializedBatch(NArrow::SerializeSchema(*batch->schema()), NArrow::SerializeBatchNoCompression(batch), batch->num_rows(), + NArrow::GetBatchDataSize(batch), specialKeys); } bool TSerializedBatch::BuildWithLimit(std::shared_ptr batch, const TBatchSplitttingContext& context, std::optional& sbL, std::optional& sbR, TString* errorMessage) { diff --git a/ydb/core/formats/arrow/size_calcer.h b/ydb/core/formats/arrow/size_calcer.h index 2bf5120ed280..502b1e44839a 100644 --- a/ydb/core/formats/arrow/size_calcer.h +++ b/ydb/core/formats/arrow/size_calcer.h @@ -72,13 +72,13 @@ class TSerializedBatch { YDB_READONLY_DEF(TString, Data); YDB_READONLY(ui32, RowsCount, 0); YDB_READONLY(ui32, RawBytes, 0); - std::optional SpecialKeys; + std::optional SpecialKeys; public: size_t GetSize() const { return Data.size(); } - const TFirstLastSpecialKeys& GetSpecialKeysSafe() const { + const TString& GetSpecialKeysSafe() const { AFL_VERIFY(SpecialKeys); return *SpecialKeys; } @@ -93,7 +93,7 @@ class TSerializedBatch { static bool BuildWithLimit(std::shared_ptr batch, const TBatchSplitttingContext& context, std::optional& sbL, std::optional& sbR, TString* errorMessage); static TSerializedBatch Build(std::shared_ptr batch, const TBatchSplitttingContext& context); - TSerializedBatch(TString&& schemaData, TString&& data, const ui32 rowsCount, const ui32 rawBytes, const std::optional& specialKeys) + TSerializedBatch(TString&& schemaData, TString&& data, const ui32 rowsCount, const ui32 rawBytes, const std::optional& specialKeys) : SchemaData(schemaData) , Data(data) , RowsCount(rowsCount) @@ -130,9 +130,11 @@ TSplitBlobResult SplitByBlobSize(const std::shared_ptr& batc // Return size in bytes including size of bitmap mask ui64 GetBatchDataSize(const std::shared_ptr& batch); +ui64 GetTableDataSize(const std::shared_ptr& batch); // Return size in bytes including size of bitmap mask ui64 GetArrayMemorySize(const std::shared_ptr& data); ui64 GetBatchMemorySize(const std::shared_ptr&batch); +ui64 GetTableMemorySize(const std::shared_ptr& batch); // Return size in bytes *not* including size of bitmap mask ui64 GetArrayDataSize(const std::shared_ptr& column); diff --git a/ydb/core/formats/arrow/sort_cursor.h b/ydb/core/formats/arrow/sort_cursor.h deleted file mode 100644 index f51f4145ae60..000000000000 --- a/ydb/core/formats/arrow/sort_cursor.h +++ /dev/null @@ -1,262 +0,0 @@ -// The code in this file is based on original ClickHouse source code -// which is licensed under Apache license v2.0 -// See: https://github.com/ClickHouse/ClickHouse/ - -#pragma once -#include "replace_key.h" -#include "arrow_helpers.h" -#include -#include - -namespace NKikimr::NArrow { - -/// Description of the sorting rule for several columns. -struct TSortDescription { - /// @note In case you have PK and snapshot column you should sort with {ASC PK, DESC snap} key and replase with PK - std::shared_ptr SortingKey; - std::shared_ptr ReplaceKey; /// Keep first visited (SortingKey ordered) of dups - std::vector Directions; /// 1 - ascending, -1 - descending. - bool NotNull{false}; - bool Reverse{false}; // Read sources from bottom to top. With inversed Directions leads to DESC dst for ASC src - - TSortDescription() = default; - - TSortDescription(const std::shared_ptr& sortingKey, - const std::shared_ptr& replaceKey = {}) - : SortingKey(sortingKey) - , ReplaceKey(replaceKey) - , Directions(sortingKey->num_fields(), 1) - {} - - size_t Size() const { return SortingKey->num_fields(); } - int Direction(size_t pos) const { return Directions[pos]; } - bool Replace() const { return ReplaceKey.get(); } - - void Inverse() { - Reverse = !Reverse; - for (int& dir : Directions) { - dir *= -1; - } - } -}; - - -/// Cursor allows to compare rows in different batches. -/// Cursor moves inside single block. It is used in priority queue. -struct TSortCursorImpl { - std::shared_ptr sort_columns; - std::shared_ptr desc; - ui32 order = 0; // Number of cursor. It determines an order if comparing columns are equal. - // - std::shared_ptr current_batch; - const TArrayVec* all_columns; - std::shared_ptr replace_columns; - - TSortCursorImpl() = default; - - TSortCursorImpl(std::shared_ptr batch, std::shared_ptr desc_, ui32 order_ = 0) - : desc(desc_) - , order(order_) - { - Reset(batch); - } - - bool Empty() const { return Rows() == 0; } - size_t Rows() const { return (!all_columns || all_columns->empty()) ? 0 : all_columns->front()->length(); } - size_t LastRow() const { return Rows() - 1; } - - void Reset(std::shared_ptr batch) { - current_batch = batch; - auto rbSorting = ExtractColumns(batch, desc->SortingKey); - Y_ABORT_UNLESS(rbSorting); - sort_columns = std::make_shared(rbSorting->columns()); - all_columns = &batch->columns(); - if (desc->ReplaceKey) { - auto rbReplace = ExtractColumns(batch, desc->ReplaceKey); - Y_ABORT_UNLESS(rbReplace); - replace_columns = std::make_shared(rbReplace->columns()); - } - pos = 0; - } - - size_t getRow() const { - return desc->Reverse ? (Rows() - pos - 1) : pos; - } - - bool isFirst() const { return pos == 0; } - bool isLast() const { return pos + 1 >= Rows(); } - bool isValid() const { return pos < Rows(); } - void next() { ++pos; } - -private: - size_t pos{0}; -}; - - -struct TSortCursor { - TSortCursorImpl* Impl; - bool NotNull; - - TSortCursor(TSortCursorImpl* impl, bool notNull) - : Impl(impl) - , NotNull(notNull) - {} - - TSortCursorImpl* operator-> () { return Impl; } - const TSortCursorImpl* operator-> () const { return Impl; } - - bool Greater(const TSortCursor& rhs) const { - return GreaterAt(rhs, Impl->getRow(), rhs.Impl->getRow()); - } - - /// Inverted so that the priority queue elements are removed in ascending order. - bool operator < (const TSortCursor& rhs) const { - return Greater(rhs); - } - -private: - /// The specified row of this cursor is greater than the specified row of another cursor. - bool GreaterAt(const TSortCursor& rhs, size_t lhs_pos, size_t rhs_pos) const { - TRawReplaceKey left(Impl->sort_columns.get(), lhs_pos); - TRawReplaceKey right(rhs.Impl->sort_columns.get(), rhs_pos); - - if (NotNull) { - for (size_t i = 0; i < Impl->desc->Size(); ++i) { - auto cmp = left.CompareColumnValueNotNull(i, right, i); - int res = Impl->desc->Direction(i) * (std::is_eq(cmp) ? 0 : (std::is_lt(cmp) ? -1 : 1)); - if (res > 0) - return true; - if (res < 0) - return false; - } - } else { - for (size_t i = 0; i < Impl->desc->Size(); ++i) { - auto cmp = left.CompareColumnValue(i, right, i); - int res = Impl->desc->Direction(i) * (std::is_eq(cmp) ? 0 : (std::is_lt(cmp) ? -1 : 1)); - if (res > 0) - return true; - if (res < 0) - return false; - } - } - return Impl->order > rhs.Impl->order; - } -}; - - -/// Allows to fetch data from multiple sort cursors in sorted order (merging sorted data stream). -/// TODO: Replace with "Loser Tree", see https://en.wikipedia.org/wiki/K-way_merge_algorithm -class TSortingHeap { -public: - TSortingHeap() = default; - - template - TSortingHeap(TCursors& cursors, bool notNull) { - Queue.reserve(cursors.size()); - for (auto& cur : cursors) { - if (!cur.Empty()) { - Queue.emplace_back(TSortCursor(&cur, notNull)); - } - } - std::make_heap(Queue.begin(), Queue.end()); - } - - bool IsValid() const { return !Queue.empty(); } - TSortCursor& Current() { return Queue.front(); } - size_t Size() { return Queue.size(); } - TSortCursor& NextChild() { return Queue[NextChildIndex()]; } - - void Next() { - Y_ABORT_UNLESS(IsValid()); - - if (!Current()->isLast()) { - Current()->next(); - UpdateTop(); - } - else { - RemoveTop(); - } - } - - void ReplaceTop(TSortCursor&& new_top) { - Current() = new_top; - UpdateTop(); - } - - void RemoveTop() { - std::pop_heap(Queue.begin(), Queue.end()); - Queue.pop_back(); - NextIdx = 0; - } - - void Push(TSortCursor&& cursor) { - Queue.emplace_back(cursor); - std::push_heap(Queue.begin(), Queue.end()); - NextIdx = 0; - } - -private: - std::vector Queue; - /// Cache comparison between first and second child if the order in queue has not been changed. - size_t NextIdx = 0; - - size_t NextChildIndex() { - if (NextIdx == 0) { - NextIdx = 1; - if (Queue.size() > 2 && Queue[1] < Queue[2]) { - ++NextIdx; - } - } - - return NextIdx; - } - - /// This is adapted version of the function __sift_down from libc++. - /// Why cannot simply use std::priority_queue? - /// - because it doesn't support updating the top element and requires pop and push instead. - /// Also look at "Boost.Heap" library. - void UpdateTop() { - size_t size = Queue.size(); - if (size < 2) - return; - - auto begin = Queue.begin(); - - size_t child_idx = NextChildIndex(); - auto child_it = begin + child_idx; - - /// Check if we are in order. - if (*child_it < *begin) - return; - - NextIdx = 0; - - auto curr_it = begin; - auto top(std::move(*begin)); - do { - /// We are not in heap-order, swap the parent with it's largest child. - *curr_it = std::move(*child_it); - curr_it = child_it; - - // recompute the child based off of the updated parent - child_idx = 2 * child_idx + 1; - - if (child_idx >= size) - break; - - child_it = begin + child_idx; - - if ((child_idx + 1) < size && *child_it < *(child_it + 1)) - { - /// Right child exists and is greater than left child. - ++child_it; - ++child_idx; - } - - /// Check if we are in order. - } while (!(*child_it < top)); - *curr_it = std::move(top); - } -}; - -} diff --git a/ydb/core/formats/arrow/special_keys.cpp b/ydb/core/formats/arrow/special_keys.cpp index 0006b339464a..3209fcff13a9 100644 --- a/ydb/core/formats/arrow/special_keys.cpp +++ b/ydb/core/formats/arrow/special_keys.cpp @@ -1,7 +1,10 @@ #include "special_keys.h" #include "permutations.h" -#include "reader/read_filter_merger.h" -#include +#include "size_calcer.h" + +#include "reader/position.h" + +#include #include #include @@ -11,7 +14,7 @@ bool TSpecialKeys::DeserializeFromString(const TString& data) { if (!data) { return false; } - Data = NArrow::TStatusValidator::GetValid(NArrow::NSerialization::TFullDataDeserializer().Deserialize(data)); + Data = NArrow::TStatusValidator::GetValid(NArrow::NSerialization::TSerializerContainer::GetDefaultSerializer()->Deserialize(data)); return !!Data; } @@ -25,13 +28,21 @@ NKikimr::NArrow::TReplaceKey TSpecialKeys::GetKeyByIndex(const ui32 position, co } TString TSpecialKeys::SerializeToString() const { - return NArrow::NSerialization::TFullDataSerializer(arrow::ipc::IpcWriteOptions::Defaults()).Serialize(Data); + return NArrow::NSerialization::TSerializerContainer::GetDefaultSerializer()->SerializeFull(Data); } TString TSpecialKeys::SerializeToStringDataOnlyNoCompression() const { return NArrow::SerializeBatchNoCompression(Data); } +ui64 TSpecialKeys::GetMemoryBytes() const { + return Data ? NArrow::GetBatchDataSize(Data) : 0; +} + +ui64 TSpecialKeys::GetMemorySize() const { + return GetBatchMemorySize(Data); +} + TFirstLastSpecialKeys::TFirstLastSpecialKeys(const std::shared_ptr& batch, const std::vector& columnNames /*= {}*/) { Y_ABORT_UNLESS(batch); Y_ABORT_UNLESS(batch->num_rows()); @@ -53,15 +64,15 @@ TMinMaxSpecialKeys::TMinMaxSpecialKeys(std::shared_ptr batch Y_ABORT_UNLESS(batch->num_rows()); Y_ABORT_UNLESS(schema); - NOlap::NIndexedReader::TSortableBatchPosition record(batch, 0, schema->field_names(), {}, false); - std::optional minValue; - std::optional maxValue; + NMerger::TRWSortableBatchPosition record(batch, 0, schema->field_names(), {}, false); + std::optional minValue; + std::optional maxValue; while (true) { - if (!minValue || minValue->Compare(record) == std::partial_ordering::greater) { - minValue = record; + if (!minValue || record.Compare(*minValue) == std::partial_ordering::less) { + minValue = record.BuildSortingCursor(); } - if (!maxValue || maxValue->Compare(record) == std::partial_ordering::less) { - maxValue = record; + if (!maxValue || record.Compare(*maxValue) == std::partial_ordering::greater) { + maxValue = record.BuildSortingCursor(); } if (!record.NextPosition(1)) { break; diff --git a/ydb/core/formats/arrow/special_keys.h b/ydb/core/formats/arrow/special_keys.h index f157ce089fe4..d56e658fbb68 100644 --- a/ydb/core/formats/arrow/special_keys.h +++ b/ydb/core/formats/arrow/special_keys.h @@ -20,6 +20,8 @@ class TSpecialKeys { } public: + ui64 GetMemoryBytes() const; + TString SerializeToStringDataOnlyNoCompression() const; TSpecialKeys(const TString& data, const std::shared_ptr& schema) { @@ -33,6 +35,7 @@ class TSpecialKeys { } TString SerializeToString() const; + ui64 GetMemorySize() const; }; class TFirstLastSpecialKeys: public TSpecialKeys { diff --git a/ydb/core/formats/arrow/switch/compare.cpp b/ydb/core/formats/arrow/switch/compare.cpp new file mode 100644 index 000000000000..4dacd9c5434f --- /dev/null +++ b/ydb/core/formats/arrow/switch/compare.cpp @@ -0,0 +1,5 @@ +#include "compare.h" + +namespace NKikimr::NArrow { + +} \ No newline at end of file diff --git a/ydb/core/formats/arrow/switch/compare.h b/ydb/core/formats/arrow/switch/compare.h new file mode 100644 index 000000000000..481810147472 --- /dev/null +++ b/ydb/core/formats/arrow/switch/compare.h @@ -0,0 +1,121 @@ +#pragma once +#include +#include + +namespace NKikimr::NArrow { + +class TComparator { +public: + template + static std::partial_ordering ConcreteTypedCompare(const arrow::Type::type typeId, const arrow::Array& lhs, const int lpos, const arrow::Array& rhs, const int rpos) { + switch (typeId) { + case arrow::Type::NA: + case arrow::Type::BOOL: + break; + case arrow::Type::UINT8: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::INT8: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::UINT16: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::INT16: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::UINT32: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::INT32: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::UINT64: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::INT64: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::HALF_FLOAT: + break; + case arrow::Type::FLOAT: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::DOUBLE: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::STRING: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::BINARY: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::FIXED_SIZE_BINARY: + case arrow::Type::DATE32: + case arrow::Type::DATE64: + break; + case arrow::Type::TIMESTAMP: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::TIME32: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::TIME64: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::DURATION: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::DECIMAL256: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::DECIMAL: + return CompareView(lhs, lpos, rhs, rpos); + case arrow::Type::DENSE_UNION: + case arrow::Type::DICTIONARY: + case arrow::Type::EXTENSION: + case arrow::Type::FIXED_SIZE_LIST: + case arrow::Type::INTERVAL_DAY_TIME: + case arrow::Type::INTERVAL_MONTHS: + case arrow::Type::LARGE_BINARY: + case arrow::Type::LARGE_LIST: + case arrow::Type::LARGE_STRING: + case arrow::Type::LIST: + case arrow::Type::MAP: + case arrow::Type::MAX_ID: + case arrow::Type::SPARSE_UNION: + case arrow::Type::STRUCT: + Y_ABORT("not implemented"); + break; + } + return std::partial_ordering::equivalent; + } + + template + static std::partial_ordering TypedCompare(const arrow::Array& lhs, const int lpos, const arrow::Array& rhs, const int rpos) { + return ConcreteTypedCompare(lhs.type_id(), lhs, lpos, rhs, rpos); + } + + template + static std::partial_ordering CompareView(const arrow::Array& lhs, int lpos, const arrow::Array& rhs, int rpos) { + auto& left = static_cast(lhs); + auto& right = static_cast(rhs); + if constexpr (notNull) { + return CompareValueNotNull(left.GetView(lpos), right.GetView(rpos)); + } else { + return CompareValue(left.GetView(lpos), right.GetView(rpos), left.IsNull(lpos), right.IsNull(rpos)); + } + } + + template + static std::partial_ordering CompareValue(const T& x, const T& y, bool xIsNull, bool yIsNull) { + // TODO: std::partial_ordering::unordered for both nulls? + if (xIsNull) { + return std::partial_ordering::less; + } + if (yIsNull) { + return std::partial_ordering::greater; + } + return CompareValueNotNull(x, y); + } + + template + static std::partial_ordering CompareValueNotNull(const T& x, const T& y) { + if constexpr (std::is_same_v) { + size_t minSize = (x.size() < y.size()) ? x.size() : y.size(); + int cmp = memcmp(x.data(), y.data(), minSize); + if (cmp < 0) { + return std::partial_ordering::less; + } else if (cmp > 0) { + return std::partial_ordering::greater; + } + return CompareValueNotNull(x.size(), y.size()); + } else { + return x <=> y; + } + } +}; +} \ No newline at end of file diff --git a/ydb/core/formats/arrow/switch/switch_type.h b/ydb/core/formats/arrow/switch/switch_type.h index a8627f4654c7..487144be7e9d 100644 --- a/ydb/core/formats/arrow/switch/switch_type.h +++ b/ydb/core/formats/arrow/switch/switch_type.h @@ -117,7 +117,7 @@ bool SwitchArrayType(const arrow::Datum& column, TFunc&& f) { * @return Result of execution of callback or false if the type typeId is not supported. */ template -bool SwitchYqlTypeToArrowType(const NScheme::TTypeInfo& typeInfo, TFunc&& callback) { +[[nodiscard]] bool SwitchYqlTypeToArrowType(const NScheme::TTypeInfo& typeInfo, TFunc&& callback) { switch (typeInfo.GetTypeId()) { case NScheme::NTypeIds::Bool: return callback(TTypeWrapper()); @@ -227,7 +227,7 @@ bool Append(arrow::ArrayBuilder& builder, const std::vector& } template -bool Append(T& builder, const arrow::Array& array, int position, ui64* recordSize = nullptr) { +[[nodiscard]] bool Append(T& builder, const arrow::Array& array, int position, ui64* recordSize = nullptr) { return SwitchType(array.type_id(), [&](const auto& type) { using TWrap = std::decay_t; using TArray = typename arrow::TypeTraits::ArrayType; diff --git a/ydb/core/formats/arrow/switch/ya.make b/ydb/core/formats/arrow/switch/ya.make index b32eb15f2ed1..e11e5e070ca6 100644 --- a/ydb/core/formats/arrow/switch/ya.make +++ b/ydb/core/formats/arrow/switch/ya.make @@ -8,6 +8,7 @@ PEERDIR( SRCS( switch_type.cpp + compare.cpp ) END() diff --git a/ydb/core/formats/arrow/transformer/abstract.h b/ydb/core/formats/arrow/transformer/abstract.h index 6d99379f8b97..b4c397c2d773 100644 --- a/ydb/core/formats/arrow/transformer/abstract.h +++ b/ydb/core/formats/arrow/transformer/abstract.h @@ -10,14 +10,24 @@ class ITransformer { protected: virtual std::shared_ptr DoTransform(const std::shared_ptr& batch) const = 0; virtual TString DoDebugString() const = 0; + virtual bool IsEqualToSameClass(const ITransformer& item) const = 0; public: using TPtr = std::shared_ptr; virtual ~ITransformer() = default; + virtual TString GetClassName() const = 0; + TString DebugString() const { return DoDebugString(); } + bool IsEqualTo(const ITransformer& item) const { + if (GetClassName() != item.GetClassName()) { + return false; + } + return IsEqualToSameClass(item); + } + std::shared_ptr Transform(const std::shared_ptr& batch) const { return DoTransform(batch); } diff --git a/ydb/core/formats/arrow/transformer/dictionary.h b/ydb/core/formats/arrow/transformer/dictionary.h index a029b956e0fc..da0c13a5189a 100644 --- a/ydb/core/formats/arrow/transformer/dictionary.h +++ b/ydb/core/formats/arrow/transformer/dictionary.h @@ -4,21 +4,41 @@ namespace NKikimr::NArrow::NTransformation { class TDictionaryPackTransformer: public ITransformer { +public: + static TString GetClassNameStatic() { + return "DICT_PACK"; + } protected: virtual std::shared_ptr DoTransform(const std::shared_ptr& batch) const override; virtual TString DoDebugString() const override { return "type=DICT_PACK;"; } + virtual bool IsEqualToSameClass(const ITransformer& /*item*/) const override { + return true; + } public: + virtual TString GetClassName() const override { + return GetClassNameStatic(); + } }; class TDictionaryUnpackTransformer: public ITransformer { +public: + static TString GetClassNameStatic() { + return "DICT_UNPACK"; + } protected: virtual std::shared_ptr DoTransform(const std::shared_ptr& batch) const override; virtual TString DoDebugString() const override { return "type=DICT_UNPACK;"; } + virtual bool IsEqualToSameClass(const ITransformer& /*item*/) const override { + return true; + } public: + virtual TString GetClassName() const override { + return GetClassNameStatic(); + } }; } diff --git a/ydb/core/formats/arrow/ut/CMakeLists.darwin-arm64.txt b/ydb/core/formats/arrow/ut/CMakeLists.darwin-arm64.txt index b493df8561ee..d837867bd67f 100644 --- a/ydb/core/formats/arrow/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/formats/arrow/ut/CMakeLists.darwin-arm64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-core-formats-arrow-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-formats-arrow-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut_arrow.cpp @@ -40,6 +38,7 @@ target_sources(ydb-core-formats-arrow-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_dictionary.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_size_calcer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_column_filter.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_hash.cpp ) set_property( TARGET @@ -66,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/formats/arrow/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/formats/arrow/ut/CMakeLists.darwin-x86_64.txt index 6e15f878a41b..8b56367fa02a 100644 --- a/ydb/core/formats/arrow/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/formats/arrow/ut/CMakeLists.darwin-x86_64.txt @@ -32,8 +32,6 @@ target_link_options(ydb-core-formats-arrow-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-formats-arrow-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut_arrow.cpp @@ -41,6 +39,7 @@ target_sources(ydb-core-formats-arrow-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_dictionary.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_size_calcer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_column_filter.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_hash.cpp ) set_property( TARGET @@ -67,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/formats/arrow/ut/CMakeLists.linux-aarch64.txt b/ydb/core/formats/arrow/ut/CMakeLists.linux-aarch64.txt index 86633fb881d3..e0db7c1dbc9c 100644 --- a/ydb/core/formats/arrow/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/formats/arrow/ut/CMakeLists.linux-aarch64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-core-formats-arrow-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-formats-arrow-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut_arrow.cpp @@ -44,6 +41,7 @@ target_sources(ydb-core-formats-arrow-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_dictionary.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_size_calcer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_column_filter.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_hash.cpp ) set_property( TARGET @@ -70,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/formats/arrow/ut/CMakeLists.linux-x86_64.txt b/ydb/core/formats/arrow/ut/CMakeLists.linux-x86_64.txt index 1cdada418ddd..5cd06dbcab6b 100644 --- a/ydb/core/formats/arrow/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/formats/arrow/ut/CMakeLists.linux-x86_64.txt @@ -35,9 +35,6 @@ target_link_options(ydb-core-formats-arrow-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-formats-arrow-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut_arrow.cpp @@ -45,6 +42,7 @@ target_sources(ydb-core-formats-arrow-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_dictionary.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_size_calcer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_column_filter.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_hash.cpp ) set_property( TARGET @@ -71,6 +69,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/formats/arrow/ut/CMakeLists.windows-x86_64.txt b/ydb/core/formats/arrow/ut/CMakeLists.windows-x86_64.txt index 81d16205ae45..47cd1cd804c7 100644 --- a/ydb/core/formats/arrow/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/formats/arrow/ut/CMakeLists.windows-x86_64.txt @@ -34,6 +34,7 @@ target_sources(ydb-core-formats-arrow-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_dictionary.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_size_calcer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_column_filter.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/formats/arrow/ut/ut_hash.cpp ) set_property( TARGET @@ -60,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/formats/arrow/ut_arrow.cpp b/ydb/core/formats/arrow/ut/ut_arrow.cpp similarity index 79% rename from ydb/core/formats/arrow/ut_arrow.cpp rename to ydb/core/formats/arrow/ut/ut_arrow.cpp index 2ab400bf4917..da620d70fa30 100644 --- a/ydb/core/formats/arrow/ut_arrow.cpp +++ b/ydb/core/formats/arrow/ut/ut_arrow.cpp @@ -1,9 +1,10 @@ -#include "arrow_batch_builder.h" -#include "arrow_helpers.h" -#include "converter.h" -#include "one_batch_input_stream.h" -#include "merging_sorted_input_stream.h" -#include "arrow_filter.h" +#include +#include +#include +#include +#include +#include +#include #include #include @@ -480,13 +481,6 @@ ui32 RestoreValue(ui32 a, ui32 b, ui32 c) { return ui32(a) * 100 + b * 10 + c; } -ui32 RestoreOne(const std::shared_ptr& batch, int pos) { - auto arrA = std::static_pointer_cast(batch->GetColumnByName("i8")); - auto arrB = std::static_pointer_cast(batch->GetColumnByName("i16")); - auto arrC = std::static_pointer_cast(batch->GetColumnByName("i32")); - return RestoreValue(arrA->Value(pos), arrB->Value(pos), arrC->Value(pos)); -} - bool CheckSorted1000(const std::shared_ptr& batch, bool desc = false) { auto arrA = std::static_pointer_cast(batch->GetColumnByName("i8")); auto arrB = std::static_pointer_cast(batch->GetColumnByName("i16")); @@ -663,38 +657,26 @@ Y_UNIT_TEST_SUITE(ArrowTest) { UNIT_ASSERT(CheckSorted1000(batch)); std::vector> batches; - batches.push_back(batch->Slice(0, 100)); // 0..100 - batches.push_back(batch->Slice(100, 200)); // 100..300 - batches.push_back(batch->Slice(200, 400)); // 200..600 - batches.push_back(batch->Slice(500, 50)); // 500..550 - batches.push_back(batch->Slice(600, 1)); // 600..601 - - auto descr = std::make_shared(batch->schema()); - descr->NotNull = true; - - std::vector> sorted; - { // maxBatchSize = 500, no limit - std::vector streams; - for (auto& batch : batches) { - streams.push_back(std::make_shared(batch)); - } + batches.push_back(batch->Slice(0, 100)); // 0..100 +100 + batches.push_back(batch->Slice(100, 200)); // 100..300 +200 + batches.push_back(batch->Slice(200, 400)); // 200..600 +300 + batches.push_back(batch->Slice(500, 50)); // 500..550 +50 + batches.push_back(batch->Slice(600, 1)); // 600..601 +1 - NArrow::IInputStream::TPtr mergeStream = - std::make_shared(streams, descr, 500); - - while (auto batch = mergeStream->Read()) { - sorted.emplace_back(batch); + std::shared_ptr sorted; + { + NArrow::NMerger::TRecordBatchBuilder builder(batch->schema()->fields()); + const std::vector vColumns = {batch->schema()->field(0)->name()}; + auto merger = std::make_shared(batch->schema(), batch->schema(), false, vColumns); + for (auto&& i : batches) { + merger->AddSource(i, nullptr); } + merger->DrainAll(builder); + sorted = builder.Finalize(); } - - UNIT_ASSERT_VALUES_EQUAL(sorted.size(), 2); - UNIT_ASSERT_VALUES_EQUAL(sorted[0]->num_rows(), 500); - UNIT_ASSERT_VALUES_EQUAL(sorted[1]->num_rows(), 251); - UNIT_ASSERT(CheckSorted(sorted[0])); - UNIT_ASSERT(CheckSorted(sorted[1])); - UNIT_ASSERT(NArrow::IsSorted(sorted[0], descr->SortingKey)); - UNIT_ASSERT(NArrow::IsSorted(sorted[1], descr->SortingKey)); - UNIT_ASSERT(RestoreOne(sorted[0], 499) <= RestoreOne(sorted[1], 0)); + UNIT_ASSERT_VALUES_EQUAL(sorted->num_rows(), 601); + UNIT_ASSERT(NArrow::IsSorted(sorted, batch->schema())); + UNIT_ASSERT(CheckSorted(sorted)); } Y_UNIT_TEST(MergingSortedInputStreamReversed) { @@ -702,86 +684,29 @@ Y_UNIT_TEST_SUITE(ArrowTest) { UNIT_ASSERT(CheckSorted1000(batch)); std::vector> batches; - batches.push_back(batch->Slice(0, 100)); // 0..100 - batches.push_back(batch->Slice(100, 200)); // 100..300 - batches.push_back(batch->Slice(200, 400)); // 200..600 - batches.push_back(batch->Slice(500, 50)); // 500..550 - batches.push_back(batch->Slice(600, 1)); // 600..601 - - auto descr = std::make_shared(batch->schema()); - descr->NotNull = true; - descr->Inverse(); - - std::vector> sorted; - { // maxBatchSize = 500, no limit - std::vector streams; - for (auto& batch : batches) { - streams.push_back(std::make_shared(batch)); - } - - NArrow::IInputStream::TPtr mergeStream = - std::make_shared(streams, descr, 500); + batches.push_back(batch->Slice(0, 100)); // 0..100 +100 + batches.push_back(batch->Slice(100, 200)); // 100..300 +200 + batches.push_back(batch->Slice(200, 400)); // 200..600 +300 + batches.push_back(batch->Slice(500, 50)); // 500..550 +50 + batches.push_back(batch->Slice(600, 1)); // 600..601 +1 - while (auto batch = mergeStream->Read()) { - sorted.emplace_back(batch); - } - } - - UNIT_ASSERT_VALUES_EQUAL(sorted.size(), 2); - UNIT_ASSERT_VALUES_EQUAL(sorted[0]->num_rows(), 500); - UNIT_ASSERT_VALUES_EQUAL(sorted[1]->num_rows(), 251); - UNIT_ASSERT(CheckSorted(sorted[0], true)); - UNIT_ASSERT(CheckSorted(sorted[1], true)); - UNIT_ASSERT(NArrow::IsSorted(sorted[0], descr->SortingKey, true)); - UNIT_ASSERT(NArrow::IsSorted(sorted[1], descr->SortingKey, true)); - UNIT_ASSERT(RestoreOne(sorted[0], 499) >= RestoreOne(sorted[1], 0)); - } - - Y_UNIT_TEST(MergingSortedInputStreamReplace) { - std::shared_ptr batch = ExtractBatch(MakeTable1000()); - UNIT_ASSERT(CheckSorted1000(batch)); - - std::vector> batches; - batches.push_back(AddSnapColumn(batch->Slice(0, 400), 0)); - batches.push_back(AddSnapColumn(batch->Slice(200, 400), 1)); - batches.push_back(AddSnapColumn(batch->Slice(400, 400), 2)); - batches.push_back(AddSnapColumn(batch->Slice(600, 400), 3)); - - auto sortingKey = batches[0]->schema(); - auto replaceKey = batch->schema(); - - auto descr = std::make_shared(sortingKey, replaceKey); - descr->Directions.back() = -1; // greater snapshot first - descr->NotNull = true; - - std::vector> sorted; + std::shared_ptr sorted; { - std::vector streams; - for (auto& batch : batches) { - streams.push_back(std::make_shared(batch)); - } - - NArrow::IInputStream::TPtr mergeStream = - std::make_shared(streams, descr, 5000); - - while (auto batch = mergeStream->Read()) { - sorted.emplace_back(batch); + NArrow::NMerger::TRecordBatchBuilder builder(batch->schema()->fields()); + const std::vector vColumns = {batch->schema()->field(0)->name()}; + auto merger = std::make_shared(batch->schema(), batch->schema(), true, vColumns); + for (auto&& i : batches) { + merger->AddSource(i, nullptr); } + merger->DrainAll(builder); + sorted = builder.Finalize(); } - - UNIT_ASSERT_VALUES_EQUAL(sorted.size(), 1); - UNIT_ASSERT_VALUES_EQUAL(sorted[0]->num_rows(), 1000); - UNIT_ASSERT(CheckSorted1000(sorted[0])); - UNIT_ASSERT(NArrow::IsSortedAndUnique(sorted[0], descr->SortingKey)); - - auto counts = CountValues(std::static_pointer_cast(sorted[0]->GetColumnByName("snap"))); - UNIT_ASSERT_VALUES_EQUAL(counts[0], 200); - UNIT_ASSERT_VALUES_EQUAL(counts[1], 200); - UNIT_ASSERT_VALUES_EQUAL(counts[2], 200); - UNIT_ASSERT_VALUES_EQUAL(counts[3], 400); + UNIT_ASSERT_VALUES_EQUAL(sorted->num_rows(), 601); + UNIT_ASSERT(NArrow::IsSorted(sorted, batch->schema(), true)); + UNIT_ASSERT(CheckSorted(sorted, true)); } - Y_UNIT_TEST(MergingSortedInputStreamReplaceReversed) { + Y_UNIT_TEST(MergingSortedInputStreamReplace) { std::shared_ptr batch = ExtractBatch(MakeTable1000()); UNIT_ASSERT(CheckSorted1000(batch)); @@ -791,35 +716,23 @@ Y_UNIT_TEST_SUITE(ArrowTest) { batches.push_back(AddSnapColumn(batch->Slice(400, 400), 2)); batches.push_back(AddSnapColumn(batch->Slice(600, 400), 3)); - auto sortingKey = batches[0]->schema(); - auto replaceKey = batch->schema(); - - auto descr = std::make_shared(sortingKey, replaceKey); - descr->Directions.back() = 1; // greater snapshot last - descr->NotNull = true; - descr->Inverse(); - - std::vector> sorted; + std::shared_ptr sorted; { - std::vector streams; - for (auto& batch : batches) { - streams.push_back(std::make_shared(batch)); - } - - NArrow::IInputStream::TPtr mergeStream = - std::make_shared(streams, descr, 5000); - - while (auto batch = mergeStream->Read()) { - sorted.emplace_back(batch); + NArrow::NMerger::TRecordBatchBuilder builder(batches[0]->schema()->fields()); + const std::vector vColumns = {"snap"}; + auto merger = std::make_shared(batch->schema(), batches[0]->schema(), false, vColumns); + for (auto&& i : batches) { + merger->AddSource(i, nullptr); } + merger->DrainAll(builder); + sorted = builder.Finalize(); } - UNIT_ASSERT_VALUES_EQUAL(sorted.size(), 1); - UNIT_ASSERT_VALUES_EQUAL(sorted[0]->num_rows(), 1000); - UNIT_ASSERT(CheckSorted1000(sorted[0], true)); - UNIT_ASSERT(NArrow::IsSortedAndUnique(sorted[0], descr->SortingKey, true)); + UNIT_ASSERT_VALUES_EQUAL(sorted->num_rows(), 1000); + UNIT_ASSERT(CheckSorted1000(sorted)); + UNIT_ASSERT(NArrow::IsSortedAndUnique(sorted, batch->schema())); - auto counts = CountValues(std::static_pointer_cast(sorted[0]->GetColumnByName("snap"))); + auto counts = CountValues(std::static_pointer_cast(sorted->GetColumnByName("snap"))); UNIT_ASSERT_VALUES_EQUAL(counts[0], 200); UNIT_ASSERT_VALUES_EQUAL(counts[1], 200); UNIT_ASSERT_VALUES_EQUAL(counts[2], 200); diff --git a/ydb/core/formats/arrow/ut/ut_dictionary.cpp b/ydb/core/formats/arrow/ut/ut_dictionary.cpp index c723eb1957c6..c3df2c6a30f0 100644 --- a/ydb/core/formats/arrow/ut/ut_dictionary.cpp +++ b/ydb/core/formats/arrow/ut/ut_dictionary.cpp @@ -1,7 +1,6 @@ #include #include -#include -#include +#include #include #include #include @@ -13,13 +12,13 @@ Y_UNIT_TEST_SUITE(Dictionary) { ui64 Test(NConstruction::IArrayBuilder::TPtr column, const arrow::ipc::IpcWriteOptions& options, const ui32 bSize) { std::shared_ptr batch = NConstruction::TRecordBatchConstructor({ column }).BuildBatch(bSize); - const TString data = NSerialization::TFullDataSerializer(options).Serialize(batch); - auto deserializedBatch = *NSerialization::TFullDataDeserializer().Deserialize(data); + const TString data = NSerialization::TNativeSerializer(options).SerializeFull(batch); + auto deserializedBatch = *NSerialization::TNativeSerializer().Deserialize(data); Y_ABORT_UNLESS(!!deserializedBatch); auto originalBatchTransformed = DictionaryToArray(batch); auto roundBatchTransformed = DictionaryToArray(deserializedBatch); - const TString roundUnpacked = NSerialization::TFullDataSerializer(options).Serialize(roundBatchTransformed); - const TString roundTransformed = NSerialization::TFullDataSerializer(options).Serialize(originalBatchTransformed); + const TString roundUnpacked = NSerialization::TNativeSerializer(options).SerializeFull(roundBatchTransformed); + const TString roundTransformed = NSerialization::TNativeSerializer(options).SerializeFull(originalBatchTransformed); Y_ABORT_UNLESS(roundBatchTransformed->num_rows() == originalBatchTransformed->num_rows()); Y_ABORT_UNLESS(roundUnpacked == roundTransformed); return data.size(); @@ -154,8 +153,8 @@ Y_UNIT_TEST_SUITE(Dictionary) { "field", NConstruction::TStringPoolFiller(pSize, strLen) ); std::shared_ptr batch = NConstruction::TRecordBatchConstructor({ column }).BuildBatch(bSize); - const TString dataFull = NSerialization::TFullDataSerializer(options).Serialize(batch); - const TString dataPayload = NSerialization::TBatchPayloadSerializer(options).Serialize(batch); + const TString dataFull = NSerialization::TNativeSerializer(options).SerializeFull(batch); + const TString dataPayload = NSerialization::TNativeSerializer(options).SerializePayload(batch); bytesFull = dataFull.size(); bytesPayload = dataPayload.size(); } diff --git a/ydb/core/formats/arrow/ut_program_step.cpp b/ydb/core/formats/arrow/ut/ut_program_step.cpp similarity index 99% rename from ydb/core/formats/arrow/ut_program_step.cpp rename to ydb/core/formats/arrow/ut/ut_program_step.cpp index 2ab52ed29bdc..d7f447a1b237 100644 --- a/ydb/core/formats/arrow/ut_program_step.cpp +++ b/ydb/core/formats/arrow/ut/ut_program_step.cpp @@ -2,14 +2,16 @@ #include #include +#include +#include +#include +#include + +#include + #include #include #include -#include -#include -#include "custom_registry.h" -#include "program.h" -#include "arrow_helpers.h" using namespace NKikimr::NArrow; using namespace NKikimr::NSsa; diff --git a/ydb/core/formats/arrow/ut/ut_size_calcer.cpp b/ydb/core/formats/arrow/ut/ut_size_calcer.cpp index 4a8413dcd5fc..1db712f43c7a 100644 --- a/ydb/core/formats/arrow/ut/ut_size_calcer.cpp +++ b/ydb/core/formats/arrow/ut/ut_size_calcer.cpp @@ -1,7 +1,5 @@ #include #include -#include -#include #include #include #include @@ -18,6 +16,12 @@ Y_UNIT_TEST_SUITE(SizeCalcer) { std::shared_ptr batch = NConstruction::TRecordBatchConstructor({ column }).BuildBatch(2048); Cerr << GetBatchDataSize(batch) << Endl; UNIT_ASSERT(GetBatchDataSize(batch) == 2048 * 512 + 2048 * 4); + auto slice05 = batch->Slice(batch->num_rows() / 2, batch->num_rows() / 2); + Cerr << GetBatchDataSize(slice05) << Endl; + UNIT_ASSERT(GetBatchDataSize(slice05) == 0.5 * (2048 * 512 + 2048 * 4)); + auto slice025 = slice05->Slice(slice05->num_rows() / 3, slice05->num_rows() / 2); + Cerr << GetBatchDataSize(slice025) << Endl; + UNIT_ASSERT(GetBatchDataSize(slice025) == 0.25 * (2048 * 512 + 2048 * 4)); } Y_UNIT_TEST(DictionaryStrings) { diff --git a/ydb/core/formats/arrow/ya.make b/ydb/core/formats/arrow/ya.make index 146c5bae1e86..d55ccb5799e5 100644 --- a/ydb/core/formats/arrow/ya.make +++ b/ydb/core/formats/arrow/ya.make @@ -45,14 +45,10 @@ SRCS( converter.h custom_registry.cpp input_stream.h - merging_sorted_input_stream.cpp - merging_sorted_input_stream.h - one_batch_input_stream.h permutations.cpp program.cpp replace_key.cpp size_calcer.cpp - sort_cursor.h ssa_program_optimizer.cpp special_keys.cpp simple_arrays_cache.cpp diff --git a/ydb/core/fq/libs/actors/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/actors/CMakeLists.darwin-arm64.txt index b4306c62f894..9912e950ebf2 100644 --- a/ydb/core/fq/libs/actors/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/actors/CMakeLists.darwin-arm64.txt @@ -54,7 +54,7 @@ target_link_libraries(fq-libs-actors PUBLIC yql-core-facade core-services-mounts dq-integration-transform - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-codec providers-common-comp_nodes providers-common-db_id_async_resolver diff --git a/ydb/core/fq/libs/actors/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/actors/CMakeLists.darwin-x86_64.txt index b4306c62f894..9912e950ebf2 100644 --- a/ydb/core/fq/libs/actors/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/actors/CMakeLists.darwin-x86_64.txt @@ -54,7 +54,7 @@ target_link_libraries(fq-libs-actors PUBLIC yql-core-facade core-services-mounts dq-integration-transform - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-codec providers-common-comp_nodes providers-common-db_id_async_resolver diff --git a/ydb/core/fq/libs/actors/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/actors/CMakeLists.linux-aarch64.txt index 31d7e557ca88..d60053d12b56 100644 --- a/ydb/core/fq/libs/actors/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/actors/CMakeLists.linux-aarch64.txt @@ -55,7 +55,7 @@ target_link_libraries(fq-libs-actors PUBLIC yql-core-facade core-services-mounts dq-integration-transform - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-codec providers-common-comp_nodes providers-common-db_id_async_resolver diff --git a/ydb/core/fq/libs/actors/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/actors/CMakeLists.linux-x86_64.txt index 31d7e557ca88..d60053d12b56 100644 --- a/ydb/core/fq/libs/actors/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/actors/CMakeLists.linux-x86_64.txt @@ -55,7 +55,7 @@ target_link_libraries(fq-libs-actors PUBLIC yql-core-facade core-services-mounts dq-integration-transform - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-codec providers-common-comp_nodes providers-common-db_id_async_resolver diff --git a/ydb/core/fq/libs/actors/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/actors/CMakeLists.windows-x86_64.txt index b4306c62f894..9912e950ebf2 100644 --- a/ydb/core/fq/libs/actors/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/actors/CMakeLists.windows-x86_64.txt @@ -54,7 +54,7 @@ target_link_libraries(fq-libs-actors PUBLIC yql-core-facade core-services-mounts dq-integration-transform - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-codec providers-common-comp_nodes providers-common-db_id_async_resolver diff --git a/ydb/core/fq/libs/actors/logging/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/actors/logging/CMakeLists.darwin-arm64.txt index 54ca068fe90e..ad8c2c1040f1 100644 --- a/ydb/core/fq/libs/actors/logging/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/actors/logging/CMakeLists.darwin-arm64.txt @@ -14,3 +14,6 @@ target_link_libraries(libs-actors-logging INTERFACE library-actors-core ydb-core-protos ) +target_sources(libs-actors-logging INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/logging/log.h +) diff --git a/ydb/core/fq/libs/actors/logging/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/actors/logging/CMakeLists.darwin-x86_64.txt index 54ca068fe90e..ad8c2c1040f1 100644 --- a/ydb/core/fq/libs/actors/logging/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/actors/logging/CMakeLists.darwin-x86_64.txt @@ -14,3 +14,6 @@ target_link_libraries(libs-actors-logging INTERFACE library-actors-core ydb-core-protos ) +target_sources(libs-actors-logging INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/logging/log.h +) diff --git a/ydb/core/fq/libs/actors/logging/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/actors/logging/CMakeLists.linux-aarch64.txt index 562d8c1637b2..05344586d623 100644 --- a/ydb/core/fq/libs/actors/logging/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/actors/logging/CMakeLists.linux-aarch64.txt @@ -15,3 +15,6 @@ target_link_libraries(libs-actors-logging INTERFACE library-actors-core ydb-core-protos ) +target_sources(libs-actors-logging INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/logging/log.h +) diff --git a/ydb/core/fq/libs/actors/logging/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/actors/logging/CMakeLists.linux-x86_64.txt index 562d8c1637b2..05344586d623 100644 --- a/ydb/core/fq/libs/actors/logging/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/actors/logging/CMakeLists.linux-x86_64.txt @@ -15,3 +15,6 @@ target_link_libraries(libs-actors-logging INTERFACE library-actors-core ydb-core-protos ) +target_sources(libs-actors-logging INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/logging/log.h +) diff --git a/ydb/core/fq/libs/actors/logging/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/actors/logging/CMakeLists.windows-x86_64.txt index 54ca068fe90e..ad8c2c1040f1 100644 --- a/ydb/core/fq/libs/actors/logging/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/actors/logging/CMakeLists.windows-x86_64.txt @@ -14,3 +14,6 @@ target_link_libraries(libs-actors-logging INTERFACE library-actors-core ydb-core-protos ) +target_sources(libs-actors-logging INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/logging/log.h +) diff --git a/ydb/core/fq/libs/actors/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/actors/ut/CMakeLists.darwin-arm64.txt index 72c3b166f618..4c0b53124cf0 100644 --- a/ydb/core/fq/libs/actors/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/actors/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-fq-libs-actors-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-actors-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/ut/database_resolver_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/actors/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/actors/ut/CMakeLists.darwin-x86_64.txt index ae525b4d8cb1..faabc0915f44 100644 --- a/ydb/core/fq/libs/actors/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/actors/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-fq-libs-actors-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-actors-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/ut/database_resolver_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/actors/ut/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/actors/ut/CMakeLists.linux-aarch64.txt index ea0437ff4f0d..c6290ed93bee 100644 --- a/ydb/core/fq/libs/actors/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/actors/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-fq-libs-actors-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-actors-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/ut/database_resolver_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/actors/ut/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/actors/ut/CMakeLists.linux-x86_64.txt index f9a7e0bdc2b9..ff0f4c390361 100644 --- a/ydb/core/fq/libs/actors/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/actors/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-fq-libs-actors-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-actors-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/actors/ut/database_resolver_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/actors/ut/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/actors/ut/CMakeLists.windows-x86_64.txt index 54271f5e5128..a4d5c413b131 100644 --- a/ydb/core/fq/libs/actors/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/actors/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.darwin-arm64.txt index b2ae1bcd7663..b83aa27e6a78 100644 --- a/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.darwin-arm64.txt @@ -29,6 +29,9 @@ target_link_libraries(libs-checkpoint_storage-proto PUBLIC target_proto_messages(libs-checkpoint_storage-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/proto/graph_description.proto ) +target_sources(libs-checkpoint_storage-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/checkpoint_storage/proto/graph_description.pb.h +) target_proto_addincls(libs-checkpoint_storage-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.darwin-x86_64.txt index b2ae1bcd7663..b83aa27e6a78 100644 --- a/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.darwin-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(libs-checkpoint_storage-proto PUBLIC target_proto_messages(libs-checkpoint_storage-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/proto/graph_description.proto ) +target_sources(libs-checkpoint_storage-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/checkpoint_storage/proto/graph_description.pb.h +) target_proto_addincls(libs-checkpoint_storage-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.linux-aarch64.txt index 568b2ed66f62..dc94745c6571 100644 --- a/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.linux-aarch64.txt @@ -30,6 +30,9 @@ target_link_libraries(libs-checkpoint_storage-proto PUBLIC target_proto_messages(libs-checkpoint_storage-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/proto/graph_description.proto ) +target_sources(libs-checkpoint_storage-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/checkpoint_storage/proto/graph_description.pb.h +) target_proto_addincls(libs-checkpoint_storage-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.linux-x86_64.txt index 568b2ed66f62..dc94745c6571 100644 --- a/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.linux-x86_64.txt @@ -30,6 +30,9 @@ target_link_libraries(libs-checkpoint_storage-proto PUBLIC target_proto_messages(libs-checkpoint_storage-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/proto/graph_description.proto ) +target_sources(libs-checkpoint_storage-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/checkpoint_storage/proto/graph_description.pb.h +) target_proto_addincls(libs-checkpoint_storage-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.windows-x86_64.txt index b2ae1bcd7663..b83aa27e6a78 100644 --- a/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/checkpoint_storage/proto/CMakeLists.windows-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(libs-checkpoint_storage-proto PUBLIC target_proto_messages(libs-checkpoint_storage-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/proto/graph_description.proto ) +target_sources(libs-checkpoint_storage-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/checkpoint_storage/proto/graph_description.pb.h +) target_proto_addincls(libs-checkpoint_storage-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.darwin-arm64.txt index 4f58e8923b92..26f53e4c1462 100644 --- a/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.darwin-arm64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-core-fq-libs-checkpoint_storage-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-checkpoint_storage-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/ut/gc_ut.cpp @@ -65,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.darwin-x86_64.txt index c1bca4ee9751..041c632291e5 100644 --- a/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.darwin-x86_64.txt @@ -32,8 +32,6 @@ target_link_options(ydb-core-fq-libs-checkpoint_storage-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-checkpoint_storage-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/ut/gc_ut.cpp @@ -66,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.linux-aarch64.txt index d498b8f82bf5..6f4a3a7edb63 100644 --- a/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.linux-aarch64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-core-fq-libs-checkpoint_storage-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-checkpoint_storage-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/ut/gc_ut.cpp @@ -69,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.linux-x86_64.txt index 8881dbebf17a..a51d37224ddd 100644 --- a/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.linux-x86_64.txt @@ -35,9 +35,6 @@ target_link_options(ydb-core-fq-libs-checkpoint_storage-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-checkpoint_storage-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpoint_storage/ut/gc_ut.cpp @@ -70,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.windows-x86_64.txt index b384b0f5d99f..4cf1ded81a8b 100644 --- a/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/checkpoint_storage/ut/CMakeLists.windows-x86_64.txt @@ -59,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/checkpointing/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/checkpointing/CMakeLists.darwin-arm64.txt index e2e4a2e77b77..0f62f3be509e 100644 --- a/ydb/core/fq/libs/checkpointing/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/checkpointing/CMakeLists.darwin-arm64.txt @@ -26,6 +26,10 @@ target_link_libraries(fq-libs-checkpointing PUBLIC dq-api-protos ) target_sources(fq-libs-checkpointing PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_coordinator.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_id_generator.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/pending_checkpoint.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/utils.h ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_coordinator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_id_generator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/pending_checkpoint.cpp diff --git a/ydb/core/fq/libs/checkpointing/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/checkpointing/CMakeLists.darwin-x86_64.txt index e2e4a2e77b77..0f62f3be509e 100644 --- a/ydb/core/fq/libs/checkpointing/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/checkpointing/CMakeLists.darwin-x86_64.txt @@ -26,6 +26,10 @@ target_link_libraries(fq-libs-checkpointing PUBLIC dq-api-protos ) target_sources(fq-libs-checkpointing PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_coordinator.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_id_generator.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/pending_checkpoint.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/utils.h ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_coordinator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_id_generator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/pending_checkpoint.cpp diff --git a/ydb/core/fq/libs/checkpointing/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/checkpointing/CMakeLists.linux-aarch64.txt index 5353b351c754..3ba7575f88d9 100644 --- a/ydb/core/fq/libs/checkpointing/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/checkpointing/CMakeLists.linux-aarch64.txt @@ -27,6 +27,10 @@ target_link_libraries(fq-libs-checkpointing PUBLIC dq-api-protos ) target_sources(fq-libs-checkpointing PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_coordinator.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_id_generator.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/pending_checkpoint.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/utils.h ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_coordinator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_id_generator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/pending_checkpoint.cpp diff --git a/ydb/core/fq/libs/checkpointing/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/checkpointing/CMakeLists.linux-x86_64.txt index 5353b351c754..3ba7575f88d9 100644 --- a/ydb/core/fq/libs/checkpointing/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/checkpointing/CMakeLists.linux-x86_64.txt @@ -27,6 +27,10 @@ target_link_libraries(fq-libs-checkpointing PUBLIC dq-api-protos ) target_sources(fq-libs-checkpointing PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_coordinator.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_id_generator.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/pending_checkpoint.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/utils.h ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_coordinator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_id_generator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/pending_checkpoint.cpp diff --git a/ydb/core/fq/libs/checkpointing/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/checkpointing/CMakeLists.windows-x86_64.txt index e2e4a2e77b77..0f62f3be509e 100644 --- a/ydb/core/fq/libs/checkpointing/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/checkpointing/CMakeLists.windows-x86_64.txt @@ -26,6 +26,10 @@ target_link_libraries(fq-libs-checkpointing PUBLIC dq-api-protos ) target_sources(fq-libs-checkpointing PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_coordinator.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_id_generator.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/pending_checkpoint.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/utils.h ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_coordinator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/checkpoint_id_generator.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/pending_checkpoint.cpp diff --git a/ydb/core/fq/libs/checkpointing/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/checkpointing/ut/CMakeLists.darwin-arm64.txt index bf8ee490c33a..8da1322129ad 100644 --- a/ydb/core/fq/libs/checkpointing/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/checkpointing/ut/CMakeLists.darwin-arm64.txt @@ -22,13 +22,12 @@ target_link_libraries(ydb-core-fq-libs-checkpointing-ut PUBLIC cpp-testing-unittest core-testlib-actors testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-core-fq-libs-checkpointing-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-checkpointing-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/ut/checkpoint_coordinator_ut.cpp @@ -58,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/checkpointing/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/checkpointing/ut/CMakeLists.darwin-x86_64.txt index f680e0bab507..ce11c6b10b27 100644 --- a/ydb/core/fq/libs/checkpointing/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/checkpointing/ut/CMakeLists.darwin-x86_64.txt @@ -23,13 +23,12 @@ target_link_libraries(ydb-core-fq-libs-checkpointing-ut PUBLIC cpp-testing-unittest core-testlib-actors testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-core-fq-libs-checkpointing-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-checkpointing-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/ut/checkpoint_coordinator_ut.cpp @@ -59,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/checkpointing/ut/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/checkpointing/ut/CMakeLists.linux-aarch64.txt index 4e06e6e2fc00..a9c1d7d00fd5 100644 --- a/ydb/core/fq/libs/checkpointing/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/checkpointing/ut/CMakeLists.linux-aarch64.txt @@ -23,6 +23,7 @@ target_link_libraries(ydb-core-fq-libs-checkpointing-ut PUBLIC cpp-testing-unittest core-testlib-actors testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-core-fq-libs-checkpointing-ut PRIVATE -ldl @@ -30,9 +31,6 @@ target_link_options(ydb-core-fq-libs-checkpointing-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-checkpointing-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/ut/checkpoint_coordinator_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/checkpointing/ut/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/checkpointing/ut/CMakeLists.linux-x86_64.txt index 9d64108808c6..6b22a8ca6894 100644 --- a/ydb/core/fq/libs/checkpointing/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/checkpointing/ut/CMakeLists.linux-x86_64.txt @@ -24,6 +24,7 @@ target_link_libraries(ydb-core-fq-libs-checkpointing-ut PUBLIC cpp-testing-unittest core-testlib-actors testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-core-fq-libs-checkpointing-ut PRIVATE -ldl @@ -31,9 +32,6 @@ target_link_options(ydb-core-fq-libs-checkpointing-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-checkpointing-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/ut/checkpoint_coordinator_ut.cpp @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/checkpointing/ut/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/checkpointing/ut/CMakeLists.windows-x86_64.txt index 3b0fceb7c6ef..e3cb7b126792 100644 --- a/ydb/core/fq/libs/checkpointing/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/checkpointing/ut/CMakeLists.windows-x86_64.txt @@ -23,6 +23,7 @@ target_link_libraries(ydb-core-fq-libs-checkpointing-ut PUBLIC cpp-testing-unittest core-testlib-actors testlib-basics-default + minikql-comp_nodes-llvm14 ) target_sources(ydb-core-fq-libs-checkpointing-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/checkpointing/ut/checkpoint_coordinator_ut.cpp @@ -52,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/common/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/common/CMakeLists.darwin-arm64.txt index 3f433561b010..9f2bc5e93896 100644 --- a/ydb/core/fq/libs/common/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/common/CMakeLists.darwin-arm64.txt @@ -30,6 +30,10 @@ target_link_libraries(fq-libs-common PUBLIC api-protos ) target_sources(fq-libs-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/compression.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/entity_id.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/rows_proto_splitter.h ${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 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 3f433561b010..9f2bc5e93896 100644 --- a/ydb/core/fq/libs/common/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/common/CMakeLists.darwin-x86_64.txt @@ -30,6 +30,10 @@ target_link_libraries(fq-libs-common PUBLIC api-protos ) target_sources(fq-libs-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/compression.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/entity_id.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/rows_proto_splitter.h ${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 diff --git a/ydb/core/fq/libs/common/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/common/CMakeLists.linux-aarch64.txt index 008f49085bcf..180c0b5585bb 100644 --- a/ydb/core/fq/libs/common/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/common/CMakeLists.linux-aarch64.txt @@ -31,6 +31,10 @@ target_link_libraries(fq-libs-common PUBLIC api-protos ) target_sources(fq-libs-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/compression.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/entity_id.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/rows_proto_splitter.h ${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 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 008f49085bcf..180c0b5585bb 100644 --- a/ydb/core/fq/libs/common/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/common/CMakeLists.linux-x86_64.txt @@ -31,6 +31,10 @@ target_link_libraries(fq-libs-common PUBLIC api-protos ) target_sources(fq-libs-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/compression.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/entity_id.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/rows_proto_splitter.h ${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 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 3f433561b010..9f2bc5e93896 100644 --- a/ydb/core/fq/libs/common/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/common/CMakeLists.windows-x86_64.txt @@ -30,6 +30,10 @@ target_link_libraries(fq-libs-common PUBLIC api-protos ) target_sources(fq-libs-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/compression.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/entity_id.h + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/rows_proto_splitter.h ${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 diff --git a/ydb/core/fq/libs/common/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/common/ut/CMakeLists.darwin-arm64.txt index 0bae2a0e64c9..1e7d228ec20a 100644 --- a/ydb/core/fq/libs/common/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/common/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-fq-libs-common-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/cache_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/common/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/common/ut/CMakeLists.darwin-x86_64.txt index caf6cbb853c6..e70e53b30b60 100644 --- a/ydb/core/fq/libs/common/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/common/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-fq-libs-common-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/cache_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/common/ut/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/common/ut/CMakeLists.linux-aarch64.txt index 6fa8cbdffe49..f36f47acf609 100644 --- a/ydb/core/fq/libs/common/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/common/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-fq-libs-common-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/cache_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/common/ut/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/common/ut/CMakeLists.linux-x86_64.txt index b8e15f89df3e..06884b157d56 100644 --- a/ydb/core/fq/libs/common/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/common/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-fq-libs-common-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/common/cache_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/common/ut/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/common/ut/CMakeLists.windows-x86_64.txt index 1f681d45effb..368c906303c8 100644 --- a/ydb/core/fq/libs/common/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/common/ut/CMakeLists.windows-x86_64.txt @@ -55,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/compute/common/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/compute/common/ut/CMakeLists.darwin-arm64.txt index a0d043868710..dccf426e2476 100644 --- a/ydb/core/fq/libs/compute/common/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/compute/common/ut/CMakeLists.darwin-arm64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-core-fq-libs-compute-common-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-compute-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/common/ut/config_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/compute/common/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/compute/common/ut/CMakeLists.darwin-x86_64.txt index 9971099bf195..6e4ea6c151b0 100644 --- a/ydb/core/fq/libs/compute/common/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/compute/common/ut/CMakeLists.darwin-x86_64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-core-fq-libs-compute-common-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-compute-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/common/ut/config_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/compute/common/ut/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/compute/common/ut/CMakeLists.linux-aarch64.txt index 71085a1b10f7..071af7528a3c 100644 --- a/ydb/core/fq/libs/compute/common/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/compute/common/ut/CMakeLists.linux-aarch64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-core-fq-libs-compute-common-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-compute-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/common/ut/config_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/compute/common/ut/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/compute/common/ut/CMakeLists.linux-x86_64.txt index 41bb55c7ba29..39efea058f95 100644 --- a/ydb/core/fq/libs/compute/common/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/compute/common/ut/CMakeLists.linux-x86_64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-core-fq-libs-compute-common-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-compute-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/common/ut/config_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/compute/common/ut/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/compute/common/ut/CMakeLists.windows-x86_64.txt index 587644432083..da4957865be2 100644 --- a/ydb/core/fq/libs/compute/common/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/compute/common/ut/CMakeLists.windows-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.darwin-arm64.txt index ff859935b9b1..20a3643fc91d 100644 --- a/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/compute/ydb/control_plane/CMakeLists.darwin-arm64.txt @@ -30,5 +30,7 @@ target_sources(compute-ydb-control_plane PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/cms_grpc_client_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/compute_databases_cache.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/database_monitoring.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/monitoring_grpc_client_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/ydbcp_grpc_client_actor.cpp ) 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 ff859935b9b1..20a3643fc91d 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 @@ -30,5 +30,7 @@ target_sources(compute-ydb-control_plane PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/cms_grpc_client_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/compute_databases_cache.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/database_monitoring.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/monitoring_grpc_client_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/ydbcp_grpc_client_actor.cpp ) 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 e57ea9e9ab52..1e7e69d75c02 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 @@ -31,5 +31,7 @@ target_sources(compute-ydb-control_plane PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/cms_grpc_client_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/compute_databases_cache.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/database_monitoring.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/monitoring_grpc_client_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/ydbcp_grpc_client_actor.cpp ) 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 e57ea9e9ab52..1e7e69d75c02 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 @@ -31,5 +31,7 @@ target_sources(compute-ydb-control_plane PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/cms_grpc_client_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/compute_databases_cache.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/database_monitoring.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/monitoring_grpc_client_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/ydbcp_grpc_client_actor.cpp ) 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 ff859935b9b1..20a3643fc91d 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 @@ -30,5 +30,7 @@ target_sources(compute-ydb-control_plane PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/cms_grpc_client_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/compute_database_control_plane_service.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/compute_databases_cache.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/database_monitoring.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/monitoring_grpc_client_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/compute/ydb/control_plane/ydbcp_grpc_client_actor.cpp ) diff --git a/ydb/core/fq/libs/config/protos/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/config/protos/CMakeLists.darwin-arm64.txt index af844d5199ba..59b1451c88ee 100644 --- a/ydb/core/fq/libs/config/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/config/protos/CMakeLists.darwin-arm64.txt @@ -331,6 +331,32 @@ target_proto_messages(libs-config-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/test_connection.proto ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/token_accessor.proto ) +target_sources(libs-config-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/activation.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/audit.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/checkpoint_coordinator.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/common.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/compute.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/control_plane_proxy.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/control_plane_storage.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/db_pool.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/fq_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/gateways.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/health_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/issue_id.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/nodes_manager.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/pending_fetcher.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/pinger.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/private_api.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/private_proxy.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/quotas_manager.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/rate_limiter.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/read_actors_factory.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/resource_manager.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/storage.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/test_connection.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/token_accessor.pb.h +) target_proto_addincls(libs-config-protos ./ ${CMAKE_SOURCE_DIR}/ 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 af844d5199ba..59b1451c88ee 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 @@ -331,6 +331,32 @@ target_proto_messages(libs-config-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/test_connection.proto ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/token_accessor.proto ) +target_sources(libs-config-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/activation.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/audit.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/checkpoint_coordinator.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/common.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/compute.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/control_plane_proxy.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/control_plane_storage.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/db_pool.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/fq_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/gateways.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/health_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/issue_id.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/nodes_manager.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/pending_fetcher.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/pinger.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/private_api.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/private_proxy.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/quotas_manager.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/rate_limiter.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/read_actors_factory.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/resource_manager.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/storage.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/test_connection.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/token_accessor.pb.h +) target_proto_addincls(libs-config-protos ./ ${CMAKE_SOURCE_DIR}/ 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 494977cd87e1..9f31747030b2 100644 --- a/ydb/core/fq/libs/config/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/config/protos/CMakeLists.linux-aarch64.txt @@ -332,6 +332,32 @@ target_proto_messages(libs-config-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/test_connection.proto ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/token_accessor.proto ) +target_sources(libs-config-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/activation.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/audit.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/checkpoint_coordinator.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/common.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/compute.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/control_plane_proxy.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/control_plane_storage.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/db_pool.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/fq_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/gateways.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/health_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/issue_id.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/nodes_manager.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/pending_fetcher.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/pinger.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/private_api.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/private_proxy.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/quotas_manager.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/rate_limiter.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/read_actors_factory.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/resource_manager.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/storage.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/test_connection.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/token_accessor.pb.h +) target_proto_addincls(libs-config-protos ./ ${CMAKE_SOURCE_DIR}/ 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 494977cd87e1..9f31747030b2 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 @@ -332,6 +332,32 @@ target_proto_messages(libs-config-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/test_connection.proto ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/token_accessor.proto ) +target_sources(libs-config-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/activation.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/audit.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/checkpoint_coordinator.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/common.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/compute.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/control_plane_proxy.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/control_plane_storage.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/db_pool.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/fq_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/gateways.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/health_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/issue_id.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/nodes_manager.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/pending_fetcher.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/pinger.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/private_api.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/private_proxy.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/quotas_manager.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/rate_limiter.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/read_actors_factory.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/resource_manager.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/storage.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/test_connection.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/token_accessor.pb.h +) target_proto_addincls(libs-config-protos ./ ${CMAKE_SOURCE_DIR}/ 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 af844d5199ba..59b1451c88ee 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 @@ -331,6 +331,32 @@ target_proto_messages(libs-config-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/test_connection.proto ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/config/protos/token_accessor.proto ) +target_sources(libs-config-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/activation.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/audit.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/checkpoint_coordinator.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/common.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/compute.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/control_plane_proxy.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/control_plane_storage.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/db_pool.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/fq_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/gateways.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/health_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/issue_id.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/nodes_manager.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/pending_fetcher.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/pinger.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/private_api.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/private_proxy.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/quotas_manager.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/rate_limiter.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/read_actors_factory.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/resource_manager.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/storage.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/test_connection.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/config/protos/token_accessor.pb.h +) target_proto_addincls(libs-config-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.darwin-arm64.txt index 2d8f5b7c89bd..ce7cd24281a4 100644 --- a/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.darwin-arm64.txt @@ -34,8 +34,6 @@ target_link_options(ydb-core-fq-libs-control_plane_proxy-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-control_plane_proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/ut/control_plane_proxy_ut.cpp @@ -65,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.darwin-x86_64.txt index f0233522fe2e..6fced308b4c4 100644 --- a/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.darwin-x86_64.txt @@ -35,8 +35,6 @@ target_link_options(ydb-core-fq-libs-control_plane_proxy-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-control_plane_proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/ut/control_plane_proxy_ut.cpp @@ -66,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.linux-aarch64.txt index 7cf6780bc847..9735ff8f34ea 100644 --- a/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.linux-aarch64.txt @@ -37,9 +37,6 @@ target_link_options(ydb-core-fq-libs-control_plane_proxy-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-control_plane_proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/ut/control_plane_proxy_ut.cpp @@ -69,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.linux-x86_64.txt index e59c8cbdb52b..cbf9e6f81096 100644 --- a/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.linux-x86_64.txt @@ -38,9 +38,6 @@ target_link_options(ydb-core-fq-libs-control_plane_proxy-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-control_plane_proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_proxy/ut/control_plane_proxy_ut.cpp @@ -70,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.windows-x86_64.txt index fdc1a06c29da..9b49b658db48 100644 --- a/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/control_plane_proxy/ut/CMakeLists.windows-x86_64.txt @@ -59,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.darwin-arm64.txt index 713689d16d38..b7f978579da8 100644 --- a/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.darwin-arm64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) add_library(libs-control_plane_storage-internal) target_compile_options(libs-control_plane_storage-internal PRIVATE @@ -14,6 +15,7 @@ target_compile_options(libs-control_plane_storage-internal PRIVATE target_link_libraries(libs-control_plane_storage-internal PUBLIC contrib-libs-cxxsupp yutil + contrib-libs-fmt library-actors-core cpp-lwtrace-mon monlib-service-pages diff --git a/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.darwin-x86_64.txt index 713689d16d38..b7f978579da8 100644 --- a/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.darwin-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) add_library(libs-control_plane_storage-internal) target_compile_options(libs-control_plane_storage-internal PRIVATE @@ -14,6 +15,7 @@ target_compile_options(libs-control_plane_storage-internal PRIVATE target_link_libraries(libs-control_plane_storage-internal PUBLIC contrib-libs-cxxsupp yutil + contrib-libs-fmt library-actors-core cpp-lwtrace-mon monlib-service-pages diff --git a/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.linux-aarch64.txt index a583ef2667b3..326139f8cde5 100644 --- a/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.linux-aarch64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) add_library(libs-control_plane_storage-internal) target_compile_options(libs-control_plane_storage-internal PRIVATE @@ -15,6 +16,7 @@ target_link_libraries(libs-control_plane_storage-internal PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + contrib-libs-fmt library-actors-core cpp-lwtrace-mon monlib-service-pages diff --git a/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.linux-x86_64.txt index a583ef2667b3..326139f8cde5 100644 --- a/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.linux-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) add_library(libs-control_plane_storage-internal) target_compile_options(libs-control_plane_storage-internal PRIVATE @@ -15,6 +16,7 @@ target_link_libraries(libs-control_plane_storage-internal PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + contrib-libs-fmt library-actors-core cpp-lwtrace-mon monlib-service-pages diff --git a/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.windows-x86_64.txt index 713689d16d38..b7f978579da8 100644 --- a/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/control_plane_storage/internal/CMakeLists.windows-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) add_library(libs-control_plane_storage-internal) target_compile_options(libs-control_plane_storage-internal PRIVATE @@ -14,6 +15,7 @@ target_compile_options(libs-control_plane_storage-internal PRIVATE target_link_libraries(libs-control_plane_storage-internal PUBLIC contrib-libs-cxxsupp yutil + contrib-libs-fmt library-actors-core cpp-lwtrace-mon monlib-service-pages diff --git a/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..9b10f9f1e926 --- /dev/null +++ b/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.darwin-arm64.txt @@ -0,0 +1,96 @@ + +# 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_rescompiler_bin + TOOL_rescompiler_dependency + tools/rescompiler/bin + rescompiler +) + +add_executable(core-fq-libs-control_plane_storage-internal-ut) +target_compile_options(core-fq-libs-control_plane_storage-internal-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(core-fq-libs-control_plane_storage-internal-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal +) +target_link_libraries(core-fq-libs-control_plane_storage-internal-ut PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + libs-control_plane_storage-internal + cpp-testing-unittest + cpp-json-yson + udf-service-stub + library-cpp-resource +) +target_link_options(core-fq-libs-control_plane_storage-internal-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(core-fq-libs-control_plane_storage-internal-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/utils_ut.cpp + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/047a4c3f0575d8af7f0dc67f808daaba.cpp +) +set_property( + TARGET + core-fq-libs-control_plane_storage-internal-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + core-fq-libs-control_plane_storage-internal-ut + TEST_TARGET + core-fq-libs-control_plane_storage-internal-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + core-fq-libs-control_plane_storage-internal-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + core-fq-libs-control_plane_storage-internal-ut + PROPERTY + PROCESSORS + 1 +) +resources(core-fq-libs-control_plane_storage-internal-ut + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/047a4c3f0575d8af7f0dc67f808daaba.cpp + INPUTS + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v1_output.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v2_output.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v1_s3source.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v2_s3source.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v1_two_results.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v2_two_results.json + KEYS + v1_output.json + v2_output.json + v1_s3source.json + v2_s3source.json + v1_two_results.json + v2_two_results.json +) +target_allocator(core-fq-libs-control_plane_storage-internal-ut + system_allocator +) +vcs_info(core-fq-libs-control_plane_storage-internal-ut) diff --git a/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..298873f4cc0f --- /dev/null +++ b/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,97 @@ + +# 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_rescompiler_bin + TOOL_rescompiler_dependency + tools/rescompiler/bin + rescompiler +) + +add_executable(core-fq-libs-control_plane_storage-internal-ut) +target_compile_options(core-fq-libs-control_plane_storage-internal-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(core-fq-libs-control_plane_storage-internal-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal +) +target_link_libraries(core-fq-libs-control_plane_storage-internal-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + libs-control_plane_storage-internal + cpp-testing-unittest + cpp-json-yson + udf-service-stub + library-cpp-resource +) +target_link_options(core-fq-libs-control_plane_storage-internal-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(core-fq-libs-control_plane_storage-internal-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/utils_ut.cpp + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/047a4c3f0575d8af7f0dc67f808daaba.cpp +) +set_property( + TARGET + core-fq-libs-control_plane_storage-internal-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + core-fq-libs-control_plane_storage-internal-ut + TEST_TARGET + core-fq-libs-control_plane_storage-internal-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + core-fq-libs-control_plane_storage-internal-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + core-fq-libs-control_plane_storage-internal-ut + PROPERTY + PROCESSORS + 1 +) +resources(core-fq-libs-control_plane_storage-internal-ut + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/047a4c3f0575d8af7f0dc67f808daaba.cpp + INPUTS + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v1_output.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v2_output.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v1_s3source.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v2_s3source.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v1_two_results.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v2_two_results.json + KEYS + v1_output.json + v2_output.json + v1_s3source.json + v2_s3source.json + v1_two_results.json + v2_two_results.json +) +target_allocator(core-fq-libs-control_plane_storage-internal-ut + system_allocator +) +vcs_info(core-fq-libs-control_plane_storage-internal-ut) diff --git a/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..13de4e657a12 --- /dev/null +++ b/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.linux-aarch64.txt @@ -0,0 +1,99 @@ + +# 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_rescompiler_bin + TOOL_rescompiler_dependency + tools/rescompiler/bin + rescompiler +) + +add_executable(core-fq-libs-control_plane_storage-internal-ut) +target_compile_options(core-fq-libs-control_plane_storage-internal-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(core-fq-libs-control_plane_storage-internal-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal +) +target_link_libraries(core-fq-libs-control_plane_storage-internal-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + libs-control_plane_storage-internal + cpp-testing-unittest + cpp-json-yson + udf-service-stub + library-cpp-resource +) +target_link_options(core-fq-libs-control_plane_storage-internal-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(core-fq-libs-control_plane_storage-internal-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/utils_ut.cpp + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/047a4c3f0575d8af7f0dc67f808daaba.cpp +) +set_property( + TARGET + core-fq-libs-control_plane_storage-internal-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + core-fq-libs-control_plane_storage-internal-ut + TEST_TARGET + core-fq-libs-control_plane_storage-internal-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + core-fq-libs-control_plane_storage-internal-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + core-fq-libs-control_plane_storage-internal-ut + PROPERTY + PROCESSORS + 1 +) +resources(core-fq-libs-control_plane_storage-internal-ut + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/047a4c3f0575d8af7f0dc67f808daaba.cpp + INPUTS + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v1_output.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v2_output.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v1_s3source.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v2_s3source.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v1_two_results.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v2_two_results.json + KEYS + v1_output.json + v2_output.json + v1_s3source.json + v2_s3source.json + v1_two_results.json + v2_two_results.json +) +target_allocator(core-fq-libs-control_plane_storage-internal-ut + cpp-malloc-jemalloc +) +vcs_info(core-fq-libs-control_plane_storage-internal-ut) diff --git a/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..7d4256f0de43 --- /dev/null +++ b/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.linux-x86_64.txt @@ -0,0 +1,101 @@ + +# 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_rescompiler_bin + TOOL_rescompiler_dependency + tools/rescompiler/bin + rescompiler +) + +add_executable(core-fq-libs-control_plane_storage-internal-ut) +target_compile_options(core-fq-libs-control_plane_storage-internal-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(core-fq-libs-control_plane_storage-internal-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal +) +target_link_libraries(core-fq-libs-control_plane_storage-internal-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + libs-control_plane_storage-internal + cpp-testing-unittest + cpp-json-yson + udf-service-stub + library-cpp-resource +) +target_link_options(core-fq-libs-control_plane_storage-internal-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(core-fq-libs-control_plane_storage-internal-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/utils_ut.cpp + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/047a4c3f0575d8af7f0dc67f808daaba.cpp +) +set_property( + TARGET + core-fq-libs-control_plane_storage-internal-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + core-fq-libs-control_plane_storage-internal-ut + TEST_TARGET + core-fq-libs-control_plane_storage-internal-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + core-fq-libs-control_plane_storage-internal-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + core-fq-libs-control_plane_storage-internal-ut + PROPERTY + PROCESSORS + 1 +) +resources(core-fq-libs-control_plane_storage-internal-ut + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/047a4c3f0575d8af7f0dc67f808daaba.cpp + INPUTS + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v1_output.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v2_output.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v1_s3source.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v2_s3source.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v1_two_results.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v2_two_results.json + KEYS + v1_output.json + v2_output.json + v1_s3source.json + v2_s3source.json + v1_two_results.json + v2_two_results.json +) +target_allocator(core-fq-libs-control_plane_storage-internal-ut + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(core-fq-libs-control_plane_storage-internal-ut) diff --git a/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.txt b/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..4142e4d8ad32 --- /dev/null +++ b/ydb/core/fq/libs/control_plane_storage/internal/ut/CMakeLists.windows-x86_64.txt @@ -0,0 +1,92 @@ + +# 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_rescompiler_bin + TOOL_rescompiler_dependency + tools/rescompiler/bin + rescompiler +) + +add_executable(core-fq-libs-control_plane_storage-internal-ut) +target_compile_options(core-fq-libs-control_plane_storage-internal-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(core-fq-libs-control_plane_storage-internal-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal +) +target_link_libraries(core-fq-libs-control_plane_storage-internal-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + libs-control_plane_storage-internal + cpp-testing-unittest + cpp-json-yson + udf-service-stub + library-cpp-resource +) +target_sources(core-fq-libs-control_plane_storage-internal-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/utils_ut.cpp + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/047a4c3f0575d8af7f0dc67f808daaba.cpp +) +set_property( + TARGET + core-fq-libs-control_plane_storage-internal-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + core-fq-libs-control_plane_storage-internal-ut + TEST_TARGET + core-fq-libs-control_plane_storage-internal-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + core-fq-libs-control_plane_storage-internal-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + core-fq-libs-control_plane_storage-internal-ut + PROPERTY + PROCESSORS + 1 +) +resources(core-fq-libs-control_plane_storage-internal-ut + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/047a4c3f0575d8af7f0dc67f808daaba.cpp + INPUTS + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v1_output.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v2_output.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v1_s3source.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v2_s3source.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v1_two_results.json + ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/internal/ut/resources/v2_two_results.json + KEYS + v1_output.json + v2_output.json + v1_s3source.json + v2_s3source.json + v1_two_results.json + v2_two_results.json +) +target_allocator(core-fq-libs-control_plane_storage-internal-ut + system_allocator +) +vcs_info(core-fq-libs-control_plane_storage-internal-ut) diff --git a/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.darwin-arm64.txt index 5a1066883e27..ea6d1586403a 100644 --- a/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.darwin-arm64.txt @@ -32,6 +32,9 @@ target_link_libraries(libs-control_plane_storage-proto PUBLIC target_proto_messages(libs-control_plane_storage-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/proto/yq_internal.proto ) +target_sources(libs-control_plane_storage-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/control_plane_storage/proto/yq_internal.pb.h +) target_proto_addincls(libs-control_plane_storage-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.darwin-x86_64.txt index 5a1066883e27..ea6d1586403a 100644 --- a/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.darwin-x86_64.txt @@ -32,6 +32,9 @@ target_link_libraries(libs-control_plane_storage-proto PUBLIC target_proto_messages(libs-control_plane_storage-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/proto/yq_internal.proto ) +target_sources(libs-control_plane_storage-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/control_plane_storage/proto/yq_internal.pb.h +) target_proto_addincls(libs-control_plane_storage-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.linux-aarch64.txt index bb39142ed7de..6bd25c8dad11 100644 --- a/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.linux-aarch64.txt @@ -33,6 +33,9 @@ target_link_libraries(libs-control_plane_storage-proto PUBLIC target_proto_messages(libs-control_plane_storage-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/proto/yq_internal.proto ) +target_sources(libs-control_plane_storage-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/control_plane_storage/proto/yq_internal.pb.h +) target_proto_addincls(libs-control_plane_storage-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.linux-x86_64.txt index bb39142ed7de..6bd25c8dad11 100644 --- a/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.linux-x86_64.txt @@ -33,6 +33,9 @@ target_link_libraries(libs-control_plane_storage-proto PUBLIC target_proto_messages(libs-control_plane_storage-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/proto/yq_internal.proto ) +target_sources(libs-control_plane_storage-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/control_plane_storage/proto/yq_internal.pb.h +) target_proto_addincls(libs-control_plane_storage-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.windows-x86_64.txt index 5a1066883e27..ea6d1586403a 100644 --- a/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/control_plane_storage/proto/CMakeLists.windows-x86_64.txt @@ -32,6 +32,9 @@ target_link_libraries(libs-control_plane_storage-proto PUBLIC target_proto_messages(libs-control_plane_storage-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/control_plane_storage/proto/yq_internal.proto ) +target_sources(libs-control_plane_storage-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/control_plane_storage/proto/yq_internal.pb.h +) target_proto_addincls(libs-control_plane_storage-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.darwin-arm64.txt index d7bb6bfd911c..6e00631ff5b0 100644 --- a/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.darwin-arm64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-core-fq-libs-db_id_async_resolver_impl-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-db_id_async_resolver_impl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/db_id_async_resolver_impl/ut/mdb_endpoint_generator_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.darwin-x86_64.txt index d125d17a9f07..b18c983cad47 100644 --- a/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.darwin-x86_64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-core-fq-libs-db_id_async_resolver_impl-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-db_id_async_resolver_impl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/db_id_async_resolver_impl/ut/mdb_endpoint_generator_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.linux-aarch64.txt index d62845533b7b..eba4b7bd83b6 100644 --- a/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-core-fq-libs-db_id_async_resolver_impl-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-db_id_async_resolver_impl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/db_id_async_resolver_impl/ut/mdb_endpoint_generator_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.linux-x86_64.txt index 6b2a81ddaab0..86e4d25185f6 100644 --- a/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-core-fq-libs-db_id_async_resolver_impl-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-db_id_async_resolver_impl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/db_id_async_resolver_impl/ut/mdb_endpoint_generator_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.windows-x86_64.txt index 81eee6368f96..654f6acc8c5f 100644 --- a/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/db_id_async_resolver_impl/ut/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/graph_params/proto/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/graph_params/proto/CMakeLists.darwin-arm64.txt index cef8ac1b3867..30fc69724b19 100644 --- a/ydb/core/fq/libs/graph_params/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/graph_params/proto/CMakeLists.darwin-arm64.txt @@ -30,6 +30,9 @@ target_link_libraries(libs-graph_params-proto PUBLIC target_proto_messages(libs-graph_params-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/graph_params/proto/graph_params.proto ) +target_sources(libs-graph_params-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/graph_params/proto/graph_params.pb.h +) target_proto_addincls(libs-graph_params-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/graph_params/proto/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/graph_params/proto/CMakeLists.darwin-x86_64.txt index cef8ac1b3867..30fc69724b19 100644 --- a/ydb/core/fq/libs/graph_params/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/graph_params/proto/CMakeLists.darwin-x86_64.txt @@ -30,6 +30,9 @@ target_link_libraries(libs-graph_params-proto PUBLIC target_proto_messages(libs-graph_params-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/graph_params/proto/graph_params.proto ) +target_sources(libs-graph_params-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/graph_params/proto/graph_params.pb.h +) target_proto_addincls(libs-graph_params-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/graph_params/proto/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/graph_params/proto/CMakeLists.linux-aarch64.txt index e171a7e6f026..c1630844705a 100644 --- a/ydb/core/fq/libs/graph_params/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/graph_params/proto/CMakeLists.linux-aarch64.txt @@ -31,6 +31,9 @@ target_link_libraries(libs-graph_params-proto PUBLIC target_proto_messages(libs-graph_params-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/graph_params/proto/graph_params.proto ) +target_sources(libs-graph_params-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/graph_params/proto/graph_params.pb.h +) target_proto_addincls(libs-graph_params-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/graph_params/proto/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/graph_params/proto/CMakeLists.linux-x86_64.txt index e171a7e6f026..c1630844705a 100644 --- a/ydb/core/fq/libs/graph_params/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/graph_params/proto/CMakeLists.linux-x86_64.txt @@ -31,6 +31,9 @@ target_link_libraries(libs-graph_params-proto PUBLIC target_proto_messages(libs-graph_params-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/graph_params/proto/graph_params.proto ) +target_sources(libs-graph_params-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/graph_params/proto/graph_params.pb.h +) target_proto_addincls(libs-graph_params-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/graph_params/proto/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/graph_params/proto/CMakeLists.windows-x86_64.txt index cef8ac1b3867..30fc69724b19 100644 --- a/ydb/core/fq/libs/graph_params/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/graph_params/proto/CMakeLists.windows-x86_64.txt @@ -30,6 +30,9 @@ target_link_libraries(libs-graph_params-proto PUBLIC target_proto_messages(libs-graph_params-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/graph_params/proto/graph_params.proto ) +target_sources(libs-graph_params-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/graph_params/proto/graph_params.pb.h +) target_proto_addincls(libs-graph_params-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/grpc/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/grpc/CMakeLists.darwin-arm64.txt index 7c8a43428f86..d28cd3607496 100644 --- a/ydb/core/fq/libs/grpc/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/grpc/CMakeLists.darwin-arm64.txt @@ -40,6 +40,10 @@ target_link_libraries(fq-libs-grpc PUBLIC target_proto_messages(fq-libs-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.proto ) +target_sources(fq-libs-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.grpc.pb.h +) target_proto_addincls(fq-libs-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/grpc/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/grpc/CMakeLists.darwin-x86_64.txt index 7c8a43428f86..d28cd3607496 100644 --- a/ydb/core/fq/libs/grpc/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/grpc/CMakeLists.darwin-x86_64.txt @@ -40,6 +40,10 @@ target_link_libraries(fq-libs-grpc PUBLIC target_proto_messages(fq-libs-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.proto ) +target_sources(fq-libs-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.grpc.pb.h +) target_proto_addincls(fq-libs-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/grpc/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/grpc/CMakeLists.linux-aarch64.txt index 4d879be523eb..0faca62ff1b6 100644 --- a/ydb/core/fq/libs/grpc/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/grpc/CMakeLists.linux-aarch64.txt @@ -41,6 +41,10 @@ target_link_libraries(fq-libs-grpc PUBLIC target_proto_messages(fq-libs-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.proto ) +target_sources(fq-libs-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.grpc.pb.h +) target_proto_addincls(fq-libs-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/grpc/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/grpc/CMakeLists.linux-x86_64.txt index 4d879be523eb..0faca62ff1b6 100644 --- a/ydb/core/fq/libs/grpc/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/grpc/CMakeLists.linux-x86_64.txt @@ -41,6 +41,10 @@ target_link_libraries(fq-libs-grpc PUBLIC target_proto_messages(fq-libs-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.proto ) +target_sources(fq-libs-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.grpc.pb.h +) target_proto_addincls(fq-libs-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/grpc/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/grpc/CMakeLists.windows-x86_64.txt index 7c8a43428f86..d28cd3607496 100644 --- a/ydb/core/fq/libs/grpc/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/grpc/CMakeLists.windows-x86_64.txt @@ -40,6 +40,10 @@ target_link_libraries(fq-libs-grpc PUBLIC target_proto_messages(fq-libs-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.proto ) +target_sources(fq-libs-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/grpc/fq_private_v1.grpc.pb.h +) target_proto_addincls(fq-libs-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/hmac/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/hmac/ut/CMakeLists.darwin-arm64.txt index 1e3adcf67e35..3bca9a23d552 100644 --- a/ydb/core/fq/libs/hmac/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/hmac/ut/CMakeLists.darwin-arm64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/hmac/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/hmac/ut/CMakeLists.darwin-x86_64.txt index 16986de71998..b2e90c72e0fd 100644 --- a/ydb/core/fq/libs/hmac/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/hmac/ut/CMakeLists.darwin-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/hmac/ut/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/hmac/ut/CMakeLists.linux-aarch64.txt index 6e5db5855c4c..d8f7165b3c24 100644 --- a/ydb/core/fq/libs/hmac/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/hmac/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-core-fq-libs-hmac-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-hmac-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/hmac/ut/hmac_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/hmac/ut/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/hmac/ut/CMakeLists.linux-x86_64.txt index e48cc51a1f9e..3d5661d748a0 100644 --- a/ydb/core/fq/libs/hmac/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/hmac/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-core-fq-libs-hmac-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-hmac-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/hmac/ut/hmac_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/hmac/ut/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/hmac/ut/CMakeLists.windows-x86_64.txt index 90eaf618f48c..ae64989c61c3 100644 --- a/ydb/core/fq/libs/hmac/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/hmac/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/init/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/init/CMakeLists.darwin-arm64.txt index a2a9c2082b84..a96f9e28bf94 100644 --- a/ydb/core/fq/libs/init/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/init/CMakeLists.darwin-arm64.txt @@ -39,7 +39,7 @@ target_link_libraries(fq-libs-init PUBLIC ydb-library-folder_service library-folder_service-proto ydb-library-security - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-utils-actor_log dq-actors-compute yql-dq-comp_nodes diff --git a/ydb/core/fq/libs/init/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/init/CMakeLists.darwin-x86_64.txt index a2a9c2082b84..a96f9e28bf94 100644 --- a/ydb/core/fq/libs/init/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/init/CMakeLists.darwin-x86_64.txt @@ -39,7 +39,7 @@ target_link_libraries(fq-libs-init PUBLIC ydb-library-folder_service library-folder_service-proto ydb-library-security - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-utils-actor_log dq-actors-compute yql-dq-comp_nodes diff --git a/ydb/core/fq/libs/init/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/init/CMakeLists.linux-aarch64.txt index 3fcb18a6f620..9ab5ed646d3b 100644 --- a/ydb/core/fq/libs/init/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/init/CMakeLists.linux-aarch64.txt @@ -40,7 +40,7 @@ target_link_libraries(fq-libs-init PUBLIC ydb-library-folder_service library-folder_service-proto ydb-library-security - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-utils-actor_log dq-actors-compute yql-dq-comp_nodes diff --git a/ydb/core/fq/libs/init/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/init/CMakeLists.linux-x86_64.txt index 3fcb18a6f620..9ab5ed646d3b 100644 --- a/ydb/core/fq/libs/init/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/init/CMakeLists.linux-x86_64.txt @@ -40,7 +40,7 @@ target_link_libraries(fq-libs-init PUBLIC ydb-library-folder_service library-folder_service-proto ydb-library-security - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-utils-actor_log dq-actors-compute yql-dq-comp_nodes diff --git a/ydb/core/fq/libs/init/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/init/CMakeLists.windows-x86_64.txt index a2a9c2082b84..a96f9e28bf94 100644 --- a/ydb/core/fq/libs/init/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/init/CMakeLists.windows-x86_64.txt @@ -39,7 +39,7 @@ target_link_libraries(fq-libs-init PUBLIC ydb-library-folder_service library-folder_service-proto ydb-library-security - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-utils-actor_log dq-actors-compute yql-dq-comp_nodes diff --git a/ydb/core/fq/libs/mock/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/mock/CMakeLists.darwin-arm64.txt index 81bafdb5dde0..24204667af2e 100644 --- a/ydb/core/fq/libs/mock/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/mock/CMakeLists.darwin-arm64.txt @@ -32,7 +32,7 @@ target_link_libraries(fq-libs-mock PUBLIC yql-core-facade core-services-mounts dq-integration-transform - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-clickhouse-provider providers-common-codec providers-common-comp_nodes diff --git a/ydb/core/fq/libs/mock/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/mock/CMakeLists.darwin-x86_64.txt index 81bafdb5dde0..24204667af2e 100644 --- a/ydb/core/fq/libs/mock/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/mock/CMakeLists.darwin-x86_64.txt @@ -32,7 +32,7 @@ target_link_libraries(fq-libs-mock PUBLIC yql-core-facade core-services-mounts dq-integration-transform - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-clickhouse-provider providers-common-codec providers-common-comp_nodes diff --git a/ydb/core/fq/libs/mock/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/mock/CMakeLists.linux-aarch64.txt index 927b79c875ae..5df8c803bdc4 100644 --- a/ydb/core/fq/libs/mock/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/mock/CMakeLists.linux-aarch64.txt @@ -33,7 +33,7 @@ target_link_libraries(fq-libs-mock PUBLIC yql-core-facade core-services-mounts dq-integration-transform - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-clickhouse-provider providers-common-codec providers-common-comp_nodes diff --git a/ydb/core/fq/libs/mock/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/mock/CMakeLists.linux-x86_64.txt index 927b79c875ae..5df8c803bdc4 100644 --- a/ydb/core/fq/libs/mock/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/mock/CMakeLists.linux-x86_64.txt @@ -33,7 +33,7 @@ target_link_libraries(fq-libs-mock PUBLIC yql-core-facade core-services-mounts dq-integration-transform - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-clickhouse-provider providers-common-codec providers-common-comp_nodes diff --git a/ydb/core/fq/libs/mock/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/mock/CMakeLists.windows-x86_64.txt index 81bafdb5dde0..24204667af2e 100644 --- a/ydb/core/fq/libs/mock/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/mock/CMakeLists.windows-x86_64.txt @@ -32,7 +32,7 @@ target_link_libraries(fq-libs-mock PUBLIC yql-core-facade core-services-mounts dq-integration-transform - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-clickhouse-provider providers-common-codec providers-common-comp_nodes diff --git a/ydb/core/fq/libs/protos/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/protos/CMakeLists.darwin-arm64.txt index 7e39a3f60b17..7804d00dfba6 100644 --- a/ydb/core/fq/libs/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/protos/CMakeLists.darwin-arm64.txt @@ -44,6 +44,10 @@ target_proto_messages(fq-libs-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/protos/dq_effects.proto ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/protos/fq_private.proto ) +target_sources(fq-libs-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/protos/dq_effects.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/protos/fq_private.pb.h +) target_proto_addincls(fq-libs-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/protos/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/protos/CMakeLists.darwin-x86_64.txt index 7e39a3f60b17..7804d00dfba6 100644 --- a/ydb/core/fq/libs/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/protos/CMakeLists.darwin-x86_64.txt @@ -44,6 +44,10 @@ target_proto_messages(fq-libs-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/protos/dq_effects.proto ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/protos/fq_private.proto ) +target_sources(fq-libs-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/protos/dq_effects.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/protos/fq_private.pb.h +) target_proto_addincls(fq-libs-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/protos/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/protos/CMakeLists.linux-aarch64.txt index 4ebf71e37649..a20c0dde710c 100644 --- a/ydb/core/fq/libs/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/protos/CMakeLists.linux-aarch64.txt @@ -45,6 +45,10 @@ target_proto_messages(fq-libs-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/protos/dq_effects.proto ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/protos/fq_private.proto ) +target_sources(fq-libs-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/protos/dq_effects.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/protos/fq_private.pb.h +) target_proto_addincls(fq-libs-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/protos/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/protos/CMakeLists.linux-x86_64.txt index 4ebf71e37649..a20c0dde710c 100644 --- a/ydb/core/fq/libs/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/protos/CMakeLists.linux-x86_64.txt @@ -45,6 +45,10 @@ target_proto_messages(fq-libs-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/protos/dq_effects.proto ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/protos/fq_private.proto ) +target_sources(fq-libs-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/protos/dq_effects.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/protos/fq_private.pb.h +) target_proto_addincls(fq-libs-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/protos/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/protos/CMakeLists.windows-x86_64.txt index 7e39a3f60b17..7804d00dfba6 100644 --- a/ydb/core/fq/libs/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/protos/CMakeLists.windows-x86_64.txt @@ -44,6 +44,10 @@ target_proto_messages(fq-libs-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/protos/dq_effects.proto ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/protos/fq_private.proto ) +target_sources(fq-libs-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/protos/dq_effects.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/protos/fq_private.pb.h +) target_proto_addincls(fq-libs-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/quota_manager/proto/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/quota_manager/proto/CMakeLists.darwin-arm64.txt index baf535c0076a..21a513976d8c 100644 --- a/ydb/core/fq/libs/quota_manager/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/quota_manager/proto/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(libs-quota_manager-proto PUBLIC target_proto_messages(libs-quota_manager-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/quota_manager/proto/quota_internal.proto ) +target_sources(libs-quota_manager-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/quota_manager/proto/quota_internal.pb.h +) target_proto_addincls(libs-quota_manager-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/quota_manager/proto/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/quota_manager/proto/CMakeLists.darwin-x86_64.txt index baf535c0076a..21a513976d8c 100644 --- a/ydb/core/fq/libs/quota_manager/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/quota_manager/proto/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(libs-quota_manager-proto PUBLIC target_proto_messages(libs-quota_manager-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/quota_manager/proto/quota_internal.proto ) +target_sources(libs-quota_manager-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/quota_manager/proto/quota_internal.pb.h +) target_proto_addincls(libs-quota_manager-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/quota_manager/proto/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/quota_manager/proto/CMakeLists.linux-aarch64.txt index 377733cb08d6..9e26cecbfd94 100644 --- a/ydb/core/fq/libs/quota_manager/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/quota_manager/proto/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(libs-quota_manager-proto PUBLIC target_proto_messages(libs-quota_manager-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/quota_manager/proto/quota_internal.proto ) +target_sources(libs-quota_manager-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/quota_manager/proto/quota_internal.pb.h +) target_proto_addincls(libs-quota_manager-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/quota_manager/proto/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/quota_manager/proto/CMakeLists.linux-x86_64.txt index 377733cb08d6..9e26cecbfd94 100644 --- a/ydb/core/fq/libs/quota_manager/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/quota_manager/proto/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(libs-quota_manager-proto PUBLIC target_proto_messages(libs-quota_manager-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/quota_manager/proto/quota_internal.proto ) +target_sources(libs-quota_manager-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/quota_manager/proto/quota_internal.pb.h +) target_proto_addincls(libs-quota_manager-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/quota_manager/proto/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/quota_manager/proto/CMakeLists.windows-x86_64.txt index baf535c0076a..21a513976d8c 100644 --- a/ydb/core/fq/libs/quota_manager/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/quota_manager/proto/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(libs-quota_manager-proto PUBLIC target_proto_messages(libs-quota_manager-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/quota_manager/proto/quota_internal.proto ) +target_sources(libs-quota_manager-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/fq/libs/quota_manager/proto/quota_internal.pb.h +) target_proto_addincls(libs-quota_manager-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/fq/libs/result_formatter/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/result_formatter/CMakeLists.darwin-arm64.txt index 37994c7c359a..bd419bb83793 100644 --- a/ydb/core/fq/libs/result_formatter/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/result_formatter/CMakeLists.darwin-arm64.txt @@ -19,7 +19,7 @@ target_link_libraries(fq-libs-result_formatter PUBLIC cpp-json-yson ydb-library-mkql_proto library-yql-ast - minikql-computation-llvm + yql-minikql-computation yql-public-udf api-protos cpp-client-ydb_proto diff --git a/ydb/core/fq/libs/result_formatter/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/result_formatter/CMakeLists.darwin-x86_64.txt index 37994c7c359a..bd419bb83793 100644 --- a/ydb/core/fq/libs/result_formatter/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/result_formatter/CMakeLists.darwin-x86_64.txt @@ -19,7 +19,7 @@ target_link_libraries(fq-libs-result_formatter PUBLIC cpp-json-yson ydb-library-mkql_proto library-yql-ast - minikql-computation-llvm + yql-minikql-computation yql-public-udf api-protos cpp-client-ydb_proto diff --git a/ydb/core/fq/libs/result_formatter/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/result_formatter/CMakeLists.linux-aarch64.txt index d62b3106e87d..67c4b0397472 100644 --- a/ydb/core/fq/libs/result_formatter/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/result_formatter/CMakeLists.linux-aarch64.txt @@ -20,7 +20,7 @@ target_link_libraries(fq-libs-result_formatter PUBLIC cpp-json-yson ydb-library-mkql_proto library-yql-ast - minikql-computation-llvm + yql-minikql-computation yql-public-udf api-protos cpp-client-ydb_proto diff --git a/ydb/core/fq/libs/result_formatter/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/result_formatter/CMakeLists.linux-x86_64.txt index d62b3106e87d..67c4b0397472 100644 --- a/ydb/core/fq/libs/result_formatter/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/result_formatter/CMakeLists.linux-x86_64.txt @@ -20,7 +20,7 @@ target_link_libraries(fq-libs-result_formatter PUBLIC cpp-json-yson ydb-library-mkql_proto library-yql-ast - minikql-computation-llvm + yql-minikql-computation yql-public-udf api-protos cpp-client-ydb_proto diff --git a/ydb/core/fq/libs/result_formatter/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/result_formatter/CMakeLists.windows-x86_64.txt index 37994c7c359a..bd419bb83793 100644 --- a/ydb/core/fq/libs/result_formatter/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/result_formatter/CMakeLists.windows-x86_64.txt @@ -19,7 +19,7 @@ target_link_libraries(fq-libs-result_formatter PUBLIC cpp-json-yson ydb-library-mkql_proto library-yql-ast - minikql-computation-llvm + yql-minikql-computation yql-public-udf api-protos cpp-client-ydb_proto diff --git a/ydb/core/fq/libs/result_formatter/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/result_formatter/ut/CMakeLists.darwin-arm64.txt index 8bedad0c0792..3e273eb2f877 100644 --- a/ydb/core/fq/libs/result_formatter/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/result_formatter/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-fq-libs-result_formatter-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-result_formatter-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/result_formatter/result_formatter_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/result_formatter/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/result_formatter/ut/CMakeLists.darwin-x86_64.txt index 1ce2a2fce663..e68d97fece6c 100644 --- a/ydb/core/fq/libs/result_formatter/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/result_formatter/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-fq-libs-result_formatter-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-result_formatter-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/result_formatter/result_formatter_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/result_formatter/ut/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/result_formatter/ut/CMakeLists.linux-aarch64.txt index 4ac24a2f312c..f5de5e728cdf 100644 --- a/ydb/core/fq/libs/result_formatter/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/result_formatter/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-fq-libs-result_formatter-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-result_formatter-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/result_formatter/result_formatter_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/result_formatter/ut/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/result_formatter/ut/CMakeLists.linux-x86_64.txt index db67a782fafa..8226d7b9f694 100644 --- a/ydb/core/fq/libs/result_formatter/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/result_formatter/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-fq-libs-result_formatter-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-result_formatter-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/result_formatter/result_formatter_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/result_formatter/ut/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/result_formatter/ut/CMakeLists.windows-x86_64.txt index ddb8ba569b09..04fa67380d5a 100644 --- a/ydb/core/fq/libs/result_formatter/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/result_formatter/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/shared_resources/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/shared_resources/CMakeLists.darwin-arm64.txt index 4854ca09d529..5d9a5bec9465 100644 --- a/ydb/core/fq/libs/shared_resources/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/shared_resources/CMakeLists.darwin-arm64.txt @@ -30,6 +30,7 @@ target_link_libraries(fq-libs-shared_resources PUBLIC ydb-library-logger ydb-library-security cpp-client-ydb_driver + cpp-client-ydb_extension cpp-client-ydb_table ) target_sources(fq-libs-shared_resources PRIVATE diff --git a/ydb/core/fq/libs/shared_resources/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/shared_resources/CMakeLists.darwin-x86_64.txt index 4854ca09d529..5d9a5bec9465 100644 --- a/ydb/core/fq/libs/shared_resources/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/shared_resources/CMakeLists.darwin-x86_64.txt @@ -30,6 +30,7 @@ target_link_libraries(fq-libs-shared_resources PUBLIC ydb-library-logger ydb-library-security cpp-client-ydb_driver + cpp-client-ydb_extension cpp-client-ydb_table ) target_sources(fq-libs-shared_resources PRIVATE diff --git a/ydb/core/fq/libs/shared_resources/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/shared_resources/CMakeLists.linux-aarch64.txt index 11101194d535..044b606a6c3a 100644 --- a/ydb/core/fq/libs/shared_resources/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/shared_resources/CMakeLists.linux-aarch64.txt @@ -31,6 +31,7 @@ target_link_libraries(fq-libs-shared_resources PUBLIC ydb-library-logger ydb-library-security cpp-client-ydb_driver + cpp-client-ydb_extension cpp-client-ydb_table ) target_sources(fq-libs-shared_resources PRIVATE diff --git a/ydb/core/fq/libs/shared_resources/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/shared_resources/CMakeLists.linux-x86_64.txt index 11101194d535..044b606a6c3a 100644 --- a/ydb/core/fq/libs/shared_resources/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/shared_resources/CMakeLists.linux-x86_64.txt @@ -31,6 +31,7 @@ target_link_libraries(fq-libs-shared_resources PUBLIC ydb-library-logger ydb-library-security cpp-client-ydb_driver + cpp-client-ydb_extension cpp-client-ydb_table ) target_sources(fq-libs-shared_resources PRIVATE diff --git a/ydb/core/fq/libs/shared_resources/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/shared_resources/CMakeLists.windows-x86_64.txt index 4854ca09d529..5d9a5bec9465 100644 --- a/ydb/core/fq/libs/shared_resources/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/shared_resources/CMakeLists.windows-x86_64.txt @@ -30,6 +30,7 @@ target_link_libraries(fq-libs-shared_resources PUBLIC ydb-library-logger ydb-library-security cpp-client-ydb_driver + cpp-client-ydb_extension cpp-client-ydb_table ) target_sources(fq-libs-shared_resources PRIVATE diff --git a/ydb/core/fq/libs/signer/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/signer/ut/CMakeLists.darwin-arm64.txt index 87e6dcefeb1f..af96f35c4b34 100644 --- a/ydb/core/fq/libs/signer/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/signer/ut/CMakeLists.darwin-arm64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/signer/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/signer/ut/CMakeLists.darwin-x86_64.txt index e1b19c75d000..671c4919060c 100644 --- a/ydb/core/fq/libs/signer/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/signer/ut/CMakeLists.darwin-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/signer/ut/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/signer/ut/CMakeLists.linux-aarch64.txt index bed7849db4b4..b32073cb7fa3 100644 --- a/ydb/core/fq/libs/signer/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/signer/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-core-fq-libs-signer-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-signer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/signer/ut/signer_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/signer/ut/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/signer/ut/CMakeLists.linux-x86_64.txt index 35a77d9b181e..86d81745635b 100644 --- a/ydb/core/fq/libs/signer/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/signer/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-core-fq-libs-signer-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-signer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/signer/ut/signer_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/signer/ut/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/signer/ut/CMakeLists.windows-x86_64.txt index dd9ed5220869..6bcc23424f62 100644 --- a/ydb/core/fq/libs/signer/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/signer/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/test_connection/ut/CMakeLists.darwin-arm64.txt b/ydb/core/fq/libs/test_connection/ut/CMakeLists.darwin-arm64.txt index b57738d9be9b..b7263de7d5d2 100644 --- a/ydb/core/fq/libs/test_connection/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/fq/libs/test_connection/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-fq-libs-test_connection-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-test_connection-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/test_connection/ut/test_connection_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/test_connection/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/fq/libs/test_connection/ut/CMakeLists.darwin-x86_64.txt index 43cc39a38d90..2b8789dcdc7f 100644 --- a/ydb/core/fq/libs/test_connection/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/fq/libs/test_connection/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-fq-libs-test_connection-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-fq-libs-test_connection-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/test_connection/ut/test_connection_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/test_connection/ut/CMakeLists.linux-aarch64.txt b/ydb/core/fq/libs/test_connection/ut/CMakeLists.linux-aarch64.txt index cfe6a23037b1..4614992788cf 100644 --- a/ydb/core/fq/libs/test_connection/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/fq/libs/test_connection/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-fq-libs-test_connection-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-test_connection-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/test_connection/ut/test_connection_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/test_connection/ut/CMakeLists.linux-x86_64.txt b/ydb/core/fq/libs/test_connection/ut/CMakeLists.linux-x86_64.txt index 31176de85108..aba46fa5cf12 100644 --- a/ydb/core/fq/libs/test_connection/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/fq/libs/test_connection/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-fq-libs-test_connection-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-fq-libs-test_connection-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/fq/libs/test_connection/ut/test_connection_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/fq/libs/test_connection/ut/CMakeLists.windows-x86_64.txt b/ydb/core/fq/libs/test_connection/ut/CMakeLists.windows-x86_64.txt index 662e6ce1490f..20ace4f6a8fc 100644 --- a/ydb/core/fq/libs/test_connection/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/fq/libs/test_connection/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/graph/CMakeLists.txt b/ydb/core/graph/CMakeLists.txt new file mode 100644 index 000000000000..ea2252c31a2a --- /dev/null +++ b/ydb/core/graph/CMakeLists.txt @@ -0,0 +1,13 @@ + +# 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(api) +add_subdirectory(protos) +add_subdirectory(service) +add_subdirectory(shard) +add_subdirectory(ut) diff --git a/ydb/core/graph/api/CMakeLists.darwin-arm64.txt b/ydb/core/graph/api/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..a8f2ab00e789 --- /dev/null +++ b/ydb/core/graph/api/CMakeLists.darwin-arm64.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(core-graph-api INTERFACE) +target_link_libraries(core-graph-api INTERFACE + contrib-libs-cxxsupp + yutil + core-graph-protos +) +target_sources(core-graph-api INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/api/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/api/service.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/api/shard.h +) diff --git a/ydb/core/graph/api/CMakeLists.darwin-x86_64.txt b/ydb/core/graph/api/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..a8f2ab00e789 --- /dev/null +++ b/ydb/core/graph/api/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(core-graph-api INTERFACE) +target_link_libraries(core-graph-api INTERFACE + contrib-libs-cxxsupp + yutil + core-graph-protos +) +target_sources(core-graph-api INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/api/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/api/service.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/api/shard.h +) diff --git a/ydb/core/graph/api/CMakeLists.linux-aarch64.txt b/ydb/core/graph/api/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..aa398f50fe21 --- /dev/null +++ b/ydb/core/graph/api/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(core-graph-api INTERFACE) +target_link_libraries(core-graph-api INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + core-graph-protos +) +target_sources(core-graph-api INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/api/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/api/service.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/api/shard.h +) diff --git a/ydb/core/graph/api/CMakeLists.linux-x86_64.txt b/ydb/core/graph/api/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..aa398f50fe21 --- /dev/null +++ b/ydb/core/graph/api/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(core-graph-api INTERFACE) +target_link_libraries(core-graph-api INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + core-graph-protos +) +target_sources(core-graph-api INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/api/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/api/service.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/api/shard.h +) diff --git a/ydb/core/graph/api/CMakeLists.txt b/ydb/core/graph/api/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/graph/api/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/graph/api/CMakeLists.windows-x86_64.txt b/ydb/core/graph/api/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..a8f2ab00e789 --- /dev/null +++ b/ydb/core/graph/api/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(core-graph-api INTERFACE) +target_link_libraries(core-graph-api INTERFACE + contrib-libs-cxxsupp + yutil + core-graph-protos +) +target_sources(core-graph-api INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/api/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/api/service.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/api/shard.h +) diff --git a/ydb/core/graph/protos/CMakeLists.darwin-arm64.txt b/ydb/core/graph/protos/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..06b6fef2b12d --- /dev/null +++ b/ydb/core/graph/protos/CMakeLists.darwin-arm64.txt @@ -0,0 +1,46 @@ + +# 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(core-graph-protos) +target_link_libraries(core-graph-protos PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf +) +target_proto_messages(core-graph-protos PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/protos/graph.proto +) +target_sources(core-graph-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/graph/protos/graph.pb.h +) +target_proto_addincls(core-graph-protos + ./ + ${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(core-graph-protos + --cpp_out=${CMAKE_BINARY_DIR}/ + --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ +) diff --git a/ydb/core/graph/protos/CMakeLists.darwin-x86_64.txt b/ydb/core/graph/protos/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..06b6fef2b12d --- /dev/null +++ b/ydb/core/graph/protos/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,46 @@ + +# 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(core-graph-protos) +target_link_libraries(core-graph-protos PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf +) +target_proto_messages(core-graph-protos PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/protos/graph.proto +) +target_sources(core-graph-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/graph/protos/graph.pb.h +) +target_proto_addincls(core-graph-protos + ./ + ${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(core-graph-protos + --cpp_out=${CMAKE_BINARY_DIR}/ + --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ +) diff --git a/ydb/core/graph/protos/CMakeLists.linux-aarch64.txt b/ydb/core/graph/protos/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..21288f0678e7 --- /dev/null +++ b/ydb/core/graph/protos/CMakeLists.linux-aarch64.txt @@ -0,0 +1,47 @@ + +# 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(core-graph-protos) +target_link_libraries(core-graph-protos PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf +) +target_proto_messages(core-graph-protos PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/protos/graph.proto +) +target_sources(core-graph-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/graph/protos/graph.pb.h +) +target_proto_addincls(core-graph-protos + ./ + ${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(core-graph-protos + --cpp_out=${CMAKE_BINARY_DIR}/ + --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ +) diff --git a/ydb/core/graph/protos/CMakeLists.linux-x86_64.txt b/ydb/core/graph/protos/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..21288f0678e7 --- /dev/null +++ b/ydb/core/graph/protos/CMakeLists.linux-x86_64.txt @@ -0,0 +1,47 @@ + +# 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(core-graph-protos) +target_link_libraries(core-graph-protos PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf +) +target_proto_messages(core-graph-protos PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/protos/graph.proto +) +target_sources(core-graph-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/graph/protos/graph.pb.h +) +target_proto_addincls(core-graph-protos + ./ + ${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(core-graph-protos + --cpp_out=${CMAKE_BINARY_DIR}/ + --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ +) diff --git a/ydb/core/graph/protos/CMakeLists.txt b/ydb/core/graph/protos/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/graph/protos/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/graph/protos/CMakeLists.windows-x86_64.txt b/ydb/core/graph/protos/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..06b6fef2b12d --- /dev/null +++ b/ydb/core/graph/protos/CMakeLists.windows-x86_64.txt @@ -0,0 +1,46 @@ + +# 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(core-graph-protos) +target_link_libraries(core-graph-protos PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf +) +target_proto_messages(core-graph-protos PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/protos/graph.proto +) +target_sources(core-graph-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/graph/protos/graph.pb.h +) +target_proto_addincls(core-graph-protos + ./ + ${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(core-graph-protos + --cpp_out=${CMAKE_BINARY_DIR}/ + --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ +) diff --git a/ydb/core/graph/service/CMakeLists.darwin-arm64.txt b/ydb/core/graph/service/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..0ff1742a994e --- /dev/null +++ b/ydb/core/graph/service/CMakeLists.darwin-arm64.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(core-graph-service) +target_link_libraries(core-graph-service PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-base + core-graph-api +) +target_sources(core-graph-service PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/service/log.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/service/service_impl.cpp +) diff --git a/ydb/core/graph/service/CMakeLists.darwin-x86_64.txt b/ydb/core/graph/service/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..0ff1742a994e --- /dev/null +++ b/ydb/core/graph/service/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(core-graph-service) +target_link_libraries(core-graph-service PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-base + core-graph-api +) +target_sources(core-graph-service PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/service/log.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/service/service_impl.cpp +) diff --git a/ydb/core/graph/service/CMakeLists.linux-aarch64.txt b/ydb/core/graph/service/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..f5111421c79f --- /dev/null +++ b/ydb/core/graph/service/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(core-graph-service) +target_link_libraries(core-graph-service PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-base + core-graph-api +) +target_sources(core-graph-service PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/service/log.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/service/service_impl.cpp +) diff --git a/ydb/core/graph/service/CMakeLists.linux-x86_64.txt b/ydb/core/graph/service/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..f5111421c79f --- /dev/null +++ b/ydb/core/graph/service/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(core-graph-service) +target_link_libraries(core-graph-service PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-base + core-graph-api +) +target_sources(core-graph-service PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/service/log.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/service/service_impl.cpp +) diff --git a/ydb/core/graph/service/CMakeLists.txt b/ydb/core/graph/service/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/graph/service/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/graph/service/CMakeLists.windows-x86_64.txt b/ydb/core/graph/service/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..0ff1742a994e --- /dev/null +++ b/ydb/core/graph/service/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(core-graph-service) +target_link_libraries(core-graph-service PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-base + core-graph-api +) +target_sources(core-graph-service PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/service/log.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/service/service_impl.cpp +) diff --git a/ydb/core/graph/shard/CMakeLists.darwin-arm64.txt b/ydb/core/graph/shard/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..34d35ae3c556 --- /dev/null +++ b/ydb/core/graph/shard/CMakeLists.darwin-arm64.txt @@ -0,0 +1,37 @@ + +# 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(protos) +add_subdirectory(ut) + +add_library(core-graph-shard) +target_link_libraries(core-graph-shard PUBLIC + contrib-libs-cxxsupp + yutil + library-actors-core + ydb-core-base + ydb-core-tablet + ydb-core-tablet_flat + core-graph-api + graph-shard-protos +) +target_sources(core-graph-shard PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/backends.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/log.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/schema.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/shard_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/backends.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/shard_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_change_backend.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_clear_data.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_get_metrics.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_init_schema.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_monitoring.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_startup.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_store_metrics.cpp +) diff --git a/ydb/core/graph/shard/CMakeLists.darwin-x86_64.txt b/ydb/core/graph/shard/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..34d35ae3c556 --- /dev/null +++ b/ydb/core/graph/shard/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,37 @@ + +# 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(protos) +add_subdirectory(ut) + +add_library(core-graph-shard) +target_link_libraries(core-graph-shard PUBLIC + contrib-libs-cxxsupp + yutil + library-actors-core + ydb-core-base + ydb-core-tablet + ydb-core-tablet_flat + core-graph-api + graph-shard-protos +) +target_sources(core-graph-shard PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/backends.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/log.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/schema.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/shard_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/backends.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/shard_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_change_backend.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_clear_data.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_get_metrics.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_init_schema.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_monitoring.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_startup.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_store_metrics.cpp +) diff --git a/ydb/core/graph/shard/CMakeLists.linux-aarch64.txt b/ydb/core/graph/shard/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..f66548999b06 --- /dev/null +++ b/ydb/core/graph/shard/CMakeLists.linux-aarch64.txt @@ -0,0 +1,38 @@ + +# 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(protos) +add_subdirectory(ut) + +add_library(core-graph-shard) +target_link_libraries(core-graph-shard PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-actors-core + ydb-core-base + ydb-core-tablet + ydb-core-tablet_flat + core-graph-api + graph-shard-protos +) +target_sources(core-graph-shard PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/backends.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/log.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/schema.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/shard_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/backends.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/shard_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_change_backend.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_clear_data.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_get_metrics.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_init_schema.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_monitoring.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_startup.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_store_metrics.cpp +) diff --git a/ydb/core/graph/shard/CMakeLists.linux-x86_64.txt b/ydb/core/graph/shard/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..f66548999b06 --- /dev/null +++ b/ydb/core/graph/shard/CMakeLists.linux-x86_64.txt @@ -0,0 +1,38 @@ + +# 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(protos) +add_subdirectory(ut) + +add_library(core-graph-shard) +target_link_libraries(core-graph-shard PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-actors-core + ydb-core-base + ydb-core-tablet + ydb-core-tablet_flat + core-graph-api + graph-shard-protos +) +target_sources(core-graph-shard PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/backends.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/log.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/schema.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/shard_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/backends.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/shard_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_change_backend.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_clear_data.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_get_metrics.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_init_schema.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_monitoring.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_startup.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_store_metrics.cpp +) diff --git a/ydb/core/graph/shard/CMakeLists.txt b/ydb/core/graph/shard/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/graph/shard/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/graph/shard/CMakeLists.windows-x86_64.txt b/ydb/core/graph/shard/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..34d35ae3c556 --- /dev/null +++ b/ydb/core/graph/shard/CMakeLists.windows-x86_64.txt @@ -0,0 +1,37 @@ + +# 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(protos) +add_subdirectory(ut) + +add_library(core-graph-shard) +target_link_libraries(core-graph-shard PUBLIC + contrib-libs-cxxsupp + yutil + library-actors-core + ydb-core-base + ydb-core-tablet + ydb-core-tablet_flat + core-graph-api + graph-shard-protos +) +target_sources(core-graph-shard PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/backends.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/log.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/schema.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/shard_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/backends.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/shard_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_change_backend.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_clear_data.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_get_metrics.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_init_schema.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_monitoring.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_startup.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/tx_store_metrics.cpp +) diff --git a/ydb/core/graph/shard/protos/CMakeLists.darwin-arm64.txt b/ydb/core/graph/shard/protos/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..2cc8be1c24fd --- /dev/null +++ b/ydb/core/graph/shard/protos/CMakeLists.darwin-arm64.txt @@ -0,0 +1,47 @@ + +# 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(graph-shard-protos) +target_link_libraries(graph-shard-protos PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-protos + contrib-libs-protobuf +) +target_proto_messages(graph-shard-protos PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/protos/counters_shard.proto +) +target_sources(graph-shard-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/graph/shard/protos/counters_shard.pb.h +) +target_proto_addincls(graph-shard-protos + ./ + ${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(graph-shard-protos + --cpp_out=${CMAKE_BINARY_DIR}/ + --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ +) diff --git a/ydb/core/graph/shard/protos/CMakeLists.darwin-x86_64.txt b/ydb/core/graph/shard/protos/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..2cc8be1c24fd --- /dev/null +++ b/ydb/core/graph/shard/protos/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,47 @@ + +# 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(graph-shard-protos) +target_link_libraries(graph-shard-protos PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-protos + contrib-libs-protobuf +) +target_proto_messages(graph-shard-protos PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/protos/counters_shard.proto +) +target_sources(graph-shard-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/graph/shard/protos/counters_shard.pb.h +) +target_proto_addincls(graph-shard-protos + ./ + ${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(graph-shard-protos + --cpp_out=${CMAKE_BINARY_DIR}/ + --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ +) diff --git a/ydb/core/graph/shard/protos/CMakeLists.linux-aarch64.txt b/ydb/core/graph/shard/protos/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..cda356e1e288 --- /dev/null +++ b/ydb/core/graph/shard/protos/CMakeLists.linux-aarch64.txt @@ -0,0 +1,48 @@ + +# 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(graph-shard-protos) +target_link_libraries(graph-shard-protos PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-protos + contrib-libs-protobuf +) +target_proto_messages(graph-shard-protos PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/protos/counters_shard.proto +) +target_sources(graph-shard-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/graph/shard/protos/counters_shard.pb.h +) +target_proto_addincls(graph-shard-protos + ./ + ${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(graph-shard-protos + --cpp_out=${CMAKE_BINARY_DIR}/ + --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ +) diff --git a/ydb/core/graph/shard/protos/CMakeLists.linux-x86_64.txt b/ydb/core/graph/shard/protos/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..cda356e1e288 --- /dev/null +++ b/ydb/core/graph/shard/protos/CMakeLists.linux-x86_64.txt @@ -0,0 +1,48 @@ + +# 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(graph-shard-protos) +target_link_libraries(graph-shard-protos PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-protos + contrib-libs-protobuf +) +target_proto_messages(graph-shard-protos PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/protos/counters_shard.proto +) +target_sources(graph-shard-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/graph/shard/protos/counters_shard.pb.h +) +target_proto_addincls(graph-shard-protos + ./ + ${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(graph-shard-protos + --cpp_out=${CMAKE_BINARY_DIR}/ + --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ +) diff --git a/ydb/core/graph/shard/protos/CMakeLists.txt b/ydb/core/graph/shard/protos/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/graph/shard/protos/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/graph/shard/protos/CMakeLists.windows-x86_64.txt b/ydb/core/graph/shard/protos/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..2cc8be1c24fd --- /dev/null +++ b/ydb/core/graph/shard/protos/CMakeLists.windows-x86_64.txt @@ -0,0 +1,47 @@ + +# 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(graph-shard-protos) +target_link_libraries(graph-shard-protos PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-protos + contrib-libs-protobuf +) +target_proto_messages(graph-shard-protos PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/protos/counters_shard.proto +) +target_sources(graph-shard-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/graph/shard/protos/counters_shard.pb.h +) +target_proto_addincls(graph-shard-protos + ./ + ${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(graph-shard-protos + --cpp_out=${CMAKE_BINARY_DIR}/ + --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ +) diff --git a/ydb/core/graph/shard/ut/CMakeLists.darwin-arm64.txt b/ydb/core/graph/shard/ut/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..8d09fd9adc73 --- /dev/null +++ b/ydb/core/graph/shard/ut/CMakeLists.darwin-arm64.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-core-graph-shard-ut) +target_compile_options(ydb-core-graph-shard-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-graph-shard-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard +) +target_link_libraries(ydb-core-graph-shard-ut PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + core-graph-shard + library-actors-helpers + tx-schemeshard-ut_helpers + core-testlib-default +) +target_link_options(ydb-core-graph-shard-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-core-graph-shard-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/ut/shard_ut.cpp +) +set_property( + TARGET + ydb-core-graph-shard-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-graph-shard-ut + TEST_TARGET + ydb-core-graph-shard-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-graph-shard-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-graph-shard-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-graph-shard-ut + system_allocator +) +vcs_info(ydb-core-graph-shard-ut) diff --git a/ydb/core/graph/shard/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/graph/shard/ut/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..658949c6c757 --- /dev/null +++ b/ydb/core/graph/shard/ut/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,72 @@ + +# 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-core-graph-shard-ut) +target_compile_options(ydb-core-graph-shard-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-graph-shard-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard +) +target_link_libraries(ydb-core-graph-shard-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + core-graph-shard + library-actors-helpers + tx-schemeshard-ut_helpers + core-testlib-default +) +target_link_options(ydb-core-graph-shard-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-core-graph-shard-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/ut/shard_ut.cpp +) +set_property( + TARGET + ydb-core-graph-shard-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-graph-shard-ut + TEST_TARGET + ydb-core-graph-shard-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-graph-shard-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-graph-shard-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-graph-shard-ut + system_allocator +) +vcs_info(ydb-core-graph-shard-ut) diff --git a/ydb/core/graph/shard/ut/CMakeLists.linux-aarch64.txt b/ydb/core/graph/shard/ut/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..94c63a88a604 --- /dev/null +++ b/ydb/core/graph/shard/ut/CMakeLists.linux-aarch64.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-core-graph-shard-ut) +target_compile_options(ydb-core-graph-shard-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-graph-shard-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard +) +target_link_libraries(ydb-core-graph-shard-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + core-graph-shard + library-actors-helpers + tx-schemeshard-ut_helpers + core-testlib-default +) +target_link_options(ydb-core-graph-shard-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-core-graph-shard-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/ut/shard_ut.cpp +) +set_property( + TARGET + ydb-core-graph-shard-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-graph-shard-ut + TEST_TARGET + ydb-core-graph-shard-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-graph-shard-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-graph-shard-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-graph-shard-ut + cpp-malloc-jemalloc +) +vcs_info(ydb-core-graph-shard-ut) diff --git a/ydb/core/graph/shard/ut/CMakeLists.linux-x86_64.txt b/ydb/core/graph/shard/ut/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..02b2e29294c4 --- /dev/null +++ b/ydb/core/graph/shard/ut/CMakeLists.linux-x86_64.txt @@ -0,0 +1,76 @@ + +# 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-core-graph-shard-ut) +target_compile_options(ydb-core-graph-shard-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-graph-shard-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard +) +target_link_libraries(ydb-core-graph-shard-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + core-graph-shard + library-actors-helpers + tx-schemeshard-ut_helpers + core-testlib-default +) +target_link_options(ydb-core-graph-shard-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-core-graph-shard-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/ut/shard_ut.cpp +) +set_property( + TARGET + ydb-core-graph-shard-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-graph-shard-ut + TEST_TARGET + ydb-core-graph-shard-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-graph-shard-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-graph-shard-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-graph-shard-ut + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-core-graph-shard-ut) diff --git a/ydb/core/graph/shard/ut/CMakeLists.txt b/ydb/core/graph/shard/ut/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/graph/shard/ut/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/graph/shard/ut/CMakeLists.windows-x86_64.txt b/ydb/core/graph/shard/ut/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..0a232c3a4320 --- /dev/null +++ b/ydb/core/graph/shard/ut/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-core-graph-shard-ut) +target_compile_options(ydb-core-graph-shard-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-graph-shard-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard +) +target_link_libraries(ydb-core-graph-shard-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + core-graph-shard + library-actors-helpers + tx-schemeshard-ut_helpers + core-testlib-default +) +target_sources(ydb-core-graph-shard-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/shard/ut/shard_ut.cpp +) +set_property( + TARGET + ydb-core-graph-shard-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-graph-shard-ut + TEST_TARGET + ydb-core-graph-shard-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-graph-shard-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-graph-shard-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-graph-shard-ut + system_allocator +) +vcs_info(ydb-core-graph-shard-ut) diff --git a/ydb/core/graph/ut/CMakeLists.darwin-arm64.txt b/ydb/core/graph/ut/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..304f86876790 --- /dev/null +++ b/ydb/core/graph/ut/CMakeLists.darwin-arm64.txt @@ -0,0 +1,72 @@ + +# 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-core-graph-ut) +target_compile_options(ydb-core-graph-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-graph-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph +) +target_link_libraries(ydb-core-graph-ut PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + library-actors-helpers + tx-schemeshard-ut_helpers + core-testlib-default + core-graph-shard + core-graph-service +) +target_link_options(ydb-core-graph-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-core-graph-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/ut/graph_ut.cpp +) +set_property( + TARGET + ydb-core-graph-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-graph-ut + TEST_TARGET + ydb-core-graph-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-graph-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-graph-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-graph-ut + system_allocator +) +vcs_info(ydb-core-graph-ut) diff --git a/ydb/core/graph/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/graph/ut/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..3608a015823e --- /dev/null +++ b/ydb/core/graph/ut/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,73 @@ + +# 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-core-graph-ut) +target_compile_options(ydb-core-graph-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-graph-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph +) +target_link_libraries(ydb-core-graph-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + library-actors-helpers + tx-schemeshard-ut_helpers + core-testlib-default + core-graph-shard + core-graph-service +) +target_link_options(ydb-core-graph-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-core-graph-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/ut/graph_ut.cpp +) +set_property( + TARGET + ydb-core-graph-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-graph-ut + TEST_TARGET + ydb-core-graph-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-graph-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-graph-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-graph-ut + system_allocator +) +vcs_info(ydb-core-graph-ut) diff --git a/ydb/core/graph/ut/CMakeLists.linux-aarch64.txt b/ydb/core/graph/ut/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..fa83e0c4c2a4 --- /dev/null +++ b/ydb/core/graph/ut/CMakeLists.linux-aarch64.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-core-graph-ut) +target_compile_options(ydb-core-graph-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-graph-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph +) +target_link_libraries(ydb-core-graph-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + library-actors-helpers + tx-schemeshard-ut_helpers + core-testlib-default + core-graph-shard + core-graph-service +) +target_link_options(ydb-core-graph-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-core-graph-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/ut/graph_ut.cpp +) +set_property( + TARGET + ydb-core-graph-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-graph-ut + TEST_TARGET + ydb-core-graph-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-graph-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-graph-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-graph-ut + cpp-malloc-jemalloc +) +vcs_info(ydb-core-graph-ut) diff --git a/ydb/core/graph/ut/CMakeLists.linux-x86_64.txt b/ydb/core/graph/ut/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..4f6b102d9610 --- /dev/null +++ b/ydb/core/graph/ut/CMakeLists.linux-x86_64.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-core-graph-ut) +target_compile_options(ydb-core-graph-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-graph-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph +) +target_link_libraries(ydb-core-graph-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + library-actors-helpers + tx-schemeshard-ut_helpers + core-testlib-default + core-graph-shard + core-graph-service +) +target_link_options(ydb-core-graph-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-core-graph-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/ut/graph_ut.cpp +) +set_property( + TARGET + ydb-core-graph-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-graph-ut + TEST_TARGET + ydb-core-graph-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-graph-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-graph-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-graph-ut + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-core-graph-ut) diff --git a/ydb/core/graph/ut/CMakeLists.txt b/ydb/core/graph/ut/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/graph/ut/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/graph/ut/CMakeLists.windows-x86_64.txt b/ydb/core/graph/ut/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..ae97d99cf917 --- /dev/null +++ b/ydb/core/graph/ut/CMakeLists.windows-x86_64.txt @@ -0,0 +1,68 @@ + +# 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-core-graph-ut) +target_compile_options(ydb-core-graph-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-graph-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph +) +target_link_libraries(ydb-core-graph-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + library-actors-helpers + tx-schemeshard-ut_helpers + core-testlib-default + core-graph-shard + core-graph-service +) +target_sources(ydb-core-graph-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/graph/ut/graph_ut.cpp +) +set_property( + TARGET + ydb-core-graph-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-graph-ut + TEST_TARGET + ydb-core-graph-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-graph-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-graph-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-graph-ut + system_allocator +) +vcs_info(ydb-core-graph-ut) diff --git a/ydb/core/grpc_services/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_services/CMakeLists.darwin-arm64.txt index 42e3c2e08c4f..0a054a07e78f 100644 --- a/ydb/core/grpc_services/CMakeLists.darwin-arm64.txt +++ b/ydb/core/grpc_services/CMakeLists.darwin-arm64.txt @@ -39,7 +39,7 @@ target_link_libraries(ydb-core-grpc_services PUBLIC core-grpc_services-cancelation core-grpc_services-auth_processor ydb-core-health_check - ydb-core-io_formats + core-io_formats-ydb_dump core-kesus-tablet core-kqp-common ydb-core-protos @@ -69,6 +69,8 @@ target_link_libraries(ydb-core-grpc_services PUBLIC services-ext_index-common ) target_sources(ydb-core-grpc_services PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/db_metadata_cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/query/service_query.h ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/audit_log.cpp ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/audit_dml_operations.cpp ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/grpc_endpoint_publish_actor.cpp diff --git a/ydb/core/grpc_services/CMakeLists.darwin-x86_64.txt b/ydb/core/grpc_services/CMakeLists.darwin-x86_64.txt index 42e3c2e08c4f..0a054a07e78f 100644 --- a/ydb/core/grpc_services/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/grpc_services/CMakeLists.darwin-x86_64.txt @@ -39,7 +39,7 @@ target_link_libraries(ydb-core-grpc_services PUBLIC core-grpc_services-cancelation core-grpc_services-auth_processor ydb-core-health_check - ydb-core-io_formats + core-io_formats-ydb_dump core-kesus-tablet core-kqp-common ydb-core-protos @@ -69,6 +69,8 @@ target_link_libraries(ydb-core-grpc_services PUBLIC services-ext_index-common ) target_sources(ydb-core-grpc_services PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/db_metadata_cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/query/service_query.h ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/audit_log.cpp ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/audit_dml_operations.cpp ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/grpc_endpoint_publish_actor.cpp diff --git a/ydb/core/grpc_services/CMakeLists.linux-aarch64.txt b/ydb/core/grpc_services/CMakeLists.linux-aarch64.txt index eabc5819db48..6b5f5cea2874 100644 --- a/ydb/core/grpc_services/CMakeLists.linux-aarch64.txt +++ b/ydb/core/grpc_services/CMakeLists.linux-aarch64.txt @@ -40,7 +40,7 @@ target_link_libraries(ydb-core-grpc_services PUBLIC core-grpc_services-cancelation core-grpc_services-auth_processor ydb-core-health_check - ydb-core-io_formats + core-io_formats-ydb_dump core-kesus-tablet core-kqp-common ydb-core-protos @@ -70,6 +70,8 @@ target_link_libraries(ydb-core-grpc_services PUBLIC services-ext_index-common ) target_sources(ydb-core-grpc_services PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/db_metadata_cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/query/service_query.h ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/audit_log.cpp ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/audit_dml_operations.cpp ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/grpc_endpoint_publish_actor.cpp diff --git a/ydb/core/grpc_services/CMakeLists.linux-x86_64.txt b/ydb/core/grpc_services/CMakeLists.linux-x86_64.txt index eabc5819db48..6b5f5cea2874 100644 --- a/ydb/core/grpc_services/CMakeLists.linux-x86_64.txt +++ b/ydb/core/grpc_services/CMakeLists.linux-x86_64.txt @@ -40,7 +40,7 @@ target_link_libraries(ydb-core-grpc_services PUBLIC core-grpc_services-cancelation core-grpc_services-auth_processor ydb-core-health_check - ydb-core-io_formats + core-io_formats-ydb_dump core-kesus-tablet core-kqp-common ydb-core-protos @@ -70,6 +70,8 @@ target_link_libraries(ydb-core-grpc_services PUBLIC services-ext_index-common ) target_sources(ydb-core-grpc_services PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/db_metadata_cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/query/service_query.h ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/audit_log.cpp ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/audit_dml_operations.cpp ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/grpc_endpoint_publish_actor.cpp diff --git a/ydb/core/grpc_services/CMakeLists.windows-x86_64.txt b/ydb/core/grpc_services/CMakeLists.windows-x86_64.txt index 42e3c2e08c4f..0a054a07e78f 100644 --- a/ydb/core/grpc_services/CMakeLists.windows-x86_64.txt +++ b/ydb/core/grpc_services/CMakeLists.windows-x86_64.txt @@ -39,7 +39,7 @@ target_link_libraries(ydb-core-grpc_services PUBLIC core-grpc_services-cancelation core-grpc_services-auth_processor ydb-core-health_check - ydb-core-io_formats + core-io_formats-ydb_dump core-kesus-tablet core-kqp-common ydb-core-protos @@ -69,6 +69,8 @@ target_link_libraries(ydb-core-grpc_services PUBLIC services-ext_index-common ) target_sources(ydb-core-grpc_services PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/db_metadata_cache.h + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/query/service_query.h ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/audit_log.cpp ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/audit_dml_operations.cpp ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/grpc_endpoint_publish_actor.cpp diff --git a/ydb/core/grpc_services/auth_processor/dynamic_node_auth_processor.cpp b/ydb/core/grpc_services/auth_processor/dynamic_node_auth_processor.cpp deleted file mode 100644 index 394def2f52c0..000000000000 --- a/ydb/core/grpc_services/auth_processor/dynamic_node_auth_processor.cpp +++ /dev/null @@ -1,127 +0,0 @@ -#include "dynamic_node_auth_processor.h" - -#include -#include -#include -#include -#include - -#include -#include -#include - -namespace NKikimr { - -X509CertificateReader::X509Ptr X509CertificateReader::ReadCertAsPEM(const TStringBuf& cert) { - auto bio = BIOPtr(BIO_new_mem_buf(cert.data(), cert.size())); - if (!bio) { - return {}; - } - - auto x509 = X509Ptr(PEM_read_bio_X509(bio.get(), NULL, NULL, NULL)); - if (!x509) { - return {}; - } - - return x509; -} - -std::pair X509CertificateReader::GetTermFromX509Name(X509_NAME* name, int nid) { - if (name == nullptr) { - return {}; - } - - const char* sn = OBJ_nid2sn(nid); - if (sn == nullptr) { - return {}; - } - - char cnbuf[1024]; - int name_len = X509_NAME_get_text_by_NID(name, nid, cnbuf, sizeof(cnbuf)); - if (name_len == 0) { - return {}; - } - - return std::make_pair(TString(sn, strlen(sn)), TString(cnbuf, name_len)); -} - -TVector> X509CertificateReader::ReadSubjectTerms(const X509Ptr& x509) { - X509_NAME* name = X509_get_subject_name(x509.get()); // return internal pointer - - TVector> extractions = { - GetTermFromX509Name(name, NID_countryName), - GetTermFromX509Name(name, NID_stateOrProvinceName), - GetTermFromX509Name(name, NID_localityName), - GetTermFromX509Name(name, NID_organizationName), - GetTermFromX509Name(name, NID_organizationalUnitName), - GetTermFromX509Name(name, NID_commonName) - }; - - auto newEnd = std::remove(extractions.begin(), extractions.end(), std::pair{}); - extractions.erase(newEnd, extractions.end()); - - return extractions; -} - -TDynamicNodeAuthorizationParams::TDistinguishedName& TDynamicNodeAuthorizationParams::TDistinguishedName::AddRelativeDistinguishedName(TRelativeDistinguishedName name) { - RelativeDistinguishedNames.push_back(std::move(name)); - return *this; -} - -TDynamicNodeAuthorizationParams::operator bool() const { - return bool(CertSubjectsDescriptions); -} - -bool TDynamicNodeAuthorizationParams::IsSubjectDescriptionMatched(const TMap& subjectDescription) const { - for (const auto& description: CertSubjectsDescriptions) { - bool isDescriptionMatched = false; - for (const auto& name: description.RelativeDistinguishedNames) { - isDescriptionMatched = false; - auto fieldIt = subjectDescription.find(name.Attribute); - if (fieldIt == subjectDescription.cend()) { - break; - } - - const auto& attributeValue = fieldIt->second; - for (const auto& value: name.Values) { - if (value == attributeValue) { - isDescriptionMatched = true; - break; - } - } - for (const auto& suffix: name.Suffixes) { - if (attributeValue.EndsWith(suffix)) { - isDescriptionMatched = true; - break; - } - } - if (!isDescriptionMatched) { - break; - } - } - - if (isDescriptionMatched) { - return true; - } - } - - return false; -} - -TDynamicNodeAuthorizationParams::TRelativeDistinguishedName::TRelativeDistinguishedName(const TString& Attribute) - :Attribute(Attribute) -{} - -TDynamicNodeAuthorizationParams::TRelativeDistinguishedName& TDynamicNodeAuthorizationParams::TRelativeDistinguishedName::AddValue(const TString& val) -{ - Values.push_back(val); - return *this; -} - -TDynamicNodeAuthorizationParams::TRelativeDistinguishedName& TDynamicNodeAuthorizationParams::TRelativeDistinguishedName::AddSuffix(const TString& suffix) -{ - Suffixes.push_back(suffix); - return *this; -} - -} //namespace NKikimr { diff --git a/ydb/core/grpc_services/auth_processor/dynamic_node_auth_processor.h b/ydb/core/grpc_services/auth_processor/dynamic_node_auth_processor.h deleted file mode 100644 index bafd4855b682..000000000000 --- a/ydb/core/grpc_services/auth_processor/dynamic_node_auth_processor.h +++ /dev/null @@ -1,60 +0,0 @@ -#pragma once -#include - -#include -#include - -namespace NKikimr { - -struct TDynamicNodeAuthorizationParams { - struct TRelativeDistinguishedName { - TString Attribute; - TVector Values; - TVector Suffixes; - - TRelativeDistinguishedName(const TString& Attribute); - TRelativeDistinguishedName& AddValue(const TString& val); - TRelativeDistinguishedName& AddSuffix(const TString& suffix); - }; - - struct TDistinguishedName { - TVector RelativeDistinguishedNames; - - TDistinguishedName& AddRelativeDistinguishedName(TRelativeDistinguishedName name); - }; - - operator bool () const; - bool IsSubjectDescriptionMatched(const TMap& subjectDescription) const; - TDynamicNodeAuthorizationParams& AddCertSubjectDescription(const TDistinguishedName& description) { - CertSubjectsDescriptions.push_back(description); - return *this; - } - - bool IsHostMatchAttributeCN(const TString&) const { - return true; - } - - bool CanCheckNodeByAttributeCN = false; - TVector CertSubjectsDescriptions; -}; - - -struct X509CertificateReader { - template - struct deleter_from_fn { - template - constexpr void operator()(T* arg) const { - fn(arg); - } - }; - - using X509Ptr = std::unique_ptr>; - using BIOPtr = std::unique_ptr>; - - static X509Ptr ReadCertAsPEM(const TStringBuf& cert); - static TVector> ReadSubjectTerms(const X509Ptr& x509); -private: - static std::pair GetTermFromX509Name(X509_NAME* name, int nid); -}; - -} //namespace NKikimr diff --git a/ydb/core/grpc_services/auth_processor/ya.make b/ydb/core/grpc_services/auth_processor/ya.make deleted file mode 100644 index 149a79057987..000000000000 --- a/ydb/core/grpc_services/auth_processor/ya.make +++ /dev/null @@ -1,11 +0,0 @@ -LIBRARY() - -SRCS( - dynamic_node_auth_processor.cpp -) - -PEERDIR( - contrib/libs/openssl -) - -END() diff --git a/ydb/core/grpc_services/base/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_services/base/CMakeLists.darwin-arm64.txt index 25d885cac0cf..adb4bedfe5ff 100644 --- a/ydb/core/grpc_services/base/CMakeLists.darwin-arm64.txt +++ b/ydb/core/grpc_services/base/CMakeLists.darwin-arm64.txt @@ -20,3 +20,7 @@ target_link_libraries(core-grpc_services-base INTERFACE cpp-client-resources yql-public-issue ) +target_sources(core-grpc_services-base INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/base/base_service.h + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/base/base.h +) diff --git a/ydb/core/grpc_services/base/CMakeLists.darwin-x86_64.txt b/ydb/core/grpc_services/base/CMakeLists.darwin-x86_64.txt index 25d885cac0cf..adb4bedfe5ff 100644 --- a/ydb/core/grpc_services/base/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/grpc_services/base/CMakeLists.darwin-x86_64.txt @@ -20,3 +20,7 @@ target_link_libraries(core-grpc_services-base INTERFACE cpp-client-resources yql-public-issue ) +target_sources(core-grpc_services-base INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/base/base_service.h + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/base/base.h +) diff --git a/ydb/core/grpc_services/base/CMakeLists.linux-aarch64.txt b/ydb/core/grpc_services/base/CMakeLists.linux-aarch64.txt index 386b4dba850f..dc6647953c50 100644 --- a/ydb/core/grpc_services/base/CMakeLists.linux-aarch64.txt +++ b/ydb/core/grpc_services/base/CMakeLists.linux-aarch64.txt @@ -21,3 +21,7 @@ target_link_libraries(core-grpc_services-base INTERFACE cpp-client-resources yql-public-issue ) +target_sources(core-grpc_services-base INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/base/base_service.h + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/base/base.h +) diff --git a/ydb/core/grpc_services/base/CMakeLists.linux-x86_64.txt b/ydb/core/grpc_services/base/CMakeLists.linux-x86_64.txt index 386b4dba850f..dc6647953c50 100644 --- a/ydb/core/grpc_services/base/CMakeLists.linux-x86_64.txt +++ b/ydb/core/grpc_services/base/CMakeLists.linux-x86_64.txt @@ -21,3 +21,7 @@ target_link_libraries(core-grpc_services-base INTERFACE cpp-client-resources yql-public-issue ) +target_sources(core-grpc_services-base INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/base/base_service.h + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/base/base.h +) diff --git a/ydb/core/grpc_services/base/CMakeLists.windows-x86_64.txt b/ydb/core/grpc_services/base/CMakeLists.windows-x86_64.txt index 25d885cac0cf..adb4bedfe5ff 100644 --- a/ydb/core/grpc_services/base/CMakeLists.windows-x86_64.txt +++ b/ydb/core/grpc_services/base/CMakeLists.windows-x86_64.txt @@ -20,3 +20,7 @@ target_link_libraries(core-grpc_services-base INTERFACE cpp-client-resources yql-public-issue ) +target_sources(core-grpc_services-base INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/base/base_service.h + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/base/base.h +) diff --git a/ydb/core/grpc_services/base/base.h b/ydb/core/grpc_services/base/base.h index ccf75a8c5091..fab62c94cc48 100644 --- a/ydb/core/grpc_services/base/base.h +++ b/ydb/core/grpc_services/base/base.h @@ -12,6 +12,7 @@ #include #include #include +#include #include @@ -20,6 +21,7 @@ #include #include +#include #include #include #include @@ -49,6 +51,16 @@ using TYdbIssueMessageType = Ydb::Issue::IssueMessage; std::pair SplitPath(const TMaybe& database, const TString& path); std::pair SplitPath(const TString& path); +inline TActorId CreateGRpcRequestProxyId(int n = 0) { + if (n == 0) { + const auto actorId = TActorId(0, "GRpcReqProxy"); + return actorId; + } + + const auto actorId = TActorId(0, TStringBuilder() << "GRpcReqPro" << n); + return actorId; +} + struct TRpcServices { enum EServiceId { EvMakeDirectory = EventSpaceBegin(TKikimrEvents::ES_GRPC_CALLS), @@ -222,7 +234,9 @@ struct TRpcServices { EvAcquireYndxRateLimiterResource, EvGrpcRuntimeRequest, EvNodeCheckRequest, - EvStreamWriteRefreshToken // internal call, pair to EvRefreshToken + EvStreamWriteRefreshToken, // internal call, pair to EvRefreshToken + EvRequestAuthAndCheck, // performs authorization and runs GrpcRequestCheckActor + EvRequestAuthAndCheckResult, // !!! DO NOT ADD NEW REQUEST !!! }; @@ -347,6 +361,7 @@ struct TRequestAuxSettings { TRateLimiterMode RlMode = TRateLimiterMode::Off; void (*CustomAttributeProcessor)(const TSchemeBoardEvents::TDescribeSchemeResult& schemeData, ICheckerIface*) = nullptr; TAuditMode AuditMode = TAuditMode::Off; + NJaegerTracing::ERequestType RequestType = NJaegerTracing::ERequestType::UNSPECIFIED; }; // grpc_request_proxy part @@ -356,19 +371,25 @@ class IRequestProxyCtx : public virtual IRequestCtxBase { virtual ~IRequestProxyCtx() = default; // auth - virtual const TMaybe GetYdbToken() const = 0; + virtual const TMaybe GetYdbToken() const = 0; virtual void UpdateAuthState(NYdbGrpc::TAuthState::EAuthState state) = 0; virtual void SetInternalToken(const TIntrusiveConstPtr& token) = 0; virtual const NYdbGrpc::TAuthState& GetAuthState() const = 0; virtual void ReplyUnauthenticated(const TString& msg = "") = 0; virtual void ReplyUnavaliable() = 0; + virtual TVector FindClientCertPropertyValues() const = 0; - //tracing + // tracing virtual void StartTracing(NWilson::TSpan&& span) = 0; - virtual void LegacyFinishSpan() = 0; + virtual void FinishSpan() = 0; + // Returns pointer to a state that denotes whether this request ever been a subject + // to tracing decision. CAN be nullptr + virtual bool* IsTracingDecided() = 0; // Used for per-type sampling - virtual const TString& GetInternalRequestType() const = 0; + virtual NJaegerTracing::TRequestDiscriminator GetRequestDiscriminator() const { + return NJaegerTracing::TRequestDiscriminator::EMPTY; + }; // validation virtual bool Validate(TString& error) = 0; @@ -487,10 +508,9 @@ class TRefreshTokenImpl } void StartTracing(NWilson::TSpan&& /*span*/) override {} - void LegacyFinishSpan() override {} - const TString& GetInternalRequestType() const final { - static const TString empty = ""; - return empty; + void FinishSpan() override {} + bool* IsTracingDecided() override { + return nullptr; } void UpdateAuthState(NYdbGrpc::TAuthState::EAuthState state) override { @@ -600,6 +620,10 @@ class TRefreshTokenImpl Y_UNUSED(database); } + TVector FindClientCertPropertyValues() const override { + return {}; + } + TActorId GetFromId() const { return From_; } @@ -824,6 +848,10 @@ class TGRpcRequestBiStreamWrapper Ctx_->UseDatabase(database); } + TVector FindClientCertPropertyValues() const override { + return {}; + } + IStreamCtx* GetStreamCtx() { return Ctx_.Get(); } @@ -893,12 +921,12 @@ class TGRpcRequestBiStreamWrapper Span_ = std::move(span); } - void LegacyFinishSpan() override { + void FinishSpan() override { Span_.End(); } - const TString& GetInternalRequestType() const final { - return TRequest::descriptor()->full_name(); + bool* IsTracingDecided() override { + return &IsTracingDecided_; } // IRequestCtxBase @@ -919,6 +947,7 @@ class TGRpcRequestBiStreamWrapper bool RlAllowed_; IGRpcProxyCounters::TPtr Counters_; NWilson::TSpan Span_; + bool IsTracingDecided_ = false; }; template @@ -1106,6 +1135,10 @@ class TGRpcRequestWrapperImpl return Ctx_->FindClientCert(); } + TVector FindClientCertPropertyValues() const override { + return Ctx_->FindClientCert(); + } + void SetDiskQuotaExceeded(bool disk) override { if (!QuotaExceeded) { QuotaExceeded = google::protobuf::Arena::CreateMessage(GetArena()); @@ -1311,10 +1344,12 @@ class TGRpcRequestWrapperImpl Span_ = std::move(span); } - void LegacyFinishSpan() override {} + void FinishSpan() override { + Span_.End(); + } - const TString& GetInternalRequestType() const final { - return TRequest::descriptor()->full_name(); + bool* IsTracingDecided() override { + return &IsTracingDecided_; } void ReplyGrpcError(grpc::StatusCode code, const TString& msg, const TString& details = "") { @@ -1374,6 +1409,7 @@ class TGRpcRequestWrapperImpl TAuditLogParts AuditLogParts; TAuditLogHook AuditLogHook; bool RequestFinished = false; + bool IsTracingDecided_ = false; }; template @@ -1418,7 +1454,7 @@ class TGrpcRequestCall using TRequestIface = typename std::conditional::type; public: - static IActor* CreateRpcActor(typename std::conditional::type* msg); + static IActor* CreateRpcActor(TRequestIface* msg); static constexpr bool IsOp = IsOperation; using TBase = std::conditional_t::Value, @@ -1435,8 +1471,6 @@ class TGrpcRequestCall { } void Pass(const IFacilityProvider& facility) override { - this->Span_.End(); - try { PassMethod(std::move(std::unique_ptr(this)), facility); } catch (const std::exception& ex) { @@ -1460,6 +1494,13 @@ class TGrpcRequestCall } } + NJaegerTracing::TRequestDiscriminator GetRequestDiscriminator() const override { + return { + .RequestType = AuxSettings.RequestType, + .Database = TBase::GetDatabaseName(), + }; + } + // IRequestCtxBaseMtSafe // bool IsAuditable() const override { @@ -1562,5 +1603,263 @@ class TGRpcRequestValidationWrapper bool RlAllowed; }; +class TEvRequestAuthAndCheckResult : public TEventLocal { +public: + TEvRequestAuthAndCheckResult(Ydb::StatusIds::StatusCode status, const NYql::TIssues& issues) + : Status(status) + , Issues(issues) + {} + + TEvRequestAuthAndCheckResult(Ydb::StatusIds::StatusCode status, const NYql::TIssue& issue) + : Status(status) + { + Issues.AddIssue(issue); + } + + TEvRequestAuthAndCheckResult(Ydb::StatusIds::StatusCode status, const TString& error) + : Status(status) + { + Issues.AddIssue(error); + } + + TEvRequestAuthAndCheckResult(const TString& database, const TMaybe& ydbToken, const TIntrusiveConstPtr& userToken) + : Database(database) + , YdbToken(ydbToken) + , UserToken(userToken) + {} + + Ydb::StatusIds::StatusCode Status = Ydb::StatusIds::SUCCESS; + NYql::TIssues Issues; + TString Database; + TMaybe YdbToken; + TIntrusiveConstPtr UserToken; +}; + +class TEvRequestAuthAndCheck + : public IRequestProxyCtx + , public TEventLocal { +public: + TEvRequestAuthAndCheck(const TString& database, const TMaybe& ydbToken, NActors::TActorId sender) + : Database(database) + , YdbToken(ydbToken) + , Sender(sender) + , AuthState(true) + {} + + // IRequestProxyCtx + const TMaybe GetYdbToken() const override { + return YdbToken; + } + + void UpdateAuthState(NYdbGrpc::TAuthState::EAuthState state) override { + AuthState.State = state; + } + + void SetInternalToken(const TIntrusiveConstPtr& token) override { + UserToken = token; + } + + const NYdbGrpc::TAuthState& GetAuthState() const override { + return AuthState; + } + + void ReplyUnauthenticated(const TString& msg = "") override { + if (msg) { + IssueManager.RaiseIssue(NYql::TIssue{msg}); + } + ReplyWithYdbStatus(Ydb::StatusIds::UNAUTHORIZED); + } + + void ReplyWithYdbStatus(Ydb::StatusIds::StatusCode status) override { + const NActors::TActorContext& ctx = NActors::TActivationContext::AsActorContext(); + if (status == Ydb::StatusIds::SUCCESS) { + ctx.Send(Sender, + new TEvRequestAuthAndCheckResult( + Database, + YdbToken, + UserToken + ) + ); + } else { + ctx.Send(Sender, + new TEvRequestAuthAndCheckResult( + status, + IssueManager.GetIssues() + ) + ); + } + } + + void ReplyWithRpcStatus(grpc::StatusCode code, const TString& reason, const TString& details) override { + Y_UNUSED(code); + if (reason) { + IssueManager.RaiseIssue(NYql::TIssue{reason}); + } + if (details) { + IssueManager.RaiseIssue(NYql::TIssue{details}); + } + ReplyWithYdbStatus(Ydb::StatusIds::GENERIC_ERROR); + } + + void ReplyUnavaliable() override { + ReplyWithYdbStatus(Ydb::StatusIds::UNAVAILABLE); + } + + void RaiseIssue(const NYql::TIssue& issue) override { + IssueManager.RaiseIssue(issue); + } + + void RaiseIssues(const NYql::TIssues& issues) override { + IssueManager.RaiseIssues(issues); + } + + TVector FindClientCertPropertyValues() const override { + return {}; + } + + void StartTracing(NWilson::TSpan&& span) override { + Span = std::move(span); + } + void FinishSpan() override { + Span.End(); + } + + bool* IsTracingDecided() override { + return nullptr; + } + + bool Validate(TString& /*error*/) override { + return true; + } + + void SetCounters(IGRpcProxyCounters::TPtr counters) override { + Counters = std::move(counters); + } + + IGRpcProxyCounters::TPtr GetCounters() const override { + return Counters; + } + + bool HasClientCapability(const TString&) const override { + return false; + } + + void UseDatabase(const TString& database) override { + Database = database; + } + + void SetRespHook(TRespHook&& /*hook*/) override { + } + + void SetRlPath(TMaybe&& path) override { + RlPath = std::move(path); + } + + TRateLimiterMode GetRlMode() const override { + return TRateLimiterMode::Rps; + } + + bool TryCustomAttributeProcess(const TSchemeBoardEvents::TDescribeSchemeResult& /*schemeData*/, ICheckerIface* /*iface*/) override { + return false; + } + + void Pass(const IFacilityProvider& /*facility*/) override { + ReplyWithYdbStatus(Ydb::StatusIds::SUCCESS); + } + + void SetAuditLogHook(TAuditLogHook&& /*hook*/) override { + } + + void SetDiskQuotaExceeded(bool /*disk*/) override { + } + + void AddAuditLogPart(const TStringBuf& name, const TString& value) override { + AuditLogParts.emplace_back(name, value); + } + + const TAuditLogParts& GetAuditLogParts() const override { + return AuditLogParts; + } + + TMaybe GetTraceId() const override { + return {}; + } + + NWilson::TTraceId GetWilsonTraceId() const override { + return Span.GetTraceId(); + } + + const TMaybe GetDatabaseName() const override { + return Database ? TMaybe(Database) : Nothing(); + } + + const TIntrusiveConstPtr& GetInternalToken() const override { + return UserToken; + } + + const TString& GetSerializedToken() const override { + if (UserToken) { + return UserToken->GetSerializedToken(); + } + + return EmptySerializedTokenMessage; + } + + bool IsClientLost() const override { + return false; + } + + const TMaybe GetPeerMetaValues(const TString&) const override { + return {}; + } + + TString GetPeerName() const override { + return {}; + } + + const TString& GetRequestName() const override { + static TString str = "request auth and check internal request"; + return str; + } + + TMaybe GetRlPath() const override { + return RlPath; + } + + TInstant GetDeadline() const override { + return deadline; + } + + bool GetDiskQuotaExceeded() const override { + return false; + } + + TMaybe GetSdkBuildInfo() const { + return {}; + } + + TMaybe GetGrpcUserAgent() const { + return {}; + } + + TVector FindClientCert() const override { + return {}; + } + + TString Database; + TMaybe YdbToken; + NActors::TActorId Sender; + NYdbGrpc::TAuthState AuthState; + NWilson::TSpan Span; + IGRpcProxyCounters::TPtr Counters; + TMaybe RlPath; + TAuditLogParts AuditLogParts; + NYql::TIssueManager IssueManager; + TIntrusiveConstPtr UserToken; + TInstant deadline = TInstant::Now() + TDuration::Seconds(10); + + inline static const TString EmptySerializedTokenMessage; +}; + } // namespace NGRpcService } // namespace NKikimr diff --git a/ydb/core/grpc_services/base/ya.make b/ydb/core/grpc_services/base/ya.make index 5151c40f90ba..1e94d4c16c71 100644 --- a/ydb/core/grpc_services/base/ya.make +++ b/ydb/core/grpc_services/base/ya.make @@ -11,6 +11,7 @@ PEERDIR( ydb/core/base ydb/core/grpc_services/counters ydb/core/grpc_streaming + ydb/core/jaeger_tracing ydb/public/api/protos ydb/public/sdk/cpp/client/resources ydb/library/yql/public/issue diff --git a/ydb/core/grpc_services/cancelation/protos/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_services/cancelation/protos/CMakeLists.darwin-arm64.txt index e12075948358..f910f456f370 100644 --- a/ydb/core/grpc_services/cancelation/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/core/grpc_services/cancelation/protos/CMakeLists.darwin-arm64.txt @@ -29,6 +29,9 @@ target_link_libraries(grpc_services-cancelation-protos PUBLIC target_proto_messages(grpc_services-cancelation-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/cancelation/protos/event.proto ) +target_sources(grpc_services-cancelation-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/grpc_services/cancelation/protos/event.pb.h +) target_proto_addincls(grpc_services-cancelation-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/grpc_services/cancelation/protos/CMakeLists.darwin-x86_64.txt b/ydb/core/grpc_services/cancelation/protos/CMakeLists.darwin-x86_64.txt index e12075948358..f910f456f370 100644 --- a/ydb/core/grpc_services/cancelation/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/grpc_services/cancelation/protos/CMakeLists.darwin-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(grpc_services-cancelation-protos PUBLIC target_proto_messages(grpc_services-cancelation-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/cancelation/protos/event.proto ) +target_sources(grpc_services-cancelation-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/grpc_services/cancelation/protos/event.pb.h +) target_proto_addincls(grpc_services-cancelation-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/grpc_services/cancelation/protos/CMakeLists.linux-aarch64.txt b/ydb/core/grpc_services/cancelation/protos/CMakeLists.linux-aarch64.txt index 836c5d515b14..3f5c3fc8621a 100644 --- a/ydb/core/grpc_services/cancelation/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/core/grpc_services/cancelation/protos/CMakeLists.linux-aarch64.txt @@ -30,6 +30,9 @@ target_link_libraries(grpc_services-cancelation-protos PUBLIC target_proto_messages(grpc_services-cancelation-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/cancelation/protos/event.proto ) +target_sources(grpc_services-cancelation-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/grpc_services/cancelation/protos/event.pb.h +) target_proto_addincls(grpc_services-cancelation-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/grpc_services/cancelation/protos/CMakeLists.linux-x86_64.txt b/ydb/core/grpc_services/cancelation/protos/CMakeLists.linux-x86_64.txt index 836c5d515b14..3f5c3fc8621a 100644 --- a/ydb/core/grpc_services/cancelation/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/core/grpc_services/cancelation/protos/CMakeLists.linux-x86_64.txt @@ -30,6 +30,9 @@ target_link_libraries(grpc_services-cancelation-protos PUBLIC target_proto_messages(grpc_services-cancelation-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/cancelation/protos/event.proto ) +target_sources(grpc_services-cancelation-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/grpc_services/cancelation/protos/event.pb.h +) target_proto_addincls(grpc_services-cancelation-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/grpc_services/cancelation/protos/CMakeLists.windows-x86_64.txt b/ydb/core/grpc_services/cancelation/protos/CMakeLists.windows-x86_64.txt index e12075948358..f910f456f370 100644 --- a/ydb/core/grpc_services/cancelation/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/core/grpc_services/cancelation/protos/CMakeLists.windows-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(grpc_services-cancelation-protos PUBLIC target_proto_messages(grpc_services-cancelation-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/cancelation/protos/event.proto ) +target_sources(grpc_services-cancelation-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/grpc_services/cancelation/protos/event.pb.h +) target_proto_addincls(grpc_services-cancelation-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/grpc_services/counters/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_services/counters/CMakeLists.darwin-arm64.txt index 9738ee1e46a4..c5246c9363fa 100644 --- a/ydb/core/grpc_services/counters/CMakeLists.darwin-arm64.txt +++ b/ydb/core/grpc_services/counters/CMakeLists.darwin-arm64.txt @@ -19,6 +19,8 @@ target_link_libraries(core-grpc_services-counters PUBLIC core-sys_view-service ) target_sources(core-grpc_services-counters PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/counters.h + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/proxy_counters.h ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/counters.cpp ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/proxy_counters.cpp ) diff --git a/ydb/core/grpc_services/counters/CMakeLists.darwin-x86_64.txt b/ydb/core/grpc_services/counters/CMakeLists.darwin-x86_64.txt index 9738ee1e46a4..c5246c9363fa 100644 --- a/ydb/core/grpc_services/counters/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/grpc_services/counters/CMakeLists.darwin-x86_64.txt @@ -19,6 +19,8 @@ target_link_libraries(core-grpc_services-counters PUBLIC core-sys_view-service ) target_sources(core-grpc_services-counters PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/counters.h + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/proxy_counters.h ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/counters.cpp ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/proxy_counters.cpp ) diff --git a/ydb/core/grpc_services/counters/CMakeLists.linux-aarch64.txt b/ydb/core/grpc_services/counters/CMakeLists.linux-aarch64.txt index 2c1e1761e725..b86ee7ae74ae 100644 --- a/ydb/core/grpc_services/counters/CMakeLists.linux-aarch64.txt +++ b/ydb/core/grpc_services/counters/CMakeLists.linux-aarch64.txt @@ -20,6 +20,8 @@ target_link_libraries(core-grpc_services-counters PUBLIC core-sys_view-service ) target_sources(core-grpc_services-counters PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/counters.h + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/proxy_counters.h ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/counters.cpp ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/proxy_counters.cpp ) diff --git a/ydb/core/grpc_services/counters/CMakeLists.linux-x86_64.txt b/ydb/core/grpc_services/counters/CMakeLists.linux-x86_64.txt index 2c1e1761e725..b86ee7ae74ae 100644 --- a/ydb/core/grpc_services/counters/CMakeLists.linux-x86_64.txt +++ b/ydb/core/grpc_services/counters/CMakeLists.linux-x86_64.txt @@ -20,6 +20,8 @@ target_link_libraries(core-grpc_services-counters PUBLIC core-sys_view-service ) target_sources(core-grpc_services-counters PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/counters.h + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/proxy_counters.h ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/counters.cpp ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/proxy_counters.cpp ) diff --git a/ydb/core/grpc_services/counters/CMakeLists.windows-x86_64.txt b/ydb/core/grpc_services/counters/CMakeLists.windows-x86_64.txt index 9738ee1e46a4..c5246c9363fa 100644 --- a/ydb/core/grpc_services/counters/CMakeLists.windows-x86_64.txt +++ b/ydb/core/grpc_services/counters/CMakeLists.windows-x86_64.txt @@ -19,6 +19,8 @@ target_link_libraries(core-grpc_services-counters PUBLIC core-sys_view-service ) target_sources(core-grpc_services-counters PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/counters.h + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/proxy_counters.h ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/counters.cpp ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/counters/proxy_counters.cpp ) diff --git a/ydb/core/grpc_services/grpc_request_check_actor.h b/ydb/core/grpc_services/grpc_request_check_actor.h index a3e9ff044168..401666eefd18 100644 --- a/ydb/core/grpc_services/grpc_request_check_actor.h +++ b/ydb/core/grpc_services/grpc_request_check_actor.h @@ -17,12 +17,27 @@ #include #include #include +#include #include namespace NKikimr { namespace NGRpcService { +inline const TVector& GetEntriesForAuthAndCheckRequest(TEvRequestAuthAndCheck::TPtr& ev) { + if (ev->Get()->YdbToken && ev->Get()->YdbToken->StartsWith("Bearer")) { + if (AppData()->AuthConfig.GetUseAccessService() + && (AppData()->DomainsConfig.GetSecurityConfig().ViewerAllowedSIDsSize() > 0 || AppData()->DomainsConfig.GetSecurityConfig().MonitoringAllowedSIDsSize() > 0)) { + static TVector entries = { + {NKikimr::TEvTicketParser::TEvAuthorizeTicket::ToPermissions({"ydb.developerApi.get", "ydb.developerApi.update"}), {{"gizmo_id", "gizmo"}}} + }; + return entries; + } + } + static TVector emptyEntries = {}; + return emptyEntries; +} + template class TGrpcRequestCheckActor : public TGRpcRequestProxyHandleMethods @@ -58,6 +73,7 @@ class TGrpcRequestCheckActor } void ProcessCommonAttributes(const TSchemeBoardEvents::TDescribeSchemeResult& schemeData) { + TVector entries; static std::vector allowedAttributes = {"folder_id", "service_account_id", "database_id"}; TVector> attributes; attributes.reserve(schemeData.GetPathDescription().UserAttributesSize()); @@ -67,7 +83,16 @@ class TGrpcRequestCheckActor } } if (!attributes.empty()) { - SetEntries({{GetPermissions(), attributes}}); + entries.emplace_back(GetPermissions(), attributes); + } + + if constexpr (std::is_same_v) { + const auto& e = GetEntriesForAuthAndCheckRequest(Request_); + entries.insert(entries.end(), e.begin(), e.end()); + } + + if (!entries.empty()) { + SetEntries(entries); } } @@ -77,31 +102,42 @@ class TGrpcRequestCheckActor void InitializeAttributes(const TSchemeBoardEvents::TDescribeSchemeResult& schemeData); + void Initialize(const TSchemeBoardEvents::TDescribeSchemeResult& schemeData) { + TString peerName = GrpcRequestBaseCtx_->GetPeerName(); + TBase::SetPeerName(peerName); + InitializeAttributes(schemeData); + TBase::SetDatabase(CheckedDatabaseName_); + InitializeAuditSettings(schemeData); + } + TGrpcRequestCheckActor( const TActorId& owner, const TSchemeBoardEvents::TDescribeSchemeResult& schemeData, TIntrusivePtr securityObject, TAutoPtr> request, IGRpcProxyCounters::TPtr counters, - bool skipCheckConnectRigths, + bool skipCheckConnectRights, const IFacilityProvider* facilityProvider) : Owner_(owner) , Request_(std::move(request)) , Counters_(counters) , SecurityObject_(std::move(securityObject)) - , SkipCheckConnectRigths_(skipCheckConnectRigths) + , GrpcRequestBaseCtx_(Request_->Get()) + , SkipCheckConnectRights_(skipCheckConnectRights) , FacilityProvider_(facilityProvider) + , Span_(TWilsonGrpc::RequestCheckActor, GrpcRequestBaseCtx_->GetWilsonTraceId(), "RequestCheckActor") { - GrpcRequestBaseCtx_ = Request_->Get(); TMaybe authToken = GrpcRequestBaseCtx_->GetYdbToken(); if (authToken) { - TString peerName = GrpcRequestBaseCtx_->GetPeerName(); TBase::SetSecurityToken(authToken.GetRef()); - TBase::SetPeerName(peerName); - InitializeAttributes(schemeData); - TBase::SetDatabase(CheckedDatabaseName_); - InitializeAuditSettings(schemeData); + } else { + LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::GRPC_PROXY, "Ydb token was not provided. Try to auth by certificate"); + const auto& clientCertificates = GrpcRequestBaseCtx_->FindClientCertPropertyValues(); + if (!clientCertificates.empty()) { + TBase::SetSecurityToken(TString(clientCertificates.front())); + } } + Initialize(schemeData); } void Bootstrap(const TActorContext& ctx) { @@ -225,7 +261,8 @@ class TGrpcRequestCheckActor } void HandlePoison(TEvents::TEvPoisonPill::TPtr&) { - TBase::PassAway(); + GrpcRequestBaseCtx_->FinishSpan(); + PassAway(); } ui64 GetChannelBufferSize() const override { @@ -238,6 +275,11 @@ class TGrpcRequestCheckActor return this->RegisterWithSameMailbox(actor); } + void PassAway() override { + Span_.EndOk(); + TBase::PassAway(); + } + private: static NYql::TIssues GetRlIssues(const Ydb::RateLimiter::AcquireResourceResponse& resp) { NYql::TIssues opIssues; @@ -374,35 +416,40 @@ class TGrpcRequestCheckActor void ReplyUnauthorizedAndDie(const NYql::TIssue& issue) { GrpcRequestBaseCtx_->RaiseIssue(issue); GrpcRequestBaseCtx_->ReplyWithYdbStatus(Ydb::StatusIds::UNAUTHORIZED); - TBase::PassAway(); + GrpcRequestBaseCtx_->FinishSpan(); + PassAway(); } void ReplyUnavailableAndDie(const NYql::TIssue& issue) { GrpcRequestBaseCtx_->RaiseIssue(issue); GrpcRequestBaseCtx_->ReplyWithYdbStatus(Ydb::StatusIds::UNAVAILABLE); - TBase::PassAway(); + GrpcRequestBaseCtx_->FinishSpan(); + PassAway(); } void ReplyUnavailableAndDie(const NYql::TIssues& issue) { GrpcRequestBaseCtx_->RaiseIssues(issue); GrpcRequestBaseCtx_->ReplyWithYdbStatus(Ydb::StatusIds::UNAVAILABLE); - TBase::PassAway(); + GrpcRequestBaseCtx_->FinishSpan(); + PassAway(); } void ReplyUnauthenticatedAndDie() { GrpcRequestBaseCtx_->ReplyUnauthenticated("Unknown database"); - TBase::PassAway(); + GrpcRequestBaseCtx_->FinishSpan(); + PassAway(); } void ReplyOverloadedAndDie(const NYql::TIssue& issue) { GrpcRequestBaseCtx_->RaiseIssue(issue); GrpcRequestBaseCtx_->ReplyWithYdbStatus(Ydb::StatusIds::OVERLOADED); - TBase::PassAway(); + GrpcRequestBaseCtx_->FinishSpan(); + PassAway(); } void Continue() { if (!ValidateAndReplyOnError(GrpcRequestBaseCtx_)) { - TBase::PassAway(); + PassAway(); return; } HandleAndDie(Request_); @@ -413,8 +460,9 @@ class TGrpcRequestCheckActor // and authorization check against the database AuditRequest(GrpcRequestBaseCtx_, CheckedDatabaseName_, TBase::GetUserSID()); + GrpcRequestBaseCtx_->FinishSpan(); event->Release().Release()->Pass(*this); - TBase::PassAway(); + PassAway(); } void HandleAndDie(TAutoPtr>&) { @@ -426,20 +474,26 @@ class TGrpcRequestCheckActor ReplyBackAndDie(); } + void HandleAndDie(TEvRequestAuthAndCheck::TPtr& ev) { + GrpcRequestBaseCtx_->FinishSpan(); + ev->Get()->ReplyWithYdbStatus(Ydb::StatusIds::SUCCESS); + PassAway(); + } + template void HandleAndDie(T& event) { - GrpcRequestBaseCtx_->LegacyFinishSpan(); + GrpcRequestBaseCtx_->FinishSpan(); TGRpcRequestProxyHandleMethods::Handle(event, TlsActivationContext->AsActorContext()); - TBase::PassAway(); + PassAway(); } void ReplyBackAndDie() { TlsActivationContext->Send(Request_->Forward(Owner_)); - TBase::PassAway(); + PassAway(); } std::pair> CheckConnectRight() { - if (SkipCheckConnectRigths_) { + if (SkipCheckConnectRights_) { LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::GRPC_PROXY_NO_CONNECT_ACCESS, "Skip check permission connect db, AllowYdbRequestsWithoutDatabase is off, there is no db provided from user" << ", database: " << CheckedDatabaseName_ @@ -507,11 +561,12 @@ class TGrpcRequestCheckActor TString CheckedDatabaseName_; IRequestProxyCtx* GrpcRequestBaseCtx_; NRpcService::TRlConfig* RlConfig = nullptr; - bool SkipCheckConnectRigths_ = false; + bool SkipCheckConnectRights_ = false; std::vector> Attributes_; const IFacilityProvider* FacilityProvider_; bool DmlAuditEnabled_ = false; std::unordered_set DmlAuditExpectedSubjects_; + NWilson::TSpan Span_; }; // default behavior - attributes in schema @@ -563,10 +618,10 @@ IActor* CreateGrpcRequestCheckActor( TIntrusivePtr securityObject, TAutoPtr> request, IGRpcProxyCounters::TPtr counters, - bool skipCheckConnectRigths, + bool skipCheckConnectRights, const IFacilityProvider* facilityProvider) { - return new TGrpcRequestCheckActor(owner, schemeData, std::move(securityObject), std::move(request), counters, skipCheckConnectRigths, facilityProvider); + return new TGrpcRequestCheckActor(owner, schemeData, std::move(securityObject), std::move(request), counters, skipCheckConnectRights, facilityProvider); } } diff --git a/ydb/core/grpc_services/grpc_request_proxy.cpp b/ydb/core/grpc_services/grpc_request_proxy.cpp index ca2d67d49818..281ca5ad7324 100644 --- a/ydb/core/grpc_services/grpc_request_proxy.cpp +++ b/ydb/core/grpc_services/grpc_request_proxy.cpp @@ -8,14 +8,12 @@ #include #include #include -#include #include +#include #include #include #include -#include - namespace NKikimr { namespace NGRpcService { @@ -61,9 +59,9 @@ class TGRpcRequestProxyImpl { using TBase = TActorBootstrapped; public: - explicit TGRpcRequestProxyImpl(const NKikimrConfig::TAppConfig& appConfig, TIntrusivePtr icb) + explicit TGRpcRequestProxyImpl(const NKikimrConfig::TAppConfig& appConfig, TIntrusivePtr tracingControl) : ChannelBufferSize(appConfig.GetTableServiceConfig().GetResourceManager().GetChannelBufferSize()) - , Icb(std::move(icb)) + , TracingControl(std::move(tracingControl)) { } void Bootstrap(const TActorContext& ctx); @@ -82,8 +80,6 @@ class TGRpcRequestProxyImpl void HandleSchemeBoard(TSchemeBoardEvents::TEvNotifyDelete::TPtr& ev); void ReplayEvents(const TString& databaseName, const TActorContext& ctx); - static TString InternalRequestTypeToControlDomain(const TString& type); - TTracingControl& GetTracingControl(const TString& type); void MaybeStartTracing(IRequestProxyCtx& ctx); static bool IsAuthStateOK(const IRequestProxyCtx& ctx); @@ -92,7 +88,7 @@ class TGRpcRequestProxyImpl void Handle(TAutoPtr>& event, const TActorContext& ctx) { IRequestProxyCtx* requestBaseCtx = event->Get(); if (ValidateAndReplyOnError(requestBaseCtx)) { - requestBaseCtx->LegacyFinishSpan(); + requestBaseCtx->FinishSpan(); TGRpcRequestProxyHandleMethods::Handle(event, ctx); } } @@ -100,7 +96,7 @@ class TGRpcRequestProxyImpl void Handle(TEvListEndpointsRequest::TPtr& event, const TActorContext& ctx) { IRequestProxyCtx* requestBaseCtx = event->Get(); if (ValidateAndReplyOnError(requestBaseCtx)) { - requestBaseCtx->LegacyFinishSpan(); + requestBaseCtx->FinishSpan(); TGRpcRequestProxy::Handle(event, ctx); } } @@ -108,6 +104,7 @@ class TGRpcRequestProxyImpl void Handle(TEvProxyRuntimeEvent::TPtr& event, const TActorContext&) { IRequestProxyCtx* requestBaseCtx = event->Get(); if (ValidateAndReplyOnError(requestBaseCtx)) { + requestBaseCtx->FinishSpan(); event->Release().Release()->Pass(*this); } } @@ -122,6 +119,11 @@ class TGRpcRequestProxyImpl NYql::TIssues()}); } + void Handle(TEvRequestAuthAndCheck::TPtr& ev, const TActorContext&) { + ev->Get()->FinishSpan(); + ev->Get()->ReplyWithYdbStatus(Ydb::StatusIds::SUCCESS); + } + // returns true and defer event if no updates for given database // otherwice returns false and leave event untouched template @@ -139,22 +141,21 @@ class TGRpcRequestProxyImpl return true; } - template + template void PreHandle(TAutoPtr>& event, const TActorContext& ctx) { - IRequestProxyCtx* requestBaseCtx = event->Get(); - LogRequest(event); + IRequestProxyCtx* requestBaseCtx = event->Get(); if (!SchemeCache) { const TString error = "Grpc proxy is not ready to accept request, no proxy service"; LOG_ERROR_S(ctx, NKikimrServices::GRPC_SERVER, error); const auto issue = MakeIssue(NKikimrIssues::TIssuesIds::GENERIC_TXPROXY_ERROR, error); requestBaseCtx->RaiseIssue(issue); requestBaseCtx->ReplyWithYdbStatus(Ydb::StatusIds::UNAVAILABLE); + requestBaseCtx->FinishSpan(); return; } - MaybeStartTracing(*requestBaseCtx); if (IsAuthStateOK(*requestBaseCtx)) { @@ -166,6 +167,7 @@ class TGRpcRequestProxyImpl if (state.State == NYdbGrpc::TAuthState::AS_FAIL) { requestBaseCtx->ReplyUnauthenticated(); + requestBaseCtx->FinishSpan(); return; } @@ -175,6 +177,7 @@ class TGRpcRequestProxyImpl const auto issue = MakeIssue(NKikimrIssues::TIssuesIds::YDB_AUTH_UNAVAILABLE, error); requestBaseCtx->RaiseIssue(issue); requestBaseCtx->ReplyUnavaliable(); + requestBaseCtx->FinishSpan(); return; } @@ -190,8 +193,9 @@ class TGRpcRequestProxyImpl if (maybeDatabaseName && !maybeDatabaseName.GetRef().empty()) { databaseName = CanonizePath(maybeDatabaseName.GetRef()); } else { - if (!AllowYdbRequestsWithoutDatabase && DynamicNode) { - requestBaseCtx->ReplyUnauthenticated("Requests without specified database is not allowed"); + if (!AllowYdbRequestsWithoutDatabase && DynamicNode && !std::is_same_v) { // TEvRequestAuthAndCheck is allowed to be processed without database + requestBaseCtx->ReplyUnauthenticated("Requests without specified database are not allowed"); + requestBaseCtx->FinishSpan(); return; } else { databaseName = RootDatabase; @@ -202,6 +206,7 @@ class TGRpcRequestProxyImpl if (databaseName.empty()) { Counters->IncDatabaseUnavailableCounter(); requestBaseCtx->ReplyUnauthenticated("Empty database name"); + requestBaseCtx->FinishSpan(); return; } auto it = Databases.find(databaseName); @@ -216,6 +221,8 @@ class TGRpcRequestProxyImpl const auto issue = MakeIssue(NKikimrIssues::TIssuesIds::YDB_DB_NOT_READY, error); requestBaseCtx->RaiseIssue(issue); requestBaseCtx->ReplyUnavaliable(); + requestBaseCtx->FinishSpan(); + return; } return; } @@ -236,6 +243,7 @@ class TGRpcRequestProxyImpl auto issue = MakeIssue(NKikimrIssues::TIssuesIds::ACCESS_DENIED, error); requestBaseCtx->RaiseIssue(issue); requestBaseCtx->ReplyWithYdbStatus(Ydb::StatusIds::UNAUTHORIZED); + requestBaseCtx->FinishSpan(); return; } } @@ -247,6 +255,7 @@ class TGRpcRequestProxyImpl auto issue = MakeIssue(NKikimrIssues::TIssuesIds::YDB_DB_NOT_READY, "database unavailable"); requestBaseCtx->RaiseIssue(issue); requestBaseCtx->ReplyWithYdbStatus(Ydb::StatusIds::UNAVAILABLE); + requestBaseCtx->FinishSpan(); return; } @@ -255,6 +264,7 @@ class TGRpcRequestProxyImpl LOG_DEBUG(*TlsActivationContext, NKikimrServices::GRPC_SERVER, "Client was disconnected before processing request (grpc request proxy)"); requestBaseCtx->ReplyWithYdbStatus(Ydb::StatusIds::UNAVAILABLE); + requestBaseCtx->FinishSpan(); return; } @@ -272,6 +282,8 @@ class TGRpcRequestProxyImpl const auto issue = MakeIssue(NKikimrIssues::TIssuesIds::GENERIC_TXPROXY_ERROR, "Can't authenticate request"); requestBaseCtx->RaiseIssue(issue); requestBaseCtx->ReplyWithYdbStatus(Ydb::StatusIds::BAD_REQUEST); + requestBaseCtx->FinishSpan(); + return; } void ForgetDatabase(const TString& database); @@ -291,6 +303,7 @@ class TGRpcRequestProxyImpl for (auto& [_, queue] : DeferredEvents) { for (TEventReqHolder& req : queue) { req.Ctx->ReplyUnavaliable(); + req.Ctx->FinishSpan(); } } @@ -315,8 +328,7 @@ class TGRpcRequestProxyImpl bool DynamicNode = false; TString RootDatabase; IGRpcProxyCounters::TPtr Counters; - THashMap TracingControls; - TIntrusivePtr Icb; + TIntrusivePtr TracingControl; }; void TGRpcRequestProxyImpl::Bootstrap(const TActorContext& ctx) { @@ -415,51 +427,26 @@ bool TGRpcRequestProxyImpl::IsAuthStateOK(const IRequestProxyCtx& ctx) { state.NeedAuth == false && !ctx.GetYdbToken(); } -TString TGRpcRequestProxyImpl::InternalRequestTypeToControlDomain(const TString& type) { - static constexpr TStringBuf ydbNamespacePrefix = "Ydb."; - static constexpr TStringBuf requestSuffix = "Request"; - - TString controlDomain = type; - if (controlDomain.StartsWith(ydbNamespacePrefix)) { - controlDomain.erase(0, ydbNamespacePrefix.size()); - } - if (controlDomain.EndsWith(requestSuffix)) { - controlDomain.erase(controlDomain.size() - requestSuffix.size()); - } - - return controlDomain; -} - -TTracingControl& TGRpcRequestProxyImpl::GetTracingControl(const TString& type) { - if (auto it = TracingControls.find(type); it != TracingControls.end()) { - return it->second; - } - auto tracingControlsDomain = InternalRequestTypeToControlDomain(type); - auto domain = TString::Join("TracingControls.", tracingControlsDomain); - TTracingControl control(Icb, TAppData::TimeProvider, TAppData::RandomProvider, std::move(domain)); - return TracingControls.emplace(type, std::move(control)).first->second; -} - void TGRpcRequestProxyImpl::MaybeStartTracing(IRequestProxyCtx& ctx) { - auto requestType = ctx.GetInternalRequestType(); - if (requestType.empty()) { + auto isTracingDecided = ctx.IsTracingDecided(); + if (!isTracingDecided) { return; } + if (std::exchange(*isTracingDecided, true)) { + return; + } + NWilson::TTraceId traceId; if (const auto otelHeader = ctx.GetPeerMetaValues(NYdb::OTEL_TRACE_HEADER)) { - traceId = NWilson::TTraceId::FromTraceparentHeader(otelHeader.GetRef()); - } - auto& control = GetTracingControl(requestType); - if (traceId && control.ThrottleExternal()) { - LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::GRPC_SERVER, "Dropping external traceId " << traceId.GetHexTraceId() << " for request type " << requestType); - traceId = {}; - } - if (!traceId && control.SampleThrottle()) { - traceId = NWilson::TTraceId::NewTraceId(control.SampledVerbosity(), 4095); - LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::GRPC_SERVER, "Created new traceId " << traceId.GetHexTraceId() << " for request type " << requestType); + traceId = NWilson::TTraceId::FromTraceparentHeader(otelHeader.GetRef(), TComponentTracingLevels::ProductionVerbose); } + TracingControl->HandleTracing(traceId, ctx.GetRequestDiscriminator()); if (traceId) { NWilson::TSpan grpcRequestProxySpan(TWilsonGrpc::RequestProxy, std::move(traceId), "GrpcRequestProxy"); + if (auto database = ctx.GetDatabaseName()) { + grpcRequestProxySpan.Attribute("database", std::move(*database)); + } + grpcRequestProxySpan.Attribute("request_type", ctx.GetRequestName()); ctx.StartTracing(std::move(grpcRequestProxySpan)); } } @@ -522,6 +509,7 @@ void TGRpcRequestProxyImpl::ForgetDatabase(const TString& database) { while (!queue.empty()) { Counters->IncDatabaseUnavailableCounter(); queue.front().Ctx->ReplyUnauthenticated("Unknown database"); + queue.front().Ctx->FinishSpan(); queue.pop_front(); } DeferredEvents.erase(itDeferredEvents); @@ -610,6 +598,7 @@ void TGRpcRequestProxyImpl::StateFunc(TAutoPtr& ev) { HFunc(TEvCoordinationSessionRequest, PreHandle); HFunc(TEvNodeCheckRequest, PreHandle); HFunc(TEvProxyRuntimeEvent, PreHandle); + HFunc(TEvRequestAuthAndCheck, PreHandle); default: Y_ABORT("Unknown request: %u\n", ev->GetTypeRewrite()); @@ -617,8 +606,8 @@ void TGRpcRequestProxyImpl::StateFunc(TAutoPtr& ev) { } } -IActor* CreateGRpcRequestProxy(const NKikimrConfig::TAppConfig& appConfig, TIntrusivePtr icb) { - return new TGRpcRequestProxyImpl(appConfig, std::move(icb)); +IActor* CreateGRpcRequestProxy(const NKikimrConfig::TAppConfig& appConfig, TIntrusivePtr tracingControl) { + return new TGRpcRequestProxyImpl(appConfig, std::move(tracingControl)); } } // namespace NGRpcService diff --git a/ydb/core/grpc_services/grpc_request_proxy.h b/ydb/core/grpc_services/grpc_request_proxy.h index b4eedb51c5fc..462e55fc9363 100644 --- a/ydb/core/grpc_services/grpc_request_proxy.h +++ b/ydb/core/grpc_services/grpc_request_proxy.h @@ -6,6 +6,7 @@ #include "grpc_request_proxy_handle_methods.h" #include +#include #include @@ -23,7 +24,7 @@ struct TAppData; namespace NGRpcService { TString DatabaseFromDomain(const TAppData* appdata); -IActor* CreateGRpcRequestProxy(const NKikimrConfig::TAppConfig& appConfig, TIntrusivePtr icb); +IActor* CreateGRpcRequestProxy(const NKikimrConfig::TAppConfig& appConfig, TIntrusivePtr tracingControl); IActor* CreateGRpcRequestProxySimple(const NKikimrConfig::TAppConfig& appConfig); class TGRpcRequestProxy : public TGRpcRequestProxyHandleMethods, public IFacilityProvider { @@ -56,15 +57,5 @@ class TGRpcRequestProxy : public TGRpcRequestProxyHandleMethods, public IFacilit TActorId DiscoveryCacheActorID; }; -inline TActorId CreateGRpcRequestProxyId(int n = 0) { - if (n == 0) { - const auto actorId = TActorId(0, "GRpcReqProxy"); - return actorId; - } - - const auto actorId = TActorId(0, TStringBuilder() << "GRpcReqPro" << n); - return actorId; -} - } // namespace NGRpcService } // namespace NKikimr diff --git a/ydb/core/grpc_services/local_rpc/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_services/local_rpc/CMakeLists.darwin-arm64.txt index f446f6684628..9d944032cd8b 100644 --- a/ydb/core/grpc_services/local_rpc/CMakeLists.darwin-arm64.txt +++ b/ydb/core/grpc_services/local_rpc/CMakeLists.darwin-arm64.txt @@ -14,3 +14,6 @@ target_link_libraries(core-grpc_services-local_rpc INTERFACE ydb-core-base core-grpc_services-base ) +target_sources(core-grpc_services-local_rpc INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/local_rpc/local_rpc.h +) diff --git a/ydb/core/grpc_services/local_rpc/CMakeLists.darwin-x86_64.txt b/ydb/core/grpc_services/local_rpc/CMakeLists.darwin-x86_64.txt index f446f6684628..9d944032cd8b 100644 --- a/ydb/core/grpc_services/local_rpc/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/grpc_services/local_rpc/CMakeLists.darwin-x86_64.txt @@ -14,3 +14,6 @@ target_link_libraries(core-grpc_services-local_rpc INTERFACE ydb-core-base core-grpc_services-base ) +target_sources(core-grpc_services-local_rpc INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/local_rpc/local_rpc.h +) diff --git a/ydb/core/grpc_services/local_rpc/CMakeLists.linux-aarch64.txt b/ydb/core/grpc_services/local_rpc/CMakeLists.linux-aarch64.txt index e93f011dede3..fa768d8997cb 100644 --- a/ydb/core/grpc_services/local_rpc/CMakeLists.linux-aarch64.txt +++ b/ydb/core/grpc_services/local_rpc/CMakeLists.linux-aarch64.txt @@ -15,3 +15,6 @@ target_link_libraries(core-grpc_services-local_rpc INTERFACE ydb-core-base core-grpc_services-base ) +target_sources(core-grpc_services-local_rpc INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/local_rpc/local_rpc.h +) diff --git a/ydb/core/grpc_services/local_rpc/CMakeLists.linux-x86_64.txt b/ydb/core/grpc_services/local_rpc/CMakeLists.linux-x86_64.txt index e93f011dede3..fa768d8997cb 100644 --- a/ydb/core/grpc_services/local_rpc/CMakeLists.linux-x86_64.txt +++ b/ydb/core/grpc_services/local_rpc/CMakeLists.linux-x86_64.txt @@ -15,3 +15,6 @@ target_link_libraries(core-grpc_services-local_rpc INTERFACE ydb-core-base core-grpc_services-base ) +target_sources(core-grpc_services-local_rpc INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/local_rpc/local_rpc.h +) diff --git a/ydb/core/grpc_services/local_rpc/CMakeLists.windows-x86_64.txt b/ydb/core/grpc_services/local_rpc/CMakeLists.windows-x86_64.txt index f446f6684628..9d944032cd8b 100644 --- a/ydb/core/grpc_services/local_rpc/CMakeLists.windows-x86_64.txt +++ b/ydb/core/grpc_services/local_rpc/CMakeLists.windows-x86_64.txt @@ -14,3 +14,6 @@ target_link_libraries(core-grpc_services-local_rpc INTERFACE ydb-core-base core-grpc_services-base ) +target_sources(core-grpc_services-local_rpc INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/local_rpc/local_rpc.h +) diff --git a/ydb/core/grpc_services/query/rpc_execute_query.cpp b/ydb/core/grpc_services/query/rpc_execute_query.cpp index 738c5ea52a41..6865cb8379e5 100644 --- a/ydb/core/grpc_services/query/rpc_execute_query.cpp +++ b/ydb/core/grpc_services/query/rpc_execute_query.cpp @@ -24,6 +24,7 @@ using TEvExecuteQueryRequest = TGrpcRequestNoOperationCall LastSeqNo; ui64 AckedFreeSpaceBytes = 0; + TActorId ActorId; }; class TRpcFlowControlState { @@ -244,8 +245,7 @@ class TExecuteQueryRPC : public TActorBootstrapped { const auto traceId = Request_->GetTraceId(); NYql::TIssues issues; - NKikimrKqp::EQueryAction queryAction; - if (!ParseQueryAction(*req, queryAction, issues)) { + if (!ParseQueryAction(*req, QueryAction, issues)) { return ReplyFinishStream(Ydb::StatusIds::BAD_REQUEST, std::move(issues)); } @@ -274,7 +274,7 @@ class TExecuteQueryRPC : public TActorBootstrapped { cachePolicy->set_keep_in_cache(true); auto ev = MakeHolder( - queryAction, + QueryAction, queryType, SelfId(), Request_, @@ -288,7 +288,8 @@ class TExecuteQueryRPC : public TActorBootstrapped { nullptr, // operationParams false, // keepSession false, // useCancelAfter - syntax); + syntax, + true); // trailing support if (!ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release())) { NYql::TIssues issues; @@ -322,23 +323,24 @@ class TExecuteQueryRPC : public TActorBootstrapped { ui64 freeSpaceBytes = FlowControl_.FreeSpaceBytes(); - for (auto& pair : StreamProducers_) { - const auto& producerId = pair.first; - auto& producer = pair.second; + for (auto& pair : StreamChannels_) { + const auto& channelId = pair.first; + auto& channel = pair.second; - if (freeSpaceBytes > 0 && producer.LastSeqNo && producer.AckedFreeSpaceBytes == 0) { + if (freeSpaceBytes > 0 && channel.LastSeqNo && channel.AckedFreeSpaceBytes == 0) { LOG_DEBUG_S(ctx, NKikimrServices::RPC_REQUEST, this->SelfId() << "Resume execution, " - << ", producer: " << producerId - << ", seqNo: " << producer.LastSeqNo + << ", channel: " << channelId + << ", seqNo: " << channel.LastSeqNo << ", freeSpace: " << freeSpaceBytes); auto resp = MakeHolder(); - resp->Record.SetSeqNo(*producer.LastSeqNo); + resp->Record.SetSeqNo(*channel.LastSeqNo); resp->Record.SetFreeSpace(freeSpaceBytes); + resp->Record.SetChannelId(channelId); - ctx.Send(producerId, resp.Release()); + ctx.Send(channel.ActorId, resp.Release()); - producer.AckedFreeSpaceBytes = freeSpaceBytes; + channel.AckedFreeSpaceBytes = freeSpaceBytes; } } @@ -358,9 +360,10 @@ class TExecuteQueryRPC : public TActorBootstrapped { Request_->SendSerializedResult(std::move(out), Ydb::StatusIds::SUCCESS); - auto& producer = StreamProducers_[ev->Sender]; - producer.LastSeqNo = ev->Get()->Record.GetSeqNo(); - producer.AckedFreeSpaceBytes = freeSpaceBytes; + auto& channel = StreamChannels_[ev->Get()->Record.GetChannelId()]; + channel.ActorId = ev->Sender; + channel.LastSeqNo = ev->Get()->Record.GetSeqNo(); + channel.AckedFreeSpaceBytes = freeSpaceBytes; LOG_DEBUG_S(ctx, NKikimrServices::RPC_REQUEST, this->SelfId() << "Send stream data ack" << ", seqNo: " << ev->Get()->Record.GetSeqNo() @@ -371,8 +374,9 @@ class TExecuteQueryRPC : public TActorBootstrapped { auto resp = MakeHolder(); resp->Record.SetSeqNo(ev->Get()->Record.GetSeqNo()); resp->Record.SetFreeSpace(freeSpaceBytes); + resp->Record.SetChannelId(ev->Get()->Record.GetChannelId()); - ctx.Send(ev->Sender, resp.Release()); + ctx.Send(channel.ActorId, resp.Release()); } void Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev, const TActorContext&) { @@ -381,7 +385,15 @@ class TExecuteQueryRPC : public TActorBootstrapped { const auto& issueMessage = record.GetResponse().GetQueryIssues(); bool hasTrailingMessage = false; - + + auto& kqpResponse = record.GetResponse(); + if (kqpResponse.GetYdbResults().size() > 1) { + auto issue = MakeIssue(NKikimrIssues::TIssuesIds::DEFAULT_ERROR, + "Unexpected trailing message with multiple result sets."); + ReplyFinishStream(Ydb::StatusIds::INTERNAL_ERROR, issue); + return; + } + if (record.GetYdbStatus() == Ydb::StatusIds::SUCCESS) { Request_->SetRuHeader(record.GetConsumedRu()); @@ -389,6 +401,14 @@ class TExecuteQueryRPC : public TActorBootstrapped { Ydb::Query::ExecuteQueryResponsePart response; + if (QueryAction == NKikimrKqp::QUERY_ACTION_EXECUTE) { + for(int i = 0; i < kqpResponse.GetYdbResults().size(); i++) { + hasTrailingMessage = true; + response.set_result_set_index(i); + response.mutable_result_set()->Swap(record.MutableResponse()->MutableYdbResults(i)); + } + } + AuditContextAppend(Request_.get(), *Request_->GetProtoRequest(), response); if (kqpResponse.HasTxMeta()) { @@ -492,8 +512,9 @@ class TExecuteQueryRPC : public TActorBootstrapped { private: std::shared_ptr Request_; + NKikimrKqp::EQueryAction QueryAction; TRpcFlowControlState FlowControl_; - TMap StreamProducers_; + TMap StreamChannels_; }; } // namespace diff --git a/ydb/core/grpc_services/query/rpc_execute_script.cpp b/ydb/core/grpc_services/query/rpc_execute_script.cpp index 86cd942d3290..a1de6537e7d2 100644 --- a/ydb/core/grpc_services/query/rpc_execute_script.cpp +++ b/ydb/core/grpc_services/query/rpc_execute_script.cpp @@ -59,10 +59,6 @@ std::tuple FillKqpRequest( kqpRequest.MutableRequest()->SetType(NKikimrKqp::QUERY_TYPE_SQL_GENERIC_SCRIPT); kqpRequest.MutableRequest()->SetKeepSession(false); - // TODO: Avoid explicit tx_control for script queries. - 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()); diff --git a/ydb/core/grpc_services/resolve_local_db_table.cpp b/ydb/core/grpc_services/resolve_local_db_table.cpp index 81ae3d12a0cd..daa0ebc8919c 100644 --- a/ydb/core/grpc_services/resolve_local_db_table.cpp +++ b/ydb/core/grpc_services/resolve_local_db_table.cpp @@ -45,7 +45,9 @@ namespace NGRpcService { const NTable::TScheme::TTableInfo* tableInfo = scheme.Tables.FindPtr(*ti); for (const auto& col : tableInfo->Columns) { - entry.Columns[col.first] = TSysTables::TTableColumnInfo(col.second.Name, col.first, col.second.PType, col.second.PTypeMod, col.second.KeyOrder); + entry.Columns[col.first] = TSysTables::TTableColumnInfo( + col.second.Name, col.first, col.second.PType, col.second.PTypeMod, col.second.KeyOrder, + {}, TSysTables::TTableColumnInfo::EDefaultKind::DEFAULT_UNDEFINED, {}, false, col.second.NotNull); } } diff --git a/ydb/core/grpc_services/rpc_begin_transaction.cpp b/ydb/core/grpc_services/rpc_begin_transaction.cpp index 374593f22914..2cb6ad321660 100644 --- a/ydb/core/grpc_services/rpc_begin_transaction.cpp +++ b/ydb/core/grpc_services/rpc_begin_transaction.cpp @@ -87,7 +87,7 @@ class TBeginTransactionRPC : public TRpcKqpRequestActorRecord.MutableRequest()->SetAction(NKikimrKqp::QUERY_ACTION_BEGIN_TX); ev->Record.MutableRequest()->MutableTxControl()->mutable_begin_tx()->CopyFrom(req->tx_settings()); - ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release()); + ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release(), 0, 0, Span_.GetTraceId()); } void Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev, const TActorContext& ctx) { diff --git a/ydb/core/grpc_services/rpc_calls.h b/ydb/core/grpc_services/rpc_calls.h index 1f92eb4f6b56..027243062acf 100644 --- a/ydb/core/grpc_services/rpc_calls.h +++ b/ydb/core/grpc_services/rpc_calls.h @@ -50,6 +50,7 @@ inline bool ValidateAndReplyOnError(IRequestProxyCtx* ctx) { const auto issue = MakeIssue(NKikimrIssues::TIssuesIds::YDB_API_VALIDATION_ERROR, validationError); ctx->RaiseIssue(issue); ctx->ReplyWithYdbStatus(Ydb::StatusIds::BAD_REQUEST); + ctx->FinishSpan(); return false; } else { return true; diff --git a/ydb/core/grpc_services/rpc_commit_transaction.cpp b/ydb/core/grpc_services/rpc_commit_transaction.cpp index d06731dd0edb..d555933d5091 100644 --- a/ydb/core/grpc_services/rpc_commit_transaction.cpp +++ b/ydb/core/grpc_services/rpc_commit_transaction.cpp @@ -75,7 +75,7 @@ class TCommitTransactionRPC : public TRpcKqpRequestActorRecord.MutableRequest()->SetStatsMode(GetKqpStatsMode(req->collect_stats())); ev->Record.MutableRequest()->SetCollectStats(req->collect_stats()); - ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release()); + ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release(), 0, 0, Span_.GetTraceId()); } void Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev, const TActorContext& ctx) { 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 041b1c9e1f9a..c99c5af2a273 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 @@ -7,7 +7,9 @@ #include "rpc_common.h" #include +#include +#include #include #include #include @@ -33,7 +35,9 @@ using TEvDeleteSessionQueryRequest = TGrpcRequestOperationCall { public: TCreateSessionRPC(IRequestCtx* msg) - : Request(msg) {} + : Request(msg) + , Span(TWilsonGrpc::RequestActor, msg->GetWilsonTraceId(), "CreateSessionRpcActor") + {} void Bootstrap(const TActorContext&) { Become(&TCreateSessionRPC::StateWork); @@ -77,7 +81,7 @@ class TCreateSessionRPC : public TActorBootstrapped { SetDatabase(ev, *Request); - Send(NKqp::MakeKqpProxyID(SelfId().NodeId()), ev.Release()); + Send(NKqp::MakeKqpProxyID(SelfId().NodeId()), ev.Release(), 0, 0, Span.GetTraceId()); } void StateWork(TAutoPtr& ev) { @@ -88,6 +92,7 @@ class TCreateSessionRPC : public TActorBootstrapped { } void Handle(TEvents::TEvWakeup::TPtr&) { + Span.Event("client_lost", {}); ClientLost = true; } @@ -112,7 +117,9 @@ class TCreateSessionRPC : public TActorBootstrapped { void Handle(NKqp::TEvKqp::TEvCreateSessionResponse::TPtr& ev, const TActorContext& ctx) { const auto& record = ev->Get()->Record; if (record.GetResourceExhausted()) { - Request->ReplyWithRpcStatus(grpc::StatusCode::RESOURCE_EXHAUSTED, record.GetError()); + auto responseCode = grpc::StatusCode::RESOURCE_EXHAUSTED; + Request->ReplyWithRpcStatus(responseCode, record.GetError()); + Span.EndError("Resource exhausted"); Die(ctx); return; } @@ -125,6 +132,7 @@ class TCreateSessionRPC : public TActorBootstrapped { Reply(Ydb::StatusIds::INTERNAL_ERROR); } else { SendSessionResult(kqpResponse); + Span.EndOk(); PassAway(); return; } @@ -146,16 +154,19 @@ class TCreateSessionRPC : public TActorBootstrapped { void Reply(Ydb::StatusIds::StatusCode status) { Request->ReplyWithYdbStatus(status); + NWilson::EndSpanWithStatus(Span, status); this->PassAway(); } void Reply(Ydb::StatusIds::StatusCode status, NProtoBuf::Message* resp) { Request->Reply(resp, status); + NWilson::EndSpanWithStatus(Span, status); this->PassAway(); } protected: std::shared_ptr Request; + NWilson::TSpan Span; private: bool ClientLost = false; @@ -202,7 +213,9 @@ class TCreateSessionQueryService : public TCreateSessionRPC { class TDeleteSessionRPC : public TActorBootstrapped { public: TDeleteSessionRPC(IRequestCtx* msg) - : Request(msg) {} + : Request(msg) + , Span(TWilsonGrpc::RequestActor, msg->GetWilsonTraceId(), "DeleteSessionRpcActor") + {} void Bootstrap(const TActorContext&) { DeleteSessionImpl(); @@ -220,12 +233,13 @@ class TDeleteSessionRPC : public TActorBootstrapped { return Reply(Ydb::StatusIds::BAD_REQUEST); } - Send(NKqp::MakeKqpProxyID(SelfId().NodeId()), ev.Release()); //no respose will be sended, so don't wait for anything + Send(NKqp::MakeKqpProxyID(SelfId().NodeId()), ev.Release(), 0, 0, Span.GetTraceId()); //no respose will be sended, so don't wait for anything Reply(Ydb::StatusIds::SUCCESS); } void Reply(Ydb::StatusIds::StatusCode status) { Request->ReplyWithYdbStatus(status); + NWilson::EndSpanWithStatus(Span, status); this->PassAway(); } @@ -233,6 +247,7 @@ class TDeleteSessionRPC : public TActorBootstrapped { protected: std::shared_ptr Request; + NWilson::TSpan Span; }; class TDeleteSessionTableService : public TDeleteSessionRPC { diff --git a/ydb/core/grpc_services/rpc_deferrable.h b/ydb/core/grpc_services/rpc_deferrable.h index 93550e2b11ef..11652e54322c 100644 --- a/ydb/core/grpc_services/rpc_deferrable.h +++ b/ydb/core/grpc_services/rpc_deferrable.h @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -202,12 +203,14 @@ class TRpcOperationRequestActor : public TRpcRequestWithOperationParamsActor& message, const TActorContext& ctx) { Request_->SendResult(status, message); + NWilson::EndSpanWithStatus(Span_, status); this->Die(ctx); } void Reply(Ydb::StatusIds::StatusCode status, const NYql::TIssues& issues, const TActorContext& ctx) { Request_->RaiseIssues(issues); Request_->ReplyWithYdbStatus(status); + NWilson::EndSpanWithStatus(Span_, status); this->Die(ctx); } @@ -219,6 +222,7 @@ class TRpcOperationRequestActor : public TRpcRequestWithOperationParamsActorReplyWithYdbStatus(status); + NWilson::EndSpanWithStatus(Span_, status); this->Die(ctx); } @@ -226,6 +230,7 @@ class TRpcOperationRequestActor : public TRpcRequestWithOperationParamsActor& message, const TActorContext &ctx) { Request_->SendResult(status, message); + NWilson::EndSpanWithStatus(Span_, status); this->Die(ctx); } @@ -236,6 +241,7 @@ class TRpcOperationRequestActor : public TRpcRequestWithOperationParamsActorSendResult(result, status, message); + NWilson::EndSpanWithStatus(Span_, status); this->Die(ctx); } @@ -244,12 +250,14 @@ class TRpcOperationRequestActor : public TRpcRequestWithOperationParamsActorSendResult(result, status); + NWilson::EndSpanWithStatus(Span_, status); this->Die(ctx); } void ReplyOperation(Ydb::Operations::Operation& operation) { Request_->SendOperation(operation); + NWilson::EndSpanWithStatus(Span_, operation.status()); this->PassAway(); } diff --git a/ydb/core/grpc_services/rpc_discovery.cpp b/ydb/core/grpc_services/rpc_discovery.cpp index 2bc5cc74a46f..84c26fe124fe 100644 --- a/ydb/core/grpc_services/rpc_discovery.cpp +++ b/ydb/core/grpc_services/rpc_discovery.cpp @@ -29,6 +29,8 @@ class TListEndpointsRPC : public TActorBootstrapped { THolder LookupResponse; THolder NameserviceResponse; + NWilson::TSpan Span; + public: static constexpr NKikimrServices::TActivity::EType ActorActivityType() { return NKikimrServices::TActivity::GRPC_REQ; @@ -37,6 +39,7 @@ class TListEndpointsRPC : public TActorBootstrapped { TListEndpointsRPC(TEvListEndpointsRequest::TPtr &msg, TActorId cacheId) : Request(msg->Release().Release()) , CacheId(cacheId) + , Span(TWilsonGrpc::RequestActor, Request->GetWilsonTraceId(), "ListEndpointsRpc") {} void Bootstrap() { @@ -54,6 +57,7 @@ class TListEndpointsRPC : public TActorBootstrapped { if (Discoverer) { Send(Discoverer, new TEvents::TEvPoisonPill()); } + Span.EndOk(); TActorBootstrapped::PassAway(); } diff --git a/ydb/core/grpc_services/rpc_execute_data_query.cpp b/ydb/core/grpc_services/rpc_execute_data_query.cpp index b96c36b1f7d6..7613a26ed444 100644 --- a/ydb/core/grpc_services/rpc_execute_data_query.cpp +++ b/ydb/core/grpc_services/rpc_execute_data_query.cpp @@ -146,7 +146,7 @@ class TExecuteDataQueryRPC : public TRpcKqpRequestActoroperation_params().report_cost_info() == Ydb::FeatureFlag::ENABLED; - ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release()); + ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release(), 0, 0, Span_.GetTraceId()); } static void ConvertReadStats(const NKikimrQueryStats::TReadOpStats& from, Ydb::TableStats::OperationStats* to) { diff --git a/ydb/core/grpc_services/rpc_execute_scheme_query.cpp b/ydb/core/grpc_services/rpc_execute_scheme_query.cpp index 5625e318d1e1..00a12287f49d 100644 --- a/ydb/core/grpc_services/rpc_execute_scheme_query.cpp +++ b/ydb/core/grpc_services/rpc_execute_scheme_query.cpp @@ -73,7 +73,7 @@ class TExecuteSchemeQueryRPC : public TRpcKqpRequestActorRecord.MutableRequest()->SetType(NKikimrKqp::QUERY_TYPE_SQL_DDL); ev->Record.MutableRequest()->SetQuery(req->yql_text()); - ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release()); + ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release(), 0, 0, Span_.GetTraceId()); } void Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev, const TActorContext& ctx) { diff --git a/ydb/core/grpc_services/rpc_execute_yql_script.cpp b/ydb/core/grpc_services/rpc_execute_yql_script.cpp index 49db992aed7a..8f1a23be8a7d 100644 --- a/ydb/core/grpc_services/rpc_execute_yql_script.cpp +++ b/ydb/core/grpc_services/rpc_execute_yql_script.cpp @@ -76,7 +76,7 @@ class TExecuteYqlScriptRPC : public TRpcKqpRequestActorsyntax() ); - ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release()); + ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release(), 0, 0, Span_.GetTraceId()); } void Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev, const TActorContext& ctx) { diff --git a/ydb/core/grpc_services/rpc_explain_data_query.cpp b/ydb/core/grpc_services/rpc_explain_data_query.cpp index 129ac5468bb9..92202713eda6 100644 --- a/ydb/core/grpc_services/rpc_explain_data_query.cpp +++ b/ydb/core/grpc_services/rpc_explain_data_query.cpp @@ -70,7 +70,7 @@ class TExplainDataQueryRPC : public TRpcKqpRequestActorRecord.MutableRequest()->SetQuery(req->yql_text()); ev->Record.MutableRequest()->SetCollectDiagnostics(req->Getcollect_full_diagnostics()); - ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release()); + ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release(), 0, 0, Span_.GetTraceId()); } void Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev, const TActorContext& ctx) { diff --git a/ydb/core/grpc_services/rpc_explain_yql_script.cpp b/ydb/core/grpc_services/rpc_explain_yql_script.cpp index 8494ad758ff8..884ad953fab1 100644 --- a/ydb/core/grpc_services/rpc_explain_yql_script.cpp +++ b/ydb/core/grpc_services/rpc_explain_yql_script.cpp @@ -77,7 +77,7 @@ class TExplainYqlScriptRPC : public TRpcKqpRequestActorRecord.MutableRequest()->SetQuery(script); ev->Record.MutableRequest()->SetKeepSession(false); - ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release()); + ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release(), 0, 0, Span_.GetTraceId()); } void Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev, const TActorContext& ctx) { diff --git a/ydb/core/grpc_services/rpc_load_rows.cpp b/ydb/core/grpc_services/rpc_load_rows.cpp index 64e359be13ef..f1d17adef38e 100644 --- a/ydb/core/grpc_services/rpc_load_rows.cpp +++ b/ydb/core/grpc_services/rpc_load_rows.cpp @@ -117,8 +117,9 @@ const Ydb::Table::BulkUpsertRequest* GetProtoRequest(IRequestOpCtx* req) { class TUploadRowsRPCPublic : public NTxProxy::TUploadRowsBase { using TBase = NTxProxy::TUploadRowsBase; public: - explicit TUploadRowsRPCPublic(IRequestOpCtx* request, bool diskQuotaExceeded) - : TBase(GetDuration(GetProtoRequest(request)->operation_params().operation_timeout()), diskQuotaExceeded) + explicit TUploadRowsRPCPublic(IRequestOpCtx* request, bool diskQuotaExceeded, const char* name) + : TBase(GetDuration(GetProtoRequest(request)->operation_params().operation_timeout()), diskQuotaExceeded, + NWilson::TSpan(TWilsonKqp::BulkUpsertActor, request->GetWilsonTraceId(), name)) , Request(request) {} @@ -461,8 +462,12 @@ class TUploadColumnsRPCPublic : public NTxProxy::TUploadRowsBaseSetSkipRows(skipRows); if (!delimiter.empty()) { if (delimiter.size() != 1) { @@ -470,20 +475,20 @@ class TUploadColumnsRPCPublic : public NTxProxy::TUploadRowsBaseSetDelimiter(delimiter[0]); } if (!nullValue.empty()) { - reader.SetNullValue(nullValue); + reader->SetNullValue(nullValue); } if (data.size() > NFormats::TArrowCSV::DEFAULT_BLOCK_SIZE) { ui32 blockSize = NFormats::TArrowCSV::DEFAULT_BLOCK_SIZE; blockSize *= data.size() / blockSize + 1; - reader.SetBlockSize(blockSize); + reader->SetBlockSize(blockSize); } - Batch = reader.ReadSingleBatch(data, errorMessage); + Batch = reader->ReadSingleBatch(data, errorMessage); if (!Batch) { return false; } @@ -517,7 +522,7 @@ void DoBulkUpsertRequest(std::unique_ptr p, const IFacilityProvid } else if (GetProtoRequest(p.get())->has_csv_settings()) { f.RegisterActor(new TUploadColumnsRPCPublic(p.release(), diskQuotaExceeded)); } else { - f.RegisterActor(new TUploadRowsRPCPublic(p.release(), diskQuotaExceeded)); + f.RegisterActor(new TUploadRowsRPCPublic(p.release(), diskQuotaExceeded, "BulkRowsUpsertActor")); } } @@ -530,7 +535,7 @@ IActor* TEvBulkUpsertRequest::CreateRpcActor(NKikimr::NGRpcService::IRequestOpCt } else if (GetProtoRequest(msg)->has_csv_settings()) { return new TUploadColumnsRPCPublic(msg, diskQuotaExceeded); } else { - return new TUploadRowsRPCPublic(msg, diskQuotaExceeded); + return new TUploadRowsRPCPublic(msg, diskQuotaExceeded, "BulkRowsUpsertActor"); } } diff --git a/ydb/core/grpc_services/rpc_log_store.cpp b/ydb/core/grpc_services/rpc_log_store.cpp index 2e3453d5df96..10d9ac929f5f 100644 --- a/ydb/core/grpc_services/rpc_log_store.cpp +++ b/ydb/core/grpc_services/rpc_log_store.cpp @@ -42,16 +42,16 @@ bool ConvertCompressionFromPublicToInternal(const Ydb::LogStore::Compression& fr error = "LogStores with no compression are disabled."; return false; case Ydb::LogStore::Compression::CODEC_LZ4: - to.SetCompressionCodec(NKikimrSchemeOp::ColumnCodecLZ4); + to.SetCodec(NKikimrSchemeOp::ColumnCodecLZ4); break; case Ydb::LogStore::Compression::CODEC_ZSTD: - to.SetCompressionCodec(NKikimrSchemeOp::ColumnCodecZSTD); + to.SetCodec(NKikimrSchemeOp::ColumnCodecZSTD); break; default: break; } if (from.compression_level()) { - to.SetCompressionLevel(from.compression_level()); + to.SetLevel(from.compression_level()); } return true; } @@ -60,7 +60,7 @@ void ConvertCompressionFromInternalToPublic(const NKikimrSchemeOp::TCompressionO Ydb::LogStore::Compression& to) { to.set_compression_codec(Ydb::LogStore::Compression::CODEC_LZ4); // LZ4 if not set - switch (from.GetCompressionCodec()) { + switch (from.GetCodec()) { case NKikimrSchemeOp::ColumnCodecPlain: to.set_compression_codec(Ydb::LogStore::Compression::CODEC_PLAIN); break; @@ -73,7 +73,7 @@ void ConvertCompressionFromInternalToPublic(const NKikimrSchemeOp::TCompressionO default: break; } - to.set_compression_level(from.GetCompressionLevel()); + to.set_compression_level(from.GetLevel()); } bool ConvertSchemaFromPublicToInternal(const Ydb::LogStore::Schema& from, NKikimrSchemeOp::TColumnTableSchema& to, diff --git a/ydb/core/grpc_services/rpc_login.cpp b/ydb/core/grpc_services/rpc_login.cpp index 9c3173ae31a7..00c8821e2bca 100644 --- a/ydb/core/grpc_services/rpc_login.cpp +++ b/ydb/core/grpc_services/rpc_login.cpp @@ -7,7 +7,7 @@ #include #include -#include +#include #include namespace NKikimr { diff --git a/ydb/core/grpc_services/rpc_long_tx.cpp b/ydb/core/grpc_services/rpc_long_tx.cpp index 59dc26c2990d..38a29ce77520 100644 --- a/ydb/core/grpc_services/rpc_long_tx.cpp +++ b/ydb/core/grpc_services/rpc_long_tx.cpp @@ -6,7 +6,6 @@ #include #include #include -#include #include #include #include diff --git a/ydb/core/grpc_services/rpc_node_registration.cpp b/ydb/core/grpc_services/rpc_node_registration.cpp index bb3705efe928..52ccd78e2fcb 100644 --- a/ydb/core/grpc_services/rpc_node_registration.cpp +++ b/ydb/core/grpc_services/rpc_node_registration.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include #include @@ -24,30 +23,24 @@ using TEvNodeRegistrationRequest = TGrpcRequestOperationCall { using TActorBase = TActorBootstrapped; - struct TNodeAuthorizationResult { - bool IsAuthorized = false; - bool IsCertificateUsed = false; - - operator bool() const { - return IsAuthorized; - } - }; - public: static constexpr NKikimrServices::TActivity::EType ActorActivityType() { return NKikimrServices::TActivity::GRPC_REQ; } - TNodeRegistrationRPC(IRequestOpCtx* request, const TDynamicNodeAuthorizationParams& dynamicNodeAuthorizationParams) - : Request(request), DynamicNodeAuthorizationParams(dynamicNodeAuthorizationParams) + TNodeRegistrationRPC(IRequestOpCtx* request) + : Request(request) {} void Bootstrap(const TActorContext& ctx) { auto req = dynamic_cast(Request.get()); Y_ABORT_UNLESS(req, "Unexpected request type for TNodeRegistrationRPC"); - const TNodeAuthorizationResult nodeAuthorizationResult = IsNodeAuthorized(req->FindClientCert()); - if (!nodeAuthorizationResult.IsAuthorized) { + + if (!CheckAccess()) { + Status = Ydb::StatusIds::UNAUTHORIZED; + Request->RaiseIssue(NYql::TIssue("Cannot authorize node. Access denied")); SendReplyAndDie(ctx); + return; } auto dinfo = AppData(ctx)->DomainsInfo; @@ -89,7 +82,7 @@ class TNodeRegistrationRPC : public TActorBootstrapped { if (request->has_path()) { nodeBrokerRequest->Record.SetPath(request->path()); } - nodeBrokerRequest->Record.SetAuthorizedByCertificate(nodeAuthorizationResult.IsCertificateUsed); + nodeBrokerRequest->Record.SetAuthorizedByCertificate(IsNodeAuthorizedByCertificate); NTabletPipe::SendData(ctx, NodeBrokerPipe, nodeBrokerRequest.Release()); @@ -106,6 +99,9 @@ class TNodeRegistrationRPC : public TActorBootstrapped { auto request = TEvNodeRegistrationRequest::GetProtoRequest(Request); Result.set_node_id(rec.GetNode().GetNodeId()); + if (rec.GetNode().HasName()) { + Result.set_node_name(rec.GetNode().GetName()); + } Result.set_expire(rec.GetNode().GetExpire()); Result.set_domain_path(request->domain_path()); CopyNodeInfo(Result.add_nodes(), rec.GetNode()); @@ -186,38 +182,20 @@ class TNodeRegistrationRPC : public TActorBootstrapped { } private: - TNodeAuthorizationResult IsNodeAuthorized(const TVector& nodeAuthValues) { - TNodeAuthorizationResult result {.IsAuthorized = false, .IsCertificateUsed = false}; - auto* appdata = AppData(); - if (appdata && appdata->FeatureFlags.GetEnableDynamicNodeAuthorization() && DynamicNodeAuthorizationParams) { - if (nodeAuthValues.empty()) { - Request->RaiseIssue(NYql::TIssue("Cannot authorize node. Node has not provided certificate")); - Status = Ydb::StatusIds::UNAUTHORIZED; - return result; - } - const auto& pemCert = nodeAuthValues.front(); - TMap subjectDescription; - X509CertificateReader::X509Ptr x509cert = X509CertificateReader::ReadCertAsPEM(pemCert); - for(const auto& term: X509CertificateReader::ReadSubjectTerms(x509cert)) { - subjectDescription.insert(term); - } - - if (!DynamicNodeAuthorizationParams.IsSubjectDescriptionMatched(subjectDescription)) { - Status = Ydb::StatusIds::UNAUTHORIZED; - Request->RaiseIssue(NYql::TIssue("Cannot authorize node by certificate")); - return result; - } - auto request = TEvNodeRegistrationRequest::GetProtoRequest(Request); - const auto& host = request->host(); - if (!DynamicNodeAuthorizationParams.IsHostMatchAttributeCN(host)) { - Status = Ydb::StatusIds::UNAUTHORIZED; - Request->RaiseIssue(NYql::TIssue("Cannot authorize node with host: " + host)); - return result; + bool CheckAccess() { + const auto& serializedToken = Request->GetSerializedToken(); + // Empty serializedToken means token is not required. Checked in secure_request.h + if (!serializedToken.empty() && !AppData()->RegisterDynamicNodeAllowedSIDs.empty()) { + NACLib::TUserToken token(serializedToken); + for (const auto& sid : AppData()->RegisterDynamicNodeAllowedSIDs) { + if (token.IsExist(sid)) { + IsNodeAuthorizedByCertificate = true; + return true; + } } - result.IsCertificateUsed = true; + return false; } - result.IsAuthorized = true; - return result;; + return true; } static void CopyNodeInfo(Ydb::Discovery::NodeInfo* dst, const NKikimrNodeBroker::TNodeInfo& src) { @@ -294,11 +272,11 @@ class TNodeRegistrationRPC : public TActorBootstrapped { Ydb::Discovery::NodeRegistrationResult Result; Ydb::StatusIds_StatusCode Status = Ydb::StatusIds::SUCCESS; TActorId NodeBrokerPipe; - const TDynamicNodeAuthorizationParams DynamicNodeAuthorizationParams; + bool IsNodeAuthorizedByCertificate = false; }; -void DoNodeRegistrationRequest(std::unique_ptr p, const IFacilityProvider& f, const TDynamicNodeAuthorizationParams& dynamicNodeAuthorizationParams) { - f.RegisterActor(new TNodeRegistrationRPC(p.release(), dynamicNodeAuthorizationParams)); +void DoNodeRegistrationRequest(std::unique_ptr p, const IFacilityProvider& f) { + f.RegisterActor(new TNodeRegistrationRPC(p.release())); } } // namespace NGRpcService diff --git a/ydb/core/grpc_services/rpc_prepare_data_query.cpp b/ydb/core/grpc_services/rpc_prepare_data_query.cpp index a18487cae8b5..673ee5a87f1d 100644 --- a/ydb/core/grpc_services/rpc_prepare_data_query.cpp +++ b/ydb/core/grpc_services/rpc_prepare_data_query.cpp @@ -79,7 +79,7 @@ class TPrepareDataQueryRPC : public TRpcKqpRequestActorRecord.MutableRequest()->SetType(NKikimrKqp::QUERY_TYPE_SQL_DML); ev->Record.MutableRequest()->SetQuery(req->yql_text()); - ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release()); + ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release(), 0, 0, Span_.GetTraceId()); } void Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev, const TActorContext& ctx) { diff --git a/ydb/core/grpc_services/rpc_rate_limiter_api.cpp b/ydb/core/grpc_services/rpc_rate_limiter_api.cpp index c7ab9a8d3121..288527ae1e95 100644 --- a/ydb/core/grpc_services/rpc_rate_limiter_api.cpp +++ b/ydb/core/grpc_services/rpc_rate_limiter_api.cpp @@ -67,7 +67,7 @@ class TRateLimiterRequest : public TRpcOperationRequestActor if (resource.has_metering_config()) { auto self = static_cast(this); const auto& userTokenStr = self->Request_->GetSerializedToken(); - bool allowed = false; + bool allowed = AppData()->AdministrationAllowedSIDs.empty(); if (userTokenStr) { NACLib::TUserToken userToken(userTokenStr); for (auto &sid : AppData()->AdministrationAllowedSIDs) { diff --git a/ydb/core/grpc_services/rpc_read_rows.cpp b/ydb/core/grpc_services/rpc_read_rows.cpp index 32465ee207a2..2769ff5a641f 100644 --- a/ydb/core/grpc_services/rpc_read_rows.cpp +++ b/ydb/core/grpc_services/rpc_read_rows.cpp @@ -85,6 +85,7 @@ class TReadRowsRPC : public TActorBootstrapped { explicit TReadRowsRPC(std::unique_ptr request) : Request(std::move(request)) , PipeCache(MakePipePeNodeCacheID(true)) + , Span(TWilsonGrpc::RequestActor, Request->GetWilsonTraceId(), "ReadRowsRpc") {} bool BuildSchema(NSchemeCache::TSchemeCacheNavigate* resolveNamesResult, TString& errorMessage) { @@ -355,7 +356,7 @@ class TReadRowsRPC : public TActorBootstrapped { entry.ShowPrivatePath = false; auto request = std::make_unique(); request->ResultSet.emplace_back(entry); - Send(MakeSchemeCacheID(), new TEvTxProxySchemeCache::TEvNavigateKeySet(request.release())); + Send(MakeSchemeCacheID(), new TEvTxProxySchemeCache::TEvNavigateKeySet(request.release()), 0, 0, Span.GetTraceId()); return true; } @@ -439,7 +440,7 @@ class TReadRowsRPC : public TActorBootstrapped { auto request = std::make_unique(); request->ResultSet.emplace_back(std::move(keyRange)); - Send(MakeSchemeCacheID(), new TEvTxProxySchemeCache::TEvResolveKeySet(request.release())); + Send(MakeSchemeCacheID(), new TEvTxProxySchemeCache::TEvResolveKeySet(request.release()), 0, 0, Span.GetTraceId()); } void CreateShardToKeysMapping(TKeyDesc* keyRange) { @@ -495,7 +496,7 @@ class TReadRowsRPC : public TActorBootstrapped { } LOG_DEBUG_S(TlsActivationContext->AsActorContext(), NKikimrServices::RPC_REQUEST, "TReadRowsRPC send TEvRead shardId : " << shardId << " keys.size(): " << keys.size()); - Send(PipeCache, new TEvPipeCache::TEvForward(request.release(), shardId, true), IEventHandle::FlagTrackDelivery); + Send(PipeCache, new TEvPipeCache::TEvForward(request.release(), shardId, true), IEventHandle::FlagTrackDelivery, 0, Span.GetTraceId()); ++ReadsInFlight; } @@ -672,6 +673,7 @@ class TReadRowsRPC : public TActorBootstrapped { if (TimeoutTimerActorId) { Send(TimeoutTimerActorId, new TEvents::TEvPoisonPill()); } + Span.EndOk(); TBase::PassAway(); } @@ -724,6 +726,8 @@ class TReadRowsRPC : public TActorBootstrapped { ui64 Retries = 0; const ui64 MaxTotalRetries = 5; + + NWilson::TSpan Span; }; void DoReadRowsRequest(std::unique_ptr p, const IFacilityProvider& f) { diff --git a/ydb/core/grpc_services/rpc_read_table.cpp b/ydb/core/grpc_services/rpc_read_table.cpp index 908ce028e4df..d8b4ae724fcb 100644 --- a/ydb/core/grpc_services/rpc_read_table.cpp +++ b/ydb/core/grpc_services/rpc_read_table.cpp @@ -214,6 +214,9 @@ class TReadTableRPC : public TActorBootstrapped { } else { TStringStream str; str << "Response version missmatched"; + if (msg->Record.HasReadTableResponseVersion()) { + str << " , got: " << msg->Record.GetReadTableResponseVersion(); + } LOG_ERROR(ctx, NKikimrServices::READ_TABLE_API, "%s", str.Str().data()); const NYql::TIssue& issue = MakeIssue(NKikimrIssues::TIssuesIds::DEFAULT_ERROR, str.Str()); @@ -243,8 +246,11 @@ class TReadTableRPC : public TActorBootstrapped { return ReplyFinishStream(Ydb::StatusIds::UNAUTHORIZED, issueMessage, ctx); } case TEvTxUserProxy::TResultStatus::ResolveError: { - const NYql::TIssue& issue = MakeIssue(NKikimrIssues::TIssuesIds::DEFAULT_ERROR, "Got ResolveError response from TxProxy"); + NYql::TIssue issue = MakeIssue(NKikimrIssues::TIssuesIds::DEFAULT_ERROR, "Got ResolveError response from TxProxy"); auto tmp = issueMessage.Add(); + for (const auto& unresolved : msg->Record.GetUnresolvedKeys()) { + issue.AddSubIssue(MakeIntrusive(unresolved)); + } NYql::IssueToMessage(issue, tmp); return ReplyFinishStream(Ydb::StatusIds::SCHEME_ERROR, issueMessage, ctx); } @@ -525,6 +531,20 @@ class TReadTableRPC : public TActorBootstrapped { settings.TablePath = req->path(); settings.Ordered = req->ordered(); settings.RequireResultSet = true; + + // Right now assume return_not_null_data_as_optional is true by default + // Sometimes we well change this default + switch (req->return_not_null_data_as_optional()) { + case Ydb::FeatureFlag::DISABLED: + settings.DataFormat = NTxProxy::EReadTableFormat::YdbResultSetWithNotNullSupport; + break; + case Ydb::FeatureFlag::STATUS_UNSPECIFIED: + case Ydb::FeatureFlag::ENABLED: + default: + settings.DataFormat = NTxProxy::EReadTableFormat::YdbResultSet; + break; + } + if (req->row_limit()) { settings.MaxRows = req->row_limit(); } diff --git a/ydb/core/grpc_services/rpc_rollback_transaction.cpp b/ydb/core/grpc_services/rpc_rollback_transaction.cpp index b1d4aaaddec9..9d17fa77dd0e 100644 --- a/ydb/core/grpc_services/rpc_rollback_transaction.cpp +++ b/ydb/core/grpc_services/rpc_rollback_transaction.cpp @@ -70,7 +70,7 @@ class TRollbackTransactionRPC : public TRpcKqpRequestActorRecord.MutableRequest()->SetAction(NKikimrKqp::QUERY_ACTION_ROLLBACK_TX); ev->Record.MutableRequest()->MutableTxControl()->set_tx_id(req->tx_id()); - ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release()); + ctx.Send(NKqp::MakeKqpProxyID(ctx.SelfID.NodeId()), ev.Release(), 0, 0, Span_.GetTraceId()); } void Handle(NKqp::TEvKqp::TEvQueryResponse::TPtr& ev, const TActorContext& ctx) { diff --git a/ydb/core/grpc_services/service_discovery.h b/ydb/core/grpc_services/service_discovery.h index e47ad65c6364..f7ca91d8efcc 100644 --- a/ydb/core/grpc_services/service_discovery.h +++ b/ydb/core/grpc_services/service_discovery.h @@ -4,8 +4,6 @@ namespace NKikimr { -struct TDynamicNodeAuthorizationParams; - namespace NGRpcService { class IRequestOpCtx; @@ -13,7 +11,7 @@ class IFacilityProvider; void DoListEndpointsRequest(std::unique_ptr p, const IFacilityProvider& f); void DoWhoAmIRequest(std::unique_ptr p, const IFacilityProvider& f); -void DoNodeRegistrationRequest(std::unique_ptr p, const IFacilityProvider& f, const TDynamicNodeAuthorizationParams& dynamicNodeAuthorizationParams); +void DoNodeRegistrationRequest(std::unique_ptr p, const IFacilityProvider& f); } } diff --git a/ydb/core/grpc_services/ut/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_services/ut/CMakeLists.darwin-arm64.txt index 1515ac312f35..27323524c014 100644 --- a/ydb/core/grpc_services/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/grpc_services/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-grpc_services-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-grpc_services-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_calls_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/grpc_services/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/grpc_services/ut/CMakeLists.darwin-x86_64.txt index cbc84c0328f9..1aa2c9e81ee9 100644 --- a/ydb/core/grpc_services/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/grpc_services/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-grpc_services-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-grpc_services-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_calls_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/grpc_services/ut/CMakeLists.linux-aarch64.txt b/ydb/core/grpc_services/ut/CMakeLists.linux-aarch64.txt index 1ec3b7478c27..de8a9d5dccab 100644 --- a/ydb/core/grpc_services/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/grpc_services/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-grpc_services-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-grpc_services-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_calls_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/grpc_services/ut/CMakeLists.linux-x86_64.txt b/ydb/core/grpc_services/ut/CMakeLists.linux-x86_64.txt index 748191faf97d..c49370404d94 100644 --- a/ydb/core/grpc_services/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/grpc_services/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-grpc_services-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-grpc_services-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_services/rpc_calls_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/grpc_services/ut/CMakeLists.windows-x86_64.txt b/ydb/core/grpc_services/ut/CMakeLists.windows-x86_64.txt index e5e58ab7a4b5..8e7e8e42abe4 100644 --- a/ydb/core/grpc_services/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/grpc_services/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/grpc_services/ya.make b/ydb/core/grpc_services/ya.make index c3fd88321a38..8c6c06247919 100644 --- a/ydb/core/grpc_services/ya.make +++ b/ydb/core/grpc_services/ya.make @@ -102,7 +102,6 @@ PEERDIR( ydb/core/grpc_services/counters ydb/core/grpc_services/local_rpc ydb/core/grpc_services/cancelation - ydb/core/grpc_services/auth_processor ydb/core/health_check ydb/core/io_formats/ydb_dump ydb/core/kesus/tablet @@ -115,8 +114,10 @@ PEERDIR( ydb/core/tx/sharding ydb/core/tx/long_tx_service/public ydb/core/tx/data_events + ydb/core/util ydb/core/ydb_convert ydb/core/security + ydb/core/security/ldap_auth_provider ydb/library/aclib ydb/library/binary_json ydb/library/dynumber diff --git a/ydb/core/grpc_streaming/grpc_streaming.h b/ydb/core/grpc_streaming/grpc_streaming.h index 872ab75bda76..6beb16ce0ca5 100644 --- a/ydb/core/grpc_streaming/grpc_streaming.h +++ b/ydb/core/grpc_streaming/grpc_streaming.h @@ -11,7 +11,6 @@ #include #include -#include #include @@ -347,22 +346,10 @@ class TGRpcStreamingRequest final } void OnReadDone(NYdbGrpc::EQueueEventStatus status) { - auto dumpResultText = [&] { - TString text; - if (status == NYdbGrpc::EQueueEventStatus::OK) { - google::protobuf::TextFormat::Printer printer; - printer.SetSingleLineMode(true); - printer.PrintToString(ReadInProgress->Record, &text); - } else { - text = ""; - } - return text; - }; - LOG_DEBUG(ActorSystem, LoggerServiceId, "[%p] read finished Name# %s ok# %s data# %s peer# %s", this, Name, status == NYdbGrpc::EQueueEventStatus::OK ? "true" : "false", - dumpResultText().c_str(), + NYdbGrpc::FormatMessage(ReadInProgress->Record, status == NYdbGrpc::EQueueEventStatus::OK).c_str(), this->GetPeerName().c_str()); // Take current in-progress read first @@ -400,25 +387,17 @@ class TGRpcStreamingRequest final } bool Write(TOut&& message, const grpc::WriteOptions& options = { }, const grpc::Status* status = nullptr) { - auto dumpMessageText = [&] { - TString text; - google::protobuf::TextFormat::Printer printer; - printer.SetSingleLineMode(true); - printer.PrintToString(message, &text); - return text; - }; - if (status) { LOG_DEBUG(ActorSystem, LoggerServiceId, "[%p] facade write Name# %s data# %s peer# %s grpc status# (%d) message# %s", this, Name, - dumpMessageText().c_str(), + NYdbGrpc::FormatMessage(message).c_str(), this->GetPeerName().c_str(), static_cast(status->error_code()), status->error_message().c_str()); } else { LOG_DEBUG(ActorSystem, LoggerServiceId, "[%p] facade write Name# %s data# %s peer# %s", this, Name, - dumpMessageText().c_str(), + NYdbGrpc::FormatMessage(message).c_str(), this->GetPeerName().c_str()); } diff --git a/ydb/core/grpc_streaming/ut/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_streaming/ut/CMakeLists.darwin-arm64.txt index d97d42c34ed8..2d73bd059729 100644 --- a/ydb/core/grpc_streaming/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/grpc_streaming/ut/CMakeLists.darwin-arm64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-grpc_streaming-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-grpc_streaming-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_streaming/grpc_streaming_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/grpc_streaming/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/grpc_streaming/ut/CMakeLists.darwin-x86_64.txt index e695b814279b..80fd847d4542 100644 --- a/ydb/core/grpc_streaming/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/grpc_streaming/ut/CMakeLists.darwin-x86_64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-core-grpc_streaming-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-grpc_streaming-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_streaming/grpc_streaming_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/grpc_streaming/ut/CMakeLists.linux-aarch64.txt b/ydb/core/grpc_streaming/ut/CMakeLists.linux-aarch64.txt index e80dd5314aa8..a74f96e0444d 100644 --- a/ydb/core/grpc_streaming/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/grpc_streaming/ut/CMakeLists.linux-aarch64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-grpc_streaming-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-grpc_streaming-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_streaming/grpc_streaming_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/grpc_streaming/ut/CMakeLists.linux-x86_64.txt b/ydb/core/grpc_streaming/ut/CMakeLists.linux-x86_64.txt index e53c9e864d1f..4814cd92c9f4 100644 --- a/ydb/core/grpc_streaming/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/grpc_streaming/ut/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-core-grpc_streaming-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-grpc_streaming-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_streaming/grpc_streaming_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/grpc_streaming/ut/CMakeLists.windows-x86_64.txt b/ydb/core/grpc_streaming/ut/CMakeLists.windows-x86_64.txt index bc9ea30e4f52..1caefd88517e 100644 --- a/ydb/core/grpc_streaming/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/grpc_streaming/ut/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/grpc_streaming/ut/grpc/CMakeLists.darwin-arm64.txt b/ydb/core/grpc_streaming/ut/grpc/CMakeLists.darwin-arm64.txt index cf5d7ddabfb9..8e5070146635 100644 --- a/ydb/core/grpc_streaming/ut/grpc/CMakeLists.darwin-arm64.txt +++ b/ydb/core/grpc_streaming/ut/grpc/CMakeLists.darwin-arm64.txt @@ -38,6 +38,10 @@ target_link_libraries(grpc_streaming-ut-grpc PUBLIC target_proto_messages(grpc_streaming-ut-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.proto ) +target_sources(grpc_streaming-ut-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.grpc.pb.h +) target_proto_addincls(grpc_streaming-ut-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/grpc_streaming/ut/grpc/CMakeLists.darwin-x86_64.txt b/ydb/core/grpc_streaming/ut/grpc/CMakeLists.darwin-x86_64.txt index cf5d7ddabfb9..8e5070146635 100644 --- a/ydb/core/grpc_streaming/ut/grpc/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/grpc_streaming/ut/grpc/CMakeLists.darwin-x86_64.txt @@ -38,6 +38,10 @@ target_link_libraries(grpc_streaming-ut-grpc PUBLIC target_proto_messages(grpc_streaming-ut-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.proto ) +target_sources(grpc_streaming-ut-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.grpc.pb.h +) target_proto_addincls(grpc_streaming-ut-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/grpc_streaming/ut/grpc/CMakeLists.linux-aarch64.txt b/ydb/core/grpc_streaming/ut/grpc/CMakeLists.linux-aarch64.txt index 414016cadb4c..bf92d144ee30 100644 --- a/ydb/core/grpc_streaming/ut/grpc/CMakeLists.linux-aarch64.txt +++ b/ydb/core/grpc_streaming/ut/grpc/CMakeLists.linux-aarch64.txt @@ -39,6 +39,10 @@ target_link_libraries(grpc_streaming-ut-grpc PUBLIC target_proto_messages(grpc_streaming-ut-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.proto ) +target_sources(grpc_streaming-ut-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.grpc.pb.h +) target_proto_addincls(grpc_streaming-ut-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/grpc_streaming/ut/grpc/CMakeLists.linux-x86_64.txt b/ydb/core/grpc_streaming/ut/grpc/CMakeLists.linux-x86_64.txt index 414016cadb4c..bf92d144ee30 100644 --- a/ydb/core/grpc_streaming/ut/grpc/CMakeLists.linux-x86_64.txt +++ b/ydb/core/grpc_streaming/ut/grpc/CMakeLists.linux-x86_64.txt @@ -39,6 +39,10 @@ target_link_libraries(grpc_streaming-ut-grpc PUBLIC target_proto_messages(grpc_streaming-ut-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.proto ) +target_sources(grpc_streaming-ut-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.grpc.pb.h +) target_proto_addincls(grpc_streaming-ut-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/grpc_streaming/ut/grpc/CMakeLists.windows-x86_64.txt b/ydb/core/grpc_streaming/ut/grpc/CMakeLists.windows-x86_64.txt index cf5d7ddabfb9..8e5070146635 100644 --- a/ydb/core/grpc_streaming/ut/grpc/CMakeLists.windows-x86_64.txt +++ b/ydb/core/grpc_streaming/ut/grpc/CMakeLists.windows-x86_64.txt @@ -38,6 +38,10 @@ target_link_libraries(grpc_streaming-ut-grpc PUBLIC target_proto_messages(grpc_streaming-ut-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.proto ) +target_sources(grpc_streaming-ut-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/grpc_streaming/ut/grpc/streaming_service.grpc.pb.h +) target_proto_addincls(grpc_streaming-ut-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/health_check/CMakeLists.darwin-arm64.txt b/ydb/core/health_check/CMakeLists.darwin-arm64.txt index f55659260cde..87050e3cea5e 100644 --- a/ydb/core/health_check/CMakeLists.darwin-arm64.txt +++ b/ydb/core/health_check/CMakeLists.darwin-arm64.txt @@ -21,5 +21,6 @@ target_link_libraries(ydb-core-health_check PUBLIC public-issue-protos ) target_sources(ydb-core-health_check PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check.h ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check.cpp ) diff --git a/ydb/core/health_check/CMakeLists.darwin-x86_64.txt b/ydb/core/health_check/CMakeLists.darwin-x86_64.txt index f55659260cde..87050e3cea5e 100644 --- a/ydb/core/health_check/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/health_check/CMakeLists.darwin-x86_64.txt @@ -21,5 +21,6 @@ target_link_libraries(ydb-core-health_check PUBLIC public-issue-protos ) target_sources(ydb-core-health_check PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check.h ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check.cpp ) diff --git a/ydb/core/health_check/CMakeLists.linux-aarch64.txt b/ydb/core/health_check/CMakeLists.linux-aarch64.txt index a5c42268c66d..9fd33bf30cce 100644 --- a/ydb/core/health_check/CMakeLists.linux-aarch64.txt +++ b/ydb/core/health_check/CMakeLists.linux-aarch64.txt @@ -22,5 +22,6 @@ target_link_libraries(ydb-core-health_check PUBLIC public-issue-protos ) target_sources(ydb-core-health_check PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check.h ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check.cpp ) diff --git a/ydb/core/health_check/CMakeLists.linux-x86_64.txt b/ydb/core/health_check/CMakeLists.linux-x86_64.txt index a5c42268c66d..9fd33bf30cce 100644 --- a/ydb/core/health_check/CMakeLists.linux-x86_64.txt +++ b/ydb/core/health_check/CMakeLists.linux-x86_64.txt @@ -22,5 +22,6 @@ target_link_libraries(ydb-core-health_check PUBLIC public-issue-protos ) target_sources(ydb-core-health_check PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check.h ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check.cpp ) diff --git a/ydb/core/health_check/CMakeLists.windows-x86_64.txt b/ydb/core/health_check/CMakeLists.windows-x86_64.txt index f55659260cde..87050e3cea5e 100644 --- a/ydb/core/health_check/CMakeLists.windows-x86_64.txt +++ b/ydb/core/health_check/CMakeLists.windows-x86_64.txt @@ -21,5 +21,6 @@ target_link_libraries(ydb-core-health_check PUBLIC public-issue-protos ) target_sources(ydb-core-health_check PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check.h ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check.cpp ) diff --git a/ydb/core/health_check/health_check.cpp b/ydb/core/health_check/health_check.cpp index 3b3de7c61a6b..7ca1cb14e2f7 100644 --- a/ydb/core/health_check/health_check.cpp +++ b/ydb/core/health_check/health_check.cpp @@ -235,6 +235,7 @@ class TSelfCheckRequest : public TActorBootstrapped { ui64 StorageQuota; ui64 StorageUsage; TMaybeServerlessComputeResourcesMode ServerlessComputeResourcesMode; + TNodeId MaxTimeDifferenceNodeId = 0; }; struct TSelfCheckResult { @@ -813,10 +814,10 @@ class TSelfCheckRequest : public TActorBootstrapped { ReplyAndPassAway(); } - bool IsStaticNode(const TEvInterconnect::TNodeInfo& nodeInfo) const { + bool IsStaticNode(const TNodeId nodeId) const { TAppData* appData = AppData(); if (appData->DynamicNameserviceConfig) { - return nodeInfo.NodeId <= AppData()->DynamicNameserviceConfig->MaxStaticNodeId; + return nodeId <= AppData()->DynamicNameserviceConfig->MaxStaticNodeId; } else { return true; } @@ -827,7 +828,7 @@ class TSelfCheckRequest : public TActorBootstrapped { NodesInfo = ev->Release(); for (const auto& ni : NodesInfo->Nodes) { MergedNodeInfo[ni.NodeId] = ∋ - if (IsStaticNode(ni) && needComputeFromStaticNodes) { + if (IsStaticNode(ni.NodeId) && needComputeFromStaticNodes) { DatabaseState[DomainPath].ComputeNodeIds.push_back(ni.NodeId); RequestComputeNode(ni.NodeId); } @@ -998,8 +999,7 @@ class TSelfCheckRequest : public TActorBootstrapped { static const int HIVE_SYNCHRONIZATION_PERIOD_MS = 10000; bool IsHiveSynchronizationPeriod(NKikimrHive::TEvResponseHiveInfo& hiveInfo) { - auto hiveUptime = hiveInfo.GetStartTimeTimestamp() - hiveInfo.GetResponseTimestamp(); - return hiveUptime > HIVE_SYNCHRONIZATION_PERIOD_MS; + return hiveInfo.GetResponseTimestamp() < hiveInfo.GetStartTimeTimestamp() + HIVE_SYNCHRONIZATION_PERIOD_MS; } void AggregateHiveInfo() { @@ -1140,19 +1140,15 @@ class TSelfCheckRequest : public TActorBootstrapped { static void Check(TSelfCheckContext& context, const NKikimrWhiteboard::TSystemStateInfo::TPoolStats& poolStats) { if (poolStats.name() == "System" || poolStats.name() == "IC" || poolStats.name() == "IO") { if (poolStats.usage() >= 0.99) { - context.ReportStatus(Ydb::Monitoring::StatusFlag::RED, "Pool usage over 99%", ETags::OverloadState); + context.ReportStatus(Ydb::Monitoring::StatusFlag::ORANGE, "Pool usage is over than 99%", ETags::OverloadState); } else if (poolStats.usage() >= 0.95) { - context.ReportStatus(Ydb::Monitoring::StatusFlag::ORANGE, "Pool usage over 95%", ETags::OverloadState); - } else if (poolStats.usage() >= 0.90) { - context.ReportStatus(Ydb::Monitoring::StatusFlag::YELLOW, "Pool usage over 90%", ETags::OverloadState); + context.ReportStatus(Ydb::Monitoring::StatusFlag::YELLOW, "Pool usage is over than 95%", ETags::OverloadState); } else { context.ReportStatus(Ydb::Monitoring::StatusFlag::GREEN); } } else { if (poolStats.usage() >= 0.99) { - context.ReportStatus(Ydb::Monitoring::StatusFlag::ORANGE, "Pool usage over 99%", ETags::OverloadState); - } else if (poolStats.usage() >= 0.95) { - context.ReportStatus(Ydb::Monitoring::StatusFlag::YELLOW, "Pool usage over 95%", ETags::OverloadState); + context.ReportStatus(Ydb::Monitoring::StatusFlag::YELLOW, "Pool usage is over than 99%", ETags::OverloadState); } else { context.ReportStatus(Ydb::Monitoring::StatusFlag::GREEN); } @@ -1222,7 +1218,7 @@ class TSelfCheckRequest : public TActorBootstrapped { break; case TNodeTabletState::ETabletState::RestartsTooOften: computeTabletStatus.set_state("RESTARTS_TOO_OFTEN"); - tabletContext.ReportStatus(Ydb::Monitoring::StatusFlag::RED, "Tablets are restarting too often", ETags::TabletState); + tabletContext.ReportStatus(Ydb::Monitoring::StatusFlag::ORANGE, "Tablets are restarting too often", ETags::TabletState); break; case TNodeTabletState::ETabletState::Dead: computeTabletStatus.set_state("DEAD"); @@ -1256,12 +1252,12 @@ class TSelfCheckRequest : public TActorBootstrapped { } } - void FillComputeNodeStatus(TDatabaseState& databaseState,TNodeId nodeId, Ydb::Monitoring::ComputeNodeStatus& computeNodeStatus, TSelfCheckContext context) { + void FillComputeNodeStatus(TDatabaseState& databaseState, TNodeId nodeId, Ydb::Monitoring::ComputeNodeStatus& computeNodeStatus, TSelfCheckContext context) { FillNodeInfo(nodeId, context.Location.mutable_compute()->mutable_node()); TSelfCheckContext rrContext(&context, "NODE_UPTIME"); if (databaseState.NodeRestartsPerPeriod[nodeId] >= 30) { - rrContext.ReportStatus(Ydb::Monitoring::StatusFlag::RED, "Node is restarting too often", ETags::Uptime); + rrContext.ReportStatus(Ydb::Monitoring::StatusFlag::ORANGE, "Node is restarting too often", ETags::Uptime); } else if (databaseState.NodeRestartsPerPeriod[nodeId] >= 10) { rrContext.ReportStatus(Ydb::Monitoring::StatusFlag::YELLOW, "The number of node restarts has increased", ETags::Uptime); } else { @@ -1294,6 +1290,32 @@ class TSelfCheckRequest : public TActorBootstrapped { } loadAverageStatus.set_overall(laContext.GetOverallStatus()); } + + if (nodeSystemState.HasMaxClockSkewPeerId()) { + TNodeId peerId = nodeSystemState.GetMaxClockSkewPeerId(); + long timeDifferenceUs = nodeSystemState.GetMaxClockSkewWithPeerUs(); + TDuration timeDifferenceDuration = TDuration::MicroSeconds(abs(timeDifferenceUs)); + Ydb::Monitoring::StatusFlag::Status status; + if (timeDifferenceDuration > MAX_CLOCKSKEW_ORANGE_ISSUE_TIME) { + status = Ydb::Monitoring::StatusFlag::ORANGE; + } else if (timeDifferenceDuration > MAX_CLOCKSKEW_YELLOW_ISSUE_TIME) { + status = Ydb::Monitoring::StatusFlag::YELLOW; + } else { + status = Ydb::Monitoring::StatusFlag::GREEN; + } + + if (databaseState.MaxTimeDifferenceNodeId == nodeId) { + TSelfCheckContext tdContext(&context, "NODES_TIME_DIFFERENCE"); + if (status == Ydb::Monitoring::StatusFlag::GREEN) { + tdContext.ReportStatus(status); + } else { + tdContext.ReportStatus(status, TStringBuilder() << "Node is " + << timeDifferenceDuration.MilliSeconds() << " ms " + << (timeDifferenceUs > 0 ? "behind " : "ahead of ") + << "peer [" << peerId << "]", ETags::SyncState); + } + } + } } else { // context.ReportStatus(Ydb::Monitoring::StatusFlag::RED, // TStringBuilder() << "Compute node is not available", @@ -1305,8 +1327,8 @@ class TSelfCheckRequest : public TActorBootstrapped { void FillCompute(TDatabaseState& databaseState, Ydb::Monitoring::ComputeStatus& computeStatus, TSelfCheckContext context) { TVector* computeNodeIds = &databaseState.ComputeNodeIds; - if (databaseState.ResourcePathId - && databaseState.ServerlessComputeResourcesMode != NKikimrSubDomains::EServerlessComputeResourcesModeExclusive) + if (databaseState.ResourcePathId + && databaseState.ServerlessComputeResourcesMode != NKikimrSubDomains::EServerlessComputeResourcesModeExclusive) { auto itDatabase = FilterDomainKey.find(TSubDomainKey(databaseState.ResourcePathId.OwnerId, databaseState.ResourcePathId.LocalPathId)); if (itDatabase != FilterDomainKey.end()) { @@ -1325,12 +1347,24 @@ class TSelfCheckRequest : public TActorBootstrapped { if (systemStatus != Ydb::Monitoring::StatusFlag::GREEN && systemStatus != Ydb::Monitoring::StatusFlag::GREY) { context.ReportStatus(systemStatus, "Compute has issues with system tablets", ETags::ComputeState, {ETags::SystemTabletState}); } + long maxTimeDifferenceUs = 0; + for (TNodeId nodeId : *computeNodeIds) { + auto itNodeSystemState = MergedNodeSystemState.find(nodeId); + if (itNodeSystemState != MergedNodeSystemState.end()) { + if (std::count(computeNodeIds->begin(), computeNodeIds->end(), itNodeSystemState->second->GetMaxClockSkewPeerId()) > 0 + && abs(itNodeSystemState->second->GetMaxClockSkewWithPeerUs()) > maxTimeDifferenceUs) { + maxTimeDifferenceUs = abs(itNodeSystemState->second->GetMaxClockSkewWithPeerUs()); + databaseState.MaxTimeDifferenceNodeId = nodeId; + } + } + } for (TNodeId nodeId : *computeNodeIds) { auto& computeNode = *computeStatus.add_nodes(); FillComputeNodeStatus(databaseState, nodeId, computeNode, {&context, "COMPUTE_NODE"}); } context.ReportWithMaxChildStatus("Some nodes are restarting too often", ETags::ComputeState, {ETags::Uptime}); context.ReportWithMaxChildStatus("Compute is overloaded", ETags::ComputeState, {ETags::OverloadState}); + context.ReportWithMaxChildStatus("Database has time difference between nodes", ETags::ComputeState, {ETags::SyncState}); Ydb::Monitoring::StatusFlag::Status tabletsStatus = Ydb::Monitoring::StatusFlag::GREEN; computeNodeIds->push_back(0); // for tablets without node for (TNodeId nodeId : *computeNodeIds) { @@ -1517,12 +1551,16 @@ class TSelfCheckRequest : public TActorBootstrapped { void FillVDiskStatus(const TString& vSlotId, Ydb::Monitoring::StorageVDiskStatus& storageVDiskStatus, TSelfCheckContext context) { auto itVSlot = BSConfigVSlots.find(vSlotId); const TEvInterconnect::TNodeInfo* nodeInfo = nullptr; + + context.Location.mutable_storage()->mutable_pool()->mutable_group()->mutable_vdisk()->mutable_id()->Clear(); + context.Location.mutable_storage()->mutable_pool()->mutable_group()->clear_id(); // you can see VDisks Group Id in vSlotId field if (itVSlot != BSConfigVSlots.end()) { TNodeId nodeId = itVSlot->second->vslotid().nodeid(); auto itNodeInfo = MergedNodeInfo.find(nodeId); if (itNodeInfo != MergedNodeInfo.end()) { nodeInfo = itNodeInfo->second; } + context.Location.mutable_storage()->mutable_pool()->mutable_group()->mutable_vdisk()->add_id(GetVDiskId(*itVSlot->second)); context.Location.mutable_storage()->mutable_node()->set_id(nodeId); } else { context.Location.mutable_storage()->mutable_node()->clear_id(); @@ -1535,10 +1573,6 @@ class TSelfCheckRequest : public TActorBootstrapped { context.Location.mutable_storage()->mutable_node()->clear_port(); } - context.Location.mutable_storage()->mutable_pool()->mutable_group()->mutable_vdisk()->mutable_id()->Clear(); - context.Location.mutable_storage()->mutable_pool()->mutable_group()->mutable_vdisk()->add_id(GetVDiskId(*itVSlot->second)); - context.Location.mutable_storage()->mutable_pool()->mutable_group()->clear_id(); // you can see VDisks Group Id in vSlotId field - storageVDiskStatus.set_id(vSlotId); if (itVSlot == BSConfigVSlots.end()) { // this report, in theory, can't happen because there was slot mention in bsc group info. this slot info have to exists in bsc too @@ -2074,42 +2108,9 @@ class TSelfCheckRequest : public TActorBootstrapped { } } - const TDuration MAX_CLOCKSKEW_RED_ISSUE_TIME = TDuration::MicroSeconds(25000); + const TDuration MAX_CLOCKSKEW_ORANGE_ISSUE_TIME = TDuration::MicroSeconds(25000); const TDuration MAX_CLOCKSKEW_YELLOW_ISSUE_TIME = TDuration::MicroSeconds(5000); - void FillNodesSyncStatus(TOverallStateContext& context) { - long maxClockSkewUs = 0; - TNodeId maxClockSkewPeerId = 0; - TNodeId maxClockSkewNodeId = 0; - for (auto& [nodeId, nodeSystemState] : MergedNodeSystemState) { - if (abs(nodeSystemState->GetMaxClockSkewWithPeerUs()) > maxClockSkewUs) { - maxClockSkewUs = abs(nodeSystemState->GetMaxClockSkewWithPeerUs()); - maxClockSkewPeerId = nodeSystemState->GetMaxClockSkewPeerId(); - maxClockSkewNodeId = nodeId; - } - } - if (!maxClockSkewNodeId) { - return; - } - - TSelfCheckResult syncContext; - syncContext.Type = "NODES_TIME_DIFFERENCE"; - FillNodeInfo(maxClockSkewNodeId, syncContext.Location.mutable_node()); - FillNodeInfo(maxClockSkewPeerId, syncContext.Location.mutable_peer()); - - TDuration maxClockSkewTime = TDuration::MicroSeconds(maxClockSkewUs); - if (maxClockSkewTime > MAX_CLOCKSKEW_RED_ISSUE_TIME) { - syncContext.ReportStatus(Ydb::Monitoring::StatusFlag::RED, TStringBuilder() << "The nodes have a time difference of " << maxClockSkewTime.MilliSeconds() << " ms", ETags::SyncState); - } else if (maxClockSkewTime > MAX_CLOCKSKEW_YELLOW_ISSUE_TIME) { - syncContext.ReportStatus(Ydb::Monitoring::StatusFlag::YELLOW, TStringBuilder() << "The nodes have a time difference of " << maxClockSkewTime.MilliSeconds() << " ms", ETags::SyncState); - } else { - syncContext.ReportStatus(Ydb::Monitoring::StatusFlag::GREEN); - } - - context.UpdateMaxStatus(syncContext.GetOverallStatus()); - context.AddIssues(syncContext.IssueRecords); - } - void FillResult(TOverallStateContext context) { if (IsSpecificDatabaseFilter()) { FillDatabaseResult(context, FilterDatabase, DatabaseState[FilterDatabase]); @@ -2118,7 +2119,6 @@ class TSelfCheckRequest : public TActorBootstrapped { FillDatabaseResult(context, path, state); } } - FillNodesSyncStatus(context); if (DatabaseState.empty()) { Ydb::Monitoring::DatabaseStatus& databaseStatus(*context.Result->add_database_status()); TSelfCheckResult tabletContext; diff --git a/ydb/core/health_check/health_check_ut.cpp b/ydb/core/health_check/health_check_ut.cpp index 1f199cb2b81b..1a8082331708 100644 --- a/ydb/core/health_check/health_check_ut.cpp +++ b/ydb/core/health_check/health_check_ut.cpp @@ -59,6 +59,8 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { int const GROUP_START_ID = 1200; int const VCARD_START_ID = 55; + const TPathId SUBDOMAIN_KEY = {7000000000, 1}; + void ChangeDescribeSchemeResult(TEvSchemeShard::TEvDescribeSchemeResult::TPtr* ev, ui64 size = 20000000, ui64 quota = 90000000) { auto record = (*ev)->Get()->MutableRecord(); auto pool = record->mutable_pathdescription()->mutable_domaindescription()->add_storagepools(); @@ -146,7 +148,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } auto groupId = GROUP_START_ID; - + auto group = pbConfig->add_group(); group->CopyFrom(groupSample); group->set_groupid(groupId); @@ -155,7 +157,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { group->clear_vslotid(); auto vslotId = VCARD_START_ID; - + for (auto status: vdiskStatuses) { auto vslot = pbConfig->add_vslot(); vslot->CopyFrom(vslotSample); @@ -192,7 +194,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } auto groupId = GROUP_START_ID; - + auto group = pbConfig->add_group(); group->CopyFrom(groupSample); group->set_groupid(groupId); @@ -201,7 +203,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { group->clear_vslotid(); auto vslotId = VCARD_START_ID; - + for (auto status: vdiskStatuses) { auto vslot = pbConfig->add_vslot(); vslot->CopyFrom(vslotSample); @@ -547,7 +549,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { auto result = RequestHc(1, 100, false, true); CheckHcProtobufSizeIssue(result, Ydb::Monitoring::StatusFlag::RED, 1); } - + void ClearLoadAverage(TEvWhiteboard::TEvSystemStateResponse::TPtr* ev) { auto *systemStateInfo = (*ev)->Get()->Record.MutableSystemStateInfo(); for (NKikimrWhiteboard::TSystemStateInfo &state : *systemStateInfo) { @@ -618,7 +620,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { (*ev)->Get()->Record.GetResponse().operation().result().UnpackTo(&listTenantsResult); for (const auto &path : paths) { listTenantsResult.Addpaths(path); - } + } (*ev)->Get()->Record.MutableResponse()->mutable_operation()->mutable_result()->PackFrom(listTenantsResult); } @@ -632,13 +634,13 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { sharedNodeStats->MutableNodeDomain()->SetSchemeShard(SHARED_DOMAIN_KEY.OwnerId); sharedNodeStats->MutableNodeDomain()->SetPathId(SHARED_DOMAIN_KEY.LocalPathId); } - + if (exclusiveDynNodeId) { auto *exclusiveNodeStats = record.MutableNodeStats()->Add(); exclusiveNodeStats->SetNodeId(exclusiveDynNodeId); exclusiveNodeStats->MutableNodeDomain()->SetSchemeShard(SERVERLESS_DOMAIN_KEY.OwnerId); exclusiveNodeStats->MutableNodeDomain()->SetPathId(SERVERLESS_DOMAIN_KEY.LocalPathId); - } + } } Y_UNIT_TEST(SpecificServerless) { @@ -671,7 +673,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvTxProxySchemeCache::EvNavigateKeySetResult: { auto *x = reinterpret_cast(&ev); - ChangeNavigateKeyResultServerless(x, NKikimrSubDomains::EServerlessComputeResourcesModeShared, runtime); + ChangeNavigateKeyResultServerless(x, NKikimrSubDomains::EServerlessComputeResourcesModeShared, runtime); break; } case TEvHive::EvResponseHiveNodeStats: { @@ -762,7 +764,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvTxProxySchemeCache::EvNavigateKeySetResult: { auto *x = reinterpret_cast(&ev); - ChangeNavigateKeyResultServerless(x, NKikimrSubDomains::EServerlessComputeResourcesModeExclusive, runtime); + ChangeNavigateKeyResultServerless(x, NKikimrSubDomains::EServerlessComputeResourcesModeExclusive, runtime); break; } case TEvHive::EvResponseHiveNodeStats: { @@ -864,7 +866,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvTxProxySchemeCache::EvNavigateKeySetResult: { auto *x = reinterpret_cast(&ev); - ChangeNavigateKeyResultServerless(x, NKikimrSubDomains::EServerlessComputeResourcesModeShared, runtime); + ChangeNavigateKeyResultServerless(x, NKikimrSubDomains::EServerlessComputeResourcesModeShared, runtime); break; } case TEvHive::EvResponseHiveNodeStats: { @@ -955,7 +957,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvTxProxySchemeCache::EvNavigateKeySetResult: { auto *x = reinterpret_cast(&ev); - ChangeNavigateKeyResultServerless(x, NKikimrSubDomains::EServerlessComputeResourcesModeExclusive, runtime); + ChangeNavigateKeyResultServerless(x, NKikimrSubDomains::EServerlessComputeResourcesModeExclusive, runtime); break; } case TEvHive::EvResponseHiveNodeStats: { @@ -1000,7 +1002,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { Ctest << result.ShortDebugString(); UNIT_ASSERT_VALUES_EQUAL(result.self_check_result(), Ydb::Monitoring::SelfCheck::GOOD); - + bool databaseFoundInResult = false; for (const auto &database_status : result.database_status()) { if (database_status.name() == "/Root/serverless") { @@ -1018,7 +1020,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } UNIT_ASSERT(databaseFoundInResult); } - + Y_UNIT_TEST(ServerlessWhenTroublesWithSharedNodes) { TPortManager tp; ui16 port = tp.GetPort(2134); @@ -1044,7 +1046,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvTxProxySchemeCache::EvNavigateKeySetResult: { auto *x = reinterpret_cast(&ev); - ChangeNavigateKeyResultServerless(x, NKikimrSubDomains::EServerlessComputeResourcesModeShared, runtime); + ChangeNavigateKeyResultServerless(x, NKikimrSubDomains::EServerlessComputeResourcesModeShared, runtime); break; } case TEvSchemeShard::EvDescribeSchemeResult: { @@ -1073,7 +1075,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { return TTestActorRuntime::EEventAction::PROCESS; }; runtime.SetObserverFunc(observerFunc); - + TActorId sender = runtime.AllocateEdgeActor(); TAutoPtr handle; @@ -1098,7 +1100,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { UNIT_ASSERT_VALUES_EQUAL(database_status.storage().pools().size(), 1); UNIT_ASSERT_VALUES_EQUAL(database_status.storage().pools()[0].id(), SHARED_STORAGE_POOL_NAME); } - + Y_UNIT_TEST(ServerlessWithExclusiveNodesWhenTroublesWithSharedNodes) { TPortManager tp; ui16 port = tp.GetPort(2134); @@ -1141,7 +1143,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvTxProxySchemeCache::EvNavigateKeySetResult: { auto *x = reinterpret_cast(&ev); - ChangeNavigateKeyResultServerless(x, NKikimrSubDomains::EServerlessComputeResourcesModeExclusive, runtime); + ChangeNavigateKeyResultServerless(x, NKikimrSubDomains::EServerlessComputeResourcesModeExclusive, runtime); break; } case TEvHive::EvResponseHiveNodeStats: { @@ -1277,7 +1279,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { } case TEvTxProxySchemeCache::EvNavigateKeySetResult: { auto *x = reinterpret_cast(&ev); - ChangeNavigateKeyResultServerless(x, NKikimrSubDomains::EServerlessComputeResourcesModeExclusive, runtime); + ChangeNavigateKeyResultServerless(x, NKikimrSubDomains::EServerlessComputeResourcesModeExclusive, runtime); break; } case TEvHive::EvResponseHiveNodeStats: { @@ -1370,6 +1372,104 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { UNIT_ASSERT(sharedDatabaseFoundInResult); UNIT_ASSERT(rootDatabaseFoundInResult); } -} + void HiveSyncTest(bool syncPeriod) { + TPortManager tp; + ui16 port = tp.GetPort(2134); + ui16 grpcPort = tp.GetPort(2135); + auto settings = TServerSettings(port) + .SetNodeCount(1) + .SetDynamicNodeCount(1) + .SetUseRealThreads(false) + .SetDomainName("Root"); + TServer server(settings); + server.EnableGRpc(grpcPort); + TClient client(settings); + TTestActorRuntime& runtime = *server.GetRuntime(); + + ui32 dynNodeId = runtime.GetNodeId(1); + + auto observerFunc = [&](TAutoPtr& ev) { + switch (ev->GetTypeRewrite()) { + case TEvHive::EvResponseHiveInfo: { + auto *x = reinterpret_cast(&ev); + auto& record = (*x)->Get()->Record; + record.SetStartTimeTimestamp(0); + if (syncPeriod) { + record.SetResponseTimestamp(NHealthCheck::TSelfCheckRequest::HIVE_SYNCHRONIZATION_PERIOD_MS / 2); + } else { + record.SetResponseTimestamp(NHealthCheck::TSelfCheckRequest::HIVE_SYNCHRONIZATION_PERIOD_MS * 2); + } + auto *tablet = record.MutableTablets()->Add(); + tablet->SetTabletID(1); + tablet->SetNodeID(dynNodeId); + tablet->SetTabletType(NKikimrTabletBase::TTabletTypes::DataShard); + tablet->SetVolatileState(NKikimrHive::TABLET_VOLATILE_STATE_BOOTING); + tablet->MutableObjectDomain()->SetSchemeShard(SUBDOMAIN_KEY.OwnerId); + tablet->MutableObjectDomain()->SetPathId(SUBDOMAIN_KEY.LocalPathId); + break; + } + case TEvHive::EvResponseHiveNodeStats: { + auto *x = reinterpret_cast(&ev); + auto &record = (*x)->Get()->Record; + auto *nodeStats = record.MutableNodeStats()->Add(); + nodeStats->SetNodeId(dynNodeId); + nodeStats->MutableNodeDomain()->SetSchemeShard(SUBDOMAIN_KEY.OwnerId); + nodeStats->MutableNodeDomain()->SetPathId(SUBDOMAIN_KEY.LocalPathId); + break; + } + case NConsole::TEvConsole::EvGetTenantStatusResponse: { + auto *x = reinterpret_cast(&ev); + ChangeGetTenantStatusResponse(x, "/Root/database"); + break; + } + case TEvTxProxySchemeCache::EvNavigateKeySetResult: { + auto *x = reinterpret_cast(&ev); + TSchemeCacheNavigate::TEntry& entry((*x)->Get()->Request->ResultSet.front()); + entry.Status = TSchemeCacheNavigate::EStatus::Ok; + entry.Kind = TSchemeCacheNavigate::EKind::KindExtSubdomain; + entry.Path = {"Root", "database"}; + entry.DomainInfo = MakeIntrusive(SUBDOMAIN_KEY, SUBDOMAIN_KEY); + + break; + } + } + + return TTestActorRuntime::EEventAction::PROCESS; + }; + runtime.SetObserverFunc(observerFunc); + + TActorId sender = runtime.AllocateEdgeActor(); + TAutoPtr handle; + + auto *request = new NHealthCheck::TEvSelfCheckRequest; + request->Request.set_return_verbose_status(true); + request->Database = "/Root/database"; + runtime.Send(new IEventHandle(NHealthCheck::MakeHealthCheckID(), sender, request, 0)); + const auto result = runtime.GrabEdgeEvent(handle)->Result; + + Cerr << result.ShortDebugString() << Endl; + + UNIT_ASSERT_VALUES_EQUAL(result.database_status_size(), 1); + + bool deadTabletIssueFoundInResult = false; + for (const auto &issue_log : result.issue_log()) { + if (issue_log.level() == 4 && issue_log.type() == "TABLET") { + UNIT_ASSERT_VALUES_EQUAL(issue_log.location().compute().tablet().id().size(), 1); + UNIT_ASSERT_VALUES_EQUAL(issue_log.location().compute().tablet().type(), "DataShard"); + deadTabletIssueFoundInResult = true; + } + } + + UNIT_ASSERT_VALUES_EQUAL(syncPeriod, !deadTabletIssueFoundInResult); + } + + Y_UNIT_TEST(HiveSyncPeriodIgnoresTabletsState) { + HiveSyncTest(true); + } + + Y_UNIT_TEST(AfterHiveSyncPeriodReportsTabletsState) { + HiveSyncTest(false); + } +} } diff --git a/ydb/core/health_check/ut/CMakeLists.darwin-arm64.txt b/ydb/core/health_check/ut/CMakeLists.darwin-arm64.txt index e16d9760ab75..7f32f6ed25b4 100644 --- a/ydb/core/health_check/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/health_check/ut/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-core-health_check-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-health_check-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/health_check/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/health_check/ut/CMakeLists.darwin-x86_64.txt index 0a7cae7e00fb..be11f1d18a28 100644 --- a/ydb/core/health_check/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/health_check/ut/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-health_check-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-health_check-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/health_check/ut/CMakeLists.linux-aarch64.txt b/ydb/core/health_check/ut/CMakeLists.linux-aarch64.txt index f60933001491..c1146423901c 100644 --- a/ydb/core/health_check/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/health_check/ut/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-core-health_check-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-health_check-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/health_check/ut/CMakeLists.linux-x86_64.txt b/ydb/core/health_check/ut/CMakeLists.linux-x86_64.txt index a79f990b26b6..b866aa9b8ccc 100644 --- a/ydb/core/health_check/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/health_check/ut/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-health_check-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-health_check-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/health_check/health_check_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/health_check/ut/CMakeLists.windows-x86_64.txt b/ydb/core/health_check/ut/CMakeLists.windows-x86_64.txt index 444a227e1cc0..cc35b596d3d2 100644 --- a/ydb/core/health_check/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/health_check/ut/CMakeLists.windows-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/http_proxy/CMakeLists.darwin-arm64.txt b/ydb/core/http_proxy/CMakeLists.darwin-arm64.txt index 773de1780320..98913aeebc38 100644 --- a/ydb/core/http_proxy/CMakeLists.darwin-arm64.txt +++ b/ydb/core/http_proxy/CMakeLists.darwin-arm64.txt @@ -38,6 +38,16 @@ target_link_libraries(ydb-core-http_proxy PUBLIC api-protos ) target_sources(ydb-core-http_proxy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/auth_factory.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/custom_metrics.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/discovery_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/exceptions_mapping.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/grpc_service.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/http_req.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/http_service.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/json_proto_conversion.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/metrics_actor.h ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/auth_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/discovery_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/exceptions_mapping.cpp diff --git a/ydb/core/http_proxy/CMakeLists.darwin-x86_64.txt b/ydb/core/http_proxy/CMakeLists.darwin-x86_64.txt index 773de1780320..98913aeebc38 100644 --- a/ydb/core/http_proxy/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/http_proxy/CMakeLists.darwin-x86_64.txt @@ -38,6 +38,16 @@ target_link_libraries(ydb-core-http_proxy PUBLIC api-protos ) target_sources(ydb-core-http_proxy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/auth_factory.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/custom_metrics.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/discovery_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/exceptions_mapping.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/grpc_service.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/http_req.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/http_service.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/json_proto_conversion.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/metrics_actor.h ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/auth_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/discovery_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/exceptions_mapping.cpp diff --git a/ydb/core/http_proxy/CMakeLists.linux-aarch64.txt b/ydb/core/http_proxy/CMakeLists.linux-aarch64.txt index 7cbdad430428..1393a4cb096f 100644 --- a/ydb/core/http_proxy/CMakeLists.linux-aarch64.txt +++ b/ydb/core/http_proxy/CMakeLists.linux-aarch64.txt @@ -39,6 +39,16 @@ target_link_libraries(ydb-core-http_proxy PUBLIC api-protos ) target_sources(ydb-core-http_proxy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/auth_factory.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/custom_metrics.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/discovery_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/exceptions_mapping.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/grpc_service.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/http_req.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/http_service.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/json_proto_conversion.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/metrics_actor.h ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/auth_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/discovery_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/exceptions_mapping.cpp diff --git a/ydb/core/http_proxy/CMakeLists.linux-x86_64.txt b/ydb/core/http_proxy/CMakeLists.linux-x86_64.txt index 7cbdad430428..1393a4cb096f 100644 --- a/ydb/core/http_proxy/CMakeLists.linux-x86_64.txt +++ b/ydb/core/http_proxy/CMakeLists.linux-x86_64.txt @@ -39,6 +39,16 @@ target_link_libraries(ydb-core-http_proxy PUBLIC api-protos ) target_sources(ydb-core-http_proxy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/auth_factory.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/custom_metrics.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/discovery_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/exceptions_mapping.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/grpc_service.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/http_req.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/http_service.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/json_proto_conversion.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/metrics_actor.h ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/auth_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/discovery_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/exceptions_mapping.cpp diff --git a/ydb/core/http_proxy/CMakeLists.windows-x86_64.txt b/ydb/core/http_proxy/CMakeLists.windows-x86_64.txt index 773de1780320..98913aeebc38 100644 --- a/ydb/core/http_proxy/CMakeLists.windows-x86_64.txt +++ b/ydb/core/http_proxy/CMakeLists.windows-x86_64.txt @@ -38,6 +38,16 @@ target_link_libraries(ydb-core-http_proxy PUBLIC api-protos ) target_sources(ydb-core-http_proxy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/auth_factory.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/custom_metrics.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/discovery_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/exceptions_mapping.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/grpc_service.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/http_req.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/http_service.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/json_proto_conversion.h + ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/metrics_actor.h ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/auth_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/discovery_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/exceptions_mapping.cpp diff --git a/ydb/core/http_proxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/http_proxy/ut/CMakeLists.darwin-arm64.txt index 94cc11f30a4e..1487ddfc8a4c 100644 --- a/ydb/core/http_proxy/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/http_proxy/ut/CMakeLists.darwin-arm64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-core-http_proxy-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-http_proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/ut/json_proto_conversion_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/http_proxy/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/http_proxy/ut/CMakeLists.darwin-x86_64.txt index a58d83dc9c3f..153b398d9019 100644 --- a/ydb/core/http_proxy/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/http_proxy/ut/CMakeLists.darwin-x86_64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-core-http_proxy-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-http_proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/ut/json_proto_conversion_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/http_proxy/ut/CMakeLists.linux-aarch64.txt b/ydb/core/http_proxy/ut/CMakeLists.linux-aarch64.txt index 4c2a361df4bd..c0846aecac0a 100644 --- a/ydb/core/http_proxy/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/http_proxy/ut/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-core-http_proxy-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-http_proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/ut/json_proto_conversion_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/http_proxy/ut/CMakeLists.linux-x86_64.txt b/ydb/core/http_proxy/ut/CMakeLists.linux-x86_64.txt index 32dd275dd13a..5b864b8e0acd 100644 --- a/ydb/core/http_proxy/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/http_proxy/ut/CMakeLists.linux-x86_64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-core-http_proxy-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-http_proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/http_proxy/ut/json_proto_conversion_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/http_proxy/ut/CMakeLists.windows-x86_64.txt b/ydb/core/http_proxy/ut/CMakeLists.windows-x86_64.txt index 0ff2ea5eeae5..bdee9ec08eab 100644 --- a/ydb/core/http_proxy/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/http_proxy/ut/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/io_formats/CMakeLists.darwin-arm64.txt b/ydb/core/io_formats/CMakeLists.darwin-arm64.txt deleted file mode 100644 index 617ed8f31fd1..000000000000 --- a/ydb/core/io_formats/CMakeLists.darwin-arm64.txt +++ /dev/null @@ -1,34 +0,0 @@ - -# 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-core-io_formats) -target_compile_options(ydb-core-io_formats PRIVATE - -Wno-unused-parameter - -DUSE_CURRENT_UDF_ABI_VERSION -) -target_link_libraries(ydb-core-io_formats PUBLIC - contrib-libs-cxxsupp - yutil - contrib-libs-double-conversion - cpp-string_utils-quote - core-formats-arrow - ydb-core-scheme - ydb-library-binary_json - ydb-library-dynumber - yql-minikql-dom - yql-public-decimal - yql-public-udf - library-yql-utils - public-lib-scheme_types -) -target_sources(ydb-core-io_formats PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/csv_ydb_dump.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/csv_arrow.cpp -) diff --git a/ydb/core/io_formats/CMakeLists.darwin-x86_64.txt b/ydb/core/io_formats/CMakeLists.darwin-x86_64.txt deleted file mode 100644 index 617ed8f31fd1..000000000000 --- a/ydb/core/io_formats/CMakeLists.darwin-x86_64.txt +++ /dev/null @@ -1,34 +0,0 @@ - -# 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-core-io_formats) -target_compile_options(ydb-core-io_formats PRIVATE - -Wno-unused-parameter - -DUSE_CURRENT_UDF_ABI_VERSION -) -target_link_libraries(ydb-core-io_formats PUBLIC - contrib-libs-cxxsupp - yutil - contrib-libs-double-conversion - cpp-string_utils-quote - core-formats-arrow - ydb-core-scheme - ydb-library-binary_json - ydb-library-dynumber - yql-minikql-dom - yql-public-decimal - yql-public-udf - library-yql-utils - public-lib-scheme_types -) -target_sources(ydb-core-io_formats PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/csv_ydb_dump.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/csv_arrow.cpp -) diff --git a/ydb/core/io_formats/CMakeLists.linux-aarch64.txt b/ydb/core/io_formats/CMakeLists.linux-aarch64.txt deleted file mode 100644 index 6128891a22ae..000000000000 --- a/ydb/core/io_formats/CMakeLists.linux-aarch64.txt +++ /dev/null @@ -1,35 +0,0 @@ - -# 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-core-io_formats) -target_compile_options(ydb-core-io_formats PRIVATE - -Wno-unused-parameter - -DUSE_CURRENT_UDF_ABI_VERSION -) -target_link_libraries(ydb-core-io_formats PUBLIC - contrib-libs-linux-headers - contrib-libs-cxxsupp - yutil - contrib-libs-double-conversion - cpp-string_utils-quote - core-formats-arrow - ydb-core-scheme - ydb-library-binary_json - ydb-library-dynumber - yql-minikql-dom - yql-public-decimal - yql-public-udf - library-yql-utils - public-lib-scheme_types -) -target_sources(ydb-core-io_formats PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/csv_ydb_dump.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/csv_arrow.cpp -) diff --git a/ydb/core/io_formats/CMakeLists.linux-x86_64.txt b/ydb/core/io_formats/CMakeLists.linux-x86_64.txt deleted file mode 100644 index 6128891a22ae..000000000000 --- a/ydb/core/io_formats/CMakeLists.linux-x86_64.txt +++ /dev/null @@ -1,35 +0,0 @@ - -# 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-core-io_formats) -target_compile_options(ydb-core-io_formats PRIVATE - -Wno-unused-parameter - -DUSE_CURRENT_UDF_ABI_VERSION -) -target_link_libraries(ydb-core-io_formats PUBLIC - contrib-libs-linux-headers - contrib-libs-cxxsupp - yutil - contrib-libs-double-conversion - cpp-string_utils-quote - core-formats-arrow - ydb-core-scheme - ydb-library-binary_json - ydb-library-dynumber - yql-minikql-dom - yql-public-decimal - yql-public-udf - library-yql-utils - public-lib-scheme_types -) -target_sources(ydb-core-io_formats PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/csv_ydb_dump.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/csv_arrow.cpp -) diff --git a/ydb/core/io_formats/CMakeLists.txt b/ydb/core/io_formats/CMakeLists.txt index d863ebd18067..85bd72492bf7 100644 --- a/ydb/core/io_formats/CMakeLists.txt +++ b/ydb/core/io_formats/CMakeLists.txt @@ -6,14 +6,6 @@ # original buildsystem will not be accepted. -if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA) - include(CMakeLists.linux-x86_64.txt) -elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) -endif() +add_subdirectory(arrow) +add_subdirectory(cell_maker) +add_subdirectory(ydb_dump) diff --git a/ydb/core/io_formats/CMakeLists.windows-x86_64.txt b/ydb/core/io_formats/CMakeLists.windows-x86_64.txt deleted file mode 100644 index 617ed8f31fd1..000000000000 --- a/ydb/core/io_formats/CMakeLists.windows-x86_64.txt +++ /dev/null @@ -1,34 +0,0 @@ - -# 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-core-io_formats) -target_compile_options(ydb-core-io_formats PRIVATE - -Wno-unused-parameter - -DUSE_CURRENT_UDF_ABI_VERSION -) -target_link_libraries(ydb-core-io_formats PUBLIC - contrib-libs-cxxsupp - yutil - contrib-libs-double-conversion - cpp-string_utils-quote - core-formats-arrow - ydb-core-scheme - ydb-library-binary_json - ydb-library-dynumber - yql-minikql-dom - yql-public-decimal - yql-public-udf - library-yql-utils - public-lib-scheme_types -) -target_sources(ydb-core-io_formats PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/csv_ydb_dump.cpp - ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/csv_arrow.cpp -) diff --git a/ydb/core/io_formats/arrow/CMakeLists.darwin-arm64.txt b/ydb/core/io_formats/arrow/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..104809697adc --- /dev/null +++ b/ydb/core/io_formats/arrow/CMakeLists.darwin-arm64.txt @@ -0,0 +1,24 @@ + +# 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(core-io_formats-arrow) +target_compile_options(core-io_formats-arrow PRIVATE + -Wno-unused-parameter + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(core-io_formats-arrow PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-scheme_types + core-formats-arrow +) +target_sources(core-io_formats-arrow PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/arrow/csv_arrow.cpp +) diff --git a/ydb/core/io_formats/arrow/CMakeLists.darwin-x86_64.txt b/ydb/core/io_formats/arrow/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..104809697adc --- /dev/null +++ b/ydb/core/io_formats/arrow/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,24 @@ + +# 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(core-io_formats-arrow) +target_compile_options(core-io_formats-arrow PRIVATE + -Wno-unused-parameter + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(core-io_formats-arrow PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-scheme_types + core-formats-arrow +) +target_sources(core-io_formats-arrow PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/arrow/csv_arrow.cpp +) diff --git a/ydb/core/io_formats/arrow/CMakeLists.linux-aarch64.txt b/ydb/core/io_formats/arrow/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..e784f8726fb4 --- /dev/null +++ b/ydb/core/io_formats/arrow/CMakeLists.linux-aarch64.txt @@ -0,0 +1,25 @@ + +# 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(core-io_formats-arrow) +target_compile_options(core-io_formats-arrow PRIVATE + -Wno-unused-parameter + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(core-io_formats-arrow PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-scheme_types + core-formats-arrow +) +target_sources(core-io_formats-arrow PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/arrow/csv_arrow.cpp +) diff --git a/ydb/core/io_formats/arrow/CMakeLists.linux-x86_64.txt b/ydb/core/io_formats/arrow/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..e784f8726fb4 --- /dev/null +++ b/ydb/core/io_formats/arrow/CMakeLists.linux-x86_64.txt @@ -0,0 +1,25 @@ + +# 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(core-io_formats-arrow) +target_compile_options(core-io_formats-arrow PRIVATE + -Wno-unused-parameter + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(core-io_formats-arrow PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-scheme_types + core-formats-arrow +) +target_sources(core-io_formats-arrow PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/arrow/csv_arrow.cpp +) diff --git a/ydb/core/io_formats/arrow/CMakeLists.txt b/ydb/core/io_formats/arrow/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/io_formats/arrow/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/io_formats/arrow/CMakeLists.windows-x86_64.txt b/ydb/core/io_formats/arrow/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..104809697adc --- /dev/null +++ b/ydb/core/io_formats/arrow/CMakeLists.windows-x86_64.txt @@ -0,0 +1,24 @@ + +# 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(core-io_formats-arrow) +target_compile_options(core-io_formats-arrow PRIVATE + -Wno-unused-parameter + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(core-io_formats-arrow PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-scheme_types + core-formats-arrow +) +target_sources(core-io_formats-arrow PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/arrow/csv_arrow.cpp +) diff --git a/ydb/core/io_formats/arrow/csv_arrow.cpp b/ydb/core/io_formats/arrow/csv_arrow.cpp index 06b070d76db2..36113047b92f 100644 --- a/ydb/core/io_formats/arrow/csv_arrow.cpp +++ b/ydb/core/io_formats/arrow/csv_arrow.cpp @@ -5,6 +5,7 @@ #include #include +#include namespace NKikimr::NFormats { @@ -42,7 +43,30 @@ class TimestampIntParser: public arrow::TimestampParser { } -TArrowCSV::TArrowCSV(const TVector>& columns, bool header, const std::set& notNullColumns) +arrow::Result TArrowCSV::Create(const TVector>& columns, bool header, const std::set& notNullColumns) { + TVector errors; + TColummns convertedColumns; + convertedColumns.reserve(columns.size()); + for (auto& [name, type] : columns) { + const auto arrowType = NArrow::GetArrowType(type); + if (!arrowType.ok()) { + errors.emplace_back("column " + name + ": " + arrowType.status().ToString()); + continue; + } + const auto csvArrowType = NArrow::GetCSVArrowType(type); + if (!csvArrowType.ok()) { + errors.emplace_back("column " + name + ": " + csvArrowType.status().ToString()); + continue; + } + convertedColumns.emplace_back(TColumnInfo{name, *arrowType, *csvArrowType}); + } + if (!errors.empty()) { + return arrow::Status::TypeError(ErrorPrefix() + "columns errors: " + JoinSeq("; ", errors)); + } + return TArrowCSV(convertedColumns, header, notNullColumns); +} + +TArrowCSV::TArrowCSV(const TColummns& columns, bool header, const std::set& notNullColumns) : ReadOptions(arrow::csv::ReadOptions::Defaults()) , ParseOptions(arrow::csv::ParseOptions::Defaults()) , ConvertOptions(arrow::csv::ConvertOptions::Defaults()) @@ -60,21 +84,19 @@ TArrowCSV::TArrowCSV(const TVector>& colu // !autogenerate + column_names.empty() => read from CSV ResultColumns.reserve(columns.size()); - for (auto& [name, type] : columns) { - ResultColumns.push_back(name); - std::string columnName(name.data(), name.size()); - ConvertOptions.column_types[columnName] = NArrow::GetCSVArrowType(type); - OriginalColumnTypes[columnName] = NArrow::GetArrowType(type); + for (const auto& col: columns) { + ResultColumns.push_back(col.Name); + ConvertOptions.column_types[col.Name] = col.CsvArrowType; + OriginalColumnTypes[col.Name] = col.ArrowType; } } else if (!columns.empty()) { // !autogenerate + !column_names.empty() => specified columns ReadOptions.column_names.reserve(columns.size()); - for (auto& [name, type] : columns) { - std::string columnName(name.data(), name.size()); - ReadOptions.column_names.push_back(columnName); - ConvertOptions.column_types[columnName] = NArrow::GetCSVArrowType(type); - OriginalColumnTypes[columnName] = NArrow::GetArrowType(type); + for (const auto& col: columns) { + ReadOptions.column_names.push_back(col.Name); + ConvertOptions.column_types[col.Name] = col.CsvArrowType; + OriginalColumnTypes[col.Name] = col.ArrowType; } #if 0 } else { diff --git a/ydb/core/io_formats/arrow/csv_arrow.h b/ydb/core/io_formats/arrow/csv_arrow.h index a4e5b912f664..49fd0cd84c62 100644 --- a/ydb/core/io_formats/arrow/csv_arrow.h +++ b/ydb/core/io_formats/arrow/csv_arrow.h @@ -13,7 +13,7 @@ class TArrowCSV { /// If header is true read column names from first line after skipRows. Parse columns as strings in this case. /// @note It's possible to skip header with skipRows and use typed columns instead. - TArrowCSV(const TVector>& columns, bool header = false, const std::set& notNullColumns = {}); + static arrow::Result Create(const TVector>& columns, bool header = false, const std::set& notNullColumns = {}); std::shared_ptr ReadNext(const TString& csv, TString& errString); std::shared_ptr ReadSingleBatch(const TString& csv, TString& errString); @@ -50,6 +50,13 @@ class TArrowCSV { void SetNullValue(const TString& null = ""); private: + struct TColumnInfo { + TString Name; + std::shared_ptr ArrowType; + std::shared_ptrCsvArrowType; + }; + using TColummns = TVector; + TArrowCSV(const TColummns& columns, bool header, const std::set& notNullColumns); arrow::csv::ReadOptions ReadOptions; arrow::csv::ParseOptions ParseOptions; arrow::csv::ConvertOptions ConvertOptions; diff --git a/ydb/core/io_formats/arrow/csv_arrow_ut.cpp b/ydb/core/io_formats/arrow/csv_arrow_ut.cpp index 5716126eb83e..aa37ebbdbc2a 100644 --- a/ydb/core/io_formats/arrow/csv_arrow_ut.cpp +++ b/ydb/core/io_formats/arrow/csv_arrow_ut.cpp @@ -53,7 +53,9 @@ TestReadSingleBatch(TArrowCSV& reader, for (size_t i = 0; i < columns.size(); ++i) { UNIT_ASSERT_EQUAL(columns[i].first, batch->schema()->field(i)->name()); - UNIT_ASSERT(NArrow::GetArrowType(columns[i].second)->Equals(batch->schema()->field(i)->type())); + auto arrowType = NArrow::GetArrowType(columns[i].second); + UNIT_ASSERT_C(arrowType.ok(), arrowType.status().ToString()); + UNIT_ASSERT(arrowType.ValueUnsafe()->Equals(batch->schema()->field(i)->type())); // TODO: check data } return batch; @@ -62,16 +64,17 @@ TestReadSingleBatch(TArrowCSV& reader, std::shared_ptr TestReadSingleBatch(const TVector>& columns, const TString& data, char delimiter, bool header, ui32 numRows, ui32 skipRows = 0, std::optional escape = {}) { - TArrowCSV reader(columns, header); - reader.SetDelimiter(delimiter); + auto reader = TArrowCSV::Create(columns, header); + UNIT_ASSERT_C(reader.ok(), reader.status().ToString()); + reader->SetDelimiter(delimiter); if (skipRows) { - reader.SetSkipRows(skipRows); + reader->SetSkipRows(skipRows); } if (escape) { - reader.SetEscaping(true, *escape); + reader->SetEscaping(true, *escape); } - return TestReadSingleBatch(reader, columns, data, numRows); + return TestReadSingleBatch(*reader, columns, data, numRows); } } @@ -95,10 +98,11 @@ Y_UNIT_TEST_SUITE(FormatCSV) { }; TInstant dtInstant; Y_ABORT_UNLESS(TInstant::TryParseIso8601(dateTimeString, dtInstant)); - TArrowCSV reader(columns, false); + auto reader = TArrowCSV::Create(columns, false); + UNIT_ASSERT_C(reader.ok(), reader.status().ToString()); TString errorMessage; - auto batch = reader.ReadNext(data, errorMessage); + auto batch = reader->ReadNext(data, errorMessage); Cerr << errorMessage << "\n"; UNIT_ASSERT(!!batch); UNIT_ASSERT(errorMessage.empty()); @@ -155,10 +159,11 @@ Y_UNIT_TEST_SUITE(FormatCSV) { TVector> columns; { - TArrowCSV reader(columns, false); + auto reader = TArrowCSV::Create(columns, false); + UNIT_ASSERT_C(reader.ok(), reader.status().ToString()); TString errorMessage; - auto batch = reader.ReadNext(data, errorMessage); + auto batch = reader->ReadNext(data, errorMessage); Cerr << errorMessage << "\n"; UNIT_ASSERT(!batch); UNIT_ASSERT(!errorMessage.empty()); @@ -170,10 +175,11 @@ Y_UNIT_TEST_SUITE(FormatCSV) { {"i64", NScheme::TTypeInfo(NScheme::NTypeIds::Int64)} }; - TArrowCSV reader(columns, false); + auto reader = TArrowCSV::Create(columns, false); + UNIT_ASSERT_C(reader.ok(), reader.status().ToString()); TString errorMessage; - auto batch = reader.ReadNext(data, errorMessage); + auto batch = reader->ReadNext(data, errorMessage); Cerr << errorMessage << "\n"; UNIT_ASSERT(!batch); UNIT_ASSERT(!errorMessage.empty()); @@ -291,14 +297,15 @@ Y_UNIT_TEST_SUITE(FormatCSV) { csv += TString() + null + delimiter + q + null + q + delimiter + q + null + q + endLine; csv += TString() + null + delimiter + null + delimiter + null + endLine; - TArrowCSV reader(columns, false); + auto reader = TArrowCSV::Create(columns, false); + UNIT_ASSERT_C(reader.ok(), reader.status().ToString()); if (!nulls.empty() || !defaultNull) { - reader.SetNullValue(null); + reader->SetNullValue(null); } else { defaultNull = false; } - auto batch = TestReadSingleBatch(reader, columns, csv, 3); + auto batch = TestReadSingleBatch(*reader, columns, csv, 3); Cerr << "src:\n" << csv; diff --git a/ydb/core/io_formats/arrow/ut/CMakeLists.darwin-arm64.txt b/ydb/core/io_formats/arrow/ut/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..ffd154c2abad --- /dev/null +++ b/ydb/core/io_formats/arrow/ut/CMakeLists.darwin-arm64.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-core-io_formats-arrow-ut) +target_compile_options(ydb-core-io_formats-arrow-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-io_formats-arrow-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/arrow +) +target_link_libraries(ydb-core-io_formats-arrow-ut PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + core-io_formats-arrow + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-core-io_formats-arrow-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-core-io_formats-arrow-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/arrow/csv_arrow_ut.cpp +) +set_property( + TARGET + ydb-core-io_formats-arrow-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-io_formats-arrow-ut + TEST_TARGET + ydb-core-io_formats-arrow-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-io_formats-arrow-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-io_formats-arrow-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-io_formats-arrow-ut + system_allocator +) +vcs_info(ydb-core-io_formats-arrow-ut) diff --git a/ydb/core/io_formats/arrow/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/io_formats/arrow/ut/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..7c1ef02316ea --- /dev/null +++ b/ydb/core/io_formats/arrow/ut/CMakeLists.darwin-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-core-io_formats-arrow-ut) +target_compile_options(ydb-core-io_formats-arrow-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-io_formats-arrow-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/arrow +) +target_link_libraries(ydb-core-io_formats-arrow-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + core-io_formats-arrow + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-core-io_formats-arrow-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-core-io_formats-arrow-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/arrow/csv_arrow_ut.cpp +) +set_property( + TARGET + ydb-core-io_formats-arrow-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-io_formats-arrow-ut + TEST_TARGET + ydb-core-io_formats-arrow-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-io_formats-arrow-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-io_formats-arrow-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-io_formats-arrow-ut + system_allocator +) +vcs_info(ydb-core-io_formats-arrow-ut) diff --git a/ydb/core/io_formats/arrow/ut/CMakeLists.linux-aarch64.txt b/ydb/core/io_formats/arrow/ut/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..1fe31e513398 --- /dev/null +++ b/ydb/core/io_formats/arrow/ut/CMakeLists.linux-aarch64.txt @@ -0,0 +1,73 @@ + +# 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-core-io_formats-arrow-ut) +target_compile_options(ydb-core-io_formats-arrow-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-io_formats-arrow-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/arrow +) +target_link_libraries(ydb-core-io_formats-arrow-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + core-io_formats-arrow + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-core-io_formats-arrow-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-core-io_formats-arrow-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/arrow/csv_arrow_ut.cpp +) +set_property( + TARGET + ydb-core-io_formats-arrow-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-io_formats-arrow-ut + TEST_TARGET + ydb-core-io_formats-arrow-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-io_formats-arrow-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-io_formats-arrow-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-io_formats-arrow-ut + cpp-malloc-jemalloc +) +vcs_info(ydb-core-io_formats-arrow-ut) diff --git a/ydb/core/io_formats/arrow/ut/CMakeLists.linux-x86_64.txt b/ydb/core/io_formats/arrow/ut/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..27a70d4cf882 --- /dev/null +++ b/ydb/core/io_formats/arrow/ut/CMakeLists.linux-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-core-io_formats-arrow-ut) +target_compile_options(ydb-core-io_formats-arrow-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-io_formats-arrow-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/arrow +) +target_link_libraries(ydb-core-io_formats-arrow-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + core-io_formats-arrow + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-core-io_formats-arrow-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-core-io_formats-arrow-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/arrow/csv_arrow_ut.cpp +) +set_property( + TARGET + ydb-core-io_formats-arrow-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-io_formats-arrow-ut + TEST_TARGET + ydb-core-io_formats-arrow-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-io_formats-arrow-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-io_formats-arrow-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-io_formats-arrow-ut + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-core-io_formats-arrow-ut) diff --git a/ydb/core/io_formats/arrow/ut/CMakeLists.txt b/ydb/core/io_formats/arrow/ut/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/io_formats/arrow/ut/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/io_formats/arrow/ut/CMakeLists.windows-x86_64.txt b/ydb/core/io_formats/arrow/ut/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..87c39d282746 --- /dev/null +++ b/ydb/core/io_formats/arrow/ut/CMakeLists.windows-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-core-io_formats-arrow-ut) +target_compile_options(ydb-core-io_formats-arrow-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-io_formats-arrow-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/arrow +) +target_link_libraries(ydb-core-io_formats-arrow-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + core-io_formats-arrow + udf-service-exception_policy + yql-sql-pg_dummy +) +target_sources(ydb-core-io_formats-arrow-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/arrow/csv_arrow_ut.cpp +) +set_property( + TARGET + ydb-core-io_formats-arrow-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-io_formats-arrow-ut + TEST_TARGET + ydb-core-io_formats-arrow-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-io_formats-arrow-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-io_formats-arrow-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-io_formats-arrow-ut + system_allocator +) +vcs_info(ydb-core-io_formats-arrow-ut) diff --git a/ydb/core/io_formats/cell_maker/CMakeLists.darwin-arm64.txt b/ydb/core/io_formats/cell_maker/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..83af0bd12fa0 --- /dev/null +++ b/ydb/core/io_formats/cell_maker/CMakeLists.darwin-arm64.txt @@ -0,0 +1,33 @@ + +# 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(core-io_formats-cell_maker) +target_compile_options(core-io_formats-cell_maker PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(core-io_formats-cell_maker PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-scheme + ydb-core-scheme_types + ydb-library-binary_json + ydb-library-dynumber + yql-minikql-dom + yql-public-decimal + yql-public-udf + library-yql-utils + contrib-libs-double-conversion + library-cpp-json + cpp-json-yson + cpp-string_utils-base64 + cpp-string_utils-quote +) +target_sources(core-io_formats-cell_maker PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/cell_maker/cell_maker.cpp +) diff --git a/ydb/core/io_formats/cell_maker/CMakeLists.darwin-x86_64.txt b/ydb/core/io_formats/cell_maker/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..83af0bd12fa0 --- /dev/null +++ b/ydb/core/io_formats/cell_maker/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,33 @@ + +# 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(core-io_formats-cell_maker) +target_compile_options(core-io_formats-cell_maker PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(core-io_formats-cell_maker PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-scheme + ydb-core-scheme_types + ydb-library-binary_json + ydb-library-dynumber + yql-minikql-dom + yql-public-decimal + yql-public-udf + library-yql-utils + contrib-libs-double-conversion + library-cpp-json + cpp-json-yson + cpp-string_utils-base64 + cpp-string_utils-quote +) +target_sources(core-io_formats-cell_maker PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/cell_maker/cell_maker.cpp +) diff --git a/ydb/core/io_formats/cell_maker/CMakeLists.linux-aarch64.txt b/ydb/core/io_formats/cell_maker/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..d1f0f464296b --- /dev/null +++ b/ydb/core/io_formats/cell_maker/CMakeLists.linux-aarch64.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. + + + +add_library(core-io_formats-cell_maker) +target_compile_options(core-io_formats-cell_maker PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(core-io_formats-cell_maker PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-scheme + ydb-core-scheme_types + ydb-library-binary_json + ydb-library-dynumber + yql-minikql-dom + yql-public-decimal + yql-public-udf + library-yql-utils + contrib-libs-double-conversion + library-cpp-json + cpp-json-yson + cpp-string_utils-base64 + cpp-string_utils-quote +) +target_sources(core-io_formats-cell_maker PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/cell_maker/cell_maker.cpp +) diff --git a/ydb/core/io_formats/cell_maker/CMakeLists.linux-x86_64.txt b/ydb/core/io_formats/cell_maker/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..d1f0f464296b --- /dev/null +++ b/ydb/core/io_formats/cell_maker/CMakeLists.linux-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. + + + +add_library(core-io_formats-cell_maker) +target_compile_options(core-io_formats-cell_maker PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(core-io_formats-cell_maker PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-scheme + ydb-core-scheme_types + ydb-library-binary_json + ydb-library-dynumber + yql-minikql-dom + yql-public-decimal + yql-public-udf + library-yql-utils + contrib-libs-double-conversion + library-cpp-json + cpp-json-yson + cpp-string_utils-base64 + cpp-string_utils-quote +) +target_sources(core-io_formats-cell_maker PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/cell_maker/cell_maker.cpp +) diff --git a/ydb/core/io_formats/cell_maker/CMakeLists.txt b/ydb/core/io_formats/cell_maker/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/io_formats/cell_maker/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/io_formats/cell_maker/CMakeLists.windows-x86_64.txt b/ydb/core/io_formats/cell_maker/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..83af0bd12fa0 --- /dev/null +++ b/ydb/core/io_formats/cell_maker/CMakeLists.windows-x86_64.txt @@ -0,0 +1,33 @@ + +# 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(core-io_formats-cell_maker) +target_compile_options(core-io_formats-cell_maker PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(core-io_formats-cell_maker PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-scheme + ydb-core-scheme_types + ydb-library-binary_json + ydb-library-dynumber + yql-minikql-dom + yql-public-decimal + yql-public-udf + library-yql-utils + contrib-libs-double-conversion + library-cpp-json + cpp-json-yson + cpp-string_utils-base64 + cpp-string_utils-quote +) +target_sources(core-io_formats-cell_maker PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/cell_maker/cell_maker.cpp +) diff --git a/ydb/core/io_formats/cell_maker/cell_maker.cpp b/ydb/core/io_formats/cell_maker/cell_maker.cpp index 1fc259159728..bf7fe1a35a88 100644 --- a/ydb/core/io_formats/cell_maker/cell_maker.cpp +++ b/ydb/core/io_formats/cell_maker/cell_maker.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -132,6 +133,21 @@ namespace { return true; } + struct TUuidHolder { + union { + ui16 Array[8]; + ui64 Halves[2]; + } Buf; + }; + + template <> + bool TryParse(TStringBuf value, TUuidHolder& result) { + if (!NUuid::ParseUuidToArray(value, result.Buf.Array, false)) { + return false; + } + return true; + } + template using TConverter = std::function; @@ -171,6 +187,14 @@ namespace { return v.Str; } + TStringBuf UuidToStringBuf(const TUuidHolder& uuid) { + char uuidBuf[16]; + + NUuid::UuidHalfsToBytes(uuidBuf, 16, uuid.Buf.Halves[1], uuid.Buf.Halves[0]); + + return TStringBuf(uuidBuf, 16); + } + template struct TCellMaker { static bool Make(TCell& c, TStringBuf v, TMemoryPool& pool, TString& err, TConverter conv = &Implicit) { @@ -297,6 +321,8 @@ bool MakeCell(TCell& cell, TStringBuf value, NScheme::TTypeInfo type, TMemoryPoo return TCellMaker>::Make(cell, value, pool, err, &Int128ToPair); case NScheme::NTypeIds::Pg: return TCellMaker::Make(cell, value, pool, err, &PgToStringBuf, type.GetTypeDesc()); + case NScheme::NTypeIds::Uuid: + return TCellMaker::Make(cell, value, pool, err, &UuidToStringBuf); default: return false; } @@ -390,6 +416,7 @@ bool CheckCellValue(const TCell& cell, NScheme::TTypeInfo type) { case NScheme::NTypeIds::JsonDocument: // checked at parsing time case NScheme::NTypeIds::DyNumber: // checked at parsing time case NScheme::NTypeIds::Pg: // checked at parsing time + case NScheme::NTypeIds::Uuid: // checked at parsing time return true; case NScheme::NTypeIds::Date: return cell.AsValue() < NUdf::MAX_DATE; diff --git a/ydb/core/io_formats/ydb_dump/CMakeLists.darwin-arm64.txt b/ydb/core/io_formats/ydb_dump/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..eaf86b603a80 --- /dev/null +++ b/ydb/core/io_formats/ydb_dump/CMakeLists.darwin-arm64.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(core-io_formats-ydb_dump) +target_compile_options(core-io_formats-ydb_dump PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(core-io_formats-ydb_dump PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-scheme + ydb-core-scheme_types + core-io_formats-cell_maker +) +target_sources(core-io_formats-ydb_dump PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/ydb_dump/csv_ydb_dump.cpp +) diff --git a/ydb/core/io_formats/ydb_dump/CMakeLists.darwin-x86_64.txt b/ydb/core/io_formats/ydb_dump/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..eaf86b603a80 --- /dev/null +++ b/ydb/core/io_formats/ydb_dump/CMakeLists.darwin-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(core-io_formats-ydb_dump) +target_compile_options(core-io_formats-ydb_dump PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(core-io_formats-ydb_dump PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-scheme + ydb-core-scheme_types + core-io_formats-cell_maker +) +target_sources(core-io_formats-ydb_dump PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/ydb_dump/csv_ydb_dump.cpp +) diff --git a/ydb/core/io_formats/ydb_dump/CMakeLists.linux-aarch64.txt b/ydb/core/io_formats/ydb_dump/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..7d16f66ff36b --- /dev/null +++ b/ydb/core/io_formats/ydb_dump/CMakeLists.linux-aarch64.txt @@ -0,0 +1,24 @@ + +# 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(core-io_formats-ydb_dump) +target_compile_options(core-io_formats-ydb_dump PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(core-io_formats-ydb_dump PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-scheme + ydb-core-scheme_types + core-io_formats-cell_maker +) +target_sources(core-io_formats-ydb_dump PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/ydb_dump/csv_ydb_dump.cpp +) diff --git a/ydb/core/io_formats/ydb_dump/CMakeLists.linux-x86_64.txt b/ydb/core/io_formats/ydb_dump/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..7d16f66ff36b --- /dev/null +++ b/ydb/core/io_formats/ydb_dump/CMakeLists.linux-x86_64.txt @@ -0,0 +1,24 @@ + +# 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(core-io_formats-ydb_dump) +target_compile_options(core-io_formats-ydb_dump PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(core-io_formats-ydb_dump PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-scheme + ydb-core-scheme_types + core-io_formats-cell_maker +) +target_sources(core-io_formats-ydb_dump PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/ydb_dump/csv_ydb_dump.cpp +) diff --git a/ydb/core/io_formats/ydb_dump/CMakeLists.txt b/ydb/core/io_formats/ydb_dump/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/io_formats/ydb_dump/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/io_formats/ydb_dump/CMakeLists.windows-x86_64.txt b/ydb/core/io_formats/ydb_dump/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..eaf86b603a80 --- /dev/null +++ b/ydb/core/io_formats/ydb_dump/CMakeLists.windows-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(core-io_formats-ydb_dump) +target_compile_options(core-io_formats-ydb_dump PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(core-io_formats-ydb_dump PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-scheme + ydb-core-scheme_types + core-io_formats-cell_maker +) +target_sources(core-io_formats-ydb_dump PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/io_formats/ydb_dump/csv_ydb_dump.cpp +) diff --git a/ydb/core/jaeger_tracing/request_discriminator.cpp b/ydb/core/jaeger_tracing/request_discriminator.cpp new file mode 100644 index 000000000000..79a647f89cd5 --- /dev/null +++ b/ydb/core/jaeger_tracing/request_discriminator.cpp @@ -0,0 +1,10 @@ +#include "request_discriminator.h" + +namespace NKikimr::NJaegerTracing { + +const TRequestDiscriminator TRequestDiscriminator::EMPTY { + .RequestType = ERequestType::UNSPECIFIED, + .Database = NothingObject, +}; + +} // namespace NKikimr::NJaegerTracing diff --git a/ydb/core/jaeger_tracing/request_discriminator.h b/ydb/core/jaeger_tracing/request_discriminator.h new file mode 100644 index 000000000000..48e1284bef91 --- /dev/null +++ b/ydb/core/jaeger_tracing/request_discriminator.h @@ -0,0 +1,127 @@ +#pragma once + +#include + +#include +#include +#include +#include + +namespace NKikimr::NJaegerTracing { + +enum class ERequestType: size_t { + UNSPECIFIED, + + KEYVALUE_CREATEVOLUME, + KEYVALUE_DROPVOLUME, + KEYVALUE_ALTERVOLUME, + KEYVALUE_DESCRIBEVOLUME, + KEYVALUE_LISTLOCALPARTITIONS, + KEYVALUE_ACQUIRELOCK, + KEYVALUE_EXECUTETRANSACTION, + KEYVALUE_READ, + KEYVALUE_READRANGE, + KEYVALUE_LISTRANGE, + KEYVALUE_GETSTORAGECHANNELSTATUS, + + TABLE_CREATESESSION, + TABLE_KEEPALIVE, + TABLE_ALTERTABLE, + TABLE_CREATETABLE, + TABLE_DROPTABLE, + TABLE_DESCRIBETABLE, + TABLE_COPYTABLE, + TABLE_COPYTABLES, + TABLE_RENAMETABLES, + TABLE_EXPLAINDATAQUERY, + TABLE_EXECUTESCHEMEQUERY, + TABLE_BEGINTRANSACTION, + TABLE_DESCRIBETABLEOPTIONS, + TABLE_DELETESESSION, + TABLE_COMMITTRANSACTION, + TABLE_ROLLBACKTRANSACTION, + TABLE_PREPAREDATAQUERY, + TABLE_EXECUTEDATAQUERY, + TABLE_BULKUPSERT, + TABLE_STREAMEXECUTESCANQUERY, + TABLE_STREAMREADTABLE, + TABLE_READROWS, + + QUERY_EXECUTEQUERY, + QUERY_EXECUTESCRIPT, + QUERY_FETCHSCRIPTRESULTS, + QUERY_CREATESESSION, + QUERY_DELETESESSION, + QUERY_ATTACHSESSION, + QUERY_BEGINTRANSACTION, + QUERY_COMMITTRANSACTION, + QUERY_ROLLBACKTRANSACTION, + + DISCOVERY_WHOAMI, + DISCOVERY_NODEREGISTRATION, + DISCOVERY_LISTENDPOINTS, + + REQUEST_TYPES_CNT, // Add new types above this line +}; + +static constexpr size_t kRequestTypesCnt = static_cast(ERequestType::REQUEST_TYPES_CNT); + +static const THashMap NameToRequestType = { + {"KeyValue.CreateVolume", ERequestType::KEYVALUE_CREATEVOLUME}, + {"KeyValue.DropVolume", ERequestType::KEYVALUE_DROPVOLUME}, + {"KeyValue.AlterVolume", ERequestType::KEYVALUE_ALTERVOLUME}, + {"KeyValue.DescribeVolume", ERequestType::KEYVALUE_DESCRIBEVOLUME}, + {"KeyValue.ListLocalPartitions", ERequestType::KEYVALUE_LISTLOCALPARTITIONS}, + {"KeyValue.AcquireLock", ERequestType::KEYVALUE_ACQUIRELOCK}, + {"KeyValue.ExecuteTransaction", ERequestType::KEYVALUE_EXECUTETRANSACTION}, + {"KeyValue.Read", ERequestType::KEYVALUE_READ}, + {"KeyValue.ReadRange", ERequestType::KEYVALUE_READRANGE}, + {"KeyValue.ListRange", ERequestType::KEYVALUE_LISTRANGE}, + {"KeyValue.GetStorageChannelStatus", ERequestType::KEYVALUE_GETSTORAGECHANNELSTATUS}, + + {"Table.CreateSession", ERequestType::TABLE_CREATESESSION}, + {"Table.KeepAlive", ERequestType::TABLE_KEEPALIVE}, + {"Table.AlterTable", ERequestType::TABLE_ALTERTABLE}, + {"Table.CreateTable", ERequestType::TABLE_CREATETABLE}, + {"Table.DropTable", ERequestType::TABLE_DROPTABLE}, + {"Table.DescribeTable", ERequestType::TABLE_DESCRIBETABLE}, + {"Table.CopyTable", ERequestType::TABLE_COPYTABLE}, + {"Table.CopyTables", ERequestType::TABLE_COPYTABLES}, + {"Table.RenameTables", ERequestType::TABLE_RENAMETABLES}, + {"Table.ExplainDataQuery", ERequestType::TABLE_EXPLAINDATAQUERY}, + {"Table.ExecuteSchemeQuery", ERequestType::TABLE_EXECUTESCHEMEQUERY}, + {"Table.BeginTransaction", ERequestType::TABLE_BEGINTRANSACTION}, + {"Table.DescribeTableOptions", ERequestType::TABLE_DESCRIBETABLEOPTIONS}, + {"Table.DeleteSession", ERequestType::TABLE_DELETESESSION}, + {"Table.CommitTransaction", ERequestType::TABLE_COMMITTRANSACTION}, + {"Table.RollbackTransaction", ERequestType::TABLE_ROLLBACKTRANSACTION}, + {"Table.PrepareDataQuery", ERequestType::TABLE_PREPAREDATAQUERY}, + {"Table.ExecuteDataQuery", ERequestType::TABLE_EXECUTEDATAQUERY}, + {"Table.BulkUpsert", ERequestType::TABLE_BULKUPSERT}, + {"Table.StreamExecuteScanQuery", ERequestType::TABLE_STREAMEXECUTESCANQUERY}, + {"Table.StreamReadTable", ERequestType::TABLE_STREAMREADTABLE}, + {"Table.ReadRows", ERequestType::TABLE_READROWS}, + + {"Query.ExecuteQuery", ERequestType::QUERY_EXECUTEQUERY}, + {"Query.ExecuteScript", ERequestType::QUERY_EXECUTESCRIPT}, + {"Query.FetchScriptResults", ERequestType::QUERY_FETCHSCRIPTRESULTS}, + {"Query.CreateSession", ERequestType::QUERY_CREATESESSION}, + {"Query.DeleteSession", ERequestType::QUERY_DELETESESSION}, + {"Query.AttachSession", ERequestType::QUERY_ATTACHSESSION}, + {"Query.BeginTransaction", ERequestType::QUERY_BEGINTRANSACTION}, + {"Query.CommitTransaction", ERequestType::QUERY_COMMITTRANSACTION}, + {"Query.RollbackTransaction", ERequestType::QUERY_ROLLBACKTRANSACTION}, + + {"Discovery.WhoAmI", ERequestType::DISCOVERY_WHOAMI}, + {"Discovery.NodeRegistration", ERequestType::DISCOVERY_NODEREGISTRATION}, + {"Discovery.ListEndpoints", ERequestType::DISCOVERY_LISTENDPOINTS}, +}; + +struct TRequestDiscriminator { + ERequestType RequestType = ERequestType::UNSPECIFIED; + TMaybe Database = NothingObject; + + static const TRequestDiscriminator EMPTY; +}; + +} // namespace NKikimr::NJaegerTracing diff --git a/ydb/core/jaeger_tracing/sampler.h b/ydb/core/jaeger_tracing/sampler.h new file mode 100644 index 000000000000..1adaed88f2b5 --- /dev/null +++ b/ydb/core/jaeger_tracing/sampler.h @@ -0,0 +1,23 @@ +#pragma once + +#include + +namespace NKikimr::NJaegerTracing { + +class TSampler { +public: + TSampler(double fraction, ui64 seed) + : SamplingFraction(fraction) + , Rng(seed) + {} + + bool Sample() { + return Rng.GenRandReal1() < SamplingFraction; + } + +private: + const double SamplingFraction; + TFastRng64 Rng; +}; + +} // namespace NKikimr::NJaegerTracing diff --git a/ydb/core/jaeger_tracing/sampler_ut.cpp b/ydb/core/jaeger_tracing/sampler_ut.cpp new file mode 100644 index 000000000000..2d1cd587b462 --- /dev/null +++ b/ydb/core/jaeger_tracing/sampler_ut.cpp @@ -0,0 +1,41 @@ +#include "sampler.h" + +#include + +namespace NKikimr::NJaegerTracing { + +Y_UNIT_TEST_SUITE(SamplingControlTests) { + ui32 RunTrials(TSampler& sampler, ui32 trials) { + ui32 cnt = 0; + for (ui32 i = 0; i < trials; ++i) { + if (sampler.Sample()) { + ++cnt; + } + } + return cnt; + } + + Y_UNIT_TEST(Simple) { + TSampler sampler(0.5, 42); + + auto samples = RunTrials(sampler, 100'000); + UNIT_ASSERT_GE(samples, 48'000); + UNIT_ASSERT_LE(samples, 52'000); + } + + Y_UNIT_TEST(EdgeCaseLower) { + TSampler sampler(0, 42); + + auto samples = RunTrials(sampler, 100'000); + UNIT_ASSERT_EQUAL(samples, 0); + } + + Y_UNIT_TEST(EdgeCaseUpper) { + TSampler sampler(1, 42); + + auto samples = RunTrials(sampler, 100'000); + UNIT_ASSERT_EQUAL(samples, 100'000); + } +} + +} // namespace NKikimr::NJaegerTracing diff --git a/ydb/core/jaeger_tracing/sampling_throttling_configurator.cpp b/ydb/core/jaeger_tracing/sampling_throttling_configurator.cpp new file mode 100644 index 000000000000..4a22d79bda29 --- /dev/null +++ b/ydb/core/jaeger_tracing/sampling_throttling_configurator.cpp @@ -0,0 +1,84 @@ +#include "sampling_throttling_configurator.h" + +#include "sampling_throttling_control.h" +#include "sampling_throttling_control_internals.h" + +#include +#include +#include + +namespace NKikimr::NJaegerTracing { + +namespace { + +template +void PropagateUnspecifiedRequest(TRulesContainer& rules) { + constexpr auto unspecifiedRequestType = static_cast(ERequestType::UNSPECIFIED); + const auto& unspecifiedRequestTypeRules = rules[unspecifiedRequestType]; + + for (size_t requestType = 0; requestType < kRequestTypesCnt; ++requestType) { + if (requestType == unspecifiedRequestType) { + continue; + } + + auto& requestTypeDatabaseRules = rules[requestType].DatabaseRules; + auto& requestTypeGlobalRules = rules[requestType].Global; + for (const auto& [database, unspecifiedDatabaseRules] : unspecifiedRequestTypeRules.DatabaseRules) { + auto& databaseRules = requestTypeDatabaseRules[database]; + databaseRules.insert(databaseRules.end(), unspecifiedDatabaseRules.begin(), + unspecifiedDatabaseRules.end()); + } + requestTypeGlobalRules.insert(requestTypeGlobalRules.end(), + unspecifiedRequestTypeRules.Global.begin(), + unspecifiedRequestTypeRules.Global.end()); + } +} + +} // namespace anonymous + +TSamplingThrottlingConfigurator::TSamplingThrottlingConfigurator(TIntrusivePtr timeProvider, + TIntrusivePtr& randomProvider) + : TimeProvider(std::move(timeProvider)) + , Rng(randomProvider->GenRand64()) + , CurrentSettings(GenerateThrottlers({})) +{} + +TIntrusivePtr TSamplingThrottlingConfigurator::GetControl() { + auto control = TIntrusivePtr(new TSamplingThrottlingControl(GenerateSetup())); + IssuedControls.push_back(control); + return control; +} + +void TSamplingThrottlingConfigurator::UpdateSettings(TSettings> settings) { + auto enrichedSettings = GenerateThrottlers(std::move(settings)); + PropagateUnspecifiedRequest(enrichedSettings.SamplingRules); + PropagateUnspecifiedRequest(enrichedSettings.ExternalThrottlingRules); + CurrentSettings = std::move(enrichedSettings); + + for (auto& control : IssuedControls) { + control->UpdateImpl(GenerateSetup()); + } +} + +TSettings> TSamplingThrottlingConfigurator::GenerateThrottlers( + TSettings> settings) { + THashMap> throttlers; + return settings.MapThrottler([this, &throttlers](const TWithTag& settings) { + if (auto it = throttlers.FindPtr(settings.Tag)) { + return *it; + } + auto throttler = MakeIntrusive(settings.Value.MaxTracesPerMinute, settings.Value.MaxTracesBurst, TimeProvider); + throttlers[settings.Tag] = throttler; + return throttler; + }); +} + +std::unique_ptr TSamplingThrottlingConfigurator::GenerateSetup() { + auto setup = CurrentSettings.MapSampler([this](double fraction) { + return TSampler(fraction, Rng()); + }); + + return std::make_unique(std::move(setup)); +} + +} // namespace NKikimr::NJaegerTracing diff --git a/ydb/core/jaeger_tracing/sampling_throttling_configurator.h b/ydb/core/jaeger_tracing/sampling_throttling_configurator.h new file mode 100644 index 000000000000..642c37e0d16f --- /dev/null +++ b/ydb/core/jaeger_tracing/sampling_throttling_configurator.h @@ -0,0 +1,46 @@ +#pragma once + +#include "sampling_throttling_control.h" + +#include "throttler.h" +#include "settings.h" + +#include + +#include +#include + +#include +#include + +namespace NKikimr::NJaegerTracing { + +// Used to represent shared limits in throttlers and samplers +template +struct TWithTag { + T Value; + size_t Tag; +}; + +class TSamplingThrottlingConfigurator: private TMoveOnly { +public: + TSamplingThrottlingConfigurator(TIntrusivePtr timeProvider, + TIntrusivePtr& randomProvider); + + TIntrusivePtr GetControl(); + + void UpdateSettings(TSettings> settings); + +private: + TSettings> GenerateThrottlers( + TSettings> settings); + + std::unique_ptr GenerateSetup(); + + TVector> IssuedControls; + TIntrusivePtr TimeProvider; + TFastRng64 Rng; + TSettings> CurrentSettings; +}; + +} // namespace NKikimr::NJaegerTracing diff --git a/ydb/core/jaeger_tracing/sampling_throttling_control.cpp b/ydb/core/jaeger_tracing/sampling_throttling_control.cpp new file mode 100644 index 000000000000..584eeb54d4aa --- /dev/null +++ b/ydb/core/jaeger_tracing/sampling_throttling_control.cpp @@ -0,0 +1,28 @@ +#include "sampling_throttling_control.h" + +#include "sampling_throttling_control_internals.h" + +namespace NKikimr::NJaegerTracing { + +TSamplingThrottlingControl::TSamplingThrottlingControl(std::unique_ptr initialImpl) + : Impl(std::move(initialImpl)) +{} + +TSamplingThrottlingControl::~TSamplingThrottlingControl() { + UpdateImpl(nullptr); +} + +void TSamplingThrottlingControl::HandleTracing(NWilson::TTraceId& traceId, const TRequestDiscriminator& discriminator) { + if (ImplUpdate.load(std::memory_order_relaxed)) { + auto newImpl = std::unique_ptr(ImplUpdate.exchange(nullptr, std::memory_order_relaxed)); + Y_ABORT_UNLESS(newImpl); + Impl = std::move(newImpl); + } + Impl->HandleTracing(traceId, discriminator); +} + +void TSamplingThrottlingControl::UpdateImpl(std::unique_ptr newImpl) { + std::unique_ptr guard(ImplUpdate.exchange(newImpl.release(), std::memory_order_relaxed)); +} + +} // namespace NKikimr::NJaegerTracing diff --git a/ydb/core/jaeger_tracing/sampling_throttling_control.h b/ydb/core/jaeger_tracing/sampling_throttling_control.h new file mode 100644 index 000000000000..fce17a0730dd --- /dev/null +++ b/ydb/core/jaeger_tracing/sampling_throttling_control.h @@ -0,0 +1,32 @@ +#pragma once + +#include "request_discriminator.h" + +#include + +namespace NKikimr::NJaegerTracing { + +class TSamplingThrottlingControl: public TThrRefBase { + friend class TSamplingThrottlingConfigurator; + +public: + void HandleTracing(NWilson::TTraceId& traceId, const TRequestDiscriminator& discriminator); + + ~TSamplingThrottlingControl(); + +private: + struct TSamplingThrottlingImpl; + + // Should only be obtained from TSamplingThrottlingConfigurator + TSamplingThrottlingControl(std::unique_ptr initialImpl); + + void UpdateImpl(std::unique_ptr newParams); + + // Exclusively owned by the only thread, that may call HandleTracing + std::unique_ptr Impl; + + // Shared between the thread calling HandleTracing and the thread calling UpdateParams + std::atomic ImplUpdate{nullptr}; +}; + +} // namespace NKikimr::NJaegerTracing diff --git a/ydb/core/jaeger_tracing/sampling_throttling_control_internals.cpp b/ydb/core/jaeger_tracing/sampling_throttling_control_internals.cpp new file mode 100644 index 000000000000..d7de858ee588 --- /dev/null +++ b/ydb/core/jaeger_tracing/sampling_throttling_control_internals.cpp @@ -0,0 +1,62 @@ +#include "sampling_throttling_control_internals.h" + + +namespace NKikimr::NJaegerTracing { + +namespace { + +template +void ForEachMatchingRule(TRequestTypeRules& rules, const TMaybe& database, TAction&& action) { + for (auto& rule : rules.Global) { + action(rule); + } + if (database) { + if (auto databaseRules = rules.DatabaseRules.FindPtr(*database)) { + for (auto& rule : *databaseRules) { + action(rule); + } + } + } +} + +} // namespace anonymous + +void TSamplingThrottlingControl::TSamplingThrottlingImpl::HandleTracing( + NWilson::TTraceId& traceId, TRequestDiscriminator discriminator) { + auto requestType = static_cast(discriminator.RequestType); + auto database = std::move(discriminator.Database); + + if (traceId) { + bool throttle = true; + + ForEachMatchingRule( + Setup.ExternalThrottlingRules[requestType], database, + [&throttle](auto& throttlingRule) { + throttle = throttlingRule.Throttler->Throttle() && throttle; + }); + + if (throttle) { + traceId = {}; + } + } + + if (!traceId) { + TMaybe level; + ForEachMatchingRule( + Setup.SamplingRules[requestType], database, + [&level](auto& samplingRule) { + if (!samplingRule.Sampler.Sample() || samplingRule.Throttler->Throttle()) { + return; + } + if (!level || samplingRule.Level > *level) { + level = samplingRule.Level; + } + }); + + if (level) { + traceId = NWilson::TTraceId::NewTraceId(*level, Max()); + } + } +} + +} // namespace NKikimr::NJaegerTracing diff --git a/ydb/core/jaeger_tracing/sampling_throttling_control_internals.h b/ydb/core/jaeger_tracing/sampling_throttling_control_internals.h new file mode 100644 index 000000000000..34a9ba9ffe11 --- /dev/null +++ b/ydb/core/jaeger_tracing/sampling_throttling_control_internals.h @@ -0,0 +1,25 @@ +#pragma once + +#include "sampler.h" +#include "throttler.h" +#include "sampling_throttling_control.h" +#include "settings.h" + +#include +#include + +#include + +namespace NKikimr::NJaegerTracing { + +struct TSamplingThrottlingControl::TSamplingThrottlingImpl { + TSamplingThrottlingImpl(TSettings>&& settings) + : Setup(std::move(settings)) + {} + + TSettings> Setup; + + void HandleTracing(NWilson::TTraceId& traceId, TRequestDiscriminator discriminator); +}; + +} // namespace NKikimr::NJaegerTracing diff --git a/ydb/core/jaeger_tracing/settings.h b/ydb/core/jaeger_tracing/settings.h new file mode 100644 index 000000000000..22b68df3bca3 --- /dev/null +++ b/ydb/core/jaeger_tracing/settings.h @@ -0,0 +1,165 @@ +#pragma once + +#include "request_discriminator.h" + +#include + +#include +#include + +namespace NKikimr::NJaegerTracing { + +struct TThrottlingSettings { + ui64 MaxTracesPerMinute; + ui64 MaxTracesBurst; +}; + +template +struct TSamplingRule { + ui8 Level; + TSampling Sampler; + TThrottling Throttler; + + template + auto MapSampler(TFunc&& f) const { + using TNewSamplingType = std::invoke_result_t; + + return TSamplingRule { + .Level = Level, + .Sampler = std::forward(f)(Sampler), + .Throttler = Throttler, + }; + } + + template + auto MapThrottler(TFunc&& f) const { + using TNewThrottlingType = std::invoke_result_t; + + return TSamplingRule { + .Level = Level, + .Sampler = Sampler, + .Throttler = std::forward(f)(Throttler), + }; + } +}; + +template +struct TExternalThrottlingRule { + TThrottling Throttler; + + template + auto MapThrottler(TFunc&& f) const { + using TNewThrottlingType = std::invoke_result_t; + + return TExternalThrottlingRule { + .Throttler = std::forward(f)(Throttler), + }; + } +}; + +template +struct TRequestTypeRules { + TStackVec Global; + THashMap> DatabaseRules; +}; + +template +using TRulesContainer = std::array, kRequestTypesCnt>; + +template +struct TSettings { +public: + TRulesContainer> SamplingRules; + TRulesContainer> ExternalThrottlingRules; + + template + auto MapSampler(TFunc&& f) const { + using TNewSamplingType = std::invoke_result_t; + + return TSettings { + .SamplingRules = MapContainerValues( + SamplingRules, + [&f](const auto& v) { + return v.MapSampler(f); + } + ), + .ExternalThrottlingRules = ExternalThrottlingRules, + }; + } + + template + auto MapThrottler(TFunc&& f) const { + using TNewThrottlingType = std::invoke_result_t; + + return TSettings { + .SamplingRules = MapContainerValues( + SamplingRules, + [&f](const auto& v) { + return v.MapThrottler(f); + } + ), + .ExternalThrottlingRules = MapContainerValues( + ExternalThrottlingRules, + [&f](const auto& v) { + return v.MapThrottler(f); + } + ), + }; + } + +private: + template + static auto MapValues(const TStackVec& v, TFunc&& f) { + using TResultValue = std::invoke_result_t; + + TStackVec result; + result.reserve(v.size()); + for (const auto& item : v) { + result.push_back(f(item)); + } + return result; + } + + template + static auto MapValues(const THashMap& m, TFunc&& f) { + using TResultValue = std::invoke_result_t; + + THashMap result; + result.reserve(m.size()); + for (const auto& [key, value] : m) { + result.emplace(key, f(value)); + } + return result; + } + + template + static auto MapValues(const std::array& v, TFunc&& f) { + using TResultValue = std::invoke_result_t; + + return [&v, &f](std::index_sequence) -> std::array { + return { f(v[I])...}; + }(std::make_index_sequence()); + } + + template + static TRulesContainer> MapContainerValues(const TRulesContainer& v, TFunc&& f) { + using TResultValue = std::invoke_result_t; + + return MapValues( + v, + [&f](const TRequestTypeRules& reqTypeRules) { + return TRequestTypeRules { + .Global = MapValues(reqTypeRules.Global, f), + .DatabaseRules = MapValues( + reqTypeRules.DatabaseRules, + [&f](const auto& dbSamplingRules) { + return MapValues(dbSamplingRules, f); + } + ), + }; + } + ); + } +}; + +} // namespace NKikimr::NJaegerTracing diff --git a/ydb/core/jaeger_tracing/throttler.cpp b/ydb/core/jaeger_tracing/throttler.cpp new file mode 100644 index 000000000000..d361e9b053e6 --- /dev/null +++ b/ydb/core/jaeger_tracing/throttler.cpp @@ -0,0 +1,78 @@ +#include "throttler.h" + +#include + +namespace NKikimr::NJaegerTracing { + +TThrottler::TThrottler(ui64 maxRatePerMinute, ui64 maxBurst, TIntrusivePtr timeProvider) + : MaxTracesPerMinute(maxRatePerMinute) + , MaxTracesBurst(maxBurst + 1) + , BetweenSends(TDuration::Minutes(1).MicroSeconds() / MaxTracesPerMinute) + , TimeProvider(std::move(timeProvider)) + , EffectiveTs(TimeProvider->Now().MicroSeconds()) +{} + +bool TThrottler::Throttle() { + auto now = TimeProvider->Now().MicroSeconds(); + auto ts = EffectiveTs.load(std::memory_order_relaxed); + auto maxFinalTs = ClampAdd(now, ClampMultiply(BetweenSends, MaxTracesBurst)); + while (true) { + if (ts < now) { + if (EffectiveTs.compare_exchange_weak(ts, now + BetweenSends, std::memory_order_relaxed)) { + return false; + } + SpinLockPause(); + } else if (ts + BetweenSends > maxFinalTs) { + return true; + } else if (EffectiveTs.fetch_add(BetweenSends, std::memory_order_relaxed) + BetweenSends > maxFinalTs) { + EffectiveTs.fetch_sub(BetweenSends, std::memory_order_relaxed); + return true; + } else { + return false; + } + } +} + +ui64 TThrottler::ClampAdd(ui64 a, ui64 b) { +#if defined(__has_builtin) && __has_builtin(__builtin_add_overflow) + + ui64 res; + if (__builtin_add_overflow(a, b, &res)) { + return Max(); + } else { + return res; + } + +#else + + if (a > Max() - b) { + return Max(); + } + return a + b; + +#endif +} + +ui64 TThrottler::ClampMultiply(ui64 a, ui64 b) { +#if defined(__has_builtin) && __has_builtin(__builtin_mul_overflow) + + ui64 res; + if (__builtin_mul_overflow(a, b, &res)) { + return Max(); + } else { + return res; + } + +#else + + ui128 prod = a; + prod *= b; + if (prod > Max()) { + return Max(); + } + return static_cast(prod); + +#endif +} + +} // namespace NKikimr::NJaegerTracing diff --git a/ydb/core/jaeger_tracing/throttler.h b/ydb/core/jaeger_tracing/throttler.h new file mode 100644 index 000000000000..c0b39913ccab --- /dev/null +++ b/ydb/core/jaeger_tracing/throttler.h @@ -0,0 +1,27 @@ +#pragma once + +#include +#include + +namespace NKikimr::NJaegerTracing { + +class TThrottler: public TThrRefBase { +public: + TThrottler(ui64 maxRatePerMinute, ui64 maxBurst, TIntrusivePtr timeProvider); + + bool Throttle(); + +private: + static ui64 ClampAdd(ui64 a, ui64 b); + static ui64 ClampMultiply(ui64 a, ui64 b); + + const ui64 MaxTracesPerMinute; + const ui64 MaxTracesBurst; + const ui64 BetweenSends; + TIntrusivePtr TimeProvider; + std::atomic EffectiveTs; + + static_assert(decltype(EffectiveTs)::is_always_lock_free); +}; + +} // namespace NKikimr::NJaegerTracing diff --git a/ydb/core/jaeger_tracing/throttler_ut.cpp b/ydb/core/jaeger_tracing/throttler_ut.cpp new file mode 100644 index 000000000000..aed397f09411 --- /dev/null +++ b/ydb/core/jaeger_tracing/throttler_ut.cpp @@ -0,0 +1,175 @@ +#include "throttler.h" + +#include +#include + +#include + +#include + +namespace NKikimr::NJaegerTracing { + +class TTimeProviderMock : public ITimeProvider { +public: + TTimeProviderMock(TInstant now) : CurrentTimeUS(now.GetValue()) {} + + void Advance(TDuration delta) { + CurrentTimeUS.fetch_add(delta.GetValue()); + } + + TInstant Now() final { + return TInstant::FromValue(CurrentTimeUS.load()); + } + +private: + std::atomic CurrentTimeUS; +}; + +Y_UNIT_TEST_SUITE(ThrottlerControlTests) { + void CheckAtLeast(TThrottler& throttler, ui32 n) { + for (ui32 i = 0; i < n; ++i) { + UNIT_ASSERT(!throttler.Throttle()); + } + } + + void CheckExact(TThrottler& throttler, ui32 n) { + CheckAtLeast(throttler, n); + UNIT_ASSERT(throttler.Throttle()); + } + + Y_UNIT_TEST(Simple) { + auto timeProvider = MakeIntrusive(TInstant::Now()); + + TThrottler throttler(6, 2, timeProvider); + CheckExact(throttler, 3); + CheckExact(throttler, 0); + + timeProvider->Advance(TDuration::Seconds(9)); + CheckExact(throttler, 0); + timeProvider->Advance(TDuration::Seconds(1)); + CheckExact(throttler, 1); + + timeProvider->Advance(TDuration::Seconds(15)); + CheckExact(throttler, 1); + + timeProvider->Advance(TDuration::Seconds(15)); + CheckExact(throttler, 2); + } + + Y_UNIT_TEST(LongIdle) { + auto timeProvider = MakeIntrusive(TInstant::Now()); + + TThrottler throttler(10, 2, timeProvider); + CheckAtLeast(throttler, 3); + + timeProvider->Advance(TDuration::Hours(1)); + CheckExact(throttler, 3); + } + + Y_UNIT_TEST(Overflow_1) { + auto timeProvider = MakeIntrusive(TInstant::Now()); + + TThrottler throttler(1'000'000'000'000'000'000, 20'000, timeProvider); + + // TODO(pumpurum): switch back to CheckExact when we figure out how to limit properly + CheckAtLeast(throttler, 20'001); + + timeProvider->Advance(TDuration::Days(365 * 10)); + + CheckAtLeast(throttler, 20'001); + } + + Y_UNIT_TEST(Overflow_2) { + auto timeProvider = MakeIntrusive(TInstant::Now()); + + TThrottler throttler(1'000'000'000'000'000'000, 1, timeProvider); + CheckAtLeast(throttler, 1); + + timeProvider->Advance(TDuration::Days(365 * 10)); + + CheckAtLeast(throttler, 1); + } + + void TestMultiThreaded(ui32 threads, ui64 ticks, ui64 init, ui64 step) { + constexpr std::array delays = { + TDuration::MilliSeconds(1), + TDuration::MilliSeconds(10), + TDuration::MilliSeconds(100), + TDuration::Seconds(1) + }; + + auto timeProvider = MakeIntrusive(TInstant::Now()); + + TThrottler throttler(60, init - 1, timeProvider); + + auto shouldStop = std::make_shared>(false); + TVector> workers; + Y_SCOPE_EXIT(shouldStop, &workers) { + shouldStop->store(true); + + try { + for (auto& worker : workers) { + worker->Join(); + } + } catch (yexception& e) { + Cerr << "Failed to join worker:" << Endl; + Cerr << e.what() << Endl; + } + }; + + std::atomic totalConsumed{0}; + workers.reserve(threads); + for (size_t i = 0; i < threads; ++i) { + workers.push_back(MakeHolder([&]() { + while (!shouldStop->load(std::memory_order_relaxed)) { + if (!throttler.Throttle()) { + totalConsumed.fetch_add(1); + } + } + })); + } + for (auto& worker : workers) { + worker->Start(); + } + + auto waitForIncrease = [&](ui64 expected) -> bool { + for (const TDuration& delay : delays) { + Sleep(delay); + if (totalConsumed.load() == expected) { + return true; + } + } + return false; + }; + + ui64 expected = init; + UNIT_ASSERT(waitForIncrease(expected)); + + auto advance = [&](ui64 seconds, ui64 expectedIncrease) { + timeProvider->Advance(TDuration::Seconds(seconds)); + expected += expectedIncrease; + UNIT_ASSERT(waitForIncrease(expected)); + }; + + advance(1, 1); + + for (size_t i = 0; i < ticks; ++i) { + advance(step, step); + } + + advance(init + 1000, init); + } + + #define TEST_MULTI_THREADED(threads, ticks, init, step) \ + Y_UNIT_TEST(MultiThreaded##threads##Threads##ticks##Ticks##init##Init##step##Step) { \ + TestMultiThreaded(threads, ticks, init, step); \ + } + + TEST_MULTI_THREADED(2, 200, 30, 7); + TEST_MULTI_THREADED(5, 150, 500, 15); + TEST_MULTI_THREADED(10, 100, 1000, 22); + + #undef TEST_MULTI_THREADED +} + +} // namespace NKikimr::NJaegerTracing diff --git a/ydb/core/jaeger_tracing/ut/ya.make b/ydb/core/jaeger_tracing/ut/ya.make new file mode 100644 index 000000000000..a3b67286e633 --- /dev/null +++ b/ydb/core/jaeger_tracing/ut/ya.make @@ -0,0 +1,14 @@ +UNITTEST_FOR(ydb/core/jaeger_tracing) + +FORK_SUBTESTS() + +TIMEOUT(600) + +SIZE(MEDIUM) + +SRCS( + sampler_ut.cpp + throttler_ut.cpp +) + +END() diff --git a/ydb/core/jaeger_tracing/ya.make b/ydb/core/jaeger_tracing/ya.make new file mode 100644 index 000000000000..09da909d3bb8 --- /dev/null +++ b/ydb/core/jaeger_tracing/ya.make @@ -0,0 +1,26 @@ +LIBRARY() + +PEERDIR( + ydb/core/protos +) + +SRCS( + request_discriminator.h + request_discriminator.cpp + sampler.h + sampling_throttling_configurator.cpp + sampling_throttling_configurator.h + sampling_throttling_control.cpp + sampling_throttling_control.h + sampling_throttling_control_internals.cpp + sampling_throttling_control_internals.h + settings.h + throttler.h + throttler.cpp +) + +END() + +RECURSE_FOR_TESTS( + ut +) diff --git a/ydb/core/kafka_proxy/CMakeLists.darwin-arm64.txt b/ydb/core/kafka_proxy/CMakeLists.darwin-arm64.txt index 14e450725360..98daa89b760a 100644 --- a/ydb/core/kafka_proxy/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kafka_proxy/CMakeLists.darwin-arm64.txt @@ -27,6 +27,15 @@ target_link_libraries(ydb-core-kafka_proxy PUBLIC ydb-services-persqueue_v1 ) target_sources(ydb-core-kafka_proxy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_connection.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_constants.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_listener.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages_int.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_proxy.h ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_api_versions_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_init_producer_id_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_metadata_actor.cpp @@ -41,6 +50,8 @@ target_sources(ydb-core-kafka_proxy PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_read_session_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_offset_fetch_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_offset_commit_actor.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_create_topics_actor.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_create_partitions_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_connection.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages_int.cpp diff --git a/ydb/core/kafka_proxy/CMakeLists.darwin-x86_64.txt b/ydb/core/kafka_proxy/CMakeLists.darwin-x86_64.txt index 14e450725360..98daa89b760a 100644 --- a/ydb/core/kafka_proxy/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kafka_proxy/CMakeLists.darwin-x86_64.txt @@ -27,6 +27,15 @@ target_link_libraries(ydb-core-kafka_proxy PUBLIC ydb-services-persqueue_v1 ) target_sources(ydb-core-kafka_proxy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_connection.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_constants.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_listener.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages_int.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_proxy.h ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_api_versions_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_init_producer_id_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_metadata_actor.cpp @@ -41,6 +50,8 @@ target_sources(ydb-core-kafka_proxy PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_read_session_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_offset_fetch_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_offset_commit_actor.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_create_topics_actor.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_create_partitions_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_connection.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages_int.cpp diff --git a/ydb/core/kafka_proxy/CMakeLists.linux-aarch64.txt b/ydb/core/kafka_proxy/CMakeLists.linux-aarch64.txt index df2ec8838fc6..f756f03c49a9 100644 --- a/ydb/core/kafka_proxy/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kafka_proxy/CMakeLists.linux-aarch64.txt @@ -28,6 +28,15 @@ target_link_libraries(ydb-core-kafka_proxy PUBLIC ydb-services-persqueue_v1 ) target_sources(ydb-core-kafka_proxy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_connection.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_constants.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_listener.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages_int.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_proxy.h ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_api_versions_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_init_producer_id_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_metadata_actor.cpp @@ -42,6 +51,8 @@ target_sources(ydb-core-kafka_proxy PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_read_session_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_offset_fetch_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_offset_commit_actor.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_create_topics_actor.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_create_partitions_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_connection.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages_int.cpp diff --git a/ydb/core/kafka_proxy/CMakeLists.linux-x86_64.txt b/ydb/core/kafka_proxy/CMakeLists.linux-x86_64.txt index df2ec8838fc6..f756f03c49a9 100644 --- a/ydb/core/kafka_proxy/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kafka_proxy/CMakeLists.linux-x86_64.txt @@ -28,6 +28,15 @@ target_link_libraries(ydb-core-kafka_proxy PUBLIC ydb-services-persqueue_v1 ) target_sources(ydb-core-kafka_proxy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_connection.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_constants.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_listener.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages_int.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_proxy.h ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_api_versions_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_init_producer_id_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_metadata_actor.cpp @@ -42,6 +51,8 @@ target_sources(ydb-core-kafka_proxy PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_read_session_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_offset_fetch_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_offset_commit_actor.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_create_topics_actor.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_create_partitions_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_connection.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages_int.cpp diff --git a/ydb/core/kafka_proxy/CMakeLists.windows-x86_64.txt b/ydb/core/kafka_proxy/CMakeLists.windows-x86_64.txt index 14e450725360..98daa89b760a 100644 --- a/ydb/core/kafka_proxy/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kafka_proxy/CMakeLists.windows-x86_64.txt @@ -27,6 +27,15 @@ target_link_libraries(ydb-core-kafka_proxy PUBLIC ydb-services-persqueue_v1 ) target_sources(ydb-core-kafka_proxy PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_connection.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_constants.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_listener.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages_int.h + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_proxy.h ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_api_versions_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_init_producer_id_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_metadata_actor.cpp @@ -41,6 +50,8 @@ target_sources(ydb-core-kafka_proxy PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_read_session_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_offset_fetch_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_offset_commit_actor.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_create_topics_actor.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/actors/kafka_create_partitions_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_connection.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/kafka_messages_int.cpp diff --git a/ydb/core/kafka_proxy/actors/actors.h b/ydb/core/kafka_proxy/actors/actors.h index e1c287a8654e..8ae2710a6792 100644 --- a/ydb/core/kafka_proxy/actors/actors.h +++ b/ydb/core/kafka_proxy/actors/actors.h @@ -10,6 +10,11 @@ namespace NKafka { +static constexpr int ProxyNodeId = 1; +static constexpr char UnderlayPrefix[] = "u-"; + +static_assert(sizeof(UnderlayPrefix) == 3); + enum EAuthSteps { WAIT_HANDSHAKE, WAIT_AUTH, diff --git a/ydb/core/kafka_proxy/actors/kafka_api_versions_actor.cpp b/ydb/core/kafka_proxy/actors/kafka_api_versions_actor.cpp index 96c628477a5c..dc74d519630a 100644 --- a/ydb/core/kafka_proxy/actors/kafka_api_versions_actor.cpp +++ b/ydb/core/kafka_proxy/actors/kafka_api_versions_actor.cpp @@ -30,21 +30,21 @@ TApiVersionsResponseData::TPtr GetApiVersions() { TApiVersionsResponseData::TPtr response = std::make_shared(); response->ErrorCode = EKafkaErrors::NONE_ERROR; - AddApiKey(response->ApiKeys, PRODUCE, {.MinVersion=3}); - AddApiKey(response->ApiKeys, API_VERSIONS); - AddApiKey(response->ApiKeys, METADATA); - AddApiKey(response->ApiKeys, INIT_PRODUCER_ID); - AddApiKey(response->ApiKeys, SASL_HANDSHAKE); - AddApiKey(response->ApiKeys, SASL_AUTHENTICATE); - AddApiKey(response->ApiKeys, LIST_OFFSETS); + AddApiKey(response->ApiKeys, PRODUCE, {.MinVersion=3, .MaxVersion=9}); + AddApiKey(response->ApiKeys, API_VERSIONS, {.MaxVersion=2}); + AddApiKey(response->ApiKeys, METADATA, {.MaxVersion=9}); + AddApiKey(response->ApiKeys, INIT_PRODUCER_ID, {.MaxVersion=4}); + AddApiKey(response->ApiKeys, SASL_HANDSHAKE, {.MaxVersion=1}); + AddApiKey(response->ApiKeys, SASL_AUTHENTICATE, {.MaxVersion=2}); + AddApiKey(response->ApiKeys, LIST_OFFSETS, {.MinVersion=1, .MaxVersion=1}); AddApiKey(response->ApiKeys, FETCH, {.MaxVersion=3}); - AddApiKey(response->ApiKeys, JOIN_GROUP); - AddApiKey(response->ApiKeys, SYNC_GROUP); - AddApiKey(response->ApiKeys, LEAVE_GROUP); - AddApiKey(response->ApiKeys, HEARTBEAT); - AddApiKey(response->ApiKeys, FIND_COORDINATOR); - AddApiKey(response->ApiKeys, OFFSET_COMMIT, {.MaxVersion=1}); - AddApiKey(response->ApiKeys, OFFSET_FETCH); + AddApiKey(response->ApiKeys, JOIN_GROUP, {.MaxVersion=9}); + AddApiKey(response->ApiKeys, SYNC_GROUP, {.MaxVersion=3}); + AddApiKey(response->ApiKeys, LEAVE_GROUP, {.MaxVersion=5}); + AddApiKey(response->ApiKeys, HEARTBEAT, {.MaxVersion=4}); + AddApiKey(response->ApiKeys, FIND_COORDINATOR, {.MaxVersion=0}); + AddApiKey(response->ApiKeys, OFFSET_COMMIT, {.MaxVersion=0}); + AddApiKey(response->ApiKeys, OFFSET_FETCH, {.MaxVersion=8}); return response; } diff --git a/ydb/core/kafka_proxy/actors/kafka_fetch_actor.cpp b/ydb/core/kafka_proxy/actors/kafka_fetch_actor.cpp index 5cd0be58bd6b..648d38d273e2 100644 --- a/ydb/core/kafka_proxy/actors/kafka_fetch_actor.cpp +++ b/ydb/core/kafka_proxy/actors/kafka_fetch_actor.cpp @@ -34,9 +34,8 @@ void TKafkaFetchActor::SendFetchRequests(const TActorContext& ctx) { for (size_t topicIndex = 0; topicIndex < Response->Responses.size(); topicIndex++) { TVector partPQRequests; PrepareFetchRequestData(topicIndex, partPQRequests); - - NKikimr::NPQ::TFetchRequestSettings request(Context->DatabasePath, partPQRequests, FetchRequestData->MaxWaitMs, FetchRequestData->MaxBytes, Context->RlContext, *Context->UserToken); - + auto ruPerRequest = topicIndex == 0 && Context->Config.GetMeteringV2Enabled(); + NKikimr::NPQ::TFetchRequestSettings request(Context->DatabasePath, partPQRequests, FetchRequestData->MaxWaitMs, FetchRequestData->MaxBytes, Context->RlContext, *Context->UserToken, 0, ruPerRequest); auto fetchActor = NKikimr::NPQ::CreatePQFetchRequestActor(request, NKikimr::MakeSchemeCacheID(), ctx.SelfID); auto actorId = ctx.Register(fetchActor); PendingResponses++; @@ -55,7 +54,6 @@ void TKafkaFetchActor::PrepareFetchRequestData(const size_t topicIndex, TVector< for (size_t partIndex = 0; partIndex < topicKafkaRequest.Partitions.size(); partIndex++) { auto& partKafkaRequest = topicKafkaRequest.Partitions[partIndex]; KAFKA_LOG_D(TStringBuilder() << "Fetch actor: New request. Topic: " << topicKafkaRequest.Topic.value() << " Partition: " << partKafkaRequest.Partition << " FetchOffset: " << partKafkaRequest.FetchOffset << " PartitionMaxBytes: " << partKafkaRequest.PartitionMaxBytes); - auto& partPQRequest = partPQRequests[partIndex]; partPQRequest.Topic = NormalizePath(Context->DatabasePath, topicKafkaRequest.Topic.value()); // FIXME(savnik): handle empty topic partPQRequest.Partition = partKafkaRequest.Partition; @@ -113,9 +111,9 @@ void TKafkaFetchActor::HandleSuccessResponse(const NKikimr::TEvPQ::TEvFetchRespo partKafkaResponse.ErrorCode = ConvertErrorCode(partPQResponse.GetReadResult().GetErrorCode()); if (partPQResponse.GetReadResult().GetErrorCode() != NPersQueue::NErrorCode::EErrorCode::OK) { - KAFKA_LOG_ERROR("Fetch actor: Failed to get responses for topic: " << topicResponse.Topic << - ", partition: " << partPQResponse.GetPartition() << - ". Code: " << static_cast(partPQResponse.GetReadResult().GetErrorCode()) << + KAFKA_LOG_ERROR("Fetch actor: Failed to get responses for topic: " << topicResponse.Topic << + ", partition: " << partPQResponse.GetPartition() << + ". Code: " << static_cast(partPQResponse.GetReadResult().GetErrorCode()) << ". Reason: " + partPQResponse.GetReadResult().GetErrorReason()); } @@ -174,7 +172,7 @@ void TKafkaFetchActor::FillRecordsBatch(const NKikimrClient::TPersQueueFetchResp record.TimestampDelta = lastTimestamp - baseTimestamp; record.Length = record.Size(TKafkaRecord::MessageMeta::PresentVersions.Max) - SizeOfZeroVarint; - KAFKA_LOG_D("Fetch actor: Record info. OffsetDelta: " << record.OffsetDelta << + KAFKA_LOG_D("Fetch actor: Record info. OffsetDelta: " << record.OffsetDelta << ", TimestampDelta: " << record.TimestampDelta << ", Length: " << record.Length); } @@ -187,11 +185,11 @@ void TKafkaFetchActor::FillRecordsBatch(const NKikimrClient::TPersQueueFetchResp //recordsBatch.Attributes https://kafka.apache.org/documentation/#recordbatch recordsBatch.BatchLength = recordsBatch.Size(TKafkaRecordBatch::MessageMeta::PresentVersions.Max) - BatchFirstTwoFieldsSize; - KAFKA_LOG_D("Fetch actor: RecordBatch info. BaseOffset: " << recordsBatch.BaseOffset << ", LastOffsetDelta: " << recordsBatch.LastOffsetDelta << - ", BaseTimestamp: " << recordsBatch.BaseTimestamp << ", MaxTimestamp: " << recordsBatch.MaxTimestamp << + KAFKA_LOG_D("Fetch actor: RecordBatch info. BaseOffset: " << recordsBatch.BaseOffset << ", LastOffsetDelta: " << recordsBatch.LastOffsetDelta << + ", BaseTimestamp: " << recordsBatch.BaseTimestamp << ", MaxTimestamp: " << recordsBatch.MaxTimestamp << ", BaseSequence: " << recordsBatch.BaseSequence << ", BatchLength: " << recordsBatch.BatchLength); auto topicWithoutDb = GetTopicNameWithoutDb(Context->DatabasePath, partPQResponse.GetTopic()); - ctx.Send(MakeKafkaMetricsServiceID(), new TEvKafka::TEvUpdateCounter(recordsBatch.Records.size(), BuildLabels(Context, "", topicWithoutDb, "api.kafka.fetch.messages", ""))); + ctx.Send(MakeKafkaMetricsServiceID(), new TEvKafka::TEvUpdateCounter(recordsBatch.Records.size(), BuildLabels(Context, "", topicWithoutDb, "api.kafka.fetch.messages", ""))); } void TKafkaFetchActor::RespondIfRequired(const TActorContext& ctx) { diff --git a/ydb/core/kafka_proxy/actors/kafka_find_coordinator_actor.cpp b/ydb/core/kafka_proxy/actors/kafka_find_coordinator_actor.cpp index 63709d8385c4..de97d767227c 100644 --- a/ydb/core/kafka_proxy/actors/kafka_find_coordinator_actor.cpp +++ b/ydb/core/kafka_proxy/actors/kafka_find_coordinator_actor.cpp @@ -25,7 +25,7 @@ void TKafkaFindCoordinatorActor::Bootstrap(const NActors::TActorContext& ctx) { bool withProxy = Context->Config.HasProxy() && !Context->Config.GetProxy().GetHostname().Empty(); if (withProxy) { - SendResponseOkAndDie(Context->Config.GetProxy().GetHostname(), Context->Config.GetProxy().GetPort(), -1, ctx); + SendResponseOkAndDie(Context->Config.GetProxy().GetHostname(), Context->Config.GetProxy().GetPort(), NKafka::ProxyNodeId, ctx); return; } @@ -49,6 +49,13 @@ void TKafkaFindCoordinatorActor::SendResponseOkAndDie(const TString& host, i32 p response->Coordinators.push_back(coordinator); } + response->ErrorCode = NONE_ERROR; + response->Host = host; + response->Port = port; + response->NodeId = nodeId; + + KAFKA_LOG_D("FIND_COORDINATOR response. Host#: " << host << ", Port#: " << port << ", NodeId# " << nodeId); + Send(Context->ConnectionId, new TEvKafka::TEvResponse(CorrelationId, response, static_cast(response->ErrorCode))); Die(ctx); } @@ -66,7 +73,9 @@ void TKafkaFindCoordinatorActor::SendResponseFailAndDie(EKafkaErrors error, cons response->Coordinators.push_back(coordinator); } - + + response->ErrorCode = error; + Send(Context->ConnectionId, new TEvKafka::TEvResponse(CorrelationId, response, static_cast(response->ErrorCode))); Die(ctx); } @@ -74,7 +83,11 @@ void TKafkaFindCoordinatorActor::SendResponseFailAndDie(EKafkaErrors error, cons void TKafkaFindCoordinatorActor::Handle(NKikimr::NIcNodeCache::TEvICNodesInfoCache::TEvGetAllNodesInfoResponse::TPtr& ev, const NActors::TActorContext& ctx) { auto iter = ev->Get()->NodeIdsMapping->find(ctx.SelfID.NodeId()); Y_ABORT_UNLESS(!iter.IsEnd()); + auto host = (*ev->Get()->Nodes)[iter->second].Host; + if (host.StartsWith(UnderlayPrefix)) { + host = host.substr(sizeof(UnderlayPrefix) - 1); + } KAFKA_LOG_D("FIND_COORDINATOR incoming TEvGetAllNodesInfoResponse. Host#: " << host); SendResponseOkAndDie(host, Context->Config.GetListeningPort(), ctx.SelfID.NodeId(), ctx); } diff --git a/ydb/core/kafka_proxy/actors/kafka_metadata_actor.cpp b/ydb/core/kafka_proxy/actors/kafka_metadata_actor.cpp index 9a9029a9f2d8..b51d3b6badeb 100644 --- a/ydb/core/kafka_proxy/actors/kafka_metadata_actor.cpp +++ b/ydb/core/kafka_proxy/actors/kafka_metadata_actor.cpp @@ -6,11 +6,6 @@ namespace NKafka { using namespace NKikimr::NGRpcProxy::V1; -static constexpr int ProxyNodeId = 1; -static constexpr char UnderlayPrefix[] = "u-"; - -static_assert(sizeof(UnderlayPrefix) == 3); - NActors::IActor* CreateKafkaMetadataActor(const TContext::TPtr context, const ui64 correlationId, const TMessagePtr& message) { diff --git a/ydb/core/kafka_proxy/actors/kafka_offset_fetch_actor.cpp b/ydb/core/kafka_proxy/actors/kafka_offset_fetch_actor.cpp index 01cee28a259c..96893aaa59ce 100644 --- a/ydb/core/kafka_proxy/actors/kafka_offset_fetch_actor.cpp +++ b/ydb/core/kafka_proxy/actors/kafka_offset_fetch_actor.cpp @@ -204,6 +204,7 @@ TOffsetFetchResponseData::TPtr TKafkaOffsetFetchActor::GetOffsetFetchResponse() partition.CommittedOffset = sourcePartition.CommittedOffset; partition.PartitionIndex = sourcePartition.PartitionIndex; partition.ErrorCode = sourcePartition.ErrorCode; + topic.Partitions.push_back(partition); } response->Topics.push_back(topic); } diff --git a/ydb/core/kafka_proxy/actors/kafka_produce_actor.cpp b/ydb/core/kafka_proxy/actors/kafka_produce_actor.cpp index 674eeca14436..adee25149f88 100644 --- a/ydb/core/kafka_proxy/actors/kafka_produce_actor.cpp +++ b/ydb/core/kafka_proxy/actors/kafka_produce_actor.cpp @@ -43,7 +43,7 @@ void TKafkaProduceActor::LogEvent(IEventHandle& ev) { void TKafkaProduceActor::SendMetrics(const TString& topicName, size_t delta, const TString& name, const TActorContext& ctx) { auto topicWithoutDb = GetTopicNameWithoutDb(Context->DatabasePath, topicName); ctx.Send(MakeKafkaMetricsServiceID(), new TEvKafka::TEvUpdateCounter(delta, BuildLabels(Context, "", topicWithoutDb, TStringBuilder() << "api.kafka.produce." << name, ""))); - ctx.Send(MakeKafkaMetricsServiceID(), new TEvKafka::TEvUpdateCounter(delta, BuildLabels(Context, "", topicWithoutDb, "api.kafka.produce.total_messages", ""))); + ctx.Send(MakeKafkaMetricsServiceID(), new TEvKafka::TEvUpdateCounter(delta, BuildLabels(Context, "", topicWithoutDb, "api.kafka.produce.total_messages", ""))); } void TKafkaProduceActor::Bootstrap(const NActors::TActorContext& /*ctx*/) { @@ -82,7 +82,7 @@ void TKafkaProduceActor::PassAway() { void TKafkaProduceActor::CleanTopics(const TActorContext& ctx) { const auto now = ctx.Now(); - std::map newTopics; + std::map newTopics; for(auto& [topicPath, topicInfo] : Topics) { if (topicInfo.ExpirationTime > now) { newTopics[topicPath] = std::move(topicInfo); @@ -242,7 +242,8 @@ size_t TKafkaProduceActor::EnqueueInitialization() { THolder Convert(const TProduceRequestData::TTopicProduceData::TPartitionProduceData& data, const TString& topicName, ui64 cookie, - const TString& clientDC) { + const TString& clientDC, + bool ruPerRequest) { auto ev = MakeHolder(); auto& request = ev->Record; @@ -254,6 +255,9 @@ THolder Convert(const TProduceRequestData:: partitionRequest->SetPartition(data.Index); // partitionRequest->SetCmdWriteOffset(); partitionRequest->SetCookie(cookie); + if (ruPerRequest) { + partitionRequest->SetMeteringV2Enabled(true); + } ui64 totalSize = 0; @@ -317,11 +321,11 @@ void TKafkaProduceActor::ProcessRequest(TPendingRequest::TPtr pendingRequest, co pendingRequest->StartTime = ctx.Now(); size_t position = 0; + bool ruPerRequest = Context->Config.GetMeteringV2Enabled(); for(const auto& topicData : r->TopicData) { const TString& topicPath = NormalizePath(Context->DatabasePath, *topicData.Name); for(const auto& partitionData : topicData.PartitionData) { const auto partitionId = partitionData.Index; - auto writer = PartitionWriter(topicPath, partitionId, ctx); if (OK == writer.first) { auto ownCookie = ++Cookie; @@ -334,7 +338,8 @@ void TKafkaProduceActor::ProcessRequest(TPendingRequest::TPtr pendingRequest, co pendingRequest->WaitAcceptingCookies.insert(ownCookie); pendingRequest->WaitResultCookies.insert(ownCookie); - auto ev = Convert(partitionData, *topicData.Name, ownCookie, ClientDC); + auto ev = Convert(partitionData, *topicData.Name, ownCookie, ClientDC, ruPerRequest); + ruPerRequest = false; Send(writer.second, std::move(ev)); } else { @@ -441,7 +446,7 @@ void TKafkaProduceActor::SendResults(const TActorContext& ctx) { // We send the results in the order of receipt of the request while (!PendingRequests.empty()) { auto pendingRequest = PendingRequests.front(); - + // We send the response by timeout. This is possible, for example, if the event was lost or the PartitionWrite died. bool expired = expireTime > pendingRequest->StartTime; diff --git a/ydb/core/kafka_proxy/actors/kafka_read_session_actor.cpp b/ydb/core/kafka_proxy/actors/kafka_read_session_actor.cpp index e788f7ceb736..a1886ca53752 100644 --- a/ydb/core/kafka_proxy/actors/kafka_read_session_actor.cpp +++ b/ydb/core/kafka_proxy/actors/kafka_read_session_actor.cpp @@ -36,11 +36,10 @@ void TKafkaReadSessionActor::HandleWakeup(TEvKafka::TEvWakeup::TPtr, const TActo return; } - for (auto& topicToPartitions: NewPartitionsToLockOnTime) { - auto& partitions = topicToPartitions.second; + for (auto& [topicName, partitions]: NewPartitionsToLockOnTime) { for (auto partitionsIt = partitions.begin(); partitionsIt != partitions.end(); ) { - if (partitionsIt->LockOn >= ctx.Now()) { - TopicPartitions[topicToPartitions.first].ToLock.emplace(partitionsIt->PartitionId); + if (partitionsIt->LockOn <= ctx.Now()) { + TopicPartitions[topicName].ToLock.emplace(partitionsIt->PartitionId); NeedRebalance = true; partitionsIt = partitions.erase(partitionsIt); } else { @@ -86,8 +85,8 @@ void TKafkaReadSessionActor::HandleJoinGroup(TEvKafka::TEvJoinGroupRequest::TPtr switch (ReadStep) { case WAIT_JOIN_GROUP: { // join first time - if (joinGroupRequest->ProtocolType != SUPPORTED_JOIN_GROUP_PROTOCOL) { - SendJoinGroupResponseFail(ctx, ev->Get()->CorrelationId, INVALID_REQUEST, TStringBuilder() << "unknown protocolType# " << joinGroupRequest->ProtocolType); + if (joinGroupRequest->ProtocolType.has_value() && !joinGroupRequest->ProtocolType.value().empty() && joinGroupRequest->ProtocolType.value() != SUPPORTED_JOIN_GROUP_PROTOCOL) { + SendJoinGroupResponseFail(ctx, ev->Get()->CorrelationId, INVALID_REQUEST, TStringBuilder() << "unknown protocolType# " << joinGroupRequest->ProtocolType.value()); CloseReadSession(ctx); return; } @@ -156,8 +155,8 @@ void TKafkaReadSessionActor::HandleSyncGroup(TEvKafka::TEvSyncGroupRequest::TPtr return; } - if (syncGroupRequest->ProtocolType != SUPPORTED_JOIN_GROUP_PROTOCOL) { - SendJoinGroupResponseFail(ctx, ev->Get()->CorrelationId, INVALID_REQUEST, TStringBuilder() << "unknown protocolType# " << syncGroupRequest->ProtocolType); + if (syncGroupRequest->ProtocolType.has_value() && !syncGroupRequest->ProtocolType.value().empty() && syncGroupRequest->ProtocolType.value() != SUPPORTED_JOIN_GROUP_PROTOCOL) { + SendSyncGroupResponseFail(ctx, ev->Get()->CorrelationId, INVALID_REQUEST, TStringBuilder() << "unknown protocolType# " << syncGroupRequest->ProtocolType.value()); CloseReadSession(ctx); return; } @@ -361,9 +360,9 @@ TConsumerProtocolAssignment TKafkaReadSessionActor::BuildAssignmentAndInformBala for (auto part: finalPartitionsToRead) { KAFKA_LOG_D("SYNC_GROUP assigned partition number: " << part); topicPartition.Partitions.push_back(part); - assignment.AssignedPartitions.push_back(topicPartition); partitions.ReadingNow.emplace(part); } + assignment.AssignedPartitions.push_back(topicPartition); } return assignment; @@ -408,6 +407,8 @@ void TKafkaReadSessionActor::HandlePipeDestroyed(TEvTabletPipe::TEvClientDestroy } void TKafkaReadSessionActor::ProcessBalancerDead(ui64 tabletId, const TActorContext& ctx) { + NewPartitionsToLockOnTime.clear(); + for (auto& [topicName, topicInfo] : TopicsInfo) { if (topicInfo.TabletID == tabletId) { auto partitionsIt = TopicPartitions.find(topicName); @@ -579,8 +580,7 @@ void TKafkaReadSessionActor::HandleReleasePartition(TEvPersQueue::TEvReleasePart auto newPartitionsToLockCount = newPartitionsToLockIt == NewPartitionsToLockOnTime.end() ? 0 : newPartitionsToLockIt->second.size(); auto topicPartitionsIt = TopicPartitions.find(pathIt->second->GetInternalName()); - Y_ABORT_UNLESS(topicPartitionsIt != TopicPartitions.end()); - Y_ABORT_UNLESS(record.GetCount() <= topicPartitionsIt->second.ToLock.size() + topicPartitionsIt->second.ReadingNow.size() + newPartitionsToLockCount); + Y_ABORT_UNLESS(record.GetCount() <= (topicPartitionsIt.IsEnd() ? 0 : topicPartitionsIt->second.ToLock.size() + topicPartitionsIt->second.ReadingNow.size()) + newPartitionsToLockCount); for (ui32 c = 0; c < record.GetCount(); ++c) { // if some partition not locked yet, then release it without rebalance @@ -599,18 +599,19 @@ void TKafkaReadSessionActor::HandleReleasePartition(TEvPersQueue::TEvReleasePart } NeedRebalance = true; - size_t partitionToReleaseIndex = 0; - size_t i = 0; + ui32 partitionToRelease = 0; + ui32 i = 0; - for (size_t partIndex = 0; partIndex < topicPartitionsIt->second.ReadingNow.size(); partIndex++) { - if (!topicPartitionsIt->second.ToRelease.contains(partIndex) && (group == 0 || partIndex + 1 == group)) { + for (auto curPartition : topicPartitionsIt->second.ReadingNow) { + if (!topicPartitionsIt->second.ToRelease.contains(curPartition) && (group == 0 || curPartition + 1 == group)) { ++i; - if (rand() % i == 0) { // will lead to 1/n probability for each of n partitions - partitionToReleaseIndex = partIndex; + if (rand() % i == 0) { + partitionToRelease = curPartition; } } } - topicPartitionsIt->second.ToRelease.emplace(partitionToReleaseIndex); + + topicPartitionsIt->second.ToRelease.emplace(partitionToRelease); } } diff --git a/ydb/core/kafka_proxy/kafka_connection.cpp b/ydb/core/kafka_proxy/kafka_connection.cpp index cca305787023..48fd041bf145 100644 --- a/ydb/core/kafka_proxy/kafka_connection.cpp +++ b/ydb/core/kafka_proxy/kafka_connection.cpp @@ -319,7 +319,14 @@ class TKafkaConnection: public TActorBootstrapped, public TNet KAFKA_LOG_D("process message: ApiKey=" << Request->Header.RequestApiKey << ", ExpectedSize=" << Request->ExpectedSize << ", Size=" << Request->Size); - Request->Method = EApiKeyNames.find(static_cast(Request->Header.RequestApiKey))->second; + auto apiKeyNameIt = EApiKeyNames.find(static_cast(Request->Header.RequestApiKey)); + if (apiKeyNameIt == EApiKeyNames.end()) { + KAFKA_LOG_ERROR("Unsupported message: ApiKey=" << Request->Header.RequestApiKey); + PassAway(); + return false; + } + + Request->Method = apiKeyNameIt->second; PendingRequestsQueue.push_back(Request); PendingRequests[Request->Header.CorrelationId] = Request; diff --git a/ydb/core/kafka_proxy/kafka_consumer_protocol.cpp b/ydb/core/kafka_proxy/kafka_consumer_protocol.cpp index dd2e52eb7a64..ce54125ffd56 100644 --- a/ydb/core/kafka_proxy/kafka_consumer_protocol.cpp +++ b/ydb/core/kafka_proxy/kafka_consumer_protocol.cpp @@ -143,12 +143,20 @@ void TConsumerProtocolAssignment::Read(TKafkaReadable& _readable, TKafkaVersion } void TConsumerProtocolAssignment::Write(TKafkaWritable& _writable, TKafkaVersion _version) const { + auto useVarintSize = _version > 3; _version = ASSIGNMENT_VERSION; + if (!NPrivate::VersionCheck(_version)) { ythrow yexception() << "Can't write version " << _version << " of TConsumerProtocolAssignment"; } - _writable.writeUnsignedVarint(Size(ASSIGNMENT_VERSION) + 1); + if (useVarintSize) { + _writable.writeUnsignedVarint(Size(_version) + 1); + } else { + TKafkaInt32 size = Size(_version); + _writable << size; + } + _writable << _version; NPrivate::TWriteCollector _collector; NPrivate::Write(_collector, _writable, _version, AssignedPartitions); diff --git a/ydb/core/kafka_proxy/kafka_messages.cpp b/ydb/core/kafka_proxy/kafka_messages.cpp index 8b08d98ce472..b68f3cd9ba77 100644 --- a/ydb/core/kafka_proxy/kafka_messages.cpp +++ b/ydb/core/kafka_proxy/kafka_messages.cpp @@ -4517,7 +4517,12 @@ i32 TSyncGroupResponseData::Size(TKafkaVersion _version) const { if (NPrivate::VersionCheck(_version)) { _collector.Size += NPrivate::SizeOfUnsignedVarint(_collector.NumTaggedFields); } - return _collector.Size + NPrivate::SizeOfUnsignedVarint(_assignmentCollector.Size + 1); + auto useVarintSize = _version > 3; + if (useVarintSize) { + return _collector.Size + NPrivate::SizeOfUnsignedVarint(_assignmentCollector.Size + 1); + } else { + return _collector.Size + sizeof(TKafkaInt32); + } } diff --git a/ydb/core/kafka_proxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kafka_proxy/ut/CMakeLists.darwin-arm64.txt index 5c5c404f6582..5c18285a27cf 100644 --- a/ydb/core/kafka_proxy/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kafka_proxy/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kafka_proxy-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kafka_proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/ut/ut_kafka_functions.cpp @@ -60,7 +58,8 @@ set_yunittest_property( ydb-core-kafka_proxy-ut PROPERTY LABELS - SMALL + medium + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kafka_proxy/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/kafka_proxy/ut/CMakeLists.darwin-x86_64.txt index b8df216cda26..90114af3bdba 100644 --- a/ydb/core/kafka_proxy/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kafka_proxy/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-kafka_proxy-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kafka_proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/ut/ut_kafka_functions.cpp @@ -61,7 +59,8 @@ set_yunittest_property( ydb-core-kafka_proxy-ut PROPERTY LABELS - SMALL + medium + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kafka_proxy/ut/CMakeLists.linux-aarch64.txt b/ydb/core/kafka_proxy/ut/CMakeLists.linux-aarch64.txt index a4ad9bc7be67..81c7a0309b04 100644 --- a/ydb/core/kafka_proxy/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kafka_proxy/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kafka_proxy-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kafka_proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/ut/ut_kafka_functions.cpp @@ -64,7 +61,8 @@ set_yunittest_property( ydb-core-kafka_proxy-ut PROPERTY LABELS - SMALL + medium + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kafka_proxy/ut/CMakeLists.linux-x86_64.txt b/ydb/core/kafka_proxy/ut/CMakeLists.linux-x86_64.txt index a7c8cc61723f..4cf3c17f6e42 100644 --- a/ydb/core/kafka_proxy/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kafka_proxy/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-kafka_proxy-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kafka_proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kafka_proxy/ut/ut_kafka_functions.cpp @@ -65,7 +62,8 @@ set_yunittest_property( ydb-core-kafka_proxy-ut PROPERTY LABELS - SMALL + medium + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kafka_proxy/ut/CMakeLists.windows-x86_64.txt b/ydb/core/kafka_proxy/ut/CMakeLists.windows-x86_64.txt index 38fe365d4f7d..4dd8dbee3726 100644 --- a/ydb/core/kafka_proxy/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kafka_proxy/ut/CMakeLists.windows-x86_64.txt @@ -54,7 +54,8 @@ set_yunittest_property( ydb-core-kafka_proxy-ut PROPERTY LABELS - SMALL + medium + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kafka_proxy/ut/ut_protocol.cpp b/ydb/core/kafka_proxy/ut/ut_protocol.cpp index 46e982aa8a59..a4115a4f043e 100644 --- a/ydb/core/kafka_proxy/ut/ut_protocol.cpp +++ b/ydb/core/kafka_proxy/ut/ut_protocol.cpp @@ -532,7 +532,12 @@ class TTestClient { TReadInfo readInfo; for (;;) { readInfo = JoinAndSyncGroup(topics, groupId); - if (readInfo.Partitions.size() == expectedPartitionsCount) { + ui32 partitionsCount = 0; + for (auto topicPartitions: readInfo.Partitions) { + partitionsCount += topicPartitions.Partitions.size(); + } + + if (partitionsCount == expectedPartitionsCount) { break; } WaitRebalance(readInfo.MemberId, readInfo.GenerationId, groupId); diff --git a/ydb/core/kesus/proxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kesus/proxy/ut/CMakeLists.darwin-arm64.txt index af7950a656a9..306a715a5be1 100644 --- a/ydb/core/kesus/proxy/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kesus/proxy/ut/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-core-kesus-proxy-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kesus-proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kesus/proxy/proxy_actor_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kesus/proxy/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/kesus/proxy/ut/CMakeLists.darwin-x86_64.txt index 9a06807d2326..691712fddef4 100644 --- a/ydb/core/kesus/proxy/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kesus/proxy/ut/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-kesus-proxy-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kesus-proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kesus/proxy/proxy_actor_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kesus/proxy/ut/CMakeLists.linux-aarch64.txt b/ydb/core/kesus/proxy/ut/CMakeLists.linux-aarch64.txt index a2f3d894725b..e85728868480 100644 --- a/ydb/core/kesus/proxy/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kesus/proxy/ut/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-core-kesus-proxy-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kesus-proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kesus/proxy/proxy_actor_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kesus/proxy/ut/CMakeLists.linux-x86_64.txt b/ydb/core/kesus/proxy/ut/CMakeLists.linux-x86_64.txt index 3940018f3a0a..8a82186bdd3e 100644 --- a/ydb/core/kesus/proxy/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kesus/proxy/ut/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-kesus-proxy-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kesus-proxy-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kesus/proxy/proxy_actor_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kesus/proxy/ut/CMakeLists.windows-x86_64.txt b/ydb/core/kesus/proxy/ut/CMakeLists.windows-x86_64.txt index 4ca11281b287..ddae307eb9ff 100644 --- a/ydb/core/kesus/proxy/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kesus/proxy/ut/CMakeLists.windows-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.darwin-arm64.txt b/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.darwin-arm64.txt index 2c77321d191a..3fe68b0b9e29 100644 --- a/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(quoter_performance_test PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(quoter_performance_test PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/quoter_performance_test/main.cpp diff --git a/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.darwin-x86_64.txt b/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.darwin-x86_64.txt index 6a6077972bb9..2c5edc71121a 100644 --- a/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(quoter_performance_test PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(quoter_performance_test PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/quoter_performance_test/main.cpp diff --git a/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.linux-aarch64.txt b/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.linux-aarch64.txt index e90fa56c1e6a..f10daaf53a04 100644 --- a/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(quoter_performance_test PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(quoter_performance_test PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/quoter_performance_test/main.cpp diff --git a/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.linux-x86_64.txt b/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.linux-x86_64.txt index f57e7cf3eb6b..cfcb3c69b2aa 100644 --- a/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kesus/tablet/quoter_performance_test/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(quoter_performance_test PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(quoter_performance_test PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/quoter_performance_test/main.cpp diff --git a/ydb/core/kesus/tablet/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kesus/tablet/ut/CMakeLists.darwin-arm64.txt index df909a96ecb1..e4f0c68f8270 100644 --- a/ydb/core/kesus/tablet/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kesus/tablet/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-kesus-tablet-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kesus-tablet-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tablet_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kesus/tablet/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/kesus/tablet/ut/CMakeLists.darwin-x86_64.txt index e7d8de9826f6..7e33f5888c54 100644 --- a/ydb/core/kesus/tablet/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kesus/tablet/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kesus-tablet-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kesus-tablet-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tablet_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kesus/tablet/ut/CMakeLists.linux-aarch64.txt b/ydb/core/kesus/tablet/ut/CMakeLists.linux-aarch64.txt index 683c26b59d96..52d9c6f0ad2c 100644 --- a/ydb/core/kesus/tablet/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kesus/tablet/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-kesus-tablet-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kesus-tablet-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tablet_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kesus/tablet/ut/CMakeLists.linux-x86_64.txt b/ydb/core/kesus/tablet/ut/CMakeLists.linux-x86_64.txt index 4878dc0cc4bb..e991c877b8c5 100644 --- a/ydb/core/kesus/tablet/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kesus/tablet/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kesus-tablet-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kesus-tablet-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kesus/tablet/tablet_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kesus/tablet/ut/CMakeLists.windows-x86_64.txt b/ydb/core/kesus/tablet/ut/CMakeLists.windows-x86_64.txt index 5bb666fcdc5a..113101d61db5 100644 --- a/ydb/core/kesus/tablet/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kesus/tablet/ut/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/keyvalue/CMakeLists.darwin-arm64.txt b/ydb/core/keyvalue/CMakeLists.darwin-arm64.txt index 895622c8c687..042b066356be 100644 --- a/ydb/core/keyvalue/CMakeLists.darwin-arm64.txt +++ b/ydb/core/keyvalue/CMakeLists.darwin-arm64.txt @@ -8,6 +8,7 @@ add_subdirectory(protos) add_subdirectory(ut) +add_subdirectory(ut_trace) add_library(ydb-core-keyvalue) target_link_libraries(ydb-core-keyvalue PUBLIC @@ -17,6 +18,7 @@ target_link_libraries(ydb-core-keyvalue PUBLIC library-actors-protos ydb-core-base core-blobstorage-base + core-control-common_controls core-engine-minikql core-keyvalue-protos ydb-core-protos @@ -26,6 +28,30 @@ target_link_libraries(ydb-core-keyvalue PUBLIC public-lib-base ) target_sources(ydb-core-keyvalue PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collect_operation.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_const.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_data_header.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_flat_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_index_record.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_intermediate.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_item_type.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_key_header.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_key_range.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_request_stat.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_request_type.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_scheme_flat.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_simple_db_flat.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_simple_db.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_storage_request.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_stored_state_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_trash_key_arbitrary.h ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collect_operation.cpp ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collector.cpp ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue.cpp diff --git a/ydb/core/keyvalue/CMakeLists.darwin-x86_64.txt b/ydb/core/keyvalue/CMakeLists.darwin-x86_64.txt index 895622c8c687..042b066356be 100644 --- a/ydb/core/keyvalue/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/keyvalue/CMakeLists.darwin-x86_64.txt @@ -8,6 +8,7 @@ add_subdirectory(protos) add_subdirectory(ut) +add_subdirectory(ut_trace) add_library(ydb-core-keyvalue) target_link_libraries(ydb-core-keyvalue PUBLIC @@ -17,6 +18,7 @@ target_link_libraries(ydb-core-keyvalue PUBLIC library-actors-protos ydb-core-base core-blobstorage-base + core-control-common_controls core-engine-minikql core-keyvalue-protos ydb-core-protos @@ -26,6 +28,30 @@ target_link_libraries(ydb-core-keyvalue PUBLIC public-lib-base ) target_sources(ydb-core-keyvalue PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collect_operation.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_const.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_data_header.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_flat_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_index_record.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_intermediate.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_item_type.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_key_header.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_key_range.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_request_stat.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_request_type.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_scheme_flat.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_simple_db_flat.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_simple_db.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_storage_request.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_stored_state_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_trash_key_arbitrary.h ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collect_operation.cpp ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collector.cpp ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue.cpp diff --git a/ydb/core/keyvalue/CMakeLists.linux-aarch64.txt b/ydb/core/keyvalue/CMakeLists.linux-aarch64.txt index ec8e271beaf3..a1bcab8ded2f 100644 --- a/ydb/core/keyvalue/CMakeLists.linux-aarch64.txt +++ b/ydb/core/keyvalue/CMakeLists.linux-aarch64.txt @@ -8,6 +8,7 @@ add_subdirectory(protos) add_subdirectory(ut) +add_subdirectory(ut_trace) add_library(ydb-core-keyvalue) target_link_libraries(ydb-core-keyvalue PUBLIC @@ -18,6 +19,7 @@ target_link_libraries(ydb-core-keyvalue PUBLIC library-actors-protos ydb-core-base core-blobstorage-base + core-control-common_controls core-engine-minikql core-keyvalue-protos ydb-core-protos @@ -27,6 +29,30 @@ target_link_libraries(ydb-core-keyvalue PUBLIC public-lib-base ) target_sources(ydb-core-keyvalue PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collect_operation.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_const.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_data_header.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_flat_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_index_record.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_intermediate.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_item_type.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_key_header.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_key_range.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_request_stat.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_request_type.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_scheme_flat.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_simple_db_flat.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_simple_db.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_storage_request.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_stored_state_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_trash_key_arbitrary.h ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collect_operation.cpp ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collector.cpp ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue.cpp diff --git a/ydb/core/keyvalue/CMakeLists.linux-x86_64.txt b/ydb/core/keyvalue/CMakeLists.linux-x86_64.txt index ec8e271beaf3..a1bcab8ded2f 100644 --- a/ydb/core/keyvalue/CMakeLists.linux-x86_64.txt +++ b/ydb/core/keyvalue/CMakeLists.linux-x86_64.txt @@ -8,6 +8,7 @@ add_subdirectory(protos) add_subdirectory(ut) +add_subdirectory(ut_trace) add_library(ydb-core-keyvalue) target_link_libraries(ydb-core-keyvalue PUBLIC @@ -18,6 +19,7 @@ target_link_libraries(ydb-core-keyvalue PUBLIC library-actors-protos ydb-core-base core-blobstorage-base + core-control-common_controls core-engine-minikql core-keyvalue-protos ydb-core-protos @@ -27,6 +29,30 @@ target_link_libraries(ydb-core-keyvalue PUBLIC public-lib-base ) target_sources(ydb-core-keyvalue PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collect_operation.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_const.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_data_header.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_flat_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_index_record.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_intermediate.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_item_type.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_key_header.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_key_range.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_request_stat.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_request_type.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_scheme_flat.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_simple_db_flat.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_simple_db.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_storage_request.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_stored_state_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_trash_key_arbitrary.h ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collect_operation.cpp ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collector.cpp ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue.cpp diff --git a/ydb/core/keyvalue/CMakeLists.windows-x86_64.txt b/ydb/core/keyvalue/CMakeLists.windows-x86_64.txt index 895622c8c687..042b066356be 100644 --- a/ydb/core/keyvalue/CMakeLists.windows-x86_64.txt +++ b/ydb/core/keyvalue/CMakeLists.windows-x86_64.txt @@ -8,6 +8,7 @@ add_subdirectory(protos) add_subdirectory(ut) +add_subdirectory(ut_trace) add_library(ydb-core-keyvalue) target_link_libraries(ydb-core-keyvalue PUBLIC @@ -17,6 +18,7 @@ target_link_libraries(ydb-core-keyvalue PUBLIC library-actors-protos ydb-core-base core-blobstorage-base + core-control-common_controls core-engine-minikql core-keyvalue-protos ydb-core-protos @@ -26,6 +28,30 @@ target_link_libraries(ydb-core-keyvalue PUBLIC public-lib-base ) target_sources(ydb-core-keyvalue PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collect_operation.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_const.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_data_header.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_flat_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_index_record.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_intermediate.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_item_type.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_key_header.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_key_range.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_request_stat.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_request_type.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_scheme_flat.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_simple_db_flat.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_simple_db.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_state.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_storage_request.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_stored_state_data.h + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_trash_key_arbitrary.h ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collect_operation.cpp ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_collector.cpp ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue.cpp diff --git a/ydb/core/keyvalue/channel_balancer.h b/ydb/core/keyvalue/channel_balancer.h index ca013400f9c3..378c22434d52 100644 --- a/ydb/core/keyvalue/channel_balancer.h +++ b/ydb/core/keyvalue/channel_balancer.h @@ -114,7 +114,7 @@ namespace NKikimr::NKeyValue { const size_t index = (LatencyQueue.size() - 1) * 99 / 100; const TDuration perc = latencies[index]; weight = MeanExpectedLatency.GetValue() * weight / Max(perc, TDuration::MilliSeconds(1)).GetValue(); - Y_DEBUG_ABORT_UNLESS(weight); + //Y_DEBUG_ABORT_UNLESS(weight); if (!weight) { weight = 1; } diff --git a/ydb/core/keyvalue/keyvalue_intermediate.cpp b/ydb/core/keyvalue/keyvalue_intermediate.cpp index ed8fa1c355f0..b48d35ef6261 100644 --- a/ydb/core/keyvalue/keyvalue_intermediate.cpp +++ b/ydb/core/keyvalue/keyvalue_intermediate.cpp @@ -80,7 +80,7 @@ TIntermediate::TIntermediate(TActorId respondTo, TActorId keyValueActorId, ui64 , CreatedAtGeneration(channelGeneration) , CreatedAtStep(channelStep) , IsReplied(false) - , Span(TWilsonTablet::Tablet, std::move(traceId), "KeyValue.Intermediate", NWilson::EFlags::AUTO_END) + , Span(TWilsonTablet::TabletTopLevel, std::move(traceId), "KeyValue.Intermediate", NWilson::EFlags::AUTO_END) { Stat.IntermediateCreatedAt = TAppData::TimeProvider->Now(); Stat.RequestType = requestType; @@ -106,7 +106,7 @@ void TIntermediate::UpdateStat() { } } } else { - Stat.IndexRangeRead++; + Stat.IndexRangeRead++; } }; diff --git a/ydb/core/keyvalue/keyvalue_state.cpp b/ydb/core/keyvalue/keyvalue_state.cpp index 73e6cc76e4bf..f1d00c36bbbb 100644 --- a/ydb/core/keyvalue/keyvalue_state.cpp +++ b/ydb/core/keyvalue/keyvalue_state.cpp @@ -634,6 +634,9 @@ void TKeyValueState::InitExecute(ui64 tabletId, TActorId keyValueActorId, ui32 e } THelpers::DbEraseCollect(db, ctx); + if (IsEmptyDbStart) { + THelpers::DbUpdateState(StoredState, db, ctx); + } // corner case, if no CollectGarbage events were sent if (InitialCollectsSent == 0) { diff --git a/ydb/core/keyvalue/keyvalue_storage_read_request.cpp b/ydb/core/keyvalue/keyvalue_storage_read_request.cpp index 4f2eff31c654..d93ac00aa091 100644 --- a/ydb/core/keyvalue/keyvalue_storage_read_request.cpp +++ b/ydb/core/keyvalue/keyvalue_storage_read_request.cpp @@ -511,7 +511,7 @@ class TKeyValueStorageReadRequest : public TActorBootstrapped(tabletInfo)) , TabletGeneration(tabletGeneration) - , Span(TWilsonTablet::Tablet, IntermediateResult->Span.GetTraceId(), "KeyValue.StorageReadRequest") + , Span(TWilsonTablet::TabletBasic, IntermediateResult->Span.GetTraceId(), "KeyValue.StorageReadRequest") {} }; diff --git a/ydb/core/keyvalue/keyvalue_storage_request.cpp b/ydb/core/keyvalue/keyvalue_storage_request.cpp index 9aa0a83cdfa1..60e07849c1c9 100644 --- a/ydb/core/keyvalue/keyvalue_storage_request.cpp +++ b/ydb/core/keyvalue/keyvalue_storage_request.cpp @@ -88,7 +88,7 @@ class TKeyValueStorageRequest : public TActorBootstrapped(tabletInfo)) - , Span(TWilsonTablet::Tablet, IntermediateResults->Span.GetTraceId(), "KeyValue.StorageRequest") + , Span(TWilsonTablet::TabletBasic, IntermediateResults->Span.GetTraceId(), "KeyValue.StorageRequest") { IntermediateResults->Stat.KeyvalueStorageRequestSentAt = TAppData::TimeProvider->Now(); } @@ -296,6 +296,11 @@ class TKeyValueStorageRequest : public TActorBootstrappedStat.GroupReadIops[std::make_pair(response.Id.Channel(), groupId)] += 1; // FIXME: count distinct blobs? 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); + TStringStream err; if (read.Message.size()) { err << read.Message << Endl; diff --git a/ydb/core/keyvalue/protos/CMakeLists.darwin-arm64.txt b/ydb/core/keyvalue/protos/CMakeLists.darwin-arm64.txt index e533541cd43a..79a1f1bc5b78 100644 --- a/ydb/core/keyvalue/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/core/keyvalue/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(core-keyvalue-protos PUBLIC target_proto_messages(core-keyvalue-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/protos/events.proto ) +target_sources(core-keyvalue-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/keyvalue/protos/events.pb.h +) target_proto_addincls(core-keyvalue-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/keyvalue/protos/CMakeLists.darwin-x86_64.txt b/ydb/core/keyvalue/protos/CMakeLists.darwin-x86_64.txt index e533541cd43a..79a1f1bc5b78 100644 --- a/ydb/core/keyvalue/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/keyvalue/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(core-keyvalue-protos PUBLIC target_proto_messages(core-keyvalue-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/protos/events.proto ) +target_sources(core-keyvalue-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/keyvalue/protos/events.pb.h +) target_proto_addincls(core-keyvalue-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/keyvalue/protos/CMakeLists.linux-aarch64.txt b/ydb/core/keyvalue/protos/CMakeLists.linux-aarch64.txt index f82d9f019b7c..61d9782d6a05 100644 --- a/ydb/core/keyvalue/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/core/keyvalue/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(core-keyvalue-protos PUBLIC target_proto_messages(core-keyvalue-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/protos/events.proto ) +target_sources(core-keyvalue-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/keyvalue/protos/events.pb.h +) target_proto_addincls(core-keyvalue-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/keyvalue/protos/CMakeLists.linux-x86_64.txt b/ydb/core/keyvalue/protos/CMakeLists.linux-x86_64.txt index f82d9f019b7c..61d9782d6a05 100644 --- a/ydb/core/keyvalue/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/core/keyvalue/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(core-keyvalue-protos PUBLIC target_proto_messages(core-keyvalue-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/protos/events.proto ) +target_sources(core-keyvalue-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/keyvalue/protos/events.pb.h +) target_proto_addincls(core-keyvalue-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/keyvalue/protos/CMakeLists.windows-x86_64.txt b/ydb/core/keyvalue/protos/CMakeLists.windows-x86_64.txt index e533541cd43a..79a1f1bc5b78 100644 --- a/ydb/core/keyvalue/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/core/keyvalue/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(core-keyvalue-protos PUBLIC target_proto_messages(core-keyvalue-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/protos/events.proto ) +target_sources(core-keyvalue-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/keyvalue/protos/events.pb.h +) target_proto_addincls(core-keyvalue-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/keyvalue/ut/CMakeLists.darwin-arm64.txt b/ydb/core/keyvalue/ut/CMakeLists.darwin-arm64.txt index 7b53f811efd5..a99327953ebd 100644 --- a/ydb/core/keyvalue/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/keyvalue/ut/CMakeLists.darwin-arm64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-keyvalue-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-keyvalue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/keyvalue/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/keyvalue/ut/CMakeLists.darwin-x86_64.txt index 3bc04c094bda..90578ab67702 100644 --- a/ydb/core/keyvalue/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/keyvalue/ut/CMakeLists.darwin-x86_64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-core-keyvalue-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-keyvalue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/keyvalue/ut/CMakeLists.linux-aarch64.txt b/ydb/core/keyvalue/ut/CMakeLists.linux-aarch64.txt index 8018b22bdc3c..c190e9f49959 100644 --- a/ydb/core/keyvalue/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/keyvalue/ut/CMakeLists.linux-aarch64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-keyvalue-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-keyvalue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/keyvalue/ut/CMakeLists.linux-x86_64.txt b/ydb/core/keyvalue/ut/CMakeLists.linux-x86_64.txt index 39337c178a5a..cd1b8d6b290a 100644 --- a/ydb/core/keyvalue/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/keyvalue/ut/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-core-keyvalue-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-keyvalue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/keyvalue/ut/CMakeLists.windows-x86_64.txt b/ydb/core/keyvalue/ut/CMakeLists.windows-x86_64.txt index ad492e42c486..ebac92803742 100644 --- a/ydb/core/keyvalue/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/keyvalue/ut/CMakeLists.windows-x86_64.txt @@ -55,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/keyvalue/ut_trace/CMakeLists.darwin-arm64.txt b/ydb/core/keyvalue/ut_trace/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..a4f8dd1f8614 --- /dev/null +++ b/ydb/core/keyvalue/ut_trace/CMakeLists.darwin-arm64.txt @@ -0,0 +1,73 @@ + +# 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-core-keyvalue-ut_trace) +target_include_directories(ydb-core-keyvalue-ut_trace PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue +) +target_link_libraries(ydb-core-keyvalue-ut_trace PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + ydb-core-keyvalue + core-testlib-default +) +target_link_options(ydb-core-keyvalue-ut_trace PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-core-keyvalue-ut_trace PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_ut_trace.cpp +) +set_property( + TARGET + ydb-core-keyvalue-ut_trace + PROPERTY + SPLIT_FACTOR + 5 +) +add_yunittest( + NAME + ydb-core-keyvalue-ut_trace + TEST_TARGET + ydb-core-keyvalue-ut_trace + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-keyvalue-ut_trace + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-keyvalue-ut_trace + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-core-keyvalue-ut_trace + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-core-keyvalue-ut_trace + system_allocator +) +vcs_info(ydb-core-keyvalue-ut_trace) diff --git a/ydb/core/keyvalue/ut_trace/CMakeLists.darwin-x86_64.txt b/ydb/core/keyvalue/ut_trace/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..1b48a4a8aee5 --- /dev/null +++ b/ydb/core/keyvalue/ut_trace/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-core-keyvalue-ut_trace) +target_include_directories(ydb-core-keyvalue-ut_trace PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue +) +target_link_libraries(ydb-core-keyvalue-ut_trace PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + ydb-core-keyvalue + core-testlib-default +) +target_link_options(ydb-core-keyvalue-ut_trace PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-core-keyvalue-ut_trace PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_ut_trace.cpp +) +set_property( + TARGET + ydb-core-keyvalue-ut_trace + PROPERTY + SPLIT_FACTOR + 5 +) +add_yunittest( + NAME + ydb-core-keyvalue-ut_trace + TEST_TARGET + ydb-core-keyvalue-ut_trace + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-keyvalue-ut_trace + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-keyvalue-ut_trace + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-core-keyvalue-ut_trace + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-core-keyvalue-ut_trace + system_allocator +) +vcs_info(ydb-core-keyvalue-ut_trace) diff --git a/ydb/core/keyvalue/ut_trace/CMakeLists.linux-aarch64.txt b/ydb/core/keyvalue/ut_trace/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..44862ade9b8e --- /dev/null +++ b/ydb/core/keyvalue/ut_trace/CMakeLists.linux-aarch64.txt @@ -0,0 +1,76 @@ + +# 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-core-keyvalue-ut_trace) +target_include_directories(ydb-core-keyvalue-ut_trace PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue +) +target_link_libraries(ydb-core-keyvalue-ut_trace PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + ydb-core-keyvalue + core-testlib-default +) +target_link_options(ydb-core-keyvalue-ut_trace PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-core-keyvalue-ut_trace PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_ut_trace.cpp +) +set_property( + TARGET + ydb-core-keyvalue-ut_trace + PROPERTY + SPLIT_FACTOR + 5 +) +add_yunittest( + NAME + ydb-core-keyvalue-ut_trace + TEST_TARGET + ydb-core-keyvalue-ut_trace + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-keyvalue-ut_trace + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-keyvalue-ut_trace + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-core-keyvalue-ut_trace + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-core-keyvalue-ut_trace + cpp-malloc-jemalloc +) +vcs_info(ydb-core-keyvalue-ut_trace) diff --git a/ydb/core/keyvalue/ut_trace/CMakeLists.linux-x86_64.txt b/ydb/core/keyvalue/ut_trace/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..3fa7f8da969c --- /dev/null +++ b/ydb/core/keyvalue/ut_trace/CMakeLists.linux-x86_64.txt @@ -0,0 +1,78 @@ + +# 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-core-keyvalue-ut_trace) +target_include_directories(ydb-core-keyvalue-ut_trace PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue +) +target_link_libraries(ydb-core-keyvalue-ut_trace PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + ydb-core-keyvalue + core-testlib-default +) +target_link_options(ydb-core-keyvalue-ut_trace PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-core-keyvalue-ut_trace PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_ut_trace.cpp +) +set_property( + TARGET + ydb-core-keyvalue-ut_trace + PROPERTY + SPLIT_FACTOR + 5 +) +add_yunittest( + NAME + ydb-core-keyvalue-ut_trace + TEST_TARGET + ydb-core-keyvalue-ut_trace + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-keyvalue-ut_trace + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-keyvalue-ut_trace + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-core-keyvalue-ut_trace + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-core-keyvalue-ut_trace + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-core-keyvalue-ut_trace) diff --git a/ydb/core/keyvalue/ut_trace/CMakeLists.txt b/ydb/core/keyvalue/ut_trace/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/keyvalue/ut_trace/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/keyvalue/ut_trace/CMakeLists.windows-x86_64.txt b/ydb/core/keyvalue/ut_trace/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..232c30f9b842 --- /dev/null +++ b/ydb/core/keyvalue/ut_trace/CMakeLists.windows-x86_64.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-core-keyvalue-ut_trace) +target_include_directories(ydb-core-keyvalue-ut_trace PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue +) +target_link_libraries(ydb-core-keyvalue-ut_trace PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + ydb-core-keyvalue + core-testlib-default +) +target_sources(ydb-core-keyvalue-ut_trace PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/keyvalue/keyvalue_ut_trace.cpp +) +set_property( + TARGET + ydb-core-keyvalue-ut_trace + PROPERTY + SPLIT_FACTOR + 5 +) +add_yunittest( + NAME + ydb-core-keyvalue-ut_trace + TEST_TARGET + ydb-core-keyvalue-ut_trace + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-keyvalue-ut_trace + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-keyvalue-ut_trace + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-core-keyvalue-ut_trace + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-core-keyvalue-ut_trace + system_allocator +) +vcs_info(ydb-core-keyvalue-ut_trace) diff --git a/ydb/core/keyvalue/ya.make b/ydb/core/keyvalue/ya.make index 740eae043d01..3a014e31316d 100644 --- a/ydb/core/keyvalue/ya.make +++ b/ydb/core/keyvalue/ya.make @@ -45,7 +45,6 @@ PEERDIR( ydb/library/actors/protos ydb/core/base ydb/core/blobstorage/base - ydb/core/control/common_controls ydb/core/engine/minikql ydb/core/keyvalue/protos ydb/core/protos diff --git a/ydb/core/kqp/common/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/common/CMakeLists.darwin-arm64.txt index 5a5b9167f107..10326d230260 100644 --- a/ydb/core/kqp/common/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/common/CMakeLists.darwin-arm64.txt @@ -53,6 +53,14 @@ target_link_libraries(core-kqp-common PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(core-kqp-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_event_ids.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_resolve.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_yql.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_timeouts.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_lwtrace_probes.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_types.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_user_request_context.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_event_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_resolve.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_ru_calc.cpp diff --git a/ydb/core/kqp/common/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/common/CMakeLists.darwin-x86_64.txt index 5a5b9167f107..10326d230260 100644 --- a/ydb/core/kqp/common/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/common/CMakeLists.darwin-x86_64.txt @@ -53,6 +53,14 @@ target_link_libraries(core-kqp-common PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(core-kqp-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_event_ids.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_resolve.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_yql.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_timeouts.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_lwtrace_probes.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_types.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_user_request_context.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_event_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_resolve.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_ru_calc.cpp diff --git a/ydb/core/kqp/common/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/common/CMakeLists.linux-aarch64.txt index 11c2296e52f1..89a15ab7e5bd 100644 --- a/ydb/core/kqp/common/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/common/CMakeLists.linux-aarch64.txt @@ -54,6 +54,14 @@ target_link_libraries(core-kqp-common PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(core-kqp-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_event_ids.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_resolve.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_yql.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_timeouts.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_lwtrace_probes.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_types.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_user_request_context.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_event_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_resolve.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_ru_calc.cpp diff --git a/ydb/core/kqp/common/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/common/CMakeLists.linux-x86_64.txt index 11c2296e52f1..89a15ab7e5bd 100644 --- a/ydb/core/kqp/common/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/common/CMakeLists.linux-x86_64.txt @@ -54,6 +54,14 @@ target_link_libraries(core-kqp-common PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(core-kqp-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_event_ids.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_resolve.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_yql.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_timeouts.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_lwtrace_probes.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_types.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_user_request_context.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_event_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_resolve.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_ru_calc.cpp diff --git a/ydb/core/kqp/common/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/common/CMakeLists.windows-x86_64.txt index 5a5b9167f107..10326d230260 100644 --- a/ydb/core/kqp/common/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/common/CMakeLists.windows-x86_64.txt @@ -53,6 +53,14 @@ target_link_libraries(core-kqp-common PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(core-kqp-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_event_ids.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_resolve.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_yql.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_timeouts.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_lwtrace_probes.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_types.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_user_request_context.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_event_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_resolve.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/common/kqp_ru_calc.cpp diff --git a/ydb/core/kqp/common/events/query.h b/ydb/core/kqp/common/events/query.h index 38fa0f63d934..dac9241e55e7 100644 --- a/ydb/core/kqp/common/events/query.h +++ b/ydb/core/kqp/common/events/query.h @@ -34,7 +34,8 @@ struct TEvQueryRequest: public NActors::TEventLocal UserRequestContext; TDuration ProgressStatsPeriod; + bool SupportsStreamTrailingResult = false; }; struct TEvDataQueryStreamPart: public TEventPBGetDatabaseName().GetOrElse(""))) @@ -36,6 +37,7 @@ TEvKqp::TEvQueryRequest::TEvQueryRequest( , HasOperationParams(operationParams) , KeepSession(keepSession) , Syntax(syntax) + , SupportsStreamTrailingResult(supportsStreamTrailingResult) { if (HasOperationParams) { OperationTimeout = GetDuration(operationParams->operation_timeout()); diff --git a/ydb/core/kqp/common/kqp_resolve.h b/ydb/core/kqp/common/kqp_resolve.h index 701e7d0dd95c..b8a36a6aa885 100644 --- a/ydb/core/kqp/common/kqp_resolve.h +++ b/ydb/core/kqp/common/kqp_resolve.h @@ -33,6 +33,7 @@ struct TTableConstInfo : public TAtomicRefCount { ETableKind TableKind = ETableKind::Unknown; THashMap Sequences; THashMap DefaultFromLiteral; + bool IsBuildInProgress = false; TTableConstInfo() {} TTableConstInfo(const TString& path) : Path(path) {} @@ -52,6 +53,7 @@ struct TTableConstInfo : public TAtomicRefCount { NPg::TypeDescFromPgTypeName(phyColumn.GetPgTypeName())); } column.NotNull = phyColumn.GetNotNull(); + column.IsBuildInProgress = phyColumn.GetIsBuildInProgress(); Columns.emplace(phyColumn.GetId().GetName(), std::move(column)); if (!phyColumn.GetDefaultFromSequence().empty()) { @@ -144,19 +146,19 @@ class TKqpTableKeys { const TMap& GetColumns() const { return TableConstInfo->Columns; } - + const TVector& GetKeyColumns() const { return TableConstInfo->KeyColumns; } - + const TVector& GetKeyColumnTypes() const { return TableConstInfo->KeyColumnTypes; } - + const ETableKind& GetTableKind() const { return TableConstInfo->TableKind; } - + const THashMap& GetSequences() const { return TableConstInfo->Sequences; } diff --git a/ydb/core/kqp/common/shutdown/controller.cpp b/ydb/core/kqp/common/shutdown/controller.cpp index a6c1bd609e20..6113308df884 100644 --- a/ydb/core/kqp/common/shutdown/controller.cpp +++ b/ydb/core/kqp/common/shutdown/controller.cpp @@ -40,6 +40,10 @@ void TKqpShutdownController::Stop() { ++iteration; spent = (TInstant::Now() - startedAt).SecondsFloat(); } + if (!ShutdownState_->ShutdownComplete()) { + Cerr << "Failed to gracefully shutdown KQP after " << timeout.Seconds() << " seconds: spent " << spent << " seconds, "; + Cerr << ShutdownState_->GetPendingSessions() << " sessions to shutdown left" << Endl; + } } } // namespace NKikimr::NKqp diff --git a/ydb/core/kqp/compile_service/kqp_compile_actor.cpp b/ydb/core/kqp/compile_service/kqp_compile_actor.cpp index 283c6a2cde88..2d1daba6b006 100644 --- a/ydb/core/kqp/compile_service/kqp_compile_actor.cpp +++ b/ydb/core/kqp/compile_service/kqp_compile_actor.cpp @@ -506,6 +506,8 @@ void ApplyServiceConfig(TKikimrConfiguration& kqpConfig, const TTableServiceConf kqpConfig.IndexAutoChooserMode = serviceConfig.GetIndexAutoChooseMode(); kqpConfig.EnablePgConstsToParams = serviceConfig.GetEnablePgConstsToParams(); kqpConfig.ExtractPredicateRangesLimit = serviceConfig.GetExtractPredicateRangesLimit(); + kqpConfig.IdxLookupJoinsPrefixPointLimit = serviceConfig.GetIdxLookupJoinPointsLimit(); + kqpConfig.OldLookupJoinBehaviour = serviceConfig.GetOldLookupJoinBehaviour(); if (const auto limit = serviceConfig.GetResourceManager().GetMkqlHeavyProgramMemoryLimit()) { kqpConfig._KqpYqlCombinerMemoryLimit = std::max(1_GB, limit - (limit >> 2U)); diff --git a/ydb/core/kqp/compile_service/kqp_compile_service.cpp b/ydb/core/kqp/compile_service/kqp_compile_service.cpp index b0da00f2e888..2b228f338074 100644 --- a/ydb/core/kqp/compile_service/kqp_compile_service.cpp +++ b/ydb/core/kqp/compile_service/kqp_compile_service.cpp @@ -474,6 +474,8 @@ class TKqpCompileService : public TActorBootstrapped { auto indexAutoChooser = TableServiceConfig.GetIndexAutoChooseMode(); ui64 rangesLimit = TableServiceConfig.GetExtractPredicateRangesLimit(); + ui64 idxLookupPointsLimit = TableServiceConfig.GetIdxLookupJoinPointsLimit(); + bool oldLookupJoinBehaviour = TableServiceConfig.GetOldLookupJoinBehaviour(); bool enableSequences = TableServiceConfig.GetEnableSequences(); bool enableColumnsWithDefault = TableServiceConfig.GetEnableColumnsWithDefault(); @@ -503,8 +505,10 @@ class TKqpCompileService : public TActorBootstrapped { TableServiceConfig.GetEnableSequences() != enableSequences || TableServiceConfig.GetEnableColumnsWithDefault() != enableColumnsWithDefault || TableServiceConfig.GetEnableOlapSink() != enableOlapSink || + TableServiceConfig.GetOldLookupJoinBehaviour() != oldLookupJoinBehaviour || TableServiceConfig.GetExtractPredicateRangesLimit() != rangesLimit || - TableServiceConfig.GetResourceManager().GetMkqlHeavyProgramMemoryLimit() != mkqlHeavyLimit) { + TableServiceConfig.GetResourceManager().GetMkqlHeavyProgramMemoryLimit() != mkqlHeavyLimit || + TableServiceConfig.GetIdxLookupJoinPointsLimit() != idxLookupPointsLimit) { QueryCache.Clear(); diff --git a/ydb/core/kqp/compute_actor/kqp_compute_events.h b/ydb/core/kqp/compute_actor/kqp_compute_events.h index 5d57f94fa409..7516952c9437 100644 --- a/ydb/core/kqp/compute_actor/kqp_compute_events.h +++ b/ydb/core/kqp/compute_actor/kqp_compute_events.h @@ -1,12 +1,12 @@ #pragma once #include +#include #include #include #include #include -#include namespace NKikimr::NKqp { @@ -41,7 +41,7 @@ struct TEvKqpCompute { ui32 ScanId; ui32 Generation; TVector Rows; - std::shared_ptr ArrowBatch; + std::shared_ptr ArrowBatch; std::vector> SplittedBatches; TOwnedCellVec LastKey; @@ -124,7 +124,7 @@ struct TEvKqpCompute { if (pbEv->Record.HasArrowBatch()) { auto batch = pbEv->Record.GetArrowBatch(); auto schema = NArrow::DeserializeSchema(batch.GetSchema()); - ev->ArrowBatch = NArrow::DeserializeBatch(batch.GetBatch(), schema); + ev->ArrowBatch = NArrow::TStatusValidator::GetValid(arrow::Table::FromRecordBatches({NArrow::DeserializeBatch(batch.GetBatch(), schema)})); } return ev.Release(); } @@ -161,7 +161,7 @@ struct TEvKqpCompute { Y_DEBUG_ABORT_UNLESS(ArrowBatch != nullptr); auto* protoArrowBatch = Remote->Record.MutableArrowBatch(); protoArrowBatch->SetSchema(NArrow::SerializeSchema(*ArrowBatch->schema())); - protoArrowBatch->SetBatch(NArrow::SerializeBatchNoCompression(ArrowBatch)); + protoArrowBatch->SetBatch(NArrow::SerializeBatchNoCompression(NArrow::ToBatch(ArrowBatch, true))); break; } } diff --git a/ydb/core/kqp/compute_actor/kqp_scan_compute_actor.cpp b/ydb/core/kqp/compute_actor/kqp_scan_compute_actor.cpp index f6a48b208c7b..d4cd835e37fe 100644 --- a/ydb/core/kqp/compute_actor/kqp_scan_compute_actor.cpp +++ b/ydb/core/kqp/compute_actor/kqp_scan_compute_actor.cpp @@ -156,22 +156,18 @@ void TKqpScanComputeActor::Handle(TEvScanExchange::TEvFetcherFinished::TPtr& ev) } } -void TKqpScanComputeActor::PollSources(std::any prev) { +void TKqpScanComputeActor::PollSources(ui64 prevFreeSpace) { if (!ScanData || ScanData->IsFinished()) { return; } const auto hasNewMemoryPred = [&]() { - if (!prev.has_value()) { - return false; - } const ui64 freeSpace = CalculateFreeSpace(); - const ui64 prevFreeSpace = std::any_cast(prev); return freeSpace > prevFreeSpace; }; if (!hasNewMemoryPred() && ScanData->GetStoredBytes()) { return; } - const ui32 freeSpace = CalculateFreeSpace(); + const ui64 freeSpace = CalculateFreeSpace(); CA_LOG_D("POLL_SOURCES:START:" << Fetchers.size() << ";fs=" << freeSpace); for (auto&& i : Fetchers) { Send(i, new TEvScanExchange::TEvAckData(freeSpace)); diff --git a/ydb/core/kqp/compute_actor/kqp_scan_compute_actor.h b/ydb/core/kqp/compute_actor/kqp_scan_compute_actor.h index ccf548819a8c..dd9d78091ec6 100644 --- a/ydb/core/kqp/compute_actor/kqp_scan_compute_actor.h +++ b/ydb/core/kqp/compute_actor/kqp_scan_compute_actor.h @@ -82,14 +82,14 @@ class TKqpScanComputeActor: public NYql::NDq::TDqSyncComputeActorBase= MAX_SHARD_RETRIES) { - return false; - } - StartScanner(state); - return true; - } - void AbortAllScanners(const TString& errorMessage) { for (auto&& itTablet : ShardScanners) { itTablet.second->Stop(true, errorMessage); diff --git a/ydb/core/kqp/compute_actor/kqp_scan_events.h b/ydb/core/kqp/compute_actor/kqp_scan_events.h index cfff8c3ad4dc..af455be7b7e7 100644 --- a/ydb/core/kqp/compute_actor/kqp_scan_events.h +++ b/ydb/core/kqp/compute_actor/kqp_scan_events.h @@ -39,7 +39,7 @@ struct TEvScanExchange { class TEvSendData: public NActors::TEventLocal { private: - YDB_READONLY_DEF(std::shared_ptr, ArrowBatch); + YDB_READONLY_DEF(std::shared_ptr, ArrowBatch); YDB_ACCESSOR_DEF(TVector, Rows); YDB_READONLY(ui64, TabletId, 0); YDB_ACCESSOR_DEF(std::vector, DataIndexes); @@ -48,7 +48,7 @@ struct TEvScanExchange { return ArrowBatch ? ArrowBatch->num_rows() : Rows.size(); } - TEvSendData(const std::shared_ptr& arrowBatch, const ui64 tabletId) + TEvSendData(const std::shared_ptr& arrowBatch, const ui64 tabletId) : ArrowBatch(arrowBatch) , TabletId(tabletId) { @@ -56,7 +56,7 @@ struct TEvScanExchange { Y_ABORT_UNLESS(ArrowBatch->num_rows()); } - TEvSendData(const std::shared_ptr& arrowBatch, const ui64 tabletId, std::vector&& dataIndexes) + TEvSendData(const std::shared_ptr& arrowBatch, const ui64 tabletId, std::vector&& dataIndexes) : ArrowBatch(arrowBatch) , TabletId(tabletId) , DataIndexes(std::move(dataIndexes)) 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 da29486bd7d5..b4d23bbfb930 100644 --- a/ydb/core/kqp/compute_actor/kqp_scan_fetcher_actor.cpp +++ b/ydb/core/kqp/compute_actor/kqp_scan_fetcher_actor.cpp @@ -154,6 +154,14 @@ void TKqpScanFetcherActor::HandleExecute(TEvKqpCompute::TEvScanError::TPtr& ev) } if (state->State == EShardState::Starting) { + ++TotalRetries; + if (TotalRetries >= MAX_TOTAL_SHARD_RETRIES) { + CA_LOG_E("TKqpScanFetcherActor: broken tablet for this request " << state->TabletId + << ", retries limit exceeded (" << state->TotalRetries << "/" << TotalRetries << ")"); + SendGlobalFail(NDqProto::COMPUTE_STATE_FAILURE, YdbStatusToDqStatus(status), issues); + return PassAway(); + } + if (FindSchemeErrorInIssues(status, issues)) { return EnqueueResolveShard(state); } @@ -162,13 +170,10 @@ void TKqpScanFetcherActor::HandleExecute(TEvKqpCompute::TEvScanError::TPtr& ev) } if (state->State == EShardState::PostRunning || state->State == EShardState::Running) { - ++TotalRetries; - if (!InFlightShards.RestartScanner(*state) || TotalRetries >= MAX_TOTAL_SHARD_RETRIES) { - CA_LOG_E("TKqpScanFetcherActor: broken tablet for this request " << state->TabletId - << ", retries limit exceeded (" << state->TotalRetries << "/" << TotalRetries << ")"); - SendGlobalFail(NDqProto::COMPUTE_STATE_FAILURE, YdbStatusToDqStatus(status), issues); - return PassAway(); - } + CA_LOG_E("TKqpScanFetcherActor: broken tablet for this request " << state->TabletId + << ", retries limit exceeded (" << state->TotalRetries << "/" << TotalRetries << ")"); + SendGlobalFail(NDqProto::COMPUTE_STATE_FAILURE, YdbStatusToDqStatus(status), issues); + return PassAway(); } } diff --git a/ydb/core/kqp/counters/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/counters/CMakeLists.darwin-arm64.txt index b5a08b2bb1bd..2ff4afa4475d 100644 --- a/ydb/core/kqp/counters/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/counters/CMakeLists.darwin-arm64.txt @@ -18,5 +18,7 @@ target_link_libraries(core-kqp-counters PUBLIC library-yql-minikql ) target_sources(core-kqp-counters PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_counters.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_db_counters.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_counters.cpp ) diff --git a/ydb/core/kqp/counters/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/counters/CMakeLists.darwin-x86_64.txt index b5a08b2bb1bd..2ff4afa4475d 100644 --- a/ydb/core/kqp/counters/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/counters/CMakeLists.darwin-x86_64.txt @@ -18,5 +18,7 @@ target_link_libraries(core-kqp-counters PUBLIC library-yql-minikql ) target_sources(core-kqp-counters PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_counters.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_db_counters.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_counters.cpp ) diff --git a/ydb/core/kqp/counters/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/counters/CMakeLists.linux-aarch64.txt index 3a231a526138..69f04990e42c 100644 --- a/ydb/core/kqp/counters/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/counters/CMakeLists.linux-aarch64.txt @@ -19,5 +19,7 @@ target_link_libraries(core-kqp-counters PUBLIC library-yql-minikql ) target_sources(core-kqp-counters PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_counters.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_db_counters.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_counters.cpp ) diff --git a/ydb/core/kqp/counters/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/counters/CMakeLists.linux-x86_64.txt index 3a231a526138..69f04990e42c 100644 --- a/ydb/core/kqp/counters/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/counters/CMakeLists.linux-x86_64.txt @@ -19,5 +19,7 @@ target_link_libraries(core-kqp-counters PUBLIC library-yql-minikql ) target_sources(core-kqp-counters PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_counters.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_db_counters.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_counters.cpp ) diff --git a/ydb/core/kqp/counters/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/counters/CMakeLists.windows-x86_64.txt index b5a08b2bb1bd..2ff4afa4475d 100644 --- a/ydb/core/kqp/counters/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/counters/CMakeLists.windows-x86_64.txt @@ -18,5 +18,7 @@ target_link_libraries(core-kqp-counters PUBLIC library-yql-minikql ) target_sources(core-kqp-counters PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_counters.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_db_counters.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/counters/kqp_counters.cpp ) diff --git a/ydb/core/kqp/executer_actor/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/executer_actor/CMakeLists.darwin-arm64.txt index b4e24b394f33..da6983426576 100644 --- a/ydb/core/kqp/executer_actor/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/executer_actor/CMakeLists.darwin-arm64.txt @@ -7,6 +7,12 @@ add_subdirectory(ut) +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) add_library(core-kqp-executer_actor) target_compile_options(core-kqp-executer_actor PRIVATE @@ -29,12 +35,14 @@ target_link_libraries(core-kqp-executer_actor PUBLIC ydb-core-protos tx-long_tx_service-public ydb-core-ydb_convert + services-metadata-abstract ydb-library-mkql_proto library-mkql_proto-protos dq-actors-compute yql-dq-runtime yql-dq-tasks providers-common-http_gateway + tools-enum_parser-enum_serialization_runtime ) target_sources(core-kqp-executer_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_data_executer.cpp @@ -53,3 +61,8 @@ target_sources(core-kqp-executer_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_tasks_graph.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_tasks_validate.cpp ) +generate_enum_serilization(core-kqp-executer_actor + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_executer.h + INCLUDE_HEADERS + ydb/core/kqp/executer_actor/kqp_executer.h +) diff --git a/ydb/core/kqp/executer_actor/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/executer_actor/CMakeLists.darwin-x86_64.txt index b4e24b394f33..da6983426576 100644 --- a/ydb/core/kqp/executer_actor/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/executer_actor/CMakeLists.darwin-x86_64.txt @@ -7,6 +7,12 @@ add_subdirectory(ut) +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) add_library(core-kqp-executer_actor) target_compile_options(core-kqp-executer_actor PRIVATE @@ -29,12 +35,14 @@ target_link_libraries(core-kqp-executer_actor PUBLIC ydb-core-protos tx-long_tx_service-public ydb-core-ydb_convert + services-metadata-abstract ydb-library-mkql_proto library-mkql_proto-protos dq-actors-compute yql-dq-runtime yql-dq-tasks providers-common-http_gateway + tools-enum_parser-enum_serialization_runtime ) target_sources(core-kqp-executer_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_data_executer.cpp @@ -53,3 +61,8 @@ target_sources(core-kqp-executer_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_tasks_graph.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_tasks_validate.cpp ) +generate_enum_serilization(core-kqp-executer_actor + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_executer.h + INCLUDE_HEADERS + ydb/core/kqp/executer_actor/kqp_executer.h +) diff --git a/ydb/core/kqp/executer_actor/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/executer_actor/CMakeLists.linux-aarch64.txt index d56770d3864f..4ec8af24234b 100644 --- a/ydb/core/kqp/executer_actor/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/executer_actor/CMakeLists.linux-aarch64.txt @@ -7,6 +7,12 @@ add_subdirectory(ut) +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) add_library(core-kqp-executer_actor) target_compile_options(core-kqp-executer_actor PRIVATE @@ -30,12 +36,14 @@ target_link_libraries(core-kqp-executer_actor PUBLIC ydb-core-protos tx-long_tx_service-public ydb-core-ydb_convert + services-metadata-abstract ydb-library-mkql_proto library-mkql_proto-protos dq-actors-compute yql-dq-runtime yql-dq-tasks providers-common-http_gateway + tools-enum_parser-enum_serialization_runtime ) target_sources(core-kqp-executer_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_data_executer.cpp @@ -54,3 +62,8 @@ target_sources(core-kqp-executer_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_tasks_graph.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_tasks_validate.cpp ) +generate_enum_serilization(core-kqp-executer_actor + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_executer.h + INCLUDE_HEADERS + ydb/core/kqp/executer_actor/kqp_executer.h +) diff --git a/ydb/core/kqp/executer_actor/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/executer_actor/CMakeLists.linux-x86_64.txt index d56770d3864f..4ec8af24234b 100644 --- a/ydb/core/kqp/executer_actor/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/executer_actor/CMakeLists.linux-x86_64.txt @@ -7,6 +7,12 @@ add_subdirectory(ut) +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) add_library(core-kqp-executer_actor) target_compile_options(core-kqp-executer_actor PRIVATE @@ -30,12 +36,14 @@ target_link_libraries(core-kqp-executer_actor PUBLIC ydb-core-protos tx-long_tx_service-public ydb-core-ydb_convert + services-metadata-abstract ydb-library-mkql_proto library-mkql_proto-protos dq-actors-compute yql-dq-runtime yql-dq-tasks providers-common-http_gateway + tools-enum_parser-enum_serialization_runtime ) target_sources(core-kqp-executer_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_data_executer.cpp @@ -54,3 +62,8 @@ target_sources(core-kqp-executer_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_tasks_graph.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_tasks_validate.cpp ) +generate_enum_serilization(core-kqp-executer_actor + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_executer.h + INCLUDE_HEADERS + ydb/core/kqp/executer_actor/kqp_executer.h +) diff --git a/ydb/core/kqp/executer_actor/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/executer_actor/CMakeLists.windows-x86_64.txt index b4e24b394f33..da6983426576 100644 --- a/ydb/core/kqp/executer_actor/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/executer_actor/CMakeLists.windows-x86_64.txt @@ -7,6 +7,12 @@ add_subdirectory(ut) +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) add_library(core-kqp-executer_actor) target_compile_options(core-kqp-executer_actor PRIVATE @@ -29,12 +35,14 @@ target_link_libraries(core-kqp-executer_actor PUBLIC ydb-core-protos tx-long_tx_service-public ydb-core-ydb_convert + services-metadata-abstract ydb-library-mkql_proto library-mkql_proto-protos dq-actors-compute yql-dq-runtime yql-dq-tasks providers-common-http_gateway + tools-enum_parser-enum_serialization_runtime ) target_sources(core-kqp-executer_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_data_executer.cpp @@ -53,3 +61,8 @@ target_sources(core-kqp-executer_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_tasks_graph.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_tasks_validate.cpp ) +generate_enum_serilization(core-kqp-executer_actor + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/executer_actor/kqp_executer.h + INCLUDE_HEADERS + ydb/core/kqp/executer_actor/kqp_executer.h +) diff --git a/ydb/core/kqp/executer_actor/kqp_data_executer.cpp b/ydb/core/kqp/executer_actor/kqp_data_executer.cpp index 219396b5cdcc..08998c3c9bb7 100644 --- a/ydb/core/kqp/executer_actor/kqp_data_executer.cpp +++ b/ydb/core/kqp/executer_actor/kqp_data_executer.cpp @@ -130,10 +130,9 @@ class TKqpDataExecuter : public TKqpExecuterBase& userRequestContext, const bool enableOlapSink) : TBase(std::move(request), database, userToken, counters, executerRetriesConfig, chanTransportVersion, aggregation, - maximalSecretsSnapshotWaitTime, userRequestContext, TWilsonKqp::DataExecuter, "DataExecuter" + maximalSecretsSnapshotWaitTime, userRequestContext, TWilsonKqp::DataExecuter, "DataExecuter", streamResult ) , AsyncIoFactory(std::move(asyncIoFactory)) - , StreamResult(streamResult) , EnableOlapSink(enableOlapSink) { Target = creator; @@ -279,8 +278,16 @@ class TKqpDataExecuter : public TKqpExecuterBaseGetByteSize(); if (resultSize > (int)ReplySizeLimit) { - TString message = TStringBuilder() << "Query result size limit exceeded. (" - << resultSize << " > " << ReplySizeLimit << ")"; + TString message; + if (ResponseEv->TxResults.size() == 1 && !ResponseEv->TxResults[0].QueryResultIndex.Defined()) { + message = TStringBuilder() << "Intermediate data materialization exceeded size limit" + << " (" << resultSize << " > " << ReplySizeLimit << ")." + << " This usually happens when trying to write large amounts of data or to perform lookup" + << " by big collection of keys in single query. Consider using smaller batches of data."; + } else { + message = TStringBuilder() << "Query result size limit exceeded. (" + << resultSize << " > " << ReplySizeLimit << ")"; + } auto issue = YqlIssue({}, TIssuesIds::KIKIMR_RESULT_UNAVAILABLE, message); ReplyErrorAndDie(Ydb::StatusIds::PRECONDITION_FAILED, issue); @@ -313,6 +320,8 @@ class TKqpDataExecuter : public TKqpExecuterBaseGet()->Record; - auto& channelData = record.GetChannelData(); - - TDqSerializedBatch batch; - batch.Proto = std::move(*record.MutableChannelData()->MutableData()); - if (batch.Proto.HasPayloadId()) { - batch.Payload = ev->Get()->GetPayload(batch.Proto.GetPayloadId()); - } - - auto& channel = TasksGraph.GetChannel(channelData.GetChannelId()); - YQL_ENSURE(channel.DstTask == 0); - auto shardId = TasksGraph.GetTask(channel.SrcTask).Meta.ShardId; - - if (Stats) { - Stats->ResultBytes += batch.Size(); - Stats->ResultRows += batch.RowCount(); - } - - LOG_T("Got result, channelId: " << channel.Id << ", shardId: " << shardId - << ", inputIndex: " << channel.DstInputIndex << ", from: " << ev->Sender - << ", finished: " << channelData.GetFinished()); - - ResponseEv->TakeResult(channel.DstInputIndex, std::move(batch)); - { - LOG_T("Send ack to channelId: " << channel.Id << ", seqNo: " << record.GetSeqNo() << ", to: " << ev->Sender); - - auto ackEv = MakeHolder(); - ackEv->Record.SetSeqNo(record.GetSeqNo()); - ackEv->Record.SetChannelId(channel.Id); - ackEv->Record.SetFreeSpace(50_MB); - Send(ev->Sender, ackEv.Release(), /* TODO: undelivery */ 0, /* cookie */ channel.Id); - } - } - private: bool IsReadOnlyTx() const { if (Request.TopicOperations.HasOperations()) { @@ -2028,16 +2014,12 @@ class TKqpDataExecuter : public TKqpExecuterBase affectedShardsSet; - affectedShardsSet.reserve(datashardTasks.size()); - for (auto& [shardId, tasks]: datashardTasks) { auto [it, success] = datashardTxs.emplace( shardId, TasksGraph.GetMeta().Allocate()); YQL_ENSURE(success, "unexpected duplicates in datashard transactions"); - affectedShardsSet.emplace_back(shardId); NKikimrTxDataShard::TKqpTransaction* dsTxs = it->second; dsTxs->MutableTasks()->Reserve(tasks.size()); for (auto& task: tasks) { @@ -2045,6 +2027,55 @@ class TKqpDataExecuter : public TKqpExecuterBase()); + + YQL_ENSURE(success, "unexpected failure to emplace a datashard transaction"); + it = emplaced; + } + + NKikimrTxDataShard::TKqpTransaction* tx = it->second; + switch (Request.LocksOp) { + case ELocksOp::Commit: + tx->MutableLocks()->SetOp(NKikimrDataEvents::TKqpLocks::Commit); + break; + case ELocksOp::Rollback: + tx->MutableLocks()->SetOp(NKikimrDataEvents::TKqpLocks::Rollback); + break; + case ELocksOp::Unspecified: + break; + } + + // Move lock descriptions to the datashard tx + auto* protoLocks = tx->MutableLocks()->MutableLocks(); + protoLocks->Reserve(locksList.size()); + bool hasWrites = false; + for (auto& lock : locksList) { + hasWrites = hasWrites || lock.GetHasWrites(); + protoLocks->Add(std::move(lock)); + } + locksList.clear(); + + // When locks with writes are committed this commits accumulated effects + if (Request.LocksOp == ELocksOp::Commit && hasWrites) { + ShardsWithEffects.insert(shardId); + YQL_ENSURE(!ReadOnlyTx); + } + } + Request.TopicOperations.BuildTopicTxs(topicTxs); const bool needRollback = Request.LocksOp == ELocksOp::Rollback; @@ -2064,7 +2095,7 @@ class TKqpDataExecuter : public TKqpExecuterBase 1 && + (datashardTxs.size() + topicTxs.size()) > 1 && // We cannot use volatile transactions with persistent channels // Note: currently persistent channels are never used !HasPersistentChannels); @@ -2077,30 +2108,30 @@ class TKqpDataExecuter : public TKqpExecuterBase sendingShardsSet; absl::flat_hash_set receivingShardsSet; + ui64 arbiter = 0; // Gather shards that need to send/receive readsets (shards with effects) if (needCommit) { - for (auto& shardId: affectedShardsSet) { + for (auto& [shardId, tx] : datashardTxs) { + if (tx->HasLocks()) { + // Locks may be broken so shards with locks need to send readsets + sendingShardsSet.insert(shardId); + } if (ShardsWithEffects.contains(shardId)) { // Volatile transactions may abort effects, so they send readsets if (VolatileTx) { sendingShardsSet.insert(shardId); } + // Effects are only applied when all locks are valid receivingShardsSet.insert(shardId); } } @@ -2113,46 +2144,51 @@ class TKqpDataExecuter : public TKqpExecuterBasesecond; - } else { - auto [eIt, success] = datashardTxs.emplace( - shardId, - TasksGraph.GetMeta().Allocate()); - tx = eIt->second; - } - - tx->MutableLocks()->SetOp(locksOp); - - if (!locksList.empty()) { - auto* protoLocks = tx->MutableLocks()->MutableLocks(); - protoLocks->Reserve(locksList.size()); - bool hasWrites = false; - for (auto& lock : locksList) { - hasWrites = hasWrites || lock.GetHasWrites(); - protoLocks->Add()->Swap(&lock); - } - - if (needCommit) { - // We also send the result on commit - sendingShardsSet.insert(shardId); - - if (hasWrites) { - // Tx with uncommitted changes can be aborted due to conflicts, - // so shards with write locks should receive readsets - receivingShardsSet.insert(shardId); - YQL_ENSURE(!ReadOnlyTx); + // The current value of 5 is arbitrary. Writing to 5 shards in + // a single transaction is unusual enough, and having latency + // regressions is unlikely. Full mesh readset count grows like + // 2n(n-1), and arbiter reduces it to 4(n-1). Here's a readset + // count table for various small `n`: + // + // n = 2: 4 -> 4 + // n = 3: 12 -> 8 + // n = 4: 24 -> 12 + // n = 5: 40 -> 16 + // n = 6: 60 -> 20 + // n = 7: 84 -> 24 + // + // The ideal crossover is at n = 4, since the readset count + // doesn't change when going from 3 to 4 shards, but the + // increase in latency may not really be worth it. With n = 5 + // the readset count lowers from 24 to 16 readsets when going + // from 4 to 5 shards. This makes 5 shards potentially cheaper + // than 4 shards when readsets dominate the workload, but at + // the price of possible increase in latency. Too many readsets + // cause interconnect overload and reduce throughput however, + // so we don't want to use a crossover value that is too high. + const size_t minArbiterMeshSize = 5; // TODO: make configurable? + if (VolatileTx && + receivingShardsSet.size() >= minArbiterMeshSize && + AppData()->FeatureFlags.GetEnableVolatileTransactionArbiters()) + { + std::vector candidates; + candidates.reserve(receivingShardsSet.size()); + for (ui64 candidate : receivingShardsSet) { + // Note: all receivers are also senders in volatile transactions + if (Y_LIKELY(sendingShardsSet.contains(candidate))) { + candidates.push_back(candidate); } } + if (candidates.size() >= minArbiterMeshSize) { + // Select a random arbiter + ui32 index = RandomNumber(candidates.size()); + arbiter = candidates.at(index); + } } } + // Encode sending/receiving shards in tx bodies if (needCommit) { NProtoBuf::RepeatedField sendingShards(sendingShardsSet.begin(), sendingShardsSet.end()); NProtoBuf::RepeatedField receivingShards(receivingShardsSet.begin(), receivingShardsSet.end()); @@ -2161,25 +2197,19 @@ class TKqpDataExecuter : public TKqpExecuterBaseMutableLocks()->SetOp(locksOp); + shardTx->MutableLocks()->SetOp(NKikimrDataEvents::TKqpLocks::Commit); *shardTx->MutableLocks()->MutableSendingShards() = sendingShards; *shardTx->MutableLocks()->MutableReceivingShards() = receivingShards; + if (arbiter) { + shardTx->MutableLocks()->SetArbiterShard(arbiter); + } } for (auto& [_, tx] : topicTxs) { - switch (locksOp) { - case NKikimrDataEvents::TKqpLocks::Commit: - tx.SetOp(NKikimrPQ::TDataTransaction::Commit); - break; - case NKikimrDataEvents::TKqpLocks::Rollback: - tx.SetOp(NKikimrPQ::TDataTransaction::Rollback); - break; - case NKikimrDataEvents::TKqpLocks::Unspecified: - break; - } - + tx.SetOp(NKikimrPQ::TDataTransaction::Commit); *tx.MutableSendingShards() = sendingShards; *tx.MutableReceivingShards() = receivingShards; + YQL_ENSURE(!arbiter); } } } @@ -2417,7 +2447,6 @@ class TKqpDataExecuter : public TKqpExecuterBaseGetType(), "Mixed physical tx types in executer."); - YQL_ENSURE(*txsType == NKqpProto::TKqpPhyTx::TYPE_DATA, "Cannot execute multiple non-data physical txs."); + YQL_ENSURE((*txsType == NKqpProto::TKqpPhyTx::TYPE_DATA) + || (*txsType == NKqpProto::TKqpPhyTx::TYPE_GENERIC), + "Cannot execute multiple non-data physical txs."); } else { txsType = tx.Body->GetType(); } diff --git a/ydb/core/kqp/executer_actor/kqp_executer_impl.h b/ydb/core/kqp/executer_actor/kqp_executer_impl.h index cd767f1ce437..3c407523c6de 100644 --- a/ydb/core/kqp/executer_actor/kqp_executer_impl.h +++ b/ydb/core/kqp/executer_actor/kqp_executer_impl.h @@ -11,6 +11,7 @@ #include #include +#include #include #include @@ -34,6 +35,7 @@ #include #include +#include #include #include #include @@ -45,6 +47,7 @@ #include #include + #include @@ -61,12 +64,10 @@ namespace NKqp { #define LOG_E(stream) LOG_ERROR_S(*TlsActivationContext, NKikimrServices::KQP_EXECUTER, "ActorId: " << SelfId() << " TxId: " << TxId << ". " << "Ctx: " << *GetUserRequestContext() << ". " << stream) #define LOG_C(stream) LOG_CRIT_S(*TlsActivationContext, NKikimrServices::KQP_EXECUTER, "ActorId: " << SelfId() << " TxId: " << TxId << ". " << "Ctx: " << *GetUserRequestContext() << ". " << stream) -enum class EExecType { - Data, - Scan -}; +using EExecType = TEvKqpExecuter::TEvTxResponse::EExecutionType; const ui64 MaxTaskSize = 48_MB; +constexpr ui64 PotentialUnsigned64OverflowLimit = (std::numeric_limits::max() >> 1); std::pair SerializeKqpTasksParametersForOlap(const TStageInfo& stageInfo, const TTask& task); @@ -75,6 +76,12 @@ inline bool IsDebugLogEnabled() { TlsActivationContext->LoggerSettings()->Satisfies(NActors::NLog::PRI_DEBUG, NKikimrServices::KQP_EXECUTER); } +struct TShardRangesWithShardId { + TMaybe ShardId; + const TShardKeyRanges* Ranges; +}; + + TActorId ReportToRl(ui64 ru, const TString& database, const TString& userToken, const NKikimrKqp::TRlPath& path); @@ -111,6 +118,7 @@ struct TEvPrivate { template class TKqpExecuterBase : public TActorBootstrapped { + static_assert(ExecType == EExecType::Data || ExecType == EExecType::Scan); public: TKqpExecuterBase(IKqpGateway::TExecPhysicalRequest&& request, const TString& database, const TIntrusiveConstPtr& userToken, @@ -119,7 +127,7 @@ class TKqpExecuterBase : public TActorBootstrapped { const NKikimrConfig::TTableServiceConfig::EChannelTransportVersion chanTransportVersion, const NKikimrConfig::TTableServiceConfig::TAggregationConfig& aggregation, TDuration maximalSecretsSnapshotWaitTime, const TIntrusivePtr& userRequestContext, - ui64 spanVerbosity = 0, TString spanName = "KqpExecuterBase") + ui64 spanVerbosity = 0, TString spanName = "KqpExecuterBase", bool streamResult = false) : Request(std::move(request)) , Database(database) , UserToken(userToken) @@ -130,13 +138,14 @@ class TKqpExecuterBase : public TActorBootstrapped { , MaximalSecretsSnapshotWaitTime(maximalSecretsSnapshotWaitTime) , AggregationSettings(aggregation) , HasOlapTable(false) + , StreamResult(streamResult) { TasksGraph.GetMeta().Snapshot = IKqpGateway::TKqpSnapshot(Request.Snapshot.Step, Request.Snapshot.TxId); TasksGraph.GetMeta().Arena = MakeIntrusive(); TasksGraph.GetMeta().Database = Database; TasksGraph.GetMeta().ChannelTransportVersion = chanTransportVersion; TasksGraph.GetMeta().UserRequestContext = userRequestContext; - ResponseEv = std::make_unique(Request.TxAlloc); + ResponseEv = std::make_unique(Request.TxAlloc, ExecType); ResponseEv->Orbit = std::move(Request.Orbit); Stats = std::make_unique(Request.StatsMode, &TasksGraph, ResponseEv->Record.MutableResponse()->MutableResult()->MutableStats()); @@ -159,6 +168,14 @@ class TKqpExecuterBase : public TActorBootstrapped { return TActorBootstrapped::SelfId(); } + TString BuildMemoryLimitExceptionMessage() const { + if (Request.TxAlloc) { + return TStringBuilder() << "Memory limit exception at " << CurrentStateFuncName() + << ", current limit is " << Request.TxAlloc->Alloc.GetLimit() << " bytes."; + } + return TStringBuilder() << "Memory limit exception at " << CurrentStateFuncName(); + } + void ReportEventElapsedTime() { if (Stats) { ui64 elapsedMicros = TlsActivationContext->GetCurrentEventTicksAsSeconds() * 1'000'000; @@ -234,6 +251,135 @@ class TKqpExecuterBase : public TActorBootstrapped { return true; } + struct TEvComputeChannelDataOOB { + NYql::NDqProto::TEvComputeChannelData Proto; + TRope Payload; + + size_t Size() const { + return Proto.GetChannelData().GetData().GetRaw().size() + Payload.size(); + } + + ui32 RowCount() const { + return Proto.GetChannelData().GetData().GetRows(); + } + }; + + void HandleChannelData(NYql::NDq::TEvDqCompute::TEvChannelData::TPtr& ev) { + auto& record = ev->Get()->Record; + auto& channelData = record.GetChannelData(); + auto& channel = TasksGraph.GetChannel(channelData.GetChannelId()); + auto& task = TasksGraph.GetTask(channel.SrcTask); + const TActorId channelComputeActorId = ev->Sender; + + auto& txResult = ResponseEv->TxResults[channel.DstInputIndex]; + auto [it, _] = ResultChannelToComputeActor.emplace(channel.Id, ev->Sender); + YQL_ENSURE(it->second == channelComputeActorId); + + if (StreamResult && txResult.IsStream && txResult.QueryResultIndex.Defined()) { + + TEvComputeChannelDataOOB computeData; + computeData.Proto = std::move(ev->Get()->Record); + if (computeData.Proto.GetChannelData().GetData().HasPayloadId()) { + computeData.Payload = ev->Get()->GetPayload(computeData.Proto.GetChannelData().GetData().GetPayloadId()); + } + + const bool trailingResults = ( + computeData.Proto.GetChannelData().GetFinished() && + Request.IsTrailingResultsAllowed()); + + TVector batches(1); + auto& batch = batches.front(); + + batch.Proto = std::move(*computeData.Proto.MutableChannelData()->MutableData()); + batch.Payload = std::move(computeData.Payload); + + TKqpProtoBuilder protoBuilder{*AppData()->FunctionRegistry}; + auto resultSet = protoBuilder.BuildYdbResultSet(std::move(batches), txResult.MkqlItemType, txResult.ColumnOrder); + + if (!trailingResults) { + auto streamEv = MakeHolder(); + streamEv->Record.SetSeqNo(computeData.Proto.GetSeqNo()); + streamEv->Record.SetQueryResultIndex(*txResult.QueryResultIndex); + streamEv->Record.SetChannelId(channel.Id); + streamEv->Record.MutableResultSet()->Swap(&resultSet); + + LOG_D("Send TEvStreamData to " << Target << ", seqNo: " << streamEv->Record.GetSeqNo() + << ", nRows: " << streamEv->Record.GetResultSet().rows().size()); + + this->Send(Target, streamEv.Release()); + + } else { + auto ackEv = MakeHolder(); + ackEv->Record.SetSeqNo(computeData.Proto.GetSeqNo()); + ackEv->Record.SetChannelId(channel.Id); + ackEv->Record.SetFreeSpace(50_MB); + this->Send(channelComputeActorId, ackEv.Release(), /* TODO: undelivery */ 0, /* cookie */ channel.Id); + txResult.TrailingResult.Swap(&resultSet); + txResult.HasTrailingResult = true; + LOG_D("staging TEvStreamData to " << Target << ", seqNo: " << computeData.Proto.GetSeqNo() + << ", nRows: " << txResult.TrailingResult.rows().size()); + } + + return; + } + + NYql::NDq::TDqSerializedBatch batch; + batch.Proto = std::move(*record.MutableChannelData()->MutableData()); + if (batch.Proto.HasPayloadId()) { + batch.Payload = ev->Get()->GetPayload(batch.Proto.GetPayloadId()); + } + + YQL_ENSURE(channel.DstTask == 0); + + if (Stats) { + Stats->ResultBytes += batch.Size(); + Stats->ResultRows += batch.RowCount(); + } + + LOG_T("Got result, channelId: " << channel.Id << ", shardId: " << task.Meta.ShardId + << ", inputIndex: " << channel.DstInputIndex << ", from: " << ev->Sender + << ", finished: " << channelData.GetFinished()); + + ResponseEv->TakeResult(channel.DstInputIndex, std::move(batch)); + LOG_T("Send ack to channelId: " << channel.Id << ", seqNo: " << record.GetSeqNo() << ", to: " << ev->Sender); + + auto ackEv = MakeHolder(); + ackEv->Record.SetSeqNo(record.GetSeqNo()); + ackEv->Record.SetChannelId(channel.Id); + ackEv->Record.SetFreeSpace(50_MB); + this->Send(channelComputeActorId, ackEv.Release(), /* TODO: undelivery */ 0, /* cookie */ channel.Id); + } + + void HandleStreamAck(TEvKqpExecuter::TEvStreamDataAck::TPtr& ev) { + ui64 channelId; + if (ResponseEv->TxResults.size() == 1) { + channelId = ResultChannelToComputeActor.begin()->first; + } else { + channelId = ev->Get()->Record.GetChannelId(); + } + + auto it = ResultChannelToComputeActor.find(channelId); + YQL_ENSURE(it != ResultChannelToComputeActor.end()); + const auto channelComputeActorId = it->second; + + ui64 seqNo = ev->Get()->Record.GetSeqNo(); + i64 freeSpace = ev->Get()->Record.GetFreeSpace(); + + LOG_DEBUG_S(*NActors::TlsActivationContext, NKikimrServices::KQP_EXECUTER, "TxId: " << TxId + << ", send ack to channelId: " << channelId + << ", seqNo: " << seqNo + << ", enough: " << ev->Get()->Record.GetEnough() + << ", freeSpace: " << freeSpace + << ", to: " << channelComputeActorId); + + auto ackEv = MakeHolder(); + ackEv->Record.SetSeqNo(seqNo); + ackEv->Record.SetChannelId(channelId); + ackEv->Record.SetFreeSpace(freeSpace); + ackEv->Record.SetFinish(ev->Get()->Record.GetEnough()); + this->Send(channelComputeActorId, ackEv.Release(), /* TODO: undelivery */ 0, /* cookie */ channelId); + } + void HandleComputeStats(NYql::NDq::TEvDqCompute::TEvState::TPtr& ev) { TActorId computeActor = ev->Sender; auto& state = ev->Get()->Record; @@ -657,6 +803,9 @@ class TKqpExecuterBase : public TActorBootstrapped { auto ru = NRuCalc::CalcRequestUnit(consumption); + YQL_ENSURE(consumption.ReadIOStat.Rows < PotentialUnsigned64OverflowLimit); + YQL_ENSURE(ru < PotentialUnsigned64OverflowLimit); + // Some heuristic to reduce overprice due to round part stats if (ru <= 100 && !force) return; @@ -843,21 +992,32 @@ class TKqpExecuterBase : public TActorBootstrapped { } } - TVector> DistributeShardsToTasks(TVector shardsRanges, const size_t tasksCount, const TVector& keyTypes) { - std::sort(std::begin(shardsRanges), std::end(shardsRanges), [&](const TShardKeyRanges* lhs, const TShardKeyRanges* rhs) { + TVector> DistributeShardsToTasks(TVector shardsRanges, const size_t tasksCount, const TVector& keyTypes) { + if (IsDebugLogEnabled()) { + TStringBuilder sb; + sb << "Distrubiting shards to tasks: ["; + for(size_t i = 0; i < shardsRanges.size(); i++) { + sb << "# " << i << ": " << shardsRanges[i].Ranges->ToString(keyTypes, *AppData()->TypeRegistry); + } + + sb << " ]."; + LOG_D(sb); + } + + std::sort(std::begin(shardsRanges), std::end(shardsRanges), [&](const TShardRangesWithShardId& lhs, const TShardRangesWithShardId& rhs) { // Special case for infinity - if (lhs->GetRightBorder().first->GetCells().empty() || rhs->GetRightBorder().first->GetCells().empty()) { - YQL_ENSURE(!lhs->GetRightBorder().first->GetCells().empty() || !rhs->GetRightBorder().first->GetCells().empty()); - return rhs->GetRightBorder().first->GetCells().empty(); + if (lhs.Ranges->GetRightBorder().first->GetCells().empty() || rhs.Ranges->GetRightBorder().first->GetCells().empty()) { + YQL_ENSURE(!lhs.Ranges->GetRightBorder().first->GetCells().empty() || !rhs.Ranges->GetRightBorder().first->GetCells().empty()); + return rhs.Ranges->GetRightBorder().first->GetCells().empty(); } return CompareTypedCellVectors( - lhs->GetRightBorder().first->GetCells().data(), - rhs->GetRightBorder().first->GetCells().data(), + lhs.Ranges->GetRightBorder().first->GetCells().data(), + rhs.Ranges->GetRightBorder().first->GetCells().data(), keyTypes.data(), keyTypes.size()) < 0; }); // One shard (ranges set) can be assigned only to one task. Otherwise, we can break some optimizations like removing unnecessary shuffle. - TVector> result(tasksCount); + TVector> result(tasksCount); size_t shardIndex = 0; for (size_t taskIndex = 0; taskIndex < tasksCount; ++taskIndex) { const size_t tasksLeft = tasksCount - taskIndex; @@ -986,7 +1146,7 @@ class TKqpExecuterBase : public TActorBootstrapped { }; THashMap> nodeIdToTasks; - THashMap> nodeIdToShardKeyRanges; + THashMap> nodeIdToShardKeyRanges; auto addPartiton = [&]( ui64 taskLocation, @@ -1012,11 +1172,11 @@ class TKqpExecuterBase : public TActorBootstrapped { const auto maxScanTasksPerNode = GetScanTasksPerNode(stageInfo, /* isOlapScan */ false, *nodeId); auto& nodeTasks = nodeIdToTasks[*nodeId]; if (nodeTasks.size() < maxScanTasksPerNode) { - const auto& task = createNewTask(nodeId, taskLocation, shardId, maxInFlightShards); + const auto& task = createNewTask(nodeId, taskLocation, {}, maxInFlightShards); nodeTasks.push_back(task.Id); } - nodeIdToShardKeyRanges[*nodeId].push_back(&*shardInfo.KeyReadRanges); + nodeIdToShardKeyRanges[*nodeId].push_back(TShardRangesWithShardId{shardId, &*shardInfo.KeyReadRanges}); } else { auto& task = createNewTask(nodeId, taskLocation, shardId, maxInFlightShards); const auto& stageSource = stage.GetSources(0); @@ -1043,12 +1203,12 @@ class TKqpExecuterBase : public TActorBootstrapped { const auto& shardsRangesForTask = rangesDistribution[taskIndex]; - if (shardsRangesForTask.size() > 1) { - settings->ClearShardIdHint(); + if (shardsRangesForTask.size() == 1 && shardsRangesForTask[0].ShardId) { + settings->SetShardIdHint(*shardsRangesForTask[0].ShardId); } for (const auto& shardRanges : shardsRangesForTask) { - shardRanges->SerializeTo(settings); + shardRanges.Ranges->SerializeTo(settings); } } } @@ -1520,6 +1680,10 @@ class TKqpExecuterBase : public TActorBootstrapped { } void AbortExecutionAndDie(TActorId abortSender, NYql::NDqProto::StatusIds::StatusCode status, const TString& message) { + if (AlreadyReplied) { + return; + } + LOG_E("Abort execution: " << NYql::NDqProto::StatusIds_StatusCode_Name(status) << "," << message); if (ExecuterSpan) { ExecuterSpan.EndError(TStringBuilder() << NYql::NDqProto::StatusIds_StatusCode_Name(status)); @@ -1533,6 +1697,7 @@ class TKqpExecuterBase : public TActorBootstrapped { this->Send(Target, abortEv.Release()); } + AlreadyReplied = true; LOG_E("Sending timeout response to: " << Target); this->Send(Target, ResponseEv.release()); @@ -1544,6 +1709,10 @@ class TKqpExecuterBase : public TActorBootstrapped { virtual void ReplyErrorAndDie(Ydb::StatusIds::StatusCode status, google::protobuf::RepeatedPtrField* issues) { + if (AlreadyReplied) { + return; + } + if (Planner) { for (auto computeActor : Planner->GetPendingComputeActors()) { LOG_D("terminate compute actor " << computeActor.first); @@ -1553,6 +1722,7 @@ class TKqpExecuterBase : public TActorBootstrapped { } } + AlreadyReplied = true; auto& response = *ResponseEv->Record.MutableResponse(); response.SetStatus(status); @@ -1595,6 +1765,12 @@ class TKqpExecuterBase : public TActorBootstrapped { } void InitializeChannelProxies() { + // notice: forward all respones to executer if + // trailing results are allowed. + // temporary, will be removed in the next pr. + if (Request.IsTrailingResultsAllowed()) + return; + for(const auto& channel: TasksGraph.GetChannels()) { if (channel.DstTask) { continue; @@ -1753,10 +1929,15 @@ class TKqpExecuterBase : public TActorBootstrapped { const NKikimrConfig::TTableServiceConfig::TAggregationConfig AggregationSettings; TVector ResourcesSnapshot; bool HasOlapTable = false; + bool StreamResult = false; bool HasDatashardSourceScan = false; bool UnknownAffectedShardCount = false; + + THashMap ResultChannelToComputeActor; THashMap> SourceScanStageIdToParititions; + bool AlreadyReplied = false; + private: static constexpr TDuration ResourceUsageUpdateInterval = TDuration::MilliSeconds(100); }; diff --git a/ydb/core/kqp/executer_actor/kqp_executer_stats.cpp b/ydb/core/kqp/executer_actor/kqp_executer_stats.cpp index 34633516825a..2c67d66cbe38 100644 --- a/ydb/core/kqp/executer_actor/kqp_executer_stats.cpp +++ b/ydb/core/kqp/executer_actor/kqp_executer_stats.cpp @@ -746,7 +746,7 @@ void TQueryExecutionStats::ExportExecStats(NYql::NDqProto::TDqExecutionStats& st for (auto& p2 : p.second.Egress) { ExportAggAsyncBufferStats(p2.second, (*stageStats.MutableEgress())[p2.first]); } - } + } } void TQueryExecutionStats::Finish() { @@ -761,7 +761,7 @@ void TQueryExecutionStats::Finish() { Result->SetDurationUs(FinishTs.MicroSeconds() - StartTs.MicroSeconds()); // Result->Result* feilds are (temporary?) commented out in proto due to lack of use - // + // // Result->SetResultBytes(ResultBytes); // Result->SetResultRows(ResultRows); @@ -838,6 +838,11 @@ void TProgressStatEntry::Out(IOutputStream& o) const { } void TProgressStat::Set(const NDqProto::TDqComputeActorStats& stats) { + if (Cur.Defined) { + Cur = TEntry(); + } + + Cur.Defined = true; Cur.ComputeTime += TDuration::MicroSeconds(stats.GetCpuTimeUs()); for (auto& task : stats.GetTasks()) { for (auto& table: task.GetTables()) { @@ -848,7 +853,7 @@ void TProgressStat::Set(const NDqProto::TDqComputeActorStats& stats) { } TProgressStat::TEntry TProgressStat::GetLastUsage() const { - return Cur - Total; + return Cur.Defined ? Cur - Total : Cur; } void TProgressStat::Update() { diff --git a/ydb/core/kqp/executer_actor/kqp_executer_stats.h b/ydb/core/kqp/executer_actor/kqp_executer_stats.h index bea43d882dab..b078a6ca7e64 100644 --- a/ydb/core/kqp/executer_actor/kqp_executer_stats.h +++ b/ydb/core/kqp/executer_actor/kqp_executer_stats.h @@ -191,6 +191,7 @@ struct TTableStat { struct TProgressStatEntry { TDuration ComputeTime; TTableStat ReadIOStat; + bool Defined = false; TProgressStatEntry& operator+=(const TProgressStatEntry& rhs); diff --git a/ydb/core/kqp/executer_actor/kqp_literal_executer.cpp b/ydb/core/kqp/executer_actor/kqp_literal_executer.cpp index 3d1383bf0810..3c50ede68766 100644 --- a/ydb/core/kqp/executer_actor/kqp_literal_executer.cpp +++ b/ydb/core/kqp/executer_actor/kqp_literal_executer.cpp @@ -79,7 +79,9 @@ class TKqpLiteralExecuter { , LiteralExecuterSpan(TWilsonKqp::LiteralExecuter, std::move(Request.TraceId), "LiteralExecuter") , UserRequestContext(userRequestContext) { - ResponseEv = std::make_unique(Request.TxAlloc); + ResponseEv = std::make_unique( + Request.TxAlloc, TEvKqpExecuter::TEvTxResponse::EExecutionType::Literal); + ResponseEv->Orbit = std::move(Request.Orbit); Stats = std::make_unique(Request.StatsMode, &TasksGraph, ResponseEv->Record.MutableResponse()->MutableResult()->MutableStats()); @@ -146,24 +148,6 @@ class TKqpLiteralExecuter { return; } - ui64 mkqlMemoryLimit = Request.MkqlMemoryLimit > 0 - ? Request.MkqlMemoryLimit - : 1_GB; - - auto& alloc = Request.TxAlloc->Alloc; - auto rmConfig = GetKqpResourceManager()->GetConfig(); - ui64 mkqlInitialLimit = std::min(mkqlMemoryLimit, rmConfig.GetMkqlLightProgramMemoryLimit()); - ui64 mkqlMaxLimit = std::max(mkqlMemoryLimit, rmConfig.GetMkqlLightProgramMemoryLimit()); - alloc.SetLimit(mkqlInitialLimit); - - // TODO: KIKIMR-15350 - alloc.Ref().SetIncreaseMemoryLimitCallback([this, &alloc, mkqlMaxLimit](ui64 currentLimit, ui64 required) { - if (required < mkqlMaxLimit) { - LOG_D("Increase memory limit from " << currentLimit << " to " << required); - alloc.SetLimit(required); - } - }); - // task runner settings ComputeCtx = std::make_unique(); RunnerContext = CreateTaskRunnerContext(ComputeCtx.get(), &Request.TxAlloc->TypeEnv); diff --git a/ydb/core/kqp/executer_actor/kqp_result_channel.cpp b/ydb/core/kqp/executer_actor/kqp_result_channel.cpp index 3d3d9d00d199..c71efa06082a 100644 --- a/ydb/core/kqp/executer_actor/kqp_result_channel.cpp +++ b/ydb/core/kqp/executer_actor/kqp_result_channel.cpp @@ -56,6 +56,8 @@ class TResultCommonChannelProxy : public NActors::TActor(NYql::NDqProto::StatusIds::INTERNAL_ERROR, msg); + auto evAbort = MakeHolder(code, msg); Send(Executer, evAbort.Release()); Become(&TResultCommonChannelProxy::DeadState); @@ -112,7 +114,7 @@ class TResultCommonChannelProxy : public NActors::TActorGetTypeRewrite()) { hFunc(TEvents::TEvPoison, HandlePoison); } - + } catch(const yexception& ex) { InternalError(ex.what()); } diff --git a/ydb/core/kqp/executer_actor/kqp_scan_executer.cpp b/ydb/core/kqp/executer_actor/kqp_scan_executer.cpp index 047bc9e007eb..62d799717d20 100644 --- a/ydb/core/kqp/executer_actor/kqp_scan_executer.cpp +++ b/ydb/core/kqp/executer_actor/kqp_scan_executer.cpp @@ -51,7 +51,8 @@ class TKqpScanExecuter : public TKqpExecuterBase& userRequestContext) : TBase(std::move(request), database, userToken, counters, executerRetriesConfig, chanTransportVersion, aggregation, - maximalSecretsSnapshotWaitTime, userRequestContext, TWilsonKqp::ScanExecuter, "ScanExecuter" + maximalSecretsSnapshotWaitTime, userRequestContext, TWilsonKqp::ScanExecuter, "ScanExecuter", + false ) , PreparedQuery(preparedQuery) { @@ -64,13 +65,13 @@ class TKqpScanExecuter : public TKqpExecuterBaseResultsSize(); YQL_ENSURE(resultsSize != 0); - bool streamResult = Request.Transactions[0].Body->GetResults(0).GetIsStream(); + StreamResult = Request.Transactions[0].Body->GetResults(0).GetIsStream(); - if (streamResult) { + if (StreamResult) { YQL_ENSURE(resultsSize == 1); } else { for (size_t i = 1; i < resultsSize; ++i) { - YQL_ENSURE(Request.Transactions[0].Body->GetResults(i).GetIsStream() == streamResult); + YQL_ENSURE(Request.Transactions[0].Body->GetResults(i).GetIsStream() == StreamResult); } } } @@ -89,6 +90,8 @@ class TKqpScanExecuter : public TKqpExecuterBaseGetTypeRewrite()) { hFunc(TEvDqCompute::TEvState, HandleComputeStats); - hFunc(TEvKqpExecuter::TEvStreamDataAck, HandleExecute); + hFunc(TEvDqCompute::TEvChannelData, HandleChannelData); // from CA + hFunc(TEvKqpExecuter::TEvStreamDataAck, HandleStreamAck); hFunc(TEvKqp::TEvAbortExecution, HandleAbortExecution); hFunc(TEvents::TEvUndelivered, HandleUndelivered); hFunc(TEvPrivate::TEvRetry, HandleRetry); @@ -122,29 +126,12 @@ class TKqpScanExecuter : public TKqpExecuterBaseGet()->Record.GetSeqNo() - << ", freeSpace: " << ev->Get()->Record.GetFreeSpace() - << ", enough: " << ev->Get()->Record.GetEnough() - << ", from: " << ev->Sender); - - auto& resultChannelProxies = GetResultChannelProxies(); - if (resultChannelProxies.empty()) { - return; - } - - // Forward only for stream results, data results acks event theirselves. - YQL_ENSURE(!ResponseEv->TxResults.empty() && ResponseEv->TxResults[0].IsStream); - - auto channelIt = resultChannelProxies.begin(); - auto handle = ev->Forward(channelIt->second->SelfId()); - channelIt->second->Receive(handle); - } - private: void HandleResolve(TEvKqpExecuter::TEvTableResolveStatus::TPtr& ev) { if (!TBase::HandleResolve(ev)) return; @@ -247,8 +234,6 @@ class TKqpScanExecuter : public TKqpExecuterBase computeTasks; - InitializeChannelProxies(); - // calc stats for (auto& task : TasksGraph.GetTasks()) { auto& stageInfo = TasksGraph.GetStageInfo(task.StageId); diff --git a/ydb/core/kqp/executer_actor/kqp_scheme_executer.cpp b/ydb/core/kqp/executer_actor/kqp_scheme_executer.cpp index 780bc7b85b0b..9ed5fceef0d3 100644 --- a/ydb/core/kqp/executer_actor/kqp_scheme_executer.cpp +++ b/ydb/core/kqp/executer_actor/kqp_scheme_executer.cpp @@ -69,7 +69,9 @@ class TKqpSchemeExecuter : public TActorBootstrapped { YQL_ENSURE(PhyTx); YQL_ENSURE(PhyTx->GetType() == NKqpProto::TKqpPhyTx::TYPE_SCHEME); - ResponseEv = std::make_unique(nullptr); + ResponseEv = std::make_unique( + nullptr, + TEvKqpExecuter::TEvTxResponse::EExecutionType::Scheme); } void StartBuildOperation() { @@ -203,6 +205,36 @@ class TKqpSchemeExecuter : public TActorBootstrapped { break; } + case NKqpProto::TKqpSchemeOperation::kCreateColumnTable: { + const auto& modifyScheme = schemeOp.GetCreateColumnTable(); + ev->Record.MutableTransaction()->MutableModifyScheme()->CopyFrom(modifyScheme); + break; + } + + case NKqpProto::TKqpSchemeOperation::kAlterColumnTable: { + const auto& modifyScheme = schemeOp.GetAlterColumnTable(); + ev->Record.MutableTransaction()->MutableModifyScheme()->CopyFrom(modifyScheme); + break; + } + + case NKqpProto::TKqpSchemeOperation::kCreateTableStore: { + const auto& modifyScheme = schemeOp.GetCreateTableStore(); + ev->Record.MutableTransaction()->MutableModifyScheme()->CopyFrom(modifyScheme); + break; + } + + case NKqpProto::TKqpSchemeOperation::kAlterTableStore: { + const auto& modifyScheme = schemeOp.GetAlterTableStore(); + ev->Record.MutableTransaction()->MutableModifyScheme()->CopyFrom(modifyScheme); + break; + } + + case NKqpProto::TKqpSchemeOperation::kDropTableStore: { + const auto& modifyScheme = schemeOp.GetDropTableStore(); + ev->Record.MutableTransaction()->MutableModifyScheme()->CopyFrom(modifyScheme); + break; + } + default: InternalError(TStringBuilder() << "Unexpected scheme operation: " << (ui32) schemeOp.GetOperationCase()); diff --git a/ydb/core/kqp/executer_actor/kqp_tasks_graph.h b/ydb/core/kqp/executer_actor/kqp_tasks_graph.h index 1a68edf17d16..bf27aec9dbcb 100644 --- a/ydb/core/kqp/executer_actor/kqp_tasks_graph.h +++ b/ydb/core/kqp/executer_actor/kqp_tasks_graph.h @@ -165,6 +165,7 @@ struct TTaskMeta { TActorId ExecuterId; ui32 Type = Unknown; + TActorId ResultChannelActorId; THashMap TaskParams; // Params for sources/sinks TVector ReadRanges; // Partitioning for sources THashMap SecureParams; diff --git a/ydb/core/kqp/executer_actor/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/executer_actor/ut/CMakeLists.darwin-arm64.txt index 856dccd9196f..07f01fd81bfb 100644 --- a/ydb/core/kqp/executer_actor/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/executer_actor/ut/CMakeLists.darwin-arm64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-core-kqp-executer_actor-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) set_property( TARGET @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/executer_actor/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/executer_actor/ut/CMakeLists.darwin-x86_64.txt index 02d25c233cfd..655b2225784a 100644 --- a/ydb/core/kqp/executer_actor/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/executer_actor/ut/CMakeLists.darwin-x86_64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-core-kqp-executer_actor-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) set_property( TARGET @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/executer_actor/ut/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/executer_actor/ut/CMakeLists.linux-aarch64.txt index 28cff400cb2d..5c96e921eead 100644 --- a/ydb/core/kqp/executer_actor/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/executer_actor/ut/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-core-kqp-executer_actor-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) set_property( TARGET @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/executer_actor/ut/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/executer_actor/ut/CMakeLists.linux-x86_64.txt index 83c0e8558c26..df95e5a380be 100644 --- a/ydb/core/kqp/executer_actor/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/executer_actor/ut/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-core-kqp-executer_actor-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) set_property( TARGET @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/executer_actor/ut/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/executer_actor/ut/CMakeLists.windows-x86_64.txt index 12c22e853668..47f65063de72 100644 --- a/ydb/core/kqp/executer_actor/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/executer_actor/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/executer_actor/ya.make b/ydb/core/kqp/executer_actor/ya.make index 7a7cee3e675e..9cb7618afb0d 100644 --- a/ydb/core/kqp/executer_actor/ya.make +++ b/ydb/core/kqp/executer_actor/ya.make @@ -42,6 +42,10 @@ PEERDIR( ydb/library/yql/providers/common/http_gateway ) +GENERATE_ENUM_SERIALIZATION( + kqp_executer.h +) + YQL_LAST_ABI_VERSION() END() diff --git a/ydb/core/kqp/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/expr_nodes/CMakeLists.darwin-arm64.txt index f7bb91913a9c..85cf4746c023 100644 --- a/ydb/core/kqp/expr_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/expr_nodes/CMakeLists.darwin-arm64.txt @@ -15,6 +15,10 @@ target_link_libraries(core-kqp-expr_nodes PUBLIC yql-dq-expr_nodes ) target_sources(core-kqp-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.decl.inl.h diff --git a/ydb/core/kqp/expr_nodes/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/expr_nodes/CMakeLists.darwin-x86_64.txt index f7bb91913a9c..85cf4746c023 100644 --- a/ydb/core/kqp/expr_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/expr_nodes/CMakeLists.darwin-x86_64.txt @@ -15,6 +15,10 @@ target_link_libraries(core-kqp-expr_nodes PUBLIC yql-dq-expr_nodes ) target_sources(core-kqp-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.decl.inl.h diff --git a/ydb/core/kqp/expr_nodes/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/expr_nodes/CMakeLists.linux-aarch64.txt index d4e1a53b1363..c145c0764eb5 100644 --- a/ydb/core/kqp/expr_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/expr_nodes/CMakeLists.linux-aarch64.txt @@ -16,6 +16,10 @@ target_link_libraries(core-kqp-expr_nodes PUBLIC yql-dq-expr_nodes ) target_sources(core-kqp-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.decl.inl.h diff --git a/ydb/core/kqp/expr_nodes/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/expr_nodes/CMakeLists.linux-x86_64.txt index d4e1a53b1363..c145c0764eb5 100644 --- a/ydb/core/kqp/expr_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/expr_nodes/CMakeLists.linux-x86_64.txt @@ -16,6 +16,10 @@ target_link_libraries(core-kqp-expr_nodes PUBLIC yql-dq-expr_nodes ) target_sources(core-kqp-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.decl.inl.h diff --git a/ydb/core/kqp/expr_nodes/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/expr_nodes/CMakeLists.windows-x86_64.txt index f7bb91913a9c..85cf4746c023 100644 --- a/ydb/core/kqp/expr_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/expr_nodes/CMakeLists.windows-x86_64.txt @@ -15,6 +15,10 @@ target_link_libraries(core-kqp-expr_nodes PUBLIC yql-dq-expr_nodes ) target_sources(core-kqp-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/core/kqp/expr_nodes/kqp_expr_nodes.decl.inl.h diff --git a/ydb/core/kqp/expr_nodes/kqp_expr_nodes.json b/ydb/core/kqp/expr_nodes/kqp_expr_nodes.json index e25e12ced530..0cf0a1611e7c 100644 --- a/ydb/core/kqp/expr_nodes/kqp_expr_nodes.json +++ b/ydb/core/kqp/expr_nodes/kqp_expr_nodes.json @@ -104,7 +104,9 @@ "Base": "TKqlReadTableRangesBase", "Match": {"Type": "Callable", "Name": "KqlReadTableRanges"}, "Children": [ - {"Index": 5, "Name": "PrefixPointsExpr", "Type": "TExprBase", "Optional": true} + {"Index": 5, "Name": "PrefixPointsExpr", "Type": "TExprBase", "Optional": true}, + {"Index": 6, "Name": "PredicateExpr", "Type": "TCoLambda", "Optional": true}, + {"Index": 7, "Name": "PredicateUsedColumns", "Type": "TCoAtomList", "Optional": true} ] }, { @@ -131,7 +133,9 @@ "Match": {"Type": "Callable", "Name": "TKqlReadTableIndexRanges"}, "Children": [ {"Index": 5, "Name": "Index", "Type": "TCoAtom"}, - {"Index": 6, "Name": "PrefixPointsExpr", "Type": "TExprBase", "Optional": true} + {"Index": 6, "Name": "PrefixPointsExpr", "Type": "TExprBase", "Optional": true}, + {"Index": 7, "Name": "PredicateExpr", "Type": "TCoLambda", "Optional": true}, + {"Index": 8, "Name": "PredicateUsedColumns", "Type": "TCoAtomList", "Optional": true} ] }, { diff --git a/ydb/core/kqp/gateway/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/gateway/CMakeLists.darwin-arm64.txt index 30e27791a7b2..0bf1ce903d33 100644 --- a/ydb/core/kqp/gateway/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/gateway/CMakeLists.darwin-arm64.txt @@ -9,6 +9,7 @@ add_subdirectory(actors) add_subdirectory(behaviour) add_subdirectory(local_rpc) +add_subdirectory(utils) add_library(core-kqp-gateway) target_compile_options(core-kqp-gateway PRIVATE @@ -27,6 +28,8 @@ target_link_libraries(core-kqp-gateway PUBLIC gateway-behaviour-tablestore gateway-behaviour-table gateway-behaviour-external_data_source + gateway-behaviour-view + kqp-gateway-utils providers-result-expr_nodes ) target_sources(core-kqp-gateway PRIVATE diff --git a/ydb/core/kqp/gateway/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/gateway/CMakeLists.darwin-x86_64.txt index 30e27791a7b2..0bf1ce903d33 100644 --- a/ydb/core/kqp/gateway/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/gateway/CMakeLists.darwin-x86_64.txt @@ -9,6 +9,7 @@ add_subdirectory(actors) add_subdirectory(behaviour) add_subdirectory(local_rpc) +add_subdirectory(utils) add_library(core-kqp-gateway) target_compile_options(core-kqp-gateway PRIVATE @@ -27,6 +28,8 @@ target_link_libraries(core-kqp-gateway PUBLIC gateway-behaviour-tablestore gateway-behaviour-table gateway-behaviour-external_data_source + gateway-behaviour-view + kqp-gateway-utils 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 76972ab96b3f..af3d565d53ed 100644 --- a/ydb/core/kqp/gateway/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/gateway/CMakeLists.linux-aarch64.txt @@ -9,6 +9,7 @@ add_subdirectory(actors) add_subdirectory(behaviour) add_subdirectory(local_rpc) +add_subdirectory(utils) add_library(core-kqp-gateway) target_compile_options(core-kqp-gateway PRIVATE @@ -28,6 +29,8 @@ target_link_libraries(core-kqp-gateway PUBLIC gateway-behaviour-tablestore gateway-behaviour-table gateway-behaviour-external_data_source + gateway-behaviour-view + kqp-gateway-utils 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 76972ab96b3f..af3d565d53ed 100644 --- a/ydb/core/kqp/gateway/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/gateway/CMakeLists.linux-x86_64.txt @@ -9,6 +9,7 @@ add_subdirectory(actors) add_subdirectory(behaviour) add_subdirectory(local_rpc) +add_subdirectory(utils) add_library(core-kqp-gateway) target_compile_options(core-kqp-gateway PRIVATE @@ -28,6 +29,8 @@ target_link_libraries(core-kqp-gateway PUBLIC gateway-behaviour-tablestore gateway-behaviour-table gateway-behaviour-external_data_source + gateway-behaviour-view + kqp-gateway-utils 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 30e27791a7b2..0bf1ce903d33 100644 --- a/ydb/core/kqp/gateway/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/gateway/CMakeLists.windows-x86_64.txt @@ -9,6 +9,7 @@ add_subdirectory(actors) add_subdirectory(behaviour) add_subdirectory(local_rpc) +add_subdirectory(utils) add_library(core-kqp-gateway) target_compile_options(core-kqp-gateway PRIVATE @@ -27,6 +28,8 @@ target_link_libraries(core-kqp-gateway PUBLIC gateway-behaviour-tablestore gateway-behaviour-table gateway-behaviour-external_data_source + gateway-behaviour-view + kqp-gateway-utils providers-result-expr_nodes ) target_sources(core-kqp-gateway PRIVATE diff --git a/ydb/core/kqp/gateway/behaviour/CMakeLists.txt b/ydb/core/kqp/gateway/behaviour/CMakeLists.txt index 19718f063f2b..118a891d4963 100644 --- a/ydb/core/kqp/gateway/behaviour/CMakeLists.txt +++ b/ydb/core/kqp/gateway/behaviour/CMakeLists.txt @@ -9,3 +9,4 @@ add_subdirectory(external_data_source) add_subdirectory(table) add_subdirectory(tablestore) +add_subdirectory(view) diff --git a/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.darwin-arm64.txt index aae8b0714bc1..70f6954d0c21 100644 --- a/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/gateway/behaviour/external_data_source/CMakeLists.darwin-arm64.txt @@ -17,6 +17,7 @@ target_link_libraries(gateway-behaviour-external_data_source PUBLIC services-metadata-initializer services-metadata-abstract kqp-gateway-actors + kqp-gateway-utils behaviour-tablestore-operations ) target_sources(gateway-behaviour-external_data_source PRIVATE @@ -33,6 +34,7 @@ target_link_libraries(gateway-behaviour-external_data_source.global PUBLIC services-metadata-initializer services-metadata-abstract kqp-gateway-actors + kqp-gateway-utils behaviour-tablestore-operations ) target_sources(gateway-behaviour-external_data_source.global PRIVATE 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 index aae8b0714bc1..70f6954d0c21 100644 --- 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 @@ -17,6 +17,7 @@ target_link_libraries(gateway-behaviour-external_data_source PUBLIC services-metadata-initializer services-metadata-abstract kqp-gateway-actors + kqp-gateway-utils behaviour-tablestore-operations ) target_sources(gateway-behaviour-external_data_source PRIVATE @@ -33,6 +34,7 @@ target_link_libraries(gateway-behaviour-external_data_source.global PUBLIC services-metadata-initializer services-metadata-abstract kqp-gateway-actors + kqp-gateway-utils behaviour-tablestore-operations ) target_sources(gateway-behaviour-external_data_source.global PRIVATE 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 index a8d7f24f0066..c67393e5e777 100644 --- 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 @@ -18,6 +18,7 @@ target_link_libraries(gateway-behaviour-external_data_source PUBLIC services-metadata-initializer services-metadata-abstract kqp-gateway-actors + kqp-gateway-utils behaviour-tablestore-operations ) target_sources(gateway-behaviour-external_data_source PRIVATE @@ -35,6 +36,7 @@ target_link_libraries(gateway-behaviour-external_data_source.global PUBLIC services-metadata-initializer services-metadata-abstract kqp-gateway-actors + kqp-gateway-utils behaviour-tablestore-operations ) target_sources(gateway-behaviour-external_data_source.global PRIVATE 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 index a8d7f24f0066..c67393e5e777 100644 --- 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 @@ -18,6 +18,7 @@ target_link_libraries(gateway-behaviour-external_data_source PUBLIC services-metadata-initializer services-metadata-abstract kqp-gateway-actors + kqp-gateway-utils behaviour-tablestore-operations ) target_sources(gateway-behaviour-external_data_source PRIVATE @@ -35,6 +36,7 @@ target_link_libraries(gateway-behaviour-external_data_source.global PUBLIC services-metadata-initializer services-metadata-abstract kqp-gateway-actors + kqp-gateway-utils behaviour-tablestore-operations ) target_sources(gateway-behaviour-external_data_source.global PRIVATE 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 index aae8b0714bc1..70f6954d0c21 100644 --- 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 @@ -17,6 +17,7 @@ target_link_libraries(gateway-behaviour-external_data_source PUBLIC services-metadata-initializer services-metadata-abstract kqp-gateway-actors + kqp-gateway-utils behaviour-tablestore-operations ) target_sources(gateway-behaviour-external_data_source PRIVATE @@ -33,6 +34,7 @@ target_link_libraries(gateway-behaviour-external_data_source.global PUBLIC services-metadata-initializer services-metadata-abstract kqp-gateway-actors + kqp-gateway-utils behaviour-tablestore-operations ) target_sources(gateway-behaviour-external_data_source.global PRIVATE diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.darwin-arm64.txt index 1fce41a48759..1f72c8267ead 100644 --- a/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.darwin-arm64.txt @@ -15,7 +15,8 @@ target_link_libraries(behaviour-tablestore-operations PUBLIC contrib-libs-cxxsupp yutil services-metadata-manager - formats-arrow-compression + formats-arrow-serializer + kqp-gateway-utils ydb-core-protos ) target_sources(behaviour-tablestore-operations PRIVATE @@ -30,11 +31,14 @@ target_link_libraries(behaviour-tablestore-operations.global PUBLIC contrib-libs-cxxsupp yutil services-metadata-manager - formats-arrow-compression + formats-arrow-serializer + kqp-gateway-utils ydb-core-protos ) target_sources(behaviour-tablestore-operations.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/add_column.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/alter_column.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_column.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_index.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_index.cpp ) diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.darwin-x86_64.txt index 1fce41a48759..1f72c8267ead 100644 --- a/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.darwin-x86_64.txt @@ -15,7 +15,8 @@ target_link_libraries(behaviour-tablestore-operations PUBLIC contrib-libs-cxxsupp yutil services-metadata-manager - formats-arrow-compression + formats-arrow-serializer + kqp-gateway-utils ydb-core-protos ) target_sources(behaviour-tablestore-operations PRIVATE @@ -30,11 +31,14 @@ target_link_libraries(behaviour-tablestore-operations.global PUBLIC contrib-libs-cxxsupp yutil services-metadata-manager - formats-arrow-compression + formats-arrow-serializer + kqp-gateway-utils ydb-core-protos ) target_sources(behaviour-tablestore-operations.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/add_column.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/alter_column.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_column.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_index.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_index.cpp ) diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.linux-aarch64.txt index f280dd081286..105ae681cc11 100644 --- a/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.linux-aarch64.txt @@ -16,7 +16,8 @@ target_link_libraries(behaviour-tablestore-operations PUBLIC contrib-libs-cxxsupp yutil services-metadata-manager - formats-arrow-compression + formats-arrow-serializer + kqp-gateway-utils ydb-core-protos ) target_sources(behaviour-tablestore-operations PRIVATE @@ -32,11 +33,14 @@ target_link_libraries(behaviour-tablestore-operations.global PUBLIC contrib-libs-cxxsupp yutil services-metadata-manager - formats-arrow-compression + formats-arrow-serializer + kqp-gateway-utils ydb-core-protos ) target_sources(behaviour-tablestore-operations.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/add_column.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/alter_column.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_column.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_index.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_index.cpp ) diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.linux-x86_64.txt index f280dd081286..105ae681cc11 100644 --- a/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.linux-x86_64.txt @@ -16,7 +16,8 @@ target_link_libraries(behaviour-tablestore-operations PUBLIC contrib-libs-cxxsupp yutil services-metadata-manager - formats-arrow-compression + formats-arrow-serializer + kqp-gateway-utils ydb-core-protos ) target_sources(behaviour-tablestore-operations PRIVATE @@ -32,11 +33,14 @@ target_link_libraries(behaviour-tablestore-operations.global PUBLIC contrib-libs-cxxsupp yutil services-metadata-manager - formats-arrow-compression + formats-arrow-serializer + kqp-gateway-utils ydb-core-protos ) target_sources(behaviour-tablestore-operations.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/add_column.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/alter_column.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_column.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_index.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_index.cpp ) diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.windows-x86_64.txt index 1fce41a48759..1f72c8267ead 100644 --- a/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/CMakeLists.windows-x86_64.txt @@ -15,7 +15,8 @@ target_link_libraries(behaviour-tablestore-operations PUBLIC contrib-libs-cxxsupp yutil services-metadata-manager - formats-arrow-compression + formats-arrow-serializer + kqp-gateway-utils ydb-core-protos ) target_sources(behaviour-tablestore-operations PRIVATE @@ -30,11 +31,14 @@ target_link_libraries(behaviour-tablestore-operations.global PUBLIC contrib-libs-cxxsupp yutil services-metadata-manager - formats-arrow-compression + formats-arrow-serializer + kqp-gateway-utils ydb-core-protos ) target_sources(behaviour-tablestore-operations.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/add_column.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/alter_column.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_column.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_index.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_index.cpp ) diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/add_column.cpp b/ydb/core/kqp/gateway/behaviour/tablestore/operations/add_column.cpp index 0353207940b7..aeec2c01f225 100644 --- a/ydb/core/kqp/gateway/behaviour/tablestore/operations/add_column.cpp +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/add_column.cpp @@ -11,6 +11,10 @@ TConclusionStatus TAddColumnOperation::DoDeserialize(NYql::TObjectSettingsImpl:: } ColumnName = *fValue; } + StorageId = features.Extract("STORAGE_ID"); + if (StorageId && !*StorageId) { + return TConclusionStatus::Fail("STORAGE_ID cannot be empty string"); + } { auto fValue = features.Extract("TYPE"); if (!fValue) { @@ -31,6 +35,9 @@ void TAddColumnOperation::DoSerializeScheme(NKikimrSchemeOp::TAlterColumnTableSc auto column = schemaData.AddAddColumns(); column->SetName(ColumnName); column->SetType(ColumnType); + if (StorageId) { + column->SetStorageId(*StorageId); + } column->SetNotNull(NotNull); } diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/add_column.h b/ydb/core/kqp/gateway/behaviour/tablestore/operations/add_column.h index 6bf452c9f860..a78207845dea 100644 --- a/ydb/core/kqp/gateway/behaviour/tablestore/operations/add_column.h +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/add_column.h @@ -12,6 +12,7 @@ class TAddColumnOperation : public ITableStoreOperation { private: TString ColumnName; TString ColumnType; + std::optional StorageId; bool NotNull = false; public: TConclusionStatus DoDeserialize(NYql::TObjectSettingsImpl::TFeaturesExtractor& features) override; diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/alter_column.cpp b/ydb/core/kqp/gateway/behaviour/tablestore/operations/alter_column.cpp index e7706d1093c0..bd430d71fc47 100644 --- a/ydb/core/kqp/gateway/behaviour/tablestore/operations/alter_column.cpp +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/alter_column.cpp @@ -10,6 +10,10 @@ TConclusionStatus TAlterColumnOperation::DoDeserialize(NYql::TObjectSettingsImpl } ColumnName = *fValue; } + StorageId = features.Extract("STORAGE_ID"); + if (StorageId && !*StorageId) { + return TConclusionStatus::Fail("STORAGE_ID cannot be empty string"); + } { auto result = DictionaryEncodingDiff.DeserializeFromRequestFeatures(features); if (!result) { @@ -17,9 +21,9 @@ TConclusionStatus TAlterColumnOperation::DoDeserialize(NYql::TObjectSettingsImpl } } { - auto result = CompressionDiff.DeserializeFromRequestFeatures(features); - if (!result) { - return TConclusionStatus::Fail(result.GetErrorMessage()); + auto status = Serializer.DeserializeFromRequest(features); + if (!status) { + return status; } } return TConclusionStatus::Success(); @@ -28,7 +32,12 @@ TConclusionStatus TAlterColumnOperation::DoDeserialize(NYql::TObjectSettingsImpl void TAlterColumnOperation::DoSerializeScheme(NKikimrSchemeOp::TAlterColumnTableSchema& schemaData) const { auto* column = schemaData.AddAlterColumns(); column->SetName(ColumnName); - *column->MutableCompression() = CompressionDiff.SerializeToProto(); + if (StorageId && !!*StorageId) { + column->SetStorageId(*StorageId); + } + if (!!Serializer) { + Serializer.SerializeToProto(*column->MutableSerializer()); + } *column->MutableDictionaryEncoding() = DictionaryEncodingDiff.SerializeToProto(); } diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/alter_column.h b/ydb/core/kqp/gateway/behaviour/tablestore/operations/alter_column.h index 803ffd5464f9..c883ab035f9d 100644 --- a/ydb/core/kqp/gateway/behaviour/tablestore/operations/alter_column.h +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/alter_column.h @@ -1,5 +1,5 @@ #include "abstract.h" -#include +#include #include namespace NKikimr::NKqp::NColumnshard { @@ -13,8 +13,9 @@ class TAlterColumnOperation : public ITableStoreOperation { static inline auto Registrator = TFactory::TRegistrator(GetTypeName()); TString ColumnName; + std::optional StorageId; - NArrow::TCompressionDiff CompressionDiff; + NArrow::NSerialization::TSerializerContainer Serializer; NArrow::NDictionary::TEncodingDiff DictionaryEncodingDiff; public: TConclusionStatus DoDeserialize(NYql::TObjectSettingsImpl::TFeaturesExtractor& features) override; diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_stat.cpp b/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_stat.cpp new file mode 100644 index 000000000000..94a18e7e4140 --- /dev/null +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_stat.cpp @@ -0,0 +1,21 @@ +#include "drop_stat.h" +#include + +namespace NKikimr::NKqp { + +TConclusionStatus TDropStatOperation::DoDeserialize(NYql::TObjectSettingsImpl::TFeaturesExtractor& features) { + { + auto fValue = features.Extract("NAME"); + if (!fValue) { + return TConclusionStatus::Fail("can't find parameter NAME"); + } + Name = *fValue; + } + return TConclusionStatus::Success(); +} + +void TDropStatOperation::DoSerializeScheme(NKikimrSchemeOp::TAlterColumnTableSchema& schemaData) const { + *schemaData.AddDropStatistics() = Name; +} + +} diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_stat.h b/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_stat.h new file mode 100644 index 000000000000..777aae036858 --- /dev/null +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/drop_stat.h @@ -0,0 +1,19 @@ +#include "abstract.h" + +namespace NKikimr::NKqp { + +class TDropStatOperation : public ITableStoreOperation { + static TString GetTypeName() { + return "DROP_STAT"; + } + + static inline auto Registrator = TFactory::TRegistrator(GetTypeName()); +private: + TString Name; +public: + TConclusionStatus DoDeserialize(NYql::TObjectSettingsImpl::TFeaturesExtractor& features) override; + void DoSerializeScheme(NKikimrSchemeOp::TAlterColumnTableSchema& schemaData) const override; +}; + +} + diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_index.cpp b/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_index.cpp index 61914cb6e005..ae0f08e3333d 100644 --- a/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_index.cpp +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_index.cpp @@ -12,6 +12,10 @@ TConclusionStatus TUpsertIndexOperation::DoDeserialize(NYql::TObjectSettingsImpl } IndexName = *fValue; } + StorageId = features.Extract("STORAGE_ID"); + if (StorageId && !*StorageId) { + return TConclusionStatus::Fail("STORAGE_ID cannot be empty string"); + } TString indexType; { auto fValue = features.Extract("TYPE"); @@ -42,6 +46,9 @@ TConclusionStatus TUpsertIndexOperation::DoDeserialize(NYql::TObjectSettingsImpl void TUpsertIndexOperation::DoSerializeScheme(NKikimrSchemeOp::TAlterColumnTableSchema& schemaData) const { auto* indexProto = schemaData.AddUpsertIndexes(); + if (StorageId) { + indexProto->SetStorageId(*StorageId); + } indexProto->SetName(IndexName); IndexMetaConstructor.SerializeToProto(*indexProto); } diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_index.h b/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_index.h index 267829a1a5f4..12305f85f0ae 100644 --- a/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_index.h +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_index.h @@ -12,6 +12,7 @@ class TUpsertIndexOperation : public ITableStoreOperation { static inline auto Registrator = TFactory::TRegistrator(GetTypeName()); private: TString IndexName; + std::optional StorageId; NBackgroundTasks::TInterfaceProtoContainer IndexMetaConstructor; public: TConclusionStatus DoDeserialize(NYql::TObjectSettingsImpl::TFeaturesExtractor& features) override; diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_opt.cpp b/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_opt.cpp new file mode 100644 index 000000000000..e3474723d5aa --- /dev/null +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_opt.cpp @@ -0,0 +1,20 @@ +#include "upsert_opt.h" +#include +#include + +namespace NKikimr::NKqp { + +TConclusionStatus TUpsertOptionsOperation::DoDeserialize(NYql::TObjectSettingsImpl::TFeaturesExtractor& features) { + auto value = features.Extract("SCHEME_NEED_ACTUALIZATION", false); + if (!value) { + TConclusionStatus::Fail("Incorrect value for SCHEME_NEED_ACTUALIZATION: cannot parse as boolean"); + } + SchemeNeedActualization = *value; + return TConclusionStatus::Success(); +} + +void TUpsertOptionsOperation::DoSerializeScheme(NKikimrSchemeOp::TAlterColumnTableSchema& schemaData) const { + schemaData.MutableOptions()->SetSchemeNeedActualization(SchemeNeedActualization); +} + +} diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_opt.h b/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_opt.h new file mode 100644 index 000000000000..e0fdbe002ebd --- /dev/null +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_opt.h @@ -0,0 +1,22 @@ +#include "abstract.h" +#include + +namespace NKikimr::NKqp { + +class TUpsertOptionsOperation : public ITableStoreOperation { +private: + static TString GetTypeName() { + return "UPSERT_OPTIONS"; + } + + static inline const auto Registrator = TFactory::TRegistrator(GetTypeName()); +private: + bool SchemeNeedActualization = false; +public: + TConclusionStatus DoDeserialize(NYql::TObjectSettingsImpl::TFeaturesExtractor& features) override; + + void DoSerializeScheme(NKikimrSchemeOp::TAlterColumnTableSchema& schemaData) const override; +}; + +} + diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_stat.cpp b/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_stat.cpp new file mode 100644 index 000000000000..9e8360dd5e35 --- /dev/null +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_stat.cpp @@ -0,0 +1,49 @@ +#include "upsert_stat.h" +#include +#include + +namespace NKikimr::NKqp { + +TConclusionStatus TUpsertStatOperation::DoDeserialize(NYql::TObjectSettingsImpl::TFeaturesExtractor& features) { + { + auto fValue = features.Extract("NAME"); + if (!fValue) { + return TConclusionStatus::Fail("can't find alter parameter NAME"); + } + Name = *fValue; + } + TString type; + { + auto fValue = features.Extract("TYPE"); + if (!fValue) { + return TConclusionStatus::Fail("can't find alter parameter TYPE"); + } + type = *fValue; + } + { + auto fValue = features.Extract("FEATURES"); + if (!fValue) { + return TConclusionStatus::Fail("can't find alter parameter FEATURES"); + } + if (!Constructor.Initialize(type)) { + return TConclusionStatus::Fail("can't initialize stat constructor object for type \"" + type + "\""); + } + NJson::TJsonValue jsonData; + if (!NJson::ReadJsonFastTree(*fValue, &jsonData)) { + return TConclusionStatus::Fail("incorrect json in request FEATURES parameter"); + } + auto result = Constructor->DeserializeFromJson(jsonData); + if (result.IsFail()) { + return result; + } + } + return TConclusionStatus::Success(); +} + +void TUpsertStatOperation::DoSerializeScheme(NKikimrSchemeOp::TAlterColumnTableSchema& schemaData) const { + auto* proto = schemaData.AddUpsertStatistics(); + proto->SetName(Name); + Constructor.SerializeToProto(*proto); +} + +} diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_stat.h b/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_stat.h new file mode 100644 index 000000000000..5d8abdffae8d --- /dev/null +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/upsert_stat.h @@ -0,0 +1,23 @@ +#include "abstract.h" +#include + +namespace NKikimr::NKqp { + +class TUpsertStatOperation : public ITableStoreOperation { +private: + static TString GetTypeName() { + return "UPSERT_STAT"; + } + + static inline const auto Registrator = TFactory::TRegistrator(GetTypeName()); +private: + TString Name; + NOlap::NStatistics::TConstructorContainer Constructor; +public: + TConclusionStatus DoDeserialize(NYql::TObjectSettingsImpl::TFeaturesExtractor& features) override; + + void DoSerializeScheme(NKikimrSchemeOp::TAlterColumnTableSchema& schemaData) const override; +}; + +} + diff --git a/ydb/core/kqp/gateway/behaviour/tablestore/operations/ya.make b/ydb/core/kqp/gateway/behaviour/tablestore/operations/ya.make index 08467f55d565..17d70abf65f2 100644 --- a/ydb/core/kqp/gateway/behaviour/tablestore/operations/ya.make +++ b/ydb/core/kqp/gateway/behaviour/tablestore/operations/ya.make @@ -7,11 +7,15 @@ SRCS( GLOBAL drop_column.cpp GLOBAL upsert_index.cpp GLOBAL drop_index.cpp + GLOBAL upsert_stat.cpp + GLOBAL drop_stat.cpp + GLOBAL upsert_opt.cpp ) PEERDIR( ydb/services/metadata/manager - ydb/core/formats/arrow/compression + ydb/core/formats/arrow/serializer + ydb/core/tx/columnshard/engines/scheme/statistics/abstract ydb/core/kqp/gateway/utils ydb/core/protos ) diff --git a/ydb/core/kqp/gateway/behaviour/view/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/gateway/behaviour/view/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..cf426bd688c1 --- /dev/null +++ b/ydb/core/kqp/gateway/behaviour/view/CMakeLists.darwin-arm64.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-view) +target_compile_options(gateway-behaviour-view PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(gateway-behaviour-view PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-base + kqp-gateway-actors + core-tx-tx_proxy + services-metadata-abstract + services-metadata-manager +) +target_sources(gateway-behaviour-view PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/view/manager.cpp +) + +add_global_library_for(gateway-behaviour-view.global gateway-behaviour-view) +target_compile_options(gateway-behaviour-view.global PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(gateway-behaviour-view.global PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-base + kqp-gateway-actors + core-tx-tx_proxy + services-metadata-abstract + services-metadata-manager +) +target_sources(gateway-behaviour-view.global PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/view/behaviour.cpp +) diff --git a/ydb/core/kqp/gateway/behaviour/view/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/gateway/behaviour/view/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..cf426bd688c1 --- /dev/null +++ b/ydb/core/kqp/gateway/behaviour/view/CMakeLists.darwin-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-view) +target_compile_options(gateway-behaviour-view PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(gateway-behaviour-view PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-base + kqp-gateway-actors + core-tx-tx_proxy + services-metadata-abstract + services-metadata-manager +) +target_sources(gateway-behaviour-view PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/view/manager.cpp +) + +add_global_library_for(gateway-behaviour-view.global gateway-behaviour-view) +target_compile_options(gateway-behaviour-view.global PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(gateway-behaviour-view.global PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-base + kqp-gateway-actors + core-tx-tx_proxy + services-metadata-abstract + services-metadata-manager +) +target_sources(gateway-behaviour-view.global PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/view/behaviour.cpp +) diff --git a/ydb/core/kqp/gateway/behaviour/view/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/gateway/behaviour/view/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..c929392ad69e --- /dev/null +++ b/ydb/core/kqp/gateway/behaviour/view/CMakeLists.linux-aarch64.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. + + + +add_library(gateway-behaviour-view) +target_compile_options(gateway-behaviour-view PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(gateway-behaviour-view PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-base + kqp-gateway-actors + core-tx-tx_proxy + services-metadata-abstract + services-metadata-manager +) +target_sources(gateway-behaviour-view PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/view/manager.cpp +) + +add_global_library_for(gateway-behaviour-view.global gateway-behaviour-view) +target_compile_options(gateway-behaviour-view.global PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(gateway-behaviour-view.global PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-base + kqp-gateway-actors + core-tx-tx_proxy + services-metadata-abstract + services-metadata-manager +) +target_sources(gateway-behaviour-view.global PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/view/behaviour.cpp +) diff --git a/ydb/core/kqp/gateway/behaviour/view/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/gateway/behaviour/view/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..c929392ad69e --- /dev/null +++ b/ydb/core/kqp/gateway/behaviour/view/CMakeLists.linux-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. + + + +add_library(gateway-behaviour-view) +target_compile_options(gateway-behaviour-view PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(gateway-behaviour-view PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-base + kqp-gateway-actors + core-tx-tx_proxy + services-metadata-abstract + services-metadata-manager +) +target_sources(gateway-behaviour-view PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/view/manager.cpp +) + +add_global_library_for(gateway-behaviour-view.global gateway-behaviour-view) +target_compile_options(gateway-behaviour-view.global PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(gateway-behaviour-view.global PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-base + kqp-gateway-actors + core-tx-tx_proxy + services-metadata-abstract + services-metadata-manager +) +target_sources(gateway-behaviour-view.global PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/view/behaviour.cpp +) diff --git a/ydb/core/kqp/gateway/behaviour/view/CMakeLists.txt b/ydb/core/kqp/gateway/behaviour/view/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/kqp/gateway/behaviour/view/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/kqp/gateway/behaviour/view/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/gateway/behaviour/view/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..cf426bd688c1 --- /dev/null +++ b/ydb/core/kqp/gateway/behaviour/view/CMakeLists.windows-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-view) +target_compile_options(gateway-behaviour-view PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(gateway-behaviour-view PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-base + kqp-gateway-actors + core-tx-tx_proxy + services-metadata-abstract + services-metadata-manager +) +target_sources(gateway-behaviour-view PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/view/manager.cpp +) + +add_global_library_for(gateway-behaviour-view.global gateway-behaviour-view) +target_compile_options(gateway-behaviour-view.global PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(gateway-behaviour-view.global PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-base + kqp-gateway-actors + core-tx-tx_proxy + services-metadata-abstract + services-metadata-manager +) +target_sources(gateway-behaviour-view.global PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/behaviour/view/behaviour.cpp +) diff --git a/ydb/core/kqp/gateway/kqp_gateway.h b/ydb/core/kqp/gateway/kqp_gateway.h index 21e16c3a710d..9171d2dbb71a 100644 --- a/ydb/core/kqp/gateway/kqp_gateway.h +++ b/ydb/core/kqp/gateway/kqp_gateway.h @@ -124,6 +124,8 @@ class IKqpGateway : public NYql::IKikimrGateway { : TxAlloc(txAlloc) {} + bool AllowTrailingResults = false; + NKikimrKqp::EQueryType QueryType = NKikimrKqp::EQueryType::QUERY_TYPE_UNDEFINED; NKikimr::TControlWrapper PerRequestDataSizeLimit; NKikimr::TControlWrapper MaxShardCount; TVector Transactions; @@ -150,6 +152,13 @@ class IKqpGateway : public NYql::IKikimrGateway { NWilson::TTraceId TraceId; NTopic::TTopicOperations TopicOperations; + + bool IsTrailingResultsAllowed() const { + return AllowTrailingResults && ( + QueryType == NKikimrKqp::EQueryType::QUERY_TYPE_SQL_GENERIC_QUERY || + QueryType == NKikimrKqp::EQueryType::QUERY_TYPE_SQL_GENERIC_CONCURRENT_QUERY + ); + } }; struct TExecPhysicalResult : public TGenericResult { diff --git a/ydb/core/kqp/gateway/kqp_ic_gateway.cpp b/ydb/core/kqp/gateway/kqp_ic_gateway.cpp index 72b65ebeacd9..763470536966 100644 --- a/ydb/core/kqp/gateway/kqp_ic_gateway.cpp +++ b/ydb/core/kqp/gateway/kqp_ic_gateway.cpp @@ -877,51 +877,12 @@ class TKikimrIcGateway : public IKqpGateway { return tablePromise.GetFuture(); } - TFuture CreateColumnTable(NYql::TKikimrTableMetadataPtr metadata, bool createDir) override { - using TRequest = TEvTxUserProxy::TEvProposeTransaction; - - try { - if (!CheckCluster(metadata->Cluster)) { - return InvalidCluster(metadata->Cluster); - } - - std::pair pathPair; - { - TString error; - if (!GetPathPair(metadata->Name, pathPair, error, createDir)) { - return MakeFuture(ResultFromError(error)); - } - } - - auto ev = MakeHolder(); - ev->Record.SetDatabaseName(Database); - if (UserToken) { - ev->Record.SetUserToken(UserToken->GetSerializedToken()); - } - auto& schemeTx = *ev->Record.MutableTransaction()->MutableModifyScheme(); - schemeTx.SetWorkingDir(pathPair.first); - - Ydb::StatusIds::StatusCode code; - TString error; - - schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpCreateColumnTable); - NKikimrSchemeOp::TColumnTableDescription* tableDesc = schemeTx.MutableCreateColumnTable(); - - tableDesc->SetName(pathPair.second); - FillColumnTableSchema(*tableDesc->MutableSchema(), *metadata); - - if (!FillCreateColumnTableDesc(metadata, *tableDesc, code, error)) { - IKqpGateway::TGenericResult errResult; - errResult.AddIssue(NYql::TIssue(error)); - errResult.SetStatus(NYql::YqlStatusFromYdbStatus(code)); - return MakeFuture(std::move(errResult)); - } - - return SendSchemeRequest(ev.Release()); - } - catch (yexception& e) { - return MakeFuture(ResultFromException(e)); - } + TFuture CreateColumnTable(NYql::TKikimrTableMetadataPtr metadata, + bool createDir, bool existingOk) override { + Y_UNUSED(metadata); + Y_UNUSED(createDir); + Y_UNUSED(existingOk); + return NotImplemented(); } TFuture AlterTable(const TString&, Ydb::Table::AlterTableRequest&&, const TMaybe&, ui64, NKikimrIndexBuilder::TIndexBuildSettings&&) override @@ -1035,150 +996,33 @@ class TKikimrIcGateway : public IKqpGateway { TFuture AlterColumnTable(const TString& cluster, const NYql::TAlterColumnTableSettings& settings) override { - using TRequest = TEvTxUserProxy::TEvProposeTransaction; - - try { - if (!CheckCluster(cluster)) { - return InvalidCluster(cluster); - } - - std::pair pathPair; - { - TString error; - if (!GetPathPair(settings.Table, pathPair, error, false)) { - return MakeFuture(ResultFromError(error)); - } - } - - auto ev = MakeHolder(); - ev->Record.SetDatabaseName(Database); - if (UserToken) { - ev->Record.SetUserToken(UserToken->GetSerializedToken()); - } - auto& schemeTx = *ev->Record.MutableTransaction()->MutableModifyScheme(); - schemeTx.SetWorkingDir(pathPair.first); - - schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpAlterColumnTable); - NKikimrSchemeOp::TAlterColumnTable* alter = schemeTx.MutableAlterColumnTable(); - alter->SetName(settings.Table); - - return SendSchemeRequest(ev.Release()); - } - catch (yexception& e) { - return MakeFuture(ResultFromException(e)); - } + Y_UNUSED(cluster); + Y_UNUSED(settings); + return NotImplemented(); } TFuture CreateTableStore(const TString& cluster, - const NYql::TCreateTableStoreSettings& settings) override { - using TRequest = TEvTxUserProxy::TEvProposeTransaction; - - try { - if (!CheckCluster(cluster)) { - return InvalidCluster(cluster); - } - - std::pair pathPair; - { - TString error; - if (!GetPathPair(settings.TableStore, pathPair, error, false)) { - return MakeFuture(ResultFromError(error)); - } - } - - auto ev = MakeHolder(); - ev->Record.SetDatabaseName(Database); - if (UserToken) { - ev->Record.SetUserToken(UserToken->GetSerializedToken()); - } - auto& schemeTx = *ev->Record.MutableTransaction()->MutableModifyScheme(); - schemeTx.SetWorkingDir(pathPair.first); - - schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpCreateColumnStore); - NKikimrSchemeOp::TColumnStoreDescription* storeDesc = schemeTx.MutableCreateColumnStore(); - storeDesc->SetName(pathPair.second); - storeDesc->SetColumnShardCount(settings.ShardsCount); - - NKikimrSchemeOp::TColumnTableSchemaPreset* schemaPreset = storeDesc->AddSchemaPresets(); - schemaPreset->SetName("default"); - FillColumnTableSchema(*schemaPreset->MutableSchema(), settings); - - return SendSchemeRequest(ev.Release()); - } - catch (yexception& e) { - return MakeFuture(ResultFromException(e)); - } + const NYql::TCreateTableStoreSettings& settings, + bool existingOk) override { + Y_UNUSED(cluster); + Y_UNUSED(settings); + Y_UNUSED(existingOk); + return NotImplemented(); } TFuture AlterTableStore(const TString& cluster, const NYql::TAlterTableStoreSettings& settings) override { - using TRequest = TEvTxUserProxy::TEvProposeTransaction; - - try { - if (!CheckCluster(cluster)) { - return InvalidCluster(cluster); - } - - std::pair pathPair; - { - TString error; - if (!GetPathPair(settings.TableStore, pathPair, error, false)) { - return MakeFuture(ResultFromError(error)); - } - } - - auto ev = MakeHolder(); - ev->Record.SetDatabaseName(Database); - if (UserToken) { - ev->Record.SetUserToken(UserToken->GetSerializedToken()); - } - auto& schemeTx = *ev->Record.MutableTransaction()->MutableModifyScheme(); - schemeTx.SetWorkingDir(pathPair.first); - - schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpAlterColumnStore); - NKikimrSchemeOp::TAlterColumnStore* alter = schemeTx.MutableAlterColumnStore(); - alter->SetName(pathPair.second); - - return SendSchemeRequest(ev.Release()); - } - catch (yexception& e) { - return MakeFuture(ResultFromException(e)); - } + Y_UNUSED(cluster); + Y_UNUSED(settings); + return NotImplemented(); } TFuture DropTableStore(const TString& cluster, - const NYql::TDropTableStoreSettings& settings) override { - using TRequest = TEvTxUserProxy::TEvProposeTransaction; - - try { - if (!CheckCluster(cluster)) { - return InvalidCluster(cluster); - } - - std::pair pathPair; - { - TString error; - if (!GetPathPair(settings.TableStore, pathPair, error, false)) { - return MakeFuture(ResultFromError(error)); - } - } - - auto ev = MakeHolder(); - ev->Record.SetDatabaseName(Database); - if (UserToken) { - ev->Record.SetUserToken(UserToken->GetSerializedToken()); - } - auto& schemeTx = *ev->Record.MutableTransaction()->MutableModifyScheme(); - schemeTx.SetWorkingDir(pathPair.first); - - schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpDropColumnStore); - NKikimrSchemeOp::TDrop* drop = schemeTx.MutableDrop(); - drop->SetName(pathPair.second); - return SendSchemeRequest(ev.Release()); - } - catch (yexception& e) { - return MakeFuture(ResultFromException(e)); - } + const NYql::TDropTableStoreSettings& settings, bool missingOk) override { + Y_UNUSED(cluster); + Y_UNUSED(settings); + Y_UNUSED(missingOk); + return NotImplemented(); } TFuture CreateExternalTable(const TString& cluster, @@ -2328,27 +2172,6 @@ class TKikimrIcGateway : public IKqpGateway { return result; } - template - static void FillColumnTableSchema(NKikimrSchemeOp::TColumnTableSchema& schema, const T& metadata) - { - Y_ENSURE(metadata.ColumnOrder.size() == metadata.Columns.size()); - for (const auto& name : metadata.ColumnOrder) { - auto columnIt = metadata.Columns.find(name); - Y_ENSURE(columnIt != metadata.Columns.end()); - - TOlapColumnDescription& columnDesc = *schema.AddColumns(); - columnDesc.SetName(columnIt->second.Name); - columnDesc.SetType(columnIt->second.Type); - columnDesc.SetNotNull(columnIt->second.NotNull); - } - - for (const auto& keyColumn : metadata.KeyColumnNames) { - schema.AddKeyColumnNames(keyColumn); - } - - schema.SetEngine(NKikimrSchemeOp::EColumnTableEngine::COLUMN_ENGINE_REPLACING_TIMESERIES); - } - static void FillParameters(TQueryData::TPtr params, ::google::protobuf::Map, Ydb::TypedValue>* output) { if (!params) { return; @@ -2358,59 +2181,6 @@ class TKikimrIcGateway : public IKqpGateway { output->insert(paramsMap.begin(), paramsMap.end()); } - static bool FillCreateColumnTableDesc(NYql::TKikimrTableMetadataPtr metadata, - NKikimrSchemeOp::TColumnTableDescription& tableDesc, Ydb::StatusIds::StatusCode& code, TString& error) - { - if (metadata->Columns.empty()) { - tableDesc.SetSchemaPresetName("default"); - } - - auto& hashSharding = *tableDesc.MutableSharding()->MutableHashSharding(); - - for (const TString& column : metadata->TableSettings.PartitionBy) { - if (!metadata->Columns.count(column)) { - code = Ydb::StatusIds::BAD_REQUEST; - error = TStringBuilder() << "Unknown column '" << column << "' in partition by key"; - return false; - } - - hashSharding.AddColumns(column); - } - - if (metadata->TableSettings.PartitionByHashFunction) { - if (to_lower(metadata->TableSettings.PartitionByHashFunction.GetRef()) == "cloud_logs") { - hashSharding.SetFunction(NKikimrSchemeOp::TColumnTableSharding::THashSharding::HASH_FUNCTION_CLOUD_LOGS); - } else if (to_lower(metadata->TableSettings.PartitionByHashFunction.GetRef()) == "consistency_hash_64") { - hashSharding.SetFunction(NKikimrSchemeOp::TColumnTableSharding::THashSharding::HASH_FUNCTION_CONSISTENCY_64); - } else if (to_lower(metadata->TableSettings.PartitionByHashFunction.GetRef()) == "modulo_n") { - hashSharding.SetFunction(NKikimrSchemeOp::TColumnTableSharding::THashSharding::HASH_FUNCTION_MODULO_N); - } else { - code = Ydb::StatusIds::BAD_REQUEST; - error = TStringBuilder() << "Unknown hash function '" - << metadata->TableSettings.PartitionByHashFunction.GetRef() << "' to partition by"; - return false; - } - } else { - hashSharding.SetFunction(NKikimrSchemeOp::TColumnTableSharding::THashSharding::HASH_FUNCTION_CONSISTENCY_64); - } - - if (metadata->TableSettings.MinPartitions) { - tableDesc.SetColumnShardCount(*metadata->TableSettings.MinPartitions); - } - - if (metadata->TableSettings.TtlSettings.Defined() && metadata->TableSettings.TtlSettings.IsSet()) { - const auto& inputSettings = metadata->TableSettings.TtlSettings.GetValueSet(); - auto& resultSettings = *tableDesc.MutableTtlSettings(); - resultSettings.MutableEnabled()->SetColumnName(inputSettings.ColumnName); - resultSettings.MutableEnabled()->SetExpireAfterSeconds(inputSettings.ExpireAfter.Seconds()); - if (inputSettings.ColumnUnit) { - resultSettings.MutableEnabled()->SetColumnUnit(static_cast(*inputSettings.ColumnUnit)); - } - } - - return true; - } - private: TString Cluster; const NKikimrKqp::EQueryType QueryType; diff --git a/ydb/core/kqp/gateway/kqp_metadata_loader.cpp b/ydb/core/kqp/gateway/kqp_metadata_loader.cpp index 58a942d41246..cf0c76f3546d 100644 --- a/ydb/core/kqp/gateway/kqp_metadata_loader.cpp +++ b/ydb/core/kqp/gateway/kqp_metadata_loader.cpp @@ -192,7 +192,8 @@ TTableMetadataResult GetTableMetadataResult(const NSchemeCache::TSchemeCacheNavi columnDesc.Name, columnDesc.Id, typeName, notNull, columnDesc.PType, columnDesc.PTypeMod, columnDesc.DefaultFromSequence, defaultKind, - columnDesc.DefaultFromLiteral + columnDesc.DefaultFromLiteral, + columnDesc.IsBuildInProgress ) ); if (columnDesc.KeyOrder >= 0) { diff --git a/ydb/core/kqp/gateway/utils/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/gateway/utils/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..fed6e098e916 --- /dev/null +++ b/ydb/core/kqp/gateway/utils/CMakeLists.darwin-arm64.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(kqp-gateway-utils) +target_compile_options(kqp-gateway-utils PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(kqp-gateway-utils PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-base + core-kqp-provider + ydb-core-protos +) +target_sources(kqp-gateway-utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/utils/scheme_helpers.cpp +) diff --git a/ydb/core/kqp/gateway/utils/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/gateway/utils/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..fed6e098e916 --- /dev/null +++ b/ydb/core/kqp/gateway/utils/CMakeLists.darwin-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(kqp-gateway-utils) +target_compile_options(kqp-gateway-utils PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(kqp-gateway-utils PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-base + core-kqp-provider + ydb-core-protos +) +target_sources(kqp-gateway-utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/utils/scheme_helpers.cpp +) diff --git a/ydb/core/kqp/gateway/utils/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/gateway/utils/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..c6bf234fa786 --- /dev/null +++ b/ydb/core/kqp/gateway/utils/CMakeLists.linux-aarch64.txt @@ -0,0 +1,24 @@ + +# 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(kqp-gateway-utils) +target_compile_options(kqp-gateway-utils PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(kqp-gateway-utils PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-base + core-kqp-provider + ydb-core-protos +) +target_sources(kqp-gateway-utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/utils/scheme_helpers.cpp +) diff --git a/ydb/core/kqp/gateway/utils/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/gateway/utils/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..c6bf234fa786 --- /dev/null +++ b/ydb/core/kqp/gateway/utils/CMakeLists.linux-x86_64.txt @@ -0,0 +1,24 @@ + +# 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(kqp-gateway-utils) +target_compile_options(kqp-gateway-utils PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(kqp-gateway-utils PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + ydb-core-base + core-kqp-provider + ydb-core-protos +) +target_sources(kqp-gateway-utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/utils/scheme_helpers.cpp +) diff --git a/ydb/core/kqp/gateway/utils/CMakeLists.txt b/ydb/core/kqp/gateway/utils/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/kqp/gateway/utils/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/kqp/gateway/utils/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/gateway/utils/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..fed6e098e916 --- /dev/null +++ b/ydb/core/kqp/gateway/utils/CMakeLists.windows-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(kqp-gateway-utils) +target_compile_options(kqp-gateway-utils PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(kqp-gateway-utils PUBLIC + contrib-libs-cxxsupp + yutil + ydb-core-base + core-kqp-provider + ydb-core-protos +) +target_sources(kqp-gateway-utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/gateway/utils/scheme_helpers.cpp +) diff --git a/ydb/core/kqp/host/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/host/CMakeLists.darwin-arm64.txt index 905cc9c5fe60..6e6579d70b5b 100644 --- a/ydb/core/kqp/host/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/host/CMakeLists.darwin-arm64.txt @@ -17,11 +17,12 @@ target_link_libraries(core-kqp-host PUBLIC ydb-core-base core-kqp-common core-kqp-federated_query + kqp-gateway-utils core-kqp-opt core-kqp-provider tx-long_tx_service-public yql-core-services - minikql-invoke_builtins-llvm + yql-minikql-invoke_builtins library-yql-sql library-yql-core providers-common-codec diff --git a/ydb/core/kqp/host/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/host/CMakeLists.darwin-x86_64.txt index 905cc9c5fe60..6e6579d70b5b 100644 --- a/ydb/core/kqp/host/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/host/CMakeLists.darwin-x86_64.txt @@ -17,11 +17,12 @@ target_link_libraries(core-kqp-host PUBLIC ydb-core-base core-kqp-common core-kqp-federated_query + kqp-gateway-utils core-kqp-opt core-kqp-provider tx-long_tx_service-public yql-core-services - minikql-invoke_builtins-llvm + yql-minikql-invoke_builtins library-yql-sql library-yql-core providers-common-codec diff --git a/ydb/core/kqp/host/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/host/CMakeLists.linux-aarch64.txt index 42faf8147fd3..dbfa8f80dd38 100644 --- a/ydb/core/kqp/host/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/host/CMakeLists.linux-aarch64.txt @@ -18,11 +18,12 @@ target_link_libraries(core-kqp-host PUBLIC ydb-core-base core-kqp-common core-kqp-federated_query + kqp-gateway-utils core-kqp-opt core-kqp-provider tx-long_tx_service-public yql-core-services - minikql-invoke_builtins-llvm + yql-minikql-invoke_builtins library-yql-sql library-yql-core providers-common-codec diff --git a/ydb/core/kqp/host/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/host/CMakeLists.linux-x86_64.txt index 42faf8147fd3..dbfa8f80dd38 100644 --- a/ydb/core/kqp/host/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/host/CMakeLists.linux-x86_64.txt @@ -18,11 +18,12 @@ target_link_libraries(core-kqp-host PUBLIC ydb-core-base core-kqp-common core-kqp-federated_query + kqp-gateway-utils core-kqp-opt core-kqp-provider tx-long_tx_service-public yql-core-services - minikql-invoke_builtins-llvm + yql-minikql-invoke_builtins library-yql-sql library-yql-core providers-common-codec diff --git a/ydb/core/kqp/host/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/host/CMakeLists.windows-x86_64.txt index 905cc9c5fe60..6e6579d70b5b 100644 --- a/ydb/core/kqp/host/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/host/CMakeLists.windows-x86_64.txt @@ -17,11 +17,12 @@ target_link_libraries(core-kqp-host PUBLIC ydb-core-base core-kqp-common core-kqp-federated_query + kqp-gateway-utils core-kqp-opt core-kqp-provider tx-long_tx_service-public yql-core-services - minikql-invoke_builtins-llvm + yql-minikql-invoke_builtins library-yql-sql library-yql-core providers-common-codec diff --git a/ydb/core/kqp/host/kqp_gateway_proxy.cpp b/ydb/core/kqp/host/kqp_gateway_proxy.cpp index c153f18b27a1..c545e7b62e23 100644 --- a/ydb/core/kqp/host/kqp_gateway_proxy.cpp +++ b/ydb/core/kqp/host/kqp_gateway_proxy.cpp @@ -354,6 +354,80 @@ bool FillCreateTableDesc(NYql::TKikimrTableMetadataPtr metadata, NKikimrSchemeOp return true; } +template +void FillColumnTableSchema(NKikimrSchemeOp::TColumnTableSchema& schema, const T& metadata) +{ + Y_ENSURE(metadata.ColumnOrder.size() == metadata.Columns.size()); + for (const auto& name : metadata.ColumnOrder) { + auto columnIt = metadata.Columns.find(name); + Y_ENSURE(columnIt != metadata.Columns.end()); + + NKikimrSchemeOp::TOlapColumnDescription& columnDesc = *schema.AddColumns(); + columnDesc.SetName(columnIt->second.Name); + columnDesc.SetType(columnIt->second.Type); + columnDesc.SetNotNull(columnIt->second.NotNull); + } + + for (const auto& keyColumn : metadata.KeyColumnNames) { + schema.AddKeyColumnNames(keyColumn); + } + + schema.SetEngine(NKikimrSchemeOp::EColumnTableEngine::COLUMN_ENGINE_REPLACING_TIMESERIES); +} + +bool FillCreateColumnTableDesc(NYql::TKikimrTableMetadataPtr metadata, + NKikimrSchemeOp::TColumnTableDescription& tableDesc, Ydb::StatusIds::StatusCode& code, TString& error) +{ + if (metadata->Columns.empty()) { + tableDesc.SetSchemaPresetName("default"); + } + + auto& hashSharding = *tableDesc.MutableSharding()->MutableHashSharding(); + + for (const TString& column : metadata->TableSettings.PartitionBy) { + if (!metadata->Columns.count(column)) { + code = Ydb::StatusIds::BAD_REQUEST; + error = TStringBuilder() << "Unknown column '" << column << "' in partition by key"; + return false; + } + + hashSharding.AddColumns(column); + } + + if (metadata->TableSettings.PartitionByHashFunction) { + if (to_lower(metadata->TableSettings.PartitionByHashFunction.GetRef()) == "cloud_logs") { + hashSharding.SetFunction(NKikimrSchemeOp::TColumnTableSharding::THashSharding::HASH_FUNCTION_CLOUD_LOGS); + } else if (to_lower(metadata->TableSettings.PartitionByHashFunction.GetRef()) == "consistency_hash_64") { + hashSharding.SetFunction(NKikimrSchemeOp::TColumnTableSharding::THashSharding::HASH_FUNCTION_CONSISTENCY_64); + } else if (to_lower(metadata->TableSettings.PartitionByHashFunction.GetRef()) == "modulo_n") { + hashSharding.SetFunction(NKikimrSchemeOp::TColumnTableSharding::THashSharding::HASH_FUNCTION_MODULO_N); + } else { + code = Ydb::StatusIds::BAD_REQUEST; + error = TStringBuilder() << "Unknown hash function '" + << metadata->TableSettings.PartitionByHashFunction.GetRef() << "' to partition by"; + return false; + } + } else { + hashSharding.SetFunction(NKikimrSchemeOp::TColumnTableSharding::THashSharding::HASH_FUNCTION_CONSISTENCY_64); + } + + if (metadata->TableSettings.MinPartitions) { + tableDesc.SetColumnShardCount(*metadata->TableSettings.MinPartitions); + } + + if (metadata->TableSettings.TtlSettings.Defined() && metadata->TableSettings.TtlSettings.IsSet()) { + const auto& inputSettings = metadata->TableSettings.TtlSettings.GetValueSet(); + auto& resultSettings = *tableDesc.MutableTtlSettings(); + resultSettings.MutableEnabled()->SetColumnName(inputSettings.ColumnName); + resultSettings.MutableEnabled()->SetExpireAfterSeconds(inputSettings.ExpireAfter.Seconds()); + if (inputSettings.ColumnUnit) { + resultSettings.MutableEnabled()->SetColumnUnit(static_cast(*inputSettings.ColumnUnit)); + } + } + + return true; +} + template static TFuture PrepareUnsupported(const char* name) { TResult result; @@ -1215,32 +1289,241 @@ class TKqpGatewayProxy : public IKikimrGateway { } } - TFuture CreateColumnTable(TKikimrTableMetadataPtr metadata, bool createDir) override { - FORWARD_ENSURE_NO_PREPARE(CreateColumnTable, metadata, createDir); + TFuture CreateColumnTable(TKikimrTableMetadataPtr metadata, + bool createDir, bool existingOk) override { + CHECK_PREPARED_DDL(CreateColumnTable); + + try { + const auto& cluster = metadata->Cluster; + + if (cluster != SessionCtx->GetCluster()) { + return MakeFuture(ResultFromError("Invalid cluster: " + cluster)); + } + + std::pair pathPair; + { + TString error; + if (!NSchemeHelpers::SplitTablePath(metadata->Name, GetDatabase(), pathPair, error, createDir)) { + return MakeFuture(ResultFromError(error)); + } + } + + NKikimrSchemeOp::TModifyScheme schemeTx; + schemeTx.SetWorkingDir(pathPair.first); + + Ydb::StatusIds::StatusCode code; + TString error; + + schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpCreateColumnTable); + schemeTx.SetFailedOnAlreadyExists(!existingOk); + + NKikimrSchemeOp::TColumnTableDescription* tableDesc = schemeTx.MutableCreateColumnTable(); + + tableDesc->SetName(pathPair.second); + FillColumnTableSchema(*tableDesc->MutableSchema(), *metadata); + + if (!FillCreateColumnTableDesc(metadata, *tableDesc, code, error)) { + IKqpGateway::TGenericResult errResult; + errResult.AddIssue(NYql::TIssue(error)); + errResult.SetStatus(NYql::YqlStatusFromYdbStatus(code)); + return MakeFuture(std::move(errResult)); + } + + if (IsPrepare()) { + auto& phyQuery = *SessionCtx->Query().PreparingQuery->MutablePhysicalQuery(); + auto& phyTx = *phyQuery.AddTransactions(); + phyTx.SetType(NKqpProto::TKqpPhyTx::TYPE_SCHEME); + phyTx.MutableSchemeOperation()->MutableCreateTable()->Swap(&schemeTx); + + TGenericResult result; + result.SetSuccess(); + return MakeFuture(result); + } else { + return Gateway->ModifyScheme(std::move(schemeTx)); + } + } + catch (yexception& e) { + return MakeFuture(ResultFromException(e)); + } } TFuture AlterColumnTable(const TString& cluster, const TAlterColumnTableSettings& settings) override { - FORWARD_ENSURE_NO_PREPARE(AlterColumnTable, cluster, settings); + CHECK_PREPARED_DDL(AlterColumnTable); + + try { + if (cluster != SessionCtx->GetCluster()) { + return MakeFuture(ResultFromError("Invalid cluster: " + cluster)); + } + + std::pair pathPair; + { + TString error; + if (!NSchemeHelpers::SplitTablePath(settings.Table, GetDatabase(), pathPair, error, false)) { + return MakeFuture(ResultFromError(error)); + } + } + + NKikimrSchemeOp::TModifyScheme schemeTx; + schemeTx.SetWorkingDir(pathPair.first); + + schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpAlterColumnTable); + NKikimrSchemeOp::TAlterColumnTable* alter = schemeTx.MutableAlterColumnTable(); + alter->SetName(settings.Table); + + if (IsPrepare()) { + auto& phyQuery = *SessionCtx->Query().PreparingQuery->MutablePhysicalQuery(); + auto& phyTx = *phyQuery.AddTransactions(); + phyTx.SetType(NKqpProto::TKqpPhyTx::TYPE_SCHEME); + phyTx.MutableSchemeOperation()->MutableAlterColumnTable()->Swap(&schemeTx); + + TGenericResult result; + result.SetSuccess(); + return MakeFuture(result); + } else { + return Gateway->ModifyScheme(std::move(schemeTx)); + } + } + catch (yexception& e) { + return MakeFuture(ResultFromException(e)); + } } TFuture CreateTableStore(const TString& cluster, - const TCreateTableStoreSettings& settings) override + const TCreateTableStoreSettings& settings, bool existingOk) override { - FORWARD_ENSURE_NO_PREPARE(CreateTableStore, cluster, settings); + CHECK_PREPARED_DDL(CreateTableStore); + + try { + if (cluster != SessionCtx->GetCluster()) { + return MakeFuture(ResultFromError("Invalid cluster: " + cluster)); + } + + std::pair pathPair; + { + TString error; + if (!NSchemeHelpers::SplitTablePath(settings.TableStore, GetDatabase(), pathPair, error, false)) { + return MakeFuture(ResultFromError(error)); + } + } + + NKikimrSchemeOp::TModifyScheme schemeTx; + schemeTx.SetWorkingDir(pathPair.first); + + schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpCreateColumnStore); + schemeTx.SetFailedOnAlreadyExists(!existingOk); + + NKikimrSchemeOp::TColumnStoreDescription* storeDesc = schemeTx.MutableCreateColumnStore(); + storeDesc->SetName(pathPair.second); + storeDesc->SetColumnShardCount(settings.ShardsCount); + + NKikimrSchemeOp::TColumnTableSchemaPreset* schemaPreset = storeDesc->AddSchemaPresets(); + schemaPreset->SetName("default"); + FillColumnTableSchema(*schemaPreset->MutableSchema(), settings); + + if (IsPrepare()) { + auto& phyQuery = *SessionCtx->Query().PreparingQuery->MutablePhysicalQuery(); + auto& phyTx = *phyQuery.AddTransactions(); + phyTx.SetType(NKqpProto::TKqpPhyTx::TYPE_SCHEME); + phyTx.MutableSchemeOperation()->MutableCreateTableStore()->Swap(&schemeTx); + + TGenericResult result; + result.SetSuccess(); + return MakeFuture(result); + } else { + return Gateway->ModifyScheme(std::move(schemeTx)); + } + } + catch (yexception& e) { + return MakeFuture(ResultFromException(e)); + } } TFuture AlterTableStore(const TString& cluster, const TAlterTableStoreSettings& settings) override { - FORWARD_ENSURE_NO_PREPARE(AlterTableStore, cluster, settings); + CHECK_PREPARED_DDL(AlterTableStore); + + try { + if (cluster != SessionCtx->GetCluster()) { + return MakeFuture(ResultFromError("Invalid cluster: " + cluster)); + } + + std::pair pathPair; + { + TString error; + if (!NSchemeHelpers::SplitTablePath(settings.TableStore, GetDatabase(), pathPair, error, false)) { + return MakeFuture(ResultFromError(error)); + } + } + + NKikimrSchemeOp::TModifyScheme schemeTx; + schemeTx.SetWorkingDir(pathPair.first); + + schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpAlterColumnStore); + NKikimrSchemeOp::TAlterColumnStore* alter = schemeTx.MutableAlterColumnStore(); + alter->SetName(pathPair.second); + + if (IsPrepare()) { + auto& phyQuery = *SessionCtx->Query().PreparingQuery->MutablePhysicalQuery(); + auto& phyTx = *phyQuery.AddTransactions(); + phyTx.SetType(NKqpProto::TKqpPhyTx::TYPE_SCHEME); + phyTx.MutableSchemeOperation()->MutableAlterTableStore()->Swap(&schemeTx); + + TGenericResult result; + result.SetSuccess(); + return MakeFuture(result); + } else { + return Gateway->ModifyScheme(std::move(schemeTx)); + } + } + catch (yexception& e) { + return MakeFuture(ResultFromException(e)); + } } TFuture DropTableStore(const TString& cluster, - const TDropTableStoreSettings& settings) override + const TDropTableStoreSettings& settings, bool missingOk) override { - FORWARD_ENSURE_NO_PREPARE(DropTableStore, cluster, settings); + CHECK_PREPARED_DDL(DropTableStore); + + try { + if (cluster != SessionCtx->GetCluster()) { + return MakeFuture(ResultFromError("Invalid cluster: " + cluster)); + } + + std::pair pathPair; + { + TString error; + if (!NSchemeHelpers::SplitTablePath(settings.TableStore, GetDatabase(), pathPair, error, false)) { + return MakeFuture(ResultFromError(error)); + } + } + + NKikimrSchemeOp::TModifyScheme schemeTx; + schemeTx.SetWorkingDir(pathPair.first); + schemeTx.SetSuccessOnNotExist(missingOk); + schemeTx.SetOperationType(NKikimrSchemeOp::ESchemeOpDropColumnStore); + NKikimrSchemeOp::TDrop* drop = schemeTx.MutableDrop(); + drop->SetName(pathPair.second); + + if (IsPrepare()) { + auto& phyQuery = *SessionCtx->Query().PreparingQuery->MutablePhysicalQuery(); + auto& phyTx = *phyQuery.AddTransactions(); + phyTx.SetType(NKqpProto::TKqpPhyTx::TYPE_SCHEME); + phyTx.MutableSchemeOperation()->MutableDropTableStore()->Swap(&schemeTx); + + TGenericResult result; + result.SetSuccess(); + return MakeFuture(result); + } else { + return Gateway->ModifyScheme(std::move(schemeTx)); + } + } + catch (yexception& e) { + return MakeFuture(ResultFromException(e)); + } } TFuture CreateExternalTable(const TString& cluster, const TCreateExternalTableSettings& settings, diff --git a/ydb/core/kqp/host/kqp_type_ann.cpp b/ydb/core/kqp/host/kqp_type_ann.cpp index 40f2aef9b065..bed9f6024340 100644 --- a/ydb/core/kqp/host/kqp_type_ann.cpp +++ b/ydb/core/kqp/host/kqp_type_ann.cpp @@ -340,7 +340,7 @@ TStatus AnnotateReadTableRanges(const TExprNode::TPtr& node, TExprContext& ctx, size_t argCount = (olapTable || index) ? 6 : 5; // prefix - if (!EnsureMinArgsCount(*node, argCount, ctx) && EnsureMaxArgsCount(*node, argCount + 1, ctx)) { + if (!EnsureMinArgsCount(*node, argCount, ctx) && EnsureMaxArgsCount(*node, argCount + 3, ctx)) { return TStatus::Error; } @@ -375,8 +375,34 @@ TStatus AnnotateReadTableRanges(const TExprNode::TPtr& node, TExprContext& ctx, } if (TKqlReadTableRanges::Match(node.Get())) { + if (node->ChildrenSize() > TKqlReadTableRanges::idx_PredicateExpr) { + auto& lambda = node->ChildRef(TKqlReadTableRanges::idx_PredicateExpr); + auto rowType = GetReadTableRowType(ctx, tablesData, cluster, table.first, node->Pos(), withSystemColumns); + if (!rowType) { + return TStatus::Error; + } + if (!UpdateLambdaAllArgumentsTypes(lambda, {rowType}, ctx)) { + return IGraphTransformer::TStatus::Error; + } + if (!lambda->GetTypeAnn()) { + return IGraphTransformer::TStatus::Repeat; + } + } node->SetTypeAnn(ctx.MakeType(rowType)); } else if (TKqlReadTableIndexRanges::Match(node.Get())) { + if (node->ChildrenSize() > TKqlReadTableIndexRanges::idx_PredicateExpr) { + auto& lambda = node->ChildRef(TKqlReadTableIndexRanges::idx_PredicateExpr); + auto rowType = GetReadTableRowType(ctx, tablesData, cluster, table.first, node->Pos(), withSystemColumns); + if (!rowType) { + return TStatus::Error; + } + if (!UpdateLambdaAllArgumentsTypes(lambda, {rowType}, ctx)) { + return IGraphTransformer::TStatus::Error; + } + if (!lambda->GetTypeAnn()) { + return IGraphTransformer::TStatus::Repeat; + } + } node->SetTypeAnn(ctx.MakeType(rowType)); } else if (TKqpReadTableRanges::Match(node.Get())) { node->SetTypeAnn(ctx.MakeType(rowType)); diff --git a/ydb/core/kqp/node_service/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/node_service/ut/CMakeLists.darwin-arm64.txt index 4416c4753556..bc9290e273a1 100644 --- a/ydb/core/kqp/node_service/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/node_service/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-kqp-node_service-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-node_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/node_service/kqp_node_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/node_service/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/node_service/ut/CMakeLists.darwin-x86_64.txt index 06af17ac2e83..d8cef8599eae 100644 --- a/ydb/core/kqp/node_service/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/node_service/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kqp-node_service-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-node_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/node_service/kqp_node_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/node_service/ut/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/node_service/ut/CMakeLists.linux-aarch64.txt index 57cad4a781db..72080d9efb7b 100644 --- a/ydb/core/kqp/node_service/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/node_service/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-kqp-node_service-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-node_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/node_service/kqp_node_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/node_service/ut/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/node_service/ut/CMakeLists.linux-x86_64.txt index 8fa49b95d483..a2cee4bf6827 100644 --- a/ydb/core/kqp/node_service/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/node_service/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kqp-node_service-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-node_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/node_service/kqp_node_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/node_service/ut/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/node_service/ut/CMakeLists.windows-x86_64.txt index 5ef69b589726..b7359e8b47c3 100644 --- a/ydb/core/kqp/node_service/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/node_service/ut/CMakeLists.windows-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/opt/kqp_opt_kql.cpp b/ydb/core/kqp/opt/kqp_opt_kql.cpp index 90db2d10ccc9..9f69554e2b2c 100644 --- a/ydb/core/kqp/opt/kqp_opt_kql.cpp +++ b/ydb/core/kqp/opt/kqp_opt_kql.cpp @@ -268,7 +268,7 @@ std::pair BuildWriteInput(const TKiWriteTable& write, co } if (isWriteReplace) { - std::tie(input, inputCols) = CreateRowsToReplace(input, inputColumns, table, write.Pos(), ctx); + std::tie(input, inputCols) = CreateRowsToReplace(input, inputCols, table, write.Pos(), ctx); } auto baseInput = Build(ctx, pos) @@ -445,7 +445,7 @@ TExprBase BuildRowsToDelete(const TKikimrTableDescription& tableData, bool withS const TPositionHandle pos, TExprContext& ctx, const TIntrusivePtr& kqpCtx) { const auto tableMeta = BuildTableMeta(tableData, pos, ctx); - const auto tableColumns = BuildColumnsList(tableData, pos, ctx, withSystemColumns); + const auto tableColumns = BuildColumnsList(tableData, pos, ctx, withSystemColumns, true /*ignoreWriteOnlyColumns*/); const auto allRows = BuildReadTable(tableColumns, pos, tableData, false, ctx, kqpCtx); @@ -517,7 +517,7 @@ TExprBase BuildDeleteTableWithIndex(const TKiDeleteTable& del, const TKikimrTabl TExprBase BuildRowsToUpdate(const TKikimrTableDescription& tableData, bool withSystemColumns, const TCoLambda& filter, const TPositionHandle pos, TExprContext& ctx, const TIntrusivePtr& kqpCtx) { - auto kqlReadTable = BuildReadTable(BuildColumnsList(tableData, pos, ctx, withSystemColumns), pos, tableData, false, ctx, kqpCtx); + auto kqlReadTable = BuildReadTable(BuildColumnsList(tableData, pos, ctx, withSystemColumns, true /*ignoreWriteOnlyColumns*/), pos, tableData, false, ctx, kqpCtx); return Build(ctx, pos) .Input(kqlReadTable) diff --git a/ydb/core/kqp/opt/kqp_query_plan.cpp b/ydb/core/kqp/opt/kqp_query_plan.cpp index 86a1dfa0b1a6..c88a4e5ff50f 100644 --- a/ydb/core/kqp/opt/kqp_query_plan.cpp +++ b/ydb/core/kqp/opt/kqp_query_plan.cpp @@ -560,6 +560,12 @@ class TxPlanSerializer { } } + if (auto literal = key.Maybe()) { + TStringStream out; + NUuid::UuidBytesToString(literal.Cast().Literal().Value().Data(), out); + return out.Str(); + } + if (auto literal = key.Maybe()) { return literal.Cast().Literal().StringValue(); } diff --git a/ydb/core/kqp/opt/logical/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/opt/logical/CMakeLists.darwin-arm64.txt index 987f3e52d211..1bc54d542c2e 100644 --- a/ydb/core/kqp/opt/logical/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/opt/logical/CMakeLists.darwin-arm64.txt @@ -31,4 +31,5 @@ target_sources(kqp-opt-logical PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin_compact.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_cbo.cpp ) diff --git a/ydb/core/kqp/opt/logical/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/opt/logical/CMakeLists.darwin-x86_64.txt index 987f3e52d211..1bc54d542c2e 100644 --- a/ydb/core/kqp/opt/logical/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/opt/logical/CMakeLists.darwin-x86_64.txt @@ -31,4 +31,5 @@ target_sources(kqp-opt-logical PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin_compact.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_cbo.cpp ) diff --git a/ydb/core/kqp/opt/logical/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/opt/logical/CMakeLists.linux-aarch64.txt index 37ceb4a01ef8..de4e198107af 100644 --- a/ydb/core/kqp/opt/logical/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/opt/logical/CMakeLists.linux-aarch64.txt @@ -32,4 +32,5 @@ target_sources(kqp-opt-logical PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin_compact.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_cbo.cpp ) diff --git a/ydb/core/kqp/opt/logical/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/opt/logical/CMakeLists.linux-x86_64.txt index 37ceb4a01ef8..de4e198107af 100644 --- a/ydb/core/kqp/opt/logical/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/opt/logical/CMakeLists.linux-x86_64.txt @@ -32,4 +32,5 @@ target_sources(kqp-opt-logical PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin_compact.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_cbo.cpp ) diff --git a/ydb/core/kqp/opt/logical/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/opt/logical/CMakeLists.windows-x86_64.txt index 987f3e52d211..1bc54d542c2e 100644 --- a/ydb/core/kqp/opt/logical/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/opt/logical/CMakeLists.windows-x86_64.txt @@ -31,4 +31,5 @@ target_sources(kqp-opt-logical PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin_compact.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_log.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/logical/kqp_opt_cbo.cpp ) diff --git a/ydb/core/kqp/opt/logical/kqp_opt_cbo.cpp b/ydb/core/kqp/opt/logical/kqp_opt_cbo.cpp index fed03ea383db..8c30e3db9777 100644 --- a/ydb/core/kqp/opt/logical/kqp_opt_cbo.cpp +++ b/ydb/core/kqp/opt/logical/kqp_opt_cbo.cpp @@ -14,6 +14,25 @@ using namespace NYql::NNodes; namespace { +TMaybeNode GetRightTableKeyPrefix(const TKqlKeyRange& range) { + if (!range.From().Maybe() || !range.To().Maybe()) { + return {}; + } + auto rangeFrom = range.From().Cast(); + auto rangeTo = range.To().Cast(); + + if (rangeFrom.ArgCount() != rangeTo.ArgCount()) { + return {}; + } + for (ui32 i = 0; i < rangeFrom.ArgCount(); ++i) { + if (rangeFrom.Arg(i).Raw() != rangeTo.Arg(i).Raw()) { + return {}; + } + } + + return rangeFrom; +} + /** * KQP specific rule to check if a LookupJoin is applicable */ @@ -163,4 +182,4 @@ double TKqpProviderContext::ComputeJoinCost(const TOptimizerStatistics& leftStat } -} \ No newline at end of file +} diff --git a/ydb/core/kqp/opt/logical/kqp_opt_log.cpp b/ydb/core/kqp/opt/logical/kqp_opt_log.cpp index 5119d7769d20..e53cc909468c 100644 --- a/ydb/core/kqp/opt/logical/kqp_opt_log.cpp +++ b/ydb/core/kqp/opt/logical/kqp_opt_log.cpp @@ -86,20 +86,20 @@ class TKqpLogicalOptTransformer : public TOptimizeTransformerBase { return output; } - TMaybeNode PushExtractedPredicateToReadTable(TExprBase node, TExprContext& ctx) { + TMaybeNode PushExtractedPredicateToReadTable(TExprBase node, TExprContext& ctx, const TGetParents& getParents) { if (!KqpCtx.Config->PredicateExtract20) { return node; } - TExprBase output = KqpPushExtractedPredicateToReadTable(node, ctx, KqpCtx, TypesCtx); + TExprBase output = KqpPushExtractedPredicateToReadTable(node, ctx, KqpCtx, TypesCtx, *getParents()); DumpAppliedRule("PushExtractedPredicateToReadTable", node.Ptr(), output.Ptr(), ctx); return output; } - TMaybeNode LatePushExtractedPredicateToReadTable(TExprBase node, TExprContext& ctx) { + TMaybeNode LatePushExtractedPredicateToReadTable(TExprBase node, TExprContext& ctx, const TGetParents& getParents) { if (KqpCtx.Config->PredicateExtract20) { return node; } - TExprBase output = KqpPushExtractedPredicateToReadTable(node, ctx, KqpCtx, TypesCtx); + TExprBase output = KqpPushExtractedPredicateToReadTable(node, ctx, KqpCtx, TypesCtx, *getParents()); DumpAppliedRule("PushExtractedPredicateToReadTable", node.Ptr(), output.Ptr(), ctx); return output; } @@ -210,8 +210,8 @@ class TKqpLogicalOptTransformer : public TOptimizeTransformerBase { return output; } - TMaybeNode DeleteOverLookup(TExprBase node, TExprContext& ctx) { - TExprBase output = KqpDeleteOverLookup(node, ctx, KqpCtx); + TMaybeNode DeleteOverLookup(TExprBase node, TExprContext& ctx, const TGetParents& getParents) { + TExprBase output = KqpDeleteOverLookup(node, ctx, KqpCtx, *getParents()); DumpAppliedRule("DeleteOverLookup", node.Ptr(), output.Ptr(), ctx); return output; } diff --git a/ydb/core/kqp/opt/logical/kqp_opt_log_effects.cpp b/ydb/core/kqp/opt/logical/kqp_opt_log_effects.cpp index 7dcf855ce037..97eb40f86824 100644 --- a/ydb/core/kqp/opt/logical/kqp_opt_log_effects.cpp +++ b/ydb/core/kqp/opt/logical/kqp_opt_log_effects.cpp @@ -2,57 +2,175 @@ #include #include +#include + +namespace { + +bool CanPushFlatMap(const NYql::NNodes::TCoFlatMapBase& flatMap, const NYql::TKikimrTableDescription& tableDesc, const NYql::TParentsMap& parentsMap, TVector & extraColumns) { + auto flatMapLambda = flatMap.Lambda(); + if (!NYql::IsFilterFlatMap(flatMapLambda)) { + return false; + } + + const auto & flatMapLambdaArgument = flatMapLambda.Args().Arg(0).Ref(); + auto flatMapLambdaConditional = flatMapLambda.Body().Cast(); + + TSet lambdaSubset; + auto isSubSet = HaveFieldsSubset(flatMapLambdaConditional.Predicate().Ptr(), flatMapLambdaArgument, lambdaSubset, parentsMap, true); + auto argType = NYql::RemoveOptionalType(flatMapLambdaArgument.GetTypeAnn()); + if (argType->GetKind() != NYql::ETypeAnnotationKind::Struct) { + return false; + } + // helper doesn't accept if all columns are used + if (!isSubSet && lambdaSubset.size() != argType->Cast()->GetSize()) { + return false; + } + + for (auto & lambdaColumn : lambdaSubset) { + auto columnIndex = tableDesc.GetKeyColumnIndex(lambdaColumn); + if (!columnIndex) { + return false; + } + } + + extraColumns.insert(extraColumns.end(), lambdaSubset.begin(), lambdaSubset.end()); + return true; +} + +} namespace NKikimr::NKqp::NOpt { using namespace NYql; using namespace NYql::NNodes; -TExprBase KqpDeleteOverLookup(const TExprBase& node, TExprContext& ctx, const TKqpOptimizeContext &kqpCtx) { +TExprBase KqpDeleteOverLookup(const TExprBase& node, TExprContext& ctx, const TKqpOptimizeContext &kqpCtx, const NYql::TParentsMap& parentsMap) { if (!node.Maybe()) { return node; } auto deleteRows = node.Cast(); + TMaybeNode filter; + TMaybeNode lookup; + TMaybeNode read; TMaybeNode skipNulMembers; + TMaybeNode readranges; if (deleteRows.Input().Maybe()) { lookup = deleteRows.Input().Cast(); } else if (deleteRows.Input().Maybe().Input().Maybe()) { skipNulMembers = deleteRows.Input().Cast(); lookup = skipNulMembers.Input().Cast(); + } else if (deleteRows.Input().Maybe()) { + read = deleteRows.Input().Cast(); } else { - return node; - } - - YQL_ENSURE(lookup); - if (deleteRows.Table().Raw() != lookup.Cast().Table().Raw()) { - return node; + TMaybeNode input = deleteRows.Input(); + if (input.Maybe()) { + filter = deleteRows.Input().Cast(); + input = filter.Input(); + } + readranges = input.Maybe(); + if (!readranges) { + return node; + } } - auto lookupKeysType = lookup.Cast().LookupKeys().Ref().GetTypeAnn(); - auto lookupKeyType = lookupKeysType->Cast()->GetItemType()->Cast(); - YQL_ENSURE(lookupKeyType); - - // Only consider complete PK lookups + TMaybeNode deleteInput; const auto& tableDesc = GetTableData(*kqpCtx.Tables, kqpCtx.Cluster, deleteRows.Table().Path()); - if (lookupKeyType->GetSize() != tableDesc.Metadata->KeyColumnNames.size()) { - return node; - } - - TExprBase deleteInput = lookup.Cast().LookupKeys(); - if (skipNulMembers) { - deleteInput = Build(ctx, skipNulMembers.Cast().Pos()) - .Input(deleteInput) - .Members(skipNulMembers.Cast().Members()) + if (lookup) { + if (deleteRows.Table().Raw() != lookup.Cast().Table().Raw()) { + return node; + } + + auto lookupKeysType = lookup.Cast().LookupKeys().Ref().GetTypeAnn(); + auto lookupKeyType = lookupKeysType->Cast()->GetItemType()->Cast(); + YQL_ENSURE(lookupKeyType); + + // Only consider complete PK lookups + if (lookupKeyType->GetSize() != tableDesc.Metadata->KeyColumnNames.size()) { + return node; + } + + deleteInput = lookup.Cast().LookupKeys(); + if (skipNulMembers) { + deleteInput = Build(ctx, skipNulMembers.Cast().Pos()) + .Input(deleteInput.Cast()) + .Members(skipNulMembers.Cast().Members()) + .Done(); + } + } else if (read) { + if (deleteRows.Table().Raw() != read.Cast().Table().Raw()) { + return node; + } + + const auto& rangeFrom = read.Cast().Range().From(); + const auto& rangeTo = read.Cast().Range().To(); + + if (!rangeFrom.Maybe() || !rangeTo.Maybe()) { + return node; + } + + if (rangeFrom.Raw() != rangeTo.Raw()) { + return node; + } + + if (rangeFrom.ArgCount() != tableDesc.Metadata->KeyColumnNames.size()) { + return node; + } + + TVector structMembers; + for (ui32 i = 0; i < rangeFrom.ArgCount(); ++i) { + TCoAtom columnNameAtom(ctx.NewAtom(node.Pos(), tableDesc.Metadata->KeyColumnNames[i])); + + auto member = Build(ctx, node.Pos()) + .Name(columnNameAtom) + .Value(rangeFrom.Arg(i)) + .Done(); + + structMembers.push_back(member); + } + + deleteInput = Build(ctx, node.Pos()) + .Add() + .Add(structMembers) + .Build() .Done(); + } else if (readranges) { + if (deleteRows.Table().Raw() != readranges.Cast().Table().Raw()) { + return node; + } + + if (!readranges.Cast().PrefixPointsExpr()) { + return node; + } + + const auto& tableDesc = kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, readranges.Cast().Table().Path().Value()); + auto hint = TKqpReadTableExplainPrompt::Parse(readranges.Cast().ExplainPrompt()); + if (hint.PointPrefixLen != tableDesc.Metadata->KeyColumnNames.size()) { + return node; + } + + if (filter) { + TVector extraColumns; + if (!CanPushFlatMap(filter.Cast(), tableDesc, parentsMap, extraColumns)) { + return node; + } + deleteInput = Build(ctx, node.Pos()) + .Lambda(filter.Lambda().Cast()) + .Input(readranges.PrefixPointsExpr().Cast()) + .Done(); + } else { + deleteInput = readranges.PrefixPointsExpr(); + } } + YQL_ENSURE(deleteInput); + return Build(ctx, deleteRows.Pos()) .Table(deleteRows.Table()) - .Input(deleteInput) + .Input(deleteInput.Cast()) .Done(); } diff --git a/ydb/core/kqp/opt/logical/kqp_opt_log_extract.cpp b/ydb/core/kqp/opt/logical/kqp_opt_log_extract.cpp index 6e1d01c5568f..22fd070e2194 100644 --- a/ydb/core/kqp/opt/logical/kqp_opt_log_extract.cpp +++ b/ydb/core/kqp/opt/logical/kqp_opt_log_extract.cpp @@ -121,6 +121,21 @@ TExprBase KqpApplyExtractMembersToReadTableRanges(TExprBase node, TExprContext& .ExplainPrompt(read.ExplainPrompt()) .Index(index.Index().Cast()) .PrefixPointsExpr(index.PrefixPointsExpr()) + .PredicateExpr(index.PredicateExpr()) + .PredicateUsedColumns(index.PredicateUsedColumns()) + .Done(); + } + + if (auto readRange = node.Maybe()) { + return Build(ctx, read.Pos()) + .Table(read.Table()) + .Ranges(read.Ranges()) + .Columns(usedColumns.Cast()) + .Settings(read.Settings()) + .ExplainPrompt(read.ExplainPrompt()) + .PrefixPointsExpr(readRange.PrefixPointsExpr()) + .PredicateExpr(readRange.PredicateExpr()) + .PredicateUsedColumns(readRange.PredicateUsedColumns()) .Done(); } diff --git a/ydb/core/kqp/opt/logical/kqp_opt_log_helpers.cpp b/ydb/core/kqp/opt/logical/kqp_opt_log_helpers.cpp index 17d577c2f330..9ce094d511bb 100644 --- a/ydb/core/kqp/opt/logical/kqp_opt_log_helpers.cpp +++ b/ydb/core/kqp/opt/logical/kqp_opt_log_helpers.cpp @@ -7,6 +7,397 @@ namespace NKikimr::NKqp::NOpt { using namespace NYql; using namespace NYql::NNodes; +namespace { + +TExprBase MakeLT(TExprBase left, TExprBase right, TExprContext& ctx, TPositionHandle pos) { + return Build(ctx, pos) + .Add() + .Add().Value().Optional(left).Build().Build() + .Add().Optional(right).Build() + .Build() + .Add() + .Left(left) + .Right(right) + .Build() + .Done(); +} + +TExprBase MakeEQ(TExprBase left, TExprBase right, TExprContext& ctx, TPositionHandle pos) { + return Build(ctx, pos) + .Add() + .Add().Value().Optional(left).Build().Build() + .Add().Value().Optional(right).Build().Build() + .Build() + .Add() + .Left(left) + .Right(right) + .Build() + .Done(); +} + +TExprBase MakeLE(TExprBase left, TExprBase right, TExprContext& ctx, TPositionHandle pos) { + return Build(ctx, pos) + .Add().Value().Optional(left).Build().Build() + .Add() + .Left(left) + .Right(right) + .Build() + .Done(); +} + +TCoAtomList MakeAllColumnsList(const NYql::TKikimrTableDescription & tableDesc, TExprContext& ctx, TPositionHandle pos) { + TVector columns; + for (auto& [column, _] : tableDesc.Metadata->Columns) { + columns.push_back(Build(ctx, pos).Value(column).Done()); + } + return Build(ctx, pos).Add(columns).Done(); +}; + +TMaybe RewriteReadToPrefixLookup(TKqlReadTableBase read, TExprContext& ctx, const TKqpOptimizeContext& kqpCtx) { + TString lookupTable; + TString indexName; + + TMaybeNode lookupColumns; + size_t prefixSize; + TMaybeNode prefixExpr; + TMaybeNode extraFilter; + TMaybe> usedColumns; + + if (!read.template Maybe() && !read.template Maybe()) { + return {}; + } + + if (!read.Table().SysView().Value().empty()) { + // Can't lookup in system views + return {}; + } + + if (auto indexRead = read.template Maybe()) { + indexName = indexRead.Cast().Index().StringValue(); + lookupTable = GetIndexMetadata(indexRead.Cast(), *kqpCtx.Tables, kqpCtx.Cluster)->Name; + } else { + lookupTable = read.Table().Path().StringValue(); + } + const auto& rightTableDesc = kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, lookupTable); + const auto& mainTableDesc = kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, read.Table().Path().StringValue()); + + auto from = read.Range().From(); + auto to = read.Range().To(); + + usedColumns.ConstructInPlace(); + prefixSize = 0; + while (prefixSize < from.ArgCount() && prefixSize < to.ArgCount()) { + if (from.Arg(prefixSize).Raw() != to.Arg(prefixSize).Raw()) { + break; + } + usedColumns->insert(rightTableDesc.Metadata->KeyColumnNames[prefixSize]); + ++prefixSize; + } + + lookupColumns = read.Columns(); + + // we don't need to make filter for point selection + if (!(prefixSize == from.ArgCount() && + prefixSize == to.ArgCount() && + from.template Maybe() && + to.template Maybe())) + { + extraFilter = MakeFilterForRange(read.Range(), ctx, read.Range().Pos(), rightTableDesc.Metadata->KeyColumnNames); + lookupColumns = MakeAllColumnsList(mainTableDesc, ctx, read.Pos()); + } + + TVector columns; + for (size_t i = 0; i < prefixSize; ++i) { + columns.push_back(TExprBase(from.Arg(i))); + } + + prefixExpr = Build(ctx, read.Pos()) + .Add() + .Add(columns) + .Build() + .Done(); + + Y_ENSURE(prefixExpr.IsValid()); + + return NKikimr::NKqp::NOpt::TPrefixLookup { + .LookupColumns = lookupColumns.Cast(), + .ResultColumns = read.Columns(), + + .Filter = extraFilter, + .FilterUsedColumnsHint = usedColumns, + + .PrefixSize = prefixSize, + .PrefixExpr = prefixExpr.Cast(), + + .LookupTableName = lookupTable, + .MainTable = read.Table(), + .IndexName = indexName, + }; +} + +TMaybe RewriteReadToPrefixLookup(TKqlReadTableRangesBase read, TExprContext& ctx, const TKqpOptimizeContext& kqpCtx, TMaybe maxKeys) { + TString lookupTable; + TString indexName; + + TMaybeNode lookupColumns; + size_t prefixSize; + TMaybeNode prefixExpr; + TMaybeNode extraFilter; + TMaybe> usedColumns; + + if (!read.template Maybe() && !read.template Maybe()) { + return {}; + } + + if (!read.Table().SysView().Value().empty()) { + // Can't lookup in system views + return {}; + } + + lookupColumns = read.Columns(); + + if (auto indexRead = read.template Maybe()) { + 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(); + } + + if (TCoVoid::Match(read.Ranges().Raw())) { + prefixSize = 0; + prefixExpr = Build(ctx, read.Pos()) + .Input().Build() + .Done(); + } else { + auto prompt = TKqpReadTableExplainPrompt::Parse(read); + + prefixSize = prompt.PointPrefixLen; + + const auto& rightTableDesc = kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, lookupTable); + const auto& mainTableDesc = kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, read.Table().Path().StringValue()); + + TMaybeNode rowsExpr; + TMaybeNode filter; + TMaybeNode usedColumnsList; + if (read.Maybe()) { + rowsExpr = read.Cast().PrefixPointsExpr(); + filter = read.Cast().PredicateExpr(); + usedColumnsList = read.Cast().PredicateUsedColumns(); + } + if (read.Maybe()) { + rowsExpr = read.Cast().PrefixPointsExpr(); + filter = read.Cast().PredicateExpr(); + usedColumnsList = read.Cast().PredicateUsedColumns(); + } + + if (!rowsExpr.IsValid()) { + return {}; + } + + if (maxKeys && (!prompt.ExpectedMaxRanges || *prompt.ExpectedMaxRanges > *maxKeys)) { + return {}; + } + + // we don't need to make filter for point selection + if (prompt.PointPrefixLen != prompt.UsedKeyColumns.size()) { + if (!filter.IsValid() || !usedColumnsList.IsValid()) { + return {}; + } + usedColumns.ConstructInPlace(); + for (auto&& column : usedColumnsList.Cast()) { + usedColumns->insert(column.StringValue()); + } + extraFilter = filter; + lookupColumns = MakeAllColumnsList(mainTableDesc, ctx, read.Pos()); + } + + size_t prefixLen = prompt.PointPrefixLen; + TVector keyColumns; + for (size_t i = 0; i < prefixLen; ++i) { + YQL_ENSURE(i < rightTableDesc.Metadata->KeyColumnNames.size()); + keyColumns.push_back(rightTableDesc.Metadata->KeyColumnNames[i]); + } + + + auto rowArg = Build(ctx, read.Pos()) + .Name("rowArg") + .Done(); + + TVector components; + for (auto column : keyColumns) { + TCoAtom columnAtom(ctx.NewAtom(read.Ranges().Pos(), column)); + components.push_back( + Build(ctx, read.Ranges().Pos()) + .Struct(rowArg) + .Name(columnAtom) + .Done()); + } + + prefixExpr = Build(ctx, read.Pos()) + .Input(rowsExpr.Cast()) + .Lambda() + .Args({rowArg}) + .Body() + .Add(components) + .Build() + .Build() + .Done(); + } + + Y_ENSURE(prefixExpr.IsValid()); + + return TPrefixLookup{ + .LookupColumns = lookupColumns.Cast(), + .ResultColumns = read.Columns(), + + .Filter = extraFilter, + .FilterUsedColumnsHint = usedColumns, + + .PrefixSize = prefixSize, + .PrefixExpr = prefixExpr.Cast(), + + .LookupTableName = lookupTable, + .MainTable = read.Table(), + .IndexName = indexName, + }; +} + +} // namespace + +TCoLambda MakeFilterForRange(TKqlKeyRange range, TExprContext& ctx, TPositionHandle pos, TVector keyColumns) { + size_t prefix = 0; + auto arg = Build(ctx, pos).Name("_row_arg").Done(); + TVector conds; + while (prefix < range.From().ArgCount() && prefix < range.To().ArgCount()) { + auto column = Build(ctx, pos).Struct(arg).Name().Build(keyColumns[prefix]).Done(); + if (range.From().Arg(prefix).Raw() == range.To().Arg(prefix).Raw()) { + if (prefix + 1 == range.From().ArgCount() && range.From().Maybe()) { + break; + } + if (prefix + 1 == range.To().ArgCount() && range.To().Maybe()) { + break; + } + } else { + break; + } + conds.push_back(MakeEQ(column, range.From().Arg(prefix), ctx, pos)); + prefix += 1; + } + + { + TMaybeNode tupleComparison; + for (ssize_t i = static_cast(range.From().ArgCount()) - 1; i >= static_cast(prefix); --i) { + auto column = Build(ctx, pos).Struct(arg).Name().Build(keyColumns[i]).Done(); + if (tupleComparison.IsValid()) { + tupleComparison = Build(ctx, pos) + .Add(MakeLT(range.From().Arg(i), column, ctx, pos)) + .Add() + .Add(MakeEQ(range.From().Arg(i), column, ctx, pos)) + .Add(tupleComparison.Cast()) + .Build() + .Done(); + } else { + if (range.From().Maybe()) { + tupleComparison = MakeLE(range.From().Arg(i), column, ctx, pos); + } else { + tupleComparison = MakeLT(range.From().Arg(i), column, ctx, pos); + } + } + } + + if (tupleComparison.IsValid()) { + conds.push_back(tupleComparison.Cast()); + } + } + + { + TMaybeNode tupleComparison; + for (ssize_t i = static_cast(range.To().ArgCount()) - 1; i >= static_cast(prefix); --i) { + auto column = Build(ctx, pos).Struct(arg).Name().Build(keyColumns[i]).Done(); + if (tupleComparison.IsValid()) { + tupleComparison = Build(ctx, pos) + .Add(MakeLT(column, range.To().Arg(i), ctx, pos)) + .Add() + .Add(MakeEQ(column, range.To().Arg(i), ctx, pos)) + .Add(tupleComparison.Cast()) + .Build() + .Done(); + } else { + if (range.To().Maybe()) { + tupleComparison = MakeLE(column, range.To().Arg(i), ctx, pos); + } else { + tupleComparison = MakeLT(column, range.To().Arg(i), ctx, pos); + } + } + } + + if (tupleComparison.IsValid()) { + conds.push_back(tupleComparison.Cast()); + } + } + + return Build(ctx, pos) + .Args({arg}) + .Body() + .Predicate() + .Predicate() + .Add(conds) + .Build() + .Value() + .Literal().Build("false") + .Build() + .Build() + .Value(arg) + .Build() + .Done(); +} + +bool ExtractUsedFields(const TExprNode::TPtr& start, const TExprNode& arg, TSet& usedFields, const TParentsMap& parentsMap, bool allowDependsOn) { + const TTypeAnnotationNode* argType = RemoveOptionalType(arg.GetTypeAnn()); + if (argType->GetKind() != ETypeAnnotationKind::Struct) { + return false; + } + + if (&arg == start.Get()) { + return true; + } + + const auto inputStructType = argType->Cast(); + if (!IsDepended(*start, arg)) { + return true; + } + + TNodeSet nodes; + VisitExpr(start, [&](const TExprNode::TPtr& node) { + nodes.insert(node.Get()); + return true; + }); + + const auto parents = parentsMap.find(&arg); + YQL_ENSURE(parents != parentsMap.cend()); + for (const auto& parent : parents->second) { + if (nodes.cend() == nodes.find(parent)) { + continue; + } + + if (parent->IsCallable("Member")) { + usedFields.emplace(parent->Tail().Content()); + } else if (allowDependsOn && parent->IsCallable("DependsOn")) { + continue; + } else { + // unknown node + for (auto&& item : inputStructType->GetItems()) { + usedFields.emplace(item->GetName()); + } + return true; + } + } + + return true; +} + TExprBase TKqpMatchReadResult::BuildProcessNodes(TExprBase input, TExprContext& ctx) const { auto expr = input; @@ -81,4 +472,17 @@ TMaybe MatchRead(TExprBase node, std::function RewriteReadToPrefixLookup(TExprBase read, TExprContext& ctx, const TKqpOptimizeContext& kqpCtx, TMaybe maxKeys) { + if (maxKeys == TMaybe(0)) { + return {}; + } + if (auto readTable = read.Maybe()) { + return RewriteReadToPrefixLookup(readTable.Cast(), ctx, kqpCtx); + } else { + auto readRanges = read.Maybe(); + YQL_ENSURE(readRanges); + return RewriteReadToPrefixLookup(readRanges.Cast(), ctx, kqpCtx, maxKeys); + } +} + } // namespace NKikimr::NKqp::NOpt diff --git a/ydb/core/kqp/opt/logical/kqp_opt_log_impl.h b/ydb/core/kqp/opt/logical/kqp_opt_log_impl.h index 5ff32edc6eeb..701994659753 100644 --- a/ydb/core/kqp/opt/logical/kqp_opt_log_impl.h +++ b/ydb/core/kqp/opt/logical/kqp_opt_log_impl.h @@ -24,6 +24,29 @@ TMaybe MatchRead(NYql::NNodes::TExprBase node) { NYql::NNodes::TMaybeNode GetRightTableKeyPrefix(const NYql::NNodes::TKqlKeyRange& range); +NYql::NNodes::TCoLambda MakeFilterForRange(NYql::NNodes::TKqlKeyRange range, NYql::TExprContext& ctx, NYql::TPositionHandle pos, TVector keyColumns); + +bool ExtractUsedFields(const NYql::TExprNode::TPtr& start, const NYql::TExprNode& arg, TSet& usedFields, const NYql::TParentsMap& parentsMap, bool allowDependsOn); + +struct TPrefixLookup { + NYql::NNodes::TCoAtomList LookupColumns; + NYql::NNodes::TCoAtomList ResultColumns; + + NYql::NNodes::TMaybeNode Filter; + TMaybe> FilterUsedColumnsHint; + + size_t PrefixSize; + NYql::NNodes::TExprBase PrefixExpr; + + TString LookupTableName; + + NYql::NNodes::TKqpTable MainTable; + TString IndexName; +}; + +// Try to rewrite arbitrary table read to (ExtractMembers (Filter (Lookup LookupColumns) ResultColumns) +TMaybe RewriteReadToPrefixLookup(NYql::NNodes::TExprBase read, NYql::TExprContext& ctx, const TKqpOptimizeContext& kqpCtx, TMaybe maxKeys); + } // NKikimr::NKqp::NOpt 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 47affa3e19bc..874afc44c38b 100644 --- a/ydb/core/kqp/opt/logical/kqp_opt_log_join.cpp +++ b/ydb/core/kqp/opt/logical/kqp_opt_log_join.cpp @@ -320,22 +320,101 @@ bool IsParameterToListOfStructsRepack(const TExprBase& expr) { //#define DBG(...) YQL_CLOG(DEBUG, ProviderKqp) << __VA_ARGS__ #define DBG(...) -template -TMaybeNode BuildKqpStreamIndexLookupJoin(const TDqJoin& join, TExprBase leftInput, const TKqpMatchReadResult& rightReadMatch, TExprContext& ctx) { +TMaybeNode BuildKqpStreamIndexLookupJoin( + const TDqJoin& join, + TExprBase leftInput, + const TPrefixLookup& rightLookup, + + const TKqpMatchReadResult& rightReadMatch, + TExprContext& ctx) +{ TString leftLabel = join.LeftLabel().Maybe() ? TString(join.LeftLabel().Cast().Value()) : ""; TString rightLabel = join.RightLabel().Maybe() ? TString(join.RightLabel().Cast().Value()) : ""; - auto rightRead = rightReadMatch.Read.template Cast(); + + TMaybeNode lookupColumns; + if (auto read = rightReadMatch.Read.Maybe()) { + lookupColumns = read.Columns().Cast(); + } else { + auto readRanges = rightReadMatch.Read.Maybe(); + lookupColumns = readRanges.Columns().Cast(); + } + + TMaybeNode extraRightFilter = rightLookup.Filter; + + if (extraRightFilter.IsValid()) { + const TSet& usedColumns = *rightLookup.FilterUsedColumnsHint; + if (rightLookup.FilterUsedColumnsHint) { + TSet lookupColumnsSet; + for (auto&& column : lookupColumns.Cast()) { + lookupColumnsSet.insert(column.StringValue()); + } + bool rebuildColumns = false; + for (auto& column : usedColumns) { + if (!lookupColumnsSet.contains(column)) { + lookupColumnsSet.insert(column); + rebuildColumns = true; + } + } + // we should expand list of read columns + // narrow it immediately after filter + if (rebuildColumns) { + TVector newColumns; + auto pos = extraRightFilter.Cast().Pos(); + for (auto& column : lookupColumnsSet) { + newColumns.push_back(Build(ctx, pos).Value(column).Done()); + } + auto arg = Build(ctx, pos).Name("_extract_members_arg").Done(); + extraRightFilter = Build(ctx, pos) + .Args({arg}) + .Body() + .Members(lookupColumns.Cast()) + .Input() + .Lambda(ctx.DeepCopyLambda(extraRightFilter.Cast().Ref())) + .Input().Input(arg).Build() + .Build() + .Build() + .Done(); + lookupColumns = Build(ctx, pos) + .Add(newColumns) + .Done(); + } + } else { + return {}; + } + } TExprBase lookupJoin = Build(ctx, join.Pos()) - .Table(rightRead.Table()) + .Table(rightLookup.MainTable) .LookupKeys(leftInput) - .Columns(rightRead.Columns()) + .Columns(lookupColumns.Cast()) .LookupStrategy().Build(TKqpStreamLookupJoinStrategyName) .Done(); // Stream lookup join output: stream>> // so we should apply filters to second element of tuple for each row + if (extraRightFilter.IsValid()) { + lookupJoin = Build(ctx, join.Pos()) + .Input(lookupJoin) + .Lambda() + .Args({"tuple"}) + .Body() + .Add() + .Tuple("tuple") + .Index().Value("0").Build() + .Build() + .Add() + .Input() + .Tuple("tuple") + .Index().Value("1").Build() + .Build() + .Lambda(ctx.DeepCopyLambda(extraRightFilter.Cast().Ref())) + .Build() + .Build() + .Build() + .Done(); + } + if (rightReadMatch.ExtractMembers) { lookupJoin = Build(ctx, join.Pos()) .Input(lookupJoin) @@ -432,10 +511,8 @@ TMaybeNode BuildKqpStreamIndexLookupJoin(const TDqJoin& join, TExprBa .Done(); } -template -TMaybeNode KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext& ctx, const TKqpOptimizeContext& kqpCtx) { - static_assert(std::is_same_v || std::is_same_v, "unsupported read type"); +TMaybeNode KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext& ctx, const TKqpOptimizeContext& kqpCtx) { if (!join.RightLabel().Maybe()) { // Lookup only in tables return {}; @@ -450,136 +527,41 @@ TMaybeNode KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext TString lookupTable; TString indexName; - auto rightReadMatch = MatchRead(join.RightInput()); + auto rightReadMatch = MatchRead(join.RightInput(), [](TExprBase node) { + return node.Maybe() || node.Maybe(); + }); + if (!rightReadMatch || rightReadMatch->FlatMap && !IsPassthroughFlatMap(rightReadMatch->FlatMap.Cast(), nullptr)) { return {}; } - auto rightRead = rightReadMatch->Read.template Cast(); - + TMaybeNode rightColumns; TMaybeNode lookupColumns; size_t rightPrefixSize; TMaybeNode rightPrefixExpr; - if constexpr (std::is_same_v) { - Y_ENSURE(rightRead.template Maybe() || rightRead.template Maybe()); - const TKqlReadTableBase read = rightRead; - if (!read.Table().SysView().Value().empty()) { - // Can't lookup in system views - return {}; - } - - auto maybeRightTableKeyPrefix = GetRightTableKeyPrefix(read.Range()); - if (!maybeRightTableKeyPrefix) { - return {}; - } - - lookupColumns = read.Columns(); - - rightPrefixSize = maybeRightTableKeyPrefix.Cast().ArgCount(); - TVector columns; - for (auto& column : maybeRightTableKeyPrefix.Cast().Args()) { - columns.push_back(TExprBase(column)); - } - - rightPrefixExpr = Build(ctx, join.Pos()) - .Add() - .Add(columns) - .Build() - .Done(); - - if (auto indexRead = rightRead.template Maybe()) { - 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){ - auto read = rightReadMatch->Read.template Cast(); - if (!read.Table().SysView().Value().empty()) { - // Can't lookup in system views - return {}; - } - - lookupColumns = read.Columns(); - - if (auto indexRead = read.template Maybe()) { - 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(); - } - - if (TCoVoid::Match(read.Ranges().Raw())) { - rightPrefixSize = 0; - rightPrefixExpr = Build(ctx, join.Pos()) - .Input().Build() - .Done(); - } else { - auto prompt = TKqpReadTableExplainPrompt::Parse(read); - - if (prompt.PointPrefixLen != prompt.UsedKeyColumns.size()) { - return {}; - } - - if (prompt.ExpectedMaxRanges != TMaybe(1)) { - return {}; - } - rightPrefixSize = prompt.PointPrefixLen; - - const auto& rightTableDesc = kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, lookupTable); - - TMaybeNode rowsExpr; - if (read.template Maybe()) { - rowsExpr = read.template Cast().PrefixPointsExpr(); - } - if (read.template Maybe()) { - rowsExpr = read.template Cast().PrefixPointsExpr(); - } - - size_t prefixLen = prompt.PointPrefixLen; - TVector keyColumns; - for (size_t i = 0; i < prefixLen; ++i) { - YQL_ENSURE(i < rightTableDesc.Metadata->KeyColumnNames.size()); - keyColumns.push_back(rightTableDesc.Metadata->KeyColumnNames[i]); - } - + auto prefixLookup = RewriteReadToPrefixLookup(rightReadMatch->Read, ctx, kqpCtx, kqpCtx.Config->IdxLookupJoinsPrefixPointLimit); + if (prefixLookup) { + lookupTable = prefixLookup->LookupTableName; + indexName = prefixLookup->IndexName; + lookupColumns = prefixLookup->LookupColumns; + rightColumns = prefixLookup->ResultColumns; - auto rowArg = Build(ctx, join.Pos()) - .Name("rowArg") - .Done(); - - TVector components; - for (auto column : keyColumns) { - TCoAtom columnAtom(ctx.NewAtom(read.Ranges().Pos(), column)); - components.push_back( - Build(ctx, read.Ranges().Pos()) - .Struct(rowArg) - .Name(columnAtom) - .Done()); - } - - rightPrefixExpr = Build(ctx, join.Pos()) - .Input(rowsExpr.Cast()) - .Lambda() - .Args({rowArg}) - .Body() - .Add(components) - .Build() - .Build() - .Done(); - } + rightPrefixSize = prefixLookup->PrefixSize; + rightPrefixExpr = prefixLookup->PrefixExpr; + } else { + return {}; } - Y_ENSURE(rightPrefixExpr.IsValid()); - const auto& rightTableDesc = kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, lookupTable); if (rightTableDesc.Metadata->Kind == NYql::EKikimrTableKind::Olap) { return {}; } + if ((!kqpCtx.Config->PredicateExtract20 || kqpCtx.Config->OldLookupJoinBehaviour) && prefixLookup->Filter.IsValid()) { + return {}; + } + TMap rightJoinKeyToLeft; TVector rightKeyColumns; rightKeyColumns.reserve(join.JoinKeys().Size()); @@ -615,6 +597,7 @@ TMaybeNode KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext TVector skipNullColumns; ui32 fixedPrefix = 0; TSet deduplicateLeftColumns; + TVector prefixFilters; for (auto& rightColumnName : rightTableDesc.Metadata->KeyColumnNames) { TExprNode::TPtr member; @@ -622,7 +605,21 @@ TMaybeNode KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext if (fixedPrefix < rightPrefixSize) { if (leftColumn) { - return {}; + prefixFilters.push_back( + Build(ctx, join.Pos()) + .Left() + .Tuple(prefixRowArg) + .Index().Value(ToString(fixedPrefix)).Build() + .Build() + .Right() + .Struct(leftRowArg) + .Name().Build(*leftColumn) + .Build() + .Done()); + deduplicateLeftColumns.insert(*leftColumn); + if ((!kqpCtx.Config->PredicateExtract20 || kqpCtx.Config->OldLookupJoinBehaviour)) { + return {}; + } } member = Build(ctx, prefixRowArg.Pos()) @@ -696,7 +693,8 @@ TMaybeNode KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext const bool useStreamIndexLookupJoin = (kqpCtx.IsDataQuery() || kqpCtx.IsGenericQuery()) && kqpCtx.Config->EnableKqpDataQueryStreamIdxLookupJoin - && supportedStreamJoinKinds.contains(join.JoinType().Value()); + && supportedStreamJoinKinds.contains(join.JoinType().Value()) + && !indexName; bool needPrecomputeLeft = (kqpCtx.IsDataQuery() || kqpCtx.IsGenericQuery()) && !join.LeftInput().Maybe() @@ -749,27 +747,48 @@ TMaybeNode KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext .Done(); } + auto wrapWithPrefixFilters = [&](TExprBase body) -> TExprBase { + if (prefixFilters.empty()) { + return Build(ctx, body.Pos()) + .Input(body) + .Done(); + } else { + return Build(ctx, body.Pos()) + .Predicate() + .Predicate() + .Add(prefixFilters) + .Build() + .Value() + .Literal().Build("false") + .Build() + .Build() + .Value(body) + .Done(); + } + }; + if (useStreamIndexLookupJoin) { auto leftInput = Build(ctx, join.Pos()) .Input(leftData) .Lambda() .Args({leftRowArg}) - .Body() + .Body() .Input(rightPrefixExpr.Cast()) .Lambda() .Args({prefixRowArg}) - .Body() - .Add() - .Add(lookupMembers) - .Build() - .Add(leftRowArg) - .Build() + .Body(wrapWithPrefixFilters( + Build(ctx, join.Pos()) + .Add() + .Add(lookupMembers) + .Build() + .Add(leftRowArg) + .Done())) .Build() .Build() .Build() .Done(); - return BuildKqpStreamIndexLookupJoin(join, leftInput, *rightReadMatch, ctx); + return BuildKqpStreamIndexLookupJoin(join, leftInput, *prefixLookup, *rightReadMatch, ctx); } auto leftDataDeduplicated = DeduplicateByMembers(leftData, filter, deduplicateLeftColumns, ctx, join.Pos()); @@ -777,21 +796,33 @@ TMaybeNode KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext .Input(leftDataDeduplicated) .Lambda() .Args({leftRowArg}) - .Body() + .Body() .Input(rightPrefixExpr.Cast()) .Lambda() .Args({prefixRowArg}) - .Body() - .Add(lookupMembers) - .Build() + .Body(wrapWithPrefixFilters(Build(ctx, join.Pos()).Add(lookupMembers).Done())) .Build() .Build() .Build() .Done(); TExprBase lookup = indexName - ? BuildLookupIndex(ctx, join.Pos(), rightRead.Table(), rightRead.Columns(), keysToLookup, skipNullColumns, indexName, kqpCtx) - : BuildLookupTable(ctx, join.Pos(), rightRead.Table(), rightRead.Columns(), keysToLookup, skipNullColumns, kqpCtx); + ? BuildLookupIndex(ctx, join.Pos(), prefixLookup->MainTable, lookupColumns.Cast(), keysToLookup, skipNullColumns, indexName, kqpCtx) + : BuildLookupTable(ctx, join.Pos(), prefixLookup->MainTable, lookupColumns.Cast(), keysToLookup, skipNullColumns, kqpCtx); + + if (prefixLookup->Filter.IsValid()) { + lookup = Build(ctx, join.Pos()) + .Input(lookup) + .Lambda(ctx.DeepCopyLambda(prefixLookup->Filter.Cast().Ref())) + .Done(); + } + + if (prefixLookup->LookupColumns.Raw() != prefixLookup->ResultColumns.Raw()) { + lookup = Build(ctx, join.Pos()) + .Input(lookup) + .Members(prefixLookup->ResultColumns) + .Done(); + } // Skip null keys in lookup part as for equijoin semantics null != null, // so we can't have nulls in lookup part @@ -803,7 +834,7 @@ TMaybeNode KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext .Done(); if (rightReadMatch->ExtractMembers) { - lookupColumns = rightReadMatch->ExtractMembers.Cast().Members(); + rightColumns = rightReadMatch->ExtractMembers.Cast().Members(); } lookup = rightReadMatch->BuildProcessNodes(lookup, ctx); @@ -812,7 +843,7 @@ TMaybeNode KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext auto arg = TCoArgument(ctx.NewArgument(join.Pos(), "row")); auto rightLabel = join.RightLabel().Cast().Value(); - TVector renames = CreateRenames(rightReadMatch->FlatMap, lookupColumns.Cast(), arg, rightLabel, + TVector renames = CreateRenames(rightReadMatch->FlatMap, rightColumns.Cast(), arg, rightLabel, join.Pos(), ctx); lookup = Build(ctx, join.Pos()) @@ -840,27 +871,7 @@ TMaybeNode KqpJoinToIndexLookupImpl(const TDqJoin& join, TExprContext } // anonymous namespace -TMaybeNode GetRightTableKeyPrefix(const TKqlKeyRange& range) { - if (!range.From().Maybe() || !range.To().Maybe()) { - return {}; - } - auto rangeFrom = range.From().Cast(); - auto rangeTo = range.To().Cast(); - - if (rangeFrom.ArgCount() != rangeTo.ArgCount()) { - return {}; - } - for (ui32 i = 0; i < rangeFrom.ArgCount(); ++i) { - if (rangeFrom.Arg(i).Raw() != rangeTo.Arg(i).Raw()) { - return {}; - } - } - - return rangeFrom; -} - -TExprBase KqpJoinToIndexLookup(const TExprBase& node, TExprContext& ctx, const TKqpOptimizeContext& kqpCtx) -{ +TExprBase KqpJoinToIndexLookup(const TExprBase& node, TExprContext& ctx, const TKqpOptimizeContext& kqpCtx) { if ((kqpCtx.IsScanQuery() && !kqpCtx.Config->EnableKqpScanQueryStreamIdxLookupJoin) || !node.Maybe()) { return node; } @@ -873,16 +884,12 @@ TExprBase KqpJoinToIndexLookup(const TExprBase& node, TExprContext& ctx, const T auto flipJoin = FlipLeftSemiJoin(join, ctx); DBG("-- Flip join"); - if (auto indexLookupJoin = KqpJoinToIndexLookupImpl(flipJoin, ctx, kqpCtx)) { - return indexLookupJoin.Cast(); - } else if (auto indexLookupJoin = KqpJoinToIndexLookupImpl(flipJoin, ctx, kqpCtx)) { + if (auto indexLookupJoin = KqpJoinToIndexLookupImpl(flipJoin, ctx, kqpCtx)) { return indexLookupJoin.Cast(); } } - if (auto indexLookupJoin = KqpJoinToIndexLookupImpl(join, ctx, kqpCtx)) { - return indexLookupJoin.Cast(); - } else if (auto indexLookupJoin = KqpJoinToIndexLookupImpl(join, ctx, kqpCtx)) { + if (auto indexLookupJoin = KqpJoinToIndexLookupImpl(join, ctx, kqpCtx)) { return indexLookupJoin.Cast(); } diff --git a/ydb/core/kqp/opt/logical/kqp_opt_log_ranges.cpp b/ydb/core/kqp/opt/logical/kqp_opt_log_ranges.cpp index 7d28a665766c..a5eba5e404a5 100644 --- a/ydb/core/kqp/opt/logical/kqp_opt_log_ranges.cpp +++ b/ydb/core/kqp/opt/logical/kqp_opt_log_ranges.cpp @@ -353,6 +353,59 @@ TMaybeNode KqpRewriteLiteralLookup(const TExprBase& node, TExprContex lookupKeys = skipNullMembers.Input(); } + TKqpReadTableSettings settings; + if (skipNullMembers) { + auto skipNullColumns = skipNullMembers.Cast().Members(); + + if (skipNullColumns) { + for (const auto &column : skipNullColumns.Cast()) { + settings.AddSkipNullKey(TString(column.Value())); + } + } + } + + const auto& table = kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, lookup.Table().Path().Value()); + if (auto lookupKeysFlatMap = lookupKeys.Maybe()) { + auto flatMapRangeInput = lookupKeysFlatMap.Cast().Input().Maybe(); + + // This rule should depend on feature flag for safety + if (!flatMapRangeInput || !kqpCtx.Config->EnableKqpDataQueryStreamLookup) { + return {}; + } + + auto lookupKeysType = lookupKeys.Ref().GetTypeAnn(); + YQL_ENSURE(lookupKeysType); + YQL_ENSURE(lookupKeysType->GetKind() == ETypeAnnotationKind::List); + auto itemType = lookupKeysType->Cast()->GetItemType(); + YQL_ENSURE(itemType->GetKind() == ETypeAnnotationKind::Struct); + auto structType = itemType->Cast(); + + TVector usedColumns; + usedColumns.reserve(structType->GetSize()); + for (const auto& keyColumnName : table.Metadata->KeyColumnNames) { + if (!structType->FindItem(keyColumnName)) { + break; + } + + usedColumns.emplace_back(keyColumnName); + } + + YQL_ENSURE(usedColumns.size() == structType->GetSize()); + + TKqpReadTableExplainPrompt prompt; + prompt.SetUsedKeyColumns(std::move(usedColumns)); + prompt.SetPointPrefixLen(structType->GetSize()); + + + return Build(ctx, lookup.Pos()) + .Table(lookup.Table()) + .Ranges(flatMapRangeInput.Cast()) + .Columns(lookup.Columns()) + .Settings(settings.BuildNode(ctx, lookup.Pos())) + .ExplainPrompt(prompt.BuildNode(ctx, lookup.Pos())) + .Done(); + } + auto maybeAsList = lookupKeys.Maybe(); if (!maybeAsList) { return {}; @@ -369,7 +422,6 @@ TMaybeNode KqpRewriteLiteralLookup(const TExprBase& node, TExprContex } // full pk expected - const auto& table = kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, lookup.Table().Path().Value()); if (table.Metadata->KeyColumnNames.size() != maybeStruct.Cast().ArgCount()) { return {}; } @@ -380,7 +432,6 @@ TMaybeNode KqpRewriteLiteralLookup(const TExprBase& node, TExprContex keyColumnsStruct.insert({TString(tuple.Name().Value()), tuple.Value().Cast()}); } - TKqpReadTableSettings settings; TVector keyValues; keyValues.reserve(maybeStruct.Cast().ArgCount()); for (const auto& name : table.Metadata->KeyColumnNames) { @@ -396,7 +447,6 @@ TMaybeNode KqpRewriteLiteralLookup(const TExprBase& node, TExprContex for (const auto &column : skipNullColumns.Cast()) { settings.AddSkipNullKey(TString(column.Value())); } - } } 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 5a8ff001bcd5..3bdd83516c9b 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 @@ -179,7 +179,7 @@ TMaybeNode TryBuildTrivialReadTable(TCoFlatMap& flatmap, TKqlReadTabl } // namespace TExprBase KqpPushExtractedPredicateToReadTable(TExprBase node, TExprContext& ctx, const TKqpOptimizeContext& kqpCtx, - TTypeAnnotationContext& typesCtx) + TTypeAnnotationContext& typesCtx, const NYql::TParentsMap& parentsMap) { if (!node.Maybe()) { return node; @@ -366,7 +366,7 @@ TExprBase KqpPushExtractedPredicateToReadTable(TExprBase node, TExprContext& ctx if (buildResult.ExpectedMaxRanges.Defined()) { prompt.SetExpectedMaxRanges(buildResult.ExpectedMaxRanges.GetRef()); } - prompt.SetPointPrefixLen(buildResult.UsedPrefixLen); + prompt.SetPointPrefixLen(buildResult.PointPrefixLen); YQL_CLOG(DEBUG, ProviderKqp) << "Ranges extracted: " << KqpExprToPrettyString(*ranges, ctx); YQL_CLOG(DEBUG, ProviderKqp) << "Residual lambda: " << KqpExprToPrettyString(*residualLambda, ctx); @@ -466,19 +466,38 @@ TExprBase KqpPushExtractedPredicateToReadTable(TExprBase node, TExprContext& ctx .Done(); } } - } else if (buildResult.PointPrefixLen == tableDesc.Metadata->KeyColumnNames.size()) { - YQL_ENSURE(prefixPointsExpr); - residualLambda = pointsExtractionResult.PrunedLambda; - buildLookup(prefixPointsExpr, input); } } if (!input) { TMaybeNode prefix; + TMaybeNode predicateExpr; + TMaybeNode usedColumnsList; if (kqpCtx.Config->PredicateExtract20) { prefix = prefixPointsExpr; + if (prefix) { + predicateExpr = ctx.DeepCopyLambda(flatmap.Lambda().Ref()); + TSet usedColumns; + if (!ExtractUsedFields( + flatmap.Lambda().Body().Ptr(), + flatmap.Lambda().Args().Arg(0).Ref(), + usedColumns, + parentsMap, + true)) + { + prefix = {}; + predicateExpr = {}; + } else { + TVector columnAtoms; + for (auto&& column : usedColumns) { + columnAtoms.push_back(Build(ctx, read.Pos()).Value(column).Done()); + } + usedColumnsList = Build(ctx, read.Pos()).Add(columnAtoms).Done(); + } + } } + if (indexName) { input = Build(ctx, read.Pos()) .Table(read.Table()) @@ -488,6 +507,8 @@ TExprBase KqpPushExtractedPredicateToReadTable(TExprBase node, TExprContext& ctx .ExplainPrompt(prompt.BuildNode(ctx, read.Pos())) .Index(indexName.Cast()) .PrefixPointsExpr(prefix) + .PredicateExpr(predicateExpr) + .PredicateUsedColumns(usedColumnsList) .Done(); } else { input = Build(ctx, read.Pos()) @@ -497,12 +518,13 @@ TExprBase KqpPushExtractedPredicateToReadTable(TExprBase node, TExprContext& ctx .Settings(read.Settings()) .ExplainPrompt(prompt.BuildNode(ctx, read.Pos())) .PrefixPointsExpr(prefix) + .PredicateExpr(predicateExpr) + .PredicateUsedColumns(usedColumnsList) .Done(); } } *input = readMatch->BuildProcessNodes(*input, ctx); - if (node.Maybe()) { return Build(ctx, node.Pos()) .Input(*input) 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 97b61b836c0b..d311b41be980 100644 --- a/ydb/core/kqp/opt/logical/kqp_opt_log_rules.h +++ b/ydb/core/kqp/opt/logical/kqp_opt_log_rules.h @@ -22,7 +22,7 @@ NYql::NNodes::TExprBase KqpPushPredicateToReadTable(NYql::NNodes::TExprBase node const TKqpOptimizeContext &kqpCtx); NYql::NNodes::TExprBase KqpPushExtractedPredicateToReadTable(NYql::NNodes::TExprBase node, NYql::TExprContext& ctx, - const TKqpOptimizeContext& kqpCtx, NYql::TTypeAnnotationContext& typesCtx); + const TKqpOptimizeContext& kqpCtx, NYql::TTypeAnnotationContext& typesCtx, const NYql::TParentsMap& parentsMap); NYql::NNodes::TExprBase KqpJoinToIndexLookup(const NYql::NNodes::TExprBase& node, NYql::TExprContext& ctx, const TKqpOptimizeContext& kqpCtx); @@ -53,7 +53,7 @@ NYql::NNodes::TExprBase KqpRewriteTakeOverIndexRead(const NYql::NNodes::TExprBas const TKqpOptimizeContext& kqpCtx, const NYql::TParentsMap& parentsMap); NYql::NNodes::TExprBase KqpDeleteOverLookup(const NYql::NNodes::TExprBase& node, NYql::TExprContext& ctx, - const TKqpOptimizeContext &kqpCtx); + const TKqpOptimizeContext &kqpCtx, const NYql::TParentsMap& parentsMap); NYql::NNodes::TExprBase KqpExcessUpsertInputColumns(const NYql::NNodes::TExprBase& node, NYql::TExprContext& ctx); diff --git a/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin.cpp b/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin.cpp index 00d430ae7b40..ecd2e664d49a 100644 --- a/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin.cpp +++ b/ydb/core/kqp/opt/logical/kqp_opt_log_sqlin.cpp @@ -76,88 +76,27 @@ TExprBase KqpRewriteSqlInToEquiJoin(const TExprBase& node, TExprContext& ctx, co const NYql::TKikimrTableDescription* tableDesc; - auto readMatch = MatchRead(flatMap.Input()); - auto rangesMatch = MatchRead(flatMap.Input()); - ui64 fixedPrefixLen; - if (readMatch) { - TString lookupTable; - - if (readMatch->FlatMap) { - return node; - } - - auto readTable = readMatch->Read.Cast(); - - static const std::set supportedReads { - TKqlReadTable::CallableName(), - TKqlReadTableIndex::CallableName(), - }; - - if (!supportedReads.contains(readTable.CallableName())) { - return node; - } - - if (!readTable.Table().SysView().Value().empty()) { - return node; - } - - if (auto indexRead = readTable.Maybe()) { - lookupTable = GetIndexMetadata(indexRead.Cast(), *kqpCtx.Tables, kqpCtx.Cluster)->Name; - } else if (!lookupTable) { - lookupTable = readTable.Table().Path().StringValue(); - } - - tableDesc = &kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, lookupTable); - const auto& rangeFrom = readTable.Range().From(); - const auto& rangeTo = readTable.Range().To(); - - if (!rangeFrom.Maybe() || !rangeTo.Maybe()) { - return node; - } - if (rangeFrom.Raw() != rangeTo.Raw()) { - // not point selection - return node; - } - - fixedPrefixLen = rangeFrom.ArgCount(); - } else if (rangesMatch) { - if (rangesMatch->FlatMap) { - return node; - } - - auto read = rangesMatch->Read.template Cast(); - - if (!read.Table().SysView().Value().empty()) { - return node; - } - - auto prompt = TKqpReadTableExplainPrompt::Parse(read); - if (prompt.PointPrefixLen != prompt.UsedKeyColumns.size()) { - return node; - } - - if (!TCoVoid::Match(read.Ranges().Raw()) && prompt.ExpectedMaxRanges != TMaybe(1)) { - return node; - } + auto readMatch = MatchRead(flatMap.Input(), [](TExprBase node) { + return node.Maybe() || node.Maybe(); + }); - TString lookupTable; - TString indexName; - if (auto indexRead = read.template Maybe()) { - 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(); - } + if (!readMatch) { + return node; + } - tableDesc = &kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, lookupTable); + ui64 fixedPrefixLen; + auto pointSelection = RewriteReadToPrefixLookup(readMatch->Read, ctx, kqpCtx, kqpCtx.Config->IdxLookupJoinsPrefixPointLimit); + if (!pointSelection) { + return node; + } - fixedPrefixLen = prompt.PointPrefixLen; - } else { + if ((!kqpCtx.Config->PredicateExtract20 || kqpCtx.Config->OldLookupJoinBehaviour) && pointSelection->Filter.IsValid()) { return node; } + fixedPrefixLen = pointSelection->PrefixSize; + tableDesc = &kqpCtx.Tables->ExistingTable(kqpCtx.Cluster, pointSelection->LookupTableName); + i64 keySuffixLen = (i64) tableDesc->Metadata->KeyColumnNames.size() - (i64) fixedPrefixLen; if (keySuffixLen <= 0) { return node; diff --git a/ydb/core/kqp/opt/peephole/kqp_opt_peephole.cpp b/ydb/core/kqp/opt/peephole/kqp_opt_peephole.cpp index bbb3dd54d221..abbb23f52b65 100644 --- a/ydb/core/kqp/opt/peephole/kqp_opt_peephole.cpp +++ b/ydb/core/kqp/opt/peephole/kqp_opt_peephole.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -181,6 +182,10 @@ class TKqpPeepholeFinalTransformer : public TOptimizeTransformerBase { } private: TMaybeNode SetCombinerMemoryLimit(TExprBase node, TExprContext& ctx) { + if (NMiniKQL::RuntimeVersion < 46U) { + return node; + } + if (const auto limit = node.Ref().Child(TCoWideCombiner::idx_MemLimit); limit->IsAtom("0")) { if (const auto limitSetting = Config->_KqpYqlCombinerMemoryLimit.Get(); limitSetting && *limitSetting) { return ctx.ChangeChild(node.Ref(), TCoWideCombiner::idx_MemLimit, ctx.RenameNode(*limit, ToString(-i64(*limitSetting)))); diff --git a/ydb/core/kqp/opt/physical/effects/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/opt/physical/effects/CMakeLists.darwin-arm64.txt index 5b954686cb30..1e3b93978eb2 100644 --- a/ydb/core/kqp/opt/physical/effects/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/opt/physical/effects/CMakeLists.darwin-arm64.txt @@ -28,4 +28,6 @@ target_sources(opt-physical-effects PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_update_index.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_update.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_upsert_index.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_returning.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_upsert_defaults.cpp ) diff --git a/ydb/core/kqp/opt/physical/effects/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/opt/physical/effects/CMakeLists.darwin-x86_64.txt index 5b954686cb30..1e3b93978eb2 100644 --- a/ydb/core/kqp/opt/physical/effects/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/opt/physical/effects/CMakeLists.darwin-x86_64.txt @@ -28,4 +28,6 @@ target_sources(opt-physical-effects PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_update_index.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_update.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_upsert_index.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_returning.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_upsert_defaults.cpp ) diff --git a/ydb/core/kqp/opt/physical/effects/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/opt/physical/effects/CMakeLists.linux-aarch64.txt index 2cafa69cd7e0..94e19f50eac7 100644 --- a/ydb/core/kqp/opt/physical/effects/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/opt/physical/effects/CMakeLists.linux-aarch64.txt @@ -29,4 +29,6 @@ target_sources(opt-physical-effects PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_update_index.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_update.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_upsert_index.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_returning.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_upsert_defaults.cpp ) diff --git a/ydb/core/kqp/opt/physical/effects/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/opt/physical/effects/CMakeLists.linux-x86_64.txt index 2cafa69cd7e0..94e19f50eac7 100644 --- a/ydb/core/kqp/opt/physical/effects/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/opt/physical/effects/CMakeLists.linux-x86_64.txt @@ -29,4 +29,6 @@ target_sources(opt-physical-effects PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_update_index.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_update.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_upsert_index.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_returning.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_upsert_defaults.cpp ) diff --git a/ydb/core/kqp/opt/physical/effects/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/opt/physical/effects/CMakeLists.windows-x86_64.txt index 5b954686cb30..1e3b93978eb2 100644 --- a/ydb/core/kqp/opt/physical/effects/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/opt/physical/effects/CMakeLists.windows-x86_64.txt @@ -28,4 +28,6 @@ target_sources(opt-physical-effects PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_update_index.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_update.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_upsert_index.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_returning.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/opt/physical/effects/kqp_opt_phy_upsert_defaults.cpp ) diff --git a/ydb/core/kqp/opt/physical/kqp_opt_phy_olap_filter.cpp b/ydb/core/kqp/opt/physical/kqp_opt_phy_olap_filter.cpp index de70e17d40f1..40a07ed8a083 100644 --- a/ydb/core/kqp/opt/physical/kqp_opt_phy_olap_filter.cpp +++ b/ydb/core/kqp/opt/physical/kqp_opt_phy_olap_filter.cpp @@ -140,6 +140,7 @@ std::vector> ExtractComparisonParameters(const T TMaybeNode ComparisonPushdown(const std::vector>& parameters, const TCoCompare& predicate, TExprContext& ctx, TPositionHandle pos); +[[maybe_unused]] TMaybeNode YqlCoalescePushdown(const TCoCoalesce& coalesce, TExprContext& ctx) { if (const auto params = ExtractBinaryFunctionParameters(coalesce, ctx, coalesce.Pos())) { return Build(ctx, coalesce.Pos()) diff --git a/ydb/core/kqp/provider/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/provider/CMakeLists.darwin-arm64.txt index 2dd9cf4540cc..21adc4418a6a 100644 --- a/ydb/core/kqp/provider/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/provider/CMakeLists.darwin-arm64.txt @@ -47,12 +47,24 @@ target_link_libraries(core-kqp-provider PUBLIC providers-dq-expr_nodes providers-result-expr_nodes providers-result-provider - yql-sql-settings + library-yql-sql library-ydb_issue-proto yql-public-issue + yql-utils-log tools-enum_parser-enum_serialization_runtime ) target_sources(core-kqp-provider PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_gateway.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_provider.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_results.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_settings.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_type_ann_pg.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/rewrite_io_utils.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_datasource.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_exec.cpp diff --git a/ydb/core/kqp/provider/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/provider/CMakeLists.darwin-x86_64.txt index 2dd9cf4540cc..21adc4418a6a 100644 --- a/ydb/core/kqp/provider/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/provider/CMakeLists.darwin-x86_64.txt @@ -47,12 +47,24 @@ target_link_libraries(core-kqp-provider PUBLIC providers-dq-expr_nodes providers-result-expr_nodes providers-result-provider - yql-sql-settings + library-yql-sql library-ydb_issue-proto yql-public-issue + yql-utils-log tools-enum_parser-enum_serialization_runtime ) target_sources(core-kqp-provider PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_gateway.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_provider.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_results.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_settings.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_type_ann_pg.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/rewrite_io_utils.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_datasource.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_exec.cpp diff --git a/ydb/core/kqp/provider/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/provider/CMakeLists.linux-aarch64.txt index b5f0abee0e4f..7923c6ab85d3 100644 --- a/ydb/core/kqp/provider/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/provider/CMakeLists.linux-aarch64.txt @@ -48,12 +48,24 @@ target_link_libraries(core-kqp-provider PUBLIC providers-dq-expr_nodes providers-result-expr_nodes providers-result-provider - yql-sql-settings + library-yql-sql library-ydb_issue-proto yql-public-issue + yql-utils-log tools-enum_parser-enum_serialization_runtime ) target_sources(core-kqp-provider PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_gateway.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_provider.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_results.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_settings.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_type_ann_pg.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/rewrite_io_utils.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_datasource.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_exec.cpp diff --git a/ydb/core/kqp/provider/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/provider/CMakeLists.linux-x86_64.txt index b5f0abee0e4f..7923c6ab85d3 100644 --- a/ydb/core/kqp/provider/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/provider/CMakeLists.linux-x86_64.txt @@ -48,12 +48,24 @@ target_link_libraries(core-kqp-provider PUBLIC providers-dq-expr_nodes providers-result-expr_nodes providers-result-provider - yql-sql-settings + library-yql-sql library-ydb_issue-proto yql-public-issue + yql-utils-log tools-enum_parser-enum_serialization_runtime ) target_sources(core-kqp-provider PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_gateway.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_provider.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_results.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_settings.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_type_ann_pg.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/rewrite_io_utils.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_datasource.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_exec.cpp diff --git a/ydb/core/kqp/provider/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/provider/CMakeLists.windows-x86_64.txt index 2dd9cf4540cc..21adc4418a6a 100644 --- a/ydb/core/kqp/provider/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/provider/CMakeLists.windows-x86_64.txt @@ -47,12 +47,24 @@ target_link_libraries(core-kqp-provider PUBLIC providers-dq-expr_nodes providers-result-expr_nodes providers-result-provider - yql-sql-settings + library-yql-sql library-ydb_issue-proto yql-public-issue + yql-utils-log tools-enum_parser-enum_serialization_runtime ) target_sources(core-kqp-provider PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_expr_nodes.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_gateway.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_provider.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_results.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_settings.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_type_ann_pg.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/rewrite_io_utils.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_datasource.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_exec.cpp diff --git a/ydb/core/kqp/provider/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/provider/ut/CMakeLists.darwin-arm64.txt index a8a209b57ece..a6c155f45a9c 100644 --- a/ydb/core/kqp/provider/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/provider/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kqp-provider-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_gateway_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/provider/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/provider/ut/CMakeLists.darwin-x86_64.txt index a675abd60220..f58c31602740 100644 --- a/ydb/core/kqp/provider/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/provider/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-kqp-provider-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_gateway_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/provider/ut/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/provider/ut/CMakeLists.linux-aarch64.txt index f2e9889f9746..363279e0f342 100644 --- a/ydb/core/kqp/provider/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/provider/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kqp-provider-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_gateway_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/provider/ut/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/provider/ut/CMakeLists.linux-x86_64.txt index bdfc3667d328..7fec79dd85e3 100644 --- a/ydb/core/kqp/provider/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/provider/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-kqp-provider-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/provider/yql_kikimr_gateway_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/provider/ut/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/provider/ut/CMakeLists.windows-x86_64.txt index cb69aa719a5b..985196135077 100644 --- a/ydb/core/kqp/provider/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/provider/ut/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/provider/yql_kikimr_datasink.cpp b/ydb/core/kqp/provider/yql_kikimr_datasink.cpp index 9c6243f35c64..5c17b5891341 100644 --- a/ydb/core/kqp/provider/yql_kikimr_datasink.cpp +++ b/ydb/core/kqp/provider/yql_kikimr_datasink.cpp @@ -511,6 +511,114 @@ class TKikimrDataSink : public TDataProviderBase return false; } + bool IsEvaluatedDefaultNode(TExprNode::TPtr input) { + auto node = TExprBase(input); + + if (node.Maybe()) { + return true; + } + + if (input->IsCallable() + && input->Content() == "PgCast" + && input->ChildrenSize() >= 1 + && TExprBase(input->Child(0)).Maybe()) + { + return true; + } + + if (node.Maybe()) { + return true; + } + + if (node.Maybe()) { + return true; + } + + if (auto maybeJust = node.Maybe()) { + return IsEvaluatedDefaultNode(maybeJust.Cast().Input().Ptr()); + } + + if (node.Maybe()) { + return true; + } + + if (node.Maybe()) { + return true; + } + + if (node.Maybe()) { + return true; + } + + if (node.Maybe()) { + return true; + } + + return false; + } + + bool CanEvaluateDefaultValue(TExprNode::TPtr input) { + if (IsEvaluatedDefaultNode(input)) { + return true; + } + + static const THashSet allowedNodes = { + "Concat", "Just", "Optional", "SafeCast", "AsList", + "+", "-", "*", "/", "%", "PgCast"}; + + if (input->IsCallable("PgCast") && input->Child(0)->IsCallable("PgConst")) { + return true; + } + + if (input->IsCallable(allowedNodes)) { + for (size_t i = 0; i < input->ChildrenSize(); i++) { + auto callableInput = input->Child(i); + if (!CanEvaluateDefaultValue(callableInput)) { + return false; + } + } + return true; + } + + return false; + } + + bool ShouldEvaluateDefaultValue(TExprNode::TPtr input) { + if (IsEvaluatedDefaultNode(input)) { + return false; + } + + return CanEvaluateDefaultValue(input); + } + + bool EvaluateDefaultValuesIfNeeded(TExprContext& ctx, TExprList columns) { + bool exprEvalNeeded = false; + for(auto item: columns) { + auto columnTuple = item.Cast(); + if (columnTuple.Size() > 2) { + const auto& columnConstraints = columnTuple.Item(2).Cast(); + for(const auto& constraint: columnConstraints.Value().Cast()) { + if (constraint.Name().Value() != "default") + continue; + + YQL_ENSURE(constraint.Value().IsValid()); + + if (ShouldEvaluateDefaultValue(constraint.Value().Cast().Ptr())) { + auto evaluatedExpr = ctx.Builder(constraint.Value().Cast().Ptr()->Pos()) + .Callable("EvaluateExpr") + .Add(0, constraint.Value().Cast().Ptr()) + .Seal() + .Build(); + + constraint.Ptr()->ChildRef(TCoNameValueTuple::idx_Value) = evaluatedExpr; + exprEvalNeeded = true; + } + } + } + } + return exprEvalNeeded; + } + static TExprNode::TPtr MakeKiDropTable(const TExprNode::TPtr& node, const NCommon::TWriteTableSettings& settings, const TKikimrKey& key, TExprContext& ctx) { @@ -671,7 +779,7 @@ class TKikimrDataSink : public TDataProviderBase TString(dataSink.Cluster()), key.GetTablePath(), node->Pos(), ctx); - returningColumns = BuildColumnsList(*table, node->Pos(), ctx, sysColumnsEnabled); + returningColumns = BuildColumnsList(*table, node->Pos(), ctx, sysColumnsEnabled, true /*ignoreWriteOnlyColumns*/); break; } else { @@ -787,7 +895,7 @@ class TKikimrDataSink : public TDataProviderBase auto replaceIfExists = (settings.Mode.Cast().Value() == "create_or_replace"); auto existringOk = (settings.Mode.Cast().Value() == "create_if_not_exists"); - return Build(ctx, node->Pos()) + auto createTable = Build(ctx, node->Pos()) .World(node->Child(0)) .DataSink(node->Child(1)) .Table().Build(key.GetTablePath()) @@ -807,8 +915,15 @@ class TKikimrDataSink : public TDataProviderBase .ExistingOk() .Value(existringOk) .Build() - .Done() - .Ptr(); + .Done(); + + bool exprEvalNeeded = EvaluateDefaultValuesIfNeeded(ctx, createTable.Cast().Columns()); + if (exprEvalNeeded) { + ctx.Step.Repeat(TExprStep::ExprEval); + } + + return createTable.Ptr(); + } else if (mode == "alter") { for (auto setting : settings.Other) { if (setting.Name().Value() == "intent") { @@ -819,15 +934,27 @@ class TKikimrDataSink : public TDataProviderBase YQL_ENSURE(settings.AlterActions); YQL_ENSURE(!settings.AlterActions.Cast().Empty()); - - return Build(ctx, node->Pos()) + auto alterTable = Build(ctx, node->Pos()) .World(node->Child(0)) .DataSink(node->Child(1)) .Table().Build(key.GetTablePath()) .Actions(settings.AlterActions.Cast()) .TableType(tableType) - .Done() - .Ptr(); + .Done(); + + bool exprEvalNeeded = false; + for (const auto& action : alterTable.Actions()) { + auto name = action.Name().Value(); + if (name == "addColumns") { + exprEvalNeeded |= EvaluateDefaultValuesIfNeeded(ctx, action.Value().Cast()); + } + } + + if (exprEvalNeeded) { + ctx.Step.Repeat(TExprStep::ExprEval); + } + + return alterTable.Ptr(); } else if (mode == "drop" || mode == "drop_if_exists") { return MakeKiDropTable(node, settings, key, ctx); diff --git a/ydb/core/kqp/provider/yql_kikimr_datasource.cpp b/ydb/core/kqp/provider/yql_kikimr_datasource.cpp index 4e45f0a21853..af95adf40d5a 100644 --- a/ydb/core/kqp/provider/yql_kikimr_datasource.cpp +++ b/ydb/core/kqp/provider/yql_kikimr_datasource.cpp @@ -351,6 +351,18 @@ class TKiSourceLoadTableMetadataTransformer : public TGraphTransformerBase { if (!AddCluster(table, res, input, ctx)) { return TStatus::Error; } + + if (const auto& preparingQuery = SessionCtx->Query().PreparingQuery; + preparingQuery + && res.Metadata->Kind == EKikimrTableKind::View + ) { + const auto& viewMetadata = *res.Metadata; + auto* viewInfo = preparingQuery->MutablePhysicalQuery()->MutableViewInfos()->Add(); + auto* pathId = viewInfo->MutableTableId(); + pathId->SetOwnerId(viewMetadata.PathId.OwnerId()); + pathId->SetTableId(viewMetadata.PathId.TableId()); + viewInfo->SetSchemaVersion(viewMetadata.SchemaVersion); + } } else { TIssueScopeGuard issueScope(ctx.IssueManager, [input, &table, &ctx]() { return MakeIntrusive(TIssue(ctx.GetPosition(input->Pos()), TStringBuilder() diff --git a/ydb/core/kqp/provider/yql_kikimr_exec.cpp b/ydb/core/kqp/provider/yql_kikimr_exec.cpp index 6940dc181627..140a68cdcae9 100644 --- a/ydb/core/kqp/provider/yql_kikimr_exec.cpp +++ b/ydb/core/kqp/provider/yql_kikimr_exec.cpp @@ -948,12 +948,13 @@ class TKiSinkCallableExecutionTransformer : public TAsyncCallbackTransformerCreateTableStore(cluster, - ParseCreateTableStoreSettings(maybeCreate.Cast(), table.Metadata->TableSettings)); + ParseCreateTableStoreSettings(maybeCreate.Cast(), table.Metadata->TableSettings), existingOk); break; } case ETableType::Table: case ETableType::Unknown: { - future = isColumn ? Gateway->CreateColumnTable(table.Metadata, true) : Gateway->CreateTable(table.Metadata, true, existingOk); + future = isColumn ? Gateway->CreateColumnTable(table.Metadata, true, existingOk) + : Gateway->CreateTable(table.Metadata, true, existingOk); break; } } @@ -1017,7 +1018,7 @@ class TKiSinkCallableExecutionTransformer : public TAsyncCallbackTransformerDropTableStore(cluster, ParseDropTableStoreSettings(maybeDrop.Cast())); + future = Gateway->DropTableStore(cluster, ParseDropTableStoreSettings(maybeDrop.Cast()), missingOk); break; case ETableType::ExternalTable: future = Gateway->DropExternalTable(cluster, ParseDropExternalTableSettings(maybeDrop.Cast()), missingOk); @@ -1103,8 +1104,14 @@ class TKiSinkCallableExecutionTransformer : public TAsyncCallbackTransformerSetColumnName(TString(columnName)); - FillLiteralProto(constraint.Value().Cast(), *columnBuild->mutable_default_from_literal()); + auto err = FillLiteralProto(constraint.Value().Cast(), actualType, *columnBuild->mutable_default_from_literal()); + if (err) { + ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), err.value())); + return SyncError(); + } + hasDefaultValue = true; + } else if (constraint.Name().Value() == "not_null") { if (columnBuild == nullptr) { columnBuild = indexBuildSettings.mutable_column_build_operation()->add_column(); diff --git a/ydb/core/kqp/provider/yql_kikimr_expr_nodes.cpp b/ydb/core/kqp/provider/yql_kikimr_expr_nodes.cpp index cbe44c3a9d84..1763f15e1f08 100644 --- a/ydb/core/kqp/provider/yql_kikimr_expr_nodes.cpp +++ b/ydb/core/kqp/provider/yql_kikimr_expr_nodes.cpp @@ -17,7 +17,7 @@ TCoAtomList TKiReadTable::GetSelectColumns(TExprContext& ctx, const TKikimrTable bool withSystemColumns) const { if (Select().Maybe()) { - return BuildColumnsList(tableData, Pos(), ctx, withSystemColumns); + return BuildColumnsList(tableData, Pos(), ctx, withSystemColumns, true /*ignoreWriteOnlyColumns*/); } return Select().Cast(); diff --git a/ydb/core/kqp/provider/yql_kikimr_gateway.h b/ydb/core/kqp/provider/yql_kikimr_gateway.h index 8d79563400f0..3c9b541eee70 100644 --- a/ydb/core/kqp/provider/yql_kikimr_gateway.h +++ b/ydb/core/kqp/provider/yql_kikimr_gateway.h @@ -215,13 +215,14 @@ struct TKikimrColumnMetadata { NKikimrKqp::TKqpColumnMetadataProto::EDefaultKind DefaultKind = NKikimrKqp::TKqpColumnMetadataProto::DEFAULT_KIND_UNSPECIFIED; TString DefaultFromSequence; Ydb::TypedValue DefaultFromLiteral; + bool IsBuildInProgress = false; TKikimrColumnMetadata() = default; TKikimrColumnMetadata(const TString& name, ui32 id, const TString& type, bool notNull, NKikimr::NScheme::TTypeInfo typeInfo = {}, const TString& typeMod = {}, const TString& defaultFromSequence = {}, NKikimrKqp::TKqpColumnMetadataProto::EDefaultKind defaultKind = NKikimrKqp::TKqpColumnMetadataProto::DEFAULT_KIND_UNSPECIFIED, - const Ydb::TypedValue& defaultFromLiteral = {}) + const Ydb::TypedValue& defaultFromLiteral = {}, bool isBuildInProgress = false) : Name(name) , Id(id) , Type(type) @@ -231,6 +232,7 @@ struct TKikimrColumnMetadata { , DefaultKind(defaultKind) , DefaultFromSequence(defaultFromSequence) , DefaultFromLiteral(defaultFromLiteral) + , IsBuildInProgress(isBuildInProgress) {} explicit TKikimrColumnMetadata(const NKikimrKqp::TKqpColumnMetadataProto* message) @@ -242,6 +244,7 @@ struct TKikimrColumnMetadata { , DefaultKind(message->GetDefaultKind()) , DefaultFromSequence(message->GetDefaultFromSequence()) , DefaultFromLiteral(message->GetDefaultFromLiteral()) + , IsBuildInProgress(message->GetIsBuildInProgress()) { auto typeInfoMod = NKikimr::NScheme::TypeInfoModFromProtoColumnType(message->GetTypeId(), message->HasTypeInfo() ? &message->GetTypeInfo() : nullptr); @@ -279,6 +282,7 @@ struct TKikimrColumnMetadata { message->SetDefaultFromSequence(DefaultFromSequence); message->SetDefaultKind(DefaultKind); message->MutableDefaultFromLiteral()->CopyFrom(DefaultFromLiteral); + message->SetIsBuildInProgress(IsBuildInProgress); if (columnType.TypeInfo) { *message->MutableTypeInfo() = *columnType.TypeInfo; } @@ -833,15 +837,18 @@ class IKikimrGateway : public TThrRefBase { virtual NThreading::TFuture DropGroup(const TString& cluster, const TDropGroupSettings& settings) = 0; - virtual NThreading::TFuture CreateColumnTable(TKikimrTableMetadataPtr metadata, bool createDir) = 0; + virtual NThreading::TFuture CreateColumnTable( + TKikimrTableMetadataPtr metadata, bool createDir, bool existingOk = false) = 0; virtual NThreading::TFuture AlterColumnTable(const TString& cluster, const TAlterColumnTableSettings& settings) = 0; - virtual NThreading::TFuture CreateTableStore(const TString& cluster, const TCreateTableStoreSettings& settings) = 0; + virtual NThreading::TFuture CreateTableStore(const TString& cluster, + const TCreateTableStoreSettings& settings, bool existingOk = false) = 0; virtual NThreading::TFuture AlterTableStore(const TString& cluster, const TAlterTableStoreSettings& settings) = 0; - virtual NThreading::TFuture DropTableStore(const TString& cluster, const TDropTableStoreSettings& settings) = 0; + virtual NThreading::TFuture DropTableStore(const TString& cluster, + const TDropTableStoreSettings& settings, bool missingOk) = 0; virtual NThreading::TFuture CreateExternalTable(const TString& cluster, const TCreateExternalTableSettings& settings, bool createDir, bool existingOk, bool replaceIfExists) = 0; diff --git a/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp b/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp index 55c8adf074d6..9ba5c0fb5647 100644 --- a/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp +++ b/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp @@ -654,7 +654,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T { txRes.Ops.insert(node.Raw()); bool result = ExploreTx(TExprBase(node.Ref().ChildPtr(0)), ctx, dataSink, txRes, tablesData, types); - Cerr << KqpExprToPrettyString(*node.Raw(), ctx) << Endl; +// Cerr << KqpExprToPrettyString(*node.Raw(), ctx) << Endl; txRes.AddResult(node); return result; } diff --git a/ydb/core/kqp/provider/yql_kikimr_provider.cpp b/ydb/core/kqp/provider/yql_kikimr_provider.cpp index 28965c15b825..308e19695b7b 100644 --- a/ydb/core/kqp/provider/yql_kikimr_provider.cpp +++ b/ydb/core/kqp/provider/yql_kikimr_provider.cpp @@ -463,10 +463,14 @@ bool TKikimrKey::Extract(const TExprNode& key) { } TCoAtomList BuildColumnsList(const TKikimrTableDescription& table, TPositionHandle pos, - TExprContext& ctx, bool withSystemColumns) + TExprContext& ctx, bool withSystemColumns, bool ignoreWriteOnlyColumns) { TVector columnsToSelect; for (const auto& pair : table.Metadata->Columns) { + if (pair.second.IsBuildInProgress && ignoreWriteOnlyColumns) { + continue; + } + auto atom = Build(ctx, pos) .Value(pair.second.Name) .Done(); @@ -527,6 +531,7 @@ TVector TableOperationsToProto(const TKiOperationList& o return protoOps; } +// Is used only for key types now template void FillLiteralProtoImpl(const NNodes::TCoDataCtor& literal, TProto& proto) { auto type = literal.Ref().GetTypeAnn(); @@ -558,6 +563,7 @@ void FillLiteralProtoImpl(const NNodes::TCoDataCtor& literal, TProto& proto) { case EDataSlot::Datetime: protoValue.SetUint32(FromString(value)); break; + case EDataSlot::Int8: case EDataSlot::Int32: protoValue.SetInt32(FromString(value)); break; @@ -574,8 +580,18 @@ void FillLiteralProtoImpl(const NNodes::TCoDataCtor& literal, TProto& proto) { protoValue.SetBytes(value.Data(), value.Size()); break; case EDataSlot::Utf8: + case EDataSlot::Json: protoValue.SetText(ToString(value)); break; + case EDataSlot::Double: + protoValue.SetDouble(FromString(value)); + break; + case EDataSlot::Float: + protoValue.SetFloat(FromString(value)); + break; + case EDataSlot::Yson: + protoValue.SetBytes(ToString(value)); + break; case EDataSlot::Decimal: { const auto paramsDataType = type->Cast(); auto precision = FromString(paramsDataType->GetParamOne()); @@ -589,6 +605,12 @@ void FillLiteralProtoImpl(const NNodes::TCoDataCtor& literal, TProto& proto) { protoValue.SetHi128(*reinterpret_cast(p + 8)); break; } + case EDataSlot::Uuid: { + const ui64* uuidData = reinterpret_cast(value.Data()); + protoValue.SetLow128(uuidData[0]); + protoValue.SetHi128(uuidData[1]); + break; + } default: YQL_ENSURE(false, "Unexpected type slot " << slot); @@ -599,8 +621,56 @@ void FillLiteralProto(const NNodes::TCoDataCtor& literal, NKqpProto::TKqpPhyLite FillLiteralProtoImpl(literal, proto); } -void FillLiteralProto(const NNodes::TCoDataCtor& literal, NKikimrMiniKQL::TResult& proto) { - FillLiteralProtoImpl(literal, proto); +bool IsPgNullExprNode(const NNodes::TExprBase& maybeLiteral) { + return maybeLiteral.Ptr()->IsCallable() && + maybeLiteral.Ptr()->Content() == "PgCast" && maybeLiteral.Ptr()->ChildrenSize() >= 1 && + maybeLiteral.Ptr()->Child(0)->IsCallable() && maybeLiteral.Ptr()->Child(0)->Content() == "Null"; +} + +std::optional FillLiteralProto(NNodes::TExprBase maybeLiteral, const TTypeAnnotationNode* valueType, Ydb::TypedValue& proto) +{ + if (auto maybeJust = maybeLiteral.Maybe()) { + maybeLiteral = maybeJust.Cast().Input(); + } + + if (auto literal = maybeLiteral.Maybe()) { + FillLiteralProto(literal.Cast(), proto); + return std::nullopt; + } + + const bool isPgNull = IsPgNullExprNode(maybeLiteral); + if (maybeLiteral.Maybe() || isPgNull) { + YQL_ENSURE(valueType); + auto actualPgType = valueType->Cast(); + YQL_ENSURE(actualPgType); + + auto* typeDesc = NKikimr::NPg::TypeDescFromPgTypeId(actualPgType->GetId()); + if (!typeDesc) { + return TStringBuilder() << "Failed to parse default expr typename " << actualPgType->GetName(); + } + + if (isPgNull) { + proto.mutable_value()->set_null_flag_value(NProtoBuf::NULL_VALUE); + } else { + YQL_ENSURE(maybeLiteral.Maybe()); + auto pgConst = maybeLiteral.Cast(); + TString content = TString(pgConst.Value().Value()); + auto parseResult = NKikimr::NPg::PgNativeBinaryFromNativeText(content, typeDesc); + if (parseResult.Error) { + return TStringBuilder() << "Failed to parse default expr for typename " << actualPgType->GetName() + << ", error reason: " << *parseResult.Error; + } + + proto.mutable_value()->set_bytes_value(parseResult.Str); + } + + auto* pg = proto.mutable_type()->mutable_pg_type(); + pg->set_type_name(NKikimr::NPg::PgTypeNameFromTypeDesc(typeDesc)); + pg->set_oid(NKikimr::NPg::PgTypeIdFromTypeDesc(typeDesc)); + return std::nullopt; + } + + return TStringBuilder() << "Unsupported type of literal: " << maybeLiteral.Ptr()->Content(); } void FillLiteralProto(const NNodes::TCoDataCtor& literal, Ydb::TypedValue& proto) @@ -613,8 +683,7 @@ void FillLiteralProto(const NNodes::TCoDataCtor& literal, Ydb::TypedValue& proto auto slot = type->Cast()->GetSlot(); auto typeId = NKikimr::NUdf::GetDataTypeInfo(slot).TypeId; - YQL_ENSURE(NKikimr::NScheme::NTypeIds::IsYqlType(typeId) && - NKikimr::NSchemeShard::IsAllowedKeyType(NKikimr::NScheme::TTypeInfo(typeId))); + YQL_ENSURE(NKikimr::NScheme::NTypeIds::IsYqlType(typeId)); auto& protoType = *proto.mutable_type(); auto& protoValue = *proto.mutable_value(); @@ -633,6 +702,7 @@ void FillLiteralProto(const NNodes::TCoDataCtor& literal, Ydb::TypedValue& proto case EDataSlot::Datetime: protoValue.set_uint32_value(FromString(value)); break; + case EDataSlot::Int8: case EDataSlot::Int32: protoValue.set_int32_value(FromString(value)); break; @@ -649,8 +719,18 @@ void FillLiteralProto(const NNodes::TCoDataCtor& literal, Ydb::TypedValue& proto protoValue.set_bytes_value(value.Data(), value.Size()); break; case EDataSlot::Utf8: + case EDataSlot::Json: protoValue.set_text_value(ToString(value)); break; + case EDataSlot::Double: + protoValue.set_double_value(FromString(value)); + break; + case EDataSlot::Float: + protoValue.set_float_value(FromString(value)); + break; + case EDataSlot::Yson: + protoValue.set_bytes_value(ToString(value)); + break; case EDataSlot::Decimal: { const auto paramsDataType = type->Cast(); auto precision = FromString(paramsDataType->GetParamOne()); @@ -664,6 +744,12 @@ void FillLiteralProto(const NNodes::TCoDataCtor& literal, Ydb::TypedValue& proto protoValue.set_high_128(*reinterpret_cast(p + 8)); break; } + case EDataSlot::Uuid: { + const ui64* uuidData = reinterpret_cast(value.Data()); + protoValue.set_low_128(uuidData[0]); + protoValue.set_high_128(uuidData[1]); + break; + } default: YQL_ENSURE(false, "Unexpected type slot " << slot); diff --git a/ydb/core/kqp/provider/yql_kikimr_provider_impl.h b/ydb/core/kqp/provider/yql_kikimr_provider_impl.h index 725c74d8465a..9e6f4f945d80 100644 --- a/ydb/core/kqp/provider/yql_kikimr_provider_impl.h +++ b/ydb/core/kqp/provider/yql_kikimr_provider_impl.h @@ -209,11 +209,14 @@ TAutoPtr CreateKiSinkCallableExecutionTransformer( TAutoPtr CreateKiSinkPlanInfoTransformer(TIntrusivePtr queryExecutor); NNodes::TCoAtomList BuildColumnsList(const TKikimrTableDescription& table, TPositionHandle pos, - TExprContext& ctx, bool withSystemColumns); + TExprContext& ctx, bool withSystemColumns, bool ignoreWriteOnlyColumns); const TTypeAnnotationNode* GetReadTableRowType(TExprContext& ctx, const TKikimrTablesData& tablesData, const TString& cluster, const TString& table, NNodes::TCoAtomList select, bool withSystemColumns = false); +const TTypeAnnotationNode* GetReadTableRowType(TExprContext& ctx, const TKikimrTablesData& tablesData, + const TString& cluster, const TString& table, TPositionHandle pos, bool withSystemColumns); + TYdbOperation GetTableOp(const NNodes::TKiWriteTable& write); TVector TableOperationsToProto(const NNodes::TCoNameValueTupleList& operations, TExprContext& ctx); @@ -224,7 +227,8 @@ void TableDescriptionToTableInfo(const TKikimrTableDescription& desc, TYdbOperat void TableDescriptionToTableInfo(const TKikimrTableDescription& desc, TYdbOperation op, TVector& infos); -void FillLiteralProto(const NNodes::TCoDataCtor& literal, NKikimrMiniKQL::TResult& proto); +bool IsPgNullExprNode(const NNodes::TExprBase& maybeLiteral); +std::optional FillLiteralProto(NNodes::TExprBase maybeLiteral, const TTypeAnnotationNode* valueType, Ydb::TypedValue& proto); void FillLiteralProto(const NNodes::TCoDataCtor& literal, Ydb::TypedValue& proto); // todo gvit switch to ydb typed value. void FillLiteralProto(const NNodes::TCoDataCtor& literal, NKqpProto::TKqpPhyLiteralValue& proto); diff --git a/ydb/core/kqp/provider/yql_kikimr_settings.h b/ydb/core/kqp/provider/yql_kikimr_settings.h index f6fb2beb1e2e..e8ef355c7bc4 100644 --- a/ydb/core/kqp/provider/yql_kikimr_settings.h +++ b/ydb/core/kqp/provider/yql_kikimr_settings.h @@ -162,6 +162,8 @@ struct TKikimrConfiguration : public TKikimrSettings, public NCommon::TSettingDi bool EnableAstCache = false; bool EnablePgConstsToParams = false; ui64 ExtractPredicateRangesLimit = 0; + ui64 IdxLookupJoinsPrefixPointLimit = 1; + bool OldLookupJoinBehaviour = true; }; } diff --git a/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp b/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp index e2bbc5db7cb1..a41a9eb9f81c 100644 --- a/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp +++ b/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp @@ -293,6 +293,110 @@ namespace { } return true; } + + bool ParseConstraintNode(TExprContext& ctx, TKikimrColumnMetadata& columnMeta, const TExprList& columnTuple, TCoNameValueTuple constraint, TKikimrConfiguration& config, bool& needEval, bool isAlter = false) { + auto nameNode = columnTuple.Item(0).Cast(); + auto typeNode = columnTuple.Item(1); + + auto columnName = TString(nameNode.Value()); + auto columnType = typeNode.Ref().GetTypeAnn(); + auto type = columnType->Cast()->GetType(); + auto isOptional = type->GetKind() == ETypeAnnotationKind::Optional; + auto actualType = !isOptional ? type : type->Cast()->GetItemType(); + if (constraint.Name() == "default") { + auto defaultType = constraint.Value().Ref().GetTypeAnn(); + YQL_ENSURE(constraint.Value().IsValid()); + TExprBase constrValue = constraint.Value().Cast(); + + if (!config.EnableColumnsWithDefault) { + ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), + "Columns with default values are not supported yet.")); + return false; + } + + const bool isNull = IsPgNullExprNode(constrValue) || defaultType->HasNull(); + if (isNull && columnMeta.NotNull) { + ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), TStringBuilder() << "Default expr " << columnName + << " is nullable or optional, but column has not null constraint. ")); + return false; + } + + // unwrap optional + if (defaultType->GetKind() == ETypeAnnotationKind::Optional) { + defaultType = defaultType->Cast()->GetItemType(); + } + + if (defaultType->GetKind() != actualType->GetKind()) { + ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), TStringBuilder() << "Default expr " << columnName + << " type mismatch, expected: " << (*actualType) << ", actual: " << *(defaultType))); + return false; + } + + bool skipAnnotationValidation = false; + if (defaultType->GetKind() == ETypeAnnotationKind::Pg) { + auto defaultPgType = defaultType->Cast(); + if (defaultPgType->GetName() == "unknown") { + skipAnnotationValidation = true; + } + } + + if (!skipAnnotationValidation && !IsSameAnnotation(*defaultType, *actualType)) { + auto constrPtr = constraint.Value().Cast().Ptr(); + auto status = TryConvertTo(constrPtr, *type, ctx); + if (status == IGraphTransformer::TStatus::Error) { + ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), TStringBuilder() << "Default expr " << columnName + << " type mismatch, expected: " << (*actualType) << ", actual: " << *(defaultType))); + return false; + } else if (status == IGraphTransformer::TStatus::Repeat) { + auto evaluatedExpr = ctx.Builder(constrPtr->Pos()) + .Callable("EvaluateExpr") + .Add(0, constrPtr) + .Seal() + .Build(); + + constraint.Ptr()->ChildRef(TCoNameValueTuple::idx_Value) = evaluatedExpr; + needEval = true; + return true; + } + } + + if (columnMeta.IsDefaultKindDefined()) { + ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), TStringBuilder() << "Default setting for " << columnName + << " column is already set: " + << NKikimrKqp::TKqpColumnMetadataProto::EDefaultKind_Name(columnMeta.DefaultKind))); + return false; + } + + columnMeta.SetDefaultFromLiteral(); + auto err = FillLiteralProto(constrValue, actualType, columnMeta.DefaultFromLiteral); + if (err) { + ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), err.value())); + return false; + } + + } else if (constraint.Name().Value() == "serial") { + if (isAlter) { + ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), + "Column addition with serial data type is unsupported")); + return false; + } + + if (columnMeta.IsDefaultKindDefined()) { + ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), TStringBuilder() << "Default setting for " + << columnName << " column is already set: " + << NKikimrKqp::TKqpColumnMetadataProto::EDefaultKind_Name(columnMeta.DefaultKind))); + return false; + } + + columnMeta.DefaultFromSequence = "_serial_column_" + columnMeta.Name; + columnMeta.SetDefaultFromSequence(); + columnMeta.NotNull = true; + } else if (constraint.Name().Value() == "not_null") { + columnMeta.NotNull = true; + } + + return true; + } } class TKiSinkTypeAnnotationTransformer : public TKiSinkVisitorTransformer @@ -418,11 +522,18 @@ class TKiSinkTypeAnnotationTransformer : public TKiSinkVisitorTransformer THashSet generateColumnsIfInsertColumnsSet; for(const auto& [name, info] : table->Metadata->Columns) { + if (info.IsBuildInProgress && rowType->FindItem(name)) { + ctx.AddError(YqlIssue(pos, TIssuesIds::KIKIMR_BAD_REQUEST, TStringBuilder() + << "Column is under build operation, write operation is not allowed to column: " << name + << " for table: " << table->Metadata->Name)); + return TStatus::Error; + } + if (rowType->FindItem(name)) { continue; } - if (op == TYdbOperation::UpdateOn) { + if (op == TYdbOperation::UpdateOn || op == TYdbOperation::DeleteOn) { continue; } @@ -431,7 +542,7 @@ class TKiSinkTypeAnnotationTransformer : public TKiSinkVisitorTransformer } if (info.IsDefaultKindDefined()) { - if (op == TYdbOperation::Upsert) { + if (op == TYdbOperation::Upsert && !info.IsBuildInProgress) { generateColumnsIfInsertColumnsSet.emplace(name); } @@ -625,6 +736,13 @@ class TKiSinkTypeAnnotationTransformer : public TKiSinkVisitorTransformer << "Column '" << item->GetName() << "' does not exist in table '" << node.Table().Value() << "'.")); return TStatus::Error; } + + if (column->IsBuildInProgress) { + ctx.AddError(YqlIssue(ctx.GetPosition(node.Pos()), TIssuesIds::KIKIMR_BAD_REQUEST, TStringBuilder() + << "Column '" << item->GetName() << "' is under the build operation '" << node.Table().Value() << "'.")); + return TStatus::Error; + } + if (column->NotNull && item->HasOptionalOrNull()) { if (item->GetItemType()->GetKind() == ETypeAnnotationKind::Pg) { //no type-level notnull check for pg types. @@ -636,6 +754,8 @@ class TKiSinkTypeAnnotationTransformer : public TKiSinkVisitorTransformer } } + + if (!node.ReturningColumns().Empty()) { ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder() << "It is not allowed to use returning")); @@ -761,99 +881,14 @@ virtual TStatus HandleCreateTable(TKiCreateTable create, TExprContext& ctx) over if (columnTuple.Size() > 2) { const auto& columnConstraints = columnTuple.Item(2).Cast(); for(const auto& constraint: columnConstraints.Value().Cast()) { - if (constraint.Name().Value() == "default") { - auto defaultType = constraint.Value().Ref().GetTypeAnn(); - - if (!SessionCtx->Config().EnableColumnsWithDefault) { - ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), - "Columns with default values are not supported yet.")); - return TStatus::Error; - } - - if (defaultType->HasNull() && columnMeta.NotNull) { - ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), TStringBuilder() << "Default expr " << columnName - << " is nullable or optional, but column has not null constraint. ")); - return TStatus::Error; - } - - if (defaultType->GetKind() != actualType->GetKind()) { - ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), TStringBuilder() << "Default expr " << columnName - << " type mismatch, expected: " << (*actualType) << ", actual: " << *(defaultType))); - - return TStatus::Error; - } - - bool skipAnnotationValidation = false; - if (defaultType->GetKind() == ETypeAnnotationKind::Pg) { - auto defaultPgType = defaultType->Cast(); - if (defaultPgType->GetName() == "unknown") { - skipAnnotationValidation = true; - } - } - - if (!skipAnnotationValidation) { - if (!IsSameAnnotation(*defaultType, *actualType)) { - ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), TStringBuilder() << "Default expr " << columnName - << " type mismatch, expected: " << (*actualType) << ", actual: " << *(defaultType))); - return TStatus::Error; - } - } - - if (columnMeta.IsDefaultKindDefined()) { - ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), TStringBuilder() << "Default setting for " << columnName - << " column is already set: " - << NKikimrKqp::TKqpColumnMetadataProto::EDefaultKind_Name(columnMeta.DefaultKind))); - return TStatus::Error; - } - - columnMeta.SetDefaultFromLiteral(); - - if (auto pgConst = constraint.Value().Maybe()) { - auto actualPgType = actualType->Cast(); - YQL_ENSURE(actualPgType); - - auto* typeDesc = NKikimr::NPg::TypeDescFromPgTypeId(actualPgType->GetId()); - if (!typeDesc) { - ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), - TStringBuilder() << "Failed to parse default expr typename " << actualPgType->GetName())); - return TStatus::Error; - } - - TString content = TString(pgConst.Cast().Value().Value()); - auto parseResult = NKikimr::NPg::PgNativeBinaryFromNativeText(content, typeDesc); - if (parseResult.Error) { - ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), - TStringBuilder() << "Failed to parse default expr for typename " << actualPgType->GetName() - << ", error reason: " << *parseResult.Error)); - return TStatus::Error; - } - - columnMeta.DefaultFromLiteral.mutable_value()->set_bytes_value(parseResult.Str); - auto* pg = columnMeta.DefaultFromLiteral.mutable_type()->mutable_pg_type(); - - pg->set_type_name(NKikimr::NPg::PgTypeNameFromTypeDesc(typeDesc)); - pg->set_oid(NKikimr::NPg::PgTypeIdFromTypeDesc(typeDesc)); - } else if (auto literal = constraint.Value().Maybe()) { - FillLiteralProto(constraint.Value().Cast(), columnMeta.DefaultFromLiteral); - } else { - ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), - TStringBuilder() << "Unsupported type of default value " << constraint.Value().Cast().Ptr()->Content())); - return TStatus::Error; - } - - } else if (constraint.Name().Value() == "serial") { - - if (columnMeta.IsDefaultKindDefined()) { - ctx.AddError(TIssue(ctx.GetPosition(create.Pos()), TStringBuilder() << "Default setting for " - << columnName << " column is already set: " - << NKikimrKqp::TKqpColumnMetadataProto::EDefaultKind_Name(columnMeta.DefaultKind))); - return TStatus::Error; - } + bool needEval = false; + if (!ParseConstraintNode(ctx, columnMeta, columnTuple, constraint, SessionCtx->Config(), needEval)) { + return TStatus::Error; + } - columnMeta.DefaultFromSequence = "_serial_column_" + columnMeta.Name; - columnMeta.SetDefaultFromSequence(); - } else if (constraint.Name().Value() == "not_null") { - columnMeta.NotNull = true; + if (needEval) { + ctx.Step.Repeat(TExprStep::ExprEval); + return TStatus(TStatus::Repeat, true); } } } @@ -1261,23 +1296,20 @@ virtual TStatus HandleCreateTable(TKiCreateTable create, TExprContext& ctx) over return IGraphTransformer::TStatus::Error; } + TKikimrColumnMetadata columnMeta; + // columnMeta.Name = columnName; + columnMeta.Type = GetColumnTypeName(actualType); if (columnTuple.Size() > 2) { const auto& columnConstraints = columnTuple.Item(2).Cast(); for(const auto& constraint: columnConstraints.Value().Cast()) { - if (constraint.Name().Value() == "default") { - auto defaultType = constraint.Value().Ref().GetTypeAnn(); - - if (!SessionCtx->Config().EnableColumnsWithDefault) { - ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), - "Columns with default values are not supported yet.")); - return TStatus::Error; - } + bool needEval = false; + if (!ParseConstraintNode(ctx, columnMeta, columnTuple, constraint, SessionCtx->Config(), needEval, true)) { + return TStatus::Error; + } - if (!IsSameAnnotation(*defaultType, *actualType)) { - ctx.AddError(TIssue(ctx.GetPosition(constraint.Pos()), TStringBuilder() << "Default expr " << name - << " type mismatch, expected: " << (*type) << ", actual: " << *(actualType))); - return TStatus::Error; - } + if (needEval) { + ctx.Step.Repeat(TExprStep::ExprEval); + return TStatus(TStatus::Repeat, true); } } } @@ -1838,6 +1870,20 @@ TAutoPtr CreateKiSinkTypeAnnotationTransformer(TIntrusivePtr< return new TKiSinkTypeAnnotationTransformer(gateway, sessionCtx, types); } +const TTypeAnnotationNode* GetReadTableRowType(TExprContext& ctx, const TKikimrTablesData& tablesData, + const TString& cluster, const TString& table, TPositionHandle pos, bool withSystemColumns) +{ + auto tableDesc = tablesData.EnsureTableExists(cluster, table, pos, ctx); + if (!tableDesc) { + return nullptr; + } + TVector columns; + for (auto&& [column, _] : tableDesc->Metadata->Columns) { + columns.push_back(Build(ctx, pos).Value(column).Done()); + } + return GetReadTableRowType(ctx, tablesData, cluster, table, Build(ctx, pos).Add(columns).Done(), withSystemColumns); +} + const TTypeAnnotationNode* GetReadTableRowType(TExprContext& ctx, const TKikimrTablesData& tablesData, const TString& cluster, const TString& table, TCoAtomList select, bool withSystemColumns) { diff --git a/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp b/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp index f19e2e74e82d..8755961afbf8 100644 --- a/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp +++ b/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp @@ -863,7 +863,7 @@ class TKqpProxyService : public TActorBootstrapped { } const TKqpSessionInfo* info = LocalSessions->FindPtr(proxyRequest->SessionId); - if (info) { + if (info && !info->AttachedRpcId) { LocalSessions->StartIdleCheck(info, GetSessionIdleDuration()); } diff --git a/ydb/core/kqp/proxy_service/kqp_proxy_ut.cpp b/ydb/core/kqp/proxy_service/kqp_proxy_ut.cpp index 3e090a42c665..e88af0455f22 100644 --- a/ydb/core/kqp/proxy_service/kqp_proxy_ut.cpp +++ b/ydb/core/kqp/proxy_service/kqp_proxy_ut.cpp @@ -492,8 +492,8 @@ Y_UNIT_TEST_SUITE(KqpProxy) { Y_UNIT_TEST(ExecuteScriptFailsWithoutFeatureFlag) { NKikimrConfig::TAppConfig appConfig; + appConfig.MutableFeatureFlags()->SetEnableScriptExecutionOperations(false); NYdb::TKikimrWithGrpcAndRootSchema server(appConfig); - appConfig.MutableFeatureFlags()->SetEnableScriptExecutionOperations(false); // default server.Server_->GetRuntime()->SetLogPriority(NKikimrServices::KQP_PROXY, NActors::NLog::PRI_DEBUG); ui16 grpc = server.GetPort(); diff --git a/ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-arm64.txt index 77043f71f6ea..5c032f37f658 100644 --- a/ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-arm64.txt @@ -29,6 +29,9 @@ target_link_libraries(kqp-proxy_service-proto PUBLIC target_proto_messages(kqp-proxy_service-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/proto/result_set_meta.proto ) +target_sources(kqp-proxy_service-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/kqp/proxy_service/proto/result_set_meta.pb.h +) target_proto_addincls(kqp-proxy_service-proto ./ ${CMAKE_SOURCE_DIR}/ 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 index 77043f71f6ea..5c032f37f658 100644 --- a/ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/proxy_service/proto/CMakeLists.darwin-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(kqp-proxy_service-proto PUBLIC target_proto_messages(kqp-proxy_service-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/proto/result_set_meta.proto ) +target_sources(kqp-proxy_service-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/kqp/proxy_service/proto/result_set_meta.pb.h +) target_proto_addincls(kqp-proxy_service-proto ./ ${CMAKE_SOURCE_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 index d82687a820e6..84ed8fb8ec24 100644 --- a/ydb/core/kqp/proxy_service/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/proxy_service/proto/CMakeLists.linux-aarch64.txt @@ -30,6 +30,9 @@ target_link_libraries(kqp-proxy_service-proto PUBLIC target_proto_messages(kqp-proxy_service-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/proto/result_set_meta.proto ) +target_sources(kqp-proxy_service-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/kqp/proxy_service/proto/result_set_meta.pb.h +) target_proto_addincls(kqp-proxy_service-proto ./ ${CMAKE_SOURCE_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 index d82687a820e6..84ed8fb8ec24 100644 --- a/ydb/core/kqp/proxy_service/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/proxy_service/proto/CMakeLists.linux-x86_64.txt @@ -30,6 +30,9 @@ target_link_libraries(kqp-proxy_service-proto PUBLIC target_proto_messages(kqp-proxy_service-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/proto/result_set_meta.proto ) +target_sources(kqp-proxy_service-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/kqp/proxy_service/proto/result_set_meta.pb.h +) target_proto_addincls(kqp-proxy_service-proto ./ ${CMAKE_SOURCE_DIR}/ 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 index 77043f71f6ea..5c032f37f658 100644 --- a/ydb/core/kqp/proxy_service/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/proxy_service/proto/CMakeLists.windows-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(kqp-proxy_service-proto PUBLIC target_proto_messages(kqp-proxy_service-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/proto/result_set_meta.proto ) +target_sources(kqp-proxy_service-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/kqp/proxy_service/proto/result_set_meta.pb.h +) target_proto_addincls(kqp-proxy_service-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-arm64.txt index 594d7057a1ef..31e544b0845d 100644 --- a/ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-arm64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-core-kqp-proxy_service-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-proxy_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_proxy_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-x86_64.txt index 57628ebbe8e2..9a877defd529 100644 --- a/ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/proxy_service/ut/CMakeLists.darwin-x86_64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-core-kqp-proxy_service-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-proxy_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_proxy_ut.cpp @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-aarch64.txt index 814ff9005136..71c3dd20d9ac 100644 --- a/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-core-kqp-proxy_service-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-proxy_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_proxy_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-x86_64.txt index 02dfeb9a31aa..1dc77982d9a0 100644 --- a/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/proxy_service/ut/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-core-kqp-proxy_service-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-proxy_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/proxy_service/kqp_proxy_ut.cpp @@ -67,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/proxy_service/ut/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/proxy_service/ut/CMakeLists.windows-x86_64.txt index f212868dc99e..6ee526db91a6 100644 --- a/ydb/core/kqp/proxy_service/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/proxy_service/ut/CMakeLists.windows-x86_64.txt @@ -56,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/query_compiler/kqp_olap_compiler.cpp b/ydb/core/kqp/query_compiler/kqp_olap_compiler.cpp index 99020fee6c3c..607275379565 100644 --- a/ydb/core/kqp/query_compiler/kqp_olap_compiler.cpp +++ b/ydb/core/kqp/query_compiler/kqp_olap_compiler.cpp @@ -489,6 +489,12 @@ ui64 CompileSimpleArrowComparison(const TKqpOlapFilterBinaryOp& comparison, TKqp function = TProgram::TAssignment::FUNC_CMP_GREATER; } else if (comparison.Operator() == "gte") { function = TProgram::TAssignment::FUNC_CMP_GREATER_EQUAL; + } else if (comparison.Operator() == "string_contains") { + function = TProgram::TAssignment::FUNC_STR_MATCH; + } else if (comparison.Operator() == "starts_with") { + function = TProgram::TAssignment::FUNC_STR_STARTS_WITH; + } else if (comparison.Operator() == "ends_with") { + function = TProgram::TAssignment::FUNC_STR_ENDS_WITH; } cmpFunc->SetId(function); @@ -620,6 +626,7 @@ TTypedColumn CompileYqlKernelUnaryOperation(const TKqpOlapFilterUnaryOp& operati return {command->GetColumn().GetId(), resultType}; } +[[maybe_unused]] TTypedColumn CompileYqlKernelBinaryOperation(const TKqpOlapFilterBinaryOp& operation, TKqpOlapCompileContext& ctx) { // Columns should be created before operation, otherwise operation fail to find columns @@ -682,7 +689,7 @@ TTypedColumn CompileYqlKernelBinaryOperation(const TKqpOlapFilterBinaryOp& opera } template -const TTypedColumn BuildLogicalProgram(const TExprNode::TChildrenType& args, const TFunc function, TKqpOlapCompileContext& ctx) +const TTypedColumn BuildLogicalProgram(TPositionHandle pos, const TExprNode::TChildrenType& args, const TFunc function, TKqpOlapCompileContext& ctx) { const auto childrenCount = args.size(); if (childrenCount == 1) { @@ -693,23 +700,24 @@ const TTypedColumn BuildLogicalProgram(const TExprNode::TChildrenType& args, con const bool twoArgs = 2U == childrenCount; const auto half = childrenCount >> 1U; - const auto left = twoArgs ? GetOrCreateColumnIdAndType(TExprBase(args.front()), ctx) : BuildLogicalProgram(args.subspan(0U, half), function, ctx); - const auto right = twoArgs ? GetOrCreateColumnIdAndType(TExprBase(args.back()), ctx) : BuildLogicalProgram(args.subspan(half), function, ctx); + const auto left = twoArgs ? GetOrCreateColumnIdAndType(TExprBase(args.front()), ctx) : BuildLogicalProgram(pos, args.subspan(0U, half), function, ctx); + const auto right = twoArgs ? GetOrCreateColumnIdAndType(TExprBase(args.back()), ctx) : BuildLogicalProgram(pos, args.subspan(half), function, ctx); auto *const logicalOp = ctx.CreateAssignCmd(); auto *const logicalFunc = logicalOp->MutableFunction(); logicalFunc->AddArguments()->SetId(left.Id); logicalFunc->AddArguments()->SetId(right.Id); - const auto block = ctx.ExprCtx().MakeType(ctx.ExprCtx().MakeType(ctx.ExprCtx().MakeType(EDataSlot::Bool))); + const TTypeAnnotationNode* block = nullptr; if constexpr (std::is_same()) { - const auto idx = ctx.GetKernelRequestBuilder().AddBinaryOp(function, block, block, block); - logicalFunc->SetKernelIdx(idx); + const auto kernel = ctx.AddYqlKernelBinaryFunc(pos, function, *left.Type, *right.Type, nullptr); + block = kernel.second; + logicalFunc->SetKernelIdx(kernel.first); logicalFunc->SetFunctionType(TProgram::YQL_KERNEL); logicalFunc->SetYqlOperationId((ui32)function); } else { - logicalFunc->SetFunctionType(function); logicalFunc->SetId((ui32)function); + block = ctx.ExprCtx().MakeType(ctx.ExprCtx().MakeType(ctx.ExprCtx().MakeType(EDataSlot::Bool))); } return {logicalOp->GetColumn().GetId(), block}; @@ -740,22 +748,38 @@ const TTypedColumn BuildLogicalNot(const TExprBase& arg, TKqpOlapCompileContext& TTypedColumn GetOrCreateColumnIdAndType(const TExprBase& node, TKqpOlapCompileContext& ctx) { if (const auto& maybeBinaryOp = node.Maybe()) { - if (const auto& binaryOp = maybeBinaryOp.Cast(); ctx.CheckYqlCompatibleArgsTypes(binaryOp)) { - return CompileYqlKernelBinaryOperation(binaryOp, ctx); + if constexpr (NSsa::RuntimeVersion >= 4U) { + if (const auto& binaryOp = maybeBinaryOp.Cast(); ctx.CheckYqlCompatibleArgsTypes(binaryOp)) { + return CompileYqlKernelBinaryOperation(binaryOp, ctx); + } else { + return { + ConvertSafeCastToColumn(CompileSimpleArrowComparison(binaryOp, ctx), "Uint8", ctx), + ctx.ExprCtx().MakeType(ctx.ExprCtx().MakeType(EDataSlot::Bool)) + }; + } } else { return { - ConvertSafeCastToColumn(CompileSimpleArrowComparison(binaryOp, ctx), "Uint8", ctx), - ctx.ExprCtx().MakeType(ctx.ExprCtx().MakeType(EDataSlot::Uint8)) + CompileSimpleArrowComparison(maybeBinaryOp.Cast(), ctx), + ctx.ExprCtx().MakeType(ctx.ExprCtx().MakeType(EDataSlot::Bool)) }; } } else if (const auto& maybeUnaryOp = node.Maybe()) { return CompileYqlKernelUnaryOperation(maybeUnaryOp.Cast(), ctx); } else if (const auto& maybeAnd = node.Maybe()) { - return BuildLogicalProgram(maybeAnd.Ref().Children(), TKernelRequestBuilder::EBinaryOp::And, ctx); + if constexpr (NSsa::RuntimeVersion >= 4U) + return BuildLogicalProgram(node.Pos(), maybeAnd.Ref().Children(), TKernelRequestBuilder::EBinaryOp::And, ctx); + else + return BuildLogicalProgram(node.Pos(), maybeAnd.Ref().Children(), TProgram::TAssignment::FUNC_BINARY_AND, ctx); } else if (const auto& maybeOr = node.Maybe()) { - return BuildLogicalProgram(maybeOr.Ref().Children(), TKernelRequestBuilder::EBinaryOp::Or, ctx); + if constexpr (NSsa::RuntimeVersion >= 4U) + return BuildLogicalProgram(node.Pos(), maybeOr.Ref().Children(), TKernelRequestBuilder::EBinaryOp::Or, ctx); + else + return BuildLogicalProgram(node.Pos(), maybeOr.Ref().Children(), TProgram::TAssignment::FUNC_BINARY_OR, ctx); } else if (const auto& maybeXor = node.Maybe()) { - return BuildLogicalProgram(maybeXor.Ref().Children(), TKernelRequestBuilder::EBinaryOp::Xor, ctx); + if constexpr (NSsa::RuntimeVersion >= 4U) + return BuildLogicalProgram(node.Pos(), maybeXor.Ref().Children(), TKernelRequestBuilder::EBinaryOp::Xor, ctx); + else + return BuildLogicalProgram(node.Pos(), maybeXor.Ref().Children(), TProgram::TAssignment::FUNC_BINARY_XOR, ctx); } else if (const auto& maybeNot = node.Maybe()) { return BuildLogicalNot(maybeNot.Cast().Value(), ctx); } else if (const auto& maybeJsonValue = node.Maybe()) { @@ -825,9 +849,9 @@ ui64 CompileCondition(const TExprBase& condition, TKqpOlapCompileContext& ctx) { } if constexpr (NSsa::RuntimeVersion >= 4U) - return BuildLogicalProgram(condition.Ref().Children(), op, ctx).Id; + return BuildLogicalProgram(condition.Pos(), condition.Ref().Children(), op, ctx).Id; else - return BuildLogicalProgram(condition.Ref().Children(), function, ctx).Id; + return BuildLogicalProgram(condition.Pos(), condition.Ref().Children(), function, ctx).Id; } void CompileFilter(const TKqpOlapFilter& filterNode, TKqpOlapCompileContext& ctx) { diff --git a/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp b/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp index eb485955fd45..3e75c1b9ba42 100644 --- a/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp +++ b/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp @@ -174,6 +174,7 @@ void FillTable(const TKikimrTableMetadata& tableMeta, THashSet&& col phyColumn.MutableId()->SetId(column->Id); phyColumn.MutableId()->SetName(column->Name); phyColumn.SetTypeId(column->TypeInfo.GetTypeId()); + phyColumn.SetIsBuildInProgress(column->IsBuildInProgress); if (column->IsDefaultFromSequence()) { phyColumn.SetDefaultFromSequence(column->DefaultFromSequence); } else if (column->IsDefaultFromLiteral()) { diff --git a/ydb/core/kqp/query_data/kqp_query_data.cpp b/ydb/core/kqp/query_data/kqp_query_data.cpp index c673182b5111..7debbaf9da02 100644 --- a/ydb/core/kqp/query_data/kqp_query_data.cpp +++ b/ydb/core/kqp/query_data/kqp_query_data.cpp @@ -77,6 +77,17 @@ Ydb::ResultSet* TKqpExecuterTxResult::GetYdb(google::protobuf::Arena* arena, TMa return ydbResult; } +Ydb::ResultSet* TKqpExecuterTxResult::ExtractTrailingYdb(google::protobuf::Arena* arena) { + if (!HasTrailingResult) + return nullptr; + + Ydb::ResultSet* ydbResult = google::protobuf::Arena::CreateMessage(arena); + ydbResult->Swap(&TrailingResult); + + return ydbResult; +} + + void TKqpExecuterTxResult::FillYdb(Ydb::ResultSet* ydbResult, TMaybe rowsLimitPerWrite) { YQL_ENSURE(ydbResult); YQL_ENSURE(!Rows.IsWide()); @@ -89,7 +100,7 @@ void TKqpExecuterTxResult::FillYdb(Ydb::ResultSet* ydbResult, TMaybe rowsL column->set_name(TString(mkqlSrcRowStructType->GetMemberName(memberIndex))); ExportTypeToProto(mkqlSrcRowStructType->GetMemberType(memberIndex), *column->mutable_type()); } - + Rows.ForEachRow([&](const NUdf::TUnboxedValue& value) -> bool { if (rowsLimitPerWrite) { if (*rowsLimitPerWrite == 0) { @@ -224,6 +235,13 @@ NKikimrMiniKQL::TResult* TQueryData::GetMkqlTxResult(const NKqpProto::TKqpPhyRes return TxResults[txIndex][resultIndex].GetMkql(arena); } +Ydb::ResultSet* TQueryData::ExtractTrailingTxResult(const NKqpProto::TKqpPhyResultBinding& rb, google::protobuf::Arena* arena) { + auto txIndex = rb.GetTxResultBinding().GetTxIndex(); + auto resultIndex = rb.GetTxResultBinding().GetResultIndex(); + return TxResults[txIndex][resultIndex].ExtractTrailingYdb(arena); +} + + Ydb::ResultSet* TQueryData::GetYdbTxResult(const NKqpProto::TKqpPhyResultBinding& rb, google::protobuf::Arena* arena, TMaybe rowsLimitPerWrite) { auto txIndex = rb.GetTxResultBinding().GetTxIndex(); auto resultIndex = rb.GetTxResultBinding().GetResultIndex(); diff --git a/ydb/core/kqp/query_data/kqp_query_data.h b/ydb/core/kqp/query_data/kqp_query_data.h index 181e13bc3b8a..9c380c090965 100644 --- a/ydb/core/kqp/query_data/kqp_query_data.h +++ b/ydb/core/kqp/query_data/kqp_query_data.h @@ -81,6 +81,8 @@ struct TKqpExecuterTxResult { const TVector* ColumnOrder = nullptr; TMaybe QueryResultIndex = 0; NKikimr::NMiniKQL::TUnboxedValueBatch Rows; + Ydb::ResultSet TrailingResult; + bool HasTrailingResult = false; explicit TKqpExecuterTxResult( bool isStream, @@ -98,6 +100,7 @@ struct TKqpExecuterTxResult { NKikimrMiniKQL::TResult* GetMkql(google::protobuf::Arena* arena); NKikimrMiniKQL::TResult GetMkql(); Ydb::ResultSet* GetYdb(google::protobuf::Arena* arena, TMaybe rowsLimitPerWrite); + Ydb::ResultSet* ExtractTrailingYdb(google::protobuf::Arena* arena); void FillMkql(NKikimrMiniKQL::TResult* mkqlResult); void FillYdb(Ydb::ResultSet* ydbResult, TMaybe rowsLimitPerWrite); @@ -250,6 +253,7 @@ class TQueryData : NMiniKQL::ITerminator { TTypedUnboxedValue GetTxResult(ui32 txIndex, ui32 resultIndex); NKikimrMiniKQL::TResult* GetMkqlTxResult(const NKqpProto::TKqpPhyResultBinding& rb, google::protobuf::Arena* arena); Ydb::ResultSet* GetYdbTxResult(const NKqpProto::TKqpPhyResultBinding& rb, google::protobuf::Arena* arena, TMaybe rowsLimitPerWrite); + Ydb::ResultSet* ExtractTrailingTxResult(const NKqpProto::TKqpPhyResultBinding& rb, google::protobuf::Arena* arena); std::pair GetInternalBindingValue(const NKqpProto::TKqpPhyParamBinding& paramBinding); TTypedUnboxedValue& GetParameterUnboxedValue(const TString& name); diff --git a/ydb/core/kqp/rm_service/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/rm_service/ut/CMakeLists.darwin-arm64.txt index 5ac5f51152e9..ccc649473f1d 100644 --- a/ydb/core/kqp/rm_service/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/rm_service/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-kqp-rm_service-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-rm_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/rm_service/kqp_resource_estimation_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/rm_service/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/rm_service/ut/CMakeLists.darwin-x86_64.txt index 90803ca9ac0e..5c2edada9f81 100644 --- a/ydb/core/kqp/rm_service/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/rm_service/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kqp-rm_service-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-rm_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/rm_service/kqp_resource_estimation_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/rm_service/ut/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/rm_service/ut/CMakeLists.linux-aarch64.txt index ec9e3500580c..9f12a0585161 100644 --- a/ydb/core/kqp/rm_service/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/rm_service/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-kqp-rm_service-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-rm_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/rm_service/kqp_resource_estimation_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/rm_service/ut/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/rm_service/ut/CMakeLists.linux-x86_64.txt index cecb6c4da74d..a7a625f72156 100644 --- a/ydb/core/kqp/rm_service/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/rm_service/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kqp-rm_service-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-rm_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/rm_service/kqp_resource_estimation_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/rm_service/ut/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/rm_service/ut/CMakeLists.windows-x86_64.txt index 622141b812d0..d04853f86136 100644 --- a/ydb/core/kqp/rm_service/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/rm_service/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/runtime/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/runtime/CMakeLists.darwin-arm64.txt index c297a48ab8d1..e2bf7cc9e2fb 100644 --- a/ydb/core/kqp/runtime/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/runtime/CMakeLists.darwin-arm64.txt @@ -25,7 +25,8 @@ target_link_libraries(core-kqp-runtime PUBLIC ydb-core-protos ydb-core-scheme ydb-core-ydb_convert - minikql-comp_nodes-llvm + minikql-computation-llvm14 + yql-minikql-comp_nodes library-yql-utils dq-actors-protos dq-actors-spilling @@ -34,6 +35,10 @@ target_link_libraries(core-kqp-runtime PUBLIC cpp-threading-hot_swap ) target_sources(core-kqp-runtime PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_runtime_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_factory.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_worker.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_compute.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_effects.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_output_stream.cpp @@ -49,4 +54,5 @@ target_sources(core-kqp-runtime PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_worker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_tasks_runner.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_transport.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_write_actor.cpp ) diff --git a/ydb/core/kqp/runtime/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/runtime/CMakeLists.darwin-x86_64.txt index c297a48ab8d1..e2bf7cc9e2fb 100644 --- a/ydb/core/kqp/runtime/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/runtime/CMakeLists.darwin-x86_64.txt @@ -25,7 +25,8 @@ target_link_libraries(core-kqp-runtime PUBLIC ydb-core-protos ydb-core-scheme ydb-core-ydb_convert - minikql-comp_nodes-llvm + minikql-computation-llvm14 + yql-minikql-comp_nodes library-yql-utils dq-actors-protos dq-actors-spilling @@ -34,6 +35,10 @@ target_link_libraries(core-kqp-runtime PUBLIC cpp-threading-hot_swap ) target_sources(core-kqp-runtime PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_runtime_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_factory.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_worker.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_compute.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_effects.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_output_stream.cpp @@ -49,4 +54,5 @@ target_sources(core-kqp-runtime PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_worker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_tasks_runner.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_transport.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_write_actor.cpp ) diff --git a/ydb/core/kqp/runtime/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/runtime/CMakeLists.linux-aarch64.txt index ba1adf7be3e3..a6748de86839 100644 --- a/ydb/core/kqp/runtime/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/runtime/CMakeLists.linux-aarch64.txt @@ -26,7 +26,8 @@ target_link_libraries(core-kqp-runtime PUBLIC ydb-core-protos ydb-core-scheme ydb-core-ydb_convert - minikql-comp_nodes-llvm + minikql-computation-llvm14 + yql-minikql-comp_nodes library-yql-utils dq-actors-protos dq-actors-spilling @@ -35,6 +36,10 @@ target_link_libraries(core-kqp-runtime PUBLIC cpp-threading-hot_swap ) target_sources(core-kqp-runtime PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_runtime_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_factory.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_worker.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_compute.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_effects.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_output_stream.cpp @@ -50,4 +55,5 @@ target_sources(core-kqp-runtime PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_worker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_tasks_runner.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_transport.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_write_actor.cpp ) diff --git a/ydb/core/kqp/runtime/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/runtime/CMakeLists.linux-x86_64.txt index ba1adf7be3e3..a6748de86839 100644 --- a/ydb/core/kqp/runtime/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/runtime/CMakeLists.linux-x86_64.txt @@ -26,7 +26,8 @@ target_link_libraries(core-kqp-runtime PUBLIC ydb-core-protos ydb-core-scheme ydb-core-ydb_convert - minikql-comp_nodes-llvm + minikql-computation-llvm14 + yql-minikql-comp_nodes library-yql-utils dq-actors-protos dq-actors-spilling @@ -35,6 +36,10 @@ target_link_libraries(core-kqp-runtime PUBLIC cpp-threading-hot_swap ) target_sources(core-kqp-runtime PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_runtime_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_factory.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_worker.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_compute.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_effects.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_output_stream.cpp @@ -50,4 +55,5 @@ target_sources(core-kqp-runtime PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_worker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_tasks_runner.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_transport.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_write_actor.cpp ) diff --git a/ydb/core/kqp/runtime/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/runtime/CMakeLists.windows-x86_64.txt index c297a48ab8d1..e2bf7cc9e2fb 100644 --- a/ydb/core/kqp/runtime/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/runtime/CMakeLists.windows-x86_64.txt @@ -25,7 +25,8 @@ target_link_libraries(core-kqp-runtime PUBLIC ydb-core-protos ydb-core-scheme ydb-core-ydb_convert - minikql-comp_nodes-llvm + minikql-computation-llvm14 + yql-minikql-comp_nodes library-yql-utils dq-actors-protos dq-actors-spilling @@ -34,6 +35,10 @@ target_link_libraries(core-kqp-runtime PUBLIC cpp-threading-hot_swap ) target_sources(core-kqp-runtime PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_runtime_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_factory.h + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_worker.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_compute.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_effects.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_output_stream.cpp @@ -49,4 +54,5 @@ target_sources(core-kqp-runtime PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_stream_lookup_worker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_tasks_runner.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_transport.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_write_actor.cpp ) diff --git a/ydb/core/kqp/runtime/kqp_read_actor.cpp b/ydb/core/kqp/runtime/kqp_read_actor.cpp index 9d1815092fab..75e09b43c8f7 100644 --- a/ydb/core/kqp/runtime/kqp_read_actor.cpp +++ b/ydb/core/kqp/runtime/kqp_read_actor.cpp @@ -308,8 +308,11 @@ class TKqpReadActor : public TActorBootstrapped, public NYql::NDq sb << ", "; } } - sb << "], " - << ", RetryAttempt: " << RetryAttempt << ", ResolveAttempt: " << ResolveAttempt << " }"; + sb << "], Points: ["; + for(size_t i = 0; i < Points.size(); ++i) { + sb << "# " << i << ": " << DebugPrintPoint(keyTypes, Points[i].GetCells(), *AppData()->TypeRegistry); + } + sb << "], RetryAttempt: " << RetryAttempt << ", ResolveAttempt: " << ResolveAttempt << " }"; return sb; } @@ -728,8 +731,8 @@ class TKqpReadActor : public TActorBootstrapped, public NYql::NDq if (intersection == 0) { newShard->AddPoint(std::move(points[pointIndex])); CA_LOG_D("Add point to new shardId: " << partition.ShardId); - } - if (intersection < 0) { + } else { + YQL_ENSURE(intersection > 0, "Missed intersection of point and partition ranges."); break; } pointIndex += 1; @@ -1136,7 +1139,7 @@ class TKqpReadActor : public TActorBootstrapped, public NYql::NDq NMiniKQL::WriteColumnValuesFromArrow(editAccessors, NMiniKQL::TBatchDataAccessor(result->Get()->GetArrowBatch()), columnIndex, resultColumnIndex, column.TypeInfo) ); if (column.NotNull) { - std::shared_ptr columnSharedPtr = result->Get()->GetArrowBatch()->column(columnIndex); + std::shared_ptr columnSharedPtr = result->Get()->GetArrowBatch()->column(columnIndex); bool gotNullValue = false; for (ui64 rowIndex = 0; rowIndex < result->Get()->GetRowsCount(); ++rowIndex) { if (columnSharedPtr->IsNull(rowIndex)) { @@ -1181,9 +1184,14 @@ class TKqpReadActor : public TActorBootstrapped, public NYql::NDq } NMiniKQL::TBytesStatistics PackCells(TResult& handle, i64& freeSpace) { - auto& [shardId, result, batch, _, packed] = handle; + auto& [shardId, result, batch, processedRows, packed] = handle; NMiniKQL::TBytesStatistics stats; batch->reserve(batch->size()); + CA_LOG_D(TStringBuilder() << "enter pack cells method " + << " shardId: " << shardId + << " processedRows: " << processedRows + << " packed rows: " << packed + << " freeSpace: " << freeSpace); for (size_t rowIndex = packed; rowIndex < result->Get()->GetRowsCount(); ++rowIndex) { const auto& row = result->Get()->GetCells(rowIndex); @@ -1225,6 +1233,12 @@ class TKqpReadActor : public TActorBootstrapped, public NYql::NDq break; } } + + CA_LOG_D(TStringBuilder() << "exit pack cells method " + << " shardId: " << shardId + << " processedRows: " << processedRows + << " packed rows: " << packed + << " freeSpace: " << freeSpace); return stats; } @@ -1246,7 +1260,9 @@ class TKqpReadActor : public TActorBootstrapped, public NYql::NDq YQL_ENSURE(!resultBatch.IsWide(), "Wide stream is not supported"); - CA_LOG_D(TStringBuilder() << " enter getasyncinputdata results size " << Results.size()); + CA_LOG_D(TStringBuilder() << " enter getasyncinputdata results size " << Results.size() + << ", freeSpace " << freeSpace); + ui64 bytes = 0; while (!Results.empty()) { auto& result = Results.front(); @@ -1255,14 +1271,15 @@ class TKqpReadActor : public TActorBootstrapped, public NYql::NDq auto& msg = *result.ReadResult->Get(); if (!batch.Defined()) { batch.ConstructInPlace(); - switch (msg.Record.GetResultFormat()) { - case NKikimrDataEvents::FORMAT_ARROW: - BytesStats.AddStatistics(PackArrow(result, freeSpace)); - break; - case NKikimrDataEvents::FORMAT_UNSPECIFIED: - case NKikimrDataEvents::FORMAT_CELLVEC: - BytesStats.AddStatistics(PackCells(result, freeSpace)); - } + } + + switch (msg.Record.GetResultFormat()) { + case NKikimrDataEvents::FORMAT_ARROW: + BytesStats.AddStatistics(PackArrow(result, freeSpace)); + break; + case NKikimrDataEvents::FORMAT_UNSPECIFIED: + case NKikimrDataEvents::FORMAT_CELLVEC: + BytesStats.AddStatistics(PackCells(result, freeSpace)); } auto id = result.ReadResult->Get()->Record.GetReadId(); @@ -1334,6 +1351,7 @@ class TKqpReadActor : public TActorBootstrapped, public NYql::NDq CA_LOG_D(TStringBuilder() << "returned async data" << " processed rows " << ProcessedRowCount + << " left freeSpace " << freeSpace << " received rows " << ReceivedRowCount << " running reads " << RunningReads() << " pending shards " << PendingShards.Size() diff --git a/ydb/core/kqp/runtime/kqp_scan_data.cpp b/ydb/core/kqp/runtime/kqp_scan_data.cpp index 7e8ef778f752..9ac41c01f221 100644 --- a/ydb/core/kqp/runtime/kqp_scan_data.cpp +++ b/ydb/core/kqp/runtime/kqp_scan_data.cpp @@ -3,6 +3,8 @@ #include #include #include +#include +#include #include #include @@ -210,11 +212,11 @@ template (array.Value(rowIndex))); } - static void Validate(TArrayType& /*array*/) { + static void Validate(const TArrayType& /*array*/) { } @@ -227,13 +229,13 @@ template <> class TElementAccessor { public: using TArrayType = arrow::Decimal128Array; - static void Validate(arrow::Decimal128Array& array) { + static void Validate(const arrow::Decimal128Array& array) { const auto& type = arrow::internal::checked_cast(*array.type()); YQL_ENSURE(type.precision() == NScheme::DECIMAL_PRECISION, "Unsupported Decimal precision."); YQL_ENSURE(type.scale() == NScheme::DECIMAL_SCALE, "Unsupported Decimal scale."); } - static NYql::NUdf::TUnboxedValue ExtractValue(arrow::Decimal128Array& array, const ui32 rowIndex) { + static NYql::NUdf::TUnboxedValue ExtractValue(const arrow::Decimal128Array& array, const ui32 rowIndex) { auto data = array.GetView(rowIndex); YQL_ENSURE(data.size() == sizeof(NYql::NDecimal::TInt128), "Wrong data size"); NYql::NDecimal::TInt128 val; @@ -249,10 +251,10 @@ template <> class TElementAccessor { public: using TArrayType = arrow::BinaryArray; - static void Validate(arrow::BinaryArray& /*array*/) { + static void Validate(const arrow::BinaryArray& /*array*/) { } - static NYql::NUdf::TUnboxedValue ExtractValue(arrow::BinaryArray& array, const ui32 rowIndex) { + static NYql::NUdf::TUnboxedValue ExtractValue(const arrow::BinaryArray& array, const ui32 rowIndex) { auto data = array.GetView(rowIndex); return MakeString(NUdf::TStringRef(data.data(), data.size())); } @@ -265,10 +267,10 @@ template <> class TElementAccessor { public: using TArrayType = arrow::FixedSizeBinaryArray; - static void Validate(arrow::FixedSizeBinaryArray& /*array*/) { + static void Validate(const arrow::FixedSizeBinaryArray& /*array*/) { } - static NYql::NUdf::TUnboxedValue ExtractValue(arrow::FixedSizeBinaryArray& array, const ui32 rowIndex) { + static NYql::NUdf::TUnboxedValue ExtractValue(const arrow::FixedSizeBinaryArray& array, const ui32 rowIndex) { auto data = array.GetView(rowIndex); return MakeString(NUdf::TStringRef(data.data(), data.size() - 1)); } @@ -281,26 +283,52 @@ class TElementAccessor { template TBytesStatistics WriteColumnValuesFromArrowSpecImpl(TAccessor editAccessor, - const TBatchDataAccessor& batch, const ui32 columnIndex, arrow::Array* arrayExt, NScheme::TTypeInfo columnType) { - auto& array = *reinterpret_cast(arrayExt); - TElementAccessor::Validate(array); + const TBatchDataAccessor& batch, const ui32 columnIndex, const std::shared_ptr& chunkedArrayExt, NScheme::TTypeInfo columnType) { auto statAccumulator = TElementAccessor::BuildStatAccumulator(columnType); + auto trivialChunkedArray = std::make_shared(chunkedArrayExt); + NArrow::NAccessor::IChunkedArray::TReader reader(trivialChunkedArray); + + std::optional chunkIdx; + std::optional currentIdxFrom; + std::optional address; + const typename TElementAccessor::TArrayType* currentArray = nullptr; const auto applyToIndex = [&](const ui32 rowIndexFrom, const ui32 rowIndexTo) { + if (!currentIdxFrom) { + address = reader.GetReadChunk(rowIndexFrom); + AFL_ENSURE(rowIndexFrom == 0)("real", rowIndexFrom); + } else { + AFL_ENSURE(rowIndexFrom == *currentIdxFrom + 1)("next", rowIndexFrom)("current", *currentIdxFrom); + if (!address->NextPosition()) { + address = reader.GetReadChunk(rowIndexFrom); + } + } + currentIdxFrom = rowIndexFrom; + + if (!chunkIdx || *chunkIdx != address->GetChunkIdx()) { + currentArray = static_cast(address->GetArray().get()); + TElementAccessor::Validate(*currentArray); + chunkIdx = address->GetChunkIdx(); + } + auto& rowItem = editAccessor(rowIndexTo, columnIndex); - if (array.IsNull(rowIndexFrom)) { + if (currentArray->IsNull(address->GetPosition())) { statAccumulator.AddNull(); rowItem = NUdf::TUnboxedValue(); } else { - rowItem = TElementAccessor::ExtractValue(array, rowIndexFrom); + rowItem = TElementAccessor::ExtractValue(*currentArray, address->GetPosition()); statAccumulator.AddValue(rowItem); } }; if (batch.HasDataIndexes()) { ui32 idx = 0; - for (const i64 rowIndex: batch.GetDataIndexes()) { - applyToIndex(rowIndex, idx++); + std::map remapIndexes; + for (const i64 rowIndex : batch.GetDataIndexes()) { + YQL_ENSURE(remapIndexes.emplace(rowIndex, idx++).second); + } + for (auto&& i : remapIndexes) { + applyToIndex(i.first, i.second); } } else { for (i64 rowIndex = 0; rowIndex < batch.GetRecordsCount(); ++rowIndex) { @@ -314,8 +342,7 @@ TBytesStatistics WriteColumnValuesFromArrowSpecImpl(TAccessor editAccessor, template TBytesStatistics WriteColumnValuesFromArrowImpl(TAccessor editAccessor, const TBatchDataAccessor& batch, i64 columnIndex, NScheme::TTypeInfo columnType) { - std::shared_ptr columnSharedPtr = batch.GetBatch()->column(columnIndex); - arrow::Array* columnPtr = columnSharedPtr.get(); + const std::shared_ptr columnPtr = batch.GetBatch()->column(columnIndex); namespace NTypeIds = NScheme::NTypeIds; switch (columnType.GetTypeId()) { case NTypeIds::Bool: @@ -586,35 +613,36 @@ TBytesStatistics TKqpScanComputeContext::TScanData::TRowBatchReader::AddData(con return stats; } -TBytesStatistics TKqpScanComputeContext::TScanData::TBlockBatchReader::AddData(const TBatchDataAccessor& batch, TMaybe /*shardId*/, +TBytesStatistics TKqpScanComputeContext::TScanData::TBlockBatchReader::AddData(const TBatchDataAccessor& dataAccessor, TMaybe /*shardId*/, const THolderFactory& holderFactory) { TBytesStatistics stats; auto totalColsCount = TotalColumnsCount + 1; - TUnboxedValueVector batchValues; - batchValues.resize(totalColsCount); - std::shared_ptr filtered = batch.GetFiltered(); - for (int i = 0; i < filtered->num_columns(); ++i) { - batchValues[i] = holderFactory.CreateArrowBlock(arrow::Datum(filtered->column_data(i))); - } - const ui64 batchByteSize = NYql::NUdf::GetSizeOfArrowBatchInBytes(*filtered); - stats.AddStatistics({batchByteSize, batchByteSize}); - - // !!! TODO !!! - // if (!SystemColumns.empty()) { - // for (i64 rowIndex = 0; rowIndex < batch.num_rows(); ++rowIndex) { - // FillSystemColumns(&cells[rowIndex * ColumnsCount() + ResultColumns.size()], shardId, SystemColumns); - // } + auto batches = NArrow::SliceToRecordBatches(dataAccessor.GetFiltered()); + for (auto&& filtered : batches) { + TUnboxedValueVector batchValues; + batchValues.resize(totalColsCount); + for (int i = 0; i < filtered->num_columns(); ++i) { + batchValues[i] = holderFactory.CreateArrowBlock(arrow::Datum(filtered->column(i))); + } + const ui64 batchByteSize = NArrow::GetBatchDataSize(filtered); + stats.AddStatistics({batchByteSize, batchByteSize}); - // stats.AllocatedBytes += batch.num_rows() * SystemColumns.size() * sizeof(NUdf::TUnboxedValue); - // } + // !!! TODO !!! + // if (!SystemColumns.empty()) { + // for (i64 rowIndex = 0; rowIndex < batch.num_rows(); ++rowIndex) { + // FillSystemColumns(&cells[rowIndex * ColumnsCount() + ResultColumns.size()], shardId, SystemColumns); + // } - batchValues[totalColsCount - 1] = holderFactory.CreateArrowBlock(arrow::Datum(std::make_shared(batch.GetRecordsCount()))); - stats.AddStatistics({ sizeof(ui64) * batch.GetRecordsCount(), sizeof(ui64) * batch.GetRecordsCount()}); + // stats.AllocatedBytes += batch.num_rows() * SystemColumns.size() * sizeof(NUdf::TUnboxedValue); + // } - BlockBatches.emplace(TBlockBatch(totalColsCount, batch.GetRecordsCount(), std::move(batchValues), stats.AllocatedBytes)); - StoredBytes += stats.AllocatedBytes; + batchValues[totalColsCount - 1] = holderFactory.CreateArrowBlock(arrow::Datum(std::make_shared(filtered->num_rows()))); + stats.AddStatistics({sizeof(ui64) * filtered->num_rows(), sizeof(ui64) * filtered->num_rows()}); + BlockBatches.emplace(TBlockBatch(totalColsCount, filtered->num_rows(), std::move(batchValues), stats.AllocatedBytes)); + StoredBytes += stats.AllocatedBytes; + } return stats; } diff --git a/ydb/core/kqp/runtime/kqp_scan_data.h b/ydb/core/kqp/runtime/kqp_scan_data.h index fc091217c3aa..bb1e3fa44177 100644 --- a/ydb/core/kqp/runtime/kqp_scan_data.h +++ b/ydb/core/kqp/runtime/kqp_scan_data.h @@ -61,15 +61,15 @@ struct TBytesStatistics { class TBatchDataAccessor { private: - YDB_READONLY_DEF(std::shared_ptr, Batch); + YDB_READONLY_DEF(std::shared_ptr, Batch); YDB_READONLY_DEF(std::vector, DataIndexes); - mutable std::shared_ptr FilteredBatch; + mutable std::shared_ptr FilteredBatch; public: - std::shared_ptr GetFiltered() const { + std::shared_ptr GetFiltered() const { if (!FilteredBatch) { if (DataIndexes.size()) { auto permutation = NArrow::MakeFilterPermutation(DataIndexes); - FilteredBatch = NArrow::TStatusValidator::GetValid(arrow::compute::Take(Batch, permutation)).record_batch(); + FilteredBatch = NArrow::TStatusValidator::GetValid(arrow::compute::Take(Batch, permutation)).table(); } else { FilteredBatch = Batch; } @@ -85,7 +85,7 @@ class TBatchDataAccessor { return DataIndexes.size() ? DataIndexes.size() : Batch->num_rows(); } - TBatchDataAccessor(const std::shared_ptr& batch, std::vector&& dataIndexes) + TBatchDataAccessor(const std::shared_ptr& batch, std::vector&& dataIndexes) : Batch(batch) , DataIndexes(std::move(dataIndexes)) { @@ -93,12 +93,19 @@ class TBatchDataAccessor { AFL_VERIFY(Batch->num_rows()); } - TBatchDataAccessor(const std::shared_ptr& batch) + TBatchDataAccessor(const std::shared_ptr& batch) : Batch(batch) { AFL_VERIFY(Batch); AFL_VERIFY(Batch->num_rows()); } + + TBatchDataAccessor(const std::shared_ptr& batch) + : Batch(NArrow::TStatusValidator::GetValid(arrow::Table::FromRecordBatches({batch}))) { + AFL_VERIFY(Batch); + AFL_VERIFY(Batch->num_rows()); + + } }; TBytesStatistics GetUnboxedValueSize(const NUdf::TUnboxedValue& value, const NScheme::TTypeInfo& type); diff --git a/ydb/core/kqp/runtime/kqp_stream_lookup_actor.cpp b/ydb/core/kqp/runtime/kqp_stream_lookup_actor.cpp index b51d0d3b7faf..43ea8cf5fc02 100644 --- a/ydb/core/kqp/runtime/kqp_stream_lookup_actor.cpp +++ b/ydb/core/kqp/runtime/kqp_stream_lookup_actor.cpp @@ -54,8 +54,13 @@ class TKqpStreamLookupActor : public NActors::TActorBootstrappedStreamLookupActorsCount->Inc(); + + if (!StreamLookupWorker) { + return RuntimeError(TStringBuilder() << "Uninitialized StreamLookupWorker", + NYql::NDqProto::StatusIds::INTERNAL_ERROR); + } + ResolveTableShards(); Become(&TKqpStreamLookupActor::StateFunc); } diff --git a/ydb/core/kqp/runtime/kqp_stream_lookup_worker.cpp b/ydb/core/kqp/runtime/kqp_stream_lookup_worker.cpp index 5ff68ed0b79c..ead83ab0ed71 100644 --- a/ydb/core/kqp/runtime/kqp_stream_lookup_worker.cpp +++ b/ydb/core/kqp/runtime/kqp_stream_lookup_worker.cpp @@ -817,6 +817,7 @@ std::unique_ptr CreateStreamLookupWorker(NKikimrKqp::TKq const NYql::NDqProto::TTaskInput& inputDesc) { switch (settings.GetLookupStrategy()) { + case NKqpProto::EStreamLookupStrategy::UNSPECIFIED: // for backward compatibility case NKqpProto::EStreamLookupStrategy::LOOKUP: return std::make_unique(std::move(settings), typeEnv, holderFactory, inputDesc); case NKqpProto::EStreamLookupStrategy::JOIN: diff --git a/ydb/core/kqp/runtime/kqp_write_actor.cpp b/ydb/core/kqp/runtime/kqp_write_actor.cpp index c6217022aeeb..6d375d38eef3 100644 --- a/ydb/core/kqp/runtime/kqp_write_actor.cpp +++ b/ydb/core/kqp/runtime/kqp_write_actor.cpp @@ -334,7 +334,7 @@ class TKqpWriteActor : public TActorBootstrapped, public NYql::N auto evWrite = std::make_unique( inFlightBatch.TxId, NKikimrDataEvents::TEvWrite::MODE_PREPARE); - ui64 payloadIndex = NKikimr::NEvWrite::TPayloadHelper(*evWrite) + ui64 payloadIndex = NKikimr::NEvWrite::TPayloadWriter(*evWrite) .AddDataToPayload(TString(inFlightBatch.Data)); evWrite->AddOperation( diff --git a/ydb/core/kqp/runtime/ut/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/runtime/ut/CMakeLists.darwin-arm64.txt index e94555b29f8f..e557db89c91e 100644 --- a/ydb/core/kqp/runtime/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/runtime/ut/CMakeLists.darwin-arm64.txt @@ -21,14 +21,13 @@ target_link_libraries(ydb-core-kqp-runtime-ut PUBLIC core-kqp-runtime cpp-testing-unittest testlib-basics-default + minikql-comp_nodes-llvm14 udf-service-exception_policy ) target_link_options(ydb-core-kqp-runtime-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-runtime-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_scan_data_ut.cpp @@ -58,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/runtime/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/runtime/ut/CMakeLists.darwin-x86_64.txt index c4329c5beb57..4daa756aefcb 100644 --- a/ydb/core/kqp/runtime/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/runtime/ut/CMakeLists.darwin-x86_64.txt @@ -22,14 +22,13 @@ target_link_libraries(ydb-core-kqp-runtime-ut PUBLIC core-kqp-runtime cpp-testing-unittest testlib-basics-default + minikql-comp_nodes-llvm14 udf-service-exception_policy ) target_link_options(ydb-core-kqp-runtime-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-runtime-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_scan_data_ut.cpp @@ -59,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/runtime/ut/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/runtime/ut/CMakeLists.linux-aarch64.txt index 099a1c281fa5..0079ceae59f5 100644 --- a/ydb/core/kqp/runtime/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/runtime/ut/CMakeLists.linux-aarch64.txt @@ -22,6 +22,7 @@ target_link_libraries(ydb-core-kqp-runtime-ut PUBLIC core-kqp-runtime cpp-testing-unittest testlib-basics-default + minikql-comp_nodes-llvm14 udf-service-exception_policy ) target_link_options(ydb-core-kqp-runtime-ut PRIVATE @@ -30,9 +31,6 @@ target_link_options(ydb-core-kqp-runtime-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-runtime-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_scan_data_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/runtime/ut/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/runtime/ut/CMakeLists.linux-x86_64.txt index ebf4ee2a3b8a..d4a4e07ec307 100644 --- a/ydb/core/kqp/runtime/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/runtime/ut/CMakeLists.linux-x86_64.txt @@ -23,6 +23,7 @@ target_link_libraries(ydb-core-kqp-runtime-ut PUBLIC core-kqp-runtime cpp-testing-unittest testlib-basics-default + minikql-comp_nodes-llvm14 udf-service-exception_policy ) target_link_options(ydb-core-kqp-runtime-ut PRIVATE @@ -31,9 +32,6 @@ target_link_options(ydb-core-kqp-runtime-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-runtime-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/runtime/kqp_scan_data_ut.cpp @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/runtime/ut/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/runtime/ut/CMakeLists.windows-x86_64.txt index 5ac0f20fa5ab..c2973a9c6b11 100644 --- a/ydb/core/kqp/runtime/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/runtime/ut/CMakeLists.windows-x86_64.txt @@ -22,6 +22,7 @@ target_link_libraries(ydb-core-kqp-runtime-ut PUBLIC core-kqp-runtime cpp-testing-unittest testlib-basics-default + minikql-comp_nodes-llvm14 udf-service-exception_policy ) target_sources(ydb-core-kqp-runtime-ut PRIVATE @@ -52,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/session_actor/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/session_actor/CMakeLists.darwin-arm64.txt index 7d60b1ef4fa3..9c3c49af8003 100644 --- a/ydb/core/kqp/session_actor/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/session_actor/CMakeLists.darwin-arm64.txt @@ -18,6 +18,7 @@ target_link_libraries(core-kqp-session_actor PUBLIC core-kqp-common core-kqp-federated_query public-lib-operation_id + core-tx-schemeshard ) target_sources(core-kqp-session_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_response.cpp @@ -26,5 +27,6 @@ target_sources(core-kqp-session_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_worker_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_worker_common.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_query_state.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_query_stats.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_temp_tables_manager.cpp ) diff --git a/ydb/core/kqp/session_actor/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/session_actor/CMakeLists.darwin-x86_64.txt index 7d60b1ef4fa3..9c3c49af8003 100644 --- a/ydb/core/kqp/session_actor/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/session_actor/CMakeLists.darwin-x86_64.txt @@ -18,6 +18,7 @@ target_link_libraries(core-kqp-session_actor PUBLIC core-kqp-common core-kqp-federated_query public-lib-operation_id + core-tx-schemeshard ) target_sources(core-kqp-session_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_response.cpp @@ -26,5 +27,6 @@ target_sources(core-kqp-session_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_worker_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_worker_common.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_query_state.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_query_stats.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_temp_tables_manager.cpp ) diff --git a/ydb/core/kqp/session_actor/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/session_actor/CMakeLists.linux-aarch64.txt index cbb38f3df3ee..2fe56441de2b 100644 --- a/ydb/core/kqp/session_actor/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/session_actor/CMakeLists.linux-aarch64.txt @@ -19,6 +19,7 @@ target_link_libraries(core-kqp-session_actor PUBLIC core-kqp-common core-kqp-federated_query public-lib-operation_id + core-tx-schemeshard ) target_sources(core-kqp-session_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_response.cpp @@ -27,5 +28,6 @@ target_sources(core-kqp-session_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_worker_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_worker_common.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_query_state.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_query_stats.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_temp_tables_manager.cpp ) diff --git a/ydb/core/kqp/session_actor/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/session_actor/CMakeLists.linux-x86_64.txt index cbb38f3df3ee..2fe56441de2b 100644 --- a/ydb/core/kqp/session_actor/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/session_actor/CMakeLists.linux-x86_64.txt @@ -19,6 +19,7 @@ target_link_libraries(core-kqp-session_actor PUBLIC core-kqp-common core-kqp-federated_query public-lib-operation_id + core-tx-schemeshard ) target_sources(core-kqp-session_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_response.cpp @@ -27,5 +28,6 @@ target_sources(core-kqp-session_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_worker_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_worker_common.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_query_state.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_query_stats.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_temp_tables_manager.cpp ) diff --git a/ydb/core/kqp/session_actor/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/session_actor/CMakeLists.windows-x86_64.txt index 7d60b1ef4fa3..9c3c49af8003 100644 --- a/ydb/core/kqp/session_actor/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/session_actor/CMakeLists.windows-x86_64.txt @@ -18,6 +18,7 @@ target_link_libraries(core-kqp-session_actor PUBLIC core-kqp-common core-kqp-federated_query public-lib-operation_id + core-tx-schemeshard ) target_sources(core-kqp-session_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_response.cpp @@ -26,5 +27,6 @@ target_sources(core-kqp-session_actor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_worker_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_worker_common.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_query_state.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_query_stats.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/session_actor/kqp_temp_tables_manager.cpp ) diff --git a/ydb/core/kqp/session_actor/kqp_query_state.cpp b/ydb/core/kqp/session_actor/kqp_query_state.cpp index 74571ae2f8cc..eebe3c33a468 100644 --- a/ydb/core/kqp/session_actor/kqp_query_state.cpp +++ b/ydb/core/kqp/session_actor/kqp_query_state.cpp @@ -71,6 +71,16 @@ bool TKqpQueryState::EnsureTableVersions(const TEvTxProxySchemeCache::TEvNavigat return true; } +void TKqpQueryState::FillViews(const google::protobuf::RepeatedPtrField< ::NKqpProto::TKqpTableInfo>& views) { + for (const auto& view : views) { + const auto& pathId = view.GetTableId(); + const auto schemaVersion = view.GetSchemaVersion(); + auto [it, isInserted] = TableVersions.emplace(TTableId(pathId.GetOwnerId(), pathId.GetTableId()), schemaVersion); + if (!isInserted) { + Y_ENSURE(it->second == schemaVersion); + } + } +} std::unique_ptr TKqpQueryState::BuildNavigateKeySet() { TableVersions.clear(); @@ -78,6 +88,7 @@ std::unique_ptr TKqpQueryState::BuildN for (const auto& tx : PreparedQuery->GetPhysicalQuery().GetTransactions()) { FillTables(tx); } + FillViews(PreparedQuery->GetPhysicalQuery().GetViewInfos()); auto navigate = MakeHolder(); navigate->DatabaseName = Database; @@ -306,4 +317,42 @@ bool TKqpQueryState::HasErrors(const NSchemeCache::TSchemeCacheNavigate& respons return true; } +bool TKqpQueryState::HasImpliedTx() const { + if (HasTxControl()) { + return false; + } + + const NKikimrKqp::EQueryAction action = RequestEv->GetAction(); + if (action != NKikimrKqp::QUERY_ACTION_EXECUTE && + action != NKikimrKqp::QUERY_ACTION_EXECUTE_PREPARED) + { + return false; + } + + const NKikimrKqp::EQueryType queryType = RequestEv->GetType(); + if (queryType != NKikimrKqp::QUERY_TYPE_SQL_GENERIC_QUERY && + queryType != NKikimrKqp::QUERY_TYPE_SQL_GENERIC_SCRIPT && + queryType != NKikimrKqp::QUERY_TYPE_SQL_GENERIC_CONCURRENT_QUERY) + { + return false; + } + + for (const auto& transactionPtr : PreparedQuery->GetTransactions()) { + switch (transactionPtr->GetType()) { + case NKqpProto::TKqpPhyTx::TYPE_GENERIC: // data transaction + return true; + case NKqpProto::TKqpPhyTx::TYPE_UNSPECIFIED: + case NKqpProto::TKqpPhyTx::TYPE_COMPUTE: + case NKqpProto::TKqpPhyTx::TYPE_DATA: // data transaction, but not in QueryService API + case NKqpProto::TKqpPhyTx::TYPE_SCAN: + case NKqpProto::TKqpPhyTx::TYPE_SCHEME: + case NKqpProto::TKqpPhyTx_EType_TKqpPhyTx_EType_INT_MIN_SENTINEL_DO_NOT_USE_: + case NKqpProto::TKqpPhyTx_EType_TKqpPhyTx_EType_INT_MAX_SENTINEL_DO_NOT_USE_: + break; + } + } + + return false; +} + } diff --git a/ydb/core/kqp/session_actor/kqp_query_state.h b/ydb/core/kqp/session_actor/kqp_query_state.h index 4bcc4cc47fee..353e1314601e 100644 --- a/ydb/core/kqp/session_actor/kqp_query_state.h +++ b/ydb/core/kqp/session_actor/kqp_query_state.h @@ -63,7 +63,7 @@ class TKqpQueryState : public TNonCopyable { SetQueryDeadlines(tableServiceConfig, queryServiceConfig); auto action = GetAction(); KqpSessionSpan = NWilson::TSpan( - TWilsonKqp::KqpSession, std::move(RequestEv->GetWilsonTraceId()), + TWilsonKqp::KqpSession, std::move(ev->TraceId), "Session.query." + NKikimrKqp::EQueryAction_Name(action), NWilson::EFlags::AUTO_END); if (RequestEv->GetUserRequestContext()) { UserRequestContext = RequestEv->GetUserRequestContext(); @@ -234,6 +234,8 @@ class TKqpQueryState : public TNonCopyable { } } + void FillViews(const google::protobuf::RepeatedPtrField< ::NKqpProto::TKqpTableInfo>& views); + bool NeedCheckTableVersions() const { return CompileStats.FromCache; } @@ -362,6 +364,8 @@ class TKqpQueryState : public TNonCopyable { return RequestEv->HasTxControl(); } + bool HasImpliedTx() const; // (only for QueryService API) user has not specified TxControl in the request. In this case we behave like Begin/Commit was specified. + const ::Ydb::Table::TransactionControl& GetTxControl() const { return RequestEv->GetTxControl(); } diff --git a/ydb/core/kqp/session_actor/kqp_session_actor.cpp b/ydb/core/kqp/session_actor/kqp_session_actor.cpp index 1977aad58837..2d43845429eb 100644 --- a/ydb/core/kqp/session_actor/kqp_session_actor.cpp +++ b/ydb/core/kqp/session_actor/kqp_session_actor.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -619,6 +620,23 @@ class TKqpSessionActor : public TActorBootstrapped { QueryState->TxId = UlidGen.Next(); QueryState->TxCtx = MakeIntrusive(false, AppData()->FunctionRegistry, AppData()->TimeProvider, AppData()->RandomProvider, Config->EnableKqpImmediateEffects); + + auto& alloc = QueryState->TxCtx->TxAlloc; + ui64 mkqlInitialLimit = Settings.MkqlInitialMemoryLimit; + + const auto& queryLimitsProto = Settings.TableService.GetQueryLimits(); + const auto& phaseLimitsProto = queryLimitsProto.GetPhaseLimits(); + ui64 mkqlMaxLimit = phaseLimitsProto.GetComputeNodeMemoryLimitBytes(); + mkqlMaxLimit = mkqlMaxLimit ? mkqlMaxLimit : ui64(Settings.MkqlMaxMemoryLimit); + + alloc->Alloc.SetLimit(mkqlInitialLimit); + alloc->Alloc.Ref().SetIncreaseMemoryLimitCallback([this, &alloc, mkqlMaxLimit](ui64 currentLimit, ui64 required) { + if (required < mkqlMaxLimit) { + LOG_D("Increase memory limit from " << currentLimit << " to " << required); + alloc->Alloc.SetLimit(required); + } + }); + QueryState->QueryData = std::make_shared(QueryState->TxCtx->TxAlloc); QueryState->TxCtx->SetIsolationLevel(settings); QueryState->TxCtx->OnBeginQuery(); @@ -636,9 +654,21 @@ class TKqpSessionActor : public TActorBootstrapped { Counters->ReportBeginTransaction(Settings.DbCounters, Transactions.EvictedTx, Transactions.Size(), Transactions.ToBeAbortedSize()); } + static const Ydb::Table::TransactionControl& GetImpliedTxControl() { + auto create = []() -> Ydb::Table::TransactionControl { + Ydb::Table::TransactionControl control; + control.mutable_begin_tx()->mutable_serializable_read_write(); + control.set_commit_tx(true); + return control; + }; + static const Ydb::Table::TransactionControl control = create(); + return control; + } + bool PrepareQueryTransaction() { - if (QueryState->HasTxControl()) { - const auto& txControl = QueryState->GetTxControl(); + const bool hasTxControl = QueryState->HasTxControl(); + if (hasTxControl || QueryState->HasImpliedTx()) { + const auto& txControl = hasTxControl ? QueryState->GetTxControl() : GetImpliedTxControl(); QueryState->Commit = txControl.commit_tx(); switch (txControl.tx_selector_case()) { @@ -736,6 +766,8 @@ class TKqpSessionActor : public TActorBootstrapped { } } catch(const yexception& ex) { ythrow TRequestFail(Ydb::StatusIds::BAD_REQUEST) << ex.what(); + } catch(const TMemoryLimitExceededException&) { + ythrow TRequestFail(Ydb::StatusIds::BAD_REQUEST) << BuildMemoryLimitExceptionMessage(); } return true; } @@ -764,6 +796,12 @@ class TKqpSessionActor : public TActorBootstrapped { request.StatsMode = queryState->GetStatsMode(); request.ProgressStatsPeriod = queryState->GetProgressStatsPeriod(); + request.QueryType = queryState->GetType(); + if (Y_LIKELY(queryState->PreparedQuery)) { + ui64 resultSetsCount = queryState->PreparedQuery->GetPhysicalQuery().ResultBindingsSize(); + request.AllowTrailingResults = (resultSetsCount == 1); + request.AllowTrailingResults &= (QueryState->RequestEv->GetSupportsStreamTrailingResult()); + } } const auto& limits = GetQueryLimits(Settings); @@ -935,7 +973,7 @@ class TKqpSessionActor : public TActorBootstrapped { case NKqpProto::TKqpPhyTx::TYPE_SCHEME: YQL_ENSURE(tx->StagesSize() == 0); - if (QueryState->TxCtx->EffectiveIsolationLevel != NKikimrKqp::ISOLATION_LEVEL_UNDEFINED) { + if (QueryState->HasTxControl() && QueryState->TxCtx->EffectiveIsolationLevel != NKikimrKqp::ISOLATION_LEVEL_UNDEFINED) { ReplyQueryError(Ydb::StatusIds::PRECONDITION_FAILED, "Scheme operations cannot be executed inside transaction"); return true; @@ -1230,7 +1268,10 @@ class TKqpSessionActor : public TActorBootstrapped { ExecuterId = TActorId{}; if (response->GetStatus() != Ydb::StatusIds::SUCCESS) { - LOG_D("TEvTxResponse has non-success status, CurrentTx: " << QueryState->CurrentTx); + const auto executionType = ev->ExecutionType; + + LOG_D("TEvTxResponse has non-success status, CurrentTx: " << QueryState->CurrentTx + << " ExecutionType: " << executionType); auto status = response->GetStatus(); TIssues issues; @@ -1242,11 +1283,14 @@ class TKqpSessionActor : public TActorBootstrapped { case Ydb::StatusIds::INTERNAL_ERROR: InvalidateQuery(); issues.AddIssue(YqlIssue(TPosition(), TIssuesIds::KIKIMR_QUERY_INVALIDATED, - TStringBuilder() << "Query invalidated on scheme/internal error.")); + TStringBuilder() << "Query invalidated on scheme/internal error during " + << executionType << " execution")); // SCHEME_ERROR during execution is a soft (retriable) error, we abort query execution, // invalidate query cache, and return ABORTED as retriable status. - if (status == Ydb::StatusIds::SCHEME_ERROR) { + if (status == Ydb::StatusIds::SCHEME_ERROR && + executionType != TEvKqpExecuter::TEvTxResponse::EExecutionType::Scheme) + { status = Ydb::StatusIds::ABORTED; } @@ -1537,10 +1581,24 @@ class TKqpSessionActor : public TActorBootstrapped { // Result for scan query is sent directly to target actor. Y_ABORT_UNLESS(response->GetArena()); - if (QueryState->PreparedQuery && !QueryState->IsStreamResult()) { + if (QueryState->PreparedQuery) { bool useYdbResponseFormat = QueryState->GetUsePublicResponseDataFormat(); auto& phyQuery = QueryState->PreparedQuery->GetPhysicalQuery(); + size_t trailingResultsCount = 0; for (size_t i = 0; i < phyQuery.ResultBindingsSize(); ++i) { + if (QueryState->IsStreamResult()) { + auto ydbResult = QueryState->QueryData->ExtractTrailingTxResult( + phyQuery.GetResultBindings(i), response->GetArena()); + + if (ydbResult) { + ++trailingResultsCount; + YQL_ENSURE(trailingResultsCount <= 1); + response->AddYdbResults()->Swap(ydbResult); + } + + continue; + } + if (useYdbResponseFormat) { TMaybe effectiveRowsLimit = FillSettings.RowsLimitPerWrite; if (QueryState->PreparedQuery->GetResults(i).GetRowsLimit()) { @@ -2019,6 +2077,9 @@ class TKqpSessionActor : public TActorBootstrapped { ReplyQueryError(ex.Status, ex.what(), ex.Issues); } catch (const yexception& ex) { InternalError(ex.what()); + } catch (const TMemoryLimitExceededException&) { + ReplyQueryError(Ydb::StatusIds::INTERNAL_ERROR, + BuildMemoryLimitExceptionMessage()); } } @@ -2058,6 +2119,9 @@ class TKqpSessionActor : public TActorBootstrapped { ReplyQueryError(ex.Status, ex.what(), ex.Issues); } catch (const yexception& ex) { InternalError(ex.what()); + } catch (const TMemoryLimitExceededException&) { + ReplyQueryError(Ydb::StatusIds::UNDETERMINED, + BuildMemoryLimitExceptionMessage()); } } @@ -2093,14 +2157,24 @@ class TKqpSessionActor : public TActorBootstrapped { } } catch (const yexception& ex) { InternalError(ex.what()); + } catch (const TMemoryLimitExceededException&) { + ReplyQueryError(Ydb::StatusIds::INTERNAL_ERROR, + BuildMemoryLimitExceptionMessage()); } } STATEFN(FinalCleanupState) { - switch (ev->GetTypeRewrite()) { - hFunc(TEvents::TEvGone, HandleFinalCleanup); - hFunc(TEvents::TEvUndelivered, HandleNoop); - hFunc(TEvKqpSnapshot::TEvCreateSnapshotResponse, Handle); + try { + switch (ev->GetTypeRewrite()) { + hFunc(TEvents::TEvGone, HandleFinalCleanup); + hFunc(TEvents::TEvUndelivered, HandleNoop); + hFunc(TEvKqpSnapshot::TEvCreateSnapshotResponse, Handle); + } + } catch (const yexception& ex) { + InternalError(ex.what()); + } catch (const TMemoryLimitExceededException&) { + ReplyQueryError(Ydb::StatusIds::INTERNAL_ERROR, + BuildMemoryLimitExceptionMessage()); } } @@ -2133,6 +2207,15 @@ class TKqpSessionActor : public TActorBootstrapped { } } + TString BuildMemoryLimitExceptionMessage() const { + if (QueryState && QueryState->TxCtx) { + return TStringBuilder() << "Memory limit exception at " << CurrentStateFuncName() + << ", current limit is " << QueryState->TxCtx->TxAlloc->Alloc.GetLimit() << " bytes."; + } else { + return TStringBuilder() << "Memory limit exception at " << CurrentStateFuncName(); + } + } + void ProcessTopicOps(TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr& ev) { YQL_ENSURE(ev->Get()->Request); if (ev->Get()->Request->Cookie < QueryId) { diff --git a/ydb/core/kqp/session_actor/kqp_session_actor.h b/ydb/core/kqp/session_actor/kqp_session_actor.h index 763e43de343d..3dc392551620 100644 --- a/ydb/core/kqp/session_actor/kqp_session_actor.h +++ b/ydb/core/kqp/session_actor/kqp_session_actor.h @@ -7,6 +7,7 @@ #include #include +#include #include namespace NKikimr::NKqp { @@ -19,9 +20,12 @@ struct TKqpWorkerSettings { NKikimrConfig::TTableServiceConfig TableService; NKikimrConfig::TQueryServiceConfig QueryService; + TControlWrapper MkqlInitialMemoryLimit; + TControlWrapper MkqlMaxMemoryLimit; + TKqpDbCountersPtr DbCounters; - TKqpWorkerSettings(const TString& cluster, const TString& database, + explicit TKqpWorkerSettings(const TString& cluster, const TString& database, const NKikimrConfig::TTableServiceConfig& tableServiceConfig, const NKikimrConfig::TQueryServiceConfig& queryServiceConfig, TKqpDbCountersPtr dbCounters) @@ -29,7 +33,15 @@ struct TKqpWorkerSettings { , Database(database) , TableService(tableServiceConfig) , QueryService(queryServiceConfig) - , DbCounters(dbCounters) {} + , MkqlInitialMemoryLimit(2097152, 1, Max()) + , MkqlMaxMemoryLimit(1073741824, 1, Max()) + , DbCounters(dbCounters) + { + AppData()->Icb->RegisterSharedControl( + MkqlInitialMemoryLimit, "KqpSession.MkqlInitialMemoryLimit"); + AppData()->Icb->RegisterSharedControl( + MkqlMaxMemoryLimit, "KqpSession.MkqlMaxMemoryLimit"); + } }; IActor* CreateKqpSessionActor(const TActorId& owner, const TString& sessionId, diff --git a/ydb/core/kqp/topics/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/topics/CMakeLists.darwin-arm64.txt index 3bd77195ea0b..81942f91d37b 100644 --- a/ydb/core/kqp/topics/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/topics/CMakeLists.darwin-arm64.txt @@ -17,5 +17,6 @@ target_link_libraries(core-kqp-topics PUBLIC ydb-core-base ) target_sources(core-kqp-topics PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/topics/kqp_topics.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/topics/kqp_topics.cpp ) diff --git a/ydb/core/kqp/topics/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/topics/CMakeLists.darwin-x86_64.txt index 3bd77195ea0b..81942f91d37b 100644 --- a/ydb/core/kqp/topics/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/topics/CMakeLists.darwin-x86_64.txt @@ -17,5 +17,6 @@ target_link_libraries(core-kqp-topics PUBLIC ydb-core-base ) target_sources(core-kqp-topics PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/topics/kqp_topics.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/topics/kqp_topics.cpp ) diff --git a/ydb/core/kqp/topics/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/topics/CMakeLists.linux-aarch64.txt index f3a8e98bf832..a6de0719680c 100644 --- a/ydb/core/kqp/topics/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/topics/CMakeLists.linux-aarch64.txt @@ -18,5 +18,6 @@ target_link_libraries(core-kqp-topics PUBLIC ydb-core-base ) target_sources(core-kqp-topics PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/topics/kqp_topics.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/topics/kqp_topics.cpp ) diff --git a/ydb/core/kqp/topics/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/topics/CMakeLists.linux-x86_64.txt index f3a8e98bf832..a6de0719680c 100644 --- a/ydb/core/kqp/topics/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/topics/CMakeLists.linux-x86_64.txt @@ -18,5 +18,6 @@ target_link_libraries(core-kqp-topics PUBLIC ydb-core-base ) target_sources(core-kqp-topics PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/topics/kqp_topics.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/topics/kqp_topics.cpp ) diff --git a/ydb/core/kqp/topics/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/topics/CMakeLists.windows-x86_64.txt index 3bd77195ea0b..81942f91d37b 100644 --- a/ydb/core/kqp/topics/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/topics/CMakeLists.windows-x86_64.txt @@ -17,5 +17,6 @@ target_link_libraries(core-kqp-topics PUBLIC ydb-core-base ) target_sources(core-kqp-topics PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/topics/kqp_topics.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/topics/kqp_topics.cpp ) diff --git a/ydb/core/kqp/ut/CMakeLists.txt b/ydb/core/kqp/ut/CMakeLists.txt index 409905d7009a..782eabcd7df2 100644 --- a/ydb/core/kqp/ut/CMakeLists.txt +++ b/ydb/core/kqp/ut/CMakeLists.txt @@ -26,4 +26,5 @@ add_subdirectory(service) add_subdirectory(spilling) add_subdirectory(sysview) add_subdirectory(tx) +add_subdirectory(view) add_subdirectory(yql) diff --git a/ydb/core/kqp/ut/arrow/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/arrow/CMakeLists.darwin-arm64.txt index 4251ac9b53a6..7f06cd66b838 100644 --- a/ydb/core/kqp/ut/arrow/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/arrow/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-kqp-ut-arrow PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-arrow PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/arrow/kqp_arrow_in_channels_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/arrow/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/arrow/CMakeLists.darwin-x86_64.txt index 950235bd45f6..c32397df5837 100644 --- a/ydb/core/kqp/ut/arrow/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/arrow/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kqp-ut-arrow PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-arrow PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/arrow/kqp_arrow_in_channels_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/arrow/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/arrow/CMakeLists.linux-aarch64.txt index b18377fade66..0cbb8080511a 100644 --- a/ydb/core/kqp/ut/arrow/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/arrow/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-kqp-ut-arrow PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-arrow PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/arrow/kqp_arrow_in_channels_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/arrow/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/arrow/CMakeLists.linux-x86_64.txt index 7be3e356d182..63cfc4f78148 100644 --- a/ydb/core/kqp/ut/arrow/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/arrow/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kqp-ut-arrow PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-arrow PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/arrow/kqp_arrow_in_channels_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/arrow/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/arrow/CMakeLists.windows-x86_64.txt index d0ecc5ceb439..f38b6060d12b 100644 --- a/ydb/core/kqp/ut/arrow/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/arrow/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/common/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/common/CMakeLists.darwin-arm64.txt index c2759015fac1..2268b5223d05 100644 --- a/ydb/core/kqp/ut/common/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/common/CMakeLists.darwin-arm64.txt @@ -14,6 +14,7 @@ target_compile_options(kqp-ut-common PRIVATE target_link_libraries(kqp-ut-common PUBLIC contrib-libs-cxxsupp yutil + cpp-testing-common core-kqp-federated_query ydb-core-testlib yql-public-udf @@ -28,6 +29,7 @@ target_link_libraries(kqp-ut-common PUBLIC cpp-client-ydb_topic ) target_sources(kqp-ut-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/kqp_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/json2_udf.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/kqp_ut_common.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/re2_udf.cpp diff --git a/ydb/core/kqp/ut/common/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/common/CMakeLists.darwin-x86_64.txt index c2759015fac1..2268b5223d05 100644 --- a/ydb/core/kqp/ut/common/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/common/CMakeLists.darwin-x86_64.txt @@ -14,6 +14,7 @@ target_compile_options(kqp-ut-common PRIVATE target_link_libraries(kqp-ut-common PUBLIC contrib-libs-cxxsupp yutil + cpp-testing-common core-kqp-federated_query ydb-core-testlib yql-public-udf @@ -28,6 +29,7 @@ target_link_libraries(kqp-ut-common PUBLIC cpp-client-ydb_topic ) target_sources(kqp-ut-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/kqp_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/json2_udf.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/kqp_ut_common.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/re2_udf.cpp diff --git a/ydb/core/kqp/ut/common/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/common/CMakeLists.linux-aarch64.txt index 6321770afa51..0dba001330f9 100644 --- a/ydb/core/kqp/ut/common/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/common/CMakeLists.linux-aarch64.txt @@ -15,6 +15,7 @@ target_link_libraries(kqp-ut-common PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + cpp-testing-common core-kqp-federated_query ydb-core-testlib yql-public-udf @@ -29,6 +30,7 @@ target_link_libraries(kqp-ut-common PUBLIC cpp-client-ydb_topic ) target_sources(kqp-ut-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/kqp_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/json2_udf.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/kqp_ut_common.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/re2_udf.cpp diff --git a/ydb/core/kqp/ut/common/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/common/CMakeLists.linux-x86_64.txt index 6321770afa51..0dba001330f9 100644 --- a/ydb/core/kqp/ut/common/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/common/CMakeLists.linux-x86_64.txt @@ -15,6 +15,7 @@ target_link_libraries(kqp-ut-common PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + cpp-testing-common core-kqp-federated_query ydb-core-testlib yql-public-udf @@ -29,6 +30,7 @@ target_link_libraries(kqp-ut-common PUBLIC cpp-client-ydb_topic ) target_sources(kqp-ut-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/kqp_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/json2_udf.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/kqp_ut_common.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/re2_udf.cpp diff --git a/ydb/core/kqp/ut/common/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/common/CMakeLists.windows-x86_64.txt index c2759015fac1..2268b5223d05 100644 --- a/ydb/core/kqp/ut/common/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/common/CMakeLists.windows-x86_64.txt @@ -14,6 +14,7 @@ target_compile_options(kqp-ut-common PRIVATE target_link_libraries(kqp-ut-common PUBLIC contrib-libs-cxxsupp yutil + cpp-testing-common core-kqp-federated_query ydb-core-testlib yql-public-udf @@ -28,6 +29,7 @@ target_link_libraries(kqp-ut-common PUBLIC cpp-client-ydb_topic ) target_sources(kqp-ut-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/kqp_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/json2_udf.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/kqp_ut_common.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/common/re2_udf.cpp diff --git a/ydb/core/kqp/ut/common/columnshard.cpp b/ydb/core/kqp/ut/common/columnshard.cpp index 99a10e26ecad..9ff87240e3fa 100644 --- a/ydb/core/kqp/ut/common/columnshard.cpp +++ b/ydb/core/kqp/ut/common/columnshard.cpp @@ -1,9 +1,29 @@ #include "columnshard.h" -#include #include namespace NKikimr { namespace NKqp { + + TString GetConfigProtoWithName(const TString & tierName) { + return TStringBuilder() << "Name : \"" << tierName << "\"\n" << + R"( + ObjectStorage : { + Endpoint: "fake" + Bucket: "fake" + SecretableAccessKey: { + Value: { + Data: "secretAccessKey" + } + } + SecretableSecretKey: { + Value: { + Data: "secretSecretKey" + } + } + } + )"; + } + using namespace NYdb; TTestHelper::TTestHelper(const TKikimrSettings& settings) @@ -24,9 +44,46 @@ namespace NKqp { return Session; } - void TTestHelper::CreateTable(const TColumnTableBase& table) { + void TTestHelper::CreateTable(const TColumnTableBase& table, const EStatus expectedStatus) { std::cerr << (table.BuildQuery()) << std::endl; auto result = Session.ExecuteSchemeQuery(table.BuildQuery()).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), expectedStatus, result.GetIssues().ToString()); + } + + void TTestHelper::CreateTier(const TString& tierName) { + auto result = Session.ExecuteSchemeQuery("CREATE OBJECT " + tierName + " (TYPE TIER) WITH tierConfig = `" + GetConfigProtoWithName(tierName) + "`").GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + } + + TString TTestHelper::CreateTieringRule(const TString& tierName, const TString& columnName) { + const TString ruleName = tierName + "_" + columnName; + const TString configTieringStr = TStringBuilder() << R"({ + "rules" : [ + { + "tierName" : ")" << tierName << R"(", + "durationForEvict" : "10d" + } + ] + })"; + auto result = Session.ExecuteSchemeQuery("CREATE OBJECT IF NOT EXISTS " + ruleName + " (TYPE TIERING_RULE) WITH (defaultColumn = " + columnName + ", description = `" + configTieringStr + "`)").GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + return ruleName; + } + + void TTestHelper::SetTiering(const TString& tableName, const TString& ruleName) { + auto alterQuery = TStringBuilder() << "ALTER TABLE `" << tableName << "` SET (TIERING = '" << ruleName << "')"; + auto result = Session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + } + + void TTestHelper::ResetTiering(const TString& tableName) { + auto alterQuery = TStringBuilder() << "ALTER TABLE `" << tableName << "` RESET (TIERING)"; + auto result = Session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + } + + void TTestHelper::DropTable(const TString& tableName) { + auto result = Session.DropTable(tableName).GetValueSync(); UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); } @@ -63,13 +120,24 @@ namespace NKqp { } } for (auto shard : shards) { - RebootTablet(*runtime, shard, sender); + Kikimr.GetTestServer().GetRuntime()->Send(MakePipePeNodeCacheID(false), NActors::TActorId(), new TEvPipeCache::TEvForward( + new TEvents::TEvPoisonPill(), shard, false)); } } TString TTestHelper::TColumnSchema::BuildQuery() const { - auto str = TStringBuilder() << Name << " " << NScheme::GetTypeName(Type); + auto str = TStringBuilder() << Name << " "; + switch (Type) { + case NScheme::NTypeIds::Decimal: { + TTypeBuilder builder; + builder.Decimal(TDecimalType(22, 9)); + str << builder.Build(); + break; + } + default: + str << NScheme::GetTypeName(Type); + } if (!NullableFlag) { str << " NOT NULL"; } diff --git a/ydb/core/kqp/ut/common/columnshard.h b/ydb/core/kqp/ut/common/columnshard.h index adc2ea16989a..2ac738be7cd7 100644 --- a/ydb/core/kqp/ut/common/columnshard.h +++ b/ydb/core/kqp/ut/common/columnshard.h @@ -70,7 +70,12 @@ namespace NKqp { TKikimrRunner& GetKikimr(); TTestActorRuntime& GetRuntime(); NYdb::NTable::TSession& GetSession(); - void CreateTable(const TColumnTableBase& table); + void CreateTable(const TColumnTableBase& table, const NYdb::EStatus expectedStatus = NYdb::EStatus::SUCCESS); + void DropTable(const TString& tableName); + void CreateTier(const TString& tierName); + TString CreateTieringRule(const TString& tierName, const TString& columnName); + void SetTiering(const TString& tableName, const TString& ruleName); + void ResetTiering(const TString& tableName); void BulkUpsert(const TColumnTable& table, TTestHelper::TUpdatesBuilder& updates, const Ydb::StatusIds_StatusCode& opStatus = Ydb::StatusIds::SUCCESS); void BulkUpsert(const TColumnTable& table, std::shared_ptr batch, const Ydb::StatusIds_StatusCode& opStatus = Ydb::StatusIds::SUCCESS); void ReadData(const TString& query, const TString& expected, const NYdb::EStatus opStatus = NYdb::EStatus::SUCCESS); diff --git a/ydb/core/kqp/ut/common/kqp_ut_common.cpp b/ydb/core/kqp/ut/common/kqp_ut_common.cpp index adea3a31a098..46abedf3101f 100644 --- a/ydb/core/kqp/ut/common/kqp_ut_common.cpp +++ b/ydb/core/kqp/ut/common/kqp_ut_common.cpp @@ -1305,6 +1305,18 @@ TVector GetTableShards(Tests::TServer* server, return shards; } +TVector GetColumnTableShards(Tests::TServer* server, + TActorId sender, + const TString &path) +{ + TVector shards; + auto lsResult = DescribeTable(server, sender, path); + for (auto &part : lsResult.GetPathDescription().GetColumnTableDescription().GetSharding().GetColumnShards()) + shards.push_back(part); + + return shards; +} + TVector GetTableShards(Tests::TServer::TPtr server, TActorId sender, const TString &path) { diff --git a/ydb/core/kqp/ut/common/kqp_ut_common.h b/ydb/core/kqp/ut/common/kqp_ut_common.h index 10b01f158175..8af2defd13ad 100644 --- a/ydb/core/kqp/ut/common/kqp_ut_common.h +++ b/ydb/core/kqp/ut/common/kqp_ut_common.h @@ -325,6 +325,7 @@ NKikimrScheme::TEvDescribeSchemeResult DescribeTable(Tests::TServer* server, TAc TVector GetTableShards(Tests::TServer* server, TActorId sender, const TString &path); TVector GetTableShards(Tests::TServer::TPtr server, TActorId sender, const TString &path); +TVector GetColumnTableShards(Tests::TServer* server, TActorId sender, const TString &path); void WaitForZeroSessions(const NKqp::TKqpCounters& counters); diff --git a/ydb/core/kqp/ut/cost/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/cost/CMakeLists.darwin-arm64.txt index 6e2b287bd5f2..a2d68550def8 100644 --- a/ydb/core/kqp/ut/cost/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/cost/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-kqp-ut-cost PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-cost PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/cost/kqp_cost_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/cost/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/cost/CMakeLists.darwin-x86_64.txt index 1d018bd33426..2e618bc87bcb 100644 --- a/ydb/core/kqp/ut/cost/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/cost/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kqp-ut-cost PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-cost PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/cost/kqp_cost_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/cost/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/cost/CMakeLists.linux-aarch64.txt index 21ba4b69654d..11bc25789ded 100644 --- a/ydb/core/kqp/ut/cost/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/cost/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-kqp-ut-cost PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-cost PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/cost/kqp_cost_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/cost/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/cost/CMakeLists.linux-x86_64.txt index 3dedc00448e1..63395a7c39f2 100644 --- a/ydb/core/kqp/ut/cost/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/cost/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kqp-ut-cost PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-cost PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/cost/kqp_cost_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/cost/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/cost/CMakeLists.windows-x86_64.txt index abc77fe8ab84..515f179d1f9a 100644 --- a/ydb/core/kqp/ut/cost/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/cost/CMakeLists.windows-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/data/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/data/CMakeLists.darwin-arm64.txt index 5f39c4b4339f..2b4dbeb12137 100644 --- a/ydb/core/kqp/ut/data/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/data/CMakeLists.darwin-arm64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-core-kqp-ut-data PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-data PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/data/kqp_read_null_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/data/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/data/CMakeLists.darwin-x86_64.txt index 5857d5dd67a0..69d3f745cefd 100644 --- a/ydb/core/kqp/ut/data/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/data/CMakeLists.darwin-x86_64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-core-kqp-ut-data PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-data PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/data/kqp_read_null_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/data/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/data/CMakeLists.linux-aarch64.txt index e342f01493f7..3ef98ed96ba6 100644 --- a/ydb/core/kqp/ut/data/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/data/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-core-kqp-ut-data PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-data PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/data/kqp_read_null_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/data/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/data/CMakeLists.linux-x86_64.txt index ca0c8007393d..852bd54d7d66 100644 --- a/ydb/core/kqp/ut/data/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/data/CMakeLists.linux-x86_64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-core-kqp-ut-data PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-data PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/data/kqp_read_null_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/data/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/data/CMakeLists.windows-x86_64.txt index f6573cf3898c..7084e72278e5 100644 --- a/ydb/core/kqp/ut/data/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/data/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/effects/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/effects/CMakeLists.darwin-arm64.txt index 237f251aded4..1fce39f8306b 100644 --- a/ydb/core/kqp/ut/effects/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/effects/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kqp-ut-effects PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-effects PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/effects/kqp_effects_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/effects/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/effects/CMakeLists.darwin-x86_64.txt index 1960a82028b0..ae9e7c250f25 100644 --- a/ydb/core/kqp/ut/effects/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/effects/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-kqp-ut-effects PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-effects PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/effects/kqp_effects_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/effects/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/effects/CMakeLists.linux-aarch64.txt index 9e8e9f095004..0fd76b9d703e 100644 --- a/ydb/core/kqp/ut/effects/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/effects/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kqp-ut-effects PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-effects PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/effects/kqp_effects_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/effects/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/effects/CMakeLists.linux-x86_64.txt index f9cc49e72273..eb9aebd66a50 100644 --- a/ydb/core/kqp/ut/effects/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/effects/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-kqp-ut-effects PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-effects PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/effects/kqp_effects_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/effects/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/effects/CMakeLists.windows-x86_64.txt index 967768600613..fa3b4b7ba86e 100644 --- a/ydb/core/kqp/ut/effects/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/effects/CMakeLists.windows-x86_64.txt @@ -55,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/federated_query/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/federated_query/CMakeLists.darwin-arm64.txt deleted file mode 100644 index 8985a38071fd..000000000000 --- a/ydb/core/kqp/ut/federated_query/CMakeLists.darwin-arm64.txt +++ /dev/null @@ -1,12 +0,0 @@ - -# 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(common) -add_subdirectory(generic) -add_subdirectory(generic_ut) -add_subdirectory(s3) diff --git a/ydb/core/kqp/ut/federated_query/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/federated_query/CMakeLists.darwin-x86_64.txt deleted file mode 100644 index 8985a38071fd..000000000000 --- a/ydb/core/kqp/ut/federated_query/CMakeLists.darwin-x86_64.txt +++ /dev/null @@ -1,12 +0,0 @@ - -# 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(common) -add_subdirectory(generic) -add_subdirectory(generic_ut) -add_subdirectory(s3) diff --git a/ydb/core/kqp/ut/federated_query/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/federated_query/CMakeLists.linux-aarch64.txt deleted file mode 100644 index 8985a38071fd..000000000000 --- a/ydb/core/kqp/ut/federated_query/CMakeLists.linux-aarch64.txt +++ /dev/null @@ -1,12 +0,0 @@ - -# 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(common) -add_subdirectory(generic) -add_subdirectory(generic_ut) -add_subdirectory(s3) diff --git a/ydb/core/kqp/ut/federated_query/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/federated_query/CMakeLists.linux-x86_64.txt deleted file mode 100644 index 8985a38071fd..000000000000 --- a/ydb/core/kqp/ut/federated_query/CMakeLists.linux-x86_64.txt +++ /dev/null @@ -1,12 +0,0 @@ - -# 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(common) -add_subdirectory(generic) -add_subdirectory(generic_ut) -add_subdirectory(s3) diff --git a/ydb/core/kqp/ut/federated_query/CMakeLists.txt b/ydb/core/kqp/ut/federated_query/CMakeLists.txt index d863ebd18067..8985a38071fd 100644 --- a/ydb/core/kqp/ut/federated_query/CMakeLists.txt +++ b/ydb/core/kqp/ut/federated_query/CMakeLists.txt @@ -6,14 +6,7 @@ # original buildsystem will not be accepted. -if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA) - include(CMakeLists.linux-x86_64.txt) -elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) -endif() +add_subdirectory(common) +add_subdirectory(generic) +add_subdirectory(generic_ut) +add_subdirectory(s3) diff --git a/ydb/core/kqp/ut/federated_query/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/federated_query/CMakeLists.windows-x86_64.txt deleted file mode 100644 index 3eb3aa480665..000000000000 --- a/ydb/core/kqp/ut/federated_query/CMakeLists.windows-x86_64.txt +++ /dev/null @@ -1,11 +0,0 @@ - -# 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(common) -add_subdirectory(generic_ut) -add_subdirectory(s3) diff --git a/ydb/core/kqp/ut/federated_query/generic/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.darwin-arm64.txt index f68976c13506..1867085d1868 100644 --- a/ydb/core/kqp/ut/federated_query/generic/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.darwin-arm64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-core-kqp-ut-federated_query-generic PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-federated_query-generic PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/generic/ch_recipe_ut_helpers.cpp @@ -46,7 +44,7 @@ set_property( ydb-core-kqp-ut-federated_query-generic PROPERTY SPLIT_FACTOR - 10 + 1 ) add_yunittest( NAME @@ -65,7 +63,8 @@ set_yunittest_property( ydb-core-kqp-ut-federated_query-generic PROPERTY LABELS - SMALL + MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/federated_query/generic/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.darwin-x86_64.txt index 17eb95ccc5e4..2e42a5c3ce0a 100644 --- a/ydb/core/kqp/ut/federated_query/generic/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.darwin-x86_64.txt @@ -32,8 +32,6 @@ target_link_options(ydb-core-kqp-ut-federated_query-generic PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-federated_query-generic PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/generic/ch_recipe_ut_helpers.cpp @@ -47,7 +45,7 @@ set_property( ydb-core-kqp-ut-federated_query-generic PROPERTY SPLIT_FACTOR - 10 + 1 ) add_yunittest( NAME @@ -66,7 +64,8 @@ set_yunittest_property( ydb-core-kqp-ut-federated_query-generic PROPERTY LABELS - SMALL + MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/federated_query/generic/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.linux-aarch64.txt index 8bd7889e9c92..bcc330b5a5e4 100644 --- a/ydb/core/kqp/ut/federated_query/generic/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.linux-aarch64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-core-kqp-ut-federated_query-generic PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-federated_query-generic PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/generic/ch_recipe_ut_helpers.cpp @@ -50,7 +47,7 @@ set_property( ydb-core-kqp-ut-federated_query-generic PROPERTY SPLIT_FACTOR - 10 + 1 ) add_yunittest( NAME @@ -69,7 +66,8 @@ set_yunittest_property( ydb-core-kqp-ut-federated_query-generic PROPERTY LABELS - SMALL + MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/federated_query/generic/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.linux-x86_64.txt index 735ffc77daa6..5ed0aa060c91 100644 --- a/ydb/core/kqp/ut/federated_query/generic/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.linux-x86_64.txt @@ -35,9 +35,6 @@ target_link_options(ydb-core-kqp-ut-federated_query-generic PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-federated_query-generic PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/generic/ch_recipe_ut_helpers.cpp @@ -51,7 +48,7 @@ set_property( ydb-core-kqp-ut-federated_query-generic PROPERTY SPLIT_FACTOR - 10 + 1 ) add_yunittest( NAME @@ -70,7 +67,8 @@ set_yunittest_property( ydb-core-kqp-ut-federated_query-generic PROPERTY LABELS - SMALL + MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/federated_query/generic/CMakeLists.txt b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.txt index 380079ac7b4a..d863ebd18067 100644 --- a/ydb/core/kqp/ut/federated_query/generic/CMakeLists.txt +++ b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.txt @@ -14,4 +14,6 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL include(CMakeLists.darwin-x86_64.txt) elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) endif() diff --git a/ydb/core/kqp/ut/federated_query/generic/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..55466064f61b --- /dev/null +++ b/ydb/core/kqp/ut/federated_query/generic/CMakeLists.windows-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-core-kqp-ut-federated_query-generic) +target_compile_options(ydb-core-kqp-ut-federated_query-generic PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-kqp-ut-federated_query-generic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp +) +target_link_libraries(ydb-core-kqp-ut-federated_query-generic PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + ydb-core-kqp + contrib-libs-fmt + contrib-libs-libpqxx + cpp-clickhouse-client + kqp-ut-common + ut-federated_query-common + generic-connector-libcpp + yql-sql-pg_dummy +) +target_sources(ydb-core-kqp-ut-federated_query-generic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/generic/ch_recipe_ut_helpers.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/generic/connector_recipe_ut_helpers.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/generic/kqp_generic_plan_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/generic/kqp_generic_provider_join_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/generic/pg_recipe_ut_helpers.cpp +) +set_property( + TARGET + ydb-core-kqp-ut-federated_query-generic + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-kqp-ut-federated_query-generic + TEST_TARGET + ydb-core-kqp-ut-federated_query-generic + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-kqp-ut-federated_query-generic + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-kqp-ut-federated_query-generic + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-kqp-ut-federated_query-generic + system_allocator +) +vcs_info(ydb-core-kqp-ut-federated_query-generic) diff --git a/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.darwin-arm64.txt index c52a44efd007..99133507c5be 100644 --- a/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.darwin-arm64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-core-kqp-ut-federated_query-generic_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-federated_query-generic_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/generic_ut/kqp_generic_provider_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.darwin-x86_64.txt index fbce2488948d..e2aed5091ea2 100644 --- a/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.darwin-x86_64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-core-kqp-ut-federated_query-generic_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-federated_query-generic_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/generic_ut/kqp_generic_provider_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.linux-aarch64.txt index 014d631899a7..2a63b9e2944d 100644 --- a/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-core-kqp-ut-federated_query-generic_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-federated_query-generic_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/generic_ut/kqp_generic_provider_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.linux-x86_64.txt index e3e0d1cf8648..fdfc4d353dff 100644 --- a/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-core-kqp-ut-federated_query-generic_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-federated_query-generic_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/generic_ut/kqp_generic_provider_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.windows-x86_64.txt index 14e6132d039e..7cb343edd53b 100644 --- a/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/federated_query/generic_ut/CMakeLists.windows-x86_64.txt @@ -55,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/federated_query/s3/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/federated_query/s3/CMakeLists.darwin-arm64.txt index 4b321c2f31a2..0563817621b4 100644 --- a/ydb/core/kqp/ut/federated_query/s3/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/federated_query/s3/CMakeLists.darwin-arm64.txt @@ -29,11 +29,10 @@ target_link_options(ydb-core-kqp-ut-federated_query-s3 PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-federated_query-s3 PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_federated_scheme_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_s3_plan_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/s3_recipe_ut_helpers.cpp ) @@ -62,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/federated_query/s3/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/federated_query/s3/CMakeLists.darwin-x86_64.txt index 5d2c4f5ed1f5..6da91f016b1f 100644 --- a/ydb/core/kqp/ut/federated_query/s3/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/federated_query/s3/CMakeLists.darwin-x86_64.txt @@ -30,11 +30,10 @@ target_link_options(ydb-core-kqp-ut-federated_query-s3 PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-federated_query-s3 PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_federated_scheme_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_s3_plan_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/s3_recipe_ut_helpers.cpp ) @@ -63,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/federated_query/s3/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/federated_query/s3/CMakeLists.linux-aarch64.txt index 8fce9c1a58cb..72c72d7c8669 100644 --- a/ydb/core/kqp/ut/federated_query/s3/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/federated_query/s3/CMakeLists.linux-aarch64.txt @@ -32,12 +32,10 @@ target_link_options(ydb-core-kqp-ut-federated_query-s3 PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-federated_query-s3 PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_federated_scheme_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_s3_plan_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/s3_recipe_ut_helpers.cpp ) @@ -66,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/federated_query/s3/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/federated_query/s3/CMakeLists.linux-x86_64.txt index 92405f1754aa..4135f6bfdfe1 100644 --- a/ydb/core/kqp/ut/federated_query/s3/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/federated_query/s3/CMakeLists.linux-x86_64.txt @@ -33,12 +33,10 @@ target_link_options(ydb-core-kqp-ut-federated_query-s3 PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-federated_query-s3 PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_federated_scheme_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_s3_plan_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/s3_recipe_ut_helpers.cpp ) @@ -67,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/federated_query/s3/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/federated_query/s3/CMakeLists.windows-x86_64.txt index 2a7b658fd09f..131b05b8df22 100644 --- a/ydb/core/kqp/ut/federated_query/s3/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/federated_query/s3/CMakeLists.windows-x86_64.txt @@ -28,6 +28,7 @@ target_link_libraries(ydb-core-kqp-ut-federated_query-s3 PUBLIC ) target_sources(ydb-core-kqp-ut-federated_query-s3 PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_federated_scheme_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/kqp_s3_plan_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/federated_query/s3/s3_recipe_ut_helpers.cpp ) @@ -56,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp b/ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp index 69d72ee6e089..cefcb956b0d0 100644 --- a/ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp +++ b/ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp @@ -1591,6 +1591,78 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) { UNIT_ASSERT_STRING_CONTAINS(queryExecutionOperation.GetIssues().ToString(), "\"/Root/external_table\" is expected to be external data source"); } } + + Y_UNIT_TEST(QueryWithNoDataInS3) { + const TString externalDataSourceName = "tpc_h_s3_storage_connection"; + const TString bucket = "test_bucket_no_data"; + + Aws::S3::S3Client s3Client = MakeS3Client(); + CreateBucket(bucket, s3Client); + // Uncomment if you want to compare with query with data + //UploadObject(bucket, "l/l", R"json({"l_extendedprice": 0.0, "l_discount": 1.0, "l_partkey": 1})json", s3Client); + //UploadObject(bucket, "p/p", R"json({"p_partkey": 1, "p_type": "t"})json", s3Client); + + auto kikimr = MakeKikimrRunner(NYql::IHTTPGateway::Make()); + auto client = kikimr->GetQueryClient(); + + { + const TString query = fmt::format(R"sql( + CREATE EXTERNAL DATA SOURCE `{external_source}` WITH ( + SOURCE_TYPE="ObjectStorage", + LOCATION="{location}", + AUTH_METHOD="NONE" + ); + )sql", + "external_source"_a = externalDataSourceName, + "location"_a = GetBucketLocation(bucket) + ); + auto result = client.ExecuteQuery(query, TTxControl::NoTx()).GetValueSync(); + UNIT_ASSERT_C(result.GetStatus() == NYdb::EStatus::SUCCESS, result.GetIssues().ToString()); + } + + { + // YQ-2750 + const TString query = fmt::format(R"sql( + $border = Date("1994-08-01"); + select + 100.00 * sum(case + when StartsWith(p.p_type, 'PROMO') + then l.l_extendedprice * (1 - l.l_discount) + else 0 + end) / sum(l.l_extendedprice * (1 - l.l_discount)) as promo_revenue + from + {external_source}.`l/` with ( schema ( + l_extendedprice double, + l_discount double, + l_partkey int64, + l_shipdate date + ), + format = "json_each_row" + ) as l + join + {external_source}.`p/` with ( schema ( + p_partkey int64, + p_type string + ), + format = "json_each_row" + ) as p + on + l.l_partkey = p.p_partkey + where + cast(l.l_shipdate as timestamp) >= $border + and cast(l.l_shipdate as timestamp) < ($border + Interval("P31D")); + )sql", + "external_source"_a = externalDataSourceName + ); + auto result = client.ExecuteQuery(query, TTxControl::BeginTx().CommitTx()).GetValueSync(); + UNIT_ASSERT_C(result.GetStatus() == NYdb::EStatus::SUCCESS, result.GetIssues().ToString()); + auto rs = result.GetResultSetParser(0); + UNIT_ASSERT_VALUES_EQUAL(rs.RowsCount(), 1); + rs.TryNextRow(); + TMaybe sum = rs.ColumnParser(0).GetOptionalDouble(); + UNIT_ASSERT(!sum); + } + } } } // namespace NKikimr::NKqp diff --git a/ydb/core/kqp/ut/idx_test/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/idx_test/CMakeLists.darwin-arm64.txt index ae5485355fa9..ba6c4839aee1 100644 --- a/ydb/core/kqp/ut/idx_test/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/idx_test/CMakeLists.darwin-arm64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-core-kqp-ut-idx_test PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-idx_test PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/idx_test/ydb_index_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/idx_test/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/idx_test/CMakeLists.darwin-x86_64.txt index eafd8a9440d8..4f0a872ceb75 100644 --- a/ydb/core/kqp/ut/idx_test/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/idx_test/CMakeLists.darwin-x86_64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-core-kqp-ut-idx_test PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-idx_test PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/idx_test/ydb_index_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/idx_test/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/idx_test/CMakeLists.linux-aarch64.txt index 7dc3a51f0e9c..0c6c44780978 100644 --- a/ydb/core/kqp/ut/idx_test/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/idx_test/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-core-kqp-ut-idx_test PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-idx_test PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/idx_test/ydb_index_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/idx_test/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/idx_test/CMakeLists.linux-x86_64.txt index f34572652611..a2727d521d44 100644 --- a/ydb/core/kqp/ut/idx_test/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/idx_test/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-core-kqp-ut-idx_test PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-idx_test PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/idx_test/ydb_index_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/idx_test/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/idx_test/CMakeLists.windows-x86_64.txt index bd73d3a934f2..76e8f96a9d20 100644 --- a/ydb/core/kqp/ut/idx_test/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/idx_test/CMakeLists.windows-x86_64.txt @@ -55,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/indexes/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/indexes/CMakeLists.darwin-arm64.txt index ad43bf80fe02..6e82815ae8f4 100644 --- a/ydb/core/kqp/ut/indexes/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/indexes/CMakeLists.darwin-arm64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-kqp-ut-indexes PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-indexes PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/indexes/kqp_indexes_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/indexes/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/indexes/CMakeLists.darwin-x86_64.txt index 35c2763f52e2..f1af2b289fdf 100644 --- a/ydb/core/kqp/ut/indexes/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/indexes/CMakeLists.darwin-x86_64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-core-kqp-ut-indexes PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-indexes PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/indexes/kqp_indexes_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/indexes/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/indexes/CMakeLists.linux-aarch64.txt index 5d46f97cb4e1..059ef340e210 100644 --- a/ydb/core/kqp/ut/indexes/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/indexes/CMakeLists.linux-aarch64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-kqp-ut-indexes PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-indexes PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/indexes/kqp_indexes_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/indexes/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/indexes/CMakeLists.linux-x86_64.txt index 0b6bbe2da4ad..88482b14e295 100644 --- a/ydb/core/kqp/ut/indexes/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/indexes/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-core-kqp-ut-indexes PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-indexes PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/indexes/kqp_indexes_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/indexes/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/indexes/CMakeLists.windows-x86_64.txt index 9dc95813228d..0d6d8433c027 100644 --- a/ydb/core/kqp/ut/indexes/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/indexes/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/join/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/join/CMakeLists.darwin-arm64.txt index 610c92292e00..8b747427ce53 100644 --- a/ydb/core/kqp/ut/join/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/join/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kqp-ut-join PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-join PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/join/kqp_flip_join_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/join/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/join/CMakeLists.darwin-x86_64.txt index 44f17858ecd6..e04c7f309314 100644 --- a/ydb/core/kqp/ut/join/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/join/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-kqp-ut-join PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-join PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/join/kqp_flip_join_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/join/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/join/CMakeLists.linux-aarch64.txt index 2f8f1cfe4d2f..a0d85ed4de51 100644 --- a/ydb/core/kqp/ut/join/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/join/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kqp-ut-join PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-join PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/join/kqp_flip_join_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/join/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/join/CMakeLists.linux-x86_64.txt index 6d8f2e29856f..573e27485522 100644 --- a/ydb/core/kqp/ut/join/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/join/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-kqp-ut-join PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-join PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/join/kqp_flip_join_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/join/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/join/CMakeLists.windows-x86_64.txt index 4ea7727bf856..059364d2fb72 100644 --- a/ydb/core/kqp/ut/join/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/join/CMakeLists.windows-x86_64.txt @@ -55,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/join/kqp_join_ut.cpp b/ydb/core/kqp/ut/join/kqp_join_ut.cpp index fedaa77073ea..ed72f437ca9e 100644 --- a/ydb/core/kqp/ut/join/kqp_join_ut.cpp +++ b/ydb/core/kqp/ut/join/kqp_join_ut.cpp @@ -1303,6 +1303,177 @@ Y_UNIT_TEST_SUITE(KqpJoin) { UNIT_ASSERT(explain.GetAst().Contains("GraceJoinCore")); } + Y_UNIT_TEST(FullOuterJoinNotNullJoinKey) { + TKikimrRunner kikimr; + auto db = kikimr.GetTableClient(); + auto session = db.CreateSession().GetValueSync().GetSession(); + + { // init tables + AssertSuccessResult(session.ExecuteSchemeQuery(R"( + --!syntax_v1 + + CREATE TABLE left + ( + Key Int64 NOT NULL, + Value Int64, + PRIMARY KEY (Key) + ); + + CREATE TABLE right + ( + Key Int64 NOT NULL, + Value Int64, + PRIMARY KEY (Key) + ); + )").GetValueSync()); + + auto result = session.ExecuteDataQuery(R"( + --!syntax_v1 + + REPLACE INTO left (Key, Value) VALUES + (1, 10), + (2, 20), + (3, 30); + + REPLACE INTO right (Key, Value) VALUES + (1, 10), + (2, 200), + (3, 300), + (4, 40); + )", TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::SUCCESS); + } + + { + auto result = session.ExecuteDataQuery(R"( + --!syntax_v1 + + SELECT l.Key, l.Value, r.Key, r.Value FROM left as l FULL JOIN right as r + ON (l.Value = r.Value AND l.Key = r.Key) + ORDER BY l.Key, r.Key; + )", TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + CompareYson(R"([ + [#;#;[2];[200]]; + [#;#;[3];[300]]; + [#;#;[4];[40]]; + [[1];[10];[1];[10]]; + [[2];[20];#;#]; + [[3];[30];#;#] + ])", FormatResultSetYson(result.GetResultSet(0))); + } + } + + Y_UNIT_TEST_TWIN(AllowJoinsForComplexPredicates, StreamLookup) { + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnableKqpDataQueryStreamIdxLookupJoin(StreamLookup); + appConfig.MutableTableServiceConfig()->SetOldLookupJoinBehaviour(false); + appConfig.MutableTableServiceConfig()->SetIdxLookupJoinPointsLimit(10); + //appConfig.MutableTableServiceConfig()->SetEnableKqpDataQueryStreamLookup(false); + + auto appsettings = TKikimrSettings().SetAppConfig(appConfig); + + TKikimrRunner kikimr(appsettings); + auto db = kikimr.GetTableClient(); + auto session = db.CreateSession().GetValueSync().GetSession(); + + NYdb::NTable::TExecDataQuerySettings settings; + settings.CollectQueryStats(ECollectQueryStatsMode::Profile); + + { + auto result = session.ExecuteDataQuery(R"( + --!syntax_v1 + + SELECT l.Fk21, l.Fk22, r.Key1, r.Key2, r.Name FROM Join1 as l JOIN Join2 as r + ON (l.Fk21 = r.Key1 AND l.Fk22 = r.Key2) + WHERE r.Key1 > 0 and r.Name > "" + ORDER BY l.Fk21 ASC, l.Fk22 ASC + )", TTxControl::BeginTx().CommitTx(), settings).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + CompareYson(R"([ + [[101u];["One"];[101u];["One"];["Name1"]]; + [[101u];["Two"];[101u];["Two"];["Name1"]]; + [[103u];["One"];[103u];["One"];["Name1"]]; + [[105u];["One"];[105u];["One"];["Name2"]] + ])", FormatResultSetYson(result.GetResultSet(0))); + AssertTableReads(result, "/Root/Join2", 5); + UNIT_ASSERT(result.GetQueryPlan().Contains("Lookup")); + } + + { + auto result = session.ExecuteDataQuery(R"( + --!syntax_v1 + + SELECT l.Fk21, l.Fk22, r.Key1, r.Key2, r.Name FROM Join1 as l JOIN Join2 as r + ON (l.Fk21 = r.Key1 AND l.Fk22 = r.Key2) + WHERE r.Key1 = 101u and r.Key2 >= "One" and r.Key2 <= "Two" + ORDER BY l.Fk21 ASC, l.Fk22 ASC + )", TTxControl::BeginTx().CommitTx(), settings).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + CompareYson(R"([ + [[101u];["One"];[101u];["One"];["Name1"]]; + [[101u];["Two"];[101u];["Two"];["Name1"]] + ])", FormatResultSetYson(result.GetResultSet(0))); + AssertTableReads(result, "/Root/Join2", 2); + UNIT_ASSERT(result.GetQueryPlan().Contains("Lookup")); + } + + { + auto result = session.ExecuteDataQuery(R"( + --!syntax_v1 + + SELECT l.Fk21, l.Fk22, r.Key1, r.Key2, r.Name FROM Join1 as l JOIN Join2 as r + ON (l.Fk21 = r.Key1 AND l.Fk22 = r.Key2) + WHERE r.Key1 >= 101u and r.Key1 <= 103u and r.Key2 >= "One" and r.Key2 <= "Two" + ORDER BY l.Fk21 ASC, l.Fk22 ASC + )", TTxControl::BeginTx().CommitTx(), settings).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + CompareYson(R"([ + [[101u];["One"];[101u];["One"];["Name1"]]; + [[101u];["Two"];[101u];["Two"];["Name1"]]; + [[103u];["One"];[103u];["One"];["Name1"]] + ])", FormatResultSetYson(result.GetResultSet(0))); + AssertTableReads(result, "/Root/Join2", 3); + UNIT_ASSERT(result.GetQueryPlan().Contains("Lookup")); + } + + { + auto result = session.ExecuteDataQuery(R"( + --!syntax_v1 + + SELECT l.Fk21, l.Fk22, r.Key1, r.Key2, r.Name FROM Join1 as l JOIN Join2 as r + ON (l.Fk21 = r.Key1 AND l.Fk22 = r.Key2) + WHERE r.Key1 = 101u or r.Key1 = 105u + ORDER BY l.Fk21 ASC, l.Fk22 ASC + )", TTxControl::BeginTx().CommitTx(), settings).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + CompareYson(R"([ + [[101u];["One"];[101u];["One"];["Name1"]]; + [[101u];["Two"];[101u];["Two"];["Name1"]]; + [[105u];["One"];[105u];["One"];["Name2"]] + ])", FormatResultSetYson(result.GetResultSet(0))); + AssertTableReads(result, "/Root/Join2", 3); + UNIT_ASSERT(result.GetQueryPlan().Contains("Lookup")); + } + + { + auto result = session.ExecuteDataQuery(R"( + --!syntax_v1 + + SELECT l.Fk21, l.Fk22, r.Key1, r.Key2, r.Name FROM Join1 as l JOIN Join2 as r + ON (l.Fk21 = r.Key1 AND l.Fk22 = r.Key2) + WHERE (r.Key1 = 101u AND r.Key2 = "One") OR r.Key1 = 105u + ORDER BY l.Fk21 ASC, l.Fk22 ASC + )", TTxControl::BeginTx().CommitTx(), settings).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + CompareYson(R"([ + [[101u];["One"];[101u];["One"];["Name1"]]; + [[105u];["One"];[105u];["One"];["Name2"]] + ])", FormatResultSetYson(result.GetResultSet(0))); + AssertTableReads(result, "/Root/Join2", 2); + UNIT_ASSERT(result.GetQueryPlan().Contains("Lookup")); + } + } } } // namespace NKqp diff --git a/ydb/core/kqp/ut/olap/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/olap/CMakeLists.darwin-arm64.txt index 3848f566964a..08bda806a131 100644 --- a/ydb/core/kqp/ut/olap/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/olap/CMakeLists.darwin-arm64.txt @@ -28,10 +28,9 @@ target_link_options(ydb-core-kqp-ut-olap PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-olap PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/olap/kqp_olap_stats_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp ) set_property( @@ -59,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/olap/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/olap/CMakeLists.darwin-x86_64.txt index 6290b56e4304..cacb8feb17e3 100644 --- a/ydb/core/kqp/ut/olap/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/olap/CMakeLists.darwin-x86_64.txt @@ -29,10 +29,9 @@ target_link_options(ydb-core-kqp-ut-olap PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-olap PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/olap/kqp_olap_stats_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp ) set_property( @@ -60,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/olap/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/olap/CMakeLists.linux-aarch64.txt index 86526389b4a2..c14f3aa30a29 100644 --- a/ydb/core/kqp/ut/olap/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/olap/CMakeLists.linux-aarch64.txt @@ -31,11 +31,9 @@ target_link_options(ydb-core-kqp-ut-olap PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-olap PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/olap/kqp_olap_stats_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp ) set_property( @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/olap/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/olap/CMakeLists.linux-x86_64.txt index 223ce831a749..03004dbf46a2 100644 --- a/ydb/core/kqp/ut/olap/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/olap/CMakeLists.linux-x86_64.txt @@ -32,11 +32,9 @@ target_link_options(ydb-core-kqp-ut-olap PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-olap PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/olap/kqp_olap_stats_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp ) set_property( @@ -64,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/olap/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/olap/CMakeLists.windows-x86_64.txt index 2f0b772eb6b3..a7456bc4fe1f 100644 --- a/ydb/core/kqp/ut/olap/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/olap/CMakeLists.windows-x86_64.txt @@ -26,6 +26,7 @@ target_link_libraries(ydb-core-kqp-ut-olap PUBLIC tx-datashard-ut_common ) target_sources(ydb-core-kqp-ut-olap PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/olap/kqp_olap_stats_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp ) set_property( @@ -53,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/olap/aggregations_ut.cpp b/ydb/core/kqp/ut/olap/aggregations_ut.cpp new file mode 100644 index 000000000000..841a04f9ca62 --- /dev/null +++ b/ydb/core/kqp/ut/olap/aggregations_ut.cpp @@ -0,0 +1,1354 @@ +#include + +#include "helpers/aggregation.h" + +#include +#include +#include + +#include +#include + +namespace NKikimr::NKqp { + +Y_UNIT_TEST_SUITE(KqpOlapAggregations) { + Y_UNIT_TEST(Aggregation) { + auto settings = TKikimrSettings() + .SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + + TLocalHelper(kikimr).CreateTestOlapTable(); + + auto tableClient = kikimr.GetTableClient(); + + { + auto it = tableClient.StreamExecuteScanQuery(R"( + --!syntax_v1 + + SELECT + COUNT(*) + FROM `/Root/olapStore/olapTable` + )").GetValueSync(); + + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + Cout << result << Endl; + CompareYson(result, R"([[0u;]])"); + } + + { + WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 11000, 3001000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 12000, 3002000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 13000, 3003000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 14000, 3004000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 20000, 2000000, 7000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); + } + + { + auto it = tableClient.StreamExecuteScanQuery(R"( + --!syntax_v1 + + SELECT + COUNT(*), MAX(`resource_id`), MAX(`timestamp`), MIN(LENGTH(`message`)) + FROM `/Root/olapStore/olapTable` + )").GetValueSync(); + + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + Cout << result << Endl; + CompareYson(result, R"([[23000u;["40999"];[3004999u];[1036u]]])"); + } + + { + auto it = tableClient.StreamExecuteScanQuery(R"( + --!syntax_v1 + + SELECT + COUNT(*) + FROM `/Root/olapStore/olapTable` + )").GetValueSync(); + + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + Cout << result << Endl; + CompareYson(result, R"([[23000u;]])"); + } + } + + Y_UNIT_TEST(AggregationCountPushdown) { + auto settings = TKikimrSettings() + .SetWithSampleTables(false) + .SetForceColumnTablesCompositeMarks(true); + TKikimrRunner kikimr(settings); + + TLocalHelper(kikimr).CreateTestOlapTable(); + auto tableClient = kikimr.GetTableClient(); + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + + { + WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 11000, 3001000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 12000, 3002000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 13000, 3003000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 14000, 3004000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 20000, 2000000, 7000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); + } + while (csController->GetInsertFinishedCounter().Val() == 0) { + Cout << "Wait indexation..." << Endl; + Sleep(TDuration::Seconds(2)); + } + AFL_VERIFY(Singleton()->GetSize()); + + { + TString query = R"( + --!syntax_v1 + SELECT + COUNT(level) + FROM `/Root/olapStore/olapTable` + )"; + auto opStartTime = Now(); + auto it = tableClient.StreamExecuteScanQuery(query).GetValueSync(); + + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + Cerr << "!!!\nPushdown query execution time: " << (Now() - opStartTime).MilliSeconds() << "\n!!!\n"; + Cout << result << Endl; + CompareYson(result, R"([[23000u;]])"); + + // Check plan +#if SSA_RUNTIME_VERSION >= 2U + CheckPlanForAggregatePushdown(query, tableClient, { "TKqpOlapAgg" }, "TableFullScan"); +#else + CheckPlanForAggregatePushdown(query, tableClient, { "CombineCore" }, ""); +#endif + } + } + + Y_UNIT_TEST(AggregationCountGroupByPushdown) { + auto settings = TKikimrSettings() + .SetWithSampleTables(false) + .SetForceColumnTablesCompositeMarks(true); + TKikimrRunner kikimr(settings); + + TLocalHelper(kikimr).CreateTestOlapTable(); + auto tableClient = kikimr.GetTableClient(); + + { + WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 11000, 3001000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 12000, 3002000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 13000, 3003000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 14000, 3004000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 20000, 2000000, 7000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); + } + + { + TString query = R"( + --!syntax_v1 + PRAGMA Kikimr.OptUseFinalizeByKey; + SELECT + level, COUNT(level) + FROM `/Root/olapStore/olapTable` + GROUP BY level + ORDER BY level + )"; + auto it = tableClient.StreamExecuteScanQuery(query).GetValueSync(); + + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + Cout << result << Endl; + CompareYson(result, R"([[[0];4600u];[[1];4600u];[[2];4600u];[[3];4600u];[[4];4600u]])"); + + // Check plan +#if SSA_RUNTIME_VERSION >= 2U + CheckPlanForAggregatePushdown(query, tableClient, { "WideCombiner" }, "Aggregate-TableFullScan"); +// CheckPlanForAggregatePushdown(query, tableClient, { "TKqpOlapAgg" }, "TableFullScan"); +#else + CheckPlanForAggregatePushdown(query, tableClient, { "CombineCore" }, ""); +#endif + } + } + + Y_UNIT_TEST_TWIN(CountAllPushdown, UseLlvm) { + auto settings = TKikimrSettings() + .SetWithSampleTables(false) + .SetForceColumnTablesCompositeMarks(true); + TKikimrRunner kikimr(settings); + + TLocalHelper(kikimr).CreateTestOlapTable(); + auto tableClient = kikimr.GetTableClient(); + + { + WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 11000, 3001000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 12000, 3002000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 13000, 3003000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 14000, 3004000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 20000, 2000000, 7000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); + } + + { + TString query = fmt::format(R"( + --!syntax_v1 + PRAGMA ydb.UseLlvm = "{}"; + + SELECT + COUNT(*) + FROM `/Root/olapStore/olapTable` + )", UseLlvm ? "true" : "false"); + auto it = tableClient.StreamExecuteScanQuery(query).GetValueSync(); + + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + Cout << result << Endl; + CompareYson(result, R"([[23000u;]])"); + + // Check plan +#if SSA_RUNTIME_VERSION >= 2U + CheckPlanForAggregatePushdown(query, tableClient, { "TKqpOlapAgg" }, "TableFullScan"); +#else + CheckPlanForAggregatePushdown(query, tableClient, { "Condense" }, ""); +#endif + } + } + + Y_UNIT_TEST_TWIN(CountAllPushdownBackwardCompatibility, EnableLlvm) { + auto settings = TKikimrSettings() + .SetWithSampleTables(false) + .SetForceColumnTablesCompositeMarks(true); + TKikimrRunner kikimr(settings); + + TLocalHelper(kikimr).CreateTestOlapTable(); + auto tableClient = kikimr.GetTableClient(); + + { + WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 11000, 3001000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 12000, 3002000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 13000, 3003000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 14000, 3004000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 20000, 2000000, 7000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); + } + + { + TString query = fmt::format(R"( + --!syntax_v1 + PRAGMA Kikimr.EnableLlvm = "{}"; + + SELECT + COUNT(*) + FROM `/Root/olapStore/olapTable` + )", EnableLlvm ? "true" : "false"); + auto it = tableClient.StreamExecuteScanQuery(query).GetValueSync(); + + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + Cout << result << Endl; + CompareYson(result, R"([[23000u;]])"); + + // Check plan +#if SSA_RUNTIME_VERSION >= 2U + CheckPlanForAggregatePushdown(query, tableClient, { "TKqpOlapAgg" }, "TableFullScan"); +#else + CheckPlanForAggregatePushdown(query, tableClient, { "Condense" }, ""); +#endif + } + } + + Y_UNIT_TEST(CountAllNoPushdown) { + auto settings = TKikimrSettings() + .SetWithSampleTables(false) + .SetForceColumnTablesCompositeMarks(true); + TKikimrRunner kikimr(settings); + + TLocalHelper(kikimr).CreateTestOlapTable(); + auto tableClient = kikimr.GetTableClient(); + + { + WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 11000, 3001000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 12000, 3002000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 13000, 3003000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 14000, 3004000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 20000, 2000000, 7000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); + } + + { + auto it = tableClient.StreamExecuteScanQuery(R"( + --!syntax_v1 + SELECT + COUNT(*) + FROM `/Root/olapStore/olapTable` + )").GetValueSync(); + + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + Cout << result << Endl; + CompareYson(result, R"([[23000u;]])"); + } + } + + Y_UNIT_TEST(Filter_NotAllUsedFieldsInResultSet) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT id, resource_id FROM `/Root/tableWithNulls` + WHERE + level = 5; + )") + .SetExpectedReply("[[5;#]]") + .AddExpectedPlanOptions("KqpOlapFilter"); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_ResultDistinctCountRI_GroupByL) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + level, COUNT(DISTINCT resource_id) + FROM `/Root/olapStore/olapTable` + GROUP BY level + ORDER BY level + )") + .SetExpectedReply("[[[0];4600u];[[1];4600u];[[2];4600u];[[3];4600u];[[4];4600u]]") + ; + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_ResultCountAll_FilterL) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + COUNT(*) + FROM `/Root/olapStore/olapTable` + WHERE level = 2 + )") + .SetExpectedReply("[[4600u;]]") + .AddExpectedPlanOptions("KqpOlapFilter") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg") + .MutableLimitChecker().SetExpectedResultCount(1) +#else + .AddExpectedPlanOptions("Condense") +#endif + ; + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_ResultCountL_FilterL) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + COUNT(level) + FROM `/Root/olapStore/olapTable` + WHERE level = 2 + )") + .SetExpectedReply("[[4600u;]]") + .AddExpectedPlanOptions("KqpOlapFilter") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg") + .MutableLimitChecker().SetExpectedResultCount(1) +#else + .AddExpectedPlanOptions("CombineCore") +#endif + ; + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_ResultCountT_FilterL) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + COUNT(timestamp) + FROM `/Root/olapStore/olapTable` + WHERE level = 2 + )") + .SetExpectedReply("[[4600u;]]") + .AddExpectedPlanOptions("KqpOlapFilter") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg") + .MutableLimitChecker().SetExpectedResultCount(1) +#else + .AddExpectedPlanOptions("CombineCore") + .AddExpectedPlanOptions("KqpOlapFilter") +#endif + ; + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_ResultTL_FilterL_Limit2) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + timestamp, level + FROM `/Root/olapStore/olapTable` + WHERE level = 2 + LIMIT 2 + )") + .AddExpectedPlanOptions("KqpOlapFilter") + .MutableLimitChecker().SetExpectedLimit(2); + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_ResultTL_FilterL_OrderT_Limit2) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + timestamp, level + FROM `/Root/olapStore/olapTable` + WHERE level = 2 + ORDER BY timestamp + LIMIT 2 + )") + .AddExpectedPlanOptions("KqpOlapFilter") + .MutableLimitChecker().SetExpectedLimit(2); + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_ResultT_FilterL_Limit2) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + timestamp + FROM `/Root/olapStore/olapTable` + WHERE level = 2 + LIMIT 2 + )") + .AddExpectedPlanOptions("KqpOlapFilter") + .AddExpectedPlanOptions("KqpOlapExtractMembers") + .MutableLimitChecker().SetExpectedLimit(2); + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_ResultT_FilterL_OrderT_Limit2) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + timestamp + FROM `/Root/olapStore/olapTable` + WHERE level = 2 + ORDER BY timestamp + LIMIT 2 + )") + .AddExpectedPlanOptions("KqpOlapFilter") + .AddExpectedPlanOptions("KqpOlapExtractMembers") + .MutableLimitChecker().SetExpectedLimit(2); + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_ResultL_FilterL_OrderL_Limit2) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + timestamp, level + FROM `/Root/olapStore/olapTable` + WHERE level > 1 + ORDER BY level + LIMIT 2 + )") + .AddExpectedPlanOptions("KqpOlapFilter"); + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_ResultCountExpr) { + auto g = NColumnShard::TLimits::MaxBlobSizeGuard(10000); + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + COUNT(level + 2) + FROM `/Root/olapStore/olapTable` + )") + .SetExpectedReply("[[23000u;]]") + .AddExpectedPlanOptions("Condense1"); + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Count_Null) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + COUNT(level) + FROM `/Root/tableWithNulls` + WHERE id > 5; + )") + .SetExpectedReply("[[0u]]") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg"); +#else + .AddExpectedPlanOptions("CombineCore"); +#endif + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Count_NullMix) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + COUNT(level) + FROM `/Root/tableWithNulls`; + )") + .SetExpectedReply("[[5u]]") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg"); +#else + .AddExpectedPlanOptions("CombineCore"); +#endif + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Count_GroupBy) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + id, COUNT(level) + FROM `/Root/tableWithNulls` + WHERE id BETWEEN 4 AND 5 + GROUP BY id + ORDER BY id; + )") + .SetExpectedReply("[[4;1u];[5;1u]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Count_NullGroupBy) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + id, COUNT(level) + FROM `/Root/tableWithNulls` + WHERE id BETWEEN 6 AND 7 + GROUP BY id + ORDER BY id; + )") + .SetExpectedReply("[[6;0u];[7;0u]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Count_NullMixGroupBy) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + id, COUNT(level) + FROM `/Root/tableWithNulls` + WHERE id > 4 AND id < 7 + GROUP BY id + ORDER BY id; + )") + .SetExpectedReply("[[5;1u];[6;0u]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Count_GroupByNull) { + // Wait for KIKIMR-16940 fix + return; + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + level, COUNT(id), COUNT(level), COUNT(*) + FROM `/Root/tableWithNulls` + WHERE id > 5 + GROUP BY level + ORDER BY level; + )") + .SetExpectedReply("[[#;5u;0u;5u]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Count_GroupByNullMix) { + // Wait for KIKIMR-16940 fix + return; + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + level, COUNT(id), COUNT(level), COUNT(*) + FROM `/Root/tableWithNulls` + WHERE id >= 5 + GROUP BY level + ORDER BY level; + )") + .SetExpectedReply("[[#;5u;0u;5u];[[5];1u;1u;1u]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_NoPushdownOnDisabledEmitAggApply) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + PRAGMA DisableEmitAggApply; + SELECT + COUNT(level) + FROM `/Root/olapStore/olapTable` + )") + .SetExpectedReply("[[23000u;]]") + .AddExpectedPlanOptions("Condense1"); + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(AggregationAndFilterPushdownOnDiffCols) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + COUNT(`timestamp`) + FROM `/Root/olapStore/olapTable` + WHERE level = 2 + )") + .SetExpectedReply("[[4600u;]]") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg") +#else + .AddExpectedPlanOptions("CombineCore") +#endif + .AddExpectedPlanOptions("KqpOlapFilter"); + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Avg) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + AVG(level), MIN(level) + FROM `/Root/olapStore/olapTable` + )") + .SetExpectedReply("[[[2.];[0]]]") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg"); +#else + .AddExpectedPlanOptions("CombineCore"); +#endif + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Avg_Null) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + AVG(level) + FROM `/Root/tableWithNulls` + WHERE id > 5; + )") + .SetExpectedReply("[[#]]") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg"); +#else + .AddExpectedPlanOptions("CombineCore"); +#endif + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Avg_NullMix) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + AVG(level) + FROM `/Root/tableWithNulls`; + )") + .SetExpectedReply("[[[3.]]]") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg"); +#else + .AddExpectedPlanOptions("CombineCore"); +#endif + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Avg_GroupBy) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + id, AVG(level) + FROM `/Root/tableWithNulls` + WHERE id BETWEEN 4 AND 5 + GROUP BY id + ORDER BY id; + )") + .SetExpectedReply("[[4;[4.]];[5;[5.]]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Avg_NullGroupBy) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + id, AVG(level) + FROM `/Root/tableWithNulls` + WHERE id BETWEEN 6 AND 7 + GROUP BY id + ORDER BY id; + )") + .SetExpectedReply("[[6;#];[7;#]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Avg_NullMixGroupBy) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + id, AVG(level) + FROM `/Root/tableWithNulls` + WHERE id > 4 AND id < 7 + GROUP BY id + ORDER BY id; + )") + .SetExpectedReply("[[5;[5.]];[6;#]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Avg_GroupByNull) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + level, AVG(id), AVG(level) + FROM `/Root/tableWithNulls` + WHERE id > 5 + GROUP BY level + ORDER BY level; + )") + .SetExpectedReply("[[#;8.;#]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Avg_GroupByNullMix) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + level, AVG(id), AVG(level) + FROM `/Root/tableWithNulls` + WHERE id >= 5 + GROUP BY level + ORDER BY level; + )") + .SetExpectedReply("[[#;8.;#];[[5];5.;[5.]]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Sum) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + SUM(level) + FROM `/Root/olapStore/olapTable` + )") + .SetExpectedReply("[[[46000;]]]") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg"); +#else + .AddExpectedPlanOptions("CombineCore"); +#endif + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Sum_Null) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + SUM(level) + FROM `/Root/tableWithNulls` + WHERE id > 5; + )") + .SetExpectedReply("[[#]]") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg"); +#else + .AddExpectedPlanOptions("CombineCore"); +#endif + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Sum_NullMix) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + SUM(level) + FROM `/Root/tableWithNulls`; + )") + .SetExpectedReply("[[[15]]]") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg"); +#else + .AddExpectedPlanOptions("CombineCore"); +#endif + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Sum_GroupBy) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + id, SUM(level) + FROM `/Root/tableWithNulls` + WHERE id BETWEEN 4 AND 5 + GROUP BY id + ORDER BY id; + )") + .SetExpectedReply("[[4;[4]];[5;[5]]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Sum_NullGroupBy) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + id, SUM(level) + FROM `/Root/tableWithNulls` + WHERE id BETWEEN 6 AND 7 + GROUP BY id + ORDER BY id; + )") + .SetExpectedReply("[[6;#];[7;#]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Sum_NullMixGroupBy) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + id, SUM(level) + FROM `/Root/tableWithNulls` + WHERE id > 4 AND id < 7 + GROUP BY id + ORDER BY id; + )") + .SetExpectedReply("[[5;[5]];[6;#]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Sum_GroupByNull) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + level, SUM(id), SUM(level) + FROM `/Root/tableWithNulls` + WHERE id > 5 + GROUP BY level + ORDER BY level; + )") + .SetExpectedReply("[[#;40;#]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Sum_GroupByNullMix) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + level, SUM(id), SUM(level) + FROM `/Root/tableWithNulls` + WHERE id >= 5 + GROUP BY level + ORDER BY level; + )") + .SetExpectedReply("[[#;40;#];[[5];5;[5]]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_SumL_GroupL_OrderL) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + level, SUM(level) + FROM `/Root/olapStore/olapTable` + GROUP BY level + ORDER BY level + )") + .SetExpectedReply("[[[0];[0]];[[1];[4600]];[[2];[9200]];[[3];[13800]];[[4];[18400]]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_MinL) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + MIN(level) + FROM `/Root/olapStore/olapTable` + )") + .SetExpectedReply("[[[0]]]") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg"); +#else + .AddExpectedPlanOptions("CombineCore"); +#endif + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_MaxL) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + MAX(level) + FROM `/Root/olapStore/olapTable` + )") + .SetExpectedReply("[[[4]]]") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg"); +#else + .AddExpectedPlanOptions("CombineCore"); +#endif + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_MinR_GroupL_OrderL) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + level, MIN(resource_id) + FROM `/Root/olapStore/olapTable` + GROUP BY level + ORDER BY level + )") + .SetExpectedReply("[[[0];[\"10000\"]];[[1];[\"10001\"]];[[2];[\"10002\"]];[[3];[\"10003\"]];[[4];[\"10004\"]]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_MaxR_GroupL_OrderL) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + level, MAX(resource_id) + FROM `/Root/olapStore/olapTable` + GROUP BY level + ORDER BY level + )") + .SetExpectedReply("[[[0];[\"40995\"]];[[1];[\"40996\"]];[[2];[\"40997\"]];[[3];[\"40998\"]];[[4];[\"40999\"]]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_ProjectionOrder) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + resource_id, level, count(*) as c + FROM `/Root/olapStore/olapTable` + GROUP BY resource_id, level + ORDER BY c, resource_id DESC LIMIT 3 + )") + .SetExpectedReply("[[[\"40999\"];[4];1u];[[\"40998\"];[3];1u];[[\"40997\"];[2];1u]]") + .SetExpectedReadNodeType("Aggregate-TableFullScan"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + TestAggregations({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Some) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT SOME(level) FROM `/Root/tableWithNulls` WHERE id=1 + )") + .SetExpectedReply("[[[1]]]") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg"); +#else + .AddExpectedPlanOptions("CombineCore"); +#endif + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Some_Null) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT SOME(level) FROM `/Root/tableWithNulls` WHERE id > 5 + )") + .SetExpectedReply("[[#]]") +#if SSA_RUNTIME_VERSION >= 2U + .AddExpectedPlanOptions("TKqpOlapAgg"); +#else + .AddExpectedPlanOptions("CombineCore"); +#endif + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Some_GroupBy) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + id, SOME(level) + FROM `/Root/tableWithNulls` + WHERE id BETWEEN 4 AND 5 + GROUP BY id + ORDER BY id; + )") + .SetExpectedReply("[[4;[4]];[5;[5]]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Some_NullGroupBy) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + id, SOME(level) + FROM `/Root/tableWithNulls` + WHERE id BETWEEN 6 AND 7 + GROUP BY id + ORDER BY id; + )") + .SetExpectedReply("[[6;#];[7;#]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Some_NullMixGroupBy) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + id, SOME(level) + FROM `/Root/tableWithNulls` + WHERE id > 4 AND id < 7 + GROUP BY id + ORDER BY id; + )") + .SetExpectedReply("[[5;[5]];[6;#]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Some_GroupByNullMix) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + level, SOME(id), SOME(level) + FROM `/Root/tableWithNulls` + WHERE id BETWEEN 5 AND 6 + GROUP BY level + ORDER BY level; + )") + .SetExpectedReply("[[#;6;#];[[5];5;[5]]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Aggregation_Some_GroupByNull) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + level, SOME(id), SOME(level) + FROM `/Root/tableWithNulls` + WHERE id = 6 + GROUP BY level + ORDER BY level; + )") + .SetExpectedReply("[[#;6;#]]"); + testCase.FillExpectedAggregationGroupByPlanOptions(); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(NoErrorOnLegacyPragma) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + PRAGMA Kikimr.KqpPushOlapProcess = "false"; + SELECT id, resource_id FROM `/Root/tableWithNulls` + WHERE + level = 5; + )") + .SetExpectedReply("[[5;#]]") + .AddExpectedPlanOptions("KqpOlapFilter"); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(BlocksRead) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + PRAGMA UseBlocks; + PRAGMA Kikimr.OptEnableOlapPushdown = "false"; + + SELECT + id, resource_id + FROM `/Root/tableWithNulls` + WHERE + level = 5; + )") + .SetExpectedReply("[[5;#]]"); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Blocks_NoAggPushdown) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + PRAGMA UseBlocks; + SELECT + COUNT(DISTINCT id) + FROM `/Root/tableWithNulls`; + )") + .SetExpectedReply("[[10u]]"); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Json_GetValue) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT id, JSON_VALUE(jsonval, "$.col1"), JSON_VALUE(jsondoc, "$.col1") FROM `/Root/tableWithNulls` + WHERE JSON_VALUE(jsonval, "$.col1") = "val1" AND id = 1; + )") +#if SSA_RUNTIME_VERSION >= 3U + .AddExpectedPlanOptions("KqpOlapJsonValue") +#else + .AddExpectedPlanOptions("Udf") +#endif + .SetExpectedReply(R"([[1;["val1"];#]])"); + + TestTableWithNulls({testCase}); + } + + Y_UNIT_TEST(Json_GetValue_Minus) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT id, JSON_VALUE(jsonval, "$.'col-abc'"), JSON_VALUE(jsondoc, "$.'col-abc'") FROM `/Root/tableWithNulls` + WHERE JSON_VALUE(jsonval, "$.'col-abc'") = "val-abc" AND id = 1; + )") +#if SSA_RUNTIME_VERSION >= 3U + .AddExpectedPlanOptions("KqpOlapJsonValue") +#else + .AddExpectedPlanOptions("Udf") +#endif + .SetExpectedReply(R"([[1;["val-abc"];#]])"); + + TestTableWithNulls({testCase}); + } + + Y_UNIT_TEST(Json_GetValue_ToString) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT id, JSON_VALUE(jsonval, "$.col1" RETURNING String), JSON_VALUE(jsondoc, "$.col1") FROM `/Root/tableWithNulls` + WHERE JSON_VALUE(jsonval, "$.col1" RETURNING String) = "val1" AND id = 1; + )") +#if SSA_RUNTIME_VERSION >= 3U + .AddExpectedPlanOptions("KqpOlapJsonValue") +#else + .AddExpectedPlanOptions("Udf") +#endif + .SetExpectedReply(R"([[1;["val1"];#]])"); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Json_GetValue_ToInt) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT id, JSON_VALUE(jsonval, "$.obj.obj_col2_int" RETURNING Int), JSON_VALUE(jsondoc, "$.obj.obj_col2_int" RETURNING Int) FROM `/Root/tableWithNulls` + WHERE JSON_VALUE(jsonval, "$.obj.obj_col2_int" RETURNING Int) = 16 AND id = 1; + )") +#if SSA_RUNTIME_VERSION >= 3U + .AddExpectedPlanOptions("KqpOlapJsonValue") +#else + .AddExpectedPlanOptions("Udf") +#endif + .SetExpectedReply(R"([[1;[16];#]])"); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(JsonDoc_GetValue) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT id, JSON_VALUE(jsonval, "$.col1"), JSON_VALUE(jsondoc, "$.col1") FROM `/Root/tableWithNulls` + WHERE JSON_VALUE(jsondoc, "$.col1") = "val1" AND id = 6; + )") +#if SSA_RUNTIME_VERSION >= 3U + .AddExpectedPlanOptions("KqpOlapJsonValue") +#else + .AddExpectedPlanOptions("Udf") +#endif + .SetExpectedReply(R"([[6;#;["val1"]]])"); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(JsonDoc_GetValue_ToString) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT id, JSON_VALUE(jsonval, "$.col1"), JSON_VALUE(jsondoc, "$.col1" RETURNING String) FROM `/Root/tableWithNulls` + WHERE JSON_VALUE(jsondoc, "$.col1" RETURNING String) = "val1" AND id = 6; + )") +#if SSA_RUNTIME_VERSION >= 3U + .AddExpectedPlanOptions("KqpOlapJsonValue") +#else + .AddExpectedPlanOptions("Udf") +#endif + .SetExpectedReply(R"([[6;#;["val1"]]])"); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(JsonDoc_GetValue_ToInt) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT id, JSON_VALUE(jsonval, "$.obj.obj_col2_int"), JSON_VALUE(jsondoc, "$.obj.obj_col2_int" RETURNING Int) FROM `/Root/tableWithNulls` + WHERE JSON_VALUE(jsondoc, "$.obj.obj_col2_int" RETURNING Int) = 16 AND id = 6; + )") +#if SSA_RUNTIME_VERSION >= 3U + .AddExpectedPlanOptions("KqpOlapJsonValue") +#else + .AddExpectedPlanOptions("Udf") +#endif + .SetExpectedReply(R"([[6;#;[16]]])"); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Json_Exists) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT id, JSON_EXISTS(jsonval, "$.col1"), JSON_EXISTS(jsondoc, "$.col1") FROM `/Root/tableWithNulls` + WHERE + JSON_EXISTS(jsonval, "$.col1") AND level = 1; + )") +#if SSA_RUNTIME_VERSION >= 3U + .AddExpectedPlanOptions("KqpOlapJsonExists") +#else + .AddExpectedPlanOptions("Udf") +#endif + .SetExpectedReply(R"([[1;[%true];#]])"); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(JsonDoc_Exists) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT id, JSON_EXISTS(jsonval, "$.col1"), JSON_EXISTS(jsondoc, "$.col1") FROM `/Root/tableWithNulls` + WHERE + JSON_EXISTS(jsondoc, "$.col1") AND id = 6; + )") +#if SSA_RUNTIME_VERSION >= 3U + .AddExpectedPlanOptions("KqpOlapJsonExists") +#else + .AddExpectedPlanOptions("Udf") +#endif + .SetExpectedReply(R"([[6;#;[%true]]])"); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(Json_Query) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT id, JSON_QUERY(jsonval, "$.col1" WITH UNCONDITIONAL WRAPPER), + JSON_QUERY(jsondoc, "$.col1" WITH UNCONDITIONAL WRAPPER) + FROM `/Root/tableWithNulls` + WHERE + level = 1; + )") + .AddExpectedPlanOptions("Udf") + .SetExpectedReply(R"([[1;["[\"val1\"]"];#]])"); + + TestTableWithNulls({ testCase }); + } + + Y_UNIT_TEST(BlockGenericWithDistinct) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + COUNT(DISTINCT id) + FROM `/Root/tableWithNulls` + WHERE level = 5 AND Cast(id AS String) = "5"; + )") + .AddExpectedPlanOptions("KqpBlockReadOlapTableRanges") + .AddExpectedPlanOptions("WideFromBlocks") + .SetExpectedReply("[[1u]]"); + TestTableWithNulls({ testCase }, /* generic */ true); + } + + Y_UNIT_TEST(BlockGenericSimpleAggregation) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + level, COUNT(*), SUM(id) + FROM `/Root/tableWithNulls` + WHERE level = 5 + GROUP BY level + ORDER BY level; + )") + .AddExpectedPlanOptions("KqpBlockReadOlapTableRanges") + .AddExpectedPlanOptions("WideFromBlocks") + .SetExpectedReply(R"([[[5];1u;5]])"); + + TestTableWithNulls({ testCase }, /* generic */ true); + } + + Y_UNIT_TEST(BlockGenericSelectAll) { + TAggregationTestCase testCase; + testCase.SetQuery(R"( + SELECT + id, resource_id, level + FROM `/Root/tableWithNulls` + WHERE level != 5 OR level IS NULL + ORDER BY id, resource_id, level; + )") + .AddExpectedPlanOptions("KqpBlockReadOlapTableRanges") + .AddExpectedPlanOptions("WideFromBlocks") + .SetExpectedReply(R"([[1;#;[1]];[2;#;[2]];[3;#;[3]];[4;#;[4]];[6;["6"];#];[7;["7"];#];[8;["8"];#];[9;["9"];#];[10;["10"];#]])"); + + TestTableWithNulls({ testCase }, /* generic */ true); + } +} + +} diff --git a/ydb/core/kqp/ut/olap/blobs_sharing_ut.cpp b/ydb/core/kqp/ut/olap/blobs_sharing_ut.cpp new file mode 100644 index 000000000000..caa39a4c35b5 --- /dev/null +++ b/ydb/core/kqp/ut/olap/blobs_sharing_ut.cpp @@ -0,0 +1,266 @@ +#include "helpers/typed_local.h" +#include +#include +#include +#include +#include +#include +#include +#include + +namespace NKikimr::NKqp { + +Y_UNIT_TEST_SUITE(KqpOlapBlobsSharing) { + + namespace { + class TTransferStatus { + private: + YDB_ACCESSOR(bool, Proposed, false); + YDB_ACCESSOR(bool, Confirmed, false); + YDB_ACCESSOR(bool, Finished, false); + public: + void Reset() { + Confirmed = false; + Proposed = false; + Finished = false; + } + }; + + static TMutex CSTransferStatusesMutex; + static std::shared_ptr CSTransferStatus = std::make_shared(); + } + + class TTestController: public NOlap::NDataSharing::IInitiatorController { + private: + static const inline auto Registrator = TFactory::TRegistrator("test"); + protected: + virtual void DoProposeError(const TString& sessionId, const TString& message) const override { + AFL_VERIFY(false)("session_id", sessionId)("message", message); + } + virtual void DoProposeSuccess(const TString& sessionId) const override { + CSTransferStatus->SetProposed(true); + AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("event", "sharing_proposed")("session_id", sessionId); + } + virtual void DoConfirmSuccess(const TString& sessionId) const override { + CSTransferStatus->SetConfirmed(true); + AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("event", "sharing_confirmed")("session_id", sessionId); + } + virtual void DoFinished(const TString& sessionId) const override { + CSTransferStatus->SetFinished(true); + AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("event", "sharing_finished")("session_id", sessionId); + } + virtual void DoStatus(const NOlap::NDataSharing::TStatusContainer& status) const override { + AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("event", "status")("info", status.SerializeToProto().DebugString()); + } + virtual TConclusionStatus DoDeserializeFromProto(const NKikimrColumnShardDataSharingProto::TInitiator::TController& /*proto*/) override { + return TConclusionStatus::Success(); + } + virtual void DoSerializeToProto(NKikimrColumnShardDataSharingProto::TInitiator::TController& /*proto*/) const override { + + } + + virtual TString GetClassName() const override { + return "test"; + } + }; + + class TSharingDataTestCase { + private: + const ui32 ShardsCount; + TKikimrRunner& Kikimr; + TTypedLocalHelper Helper; + NYDBTest::TControllers::TGuard Controller; + std::vector ShardIds; + std::vector PathIds; + YDB_ACCESSOR(bool, RebootTablet, false); + public: + const TTypedLocalHelper& GetHelper() const { + return Helper; + } + + void AddRecords(const ui32 recordsCount, const double kff = 0) { + Helper.FillPKOnly(kff, recordsCount); + } + + TSharingDataTestCase(const ui32 shardsCount, TKikimrRunner& kikimr) + : ShardsCount(shardsCount) + , Kikimr(kikimr) + , Helper("", Kikimr, "olapTable", "olapStore12") + , Controller(NYDBTest::TControllers::RegisterCSControllerGuard()) { + Controller->SetCompactionControl(NYDBTest::EOptimizerCompactionWeightControl::Disable); + Controller->SetExpectedShardsCount(ShardsCount); + Controller->SetPeriodicWakeupActivationPeriod(TDuration::Seconds(1)); + Controller->SetReadTimeoutClean(TDuration::Seconds(1)); + + Tests::NCommon::TLoggerInit(Kikimr).SetComponents({NKikimrServices::TX_COLUMNSHARD}, "CS").Initialize(); + + Helper.CreateTestOlapTable(ShardsCount, ShardsCount); + ShardIds = Controller->GetShardActualIds(); + AFL_VERIFY(ShardIds.size() == ShardsCount)("count", ShardIds.size())("ids", JoinSeq(",", ShardIds)); + std::set pathIdsSet; + for (auto&& i : ShardIds) { + auto pathIds = Controller->GetPathIds(i); + pathIdsSet.insert(pathIds.begin(), pathIds.end()); + } + PathIds = std::vector(pathIdsSet.begin(), pathIdsSet.end()); + AFL_VERIFY(PathIds.size() == 1)("count", PathIds.size())("ids", JoinSeq(",", PathIds)); + } + + void WaitNormalization() { + Controller->SetCompactionControl(NYDBTest::EOptimizerCompactionWeightControl::Force); + const auto start = TInstant::Now(); + while (!Controller->IsTrivialLinks() && TInstant::Now() - start < TDuration::Seconds(30)) { + Cerr << "WAIT_TRIVIAL_LINKS..." << Endl; + Sleep(TDuration::Seconds(1)); + } + AFL_VERIFY(Controller->IsTrivialLinks()); + Controller->CheckInvariants(); + } + + void Execute(const ui64 destinationIdx, const std::vector& sourceIdxs, const bool move, const NOlap::TSnapshot& snapshot, const std::set& pathIdxs) { + AFL_VERIFY(destinationIdx < ShardIds.size()); + const ui64 destination = ShardIds[destinationIdx]; + std::vector sources; + for (auto&& i : sourceIdxs) { + AFL_VERIFY(i < ShardIds.size()); + sources.emplace_back(ShardIds[i]); + } + std::set pathIds; + for (auto&& i : pathIdxs) { + AFL_VERIFY(i < PathIds.size()); + AFL_VERIFY(pathIds.emplace(PathIds[i]).second); + } + Cerr << "SHARING: " << JoinSeq(",", sources) << "->" << destination << Endl; + THashMap pathIdsRemap; + for (auto&& i : pathIds) { + pathIdsRemap.emplace(i, i); + } + THashSet sourceTablets; + for (auto&& i : sources) { + AFL_VERIFY(sourceTablets.emplace((NOlap::TTabletId)i).second); + } + const TString sessionId = TGUID::CreateTimebased().AsUuidString(); + NOlap::NDataSharing::TTransferContext transferContext((NOlap::TTabletId)destination, sourceTablets, snapshot, move); + NOlap::NDataSharing::TDestinationSession session(std::make_shared(), pathIdsRemap, sessionId, transferContext); + Kikimr.GetTestServer().GetRuntime()->Send(MakePipePeNodeCacheID(false), NActors::TActorId(), new TEvPipeCache::TEvForward( + new NOlap::NDataSharing::NEvents::TEvProposeFromInitiator(session), destination, false)); + { + const TInstant start = TInstant::Now(); + while (!CSTransferStatus->GetProposed() && TInstant::Now() - start < TDuration::Seconds(10)) { + Sleep(TDuration::Seconds(1)); + Cerr << "WAIT_PROPOSING..." << Endl; + } + AFL_VERIFY(CSTransferStatus->GetProposed()); + } + if (RebootTablet) { + Kikimr.GetTestServer().GetRuntime()->Send(MakePipePeNodeCacheID(false), NActors::TActorId(), new TEvPipeCache::TEvForward( + new TEvents::TEvPoisonPill(), destination, false)); + } + { + const TInstant start = TInstant::Now(); + while (!CSTransferStatus->GetConfirmed() && TInstant::Now() - start < TDuration::Seconds(10)) { + Kikimr.GetTestServer().GetRuntime()->Send(MakePipePeNodeCacheID(false), NActors::TActorId(), new TEvPipeCache::TEvForward( + new NOlap::NDataSharing::NEvents::TEvConfirmFromInitiator(sessionId), destination, false)); + Sleep(TDuration::Seconds(1)); + Cerr << "WAIT_CONFIRMED..." << Endl; + } + AFL_VERIFY(CSTransferStatus->GetConfirmed()); + } + if (RebootTablet) { + Kikimr.GetTestServer().GetRuntime()->Send(MakePipePeNodeCacheID(false), NActors::TActorId(), new TEvPipeCache::TEvForward( + new TEvents::TEvPoisonPill(), destination, false)); + for (auto&& i : sources) { + Kikimr.GetTestServer().GetRuntime()->Send(MakePipePeNodeCacheID(false), NActors::TActorId(), new TEvPipeCache::TEvForward( + new TEvents::TEvPoisonPill(), i, false)); + } + } + { + const TInstant start = TInstant::Now(); + while (!CSTransferStatus->GetFinished() && TInstant::Now() - start < TDuration::Seconds(10)) { + Sleep(TDuration::Seconds(1)); + Cerr << "WAIT_FINISHED..." << Endl; + } + AFL_VERIFY(CSTransferStatus->GetFinished()); + } + CSTransferStatus->Reset(); + AFL_VERIFY(!Controller->IsTrivialLinks()); + } + }; + + Y_UNIT_TEST(BlobsSharingSplit1_1) { + auto settings = TKikimrSettings().SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + TSharingDataTestCase tester(4, kikimr); + tester.AddRecords(800000); + Sleep(TDuration::Seconds(1)); + tester.Execute(0, {1}, false, NOlap::TSnapshot(TInstant::Now().MilliSeconds(), 1232123), {0}); + } + + Y_UNIT_TEST(BlobsSharingSplit1_1_clean) { + auto settings = TKikimrSettings().SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + TSharingDataTestCase tester(2, kikimr); + tester.AddRecords(80000); + CompareYson(tester.GetHelper().GetQueryResult("SELECT COUNT(*) FROM `/Root/olapStore12/olapTable`"), R"([[80000u;]])"); + Sleep(TDuration::Seconds(1)); + tester.Execute(0, {1}, false, NOlap::TSnapshot(TInstant::Now().MilliSeconds(), 1232123), {0}); + CompareYson(tester.GetHelper().GetQueryResult("SELECT COUNT(*) FROM `/Root/olapStore12/olapTable`"), R"([[119928u;]])"); + tester.AddRecords(80000, 0.8); + tester.WaitNormalization(); + CompareYson(tester.GetHelper().GetQueryResult("SELECT COUNT(*) FROM `/Root/olapStore12/olapTable`"), R"([[183928u;]])"); + } + + Y_UNIT_TEST(BlobsSharingSplit1_1_clean_with_restarts) { + auto settings = TKikimrSettings().SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + TSharingDataTestCase tester(2, kikimr); + tester.SetRebootTablet(true); + tester.AddRecords(80000); + CompareYson(tester.GetHelper().GetQueryResult("SELECT COUNT(*) FROM `/Root/olapStore12/olapTable`"), R"([[80000u;]])"); + Sleep(TDuration::Seconds(1)); + tester.Execute(0, {1}, false, NOlap::TSnapshot(TInstant::Now().MilliSeconds(), 1232123), {0}); + CompareYson(tester.GetHelper().GetQueryResult("SELECT COUNT(*) FROM `/Root/olapStore12/olapTable`"), R"([[119928u;]])"); + tester.AddRecords(80000, 0.8); + tester.WaitNormalization(); + CompareYson(tester.GetHelper().GetQueryResult("SELECT COUNT(*) FROM `/Root/olapStore12/olapTable`"), R"([[183928u;]])"); + } + + Y_UNIT_TEST(BlobsSharingSplit3_1) { + auto settings = TKikimrSettings().SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + TSharingDataTestCase tester(4, kikimr); + tester.AddRecords(800000); + Sleep(TDuration::Seconds(1)); + tester.Execute(0, {1, 2, 3}, false, NOlap::TSnapshot(TInstant::Now().MilliSeconds(), 1232123), {0}); + } + + Y_UNIT_TEST(BlobsSharingSplit1_3_1) { + auto settings = TKikimrSettings().SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + TSharingDataTestCase tester(4, kikimr); + tester.AddRecords(800000); + Sleep(TDuration::Seconds(1)); + tester.Execute(1, {0}, false, NOlap::TSnapshot(TInstant::Now().MilliSeconds(), 1232123), {0}); + tester.Execute(2, {0}, false, NOlap::TSnapshot(TInstant::Now().MilliSeconds(), 1232123), {0}); + tester.Execute(3, {0}, false, NOlap::TSnapshot(TInstant::Now().MilliSeconds(), 1232123), {0}); + tester.Execute(0, {1, 2, 3}, false, NOlap::TSnapshot(TInstant::Now().MilliSeconds(), 1232123), {0}); + } + + Y_UNIT_TEST(BlobsSharingSplit1_3_2_1_clean) { + auto settings = TKikimrSettings().SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + TSharingDataTestCase tester(4, kikimr); + tester.AddRecords(800000); + Sleep(TDuration::Seconds(1)); + tester.Execute(1, {0}, false, NOlap::TSnapshot(TInstant::Now().MilliSeconds(), 1232123), {0}); + tester.Execute(2, {0}, false, NOlap::TSnapshot(TInstant::Now().MilliSeconds(), 1232123), {0}); + tester.Execute(3, {0}, false, NOlap::TSnapshot(TInstant::Now().MilliSeconds(), 1232123), {0}); + tester.AddRecords(800000, 0.9); + Sleep(TDuration::Seconds(1)); + tester.Execute(3, {2}, false, NOlap::TSnapshot(TInstant::Now().MilliSeconds(), 1232123), {0}); + tester.Execute(0, {1, 2}, false, NOlap::TSnapshot(TInstant::Now().MilliSeconds(), 1232123), {0}); + tester.WaitNormalization(); + } +} + +} diff --git a/ydb/core/kqp/ut/olap/clickbench_ut.cpp b/ydb/core/kqp/ut/olap/clickbench_ut.cpp new file mode 100644 index 000000000000..9aaff9a75c53 --- /dev/null +++ b/ydb/core/kqp/ut/olap/clickbench_ut.cpp @@ -0,0 +1,247 @@ +#include "helpers/aggregation.h" + +#include +#include +#include +#include + +namespace NKikimr::NKqp { + +Y_UNIT_TEST_SUITE(KqpOlapClickbench) { + + class TClickHelper : public Tests::NCS::TCickBenchHelper { + private: + using TBase = Tests::NCS::TCickBenchHelper; + public: + using TBase::TBase; + + TClickHelper(TKikimrRunner& runner) + : TBase(runner.GetTestServer()) + {} + + void CreateClickBenchTable(TString tableName = "benchTable", ui32 shardsCount = 4) { + TActorId sender = Server.GetRuntime()->AllocateEdgeActor(); + + TBase::CreateTestOlapTable(sender, "", Sprintf(R"( + Name: "%s" + ColumnShardCount: %d + Schema { + %s + } + Sharding { + HashSharding { + Function: HASH_FUNCTION_CONSISTENCY_64 + Columns: "EventTime" + } + })", tableName.c_str(), shardsCount, PROTO_SCHEMA)); + } + }; + + void WriteTestDataForClickBench(TKikimrRunner& kikimr, TString testTable, ui64 pathIdBegin, ui64 tsBegin, size_t rowCount) { + UNIT_ASSERT(testTable == "/Root/benchTable"); // TODO: check schema instead + TClickHelper lHelper(kikimr.GetTestServer()); + auto batch = lHelper.TestArrowBatch(pathIdBegin, tsBegin, rowCount); + lHelper.SendDataViaActorSystem(testTable, batch); + } + + void TestClickBenchBase(const std::vector& cases, const bool genericQuery) { + auto settings = TKikimrSettings() + .SetWithSampleTables(false) + .SetForceColumnTablesCompositeMarks(true); + TKikimrRunner kikimr(settings); + + TClickHelper(kikimr).CreateClickBenchTable(); + auto tableClient = kikimr.GetTableClient(); + + + ui32 numIterations = 10; + const ui32 iterationPackSize = NSan::PlainOrUnderSanitizer(2000, 20); + for (ui64 i = 0; i < numIterations; ++i) { + WriteTestDataForClickBench(kikimr, "/Root/benchTable", 0, 1000000 + i * 1000000, iterationPackSize); + } + + if (!genericQuery) { + auto tableClient = kikimr.GetTableClient(); + for (auto&& i : cases) { + const TString queryFixed = i.GetFixedQuery(); + RunTestCaseWithClient(i, tableClient); + CheckPlanForAggregatePushdown(queryFixed, tableClient, i.GetExpectedPlanOptions(), i.GetExpectedReadNodeType()); + } + } else { + auto queryClient = kikimr.GetQueryClient(); + for (auto&& i : cases) { + const TString queryFixed = i.GetFixedQuery(); + RunTestCaseWithClient(i, queryClient); + CheckPlanForAggregatePushdown(queryFixed, queryClient, i.GetExpectedPlanOptions(), i.GetExpectedReadNodeType()); + } + } + } + + void TestClickBenchInternal(const std::vector& cases) { + TPortManager tp; + ui16 mbusport = tp.GetPort(2134); + auto settings = Tests::TServerSettings(mbusport) + .SetDomainName("Root") + .SetUseRealThreads(false) + .SetNodeCount(2); + + Tests::TServer::TPtr server = new Tests::TServer(settings); + + auto runtime = server->GetRuntime(); + auto sender = runtime->AllocateEdgeActor(); + + InitRoot(server, sender); + + TClickHelper(*server).CreateClickBenchTable(); + + // write data + + ui32 numIterations = 10; + const ui32 iterationPackSize = NSan::PlainOrUnderSanitizer(2000, 20); + for (ui64 i = 0; i < numIterations; ++i) { + TClickHelper(*server).SendDataViaActorSystem("/Root/benchTable", 0, 1000000 + i * 1000000, + iterationPackSize); + } + + TAggregationTestCase currentTest; + auto captureEvents = [&](TAutoPtr& ev) -> auto { + switch (ev->GetTypeRewrite()) { + case NKqp::TKqpComputeEvents::EvScanData: + { + auto* msg = ev->Get(); + Y_ABORT_UNLESS(currentTest.MutableLimitChecker().CheckExpectedLimitOnScanData(msg->ArrowBatch ? msg->ArrowBatch->num_rows() : 0)); + Y_ABORT_UNLESS(currentTest.MutableRecordChecker().CheckExpectedOnScanData(msg->ArrowBatch ? msg->ArrowBatch->num_columns() : 0)); + break; + } + case TEvDataShard::EvKqpScan: + { + auto* msg = ev->Get(); + Y_ABORT_UNLESS(currentTest.MutableLimitChecker().CheckExpectedLimitOnScanTask(msg->Record.GetItemsLimit())); + break; + } + } + return TTestActorRuntime::EEventAction::PROCESS; + }; + runtime->SetObserverFunc(captureEvents); + + // selects + + for (auto&& i : cases) { + const TString queryFixed = i.GetFixedQuery(); + currentTest = i; + auto streamSender = runtime->AllocateEdgeActor(); + NDataShard::NKqpHelpers::SendRequest(*runtime, streamSender, NDataShard::NKqpHelpers::MakeStreamRequest(streamSender, queryFixed, false)); + auto ev = runtime->GrabEdgeEventRethrow(streamSender, TDuration::Seconds(10)); + Y_ABORT_UNLESS(currentTest.CheckFinished()); + } + } + + void TestClickBench(const std::vector& cases, const bool genericQuery = false) { + TestClickBenchBase(cases, genericQuery); + if (!genericQuery) { + TestClickBenchInternal(cases); + } + } + + Y_UNIT_TEST(ClickBenchSmoke) { + TAggregationTestCase q7; + q7.SetQuery(R"( + SELECT + AdvEngineID, COUNT(*) as c + FROM `/Root/benchTable` + WHERE AdvEngineID != 0 + GROUP BY AdvEngineID + ORDER BY c DESC + )") + //.SetExpectedReply("[[[\"40999\"];[4];1u];[[\"40998\"];[3];1u];[[\"40997\"];[2];1u]]") + // Should be fixed in https://st.yandex-team.ru/KIKIMR-17009 + // .SetExpectedReadNodeType("TableFullScan"); + .SetExpectedReadNodeType("Aggregate-TableFullScan"); + q7.FillExpectedAggregationGroupByPlanOptions(); + + TAggregationTestCase q9; + q9.SetQuery(R"( + SELECT + RegionID, SUM(AdvEngineID), COUNT(*) AS c, avg(ResolutionWidth), COUNT(DISTINCT UserID) + FROM `/Root/benchTable` + GROUP BY RegionID + ORDER BY c DESC + LIMIT 10 + )") + //.SetExpectedReply("[[[\"40999\"];[4];1u];[[\"40998\"];[3];1u];[[\"40997\"];[2];1u]]") + // Should be fixed in https://st.yandex-team.ru/KIKIMR-17009 + // .SetExpectedReadNodeType("TableFullScan"); + .SetExpectedReadNodeType("Aggregate-TableFullScan"); + q9.FillExpectedAggregationGroupByPlanOptions(); + + TAggregationTestCase q12; + q12.SetQuery(R"( + SELECT + SearchPhrase, count(*) AS c + FROM `/Root/benchTable` + WHERE SearchPhrase != '' + GROUP BY SearchPhrase + ORDER BY c DESC + LIMIT 10; + )") + //.SetExpectedReply("[[[\"40999\"];[4];1u];[[\"40998\"];[3];1u];[[\"40997\"];[2];1u]]") + // Should be fixed in https://st.yandex-team.ru/KIKIMR-17009 + // .SetExpectedReadNodeType("TableFullScan"); + .SetExpectedReadNodeType("Aggregate-TableFullScan"); + q12.FillExpectedAggregationGroupByPlanOptions(); + + TAggregationTestCase q14; + q14.SetQuery(R"( + SELECT + SearchEngineID, SearchPhrase, count(*) AS c + FROM `/Root/benchTable` + WHERE SearchPhrase != '' + GROUP BY SearchEngineID, SearchPhrase + ORDER BY c DESC + LIMIT 10; + )") + //.SetExpectedReply("[[[\"40999\"];[4];1u];[[\"40998\"];[3];1u];[[\"40997\"];[2];1u]]") + // Should be fixed in https://st.yandex-team.ru/KIKIMR-17009 + // .SetExpectedReadNodeType("TableFullScan"); + .SetExpectedReadNodeType("Aggregate-TableFullScan"); + q14.FillExpectedAggregationGroupByPlanOptions(); + + TAggregationTestCase q22; + q22.SetQuery(R"( + SELECT + SearchPhrase, MIN(URL), MIN(Title), COUNT(*) AS c, COUNT(DISTINCT UserID) + FROM `/Root/benchTable` + WHERE Title LIKE '%Google%' AND URL NOT LIKE '%.google.%' AND SearchPhrase <> '' + GROUP BY SearchPhrase + ORDER BY c DESC + LIMIT 10; + )") + .AddExpectedPlanOptions("KqpOlapFilter") + .SetExpectedReadNodeType("Aggregate-TableFullScan"); + q22.FillExpectedAggregationGroupByPlanOptions(); + + TAggregationTestCase q39; + q39.SetQuery(R"( + SELECT TraficSourceID, SearchEngineID, AdvEngineID, Src, Dst, COUNT(*) AS PageViews + FROM `/Root/benchTable` + WHERE CounterID = 62 AND EventDate >= Date('2013-07-01') AND EventDate <= Date('2013-07-31') AND IsRefresh == 0 + GROUP BY + TraficSourceID, SearchEngineID, AdvEngineID, IF (SearchEngineID = 0 AND AdvEngineID = 0, Referer, '') AS Src, + URL AS Dst + ORDER BY PageViews DESC + LIMIT 10; + )") + .AddExpectedPlanOptions("KqpOlapFilter") + .SetExpectedReadNodeType("Aggregate-Filter-TableFullScan"); + q39.FillExpectedAggregationGroupByPlanOptions(); + + std::vector cases = {q7, q9, q12, q14, q22, q39}; + for (auto&& c : cases) { + c.SetUseLlvm(NSan::PlainOrUnderSanitizer(true, false)); + } + + TestClickBench(cases); + } +} + +} diff --git a/ydb/core/kqp/ut/olap/helpers/aggregation.cpp b/ydb/core/kqp/ut/olap/helpers/aggregation.cpp new file mode 100644 index 000000000000..caee27934f5f --- /dev/null +++ b/ydb/core/kqp/ut/olap/helpers/aggregation.cpp @@ -0,0 +1,140 @@ +#include "aggregation.h" +#include +#include +#include +#include + +namespace NKikimr::NKqp { + +void TestAggregationsBase(const std::vector& cases) { + auto settings = TKikimrSettings() + .SetWithSampleTables(false) + .SetForceColumnTablesCompositeMarks(true); + TKikimrRunner kikimr(settings); + + TLocalHelper(kikimr).CreateTestOlapTable(); + auto tableClient = kikimr.GetTableClient(); + + { + WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 11000, 3001000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 12000, 3002000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 13000, 3003000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 14000, 3004000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 20000, 2000000, 7000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); + } + + for (auto&& i : cases) { + const TString queryFixed = i.GetFixedQuery(); + { + auto it = tableClient.StreamExecuteScanQuery(queryFixed).GetValueSync(); + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + if (!i.GetExpectedReply().empty()) { + CompareYson(result, i.GetExpectedReply()); + } + } + CheckPlanForAggregatePushdown(queryFixed, tableClient, i.GetExpectedPlanOptions(), i.GetExpectedReadNodeType()); + } +} + +void TestAggregationsInternal(const std::vector& cases) { + TPortManager tp; + ui16 mbusport = tp.GetPort(2134); + auto settings = Tests::TServerSettings(mbusport) + .SetDomainName("Root") + .SetUseRealThreads(false) + .SetNodeCount(2); + + Tests::TServer::TPtr server = new Tests::TServer(settings); + + auto runtime = server->GetRuntime(); + auto sender = runtime->AllocateEdgeActor(); + + InitRoot(server, sender); + Tests::NCommon::TLoggerInit(runtime).Initialize(); + + ui32 numShards = 1; + ui32 numIterations = 10; + TLocalHelper(*server).CreateTestOlapTable("olapTable", "olapStore", numShards, numShards); + const ui32 iterationPackSize = 2000; + for (ui64 i = 0; i < numIterations; ++i) { + TLocalHelper(*server).SendDataViaActorSystem("/Root/olapStore/olapTable", 0, 1000000 + i * 1000000, iterationPackSize); + } + + TAggregationTestCase currentTest; + auto captureEvents = [&](TAutoPtr& ev) -> auto { + switch (ev->GetTypeRewrite()) { + case NKqp::TKqpComputeEvents::EvScanData: + { + auto* msg = ev->Get(); + Y_ABORT_UNLESS(currentTest.MutableLimitChecker().CheckExpectedLimitOnScanData(msg->ArrowBatch ? msg->ArrowBatch->num_rows() : 0)); + Y_ABORT_UNLESS(currentTest.MutableRecordChecker().CheckExpectedOnScanData(msg->ArrowBatch ? msg->ArrowBatch->num_columns() : 0)); + break; + } + case TEvDataShard::EvKqpScan: + { + auto* msg = ev->Get(); + Y_ABORT_UNLESS(currentTest.MutableLimitChecker().CheckExpectedLimitOnScanTask(msg->Record.GetItemsLimit())); + break; + } + } + return TTestActorRuntime::EEventAction::PROCESS; + }; + runtime->SetObserverFunc(captureEvents); + + for (auto&& i : cases) { + const TString queryFixed = i.GetFixedQuery(); + currentTest = i; + auto streamSender = runtime->AllocateEdgeActor(); + NDataShard::NKqpHelpers::SendRequest(*runtime, streamSender, NDataShard::NKqpHelpers::MakeStreamRequest(streamSender, queryFixed, false)); + auto ev = runtime->GrabEdgeEventRethrow(streamSender, TDuration::Seconds(10)); + Y_ABORT_UNLESS(currentTest.CheckFinished()); + } +} + +void WriteTestDataForTableWithNulls(TKikimrRunner& kikimr, TString testTable) { + UNIT_ASSERT(testTable == "/Root/tableWithNulls"); // TODO: check schema instead + Tests::NCS::TTableWithNullsHelper lHelper(kikimr.GetTestServer()); + auto batch = lHelper.TestArrowBatch(); + lHelper.SendDataViaActorSystem(testTable, batch); +} + +void TestTableWithNulls(const std::vector& cases, const bool genericQuery /*= false*/) { + auto settings = TKikimrSettings() + .SetWithSampleTables(false) + .SetForceColumnTablesCompositeMarks(true); + TKikimrRunner kikimr(settings); + + Tests::NCommon::TLoggerInit(kikimr).Initialize(); + TTableWithNullsHelper(kikimr).CreateTableWithNulls(); + auto tableClient = kikimr.GetTableClient(); + + { + WriteTestDataForTableWithNulls(kikimr, "/Root/tableWithNulls"); + } + + if (!genericQuery) { + auto tableClient = kikimr.GetTableClient(); + for (auto&& i : cases) { + RunTestCaseWithClient(i, tableClient); + CheckPlanForAggregatePushdown(i.GetFixedQuery(), tableClient, + i.GetExpectedPlanOptions(), i.GetExpectedReadNodeType()); + } + } else { + auto queryClient = kikimr.GetQueryClient(); + for (auto&& i : cases) { + RunTestCaseWithClient(i, queryClient); + CheckPlanForAggregatePushdown(i.GetFixedQuery(), queryClient, + i.GetExpectedPlanOptions(), i.GetExpectedReadNodeType()); + } + } +} + +void TestAggregations(const std::vector& cases) { + TestAggregationsBase(cases); + TestAggregationsInternal(cases); +} + +} \ No newline at end of file diff --git a/ydb/core/kqp/ut/olap/helpers/aggregation.h b/ydb/core/kqp/ut/olap/helpers/aggregation.h new file mode 100644 index 000000000000..e83dcb32fd87 --- /dev/null +++ b/ydb/core/kqp/ut/olap/helpers/aggregation.h @@ -0,0 +1,245 @@ +#pragma once +#include "writer.h" +#include "local.h" + +namespace NKikimr::NKqp { + +class TExpectedLimitChecker { +private: + std::optional ExpectedLimit; + std::optional ExpectedResultCount; + ui32 CheckScanData = 0; + ui32 CheckScanTask = 0; +public: + TExpectedLimitChecker& SetExpectedLimit(const ui32 value) { + ExpectedLimit = value; + ExpectedResultCount = value; + return *this; + } + TExpectedLimitChecker& SetExpectedResultCount(const ui32 value) { + ExpectedResultCount = value; + return *this; + } + bool CheckExpectedLimitOnScanData(const ui32 resultCount) { + if (!ExpectedResultCount) { + return true; + } + ++CheckScanData; + UNIT_ASSERT_LE(resultCount, *ExpectedResultCount); + return true; + } + bool CheckExpectedLimitOnScanTask(const ui32 taskLimit) { + if (!ExpectedLimit) { + return true; + } + ++CheckScanTask; + UNIT_ASSERT_EQUAL(taskLimit, *ExpectedLimit); + return true; + } + bool CheckFinish() const { + if (!ExpectedLimit) { + return true; + } + return CheckScanData && CheckScanTask; + } +}; + +class TExpectedRecordChecker { +private: + std::optional ExpectedColumnsCount; + ui32 CheckScanData = 0; +public: + TExpectedRecordChecker& SetExpectedColumnsCount(const ui32 value) { + ExpectedColumnsCount = value; + return *this; + } + bool CheckExpectedOnScanData(const ui32 columnsCount) { + if (!ExpectedColumnsCount) { + return true; + } + ++CheckScanData; + UNIT_ASSERT_EQUAL(columnsCount, *ExpectedColumnsCount); + return true; + } + bool CheckFinish() const { + if (!ExpectedColumnsCount) { + return true; + } + return CheckScanData; + } +}; + +class TAggregationTestCase { +private: + TString Query; + TString ExpectedReply; + std::vector ExpectedPlanOptions; + bool Pushdown = true; + std::string ExpectedReadNodeType; + TExpectedLimitChecker LimitChecker; + TExpectedRecordChecker RecordChecker; + bool UseLlvm = true; +public: + void FillExpectedAggregationGroupByPlanOptions() { +#if SSA_RUNTIME_VERSION >= 2U + // AddExpectedPlanOptions("TKqpOlapAgg"); + AddExpectedPlanOptions("WideCombiner"); +#else + AddExpectedPlanOptions("CombineCore"); +#endif + } + TString GetFixedQuery() const { + TStringBuilder queryFixed; + queryFixed << "--!syntax_v1" << Endl; + if (!Pushdown) { + queryFixed << "PRAGMA Kikimr.OptEnableOlapPushdown = \"false\";" << Endl; + } + if (!UseLlvm) { + queryFixed << "PRAGMA Kikimr.UseLlvm = \"false\";" << Endl; + } + queryFixed << "PRAGMA Kikimr.OptUseFinalizeByKey;" << Endl; + + queryFixed << Query << Endl; + Cerr << "REQUEST:\n" << queryFixed << Endl; + return queryFixed; + } + TAggregationTestCase() = default; + TExpectedLimitChecker& MutableLimitChecker() { + return LimitChecker; + } + TExpectedRecordChecker& MutableRecordChecker() { + return RecordChecker; + } + bool GetPushdown() const { + return Pushdown; + } + TAggregationTestCase& SetPushdown(const bool value = true) { + Pushdown = value; + return *this; + } + bool CheckFinished() const { + return LimitChecker.CheckFinish(); + } + + const TString& GetQuery() const { + return Query; + } + TAggregationTestCase& SetQuery(const TString& value) { + Query = value; + return *this; + } + TAggregationTestCase& SetUseLlvm(const bool value) { + UseLlvm = value; + return *this; + } + const TString& GetExpectedReply() const { + return ExpectedReply; + } + TAggregationTestCase& SetExpectedReply(const TString& value) { + ExpectedReply = value; + return *this; + } + + TAggregationTestCase& AddExpectedPlanOptions(const std::string& value) { + ExpectedPlanOptions.emplace_back(value); + return *this; + } + + const std::vector& GetExpectedPlanOptions() const { + return ExpectedPlanOptions; + } + + TAggregationTestCase& SetExpectedReadNodeType(const std::string& value) { + ExpectedReadNodeType = value; + return *this; + } + + const std::string& GetExpectedReadNodeType() const { + return ExpectedReadNodeType; + } +}; + +template +auto StreamExplainQuery(const TString& query, TClient& client) { + if constexpr (std::is_same_v) { + NYdb::NTable::TStreamExecScanQuerySettings scanSettings; + scanSettings.Explain(true); + return client.StreamExecuteScanQuery(query, scanSettings).GetValueSync(); + } else { + NYdb::NQuery::TExecuteQuerySettings scanSettings; + scanSettings.ExecMode(NYdb::NQuery::EExecMode::Explain); + return client.StreamExecuteQuery(query, NYdb::NQuery::TTxControl::BeginTx().CommitTx(), scanSettings).GetValueSync(); + } +} + +template +void CheckPlanForAggregatePushdown( + const TString& query, + TClient& client, + const std::vector& expectedPlanNodes, + const std::string& readNodeType) { + auto res = StreamExplainQuery(query, client); + UNIT_ASSERT_C(res.IsSuccess(), res.GetIssues().ToString()); + + auto planRes = CollectStreamResult(res); + auto ast = planRes.QueryStats->Getquery_ast(); + Cerr << "JSON Plan:" << Endl; + Cerr << planRes.PlanJson.GetOrElse("NO_PLAN") << Endl; + Cerr << "AST:" << Endl; + Cerr << ast << Endl; + for (auto planNode : expectedPlanNodes) { + UNIT_ASSERT_C(ast.find(planNode) != std::string::npos, + TStringBuilder() << planNode << " was not found. Query: " << query); + } + UNIT_ASSERT_C(ast.find("SqueezeToDict") == std::string::npos, TStringBuilder() << "SqueezeToDict denied for aggregation requests. Query: " << query); + + if (!readNodeType.empty()) { + NJson::TJsonValue planJson; + NJson::ReadJsonTree(*planRes.PlanJson, &planJson, true); + auto readNode = FindPlanNodeByKv(planJson, "Node Type", readNodeType.c_str()); + UNIT_ASSERT(readNode.IsDefined()); + + auto& operators = readNode.GetMapSafe().at("Operators").GetArraySafe(); + for (auto& op : operators) { + if (op.GetMapSafe().at("Name") == "TableFullScan") { + auto ssaProgram = op.GetMapSafe().at("SsaProgram"); + UNIT_ASSERT(ssaProgram.IsDefined()); + UNIT_ASSERT(FindPlanNodes(ssaProgram, "Projection").size()); + break; + } + } + } +} + +void TestAggregationsBase(const std::vector& cases); + +void TestAggregationsInternal(const std::vector& cases); + +void TestAggregations(const std::vector& cases); + +template +auto StreamExecuteQuery(const TAggregationTestCase& testCase, TClient& client) { + if constexpr (std::is_same_v) { + return client.StreamExecuteScanQuery(testCase.GetFixedQuery()).GetValueSync(); + } else { + return client.StreamExecuteQuery( + testCase.GetFixedQuery(), + NYdb::NQuery::TTxControl::BeginTx().CommitTx()).GetValueSync(); + } +} + +template +void RunTestCaseWithClient(const TAggregationTestCase& testCase, TClient& client) { + auto it = StreamExecuteQuery(testCase, client); + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + if (!testCase.GetExpectedReply().empty()) { + CompareYson(result, testCase.GetExpectedReply()); + } +} + +void WriteTestDataForTableWithNulls(TKikimrRunner& kikimr, TString testTable); + +void TestTableWithNulls(const std::vector& cases, const bool genericQuery = false); + +} \ No newline at end of file diff --git a/ydb/core/kqp/ut/olap/helpers/get_value.cpp b/ydb/core/kqp/ut/olap/helpers/get_value.cpp new file mode 100644 index 000000000000..208e5e40e02e --- /dev/null +++ b/ydb/core/kqp/ut/olap/helpers/get_value.cpp @@ -0,0 +1,112 @@ +#include "get_value.h" +#include + +namespace NKikimr::NKqp { + +void PrintValue(IOutputStream& out, const NYdb::TValue& v) { + NYdb::TValueParser value(v); + + while (value.GetKind() == NYdb::TTypeParser::ETypeKind::Optional) { + if (value.IsNull()) { + out << ""; + return; + } else { + value.OpenOptional(); + } + } + + if (value.IsNull()) { + out << ""; + return; + } + + switch (value.GetPrimitiveType()) { + case NYdb::EPrimitiveType::Uint32: + { + out << value.GetUint32(); + break; + } + case NYdb::EPrimitiveType::Uint64: + { + out << value.GetUint64(); + break; + } + case NYdb::EPrimitiveType::Int64: + { + out << value.GetInt64(); + break; + } + case NYdb::EPrimitiveType::Utf8: + { + out << value.GetUtf8(); + break; + } + case NYdb::EPrimitiveType::Timestamp: + { + out << value.GetTimestamp(); + break; + } + case NYdb::EPrimitiveType::Bool: + { + out << value.GetBool(); + break; + } + default: + { + UNIT_ASSERT_C(false, "PrintValue not iplemented for this type"); + } + } +} + +ui64 GetUint32(const NYdb::TValue& v) { + NYdb::TValueParser value(v); + if (value.GetKind() == NYdb::TTypeParser::ETypeKind::Optional) { + return *value.GetOptionalUint32(); + } else { + return value.GetUint32(); + } +} + +ui64 GetUint64(const NYdb::TValue& v) { + NYdb::TValueParser value(v); + if (value.GetKind() == NYdb::TTypeParser::ETypeKind::Optional) { + return *value.GetOptionalUint64(); + } else { + return value.GetUint64(); + } +} + +TString GetUtf8(const NYdb::TValue& v) { + NYdb::TValueParser value(v); + if (value.GetKind() == NYdb::TTypeParser::ETypeKind::Optional) { + return *value.GetOptionalUtf8(); + } else { + return value.GetUtf8(); + } +} + +TInstant GetTimestamp(const NYdb::TValue& v) { + NYdb::TValueParser value(v); + if (value.GetKind() == NYdb::TTypeParser::ETypeKind::Optional) { + return *value.GetOptionalTimestamp(); + } else { + return value.GetTimestamp(); + } +} + +void PrintRow(IOutputStream& out, const THashMap& fields) { + for (const auto& f : fields) { + out << f.first << ": "; + PrintValue(out, f.second); + out << " "; + } +} + +void PrintRows(IOutputStream& out, const TVector>& rows) { + for (const auto& r : rows) { + PrintRow(out, r); + out << "\n"; + } +} + +} \ No newline at end of file diff --git a/ydb/core/kqp/ut/olap/helpers/get_value.h b/ydb/core/kqp/ut/olap/helpers/get_value.h new file mode 100644 index 000000000000..7902b816caef --- /dev/null +++ b/ydb/core/kqp/ut/olap/helpers/get_value.h @@ -0,0 +1,15 @@ +#pragma once +#include + +namespace NKikimr::NKqp { + +void PrintValue(IOutputStream& out, const NYdb::TValue& v); +void PrintRow(IOutputStream& out, const THashMap& fields); +void PrintRows(IOutputStream& out, const TVector>& rows); + +ui64 GetUint32(const NYdb::TValue& v); +ui64 GetUint64(const NYdb::TValue& v); +TString GetUtf8(const NYdb::TValue& v); +TInstant GetTimestamp(const NYdb::TValue& v); + +} \ No newline at end of file diff --git a/ydb/core/kqp/ut/olap/helpers/local.cpp b/ydb/core/kqp/ut/olap/helpers/local.cpp new file mode 100644 index 000000000000..373b62027e62 --- /dev/null +++ b/ydb/core/kqp/ut/olap/helpers/local.cpp @@ -0,0 +1,22 @@ +#include "local.h" + +namespace NKikimr::NKqp { + +void TTableWithNullsHelper::CreateTableWithNulls(TString tableName /*= "tableWithNulls"*/, ui32 shardsCount /*= 4*/) { + TActorId sender = Server.GetRuntime()->AllocateEdgeActor(); + + TBase::CreateTestOlapTable(sender, "", Sprintf(R"( + Name: "%s" + ColumnShardCount: %d + Schema { + %s + } + Sharding { + HashSharding { + Function: HASH_FUNCTION_CONSISTENCY_64 + Columns: "id" + } + })", tableName.c_str(), shardsCount, PROTO_SCHEMA)); +} + +} \ No newline at end of file diff --git a/ydb/core/kqp/ut/olap/helpers/local.h b/ydb/core/kqp/ut/olap/helpers/local.h new file mode 100644 index 000000000000..dc957f98220e --- /dev/null +++ b/ydb/core/kqp/ut/olap/helpers/local.h @@ -0,0 +1,41 @@ +#pragma once +#include +#include + +namespace NKikimr::NKqp { + +class TTableWithNullsHelper: public Tests::NCS::TTableWithNullsHelper { +private: + using TBase = Tests::NCS::TTableWithNullsHelper; +public: + using TBase::TBase; + + TTableWithNullsHelper(TKikimrRunner& runner) + : TBase(runner.GetTestServer()) { + } + + void CreateTableWithNulls(TString tableName = "tableWithNulls", ui32 shardsCount = 4); +}; + +class TLocalHelper: public Tests::NCS::THelper { +private: + using TBase = Tests::NCS::THelper; +public: + TLocalHelper& SetShardingMethod(const TString& value) { + TBase::SetShardingMethod(value); + return *this; + } + + void CreateTestOlapTable(TString tableName = "olapTable", TString storeName = "olapStore", + ui32 storeShardsCount = 4, ui32 tableShardsCount = 3) { + CreateOlapTableWithStore(tableName, storeName, storeShardsCount, tableShardsCount); + } + using TBase::TBase; + + TLocalHelper(TKikimrRunner& runner) + : TBase(runner.GetTestServer()) { + + } +}; + +} \ No newline at end of file diff --git a/ydb/core/kqp/ut/olap/helpers/query_executor.cpp b/ydb/core/kqp/ut/olap/helpers/query_executor.cpp new file mode 100644 index 000000000000..11ef90591b5e --- /dev/null +++ b/ydb/core/kqp/ut/olap/helpers/query_executor.cpp @@ -0,0 +1,73 @@ +#include "query_executor.h" +#include "get_value.h" +#include +#include + +namespace NKikimr::NKqp { + +TVector> CollectRows(NYdb::NTable::TScanQueryPartIterator& it, NJson::TJsonValue* statInfo /*= nullptr*/, NJson::TJsonValue* diagnostics /*= nullptr*/) { + TVector> rows; + if (statInfo) { + *statInfo = NJson::JSON_NULL; + } + if (diagnostics) { + *diagnostics = NJson::JSON_NULL; + } + for (;;) { + auto streamPart = it.ReadNext().GetValueSync(); + if (!streamPart.IsSuccess()) { + UNIT_ASSERT_C(streamPart.EOS(), streamPart.GetIssues().ToString()); + break; + } + + UNIT_ASSERT_C(streamPart.HasResultSet() || streamPart.HasQueryStats(), + "Unexpected empty scan query response."); + + if (streamPart.HasQueryStats()) { + auto plan = streamPart.GetQueryStats().GetPlan(); + if (plan && statInfo) { + UNIT_ASSERT(NJson::ReadJsonFastTree(*plan, statInfo)); + } + } + + if (streamPart.HasDiagnostics()) { + TString diagnosticsString = streamPart.GetDiagnostics(); + if (!diagnosticsString.empty() && diagnostics) { + UNIT_ASSERT(NJson::ReadJsonFastTree(diagnosticsString, diagnostics)); + } + } + + if (streamPart.HasResultSet()) { + auto resultSet = streamPart.ExtractResultSet(); + NYdb::TResultSetParser rsParser(resultSet); + while (rsParser.TryNextRow()) { + THashMap row; + for (size_t ci = 0; ci < resultSet.ColumnsCount(); ++ci) { + row.emplace(resultSet.GetColumnsMeta()[ci].Name, rsParser.GetValue(ci)); + } + rows.emplace_back(std::move(row)); + } + } + } + return rows; +} + +TVector> ExecuteScanQuery(NYdb::NTable::TTableClient& tableClient, const TString& query, const bool verbose /*= true*/) { + if (verbose) { + Cerr << "====================================\n" + << "QUERY:\n" << query + << "\n\nRESULT:\n"; + } + + NYdb::NTable::TStreamExecScanQuerySettings scanSettings; + auto it = tableClient.StreamExecuteScanQuery(query, scanSettings).GetValueSync(); + auto rows = CollectRows(it); + if (verbose) { + PrintRows(Cerr, rows); + Cerr << "\n"; + } + + return rows; +} + +} \ No newline at end of file diff --git a/ydb/core/kqp/ut/olap/helpers/query_executor.h b/ydb/core/kqp/ut/olap/helpers/query_executor.h new file mode 100644 index 000000000000..18dad7f72f34 --- /dev/null +++ b/ydb/core/kqp/ut/olap/helpers/query_executor.h @@ -0,0 +1,12 @@ +#pragma once +#include +#include +#include +#include + +namespace NKikimr::NKqp { + +TVector> CollectRows(NYdb::NTable::TScanQueryPartIterator& it, NJson::TJsonValue* statInfo = nullptr, NJson::TJsonValue* diagnostics = nullptr); +TVector> ExecuteScanQuery(NYdb::NTable::TTableClient& tableClient, const TString& query, const bool verbose = true); + +} \ No newline at end of file diff --git a/ydb/core/kqp/ut/olap/helpers/typed_local.cpp b/ydb/core/kqp/ut/olap/helpers/typed_local.cpp new file mode 100644 index 000000000000..e592ed398d2b --- /dev/null +++ b/ydb/core/kqp/ut/olap/helpers/typed_local.cpp @@ -0,0 +1,161 @@ +#include "typed_local.h" +#include "query_executor.h" +#include "get_value.h" + +namespace NKikimr::NKqp { + +TString TTypedLocalHelper::GetTestTableSchema() const { + TString result; + if (TypeName) { + result = R"(Columns { Name: "field" Type: ")" + TypeName + "\"}"; + } + result += R"( + Columns { Name: "pk_int" Type: "Int64" NotNull: true } + Columns { Name: "ts" Type: "Timestamp" } + KeyColumnNames: "pk_int" + Engine: COLUMN_ENGINE_REPLACING_TIMESERIES + )"; + return result; +} + +void TTypedLocalHelper::ExecuteSchemeQuery(const TString& alterQuery, const NYdb::EStatus expectedStatus /*= EStatus::SUCCESS*/) const { + auto session = KikimrRunner.GetTableClient().CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), expectedStatus, alterResult.GetIssues().ToString()); +} + +TString TTypedLocalHelper::GetQueryResult(const TString& request) const { + auto db = KikimrRunner.GetQueryClient(); + auto result = db.ExecuteQuery(request, NYdb::NQuery::TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), NYdb::EStatus::SUCCESS, result.GetIssues().ToString()); + const TString output = FormatResultSetYson(result.GetResultSet(0)); + Cout << output << Endl; + return output; +} + +void TTypedLocalHelper::PrintCount() { + const TString selectQuery = "SELECT COUNT(*), MAX(pk_int), MIN(pk_int) FROM `" + TablePath + "`"; + + auto tableClient = KikimrRunner.GetTableClient(); + auto rows = ExecuteScanQuery(tableClient, selectQuery); + for (auto&& r : rows) { + for (auto&& c : r) { + Cerr << c.first << ":" << Endl << c.second.GetProto().DebugString() << Endl; + } + } +} + +NKikimr::NKqp::TTypedLocalHelper::TDistribution TTypedLocalHelper::GetDistribution(const bool verbose /*= false*/) { + const TString selectQuery = "PRAGMA Kikimr.OptUseFinalizeByKey='true';SELECT COUNT(*) as c, field FROM `" + TablePath + "` GROUP BY field ORDER BY field"; + + auto tableClient = KikimrRunner.GetTableClient(); + auto rows = ExecuteScanQuery(tableClient, selectQuery, verbose); + ui32 count = 0; + std::optional minCount; + std::optional maxCount; + std::set groups; + for (auto&& r : rows) { + for (auto&& c : r) { + if (c.first == "c") { + const ui64 v = GetUint64(c.second); + count += v; + if (!minCount || *minCount > v) { + minCount = v; + } + if (!maxCount || *maxCount < v) { + maxCount = v; + } + } else if (c.first == "field") { + Y_ABORT_UNLESS(groups.emplace(c.second.GetProto().DebugString()).second); + } + if (verbose) { + Cerr << c.first << ":" << Endl << c.second.GetProto().DebugString() << Endl; + } + } + } + Y_ABORT_UNLESS(maxCount); + Y_ABORT_UNLESS(minCount); + return TDistribution(count, *minCount, *maxCount, groups.size()); +} + +void TTypedLocalHelper::GetVolumes(ui64& rawBytes, ui64& bytes, const bool verbose /*= false*/, const std::vector columnNames /*= {}*/) { + TString selectQuery = "SELECT * FROM `" + TablePath + "/.sys/primary_index_stats` WHERE Activity = true"; + if (columnNames.size()) { + selectQuery += " AND EntityName IN ('" + JoinSeq("','", columnNames) + "')"; + } + + auto tableClient = KikimrRunner.GetTableClient(); + + std::optional rawBytesPred; + std::optional bytesPred; + while (true) { + auto rows = ExecuteScanQuery(tableClient, selectQuery); + rawBytes = 0; + bytes = 0; + for (auto&& r : rows) { + if (verbose) { + Cerr << "-------" << Endl; + } + for (auto&& c : r) { + if (c.first == "RawBytes") { + rawBytes += GetUint64(c.second); + } + if (c.first == "BlobRangeSize") { + bytes += GetUint64(c.second); + } + if (verbose) { + Cerr << c.first << ":" << Endl << c.second.GetProto().DebugString() << Endl; + } + } + } + if (rawBytesPred && *rawBytesPred == rawBytes && bytesPred && *bytesPred == bytes) { + break; + } else { + rawBytesPred = rawBytes; + bytesPred = bytes; + Cerr << "Wait changes: " << bytes << "/" << rawBytes << Endl; + Sleep(TDuration::Seconds(5)); + } + } + Cerr << bytes << "/" << rawBytes << Endl; +} + +void TTypedLocalHelper::GetCount(ui64& count) { + const TString selectQuery = "SELECT COUNT(*) as a FROM `" + TablePath + "`"; + + auto tableClient = KikimrRunner.GetTableClient(); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + for (auto&& r : rows) { + for (auto&& c : r) { + if (c.first == "a") { + count = GetUint64(c.second); + } + } + } +} + +void TTypedLocalHelper::FillPKOnly(const double pkKff /*= 0*/, const ui32 numRows /*= 800000*/) const { + std::vector builders; + builders.emplace_back(NArrow::NConstruction::TSimpleArrayConstructor>::BuildNotNullable("pk_int", numRows * pkKff)); + NArrow::NConstruction::TRecordBatchConstructor batchBuilder(builders); + std::shared_ptr batch = batchBuilder.BuildBatch(numRows); + TBase::SendDataViaActorSystem(TablePath, batch); +} + +void TTypedLocalHelper::GetStats(std::vector& stats, const bool verbose /*= false*/) { + TString selectQuery = "SELECT * FROM `" + TablePath + "/.sys/primary_index_portion_stats` WHERE Activity = true"; + auto tableClient = KikimrRunner.GetTableClient(); + auto rows = ExecuteScanQuery(tableClient, selectQuery, verbose); + for (auto&& r : rows) { + for (auto&& c : r) { + if (c.first == "Stats") { + NKikimrColumnShardStatisticsProto::TPortionStorage store; + AFL_VERIFY(google::protobuf::TextFormat::ParseFromString(GetUtf8(c.second), &store)); + stats.emplace_back(store); + } + } + } +} + +} \ No newline at end of file diff --git a/ydb/core/kqp/ut/olap/helpers/typed_local.h b/ydb/core/kqp/ut/olap/helpers/typed_local.h new file mode 100644 index 000000000000..1afef6b7a19b --- /dev/null +++ b/ydb/core/kqp/ut/olap/helpers/typed_local.h @@ -0,0 +1,90 @@ +#pragma once +#include +#include +#include +#include +#include +#include + +namespace NKikimr::NKqp { + +class TTypedLocalHelper: public Tests::NCS::THelper { +private: + using TBase = Tests::NCS::THelper; + const TString TypeName; + TKikimrRunner& KikimrRunner; + const TString TablePath; + const TString TableName; + const TString StoreName; +protected: + virtual TString GetTestTableSchema() const override; + virtual std::vector GetShardingColumns() const override { + return {"pk_int"}; + } +public: + TTypedLocalHelper(const TString& typeName, TKikimrRunner& kikimrRunner, const TString& tableName = "olapTable", const TString& storeName = "olapStore") + : TBase(kikimrRunner.GetTestServer()) + , TypeName(typeName) + , KikimrRunner(kikimrRunner) + , TablePath("/Root/" + storeName + "/" + tableName) + , TableName(tableName) + , StoreName(storeName) { + SetShardingMethod("HASH_FUNCTION_CONSISTENCY_64"); + } + + void ExecuteSchemeQuery(const TString& alterQuery, const NYdb::EStatus expectedStatus = NYdb::EStatus::SUCCESS) const; + + TString GetQueryResult(const TString& request) const; + + void PrintCount(); + + class TDistribution { + private: + YDB_READONLY(ui32, Count, 0); + YDB_READONLY(ui32, MinCount, 0); + YDB_READONLY(ui32, MaxCount, 0); + YDB_READONLY(ui32, GroupsCount, 0); + public: + TDistribution(const ui32 count, const ui32 minCount, const ui32 maxCount, const ui32 groupsCount) + : Count(count) + , MinCount(minCount) + , MaxCount(maxCount) + , GroupsCount(groupsCount) { + + } + + TString DebugString() const { + return TStringBuilder() + << "count=" << Count << ";" + << "min_count=" << MinCount << ";" + << "max_count=" << MaxCount << ";" + << "groups_count=" << GroupsCount << ";"; + } + }; + + TDistribution GetDistribution(const bool verbose = false); + + void GetVolumes(ui64& rawBytes, ui64& bytes, const bool verbose = false, const std::vector columnNames = {}); + + void GetStats(std::vector& stats, const bool verbose = false); + + void GetCount(ui64& count); + + template + void FillTable(const TFiller& fillPolicy, const ui32 pkKff = 0, const ui32 numRows = 800000) const { + std::vector builders; + builders.emplace_back(NArrow::NConstruction::TSimpleArrayConstructor>::BuildNotNullable("pk_int", numRows * pkKff)); + builders.emplace_back(std::make_shared>("field", fillPolicy)); + NArrow::NConstruction::TRecordBatchConstructor batchBuilder(builders); + std::shared_ptr batch = batchBuilder.BuildBatch(numRows); + TBase::SendDataViaActorSystem(TablePath, batch); + } + + void FillPKOnly(const double pkKff = 0, const ui32 numRows = 800000) const; + + void CreateTestOlapTable(ui32 storeShardsCount = 4, ui32 tableShardsCount = 3) { + CreateOlapTableWithStore(TableName, StoreName, storeShardsCount, tableShardsCount); + } +}; + +} \ No newline at end of file diff --git a/ydb/core/kqp/ut/olap/helpers/writer.cpp b/ydb/core/kqp/ut/olap/helpers/writer.cpp new file mode 100644 index 000000000000..e82645f5e988 --- /dev/null +++ b/ydb/core/kqp/ut/olap/helpers/writer.cpp @@ -0,0 +1,16 @@ +#include "writer.h" +#include "local.h" + +namespace NKikimr::NKqp { + +void WriteTestData(TKikimrRunner& kikimr, TString testTable, ui64 pathIdBegin, ui64 tsBegin, size_t rowCount, bool withSomeNulls /*= false*/) { + UNIT_ASSERT(testTable != "/Root/benchTable"); // TODO: check schema instead + TLocalHelper lHelper(kikimr); + if (withSomeNulls) { + lHelper.WithSomeNulls(); + } + auto batch = lHelper.TestArrowBatch(pathIdBegin, tsBegin, rowCount); + lHelper.SendDataViaActorSystem(testTable, batch); +} + +} \ No newline at end of file diff --git a/ydb/core/kqp/ut/olap/helpers/writer.h b/ydb/core/kqp/ut/olap/helpers/writer.h new file mode 100644 index 000000000000..acaf73d151d4 --- /dev/null +++ b/ydb/core/kqp/ut/olap/helpers/writer.h @@ -0,0 +1,8 @@ +#pragma once +#include + +namespace NKikimr::NKqp { + +void WriteTestData(TKikimrRunner& kikimr, TString testTable, ui64 pathIdBegin, ui64 tsBegin, size_t rowCount, bool withSomeNulls = false); + +} \ No newline at end of file diff --git a/ydb/core/kqp/ut/olap/helpers/ya.make b/ydb/core/kqp/ut/olap/helpers/ya.make new file mode 100644 index 000000000000..33fc652a32db --- /dev/null +++ b/ydb/core/kqp/ut/olap/helpers/ya.make @@ -0,0 +1,18 @@ +LIBRARY() + +SRCS( + local.cpp + query_executor.cpp + typed_local.cpp + writer.cpp + get_value.cpp + aggregation.cpp +) + +PEERDIR( + ydb/core/testlib +) + +YQL_LAST_ABI_VERSION() + +END() diff --git a/ydb/core/kqp/ut/olap/indexes_ut.cpp b/ydb/core/kqp/ut/olap/indexes_ut.cpp new file mode 100644 index 000000000000..5db56eb19848 --- /dev/null +++ b/ydb/core/kqp/ut/olap/indexes_ut.cpp @@ -0,0 +1,367 @@ +#include "helpers/local.h" +#include "helpers/writer.h" + +#include +#include +#include +#include + +#include + +namespace NKikimr::NKqp { + +Y_UNIT_TEST_SUITE(KqpOlapIndexes) { + Y_UNIT_TEST(IndexesActualization) { + auto settings = TKikimrSettings() + .SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + csController->SetPeriodicWakeupActivationPeriod(TDuration::Seconds(1)); + csController->SetLagForCompactionBeforeTierings(TDuration::Seconds(1)); + + TLocalHelper(kikimr).CreateTestOlapTable(); + auto tableClient = kikimr.GetTableClient(); + + Tests::NCommon::TLoggerInit(kikimr).SetComponents({NKikimrServices::TX_COLUMNSHARD}, "CS").SetPriority(NActors::NLog::PRI_DEBUG).Initialize(); + + std::vector uids; + std::vector resourceIds; + std::vector levels; + + { + WriteTestData(kikimr, "/Root/olapStore/olapTable", 1000000, 300000000, 10000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 1100000, 300100000, 10000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 1200000, 300200000, 10000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 1300000, 300300000, 10000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 1400000, 300400000, 10000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 2000000, 200000000, 70000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 3000000, 100000000, 110000); + + const auto filler = [&](const ui32 startRes, const ui32 startUid, const ui32 count) { + for (ui32 i = 0; i < count; ++i) { + uids.emplace_back("uid_" + ::ToString(startUid + i)); + resourceIds.emplace_back(::ToString(startRes + i)); + levels.emplace_back(i % 5); + } + }; + + filler(1000000, 300000000, 10000); + filler(1100000, 300100000, 10000); + filler(1200000, 300200000, 10000); + filler(1300000, 300300000, 10000); + filler(1400000, 300400000, 10000); + filler(2000000, 200000000, 70000); + filler(3000000, 100000000, 110000); + + } + + { + auto alterQuery = TStringBuilder() << + R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=index_uid, TYPE=BLOOM_FILTER, + FEATURES=`{"column_names" : ["uid"], "false_positive_probability" : 0.05}`); + )"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + { + auto alterQuery = TStringBuilder() << + R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=index_resource_id, TYPE=BLOOM_FILTER, + FEATURES=`{"column_names" : ["resource_id", "level"], "false_positive_probability" : 0.05}`); + )"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + + { + auto alterQuery = TStringBuilder() << + "ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_OPTIONS, SCHEME_NEED_ACTUALIZATION=`true`);"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + csController->WaitActualization(TDuration::Seconds(10)); + { + auto it = tableClient.StreamExecuteScanQuery(R"( + --!syntax_v1 + + SELECT + COUNT(*) + FROM `/Root/olapStore/olapTable` + WHERE ((resource_id = '2' AND level = 222222) OR (resource_id = '1' AND level = 111111) OR (resource_id LIKE '%11dd%')) AND uid = '222' + )").GetValueSync(); + + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + Cerr << result << Endl; + Cerr << csController->GetIndexesSkippingOnSelect().Val() << " / " << csController->GetIndexesApprovedOnSelect().Val() << Endl; + CompareYson(result, R"([[0u;]])"); + AFL_VERIFY(csController->GetIndexesSkippedNoData().Val() == 0); + AFL_VERIFY(csController->GetIndexesApprovedOnSelect().Val() < csController->GetIndexesSkippingOnSelect().Val() * 0.4) + ("approve", csController->GetIndexesApprovedOnSelect().Val())("skip", csController->GetIndexesSkippingOnSelect().Val()); + } + } + + Y_UNIT_TEST(IndexesActualizationRebuildScheme) { + auto settings = TKikimrSettings() + .SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + csController->SetPeriodicWakeupActivationPeriod(TDuration::Seconds(1)); + + TLocalHelper(kikimr).CreateTestOlapTable(); + auto tableClient = kikimr.GetTableClient(); + + std::vector uids; + std::vector resourceIds; + std::vector levels; + + { + WriteTestData(kikimr, "/Root/olapStore/olapTable", 1000000, 300000000, 10000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 1100000, 300100000, 10000); + + const auto filler = [&](const ui32 startRes, const ui32 startUid, const ui32 count) { + for (ui32 i = 0; i < count; ++i) { + uids.emplace_back("uid_" + ::ToString(startUid + i)); + resourceIds.emplace_back(::ToString(startRes + i)); + levels.emplace_back(i % 5); + } + }; + + filler(1000000, 300000000, 10000); + filler(1100000, 300100000, 10000); + + } + + for (ui32 i = 0; i < 10; ++i) { + auto alterQuery = TStringBuilder() << + "ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_OPTIONS, SCHEME_NEED_ACTUALIZATION=`true`);"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + const ui64 startCount = csController->GetActualizationRefreshSchemeCount().Val(); + AFL_VERIFY(startCount == 30); + + for (auto&& i : csController->GetShardActualIds()) { + kikimr.GetTestServer().GetRuntime()->Send(MakePipePeNodeCacheID(false), NActors::TActorId(), new TEvPipeCache::TEvForward( + new TEvents::TEvPoisonPill(), i, false)); + } + + { + auto it = tableClient.StreamExecuteScanQuery(R"( + --!syntax_v1 + SELECT + COUNT(*) + FROM `/Root/olapStore/olapTable` + )").GetValueSync(); + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + Cout << result << Endl; + CompareYson(result, R"([[20000u;]])"); + } + + AFL_VERIFY(startCount + 3 /*tables count*/ * 2 /*normalizers + main_load*/ == + (ui64)csController->GetActualizationRefreshSchemeCount().Val())("start", startCount)("count", csController->GetActualizationRefreshSchemeCount().Val()); + } + + Y_UNIT_TEST(Indexes) { + auto settings = TKikimrSettings() + .SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + + TLocalHelper(kikimr).CreateTestOlapTable(); + auto tableClient = kikimr.GetTableClient(); + +// Tests::NCommon::TLoggerInit(kikimr).Initialize(); + + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + + { + auto alterQuery = TStringBuilder() << + R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=index_uid, TYPE=BLOOM_FILTER, + FEATURES=`{"column_names" : ["uid"], "false_positive_probability" : 0.05}`); + )"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + { + auto alterQuery = TStringBuilder() << + R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=index_resource_id, TYPE=BLOOM_FILTER, + FEATURES=`{"column_names" : ["resource_id", "level"], "false_positive_probability" : 0.05}`); + )"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + + std::vector uids; + std::vector resourceIds; + std::vector levels; + + { + WriteTestData(kikimr, "/Root/olapStore/olapTable", 1000000, 300000000, 10000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 1100000, 300100000, 10000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 1200000, 300200000, 10000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 1300000, 300300000, 10000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 1400000, 300400000, 10000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 2000000, 200000000, 70000); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 3000000, 100000000, 110000); + + const auto filler = [&](const ui32 startRes, const ui32 startUid, const ui32 count) { + for (ui32 i = 0; i < count; ++i) { + uids.emplace_back("uid_" + ::ToString(startUid + i)); + resourceIds.emplace_back(::ToString(startRes + i)); + levels.emplace_back(i % 5); + } + }; + + filler(1000000, 300000000, 10000); + filler(1100000, 300100000, 10000); + filler(1200000, 300200000, 10000); + filler(1300000, 300300000, 10000); + filler(1400000, 300400000, 10000); + filler(2000000, 200000000, 70000); + filler(3000000, 100000000, 110000); + + } + + { + auto it = tableClient.StreamExecuteScanQuery(R"( + --!syntax_v1 + + SELECT + COUNT(*) + FROM `/Root/olapStore/olapTable` + )").GetValueSync(); + + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + Cout << result << Endl; + CompareYson(result, R"([[230000u;]])"); + } + + AFL_VERIFY(csController->GetIndexesSkippingOnSelect().Val() == 0); + AFL_VERIFY(csController->GetIndexesApprovedOnSelect().Val() == 0); + TInstant start = Now(); + ui32 compactionsStart = csController->GetCompactionStartedCounter().Val(); + while (Now() - start < TDuration::Seconds(10)) { + if (compactionsStart != csController->GetCompactionStartedCounter().Val()) { + compactionsStart = csController->GetCompactionStartedCounter().Val(); + start = Now(); + } + Cerr << "WAIT_COMPACTION: " << csController->GetCompactionStartedCounter().Val() << Endl; + Sleep(TDuration::Seconds(1)); + } + + { + auto it = tableClient.StreamExecuteScanQuery(R"( + --!syntax_v1 + + SELECT + COUNT(*) + FROM `/Root/olapStore/olapTable` + WHERE ((resource_id = '2' AND level = 222222) OR (resource_id = '1' AND level = 111111) OR (resource_id LIKE '%11dd%')) AND uid = '222' + )").GetValueSync(); + + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + Cout << result << Endl; + Cout << csController->GetIndexesSkippingOnSelect().Val() << " / " << csController->GetIndexesApprovedOnSelect().Val() << Endl; + CompareYson(result, R"([[0u;]])"); + AFL_VERIFY(csController->GetIndexesSkippedNoData().Val() == 0); + AFL_VERIFY(csController->GetIndexesApprovedOnSelect().Val() < csController->GetIndexesSkippingOnSelect().Val() * 0.3); + } + ui32 requestsCount = 100; + for (ui32 i = 0; i < requestsCount; ++i) { + const ui32 idx = RandomNumber(uids.size()); + const auto query = [](const TString& res, const TString& uid, const ui32 level) { + TStringBuilder sb; + sb << "SELECT" << Endl; + sb << "COUNT(*)" << Endl; + sb << "FROM `/Root/olapStore/olapTable`" << Endl; + sb << "WHERE(" << Endl; + sb << "resource_id = '" << res << "' AND" << Endl; + sb << "uid= '" << uid << "' AND" << Endl; + sb << "level= " << level << Endl; + sb << ")"; + return sb; + }; + auto it = tableClient.StreamExecuteScanQuery(query(resourceIds[idx], uids[idx], levels[idx])).GetValueSync(); + + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + TString result = StreamResultToYson(it); + Cout << csController->GetIndexesSkippingOnSelect().Val() << " / " << csController->GetIndexesApprovedOnSelect().Val() << " / " << csController->GetIndexesSkippedNoData().Val() << Endl; + CompareYson(result, R"([[1u;]])"); + } + + AFL_VERIFY(csController->GetIndexesApprovedOnSelect().Val() < 0.20 * csController->GetIndexesSkippingOnSelect().Val()); + + } + + Y_UNIT_TEST(IndexesModificationError) { + auto settings = TKikimrSettings().SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + + TLocalHelper(kikimr).CreateTestOlapTable(); + auto tableClient = kikimr.GetTableClient(); + + // Tests::NCommon::TLoggerInit(kikimr).Initialize(); + + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + + { + auto alterQuery = TStringBuilder() << + R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=index_uid, TYPE=BLOOM_FILTER, + FEATURES=`{"column_names" : ["uid"], "false_positive_probability" : 0.05}`); + )"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + + { + auto alterQuery = TStringBuilder() << + R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=index_uid, TYPE=BLOOM_FILTER, + FEATURES=`{"column_names" : ["uid", "resource_id"], "false_positive_probability" : 0.05}`); + )"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_UNEQUAL(alterResult.GetStatus(), NYdb::EStatus::SUCCESS); + } + + { + auto alterQuery = TStringBuilder() << + R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=index_uid, TYPE=BLOOM_FILTER, + FEATURES=`{"column_names" : ["uid"], "false_positive_probability" : 0.005}`); + )"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_UNEQUAL(alterResult.GetStatus(), NYdb::EStatus::SUCCESS); + } + + { + auto alterQuery = TStringBuilder() << + R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=index_uid, TYPE=BLOOM_FILTER, + FEATURES=`{"column_names" : ["uid"], "false_positive_probability" : 0.01}`); + )"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + + { + auto alterQuery = TStringBuilder() << "ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=DROP_INDEX, NAME=index_uid);"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + + } +} + +} diff --git a/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp b/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp index 6f53286948f2..d16e8edac926 100644 --- a/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp +++ b/ydb/core/kqp/ut/olap/kqp_olap_ut.cpp @@ -1,424 +1,32 @@ -#include -#include - -#include -#include +#include -#include -#include +#include "helpers/get_value.h" +#include "helpers/query_executor.h" +#include "helpers/local.h" +#include "helpers/writer.h" +#include "helpers/aggregation.h" -#include -#include -#include -#include -#include +#include #include -#include +#include +#include +#include #include -#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -namespace NKikimr { -namespace NKqp { - -using namespace NKikimr::NDataShard::NKqpHelpers; + +#include +#include + +#include + +namespace NKikimr::NKqp { using namespace NSchemeShard; using namespace NActors; using namespace NYdb; using namespace NYdb::NTable; using namespace NYdb::NScheme; -using TEvBulkUpsertRequest = NGRpcService::TGrpcRequestOperationCall; - Y_UNIT_TEST_SUITE(KqpOlap) { - void PrintValue(IOutputStream& out, const NYdb::TValue& v) { - NYdb::TValueParser value(v); - - while (value.GetKind() == NYdb::TTypeParser::ETypeKind::Optional) { - if (value.IsNull()) { - out << ""; - return; - } else { - value.OpenOptional(); - } - } - - if (value.IsNull()) { - out << ""; - return; - } - - switch (value.GetPrimitiveType()) { - case NYdb::EPrimitiveType::Uint32: - { - out << value.GetUint32(); - break; - } - case NYdb::EPrimitiveType::Uint64: - { - out << value.GetUint64(); - break; - } - case NYdb::EPrimitiveType::Int64: - { - out << value.GetInt64(); - break; - } - case NYdb::EPrimitiveType::Utf8: - { - out << value.GetUtf8(); - break; - } - case NYdb::EPrimitiveType::Timestamp: - { - out << value.GetTimestamp(); - break; - } - case NYdb::EPrimitiveType::Bool: - { - out << value.GetBool(); - break; - } - default: - { - UNIT_ASSERT_C(false, "PrintValue not iplemented for this type"); - } - } - } - - void PrintRow(IOutputStream& out, const THashMap& fields) { - for (const auto& f : fields) { - out << f.first << ": "; - PrintValue(out, f.second); - out << " "; - } - } - - void PrintRows(IOutputStream& out, const TVector>& rows) { - for (const auto& r : rows) { - PrintRow(out, r); - out << "\n"; - } - } - - TVector> CollectRows(NYdb::NTable::TScanQueryPartIterator& it, NJson::TJsonValue* statInfo = nullptr, NJson::TJsonValue* diagnostics = nullptr) { - TVector> rows; - if (statInfo) { - *statInfo = NJson::JSON_NULL; - } - if (diagnostics) { - *diagnostics = NJson::JSON_NULL; - } - for (;;) { - auto streamPart = it.ReadNext().GetValueSync(); - if (!streamPart.IsSuccess()) { - UNIT_ASSERT_C(streamPart.EOS(), streamPart.GetIssues().ToString()); - break; - } - - UNIT_ASSERT_C(streamPart.HasResultSet() || streamPart.HasQueryStats(), - "Unexpected empty scan query response."); - - if (streamPart.HasQueryStats()) { - auto plan = streamPart.GetQueryStats().GetPlan(); - if (plan && statInfo) { - UNIT_ASSERT(NJson::ReadJsonFastTree(*plan, statInfo)); - } - } - - if (streamPart.HasDiagnostics()) { - TString diagnosticsString = streamPart.GetDiagnostics(); - if (!diagnosticsString.empty() && diagnostics) { - UNIT_ASSERT(NJson::ReadJsonFastTree(diagnosticsString, diagnostics)); - } - } - - if (streamPart.HasResultSet()) { - auto resultSet = streamPart.ExtractResultSet(); - NYdb::TResultSetParser rsParser(resultSet); - while (rsParser.TryNextRow()) { - THashMap row; - for (size_t ci = 0; ci < resultSet.ColumnsCount(); ++ci) { - row.emplace(resultSet.GetColumnsMeta()[ci].Name, rsParser.GetValue(ci)); - } - rows.emplace_back(std::move(row)); - } - } - } - return rows; - } - - TVector> ExecuteScanQuery(NYdb::NTable::TTableClient& tableClient, const TString& query, const bool verbose = true) { - if (verbose) { - Cerr << "====================================\n" - << "QUERY:\n" << query - << "\n\nRESULT:\n"; - } - - TStreamExecScanQuerySettings scanSettings; - auto it = tableClient.StreamExecuteScanQuery(query, scanSettings).GetValueSync(); - auto rows = CollectRows(it); - if (verbose) { - PrintRows(Cerr, rows); - Cerr << "\n"; - } - - return rows; - } - - ui64 GetUint32(const NYdb::TValue& v) { - NYdb::TValueParser value(v); - if (value.GetKind() == NYdb::TTypeParser::ETypeKind::Optional) { - return *value.GetOptionalUint32(); - } else { - return value.GetUint32(); - } - } - - ui64 GetUint64(const NYdb::TValue& v) { - NYdb::TValueParser value(v); - if (value.GetKind() == NYdb::TTypeParser::ETypeKind::Optional) { - return *value.GetOptionalUint64(); - } else { - return value.GetUint64(); - } - } - - TString GetUtf8(const NYdb::TValue& v) { - NYdb::TValueParser value(v); - if (value.GetKind() == NYdb::TTypeParser::ETypeKind::Optional) { - return *value.GetOptionalUtf8(); - } else { - return value.GetUtf8(); - } - } - - TInstant GetTimestamp(const NYdb::TValue& v) { - NYdb::TValueParser value(v); - if (value.GetKind() == NYdb::TTypeParser::ETypeKind::Optional) { - return *value.GetOptionalTimestamp(); - } else { - return value.GetTimestamp(); - } - } - - class TTypedLocalHelper: public Tests::NCS::THelper { - private: - using TBase = Tests::NCS::THelper; - const TString TypeName; - TKikimrRunner& KikimrRunner; - const TString TablePath; - const TString TableName; - const TString StoreName; - protected: - virtual TString GetTestTableSchema() const override { - TString result; - if (TypeName) { - result = R"(Columns { Name: "field" Type: ")" + TypeName + "\"}"; - } - result += R"( - Columns { Name: "pk_int" Type: "Int64" } - KeyColumnNames: "pk_int" - Engine: COLUMN_ENGINE_REPLACING_TIMESERIES - )"; - return result; - } - virtual std::vector GetShardingColumns() const override { - return { "pk_int" }; - } - public: - TTypedLocalHelper(const TString& typeName, TKikimrRunner& kikimrRunner, const TString& tableName = "olapTable", const TString& storeName = "olapStore") - : TBase(kikimrRunner.GetTestServer()) - , TypeName(typeName) - , KikimrRunner(kikimrRunner) - , TablePath("/Root/" + storeName + "/" + tableName) - , TableName(tableName) - , StoreName(storeName) - { - SetShardingMethod("HASH_FUNCTION_CONSISTENCY_64"); - } - - void PrintCount() { - const TString selectQuery = "SELECT COUNT(*), MAX(pk_int), MIN(pk_int) FROM `" + TablePath + "`"; - - auto tableClient = KikimrRunner.GetTableClient(); - auto rows = ExecuteScanQuery(tableClient, selectQuery); - for (auto&& r : rows) { - for (auto&& c : r) { - Cerr << c.first << ":" << Endl << c.second.GetProto().DebugString() << Endl; - } - } - } - - class TDistribution { - private: - YDB_READONLY(ui32, Count, 0); - YDB_READONLY(ui32, MinCount, 0); - YDB_READONLY(ui32, MaxCount, 0); - YDB_READONLY(ui32, GroupsCount, 0); - public: - TDistribution(const ui32 count, const ui32 minCount, const ui32 maxCount, const ui32 groupsCount) - : Count(count) - , MinCount(minCount) - , MaxCount(maxCount) - , GroupsCount(groupsCount) - { - - } - - TString DebugString() const { - return TStringBuilder() - << "count=" << Count << ";" - << "min_count=" << MinCount << ";" - << "max_count=" << MaxCount << ";" - << "groups_count=" << GroupsCount << ";"; - } - }; - - TDistribution GetDistribution(const bool verbose = false) { - const TString selectQuery = "PRAGMA Kikimr.OptUseFinalizeByKey='true';SELECT COUNT(*) as c, field FROM `" + TablePath + "` GROUP BY field ORDER BY field"; - - auto tableClient = KikimrRunner.GetTableClient(); - auto rows = ExecuteScanQuery(tableClient, selectQuery, verbose); - ui32 count = 0; - std::optional minCount; - std::optional maxCount; - std::set groups; - for (auto&& r : rows) { - for (auto&& c : r) { - if (c.first == "c") { - const ui64 v = GetUint64(c.second); - count += v; - if (!minCount || *minCount > v) { - minCount = v; - } - if (!maxCount || *maxCount < v) { - maxCount = v; - } - } else if (c.first == "field") { - Y_ABORT_UNLESS(groups.emplace(c.second.GetProto().DebugString()).second); - } - if (verbose) { - Cerr << c.first << ":" << Endl << c.second.GetProto().DebugString() << Endl; - } - } - } - Y_ABORT_UNLESS(maxCount); - Y_ABORT_UNLESS(minCount); - return TDistribution(count, *minCount, *maxCount, groups.size()); - } - - void GetVolumes(ui64& rawBytes, ui64& bytes, const bool verbose = false) { - const TString selectQuery = "SELECT * FROM `" + TablePath + "/.sys/primary_index_stats`"; - - auto tableClient = KikimrRunner.GetTableClient(); - - std::optional rawBytesPred; - std::optional bytesPred; - while (true) { - auto rows = ExecuteScanQuery(tableClient, selectQuery); - rawBytes = 0; - bytes = 0; - for (auto&& r : rows) { - if (verbose) { - Cerr << "-------" << Endl; - } - for (auto&& c : r) { - if (c.first == "RawBytes") { - rawBytes += GetUint64(c.second); - } - if (c.first == "BlobRangeSize") { - bytes += GetUint64(c.second); - } - if (verbose) { - Cerr << c.first << ":" << Endl << c.second.GetProto().DebugString() << Endl; - } - } - } - if (rawBytesPred && *rawBytesPred == rawBytes && bytesPred && *bytesPred == bytes) { - break; - } else { - rawBytesPred = rawBytes; - bytesPred = bytes; - Cerr << "Wait changes: " << bytes << "/" << rawBytes << Endl; - Sleep(TDuration::Seconds(5)); - } - } - Cerr << bytes << "/" << rawBytes << Endl; - } - - void GetCount(ui64& count) { - const TString selectQuery = "SELECT COUNT(*) as a FROM `" + TablePath + "`"; - - auto tableClient = KikimrRunner.GetTableClient(); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - for (auto&& r : rows) { - for (auto&& c : r) { - if (c.first == "a") { - count = GetUint64(c.second); - } - } - } - } - - template - void FillTable(const TFiller& fillPolicy, const ui32 pkKff = 0, const ui32 numRows = 800000) const { - std::vector builders; - builders.emplace_back(std::make_shared>>("pk_int", numRows * pkKff)); - builders.emplace_back(std::make_shared>("field", fillPolicy)); - NArrow::NConstruction::TRecordBatchConstructor batchBuilder(builders); - std::shared_ptr batch = batchBuilder.BuildBatch(numRows); - TBase::SendDataViaActorSystem(TablePath, batch); - } - - void FillPKOnly(const ui32 pkKff = 0, const ui32 numRows = 800000) const { - std::vector builders; - builders.emplace_back(std::make_shared>>("pk_int", numRows * pkKff)); - NArrow::NConstruction::TRecordBatchConstructor batchBuilder(builders); - std::shared_ptr batch = batchBuilder.BuildBatch(numRows); - TBase::SendDataViaActorSystem(TablePath, batch); - } - - void CreateTestOlapTable(ui32 storeShardsCount = 4, ui32 tableShardsCount = 3) { - CreateOlapTableWithStore(TableName, StoreName, storeShardsCount, tableShardsCount); - } - }; - - class TLocalHelper: public Tests::NCS::THelper { - private: - using TBase = Tests::NCS::THelper; - public: - TLocalHelper& SetShardingMethod(const TString& value) { - TBase::SetShardingMethod(value); - return *this; - } - - void CreateTestOlapTable(TString tableName = "olapTable", TString storeName = "olapStore", - ui32 storeShardsCount = 4, ui32 tableShardsCount = 3) { - CreateOlapTableWithStore(tableName, storeName, storeShardsCount, tableShardsCount); - } - using TBase::TBase; - - TLocalHelper(TKikimrRunner& runner) - : TBase(runner.GetTestServer()) { - - } - }; class TExtLocalHelper: public TLocalHelper { private: @@ -475,86 +83,6 @@ Y_UNIT_TEST_SUITE(KqpOlap) { } }; - class TClickHelper : public Tests::NCS::TCickBenchHelper { - private: - using TBase = Tests::NCS::TCickBenchHelper; - public: - using TBase::TBase; - - TClickHelper(TKikimrRunner& runner) - : TBase(runner.GetTestServer()) - {} - - void CreateClickBenchTable(TString tableName = "benchTable", ui32 shardsCount = 4) { - TActorId sender = Server.GetRuntime()->AllocateEdgeActor(); - - TBase::CreateTestOlapTable(sender, "", Sprintf(R"( - Name: "%s" - ColumnShardCount: %d - Schema { - %s - } - Sharding { - HashSharding { - Function: HASH_FUNCTION_CONSISTENCY_64 - Columns: "EventTime" - } - })", tableName.c_str(), shardsCount, PROTO_SCHEMA)); - } - }; - - class TTableWithNullsHelper : public Tests::NCS::TTableWithNullsHelper { - private: - using TBase = Tests::NCS::TTableWithNullsHelper; - public: - using TBase::TBase; - - TTableWithNullsHelper(TKikimrRunner& runner) - : TBase(runner.GetTestServer()) - {} - - void CreateTableWithNulls(TString tableName = "tableWithNulls", ui32 shardsCount = 4) { - TActorId sender = Server.GetRuntime()->AllocateEdgeActor(); - - TBase::CreateTestOlapTable(sender, "", Sprintf(R"( - Name: "%s" - ColumnShardCount: %d - Schema { - %s - } - Sharding { - HashSharding { - Function: HASH_FUNCTION_CONSISTENCY_64 - Columns: "id" - } - })", tableName.c_str(), shardsCount, PROTO_SCHEMA)); - } - }; - - void WriteTestData(TKikimrRunner& kikimr, TString testTable, ui64 pathIdBegin, ui64 tsBegin, size_t rowCount, bool withSomeNulls = false) { - UNIT_ASSERT(testTable != "/Root/benchTable"); // TODO: check schema instead - TLocalHelper lHelper(kikimr); - if (withSomeNulls) { - lHelper.WithSomeNulls(); - } - auto batch = lHelper.TestArrowBatch(pathIdBegin, tsBegin, rowCount); - lHelper.SendDataViaActorSystem(testTable, batch); - } - - void WriteTestDataForClickBench(TKikimrRunner& kikimr, TString testTable, ui64 pathIdBegin, ui64 tsBegin, size_t rowCount) { - UNIT_ASSERT(testTable == "/Root/benchTable"); // TODO: check schema instead - TClickHelper lHelper(kikimr.GetTestServer()); - auto batch = lHelper.TestArrowBatch(pathIdBegin, tsBegin, rowCount); - lHelper.SendDataViaActorSystem(testTable, batch); - } - - void WriteTestDataForTableWithNulls(TKikimrRunner& kikimr, TString testTable) { - UNIT_ASSERT(testTable == "/Root/tableWithNulls"); // TODO: check schema instead - TTableWithNullsHelper lHelper(kikimr.GetTestServer()); - auto batch = lHelper.TestArrowBatch(); - lHelper.SendDataViaActorSystem(testTable, batch); - } - void CreateTableOfAllTypes(TKikimrRunner& kikimr) { auto& legacyClient = kikimr.GetTestClient(); @@ -690,59 +218,6 @@ Y_UNIT_TEST_SUITE(KqpOlap) { }; } - template - auto StreamExplainQuery(const TString& query, TClient& client) { - if constexpr (std::is_same_v) { - TStreamExecScanQuerySettings scanSettings; - scanSettings.Explain(true); - return client.StreamExecuteScanQuery(query, scanSettings).GetValueSync(); - } else { - NYdb::NQuery::TExecuteQuerySettings scanSettings; - scanSettings.ExecMode(NYdb::NQuery::EExecMode::Explain); - return client.StreamExecuteQuery(query, NYdb::NQuery::TTxControl::BeginTx().CommitTx(), scanSettings).GetValueSync(); - } - } - - template - void CheckPlanForAggregatePushdown( - const TString& query, - TClient& client, - const std::vector& expectedPlanNodes, - const std::string& readNodeType) - { - auto res = StreamExplainQuery(query, client); - UNIT_ASSERT_C(res.IsSuccess(), res.GetIssues().ToString()); - - auto planRes = CollectStreamResult(res); - auto ast = planRes.QueryStats->Getquery_ast(); - Cerr << "JSON Plan:" << Endl; - Cerr << planRes.PlanJson.GetOrElse("NO_PLAN") << Endl; - Cerr << "AST:" << Endl; - Cerr << ast << Endl; - for (auto planNode : expectedPlanNodes) { - UNIT_ASSERT_C(ast.find(planNode) != std::string::npos, - TStringBuilder() << planNode << " was not found. Query: " << query); - } - UNIT_ASSERT_C(ast.find("SqueezeToDict") == std::string::npos, TStringBuilder() << "SqueezeToDict denied for aggregation requests. Query: " << query); - - if (!readNodeType.empty()) { - NJson::TJsonValue planJson; - NJson::ReadJsonTree(*planRes.PlanJson, &planJson, true); - auto readNode = FindPlanNodeByKv(planJson, "Node Type", readNodeType.c_str()); - UNIT_ASSERT(readNode.IsDefined()); - - auto& operators = readNode.GetMapSafe().at("Operators").GetArraySafe(); - for (auto& op : operators) { - if (op.GetMapSafe().at("Name") == "TableFullScan") { - auto ssaProgram = op.GetMapSafe().at("SsaProgram"); - UNIT_ASSERT(ssaProgram.IsDefined()); - UNIT_ASSERT(FindPlanNodes(ssaProgram, "Projection").size()); - break; - } - } - } - } - Y_UNIT_TEST(SimpleQueryOlap) { auto settings = TKikimrSettings() .SetWithSampleTables(false); @@ -1171,308 +646,48 @@ Y_UNIT_TEST_SUITE(KqpOlap) { CompareYson(StreamResultToYson(it), "[]"); } - Y_UNIT_TEST(Aggregation) { - auto settings = TKikimrSettings() - .SetWithSampleTables(false); - TKikimrRunner kikimr(settings); - - TLocalHelper(kikimr).CreateTestOlapTable(); + Y_UNIT_TEST(PushdownFilter) { + static bool enableLog = false; - auto tableClient = kikimr.GetTableClient(); + auto doTest = [](std::optional viaPragma, bool pushdownPresent) { + auto settings = TKikimrSettings() + .SetWithSampleTables(false); - { - auto it = tableClient.StreamExecuteScanQuery(R"( - --!syntax_v1 + if (enableLog) { + Cerr << "Run test:" << Endl; + Cerr << "viaPragma is " << (viaPragma.has_value() ? "" : "not ") << "present."; + if (viaPragma.has_value()) { + Cerr << " Value: " << viaPragma.value(); + } + Cerr << Endl; + Cerr << "Expected result: " << pushdownPresent << Endl; + } - SELECT - COUNT(*) - FROM `/Root/olapStore/olapTable` - )").GetValueSync(); + TKikimrRunner kikimr(settings); + kikimr.GetTestServer().GetRuntime()->SetLogPriority(NKikimrServices::TX_COLUMNSHARD, NActors::NLog::PRI_DEBUG); - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - TString result = StreamResultToYson(it); - Cout << result << Endl; - CompareYson(result, R"([[0u;]])"); - } + auto client = kikimr.GetTableClient(); - { - WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 11000, 3001000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 12000, 3002000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 13000, 3003000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 14000, 3004000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 20000, 2000000, 7000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); - } + TLocalHelper(kikimr).CreateTestOlapTable(); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 0, 1000000, 10); - { - auto it = tableClient.StreamExecuteScanQuery(R"( - --!syntax_v1 + TStreamExecScanQuerySettings scanSettings; + scanSettings.Explain(true); - SELECT - COUNT(*), MAX(`resource_id`), MAX(`timestamp`), MIN(LENGTH(`message`)) - FROM `/Root/olapStore/olapTable` - )").GetValueSync(); + { + TString query = TString(R"( + --!syntax_v1 + SELECT * FROM `/Root/olapStore/olapTable` WHERE resource_id = "5"u; + )"); - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - TString result = StreamResultToYson(it); - Cout << result << Endl; - CompareYson(result, R"([[23000u;["40999"];[3004999u];[1036u]]])"); - } + if (viaPragma.has_value() && !viaPragma.value()) { + TString pragma = TString(R"( + PRAGMA Kikimr.OptEnableOlapPushdown = "false"; + )"); + query = pragma + query; + } - { - auto it = tableClient.StreamExecuteScanQuery(R"( - --!syntax_v1 - - SELECT - COUNT(*) - FROM `/Root/olapStore/olapTable` - )").GetValueSync(); - - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - TString result = StreamResultToYson(it); - Cout << result << Endl; - CompareYson(result, R"([[23000u;]])"); - } - } - - Y_UNIT_TEST(Indexes) { - auto settings = TKikimrSettings() - .SetWithSampleTables(false); - TKikimrRunner kikimr(settings); - - TLocalHelper(kikimr).CreateTestOlapTable(); - auto tableClient = kikimr.GetTableClient(); - -// Tests::NCommon::TLoggerInit(kikimr).Initialize(); - - auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); - - { - auto alterQuery = TStringBuilder() << - R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=index_uid, TYPE=BLOOM_FILTER, - FEATURES=`{"column_names" : ["uid"], "false_positive_probability" : 0.05}`); - )"; - auto session = tableClient.CreateSession().GetValueSync().GetSession(); - auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); - UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), EStatus::SUCCESS, alterResult.GetIssues().ToString()); - } - { - auto alterQuery = TStringBuilder() << - R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=index_resource_id, TYPE=BLOOM_FILTER, - FEATURES=`{"column_names" : ["resource_id", "level"], "false_positive_probability" : 0.05}`); - )"; - auto session = tableClient.CreateSession().GetValueSync().GetSession(); - auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); - UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), EStatus::SUCCESS, alterResult.GetIssues().ToString()); - } - - std::vector uids; - std::vector resourceIds; - std::vector levels; - - { - WriteTestData(kikimr, "/Root/olapStore/olapTable", 1000000, 300000000, 10000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 1100000, 300100000, 10000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 1200000, 300200000, 10000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 1300000, 300300000, 10000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 1400000, 300400000, 10000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 2000000, 200000000, 70000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 3000000, 100000000, 110000); - - const auto filler = [&](const ui32 startRes, const ui32 startUid, const ui32 count) { - for (ui32 i = 0; i < count; ++i) { - uids.emplace_back("uid_" + ::ToString(startUid + i)); - resourceIds.emplace_back(::ToString(startRes + i)); - levels.emplace_back(i % 5); - } - }; - - filler(1000000, 300000000, 10000); - filler(1100000, 300100000, 10000); - filler(1200000, 300200000, 10000); - filler(1300000, 300300000, 10000); - filler(1400000, 300400000, 10000); - filler(2000000, 200000000, 70000); - filler(3000000, 100000000, 110000); - - } - - { - auto it = tableClient.StreamExecuteScanQuery(R"( - --!syntax_v1 - - SELECT - COUNT(*) - FROM `/Root/olapStore/olapTable` - )").GetValueSync(); - - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - TString result = StreamResultToYson(it); - Cout << result << Endl; - CompareYson(result, R"([[230000u;]])"); - } - - AFL_VERIFY(csController->GetIndexesSkippingOnSelect().Val() == 0); - AFL_VERIFY(csController->GetIndexesApprovedOnSelect().Val() == 0); - TInstant start = Now(); - ui32 compactionsStart = csController->GetCompactions().Val(); - while (Now() - start < TDuration::Seconds(10)) { - if (compactionsStart != csController->GetCompactions().Val()) { - compactionsStart = csController->GetCompactions().Val(); - start = Now(); - } - Cerr << "WAIT_COMPACTION: " << csController->GetCompactions().Val() << Endl; - Sleep(TDuration::Seconds(1)); - } - - { - auto it = tableClient.StreamExecuteScanQuery(R"( - --!syntax_v1 - - SELECT - COUNT(*) - FROM `/Root/olapStore/olapTable` - WHERE ((resource_id = '2' AND level = 222222) OR (resource_id = '1' AND level = 111111) OR (resource_id LIKE '%11dd%')) AND uid = '222' - )").GetValueSync(); - - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - TString result = StreamResultToYson(it); - Cout << result << Endl; - Cout << csController->GetIndexesSkippingOnSelect().Val() << " / " << csController->GetIndexesApprovedOnSelect().Val() << Endl; - CompareYson(result, R"([[0u;]])"); - AFL_VERIFY(csController->GetIndexesSkippedNoData().Val() == 0); - AFL_VERIFY(csController->GetIndexesApprovedOnSelect().Val() < csController->GetIndexesSkippingOnSelect().Val() * 0.3); - } - ui32 requestsCount = 100; - for (ui32 i = 0; i < requestsCount; ++i) { - const ui32 idx = RandomNumber(uids.size()); - const auto query = [](const TString& res, const TString& uid, const ui32 level) { - TStringBuilder sb; - sb << "SELECT" << Endl; - sb << "COUNT(*)" << Endl; - sb << "FROM `/Root/olapStore/olapTable`" << Endl; - sb << "WHERE(" << Endl; - sb << "resource_id = '" << res << "' AND" << Endl; - sb << "uid= '" << uid << "' AND" << Endl; - sb << "level= " << level << Endl; - sb << ")"; - return sb; - }; - auto it = tableClient.StreamExecuteScanQuery(query(resourceIds[idx], uids[idx], levels[idx])).GetValueSync(); - - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - TString result = StreamResultToYson(it); - Cout << csController->GetIndexesSkippingOnSelect().Val() << " / " << csController->GetIndexesApprovedOnSelect().Val() << " / " << csController->GetIndexesSkippedNoData().Val() << Endl; - CompareYson(result, R"([[1u;]])"); - } - - AFL_VERIFY(csController->GetIndexesApprovedOnSelect().Val() < 0.15 * csController->GetIndexesSkippingOnSelect().Val()); - - } - - Y_UNIT_TEST(IndexesModificationError) { - auto settings = TKikimrSettings().SetWithSampleTables(false); - TKikimrRunner kikimr(settings); - - TLocalHelper(kikimr).CreateTestOlapTable(); - auto tableClient = kikimr.GetTableClient(); - - // Tests::NCommon::TLoggerInit(kikimr).Initialize(); - - auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); - - { - auto alterQuery = TStringBuilder() << - R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=index_uid, TYPE=BLOOM_FILTER, - FEATURES=`{"column_names" : ["uid"], "false_positive_probability" : 0.05}`); - )"; - auto session = tableClient.CreateSession().GetValueSync().GetSession(); - auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); - UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), EStatus::SUCCESS, alterResult.GetIssues().ToString()); - } - - { - auto alterQuery = TStringBuilder() << - R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=index_uid, TYPE=BLOOM_FILTER, - FEATURES=`{"column_names" : ["uid", "resource_id"], "false_positive_probability" : 0.05}`); - )"; - auto session = tableClient.CreateSession().GetValueSync().GetSession(); - auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); - UNIT_ASSERT_VALUES_UNEQUAL(alterResult.GetStatus(), EStatus::SUCCESS); - } - - { - auto alterQuery = TStringBuilder() << - R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=index_uid, TYPE=BLOOM_FILTER, - FEATURES=`{"column_names" : ["uid"], "false_positive_probability" : 0.005}`); - )"; - auto session = tableClient.CreateSession().GetValueSync().GetSession(); - auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); - UNIT_ASSERT_VALUES_UNEQUAL(alterResult.GetStatus(), EStatus::SUCCESS); - } - - { - auto alterQuery = TStringBuilder() << - R"(ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_INDEX, NAME=index_uid, TYPE=BLOOM_FILTER, - FEATURES=`{"column_names" : ["uid"], "false_positive_probability" : 0.01}`); - )"; - auto session = tableClient.CreateSession().GetValueSync().GetSession(); - auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); - UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), EStatus::SUCCESS, alterResult.GetIssues().ToString()); - } - - { - auto alterQuery = TStringBuilder() << "ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=DROP_INDEX, NAME=index_uid);"; - auto session = tableClient.CreateSession().GetValueSync().GetSession(); - auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); - UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), EStatus::SUCCESS, alterResult.GetIssues().ToString()); - } - - } - - Y_UNIT_TEST(PushdownFilter) { - static bool enableLog = false; - - auto doTest = [](std::optional viaPragma, bool pushdownPresent) { - auto settings = TKikimrSettings() - .SetWithSampleTables(false); - - if (enableLog) { - Cerr << "Run test:" << Endl; - Cerr << "viaPragma is " << (viaPragma.has_value() ? "" : "not ") << "present."; - if (viaPragma.has_value()) { - Cerr << " Value: " << viaPragma.value(); - } - Cerr << Endl; - Cerr << "Expected result: " << pushdownPresent << Endl; - } - - TKikimrRunner kikimr(settings); - kikimr.GetTestServer().GetRuntime()->SetLogPriority(NKikimrServices::TX_COLUMNSHARD, NActors::NLog::PRI_DEBUG); - - auto client = kikimr.GetTableClient(); - - TLocalHelper(kikimr).CreateTestOlapTable(); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 0, 1000000, 10); - - TStreamExecScanQuerySettings scanSettings; - scanSettings.Explain(true); - - { - TString query = TString(R"( - --!syntax_v1 - SELECT * FROM `/Root/olapStore/olapTable` WHERE resource_id = "5"u; - )"); - - if (viaPragma.has_value() && !viaPragma.value()) { - TString pragma = TString(R"( - PRAGMA Kikimr.OptEnableOlapPushdown = "false"; - )"); - query = pragma + query; - } - - auto it = client.StreamExecuteScanQuery(query).GetValueSync(); + auto it = client.StreamExecuteScanQuery(query).GetValueSync(); UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); TString result = StreamResultToYson(it); @@ -1482,7 +697,7 @@ Y_UNIT_TEST_SUITE(KqpOlap) { ["some prefix xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"]; ["5"]; 1000005u; - ["uid_1000005"] + "uid_1000005" ]])"); } }; @@ -1587,7 +802,7 @@ Y_UNIT_TEST_SUITE(KqpOlap) { ui32 i = 0; const ui32 rowsPack = 20; const TInstant start = Now(); - while (!csController->HasCompactions() && Now() - start < TDuration::Seconds(100)) { + while (!csController->GetCompactionFinishedCounter().Val() && Now() - start < TDuration::Seconds(100)) { WriteTestData(kikimr, "/Root/olapStore/olapTable", 0, 1000000 + i * rowsPack, rowsPack); ++i; rowsCount += rowsPack; @@ -1709,7 +924,11 @@ Y_UNIT_TEST_SUITE(KqpOlap) { scanSettings.Explain(true); TLocalHelper(kikimr).CreateTestOlapTable(); +#if SSA_RUNTIME_VERSION >= 4U WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 5, true); +#else + WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 5, false); +#endif Tests::NCommon::TLoggerInit(kikimr).Initialize(); auto tableClient = kikimr.GetTableClient(); @@ -1720,6 +939,7 @@ Y_UNIT_TEST_SUITE(KqpOlap) { R"(`resource_id` != `uid`)", R"(`resource_id` = "10001")", R"(`resource_id` != "10001")", + R"("XXX" == "YYY" OR `resource_id` != "10001")", R"(`level` = 1)", R"(`level` = Int8("1"))", R"(`level` = Int16("1"))", @@ -2059,1753 +1279,50 @@ Y_UNIT_TEST_SUITE(KqpOlap) { WriteTestDataForTableWithNulls(kikimr, "/Root/tableWithNulls"); Tests::NCommon::TLoggerInit(kikimr).Initialize(); - auto tableClient = kikimr.GetTableClient(); - auto query = R"( - PRAGMA DisableAnsiLike; - SELECT id, resource_id FROM `/Root/tableWithNulls` WHERE resource_id LIKE "%5%" - )"; - auto it = tableClient.StreamExecuteScanQuery(query, scanSettings).GetValueSync(); - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - - auto result = CollectStreamResult(it); - auto ast = result.QueryStats->Getquery_ast(); - UNIT_ASSERT_C(ast.find("KqpOlapFilter") == std::string::npos, - TStringBuilder() << "Predicate pushed down. Query: " << query); - } - - Y_UNIT_TEST(PredicatePushdown_MixStrictAndNotStrict) { - auto settings = TKikimrSettings() - .SetWithSampleTables(false); - TKikimrRunner kikimr(settings); - - TStreamExecScanQuerySettings scanSettings; - scanSettings.Explain(true); - - TLocalHelper(kikimr).CreateTestOlapTable(); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 5); - Tests::NCommon::TLoggerInit(kikimr).Initialize(); - - auto tableClient = kikimr.GetTableClient(); - auto query = R"( - PRAGMA Kikimr.OptEnablePredicateExtract = "false"; - SELECT `timestamp` FROM `/Root/olapStore/olapTable` WHERE - `resource_id` = "10001" AND Unwrap(`level`/1) = `level` AND `level` > 1; - )"; - - auto it = tableClient.StreamExecuteScanQuery(query, scanSettings).GetValueSync(); - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - - auto result = CollectStreamResult(it); - auto ast = result.QueryStats->Getquery_ast(); - UNIT_ASSERT_C(ast.find(R"(('eq '"resource_id")") != std::string::npos, - TStringBuilder() << "Predicate not pushed down. Query: " << query); - UNIT_ASSERT_C(ast.find(R"(('gt '"level")") == std::string::npos, - TStringBuilder() << "Predicate pushed down. Query: " << query); - UNIT_ASSERT_C(ast.find("NarrowMap") != std::string::npos, - TStringBuilder() << "NarrowMap was removed. Query: " << query); - } - - Y_UNIT_TEST(AggregationCountPushdown) { - auto settings = TKikimrSettings() - .SetWithSampleTables(false) - .SetForceColumnTablesCompositeMarks(true); - TKikimrRunner kikimr(settings); - - TLocalHelper(kikimr).CreateTestOlapTable(); - auto tableClient = kikimr.GetTableClient(); - - { - WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 11000, 3001000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 12000, 3002000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 13000, 3003000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 14000, 3004000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 20000, 2000000, 7000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); - } - - { - TString query = R"( - --!syntax_v1 - SELECT - COUNT(level) - FROM `/Root/olapStore/olapTable` - )"; - auto opStartTime = Now(); - auto it = tableClient.StreamExecuteScanQuery(query).GetValueSync(); - - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - TString result = StreamResultToYson(it); - Cerr << "!!!\nPushdown query execution time: " << (Now() - opStartTime).MilliSeconds() << "\n!!!\n"; - Cout << result << Endl; - CompareYson(result, R"([[23000u;]])"); - - // Check plan -#if SSA_RUNTIME_VERSION >= 2U - CheckPlanForAggregatePushdown(query, tableClient, { "TKqpOlapAgg" }, "TableFullScan"); -#else - CheckPlanForAggregatePushdown(query, tableClient, { "CombineCore" }, ""); -#endif - } - } - - Y_UNIT_TEST(AggregationCountGroupByPushdown) { - auto settings = TKikimrSettings() - .SetWithSampleTables(false) - .SetForceColumnTablesCompositeMarks(true); - TKikimrRunner kikimr(settings); - - TLocalHelper(kikimr).CreateTestOlapTable(); - auto tableClient = kikimr.GetTableClient(); - - { - WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 11000, 3001000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 12000, 3002000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 13000, 3003000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 14000, 3004000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 20000, 2000000, 7000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); - } - - { - TString query = R"( - --!syntax_v1 - PRAGMA Kikimr.OptUseFinalizeByKey; - SELECT - level, COUNT(level) - FROM `/Root/olapStore/olapTable` - GROUP BY level - ORDER BY level - )"; - auto it = tableClient.StreamExecuteScanQuery(query).GetValueSync(); - - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - TString result = StreamResultToYson(it); - Cout << result << Endl; - CompareYson(result, R"([[[0];4600u];[[1];4600u];[[2];4600u];[[3];4600u];[[4];4600u]])"); - - // Check plan -#if SSA_RUNTIME_VERSION >= 2U - CheckPlanForAggregatePushdown(query, tableClient, { "WideCombiner" }, "Aggregate-TableFullScan"); -// CheckPlanForAggregatePushdown(query, tableClient, { "TKqpOlapAgg" }, "TableFullScan"); -#else - CheckPlanForAggregatePushdown(query, tableClient, { "CombineCore" }, ""); -#endif - } - } - - Y_UNIT_TEST_TWIN(CountAllPushdown, UseLlvm) { - auto settings = TKikimrSettings() - .SetWithSampleTables(false) - .SetForceColumnTablesCompositeMarks(true); - TKikimrRunner kikimr(settings); - - TLocalHelper(kikimr).CreateTestOlapTable(); - auto tableClient = kikimr.GetTableClient(); - - { - WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 11000, 3001000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 12000, 3002000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 13000, 3003000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 14000, 3004000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 20000, 2000000, 7000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); - } - - { - TString query = fmt::format(R"( - --!syntax_v1 - PRAGMA ydb.UseLlvm = "{}"; - - SELECT - COUNT(*) - FROM `/Root/olapStore/olapTable` - )", UseLlvm ? "true" : "false"); - auto it = tableClient.StreamExecuteScanQuery(query).GetValueSync(); - - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - TString result = StreamResultToYson(it); - Cout << result << Endl; - CompareYson(result, R"([[23000u;]])"); - - // Check plan -#if SSA_RUNTIME_VERSION >= 2U - CheckPlanForAggregatePushdown(query, tableClient, { "TKqpOlapAgg" }, "TableFullScan"); -#else - CheckPlanForAggregatePushdown(query, tableClient, { "Condense" }, ""); -#endif - } - } - - Y_UNIT_TEST_TWIN(CountAllPushdownBackwardCompatibility, EnableLlvm) { - auto settings = TKikimrSettings() - .SetWithSampleTables(false) - .SetForceColumnTablesCompositeMarks(true); - TKikimrRunner kikimr(settings); - - TLocalHelper(kikimr).CreateTestOlapTable(); - auto tableClient = kikimr.GetTableClient(); - - { - WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 11000, 3001000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 12000, 3002000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 13000, 3003000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 14000, 3004000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 20000, 2000000, 7000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); - } - - { - TString query = fmt::format(R"( - --!syntax_v1 - PRAGMA Kikimr.EnableLlvm = "{}"; - - SELECT - COUNT(*) - FROM `/Root/olapStore/olapTable` - )", EnableLlvm ? "true" : "false"); - auto it = tableClient.StreamExecuteScanQuery(query).GetValueSync(); - - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - TString result = StreamResultToYson(it); - Cout << result << Endl; - CompareYson(result, R"([[23000u;]])"); - - // Check plan -#if SSA_RUNTIME_VERSION >= 2U - CheckPlanForAggregatePushdown(query, tableClient, { "TKqpOlapAgg" }, "TableFullScan"); -#else - CheckPlanForAggregatePushdown(query, tableClient, { "Condense" }, ""); -#endif - } - } - - Y_UNIT_TEST(CountAllNoPushdown) { - auto settings = TKikimrSettings() - .SetWithSampleTables(false) - .SetForceColumnTablesCompositeMarks(true); - TKikimrRunner kikimr(settings); - - TLocalHelper(kikimr).CreateTestOlapTable(); - auto tableClient = kikimr.GetTableClient(); - - { - WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 11000, 3001000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 12000, 3002000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 13000, 3003000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 14000, 3004000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 20000, 2000000, 7000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); - } - - { - auto it = tableClient.StreamExecuteScanQuery(R"( - --!syntax_v1 - SELECT - COUNT(*) - FROM `/Root/olapStore/olapTable` - )").GetValueSync(); - - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - TString result = StreamResultToYson(it); - Cout << result << Endl; - CompareYson(result, R"([[23000u;]])"); - } - } - - class TExpectedLimitChecker { - private: - std::optional ExpectedLimit; - std::optional ExpectedResultCount; - ui32 CheckScanData = 0; - ui32 CheckScanTask = 0; - public: - TExpectedLimitChecker& SetExpectedLimit(const ui32 value) { - ExpectedLimit = value; - ExpectedResultCount = value; - return *this; - } - TExpectedLimitChecker& SetExpectedResultCount(const ui32 value) { - ExpectedResultCount = value; - return *this; - } - bool CheckExpectedLimitOnScanData(const ui32 resultCount) { - if (!ExpectedResultCount) { - return true; - } - ++CheckScanData; - UNIT_ASSERT_LE(resultCount, *ExpectedResultCount); - return true; - } - bool CheckExpectedLimitOnScanTask(const ui32 taskLimit) { - if (!ExpectedLimit) { - return true; - } - ++CheckScanTask; - UNIT_ASSERT_EQUAL(taskLimit, *ExpectedLimit); - return true; - } - bool CheckFinish() const { - if (!ExpectedLimit) { - return true; - } - return CheckScanData && CheckScanTask; - } - }; - - class TExpectedRecordChecker { - private: - std::optional ExpectedColumnsCount; - ui32 CheckScanData = 0; - public: - TExpectedRecordChecker& SetExpectedColumnsCount(const ui32 value) { - ExpectedColumnsCount = value; - return *this; - } - bool CheckExpectedOnScanData(const ui32 columnsCount) { - if (!ExpectedColumnsCount) { - return true; - } - ++CheckScanData; - UNIT_ASSERT_EQUAL(columnsCount, *ExpectedColumnsCount); - return true; - } - bool CheckFinish() const { - if (!ExpectedColumnsCount) { - return true; - } - return CheckScanData; - } - }; - - class TAggregationTestCase { - private: - TString Query; - TString ExpectedReply; - std::vector ExpectedPlanOptions; - bool Pushdown = true; - std::string ExpectedReadNodeType; - TExpectedLimitChecker LimitChecker; - TExpectedRecordChecker RecordChecker; - bool UseLlvm = true; - public: - void FillExpectedAggregationGroupByPlanOptions() { -#if SSA_RUNTIME_VERSION >= 2U -// AddExpectedPlanOptions("TKqpOlapAgg"); - AddExpectedPlanOptions("WideCombiner"); -#else - AddExpectedPlanOptions("CombineCore"); -#endif - } - TString GetFixedQuery() const { - TStringBuilder queryFixed; - queryFixed << "--!syntax_v1" << Endl; - if (!Pushdown) { - queryFixed << "PRAGMA Kikimr.OptEnableOlapPushdown = \"false\";" << Endl; - } - if (!UseLlvm) { - queryFixed << "PRAGMA Kikimr.UseLlvm = \"false\";" << Endl; - } - queryFixed << "PRAGMA Kikimr.OptUseFinalizeByKey;" << Endl; - - queryFixed << Query << Endl; - Cerr << "REQUEST:\n" << queryFixed << Endl; - return queryFixed; - } - TAggregationTestCase() = default; - TExpectedLimitChecker& MutableLimitChecker() { - return LimitChecker; - } - TExpectedRecordChecker& MutableRecordChecker() { - return RecordChecker; - } - bool GetPushdown() const { - return Pushdown; - } - TAggregationTestCase& SetPushdown(const bool value = true) { - Pushdown = value; - return *this; - } - bool CheckFinished() const { - return LimitChecker.CheckFinish(); - } - - const TString& GetQuery() const { - return Query; - } - TAggregationTestCase& SetQuery(const TString& value) { - Query = value; - return *this; - } - TAggregationTestCase& SetUseLlvm(const bool value) { - UseLlvm = value; - return *this; - } - const TString& GetExpectedReply() const { - return ExpectedReply; - } - TAggregationTestCase& SetExpectedReply(const TString& value) { - ExpectedReply = value; - return *this; - } - - TAggregationTestCase& AddExpectedPlanOptions(const std::string& value) { - ExpectedPlanOptions.emplace_back(value); - return *this; - } - - const std::vector& GetExpectedPlanOptions() const { - return ExpectedPlanOptions; - } - - TAggregationTestCase& SetExpectedReadNodeType(const std::string& value) { - ExpectedReadNodeType = value; - return *this; - } - - const std::string& GetExpectedReadNodeType() const { - return ExpectedReadNodeType; - } - }; - - void TestAggregationsBase(const std::vector& cases) { - auto settings = TKikimrSettings() - .SetWithSampleTables(false) - .SetForceColumnTablesCompositeMarks(true); - TKikimrRunner kikimr(settings); - - TLocalHelper(kikimr).CreateTestOlapTable(); - auto tableClient = kikimr.GetTableClient(); - - { - WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 11000, 3001000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 12000, 3002000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 13000, 3003000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 14000, 3004000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 20000, 2000000, 7000); - WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); - } - - for (auto&& i : cases) { - const TString queryFixed = i.GetFixedQuery(); - { - auto it = tableClient.StreamExecuteScanQuery(queryFixed).GetValueSync(); - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - TString result = StreamResultToYson(it); - if (!i.GetExpectedReply().empty()) { - CompareYson(result, i.GetExpectedReply()); - } - } - CheckPlanForAggregatePushdown(queryFixed, tableClient, i.GetExpectedPlanOptions(), i.GetExpectedReadNodeType()); - } - } - - void TestAggregationsInternal(const std::vector& cases) { - TPortManager tp; - ui16 mbusport = tp.GetPort(2134); - auto settings = Tests::TServerSettings(mbusport) - .SetDomainName("Root") - .SetUseRealThreads(false) - .SetNodeCount(2); - - Tests::TServer::TPtr server = new Tests::TServer(settings); - - auto runtime = server->GetRuntime(); - auto sender = runtime->AllocateEdgeActor(); - - InitRoot(server, sender); - Tests::NCommon::TLoggerInit(runtime).Initialize(); - - ui32 numShards = 1; - ui32 numIterations = 10; - TLocalHelper(*server).CreateTestOlapTable("olapTable", "olapStore", numShards, numShards); - const ui32 iterationPackSize = 2000; - for (ui64 i = 0; i < numIterations; ++i) { - TLocalHelper(*server).SendDataViaActorSystem("/Root/olapStore/olapTable", 0, 1000000 + i * 1000000, iterationPackSize); - } - - TAggregationTestCase currentTest; - auto captureEvents = [&](TAutoPtr& ev) -> auto { - switch (ev->GetTypeRewrite()) { - case NKqp::TKqpComputeEvents::EvScanData: - { - auto* msg = ev->Get(); - Y_ABORT_UNLESS(currentTest.MutableLimitChecker().CheckExpectedLimitOnScanData(msg->ArrowBatch ? msg->ArrowBatch->num_rows() : 0)); - Y_ABORT_UNLESS(currentTest.MutableRecordChecker().CheckExpectedOnScanData(msg->ArrowBatch ? msg->ArrowBatch->num_columns() : 0)); - break; - } - case TEvDataShard::EvKqpScan: - { - auto* msg = ev->Get(); - Y_ABORT_UNLESS(currentTest.MutableLimitChecker().CheckExpectedLimitOnScanTask(msg->Record.GetItemsLimit())); - break; - } - } - return TTestActorRuntime::EEventAction::PROCESS; - }; - runtime->SetObserverFunc(captureEvents); - - for (auto&& i : cases) { - const TString queryFixed = i.GetFixedQuery(); - currentTest = i; - auto streamSender = runtime->AllocateEdgeActor(); - SendRequest(*runtime, streamSender, MakeStreamRequest(streamSender, queryFixed, false)); - auto ev = runtime->GrabEdgeEventRethrow(streamSender, TDuration::Seconds(10)); - Y_ABORT_UNLESS(currentTest.CheckFinished()); - } - } - - void TestAggregations(const std::vector& cases) { - TestAggregationsBase(cases); - TestAggregationsInternal(cases); - } - - template - auto StreamExecuteQuery(const TAggregationTestCase& testCase, TClient& client) { - if constexpr (std::is_same_v) { - return client.StreamExecuteScanQuery(testCase.GetFixedQuery()).GetValueSync(); - } else { - return client.StreamExecuteQuery( - testCase.GetFixedQuery(), - NYdb::NQuery::TTxControl::BeginTx().CommitTx()).GetValueSync(); - } - } - - template - void RunTestCaseWithClient(const TAggregationTestCase& testCase, TClient& client) { - auto it = StreamExecuteQuery(testCase, client); - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - TString result = StreamResultToYson(it); - if (!testCase.GetExpectedReply().empty()) { - CompareYson(result, testCase.GetExpectedReply()); - } - } - - void TestClickBenchBase(const std::vector& cases, const bool genericQuery) { - auto settings = TKikimrSettings() - .SetWithSampleTables(false) - .SetForceColumnTablesCompositeMarks(true); - TKikimrRunner kikimr(settings); - - TClickHelper(kikimr).CreateClickBenchTable(); - auto tableClient = kikimr.GetTableClient(); - - - ui32 numIterations = 10; - const ui32 iterationPackSize = NSan::PlainOrUnderSanitizer(2000, 20); - for (ui64 i = 0; i < numIterations; ++i) { - WriteTestDataForClickBench(kikimr, "/Root/benchTable", 0, 1000000 + i * 1000000, iterationPackSize); - } - - if (!genericQuery) { - auto tableClient = kikimr.GetTableClient(); - for (auto&& i : cases) { - const TString queryFixed = i.GetFixedQuery(); - RunTestCaseWithClient(i, tableClient); - CheckPlanForAggregatePushdown(queryFixed, tableClient, i.GetExpectedPlanOptions(), i.GetExpectedReadNodeType()); - } - } else { - auto queryClient = kikimr.GetQueryClient(); - for (auto&& i : cases) { - const TString queryFixed = i.GetFixedQuery(); - RunTestCaseWithClient(i, queryClient); - CheckPlanForAggregatePushdown(queryFixed, queryClient, i.GetExpectedPlanOptions(), i.GetExpectedReadNodeType()); - } - } - } - - void TestClickBenchInternal(const std::vector& cases) { - TPortManager tp; - ui16 mbusport = tp.GetPort(2134); - auto settings = Tests::TServerSettings(mbusport) - .SetDomainName("Root") - .SetUseRealThreads(false) - .SetNodeCount(2); - - Tests::TServer::TPtr server = new Tests::TServer(settings); - - auto runtime = server->GetRuntime(); - auto sender = runtime->AllocateEdgeActor(); - - InitRoot(server, sender); - - TClickHelper(*server).CreateClickBenchTable(); - - // write data - - ui32 numIterations = 10; - const ui32 iterationPackSize = NSan::PlainOrUnderSanitizer(2000, 20); - for (ui64 i = 0; i < numIterations; ++i) { - TClickHelper(*server).SendDataViaActorSystem("/Root/benchTable", 0, 1000000 + i * 1000000, - iterationPackSize); - } - - TAggregationTestCase currentTest; - auto captureEvents = [&](TAutoPtr& ev) -> auto { - switch (ev->GetTypeRewrite()) { - case NKqp::TKqpComputeEvents::EvScanData: - { - auto* msg = ev->Get(); - Y_ABORT_UNLESS(currentTest.MutableLimitChecker().CheckExpectedLimitOnScanData(msg->ArrowBatch ? msg->ArrowBatch->num_rows() : 0)); - Y_ABORT_UNLESS(currentTest.MutableRecordChecker().CheckExpectedOnScanData(msg->ArrowBatch ? msg->ArrowBatch->num_columns() : 0)); - break; - } - case TEvDataShard::EvKqpScan: - { - auto* msg = ev->Get(); - Y_ABORT_UNLESS(currentTest.MutableLimitChecker().CheckExpectedLimitOnScanTask(msg->Record.GetItemsLimit())); - break; - } - } - return TTestActorRuntime::EEventAction::PROCESS; - }; - runtime->SetObserverFunc(captureEvents); - - // selects - - for (auto&& i : cases) { - const TString queryFixed = i.GetFixedQuery(); - currentTest = i; - auto streamSender = runtime->AllocateEdgeActor(); - SendRequest(*runtime, streamSender, MakeStreamRequest(streamSender, queryFixed, false)); - auto ev = runtime->GrabEdgeEventRethrow(streamSender, TDuration::Seconds(10)); - Y_ABORT_UNLESS(currentTest.CheckFinished()); - } - } - - void TestClickBench(const std::vector& cases, const bool genericQuery = false) { - TestClickBenchBase(cases, genericQuery); - if (!genericQuery) { - TestClickBenchInternal(cases); - } - } - - void TestTableWithNulls(const std::vector& cases, const bool genericQuery = false) { - auto settings = TKikimrSettings() - .SetWithSampleTables(false) - .SetForceColumnTablesCompositeMarks(true); - TKikimrRunner kikimr(settings); - - Tests::NCommon::TLoggerInit(kikimr).Initialize(); - TTableWithNullsHelper(kikimr).CreateTableWithNulls(); - auto tableClient = kikimr.GetTableClient(); - - { - WriteTestDataForTableWithNulls(kikimr, "/Root/tableWithNulls"); - } - - if (!genericQuery) { - auto tableClient = kikimr.GetTableClient(); - for (auto&& i : cases) { - RunTestCaseWithClient(i, tableClient); - CheckPlanForAggregatePushdown(i.GetFixedQuery(), tableClient, - i.GetExpectedPlanOptions(), i.GetExpectedReadNodeType()); - } - } else { - auto queryClient = kikimr.GetQueryClient(); - for (auto&& i : cases) { - RunTestCaseWithClient(i, queryClient); - CheckPlanForAggregatePushdown(i.GetFixedQuery(), queryClient, - i.GetExpectedPlanOptions(), i.GetExpectedReadNodeType()); - } - } - } - - Y_UNIT_TEST(Filter_NotAllUsedFieldsInResultSet) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT id, resource_id FROM `/Root/tableWithNulls` - WHERE - level = 5; - )") - .SetExpectedReply("[[5;#]]") - .AddExpectedPlanOptions("KqpOlapFilter"); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_ResultDistinctCountRI_GroupByL) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - level, COUNT(DISTINCT resource_id) - FROM `/Root/olapStore/olapTable` - GROUP BY level - ORDER BY level - )") - .SetExpectedReply("[[[0];4600u];[[1];4600u];[[2];4600u];[[3];4600u];[[4];4600u]]") - ; - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_ResultCountAll_FilterL) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - COUNT(*) - FROM `/Root/olapStore/olapTable` - WHERE level = 2 - )") - .SetExpectedReply("[[4600u;]]") - .AddExpectedPlanOptions("KqpOlapFilter") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg") - .MutableLimitChecker().SetExpectedResultCount(1) -#else - .AddExpectedPlanOptions("Condense") -#endif - ; - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_ResultCountL_FilterL) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - COUNT(level) - FROM `/Root/olapStore/olapTable` - WHERE level = 2 - )") - .SetExpectedReply("[[4600u;]]") - .AddExpectedPlanOptions("KqpOlapFilter") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg") - .MutableLimitChecker().SetExpectedResultCount(1) -#else - .AddExpectedPlanOptions("CombineCore") -#endif - ; - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_ResultCountT_FilterL) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - COUNT(timestamp) - FROM `/Root/olapStore/olapTable` - WHERE level = 2 - )") - .SetExpectedReply("[[4600u;]]") - .AddExpectedPlanOptions("KqpOlapFilter") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg") - .MutableLimitChecker().SetExpectedResultCount(1) -#else - .AddExpectedPlanOptions("CombineCore") - .AddExpectedPlanOptions("KqpOlapFilter") -#endif - ; - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_ResultTL_FilterL_Limit2) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - timestamp, level - FROM `/Root/olapStore/olapTable` - WHERE level = 2 - LIMIT 2 - )") - .AddExpectedPlanOptions("KqpOlapFilter") - .MutableLimitChecker().SetExpectedLimit(2); - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_ResultTL_FilterL_OrderT_Limit2) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - timestamp, level - FROM `/Root/olapStore/olapTable` - WHERE level = 2 - ORDER BY timestamp - LIMIT 2 - )") - .AddExpectedPlanOptions("KqpOlapFilter") - .MutableLimitChecker().SetExpectedLimit(2); - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_ResultT_FilterL_Limit2) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - timestamp - FROM `/Root/olapStore/olapTable` - WHERE level = 2 - LIMIT 2 - )") - .AddExpectedPlanOptions("KqpOlapFilter") - .AddExpectedPlanOptions("KqpOlapExtractMembers") - .MutableLimitChecker().SetExpectedLimit(2); - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_ResultT_FilterL_OrderT_Limit2) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - timestamp - FROM `/Root/olapStore/olapTable` - WHERE level = 2 - ORDER BY timestamp - LIMIT 2 - )") - .AddExpectedPlanOptions("KqpOlapFilter") - .AddExpectedPlanOptions("KqpOlapExtractMembers") - .MutableLimitChecker().SetExpectedLimit(2); - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_ResultL_FilterL_OrderL_Limit2) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - timestamp, level - FROM `/Root/olapStore/olapTable` - WHERE level > 1 - ORDER BY level - LIMIT 2 - )") - .AddExpectedPlanOptions("KqpOlapFilter"); - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_ResultCountExpr) { - auto g = NColumnShard::TLimits::MaxBlobSizeGuard(10000); - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - COUNT(level + 2) - FROM `/Root/olapStore/olapTable` - )") - .SetExpectedReply("[[23000u;]]") - .AddExpectedPlanOptions("Condense1"); - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Count_Null) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - COUNT(level) - FROM `/Root/tableWithNulls` - WHERE id > 5; - )") - .SetExpectedReply("[[0u]]") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg"); -#else - .AddExpectedPlanOptions("CombineCore"); -#endif - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Count_NullMix) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - COUNT(level) - FROM `/Root/tableWithNulls`; - )") - .SetExpectedReply("[[5u]]") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg"); -#else - .AddExpectedPlanOptions("CombineCore"); -#endif - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Count_GroupBy) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - id, COUNT(level) - FROM `/Root/tableWithNulls` - WHERE id BETWEEN 4 AND 5 - GROUP BY id - ORDER BY id; - )") - .SetExpectedReply("[[4;1u];[5;1u]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Count_NullGroupBy) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - id, COUNT(level) - FROM `/Root/tableWithNulls` - WHERE id BETWEEN 6 AND 7 - GROUP BY id - ORDER BY id; - )") - .SetExpectedReply("[[6;0u];[7;0u]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Count_NullMixGroupBy) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - id, COUNT(level) - FROM `/Root/tableWithNulls` - WHERE id > 4 AND id < 7 - GROUP BY id - ORDER BY id; - )") - .SetExpectedReply("[[5;1u];[6;0u]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Count_GroupByNull) { - // Wait for KIKIMR-16940 fix - return; - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - level, COUNT(id), COUNT(level), COUNT(*) - FROM `/Root/tableWithNulls` - WHERE id > 5 - GROUP BY level - ORDER BY level; - )") - .SetExpectedReply("[[#;5u;0u;5u]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Count_GroupByNullMix) { - // Wait for KIKIMR-16940 fix - return; - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - level, COUNT(id), COUNT(level), COUNT(*) - FROM `/Root/tableWithNulls` - WHERE id >= 5 - GROUP BY level - ORDER BY level; - )") - .SetExpectedReply("[[#;5u;0u;5u];[[5];1u;1u;1u]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_NoPushdownOnDisabledEmitAggApply) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - PRAGMA DisableEmitAggApply; - SELECT - COUNT(level) - FROM `/Root/olapStore/olapTable` - )") - .SetExpectedReply("[[23000u;]]") - .AddExpectedPlanOptions("Condense1"); - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(AggregationAndFilterPushdownOnDiffCols) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - COUNT(`timestamp`) - FROM `/Root/olapStore/olapTable` - WHERE level = 2 - )") - .SetExpectedReply("[[4600u;]]") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg") -#else - .AddExpectedPlanOptions("CombineCore") -#endif - .AddExpectedPlanOptions("KqpOlapFilter"); - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Avg) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - AVG(level), MIN(level) - FROM `/Root/olapStore/olapTable` - )") - .SetExpectedReply("[[[2.];[0]]]") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg"); -#else - .AddExpectedPlanOptions("CombineCore"); -#endif - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Avg_Null) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - AVG(level) - FROM `/Root/tableWithNulls` - WHERE id > 5; - )") - .SetExpectedReply("[[#]]") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg"); -#else - .AddExpectedPlanOptions("CombineCore"); -#endif - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Avg_NullMix) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - AVG(level) - FROM `/Root/tableWithNulls`; - )") - .SetExpectedReply("[[[3.]]]") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg"); -#else - .AddExpectedPlanOptions("CombineCore"); -#endif - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Avg_GroupBy) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - id, AVG(level) - FROM `/Root/tableWithNulls` - WHERE id BETWEEN 4 AND 5 - GROUP BY id - ORDER BY id; - )") - .SetExpectedReply("[[4;[4.]];[5;[5.]]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Avg_NullGroupBy) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - id, AVG(level) - FROM `/Root/tableWithNulls` - WHERE id BETWEEN 6 AND 7 - GROUP BY id - ORDER BY id; - )") - .SetExpectedReply("[[6;#];[7;#]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Avg_NullMixGroupBy) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - id, AVG(level) - FROM `/Root/tableWithNulls` - WHERE id > 4 AND id < 7 - GROUP BY id - ORDER BY id; - )") - .SetExpectedReply("[[5;[5.]];[6;#]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Avg_GroupByNull) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - level, AVG(id), AVG(level) - FROM `/Root/tableWithNulls` - WHERE id > 5 - GROUP BY level - ORDER BY level; - )") - .SetExpectedReply("[[#;8.;#]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Avg_GroupByNullMix) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - level, AVG(id), AVG(level) - FROM `/Root/tableWithNulls` - WHERE id >= 5 - GROUP BY level - ORDER BY level; - )") - .SetExpectedReply("[[#;8.;#];[[5];5.;[5.]]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Sum) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - SUM(level) - FROM `/Root/olapStore/olapTable` - )") - .SetExpectedReply("[[[46000;]]]") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg"); -#else - .AddExpectedPlanOptions("CombineCore"); -#endif - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Sum_Null) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - SUM(level) - FROM `/Root/tableWithNulls` - WHERE id > 5; - )") - .SetExpectedReply("[[#]]") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg"); -#else - .AddExpectedPlanOptions("CombineCore"); -#endif - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Sum_NullMix) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - SUM(level) - FROM `/Root/tableWithNulls`; - )") - .SetExpectedReply("[[[15]]]") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg"); -#else - .AddExpectedPlanOptions("CombineCore"); -#endif - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Sum_GroupBy) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - id, SUM(level) - FROM `/Root/tableWithNulls` - WHERE id BETWEEN 4 AND 5 - GROUP BY id - ORDER BY id; - )") - .SetExpectedReply("[[4;[4]];[5;[5]]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Sum_NullGroupBy) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - id, SUM(level) - FROM `/Root/tableWithNulls` - WHERE id BETWEEN 6 AND 7 - GROUP BY id - ORDER BY id; - )") - .SetExpectedReply("[[6;#];[7;#]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Sum_NullMixGroupBy) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - id, SUM(level) - FROM `/Root/tableWithNulls` - WHERE id > 4 AND id < 7 - GROUP BY id - ORDER BY id; - )") - .SetExpectedReply("[[5;[5]];[6;#]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Sum_GroupByNull) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - level, SUM(id), SUM(level) - FROM `/Root/tableWithNulls` - WHERE id > 5 - GROUP BY level - ORDER BY level; - )") - .SetExpectedReply("[[#;40;#]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Sum_GroupByNullMix) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - level, SUM(id), SUM(level) - FROM `/Root/tableWithNulls` - WHERE id >= 5 - GROUP BY level - ORDER BY level; - )") - .SetExpectedReply("[[#;40;#];[[5];5;[5]]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_SumL_GroupL_OrderL) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - level, SUM(level) - FROM `/Root/olapStore/olapTable` - GROUP BY level - ORDER BY level - )") - .SetExpectedReply("[[[0];[0]];[[1];[4600]];[[2];[9200]];[[3];[13800]];[[4];[18400]]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_MinL) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - MIN(level) - FROM `/Root/olapStore/olapTable` - )") - .SetExpectedReply("[[[0]]]") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg"); -#else - .AddExpectedPlanOptions("CombineCore"); -#endif - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_MaxL) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - MAX(level) - FROM `/Root/olapStore/olapTable` - )") - .SetExpectedReply("[[[4]]]") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg"); -#else - .AddExpectedPlanOptions("CombineCore"); -#endif - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_MinR_GroupL_OrderL) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - level, MIN(resource_id) - FROM `/Root/olapStore/olapTable` - GROUP BY level - ORDER BY level - )") - .SetExpectedReply("[[[0];[\"10000\"]];[[1];[\"10001\"]];[[2];[\"10002\"]];[[3];[\"10003\"]];[[4];[\"10004\"]]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_MaxR_GroupL_OrderL) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - level, MAX(resource_id) - FROM `/Root/olapStore/olapTable` - GROUP BY level - ORDER BY level - )") - .SetExpectedReply("[[[0];[\"40995\"]];[[1];[\"40996\"]];[[2];[\"40997\"]];[[3];[\"40998\"]];[[4];[\"40999\"]]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_ProjectionOrder) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - resource_id, level, count(*) as c - FROM `/Root/olapStore/olapTable` - GROUP BY resource_id, level - ORDER BY c, resource_id DESC LIMIT 3 - )") - .SetExpectedReply("[[[\"40999\"];[4];1u];[[\"40998\"];[3];1u];[[\"40997\"];[2];1u]]") - .SetExpectedReadNodeType("Aggregate-TableFullScan"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - TestAggregations({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Some) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT SOME(level) FROM `/Root/tableWithNulls` WHERE id=1 - )") - .SetExpectedReply("[[[1]]]") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg"); -#else - .AddExpectedPlanOptions("CombineCore"); -#endif - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Some_Null) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT SOME(level) FROM `/Root/tableWithNulls` WHERE id > 5 - )") - .SetExpectedReply("[[#]]") -#if SSA_RUNTIME_VERSION >= 2U - .AddExpectedPlanOptions("TKqpOlapAgg"); -#else - .AddExpectedPlanOptions("CombineCore"); -#endif - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Some_GroupBy) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - id, SOME(level) - FROM `/Root/tableWithNulls` - WHERE id BETWEEN 4 AND 5 - GROUP BY id - ORDER BY id; - )") - .SetExpectedReply("[[4;[4]];[5;[5]]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Some_NullGroupBy) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - id, SOME(level) - FROM `/Root/tableWithNulls` - WHERE id BETWEEN 6 AND 7 - GROUP BY id - ORDER BY id; - )") - .SetExpectedReply("[[6;#];[7;#]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Some_NullMixGroupBy) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - id, SOME(level) - FROM `/Root/tableWithNulls` - WHERE id > 4 AND id < 7 - GROUP BY id - ORDER BY id; - )") - .SetExpectedReply("[[5;[5]];[6;#]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Some_GroupByNullMix) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - level, SOME(id), SOME(level) - FROM `/Root/tableWithNulls` - WHERE id BETWEEN 5 AND 6 - GROUP BY level - ORDER BY level; - )") - .SetExpectedReply("[[#;6;#];[[5];5;[5]]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Aggregation_Some_GroupByNull) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - level, SOME(id), SOME(level) - FROM `/Root/tableWithNulls` - WHERE id = 6 - GROUP BY level - ORDER BY level; - )") - .SetExpectedReply("[[#;6;#]]"); - testCase.FillExpectedAggregationGroupByPlanOptions(); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(ClickBenchSmoke) { - TAggregationTestCase q7; - q7.SetQuery(R"( - SELECT - AdvEngineID, COUNT(*) as c - FROM `/Root/benchTable` - WHERE AdvEngineID != 0 - GROUP BY AdvEngineID - ORDER BY c DESC - )") - //.SetExpectedReply("[[[\"40999\"];[4];1u];[[\"40998\"];[3];1u];[[\"40997\"];[2];1u]]") - // Should be fixed in https://st.yandex-team.ru/KIKIMR-17009 - // .SetExpectedReadNodeType("TableFullScan"); - .SetExpectedReadNodeType("Aggregate-TableFullScan"); - q7.FillExpectedAggregationGroupByPlanOptions(); - - TAggregationTestCase q9; - q9.SetQuery(R"( - SELECT - RegionID, SUM(AdvEngineID), COUNT(*) AS c, avg(ResolutionWidth), COUNT(DISTINCT UserID) - FROM `/Root/benchTable` - GROUP BY RegionID - ORDER BY c DESC - LIMIT 10 - )") - //.SetExpectedReply("[[[\"40999\"];[4];1u];[[\"40998\"];[3];1u];[[\"40997\"];[2];1u]]") - // Should be fixed in https://st.yandex-team.ru/KIKIMR-17009 - // .SetExpectedReadNodeType("TableFullScan"); - .SetExpectedReadNodeType("Aggregate-TableFullScan"); - q9.FillExpectedAggregationGroupByPlanOptions(); - - TAggregationTestCase q12; - q12.SetQuery(R"( - SELECT - SearchPhrase, count(*) AS c - FROM `/Root/benchTable` - WHERE SearchPhrase != '' - GROUP BY SearchPhrase - ORDER BY c DESC - LIMIT 10; - )") - //.SetExpectedReply("[[[\"40999\"];[4];1u];[[\"40998\"];[3];1u];[[\"40997\"];[2];1u]]") - // Should be fixed in https://st.yandex-team.ru/KIKIMR-17009 - // .SetExpectedReadNodeType("TableFullScan"); - .SetExpectedReadNodeType("Aggregate-TableFullScan"); - q12.FillExpectedAggregationGroupByPlanOptions(); - - TAggregationTestCase q14; - q14.SetQuery(R"( - SELECT - SearchEngineID, SearchPhrase, count(*) AS c - FROM `/Root/benchTable` - WHERE SearchPhrase != '' - GROUP BY SearchEngineID, SearchPhrase - ORDER BY c DESC - LIMIT 10; - )") - //.SetExpectedReply("[[[\"40999\"];[4];1u];[[\"40998\"];[3];1u];[[\"40997\"];[2];1u]]") - // Should be fixed in https://st.yandex-team.ru/KIKIMR-17009 - // .SetExpectedReadNodeType("TableFullScan"); - .SetExpectedReadNodeType("Aggregate-TableFullScan"); - q14.FillExpectedAggregationGroupByPlanOptions(); - - TAggregationTestCase q22; - q22.SetQuery(R"( - SELECT - SearchPhrase, MIN(URL), MIN(Title), COUNT(*) AS c, COUNT(DISTINCT UserID) - FROM `/Root/benchTable` - WHERE Title LIKE '%Google%' AND URL NOT LIKE '%.google.%' AND SearchPhrase <> '' - GROUP BY SearchPhrase - ORDER BY c DESC - LIMIT 10; - )") - .AddExpectedPlanOptions("KqpOlapFilter") - .SetExpectedReadNodeType("Aggregate-TableFullScan"); - q22.FillExpectedAggregationGroupByPlanOptions(); - - TAggregationTestCase q39; - q39.SetQuery(R"( - SELECT TraficSourceID, SearchEngineID, AdvEngineID, Src, Dst, COUNT(*) AS PageViews - FROM `/Root/benchTable` - WHERE CounterID = 62 AND EventDate >= Date('2013-07-01') AND EventDate <= Date('2013-07-31') AND IsRefresh == 0 - GROUP BY - TraficSourceID, SearchEngineID, AdvEngineID, IF (SearchEngineID = 0 AND AdvEngineID = 0, Referer, '') AS Src, - URL AS Dst - ORDER BY PageViews DESC - LIMIT 10; - )") - .AddExpectedPlanOptions("KqpOlapFilter") - .SetExpectedReadNodeType("Aggregate-Filter-TableFullScan"); - q39.FillExpectedAggregationGroupByPlanOptions(); - - std::vector cases = {q7, q9, q12, q14, q22, q39}; - for (auto&& c : cases) { - c.SetUseLlvm(NSan::PlainOrUnderSanitizer(true, false)); - } - - TestClickBench(cases); - } - - Y_UNIT_TEST(StatsSysView) { - auto settings = TKikimrSettings() - .SetWithSampleTables(false); - TKikimrRunner kikimr(settings); - auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); - static ui32 numKinds = 2; - - TLocalHelper(kikimr).CreateTestOlapTable(); - for (ui64 i = 0; i < 100; ++i) { - WriteTestData(kikimr, "/Root/olapStore/olapTable", 0, 1000000 + i*10000, 1000); - } - - auto tableClient = kikimr.GetTableClient(); - auto selectQuery = TString(R"( - SELECT PathId, Kind, TabletId, Sum(Rows) as Rows - FROM `/Root/olapStore/.sys/store_primary_index_stats` - GROUP BY PathId, Kind, TabletId - ORDER BY TabletId, Kind, PathId - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); + auto tableClient = kikimr.GetTableClient(); + auto query = R"( + PRAGMA DisableAnsiLike; + SELECT id, resource_id FROM `/Root/tableWithNulls` WHERE resource_id LIKE "%5%" + )"; + auto it = tableClient.StreamExecuteScanQuery(query, scanSettings).GetValueSync(); + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - UNIT_ASSERT_VALUES_EQUAL(rows.size(), numKinds*3); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 3ull); - UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[0].at("Kind")), "INSERTED"); - UNIT_ASSERT_GE(GetUint64(rows[0].at("TabletId")), 72075186224037888ull); - UNIT_ASSERT_GE(GetUint64(rows[2].at("TabletId")), 72075186224037889ull); - UNIT_ASSERT_GE(GetUint64(rows[4].at("TabletId")), 72075186224037890ull); - UNIT_ASSERT_GE(GetUint64(rows[1].at("TabletId")), GetUint64(rows[0].at("TabletId"))); - UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[2].at("Kind")), "INSERTED"); - UNIT_ASSERT_GE(GetUint64(rows[2].at("TabletId")), GetUint64(rows[1].at("TabletId"))); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[3].at("PathId")), 3ull); - UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[3].at("Kind")), "SPLIT_COMPACTED"); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[3].at("TabletId")), GetUint64(rows[2].at("TabletId"))); - UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[4].at("Kind")), "INSERTED"); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[4].at("TabletId")), GetUint64(rows[5].at("TabletId"))); - UNIT_ASSERT_GE( - GetUint64(rows[0].at("Rows")) + GetUint64(rows[1].at("Rows")) + GetUint64(rows[2].at("Rows")) + - GetUint64(rows[3].at("Rows")) + GetUint64(rows[4].at("Rows")) + GetUint64(rows[5].at("Rows")), - 0.3*0.9*100*1000); // >= 90% of 100K inserted rows + auto result = CollectStreamResult(it); + auto ast = result.QueryStats->Getquery_ast(); + UNIT_ASSERT_C(ast.find("KqpOlapFilter") == std::string::npos, + TStringBuilder() << "Predicate pushed down. Query: " << query); } - Y_UNIT_TEST(StatsSysViewTable) { + Y_UNIT_TEST(PredicatePushdown_MixStrictAndNotStrict) { auto settings = TKikimrSettings() .SetWithSampleTables(false); TKikimrRunner kikimr(settings); - auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); - static ui32 numKinds = 5; - - TLocalHelper(kikimr).CreateTestOlapTable("olapTable_1"); - TLocalHelper(kikimr).CreateTestOlapTable("olapTable_2"); - for (ui64 i = 0; i < 10; ++i) { - WriteTestData(kikimr, "/Root/olapStore/olapTable_1", 0, 1000000 + i*10000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable_2", 0, 1000000 + i*10000, 2000); - } - auto tableClient = kikimr.GetTableClient(); - { - auto selectQuery = TString(R"( - SELECT PathId, Kind, TabletId - FROM `/Root/olapStore/olapTable_1/.sys/primary_index_stats` - GROUP BY PathId, TabletId, Kind - ORDER BY PathId, TabletId, Kind - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - - UNIT_ASSERT_GT(rows.size(), 1*numKinds); - UNIT_ASSERT_LE(rows.size(), 3*numKinds); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows.front().at("PathId")), 3ull); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows.back().at("PathId")), 3ull); - } - { - auto selectQuery = TString(R"( - SELECT PathId, Kind, TabletId - FROM `/Root/olapStore/olapTable_2/.sys/primary_index_stats` - GROUP BY PathId, TabletId, Kind - ORDER BY PathId, TabletId, Kind - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - - UNIT_ASSERT_GT(rows.size(), 1*numKinds); - UNIT_ASSERT_LE(rows.size(), 3*numKinds); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows.front().at("PathId")), 4ull); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows.back().at("PathId")), 4ull); - } - { - auto selectQuery = TString(R"( - SELECT * - FROM `/Root/olapStore/olapTable_1/.sys/primary_index_stats` - WHERE - PathId > UInt64("3") - ORDER BY PathId, Kind, TabletId - )"); + TStreamExecScanQuerySettings scanSettings; + scanSettings.Explain(true); - auto rows = ExecuteScanQuery(tableClient, selectQuery); + TLocalHelper(kikimr).CreateTestOlapTable(); + WriteTestData(kikimr, "/Root/olapStore/olapTable", 10000, 3000000, 5); + Tests::NCommon::TLoggerInit(kikimr).Initialize(); - UNIT_ASSERT_VALUES_EQUAL(rows.size(), 0); - } - } + auto tableClient = kikimr.GetTableClient(); + auto query = R"( + PRAGMA Kikimr.OptEnablePredicateExtract = "false"; + SELECT `timestamp` FROM `/Root/olapStore/olapTable` WHERE + `resource_id` = "10001" AND Unwrap(`level`/1) = `level` AND `level` > 1; + )"; - Y_UNIT_TEST(StatsSysViewEnumStringBytes) { - ui64 rawBytesPK1; - ui64 bytesPK1; - auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); - { - auto settings = TKikimrSettings() - .SetWithSampleTables(false); - TKikimrRunner kikimr(settings); - Tests::NCommon::TLoggerInit(kikimr).Initialize(); - TTypedLocalHelper helper("", kikimr, "olapTable", "olapStore12"); - helper.CreateTestOlapTable(); - helper.FillPKOnly(0, 800000); - helper.GetVolumes(rawBytesPK1, bytesPK1, false); - } + auto it = tableClient.StreamExecuteScanQuery(query, scanSettings).GetValueSync(); + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - ui64 rawBytesUnpack1PK = 0; - ui64 bytesUnpack1PK = 0; - ui64 rawBytesPackAndUnpack2PK; - ui64 bytesPackAndUnpack2PK; - const ui32 rowsCount = 800000; - const ui32 groupsCount = 512; - { - auto settings = TKikimrSettings() - .SetWithSampleTables(false); - TKikimrRunner kikimr(settings); - Tests::NCommon::TLoggerInit(kikimr).Initialize(); - TTypedLocalHelper helper("Utf8", kikimr); - helper.CreateTestOlapTable(); - NArrow::NConstruction::TStringPoolFiller sPool(groupsCount, 52); - helper.FillTable(sPool, 0, rowsCount); - helper.PrintCount(); - { - auto d = helper.GetDistribution(); - Y_ABORT_UNLESS(d.GetCount() == rowsCount); - Y_ABORT_UNLESS(d.GetGroupsCount() == groupsCount); - Y_ABORT_UNLESS(d.GetMaxCount() - d.GetMinCount() <= 1); - } - helper.GetVolumes(rawBytesUnpack1PK, bytesUnpack1PK, false); - Sleep(TDuration::Seconds(5)); - auto tableClient = kikimr.GetTableClient(); - { - auto alterQuery = TStringBuilder() << "ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=ALTER_COLUMN, NAME=field, `ENCODING.DICTIONARY.ENABLED`=`true`);"; - auto session = tableClient.CreateSession().GetValueSync().GetSession(); - auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); - UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), EStatus::SUCCESS, alterResult.GetIssues().ToString()); - } - { - auto alterQuery = TStringBuilder() << "ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=ALTER_COLUMN, NAME=field1, `ENCODING.DICTIONARY.ENABLED`=`true`);"; - auto session = tableClient.CreateSession().GetValueSync().GetSession(); - auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); - UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), EStatus::SCHEME_ERROR, alterResult.GetIssues().ToString()); - } - { - auto alterQuery = TStringBuilder() << "ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=ALTER_COLUMN, NAME=field, `ENCODING.DICTIONARY.ENABLED1`=`true`);"; - auto session = tableClient.CreateSession().GetValueSync().GetSession(); - auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); - UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), EStatus::GENERIC_ERROR, alterResult.GetIssues().ToString()); - } - Sleep(TDuration::Seconds(5)); - helper.FillTable(sPool, 1, rowsCount); - Sleep(TDuration::Seconds(5)); - { - helper.GetVolumes(rawBytesPackAndUnpack2PK, bytesPackAndUnpack2PK, false); - helper.PrintCount(); - { - auto d = helper.GetDistribution(); - Cerr << d.DebugString() << Endl; - Y_ABORT_UNLESS(d.GetCount() == 2 * rowsCount); - Y_ABORT_UNLESS(d.GetGroupsCount() == groupsCount); - Y_ABORT_UNLESS(d.GetMaxCount() - d.GetMinCount() <= 2); - } - } - } - const ui64 rawBytesUnpack = rawBytesUnpack1PK - rawBytesPK1; - const ui64 bytesUnpack = bytesUnpack1PK - bytesPK1; - const ui64 rawBytesPack = rawBytesPackAndUnpack2PK - rawBytesUnpack1PK - rawBytesPK1; - const ui64 bytesPack = bytesPackAndUnpack2PK - bytesUnpack1PK - bytesPK1; - TStringBuilder result; - result << "unpacked data: " << rawBytesUnpack << " / " << bytesUnpack << Endl; - result << "packed data: " << rawBytesPack << " / " << bytesPack << Endl; - result << "frq_diff: " << 1.0 * bytesPack / bytesUnpack << Endl; - result << "frq_compression: " << 1.0 * bytesPack / rawBytesPack << Endl; - result << "pk_size : " << rawBytesPK1 << " / " << bytesPK1 << Endl; - Cerr << result << Endl; - Y_ABORT_UNLESS(bytesPack / bytesUnpack < 0.1); + auto result = CollectStreamResult(it); + auto ast = result.QueryStats->Getquery_ast(); + UNIT_ASSERT_C(ast.find(R"(('eq '"resource_id")") != std::string::npos, + TStringBuilder() << "Predicate not pushed down. Query: " << query); + UNIT_ASSERT_C(ast.find(R"(('gt '"level")") == std::string::npos, + TStringBuilder() << "Predicate pushed down. Query: " << query); + UNIT_ASSERT_C(ast.find("NarrowMap") != std::string::npos, + TStringBuilder() << "NarrowMap was removed. Query: " << query); } Y_UNIT_TEST(SelectLimit1ManyShards) { @@ -3828,7 +1345,7 @@ Y_UNIT_TEST_SUITE(KqpOlap) { const ui32 numIterations = 10; TLocalHelper(*server).CreateTestOlapTable("selectTable", "selectStore", numShards, numShards); for(ui64 i = 0; i < numIterations; ++i) { - TLocalHelper(*server).SendDataViaActorSystem("/Root/selectStore/selectTable", 0, 1000000 + i*1000000, 2000); + TLocalHelper(*server).SendDataViaActorSystem("/Root/selectStore/selectTable", 0, 1000000 + i * 1000000, 2000); } ui64 result = 0; @@ -3890,7 +1407,7 @@ Y_UNIT_TEST_SUITE(KqpOlap) { runtime->SetObserverFunc(captureEvents); auto streamSender = runtime->AllocateEdgeActor(); - SendRequest(*runtime, streamSender, MakeStreamRequest(streamSender, "SELECT * FROM `/Root/selectStore/selectTable` LIMIT 1;", false)); + NDataShard::NKqpHelpers::SendRequest(*runtime, streamSender, NDataShard::NKqpHelpers::MakeStreamRequest(streamSender, "SELECT * FROM `/Root/selectStore/selectTable` LIMIT 1;", false)); auto ev = runtime->GrabEdgeEventRethrow(streamSender); UNIT_ASSERT_VALUES_EQUAL(result, 1); } @@ -3956,7 +1473,7 @@ Y_UNIT_TEST_SUITE(KqpOlap) { runtime->SetObserverFunc(captureEvents); auto streamSender = runtime->AllocateEdgeActor(); - SendRequest(*runtime, streamSender, MakeStreamRequest(streamSender, "SELECT COUNT(*) FROM `/Root/largeOlapStore/largeOlapTable`;", false)); + NDataShard::NKqpHelpers::SendRequest(*runtime, streamSender, NDataShard::NKqpHelpers::MakeStreamRequest(streamSender, "SELECT COUNT(*) FROM `/Root/largeOlapStore/largeOlapTable`;", false)); runtime->GrabEdgeEventRethrow(streamSender); UNIT_ASSERT_VALUES_EQUAL(result, insertRows); } @@ -4019,7 +1536,7 @@ Y_UNIT_TEST_SUITE(KqpOlap) { runtime->SetObserverFunc(captureEvents); auto streamSender = runtime->AllocateEdgeActor(); - SendRequest(*runtime, streamSender, MakeStreamRequest(streamSender, "SELECT * FROM `/Root/largeOlapStore/largeOlapTable` where resource_id = Utf8(\"notfound\");", false)); + NDataShard::NKqpHelpers::SendRequest(*runtime, streamSender, NDataShard::NKqpHelpers::MakeStreamRequest(streamSender, "SELECT * FROM `/Root/largeOlapStore/largeOlapTable` where resource_id = Utf8(\"notfound\");", false)); auto ev = runtime->GrabEdgeEventRethrow(streamSender); UNIT_ASSERT(hasResult); } @@ -4094,10 +1611,12 @@ Y_UNIT_TEST_SUITE(KqpOlap) { return TTestActorRuntime::EEventAction::PROCESS; } else { if (prevIsFinished) { - Cerr << (TStringBuilder() << "-- EvScanData from " << ev->Sender << ": hijack event"); + Cerr << (TStringBuilder() << "-- EvScanData from " << ev->Sender << ": hijack event" << Endl); Cerr.Flush(); - auto resp = std::make_unique(msg->Generation, 0); - runtime->Send(new IEventHandle(ev->Recipient, ev->Sender, resp.release())); + for (auto&& i : csController->GetShardActualIds()) { + runtime->Send(MakePipePeNodeCacheID(false), NActors::TActorId(), new TEvPipeCache::TEvForward( + new TEvents::TEvPoisonPill(), i, false)); + } } else { prevIsFinished = msg->Finished; } @@ -4114,384 +1633,11 @@ Y_UNIT_TEST_SUITE(KqpOlap) { runtime->SetObserverFunc(captureEvents); auto streamSender = runtime->AllocateEdgeActor(); - SendRequest(*runtime, streamSender, MakeStreamRequest(streamSender, "SELECT COUNT(*) FROM `/Root/largeOlapStore/largeOlapTable`;", false)); + NDataShard::NKqpHelpers::SendRequest(*runtime, streamSender, NDataShard::NKqpHelpers::MakeStreamRequest(streamSender, "SELECT COUNT(*) FROM `/Root/largeOlapStore/largeOlapTable`;", false)); auto ev = runtime->GrabEdgeEventRethrow(streamSender); UNIT_ASSERT_VALUES_EQUAL(result, insertRows); } - Y_UNIT_TEST(StatsSysViewColumns) { - auto settings = TKikimrSettings().SetWithSampleTables(false); - auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); - TKikimrRunner kikimr(settings); - - TLocalHelper(kikimr.GetTestServer()).CreateTestOlapTable(); - for (ui64 i = 0; i < 10; ++i) { - WriteTestData(kikimr, "/Root/olapStore/olapTable", 0, 1000000 + i*10000, 2000); - } - - auto tableClient = kikimr.GetTableClient(); - - { - auto selectQuery = TString(R"( - SELECT TabletId, PathId, Kind - FROM `/Root/olapStore/.sys/store_primary_index_stats` - ORDER BY PathId, Kind, TabletId - LIMIT 4; - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - - UNIT_ASSERT_VALUES_EQUAL(rows.size(), 4); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 3ull); - UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[0].at("Kind")), "INSERTED"); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[3].at("PathId")), 3ull); - UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[3].at("Kind")), "INSERTED"); - } - { - auto selectQuery = TString(R"( - SELECT SUM(BlobRangeSize) as Bytes, SUM(Rows) as Rows, PathId, TabletId - FROM `/Root/olapStore/.sys/store_primary_index_stats` - GROUP BY PathId, TabletId - ORDER BY Bytes - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - - UNIT_ASSERT_VALUES_EQUAL(rows.size(), 3); - UNIT_ASSERT_LE(GetUint64(rows[0].at("Bytes")), GetUint64(rows[1].at("Bytes"))); - } - { - auto selectQuery = TString(R"( - SELECT Sum(Rows) as Rows, Kind, Sum(RawBytes) as RawBytes, Sum(Rows) as Rows2, Sum(Rows) as Rows3, PathId - FROM `/Root/olapStore/.sys/store_primary_index_stats` - GROUP BY Kind, PathId - ORDER BY PathId, Kind, Rows3 - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - UNIT_ASSERT_VALUES_EQUAL(rows.size(), 2); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("Rows2")), GetUint64(rows[0].at("Rows3"))); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[1].at("Rows")), GetUint64(rows[1].at("Rows3"))); - } - } - - Y_UNIT_TEST(StatsSysViewRanges) { - auto settings = TKikimrSettings().SetWithSampleTables(false); - TKikimrRunner kikimr(settings); - auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); - csController->SetCompactionControl(NYDBTest::EOptimizerCompactionWeightControl::Disable); - Tests::NCommon::TLoggerInit(kikimr).Initialize(); - - TLocalHelper(kikimr).CreateTestOlapTable("olapTable_1"); - TLocalHelper(kikimr).CreateTestOlapTable("olapTable_2"); - TLocalHelper(kikimr).CreateTestOlapTable("olapTable_3"); - - for (ui64 i = 0; i < 10; ++i) { - WriteTestData(kikimr, "/Root/olapStore/olapTable_1", 0, 1000000 + i*10000, 2000); - WriteTestData(kikimr, "/Root/olapStore/olapTable_2", 0, 1000000 + i*10000, 3000); - WriteTestData(kikimr, "/Root/olapStore/olapTable_3", 0, 1000000 + i*10000, 5000); - } - - auto tableClient = kikimr.GetTableClient(); - - { - auto selectQuery = TString(R"( - SELECT * - FROM `/Root/olapStore/.sys/store_primary_index_stats` - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - } - - { - auto selectQuery = TString(R"( - SELECT PathId, Kind, TabletId - FROM `/Root/olapStore/.sys/store_primary_index_stats` - WHERE - PathId == UInt64("3") AND Activity = true - GROUP BY TabletId, PathId, Kind - ORDER BY TabletId, Kind - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - - UNIT_ASSERT_VALUES_EQUAL(rows.size(), 3); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 3ull); - UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[0].at("Kind")), "INSERTED"); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[1].at("PathId")), 3ull); - UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[2].at("Kind")), "INSERTED"); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[2].at("PathId")), 3ull); - UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[1].at("Kind")), "INSERTED"); - } - - { - auto selectQuery = TString(R"( - SELECT PathId, Kind, TabletId - FROM `/Root/olapStore/.sys/store_primary_index_stats` - GROUP BY PathId, Kind, TabletId - ORDER BY PathId DESC, Kind DESC, TabletId DESC - ; - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - - ui32 numExpected = 3*3; - UNIT_ASSERT_VALUES_EQUAL(rows.size(), numExpected); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 5ull); - UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[0].at("Kind")), "INSERTED"); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[numExpected-1].at("PathId")), 3ull); - UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[numExpected-1].at("Kind")), "INSERTED"); - } - - { - auto selectQuery = TString(R"( - SELECT PathId, Kind, TabletId - FROM `/Root/olapStore/.sys/store_primary_index_stats` - WHERE - PathId > UInt64("0") AND PathId < UInt32("4") - OR PathId > UInt64("4") AND PathId <= UInt64("5") - GROUP BY PathId, Kind, TabletId - ORDER BY - PathId DESC, Kind DESC, TabletId DESC - ; - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - - ui32 numExpected = 2*3; - UNIT_ASSERT_VALUES_EQUAL(rows.size(), numExpected); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 5ull); - UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[0].at("Kind")), "INSERTED"); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[numExpected-1].at("PathId")), 3ull); - UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[numExpected-1].at("Kind")), "INSERTED"); - } - } - - Y_UNIT_TEST(StatsSysViewFilter) { - auto settings = TKikimrSettings().SetWithSampleTables(false); - TKikimrRunner kikimr(settings); - auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); - - TLocalHelper(kikimr.GetTestServer()).CreateTestOlapTable(); - for (ui64 i = 0; i < 10; ++i) { - WriteTestData(kikimr, "/Root/olapStore/olapTable", 0, 1000000 + i*10000, 2000); - } - - auto tableClient = kikimr.GetTableClient(); - - { - auto selectQuery = TString(R"( - SELECT PathId, Kind, TabletId, Sum(BlobRangeSize) as Bytes - FROM `/Root/olapStore/.sys/store_primary_index_stats` - GROUP BY PathId, Kind, TabletId - ORDER BY PathId, Kind, TabletId; - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - - UNIT_ASSERT_GE(rows.size(), 3); - } - - { - auto selectQuery = TString(R"( - SELECT PathId, Kind, TabletId, Sum(BlobRangeSize) as Bytes - FROM `/Root/olapStore/.sys/store_primary_index_stats` - GROUP BY PathId, Kind, TabletId - ORDER BY PathId, Kind, TabletId; - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - - UNIT_ASSERT_GE(rows.size(), 3); - } - - { - auto selectQuery = TString(R"( - SELECT * - FROM `/Root/olapStore/.sys/store_primary_index_stats` - WHERE Kind == 'EVICTED' - ORDER BY PathId, Kind, TabletId; - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - - UNIT_ASSERT_GE(rows.size(), 0); - } - - { - auto selectQuery = TString(R"( - SELECT PathId, Kind, TabletId - FROM `/Root/olapStore/.sys/store_primary_index_stats` - WHERE Kind IN ('SPLIT_COMPACTED', 'INACTIVE', 'EVICTED') - GROUP BY PathId, Kind, TabletId - ORDER BY PathId, Kind, TabletId; - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - - UNIT_ASSERT_GE(rows.size(), 3); - } - } - - Y_UNIT_TEST(StatsSysViewAggregation) { - auto settings = TKikimrSettings().SetWithSampleTables(false); - TKikimrRunner kikimr(settings); - auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); - - TLocalHelper(kikimr.GetTestServer()).CreateTestOlapTable("olapTable_1"); - TLocalHelper(kikimr.GetTestServer()).CreateTestOlapTable("olapTable_2"); - TLocalHelper(kikimr.GetTestServer()).CreateTestOlapTable("olapTable_3"); - - for (ui64 i = 0; i < 100; ++i) { - WriteTestData(kikimr, "/Root/olapStore/olapTable_1", 0, 1000000 + i*10000, 1000); - WriteTestData(kikimr, "/Root/olapStore/olapTable_2", 0, 1000000 + i*10000, 2000); - WriteTestData(kikimr, "/Root/olapStore/olapTable_3", 0, 1000000 + i*10000, 3000); - } - - Tests::NCommon::TLoggerInit(kikimr).Initialize(); - - auto tableClient = kikimr.GetTableClient(); - - { - auto selectQuery = TString(R"( - SELECT - SUM(Rows) as rows, - FROM `/Root/olapStore/.sys/store_primary_index_stats` - WHERE - Kind != 'INACTIVE' - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - UNIT_ASSERT_VALUES_EQUAL(rows.size(), 1ull); - } - - { - auto selectQuery = TString(R"( - SELECT - PathId, - SUM(Rows) as rows, - FROM `/Root/olapStore/.sys/store_primary_index_stats` - WHERE - Kind != 'INACTIVE' - GROUP BY - PathId - ORDER BY - PathId - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - UNIT_ASSERT_VALUES_EQUAL(rows.size(), 3ull); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 3); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[1].at("PathId")), 4); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[2].at("PathId")), 5); - } - - { - auto selectQuery = TString(R"( - SELECT - PathId, - SUM(Rows) as rows, - SUM(BlobRangeSize) as bytes, - SUM(RawBytes) as bytes_raw - FROM `/Root/olapStore/.sys/store_primary_index_stats` - WHERE - Kind IN ('INSERTED', 'SPLIT_COMPACTED', 'COMPACTED') - GROUP BY PathId - ORDER BY rows DESC - LIMIT 10 - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - UNIT_ASSERT_VALUES_EQUAL(rows.size(), 3ull); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 5); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[1].at("PathId")), 4); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[2].at("PathId")), 3); - } - - { - auto selectQuery = TString(R"( - SELECT - PathId, - SUM(Rows) as rows, - SUM(BlobRangeSize) as bytes, - SUM(RawBytes) as bytes_raw - FROM `/Root/olapStore/.sys/store_primary_index_stats` - WHERE - PathId == UInt64("3") AND Kind IN ('INSERTED', 'SPLIT_COMPACTED', 'COMPACTED') - GROUP BY PathId - ORDER BY rows DESC - LIMIT 10 - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - UNIT_ASSERT_VALUES_EQUAL(rows.size(), 1ull); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 3); - } - - { - auto selectQuery = TString(R"( - SELECT - PathId, - SUM(Rows) as rows, - SUM(BlobRangeSize) as bytes, - SUM(RawBytes) as bytes_raw - FROM `/Root/olapStore/.sys/store_primary_index_stats` - WHERE - PathId >= UInt64("4") AND Kind IN ('INSERTED', 'SPLIT_COMPACTED', 'COMPACTED') - GROUP BY PathId - ORDER BY rows DESC - LIMIT 10 - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - UNIT_ASSERT_VALUES_EQUAL(rows.size(), 2ull); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 5); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[1].at("PathId")), 4); - } - - { - auto selectQuery = TString(R"( - SELECT PathId, TabletId, Kind - FROM `/Root/olapStore/.sys/store_primary_index_stats` - GROUP BY PathId, TabletId, Kind - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - // 3 Tables with 3 Shards each and 2 KindId-s of stats - UNIT_ASSERT_VALUES_EQUAL(rows.size(), 3 * 3 * 2); - } - - { - auto selectQuery = TString(R"( - SELECT - count(distinct(PathId)), - count(distinct(Kind)), - count(distinct(TabletId)) - FROM `/Root/olapStore/.sys/store_primary_index_stats` - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("column0")), 3ull); - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("column1")), 2); - UNIT_ASSERT_GE(GetUint64(rows[0].at("column2")), 3ull); - } - - { - auto selectQuery = TString(R"( - SELECT PathId, count(*), sum(Rows), sum(BlobRangeSize), sum(RawBytes) - FROM `/Root/olapStore/.sys/store_primary_index_stats` - GROUP BY PathId - ORDER BY PathId - )"); - - auto rows = ExecuteScanQuery(tableClient, selectQuery); - UNIT_ASSERT_VALUES_EQUAL(rows.size(), 3ull); - for (ui64 pathId = 3, row = 0; pathId <= 5; ++pathId, ++row) { - UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[row].at("PathId")), pathId); - } - } - } - Y_UNIT_TEST(PredicatePushdownWithParameters) { constexpr bool logQueries = true; auto settings = TKikimrSettings() @@ -5074,195 +2220,6 @@ Y_UNIT_TEST_SUITE(KqpOlap) { UNIT_ASSERT_C(falsePositive.empty() && falseNegative.empty(), b); } - Y_UNIT_TEST(NoErrorOnLegacyPragma) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - PRAGMA Kikimr.KqpPushOlapProcess = "false"; - SELECT id, resource_id FROM `/Root/tableWithNulls` - WHERE - level = 5; - )") - .SetExpectedReply("[[5;#]]") - .AddExpectedPlanOptions("KqpOlapFilter"); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(BlocksRead) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - PRAGMA UseBlocks; - PRAGMA Kikimr.OptEnableOlapPushdown = "false"; - - SELECT - id, resource_id - FROM `/Root/tableWithNulls` - WHERE - level = 5; - )") - .SetExpectedReply("[[5;#]]"); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Blocks_NoAggPushdown) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - PRAGMA UseBlocks; - SELECT - COUNT(DISTINCT id) - FROM `/Root/tableWithNulls`; - )") - .SetExpectedReply("[[10u]]"); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Json_GetValue) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT id, JSON_VALUE(jsonval, "$.col1"), JSON_VALUE(jsondoc, "$.col1") FROM `/Root/tableWithNulls` - WHERE JSON_VALUE(jsonval, "$.col1") = "val1" AND id = 1; - )") -#if SSA_RUNTIME_VERSION >= 3U - .AddExpectedPlanOptions("KqpOlapJsonValue") -#else - .AddExpectedPlanOptions("Udf") -#endif - .SetExpectedReply(R"([[1;["val1"];#]])"); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Json_GetValue_ToString) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT id, JSON_VALUE(jsonval, "$.col1" RETURNING String), JSON_VALUE(jsondoc, "$.col1") FROM `/Root/tableWithNulls` - WHERE JSON_VALUE(jsonval, "$.col1" RETURNING String) = "val1" AND id = 1; - )") -#if SSA_RUNTIME_VERSION >= 3U - .AddExpectedPlanOptions("KqpOlapJsonValue") -#else - .AddExpectedPlanOptions("Udf") -#endif - .SetExpectedReply(R"([[1;["val1"];#]])"); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Json_GetValue_ToInt) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT id, JSON_VALUE(jsonval, "$.obj.obj_col2_int" RETURNING Int), JSON_VALUE(jsondoc, "$.obj.obj_col2_int" RETURNING Int) FROM `/Root/tableWithNulls` - WHERE JSON_VALUE(jsonval, "$.obj.obj_col2_int" RETURNING Int) = 16 AND id = 1; - )") -#if SSA_RUNTIME_VERSION >= 3U - .AddExpectedPlanOptions("KqpOlapJsonValue") -#else - .AddExpectedPlanOptions("Udf") -#endif - .SetExpectedReply(R"([[1;[16];#]])"); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(JsonDoc_GetValue) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT id, JSON_VALUE(jsonval, "$.col1"), JSON_VALUE(jsondoc, "$.col1") FROM `/Root/tableWithNulls` - WHERE JSON_VALUE(jsondoc, "$.col1") = "val1" AND id = 6; - )") -#if SSA_RUNTIME_VERSION >= 3U - .AddExpectedPlanOptions("KqpOlapJsonValue") -#else - .AddExpectedPlanOptions("Udf") -#endif - .SetExpectedReply(R"([[6;#;["val1"]]])"); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(JsonDoc_GetValue_ToString) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT id, JSON_VALUE(jsonval, "$.col1"), JSON_VALUE(jsondoc, "$.col1" RETURNING String) FROM `/Root/tableWithNulls` - WHERE JSON_VALUE(jsondoc, "$.col1" RETURNING String) = "val1" AND id = 6; - )") -#if SSA_RUNTIME_VERSION >= 3U - .AddExpectedPlanOptions("KqpOlapJsonValue") -#else - .AddExpectedPlanOptions("Udf") -#endif - .SetExpectedReply(R"([[6;#;["val1"]]])"); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(JsonDoc_GetValue_ToInt) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT id, JSON_VALUE(jsonval, "$.obj.obj_col2_int"), JSON_VALUE(jsondoc, "$.obj.obj_col2_int" RETURNING Int) FROM `/Root/tableWithNulls` - WHERE JSON_VALUE(jsondoc, "$.obj.obj_col2_int" RETURNING Int) = 16 AND id = 6; - )") -#if SSA_RUNTIME_VERSION >= 3U - .AddExpectedPlanOptions("KqpOlapJsonValue") -#else - .AddExpectedPlanOptions("Udf") -#endif - .SetExpectedReply(R"([[6;#;[16]]])"); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Json_Exists) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT id, JSON_EXISTS(jsonval, "$.col1"), JSON_EXISTS(jsondoc, "$.col1") FROM `/Root/tableWithNulls` - WHERE - JSON_EXISTS(jsonval, "$.col1") AND level = 1; - )") -#if SSA_RUNTIME_VERSION >= 3U - .AddExpectedPlanOptions("KqpOlapJsonExists") -#else - .AddExpectedPlanOptions("Udf") -#endif - .SetExpectedReply(R"([[1;[%true];#]])"); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(JsonDoc_Exists) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT id, JSON_EXISTS(jsonval, "$.col1"), JSON_EXISTS(jsondoc, "$.col1") FROM `/Root/tableWithNulls` - WHERE - JSON_EXISTS(jsondoc, "$.col1") AND id = 6; - )") -#if SSA_RUNTIME_VERSION >= 3U - .AddExpectedPlanOptions("KqpOlapJsonExists") -#else - .AddExpectedPlanOptions("Udf") -#endif - .SetExpectedReply(R"([[6;#;[%true]]])"); - - TestTableWithNulls({ testCase }); - } - - Y_UNIT_TEST(Json_Query) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT id, JSON_QUERY(jsonval, "$.col1" WITH UNCONDITIONAL WRAPPER), - JSON_QUERY(jsondoc, "$.col1" WITH UNCONDITIONAL WRAPPER) - FROM `/Root/tableWithNulls` - WHERE - level = 1; - )") - .AddExpectedPlanOptions("Udf") - .SetExpectedReply(R"([[1;["[\"val1\"]"];#]])"); - - TestTableWithNulls({ testCase }); - } - Y_UNIT_TEST(Olap_InsertFailsOnDataQuery) { auto settings = TKikimrSettings() .SetWithSampleTables(false) @@ -5400,7 +2357,7 @@ Y_UNIT_TEST_SUITE(KqpOlap) { UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString()); TString output = FormatResultSetYson(result.GetResultSet(0)); Cout << output << Endl; - CompareYson(output, R"([[1000001u;["1"];["uid_1000001"];[1]]])"); + CompareYson(output, R"([[1000001u;["1"];"uid_1000001";[1]]])"); } Y_UNIT_TEST(OlapRead_GenericQuery) { @@ -5505,7 +2462,7 @@ Y_UNIT_TEST_SUITE(KqpOlap) { tableInserter.AddRow().Add(2).Add("test_res_2").Add("val2").AddNull(); testHelper.BulkUpsert(testTable, tableInserter); } - while (csController->GetIndexations().Val() == 0) { + while (csController->GetInsertFinishedCounter().Val() == 0) { Cout << "Wait indexation..." << Endl; Sleep(TDuration::Seconds(2)); } @@ -5531,7 +2488,7 @@ Y_UNIT_TEST_SUITE(KqpOlap) { tableInserter.AddRow().Add(1).Add(10); testHelper.BulkUpsert(testTable, tableInserter); } - while (csController->GetIndexations().Val() < 1) { + while (csController->GetInsertFinishedCounter().Val() < 1) { Cout << "Wait indexation..." << Endl; Sleep(TDuration::Seconds(2)); } @@ -5542,7 +2499,7 @@ Y_UNIT_TEST_SUITE(KqpOlap) { testHelper.BulkUpsert(testTable, tableInserter); } testHelper.ReadData("SELECT value FROM `/Root/ColumnTableTest` WHERE id = 1", "[[110]]"); - while (csController->GetIndexations().Val() < 2) { + while (csController->GetInsertFinishedCounter().Val() < 2) { Cout << "Wait indexation..." << Endl; Sleep(TDuration::Seconds(2)); } @@ -6062,53 +3019,6 @@ Y_UNIT_TEST_SUITE(KqpOlap) { } } - Y_UNIT_TEST(BlockGenericWithDistinct) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - COUNT(DISTINCT id) - FROM `/Root/tableWithNulls` - WHERE level = 5 AND Cast(id AS String) = "5"; - )") - .AddExpectedPlanOptions("KqpBlockReadOlapTableRanges") - .AddExpectedPlanOptions("WideFromBlocks") - .SetExpectedReply("[[1u]]"); - TestTableWithNulls({ testCase }, /* generic */ true); - } - - Y_UNIT_TEST(BlockGenericSimpleAggregation) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - level, COUNT(*), SUM(id) - FROM `/Root/tableWithNulls` - WHERE level = 5 - GROUP BY level - ORDER BY level; - )") - .AddExpectedPlanOptions("KqpBlockReadOlapTableRanges") - .AddExpectedPlanOptions("WideFromBlocks") - .SetExpectedReply(R"([[[5];1u;5]])"); - - TestTableWithNulls({ testCase }, /* generic */ true); - } - - Y_UNIT_TEST(BlockGenericSelectAll) { - TAggregationTestCase testCase; - testCase.SetQuery(R"( - SELECT - id, resource_id, level - FROM `/Root/tableWithNulls` - WHERE level != 5 OR level IS NULL - ORDER BY id, resource_id, level; - )") - .AddExpectedPlanOptions("KqpBlockReadOlapTableRanges") - .AddExpectedPlanOptions("WideFromBlocks") - .SetExpectedReply(R"([[1;#;[1]];[2;#;[2]];[3;#;[3]];[4;#;[4]];[6;["6"];#];[7;["7"];#];[8;["8"];#];[9;["9"];#];[10;["10"];#]])"); - - TestTableWithNulls({ testCase }, /* generic */ true); - } } -} // namespace NKqp -} // namespace NKikimr +} diff --git a/ydb/core/kqp/ut/olap/statistics_ut.cpp b/ydb/core/kqp/ut/olap/statistics_ut.cpp new file mode 100644 index 000000000000..d79a07f9bc3b --- /dev/null +++ b/ydb/core/kqp/ut/olap/statistics_ut.cpp @@ -0,0 +1,74 @@ +#include "helpers/typed_local.h" +#include + +namespace NKikimr::NKqp { + +Y_UNIT_TEST_SUITE(KqpOlapStatistics) { + Y_UNIT_TEST(StatsUsage) { + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + { + auto settings = TKikimrSettings().SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + Tests::NCommon::TLoggerInit(kikimr).Initialize(); + TTypedLocalHelper helper("Utf8", kikimr); + helper.CreateTestOlapTable(); + auto tableClient = kikimr.GetTableClient(); + { + auto alterQuery = TStringBuilder() << "ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_STAT, TYPE=max, NAME=max_pk_int, FEATURES=`{\"column_name\": \"pk_int\"}`);"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + { + auto alterQuery = TStringBuilder() << "ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_STAT, TYPE=max, NAME=max_field, FEATURES=`{\"column_name\": \"field\"}`);"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_UNEQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + { + auto alterQuery = TStringBuilder() << "ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_STAT, TYPE=max, NAME=max_pk_int, FEATURES=`{\"column_name\": \"pk_int\"}`);"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_UNEQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + { + auto alterQuery = TStringBuilder() << "ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=DROP_STAT, NAME=max_pk_int);"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + } + } + + Y_UNIT_TEST(StatsUsageWithTTL) { + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + { + auto settings = TKikimrSettings().SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + Tests::NCommon::TLoggerInit(kikimr).Initialize(); + TTypedLocalHelper helper("Utf8", kikimr); + helper.CreateTestOlapTable(); + auto tableClient = kikimr.GetTableClient(); + { + auto alterQuery = TStringBuilder() << "ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_STAT, TYPE=max, NAME=max_ts, FEATURES=`{\"column_name\": \"ts\"}`);"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + { + auto alterQuery = TStringBuilder() << "ALTER TABLE `/Root/olapStore/olapTable` SET (TTL = Interval(\"P1D\") ON ts);"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + { + auto alterQuery = TStringBuilder() << "ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=DROP_STAT, NAME=max_ts);"; + auto session = tableClient.CreateSession().GetValueSync().GetSession(); + auto alterResult = session.ExecuteSchemeQuery(alterQuery).GetValueSync(); + UNIT_ASSERT_VALUES_UNEQUAL_C(alterResult.GetStatus(), NYdb::EStatus::SUCCESS, alterResult.GetIssues().ToString()); + } + } + } +} + +} diff --git a/ydb/core/kqp/ut/olap/sys_view_ut.cpp b/ydb/core/kqp/ut/olap/sys_view_ut.cpp new file mode 100644 index 000000000000..866563f088f6 --- /dev/null +++ b/ydb/core/kqp/ut/olap/sys_view_ut.cpp @@ -0,0 +1,722 @@ +#include "helpers/local.h" +#include "helpers/query_executor.h" +#include "helpers/typed_local.h" +#include "helpers/writer.h" +#include "helpers/get_value.h" + +#include +#include + +namespace NKikimr::NKqp { + +Y_UNIT_TEST_SUITE(KqpOlapSysView) { + Y_UNIT_TEST(StatsSysView) { + auto settings = TKikimrSettings() + .SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + static ui32 numKinds = 2; + + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + TLocalHelper(kikimr).CreateTestOlapTable(); + for (ui64 i = 0; i < 100; ++i) { + WriteTestData(kikimr, "/Root/olapStore/olapTable", 0, 1000000 + i * 10000, 1000); + } + + auto tableClient = kikimr.GetTableClient(); + auto selectQuery = TString(R"( + SELECT PathId, Kind, TabletId, Sum(Rows) as Rows + FROM `/Root/olapStore/.sys/store_primary_index_stats` + GROUP BY PathId, Kind, TabletId + ORDER BY TabletId, Kind, PathId + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + + UNIT_ASSERT_VALUES_EQUAL(rows.size(), numKinds*3); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 3ull); + UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[0].at("Kind")), "INSERTED"); + UNIT_ASSERT_GE(GetUint64(rows[0].at("TabletId")), 72075186224037888ull); + UNIT_ASSERT_GE(GetUint64(rows[2].at("TabletId")), 72075186224037889ull); + UNIT_ASSERT_GE(GetUint64(rows[4].at("TabletId")), 72075186224037890ull); + UNIT_ASSERT_GE(GetUint64(rows[1].at("TabletId")), GetUint64(rows[0].at("TabletId"))); + UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[2].at("Kind")), "INSERTED"); + UNIT_ASSERT_GE(GetUint64(rows[2].at("TabletId")), GetUint64(rows[1].at("TabletId"))); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[3].at("PathId")), 3ull); + UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[3].at("Kind")), "SPLIT_COMPACTED"); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[3].at("TabletId")), GetUint64(rows[2].at("TabletId"))); + UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[4].at("Kind")), "INSERTED"); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[4].at("TabletId")), GetUint64(rows[5].at("TabletId"))); + UNIT_ASSERT_GE( + GetUint64(rows[0].at("Rows")) + GetUint64(rows[1].at("Rows")) + GetUint64(rows[2].at("Rows")) + + GetUint64(rows[3].at("Rows")) + GetUint64(rows[4].at("Rows")) + GetUint64(rows[5].at("Rows")), + 0.3*0.9*100*1000); // >= 90% of 100K inserted rows + } + + Y_UNIT_TEST(StatsSysViewTable) { + auto settings = TKikimrSettings() + .SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + static ui32 numKinds = 5; + + TLocalHelper(kikimr).CreateTestOlapTable("olapTable_1"); + TLocalHelper(kikimr).CreateTestOlapTable("olapTable_2"); + for (ui64 i = 0; i < 10; ++i) { + WriteTestData(kikimr, "/Root/olapStore/olapTable_1", 0, 1000000 + i*10000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable_2", 0, 1000000 + i*10000, 2000); + } + + auto tableClient = kikimr.GetTableClient(); + { + auto selectQuery = TString(R"( + SELECT PathId, Kind, TabletId + FROM `/Root/olapStore/olapTable_1/.sys/primary_index_stats` + GROUP BY PathId, TabletId, Kind + ORDER BY PathId, TabletId, Kind + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + + UNIT_ASSERT_GT(rows.size(), 1*numKinds); + UNIT_ASSERT_LE(rows.size(), 3*numKinds); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows.front().at("PathId")), 3ull); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows.back().at("PathId")), 3ull); + } + { + auto selectQuery = TString(R"( + SELECT PathId, Kind, TabletId + FROM `/Root/olapStore/olapTable_2/.sys/primary_index_stats` + GROUP BY PathId, TabletId, Kind + ORDER BY PathId, TabletId, Kind + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + + UNIT_ASSERT_GT(rows.size(), 1*numKinds); + UNIT_ASSERT_LE(rows.size(), 3*numKinds); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows.front().at("PathId")), 4ull); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows.back().at("PathId")), 4ull); + } + { + auto selectQuery = TString(R"( + SELECT * + FROM `/Root/olapStore/olapTable_1/.sys/primary_index_stats` + WHERE + PathId > UInt64("3") + ORDER BY PathId, Kind, TabletId + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + + UNIT_ASSERT_VALUES_EQUAL(rows.size(), 0); + } + } + + Y_UNIT_TEST(StatsSysViewEnumStringBytes) { + ui64 rawBytesPK1; + ui64 bytesPK1; + { + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + csController->SetPeriodicWakeupActivationPeriod(TDuration::Seconds(1)); + auto settings = TKikimrSettings() + .SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + Tests::NCommon::TLoggerInit(kikimr).Initialize(); + TTypedLocalHelper helper("", kikimr, "olapTable", "olapStore12"); + helper.CreateTestOlapTable(); + helper.FillPKOnly(0, 800000); + helper.GetVolumes(rawBytesPK1, bytesPK1, false); + } + + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + ui64 rawBytesUnpack1PK = 0; + ui64 bytesUnpack1PK = 0; + ui64 rawBytesPackAndUnpack2PK; + ui64 bytesPackAndUnpack2PK; + const ui32 rowsCount = 800000; + const ui32 groupsCount = 512; + { + auto settings = TKikimrSettings() + .SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + Tests::NCommon::TLoggerInit(kikimr).Initialize(); + TTypedLocalHelper helper("Utf8", kikimr); + helper.CreateTestOlapTable(); + NArrow::NConstruction::TStringPoolFiller sPool(groupsCount, 52); + helper.FillTable(sPool, 0, rowsCount); + helper.PrintCount(); + { + auto d = helper.GetDistribution(); + Y_ABORT_UNLESS(d.GetCount() == rowsCount); + Y_ABORT_UNLESS(d.GetGroupsCount() == groupsCount); + Y_ABORT_UNLESS(d.GetMaxCount() - d.GetMinCount() <= 1); + } + helper.GetVolumes(rawBytesUnpack1PK, bytesUnpack1PK, false); + Sleep(TDuration::Seconds(5)); + auto tableClient = kikimr.GetTableClient(); + helper.ExecuteSchemeQuery(TStringBuilder() << "ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=ALTER_COLUMN, NAME=field, `ENCODING.DICTIONARY.ENABLED`=`true`);"); + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=ALTER_COLUMN, NAME=field1, `ENCODING.DICTIONARY.ENABLED`=`true`);", NYdb::EStatus::SCHEME_ERROR); + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=ALTER_COLUMN, NAME=field, `ENCODING.DICTIONARY.ENABLED1`=`true`);", NYdb::EStatus::GENERIC_ERROR); + Sleep(TDuration::Seconds(5)); + helper.FillTable(sPool, 1, rowsCount); + Sleep(TDuration::Seconds(5)); + { + helper.GetVolumes(rawBytesPackAndUnpack2PK, bytesPackAndUnpack2PK, false); + helper.PrintCount(); + { + auto d = helper.GetDistribution(); + Cerr << d.DebugString() << Endl; + Y_ABORT_UNLESS(d.GetCount() == 2 * rowsCount); + Y_ABORT_UNLESS(d.GetGroupsCount() == groupsCount); + Y_ABORT_UNLESS(d.GetMaxCount() - d.GetMinCount() <= 2); + } + } + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=ALTER_COLUMN, NAME=field, `SERIALIZER.CLASS_NAME`=`ARROW_SERIALIZER`, `COMPRESSION.TYPE`=`zstd`);"); + } + const ui64 rawBytesUnpack = rawBytesUnpack1PK - rawBytesPK1; + const ui64 bytesUnpack = bytesUnpack1PK - bytesPK1; + const ui64 rawBytesPack = rawBytesPackAndUnpack2PK - rawBytesUnpack1PK - rawBytesPK1; + const ui64 bytesPack = bytesPackAndUnpack2PK - bytesUnpack1PK - bytesPK1; + TStringBuilder result; + result << "unpacked data: " << rawBytesUnpack << " / " << bytesUnpack << Endl; + result << "packed data: " << rawBytesPack << " / " << bytesPack << Endl; + result << "frq_diff: " << 1.0 * bytesPack / bytesUnpack << Endl; + result << "frq_compression: " << 1.0 * bytesPack / rawBytesPack << Endl; + result << "pk_size : " << rawBytesPK1 << " / " << bytesPK1 << Endl; + Cerr << result << Endl; + Y_ABORT_UNLESS(bytesPack / bytesUnpack < 0.1); + } + + Y_UNIT_TEST(StatsSysViewBytesPackActualization) { + ui64 rawBytesPK1; + ui64 bytesPK1; + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + csController->SetPeriodicWakeupActivationPeriod(TDuration::Seconds(1)); + auto settings = TKikimrSettings() + .SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + Tests::NCommon::TLoggerInit(kikimr).Initialize(); + TTypedLocalHelper helper("", kikimr, "olapTable", "olapStore"); + helper.CreateTestOlapTable(); + helper.FillPKOnly(0, 800000); + helper.GetVolumes(rawBytesPK1, bytesPK1, false, {"pk_int"}); + auto tableClient = kikimr.GetTableClient(); + { + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=ALTER_COLUMN, NAME=pk_int, `SERIALIZER.CLASS_NAME`=`ARROW_SERIALIZER`, `COMPRESSION.TYPE`=`zstd`);"); + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_OPTIONS, SCHEME_NEED_ACTUALIZATION=`true`);"); + csController->WaitActualization(TDuration::Seconds(10)); + ui64 rawBytesPK2; + ui64 bytesPK2; + helper.GetVolumes(rawBytesPK2, bytesPK2, false, {"pk_int"}); + AFL_VERIFY(rawBytesPK2 == rawBytesPK1)("pk1", rawBytesPK1)("pk2", rawBytesPK2); + AFL_VERIFY(bytesPK2 < bytesPK1 / 3)("pk1", bytesPK1)("pk2", bytesPK2); + } + { + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=ALTER_COLUMN, NAME=pk_int, `SERIALIZER.CLASS_NAME`=`ARROW_SERIALIZER`, `COMPRESSION.TYPE`=`lz4`);"); + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_OPTIONS, SCHEME_NEED_ACTUALIZATION=`true`);"); + csController->WaitActualization(TDuration::Seconds(10)); + ui64 rawBytesPK2; + ui64 bytesPK2; + helper.GetVolumes(rawBytesPK2, bytesPK2, false, {"pk_int"}); + AFL_VERIFY(rawBytesPK2 == rawBytesPK1)("pk1", rawBytesPK1)("pk2", rawBytesPK2); + AFL_VERIFY(bytesPK2 < bytesPK1 * 1.01 && bytesPK1 < bytesPK2 * 1.01)("pk1", bytesPK1)("pk2", bytesPK2); + } + } + + Y_UNIT_TEST(StatsSysViewBytesColumnActualization) { + ui64 rawBytes1; + ui64 bytes1; + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + csController->SetPeriodicWakeupActivationPeriod(TDuration::Seconds(1)); + auto settings = TKikimrSettings() + .SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + Tests::NCommon::TLoggerInit(kikimr).Initialize(); + TTypedLocalHelper helper("Utf8", kikimr); + helper.CreateTestOlapTable(); + NArrow::NConstruction::TStringPoolFiller sPool(3, 52); + helper.FillTable(sPool, 0, 800000); + helper.GetVolumes(rawBytes1, bytes1, false, {"new_column_ui64"}); + AFL_VERIFY(rawBytes1 == 0); + AFL_VERIFY(bytes1 == 0); + auto tableClient = kikimr.GetTableClient(); + { + helper.ExecuteSchemeQuery("ALTER TABLESTORE `/Root/olapStore` ADD COLUMN new_column_ui64 Uint64;"); + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_OPTIONS, SCHEME_NEED_ACTUALIZATION=`true`);"); + csController->WaitActualization(TDuration::Seconds(10)); + ui64 rawBytes2; + ui64 bytes2; + helper.GetVolumes(rawBytes2, bytes2, false, {"new_column_ui64"}); + AFL_VERIFY(rawBytes2 == 6500041)("real", rawBytes2); + AFL_VERIFY(bytes2 == 45360)("b", bytes2); + } + } + + Y_UNIT_TEST(StatsSysViewBytesDictActualization) { + ui64 rawBytes1; + ui64 bytes1; + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + csController->SetPeriodicWakeupActivationPeriod(TDuration::Seconds(1)); + auto settings = TKikimrSettings() + .SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + Tests::NCommon::TLoggerInit(kikimr).Initialize(); + TTypedLocalHelper helper("Utf8", kikimr); + helper.CreateTestOlapTable(); + NArrow::NConstruction::TStringPoolFiller sPool(3, 52); + helper.FillTable(sPool, 0, 800000); + helper.GetVolumes(rawBytes1, bytes1, false, {"field"}); + auto tableClient = kikimr.GetTableClient(); + { + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=ALTER_COLUMN, NAME=field, `ENCODING.DICTIONARY.ENABLED`=`true`);"); + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_OPTIONS, SCHEME_NEED_ACTUALIZATION=`true`);"); + csController->WaitActualization(TDuration::Seconds(10)); + ui64 rawBytes2; + ui64 bytes2; + helper.GetVolumes(rawBytes2, bytes2, false, {"field"}); + AFL_VERIFY(rawBytes2 == rawBytes1)("f1", rawBytes1)("f2", rawBytes2); + AFL_VERIFY(bytes2 < bytes1 * 0.5)("f1", bytes1)("f2", bytes2); + } + { + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=ALTER_COLUMN, NAME=field, `ENCODING.DICTIONARY.ENABLED`=`false`);"); + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_OPTIONS, SCHEME_NEED_ACTUALIZATION=`true`);"); + csController->WaitActualization(TDuration::Seconds(10)); + ui64 rawBytes2; + ui64 bytes2; + helper.GetVolumes(rawBytes2, bytes2, false, {"field"}); + AFL_VERIFY(rawBytes2 == rawBytes1)("f1", rawBytes1)("f2", rawBytes2); + AFL_VERIFY(bytes2 < bytes1 * 1.01 && bytes1 < bytes2 * 1.01)("f1", bytes1)("f2", bytes2); + } + } + + Y_UNIT_TEST(StatsSysViewBytesDictStatActualization) { + ui64 rawBytes1; + ui64 bytes1; + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + csController->SetPeriodicWakeupActivationPeriod(TDuration::Seconds(1)); + auto settings = TKikimrSettings().SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + Tests::NCommon::TLoggerInit(kikimr).Initialize(); + TTypedLocalHelper helper("Utf8", kikimr); + helper.CreateTestOlapTable(); + NArrow::NConstruction::TStringPoolFiller sPool(3, 52); + helper.FillTable(sPool, 0, 800000); + helper.GetVolumes(rawBytes1, bytes1, false, {"field"}); + auto tableClient = kikimr.GetTableClient(); + { + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=ALTER_COLUMN, NAME=field, `ENCODING.DICTIONARY.ENABLED`=`true`);"); + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_STAT, NAME=field_var, TYPE=variability, FEATURES=`{\"column_name\" : \"field\"}`);"); + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_STAT, NAME=pk_int_max, TYPE=max, FEATURES=`{\"column_name\" : \"pk_int\"}`);"); + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_OPTIONS, SCHEME_NEED_ACTUALIZATION=`true`);"); + csController->WaitActualization(TDuration::Seconds(10)); + ui64 rawBytes2; + ui64 bytes2; + helper.GetVolumes(rawBytes2, bytes2, false, {"field"}); + AFL_VERIFY(rawBytes2 == rawBytes1)("f1", rawBytes1)("f2", rawBytes2); + AFL_VERIFY(bytes2 < bytes1 * 0.5)("f1", bytes1)("f2", bytes2); + std::vector stats; + helper.GetStats(stats, true); + for (auto&& i : stats) { + AFL_VERIFY(i.ScalarsSize() == 2); + AFL_VERIFY(i.GetScalars()[0].GetUint32() == 3); + } + } + { + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=DROP_STAT, NAME=pk_int_max);"); + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_OPTIONS, SCHEME_NEED_ACTUALIZATION=`true`);"); + csController->WaitActualization(TDuration::Seconds(10)); + std::vector stats; + helper.GetStats(stats, true); + for (auto&& i : stats) { + AFL_VERIFY(i.ScalarsSize() == 1); + AFL_VERIFY(i.GetScalars()[0].GetUint32() == 3); + } + } + { + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_STAT, NAME=pk_int_max, TYPE=max, FEATURES=`{\"column_name\" : \"pk_int\"}`);"); + helper.ExecuteSchemeQuery("ALTER OBJECT `/Root/olapStore` (TYPE TABLESTORE) SET (ACTION=UPSERT_OPTIONS, SCHEME_NEED_ACTUALIZATION=`true`);"); + csController->WaitActualization(TDuration::Seconds(10)); + std::vector stats; + helper.GetStats(stats, true); + for (auto&& i : stats) { + AFL_VERIFY(i.ScalarsSize() == 2); + AFL_VERIFY(i.GetScalars()[0].GetUint32() == 3); + } + } + } + + Y_UNIT_TEST(StatsSysViewColumns) { + auto settings = TKikimrSettings().SetWithSampleTables(false); + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + TKikimrRunner kikimr(settings); + + TLocalHelper(kikimr.GetTestServer()).CreateTestOlapTable(); + for (ui64 i = 0; i < 10; ++i) { + WriteTestData(kikimr, "/Root/olapStore/olapTable", 0, 1000000 + i*10000, 2000); + } + + auto tableClient = kikimr.GetTableClient(); + + { + auto selectQuery = TString(R"( + SELECT TabletId, PathId, Kind + FROM `/Root/olapStore/.sys/store_primary_index_stats` + ORDER BY PathId, Kind, TabletId + LIMIT 4; + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + + UNIT_ASSERT_VALUES_EQUAL(rows.size(), 4); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 3ull); + UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[0].at("Kind")), "INSERTED"); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[3].at("PathId")), 3ull); + UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[3].at("Kind")), "INSERTED"); + } + { + auto selectQuery = TString(R"( + SELECT SUM(BlobRangeSize) as Bytes, SUM(Rows) as Rows, PathId, TabletId + FROM `/Root/olapStore/.sys/store_primary_index_stats` + GROUP BY PathId, TabletId + ORDER BY Bytes + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + + UNIT_ASSERT_VALUES_EQUAL(rows.size(), 3); + UNIT_ASSERT_LE(GetUint64(rows[0].at("Bytes")), GetUint64(rows[1].at("Bytes"))); + } + { + auto selectQuery = TString(R"( + SELECT Sum(Rows) as Rows, Kind, Sum(RawBytes) as RawBytes, Sum(Rows) as Rows2, Sum(Rows) as Rows3, PathId + FROM `/Root/olapStore/.sys/store_primary_index_stats` + GROUP BY Kind, PathId + ORDER BY PathId, Kind, Rows3 + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + UNIT_ASSERT_VALUES_EQUAL(rows.size(), 2); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("Rows2")), GetUint64(rows[0].at("Rows3"))); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[1].at("Rows")), GetUint64(rows[1].at("Rows3"))); + } + } + + Y_UNIT_TEST(StatsSysViewRanges) { + auto settings = TKikimrSettings().SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + csController->SetCompactionControl(NYDBTest::EOptimizerCompactionWeightControl::Disable); + Tests::NCommon::TLoggerInit(kikimr).Initialize(); + + TLocalHelper(kikimr).CreateTestOlapTable("olapTable_1"); + TLocalHelper(kikimr).CreateTestOlapTable("olapTable_2"); + TLocalHelper(kikimr).CreateTestOlapTable("olapTable_3"); + + for (ui64 i = 0; i < 10; ++i) { + WriteTestData(kikimr, "/Root/olapStore/olapTable_1", 0, 1000000 + i*10000, 2000); + WriteTestData(kikimr, "/Root/olapStore/olapTable_2", 0, 1000000 + i*10000, 3000); + WriteTestData(kikimr, "/Root/olapStore/olapTable_3", 0, 1000000 + i*10000, 5000); + } + + auto tableClient = kikimr.GetTableClient(); + + { + auto selectQuery = TString(R"( + SELECT * + FROM `/Root/olapStore/.sys/store_primary_index_stats` + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + } + + { + auto selectQuery = TString(R"( + SELECT PathId, Kind, TabletId + FROM `/Root/olapStore/.sys/store_primary_index_stats` + WHERE + PathId == UInt64("3") AND Activity = true + GROUP BY TabletId, PathId, Kind + ORDER BY TabletId, Kind + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + + UNIT_ASSERT_VALUES_EQUAL(rows.size(), 3); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 3ull); + UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[0].at("Kind")), "INSERTED"); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[1].at("PathId")), 3ull); + UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[2].at("Kind")), "INSERTED"); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[2].at("PathId")), 3ull); + UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[1].at("Kind")), "INSERTED"); + } + + { + auto selectQuery = TString(R"( + SELECT PathId, Kind, TabletId + FROM `/Root/olapStore/.sys/store_primary_index_stats` + GROUP BY PathId, Kind, TabletId + ORDER BY PathId DESC, Kind DESC, TabletId DESC + ; + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + + ui32 numExpected = 3*3; + UNIT_ASSERT_VALUES_EQUAL(rows.size(), numExpected); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 5ull); + UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[0].at("Kind")), "INSERTED"); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[numExpected-1].at("PathId")), 3ull); + UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[numExpected-1].at("Kind")), "INSERTED"); + } + + { + auto selectQuery = TString(R"( + SELECT PathId, Kind, TabletId + FROM `/Root/olapStore/.sys/store_primary_index_stats` + WHERE + PathId > UInt64("0") AND PathId < UInt32("4") + OR PathId > UInt64("4") AND PathId <= UInt64("5") + GROUP BY PathId, Kind, TabletId + ORDER BY + PathId DESC, Kind DESC, TabletId DESC + ; + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + + ui32 numExpected = 2*3; + UNIT_ASSERT_VALUES_EQUAL(rows.size(), numExpected); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 5ull); + UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[0].at("Kind")), "INSERTED"); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[numExpected-1].at("PathId")), 3ull); + UNIT_ASSERT_VALUES_EQUAL(GetUtf8(rows[numExpected-1].at("Kind")), "INSERTED"); + } + } + + Y_UNIT_TEST(StatsSysViewFilter) { + auto settings = TKikimrSettings().SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + + TLocalHelper(kikimr.GetTestServer()).CreateTestOlapTable(); + for (ui64 i = 0; i < 10; ++i) { + WriteTestData(kikimr, "/Root/olapStore/olapTable", 0, 1000000 + i*10000, 2000); + } + + auto tableClient = kikimr.GetTableClient(); + + { + auto selectQuery = TString(R"( + SELECT PathId, Kind, TabletId, Sum(BlobRangeSize) as Bytes + FROM `/Root/olapStore/.sys/store_primary_index_stats` + GROUP BY PathId, Kind, TabletId + ORDER BY PathId, Kind, TabletId; + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + + UNIT_ASSERT_GE(rows.size(), 3); + } + + { + auto selectQuery = TString(R"( + SELECT PathId, Kind, TabletId, Sum(BlobRangeSize) as Bytes + FROM `/Root/olapStore/.sys/store_primary_index_stats` + GROUP BY PathId, Kind, TabletId + ORDER BY PathId, Kind, TabletId; + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + + UNIT_ASSERT_GE(rows.size(), 3); + } + + { + auto selectQuery = TString(R"( + SELECT * + FROM `/Root/olapStore/.sys/store_primary_index_stats` + WHERE Kind == 'EVICTED' + ORDER BY PathId, Kind, TabletId; + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + + UNIT_ASSERT_GE(rows.size(), 0); + } + + { + auto selectQuery = TString(R"( + SELECT PathId, Kind, TabletId + FROM `/Root/olapStore/.sys/store_primary_index_stats` + WHERE Kind IN ('SPLIT_COMPACTED', 'INACTIVE', 'EVICTED') + GROUP BY PathId, Kind, TabletId + ORDER BY PathId, Kind, TabletId; + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + + UNIT_ASSERT_GE(rows.size(), 3); + } + } + + Y_UNIT_TEST(StatsSysViewAggregation) { + auto settings = TKikimrSettings().SetWithSampleTables(false); + TKikimrRunner kikimr(settings); + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + + TLocalHelper(kikimr.GetTestServer()).CreateTestOlapTable("olapTable_1"); + TLocalHelper(kikimr.GetTestServer()).CreateTestOlapTable("olapTable_2"); + TLocalHelper(kikimr.GetTestServer()).CreateTestOlapTable("olapTable_3"); + + for (ui64 i = 0; i < 100; ++i) { + WriteTestData(kikimr, "/Root/olapStore/olapTable_1", 0, 1000000 + i*10000, 1000); + WriteTestData(kikimr, "/Root/olapStore/olapTable_2", 0, 1000000 + i*10000, 2000); + WriteTestData(kikimr, "/Root/olapStore/olapTable_3", 0, 1000000 + i*10000, 3000); + } + + Tests::NCommon::TLoggerInit(kikimr).Initialize(); + + auto tableClient = kikimr.GetTableClient(); + + { + auto selectQuery = TString(R"( + SELECT + SUM(Rows) as rows, + FROM `/Root/olapStore/.sys/store_primary_index_stats` + WHERE + Kind != 'INACTIVE' + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + UNIT_ASSERT_VALUES_EQUAL(rows.size(), 1ull); + } + + { + auto selectQuery = TString(R"( + SELECT + PathId, + SUM(Rows) as rows, + FROM `/Root/olapStore/.sys/store_primary_index_stats` + WHERE + Kind != 'INACTIVE' + GROUP BY + PathId + ORDER BY + PathId + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + UNIT_ASSERT_VALUES_EQUAL(rows.size(), 3ull); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 3); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[1].at("PathId")), 4); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[2].at("PathId")), 5); + } + + { + auto selectQuery = TString(R"( + SELECT + PathId, + SUM(Rows) as rows, + SUM(BlobRangeSize) as bytes, + SUM(RawBytes) as bytes_raw + FROM `/Root/olapStore/.sys/store_primary_index_stats` + WHERE + Kind IN ('INSERTED', 'SPLIT_COMPACTED', 'COMPACTED') + GROUP BY PathId + ORDER BY rows DESC + LIMIT 10 + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + UNIT_ASSERT_VALUES_EQUAL(rows.size(), 3ull); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 5); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[1].at("PathId")), 4); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[2].at("PathId")), 3); + } + + { + auto selectQuery = TString(R"( + SELECT + PathId, + SUM(Rows) as rows, + SUM(BlobRangeSize) as bytes, + SUM(RawBytes) as bytes_raw + FROM `/Root/olapStore/.sys/store_primary_index_stats` + WHERE + PathId == UInt64("3") AND Kind IN ('INSERTED', 'SPLIT_COMPACTED', 'COMPACTED') + GROUP BY PathId + ORDER BY rows DESC + LIMIT 10 + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + UNIT_ASSERT_VALUES_EQUAL(rows.size(), 1ull); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 3); + } + + { + auto selectQuery = TString(R"( + SELECT + PathId, + SUM(Rows) as rows, + SUM(BlobRangeSize) as bytes, + SUM(RawBytes) as bytes_raw + FROM `/Root/olapStore/.sys/store_primary_index_stats` + WHERE + PathId >= UInt64("4") AND Kind IN ('INSERTED', 'SPLIT_COMPACTED', 'COMPACTED') + GROUP BY PathId + ORDER BY rows DESC + LIMIT 10 + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + UNIT_ASSERT_VALUES_EQUAL(rows.size(), 2ull); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("PathId")), 5); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[1].at("PathId")), 4); + } + + { + auto selectQuery = TString(R"( + SELECT PathId, TabletId, Kind + FROM `/Root/olapStore/.sys/store_primary_index_stats` + GROUP BY PathId, TabletId, Kind + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + // 3 Tables with 3 Shards each and 2 KindId-s of stats + UNIT_ASSERT_VALUES_EQUAL(rows.size(), 3 * 3 * 2); + } + + { + auto selectQuery = TString(R"( + SELECT + count(distinct(PathId)), + count(distinct(Kind)), + count(distinct(TabletId)) + FROM `/Root/olapStore/.sys/store_primary_index_stats` + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("column0")), 3ull); + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[0].at("column1")), 2); + UNIT_ASSERT_GE(GetUint64(rows[0].at("column2")), 3ull); + } + + { + auto selectQuery = TString(R"( + SELECT PathId, count(*), sum(Rows), sum(BlobRangeSize), sum(RawBytes) + FROM `/Root/olapStore/.sys/store_primary_index_stats` + GROUP BY PathId + ORDER BY PathId + )"); + + auto rows = ExecuteScanQuery(tableClient, selectQuery); + UNIT_ASSERT_VALUES_EQUAL(rows.size(), 3ull); + for (ui64 pathId = 3, row = 0; pathId <= 5; ++pathId, ++row) { + UNIT_ASSERT_VALUES_EQUAL(GetUint64(rows[row].at("PathId")), pathId); + } + } + } +} + +} // namespace diff --git a/ydb/core/kqp/ut/olap/write_ut.cpp b/ydb/core/kqp/ut/olap/write_ut.cpp new file mode 100644 index 000000000000..42310b02eac9 --- /dev/null +++ b/ydb/core/kqp/ut/olap/write_ut.cpp @@ -0,0 +1,111 @@ +#include "helpers/local.h" +#include "helpers/writer.h" + +#include +#include +#include +#include + +namespace NKikimr::NKqp { + +Y_UNIT_TEST_SUITE(KqpOlapWrite) { + Y_UNIT_TEST(TierDraftsGC) { + auto csController = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard(); + csController->SetIndexWriteControllerEnabled(false); + csController->SetPeriodicWakeupActivationPeriod(TDuration::Seconds(1)); + Singleton()->ResetWriteCounters(); + + auto settings = TKikimrSettings() + .SetWithSampleTables(false) + .SetForceColumnTablesCompositeMarks(true); + TKikimrRunner kikimr(settings); + TLocalHelper(kikimr).CreateTestOlapTable(); + Tests::NCommon::TLoggerInit(kikimr).SetComponents({NKikimrServices::TX_COLUMNSHARD}, "CS").SetPriority(NActors::NLog::PRI_DEBUG).Initialize(); + auto tableClient = kikimr.GetTableClient(); + + { + WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); + } + while (csController->GetInsertStartedCounter().Val() == 0) { + Cout << "Wait indexation..." << Endl; + Sleep(TDuration::Seconds(2)); + } + while (!Singleton()->GetWritesCount() || !csController->GetIndexWriteControllerBrokeCount().Val()) { + Cout << "Wait errors on write... " << Singleton()->GetWritesCount() << "/" << csController->GetIndexWriteControllerBrokeCount().Val() << Endl; + Sleep(TDuration::Seconds(2)); + } + csController->DisableBackground(NKikimr::NYDBTest::ICSController::EBackground::Indexation); + csController->DisableBackground(NKikimr::NYDBTest::ICSController::EBackground::Compaction); + const auto startInstant = TMonotonic::Now(); + while (Singleton()->GetSize() && TMonotonic::Now() - startInstant < TDuration::Seconds(200)) { + Cerr << "Waiting empty... " << Singleton()->GetSize() << Endl; + Sleep(TDuration::Seconds(2)); + } + + AFL_VERIFY(!Singleton()->GetSize()); + } + + Y_UNIT_TEST(TierDraftsGCWithRestart) { + auto csController = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard(); + csController->SetIndexWriteControllerEnabled(false); + csController->SetPeriodicWakeupActivationPeriod(TDuration::Seconds(1000)); + csController->DisableBackground(NKikimr::NYDBTest::ICSController::EBackground::GC); + Singleton()->ResetWriteCounters(); + + auto settings = TKikimrSettings() + .SetWithSampleTables(false) + .SetForceColumnTablesCompositeMarks(true); + TKikimrRunner kikimr(settings); + TLocalHelper(kikimr).CreateTestOlapTable(); + Tests::NCommon::TLoggerInit(kikimr).SetComponents({NKikimrServices::TX_COLUMNSHARD}, "CS").SetPriority(NActors::NLog::PRI_DEBUG).Initialize(); + auto tableClient = kikimr.GetTableClient(); + + { + WriteTestData(kikimr, "/Root/olapStore/olapTable", 30000, 1000000, 11000); + } + while (csController->GetInsertStartedCounter().Val() == 0) { + Cout << "Wait indexation..." << Endl; + Sleep(TDuration::Seconds(2)); + } + while (Singleton()->GetWritesCount() < 20 || !csController->GetIndexWriteControllerBrokeCount().Val()) { + Cout << "Wait errors on write... " << Singleton()->GetWritesCount() << "/" << csController->GetIndexWriteControllerBrokeCount().Val() << Endl; + Sleep(TDuration::Seconds(2)); + } + csController->DisableBackground(NKikimr::NYDBTest::ICSController::EBackground::Indexation); + csController->DisableBackground(NKikimr::NYDBTest::ICSController::EBackground::Compaction); + AFL_VERIFY(Singleton()->GetSize()); + { + const auto startInstant = TMonotonic::Now(); + AFL_VERIFY(Singleton()->GetDeletesCount() == 0)("count", Singleton()->GetDeletesCount()); + while (Singleton()->GetSize() && TMonotonic::Now() - startInstant < TDuration::Seconds(200)) { + for (auto&& i : csController->GetShardActualIds()) { + kikimr.GetTestServer().GetRuntime()->Send(MakePipePeNodeCacheID(false), NActors::TActorId(), new TEvPipeCache::TEvForward( + new TEvents::TEvPoisonPill(), i, false)); + } + csController->EnableBackground(NKikimr::NYDBTest::ICSController::EBackground::GC); + Cerr << "Waiting empty... " << Singleton()->GetSize() << Endl; + Sleep(TDuration::Seconds(2)); + } + } + + { + const auto startInstant = TMonotonic::Now(); + while (TMonotonic::Now() - startInstant < TDuration::Seconds(10)) { + for (auto&& i : csController->GetShardActualIds()) { + kikimr.GetTestServer().GetRuntime()->Send(MakePipePeNodeCacheID(false), NActors::TActorId(), new TEvPipeCache::TEvForward( + new TEvents::TEvPoisonPill(), i, false)); + } + Cerr << "Waiting empty... " << Singleton()->GetWritesCount() << "/" << Singleton()->GetDeletesCount() << Endl; + Sleep(TDuration::MilliSeconds(500)); + } + } + + AFL_VERIFY(!Singleton()->GetSize()); + const auto writesCount = Singleton()->GetWritesCount(); + const auto deletesCount = Singleton()->GetDeletesCount(); + AFL_VERIFY(deletesCount <= writesCount + 1)("writes", writesCount)("deletes", deletesCount); + } + +} + +} // namespace diff --git a/ydb/core/kqp/ut/olap/ya.make b/ydb/core/kqp/ut/olap/ya.make index 8dfe183405bd..f359312ebdbb 100644 --- a/ydb/core/kqp/ut/olap/ya.make +++ b/ydb/core/kqp/ut/olap/ya.make @@ -14,7 +14,14 @@ ENDIF() SRCS( kqp_olap_stats_ut.cpp - kqp_olap_ut.cpp + GLOBAL kqp_olap_ut.cpp + sys_view_ut.cpp + indexes_ut.cpp + GLOBAL blobs_sharing_ut.cpp + statistics_ut.cpp + clickbench_ut.cpp + aggregations_ut.cpp + write_ut.cpp ) PEERDIR( @@ -22,6 +29,7 @@ PEERDIR( ydb/core/kqp/ut/common ydb/library/yql/sql/pg_dummy ydb/core/tx/columnshard/hooks/testing + ydb/core/kqp/ut/olap/helpers ydb/core/tx/datashard/ut_common ) diff --git a/ydb/core/kqp/ut/opt/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/opt/CMakeLists.darwin-arm64.txt index 60a0c09c4b5e..7eb8118d1584 100644 --- a/ydb/core/kqp/ut/opt/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/opt/CMakeLists.darwin-arm64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-core-kqp-ut-opt PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-opt PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/opt/kqp_agg_ut.cpp @@ -69,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/opt/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/opt/CMakeLists.darwin-x86_64.txt index 91f0546a6aaf..405478081571 100644 --- a/ydb/core/kqp/ut/opt/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/opt/CMakeLists.darwin-x86_64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-core-kqp-ut-opt PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-opt PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/opt/kqp_agg_ut.cpp @@ -70,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/opt/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/opt/CMakeLists.linux-aarch64.txt index f0bda02f2f76..3a898549ca23 100644 --- a/ydb/core/kqp/ut/opt/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/opt/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-core-kqp-ut-opt PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-opt PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/opt/kqp_agg_ut.cpp @@ -73,6 +70,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/opt/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/opt/CMakeLists.linux-x86_64.txt index 714c0b37c88d..ba8624a585d0 100644 --- a/ydb/core/kqp/ut/opt/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/opt/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-core-kqp-ut-opt PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-opt PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/opt/kqp_agg_ut.cpp @@ -74,6 +71,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/opt/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/opt/CMakeLists.windows-x86_64.txt index 7d1c0599fada..7543c9e252b0 100644 --- a/ydb/core/kqp/ut/opt/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/opt/CMakeLists.windows-x86_64.txt @@ -63,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/opt/kqp_extract_predicate_unpack_ut.cpp b/ydb/core/kqp/ut/opt/kqp_extract_predicate_unpack_ut.cpp index 6977d7981c5c..8c2c10f23a39 100644 --- a/ydb/core/kqp/ut/opt/kqp_extract_predicate_unpack_ut.cpp +++ b/ydb/core/kqp/ut/opt/kqp_extract_predicate_unpack_ut.cpp @@ -359,82 +359,6 @@ Y_UNIT_TEST(ComplexRange) { 2); } -Y_UNIT_TEST(SqlIn) { - Test( - R"( - SELECT * FROM `/Root/SimpleKey` - WHERE Key IN AsList(100, 102, (100 + 3)) - ORDER BY Key; - )", - R"([ - [[100];["Value20"]];[[102];["Value22"]];[[103];["Value23"]] - ])"); -} - -Y_UNIT_TEST(BasicLookup) { - Test( - R"( - SELECT * FROM `/Root/SimpleKey` - WHERE Key = 100 or Key = 102 or Key = 103 or Key = null; - )", - R"([ - [[100];["Value20"]];[[102];["Value22"]];[[103];["Value23"]] - ])"); -} - -Y_UNIT_TEST(ComplexLookup) { - Test( - R"( - SELECT Key, Value FROM `/Root/SimpleKey` - WHERE Key = 100 or Key = 102 or Key = (100 + 3); - )", - R"([ - [[100];["Value20"]];[[102];["Value22"]];[[103];["Value23"]] - ])"); -} - -Y_UNIT_TEST(SqlInComplexKey) { - Test( - R"( - SELECT Key, Fk, Value FROM `/Root/ComplexKey` - WHERE (Key, Fk) IN AsList( - (1, 101), - (2, 102), - (2, 102 + 1), - ) - ORDER BY Key, Fk; - )", - R"([ - [[1];[101];["Value1"]];[[2];[102];["Value1"]];[[2];[103];["Value3"]] - ])"); -} - -Y_UNIT_TEST(BasicLookupComplexKey) { - Test( - R"( - SELECT Key, Fk, Value FROM `/Root/ComplexKey` - WHERE (Key = 1 and Fk = 101) OR - (2 = Key and 102 = Fk) OR - (2 = Key and 103 = Fk); - )", - R"([ - [[1];[101];["Value1"]];[[2];[102];["Value1"]];[[2];[103];["Value3"]] - ])"); -} - -Y_UNIT_TEST(ComplexLookupComplexKey) { - Test( - R"( - SELECT Key, Fk, Value FROM `/Root/ComplexKey` - WHERE (Key = 1 and Fk = 101) OR - (2 = Key and 102 = Fk) OR - (2 = Key and 102 + 1 = Fk); - )", - R"([ - [[1];[101];["Value1"]];[[2];[102];["Value1"]];[[2];[103];["Value3"]] - ])"); -} - Y_UNIT_TEST(PointJoin) { Test( R"( diff --git a/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp b/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp index d79e0f3440a1..68edda6abfbf 100644 --- a/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp +++ b/ydb/core/kqp/ut/opt/kqp_ne_ut.cpp @@ -203,25 +203,23 @@ Y_UNIT_TEST_SUITE(KqpNewEngine) { SELECT * FROM `/Root/Test` WHERE Group = $group AND Name = $name; )"; - auto explainResult = session.ExplainDataQuery(query).GetValueSync(); - UNIT_ASSERT_VALUES_EQUAL_C(explainResult.GetStatus(), EStatus::SUCCESS, explainResult.GetIssues().ToString()); - - if (settings.AppConfig.GetTableServiceConfig().GetEnableKqpDataQueryStreamLookup()) { - UNIT_ASSERT_C(explainResult.GetAst().Contains("KqpCnStreamLookup"), explainResult.GetAst()); - } else { - UNIT_ASSERT_C(explainResult.GetAst().Contains("KqpLookupTable"), explainResult.GetAst()); - } - auto params = kikimr.GetTableClient().GetParamsBuilder() .AddParam("$group").OptionalUint32(1).Build() .AddParam("$name").OptionalString("Paul").Build() .Build(); + NYdb::NTable::TExecDataQuerySettings execSettings; + execSettings.CollectQueryStats(ECollectQueryStatsMode::Profile); + auto result = session.ExecuteDataQuery(query, - TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx(), params).ExtractValueSync(); + TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx(), params, execSettings).ExtractValueSync(); UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); CompareYson(R"([[[300u];["None"];[1u];["Paul"]]])", FormatResultSetYson(result.GetResultSet(0))); + AssertTableStats(result, "/Root/Test", { + .ExpectedReads = 1, + }); + params = kikimr.GetTableClient().GetParamsBuilder() .AddParam("$group").OptionalUint32(1).Build() .Build(); @@ -2641,6 +2639,22 @@ Y_UNIT_TEST_SUITE(KqpNewEngine) { ])", FormatResultSetYson(result.GetResultSet(0))); } + Y_UNIT_TEST(DeleteON) { + auto kikimr = DefaultKikimrRunner(); + auto db = kikimr.GetTableClient(); + auto session = db.CreateSession().GetValueSync().GetSession(); + + NYdb::NTable::TExecDataQuerySettings execSettings; + execSettings.CollectQueryStats(ECollectQueryStatsMode::Basic); + + auto result = session.ExecuteDataQuery(R"( + --!syntax_v1 + + DELETE FROM `/Root/Join2` where (Key1 = 1 and Key2 = "") OR Key1 = 3; + )", TTxControl::BeginTx().CommitTx(), execSettings).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + } + Y_UNIT_TEST(JoinWithPrecompute) { auto kikimr = DefaultKikimrRunner(); auto db = kikimr.GetTableClient(); @@ -3520,14 +3534,14 @@ Y_UNIT_TEST_SUITE(KqpNewEngine) { NJson::TJsonValue plan; NJson::ReadJsonTree(result.GetQueryPlan(), &plan, true); - auto streamLookup = FindPlanNodeByKv(plan, "Node Type", "TableLookup"); + auto streamLookup = FindPlanNodeByKv(plan, "Node Type", "TableRangeScan"); UNIT_ASSERT(streamLookup.IsDefined()); auto stats = NYdb::TProtoAccessor::GetProto(*result.GetStats()); - UNIT_ASSERT_VALUES_EQUAL(stats.query_phases().size(), 1); - 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/KeyValue"); - UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(0).table_access(0).reads().rows(), 2); + UNIT_ASSERT_VALUES_EQUAL(stats.query_phases().size(), 2); + UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(1).table_access().size(), 1); + UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(1).table_access(0).name(), "/Root/KeyValue"); + UNIT_ASSERT_VALUES_EQUAL(stats.query_phases(1).table_access(0).reads().rows(), 2); } } 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 01a3c9bdb215..5252d6f1e6de 100644 --- a/ydb/core/kqp/ut/opt/kqp_not_null_ut.cpp +++ b/ydb/core/kqp/ut/opt/kqp_not_null_ut.cpp @@ -1966,8 +1966,8 @@ Y_UNIT_TEST_SUITE(KqpNotNullColumns) { {"Value3", "Pg('pgint2','',21,0,0)"} }; - const THashMap columnNullability = { - {"Key1", true}, + const THashMap columnNonNullability = { + {"Key1", false}, {"Key2", false}, {"Value1", false}, {"Value2", false}, @@ -1977,7 +1977,12 @@ Y_UNIT_TEST_SUITE(KqpNotNullColumns) { const auto& columns = describeTableResult.GetTableDescription().GetTableColumns(); for (const auto& column : columns) { UNIT_ASSERT_VALUES_EQUAL_C(column.Type.ToString(), columnTypes.at(column.Name), column.Name); - UNIT_ASSERT_VALUES_EQUAL_C(column.NotNull.value(), columnNullability.at(column.Name), column.Name); + bool isNotNull = columnNonNullability.at(column.Name); + if (isNotNull) { + UNIT_ASSERT_VALUES_EQUAL_C(column.NotNull.value(), true, column.Name); + } else { + UNIT_ASSERT_C(!column.NotNull.has_value() || !column.NotNull.value(), column.Name); + } } } @@ -1997,16 +2002,21 @@ Y_UNIT_TEST_SUITE(KqpNotNullColumns) { } auto describeTableResult = session.DescribeTable("/Root/NotNullCheck").GetValueSync(); UNIT_ASSERT_C(describeTableResult.IsSuccess(), describeTableResult.GetIssues().ToString()); - const THashMap columnNullability = { + const THashMap columnNonNullability = { {"1", false}, - {"2", true}, + {"2", false}, {"3", false}, {"4", true}, }; const auto& columns = describeTableResult.GetTableDescription().GetTableColumns(); for (const auto& column : columns) { - UNIT_ASSERT_VALUES_EQUAL_C(column.NotNull.value(), columnNullability.at(column.Name), column.Name); + bool isNotNull = columnNonNullability.at(column.Name); + if (isNotNull) { + UNIT_ASSERT_VALUES_EQUAL_C(column.NotNull.value(), true, column.Name); + } else { + UNIT_ASSERT_C(!column.NotNull.has_value() || !column.NotNull.value(), column.Name); + } } { diff --git a/ydb/core/kqp/ut/perf/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/perf/CMakeLists.darwin-arm64.txt index 60a1aa3ec228..238d9a0a9127 100644 --- a/ydb/core/kqp/ut/perf/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/perf/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kqp-ut-perf PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-perf PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/perf/kqp_query_perf_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/perf/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/perf/CMakeLists.darwin-x86_64.txt index 41bdc4dcb4c0..afa5c6484539 100644 --- a/ydb/core/kqp/ut/perf/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/perf/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-kqp-ut-perf PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-perf PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/perf/kqp_query_perf_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/perf/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/perf/CMakeLists.linux-aarch64.txt index 64e8c6b3c279..792a82ace751 100644 --- a/ydb/core/kqp/ut/perf/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/perf/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kqp-ut-perf PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-perf PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/perf/kqp_query_perf_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/perf/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/perf/CMakeLists.linux-x86_64.txt index 422521347afb..a6ea17c52035 100644 --- a/ydb/core/kqp/ut/perf/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/perf/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-kqp-ut-perf PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-perf PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/perf/kqp_query_perf_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/perf/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/perf/CMakeLists.windows-x86_64.txt index 297663839898..7cd7c8a4d0e5 100644 --- a/ydb/core/kqp/ut/perf/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/perf/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/pg/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/pg/CMakeLists.darwin-arm64.txt index ff58a281d769..a1342b4b84bf 100644 --- a/ydb/core/kqp/ut/pg/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/pg/CMakeLists.darwin-arm64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-core-kqp-ut-pg PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-pg PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/pg/kqp_pg_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/pg/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/pg/CMakeLists.darwin-x86_64.txt index 941b8aea8f72..0a6feea8a32b 100644 --- a/ydb/core/kqp/ut/pg/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/pg/CMakeLists.darwin-x86_64.txt @@ -32,8 +32,6 @@ target_link_options(ydb-core-kqp-ut-pg PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-pg PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/pg/kqp_pg_ut.cpp @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/pg/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/pg/CMakeLists.linux-aarch64.txt index 363e1973748f..23d4f9e47bfc 100644 --- a/ydb/core/kqp/ut/pg/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/pg/CMakeLists.linux-aarch64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-core-kqp-ut-pg PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-pg PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/pg/kqp_pg_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/pg/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/pg/CMakeLists.linux-x86_64.txt index f5472cffa5a9..5f256d9536d5 100644 --- a/ydb/core/kqp/ut/pg/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/pg/CMakeLists.linux-x86_64.txt @@ -35,9 +35,6 @@ target_link_options(ydb-core-kqp-ut-pg PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-pg PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/pg/kqp_pg_ut.cpp @@ -67,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/pg/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/pg/CMakeLists.windows-x86_64.txt index 04a0d1c7b8e2..65b0e87f8ced 100644 --- a/ydb/core/kqp/ut/pg/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/pg/CMakeLists.windows-x86_64.txt @@ -59,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/pg/kqp_pg_ut.cpp b/ydb/core/kqp/ut/pg/kqp_pg_ut.cpp index 9887464a6ae2..dac94b1aebe9 100644 --- a/ydb/core/kqp/ut/pg/kqp_pg_ut.cpp +++ b/ydb/core/kqp/ut/pg/kqp_pg_ut.cpp @@ -1256,6 +1256,7 @@ Y_UNIT_TEST_SUITE(KqpPg) { Y_UNIT_TEST(InsertFromSelect_Serial) { NKikimrConfig::TAppConfig appConfig; appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + appConfig.MutableTableServiceConfig()->SetEnableSequences(true); auto setting = NKikimrKqp::TKqpSetting(); auto serverSettings = TKikimrSettings() .SetAppConfig(appConfig) @@ -1439,7 +1440,12 @@ Y_UNIT_TEST_SUITE(KqpPg) { } Y_UNIT_TEST(Returning) { - TKikimrRunner kikimr(NKqp::TKikimrSettings().SetWithSampleTables(false)); + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnableSequences(true); + appConfig.MutableTableServiceConfig()->SetEnableColumnsWithDefault(true); + + TKikimrRunner kikimr(NKqp::TKikimrSettings().SetAppConfig(appConfig) + .SetWithSampleTables(false)); auto client = kikimr.GetTableClient(); auto session = client.CreateSession().GetValueSync().GetSession(); @@ -1598,7 +1604,11 @@ Y_UNIT_TEST_SUITE(KqpPg) { } Y_UNIT_TEST(CreateTableSerialColumns) { - TKikimrRunner kikimr(NKqp::TKikimrSettings().SetWithSampleTables(false).SetEnableNotNullDataColumns(true)); + 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(); { @@ -1684,6 +1694,145 @@ Y_UNIT_TEST_SUITE(KqpPg) { } } + Y_UNIT_TEST(CopyTableSerialColumns) { + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnableSequences(true); + auto setting = NKikimrKqp::TKqpSetting(); + TKikimrRunner kikimr( + TKikimrSettings() + .SetAppConfig(appConfig) + .SetKqpSettings({setting}) + .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 (1); + )"); + + auto result = session.ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString()); + } + + { + const auto result = session.CopyTable("/Root/PgSerial", "/Root/copy").GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + + auto desc = session.DescribeTable("/Root/copy").ExtractValueSync(); + UNIT_ASSERT_C(desc.IsSuccess(), desc.GetIssues().ToString()); + } + + { + const auto query = Q_(R"( + --!syntax_pg + SELECT * FROM copy; + )"); + + auto result = session.ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + + UNIT_ASSERT_C(!result.GetResultSets().empty(), "results are empty"); + CompareYson(R"( + [["1";"1"]] + )", FormatResultSetYson(result.GetResultSet(0))); + } + + { + const auto query = Q_(R"( + --!syntax_pg + INSERT INTO copy (value) values (1); + )"); + + 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 copy; + )"); + + auto result = session.ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + + UNIT_ASSERT_C(!result.GetResultSets().empty(), "results are empty"); + CompareYson(R"( + [["1";"1"];["2";"1"]] + )", FormatResultSetYson(result.GetResultSet(0))); + } + + { + const auto query = Q_(R"( + --!syntax_pg + SELECT * FROM PgSerial; + )"); + + auto result = session.ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + + UNIT_ASSERT_C(!result.GetResultSets().empty(), "results are empty"); + CompareYson(R"( + [["1";"1"]] + )", FormatResultSetYson(result.GetResultSet(0))); + } + + { + const auto query = Q_(R"( + --!syntax_pg + INSERT INTO PgSerial (value) values (1); + )"); + + 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 copy; + )"); + + auto result = session.ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + + UNIT_ASSERT_C(!result.GetResultSets().empty(), "results are empty"); + CompareYson(R"( + [["1";"1"];["2";"1"]] + )", FormatResultSetYson(result.GetResultSet(0))); + } + + { + const auto query = Q_(R"( + --!syntax_pg + SELECT * FROM PgSerial; + )"); + + auto result = session.ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + + UNIT_ASSERT_C(!result.GetResultSets().empty(), "results are empty"); + CompareYson(R"( + [["1";"1"];["2";"1"]] + )", FormatResultSetYson(result.GetResultSet(0))); + } + } + Y_UNIT_TEST(CreateIndex) { NKikimrConfig::TAppConfig appConfig; appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true);; @@ -2074,7 +2223,8 @@ Y_UNIT_TEST_SUITE(KqpPg) { Y_UNIT_TEST(CreateTempTableSerial) { NKikimrConfig::TAppConfig appConfig; - appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true);; + appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + appConfig.MutableTableServiceConfig()->SetEnableSequences(true); auto setting = NKikimrKqp::TKqpSetting(); auto serverSettings = TKikimrSettings() .SetAppConfig(appConfig) @@ -3287,6 +3437,7 @@ Y_UNIT_TEST_SUITE(KqpPg) { Y_UNIT_TEST(Insert_Serial) { NKikimrConfig::TAppConfig appConfig; appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + appConfig.MutableTableServiceConfig()->SetEnableSequences(true); auto setting = NKikimrKqp::TKqpSetting(); auto serverSettings = TKikimrSettings() .SetAppConfig(appConfig) @@ -3323,6 +3474,7 @@ Y_UNIT_TEST_SUITE(KqpPg) { Y_UNIT_TEST(InsertNoTargetColumns_Serial) { NKikimrConfig::TAppConfig appConfig; appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + appConfig.MutableTableServiceConfig()->SetEnableSequences(true); auto setting = NKikimrKqp::TKqpSetting(); auto serverSettings = TKikimrSettings() .SetAppConfig(appConfig) @@ -3358,6 +3510,7 @@ Y_UNIT_TEST_SUITE(KqpPg) { Y_UNIT_TEST(InsertValuesFromTableWithDefault) { NKikimrConfig::TAppConfig appConfig; appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + appConfig.MutableTableServiceConfig()->SetEnableColumnsWithDefault(true); auto setting = NKikimrKqp::TKqpSetting(); auto serverSettings = TKikimrSettings() .SetAppConfig(appConfig) @@ -3389,10 +3542,55 @@ Y_UNIT_TEST_SUITE(KqpPg) { )", FormatResultSetYson(result.GetResultSet(0))); } } +/* + Y_UNIT_TEST(InsertValuesFromTableWithDefaultAndCast) { + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + auto setting = NKikimrKqp::TKqpSetting(); + auto serverSettings = TKikimrSettings() + .SetAppConfig(appConfig) + .SetKqpSettings({setting}); + TKikimrRunner kikimr(serverSettings.SetWithSampleTables(false)); + auto db = kikimr.GetQueryClient(); + auto settings = NYdb::NQuery::TExecuteQuerySettings().Syntax(NYdb::NQuery::ESyntax::Pg); + { + auto result = db.ExecuteQuery(R"( + CREATE TABLE t ( + a INT, + b int DEFAULT 5::int4, + c int DEFAULT '7'::int4, + d varchar(20) DEFAULT 'foo'::varchar(2), + e int DEFAULT NULL, + f bit varying(5) DEFAULT '1001', + g bigint DEFAULT 0 NOT NULL, + PRIMARY KEY(a) + ); + )", NYdb::NQuery::TTxControl::NoTx(), settings).ExtractValueSync(); + UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString()); + } + { + auto result = db.ExecuteQuery(R"( + INSERT INTO t VALUES(1); + )", NYdb::NQuery::TTxControl::BeginTx().CommitTx(), settings).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + } + { + auto result = db.ExecuteQuery(R"( + SELECT * FROM t; + )", 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 empty"); + CompareYson(R"( + [["1";"5";"7";"fo";#;"1001";"0"]] + )", FormatResultSetYson(result.GetResultSet(0))); + } + } +*/ Y_UNIT_TEST(InsertValuesFromTableWithDefaultBool) { NKikimrConfig::TAppConfig appConfig; appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + appConfig.MutableTableServiceConfig()->SetEnableColumnsWithDefault(true); auto setting = NKikimrKqp::TKqpSetting(); auto serverSettings = TKikimrSettings() .SetAppConfig(appConfig) @@ -3428,6 +3626,7 @@ Y_UNIT_TEST_SUITE(KqpPg) { Y_UNIT_TEST(InsertValuesFromTableWithDefaultText) { NKikimrConfig::TAppConfig appConfig; appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + appConfig.MutableTableServiceConfig()->SetEnableColumnsWithDefault(true); auto setting = NKikimrKqp::TKqpSetting(); auto serverSettings = TKikimrSettings() .SetAppConfig(appConfig) @@ -3463,6 +3662,7 @@ Y_UNIT_TEST_SUITE(KqpPg) { Y_UNIT_TEST(InsertValuesFromTableWithDefaultTextNotNull) { NKikimrConfig::TAppConfig appConfig; appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + appConfig.MutableTableServiceConfig()->SetEnableColumnsWithDefault(true); auto setting = NKikimrKqp::TKqpSetting(); auto serverSettings = TKikimrSettings() .SetAppConfig(appConfig) @@ -3536,6 +3736,7 @@ Y_UNIT_TEST_SUITE(KqpPg) { Y_UNIT_TEST(InsertNoTargetColumns_SerialNotNull) { NKikimrConfig::TAppConfig appConfig; appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + appConfig.MutableTableServiceConfig()->SetEnableSequences(true); auto setting = NKikimrKqp::TKqpSetting(); auto serverSettings = TKikimrSettings() .SetAppConfig(appConfig) @@ -3882,6 +4083,9 @@ Y_UNIT_TEST_SUITE(KqpPg) { auto fullScan = FindPlanNodeByKv(plan, "Node Type", "Filter-TableFullScan"); UNIT_ASSERT_C(!fullScan.IsDefined(), "got fullscan, expected lookup"); auto lookup = FindPlanNodeByKv(plan, "Node Type", "TableLookup"); + if (!lookup.IsDefined()) { + lookup = FindPlanNodeByKv(plan, "Node Type", "TableRangeScan"); + } UNIT_ASSERT_C(lookup.IsDefined(), "no Table Lookup in plan"); } { diff --git a/ydb/core/kqp/ut/query/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/query/CMakeLists.darwin-arm64.txt index bfbd417a9770..7890b28a0cf2 100644 --- a/ydb/core/kqp/ut/query/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/query/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kqp-ut-query PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-query PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/query/kqp_explain_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/query/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/query/CMakeLists.darwin-x86_64.txt index ec1ad6a08915..06008b45ad15 100644 --- a/ydb/core/kqp/ut/query/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/query/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-kqp-ut-query PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-query PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/query/kqp_explain_ut.cpp @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/query/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/query/CMakeLists.linux-aarch64.txt index 38ad4a0b6f72..68c373361010 100644 --- a/ydb/core/kqp/ut/query/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/query/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kqp-ut-query PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-query PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/query/kqp_explain_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/query/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/query/CMakeLists.linux-x86_64.txt index 1201b9132d2c..17a4b48e4d1e 100644 --- a/ydb/core/kqp/ut/query/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/query/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-kqp-ut-query PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-query PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/query/kqp_explain_ut.cpp @@ -67,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/query/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/query/CMakeLists.windows-x86_64.txt index b6a1a94bc2b7..32074d338ccb 100644 --- a/ydb/core/kqp/ut/query/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/query/CMakeLists.windows-x86_64.txt @@ -56,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/query/kqp_explain_ut.cpp b/ydb/core/kqp/ut/query/kqp_explain_ut.cpp index 0a101ca68902..ad771f6df6dd 100644 --- a/ydb/core/kqp/ut/query/kqp_explain_ut.cpp +++ b/ydb/core/kqp/ut/query/kqp_explain_ut.cpp @@ -493,18 +493,23 @@ Y_UNIT_TEST_SUITE(KqpExplain) { NJson::ReadJsonTree(result.GetPlan(), &plan, true); UNIT_ASSERT(ValidatePlanNodeIds(plan)); + Cerr << "Plan " << result.GetPlan() << Endl; + auto node = FindPlanNodeByKv(plan, "Name", "TableRangeScan"); UNIT_ASSERT_EQUAL(node.GetMapSafe().at("Table").GetStringSafe(), "KeyValue"); node = FindPlanNodeByKv(plan, "Name", "TableFullScan"); UNIT_ASSERT_EQUAL(node.GetMapSafe().at("Table").GetStringSafe(), "KeyValue"); + if (settings.AppConfig.GetTableServiceConfig().GetEnableKqpDataQueryStreamLookup()) { node = FindPlanNodeByKv(plan, "Node Type", "TableLookup"); } else { node = FindPlanNodeByKv(plan, "Name", "TablePointLookup"); } - UNIT_ASSERT_EQUAL(node.GetMapSafe().at("Table").GetStringSafe(), "KeyValue"); + if (node.IsDefined()) { + UNIT_ASSERT_EQUAL(node.GetMapSafe().at("Table").GetStringSafe(), "KeyValue"); + } } Y_UNIT_TEST(FewEffects) { @@ -536,16 +541,7 @@ Y_UNIT_TEST_SUITE(KqpExplain) { UNIT_ASSERT_VALUES_EQUAL(fullScansCount, 1); auto rangeScansCount = CountPlanNodesByKv(plan, "Node Type", "TableRangeScan"); - UNIT_ASSERT_VALUES_EQUAL(rangeScansCount, 1); - - ui32 lookupsCount = 0; - if (settings.AppConfig.GetTableServiceConfig().GetEnableKqpDataQueryStreamLookup()) { - lookupsCount = CountPlanNodesByKv(plan, "Node Type", "TableLookup"); - } else { - lookupsCount = CountPlanNodesByKv(plan, "Node Type", "TablePointLookup-ConstantExpr"); - } - - UNIT_ASSERT_VALUES_EQUAL(lookupsCount, 1); + UNIT_ASSERT_VALUES_EQUAL(rangeScansCount, 2); /* check tables section */ const auto& tableInfo = plan.GetMapSafe().at("tables").GetArraySafe()[0].GetMapSafe(); @@ -565,7 +561,6 @@ Y_UNIT_TEST_SUITE(KqpExplain) { UNIT_ASSERT_VALUES_EQUAL(counter["MultiErase"], deletesCount); UNIT_ASSERT_VALUES_EQUAL(counter["FullScan"], fullScansCount); UNIT_ASSERT_VALUES_EQUAL(counter["Scan"], rangeScansCount); - UNIT_ASSERT_VALUES_EQUAL(counter["Lookup"], lookupsCount); } Y_UNIT_TEST(ExplainDataQueryWithParams) { @@ -880,7 +875,6 @@ Y_UNIT_TEST_SUITE(KqpExplain) { auto session = db.CreateSession().GetValueSync().GetSession(); auto res = session.ExplainDataQuery(R"( - PRAGMA kikimr.OptEnablePredicateExtract = 'true'; SELECT t.* FROM (SELECT * FROM `/Root/test_table_idx_idx` diff --git a/ydb/core/kqp/ut/query/kqp_limits_ut.cpp b/ydb/core/kqp/ut/query/kqp_limits_ut.cpp index 2c7f85a4854f..bca5187d1607 100644 --- a/ydb/core/kqp/ut/query/kqp_limits_ut.cpp +++ b/ydb/core/kqp/ut/query/kqp_limits_ut.cpp @@ -17,6 +17,116 @@ namespace { } Y_UNIT_TEST_SUITE(KqpLimits) { + Y_UNIT_TEST(QSReplySizeEnsureMemoryLimits) { + TKikimrRunner kikimr; + CreateLargeTable(kikimr, 1'000, 100, 1'000, 1'000); + + auto db = kikimr.GetQueryClient(); + + TControlWrapper mkqlInitialMemoryLimit; + TControlWrapper mkqlMaxMemoryLimit; + + mkqlInitialMemoryLimit = kikimr.GetTestServer().GetRuntime()->GetAppData().Icb->RegisterSharedControl( + mkqlInitialMemoryLimit, "KqpSession.MkqlInitialMemoryLimit"); + mkqlMaxMemoryLimit = kikimr.GetTestServer().GetRuntime()->GetAppData().Icb->RegisterSharedControl( + mkqlMaxMemoryLimit, "KqpSession.MkqlMaxMemoryLimit"); + + mkqlInitialMemoryLimit = 1_KB; + mkqlMaxMemoryLimit = 1_KB; + + auto result = db.ExecuteQuery(R"( + UPSERT INTO KeyValue2 + SELECT + KeyText AS Key, + DataText AS Value + FROM `/Root/LargeTable`; + )", NQuery::TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + result.GetIssues().PrintTo(Cerr); + UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::PRECONDITION_FAILED); + UNIT_ASSERT(!to_lower(result.GetIssues().ToString()).Contains("query result")); + } + + Y_UNIT_TEST(KqpMkqlMemoryLimitException) { + TKikimrRunner kikimr; + CreateLargeTable(kikimr, 10, 10, 1'000'000, 1); + + kikimr.GetTestServer().GetRuntime()->SetLogPriority(NKikimrServices::KQP_SLOW_LOG, NActors::NLog::PRI_ERROR); + + TControlWrapper mkqlInitialMemoryLimit; + TControlWrapper mkqlMaxMemoryLimit; + + mkqlInitialMemoryLimit = kikimr.GetTestServer().GetRuntime()->GetAppData().Icb->RegisterSharedControl( + mkqlInitialMemoryLimit, "KqpSession.MkqlInitialMemoryLimit"); + mkqlMaxMemoryLimit = kikimr.GetTestServer().GetRuntime()->GetAppData().Icb->RegisterSharedControl( + mkqlMaxMemoryLimit, "KqpSession.MkqlMaxMemoryLimit"); + + mkqlInitialMemoryLimit = 1_KB; + mkqlMaxMemoryLimit = 1_KB; + + auto db = kikimr.GetTableClient(); + auto session = db.CreateSession().GetValueSync().GetSession(); + + auto result = session.ExecuteDataQuery(Q1_(R"( + SELECT * FROM `/Root/LargeTable`; + )"), TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + result.GetIssues().PrintTo(Cerr); + UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::PRECONDITION_FAILED); + } + + Y_UNIT_TEST(LargeParametersAndMkqlFailure) { + auto app = NKikimrConfig::TAppConfig(); + app.MutableTableServiceConfig()->MutableResourceManager()->SetMkqlLightProgramMemoryLimit(1'000'000'000); + + TKikimrRunner kikimr(app); + CreateLargeTable(kikimr, 0, 0, 0); + + kikimr.GetTestServer().GetRuntime()->SetLogPriority(NKikimrServices::KQP_SLOW_LOG, NActors::NLog::PRI_ERROR); + + auto db = kikimr.GetTableClient(); + auto session = db.CreateSession().GetValueSync().GetSession(); + + TControlWrapper mkqlInitialMemoryLimit; + TControlWrapper mkqlMaxMemoryLimit; + + mkqlInitialMemoryLimit = kikimr.GetTestServer().GetRuntime()->GetAppData().Icb->RegisterSharedControl( + mkqlInitialMemoryLimit, "KqpSession.MkqlInitialMemoryLimit"); + mkqlMaxMemoryLimit = kikimr.GetTestServer().GetRuntime()->GetAppData().Icb->RegisterSharedControl( + mkqlMaxMemoryLimit, "KqpSession.MkqlMaxMemoryLimit"); + + + mkqlInitialMemoryLimit = 1_KB; + mkqlMaxMemoryLimit = 1_KB; + + auto paramsBuilder = db.GetParamsBuilder(); + auto& rowsParam = paramsBuilder.AddParam("$rows"); + + rowsParam.BeginList(); + for (ui32 i = 0; i < 100; ++i) { + rowsParam.AddListItem() + .BeginStruct() + .AddMember("Key") + .OptionalUint64(i) + .AddMember("KeyText") + .OptionalString(TString(5000, '0' + i % 10)) + .AddMember("Data") + .OptionalInt64(i) + .AddMember("DataText") + .OptionalString(TString(16, '0' + (i + 1) % 10)) + .EndStruct(); + } + rowsParam.EndList(); + rowsParam.Build(); + + auto result = session.ExecuteDataQuery(Q1_(R"( + DECLARE $rows AS List>; + + UPSERT INTO `/Root/LargeTable` + SELECT * FROM AS_TABLE($rows); + )"), TTxControl::BeginTx().CommitTx(), paramsBuilder.Build()).ExtractValueSync(); + result.GetIssues().PrintTo(Cerr); + UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::BAD_REQUEST); + } + Y_UNIT_TEST(DatashardProgramSize) { auto app = NKikimrConfig::TAppConfig(); app.MutableTableServiceConfig()->MutableResourceManager()->SetMkqlLightProgramMemoryLimit(1'000'000'000); @@ -952,6 +1062,24 @@ Y_UNIT_TEST_SUITE(KqpLimits) { last = current; } } + + Y_UNIT_TEST(QSReplySize) { + TKikimrRunner kikimr; + CreateLargeTable(kikimr, 10'000, 100, 1'000, 1'000); + + auto db = kikimr.GetQueryClient(); + + auto result = db.ExecuteQuery(R"( + UPSERT INTO KeyValue2 + SELECT + KeyText AS Key, + DataText AS Value + FROM `/Root/LargeTable`; + )", NQuery::TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + result.GetIssues().PrintTo(Cerr); + UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::PRECONDITION_FAILED); + UNIT_ASSERT(!to_lower(result.GetIssues().ToString()).Contains("query result")); + } } } // namespace NKqp diff --git a/ydb/core/kqp/ut/query/kqp_query_ut.cpp b/ydb/core/kqp/ut/query/kqp_query_ut.cpp index f57bf4005ab1..75c13bafc415 100644 --- a/ydb/core/kqp/ut/query/kqp_query_ut.cpp +++ b/ydb/core/kqp/ut/query/kqp_query_ut.cpp @@ -788,18 +788,51 @@ Y_UNIT_TEST_SUITE(KqpQuery) { auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); - auto query = Q_(R"( - SELECT 1 + 1; - )"); + { + auto query = Q_(R"( + SELECT 1 + 1; + )"); - auto result = session.ExecuteDataQuery( - query, - TTxControl::BeginTx().CommitTx() - ).ExtractValueSync(); + auto result = session.ExecuteDataQuery( + query, + TTxControl::BeginTx().CommitTx() + ).ExtractValueSync(); + + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + CompareYson(R"([[2]])", + FormatResultSetYson(result.GetResultSet(0))); + } + + { + auto query = Q_(R"( + SELECT Int8("-1"); + )"); + + auto result = session.ExecuteDataQuery( + query, + TTxControl::BeginTx().CommitTx() + ).ExtractValueSync(); + + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + CompareYson(R"([[-1]])", + FormatResultSetYson(result.GetResultSet(0))); + } + + { + auto query = Q_(R"( + SELECT Int8("-1") + Int8("-1"); + )"); + + auto result = session.ExecuteDataQuery( + query, + TTxControl::BeginTx().CommitTx() + ).ExtractValueSync(); + + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + CompareYson(R"([[-2]])", + FormatResultSetYson(result.GetResultSet(0))); + } - UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); - CompareYson(R"([[2]])", - FormatResultSetYson(result.GetResultSet(0))); } Y_UNIT_TEST(Now) { @@ -1559,6 +1592,31 @@ Y_UNIT_TEST_SUITE(KqpQuery) { UNIT_ASSERT_VALUES_EQUAL(result.GetResultSet(0).RowsCount(), 1); } } + + Y_UNIT_TEST(DictJoin) { + TKikimrRunner kikimr; + auto client = kikimr.GetQueryClient(); + + { + const TString sql = R"( + --!syntax_v1 + + $lsource = SELECT 'test' AS ldata; + $rsource = SELECT 'test' AS rdata; + + $left = SELECT ROW_NUMBER() OVER w AS r, ldata FROM $lsource WINDOW w AS (); + $right = SELECT ROW_NUMBER() OVER w AS r, rdata FROM $rsource WINDOW w AS (); + + $result = SELECT ldata, rdata FROM $left AS tl INNER JOIN $right AS tr ON tl.r = tr.r; + + SELECT * FROM $result; + )"; + auto result = client.ExecuteQuery( + sql, + NYdb::NQuery::TTxControl::BeginTx().CommitTx()).GetValueSync(); + UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString()); + } + } } } // namespace NKqp diff --git a/ydb/core/kqp/ut/scan/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/scan/CMakeLists.darwin-arm64.txt index aae33bbba550..44b2b7664c1e 100644 --- a/ydb/core/kqp/ut/scan/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/scan/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-kqp-ut-scan PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-scan PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/scan/kqp_flowcontrol_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/scan/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/scan/CMakeLists.darwin-x86_64.txt index 861c014a9d22..444da0661bf3 100644 --- a/ydb/core/kqp/ut/scan/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/scan/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kqp-ut-scan PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-scan PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/scan/kqp_flowcontrol_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/scan/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/scan/CMakeLists.linux-aarch64.txt index 9a3e0b8e717c..d5e71e635bc8 100644 --- a/ydb/core/kqp/ut/scan/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/scan/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-kqp-ut-scan PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-scan PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/scan/kqp_flowcontrol_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/scan/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/scan/CMakeLists.linux-x86_64.txt index 79e20884b555..b4dd857c3f14 100644 --- a/ydb/core/kqp/ut/scan/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/scan/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kqp-ut-scan PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-scan PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/scan/kqp_flowcontrol_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/scan/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/scan/CMakeLists.windows-x86_64.txt index 887b40c1693d..948da05b40d7 100644 --- a/ydb/core/kqp/ut/scan/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/scan/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/scheme/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/scheme/CMakeLists.darwin-arm64.txt index e6bba7cfd3fd..4e621fc6f40f 100644 --- a/ydb/core/kqp/ut/scheme/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/scheme/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kqp-ut-scheme PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-scheme PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/scheme/kqp_acl_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/scheme/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/scheme/CMakeLists.darwin-x86_64.txt index ef893a915df7..a10b5eaeb6c3 100644 --- a/ydb/core/kqp/ut/scheme/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/scheme/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-kqp-ut-scheme PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-scheme PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/scheme/kqp_acl_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/scheme/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/scheme/CMakeLists.linux-aarch64.txt index b5e6e51a7d08..58ac4d0f77d8 100644 --- a/ydb/core/kqp/ut/scheme/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/scheme/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kqp-ut-scheme PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-scheme PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/scheme/kqp_acl_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/scheme/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/scheme/CMakeLists.linux-x86_64.txt index 12bf405db0ec..a576f9093a6c 100644 --- a/ydb/core/kqp/ut/scheme/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/scheme/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-kqp-ut-scheme PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-scheme PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/scheme/kqp_acl_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/scheme/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/scheme/CMakeLists.windows-x86_64.txt index f048afbc85c3..c44246c7a5c6 100644 --- a/ydb/core/kqp/ut/scheme/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/scheme/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/scheme/kqp_constraints_ut.cpp b/ydb/core/kqp/ut/scheme/kqp_constraints_ut.cpp index d09a196b7af5..e44fc934607f 100644 --- a/ydb/core/kqp/ut/scheme/kqp_constraints_ut.cpp +++ b/ydb/core/kqp/ut/scheme/kqp_constraints_ut.cpp @@ -7,7 +7,6 @@ #include #include #include -#include #include @@ -257,7 +256,7 @@ Y_UNIT_TEST_SUITE(KqpConstraints) { result.GetIssues().ToString()); CompareYson(R"( [ - [[1];["New"]] + [1;["New"]] ] )", NYdb::FormatResultSetYson(result.GetResultSet(0))); @@ -288,9 +287,103 @@ Y_UNIT_TEST_SUITE(KqpConstraints) { TestSerialType("serial8"); } + Y_UNIT_TEST(DefaultsAndDeleteAndUpdate) { + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnableSequences(false); + appConfig.MutableTableServiceConfig()->SetEnableColumnsWithDefault(true); + auto serverSettings = TKikimrSettings().SetAppConfig(appConfig); + TKikimrRunner kikimr(serverSettings); + auto db = kikimr.GetTableClient(); + auto session = db.CreateSession().GetValueSync().GetSession(); + + { + auto query = R"( + --!syntax_v1 + CREATE TABLE `/Root/DefaultsAndDeleteAndUpdate` ( + Key Int32, + Value String DEFAULT "somestring", + PRIMARY KEY (Key) + ); + )"; + + auto result = session.ExecuteSchemeQuery(query).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, + result.GetIssues().ToString()); + } + + { + TString query = R"( + UPSERT INTO `/Root/DefaultsAndDeleteAndUpdate` (Key) VALUES (1), (2), (3), (4); + )"; + + 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 = R"( + SELECT * FROM `/Root/DefaultsAndDeleteAndUpdate`; + )"; + + 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];["somestring"]]; + [[2];["somestring"]]; + [[3];["somestring"]]; + [[4];["somestring"]] + ] + )", + NYdb::FormatResultSetYson(result.GetResultSet(0))); + } + + { + TString query = R"( + $object_pk = <|Key:1|>; + DELETE FROM `/Root/DefaultsAndDeleteAndUpdate` ON + SELECT * FROM AS_TABLE(AsList($object_pk)); + )"; + + 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()); + } + } + Y_UNIT_TEST(AlterTableAddColumnWithDefaultValue) { NKikimrConfig::TAppConfig appConfig; appConfig.MutableTableServiceConfig()->SetEnableSequences(false); + appConfig.MutableTableServiceConfig()->SetEnableColumnsWithDefault(true); appConfig.MutableFeatureFlags()->SetEnableAddColumsWithDefaults(true); auto serverSettings = TKikimrSettings().SetAppConfig(appConfig); TKikimrRunner kikimr(serverSettings); @@ -345,7 +438,7 @@ Y_UNIT_TEST_SUITE(KqpConstraints) { auto result = session.ExecuteSchemeQuery(query).GetValueSync(); UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); - } + } { TString query = R"( @@ -412,7 +505,7 @@ Y_UNIT_TEST_SUITE(KqpConstraints) { auto result = session.ExecuteSchemeQuery(query).GetValueSync(); UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); - } + } } Y_UNIT_TEST(DefaultValuesForTableNegative3) { @@ -437,7 +530,7 @@ Y_UNIT_TEST_SUITE(KqpConstraints) { UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR, result.GetIssues().ToString()); UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToString(), "Default expr Key is nullable or optional, but column has not null constraint"); - } + } } Y_UNIT_TEST(DefaultValuesForTableNegative4) { @@ -463,7 +556,7 @@ Y_UNIT_TEST_SUITE(KqpConstraints) { auto result = session.ExecuteSchemeQuery(query).GetValueSync(); UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::GENERIC_ERROR, result.GetIssues().ToString()); - } + } } Y_UNIT_TEST(IndexedTableAndNotNullColumn) { @@ -506,7 +599,7 @@ Y_UNIT_TEST_SUITE(KqpConstraints) { UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); - if (result.GetResultSets().size() > 0) + if (result.GetResultSets().size() > 0) return NYdb::FormatResultSetYson(result.GetResultSet(0)); return ""; }; @@ -538,7 +631,7 @@ Y_UNIT_TEST_SUITE(KqpConstraints) { ] )"); - + fQuery(R"( UPSERT INTO `/Root/AlterTableAddNotNullColumn` (Key, Value, Value2) VALUES (2, "New", 2); )"); @@ -551,7 +644,7 @@ Y_UNIT_TEST_SUITE(KqpConstraints) { fQuery(R"( UPSERT INTO `/Root/AlterTableAddNotNullColumn` (Key, Value) VALUES (2, "OldNew"); - )"); + )"); fQuery(R"( UPSERT INTO `/Root/AlterTableAddNotNullColumn` (Key, Value) VALUES (3, "BrandNew"); @@ -583,6 +676,181 @@ Y_UNIT_TEST_SUITE(KqpConstraints) { } + Y_UNIT_TEST(AddNonColumnDoesnotReturnInternalError) { + + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnableSequences(false); + appConfig.MutableTableServiceConfig()->SetEnableColumnsWithDefault(true); + appConfig.MutableFeatureFlags()->SetEnableAddColumsWithDefaults(true); + + TKikimrRunner kikimr(TKikimrSettings().SetUseRealThreads(false).SetPQConfig(DefaultPQConfig()).SetAppConfig(appConfig)); + auto db = kikimr.RunCall([&] { return kikimr.GetTableClient(); } ); + auto session = kikimr.RunCall([&] { return db.CreateSession().GetValueSync().GetSession(); } ); + auto querySession = kikimr.RunCall([&] { return db.CreateSession().GetValueSync().GetSession(); } ); + + auto& runtime = *kikimr.GetTestServer().GetRuntime(); + + { + auto query = R"( + --!syntax_v1 + CREATE TABLE `/Root/AddNonColumnDoesnotReturnInternalError` ( + Key Uint32 NOT NULL, + Value String NOT NULL, + Value2 String NOT NULL DEFAULT "text", + PRIMARY KEY (Key) + ); + )"; + + auto result = kikimr.RunCall([&]{ return session.ExecuteSchemeQuery(query).GetValueSync(); }); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, + result.GetIssues().ToString()); + } + + auto fQuery = [&](TString query) -> TString { + NYdb::NTable::TExecDataQuerySettings execSettings; + execSettings.KeepInQueryCache(true); + execSettings.CollectQueryStats(ECollectQueryStatsMode::Basic); + + auto result = kikimr.RunCall([&] { + return querySession + .ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx(), + execSettings) + .ExtractValueSync(); } ); + + if (result.GetStatus() == EStatus::SUCCESS) { + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, + result.GetIssues().ToString()); + if (result.GetResultSets().size() > 0) + return NYdb::FormatResultSetYson(result.GetResultSet(0)); + return ""; + } else { + return TStringBuilder() << result.GetStatus() << ": " << result.GetIssues().ToString(); + } + }; + + fQuery(R"( + UPSERT INTO `/Root/AddNonColumnDoesnotReturnInternalError` (Key, Value) VALUES (1, "Old"); + )"); + + fQuery(R"( + UPDATE `/Root/AddNonColumnDoesnotReturnInternalError` SET Value2="Updated" WHERE Key=1; + )"); + + auto fCompareTable = [&](TString expected) { + TString query = R"( + SELECT * FROM `/Root/AddNonColumnDoesnotReturnInternalError` ORDER BY Key; + )"; + CompareYson(expected, fQuery(query)); + }; + + fCompareTable(R"( + [ + [1u;"Old";"Updated"] + ] + )"); + + auto alterQuery = R"( + --!syntax_v1 + ALTER TABLE `/Root/AddNonColumnDoesnotReturnInternalError` ADD COLUMN Value3 Int32 NOT NULL DEFAULT 7; + )"; + + bool enabledCapture = true; + TVector> delayedUpsertRows; + auto grab = [&delayedUpsertRows, &enabledCapture](TAutoPtr& ev) -> auto { + if (enabledCapture && ev->GetTypeRewrite() == NKikimr::TEvDataShard::TEvUploadRowsRequest::EventType) { + delayedUpsertRows.emplace_back(ev.Release()); + return TTestActorRuntime::EEventAction::DROP; + } + + return TTestActorRuntime::EEventAction::PROCESS; + }; + + TDispatchOptions opts; + opts.FinalEvents.emplace_back([&delayedUpsertRows](IEventHandle&) { + return delayedUpsertRows.size() > 0; + }); + + runtime.SetObserverFunc(grab); + + auto alterFuture = kikimr.RunInThreadPool([&] { return session.ExecuteSchemeQuery(alterQuery).GetValueSync(); }); + + runtime.DispatchEvents(opts); + Y_VERIFY_S(delayedUpsertRows.size() > 0, "no upload rows requests"); + + fQuery(R"( + UPSERT INTO `/Root/AddNonColumnDoesnotReturnInternalError` + (Key, Value) VALUES (2, "New"); + )"); + + fQuery(R"( + UPSERT INTO `/Root/AddNonColumnDoesnotReturnInternalError` + (Key, Value) VALUES (1, "Changed"); + )"); + + { + + TString result = fQuery(R"( + SELECT Key, Value2, Value3 FROM `/Root/AddNonColumnDoesnotReturnInternalError`; + )"); + + Cerr << result << Endl; + UNIT_ASSERT_STRING_CONTAINS(result, "GENERIC_ERROR"); + UNIT_ASSERT_STRING_CONTAINS(result, "Member not found: Value3. Did you mean Value"); + } + + { + TString result = fQuery(R"( + UPSERT INTO `/Root/AddNonColumnDoesnotReturnInternalError` + (Key, Value, Value2, Value3) VALUES (1, "4", "four", 1); + )"); + + Cerr << result << Endl; + UNIT_ASSERT_STRING_CONTAINS(result, "BAD_REQUEST"); + UNIT_ASSERT_STRING_CONTAINS(result, "is under build operation"); + } + + { + TString result = fQuery(R"( + UPDATE `/Root/AddNonColumnDoesnotReturnInternalError` SET Value3=1 WHERE Key=1; + )"); + + Cerr << result << Endl; + UNIT_ASSERT_STRING_CONTAINS(result, "BAD_REQUEST"); + UNIT_ASSERT_STRING_CONTAINS(result, "is under the build operation"); + } + + { + TString result = fQuery(R"( + DELETE FROM `/Root/AddNonColumnDoesnotReturnInternalError` WHERE Value3=7; + )"); + + Cerr << result << Endl; + UNIT_ASSERT_STRING_CONTAINS(result, "GENERIC_ERROR"); + UNIT_ASSERT_STRING_CONTAINS(result, "Member not found"); + } + + fCompareTable(R"( + [ + [1u;"Changed";"Updated"]; + [2u;"New";"text"] + ] + )"); + + enabledCapture = false; + for (const auto& ev: delayedUpsertRows) { + runtime.Send(ev); + } + + auto result = runtime.WaitFuture(alterFuture); + + fCompareTable(R"( + [ + [1u;"Changed";"Updated";7]; + [2u;"New";"text";7] + ] + )"); + } + Y_UNIT_TEST(IndexedTableAndNotNullColumnAddNotNullColumn) { NKikimrConfig::TAppConfig appConfig; @@ -673,6 +941,210 @@ Y_UNIT_TEST_SUITE(KqpConstraints) { ] )"); + { + auto query = R"( + --!syntax_v1 + ALTER TABLE `/Root/AlterTableAddNotNullColumn` ADD COLUMN Value4 Int8 NOT NULL DEFAULT Int8("-24"); + )"; + + auto result = session.ExecuteSchemeQuery(query).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, + result.GetIssues().ToString()); + } + + fCompareTable(R"( + [ + [[1u];["Old"];1;7;-24];[[2u];["New"];1;7;-24] + ] + )"); + + { + auto query = R"( + --!syntax_v1 + ALTER TABLE `/Root/AlterTableAddNotNullColumn` ADD COLUMN Value5 Int8 NOT NULL DEFAULT -25; + )"; + + auto result = session.ExecuteSchemeQuery(query).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, + result.GetIssues().ToString()); + } + + fCompareTable(R"( + [ + [[1u];["Old"];1;7;-24;-25];[[2u];["New"];1;7;-24;-25] + ] + )"); + + { + auto query = R"( + --!syntax_v1 + ALTER TABLE `/Root/AlterTableAddNotNullColumn` ADD COLUMN Value6 Float NOT NULL DEFAULT Float("1.0"); + )"; + + auto result = session.ExecuteSchemeQuery(query).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, + result.GetIssues().ToString()); + } + + fCompareTable(R"( + [ + [[1u];["Old"];1;7;-24;-25;1.];[[2u];["New"];1;7;-24;-25;1.] + ] + )"); + + { + auto query = R"( + --!syntax_v1 + ALTER TABLE `/Root/AlterTableAddNotNullColumn` ADD COLUMN Value7 Double NOT NULL DEFAULT Double("1.0"); + )"; + + auto result = session.ExecuteSchemeQuery(query).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, + result.GetIssues().ToString()); + } + + fCompareTable(R"( + [ + [[1u];["Old"];1;7;-24;-25;1.;1.];[[2u];["New"];1;7;-24;-25;1.;1.] + ] + )"); + + { + auto query = R"( + --!syntax_v1 + ALTER TABLE `/Root/AlterTableAddNotNullColumn` ADD COLUMN Value8 Yson NOT NULL DEFAULT Yson("[123]"); + )"; + + auto result = session.ExecuteSchemeQuery(query).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, + result.GetIssues().ToString()); + } + + fCompareTable(R"( + [ + [[1u];["Old"];1;7;-24;-25;1.;1.;"[123]"];[[2u];["New"];1;7;-24;-25;1.;1.;"[123]"] + ] + )"); + + { + auto query = R"( + --!syntax_v1 + ALTER TABLE `/Root/AlterTableAddNotNullColumn` ADD COLUMN Value9 Json NOT NULL DEFAULT Json("{\"age\" : 22}"); + )"; + + auto result = session.ExecuteSchemeQuery(query).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, + result.GetIssues().ToString()); + } + + fCompareTable(R"( + [ + [[1u];["Old"];1;7;-24;-25;1.;1.;"[123]";"{\"age\" : 22}"];[[2u];["New"];1;7;-24;-25;1.;1.;"[123]";"{\"age\" : 22}"] + ] + )"); + + { + auto query = R"( + --!syntax_v1 + ALTER TABLE `/Root/AlterTableAddNotNullColumn` ADD COLUMN Valuf1 Decimal(22,9) NOT NULL DEFAULT Decimal("1.11", 22, 9); + )"; + + auto result = session.ExecuteSchemeQuery(query).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, + result.GetIssues().ToString()); + } + + fCompareTable(R"( + [ + [[1u];["Old"];1;7;-24;-25;1.;1.;"[123]";"{\"age\" : 22}";"1.11"];[[2u];["New"];1;7;-24;-25;1.;1.;"[123]";"{\"age\" : 22}";"1.11"] + ] + )"); + + } + + Y_UNIT_TEST(Utf8AndDefault) { + + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnableSequences(false); + appConfig.MutableTableServiceConfig()->SetEnableColumnsWithDefault(true); + appConfig.MutableFeatureFlags()->SetEnableAddColumsWithDefaults(true); + + TKikimrRunner kikimr(TKikimrSettings().SetPQConfig(DefaultPQConfig()).SetAppConfig(appConfig)); + auto db = kikimr.GetTableClient(); + auto session = db.CreateSession().GetValueSync().GetSession(); + + { + auto query = R"( + --!syntax_v1 + CREATE TABLE `/Root/Utf8AndDefault` ( + Key Uint32, + Value Utf8 NOT NULL DEFAULT Utf8("Simple"), + Value3 Utf8 NOT NULL DEFAULT CAST("Impossibru" as Utf8), + PRIMARY KEY (Key), + ); + )"; + + auto result = session.ExecuteSchemeQuery(query).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, + result.GetIssues().ToString()); + } + + auto fQuery = [&](TString query) -> TString { + 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()); + if (result.GetResultSets().size() > 0) + return NYdb::FormatResultSetYson(result.GetResultSet(0)); + return ""; + }; + + fQuery(R"( + UPSERT INTO `/Root/Utf8AndDefault` (Key) VALUES (1); + )"); + + { + auto query = R"( + --!syntax_v1 + ALTER TABLE `/Root/Utf8AndDefault` ADD COLUMN Value2 Utf8 NOT NULL DEFAULT Utf8("Hard"); + )"; + + auto result = session.ExecuteSchemeQuery(query).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, + result.GetIssues().ToString()); + } + + { + auto query = R"( + --!syntax_v1 + ALTER TABLE `/Root/Utf8AndDefault` ADD COLUMN Value4 Utf8 NOT NULL DEFAULT CAST("Value4" as Utf8); + )"; + + auto result = session.ExecuteSchemeQuery(query).GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, + result.GetIssues().ToString()); + } + + auto fCompareTable = [&](TString expected) { + TString query = R"( + SELECT * FROM `/Root/Utf8AndDefault` ORDER BY Key; + )"; + CompareYson(expected, fQuery(query)); + }; + + fCompareTable(R"( + [ + [[1u];"Simple";"Hard";"Impossibru";"Value4"] + ] + )"); } Y_UNIT_TEST(AlterTableAddNotNullWithDefault) { @@ -715,7 +1187,7 @@ Y_UNIT_TEST_SUITE(KqpConstraints) { UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); - if (result.GetResultSets().size() > 0) + if (result.GetResultSets().size() > 0) return NYdb::FormatResultSetYson(result.GetResultSet(0)); return ""; }; @@ -760,7 +1232,7 @@ Y_UNIT_TEST_SUITE(KqpConstraints) { ] )"); - + fQuery(R"( UPSERT INTO `/Root/AlterTableAddNotNullColumn` (Key, Value, Value2) VALUES (2, "New", 2); )"); @@ -773,7 +1245,7 @@ Y_UNIT_TEST_SUITE(KqpConstraints) { fQuery(R"( UPSERT INTO `/Root/AlterTableAddNotNullColumn` (Key, Value) VALUES (2, "OldNew"); - )"); + )"); fQuery(R"( UPSERT INTO `/Root/AlterTableAddNotNullColumn` (Key, Value) VALUES (3, "BrandNew"); @@ -788,4 +1260,4 @@ Y_UNIT_TEST_SUITE(KqpConstraints) { } } -} // namespace NKikimr::NKqp \ No newline at end of file +} // namespace NKikimr::NKqp diff --git a/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp b/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp index 1f53b50a8337..d68616aecab4 100644 --- a/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp +++ b/ydb/core/kqp/ut/scheme/kqp_scheme_ut.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -7,7 +8,6 @@ #include #include #include -#include #include #include @@ -3995,7 +3995,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) { auto query = TStringBuilder() << R"( --!syntax_v1 CREATE TABLESTORE `)" << tableStoreName << R"(` ( - Key Uint64, + Key Uint64 NOT NULL, Value1 String, PRIMARY KEY (Key) ) @@ -4035,7 +4035,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) { auto query = TStringBuilder() << R"( --!syntax_v1 CREATE TABLE `)" << tableName << R"(` ( - Key Uint64, + Key Uint64 NOT NULL, Value1 String, PRIMARY KEY (Key) ) @@ -4050,7 +4050,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) { auto query2 = TStringBuilder() << R"( --!syntax_v1 CREATE TABLESTORE `)" << tableStoreName << R"(` ( - Key Uint64, + Key Uint64 NOT NULL, Value1 String, PRIMARY KEY (Key) ) @@ -4146,7 +4146,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) { auto query = TStringBuilder() << R"( --!syntax_v1 CREATE TABLESTORE `)" << tableStoreName << R"(` ( - Key Uint64, + Key Uint64 NOT NULL, Value1 String, PRIMARY KEY (Key) ) @@ -4161,7 +4161,7 @@ Y_UNIT_TEST_SUITE(KqpScheme) { auto query2 = TStringBuilder() << R"( --!syntax_v1 CREATE TABLE `)" << tableName << R"(` ( - Key Uint64, + Key Uint64 NOT NULL, Value1 String, PRIMARY KEY (Key) ) @@ -5130,6 +5130,37 @@ Y_UNIT_TEST_SUITE(KqpScheme) { Y_UNIT_TEST_SUITE(KqpOlapScheme) { + Y_UNIT_TEST(DropTable) { + TKikimrSettings runnerSettings; + runnerSettings.WithSampleTables = false; + TTestHelper testHelper(runnerSettings); + + TVector schema = { + TTestHelper::TColumnSchema().SetName("id").SetType(NScheme::NTypeIds::Int32).SetNullable(false), + TTestHelper::TColumnSchema().SetName("id_second").SetType(NScheme::NTypeIds::Int32).SetNullable(false), + TTestHelper::TColumnSchema().SetName("level").SetType(NScheme::NTypeIds::Int32), + TTestHelper::TColumnSchema().SetName("created_at").SetType(NScheme::NTypeIds::Timestamp).SetNullable(false) + }; + + TTestHelper::TColumnTable testTable; + testTable + .SetName("/Root/ColumnTableTest") + .SetPrimaryKey({ "id", "id_second" }) + .SetSharding({ "id" }) + .SetMinPartitionsCount(16) + .SetSchema(schema); + testHelper.CreateTable(testTable); + auto sender = testHelper.GetRuntime().AllocateEdgeActor(); + auto tabletIds = GetColumnTableShards(&testHelper.GetKikimr().GetTestServer(), sender, "/Root/ColumnTableTest"); + for (auto tablet: tabletIds) { + UNIT_ASSERT_C(testHelper.GetKikimr().GetTestClient().TabletExistsInHive(&testHelper.GetRuntime(), tablet), ToString(tablet) + " not alive"); + } + testHelper.DropTable("/Root/ColumnTableTest"); + for (auto tablet: tabletIds) { + UNIT_ASSERT_C(!testHelper.GetKikimr().GetTestClient().TabletExistsInHive(&testHelper.GetRuntime(), tablet), ToString(tablet) + " is alive"); + } + } + Y_UNIT_TEST(AddColumnLongPk) { TKikimrSettings runnerSettings; runnerSettings.WithSampleTables = false; @@ -5211,6 +5242,52 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) { } } + Y_UNIT_TEST(InvalidColumnInTieringRule) { + auto csController = NYDBTest::TControllers::RegisterCSControllerGuard(); + + TKikimrSettings runnerSettings; + runnerSettings.WithSampleTables = false; + TTestHelper testHelper(runnerSettings); + Tests::NCommon::TLoggerInit(testHelper.GetKikimr()).Initialize(); + + const TString tableName = "/Root/ColumnTableTest"; + + TVector schema = { + TTestHelper::TColumnSchema().SetName("id").SetType(NScheme::NTypeIds::Int32).SetNullable(false), + TTestHelper::TColumnSchema().SetName("id_second").SetType(NScheme::NTypeIds::Int32).SetNullable(false), + TTestHelper::TColumnSchema().SetName("level").SetType(NScheme::NTypeIds::Int32), + TTestHelper::TColumnSchema().SetName("created_at").SetType(NScheme::NTypeIds::Timestamp).SetNullable(false) + }; + + TTestHelper::TColumnTable testTable; + testTable.SetName(tableName).SetPrimaryKey({"id", "id_second"}).SetSharding({"id"}).SetSchema(schema).SetTTL("created_at", "Interval(\"PT1H\")"); + testHelper.CreateTable(testTable); + testHelper.CreateTier("tier1"); + + { + TTestHelper::TUpdatesBuilder tableInserter(testTable.GetArrowSchema(schema)); + tableInserter.AddRow().Add(1).Add(1).Add(7).Add((TInstant::Now() - TDuration::Days(30)).MilliSeconds()); + tableInserter.AddRow().Add(1).Add(2).Add(7).Add((TInstant::Now() - TDuration::Days(30)).MilliSeconds()); + testHelper.BulkUpsert(testTable, tableInserter); + } + + while (csController->GetInsertFinishedCounter().Val() == 0) { + Cout << "Wait indexation..." << Endl; + Sleep(TDuration::Seconds(2)); + } + + // const auto ruleName = testHelper.CreateTieringRule("tier1", "created_att"); + const auto ruleName = testHelper.CreateTieringRule("tier1", "created_at"); + testHelper.SetTiering(tableName, ruleName); + + while (csController->GetTieringUpdates().Val() == 0) { + Cout << "Wait tiering..." << Endl; + Sleep(TDuration::Seconds(2)); + } + + testHelper.RebootTablets(tableName); + } + Y_UNIT_TEST(AddColumnWithTtl) { TKikimrSettings runnerSettings; runnerSettings.WithSampleTables = false; @@ -5243,7 +5320,6 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) { UNIT_ASSERT_VALUES_EQUAL(description.GetTtlSettings()->GetDateTypeColumn().GetExpireAfter(), TDuration::Hours(1)); } { - schema.push_back(TTestHelper::TColumnSchema().SetName("new_column").SetType(NScheme::NTypeIds::Uint64)); auto alterQuery = TStringBuilder() << "ALTER TABLE `" << testTable.GetName() << "` ADD COLUMN new_column Uint64;"; auto alterResult = testHelper.GetSession().ExecuteSchemeQuery(alterQuery).GetValueSync(); UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), EStatus::SUCCESS, alterResult.GetIssues().ToString()); @@ -5258,12 +5334,7 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) { UNIT_ASSERT_VALUES_EQUAL(columns.size(), 5); UNIT_ASSERT_VALUES_EQUAL(description.GetTtlSettings()->GetDateTypeColumn().GetExpireAfter(), TDuration::Hours(1)); } - { - schema.push_back(TTestHelper::TColumnSchema().SetName("new_column").SetType(NScheme::NTypeIds::Uint64)); - auto alterQuery = TStringBuilder() << "ALTER TABLE `" << testTable.GetName() << R"(` SET(TIERING = 'tiering1');)"; - auto alterResult = testHelper.GetSession().ExecuteSchemeQuery(alterQuery).GetValueSync(); - UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), EStatus::SUCCESS, alterResult.GetIssues().ToString()); - } + testHelper.SetTiering("/Root/ColumnTableTest", "tiering1"); { auto settings = TDescribeTableSettings().WithTableStatistics(true); auto describeResult = testHelper.GetSession().DescribeTable("/Root/ColumnTableTest", settings).GetValueSync(); @@ -5275,7 +5346,6 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) { UNIT_ASSERT_VALUES_EQUAL(description.GetTtlSettings()->GetDateTypeColumn().GetExpireAfter(), TDuration::Hours(1)); } { - schema.push_back(TTestHelper::TColumnSchema().SetName("new_column").SetType(NScheme::NTypeIds::Uint64)); auto alterQuery = TStringBuilder() << "ALTER TABLE `" << testTable.GetName() << R"(` RESET (TTL);)"; auto alterResult = testHelper.GetSession().ExecuteSchemeQuery(alterQuery).GetValueSync(); UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), EStatus::SUCCESS, alterResult.GetIssues().ToString()); @@ -5290,12 +5360,7 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) { UNIT_ASSERT_VALUES_EQUAL(*description.GetTiering(), "tiering1"); UNIT_ASSERT(!description.GetTtlSettings()); } - { - schema.push_back(TTestHelper::TColumnSchema().SetName("new_column").SetType(NScheme::NTypeIds::Uint64)); - auto alterQuery = TStringBuilder() << "ALTER TABLE `" << testTable.GetName() << R"(` RESET (TIERING);)"; - auto alterResult = testHelper.GetSession().ExecuteSchemeQuery(alterQuery).GetValueSync(); - UNIT_ASSERT_VALUES_EQUAL_C(alterResult.GetStatus(), EStatus::SUCCESS, alterResult.GetIssues().ToString()); - } + testHelper.ResetTiering("/Root/ColumnTableTest"); { auto settings = TDescribeTableSettings().WithTableStatistics(true); auto describeResult = testHelper.GetSession().DescribeTable("/Root/ColumnTableTest", settings).GetValueSync(); @@ -5369,7 +5434,7 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) { TTestHelper::TColumnSchema().SetName("resource_id").SetType(NScheme::NTypeIds::Utf8), TTestHelper::TColumnSchema().SetName("level").SetType(NScheme::NTypeIds::Int32) }; - + Tests::NCommon::TLoggerInit(testHelper.GetKikimr()).Initialize(); TTestHelper::TColumnTable testTable; @@ -5534,8 +5599,8 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) { testHelper.ReadData("SELECT resource_id FROM `/Root/TableStoreTest/ColumnTableTest` WHERE id=3", "[[[\"test_res_3\"]]]"); testHelper.ReadData("SELECT new_column FROM `/Root/TableStoreTest/ColumnTableTest`", "[[#];[#];[[200u]]]"); - // testHelper.RebootTablets(testTable.GetName()); - // testHelper.ReadData("SELECT new_column FROM `/Root/TableStoreTest/ColumnTableTest`", "[[#];[#];[[200u]]]"); + testHelper.RebootTablets(testTable.GetName()); + testHelper.ReadData("SELECT new_column FROM `/Root/TableStoreTest/ColumnTableTest`", "[[#];[#];[[200u]]]"); } Y_UNIT_TEST(AddColumnErrors) { @@ -5594,6 +5659,19 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) { testHelper.ReadData("SELECT * FROM `/Root/ColumnTableTest` WHERE id=1", "[]"); } + Y_UNIT_TEST(BulkError) { + TKikimrSettings runnerSettings; + runnerSettings.WithSampleTables = false; + TTestHelper testHelper(runnerSettings); + + TVector schema = { + TTestHelper::TColumnSchema().SetName("id").SetType(NScheme::NTypeIds::Int32).SetNullable(false), + TTestHelper::TColumnSchema().SetName("level").SetType(NScheme::NTypeIds::Uuid).SetNullable(true) + }; + TTestHelper::TColumnTable testTable; + testTable.SetName("/Root/ColumnTableTest").SetPrimaryKey({"id"}).SetSharding({"id"}).SetSchema(schema); + testHelper.CreateTable(testTable, NYdb::EStatus::SCHEME_ERROR); + } Y_UNIT_TEST(DropColumn) { TKikimrSettings runnerSettings; runnerSettings.WithSampleTables = false; @@ -5841,6 +5919,26 @@ Y_UNIT_TEST_SUITE(KqpOlapScheme) { } testHelper.ReadData("SELECT COUNT(*) FROM `/Root/ColumnTableTest`", "[[10000u]]"); } + + Y_UNIT_TEST(NullKeySchema) { + TKikimrSettings runnerSettings; + runnerSettings.WithSampleTables = false; + TTestHelper testHelper(runnerSettings); + + TVector schema = { + TTestHelper::TColumnSchema().SetName("id").SetType(NScheme::NTypeIds::Int32).SetNullable(true), + TTestHelper::TColumnSchema().SetName("resource_id").SetType(NScheme::NTypeIds::Utf8).SetNullable(false), + TTestHelper::TColumnSchema().SetName("level").SetType(NScheme::NTypeIds::Int32).SetNullable(false) + }; + TTestHelper::TColumnTableStore testTableStore; + testTableStore.SetName("/Root/TableStoreTest").SetPrimaryKey({"id"}).SetSchema(schema); + testHelper.CreateTable(testTableStore, EStatus::SCHEME_ERROR); + + TTestHelper::TColumnTable testTable; + testTable.SetName("/Root/ColumnTableTest").SetPrimaryKey({"id"}).SetSchema(schema); + testHelper.CreateTable(testTable, EStatus::SCHEME_ERROR); + } + } Y_UNIT_TEST_SUITE(KqpOlapTypes) { @@ -5870,6 +5968,86 @@ Y_UNIT_TEST_SUITE(KqpOlapTypes) { testHelper.ReadData("SELECT * FROM `/Root/ColumnTableTest` WHERE id=1", TStringBuilder() << "[[1;" << ts.MicroSeconds() << "u;" << ts.MicroSeconds() << "u]]"); } + Y_UNIT_TEST(Decimal) { + TKikimrSettings runnerSettings; + runnerSettings.WithSampleTables = false; + + TTestHelper testHelper(runnerSettings); + + TVector schema = { + TTestHelper::TColumnSchema().SetName("id").SetType(NScheme::NTypeIds::Int64).SetNullable(false), + TTestHelper::TColumnSchema().SetName("dec").SetType(NScheme::NTypeIds::Decimal).SetNullable(false), + }; + + TTestHelper::TColumnTable testTable; + testTable.SetName("/Root/ColumnTableTest").SetPrimaryKey({"id", "dec"}).SetSharding({"id", "dec"}).SetSchema(schema); + testHelper.CreateTable(testTable); + + { + TValueBuilder builder; + builder.BeginList(); + builder.AddListItem().BeginStruct() + .AddMember("id").Int64(1) + .AddMember("dec").Decimal(TString("10.1")) + .EndStruct(); + builder.AddListItem().BeginStruct() + .AddMember("id").Int64(2) + .AddMember("dec").Decimal(TString("inf")) + .EndStruct(); + builder.AddListItem().BeginStruct() + .AddMember("id").Int64(3) + .AddMember("dec").Decimal(TString("-inf")) + .EndStruct(); + builder.AddListItem().BeginStruct() + .AddMember("id").Int64(4) + .AddMember("dec").Decimal(TString("nan")) + .EndStruct(); + builder.AddListItem().BeginStruct() + .AddMember("id").Int64(5) + .AddMember("dec").Decimal(TString("-nan")) + .EndStruct(); + builder.AddListItem().BeginStruct() + .AddMember("id").Int64(6) + .AddMember("dec").Decimal(TString("1.1")) + .EndStruct(); + builder.AddListItem().BeginStruct() + .AddMember("id").Int64(7) + .AddMember("dec").Decimal(TString("12.1")) + .EndStruct(); + builder.AddListItem().BeginStruct() + .AddMember("id").Int64(8) + .AddMember("dec").Decimal(TString("inf")) + .EndStruct(); + builder.AddListItem().BeginStruct() + .AddMember("id").Int64(9) + .AddMember("dec").Decimal(TString("-inf")) + .EndStruct(); + builder.AddListItem().BeginStruct() + .AddMember("id").Int64(10) + .AddMember("dec").Decimal(TString("2.1")) + .EndStruct(); + builder.AddListItem().BeginStruct() + .AddMember("id").Int64(11) + .AddMember("dec").Decimal(TString("15.1")) + .EndStruct(); + builder.EndList(); + const auto result = testHelper.GetKikimr().GetTableClient().BulkUpsert(testTable.GetName(), builder.Build()).GetValueSync(); + UNIT_ASSERT_C(result.IsSuccess() , result.GetIssues().ToString()); + } + testHelper.ReadData("SELECT dec FROM `/Root/ColumnTableTest` WHERE id=1", "[[\"10.1\"]]"); + testHelper.ReadData("SELECT dec FROM `/Root/ColumnTableTest` WHERE id=2", "[[\"inf\"]]"); + testHelper.ReadData("SELECT dec FROM `/Root/ColumnTableTest` WHERE id=3", "[[\"-inf\"]]"); + testHelper.ReadData("SELECT dec FROM `/Root/ColumnTableTest` WHERE id=4", "[[\"nan\"]]"); + testHelper.ReadData("SELECT dec FROM `/Root/ColumnTableTest` WHERE id=5", "[[\"-nan\"]]"); + testHelper.ReadData("SELECT id FROM `/Root/ColumnTableTest` WHERE dec=CAST(\"10.1\" As Decimal(22,9))", "[[1]]"); + testHelper.ReadData("SELECT id FROM `/Root/ColumnTableTest` WHERE dec=CAST(\"inf\" As Decimal(22,9)) ORDER BY id", "[[2];[8]]"); + testHelper.ReadData("SELECT id FROM `/Root/ColumnTableTest` WHERE dec=CAST(\"-inf\" As Decimal(22,9)) ORDER BY id", "[[3];[9]]"); + // Nan cannot by find. + testHelper.ReadData("SELECT id FROM `/Root/ColumnTableTest` WHERE dec=CAST(\"nan\" As Decimal(22,9))", "[]"); + testHelper.ReadData("SELECT id FROM `/Root/ColumnTableTest` WHERE dec=CAST(\"-nan\" As Decimal(22,9))", "[]"); + testHelper.ReadData("SELECT dec FROM `/Root/ColumnTableTest` WHERE id > 5 ORDER BY dec", "[[\"-inf\"];[\"1.1\"];[\"2.1\"];[\"12.1\"];[\"15.1\"];[\"inf\"]]"); + } + Y_UNIT_TEST(TimestampCmpErr) { TKikimrSettings runnerSettings; runnerSettings.WithSampleTables = false; diff --git a/ydb/core/kqp/ut/scheme/ya.make b/ydb/core/kqp/ut/scheme/ya.make index d086e49f2bcf..4b73a38eb2ea 100644 --- a/ydb/core/kqp/ut/scheme/ya.make +++ b/ydb/core/kqp/ut/scheme/ya.make @@ -23,6 +23,7 @@ PEERDIR( ydb/core/kqp ydb/core/kqp/ut/common ydb/library/yql/sql/pg_dummy + ydb/core/tx/columnshard/hooks/testing ) YQL_LAST_ABI_VERSION() diff --git a/ydb/core/kqp/ut/service/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/service/CMakeLists.darwin-arm64.txt index 69ab448fc667..e0a806da1b04 100644 --- a/ydb/core/kqp/ut/service/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/service/CMakeLists.darwin-arm64.txt @@ -19,6 +19,7 @@ target_link_libraries(ydb-core-kqp-ut-service PUBLIC yutil cpp-testing-unittest_main ydb-core-kqp + contrib-libs-fmt cpp-threading-local_executor kqp-ut-common yql-sql-pg @@ -31,8 +32,6 @@ target_link_options(ydb-core-kqp-ut-service PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-service PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/service/kqp_document_api_ut.cpp @@ -65,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 b018c01b4658..90c55ef51fee 100644 --- a/ydb/core/kqp/ut/service/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/service/CMakeLists.darwin-x86_64.txt @@ -20,6 +20,7 @@ target_link_libraries(ydb-core-kqp-ut-service PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main ydb-core-kqp + contrib-libs-fmt cpp-threading-local_executor kqp-ut-common yql-sql-pg @@ -32,8 +33,6 @@ target_link_options(ydb-core-kqp-ut-service PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-service PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/service/kqp_document_api_ut.cpp @@ -66,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/service/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/service/CMakeLists.linux-aarch64.txt index 2af7a6dca82d..4515436fbf96 100644 --- a/ydb/core/kqp/ut/service/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/service/CMakeLists.linux-aarch64.txt @@ -20,6 +20,7 @@ target_link_libraries(ydb-core-kqp-ut-service PUBLIC yutil cpp-testing-unittest_main ydb-core-kqp + contrib-libs-fmt cpp-threading-local_executor kqp-ut-common yql-sql-pg @@ -34,9 +35,6 @@ target_link_options(ydb-core-kqp-ut-service PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-service PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/service/kqp_document_api_ut.cpp @@ -69,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 47e075715903..4d5946d57f9e 100644 --- a/ydb/core/kqp/ut/service/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/service/CMakeLists.linux-x86_64.txt @@ -21,6 +21,7 @@ target_link_libraries(ydb-core-kqp-ut-service PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main ydb-core-kqp + contrib-libs-fmt cpp-threading-local_executor kqp-ut-common yql-sql-pg @@ -35,9 +36,6 @@ target_link_options(ydb-core-kqp-ut-service PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-service PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/service/kqp_document_api_ut.cpp @@ -70,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 69865b7eeecb..c2e1d661a027 100644 --- a/ydb/core/kqp/ut/service/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/service/CMakeLists.windows-x86_64.txt @@ -20,6 +20,7 @@ target_link_libraries(ydb-core-kqp-ut-service PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main ydb-core-kqp + contrib-libs-fmt cpp-threading-local_executor kqp-ut-common yql-sql-pg @@ -59,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp b/ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp index 460fa094bef0..c5e7b0e0e0c8 100644 --- a/ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp +++ b/ydb/core/kqp/ut/service/kqp_qs_queries_ut.cpp @@ -1,5 +1,7 @@ #include #include +#include +#include #include #include #include @@ -138,26 +140,55 @@ Y_UNIT_TEST_SUITE(KqpQueryService) { auto kikimr = DefaultKikimrRunner(); auto db = kikimr.GetQueryClient(); - auto it = db.StreamExecuteQuery(R"( - SELECT Key, Value2 FROM TwoShard WHERE Value2 > 0; - )", TTxControl::BeginTx().CommitTx()).ExtractValueSync(); - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + { + auto it = db.StreamExecuteQuery(R"( + SELECT Key, Value2 FROM TwoShard WHERE Value2 > 0; + )", TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + + ui64 count = 0; + for (;;) { + auto streamPart = it.ReadNext().GetValueSync(); + if (!streamPart.IsSuccess()) { + UNIT_ASSERT_C(streamPart.EOS(), streamPart.GetIssues().ToString()); + break; + } - ui64 count = 0; - for (;;) { - auto streamPart = it.ReadNext().GetValueSync(); - if (!streamPart.IsSuccess()) { - UNIT_ASSERT_C(streamPart.EOS(), streamPart.GetIssues().ToString()); - break; + if (streamPart.HasResultSet()) { + auto resultSet = streamPart.ExtractResultSet(); + count += resultSet.RowsCount(); + } } - if (streamPart.HasResultSet()) { - auto resultSet = streamPart.ExtractResultSet(); - count += resultSet.RowsCount(); - } + UNIT_ASSERT_VALUES_EQUAL(count, 2); } - UNIT_ASSERT_VALUES_EQUAL(count, 2); + { + auto it = db.StreamExecuteQuery(R"( + SELECT Key, Value2 FROM TwoShard WHERE false ORDER BY Key > 0; + )", TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + + ui32 rsCount = 0; + ui32 columns = 0; + for (;;) { + auto streamPart = it.ReadNext().GetValueSync(); + if (!streamPart.IsSuccess()) { + UNIT_ASSERT_C(streamPart.EOS(), streamPart.GetIssues().ToString()); + break; + } + + if (streamPart.HasResultSet()) { + auto resultSet = streamPart.ExtractResultSet(); + columns = resultSet.ColumnsCount(); + CompareYson(R"([])", FormatResultSetYson(resultSet)); + rsCount++; + } + } + + UNIT_ASSERT_VALUES_EQUAL(rsCount, 1); + UNIT_ASSERT_VALUES_EQUAL(columns, 2); + } } void CheckQueryResult(TExecuteQueryResult result) { @@ -240,27 +271,60 @@ Y_UNIT_TEST_SUITE(KqpQueryService) { UNIT_ASSERT_VALUES_EQUAL_C(sessionResult.GetStatus(), EStatus::SUCCESS, sessionResult.GetIssues().ToString()); auto session = sessionResult.GetSession(); - const TString query = "UPDATE TwoShard SET Value2 = 0"; - auto result = session.ExecuteQuery(query, TTxControl::BeginTx()).ExtractValueSync(); - UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); - auto transaction = result.GetTransaction(); - UNIT_ASSERT(transaction->IsActive()); + { + const TString query = "UPDATE TwoShard SET Value2 = 0"; + auto result = session.ExecuteQuery(query, TTxControl::BeginTx()).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + auto transaction = result.GetTransaction(); + UNIT_ASSERT(transaction->IsActive()); - auto checkResult = [&](TString expected) { - auto selectRes = db.ExecuteQuery( - "SELECT * FROM TwoShard ORDER BY Key", - TTxControl::BeginTx().CommitTx() - ).ExtractValueSync(); + auto checkResult = [&](TString expected) { + auto selectRes = db.ExecuteQuery( + "SELECT * FROM TwoShard ORDER BY Key", + TTxControl::BeginTx().CommitTx() + ).ExtractValueSync(); - UNIT_ASSERT_C(selectRes.IsSuccess(), selectRes.GetIssues().ToString()); - CompareYson(expected, FormatResultSetYson(selectRes.GetResultSet(0))); - }; - checkResult(R"([[[1u];["One"];[-1]];[[2u];["Two"];[0]];[[3u];["Three"];[1]];[[4000000001u];["BigOne"];[-1]];[[4000000002u];["BigTwo"];[0]];[[4000000003u];["BigThree"];[1]]])"); + UNIT_ASSERT_C(selectRes.IsSuccess(), selectRes.GetIssues().ToString()); + CompareYson(expected, FormatResultSetYson(selectRes.GetResultSet(0))); + }; + checkResult(R"([[[1u];["One"];[-1]];[[2u];["Two"];[0]];[[3u];["Three"];[1]];[[4000000001u];["BigOne"];[-1]];[[4000000002u];["BigTwo"];[0]];[[4000000003u];["BigThree"];[1]]])"); + + auto txRes = transaction->Commit().GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(txRes.GetStatus(), EStatus::SUCCESS, txRes.GetIssues().ToString()); - auto txRes = transaction->Commit().GetValueSync(); - UNIT_ASSERT_VALUES_EQUAL_C(txRes.GetStatus(), EStatus::SUCCESS, txRes.GetIssues().ToString()); + checkResult(R"([[[1u];["One"];[0]];[[2u];["Two"];[0]];[[3u];["Three"];[0]];[[4000000001u];["BigOne"];[0]];[[4000000002u];["BigTwo"];[0]];[[4000000003u];["BigThree"];[0]]])"); + } - checkResult(R"([[[1u];["One"];[0]];[[2u];["Two"];[0]];[[3u];["Three"];[0]];[[4000000001u];["BigOne"];[0]];[[4000000002u];["BigTwo"];[0]];[[4000000003u];["BigThree"];[0]]])"); + { + const TString query = "UPDATE TwoShard SET Value2 = 1"; + auto result = session.ExecuteQuery(query, TTxControl::BeginTx()).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + auto transaction = result.GetTransaction(); + UNIT_ASSERT(transaction->IsActive()); + + const TString query2 = "UPDATE KeyValue SET Value = 'Vic'"; + auto result2 = session.ExecuteQuery(query2, TTxControl::Tx(transaction->GetId())).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result2.GetStatus(), EStatus::SUCCESS, result2.GetIssues().ToString()); + auto transaction2 = result2.GetTransaction(); + UNIT_ASSERT(transaction2->IsActive()); + + auto checkResult = [&](TString table, TString expected) { + auto selectRes = db.ExecuteQuery( + Sprintf("SELECT * FROM %s ORDER BY Key", table.data()), + TTxControl::BeginTx().CommitTx() + ).ExtractValueSync(); + + UNIT_ASSERT_C(selectRes.IsSuccess(), selectRes.GetIssues().ToString()); + CompareYson(expected, FormatResultSetYson(selectRes.GetResultSet(0))); + }; + checkResult("TwoShard", R"([[[1u];["One"];[0]];[[2u];["Two"];[0]];[[3u];["Three"];[0]];[[4000000001u];["BigOne"];[0]];[[4000000002u];["BigTwo"];[0]];[[4000000003u];["BigThree"];[0]]])"); + checkResult("KeyValue", R"([[[1u];["One"]];[[2u];["Two"]]])"); + auto txRes = transaction->Commit().GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(txRes.GetStatus(), EStatus::SUCCESS, txRes.GetIssues().ToString()); + + checkResult("KeyValue", R"([[[1u];["Vic"]];[[2u];["Vic"]]])"); + checkResult("TwoShard", R"([[[1u];["One"];[1]];[[2u];["Two"];[1]];[[3u];["Three"];[1]];[[4000000001u];["BigOne"];[1]];[[4000000002u];["BigTwo"];[1]];[[4000000003u];["BigThree"];[1]]])"); + } } Y_UNIT_TEST(ExecuteQueryInteractiveTxCommitWithQuery) { @@ -365,6 +429,19 @@ Y_UNIT_TEST_SUITE(KqpQueryService) { } } + Y_UNIT_TEST(ExecuteDDLStatusCodeSchemeError) { + TKikimrRunner kikimr(NKqp::TKikimrSettings().SetWithSampleTables(false)); + { + auto db = kikimr.GetQueryClient(); + auto result = db.ExecuteQuery(R"( + CREATE TABLE unsupported_TzTimestamp (key Int32, payload TzTimestamp, primary key(key)))", + TTxControl::NoTx() + ).GetValueSync(); + + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SCHEME_ERROR, result.GetIssues().ToString()); + } + } + Y_UNIT_TEST(ExecuteQueryScalar) { auto kikimr = DefaultKikimrRunner(); auto db = kikimr.GetQueryClient(); @@ -671,6 +748,146 @@ Y_UNIT_TEST_SUITE(KqpQueryService) { checkDrop(true, EEx::IfExists, 1); } + Y_UNIT_TEST(DdlColumnTable) { + const TVector schema = { + TTestHelper::TColumnSchema().SetName("Key").SetType(NScheme::NTypeIds::Uint64).SetNullable(false), + TTestHelper::TColumnSchema().SetName("Value").SetType(NScheme::NTypeIds::String) + }; + + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + auto setting = NKikimrKqp::TKqpSetting(); + auto serverSettings = TKikimrSettings() + .SetAppConfig(appConfig) + .SetKqpSettings({setting}); + + TTestHelper testHelper(serverSettings); + auto& kikimr = testHelper.GetKikimr(); + + auto db = kikimr.GetQueryClient(); + + enum EEx { + Empty, + IfExists, + IfNotExists, + }; + + auto checkCreate = [&](bool expectSuccess, EEx exMode, const TString& objPath, bool isStore) { + UNIT_ASSERT_UNEQUAL(exMode, EEx::IfExists); + const TString ifNotExistsStatement = exMode == EEx::IfNotExists ? "IF NOT EXISTS" : ""; + const TString objType = isStore ? "TABLESTORE" : "TABLE"; + const TString hash = !isStore ? " PARTITION BY HASH(Key) " : ""; + auto sql = TStringBuilder() << R"( + --!syntax_v1 + CREATE )" << objType << " " << ifNotExistsStatement << " `" << objPath << R"(` ( + Key Uint64 NOT NULL, + Value String, + PRIMARY KEY (Key) + ))" << hash << R"( + WITH ( + STORE = COLUMN, + AUTO_PARTITIONING_MIN_PARTITIONS_COUNT = 10 + );)"; + + auto result = db.ExecuteQuery(sql, TTxControl::NoTx()).ExtractValueSync(); + if (expectSuccess) { + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + } else { + UNIT_ASSERT_VALUES_UNEQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + } + UNIT_ASSERT(result.GetResultSets().empty()); + }; + + auto checkAlter = [&](const TString& objPath, bool isStore) { + const TString objType = isStore ? "TABLESTORE" : "TABLE"; + { + auto sql = TStringBuilder() << R"( + --!syntax_v1 + ALTER )" << objType << " `" << objPath << R"(` + ADD COLUMN NewColumn Uint64; + ;)"; + + auto result = db.ExecuteQuery(sql, TTxControl::NoTx()).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + } + { + auto sql = TStringBuilder() << R"( + --!syntax_v1 + ALTER )" << objType << " `" << objPath << R"(` + DROP COLUMN NewColumn; + ;)"; + + auto result = db.ExecuteQuery(sql, TTxControl::NoTx()).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + } + }; + + auto checkDrop = [&](bool expectSuccess, EEx exMode, + const TString& objPath, bool isStore) { + UNIT_ASSERT_UNEQUAL(exMode, EEx::IfNotExists); + const TString ifExistsStatement = exMode == EEx::IfExists ? "IF EXISTS" : ""; + const TString objType = isStore ? "TABLESTORE" : "TABLE"; + auto sql = TStringBuilder() << R"( + --!syntax_v1 + DROP )" << objType << " " << ifExistsStatement << " `" << objPath << R"(`;)"; + + auto result = db.ExecuteQuery(sql, TTxControl::NoTx()).ExtractValueSync(); + if (expectSuccess) { + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + } else { + UNIT_ASSERT_VALUES_UNEQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); + } + UNIT_ASSERT(result.GetResultSets().empty()); + }; + + auto checkAddRow = [&](const TString& objPath) { + const size_t inserted_rows = 5; + TTestHelper::TColumnTable testTable; + testTable.SetName(objPath) + .SetPrimaryKey({"Key"}) + .SetSharding({"Key"}) + .SetSchema(schema); + { + TTestHelper::TUpdatesBuilder tableInserter(testTable.GetArrowSchema(schema)); + for (size_t i = 0; i < inserted_rows; i++) { + tableInserter.AddRow().Add(i).Add("test_res_" + std::to_string(i)); + } + testHelper.BulkUpsert(testTable, tableInserter); + } + + Sleep(TDuration::Seconds(100)); + + auto sql = TStringBuilder() << R"( + SELECT Value FROM `)" << objPath << R"(` WHERE Key=1)"; + + testHelper.ReadData(sql, "[[[\"test_res_1\"]]]"); + }; + + checkCreate(true, EEx::Empty, "/Root/TableStoreTest", true); + checkCreate(false, EEx::Empty, "/Root/TableStoreTest", true); + checkCreate(true, EEx::IfNotExists, "/Root/TableStoreTest", true); + checkDrop(true, EEx::Empty, "/Root/TableStoreTest", true); + checkDrop(true, EEx::IfExists, "/Root/TableStoreTest", true); + checkDrop(false, EEx::Empty, "/Root/TableStoreTest", true); + + checkCreate(true, EEx::IfNotExists, "/Root/TableStoreTest", true); + checkCreate(false, EEx::Empty, "/Root/TableStoreTest", true); + checkDrop(true, EEx::IfExists, "/Root/TableStoreTest", true); + checkDrop(false, EEx::Empty, "/Root/TableStoreTest", true); + + checkCreate(true, EEx::IfNotExists, "/Root/ColumnTable", false); + checkAlter("/Root/ColumnTable", false); + checkDrop(true, EEx::IfExists, "/Root/ColumnTable", false); + + checkCreate(true, EEx::Empty, "/Root/ColumnTable", false); + checkCreate(false, EEx::Empty, "/Root/ColumnTable", false); + checkCreate(true, EEx::IfNotExists, "/Root/ColumnTable", false); + checkAddRow("/Root/ColumnTable"); + checkDrop(true, EEx::IfExists, "/Root/ColumnTable", false); + checkDrop(false, EEx::Empty, "/Root/ColumnTable", false); + checkDrop(true, EEx::IfExists, "/Root/ColumnTable", false); + } + Y_UNIT_TEST(DdlUser) { NKikimrConfig::TAppConfig appConfig; appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); @@ -718,6 +935,137 @@ Y_UNIT_TEST_SUITE(KqpQueryService) { UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); } + Y_UNIT_TEST(CreateTempTable) { + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + auto setting = NKikimrKqp::TKqpSetting(); + auto serverSettings = TKikimrSettings() + .SetAppConfig(appConfig) + .SetKqpSettings({setting}); + TKikimrRunner kikimr( + serverSettings.SetWithSampleTables(false).SetEnableTempTables(true)); + auto clientConfig = NGRpcProxy::TGRpcClientConfig(kikimr.GetEndpoint()); + auto client = kikimr.GetQueryClient(); + { + auto session = client.GetSession().GetValueSync().GetSession(); + auto id = session.GetId(); + + const auto queryCreate = Q_(R"( + --!syntax_v1 + CREATE TEMP TABLE Temp ( + Key Uint64 NOT NULL, + Value String, + PRIMARY KEY (Key) + );)"); + + auto resultCreate = session.ExecuteQuery(queryCreate, NYdb::NQuery::TTxControl::NoTx()).ExtractValueSync(); + UNIT_ASSERT_C(resultCreate.IsSuccess(), resultCreate.GetIssues().ToString()); + + const auto querySelect = Q_(R"( + --!syntax_v1 + SELECT * FROM Temp; + )"); + + auto resultSelect = session.ExecuteQuery( + querySelect, NYdb::NQuery::TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_C(resultSelect.IsSuccess(), resultSelect.GetIssues().ToString()); + + bool allDoneOk = true; + NTestHelpers::CheckDelete(clientConfig, id, Ydb::StatusIds::SUCCESS, allDoneOk); + + UNIT_ASSERT(allDoneOk); + } + + { + const auto querySelect = Q_(R"( + --!syntax_v1 + SELECT * FROM Temp; + )"); + + auto resultSelect = client.ExecuteQuery( + querySelect, NYdb::NQuery::TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT(!resultSelect.IsSuccess()); + } + } + + Y_UNIT_TEST(TempTablesDrop) { + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + auto setting = NKikimrKqp::TKqpSetting(); + auto serverSettings = TKikimrSettings() + .SetAppConfig(appConfig) + .SetKqpSettings({setting}); + TKikimrRunner kikimr( + serverSettings.SetWithSampleTables(false).SetEnableTempTables(true)); + auto clientConfig = NGRpcProxy::TGRpcClientConfig(kikimr.GetEndpoint()); + auto client = kikimr.GetQueryClient(); + + auto session = client.GetSession().GetValueSync().GetSession(); + auto id = session.GetId(); + + const auto queryCreate = Q_(R"( + --!syntax_v1 + CREATE TEMPORARY TABLE Temp ( + Key Uint64 NOT NULL, + Value String, + PRIMARY KEY (Key) + );)"); + + auto resultCreate = session.ExecuteQuery(queryCreate, NYdb::NQuery::TTxControl::NoTx()).ExtractValueSync(); + UNIT_ASSERT_C(resultCreate.IsSuccess(), resultCreate.GetIssues().ToString()); + + { + const auto querySelect = Q_(R"( + --!syntax_v1 + SELECT * FROM Temp; + )"); + + auto resultSelect = session.ExecuteQuery( + querySelect, NYdb::NQuery::TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_C(resultSelect.IsSuccess(), resultSelect.GetIssues().ToString()); + } + + const auto queryDrop = Q_(R"( + --!syntax_v1 + DROP TABLE Temp; + )"); + + auto resultDrop = session.ExecuteQuery( + queryDrop, NYdb::NQuery::TTxControl::NoTx()).ExtractValueSync(); + UNIT_ASSERT_C(resultDrop.IsSuccess(), resultDrop.GetIssues().ToString()); + + { + const auto querySelect = Q_(R"( + --!syntax_v1 + SELECT * FROM Temp; + )"); + + auto resultSelect = session.ExecuteQuery( + querySelect, NYdb::NQuery::TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT(!resultSelect.IsSuccess()); + } + + bool allDoneOk = true; + NTestHelpers::CheckDelete(clientConfig, id, Ydb::StatusIds::SUCCESS, allDoneOk); + + UNIT_ASSERT(allDoneOk); + + auto sessionAnother = client.GetSession().GetValueSync().GetSession(); + auto idAnother = sessionAnother.GetId(); + UNIT_ASSERT(id != idAnother); + + { + const auto querySelect = Q_(R"( + --!syntax_v1 + SELECT * FROM Temp; + )"); + + auto resultSelect = sessionAnother.ExecuteQuery( + querySelect, NYdb::NQuery::TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT(!resultSelect.IsSuccess()); + } + } + Y_UNIT_TEST(DdlGroup) { NKikimrConfig::TAppConfig appConfig; appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); @@ -1321,6 +1669,45 @@ Y_UNIT_TEST_SUITE(KqpQueryService) { UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::PRECONDITION_FAILED, result.GetIssues().ToString()); } + Y_UNIT_TEST(DdlExecuteScript) { + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + auto setting = NKikimrKqp::TKqpSetting(); + auto serverSettings = TKikimrSettings() + .SetAppConfig(appConfig) + .SetKqpSettings({setting}) + .SetEnableScriptExecutionOperations(true); + + TKikimrRunner kikimr(serverSettings); + auto db = kikimr.GetQueryClient(); + + const TString sql = R"sql( + CREATE TABLE TestDdlExecuteScript ( + Key Uint64, + Value String, + PRIMARY KEY (Key) + ); + )sql"; + + auto scriptExecutionOperation = db.ExecuteScript(sql).ExtractValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(scriptExecutionOperation.Status().GetStatus(), EStatus::SUCCESS, scriptExecutionOperation.Status().GetIssues().ToString()); + UNIT_ASSERT(scriptExecutionOperation.Metadata().ExecutionId); + + NYdb::NOperation::TOperationClient client(kikimr.GetDriver()); + TMaybe readyOp; + while (true) { + auto op = client.Get(scriptExecutionOperation.Id()).GetValueSync(); + if (op.Ready()) { + readyOp = std::move(op); + break; + } + UNIT_ASSERT_C(op.Status().IsSuccess(), TStringBuilder() << op.Status().GetStatus() << ":" << op.Status().GetIssues().ToString()); + Sleep(TDuration::MilliSeconds(10)); + } + UNIT_ASSERT_C(readyOp->Status().IsSuccess(), readyOp->Status().GetIssues().ToString()); + UNIT_ASSERT_EQUAL_C(readyOp->Metadata().ExecStatus, EExecStatus::Completed, readyOp->Status().GetIssues().ToString()); + } + Y_UNIT_TEST(DdlMixedDml) { NKikimrConfig::TAppConfig appConfig; appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); @@ -1353,7 +1740,7 @@ Y_UNIT_TEST_SUITE(KqpQueryService) { UPSERT INTO KeyValue (Key, Value) VALUES (3, "Three"); SELECT * FROM KeyValue; )", TTxControl::NoTx()).ExtractValueSync(); - UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::PRECONDITION_FAILED, result.GetIssues().ToString()); + UNIT_ASSERT_VALUES_EQUAL_C(result.GetStatus(), EStatus::SUCCESS, result.GetIssues().ToString()); } Y_UNIT_TEST(Tcl) { @@ -1429,6 +1816,40 @@ Y_UNIT_TEST_SUITE(KqpQueryService) { UNIT_ASSERT(!service->IsUnsafeToShutdown()); } } + + Y_UNIT_TEST(ReplaceIntoWithDefaultValue) { + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnableColumnsWithDefault(true); + auto settings = TKikimrSettings() + .SetAppConfig(appConfig) + .SetWithSampleTables(false); + + TKikimrRunner kikimr(settings); + Tests::NCommon::TLoggerInit(kikimr).Initialize(); + + // auto session = kikimr.GetTableClient().CreateSession().GetValueSync().GetSession(); + auto client = kikimr.GetQueryClient(); + + { + auto createTable = client.ExecuteQuery(R"sql( + CREATE TABLE `/Root/test/tb` ( + id UInt32, + val UInt32 NOT NULL DEFAULT(100), + PRIMARY KEY(id) + ); + )sql", NYdb::NQuery::TTxControl::NoTx()).ExtractValueSync(); + UNIT_ASSERT_C(createTable.IsSuccess(), createTable.GetIssues().ToString()); + } + + { + auto replaceValues = client.ExecuteQuery(R"sql( + REPLACE INTO `/Root/test/tb` (id) VALUES + ( 1 ) + ; + )sql", NYdb::NQuery::TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_C(replaceValues.IsSuccess(), replaceValues.GetIssues().ToString()); + } + } } } // namespace NKqp diff --git a/ydb/core/kqp/ut/service/kqp_qs_scripts_ut.cpp b/ydb/core/kqp/ut/service/kqp_qs_scripts_ut.cpp index a91c4e4d3504..5fdb3ed11809 100644 --- a/ydb/core/kqp/ut/service/kqp_qs_scripts_ut.cpp +++ b/ydb/core/kqp/ut/service/kqp_qs_scripts_ut.cpp @@ -203,7 +203,7 @@ Y_UNIT_TEST_SUITE(KqpQueryServiceScripts) { } - void ExecuteScriptWithStatsMode (Ydb::Query::StatsMode statsMode) { + void ExecuteScriptWithStatsMode(Ydb::Query::StatsMode statsMode) { auto kikimr = DefaultKikimrRunner(); auto db = kikimr.GetQueryClient(); diff --git a/ydb/core/kqp/ut/spilling/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/spilling/CMakeLists.darwin-arm64.txt index a5d55a21c994..65d533b817ed 100644 --- a/ydb/core/kqp/ut/spilling/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/spilling/CMakeLists.darwin-arm64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-core-kqp-ut-spilling PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-spilling PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/spilling/kqp_scan_spilling_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/spilling/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/spilling/CMakeLists.darwin-x86_64.txt index 10b942cf5dbb..d432d81ff8d1 100644 --- a/ydb/core/kqp/ut/spilling/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/spilling/CMakeLists.darwin-x86_64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-core-kqp-ut-spilling PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-spilling PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/spilling/kqp_scan_spilling_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/spilling/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/spilling/CMakeLists.linux-aarch64.txt index e8a070085beb..8775c4d845ff 100644 --- a/ydb/core/kqp/ut/spilling/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/spilling/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-core-kqp-ut-spilling PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-spilling PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/spilling/kqp_scan_spilling_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/spilling/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/spilling/CMakeLists.linux-x86_64.txt index f6fee0ec8856..bdbe78c7a7f9 100644 --- a/ydb/core/kqp/ut/spilling/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/spilling/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-core-kqp-ut-spilling PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-spilling PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/spilling/kqp_scan_spilling_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/spilling/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/spilling/CMakeLists.windows-x86_64.txt index 045a7a8bbe21..48fc56a54de2 100644 --- a/ydb/core/kqp/ut/spilling/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/spilling/CMakeLists.windows-x86_64.txt @@ -55,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/sysview/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/sysview/CMakeLists.darwin-arm64.txt index 0f3ce6ed0d08..5fce5e3cdbfe 100644 --- a/ydb/core/kqp/ut/sysview/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/sysview/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-kqp-ut-sysview PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-sysview PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/sysview/kqp_sys_col_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/sysview/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/sysview/CMakeLists.darwin-x86_64.txt index 444e09c65ed7..ef24f01983f7 100644 --- a/ydb/core/kqp/ut/sysview/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/sysview/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kqp-ut-sysview PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-sysview PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/sysview/kqp_sys_col_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/sysview/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/sysview/CMakeLists.linux-aarch64.txt index ba8827188dc3..2bf058997d04 100644 --- a/ydb/core/kqp/ut/sysview/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/sysview/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-kqp-ut-sysview PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-sysview PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/sysview/kqp_sys_col_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/sysview/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/sysview/CMakeLists.linux-x86_64.txt index f94adcfb421d..e494adeaa4dc 100644 --- a/ydb/core/kqp/ut/sysview/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/sysview/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kqp-ut-sysview PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-sysview PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/sysview/kqp_sys_col_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/sysview/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/sysview/CMakeLists.windows-x86_64.txt index 9e916da5df39..f1929c215aaf 100644 --- a/ydb/core/kqp/ut/sysview/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/sysview/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/tx/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/tx/CMakeLists.darwin-arm64.txt index 56226845dca8..b011f8c4796c 100644 --- a/ydb/core/kqp/ut/tx/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/tx/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-kqp-ut-tx PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-tx PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/tx/kqp_locks_tricky_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/tx/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/tx/CMakeLists.darwin-x86_64.txt index 3acc9f49dbad..711bf8f8fed3 100644 --- a/ydb/core/kqp/ut/tx/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/tx/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kqp-ut-tx PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-tx PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/tx/kqp_locks_tricky_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/tx/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/tx/CMakeLists.linux-aarch64.txt index d58da1818bba..3e470abf81b4 100644 --- a/ydb/core/kqp/ut/tx/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/tx/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-kqp-ut-tx PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-tx PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/tx/kqp_locks_tricky_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/tx/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/tx/CMakeLists.linux-x86_64.txt index 74f0bb738c6e..4340f184c997 100644 --- a/ydb/core/kqp/ut/tx/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/tx/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kqp-ut-tx PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-tx PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/tx/kqp_locks_tricky_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/tx/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/tx/CMakeLists.windows-x86_64.txt index 2d757f0af955..181572024227 100644 --- a/ydb/core/kqp/ut/tx/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/tx/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/tx/kqp_mvcc_ut.cpp b/ydb/core/kqp/ut/tx/kqp_mvcc_ut.cpp index bf56e63e7985..a39c839e6ee2 100644 --- a/ydb/core/kqp/ut/tx/kqp_mvcc_ut.cpp +++ b/ydb/core/kqp/ut/tx/kqp_mvcc_ut.cpp @@ -50,21 +50,12 @@ Y_UNIT_TEST_SUITE(KqpSnapshotRead) { if (result.GetStatus() == EStatus::SUCCESS) continue; - if (settings.AppConfig.GetTableServiceConfig().GetEnableKqpDataQueryStreamLookup()) { - UNIT_ASSERT_C(HasIssue(result.GetIssues(), NYql::TIssuesIds::DEFAULT_ERROR, - [](const NYql::TIssue& issue){ - return issue.GetMessage().Contains("has no snapshot at"); - }), result.GetIssues().ToString()); - - UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::ABORTED); - } else { - UNIT_ASSERT_C(HasIssue(result.GetIssues(), NYql::TIssuesIds::DEFAULT_ERROR, - [](const NYql::TIssue& issue){ - return issue.GetMessage().Contains("stale snapshot"); - }), result.GetIssues().ToString()); - - UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::PRECONDITION_FAILED); - } + UNIT_ASSERT_C(HasIssue(result.GetIssues(), NYql::TIssuesIds::DEFAULT_ERROR, + [](const NYql::TIssue& issue){ + return issue.GetMessage().Contains("has no snapshot at"); + }), result.GetIssues().ToString()); + + UNIT_ASSERT_VALUES_EQUAL(result.GetStatus(), EStatus::ABORTED); caught = true; break; diff --git a/ydb/core/kqp/ut/view/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/view/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..d8cf46f21422 --- /dev/null +++ b/ydb/core/kqp/ut/view/CMakeLists.darwin-arm64.txt @@ -0,0 +1,72 @@ + +# 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-core-kqp-ut-view) +target_compile_options(ydb-core-kqp-ut-view PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-kqp-ut-view PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp +) +target_link_libraries(ydb-core-kqp-ut-view PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + ydb-core-kqp + kqp-ut-common + library-yql-sql + yql-utils-log + testlib-basics-default +) +target_link_options(ydb-core-kqp-ut-view PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-core-kqp-ut-view PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/view/view_ut.cpp +) +set_property( + TARGET + ydb-core-kqp-ut-view + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-kqp-ut-view + TEST_TARGET + ydb-core-kqp-ut-view + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-kqp-ut-view + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-kqp-ut-view + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-kqp-ut-view + system_allocator +) +vcs_info(ydb-core-kqp-ut-view) diff --git a/ydb/core/kqp/ut/view/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/view/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..daf4fe6b167c --- /dev/null +++ b/ydb/core/kqp/ut/view/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,73 @@ + +# 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-core-kqp-ut-view) +target_compile_options(ydb-core-kqp-ut-view PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-kqp-ut-view PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp +) +target_link_libraries(ydb-core-kqp-ut-view PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + ydb-core-kqp + kqp-ut-common + library-yql-sql + yql-utils-log + testlib-basics-default +) +target_link_options(ydb-core-kqp-ut-view PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-core-kqp-ut-view PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/view/view_ut.cpp +) +set_property( + TARGET + ydb-core-kqp-ut-view + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-kqp-ut-view + TEST_TARGET + ydb-core-kqp-ut-view + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-kqp-ut-view + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-kqp-ut-view + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-kqp-ut-view + system_allocator +) +vcs_info(ydb-core-kqp-ut-view) diff --git a/ydb/core/kqp/ut/view/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/view/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..9c969dd7f3e2 --- /dev/null +++ b/ydb/core/kqp/ut/view/CMakeLists.linux-aarch64.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-core-kqp-ut-view) +target_compile_options(ydb-core-kqp-ut-view PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-kqp-ut-view PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp +) +target_link_libraries(ydb-core-kqp-ut-view PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + ydb-core-kqp + kqp-ut-common + library-yql-sql + yql-utils-log + testlib-basics-default +) +target_link_options(ydb-core-kqp-ut-view PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-core-kqp-ut-view PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/view/view_ut.cpp +) +set_property( + TARGET + ydb-core-kqp-ut-view + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-kqp-ut-view + TEST_TARGET + ydb-core-kqp-ut-view + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-kqp-ut-view + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-kqp-ut-view + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-kqp-ut-view + cpp-malloc-jemalloc +) +vcs_info(ydb-core-kqp-ut-view) diff --git a/ydb/core/kqp/ut/view/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/view/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..0058c325d1f3 --- /dev/null +++ b/ydb/core/kqp/ut/view/CMakeLists.linux-x86_64.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-core-kqp-ut-view) +target_compile_options(ydb-core-kqp-ut-view PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-kqp-ut-view PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp +) +target_link_libraries(ydb-core-kqp-ut-view PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + ydb-core-kqp + kqp-ut-common + library-yql-sql + yql-utils-log + testlib-basics-default +) +target_link_options(ydb-core-kqp-ut-view PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-core-kqp-ut-view PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/view/view_ut.cpp +) +set_property( + TARGET + ydb-core-kqp-ut-view + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-kqp-ut-view + TEST_TARGET + ydb-core-kqp-ut-view + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-kqp-ut-view + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-kqp-ut-view + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-kqp-ut-view + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-core-kqp-ut-view) diff --git a/ydb/core/kqp/ut/view/CMakeLists.txt b/ydb/core/kqp/ut/view/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/core/kqp/ut/view/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/core/kqp/ut/view/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/view/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..75d6ffb60f23 --- /dev/null +++ b/ydb/core/kqp/ut/view/CMakeLists.windows-x86_64.txt @@ -0,0 +1,68 @@ + +# 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-core-kqp-ut-view) +target_compile_options(ydb-core-kqp-ut-view PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-core-kqp-ut-view PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp +) +target_link_libraries(ydb-core-kqp-ut-view PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + ydb-core-kqp + kqp-ut-common + library-yql-sql + yql-utils-log + testlib-basics-default +) +target_sources(ydb-core-kqp-ut-view PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/view/view_ut.cpp +) +set_property( + TARGET + ydb-core-kqp-ut-view + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-core-kqp-ut-view + TEST_TARGET + ydb-core-kqp-ut-view + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-core-kqp-ut-view + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-core-kqp-ut-view + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-core-kqp-ut-view + system_allocator +) +vcs_info(ydb-core-kqp-ut-view) diff --git a/ydb/core/kqp/ut/view/view_ut.cpp b/ydb/core/kqp/ut/view/view_ut.cpp index fed6b336e75b..3a74e319bef7 100644 --- a/ydb/core/kqp/ut/view/view_ut.cpp +++ b/ydb/core/kqp/ut/view/view_ut.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include @@ -8,6 +9,7 @@ using namespace NKikimr; using namespace NKikimr::NKqp; +using namespace NYdb; using namespace NYdb::NTable; namespace { @@ -60,10 +62,14 @@ void ExecuteDataDefinitionQuery(TSession& session, const TString& script) { << script << "\nThe issues:\n" << result.GetIssues().ToString()); } -TDataQueryResult ExecuteDataModificationQuery(TSession& session, const TString& script) { +TDataQueryResult ExecuteDataModificationQuery(TSession& session, + const TString& script, + const TExecDataQuerySettings& settings = {} +) { const auto result = session.ExecuteDataQuery( script, - TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx() + TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx(), + settings ).ExtractValueSync(); UNIT_ASSERT_C(result.IsSuccess(), "Failed to execute the following DML script:\n" << script << "\nThe issues:\n" << result.GetIssues().ToString()); @@ -71,6 +77,31 @@ TDataQueryResult ExecuteDataModificationQuery(TSession& session, const TString& return result; } +TValue GetSingleResult(const TDataQueryResult& rawResults) { + auto resultSetParser = rawResults.GetResultSetParser(0); + UNIT_ASSERT(resultSetParser.TryNextRow()); + return resultSetParser.GetValue(0); +} + +int GetInteger(const TValue& value) { + return TValueParser(value).GetInt32(); +} + +TMaybe GetFromCacheStat(const TQueryStats& stats) { + const auto& proto = TProtoAccessor::GetProto(stats); + if (!proto.Hascompilation()) { + return Nothing(); + } + return proto.Getcompilation().Getfrom_cache(); +} + +void AssertFromCache(const TMaybe& stats, bool expectedValue) { + UNIT_ASSERT(stats.Defined()); + const auto isFromCache = GetFromCacheStat(*stats); + UNIT_ASSERT_C(isFromCache.Defined(), stats->ToString()); + UNIT_ASSERT_VALUES_EQUAL_C(*isFromCache, expectedValue, stats->ToString()); +} + void CompareResults(const TDataQueryResult& first, const TDataQueryResult& second) { const auto& firstResults = first.GetResultSets(); const auto& secondResults = second.GetResultSets(); @@ -285,6 +316,24 @@ Y_UNIT_TEST_SUITE(TKQPViewTest) { UNIT_ASSERT(dropResult.GetIssues().ToString().Contains("Error: Path does not exist")); } } + + Y_UNIT_TEST(ContextPollution) { + TKikimrRunner kikimr(TKikimrSettings().SetWithSampleTables(false)); + EnableViewsFeatureFlag(kikimr); + auto session = kikimr.GetTableClient().CreateSession().GetValueSync().GetSession(); + + ExecuteDataDefinitionQuery(session, R"( + CREATE VIEW InnerView WITH (security_invoker = TRUE) AS SELECT 1; + )"); + ExecuteDataDefinitionQuery(session, R"( + CREATE VIEW OuterView WITH (security_invoker = TRUE) AS SELECT * FROM InnerView; + )"); + + ExecuteDataDefinitionQuery(session, R"( + DROP VIEW OuterView; + CREATE VIEW OuterView WITH (security_invoker = TRUE) AS SELECT * FROM InnerView; + )"); + } } Y_UNIT_TEST_SUITE(TSelectFromViewTest) { @@ -376,4 +425,51 @@ Y_UNIT_TEST_SUITE(TSelectFromViewTest) { ExecuteDataDefinitionQuery(session, ReadWholeFile(pathPrefix + "drop_view.sql")); } } + + Y_UNIT_TEST(QueryCacheIsUpdated) { + TKikimrRunner kikimr(TKikimrSettings().SetWithSampleTables(false)); + EnableViewsFeatureFlag(kikimr); + auto session = kikimr.GetTableClient().CreateSession().GetValueSync().GetSession(); + + constexpr const char* viewName = "TheView"; + + const auto getCreationQuery = [&viewName](const char* innerQuery) -> TString { + return std::format(R"( + CREATE VIEW {} WITH (security_invoker = TRUE) AS {}; + )", + viewName, + innerQuery + ); + }; + constexpr const char* firstInnerQuery = "SELECT 1"; + ExecuteDataDefinitionQuery(session, getCreationQuery(firstInnerQuery)); + + const TString selectFromViewQuery = std::format(R"( + SELECT * FROM {}; + )", + viewName + ); + TExecDataQuerySettings queryExecutionSettings; + queryExecutionSettings.KeepInQueryCache(true); + queryExecutionSettings.CollectQueryStats(ECollectQueryStatsMode::Basic); + ExecuteDataModificationQuery(session, selectFromViewQuery, queryExecutionSettings); + // make sure the server side cache is working by calling the same query twice + const auto cachedQueryRawResult = ExecuteDataModificationQuery(session, selectFromViewQuery, queryExecutionSettings); + AssertFromCache(cachedQueryRawResult.GetStats(), true); + UNIT_ASSERT_VALUES_EQUAL(GetInteger(GetSingleResult(cachedQueryRawResult)), 1); + + // recreate the view with a different query inside + ExecuteDataDefinitionQuery(session, std::format(R"( + DROP VIEW {}; + )", + viewName + ) + ); + constexpr const char* secondInnerQuery = "SELECT 2"; + ExecuteDataDefinitionQuery(session, getCreationQuery(secondInnerQuery)); + + const auto secondCallRawResult = ExecuteDataModificationQuery(session, selectFromViewQuery, queryExecutionSettings); + AssertFromCache(secondCallRawResult.GetStats(), false); + UNIT_ASSERT_VALUES_EQUAL(GetInteger(GetSingleResult(secondCallRawResult)), 2); + } } diff --git a/ydb/core/kqp/ut/yql/CMakeLists.darwin-arm64.txt b/ydb/core/kqp/ut/yql/CMakeLists.darwin-arm64.txt index 25daf9104e03..629ccc80ca7e 100644 --- a/ydb/core/kqp/ut/yql/CMakeLists.darwin-arm64.txt +++ b/ydb/core/kqp/ut/yql/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-kqp-ut-yql PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-yql PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/yql/kqp_pragma_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/yql/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/yql/CMakeLists.darwin-x86_64.txt index 5435e5c7d928..baf44792979f 100644 --- a/ydb/core/kqp/ut/yql/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/kqp/ut/yql/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-kqp-ut-yql PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-kqp-ut-yql PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/yql/kqp_pragma_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/yql/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/yql/CMakeLists.linux-aarch64.txt index 395fe66328c2..779147f6150f 100644 --- a/ydb/core/kqp/ut/yql/CMakeLists.linux-aarch64.txt +++ b/ydb/core/kqp/ut/yql/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-kqp-ut-yql PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-yql PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/yql/kqp_pragma_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/yql/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/yql/CMakeLists.linux-x86_64.txt index a1884e2913f9..899c5be142cd 100644 --- a/ydb/core/kqp/ut/yql/CMakeLists.linux-x86_64.txt +++ b/ydb/core/kqp/ut/yql/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-kqp-ut-yql PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-kqp-ut-yql PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/kqp/ut/yql/kqp_pragma_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/yql/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/yql/CMakeLists.windows-x86_64.txt index 2df2e09b818f..46275bd2d3ed 100644 --- a/ydb/core/kqp/ut/yql/CMakeLists.windows-x86_64.txt +++ b/ydb/core/kqp/ut/yql/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/kqp/ut/yql/kqp_scripting_ut.cpp b/ydb/core/kqp/ut/yql/kqp_scripting_ut.cpp index 077bab42893b..6525749d7ce2 100644 --- a/ydb/core/kqp/ut/yql/kqp_scripting_ut.cpp +++ b/ydb/core/kqp/ut/yql/kqp_scripting_ut.cpp @@ -942,7 +942,8 @@ Y_UNIT_TEST_SUITE(KqpScripting) { auto stats = NYdb::TProtoAccessor::GetProto(*result.GetStats()); - UNIT_ASSERT_VALUES_EQUAL(stats.query_phases().size(), 2); + UNIT_ASSERT_VALUES_EQUAL(stats.query_phases().size(), 3); + UNIT_ASSERT(stats.query_phases(1).table_access().empty()); for (const auto& phase : stats.query_phases()) { if (phase.table_access().size()) { if (phase.table_access(0).name() == "/Root/EightShard") { diff --git a/ydb/core/kqp/ut/yql/kqp_yql_ut.cpp b/ydb/core/kqp/ut/yql/kqp_yql_ut.cpp index 8ae6687ed686..3f53fef8009f 100644 --- a/ydb/core/kqp/ut/yql/kqp_yql_ut.cpp +++ b/ydb/core/kqp/ut/yql/kqp_yql_ut.cpp @@ -740,6 +740,95 @@ Y_UNIT_TEST_SUITE(KqpYql) { } } + Y_UNIT_TEST(TestUuidPrimaryKeyPrefixSearch) { + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + auto setting = NKikimrKqp::TKqpSetting(); + auto serverSettings = TKikimrSettings() + .SetAppConfig(appConfig) + .SetEnableUuidAsPrimaryKey(true) + .SetKqpSettings({setting}); + TKikimrRunner kikimr(serverSettings.SetWithSampleTables(false)); + + auto db = kikimr.GetTableClient(); + auto session = db.CreateSession().GetValueSync().GetSession(); + + TVector testUuids = { + "5b99a330-04ef-4f1a-9b64-ba6d5f44eafe", + "afcbef30-9ac3-481a-aa6a-8d9b785dbb0a", + "b91cd23b-861c-4cc1-9119-801a4dac1cb9", + "65df9ecc-a97d-47b2-ae56-3c023da6ee8c", + }; + + { + const auto query = Q_(R"( + CREATE TABLE test( + key uuid NOT NULL, + val int, + PRIMARY KEY (key) + ); + )"); + auto result = session.ExecuteSchemeQuery(query).ExtractValueSync(); + UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString()); + } + { + int val = 0; + for (const auto& uuid : testUuids) { + const auto query = Sprintf("\ + INSERT INTO test (key, val)\n\ + VALUES (Uuid(\"%s\"), %u);\n\ + ", uuid.Data(), val++); + auto result = session.ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString()); + } + } + { + int val = 0; + for (const auto& uuid : testUuids) { + const auto query = Sprintf("SELECT * FROM test WHERE key=Uuid(\"%s\");", uuid.Data()); + auto result = session.ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString()); + + TResultSetParser parser(result.GetResultSetParser(0)); + UNIT_ASSERT(parser.TryNextRow()); + UNIT_ASSERT_VALUES_EQUAL(parser.ColumnParser("val").GetOptionalInt32().GetRef(), val++); + UNIT_ASSERT_VALUES_EQUAL(parser.RowsCount(), 1); + } + } + } + + Y_UNIT_TEST(TestUuidDefaultColumn) { + NKikimrConfig::TAppConfig appConfig; + appConfig.MutableTableServiceConfig()->SetEnablePreparedDdl(true); + appConfig.MutableTableServiceConfig()->SetEnableColumnsWithDefault(true); + auto setting = NKikimrKqp::TKqpSetting(); + auto serverSettings = TKikimrSettings() + .SetAppConfig(appConfig) + .SetEnableUuidAsPrimaryKey(true) + .SetKqpSettings({setting}); + TKikimrRunner kikimr(serverSettings.SetWithSampleTables(false)); + + auto db = kikimr.GetTableClient(); + auto session = db.CreateSession().GetValueSync().GetSession(); + + { + const auto query = Q_(R"( + CREATE TABLE test( + key int NOT NULL, + val uuid NOT NULL DEFAULT Uuid("65df9ecc-a97d-47b2-ae56-3c023da6ee8c"), + PRIMARY KEY (key) + ); + )"); + auto result = session.ExecuteSchemeQuery(query).ExtractValueSync(); + UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString()); + } + { + const auto query = "INSERT INTO test (key) VALUES (0);"; + auto result = session.ExecuteDataQuery(query, TTxControl::BeginTx().CommitTx()).ExtractValueSync(); + UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString()); + } + } + Y_UNIT_TEST(UuidPrimaryKeyBulkUpsert) { auto settings = TKikimrSettings() .SetEnableUuidAsPrimaryKey(true) diff --git a/ydb/core/load_test/CMakeLists.darwin-arm64.txt b/ydb/core/load_test/CMakeLists.darwin-arm64.txt index 165bbf63620c..45d3f932ff72 100644 --- a/ydb/core/load_test/CMakeLists.darwin-arm64.txt +++ b/ydb/core/load_test/CMakeLists.darwin-arm64.txt @@ -43,6 +43,11 @@ target_link_libraries(ydb-core-load_test PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-core-load_test PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/actors.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/common.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/info_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/test_load_actor.h ${CMAKE_SOURCE_DIR}/ydb/core/load_test/aggregated_result.cpp ${CMAKE_SOURCE_DIR}/ydb/core/load_test/archive.cpp ${CMAKE_SOURCE_DIR}/ydb/core/load_test/config_examples.cpp diff --git a/ydb/core/load_test/CMakeLists.darwin-x86_64.txt b/ydb/core/load_test/CMakeLists.darwin-x86_64.txt index 165bbf63620c..45d3f932ff72 100644 --- a/ydb/core/load_test/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/load_test/CMakeLists.darwin-x86_64.txt @@ -43,6 +43,11 @@ target_link_libraries(ydb-core-load_test PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-core-load_test PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/actors.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/common.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/info_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/test_load_actor.h ${CMAKE_SOURCE_DIR}/ydb/core/load_test/aggregated_result.cpp ${CMAKE_SOURCE_DIR}/ydb/core/load_test/archive.cpp ${CMAKE_SOURCE_DIR}/ydb/core/load_test/config_examples.cpp diff --git a/ydb/core/load_test/CMakeLists.linux-aarch64.txt b/ydb/core/load_test/CMakeLists.linux-aarch64.txt index 460b2009bc20..34d39b18ad3b 100644 --- a/ydb/core/load_test/CMakeLists.linux-aarch64.txt +++ b/ydb/core/load_test/CMakeLists.linux-aarch64.txt @@ -44,6 +44,11 @@ target_link_libraries(ydb-core-load_test PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-core-load_test PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/actors.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/common.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/info_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/test_load_actor.h ${CMAKE_SOURCE_DIR}/ydb/core/load_test/aggregated_result.cpp ${CMAKE_SOURCE_DIR}/ydb/core/load_test/archive.cpp ${CMAKE_SOURCE_DIR}/ydb/core/load_test/config_examples.cpp diff --git a/ydb/core/load_test/CMakeLists.linux-x86_64.txt b/ydb/core/load_test/CMakeLists.linux-x86_64.txt index 460b2009bc20..34d39b18ad3b 100644 --- a/ydb/core/load_test/CMakeLists.linux-x86_64.txt +++ b/ydb/core/load_test/CMakeLists.linux-x86_64.txt @@ -44,6 +44,11 @@ target_link_libraries(ydb-core-load_test PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-core-load_test PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/actors.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/common.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/info_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/test_load_actor.h ${CMAKE_SOURCE_DIR}/ydb/core/load_test/aggregated_result.cpp ${CMAKE_SOURCE_DIR}/ydb/core/load_test/archive.cpp ${CMAKE_SOURCE_DIR}/ydb/core/load_test/config_examples.cpp diff --git a/ydb/core/load_test/CMakeLists.windows-x86_64.txt b/ydb/core/load_test/CMakeLists.windows-x86_64.txt index 165bbf63620c..45d3f932ff72 100644 --- a/ydb/core/load_test/CMakeLists.windows-x86_64.txt +++ b/ydb/core/load_test/CMakeLists.windows-x86_64.txt @@ -43,6 +43,11 @@ target_link_libraries(ydb-core-load_test PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-core-load_test PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/actors.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/common.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/info_collector.h + ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ycsb/test_load_actor.h ${CMAKE_SOURCE_DIR}/ydb/core/load_test/aggregated_result.cpp ${CMAKE_SOURCE_DIR}/ydb/core/load_test/archive.cpp ${CMAKE_SOURCE_DIR}/ydb/core/load_test/config_examples.cpp diff --git a/ydb/core/load_test/ut_ycsb/CMakeLists.darwin-arm64.txt b/ydb/core/load_test/ut_ycsb/CMakeLists.darwin-arm64.txt index fbb5e2cf2ecd..06aba26f932a 100644 --- a/ydb/core/load_test/ut_ycsb/CMakeLists.darwin-arm64.txt +++ b/ydb/core/load_test/ut_ycsb/CMakeLists.darwin-arm64.txt @@ -33,8 +33,6 @@ target_link_options(ydb-core-load_test-ut_ycsb PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-load_test-ut_ycsb PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ut_ycsb.cpp @@ -64,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/load_test/ut_ycsb/CMakeLists.darwin-x86_64.txt b/ydb/core/load_test/ut_ycsb/CMakeLists.darwin-x86_64.txt index 84a088bbd057..ca2dcae0900f 100644 --- a/ydb/core/load_test/ut_ycsb/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/load_test/ut_ycsb/CMakeLists.darwin-x86_64.txt @@ -34,8 +34,6 @@ target_link_options(ydb-core-load_test-ut_ycsb PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-load_test-ut_ycsb PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ut_ycsb.cpp @@ -65,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/load_test/ut_ycsb/CMakeLists.linux-aarch64.txt b/ydb/core/load_test/ut_ycsb/CMakeLists.linux-aarch64.txt index 22330944e729..b71f8fe0c253 100644 --- a/ydb/core/load_test/ut_ycsb/CMakeLists.linux-aarch64.txt +++ b/ydb/core/load_test/ut_ycsb/CMakeLists.linux-aarch64.txt @@ -36,9 +36,6 @@ target_link_options(ydb-core-load_test-ut_ycsb PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-load_test-ut_ycsb PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ut_ycsb.cpp @@ -68,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/load_test/ut_ycsb/CMakeLists.linux-x86_64.txt b/ydb/core/load_test/ut_ycsb/CMakeLists.linux-x86_64.txt index e4e06f548fcb..2d8ab051b8c5 100644 --- a/ydb/core/load_test/ut_ycsb/CMakeLists.linux-x86_64.txt +++ b/ydb/core/load_test/ut_ycsb/CMakeLists.linux-x86_64.txt @@ -37,9 +37,6 @@ target_link_options(ydb-core-load_test-ut_ycsb PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-load_test-ut_ycsb PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/load_test/ut_ycsb.cpp @@ -69,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/load_test/ut_ycsb/CMakeLists.windows-x86_64.txt b/ydb/core/load_test/ut_ycsb/CMakeLists.windows-x86_64.txt index 2792b431ed6c..403d37d51c51 100644 --- a/ydb/core/load_test/ut_ycsb/CMakeLists.windows-x86_64.txt +++ b/ydb/core/load_test/ut_ycsb/CMakeLists.windows-x86_64.txt @@ -58,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/local_pgwire/CMakeLists.darwin-arm64.txt b/ydb/core/local_pgwire/CMakeLists.darwin-arm64.txt index 3e3737ea5d59..676da89c2c21 100644 --- a/ydb/core/local_pgwire/CMakeLists.darwin-arm64.txt +++ b/ydb/core/local_pgwire/CMakeLists.darwin-arm64.txt @@ -28,6 +28,10 @@ target_link_libraries(ydb-core-local_pgwire PUBLIC lib-operation_id-protos ) target_sources(ydb-core-local_pgwire PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire.h + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_util.h + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/sql_parser.h ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_connection.cpp ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire.cpp ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_util.cpp diff --git a/ydb/core/local_pgwire/CMakeLists.darwin-x86_64.txt b/ydb/core/local_pgwire/CMakeLists.darwin-x86_64.txt index 3e3737ea5d59..676da89c2c21 100644 --- a/ydb/core/local_pgwire/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/local_pgwire/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,10 @@ target_link_libraries(ydb-core-local_pgwire PUBLIC lib-operation_id-protos ) target_sources(ydb-core-local_pgwire PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire.h + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_util.h + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/sql_parser.h ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_connection.cpp ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire.cpp ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_util.cpp diff --git a/ydb/core/local_pgwire/CMakeLists.linux-aarch64.txt b/ydb/core/local_pgwire/CMakeLists.linux-aarch64.txt index ac36041765ba..78789c725276 100644 --- a/ydb/core/local_pgwire/CMakeLists.linux-aarch64.txt +++ b/ydb/core/local_pgwire/CMakeLists.linux-aarch64.txt @@ -29,6 +29,10 @@ target_link_libraries(ydb-core-local_pgwire PUBLIC lib-operation_id-protos ) target_sources(ydb-core-local_pgwire PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire.h + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_util.h + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/sql_parser.h ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_connection.cpp ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire.cpp ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_util.cpp diff --git a/ydb/core/local_pgwire/CMakeLists.linux-x86_64.txt b/ydb/core/local_pgwire/CMakeLists.linux-x86_64.txt index ac36041765ba..78789c725276 100644 --- a/ydb/core/local_pgwire/CMakeLists.linux-x86_64.txt +++ b/ydb/core/local_pgwire/CMakeLists.linux-x86_64.txt @@ -29,6 +29,10 @@ target_link_libraries(ydb-core-local_pgwire PUBLIC lib-operation_id-protos ) target_sources(ydb-core-local_pgwire PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire.h + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_util.h + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/sql_parser.h ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_connection.cpp ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire.cpp ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_util.cpp diff --git a/ydb/core/local_pgwire/CMakeLists.windows-x86_64.txt b/ydb/core/local_pgwire/CMakeLists.windows-x86_64.txt index 3e3737ea5d59..676da89c2c21 100644 --- a/ydb/core/local_pgwire/CMakeLists.windows-x86_64.txt +++ b/ydb/core/local_pgwire/CMakeLists.windows-x86_64.txt @@ -28,6 +28,10 @@ target_link_libraries(ydb-core-local_pgwire PUBLIC lib-operation_id-protos ) target_sources(ydb-core-local_pgwire PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire.h + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_util.h + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/log_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/sql_parser.h ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_connection.cpp ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire.cpp ${CMAKE_SOURCE_DIR}/ydb/core/local_pgwire/local_pgwire_util.cpp diff --git a/ydb/core/log_backend/CMakeLists.darwin-arm64.txt b/ydb/core/log_backend/CMakeLists.darwin-arm64.txt index 94831d48f3c1..f8e53969f5d7 100644 --- a/ydb/core/log_backend/CMakeLists.darwin-arm64.txt +++ b/ydb/core/log_backend/CMakeLists.darwin-arm64.txt @@ -18,6 +18,8 @@ target_link_libraries(ydb-core-log_backend PUBLIC ydb-core-base ) target_sources(ydb-core-log_backend PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend.h + ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend_build.h ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend.cpp ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend_build.cpp ) diff --git a/ydb/core/log_backend/CMakeLists.darwin-x86_64.txt b/ydb/core/log_backend/CMakeLists.darwin-x86_64.txt index 94831d48f3c1..f8e53969f5d7 100644 --- a/ydb/core/log_backend/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/log_backend/CMakeLists.darwin-x86_64.txt @@ -18,6 +18,8 @@ target_link_libraries(ydb-core-log_backend PUBLIC ydb-core-base ) target_sources(ydb-core-log_backend PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend.h + ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend_build.h ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend.cpp ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend_build.cpp ) diff --git a/ydb/core/log_backend/CMakeLists.linux-aarch64.txt b/ydb/core/log_backend/CMakeLists.linux-aarch64.txt index 57ef405c9b74..44d817e6b12a 100644 --- a/ydb/core/log_backend/CMakeLists.linux-aarch64.txt +++ b/ydb/core/log_backend/CMakeLists.linux-aarch64.txt @@ -19,6 +19,8 @@ target_link_libraries(ydb-core-log_backend PUBLIC ydb-core-base ) target_sources(ydb-core-log_backend PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend.h + ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend_build.h ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend.cpp ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend_build.cpp ) diff --git a/ydb/core/log_backend/CMakeLists.linux-x86_64.txt b/ydb/core/log_backend/CMakeLists.linux-x86_64.txt index 57ef405c9b74..44d817e6b12a 100644 --- a/ydb/core/log_backend/CMakeLists.linux-x86_64.txt +++ b/ydb/core/log_backend/CMakeLists.linux-x86_64.txt @@ -19,6 +19,8 @@ target_link_libraries(ydb-core-log_backend PUBLIC ydb-core-base ) target_sources(ydb-core-log_backend PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend.h + ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend_build.h ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend.cpp ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend_build.cpp ) diff --git a/ydb/core/log_backend/CMakeLists.windows-x86_64.txt b/ydb/core/log_backend/CMakeLists.windows-x86_64.txt index 94831d48f3c1..f8e53969f5d7 100644 --- a/ydb/core/log_backend/CMakeLists.windows-x86_64.txt +++ b/ydb/core/log_backend/CMakeLists.windows-x86_64.txt @@ -18,6 +18,8 @@ target_link_libraries(ydb-core-log_backend PUBLIC ydb-core-base ) target_sources(ydb-core-log_backend PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend.h + ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend_build.h ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend.cpp ${CMAKE_SOURCE_DIR}/ydb/core/log_backend/log_backend_build.cpp ) diff --git a/ydb/core/metering/CMakeLists.darwin-arm64.txt b/ydb/core/metering/CMakeLists.darwin-arm64.txt index 41220d343f26..b9a5743743f7 100644 --- a/ydb/core/metering/CMakeLists.darwin-arm64.txt +++ b/ydb/core/metering/CMakeLists.darwin-arm64.txt @@ -32,6 +32,9 @@ target_link_libraries(ydb-core-metering PUBLIC library-cpp-resource ) target_sources(ydb-core-metering PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/metering/bill_record.h + ${CMAKE_SOURCE_DIR}/ydb/core/metering/metering.h + ${CMAKE_SOURCE_DIR}/ydb/core/metering/time_grid.h ${CMAKE_SOURCE_DIR}/ydb/core/metering/bill_record.cpp ${CMAKE_SOURCE_DIR}/ydb/core/metering/metering.cpp ${CMAKE_SOURCE_DIR}/ydb/core/metering/stream_ru_calculator.cpp diff --git a/ydb/core/metering/CMakeLists.darwin-x86_64.txt b/ydb/core/metering/CMakeLists.darwin-x86_64.txt index 41220d343f26..b9a5743743f7 100644 --- a/ydb/core/metering/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/metering/CMakeLists.darwin-x86_64.txt @@ -32,6 +32,9 @@ target_link_libraries(ydb-core-metering PUBLIC library-cpp-resource ) target_sources(ydb-core-metering PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/metering/bill_record.h + ${CMAKE_SOURCE_DIR}/ydb/core/metering/metering.h + ${CMAKE_SOURCE_DIR}/ydb/core/metering/time_grid.h ${CMAKE_SOURCE_DIR}/ydb/core/metering/bill_record.cpp ${CMAKE_SOURCE_DIR}/ydb/core/metering/metering.cpp ${CMAKE_SOURCE_DIR}/ydb/core/metering/stream_ru_calculator.cpp diff --git a/ydb/core/metering/CMakeLists.linux-aarch64.txt b/ydb/core/metering/CMakeLists.linux-aarch64.txt index cc32b93e4bf0..f42a1b6919a5 100644 --- a/ydb/core/metering/CMakeLists.linux-aarch64.txt +++ b/ydb/core/metering/CMakeLists.linux-aarch64.txt @@ -33,6 +33,9 @@ target_link_libraries(ydb-core-metering PUBLIC library-cpp-resource ) target_sources(ydb-core-metering PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/metering/bill_record.h + ${CMAKE_SOURCE_DIR}/ydb/core/metering/metering.h + ${CMAKE_SOURCE_DIR}/ydb/core/metering/time_grid.h ${CMAKE_SOURCE_DIR}/ydb/core/metering/bill_record.cpp ${CMAKE_SOURCE_DIR}/ydb/core/metering/metering.cpp ${CMAKE_SOURCE_DIR}/ydb/core/metering/stream_ru_calculator.cpp diff --git a/ydb/core/metering/CMakeLists.linux-x86_64.txt b/ydb/core/metering/CMakeLists.linux-x86_64.txt index cc32b93e4bf0..f42a1b6919a5 100644 --- a/ydb/core/metering/CMakeLists.linux-x86_64.txt +++ b/ydb/core/metering/CMakeLists.linux-x86_64.txt @@ -33,6 +33,9 @@ target_link_libraries(ydb-core-metering PUBLIC library-cpp-resource ) target_sources(ydb-core-metering PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/metering/bill_record.h + ${CMAKE_SOURCE_DIR}/ydb/core/metering/metering.h + ${CMAKE_SOURCE_DIR}/ydb/core/metering/time_grid.h ${CMAKE_SOURCE_DIR}/ydb/core/metering/bill_record.cpp ${CMAKE_SOURCE_DIR}/ydb/core/metering/metering.cpp ${CMAKE_SOURCE_DIR}/ydb/core/metering/stream_ru_calculator.cpp diff --git a/ydb/core/metering/CMakeLists.windows-x86_64.txt b/ydb/core/metering/CMakeLists.windows-x86_64.txt index 41220d343f26..b9a5743743f7 100644 --- a/ydb/core/metering/CMakeLists.windows-x86_64.txt +++ b/ydb/core/metering/CMakeLists.windows-x86_64.txt @@ -32,6 +32,9 @@ target_link_libraries(ydb-core-metering PUBLIC library-cpp-resource ) target_sources(ydb-core-metering PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/metering/bill_record.h + ${CMAKE_SOURCE_DIR}/ydb/core/metering/metering.h + ${CMAKE_SOURCE_DIR}/ydb/core/metering/time_grid.h ${CMAKE_SOURCE_DIR}/ydb/core/metering/bill_record.cpp ${CMAKE_SOURCE_DIR}/ydb/core/metering/metering.cpp ${CMAKE_SOURCE_DIR}/ydb/core/metering/stream_ru_calculator.cpp diff --git a/ydb/core/metering/ut/CMakeLists.darwin-arm64.txt b/ydb/core/metering/ut/CMakeLists.darwin-arm64.txt index e8a736588981..07b7e47985c2 100644 --- a/ydb/core/metering/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/metering/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-core-metering-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-metering-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/metering/stream_ru_calculator_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/metering/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/metering/ut/CMakeLists.darwin-x86_64.txt index 9507a0e45f69..a24c2b8e3918 100644 --- a/ydb/core/metering/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/metering/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-core-metering-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-metering-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/metering/stream_ru_calculator_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/metering/ut/CMakeLists.linux-aarch64.txt b/ydb/core/metering/ut/CMakeLists.linux-aarch64.txt index 253a913bae3e..43eec0da0be6 100644 --- a/ydb/core/metering/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/metering/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-core-metering-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-metering-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/metering/stream_ru_calculator_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/metering/ut/CMakeLists.linux-x86_64.txt b/ydb/core/metering/ut/CMakeLists.linux-x86_64.txt index b3bd83fcc96c..0db07b2b1175 100644 --- a/ydb/core/metering/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/metering/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-core-metering-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-metering-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/metering/stream_ru_calculator_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/metering/ut/CMakeLists.windows-x86_64.txt b/ydb/core/metering/ut/CMakeLists.windows-x86_64.txt index bc728e82506c..dff051d4abae 100644 --- a/ydb/core/metering/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/metering/ut/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/CMakeLists.darwin-arm64.txt b/ydb/core/mind/CMakeLists.darwin-arm64.txt index d8549961e1f3..69767b590ee1 100644 --- a/ydb/core/mind/CMakeLists.darwin-arm64.txt +++ b/ydb/core/mind/CMakeLists.darwin-arm64.txt @@ -41,6 +41,22 @@ target_link_libraries(ydb-core-mind PUBLIC core-tx-schemeshard ) target_sources(ydb-core-mind PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/configured_tablet_bootstrapper.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/labels_maintainer.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/lease_holder.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/local.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker__scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/table_adapter.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_node_enumeration.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_pool.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker__scheme.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/configured_tablet_bootstrapper.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver_mon.cpp diff --git a/ydb/core/mind/CMakeLists.darwin-x86_64.txt b/ydb/core/mind/CMakeLists.darwin-x86_64.txt index d8549961e1f3..69767b590ee1 100644 --- a/ydb/core/mind/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/mind/CMakeLists.darwin-x86_64.txt @@ -41,6 +41,22 @@ target_link_libraries(ydb-core-mind PUBLIC core-tx-schemeshard ) target_sources(ydb-core-mind PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/configured_tablet_bootstrapper.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/labels_maintainer.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/lease_holder.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/local.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker__scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/table_adapter.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_node_enumeration.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_pool.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker__scheme.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/configured_tablet_bootstrapper.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver_mon.cpp diff --git a/ydb/core/mind/CMakeLists.linux-aarch64.txt b/ydb/core/mind/CMakeLists.linux-aarch64.txt index fe19ce801d0e..08a0484b888c 100644 --- a/ydb/core/mind/CMakeLists.linux-aarch64.txt +++ b/ydb/core/mind/CMakeLists.linux-aarch64.txt @@ -42,6 +42,22 @@ target_link_libraries(ydb-core-mind PUBLIC core-tx-schemeshard ) target_sources(ydb-core-mind PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/configured_tablet_bootstrapper.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/labels_maintainer.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/lease_holder.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/local.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker__scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/table_adapter.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_node_enumeration.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_pool.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker__scheme.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/configured_tablet_bootstrapper.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver_mon.cpp diff --git a/ydb/core/mind/CMakeLists.linux-x86_64.txt b/ydb/core/mind/CMakeLists.linux-x86_64.txt index fe19ce801d0e..08a0484b888c 100644 --- a/ydb/core/mind/CMakeLists.linux-x86_64.txt +++ b/ydb/core/mind/CMakeLists.linux-x86_64.txt @@ -42,6 +42,22 @@ target_link_libraries(ydb-core-mind PUBLIC core-tx-schemeshard ) target_sources(ydb-core-mind PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/configured_tablet_bootstrapper.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/labels_maintainer.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/lease_holder.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/local.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker__scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/table_adapter.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_node_enumeration.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_pool.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker__scheme.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/configured_tablet_bootstrapper.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver_mon.cpp diff --git a/ydb/core/mind/CMakeLists.windows-x86_64.txt b/ydb/core/mind/CMakeLists.windows-x86_64.txt index d8549961e1f3..69767b590ee1 100644 --- a/ydb/core/mind/CMakeLists.windows-x86_64.txt +++ b/ydb/core/mind/CMakeLists.windows-x86_64.txt @@ -41,6 +41,22 @@ target_link_libraries(ydb-core-mind PUBLIC core-tx-schemeshard ) target_sources(ydb-core-mind PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/configured_tablet_bootstrapper.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/labels_maintainer.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/lease_holder.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/local.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker__scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/table_adapter.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_node_enumeration.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_pool.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/tenant_slot_broker__scheme.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/configured_tablet_bootstrapper.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/dynamic_nameserver_mon.cpp diff --git a/ydb/core/mind/address_classification/ut/CMakeLists.darwin-arm64.txt b/ydb/core/mind/address_classification/ut/CMakeLists.darwin-arm64.txt index 38e28684aa90..38cf713229c6 100644 --- a/ydb/core/mind/address_classification/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/mind/address_classification/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-mind-address_classification-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-mind-address_classification-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/address_classification/net_classifier_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/address_classification/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/mind/address_classification/ut/CMakeLists.darwin-x86_64.txt index 1a117c20ed76..2a40a7e3cc9a 100644 --- a/ydb/core/mind/address_classification/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/mind/address_classification/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-mind-address_classification-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-mind-address_classification-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/address_classification/net_classifier_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/address_classification/ut/CMakeLists.linux-aarch64.txt b/ydb/core/mind/address_classification/ut/CMakeLists.linux-aarch64.txt index eeb1ce39f836..be78bdab774b 100644 --- a/ydb/core/mind/address_classification/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/mind/address_classification/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-mind-address_classification-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-mind-address_classification-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/address_classification/net_classifier_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/address_classification/ut/CMakeLists.linux-x86_64.txt b/ydb/core/mind/address_classification/ut/CMakeLists.linux-x86_64.txt index aa925270168c..743e33ba1eee 100644 --- a/ydb/core/mind/address_classification/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/mind/address_classification/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-mind-address_classification-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-mind-address_classification-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/address_classification/net_classifier_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/address_classification/ut/CMakeLists.windows-x86_64.txt b/ydb/core/mind/address_classification/ut/CMakeLists.windows-x86_64.txt index a2d9b3b24ee3..24d82a5374ca 100644 --- a/ydb/core/mind/address_classification/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/mind/address_classification/ut/CMakeLists.windows-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/CMakeLists.darwin-arm64.txt b/ydb/core/mind/bscontroller/CMakeLists.darwin-arm64.txt index d1becb96e37d..cbe98c670d6a 100644 --- a/ydb/core/mind/bscontroller/CMakeLists.darwin-arm64.txt +++ b/ydb/core/mind/bscontroller/CMakeLists.darwin-arm64.txt @@ -29,6 +29,29 @@ target_link_libraries(core-mind-bscontroller PUBLIC core-tx-tx_proxy ) target_sources(core-mind-bscontroller PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/bsc.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/config.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/diff.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/error.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/grouper.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/group_layout_checker.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/group_mapper.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/indir.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/layout_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/mood.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/mv_object_map.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/resources.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/select_groups.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/self_heal.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/stat_processor.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/storage_pool_stat.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/sys_view.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/table_merger.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/types.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/vdisk_status_tracker.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/bsc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/cmds_box.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/cmds_drive_status.cpp diff --git a/ydb/core/mind/bscontroller/CMakeLists.darwin-x86_64.txt b/ydb/core/mind/bscontroller/CMakeLists.darwin-x86_64.txt index d1becb96e37d..cbe98c670d6a 100644 --- a/ydb/core/mind/bscontroller/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/mind/bscontroller/CMakeLists.darwin-x86_64.txt @@ -29,6 +29,29 @@ target_link_libraries(core-mind-bscontroller PUBLIC core-tx-tx_proxy ) target_sources(core-mind-bscontroller PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/bsc.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/config.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/diff.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/error.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/grouper.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/group_layout_checker.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/group_mapper.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/indir.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/layout_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/mood.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/mv_object_map.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/resources.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/select_groups.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/self_heal.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/stat_processor.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/storage_pool_stat.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/sys_view.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/table_merger.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/types.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/vdisk_status_tracker.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/bsc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/cmds_box.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/cmds_drive_status.cpp diff --git a/ydb/core/mind/bscontroller/CMakeLists.linux-aarch64.txt b/ydb/core/mind/bscontroller/CMakeLists.linux-aarch64.txt index e3db61c58a04..c24acec2e2f6 100644 --- a/ydb/core/mind/bscontroller/CMakeLists.linux-aarch64.txt +++ b/ydb/core/mind/bscontroller/CMakeLists.linux-aarch64.txt @@ -30,6 +30,29 @@ target_link_libraries(core-mind-bscontroller PUBLIC core-tx-tx_proxy ) target_sources(core-mind-bscontroller PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/bsc.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/config.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/diff.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/error.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/grouper.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/group_layout_checker.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/group_mapper.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/indir.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/layout_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/mood.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/mv_object_map.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/resources.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/select_groups.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/self_heal.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/stat_processor.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/storage_pool_stat.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/sys_view.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/table_merger.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/types.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/vdisk_status_tracker.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/bsc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/cmds_box.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/cmds_drive_status.cpp diff --git a/ydb/core/mind/bscontroller/CMakeLists.linux-x86_64.txt b/ydb/core/mind/bscontroller/CMakeLists.linux-x86_64.txt index e3db61c58a04..c24acec2e2f6 100644 --- a/ydb/core/mind/bscontroller/CMakeLists.linux-x86_64.txt +++ b/ydb/core/mind/bscontroller/CMakeLists.linux-x86_64.txt @@ -30,6 +30,29 @@ target_link_libraries(core-mind-bscontroller PUBLIC core-tx-tx_proxy ) target_sources(core-mind-bscontroller PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/bsc.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/config.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/diff.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/error.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/grouper.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/group_layout_checker.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/group_mapper.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/indir.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/layout_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/mood.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/mv_object_map.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/resources.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/select_groups.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/self_heal.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/stat_processor.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/storage_pool_stat.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/sys_view.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/table_merger.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/types.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/vdisk_status_tracker.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/bsc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/cmds_box.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/cmds_drive_status.cpp diff --git a/ydb/core/mind/bscontroller/CMakeLists.windows-x86_64.txt b/ydb/core/mind/bscontroller/CMakeLists.windows-x86_64.txt index d1becb96e37d..cbe98c670d6a 100644 --- a/ydb/core/mind/bscontroller/CMakeLists.windows-x86_64.txt +++ b/ydb/core/mind/bscontroller/CMakeLists.windows-x86_64.txt @@ -29,6 +29,29 @@ target_link_libraries(core-mind-bscontroller PUBLIC core-tx-tx_proxy ) target_sources(core-mind-bscontroller PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/bsc.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/config.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/diff.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/error.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/grouper.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/group_layout_checker.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/group_mapper.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/indir.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/layout_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/mood.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/mv_object_map.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/resources.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/scheme.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/select_groups.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/self_heal.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/stat_processor.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/storage_pool_stat.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/sys_view.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/table_merger.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/types.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/vdisk_status_tracker.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/bsc.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/cmds_box.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/cmds_drive_status.cpp diff --git a/ydb/core/mind/bscontroller/cmds_drive_status.cpp b/ydb/core/mind/bscontroller/cmds_drive_status.cpp index 43c42725a2bd..f9da816720c4 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/cmds_storage_pool.cpp b/ydb/core/mind/bscontroller/cmds_storage_pool.cpp index cb77e008429e..ebbda8085fa3 100644 --- a/ydb/core/mind/bscontroller/cmds_storage_pool.cpp +++ b/ydb/core/mind/bscontroller/cmds_storage_pool.cpp @@ -704,7 +704,7 @@ namespace NKikimr::NBsController { TGroupInfo *group = Groups.FindForUpdate(vslot->GroupId); vslot->Mood = TMood::Wipe; - vslot->Status = NKikimrBlobStorage::EVDiskStatus::INIT_PENDING; + vslot->Status = NKikimrBlobStorage::EVDiskStatus::ERROR; vslot->IsReady = false; GroupFailureModelChanged.insert(group->ID); group->CalculateGroupStatus(); @@ -750,7 +750,7 @@ namespace NKikimr::NBsController { TGroupInfo *group = Groups.FindForUpdate(vslot->GroupId); vslot->Mood = targetMood; - vslot->Status = NKikimrBlobStorage::EVDiskStatus::INIT_PENDING; + vslot->Status = NKikimrBlobStorage::EVDiskStatus::ERROR; vslot->IsReady = false; GroupFailureModelChanged.insert(group->ID); group->CalculateGroupStatus(); diff --git a/ydb/core/mind/bscontroller/config.cpp b/ydb/core/mind/bscontroller/config.cpp index 32ffdcb32c58..83db6d3f033e 100644 --- a/ydb/core/mind/bscontroller/config.cpp +++ b/ydb/core/mind/bscontroller/config.cpp @@ -17,22 +17,21 @@ namespace NKikimr::NBsController { , State(state) {} - void Execute(std::deque>& outbox) { + void Execute() { ApplyUpdates(); for (auto &pair : Services) { const TNodeId &nodeId = pair.first; - if (TNodeInfo *node = Self->FindNode(nodeId); node && node->ConnectedCount) { - auto event = MakeHolder(); + if (TNodeInfo *node = Self->FindNode(nodeId); node && node->ConnectedServerId) { + auto event = std::make_unique(); auto& record = event->Record; pair.second.Swap(&record); record.SetStatus(NKikimrProto::OK); record.SetNodeID(nodeId); record.SetInstanceId(Self->InstanceId); record.SetAvailDomain(AppData()->DomainsInfo->GetDomainUidByTabletId(Self->TabletID())); - outbox.push_back(std::make_unique(MakeBlobStorageNodeWardenID(nodeId), - Self->SelfId(), event.Release())); + State.Outbox.emplace_back(nodeId, std::move(event), 0); } } } @@ -98,7 +97,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 @@ -233,6 +232,18 @@ namespace NKikimr::NBsController { NKikimrBlobStorage::TNodeWardenServiceSet *service = Services[nodeId].MutableServiceSet(); SerializeGroupInfo(service->AddGroups(), groupInfo, storagePoolName, scopeId); } + + // push group state notification to NodeWhiteboard (for virtual groups only) + if (groupInfo.VirtualGroupState) { + TBlobStorageGroupInfo::TDynamicInfo dynInfo(groupInfo.ID, groupInfo.Generation); + for (const auto& vdisk : groupInfo.VDisksInGroup) { + const auto& id = vdisk->VSlotId; + dynInfo.PushBackActorId(MakeBlobStorageVDiskID(id.NodeId, id.PDiskId, id.VSlotId)); + } + State.NodeWhiteboardOutbox.emplace_back(new NNodeWhiteboard::TEvWhiteboard::TEvBSGroupStateUpdate( + MakeIntrusive(groupInfo.Topology, std::move(dynInfo), storagePoolName, + scopeId, NPDisk::DEVICE_TYPE_UNKNOWN))); + } } void ApplyGroupDeleted(const TGroupId &groupId, const TGroupInfo& /*groupInfo*/) { @@ -448,7 +459,7 @@ namespace NKikimr::NBsController { } } - TNodeWardenUpdateNotifier(this, state).Execute(state.Outbox); + TNodeWardenUpdateNotifier(this, state).Execute(); state.CheckConsistency(); state.Commit(); @@ -460,7 +471,7 @@ namespace NKikimr::NBsController { } void TBlobStorageController::CommitSelfHealUpdates(TConfigState& state) { - auto ev = MakeHolder(); + auto ev = std::make_unique(); auto sh = MakeHolder(); for (auto&& [base, overlay] : state.Groups.Diff()) { @@ -500,7 +511,7 @@ namespace NKikimr::NBsController { } if (ev->Created || ev->Deleted) { - state.Outbox.push_back(std::make_unique(StatProcessorActorId, SelfId(), ev.Release())); + state.StatProcessorOutbox.push_back(std::move(ev)); } if (sh->GroupsToUpdate) { FillInSelfHealGroups(*sh, &state); @@ -590,8 +601,14 @@ namespace NKikimr::NBsController { } ui64 TBlobStorageController::TConfigState::ApplyConfigUpdates() { - for (auto& msg : Outbox) { - TActivationContext::Send(msg.release()); + for (auto& [nodeId, ev, cookie] : Outbox) { + Self.SendToWarden(nodeId, std::move(ev), cookie); + } + for (auto& ev : StatProcessorOutbox) { + Self.SelfId().Send(Self.StatProcessorActorId, ev.release()); + } + for (auto& ev : NodeWhiteboardOutbox) { + Self.SelfId().Send(NNodeWhiteboard::MakeNodeWhiteboardServiceId(Self.SelfId().NodeId()), ev.release()); } if (UpdateSelfHealInfoMsg) { @@ -894,8 +911,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.h b/ydb/core/mind/bscontroller/config.h index bfa0f9e6bfdd..a4e3b0dfd43a 100644 --- a/ydb/core/mind/bscontroller/config.h +++ b/ydb/core/mind/bscontroller/config.h @@ -89,7 +89,9 @@ namespace NKikimr { THashSet PDisksToRemove; // outgoing messages - std::deque> Outbox; + std::deque, ui64>> Outbox; + std::deque> StatProcessorOutbox; + std::deque> NodeWhiteboardOutbox; THolder UpdateSelfHealInfoMsg; // deferred callbacks diff --git a/ydb/core/mind/bscontroller/defs.h b/ydb/core/mind/bscontroller/defs.h index 586c8eccdc8c..10222948d569 100644 --- a/ydb/core/mind/bscontroller/defs.h +++ b/ydb/core/mind/bscontroller/defs.h @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include diff --git a/ydb/core/mind/bscontroller/get_group.cpp b/ydb/core/mind/bscontroller/get_group.cpp index 63d1ce140b63..c9af06f6f17b 100644 --- a/ydb/core/mind/bscontroller/get_group.cpp +++ b/ydb/core/mind/bscontroller/get_group.cpp @@ -4,7 +4,8 @@ namespace NKikimr::NBsController { class TBlobStorageController::TTxGetGroup : public TTransactionBase { TEvBlobStorage::TEvControllerGetGroup::TPtr Request; - std::unique_ptr Response; + std::unique_ptr Response; + TNodeId NodeId = {}; public: TTxGetGroup(TEvBlobStorage::TEvControllerGetGroup::TPtr& ev, TBlobStorageController *controller) @@ -20,27 +21,34 @@ class TBlobStorageController::TTxGetGroup : public TTransactionBaseGet()->Record)); + NodeId = Request->Get()->Record.GetNodeID(); + + if (Request->Cookie != Max() && !Self->ValidateIncomingNodeWardenEvent(*Request)) { + Response = std::make_unique(NKikimrProto::ERROR, NodeId); + return true; + } + const auto& v = Request->Get()->Record.GetGroupIDs(); TSet groupIDsToRead(v.begin(), v.end()); - const TNodeId nodeId = Request->Get()->Record.GetNodeID(); - auto res = std::make_unique(NKikimrProto::OK, nodeId); - Self->ReadGroups(groupIDsToRead, true, res.get(), nodeId); + Response = std::make_unique(NKikimrProto::OK, NodeId); + Self->ReadGroups(groupIDsToRead, true, Response.get(), NodeId); - auto& node = Self->GetNode(nodeId); + auto& node = Self->GetNode(NodeId); for (TGroupId groupId : v) { node.GroupsRequested.insert(groupId); - Self->GroupToNode.emplace(groupId, nodeId); + Self->GroupToNode.emplace(groupId, NodeId); } - Response = std::make_unique(nodeId ? MakeBlobStorageNodeWardenID(nodeId) : Request->Sender, - Self->SelfId(), res.release()); - return true; } void Complete(const TActorContext&) override { - TActivationContext::Send(Response.release()); + if (NodeId) { + Self->SendToWarden(NodeId, std::move(Response), Request->Cookie); + } else { + Self->SendInReply(*Request, std::move(Response)); + } } }; diff --git a/ydb/core/mind/bscontroller/group_metrics_exchange.cpp b/ydb/core/mind/bscontroller/group_metrics_exchange.cpp index 5b18807f6c9c..1f24f59f3089 100644 --- a/ydb/core/mind/bscontroller/group_metrics_exchange.cpp +++ b/ydb/core/mind/bscontroller/group_metrics_exchange.cpp @@ -59,6 +59,11 @@ namespace NKikimr::NBsController { }; void TBlobStorageController::Handle(TEvBlobStorage::TEvControllerGroupMetricsExchange::TPtr& ev) { + if (auto& record = ev->Get()->Record; record.HasWhiteboardUpdate()) { + auto ev = std::make_unique(); + ev->Record.Swap(record.MutableWhiteboardUpdate()); + Send(NNodeWhiteboard::MakeNodeWhiteboardServiceId(SelfId().NodeId()), ev.release()); + } Execute(new TTxGroupMetricsExchange(this, ev)); } diff --git a/ydb/core/mind/bscontroller/group_reconfigure_wipe.cpp b/ydb/core/mind/bscontroller/group_reconfigure_wipe.cpp index 9a7aff6c7fdf..bbce8a1e5cb2 100644 --- a/ydb/core/mind/bscontroller/group_reconfigure_wipe.cpp +++ b/ydb/core/mind/bscontroller/group_reconfigure_wipe.cpp @@ -1,93 +1,10 @@ #include "impl.h" -namespace NKikimr { -namespace NBsController { - -class TBlobStorageController::TTxGroupReconfigureWipe : public TTransactionBase { -protected: - TEvBlobStorage::TEvControllerGroupReconfigureWipe::TPtr Event; - NKikimrProto::EReplyStatus Status; - TString ErrorReason; - typedef TMap> TResultForNode; - TResultForNode ResultForNode; - -public: - TTxGroupReconfigureWipe(TEvBlobStorage::TEvControllerGroupReconfigureWipe::TPtr &ev, - TBlobStorageController *controller) - : TBase(controller) - , Event(ev) - , Status(NKikimrProto::OK) - {} - - TTxType GetTxType() const override { return NBlobStorageController::TXTYPE_GROUP_RECONFIGURE_WIPE; } - - bool Execute(TTransactionContext &txc, const TActorContext&) override { - STLOG(PRI_DEBUG, BS_CONTROLLER, BSCTXGRW01, "TTxGroupReconfigureWipe execute"); - NIceDb::TNiceDb db(txc.DB); - - Status = NKikimrProto::ERROR; - ResultForNode.clear(); - - auto& record = Event->Get()->Record; - const TVSlotId id(record.GetVSlotId()); - - if (TVSlotInfo *info = Self->FindVSlot(id); !info) { - STLOG(PRI_ERROR, BS_CONTROLLER, BSCTXGRW02, "VSlot does not exist", (VSlotId, id)); - ErrorReason = TStringBuilder() << "VSlotId# " << id << " does not exist"; - } else if (info->Mood != TMood::Normal) { // Reply ERROR if From VSlot is improper mood - STLOG(PRI_ERROR, BS_CONTROLLER, BSCTXGRW03, "VSlot is not in the 'Normal' mood", (VSlotId, id), - (Mood, TMood::Name(TMood::EValue(info->Mood)))); - ErrorReason = TStringBuilder() << "VSlotId# " << id << " is in Mood# " << TMood::Name(TMood::EValue(info->Mood)); - } else { - // TODO(cthulhu): Prohibit more than Max simultaneous reconfigurations on one group - - // Mark VSlot for wipe - info->Mood = TMood::Wipe; - db.Table().Key(id.GetKey()).Update(info->Mood); - - // Prepare results for nodes - if (TNodeInfo *node = Self->FindNode(id.NodeId); node && node->ConnectedCount) { - auto& msg = ResultForNode[id.NodeId]; - msg = MakeHolder(NKikimrProto::OK, id.NodeId); - Self->ReadVSlot(*info, msg.Get()); - TSet groupIDsToRead; - groupIDsToRead.insert(info->GroupId); - Self->ReadGroups(groupIDsToRead, false, msg.Get(), id.NodeId); - for (const TGroupId groupId : groupIDsToRead) { - STLOG(PRI_ERROR, BS_CONTROLLER, BSCTXGRW05, "No configuration for group", (GroupId, groupId)); - } - } - - Status = NKikimrProto::OK; - } - - return true; - } - - void Complete(const TActorContext&) override { - // Send results to nodes - if (Status == NKikimrProto::OK) { - for (auto& [nodeId, msg] : ResultForNode) { - // TODO(cthulhu): Availability Domain !!! - const auto& node = nodeId; - const auto& record = msg->Record; - STLOG(PRI_DEBUG, BS_CONTROLLER, BSCTXGRW07, "Sending update", (NodeId, node), (Message, record)); - TActivationContext::Send(new IEventHandle(MakeBlobStorageNodeWardenID(nodeId), Self->SelfId(), msg.Release())); - } - } - - // Respond - auto response = MakeHolder(Status, ErrorReason); - auto& record = Event->Get()->Record; - STLOG(Status == NKikimrProto::OK ? PRI_DEBUG : PRI_ERROR, BS_CONTROLLER, BSCTXGRW06, "TTxGroupReconfigureWipe complete", - (Status, Status), (Request, record), (Response, response->Record)); - TActivationContext::Send(new IEventHandle(Event->Sender, Self->SelfId(), response.Release(), 0, Event->Cookie)); - } -}; +namespace NKikimr::NBsController { void TBlobStorageController::Handle(TEvBlobStorage::TEvControllerGroupReconfigureWipe::TPtr& ev) { - Execute(new TTxGroupReconfigureWipe(ev, this)); + SendInReply(*ev, std::make_unique(NKikimrProto::ERROR, + "unsupported operation")); } } -} diff --git a/ydb/core/mind/bscontroller/impl.h b/ydb/core/mind/bscontroller/impl.h index adb21035673c..0cdc85f47f82 100644 --- a/ydb/core/mind/bscontroller/impl.h +++ b/ydb/core/mind/bscontroller/impl.h @@ -56,7 +56,6 @@ class TBlobStorageController : public TActor, public TTa class TTxUpdateDiskMetrics; class TTxUpdateGroupLatencies; class TTxGroupMetricsExchange; - class TTxGroupReconfigureWipe; class TTxNodeReport; class TTxUpdateSeenOperational; class TTxConfigCmd; @@ -125,7 +124,7 @@ class TBlobStorageController : public TActor, public TTa TVSlotReadyTimestampQ::iterator VSlotReadyTimestampIter; public: - NKikimrBlobStorage::EVDiskStatus Status = NKikimrBlobStorage::EVDiskStatus::INIT_PENDING; + NKikimrBlobStorage::EVDiskStatus Status = NKikimrBlobStorage::EVDiskStatus::ERROR; bool IsReady = false; bool OnlyPhantomsRemain = false; @@ -862,7 +861,8 @@ class TBlobStorageController : public TActor, public TTa public: using Table = Schema::Node; - ui32 ConnectedCount = 0; + TActorId ConnectedServerId; // the latest ServerId who sent RegisterNode + TActorId InterconnectSessionId; Table::NextPDiskID::Type NextPDiskID; TInstant LastConnectTimestamp; TInstant LastDisconnectTimestamp; @@ -1981,10 +1981,67 @@ class TBlobStorageController : public TActor, public TTa } } + bool ValidateIncomingNodeWardenEvent(const IEventHandle& ev) { + auto makeError = [&](TString message) { + STLOG(PRI_ERROR, BS_CONTROLLER, BSC16, "ValidateIncomingNodeWardenEvent error", + (Sender, ev.Sender), (PipeServerId, ev.Recipient), (InterconnectSessionId, ev.InterconnectSession), + (Type, ev.GetTypeRewrite()), (Message, message)); + return false; + }; + + switch (ev.GetTypeRewrite()) { + case TEvBlobStorage::EvControllerRegisterNode: { + if (const auto pipeIt = PipeServerToNode.find(ev.Recipient); pipeIt == PipeServerToNode.end()) { + return makeError("incorrect pipe server"); + } else if (pipeIt->second) { + return makeError("duplicate RegisterNode event"); + } + break; + } + + case TEvBlobStorage::EvControllerGetGroup: + if (ev.Sender == SelfId()) { + break; + } else if (ev.Cookie == Max()) { + break; // for testing purposes + } + [[fallthrough]]; + case TEvBlobStorage::EvControllerUpdateDiskStatus: + case TEvBlobStorage::EvControllerProposeGroupKey: + case TEvBlobStorage::EvControllerUpdateGroupStat: + case TEvBlobStorage::EvControllerScrubQueryStartQuantum: + case TEvBlobStorage::EvControllerScrubQuantumFinished: + case TEvBlobStorage::EvControllerScrubReportQuantumInProgress: + case TEvBlobStorage::EvControllerUpdateNodeDrives: + case TEvBlobStorage::EvControllerNodeReport: { + if (const auto pipeIt = PipeServerToNode.find(ev.Recipient); pipeIt == PipeServerToNode.end()) { + return makeError("incorrect pipe server"); + } else if (const auto& nodeId = pipeIt->second; !nodeId) { + return makeError("no RegisterNode event received"); + } else if (*nodeId != ev.Sender.NodeId()) { + return makeError("NodeId mismatch"); + } else if (TNodeInfo *node = FindNode(*nodeId); !node) { + return makeError("no TNodeInfo record for node"); + } else if (node->InterconnectSessionId != ev.InterconnectSession) { + return makeError("InterconnectSession mismatch"); + } else if (node->ConnectedServerId != ev.Recipient) { + return makeError("pipe server mismatch"); + } + break; + } + } + + return true; + } + void ProcessControllerEvent(TAutoPtr ev) { const ui32 type = ev->GetTypeRewrite(); THPTimer timer; + if (!ValidateIncomingNodeWardenEvent(*ev)) { + return; + } + switch (type) { hFunc(TEvBlobStorage::TEvControllerRegisterNode, Handle); hFunc(TEvBlobStorage::TEvControllerGetGroup, Handle); @@ -2286,10 +2343,12 @@ class TBlobStorageController : public TActor, public TTa void Handle(TEvTabletPipe::TEvServerConnected::TPtr& ev); void Handle(TEvTabletPipe::TEvServerDisconnected::TPtr& ev); - bool OnRegisterNode(const TActorId& serverId, TNodeId nodeId); - void OnWardenConnected(TNodeId nodeId); - void OnWardenDisconnected(TNodeId nodeId); + bool OnRegisterNode(const TActorId& serverId, TNodeId nodeId, TActorId interconnectSessionId); + void OnWardenConnected(TNodeId nodeId, TActorId serverId, TActorId interconnectSessionId); + void OnWardenDisconnected(TNodeId nodeId, TActorId serverId); void EraseKnownDrivesOnDisconnected(TNodeInfo *nodeInfo); + void SendToWarden(TNodeId nodeId, std::unique_ptr ev, ui64 cookie); + void SendInReply(const IEventHandle& query, std::unique_ptr ev); using TVSlotFinder = std::function&)>; diff --git a/ydb/core/mind/bscontroller/node_report.cpp b/ydb/core/mind/bscontroller/node_report.cpp index 6cb9cfbbceb2..5c512940eca9 100644 --- a/ydb/core/mind/bscontroller/node_report.cpp +++ b/ydb/core/mind/bscontroller/node_report.cpp @@ -22,6 +22,10 @@ class TBlobStorageController::TTxNodeReport STLOG(PRI_DEBUG, BS_CONTROLLER, BSCTXNR01, "TTxNodeReport execute"); + if (!Self->ValidateIncomingNodeWardenEvent(*Event)) { + return true; + } + State.emplace(*Self, Self->HostRecords, TActivationContext::Now()); State->CheckConsistency(); diff --git a/ydb/core/mind/bscontroller/propose_group_key.cpp b/ydb/core/mind/bscontroller/propose_group_key.cpp index 9f346b4c0c0a..ed8b8b5d65dd 100644 --- a/ydb/core/mind/bscontroller/propose_group_key.cpp +++ b/ydb/core/mind/bscontroller/propose_group_key.cpp @@ -5,7 +5,7 @@ namespace NBsController { class TBlobStorageController::TTxProposeGroupKey : public TTransactionBase { protected: - NKikimrBlobStorage::TEvControllerProposeGroupKey Proto; + TEvBlobStorage::TEvControllerProposeGroupKey::TPtr Event; NKikimrProto::EReplyStatus Status = NKikimrProto::OK; ui32 NodeId = 0; ui32 GroupId = 0; @@ -15,18 +15,20 @@ class TBlobStorageController::TTxProposeGroupKey : public TTransactionBaseGet()->Record; + NodeId = proto.GetNodeId(); + GroupId = proto.GetGroupId(); + LifeCyclePhase = proto.GetLifeCyclePhase(); + MainKeyId = proto.GetMainKeyId(); + EncryptedGroupKey = proto.GetEncryptedGroupKey(); + MainKeyVersion = proto.GetMainKeyVersion(); + GroupKeyNonce = proto.GetGroupKeyNonce(); } TTxType GetTxType() const override { return NBlobStorageController::TXTYPE_PROPOSE_GROUP_KEY; } @@ -78,6 +80,10 @@ class TBlobStorageController::TTxProposeGroupKey : public TTransactionBaseValidateIncomingNodeWardenEvent(*Event)) { + Status = NKikimrProto::ERROR; + return true; + } Status = NKikimrProto::OK; ReadStep(); if (Status == NKikimrProto::OK) { @@ -99,7 +105,7 @@ class TBlobStorageController::TTxProposeGroupKey : public TTransactionBaseGet()->Record)); } if (!IsAnotherTxInProgress) { // Get groupinfo for the group and send it to all whom it may concern. @@ -113,7 +119,7 @@ void TBlobStorageController::Handle(TEvBlobStorage::TEvControllerProposeGroupKey STLOG(PRI_DEBUG, BS_CONTROLLER, BSCTXPGK11, "Handle TEvControllerProposeGroupKey", (Request, proto)); Y_ABORT_UNLESS(AppData()); NodesAwaitingKeysForGroup[proto.GetGroupId()].insert(proto.GetNodeId()); - Execute(new TTxProposeGroupKey(proto, this)); + Execute(new TTxProposeGroupKey(ev, this)); } } // NBlobStorageController diff --git a/ydb/core/mind/bscontroller/register_node.cpp b/ydb/core/mind/bscontroller/register_node.cpp index 8dabdab993ec..e8091e78b964 100644 --- a/ydb/core/mind/bscontroller/register_node.cpp +++ b/ydb/core/mind/bscontroller/register_node.cpp @@ -10,7 +10,7 @@ class TBlobStorageController::TTxUpdateNodeDrives { NKikimrBlobStorage::TEvControllerUpdateNodeDrives Record; std::optional State; - std::unique_ptr Response; + std::unique_ptr Result; void UpdateDevicesInfo(TConfigState& state, TEvBlobStorage::TEvControllerNodeServiceSetUpdate* result) { auto nodeId = Record.GetNodeId(); @@ -163,14 +163,14 @@ class TBlobStorageController::TTxUpdateNodeDrives bool Execute(TTransactionContext& txc, const TActorContext&) override { const TNodeId nodeId = Record.GetNodeId(); - auto result = std::make_unique(NKikimrProto::OK, nodeId); + Result = std::make_unique(NKikimrProto::OK, nodeId); State.emplace(*Self, Self->HostRecords, TActivationContext::Now()); State->CheckConsistency(); auto updateIsSuccessful = true; try { - UpdateDevicesInfo(*State, result.get()); + UpdateDevicesInfo(*State, Result.get()); State->CheckConsistency(); } catch (const TExError& e) { updateIsSuccessful = false; @@ -180,16 +180,16 @@ class TBlobStorageController::TTxUpdateNodeDrives "Error during UpdateDevicesInfo after receiving TEvControllerRegisterNode", (TExError, e.what())); } - result->Record.SetInstanceId(Self->InstanceId); - result->Record.SetComprehensive(false); - result->Record.SetAvailDomain(AppData()->DomainsInfo->GetDomainUidByTabletId(Self->TabletID())); - Response = std::make_unique(MakeBlobStorageNodeWardenID(nodeId), Self->SelfId(), result.release(), 0, 0); + Result->Record.SetInstanceId(Self->InstanceId); + Result->Record.SetComprehensive(false); + Result->Record.SetAvailDomain(AppData()->DomainsInfo->GetDomainUidByTabletId(Self->TabletID())); TString error; if (!updateIsSuccessful || (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, false, txc, &error))) { State->Rollback(); State.reset(); } + return true; } @@ -199,8 +199,8 @@ class TBlobStorageController::TTxUpdateNodeDrives State->ApplyConfigUpdates(); State.reset(); } - if (Response) { - TActivationContext::Send(Response.release()); + if (Result) { + Self->SendToWarden(Record.GetNodeId(), std::move(Result), 0); } } }; @@ -209,10 +209,9 @@ class TBlobStorageController::TTxRegisterNode : public TTransactionBase { TEvBlobStorage::TEvControllerRegisterNode::TPtr Request; - std::unique_ptr Response; + std::unique_ptr Response; NKikimrBlobStorage::TEvControllerUpdateNodeDrives UpdateNodeDrivesRecord; - public: TTxRegisterNode(TEvBlobStorage::TEvControllerRegisterNode::TPtr& ev, TBlobStorageController *controller) : TTransactionBase(controller) @@ -225,18 +224,26 @@ class TBlobStorageController::TTxRegisterNode Self->TabletCounters->Cumulative()[NBlobStorageController::COUNTER_REGISTER_NODE_COUNT].Increment(1); TRequestCounter counter(Self->TabletCounters, NBlobStorageController::COUNTER_REGISTER_NODE_USEC); - auto request = std::move(Request); - const auto& record = request->Get()->Record; + const auto& record = Request->Get()->Record; STLOG(PRI_DEBUG, BS_CONTROLLER, BSCTXRN01, "Handle TEvControllerRegisterNode", (Request, record)); + if (!Self->ValidateIncomingNodeWardenEvent(*Request)) { + return true; + } + const TNodeId nodeId = record.GetNodeID(); + if (nodeId != Request->Sender.NodeId()) { + STLOG(PRI_ERROR, BS_CONTROLLER, BSCTXRN07, "NodeId field mismatch", (Request, record), (Sender, Request->Sender)); + return true; + } + UpdateNodeDrivesRecord.SetNodeId(nodeId); for (const auto& data : record.GetDrivesData()) { UpdateNodeDrivesRecord.AddDrivesData()->CopyFrom(data); } - if (!Self->OnRegisterNode(request->Recipient, nodeId)) { + if (!Self->OnRegisterNode(Request->Recipient, nodeId, Request->InterconnectSession)) { return true; } Self->ProcessVDiskStatus(record.GetVDiskStatus()); @@ -253,13 +260,13 @@ class TBlobStorageController::TTxRegisterNode } } - auto res = std::make_unique(NKikimrProto::OK, nodeId); + Response = std::make_unique(NKikimrProto::OK, nodeId); TSet groupIDsToRead; const TPDiskId minPDiskId(TPDiskId::MinForNode(nodeId)); const TVSlotId vslotId = TVSlotId::MinForPDisk(minPDiskId); for (auto it = Self->VSlots.lower_bound(vslotId); it != Self->VSlots.end() && it->first.NodeId == nodeId; ++it) { - Self->ReadVSlot(*it->second, res.get()); + Self->ReadVSlot(*it->second, Response.get()); if (!it->second->IsBeingDeleted()) { groupIDsToRead.insert(it->second->GroupId); } @@ -298,19 +305,18 @@ class TBlobStorageController::TTxRegisterNode } } - Self->ReadGroups(groupIDsToRead, false, res.get(), nodeId); + Self->ReadGroups(groupIDsToRead, false, Response.get(), nodeId); Y_ABORT_UNLESS(groupIDsToRead.empty()); - Self->ReadGroups(groupsToDiscard, true, res.get(), nodeId); + Self->ReadGroups(groupsToDiscard, true, Response.get(), nodeId); for (auto it = Self->PDisks.lower_bound(minPDiskId); it != Self->PDisks.end() && it->first.NodeId == nodeId; ++it) { - Self->ReadPDisk(it->first, *it->second, res.get(), NKikimrBlobStorage::INITIAL); + Self->ReadPDisk(it->first, *it->second, Response.get(), NKikimrBlobStorage::INITIAL); } - res->Record.SetInstanceId(Self->InstanceId); - res->Record.SetComprehensive(true); - res->Record.SetAvailDomain(AppData()->DomainsInfo->GetDomainUidByTabletId(Self->TabletID())); - Response = std::make_unique(request->Sender, Self->SelfId(), res.release(), 0, request->Cookie); + Response->Record.SetInstanceId(Self->InstanceId); + Response->Record.SetComprehensive(true); + Response->Record.SetAvailDomain(AppData()->DomainsInfo->GetDomainUidByTabletId(Self->TabletID())); NIceDb::TNiceDb db(txc.DB); auto& node = Self->GetNode(nodeId); @@ -325,8 +331,10 @@ class TBlobStorageController::TTxRegisterNode } void Complete(const TActorContext&) override { - TActivationContext::Send(Response.release()); - Self->Execute(new TTxUpdateNodeDrives(std::move(UpdateNodeDrivesRecord), Self)); + if (Response) { + Self->SendInReply(*Request, std::move(Response)); + Self->Execute(new TTxUpdateNodeDrives(std::move(UpdateNodeDrivesRecord), Self)); + } } }; @@ -410,7 +418,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); @@ -465,7 +473,7 @@ void TBlobStorageController::Handle(TEvTabletPipe::TEvServerConnected::TPtr& ev) void TBlobStorageController::Handle(TEvTabletPipe::TEvServerDisconnected::TPtr& ev) { if (auto it = PipeServerToNode.find(ev->Get()->ServerId); it != PipeServerToNode.end()) { if (auto&& nodeId = it->second) { - OnWardenDisconnected(*nodeId); + OnWardenDisconnected(*nodeId, it->first); } PipeServerToNode.erase(it); } else { @@ -473,23 +481,33 @@ void TBlobStorageController::Handle(TEvTabletPipe::TEvServerDisconnected::TPtr& } } -bool TBlobStorageController::OnRegisterNode(const TActorId& serverId, TNodeId nodeId) { +bool TBlobStorageController::OnRegisterNode(const TActorId& serverId, TNodeId nodeId, TActorId interconnectSessionId) { if (auto it = PipeServerToNode.find(serverId); it != PipeServerToNode.end()) { - if (!it->second) { - it->second = nodeId; - OnWardenConnected(nodeId); - } else { - Y_DEBUG_ABORT_UNLESS(*it->second == nodeId); - } + Y_ABORT_UNLESS(!it->second); + it->second = nodeId; + OnWardenConnected(nodeId, serverId, interconnectSessionId); return true; } else { return false; } } -void TBlobStorageController::OnWardenConnected(TNodeId nodeId) { +void TBlobStorageController::OnWardenConnected(TNodeId nodeId, TActorId serverId, TActorId interconnectSessionId) { TNodeInfo& node = GetNode(nodeId); - ++node.ConnectedCount; + if (node.ConnectedServerId) { // if this is a new connection instead of obsolete one, do reset some logic + for (const TGroupId groupId : std::exchange(node.WaitingForGroups, {})) { + if (TGroupInfo *group = FindGroup(groupId)) { + group->WaitingNodes.erase(nodeId); + } + } + for (TGroupId groupId : std::exchange(node.GroupsRequested, {})) { + GroupToNode.erase(std::make_tuple(groupId, nodeId)); + } + ScrubState.OnNodeDisconnected(nodeId); + EraseKnownDrivesOnDisconnected(&node); + } + node.ConnectedServerId = serverId; + node.InterconnectSessionId = interconnectSessionId; for (auto it = PDisks.lower_bound(TPDiskId::MinForNode(nodeId)); it != PDisks.end() && it->first.NodeId == nodeId; ++it) { it->second->UpdateOperational(true); @@ -499,11 +517,13 @@ void TBlobStorageController::OnWardenConnected(TNodeId nodeId) { node.LastConnectTimestamp = TInstant::Now(); } -void TBlobStorageController::OnWardenDisconnected(TNodeId nodeId) { +void TBlobStorageController::OnWardenDisconnected(TNodeId nodeId, TActorId serverId) { TNodeInfo& node = GetNode(nodeId); - if (--node.ConnectedCount) { - return; // there are still some connections from this NW + if (node.ConnectedServerId != serverId) { + return; // a race } + node.ConnectedServerId = {}; + node.InterconnectSessionId = {}; for (const TGroupId groupId : std::exchange(node.WaitingForGroups, {})) { if (TGroupInfo *group = FindGroup(groupId)) { @@ -534,6 +554,7 @@ void TBlobStorageController::OnWardenDisconnected(TNodeId nodeId) { } for (auto it = StaticVSlots.lower_bound(startingId); it != StaticVSlots.end() && it->first.NodeId == nodeId; ++it) { it->second.VDiskStatus = NKikimrBlobStorage::EVDiskStatus::ERROR; + it->second.ReadySince = TMonotonic::Max(); } if (sh->VDiskStatusUpdate) { Send(SelfHealId, sh.Release()); @@ -554,4 +575,25 @@ void TBlobStorageController::EraseKnownDrivesOnDisconnected(TNodeInfo *nodeInfo) nodeInfo->KnownDrives.clear(); } +void TBlobStorageController::SendToWarden(TNodeId nodeId, std::unique_ptr ev, ui64 cookie) { + Y_ABORT_UNLESS(nodeId); + if (auto *node = FindNode(nodeId); node && node->ConnectedServerId) { + auto h = std::make_unique(MakeBlobStorageNodeWardenID(nodeId), SelfId(), ev.release(), 0, cookie); + if (node->InterconnectSessionId) { + h->Rewrite(TEvInterconnect::EvForward, node->InterconnectSessionId); + } + TActivationContext::Send(h.release()); + } else { + STLOG(PRI_WARN, BS_CONTROLLER, BSC17, "SendToWarden dropped event", (NodeId, nodeId), (Type, ev->Type())); + } +} + +void TBlobStorageController::SendInReply(const IEventHandle& query, std::unique_ptr ev) { + auto h = std::make_unique(query.Sender, SelfId(), ev.release(), 0, query.Cookie); + if (query.InterconnectSession) { + h->Rewrite(TEvInterconnect::EvForward, query.InterconnectSession); + } + TActivationContext::Send(h.release()); +} + } // NKikimr::NBsController diff --git a/ydb/core/mind/bscontroller/storage_stats_calculator.cpp b/ydb/core/mind/bscontroller/storage_stats_calculator.cpp index 7bc6ec87d475..8961161930f1 100644 --- a/ydb/core/mind/bscontroller/storage_stats_calculator.cpp +++ b/ydb/core/mind/bscontroller/storage_stats_calculator.cpp @@ -136,16 +136,17 @@ class TStorageStatsCoroCalculatorImpl : public TActorCoroImpl { const auto readCentric = pdisk.HasReadCentric() ? MakeMaybe(pdisk.GetReadCentric()) : Nothing(); if (filter.MatchPDisk(pdisk.GetCategory(), sharedWithOs, readCentric)) { const TNodeLocation& location = HostRecordMap->GetLocation(pdiskId.NodeId); + const bool usable = pdisk.GetDecommitStatus() == "DECOMMIT_NONE"; const bool ok = mapper.RegisterPDisk({ .PDiskId = pdiskId, .Location = location, - .Usable = true, + .Usable = usable, .NumSlots = pdisk.GetNumActiveSlots(), .MaxSlots = pdisk.GetExpectedSlotCount(), .Groups = {}, .SpaceAvailable = 0, .Operational = true, - .Decommitted = false, + .Decommitted = false, // this flag applies only to group reconfiguration }); Y_ABORT_UNLESS(ok); break; diff --git a/ydb/core/mind/bscontroller/ut/CMakeLists.darwin-arm64.txt b/ydb/core/mind/bscontroller/ut/CMakeLists.darwin-arm64.txt index 572a45cf856f..bdef62be45f0 100644 --- a/ydb/core/mind/bscontroller/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/mind/bscontroller/ut/CMakeLists.darwin-arm64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-core-mind-bscontroller-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-mind-bscontroller-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/grouper_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/mind/bscontroller/ut/CMakeLists.darwin-x86_64.txt index 15676e0763dd..5908b2157dee 100644 --- a/ydb/core/mind/bscontroller/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/mind/bscontroller/ut/CMakeLists.darwin-x86_64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-core-mind-bscontroller-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-mind-bscontroller-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/grouper_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/ut/CMakeLists.linux-aarch64.txt b/ydb/core/mind/bscontroller/ut/CMakeLists.linux-aarch64.txt index dfd36fcd43f7..b3af03617337 100644 --- a/ydb/core/mind/bscontroller/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/mind/bscontroller/ut/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-core-mind-bscontroller-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-mind-bscontroller-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/grouper_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/ut/CMakeLists.linux-x86_64.txt b/ydb/core/mind/bscontroller/ut/CMakeLists.linux-x86_64.txt index 4831f360f7b2..d4ea35533f8d 100644 --- a/ydb/core/mind/bscontroller/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/mind/bscontroller/ut/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-core-mind-bscontroller-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-mind-bscontroller-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/grouper_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/ut/CMakeLists.windows-x86_64.txt b/ydb/core/mind/bscontroller/ut/CMakeLists.windows-x86_64.txt index 198c5df517cc..6c63e67a8e32 100644 --- a/ydb/core/mind/bscontroller/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/mind/bscontroller/ut/CMakeLists.windows-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.darwin-arm64.txt b/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.darwin-arm64.txt index ec2b8803a86f..5ed499c07cb6 100644 --- a/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.darwin-arm64.txt +++ b/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.darwin-arm64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-mind-bscontroller-ut_bscontroller PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-mind-bscontroller-ut_bscontroller PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_bscontroller/main.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.darwin-x86_64.txt b/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.darwin-x86_64.txt index 79d6928d1cb5..e7af80e75afb 100644 --- a/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.darwin-x86_64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-core-mind-bscontroller-ut_bscontroller PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-mind-bscontroller-ut_bscontroller PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_bscontroller/main.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.linux-aarch64.txt b/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.linux-aarch64.txt index d43673ebbe38..1138bd48f075 100644 --- a/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.linux-aarch64.txt +++ b/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.linux-aarch64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-mind-bscontroller-ut_bscontroller PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-mind-bscontroller-ut_bscontroller PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_bscontroller/main.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.linux-x86_64.txt b/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.linux-x86_64.txt index 08ac9f2d4fd1..8bee19234d44 100644 --- a/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.linux-x86_64.txt +++ b/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-core-mind-bscontroller-ut_bscontroller PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-mind-bscontroller-ut_bscontroller PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_bscontroller/main.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.windows-x86_64.txt b/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.windows-x86_64.txt index 219184edbdd1..24464e4f3f45 100644 --- a/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.windows-x86_64.txt +++ b/ydb/core/mind/bscontroller/ut_bscontroller/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/ut_bscontroller/main.cpp b/ydb/core/mind/bscontroller/ut_bscontroller/main.cpp index 54618a14d8ef..317aa32b873b 100644 --- a/ydb/core/mind/bscontroller/ut_bscontroller/main.cpp +++ b/ydb/core/mind/bscontroller/ut_bscontroller/main.cpp @@ -102,10 +102,18 @@ struct TEnvironmentSetup { void RegisterNode() { for (ui32 i = 1; i <= NodeCount; ++i) { - const TActorId self = Runtime->AllocateEdgeActor(); - auto ev = MakeHolder(i, TVector{}, TVector{}, TVector{}); - Runtime->SendToPipe(TabletId, self, ev.Release(), NodeId, GetPipeConfigWithRetries()); - auto response = Runtime->GrabEdgeEventRethrow(self); + ui32 nodeIndex; + for (nodeIndex = 0; nodeIndex < Runtime->GetNodeCount(); ++nodeIndex) { + if (Runtime->GetNodeId(nodeIndex) == i) { + break; + } + } + if (nodeIndex != Runtime->GetNodeCount()) { + const TActorId self = Runtime->AllocateEdgeActor(nodeIndex); + auto ev = MakeHolder(i, TVector{}, TVector{}, TVector{}); + Runtime->SendToPipe(TabletId, self, ev.Release(), nodeIndex, GetPipeConfigWithRetries()); + auto response = Runtime->GrabEdgeEventRethrow(self); + } } } diff --git a/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.darwin-arm64.txt b/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.darwin-arm64.txt index b300851b7d8a..681c447ff2b1 100644 --- a/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.darwin-arm64.txt +++ b/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.darwin-arm64.txt @@ -15,10 +15,12 @@ target_link_libraries(ydb-core-mind-bscontroller-ut_selfheal PUBLIC contrib-libs-cxxsupp yutil cpp-testing-unittest_main + version_definition blobstorage-dsproxy-mock blobstorage-pdisk-mock core-mind-bscontroller core-tx-scheme_board + minikql-comp_nodes-llvm14 udf-service-stub yql-sql-pg_dummy ) @@ -26,10 +28,14 @@ target_link_options(ydb-core-mind-bscontroller-ut_selfheal PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-mind-bscontroller-ut_selfheal PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/env.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/node_warden_mock.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/timer_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/vdisk_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/main.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/self_heal_actor_ut.cpp ) @@ -58,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.darwin-x86_64.txt b/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.darwin-x86_64.txt index c876fd15d3fd..a971d8b38b01 100644 --- a/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.darwin-x86_64.txt @@ -16,10 +16,12 @@ target_link_libraries(ydb-core-mind-bscontroller-ut_selfheal PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition blobstorage-dsproxy-mock blobstorage-pdisk-mock core-mind-bscontroller core-tx-scheme_board + minikql-comp_nodes-llvm14 udf-service-stub yql-sql-pg_dummy ) @@ -27,10 +29,14 @@ target_link_options(ydb-core-mind-bscontroller-ut_selfheal PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-mind-bscontroller-ut_selfheal PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/env.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/node_warden_mock.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/timer_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/vdisk_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/main.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/self_heal_actor_ut.cpp ) @@ -59,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.linux-aarch64.txt b/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.linux-aarch64.txt index f70a4460c33a..573524420487 100644 --- a/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.linux-aarch64.txt +++ b/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.linux-aarch64.txt @@ -16,10 +16,12 @@ target_link_libraries(ydb-core-mind-bscontroller-ut_selfheal PUBLIC contrib-libs-cxxsupp yutil cpp-testing-unittest_main + version_definition blobstorage-dsproxy-mock blobstorage-pdisk-mock core-mind-bscontroller core-tx-scheme_board + minikql-comp_nodes-llvm14 udf-service-stub yql-sql-pg_dummy ) @@ -29,11 +31,14 @@ target_link_options(ydb-core-mind-bscontroller-ut_selfheal PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-mind-bscontroller-ut_selfheal PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/env.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/node_warden_mock.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/timer_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/vdisk_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/main.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/self_heal_actor_ut.cpp ) @@ -62,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.linux-x86_64.txt b/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.linux-x86_64.txt index f42e2b8e6ef2..e919aa17cbc2 100644 --- a/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.linux-x86_64.txt +++ b/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.linux-x86_64.txt @@ -17,10 +17,12 @@ target_link_libraries(ydb-core-mind-bscontroller-ut_selfheal PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition blobstorage-dsproxy-mock blobstorage-pdisk-mock core-mind-bscontroller core-tx-scheme_board + minikql-comp_nodes-llvm14 udf-service-stub yql-sql-pg_dummy ) @@ -30,11 +32,14 @@ target_link_options(ydb-core-mind-bscontroller-ut_selfheal PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-mind-bscontroller-ut_selfheal PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/env.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/node_warden_mock.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/timer_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/vdisk_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/main.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/self_heal_actor_ut.cpp ) @@ -63,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.windows-x86_64.txt b/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.windows-x86_64.txt index 8cc3a5a9749f..3b6a02137fe6 100644 --- a/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.windows-x86_64.txt +++ b/ydb/core/mind/bscontroller/ut_selfheal/CMakeLists.windows-x86_64.txt @@ -16,14 +16,22 @@ target_link_libraries(ydb-core-mind-bscontroller-ut_selfheal PUBLIC yutil library-cpp-cpuid_check cpp-testing-unittest_main + version_definition blobstorage-dsproxy-mock blobstorage-pdisk-mock core-mind-bscontroller core-tx-scheme_board + minikql-comp_nodes-llvm14 udf-service-stub yql-sql-pg_dummy ) target_sources(ydb-core-mind-bscontroller-ut_selfheal PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/defs.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/env.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/events.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/node_warden_mock.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/timer_actor.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/vdisk_mock.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/main.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/bscontroller/ut_selfheal/self_heal_actor_ut.cpp ) @@ -52,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/bscontroller/ut_selfheal/ya.make b/ydb/core/mind/bscontroller/ut_selfheal/ya.make index c3b4ba285713..1189fc7e7025 100644 --- a/ydb/core/mind/bscontroller/ut_selfheal/ya.make +++ b/ydb/core/mind/bscontroller/ut_selfheal/ya.make @@ -16,6 +16,7 @@ SRCS( ) PEERDIR( + ydb/apps/version ydb/core/blobstorage/dsproxy/mock ydb/core/blobstorage/pdisk/mock ydb/core/mind/bscontroller diff --git a/ydb/core/mind/hive/CMakeLists.darwin-arm64.txt b/ydb/core/mind/hive/CMakeLists.darwin-arm64.txt index c27474ff6d08..c7e0dc8d4a6c 100644 --- a/ydb/core/mind/hive/CMakeLists.darwin-arm64.txt +++ b/ydb/core/mind/hive/CMakeLists.darwin-arm64.txt @@ -29,8 +29,29 @@ target_link_libraries(core-mind-hive PUBLIC ydb-core-tablet_flat ) target_sources(core-mind-hive PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/balancer.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/boot_queue.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/domain_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_domains.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_schema.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_transactions.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/leader_tablet_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/metrics.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/node_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/object_distribution.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/sequencer.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_group.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_tablet_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_group_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_pool_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tablet_info.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/balancer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/boot_queue.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/domain_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/drain.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/fill.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive.cpp @@ -43,6 +64,7 @@ target_sources(core-mind-hive PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/node_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/sequencer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_tablet_info.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_balancer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_group_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_pool_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tablet_info.cpp diff --git a/ydb/core/mind/hive/CMakeLists.darwin-x86_64.txt b/ydb/core/mind/hive/CMakeLists.darwin-x86_64.txt index c27474ff6d08..c7e0dc8d4a6c 100644 --- a/ydb/core/mind/hive/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/mind/hive/CMakeLists.darwin-x86_64.txt @@ -29,8 +29,29 @@ target_link_libraries(core-mind-hive PUBLIC ydb-core-tablet_flat ) target_sources(core-mind-hive PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/balancer.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/boot_queue.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/domain_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_domains.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_schema.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_transactions.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/leader_tablet_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/metrics.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/node_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/object_distribution.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/sequencer.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_group.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_tablet_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_group_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_pool_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tablet_info.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/balancer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/boot_queue.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/domain_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/drain.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/fill.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive.cpp @@ -43,6 +64,7 @@ target_sources(core-mind-hive PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/node_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/sequencer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_tablet_info.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_balancer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_group_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_pool_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tablet_info.cpp diff --git a/ydb/core/mind/hive/CMakeLists.linux-aarch64.txt b/ydb/core/mind/hive/CMakeLists.linux-aarch64.txt index 5e71b60eb101..46862e7d9dff 100644 --- a/ydb/core/mind/hive/CMakeLists.linux-aarch64.txt +++ b/ydb/core/mind/hive/CMakeLists.linux-aarch64.txt @@ -30,8 +30,29 @@ target_link_libraries(core-mind-hive PUBLIC ydb-core-tablet_flat ) target_sources(core-mind-hive PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/balancer.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/boot_queue.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/domain_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_domains.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_schema.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_transactions.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/leader_tablet_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/metrics.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/node_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/object_distribution.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/sequencer.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_group.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_tablet_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_group_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_pool_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tablet_info.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/balancer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/boot_queue.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/domain_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/drain.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/fill.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive.cpp @@ -44,6 +65,7 @@ target_sources(core-mind-hive PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/node_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/sequencer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_tablet_info.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_balancer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_group_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_pool_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tablet_info.cpp diff --git a/ydb/core/mind/hive/CMakeLists.linux-x86_64.txt b/ydb/core/mind/hive/CMakeLists.linux-x86_64.txt index 5e71b60eb101..46862e7d9dff 100644 --- a/ydb/core/mind/hive/CMakeLists.linux-x86_64.txt +++ b/ydb/core/mind/hive/CMakeLists.linux-x86_64.txt @@ -30,8 +30,29 @@ target_link_libraries(core-mind-hive PUBLIC ydb-core-tablet_flat ) target_sources(core-mind-hive PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/balancer.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/boot_queue.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/domain_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_domains.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_schema.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_transactions.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/leader_tablet_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/metrics.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/node_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/object_distribution.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/sequencer.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_group.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_tablet_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_group_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_pool_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tablet_info.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/balancer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/boot_queue.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/domain_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/drain.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/fill.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive.cpp @@ -44,6 +65,7 @@ target_sources(core-mind-hive PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/node_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/sequencer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_tablet_info.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_balancer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_group_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_pool_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tablet_info.cpp diff --git a/ydb/core/mind/hive/CMakeLists.windows-x86_64.txt b/ydb/core/mind/hive/CMakeLists.windows-x86_64.txt index c27474ff6d08..c7e0dc8d4a6c 100644 --- a/ydb/core/mind/hive/CMakeLists.windows-x86_64.txt +++ b/ydb/core/mind/hive/CMakeLists.windows-x86_64.txt @@ -29,8 +29,29 @@ target_link_libraries(core-mind-hive PUBLIC ydb-core-tablet_flat ) target_sources(core-mind-hive PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/balancer.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/boot_queue.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/domain_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_domains.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_events.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_impl.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_log.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_schema.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive_transactions.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/leader_tablet_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/metrics.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/node_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/object_distribution.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/sequencer.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_group.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_tablet_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_group_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_pool_info.h + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tablet_info.h ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/balancer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/boot_queue.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/domain_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/drain.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/fill.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/hive.cpp @@ -43,6 +64,7 @@ target_sources(core-mind-hive PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/node_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/sequencer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/follower_tablet_info.cpp + ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_balancer.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_group_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/storage_pool_info.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/tablet_info.cpp diff --git a/ydb/core/mind/hive/balancer.cpp b/ydb/core/mind/hive/balancer.cpp index b5376ce43736..de9a3d3f8d15 100644 --- a/ydb/core/mind/hive/balancer.cpp +++ b/ydb/core/mind/hive/balancer.cpp @@ -303,17 +303,18 @@ class THiveBalancer : public NActors::TActorBootstrapped, public } BLOG_TRACE("Balancer selected tablet " << tablet->ToString()); THive::TBestNodeResult result = Hive->FindBestNode(*tablet); - if (result.BestNode != nullptr && result.BestNode != tablet->Node) { - if (Hive->IsTabletMoveExpedient(*tablet, *result.BestNode)) { + if (std::holds_alternative(result)) { + TNodeInfo* node = std::get(result); + if (node != tablet->Node && Hive->IsTabletMoveExpedient(*tablet, *node)) { tablet->MakeBalancerDecision(now); tablet->ActorsToNotifyOnRestart.emplace_back(SelfId()); // volatile settings, will not persist upon restart ++KickInFlight; ++Movements; BLOG_D("Balancer moving tablet " << tablet->ToString() << " " << tablet->GetResourceValues() << " from node " << tablet->Node->Id << " " << tablet->Node->ResourceValues - << " to node " << result.BestNode->Id << " " << result.BestNode->ResourceValues); - Hive->RecordTabletMove(THive::TTabletMoveInfo(now, *tablet, tablet->Node->Id, result.BestNode->Id)); - Hive->Execute(Hive->CreateRestartTablet(tablet->GetFullTabletId(), result.BestNode->Id)); + << " to node " << node->Id << " " << node->ResourceValues); + Hive->RecordTabletMove(THive::TTabletMoveInfo(now, *tablet, tablet->Node->Id, node->Id)); + Hive->Execute(Hive->CreateRestartTablet(tablet->GetFullTabletId(), node->Id)); UpdateProgress(); } } diff --git a/ydb/core/mind/hive/drain.cpp b/ydb/core/mind/hive/drain.cpp index 9b1de009e649..34d8ec23dbe1 100644 --- a/ydb/core/mind/hive/drain.cpp +++ b/ydb/core/mind/hive/drain.cpp @@ -69,21 +69,28 @@ class THiveDrain : public NActors::TActorBootstrapped, public ISubAc TTabletInfo* tablet = Hive->FindTablet(tabletId); if (tablet != nullptr && tablet->IsAlive() && tablet->NodeId == NodeId) { THive::TBestNodeResult result = Hive->FindBestNode(*tablet); - if (result.BestNode != nullptr) { + if (std::holds_alternative(result)) { + TNodeInfo* node = std::get(result); tablet->ActorsToNotifyOnRestart.emplace_back(SelfId()); // volatile settings, will not persist upon restart ++KickInFlight; ++Movements; BLOG_D("Drain " << SelfId() << " moving tablet " << tablet->ToString() << " " << tablet->GetResourceValues() << " from node " << tablet->Node->Id << " " << tablet->Node->ResourceValues - << " to node " << result.BestNode->Id << " " << result.BestNode->ResourceValues); + << " to node " << node->Id << " " << node->ResourceValues); Hive->TabletCounters->Cumulative()[NHive::COUNTER_DRAIN_EXECUTED].Increment(1); - Hive->RecordTabletMove(THive::TTabletMoveInfo(TInstant::Now(), *tablet, tablet->Node->Id, result.BestNode->Id)); - Hive->Execute(Hive->CreateRestartTablet(tabletId, result.BestNode->Id)); + Hive->RecordTabletMove(THive::TTabletMoveInfo(TInstant::Now(), *tablet, tablet->Node->Id, node->Id)); + Hive->Execute(Hive->CreateRestartTablet(tabletId, node->Id)); } else { - Hive->TabletCounters->Cumulative()[NHive::COUNTER_DRAIN_FAILED].Increment(1); - BLOG_D("Drain " << SelfId() << " could not move tablet " << tablet->ToString() << " " << tablet->GetResourceValues() - << " from node " << tablet->Node->Id << " " << tablet->Node->ResourceValues); + if (std::holds_alternative(result)) { + Hive->TabletCounters->Cumulative()[NHive::COUNTER_DRAIN_FAILED].Increment(1); + BLOG_D("Drain " << SelfId() << " could not move tablet " << tablet->ToString() << " " << tablet->GetResourceValues() + << " from node " << tablet->Node->Id << " " << tablet->Node->ResourceValues); + } else if (std::holds_alternative(result)){ + BLOG_D("Drain " << SelfId() << " could not move tablet " << tablet->ToString() << " and will try again later"); + Hive->WaitToMoveTablets(SelfId()); + return; + } } } ++NextKick; @@ -209,6 +216,7 @@ class THiveDrain : public NActors::TActorBootstrapped, public ISubAc hFunc(TEvTabletPipe::TEvClientConnected, Handle); hFunc(TEvTabletPipe::TEvClientDestroyed, Handle); cFunc(TEvents::TSystem::Wakeup, Timeout); + cFunc(TEvPrivate::EvCanMoveTablets, KickNextTablet); } } }; diff --git a/ydb/core/mind/hive/fill.cpp b/ydb/core/mind/hive/fill.cpp index 8f8d996c7a28..a4fd3750d5b6 100644 --- a/ydb/core/mind/hive/fill.cpp +++ b/ydb/core/mind/hive/fill.cpp @@ -55,17 +55,18 @@ class THiveFill : public NActors::TActorBootstrapped, public ISubActo TTabletInfo* tablet = Hive->FindTablet(tabletId); if (tablet != nullptr && tablet->IsAlive() && tablet->NodeId != NodeId) { THive::TBestNodeResult result = Hive->FindBestNode(*tablet); - if (result.BestNode != nullptr) { - if (result.BestNode->Id == NodeId) { + if (std::holds_alternative(result)) { + TNodeInfo* node = std::get(result); + if (node->Id == NodeId) { tablet->ActorsToNotifyOnRestart.emplace_back(SelfId()); // volatile settings, will not persist upon restart ++KickInFlight; ++Movements; BLOG_D("Fill " << SelfId() << " moving tablet " << tablet->ToString() << " " << tablet->GetResourceValues() << " from node " << tablet->Node->Id << " " << tablet->Node->ResourceValues - << " to node " << result.BestNode->Id << " " << result.BestNode->ResourceValues); + << " to node " << node->Id << " " << node->ResourceValues); Hive->TabletCounters->Cumulative()[NHive::COUNTER_FILL_EXECUTED].Increment(1); - Hive->RecordTabletMove(THive::TTabletMoveInfo(TInstant::Now(), *tablet, tablet->Node->Id, result.BestNode->Id)); - Hive->Execute(Hive->CreateRestartTablet(tablet->GetFullTabletId(), result.BestNode->Id), ctx); + Hive->RecordTabletMove(THive::TTabletMoveInfo(TInstant::Now(), *tablet, tablet->Node->Id, node->Id)); + Hive->Execute(Hive->CreateRestartTablet(tablet->GetFullTabletId(), node->Id), ctx); } } } diff --git a/ydb/core/mind/hive/hive.h b/ydb/core/mind/hive/hive.h index 8a585cac2ab6..e1ecff02ea48 100644 --- a/ydb/core/mind/hive/hive.h +++ b/ydb/core/mind/hive/hive.h @@ -1,5 +1,6 @@ #pragma once #include +#include #include #include @@ -201,20 +202,33 @@ TResourceNormalizedValues NormalizeRawValues(const TResourceRawValues& values, c NMetrics::EResource GetDominantResourceType(const TResourceRawValues& values, const TResourceRawValues& maximum); NMetrics::EResource GetDominantResourceType(const TResourceNormalizedValues& normValues); +// https://en.wikipedia.org/wiki/Kahan_summation_algorithm +template +std::ranges::range_value_t StableSum(const TRange& values) { + using TValue = std::ranges::range_value_t; + TValue sum{}; + TValue correction{}; + for (const auto& x : values) { + TValue y = x - correction; + TValue tmp = sum + y; + correction = (tmp - sum) - y; + sum = tmp; + } + return sum; +} + template inline std::tuple GetStDev(const TVector>& values) { std::tuple sum; if (values.empty()) return sum; - for (const auto& v : values) { - sum = sum + v; - } + sum = StableSum(values); auto mean = sum / values.size(); - sum = std::tuple(); - for (const auto& v : values) { - auto diff = v - mean; - sum = sum + diff * diff; - } + auto quadraticDev = [&] (const std::tuple& value) { + auto diff = value - mean; + return diff * diff; + }; + sum = StableSum(values | std::views::transform(quadraticDev)); auto div = sum / values.size(); auto st_dev = sqrt(div); return tuple_cast::cast(st_dev); diff --git a/ydb/core/mind/hive/hive_events.h b/ydb/core/mind/hive/hive_events.h index a644b793a7cb..c28a46a5c60a 100644 --- a/ydb/core/mind/hive/hive_events.h +++ b/ydb/core/mind/hive/hive_events.h @@ -27,10 +27,12 @@ struct TEvPrivate { EvProcessIncomingEvent, EvRefreshStorageInfo, EvLogTabletMoves, + EvCanMoveTablets, EvStartStorageBalancer, EvRestartCancelled, EvProcessStorageBalancer, EvStorageBalancerOut, + EvDeleteNode, EvEnd }; @@ -95,6 +97,8 @@ struct TEvPrivate { struct TEvLogTabletMoves : TEventLocal {}; + struct TEvCanMoveTablets : TEventLocal {}; + struct TEvStartStorageBalancer : TEventLocal { TStorageBalancerSettings Settings; @@ -110,6 +114,12 @@ struct TEvPrivate { struct TEvProcessStorageBalancer : TEventLocal {}; struct TEvStorageBalancerOut : TEventLocal {}; + + struct TEvDeleteNode : TEventLocal { + TNodeId NodeId; + + TEvDeleteNode(TNodeId nodeId) : NodeId(nodeId) {} + }; }; } // NHive diff --git a/ydb/core/mind/hive/hive_impl.cpp b/ydb/core/mind/hive/hive_impl.cpp index a866ea08e3e4..b4d08484fc7c 100644 --- a/ydb/core/mind/hive/hive_impl.cpp +++ b/ydb/core/mind/hive/hive_impl.cpp @@ -94,6 +94,18 @@ void THive::RestartPipeTx(ui64 tabletId) { } } +bool THive::TryToDeleteNode(TNodeInfo* node) { + if (node->CanBeDeleted()) { + DeleteNode(node->Id); + return true; + } + if (!node->DeletionScheduled) { + Schedule(GetNodeDeletePeriod(), new TEvPrivate::TEvDeleteNode(node->Id)); + node->DeletionScheduled = true; + } + return false; +} + void THive::Handle(TEvTabletPipe::TEvServerConnected::TPtr& ev) { if (ev->Get()->TabletId == TabletID()) { BLOG_TRACE("Handle TEvTabletPipe::TEvServerConnected(" << ev->Get()->ClientId << ") " << ev->Get()->ServerId); @@ -108,9 +120,9 @@ void THive::Handle(TEvTabletPipe::TEvServerDisconnected::TPtr& ev) { TNodeInfo* node = FindNode(ev->Get()->ClientId.NodeId()); if (node != nullptr) { Erase(node->PipeServers, ev->Get()->ServerId); - if (node->PipeServers.empty() && node->IsUnknown() && node->CanBeDeleted()) { + if (node->PipeServers.empty() && node->IsUnknown()) { ObjectDistributions.RemoveNode(*node); - DeleteNode(node->Id); + TryToDeleteNode(node); } } } @@ -227,16 +239,16 @@ void THive::ExecuteProcessBootQueue(NIceDb::TNiceDb& db, TSideEffects& sideEffec } if (tablet->IsReadyToStart(now)) { TBestNodeResult bestNodeResult = FindBestNode(*tablet); - if (bestNodeResult.BestNode != nullptr) { - if (tablet->InitiateStart(bestNodeResult.BestNode)) { + if (std::holds_alternative(bestNodeResult)) { + if (tablet->InitiateStart(std::get(bestNodeResult))) { ++tabletsStarted; continue; } } else { - if (!bestNodeResult.TryToContinue) { + if (std::holds_alternative(bestNodeResult)) { delayedTablets.push_back(record); break; - } else { + } else if (std::holds_alternative(bestNodeResult)) { for (const TActorId actorToNotify : tablet->ActorsToNotifyOnRestart) { sideEffects.Send(actorToNotify, new TEvPrivate::TEvRestartComplete(tablet->GetFullTabletId(), "boot delay")); } @@ -469,11 +481,20 @@ void THive::Handle(TEvPrivate::TEvBootTablets::TPtr&) { SignalTabletActive(DEPRECATED_CTX); ReadyForConnections = true; RequestPoolsInformation(); + std::vector unimportantNodes; // ping nodes with tablets first + unimportantNodes.reserve(Nodes.size()); for (auto& [id, node] : Nodes) { if (node.IsUnknown() && node.Local) { - node.Ping(); + if (node.GetTabletsTotal() > 0) { + node.Ping(); + } else { + unimportantNodes.push_back(&node); + } } } + for (auto* node : unimportantNodes) { + node->Ping(); + } TVector tabletsToReleaseFromParent; TSideEffects sideEffects; sideEffects.Reset(SelfId()); @@ -790,12 +811,17 @@ void THive::Handle(TEvPrivate::TEvKickTablet::TPtr &ev) { BLOG_D("THive::Handle::TEvKickTablet TabletId=" << tabletId); TBestNodeResult result = FindBestNode(*tablet); - if (result.BestNode == nullptr) { - Execute(CreateRestartTablet(tabletId)); - } else if (result.BestNode != tablet->Node) { - if (IsTabletMoveExpedient(*tablet, *result.BestNode)) { + if (std::holds_alternative(result)) { + if (tablet->Node == nullptr || !tablet->Node->IsAllowedToRunTablet(*tablet)) { + Execute(CreateRestartTablet(tabletId)); + } + } else if (std::holds_alternative(result)) { + TNodeInfo* node = std::get(result); + if (node != tablet->Node && IsTabletMoveExpedient(*tablet, *node)) { Execute(CreateRestartTablet(tabletId)); } + } else { + Execute(CreateRestartTablet(tabletId)); } } @@ -1162,12 +1188,12 @@ THive::TBestNodeResult THive::FindBestNode(const TTabletInfo& tablet) { if (node != nullptr) { if (node->IsAlive() && node->IsAllowedToRunTablet(tablet) && node->IsAbleToScheduleTablet() && node->IsAbleToRunTablet(tablet)) { BLOG_TRACE("[FBN] Tablet " << tablet.ToString() << " choose node " << node->Id << " because of preferred node"); - return TBestNodeResult(*node); + return node; } if (node->Freeze) { BLOG_TRACE("[FBN] Tablet " << tablet.ToString() << " preferred to freezed node " << node->Id); tablet.BootState = TStringBuilder() << "Preferred to freezed node " << node->Id; - return TBestNodeResult(true); + return TNoNodeFound(); } } } @@ -1289,7 +1315,7 @@ THive::TBestNodeResult THive::FindBestNode(const TTabletInfo& tablet) { thereAreNodesWithManyStarts = true; if (GetBootStrategy() == NKikimrConfig::THiveConfig::HIVE_BOOT_STRATEGY_BALANCED) { tablet.BootState = BootStateTooManyStarting; - return TBestNodeResult(false); + return TTooManyTabletsStarting(); } } } else { @@ -1308,7 +1334,7 @@ THive::TBestNodeResult THive::FindBestNode(const TTabletInfo& tablet) { BLOG_TRACE("[FBN] Tablet " << tablet.ToString() << " selected nodes count " << selectedNodes.size()); if (selectedNodes.empty() && thereAreNodesWithManyStarts) { BLOG_TRACE("[FBN] Tablet " << tablet.ToString() << " all available nodes are booting too many tablets"); - return TBestNodeResult(false); + return TTooManyTabletsStarting(); } TNodeInfo* selectedNode = nullptr; @@ -1335,7 +1361,7 @@ THive::TBestNodeResult THive::FindBestNode(const TTabletInfo& tablet) { if (selectedNode != nullptr) { BLOG_TRACE("[FBN] Tablet " << tablet.ToString() << " selected node " << selectedNode->Id); tablet.BootState = BootStateStarting; - return TBestNodeResult(*selectedNode); + return selectedNode; } else { BLOG_TRACE("[FBN] Tablet " << tablet.ToString() << " no node was selected"); @@ -1343,45 +1369,45 @@ THive::TBestNodeResult THive::FindBestNode(const TTabletInfo& tablet) { if (tablet.IsFollower() && debugState.LeaderNotRunning) { tablet.BootState = BootStateLeaderNotRunning; - return TBestNodeResult(true); + return TNoNodeFound(); } if (debugState.NodesDead == nodesLeft) { tablet.BootState = BootStateAllNodesAreDead; - return TBestNodeResult(true); + return TNoNodeFound(); } nodesLeft -= debugState.NodesDead; if (debugState.NodesDown == nodesLeft) { tablet.BootState = BootStateAllNodesAreDeadOrDown; - return TBestNodeResult(true); + return TNoNodeFound(); } nodesLeft -= debugState.NodesDown; if (debugState.NodesNotAllowed + debugState.NodesInDatacentersNotAllowed == nodesLeft) { tablet.BootState = BootStateNoNodesAllowedToRun; - return TBestNodeResult(true); + return TNoNodeFound(); } nodesLeft -= debugState.NodesNotAllowed; nodesLeft -= debugState.NodesInDatacentersNotAllowed; if (debugState.NodesWithSomeoneFromOurFamily == nodesLeft) { tablet.BootState = BootStateWeFilledAllAvailableNodes; - return TBestNodeResult(true); + return TNoNodeFound(); } nodesLeft -= debugState.NodesWithSomeoneFromOurFamily; if (debugState.NodesWithoutDomain == nodesLeft) { tablet.BootState = TStringBuilder() << "Can't find domain " << tablet.GetNodeFilter().GetEffectiveAllowedDomains(); - return TBestNodeResult(true); + return TNoNodeFound(); } nodesLeft -= debugState.NodesWithoutDomain; if (tablet.IsFollower() && debugState.NodesFilledWithDatacenterFollowers == nodesLeft) { tablet.BootState = BootStateNotEnoughDatacenters; - return TBestNodeResult(true); + return TNoNodeFound(); } if (debugState.NodesWithoutResources == nodesLeft) { tablet.BootState = BootStateNotEnoughResources; - return TBestNodeResult(true); + return TNoNodeFound(); } if (debugState.NodesWithoutLocation == nodesLeft) { tablet.BootState = BootStateNodesLocationUnknown; - return TBestNodeResult(true); + return TNoNodeFound(); } TStringBuilder state; @@ -1421,7 +1447,7 @@ THive::TBestNodeResult THive::FindBestNode(const TTabletInfo& tablet) { } tablet.BootState = state; - return TBestNodeResult(true); + return TNoNodeFound(); } } @@ -1974,6 +2000,9 @@ void THive::Handle(TEvHive::TEvRequestHiveNodeStats::TPtr& ev) { if (!node.ServicedDomains.empty()) { nodeStats.MutableNodeDomain()->CopyFrom(node.ServicedDomains.front()); } + if (!node.Name.empty()) { + nodeStats.SetNodeName(node.Name); + } if (request.GetReturnExtendedTabletInfo()) { if (request.HasFilterTabletsByPathId()) { auto itTabletsOfObject = node.TabletsOfObject.find({request.GetFilterTabletsBySchemeShardId(), request.GetFilterTabletsByPathId()}); @@ -2468,6 +2497,12 @@ bool THive::StopSubActor(TSubActorId subActorId) { return false; } +void THive::WaitToMoveTablets(TActorId actor) { + if (std::find(ActorsWaitingToMoveTablets.begin(), ActorsWaitingToMoveTablets.end(), actor) == ActorsWaitingToMoveTablets.end()) { + ActorsWaitingToMoveTablets.push_back(actor); + } +} + bool THive::IsValidMetrics(const NKikimrTabletBase::TMetrics& metrics) { return IsValidMetricsCPU(metrics) || IsValidMetricsMemory(metrics) || IsValidMetricsNetwork(metrics); } @@ -2926,6 +2961,7 @@ void THive::ProcessEvent(std::unique_ptr event) { hFunc(TEvPrivate::TEvStartStorageBalancer, Handle); hFunc(TEvPrivate::TEvProcessStorageBalancer, Handle); hFunc(TEvHive::TEvUpdateDomain, Handle); + hFunc(TEvPrivate::TEvDeleteNode, Handle); } } @@ -3026,6 +3062,7 @@ STFUNC(THive::StateWork) { fFunc(TEvPrivate::TEvStartStorageBalancer::EventType, EnqueueIncomingEvent); fFunc(TEvHive::TEvUpdateDomain::EventType, EnqueueIncomingEvent); fFunc(TEvPrivate::TEvProcessStorageBalancer::EventType, EnqueueIncomingEvent); + fFunc(TEvPrivate::TEvDeleteNode::EventType, EnqueueIncomingEvent); hFunc(TEvPrivate::TEvProcessIncomingEvent, Handle); default: if (!HandleDefaultEvents(ev, SelfId())) { @@ -3290,6 +3327,17 @@ void THive::Handle(TEvPrivate::TEvLogTabletMoves::TPtr&) { TabletMovesByTypeForLog.clear(); } +void THive::Handle(TEvPrivate::TEvDeleteNode::TPtr& ev) { + auto node = FindNode(ev->Get()->NodeId); + if (node == nullptr) { + return; + } + node->DeletionScheduled = false; + if (!node->IsAlive()) { + TryToDeleteNode(node); + } +} + TVector THive::GetNodesForWhiteboardBroadcast(size_t maxNodesToReturn) { TVector nodes; TNodeId selfNodeId = SelfId().NodeId(); diff --git a/ydb/core/mind/hive/hive_impl.h b/ydb/core/mind/hive/hive_impl.h index 587219a41ef0..8a9cd3f2969a 100644 --- a/ydb/core/mind/hive/hive_impl.h +++ b/ydb/core/mind/hive/hive_impl.h @@ -408,6 +408,7 @@ class THive : public TActor, public TTabletExecutedFlat, public THiveShar TSequenceGenerator Sequencer; TOwnershipKeeper Keeper; TEventPriorityQueue EventQueue{*this}; + std::vector ActorsWaitingToMoveTablets; struct TPendingCreateTablet { NKikimrHive::TEvCreateTablet CreateTablet; @@ -562,9 +563,11 @@ class THive : public TActor, public TTabletExecutedFlat, public THiveShar void Handle(TEvPrivate::TEvProcessStorageBalancer::TPtr& ev); void Handle(TEvPrivate::TEvProcessIncomingEvent::TPtr& ev); void Handle(TEvHive::TEvUpdateDomain::TPtr& ev); + void Handle(TEvPrivate::TEvDeleteNode::TPtr& ev); protected: void RestartPipeTx(ui64 tabletId); + bool TryToDeleteNode(TNodeInfo* node); public: static constexpr NKikimrServices::TActivity::EType ActorActivityType() { @@ -582,20 +585,9 @@ class THive : public TActor, public TTabletExecutedFlat, public THiveShar void RestartBSControllerPipe(); void RestartRootHivePipe(); - struct TBestNodeResult { - TNodeInfo* BestNode; - bool TryToContinue; - - TBestNodeResult(TNodeInfo& bestNode) - : BestNode(&bestNode) - , TryToContinue(true) - {} - - TBestNodeResult(bool tryToContinue) - : BestNode(nullptr) - , TryToContinue(tryToContinue) - {} - }; + struct TNoNodeFound {}; + struct TTooManyTabletsStarting {}; + using TBestNodeResult = std::variant; TBestNodeResult FindBestNode(const TTabletInfo& tablet); @@ -627,7 +619,7 @@ class THive : public TActor, public TTabletExecutedFlat, public THiveShar TTabletInfo& GetTablet(TTabletId tabletId, TFollowerId followerId); TTabletInfo* FindTablet(TTabletId tabletId, TFollowerId followerId); TTabletInfo* FindTablet(const TFullTabletId& tabletId) { return FindTablet(tabletId.first, tabletId.second); } - TTabletInfo* FindTabletEvenInDeleting(TTabletId tabletId, TFollowerId followerId); +TTabletInfo* FindTabletEvenInDeleting(TTabletId tabletId, TFollowerId followerId); TStoragePoolInfo& GetStoragePool(const TString& name); TStoragePoolInfo* FindStoragePool(const TString& name); TDomainInfo* FindDomain(TSubDomainKey key); @@ -976,6 +968,7 @@ class THive : public TActor, public TTabletExecutedFlat, public THiveShar THiveStats GetStats() const; void RemoveSubActor(ISubActor* subActor); bool StopSubActor(TSubActorId subActorId); + void WaitToMoveTablets(TActorId actor); const NKikimrLocal::TLocalConfig &GetLocalConfig() const { return LocalConfig; } NKikimrTabletBase::TMetrics GetDefaultResourceValuesForObject(TFullObjectId objectId); NKikimrTabletBase::TMetrics GetDefaultResourceValuesForTabletType(TTabletTypes::EType type); diff --git a/ydb/core/mind/hive/hive_impl_ut.cpp b/ydb/core/mind/hive/hive_impl_ut.cpp index e3ba0468f58c..a2a734886b37 100644 --- a/ydb/core/mind/hive/hive_impl_ut.cpp +++ b/ydb/core/mind/hive/hive_impl_ut.cpp @@ -193,4 +193,22 @@ Y_UNIT_TEST_SUITE(THiveImplTest) { Ctest << "HIVE_TABLET_BALANCE_STRATEGY_RANDOM" << Endl; CheckSpeedAndDistribution(allTablets, BalanceTablets, EResourceToBalance::Memory); } + + Y_UNIT_TEST(TestStDev) { + using TSingleResource = std::tuple; + + TVector values(100, 50.0 / 1'000'000); + values.front() = 51.0 / 1'000'000; + + double stDev1 = std::get<0>(GetStDev(values)); + + std::swap(values.front(), values.back()); + + double stDev2 = std::get<0>(GetStDev(values)); + + double expectedStDev = sqrt(0.9703) / 1'000'000; + + UNIT_ASSERT_DOUBLES_EQUAL(expectedStDev, stDev1, 1e-6); + UNIT_ASSERT_VALUES_EQUAL(stDev1, stDev2); + } } diff --git a/ydb/core/mind/hive/hive_schema.h b/ydb/core/mind/hive/hive_schema.h index 56437f392639..eb54b30675b9 100644 --- a/ydb/core/mind/hive/hive_schema.h +++ b/ydb/core/mind/hive/hive_schema.h @@ -192,9 +192,10 @@ struct Schema : NIceDb::Schema { struct Drain : Column<6, NScheme::NTypeIds::Bool> { static constexpr bool Default = false; }; struct DrainInitiators : Column<8, NScheme::NTypeIds::String> { using Type = TVector; }; struct Location : Column<9, NScheme::NTypeIds::String> { using Type = NActorsInterconnect::TNodeLocation; }; + struct Name : Column<10, NScheme::NTypeIds::String> {}; using TKey = TableKey; - using TColumns = TableColumns; + using TColumns = TableColumns; }; struct TabletCategory : Table<6> { diff --git a/ydb/core/mind/hive/hive_ut.cpp b/ydb/core/mind/hive/hive_ut.cpp index 58367a60403f..cb3f4ba16eef 100644 --- a/ydb/core/mind/hive/hive_ut.cpp +++ b/ydb/core/mind/hive/hive_ut.cpp @@ -903,17 +903,15 @@ Y_UNIT_TEST_SUITE(THiveTest) { } } - Y_UNIT_TEST(TestDrain) { - const int NUM_NODES = 3; + void TestDrain(TTestBasicRuntime& runtime) { + const int numNodes = runtime.GetNodeCount(); const int NUM_TABLETS = 100; - TTestBasicRuntime runtime(NUM_NODES, false); - Setup(runtime, true); const ui64 hiveTablet = MakeDefaultHiveID(0); const ui64 testerTablet = MakeDefaultHiveID(1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); { TDispatchOptions options; - options.FinalEvents.emplace_back(TEvLocal::EvStatus, NUM_NODES); + options.FinalEvents.emplace_back(TEvLocal::EvStatus, numNodes); runtime.DispatchEvents(options); } TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -970,6 +968,20 @@ Y_UNIT_TEST_SUITE(THiveTest) { UNIT_ASSERT_VALUES_EQUAL(tabletStates[NKikimrWhiteboard::TTabletStateInfo::Dead], drainMovements); } + Y_UNIT_TEST(TestDrain) { + TTestBasicRuntime runtime(3, false); + Setup(runtime, true); + TestDrain(runtime); + } + + Y_UNIT_TEST(TestDrainWithMaxTabletsScheduled) { + TTestBasicRuntime runtime(3, false); + Setup(runtime, true, 2, [](TAppPrepare& app) { + app.HiveConfig.SetMaxTabletsScheduled(1); + }); + TestDrain(runtime); + } + Y_UNIT_TEST(TestCreateSubHiveCreateTablet) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); @@ -4507,6 +4519,96 @@ Y_UNIT_TEST_SUITE(THiveTest) { UNIT_ASSERT_LE(movedToFirstNode, TABLETS_PER_NODE / 2); } + Y_UNIT_TEST(TestHiveNoBalancingWithLowResourceUsage) { + static constexpr ui64 NUM_NODES = 5; + static constexpr ui64 NUM_TABLETS = 100; + TTestBasicRuntime runtime(NUM_NODES, false); + Setup(runtime, true, 1, [](TAppPrepare& app) { + app.HiveConfig.SetTabletKickCooldownPeriod(0); + app.HiveConfig.SetResourceChangeReactionPeriod(0); + app.HiveConfig.SetMetricsWindowSize(1); + }); + const int nodeBase = runtime.GetNodeId(0); + TActorId senderA = runtime.AllocateEdgeActor(); + const ui64 hiveTablet = MakeDefaultHiveID(0); + const ui64 testerTablet = MakeDefaultHiveID(1); + + auto getDistribution = [hiveTablet, nodeBase, senderA, &runtime]() -> std::array, NUM_NODES> { + std::array, NUM_NODES> nodeTablets = {}; + { + runtime.SendToPipe(hiveTablet, senderA, new TEvHive::TEvRequestHiveInfo()); + TAutoPtr handle; + TEvHive::TEvResponseHiveInfo* response = runtime.GrabEdgeEventRethrow(handle); + for (const NKikimrHive::TTabletInfo& tablet : response->Record.GetTablets()) { + UNIT_ASSERT_C(((int)tablet.GetNodeID() - nodeBase >= 0) && (tablet.GetNodeID() - nodeBase < NUM_NODES), + "nodeId# " << tablet.GetNodeID() << " nodeBase# " << nodeBase); + nodeTablets[tablet.GetNodeID() - nodeBase].push_back(tablet.GetTabletID()); + } + } + return nodeTablets; + }; + + CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); + + // wait for creation of nodes + { + TDispatchOptions options; + options.FinalEvents.emplace_back(TEvLocal::EvStatus, NUM_NODES); + runtime.DispatchEvents(options); + } + + TTabletTypes::EType tabletType = TTabletTypes::Dummy; + std::vector tablets; + tablets.reserve(NUM_TABLETS); + for (size_t i = 0; i < NUM_TABLETS; ++i) { + THolder ev(new TEvHive::TEvCreateTablet(testerTablet, 100500 + i, tabletType, BINDED_CHANNELS)); + ev->Record.SetObjectId(i); + ui64 tabletId = SendCreateTestTablet(runtime, hiveTablet, testerTablet, std::move(ev), 0, true); + MakeSureTabletIsUp(runtime, tabletId, 0); + tablets.push_back(tabletId); + } + + auto initialDistribution = getDistribution(); + + // report small metrics for some tablets + auto rand = CreateDeterministicRandomProvider(777); + for (auto tablet : tablets) { + THolder metrics = MakeHolder(); + NKikimrHive::TTabletMetrics* metric = metrics->Record.AddTabletMetrics(); + metric->SetTabletID(tablet); + if (rand->GenRand() % 2) { + metric->MutableResourceUsage()->SetCPU(1001); // 1% core + metric->MutableResourceUsage()->SetMemory(150'000); // 150kb + } else { + metric->MutableResourceUsage()->SetCPU(999); + metric->MutableResourceUsage()->SetMemory(100'000); + } + + runtime.SendToPipe(hiveTablet, senderA, metrics.Release()); + } + + { + TDispatchOptions options; + options.FinalEvents.emplace_back(NHive::TEvPrivate::EvBalancerOut); + runtime.DispatchEvents(options, TDuration::Seconds(10)); + } + + // Check that balancer moved no tablets + auto newDistribution = getDistribution(); + + UNIT_ASSERT_EQUAL(initialDistribution, newDistribution); + + { + auto request = std::make_unique(); + request->Record.SetReturnMetrics(true); + runtime.SendToPipe(hiveTablet, senderA, request.release()); + TAutoPtr handle; + TEvHive::TEvResponseHiveDomainStats* response = runtime.GrabEdgeEventRethrow(handle); + ui64 totalCounter = response->Record.GetDomainStats(0).GetMetrics().GetCounter(); + UNIT_ASSERT_VALUES_EQUAL(totalCounter, 0); + } + } + Y_UNIT_TEST(TestHiveBalancerWithImmovableTablets) { static constexpr ui64 TABLETS_PER_NODE = 10; TTestBasicRuntime runtime(3, false); diff --git a/ydb/core/mind/hive/node_info.h b/ydb/core/mind/hive/node_info.h index 34571e9cd4bf..8ba41b3fd9d1 100644 --- a/ydb/core/mind/hive/node_info.h +++ b/ydb/core/mind/hive/node_info.h @@ -60,6 +60,8 @@ struct TNodeInfo { THashSet LockedTablets; mutable TInstant LastResourceChangeReaction; NKikimrHive::TNodeStatistics Statistics; + TString Name; + bool DeletionScheduled = false; TNodeInfo(TNodeId nodeId, THive& hive); TNodeInfo(const TNodeInfo&) = delete; diff --git a/ydb/core/mind/hive/tablet_info.cpp b/ydb/core/mind/hive/tablet_info.cpp index 4598bface6ec..37e523dbdff3 100644 --- a/ydb/core/mind/hive/tablet_info.cpp +++ b/ydb/core/mind/hive/tablet_info.cpp @@ -324,9 +324,11 @@ void TTabletInfo::UpdateResourceUsage(const NKikimrTabletBase::TMetrics& metrics BLOG_W("Ignoring too high CPU metric (" << metrics.GetCPU() << ") for tablet " << ToString()); } else { ResourceMetricsAggregates.MaximumCPU.SetValue(metrics.GetCPU(), now); - ResourceValues.SetCPU(ResourceMetricsAggregates.MaximumCPU.GetValue()); } + } else { + ResourceMetricsAggregates.MaximumCPU.AdvanceTime(now); } + ResourceValues.SetCPU(ResourceMetricsAggregates.MaximumCPU.GetValue()); } if (Find(allowedMetricIds, NKikimrTabletBase::TMetrics::kMemoryFieldNumber) != allowedMetricIds.end()) { if (metrics.HasMemory()) { @@ -334,9 +336,11 @@ void TTabletInfo::UpdateResourceUsage(const NKikimrTabletBase::TMetrics& metrics BLOG_W("Ignoring too high Memory metric (" << metrics.GetMemory() << ") for tablet " << ToString()); } else { ResourceMetricsAggregates.MaximumMemory.SetValue(metrics.GetMemory(), now); - ResourceValues.SetMemory(ResourceMetricsAggregates.MaximumMemory.GetValue()); } + } else { + ResourceMetricsAggregates.MaximumMemory.AdvanceTime(now); } + ResourceValues.SetMemory(ResourceMetricsAggregates.MaximumMemory.GetValue()); } if (Find(allowedMetricIds, NKikimrTabletBase::TMetrics::kNetworkFieldNumber) != allowedMetricIds.end()) { if (metrics.HasNetwork()) { @@ -344,9 +348,11 @@ void TTabletInfo::UpdateResourceUsage(const NKikimrTabletBase::TMetrics& metrics BLOG_W("Ignoring too high Network metric (" << metrics.GetNetwork() << ") for tablet " << ToString()); } else { ResourceMetricsAggregates.MaximumNetwork.SetValue(metrics.GetNetwork(), now); - ResourceValues.SetNetwork(ResourceMetricsAggregates.MaximumNetwork.GetValue()); } + } else { + ResourceMetricsAggregates.MaximumNetwork.AdvanceTime(now); } + ResourceValues.SetNetwork(ResourceMetricsAggregates.MaximumNetwork.GetValue()); } if (metrics.HasStorage()) { ResourceValues.SetStorage(metrics.GetStorage()); @@ -398,14 +404,21 @@ TResourceRawValues TTabletInfo::GetResourceMaximumValues() const { } } -i64 TTabletInfo::GetCounterValue(const NKikimrTabletBase::TMetrics& metrics, const TVector& allowedMetricIds) { - if (Find(allowedMetricIds, NKikimrTabletBase::TMetrics::kCPUFieldNumber) != allowedMetricIds.end() && THive::IsValidMetricsCPU(metrics)) { +i64 TTabletInfo::GetCounterValue() const { + const auto& allowedMetricIds = GetTabletAllowedMetricIds(); + if (Find(allowedMetricIds, NKikimrTabletBase::TMetrics::kCPUFieldNumber) != allowedMetricIds.end() + && (ResourceMetricsAggregates.MaximumCPU.GetAllTimeMaximum() > 0 + || ResourceValues.GetCPU() > 0)) { return 0; } - if (Find(allowedMetricIds, NKikimrTabletBase::TMetrics::kMemoryFieldNumber) != allowedMetricIds.end() && THive::IsValidMetricsMemory(metrics)) { + if (Find(allowedMetricIds, NKikimrTabletBase::TMetrics::kMemoryFieldNumber) != allowedMetricIds.end() + && (ResourceMetricsAggregates.MaximumMemory.GetAllTimeMaximum() > 0 + || ResourceValues.GetMemory() > 0)) { return 0; } - if (Find(allowedMetricIds, NKikimrTabletBase::TMetrics::kNetworkFieldNumber) != allowedMetricIds.end() && THive::IsValidMetricsNetwork(metrics)) { + if (Find(allowedMetricIds, NKikimrTabletBase::TMetrics::kNetworkFieldNumber) != allowedMetricIds.end() + && (ResourceMetricsAggregates.MaximumNetwork.GetAllTimeMaximum() > 0 + || ResourceValues.GetNetwork() > 0)) { return 0; } return 1; @@ -446,8 +459,7 @@ void TTabletInfo::FilterRawValues(TResourceNormalizedValues& values) const { } void TTabletInfo::ActualizeCounter() { - auto value = GetCounterValue(ResourceValues, GetTabletAllowedMetricIds()); - ResourceValues.SetCounter(value); + ResourceValues.SetCounter(GetCounterValue()); } const TNodeFilter& TTabletInfo::GetNodeFilter() const { diff --git a/ydb/core/mind/hive/tablet_info.h b/ydb/core/mind/hive/tablet_info.h index 2afb5f6010a8..8d722440b57d 100644 --- a/ydb/core/mind/hive/tablet_info.h +++ b/ydb/core/mind/hive/tablet_info.h @@ -230,7 +230,7 @@ struct TTabletInfo { void UpdateResourceUsage(const NKikimrTabletBase::TMetrics& metrics); TResourceRawValues GetResourceCurrentValues() const; TResourceRawValues GetResourceMaximumValues() const; - static i64 GetCounterValue(const NKikimrTabletBase::TMetrics& metrics, const TVector& allowedMetricIds); + i64 GetCounterValue() const; void FilterRawValues(TResourceRawValues& values) const; void FilterRawValues(TResourceNormalizedValues& values) const; void ActualizeCounter(); diff --git a/ydb/core/mind/hive/tx__kill_node.cpp b/ydb/core/mind/hive/tx__kill_node.cpp index e773bfc9fb40..0c65e5a76afa 100644 --- a/ydb/core/mind/hive/tx__kill_node.cpp +++ b/ydb/core/mind/hive/tx__kill_node.cpp @@ -52,9 +52,8 @@ class TTxKillNode : public TTransactionBase { } node->PipeServers.clear(); Self->ObjectDistributions.RemoveNode(*node); - if (node->CanBeDeleted()) { + if (Self->TryToDeleteNode(node)) { db.Table().Key(NodeId).Delete(); - Self->DeleteNode(NodeId); } else { db.Table().Key(NodeId).Update(TActorId()); } diff --git a/ydb/core/mind/hive/tx__load_everything.cpp b/ydb/core/mind/hive/tx__load_everything.cpp index 9b8b05ae9b12..778911f5f465 100644 --- a/ydb/core/mind/hive/tx__load_everything.cpp +++ b/ydb/core/mind/hive/tx__load_everything.cpp @@ -314,6 +314,7 @@ class TTxLoadEverything : public TTransactionBase { node.DrainInitiators = nodeRowset.GetValueOrDefault(); node.ServicedDomains = nodeRowset.GetValueOrDefault(); node.Statistics = nodeRowset.GetValueOrDefault(); + node.Name = nodeRowset.GetValueOrDefault(); if (nodeRowset.HaveValue()) { auto location = nodeRowset.GetValue(); if (location.HasDataCenter()) { diff --git a/ydb/core/mind/hive/tx__register_node.cpp b/ydb/core/mind/hive/tx__register_node.cpp index 941c0dce6580..f471a13ba5d0 100644 --- a/ydb/core/mind/hive/tx__register_node.cpp +++ b/ydb/core/mind/hive/tx__register_node.cpp @@ -41,7 +41,14 @@ class TTxRegisterNode : public TTransactionBase { } else { Sort(servicedDomains); } - db.Table().Key(nodeId).Update(Local, servicedDomains, node.Statistics); + const TString& name = Record.GetName(); + db.Table().Key(nodeId).Update( + NIceDb::TUpdate(Local), + NIceDb::TUpdate(servicedDomains), + NIceDb::TUpdate(node.Statistics), + NIceDb::TUpdate(name) + ); + node.BecomeDisconnected(); if (node.LastSeenServicedDomains != servicedDomains) { // new tenant - new rules @@ -52,6 +59,7 @@ class TTxRegisterNode : public TTransactionBase { node.Local = Local; node.ServicedDomains.swap(servicedDomains); node.LastSeenServicedDomains = node.ServicedDomains; + node.Name = name; } if (Record.HasSystemLocation() && Record.GetSystemLocation().HasDataCenter()) { node.Location = TNodeLocation(Record.GetSystemLocation()); diff --git a/ydb/core/mind/hive/tx__update_tablet_status.cpp b/ydb/core/mind/hive/tx__update_tablet_status.cpp index 11d16d56e18e..6b8874dfe438 100644 --- a/ydb/core/mind/hive/tx__update_tablet_status.cpp +++ b/ydb/core/mind/hive/tx__update_tablet_status.cpp @@ -93,6 +93,10 @@ class TTxUpdateTabletStatus : public TTransactionBase { SideEffects.Send(actor, new TEvPrivate::TEvRestartComplete({TabletId, FollowerId}, "OK")); } tablet->ActorsToNotifyOnRestart.clear(); + for (const TActorId& actor : Self->ActorsWaitingToMoveTablets) { + SideEffects.Send(actor, new TEvPrivate::TEvCanMoveTablets()); + } + Self->ActorsWaitingToMoveTablets.clear(); if (tablet->GetLeader().IsDeleting()) { tablet->SendStopTablet(SideEffects); return true; diff --git a/ydb/core/mind/hive/ut/CMakeLists.darwin-arm64.txt b/ydb/core/mind/hive/ut/CMakeLists.darwin-arm64.txt index cd8e70ab0da7..81b03089febf 100644 --- a/ydb/core/mind/hive/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/mind/hive/ut/CMakeLists.darwin-arm64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-core-mind-hive-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-mind-hive-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/object_distribution_ut.cpp @@ -65,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/hive/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/mind/hive/ut/CMakeLists.darwin-x86_64.txt index 6cb64b59e069..ea803123c688 100644 --- a/ydb/core/mind/hive/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/mind/hive/ut/CMakeLists.darwin-x86_64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-core-mind-hive-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-mind-hive-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/object_distribution_ut.cpp @@ -66,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/hive/ut/CMakeLists.linux-aarch64.txt b/ydb/core/mind/hive/ut/CMakeLists.linux-aarch64.txt index 5cade2b4aea9..5072dfdf460f 100644 --- a/ydb/core/mind/hive/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/mind/hive/ut/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-core-mind-hive-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-mind-hive-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/object_distribution_ut.cpp @@ -69,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/hive/ut/CMakeLists.linux-x86_64.txt b/ydb/core/mind/hive/ut/CMakeLists.linux-x86_64.txt index f632b9896250..20cc17facd23 100644 --- a/ydb/core/mind/hive/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/mind/hive/ut/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-core-mind-hive-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-mind-hive-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/hive/object_distribution_ut.cpp @@ -70,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/hive/ut/CMakeLists.windows-x86_64.txt b/ydb/core/mind/hive/ut/CMakeLists.windows-x86_64.txt index 40987ea5c1d5..8f50e8affd7e 100644 --- a/ydb/core/mind/hive/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/mind/hive/ut/CMakeLists.windows-x86_64.txt @@ -59,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/local.cpp b/ydb/core/mind/local.cpp index c0aaaa639571..3cff2d44b973 100644 --- a/ydb/core/mind/local.cpp +++ b/ydb/core/mind/local.cpp @@ -199,6 +199,9 @@ class TLocalNodeRegistrar : public TActorBootstrapped { } tabletAvailability->SetPriority(tabletInfo.Priority); } + if (const TString& nodeName = AppData(ctx)->NodeName; !nodeName.Empty()) { + request->Record.SetName(nodeName); + } NTabletPipe::SendData(ctx, HivePipeClient, request.Release()); diff --git a/ydb/core/mind/local.h b/ydb/core/mind/local.h index 5b198a8f9089..f47b89f045f2 100644 --- a/ydb/core/mind/local.h +++ b/ydb/core/mind/local.h @@ -46,17 +46,26 @@ struct TRegistrationInfo { struct TDrainProgress : public TThrRefBase { std::atomic_uint64_t Events = 0; std::atomic_uint64_t OnlineTabletsEstimate = 0; + std::atomic_bool ValidEstimate = false; bool CheckCompleted() { return Events.load() == 0; } - ui64 GetOnlineTabletsEstimate() { - return OnlineTabletsEstimate.load(); + std::optional GetOnlineTabletsEstimate() { + if (ValidEstimate.load()) { + // A race here is safe as ValidEstimate will not become false after once becoming true + return OnlineTabletsEstimate.load(); + } else { + return std::nullopt; + } } void UpdateEstimate(i64 diff) { OnlineTabletsEstimate += diff; + if (diff != 0) { + ValidEstimate = true; + } } void OnSend() { diff --git a/ydb/core/mind/node_broker.cpp b/ydb/core/mind/node_broker.cpp index d3aa1a9b279c..3dc8c47d18e0 100644 --- a/ydb/core/mind/node_broker.cpp +++ b/ydb/core/mind/node_broker.cpp @@ -67,6 +67,8 @@ void TNodeBroker::OnActivateExecutor(const TActorContext &ctx) MinDynamicId = Max(MaxStaticId + 1, (ui64)Min(appData->DynamicNameserviceConfig->MinDynamicNodeId, TActorId::MaxNodeId)); MaxDynamicId = Max(MinDynamicId, (ui64)Min(appData->DynamicNameserviceConfig->MaxDynamicNodeId, TActorId::MaxNodeId)); + EnableStableNodeNames = appData->FeatureFlags.GetEnableStableNodeNames(); + ClearState(); ProcessTx(CreateTxInitScheme(), ctx); @@ -108,6 +110,7 @@ bool TNodeBroker::OnRenderAppHtmlPage(NMon::TEvRemoteHttpInfo::TPtr ev, << " MaxStaticNodeId: " << AppData(ctx)->DynamicNameserviceConfig->MaxStaticNodeId << Endl << " MaxDynamicNodeId: " << AppData(ctx)->DynamicNameserviceConfig->MaxDynamicNodeId << Endl << " EpochDuration: " << EpochDuration << Endl + << " StableNodeNamePrefix: " << StableNodeNamePrefix << Endl << " BannedIds:"; for (auto &pr : BannedIds) str << " [" << pr.first << ", " << pr.second << "]"; @@ -128,11 +131,38 @@ bool TNodeBroker::OnRenderAppHtmlPage(NMon::TEvRemoteHttpInfo::TPtr ev, << " Location: " << node.Location.ToString() << Endl << " Lease: " << node.Lease << Endl << " Expire: " << node.ExpirationString() << Endl - << " AuthorizedByCertificate: " << (node.AuthorizedByCertificate ? "true" : "false") << Endl; + << " AuthorizedByCertificate: " << (node.AuthorizedByCertificate ? "true" : "false") << Endl + << " ServicedSubDomain: " << node.ServicedSubDomain << Endl + << " SlotIndex: " << node.SlotIndex << Endl; } str << Endl; str << "Free Node IDs count: " << FreeIds.Count() << Endl; + + str << Endl; + str << "Slot Indexes Pools usage: " << Endl; + size_t totalSize = 0; + size_t totalCapacity = 0; + for (const auto &[subdomainKey, slotIndexesPool] : SlotIndexesPools) { + const size_t size = slotIndexesPool.Size(); + totalSize += size; + const size_t capacity = slotIndexesPool.Capacity(); + totalCapacity += capacity; + const double usagePercent = floor(size * 100.0 / capacity); + str << " " << subdomainKey + << " = " << usagePercent << "% (" << size << " of " << capacity << ")" + << Endl; + } + str << Endl; + + if (totalCapacity > 0) { + const double totalUsagePercent = floor(totalSize * 100.0 / totalCapacity); + str << " Total" + << " = " << totalUsagePercent << "% (" << totalSize << " of " << totalCapacity << ")" + << Endl; + } else { + str << " No Slot Indexes Pools" << Endl; + } } } @@ -162,11 +192,15 @@ void TNodeBroker::ClearState() Hosts.clear(); RecomputeFreeIds(); + RecomputeSlotIndexesPools(); } void TNodeBroker::AddNode(const TNodeInfo &info) { FreeIds.Reset(info.NodeId); + if (info.SlotIndex.has_value()) { + SlotIndexesPools[info.ServicedSubDomain].Acquire(info.SlotIndex.value()); + } if (info.Expire > Epoch.Start) { LOG_DEBUG_S(TActorContext::AsActorContext(), NKikimrServices::NODE_BROKER, @@ -235,6 +269,24 @@ void TNodeBroker::RecomputeFreeIds() } } +void TNodeBroker::RecomputeSlotIndexesPools() +{ + for (auto &[_, slotIndexesPool] : SlotIndexesPools) { + slotIndexesPool.ReleaseAll(); + } + + for (const auto &[_, node] : Nodes) { + if (node.SlotIndex.has_value()) { + SlotIndexesPools[node.ServicedSubDomain].Acquire(node.SlotIndex.value()); + } + } + for (const auto &[_, node] : ExpiredNodes) { + if (node.SlotIndex.has_value()) { + SlotIndexesPools[node.ServicedSubDomain].Acquire(node.SlotIndex.value()); + } + } +} + bool TNodeBroker::IsBannedId(ui32 id) const { for (auto &pr : BannedIds) @@ -308,6 +360,16 @@ void TNodeBroker::FillNodeInfo(const TNodeInfo &node, info.SetAddress(node.Address); info.SetExpire(node.Expire.GetValue()); node.Location.Serialize(info.MutableLocation(), false); + FillNodeName(node.SlotIndex, info); +} + +void TNodeBroker::FillNodeName(const std::optional &slotIndex, + NKikimrNodeBroker::TNodeInfo &info) const +{ + if (EnableStableNodeNames && slotIndex.has_value()) { + const TString name = TStringBuilder() << StableNodeNamePrefix << slotIndex.value(); + info.SetName(name); + } } void TNodeBroker::ComputeNextEpochDiff(TStateDiff &diff) @@ -348,9 +410,13 @@ void TNodeBroker::ApplyStateDiff(const TStateDiff &diff) LOG_DEBUG_S(TActorContext::AsActorContext(), NKikimrServices::NODE_BROKER, "Remove node " << it->second.IdString()); - ExpiredNodes.erase(it); - if (!IsBannedId(id) && NodeIdDomain(id) == DomainId && id >= MinDynamicId && id <= MaxDynamicId) + if (!IsBannedId(id) && NodeIdDomain(id) == DomainId && id >= MinDynamicId && id <= MaxDynamicId) { FreeIds.Set(id); + } + if (it->second.SlotIndex.has_value()) { + SlotIndexesPools[it->second.ServicedSubDomain].Release(it->second.SlotIndex.value()); + } + ExpiredNodes.erase(it); } LOG_DEBUG_S(TActorContext::AsActorContext(), NKikimrServices::NODE_BROKER, @@ -399,8 +465,9 @@ void TNodeBroker::AddNodeToEpochCache(const TNodeInfo &node) void TNodeBroker::SubscribeForConfigUpdates(const TActorContext &ctx) { - ui32 item = (ui32)NKikimrConsole::TConfigItem::NodeBrokerConfigItem; - NConsole::SubscribeViaConfigDispatcher(ctx, {item}, ctx.SelfID); + ui32 nodeBrokerItem = (ui32)NKikimrConsole::TConfigItem::NodeBrokerConfigItem; + ui32 featureFlagsItem = (ui32)NKikimrConsole::TConfigItem::FeatureFlagsItem; + NConsole::SubscribeViaConfigDispatcher(ctx, {nodeBrokerItem, featureFlagsItem}, ctx.SelfID); } void TNodeBroker::ProcessTx(ITransaction *tx, @@ -441,6 +508,8 @@ void TNodeBroker::LoadConfigFromProto(const NKikimrNodeBroker::TConfig &config) EpochDuration = MIN_LEASE_DURATION; } + StableNodeNamePrefix = config.GetStableNodeNamePrefix(); + BannedIds.clear(); for (auto &banned : config.GetBannedNodeIds()) BannedIds.emplace_back(banned.GetFrom(), banned.GetTo()); @@ -457,7 +526,9 @@ void TNodeBroker::DbAddNode(const TNodeInfo &node, << " dc=" << node.Location.GetDataCenterId() << " location=" << node.Location.ToString() << " lease=" << node.Lease - << " expire=" << node.ExpirationString()); + << " expire=" << node.ExpirationString() + << " servicedsubdomain=" << node.ServicedSubDomain + << " slotindex= " << node.SlotIndex); NIceDb::TNiceDb db(txc.DB); using T = Schema::Nodes; @@ -468,7 +539,16 @@ void TNodeBroker::DbAddNode(const TNodeInfo &node, .Update(node.Address) .Update(node.Lease) .Update(node.Expire.GetValue()) - .Update(node.Location.GetSerializedLocation()); + .Update(node.Location.GetSerializedLocation()) + .Update(node.ServicedSubDomain); + + if (node.SlotIndex.has_value()) { + db.Table().Key(node.NodeId) + .Update(node.SlotIndex.value()); + } else { + db.Table().Key(node.NodeId) + .UpdateToNull(); + } } void TNodeBroker::DbApplyStateDiff(const TStateDiff &diff, @@ -615,7 +695,10 @@ bool TNodeBroker::DbLoadState(TTransactionContext &txc, info.Lease = nodesRowset.GetValue(); info.Expire = expire; - + info.ServicedSubDomain = TSubDomainKey(nodesRowset.GetValueOrDefault()); + if (nodesRowset.HaveValue()) { + info.SlotIndex = nodesRowset.GetValue(); + } AddNode(info); LOG_DEBUG_S(ctx, NKikimrServices::NODE_BROKER, @@ -731,7 +814,12 @@ void TNodeBroker::DbUpdateNodeLocation(const TNodeInfo &node, void TNodeBroker::Handle(TEvConsole::TEvConfigNotificationRequest::TPtr &ev, const TActorContext &ctx) -{ +{ + const auto& appConfig = ev->Get()->Record.GetConfig(); + if (appConfig.HasFeatureFlags()) { + EnableStableNodeNames = appConfig.GetFeatureFlags().GetEnableStableNodeNames(); + } + if (ev->Get()->Record.HasLocal() && ev->Get()->Record.GetLocal()) { ProcessTx(CreateTxUpdateConfig(ev), ctx); } else { @@ -801,6 +889,7 @@ void TNodeBroker::Handle(TEvNodeBroker::TEvRegistrationRequest::TPtr &ev, TEvNodeBroker::TEvRegistrationRequest::TPtr Ev; TNodeBroker *Self; NActors::TScopeId ScopeId; + TSubDomainKey ServicedSubDomain; public: static constexpr NKikimrServices::TActivity::EType ActorActivityType() { @@ -846,8 +935,9 @@ void TNodeBroker::Handle(TEvNodeBroker::TEvRegistrationRequest::TPtr &ev, } else { ScopeId = {response.DomainInfo->DomainKey.OwnerId, response.DomainInfo->DomainKey.LocalPathId}; } + ServicedSubDomain = TSubDomainKey(response.DomainInfo->DomainKey.OwnerId, response.DomainInfo->DomainKey.LocalPathId); } else { - LOG_WARN_S(ctx, NKikimrServices::NODE_BROKER, "Cannot resolve scope id" + LOG_WARN_S(ctx, NKikimrServices::NODE_BROKER, "Cannot resolve tenant" << ": request# " << Ev->Get()->Record.ShortDebugString() << ", response# " << response.ToString(*AppData()->TypeRegistry)); } @@ -860,11 +950,12 @@ void TNodeBroker::Handle(TEvNodeBroker::TEvRegistrationRequest::TPtr &ev, } void Finish(const TActorContext& ctx) { - LOG_TRACE_S(ctx, NKikimrServices::NODE_BROKER, "Finished resolving scope id" + LOG_TRACE_S(ctx, NKikimrServices::NODE_BROKER, "Finished resolving tenant" << ": request# " << Ev->Get()->Record.ShortDebugString() - << ": scope id# " << ScopeIdToString(ScopeId)); + << ": scope id# " << ScopeIdToString(ScopeId) + << ": serviced subdomain# " << ServicedSubDomain); - Self->ProcessTx(Self->CreateTxRegisterNode(Ev, ScopeId), ctx); + Self->ProcessTx(Self->CreateTxRegisterNode(Ev, ScopeId, ServicedSubDomain), ctx); Die(ctx); } diff --git a/ydb/core/mind/node_broker__register_node.cpp b/ydb/core/mind/node_broker__register_node.cpp index eee59591de03..1b4ea33e47b0 100644 --- a/ydb/core/mind/node_broker__register_node.cpp +++ b/ydb/core/mind/node_broker__register_node.cpp @@ -10,10 +10,12 @@ using namespace NKikimrNodeBroker; class TNodeBroker::TTxRegisterNode : public TTransactionBase { public: - TTxRegisterNode(TNodeBroker *self, TEvNodeBroker::TEvRegistrationRequest::TPtr &ev, const NActors::TScopeId& scopeId) + TTxRegisterNode(TNodeBroker *self, TEvNodeBroker::TEvRegistrationRequest::TPtr &ev, + const NActors::TScopeId& scopeId, const TSubDomainKey& servicedSubDomain) : TBase(self) , Event(ev) , ScopeId(scopeId) + , ServicedSubDomain(servicedSubDomain) , NodeId(0) , ExtendLease(false) , FixNodeId(false) @@ -60,6 +62,12 @@ class TNodeBroker::TTxRegisterNode : public TTransactionBase { ctx); } + if (Self->EnableStableNodeNames && rec.HasPath() && ServicedSubDomain == InvalidSubDomainKey) { + return Error(TStatus::ERROR, + TStringBuilder() << "Cannot resolve subdomain key for path " << rec.GetPath(), + ctx); + } + // Already registered? auto it = Self->Hosts.find(std::make_tuple(host, addr, port)); if (it != Self->Hosts.end()) { @@ -91,7 +99,21 @@ class TNodeBroker::TTxRegisterNode : public TTransactionBase { ExtendLease = true; } node.AuthorizedByCertificate = rec.GetAuthorizedByCertificate(); - + + if (Self->EnableStableNodeNames) { + if (ServicedSubDomain != node.ServicedSubDomain) { + if (node.SlotIndex.has_value()) { + Self->SlotIndexesPools[node.ServicedSubDomain].Release(node.SlotIndex.value()); + } + node.ServicedSubDomain = ServicedSubDomain; + node.SlotIndex = Self->SlotIndexesPools[node.ServicedSubDomain].AcquireLowestFreeIndex(); + Self->DbAddNode(node, txc); + } else if (!node.SlotIndex.has_value()) { + node.SlotIndex = Self->SlotIndexesPools[node.ServicedSubDomain].AcquireLowestFreeIndex(); + Self->DbAddNode(node, txc); + } + } + Response->Record.MutableStatus()->SetCode(TStatus::OK); Self->FillNodeInfo(node, *Response->Record.MutableNode()); @@ -109,6 +131,11 @@ class TNodeBroker::TTxRegisterNode : public TTransactionBase { Node->Lease = 1; Node->Expire = expire; + if (Self->EnableStableNodeNames) { + Node->ServicedSubDomain = ServicedSubDomain; + Node->SlotIndex = Self->SlotIndexesPools[Node->ServicedSubDomain].AcquireLowestFreeIndex(); + } + Response->Record.MutableStatus()->SetCode(TStatus::OK); Self->DbAddNode(*Node, txc); @@ -151,6 +178,7 @@ class TNodeBroker::TTxRegisterNode : public TTransactionBase { private: TEvNodeBroker::TEvRegistrationRequest::TPtr Event; const NActors::TScopeId ScopeId; + const TSubDomainKey ServicedSubDomain; TAutoPtr Response; THolder Node; ui32 NodeId; @@ -158,9 +186,11 @@ class TNodeBroker::TTxRegisterNode : public TTransactionBase { bool FixNodeId; }; -ITransaction *TNodeBroker::CreateTxRegisterNode(TEvNodeBroker::TEvRegistrationRequest::TPtr &ev, const NActors::TScopeId& scopeId) +ITransaction *TNodeBroker::CreateTxRegisterNode(TEvNodeBroker::TEvRegistrationRequest::TPtr &ev, + const NActors::TScopeId& scopeId, + const TSubDomainKey& servicedSubDomain) { - return new TTxRegisterNode(this, ev, scopeId); + return new TTxRegisterNode(this, ev, scopeId, servicedSubDomain); } } // NNodeBroker diff --git a/ydb/core/mind/node_broker__scheme.h b/ydb/core/mind/node_broker__scheme.h index 5c0cdeb8c541..ab988f97ae19 100644 --- a/ydb/core/mind/node_broker__scheme.h +++ b/ydb/core/mind/node_broker__scheme.h @@ -2,6 +2,7 @@ #include "defs.h" +#include #include #include @@ -22,9 +23,22 @@ struct Schema : NIceDb::Schema { struct Lease : Column<10, NScheme::NTypeIds::Uint32> {}; struct Expire : Column<11, NScheme::NTypeIds::Uint64> {}; struct Location : Column<12, NScheme::NTypeIds::String> {}; + struct ServicedSubDomain : Column<13, NScheme::NTypeIds::String> { using Type = NKikimrSubDomains::TDomainKey; }; + struct SlotIndex : Column<14, NScheme::NTypeIds::Uint32> {}; using TKey = TableKey; - using TColumns = TableColumns; + using TColumns = TableColumns< + ID, + Host, + Port, + ResolveHost, + Address, + Lease, + Expire, + Location, + ServicedSubDomain, + SlotIndex + >; }; struct Config : Table<2> { diff --git a/ydb/core/mind/node_broker_impl.h b/ydb/core/mind/node_broker_impl.h index 28d983d14397..57e578e55bbf 100644 --- a/ydb/core/mind/node_broker_impl.h +++ b/ydb/core/mind/node_broker_impl.h @@ -1,8 +1,10 @@ #pragma once #include "node_broker.h" +#include "slot_indexes_pool.h" #include +#include #include #include #include @@ -114,6 +116,8 @@ class TNodeBroker : public TActor ui32 Lease; TInstant Expire; bool AuthorizedByCertificate = false; + std::optional SlotIndex; + TSubDomainKey ServicedSubDomain; }; // State changes to apply while moving to the next epoch. @@ -134,7 +138,9 @@ class TNodeBroker : public TActor ITransaction *CreateTxExtendLease(TEvNodeBroker::TEvExtendLeaseRequest::TPtr &ev); ITransaction *CreateTxInitScheme(); ITransaction *CreateTxLoadState(); - ITransaction *CreateTxRegisterNode(TEvNodeBroker::TEvRegistrationRequest::TPtr &ev, const NActors::TScopeId& scopeId); + ITransaction *CreateTxRegisterNode(TEvNodeBroker::TEvRegistrationRequest::TPtr &ev, + const NActors::TScopeId& scopeId, + const TSubDomainKey& servicedSubDomain); ITransaction *CreateTxUpdateConfig(TEvConsole::TEvConfigNotificationRequest::TPtr &ev); ITransaction *CreateTxUpdateConfig(TEvNodeBroker::TEvSetConfigRequest::TPtr &ev); ITransaction *CreateTxUpdateConfigSubscription(TEvConsole::TEvReplaceConfigSubscriptionsResponse::TPtr &ev); @@ -220,6 +226,7 @@ class TNodeBroker : public TActor void ExtendLease(TNodeInfo &node); void FixNodeId(TNodeInfo &node); void RecomputeFreeIds(); + void RecomputeSlotIndexesPools(); bool IsBannedId(ui32 id) const; void AddDelayedListNodesRequest(ui64 epoch, @@ -230,6 +237,8 @@ class TNodeBroker : public TActor void ScheduleEpochUpdate(const TActorContext &ctx); void FillNodeInfo(const TNodeInfo &node, NKikimrNodeBroker::TNodeInfo &info) const; + void FillNodeName(const std::optional &slotIndex, + NKikimrNodeBroker::TNodeInfo &info) const; void ComputeNextEpochDiff(TStateDiff &diff); void ApplyStateDiff(const TStateDiff &diff); @@ -306,6 +315,9 @@ class TNodeBroker : public TActor THashMap, ui32> Hosts; // Bitmap with free Node IDs (with no lower 5 bits). TDynBitMap FreeIds; + // Maps tenant to its slot indexes pool. + std::unordered_map> SlotIndexesPools; + bool EnableStableNodeNames = false; // Epoch info. TEpochInfo Epoch; // Current config. @@ -316,6 +328,7 @@ class TNodeBroker : public TActor TDuration EpochDuration; TVector> BannedIds; ui64 ConfigSubscriptionId; + TString StableNodeNamePrefix; // Events collected during initialization phase. TMultiMap DelayedListNodesRequests; @@ -333,6 +346,7 @@ class TNodeBroker : public TActor , TTabletExecutedFlat(info, tablet, new NMiniKQL::TMiniKQLFactory) , EpochDuration(TDuration::Hours(1)) , ConfigSubscriptionId(0) + , StableNodeNamePrefix("slot-") , TxProcessor(new TTxProcessor(*this, "root", NKikimrServices::NODE_BROKER)) { } diff --git a/ydb/core/mind/node_broker_ut.cpp b/ydb/core/mind/node_broker_ut.cpp index ec7c10c64fdf..bfe0524fc1c8 100644 --- a/ydb/core/mind/node_broker_ut.cpp +++ b/ydb/core/mind/node_broker_ut.cpp @@ -174,8 +174,10 @@ void SetupServices(TTestActorRuntime &runtime, 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); + runtime.GetAppData().FeatureFlags.SetEnableStableNodeNames(true); if (!runtime.IsRealThreads()) { TDispatchOptions options; @@ -227,7 +229,8 @@ void SetBannedIds(TTestActorRuntime& runtime, void Setup(TTestActorRuntime& runtime, ui32 maxDynNodes = 3, - bool singleDomainMode = false) + bool singleDomainMode = false, + const TVector& databases = {}) { using namespace NMalloc; TMallocInfo mallocInfo = MallocInfo(); @@ -243,6 +246,30 @@ void Setup(TTestActorRuntime& runtime, SetupLogging(runtime); SetupServices(runtime, maxDynNodes, singleDomainMode); + + TActorId sender = runtime.AllocateEdgeActor(); + ui32 txId = 100; + for (const auto& database : databases) { + auto splittedPath = SplitPath(database); + const auto databaseName = splittedPath.back(); + splittedPath.pop_back(); + do { + auto modifyScheme = MakeHolder(); + modifyScheme->Record.SetTxId(++txId); + auto* transaction = modifyScheme->Record.AddTransaction(); + transaction->SetWorkingDir(CanonizePath(splittedPath)); + transaction->SetOperationType(NKikimrSchemeOp::ESchemeOpCreateExtSubDomain); + auto* subdomain = transaction->MutableSubDomain(); + subdomain->SetName(databaseName); + runtime.SendToPipe(TTestTxConfig::SchemeShard, sender, modifyScheme.Release()); + TAutoPtr handle; + auto reply = runtime.GrabEdgeEventRethrow(handle, TDuration::MilliSeconds(100)); + if (reply) { + UNIT_ASSERT_VALUES_EQUAL(reply->Record.GetStatus(), NKikimrScheme::EStatus::StatusAccepted); + break; + } + } while (true); + } } bool IsTabletActiveEvent(IEventHandle& ev) @@ -298,7 +325,8 @@ void CheckRegistration(TTestActorRuntime &runtime, ui64 expire = 0, bool fixed = false, const TString &path = DOMAIN_NAME, - const TMaybe &scopeId = {}) + const TMaybe &scopeId = {}, + const TString &name = "") { auto event = MakeRegistrationRequest(host, port, resolveHost, address, path, dc, room, rack, body, fixed); runtime.SendToPipe(MakeNodeBrokerID(0), sender, event.Release(), 0, GetPipeConfigWithRetries()); @@ -326,9 +354,26 @@ void CheckRegistration(TTestActorRuntime &runtime, UNIT_ASSERT_VALUES_EQUAL(rec.GetScopeTabletId(), scopeId->GetSchemeshardId()); UNIT_ASSERT_VALUES_EQUAL(rec.GetScopePathId(), scopeId->GetPathItemId()); } + if (name) { + UNIT_ASSERT_VALUES_EQUAL(rec.GetNode().GetName(), name); + } } } +void CheckRegistration(TTestActorRuntime &runtime, + TActorId sender, + const TString &host, + ui16 port, + const TString &path, + TStatus::ECode code = TStatus::OK, + ui32 nodeId = 0, + ui64 expire = 0, + const TString &name = "") +{ + CheckRegistration(runtime, sender, host, port, host, "", 0, 0, 0, 0, code, nodeId, expire, + false, path, Nothing(), name); +} + NKikimrNodeBroker::TEpoch GetEpoch(TTestActorRuntime &runtime, TActorId sender) { @@ -1373,6 +1418,152 @@ Y_UNIT_TEST_SUITE(TNodeBrokerTest) { epoch.GetNextEnd(), false, "/dc-1/ServerlessDB", sharedScopeId); } + + static constexpr ui32 NODE1 = 1024; + static constexpr ui32 NODE2 = 1056; + static constexpr ui32 NODE3 = 1088; + static constexpr ui32 NODE4 = 1120; + + Y_UNIT_TEST(NodeNameExpiration) + { + TTestBasicRuntime runtime(8, false); + Setup(runtime, 4, false, { "/dc-1/my-database" }); + TActorId sender = runtime.AllocateEdgeActor(); + + auto epoch = GetEpoch(runtime, sender); + + // Register nodes for my-database + CheckRegistration(runtime, sender, "host1", 19001, "/dc-1/my-database", + TStatus::OK, NODE1, epoch.GetNextEnd(), "slot-0"); + CheckRegistration(runtime, sender, "host2", 19001, "/dc-1/my-database", + TStatus::OK, NODE2, epoch.GetNextEnd(), "slot-1"); + CheckRegistration(runtime, sender, "host3", 19001, "/dc-1/my-database", + TStatus::OK, NODE3, epoch.GetNextEnd(), "slot-2"); + + // Wait until epoch expiration + epoch = WaitForEpochUpdate(runtime, sender); + + // Extend lease for NODE1 and NODE3 + CheckLeaseExtension(runtime, sender, NODE1, TStatus::OK, epoch); + CheckLeaseExtension(runtime, sender, NODE3, TStatus::OK, epoch); + + // After this epoch update NODE2 is expired, but stil holds name + epoch = WaitForEpochUpdate(runtime, sender); + + // Extend lease for NODE1 and NODE3 + CheckLeaseExtension(runtime, sender, NODE1, TStatus::OK, epoch); + CheckLeaseExtension(runtime, sender, NODE3, TStatus::OK, epoch); + + // Register one more node + CheckRegistration(runtime, sender, "host4", 19001, "/dc-1/my-database", + TStatus::OK, NODE4, epoch.GetNextEnd(), "slot-3"); + + // After this epoch update NODE2 is removed and name is free + epoch = WaitForEpochUpdate(runtime, sender); + + // Register node using new host, it reuses name + CheckRegistration(runtime, sender, "host5", 19001, "/dc-1/my-database", + TStatus::OK, NODE2, epoch.GetNextEnd(), "slot-1"); + } + + Y_UNIT_TEST(NodeNameReuseRestart) + { + TTestBasicRuntime runtime(8, false); + Setup(runtime, 4, false, { "/dc-1/my-database" }); + TActorId sender = runtime.AllocateEdgeActor(); + + auto epoch = GetEpoch(runtime, sender); + + // Register nodes for my-database + CheckRegistration(runtime, sender, "host1", 19001, "/dc-1/my-database", + TStatus::OK, NODE1, epoch.GetNextEnd(), "slot-0"); + CheckRegistration(runtime, sender, "host2", 19001, "/dc-1/my-database", + TStatus::OK, NODE2, epoch.GetNextEnd(), "slot-1"); + + // Restart + CheckRegistration(runtime, sender, "host1", 19001, "/dc-1/my-database", + TStatus::OK, NODE1, epoch.GetNextEnd(), "slot-0"); + CheckRegistration(runtime, sender, "host2", 19001, "/dc-1/my-database", + TStatus::OK, NODE2, epoch.GetNextEnd(), "slot-1"); + + // One more restart with different order + CheckRegistration(runtime, sender, "host2", 19001, "/dc-1/my-database", + TStatus::OK, NODE2, epoch.GetNextEnd(), "slot-1"); + CheckRegistration(runtime, sender, "host1", 19001, "/dc-1/my-database", + TStatus::OK, NODE1, epoch.GetNextEnd(), "slot-0"); + } + + Y_UNIT_TEST(NodeNameReuseRestartWithHostChanges) + { + TTestBasicRuntime runtime(8, false); + Setup(runtime, 4, false, { "/dc-1/my-database" }); + TActorId sender = runtime.AllocateEdgeActor(); + + auto epoch = GetEpoch(runtime, sender); + + // Register nodes for my-database + CheckRegistration(runtime, sender, "host1", 19001, "/dc-1/my-database", + TStatus::OK, NODE1, epoch.GetNextEnd(), "slot-0"); + CheckRegistration(runtime, sender, "host2", 19001, "/dc-1/my-database", + TStatus::OK, NODE2, epoch.GetNextEnd(), "slot-1"); + + // Restart that caused the hosts to change + CheckRegistration(runtime, sender, "host3", 19001, "/dc-1/my-database", + TStatus::OK, NODE3, epoch.GetNextEnd(), "slot-2"); + CheckRegistration(runtime, sender, "host4", 19001, "/dc-1/my-database", + TStatus::OK, NODE4, epoch.GetNextEnd(), "slot-3"); + + // Wait until epoch expiration + epoch = WaitForEpochUpdate(runtime, sender); + + CheckLeaseExtension(runtime, sender, NODE3, TStatus::OK, epoch); + CheckLeaseExtension(runtime, sender, NODE4, TStatus::OK, epoch); + + // After this epoch update NODE1 and NODE2 are expired, but stil hold names + epoch = WaitForEpochUpdate(runtime, sender); + + CheckLeaseExtension(runtime, sender, NODE3, TStatus::OK, epoch); + CheckLeaseExtension(runtime, sender, NODE4, TStatus::OK, epoch); + + // After this epoch update NODE1 and NODE2 are removed + epoch = WaitForEpochUpdate(runtime, sender); + + // One more restart that caused the hosts to change + CheckRegistration(runtime, sender, "host5", 19001, "/dc-1/my-database", + TStatus::OK, NODE1, epoch.GetNextEnd(), "slot-0"); + CheckRegistration(runtime, sender, "host6", 19001, "/dc-1/my-database", + TStatus::OK, NODE2, epoch.GetNextEnd(), "slot-1"); + } + + Y_UNIT_TEST(NodeNameWithDifferentTenants) + { + TTestBasicRuntime runtime(8, false); + + Setup(runtime, 4, false, { "/dc-1/my-database" , "/dc-1/yet-another-database" }); + TActorId sender = runtime.AllocateEdgeActor(); + + auto epoch = GetEpoch(runtime, sender); + + // Register nodes for my-database + CheckRegistration(runtime, sender, "host1", 19001, "/dc-1/my-database", + TStatus::OK, NODE1, epoch.GetNextEnd(), "slot-0"); + CheckRegistration(runtime, sender, "host2", 19001, "/dc-1/my-database", + TStatus::OK, NODE2, epoch.GetNextEnd(), "slot-1"); + + // Register node for yet-another-database + CheckRegistration(runtime, sender, "host3", 19001, "/dc-1/yet-another-database", + TStatus::OK, NODE3, epoch.GetNextEnd(), "slot-0"); + // Restart NODE1 to serve yet-another-database + CheckRegistration(runtime, sender, "host1", 19001, "/dc-1/yet-another-database", + TStatus::OK, NODE1, epoch.GetNextEnd(), "slot-1"); + + // Register one more node for my-database + CheckRegistration(runtime, sender, "host4", 19001, "/dc-1/my-database", + TStatus::OK, NODE4, epoch.GetNextEnd(), "slot-0"); + // Restart NODE1 to serve my-database + CheckRegistration(runtime, sender, "host1", 19001, "/dc-1/my-database", + TStatus::OK, NODE1, epoch.GetNextEnd(), "slot-2"); + } } Y_UNIT_TEST_SUITE(TDynamicNameserverTest) { @@ -1530,4 +1721,95 @@ Y_UNIT_TEST_SUITE(TDynamicNameserverTest) { } } +Y_UNIT_TEST_SUITE(TSlotIndexesPoolTest) { + Y_UNIT_TEST(Init) + { + TSlotIndexesPool pool; + UNIT_ASSERT_VALUES_EQUAL(pool.Size(), 0); + UNIT_ASSERT_VALUES_EQUAL(pool.Capacity(), 64); + + for (size_t i = 0; i < pool.Capacity(); ++i) { + UNIT_ASSERT(!pool.IsAcquired(i)); + } + } + + Y_UNIT_TEST(Basic) + { + TSlotIndexesPool pool; + + pool.Acquire(10); + UNIT_ASSERT(pool.IsAcquired(10)); + + pool.Acquire(45); + UNIT_ASSERT(pool.IsAcquired(45)); + + pool.AcquireLowestFreeIndex(); + UNIT_ASSERT(pool.IsAcquired(0)); + + pool.AcquireLowestFreeIndex(); + UNIT_ASSERT(pool.IsAcquired(1)); + + pool.Release(0); + UNIT_ASSERT(!pool.IsAcquired(0)); + + pool.AcquireLowestFreeIndex(); + UNIT_ASSERT(pool.IsAcquired(0)); + + UNIT_ASSERT_VALUES_EQUAL(pool.Size(), 4); + UNIT_ASSERT_VALUES_EQUAL(pool.Capacity(), 64); + + pool.ReleaseAll(); + UNIT_ASSERT_VALUES_EQUAL(pool.Size(), 0); + UNIT_ASSERT_VALUES_EQUAL(pool.Capacity(), 64); + } + + Y_UNIT_TEST(Expansion) + { + TSlotIndexesPool pool; + for (size_t i = 0; i < pool.Capacity(); ++i) { + pool.Acquire(i); + } + UNIT_ASSERT_VALUES_EQUAL(pool.Size(), 64); + UNIT_ASSERT_VALUES_EQUAL(pool.Capacity(), 64); + + pool.AcquireLowestFreeIndex(); + + UNIT_ASSERT_VALUES_EQUAL(pool.Size(), 65); + UNIT_ASSERT_VALUES_EQUAL(pool.Capacity(), 192); + for (size_t i = pool.Size(); i < pool.Capacity(); ++i) { + UNIT_ASSERT(!pool.IsAcquired(i)); + } + } + + Y_UNIT_TEST(Ranges) + { + TSlotIndexesPool pool; + + pool.Acquire(63); + UNIT_ASSERT_VALUES_EQUAL(pool.Size(), 1); + UNIT_ASSERT_VALUES_EQUAL(pool.Capacity(), 64); + + pool.Release(63); + UNIT_ASSERT_VALUES_EQUAL(pool.Size(), 0); + UNIT_ASSERT_VALUES_EQUAL(pool.Capacity(), 64); + + pool.Acquire(64); + UNIT_ASSERT_VALUES_EQUAL(pool.Size(), 1); + UNIT_ASSERT_VALUES_EQUAL(pool.Capacity(), 128); + + for (size_t i = 0; i < pool.Capacity(); ++i) { + if (i == 64) { + UNIT_ASSERT(pool.IsAcquired(i)); + } else { + UNIT_ASSERT(!pool.IsAcquired(i)); + } + } + + pool.Release(128); + pool.Release(200); + UNIT_ASSERT_VALUES_EQUAL(pool.Size(), 1); + UNIT_ASSERT_VALUES_EQUAL(pool.Capacity(), 128); + } +} + } // NKikimr diff --git a/ydb/core/mind/slot_indexes_pool.cpp b/ydb/core/mind/slot_indexes_pool.cpp new file mode 100644 index 000000000000..c61c77d33c2a --- /dev/null +++ b/ydb/core/mind/slot_indexes_pool.cpp @@ -0,0 +1,54 @@ +#include "slot_indexes_pool.h" + +namespace NKikimr::NNodeBroker { + +static constexpr size_t EXPAND_SIZE = 128; + +TSlotIndexesPool::TSlotIndexesPool() { + FreeIndexes.Flip(); +} + +void TSlotIndexesPool::Acquire(size_t index) { + if (index >= FreeIndexes.Size()) { + size_t oldSize = FreeIndexes.Size(); + FreeIndexes.Reserve(index + 1); + FreeIndexes.Set(oldSize, FreeIndexes.Size()); + } + FreeIndexes.Reset(index); +} + +size_t TSlotIndexesPool::AcquireLowestFreeIndex() { + if (FreeIndexes.Empty()) { + size_t oldSize = FreeIndexes.Size(); + FreeIndexes.Reserve(FreeIndexes.Size() + EXPAND_SIZE); + FreeIndexes.Set(oldSize, FreeIndexes.Size()); + } + size_t index = FreeIndexes.FirstNonZeroBit(); + FreeIndexes.Reset(index); + return index; +} + +bool TSlotIndexesPool::IsAcquired(size_t index) const { + return !FreeIndexes.Test(index); +} + +void TSlotIndexesPool::Release(size_t index) { + if (index < FreeIndexes.Size()) { + FreeIndexes.Set(index); + } +} + +void TSlotIndexesPool::ReleaseAll() { + FreeIndexes.Clear(); + FreeIndexes.Flip(); +} + +size_t TSlotIndexesPool::Capacity() const { + return FreeIndexes.Size(); +} + +size_t TSlotIndexesPool::Size() const { + return FreeIndexes.Size() - FreeIndexes.Count(); +} + +} // NKikimr::NNodeBroker diff --git a/ydb/core/mind/slot_indexes_pool.h b/ydb/core/mind/slot_indexes_pool.h new file mode 100644 index 000000000000..17f782249485 --- /dev/null +++ b/ydb/core/mind/slot_indexes_pool.h @@ -0,0 +1,22 @@ +#pragma once + +#include "defs.h" + +namespace NKikimr::NNodeBroker { + +class TSlotIndexesPool { +public: + TSlotIndexesPool(); + + void Acquire(size_t index); + size_t AcquireLowestFreeIndex(); + bool IsAcquired(size_t index) const; + void Release(size_t index); + void ReleaseAll(); + size_t Capacity() const; + size_t Size() const; +private: + TDynBitMap FreeIndexes; +}; + +} // NKikimr::NNodeBroker diff --git a/ydb/core/mind/ut/CMakeLists.darwin-arm64.txt b/ydb/core/mind/ut/CMakeLists.darwin-arm64.txt index e2921f43eadd..e330dbab86ec 100644 --- a/ydb/core/mind/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/mind/ut/CMakeLists.darwin-arm64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-mind-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-mind-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/mind/ut/CMakeLists.darwin-x86_64.txt index fdc58adead72..a32c24a0a699 100644 --- a/ydb/core/mind/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/mind/ut/CMakeLists.darwin-x86_64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-core-mind-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-mind-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker_ut.cpp @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/ut/CMakeLists.linux-aarch64.txt b/ydb/core/mind/ut/CMakeLists.linux-aarch64.txt index 5ce27c64f6e4..13c25f085629 100644 --- a/ydb/core/mind/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/mind/ut/CMakeLists.linux-aarch64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-mind-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-mind-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/ut/CMakeLists.linux-x86_64.txt b/ydb/core/mind/ut/CMakeLists.linux-x86_64.txt index 0af8cc28e42d..139b578a333b 100644 --- a/ydb/core/mind/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/mind/ut/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-core-mind-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-mind-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/node_broker_ut.cpp @@ -67,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/ut/CMakeLists.windows-x86_64.txt b/ydb/core/mind/ut/CMakeLists.windows-x86_64.txt index adb46e4defd2..c8395820e1e8 100644 --- a/ydb/core/mind/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/mind/ut/CMakeLists.windows-x86_64.txt @@ -56,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/ut_fat/CMakeLists.darwin-arm64.txt b/ydb/core/mind/ut_fat/CMakeLists.darwin-arm64.txt index e4faf39d5e41..7381965f5e3e 100644 --- a/ydb/core/mind/ut_fat/CMakeLists.darwin-arm64.txt +++ b/ydb/core/mind/ut_fat/CMakeLists.darwin-arm64.txt @@ -34,8 +34,6 @@ target_link_options(ydb-core-mind-ut_fat PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-mind-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/ut_fat/blobstorage_node_warden_ut_fat.cpp @@ -65,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/ut_fat/CMakeLists.darwin-x86_64.txt b/ydb/core/mind/ut_fat/CMakeLists.darwin-x86_64.txt index fd3564ca728d..a8b8f1e858fc 100644 --- a/ydb/core/mind/ut_fat/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/mind/ut_fat/CMakeLists.darwin-x86_64.txt @@ -35,8 +35,6 @@ target_link_options(ydb-core-mind-ut_fat PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-mind-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/ut_fat/blobstorage_node_warden_ut_fat.cpp @@ -66,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/ut_fat/CMakeLists.linux-aarch64.txt b/ydb/core/mind/ut_fat/CMakeLists.linux-aarch64.txt index e51d42f93b5b..f2c9af251696 100644 --- a/ydb/core/mind/ut_fat/CMakeLists.linux-aarch64.txt +++ b/ydb/core/mind/ut_fat/CMakeLists.linux-aarch64.txt @@ -37,9 +37,6 @@ target_link_options(ydb-core-mind-ut_fat PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-mind-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/ut_fat/blobstorage_node_warden_ut_fat.cpp @@ -69,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/ut_fat/CMakeLists.linux-x86_64.txt b/ydb/core/mind/ut_fat/CMakeLists.linux-x86_64.txt index e7264e0ae66e..50822e57a5e6 100644 --- a/ydb/core/mind/ut_fat/CMakeLists.linux-x86_64.txt +++ b/ydb/core/mind/ut_fat/CMakeLists.linux-x86_64.txt @@ -38,9 +38,6 @@ target_link_options(ydb-core-mind-ut_fat PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-mind-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/mind/ut_fat/blobstorage_node_warden_ut_fat.cpp @@ -70,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/ut_fat/CMakeLists.windows-x86_64.txt b/ydb/core/mind/ut_fat/CMakeLists.windows-x86_64.txt index f87c06b75856..7535972b0f9a 100644 --- a/ydb/core/mind/ut_fat/CMakeLists.windows-x86_64.txt +++ b/ydb/core/mind/ut_fat/CMakeLists.windows-x86_64.txt @@ -59,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/mind/ya.make b/ydb/core/mind/ya.make index 601083f59eee..c1a25de3f8b8 100644 --- a/ydb/core/mind/ya.make +++ b/ydb/core/mind/ya.make @@ -25,6 +25,8 @@ SRCS( node_broker__update_config.cpp node_broker__update_config_subscription.cpp node_broker__update_epoch.cpp + slot_indexes_pool.cpp + slot_indexes_pool.h table_adapter.h tenant_node_enumeration.cpp tenant_node_enumeration.h diff --git a/ydb/core/mon/CMakeLists.darwin-arm64.txt b/ydb/core/mon/CMakeLists.darwin-arm64.txt index f683461e9858..05d9de86873d 100644 --- a/ydb/core/mon/CMakeLists.darwin-arm64.txt +++ b/ydb/core/mon/CMakeLists.darwin-arm64.txt @@ -20,6 +20,10 @@ target_link_libraries(ydb-core-mon PUBLIC ydb-library-aclib ) target_sources(ydb-core-mon PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mon/async_http_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/mon/mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/mon/sync_http_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/mon/crossref.h ${CMAKE_SOURCE_DIR}/ydb/core/mon/async_http_mon.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mon/mon.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mon/sync_http_mon.cpp diff --git a/ydb/core/mon/CMakeLists.darwin-x86_64.txt b/ydb/core/mon/CMakeLists.darwin-x86_64.txt index f683461e9858..05d9de86873d 100644 --- a/ydb/core/mon/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/mon/CMakeLists.darwin-x86_64.txt @@ -20,6 +20,10 @@ target_link_libraries(ydb-core-mon PUBLIC ydb-library-aclib ) target_sources(ydb-core-mon PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mon/async_http_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/mon/mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/mon/sync_http_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/mon/crossref.h ${CMAKE_SOURCE_DIR}/ydb/core/mon/async_http_mon.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mon/mon.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mon/sync_http_mon.cpp diff --git a/ydb/core/mon/CMakeLists.linux-aarch64.txt b/ydb/core/mon/CMakeLists.linux-aarch64.txt index 59e5f0d27518..54f3d5850ad8 100644 --- a/ydb/core/mon/CMakeLists.linux-aarch64.txt +++ b/ydb/core/mon/CMakeLists.linux-aarch64.txt @@ -21,6 +21,10 @@ target_link_libraries(ydb-core-mon PUBLIC ydb-library-aclib ) target_sources(ydb-core-mon PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mon/async_http_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/mon/mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/mon/sync_http_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/mon/crossref.h ${CMAKE_SOURCE_DIR}/ydb/core/mon/async_http_mon.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mon/mon.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mon/sync_http_mon.cpp diff --git a/ydb/core/mon/CMakeLists.linux-x86_64.txt b/ydb/core/mon/CMakeLists.linux-x86_64.txt index 59e5f0d27518..54f3d5850ad8 100644 --- a/ydb/core/mon/CMakeLists.linux-x86_64.txt +++ b/ydb/core/mon/CMakeLists.linux-x86_64.txt @@ -21,6 +21,10 @@ target_link_libraries(ydb-core-mon PUBLIC ydb-library-aclib ) target_sources(ydb-core-mon PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mon/async_http_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/mon/mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/mon/sync_http_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/mon/crossref.h ${CMAKE_SOURCE_DIR}/ydb/core/mon/async_http_mon.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mon/mon.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mon/sync_http_mon.cpp diff --git a/ydb/core/mon/CMakeLists.windows-x86_64.txt b/ydb/core/mon/CMakeLists.windows-x86_64.txt index f683461e9858..05d9de86873d 100644 --- a/ydb/core/mon/CMakeLists.windows-x86_64.txt +++ b/ydb/core/mon/CMakeLists.windows-x86_64.txt @@ -20,6 +20,10 @@ target_link_libraries(ydb-core-mon PUBLIC ydb-library-aclib ) target_sources(ydb-core-mon PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/mon/async_http_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/mon/mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/mon/sync_http_mon.h + ${CMAKE_SOURCE_DIR}/ydb/core/mon/crossref.h ${CMAKE_SOURCE_DIR}/ydb/core/mon/async_http_mon.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mon/mon.cpp ${CMAKE_SOURCE_DIR}/ydb/core/mon/sync_http_mon.cpp diff --git a/ydb/core/mon/async_http_mon.cpp b/ydb/core/mon/async_http_mon.cpp index b9826001011e..688cea05181b 100644 --- a/ydb/core/mon/async_http_mon.cpp +++ b/ydb/core/mon/async_http_mon.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -247,21 +248,41 @@ class THttpMonLegacyActorRequest : public TActorBootstrappedGet()->Request; NHttp::THeaders headers(request->Headers); TStringBuilder response; TStringBuilder body; - body << "

401 Unauthorized

"; - if (!error.empty()) { - body << "

" << error << "

"; + const TString httpError = YdbToHttpError(result.Status); + body << "

" << httpError << "

"; + if (result.Issues) { + body << "

" << result.Issues.ToString() << "

"; } body << ""; TString origin = TString(headers["Origin"]); if (origin.empty()) { origin = "*"; } - response << "HTTP/1.1 401 Unauthorized\r\n"; + response << "HTTP/1.1 " << httpError << "\r\n"; response << "Access-Control-Allow-Origin: " << origin << "\r\n"; response << "Access-Control-Allow-Credentials: true\r\n"; response << "Access-Control-Allow-Headers: Content-Type,Authorization,Origin,Accept\r\n"; @@ -292,17 +313,20 @@ class THttpMonLegacyActorRequest : public TActorBootstrappedGet()->Request; if (ActorMonPage->Authorizer) { - TString user = authorizeResult ? authorizeResult->Token->GetUserSID() : "anonymous"; + TString user = (result && result->UserToken) ? result->UserToken->GetUserSID() : "anonymous"; LOG_NOTICE_S(*TlsActivationContext, NActorsServices::HTTP, (request->Address ? request->Address->ToString() : "") << " " << user << " " << request->Method << " " << request->URL); } - TString serializedToken = authorizeResult ? authorizeResult->SerializedToken : ""; + TString serializedToken; + if (result && result->UserToken) { + serializedToken = result->UserToken->GetSerializedToken(); + } Send(ActorMonPage->TargetActorId, new NMon::TEvHttpInfo( Container, serializedToken), IEventHandle::FlagTrackDelivery); } @@ -326,14 +350,14 @@ class THttpMonLegacyActorRequest : public TActorBootstrappedGet()); - if (result.Error) { - return ReplyUnathorizedAndPassAway(result.Error.Message); + void Handle(NKikimr::NGRpcService::TEvRequestAuthAndCheckResult::TPtr& ev) { + const NKikimr::NGRpcService::TEvRequestAuthAndCheckResult& result(*ev->Get()); + if (result.Status != Ydb::StatusIds::SUCCESS) { + return ReplyErrorAndPassAway(result); } bool found = false; for (const TString& sid : ActorMonPage->AllowedSIDs) { - if (result.Token->IsExist(sid)) { + if (result.UserToken->IsExist(sid)) { found = true; break; } @@ -349,7 +373,7 @@ class THttpMonLegacyActorRequest : public TActorBootstrappedGetTypeRewrite()) { hFunc(TEvents::TEvUndelivered, HandleUndelivered); hFunc(NMon::IEvHttpInfoRes, HandleResponse); - hFunc(NKikimr::TEvTicketParser::TEvAuthorizeTicketResult, Handle); + hFunc(NKikimr::NGRpcService::TEvRequestAuthAndCheckResult, Handle); } } }; diff --git a/ydb/core/mon/mon.cpp b/ydb/core/mon/mon.cpp index 4d31af077a91..a66f469370e7 100644 --- a/ydb/core/mon/mon.cpp +++ b/ydb/core/mon/mon.cpp @@ -2,22 +2,49 @@ #include #include +#include + +#include +#include + +#include namespace NActors { using namespace NMonitoring; +using namespace NKikimr; namespace { -const std::vector& GetEntries(const TString& ticket) { - if (ticket.StartsWith("Bearer")) { - static std::vector entries = { - {NKikimr::TEvTicketParser::TEvAuthorizeTicket::ToPermissions({"ydb.developerApi.get", "ydb.developerApi.update"}), {{"gizmo_id", "gizmo"}}} - }; - return entries; +bool HasJsonContent(NMonitoring::IMonHttpRequest& request) { + const TStringBuf header = request.GetHeader("Content-Type"); + return header.empty() || AsciiEqualsIgnoreCase(header, "application/json"); // by default we will try to parse json, no error will be generated if parsing fails +} + +TString GetDatabase(NMonitoring::IMonHttpRequest& request) { + if (const auto dbIt = request.GetParams().Find("database"); dbIt != request.GetParams().end()) { + return dbIt->second; + } + if (request.GetMethod() == HTTP_METHOD_POST && HasJsonContent(request)) { + static NJson::TJsonReaderConfig JsonConfig; + NJson::TJsonValue requestData; + if (NJson::ReadJsonTree(request.GetPostContent(), &JsonConfig, &requestData)) { + return requestData["database"].GetString(); // empty if not string or no such key + } } - static std::vector emptyEntries = {}; - return emptyEntries; + return {}; +} + +IEventHandle* GetRequestAuthAndCheckHandle(const NActors::TActorId& owner, const TString& database, const TString& ticket) { + return new NActors::IEventHandle( + NGRpcService::CreateGRpcRequestProxyId(), + owner, + new NKikimr::NGRpcService::TEvRequestAuthAndCheck( + database, + ticket ? TMaybe(ticket) : Nothing(), + owner), + IEventHandle::FlagTrackDelivery + ); } } // namespace @@ -26,9 +53,9 @@ NActors::IEventHandle* SelectAuthorizationScheme(const NActors::TActorId& owner, TStringBuf ydbSessionId = request.GetCookie("ydb_session_id"); TStringBuf authorization = request.GetHeader("Authorization"); if (!authorization.empty()) { - return GetAuthorizeTicketHandle(owner, TString(authorization)); + return GetRequestAuthAndCheckHandle(owner, GetDatabase(request), TString(authorization)); } else if (!ydbSessionId.empty()) { - return GetAuthorizeTicketHandle(owner, TString("Login ") + TString(ydbSessionId)); + return GetRequestAuthAndCheckHandle(owner, GetDatabase(request), TString("Login ") + TString(ydbSessionId)); } else { return nullptr; } @@ -39,35 +66,26 @@ NActors::IEventHandle* GetAuthorizeTicketResult(const NActors::TActorId& owner) return new NActors::IEventHandle( owner, owner, - new NKikimr::TEvTicketParser::TEvAuthorizeTicketResult(TString(), { - .Message = "No security credentials were provided", - .Retryable = false - }) + new NKikimr::NGRpcService::TEvRequestAuthAndCheckResult( + Ydb::StatusIds::UNAUTHORIZED, + "No security credentials were provided") ); } else if (!NKikimr::AppData()->DefaultUserSIDs.empty()) { TIntrusivePtr token = new NACLib::TUserToken(NKikimr::AppData()->DefaultUserSIDs); return new NActors::IEventHandle( owner, owner, - new NKikimr::TEvTicketParser::TEvAuthorizeTicketResult(TString(), token) + new NKikimr::NGRpcService::TEvRequestAuthAndCheckResult( + {}, + {}, + token + ) ); } else { return nullptr; } } -IEventHandle* GetAuthorizeTicketHandle(const NActors::TActorId& owner, const TString& ticket) { - return new NActors::IEventHandle( - NKikimr::MakeTicketParserID(), - owner, - new NKikimr::TEvTicketParser::TEvAuthorizeTicket({ - .Ticket = ticket, - .Entries = GetEntries(ticket), - }), - IEventHandle::FlagTrackDelivery - ); -} - IMonPage* TMon::RegisterActorPage(TIndexMonPage* index, const TString& relPath, const TString& title, bool preTag, TActorSystem* actorSystem, const TActorId& actorId, bool useAuth, bool sortPages) { return RegisterActorPage({ diff --git a/ydb/core/mon/mon.h b/ydb/core/mon/mon.h index f1ace0d40de6..69373811a836 100644 --- a/ydb/core/mon/mon.h +++ b/ydb/core/mon/mon.h @@ -13,7 +13,6 @@ namespace NActors { -IEventHandle* GetAuthorizeTicketHandle(const NActors::TActorId& owner, const TString& ticket); IEventHandle* SelectAuthorizationScheme(const NActors::TActorId& owner, NMonitoring::IMonHttpRequest& request); IEventHandle* GetAuthorizeTicketResult(const NActors::TActorId& owner); diff --git a/ydb/core/mon/ya.make b/ydb/core/mon/ya.make index b7682e289f05..4f9c1ae3bf6a 100644 --- a/ydb/core/mon/ya.make +++ b/ydb/core/mon/ya.make @@ -12,13 +12,16 @@ SRCS( ) PEERDIR( - ydb/library/actors/core + library/cpp/json library/cpp/lwtrace/mon library/cpp/string_utils/url ydb/core/base ydb/core/driver_lib/version + ydb/core/grpc_services/base ydb/core/protos ydb/library/aclib + ydb/library/actors/core + ydb/library/actors/http ) END() diff --git a/ydb/core/mon_alloc/CMakeLists.darwin-arm64.txt b/ydb/core/mon_alloc/CMakeLists.darwin-arm64.txt index fbc45458896f..ed544936e5d1 100644 --- a/ydb/core/mon_alloc/CMakeLists.darwin-arm64.txt +++ b/ydb/core/mon_alloc/CMakeLists.darwin-arm64.txt @@ -19,8 +19,6 @@ target_link_libraries(ydb-core-mon_alloc PUBLIC cpp-lfalloc-dbg_info cpp-malloc-api monlib-service-pages - cpp-ytalloc-api - cpp-yt-memory ydb-core-base ydb-core-control ydb-library-services diff --git a/ydb/core/mon_alloc/CMakeLists.darwin-x86_64.txt b/ydb/core/mon_alloc/CMakeLists.darwin-x86_64.txt index fbc45458896f..ed544936e5d1 100644 --- a/ydb/core/mon_alloc/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/mon_alloc/CMakeLists.darwin-x86_64.txt @@ -19,8 +19,6 @@ target_link_libraries(ydb-core-mon_alloc PUBLIC cpp-lfalloc-dbg_info cpp-malloc-api monlib-service-pages - cpp-ytalloc-api - cpp-yt-memory ydb-core-base ydb-core-control ydb-library-services diff --git a/ydb/core/mon_alloc/CMakeLists.linux-aarch64.txt b/ydb/core/mon_alloc/CMakeLists.linux-aarch64.txt index 475a5001b1ee..b2bd9cf3d318 100644 --- a/ydb/core/mon_alloc/CMakeLists.linux-aarch64.txt +++ b/ydb/core/mon_alloc/CMakeLists.linux-aarch64.txt @@ -20,8 +20,6 @@ target_link_libraries(ydb-core-mon_alloc PUBLIC cpp-lfalloc-dbg_info cpp-malloc-api monlib-service-pages - cpp-ytalloc-api - cpp-yt-memory ydb-core-base ydb-core-control ydb-library-services diff --git a/ydb/core/mon_alloc/CMakeLists.linux-x86_64.txt b/ydb/core/mon_alloc/CMakeLists.linux-x86_64.txt index 475a5001b1ee..b2bd9cf3d318 100644 --- a/ydb/core/mon_alloc/CMakeLists.linux-x86_64.txt +++ b/ydb/core/mon_alloc/CMakeLists.linux-x86_64.txt @@ -20,8 +20,6 @@ target_link_libraries(ydb-core-mon_alloc PUBLIC cpp-lfalloc-dbg_info cpp-malloc-api monlib-service-pages - cpp-ytalloc-api - cpp-yt-memory ydb-core-base ydb-core-control ydb-library-services diff --git a/ydb/core/mon_alloc/CMakeLists.windows-x86_64.txt b/ydb/core/mon_alloc/CMakeLists.windows-x86_64.txt index fbc45458896f..ed544936e5d1 100644 --- a/ydb/core/mon_alloc/CMakeLists.windows-x86_64.txt +++ b/ydb/core/mon_alloc/CMakeLists.windows-x86_64.txt @@ -19,8 +19,6 @@ target_link_libraries(ydb-core-mon_alloc PUBLIC cpp-lfalloc-dbg_info cpp-malloc-api monlib-service-pages - cpp-ytalloc-api - cpp-yt-memory ydb-core-base ydb-core-control ydb-library-services diff --git a/ydb/core/node_whiteboard/CMakeLists.darwin-arm64.txt b/ydb/core/node_whiteboard/CMakeLists.darwin-arm64.txt index db5dfc82a951..b951ef0ae9a6 100644 --- a/ydb/core/node_whiteboard/CMakeLists.darwin-arm64.txt +++ b/ydb/core/node_whiteboard/CMakeLists.darwin-arm64.txt @@ -28,3 +28,6 @@ target_link_libraries(ydb-core-node_whiteboard INTERFACE ydb-core-erasure ydb-core-protos ) +target_sources(ydb-core-node_whiteboard INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/node_whiteboard/node_whiteboard.h +) diff --git a/ydb/core/node_whiteboard/CMakeLists.darwin-x86_64.txt b/ydb/core/node_whiteboard/CMakeLists.darwin-x86_64.txt index db5dfc82a951..b951ef0ae9a6 100644 --- a/ydb/core/node_whiteboard/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/node_whiteboard/CMakeLists.darwin-x86_64.txt @@ -28,3 +28,6 @@ target_link_libraries(ydb-core-node_whiteboard INTERFACE ydb-core-erasure ydb-core-protos ) +target_sources(ydb-core-node_whiteboard INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/node_whiteboard/node_whiteboard.h +) diff --git a/ydb/core/node_whiteboard/CMakeLists.linux-aarch64.txt b/ydb/core/node_whiteboard/CMakeLists.linux-aarch64.txt index bee4d79041c0..58a2756be4ad 100644 --- a/ydb/core/node_whiteboard/CMakeLists.linux-aarch64.txt +++ b/ydb/core/node_whiteboard/CMakeLists.linux-aarch64.txt @@ -29,3 +29,6 @@ target_link_libraries(ydb-core-node_whiteboard INTERFACE ydb-core-erasure ydb-core-protos ) +target_sources(ydb-core-node_whiteboard INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/node_whiteboard/node_whiteboard.h +) diff --git a/ydb/core/node_whiteboard/CMakeLists.linux-x86_64.txt b/ydb/core/node_whiteboard/CMakeLists.linux-x86_64.txt index bee4d79041c0..58a2756be4ad 100644 --- a/ydb/core/node_whiteboard/CMakeLists.linux-x86_64.txt +++ b/ydb/core/node_whiteboard/CMakeLists.linux-x86_64.txt @@ -29,3 +29,6 @@ target_link_libraries(ydb-core-node_whiteboard INTERFACE ydb-core-erasure ydb-core-protos ) +target_sources(ydb-core-node_whiteboard INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/node_whiteboard/node_whiteboard.h +) diff --git a/ydb/core/node_whiteboard/CMakeLists.windows-x86_64.txt b/ydb/core/node_whiteboard/CMakeLists.windows-x86_64.txt index db5dfc82a951..b951ef0ae9a6 100644 --- a/ydb/core/node_whiteboard/CMakeLists.windows-x86_64.txt +++ b/ydb/core/node_whiteboard/CMakeLists.windows-x86_64.txt @@ -28,3 +28,6 @@ target_link_libraries(ydb-core-node_whiteboard INTERFACE ydb-core-erasure ydb-core-protos ) +target_sources(ydb-core-node_whiteboard INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/core/node_whiteboard/node_whiteboard.h +) diff --git a/ydb/core/node_whiteboard/node_whiteboard.h b/ydb/core/node_whiteboard/node_whiteboard.h index 809a6c0f762e..61cd469053bd 100644 --- a/ydb/core/node_whiteboard/node_whiteboard.h +++ b/ydb/core/node_whiteboard/node_whiteboard.h @@ -304,10 +304,14 @@ struct TEvWhiteboard{ Record.SetGroupID(groupInfo->GroupID); Record.SetGroupGeneration(groupInfo->GroupGeneration); Record.SetErasureSpecies(groupInfo->Type.ErasureSpeciesName(groupInfo->Type.GetErasure())); - for (ui32 i = 0; i < groupInfo->GetTotalVDisksNum(); ++i) { - VDiskIDFromVDiskID(groupInfo->GetVDiskId(i), Record.AddVDiskIds()); - const TActorId& actorId = groupInfo->GetActorId(i); - Record.AddVDiskNodeIds(actorId.NodeId()); + if (ui32 numVDisks = groupInfo->GetTotalVDisksNum()) { + for (ui32 i = 0; i < numVDisks; ++i) { + VDiskIDFromVDiskID(groupInfo->GetVDiskId(i), Record.AddVDiskIds()); + const TActorId& actorId = groupInfo->GetActorId(i); + Record.AddVDiskNodeIds(actorId.NodeId()); + } + } else { + Record.SetNoVDisksInGroup(true); } Record.SetStoragePoolName(groupInfo->GetStoragePoolName()); if (groupInfo->GetEncryptionMode() != TBlobStorageGroupInfo::EEM_NONE) { diff --git a/ydb/core/persqueue/CMakeLists.darwin-arm64.txt b/ydb/core/persqueue/CMakeLists.darwin-arm64.txt index 6c3e709acf7d..af6cac9b983f 100644 --- a/ydb/core/persqueue/CMakeLists.darwin-arm64.txt +++ b/ydb/core/persqueue/CMakeLists.darwin-arm64.txt @@ -46,6 +46,8 @@ target_link_libraries(ydb-core-persqueue PUBLIC cpp-client-ydb_persqueue_core ) target_sources(ydb-core-persqueue PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/actor_persqueue_client_iface.h + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/mirrorer.h ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/blob.cpp ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/cluster_tracker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/event_helpers.cpp diff --git a/ydb/core/persqueue/CMakeLists.darwin-x86_64.txt b/ydb/core/persqueue/CMakeLists.darwin-x86_64.txt index 6c3e709acf7d..af6cac9b983f 100644 --- a/ydb/core/persqueue/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/persqueue/CMakeLists.darwin-x86_64.txt @@ -46,6 +46,8 @@ target_link_libraries(ydb-core-persqueue PUBLIC cpp-client-ydb_persqueue_core ) target_sources(ydb-core-persqueue PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/actor_persqueue_client_iface.h + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/mirrorer.h ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/blob.cpp ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/cluster_tracker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/event_helpers.cpp diff --git a/ydb/core/persqueue/CMakeLists.linux-aarch64.txt b/ydb/core/persqueue/CMakeLists.linux-aarch64.txt index 38253dbbae61..61193413c3e9 100644 --- a/ydb/core/persqueue/CMakeLists.linux-aarch64.txt +++ b/ydb/core/persqueue/CMakeLists.linux-aarch64.txt @@ -47,6 +47,8 @@ target_link_libraries(ydb-core-persqueue PUBLIC cpp-client-ydb_persqueue_core ) target_sources(ydb-core-persqueue PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/actor_persqueue_client_iface.h + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/mirrorer.h ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/blob.cpp ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/cluster_tracker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/event_helpers.cpp diff --git a/ydb/core/persqueue/CMakeLists.linux-x86_64.txt b/ydb/core/persqueue/CMakeLists.linux-x86_64.txt index 38253dbbae61..61193413c3e9 100644 --- a/ydb/core/persqueue/CMakeLists.linux-x86_64.txt +++ b/ydb/core/persqueue/CMakeLists.linux-x86_64.txt @@ -47,6 +47,8 @@ target_link_libraries(ydb-core-persqueue PUBLIC cpp-client-ydb_persqueue_core ) target_sources(ydb-core-persqueue PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/actor_persqueue_client_iface.h + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/mirrorer.h ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/blob.cpp ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/cluster_tracker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/event_helpers.cpp diff --git a/ydb/core/persqueue/CMakeLists.windows-x86_64.txt b/ydb/core/persqueue/CMakeLists.windows-x86_64.txt index 6c3e709acf7d..af6cac9b983f 100644 --- a/ydb/core/persqueue/CMakeLists.windows-x86_64.txt +++ b/ydb/core/persqueue/CMakeLists.windows-x86_64.txt @@ -46,6 +46,8 @@ target_link_libraries(ydb-core-persqueue PUBLIC cpp-client-ydb_persqueue_core ) target_sources(ydb-core-persqueue PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/actor_persqueue_client_iface.h + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/mirrorer.h ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/blob.cpp ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/cluster_tracker.cpp ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/event_helpers.cpp diff --git a/ydb/core/persqueue/config/CMakeLists.darwin-arm64.txt b/ydb/core/persqueue/config/CMakeLists.darwin-arm64.txt index 197328427c4d..5fea746c39f7 100644 --- a/ydb/core/persqueue/config/CMakeLists.darwin-arm64.txt +++ b/ydb/core/persqueue/config/CMakeLists.darwin-arm64.txt @@ -14,5 +14,6 @@ target_link_libraries(core-persqueue-config PUBLIC ydb-core-protos ) target_sources(core-persqueue-config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/config/config.h ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/config/config.cpp ) diff --git a/ydb/core/persqueue/config/CMakeLists.darwin-x86_64.txt b/ydb/core/persqueue/config/CMakeLists.darwin-x86_64.txt index 197328427c4d..5fea746c39f7 100644 --- a/ydb/core/persqueue/config/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/persqueue/config/CMakeLists.darwin-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(core-persqueue-config PUBLIC ydb-core-protos ) target_sources(core-persqueue-config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/config/config.h ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/config/config.cpp ) diff --git a/ydb/core/persqueue/config/CMakeLists.linux-aarch64.txt b/ydb/core/persqueue/config/CMakeLists.linux-aarch64.txt index af94c1e823af..c710ab126d6d 100644 --- a/ydb/core/persqueue/config/CMakeLists.linux-aarch64.txt +++ b/ydb/core/persqueue/config/CMakeLists.linux-aarch64.txt @@ -15,5 +15,6 @@ target_link_libraries(core-persqueue-config PUBLIC ydb-core-protos ) target_sources(core-persqueue-config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/config/config.h ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/config/config.cpp ) diff --git a/ydb/core/persqueue/config/CMakeLists.linux-x86_64.txt b/ydb/core/persqueue/config/CMakeLists.linux-x86_64.txt index af94c1e823af..c710ab126d6d 100644 --- a/ydb/core/persqueue/config/CMakeLists.linux-x86_64.txt +++ b/ydb/core/persqueue/config/CMakeLists.linux-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(core-persqueue-config PUBLIC ydb-core-protos ) target_sources(core-persqueue-config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/config/config.h ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/config/config.cpp ) diff --git a/ydb/core/persqueue/config/CMakeLists.windows-x86_64.txt b/ydb/core/persqueue/config/CMakeLists.windows-x86_64.txt index 197328427c4d..5fea746c39f7 100644 --- a/ydb/core/persqueue/config/CMakeLists.windows-x86_64.txt +++ b/ydb/core/persqueue/config/CMakeLists.windows-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(core-persqueue-config PUBLIC ydb-core-protos ) target_sources(core-persqueue-config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/config/config.h ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/config/config.cpp ) diff --git a/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.darwin-arm64.txt b/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.darwin-arm64.txt index a8a2d23b429f..0883754599df 100644 --- a/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-persqueue-dread_cache_service-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-persqueue-dread_cache_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/dread_cache_service/ut/caching_proxy_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.darwin-x86_64.txt index 4809c9a47116..4c173626144e 100644 --- a/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-core-persqueue-dread_cache_service-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-persqueue-dread_cache_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/dread_cache_service/ut/caching_proxy_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.linux-aarch64.txt b/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.linux-aarch64.txt index 6fba9d2680d8..401edfa59486 100644 --- a/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-persqueue-dread_cache_service-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-persqueue-dread_cache_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/dread_cache_service/ut/caching_proxy_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.linux-x86_64.txt b/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.linux-x86_64.txt index a8c5e30700cd..53439ee73606 100644 --- a/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-core-persqueue-dread_cache_service-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-persqueue-dread_cache_service-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/dread_cache_service/ut/caching_proxy_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.windows-x86_64.txt b/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.windows-x86_64.txt index 1c348b2635ed..93b2f9822ba7 100644 --- a/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/persqueue/dread_cache_service/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/persqueue/fetch_request_actor.cpp b/ydb/core/persqueue/fetch_request_actor.cpp index e2d4d3a39ff4..5237c692510e 100644 --- a/ydb/core/persqueue/fetch_request_actor.cpp +++ b/ydb/core/persqueue/fetch_request_actor.cpp @@ -75,7 +75,7 @@ struct TEvPrivate { bool CanProcessFetchRequest; //any partitions answered that it has data or WaitMs timeout occured ui32 FetchRequestReadsDone; - ui64 FetchRequestCurrentReadTablet; + ui64 FetchRequestCurrentReadTablet; ui64 CurrentCookie; ui32 FetchRequestBytesLeft; THolder Response; @@ -145,10 +145,10 @@ struct TEvPrivate { break; case EWakeupTag::RlNoResource: - // Re-requesting the quota. We do this until we get a quota. + // Re-requesting the quota. We do this until we get a quota. RequestDataQuota(PendingQuotaAmount, ctx); break; - + default: Y_VERIFY_DEBUG_S(false, "Unsupported tag: " << static_cast(tag)); } @@ -171,7 +171,7 @@ struct TEvPrivate { void SendSchemeCacheRequest(const TActorContext& ctx) { LOG_DEBUG_S(ctx, NKikimrServices::PQ_FETCH_REQUEST, "SendSchemeCacheRequest"); - + auto schemeCacheRequest = std::make_unique(1); schemeCacheRequest->DatabaseName = Settings.Database; @@ -250,7 +250,7 @@ struct TEvPrivate { ), ctx );; } - + auto& description = entry.PQGroupInfo->Description; auto& topicInfo = TopicInfo[path]; topicInfo.BalancerTabletId = description.GetBalancerTabletID(); @@ -345,7 +345,7 @@ struct TEvPrivate { if (HandlePipeError(tabletId, ctx)) return; - auto reason = TStringBuilder() << "Client pipe to " << tabletId << " connection error, Status" + auto reason = TStringBuilder() << "Client pipe to " << tabletId << " connection error, Status" << NKikimrProto::EReplyStatus_Name(msg->Status).data() << ", Marker# PQ6"; return SendReplyAndDie(CreateErrorReply(Ydb::StatusIds::INTERNAL_ERROR, reason), ctx); @@ -423,7 +423,7 @@ struct TEvPrivate { preq->Record.SetRequestId(reqId); auto partReq = preq->Record.MutablePartitionRequest(); partReq->SetCookie(CurrentCookie); - + partReq->SetTopic(topic); partReq->SetPartition(part); auto read = partReq->MutableCmdRead(); @@ -479,7 +479,8 @@ struct TEvPrivate { SetMeteringMode(it->second.PQInfo->Description.GetPQTabletConfig().GetMeteringMode()); if (IsQuotaRequired()) { - PendingQuotaAmount = CalcRuConsumption(GetPayloadSize(record)); + PendingQuotaAmount = CalcRuConsumption(GetPayloadSize(record)) + (Settings.RuPerRequest ? 1 : 0); + Settings.RuPerRequest = false; RequestDataQuota(PendingQuotaAmount, ctx); } else { ProceedFetchRequest(ctx); diff --git a/ydb/core/persqueue/fetch_request_actor.h b/ydb/core/persqueue/fetch_request_actor.h index e6adac4f9d62..153d35e19e77 100644 --- a/ydb/core/persqueue/fetch_request_actor.h +++ b/ydb/core/persqueue/fetch_request_actor.h @@ -15,7 +15,7 @@ struct TPartitionFetchRequest { ui64 Offset; ui64 MaxBytes; ui64 ReadTimestampMs; - + TPartitionFetchRequest(const TString& topic, ui32 partition, ui64 offset, ui64 maxBytes, ui64 readTimestampMs = 0, const TString& clientId = NKikimr::NPQ::CLIENTID_WITHOUT_CONSUMER) : Topic(topic) , ClientId(clientId) @@ -35,11 +35,12 @@ struct TFetchRequestSettings { ui64 MaxWaitTimeMs; ui64 TotalMaxBytes; TRlContext RlCtx; + bool RuPerRequest; ui64 RequestId = 0; TFetchRequestSettings( const TString& database, const TVector& partitions, ui64 maxWaitTimeMs, ui64 totalMaxBytes, TRlContext rlCtx, - const TMaybe& user = {}, ui64 requestId = 0 + const TMaybe& user = {}, ui64 requestId = 0, bool ruPerRequest = false ) : Database(database) , Partitions(partitions) @@ -47,6 +48,7 @@ struct TFetchRequestSettings { , MaxWaitTimeMs(maxWaitTimeMs) , TotalMaxBytes(totalMaxBytes) , RlCtx(rlCtx) + , RuPerRequest(ruPerRequest) , RequestId(requestId) {} }; diff --git a/ydb/core/persqueue/metering_sink.cpp b/ydb/core/persqueue/metering_sink.cpp index 87854dc81954..4531fc5c614f 100644 --- a/ydb/core/persqueue/metering_sink.cpp +++ b/ydb/core/persqueue/metering_sink.cpp @@ -165,7 +165,7 @@ const TMeteringSink::FlushParameters TMeteringSink::GetFlushParameters(const EMe case EMeteringJson::UsedStorageV1: { ui64 duration = (now - lastFlush).MilliSeconds(); - ui64 avgUsage = CurrentUsedStorage_ * 1_MB * 1000 / duration; + ui64 avgUsage = duration > 0 ? CurrentUsedStorage_ * 1_MB * 1000 / duration : 0; CurrentUsedStorage_ = 0; diff --git a/ydb/core/persqueue/partition.cpp b/ydb/core/persqueue/partition.cpp index f29e9511f7c2..400c0315af09 100644 --- a/ydb/core/persqueue/partition.cpp +++ b/ydb/core/persqueue/partition.cpp @@ -87,7 +87,7 @@ TString TPartition::LogPrefix() const { bool TPartition::CanWrite() const { if (PartitionConfig == nullptr) { - // Old format without AllPartitions configuration field. + // Old format without AllPartitions configuration field. // It is not split/merge partition. return true; } @@ -235,9 +235,10 @@ ui64 TPartition::MeteringDataSize(const TActorContext& /*ctx*/) const { // We assume that DataKyesBody contains an up-to-date set of blobs, their relevance is // maintained by the background process. However, the last block may contain several irrelevant // messages. Because of them, we throw out the size of the entire blob. - ui64 size = Size() - DataKeysBody[0].Size; - Y_DEBUG_ABORT_UNLESS(size >= 0, "Metering data size must be positive"); - return std::max(size, 0); + auto size = Size(); + auto lastBlobSize = DataKeysBody[0].Size; + Y_DEBUG_ABORT_UNLESS(size >= lastBlobSize, "Metering data size must be positive"); + return size >= lastBlobSize ? size - lastBlobSize : 0; } ui64 TPartition::ReserveSize() const { @@ -257,7 +258,9 @@ ui64 TPartition::GetUsedStorage(const TActorContext& ctx) { const auto duration = now - LastUsedStorageMeterTimestamp; LastUsedStorageMeterTimestamp = now; - ui64 size = std::max(MeteringDataSize(ctx) - ReserveSize(), 0); + auto dataSize = MeteringDataSize(ctx); + auto reservedSize = ReserveSize(); + ui64 size = dataSize > reservedSize ? dataSize - reservedSize : 0; return size * duration.MilliSeconds() / 1000 / 1_MB; // mb*seconds } @@ -273,7 +276,7 @@ ui64 TPartition::ImportantClientsMinOffset() const { minOffset = Min(minOffset, curOffset); } - return minOffset; + return minOffset; } void TPartition::HandleWakeup(const TActorContext& ctx) { @@ -501,7 +504,7 @@ void TPartition::InitComplete(const TActorContext& ctx) { LOG_INFO_S( ctx, NKikimrServices::PERSQUEUE, - "init complete for topic '" << TopicName() << "' partition " << Partition << " " << ctx.SelfID + "init complete for topic '" << TopicName() << "' partition " << Partition << " generation " << TabletGeneration << " " << ctx.SelfID ); TStringBuilder ss; @@ -552,7 +555,7 @@ void TPartition::InitComplete(const TActorContext& ctx) { PartitionCountersLabeled->GetCounters()[METRIC_INIT_TIME] = InitDuration.MilliSeconds(); PartitionCountersLabeled->GetCounters()[METRIC_LIFE_TIME] = CreationTime.MilliSeconds(); PartitionCountersLabeled->GetCounters()[METRIC_PARTITIONS] = 1; - PartitionCountersLabeled->GetCounters()[METRIC_PARTITIONS_TOTAL] = Config.PartitionIdsSize(); + PartitionCountersLabeled->GetCounters()[METRIC_PARTITIONS_TOTAL] = std::max(Config.PartitionIdsSize(), Config.PartitionsSize()); ctx.Send(Tablet, new TEvPQ::TEvPartitionLabeledCounters(Partition, *PartitionCountersLabeled)); } UpdateUserInfoEndOffset(ctx.Now()); @@ -748,7 +751,7 @@ void TPartition::Handle(TEvPQ::TEvPartitionStatus::TPtr& ev, const TActorContext auto& userInfo = userInfoPair.second; if (!userInfo.LabeledCounters) continue; - if (!userInfo.HasReadRule && !userInfo.Important) + if (userInfoPair.first != CLIENTID_WITHOUT_CONSUMER && !userInfo.HasReadRule && !userInfo.Important) continue; auto* cac = ac->AddConsumerAggregatedCounters(); cac->SetConsumer(userInfo.User); @@ -969,7 +972,7 @@ void TPartition::Handle(TEvPQ::TEvBlobResponse::TPtr& ev, const TActorContext& c auto it = ReadInfo.find(cookie); Y_ABORT_UNLESS(it != ReadInfo.end()); - + TReadInfo info = std::move(it->second); ReadInfo.erase(it); @@ -980,7 +983,7 @@ void TPartition::Handle(TEvPQ::TEvBlobResponse::TPtr& ev, const TActorContext& c info.Destination, GetSizeLag(info.Offset), Tablet, Config.GetMeteringMode() )); const auto& resp = dynamic_cast(answer.Event.Get())->Response; - + if (HasError(*ev->Get())) { if (info.IsSubscription) { TabletCounters.Cumulative()[COUNTER_PQ_READ_SUBSCRIPTION_ERROR].Increment(1); @@ -996,7 +999,7 @@ void TPartition::Handle(TEvPQ::TEvBlobResponse::TPtr& ev, const TActorContext& c TabletCounters.Cumulative()[COUNTER_PQ_READ_BYTES].Increment(resp->ByteSize()); } ctx.Send(info.Destination != 0 ? Tablet : ctx.SelfID, answer.Event.Release()); - OnReadRequestFinished(cookie, answer.Size, info.User, ctx); + OnReadRequestFinished(info.Destination, answer.Size, info.User, ctx); } void TPartition::Handle(TEvPQ::TEvError::TPtr& ev, const TActorContext& ctx) { @@ -1083,7 +1086,7 @@ bool TPartition::UpdateCounters(const TActorContext& ctx, bool force) { auto& userInfo = userInfoPair.second; if (!userInfo.LabeledCounters) continue; - if (!userInfo.HasReadRule && !userInfo.Important) + if (userInfoPair.first != CLIENTID_WITHOUT_CONSUMER && !userInfo.HasReadRule && !userInfo.Important) continue; bool haveChanges = false; userInfo.EndOffset = EndOffset; @@ -1187,6 +1190,12 @@ bool TPartition::UpdateCounters(const TActorContext& ctx, bool force) { userInfo.LabeledCounters->GetCounters()[METRIC_READ_QUOTA_PER_CONSUMER_USAGE].Set(quotaUsage); } } + + if (userInfoPair.first == CLIENTID_WITHOUT_CONSUMER ) { + PartitionCountersLabeled->GetCounters()[METRIC_READ_QUOTA_NO_CONSUMER_BYTES].Set(userInfo.LabeledCounters->GetCounters()[METRIC_READ_QUOTA_PER_CONSUMER_BYTES].Get()); + PartitionCountersLabeled->GetCounters()[METRIC_READ_QUOTA_NO_CONSUMER_USAGE].Set(userInfo.LabeledCounters->GetCounters()[METRIC_READ_QUOTA_PER_CONSUMER_USAGE].Get()); + } + if (haveChanges) { ctx.Send(Tablet, new TEvPQ::TEvPartitionLabeledCounters(Partition, *userInfo.LabeledCounters)); } @@ -1299,6 +1308,14 @@ bool TPartition::UpdateCounters(const TActorContext& ctx, bool force) { PartitionCountersLabeled->GetCounters()[METRIC_READ_QUOTA_PARTITION_TOTAL_USAGE].Set(quotaUsage); } } + + if (PartitionCountersLabeled->GetCounters()[METRIC_READ_QUOTA_NO_CONSUMER_BYTES].Get()) { + ui64 quotaUsage = ui64(AvgReadBytes.GetValue()) * 1000000 / PartitionCountersLabeled->GetCounters()[METRIC_READ_QUOTA_PARTITION_TOTAL_BYTES].Get() / 60; + if (quotaUsage != PartitionCountersLabeled->GetCounters()[METRIC_READ_QUOTA_PARTITION_TOTAL_USAGE].Get()) { + haveChanges = true; + PartitionCountersLabeled->GetCounters()[METRIC_READ_QUOTA_PARTITION_TOTAL_USAGE].Set(quotaUsage); + } + } return haveChanges; } @@ -1805,7 +1822,7 @@ void TPartition::OnProcessTxsAndUserActsWriteComplete(ui64 cookie, const TActorC } else { TabletCounters.Cumulative()[COUNTER_PQ_WRITE_TIMESTAMP_CACHE_HIT].Increment(1); } - } else { + } else if (user != CLIENTID_WITHOUT_CONSUMER) { auto ui = UsersInfoStorage->GetIfExists(user); if (ui && ui->LabeledCounters) { ScheduleDropPartitionLabeledCounters(ui->LabeledCounters->GetGroup()); diff --git a/ydb/core/persqueue/partition.h b/ydb/core/persqueue/partition.h index 31cb40fd484a..8d5263939bb7 100644 --- a/ydb/core/persqueue/partition.h +++ b/ydb/core/persqueue/partition.h @@ -742,6 +742,9 @@ class TPartition : public TActorBootstrapped { NKikimr::NPQ::TMultiCounter MsgsWrittenTotal; NKikimr::NPQ::TMultiCounter MsgsWrittenGrpc;; + NKikimr::NPQ::TMultiCounter MsgsDiscarded; + NKikimr::NPQ::TMultiCounter BytesDiscarded; + // Writing blob with topic quota variables ui64 TopicQuotaRequestCookie = 0; diff --git a/ydb/core/persqueue/partition_init.cpp b/ydb/core/persqueue/partition_init.cpp index fcab0f62f360..d07141b521c9 100644 --- a/ydb/core/persqueue/partition_init.cpp +++ b/ydb/core/persqueue/partition_init.cpp @@ -785,6 +785,10 @@ void TPartition::SetupTopicCounters(const TActorContext& ctx) { BytesWrittenUncompressed = NKikimr::NPQ::TMultiCounter(subGroup, labels, {}, {"UncompressedBytesWritten" + suffix}, true); BytesWrittenComp = NKikimr::NPQ::TMultiCounter(subGroup, labels, {}, {"CompactedBytesWritten" + suffix}, true); MsgsWrittenTotal = NKikimr::NPQ::TMultiCounter(subGroup, labels, {}, {"MessagesWritten" + suffix}, true); + if (IsLocalDC) { + MsgsDiscarded = NKikimr::NPQ::TMultiCounter(subGroup, labels, {}, {"DiscardedMessages"}, true); + BytesDiscarded = NKikimr::NPQ::TMultiCounter(subGroup, labels, {}, {"DiscardedBytes"}, true); + } TVector aggr = {{{{"Account", TopicConverter->GetAccount()}}, {"total"}}}; ui32 border = AppData(ctx)->PQConfig.GetWriteLatencyBigMs(); @@ -872,8 +876,14 @@ void TPartition::SetupStreamCounters(const TActorContext& ctx) { {"topic.write.messages"}, true, "name"); - BytesWrittenUncompressed = NKikimr::NPQ::TMultiCounter( + MsgsDiscarded = NKikimr::NPQ::TMultiCounter( + NPersQueue::GetCountersForTopic(counters, IsServerless), {}, subgroups, + {"topic.write.discarded_messages"}, true, "name"); + BytesDiscarded = NKikimr::NPQ::TMultiCounter( + NPersQueue::GetCountersForTopic(counters, IsServerless), {}, subgroups, + {"topic.write.discarded_bytes"} , true, "name"); + BytesWrittenUncompressed = NKikimr::NPQ::TMultiCounter( NPersQueue::GetCountersForTopic(counters, IsServerless), {}, subgroups, {"topic.write.uncompressed_bytes"}, true, "name"); @@ -885,8 +895,8 @@ void TPartition::SetupStreamCounters(const TActorContext& ctx) { 5000, 10'000, 30'000, 99'999'999}); SLIBigLatency = NKikimr::NPQ::TMultiCounter(subGroup, aggr, {}, {"WriteBigLatency"}, true, "name", false); WritesTotal = NKikimr::NPQ::TMultiCounter(subGroup, aggr, {}, {"WritesTotal"}, true, "name", false); - if (IsQuotingEnabled() && !TopicWriteQuotaResourcePath.empty()) { - subgroups.push_back({"name", "api.grpc.topic.stream_write.topic_throttled_milliseconds"}); + if (IsQuotingEnabled()) { + subgroups.push_back({"name", "topic.write.topic_throttled_milliseconds"}); TopicWriteQuotaWaitCounter = THolder( new NKikimr::NPQ::TPercentileCounter( NPersQueue::GetCountersForTopic(counters, IsServerless), {}, @@ -899,7 +909,7 @@ void TPartition::SetupStreamCounters(const TActorContext& ctx) { subgroups.pop_back(); } - subgroups.push_back({"name", "api.grpc.topic.stream_write.partition_throttled_milliseconds"}); + subgroups.push_back({"name", "topic.write.partition_throttled_milliseconds"}); PartitionWriteQuotaWaitCounter = THolder( new NKikimr::NPQ::TPercentileCounter( NPersQueue::GetCountersForTopic(counters, IsServerless), {}, subgroups, "bin", diff --git a/ydb/core/persqueue/partition_monitoring.cpp b/ydb/core/persqueue/partition_monitoring.cpp index 4343adcbb6a1..89c7f47a869c 100644 --- a/ydb/core/persqueue/partition_monitoring.cpp +++ b/ydb/core/persqueue/partition_monitoring.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -22,6 +23,14 @@ namespace NKikimr::NPQ { +TString PrintConfig(const NKikimrPQ::TPQTabletConfig& cfg) { + TSecurityTextFormatPrinter printer; + printer.SetSingleLineMode(true); + TString string; + printer.PrintToString(cfg, &string); + return string; +} + void HtmlOutput(IOutputStream& out, const TString& line, const std::deque>& keys) { HTML(out) { TABLE() { @@ -109,7 +118,7 @@ void TPartition::HandleMonitoring(TEvPQ::TEvMonRequest::TPtr& ev, const TActorCo out << "AvgWriteSize per " << avg.GetDuration().ToString() << " is " << avg.GetValue() << " bytes"; res.push_back(out.Str()); out.Clear(); } - out << Config.DebugString(); res.push_back(out.Str()); out.Clear(); + out << PrintConfig(Config); res.push_back(out.Str()); out.Clear(); HTML(out) { DIV_CLASS_ID("tab-pane fade", Sprintf("partition_%u", ui32(Partition))) { TABLE_SORTABLE_CLASS("table") { diff --git a/ydb/core/persqueue/partition_read.cpp b/ydb/core/persqueue/partition_read.cpp index 7173ebbf2ae2..eae972be6e2c 100644 --- a/ydb/core/persqueue/partition_read.cpp +++ b/ydb/core/persqueue/partition_read.cpp @@ -973,7 +973,7 @@ void TPartition::ProcessRead(const TActorContext& ctx, TReadInfo&& info, const u TabletCounters.Cumulative()[COUNTER_PQ_READ_BYTES].Increment(resp->ByteSize()); ctx.Send(info.Destination != 0 ? Tablet : ctx.SelfID, answer.Event.Release()); - OnReadRequestFinished(cookie, answer.Size, info.User, ctx); + OnReadRequestFinished(info.Destination, answer.Size, info.User, ctx); return; } diff --git a/ydb/core/persqueue/partition_sourcemanager.cpp b/ydb/core/persqueue/partition_sourcemanager.cpp index b0770f1f901c..0038c6742db2 100644 --- a/ydb/core/persqueue/partition_sourcemanager.cpp +++ b/ydb/core/persqueue/partition_sourcemanager.cpp @@ -81,7 +81,8 @@ void TPartitionSourceManager::TModificationBatch::Cancel() { } bool TPartitionSourceManager::TModificationBatch::HasModifications() const { - return !SourceIdWriter.GetSourceIdsToWrite().empty(); + return !SourceIdWriter.GetSourceIdsToWrite().empty() + || !SourceIdWriter.GetSourceIdsToDelete().empty(); } void TPartitionSourceManager::TModificationBatch::FillRequest(TEvKeyValue::TEvRequest* request) { diff --git a/ydb/core/persqueue/partition_write.cpp b/ydb/core/persqueue/partition_write.cpp index 871956a019b1..2a11771db4e0 100644 --- a/ydb/core/persqueue/partition_write.cpp +++ b/ydb/core/persqueue/partition_write.cpp @@ -902,7 +902,9 @@ TPartition::ProcessResult TPartition::ProcessRequest(TWriteMsg& p, ProcessParame ); TabletCounters.Cumulative()[COUNTER_PQ_WRITE_ALREADY].Increment(1); + MsgsDiscarded.Inc(); TabletCounters.Cumulative()[COUNTER_PQ_WRITE_BYTES_ALREADY].Increment(p.Msg.Data.size()); + BytesDiscarded.Inc(p.Msg.Data.size()); } else { TabletCounters.Cumulative()[COUNTER_PQ_WRITE_SMALL_OFFSET].Increment(1); TabletCounters.Cumulative()[COUNTER_PQ_WRITE_BYTES_SMALL_OFFSET].Increment(p.Msg.Data.size()); diff --git a/ydb/core/persqueue/sourceid.cpp b/ydb/core/persqueue/sourceid.cpp index e2176d8c3376..07a0d7895478 100644 --- a/ydb/core/persqueue/sourceid.cpp +++ b/ydb/core/persqueue/sourceid.cpp @@ -253,7 +253,7 @@ void TSourceIdStorage::DeregisterSourceId(const TString& sourceId) { ExplicitSourceIds.erase(sourceId); } - SourceIdsByOffset.erase(std::make_pair(it->second.Offset, sourceId)); + SourceIdsByOffset[it->second.Explicit].erase(std::make_pair(it->second.Offset, sourceId)); InMemorySourceIds.erase(it); auto jt = SourceIdOwners.find(sourceId); @@ -277,7 +277,7 @@ bool TSourceIdStorage::DropOldSourceIds(TEvKeyValue::TEvRequest* request, TInsta const auto ttl = TDuration::Seconds(config.GetSourceIdLifetimeSeconds()); ui32 size = request->Record.ByteSize(); - for (const auto& [offset, sourceId] : SourceIdsByOffset) { + for (const auto& [offset, sourceId] : SourceIdsByOffset[0]) { if (offset >= startOffset && toDelOffsets.size() >= maxDeleteSourceIds) { break; } @@ -323,7 +323,7 @@ bool TSourceIdStorage::DropOldSourceIds(TEvKeyValue::TEvRequest* request, TInsta size_t res = InMemorySourceIds.erase(t.second); Y_ABORT_UNLESS(res == 1); // delete sourceID from offsets - res = SourceIdsByOffset.erase(t); + res = SourceIdsByOffset[0].erase(t); Y_ABORT_UNLESS(res == 1); // save owners to drop and delete records from map auto it = SourceIdOwners.find(t.second); @@ -372,14 +372,14 @@ void TSourceIdStorage::RegisterSourceIdInfo(const TString& sourceId, TSourceIdIn auto it = InMemorySourceIds.find(sourceId); if (it != InMemorySourceIds.end()) { if (!load || it->second.Offset < sourceIdInfo.Offset) { - const auto res = SourceIdsByOffset.erase(std::make_pair(it->second.Offset, sourceId)); + const auto res = SourceIdsByOffset[sourceIdInfo.Explicit].erase(std::make_pair(it->second.Offset, sourceId)); Y_ABORT_UNLESS(res == 1); } else { return; } } - const bool res = SourceIdsByOffset.emplace(sourceIdInfo.Offset, sourceId).second; + const bool res = SourceIdsByOffset[sourceIdInfo.Explicit].emplace(sourceIdInfo.Offset, sourceId).second; Y_ABORT_UNLESS(res); if (sourceIdInfo.Explicit) { @@ -421,10 +421,12 @@ void TSourceIdStorage::MarkOwnersForDeletedSourceId(THashMapsecond); - Y_ABORT_UNLESS(it != InMemorySourceIds.end()); - ds = Min(ds, it->second.WriteTimestamp); + for (ui32 i = 0 ; i < 2; ++i) { + if (!SourceIdsByOffset[i].empty()) { + auto it = InMemorySourceIds.find(SourceIdsByOffset[i].begin()->second); + Y_ABORT_UNLESS(it != InMemorySourceIds.end()); + ds = Min(ds, it->second.WriteTimestamp); + } } return ds; diff --git a/ydb/core/persqueue/sourceid.h b/ydb/core/persqueue/sourceid.h index 897014363f29..ba19f1e02a56 100644 --- a/ydb/core/persqueue/sourceid.h +++ b/ydb/core/persqueue/sourceid.h @@ -108,7 +108,7 @@ class TSourceIdStorage: private THeartbeatProcessor { TSourceIdMap InMemorySourceIds; THashMap SourceIdOwners; TVector OwnersToDrop; - TSet> SourceIdsByOffset; + TSet> SourceIdsByOffset[2]; // used to track heartbeats THashSet ExplicitSourceIds; @@ -122,6 +122,10 @@ class TSourceIdWriter { return Registrations; } + const THashSet& GetSourceIdsToDelete() const { + return Deregistrations; + } + template void RegisterSourceId(const TString& sourceId, Args&&... args) { Registrations[sourceId] = TSourceIdInfo(std::forward(args)...); diff --git a/ydb/core/persqueue/ut/CMakeLists.darwin-arm64.txt b/ydb/core/persqueue/ut/CMakeLists.darwin-arm64.txt index fd827df0f8b7..9f3c96a06397 100644 --- a/ydb/core/persqueue/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/persqueue/ut/CMakeLists.darwin-arm64.txt @@ -41,8 +41,6 @@ target_link_options(ydb-core-persqueue-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-persqueue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/counters_ut.cpp @@ -91,6 +89,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/persqueue/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/persqueue/ut/CMakeLists.darwin-x86_64.txt index baa1f03c9403..b439439a33f9 100644 --- a/ydb/core/persqueue/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/persqueue/ut/CMakeLists.darwin-x86_64.txt @@ -42,8 +42,6 @@ target_link_options(ydb-core-persqueue-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-persqueue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/counters_ut.cpp @@ -92,6 +90,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/persqueue/ut/CMakeLists.linux-aarch64.txt b/ydb/core/persqueue/ut/CMakeLists.linux-aarch64.txt index 20ae12d2efd5..ea17e023dc49 100644 --- a/ydb/core/persqueue/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/persqueue/ut/CMakeLists.linux-aarch64.txt @@ -44,9 +44,6 @@ target_link_options(ydb-core-persqueue-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-persqueue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/counters_ut.cpp @@ -95,6 +92,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/persqueue/ut/CMakeLists.linux-x86_64.txt b/ydb/core/persqueue/ut/CMakeLists.linux-x86_64.txt index 8f96adf6bc7a..ac7adfb80672 100644 --- a/ydb/core/persqueue/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/persqueue/ut/CMakeLists.linux-x86_64.txt @@ -45,9 +45,6 @@ target_link_options(ydb-core-persqueue-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-persqueue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/counters_ut.cpp @@ -96,6 +93,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/persqueue/ut/CMakeLists.windows-x86_64.txt b/ydb/core/persqueue/ut/CMakeLists.windows-x86_64.txt index 138371397cb9..8879929fbbfc 100644 --- a/ydb/core/persqueue/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/persqueue/ut/CMakeLists.windows-x86_64.txt @@ -85,6 +85,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/persqueue/ut/common/CMakeLists.darwin-arm64.txt b/ydb/core/persqueue/ut/common/CMakeLists.darwin-arm64.txt index f398910fc5c2..32387e9d8ac2 100644 --- a/ydb/core/persqueue/ut/common/CMakeLists.darwin-arm64.txt +++ b/ydb/core/persqueue/ut/common/CMakeLists.darwin-arm64.txt @@ -18,5 +18,6 @@ target_link_libraries(persqueue-ut-common PUBLIC ydb-core-persqueue ) target_sources(persqueue-ut-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/common/pq_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/common/pq_ut_common.cpp ) diff --git a/ydb/core/persqueue/ut/common/CMakeLists.darwin-x86_64.txt b/ydb/core/persqueue/ut/common/CMakeLists.darwin-x86_64.txt index f398910fc5c2..32387e9d8ac2 100644 --- a/ydb/core/persqueue/ut/common/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/persqueue/ut/common/CMakeLists.darwin-x86_64.txt @@ -18,5 +18,6 @@ target_link_libraries(persqueue-ut-common PUBLIC ydb-core-persqueue ) target_sources(persqueue-ut-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/common/pq_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/common/pq_ut_common.cpp ) diff --git a/ydb/core/persqueue/ut/common/CMakeLists.linux-aarch64.txt b/ydb/core/persqueue/ut/common/CMakeLists.linux-aarch64.txt index a533a7288d39..353c744a0217 100644 --- a/ydb/core/persqueue/ut/common/CMakeLists.linux-aarch64.txt +++ b/ydb/core/persqueue/ut/common/CMakeLists.linux-aarch64.txt @@ -19,5 +19,6 @@ target_link_libraries(persqueue-ut-common PUBLIC ydb-core-persqueue ) target_sources(persqueue-ut-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/common/pq_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/common/pq_ut_common.cpp ) diff --git a/ydb/core/persqueue/ut/common/CMakeLists.linux-x86_64.txt b/ydb/core/persqueue/ut/common/CMakeLists.linux-x86_64.txt index a533a7288d39..353c744a0217 100644 --- a/ydb/core/persqueue/ut/common/CMakeLists.linux-x86_64.txt +++ b/ydb/core/persqueue/ut/common/CMakeLists.linux-x86_64.txt @@ -19,5 +19,6 @@ target_link_libraries(persqueue-ut-common PUBLIC ydb-core-persqueue ) target_sources(persqueue-ut-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/common/pq_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/common/pq_ut_common.cpp ) diff --git a/ydb/core/persqueue/ut/common/CMakeLists.windows-x86_64.txt b/ydb/core/persqueue/ut/common/CMakeLists.windows-x86_64.txt index f398910fc5c2..32387e9d8ac2 100644 --- a/ydb/core/persqueue/ut/common/CMakeLists.windows-x86_64.txt +++ b/ydb/core/persqueue/ut/common/CMakeLists.windows-x86_64.txt @@ -18,5 +18,6 @@ target_link_libraries(persqueue-ut-common PUBLIC ydb-core-persqueue ) target_sources(persqueue-ut-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/common/pq_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/common/pq_ut_common.cpp ) diff --git a/ydb/core/persqueue/ut/counters_ut.cpp b/ydb/core/persqueue/ut/counters_ut.cpp index 6be6bb67bbb6..23ce8ae757b2 100644 --- a/ydb/core/persqueue/ut/counters_ut.cpp +++ b/ydb/core/persqueue/ut/counters_ut.cpp @@ -83,6 +83,8 @@ Y_UNIT_TEST(Partition) { CmdWrite(0, "sourceid0", TestData(), tc, false, {}, true); CmdWrite(0, "sourceid1", TestData(), tc, false); CmdWrite(0, "sourceid2", TestData(), tc, false); + CmdWrite(0, "sourceid1", TestData(), tc, false); + CmdWrite(0, "sourceid2", TestData(), tc, false); PQGetPartInfo(0, 30, tc); @@ -93,7 +95,7 @@ Y_UNIT_TEST(Partition) { dbGroup->OutputHtml(countersStr); TString referenceCounters = NResource::Find(TStringBuf("counters_pqproxy.html")); - UNIT_ASSERT_EQUAL(countersStr.Str() + "\n", referenceCounters); + UNIT_ASSERT_VALUES_EQUAL(countersStr.Str() + "\n", referenceCounters); } { @@ -101,7 +103,7 @@ Y_UNIT_TEST(Partition) { auto dbGroup = GetServiceCounters(counters, "datastreams"); TStringStream countersStr; dbGroup->OutputHtml(countersStr); - UNIT_ASSERT_EQUAL(countersStr.Str(), "
");
+        UNIT_ASSERT_VALUES_EQUAL(countersStr.Str(), "
");
     }
 }
 
@@ -116,6 +118,7 @@ Y_UNIT_TEST(PartitionFirstClass) {
     CmdWrite(0, "sourceid0", TestData(), tc, false, {}, true);
     CmdWrite(0, "sourceid1", TestData(), tc, false);
     CmdWrite(0, "sourceid2", TestData(), tc, false);
+    CmdWrite(0, "sourceid0", TestData(), tc, false);
     PQGetPartInfo(0, 30, tc);
 
     {
diff --git a/ydb/core/persqueue/ut/mirrorer_ut.cpp b/ydb/core/persqueue/ut/mirrorer_ut.cpp
index 0790f673a133..8a39005004af 100644
--- a/ydb/core/persqueue/ut/mirrorer_ut.cpp
+++ b/ydb/core/persqueue/ut/mirrorer_ut.cpp
@@ -154,6 +154,9 @@ Y_UNIT_TEST_SUITE(TPersQueueMirrorer) {
 
         }
 
+        srcReader->Close(TDuration::Zero());
+        dstReader->Close(TDuration::Zero());
+
         // write to source topic
         TVector messagesPerPartition(partitionsCount, 0);
         for (ui32 partition = 0; partition < partitionsCount; ++partition) {
@@ -163,7 +166,7 @@ Y_UNIT_TEST_SUITE(TPersQueueMirrorer) {
                 {"some_extra_field2", "another_value" + ToString(partition)},
                 {"file", "/home/user/log" + ToString(partition)}
             };
-            auto writer = CreateSimpleWriter(*driver, srcTopic, sourceId, partition + 1, std::nullopt, std::nullopt, sessionMeta); 
+            auto writer = CreateSimpleWriter(*driver, srcTopic, sourceId, partition + 1, std::nullopt, std::nullopt, sessionMeta);
 
             ui64 seqNo = writer->GetInitSeqNo();
 
@@ -211,10 +214,10 @@ Y_UNIT_TEST_SUITE(TPersQueueMirrorer) {
             auto dstReader = createReader(dstTopic, partition);
 
             for (ui32 i = 0; i < messagesPerPartition[partition]; ++i) {
-                auto dstEvent = GetNextMessageSkipAssignment(dstReader);
+                auto dstEvent = GetNextMessageSkipAssignment(dstReader, TDuration::Seconds(1));
                 UNIT_ASSERT(dstEvent);
                 Cerr << "Destination read message: " << dstEvent->DebugString() << "\n";
-                auto srcEvent = GetNextMessageSkipAssignment(srcReader);
+                auto srcEvent = GetNextMessageSkipAssignment(srcReader, TDuration::Seconds(1));
                 UNIT_ASSERT(srcEvent);
                 Cerr << "Source read message: " << srcEvent->DebugString() << "\n";
 
@@ -251,7 +254,6 @@ Y_UNIT_TEST_SUITE(TPersQueueMirrorer) {
                 }
             }
         }
-
     }
 
     Y_UNIT_TEST(ValidStartStream) {
@@ -264,7 +266,7 @@ Y_UNIT_TEST_SUITE(TPersQueueMirrorer) {
         server.AnnoyingClient->CreateTopic(topicFullName, 1);
 
         auto driver = server.AnnoyingClient->GetDriver();
-        auto writer = CreateSimpleWriter(*driver, topic, "src-id-test"); 
+        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);
@@ -300,7 +302,7 @@ Y_UNIT_TEST_SUITE(TPersQueueMirrorer) {
                 break;
             }
         }
-        
+
         for (auto i = 0u; i < 5; i++) {
             auto res = writer->Write(TString(10, 'b'));
             UNIT_ASSERT(res);
diff --git a/ydb/core/persqueue/ut/partition_chooser_ut.cpp b/ydb/core/persqueue/ut/partition_chooser_ut.cpp
index 17eefd280848..7961aa8b04f4 100644
--- a/ydb/core/persqueue/ut/partition_chooser_ut.cpp
+++ b/ydb/core/persqueue/ut/partition_chooser_ut.cpp
@@ -621,6 +621,19 @@ Y_UNIT_TEST(TPartitionChooserActor_SplitMergeEnabled_PreferedPartition_OtherPart
     AssertTable(server, "A_Source_10", 0, 13);
 }
 
+Y_UNIT_TEST(TPartitionChooserActor_SplitMergeEnabled_BadSourceId_Test) {
+    NPersQueue::TTestServer server = CreateServer();
+
+    auto config = CreateConfig0(true);
+    AddPartition(config, 0, {}, {});
+    CreatePQTabletMock(server, 0, ETopicPartitionStatus::Active);
+
+    auto r = ChoosePartition(server, config, "base64:a***");
+
+    UNIT_ASSERT(r->Error);
+}
+
+
 Y_UNIT_TEST(TPartitionChooserActor_SplitMergeDisabled_NewSourceId_Test) {
     NPersQueue::TTestServer server = CreateServer();
 
@@ -692,4 +705,16 @@ Y_UNIT_TEST(TPartitionChooserActor_SplitMergeDisabled_PreferedPartition_Inactive
     UNIT_ASSERT(r->Error);
 }
 
+Y_UNIT_TEST(TPartitionChooserActor_SplitMergeDisabled_BadSourceId_Test) {
+    NPersQueue::TTestServer server = CreateServer();
+
+    auto config = CreateConfig0(false);
+    AddPartition(config, 0, {}, {});
+
+    auto r = ChoosePartition(server, config, "base64:a***");
+
+    UNIT_ASSERT(r->Error);
+}
+
+
 }
diff --git a/ydb/core/persqueue/ut/pq_ut.cpp b/ydb/core/persqueue/ut/pq_ut.cpp
index 2c89b9f95cdc..8a74d2fb88d5 100644
--- a/ydb/core/persqueue/ut/pq_ut.cpp
+++ b/ydb/core/persqueue/ut/pq_ut.cpp
@@ -556,7 +556,7 @@ Y_UNIT_TEST(TestCheckACL) {
         TFakeSchemeShardState::TPtr state{new TFakeSchemeShardState()};
         ui64 ssId = 9876;
         BootFakeSchemeShard(*tc.Runtime, ssId, state);
-        IActor* ticketParser = NKikimr::CreateTicketParser(tc.Runtime->GetAppData().AuthConfig);
+        IActor* ticketParser = NKikimr::CreateTicketParser({.AuthConfig = tc.Runtime->GetAppData().AuthConfig, .CertificateAuthValues = {}});
         TActorId ticketParserId = tc.Runtime->Register(ticketParser);
         tc.Runtime->RegisterService(NKikimr::MakeTicketParserID(), ticketParserId);
 
diff --git a/ydb/core/persqueue/ut/resources/counters_datastreams.html b/ydb/core/persqueue/ut/resources/counters_datastreams.html
index 4293a0c49e47..7f3e79ea88fb 100644
--- a/ydb/core/persqueue/ut/resources/counters_datastreams.html
+++ b/ydb/core/persqueue/ut/resources/counters_datastreams.html
@@ -3,6 +3,8 @@
     name=api.grpc.topic.stream_write.bytes: 540
     name=api.grpc.topic.stream_write.messages: 30
     name=topic.write.bytes: 540
+    name=topic.write.discarded_bytes: 90
+    name=topic.write.discarded_messages: 10
     name=topic.write.messages: 30
     name=topic.write.uncompressed_bytes: 270
 
@@ -25,21 +27,6 @@
             bin=60000: 0
             bin=999999: 0
 
-    name=api.grpc.topic.stream_write.partition_throttled_milliseconds:
-        bin=0: 30
-        bin=1: 0
-        bin=10: 0
-        bin=100: 0
-        bin=1000: 0
-        bin=10000: 0
-        bin=20: 0
-        bin=2500: 0
-        bin=5: 0
-        bin=50: 0
-        bin=500: 0
-        bin=5000: 0
-        bin=999999: 0
-
     name=topic.write.lag_milliseconds:
         bin=100: 0
         bin=1000: 10
@@ -68,4 +55,19 @@
         bin=5242880: 0
         bin=67108864: 0
         bin=99999999: 0
+
+    name=topic.write.partition_throttled_milliseconds:
+        bin=0: 40
+        bin=1: 0
+        bin=10: 0
+        bin=100: 0
+        bin=1000: 0
+        bin=10000: 0
+        bin=20: 0
+        bin=2500: 0
+        bin=5: 0
+        bin=50: 0
+        bin=500: 0
+        bin=5000: 0
+        bin=999999: 0
 
diff --git a/ydb/core/persqueue/ut/resources/counters_pqproxy.html b/ydb/core/persqueue/ut/resources/counters_pqproxy.html
index de2bdae32895..2f09b696fccc 100644
--- a/ydb/core/persqueue/ut/resources/counters_pqproxy.html
+++ b/ydb/core/persqueue/ut/resources/counters_pqproxy.html
@@ -50,7 +50,7 @@
                     OriginDC=Dc1:
 
                         sensor=PartitionWriteQuotaWaitOriginal:
-                            Interval=0ms: 30
+                            Interval=0ms: 50
                             Interval=10000ms: 0
                             Interval=1000ms: 0
                             Interval=100ms: 0
@@ -67,7 +67,7 @@
                     OriginDC=cluster:
 
                         sensor=PartitionWriteQuotaWaitOriginal:
-                            Interval=0ms: 30
+                            Interval=0ms: 50
                             Interval=10000ms: 0
                             Interval=1000ms: 0
                             Interval=100ms: 0
@@ -88,7 +88,7 @@
                     OriginDC=cluster:
 
                         sensor=PartitionWriteQuotaWaitOriginal:
-                            Interval=0ms: 30
+                            Interval=0ms: 50
                             Interval=10000ms: 0
                             Interval=1000ms: 0
                             Interval=100ms: 0
@@ -111,7 +111,7 @@
                     OriginDC=cluster:
 
                         sensor=PartitionWriteQuotaWaitOriginal:
-                            Interval=0ms: 30
+                            Interval=0ms: 50
                             Interval=10000ms: 0
                             Interval=1000ms: 0
                             Interval=100ms: 0
@@ -136,7 +136,7 @@
                     OriginDC=cluster:
 
                         sensor=PartitionWriteQuotaWaitOriginal:
-                            Interval=0ms: 30
+                            Interval=0ms: 50
                             Interval=10000ms: 0
                             Interval=1000ms: 0
                             Interval=100ms: 0
@@ -470,17 +470,21 @@
                 TopicPath=asdfgs/topic:
 
                     ClientDC=Unknown:
-                        sensor=BytesWrittenFromDC: 1560
+                        sensor=BytesWrittenFromDC: 2600
 
                     OriginDC=Dc1:
                         sensor=BytesWrittenOriginal: 540
                         sensor=CompactedBytesWrittenOriginal: 747
+                        sensor=DiscardedBytes: 180
+                        sensor=DiscardedMessages: 20
                         sensor=MessagesWrittenOriginal: 30
                         sensor=UncompressedBytesWrittenOriginal: 270
 
                     OriginDC=cluster:
                         sensor=BytesWrittenOriginal: 540
                         sensor=CompactedBytesWrittenOriginal: 747
+                        sensor=DiscardedBytes: 180
+                        sensor=DiscardedMessages: 20
                         sensor=MessagesWrittenOriginal: 30
                         sensor=UncompressedBytesWrittenOriginal: 270
 
@@ -489,11 +493,13 @@
                 TopicPath=total:
 
                     ClientDC=Unknown:
-                        sensor=BytesWrittenFromDC: 1560
+                        sensor=BytesWrittenFromDC: 2600
 
                     OriginDC=cluster:
                         sensor=BytesWrittenOriginal: 540
                         sensor=CompactedBytesWrittenOriginal: 747
+                        sensor=DiscardedBytes: 180
+                        sensor=DiscardedMessages: 20
                         sensor=MessagesWrittenOriginal: 30
                         sensor=UncompressedBytesWrittenOriginal: 270
 
@@ -504,11 +510,13 @@
                 TopicPath=total:
 
                     ClientDC=Unknown:
-                        sensor=BytesWrittenFromDC: 1560
+                        sensor=BytesWrittenFromDC: 2600
 
                     OriginDC=cluster:
                         sensor=BytesWrittenOriginal: 540
                         sensor=CompactedBytesWrittenOriginal: 747
+                        sensor=DiscardedBytes: 180
+                        sensor=DiscardedMessages: 20
                         sensor=MessagesWrittenOriginal: 30
                         sensor=UncompressedBytesWrittenOriginal: 270
 
@@ -521,11 +529,13 @@
                 TopicPath=total:
 
                     ClientDC=Unknown:
-                        sensor=BytesWrittenFromDC: 1560
+                        sensor=BytesWrittenFromDC: 2600
 
                     OriginDC=cluster:
                         sensor=BytesWrittenOriginal: 540
                         sensor=CompactedBytesWrittenOriginal: 747
+                        sensor=DiscardedBytes: 180
+                        sensor=DiscardedMessages: 20
                         sensor=MessagesWrittenOriginal: 30
                         sensor=UncompressedBytesWrittenOriginal: 270
 
diff --git a/ydb/core/persqueue/ut/resources/counters_topics.html b/ydb/core/persqueue/ut/resources/counters_topics.html
index 2084d1e21989..d5a4414a6c17 100644
--- a/ydb/core/persqueue/ut/resources/counters_topics.html
+++ b/ydb/core/persqueue/ut/resources/counters_topics.html
@@ -16,6 +16,8 @@
                         name=topic.partition.read.inflight_throttled_microseconds_max: 0
                         name=topic.partition.read.speed_limit_bytes_per_second: 20000000000
                         name=topic.partition.read.throttled_microseconds_max: 0
+                        name=topic.partition.read_without_consumer.speed_limit_bytes_per_second: 0
+                        name=topic.partition.read_without_consumer.throttled_microseconds_max: 0
                         name=topic.partition.storage_bytes_max: 0
                         name=topic.partition.total_count: 2
                         name=topic.partition.uptime_milliseconds_min: 30000
diff --git a/ydb/core/persqueue/ut/slow/CMakeLists.darwin-arm64.txt b/ydb/core/persqueue/ut/slow/CMakeLists.darwin-arm64.txt
index af5db37f3f9b..f6a5b3b93a25 100644
--- a/ydb/core/persqueue/ut/slow/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/persqueue/ut/slow/CMakeLists.darwin-arm64.txt
@@ -29,8 +29,6 @@ target_link_options(ydb-core-persqueue-ut-slow PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-persqueue-ut-slow PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/slow/pq_ut.cpp
@@ -60,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/persqueue/ut/slow/CMakeLists.darwin-x86_64.txt b/ydb/core/persqueue/ut/slow/CMakeLists.darwin-x86_64.txt
index f4c8fe469017..6244fb3a2ae8 100644
--- a/ydb/core/persqueue/ut/slow/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/persqueue/ut/slow/CMakeLists.darwin-x86_64.txt
@@ -30,8 +30,6 @@ target_link_options(ydb-core-persqueue-ut-slow PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-persqueue-ut-slow PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/slow/pq_ut.cpp
@@ -61,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/persqueue/ut/slow/CMakeLists.linux-aarch64.txt b/ydb/core/persqueue/ut/slow/CMakeLists.linux-aarch64.txt
index 61af201f3f0f..2c86a5fead77 100644
--- a/ydb/core/persqueue/ut/slow/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/persqueue/ut/slow/CMakeLists.linux-aarch64.txt
@@ -32,9 +32,6 @@ target_link_options(ydb-core-persqueue-ut-slow PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-persqueue-ut-slow PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/slow/pq_ut.cpp
@@ -64,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/persqueue/ut/slow/CMakeLists.linux-x86_64.txt b/ydb/core/persqueue/ut/slow/CMakeLists.linux-x86_64.txt
index 00505047721b..ad3a9eafd60f 100644
--- a/ydb/core/persqueue/ut/slow/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/persqueue/ut/slow/CMakeLists.linux-x86_64.txt
@@ -33,9 +33,6 @@ target_link_options(ydb-core-persqueue-ut-slow PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-persqueue-ut-slow PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/persqueue/ut/slow/pq_ut.cpp
@@ -65,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/persqueue/ut/slow/CMakeLists.windows-x86_64.txt b/ydb/core/persqueue/ut/slow/CMakeLists.windows-x86_64.txt
index 761d09dcaeb1..fbc3aceb6dd7 100644
--- a/ydb/core/persqueue/ut/slow/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/persqueue/ut/slow/CMakeLists.windows-x86_64.txt
@@ -54,6 +54,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/persqueue/ut/sourceid_ut.cpp b/ydb/core/persqueue/ut/sourceid_ut.cpp
index 43164c888c50..6f8bd6961af7 100644
--- a/ydb/core/persqueue/ut/sourceid_ut.cpp
+++ b/ydb/core/persqueue/ut/sourceid_ut.cpp
@@ -459,7 +459,6 @@ Y_UNIT_TEST_SUITE(TSourceIdTests) {
             UNIT_ASSERT(!emitter.CanEmit().Defined());
         }
     }
-
 } // TSourceIdTests
 
 } // namespace NKikimr::NPQ
diff --git a/ydb/core/persqueue/writer/partition_chooser_impl__abstract_chooser_actor.h b/ydb/core/persqueue/writer/partition_chooser_impl__abstract_chooser_actor.h
index 9f8f4be0df09..887132ac75fe 100644
--- a/ydb/core/persqueue/writer/partition_chooser_impl__abstract_chooser_actor.h
+++ b/ydb/core/persqueue/writer/partition_chooser_impl__abstract_chooser_actor.h
@@ -54,14 +54,21 @@ class TAbstractPartitionChooserActor: public TActorBootstrapped {
         return TActor::SelfId();
     }
 
-    void Initialize(const NActors::TActorContext& ctx) {
-        TableHelper.Initialize(ctx, SourceId);
+    [[nodiscard]] bool Initialize(const NActors::TActorContext& ctx) {
+        if (TableHelper.Initialize(ctx, SourceId)) {
+            return true;
+        }
+        StartIdle();
+        TThis::ReplyError(ErrorCode::BAD_REQUEST, "Bad SourceId", ctx);
+        return false;
     }
 
     void PassAway() {
         auto ctx = TActivationContext::ActorContextFor(SelfId());
         TableHelper.CloseKqpSession(ctx);
         PartitionHelper.Close(ctx);
+
+        TActorBootstrapped::PassAway();
     }
 
     bool NeedTable(const NActors::TActorContext& ctx) {
@@ -73,7 +80,7 @@ class TAbstractPartitionChooserActor: public TActorBootstrapped {
     void InitTable(const NActors::TActorContext& ctx) {
         TThis::Become(&TThis::StateInitTable);
         const auto& pqConfig = AppData(ctx)->PQConfig;
-        TRACE("InitTable: SourceId="<< SourceId 
+        TRACE("InitTable: SourceId="<< SourceId
               << " TopicsAreFirstClassCitizen=" << pqConfig.GetTopicsAreFirstClassCitizen()
               << " UseSrcIdMetaMappingInFirstClass=" < {
         TRACE_EVENT(NKikimrServices::PQ_PARTITION_CHOOSER);
         switch (ev->GetTypeRewrite()) {
             HFunc(NKqp::TEvKqp::TEvQueryResponse, HandleUpdate);
-            sFunc(TEvents::TEvPoison, ScheduleStop);
+            SFunc(TEvents::TEvPoison, TThis::Die);
         }
     }
 
@@ -232,7 +239,7 @@ class TAbstractPartitionChooserActor: public TActorBootstrapped {
             HFunc(NKikimr::TEvPQ::TEvCheckPartitionStatusResponse, Handle);
             HFunc(TEvTabletPipe::TEvClientConnected, HandleOwnership);
             HFunc(TEvTabletPipe::TEvClientDestroyed, HandleOwnership);
-            sFunc(TEvents::TEvPoison, ScheduleStop);
+            SFunc(TEvents::TEvPoison, TThis::Die);
         }
     }
 
@@ -254,14 +261,14 @@ class TAbstractPartitionChooserActor: public TActorBootstrapped {
 
 protected:
     void StartIdle() {
-        TThis::Become(&TThis::StateIdle);        
+        TThis::Become(&TThis::StateIdle);
         DEBUG("Start idle");
     }
 
     void HandleIdle(TEvPartitionChooser::TEvRefreshRequest::TPtr&, const TActorContext& ctx) {
         if (PartitionPersisted) {
             SendUpdateRequests(ctx);
-        }        
+        }
     }
 
     STATEFN(StateIdle)  {
@@ -298,7 +305,7 @@ class TAbstractPartitionChooserActor: public TActorBootstrapped {
 
         TThis::Die(ctx);
     }
-    
+
 
 protected:
     const TActorId Parent;
diff --git a/ydb/core/persqueue/writer/partition_chooser_impl__old_chooser_actor.h b/ydb/core/persqueue/writer/partition_chooser_impl__old_chooser_actor.h
index f8d9d35e6eed..33e1f3dd2786 100644
--- a/ydb/core/persqueue/writer/partition_chooser_impl__old_chooser_actor.h
+++ b/ydb/core/persqueue/writer/partition_chooser_impl__old_chooser_actor.h
@@ -37,7 +37,9 @@ class TPartitionChooserActor: public TAbstractPartitionChooserActorPQConfig;
 
         TableGeneration = pqConfig.GetTopicsAreFirstClassCitizen() ? ESourceIdTableGeneration::PartitionMapping
diff --git a/ydb/core/persqueue/writer/writer.cpp b/ydb/core/persqueue/writer/writer.cpp
index 5fac083b6c6d..9e1bdf721e50 100644
--- a/ydb/core/persqueue/writer/writer.cpp
+++ b/ydb/core/persqueue/writer/writer.cpp
@@ -33,7 +33,7 @@ namespace NKikimr::NPQ {
 #define INFO(message)  LOG_INFO_S(*NActors::TlsActivationContext, NKikimrServices::PQ_WRITE_PROXY, LOG_PREFIX << message);
 #define ERROR(message) LOG_ERROR_S(*NActors::TlsActivationContext, NKikimrServices::PQ_WRITE_PROXY, LOG_PREFIX << message);
 
-static const ui64 WRITE_BLOCK_SIZE = 4_KB;    
+static const ui64 WRITE_BLOCK_SIZE = 4_KB;
 
 TString TEvPartitionWriter::TEvInitResult::TSuccess::ToString() const {
     auto out = TStringBuilder() << "Success {"
@@ -106,7 +106,7 @@ class TPartitionWriter: public TActorBootstrapped, private TRl
     using EErrorCode = TEvPartitionWriter::TEvWriteResponse::EErrorCode;
 
     static constexpr size_t MAX_QUOTA_INFLIGHT = 3;
-    
+
     static void FillHeader(NKikimrClient::TPersQueuePartitionRequest& request,
             ui32 partitionId, const TActorId& pipeClient)
     {
@@ -272,12 +272,9 @@ class TPartitionWriter: public TActorBootstrapped, private TRl
     void GetOwnership() {
         auto ev = MakeRequest(PartitionId, PipeClient);
 
-        auto& cmd = *ev->Record.MutablePartitionRequest()->MutableCmdGetOwnership();
-        if (Opts.UseDeduplication) {
-            cmd.SetOwner(SourceId);
-        } else {
-            cmd.SetOwner(CreateGuidAsString());
-        }
+        auto& request = *ev->Record.MutablePartitionRequest();
+        auto& cmd = *request.MutableCmdGetOwnership();
+        cmd.SetOwner(SourceId);
         cmd.SetForce(true);
 
         NTabletPipe::SendData(SelfId(), PipeClient, ev.Release());
@@ -470,7 +467,7 @@ class TPartitionWriter: public TActorBootstrapped, private TRl
             return;
         }
 
-        const bool checkQuota = Opts.CheckRequestUnits() && IsQuotaRequired();
+        const bool needToRequestQuota = Opts.CheckRequestUnits() && IsQuotaRequired();
 
         size_t processed = 0;
         PendingQuotaAmount = 0;
@@ -490,23 +487,23 @@ class TPartitionWriter: public TActorBootstrapped, private TRl
             cmd.SetSize(it->second.ByteSize());
             cmd.SetLastRequest(false);
 
-            if (checkQuota) {
+            if (needToRequestQuota) {
                 ++processed;
-                PendingQuotaAmount += CalcRuConsumption(it->second.ByteSize());
+                PendingQuotaAmount += CalcRuConsumption(it->second.ByteSize()) + (it->second.GetPartitionRequest().GetMeteringV2Enabled() ? 1 : 0);
                 PendingQuota.emplace_back(it->first);
             }
 
             NTabletPipe::SendData(SelfId(), PipeClient, ev.Release());
 
-            PendingReserve.emplace(it->first, RequestHolder{ std::move(it->second), checkQuota });
+            PendingReserve.emplace(it->first, RequestHolder{ std::move(it->second), needToRequestQuota });
             Pending.erase(it);
 
-            if (checkQuota && processed == MAX_QUOTA_INFLIGHT) {
+            if (needToRequestQuota && processed == MAX_QUOTA_INFLIGHT) {
                 break;
             }
         }
 
-        if (checkQuota) {
+        if (needToRequestQuota) {
             RequestDataQuota(PendingQuotaAmount, ctx);
         }
     }
@@ -527,18 +524,18 @@ class TPartitionWriter: public TActorBootstrapped, private TRl
 
         ReceivedReserve.emplace(it->first, std::move(it->second));
 
-        ProcessQuota();
+        ProcessQuotaAndWrite();
     }
 
-    void ProcessQuota() {
+    void ProcessQuotaAndWrite() {
         auto rit = ReceivedReserve.begin();
         auto qit = ReceivedQuota.begin();
 
         while(rit != ReceivedReserve.end() && qit != ReceivedQuota.end()) {
             auto& request = rit->second;
             const auto cookie = rit->first;
-            TRACE("processing quota for request cookie=" << cookie << ", QuotaChecked=" << request.QuotaChecked << ", QuotaAccepted=" << request.QuotaAccepted);
-            if (!request.QuotaChecked || request.QuotaAccepted) {
+            TRACE("processing quota for request cookie=" << cookie << ", QuotaCheckEnabled=" << request.QuotaCheckEnabled << ", QuotaAccepted=" << request.QuotaAccepted);
+            if (!request.QuotaCheckEnabled || request.QuotaAccepted) {
                 // A situation when a quota was not requested or was received while waiting for a reserve
                 Write(cookie, std::move(request.Request));
                 ReceivedReserve.erase(rit++);
@@ -559,8 +556,8 @@ class TPartitionWriter: public TActorBootstrapped, private TRl
         while(rit != ReceivedReserve.end()) {
             auto& request = rit->second;
             const auto cookie = rit->first;
-            TRACE("processing quota for request cookie=" << cookie << ", QuotaChecked=" << request.QuotaChecked << ", QuotaAccepted=" << request.QuotaAccepted);
-            if (request.QuotaChecked && !request.QuotaAccepted) {
+            TRACE("processing quota for request cookie=" << cookie << ", QuotaCheckEnabled=" << request.QuotaCheckEnabled << ", QuotaAccepted=" << request.QuotaAccepted);
+            if (request.QuotaCheckEnabled && !request.QuotaAccepted) {
                 break;
             }
 
@@ -587,27 +584,6 @@ class TPartitionWriter: public TActorBootstrapped, private TRl
         ReceivedQuota.clear();
     }
 
-    void Write(ui64 cookie) {
-        if (PendingReserve.empty()) {
-            ERROR("The state of the PartitionWriter is invalid. PendingReserve is empty. Marker #02");
-            Disconnected(EErrorCode::InternalError);
-            return;
-        }
-        auto it = PendingReserve.begin();
-
-        auto cookieReserveValid = (it->first == cookie);
-        auto cookieWriteValid = (PendingWrite.empty() || PendingWrite.back() < cookie);
-        if (!(cookieReserveValid && cookieWriteValid)) {
-            ERROR("The cookie of Write is invalid. Cookie=" << cookie);
-            Disconnected(EErrorCode::InternalError);
-            return;
-        }
-
-        Write(cookie, std::move(it->second.Request));
-
-        PendingReserve.erase(it);
-    }
-
     void Write(ui64 cookie, NKikimrClient::TPersQueueRequest&& req) {
         auto ev = MakeHolder();
         ev->Record = std::move(req);
@@ -651,24 +627,26 @@ class TPartitionWriter: public TActorBootstrapped, private TRl
                 return WriteResult(EErrorCode::InternalError, error, std::move(record));
             }
 
-            WriteAccepted(cookie);
-
-            if (PendingReserve.empty()) {
-                ERROR("The state of the PartitionWriter is invalid. PendingReserve is empty. Marker #03");
+            auto cookieWriteValid = (PendingWrite.empty() || PendingWrite.back() < cookie);
+            if (!cookieWriteValid) {
+                ERROR("The cookie of Write is invalid. Cookie=" << cookie);
                 Disconnected(EErrorCode::InternalError);
                 return;
             }
+
+            WriteAccepted(cookie);
             auto it = PendingReserve.begin();
             auto& holder = it->second;
 
-            if ((holder.QuotaChecked && !holder.QuotaAccepted)|| !ReceivedReserve.empty()) {
+            if ((holder.QuotaCheckEnabled && !holder.QuotaAccepted) || !ReceivedReserve.empty()) {
                 // There may be two situations:
                 // - a quota has been requested, and the quota has not been received yet
                 // - the quota was not requested, for example, due to a change in the metering option, but the previous quota requests have not yet been processed
                 EnqueueReservedAndProcess(cookie);
             } else {
-                Write(cookie);
+                Write(cookie, std::move(it->second.Request));
             }
+            PendingReserve.erase(it);
         } else {
             if (PendingWrite.empty()) {
                 return WriteResult(EErrorCode::InternalError, "Unexpected Write response", std::move(record));
@@ -739,17 +717,15 @@ class TPartitionWriter: public TActorBootstrapped, private TRl
             case EWakeupTag::RlAllowed:
                 ReceivedQuota.insert(ReceivedQuota.end(), PendingQuota.begin(), PendingQuota.end());
                 PendingQuota.clear();
-
-                ProcessQuota();                
-
+                ProcessQuotaAndWrite();
                 break;
 
             case EWakeupTag::RlNoResource:
-                // Re-requesting the quota. We do this until we get a quota. 
+                // Re-requesting the quota. We do this until we get a quota.
                 // We do not request a quota with a long waiting time because the writer may already be a destroyer, and the quota will still be waiting to be received.
                 RequestDataQuota(PendingQuotaAmount, ctx);
                 break;
-            
+
             default:
                 Y_VERIFY_DEBUG_S(false, "Unsupported tag: " << static_cast(tag));
         }
@@ -770,7 +746,7 @@ class TPartitionWriter: public TActorBootstrapped, private TRl
         , TabletId(tabletId)
         , PartitionId(partitionId)
         , ExpectedGeneration(opts.ExpectedGeneration)
-        , SourceId(opts.SourceId)
+        , SourceId(opts.UseDeduplication ? opts.SourceId : CreateGuidAsString())
         , Opts(opts)
     {
         if (Opts.MeteringMode) {
@@ -829,12 +805,12 @@ class TPartitionWriter: public TActorBootstrapped, private TRl
 
     struct RequestHolder {
         NKikimrClient::TPersQueueRequest Request;
-        bool QuotaChecked;
+        bool QuotaCheckEnabled;
         bool QuotaAccepted;
 
-        RequestHolder(NKikimrClient::TPersQueueRequest&& request, bool quotaChecked)
+        RequestHolder(NKikimrClient::TPersQueueRequest&& request, bool quotaCheckEnabled)
             : Request(std::move(request))
-            , QuotaChecked(quotaChecked)
+            , QuotaCheckEnabled(quotaCheckEnabled)
             , QuotaAccepted(false) {
         }
     };
@@ -856,7 +832,7 @@ class TPartitionWriter: public TActorBootstrapped, private TRl
 IActor* CreatePartitionWriter(const TActorId& client,
                              // const NKikimrSchemeOp::TPersQueueGroupDescription& config,
                               ui64 tabletId,
-                              ui32 partitionId, 
+                              ui32 partitionId,
                               const TPartitionWriterOpts& opts) {
     return new TPartitionWriter(client, tabletId, partitionId, opts);
 }
diff --git a/ydb/core/persqueue/ya.make b/ydb/core/persqueue/ya.make
index 8000bbe68ae2..919301a5d3d0 100644
--- a/ydb/core/persqueue/ya.make
+++ b/ydb/core/persqueue/ya.make
@@ -59,6 +59,7 @@ PEERDIR(
     ydb/library/logger
     ydb/library/persqueue/counter_time_keeper
     ydb/library/persqueue/topic_parser
+    ydb/library/protobuf_printer
     ydb/public/lib/base
     ydb/public/sdk/cpp/client/ydb_persqueue_core
 )
diff --git a/ydb/core/pgproxy/CMakeLists.darwin-arm64.txt b/ydb/core/pgproxy/CMakeLists.darwin-arm64.txt
index d80e827506bc..543188333056 100644
--- a/ydb/core/pgproxy/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/pgproxy/CMakeLists.darwin-arm64.txt
@@ -22,6 +22,14 @@ target_link_libraries(ydb-core-pgproxy PUBLIC
   ydb-core-raw_socket
 )
 target_sources(ydb-core-pgproxy PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_connection.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_listener.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_log_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_log.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_types.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_stream.h
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_connection.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_types.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy.cpp
diff --git a/ydb/core/pgproxy/CMakeLists.darwin-x86_64.txt b/ydb/core/pgproxy/CMakeLists.darwin-x86_64.txt
index d80e827506bc..543188333056 100644
--- a/ydb/core/pgproxy/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/pgproxy/CMakeLists.darwin-x86_64.txt
@@ -22,6 +22,14 @@ target_link_libraries(ydb-core-pgproxy PUBLIC
   ydb-core-raw_socket
 )
 target_sources(ydb-core-pgproxy PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_connection.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_listener.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_log_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_log.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_types.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_stream.h
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_connection.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_types.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy.cpp
diff --git a/ydb/core/pgproxy/CMakeLists.linux-aarch64.txt b/ydb/core/pgproxy/CMakeLists.linux-aarch64.txt
index 8d6571d09848..5bf6c9470520 100644
--- a/ydb/core/pgproxy/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/pgproxy/CMakeLists.linux-aarch64.txt
@@ -23,6 +23,14 @@ target_link_libraries(ydb-core-pgproxy PUBLIC
   ydb-core-raw_socket
 )
 target_sources(ydb-core-pgproxy PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_connection.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_listener.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_log_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_log.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_types.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_stream.h
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_connection.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_types.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy.cpp
diff --git a/ydb/core/pgproxy/CMakeLists.linux-x86_64.txt b/ydb/core/pgproxy/CMakeLists.linux-x86_64.txt
index 8d6571d09848..5bf6c9470520 100644
--- a/ydb/core/pgproxy/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/pgproxy/CMakeLists.linux-x86_64.txt
@@ -23,6 +23,14 @@ target_link_libraries(ydb-core-pgproxy PUBLIC
   ydb-core-raw_socket
 )
 target_sources(ydb-core-pgproxy PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_connection.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_listener.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_log_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_log.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_types.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_stream.h
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_connection.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_types.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy.cpp
diff --git a/ydb/core/pgproxy/CMakeLists.windows-x86_64.txt b/ydb/core/pgproxy/CMakeLists.windows-x86_64.txt
index d80e827506bc..543188333056 100644
--- a/ydb/core/pgproxy/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/pgproxy/CMakeLists.windows-x86_64.txt
@@ -22,6 +22,14 @@ target_link_libraries(ydb-core-pgproxy PUBLIC
   ydb-core-raw_socket
 )
 target_sources(ydb-core-pgproxy PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_connection.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_listener.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_log_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_log.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_types.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_stream.h
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_connection.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_types.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy.cpp
diff --git a/ydb/core/pgproxy/protos/CMakeLists.darwin-arm64.txt b/ydb/core/pgproxy/protos/CMakeLists.darwin-arm64.txt
index d186da46127d..7caf463fd095 100644
--- a/ydb/core/pgproxy/protos/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/pgproxy/protos/CMakeLists.darwin-arm64.txt
@@ -28,6 +28,9 @@ target_link_libraries(core-pgproxy-protos PUBLIC
 target_proto_messages(core-pgproxy-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/protos/pgproxy.proto
 )
+target_sources(core-pgproxy-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/pgproxy/protos/pgproxy.pb.h
+)
 target_proto_addincls(core-pgproxy-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/pgproxy/protos/CMakeLists.darwin-x86_64.txt b/ydb/core/pgproxy/protos/CMakeLists.darwin-x86_64.txt
index d186da46127d..7caf463fd095 100644
--- a/ydb/core/pgproxy/protos/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/pgproxy/protos/CMakeLists.darwin-x86_64.txt
@@ -28,6 +28,9 @@ target_link_libraries(core-pgproxy-protos PUBLIC
 target_proto_messages(core-pgproxy-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/protos/pgproxy.proto
 )
+target_sources(core-pgproxy-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/pgproxy/protos/pgproxy.pb.h
+)
 target_proto_addincls(core-pgproxy-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/pgproxy/protos/CMakeLists.linux-aarch64.txt b/ydb/core/pgproxy/protos/CMakeLists.linux-aarch64.txt
index 71c3d8adf545..cf045f59de59 100644
--- a/ydb/core/pgproxy/protos/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/pgproxy/protos/CMakeLists.linux-aarch64.txt
@@ -29,6 +29,9 @@ target_link_libraries(core-pgproxy-protos PUBLIC
 target_proto_messages(core-pgproxy-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/protos/pgproxy.proto
 )
+target_sources(core-pgproxy-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/pgproxy/protos/pgproxy.pb.h
+)
 target_proto_addincls(core-pgproxy-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/pgproxy/protos/CMakeLists.linux-x86_64.txt b/ydb/core/pgproxy/protos/CMakeLists.linux-x86_64.txt
index 71c3d8adf545..cf045f59de59 100644
--- a/ydb/core/pgproxy/protos/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/pgproxy/protos/CMakeLists.linux-x86_64.txt
@@ -29,6 +29,9 @@ target_link_libraries(core-pgproxy-protos PUBLIC
 target_proto_messages(core-pgproxy-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/protos/pgproxy.proto
 )
+target_sources(core-pgproxy-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/pgproxy/protos/pgproxy.pb.h
+)
 target_proto_addincls(core-pgproxy-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/pgproxy/protos/CMakeLists.windows-x86_64.txt b/ydb/core/pgproxy/protos/CMakeLists.windows-x86_64.txt
index d186da46127d..7caf463fd095 100644
--- a/ydb/core/pgproxy/protos/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/pgproxy/protos/CMakeLists.windows-x86_64.txt
@@ -28,6 +28,9 @@ target_link_libraries(core-pgproxy-protos PUBLIC
 target_proto_messages(core-pgproxy-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/protos/pgproxy.proto
 )
+target_sources(core-pgproxy-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/pgproxy/protos/pgproxy.pb.h
+)
 target_proto_addincls(core-pgproxy-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/pgproxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/pgproxy/ut/CMakeLists.darwin-arm64.txt
index e212cb277d93..3011832625ea 100644
--- a/ydb/core/pgproxy/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/pgproxy/ut/CMakeLists.darwin-arm64.txt
@@ -23,8 +23,6 @@ target_link_options(ydb-core-pgproxy-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-pgproxy-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_ut.cpp
@@ -54,6 +52,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/pgproxy/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/pgproxy/ut/CMakeLists.darwin-x86_64.txt
index 965cc5d674a7..8a5316b0643b 100644
--- a/ydb/core/pgproxy/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/pgproxy/ut/CMakeLists.darwin-x86_64.txt
@@ -24,8 +24,6 @@ target_link_options(ydb-core-pgproxy-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-pgproxy-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_ut.cpp
@@ -55,6 +53,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/pgproxy/ut/CMakeLists.linux-aarch64.txt b/ydb/core/pgproxy/ut/CMakeLists.linux-aarch64.txt
index 6e752138af60..ef845cc42cef 100644
--- a/ydb/core/pgproxy/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/pgproxy/ut/CMakeLists.linux-aarch64.txt
@@ -26,9 +26,6 @@ target_link_options(ydb-core-pgproxy-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-pgproxy-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_ut.cpp
@@ -58,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/pgproxy/ut/CMakeLists.linux-x86_64.txt b/ydb/core/pgproxy/ut/CMakeLists.linux-x86_64.txt
index 72deda1b9472..a69c361ddba0 100644
--- a/ydb/core/pgproxy/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/pgproxy/ut/CMakeLists.linux-x86_64.txt
@@ -27,9 +27,6 @@ target_link_options(ydb-core-pgproxy-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-pgproxy-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/pgproxy/pg_proxy_ut.cpp
@@ -59,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/pgproxy/ut/CMakeLists.windows-x86_64.txt b/ydb/core/pgproxy/ut/CMakeLists.windows-x86_64.txt
index eae0e77e40bf..95717e655f53 100644
--- a/ydb/core/pgproxy/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/pgproxy/ut/CMakeLists.windows-x86_64.txt
@@ -48,6 +48,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/protos/CMakeLists.darwin-arm64.txt b/ydb/core/protos/CMakeLists.darwin-arm64.txt
index e7effd7204b1..51b7d6db4f04 100644
--- a/ydb/core/protos/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/protos/CMakeLists.darwin-arm64.txt
@@ -1756,6 +1756,270 @@ target_proto_messages(ydb-core-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/protos/scheme_board_mon.proto
   ${CMAKE_SOURCE_DIR}/ydb/core/protos/sys_view.proto
 )
+target_sources(ydb-core-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/alloc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/alloc.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/base.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/base.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bind_channel_storage_pool.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bind_channel_storage_pool.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base3.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base3.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk_color.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk_color.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_distributed_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_distributed_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_internal.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_internal.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blockstore_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blockstore_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/db_metadata_cache.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/db_metadata_cache.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/feature_flags.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/feature_flags.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/filestore_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/filestore_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bootstrapper.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bootstrapper.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/change_exchange.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/change_exchange.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/channel_purpose.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/channel_purpose.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/cms.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/cms.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config_units.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config_units.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_base.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_base.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_tenant.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_tenant.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_allocator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_allocator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_blob_depot.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_blob_depot.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_bs_controller.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_bs_controller.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_cms.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_cms.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_coordinator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_coordinator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_columnshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_columnshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_datashard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_datashard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_hive.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_hive.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_kesus.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_kesus.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_keyvalue.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_keyvalue.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_pq.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_pq.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_replication.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_replication.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_schemeshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_schemeshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sequenceshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sequenceshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_statistics_aggregator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_statistics_aggregator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sysview_processor.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sysview_processor.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_testshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_testshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_proxy.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_proxy.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_mediator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_mediator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/database_basic_sausage_metainfo.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/database_basic_sausage_metainfo.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/data_events.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/data_events.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_load.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_load.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/drivemodel.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/drivemodel.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/export.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/export.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/external_sources.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/external_sources.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_tx_scheme.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_tx_scheme.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_scheme_op.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_scheme_op.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/health.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/health.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/hive.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/hive.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/http_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/http_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/import.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/import.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/index_builder.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/index_builder.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kesus.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kesus.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_physical.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_physical.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_stats.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_stats.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/labeled_counters.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/labeled_counters.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/load_test.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/load_test.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/local.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/local.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/long_tx_service.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/long_tx_service.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/maintenance.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/maintenance.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/metrics.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/metrics.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/minikql_engine.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/minikql_engine.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/mon.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/mon.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_health.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_health.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_kv.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_kv.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_pq.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_pq.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/netclassifier.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/netclassifier.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_broker.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_broker.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_limits.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_limits.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/profiler.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/profiler.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/query_stats.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/query_stats.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/replication.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/replication.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/resource_broker.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/resource_broker.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_log.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_log.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_metadata.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_metadata.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_operation.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_operation.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/serverless_proxy_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/serverless_proxy_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/shared_cache.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/shared_cache.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sqs.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sqs.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/follower_group.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/follower_group.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ssa.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ssa.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statestorage.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statestorage.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statistics.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statistics.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/stream.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/stream.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/subdomains.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/subdomains.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_service_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_service_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_stats.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_stats.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters_aggregator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters_aggregator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_database.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_database.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_pipe.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_pipe.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tracing_signals.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tracing_signals.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tx.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tx.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_pool.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_pool.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_slot_broker.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_slot_broker.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/test_shard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/test_shard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tracing.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tracing.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_whiteboard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_whiteboard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_columnshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_columnshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_datashard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_datashard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_mediator_timecast.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_mediator_timecast.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_proxy.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_proxy.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_scheme.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_scheme.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_sequenceshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_sequenceshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pdiskfit.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pdiskfit.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pqconfig.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pqconfig.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/auth.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/auth.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/key.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/key.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_pq_old.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_pq_old.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_status_proxy.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_status_proxy.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_result_set_old.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_result_set_old.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_table_impl.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_table_impl.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board_mon.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board_mon.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sys_view.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sys_view.grpc.pb.h
+)
 generate_enum_serilization(ydb-core-protos
   ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.pb.h
   INCLUDE_HEADERS
diff --git a/ydb/core/protos/CMakeLists.darwin-x86_64.txt b/ydb/core/protos/CMakeLists.darwin-x86_64.txt
index e7effd7204b1..51b7d6db4f04 100644
--- a/ydb/core/protos/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/protos/CMakeLists.darwin-x86_64.txt
@@ -1756,6 +1756,270 @@ target_proto_messages(ydb-core-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/protos/scheme_board_mon.proto
   ${CMAKE_SOURCE_DIR}/ydb/core/protos/sys_view.proto
 )
+target_sources(ydb-core-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/alloc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/alloc.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/base.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/base.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bind_channel_storage_pool.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bind_channel_storage_pool.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base3.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base3.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk_color.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk_color.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_distributed_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_distributed_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_internal.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_internal.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blockstore_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blockstore_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/db_metadata_cache.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/db_metadata_cache.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/feature_flags.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/feature_flags.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/filestore_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/filestore_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bootstrapper.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bootstrapper.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/change_exchange.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/change_exchange.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/channel_purpose.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/channel_purpose.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/cms.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/cms.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config_units.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config_units.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_base.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_base.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_tenant.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_tenant.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_allocator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_allocator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_blob_depot.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_blob_depot.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_bs_controller.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_bs_controller.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_cms.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_cms.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_coordinator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_coordinator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_columnshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_columnshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_datashard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_datashard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_hive.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_hive.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_kesus.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_kesus.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_keyvalue.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_keyvalue.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_pq.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_pq.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_replication.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_replication.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_schemeshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_schemeshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sequenceshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sequenceshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_statistics_aggregator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_statistics_aggregator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sysview_processor.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sysview_processor.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_testshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_testshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_proxy.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_proxy.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_mediator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_mediator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/database_basic_sausage_metainfo.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/database_basic_sausage_metainfo.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/data_events.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/data_events.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_load.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_load.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/drivemodel.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/drivemodel.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/export.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/export.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/external_sources.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/external_sources.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_tx_scheme.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_tx_scheme.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_scheme_op.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_scheme_op.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/health.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/health.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/hive.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/hive.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/http_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/http_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/import.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/import.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/index_builder.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/index_builder.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kesus.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kesus.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_physical.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_physical.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_stats.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_stats.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/labeled_counters.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/labeled_counters.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/load_test.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/load_test.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/local.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/local.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/long_tx_service.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/long_tx_service.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/maintenance.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/maintenance.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/metrics.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/metrics.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/minikql_engine.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/minikql_engine.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/mon.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/mon.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_health.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_health.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_kv.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_kv.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_pq.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_pq.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/netclassifier.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/netclassifier.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_broker.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_broker.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_limits.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_limits.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/profiler.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/profiler.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/query_stats.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/query_stats.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/replication.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/replication.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/resource_broker.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/resource_broker.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_log.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_log.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_metadata.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_metadata.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_operation.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_operation.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/serverless_proxy_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/serverless_proxy_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/shared_cache.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/shared_cache.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sqs.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sqs.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/follower_group.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/follower_group.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ssa.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ssa.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statestorage.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statestorage.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statistics.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statistics.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/stream.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/stream.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/subdomains.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/subdomains.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_service_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_service_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_stats.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_stats.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters_aggregator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters_aggregator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_database.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_database.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_pipe.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_pipe.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tracing_signals.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tracing_signals.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tx.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tx.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_pool.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_pool.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_slot_broker.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_slot_broker.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/test_shard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/test_shard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tracing.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tracing.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_whiteboard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_whiteboard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_columnshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_columnshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_datashard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_datashard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_mediator_timecast.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_mediator_timecast.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_proxy.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_proxy.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_scheme.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_scheme.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_sequenceshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_sequenceshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pdiskfit.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pdiskfit.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pqconfig.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pqconfig.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/auth.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/auth.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/key.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/key.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_pq_old.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_pq_old.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_status_proxy.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_status_proxy.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_result_set_old.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_result_set_old.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_table_impl.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_table_impl.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board_mon.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board_mon.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sys_view.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sys_view.grpc.pb.h
+)
 generate_enum_serilization(ydb-core-protos
   ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.pb.h
   INCLUDE_HEADERS
diff --git a/ydb/core/protos/CMakeLists.linux-aarch64.txt b/ydb/core/protos/CMakeLists.linux-aarch64.txt
index 5dec083df11e..ff9451308fe8 100644
--- a/ydb/core/protos/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/protos/CMakeLists.linux-aarch64.txt
@@ -1757,6 +1757,270 @@ target_proto_messages(ydb-core-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/protos/scheme_board_mon.proto
   ${CMAKE_SOURCE_DIR}/ydb/core/protos/sys_view.proto
 )
+target_sources(ydb-core-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/alloc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/alloc.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/base.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/base.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bind_channel_storage_pool.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bind_channel_storage_pool.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base3.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base3.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk_color.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk_color.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_distributed_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_distributed_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_internal.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_internal.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blockstore_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blockstore_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/db_metadata_cache.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/db_metadata_cache.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/feature_flags.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/feature_flags.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/filestore_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/filestore_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bootstrapper.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bootstrapper.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/change_exchange.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/change_exchange.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/channel_purpose.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/channel_purpose.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/cms.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/cms.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config_units.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config_units.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_base.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_base.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_tenant.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_tenant.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_allocator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_allocator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_blob_depot.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_blob_depot.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_bs_controller.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_bs_controller.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_cms.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_cms.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_coordinator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_coordinator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_columnshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_columnshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_datashard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_datashard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_hive.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_hive.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_kesus.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_kesus.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_keyvalue.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_keyvalue.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_pq.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_pq.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_replication.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_replication.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_schemeshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_schemeshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sequenceshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sequenceshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_statistics_aggregator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_statistics_aggregator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sysview_processor.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sysview_processor.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_testshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_testshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_proxy.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_proxy.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_mediator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_mediator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/database_basic_sausage_metainfo.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/database_basic_sausage_metainfo.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/data_events.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/data_events.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_load.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_load.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/drivemodel.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/drivemodel.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/export.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/export.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/external_sources.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/external_sources.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_tx_scheme.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_tx_scheme.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_scheme_op.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_scheme_op.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/health.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/health.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/hive.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/hive.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/http_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/http_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/import.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/import.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/index_builder.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/index_builder.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kesus.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kesus.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_physical.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_physical.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_stats.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_stats.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/labeled_counters.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/labeled_counters.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/load_test.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/load_test.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/local.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/local.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/long_tx_service.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/long_tx_service.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/maintenance.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/maintenance.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/metrics.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/metrics.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/minikql_engine.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/minikql_engine.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/mon.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/mon.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_health.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_health.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_kv.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_kv.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_pq.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_pq.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/netclassifier.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/netclassifier.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_broker.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_broker.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_limits.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_limits.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/profiler.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/profiler.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/query_stats.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/query_stats.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/replication.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/replication.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/resource_broker.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/resource_broker.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_log.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_log.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_metadata.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_metadata.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_operation.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_operation.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/serverless_proxy_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/serverless_proxy_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/shared_cache.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/shared_cache.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sqs.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sqs.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/follower_group.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/follower_group.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ssa.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ssa.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statestorage.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statestorage.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statistics.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statistics.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/stream.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/stream.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/subdomains.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/subdomains.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_service_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_service_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_stats.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_stats.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters_aggregator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters_aggregator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_database.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_database.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_pipe.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_pipe.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tracing_signals.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tracing_signals.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tx.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tx.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_pool.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_pool.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_slot_broker.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_slot_broker.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/test_shard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/test_shard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tracing.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tracing.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_whiteboard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_whiteboard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_columnshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_columnshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_datashard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_datashard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_mediator_timecast.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_mediator_timecast.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_proxy.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_proxy.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_scheme.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_scheme.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_sequenceshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_sequenceshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pdiskfit.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pdiskfit.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pqconfig.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pqconfig.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/auth.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/auth.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/key.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/key.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_pq_old.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_pq_old.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_status_proxy.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_status_proxy.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_result_set_old.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_result_set_old.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_table_impl.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_table_impl.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board_mon.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board_mon.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sys_view.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sys_view.grpc.pb.h
+)
 generate_enum_serilization(ydb-core-protos
   ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.pb.h
   INCLUDE_HEADERS
diff --git a/ydb/core/protos/CMakeLists.linux-x86_64.txt b/ydb/core/protos/CMakeLists.linux-x86_64.txt
index 5dec083df11e..ff9451308fe8 100644
--- a/ydb/core/protos/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/protos/CMakeLists.linux-x86_64.txt
@@ -1757,6 +1757,270 @@ target_proto_messages(ydb-core-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/protos/scheme_board_mon.proto
   ${CMAKE_SOURCE_DIR}/ydb/core/protos/sys_view.proto
 )
+target_sources(ydb-core-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/alloc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/alloc.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/base.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/base.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bind_channel_storage_pool.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bind_channel_storage_pool.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base3.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base3.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk_color.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk_color.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_distributed_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_distributed_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_internal.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_internal.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blockstore_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blockstore_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/db_metadata_cache.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/db_metadata_cache.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/feature_flags.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/feature_flags.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/filestore_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/filestore_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bootstrapper.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bootstrapper.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/change_exchange.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/change_exchange.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/channel_purpose.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/channel_purpose.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/cms.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/cms.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config_units.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config_units.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_base.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_base.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_tenant.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_tenant.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_allocator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_allocator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_blob_depot.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_blob_depot.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_bs_controller.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_bs_controller.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_cms.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_cms.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_coordinator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_coordinator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_columnshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_columnshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_datashard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_datashard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_hive.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_hive.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_kesus.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_kesus.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_keyvalue.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_keyvalue.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_pq.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_pq.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_replication.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_replication.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_schemeshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_schemeshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sequenceshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sequenceshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_statistics_aggregator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_statistics_aggregator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sysview_processor.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sysview_processor.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_testshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_testshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_proxy.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_proxy.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_mediator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_mediator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/database_basic_sausage_metainfo.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/database_basic_sausage_metainfo.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/data_events.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/data_events.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_load.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_load.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/drivemodel.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/drivemodel.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/export.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/export.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/external_sources.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/external_sources.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_tx_scheme.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_tx_scheme.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_scheme_op.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_scheme_op.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/health.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/health.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/hive.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/hive.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/http_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/http_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/import.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/import.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/index_builder.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/index_builder.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kesus.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kesus.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_physical.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_physical.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_stats.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_stats.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/labeled_counters.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/labeled_counters.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/load_test.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/load_test.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/local.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/local.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/long_tx_service.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/long_tx_service.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/maintenance.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/maintenance.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/metrics.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/metrics.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/minikql_engine.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/minikql_engine.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/mon.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/mon.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_health.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_health.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_kv.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_kv.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_pq.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_pq.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/netclassifier.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/netclassifier.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_broker.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_broker.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_limits.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_limits.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/profiler.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/profiler.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/query_stats.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/query_stats.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/replication.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/replication.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/resource_broker.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/resource_broker.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_log.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_log.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_metadata.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_metadata.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_operation.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_operation.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/serverless_proxy_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/serverless_proxy_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/shared_cache.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/shared_cache.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sqs.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sqs.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/follower_group.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/follower_group.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ssa.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ssa.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statestorage.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statestorage.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statistics.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statistics.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/stream.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/stream.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/subdomains.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/subdomains.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_service_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_service_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_stats.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_stats.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters_aggregator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters_aggregator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_database.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_database.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_pipe.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_pipe.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tracing_signals.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tracing_signals.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tx.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tx.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_pool.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_pool.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_slot_broker.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_slot_broker.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/test_shard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/test_shard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tracing.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tracing.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_whiteboard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_whiteboard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_columnshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_columnshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_datashard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_datashard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_mediator_timecast.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_mediator_timecast.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_proxy.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_proxy.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_scheme.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_scheme.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_sequenceshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_sequenceshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pdiskfit.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pdiskfit.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pqconfig.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pqconfig.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/auth.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/auth.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/key.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/key.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_pq_old.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_pq_old.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_status_proxy.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_status_proxy.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_result_set_old.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_result_set_old.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_table_impl.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_table_impl.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board_mon.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board_mon.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sys_view.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sys_view.grpc.pb.h
+)
 generate_enum_serilization(ydb-core-protos
   ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.pb.h
   INCLUDE_HEADERS
diff --git a/ydb/core/protos/CMakeLists.windows-x86_64.txt b/ydb/core/protos/CMakeLists.windows-x86_64.txt
index e7effd7204b1..51b7d6db4f04 100644
--- a/ydb/core/protos/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/protos/CMakeLists.windows-x86_64.txt
@@ -1756,6 +1756,270 @@ target_proto_messages(ydb-core-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/protos/scheme_board_mon.proto
   ${CMAKE_SOURCE_DIR}/ydb/core/protos/sys_view.proto
 )
+target_sources(ydb-core-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/alloc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/alloc.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/base.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/base.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bind_channel_storage_pool.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bind_channel_storage_pool.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blob_depot_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base3.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_base3.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk_color.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_disk_color.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_distributed_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_distributed_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_internal.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_vdisk_internal.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blockstore_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/blockstore_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/db_metadata_cache.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/db_metadata_cache.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/feature_flags.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/feature_flags.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/filestore_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/filestore_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bootstrapper.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/bootstrapper.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/change_exchange.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/change_exchange.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/channel_purpose.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/channel_purpose.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/cms.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/cms.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config_units.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/config_units.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_base.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_base.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_tenant.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/console_tenant.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_allocator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_allocator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_blob_depot.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_blob_depot.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_bs_controller.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_bs_controller.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_cms.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_cms.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_coordinator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_coordinator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_columnshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_columnshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_datashard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_datashard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_hive.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_hive.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_kesus.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_kesus.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_keyvalue.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_keyvalue.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_pq.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_pq.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_replication.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_replication.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_schemeshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_schemeshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sequenceshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sequenceshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_statistics_aggregator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_statistics_aggregator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sysview_processor.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_sysview_processor.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_testshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_testshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_proxy.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_tx_proxy.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_mediator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters_mediator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/counters.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/database_basic_sausage_metainfo.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/database_basic_sausage_metainfo.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/data_events.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/data_events.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_load.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/datashard_load.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/drivemodel.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/drivemodel.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/export.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/export.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/external_sources.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/external_sources.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_tx_scheme.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_tx_scheme.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_scheme_op.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/flat_scheme_op.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/health.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/health.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/hive.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/hive.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/http_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/http_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/import.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/import.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/index_builder.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/index_builder.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kesus.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kesus.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_physical.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_physical.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_stats.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp_stats.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/kqp.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/labeled_counters.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/labeled_counters.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/load_test.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/load_test.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/local.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/local.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/long_tx_service.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/long_tx_service.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/maintenance.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/maintenance.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/metrics.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/metrics.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/minikql_engine.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/minikql_engine.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/mon.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/mon.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_health.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_health.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_kv.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_kv.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_pq.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/msgbus_pq.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/netclassifier.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/netclassifier.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_broker.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_broker.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_limits.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_limits.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/profiler.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/profiler.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/query_stats.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/query_stats.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/replication.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/replication.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/resource_broker.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/resource_broker.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_log.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_log.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_metadata.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_metadata.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_operation.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_type_operation.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/serverless_proxy_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/serverless_proxy_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/shared_cache.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/shared_cache.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sqs.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sqs.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/follower_group.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/follower_group.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ssa.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ssa.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statestorage.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statestorage.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statistics.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/statistics.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/stream.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/stream.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/subdomains.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/subdomains.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_service_config.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_service_config.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_stats.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/table_stats.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters_aggregator.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_counters_aggregator.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_database.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_database.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_pipe.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_pipe.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tracing_signals.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tracing_signals.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tx.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tablet_tx.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_pool.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_pool.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_slot_broker.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tenant_slot_broker.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/test_shard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/test_shard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tracing.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tracing.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_whiteboard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/node_whiteboard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_columnshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_columnshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_datashard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_datashard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_mediator_timecast.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_mediator_timecast.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_proxy.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_proxy.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_scheme.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_scheme.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_sequenceshard.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/tx_sequenceshard.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pdiskfit.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pdiskfit.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pqconfig.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/pqconfig.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/auth.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/auth.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/key.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/key.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_pq_old.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_pq_old.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_status_proxy.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/grpc_status_proxy.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_result_set_old.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_result_set_old.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_table_impl.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/ydb_table_impl.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board_mon.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/scheme_board_mon.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sys_view.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/protos/sys_view.grpc.pb.h
+)
 generate_enum_serilization(ydb-core-protos
   ${CMAKE_BINARY_DIR}/ydb/core/protos/blobstorage_pdisk_config.pb.h
   INCLUDE_HEADERS
diff --git a/ydb/core/protos/auth.proto b/ydb/core/protos/auth.proto
index 16ccc3a1b7cc..28ef5bc23ac1 100644
--- a/ydb/core/protos/auth.proto
+++ b/ydb/core/protos/auth.proto
@@ -49,6 +49,7 @@ message TAuthConfig {
     optional bool UseAccessServiceApiKey = 76 [default = false]; // Use IAM ApiKey
     optional string AsSignatureExpireTime = 77 [default = "1m"];
     optional bool UseBuiltinDomain = 78 [default = true];
+    optional string CertificateAuthenticationDomain = 80 [default = "cert"];
 }
 
 message TUserRegistryConfig {
@@ -98,7 +99,7 @@ message TLdapAuthentication {
         optional TCertRequire CertRequire = 3 [default = DEMAND];
     }
 
-    optional string Host = 1;
+    optional string Host = 1; // DEPRECATED: Use Hosts instead it
     optional uint32 Port = 2;
     required string BaseDn = 3;
     required string BindDn = 4;
@@ -107,4 +108,6 @@ message TLdapAuthentication {
     optional string SearchAttribute = 7;
     optional TUseTls UseTls = 8;
     optional string RequestedGroupAttribute = 9;
+    repeated string Hosts = 10;
+    optional string Scheme = 11 [default = "ldap"];
 }
diff --git a/ydb/core/protos/blobstorage.proto b/ydb/core/protos/blobstorage.proto
index a37a468b331f..6ebe3305e7d1 100644
--- a/ydb/core/protos/blobstorage.proto
+++ b/ydb/core/protos/blobstorage.proto
@@ -8,6 +8,7 @@ import "ydb/core/protos/blobstorage_pdisk_config.proto";
 import "ydb/core/protos/blobstorage_config.proto";
 import "ydb/core/protos/blobstorage_disk.proto";
 import "ydb/core/protos/blobstorage_disk_color.proto";
+import "ydb/core/protos/node_whiteboard.proto";
 
 package NKikimrBlobStorage;
 option java_package = "ru.yandex.kikimr.proto";
@@ -1341,6 +1342,7 @@ message TGroupMetrics {
 message TEvControllerGroupMetricsExchange {
     repeated TGroupMetrics GroupMetrics = 1;
     repeated fixed32 GroupsToQuery = 2; // filled in by entities asking BSC to report some metrics in return
+    optional NKikimrWhiteboard.TBSGroupStateInfo WhiteboardUpdate = 3;
 }
 
 message TEvNodeWardenQueryGroupInfo {
diff --git a/ydb/core/protos/blobstorage_config.proto b/ydb/core/protos/blobstorage_config.proto
index 08af614bd641..e250a5329179 100644
--- a/ydb/core/protos/blobstorage_config.proto
+++ b/ydb/core/protos/blobstorage_config.proto
@@ -575,6 +575,9 @@ message TConfigRequest {
 
     // is this command originated by self-heal decommission?
     bool IsSelfHealReasonDecommit = 12;
+
+    // requesting user identifier
+    string UserSID = 13;
 }
 
 enum ETriStateBool {
diff --git a/ydb/core/protos/cms.proto b/ydb/core/protos/cms.proto
index e8d9160f3332..0b929eb9ae09 100644
--- a/ydb/core/protos/cms.proto
+++ b/ydb/core/protos/cms.proto
@@ -77,6 +77,7 @@ message THostState {
   optional uint32        InterconnectPort = 7;
   repeated EMarker       Markers = 8;
   optional NActorsInterconnect.TNodeLocation Location = 9;
+  optional uint32        StartTimeSeconds = 10;
 }
 
 message TClusterState {
@@ -163,6 +164,7 @@ message TPermissionRequest {
   optional string MaintenanceTaskId = 10;
   // Evit vdisks before granting permission
   optional bool EvictVDisks = 11 [default = false];
+  optional int32 Priority = 12;
 }
 
 enum EExtensionType {
@@ -210,6 +212,7 @@ message TManageRequestResponse {
     optional bool    PartialPermissionAllowed = 4;
     optional string  Reason = 5;
     optional EAvailabilityMode AvailabilityMode = 6;
+    optional int32 Priority = 7;
   }
 
   optional TStatus           Status = 1;
diff --git a/ydb/core/protos/config.proto b/ydb/core/protos/config.proto
index 9f0f5a1e52a7..6c2fe1a961ef 100644
--- a/ydb/core/protos/config.proto
+++ b/ydb/core/protos/config.proto
@@ -1,6 +1,7 @@
 import "google/protobuf/descriptor.proto";
 import "ydb/library/actors/protos/interconnect.proto";
 import "ydb/core/protos/blobstorage.proto";
+import "ydb/core/protos/blobstorage_base3.proto";
 import "ydb/core/protos/blobstorage_config.proto";
 import "ydb/core/protos/blobstorage_vdisk_config.proto";
 import "ydb/core/protos/blobstorage_pdisk_config.proto";
@@ -229,6 +230,7 @@ message TDomainsConfig {
         repeated string DefaultUserSIDs = 4;
         optional string AllAuthenticatedUsers = 5;
         repeated string ViewerAllowedSIDs = 6;
+        repeated string RegisterDynamicNodeAllowedSIDs = 8;
 
         message TUser {
             optional string Name = 1;
@@ -279,6 +281,8 @@ message TBlobStorageConfig {
     }
 
     optional TAutoconfigSettings AutoconfigSettings = 6;
+
+    reserved 7;  // TCostMetricsSettings, moved to ICB
  }
 
 message TBlobStorageFormatConfig {
@@ -466,6 +470,10 @@ message TInterconnectConfig {
     optional NKikimrConfigUnits.TDuration LostConnectionDuration = 28;
     optional NKikimrConfigUnits.TDuration BatchPeriodDuration = 29;
 
+    optional NKikimrConfigUnits.TDuration FirstErrorSleep = 46;
+    optional NKikimrConfigUnits.TDuration MaxErrorSleep = 47;
+    optional double ErrorSleepRetryMultiplier = 48;
+
     optional uint32 OutgoingHandshakeInflightLimit = 43;
 }
 
@@ -618,6 +626,13 @@ message TConveyorConfig {
     optional uint32 WorkersCount = 2;
     optional uint32 QueueSizeLimit = 3;
     optional double DefaultFractionOfThreadsCount = 4;
+    optional double WorkersCountDouble = 5;
+}
+
+message TLimiterConfig {
+    optional bool Enabled = 1 [default = true];
+    optional uint64 Limit = 2;
+    optional uint64 PeriodMilliSeconds = 3 [default = 1000];
 }
 
 message TExternalIndexConfig {
@@ -1245,53 +1260,52 @@ message TImmediateControlsConfig {
             DefaultValue: 8388608 }];
     }
 
-    message TTracingControls {
-        message TSamplingThrottlingOptions {
-            message TThrottlingOptions {
-                optional uint64 MaxRatePerMinute = 1 [(ControlOptions) = {
-                    Description: "Maximum amount of traced requests per minute",
-                    MinValue: 0,
-                    MaxValue: 300,
-                    DefaultValue: 0,
-                }];
-                optional uint64 MaxBurst = 2 [(ControlOptions) = {
-                    Description: "Maximum burst of traced events",
-                    MinValue: 0,
-                    MaxValue: 300, 
-                    DefaultValue: 0,
-                }];
-            }
-
-            message TSamplingOptions {
-                optional uint64 PPM = 1 [(ControlOptions) = {
-                    Description: "Average amount of sampled requests per one million",
-                    MinValue: 0,
-                    MaxValue: 1000000,
-                    DefaultValue: 0,
-                }];
-                optional uint64 Level = 2 [(ControlOptions) = {
-                    Description: "Tracing level of sampled requests",
-                    MinValue: 1,
-                    MaxValue: 15,
-                    DefaultValue: 15,
-                }];
-            }
-
-            optional TSamplingOptions Sampling = 1;
-            optional TThrottlingOptions SampledThrottling = 2;
-            optional TThrottlingOptions ExternalThrottling = 3;
-        }
-
-        message TKeyValue {
-            optional TSamplingThrottlingOptions AcquireLock = 1;
-            optional TSamplingThrottlingOptions ExecuteTransaction = 2;
-            optional TSamplingThrottlingOptions Read = 3;
-            optional TSamplingThrottlingOptions ReadRange = 4;
-            optional TSamplingThrottlingOptions ListRange = 5;
-            optional TSamplingThrottlingOptions GetStorageChannelStatus = 6;
-        }
+    message TVDiskControls {
+        // SyncLog Data cutter options, not merged to 24-1
+        reserved 1;
+        reserved 2;
+        reserved 3;
+        reserved 4;
+        reserved 5;
+
+        optional uint64 BurstThresholdNsHDD = 6 [(ControlOptions) = {
+            Description: "Minumum operation queue size that is considered a burst, setting for HDD",
+            MinValue: 1,
+            MaxValue: 1000000000000,
+            DefaultValue: 200000000 }];
+        optional uint64 BurstThresholdNsSSD = 7 [(ControlOptions) = {
+            Description: "Minumum operation queue size that is considered a burst, setting for SSD",
+            MinValue: 1,
+            MaxValue: 1000000000000,
+            DefaultValue: 50000000 }];
+        optional uint64 BurstThresholdNsNVME = 8 [(ControlOptions) = {
+            Description: "Minumum operation queue size that is considered a burst, setting for NVME",
+            MinValue: 1,
+            MaxValue: 1000000000000,
+            DefaultValue: 32000000 }];
+        optional uint64 DiskTimeAvailableScaleHDD = 9 [(ControlOptions) = {
+            Description: "Scale coefficient DiskTimeAvailableScale metric, this parameter will be converted to float and divided by 1'000, setting for HDD",
+            MinValue: 1,
+            MaxValue: 1000000,
+            DefaultValue: 1000 }];
+        optional uint64 DiskTimeAvailableScaleSSD = 10 [(ControlOptions) = {
+            Description: "Scale coefficient for DiskTimeAvailableScale metric, this parameter will be converted to float and divided by 1'000, setting for SSD",
+            MinValue: 1,
+            MaxValue: 1000000,
+            DefaultValue: 1000 }];
+        optional uint64 DiskTimeAvailableScaleNVME = 11 [(ControlOptions) = {
+            Description: "Scale coefficient DiskTimeAvailableScale metric, this parameter will be converted to float and divided by 1'000, setting for NVME",
+            MinValue: 1,
+            MaxValue: 1000000,
+            DefaultValue: 1000 }];
+    }
 
-        optional TKeyValue KeyValue = 1;
+    message TTabletControls {
+        optional uint64 MaxCommitRedoMB = 1 [(ControlOptions) = {
+            Description: "Maximum redo size per commit in megabytes",
+            MinValue: 8,
+            MaxValue: 4096,
+            DefaultValue: 256 }];
     }
 
     optional TDataShardControls DataShardControls = 1;
@@ -1299,7 +1313,9 @@ message TImmediateControlsConfig {
     optional TCoordinatorControls CoordinatorControls = 3;
     optional TSchemeShardControls SchemeShardControls = 4;
     optional TTCMallocControls TCMallocControls = 5;
-    optional TTracingControls TracingControls = 6;
+    reserved 6;
+    optional TVDiskControls VDiskControls = 7;
+    optional TTabletControls TabletControls = 8;
 };
 
 message TMeteringConfig {
@@ -1477,7 +1493,6 @@ message TColumnShardConfig {
             TMinimalTablesCountPolicy MinimalTables = 1;
             TIdentityGroupsPolicy IdentityGroups = 2;
         }
-
     }
     optional TTablesStorageLayoutPolicy TablesStorageLayoutPolicy = 1;
     optional bool DisabledOnSchemeShard = 2 [default = true];
@@ -1489,6 +1504,17 @@ message TColumnShardConfig {
     optional uint32 WritingBufferDurationMs = 8 [default = 0];
     optional bool UseChunkedMergeOnCompaction = 9 [default = true];
     optional uint64 CompactionMemoryLimit = 10 [default = 536870912];
+    optional uint64 TieringsMemoryLimit = 11 [default = 536870912];
+    message TIndexMetadataMemoryLimit {
+        oneof Value {
+            double TotalRatio = 1 [default = 0.3];
+            uint64 AbsoluteValue = 2;
+        }
+    }
+
+    optional TIndexMetadataMemoryLimit IndexMetadataMemoryLimit = 12;
+    optional bool CleanupEnabled = 13 [default = true];
+    optional uint32 MaxInFlightIntervalsOnRequest = 16;
 }
 
 message TSchemeShardConfig {
@@ -1509,6 +1535,9 @@ message TSchemeShardConfig {
     optional uint32 StatsMaxExecuteMs = 3 [default = 10];
 
     repeated TInFlightCounterConfig InFlightCounterConfig = 4;
+
+    // number of shards per table
+    optional uint32 MaxCdcInitialScanShardsInFlight = 5 [default = 10];
 }
 
 message TCompactionConfig {
@@ -1604,33 +1633,88 @@ message TBackgroundCleaningConfig {
 }
 
 message TTracingConfig {
-    message TAuthConfig {
-        message TTvm {
-            optional string Host = 1;
-            optional uint32 Port = 2;
+    message TBackendConfig {
+        message TAuthConfig {
+            message TTvmAuth {
+                optional string Url = 1;
+
+                optional uint32 SelfTvmId = 2;
+                optional uint32 TracingTvmId = 3;
 
-            required uint32 SelfTvmId = 3;
-            required uint32 TracingTvmId = 4;
+                optional string DiskCacheDir = 4;
 
-            optional string DiskCacheDir = 5;
+                oneof Secret {
+                    string PlainTextSecret = 5;
+                    string SecretFile = 6;
+                    string SecretEnvironmentVariable = 7;
+                }
+            }
 
-            oneof Secret {
-                string PlainTextSecret = 6;
-                string SecretFile = 7;
-                string SecretEnvironmentVariable = 8;
+            oneof Method {
+                TTvmAuth Tvm = 1;
             }
         }
 
-        oneof Method {
-            TTvm Tvm = 1;
+        message TOpentelemetryBackend {
+            optional string CollectorUrl = 1;
+            optional string ServiceName = 2;
         }
+
+
+        oneof Backend {
+            TOpentelemetryBackend Opentelemetry = 1;
+        }
+        optional TAuthConfig AuthConfig = 2;
     }
 
-    optional string Host = 1;
-    optional uint32 Port = 2;
-    optional string RootCA = 3;
-    optional string ServiceName = 4;
-    optional TAuthConfig AuthConfig = 5;
+    message TSelectors {
+        reserved 1;
+        repeated string RequestTypes = 3;
+        optional string Database = 2;
+    }
+
+    message TSamplingRule {
+        // scope to which the rule applies
+        optional TSelectors Scope = 1;
+        // fraction of requests sampled by this rule
+        optional float Fraction = 2;
+        // detalisation of traces sampled by this rule
+        optional uint32 Level = 3;
+        // maximum average amount of traces sampled by this rule
+        optional uint64 MaxTracesPerMinute = 4;
+        // maximum burst of traces sampled by this rule
+        optional uint64 MaxTracesBurst = 5;
+    }
+
+    // field meaning is the same as in TSamplingRule
+    message TExternalThrottlingRule {
+        optional TSelectors Scope = 1;
+        optional uint64 MaxTracesPerMinute = 2;
+        optional uint64 MaxTracesBurst = 3;
+    }
+
+    message TUploaderConfig {
+        // maximum average amount of spans uploaded from the node
+        optional uint64 MaxExportedSpansPerSecond = 1;
+        // maximum batch size in spans
+        optional uint64 MaxSpansInBatch = 2;
+        // maximum batch size in bytes
+        optional uint64 MaxBytesInBatch = 3;
+        // maximum batch accumulation time
+        optional uint64 MaxBatchAccumulationMilliseconds = 4;
+        // time after which generated span will be discarded and will
+        // not be sent to the collector
+        optional uint32 SpanExportTimeoutSeconds = 5;
+        // maximum batch export requests being run simultaneously
+        optional uint64 MaxExportRequestsInflight = 6;
+    }
+
+    reserved 1 to 5;
+
+    optional TBackendConfig Backend = 6;
+    repeated TSamplingRule Sampling = 7;
+    repeated TExternalThrottlingRule ExternalThrottling = 8;
+    optional TUploaderConfig Uploader = 9;
 }
 
 message TFailureInjectionConfig {
@@ -1665,12 +1749,16 @@ message TClientCertificateAuthorization {
         repeated string Suffixes = 3;
     }
 
-    message TDynamicNodeDefinition {
+    message TClientCertificateDefinition {
         repeated TSubjectTerm SubjectTerms = 1;
         optional bool CanCheckNodeHostByCN = 2 [default = false];
+        repeated string MemberGroups = 3;
+        optional bool RequireSameIssuer = 4 [default = true];
     }
 
-    optional TDynamicNodeDefinition DynamicNodeAuthorization = 1;
+    repeated TClientCertificateDefinition ClientCertificateDefinitions = 1;
+    optional bool RequestClientCertificate = 2 [default = false];
+    optional string DefaultGroup = 3 [default = "DefaultClientAuth@cert"];
 }
 
 message TLocalPgWireConfig {
@@ -1700,6 +1788,7 @@ message TKafkaProxyConfig {
     }
 
     optional TProxy Proxy = 7;
+    optional bool MeteringV2Enabled = 10 [default = false];
 }
 
 message TAwsCompatibilityConfig {
@@ -1782,6 +1871,7 @@ message TAppConfig {
     optional bool AllowEditYamlInUi = 75;
     optional TS3ProxyResolverConfig S3ProxyResolverConfig = 76;
     optional TBackgroundCleaningConfig BackgroundCleaningConfig = 77;
+    optional TLimiterConfig CompDiskLimiterConfig = 79;
 
     repeated TNamedConfig NamedConfigs = 100;
     optional string ClusterYamlConfig = 101;
diff --git a/ydb/core/protos/counters_columnshard.proto b/ydb/core/protos/counters_columnshard.proto
index 428621d0f20b..b2002ee2cca8 100644
--- a/ydb/core/protos/counters_columnshard.proto
+++ b/ydb/core/protos/counters_columnshard.proto
@@ -49,6 +49,7 @@ enum ESimpleCounters {
     COUNTER_EVICTED_BYTES = 39                              [(CounterOpts) = {Name: "Index/EvictedBytes"}];
     COUNTER_EVICTED_RAW_BYTES = 40                          [(CounterOpts) = {Name: "Index/EvictedBytesRaw"}];
     COUNTER_WRITES_IN_FLY = 41                              [(CounterOpts) = {Name: "WritesInFly"}];
+    COUNTER_TX_COMPLETE_LAG = 42                            [(CounterOpts) = {Name: "TxCompleteLag"}];
 }
 
 enum ECumulativeCounters {
@@ -177,5 +178,16 @@ enum ETxTypes {
     TXTYPE_WRITE_DRAFT = 15                                 [(TxTypeOpts) = {Name: "TxWriteDraft"}];
     TXTYPE_CLEANUP_INSERT_TABLE = 16                        [(TxTypeOpts) = {Name: "TxInsertTableCleanup"}];
     TXTYPE_GC_FINISHED = 17                                 [(TxTypeOpts) = {Name: "TxGarbageCollectionFinished"}];
-	
+    TXTYPE_DELETE_SHARED_BLOBS = 18                         [(TxTypeOpts) = {Name: "TxDeleteSharedBlobs"}];
+    TXTYPE_DATA_SHARING_FINISH_ACK_TO_SOURCE = 19           [(TxTypeOpts) = {Name: "TxDataSharingFinishAckToSource"}];
+    TXTYPE_DATA_SHARING_START_TO_SOURCE = 20                [(TxTypeOpts) = {Name: "TxDataSharingStartToSource"}];
+    TXTYPE_DATA_SHARING_DATA_ACK_TO_SOURCE = 21             [(TxTypeOpts) = {Name: "TxDataSharingDataAckToSource"}];
+    TXTYPE_DATA_SHARING_DATA_FROM_SOURCE = 22               [(TxTypeOpts) = {Name: "TxDataSharingDataFromSource"}];
+    TXTYPE_DATA_SHARING_FINISH_ACK_FROM_INITIATOR = 23      [(TxTypeOpts) = {Name: "TxDataSharingFinishAckFromInitiator"}];
+    TXTYPE_DATA_SHARING_FINISH_FROM_SOURCE = 24             [(TxTypeOpts) = {Name: "TxDataSharingFinishFromSource"}];
+    TXTYPE_DATA_SHARING_PROPOSE_FROM_INITIATOR = 25         [(TxTypeOpts) = {Name: "TxDataSharingProposeFromInitiator"}];
+    TXTYPE_DATA_SHARING_CONFIRM_FROM_INITIATOR = 26         [(TxTypeOpts) = {Name: "TxDataSharingConfirmFromInitiator"}];
+    TXTYPE_DATA_SHARING_APPLY_LINKS_MODIFICATION = 27       [(TxTypeOpts) = {Name: "TxDataSharingApplyLinksModification"}];
+    TXTYPE_DATA_SHARING_WRITE_SOURCE_CURSOR = 28            [(TxTypeOpts) = {Name: "TxDataSharingWriteSourceCursor"}];
+    TXTYPE_EXPORT_SAVE_CURSOR = 29                          [(TxTypeOpts) = {Name: "TxExportSaveCursor"}];
 }
diff --git a/ydb/core/protos/counters_datashard.proto b/ydb/core/protos/counters_datashard.proto
index c5ae8ed92d0b..b394e82d8de7 100644
--- a/ydb/core/protos/counters_datashard.proto
+++ b/ydb/core/protos/counters_datashard.proto
@@ -27,6 +27,7 @@ enum ESimpleCounters {
     COUNTER_CHANGE_RECORDS_REQUESTED = 17                          [(CounterOpts) = {Name: "ChangeRecordsRequested"}];
     COUNTER_CHANGE_DELIVERY_LAG = 18                               [(CounterOpts) = {Name: "ChangeDeliveryLag"}];
     COUNTER_CHANGE_DATA_LAG = 19                                   [(CounterOpts) = {Name: "ChangeDataLag"}];
+    COUNTER_CHANGE_QUEUE_RESERVED_CAPACITY = 20                    [(CounterOpts) = {Name: "ChangeQueueReservedCapacity"}];
 }
 
 enum ECumulativeCounters {
@@ -485,4 +486,5 @@ enum ETxTypes {
     TXTYPE_CLEANUP_VOLATILE = 80                          [(TxTypeOpts) = {Name: "TxCleanupVolatile"}];
     TXTYPE_PLAN_PREDICTED_TXS = 81                        [(TxTypeOpts) = {Name: "TxPlanPredictedTxs"}];
     TXTYPE_WRITE = 82                                     [(TxTypeOpts) = {Name: "TxWrite"}];
+    TXTYPE_REMOVE_SCHEMA_SNAPSHOTS = 83                   [(TxTypeOpts) = {Name: "TxRemoveSchemaSnapshots"}];
 }
diff --git a/ydb/core/protos/counters_pq.proto b/ydb/core/protos/counters_pq.proto
index c381e0f1eb97..8c975d9a4b7b 100644
--- a/ydb/core/protos/counters_pq.proto
+++ b/ydb/core/protos/counters_pq.proto
@@ -237,4 +237,7 @@ enum EPartitionLabeledCounters {
     METRIC_READ_QUOTA_PARTITION_TOTAL_BYTES = 38                  [(LabeledCounterOpts) = {Name: "" AggrFunc : EAF_MIN SVName: "topic.partition.read.speed_limit_bytes_per_second"}];
 
     METRIC_READ_INFLIGHT_LIMIT_THROTTLED = 39                     [(LabeledCounterOpts) = {Name: "" AggrFunc : EAF_MAX SVName: "topic.partition.read.inflight_throttled_microseconds_max"}];
+
+    METRIC_READ_QUOTA_NO_CONSUMER_BYTES = 40                      [(LabeledCounterOpts) = {Name: "" AggrFunc : EAF_MIN SVName: "topic.partition.read_without_consumer.speed_limit_bytes_per_second"}];
+    METRIC_READ_QUOTA_NO_CONSUMER_USAGE = 41                      [(LabeledCounterOpts) = {Name: "" AggrFunc : EAF_MAX SVName: "topic.partition.read_without_consumer.throttled_microseconds_max"}];
 }
diff --git a/ydb/core/protos/counters_schemeshard.proto b/ydb/core/protos/counters_schemeshard.proto
index ca2a07a1d508..9ac6d2341844 100644
--- a/ydb/core/protos/counters_schemeshard.proto
+++ b/ydb/core/protos/counters_schemeshard.proto
@@ -195,6 +195,8 @@ enum ESimpleCounters {
     COUNTER_IN_FLIGHT_OPS_TxDropView = 157                  [(CounterOpts) = {Name: "InFlightOps/DropView"}];
 
     COUNTER_GRAPHSHARD_COUNT = 158 [(CounterOpts) = {Name: "GraphShards"}];
+
+    COUNTER_IN_FLIGHT_OPS_TxCopySequence = 159            [(CounterOpts) = {Name: "InFlightOps/CopySequence"}];
 }
 
 enum ECumulativeCounters {
@@ -315,6 +317,7 @@ enum ECumulativeCounters {
     COUNTER_FINISHED_OPS_TxCreateView = 95              [(CounterOpts) = {Name: "FinishedOps/CreateView"}];
     COUNTER_FINISHED_OPS_TxDropView = 96                [(CounterOpts) = {Name: "FinishedOps/DropView"}];
     COUNTER_FINISHED_OPS_TxAlterView = 97               [(CounterOpts) = {Name: "FinishedOps/AlterView"}];
+    COUNTER_FINISHED_OPS_TxCopySequence = 98              [(CounterOpts) = {Name: "FinishedOps/TxCopySequence"}];
 }
 
 enum EPercentileCounters {
@@ -536,4 +539,6 @@ enum ETxTypes {
     TXTYPE_PERSQUEUE_PROPOSE_RESULT = 83                  [(TxTypeOpts) = {Name: "TxPersQueueProposeResult"}];
     TXTYPE_PERSQUEUE_PROPOSE_ATTACH_RESULT = 84           [(TxTypeOpts) = {Name: "TxProposeTransactionAttachResult"}];
     TXTYPE_UPDATE_DOMAIN_REPLY = 85                       [(TxTypeOpts) = {Name: "TxUpdateDomainReply"}];
+
+    TXTYPE_SEQUENCESHARD_GET_SEQUENCE_RESULT = 86    [(TxTypeOpts) = {Name: "TxSequenceShardGetSequenceResult"}];
 }
diff --git a/ydb/core/protos/counters_sequenceshard.proto b/ydb/core/protos/counters_sequenceshard.proto
index 6ace98084695..ec396a082dac 100644
--- a/ydb/core/protos/counters_sequenceshard.proto
+++ b/ydb/core/protos/counters_sequenceshard.proto
@@ -34,4 +34,5 @@ enum ETxTypes {
     TXTYPE_FREEZE_SEQUENCE = 7                            [(TxTypeOpts) = {Name: "TxFreezeSequence"}];
     TXTYPE_RESTORE_SEQUENCE = 8                           [(TxTypeOpts) = {Name: "TxRestoreSequence"}];
     TXTYPE_REDIRECT_SEQUENCE = 9                          [(TxTypeOpts) = {Name: "TxRedirectSequence"}];
+    TXTYPE_GET_SEQUENCE = 10                            [(TxTypeOpts) = {Name: "TxGetSequence"}];
 }
diff --git a/ydb/core/protos/data_events.proto b/ydb/core/protos/data_events.proto
index 25945777d2cc..0989420123b0 100644
--- a/ydb/core/protos/data_events.proto
+++ b/ydb/core/protos/data_events.proto
@@ -27,6 +27,16 @@ message TKqpLocks {
         Rollback = 3; // Rollback buffered changes and erase locks
     }
     optional ELocksOp Op = 4;
+
+    // An optional arbiter for readsets. When specified, all sending shards
+    // send the commit decision to a single arbiter shard, and all receiving
+    // shards wait for the commit decision from a single arbiter shard. The
+    // shard marked as the arbiter is responsible in aggregating all commit
+    // decisions from sending shards and sending the final commit decision to
+    // receiving shards.
+    // This may only be used with generic readsets without any other data and
+    // currently limited to volatile transactions.
+    optional uint64 ArbiterShard = 5;
 }
 
 message TTableId {
diff --git a/ydb/core/protos/feature_flags.proto b/ydb/core/protos/feature_flags.proto
index dcb82a099d61..538af6a81322 100644
--- a/ydb/core/protos/feature_flags.proto
+++ b/ydb/core/protos/feature_flags.proto
@@ -97,15 +97,15 @@ message TFeatureFlags {
     optional bool EnableAlterDatabaseCreateHiveFirst = 82 [default = false];
     reserved 83; // EnableKqpDataQuerySourceRead
     optional bool EnableSmallDiskOptimization = 84 [default = true];
-    optional bool EnableDataShardVolatileTransactions = 85 [default = true];
+    optional bool EnableDataShardVolatileTransactions = 85 [default = false];
     optional bool EnableTopicServiceTx = 86 [default = false];
     optional bool EnableLLVMCache = 87 [default = false];
     optional bool EnableExternalDataSources = 88 [default = false];
     optional bool EnableTopicDiskSubDomainQuota = 89 [default = true];
     optional bool EnableSeparationComputeActorsFromRead = 90 [default = false];
     optional bool EnablePQConfigTransactionsAtSchemeShard = 91 [default = false];
-    optional bool EnableScriptExecutionOperations = 92 [default = false];
-    optional bool EnableImplicitQueryParameterTypes = 93 [default = true];
+    optional bool EnableScriptExecutionOperations = 92 [default = true];
+    optional bool EnableImplicitQueryParameterTypes = 93 [default = false];
     optional bool EnableForceImmediateEffectsExecution = 94 [default = false];
     optional bool EnableTopicSplitMerge = 95 [default = false];
     optional bool EnableChangefeedDynamoDBStreamsFormat = 96 [default = true];
@@ -129,4 +129,7 @@ message TFeatureFlags {
     optional bool EnableAccessServiceBulkAuthorization = 114 [default = false];
     optional bool EnableAddColumsWithDefaults = 115 [ default = false];
     optional bool EnableReplaceIfExistsForExternalEntities = 116 [ default = false];
+    optional bool EnableCMSRequestPriorities = 117 [default = false];
+    optional bool EnableStableNodeNames = 122 [default = false];
+    optional bool EnableVolatileTransactionArbiters = 124 [default = false];
 }
diff --git a/ydb/core/protos/flat_scheme_op.proto b/ydb/core/protos/flat_scheme_op.proto
index 895e1240cbdc..399eda8924f0 100644
--- a/ydb/core/protos/flat_scheme_op.proto
+++ b/ydb/core/protos/flat_scheme_op.proto
@@ -17,6 +17,7 @@ import "ydb/public/api/protos/ydb_value.proto";
 import "ydb/library/actors/protos/actors.proto";
 import "ydb/library/mkql_proto/protos/minikql.proto";
 import "ydb/core/protos/index_builder.proto";
+import "ydb/core/tx/columnshard/engines/scheme/statistics/protos/data.proto";
 
 import "google/protobuf/empty.proto";
 
@@ -89,6 +90,9 @@ message TColumnDescription {
         Ydb.TypedValue DefaultFromLiteral = 10; // Literal default value
     }
     optional bool NotNull = 8;
+    // flag that indicates that column is currently under the build
+    // operation.
+    optional bool IsBuildInProgress = 11 [default = false];
 }
 
 message TStorageSettings {
@@ -397,14 +401,25 @@ message TDictionaryEncodingSettings {
 }
 
 message TCompressionOptions {
-    optional EColumnCodec CompressionCodec = 2; // LZ4 (in arrow LZ4_FRAME variant) if not set
-    optional int32 CompressionLevel = 3; // Use default compression level if not set (0 != not set)
+    optional EColumnCodec Codec = 2; // LZ4 (in arrow LZ4_FRAME variant) if not set
+    optional int32 Level = 3; // Use default compression level if not set (0 != not set)
+}
+
+message TOlapColumn {
+
+    message TSerializer {
+        optional string ClassName = 1;
+        oneof Implementation {
+            TCompressionOptions ArrowCompression = 40;
+        }
+    }
 }
 
 message TOlapColumnDiff {
     optional string Name = 1;
-    optional TCompressionOptions Compression = 2;
     optional TDictionaryEncodingSettings DictionaryEncoding = 4;
+    optional TOlapColumn.TSerializer Serializer = 5;
+    optional string StorageId = 6;
 }
 
 message TOlapColumnDescription {
@@ -419,8 +434,10 @@ message TOlapColumnDescription {
     optional NKikimrProto.TTypeInfo TypeInfo = 6;
     optional bool NotNull = 7;
 
-    optional TCompressionOptions Compression = 8;
+    optional TCompressionOptions Compression = 8[deprecated = true];
     optional TDictionaryEncodingSettings DictionaryEncoding = 9;
+    optional TOlapColumn.TSerializer Serializer = 10;
+    optional string StorageId = 11;
 }
 
 message TRequestedBloomFilter {
@@ -431,8 +448,9 @@ message TRequestedBloomFilter {
 message TOlapIndexRequested {
     optional string Name = 1;
     optional TCompressionOptions Compression = 3;
+    optional string StorageId = 4;
 
-    optional string ClassName = 2;
+    optional string ClassName = 39;
     oneof Implementation {
         TRequestedBloomFilter BloomFilter = 40;
     }
@@ -451,9 +469,11 @@ message TOlapIndexDescription {
     optional string Name = 2;
     optional TCompressionOptions Compression = 3;
 
-    optional string ClassName = 4;
+    optional string StorageId = 4;
+
+    optional string ClassName = 40;
     oneof Implementation {
-        TBloomFilter BloomFilter = 40;
+        TBloomFilter BloomFilter = 41;
     }
 }
 
@@ -473,6 +493,10 @@ message TStorageTierConfig {
     optional TCompressionOptions Compression = 3;
 }
 
+message TColumnTableSchemeOptions {
+    optional bool SchemeNeedActualization = 1 [default = false];
+}
+
 message TColumnTableSchema {
     // A list of columns for tables with this schema
     repeated TOlapColumnDescription Columns = 1;
@@ -493,6 +517,12 @@ message TColumnTableSchema {
 
     optional bool CompositeMarks = 9 [ default = false ];
     repeated TOlapIndexDescription Indexes = 10;
+    repeated NKikimrColumnShardStatisticsProto.TOperatorContainer Statistics = 11;
+    optional TColumnTableSchemeOptions Options = 12;
+}
+
+message TColumnTableRequestedOptions {
+    optional bool SchemeNeedActualization = 1 [default = false];
 }
 
 message TAlterColumnTableSchema {
@@ -502,6 +532,9 @@ message TAlterColumnTableSchema {
     repeated TOlapColumnDiff AlterColumns = 7;
     repeated TOlapIndexRequested UpsertIndexes = 8;
     repeated string DropIndexes = 9;
+    repeated NKikimrColumnShardStatisticsProto.TConstructorContainer UpsertStatistics = 10;
+    repeated string DropStatistics = 11;
+    optional TColumnTableRequestedOptions Options = 12;
 }
 
 // Schema presets are used to manage multiple tables with the same schema
@@ -986,6 +1019,9 @@ message TS3Settings {
     optional uint32 RequestTimeoutMs = 101;
     optional uint32 HttpRequestTimeoutMs = 102;
     optional uint32 ConnectionTimeoutMs = 103;
+
+    optional uint32 ExecutorThreadsCount = 104 [default = 32];
+    optional uint32 MaxConnectionsCount = 105 [default = 32];
 };
 
 message TTaskCleaner {
@@ -1261,6 +1297,10 @@ message TMoveIndex {
 }
 
 message TSequenceDescription {
+    message TSetVal {
+        optional sint64 NextValue = 1;
+        optional bool NextUsed = 2;
+    }
     optional string Name = 1; // mandatory
     optional NKikimrProto.TPathID PathId = 2; // sequence path id, assigned by schemeshard
     optional uint64 Version = 3; // incremented every time sequence is altered
@@ -1272,6 +1312,7 @@ message TSequenceDescription {
     optional uint64 Cache = 8; // number of items to cache, defaults to 1
     optional sint64 Increment = 9; // increment at each call, defaults to 1
     optional bool Cycle = 10; // true when cycle on overflow is allowed
+    optional TSetVal SetVal = 11; // SetVal(NextValue, NextUsed) is executed atomically when creating
 }
 
 message TSequenceSharding {
@@ -1557,6 +1598,12 @@ message TModifyScheme {
     optional TViewDescription CreateView = 64;
 
     optional NActorsProto.TActorId TempTableOwnerActorId = 65;
+
+    optional TCopySequence CopySequence = 66;
+}
+
+message TCopySequence {
+    optional string CopyFrom = 1;
 }
 
 // "Script", used by client to parse text files with multiple DDL commands
@@ -1574,6 +1621,7 @@ message TDescribeOptions {
     optional bool ShowPrivateTable = 7 [default = false];
     optional bool ReturnChannelsBinding = 8 [default = false];
     optional bool ReturnRangeKey = 9 [default = true];
+    optional bool ReturnSetVal = 10 [default = false];
 }
 
 // Request to read scheme for a specific path
diff --git a/ydb/core/protos/flat_tx_scheme.proto b/ydb/core/protos/flat_tx_scheme.proto
index 6972e9f44cae..e249ec1c80cf 100644
--- a/ydb/core/protos/flat_tx_scheme.proto
+++ b/ydb/core/protos/flat_tx_scheme.proto
@@ -7,6 +7,7 @@ import "ydb/core/protos/bind_channel_storage_pool.proto";
 import "ydb/core/protos/flat_scheme_op.proto";
 import "ydb/public/api/protos/ydb_cms.proto";
 import "ydb/public/api/protos/ydb_issue_message.proto";
+import "ydb/public/api/protos/annotations/sensitive.proto";
 
 package NKikimrScheme;
 option java_package = "ru.yandex.kikimr.proto";
@@ -53,7 +54,7 @@ message TEvModifySchemeTransaction {
     optional uint64 TabletId = 3;
     optional string Owner = 5;
     optional bool FailOnExist = 6; // depricated, TModifyScheme.FailOnExist is recomended
-    optional string UserToken = 7; // serialized NACLib::TUserToken
+    optional string UserToken = 7 [(Ydb.sensitive) = true]; // serialized NACLib::TUserToken
     optional string PeerName = 8;
 }
 
@@ -106,12 +107,13 @@ message TEvDescribeSchemeResult {
     optional string Reason = 2;
     optional string Path = 3;
     optional NKikimrSchemeOp.TPathDescription PathDescription = 4;
-    optional fixed64 PathOwner = 5;
+    optional fixed64 DEPRECATED_PathOwner = 5;  // replaced by PathOwnerId
     optional fixed64 PathId = 6;
 
     optional string LastExistedPrefixPath = 7;
     optional fixed64 LastExistedPrefixPathId = 8;
     optional NKikimrSchemeOp.TPathDescription LastExistedPrefixDescription = 9;
+
     optional fixed64 PathOwnerId = 10;
 }
 
@@ -263,6 +265,7 @@ message TMigrateColumn {
     optional uint32 DefaultKind = 8;
     optional bytes DefaultValue = 9;
     optional bool NotNull = 10;
+    optional bool IsBuildInProgress = 12;
 }
 
 message TMigratePartition {
diff --git a/ydb/core/protos/hive.proto b/ydb/core/protos/hive.proto
index b7fb1324a6dd..64f4f250060a 100644
--- a/ydb/core/protos/hive.proto
+++ b/ydb/core/protos/hive.proto
@@ -314,6 +314,7 @@ message THiveNodeStats {
     optional uint32 RestartsPerPeriod = 6;
     optional uint64 LastAliveTimestamp = 7;
     optional NKikimrSubDomains.TDomainKey NodeDomain = 8;
+    optional string NodeName = 9;
 }
 
 message TEvResponseHiveNodeStats {
diff --git a/ydb/core/protos/kqp.proto b/ydb/core/protos/kqp.proto
index 56497ea35034..37b7e8834450 100644
--- a/ydb/core/protos/kqp.proto
+++ b/ydb/core/protos/kqp.proto
@@ -144,6 +144,9 @@ message TKqpColumnMetadataProto {
     optional string DefaultFromSequence = 8;
     optional EDefaultKind DefaultKind = 9;
     optional Ydb.TypedValue DefaultFromLiteral = 10;
+    // flag that indicates that column is currently under the build
+    // operation.
+    optional bool IsBuildInProgress = 11 [default = false];
 };
 
 message TKqpTableMetadataProto {
@@ -420,12 +423,16 @@ message TEvExecuterStreamData {
     optional Ydb.ResultSet ResultSet = 1;
     optional uint64 SeqNo = 2;
     optional uint32 QueryResultIndex = 3;
+    optional uint32 ChannelId = 4;
+    optional NActorsProto.TActorId ChannelActorId = 5;
 };
 
 message TEvExecuterStreamDataAck {
     optional uint64 SeqNo = 1;
     optional int64 FreeSpace = 2;
     optional bool Enough = 3 [default = false];
+    optional uint32 ChannelId = 4;
+    optional NActorsProto.TActorId ChannelActorId = 5;
 };
 
 message TEvExecuterStreamProfile {
@@ -434,7 +441,7 @@ message TEvExecuterStreamProfile {
 };
 
 // 1. Executer fills progress stats from it's own execution
-// 2. Session adds stats from early finished executions and builds complete plan 
+// 2. Session adds stats from early finished executions and builds complete plan
 message TEvExecuterProgress {
     optional NActorsProto.TActorId ExecuterActorId = 1;
     optional string QueryPlan = 2;
diff --git a/ydb/core/protos/kqp_physical.proto b/ydb/core/protos/kqp_physical.proto
index 53da436f29e6..98351bfe1f1e 100644
--- a/ydb/core/protos/kqp_physical.proto
+++ b/ydb/core/protos/kqp_physical.proto
@@ -69,6 +69,9 @@ message TKqpPhyColumn {
         Ydb.TypedValue DefaultFromLiteral = 5;
     }
     bool NotNull = 6;
+    // flag that indicates that column is currently under the build
+    // operation.
+    optional bool IsBuildInProgress = 7;
 }
 
 enum EKqpPhyTableKind {
@@ -430,6 +433,11 @@ message TKqpSchemeOperation {
         TKqpPhyMetadataOperation UpsertObject = 24;
         TKqpPhyMetadataOperation AlterObject = 25;
         TKqpPhyMetadataOperation DropObject = 26;
+        NKikimrSchemeOp.TModifyScheme CreateColumnTable = 27;
+        NKikimrSchemeOp.TModifyScheme AlterColumnTable = 28;
+        NKikimrSchemeOp.TModifyScheme CreateTableStore = 29;
+        NKikimrSchemeOp.TModifyScheme DropTableStore = 30;
+        NKikimrSchemeOp.TModifyScheme AlterTableStore = 31;
     }
 }
 
@@ -499,4 +507,6 @@ message TKqpPhyQuery {
     bool HasUncommittedChangesRead = 9;
 
     string QueryDiagnostics = 10;
+
+    repeated TKqpTableInfo ViewInfos = 11;
 }
diff --git a/ydb/core/protos/local.proto b/ydb/core/protos/local.proto
index fe5c40b757df..5cfc7242df25 100644
--- a/ydb/core/protos/local.proto
+++ b/ydb/core/protos/local.proto
@@ -19,6 +19,7 @@ message TEvRegisterNode {
     repeated NKikimrSubDomains.TDomainKey ServicedDomains = 2;
     optional NActorsInterconnect.TNodeLocation SystemLocation = 3;
     repeated TTabletAvailability TabletAvailability = 4;
+    optional string Name = 5;
 }
 
 message TEvRegisterNodeResult {
diff --git a/ydb/core/protos/metrics.proto b/ydb/core/protos/metrics.proto
index 017014b8118b..d1e3f91d9430 100644
--- a/ydb/core/protos/metrics.proto
+++ b/ydb/core/protos/metrics.proto
@@ -3,4 +3,5 @@ package NKikimrMetricsProto;
 message TMaximumValueUI64 {
     optional uint64 LastBucketStartTime = 1;
     repeated uint64 Values = 2;
+    optional uint64 AllTimeMaximum = 3;
 }
diff --git a/ydb/core/protos/msgbus_pq.proto b/ydb/core/protos/msgbus_pq.proto
index 87b3fa3cb2c9..6e4c186869dd 100644
--- a/ydb/core/protos/msgbus_pq.proto
+++ b/ydb/core/protos/msgbus_pq.proto
@@ -170,6 +170,7 @@ message TPersQueuePartitionRequest {
     optional bool IsDirectWrite = 18 [default = false];
     optional uint64 PutUnitsSize = 19;
     optional int64 InitialSeqNo = 26;
+    optional bool MeteringV2Enabled = 27 [default = false];
 }
 
 message TPersQueueMetaRequest {
diff --git a/ydb/core/protos/node_broker.proto b/ydb/core/protos/node_broker.proto
index ba66881bb337..e126492b4e06 100644
--- a/ydb/core/protos/node_broker.proto
+++ b/ydb/core/protos/node_broker.proto
@@ -20,6 +20,7 @@ message TNodeInfo {
     optional string Address = 5;
     optional NActorsInterconnect.TNodeLocation Location = 6;
     optional uint64 Expire = 7;
+    optional string Name = 8;
 }
 
 message TEpoch {
@@ -101,6 +102,7 @@ message TConfig {
     optional uint64 EpochDuration = 1 [default = 3600000000];
     // Don't allocate and extend lease for IDs from banned intervals.
     repeated TNodeIds BannedNodeIds = 2;
+    optional string StableNodeNamePrefix = 3 [default = "slot-"];
 }
 
 message TGetConfigRequest {
diff --git a/ydb/core/protos/node_limits.proto b/ydb/core/protos/node_limits.proto
index 5aaf8c6fdaf8..ef067d578c48 100644
--- a/ydb/core/protos/node_limits.proto
+++ b/ydb/core/protos/node_limits.proto
@@ -3,10 +3,9 @@ option java_package = "ru.yandex.kikimr.proto";
 
 message TNodeLimitsConfig {
     message TPersQueueNodeConfig {
-        optional uint64 SharedCacheSizeMb = 1 [default = 8192];
+        optional uint64 SharedCacheSizeMb = 1 [default = 1024];
         optional uint32 CacheKeepTimeSec = 2 [default = 10];
     }
 
     optional TPersQueueNodeConfig PersQueueNodeConfig = 1;
 }
-
diff --git a/ydb/core/protos/node_whiteboard.proto b/ydb/core/protos/node_whiteboard.proto
index 78cbacd99b7d..3737bf3bdeba 100644
--- a/ydb/core/protos/node_whiteboard.proto
+++ b/ydb/core/protos/node_whiteboard.proto
@@ -247,6 +247,8 @@ message TBSGroupStateInfo {
     optional bool Encryption = 19;
     repeated uint32 VDiskNodeIds = 20;
     optional uint64 BlobDepotId = 21; // if set, then this is virtual group
+    optional bool NoVDisksInGroup = 22;
+    optional uint64 BlobDepotOnlineTime = 23;
 }
 
 message TEvBSGroupStateRequest {
@@ -321,6 +323,7 @@ message TSystemStateInfo {
     optional uint64 DisconnectTime = 34;
     optional TNodeSharedCache SharedCacheStats = 35;
     optional uint32 TotalSessions = 36;
+    optional string NodeName = 37;
 }
 
 message TEvSystemStateRequest {
diff --git a/ydb/core/protos/out/out_sequenceshard.cpp b/ydb/core/protos/out/out_sequenceshard.cpp
index 066fa1309119..ce193e08a826 100644
--- a/ydb/core/protos/out/out_sequenceshard.cpp
+++ b/ydb/core/protos/out/out_sequenceshard.cpp
@@ -29,3 +29,7 @@ Y_DECLARE_OUT_SPEC(, NKikimrTxSequenceShard::TEvRestoreSequenceResult::EStatus,
 Y_DECLARE_OUT_SPEC(, NKikimrTxSequenceShard::TEvRedirectSequenceResult::EStatus, stream, value) {
     stream << NKikimrTxSequenceShard::TEvRedirectSequenceResult::EStatus_Name(value);
 }
+
+Y_DECLARE_OUT_SPEC(, NKikimrTxSequenceShard::TEvGetSequenceResult::EStatus, stream, value) {
+    stream << NKikimrTxSequenceShard::TEvGetSequenceResult::EStatus_Name(value);
+}
diff --git a/ydb/core/protos/pqconfig.proto b/ydb/core/protos/pqconfig.proto
index bb70645ab640..90f6a66969be 100644
--- a/ydb/core/protos/pqconfig.proto
+++ b/ydb/core/protos/pqconfig.proto
@@ -1,6 +1,8 @@
 import "ydb/public/api/protos/draft/persqueue_error_codes.proto";
 import "ydb/public/api/protos/draft/persqueue_common.proto";
 
+import "ydb/public/api/protos/annotations/sensitive.proto";
+
 import "ydb/core/protos/base.proto";
 import "ydb/core/protos/msgbus_kv.proto";
 import "ydb/core/protos/node_limits.proto";
@@ -208,11 +210,11 @@ message TMirrorPartitionConfig {
     message TCredentials {
         message IamCredentials {
             optional string Endpoint = 1;
-            optional string ServiceAccountKey = 2;
+            optional string ServiceAccountKey = 2 [(Ydb.sensitive) = true];
         }
         oneof Credentials {
-            string OauthToken = 1;
-            string JwtParams = 2;
+            string OauthToken = 1 [(Ydb.sensitive) = true];
+            string JwtParams = 2 [(Ydb.sensitive) = true];
             IamCredentials Iam = 3;
         }
     }
diff --git a/ydb/core/protos/scheme_board.proto b/ydb/core/protos/scheme_board.proto
index f063144f5d03..a663fb8e5a59 100644
--- a/ydb/core/protos/scheme_board.proto
+++ b/ydb/core/protos/scheme_board.proto
@@ -1,4 +1,4 @@
-import "ydb/core/protos/flat_tx_scheme.proto";
+import "ydb/core/scheme/protos/pathid.proto";
 
 package NKikimrSchemeBoard;
 option java_package = "ru.yandex.kikimr.proto";
@@ -13,22 +13,76 @@ message TEvHandshake {
     optional uint64 Generation = 2;
 }
 
-// here and below
-// Owner is the tablet id of schemeshard witch holds the records
-// LocalPathId is a second part of TPathId
-// PathOwnerId is a first part of TPathId
+// Here and below.
+// Owner is the tablet id of schemeshard which holds the records.
+// (PathOwnerId, LocalPathId) constitute TPathId of the object.
 
+// TEvUpdate.DescribeSchemeResultSerialized is a NKikimrScheme.TEvDescribeSchemeResult
+// in the form of opaque payload.
+// Originally, that field existed as a properly typed TEvDescribeSchemeResult message.
+// However, that induce additional overhead to serialize and deserialize this message
+// when transferring over wire.
+// This performance cost is usually either negligible or imperceptible.
+// But in specific situations, particularly when rapidly updating partitioning information
+// for tables with huge number of shards, this overhead could lead to significant issues.
+// Schemeboard replicas could get overloaded and become unresponsive to further requests.
+// This is problematic, especially considering the schemeboard subsystem's critical role
+// in servicing all databases within a cluster, making it a Single Point of Failure (SPOF).
+//
+// The core realization is that the schemeboard components do not require the full content of
+// a TEvDescribeSchemeResult message to operate efficiently. Instead, only a limited set of
+// fields (path, path-id, version and info about subdomain/database) is required for processing.
+// And a whole TEvDescribeSchemeResult could be passed through as an opaque payload.
+//
+// Type change from TEvDescribeSchemeResult to (repeated) bytes without changing field number
+// is a safe move. Actual value of the field remains unchanged at the wire-format level.
+// Thus, older implementations will interpret the payload as a TEvDescribeSchemeResult message
+// and proceed with deserialization as usual. And newer implementations will recognize the data
+// as a binary blob and will deserialize it explicitly only when necessary.
+//
+// Note that the `repeated` label for the `DescribeSchemeResultSerialized` field is essential
+// to remain backward-compatible with the previous implementation. This is because even if
+// DescribeSchemeResult previously was labeled `optional` but actual value used at
+// the wire-format level was (and is) a pack of TEvDescribeSchemeResult messages.
+// Automerge of consecutive messages for the same field is a prominent feature of the protobuf.
+// Schemeshard use that feature to supply full TEvDescribeSchemeResult as a sequence of
+// partially filled TEvDescribeSchemeResult's.
+//
+// - Path
+// - PathOwnerId, LocalPathId
+// - PathDirEntryPathVersion
+// - PathSubdomainPathId
+// - PathAbandonedTenantsSchemeShards
+// are taken from the original TEvDescribeSchemeResult (one way or another).
+//
 message TEvUpdate {
     optional uint64 Owner = 1;
     optional uint64 Generation = 2;
     optional TLocalPathIdRange DeletedLocalPathIds = 3;
-    optional string Path = 4;
-    optional uint64 LocalPathId = 5;
+
+    optional string Path = 4;  // extracted from DescribeSchemeResult.Path
+    optional uint64 LocalPathId = 5;  // extracted from DescribeSchemeResult.PathId
+
     optional bool IsDeletion = 6 [default = false];
-    optional NKikimrScheme.TEvDescribeSchemeResult DescribeSchemeResult = 7;
+
+    repeated bytes DescribeSchemeResultSerialized = 7;
+
     optional bool NeedAck = 8 [default = false];
-    optional uint64 PathOwnerId = 9;
+
+    optional uint64 PathOwnerId = 9;  // extracted from DescribeSchemeResult.PathOwnerId, DescribeSchemeResult.PathDescription.Self.SchemeshardId in order of presence
+
     optional TLocalPathIdRange MigratedLocalPathIds = 10;
+
+    // Explicit values extracted from DescribeSchemeResultSerialized
+
+    //  DescribeSchemeResult.PathDescription.Self.PathVersion
+    optional uint64 PathDirEntryPathVersion = 11;
+
+    //  DescribeSchemeResult.PathDescription.DomainDescription.DomainKey
+    optional NKikimrProto.TPathID PathSubdomainPathId = 13;
+
+    //  DescribeSchemeResult.PathDescription.AbandonedTenantsSchemeShards
+    repeated uint64 PathAbandonedTenantsSchemeShards = 14;
 }
 
 message TEvUpdateAck {
@@ -65,6 +119,7 @@ message TEvUnsubscribe {
     optional uint64 LocalPathId = 3;
 }
 
+ // See comments for TEvUpdate.
 message TEvNotify {
     optional string Path = 1;
     // and/or
@@ -72,9 +127,14 @@ message TEvNotify {
     optional uint64 LocalPathId = 3;
     // common fields
     optional bool IsDeletion = 4 [default = false];
-    optional NKikimrScheme.TEvDescribeSchemeResult DescribeSchemeResult = 5;
-    optional uint64 Version = 6;
+
+    optional bytes DescribeSchemeResultSerialized = 5;
+
+    optional uint64 Version = 6;  // same as TEvUpdate.PathDirEntryPathVersion
     optional bool Strong = 7 [default = false];
+
+    optional NKikimrProto.TPathID PathSubdomainPathId = 8;
+    repeated uint64 PathAbandonedTenantsSchemeShards = 9;
 }
 
 message TEvNotifyAck {
diff --git a/ydb/core/protos/statistics.proto b/ydb/core/protos/statistics.proto
index 88efbd1b70e5..6767ca6fc251 100644
--- a/ydb/core/protos/statistics.proto
+++ b/ydb/core/protos/statistics.proto
@@ -44,9 +44,10 @@ message TEvConnectNode {
 message TEvRequestStats {
     optional uint32 NodeId = 1;
     repeated fixed64 NeedSchemeShards = 2;
+    optional bool Urgent = 3;
 }
 
-// SA -> nodes
+// SA -> nodes, node -> nodes
 message TEvPropagateStatistics {
     repeated uint32 NodeIds = 1; // hierarchical propagation
     message TStatsEntry {
@@ -57,6 +58,10 @@ message TEvPropagateStatistics {
     repeated TStatsEntry Entries = 2;
 }
 
+// node -> SA, node -> node
+message TEvPropagateStatisticsResponse {
+}
+
 // SA -> nodes
 message TEvStatisticsIsDisabled {
 }
diff --git a/ydb/core/protos/table_service_config.proto b/ydb/core/protos/table_service_config.proto
index 54aa9c0d8335..5207845e4028 100644
--- a/ydb/core/protos/table_service_config.proto
+++ b/ydb/core/protos/table_service_config.proto
@@ -234,8 +234,8 @@ message TTableServiceConfig {
     optional bool EnablePredicateExtractForDataQueries = 37 [default = true];
     optional bool EnableKqpImmediateEffects = 38 [default = true];
     optional bool EnableSequentialReads = 39 [default = true];
-    optional bool EnablePreparedDdl = 42 [default = false];
-    optional bool EnableSequences = 43 [default = true];
+    optional bool EnablePreparedDdl = 42 [default = true];
+    optional bool EnableSequences = 43 [default = false];
     optional bool EnableAsyncComputationPatternCompilation = 48 [default = true];
     optional TCompileComputationPatternServiceConfig CompileComputationPatternServiceConfig = 47;
 
@@ -256,7 +256,7 @@ message TTableServiceConfig {
         CTV_OOB_PICKLE_1_0 = 1;
     }
 
-    optional EChannelTransportVersion ChannelTransportVersion = 46 [default = CTV_OOB_PICKLE_1_0];
+    optional EChannelTransportVersion ChannelTransportVersion = 46 [default = CTV_UV_PICKLE_1_0];
 
     enum EIndexAutoChooseMode {
         DISABLED = 0;
@@ -266,11 +266,14 @@ message TTableServiceConfig {
     }
     optional EIndexAutoChooseMode IndexAutoChooseMode = 50 [default = DISABLED];
 
-    optional bool EnableColumnsWithDefault = 51 [default = true];
+    optional bool EnableColumnsWithDefault = 51 [default = false];
 
     optional bool EnableAstCache = 52 [default = false];
     optional bool EnablePgConstsToParams = 53 [default = false];
 
     optional uint64 ExtractPredicateRangesLimit = 54 [default = 10000];
     optional bool EnableOlapSink = 55 [default = false];
+
+    optional uint64 IdxLookupJoinPointsLimit = 58 [default = 1];
+    optional bool OldLookupJoinBehaviour = 59 [default = true]; 
 };
diff --git a/ydb/core/protos/tx_columnshard.proto b/ydb/core/protos/tx_columnshard.proto
index 1700172483fa..2caec98084ab 100644
--- a/ydb/core/protos/tx_columnshard.proto
+++ b/ydb/core/protos/tx_columnshard.proto
@@ -1,4 +1,5 @@
 import "ydb/library/actors/protos/actors.proto";
+import "ydb/core/tx/columnshard/engines/scheme/statistics/protos/data.proto";
 import "ydb/core/protos/flat_scheme_op.proto";
 import "ydb/core/protos/long_tx_service.proto";
 import "ydb/core/protos/subdomains.proto";
@@ -128,6 +129,7 @@ enum ETransactionKind {
     TX_KIND_TTL = 3; // Immediate (not planned)
     TX_KIND_DATA = 4;
     TX_KIND_COMMIT_WRITE = 5;
+    TX_KIND_BACKUP = 6;
 }
 
 enum ETransactionFlag {
@@ -181,6 +183,14 @@ message TCommitTxBody {
     repeated uint64 WriteIds = 2;
 }
 
+message TBackupTxBody {
+    optional NKikimrSchemeOp.TBackupTask BackupTask = 1;
+}
+
+message TCommitWriteTxBody {
+    optional uint64 LockId = 1;
+}
+
 message TSchemaPresetVersionInfo {
     optional uint64 Id = 1;
     optional uint64 SinceStep = 2;
@@ -277,6 +287,7 @@ message TIndexPortionMeta {
     optional bytes PrimaryKeyBorders = 6; // arrow::RecordBatch with first and last ReplaceKey rows
     optional TSnapshot RecordSnapshotMin = 7;
     optional TSnapshot RecordSnapshotMax = 8;
+    optional NKikimrColumnShardStatisticsProto.TPortionStorage StatisticsStorage = 9;
 }
 
 message TIndexColumnMeta {
diff --git a/ydb/core/protos/tx_datashard.proto b/ydb/core/protos/tx_datashard.proto
index 6a1313776694..cb2e5fe3b9eb 100644
--- a/ydb/core/protos/tx_datashard.proto
+++ b/ydb/core/protos/tx_datashard.proto
@@ -101,6 +101,7 @@ message TReadTableTransaction {
         optional string Name = 2;
         optional uint32 TypeId = 3;
         optional NKikimrProto.TTypeInfo TypeInfo = 4;
+        optional bool NotNull = 5 [default = false]; //If not set datashard will treat not null type as nullable (for compatibility)
     }
 
     optional NKikimrDataEvents.TTableId TableId = 1;
@@ -1882,6 +1883,10 @@ message TTxVolatileDetails {
 
     // When true all preceding transactions are dependencies
     optional bool CommitOrdered = 8;
+
+    // When true marks an arbiter for other participants
+    // Arbiters hold outgoing readsets until the transaction is decided
+    optional bool IsArbiter = 9;
 }
 
 // Sent by datashard when some overload reason stopped being relevant
diff --git a/ydb/core/protos/tx_proxy.proto b/ydb/core/protos/tx_proxy.proto
index 5eac2fede50e..d983efcf7a1a 100644
--- a/ydb/core/protos/tx_proxy.proto
+++ b/ydb/core/protos/tx_proxy.proto
@@ -60,6 +60,7 @@ message TReadTableTransaction {
     enum EVersion {
         UNSPECIFIED = 0;
         YDB_V1 = 1;
+        YDB_V2 = 2; // Like V1 but allows NotNull types in result set
     }
     optional string Path = 1;
     optional bool Ordered = 2 [default = false];
diff --git a/ydb/core/protos/tx_sequenceshard.proto b/ydb/core/protos/tx_sequenceshard.proto
index 9a034f314fe9..e092dc447bd7 100644
--- a/ydb/core/protos/tx_sequenceshard.proto
+++ b/ydb/core/protos/tx_sequenceshard.proto
@@ -18,6 +18,11 @@ message TEvMarkSchemeShardPipe {
 }
 
 message TEvCreateSequence {
+    message TSetVal {
+        sint64 NextValue = 1;
+        bool NextUsed = 2;
+    }
+
     NKikimrProto.TPathID PathId = 1;
     uint64 TxId = 2;
     uint64 TxPartId = 3;
@@ -39,6 +44,8 @@ message TEvCreateSequence {
     oneof OptionalCycle {
         bool Cycle = 9;
     }
+    bool Frozen = 10; // defaults to false
+    TSetVal SetVal = 11;
 }
 
 message TEvCreateSequenceResult {
@@ -224,3 +231,33 @@ message TEvRedirectSequenceResult {
     uint64 TxId = 3;
     uint64 TxPartId = 4;
 }
+
+message TEvGetSequence {
+    NKikimrProto.TPathID PathId = 1;
+    uint64 TxId = 2;
+    uint64 TxPartId = 3;
+}
+
+message TEvGetSequenceResult {
+    enum EStatus {
+        UNKNOWN = 0;
+        SUCCESS = 1;
+        PIPE_OUTDATED = 2;
+        SEQUENCE_NOT_FOUND = 3;
+        SEQUENCE_MOVED = 4;
+    }
+
+    EStatus Status = 1;
+    uint64 Origin = 2;
+    uint64 TxId = 3;
+    uint64 TxPartId = 4;
+    uint64 MovedTo = 5; // moved to a different sequence shard
+    sint64 MinValue = 6;
+    sint64 MaxValue = 7;
+    sint64 StartValue = 8;
+    sint64 NextValue = 9;
+    bool NextUsed = 10;
+    uint64 Cache = 11;
+    sint64 Increment = 12;
+    bool Cycle = 13;
+}
diff --git a/ydb/core/protos/ya.make b/ydb/core/protos/ya.make
index 13c7f54a784f..014ae2e924ac 100644
--- a/ydb/core/protos/ya.make
+++ b/ydb/core/protos/ya.make
@@ -158,6 +158,7 @@ PEERDIR(
     ydb/library/yql/public/types
     ydb/library/services
     ydb/library/ydb_issue/proto
+    ydb/core/tx/columnshard/engines/scheme/statistics/protos
 )
 
 EXCLUDE_TAGS(GO_PROTO)
diff --git a/ydb/core/public_http/CMakeLists.darwin-arm64.txt b/ydb/core/public_http/CMakeLists.darwin-arm64.txt
index 96a7abc7bc23..8bbfe352b6f8 100644
--- a/ydb/core/public_http/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/public_http/CMakeLists.darwin-arm64.txt
@@ -37,6 +37,10 @@ target_link_libraries(ydb-core-public_http PUBLIC
   cpp-client-ydb_types
 )
 target_sources(ydb-core-public_http PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_req.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_service.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/grpc_request_context_wrapper.h
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_req.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_service.cpp
diff --git a/ydb/core/public_http/CMakeLists.darwin-x86_64.txt b/ydb/core/public_http/CMakeLists.darwin-x86_64.txt
index 96a7abc7bc23..8bbfe352b6f8 100644
--- a/ydb/core/public_http/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/public_http/CMakeLists.darwin-x86_64.txt
@@ -37,6 +37,10 @@ target_link_libraries(ydb-core-public_http PUBLIC
   cpp-client-ydb_types
 )
 target_sources(ydb-core-public_http PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_req.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_service.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/grpc_request_context_wrapper.h
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_req.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_service.cpp
diff --git a/ydb/core/public_http/CMakeLists.linux-aarch64.txt b/ydb/core/public_http/CMakeLists.linux-aarch64.txt
index 3246c1a67708..b444adcd479a 100644
--- a/ydb/core/public_http/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/public_http/CMakeLists.linux-aarch64.txt
@@ -38,6 +38,10 @@ target_link_libraries(ydb-core-public_http PUBLIC
   cpp-client-ydb_types
 )
 target_sources(ydb-core-public_http PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_req.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_service.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/grpc_request_context_wrapper.h
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_req.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_service.cpp
diff --git a/ydb/core/public_http/CMakeLists.linux-x86_64.txt b/ydb/core/public_http/CMakeLists.linux-x86_64.txt
index 3246c1a67708..b444adcd479a 100644
--- a/ydb/core/public_http/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/public_http/CMakeLists.linux-x86_64.txt
@@ -38,6 +38,10 @@ target_link_libraries(ydb-core-public_http PUBLIC
   cpp-client-ydb_types
 )
 target_sources(ydb-core-public_http PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_req.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_service.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/grpc_request_context_wrapper.h
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_req.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_service.cpp
diff --git a/ydb/core/public_http/CMakeLists.windows-x86_64.txt b/ydb/core/public_http/CMakeLists.windows-x86_64.txt
index 96a7abc7bc23..8bbfe352b6f8 100644
--- a/ydb/core/public_http/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/public_http/CMakeLists.windows-x86_64.txt
@@ -37,6 +37,10 @@ target_link_libraries(ydb-core-public_http PUBLIC
   cpp-client-ydb_types
 )
 target_sources(ydb-core-public_http PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_req.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_service.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/public_http/grpc_request_context_wrapper.h
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_req.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_service.cpp
diff --git a/ydb/core/public_http/protos/CMakeLists.darwin-arm64.txt b/ydb/core/public_http/protos/CMakeLists.darwin-arm64.txt
index 69379327d8f1..f1d9ca482cad 100644
--- a/ydb/core/public_http/protos/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/public_http/protos/CMakeLists.darwin-arm64.txt
@@ -29,6 +29,9 @@ target_link_libraries(core-public_http-protos PUBLIC
 target_proto_messages(core-public_http-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/protos/fq.proto
 )
+target_sources(core-public_http-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/public_http/protos/fq.pb.h
+)
 target_proto_addincls(core-public_http-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/public_http/protos/CMakeLists.darwin-x86_64.txt b/ydb/core/public_http/protos/CMakeLists.darwin-x86_64.txt
index 69379327d8f1..f1d9ca482cad 100644
--- a/ydb/core/public_http/protos/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/public_http/protos/CMakeLists.darwin-x86_64.txt
@@ -29,6 +29,9 @@ target_link_libraries(core-public_http-protos PUBLIC
 target_proto_messages(core-public_http-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/protos/fq.proto
 )
+target_sources(core-public_http-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/public_http/protos/fq.pb.h
+)
 target_proto_addincls(core-public_http-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/public_http/protos/CMakeLists.linux-aarch64.txt b/ydb/core/public_http/protos/CMakeLists.linux-aarch64.txt
index 55f98c96cbf6..d61e9c73107f 100644
--- a/ydb/core/public_http/protos/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/public_http/protos/CMakeLists.linux-aarch64.txt
@@ -30,6 +30,9 @@ target_link_libraries(core-public_http-protos PUBLIC
 target_proto_messages(core-public_http-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/protos/fq.proto
 )
+target_sources(core-public_http-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/public_http/protos/fq.pb.h
+)
 target_proto_addincls(core-public_http-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/public_http/protos/CMakeLists.linux-x86_64.txt b/ydb/core/public_http/protos/CMakeLists.linux-x86_64.txt
index 55f98c96cbf6..d61e9c73107f 100644
--- a/ydb/core/public_http/protos/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/public_http/protos/CMakeLists.linux-x86_64.txt
@@ -30,6 +30,9 @@ target_link_libraries(core-public_http-protos PUBLIC
 target_proto_messages(core-public_http-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/protos/fq.proto
 )
+target_sources(core-public_http-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/public_http/protos/fq.pb.h
+)
 target_proto_addincls(core-public_http-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/public_http/protos/CMakeLists.windows-x86_64.txt b/ydb/core/public_http/protos/CMakeLists.windows-x86_64.txt
index 69379327d8f1..f1d9ca482cad 100644
--- a/ydb/core/public_http/protos/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/public_http/protos/CMakeLists.windows-x86_64.txt
@@ -29,6 +29,9 @@ target_link_libraries(core-public_http-protos PUBLIC
 target_proto_messages(core-public_http-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/protos/fq.proto
 )
+target_sources(core-public_http-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/public_http/protos/fq.pb.h
+)
 target_proto_addincls(core-public_http-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/public_http/ut/CMakeLists.darwin-arm64.txt b/ydb/core/public_http/ut/CMakeLists.darwin-arm64.txt
index 8500657040b2..1b818c9ba33b 100644
--- a/ydb/core/public_http/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/public_http/ut/CMakeLists.darwin-arm64.txt
@@ -28,8 +28,6 @@ target_link_options(ydb-core-public_http-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-public_http-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router_ut.cpp
@@ -59,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/public_http/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/public_http/ut/CMakeLists.darwin-x86_64.txt
index ed51bde73c89..e174fb774f2c 100644
--- a/ydb/core/public_http/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/public_http/ut/CMakeLists.darwin-x86_64.txt
@@ -29,8 +29,6 @@ target_link_options(ydb-core-public_http-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-public_http-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router_ut.cpp
@@ -60,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/public_http/ut/CMakeLists.linux-aarch64.txt b/ydb/core/public_http/ut/CMakeLists.linux-aarch64.txt
index 7e4336e99727..1a73f592a997 100644
--- a/ydb/core/public_http/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/public_http/ut/CMakeLists.linux-aarch64.txt
@@ -31,9 +31,6 @@ target_link_options(ydb-core-public_http-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-public_http-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router_ut.cpp
@@ -63,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/public_http/ut/CMakeLists.linux-x86_64.txt b/ydb/core/public_http/ut/CMakeLists.linux-x86_64.txt
index ec56fc75c9f9..b07cda110288 100644
--- a/ydb/core/public_http/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/public_http/ut/CMakeLists.linux-x86_64.txt
@@ -32,9 +32,6 @@ target_link_options(ydb-core-public_http-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-public_http-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/public_http/http_router_ut.cpp
@@ -64,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/public_http/ut/CMakeLists.windows-x86_64.txt b/ydb/core/public_http/ut/CMakeLists.windows-x86_64.txt
index a09328b774eb..97280d433a27 100644
--- a/ydb/core/public_http/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/public_http/ut/CMakeLists.windows-x86_64.txt
@@ -53,6 +53,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/quoter/CMakeLists.darwin-arm64.txt b/ydb/core/quoter/CMakeLists.darwin-arm64.txt
index ccb2250206f7..907b1685bee3 100644
--- a/ydb/core/quoter/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/quoter/CMakeLists.darwin-arm64.txt
@@ -24,6 +24,9 @@ target_link_libraries(ydb-core-quoter PUBLIC
   ydb-library-time_series_vec
 )
 target_sources(ydb-core-quoter PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service_impl.h
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/debug_info.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/kesus_quoter_proxy.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/probes.cpp
diff --git a/ydb/core/quoter/CMakeLists.darwin-x86_64.txt b/ydb/core/quoter/CMakeLists.darwin-x86_64.txt
index ccb2250206f7..907b1685bee3 100644
--- a/ydb/core/quoter/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/quoter/CMakeLists.darwin-x86_64.txt
@@ -24,6 +24,9 @@ target_link_libraries(ydb-core-quoter PUBLIC
   ydb-library-time_series_vec
 )
 target_sources(ydb-core-quoter PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service_impl.h
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/debug_info.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/kesus_quoter_proxy.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/probes.cpp
diff --git a/ydb/core/quoter/CMakeLists.linux-aarch64.txt b/ydb/core/quoter/CMakeLists.linux-aarch64.txt
index f6c84e24261a..c9fcb5eed294 100644
--- a/ydb/core/quoter/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/quoter/CMakeLists.linux-aarch64.txt
@@ -25,6 +25,9 @@ target_link_libraries(ydb-core-quoter PUBLIC
   ydb-library-time_series_vec
 )
 target_sources(ydb-core-quoter PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service_impl.h
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/debug_info.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/kesus_quoter_proxy.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/probes.cpp
diff --git a/ydb/core/quoter/CMakeLists.linux-x86_64.txt b/ydb/core/quoter/CMakeLists.linux-x86_64.txt
index f6c84e24261a..c9fcb5eed294 100644
--- a/ydb/core/quoter/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/quoter/CMakeLists.linux-x86_64.txt
@@ -25,6 +25,9 @@ target_link_libraries(ydb-core-quoter PUBLIC
   ydb-library-time_series_vec
 )
 target_sources(ydb-core-quoter PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service_impl.h
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/debug_info.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/kesus_quoter_proxy.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/probes.cpp
diff --git a/ydb/core/quoter/CMakeLists.windows-x86_64.txt b/ydb/core/quoter/CMakeLists.windows-x86_64.txt
index 729e08ea4d58..ace2426b2c28 100644
--- a/ydb/core/quoter/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/quoter/CMakeLists.windows-x86_64.txt
@@ -23,6 +23,9 @@ target_link_libraries(ydb-core-quoter PUBLIC
   ydb-library-time_series_vec
 )
 target_sources(ydb-core-quoter PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service_impl.h
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/debug_info.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/kesus_quoter_proxy.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/probes.cpp
diff --git a/ydb/core/quoter/public/CMakeLists.darwin-arm64.txt b/ydb/core/quoter/public/CMakeLists.darwin-arm64.txt
index c11b5d5b8aa5..80ffbff8b634 100644
--- a/ydb/core/quoter/public/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/quoter/public/CMakeLists.darwin-arm64.txt
@@ -25,6 +25,7 @@ target_link_libraries(core-quoter-public PUBLIC
   tools-enum_parser-enum_serialization_runtime
 )
 target_sources(core-quoter-public PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.h
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.cpp
 )
 generate_enum_serilization(core-quoter-public
diff --git a/ydb/core/quoter/public/CMakeLists.darwin-x86_64.txt b/ydb/core/quoter/public/CMakeLists.darwin-x86_64.txt
index c11b5d5b8aa5..80ffbff8b634 100644
--- a/ydb/core/quoter/public/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/quoter/public/CMakeLists.darwin-x86_64.txt
@@ -25,6 +25,7 @@ target_link_libraries(core-quoter-public PUBLIC
   tools-enum_parser-enum_serialization_runtime
 )
 target_sources(core-quoter-public PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.h
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.cpp
 )
 generate_enum_serilization(core-quoter-public
diff --git a/ydb/core/quoter/public/CMakeLists.linux-aarch64.txt b/ydb/core/quoter/public/CMakeLists.linux-aarch64.txt
index 15344b765f70..52abb766ca2e 100644
--- a/ydb/core/quoter/public/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/quoter/public/CMakeLists.linux-aarch64.txt
@@ -26,6 +26,7 @@ target_link_libraries(core-quoter-public PUBLIC
   tools-enum_parser-enum_serialization_runtime
 )
 target_sources(core-quoter-public PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.h
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.cpp
 )
 generate_enum_serilization(core-quoter-public
diff --git a/ydb/core/quoter/public/CMakeLists.linux-x86_64.txt b/ydb/core/quoter/public/CMakeLists.linux-x86_64.txt
index 15344b765f70..52abb766ca2e 100644
--- a/ydb/core/quoter/public/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/quoter/public/CMakeLists.linux-x86_64.txt
@@ -26,6 +26,7 @@ target_link_libraries(core-quoter-public PUBLIC
   tools-enum_parser-enum_serialization_runtime
 )
 target_sources(core-quoter-public PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.h
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.cpp
 )
 generate_enum_serilization(core-quoter-public
diff --git a/ydb/core/quoter/public/CMakeLists.windows-x86_64.txt b/ydb/core/quoter/public/CMakeLists.windows-x86_64.txt
index c11b5d5b8aa5..80ffbff8b634 100644
--- a/ydb/core/quoter/public/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/quoter/public/CMakeLists.windows-x86_64.txt
@@ -25,6 +25,7 @@ target_link_libraries(core-quoter-public PUBLIC
   tools-enum_parser-enum_serialization_runtime
 )
 target_sources(core-quoter-public PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.h
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/public/quoter.cpp
 )
 generate_enum_serilization(core-quoter-public
diff --git a/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.darwin-arm64.txt b/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.darwin-arm64.txt
index 1b5748a5bd0c..a33b96a98cc5 100644
--- a/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.darwin-arm64.txt
@@ -25,8 +25,6 @@ target_link_options(quoter_service_bandwidth_test PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(quoter_service_bandwidth_test PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service_bandwidth_test/main.cpp
diff --git a/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.darwin-x86_64.txt b/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.darwin-x86_64.txt
index 30406f7e8cca..80b36e151139 100644
--- a/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.darwin-x86_64.txt
@@ -26,8 +26,6 @@ target_link_options(quoter_service_bandwidth_test PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(quoter_service_bandwidth_test PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service_bandwidth_test/main.cpp
diff --git a/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.linux-aarch64.txt b/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.linux-aarch64.txt
index 967d47bc58cc..13d2a6c86731 100644
--- a/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.linux-aarch64.txt
@@ -28,9 +28,6 @@ target_link_options(quoter_service_bandwidth_test PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(quoter_service_bandwidth_test PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service_bandwidth_test/main.cpp
diff --git a/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.linux-x86_64.txt b/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.linux-x86_64.txt
index e250b9e32e95..4ce9be97eff3 100644
--- a/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/quoter/quoter_service_bandwidth_test/CMakeLists.linux-x86_64.txt
@@ -29,9 +29,6 @@ target_link_options(quoter_service_bandwidth_test PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(quoter_service_bandwidth_test PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/quoter_service_bandwidth_test/main.cpp
diff --git a/ydb/core/quoter/ut/CMakeLists.darwin-arm64.txt b/ydb/core/quoter/ut/CMakeLists.darwin-arm64.txt
index 91fcd9d17599..f9ca060e266c 100644
--- a/ydb/core/quoter/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/quoter/ut/CMakeLists.darwin-arm64.txt
@@ -26,8 +26,6 @@ target_link_options(ydb-core-quoter-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-quoter-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/kesus_quoter_ut.cpp
@@ -59,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/quoter/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/quoter/ut/CMakeLists.darwin-x86_64.txt
index 700d6c672e28..655fb6e5dcff 100644
--- a/ydb/core/quoter/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/quoter/ut/CMakeLists.darwin-x86_64.txt
@@ -27,8 +27,6 @@ target_link_options(ydb-core-quoter-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-quoter-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/kesus_quoter_ut.cpp
@@ -60,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/quoter/ut/CMakeLists.linux-aarch64.txt b/ydb/core/quoter/ut/CMakeLists.linux-aarch64.txt
index 0fdf358104ed..b9973921a344 100644
--- a/ydb/core/quoter/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/quoter/ut/CMakeLists.linux-aarch64.txt
@@ -29,9 +29,6 @@ target_link_options(ydb-core-quoter-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-quoter-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/kesus_quoter_ut.cpp
@@ -63,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/quoter/ut/CMakeLists.linux-x86_64.txt b/ydb/core/quoter/ut/CMakeLists.linux-x86_64.txt
index 27a18de59ac9..1918130f9715 100644
--- a/ydb/core/quoter/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/quoter/ut/CMakeLists.linux-x86_64.txt
@@ -30,9 +30,6 @@ target_link_options(ydb-core-quoter-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-quoter-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/quoter/kesus_quoter_ut.cpp
@@ -64,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/quoter/ut_helpers.cpp b/ydb/core/quoter/ut_helpers.cpp
index ca36d439c90e..61b582b76ed4 100644
--- a/ydb/core/quoter/ut_helpers.cpp
+++ b/ydb/core/quoter/ut_helpers.cpp
@@ -180,7 +180,7 @@ TKesusProxyTestSetup::TKesusProxyTestSetup() {
 }
 
 TTestActorRuntime::TEgg MakeEgg() {
-    return { new TAppData(0, 0, 0, 0, { }, nullptr, nullptr, nullptr, nullptr), nullptr, nullptr };
+    return { new TAppData(0, 0, 0, 0, { }, nullptr, nullptr, nullptr, nullptr), nullptr, nullptr, {} };
 }
 
 void TKesusProxyTestSetup::Start() {
diff --git a/ydb/core/raw_socket/CMakeLists.darwin-arm64.txt b/ydb/core/raw_socket/CMakeLists.darwin-arm64.txt
index d02778f522a7..be147208b936 100644
--- a/ydb/core/raw_socket/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/raw_socket/CMakeLists.darwin-arm64.txt
@@ -17,5 +17,10 @@ target_link_libraries(ydb-core-raw_socket PUBLIC
   ydb-core-protos
 )
 target_sources(ydb-core-raw_socket PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock64.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_config.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_listener.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_ssl.h
   ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_listener.cpp
 )
diff --git a/ydb/core/raw_socket/CMakeLists.darwin-x86_64.txt b/ydb/core/raw_socket/CMakeLists.darwin-x86_64.txt
index d02778f522a7..be147208b936 100644
--- a/ydb/core/raw_socket/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/raw_socket/CMakeLists.darwin-x86_64.txt
@@ -17,5 +17,10 @@ target_link_libraries(ydb-core-raw_socket PUBLIC
   ydb-core-protos
 )
 target_sources(ydb-core-raw_socket PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock64.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_config.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_listener.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_ssl.h
   ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_listener.cpp
 )
diff --git a/ydb/core/raw_socket/CMakeLists.linux-aarch64.txt b/ydb/core/raw_socket/CMakeLists.linux-aarch64.txt
index 5ef99c0d5b22..a5840a8abd17 100644
--- a/ydb/core/raw_socket/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/raw_socket/CMakeLists.linux-aarch64.txt
@@ -18,5 +18,10 @@ target_link_libraries(ydb-core-raw_socket PUBLIC
   ydb-core-protos
 )
 target_sources(ydb-core-raw_socket PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock64.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_config.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_listener.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_ssl.h
   ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_listener.cpp
 )
diff --git a/ydb/core/raw_socket/CMakeLists.linux-x86_64.txt b/ydb/core/raw_socket/CMakeLists.linux-x86_64.txt
index 5ef99c0d5b22..a5840a8abd17 100644
--- a/ydb/core/raw_socket/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/raw_socket/CMakeLists.linux-x86_64.txt
@@ -18,5 +18,10 @@ target_link_libraries(ydb-core-raw_socket PUBLIC
   ydb-core-protos
 )
 target_sources(ydb-core-raw_socket PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock64.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_config.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_listener.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_ssl.h
   ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_listener.cpp
 )
diff --git a/ydb/core/raw_socket/CMakeLists.windows-x86_64.txt b/ydb/core/raw_socket/CMakeLists.windows-x86_64.txt
index d02778f522a7..be147208b936 100644
--- a/ydb/core/raw_socket/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/raw_socket/CMakeLists.windows-x86_64.txt
@@ -17,5 +17,10 @@ target_link_libraries(ydb-core-raw_socket PUBLIC
   ydb-core-protos
 )
 target_sources(ydb-core-raw_socket PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock64.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_config.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_listener.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_ssl.h
   ${CMAKE_SOURCE_DIR}/ydb/core/raw_socket/sock_listener.cpp
 )
diff --git a/ydb/core/scheme/protos/CMakeLists.darwin-arm64.txt b/ydb/core/scheme/protos/CMakeLists.darwin-arm64.txt
index 0191fcd83372..5e4a2bfc10ad 100644
--- a/ydb/core/scheme/protos/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/scheme/protos/CMakeLists.darwin-arm64.txt
@@ -64,6 +64,14 @@ target_proto_messages(core-scheme-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/scheme/protos/key_range.proto
   ${CMAKE_SOURCE_DIR}/ydb/core/scheme/protos/pathid.proto
 )
+target_sources(core-scheme-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/type_info.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/type_info.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/key_range.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/key_range.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/pathid.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/pathid.grpc.pb.h
+)
 target_proto_addincls(core-scheme-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/scheme/protos/CMakeLists.darwin-x86_64.txt b/ydb/core/scheme/protos/CMakeLists.darwin-x86_64.txt
index 0191fcd83372..5e4a2bfc10ad 100644
--- a/ydb/core/scheme/protos/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/scheme/protos/CMakeLists.darwin-x86_64.txt
@@ -64,6 +64,14 @@ target_proto_messages(core-scheme-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/scheme/protos/key_range.proto
   ${CMAKE_SOURCE_DIR}/ydb/core/scheme/protos/pathid.proto
 )
+target_sources(core-scheme-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/type_info.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/type_info.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/key_range.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/key_range.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/pathid.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/pathid.grpc.pb.h
+)
 target_proto_addincls(core-scheme-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/scheme/protos/CMakeLists.linux-aarch64.txt b/ydb/core/scheme/protos/CMakeLists.linux-aarch64.txt
index c8f537f77c45..c2ccd028ae93 100644
--- a/ydb/core/scheme/protos/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/scheme/protos/CMakeLists.linux-aarch64.txt
@@ -65,6 +65,14 @@ target_proto_messages(core-scheme-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/scheme/protos/key_range.proto
   ${CMAKE_SOURCE_DIR}/ydb/core/scheme/protos/pathid.proto
 )
+target_sources(core-scheme-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/type_info.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/type_info.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/key_range.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/key_range.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/pathid.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/pathid.grpc.pb.h
+)
 target_proto_addincls(core-scheme-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/scheme/protos/CMakeLists.linux-x86_64.txt b/ydb/core/scheme/protos/CMakeLists.linux-x86_64.txt
index c8f537f77c45..c2ccd028ae93 100644
--- a/ydb/core/scheme/protos/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/scheme/protos/CMakeLists.linux-x86_64.txt
@@ -65,6 +65,14 @@ target_proto_messages(core-scheme-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/scheme/protos/key_range.proto
   ${CMAKE_SOURCE_DIR}/ydb/core/scheme/protos/pathid.proto
 )
+target_sources(core-scheme-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/type_info.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/type_info.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/key_range.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/key_range.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/pathid.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/pathid.grpc.pb.h
+)
 target_proto_addincls(core-scheme-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/scheme/protos/CMakeLists.windows-x86_64.txt b/ydb/core/scheme/protos/CMakeLists.windows-x86_64.txt
index 0191fcd83372..5e4a2bfc10ad 100644
--- a/ydb/core/scheme/protos/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/scheme/protos/CMakeLists.windows-x86_64.txt
@@ -64,6 +64,14 @@ target_proto_messages(core-scheme-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/scheme/protos/key_range.proto
   ${CMAKE_SOURCE_DIR}/ydb/core/scheme/protos/pathid.proto
 )
+target_sources(core-scheme-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/type_info.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/type_info.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/key_range.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/key_range.grpc.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/pathid.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/scheme/protos/pathid.grpc.pb.h
+)
 target_proto_addincls(core-scheme-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/scheme/ut/CMakeLists.darwin-arm64.txt b/ydb/core/scheme/ut/CMakeLists.darwin-arm64.txt
index 603023a1a642..4adcf2e10ded 100644
--- a/ydb/core/scheme/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/scheme/ut/CMakeLists.darwin-arm64.txt
@@ -26,8 +26,6 @@ target_link_options(ydb-core-scheme-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-scheme-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/scheme/scheme_borders_ut.cpp
@@ -58,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/scheme/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/scheme/ut/CMakeLists.darwin-x86_64.txt
index 6b2abd07fcdb..263358cb4407 100644
--- a/ydb/core/scheme/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/scheme/ut/CMakeLists.darwin-x86_64.txt
@@ -27,8 +27,6 @@ target_link_options(ydb-core-scheme-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-scheme-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/scheme/scheme_borders_ut.cpp
@@ -59,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/scheme/ut/CMakeLists.linux-aarch64.txt b/ydb/core/scheme/ut/CMakeLists.linux-aarch64.txt
index 4bac93ddfc7a..7b08279165ed 100644
--- a/ydb/core/scheme/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/scheme/ut/CMakeLists.linux-aarch64.txt
@@ -29,9 +29,6 @@ target_link_options(ydb-core-scheme-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-scheme-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/scheme/scheme_borders_ut.cpp
@@ -62,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/scheme/ut/CMakeLists.linux-x86_64.txt b/ydb/core/scheme/ut/CMakeLists.linux-x86_64.txt
index 8f8e9fc1d8f4..1f6994162734 100644
--- a/ydb/core/scheme/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/scheme/ut/CMakeLists.linux-x86_64.txt
@@ -30,9 +30,6 @@ target_link_options(ydb-core-scheme-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-scheme-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/scheme/scheme_borders_ut.cpp
@@ -63,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/scheme/ut/CMakeLists.windows-x86_64.txt b/ydb/core/scheme/ut/CMakeLists.windows-x86_64.txt
index 9e546a0dccae..a2cf47da1397 100644
--- a/ydb/core/scheme/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/scheme/ut/CMakeLists.windows-x86_64.txt
@@ -52,6 +52,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/security/CMakeLists.darwin-arm64.txt b/ydb/core/security/CMakeLists.darwin-arm64.txt
index 0f944354284a..0797517591de 100644
--- a/ydb/core/security/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/security/CMakeLists.darwin-arm64.txt
@@ -27,6 +27,10 @@ target_link_libraries(ydb-core-security PUBLIC
   ydb-library-security
 )
 target_sources(ydb-core-security PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/login_page.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/secure_request.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser.h
   ${CMAKE_SOURCE_DIR}/ydb/core/security/login_page.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/security/login_shared_func.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser.cpp
diff --git a/ydb/core/security/CMakeLists.darwin-x86_64.txt b/ydb/core/security/CMakeLists.darwin-x86_64.txt
index 0f944354284a..0797517591de 100644
--- a/ydb/core/security/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/security/CMakeLists.darwin-x86_64.txt
@@ -27,6 +27,10 @@ target_link_libraries(ydb-core-security PUBLIC
   ydb-library-security
 )
 target_sources(ydb-core-security PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/login_page.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/secure_request.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser.h
   ${CMAKE_SOURCE_DIR}/ydb/core/security/login_page.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/security/login_shared_func.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser.cpp
diff --git a/ydb/core/security/CMakeLists.linux-aarch64.txt b/ydb/core/security/CMakeLists.linux-aarch64.txt
index 07a1b95a48c5..f3c51958ddb6 100644
--- a/ydb/core/security/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/security/CMakeLists.linux-aarch64.txt
@@ -28,6 +28,10 @@ target_link_libraries(ydb-core-security PUBLIC
   ydb-library-security
 )
 target_sources(ydb-core-security PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/login_page.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/secure_request.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser.h
   ${CMAKE_SOURCE_DIR}/ydb/core/security/login_page.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/security/login_shared_func.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser.cpp
diff --git a/ydb/core/security/CMakeLists.linux-x86_64.txt b/ydb/core/security/CMakeLists.linux-x86_64.txt
index 07a1b95a48c5..f3c51958ddb6 100644
--- a/ydb/core/security/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/security/CMakeLists.linux-x86_64.txt
@@ -28,6 +28,10 @@ target_link_libraries(ydb-core-security PUBLIC
   ydb-library-security
 )
 target_sources(ydb-core-security PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/login_page.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/secure_request.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser.h
   ${CMAKE_SOURCE_DIR}/ydb/core/security/login_page.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/security/login_shared_func.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser.cpp
diff --git a/ydb/core/security/CMakeLists.windows-x86_64.txt b/ydb/core/security/CMakeLists.windows-x86_64.txt
index 531caa341e70..ba03c962beba 100644
--- a/ydb/core/security/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/security/CMakeLists.windows-x86_64.txt
@@ -31,6 +31,10 @@ target_link_options(ydb-core-security INTERFACE
   -Wl,-Bdynamic
 )
 target_sources(ydb-core-security PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/login_page.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/secure_request.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser.h
   ${CMAKE_SOURCE_DIR}/ydb/core/security/login_page.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/security/login_shared_func.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser.cpp
diff --git a/ydb/core/security/certificate_check/cert_auth_processor.cpp b/ydb/core/security/certificate_check/cert_auth_processor.cpp
new file mode 100644
index 000000000000..f2effa29e9a7
--- /dev/null
+++ b/ydb/core/security/certificate_check/cert_auth_processor.cpp
@@ -0,0 +1,197 @@
+#include "cert_auth_processor.h"
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr {
+
+X509CertificateReader::X509Ptr X509CertificateReader::ReadCertAsPEM(const TStringBuf& cert) {
+    auto bio = BIOPtr(BIO_new_mem_buf(cert.data(), cert.size()));
+    if (!bio) {
+        return {};
+    }
+
+    auto x509 = X509Ptr(PEM_read_bio_X509(bio.get(), NULL, NULL, NULL));
+    if (!x509) {
+        return {};
+    }
+
+    return x509;
+}
+
+std::pair X509CertificateReader::GetTermFromX509Name(X509_NAME* name, int nid) {
+    if (name == nullptr) {
+        return {};
+    }
+
+    const char* sn = OBJ_nid2sn(nid);
+    if (sn == nullptr) {
+        return {};
+    }
+
+    char cnbuf[1024];
+    int name_len = X509_NAME_get_text_by_NID(name, nid, cnbuf, sizeof(cnbuf));
+    if (name_len <= 0) {
+        return {};
+    }
+
+    return std::make_pair(TString(sn, strlen(sn)), TString(cnbuf, name_len));
+}
+
+TVector> X509CertificateReader::ReadSubjectTerms(const X509Ptr& x509) {
+    X509_NAME* name = X509_get_subject_name(x509.get()); // return internal pointer
+
+    TVector> extractions = {
+        GetTermFromX509Name(name, NID_countryName),
+        GetTermFromX509Name(name, NID_stateOrProvinceName),
+        GetTermFromX509Name(name, NID_localityName),
+        GetTermFromX509Name(name, NID_organizationName),
+        GetTermFromX509Name(name, NID_organizationalUnitName),
+        GetTermFromX509Name(name, NID_commonName)
+    };
+
+    auto newEnd = std::remove(extractions.begin(), extractions.end(), std::pair{});
+    extractions.erase(newEnd, extractions.end());
+
+    return extractions;
+}
+
+TVector> X509CertificateReader::ReadTerms(X509_NAME* name) {
+    TVector> subjectTerms;
+    int entryCount = X509_NAME_entry_count(name);
+    subjectTerms.reserve(entryCount);
+    for (int i = 0; i < entryCount; i++) {
+        const X509_NAME_ENTRY* entry = X509_NAME_get_entry(name, i);
+        if (!entry) {
+            continue;
+        }
+        const ASN1_STRING* data = X509_NAME_ENTRY_get_data(entry);
+        if (!data) {
+            continue;
+        }
+
+        const ASN1_OBJECT* object = X509_NAME_ENTRY_get_object(entry);
+        if (!object) {
+            continue;
+        }
+        const int nid = OBJ_obj2nid(object);
+        const char* sn = OBJ_nid2sn(nid);
+        subjectTerms.push_back(std::make_pair(TString(sn, std::strlen(sn)), TString(reinterpret_cast(data->data), data->length)));
+    }
+    return subjectTerms;
+}
+
+TVector> X509CertificateReader::ReadAllSubjectTerms(const X509Ptr& x509) {
+    X509_NAME* name = X509_get_subject_name(x509.get()); // return internal pointer
+    return ReadTerms(name);
+}
+
+TVector> X509CertificateReader::ReadIssuerTerms(const X509Ptr& x509) {
+    X509_NAME* name = X509_get_issuer_name(x509.get()); // return internal pointer
+    return ReadTerms(name);
+}
+
+TString X509CertificateReader::GetFingerprint(const X509Ptr& x509) {
+    static constexpr size_t FINGERPRINT_LENGTH = SHA_DIGEST_LENGTH;
+    unsigned char fingerprint[FINGERPRINT_LENGTH];
+    if (X509_digest(x509.get(), EVP_sha1(), fingerprint, nullptr) <= 0) {
+        return "";
+    }
+    return HexEncode(fingerprint, FINGERPRINT_LENGTH);
+}
+
+TCertificateAuthorizationParams::TCertificateAuthorizationParams(const TDN& dn, bool requireSameIssuer, const std::vector& groups)
+    : SubjectDn(dn)
+    , RequireSameIssuer(requireSameIssuer)
+    , Groups(groups)
+{}
+
+TCertificateAuthorizationParams::TCertificateAuthorizationParams(TDN&& dn, bool requireSameIssuer, std::vector&& groups)
+    : SubjectDn(std::move(dn))
+    , RequireSameIssuer(requireSameIssuer)
+    , Groups(std::move(groups))
+{}
+
+TCertificateAuthorizationParams::TDN& TCertificateAuthorizationParams::TDN::AddRDN(const TRDN& rdn) {
+    RDNs.push_back(rdn);
+    return *this;
+}
+
+TCertificateAuthorizationParams::operator bool() const {
+    return SubjectDn;
+}
+
+bool TCertificateAuthorizationParams::CheckSubject(const std::unordered_map>& subjectDescription) const {
+    bool isDescriptionMatched = false;
+    for (const auto& rdn: SubjectDn.RDNs) {
+        isDescriptionMatched = false;
+        auto fieldIt = subjectDescription.find(rdn.Attribute);
+        if (fieldIt == subjectDescription.cend()) {
+            break;
+        }
+
+        const auto& attributeValues = fieldIt->second;
+        bool attributeMatched = false;
+        for (const auto& attributeValue : attributeValues) {
+            attributeMatched = false;
+            for (const auto& value: rdn.Values) {
+                if (value == attributeValue) {
+                    attributeMatched = true;
+                    break;
+                }
+            }
+            if (!attributeMatched) {
+                for (const auto& suffix: rdn.Suffixes) {
+                    if (attributeValue.EndsWith(suffix)) {
+                        attributeMatched = true;
+                        break;
+                    }
+                }
+            }
+            if (!attributeMatched) {
+                break;
+            }
+        }
+        if (!attributeMatched) {
+            isDescriptionMatched = false;
+            break;
+        }
+        isDescriptionMatched = true;
+    }
+
+    if (isDescriptionMatched) {
+        return true;
+    }
+    return false;
+}
+
+TCertificateAuthorizationParams::TDN::operator bool() const {
+    return !RDNs.empty();
+}
+
+TCertificateAuthorizationParams::TRDN::TRDN(const TString& Attribute)
+    :Attribute(Attribute)
+{}
+
+TCertificateAuthorizationParams::TRDN& TCertificateAuthorizationParams::TRDN::AddValue(const TString& val)
+{
+    Values.push_back(val);
+    return *this;
+}
+
+TCertificateAuthorizationParams::TRDN& TCertificateAuthorizationParams::TRDN::AddSuffix(const TString& suffix)
+{
+    Suffixes.push_back(suffix);
+    return *this;
+}
+
+}  //namespace NKikimr {
diff --git a/ydb/core/security/certificate_check/cert_auth_processor.h b/ydb/core/security/certificate_check/cert_auth_processor.h
new file mode 100644
index 000000000000..42ec4bf3981c
--- /dev/null
+++ b/ydb/core/security/certificate_check/cert_auth_processor.h
@@ -0,0 +1,72 @@
+#pragma once
+#include 
+
+#include 
+#include 
+
+#include 
+#include 
+
+namespace NKikimr {
+
+struct TCertificateAuthorizationParams {
+    struct TRDN {
+        TString Attribute;
+        TVector Values;
+        TVector Suffixes;
+
+        TRDN(const TString& Attribute);
+        TRDN& AddValue(const TString& val);
+        TRDN& AddSuffix(const TString& suffix);
+    };
+
+    struct TDN {
+        TVector RDNs;
+
+        TDN& AddRDN(const TRDN& rdn);
+        operator bool () const;
+    };
+
+    TCertificateAuthorizationParams(const TDN& dn = TDN(), bool requireSameIssuer = true, const std::vector& groups = {});
+    TCertificateAuthorizationParams(TDN&& dn, bool requireSameIssuer = true, std::vector&& groups = {});
+
+    operator bool () const;
+    bool CheckSubject(const std::unordered_map>& subjectDescription) const;
+    void SetSubjectDn(const TDN& subjectDn) {
+        SubjectDn = subjectDn;
+    }
+
+    bool IsHostMatchAttributeCN(const TString&) const {
+        return true;
+    }
+
+    bool CanCheckNodeByAttributeCN = false;
+    TDN SubjectDn;
+    bool RequireSameIssuer = true;
+    std::vector Groups;
+};
+
+
+struct X509CertificateReader {
+    template 
+    struct deleter_from_fn {
+        template 
+        constexpr void operator()(T* arg) const {
+            fn(arg);
+        }
+    };
+
+    using X509Ptr = std::unique_ptr>;
+    using BIOPtr = std::unique_ptr>;
+
+    static X509Ptr ReadCertAsPEM(const TStringBuf& cert);
+    static TVector> ReadSubjectTerms(const X509Ptr& x509);
+    static TVector> ReadAllSubjectTerms(const X509Ptr& x509);
+    static TVector> ReadIssuerTerms(const X509Ptr& x509);
+    static TString GetFingerprint(const X509Ptr& x509);
+private:
+    static std::pair GetTermFromX509Name(X509_NAME* name, int nid);
+    static TVector> ReadTerms(X509_NAME* name);
+};
+
+}  //namespace NKikimr
diff --git a/ydb/core/security/certificate_check/cert_auth_utils.cpp b/ydb/core/security/certificate_check/cert_auth_utils.cpp
new file mode 100644
index 000000000000..a310c197d2f0
--- /dev/null
+++ b/ydb/core/security/certificate_check/cert_auth_utils.cpp
@@ -0,0 +1,542 @@
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include "cert_auth_utils.h"
+
+namespace NKikimr {
+
+std::vector GetCertificateAuthorizationParams(const NKikimrConfig::TClientCertificateAuthorization &clientCertificateAuth) {
+    std::vector certAuthParams;
+    certAuthParams.reserve(clientCertificateAuth.ClientCertificateDefinitionsSize());
+
+    for (const auto& clientCertificateDefinition : clientCertificateAuth.GetClientCertificateDefinitions()) {
+        TCertificateAuthorizationParams::TDN dn;
+        for (const auto& term: clientCertificateDefinition.GetSubjectTerms()) {
+            auto rdn = TCertificateAuthorizationParams::TRDN(term.GetShortName());
+            for (const auto& value: term.GetValues()) {
+                rdn.AddValue(value);
+            }
+            for (const auto& suffix: term.GetSuffixes()) {
+                rdn.AddSuffix(suffix);
+            }
+            dn.AddRDN(std::move(rdn));
+        }
+        if (dn) {
+            std::vector groups(clientCertificateDefinition.GetMemberGroups().cbegin(), clientCertificateDefinition.GetMemberGroups().cend());
+            certAuthParams.emplace_back(std::move(dn), clientCertificateDefinition.GetRequireSameIssuer(), std::move(groups));
+        }
+    }
+
+    return certAuthParams;
+}
+
+NKikimrConfig::TClientCertificateAuthorization::TSubjectTerm MakeSubjectTerm(const TString& name, const TVector& values, const TVector& suffixes) {
+    NKikimrConfig::TClientCertificateAuthorization::TSubjectTerm term;
+    term.SetShortName(name);
+    for (const auto& val: values) {
+        *term.MutableValues()->Add() = val;
+    }
+    for (const auto& suf: suffixes) {
+        *term.MutableSuffixes()->Add() = suf;
+    }
+    return term;
+}
+
+namespace {
+
+constexpr size_t maxCertSize = 17 * 1024;
+constexpr size_t errStringBufSize = 1024;
+
+#define CHECK(expr, msg) \
+    if (!expr) { \
+        char errString[errStringBufSize]{0}; \
+        ERR_error_string_n(ERR_get_error(), errString, errStringBufSize); \
+        std::cerr << msg << std::endl; \
+        std::cerr << errString << std::endl; \
+        exit (1); \
+    }
+
+template 
+struct deleter_from_fn {
+    template 
+    constexpr void operator()(T* arg) const {
+        fn(arg);
+    }
+};
+
+using PKeyPtr = std::unique_ptr>;
+using X509Ptr = std::unique_ptr>;
+using RSAPtr = std::unique_ptr>;
+using BNPtr = std::unique_ptr>;
+using BIOPtr = std::unique_ptr>;
+using ExtPrt = std::unique_ptr>;
+using X509REQPtr = std::unique_ptr>;
+using X509StorePtr = std::unique_ptr>;
+using X509StoreCtxPtr = std::unique_ptr>;
+
+void FillExtFromProps0(X509V3_CTX* ctx, STACK_OF(X509_EXTENSION) *exts, const TProps& props);
+void FillExtFromProps1(X509V3_CTX* ctx, STACK_OF(X509_EXTENSION) *exts, const TProps& props);
+
+void VerifyCert(const X509Ptr& cert, const X509Ptr& cacert) {
+     auto store = X509StorePtr(X509_STORE_new());
+     X509_STORE_add_cert(store.get(), cacert.get());
+
+     auto ctx = X509StoreCtxPtr(X509_STORE_CTX_new());
+     X509_STORE_CTX_init(ctx.get(), store.get(), cert.get(), NULL);
+
+     int result = X509_verify_cert(ctx.get());
+     CHECK(result == 1, "VerifyCert failed.");
+}
+
+PKeyPtr GenerateKeys() {
+  /* EVP_PKEY structure is for storing an algorithm-independent private key in memory. */
+  auto pkey = PKeyPtr(EVP_PKEY_new());
+  CHECK(pkey, "Unable to create pkey structure.");
+
+  /* Generate a RSA key and assign it to pkey.
+   * RSA_generate_key is deprecated.
+   */
+  auto bne = BNPtr(BN_new());
+  CHECK(bne, "Unable to create bignum structure.");
+
+  BN_set_word(bne.get(), RSA_F4);
+
+  auto rsa = RSAPtr(RSA_new());
+  CHECK(rsa, "Unable to create rsa structure.");
+
+  RSA_generate_key_ex(rsa.get(), 2048, bne.get(), nullptr);
+
+  EVP_PKEY_assign_RSA(pkey.get(), rsa.get());
+
+  rsa.release(); // mem is grabbed by pkkey
+
+  return std::move(pkey);
+}
+
+int FillNameFromProps(X509_NAME* name, const TProps& props) {
+    if (!name) {
+        return 1;
+    }
+
+    if (!props.Coutry.empty()) {
+        X509_NAME_add_entry_by_txt(name, SN_countryName, MBSTRING_ASC, (const unsigned char*)props.Coutry.c_str(), -1, -1, 0);
+    }
+
+    if (!props.State.empty()) {
+        X509_NAME_add_entry_by_txt(name, SN_stateOrProvinceName, MBSTRING_ASC, (const unsigned char*)props.State.c_str(), -1, -1, 0);
+    }
+
+    if (!props.Location.empty()) {
+        X509_NAME_add_entry_by_txt(name, SN_localityName, MBSTRING_ASC, (const unsigned char*)props.Location.c_str(), -1, -1, 0);
+    }
+
+    if (!props.Organization.empty()) {
+        X509_NAME_add_entry_by_txt(name, SN_organizationName, MBSTRING_ASC, (const unsigned char*)props.Organization.c_str(), -1, -1, 0);
+    }
+
+    if (!props.Unit.empty()) {
+        X509_NAME_add_entry_by_txt(name, SN_organizationalUnitName, MBSTRING_ASC, (const unsigned char*)props.Unit.c_str(), -1, -1, 0);
+    }
+
+    if (!props.CommonName.empty()) {
+        X509_NAME_add_entry_by_txt(name, SN_commonName, MBSTRING_ASC, (const unsigned char*)props.CommonName.c_str(), -1, -1, 0);
+    }
+
+    return 0;
+}
+
+/* Generates a self-signed x509 certificate. */
+X509Ptr GenerateSelfSignedCertificate(PKeyPtr& pkey, const TProps& props) {
+    /* Allocate memory for the X509 structure. */
+    auto x509 = X509Ptr(X509_new());
+    CHECK(x509, "Unable to create X509 structure.");
+
+    X509_set_version(x509.get(), 3);
+
+    /* Set the serial number. */
+    constexpr int Serial = 1;
+    ASN1_INTEGER_set(X509_get_serialNumber(x509.get()), Serial);
+
+    /* This certificate is valid from now until exactly one year from now. */
+    X509_gmtime_adj(X509_get_notBefore(x509.get()), 0);
+    X509_gmtime_adj(X509_get_notAfter(x509.get()), props.SecondsValid);
+
+    int errNo = 0;
+    /* Set the public key for our certificate. */
+    errNo = X509_set_pubkey(x509.get(), pkey.get());
+    CHECK(x509,"Error setting public key for X509 structure.");
+
+    /* We want to copy the subject name to the issuer name. */
+    X509_NAME* name = X509_get_subject_name(x509.get());
+    CHECK(name,"Error getting subject name from X509 structure.");
+
+    /* Set the country code and common name. */
+    errNo = FillNameFromProps(name, props);
+    CHECK(errNo == 0,"Error setting names.");
+
+    errNo = X509_set_subject_name(x509.get(), name);
+    CHECK(errNo, "Error setting subject name.");
+
+    errNo = X509_set_issuer_name(x509.get(), name);
+    CHECK(errNo, "Error setting issier name.");
+
+    { // fill ext properties witch don't requere filled issuer indentity
+        X509V3_CTX ctx;
+        X509V3_set_ctx_nodb(&ctx);
+        X509V3_set_ctx(&ctx, x509.get(), x509.get(), nullptr, nullptr, 0);
+
+        STACK_OF (X509_EXTENSION)* exts = sk_X509_EXTENSION_new_null();
+        CHECK(exts, "Unable to create STACK_OF X509_EXTENSION structure.");
+
+        FillExtFromProps0(&ctx, exts, props);
+
+        int count = X509v3_get_ext_count(exts);
+        for (int i = 0; i < count; ++i) {
+            auto tmpExt = X509v3_get_ext(exts, i);
+            errNo = X509_add_ext(x509.get(), tmpExt, -1);
+            CHECK(errNo, "Error adding ext value");
+            tmpExt = nullptr;
+        }
+
+        sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free);
+    }
+
+    { // fill ext properties witch requere filled issuer indentity, NID_authority_key_identifier
+        X509V3_CTX ctx;
+        X509V3_set_ctx_nodb(&ctx);
+        X509V3_set_ctx(&ctx, x509.get(), x509.get(), nullptr, nullptr, 0);
+
+        STACK_OF (X509_EXTENSION)* exts = sk_X509_EXTENSION_new_null();
+        CHECK(exts, "Unable to create STACK_OF X509_EXTENSION structure.");
+
+        FillExtFromProps1(&ctx, exts, props);
+
+        int count = X509v3_get_ext_count(exts);
+        for (int i = 0; i < count; ++i) {
+            auto tmpExt = X509v3_get_ext(exts, i);
+            errNo = X509_add_ext(x509.get(), tmpExt, -1);
+            CHECK(errNo, "Error adding ext value");
+            tmpExt = nullptr;
+        }
+
+        sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free);
+    }
+
+
+    /* Actually sign the certificate with our key. */
+    errNo = X509_sign(x509.get(), pkey.get(), EVP_sha1());
+    CHECK(errNo, "Error signing certificate.");
+
+    return std::move(x509);
+}
+
+std::string WriteAsPEM(PKeyPtr& pkey) {
+    std::array buf{0};
+
+    auto bio = BIOPtr(BIO_new(BIO_s_mem()));
+    CHECK(bio, "Unable to create BIO structure.");
+
+    PEM_write_bio_RSAPrivateKey(bio.get(), EVP_PKEY_get0_RSA(pkey.get()), nullptr, nullptr, 0, nullptr, nullptr);
+
+    BIO_read(bio.get(), buf.data(), maxCertSize - 1);
+
+    return std::string(buf.data());
+}
+
+std::string WriteAsPEM(X509Ptr& cert) {
+    std::array buf{0};
+
+    auto bio = BIOPtr(BIO_new(BIO_s_mem()));
+    CHECK(bio, "Unable to create BIO structure.");
+
+    PEM_write_bio_X509(bio.get(), cert.get());
+
+    BIO_read(bio.get(), buf.data(), maxCertSize - 1);
+
+    return std::string(buf.data());
+}
+
+X509Ptr ReadCertAsPEM(const std::string& cert) {
+    auto bio = BIOPtr(BIO_new_mem_buf(cert.data(), cert.size()));
+    CHECK(bio,"Unable to create BIO structure.");
+
+    auto x509 = X509Ptr(PEM_read_bio_X509(bio.get(), NULL, NULL, NULL));
+    CHECK(x509, "failed to load certificate");
+
+    return std::move(x509);
+}
+
+PKeyPtr ReadPrivateKeyAsPEM(const std::string& key) {
+    auto bio = BIOPtr(BIO_new_mem_buf(key.data(), key.size()));
+    CHECK(bio,"Unable to create BIO structure.");
+
+    auto pkey = PKeyPtr(PEM_read_bio_PrivateKey(bio.get(), NULL, NULL, NULL));
+    CHECK(pkey, "failed to private key certificate");
+
+    return std::move(pkey);
+}
+
+void add_ext(X509V3_CTX* ctx, STACK_OF(X509_EXTENSION)* exts, int nid, const char *value) {
+  X509_EXTENSION *ex;
+  ex = X509V3_EXT_conf_nid(NULL, ctx, nid, value);
+  CHECK(ex, "failed to add ext value " << value);
+  sk_X509_EXTENSION_push(exts, ex);
+}
+
+void FillExtFromProps0(X509V3_CTX* ctx, STACK_OF(X509_EXTENSION) *exts, const TProps& props) {
+    CHECK(ctx, "no context is provided");
+
+    if (!props.AltNames.empty()) {
+        bool first = true;
+        std::string concat;
+        for (const auto& an: props.AltNames) {
+            if (an.empty()) {
+                continue;
+            }
+            if (!first) {
+                concat += ",";
+            } else {
+                first = false;
+            }
+
+            concat += an;
+        }
+        add_ext(ctx, exts, NID_subject_alt_name, concat.c_str());
+    }
+
+    if (!props.BasicConstraints.empty()) {
+        add_ext(ctx, exts, NID_basic_constraints, props.BasicConstraints.c_str());
+    }
+
+    if (!props.KeyUsage.empty()) {
+        add_ext(ctx, exts, NID_key_usage, props.KeyUsage.c_str());
+    }
+
+    if (!props.ExtKeyUsage.empty()) {
+        add_ext(ctx, exts, NID_ext_key_usage, props.ExtKeyUsage.c_str());
+    }
+
+    if (!props.SubjectKeyIdentifier.empty()) {
+        add_ext(ctx, exts, NID_subject_key_identifier, props.SubjectKeyIdentifier.c_str());
+    }
+
+    if (!props.NsComment.empty()) {
+        add_ext(ctx, exts, NID_netscape_comment, props.NsComment.c_str());
+    }
+}
+
+void FillExtFromProps1(X509V3_CTX* ctx, STACK_OF(X509_EXTENSION) *exts, const TProps& props) {
+    CHECK(ctx, "no context is provided");
+
+    if (!props.AuthorityKeyIdentifier.empty()) {
+        add_ext(ctx, exts, NID_authority_key_identifier, props.AuthorityKeyIdentifier.c_str());
+    }
+}
+
+X509REQPtr GenerateRequest(PKeyPtr& pkey, const TProps& props) {
+    auto request = X509REQPtr(X509_REQ_new());
+    CHECK(request, "Error creating new X509_REQ structure.");
+
+    int errNo = 0;
+
+    errNo = X509_REQ_set_pubkey(request.get(), pkey.get());
+    CHECK(errNo, "Error setting public key for X509_REQ structure.");
+
+    X509_NAME* name = X509_REQ_get_subject_name(request.get());
+    CHECK(name, "Error setting public key for X509_REQ structure.");
+
+    errNo = FillNameFromProps(name, props);
+    CHECK(errNo == 0,"Error setting names.");
+
+    {
+        X509V3_CTX ctx;
+        X509V3_set_ctx_nodb(&ctx);
+        X509V3_set_ctx(&ctx, nullptr, nullptr, request.get(), nullptr, 0);
+
+        STACK_OF (X509_EXTENSION)* exts = sk_X509_EXTENSION_new_null();
+        FillExtFromProps0(&ctx, exts, props);
+        X509_REQ_add_extensions(request.get(), exts);
+        sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free);
+    }
+
+    errNo = X509_REQ_sign(request.get(), pkey.get(), EVP_md5());
+    CHECK(errNo, "Error MD5 signing X509_REQ structure.");
+
+    return std::move(request);
+}
+
+X509Ptr SingRequest(X509REQPtr& request, X509Ptr& rootCert, PKeyPtr& rootKey, const TProps& props) {
+    auto* pktmp = X509_REQ_get0_pubkey(request.get()); // X509_REQ_get0_pubkey returns the key, that shouldn't freed
+    CHECK(pktmp, "Error unpacking public key from request.");
+
+    int errNo = 0;
+    errNo = X509_REQ_verify(request.get(), pktmp);
+    CHECK(errNo > 0, "Error verification request signature.");
+
+    auto x509 = X509Ptr(X509_new());
+    CHECK(x509, "Unable to create X509 structure.");
+
+    X509_set_version(x509.get(), 3);
+
+    /* Set the serial number. */
+    constexpr int Serial = 2;
+    ASN1_INTEGER_set(X509_get_serialNumber(x509.get()), Serial);
+
+    /* This certificate is valid from now until exactly one year from now. */
+    X509_gmtime_adj(X509_get_notBefore(x509.get()), 0);
+    X509_gmtime_adj(X509_get_notAfter(x509.get()), props.SecondsValid);
+
+    X509_set_pubkey(x509.get(), pktmp);
+
+    X509_set_subject_name(x509.get(), X509_REQ_get_subject_name(request.get()));
+    X509_set_issuer_name(x509.get(), X509_get_subject_name(rootCert.get()));
+
+    {
+
+        X509V3_CTX ctx;
+        X509V3_set_ctx_nodb(&ctx);
+        X509V3_set_ctx(&ctx, rootCert.get(), x509.get(), request.get(), nullptr, 0);
+
+        // fill ext properties witch don't requere filled issuer indentity, actually copy them from request
+        STACK_OF(X509_EXTENSION)* exts = X509_REQ_get_extensions(request.get());
+        CHECK(exts, "Unable to get STACK_OF X509_EXTENSION structure from request.");
+
+        // fill ext properties witch requere filled issuer indentity, NID_authority_key_identifier
+        FillExtFromProps1(&ctx, exts, props);
+
+        int count = X509v3_get_ext_count(exts);
+        for (int i = 0; i < count; ++i) {
+            auto tmpExt = X509v3_get_ext(exts, i);
+            errNo = X509_add_ext(x509.get(), tmpExt, -1);
+            CHECK(errNo, "Error adding ext value");
+            tmpExt = nullptr;
+        }
+
+        sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free);
+    }
+
+    /* Actually sign the certificate with our key. */
+    errNo = X509_sign(x509.get(), rootKey.get(), EVP_sha1());
+    CHECK(errNo, "Error signing certificate.");
+
+    pktmp = nullptr;
+
+    return std::move(x509);
+}
+
+}
+
+TCertAndKey GenerateCA(const TProps& props) {
+    auto keys = GenerateKeys();
+    auto cert = GenerateSelfSignedCertificate(keys, props);
+
+    TCertAndKey result;
+    result.Certificate = WriteAsPEM(cert);
+    result.PrivateKey = WriteAsPEM(keys);
+
+    return result;
+}
+
+TCertAndKey GenerateSignedCert(const TCertAndKey& rootCA, const TProps& props) {
+    auto keys = GenerateKeys();
+    auto request = GenerateRequest(keys, props);
+
+    auto rootCert = ReadCertAsPEM(rootCA.Certificate);
+    auto rootKey = ReadPrivateKeyAsPEM(rootCA.PrivateKey);
+    auto cert = SingRequest(request, rootCert, rootKey, props); // NID_authority_key_identifier must see ca
+
+    TCertAndKey result;
+    result.Certificate = WriteAsPEM(cert);
+    result.PrivateKey = WriteAsPEM(keys);
+
+    return result;
+}
+
+void VerifyCert(const std::string& cert, const std::string& caCert) {
+     auto rootCert = ReadCertAsPEM(caCert);
+     auto otherCert = ReadCertAsPEM(cert);
+
+     VerifyCert(otherCert, rootCert);
+}
+
+TProps TProps::AsCA() {
+    TProps props;
+
+    props.SecondsValid = 3*365 * 24 * 60 *60; // 3 years
+    props.Coutry = "RU";
+    props.State = "MSK";
+    props.Location = "MSK";
+    props.Organization = "YA";
+    props.Unit = "UtTest";
+    props.CommonName = "testCA";
+
+    props.AltNames = {"IP:127.0.0.1", "DNS:localhost"};
+
+    props.BasicConstraints = "critical,CA:TRUE";
+    props.AuthorityKeyIdentifier = "keyid:always,issuer";
+    props.SubjectKeyIdentifier = "hash";
+    props.KeyUsage = "critical,keyCertSign,cRLSign";
+    props.ExtKeyUsage = "";
+    props.NsComment = "Test Generated Certificate for self-signed CA";
+
+    return props;
+}
+
+TProps TProps::AsServer() {
+    TProps props = AsCA();
+
+    props.CommonName = "localhost";
+    props.AltNames.push_back("DNS:*.yandex.ru");
+
+    props.BasicConstraints = "CA:FALSE";
+    props.AuthorityKeyIdentifier = "keyid,issuer";
+    props.KeyUsage = "digitalSignature,nonRepudiation,keyEncipherment";
+    props.ExtKeyUsage = "serverAuth";
+    props.NsComment = "Test Generated Certificate for test Server";
+
+    return props;
+}
+
+TProps TProps::AsClient() {
+    TProps props = AsServer();
+
+    props.ExtKeyUsage = "clientAuth";
+    props.NsComment = "Test Generated Certificate for test Client";
+
+    return props;
+}
+
+TProps TProps::AsClientServer() {
+    TProps props = AsClient();
+
+    props.ExtKeyUsage = "serverAuth,clientAuth";
+    props.NsComment = "Test Generated Certificate for test Client/Server";
+
+    return props;
+}
+
+TProps& TProps::WithValid(TDuration duration) { SecondsValid = duration.Seconds(); return *this; }
+
+std::string GetCertificateFingerprint(const std::string& certificate) {
+    const static std::string defaultFingerprint = "certificate";
+    X509CertificateReader::X509Ptr x509Cert = X509CertificateReader::ReadCertAsPEM(certificate);
+    if (!x509Cert) {
+        return defaultFingerprint;
+    }
+    std::string fingerprint = X509CertificateReader::GetFingerprint(x509Cert);
+    return (fingerprint.empty() ? defaultFingerprint : fingerprint);
+}
+
+}  //namespace NKikimr
diff --git a/ydb/core/security/certificate_check/cert_auth_utils.h b/ydb/core/security/certificate_check/cert_auth_utils.h
new file mode 100644
index 000000000000..9bffa64093db
--- /dev/null
+++ b/ydb/core/security/certificate_check/cert_auth_utils.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include 
+#include 
+#include 
+#include "cert_auth_processor.h"
+
+namespace NKikimr {
+struct TCertificateAuthValues {
+    NKikimrConfig::TClientCertificateAuthorization ClientCertificateAuthorization;
+    TString ServerCertificateFilePath;
+    TString Domain;
+};
+
+std::vector GetCertificateAuthorizationParams(const NKikimrConfig::TClientCertificateAuthorization& clientCertificateAuth);
+NKikimrConfig::TClientCertificateAuthorization::TSubjectTerm MakeSubjectTerm(const TString& name, const TVector& values, const TVector& suffixes = {});
+
+struct TCertAndKey {
+    std::string Certificate;
+    std::string PrivateKey;
+};
+
+struct TProps {
+    long SecondsValid = 0;
+    std::string Coutry; // C
+    std::string State; // ST
+    std::string Location; // L
+    std::string Organization; // O
+    std::string Unit; // OU
+    std::string CommonName; // CN
+
+    std::vector AltNames; // X509v3 Subject Alternative Name
+
+    std::string BasicConstraints; // X509v3 Basic Constraints
+    std::string AuthorityKeyIdentifier; // X509v3 Authority Key Identifier
+    std::string SubjectKeyIdentifier; // X509v3 Subject Key Identifier
+    std::string KeyUsage; // X509v3 Key Usage
+    std::string ExtKeyUsage; // X509v3 Extended Key Usage
+    std::string NsComment; // Netscape Comment
+
+    static TProps AsCA();
+    static TProps AsServer();
+    static TProps AsClient();
+    static TProps AsClientServer();
+
+    TProps& WithValid(TDuration duration);
+};
+
+TCertAndKey GenerateCA(const TProps& props);
+TCertAndKey GenerateSignedCert(const TCertAndKey& ca, const TProps& props);
+void VerifyCert(const std::string& cert, const std::string& caCert);
+
+std::string GetCertificateFingerprint(const std::string& certificate);
+
+} //namespace NKikimr
diff --git a/ydb/core/security/certificate_check/cert_check.cpp b/ydb/core/security/certificate_check/cert_check.cpp
new file mode 100644
index 000000000000..cc7bd49274aa
--- /dev/null
+++ b/ydb/core/security/certificate_check/cert_check.cpp
@@ -0,0 +1,157 @@
+#include 
+#include 
+#include 
+
+#include 
+#include 
+
+#include "cert_check.h"
+
+namespace NKikimr {
+
+namespace {
+TString ReadFromFile(const TString& filePath, const TString& fileName, bool allowEmpty = false) {
+    TString fpCopy = filePath;
+    return NYdb::NConsoleClient::ReadFromFile(fpCopy, fileName, allowEmpty);
+}
+} // namespace
+
+TCertificateChecker::TCertificateChecker(const TCertificateAuthValues& certificateAuthValues)
+    : CertificateAuthorizationParams(GetCertificateAuthorizationParams(certificateAuthValues.ClientCertificateAuthorization))
+    , ServerCertificate((certificateAuthValues.ServerCertificateFilePath ? ReadFromFile(certificateAuthValues.ServerCertificateFilePath, "Can not open server`s certificate") : ""))
+    , Domain(certificateAuthValues.Domain)
+    , DefaultGroup(certificateAuthValues.ClientCertificateAuthorization.GetDefaultGroup())
+{ }
+
+TCertificateChecker::TCertificateCheckResult TCertificateChecker::Check(const TString& clientCertificate) const {
+    // ToDo First of all need verify client`s certificate by server CA
+
+    TReadCertificateAsPemResult readCertificateAsPemResult = ReadCertificatesAsPem(clientCertificate);
+    if (!readCertificateAsPemResult.Error.empty()) {
+        return {.Error = readCertificateAsPemResult.Error, .UserSid = "", .Groups = {""}};
+    }
+
+    const auto& pemCertificates = readCertificateAsPemResult.PemCertificates;
+    if (CertificateAuthorizationParams.empty()) {
+        return DefaultCheckClientCertificate(pemCertificates);
+    }
+    return CheckClientCertificate(pemCertificates);
+}
+
+TCertificateChecker::TReadCertificateAsPemResult TCertificateChecker::ReadCertificatesAsPem(const TString& clientCertificate) const {
+    TReadCertificateAsPemResult result;
+    TPemCertificates& pemCertificates = result.PemCertificates;
+    pemCertificates.ClientCertX509 = X509CertificateReader::ReadCertAsPEM(clientCertificate);
+    if (!pemCertificates.ClientCertX509) {
+        result.Error = { .Message = "Cannot read client certificate", .Retryable = false };
+        return result;
+    }
+
+    pemCertificates.ServerCertX509 = X509CertificateReader::ReadCertAsPEM(ServerCertificate);
+    if (!pemCertificates.ServerCertX509) {
+        result.Error = { .Message = "Cannot read server certificate", .Retryable = false };
+        return result;
+    }
+
+    return result;
+}
+
+TEvTicketParser::TError TCertificateChecker::CheckIssuers(const TPemCertificates& pemCertificates) const {
+    const auto& clientIssuerDn = X509CertificateReader::ReadIssuerTerms(pemCertificates.ClientCertX509);
+    if (clientIssuerDn.empty()) {
+        return { .Message = "Cannot extract issuer dn from client certificate", .Retryable = false };
+    }
+    const auto& serverIssuerDn = X509CertificateReader::ReadIssuerTerms(pemCertificates.ServerCertX509);
+    if (serverIssuerDn.empty()) {
+        return { .Message = "Cannot extract issuer dn from server certificate", .Retryable = false };
+    }
+    if (clientIssuerDn != serverIssuerDn) {
+        return { .Message = "Client`s certificate and server`s certificate have different issuers", .Retryable = false };
+    }
+    return {};
+}
+
+TCertificateChecker::TReadClientSubjectResult TCertificateChecker::ReadSubjectFromClientCertificate(const TPemCertificates& pemCertificates) const {
+    TReadClientSubjectResult result;
+    result.SubjectDn = X509CertificateReader::ReadAllSubjectTerms(pemCertificates.ClientCertX509);
+    if (result.SubjectDn.empty()) {
+        result.Error = { .Message = "Cannot extract subject from client certificate", .Retryable = false };
+        return result;
+    }
+    return result;
+}
+
+TString TCertificateChecker::CreateUserSidFromSubjectDn(const std::vector>& subjectDn) const {
+    TStringBuilder userSid;
+    for (const auto& [attribute, value] : subjectDn) {
+        userSid << attribute << "=" << value << ",";
+    }
+    userSid.remove(userSid.size() - 1);
+    userSid << "@" << Domain;
+    return userSid;
+}
+
+TEvTicketParser::TError TCertificateChecker::CheckClientSubject(const std::vector>& subjectDn, const TCertificateAuthorizationParams& authParams) const {
+    std::unordered_map> subjectDescription;
+    for (const auto& [attribute, value] : subjectDn) {
+        auto& attributeValues = subjectDescription[attribute];
+        attributeValues.push_back(value);
+    }
+
+    if (!authParams.CheckSubject(subjectDescription)) {
+        return { .Message = "Client certificate failed verification", .Retryable = false };
+    }
+    return {};
+}
+
+TCertificateChecker::TCertificateCheckResult TCertificateChecker::DefaultCheckClientCertificate(const TPemCertificates& pemCertificates) const {
+    TCertificateCheckResult result;
+    auto checkIssuersError = CheckIssuers(pemCertificates);
+    if (!checkIssuersError.empty()) {
+        result.Error = checkIssuersError;
+        return result;
+    }
+    TReadClientSubjectResult readClientSubjectResult = ReadSubjectFromClientCertificate(pemCertificates);
+    if (!readClientSubjectResult.Error.empty()) {
+        result.Error = readClientSubjectResult.Error;
+        return result;
+    }
+    result.UserSid = CreateUserSidFromSubjectDn(readClientSubjectResult.SubjectDn);
+    result.Groups = {DefaultGroup};
+    return result;
+}
+
+TCertificateChecker::TCertificateCheckResult TCertificateChecker::CheckClientCertificate(const TPemCertificates& pemCertificates) const {
+    TCertificateCheckResult result;
+    auto checkIssuersError = CheckIssuers(pemCertificates);
+    TReadClientSubjectResult readClientSubjectResult = ReadSubjectFromClientCertificate(pemCertificates);
+    if (!readClientSubjectResult.Error.empty()) {
+        result.Error = readClientSubjectResult.Error;
+        return result;
+    }
+    std::unordered_set groups;
+    for (const auto& authParams : CertificateAuthorizationParams) {
+        if (authParams.RequireSameIssuer && !checkIssuersError.empty()) {
+            continue;
+        }
+
+        auto checkClientSubjectError = CheckClientSubject(readClientSubjectResult.SubjectDn, authParams);
+        if (!checkClientSubjectError.empty()) {
+            continue;
+        }
+        if (authParams.Groups.empty()) {
+            groups.insert(DefaultGroup);
+        } else {
+            groups.insert(authParams.Groups.cbegin(), authParams.Groups.cend());
+        }
+    }
+    if (groups.empty()) {
+        result.Error = { .Message = "Client certificate failed verification", .Retryable = false };
+        return result;
+    }
+    result.UserSid = CreateUserSidFromSubjectDn(readClientSubjectResult.SubjectDn);
+    result.Groups.assign(groups.cbegin(), groups.cend());
+    return result;
+}
+
+} // namespace NKikimr
diff --git a/ydb/core/security/certificate_check/cert_check.h b/ydb/core/security/certificate_check/cert_check.h
new file mode 100644
index 000000000000..7525cc0fb600
--- /dev/null
+++ b/ydb/core/security/certificate_check/cert_check.h
@@ -0,0 +1,56 @@
+#pragma once
+
+#include 
+
+#include "cert_auth_utils.h"
+
+namespace NKikimr {
+
+class TCertificateChecker {
+public:
+    struct TCertificateCheckResult {
+        TEvTicketParser::TError Error;
+        TString UserSid;
+        std::vector Groups;
+    };
+
+private:
+    struct TPemCertificates {
+        X509CertificateReader::X509Ptr ClientCertX509;
+        X509CertificateReader::X509Ptr ServerCertX509;
+    };
+
+    struct TReadCertificateAsPemResult {
+        TEvTicketParser::TError Error;
+        TPemCertificates PemCertificates;
+    };
+
+    struct TReadClientSubjectResult {
+        std::vector> SubjectDn;
+        TEvTicketParser::TError Error;
+    };
+
+    const std::vector CertificateAuthorizationParams;
+    const TString ServerCertificate;
+    const TString Domain;
+    const TString DefaultGroup;
+
+public:
+    TCertificateChecker(const TCertificateAuthValues& certificateAuthValues);
+
+    TCertificateCheckResult Check(const TString& clientCertificate) const;
+
+private:
+    static TString ReadFile(const TString& fileName);
+
+    TReadCertificateAsPemResult ReadCertificatesAsPem(const TString& clientCertificate) const;
+    TEvTicketParser::TError CheckIssuers(const TPemCertificates& pemCertificates) const;
+    TReadClientSubjectResult ReadSubjectFromClientCertificate(const TPemCertificates& pemCertificates) const;
+    TString CreateUserSidFromSubjectDn(const std::vector>& subjectDn) const;
+    TEvTicketParser::TError CheckClientSubject(const std::vector>& subjectDn, const TCertificateAuthorizationParams& authParams) const;
+    TCertificateCheckResult DefaultCheckClientCertificate(const TPemCertificates& pemCertificates) const;
+    TCertificateCheckResult CheckClientCertificate(const TPemCertificates& pemCertificates) const;
+    TString GetDefaultGroup() const;
+};
+
+} // namespace Nkikimr
diff --git a/ydb/core/security/certificate_check/cert_utils_ut.cpp b/ydb/core/security/certificate_check/cert_utils_ut.cpp
new file mode 100644
index 000000000000..583182da7360
--- /dev/null
+++ b/ydb/core/security/certificate_check/cert_utils_ut.cpp
@@ -0,0 +1,136 @@
+#include 
+#include 
+#include 
+
+#include "cert_auth_utils.h"
+
+namespace NKikimr {
+
+Y_UNIT_TEST_SUITE(TCertificateAuthUtilsTest) {
+    Y_UNIT_TEST(GenerateAndVerifyCertificates) {
+        TCertAndKey ca = GenerateCA(TProps::AsCA());
+
+        TCertAndKey server = GenerateSignedCert(ca, TProps::AsServer());
+        VerifyCert(server.Certificate, ca.Certificate);
+
+        TCertAndKey client = GenerateSignedCert(ca, TProps::AsClient());
+        VerifyCert(client.Certificate, ca.Certificate);
+
+        TCertAndKey clientServer = GenerateSignedCert(ca, TProps::AsClientServer());
+        VerifyCert(clientServer.Certificate, ca.Certificate);
+    }
+
+    Y_UNIT_TEST(ClientCertAuthorizationParamsMatch) {
+        {
+            TCertificateAuthorizationParams::TDN dn;
+            dn.AddRDN(TCertificateAuthorizationParams::TRDN("C").AddValue("RU"))
+            .AddRDN(TCertificateAuthorizationParams::TRDN("ST").AddValue("MSK"))
+            .AddRDN(TCertificateAuthorizationParams::TRDN("L").AddValue("MSK"))
+            .AddRDN(TCertificateAuthorizationParams::TRDN("O").AddValue("YA"))
+            .AddRDN(TCertificateAuthorizationParams::TRDN("OU").AddValue("UtTest").AddValue("OtherUnit"))
+            .AddRDN(TCertificateAuthorizationParams::TRDN("CN").AddValue("localhost").AddSuffix(".yandex.ru"));
+            TCertificateAuthorizationParams authParams(std::move(dn));
+
+            {
+                std::unordered_map> subjectTerms;
+                subjectTerms["C"].push_back("RU");
+                subjectTerms["ST"].push_back("MSK");
+                subjectTerms["L"].push_back("MSK");
+                subjectTerms["O"].push_back("YA");
+                subjectTerms["OU"].push_back("UtTest");
+                subjectTerms["CN"].push_back("localhost");
+
+                UNIT_ASSERT(authParams.CheckSubject(subjectTerms));
+            }
+
+            {
+                std::unordered_map> subjectTerms;
+                subjectTerms["C"].push_back("RU");
+                subjectTerms["ST"].push_back("MSK");
+                subjectTerms["L"].push_back("MSK");
+                subjectTerms["O"].push_back("YA");
+                subjectTerms["OU"].push_back("UtTest");
+                subjectTerms["OU"].push_back("OtherUnit");
+                subjectTerms["CN"].push_back("localhost");
+
+                UNIT_ASSERT(authParams.CheckSubject(subjectTerms));
+            }
+
+            {
+                std::unordered_map> subjectTerms;
+                subjectTerms["C"].push_back("RU");
+                subjectTerms["ST"].push_back("MSK");
+                subjectTerms["L"].push_back("MSK");
+                subjectTerms["O"].push_back("YA");
+                subjectTerms["OU"].push_back("UtTest");
+                subjectTerms["OU"].push_back("WrongUnit");
+                subjectTerms["CN"].push_back("localhost");
+
+                UNIT_ASSERT(!authParams.CheckSubject(subjectTerms));
+            }
+
+            {
+                std::unordered_map> subjectTerms;
+                subjectTerms["C"].push_back("RU");
+                subjectTerms["ST"].push_back("MSK");
+                subjectTerms["L"].push_back("MSK");
+                subjectTerms["O"].push_back("YA");
+                subjectTerms["OU"].push_back("UtTest");
+                subjectTerms["CN"].push_back("test.yandex.ru");
+
+                UNIT_ASSERT(authParams.CheckSubject(subjectTerms));
+            }
+
+            {
+                std::unordered_map> subjectTerms;
+                subjectTerms["C"].push_back("RU");
+                subjectTerms["ST"].push_back("MSK");
+                subjectTerms["L"].push_back("MSK");
+                subjectTerms["O"].push_back("YA");
+                subjectTerms["OU"].push_back("UtTest");
+                subjectTerms["CN"].push_back("test.yandex.ru");
+                subjectTerms["ELSE"].push_back("WhatEver");
+
+                UNIT_ASSERT(authParams.CheckSubject(subjectTerms));
+            }
+
+            {
+                std::unordered_map> subjectTerms;
+                subjectTerms["C"].push_back("WRONG");
+                subjectTerms["ST"].push_back("MSK");
+                subjectTerms["L"].push_back("MSK");
+                subjectTerms["O"].push_back("YA");
+                subjectTerms["OU"].push_back("UtTest");
+                subjectTerms["CN"].push_back("test.yandex.ru");
+
+                UNIT_ASSERT(!authParams.CheckSubject(subjectTerms));
+            }
+
+            {
+                std::unordered_map> subjectTerms;
+                subjectTerms["C"].push_back("RU");
+                subjectTerms["ST"].push_back("MSK");
+                subjectTerms["L"].push_back("MSK");
+                subjectTerms["O"].push_back("YA");
+                subjectTerms["OU"].push_back("UtTest");
+                subjectTerms["CN"].push_back("test.not-yandex.ru");
+
+                UNIT_ASSERT(!authParams.CheckSubject(subjectTerms));
+            }
+
+            {
+                std::unordered_map> subjectTerms;
+                //subjectTerms["C"] = "RU";
+                subjectTerms["ST"].push_back("MSK");
+                subjectTerms["L"].push_back("MSK");
+                subjectTerms["O"].push_back("YA");
+                subjectTerms["OU"].push_back("UtTest");
+                subjectTerms["CN"].push_back("test.yandex.ru");
+
+                UNIT_ASSERT(!authParams.CheckSubject(subjectTerms));
+            }
+        }
+    }
+}
+
+} // namespace NKikimr
diff --git a/ydb/core/security/certificate_check/ut/ya.make b/ydb/core/security/certificate_check/ut/ya.make
new file mode 100644
index 000000000000..228fa7162126
--- /dev/null
+++ b/ydb/core/security/certificate_check/ut/ya.make
@@ -0,0 +1,19 @@
+UNITTEST_FOR(ydb/core/security/certificate_check)
+
+FORK_SUBTESTS()
+
+TIMEOUT(600)
+
+SIZE(MEDIUM)
+
+PEERDIR(
+    ydb/core/testlib/default
+)
+
+YQL_LAST_ABI_VERSION()
+
+SRCS(
+    cert_utils_ut.cpp
+)
+
+END()
diff --git a/ydb/core/security/certificate_check/ya.make b/ydb/core/security/certificate_check/ya.make
new file mode 100644
index 000000000000..876392d39fc2
--- /dev/null
+++ b/ydb/core/security/certificate_check/ya.make
@@ -0,0 +1,21 @@
+LIBRARY()
+
+SRCS(
+    cert_auth_utils.cpp
+    cert_auth_processor.cpp
+    cert_check.cpp
+)
+
+
+PEERDIR(
+    ydb/core/base
+    ydb/core/protos
+    ydb/public/lib/ydb_cli/common
+    contrib/libs/openssl
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+    ut
+)
diff --git a/ydb/core/security/ldap_auth_provider.cpp b/ydb/core/security/ldap_auth_provider/ldap_auth_provider.cpp
similarity index 81%
rename from ydb/core/security/ldap_auth_provider.cpp
rename to ydb/core/security/ldap_auth_provider/ldap_auth_provider.cpp
index 360a69e70879..a3ec33e9adf5 100644
--- a/ydb/core/security/ldap_auth_provider.cpp
+++ b/ydb/core/security/ldap_auth_provider/ldap_auth_provider.cpp
@@ -1,7 +1,7 @@
 #include 
 #include 
 #include 
-#include "ticket_parser_log.h"
+#include 
 #include "ldap_auth_provider.h"
 #include "ldap_utils.h"
 
@@ -156,7 +156,7 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped
         }
 
         int result = 0;
-        if (Settings.GetUseTls().GetEnable()) {
+        if (Settings.GetScheme() != NKikimrLdap::LDAPS_SCHEME && Settings.GetUseTls().GetEnable()) {
             result = NKikimrLdap::StartTLS(*ld);
             if (!NKikimrLdap::IsSuccess(result)) {
                 TEvLdapAuthProvider::TError error {
@@ -173,7 +173,7 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped
         result = NKikimrLdap::Bind(*ld, Settings.GetBindDn(), Settings.GetBindPassword());
         if (!NKikimrLdap::IsSuccess(result)) {
             TEvLdapAuthProvider::TError error {
-                .Message = "Could not perform initial LDAP bind for dn " + Settings.GetBindDn() + " on server " + Settings.GetHost() + "\n"
+                .Message = "Could not perform initial LDAP bind for dn " + Settings.GetBindDn() + " on server " + UrisList + "\n"
                             + NKikimrLdap::ErrorToString(result),
                 .Retryable = NKikimrLdap::IsRetryableError(result)
             };
@@ -186,15 +186,12 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped
     }
 
     TInitializeLdapConnectionResponse InitializeLDAPConnection(LDAP** ld) {
-        const TString& host = Settings.GetHost();
-        if (host.empty()) {
-            return {{TEvLdapAuthProvider::EStatus::UNAVAILABLE, {.Message = "Ldap server host is empty", .Retryable = false}}};
+        if (TInitializeLdapConnectionResponse response = CheckRequiredSettingsParameters(); response.Status != TEvLdapAuthProvider::EStatus::SUCCESS) {
+            return response;
         }
 
-        const ui32 port = Settings.GetPort() != 0 ? Settings.GetPort() : NKikimrLdap::GetPort();
-
         int result = 0;
-        if (Settings.GetUseTls().GetEnable()) {
+        if (Settings.GetScheme() == NKikimrLdap::LDAPS_SCHEME || Settings.GetUseTls().GetEnable()) {
             const TString& caCertificateFile = Settings.GetUseTls().GetCaCertFile();
             result = NKikimrLdap::SetOption(*ld, NKikimrLdap::EOption::TLS_CACERTFILE, caCertificateFile.c_str());
             if (!NKikimrLdap::IsSuccess(result)) {
@@ -205,10 +202,12 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped
             }
         }
 
-        *ld = NKikimrLdap::Init(host, port);
-        if (*ld == nullptr) {
+        const ui32 port = Settings.GetPort() != 0 ? Settings.GetPort() : NKikimrLdap::GetPort(Settings.GetScheme());
+        UrisList = GetUris(port);
+        result = NKikimrLdap::Init(ld, Settings.GetScheme(), UrisList, port);
+        if (!NKikimrLdap::IsSuccess(result)) {
             return {{TEvLdapAuthProvider::EStatus::UNAVAILABLE,
-                    {.Message = "Could not initialize LDAP connection for host: " + host + ", port: " + ToString(port) + ". " + NKikimrLdap::LdapError(*ld),
+                    {.Message = "Could not initialize LDAP connection for uris: " + UrisList + ". " + NKikimrLdap::LdapError(*ld),
                     .Retryable = false}}};
         }
 
@@ -220,7 +219,7 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped
                     .Retryable = NKikimrLdap::IsRetryableError(result)}}};
         }
 
-        if (Settings.GetUseTls().GetEnable()) {
+        if (Settings.GetScheme() == NKikimrLdap::LDAPS_SCHEME || Settings.GetUseTls().GetEnable()) {
             int requireCert = NKikimrLdap::ConvertRequireCert(Settings.GetUseTls().GetCertRequire());
             result = NKikimrLdap::SetOption(*ld, NKikimrLdap::EOption::TLS_REQUIRE_CERT, &requireCert);
             if (!NKikimrLdap::IsSuccess(result)) {
@@ -230,6 +229,7 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped
                         .Retryable = NKikimrLdap::IsRetryableError(result)}}};
             }
         }
+
         return {};
     }
 
@@ -237,14 +237,14 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped
         char* dn = NKikimrLdap::GetDn(*request.Ld, request.Entry);
         if (dn == nullptr) {
             return {{TEvLdapAuthProvider::EStatus::UNAUTHORIZED,
-                    {.Message = "Could not get dn for the first entry matching " + FilterCreator.GetFilter(request.Login) + " on server " + Settings.GetHost() + "\n"
+                    {.Message = "Could not get dn for the first entry matching " + FilterCreator.GetFilter(request.Login) + " on server " + UrisList + "\n"
                             + NKikimrLdap::LdapError(*request.Ld),
                     .Retryable = false}}};
         }
         TEvLdapAuthProvider::TError error;
         int result = NKikimrLdap::Bind(*request.Ld, dn, request.Password);
         if (!NKikimrLdap::IsSuccess(result)) {
-            error.Message = "LDAP login failed for user " + TString(dn) + " on server " + Settings.GetHost() + "\n"
+            error.Message = "LDAP login failed for user " + TString(dn) + " on server " + UrisList + "\n"
                             + NKikimrLdap::ErrorToString((result));
             error.Retryable = NKikimrLdap::IsRetryableError(result);
         }
@@ -266,7 +266,7 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped
         TSearchUserResponse response;
         if (!NKikimrLdap::IsSuccess(result)) {
             response.Status = NKikimrLdap::ErrorToStatus(result);
-            response.Error = {.Message = "Could not search for filter " + searchFilter + " on server " + Settings.GetHost() + "\n"
+            response.Error = {.Message = "Could not search for filter " + searchFilter + " on server " + UrisList + "\n"
                                          + NKikimrLdap::ErrorToString(result),
                               .Retryable = NKikimrLdap::IsRetryableError(result)};
             return response;
@@ -275,11 +275,11 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped
         if (countEntries != 1) {
             if (countEntries == 0) {
                 response.Error  = {.Message = "LDAP user " + request.User + " does not exist. "
-                                              "LDAP search for filter " + searchFilter + " on server " + Settings.GetHost() + " return no entries",
+                                              "LDAP search for filter " + searchFilter + " on server " + UrisList + " return no entries",
                                    .Retryable = false};
             } else {
                 response.Error = {.Message = "LDAP user " + request.User + " is not unique. "
-                                             "LDAP search for filter " + searchFilter + " on server " + Settings.GetHost() + " return " + countEntries + " entries",
+                                             "LDAP search for filter " + searchFilter + " on server " + UrisList + " return " + countEntries + " entries",
                                   .Retryable = false};
             }
             response.Status = TEvLdapAuthProvider::EStatus::UNAUTHORIZED;
@@ -290,10 +290,58 @@ class TLdapAuthProvider : public NActors::TActorBootstrapped
         return response;
     }
 
+    TInitializeLdapConnectionResponse CheckRequiredSettingsParameters() const {
+        if (Settings.GetHosts().empty() && Settings.GetHost().empty()) {
+            return {TEvLdapAuthProvider::EStatus::UNAVAILABLE, {.Message = "List of ldap server hosts is empty", .Retryable = false}};
+        }
+        if (Settings.GetBaseDn().empty()) {
+            return {TEvLdapAuthProvider::EStatus::UNAVAILABLE, {.Message = "Parameter BaseDn is empty", .Retryable = false}};
+        }
+        if (Settings.GetBindDn().empty()) {
+            return {TEvLdapAuthProvider::EStatus::UNAVAILABLE, {.Message = "Parameter BindDn is empty", .Retryable = false}};
+        }
+        if (Settings.GetBindPassword().empty()) {
+            return {TEvLdapAuthProvider::EStatus::UNAVAILABLE, {.Message = "Parameter BindPassword is empty", .Retryable = false}};
+        }
+        return {TEvLdapAuthProvider::EStatus::SUCCESS, {}};
+    }
+
+    TString GetUris(ui32 port) const {
+        TStringBuilder uris;
+        if (Settings.HostsSize() > 0) {
+            for (const auto& host : Settings.GetHosts()) {
+                uris << CreateUri(host, port) << " ";
+            }
+            uris.remove(uris.size() - 1);
+        } else {
+            uris << CreateUri(Settings.GetHost(), port);
+        }
+        return uris;
+    }
+
+    TString CreateUri(const TString& endpoint, ui32 port) const {
+        TStringBuilder uri;
+        uri << Settings.GetScheme() << "://" << endpoint;
+        if (!HasEndpointPort(endpoint)) {
+            uri << ':' << port;
+        }
+        return uri;
+    }
+
+    static bool HasEndpointPort(const TString& endpoint) {
+        size_t colonPos = endpoint.rfind(':');
+        if (colonPos == TString::npos) {
+            return false;
+        }
+        ++colonPos;
+        return (endpoint.size() - colonPos) > 0;
+    }
+
 private:
     const NKikimrProto::TLdapAuthentication Settings;
     const TSearchFilterCreator FilterCreator;
     char* RequestedAttributes[2];
+    TString UrisList;
 };
 
 IActor* CreateLdapAuthProvider(const NKikimrProto::TLdapAuthentication& settings) {
diff --git a/ydb/core/security/ldap_auth_provider.h b/ydb/core/security/ldap_auth_provider/ldap_auth_provider.h
similarity index 100%
rename from ydb/core/security/ldap_auth_provider.h
rename to ydb/core/security/ldap_auth_provider/ldap_auth_provider.h
diff --git a/ydb/core/security/ldap_auth_provider_linux.cpp b/ydb/core/security/ldap_auth_provider/ldap_auth_provider_linux.cpp
similarity index 93%
rename from ydb/core/security/ldap_auth_provider_linux.cpp
rename to ydb/core/security/ldap_auth_provider/ldap_auth_provider_linux.cpp
index 0a40a8c3b66a..f7826f019a44 100644
--- a/ydb/core/security/ldap_auth_provider_linux.cpp
+++ b/ydb/core/security/ldap_auth_provider/ldap_auth_provider_linux.cpp
@@ -1,7 +1,7 @@
 #include 
 #include 
 #include 
-#include "ticket_parser_log.h"
+#include 
 #include "ldap_auth_provider.h"
 
 #define LDAP_DEPRECATED 1
@@ -38,6 +38,7 @@ int ConvertOption(const EOption& option) {
 }
 
 char* noAttributes[] = {ldapNoAttribute, nullptr};
+const TString LDAPS_SCHEME = "ldaps";
 
 int Bind(LDAP* ld, const TString& dn, const TString& password) {
     return ldap_simple_bind_s(ld, dn.c_str(), password.c_str());
@@ -47,8 +48,9 @@ int Unbind(LDAP* ld) {
     return ldap_unbind(ld);
 }
 
-LDAP* Init(const TString& host, ui32 port) {
-    return ldap_init(host.c_str(), port);
+int Init(LDAP** ld, const TString& scheme, const TString& uris, ui32 port) {
+    Y_UNUSED(scheme, port);
+    return ldap_initialize(ld, uris.c_str());
 }
 
 int Search(LDAP* ld,
@@ -109,7 +111,10 @@ std::vector GetAllValuesOfAttribute(LDAP* ld, LDAPMessage* entry, char*
     return response;
 }
 
-ui32 GetPort() {
+ui32 GetPort(const TString& scheme) {
+    if (scheme == LDAPS_SCHEME) {
+        return LDAPS_PORT;
+    }
     return LDAP_PORT;
 }
 
diff --git a/ydb/core/security/ldap_auth_provider/ldap_auth_provider_ut.cpp b/ydb/core/security/ldap_auth_provider/ldap_auth_provider_ut.cpp
new file mode 100644
index 000000000000..5c5ac98a27ae
--- /dev/null
+++ b/ydb/core/security/ldap_auth_provider/ldap_auth_provider_ut.cpp
@@ -0,0 +1,780 @@
+#include 
+#include 
+#include 
+#include 
+
+#include 
+
+#include "ldap_auth_provider.h"
+
+namespace NKikimr {
+
+namespace {
+
+TString certificateContent = R"___(-----BEGIN CERTIFICATE-----
+MIIDjTCCAnWgAwIBAgIURt5IBx0J3xgEaQvmyrFH2A+NkpMwDQYJKoZIhvcNAQEL
+BQAwVjELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1vc2NvdzEPMA0GA1UEBwwGTW9z
+Y293MQ8wDQYDVQQKDAZZYW5kZXgxFDASBgNVBAMMC3Rlc3Qtc2VydmVyMB4XDTE5
+MDkyMDE3MTQ0MVoXDTQ3MDIwNDE3MTQ0MVowVjELMAkGA1UEBhMCUlUxDzANBgNV
+BAgMBk1vc2NvdzEPMA0GA1UEBwwGTW9zY293MQ8wDQYDVQQKDAZZYW5kZXgxFDAS
+BgNVBAMMC3Rlc3Qtc2VydmVyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAs0WY6HTuwKntcEcjo+pBuoNp5/GRgMX2qOJi09Iw021ZLK4Vf4drN7pXS5Ba
+OVqzUPFmXvoiG13hS7PLTuobJc63qPbIodiB6EXB+Sp0v+mE6lYUUyW9YxNnTPDc
+GG8E4vk9j3tBawT4yJIFTudIALWJfQvn3O9ebmYkilvq0ZT+TqBU8Mazo4lNu0T2
+YxWMlivcEyNRLPbka5W2Wy5eXGOnStidQFYka2mmCgljtulWzj1i7GODg93vmVyH
+NzjAs+mG9MJkT3ietG225BnyPDtu5A3b+vTAFhyJtMmDMyhJ6JtXXHu6zUDQxKiX
+6HLGCLIPhL2sk9ckPSkwXoMOywIDAQABo1MwUTAdBgNVHQ4EFgQUDv/xuJ4CvCgG
+fPrZP3hRAt2+/LwwHwYDVR0jBBgwFoAUDv/xuJ4CvCgGfPrZP3hRAt2+/LwwDwYD
+VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAinKpMYaA2tjLpAnPVbjy
+/ZxSBhhB26RiQp3Re8XOKyhTWqgYE6kldYT0aXgK9x9mPC5obQannDDYxDc7lX+/
+qP/u1X81ZcDRo/f+qQ3iHfT6Ftt/4O3qLnt45MFM6Q7WabRm82x3KjZTqpF3QUdy
+tumWiuAP5DMd1IRDtnKjFHO721OsEsf6NLcqdX89bGeqXDvrkwg3/PNwTyW5E7cj
+feY8L2eWtg6AJUnIBu11wvfzkLiH3QKzHvO/SIZTGf5ihDsJ3aKEE9UNauTL3bVc
+CRA/5XcX13GJwHHj6LCoc3sL7mt8qV9HKY2AOZ88mpObzISZxgPpdKCfjsrdm63V
+6g==
+-----END CERTIFICATE-----)___";
+
+enum class ESecurityConnectionType {
+    NON_SECURE,
+    START_TLS,
+    LDAPS_SCHEME,
+};
+
+void InitLdapSettings(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile, const ESecurityConnectionType& securityConnectionType) {
+    ldapSettings->SetHost("localhost");
+    ldapSettings->SetPort(ldapPort);
+    ldapSettings->SetBaseDn("dc=search,dc=yandex,dc=net");
+    ldapSettings->SetBindDn("cn=robouser,dc=search,dc=yandex,dc=net");
+    ldapSettings->SetBindPassword("robouserPassword");
+    ldapSettings->SetSearchFilter("uid=$username");
+
+    const auto setCertificate = [&ldapSettings] (bool useStartTls, TTempFileHandle& certificateFile) {
+        auto useTls = ldapSettings->MutableUseTls();
+        useTls->SetEnable(useStartTls);
+        certificateFile.Write(certificateContent.data(), certificateContent.size());
+        useTls->SetCaCertFile(certificateFile.Name());
+        useTls->SetCertRequire(NKikimrProto::TLdapAuthentication::TUseTls::ALLOW); // Enable TLS connection if server certificate is untrusted
+    };
+
+    if (securityConnectionType == ESecurityConnectionType::START_TLS) {
+        setCertificate(true, certificateFile);
+    } else if (securityConnectionType == ESecurityConnectionType::LDAPS_SCHEME) {
+        ldapSettings->SetScheme("ldaps");
+        setCertificate(false, certificateFile);
+    }
+}
+
+void InitLdapSettingsWithInvalidRobotUserLogin(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile, const ESecurityConnectionType& securityConnectionType) {
+    InitLdapSettings(ldapSettings, ldapPort, certificateFile, securityConnectionType);
+    ldapSettings->SetBindDn("cn=invalidRobouser,dc=search,dc=yandex,dc=net");
+}
+
+void InitLdapSettingsWithInvalidRobotUserPassword(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile, const ESecurityConnectionType& securityConnectionType) {
+    InitLdapSettings(ldapSettings, ldapPort, certificateFile, securityConnectionType);
+    ldapSettings->SetBindPassword("invalidPassword");
+}
+
+void InitLdapSettingsWithInvalidFilter(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile, const ESecurityConnectionType& securityConnectionType) {
+    InitLdapSettings(ldapSettings, ldapPort, certificateFile, securityConnectionType);
+    ldapSettings->SetSearchFilter("&(uid=$username)()");
+}
+
+void InitLdapSettingsWithUnavailableHost(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile, const ESecurityConnectionType& securityConnectionType) {
+    InitLdapSettings(ldapSettings, ldapPort, certificateFile, securityConnectionType);
+    ldapSettings->SetHost("unavailablehost");
+}
+
+void InitLdapSettingsWithEmptyHost(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile, const ESecurityConnectionType& securityConnectionType) {
+    InitLdapSettings(ldapSettings, ldapPort, certificateFile, securityConnectionType);
+    ldapSettings->SetHost("");
+}
+
+void InitLdapSettingsWithEmptyBaseDn(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile, const ESecurityConnectionType& securityConnectionType) {
+    InitLdapSettings(ldapSettings, ldapPort, certificateFile, securityConnectionType);
+    ldapSettings->SetBaseDn("");
+}
+
+void InitLdapSettingsWithEmptyBindDn(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile, const ESecurityConnectionType& securityConnectionType) {
+    InitLdapSettings(ldapSettings, ldapPort, certificateFile, securityConnectionType);
+    ldapSettings->SetBindDn("");
+}
+
+void InitLdapSettingsWithEmptyBindPassword(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile, const ESecurityConnectionType& securityConnectionType) {
+    InitLdapSettings(ldapSettings, ldapPort, certificateFile, securityConnectionType);
+    ldapSettings->SetBindPassword("");
+}
+
+void InitLdapSettingsWithCustomGroupAttribute(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile, const ESecurityConnectionType& securityConnectionType) {
+    InitLdapSettings(ldapSettings, ldapPort, certificateFile, securityConnectionType);
+    ldapSettings->SetRequestedGroupAttribute("groupDN");
+}
+
+void InitLdapSettingsWithListOfHosts(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile, const ESecurityConnectionType& securityConnectionType) {
+    InitLdapSettings(ldapSettings, ldapPort, certificateFile, securityConnectionType);
+    ldapSettings->AddHosts("qqq");
+    ldapSettings->AddHosts("localhost");
+    ldapSettings->AddHosts("localhost:11111");
+}
+
+class TLdapKikimrServer {
+public:
+    TLdapKikimrServer(std::function initLdapSettings, const ESecurityConnectionType& securityConnectionType)
+        : CaCertificateFile()
+        , SecurityConnectionType(securityConnectionType)
+        , Server(InitSettings(std::move(initLdapSettings))) {
+        Server.EnableGRpc(GrpcPort);
+        Server.GetRuntime()->SetLogPriority(NKikimrServices::TICKET_PARSER, NLog::PRI_TRACE);
+        Server.GetRuntime()->SetLogPriority(NKikimrServices::GRPC_CLIENT, NLog::PRI_TRACE);
+    }
+
+    TTestActorRuntime* GetRuntime() const {
+        return Server.GetRuntime();
+    }
+
+    ui16 GetLdapPort() const {
+        return LdapPort;
+    }
+
+private:
+    Tests::TServerSettings InitSettings(std::function&& initLdapSettings) {
+        using namespace Tests;
+        TPortManager tp;
+        LdapPort = tp.GetPort(389);
+        ui16 kikimrPort = tp.GetPort(2134);
+        GrpcPort = tp.GetPort(2135);
+        NKikimrProto::TAuthConfig authConfig;
+        authConfig.SetUseBlackBox(false);
+        authConfig.SetUseLoginProvider(true);
+        authConfig.SetRefreshTime("5s");
+
+        initLdapSettings(authConfig.MutableLdapAuthentication(), LdapPort, CaCertificateFile, SecurityConnectionType);
+
+        Tests::TServerSettings settings(kikimrPort, authConfig);
+        settings.SetDomainName("Root");
+        settings.CreateTicketParser = NKikimr::CreateTicketParser;
+        return settings;
+    }
+
+private:
+    TTempFileHandle CaCertificateFile;
+    ESecurityConnectionType SecurityConnectionType = ESecurityConnectionType::NON_SECURE;
+    Tests::TServer Server;
+    ui16 LdapPort;
+    ui16 GrpcPort;
+};
+
+NLogin::TLoginProvider::TLoginUserResponse GetLoginResponse(TLdapKikimrServer& server, const TString& login, const TString& password) {
+    TTestActorRuntime* runtime = server.GetRuntime();
+    NLogin::TLoginProvider provider;
+    provider.Audience = "/Root";
+    provider.RotateKeys();
+    TActorId sender = runtime->AllocateEdgeActor();
+    runtime->Send(new IEventHandle(MakeTicketParserID(), sender, new TEvTicketParser::TEvUpdateLoginSecurityState(provider.GetSecurityState())), 0);
+    return provider.LoginUser({.User = login, .Password = password, .ExternalAuth = "ldap"});
+}
+
+TAutoPtr LdapAuthenticate(TLdapKikimrServer& server, const TString& login, const TString& password) {
+    auto loginResponse = GetLoginResponse(server, login, password);
+    TTestActorRuntime* runtime = server.GetRuntime();
+    TActorId sender = runtime->AllocateEdgeActor();
+    runtime->Send(new IEventHandle(MakeTicketParserID(), sender, new TEvTicketParser::TEvAuthorizeTicket(loginResponse.Token)), 0);
+
+    TAutoPtr handle;
+    runtime->GrabEdgeEvent(handle);
+    return handle;
+}
+
+class TCorrectLdapResponse {
+public:
+    static std::vector Groups;
+    static LdapMock::TLdapMockResponses GetResponses(const TString& login, const TString& groupAttribute = "memberOf");
+};
+
+std::vector TCorrectLdapResponse::Groups {
+    "ou=groups,dc=search,dc=yandex,dc=net",
+    "cn=people,ou=groups,dc=search,dc=yandex,dc=net",
+    "cn=developers,ou=groups,dc=search,dc=yandex,dc=net"
+};
+
+LdapMock::TLdapMockResponses TCorrectLdapResponse::GetResponses(const TString& login, const TString& groupAttribute) {
+    LdapMock::TLdapMockResponses responses;
+    responses.BindResponses.push_back({{{.Login = "cn=robouser,dc=search,dc=yandex,dc=net", .Password = "robouserPassword"}}, {.Status = LdapMock::EStatus::SUCCESS}});
+
+    LdapMock::TSearchRequestInfo fetchGroupsSearchRequestInfo {
+        {
+            .BaseDn = "dc=search,dc=yandex,dc=net",
+            .Scope = 2,
+            .DerefAliases = 0,
+            .Filter = {.Type = LdapMock::EFilterType::LDAP_FILTER_EQUALITY, .Attribute = "uid", .Value = login},
+            .Attributes = {groupAttribute}
+        }
+    };
+
+    std::vector fetchGroupsSearchResponseEntries {
+        {
+            .Dn = "uid=" + login + ",dc=search,dc=yandex,dc=net",
+            .AttributeList = {
+                                {groupAttribute, TCorrectLdapResponse::Groups}
+                            }
+        }
+    };
+
+    LdapMock::TSearchResponseInfo fetchGroupsSearchResponseInfo {
+        .ResponseEntries = fetchGroupsSearchResponseEntries,
+        .ResponseDone = {.Status = LdapMock::EStatus::SUCCESS}
+    };
+    responses.SearchResponses.push_back({fetchGroupsSearchRequestInfo, fetchGroupsSearchResponseInfo});
+    return responses;
+}
+
+void CheckRequiredLdapSettings(std::function initLdapSettings,
+                               const TString& expectedErrorMessage,
+                               const ESecurityConnectionType& securityConnectionType = ESecurityConnectionType::NON_SECURE) {
+    TLdapKikimrServer server(initLdapSettings, securityConnectionType);
+
+    LdapMock::TLdapMockResponses responses;
+    LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), responses, securityConnectionType == ESecurityConnectionType::LDAPS_SCHEME);
+
+    TString login = "ldapuser";
+    TString password = "ldapUserPassword";
+
+    TAutoPtr handle = LdapAuthenticate(server, login, password);
+    TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
+    UNIT_ASSERT_C(!ticketParserResult->Error.empty(), "Expected return error message");
+    UNIT_ASSERT_STRINGS_EQUAL(ticketParserResult->Error.Message, expectedErrorMessage);
+
+    ldapServer.Stop();
+}
+
+} // namespace
+
+
+Y_UNIT_TEST_SUITE(LdapAuthProviderTest) {
+
+void LdapFetchGroupsWithDefaultGroupAttributeGood(const ESecurityConnectionType& secureType) {
+        TString login = "ldapuser";
+        TString password = "ldapUserPassword";
+
+        TLdapKikimrServer server(InitLdapSettings, secureType);
+        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), TCorrectLdapResponse::GetResponses(login), secureType == ESecurityConnectionType::LDAPS_SCHEME);
+
+        TAutoPtr handle = LdapAuthenticate(server, login, password);
+        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
+        UNIT_ASSERT_C(ticketParserResult->Error.empty(), ticketParserResult->Error);
+        UNIT_ASSERT(ticketParserResult->Token != nullptr);
+        const TString ldapDomain = "@ldap";
+        UNIT_ASSERT_VALUES_EQUAL(ticketParserResult->Token->GetUserSID(), login + ldapDomain);
+        const auto& fetchedGroups = ticketParserResult->Token->GetGroupSIDs();
+        THashSet groups(fetchedGroups.begin(), fetchedGroups.end());
+
+        THashSet expectedGroups;
+        std::transform(TCorrectLdapResponse::Groups.begin(), TCorrectLdapResponse::Groups.end(), std::inserter(expectedGroups, expectedGroups.end()), [&ldapDomain](TString& group) {
+            return group.append(ldapDomain);
+        });
+        expectedGroups.insert("all-users@well-known");
+
+        UNIT_ASSERT_VALUES_EQUAL(fetchedGroups.size(), expectedGroups.size());
+        for (const auto& expectedGroup : expectedGroups) {
+            UNIT_ASSERT_C(groups.contains(expectedGroup), "Can not find " + expectedGroup);
+        }
+
+        ldapServer.Stop();
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithDefaultGroupAttributeGood_nonSecure) {
+        LdapFetchGroupsWithDefaultGroupAttributeGood(ESecurityConnectionType::NON_SECURE);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithDefaultGroupAttributeGood_StartTls) {
+        LdapFetchGroupsWithDefaultGroupAttributeGood(ESecurityConnectionType::START_TLS);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithDefaultGroupAttributeGood_LdapsScheme) {
+        LdapFetchGroupsWithDefaultGroupAttributeGood(ESecurityConnectionType::LDAPS_SCHEME);
+    }
+
+    void LdapFetchGroupsWithDefaultGroupAttributeGoodUseListOfHosts(const ESecurityConnectionType& secureType) {
+        TString login = "ldapuser";
+        TString password = "ldapUserPassword";
+
+        TLdapKikimrServer server(InitLdapSettingsWithListOfHosts, secureType);
+        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), TCorrectLdapResponse::GetResponses(login), secureType == ESecurityConnectionType::LDAPS_SCHEME);
+
+        TAutoPtr handle = LdapAuthenticate(server, login, password);
+        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
+        UNIT_ASSERT_C(ticketParserResult->Error.empty(), ticketParserResult->Error);
+        UNIT_ASSERT(ticketParserResult->Token != nullptr);
+        const TString ldapDomain = "@ldap";
+        UNIT_ASSERT_VALUES_EQUAL(ticketParserResult->Token->GetUserSID(), login + ldapDomain);
+        const auto& fetchedGroups = ticketParserResult->Token->GetGroupSIDs();
+        THashSet groups(fetchedGroups.begin(), fetchedGroups.end());
+
+        THashSet expectedGroups;
+        std::transform(TCorrectLdapResponse::Groups.begin(), TCorrectLdapResponse::Groups.end(), std::inserter(expectedGroups, expectedGroups.end()), [&ldapDomain](TString& group) {
+            return group.append(ldapDomain);
+        });
+        expectedGroups.insert("all-users@well-known");
+
+        UNIT_ASSERT_VALUES_EQUAL(fetchedGroups.size(), expectedGroups.size());
+        for (const auto& expectedGroup : expectedGroups) {
+            UNIT_ASSERT_C(groups.contains(expectedGroup), "Can not find " + expectedGroup);
+        }
+
+        ldapServer.Stop();
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithDefaultGroupAttributeGoodUseListOfHosts_nonSecure) {
+        LdapFetchGroupsWithDefaultGroupAttributeGoodUseListOfHosts(ESecurityConnectionType::NON_SECURE);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithDefaultGroupAttributeGoodUseListOfHosts_StartTls) {
+        LdapFetchGroupsWithDefaultGroupAttributeGoodUseListOfHosts(ESecurityConnectionType::START_TLS);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithDefaultGroupAttributeGoodUseListOfHosts_LdapsScheme) {
+        LdapFetchGroupsWithDefaultGroupAttributeGoodUseListOfHosts(ESecurityConnectionType::LDAPS_SCHEME);
+    }
+
+    void LdapFetchGroupsWithCustomGroupAttributeGood(const ESecurityConnectionType& secureType) {
+        TString login = "ldapuser";
+        TString password = "ldapUserPassword";
+
+        TLdapKikimrServer server(InitLdapSettingsWithCustomGroupAttribute, secureType);
+        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), TCorrectLdapResponse::GetResponses(login, "groupDN"), secureType == ESecurityConnectionType::LDAPS_SCHEME);
+
+        TAutoPtr handle = LdapAuthenticate(server, login, password);
+        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
+        UNIT_ASSERT_C(ticketParserResult->Error.empty(), ticketParserResult->Error);
+        UNIT_ASSERT(ticketParserResult->Token != nullptr);
+        const TString ldapDomain = "@ldap";
+        UNIT_ASSERT_VALUES_EQUAL(ticketParserResult->Token->GetUserSID(), login + ldapDomain);
+        const auto& fetchedGroups = ticketParserResult->Token->GetGroupSIDs();
+        THashSet groups(fetchedGroups.begin(), fetchedGroups.end());
+
+        THashSet expectedGroups;
+        std::transform(TCorrectLdapResponse::Groups.begin(), TCorrectLdapResponse::Groups.end(), std::inserter(expectedGroups, expectedGroups.end()), [&ldapDomain](TString& group) {
+            return group.append(ldapDomain);
+        });
+        expectedGroups.insert("all-users@well-known");
+
+        UNIT_ASSERT_VALUES_EQUAL(fetchedGroups.size(), expectedGroups.size());
+        for (const auto& expectedGroup : expectedGroups) {
+            UNIT_ASSERT_C(groups.contains(expectedGroup), "Can not find " + expectedGroup);
+        }
+
+        ldapServer.Stop();
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithCustomGroupAttributeGood_nonSecure) {
+        LdapFetchGroupsWithCustomGroupAttributeGood(ESecurityConnectionType::NON_SECURE);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithCustomGroupAttributeGood_StartTls) {
+        LdapFetchGroupsWithCustomGroupAttributeGood(ESecurityConnectionType::START_TLS);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithCustomGroupAttributeGood_LdapsScheme) {
+        LdapFetchGroupsWithCustomGroupAttributeGood(ESecurityConnectionType::LDAPS_SCHEME);
+    }
+
+    void LdapFetchGroupsWithDontExistGroupAttribute(const ESecurityConnectionType& secureType) {
+        TString login = "ldapuser";
+        TString password = "ldapUserPassword";
+
+        TLdapKikimrServer server(InitLdapSettingsWithCustomGroupAttribute, secureType);
+
+        LdapMock::TLdapMockResponses responses;
+        responses.BindResponses.push_back({{{.Login = "cn=robouser,dc=search,dc=yandex,dc=net", .Password = "robouserPassword"}}, {.Status = LdapMock::EStatus::SUCCESS}});
+
+        LdapMock::TSearchRequestInfo fetchGroupsSearchRequestInfo {
+            {
+                .BaseDn = "dc=search,dc=yandex,dc=net",
+                .Scope = 2,
+                .DerefAliases = 0,
+                .Filter = {.Type = LdapMock::EFilterType::LDAP_FILTER_EQUALITY, .Attribute = "uid", .Value = login},
+                .Attributes = {"groupDN"}
+            }
+        };
+
+        std::vector fetchGroupsSearchResponseEntries {
+            {
+                .Dn = "uid=" + login + ",dc=search,dc=yandex,dc=net",
+                .AttributeList = {} // Return empty group list, attribute 'groupDN' not found
+            }
+        };
+
+        LdapMock::TSearchResponseInfo fetchGroupsSearchResponseInfo {
+            .ResponseEntries = fetchGroupsSearchResponseEntries,
+            .ResponseDone = {.Status = LdapMock::EStatus::SUCCESS}
+        };
+        responses.SearchResponses.push_back({fetchGroupsSearchRequestInfo, fetchGroupsSearchResponseInfo});
+
+        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), responses, secureType == ESecurityConnectionType::LDAPS_SCHEME);
+
+        TAutoPtr handle = LdapAuthenticate(server, login, password);
+        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
+        UNIT_ASSERT_C(ticketParserResult->Error.empty(), ticketParserResult->Error);
+        UNIT_ASSERT(ticketParserResult->Token != nullptr);
+        const TString ldapDomain = "@ldap";
+        UNIT_ASSERT_VALUES_EQUAL(ticketParserResult->Token->GetUserSID(), login + ldapDomain);
+        const auto& fetchedGroups = ticketParserResult->Token->GetGroupSIDs();
+        UNIT_ASSERT_EQUAL(fetchedGroups.size(), 1);
+        UNIT_ASSERT_STRINGS_EQUAL(fetchedGroups.front(), "all-users@well-known");
+
+        ldapServer.Stop();
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithDontExistGroupAttribute_nonSecure) {
+        LdapFetchGroupsWithDontExistGroupAttribute(ESecurityConnectionType::NON_SECURE);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithDontExistGroupAttribute_StartTls) {
+        LdapFetchGroupsWithDontExistGroupAttribute(ESecurityConnectionType::START_TLS);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithDontExistGroupAttribute_LdapsScheme) {
+        LdapFetchGroupsWithDontExistGroupAttribute(ESecurityConnectionType::LDAPS_SCHEME);
+    }
+
+    void LdapFetchGroupsWithInvalidRobotUserLoginBad(const ESecurityConnectionType& secureType) {
+        TString login = "ldapuser";
+        TString password = "ldapUserPassword";
+
+        LdapMock::TLdapMockResponses responses;
+        responses.BindResponses.push_back({{{.Login = "cn=invalidRobouser,dc=search,dc=yandex,dc=net", .Password = "robouserPassword"}}, {.Status = LdapMock::EStatus::INVALID_CREDENTIALS}});
+
+        TLdapKikimrServer server(InitLdapSettingsWithInvalidRobotUserLogin, secureType);
+        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), responses, secureType == ESecurityConnectionType::LDAPS_SCHEME);
+
+        TAutoPtr handle = LdapAuthenticate(server, login, password);
+        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
+        UNIT_ASSERT_C(!ticketParserResult->Error.empty(), "Expected return error message");
+        TStringBuilder expectedErrorMessage;
+        expectedErrorMessage << "Could not perform initial LDAP bind for dn cn=invalidRobouser,dc=search,dc=yandex,dc=net on server "
+                             << (secureType == ESecurityConnectionType::LDAPS_SCHEME ? "ldaps://" : "ldap://") << "localhost:"
+                             << server.GetLdapPort() << "\nInvalid credentials";
+        UNIT_ASSERT_STRINGS_EQUAL(ticketParserResult->Error.Message, expectedErrorMessage);
+        UNIT_ASSERT(ticketParserResult->Token == nullptr);
+
+        ldapServer.Stop();
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithInvalidRobotUserLoginBad_nonSecure) {
+        LdapFetchGroupsWithInvalidRobotUserLoginBad(ESecurityConnectionType::NON_SECURE);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithInvalidRobotUserLoginBad_StartTls) {
+        LdapFetchGroupsWithInvalidRobotUserLoginBad(ESecurityConnectionType::START_TLS);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithInvalidRobotUserLoginBad_LdapsScheme) {
+        LdapFetchGroupsWithInvalidRobotUserLoginBad(ESecurityConnectionType::LDAPS_SCHEME);
+    }
+
+    void LdapFetchGroupsWithInvalidRobotUserPasswordBad(const ESecurityConnectionType& secureType) {
+        TString login = "ldapuser";
+        TString password = "ldapUserPassword";
+
+        LdapMock::TLdapMockResponses responses;
+        responses.BindResponses.push_back({{{.Login = "cn=robouser,dc=search,dc=yandex,dc=net", .Password = "invalidPassword"}}, {.Status = LdapMock::EStatus::INVALID_CREDENTIALS}});
+
+        TLdapKikimrServer server(InitLdapSettingsWithInvalidRobotUserPassword, secureType);
+        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), responses, secureType == ESecurityConnectionType::LDAPS_SCHEME);
+
+        TAutoPtr handle = LdapAuthenticate(server, login, password);
+        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
+        UNIT_ASSERT_C(!ticketParserResult->Error.empty(), "Expected return error message");
+        TStringBuilder expectedErrorMessage;
+        expectedErrorMessage << "Could not perform initial LDAP bind for dn cn=robouser,dc=search,dc=yandex,dc=net on server "
+                             << (secureType == ESecurityConnectionType::LDAPS_SCHEME ? "ldaps://" : "ldap://") << "localhost:"
+                             << server.GetLdapPort() << "\nInvalid credentials";
+        UNIT_ASSERT_STRINGS_EQUAL(ticketParserResult->Error.Message, expectedErrorMessage);
+        UNIT_ASSERT(ticketParserResult->Token == nullptr);
+
+        ldapServer.Stop();
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithInvalidRobotUserPasswordBad_nonSecure) {
+        LdapFetchGroupsWithInvalidRobotUserPasswordBad(ESecurityConnectionType::NON_SECURE);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithInvalidRobotUserPasswordBad_StartTls) {
+        LdapFetchGroupsWithInvalidRobotUserPasswordBad(ESecurityConnectionType::START_TLS);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithInvalidRobotUserPasswordBad_LdapsScheme) {
+        LdapFetchGroupsWithInvalidRobotUserPasswordBad(ESecurityConnectionType::LDAPS_SCHEME);
+    }
+
+    void LdapFetchGroupsWithRemovedUserCredentialsBad(const ESecurityConnectionType& secureType) {
+        TString removedUserLogin = "ldapuser";
+        TString removedUserPassword = "ldapUserPassword";
+
+        LdapMock::TLdapMockResponses responses;
+        responses.BindResponses.push_back({{{.Login = "cn=robouser,dc=search,dc=yandex,dc=net", .Password = "robouserPassword"}}, {.Status = LdapMock::EStatus::SUCCESS}});
+
+        LdapMock::TSearchRequestInfo removedUserSearchRequestInfo {
+            {
+                .BaseDn = "dc=search,dc=yandex,dc=net",
+                .Scope = 2,
+                .DerefAliases = 0,
+                .Filter = {.Type = LdapMock::EFilterType::LDAP_FILTER_EQUALITY, .Attribute = "uid", .Value = removedUserLogin},
+                .Attributes = {"memberOf"}
+            }
+        };
+
+        LdapMock::TSearchResponseInfo removedUserSearchResponseInfo {
+            .ResponseEntries = {}, // Removed user was not found. Return empty list of entries
+            .ResponseDone = {.Status = LdapMock::EStatus::SUCCESS}
+        };
+        responses.SearchResponses.push_back({removedUserSearchRequestInfo, removedUserSearchResponseInfo});
+
+        TLdapKikimrServer server(InitLdapSettings, secureType);
+        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), responses, secureType == ESecurityConnectionType::LDAPS_SCHEME);
+
+        TAutoPtr handle = LdapAuthenticate(server, removedUserLogin, removedUserPassword);
+        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
+        UNIT_ASSERT_C(!ticketParserResult->Error.empty(), "Expected return error message");
+        const TString expectedErrorMessage = "LDAP user " + removedUserLogin + " does not exist. "
+                                             "LDAP search for filter uid=" + removedUserLogin + " on server " +
+                                             (secureType == ESecurityConnectionType::LDAPS_SCHEME ? "ldaps://" : "ldap://") + "localhost:" +
+                                             ToString(server.GetLdapPort()) + " return no entries";
+        UNIT_ASSERT_STRINGS_EQUAL(ticketParserResult->Error.Message, expectedErrorMessage);
+
+        ldapServer.Stop();
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithRemovedUserCredentialsBad_nonSecure) {
+        LdapFetchGroupsWithRemovedUserCredentialsBad(ESecurityConnectionType::NON_SECURE);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithRemovedUserCredentialsBad_StartTls) {
+        LdapFetchGroupsWithRemovedUserCredentialsBad(ESecurityConnectionType::START_TLS);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsWithRemovedUserCredentialsBad_LdapsScheme) {
+        LdapFetchGroupsWithRemovedUserCredentialsBad(ESecurityConnectionType::LDAPS_SCHEME);
+    }
+
+    void LdapFetchGroupsUseInvalidSearchFilterBad(const ESecurityConnectionType& secureType) {
+        TString login = "ldapuser";
+        TString password = "ldapUserPassword";
+
+        LdapMock::TLdapMockResponses responses;
+        responses.BindResponses.push_back({{{.Login = "cn=robouser,dc=search,dc=yandex,dc=net", .Password = "robouserPassword"}}, {.Status = LdapMock::EStatus::SUCCESS}});
+
+        TLdapKikimrServer server(InitLdapSettingsWithInvalidFilter, secureType);
+        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), responses, secureType == ESecurityConnectionType::LDAPS_SCHEME);
+
+        TAutoPtr handle = LdapAuthenticate(server, login, password);
+        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
+        UNIT_ASSERT_C(!ticketParserResult->Error.empty(), "Expected return error message");
+        const TString expectedErrorMessage = "Could not search for filter &(uid=" + login + ")() on server " +
+                                              (secureType == ESecurityConnectionType::LDAPS_SCHEME ? "ldaps://" : "ldap://") + "localhost:" +
+                                              ToString(server.GetLdapPort()) + "\nBad search filter";
+        UNIT_ASSERT_STRINGS_EQUAL(ticketParserResult->Error.Message, expectedErrorMessage);
+
+        ldapServer.Stop();
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsUseInvalidSearchFilterBad_nonSecure) {
+        LdapFetchGroupsUseInvalidSearchFilterBad(ESecurityConnectionType::NON_SECURE);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsUseInvalidSearchFilterBad_StartTls) {
+        LdapFetchGroupsUseInvalidSearchFilterBad(ESecurityConnectionType::START_TLS);
+    }
+
+    Y_UNIT_TEST(LdapFetchGroupsUseInvalidSearchFilterBad_LdapsScheme) {
+        LdapFetchGroupsUseInvalidSearchFilterBad(ESecurityConnectionType::LDAPS_SCHEME);
+    }
+
+    Y_UNIT_TEST(LdapServerIsUnavailable) {
+        CheckRequiredLdapSettings(InitLdapSettingsWithUnavailableHost, "Could not start TLS\nCan't contact LDAP server", ESecurityConnectionType::START_TLS);
+    }
+
+    Y_UNIT_TEST(LdapRequestWithEmptyHost) {
+        CheckRequiredLdapSettings(InitLdapSettingsWithEmptyHost, "List of ldap server hosts is empty");
+    }
+
+    Y_UNIT_TEST(LdapRequestWithEmptyBaseDn) {
+        CheckRequiredLdapSettings(InitLdapSettingsWithEmptyBaseDn, "Parameter BaseDn is empty");
+    }
+
+    Y_UNIT_TEST(LdapRequestWithEmptyBindDn) {
+        CheckRequiredLdapSettings(InitLdapSettingsWithEmptyBindDn, "Parameter BindDn is empty");
+    }
+
+    Y_UNIT_TEST(LdapRequestWithEmptyBindPassword) {
+        CheckRequiredLdapSettings(InitLdapSettingsWithEmptyBindPassword, "Parameter BindPassword is empty");
+    }
+
+    void LdapRefreshGroupsInfoGood(const ESecurityConnectionType& secureType) {
+        TString login = "ldapuser";
+        TString password = "ldapUserPassword";
+
+
+        auto responses = TCorrectLdapResponse::GetResponses(login);
+        LdapMock::TLdapMockResponses updatedResponses = responses;
+
+        std::vector newLdapGroups {
+            "ou=groups,dc=search,dc=yandex,dc=net",
+            "cn=people,ou=groups,dc=search,dc=yandex,dc=net",
+            "cn=designers,ou=groups,dc=search,dc=yandex,dc=net"
+        };
+        std::vector newFetchGroupsSearchResponseEntries {
+            {
+                .Dn = "uid=" + login + ",dc=search,dc=yandex,dc=net",
+                .AttributeList = {
+                                    {"memberOf", newLdapGroups}
+                                }
+            }
+        };
+
+        const TString ldapDomain = "@ldap";
+        THashSet newExpectedGroups;
+        std::transform(newLdapGroups.begin(), newLdapGroups.end(), std::inserter(newExpectedGroups, newExpectedGroups.end()), [&ldapDomain](TString& group) {
+            return group.append(ldapDomain);
+        });
+        newExpectedGroups.insert("all-users@well-known");
+
+        LdapMock::TSearchResponseInfo newFetchGroupsSearchResponseInfo {
+            .ResponseEntries = newFetchGroupsSearchResponseEntries,
+            .ResponseDone = {.Status = LdapMock::EStatus::SUCCESS}
+        };
+
+        auto& searchResponse = updatedResponses.SearchResponses.front();
+        searchResponse.second = newFetchGroupsSearchResponseInfo;
+
+        TLdapKikimrServer server(InitLdapSettings, secureType);
+        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), {responses, updatedResponses}, secureType == ESecurityConnectionType::LDAPS_SCHEME);
+
+        auto loginResponse = GetLoginResponse(server, login, password);
+        TTestActorRuntime* runtime = server.GetRuntime();
+        TActorId sender = runtime->AllocateEdgeActor();
+        runtime->Send(new IEventHandle(MakeTicketParserID(), sender, new TEvTicketParser::TEvAuthorizeTicket(loginResponse.Token)), 0);
+        TAutoPtr handle;
+        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = runtime->GrabEdgeEvent(handle);
+
+        UNIT_ASSERT_C(ticketParserResult->Error.empty(), ticketParserResult->Error);
+        UNIT_ASSERT(ticketParserResult->Token != nullptr);
+        UNIT_ASSERT_VALUES_EQUAL(ticketParserResult->Token->GetUserSID(), login + ldapDomain);
+        const auto& fetchedGroups = ticketParserResult->Token->GetGroupSIDs();
+        THashSet groups(fetchedGroups.begin(), fetchedGroups.end());
+
+        THashSet expectedGroups;
+        std::transform(TCorrectLdapResponse::Groups.begin(), TCorrectLdapResponse::Groups.end(), std::inserter(expectedGroups, expectedGroups.end()), [&ldapDomain](TString& group) {
+            return group.append(ldapDomain);
+        });
+        expectedGroups.insert("all-users@well-known");
+
+        UNIT_ASSERT_VALUES_EQUAL(fetchedGroups.size(), expectedGroups.size());
+        for (const auto& expectedGroup : expectedGroups) {
+            UNIT_ASSERT_C(groups.contains(expectedGroup), "Can not find " + expectedGroup);
+        }
+
+        ldapServer.UpdateResponses();
+        Sleep(TDuration::Seconds(10));
+
+        runtime->Send(new IEventHandle(MakeTicketParserID(), sender, new TEvTicketParser::TEvAuthorizeTicket(loginResponse.Token)), 0);
+        ticketParserResult = runtime->GrabEdgeEvent(handle);
+
+        UNIT_ASSERT_C(ticketParserResult->Error.empty(), ticketParserResult->Error);
+        UNIT_ASSERT(ticketParserResult->Token != nullptr);
+        UNIT_ASSERT_VALUES_EQUAL(ticketParserResult->Token->GetUserSID(), login + "@ldap");
+        const auto& newFetchedGroups = ticketParserResult->Token->GetGroupSIDs();
+        THashSet newGroups(newFetchedGroups.begin(), newFetchedGroups.end());
+        UNIT_ASSERT_VALUES_EQUAL(newFetchedGroups.size(), newExpectedGroups.size());
+        for (const auto& expectedGroup : newExpectedGroups) {
+            UNIT_ASSERT_C(newGroups.contains(expectedGroup), "Can not find " + expectedGroup);
+        }
+
+        ldapServer.Stop();
+    }
+
+    Y_UNIT_TEST(LdapRefreshGroupsInfoGood_nonSecure) {
+        LdapRefreshGroupsInfoGood(ESecurityConnectionType::NON_SECURE);
+    }
+
+    Y_UNIT_TEST(LdapRefreshGroupsInfoGood_StartTls) {
+        LdapRefreshGroupsInfoGood(ESecurityConnectionType::START_TLS);
+    }
+
+    Y_UNIT_TEST(LdapRefreshGroupsInfoGood_LdapsScheme) {
+        LdapRefreshGroupsInfoGood(ESecurityConnectionType::LDAPS_SCHEME);
+    }
+
+    void LdapRefreshRemoveUserBad(const ESecurityConnectionType& secureType) {
+        TString login = "ldapuser";
+        TString password = "ldapUserPassword";
+
+        TLdapKikimrServer server(InitLdapSettings, secureType);
+        auto responses = TCorrectLdapResponse::GetResponses(login);
+        LdapMock::TLdapMockResponses updatedResponses = responses;
+        LdapMock::TSearchResponseInfo newFetchGroupsSearchResponseInfo {
+            .ResponseEntries = {}, // User has been removed. Return empty entries list
+            .ResponseDone = {.Status = LdapMock::EStatus::SUCCESS}
+        };
+
+        auto& searchResponse = updatedResponses.SearchResponses.front();
+        searchResponse.second = newFetchGroupsSearchResponseInfo;
+        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), {responses, updatedResponses}, secureType == ESecurityConnectionType::LDAPS_SCHEME);
+
+        auto loginResponse = GetLoginResponse(server, login, password);
+        TTestActorRuntime* runtime = server.GetRuntime();
+        TActorId sender = runtime->AllocateEdgeActor();
+        runtime->Send(new IEventHandle(MakeTicketParserID(), sender, new TEvTicketParser::TEvAuthorizeTicket(loginResponse.Token)), 0);
+        TAutoPtr handle;
+        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = runtime->GrabEdgeEvent(handle);
+
+        UNIT_ASSERT_C(ticketParserResult->Error.empty(), ticketParserResult->Error);
+        UNIT_ASSERT(ticketParserResult->Token != nullptr);
+        const TString ldapDomain = "@ldap";
+        UNIT_ASSERT_VALUES_EQUAL(ticketParserResult->Token->GetUserSID(), login + ldapDomain);
+        const auto& fetchedGroups = ticketParserResult->Token->GetGroupSIDs();
+        THashSet groups(fetchedGroups.begin(), fetchedGroups.end());
+
+        THashSet expectedGroups;
+        std::transform(TCorrectLdapResponse::Groups.begin(), TCorrectLdapResponse::Groups.end(), std::inserter(expectedGroups, expectedGroups.end()), [&ldapDomain](TString& group) {
+            return group.append(ldapDomain);
+        });
+        expectedGroups.insert("all-users@well-known");
+
+        UNIT_ASSERT_VALUES_EQUAL(fetchedGroups.size(), expectedGroups.size());
+        for (const auto& expectedGroup : expectedGroups) {
+            UNIT_ASSERT_C(groups.contains(expectedGroup), "Can not find " + expectedGroup);
+        }
+
+        ldapServer.UpdateResponses();
+        Sleep(TDuration::Seconds(10));
+
+        runtime->Send(new IEventHandle(MakeTicketParserID(), sender, new TEvTicketParser::TEvAuthorizeTicket(loginResponse.Token)), 0);
+        ticketParserResult = runtime->GrabEdgeEvent(handle);
+
+        UNIT_ASSERT_C(!ticketParserResult->Error.empty(), "Expected return error message");
+        UNIT_ASSERT(ticketParserResult->Token == nullptr);
+        const TString expectedErrorMessage = "LDAP user " + login + " does not exist. "
+                                             "LDAP search for filter uid=" + login + " on server " +
+                                             (secureType == ESecurityConnectionType::LDAPS_SCHEME ? "ldaps://" : "ldap://") + "localhost:" +
+                                             ToString(server.GetLdapPort()) + " return no entries";
+        UNIT_ASSERT_STRINGS_EQUAL(ticketParserResult->Error.Message, expectedErrorMessage);
+        UNIT_ASSERT_EQUAL(ticketParserResult->Error.Retryable, false);
+
+        ldapServer.Stop();
+    }
+
+    Y_UNIT_TEST(LdapRefreshRemoveUserBad_nonSecure) {
+        LdapRefreshRemoveUserBad(ESecurityConnectionType::NON_SECURE);
+    }
+
+    Y_UNIT_TEST(LdapRefreshRemoveUserBad_StartTls) {
+        LdapRefreshRemoveUserBad(ESecurityConnectionType::START_TLS);
+    }
+
+    Y_UNIT_TEST(LdapRefreshRemoveUserBad_LdapsScheme) {
+        LdapRefreshRemoveUserBad(ESecurityConnectionType::LDAPS_SCHEME);
+    }
+
+}
+
+} // NKikimr
diff --git a/ydb/core/security/ldap_auth_provider_win.cpp b/ydb/core/security/ldap_auth_provider/ldap_auth_provider_win.cpp
similarity index 88%
rename from ydb/core/security/ldap_auth_provider_win.cpp
rename to ydb/core/security/ldap_auth_provider/ldap_auth_provider_win.cpp
index c4d27626eef8..399a1f2916cd 100644
--- a/ydb/core/security/ldap_auth_provider_win.cpp
+++ b/ydb/core/security/ldap_auth_provider/ldap_auth_provider_win.cpp
@@ -18,6 +18,7 @@ char ldapNoAttribute[] = LDAP_NO_ATTRS;
 }
 
 char* noAttributes[] = {ldapNoAttribute, nullptr};
+const TString LDAPS_SCHEME = "ldaps";
 
 int Bind(LDAP* ld, const TString& dn, const TString& password) {
     char* bindDn = const_cast(dn.c_str());
@@ -29,9 +30,15 @@ int Unbind(LDAP* ld) {
     return ldap_unbind(ld);
 }
 
-LDAP* Init(const TString& host, ui32 port) {
-    char* ldapHost = const_cast(host.c_str());
-    return ldap_init(ldapHost, port);
+int Init(LDAP** ld, const TString& scheme, const TString& uris, ui32 port) {
+    char* hostName = const_cast(uris.c_str());
+    if (scheme == LDAPS_SCHEME) {
+        static const int isSecure = 1;
+        *ld = ldap_sslinit(hostName, port, isSecure);
+    } else {
+        *ld = ldap_init(hostName, port);
+    }
+    return LdapGetLastError();
 }
 
 int Search(LDAP* ld,
@@ -93,7 +100,10 @@ std::vector GetAllValuesOfAttribute(LDAP* ld, LDAPMessage* entry, char*
     return response;
 }
 
-ui32 GetPort() {
+ui32 GetPort(const TString& scheme) {
+    if (scheme == LDAPS_SCHEME) {
+        return LDAP_SSL_PORT;
+    }
     return LDAP_PORT;
 }
 
diff --git a/ydb/core/security/ldap_compat.h b/ydb/core/security/ldap_auth_provider/ldap_compat.h
similarity index 90%
rename from ydb/core/security/ldap_compat.h
rename to ydb/core/security/ldap_auth_provider/ldap_compat.h
index 92d658a9debf..15aee21e9c7f 100644
--- a/ydb/core/security/ldap_compat.h
+++ b/ydb/core/security/ldap_auth_provider/ldap_compat.h
@@ -8,6 +8,7 @@
 namespace NKikimrLdap {
 
 extern char* noAttributes[];
+extern const TString LDAPS_SCHEME;
 
 enum class EScope : int {
     BASE,
@@ -25,7 +26,7 @@ enum class EOption {
 
 int Bind(LDAP* ld, const TString& dn, const TString& password);
 int Unbind(LDAP* ld);
-LDAP* Init(const TString& host, ui32 port);
+int Init(LDAP** ld, const TString& scheme, const TString& uris, ui32 port);
 int Search(LDAP* ld,
            const TString& base,
            const EScope& scope,
@@ -44,7 +45,7 @@ int CountEntries(LDAP *ld, LDAPMessage *chain);
 std::vector GetAllValuesOfAttribute(LDAP* ld, LDAPMessage* entry, char* target);
 int SetProtocolVersion(LDAP* ld);
 int SetOption(LDAP* ld, const EOption& option, const void* value);
-ui32 GetPort();
+ui32 GetPort(const TString& scheme);
 int GetScope(const EScope& scope);
 bool IsSuccess(int result);
 NKikimr::TEvLdapAuthProvider::EStatus ErrorToStatus(int err);
diff --git a/ydb/core/security/ldap_utils.cpp b/ydb/core/security/ldap_auth_provider/ldap_utils.cpp
similarity index 100%
rename from ydb/core/security/ldap_utils.cpp
rename to ydb/core/security/ldap_auth_provider/ldap_utils.cpp
diff --git a/ydb/core/security/ldap_utils.h b/ydb/core/security/ldap_auth_provider/ldap_utils.h
similarity index 100%
rename from ydb/core/security/ldap_utils.h
rename to ydb/core/security/ldap_auth_provider/ldap_utils.h
diff --git a/ydb/core/security/ldap_utils_ut.cpp b/ydb/core/security/ldap_auth_provider/ldap_utils_ut.cpp
similarity index 100%
rename from ydb/core/security/ldap_utils_ut.cpp
rename to ydb/core/security/ldap_auth_provider/ldap_utils_ut.cpp
diff --git a/ydb/core/security/ldap_auth_provider/ut/ya.make b/ydb/core/security/ldap_auth_provider/ut/ya.make
new file mode 100644
index 000000000000..08cd4dae22ed
--- /dev/null
+++ b/ydb/core/security/ldap_auth_provider/ut/ya.make
@@ -0,0 +1,21 @@
+UNITTEST_FOR(ydb/core/security/ldap_auth_provider)
+
+FORK_SUBTESTS()
+
+TIMEOUT(600)
+
+SIZE(MEDIUM)
+
+PEERDIR(
+    ydb/core/testlib/default
+    ydb/library/testlib/service_mocks/ldap_mock
+)
+
+YQL_LAST_ABI_VERSION()
+
+SRCS(
+    ldap_auth_provider_ut.cpp
+    ldap_utils_ut.cpp
+)
+
+END()
diff --git a/ydb/core/security/ldap_auth_provider/ya.make b/ydb/core/security/ldap_auth_provider/ya.make
new file mode 100644
index 000000000000..abdc3f210725
--- /dev/null
+++ b/ydb/core/security/ldap_auth_provider/ya.make
@@ -0,0 +1,34 @@
+LIBRARY()
+
+SRCS(
+    ldap_auth_provider.cpp
+    ldap_utils.cpp
+)
+
+IF(OS_LINUX OR OS_DARWIN)
+    PEERDIR(
+        contrib/libs/openldap
+    )
+
+    SRCS(
+        ldap_auth_provider_linux.cpp
+    )
+ELSEIF(OS_WINDOWS)
+    EXTRALIBS_STATIC(wldap32.lib)
+
+    SRCS(
+        ldap_auth_provider_win.cpp
+    )
+ENDIF()
+
+
+PEERDIR(
+    ydb/core/base
+    ydb/core/protos
+)
+
+END()
+
+RECURSE_FOR_TESTS(
+    ut
+)
diff --git a/ydb/core/security/login_page.cpp b/ydb/core/security/login_page.cpp
index 3cad44d35534..d3e1ff602afc 100644
--- a/ydb/core/security/login_page.cpp
+++ b/ydb/core/security/login_page.cpp
@@ -9,7 +9,7 @@
 #include 
 #include 
 #include 
-#include 
+#include 
 
 #include 
 #include 
diff --git a/ydb/core/security/login_shared_func.cpp b/ydb/core/security/login_shared_func.cpp
index 594fad0ca0e9..95ea9ee15914 100644
--- a/ydb/core/security/login_shared_func.cpp
+++ b/ydb/core/security/login_shared_func.cpp
@@ -2,8 +2,8 @@
 #include 
 #include 
 #include 
+#include 
 #include "login_shared_func.h"
-#include "ldap_auth_provider.h"
 
 namespace NKikimr {
 
diff --git a/ydb/core/security/ticket_parser.cpp b/ydb/core/security/ticket_parser.cpp
index f9e77ad82802..c92b94f17bcf 100644
--- a/ydb/core/security/ticket_parser.cpp
+++ b/ydb/core/security/ticket_parser.cpp
@@ -18,6 +18,7 @@ class TTicketParser : public TTicketParserImpl {
         Builtin,
         Login,
         ApiKey, // IAM api_key
+        Certificate, // Token from SSL Certificate
     };
 
     THashMap UserTokens;
@@ -27,8 +28,8 @@ class TTicketParser : public TTicketParserImpl {
     }
 };
 
-IActor* CreateTicketParser(const NKikimrProto::TAuthConfig& authConfig) {
-    return new TTicketParser(authConfig);
+IActor* CreateTicketParser(const TTicketParserSettings& settings) {
+    return new TTicketParser(settings);
 }
 
 }
diff --git a/ydb/core/security/ticket_parser.h b/ydb/core/security/ticket_parser.h
index 4db4b13e9711..b3ee407765fc 100644
--- a/ydb/core/security/ticket_parser.h
+++ b/ydb/core/security/ticket_parser.h
@@ -1,7 +1,7 @@
 #pragma once
-#include 
 #include 
+#include "ticket_parser_settings.h"
 
 namespace NKikimr {
-    IActor* CreateTicketParser(const NKikimrProto::TAuthConfig& authConfig);
+    IActor* CreateTicketParser(const TTicketParserSettings& settings);
 }
diff --git a/ydb/core/security/ticket_parser_impl.h b/ydb/core/security/ticket_parser_impl.h
index 987e4cefdbe8..3118f40b1ee6 100644
--- a/ydb/core/security/ticket_parser_impl.h
+++ b/ydb/core/security/ticket_parser_impl.h
@@ -1,5 +1,15 @@
 #pragma once
 #include 
+#include "ticket_parser_log.h"
+#include "ticket_parser_settings.h"
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
 #include 
 #include 
 #include 
@@ -10,16 +20,10 @@
 #include 
 #include 
 #include 
-#include 
-#include 
-#include 
-#include 
-#include 
 #include 
 #include 
 #include 
 #include "ticket_parser_log.h"
-#include "ldap_auth_provider.h"
 #include 
 
 namespace NKikimr {
@@ -106,6 +110,14 @@ class TTicketParserImpl : public TActorBootstrapped {
         TTokenRecordBase(const TTokenRecordBase&) = delete;
         TTokenRecordBase& operator =(const TTokenRecordBase&) = delete;
 
+        static constexpr const char* UnknownAuthType = "Unknown";
+        static constexpr const char* UnsupportedAuthType = "Unsupported";
+        static constexpr const char* BuiltinAuthType = "Builtin";
+        static constexpr const char* LoginAuthType = "Login";
+        static constexpr const char* AccessServiceAuthType = "AccessService";
+        static constexpr const char* ApiKeyAuthType = "ApiKey";
+        static constexpr const char* CertificateAuthType = "Certificate";
+
         TString Ticket;
         typename TDerived::ETokenType TokenType = TDerived::ETokenType::Unknown;
         NKikimr::TEvTicketParser::TEvAuthorizeTicket::TAccessKeySignature Signature;
@@ -184,23 +196,26 @@ class TTicketParserImpl : public TActorBootstrapped {
         TString GetAuthType() const {
             switch (TokenType) {
                 case TDerived::ETokenType::Unknown:
-                    return "Unknown";
+                    return UnknownAuthType;
                 case TDerived::ETokenType::Unsupported:
-                    return "Unsupported";
+                    return UnsupportedAuthType;
                 case TDerived::ETokenType::Builtin:
-                    return "Builtin";
+                    return BuiltinAuthType;
                 case TDerived::ETokenType::Login:
-                    return "Login";
+                    return LoginAuthType;
                 case TDerived::ETokenType::AccessService:
-                    return "AccessService";
+                    return AccessServiceAuthType;
                 case TDerived::ETokenType::ApiKey:
-                    return "ApiKey";
+                    return ApiKeyAuthType;
+                case TDerived::ETokenType::Certificate:
+                    return CertificateAuthType;
             }
         }
 
         bool NeedsRefresh() const {
             switch (TokenType) {
                 case TDerived::ETokenType::Builtin:
+                case TDerived::ETokenType::Certificate:
                     return false;
                 case TDerived::ETokenType::Login:
                     return true;
@@ -226,6 +241,9 @@ class TTicketParserImpl : public TActorBootstrapped {
             if (Signature.AccessKeyId) {
                 return MaskTicket(Signature.AccessKeyId);
             }
+            if (TokenType == TDerived::ETokenType::Certificate) {
+                return GetCertificateFingerprint(Ticket);
+            }
             return MaskTicket(Ticket);
         }
     };
@@ -236,6 +254,7 @@ class TTicketParserImpl : public TActorBootstrapped {
     using IActorOps::Schedule;
 
     NKikimrProto::TAuthConfig Config;
+    const TCertificateChecker CertificateChecker;
     TDuration ExpireTime = TDuration::Hours(24); // after what time ticket will expired and removed from cache
 
     template 
@@ -257,6 +276,7 @@ class TTicketParserImpl : public TActorBootstrapped {
     ::NMonitoring::TDynamicCounters::TCounterPtr CounterTicketsErrorsRetryable;
     ::NMonitoring::TDynamicCounters::TCounterPtr CounterTicketsErrorsPermanent;
     ::NMonitoring::TDynamicCounters::TCounterPtr CounterTicketsBuiltin;
+    ::NMonitoring::TDynamicCounters::TCounterPtr CounterTicketsCertificate;
     ::NMonitoring::TDynamicCounters::TCounterPtr CounterTicketsLogin;
     ::NMonitoring::TDynamicCounters::TCounterPtr CounterTicketsAS;
     ::NMonitoring::TDynamicCounters::TCounterPtr CounterTicketsCacheHit;
@@ -494,6 +514,33 @@ class TTicketParserImpl : public TActorBootstrapped {
         return false;
     }
 
+    template 
+    bool CanInitTokenFromCertificate(const TString& key, TTokenRecord& record) {
+        if (record.TokenType != TDerived::ETokenType::Certificate) {
+            return false;
+        }
+        CounterTicketsCertificate->Inc();
+        TCertificateChecker::TCertificateCheckResult certificateCheckResult = CertificateChecker.Check(record.Ticket);
+        if (!certificateCheckResult.Error.empty()) {
+            TEvTicketParser::TError error;
+            error.Message = "Cannot create token from certificate. " + certificateCheckResult.Error.Message;
+            error.Retryable = certificateCheckResult.Error.Retryable;
+            SetError(key, record, error);
+            return false;
+        }
+        NACLib::TUserToken::TUserTokenInitFields userTokenInitFields {
+            .OriginalUserToken = record.Ticket,
+            .UserSID = certificateCheckResult.UserSid,
+            .AuthType = record.GetAuthType()
+        };
+        auto userToken = MakeIntrusive(std::move(userTokenInitFields));
+        for (const auto& group : certificateCheckResult.Groups) {
+            userToken->AddGroupSID(group);
+        }
+        SetToken(key, record, userToken);
+        return true;
+    }
+
     template 
     bool CanInitLoginToken(const TString& key, TTokenRecord& record) {
         if (UseLoginProvider && (record.TokenType == TDerived::ETokenType::Unknown || record.TokenType == TDerived::ETokenType::Login)) {
@@ -601,10 +648,31 @@ class TTicketParserImpl : public TActorBootstrapped {
         }
     }
 
+    bool IsTicketCertificate(const TString& ticket) const {
+        static const TStringBuf CertificateBeginMark = "-----BEGIN";
+        static const TStringBuf CertificateEndMark = "-----END";
+        size_t eolPos = ticket.find('\n');
+        if (eolPos == TString::npos) {
+            return false;
+        }
+        if (TString firstLine = ticket.substr(0, eolPos); !firstLine.Contains(CertificateBeginMark)) {
+            return false;
+        }
+        if (ticket.rfind(CertificateEndMark) == TString::npos) {
+            return false;
+        }
+        return true;
+    }
+
     void Handle(TEvTicketParser::TEvAuthorizeTicket::TPtr& ev) {
         TStringBuf ticket;
         TStringBuf ticketType;
-        CrackTicket(ev->Get()->Ticket, ticket, ticketType);
+        if (IsTicketCertificate(ev->Get()->Ticket)) {
+            ticket = ev->Get()->Ticket;
+            ticketType = TDerived::TTokenRecord::CertificateAuthType;
+        } else {
+            CrackTicket(ev->Get()->Ticket, ticket, ticketType);
+        }
 
         TString key = GetKey(ev->Get());
         TActorId sender = ev->Sender;
@@ -1236,7 +1304,6 @@ class TTicketParserImpl : public TActorBootstrapped {
                 return TDerived::ETokenType::Unsupported;
             }
         }
-
         if (tokenType == "Bearer" || tokenType == "IAM") {
             if (AccessServiceValidatorV1 && AccessServiceValidatorV2) {
                 return TDerived::ETokenType::AccessService;
@@ -1250,6 +1317,9 @@ class TTicketParserImpl : public TActorBootstrapped {
                 return TDerived::ETokenType::Unsupported;
             }
         }
+        if (tokenType == "Certificate") {
+            return TDerived::ETokenType::Certificate;
+        }
         return TDerived::ETokenType::Unknown;
     }
 
@@ -1342,7 +1412,8 @@ class TTicketParserImpl : public TActorBootstrapped {
         }
 
         if (CanInitBuiltinToken(key, record) ||
-            CanInitLoginToken(key, record)) {
+            CanInitLoginToken(key, record) ||
+            CanInitTokenFromCertificate(key, record)) {
             return;
         }
 
@@ -1607,6 +1678,7 @@ class TTicketParserImpl : public TActorBootstrapped {
         CounterTicketsErrorsRetryable = counters->GetCounter("TicketsErrorsRetryable", true);
         CounterTicketsErrorsPermanent = counters->GetCounter("TicketsErrorsPermanent", true);
         CounterTicketsBuiltin = counters->GetCounter("TicketsBuiltin", true);
+        CounterTicketsCertificate = counters->GetCounter("TicketsCertificate", true);
         CounterTicketsLogin = counters->GetCounter("TicketsLogin", true);
         CounterTicketsAS = counters->GetCounter("TicketsAS", true);
         CounterTicketsCacheHit = counters->GetCounter("TicketsCacheHit", true);
@@ -1754,8 +1826,15 @@ class TTicketParserImpl : public TActorBootstrapped {
         }
     }
 
-    TTicketParserImpl(const NKikimrProto::TAuthConfig& authConfig)
-        : Config(authConfig) {}
+    static TString ReadFile(const TString& fileName) {
+        TFileInput f(fileName);
+        return f.ReadAll();
+    }
+
+    TTicketParserImpl(const TTicketParserSettings& settings)
+        : Config(settings.AuthConfig)
+        , CertificateChecker(settings.CertificateAuthValues)
+    {}
 };
 
 }
diff --git a/ydb/core/security/ticket_parser_settings.h b/ydb/core/security/ticket_parser_settings.h
new file mode 100644
index 000000000000..ebc6021711fe
--- /dev/null
+++ b/ydb/core/security/ticket_parser_settings.h
@@ -0,0 +1,13 @@
+#pragma once
+
+#include 
+#include 
+
+namespace NKikimr {
+
+struct TTicketParserSettings {
+    NKikimrProto::TAuthConfig AuthConfig;
+    TCertificateAuthValues CertificateAuthValues;
+};
+
+} // NKikimr
diff --git a/ydb/core/security/ticket_parser_ut.cpp b/ydb/core/security/ticket_parser_ut.cpp
index 57e87fd9e1b6..a7c7308f8204 100644
--- a/ydb/core/security/ticket_parser_ut.cpp
+++ b/ydb/core/security/ticket_parser_ut.cpp
@@ -7,190 +7,15 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 
-#include "ldap_auth_provider.h"
+#include 
 #include "ticket_parser.h"
 
 namespace NKikimr {
 
 using TAccessServiceMock = TTicketParserAccessServiceMock;
-namespace {
-
-TString certificateContent = R"___(-----BEGIN CERTIFICATE-----
-MIIDjTCCAnWgAwIBAgIURt5IBx0J3xgEaQvmyrFH2A+NkpMwDQYJKoZIhvcNAQEL
-BQAwVjELMAkGA1UEBhMCUlUxDzANBgNVBAgMBk1vc2NvdzEPMA0GA1UEBwwGTW9z
-Y293MQ8wDQYDVQQKDAZZYW5kZXgxFDASBgNVBAMMC3Rlc3Qtc2VydmVyMB4XDTE5
-MDkyMDE3MTQ0MVoXDTQ3MDIwNDE3MTQ0MVowVjELMAkGA1UEBhMCUlUxDzANBgNV
-BAgMBk1vc2NvdzEPMA0GA1UEBwwGTW9zY293MQ8wDQYDVQQKDAZZYW5kZXgxFDAS
-BgNVBAMMC3Rlc3Qtc2VydmVyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAs0WY6HTuwKntcEcjo+pBuoNp5/GRgMX2qOJi09Iw021ZLK4Vf4drN7pXS5Ba
-OVqzUPFmXvoiG13hS7PLTuobJc63qPbIodiB6EXB+Sp0v+mE6lYUUyW9YxNnTPDc
-GG8E4vk9j3tBawT4yJIFTudIALWJfQvn3O9ebmYkilvq0ZT+TqBU8Mazo4lNu0T2
-YxWMlivcEyNRLPbka5W2Wy5eXGOnStidQFYka2mmCgljtulWzj1i7GODg93vmVyH
-NzjAs+mG9MJkT3ietG225BnyPDtu5A3b+vTAFhyJtMmDMyhJ6JtXXHu6zUDQxKiX
-6HLGCLIPhL2sk9ckPSkwXoMOywIDAQABo1MwUTAdBgNVHQ4EFgQUDv/xuJ4CvCgG
-fPrZP3hRAt2+/LwwHwYDVR0jBBgwFoAUDv/xuJ4CvCgGfPrZP3hRAt2+/LwwDwYD
-VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAinKpMYaA2tjLpAnPVbjy
-/ZxSBhhB26RiQp3Re8XOKyhTWqgYE6kldYT0aXgK9x9mPC5obQannDDYxDc7lX+/
-qP/u1X81ZcDRo/f+qQ3iHfT6Ftt/4O3qLnt45MFM6Q7WabRm82x3KjZTqpF3QUdy
-tumWiuAP5DMd1IRDtnKjFHO721OsEsf6NLcqdX89bGeqXDvrkwg3/PNwTyW5E7cj
-feY8L2eWtg6AJUnIBu11wvfzkLiH3QKzHvO/SIZTGf5ihDsJ3aKEE9UNauTL3bVc
-CRA/5XcX13GJwHHj6LCoc3sL7mt8qV9HKY2AOZ88mpObzISZxgPpdKCfjsrdm63V
-6g==
------END CERTIFICATE-----)___";
-
-void InitLdapSettings(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile) {
-    ldapSettings->SetHost("localhost");
-    ldapSettings->SetPort(ldapPort);
-    ldapSettings->SetBaseDn("dc=search,dc=yandex,dc=net");
-    ldapSettings->SetBindDn("cn=robouser,dc=search,dc=yandex,dc=net");
-    ldapSettings->SetBindPassword("robouserPassword");
-    ldapSettings->SetSearchFilter("uid=$username");
-
-    auto useTls = ldapSettings->MutableUseTls();
-    useTls->SetEnable(true);
-    certificateFile.Write(certificateContent.data(), certificateContent.size());
-    useTls->SetCaCertFile(certificateFile.Name());
-    useTls->SetCertRequire(NKikimrProto::TLdapAuthentication::TUseTls::ALLOW); // Enable TLS connection if server certificate is untrusted
-}
-
-void InitLdapSettingsWithInvalidRobotUserLogin(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile) {
-    InitLdapSettings(ldapSettings, ldapPort, certificateFile);
-    ldapSettings->SetBindDn("cn=invalidRobouser,dc=search,dc=yandex,dc=net");
-}
-
-void InitLdapSettingsWithInvalidRobotUserPassword(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile) {
-    InitLdapSettings(ldapSettings, ldapPort, certificateFile);
-    ldapSettings->SetBindPassword("invalidPassword");
-}
-
-void InitLdapSettingsWithInvalidFilter(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile) {
-    InitLdapSettings(ldapSettings, ldapPort, certificateFile);
-    ldapSettings->SetSearchFilter("&(uid=$username)()");
-}
-
-void InitLdapSettingsWithUnavailableHost(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile) {
-    InitLdapSettings(ldapSettings, ldapPort, certificateFile);
-    ldapSettings->SetHost("unavailablehost");
-}
-
-void InitLdapSettingsWithCustomGroupAttribute(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile) {
-    InitLdapSettings(ldapSettings, ldapPort, certificateFile);
-    ldapSettings->SetRequestedGroupAttribute("groupDN");
-}
-
-class TLdapKikimrServer {
-public:
-    TLdapKikimrServer(std::function initLdapSettings)
-        : CaCertificateFile()
-        , Server(InitSettings(std::move(initLdapSettings))) {
-        Server.EnableGRpc(GrpcPort);
-        Server.GetRuntime()->SetLogPriority(NKikimrServices::TICKET_PARSER, NLog::PRI_TRACE);
-        Server.GetRuntime()->SetLogPriority(NKikimrServices::GRPC_CLIENT, NLog::PRI_TRACE);
-    }
-
-    TTestActorRuntime* GetRuntime() const {
-        return Server.GetRuntime();
-    }
-
-    ui16 GetLdapPort() const {
-        return LdapPort;
-    }
-
-private:
-    Tests::TServerSettings InitSettings(std::function&& initLdapSettings) {
-        using namespace Tests;
-        TPortManager tp;
-        LdapPort = tp.GetPort(389);
-        ui16 kikimrPort = tp.GetPort(2134);
-        GrpcPort = tp.GetPort(2135);
-        NKikimrProto::TAuthConfig authConfig;
-        authConfig.SetUseBlackBox(false);
-        authConfig.SetUseLoginProvider(true);
-        authConfig.SetRefreshTime("5s");
-
-        initLdapSettings(authConfig.MutableLdapAuthentication(), LdapPort, CaCertificateFile);
-
-        Tests::TServerSettings settings(kikimrPort, authConfig);
-        settings.SetDomainName("Root");
-        settings.CreateTicketParser = NKikimr::CreateTicketParser;
-        return settings;
-    }
-
-private:
-    TTempFileHandle CaCertificateFile;
-    Tests::TServer Server;
-    ui16 LdapPort;
-    ui16 GrpcPort;
-};
-
-NLogin::TLoginProvider::TLoginUserResponse GetLoginResponse(TLdapKikimrServer& server, const TString& login, const TString& password) {
-    TTestActorRuntime* runtime = server.GetRuntime();
-    NLogin::TLoginProvider provider;
-    provider.Audience = "/Root";
-    provider.RotateKeys();
-    TActorId sender = runtime->AllocateEdgeActor();
-    runtime->Send(new IEventHandle(MakeTicketParserID(), sender, new TEvTicketParser::TEvUpdateLoginSecurityState(provider.GetSecurityState())), 0);
-    return provider.LoginUser({.User = login, .Password = password, .ExternalAuth = "ldap"});
-}
-
-TAutoPtr LdapAuthenticate(TLdapKikimrServer& server, const TString& login, const TString& password) {
-    auto loginResponse = GetLoginResponse(server, login, password);
-    TTestActorRuntime* runtime = server.GetRuntime();
-    TActorId sender = runtime->AllocateEdgeActor();
-    runtime->Send(new IEventHandle(MakeTicketParserID(), sender, new TEvTicketParser::TEvAuthorizeTicket(loginResponse.Token)), 0);
-
-    TAutoPtr handle;
-    runtime->GrabEdgeEvent(handle);
-    return handle;
-}
-
-class TCorrectLdapResponse {
-public:
-    static std::vector Groups;
-    static LdapMock::TLdapMockResponses GetResponses(const TString& login, const TString& groupAttribute = "memberOf");
-};
-
-std::vector TCorrectLdapResponse::Groups {
-    "ou=groups,dc=search,dc=yandex,dc=net",
-    "cn=people,ou=groups,dc=search,dc=yandex,dc=net",
-    "cn=developers,ou=groups,dc=search,dc=yandex,dc=net"
-};
-
-LdapMock::TLdapMockResponses TCorrectLdapResponse::GetResponses(const TString& login, const TString& groupAttribute) {
-    LdapMock::TLdapMockResponses responses;
-    responses.BindResponses.push_back({{{.Login = "cn=robouser,dc=search,dc=yandex,dc=net", .Password = "robouserPassword"}}, {.Status = LdapMock::EStatus::SUCCESS}});
-
-    LdapMock::TSearchRequestInfo fetchGroupsSearchRequestInfo {
-        {
-            .BaseDn = "dc=search,dc=yandex,dc=net",
-            .Scope = 2,
-            .DerefAliases = 0,
-            .Filter = {.Type = LdapMock::EFilterType::LDAP_FILTER_EQUALITY, .Attribute = "uid", .Value = login},
-            .Attributes = {groupAttribute}
-        }
-    };
-
-    std::vector fetchGroupsSearchResponseEntries {
-        {
-            .Dn = "uid=" + login + ",dc=search,dc=yandex,dc=net",
-            .AttributeList = {
-                                {groupAttribute, TCorrectLdapResponse::Groups}
-                            }
-        }
-    };
-
-    LdapMock::TSearchResponseInfo fetchGroupsSearchResponseInfo {
-        .ResponseEntries = fetchGroupsSearchResponseEntries,
-        .ResponseDone = {.Status = LdapMock::EStatus::SUCCESS}
-    };
-    responses.SearchResponses.push_back({fetchGroupsSearchRequestInfo, fetchGroupsSearchResponseInfo});
-    return responses;
-}
-} // namespace
 
 Y_UNIT_TEST_SUITE(TTicketParserTest) {
 
@@ -512,361 +337,371 @@ Y_UNIT_TEST_SUITE(TTicketParserTest) {
         UNIT_ASSERT_VALUES_EQUAL(result->Error.Message, "Ticket is empty");
     }
 
-    Y_UNIT_TEST(LdapFetchGroupsWithDefaultGroupAttributeGood) {
-        TString login = "ldapuser";
-        TString password = "ldapUserPassword";
-
-        TLdapKikimrServer server(InitLdapSettings);
-        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), TCorrectLdapResponse::GetResponses(login));
-
-        TAutoPtr handle = LdapAuthenticate(server, login, password);
-        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
-        UNIT_ASSERT_C(ticketParserResult->Error.empty(), ticketParserResult->Error);
-        UNIT_ASSERT(ticketParserResult->Token != nullptr);
-        const TString ldapDomain = "@ldap";
-        UNIT_ASSERT_VALUES_EQUAL(ticketParserResult->Token->GetUserSID(), login + ldapDomain);
-        const auto& fetchedGroups = ticketParserResult->Token->GetGroupSIDs();
-        THashSet groups(fetchedGroups.begin(), fetchedGroups.end());
-
-        THashSet expectedGroups;
-        std::transform(TCorrectLdapResponse::Groups.begin(), TCorrectLdapResponse::Groups.end(), std::inserter(expectedGroups, expectedGroups.end()), [&ldapDomain](TString& group) {
-            return group.append(ldapDomain);
-        });
-        expectedGroups.insert("all-users@well-known");
-
-        UNIT_ASSERT_VALUES_EQUAL(fetchedGroups.size(), expectedGroups.size());
-        for (const auto& expectedGroup : expectedGroups) {
-            UNIT_ASSERT_C(groups.contains(expectedGroup), "Can not find " + expectedGroup);
-        }
-
-        ldapServer.Stop();
-    }
-
-    Y_UNIT_TEST(LdapFetchGroupsWithCustomGroupAttributeGood) {
-        TString login = "ldapuser";
-        TString password = "ldapUserPassword";
-
-        TLdapKikimrServer server(InitLdapSettingsWithCustomGroupAttribute);
-        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), TCorrectLdapResponse::GetResponses(login, "groupDN"));
-
-        TAutoPtr handle = LdapAuthenticate(server, login, password);
-        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
-        UNIT_ASSERT_C(ticketParserResult->Error.empty(), ticketParserResult->Error);
-        UNIT_ASSERT(ticketParserResult->Token != nullptr);
-        const TString ldapDomain = "@ldap";
-        UNIT_ASSERT_VALUES_EQUAL(ticketParserResult->Token->GetUserSID(), login + ldapDomain);
-        const auto& fetchedGroups = ticketParserResult->Token->GetGroupSIDs();
-        THashSet groups(fetchedGroups.begin(), fetchedGroups.end());
-
-        THashSet expectedGroups;
-        std::transform(TCorrectLdapResponse::Groups.begin(), TCorrectLdapResponse::Groups.end(), std::inserter(expectedGroups, expectedGroups.end()), [&ldapDomain](TString& group) {
-            return group.append(ldapDomain);
-        });
-        expectedGroups.insert("all-users@well-known");
-
-        UNIT_ASSERT_VALUES_EQUAL(fetchedGroups.size(), expectedGroups.size());
-        for (const auto& expectedGroup : expectedGroups) {
-            UNIT_ASSERT_C(groups.contains(expectedGroup), "Can not find " + expectedGroup);
-        }
-
-        ldapServer.Stop();
-    }
+    Y_UNIT_TEST(TicketFromCertificateCheckIssuerGood) {
+        using namespace Tests;
+        TPortManager tp;
+        ui16 kikimrPort = tp.GetPort(2134);
+        ui16 grpcPort = tp.GetPort(2135);
+        auto settings = TServerSettings(kikimrPort);
+        settings.SetDomainName("Root");
 
-    Y_UNIT_TEST(LdapFetchGroupsWithDontExistGroupAttribute) {
-        TString login = "ldapuser";
-        TString password = "ldapUserPassword";
-
-        TLdapKikimrServer server(InitLdapSettingsWithCustomGroupAttribute);
-
-        LdapMock::TLdapMockResponses responses;
-        responses.BindResponses.push_back({{{.Login = "cn=robouser,dc=search,dc=yandex,dc=net", .Password = "robouserPassword"}}, {.Status = LdapMock::EStatus::SUCCESS}});
-
-        LdapMock::TSearchRequestInfo fetchGroupsSearchRequestInfo {
-            {
-                .BaseDn = "dc=search,dc=yandex,dc=net",
-                .Scope = 2,
-                .DerefAliases = 0,
-                .Filter = {.Type = LdapMock::EFilterType::LDAP_FILTER_EQUALITY, .Attribute = "uid", .Value = login},
-                .Attributes = {"groupDN"}
-            }
-        };
-
-        std::vector fetchGroupsSearchResponseEntries {
-            {
-                .Dn = "uid=" + login + ",dc=search,dc=yandex,dc=net",
-                .AttributeList = {} // Return empty group list, attribute 'groupDN' not found
-            }
-        };
-
-        LdapMock::TSearchResponseInfo fetchGroupsSearchResponseInfo {
-            .ResponseEntries = fetchGroupsSearchResponseEntries,
-            .ResponseDone = {.Status = LdapMock::EStatus::SUCCESS}
-        };
-        responses.SearchResponses.push_back({fetchGroupsSearchRequestInfo, fetchGroupsSearchResponseInfo});
-
-        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), responses);
-
-        TAutoPtr handle = LdapAuthenticate(server, login, password);
-        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
-        UNIT_ASSERT_C(ticketParserResult->Error.empty(), ticketParserResult->Error);
-        UNIT_ASSERT(ticketParserResult->Token != nullptr);
-        const TString ldapDomain = "@ldap";
-        UNIT_ASSERT_VALUES_EQUAL(ticketParserResult->Token->GetUserSID(), login + ldapDomain);
-        const auto& fetchedGroups = ticketParserResult->Token->GetGroupSIDs();
-        UNIT_ASSERT_EQUAL(fetchedGroups.size(), 1);
-        UNIT_ASSERT_STRINGS_EQUAL(fetchedGroups.front(), "all-users@well-known");
-
-        ldapServer.Stop();
-    }
+        const TCertAndKey ca = GenerateCA(TProps::AsCA());
+        const TCertAndKey serverCert = GenerateSignedCert(ca, TProps::AsServer());
+        const TCertAndKey clientCert = GenerateSignedCert(ca, TProps::AsClient());
 
-     Y_UNIT_TEST(LdapFetchGroupsWithInvalidRobotUserLoginBad) {
-        TString login = "ldapuser";
-        TString password = "ldapUserPassword";
+        TTempFileHandle serverCertificateFile;
+        serverCertificateFile.Write(serverCert.Certificate.data(), serverCert.Certificate.size());
+        settings.ServerCertFilePath = serverCertificateFile.Name();
 
-        LdapMock::TLdapMockResponses responses;
-        responses.BindResponses.push_back({{{.Login = "cn=invalidRobouser,dc=search,dc=yandex,dc=net", .Password = "robouserPassword"}}, {.Status = LdapMock::EStatus::INVALID_CREDENTIALS}});
+        const TString expectedGroup = settings.AppConfig->GetClientCertificateAuthorization().GetDefaultGroup();
 
-        TLdapKikimrServer server(InitLdapSettingsWithInvalidRobotUserLogin);
-        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), responses);
+        TServer server(settings);
+        server.EnableGRpc(grpcPort);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::TICKET_PARSER, NLog::PRI_TRACE);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::GRPC_CLIENT, NLog::PRI_TRACE);
+        TClient client(settings);
+        NClient::TKikimr kikimr(client.GetClientConfig());
+        client.InitRootScheme();
+        TTestActorRuntime* runtime = server.GetRuntime();
 
-        TAutoPtr handle = LdapAuthenticate(server, login, password);
-        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
-        UNIT_ASSERT_C(!ticketParserResult->Error.empty(), "Expected return error message");
-        UNIT_ASSERT_STRINGS_EQUAL(ticketParserResult->Error.Message, "Could not perform initial LDAP bind for dn cn=invalidRobouser,dc=search,dc=yandex,dc=net on server localhost\nInvalid credentials");
-        UNIT_ASSERT(ticketParserResult->Token == nullptr);
+        runtime->Send(new IEventHandle(MakeTicketParserID(), runtime->AllocateEdgeActor(), new TEvTicketParser::TEvAuthorizeTicket(TString(clientCert.Certificate))), 0);
 
-        ldapServer.Stop();
+        TAutoPtr handle;
+        TEvTicketParser::TEvAuthorizeTicketResult* result = runtime->GrabEdgeEvent(handle);
+        UNIT_ASSERT_C(result->Error.empty(), result->Error);
+        UNIT_ASSERT_C(result->Token->IsExist("C=RU,ST=MSK,L=MSK,O=YA,OU=UtTest,CN=localhost@cert"), result->Token->ShortDebugString());
+        const auto& groups = result->Token->GetGroupSIDs();
+        const std::unordered_set groupsSet(groups.cbegin(), groups.cend());
+        UNIT_ASSERT_C(groupsSet.contains(expectedGroup), "Groups should contain " + expectedGroup);
     }
 
-    Y_UNIT_TEST(LdapFetchGroupsWithInvalidRobotUserPasswordBad) {
-        TString login = "ldapuser";
-        TString password = "ldapUserPassword";
+    Y_UNIT_TEST(TicketFromCertificateCheckIssuerBad) {
+        using namespace Tests;
+        TPortManager tp;
+        ui16 kikimrPort = tp.GetPort(2134);
+        ui16 grpcPort = tp.GetPort(2135);
+        auto settings = TServerSettings(kikimrPort);
+        settings.SetDomainName("Root");
 
-        LdapMock::TLdapMockResponses responses;
-        responses.BindResponses.push_back({{{.Login = "cn=robouser,dc=search,dc=yandex,dc=net", .Password = "invalidPassword"}}, {.Status = LdapMock::EStatus::INVALID_CREDENTIALS}});
+        const TCertAndKey caForServerCert = GenerateCA(TProps::AsCA());
+        const TCertAndKey serverCert = GenerateSignedCert(caForServerCert, TProps::AsServer());
+        TProps caPropertiesForClientCert = TProps::AsCA();
+        caPropertiesForClientCert.Organization = "Other org";
+        const TCertAndKey caForClientCert = GenerateCA(caPropertiesForClientCert);
+        const TCertAndKey clientCert = GenerateSignedCert(caForClientCert, TProps::AsClient());
 
-        TLdapKikimrServer server(InitLdapSettingsWithInvalidRobotUserPassword);
-        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), responses);
+        TTempFileHandle serverCertificateFile;
+        serverCertificateFile.Write(serverCert.Certificate.data(), serverCert.Certificate.size());
+        settings.ServerCertFilePath = serverCertificateFile.Name();
 
-        TAutoPtr handle = LdapAuthenticate(server, login, password);
-        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
-        UNIT_ASSERT_C(!ticketParserResult->Error.empty(), "Expected return error message");
-        UNIT_ASSERT_STRINGS_EQUAL(ticketParserResult->Error.Message, "Could not perform initial LDAP bind for dn cn=robouser,dc=search,dc=yandex,dc=net on server localhost\nInvalid credentials");
-        UNIT_ASSERT(ticketParserResult->Token == nullptr);
+        TServer server(settings);
+        server.EnableGRpc(grpcPort);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::TICKET_PARSER, NLog::PRI_TRACE);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::GRPC_CLIENT, NLog::PRI_TRACE);
+        TClient client(settings);
+        NClient::TKikimr kikimr(client.GetClientConfig());
+        client.InitRootScheme();
+        TTestActorRuntime* runtime = server.GetRuntime();
 
-        ldapServer.Stop();
-    }
+        runtime->Send(new IEventHandle(MakeTicketParserID(), runtime->AllocateEdgeActor(), new TEvTicketParser::TEvAuthorizeTicket(TString(clientCert.Certificate))), 0);
 
-    Y_UNIT_TEST(LdapFetchGroupsWithRemovedUserCredentialsBad) {
-        TString removedUserLogin = "ldapuser";
-        TString removedUserPassword = "ldapUserPassword";
-
-        LdapMock::TLdapMockResponses responses;
-        responses.BindResponses.push_back({{{.Login = "cn=robouser,dc=search,dc=yandex,dc=net", .Password = "robouserPassword"}}, {.Status = LdapMock::EStatus::SUCCESS}});
-
-        LdapMock::TSearchRequestInfo removedUserSearchRequestInfo {
-            {
-                .BaseDn = "dc=search,dc=yandex,dc=net",
-                .Scope = 2,
-                .DerefAliases = 0,
-                .Filter = {.Type = LdapMock::EFilterType::LDAP_FILTER_EQUALITY, .Attribute = "uid", .Value = removedUserLogin},
-                .Attributes = {"memberOf"}
-            }
-        };
-
-        LdapMock::TSearchResponseInfo removedUserSearchResponseInfo {
-            .ResponseEntries = {}, // Removed user was not found. Return empty list of entries
-            .ResponseDone = {.Status = LdapMock::EStatus::SUCCESS}
-        };
-        responses.SearchResponses.push_back({removedUserSearchRequestInfo, removedUserSearchResponseInfo});
-
-        TLdapKikimrServer server(InitLdapSettings);
-        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), responses);
-
-        TAutoPtr handle = LdapAuthenticate(server, removedUserLogin, removedUserPassword);
-        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
-        UNIT_ASSERT_C(!ticketParserResult->Error.empty(), "Expected return error message");
-        UNIT_ASSERT_STRINGS_EQUAL(ticketParserResult->Error.Message, "LDAP user " + removedUserLogin + " does not exist. "
-                                                                     "LDAP search for filter uid=" + removedUserLogin + " on server localhost return no entries");
-
-        ldapServer.Stop();
+        TAutoPtr handle;
+        TEvTicketParser::TEvAuthorizeTicketResult* result = runtime->GrabEdgeEvent(handle);
+        UNIT_ASSERT_C(!result->Error.empty(), "Expected return error message");
+        UNIT_ASSERT_STRINGS_EQUAL(result->Error.Message, "Cannot create token from certificate. Client`s certificate and server`s certificate have different issuers");
+        UNIT_ASSERT(result->Token == nullptr);
     }
 
-    Y_UNIT_TEST(LdapFetchGroupsUseInvalidSearchFilterBad) {
-        TString login = "ldapuser";
-        TString password = "ldapUserPassword";
-
-        LdapMock::TLdapMockResponses responses;
-        responses.BindResponses.push_back({{{.Login = "cn=robouser,dc=search,dc=yandex,dc=net", .Password = "robouserPassword"}}, {.Status = LdapMock::EStatus::SUCCESS}});
+    Y_UNIT_TEST(TicketFromCertificateWithValidationGood) {
+        using namespace Tests;
+        TPortManager tp;
+        ui16 kikimrPort = tp.GetPort(2134);
+        ui16 grpcPort = tp.GetPort(2135);
+        auto settings = TServerSettings(kikimrPort);
+        settings.SetDomainName("Root");
+        auto& clientCertDefinitions = *settings.AppConfig->MutableClientCertificateAuthorization()->MutableClientCertificateDefinitions();
+        auto& firstCertDef = *clientCertDefinitions.Add();
+        *firstCertDef.AddSubjectTerms() = MakeSubjectTerm("C", {"RU"});
+        *firstCertDef.AddSubjectTerms() = MakeSubjectTerm("ST", {"MSK"});
+        *firstCertDef.AddSubjectTerms() = MakeSubjectTerm("L", {"MSK"});
+        *firstCertDef.AddSubjectTerms() = MakeSubjectTerm("O", {"YA"});
+        *firstCertDef.AddSubjectTerms() = MakeSubjectTerm("OU", {"UtTest"});
+        *firstCertDef.AddSubjectTerms() = MakeSubjectTerm("CN", {"localhost"}, {".test.ut.ru"});
+        firstCertDef.AddMemberGroups("first.Register.Node.Group@cert");
+        firstCertDef.AddMemberGroups("second.Register.Node.Group@cert");
+
+        auto& secondCertDef = *clientCertDefinitions.Add();
+        *secondCertDef.AddSubjectTerms() = MakeSubjectTerm("C", {"RU"});
+        *secondCertDef.AddSubjectTerms() = MakeSubjectTerm("ST", {"MSK"});
+        *secondCertDef.AddSubjectTerms() = MakeSubjectTerm("L", {"MSK"});
+        secondCertDef.AddMemberGroups("first.Common.Group@cert");
+        secondCertDef.AddMemberGroups("second.Common.Group@cert");
+
+        const TCertAndKey ca = GenerateCA(TProps::AsCA());
+        const TCertAndKey serverCert = GenerateSignedCert(ca, TProps::AsServer());
+        const TCertAndKey clientCert = GenerateSignedCert(ca, TProps::AsClient());
+
+        TTempFileHandle serverCertificateFile;
+        serverCertificateFile.Write(serverCert.Certificate.data(), serverCert.Certificate.size());
+        settings.ServerCertFilePath = serverCertificateFile.Name();
 
-        TLdapKikimrServer server(InitLdapSettingsWithInvalidFilter);
-        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), responses);
+        TServer server(settings);
+        server.EnableGRpc(grpcPort);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::TICKET_PARSER, NLog::PRI_TRACE);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::GRPC_CLIENT, NLog::PRI_TRACE);
+        TClient client(settings);
+        NClient::TKikimr kikimr(client.GetClientConfig());
+        client.InitRootScheme();
+        TTestActorRuntime* runtime = server.GetRuntime();
 
-        TAutoPtr handle = LdapAuthenticate(server, login, password);
-        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
-        UNIT_ASSERT_C(!ticketParserResult->Error.empty(), "Expected return error message");
-        UNIT_ASSERT_STRINGS_EQUAL(ticketParserResult->Error.Message, "Could not search for filter &(uid=" + login + ")() on server localhost\nBad search filter");
+        runtime->Send(new IEventHandle(MakeTicketParserID(), runtime->AllocateEdgeActor(), new TEvTicketParser::TEvAuthorizeTicket(TString(clientCert.Certificate))), 0);
 
-        ldapServer.Stop();
+        TAutoPtr handle;
+        TEvTicketParser::TEvAuthorizeTicketResult* result = runtime->GrabEdgeEvent(handle);
+        UNIT_ASSERT_C(result->Error.empty(), result->Error);
+        UNIT_ASSERT_C(result->Token->IsExist("C=RU,ST=MSK,L=MSK,O=YA,OU=UtTest,CN=localhost@cert"), result->Token->ShortDebugString());
+        const auto& groups = result->Token->GetGroupSIDs();
+        const std::unordered_set groupsSet(groups.cbegin(), groups.cend());
+        std::vector expectedGroups(firstCertDef.GetMemberGroups().cbegin(), firstCertDef.GetMemberGroups().cend());
+        expectedGroups.insert(expectedGroups.end(), secondCertDef.GetMemberGroups().cbegin(), secondCertDef.GetMemberGroups().cend());
+        for (const auto& expectedGroup : expectedGroups) {
+            UNIT_ASSERT_C(groupsSet.contains(expectedGroup), "Groups should contain: " + expectedGroup);
+        }
     }
 
-    Y_UNIT_TEST(LdapServerIsUnavailable) {
-        TLdapKikimrServer server(InitLdapSettingsWithUnavailableHost);
-
-        LdapMock::TLdapMockResponses responses;
-        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), responses);
+    Y_UNIT_TEST(TicketFromCertificateWithValidationDifferentIssuersGood) {
+        using namespace Tests;
+        TPortManager tp;
+        ui16 kikimrPort = tp.GetPort(2134);
+        ui16 grpcPort = tp.GetPort(2135);
+        auto settings = TServerSettings(kikimrPort);
+        settings.SetDomainName("Root");
+        auto& clientCertDefinitions = *settings.AppConfig->MutableClientCertificateAuthorization()->MutableClientCertificateDefinitions();
+        auto& certDef = *clientCertDefinitions.Add();
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("C", {"RU"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("ST", {"MSK"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("L", {"MSK"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("O", {"YA"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("OU", {"UtTest"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("CN", {"localhost"}, {".test.ut.ru"});
+        certDef.SetRequireSameIssuer(false);
+        certDef.AddMemberGroups("test.Register.Node.Group@cert");
+
+        const TCertAndKey caForServerCert = GenerateCA(TProps::AsCA());
+        const TCertAndKey serverCert = GenerateSignedCert(caForServerCert, TProps::AsServer());
+        TProps caPropertiesForClientCert = TProps::AsCA();
+        caPropertiesForClientCert.Organization = "Other org";
+        const TCertAndKey caForClientCert = GenerateCA(caPropertiesForClientCert);
+        const TCertAndKey clientCert = GenerateSignedCert(caForClientCert, TProps::AsClient());
+
+        TTempFileHandle serverCertificateFile;
+        serverCertificateFile.Write(serverCert.Certificate.data(), serverCert.Certificate.size());
+        settings.ServerCertFilePath = serverCertificateFile.Name();
 
-        TString login = "ldapuser";
-        TString password = "ldapUserPassword";
+        TServer server(settings);
+        server.EnableGRpc(grpcPort);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::TICKET_PARSER, NLog::PRI_TRACE);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::GRPC_CLIENT, NLog::PRI_TRACE);
+        TClient client(settings);
+        NClient::TKikimr kikimr(client.GetClientConfig());
+        client.InitRootScheme();
+        TTestActorRuntime* runtime = server.GetRuntime();
 
-        TAutoPtr handle = LdapAuthenticate(server, login, password);
-        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = handle->Get();
-        UNIT_ASSERT_C(!ticketParserResult->Error.empty(), "Expected return error message");
-        UNIT_ASSERT_STRINGS_EQUAL(ticketParserResult->Error.Message, "Could not start TLS\nCan't contact LDAP server");
+        runtime->Send(new IEventHandle(MakeTicketParserID(), runtime->AllocateEdgeActor(), new TEvTicketParser::TEvAuthorizeTicket(TString(clientCert.Certificate))), 0);
 
-        ldapServer.Stop();
+        TAutoPtr handle;
+        TEvTicketParser::TEvAuthorizeTicketResult* result = runtime->GrabEdgeEvent(handle);
+        UNIT_ASSERT_C(result->Error.empty(), result->Error);
+        UNIT_ASSERT_C(result->Token->IsExist("C=RU,ST=MSK,L=MSK,O=YA,OU=UtTest,CN=localhost@cert"), result->Token->ShortDebugString());
+        const auto& groups = result->Token->GetGroupSIDs();
+        const std::unordered_set groupsSet(groups.cbegin(), groups.cend());
+        const std::vector expectedGroups(certDef.GetMemberGroups().cbegin(), certDef.GetMemberGroups().cend());
+        for (const auto& expectedGroup : expectedGroups) {
+            UNIT_ASSERT_C(groupsSet.contains(expectedGroup), "Groups should contain: " + expectedGroup);
+        }
     }
 
-    Y_UNIT_TEST(LdapRefreshGroupsInfoGood) {
-        TString login = "ldapuser";
-        TString password = "ldapUserPassword";
-
-
-        auto responses = TCorrectLdapResponse::GetResponses(login);
-        LdapMock::TLdapMockResponses updatedResponses = responses;
-
-        std::vector newLdapGroups {
-            "ou=groups,dc=search,dc=yandex,dc=net",
-            "cn=people,ou=groups,dc=search,dc=yandex,dc=net",
-            "cn=designers,ou=groups,dc=search,dc=yandex,dc=net"
-        };
-        std::vector newFetchGroupsSearchResponseEntries {
-            {
-                .Dn = "uid=" + login + ",dc=search,dc=yandex,dc=net",
-                .AttributeList = {
-                                    {"memberOf", newLdapGroups}
-                                }
-            }
-        };
-
-        const TString ldapDomain = "@ldap";
-        THashSet newExpectedGroups;
-        std::transform(newLdapGroups.begin(), newLdapGroups.end(), std::inserter(newExpectedGroups, newExpectedGroups.end()), [&ldapDomain](TString& group) {
-            return group.append(ldapDomain);
-        });
-        newExpectedGroups.insert("all-users@well-known");
-
-        LdapMock::TSearchResponseInfo newFetchGroupsSearchResponseInfo {
-            .ResponseEntries = newFetchGroupsSearchResponseEntries,
-            .ResponseDone = {.Status = LdapMock::EStatus::SUCCESS}
-        };
-
-        auto& searchResponse = updatedResponses.SearchResponses.front();
-        searchResponse.second = newFetchGroupsSearchResponseInfo;
-
-        TLdapKikimrServer server(InitLdapSettings);
-        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), {responses, updatedResponses});
-
-        auto loginResponse = GetLoginResponse(server, login, password);
+    Y_UNIT_TEST(TicketFromCertificateWithValidationDifferentIssuersBad) {
+        using namespace Tests;
+        TPortManager tp;
+        ui16 kikimrPort = tp.GetPort(2134);
+        ui16 grpcPort = tp.GetPort(2135);
+        auto settings = TServerSettings(kikimrPort);
+        settings.SetDomainName("Root");
+        auto& clientCertDefinitions = *settings.AppConfig->MutableClientCertificateAuthorization()->MutableClientCertificateDefinitions();
+        auto& certDef = *clientCertDefinitions.Add();
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("C", {"RU"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("ST", {"MSK"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("L", {"MSK"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("O", {"YA"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("OU", {"UtTest"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("CN", {"localhost"}, {".test.ut.ru"});
+        certDef.AddMemberGroups("test.Register.Node.Group@cert");
+
+        const TCertAndKey caForServerCert = GenerateCA(TProps::AsCA());
+        const TCertAndKey serverCert = GenerateSignedCert(caForServerCert, TProps::AsServer());
+        TProps caPropertiesForClientCert = TProps::AsCA();
+        caPropertiesForClientCert.Organization = "Other org";
+        const TCertAndKey caForClientCert = GenerateCA(caPropertiesForClientCert);
+        const TCertAndKey clientCert = GenerateSignedCert(caForClientCert, TProps::AsClient());
+
+        TTempFileHandle serverCertificateFile;
+        serverCertificateFile.Write(serverCert.Certificate.data(), serverCert.Certificate.size());
+        settings.ServerCertFilePath = serverCertificateFile.Name();
+
+        TServer server(settings);
+        server.EnableGRpc(grpcPort);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::TICKET_PARSER, NLog::PRI_TRACE);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::GRPC_CLIENT, NLog::PRI_TRACE);
+        TClient client(settings);
+        NClient::TKikimr kikimr(client.GetClientConfig());
+        client.InitRootScheme();
         TTestActorRuntime* runtime = server.GetRuntime();
-        TActorId sender = runtime->AllocateEdgeActor();
-        runtime->Send(new IEventHandle(MakeTicketParserID(), sender, new TEvTicketParser::TEvAuthorizeTicket(loginResponse.Token)), 0);
+
+        runtime->Send(new IEventHandle(MakeTicketParserID(), runtime->AllocateEdgeActor(), new TEvTicketParser::TEvAuthorizeTicket(TString(clientCert.Certificate))), 0);
+
         TAutoPtr handle;
-        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = runtime->GrabEdgeEvent(handle);
+        TEvTicketParser::TEvAuthorizeTicketResult* result = runtime->GrabEdgeEvent(handle);
+        UNIT_ASSERT_C(!result->Error.empty(), "Expected return error message");
+        UNIT_ASSERT_STRINGS_EQUAL(result->Error.Message, "Cannot create token from certificate. Client certificate failed verification");
+        UNIT_ASSERT(result->Token == nullptr);
+    }
 
-        UNIT_ASSERT_C(ticketParserResult->Error.empty(), ticketParserResult->Error);
-        UNIT_ASSERT(ticketParserResult->Token != nullptr);
-        UNIT_ASSERT_VALUES_EQUAL(ticketParserResult->Token->GetUserSID(), login + ldapDomain);
-        const auto& fetchedGroups = ticketParserResult->Token->GetGroupSIDs();
-        THashSet groups(fetchedGroups.begin(), fetchedGroups.end());
+    Y_UNIT_TEST(TicketFromCertificateWithValidationDefaultGroupGood) {
+        using namespace Tests;
+        TPortManager tp;
+        ui16 kikimrPort = tp.GetPort(2134);
+        ui16 grpcPort = tp.GetPort(2135);
+        auto settings = TServerSettings(kikimrPort);
+        settings.SetDomainName("Root");
+        auto& clientCertDefinitions = *settings.AppConfig->MutableClientCertificateAuthorization()->MutableClientCertificateDefinitions();
+        auto& certDef = *clientCertDefinitions.Add();
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("C", {"RU"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("ST", {"MSK"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("L", {"MSK"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("O", {"YA"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("OU", {"UtTest"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("CN", {"localhost"}, {".test.ut.ru"});
 
-        THashSet expectedGroups;
-        std::transform(TCorrectLdapResponse::Groups.begin(), TCorrectLdapResponse::Groups.end(), std::inserter(expectedGroups, expectedGroups.end()), [&ldapDomain](TString& group) {
-            return group.append(ldapDomain);
-        });
-        expectedGroups.insert("all-users@well-known");
+        const TCertAndKey ca = GenerateCA(TProps::AsCA());
+        const TCertAndKey serverCert = GenerateSignedCert(ca, TProps::AsServer());
+        const TCertAndKey clientCert = GenerateSignedCert(ca, TProps::AsClient());
 
-        UNIT_ASSERT_VALUES_EQUAL(fetchedGroups.size(), expectedGroups.size());
-        for (const auto& expectedGroup : expectedGroups) {
-            UNIT_ASSERT_C(groups.contains(expectedGroup), "Can not find " + expectedGroup);
-        }
+        TTempFileHandle serverCertificateFile;
+        serverCertificateFile.Write(serverCert.Certificate.data(), serverCert.Certificate.size());
+        settings.ServerCertFilePath = serverCertificateFile.Name();
 
-        ldapServer.UpdateResponses();
-        Sleep(TDuration::Seconds(10));
+        const TString expectedGroup = settings.AppConfig->GetClientCertificateAuthorization().GetDefaultGroup();
 
-        runtime->Send(new IEventHandle(MakeTicketParserID(), sender, new TEvTicketParser::TEvAuthorizeTicket(loginResponse.Token)), 0);
-        ticketParserResult = runtime->GrabEdgeEvent(handle);
-
-        UNIT_ASSERT_C(ticketParserResult->Error.empty(), ticketParserResult->Error);
-        UNIT_ASSERT(ticketParserResult->Token != nullptr);
-        UNIT_ASSERT_VALUES_EQUAL(ticketParserResult->Token->GetUserSID(), login + "@ldap");
-        const auto& newFetchedGroups = ticketParserResult->Token->GetGroupSIDs();
-        THashSet newGroups(newFetchedGroups.begin(), newFetchedGroups.end());
-        UNIT_ASSERT_VALUES_EQUAL(newFetchedGroups.size(), newExpectedGroups.size());
-        for (const auto& expectedGroup : newExpectedGroups) {
-            UNIT_ASSERT_C(newGroups.contains(expectedGroup), "Can not find " + expectedGroup);
-        }
+        TServer server(settings);
+        server.EnableGRpc(grpcPort);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::TICKET_PARSER, NLog::PRI_TRACE);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::GRPC_CLIENT, NLog::PRI_TRACE);
+        TClient client(settings);
+        NClient::TKikimr kikimr(client.GetClientConfig());
+        client.InitRootScheme();
+        TTestActorRuntime* runtime = server.GetRuntime();
 
-        ldapServer.Stop();
+        runtime->Send(new IEventHandle(MakeTicketParserID(), runtime->AllocateEdgeActor(), new TEvTicketParser::TEvAuthorizeTicket(TString(clientCert.Certificate))), 0);
+
+        TAutoPtr handle;
+        TEvTicketParser::TEvAuthorizeTicketResult* result = runtime->GrabEdgeEvent(handle);
+        UNIT_ASSERT_C(result->Error.empty(), result->Error);
+        UNIT_ASSERT_C(result->Token->IsExist("C=RU,ST=MSK,L=MSK,O=YA,OU=UtTest,CN=localhost@cert"), result->Token->ShortDebugString());
+        const auto& groups = result->Token->GetGroupSIDs();
+        const std::unordered_set groupsSet(groups.cbegin(), groups.cend());
+        UNIT_ASSERT_C(groupsSet.contains(expectedGroup), "Groups should contain: " + expectedGroup);
     }
 
-    Y_UNIT_TEST(LdapRefreshRemoveUserBad) {
-        TString login = "ldapuser";
-        TString password = "ldapUserPassword";
+    Y_UNIT_TEST(TicketFromCertificateWithValidationBad) {
+        using namespace Tests;
+        TPortManager tp;
+        ui16 kikimrPort = tp.GetPort(2134);
+        ui16 grpcPort = tp.GetPort(2135);
+        auto settings = TServerSettings(kikimrPort);
+        settings.SetDomainName("Root");
+        auto& clientCertDefinitions = *settings.AppConfig->MutableClientCertificateAuthorization()->MutableClientCertificateDefinitions();
+        auto& certDef = *clientCertDefinitions.Add();
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("C", {"RU"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("ST", {"MSK"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("L", {"MSK"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("O", {"Other org"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("OU", {"UtTest"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("CN", {"localhost"}, {".test.ut.ru"});
+
+        const TCertAndKey ca = GenerateCA(TProps::AsCA());
+        const TCertAndKey serverCert = GenerateSignedCert(ca, TProps::AsServer());
+        const TCertAndKey clientCert = GenerateSignedCert(ca, TProps::AsClient());
+
+        TTempFileHandle serverCertificateFile;
+        serverCertificateFile.Write(serverCert.Certificate.data(), serverCert.Certificate.size());
+        settings.ServerCertFilePath = serverCertificateFile.Name();
 
-        TLdapKikimrServer server(InitLdapSettings);
-        auto responses = TCorrectLdapResponse::GetResponses(login);
-        LdapMock::TLdapMockResponses updatedResponses = responses;
-        LdapMock::TSearchResponseInfo newFetchGroupsSearchResponseInfo {
-            .ResponseEntries = {}, // User has been removed. Return empty entries list
-            .ResponseDone = {.Status = LdapMock::EStatus::SUCCESS}
-        };
+        TServer server(settings);
+        server.EnableGRpc(grpcPort);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::TICKET_PARSER, NLog::PRI_TRACE);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::GRPC_CLIENT, NLog::PRI_TRACE);
+        TClient client(settings);
+        NClient::TKikimr kikimr(client.GetClientConfig());
+        client.InitRootScheme();
+        TTestActorRuntime* runtime = server.GetRuntime();
 
-        auto& searchResponse = updatedResponses.SearchResponses.front();
-        searchResponse.second = newFetchGroupsSearchResponseInfo;
-        LdapMock::TLdapSimpleServer ldapServer(server.GetLdapPort(), {responses, updatedResponses});
+        runtime->Send(new IEventHandle(MakeTicketParserID(), runtime->AllocateEdgeActor(), new TEvTicketParser::TEvAuthorizeTicket(TString(clientCert.Certificate))), 0);
 
-        auto loginResponse = GetLoginResponse(server, login, password);
-        TTestActorRuntime* runtime = server.GetRuntime();
-        TActorId sender = runtime->AllocateEdgeActor();
-        runtime->Send(new IEventHandle(MakeTicketParserID(), sender, new TEvTicketParser::TEvAuthorizeTicket(loginResponse.Token)), 0);
         TAutoPtr handle;
-        TEvTicketParser::TEvAuthorizeTicketResult* ticketParserResult = runtime->GrabEdgeEvent(handle);
-
-        UNIT_ASSERT_C(ticketParserResult->Error.empty(), ticketParserResult->Error);
-        UNIT_ASSERT(ticketParserResult->Token != nullptr);
-        const TString ldapDomain = "@ldap";
-        UNIT_ASSERT_VALUES_EQUAL(ticketParserResult->Token->GetUserSID(), login + ldapDomain);
-        const auto& fetchedGroups = ticketParserResult->Token->GetGroupSIDs();
-        THashSet groups(fetchedGroups.begin(), fetchedGroups.end());
-
-        THashSet expectedGroups;
-        std::transform(TCorrectLdapResponse::Groups.begin(), TCorrectLdapResponse::Groups.end(), std::inserter(expectedGroups, expectedGroups.end()), [&ldapDomain](TString& group) {
-            return group.append(ldapDomain);
-        });
-        expectedGroups.insert("all-users@well-known");
-
-        UNIT_ASSERT_VALUES_EQUAL(fetchedGroups.size(), expectedGroups.size());
-        for (const auto& expectedGroup : expectedGroups) {
-            UNIT_ASSERT_C(groups.contains(expectedGroup), "Can not find " + expectedGroup);
-        }
+        TEvTicketParser::TEvAuthorizeTicketResult* result = runtime->GrabEdgeEvent(handle);
+        UNIT_ASSERT_C(!result->Error.empty(), "Expected return error message");
+        UNIT_ASSERT_STRINGS_EQUAL(result->Error.Message, "Cannot create token from certificate. Client certificate failed verification");
+        UNIT_ASSERT(result->Token == nullptr);
+    }
 
-        ldapServer.UpdateResponses();
-        Sleep(TDuration::Seconds(10));
+    Y_UNIT_TEST(TicketFromCertificateWithValidationCheckIssuerBad) {
+        using namespace Tests;
+        TPortManager tp;
+        ui16 kikimrPort = tp.GetPort(2134);
+        ui16 grpcPort = tp.GetPort(2135);
+        auto settings = TServerSettings(kikimrPort);
+        settings.SetDomainName("Root");
+        auto& clientCertDefinitions = *settings.AppConfig->MutableClientCertificateAuthorization()->MutableClientCertificateDefinitions();
+        auto& certDef = *clientCertDefinitions.Add();
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("C", {"RU"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("ST", {"MSK"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("L", {"MSK"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("O", {"Other org"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("OU", {"UtTest"});
+        *certDef.AddSubjectTerms() = MakeSubjectTerm("CN", {"localhost"}, {".test.ut.ru"});
+
+        const TCertAndKey caForServerCert = GenerateCA(TProps::AsCA());
+        const TCertAndKey serverCert = GenerateSignedCert(caForServerCert, TProps::AsServer());
+        TProps caPropertiesForClientCert = TProps::AsCA();
+        caPropertiesForClientCert.Organization = "Other org";
+        const TCertAndKey caForClientCert = GenerateCA(caPropertiesForClientCert);
+        const TCertAndKey clientCert = GenerateSignedCert(caForClientCert, TProps::AsClient());
+
+        TTempFileHandle serverCertificateFile;
+        serverCertificateFile.Write(serverCert.Certificate.data(), serverCert.Certificate.size());
+        settings.ServerCertFilePath = serverCertificateFile.Name();
 
-        runtime->Send(new IEventHandle(MakeTicketParserID(), sender, new TEvTicketParser::TEvAuthorizeTicket(loginResponse.Token)), 0);
-        ticketParserResult = runtime->GrabEdgeEvent(handle);
+        TServer server(settings);
+        server.EnableGRpc(grpcPort);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::TICKET_PARSER, NLog::PRI_TRACE);
+        server.GetRuntime()->SetLogPriority(NKikimrServices::GRPC_CLIENT, NLog::PRI_TRACE);
+        TClient client(settings);
+        NClient::TKikimr kikimr(client.GetClientConfig());
+        client.InitRootScheme();
+        TTestActorRuntime* runtime = server.GetRuntime();
 
-        UNIT_ASSERT_C(!ticketParserResult->Error.empty(), "Expected return error message");
-        UNIT_ASSERT(ticketParserResult->Token == nullptr);
-        UNIT_ASSERT_STRINGS_EQUAL(ticketParserResult->Error.Message, "LDAP user " + login + " does not exist. "
-                                                                     "LDAP search for filter uid=" + login + " on server localhost return no entries");
-        UNIT_ASSERT_EQUAL(ticketParserResult->Error.Retryable, false);
+        runtime->Send(new IEventHandle(MakeTicketParserID(), runtime->AllocateEdgeActor(), new TEvTicketParser::TEvAuthorizeTicket(TString(clientCert.Certificate))), 0);
 
-        ldapServer.Stop();
+        TAutoPtr handle;
+        TEvTicketParser::TEvAuthorizeTicketResult* result = runtime->GrabEdgeEvent(handle);
+        UNIT_ASSERT_C(!result->Error.empty(), "Expected return error message");
+        UNIT_ASSERT_STRINGS_EQUAL(result->Error.Message, "Cannot create token from certificate. Client certificate failed verification");
+        UNIT_ASSERT(result->Token == nullptr);
     }
 
-    Y_UNIT_TEST(AccessServiceAuthenticationOk) {
+    template 
+    void AccessServiceAuthenticationOk() {
         using namespace Tests;
 
         TPortManager tp;
diff --git a/ydb/core/security/ut/CMakeLists.darwin-arm64.txt b/ydb/core/security/ut/CMakeLists.darwin-arm64.txt
index d16e98dde380..e766776d24a2 100644
--- a/ydb/core/security/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/security/ut/CMakeLists.darwin-arm64.txt
@@ -26,8 +26,6 @@ target_link_options(ydb-core-security-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-security-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser_ut.cpp
@@ -58,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/security/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/security/ut/CMakeLists.darwin-x86_64.txt
index d11e6e8b61ea..cebad89acc6c 100644
--- a/ydb/core/security/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/security/ut/CMakeLists.darwin-x86_64.txt
@@ -27,8 +27,6 @@ target_link_options(ydb-core-security-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-security-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser_ut.cpp
@@ -59,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/security/ut/CMakeLists.linux-aarch64.txt b/ydb/core/security/ut/CMakeLists.linux-aarch64.txt
index b6ce8a934667..b331a5c55c12 100644
--- a/ydb/core/security/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/security/ut/CMakeLists.linux-aarch64.txt
@@ -29,9 +29,6 @@ target_link_options(ydb-core-security-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-security-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser_ut.cpp
@@ -62,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/security/ut/CMakeLists.linux-x86_64.txt b/ydb/core/security/ut/CMakeLists.linux-x86_64.txt
index b4529a02e319..be3152dfc89d 100644
--- a/ydb/core/security/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/security/ut/CMakeLists.linux-x86_64.txt
@@ -30,9 +30,6 @@ target_link_options(ydb-core-security-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-security-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/security/ticket_parser_ut.cpp
@@ -63,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/security/ut/CMakeLists.windows-x86_64.txt b/ydb/core/security/ut/CMakeLists.windows-x86_64.txt
index 854de82b68d8..0268ca3c6ee5 100644
--- a/ydb/core/security/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/security/ut/CMakeLists.windows-x86_64.txt
@@ -52,6 +52,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/security/ut/ya.make b/ydb/core/security/ut/ya.make
index 053724adc0a7..71704e8e8a1f 100644
--- a/ydb/core/security/ut/ya.make
+++ b/ydb/core/security/ut/ya.make
@@ -8,14 +8,13 @@ SIZE(MEDIUM)
 
 PEERDIR(
     ydb/core/testlib/default
-    ydb/library/testlib/service_mocks/ldap_mock
+    ydb/library/testlib/service_mocks
 )
 
 YQL_LAST_ABI_VERSION()
 
 SRCS(
     ticket_parser_ut.cpp
-    ldap_utils_ut.cpp
 )
 
 END()
diff --git a/ydb/core/security/ya.make b/ydb/core/security/ya.make
index 03409c47ea21..e13fa147cf87 100644
--- a/ydb/core/security/ya.make
+++ b/ydb/core/security/ya.make
@@ -8,26 +8,8 @@ SRCS(
     ticket_parser_impl.h
     ticket_parser.cpp
     ticket_parser.h
-    ldap_auth_provider.cpp
-    ldap_utils.cpp
 )
 
-IF(OS_LINUX OR OS_DARWIN)
-    PEERDIR(
-        contrib/libs/openldap
-    )
-
-    SRCS(
-        ldap_auth_provider_linux.cpp
-    )
-ELSEIF(OS_WINDOWS)
-    EXTRALIBS_STATIC(wldap32.lib)
-
-    SRCS(
-        ldap_auth_provider_win.cpp
-    )
-ENDIF()
-
 PEERDIR(
     ydb/library/actors/core
     ydb/library/actors/http
@@ -48,3 +30,8 @@ END()
 RECURSE_FOR_TESTS(
     ut
 )
+
+RECURSE(
+    certificate_check
+    ldap_auth_provider
+)
diff --git a/ydb/core/statistics/CMakeLists.darwin-arm64.txt b/ydb/core/statistics/CMakeLists.darwin-arm64.txt
index 7c3f7b142de2..1e8001aa995f 100644
--- a/ydb/core/statistics/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/statistics/CMakeLists.darwin-arm64.txt
@@ -18,5 +18,7 @@ target_link_libraries(ydb-core-statistics PUBLIC
   ydb-core-scheme
 )
 target_sources(ydb-core-statistics PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/stat_service.h
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/stat_service.cpp
 )
diff --git a/ydb/core/statistics/CMakeLists.darwin-x86_64.txt b/ydb/core/statistics/CMakeLists.darwin-x86_64.txt
index 7c3f7b142de2..1e8001aa995f 100644
--- a/ydb/core/statistics/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/statistics/CMakeLists.darwin-x86_64.txt
@@ -18,5 +18,7 @@ target_link_libraries(ydb-core-statistics PUBLIC
   ydb-core-scheme
 )
 target_sources(ydb-core-statistics PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/stat_service.h
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/stat_service.cpp
 )
diff --git a/ydb/core/statistics/CMakeLists.linux-aarch64.txt b/ydb/core/statistics/CMakeLists.linux-aarch64.txt
index 6cdf95956f7f..886916f54251 100644
--- a/ydb/core/statistics/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/statistics/CMakeLists.linux-aarch64.txt
@@ -19,5 +19,7 @@ target_link_libraries(ydb-core-statistics PUBLIC
   ydb-core-scheme
 )
 target_sources(ydb-core-statistics PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/stat_service.h
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/stat_service.cpp
 )
diff --git a/ydb/core/statistics/CMakeLists.linux-x86_64.txt b/ydb/core/statistics/CMakeLists.linux-x86_64.txt
index 6cdf95956f7f..886916f54251 100644
--- a/ydb/core/statistics/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/statistics/CMakeLists.linux-x86_64.txt
@@ -19,5 +19,7 @@ target_link_libraries(ydb-core-statistics PUBLIC
   ydb-core-scheme
 )
 target_sources(ydb-core-statistics PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/stat_service.h
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/stat_service.cpp
 )
diff --git a/ydb/core/statistics/CMakeLists.windows-x86_64.txt b/ydb/core/statistics/CMakeLists.windows-x86_64.txt
index 7c3f7b142de2..1e8001aa995f 100644
--- a/ydb/core/statistics/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/statistics/CMakeLists.windows-x86_64.txt
@@ -18,5 +18,7 @@ target_link_libraries(ydb-core-statistics PUBLIC
   ydb-core-scheme
 )
 target_sources(ydb-core-statistics PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/stat_service.h
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/stat_service.cpp
 )
diff --git a/ydb/core/statistics/aggregator/CMakeLists.darwin-arm64.txt b/ydb/core/statistics/aggregator/CMakeLists.darwin-arm64.txt
index fe736bf693e3..1328ae69276e 100644
--- a/ydb/core/statistics/aggregator/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/statistics/aggregator/CMakeLists.darwin-arm64.txt
@@ -21,10 +21,14 @@ target_link_libraries(core-statistics-aggregator PUBLIC
   ydb-core-tablet_flat
 )
 target_sources(core-statistics-aggregator PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/schema.h
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator_impl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/schema.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_configure.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_init.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_init_schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_schemeshard_stats.cpp
 )
diff --git a/ydb/core/statistics/aggregator/CMakeLists.darwin-x86_64.txt b/ydb/core/statistics/aggregator/CMakeLists.darwin-x86_64.txt
index fe736bf693e3..1328ae69276e 100644
--- a/ydb/core/statistics/aggregator/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/statistics/aggregator/CMakeLists.darwin-x86_64.txt
@@ -21,10 +21,14 @@ target_link_libraries(core-statistics-aggregator PUBLIC
   ydb-core-tablet_flat
 )
 target_sources(core-statistics-aggregator PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/schema.h
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator_impl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/schema.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_configure.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_init.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_init_schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_schemeshard_stats.cpp
 )
diff --git a/ydb/core/statistics/aggregator/CMakeLists.linux-aarch64.txt b/ydb/core/statistics/aggregator/CMakeLists.linux-aarch64.txt
index 5b8294cd5909..1b9e0912b029 100644
--- a/ydb/core/statistics/aggregator/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/statistics/aggregator/CMakeLists.linux-aarch64.txt
@@ -22,10 +22,14 @@ target_link_libraries(core-statistics-aggregator PUBLIC
   ydb-core-tablet_flat
 )
 target_sources(core-statistics-aggregator PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/schema.h
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator_impl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/schema.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_configure.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_init.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_init_schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_schemeshard_stats.cpp
 )
diff --git a/ydb/core/statistics/aggregator/CMakeLists.linux-x86_64.txt b/ydb/core/statistics/aggregator/CMakeLists.linux-x86_64.txt
index 5b8294cd5909..1b9e0912b029 100644
--- a/ydb/core/statistics/aggregator/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/statistics/aggregator/CMakeLists.linux-x86_64.txt
@@ -22,10 +22,14 @@ target_link_libraries(core-statistics-aggregator PUBLIC
   ydb-core-tablet_flat
 )
 target_sources(core-statistics-aggregator PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/schema.h
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator_impl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/schema.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_configure.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_init.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_init_schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_schemeshard_stats.cpp
 )
diff --git a/ydb/core/statistics/aggregator/CMakeLists.windows-x86_64.txt b/ydb/core/statistics/aggregator/CMakeLists.windows-x86_64.txt
index fe736bf693e3..1328ae69276e 100644
--- a/ydb/core/statistics/aggregator/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/statistics/aggregator/CMakeLists.windows-x86_64.txt
@@ -21,10 +21,14 @@ target_link_libraries(core-statistics-aggregator PUBLIC
   ydb-core-tablet_flat
 )
 target_sources(core-statistics-aggregator PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/schema.h
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/aggregator_impl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/schema.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_configure.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_init.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_init_schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/aggregator/tx_schemeshard_stats.cpp
 )
diff --git a/ydb/core/statistics/aggregator/aggregator_impl.cpp b/ydb/core/statistics/aggregator/aggregator_impl.cpp
index 07f98b283b23..755eda40399b 100644
--- a/ydb/core/statistics/aggregator/aggregator_impl.cpp
+++ b/ydb/core/statistics/aggregator/aggregator_impl.cpp
@@ -12,6 +12,7 @@ TStatisticsAggregator::TStatisticsAggregator(const NActors::TActorId& tablet, TT
     , TTabletExecutedFlat(info, tablet, new NMiniKQL::TMiniKQLFactory)
 {
     PropagateInterval = forTests ? TDuration::Seconds(5) : TDuration::Minutes(3);
+    PropagateTimeout = forTests ? TDuration::Seconds(3) : TDuration::Minutes(2);
 
     auto seed = std::random_device{}();
     RandomGenerator.seed(seed);
@@ -124,11 +125,6 @@ void TStatisticsAggregator::Handle(TEvStatistics::TEvConnectNode::TPtr& ev) {
         return;
     }
 
-    if (!IsPropagateInFlight) {
-        Schedule(PropagateInterval, new TEvPrivate::TEvPropagate());
-        IsPropagateInFlight = true;
-    }
-
     if (!record.NeedSchemeShardsSize()) {
         return;
     }
@@ -149,7 +145,8 @@ void TStatisticsAggregator::Handle(TEvStatistics::TEvRequestStats::TPtr& ev) {
 
     SA_LOG_D("[" << TabletID() << "] EvRequestStats"
         << ", node id = " << nodeId
-        << ", schemeshard count = " << record.NeedSchemeShardsSize());
+        << ", schemeshard count = " << record.NeedSchemeShardsSize()
+        << ", urgent = " << record.GetUrgent());
 
     if (!EnableStatistics) {
         auto disabled = std::make_unique();
@@ -157,6 +154,19 @@ void TStatisticsAggregator::Handle(TEvStatistics::TEvRequestStats::TPtr& ev) {
         return;
     }
 
+    for (const auto& ssId : record.GetNeedSchemeShards()) {
+        RequestedSchemeShards.insert(ssId);
+    }
+
+    if (record.GetUrgent()) {
+        PendingRequests.push(std::move(ev));
+        if (!ProcessUrgentInFlight) {
+            Send(SelfId(), new TEvPrivate::TEvProcessUrgent());
+            ProcessUrgentInFlight = true;
+        }
+        return;
+    }
+
     std::vector ssIds;
     ssIds.reserve(record.NeedSchemeShardsSize());
     for (const auto& ssId : record.GetNeedSchemeShards()) {
@@ -206,6 +216,60 @@ void TStatisticsAggregator::Handle(TEvPrivate::TEvPropagate::TPtr&) {
     Schedule(PropagateInterval, new TEvPrivate::TEvPropagate());
 }
 
+void TStatisticsAggregator::Handle(TEvStatistics::TEvPropagateStatisticsResponse::TPtr&) {
+    if (!PropagationInFlight) {
+        return;
+    }
+    if (LastSSIndex < PropagationSchemeShards.size()) {
+        LastSSIndex = PropagatePart(PropagationNodes, PropagationSchemeShards, LastSSIndex, true);
+    } else {
+        PropagationInFlight = false;
+        PropagationNodes.clear();
+        PropagationSchemeShards.clear();
+        LastSSIndex = 0;
+    }
+}
+
+void TStatisticsAggregator::Handle(TEvPrivate::TEvProcessUrgent::TPtr&) {
+    SA_LOG_D("[" << TabletID() << "] EvProcessUrgent");
+
+    ProcessUrgentInFlight = false;
+
+    if (PendingRequests.empty()) {
+        return;
+    }
+
+    TEvStatistics::TEvRequestStats::TPtr ev = std::move(PendingRequests.front());
+    PendingRequests.pop();
+
+    if (!PendingRequests.empty()) {
+        Send(SelfId(), new TEvPrivate::TEvProcessUrgent());
+        ProcessUrgentInFlight = true;
+    }
+
+    auto record = ev->Get()->Record;
+    const auto nodeId = record.GetNodeId();
+
+    std::vector ssIds;
+    ssIds.reserve(record.NeedSchemeShardsSize());
+    for (const auto& ssId : record.GetNeedSchemeShards()) {
+        ssIds.push_back(ssId);
+    }
+
+    SendStatisticsToNode(nodeId, ssIds);
+}
+
+void TStatisticsAggregator::Handle(TEvPrivate::TEvPropagateTimeout::TPtr&) {
+    SA_LOG_D("[" << TabletID() << "] EvPropagateTimeout");
+
+    if (PropagationInFlight) {
+        PropagationInFlight = false;
+        PropagationNodes.clear();
+        PropagationSchemeShards.clear();
+        LastSSIndex = 0;
+    }
+}
+
 void TStatisticsAggregator::ProcessRequests(TNodeId nodeId, const std::vector& ssIds) {
     if (FastCounter > 0) {
         --FastCounter;
@@ -217,7 +281,7 @@ void TStatisticsAggregator::ProcessRequests(TNodeId nodeId, const std::vector nodeIds;
     nodeIds.push_back(nodeId);
 
-    PropagateStatisticsImpl(nodeIds, ssIds);
+    PropagatePart(nodeIds, ssIds, 0, false);
 }
 
 void TStatisticsAggregator::PropagateStatistics() {
@@ -255,7 +319,13 @@ void TStatisticsAggregator::PropagateStatistics() {
         ssIds.push_back(ssId);
     }
 
-    PropagateStatisticsImpl(nodeIds, ssIds);
+    Schedule(PropagateTimeout, new TEvPrivate::TEvPropagateTimeout);
+
+    PropagationInFlight = true;
+    PropagationNodes = std::move(nodeIds);
+    PropagationSchemeShards = std::move(ssIds);
+
+    LastSSIndex = PropagatePart(PropagationNodes, PropagationSchemeShards, 0, true);
 }
 
 void TStatisticsAggregator::PropagateFastStatistics() {
@@ -280,43 +350,39 @@ void TStatisticsAggregator::PropagateFastStatistics() {
         ssIds.push_back(ssId);
     }
 
-    PropagateStatisticsImpl(nodeIds, ssIds);
+    PropagatePart(nodeIds, ssIds, 0, false);
 }
 
-void TStatisticsAggregator::PropagateStatisticsImpl(
-    const std::vector& nodeIds, const std::vector& ssIds)
+size_t TStatisticsAggregator::PropagatePart(const std::vector& nodeIds, const std::vector& ssIds,
+    size_t lastSSIndex, bool useSizeLimit)
 {
-    if (nodeIds.empty() || ssIds.empty()) {
-        return;
-    }
+    auto propagate = std::make_unique();
+    auto* record = propagate->MutableRecord();
 
     TNodeId leadingNodeId = nodeIds[0];
+    record->MutableNodeIds()->Reserve(nodeIds.size() - 1);
+    for (size_t i = 1; i < nodeIds.size(); ++i) {
+        record->AddNodeIds(nodeIds[i]);
+    }
 
-    for (size_t index = 0; index < ssIds.size(); ) {
-        auto propagate = std::make_unique();
-        auto* record = propagate->MutableRecord();
-        record->MutableNodeIds()->Reserve(nodeIds.size() - 1);
-        for (size_t i = 1; i < nodeIds.size(); ++i) {
-            record->AddNodeIds(nodeIds[i]);
-        }
-        for (size_t size = 0; index < ssIds.size(); ++index) {
-            auto ssId = ssIds[index];
-            auto* entry = record->AddEntries();
-            entry->SetSchemeShardId(ssId);
-            auto itStats = BaseStats.find(ssId);
-            if (itStats != BaseStats.end()) {
-                entry->SetStats(itStats->second);
-                size += itStats->second.size();
-            } else {
-                entry->SetStats(TString()); // stats are not sent from SA yet
-            }
-            if (size >= StatsSizeLimitBytes) {
-                ++index;
-                break;
-            }
+    size_t sizeLimit = useSizeLimit ? StatsSizeLimitBytes : std::numeric_limits::max();
+    size_t index = lastSSIndex;
+    for (size_t size = 0; index < ssIds.size() && size < sizeLimit; ++index) {
+        auto ssId = ssIds[index];
+        auto* entry = record->AddEntries();
+        entry->SetSchemeShardId(ssId);
+        auto itStats = BaseStats.find(ssId);
+        if (itStats != BaseStats.end()) {
+            entry->SetStats(itStats->second);
+            size += itStats->second.size();
+        } else {
+            entry->SetStats(TString()); // stats are not sent from SS yet
         }
-        Send(NStat::MakeStatServiceID(leadingNodeId), propagate.release());
     }
+
+    Send(NStat::MakeStatServiceID(leadingNodeId), propagate.release());
+
+    return index;
 }
 
 void TStatisticsAggregator::PersistSysParam(NIceDb::TNiceDb& db, ui64 id, const TString& value) {
diff --git a/ydb/core/statistics/aggregator/aggregator_impl.h b/ydb/core/statistics/aggregator/aggregator_impl.h
index d2ce8c500b10..609422f8f675 100644
--- a/ydb/core/statistics/aggregator/aggregator_impl.h
+++ b/ydb/core/statistics/aggregator/aggregator_impl.h
@@ -42,12 +42,16 @@ class TStatisticsAggregator : public TActor, public NTabl
         enum EEv {
             EvPropagate = EventSpaceBegin(TEvents::ES_PRIVATE),
             EvFastPropagateCheck,
+            EvProcessUrgent,
+            EvPropagateTimeout,
 
             EvEnd
         };
 
         struct TEvPropagate : public TEventLocal {};
         struct TEvFastPropagateCheck : public TEventLocal {};
+        struct TEvProcessUrgent : public TEventLocal {};
+        struct TEvPropagateTimeout : public TEventLocal {};
     };
 
 private:
@@ -73,12 +77,16 @@ class TStatisticsAggregator : public TActor, public NTabl
     void Handle(TEvTabletPipe::TEvServerConnected::TPtr& ev);
     void Handle(TEvTabletPipe::TEvServerDisconnected::TPtr& ev);
     void Handle(TEvPrivate::TEvFastPropagateCheck::TPtr& ev);
+    void Handle(TEvStatistics::TEvPropagateStatisticsResponse::TPtr& ev);
+    void Handle(TEvPrivate::TEvProcessUrgent::TPtr& ev);
+    void Handle(TEvPrivate::TEvPropagateTimeout::TPtr& ev);
 
     void ProcessRequests(TNodeId nodeId, const std::vector& ssIds);
     void SendStatisticsToNode(TNodeId nodeId, const std::vector& ssIds);
     void PropagateStatistics();
     void PropagateFastStatistics();
-    void PropagateStatisticsImpl(const std::vector& nodeIds, const std::vector& ssIds);
+    size_t PropagatePart(const std::vector& nodeIds, const std::vector& ssIds,
+        size_t lastSSIndex, bool useSizeLimit);
 
     void PersistSysParam(NIceDb::TNiceDb& db, ui64 id, const TString& value);
 
@@ -99,6 +107,9 @@ class TStatisticsAggregator : public TActor, public NTabl
             hFunc(TEvTabletPipe::TEvServerConnected, Handle);
             hFunc(TEvTabletPipe::TEvServerDisconnected, Handle);
             hFunc(TEvPrivate::TEvFastPropagateCheck, Handle);
+            hFunc(TEvStatistics::TEvPropagateStatisticsResponse, Handle);
+            hFunc(TEvPrivate::TEvProcessUrgent, Handle);
+            hFunc(TEvPrivate::TEvPropagateTimeout, Handle);
             default:
                 if (!HandleDefaultEvents(ev, SelfId())) {
                     LOG_CRIT(TlsActivationContext->AsActorContext(), NKikimrServices::STATISTICS,
@@ -118,7 +129,8 @@ class TStatisticsAggregator : public TActor, public NTabl
     static constexpr size_t StatsSizeLimitBytes = 2 << 20; // limit for stats size in one message
 
     TDuration PropagateInterval;
-    bool IsPropagateInFlight = false; // is slow propagation started
+    TDuration PropagateTimeout;
+    static constexpr TDuration FastCheckInterval = TDuration::MilliSeconds(50);
 
     std::unordered_map BaseStats; // schemeshard id -> serialized stats for all paths
 
@@ -134,6 +146,14 @@ class TStatisticsAggregator : public TActor, public NTabl
     bool FastCheckInFlight = false;
     std::unordered_set FastNodes; // nodes for fast propagation
     std::unordered_set FastSchemeShards; // schemeshards for fast propagation
+
+    bool PropagationInFlight = false;
+    std::vector PropagationNodes;
+    std::vector PropagationSchemeShards;
+    size_t LastSSIndex = 0;
+
+    std::queue PendingRequests;
+    bool ProcessUrgentInFlight = false;
 };
 
 } // NKikimr::NStat
diff --git a/ydb/core/statistics/aggregator/tx_init.cpp b/ydb/core/statistics/aggregator/tx_init.cpp
index 88f6428dedc6..9fa487dc8b7c 100644
--- a/ydb/core/statistics/aggregator/tx_init.cpp
+++ b/ydb/core/statistics/aggregator/tx_init.cpp
@@ -89,6 +89,8 @@ struct TStatisticsAggregator::TTxInit : public TTxBase {
         Self->EnableStatistics = AppData(ctx)->FeatureFlags.GetEnableStatistics();
         Self->SubscribeForConfigChanges(ctx);
 
+        Self->Schedule(Self->PropagateInterval, new TEvPrivate::TEvPropagate());
+
         Self->Become(&TThis::StateWork);
     }
 };
diff --git a/ydb/core/statistics/aggregator/tx_init_schema.cpp b/ydb/core/statistics/aggregator/tx_init_schema.cpp
index 2ba697933006..4c77a9b5e9cb 100644
--- a/ydb/core/statistics/aggregator/tx_init_schema.cpp
+++ b/ydb/core/statistics/aggregator/tx_init_schema.cpp
@@ -14,6 +14,17 @@ struct TStatisticsAggregator::TTxInitSchema : public TTxBase {
 
         NIceDb::TNiceDb(txc.DB).Materialize();
 
+        static constexpr NIceDb::TTableId bigTableIds[] = {
+            Schema::BaseStats::TableId,
+        };
+
+        for (auto id : bigTableIds) {
+            const auto* tableInfo = txc.DB.GetScheme().GetTableInfo(id);
+            if (!tableInfo || !tableInfo->CompactionPolicy) {
+                txc.DB.Alter().SetCompactionPolicy(id, *NLocalDb::CreateDefaultUserTablePolicy());
+            }
+        }
+
         return true;
     }
 
diff --git a/ydb/core/statistics/events.h b/ydb/core/statistics/events.h
index a24600338a9d..cf16952f95a4 100644
--- a/ydb/core/statistics/events.h
+++ b/ydb/core/statistics/events.h
@@ -55,6 +55,7 @@ struct TEvStatistics {
         EvRequestStats,
         EvPropagateStatistics,
         EvStatisticsIsDisabled,
+        EvPropagateStatisticsResponse,
 
         EvEnd
     };
@@ -115,6 +116,12 @@ struct TEvStatistics {
         NKikimrStat::TEvStatisticsIsDisabled,
         EvStatisticsIsDisabled>
     {};
+
+    struct TEvPropagateStatisticsResponse : public TEventPB<
+        TEvPropagateStatisticsResponse,
+        NKikimrStat::TEvPropagateStatisticsResponse,
+        EvPropagateStatisticsResponse>
+    {};
 };
 
 } // NStat
diff --git a/ydb/core/statistics/stat_service.cpp b/ydb/core/statistics/stat_service.cpp
index ef2864e92056..cb4e3009d28a 100644
--- a/ydb/core/statistics/stat_service.cpp
+++ b/ydb/core/statistics/stat_service.cpp
@@ -24,6 +24,19 @@ class TStatService : public TActorBootstrapped {
         return NKikimrServices::TActivity::STAT_SERVICE;
     }
 
+   struct TEvPrivate {
+        enum EEv {
+            EvRequestTimeout = EventSpaceBegin(TEvents::ES_PRIVATE),
+
+            EvEnd
+        };
+
+        struct TEvRequestTimeout : public TEventLocal {
+            std::unordered_set NeedSchemeShards;
+            TActorId PipeClientId;
+        };
+    };
+
     void Bootstrap() {
         EnableStatistics = AppData()->FeatureFlags.GetEnableStatistics();
 
@@ -41,9 +54,11 @@ class TStatService : public TActorBootstrapped {
             hFunc(TEvStatistics::TEvGetStatistics, Handle);
             hFunc(TEvTxProxySchemeCache::TEvNavigateKeySetResult, Handle);
             hFunc(TEvStatistics::TEvPropagateStatistics, Handle);
+            IgnoreFunc(TEvStatistics::TEvPropagateStatisticsResponse);
             hFunc(TEvTabletPipe::TEvClientConnected, Handle);
             hFunc(TEvTabletPipe::TEvClientDestroyed, Handle);
             hFunc(TEvStatistics::TEvStatisticsIsDisabled, Handle);
+            hFunc(TEvPrivate::TEvRequestTimeout, Handle);
             cFunc(TEvents::TEvPoison::EventType, PassAway);
             default:
                 LOG_CRIT_S(TlsActivationContext->AsActorContext(), NKikimrServices::STATISTICS,
@@ -160,6 +175,11 @@ class TStatService : public TActorBootstrapped {
             return;
         }
 
+        bool isNewSS = (NeedSchemeShards.find(request.SchemeShardId) == NeedSchemeShards.end());
+        if (isNewSS) {
+            NeedSchemeShards.insert(request.SchemeShardId);
+        }
+
         auto navigateDomainKey = [this] (TPathId domainKey) {
             using TNavigate = NSchemeCache::TSchemeCacheNavigate;
             auto navigate = std::make_unique();
@@ -202,11 +222,18 @@ class TStatService : public TActorBootstrapped {
         if (!SAPipeClientId) {
             ConnectToSA();
             SyncNode();
-        } else {
+
+        } else if (isNewSS) {
             auto requestStats = std::make_unique();
             requestStats->Record.SetNodeId(SelfId().NodeId());
+            requestStats->Record.SetUrgent(false);
             requestStats->Record.AddNeedSchemeShards(request.SchemeShardId);
             NTabletPipe::SendData(SelfId(), SAPipeClientId, requestStats.release());
+
+            auto timeout = std::make_unique();
+            timeout->NeedSchemeShards.insert(request.SchemeShardId);
+            timeout->PipeClientId = SAPipeClientId;
+            Schedule(RequestTimeout, timeout.release());
         }
     }
 
@@ -214,9 +241,12 @@ class TStatService : public TActorBootstrapped {
         LOG_DEBUG_S(TlsActivationContext->AsActorContext(), NKikimrServices::STATISTICS,
             "EvPropagateStatistics, node id = " << SelfId().NodeId());
 
+        Send(ev->Sender, new TEvStatistics::TEvPropagateStatisticsResponse);
+
         auto* record = ev->Get()->MutableRecord();
         for (const auto& entry : record->GetEntries()) {
             ui64 schemeShardId = entry.GetSchemeShardId();
+            NeedSchemeShards.erase(schemeShardId);
             auto& statisticsState = Statistics[schemeShardId];
 
             if (entry.GetStats().empty()) {
@@ -319,6 +349,32 @@ class TStatService : public TActorBootstrapped {
         ReplyAllFailed();
     }
 
+    void Handle(TEvPrivate::TEvRequestTimeout::TPtr& ev) {
+        LOG_DEBUG_S(TlsActivationContext->AsActorContext(), NKikimrServices::STATISTICS,
+            "EvRequestTimeout"
+            << ", pipe client id = " << ev->Get()->PipeClientId
+            << ", schemeshard count = " << ev->Get()->NeedSchemeShards.size());
+
+        if (SAPipeClientId != ev->Get()->PipeClientId) {
+            return;
+        }
+        auto requestStats = std::make_unique();
+        bool hasNeedSchemeShards = false;
+        for (auto& ssId : ev->Get()->NeedSchemeShards) {
+            if (NeedSchemeShards.find(ssId) != NeedSchemeShards.end()) {
+                requestStats->Record.AddNeedSchemeShards(ssId);
+                hasNeedSchemeShards = true;
+            }
+        }
+        if (!hasNeedSchemeShards) {
+            return;
+        }
+        requestStats->Record.SetNodeId(SelfId().NodeId());
+        requestStats->Record.SetUrgent(true);
+
+        NTabletPipe::SendData(SelfId(), SAPipeClientId, requestStats.release());
+    }
+
     void ConnectToSA() {
         if (SAPipeClientId || !StatisticsAggregatorId) {
             return;
@@ -338,23 +394,25 @@ class TStatService : public TActorBootstrapped {
         auto connect = std::make_unique();
         auto& record = connect->Record;
 
+        auto timeout = std::make_unique();
+        timeout->PipeClientId = SAPipeClientId;
+
         record.SetNodeId(SelfId().NodeId());
         for (const auto& [ssId, ssState] : Statistics) {
             auto* entry = record.AddHaveSchemeShards();
             entry->SetSchemeShardId(ssId);
             entry->SetTimestamp(ssState.Timestamp);
         }
-        std::unordered_set ssIds;
-        for (const auto& [reqId, reqState] : InFlight) {
-            if (reqState.SchemeShardId != 0) {
-                ssIds.insert(reqState.SchemeShardId);
-            }
-        }
-        for (const auto& ssId : ssIds) {
+        for (const auto& ssId : NeedSchemeShards) {
             record.AddNeedSchemeShards(ssId);
+            timeout->NeedSchemeShards.insert(ssId);
         }
         NTabletPipe::SendData(SelfId(), SAPipeClientId, connect.release());
 
+        if (!NeedSchemeShards.empty()) {
+            Schedule(RequestTimeout, timeout.release());
+        }
+
         LOG_DEBUG_S(TlsActivationContext->AsActorContext(), NKikimrServices::STATISTICS,
             "SyncNode(), pipe client id = " << SAPipeClientId);
     }
@@ -465,6 +523,8 @@ class TStatService : public TActorBootstrapped {
     std::unordered_map InFlight; // request id -> state
     ui64 NextRequestId = 1;
 
+    std::unordered_set NeedSchemeShards;
+
     struct TStatEntry {
         ui64 RowCount = 0;
         ui64 BytesSize = 0;
@@ -486,6 +546,8 @@ class TStatService : public TActorBootstrapped {
         RSA_FINISHED
     };
     EResolveSAStage ResolveSAStage = RSA_INITIAL;
+
+    static constexpr TDuration RequestTimeout = TDuration::MilliSeconds(100);
 };
 
 THolder CreateStatService() {
diff --git a/ydb/core/statistics/ut/CMakeLists.darwin-arm64.txt b/ydb/core/statistics/ut/CMakeLists.darwin-arm64.txt
index 89362fbe8d0e..42fe197fe370 100644
--- a/ydb/core/statistics/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/statistics/ut/CMakeLists.darwin-arm64.txt
@@ -26,10 +26,9 @@ target_link_options(ydb-core-statistics-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-statistics-ut PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_common.h
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_common.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_statistics.cpp
 )
@@ -58,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/statistics/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/statistics/ut/CMakeLists.darwin-x86_64.txt
index 43701cc1d001..d56c6feb5598 100644
--- a/ydb/core/statistics/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/statistics/ut/CMakeLists.darwin-x86_64.txt
@@ -27,10 +27,9 @@ target_link_options(ydb-core-statistics-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-statistics-ut PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_common.h
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_common.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_statistics.cpp
 )
@@ -59,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/statistics/ut/CMakeLists.linux-aarch64.txt b/ydb/core/statistics/ut/CMakeLists.linux-aarch64.txt
index 271cc0e38498..8115fd2d3810 100644
--- a/ydb/core/statistics/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/statistics/ut/CMakeLists.linux-aarch64.txt
@@ -29,11 +29,9 @@ target_link_options(ydb-core-statistics-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-statistics-ut PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_common.h
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_common.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_statistics.cpp
 )
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/statistics/ut/CMakeLists.linux-x86_64.txt b/ydb/core/statistics/ut/CMakeLists.linux-x86_64.txt
index 2c59ef260b94..9fcc48d5e176 100644
--- a/ydb/core/statistics/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/statistics/ut/CMakeLists.linux-x86_64.txt
@@ -30,11 +30,9 @@ target_link_options(ydb-core-statistics-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-statistics-ut PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_common.h
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_common.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_statistics.cpp
 )
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/statistics/ut/CMakeLists.windows-x86_64.txt b/ydb/core/statistics/ut/CMakeLists.windows-x86_64.txt
index 521755982cfe..5ade7e71de87 100644
--- a/ydb/core/statistics/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/statistics/ut/CMakeLists.windows-x86_64.txt
@@ -24,6 +24,7 @@ target_link_libraries(ydb-core-statistics-ut PUBLIC
   core-testlib-default
 )
 target_sources(ydb-core-statistics-ut PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_common.h
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_common.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/statistics/ut/ut_statistics.cpp
 )
@@ -52,6 +53,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/CMakeLists.darwin-arm64.txt
index 79cb54391a44..8189b7c78f17 100644
--- a/ydb/core/sys_view/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/sys_view/CMakeLists.darwin-arm64.txt
@@ -34,5 +34,6 @@ target_link_libraries(ydb-core-sys_view PUBLIC
   core-sys_view-tablets
 )
 target_sources(ydb-core-sys_view PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/scan.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/scan.cpp
 )
diff --git a/ydb/core/sys_view/CMakeLists.darwin-x86_64.txt b/ydb/core/sys_view/CMakeLists.darwin-x86_64.txt
index 79cb54391a44..8189b7c78f17 100644
--- a/ydb/core/sys_view/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/sys_view/CMakeLists.darwin-x86_64.txt
@@ -34,5 +34,6 @@ target_link_libraries(ydb-core-sys_view PUBLIC
   core-sys_view-tablets
 )
 target_sources(ydb-core-sys_view PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/scan.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/scan.cpp
 )
diff --git a/ydb/core/sys_view/CMakeLists.linux-aarch64.txt b/ydb/core/sys_view/CMakeLists.linux-aarch64.txt
index b8c03c3cd724..b9e1fc6e2b5e 100644
--- a/ydb/core/sys_view/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/sys_view/CMakeLists.linux-aarch64.txt
@@ -35,5 +35,6 @@ target_link_libraries(ydb-core-sys_view PUBLIC
   core-sys_view-tablets
 )
 target_sources(ydb-core-sys_view PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/scan.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/scan.cpp
 )
diff --git a/ydb/core/sys_view/CMakeLists.linux-x86_64.txt b/ydb/core/sys_view/CMakeLists.linux-x86_64.txt
index b8c03c3cd724..b9e1fc6e2b5e 100644
--- a/ydb/core/sys_view/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/sys_view/CMakeLists.linux-x86_64.txt
@@ -35,5 +35,6 @@ target_link_libraries(ydb-core-sys_view PUBLIC
   core-sys_view-tablets
 )
 target_sources(ydb-core-sys_view PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/scan.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/scan.cpp
 )
diff --git a/ydb/core/sys_view/CMakeLists.windows-x86_64.txt b/ydb/core/sys_view/CMakeLists.windows-x86_64.txt
index 79cb54391a44..8189b7c78f17 100644
--- a/ydb/core/sys_view/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/sys_view/CMakeLists.windows-x86_64.txt
@@ -34,5 +34,6 @@ target_link_libraries(ydb-core-sys_view PUBLIC
   core-sys_view-tablets
 )
 target_sources(ydb-core-sys_view PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/scan.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/scan.cpp
 )
diff --git a/ydb/core/sys_view/common/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/common/CMakeLists.darwin-arm64.txt
index a8737ef5d537..ecaab58d570f 100644
--- a/ydb/core/sys_view/common/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/sys_view/common/CMakeLists.darwin-arm64.txt
@@ -18,5 +18,13 @@ target_link_libraries(core-sys_view-common PUBLIC
   cpp-deprecated-atomic
 )
 target_sources(core-sys_view-common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/common.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/keys.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/path.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/scan_actor_base_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/schema.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/utils.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/processor_scan.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/schema.cpp
 )
diff --git a/ydb/core/sys_view/common/CMakeLists.darwin-x86_64.txt b/ydb/core/sys_view/common/CMakeLists.darwin-x86_64.txt
index a8737ef5d537..ecaab58d570f 100644
--- a/ydb/core/sys_view/common/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/sys_view/common/CMakeLists.darwin-x86_64.txt
@@ -18,5 +18,13 @@ target_link_libraries(core-sys_view-common PUBLIC
   cpp-deprecated-atomic
 )
 target_sources(core-sys_view-common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/common.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/keys.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/path.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/scan_actor_base_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/schema.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/utils.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/processor_scan.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/schema.cpp
 )
diff --git a/ydb/core/sys_view/common/CMakeLists.linux-aarch64.txt b/ydb/core/sys_view/common/CMakeLists.linux-aarch64.txt
index 52ede2b3a125..c6e83fae95a8 100644
--- a/ydb/core/sys_view/common/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/sys_view/common/CMakeLists.linux-aarch64.txt
@@ -19,5 +19,13 @@ target_link_libraries(core-sys_view-common PUBLIC
   cpp-deprecated-atomic
 )
 target_sources(core-sys_view-common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/common.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/keys.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/path.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/scan_actor_base_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/schema.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/utils.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/processor_scan.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/schema.cpp
 )
diff --git a/ydb/core/sys_view/common/CMakeLists.linux-x86_64.txt b/ydb/core/sys_view/common/CMakeLists.linux-x86_64.txt
index 52ede2b3a125..c6e83fae95a8 100644
--- a/ydb/core/sys_view/common/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/sys_view/common/CMakeLists.linux-x86_64.txt
@@ -19,5 +19,13 @@ target_link_libraries(core-sys_view-common PUBLIC
   cpp-deprecated-atomic
 )
 target_sources(core-sys_view-common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/common.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/keys.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/path.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/scan_actor_base_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/schema.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/utils.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/processor_scan.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/schema.cpp
 )
diff --git a/ydb/core/sys_view/common/CMakeLists.windows-x86_64.txt b/ydb/core/sys_view/common/CMakeLists.windows-x86_64.txt
index a8737ef5d537..ecaab58d570f 100644
--- a/ydb/core/sys_view/common/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/sys_view/common/CMakeLists.windows-x86_64.txt
@@ -18,5 +18,13 @@ target_link_libraries(core-sys_view-common PUBLIC
   cpp-deprecated-atomic
 )
 target_sources(core-sys_view-common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/common.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/keys.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/path.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/scan_actor_base_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/schema.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/utils.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/processor_scan.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/common/schema.cpp
 )
diff --git a/ydb/core/sys_view/common/schema.cpp b/ydb/core/sys_view/common/schema.cpp
index 80ef81d4dec3..66c0d9192327 100644
--- a/ydb/core/sys_view/common/schema.cpp
+++ b/ydb/core/sys_view/common/schema.cpp
@@ -215,7 +215,11 @@ class TSystemViewResolver : public ISystemViewResolver {
         RegisterSystemView(QueryMetricsName);
 
         RegisterOlapStoreSystemView(StorePrimaryIndexStatsName);
+        RegisterOlapStoreSystemView(StorePrimaryIndexPortionStatsName);
+        RegisterOlapStoreSystemView(StorePrimaryIndexGranuleStatsName);
         RegisterColumnTableSystemView(TablePrimaryIndexStatsName);
+        RegisterColumnTableSystemView(TablePrimaryIndexPortionStatsName);
+        RegisterColumnTableSystemView(TablePrimaryIndexGranuleStatsName);
 
         RegisterSystemView(TopPartitions1MinuteName);
         RegisterSystemView(TopPartitions1HourName);
diff --git a/ydb/core/sys_view/common/schema.h b/ydb/core/sys_view/common/schema.h
index a3ef043fadc8..c2fbbc3a9f04 100644
--- a/ydb/core/sys_view/common/schema.h
+++ b/ydb/core/sys_view/common/schema.h
@@ -31,7 +31,11 @@ constexpr TStringBuf TabletsName = "hive_tablets";
 constexpr TStringBuf QueryMetricsName = "query_metrics_one_minute";
 
 constexpr TStringBuf StorePrimaryIndexStatsName = "store_primary_index_stats";
+constexpr TStringBuf StorePrimaryIndexPortionStatsName = "store_primary_index_portion_stats";
+constexpr TStringBuf StorePrimaryIndexGranuleStatsName = "store_primary_index_granule_stats";
 constexpr TStringBuf TablePrimaryIndexStatsName = "primary_index_stats";
+constexpr TStringBuf TablePrimaryIndexPortionStatsName = "primary_index_portion_stats";
+constexpr TStringBuf TablePrimaryIndexGranuleStatsName = "primary_index_granule_stats";
 
 constexpr TStringBuf TopPartitions1MinuteName = "top_partitions_one_minute";
 constexpr TStringBuf TopPartitions1HourName = "top_partitions_one_hour";
@@ -463,6 +467,89 @@ struct Schema : NIceDb::Schema {
             IndexSize,
             InFlightTxCount>;
     };
+
+    struct QuerySessions : Table<13> {
+        struct SessionId : Column<1, NScheme::NTypeIds::Utf8> {};
+        struct NodeId : Column<2, NScheme::NTypeIds::Uint32> {};
+        struct State : Column<3, NScheme::NTypeIds::Utf8> {};
+        struct Query : Column<4, NScheme::NTypeIds::Utf8> {};
+        struct QueryCount : Column<5, NScheme::NTypeIds::Uint32> {};
+        struct ClientAddress : Column<6, NScheme::NTypeIds::Utf8> {};
+        struct ClientPID : Column<7, NScheme::NTypeIds::Utf8> {};
+        struct ClientUserAgent : Column<8, NScheme::NTypeIds::Utf8> {};
+        struct ClientSdkBuildInfo : Column<9, NScheme::NTypeIds::Utf8> {};
+        struct ApplicationName : Column<10, NScheme::NTypeIds::Utf8> {};
+        struct SessionStartAt : Column<11, NScheme::NTypeIds::Timestamp> {};
+        struct QueryStartAt : Column<12, NScheme::NTypeIds::Timestamp> {};
+        struct StateChangeAt : Column<13, NScheme::NTypeIds::Timestamp> {};
+        struct UserSID : Column<14, NScheme::NTypeIds::Utf8> {};
+
+        using TKey = TableKey;
+        using TColumns = TableColumns<
+            SessionId,
+            NodeId,
+            State,
+            Query,
+            QueryCount,
+            ClientAddress,
+            ClientPID,
+            ClientUserAgent,
+            ClientSdkBuildInfo,
+            ApplicationName,
+            SessionStartAt,
+            QueryStartAt,
+            StateChangeAt,
+            UserSID>;
+    };
+
+    struct PrimaryIndexPortionStats: Table<14> {
+        struct PathId: Column<1, NScheme::NTypeIds::Uint64> {};
+        struct Kind: Column<2, NScheme::NTypeIds::Utf8> {};
+        struct TabletId: Column<3, NScheme::NTypeIds::Uint64> {};
+        struct Rows: Column<4, NScheme::NTypeIds::Uint64> {};
+        struct ColumnRawBytes: Column<5, NScheme::NTypeIds::Uint64> {};
+        struct IndexRawBytes: Column<6, NScheme::NTypeIds::Uint64> {};
+        struct ColumnBlobBytes: Column<7, NScheme::NTypeIds::Uint64> {};
+        struct IndexBlobBytes: Column<8, NScheme::NTypeIds::Uint64> {};
+        struct PortionId: Column<9, NScheme::NTypeIds::Uint64> {};
+        struct Activity: Column<10, NScheme::NTypeIds::Bool> {};
+        struct TierName: Column<11, NScheme::NTypeIds::Utf8> {};
+        struct Stats: Column<12, NScheme::NTypeIds::Utf8> {};
+
+        using TKey = TableKey;
+        using TColumns = TableColumns<
+            PathId,
+            Kind,
+            TabletId,
+            Rows,
+            ColumnRawBytes,
+            IndexRawBytes,
+            ColumnBlobBytes,
+            IndexBlobBytes,
+            PortionId,
+            Activity,
+            TierName,
+            Stats
+        >;
+    };
+
+    struct PrimaryIndexGranuleStats: Table<14> {
+        struct PathId: Column<1, NScheme::NTypeIds::Uint64> {};
+        struct TabletId: Column<2, NScheme::NTypeIds::Uint64> {};
+        struct PortionsCount: Column<3, NScheme::NTypeIds::Uint64> {};
+        struct HostName: Column<4, NScheme::NTypeIds::Utf8> {};
+        struct NodeId: Column<5, NScheme::NTypeIds::Uint64> {};
+
+        using TKey = TableKey;
+        using TColumns = TableColumns<
+            PathId,
+            TabletId,
+            PortionsCount,
+            HostName,
+            NodeId
+        >;
+    };
+
 };
 
 bool MaybeSystemViewPath(const TVector& path);
diff --git a/ydb/core/sys_view/nodes/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/nodes/CMakeLists.darwin-arm64.txt
index 3bce0c0e8b8d..6f472f28b3f3 100644
--- a/ydb/core/sys_view/nodes/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/sys_view/nodes/CMakeLists.darwin-arm64.txt
@@ -20,5 +20,6 @@ target_link_libraries(core-sys_view-nodes PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-nodes PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/nodes/nodes.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/nodes/nodes.cpp
 )
diff --git a/ydb/core/sys_view/nodes/CMakeLists.darwin-x86_64.txt b/ydb/core/sys_view/nodes/CMakeLists.darwin-x86_64.txt
index 3bce0c0e8b8d..6f472f28b3f3 100644
--- a/ydb/core/sys_view/nodes/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/sys_view/nodes/CMakeLists.darwin-x86_64.txt
@@ -20,5 +20,6 @@ target_link_libraries(core-sys_view-nodes PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-nodes PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/nodes/nodes.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/nodes/nodes.cpp
 )
diff --git a/ydb/core/sys_view/nodes/CMakeLists.linux-aarch64.txt b/ydb/core/sys_view/nodes/CMakeLists.linux-aarch64.txt
index 6f8c33fe300a..ba2c544383fd 100644
--- a/ydb/core/sys_view/nodes/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/sys_view/nodes/CMakeLists.linux-aarch64.txt
@@ -21,5 +21,6 @@ target_link_libraries(core-sys_view-nodes PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-nodes PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/nodes/nodes.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/nodes/nodes.cpp
 )
diff --git a/ydb/core/sys_view/nodes/CMakeLists.linux-x86_64.txt b/ydb/core/sys_view/nodes/CMakeLists.linux-x86_64.txt
index 6f8c33fe300a..ba2c544383fd 100644
--- a/ydb/core/sys_view/nodes/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/sys_view/nodes/CMakeLists.linux-x86_64.txt
@@ -21,5 +21,6 @@ target_link_libraries(core-sys_view-nodes PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-nodes PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/nodes/nodes.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/nodes/nodes.cpp
 )
diff --git a/ydb/core/sys_view/nodes/CMakeLists.windows-x86_64.txt b/ydb/core/sys_view/nodes/CMakeLists.windows-x86_64.txt
index 3bce0c0e8b8d..6f472f28b3f3 100644
--- a/ydb/core/sys_view/nodes/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/sys_view/nodes/CMakeLists.windows-x86_64.txt
@@ -20,5 +20,6 @@ target_link_libraries(core-sys_view-nodes PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-nodes PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/nodes/nodes.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/nodes/nodes.cpp
 )
diff --git a/ydb/core/sys_view/partition_stats/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/partition_stats/CMakeLists.darwin-arm64.txt
index a42808d784e2..024628e1ac88 100644
--- a/ydb/core/sys_view/partition_stats/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/sys_view/partition_stats/CMakeLists.darwin-arm64.txt
@@ -21,6 +21,8 @@ target_link_libraries(core-sys_view-partition_stats PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-partition_stats PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/top_partitions.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/top_partitions.cpp
 )
diff --git a/ydb/core/sys_view/partition_stats/CMakeLists.darwin-x86_64.txt b/ydb/core/sys_view/partition_stats/CMakeLists.darwin-x86_64.txt
index a42808d784e2..024628e1ac88 100644
--- a/ydb/core/sys_view/partition_stats/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/sys_view/partition_stats/CMakeLists.darwin-x86_64.txt
@@ -21,6 +21,8 @@ target_link_libraries(core-sys_view-partition_stats PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-partition_stats PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/top_partitions.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/top_partitions.cpp
 )
diff --git a/ydb/core/sys_view/partition_stats/CMakeLists.linux-aarch64.txt b/ydb/core/sys_view/partition_stats/CMakeLists.linux-aarch64.txt
index 120505a82732..c6149cffd8a1 100644
--- a/ydb/core/sys_view/partition_stats/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/sys_view/partition_stats/CMakeLists.linux-aarch64.txt
@@ -22,6 +22,8 @@ target_link_libraries(core-sys_view-partition_stats PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-partition_stats PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/top_partitions.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/top_partitions.cpp
 )
diff --git a/ydb/core/sys_view/partition_stats/CMakeLists.linux-x86_64.txt b/ydb/core/sys_view/partition_stats/CMakeLists.linux-x86_64.txt
index 120505a82732..c6149cffd8a1 100644
--- a/ydb/core/sys_view/partition_stats/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/sys_view/partition_stats/CMakeLists.linux-x86_64.txt
@@ -22,6 +22,8 @@ target_link_libraries(core-sys_view-partition_stats PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-partition_stats PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/top_partitions.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/top_partitions.cpp
 )
diff --git a/ydb/core/sys_view/partition_stats/CMakeLists.windows-x86_64.txt b/ydb/core/sys_view/partition_stats/CMakeLists.windows-x86_64.txt
index a42808d784e2..024628e1ac88 100644
--- a/ydb/core/sys_view/partition_stats/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/sys_view/partition_stats/CMakeLists.windows-x86_64.txt
@@ -21,6 +21,8 @@ target_link_libraries(core-sys_view-partition_stats PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-partition_stats PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/top_partitions.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/top_partitions.cpp
 )
diff --git a/ydb/core/sys_view/partition_stats/partition_stats_ut.cpp b/ydb/core/sys_view/partition_stats/partition_stats_ut.cpp
index 83189b339dfc..ec7cd7e473cc 100644
--- a/ydb/core/sys_view/partition_stats/partition_stats_ut.cpp
+++ b/ydb/core/sys_view/partition_stats/partition_stats_ut.cpp
@@ -13,7 +13,7 @@ Y_UNIT_TEST_SUITE(PartitionStats) {
 
     TTestActorRuntime::TEgg MakeEgg()
     {
-        return { new TAppData(0, 0, 0, 0, { }, nullptr, nullptr, nullptr, nullptr), nullptr, nullptr };
+        return { new TAppData(0, 0, 0, 0, { }, nullptr, nullptr, nullptr, nullptr), nullptr, nullptr, {} };
     }
 
     void WaitForBootstrap(TTestActorRuntime &runtime) {
diff --git a/ydb/core/sys_view/partition_stats/ut/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/partition_stats/ut/CMakeLists.darwin-arm64.txt
index 352c30294533..fafd97cd6117 100644
--- a/ydb/core/sys_view/partition_stats/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/sys_view/partition_stats/ut/CMakeLists.darwin-arm64.txt
@@ -26,8 +26,6 @@ target_link_options(ydb-core-sys_view-partition_stats-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-sys_view-partition_stats-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats_ut.cpp
@@ -57,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/partition_stats/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/sys_view/partition_stats/ut/CMakeLists.darwin-x86_64.txt
index a8cecba9db1a..b53b87641509 100644
--- a/ydb/core/sys_view/partition_stats/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/sys_view/partition_stats/ut/CMakeLists.darwin-x86_64.txt
@@ -27,8 +27,6 @@ target_link_options(ydb-core-sys_view-partition_stats-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-sys_view-partition_stats-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats_ut.cpp
@@ -58,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/partition_stats/ut/CMakeLists.linux-aarch64.txt b/ydb/core/sys_view/partition_stats/ut/CMakeLists.linux-aarch64.txt
index 63ae273da7f5..6099b1377e0b 100644
--- a/ydb/core/sys_view/partition_stats/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/sys_view/partition_stats/ut/CMakeLists.linux-aarch64.txt
@@ -29,9 +29,6 @@ target_link_options(ydb-core-sys_view-partition_stats-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-sys_view-partition_stats-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats_ut.cpp
@@ -61,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/partition_stats/ut/CMakeLists.linux-x86_64.txt b/ydb/core/sys_view/partition_stats/ut/CMakeLists.linux-x86_64.txt
index ac0db6a41671..3d1fd19c14b5 100644
--- a/ydb/core/sys_view/partition_stats/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/sys_view/partition_stats/ut/CMakeLists.linux-x86_64.txt
@@ -30,9 +30,6 @@ target_link_options(ydb-core-sys_view-partition_stats-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-sys_view-partition_stats-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/partition_stats/partition_stats_ut.cpp
@@ -62,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/partition_stats/ut/CMakeLists.windows-x86_64.txt b/ydb/core/sys_view/partition_stats/ut/CMakeLists.windows-x86_64.txt
index 8f8fd615fb20..2b37b74ebf1a 100644
--- a/ydb/core/sys_view/partition_stats/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/sys_view/partition_stats/ut/CMakeLists.windows-x86_64.txt
@@ -51,6 +51,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/processor/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/processor/CMakeLists.darwin-arm64.txt
index 1416bcdbe8de..b2ab3d15fea5 100644
--- a/ydb/core/sys_view/processor/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/sys_view/processor/CMakeLists.darwin-arm64.txt
@@ -24,6 +24,9 @@ target_link_libraries(core-sys_view-processor PUBLIC
   core-tx-scheme_cache
 )
 target_sources(core-sys_view-processor PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/schema.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor_impl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/schema.cpp
diff --git a/ydb/core/sys_view/processor/CMakeLists.darwin-x86_64.txt b/ydb/core/sys_view/processor/CMakeLists.darwin-x86_64.txt
index 1416bcdbe8de..b2ab3d15fea5 100644
--- a/ydb/core/sys_view/processor/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/sys_view/processor/CMakeLists.darwin-x86_64.txt
@@ -24,6 +24,9 @@ target_link_libraries(core-sys_view-processor PUBLIC
   core-tx-scheme_cache
 )
 target_sources(core-sys_view-processor PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/schema.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor_impl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/schema.cpp
diff --git a/ydb/core/sys_view/processor/CMakeLists.linux-aarch64.txt b/ydb/core/sys_view/processor/CMakeLists.linux-aarch64.txt
index aa745310f911..b3fc9b6346c6 100644
--- a/ydb/core/sys_view/processor/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/sys_view/processor/CMakeLists.linux-aarch64.txt
@@ -25,6 +25,9 @@ target_link_libraries(core-sys_view-processor PUBLIC
   core-tx-scheme_cache
 )
 target_sources(core-sys_view-processor PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/schema.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor_impl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/schema.cpp
diff --git a/ydb/core/sys_view/processor/CMakeLists.linux-x86_64.txt b/ydb/core/sys_view/processor/CMakeLists.linux-x86_64.txt
index aa745310f911..b3fc9b6346c6 100644
--- a/ydb/core/sys_view/processor/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/sys_view/processor/CMakeLists.linux-x86_64.txt
@@ -25,6 +25,9 @@ target_link_libraries(core-sys_view-processor PUBLIC
   core-tx-scheme_cache
 )
 target_sources(core-sys_view-processor PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/schema.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor_impl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/schema.cpp
diff --git a/ydb/core/sys_view/processor/CMakeLists.windows-x86_64.txt b/ydb/core/sys_view/processor/CMakeLists.windows-x86_64.txt
index 1416bcdbe8de..b2ab3d15fea5 100644
--- a/ydb/core/sys_view/processor/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/sys_view/processor/CMakeLists.windows-x86_64.txt
@@ -24,6 +24,9 @@ target_link_libraries(core-sys_view-processor PUBLIC
   core-tx-scheme_cache
 )
 target_sources(core-sys_view-processor PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/schema.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/processor_impl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/processor/schema.cpp
diff --git a/ydb/core/sys_view/query_stats/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/query_stats/CMakeLists.darwin-arm64.txt
index e770f8445cbb..c98f8a9826de 100644
--- a/ydb/core/sys_view/query_stats/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/sys_view/query_stats/CMakeLists.darwin-arm64.txt
@@ -22,6 +22,8 @@ target_link_libraries(core-sys_view-query_stats PUBLIC
   core-sys_view-service
 )
 target_sources(core-sys_view-query_stats PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_metrics.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_metrics.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats.cpp
 )
diff --git a/ydb/core/sys_view/query_stats/CMakeLists.darwin-x86_64.txt b/ydb/core/sys_view/query_stats/CMakeLists.darwin-x86_64.txt
index e770f8445cbb..c98f8a9826de 100644
--- a/ydb/core/sys_view/query_stats/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/sys_view/query_stats/CMakeLists.darwin-x86_64.txt
@@ -22,6 +22,8 @@ target_link_libraries(core-sys_view-query_stats PUBLIC
   core-sys_view-service
 )
 target_sources(core-sys_view-query_stats PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_metrics.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_metrics.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats.cpp
 )
diff --git a/ydb/core/sys_view/query_stats/CMakeLists.linux-aarch64.txt b/ydb/core/sys_view/query_stats/CMakeLists.linux-aarch64.txt
index 7ad392e641bb..8990143f46c3 100644
--- a/ydb/core/sys_view/query_stats/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/sys_view/query_stats/CMakeLists.linux-aarch64.txt
@@ -23,6 +23,8 @@ target_link_libraries(core-sys_view-query_stats PUBLIC
   core-sys_view-service
 )
 target_sources(core-sys_view-query_stats PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_metrics.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_metrics.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats.cpp
 )
diff --git a/ydb/core/sys_view/query_stats/CMakeLists.linux-x86_64.txt b/ydb/core/sys_view/query_stats/CMakeLists.linux-x86_64.txt
index 7ad392e641bb..8990143f46c3 100644
--- a/ydb/core/sys_view/query_stats/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/sys_view/query_stats/CMakeLists.linux-x86_64.txt
@@ -23,6 +23,8 @@ target_link_libraries(core-sys_view-query_stats PUBLIC
   core-sys_view-service
 )
 target_sources(core-sys_view-query_stats PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_metrics.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_metrics.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats.cpp
 )
diff --git a/ydb/core/sys_view/query_stats/CMakeLists.windows-x86_64.txt b/ydb/core/sys_view/query_stats/CMakeLists.windows-x86_64.txt
index e770f8445cbb..c98f8a9826de 100644
--- a/ydb/core/sys_view/query_stats/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/sys_view/query_stats/CMakeLists.windows-x86_64.txt
@@ -22,6 +22,8 @@ target_link_libraries(core-sys_view-query_stats PUBLIC
   core-sys_view-service
 )
 target_sources(core-sys_view-query_stats PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_metrics.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_metrics.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats.cpp
 )
diff --git a/ydb/core/sys_view/query_stats/ut/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/query_stats/ut/CMakeLists.darwin-arm64.txt
index c117eb4d241c..06af818741f7 100644
--- a/ydb/core/sys_view/query_stats/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/sys_view/query_stats/ut/CMakeLists.darwin-arm64.txt
@@ -26,8 +26,6 @@ target_link_options(ydb-core-sys_view-query_stats-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-sys_view-query_stats-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats_ut.cpp
@@ -57,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/query_stats/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/sys_view/query_stats/ut/CMakeLists.darwin-x86_64.txt
index 531926a0a791..2951a02c0547 100644
--- a/ydb/core/sys_view/query_stats/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/sys_view/query_stats/ut/CMakeLists.darwin-x86_64.txt
@@ -27,8 +27,6 @@ target_link_options(ydb-core-sys_view-query_stats-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-sys_view-query_stats-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats_ut.cpp
@@ -58,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/query_stats/ut/CMakeLists.linux-aarch64.txt b/ydb/core/sys_view/query_stats/ut/CMakeLists.linux-aarch64.txt
index d4447465b8e1..59b337841c6d 100644
--- a/ydb/core/sys_view/query_stats/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/sys_view/query_stats/ut/CMakeLists.linux-aarch64.txt
@@ -29,9 +29,6 @@ target_link_options(ydb-core-sys_view-query_stats-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-sys_view-query_stats-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats_ut.cpp
@@ -61,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/query_stats/ut/CMakeLists.linux-x86_64.txt b/ydb/core/sys_view/query_stats/ut/CMakeLists.linux-x86_64.txt
index 60407dae0b93..1d02893f1d1c 100644
--- a/ydb/core/sys_view/query_stats/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/sys_view/query_stats/ut/CMakeLists.linux-x86_64.txt
@@ -30,9 +30,6 @@ target_link_options(ydb-core-sys_view-query_stats-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-sys_view-query_stats-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/query_stats/query_stats_ut.cpp
@@ -62,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/query_stats/ut/CMakeLists.windows-x86_64.txt b/ydb/core/sys_view/query_stats/ut/CMakeLists.windows-x86_64.txt
index 4d3a2ec8f7b7..e04a86875c9f 100644
--- a/ydb/core/sys_view/query_stats/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/sys_view/query_stats/ut/CMakeLists.windows-x86_64.txt
@@ -51,6 +51,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/service/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/service/CMakeLists.darwin-arm64.txt
index 7a1438743919..32fa5a7ff3a9 100644
--- a/ydb/core/sys_view/service/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/sys_view/service/CMakeLists.darwin-arm64.txt
@@ -15,9 +15,16 @@ target_link_libraries(core-sys_view-service PUBLIC
   library-actors-core
   ydb-core-base
   ydb-core-protos
+  core-graph-api
+  core-graph-service
   library-aclib-protos
 )
 target_sources(core-sys_view-service PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/db_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/ext_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_history.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_interval.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/sysview_service.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/db_counters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/ext_counters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_interval.cpp
diff --git a/ydb/core/sys_view/service/CMakeLists.darwin-x86_64.txt b/ydb/core/sys_view/service/CMakeLists.darwin-x86_64.txt
index 7a1438743919..32fa5a7ff3a9 100644
--- a/ydb/core/sys_view/service/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/sys_view/service/CMakeLists.darwin-x86_64.txt
@@ -15,9 +15,16 @@ target_link_libraries(core-sys_view-service PUBLIC
   library-actors-core
   ydb-core-base
   ydb-core-protos
+  core-graph-api
+  core-graph-service
   library-aclib-protos
 )
 target_sources(core-sys_view-service PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/db_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/ext_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_history.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_interval.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/sysview_service.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/db_counters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/ext_counters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_interval.cpp
diff --git a/ydb/core/sys_view/service/CMakeLists.linux-aarch64.txt b/ydb/core/sys_view/service/CMakeLists.linux-aarch64.txt
index 38c72e1030db..d3ad9ad55fb9 100644
--- a/ydb/core/sys_view/service/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/sys_view/service/CMakeLists.linux-aarch64.txt
@@ -16,9 +16,16 @@ target_link_libraries(core-sys_view-service PUBLIC
   library-actors-core
   ydb-core-base
   ydb-core-protos
+  core-graph-api
+  core-graph-service
   library-aclib-protos
 )
 target_sources(core-sys_view-service PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/db_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/ext_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_history.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_interval.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/sysview_service.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/db_counters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/ext_counters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_interval.cpp
diff --git a/ydb/core/sys_view/service/CMakeLists.linux-x86_64.txt b/ydb/core/sys_view/service/CMakeLists.linux-x86_64.txt
index 38c72e1030db..d3ad9ad55fb9 100644
--- a/ydb/core/sys_view/service/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/sys_view/service/CMakeLists.linux-x86_64.txt
@@ -16,9 +16,16 @@ target_link_libraries(core-sys_view-service PUBLIC
   library-actors-core
   ydb-core-base
   ydb-core-protos
+  core-graph-api
+  core-graph-service
   library-aclib-protos
 )
 target_sources(core-sys_view-service PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/db_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/ext_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_history.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_interval.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/sysview_service.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/db_counters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/ext_counters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_interval.cpp
diff --git a/ydb/core/sys_view/service/CMakeLists.windows-x86_64.txt b/ydb/core/sys_view/service/CMakeLists.windows-x86_64.txt
index 7a1438743919..32fa5a7ff3a9 100644
--- a/ydb/core/sys_view/service/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/sys_view/service/CMakeLists.windows-x86_64.txt
@@ -15,9 +15,16 @@ target_link_libraries(core-sys_view-service PUBLIC
   library-actors-core
   ydb-core-base
   ydb-core-protos
+  core-graph-api
+  core-graph-service
   library-aclib-protos
 )
 target_sources(core-sys_view-service PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/db_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/ext_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_history.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_interval.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/sysview_service.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/db_counters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/ext_counters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_interval.cpp
diff --git a/ydb/core/sys_view/service/ut/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/service/ut/CMakeLists.darwin-arm64.txt
index 2977856841e9..177d0c748a4f 100644
--- a/ydb/core/sys_view/service/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/sys_view/service/ut/CMakeLists.darwin-arm64.txt
@@ -22,8 +22,6 @@ target_link_options(ydb-core-sys_view-service-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-sys_view-service-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_history_ut.cpp
@@ -53,6 +51,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/service/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/sys_view/service/ut/CMakeLists.darwin-x86_64.txt
index 481cfefbddfd..a0352a8dca2c 100644
--- a/ydb/core/sys_view/service/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/sys_view/service/ut/CMakeLists.darwin-x86_64.txt
@@ -23,8 +23,6 @@ target_link_options(ydb-core-sys_view-service-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-sys_view-service-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_history_ut.cpp
@@ -54,6 +52,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/service/ut/CMakeLists.linux-aarch64.txt b/ydb/core/sys_view/service/ut/CMakeLists.linux-aarch64.txt
index 347b7e3bf6d0..d10be56887c6 100644
--- a/ydb/core/sys_view/service/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/sys_view/service/ut/CMakeLists.linux-aarch64.txt
@@ -25,9 +25,6 @@ target_link_options(ydb-core-sys_view-service-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-sys_view-service-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_history_ut.cpp
@@ -57,6 +54,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/service/ut/CMakeLists.linux-x86_64.txt b/ydb/core/sys_view/service/ut/CMakeLists.linux-x86_64.txt
index 0d606eaa98ee..9f229634f268 100644
--- a/ydb/core/sys_view/service/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/sys_view/service/ut/CMakeLists.linux-x86_64.txt
@@ -26,9 +26,6 @@ target_link_options(ydb-core-sys_view-service-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-sys_view-service-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/service/query_history_ut.cpp
@@ -58,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/service/ut/CMakeLists.windows-x86_64.txt b/ydb/core/sys_view/service/ut/CMakeLists.windows-x86_64.txt
index 17272ade88a9..d3ed9f89e03d 100644
--- a/ydb/core/sys_view/service/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/sys_view/service/ut/CMakeLists.windows-x86_64.txt
@@ -47,6 +47,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/storage/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/storage/CMakeLists.darwin-arm64.txt
index 7604f2d0b843..f3fb76c355ba 100644
--- a/ydb/core/sys_view/storage/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/sys_view/storage/CMakeLists.darwin-arm64.txt
@@ -20,6 +20,11 @@ target_link_libraries(core-sys_view-storage PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-storage PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/groups.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/pdisks.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_pools.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_stats.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/vslots.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/groups.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/pdisks.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_pools.cpp
diff --git a/ydb/core/sys_view/storage/CMakeLists.darwin-x86_64.txt b/ydb/core/sys_view/storage/CMakeLists.darwin-x86_64.txt
index 7604f2d0b843..f3fb76c355ba 100644
--- a/ydb/core/sys_view/storage/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/sys_view/storage/CMakeLists.darwin-x86_64.txt
@@ -20,6 +20,11 @@ target_link_libraries(core-sys_view-storage PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-storage PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/groups.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/pdisks.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_pools.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_stats.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/vslots.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/groups.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/pdisks.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_pools.cpp
diff --git a/ydb/core/sys_view/storage/CMakeLists.linux-aarch64.txt b/ydb/core/sys_view/storage/CMakeLists.linux-aarch64.txt
index 00cc264e8463..da16dc2e0e8f 100644
--- a/ydb/core/sys_view/storage/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/sys_view/storage/CMakeLists.linux-aarch64.txt
@@ -21,6 +21,11 @@ target_link_libraries(core-sys_view-storage PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-storage PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/groups.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/pdisks.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_pools.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_stats.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/vslots.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/groups.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/pdisks.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_pools.cpp
diff --git a/ydb/core/sys_view/storage/CMakeLists.linux-x86_64.txt b/ydb/core/sys_view/storage/CMakeLists.linux-x86_64.txt
index 00cc264e8463..da16dc2e0e8f 100644
--- a/ydb/core/sys_view/storage/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/sys_view/storage/CMakeLists.linux-x86_64.txt
@@ -21,6 +21,11 @@ target_link_libraries(core-sys_view-storage PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-storage PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/groups.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/pdisks.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_pools.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_stats.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/vslots.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/groups.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/pdisks.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_pools.cpp
diff --git a/ydb/core/sys_view/storage/CMakeLists.windows-x86_64.txt b/ydb/core/sys_view/storage/CMakeLists.windows-x86_64.txt
index 7604f2d0b843..f3fb76c355ba 100644
--- a/ydb/core/sys_view/storage/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/sys_view/storage/CMakeLists.windows-x86_64.txt
@@ -20,6 +20,11 @@ target_link_libraries(core-sys_view-storage PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-storage PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/groups.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/pdisks.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_pools.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_stats.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/vslots.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/groups.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/pdisks.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/storage/storage_pools.cpp
diff --git a/ydb/core/sys_view/tablets/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/tablets/CMakeLists.darwin-arm64.txt
index 681f82119654..bf3c08eef02f 100644
--- a/ydb/core/sys_view/tablets/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/sys_view/tablets/CMakeLists.darwin-arm64.txt
@@ -20,5 +20,6 @@ target_link_libraries(core-sys_view-tablets PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-tablets PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/tablets/tablets.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/tablets/tablets.cpp
 )
diff --git a/ydb/core/sys_view/tablets/CMakeLists.darwin-x86_64.txt b/ydb/core/sys_view/tablets/CMakeLists.darwin-x86_64.txt
index 681f82119654..bf3c08eef02f 100644
--- a/ydb/core/sys_view/tablets/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/sys_view/tablets/CMakeLists.darwin-x86_64.txt
@@ -20,5 +20,6 @@ target_link_libraries(core-sys_view-tablets PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-tablets PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/tablets/tablets.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/tablets/tablets.cpp
 )
diff --git a/ydb/core/sys_view/tablets/CMakeLists.linux-aarch64.txt b/ydb/core/sys_view/tablets/CMakeLists.linux-aarch64.txt
index 2438cf1f1f82..03633e4fca54 100644
--- a/ydb/core/sys_view/tablets/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/sys_view/tablets/CMakeLists.linux-aarch64.txt
@@ -21,5 +21,6 @@ target_link_libraries(core-sys_view-tablets PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-tablets PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/tablets/tablets.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/tablets/tablets.cpp
 )
diff --git a/ydb/core/sys_view/tablets/CMakeLists.linux-x86_64.txt b/ydb/core/sys_view/tablets/CMakeLists.linux-x86_64.txt
index 2438cf1f1f82..03633e4fca54 100644
--- a/ydb/core/sys_view/tablets/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/sys_view/tablets/CMakeLists.linux-x86_64.txt
@@ -21,5 +21,6 @@ target_link_libraries(core-sys_view-tablets PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-tablets PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/tablets/tablets.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/tablets/tablets.cpp
 )
diff --git a/ydb/core/sys_view/tablets/CMakeLists.windows-x86_64.txt b/ydb/core/sys_view/tablets/CMakeLists.windows-x86_64.txt
index 681f82119654..bf3c08eef02f 100644
--- a/ydb/core/sys_view/tablets/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/sys_view/tablets/CMakeLists.windows-x86_64.txt
@@ -20,5 +20,6 @@ target_link_libraries(core-sys_view-tablets PUBLIC
   core-sys_view-common
 )
 target_sources(core-sys_view-tablets PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/tablets/tablets.h
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/tablets/tablets.cpp
 )
diff --git a/ydb/core/sys_view/ut_kqp.cpp b/ydb/core/sys_view/ut_kqp.cpp
index bd930aa70402..aa59f8744186 100644
--- a/ydb/core/sys_view/ut_kqp.cpp
+++ b/ydb/core/sys_view/ut_kqp.cpp
@@ -974,7 +974,7 @@ Y_UNIT_TEST_SUITE(SystemView) {
         check.String("Default"); // Kind
         check.Uint64(env.GetServer().GetRuntime()->GetNodeId(0)); // NodeId
         check.Uint64(1u); // PDiskId
-        check.String("INIT_PENDING"); // Status
+        check.String("ERROR"); // Status
         check.Uint64(0u); // VDisk
         check.Uint64(1000u); // VSlotId
     }
diff --git a/ydb/core/sys_view/ut_kqp/CMakeLists.darwin-arm64.txt b/ydb/core/sys_view/ut_kqp/CMakeLists.darwin-arm64.txt
index c965eb2907a7..f4fd441a89be 100644
--- a/ydb/core/sys_view/ut_kqp/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/sys_view/ut_kqp/CMakeLists.darwin-arm64.txt
@@ -30,8 +30,6 @@ target_link_options(ydb-core-sys_view-ut_kqp PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-sys_view-ut_kqp PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/ut_kqp.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/ut_kqp/CMakeLists.darwin-x86_64.txt b/ydb/core/sys_view/ut_kqp/CMakeLists.darwin-x86_64.txt
index 828e9c220930..63d13f5f9239 100644
--- a/ydb/core/sys_view/ut_kqp/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/sys_view/ut_kqp/CMakeLists.darwin-x86_64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-sys_view-ut_kqp PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-sys_view-ut_kqp PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/ut_kqp.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/ut_kqp/CMakeLists.linux-aarch64.txt b/ydb/core/sys_view/ut_kqp/CMakeLists.linux-aarch64.txt
index 6a80caf25186..875132a292e2 100644
--- a/ydb/core/sys_view/ut_kqp/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/sys_view/ut_kqp/CMakeLists.linux-aarch64.txt
@@ -33,9 +33,6 @@ target_link_options(ydb-core-sys_view-ut_kqp PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-sys_view-ut_kqp PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/ut_kqp.cpp
@@ -68,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/ut_kqp/CMakeLists.linux-x86_64.txt b/ydb/core/sys_view/ut_kqp/CMakeLists.linux-x86_64.txt
index 7c3f4f79607d..c0a84a8aafaf 100644
--- a/ydb/core/sys_view/ut_kqp/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/sys_view/ut_kqp/CMakeLists.linux-x86_64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-sys_view-ut_kqp PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-sys_view-ut_kqp PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/sys_view/ut_kqp.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/sys_view/ut_kqp/CMakeLists.windows-x86_64.txt b/ydb/core/sys_view/ut_kqp/CMakeLists.windows-x86_64.txt
index 3e0591e2b283..89fe7ac0562a 100644
--- a/ydb/core/sys_view/ut_kqp/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/sys_view/ut_kqp/CMakeLists.windows-x86_64.txt
@@ -58,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet/CMakeLists.darwin-arm64.txt b/ydb/core/tablet/CMakeLists.darwin-arm64.txt
index a7833addf686..72d5761ffd4d 100644
--- a/ydb/core/tablet/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tablet/CMakeLists.darwin-arm64.txt
@@ -20,6 +20,7 @@ target_link_libraries(ydb-core-tablet PUBLIC
   cpp-deprecated-enum_codegen
   library-cpp-yson
   ydb-core-base
+  graph-shard-protos
   ydb-core-mon
   ydb-core-mon_alloc
   ydb-core-node_whiteboard
@@ -32,6 +33,29 @@ target_link_libraries(ydb-core-tablet PUBLIC
   ydb-library-services
 )
 target_sources(ydb-core-tablet PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_counters_merger.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_db_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/node_tablet_monitor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/pipe_tracker.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/resource_broker.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/resource_broker_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_aggregator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_app.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_protobuf.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_exception.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_list_renderer.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_metrics.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_monitoring_proxy.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_pipe_client_cache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_responsiveness_pinger.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_setup.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_sys.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_tracing_signals.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/private/aggregated_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/private/labeled_db_counters.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/bootstrapper.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_counters_merger.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_db_counters.cpp
diff --git a/ydb/core/tablet/CMakeLists.darwin-x86_64.txt b/ydb/core/tablet/CMakeLists.darwin-x86_64.txt
index a7833addf686..72d5761ffd4d 100644
--- a/ydb/core/tablet/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tablet/CMakeLists.darwin-x86_64.txt
@@ -20,6 +20,7 @@ target_link_libraries(ydb-core-tablet PUBLIC
   cpp-deprecated-enum_codegen
   library-cpp-yson
   ydb-core-base
+  graph-shard-protos
   ydb-core-mon
   ydb-core-mon_alloc
   ydb-core-node_whiteboard
@@ -32,6 +33,29 @@ target_link_libraries(ydb-core-tablet PUBLIC
   ydb-library-services
 )
 target_sources(ydb-core-tablet PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_counters_merger.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_db_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/node_tablet_monitor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/pipe_tracker.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/resource_broker.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/resource_broker_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_aggregator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_app.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_protobuf.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_exception.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_list_renderer.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_metrics.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_monitoring_proxy.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_pipe_client_cache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_responsiveness_pinger.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_setup.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_sys.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_tracing_signals.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/private/aggregated_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/private/labeled_db_counters.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/bootstrapper.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_counters_merger.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_db_counters.cpp
diff --git a/ydb/core/tablet/CMakeLists.linux-aarch64.txt b/ydb/core/tablet/CMakeLists.linux-aarch64.txt
index 46c903f24f8d..2e03bd027110 100644
--- a/ydb/core/tablet/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tablet/CMakeLists.linux-aarch64.txt
@@ -21,6 +21,7 @@ target_link_libraries(ydb-core-tablet PUBLIC
   cpp-deprecated-enum_codegen
   library-cpp-yson
   ydb-core-base
+  graph-shard-protos
   ydb-core-mon
   ydb-core-mon_alloc
   ydb-core-node_whiteboard
@@ -33,6 +34,29 @@ target_link_libraries(ydb-core-tablet PUBLIC
   ydb-library-services
 )
 target_sources(ydb-core-tablet PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_counters_merger.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_db_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/node_tablet_monitor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/pipe_tracker.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/resource_broker.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/resource_broker_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_aggregator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_app.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_protobuf.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_exception.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_list_renderer.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_metrics.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_monitoring_proxy.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_pipe_client_cache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_responsiveness_pinger.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_setup.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_sys.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_tracing_signals.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/private/aggregated_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/private/labeled_db_counters.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/bootstrapper.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_counters_merger.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_db_counters.cpp
diff --git a/ydb/core/tablet/CMakeLists.linux-x86_64.txt b/ydb/core/tablet/CMakeLists.linux-x86_64.txt
index 46c903f24f8d..2e03bd027110 100644
--- a/ydb/core/tablet/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tablet/CMakeLists.linux-x86_64.txt
@@ -21,6 +21,7 @@ target_link_libraries(ydb-core-tablet PUBLIC
   cpp-deprecated-enum_codegen
   library-cpp-yson
   ydb-core-base
+  graph-shard-protos
   ydb-core-mon
   ydb-core-mon_alloc
   ydb-core-node_whiteboard
@@ -33,6 +34,29 @@ target_link_libraries(ydb-core-tablet PUBLIC
   ydb-library-services
 )
 target_sources(ydb-core-tablet PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_counters_merger.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_db_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/node_tablet_monitor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/pipe_tracker.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/resource_broker.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/resource_broker_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_aggregator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_app.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_protobuf.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_exception.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_list_renderer.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_metrics.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_monitoring_proxy.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_pipe_client_cache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_responsiveness_pinger.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_setup.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_sys.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_tracing_signals.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/private/aggregated_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/private/labeled_db_counters.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/bootstrapper.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_counters_merger.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_db_counters.cpp
diff --git a/ydb/core/tablet/CMakeLists.windows-x86_64.txt b/ydb/core/tablet/CMakeLists.windows-x86_64.txt
index a7833addf686..72d5761ffd4d 100644
--- a/ydb/core/tablet/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tablet/CMakeLists.windows-x86_64.txt
@@ -20,6 +20,7 @@ target_link_libraries(ydb-core-tablet PUBLIC
   cpp-deprecated-enum_codegen
   library-cpp-yson
   ydb-core-base
+  graph-shard-protos
   ydb-core-mon
   ydb-core-mon_alloc
   ydb-core-node_whiteboard
@@ -32,6 +33,29 @@ target_link_libraries(ydb-core-tablet PUBLIC
   ydb-library-services
 )
 target_sources(ydb-core-tablet PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_counters_merger.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_db_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/node_tablet_monitor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/pipe_tracker.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/resource_broker.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/resource_broker_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_aggregator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_app.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_counters_protobuf.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_exception.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_list_renderer.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_metrics.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_monitoring_proxy.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_pipe_client_cache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_responsiveness_pinger.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_setup.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_sys.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/tablet_tracing_signals.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/private/aggregated_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet/private/labeled_db_counters.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/bootstrapper.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_counters_merger.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/labeled_db_counters.cpp
diff --git a/ydb/core/tablet/node_whiteboard.cpp b/ydb/core/tablet/node_whiteboard.cpp
index ff7014089b01..bd0f48e36e51 100644
--- a/ydb/core/tablet/node_whiteboard.cpp
+++ b/ydb/core/tablet/node_whiteboard.cpp
@@ -46,6 +46,9 @@ class TNodeWhiteboardService : public TActorBootstrapped
         TabletIntrospectionData.Reset(NTracing::CreateTraceCollection(introspectionGroup));
 
         SystemStateInfo.SetHost(FQDNHostName());
+        if (const TString& nodeName = AppData(ctx)->NodeName; !nodeName.Empty()) {
+            SystemStateInfo.SetNodeName(nodeName);
+        }
         SystemStateInfo.SetNumberOfCpus(NSystemInfo::NumberOfCpus());
         auto version = GetProgramRevision();
         if (!version.empty()) {
@@ -528,9 +531,17 @@ class TNodeWhiteboardService : public TActorBootstrapped
     }
 
     void Handle(TEvWhiteboard::TEvBSGroupStateUpdate::TPtr &ev, const TActorContext &ctx) {
-        auto& bSGroupStateInfo = BSGroupStateInfo[ev->Get()->Record.GetGroupID()];
-        if (CheckedMerge(bSGroupStateInfo, ev->Get()->Record) >= 100) {
-            bSGroupStateInfo.SetChangeTime(ctx.Now().MilliSeconds());
+        const auto& from = ev->Get()->Record;
+        auto& to = BSGroupStateInfo[from.GetGroupID()];
+        int modified = 0;
+        if (from.GetNoVDisksInGroup() && to.GetGroupGeneration() <= from.GetGroupGeneration()) {
+            modified += 100 * (2 - to.GetVDiskIds().empty() - to.GetVDiskNodeIds().empty());
+            to.ClearVDiskIds();
+            to.ClearVDiskNodeIds();
+        }
+        modified += CheckedMerge(to, from);
+        if (modified >= 100) {
+            to.SetChangeTime(ctx.Now().MilliSeconds());
         }
     }
 
diff --git a/ydb/core/tablet/resource_broker.cpp b/ydb/core/tablet/resource_broker.cpp
index 5583ff718686..700a04135197 100644
--- a/ydb/core/tablet/resource_broker.cpp
+++ b/ydb/core/tablet/resource_broker.cpp
@@ -1269,6 +1269,7 @@ NKikimrResourceBroker::TResourceBrokerConfig MakeDefaultConfig()
     const ui64 KqpRmQueueCPU = 4;
     const ui64 KqpRmQueueMemory = 10ULL << 30;
 
+    const ui64 CSTTLCompactionMemoryLimit = 1ULL << 30;
     const ui64 CSInsertCompactionMemoryLimit = 1ULL << 30;
     const ui64 CSGeneralCompactionMemoryLimit = 3ULL << 30;
     const ui64 CSScanMemoryLimit = 3ULL << 30;
@@ -1314,6 +1315,12 @@ NKikimrResourceBroker::TResourceBrokerConfig MakeDefaultConfig()
     queue->MutableLimit()->SetCpu(3);
     queue->MutableLimit()->SetMemory(CSInsertCompactionMemoryLimit);
 
+    queue = config.AddQueues();
+    queue->SetName("queue_cs_ttl");
+    queue->SetWeight(100);
+    queue->MutableLimit()->SetCpu(3);
+    queue->MutableLimit()->SetMemory(CSTTLCompactionMemoryLimit);
+
     queue = config.AddQueues();
     queue->SetName("queue_cs_general");
     queue->SetWeight(100);
@@ -1413,6 +1420,11 @@ NKikimrResourceBroker::TResourceBrokerConfig MakeDefaultConfig()
     task->SetQueueName("queue_compaction_borrowed");
     task->SetDefaultDuration(TDuration::Minutes(10).GetValue());
 
+    task = config.AddTasks();
+    task->SetName("CS::TTL");
+    task->SetQueueName("queue_cs_ttl");
+    task->SetDefaultDuration(TDuration::Minutes(10).GetValue());
+
     task = config.AddTasks();
     task->SetName("CS::INDEXATION");
     task->SetQueueName("queue_cs_indexation");
diff --git a/ydb/core/tablet/tablet_metrics.cpp b/ydb/core/tablet/tablet_metrics.cpp
index 182c7c566e4b..8e17fed1a716 100644
--- a/ydb/core/tablet/tablet_metrics.cpp
+++ b/ydb/core/tablet/tablet_metrics.cpp
@@ -107,9 +107,9 @@ namespace {
             if (value.IsValueReady()) {
                 auto val = !value.IsValueObsolete(now) ? value.GetValue() : 0;
                 ui32 levelVal = val / significantChange;
-                auto& lit = levels[groupId];
-                if (lit != levelVal || force) {
-                    lit = levelVal;
+                auto [lit, inserted] = levels.insert({groupId, 0});
+                if (inserted || lit->second != levelVal || force) {
+                    lit->second = levelVal;
                     haveChanges = true;
                     // N.B. keep going so all levels are properly updated
                 }
diff --git a/ydb/core/tablet/tablet_metrics.h b/ydb/core/tablet/tablet_metrics.h
index b426284d33fb..313df95d68cf 100644
--- a/ydb/core/tablet/tablet_metrics.h
+++ b/ydb/core/tablet/tablet_metrics.h
@@ -69,11 +69,11 @@ class TResourceMetricsSendState {
     const ui64 TabletId;
     const ui32 FollowerId;
     const TActorId Launcher;
-    ui32 LevelCPU = 0;
-    ui32 LevelMemory = 0;
-    ui32 LevelNetwork = 0;
-    ui32 LevelStorage = 0;
-    ui32 LevelIops = 0;
+    std::optional LevelCPU;
+    std::optional LevelMemory;
+    std::optional LevelNetwork;
+    std::optional LevelStorage;
+    std::optional LevelIops;
     THashMap, ui32> LevelReadThroughput;
     THashMap, ui32> LevelWriteThroughput;
     THashMap, ui32> LevelReadIops;
diff --git a/ydb/core/tablet/tablet_pipe_client_cache.cpp b/ydb/core/tablet/tablet_pipe_client_cache.cpp
index da62c536265c..e31f879354b9 100644
--- a/ydb/core/tablet/tablet_pipe_client_cache.cpp
+++ b/ydb/core/tablet/tablet_pipe_client_cache.cpp
@@ -183,13 +183,17 @@ namespace NTabletPipe {
         }
 
     private:
-        void MoveToPool(ui64 tabletId, const TClientCacheEntry& currentClient) {
+        void MoveToPool(ui64 tabletId, TClientCacheEntry& currentClient) {
             TClientCacheEntry* insertedClient;
             if (!PoolContainer->Insert(tabletId, currentClient, insertedClient)) {
                 Y_DEBUG_ABORT_UNLESS(!insertedClient->Client);
                 *insertedClient = currentClient;
             }
 
+            // Note: client was moved to pool, make sure it's not closed by
+            // the eviction callback
+            currentClient.Client = {};
+
             Container->Erase(tabletId);
         }
 
diff --git a/ydb/core/tablet/tablet_req_writelog.cpp b/ydb/core/tablet/tablet_req_writelog.cpp
index 864755528b60..619facd2dcd9 100644
--- a/ydb/core/tablet/tablet_req_writelog.cpp
+++ b/ydb/core/tablet/tablet_req_writelog.cpp
@@ -154,7 +154,7 @@ class TTabletReqWriteLog : public TActorBootstrapped {
         , CommitTactic(commitTactic)
         , Info(info)
         , RepliesToWait(Max())
-        , RequestSpan(TWilsonTablet::Tablet, std::move(traceId), "Tablet.WriteLog")
+        , RequestSpan(TWilsonTablet::TabletDetailed, std::move(traceId), "Tablet.WriteLog")
     {
         References.swap(refs);
         Y_ABORT_UNLESS(Info);
@@ -171,9 +171,9 @@ class TTabletReqWriteLog : public TActorBootstrapped {
             NWilson::TTraceId innerTraceId;
 
             if (RequestSpan) {
-                auto res = BlobSpans.try_emplace(ref.Id, TWilsonTablet::Tablet, RequestSpan.GetTraceId(), "Tablet.WriteLog.Reference");
+                auto res = BlobSpans.try_emplace(ref.Id, TWilsonTablet::TabletDetailed, RequestSpan.GetTraceId(), "Tablet.WriteLog.Reference");
 
-                innerTraceId = std::move(res.first->second.GetTraceId());
+                innerTraceId = res.first->second.GetTraceId();
             }
 
             SendToBS(ref.Id, ref.Buffer, ctx, handleClass, ref.Tactic ? *ref.Tactic : CommitTactic, std::move(innerTraceId));
@@ -191,7 +191,7 @@ class TTabletReqWriteLog : public TActorBootstrapped {
         NWilson::TTraceId traceId;
 
         if (RequestSpan) {
-            auto res = BlobSpans.try_emplace(actualLogEntryId, TWilsonTablet::Tablet, RequestSpan.GetTraceId(), "Tablet.WriteLog.LogEntry");
+            auto res = BlobSpans.try_emplace(actualLogEntryId, TWilsonTablet::TabletDetailed, RequestSpan.GetTraceId(), "Tablet.WriteLog.LogEntry");
 
             traceId = std::move(res.first->second.GetTraceId());
         }
diff --git a/ydb/core/tablet/tablet_sys.cpp b/ydb/core/tablet/tablet_sys.cpp
index a2c0dbd2ee19..dfb540001395 100644
--- a/ydb/core/tablet/tablet_sys.cpp
+++ b/ydb/core/tablet/tablet_sys.cpp
@@ -15,10 +15,11 @@
 #include 
 #include 
 
-#if defined BLOG_D || defined BLOG_I || defined BLOG_ERROR
+#if defined BLOG_D || defined BLOG_I || defined BLOG_ERROR || defined BLOG_LEVEL
 #error log macro definition clash
 #endif
 
+#define BLOG_LEVEL(level, stream, marker) LOG_LOG_S(*TlsActivationContext, level, NKikimrServices::TABLET_MAIN, "Tablet: " << TabletID() << " " << stream << " Marker# " << marker)
 #define BLOG_D(stream, marker) LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::TABLET_MAIN, "Tablet: " << TabletID() << " " << stream << " Marker# " << marker)
 #define BLOG_I(stream, marker) LOG_INFO_S(*TlsActivationContext, NKikimrServices::TABLET_MAIN, "Tablet: " << TabletID() << " " << stream << " Marker# " << marker)
 #define BLOG_ERROR(stream, marker) LOG_ERROR_S(*TlsActivationContext, NKikimrServices::TABLET_MAIN, "Tablet: " << TabletID() << " " << stream << " Marker# " << marker)
@@ -1745,7 +1746,10 @@ void TTablet::ReassignYellowChannels(TVector &&yellowMoveChannels) {
 }
 
 void TTablet::CancelTablet(TEvTablet::TEvTabletDead::EReason reason, const TString &details) {
-    BLOG_ERROR(
+    BLOG_LEVEL(
+        reason == TEvTablet::TEvTabletDead::ReasonPill
+            ? NActors::NLog::PRI_NOTICE
+            : NActors::NLog::PRI_ERROR,
         " Type: " << TTabletTypes::TypeToStr((TTabletTypes::EType)Info->TabletType)
         << ", EReason: " << TEvTablet::TEvTabletDead::Str(reason)
         << ", SuggestedGeneration: " << SuggestedGeneration
diff --git a/ydb/core/tablet/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tablet/ut/CMakeLists.darwin-arm64.txt
index ed42817bd055..8e15f699635c 100644
--- a/ydb/core/tablet/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tablet/ut/CMakeLists.darwin-arm64.txt
@@ -28,8 +28,6 @@ target_link_options(ydb-core-tablet-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tablet-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/pipe_tracker_ut.cpp
@@ -67,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tablet/ut/CMakeLists.darwin-x86_64.txt
index dc9d21b44b63..c9aa887ef6bc 100644
--- a/ydb/core/tablet/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tablet/ut/CMakeLists.darwin-x86_64.txt
@@ -29,8 +29,6 @@ target_link_options(ydb-core-tablet-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tablet-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/pipe_tracker_ut.cpp
@@ -68,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tablet/ut/CMakeLists.linux-aarch64.txt
index e7aa378a708d..f9bdf71575c3 100644
--- a/ydb/core/tablet/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tablet/ut/CMakeLists.linux-aarch64.txt
@@ -31,9 +31,6 @@ target_link_options(ydb-core-tablet-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tablet-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/pipe_tracker_ut.cpp
@@ -71,6 +68,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tablet/ut/CMakeLists.linux-x86_64.txt
index 5664fae257f1..856a053aa71a 100644
--- a/ydb/core/tablet/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tablet/ut/CMakeLists.linux-x86_64.txt
@@ -32,9 +32,6 @@ target_link_options(ydb-core-tablet-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tablet-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet/pipe_tracker_ut.cpp
@@ -72,6 +69,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tablet/ut/CMakeLists.windows-x86_64.txt
index 7d5197ab64b7..d3c0aa3b21ca 100644
--- a/ydb/core/tablet/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tablet/ut/CMakeLists.windows-x86_64.txt
@@ -61,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet_flat/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/CMakeLists.darwin-arm64.txt
index 1ec29730846e..0bc8fa0292c2 100644
--- a/ydb/core/tablet_flat/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tablet_flat/CMakeLists.darwin-arm64.txt
@@ -80,6 +80,30 @@ target_proto_messages(ydb-core-tablet_flat PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor.proto
 )
 target_sources(ydb-core-tablet_flat PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/flat_executor.pb.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_cxx_database.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_database.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_bootlogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_borrowlogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_compaction_logic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_gclogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_tx_env.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_txloglogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_iterator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_sausagecache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_stat_part.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_stat_table.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_part.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_observer.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_update_op.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_sausagecache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_cache_memtable.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/tablet_flat_executor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/tablet_flat_executed.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_boot_lease.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_boot_misc.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_comp.cpp
diff --git a/ydb/core/tablet_flat/CMakeLists.darwin-x86_64.txt b/ydb/core/tablet_flat/CMakeLists.darwin-x86_64.txt
index 1ec29730846e..0bc8fa0292c2 100644
--- a/ydb/core/tablet_flat/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tablet_flat/CMakeLists.darwin-x86_64.txt
@@ -80,6 +80,30 @@ target_proto_messages(ydb-core-tablet_flat PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor.proto
 )
 target_sources(ydb-core-tablet_flat PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/flat_executor.pb.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_cxx_database.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_database.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_bootlogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_borrowlogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_compaction_logic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_gclogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_tx_env.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_txloglogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_iterator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_sausagecache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_stat_part.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_stat_table.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_part.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_observer.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_update_op.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_sausagecache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_cache_memtable.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/tablet_flat_executor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/tablet_flat_executed.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_boot_lease.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_boot_misc.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_comp.cpp
diff --git a/ydb/core/tablet_flat/CMakeLists.linux-aarch64.txt b/ydb/core/tablet_flat/CMakeLists.linux-aarch64.txt
index 6a78f839ed8d..efffc701df17 100644
--- a/ydb/core/tablet_flat/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tablet_flat/CMakeLists.linux-aarch64.txt
@@ -81,6 +81,30 @@ target_proto_messages(ydb-core-tablet_flat PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor.proto
 )
 target_sources(ydb-core-tablet_flat PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/flat_executor.pb.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_cxx_database.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_database.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_bootlogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_borrowlogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_compaction_logic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_gclogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_tx_env.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_txloglogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_iterator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_sausagecache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_stat_part.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_stat_table.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_part.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_observer.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_update_op.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_sausagecache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_cache_memtable.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/tablet_flat_executor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/tablet_flat_executed.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_boot_lease.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_boot_misc.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_comp.cpp
diff --git a/ydb/core/tablet_flat/CMakeLists.linux-x86_64.txt b/ydb/core/tablet_flat/CMakeLists.linux-x86_64.txt
index 6a78f839ed8d..efffc701df17 100644
--- a/ydb/core/tablet_flat/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tablet_flat/CMakeLists.linux-x86_64.txt
@@ -81,6 +81,30 @@ target_proto_messages(ydb-core-tablet_flat PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor.proto
 )
 target_sources(ydb-core-tablet_flat PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/flat_executor.pb.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_cxx_database.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_database.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_bootlogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_borrowlogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_compaction_logic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_gclogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_tx_env.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_txloglogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_iterator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_sausagecache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_stat_part.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_stat_table.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_part.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_observer.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_update_op.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_sausagecache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_cache_memtable.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/tablet_flat_executor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/tablet_flat_executed.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_boot_lease.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_boot_misc.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_comp.cpp
diff --git a/ydb/core/tablet_flat/CMakeLists.windows-x86_64.txt b/ydb/core/tablet_flat/CMakeLists.windows-x86_64.txt
index 1ec29730846e..0bc8fa0292c2 100644
--- a/ydb/core/tablet_flat/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tablet_flat/CMakeLists.windows-x86_64.txt
@@ -80,6 +80,30 @@ target_proto_messages(ydb-core-tablet_flat PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor.proto
 )
 target_sources(ydb-core-tablet_flat PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/flat_executor.pb.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_cxx_database.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_database.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_bootlogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_borrowlogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_compaction_logic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_gclogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_tx_env.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_txloglogic.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_iterator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_sausagecache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_stat_part.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_stat_table.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_part.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_observer.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_update_op.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_sausagecache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_cache_memtable.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/tablet_flat_executor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/tablet_flat_executed.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_boot_lease.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_boot_misc.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_comp.cpp
diff --git a/ydb/core/tablet_flat/benchmark/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/benchmark/CMakeLists.darwin-arm64.txt
index 631455d532aa..57f022776433 100644
--- a/ydb/core/tablet_flat/benchmark/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tablet_flat/benchmark/CMakeLists.darwin-arm64.txt
@@ -22,11 +22,10 @@ target_link_options(benchmark PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(benchmark PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/benchmark/b_charge.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/benchmark/b_part_index.cpp
 )
 add_test(
   NAME
@@ -40,6 +39,7 @@ set_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_property(
   TEST
diff --git a/ydb/core/tablet_flat/benchmark/CMakeLists.darwin-x86_64.txt b/ydb/core/tablet_flat/benchmark/CMakeLists.darwin-x86_64.txt
index fc10ba19f6b6..81245fe70c48 100644
--- a/ydb/core/tablet_flat/benchmark/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tablet_flat/benchmark/CMakeLists.darwin-x86_64.txt
@@ -23,11 +23,10 @@ target_link_options(benchmark PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(benchmark PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/benchmark/b_charge.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/benchmark/b_part_index.cpp
 )
 add_test(
   NAME
@@ -41,6 +40,7 @@ set_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_property(
   TEST
diff --git a/ydb/core/tablet_flat/benchmark/CMakeLists.linux-aarch64.txt b/ydb/core/tablet_flat/benchmark/CMakeLists.linux-aarch64.txt
index 84d07a5980d1..bd51b6083bf6 100644
--- a/ydb/core/tablet_flat/benchmark/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tablet_flat/benchmark/CMakeLists.linux-aarch64.txt
@@ -25,12 +25,10 @@ target_link_options(benchmark PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(benchmark PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/benchmark/b_charge.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/benchmark/b_part_index.cpp
 )
 add_test(
   NAME
@@ -44,6 +42,7 @@ set_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_property(
   TEST
diff --git a/ydb/core/tablet_flat/benchmark/CMakeLists.linux-x86_64.txt b/ydb/core/tablet_flat/benchmark/CMakeLists.linux-x86_64.txt
index 308e2ed89b2a..0662df500ae0 100644
--- a/ydb/core/tablet_flat/benchmark/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tablet_flat/benchmark/CMakeLists.linux-x86_64.txt
@@ -26,12 +26,10 @@ target_link_options(benchmark PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(benchmark PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/benchmark/b_charge.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/benchmark/b_part_index.cpp
 )
 add_test(
   NAME
@@ -45,6 +43,7 @@ set_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_property(
   TEST
diff --git a/ydb/core/tablet_flat/benchmark/CMakeLists.windows-x86_64.txt b/ydb/core/tablet_flat/benchmark/CMakeLists.windows-x86_64.txt
index da491eea7f30..a3ec94d5e528 100644
--- a/ydb/core/tablet_flat/benchmark/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tablet_flat/benchmark/CMakeLists.windows-x86_64.txt
@@ -21,6 +21,7 @@ target_link_libraries(benchmark PUBLIC
 )
 target_sources(benchmark PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/benchmark/b_charge.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/benchmark/b_part_index.cpp
 )
 add_test(
   NAME
@@ -34,6 +35,7 @@ set_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_property(
   TEST
diff --git a/ydb/core/tablet_flat/flat_database.cpp b/ydb/core/tablet_flat/flat_database.cpp
index 5a47f8c31d14..1d61ec26e2db 100644
--- a/ydb/core/tablet_flat/flat_database.cpp
+++ b/ydb/core/tablet_flat/flat_database.cpp
@@ -13,13 +13,30 @@
 #include 
 #include 
 #include 
+#include 
 
+namespace NKikimr {
+namespace NTable {
 
-#define MAX_REDO_BYTES_PER_COMMIT 268435456U // 256MB
+bool TDatabase::TChangeCounter::operator<(const TChangeCounter& rhs) const {
+    if (Serial && rhs.Serial) {
+        // When both counters have serial they can be compared directly
+        return Serial < rhs.Serial;
+    }
 
+    if (Epoch == rhs.Epoch) {
+        // When this counter is (0, epoch) but rhs is (non-zero, epoch), it
+        // indicates rhs may have more changes. When serial is zero it means
+        // the current memtable is empty, but rhs epoch is the same, so it
+        // cannot have fewer changes.
+        return Serial < rhs.Serial;
+    }
 
-namespace NKikimr {
-namespace NTable {
+    // The one with the smaller epoch must have fewer changes. In the worst
+    // case that change may have been a flush (incrementing epoch and serial)
+    // and then compact (possibly resetting serial to zero).
+    return Epoch < rhs.Epoch;
+}
 
 TDatabase::TDatabase(TDatabaseImpl *databaseImpl) noexcept
     : DatabaseImpl(databaseImpl ? databaseImpl : new TDatabaseImpl(0, new TScheme, nullptr))
@@ -249,6 +266,12 @@ TSelectRowVersionResult TDatabase::SelectRowVersion(
     return Require(table)->SelectRowVersion(key, Env, readFlags, visible, observer);
 }
 
+TSizeEnv TDatabase::CreateSizeEnv()
+{
+    return TSizeEnv(Env);
+}
+
+
 void TDatabase::CalculateReadSize(TSizeEnv& env, ui32 table, TRawVals minKey, TRawVals maxKey,
                                   TTagsRef tags, ui64 flg, ui64 items, ui64 bytes,
                                   EDirection direction, TRowVersion snapshot)
@@ -500,7 +523,7 @@ void TDatabase::SetTableObserver(ui32 table, TIntrusivePtr ptr)
     Require(table)->SetTableObserver(std::move(ptr));
 }
 
-TDatabase::TChg TDatabase::Head(ui32 table) const noexcept
+TDatabase::TChangeCounter TDatabase::Head(ui32 table) const noexcept
 {
     if (table == Max()) {
         return { DatabaseImpl->Serial(), TEpoch::Max() };
@@ -645,18 +668,6 @@ size_t TDatabase::GetCommitRedoBytes() const
     return Redo->Bytes();
 }
 
-bool TDatabase::ValidateCommit(TString &err)
-{
-    if (*Redo && Redo->Bytes() > MAX_REDO_BYTES_PER_COMMIT) {
-        err = TStringBuilder()
-            << "Redo commit of " << Redo->Bytes()
-            << " bytes is more than the allowed limit";
-        return false;
-    }
-
-    return true;
-}
-
 bool TDatabase::HasChanges() const
 {
     Y_ABORT_UNLESS(Redo, "Transaction is not in progress");
@@ -844,3 +855,11 @@ void DebugDumpDb(const TDatabase &db) {
 }
 
 }}
+
+Y_DECLARE_OUT_SPEC(, NKikimr::NTable::TDatabase::TChangeCounter, stream, value) {
+    stream << "TChangeCounter{serial=";
+    stream << value.Serial;
+    stream << ", epoch=";
+    stream << value.Epoch;
+    stream << "}";
+}
diff --git a/ydb/core/tablet_flat/flat_database.h b/ydb/core/tablet_flat/flat_database.h
index e35f58fbd326..64980ac1a781 100644
--- a/ydb/core/tablet_flat/flat_database.h
+++ b/ydb/core/tablet_flat/flat_database.h
@@ -49,9 +49,37 @@ class TDatabase {
         TVector> OnPersistent;
     };
 
-    struct TChg {
-        ui64 Serial;
-        TEpoch Epoch;
+    struct TChangeCounter {
+        /**
+         * Monotonic change counter for a table or an entire database. Serial
+         * is incremented and persisted on each successful Commit() that has
+         * data changes (i.e. not empty). Note: this may or may not be zero
+         * when table has no changes, or when all changes have been compacted.
+         */
+        ui64 Serial = 0;
+
+        /**
+         * Monotonic epoch of a table's current memtable. This is incremented
+         * each time a memtable is flushed and a new one is started. The
+         * current memtable may or may not have additional changes.
+         */
+        TEpoch Epoch = TEpoch::Zero();
+
+        TChangeCounter() = default;
+
+        TChangeCounter(ui64 serial, TEpoch epoch)
+            : Serial(serial)
+            , Epoch(epoch)
+        {}
+
+        bool operator==(const TChangeCounter& rhs) const = default;
+        bool operator!=(const TChangeCounter& rhs) const = default;
+
+        /**
+         * Compares two change counters, such that when a < b then b either
+         * has more changes than a, or it's impossible to determine.
+         */
+        bool operator<(const TChangeCounter& rhs) const;
     };
 
     TDatabase(const TDatabase&) = delete;
@@ -60,14 +88,11 @@ class TDatabase {
 
     void SetTableObserver(ui32 table, TIntrusivePtr ptr) noexcept;
 
-    /* Returns durable monotonic change number for table or entire database
-        on default (table = Max()). Serial is incremented for each
-        successful Commit(). AHTUNG: Serial may go to the past in case of
-        migration to older db versions with (Evolution < 18). Thus do not
-        rely on durability until of kikimr stable 18-08.
+    /**
+     * Returns durable monotonic change counter for a table (or a database when
+     * table = Max() by default).
      */
-
-    TChg Head(ui32 table = Max()) const noexcept;
+    TChangeCounter Head(ui32 table = Max()) const noexcept;
 
     /*_ Call Next() before accessing each row including the 1st row. */
 
@@ -116,6 +141,7 @@ class TDatabase {
                         EDirection direction = EDirection::Forward,
                         TRowVersion snapshot = TRowVersion::Max());
 
+    TSizeEnv CreateSizeEnv();
     void CalculateReadSize(TSizeEnv& env, ui32 table, TRawVals minKey, TRawVals maxKey,
                         TTagsRef tags, ui64 readFlags, ui64 itemsLimit, ui64 bytesLimit,
                         EDirection direction = EDirection::Forward,
@@ -231,7 +257,6 @@ class TDatabase {
     void RollUpRemoveRowVersions(ui32 table, const TRowVersion& lower, const TRowVersion& upper);
 
     size_t GetCommitRedoBytes() const;
-    bool ValidateCommit(TString&);
 
     TCompactionStats GetCompactionStats(ui32 table) const;
 
diff --git a/ydb/core/tablet_flat/flat_dbase_sz_env.h b/ydb/core/tablet_flat/flat_dbase_sz_env.h
index 9a5d36538aab..a009ef52c66d 100644
--- a/ydb/core/tablet_flat/flat_dbase_sz_env.h
+++ b/ydb/core/tablet_flat/flat_dbase_sz_env.h
@@ -11,6 +11,11 @@ namespace NTable {
     struct TSizeEnv : public IPages {
         using TInfo = NTabletFlatExecutor::TPrivatePageCache::TInfo;
 
+        TSizeEnv(IPages* env)
+            : Env(env)
+        {
+        }
+
         TResult Locate(const TMemTable*, ui64, ui32) noexcept override
         {
             Y_ABORT("IPages::Locate(TMemTable*, ...) shouldn't be used here");
@@ -20,14 +25,29 @@ namespace NTable {
         {
             auto *partStore = CheckedCast(part);
 
-            return { true, Touch(partStore->Locate(lob, ref), ref) };
+            AddPageSize(partStore->Locate(lob, ref), ref);
+
+            return { true, nullptr };
         }
 
-        const TSharedData* TryGetPage(const TPart* part, TPageId page, TGroupId groupId) override
+        const TSharedData* TryGetPage(const TPart* part, TPageId pageId, TGroupId groupId) override
         {
             auto *partStore = CheckedCast(part);
 
-            return Touch(partStore->PageCollections.at(groupId.Index).Get(), page);
+            auto info = partStore->PageCollections.at(groupId.Index).Get();
+            auto type = EPage(info->PageCollection->Page(pageId).Type);
+            
+            switch (type) {
+                case EPage::Index:
+                case EPage::BTreeIndex:
+                    // need index pages to continue counting
+                    // do not count index
+                    // if these pages are not in memory, data won't be counted in precharge
+                    return Env->TryGetPage(part, pageId, groupId);
+                default:
+                    AddPageSize(partStore->PageCollections.at(groupId.Index).Get(), pageId);
+                    return nullptr;
+            }
         }
 
         ui64 GetSize() const {
@@ -35,17 +55,16 @@ namespace NTable {
         }
 
     private:
-        const TSharedData* Touch(TInfo *info, TPageId page) noexcept
+        void AddPageSize(TInfo *info, TPageId page) noexcept
         {
             if (Touched[info].insert(page).second) {
                 Pages++;
                 Bytes += info->PageCollection->Page(page).Size;
             }
-
-            return nullptr;
         }
 
     private:
+        IPages* Env;
         THashMap> Touched;
         ui64 Pages = 0;
         ui64 Bytes = 0;
diff --git a/ydb/core/tablet_flat/flat_exec_seat.h b/ydb/core/tablet_flat/flat_exec_seat.h
index 500b711fadbd..2eef8f0c59f6 100644
--- a/ydb/core/tablet_flat/flat_exec_seat.h
+++ b/ydb/core/tablet_flat/flat_exec_seat.h
@@ -35,7 +35,7 @@ namespace NTabletFlatExecutor {
         void Terminate(ETerminationReason reason, const TActorContext& ctx) noexcept;
 
         void StartEnqueuedSpan() noexcept {
-            WaitingSpan = NWilson::TSpan(TWilsonTablet::Tablet, Self->TxSpan.GetTraceId(), "Tablet.Transaction.Enqueued");
+            WaitingSpan = NWilson::TSpan(TWilsonTablet::TabletDetailed, Self->TxSpan.GetTraceId(), "Tablet.Transaction.Enqueued");
         }
 
         void FinishEnqueuedSpan() noexcept {
@@ -43,7 +43,7 @@ namespace NTabletFlatExecutor {
         }
 
         void CreatePendingSpan() noexcept {
-            WaitingSpan = NWilson::TSpan(TWilsonTablet::Tablet, Self->TxSpan.GetTraceId(), "Tablet.Transaction.Pending");
+            WaitingSpan = NWilson::TSpan(TWilsonTablet::TabletDetailed, Self->TxSpan.GetTraceId(), "Tablet.Transaction.Pending");
         }
 
         void FinishPendingSpan() noexcept {
diff --git a/ydb/core/tablet_flat/flat_executor.cpp b/ydb/core/tablet_flat/flat_executor.cpp
index 7e74e12d1898..fbc8e7f45c47 100644
--- a/ydb/core/tablet_flat/flat_executor.cpp
+++ b/ydb/core/tablet_flat/flat_executor.cpp
@@ -136,6 +136,7 @@ TExecutor::TExecutor(
     , CounterEventsInFlight(new TEvTabletCounters::TInFlightCookie)
     , Stats(new TExecutorStatsImpl())
     , LogFlushDelayOverrideUsec(-1, -1, 60*1000*1000)
+    , MaxCommitRedoMB(256, 1, 4096)
 {}
 
 TExecutor::~TExecutor() {
@@ -159,6 +160,7 @@ void TExecutor::Registered(TActorSystem *sys, const TActorId&)
     Memory = new TMemory(Logger.Get(), this, Emitter, Sprintf(" at tablet %" PRIu64, Owner->TabletID()));
     TString myTabletType = TTabletTypes::TypeToStr(Owner->TabletType());
     AppData()->Icb->RegisterSharedControl(LogFlushDelayOverrideUsec, myTabletType + "_LogFlushDelayOverrideUsec");
+    AppData()->Icb->RegisterSharedControl(MaxCommitRedoMB, "TabletControls.MaxCommitRedoMB");
 
     // instantiate alert counters so even never reported alerts are created
     GetServiceCounters(AppData()->Counters, "tablets")->GetCounter("alerts_pending_nodata", true);
@@ -1708,12 +1710,17 @@ void TExecutor::ExecuteTransaction(TAutoPtr seat, const TActorContext &ct
     }
 
     bool failed = false;
-    TString failureReason;
-    if (done && (failed = !Database->ValidateCommit(failureReason))) {
-        if (auto logl = Logger->Log(ELnLev::Crit)) {
-            logl
-                << NFmt::Do(*this) << " " << NFmt::Do(*seat)
-                << " fatal commit failure: " << failureReason;
+    if (done) {
+        ui64 commitRedoBytes = Database->GetCommitRedoBytes();
+        ui64 maxCommitRedoBytes = ui64(MaxCommitRedoMB) << 20; // MB to bytes
+        if (commitRedoBytes > maxCommitRedoBytes) {
+            if (auto logl = Logger->Log(ELnLev::Crit)) {
+                logl
+                    << NFmt::Do(*this) << " " << NFmt::Do(*seat)
+                    << " fatal commit failure: Redo commit of " << commitRedoBytes
+                    << " bytes is more than the allowed limit";
+            }
+            failed = true;
         }
     }
 
@@ -4234,7 +4241,7 @@ TString TExecutor::CheckBorrowConsistency() {
 
 TTransactionWaitPad::TTransactionWaitPad(THolder seat)
     : Seat(std::move(seat))
-    , WaitingSpan(NWilson::TSpan(TWilsonTablet::Tablet, Seat->GetTxTraceId(), "Tablet.Transaction.Wait"))
+    , WaitingSpan(NWilson::TSpan(TWilsonTablet::TabletDetailed, Seat->GetTxTraceId(), "Tablet.Transaction.Wait"))
 {}
 
 TTransactionWaitPad::~TTransactionWaitPad()
@@ -4314,7 +4321,7 @@ ui64 TExecutor::BeginCompaction(THolder params)
 
     comp->Epoch = snapshot->Subset->Epoch(); /* narrows requested to actual */
     comp->Layout.Final = comp->Params->IsFinal;
-    comp->Layout.WriteBTreeIndex = AppData()->FeatureFlags.GetEnableLocalDBBtreeIndex();
+    comp->Layout.WriteBTreeIndex = false; // will be in 24-2: AppData()->FeatureFlags.GetEnableLocalDBBtreeIndex();
     comp->Writer.StickyFlatIndex = !comp->Layout.WriteBTreeIndex;
     comp->Layout.MaxRows = snapshot->Subset->MaxRows();
     comp->Layout.ByKeyFilter = tableInfo->ByKeyFilter;
diff --git a/ydb/core/tablet_flat/flat_executor.h b/ydb/core/tablet_flat/flat_executor.h
index a8feffc9ddad..47c0ede8b1e7 100644
--- a/ydb/core/tablet_flat/flat_executor.h
+++ b/ydb/core/tablet_flat/flat_executor.h
@@ -483,6 +483,7 @@ class TExecutor
     TActorContext OwnerCtx() const;
 
     TControlWrapper LogFlushDelayOverrideUsec;
+    TControlWrapper MaxCommitRedoMB;
 
     ui64 Stamp() const noexcept;
     void Registered(TActorSystem*, const TActorId&) override;
diff --git a/ydb/core/tablet_flat/flat_executor_ut.cpp b/ydb/core/tablet_flat/flat_executor_ut.cpp
index 18d8399728bf..6ea9fd055dda 100644
--- a/ydb/core/tablet_flat/flat_executor_ut.cpp
+++ b/ydb/core/tablet_flat/flat_executor_ut.cpp
@@ -1,3 +1,4 @@
+#include "flat_dbase_sz_env.h"
 #include "flat_executor_ut_common.h"
 
 namespace NKikimr {
@@ -4979,6 +4980,41 @@ Y_UNIT_TEST_SUITE(TFlatTableSnapshotWithCommits) {
 
 Y_UNIT_TEST_SUITE(TFlatTableExecutorIndexLoading) {
 
+    struct TTxCalculateReadSize : public ITransaction {
+        ui32 Attempt = 0;
+        TVector& ReadSizes;
+        ui64 MinKey, MaxKey;
+        
+        TTxCalculateReadSize(TVector& readSizes, ui64 minKey, ui64 maxKey)
+            : ReadSizes(readSizes)
+            , MinKey(minKey)
+            , MaxKey(maxKey)
+        {
+            ReadSizes.clear();
+        }
+
+
+        bool Execute(TTransactionContext &txc, const TActorContext &) override
+        {
+            UNIT_ASSERT_LE(++Attempt, 10);
+
+            const auto minKey = NScheme::TInt64::TInstance(MinKey);
+            const auto maxKey = NScheme::TInt64::TInstance(MaxKey);
+            const TVector tags{ { TRowsModel::ColumnKeyId, TRowsModel::ColumnValueId } };
+
+            auto sizeEnv = txc.DB.CreateSizeEnv();
+            txc.DB.CalculateReadSize(sizeEnv, TRowsModel::TableId, { minKey }, { maxKey }, tags, 0, 0, 0);
+            ReadSizes.push_back(sizeEnv.GetSize());
+
+            return txc.DB.Precharge(TRowsModel::TableId,  { minKey }, { maxKey }, tags, 0, 0, 0);
+        }
+
+        void Complete(const TActorContext &ctx) override
+        {
+            ctx.Send(ctx.SelfID, new NFake::TEvReturn);
+        }
+    };
+
     struct TTxPrechargeAndSeek : public ITransaction {
         ui32 Attempt = 0;
         bool Pinned = false;
@@ -5020,6 +5056,43 @@ Y_UNIT_TEST_SUITE(TFlatTableExecutorIndexLoading) {
         }
     };
 
+    void ZeroSharedCache(TMyEnvBase &env) {
+        env.Env.GetMemObserver()->NotifyStat({1, 1, 1});
+        TDispatchOptions options;
+        options.FinalEvents.push_back(TDispatchOptions::TFinalEventCondition(NSharedCache::EvMem, 1));
+        env->DispatchEvents(options);
+    }
+
+    Y_UNIT_TEST(CalculateReadSize_FlatIndex) {
+        TMyEnvBase env;
+        TRowsModel rows;
+        const ui32 rowsCount = 1024;
+
+        env.FireTablet(env.Edge, env.Tablet, [&env](const TActorId &tablet, TTabletStorageInfo *info) {
+            return new TTestFlatTablet(env.Edge, tablet, info);
+        });
+        env.WaitForWakeUp();
+        ZeroSharedCache(env);
+
+        env.SendSync(rows.MakeScheme(new TCompactionPolicy(), false));
+
+        env.SendSync(rows.MakeRows(rowsCount, 10*1024));
+        
+        env.SendSync(new NFake::TEvCompact(TRowsModel::TableId));
+        env.WaitFor();
+
+        TVector sizes;
+        
+        env.SendSync(new NFake::TEvExecute{ new TTxCalculateReadSize(sizes, 0, 1) });
+        UNIT_ASSERT_VALUES_EQUAL(sizes, (TVector{20566, 20566}));
+
+        env.SendSync(new NFake::TEvExecute{ new TTxCalculateReadSize(sizes, 100, 200) });
+        UNIT_ASSERT_VALUES_EQUAL(sizes, (TVector{1048866, 1048866}));
+
+        env.SendSync(new NFake::TEvExecute{ new TTxCalculateReadSize(sizes, 300, 700) });
+        UNIT_ASSERT_VALUES_EQUAL(sizes, (TVector{4133766, 4133766}));
+    }
+
     Y_UNIT_TEST(TestPrechargeAndSeek) {
         TMyEnvBase env;
         TRowsModel rows;
@@ -5491,7 +5564,7 @@ Y_UNIT_TEST_SUITE(TFlatTableExecutorBTreeIndex) {
         UNIT_ASSERT_VALUES_EQUAL(failedAttempts, 288);
     }
 
-    Y_UNIT_TEST(UseBtreeIndex_True) {
+    Y_UNIT_TEST(UseBtreeIndex_True) { // forcibly disabled in 24-1, uses FlatIndex
         TMyEnvBase env;
         TRowsModel rows;
 
@@ -5512,8 +5585,8 @@ Y_UNIT_TEST_SUITE(TFlatTableExecutorBTreeIndex) {
         env.SendSync(new NFake::TEvCompact(TRowsModel::TableId));
         env.WaitFor();
 
-        // all pages are always kept in shared cache (except flat index)
-        UNIT_ASSERT_VALUES_EQUAL(counters->ActivePages->Val(), 334);
+        // all pages are always kept in shared cache
+        UNIT_ASSERT_VALUES_EQUAL(counters->ActivePages->Val(), 290);
 
         env.SendSync(new NFake::TEvExecute{ new TTxFullScan(readRows, failedAttempts) });
         UNIT_ASSERT_VALUES_EQUAL(readRows, 1000);
@@ -5526,96 +5599,9 @@ Y_UNIT_TEST_SUITE(TFlatTableExecutorBTreeIndex) {
         // after restart we have no pages in private cache
         env.SendSync(new NFake::TEvExecute{ new TTxFullScan(readRows, failedAttempts) }, true);
         UNIT_ASSERT_VALUES_EQUAL(readRows, 1000);
-        UNIT_ASSERT_VALUES_EQUAL(failedAttempts, 332);
-    }
-
-    Y_UNIT_TEST(UseBtreeIndex_True_TurnOff) {
-        TMyEnvBase env;
-        TRowsModel rows;
-
-        auto &appData = env->GetAppData();
-        appData.FeatureFlags.SetEnableLocalDBBtreeIndex(true);
-        auto counters = MakeIntrusive(env->GetDynamicCounters());
-        int readRows = 0, failedAttempts = 0;
-
-        env.FireDummyTablet(ui32(NFake::TDummy::EFlg::Comp));
-
-        auto policy = MakeIntrusive();
-        policy->MinBTreeIndexNodeSize = 128;
-        env.SendSync(rows.MakeScheme(std::move(policy)));
-
-        env.SendSync(rows.VersionTo(TRowVersion(1, 10)).RowTo(0).MakeRows(1000, 950));
-        env.SendSync(rows.VersionTo(TRowVersion(2, 20)).RowTo(0).MakeRows(1000, 950));
-        
-        env.SendSync(new NFake::TEvCompact(TRowsModel::TableId));
-        env.WaitFor();
-
-        // all pages are always kept in shared cache (except flat index)
-        UNIT_ASSERT_VALUES_EQUAL(counters->ActivePages->Val(), 334);
-
-        env.SendSync(new NFake::TEvExecute{ new TTxFullScan(readRows, failedAttempts) });
-        UNIT_ASSERT_VALUES_EQUAL(readRows, 1000);
-        UNIT_ASSERT_VALUES_EQUAL(failedAttempts, 0);
-
-        // restart tablet, turn off setting
-        env.SendSync(new TEvents::TEvPoison, false, true);
-        appData.FeatureFlags.SetEnableLocalDBBtreeIndex(false);
-        env.FireDummyTablet(ui32(NFake::TDummy::EFlg::Comp));
-
-        // after restart we have no pages in private cache
-        // but use only flat index
-        env.SendSync(new NFake::TEvExecute{ new TTxFullScan(readRows, failedAttempts) }, true);
-        UNIT_ASSERT_VALUES_EQUAL(readRows, 1000);
         UNIT_ASSERT_VALUES_EQUAL(failedAttempts, 288);
     }
 
-    Y_UNIT_TEST(UseBtreeIndex_True_Generations) {
-        TMyEnvBase env;
-        TRowsModel rows;
-
-        auto &appData = env->GetAppData();
-        appData.FeatureFlags.SetEnableLocalDBBtreeIndex(true);
-        auto counters = MakeIntrusive(env->GetDynamicCounters());
-        int readRows = 0, failedAttempts = 0;
-
-        env.FireDummyTablet(ui32(NFake::TDummy::EFlg::Comp));
-
-        auto policy = MakeIntrusive();
-        policy->MinBTreeIndexNodeSize = 128;
-        policy->Generations.push_back({100 * 1024, 2, 2, 200 * 1024, NLocalDb::LegacyQueueIdToTaskName(1), false});
-        for (auto& gen : policy->Generations) {
-            gen.ExtraCompactionPercent = 0;
-            gen.ExtraCompactionMinSize = 0;
-            gen.ExtraCompactionExpPercent = 0;
-            gen.ExtraCompactionExpMaxSize = 0;
-            gen.UpliftPartSize = 0;
-        }
-        env.SendSync(rows.MakeScheme(std::move(policy)));
-
-        env.SendSync(rows.VersionTo(TRowVersion(1, 10)).RowTo(0).MakeRows(1000, 950));
-        env.SendSync(rows.VersionTo(TRowVersion(2, 20)).RowTo(0).MakeRows(1000, 950));
-
-        env.SendSync(new NFake::TEvCompact(TRowsModel::TableId));
-        env.WaitFor();
-
-        // gen 0 data pages are always kept in shared cache
-        // b-tree index pages are always kept in shared cache
-        UNIT_ASSERT_VALUES_EQUAL(counters->ActivePages->Val(), 48);
-
-        env.SendSync(new NFake::TEvExecute{ new TTxFullScan(readRows, failedAttempts) });
-        UNIT_ASSERT_VALUES_EQUAL(readRows, 1000);
-        UNIT_ASSERT_VALUES_EQUAL(failedAttempts, 286);
-
-        // restart tablet
-        env.SendSync(new TEvents::TEvPoison, false, true);
-        env.FireDummyTablet(ui32(NFake::TDummy::EFlg::Comp));
-
-        // after restart we have no pages in private cache
-        env.SendSync(new NFake::TEvExecute{ new TTxFullScan(readRows, failedAttempts) }, true);
-        UNIT_ASSERT_VALUES_EQUAL(readRows, 1000);
-        UNIT_ASSERT_VALUES_EQUAL(failedAttempts, 332);
-    }
-
 }
 
 } // namespace NTabletFlatExecutor
diff --git a/ydb/core/tablet_flat/flat_part_loader.cpp b/ydb/core/tablet_flat/flat_part_loader.cpp
index 294e2be31516..127219f2ca53 100644
--- a/ydb/core/tablet_flat/flat_part_loader.cpp
+++ b/ydb/core/tablet_flat/flat_part_loader.cpp
@@ -78,7 +78,7 @@ void TLoader::StageParseMeta() noexcept
 
         BTreeGroupIndexes.clear();
         BTreeHistoricIndexes.clear();
-        if (AppData()->FeatureFlags.GetEnableLocalDBBtreeIndex()) {
+        if (false) { // will be in 24-2: AppData()->FeatureFlags.GetEnableLocalDBBtreeIndex()
             for (bool history : {false, true}) {
                 for (const auto &meta : history ? layout.GetBTreeHistoricIndexes() : layout.GetBTreeGroupIndexes()) {
                     NPage::TBtreeIndexMeta converted{{
diff --git a/ydb/core/tablet_flat/protos/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/protos/CMakeLists.darwin-arm64.txt
index a04498fa62cc..1e8fec728c50 100644
--- a/ydb/core/tablet_flat/protos/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tablet_flat/protos/CMakeLists.darwin-arm64.txt
@@ -43,6 +43,10 @@ target_proto_messages(core-tablet_flat-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/protos/flat_table_part.proto
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/protos/flat_table_shard.proto
 )
+target_sources(core-tablet_flat-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/protos/flat_table_part.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/protos/flat_table_shard.pb.h
+)
 target_proto_addincls(core-tablet_flat-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/tablet_flat/protos/CMakeLists.darwin-x86_64.txt b/ydb/core/tablet_flat/protos/CMakeLists.darwin-x86_64.txt
index a04498fa62cc..1e8fec728c50 100644
--- a/ydb/core/tablet_flat/protos/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tablet_flat/protos/CMakeLists.darwin-x86_64.txt
@@ -43,6 +43,10 @@ target_proto_messages(core-tablet_flat-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/protos/flat_table_part.proto
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/protos/flat_table_shard.proto
 )
+target_sources(core-tablet_flat-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/protos/flat_table_part.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/protos/flat_table_shard.pb.h
+)
 target_proto_addincls(core-tablet_flat-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/tablet_flat/protos/CMakeLists.linux-aarch64.txt b/ydb/core/tablet_flat/protos/CMakeLists.linux-aarch64.txt
index d9797a00bb79..70f2baa0edb3 100644
--- a/ydb/core/tablet_flat/protos/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tablet_flat/protos/CMakeLists.linux-aarch64.txt
@@ -44,6 +44,10 @@ target_proto_messages(core-tablet_flat-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/protos/flat_table_part.proto
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/protos/flat_table_shard.proto
 )
+target_sources(core-tablet_flat-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/protos/flat_table_part.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/protos/flat_table_shard.pb.h
+)
 target_proto_addincls(core-tablet_flat-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/tablet_flat/protos/CMakeLists.linux-x86_64.txt b/ydb/core/tablet_flat/protos/CMakeLists.linux-x86_64.txt
index d9797a00bb79..70f2baa0edb3 100644
--- a/ydb/core/tablet_flat/protos/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tablet_flat/protos/CMakeLists.linux-x86_64.txt
@@ -44,6 +44,10 @@ target_proto_messages(core-tablet_flat-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/protos/flat_table_part.proto
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/protos/flat_table_shard.proto
 )
+target_sources(core-tablet_flat-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/protos/flat_table_part.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/protos/flat_table_shard.pb.h
+)
 target_proto_addincls(core-tablet_flat-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/tablet_flat/protos/CMakeLists.windows-x86_64.txt b/ydb/core/tablet_flat/protos/CMakeLists.windows-x86_64.txt
index a04498fa62cc..1e8fec728c50 100644
--- a/ydb/core/tablet_flat/protos/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tablet_flat/protos/CMakeLists.windows-x86_64.txt
@@ -43,6 +43,10 @@ target_proto_messages(core-tablet_flat-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/protos/flat_table_part.proto
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/protos/flat_table_shard.proto
 )
+target_sources(core-tablet_flat-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/protos/flat_table_part.pb.h
+  ${CMAKE_BINARY_DIR}/ydb/core/tablet_flat/protos/flat_table_shard.pb.h
+)
 target_proto_addincls(core-tablet_flat-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/tablet_flat/tablet_flat_executor.h b/ydb/core/tablet_flat/tablet_flat_executor.h
index edd006ed266f..c099417b9d94 100644
--- a/ydb/core/tablet_flat/tablet_flat_executor.h
+++ b/ydb/core/tablet_flat/tablet_flat_executor.h
@@ -229,7 +229,7 @@ class TTransactionContext : public TTxMemoryProviderBase {
     }
 
     void StartExecutionSpan() noexcept {
-        TransactionExecutionSpan = NWilson::TSpan(TWilsonTablet::Tablet, TransactionSpan.GetTraceId(), "Tablet.Transaction.Execute");
+        TransactionExecutionSpan = NWilson::TSpan(TWilsonTablet::TabletDetailed, TransactionSpan.GetTraceId(), "Tablet.Transaction.Execute");
     }
 
     void FinishExecutionSpan() noexcept {
@@ -289,7 +289,7 @@ class ITransaction : TNonCopyable {
     { }
 
     ITransaction(NWilson::TTraceId &&traceId)
-        : TxSpan(NWilson::TSpan(TWilsonTablet::Tablet, std::move(traceId), "Tablet.Transaction"))
+        : TxSpan(NWilson::TSpan(TWilsonTablet::TabletBasic, std::move(traceId), "Tablet.Transaction"))
     { }
 
     virtual ~ITransaction() = default;
@@ -312,8 +312,10 @@ class ITransaction : TNonCopyable {
     }
 
     void SetupTxSpan(NWilson::TTraceId traceId) noexcept {
-        TxSpan = NWilson::TSpan(TWilsonTablet::Tablet, std::move(traceId), "Tablet.Transaction");
-        TxSpan.Attribute("Type", TypeName(*this));
+        TxSpan = NWilson::TSpan(TWilsonTablet::TabletBasic, std::move(traceId), "Tablet.Transaction");
+        if (TxSpan) {
+            TxSpan.Attribute("Type", TypeName(*this));
+        }
     }
 
 public:
diff --git a/ydb/core/tablet_flat/test/libs/exec/runner.h b/ydb/core/tablet_flat/test/libs/exec/runner.h
index d6fd55c042fd..fc51f16b7db2 100644
--- a/ydb/core/tablet_flat/test/libs/exec/runner.h
+++ b/ydb/core/tablet_flat/test/libs/exec/runner.h
@@ -46,7 +46,7 @@ namespace NFake {
             auto *types = NTable::NTest::DbgRegistry();
             auto *app = new TAppData(0, 0, 0, 0, { }, types, nullptr, nullptr, nullptr);
 
-            Env.Initialize({ app, nullptr, nullptr });
+            Env.Initialize({ app, nullptr, nullptr, {} });
             Env.SetDispatchTimeout(DEFAULT_DISPATCH_TIMEOUT);
             Env.SetLogPriority(NKikimrServices::FAKE_ENV, NActors::NLog::PRI_INFO);
 
diff --git a/ydb/core/tablet_flat/test/tool/perf/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/test/tool/perf/CMakeLists.darwin-arm64.txt
index ca9ec50ab5c4..4a42eed1141b 100644
--- a/ydb/core/tablet_flat/test/tool/perf/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tablet_flat/test/tool/perf/CMakeLists.darwin-arm64.txt
@@ -22,8 +22,6 @@ target_link_options(table-perf PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(table-perf PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/test/tool/perf/colons.cpp
diff --git a/ydb/core/tablet_flat/test/tool/perf/CMakeLists.darwin-x86_64.txt b/ydb/core/tablet_flat/test/tool/perf/CMakeLists.darwin-x86_64.txt
index 94089b8cd040..6b7e0bea3702 100644
--- a/ydb/core/tablet_flat/test/tool/perf/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tablet_flat/test/tool/perf/CMakeLists.darwin-x86_64.txt
@@ -23,8 +23,6 @@ target_link_options(table-perf PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(table-perf PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/test/tool/perf/colons.cpp
diff --git a/ydb/core/tablet_flat/test/tool/perf/CMakeLists.linux-aarch64.txt b/ydb/core/tablet_flat/test/tool/perf/CMakeLists.linux-aarch64.txt
index 1d1f6bd0b18b..377d62f9ced9 100644
--- a/ydb/core/tablet_flat/test/tool/perf/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tablet_flat/test/tool/perf/CMakeLists.linux-aarch64.txt
@@ -25,9 +25,6 @@ target_link_options(table-perf PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(table-perf PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/test/tool/perf/colons.cpp
diff --git a/ydb/core/tablet_flat/test/tool/perf/CMakeLists.linux-x86_64.txt b/ydb/core/tablet_flat/test/tool/perf/CMakeLists.linux-x86_64.txt
index c598b1424975..b66e3cc1b758 100644
--- a/ydb/core/tablet_flat/test/tool/perf/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tablet_flat/test/tool/perf/CMakeLists.linux-x86_64.txt
@@ -26,9 +26,6 @@ target_link_options(table-perf PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(table-perf PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/test/tool/perf/colons.cpp
diff --git a/ydb/core/tablet_flat/test/tool/surg/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/test/tool/surg/CMakeLists.darwin-arm64.txt
index 3c96dc149aa3..60973bbdca2d 100644
--- a/ydb/core/tablet_flat/test/tool/surg/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tablet_flat/test/tool/surg/CMakeLists.darwin-arm64.txt
@@ -20,8 +20,6 @@ target_link_options(surg PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(surg PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/test/tool/surg/main.cpp
diff --git a/ydb/core/tablet_flat/test/tool/surg/CMakeLists.darwin-x86_64.txt b/ydb/core/tablet_flat/test/tool/surg/CMakeLists.darwin-x86_64.txt
index ba6956d053d1..fde2c4ee737b 100644
--- a/ydb/core/tablet_flat/test/tool/surg/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tablet_flat/test/tool/surg/CMakeLists.darwin-x86_64.txt
@@ -21,8 +21,6 @@ target_link_options(surg PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(surg PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/test/tool/surg/main.cpp
diff --git a/ydb/core/tablet_flat/test/tool/surg/CMakeLists.linux-aarch64.txt b/ydb/core/tablet_flat/test/tool/surg/CMakeLists.linux-aarch64.txt
index e19ba1394b40..90d969c77f2f 100644
--- a/ydb/core/tablet_flat/test/tool/surg/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tablet_flat/test/tool/surg/CMakeLists.linux-aarch64.txt
@@ -23,9 +23,6 @@ target_link_options(surg PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(surg PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/test/tool/surg/main.cpp
diff --git a/ydb/core/tablet_flat/test/tool/surg/CMakeLists.linux-x86_64.txt b/ydb/core/tablet_flat/test/tool/surg/CMakeLists.linux-x86_64.txt
index d8c42e753075..b1df8bae321d 100644
--- a/ydb/core/tablet_flat/test/tool/surg/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tablet_flat/test/tool/surg/CMakeLists.linux-x86_64.txt
@@ -24,9 +24,6 @@ target_link_options(surg PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(surg PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/test/tool/surg/main.cpp
diff --git a/ydb/core/tablet_flat/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/ut/CMakeLists.darwin-arm64.txt
index 5eb16e5ba1f5..2e122027117d 100644
--- a/ydb/core/tablet_flat/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tablet_flat/ut/CMakeLists.darwin-arm64.txt
@@ -33,10 +33,10 @@ target_link_options(ydb-core-tablet_flat-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tablet_flat-ut PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db_helpers.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/datetime_ut.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/decimal_ut.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_cxx_database_ut.cpp
@@ -51,7 +51,8 @@ target_sources(ydb-core-tablet_flat-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_part_ut.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_handle_ut.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index_nodes.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index_iter_charge.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_self.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_iterator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_memtable.cpp
@@ -103,6 +104,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
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 5f7ccdb8dbfc..dabc022e235d 100644
--- a/ydb/core/tablet_flat/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tablet_flat/ut/CMakeLists.darwin-x86_64.txt
@@ -34,10 +34,10 @@ target_link_options(ydb-core-tablet_flat-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tablet_flat-ut PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db_helpers.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/datetime_ut.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/decimal_ut.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_cxx_database_ut.cpp
@@ -52,7 +52,8 @@ target_sources(ydb-core-tablet_flat-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_part_ut.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_handle_ut.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index_nodes.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index_iter_charge.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_self.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_iterator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_memtable.cpp
@@ -104,6 +105,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet_flat/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tablet_flat/ut/CMakeLists.linux-aarch64.txt
index 38753b3d83ef..7ba00d869f0a 100644
--- a/ydb/core/tablet_flat/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tablet_flat/ut/CMakeLists.linux-aarch64.txt
@@ -36,11 +36,10 @@ target_link_options(ydb-core-tablet_flat-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tablet_flat-ut PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db_helpers.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/datetime_ut.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/decimal_ut.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_cxx_database_ut.cpp
@@ -55,7 +54,8 @@ target_sources(ydb-core-tablet_flat-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_part_ut.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_handle_ut.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index_nodes.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index_iter_charge.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_self.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_iterator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_memtable.cpp
@@ -107,6 +107,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
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 922c5115c778..5179e1f91a40 100644
--- a/ydb/core/tablet_flat/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tablet_flat/ut/CMakeLists.linux-x86_64.txt
@@ -37,11 +37,10 @@ target_link_options(ydb-core-tablet_flat-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tablet_flat-ut PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db_helpers.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/datetime_ut.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/decimal_ut.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_cxx_database_ut.cpp
@@ -56,7 +55,8 @@ target_sources(ydb-core-tablet_flat-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_part_ut.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_handle_ut.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index_nodes.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index_iter_charge.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_self.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_iterator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_memtable.cpp
@@ -108,6 +108,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
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 2233ba3a10e6..41ef7b7e3f37 100644
--- a/ydb/core/tablet_flat/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tablet_flat/ut/CMakeLists.windows-x86_64.txt
@@ -31,6 +31,8 @@ target_link_libraries(ydb-core-tablet_flat-ut PUBLIC
   udf-service-exception_policy
 )
 target_sources(ydb-core-tablet_flat-ut PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db_helpers.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/datetime_ut.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/decimal_ut.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_cxx_database_ut.cpp
@@ -45,7 +47,8 @@ target_sources(ydb-core-tablet_flat-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_table_part_ut.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/flat_test_db.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/shared_handle_ut.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index_nodes.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_btree_index_iter_charge.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_self.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_iterator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut/ut_memtable.cpp
@@ -97,6 +100,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet_flat/ut_large/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/ut_large/CMakeLists.darwin-arm64.txt
index 92088277e997..a8d82f466835 100644
--- a/ydb/core/tablet_flat/ut_large/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tablet_flat/ut_large/CMakeLists.darwin-arm64.txt
@@ -26,8 +26,6 @@ target_link_options(ydb-core-tablet_flat-ut_large PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tablet_flat-ut_large PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_ut_large.cpp
@@ -58,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet_flat/ut_large/CMakeLists.darwin-x86_64.txt b/ydb/core/tablet_flat/ut_large/CMakeLists.darwin-x86_64.txt
index fcfc3639f5ee..aaf7575d9d7d 100644
--- a/ydb/core/tablet_flat/ut_large/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tablet_flat/ut_large/CMakeLists.darwin-x86_64.txt
@@ -27,8 +27,6 @@ target_link_options(ydb-core-tablet_flat-ut_large PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tablet_flat-ut_large PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_ut_large.cpp
@@ -59,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet_flat/ut_large/CMakeLists.linux-aarch64.txt b/ydb/core/tablet_flat/ut_large/CMakeLists.linux-aarch64.txt
index bac5c7dc9b52..8f9c4e9d13e6 100644
--- a/ydb/core/tablet_flat/ut_large/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tablet_flat/ut_large/CMakeLists.linux-aarch64.txt
@@ -29,9 +29,6 @@ target_link_options(ydb-core-tablet_flat-ut_large PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tablet_flat-ut_large PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_ut_large.cpp
@@ -62,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet_flat/ut_large/CMakeLists.linux-x86_64.txt b/ydb/core/tablet_flat/ut_large/CMakeLists.linux-x86_64.txt
index 878a674553cd..70e409d8d075 100644
--- a/ydb/core/tablet_flat/ut_large/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tablet_flat/ut_large/CMakeLists.linux-x86_64.txt
@@ -30,9 +30,6 @@ target_link_options(ydb-core-tablet_flat-ut_large PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tablet_flat-ut_large PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/flat_executor_ut_large.cpp
@@ -63,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet_flat/ut_large/CMakeLists.windows-x86_64.txt b/ydb/core/tablet_flat/ut_large/CMakeLists.windows-x86_64.txt
index 6756b3c633f5..b9266559d1a3 100644
--- a/ydb/core/tablet_flat/ut_large/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tablet_flat/ut_large/CMakeLists.windows-x86_64.txt
@@ -52,6 +52,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet_flat/ut_pg/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/ut_pg/CMakeLists.darwin-arm64.txt
index 300882289ada..41c9c38c1c39 100644
--- a/ydb/core/tablet_flat/ut_pg/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tablet_flat/ut_pg/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tablet_flat-ut_pg PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tablet_flat-ut_pg PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut_pg/flat_database_pg_ut.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet_flat/ut_pg/CMakeLists.darwin-x86_64.txt b/ydb/core/tablet_flat/ut_pg/CMakeLists.darwin-x86_64.txt
index 5c80d5a5fb72..c8afbd39d5ba 100644
--- a/ydb/core/tablet_flat/ut_pg/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tablet_flat/ut_pg/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tablet_flat-ut_pg PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tablet_flat-ut_pg PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut_pg/flat_database_pg_ut.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet_flat/ut_pg/CMakeLists.linux-aarch64.txt b/ydb/core/tablet_flat/ut_pg/CMakeLists.linux-aarch64.txt
index 5f5ea010ab45..2ce7f2d95c39 100644
--- a/ydb/core/tablet_flat/ut_pg/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tablet_flat/ut_pg/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tablet_flat-ut_pg PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tablet_flat-ut_pg PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut_pg/flat_database_pg_ut.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet_flat/ut_pg/CMakeLists.linux-x86_64.txt b/ydb/core/tablet_flat/ut_pg/CMakeLists.linux-x86_64.txt
index 1a1d324e73ab..1c4fb1cb1484 100644
--- a/ydb/core/tablet_flat/ut_pg/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tablet_flat/ut_pg/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tablet_flat-ut_pg PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tablet_flat-ut_pg PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/ut_pg/flat_database_pg_ut.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet_flat/ut_pg/CMakeLists.windows-x86_64.txt b/ydb/core/tablet_flat/ut_pg/CMakeLists.windows-x86_64.txt
index 9f55862ee2a3..71d71a147468 100644
--- a/ydb/core/tablet_flat/ut_pg/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tablet_flat/ut_pg/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tablet_flat/ut_util/CMakeLists.darwin-arm64.txt b/ydb/core/tablet_flat/ut_util/CMakeLists.darwin-arm64.txt
index 08c6d2e0f58f..cbcd351b4292 100644
--- a/ydb/core/tablet_flat/ut_util/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tablet_flat/ut_util/CMakeLists.darwin-arm64.txt
@@ -21,8 +21,6 @@ target_link_options(ydb-core-tablet_flat-ut_util PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tablet_flat-ut_util PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/util_pool_ut.cpp
@@ -53,6 +51,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
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 ef00170d4bf7..3c7498c6ef30 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
@@ -22,8 +22,6 @@ target_link_options(ydb-core-tablet_flat-ut_util PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tablet_flat-ut_util PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/util_pool_ut.cpp
@@ -54,6 +52,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
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 1db598c5ea4a..291d3ebcca45 100644
--- a/ydb/core/tablet_flat/ut_util/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tablet_flat/ut_util/CMakeLists.linux-aarch64.txt
@@ -24,9 +24,6 @@ target_link_options(ydb-core-tablet_flat-ut_util PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tablet_flat-ut_util PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/util_pool_ut.cpp
@@ -57,6 +54,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
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 71b81b4ee60f..06d58cbdbfa1 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
@@ -25,9 +25,6 @@ target_link_options(ydb-core-tablet_flat-ut_util PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tablet_flat-ut_util PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tablet_flat/util_pool_ut.cpp
@@ -58,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
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 3865b70295fb..2886f13aea50 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
@@ -47,6 +47,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/test_tablet/CMakeLists.darwin-arm64.txt b/ydb/core/test_tablet/CMakeLists.darwin-arm64.txt
index 202454e85c0e..f076915a3b89 100644
--- a/ydb/core/test_tablet/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/test_tablet/CMakeLists.darwin-arm64.txt
@@ -18,6 +18,15 @@ target_link_libraries(ydb-core-test_tablet PUBLIC
   ydb-core-util
 )
 target_sources(ydb-core-test_tablet PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/processor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/scheme.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/state_server_interface.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_shard_context.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_shard_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_tablet.h
   ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_impl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_delete.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_mon.cpp
diff --git a/ydb/core/test_tablet/CMakeLists.darwin-x86_64.txt b/ydb/core/test_tablet/CMakeLists.darwin-x86_64.txt
index 202454e85c0e..f076915a3b89 100644
--- a/ydb/core/test_tablet/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/test_tablet/CMakeLists.darwin-x86_64.txt
@@ -18,6 +18,15 @@ target_link_libraries(ydb-core-test_tablet PUBLIC
   ydb-core-util
 )
 target_sources(ydb-core-test_tablet PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/processor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/scheme.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/state_server_interface.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_shard_context.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_shard_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_tablet.h
   ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_impl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_delete.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_mon.cpp
diff --git a/ydb/core/test_tablet/CMakeLists.linux-aarch64.txt b/ydb/core/test_tablet/CMakeLists.linux-aarch64.txt
index ebf27ccc07b7..d35a064754d5 100644
--- a/ydb/core/test_tablet/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/test_tablet/CMakeLists.linux-aarch64.txt
@@ -19,6 +19,15 @@ target_link_libraries(ydb-core-test_tablet PUBLIC
   ydb-core-util
 )
 target_sources(ydb-core-test_tablet PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/processor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/scheme.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/state_server_interface.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_shard_context.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_shard_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_tablet.h
   ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_impl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_delete.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_mon.cpp
diff --git a/ydb/core/test_tablet/CMakeLists.linux-x86_64.txt b/ydb/core/test_tablet/CMakeLists.linux-x86_64.txt
index ebf27ccc07b7..d35a064754d5 100644
--- a/ydb/core/test_tablet/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/test_tablet/CMakeLists.linux-x86_64.txt
@@ -19,6 +19,15 @@ target_link_libraries(ydb-core-test_tablet PUBLIC
   ydb-core-util
 )
 target_sources(ydb-core-test_tablet PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/processor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/scheme.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/state_server_interface.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_shard_context.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_shard_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_tablet.h
   ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_impl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_delete.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_mon.cpp
diff --git a/ydb/core/test_tablet/CMakeLists.windows-x86_64.txt b/ydb/core/test_tablet/CMakeLists.windows-x86_64.txt
index 202454e85c0e..f076915a3b89 100644
--- a/ydb/core/test_tablet/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/test_tablet/CMakeLists.windows-x86_64.txt
@@ -18,6 +18,15 @@ target_link_libraries(ydb-core-test_tablet PUBLIC
   ydb-core-util
 )
 target_sources(ydb-core-test_tablet PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/events.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/processor.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/scheme.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/state_server_interface.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_shard_context.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_shard_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/test_tablet.h
   ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_impl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_delete.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/test_tablet/load_actor_mon.cpp
diff --git a/ydb/core/testlib/CMakeLists.darwin-arm64.txt b/ydb/core/testlib/CMakeLists.darwin-arm64.txt
index fa7ea6967877..887f4f370184 100644
--- a/ydb/core/testlib/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/testlib/CMakeLists.darwin-arm64.txt
@@ -18,6 +18,7 @@ target_compile_options(ydb-core-testlib PRIVATE
 target_link_libraries(ydb-core-testlib PUBLIC
   contrib-libs-cxxsupp
   yutil
+  version_definition
   library-actors-core
   library-actors-interconnect
   library-grpc-client
@@ -77,12 +78,13 @@ target_link_libraries(ydb-core-testlib PUBLIC
   library-mkql_proto-protos
   library-persqueue-topic_parser
   ydb-library-security
-  minikql-comp_nodes-llvm
+  minikql-comp_nodes-llvm14
   udf-service-exception_policy
   public-lib-base
   lib-deprecated-kicli
   cpp-client-ydb_driver
   client-ydb_persqueue_public-codecs
+  cpp-client-ydb_query
   cpp-client-ydb_table
   ydb-services-auth
   ydb-services-cms
@@ -103,6 +105,15 @@ target_link_libraries(ydb-core-testlib PUBLIC
   ydb-core-http_proxy
 )
 target_sources(ydb-core-testlib PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actor_helpers.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/fake_coordinator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/fake_scheme_shard.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/minikql_compile.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/mock_pq_metacache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tablet_helpers.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tenant_runtime.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/test_client.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tx_helpers.h
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actor_helpers.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/common_helper.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/cs_helper.cpp
diff --git a/ydb/core/testlib/CMakeLists.darwin-x86_64.txt b/ydb/core/testlib/CMakeLists.darwin-x86_64.txt
index fa7ea6967877..887f4f370184 100644
--- a/ydb/core/testlib/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/testlib/CMakeLists.darwin-x86_64.txt
@@ -18,6 +18,7 @@ target_compile_options(ydb-core-testlib PRIVATE
 target_link_libraries(ydb-core-testlib PUBLIC
   contrib-libs-cxxsupp
   yutil
+  version_definition
   library-actors-core
   library-actors-interconnect
   library-grpc-client
@@ -77,12 +78,13 @@ target_link_libraries(ydb-core-testlib PUBLIC
   library-mkql_proto-protos
   library-persqueue-topic_parser
   ydb-library-security
-  minikql-comp_nodes-llvm
+  minikql-comp_nodes-llvm14
   udf-service-exception_policy
   public-lib-base
   lib-deprecated-kicli
   cpp-client-ydb_driver
   client-ydb_persqueue_public-codecs
+  cpp-client-ydb_query
   cpp-client-ydb_table
   ydb-services-auth
   ydb-services-cms
@@ -103,6 +105,15 @@ target_link_libraries(ydb-core-testlib PUBLIC
   ydb-core-http_proxy
 )
 target_sources(ydb-core-testlib PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actor_helpers.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/fake_coordinator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/fake_scheme_shard.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/minikql_compile.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/mock_pq_metacache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tablet_helpers.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tenant_runtime.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/test_client.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tx_helpers.h
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actor_helpers.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/common_helper.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/cs_helper.cpp
diff --git a/ydb/core/testlib/CMakeLists.linux-aarch64.txt b/ydb/core/testlib/CMakeLists.linux-aarch64.txt
index 72c1af1e9901..0a6dcd6d400c 100644
--- a/ydb/core/testlib/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/testlib/CMakeLists.linux-aarch64.txt
@@ -19,6 +19,7 @@ target_link_libraries(ydb-core-testlib PUBLIC
   contrib-libs-linux-headers
   contrib-libs-cxxsupp
   yutil
+  version_definition
   library-actors-core
   library-actors-interconnect
   library-grpc-client
@@ -78,12 +79,13 @@ target_link_libraries(ydb-core-testlib PUBLIC
   library-mkql_proto-protos
   library-persqueue-topic_parser
   ydb-library-security
-  minikql-comp_nodes-llvm
+  minikql-comp_nodes-llvm14
   udf-service-exception_policy
   public-lib-base
   lib-deprecated-kicli
   cpp-client-ydb_driver
   client-ydb_persqueue_public-codecs
+  cpp-client-ydb_query
   cpp-client-ydb_table
   ydb-services-auth
   ydb-services-cms
@@ -104,6 +106,15 @@ target_link_libraries(ydb-core-testlib PUBLIC
   ydb-core-http_proxy
 )
 target_sources(ydb-core-testlib PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actor_helpers.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/fake_coordinator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/fake_scheme_shard.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/minikql_compile.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/mock_pq_metacache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tablet_helpers.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tenant_runtime.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/test_client.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tx_helpers.h
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actor_helpers.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/common_helper.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/cs_helper.cpp
diff --git a/ydb/core/testlib/CMakeLists.linux-x86_64.txt b/ydb/core/testlib/CMakeLists.linux-x86_64.txt
index 72c1af1e9901..0a6dcd6d400c 100644
--- a/ydb/core/testlib/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/testlib/CMakeLists.linux-x86_64.txt
@@ -19,6 +19,7 @@ target_link_libraries(ydb-core-testlib PUBLIC
   contrib-libs-linux-headers
   contrib-libs-cxxsupp
   yutil
+  version_definition
   library-actors-core
   library-actors-interconnect
   library-grpc-client
@@ -78,12 +79,13 @@ target_link_libraries(ydb-core-testlib PUBLIC
   library-mkql_proto-protos
   library-persqueue-topic_parser
   ydb-library-security
-  minikql-comp_nodes-llvm
+  minikql-comp_nodes-llvm14
   udf-service-exception_policy
   public-lib-base
   lib-deprecated-kicli
   cpp-client-ydb_driver
   client-ydb_persqueue_public-codecs
+  cpp-client-ydb_query
   cpp-client-ydb_table
   ydb-services-auth
   ydb-services-cms
@@ -104,6 +106,15 @@ target_link_libraries(ydb-core-testlib PUBLIC
   ydb-core-http_proxy
 )
 target_sources(ydb-core-testlib PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actor_helpers.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/fake_coordinator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/fake_scheme_shard.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/minikql_compile.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/mock_pq_metacache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tablet_helpers.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tenant_runtime.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/test_client.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tx_helpers.h
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actor_helpers.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/common_helper.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/cs_helper.cpp
diff --git a/ydb/core/testlib/CMakeLists.windows-x86_64.txt b/ydb/core/testlib/CMakeLists.windows-x86_64.txt
index fa7ea6967877..887f4f370184 100644
--- a/ydb/core/testlib/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/testlib/CMakeLists.windows-x86_64.txt
@@ -18,6 +18,7 @@ target_compile_options(ydb-core-testlib PRIVATE
 target_link_libraries(ydb-core-testlib PUBLIC
   contrib-libs-cxxsupp
   yutil
+  version_definition
   library-actors-core
   library-actors-interconnect
   library-grpc-client
@@ -77,12 +78,13 @@ target_link_libraries(ydb-core-testlib PUBLIC
   library-mkql_proto-protos
   library-persqueue-topic_parser
   ydb-library-security
-  minikql-comp_nodes-llvm
+  minikql-comp_nodes-llvm14
   udf-service-exception_policy
   public-lib-base
   lib-deprecated-kicli
   cpp-client-ydb_driver
   client-ydb_persqueue_public-codecs
+  cpp-client-ydb_query
   cpp-client-ydb_table
   ydb-services-auth
   ydb-services-cms
@@ -103,6 +105,15 @@ target_link_libraries(ydb-core-testlib PUBLIC
   ydb-core-http_proxy
 )
 target_sources(ydb-core-testlib PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actor_helpers.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/fake_coordinator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/fake_scheme_shard.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/minikql_compile.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/mock_pq_metacache.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tablet_helpers.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tenant_runtime.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/test_client.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/testlib/tx_helpers.h
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actor_helpers.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/common_helper.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/cs_helper.cpp
diff --git a/ydb/core/testlib/actors/CMakeLists.darwin-arm64.txt b/ydb/core/testlib/actors/CMakeLists.darwin-arm64.txt
index 652256b272aa..559ad8cb1896 100644
--- a/ydb/core/testlib/actors/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/testlib/actors/CMakeLists.darwin-arm64.txt
@@ -12,6 +12,7 @@ add_library(core-testlib-actors)
 target_link_libraries(core-testlib-actors PUBLIC
   contrib-libs-cxxsupp
   yutil
+  version_definition
   library-actors-testlib
   cpp-testing-unittest
   ydb-core-base
diff --git a/ydb/core/testlib/actors/CMakeLists.darwin-x86_64.txt b/ydb/core/testlib/actors/CMakeLists.darwin-x86_64.txt
index 652256b272aa..559ad8cb1896 100644
--- a/ydb/core/testlib/actors/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/testlib/actors/CMakeLists.darwin-x86_64.txt
@@ -12,6 +12,7 @@ add_library(core-testlib-actors)
 target_link_libraries(core-testlib-actors PUBLIC
   contrib-libs-cxxsupp
   yutil
+  version_definition
   library-actors-testlib
   cpp-testing-unittest
   ydb-core-base
diff --git a/ydb/core/testlib/actors/CMakeLists.linux-aarch64.txt b/ydb/core/testlib/actors/CMakeLists.linux-aarch64.txt
index 3aa61780092e..296b9c055c85 100644
--- a/ydb/core/testlib/actors/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/testlib/actors/CMakeLists.linux-aarch64.txt
@@ -13,6 +13,7 @@ target_link_libraries(core-testlib-actors PUBLIC
   contrib-libs-linux-headers
   contrib-libs-cxxsupp
   yutil
+  version_definition
   library-actors-testlib
   cpp-testing-unittest
   ydb-core-base
diff --git a/ydb/core/testlib/actors/CMakeLists.linux-x86_64.txt b/ydb/core/testlib/actors/CMakeLists.linux-x86_64.txt
index 3aa61780092e..296b9c055c85 100644
--- a/ydb/core/testlib/actors/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/testlib/actors/CMakeLists.linux-x86_64.txt
@@ -13,6 +13,7 @@ target_link_libraries(core-testlib-actors PUBLIC
   contrib-libs-linux-headers
   contrib-libs-cxxsupp
   yutil
+  version_definition
   library-actors-testlib
   cpp-testing-unittest
   ydb-core-base
diff --git a/ydb/core/testlib/actors/CMakeLists.windows-x86_64.txt b/ydb/core/testlib/actors/CMakeLists.windows-x86_64.txt
index 652256b272aa..559ad8cb1896 100644
--- a/ydb/core/testlib/actors/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/testlib/actors/CMakeLists.windows-x86_64.txt
@@ -12,6 +12,7 @@ add_library(core-testlib-actors)
 target_link_libraries(core-testlib-actors PUBLIC
   contrib-libs-cxxsupp
   yutil
+  version_definition
   library-actors-testlib
   cpp-testing-unittest
   ydb-core-base
diff --git a/ydb/core/testlib/actors/test_runtime.cpp b/ydb/core/testlib/actors/test_runtime.cpp
index 7a5dfb51cba7..4b09cda39ae8 100644
--- a/ydb/core/testlib/actors/test_runtime.cpp
+++ b/ydb/core/testlib/actors/test_runtime.cpp
@@ -4,6 +4,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 
@@ -153,6 +154,10 @@ namespace NActors {
             nodeAppData->S3ProxyResolverConfig = app0->S3ProxyResolverConfig;
             nodeAppData->EnableMvccSnapshotWithLegacyDomainRoot = app0->EnableMvccSnapshotWithLegacyDomainRoot;
             nodeAppData->IoContextFactory = app0->IoContextFactory;
+            if (nodeIndex < egg.Icb.size()) {
+                nodeAppData->Icb = std::move(egg.Icb[nodeIndex]);
+                nodeAppData->InFlightLimiterRegistry.Reset(new NKikimr::NGRpcService::TInFlightLimiterRegistry(nodeAppData->Icb));
+            }
             if (KeyConfigGenerator) {
                 nodeAppData->KeyConfig = KeyConfigGenerator(nodeIndex);
             } else {
@@ -164,12 +169,20 @@ namespace NActors {
             }
 
             if (NeedMonitoring && !SingleSysEnv) {
-                ui16 port = GetPortManager().GetPort();
-                node->Mon.Reset(new NActors::TSyncHttpMon({
-                    .Port = port,
-                    .Threads = 10,
-                    .Title = "KIKIMR monitoring"
-                }));
+                ui16 port = MonitoringPortOffset ? MonitoringPortOffset + nodeIndex : GetPortManager().GetPort();
+                if (MonitoringTypeAsync) {
+                    node->Mon.Reset(new NActors::TAsyncHttpMon({
+                        .Port = port,
+                        .Threads = 10,
+                        .Title = "KIKIMR monitoring"
+                    }));
+                } else {
+                    node->Mon.Reset(new NActors::TSyncHttpMon({
+                        .Port = port,
+                        .Threads = 10,
+                        .Title = "KIKIMR monitoring"
+                    }));
+                }
                 nodeAppData->Mon = node->Mon.Get();
                 node->Mon->RegisterCountersPage("counters", "Counters", node->DynamicCounters);
                 auto actorsMonPage = node->Mon->RegisterIndexPage("actors", "Actors");
@@ -181,7 +194,7 @@ namespace NActors {
 
             node->ActorSystem->Start();
             if (nodeAppData->Mon) {
-                nodeAppData->Mon->Start();
+                nodeAppData->Mon->Start(node->ActorSystem.Get());
             }
         }
 
diff --git a/ydb/core/testlib/actors/test_runtime.h b/ydb/core/testlib/actors/test_runtime.h
index e43e636a4bf9..0a4a348da9f7 100644
--- a/ydb/core/testlib/actors/test_runtime.h
+++ b/ydb/core/testlib/actors/test_runtime.h
@@ -4,6 +4,7 @@
 #include 
 #include 
 
+#include 
 #include 
 #include 
 #include 
@@ -46,6 +47,7 @@ namespace NActors {
             TAutoPtr App0;
             TAutoPtr Opaque;
             TKeyConfigGenerator KeyConfigGenerator;
+            std::vector> Icb;
         };
 
         TTestActorRuntime(THeSingleSystemEnv d);
diff --git a/ydb/core/testlib/actors/test_runtime_ut.cpp b/ydb/core/testlib/actors/test_runtime_ut.cpp
index b2c7ec58cfa8..d649df72fc89 100644
--- a/ydb/core/testlib/actors/test_runtime_ut.cpp
+++ b/ydb/core/testlib/actors/test_runtime_ut.cpp
@@ -12,7 +12,7 @@ Y_UNIT_TEST_SUITE(TActorTest) {
     TTestActorRuntime::TEgg MakeEgg()
     {
         return
-            { new TAppData(0, 0, 0, 0, { }, nullptr, nullptr, nullptr, nullptr), nullptr, nullptr };
+            { new TAppData(0, 0, 0, 0, { }, nullptr, nullptr, nullptr, nullptr), nullptr, nullptr, {} };
     }
 
     Y_UNIT_TEST(TestHandleEvent) {
diff --git a/ydb/core/testlib/actors/ut/CMakeLists.darwin-arm64.txt b/ydb/core/testlib/actors/ut/CMakeLists.darwin-arm64.txt
index e6c7dc04e6d7..84829fbffe28 100644
--- a/ydb/core/testlib/actors/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/testlib/actors/ut/CMakeLists.darwin-arm64.txt
@@ -24,8 +24,6 @@ target_link_options(ydb-core-testlib-actors-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-testlib-actors-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actors/test_runtime_ut.cpp
@@ -55,6 +53,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/testlib/actors/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/testlib/actors/ut/CMakeLists.darwin-x86_64.txt
index 73979023cf38..99766cf7b610 100644
--- a/ydb/core/testlib/actors/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/testlib/actors/ut/CMakeLists.darwin-x86_64.txt
@@ -25,8 +25,6 @@ target_link_options(ydb-core-testlib-actors-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-testlib-actors-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actors/test_runtime_ut.cpp
@@ -56,6 +54,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/testlib/actors/ut/CMakeLists.linux-aarch64.txt b/ydb/core/testlib/actors/ut/CMakeLists.linux-aarch64.txt
index 8501cf978da4..52bfd4f0b41a 100644
--- a/ydb/core/testlib/actors/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/testlib/actors/ut/CMakeLists.linux-aarch64.txt
@@ -27,9 +27,6 @@ target_link_options(ydb-core-testlib-actors-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-testlib-actors-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actors/test_runtime_ut.cpp
@@ -59,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/testlib/actors/ut/CMakeLists.linux-x86_64.txt b/ydb/core/testlib/actors/ut/CMakeLists.linux-x86_64.txt
index c692329fc31a..d74a45269c5e 100644
--- a/ydb/core/testlib/actors/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/testlib/actors/ut/CMakeLists.linux-x86_64.txt
@@ -28,9 +28,6 @@ target_link_options(ydb-core-testlib-actors-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-testlib-actors-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/actors/test_runtime_ut.cpp
@@ -60,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/testlib/actors/ut/CMakeLists.windows-x86_64.txt b/ydb/core/testlib/actors/ut/CMakeLists.windows-x86_64.txt
index e6ca409368fe..66ba0724e960 100644
--- a/ydb/core/testlib/actors/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/testlib/actors/ut/CMakeLists.windows-x86_64.txt
@@ -49,6 +49,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/testlib/actors/ya.make b/ydb/core/testlib/actors/ya.make
index fc27aa01c236..25f814605794 100644
--- a/ydb/core/testlib/actors/ya.make
+++ b/ydb/core/testlib/actors/ya.make
@@ -5,6 +5,7 @@ SRCS(
 )
 
 PEERDIR(
+    ydb/apps/version
     ydb/library/actors/testlib
     library/cpp/testing/unittest
     ydb/core/base
diff --git a/ydb/core/testlib/basics/CMakeLists.darwin-arm64.txt b/ydb/core/testlib/basics/CMakeLists.darwin-arm64.txt
index ef3ff3c707ea..098eae692918 100644
--- a/ydb/core/testlib/basics/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/testlib/basics/CMakeLists.darwin-arm64.txt
@@ -33,8 +33,11 @@ target_link_libraries(core-testlib-basics PUBLIC
   core-tx-columnshard
   core-tx-scheme_board
   ydb-core-util
-  minikql-invoke_builtins-llvm
+  minikql-invoke_builtins-llvm14
   udf-service-exception_policy
+  ydb-services-kesus
+  ydb-services-persqueue_cluster_discovery
+  ydb-services-ydb
 )
 target_sources(core-testlib-basics PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/basics/appdata.cpp
diff --git a/ydb/core/testlib/basics/CMakeLists.darwin-x86_64.txt b/ydb/core/testlib/basics/CMakeLists.darwin-x86_64.txt
index ef3ff3c707ea..098eae692918 100644
--- a/ydb/core/testlib/basics/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/testlib/basics/CMakeLists.darwin-x86_64.txt
@@ -33,8 +33,11 @@ target_link_libraries(core-testlib-basics PUBLIC
   core-tx-columnshard
   core-tx-scheme_board
   ydb-core-util
-  minikql-invoke_builtins-llvm
+  minikql-invoke_builtins-llvm14
   udf-service-exception_policy
+  ydb-services-kesus
+  ydb-services-persqueue_cluster_discovery
+  ydb-services-ydb
 )
 target_sources(core-testlib-basics PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/basics/appdata.cpp
diff --git a/ydb/core/testlib/basics/CMakeLists.linux-aarch64.txt b/ydb/core/testlib/basics/CMakeLists.linux-aarch64.txt
index 03e87b86e064..eea1fa51d23c 100644
--- a/ydb/core/testlib/basics/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/testlib/basics/CMakeLists.linux-aarch64.txt
@@ -34,8 +34,11 @@ target_link_libraries(core-testlib-basics PUBLIC
   core-tx-columnshard
   core-tx-scheme_board
   ydb-core-util
-  minikql-invoke_builtins-llvm
+  minikql-invoke_builtins-llvm14
   udf-service-exception_policy
+  ydb-services-kesus
+  ydb-services-persqueue_cluster_discovery
+  ydb-services-ydb
 )
 target_sources(core-testlib-basics PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/basics/appdata.cpp
diff --git a/ydb/core/testlib/basics/CMakeLists.linux-x86_64.txt b/ydb/core/testlib/basics/CMakeLists.linux-x86_64.txt
index 03e87b86e064..eea1fa51d23c 100644
--- a/ydb/core/testlib/basics/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/testlib/basics/CMakeLists.linux-x86_64.txt
@@ -34,8 +34,11 @@ target_link_libraries(core-testlib-basics PUBLIC
   core-tx-columnshard
   core-tx-scheme_board
   ydb-core-util
-  minikql-invoke_builtins-llvm
+  minikql-invoke_builtins-llvm14
   udf-service-exception_policy
+  ydb-services-kesus
+  ydb-services-persqueue_cluster_discovery
+  ydb-services-ydb
 )
 target_sources(core-testlib-basics PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/basics/appdata.cpp
diff --git a/ydb/core/testlib/basics/CMakeLists.windows-x86_64.txt b/ydb/core/testlib/basics/CMakeLists.windows-x86_64.txt
index ef3ff3c707ea..098eae692918 100644
--- a/ydb/core/testlib/basics/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/testlib/basics/CMakeLists.windows-x86_64.txt
@@ -33,8 +33,11 @@ target_link_libraries(core-testlib-basics PUBLIC
   core-tx-columnshard
   core-tx-scheme_board
   ydb-core-util
-  minikql-invoke_builtins-llvm
+  minikql-invoke_builtins-llvm14
   udf-service-exception_policy
+  ydb-services-kesus
+  ydb-services-persqueue_cluster_discovery
+  ydb-services-ydb
 )
 target_sources(core-testlib-basics PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/testlib/basics/appdata.cpp
diff --git a/ydb/core/testlib/basics/appdata.cpp b/ydb/core/testlib/basics/appdata.cpp
index e7b5363d8de0..130610c4721d 100644
--- a/ydb/core/testlib/basics/appdata.cpp
+++ b/ydb/core/testlib/basics/appdata.cpp
@@ -70,7 +70,7 @@ namespace NKikimr {
                         NKikimrProto::TKeyConfig();
         };
 
-        return { app, Mine.Release(), keyGenerator};
+        return { app, Mine.Release(), keyGenerator, std::move(Icb) };
     }
 
     void TAppPrepare::AddDomain(TDomainsInfo::TDomain* domain)
@@ -199,4 +199,11 @@ namespace NKikimr {
     {
         AwsCompatibilityConfig.SetAwsRegion(value);
     }
+
+    void TAppPrepare::InitIcb(ui32 numNodes)
+    {
+        for (ui32 i = 0; i < numNodes; ++i) {
+            Icb.emplace_back(new TControlBoard);
+        }
+    }
 }
diff --git a/ydb/core/testlib/basics/appdata.h b/ydb/core/testlib/basics/appdata.h
index a17e2b0ac4ff..2a0417ba68e1 100644
--- a/ydb/core/testlib/basics/appdata.h
+++ b/ydb/core/testlib/basics/appdata.h
@@ -81,6 +81,7 @@ namespace NKikimr {
         void SetEnablePqBilling(std::optional value);
         void SetEnableDbCounters(bool value);
         void SetAwsRegion(const TString& value);
+        void InitIcb(ui32 numNodes);
 
         TIntrusivePtr Channels;
         NKikimrBlobStorage::TNodeWardenServiceSet BSConf;
@@ -97,6 +98,8 @@ namespace NKikimr {
         NKikimrPQ::TPQConfig PQConfig;
         NKikimrConfig::TAwsCompatibilityConfig AwsCompatibilityConfig;
         NKikimrConfig::TS3ProxyResolverConfig S3ProxyResolverConfig;
+        NKikimrConfig::TImmediateControlsConfig ImmediateControlsConfig;
+        std::vector> Icb;
 
     private:
         TAutoPtr Mine;
diff --git a/ydb/core/testlib/basics/feature_flags.h b/ydb/core/testlib/basics/feature_flags.h
index 5e82db9e8f28..fa9b86f1abca 100644
--- a/ydb/core/testlib/basics/feature_flags.h
+++ b/ydb/core/testlib/basics/feature_flags.h
@@ -58,6 +58,7 @@ class TTestFeatureFlagsHolder {
     FEATURE_FLAG_SETTER(EnableAccessServiceBulkAuthorization)
     FEATURE_FLAG_SETTER(EnableAddColumsWithDefaults)
     FEATURE_FLAG_SETTER(EnableReplaceIfExistsForExternalEntities)
+    FEATURE_FLAG_SETTER(EnableCMSRequestPriorities)
 
     #undef FEATURE_FLAG_SETTER
 };
diff --git a/ydb/core/testlib/basics/helpers.h b/ydb/core/testlib/basics/helpers.h
index 96c9197e61b6..d2d28f36f1f8 100644
--- a/ydb/core/testlib/basics/helpers.h
+++ b/ydb/core/testlib/basics/helpers.h
@@ -54,6 +54,8 @@ namespace NFake {
     void SetupSchemeCache(TTestActorRuntime& runtime, ui32 nodeIndex, const TString& root);
     void SetupQuoterService(TTestActorRuntime& runtime, ui32 nodeIndex);
     void SetupSysViewService(TTestActorRuntime& runtime, ui32 nodeIndex);
+    void SetupIcb(TTestActorRuntime& runtime, ui32 nodeIndex, const NKikimrConfig::TImmediateControlsConfig& config,
+            const TIntrusivePtr& icb);
 
     // StateStorage, NodeWarden, TabletResolver, ResourceBroker, SharedPageCache
     void SetupBasicServices(TTestActorRuntime &runtime, TAppPrepare &app, bool mockDisk = false,
diff --git a/ydb/core/testlib/basics/services.cpp b/ydb/core/testlib/basics/services.cpp
index 560ca56f68c0..75a4532df2e8 100644
--- a/ydb/core/testlib/basics/services.cpp
+++ b/ydb/core/testlib/basics/services.cpp
@@ -9,6 +9,8 @@
 #include 
 #include 
 #include 
+#include 
+#include 
 #include 
 #include 
 #include 
@@ -40,6 +42,20 @@ namespace NPDisk {
     extern const ui64 YdbDefaultPDiskSequence = 0x7e5700007e570000;
 }
 
+    void SetupIcb(TTestActorRuntime& runtime, ui32 nodeIndex, const NKikimrConfig::TImmediateControlsConfig& config,
+            const TIntrusivePtr& icb)
+    {
+        runtime.AddLocalService(MakeIcbId(runtime.GetNodeId(nodeIndex)),
+            TActorSetupCmd(CreateImmediateControlActor(icb, runtime.GetDynamicCounters(nodeIndex)),
+                    TMailboxType::ReadAsFilled, 0),
+            nodeIndex);
+
+        runtime.AddLocalService(TActorId{},
+            TActorSetupCmd(NConsole::CreateImmediateControlsConfigurator(icb, config),
+                    TMailboxType::ReadAsFilled, 0),
+            nodeIndex);
+    }
+
     void SetupBSNodeWarden(TTestActorRuntime& runtime, ui32 nodeIndex, TIntrusivePtr nodeWardenConfig)
     {
         runtime.AddLocalService(MakeBlobStorageNodeWardenID(runtime.GetNodeId(nodeIndex)),
@@ -337,12 +353,17 @@ namespace NPDisk {
             app.AddHive(0, 0);
         }
 
+        while (app.Icb.size() < runtime.GetNodeCount()) {
+            app.Icb.emplace_back(new TControlBoard);
+        }
+
         for (ui32 nodeIndex = 0; nodeIndex < runtime.GetNodeCount(); ++nodeIndex) {
             SetupStateStorageGroups(runtime, nodeIndex, app);
             NKikimrProto::TKeyConfig keyConfig;
             if (const auto it = app.Keys.find(nodeIndex); it != app.Keys.end()) {
                 keyConfig = it->second;
             }
+            SetupIcb(runtime, nodeIndex, app.ImmediateControlsConfig, app.Icb[nodeIndex]);
             SetupBSNodeWarden(runtime, nodeIndex, disk.MakeWardenConf(*app.Domains, keyConfig));
 
             SetupTabletResolver(runtime, nodeIndex);
diff --git a/ydb/core/testlib/common_helper.cpp b/ydb/core/testlib/common_helper.cpp
index 26841ce1af6b..d5267342d540 100644
--- a/ydb/core/testlib/common_helper.cpp
+++ b/ydb/core/testlib/common_helper.cpp
@@ -32,7 +32,7 @@ TLoggerInit::TLoggerInit(NKqp::TKikimrRunner& kikimr)
 
 void TLoggerInit::Initialize() {
     for (auto&& i : Services) {
-        for (auto&& s : i) {
+        for (auto&& s : i.second) {
             Runtime->SetLogPriority(s, Priority);
         }
     }
@@ -60,7 +60,9 @@ void THelper::StartScanRequest(const TString& request, const bool expectSuccess,
     });
     const TInstant start = TInstant::Now();
     while (!resultReady && start + TDuration::Seconds(60) > TInstant::Now()) {
+        Cerr << "START_SLEEP" << Endl;
         Server.GetRuntime()->SimulateSleep(TDuration::Seconds(1));
+        Cerr << "FINISHED_SLEEP" << Endl;
         if (scanIterator && !resultReady) {
             scanIterator->ReadNext().Subscribe([&](NThreading::TFuture streamPartFuture) {
                 NYdb::NTable::TScanQueryPart streamPart = streamPartFuture.GetValueSync();
diff --git a/ydb/core/testlib/common_helper.h b/ydb/core/testlib/common_helper.h
index 0160f8e0e8a1..76b3eaf67938 100644
--- a/ydb/core/testlib/common_helper.h
+++ b/ydb/core/testlib/common_helper.h
@@ -16,10 +16,12 @@ class TLoggerInit {
 private:
     NActors::TTestActorRuntime* Runtime;
     NActors::NLog::EPriority Priority = NActors::NLog::EPriority::PRI_DEBUG;
-    std::vector> Services = {KqpServices, CSServices};
+    THashMap> Services;
 public:
     TLoggerInit(NActors::TTestActorRuntime* runtime)
         : Runtime(runtime) {
+        Services.emplace("KQP", KqpServices);
+        Services.emplace("CS", CSServices);
     }
     TLoggerInit(NActors::TTestActorRuntime& runtime)
         : Runtime(&runtime) {
@@ -29,12 +31,20 @@ class TLoggerInit {
     ~TLoggerInit() {
         Initialize();
     }
-    TLoggerInit& SetComponents(const std::vector services) {
-        Services = { services };
+    TLoggerInit& Clear() {
+        Services.clear();
         return *this;
     }
-    TLoggerInit& AddComponents(const std::vector services) {
-        Services.emplace_back(services);
+    TLoggerInit& SetComponents(const std::vector services, const TString& name) {
+        Services[name] = services;
+        return *this;
+    }
+    TLoggerInit& AddComponents(const std::vector services, const TString& name) {
+        AFL_VERIFY(Services.emplace(name, services).second);
+        return *this;
+    }
+    TLoggerInit& RemoveComponents(const TString& name) {
+        Services.erase(name);
         return *this;
     }
     TLoggerInit& SetPriority(const NActors::NLog::EPriority priority) {
diff --git a/ydb/core/testlib/cs_helper.cpp b/ydb/core/testlib/cs_helper.cpp
index 4853290f8637..65a1b1b87148 100644
--- a/ydb/core/testlib/cs_helper.cpp
+++ b/ydb/core/testlib/cs_helper.cpp
@@ -109,7 +109,7 @@ std::shared_ptr THelper::GetArrowSchema() const {
     std::vector> fields;
     fields.emplace_back(arrow::field("timestamp", arrow::timestamp(arrow::TimeUnit::TimeUnit::MICRO), false));
     fields.emplace_back(arrow::field("resource_id", arrow::utf8()));
-    fields.emplace_back(arrow::field("uid", arrow::utf8()));
+    fields.emplace_back(arrow::field("uid", arrow::utf8(), false));
     fields.emplace_back(arrow::field("level", arrow::int32()));
     fields.emplace_back(arrow::field("message", arrow::utf8()));
     if (GetWithJsonDocument()) {
@@ -183,9 +183,9 @@ TString THelper::GetTestTableSchema() const {
     TStringBuilder sb;
     sb << R"(Columns{ Name: "timestamp" Type : "Timestamp" NotNull : true })";
     sb << R"(Columns{ Name: "resource_id" Type : "Utf8" })";
-    sb << R"(Columns{ Name: "uid" Type : "Utf8" })";
+    sb << "Columns{ Name: \"uid\" Type : \"Utf8\" NotNull : true StorageId : \"" + OptionalStorageId + "\" }";
     sb << R"(Columns{ Name: "level" Type : "Int32" })";
-    sb << R"(Columns{ Name: "message" Type : "Utf8" })";
+    sb << "Columns{ Name: \"message\" Type : \"Utf8\" StorageId : \"" + OptionalStorageId + "\" }";
     if (GetWithJsonDocument()) {
         sb << R"(Columns{ Name: "json_payload" Type : "JsonDocument" })";
     }
@@ -425,11 +425,11 @@ std::shared_ptr TTableWithNullsHelper::TestArrowBatch(ui64,
         Y_ABORT_UNLESS(bResourceId.AppendNull().ok());
         Y_ABORT_UNLESS(bLevel.Append(i).ok());
         Y_ABORT_UNLESS(bBinaryStr.AppendNull().ok());
-        Y_ABORT_UNLESS(bJsonVal.Append(std::string(R"({"col1": "val1", "obj": {"obj_col2_int": 16}})")).ok());
+        Y_ABORT_UNLESS(bJsonVal.Append(std::string(R"({"col1": "val1", "col-abc": "val-abc", "obj": {"obj_col2_int": 16}})")).ok());
         Y_ABORT_UNLESS(bJsonDoc.AppendNull().ok());
     }
 
-    const auto maybeJsonDoc = std::string(R"({"col1": "val1", "obj": {"obj_col2_int": 16}})");
+    const auto maybeJsonDoc = std::string(R"({"col1": "val1", "col-abc": "val-abc", "obj": {"obj_col2_int": 16}})");
     for (size_t i = rowCount / 2 + 1; i <= rowCount; ++i) {
         Y_ABORT_UNLESS(bId.Append(i).ok());
         Y_ABORT_UNLESS(bResourceId.Append(std::to_string(i)).ok());
diff --git a/ydb/core/testlib/cs_helper.h b/ydb/core/testlib/cs_helper.h
index 8714eb0727d4..7a9e3dad1bf3 100644
--- a/ydb/core/testlib/cs_helper.h
+++ b/ydb/core/testlib/cs_helper.h
@@ -26,6 +26,7 @@ class THelper: public THelperSchemaless {
 
     std::shared_ptr GetArrowSchema() const;
     YDB_FLAG_ACCESSOR(WithJsonDocument, false);
+    YDB_ACCESSOR(TString, OptionalStorageId, "__MEMORY");
     TString ShardingMethod = "HASH_FUNCTION_CONSISTENCY_64";
     bool WithSomeNulls_ = false;
 protected:
diff --git a/ydb/core/testlib/tenant_runtime.cpp b/ydb/core/testlib/tenant_runtime.cpp
index 88ba8b75905c..32af1d96c422 100644
--- a/ydb/core/testlib/tenant_runtime.cpp
+++ b/ydb/core/testlib/tenant_runtime.cpp
@@ -820,6 +820,7 @@ void TTenantTestRuntime::Setup(bool createTenantPools)
     TAppPrepare app;
 
     app.FeatureFlags = Extension.GetFeatureFlags();
+    app.ImmediateControlsConfig = Extension.GetImmediateControlsConfig();
     app.ClearDomainsAndHive();
 
     ui32 planResolution = 500;
@@ -853,7 +854,9 @@ void TTenantTestRuntime::Setup(bool createTenantPools)
         app.AddHive(i, Config.HiveId);
     }
 
-    for (size_t i = 0; i< Config.Nodes.size(); ++i) {
+    app.InitIcb(Config.Nodes.size());
+
+    for (size_t i = 0; i < Config.Nodes.size(); ++i) {
         AddLocalService(NNodeWhiteboard::MakeNodeWhiteboardServiceId(GetNodeId(i)),
                         TActorSetupCmd(new TFakeNodeWhiteboardService, TMailboxType::Simple, 0), i);
     }
@@ -1034,7 +1037,12 @@ void TTenantTestRuntime::Setup(bool createTenantPools)
                 labels[label.GetName()] = label.GetValue();
             }
             labels.emplace("node_id", ToString(i));
-            auto aid = Register(CreateConfigsDispatcher(Extension, labels));
+            auto aid = Register(CreateConfigsDispatcher(
+                    NKikimr::NConsole::TConfigsDispatcherInitInfo {
+                        .InitialConfig = Extension,
+                        .Labels = labels,
+                    }
+                ));
             EnableScheduleForActor(aid, true);
             RegisterService(MakeConfigsDispatcherID(GetNodeId(0)), aid, 0);
         }
diff --git a/ydb/core/testlib/test_client.cpp b/ydb/core/testlib/test_client.cpp
index 58b5e29299b8..564b951f2bd6 100644
--- a/ydb/core/testlib/test_client.cpp
+++ b/ydb/core/testlib/test_client.cpp
@@ -45,9 +45,11 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
-#include 
+#include 
+#include 
 #include 
 #include 
 #include 
@@ -88,7 +90,6 @@
 #include 
 #include 
 #include 
-#include 
 
 #include 
 #include 
@@ -191,6 +192,8 @@ namespace Tests {
         app.SetAwsRegion(Settings->AwsRegion);
         app.CompactionConfig = Settings->CompactionConfig;
         app.FeatureFlags = Settings->FeatureFlags;
+        app.ImmediateControlsConfig = Settings->Controls;
+        app.InitIcb(StaticNodes() + DynamicNodes());
 
         Runtime = MakeHolder(StaticNodes() + DynamicNodes(), Settings->UseRealThreads);
 
@@ -227,7 +230,7 @@ namespace Tests {
 
         NKikimr::SetupChannelProfiles(app, Settings->Domain);
 
-        Runtime->SetupMonitoring();
+        Runtime->SetupMonitoring(Settings->MonitoringPortOffset, Settings->MonitoringTypeAsync);
         Runtime->SetLogBackend(Settings->LogBackend);
 
         Runtime->AddAppDataInit([this](ui32 nodeIdx, NKikimr::TAppData& appData) {
@@ -238,7 +241,12 @@ namespace Tests {
             appData.PQClusterDiscoveryConfig.MergeFrom(Settings->PQClusterDiscoveryConfig);
             appData.NetClassifierConfig.MergeFrom(Settings->NetClassifierConfig);
             appData.StreamingConfig.MergeFrom(Settings->AppConfig->GetGRpcConfig().GetStreamingConfig());
-            appData.EnforceUserTokenRequirement = Settings->AppConfig->GetDomainsConfig().GetSecurityConfig().GetEnforceUserTokenRequirement();
+            auto& securityConfig = Settings->AppConfig->GetDomainsConfig().GetSecurityConfig();
+            appData.EnforceUserTokenRequirement = securityConfig.GetEnforceUserTokenRequirement();
+            TVector administrationAllowedSIDs(securityConfig.GetAdministrationAllowedSIDs().begin(), securityConfig.GetAdministrationAllowedSIDs().end());
+            appData.AdministrationAllowedSIDs = std::move(administrationAllowedSIDs);
+            TVector registerDynamicNodeAllowedSIDs(securityConfig.GetRegisterDynamicNodeAllowedSIDs().cbegin(), securityConfig.GetRegisterDynamicNodeAllowedSIDs().cend());
+            appData.RegisterDynamicNodeAllowedSIDs = std::move(registerDynamicNodeAllowedSIDs);
             appData.DomainsConfig.MergeFrom(Settings->AppConfig->GetDomainsConfig());
             appData.ColumnShardConfig.MergeFrom(Settings->AppConfig->GetColumnShardConfig());
             appData.PersQueueGetReadSessionsInfoWorkerFactory = Settings->PersQueueGetReadSessionsInfoWorkerFactory.get();
@@ -273,14 +281,9 @@ namespace Tests {
         //
         for (ui32 nodeIdx = 0; nodeIdx < StaticNodes(); ++nodeIdx) {
             SetupDomainLocalService(nodeIdx);
-            SetupConfigurators(nodeIdx);
             SetupProxies(nodeIdx);
         }
 
-        for (ui32 nodeIdx = StaticNodes(); nodeIdx < StaticNodes() + DynamicNodes(); ++nodeIdx) {
-            SetupConfigurators(nodeIdx);
-        }
-
         CreateBootstrapTablets();
         SetupStorage();
     }
@@ -309,14 +312,19 @@ namespace Tests {
         grpcRequestProxies.reserve(proxyCount);
 
         auto& appData = Runtime->GetAppData();
+        NJaegerTracing::TSamplingThrottlingConfigurator tracingConfigurator(appData.TimeProvider, appData.RandomProvider);
 
         for (size_t i = 0; i < proxyCount; ++i) {
-            auto grpcRequestProxy = NGRpcService::CreateGRpcRequestProxy(*Settings->AppConfig, appData.Icb);
+            auto grpcRequestProxy = NGRpcService::CreateGRpcRequestProxy(*Settings->AppConfig, tracingConfigurator.GetControl());
             auto grpcRequestProxyId = system->Register(grpcRequestProxy, TMailboxType::ReadAsFilled);
             system->RegisterLocalService(NGRpcService::CreateGRpcRequestProxyId(), grpcRequestProxyId);
             grpcRequestProxies.push_back(grpcRequestProxyId);
         }
 
+        system->Register(
+            NConsole::CreateJaegerTracingConfigurator(std::move(tracingConfigurator), Settings->AppConfig->GetTracingConfig())
+        );
+
         auto grpcMon = system->Register(NGRpcService::CreateGrpcMonService(), TMailboxType::ReadAsFilled);
         system->RegisterLocalService(NGRpcService::GrpcMonServiceId(), grpcMon);
 
@@ -342,10 +350,6 @@ namespace Tests {
             system->Register(NGRpcService::CreateGrpcEndpointPublishActor(desc.Get()), TMailboxType::ReadAsFilled, appData.UserPoolId);
         }
 
-        if (!options.SslData.Empty()) {
-            grpcService->SetDynamicNodeAuthParams(NKikimr::GetDynamicNodeAuthorizationParams(Settings->AppConfig->GetClientCertificateAuthorization()));
-        }
-
         auto future = grpcService->Prepare(
             system,
             NMsgBusProxy::CreatePersQueueMetaCacheV2Id(),
@@ -378,16 +382,12 @@ namespace Tests {
         GRpcServer->AddService(new NGRpcService::TGRpcPQClusterDiscoveryService(system, counters, grpcRequestProxies[0]));
         GRpcServer->AddService(new NKesus::TKesusGRpcService(system, counters, grpcRequestProxies[0], true));
         GRpcServer->AddService(new NGRpcService::TGRpcCmsService(system, counters, grpcRequestProxies[0], true));
-        auto discoveryService = new NGRpcService::TGRpcDiscoveryService(system, counters, grpcRequestProxies[0], true);
-        if (!options.SslData.Empty()) {
-            discoveryService->SetDynamicNodeAuthParams(NKikimr::GetDynamicNodeAuthorizationParams(Settings->AppConfig->GetClientCertificateAuthorization()));
-        }
-        GRpcServer->AddService(discoveryService);
+        GRpcServer->AddService(new NGRpcService::TGRpcDiscoveryService(system, counters, grpcRequestProxies[0], true));
         GRpcServer->AddService(new NGRpcService::TGRpcYdbClickhouseInternalService(system, counters, appData.InFlightLimiterRegistry, grpcRequestProxies[0], true));
         GRpcServer->AddService(new NQuoter::TRateLimiterGRpcService(system, counters, grpcRequestProxies[0]));
         GRpcServer->AddService(new NGRpcService::TGRpcDataStreamsService(system, counters, grpcRequestProxies[0], true));
         GRpcServer->AddService(new NGRpcService::TGRpcMonitoringService(system, counters, grpcRequestProxies[0], true));
-        GRpcServer->AddService(new NGRpcService::TGRpcYdbQueryService(system, counters, grpcRequestProxies[0], true));
+        GRpcServer->AddService(new NGRpcService::TGRpcYdbQueryService(system, counters, grpcRequestProxies, true, 1));
         if (Settings->EnableYq) {
             GRpcServer->AddService(new NGRpcService::TGRpcFederatedQueryService(system, counters, grpcRequestProxies[0]));
             GRpcServer->AddService(new NGRpcService::TGRpcFqPrivateTaskService(system, counters, grpcRequestProxies[0]));
@@ -739,7 +739,10 @@ namespace Tests {
             if (!initial.HasImmediateControlsConfig()) {
                 initial.MutableImmediateControlsConfig()->CopyFrom(Settings->Controls);
             }
-            auto *dispatcher = NConsole::CreateConfigsDispatcher(initial, {});
+            auto *dispatcher = NConsole::CreateConfigsDispatcher(
+                    NKikimr::NConsole::TConfigsDispatcherInitInfo {
+                        .InitialConfig = initial,
+                    });
             auto aid = Runtime->Register(dispatcher, nodeIdx, appData.SystemPoolId, TMailboxType::Revolving, 0);
             Runtime->RegisterService(NConsole::MakeConfigsDispatcherID(Runtime->GetNodeId(nodeIdx)), aid, nodeIdx);
         }
@@ -808,7 +811,15 @@ namespace Tests {
                 TActorId ldapAuthProviderId = Runtime->Register(ldapAuthProvider, nodeIdx);
                 Runtime->RegisterService(MakeLdapAuthProviderID(), ldapAuthProviderId, nodeIdx);
             }
-            IActor* ticketParser = Settings->CreateTicketParser(Settings->AuthConfig);
+            TTicketParserSettings ticketParserSettings {
+                .AuthConfig = Settings->AuthConfig,
+                .CertificateAuthValues = {
+                    .ClientCertificateAuthorization = Settings->AppConfig->GetClientCertificateAuthorization(),
+                    .ServerCertificateFilePath = Settings->ServerCertFilePath,
+                    .Domain = Settings->AuthConfig.GetCertificateAuthenticationDomain()
+                }
+            };
+            IActor* ticketParser = Settings->CreateTicketParser(ticketParserSettings);
             TActorId ticketParserId = Runtime->Register(ticketParser, nodeIdx);
             Runtime->RegisterService(MakeTicketParserID(), ticketParserId, nodeIdx);
         }
diff --git a/ydb/core/testlib/test_client.h b/ydb/core/testlib/test_client.h
index cc8feb752abb..7556808c8a8c 100644
--- a/ydb/core/testlib/test_client.h
+++ b/ydb/core/testlib/test_client.h
@@ -24,6 +24,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -97,6 +98,8 @@ namespace Tests {
         ui16 Port;
         ui16 GrpcPort = 0;
         int GrpcMaxMessageSize = 0;  // 0 - default (4_MB), -1 - no limit
+        ui16 MonitoringPortOffset = 0;
+        bool MonitoringTypeAsync = false;
         NKikimrProto::TAuthConfig AuthConfig;
         NKikimrPQ::TPQConfig PQConfig;
         NKikimrPQ::TPQClusterDiscoveryConfig PQClusterDiscoveryConfig;
@@ -141,12 +144,14 @@ namespace Tests {
         NKqp::IKqpFederatedQuerySetupFactory::TPtr FederatedQuerySetupFactory = std::make_shared();
         NYql::ISecuredServiceAccountCredentialsFactory::TPtr CredentialsFactory;
         bool InitializeFederatedQuerySetupFactory = false;
+        TString ServerCertFilePath;
 
-        std::function CreateTicketParser = NKikimr::CreateTicketParser;
+        std::function CreateTicketParser = NKikimr::CreateTicketParser;
         std::shared_ptr GrpcServiceFactory;
 
         TServerSettings& SetGrpcPort(ui16 value) { GrpcPort = value; return *this; }
         TServerSettings& SetGrpcMaxMessageSize(int value) { GrpcMaxMessageSize = value; return *this; }
+        TServerSettings& SetMonitoringPortOffset(ui16 value, bool monitoringTypeAsync = false) { MonitoringPortOffset = value; MonitoringTypeAsync = monitoringTypeAsync; return *this; }
         TServerSettings& SetSupportsRedirect(bool value) { SupportsRedirect = value; return *this; }
         TServerSettings& SetTracePath(const TString& value) { TracePath = value; return *this; }
         TServerSettings& SetDomain(ui32 value) { Domain = value; return *this; }
diff --git a/ydb/core/testlib/test_pq_client.h b/ydb/core/testlib/test_pq_client.h
index dbf150ec9d4c..b48dd5a8868b 100644
--- a/ydb/core/testlib/test_pq_client.h
+++ b/ydb/core/testlib/test_pq_client.h
@@ -499,9 +499,18 @@ class TFlatMsgBusPQClient : public NFlatTests::TFlatMsgBusClient {
 public:
     void RunYqlSchemeQuery(TString query, bool expectSuccess = true) {
         auto tableClient = NYdb::NTable::TTableClient(*Driver);
-        auto result = tableClient.RetryOperationSync([&](NYdb::NTable::TSession session) {
-            return session.ExecuteSchemeQuery(query).GetValueSync();
-        });
+
+        NYdb::TStatus result(NYdb::EStatus::SUCCESS, NYql::TIssues());
+        for (size_t i = 0; i < 10; ++i) {
+            result = tableClient.RetryOperationSync([&](NYdb::NTable::TSession session) {
+                return session.ExecuteSchemeQuery(query).GetValueSync();
+            });
+            if (!expectSuccess || result.IsSuccess()) {
+                break;
+            }
+            Sleep(TDuration::Seconds(1));
+        }
+
         if (expectSuccess) {
             UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToString());
         } else {
diff --git a/ydb/core/testlib/ya.make b/ydb/core/testlib/ya.make
index e7a93b69ae78..4f4239caea73 100644
--- a/ydb/core/testlib/ya.make
+++ b/ydb/core/testlib/ya.make
@@ -22,6 +22,7 @@ SRCS(
 )
 
 PEERDIR(
+    ydb/apps/version
     ydb/library/actors/core
     ydb/library/actors/interconnect
     ydb/library/grpc/client
@@ -62,6 +63,7 @@ PEERDIR(
     ydb/core/persqueue
     ydb/core/protos
     ydb/core/security
+    ydb/core/security/ldap_auth_provider
     ydb/core/statistics/aggregator
     ydb/core/sys_view/processor
     ydb/core/sys_view/service
diff --git a/ydb/core/tx/CMakeLists.darwin-arm64.txt b/ydb/core/tx/CMakeLists.darwin-arm64.txt
index 0e0f45463d83..193995cc0e2d 100644
--- a/ydb/core/tx/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/CMakeLists.darwin-arm64.txt
@@ -43,6 +43,10 @@ target_link_libraries(ydb-core-tx PUBLIC
   ydb-library-aclib
 )
 target_sources(ydb-core-tx PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/message_seqno.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_processing.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy_schemereq.cpp
 )
diff --git a/ydb/core/tx/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/CMakeLists.darwin-x86_64.txt
index 0e0f45463d83..193995cc0e2d 100644
--- a/ydb/core/tx/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/CMakeLists.darwin-x86_64.txt
@@ -43,6 +43,10 @@ target_link_libraries(ydb-core-tx PUBLIC
   ydb-library-aclib
 )
 target_sources(ydb-core-tx PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/message_seqno.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_processing.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy_schemereq.cpp
 )
diff --git a/ydb/core/tx/CMakeLists.linux-aarch64.txt b/ydb/core/tx/CMakeLists.linux-aarch64.txt
index f4b2b39fcf2c..ef01c3fcc783 100644
--- a/ydb/core/tx/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/CMakeLists.linux-aarch64.txt
@@ -44,6 +44,10 @@ target_link_libraries(ydb-core-tx PUBLIC
   ydb-library-aclib
 )
 target_sources(ydb-core-tx PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/message_seqno.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_processing.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy_schemereq.cpp
 )
diff --git a/ydb/core/tx/CMakeLists.linux-x86_64.txt b/ydb/core/tx/CMakeLists.linux-x86_64.txt
index f4b2b39fcf2c..ef01c3fcc783 100644
--- a/ydb/core/tx/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/CMakeLists.linux-x86_64.txt
@@ -44,6 +44,10 @@ target_link_libraries(ydb-core-tx PUBLIC
   ydb-library-aclib
 )
 target_sources(ydb-core-tx PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/message_seqno.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_processing.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy_schemereq.cpp
 )
diff --git a/ydb/core/tx/CMakeLists.windows-x86_64.txt b/ydb/core/tx/CMakeLists.windows-x86_64.txt
index 0e0f45463d83..193995cc0e2d 100644
--- a/ydb/core/tx/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/CMakeLists.windows-x86_64.txt
@@ -43,6 +43,10 @@ target_link_libraries(ydb-core-tx PUBLIC
   ydb-library-aclib
 )
 target_sources(ydb-core-tx PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/message_seqno.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_processing.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_proxy_schemereq.cpp
 )
diff --git a/ydb/core/tx/balance_coverage/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/balance_coverage/ut/CMakeLists.darwin-arm64.txt
index 09206b832098..039610328e3e 100644
--- a/ydb/core/tx/balance_coverage/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/balance_coverage/ut/CMakeLists.darwin-arm64.txt
@@ -23,8 +23,6 @@ target_link_options(ydb-core-tx-balance_coverage-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-balance_coverage-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/balance_coverage/balance_coverage_builder_ut.cpp
@@ -54,6 +52,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/balance_coverage/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/balance_coverage/ut/CMakeLists.darwin-x86_64.txt
index 11d2645be356..6dab671950b9 100644
--- a/ydb/core/tx/balance_coverage/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/balance_coverage/ut/CMakeLists.darwin-x86_64.txt
@@ -24,8 +24,6 @@ target_link_options(ydb-core-tx-balance_coverage-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-balance_coverage-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/balance_coverage/balance_coverage_builder_ut.cpp
@@ -55,6 +53,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/balance_coverage/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tx/balance_coverage/ut/CMakeLists.linux-aarch64.txt
index ea47db16a214..67e222763a9d 100644
--- a/ydb/core/tx/balance_coverage/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/balance_coverage/ut/CMakeLists.linux-aarch64.txt
@@ -26,9 +26,6 @@ target_link_options(ydb-core-tx-balance_coverage-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-balance_coverage-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/balance_coverage/balance_coverage_builder_ut.cpp
@@ -58,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/balance_coverage/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tx/balance_coverage/ut/CMakeLists.linux-x86_64.txt
index b5f38c7a1294..e2a5af197e83 100644
--- a/ydb/core/tx/balance_coverage/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/balance_coverage/ut/CMakeLists.linux-x86_64.txt
@@ -27,9 +27,6 @@ target_link_options(ydb-core-tx-balance_coverage-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-balance_coverage-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/balance_coverage/balance_coverage_builder_ut.cpp
@@ -59,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/balance_coverage/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tx/balance_coverage/ut/CMakeLists.windows-x86_64.txt
index 002d93ed84da..97af22b19a99 100644
--- a/ydb/core/tx/balance_coverage/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/balance_coverage/ut/CMakeLists.windows-x86_64.txt
@@ -48,6 +48,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/CMakeLists.darwin-arm64.txt
index b2e4f43959b3..f13653ae54d1 100644
--- a/ydb/core/tx/columnshard/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/columnshard/CMakeLists.darwin-arm64.txt
@@ -17,6 +17,7 @@ add_subdirectory(operations)
 add_subdirectory(resource_subscriber)
 add_subdirectory(resources)
 add_subdirectory(splitter)
+add_subdirectory(transactions)
 add_subdirectory(ut_rw)
 add_subdirectory(ut_schema)
 get_built_tool_path(
@@ -49,12 +50,15 @@ target_link_libraries(core-tx-columnshard PUBLIC
   ydb-core-protos
   ydb-core-tablet
   ydb-core-tablet_flat
+  core-tx-time_cast
   tx-columnshard-engines
   columnshard-engines-writer
   tx-columnshard-counters
   tx-columnshard-common
   tx-columnshard-splitter
   tx-columnshard-operations
+  tx-columnshard-transactions
+  columnshard-transactions-operators
   tx-columnshard-blobs_reader
   tx-columnshard-blobs_action
   tx-columnshard-resource_subscriber
@@ -80,7 +84,6 @@ target_sources(core-tx-columnshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__progress_tx.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__propose_cancel.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__propose_transaction.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__read.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__read_base.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__scan.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__index_scan.cpp
@@ -95,10 +98,8 @@ target_sources(core-tx-columnshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_view.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/defs.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/read_actor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/write_actor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/tables_manager.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/tx_controller.cpp
 )
 generate_enum_serilization(core-tx-columnshard
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard.h
diff --git a/ydb/core/tx/columnshard/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/CMakeLists.darwin-x86_64.txt
index b2e4f43959b3..f13653ae54d1 100644
--- a/ydb/core/tx/columnshard/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/columnshard/CMakeLists.darwin-x86_64.txt
@@ -17,6 +17,7 @@ add_subdirectory(operations)
 add_subdirectory(resource_subscriber)
 add_subdirectory(resources)
 add_subdirectory(splitter)
+add_subdirectory(transactions)
 add_subdirectory(ut_rw)
 add_subdirectory(ut_schema)
 get_built_tool_path(
@@ -49,12 +50,15 @@ target_link_libraries(core-tx-columnshard PUBLIC
   ydb-core-protos
   ydb-core-tablet
   ydb-core-tablet_flat
+  core-tx-time_cast
   tx-columnshard-engines
   columnshard-engines-writer
   tx-columnshard-counters
   tx-columnshard-common
   tx-columnshard-splitter
   tx-columnshard-operations
+  tx-columnshard-transactions
+  columnshard-transactions-operators
   tx-columnshard-blobs_reader
   tx-columnshard-blobs_action
   tx-columnshard-resource_subscriber
@@ -80,7 +84,6 @@ target_sources(core-tx-columnshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__progress_tx.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__propose_cancel.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__propose_transaction.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__read.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__read_base.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__scan.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__index_scan.cpp
@@ -95,10 +98,8 @@ target_sources(core-tx-columnshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_view.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/defs.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/read_actor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/write_actor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/tables_manager.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/tx_controller.cpp
 )
 generate_enum_serilization(core-tx-columnshard
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard.h
diff --git a/ydb/core/tx/columnshard/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/CMakeLists.linux-aarch64.txt
index b80449d91da1..3c3c5f0ba7c1 100644
--- a/ydb/core/tx/columnshard/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/columnshard/CMakeLists.linux-aarch64.txt
@@ -17,6 +17,7 @@ add_subdirectory(operations)
 add_subdirectory(resource_subscriber)
 add_subdirectory(resources)
 add_subdirectory(splitter)
+add_subdirectory(transactions)
 add_subdirectory(ut_rw)
 add_subdirectory(ut_schema)
 get_built_tool_path(
@@ -50,12 +51,15 @@ target_link_libraries(core-tx-columnshard PUBLIC
   ydb-core-protos
   ydb-core-tablet
   ydb-core-tablet_flat
+  core-tx-time_cast
   tx-columnshard-engines
   columnshard-engines-writer
   tx-columnshard-counters
   tx-columnshard-common
   tx-columnshard-splitter
   tx-columnshard-operations
+  tx-columnshard-transactions
+  columnshard-transactions-operators
   tx-columnshard-blobs_reader
   tx-columnshard-blobs_action
   tx-columnshard-resource_subscriber
@@ -81,7 +85,6 @@ target_sources(core-tx-columnshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__progress_tx.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__propose_cancel.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__propose_transaction.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__read.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__read_base.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__scan.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__index_scan.cpp
@@ -96,10 +99,8 @@ target_sources(core-tx-columnshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_view.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/defs.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/read_actor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/write_actor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/tables_manager.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/tx_controller.cpp
 )
 generate_enum_serilization(core-tx-columnshard
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard.h
diff --git a/ydb/core/tx/columnshard/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/CMakeLists.linux-x86_64.txt
index b80449d91da1..3c3c5f0ba7c1 100644
--- a/ydb/core/tx/columnshard/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/columnshard/CMakeLists.linux-x86_64.txt
@@ -17,6 +17,7 @@ add_subdirectory(operations)
 add_subdirectory(resource_subscriber)
 add_subdirectory(resources)
 add_subdirectory(splitter)
+add_subdirectory(transactions)
 add_subdirectory(ut_rw)
 add_subdirectory(ut_schema)
 get_built_tool_path(
@@ -50,12 +51,15 @@ target_link_libraries(core-tx-columnshard PUBLIC
   ydb-core-protos
   ydb-core-tablet
   ydb-core-tablet_flat
+  core-tx-time_cast
   tx-columnshard-engines
   columnshard-engines-writer
   tx-columnshard-counters
   tx-columnshard-common
   tx-columnshard-splitter
   tx-columnshard-operations
+  tx-columnshard-transactions
+  columnshard-transactions-operators
   tx-columnshard-blobs_reader
   tx-columnshard-blobs_action
   tx-columnshard-resource_subscriber
@@ -81,7 +85,6 @@ target_sources(core-tx-columnshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__progress_tx.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__propose_cancel.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__propose_transaction.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__read.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__read_base.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__scan.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__index_scan.cpp
@@ -96,10 +99,8 @@ target_sources(core-tx-columnshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_view.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/defs.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/read_actor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/write_actor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/tables_manager.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/tx_controller.cpp
 )
 generate_enum_serilization(core-tx-columnshard
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard.h
diff --git a/ydb/core/tx/columnshard/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/CMakeLists.windows-x86_64.txt
index 22054ed5de6c..7724c86a6f8b 100644
--- a/ydb/core/tx/columnshard/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/columnshard/CMakeLists.windows-x86_64.txt
@@ -17,6 +17,7 @@ add_subdirectory(operations)
 add_subdirectory(resource_subscriber)
 add_subdirectory(resources)
 add_subdirectory(splitter)
+add_subdirectory(transactions)
 add_subdirectory(ut_rw)
 add_subdirectory(ut_schema)
 get_built_tool_path(
@@ -50,12 +51,15 @@ target_link_libraries(core-tx-columnshard PUBLIC
   ydb-core-protos
   ydb-core-tablet
   ydb-core-tablet_flat
+  core-tx-time_cast
   tx-columnshard-engines
   columnshard-engines-writer
   tx-columnshard-counters
   tx-columnshard-common
   tx-columnshard-splitter
   tx-columnshard-operations
+  tx-columnshard-transactions
+  columnshard-transactions-operators
   tx-columnshard-blobs_reader
   tx-columnshard-blobs_action
   tx-columnshard-resource_subscriber
@@ -81,7 +85,6 @@ target_sources(core-tx-columnshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__progress_tx.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__propose_cancel.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__propose_transaction.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__read.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__read_base.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__scan.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard__index_scan.cpp
@@ -96,10 +99,8 @@ target_sources(core-tx-columnshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_view.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/defs.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/read_actor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/write_actor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/tables_manager.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/tx_controller.cpp
 )
 generate_enum_serilization(core-tx-columnshard
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard.h
diff --git a/ydb/core/tx/columnshard/background_controller.cpp b/ydb/core/tx/columnshard/background_controller.cpp
index 99010cbaa203..7449e7d31ff4 100644
--- a/ydb/core/tx/columnshard/background_controller.cpp
+++ b/ydb/core/tx/columnshard/background_controller.cpp
@@ -3,41 +3,15 @@
 
 namespace NKikimr::NColumnShard {
 
-void TBackgroundController::StartTtl(const NOlap::TColumnEngineChanges& changes) {
-    Y_ABORT_UNLESS(TtlPortions.empty());
-    TtlPortions = changes.GetTouchedPortions();
-}
-
-bool TBackgroundController::StartCompaction(const NOlap::TPlanCompactionInfo& info, const NOlap::TColumnEngineChanges& changes) {
+bool TBackgroundController::StartCompaction(const NOlap::TPlanCompactionInfo& info) {
     Y_ABORT_UNLESS(ActiveCompactionInfo.emplace(info.GetPathId(), info).second);
-    Y_ABORT_UNLESS(CompactionInfoPortions.emplace(info.GetPathId(), changes.GetTouchedPortions()).second);
     return true;
 }
 
-THashSet TBackgroundController::GetConflictTTLPortions() const {
-    THashSet result = TtlPortions;
-    for (auto&& i : CompactionInfoPortions) {
-        for (auto&& g : i.second) {
-            Y_ABORT_UNLESS(result.emplace(g).second);
-        }
-    }
-    return result;
-}
-
-THashSet TBackgroundController::GetConflictCompactionPortions() const {
-    THashSet result = TtlPortions;
-    for (auto&& i : CompactionInfoPortions) {
-        for (auto&& g : i.second) {
-            Y_ABORT_UNLESS(result.emplace(g).second);
-        }
-    }
-    return result;
-}
-
 void TBackgroundController::CheckDeadlines() {
     for (auto&& i : ActiveCompactionInfo) {
         if (TMonotonic::Now() - i.second.GetStartTime() > NOlap::TCompactionLimits::CompactionTimeout) {
-            AFL_EMERG(NKikimrServices::TX_COLUMNSHARD)("event", "deadline_compaction");
+            AFL_CRIT(NKikimrServices::TX_COLUMNSHARD)("event", "deadline_compaction");
             Y_DEBUG_ABORT_UNLESS(false);
         }
     }
@@ -46,7 +20,7 @@ void TBackgroundController::CheckDeadlines() {
 void TBackgroundController::CheckDeadlinesIndexation() {
     for (auto&& i : ActiveIndexationTasks) {
         if (TMonotonic::Now() - i.second > NOlap::TCompactionLimits::CompactionTimeout) {
-            AFL_EMERG(NKikimrServices::TX_COLUMNSHARD)("event", "deadline_compaction")("task_id", i.first);
+            AFL_CRIT(NKikimrServices::TX_COLUMNSHARD)("event", "deadline_indexation")("task_id", i.first);
             Y_DEBUG_ABORT_UNLESS(false);
         }
     }
@@ -73,13 +47,4 @@ TString TBackgroundController::DebugStringIndexation() const {
     return sb;
 }
 
-TString TBackgroundActivity::DebugString() const {
-    return TStringBuilder()
-        << "indexation:" << HasIndexation() << ";"
-        << "compaction:" << HasCompaction() << ";"
-        << "cleanup:" << HasCleanup() << ";"
-        << "ttl:" << HasTtl() << ";"
-        ;
-}
-
 }
diff --git a/ydb/core/tx/columnshard/background_controller.h b/ydb/core/tx/columnshard/background_controller.h
index fad724213dd5..bb38f2744061 100644
--- a/ydb/core/tx/columnshard/background_controller.h
+++ b/ydb/core/tx/columnshard/background_controller.h
@@ -8,52 +8,16 @@ class TColumnEngineChanges;
 
 namespace NKikimr::NColumnShard {
 
-class TBackgroundActivity {
-public:
-    enum EBackActivity : ui32 {
-        NONE = 0x00,
-        INDEX = 0x01,
-        COMPACT = 0x02,
-        CLEAN  = 0x04,
-        TTL = 0x08,
-        ALL = 0xffff
-    };
-
-    static TBackgroundActivity Indexation() { return TBackgroundActivity(INDEX); }
-    static TBackgroundActivity Compaction() { return TBackgroundActivity(COMPACT); }
-    static TBackgroundActivity Cleanup() { return TBackgroundActivity(CLEAN); }
-    static TBackgroundActivity Ttl() { return TBackgroundActivity(TTL); }
-    static TBackgroundActivity All() { return TBackgroundActivity(ALL); }
-    static TBackgroundActivity None() { return TBackgroundActivity(NONE); }
-
-    TBackgroundActivity() = default;
-
-    bool HasIndexation() const { return Activity & INDEX; }
-    bool HasCompaction() const { return Activity & COMPACT; }
-    bool HasCleanup() const { return Activity & CLEAN; }
-    bool HasTtl() const { return Activity & TTL; }
-    bool HasAll() const { return Activity == ALL; }
-
-    TString DebugString() const;
-
-private:
-    EBackActivity Activity = NONE;
-
-    TBackgroundActivity(EBackActivity activity)
-        : Activity(activity)
-    {}
-};
-
 class TBackgroundController {
 private:
     THashMap ActiveIndexationTasks;
 
     using TCurrentCompaction = THashMap;
     TCurrentCompaction ActiveCompactionInfo;
-    THashMap> CompactionInfoPortions;
 
-    bool ActiveCleanup = false;
-    THashSet TtlPortions;
+    bool ActiveCleanupPortions = false;
+    bool ActiveCleanupTables = false;
+    bool ActiveCleanupInsertTable = false;
     YDB_READONLY(TMonotonic, LastIndexationInstant, TMonotonic::Zero());
 public:
     THashSet GetConflictTTLPortions() const;
@@ -62,10 +26,9 @@ class TBackgroundController {
     void CheckDeadlines();
     void CheckDeadlinesIndexation();
 
-    bool StartCompaction(const NOlap::TPlanCompactionInfo& info, const NOlap::TColumnEngineChanges& changes);
+    bool StartCompaction(const NOlap::TPlanCompactionInfo& info);
     void FinishCompaction(const NOlap::TPlanCompactionInfo& info) {
         Y_ABORT_UNLESS(ActiveCompactionInfo.erase(info.GetPathId()));
-        Y_ABORT_UNLESS(CompactionInfoPortions.erase(info.GetPathId()));
     }
     const TCurrentCompaction& GetActiveCompaction() const {
         return ActiveCompactionInfo;
@@ -81,25 +44,40 @@ class TBackgroundController {
         return ActiveIndexationTasks.size();
     }
 
-    void StartCleanup() {
-        Y_ABORT_UNLESS(!ActiveCleanup);
-        ActiveCleanup = true;
+    void StartCleanupPortions() {
+        Y_ABORT_UNLESS(!ActiveCleanupPortions);
+        ActiveCleanupPortions = true;
     }
-    void FinishCleanup() {
-        Y_ABORT_UNLESS(ActiveCleanup);
-        ActiveCleanup = false;
+    void FinishCleanupPortions() {
+        Y_ABORT_UNLESS(ActiveCleanupPortions);
+        ActiveCleanupPortions = false;
     }
-    bool IsCleanupActive() const {
-        return ActiveCleanup;
+    bool IsCleanupPortionsActive() const {
+        return ActiveCleanupPortions;
     }
 
-    void StartTtl(const NOlap::TColumnEngineChanges& changes);
-    void FinishTtl() {
-        Y_ABORT_UNLESS(!TtlPortions.empty());
-        TtlPortions.clear();
+    void StartCleanupTables() {
+        Y_ABORT_UNLESS(!ActiveCleanupTables);
+        ActiveCleanupTables = true;
+    }
+    void FinishCleanupTables() {
+        Y_ABORT_UNLESS(ActiveCleanupTables);
+        ActiveCleanupTables = false;
+    }
+    bool IsCleanupTablesActive() const {
+        return ActiveCleanupTables;
+    }
+
+    void StartCleanupInsertTable() {
+        Y_ABORT_UNLESS(!ActiveCleanupInsertTable);
+        ActiveCleanupInsertTable = true;
+    }
+    void FinishCleanupInsertTable() {
+        Y_ABORT_UNLESS(ActiveCleanupInsertTable);
+        ActiveCleanupInsertTable = false;
     }
-    bool IsTtlActive() const {
-        return !TtlPortions.empty();
+    bool IsCleanupInsertTableActive() const {
+        return ActiveCleanupInsertTable;
     }
 };
 
diff --git a/ydb/core/tx/columnshard/blob.cpp b/ydb/core/tx/columnshard/blob.cpp
index 0a7a3ecbdb04..ec92f317f225 100644
--- a/ydb/core/tx/columnshard/blob.cpp
+++ b/ydb/core/tx/columnshard/blob.cpp
@@ -1,187 +1 @@
 #include "blob.h"
-#include "defs.h"
-
-#include 
-
-namespace NKikimr::NOlap {
-
-// Format: "S3-f(logoBlobId)-group"
-// Example: "S3-42-72075186224038245_51_31595_2_0_11952_0-2181038103"
-TString DsIdToS3Key(const TUnifiedBlobId& dsid, const ui64 pathId) {
-    TString blobId = dsid.GetLogoBlobId().ToString();
-    for (auto&& c : blobId) {
-        switch (c) {
-            case ':':
-                c = '_';
-                break;
-            case '[':
-            case ']':
-                c = '-';
-        }
-    }
-    TString result =
-        "S3-" +
-        ::ToString(pathId) +
-        blobId +
-        ::ToString(dsid.GetDsGroup())
-        ;
-    return result;
-}
-
-TUnifiedBlobId S3KeyToDsId(const TString& s, TString& error, ui64& pathId) {
-    TVector keyBucket;
-    Split(s, "-", keyBucket);
-
-    ui32 dsGroup;
-    if (keyBucket.size() != 4 || keyBucket[0] != "S3"
-        || !TryFromString(keyBucket[3], dsGroup)
-        || !TryFromString(keyBucket[1], pathId))
-    {
-        error = TStringBuilder() << "Wrong S3 key '" << s << "'";
-        return TUnifiedBlobId();
-    }
-
-    TString blobId = "[" + keyBucket[2] + "]";
-    for (size_t i = 0; i < blobId.size(); ++i) {
-        switch (blobId[i]) {
-            case '_':
-                blobId[i] = ':';
-                break;
-        }
-    }
-
-    TLogoBlobID logoBlobId;
-    if (!TLogoBlobID::Parse(logoBlobId, blobId, error)) {
-        return TUnifiedBlobId();
-    }
-
-    return TUnifiedBlobId(dsGroup, logoBlobId);
-}
-
-namespace {
-
-#define PARSE_INT_COMPONENT(fieldType, fieldName, endChar) \
-    if (pos >= endPos) { \
-        error = "Failed to parse " #fieldName " component"; \
-        return TUnifiedBlobId(); \
-    } \
-    fieldType fieldName = -1; \
-    { \
-        auto [ptr, ec] { std::from_chars(str + pos, str + endPos, fieldName) }; \
-        if (ec != std::errc()) { \
-            error = "Failed to parse " #fieldName " component"; \
-            return TUnifiedBlobId(); \
-        } else { \
-            pos = ptr - str; \
-        } \
-        if (str[pos++] != endChar) { \
-            error = #endChar " not found after " #fieldName; \
-            return TUnifiedBlobId(); \
-        } \
-    }
-
-// Format: "DS:group:logoBlobId"
-// Example: "DS:2181038103:[72075186224038245:51:31595:2:0:11952:0]"
-TUnifiedBlobId ParseExtendedDsBlobId(const TString& s, TString& error) {
-    Y_ABORT_UNLESS(s.size() > 2);
-    const char* str = s.c_str();
-    Y_ABORT_UNLESS(str[0] == 'D' && str[1] == 'S');
-    i64 pos = 2;
-    i64 endPos = s.size();
-    if (str[pos++] != ':') {
-        error = "Starting ':' not found";
-        return TUnifiedBlobId();
-    }
-
-    PARSE_INT_COMPONENT(ui32, dsGroup, ':');
-
-    TLogoBlobID logoBlobId;
-    if (!TLogoBlobID::Parse(logoBlobId, s.substr(pos), error)) {
-        return TUnifiedBlobId();
-    }
-
-    return TUnifiedBlobId(dsGroup, logoBlobId);
-}
-
-// Format: "SM[tabletId:generation:step:cookie:size]"
-// Example: "SM[72075186224038245:51:31184:0:2528]"
-TUnifiedBlobId ParseSmallBlobId(const TString& s, TString& error) {
-    Y_ABORT_UNLESS(s.size() > 2);
-    const char* str = s.c_str();
-    Y_ABORT_UNLESS(str[0] == 'S' && str[1] == 'M');
-    i64 pos = 2;
-    i64 endPos = s.size();
-    if (str[pos++] != '[') {
-        error = "opening [ not found";
-        return TUnifiedBlobId();
-    }
-
-    PARSE_INT_COMPONENT(ui64, tabletId, ':');
-    PARSE_INT_COMPONENT(ui32, gen, ':');
-    PARSE_INT_COMPONENT(ui32, step, ':');
-    PARSE_INT_COMPONENT(ui32, cookie, ':');
-    PARSE_INT_COMPONENT(ui32, size, ']');
-
-    if (pos != endPos) {
-        error = "Extra characters after closing ]";
-        return TUnifiedBlobId();
-    }
-
-    return TUnifiedBlobId(tabletId, gen, step, cookie, size);
-}
-
-// Format: "s = S3_key"
-TUnifiedBlobId ParseS3BlobId(const TString& s, TString& error) {
-    ui64 pathId;
-    TUnifiedBlobId dsBlobId = S3KeyToDsId(s, error, pathId);
-    if (!dsBlobId.IsValid()) {
-        return TUnifiedBlobId();
-    }
-
-    return TUnifiedBlobId(dsBlobId, TUnifiedBlobId::S3_BLOB, pathId);
-}
-
-}
-
-TUnifiedBlobId TUnifiedBlobId::ParseFromString(const TString& str,
-     const IBlobGroupSelector* dsGroupSelector, TString& error)
-{
-    if (str.size() <= 2) {
-        error = TStringBuilder() << "Wrong blob id: '" << str << "'";
-        return TUnifiedBlobId();
-    }
-
-    if (str[0] == '[') {
-        // If blobId starts with '[' this must be a logoblobId and if channel is set to FAKE_CHANNEL
-        // this is a fake logoblobid used for small blob
-        TLogoBlobID logoBlobId;
-        bool parsed = TLogoBlobID::Parse(logoBlobId, str, error);
-        if (!parsed) {
-            error = "Cannot parse TLogoBlobID: " + error;
-            return TUnifiedBlobId();
-        }
-        if (logoBlobId.Channel() == TSmallBlobId::FAKE_CHANNEL) {
-            // Small blob
-            return TUnifiedBlobId(logoBlobId.TabletID(), logoBlobId.Generation(), logoBlobId.Step(),
-                logoBlobId.Cookie(), logoBlobId.BlobSize());
-        } else {
-            // DS blob
-            if (!dsGroupSelector) {
-                error = "Need TBlobGroupSelector to resolve DS group for the blob";
-                return TUnifiedBlobId();
-            }
-            return TUnifiedBlobId(dsGroupSelector->GetGroup(logoBlobId), logoBlobId);
-        }
-    } else if (str[0] == 'D' && str[1] == 'S') {
-        return ParseExtendedDsBlobId(str, error);
-    } else if (str[0] == 'S' && str[1] == 'M') {
-        return ParseSmallBlobId(str, error);
-    } else if (str[0] == 'S' && str[1] == '3') {
-        return ParseS3BlobId(str, error);
-    }
-
-    error = TStringBuilder() << "Wrong blob id: '" << str << "'";
-    return TUnifiedBlobId();
-}
-
-}
diff --git a/ydb/core/tx/columnshard/blob.h b/ydb/core/tx/columnshard/blob.h
index 0c3cb27bdb3c..4a2dad81a540 100644
--- a/ydb/core/tx/columnshard/blob.h
+++ b/ydb/core/tx/columnshard/blob.h
@@ -1,448 +1,3 @@
 #pragma once
 
-#include 
-
-#include 
-
-namespace NKikimr::NOlap {
-
-class IBlobGroupSelector;
-class TUnifiedBlobId;
-
-TString DsIdToS3Key(const TUnifiedBlobId& dsid, const ui64 pathId);
-TUnifiedBlobId S3KeyToDsId(const TString& s, TString& error, ui64& pathId);
-
-// Encapsulates different types of blob ids to simplify dealing with blobs for the
-// components that do not need to know where the blob is stored
-// Blob id formats:
-//  * Old DS blob id:  just "logoBlobId" e.g. "[72075186224038245:51:31595:2:0:11952:0]"
-//  * DS blob id:      "DS:dsGroup:logoBlobId" e.g. "DS:2181038103:[72075186224038245:51:31595:2:0:11952:0]"
-//  * Small blob id:   "SM[tabletId:generation:step:cookie:size]"  e.g. "SM[72075186224038245:51:31184:0:2528]"
-class TUnifiedBlobId {
-    struct TInvalid {
-        bool operator == (const TInvalid&) const { return true; }
-    };
-
-    // Id of a blob in YDB distributed storage
-    struct TDsBlobId {
-        TLogoBlobID BlobId;
-        ui32 DsGroup;
-
-        bool operator == (const TDsBlobId& other) const {
-             return BlobId == other.BlobId && DsGroup == other.DsGroup;
-        }
-
-        TString ToStringNew() const {
-            return Sprintf( "DS:%" PRIu32 ":%s", DsGroup, BlobId.ToString().c_str());
-        }
-
-        TString ToStringLegacy() const {
-            return BlobId.ToString();
-        }
-
-        ui64 Hash() const {
-            return CombineHashes(BlobId.Hash(), IntHash(DsGroup));
-        }
-    };
-
-    // Id of a blob that is stored in Tablet local DB table
-    struct TSmallBlobId {
-        static constexpr ui8 FAKE_CHANNEL = 255;    // Small blob id can be represented as
-                                                    // a fake TLogoBlobID with channel = FAKE_CHANNEL
-
-        ui64 TabletId;
-        ui32 Gen;
-        ui32 Step;
-        ui32 Cookie;
-        ui32 Size;
-
-        bool operator == (const TSmallBlobId& other) const {
-            return TabletId == other.TabletId &&
-                Gen == other.Gen &&
-                Step == other.Step &&
-                Cookie == other.Cookie &&
-                Size == other.Size;
-        }
-
-        TString ToStringNew() const {
-            return Sprintf( "SM[%" PRIu64 ":%" PRIu32 ":%" PRIu32 ":%" PRIu32 ":%" PRIu32 "]",
-                TabletId, Gen, Step, Cookie, Size);
-        }
-
-        TString ToStringLegacy() const {
-            // For compatibility with preproduction version small blobs can also be
-            // addressed by fake TlogoBlobID with channel = 255
-            return TLogoBlobID(TabletId, Gen, Step, FAKE_CHANNEL, Size, Cookie).ToString();
-        }
-
-        ui64 Hash() const {
-            ui64 hash = IntHash(TabletId);
-            hash = CombineHashes(hash, IntHash(Gen));
-            hash = CombineHashes(hash, IntHash(Step));
-            hash = CombineHashes(hash, IntHash(Cookie));
-            hash = CombineHashes(hash, IntHash(Size));
-            return hash;
-        }
-    };
-
-    struct TS3BlobId {
-        TDsBlobId DsBlobId;
-        TString Key;
-
-        TS3BlobId() = default;
-
-        TS3BlobId(const TUnifiedBlobId& dsBlob, const ui64 pathId)
-        {
-            Y_ABORT_UNLESS(dsBlob.IsDsBlob());
-            DsBlobId = std::get(dsBlob.Id);
-            Key = DsIdToS3Key(dsBlob, pathId);
-        }
-
-        bool operator == (const TS3BlobId& other) const {
-            return Key == other.Key;
-        }
-
-        TString ToStringNew() const {
-            return Sprintf("%s", Key.c_str());
-        }
-
-        ui64 Hash() const {
-            return IntHash(THash()(Key));
-        }
-    };
-
-    std::variant<
-        TInvalid,
-        TDsBlobId,
-        TSmallBlobId,
-        TS3BlobId
-    > Id;
-
-public:
-    enum EBlobType {
-        INVALID = 0,
-        DS_BLOB = 1,
-        TABLET_SMALL_BLOB = 2,
-        S3_BLOB = 3,
-    };
-
-    TUnifiedBlobId()
-        : Id(TInvalid())
-    {}
-
-    // Initialize as DS blob Id
-    TUnifiedBlobId(ui32 dsGroup, const TLogoBlobID& logoBlobId)
-        : Id(TDsBlobId{logoBlobId, dsGroup})
-    {}
-
-    // Initialize as Small blob Id
-    TUnifiedBlobId(ui64 tabletId, ui32 gen, ui32 step, ui32 cookie, ui32 size)
-        : Id(TSmallBlobId{tabletId, gen, step, cookie, size})
-    {}
-
-    // Make S3 blob Id from DS one
-    TUnifiedBlobId(const TUnifiedBlobId& blob, EBlobType type, const ui64 pathId)
-        : Id(TS3BlobId(blob, pathId))
-    {
-        Y_ABORT_UNLESS(type == S3_BLOB);
-    }
-
-    TUnifiedBlobId(const TUnifiedBlobId& other) = default;
-    TUnifiedBlobId& operator = (const TUnifiedBlobId& logoBlobId) = default;
-    TUnifiedBlobId(TUnifiedBlobId&& other) = default;
-    TUnifiedBlobId& operator = (TUnifiedBlobId&& logoBlobId) = default;
-
-    TUnifiedBlobId MakeS3BlobId(ui64 pathId) const {
-        Y_ABORT_UNLESS(IsDsBlob());
-        return TUnifiedBlobId(*this, TUnifiedBlobId::S3_BLOB, pathId);
-    }
-
-    static TUnifiedBlobId ParseFromString(const TString& str,
-        const IBlobGroupSelector* dsGroupSelector, TString& error);
-
-    bool operator == (const TUnifiedBlobId& other) const {
-        return Id == other.Id;
-    }
-
-    EBlobType GetType() const {
-        return (EBlobType)Id.index();
-    }
-
-    bool IsValid() const {
-        return Id.index() != INVALID;
-    }
-
-    size_t BlobSize() const {
-        switch (Id.index()) {
-        case DS_BLOB:
-            return std::get(Id).BlobId.BlobSize();
-        case TABLET_SMALL_BLOB:
-            return std::get(Id).Size;
-        case S3_BLOB:
-            return std::get(Id).DsBlobId.BlobId.BlobSize();
-        case INVALID:
-            Y_ABORT("Invalid blob id");
-        }
-        Y_ABORT();
-    }
-
-    bool IsSmallBlob() const {
-        return GetType() == TABLET_SMALL_BLOB;
-    }
-
-    bool IsDsBlob() const {
-        return GetType() == DS_BLOB;
-    }
-
-    bool IsS3Blob() const {
-        return GetType() == S3_BLOB;
-    }
-
-    TLogoBlobID GetLogoBlobId() const {
-        Y_ABORT_UNLESS(IsDsBlob());
-        return std::get(Id).BlobId;
-    }
-
-    ui32 GetDsGroup() const {
-        Y_ABORT_UNLESS(IsDsBlob());
-        return std::get(Id).DsGroup;
-    }
-
-    TString GetS3Key() const {
-        Y_ABORT_UNLESS(IsS3Blob());
-        return std::get(Id).Key;
-    }
-
-    ui64 GetTabletId() const {
-        switch (Id.index()) {
-        case DS_BLOB:
-            return std::get(Id).BlobId.TabletID();
-        case TABLET_SMALL_BLOB:
-            return std::get(Id).TabletId;
-        case S3_BLOB:
-            return std::get(Id).DsBlobId.BlobId.TabletID();
-        case INVALID:
-            Y_ABORT("Invalid blob id");
-        }
-        Y_ABORT();
-    }
-
-    ui64 Hash() const noexcept {
-        switch (Id.index()) {
-        case INVALID:
-            return 0;
-        case DS_BLOB:
-            return std::get(Id).Hash();
-        case TABLET_SMALL_BLOB:
-            return std::get(Id).Hash();
-        case S3_BLOB:
-            return std::get(Id).Hash();
-        }
-        Y_ABORT();
-    }
-
-    // This is only implemented for DS for backward compatibility with persisted data.
-    // All new functionality should rahter use string blob id representation
-    TString SerializeBinary() const {
-        Y_ABORT_UNLESS(IsDsBlob());
-        return TString((const char*)GetLogoBlobId().GetRaw(), sizeof(TLogoBlobID));
-    }
-
-    TString ToStringLegacy() const {
-        switch (Id.index()) {
-        case DS_BLOB:
-            return std::get(Id).ToStringLegacy();
-        case TABLET_SMALL_BLOB:
-            return std::get(Id).ToStringLegacy();
-        case S3_BLOB:
-            Y_ABORT("Not implemented");
-        case INVALID:
-            return "";
-        }
-        Y_ABORT();
-    }
-
-    TString ToStringNew() const {
-        switch (Id.index()) {
-        case DS_BLOB:
-            return std::get(Id).ToStringNew();
-        case TABLET_SMALL_BLOB:
-            return std::get(Id).ToStringNew();
-        case S3_BLOB:
-            return std::get(Id).ToStringNew();
-        case INVALID:
-            return "";
-        }
-        Y_ABORT();
-    }
-};
-
-
-// Describes a range of bytes in a blob. It is used for read requests and for caching.
-struct TBlobRange {
-    TUnifiedBlobId BlobId;
-    ui32 Offset;
-    ui32 Size;
-
-    const TUnifiedBlobId& GetBlobId() const {
-        return BlobId;
-    }
-
-    bool IsValid() const {
-        return BlobId.IsValid() && Size && Offset + Size <= BlobId.BlobSize();
-    }
-
-    ui32 GetBlobSize() const {
-        return Size;
-    }
-
-    bool IsFullBlob() const {
-        return Size == BlobId.BlobSize();
-    }
-
-    explicit TBlobRange(const TUnifiedBlobId& blobId = TUnifiedBlobId(), ui32 offset = 0, ui32 size = 0)
-        : BlobId(blobId)
-        , Offset(offset)
-        , Size(size)
-    {
-        if (Size > 0) {
-            Y_ABORT_UNLESS(Offset < BlobId.BlobSize());
-            Y_ABORT_UNLESS(Offset + Size <= BlobId.BlobSize());
-        }
-    }
-
-    static TBlobRange FromBlobId(const TUnifiedBlobId& blobId) {
-        return TBlobRange(blobId, 0, blobId.BlobSize());
-    }
-
-    bool operator == (const TBlobRange& other) const {
-        return
-            BlobId == other.BlobId &&
-            Offset == other.Offset &&
-            Size == other.Size;
-    }
-
-    ui64 Hash() const noexcept {
-        ui64 hash = BlobId.Hash();
-        hash = CombineHashes(hash, IntHash(Offset));
-        hash = CombineHashes(hash, IntHash(Size));
-        return hash;
-    }
-
-    TString ToString() const {
-        return Sprintf("{ Blob: %s Offset: %" PRIu32 " Size: %" PRIu32 " }",
-                       BlobId.ToStringNew().c_str(), Offset, Size);
-    }
-};
-
-class IBlobInUseTracker {
-private:
-    virtual bool DoFreeBlob(const NOlap::TUnifiedBlobId& blobId) = 0;
-    virtual bool DoUseBlob(const NOlap::TUnifiedBlobId& blobId) = 0;
-public:
-    virtual ~IBlobInUseTracker() = default;
-
-    bool FreeBlob(const NOlap::TUnifiedBlobId& blobId) {
-        return DoFreeBlob(blobId);
-    }
-    bool UseBlob(const NOlap::TUnifiedBlobId& blobId) {
-        return DoUseBlob(blobId);
-    }
-
-    virtual bool IsBlobInUsage(const NOlap::TUnifiedBlobId& blobId) const = 0;
-};
-
-// Expected blob lifecycle: EVICTING -> SELF_CACHED -> EXTERN <-> CACHED
-enum class EEvictState : ui8 {
-    UNKNOWN = 0,
-    EVICTING = 1,       // source, extern, cached blobs: 1--
-    SELF_CACHED = 2,    // source, extern, cached blobs: 11-
-    EXTERN = 3,         // source, extern, cached blobs: -1-
-    CACHED = 4,         // source, extern, cached blobs: -11
-    ERASING = 5,        // source, extern, cached blobs: -??
-    //ERASED = 6,       // source, extern, cached blobs: ---
-};
-
-inline bool IsExported(EEvictState state) {
-    return state == EEvictState::SELF_CACHED ||
-        state == EEvictState::EXTERN ||
-        state == EEvictState::CACHED;
-}
-
-inline bool CouldBeExported(EEvictState state) {
-    return state == EEvictState::SELF_CACHED ||
-        state == EEvictState::EXTERN ||
-        state == EEvictState::CACHED ||
-        state == EEvictState::ERASING;
-}
-
-inline bool IsDeleted(EEvictState state) {
-    return ui8(state) >= ui8(EEvictState::EXTERN); // !EVICTING and !SELF_CACHED
-}
-
-struct TEvictedBlob {
-    EEvictState State = EEvictState::UNKNOWN;
-    TUnifiedBlobId Blob;
-    TUnifiedBlobId ExternBlob;
-    TUnifiedBlobId CachedBlob;
-
-    bool operator == (const TEvictedBlob& other) const {
-        return Blob == other.Blob;
-    }
-
-    ui64 Hash() const noexcept {
-        return Blob.Hash();
-    }
-
-    bool IsEvicting() const {
-        return State == EEvictState::EVICTING;
-    }
-
-    bool IsExternal() const {
-        if (State == EEvictState::EXTERN) {
-            Y_ABORT_UNLESS(ExternBlob.IsValid());
-            return true;
-        }
-        return false;
-    }
-
-    TString ToString() const {
-        return TStringBuilder() << "state: " << (ui32)State
-            << " blob: " << Blob.ToStringNew()
-            << " extern: " << ExternBlob.ToStringNew()
-            << " cached: " << CachedBlob.ToStringNew();
-    }
-};
-
-}
-
-inline
-IOutputStream& operator <<(IOutputStream& out, const NKikimr::NOlap::TUnifiedBlobId& blobId) {
-    return out << blobId.ToStringNew();
-}
-
-inline
-IOutputStream& operator <<(IOutputStream& out, const NKikimr::NOlap::TBlobRange& blobRange) {
-    return out << blobRange.ToString();
-}
-
-template<>
-struct ::THash {
-    inline ui64 operator()(const NKikimr::NOlap::TUnifiedBlobId& a) const {
-        return a.Hash();
-    }
-};
-
-template <>
-struct THash {
-    inline size_t operator() (const NKikimr::NOlap::TBlobRange& key) const {
-        return key.Hash();
-    }
-};
-
-template <>
-struct THash {
-    inline size_t operator() (const NKikimr::NOlap::TEvictedBlob& key) const {
-        return key.Hash();
-    }
-};
+#include "common/blob.h"
diff --git a/ydb/core/tx/columnshard/blob_cache.cpp b/ydb/core/tx/columnshard/blob_cache.cpp
index 123fefbbacea..0287b876d509 100644
--- a/ydb/core/tx/columnshard/blob_cache.cpp
+++ b/ydb/core/tx/columnshard/blob_cache.cpp
@@ -62,18 +62,8 @@ class TBlobCache: public TActorBootstrapped {
         // (e.g. DS blobs from the same tablet residing on the same DS group, or 2 small blobs from the same tablet)
         std::tuple BlobSource() const {
             const TUnifiedBlobId& blobId = BlobRange.BlobId;
-
             Y_ABORT_UNLESS(blobId.IsValid());
-
-            if (blobId.IsDsBlob()) {
-                // Tablet & group restriction
-                return {blobId.GetTabletId(), blobId.GetDsGroup(), ReadVariant()};
-            } else if (blobId.IsSmallBlob()) {
-                // Tablet restriction, no group restrictions
-                return {blobId.GetTabletId(), 0, ReadVariant()};
-            }
-
-            return {0, 0, EReadVariant::FAST};
+            return {blobId.GetTabletId(), blobId.GetDsGroup(), ReadVariant()};
         }
     };
 
@@ -409,7 +399,6 @@ class TBlobCache: public TActorBootstrapped {
             ui64 requestSize = 0;
             ui32 dsGroup = std::get<1>(target);
             TReadItem::EReadVariant readVariant = std::get<2>(target);
-            Y_ABORT_UNLESS(rangesGroup.begin()->BlobId.IsDsBlob());
 
             std::vector dsReads;
 
diff --git a/ydb/core/tx/columnshard/blob_cache.h b/ydb/core/tx/columnshard/blob_cache.h
index d65dc6aa6242..75e0ccf0a677 100644
--- a/ydb/core/tx/columnshard/blob_cache.h
+++ b/ydb/core/tx/columnshard/blob_cache.h
@@ -74,12 +74,14 @@ struct TEvBlobCache {
         TString Data;
         const bool FromCache = false;
         const TInstant ConstructTime = Now();
+        const TString DataSourceId;
 
-        TEvReadBlobRangeResult(const TBlobRange& blobRange, NKikimrProto::EReplyStatus status, const TString& data, const bool fromCache = false)
+        TEvReadBlobRangeResult(const TBlobRange& blobRange, NKikimrProto::EReplyStatus status, const TString& data, const bool fromCache = false, const TString& dataSourceId = Default())
             : BlobRange(blobRange)
             , Status(status)
             , Data(data)
             , FromCache(fromCache)
+            , DataSourceId(dataSourceId)
         {}
     };
 
diff --git a/ydb/core/tx/columnshard/blob_manager.cpp b/ydb/core/tx/columnshard/blob_manager.cpp
deleted file mode 100644
index 83aa1a03f1fc..000000000000
--- a/ydb/core/tx/columnshard/blob_manager.cpp
+++ /dev/null
@@ -1,393 +0,0 @@
-#include "defs.h"
-#include "columnshard_impl.h"
-#include "blob_manager.h"
-#include "blob_cache.h"
-#include 
-
-#include 
-#include "blobs_action/bs/gc.h"
-
-namespace NKikimr::NColumnShard {
-
-TLogoBlobID ParseLogoBlobId(TString blobId) {
-    TLogoBlobID logoBlobId;
-    TString err;
-    if (!TLogoBlobID::Parse(logoBlobId, blobId, err)) {
-        Y_ABORT("%s", err.c_str());
-    }
-    return logoBlobId;
-}
-
-struct TBlobBatch::TBatchInfo : TNonCopyable {
-private:
-    std::vector BlobIds;
-public:
-    const std::vector& GetBlobIds() const {
-        return BlobIds;
-    }
-
-    TIntrusivePtr TabletInfo;
-    TAllocatedGenStepConstPtr GenStepRef;
-    const TBlobsManagerCounters Counters;
-    const ui32 Gen;
-    const ui32 Step;
-    const ui32 Channel;
-
-    std::vector InFlight;
-    i32 InFlightCount;
-    ui64 TotalSizeBytes;
-
-    TBatchInfo(TIntrusivePtr tabletInfo, TAllocatedGenStepConstPtr genStep, ui32 channel, const TBlobsManagerCounters& counters)
-        : TabletInfo(tabletInfo)
-        , GenStepRef(genStep)
-        , Counters(counters)
-        , Gen(std::get<0>(GenStepRef->GenStep))
-        , Step(std::get<1>(GenStepRef->GenStep))
-        , Channel(channel)
-        , InFlightCount(0)
-        , TotalSizeBytes(0) {
-    }
-
-    TUnifiedBlobId NextBlobId(const ui32 blobSize) {
-        InFlight.push_back(true);
-        ++InFlightCount;
-        TotalSizeBytes += blobSize;
-
-        const ui32 dsGroup = TabletInfo->GroupFor(Channel, Gen);
-        TUnifiedBlobId nextBlobId(dsGroup, TLogoBlobID(TabletInfo->TabletID, Gen, Step, Channel, blobSize, BlobIds.size()));
-        BlobIds.emplace_back(std::move(nextBlobId));
-        return BlobIds.back();
-    }
-};
-
-TBlobBatch::TBlobBatch(std::unique_ptr batchInfo)
-    : BatchInfo(std::move(batchInfo))
-{}
-
-TBlobBatch::TBlobBatch() = default;
-TBlobBatch::TBlobBatch(TBlobBatch&& other) = default;
-TBlobBatch& TBlobBatch::operator =(TBlobBatch&& other) = default;
-TBlobBatch::~TBlobBatch() = default;
-
-void TBlobBatch::SendWriteRequest(const TActorContext& ctx, ui32 groupId, const TLogoBlobID& logoBlobId, const TString& data, ui64 cookie, TInstant deadline) {
-    LOG_S_TRACE("EvPut " << data.size() << " bytes to group " << groupId
-        << " at tablet " << BatchInfo->TabletInfo->TabletID);
-
-    auto handleClass = NKikimrBlobStorage::UserData;
-    //auto handleClass = NKikimrBlobStorage::AsyncBlob; // TODO: what's the difference?
-    auto tactic = TEvBlobStorage::TEvPut::TacticMaxThroughput;
-
-    THolder put(
-        new TEvBlobStorage::TEvPut(logoBlobId, data, deadline, handleClass, tactic));
-    SendPutToGroup(ctx, groupId, BatchInfo->TabletInfo.Get(), std::move(put), cookie);
-}
-
-void TBlobBatch::SendWriteBlobRequest(const TString& blobData, const TUnifiedBlobId& blobId, TInstant deadline, const TActorContext& ctx) {
-    Y_ABORT_UNLESS(blobData.size() <= TLimits::GetBlobSizeLimit(), "Blob %" PRISZT" size exceeds the limit %" PRIu64, blobData.size(), TLimits::GetBlobSizeLimit());
-
-    const ui32 groupId = blobId.GetDsGroup();
-    SendWriteRequest(ctx, groupId, blobId.GetLogoBlobId(), blobData, 0, deadline);
-}
-
-void TBlobBatch::OnBlobWriteResult(const TLogoBlobID& blobId, const NKikimrProto::EReplyStatus status) {
-    BatchInfo->Counters.OnPutResult(blobId.BlobSize());
-    Y_ABORT_UNLESS(status == NKikimrProto::OK, "The caller must handle unsuccessful status");
-    Y_ABORT_UNLESS(BatchInfo);
-    Y_ABORT_UNLESS(blobId.Cookie() < BatchInfo->InFlight.size());
-    Y_ABORT_UNLESS(BatchInfo->InFlight[blobId.Cookie()], "Blob %s is already acked!", blobId.ToString().c_str());
-
-    BatchInfo->InFlight[blobId.Cookie()] = false;
-    --BatchInfo->InFlightCount;
-    Y_ABORT_UNLESS(BatchInfo->InFlightCount >= 0);
-}
-
-bool TBlobBatch::AllBlobWritesCompleted() const {
-    Y_ABORT_UNLESS(BatchInfo);
-    return BatchInfo->InFlightCount == 0;
-}
-
-ui64 TBlobBatch::GetBlobCount() const {
-    if (BatchInfo) {
-        return BatchInfo->GetBlobIds().size();
-    }
-    return 0;
-}
-
-ui64 TBlobBatch::GetTotalSize() const {
-    if (BatchInfo) {
-        return BatchInfo->TotalSizeBytes;
-    }
-    return 0;
-}
-
-
-TUnifiedBlobId TBlobBatch::AllocateNextBlobId(const TString& blobData) {
-    return BatchInfo->NextBlobId(blobData.size());
-}
-
-TBlobManager::TBlobManager(TIntrusivePtr tabletInfo, ui32 gen)
-    : TabletInfo(tabletInfo)
-    , CurrentGen(gen)
-    , CurrentStep(0)
-    , BlobCountToTriggerGC(BLOB_COUNT_TO_TRIGGER_GC_DEFAULT, 0, Max())
-    , GCIntervalSeconds(GC_INTERVAL_SECONDS_DEFAULT, 0,  Max())
-{}
-
-void TBlobManager::RegisterControls(NKikimr::TControlBoard& icb) {
-    icb.RegisterSharedControl(BlobCountToTriggerGC, "ColumnShardControls.BlobCountToTriggerGC");
-    icb.RegisterSharedControl(GCIntervalSeconds, "ColumnShardControls.GCIntervalSeconds");
-}
-
-bool TBlobManager::LoadState(IBlobManagerDb& db) {
-    // Load last collected Generation
-    if (!db.LoadLastGcBarrier(LastCollectedGenStep)) {
-        return false;
-    }
-
-    // Load the keep and delete queues
-    std::vector blobsToKeep;
-    std::vector blobsToDelete;
-    TBlobGroupSelector dsGroupSelector(TabletInfo);
-    if (!db.LoadLists(blobsToKeep, blobsToDelete, &dsGroupSelector)) {
-        return false;
-    }
-
-    for (const auto& unifiedBlobId : blobsToDelete) {
-        if (unifiedBlobId.IsDsBlob()) {
-            BlobsToDelete.insert(unifiedBlobId.GetLogoBlobId());
-            BlobsManagerCounters.OnDeleteBlobMarker(unifiedBlobId.BlobSize());
-        } else {
-            Y_ABORT("Unexpected blob id: %s", unifiedBlobId.ToStringNew().c_str());
-        }
-    }
-    BlobsManagerCounters.OnBlobsDelete(BlobsToDelete);
-
-    // Build the list of steps that cannot be garbage collected before Keep flag is set on the blobs
-    THashSet genStepsWithBlobsToKeep;
-    for (const auto& unifiedBlobId : blobsToKeep) {
-        Y_ABORT_UNLESS(unifiedBlobId.IsDsBlob(), "Not a DS blob id in Keep table: %s", unifiedBlobId.ToStringNew().c_str());
-
-        TLogoBlobID blobId = unifiedBlobId.GetLogoBlobId();
-        TGenStep genStep{blobId.Generation(), blobId.Step()};
-        Y_ABORT_UNLESS(genStep > LastCollectedGenStep);
-
-        BlobsToKeep.insert(blobId);
-        BlobsManagerCounters.OnKeepMarker(blobId.BlobSize());
-
-        // Keep + DontKeep (probably in different gen:steps)
-        // GC could go through it to a greater LastCollectedGenStep
-        if (BlobsToDelete.contains(blobId)) {
-            continue;
-        }
-
-        genStepsWithBlobsToKeep.insert(genStep);
-    }
-    BlobsManagerCounters.OnBlobsKeep(BlobsToKeep);
-
-    AllocatedGenSteps.clear();
-    for (const auto& gs : genStepsWithBlobsToKeep) {
-        AllocatedGenSteps.push_back(new TAllocatedGenStep(gs));
-    }
-    AllocatedGenSteps.push_back(new TAllocatedGenStep({CurrentGen, 0}));
-
-    Sort(AllocatedGenSteps.begin(), AllocatedGenSteps.end(), [](const TAllocatedGenStepConstPtr& a, const TAllocatedGenStepConstPtr& b) {
-        return a->GenStep < b->GenStep;
-    });
-
-    return true;
-}
-
-TGenStep TBlobManager::FindNewGCBarrier() {
-    TGenStep newCollectGenStep = LastCollectedGenStep;
-    size_t numFinished = 0;
-    for (auto& allocated : AllocatedGenSteps) {
-        if (!allocated->Finished()) {
-            break;
-        }
-
-        ++numFinished;
-        newCollectGenStep = allocated->GenStep;
-        Y_ABORT_UNLESS(newCollectGenStep > CollectGenStepInFlight);
-    }
-    if (numFinished) {
-        AllocatedGenSteps.erase(AllocatedGenSteps.begin(), AllocatedGenSteps.begin() + numFinished);
-    }
-
-    if (AllocatedGenSteps.empty()) {
-        newCollectGenStep = TGenStep{CurrentGen, CurrentStep};
-    }
-    return newCollectGenStep;
-}
-
-std::shared_ptr TBlobManager::BuildGCTask(const TString& storageId, const std::shared_ptr& manager) {
-    if (BlobsToKeep.empty() && BlobsToDelete.empty() && LastCollectedGenStep == TGenStep{CurrentGen, CurrentStep}) {
-        ACFL_DEBUG("event", "TBlobManager::BuildGCTask skip")("current_gen", CurrentGen)("current_step", CurrentStep);
-        return nullptr;
-    }
-
-    TGenStep newCollectGenStep = FindNewGCBarrier();
-    Y_ABORT_UNLESS(newCollectGenStep >= LastCollectedGenStep);
-
-    PreviousGCTime = AppData()->TimeProvider->Now();
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "PreparePerGroupGCRequests")("gen", std::get<0>(newCollectGenStep))("step", std::get<1>(newCollectGenStep));
-    BlobsManagerCounters.OnNewCollectStep(std::get<0>(newCollectGenStep), std::get<1>(newCollectGenStep));
-    const ui32 channelIdx = BLOB_CHANNEL;
-
-    NOlap::NBlobOperations::NBlobStorage::TGCTask::TGCListsByGroup perGroupGCListsInFlight;
-
-    // Clear all possibly not kept trash in channel's groups: create an event for each group
-    if (FirstGC) {
-        FirstGC = false;
-
-        // TODO: we need only actual channel history here
-        const auto& channelHistory = TabletInfo->ChannelInfo(channelIdx)->History;
-
-        for (auto it = channelHistory.begin(); it != channelHistory.end(); ++it) {
-            perGroupGCListsInFlight[it->GroupID];
-        }
-    }
-
-    // Make per-group Keep/DontKeep lists
-    std::deque keepsToErase;
-    std::deque deletesToErase;
-    {
-        // Add all blobs to keep
-        auto keepBlobIt = BlobsToKeep.begin();
-        for (; keepBlobIt != BlobsToKeep.end(); ++keepBlobIt) {
-            TGenStep genStep{keepBlobIt->Generation(), keepBlobIt->Step()};
-            if (genStep > newCollectGenStep) {
-                break;
-            }
-            ui32 blobGroup = TabletInfo->GroupFor(keepBlobIt->Channel(), keepBlobIt->Generation());
-            perGroupGCListsInFlight[blobGroup].KeepList.insert(*keepBlobIt);
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("to_keep_gc", *keepBlobIt);
-        }
-        BlobsToKeep.erase(BlobsToKeep.begin(), keepBlobIt);
-        BlobsManagerCounters.OnBlobsKeep(BlobsToKeep);
-
-        // Add all blobs to delete
-        auto blobIt = BlobsToDelete.begin();
-        for (; blobIt != BlobsToDelete.end(); ++blobIt) {
-            TGenStep genStep{blobIt->Generation(), blobIt->Step()};
-            if (genStep > newCollectGenStep) {
-                break;
-            }
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("to_delete_gc", *blobIt);
-            ui32 blobGroup = TabletInfo->GroupFor(blobIt->Channel(), blobIt->Generation());
-            NOlap::NBlobOperations::NBlobStorage::TGCTask::TGCLists& gl = perGroupGCListsInFlight[blobGroup];
-            bool skipDontKeep = false;
-            if (gl.KeepList.erase(*blobIt)) {
-                AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("to_keep_gc_remove", *blobIt);
-                // Skipped blobs still need to be deleted from BlobsToKeep table
-                keepsToErase.emplace_back(TUnifiedBlobId(blobGroup, *blobIt));
-
-                if (CurrentGen == blobIt->Generation()) {
-                    // If this blob was created and deleted in the current generation then
-                    // we can skip sending both Keep and DontKeep flags.
-                    // NOTE: its not safe to do this for older generations because there is
-                    // a scenario when Keep flag was sent in the old generation and then tablet restarted
-                    // before getting the result and removing the blob from the Keep list.
-                    skipDontKeep = true;
-                    deletesToErase.emplace_back(TUnifiedBlobId(blobGroup, *blobIt));
-                    ++CountersUpdate.BlobSkippedEntries;
-                }
-            }
-            if (!skipDontKeep) {
-                BlobsManagerCounters.OnCollectDropExplicit(blobIt->BlobSize());
-                gl.DontKeepList.insert(*blobIt);
-            } else {
-                BlobsManagerCounters.OnCollectDropImplicit(blobIt->BlobSize());
-            }
-        }
-        BlobsToDelete.erase(BlobsToDelete.begin(), blobIt);
-        BlobsManagerCounters.OnBlobsDelete(BlobsToDelete);
-    }
-
-    CollectGenStepInFlight = newCollectGenStep;
-    return std::make_shared(storageId, std::move(perGroupGCListsInFlight), newCollectGenStep, std::move(keepsToErase), std::move(deletesToErase), manager);
-}
-
-TBlobBatch TBlobManager::StartBlobBatch(ui32 channel) {
-    ++CountersUpdate.BatchesStarted;
-    Y_ABORT_UNLESS(channel == BLOB_CHANNEL, "Support for mutiple blob channels is not implemented yet");
-    ++CurrentStep;
-    TAllocatedGenStepConstPtr genStepRef = new TAllocatedGenStep({CurrentGen, CurrentStep});
-    AllocatedGenSteps.push_back(genStepRef);
-    auto batchInfo = std::make_unique(TabletInfo, genStepRef, channel, BlobsManagerCounters);
-    return TBlobBatch(std::move(batchInfo));
-}
-
-void TBlobManager::DoSaveBlobBatch(TBlobBatch&& blobBatch, IBlobManagerDb& db) {
-    Y_ABORT_UNLESS(blobBatch.BatchInfo);
-    ++CountersUpdate.BatchesCommitted;
-    CountersUpdate.BlobsWritten += blobBatch.GetBlobCount();
-
-    LOG_S_DEBUG("BlobManager at tablet " << TabletInfo->TabletID
-        << " Save Batch GenStep: " << blobBatch.BatchInfo->Gen << ":" << blobBatch.BatchInfo->Step
-        << " Blob count: " << blobBatch.BatchInfo->GetBlobIds().size());
-
-    // Add this batch to KeepQueue
-    TGenStep edgeGenStep = EdgeGenStep();
-    for (auto&& blobId: blobBatch.BatchInfo->GetBlobIds()) {
-        Y_DEBUG_ABORT_UNLESS(blobId.IsDsBlob(), "Not a DS blob id: %s", blobId.ToStringNew().c_str());
-
-        auto logoBlobId = blobId.GetLogoBlobId();
-        TGenStep genStep{logoBlobId.Generation(), logoBlobId.Step()};
-
-        AFL_VERIFY(genStep > edgeGenStep)("gen_step", genStep)("edge_gen_step", edgeGenStep)("blob_id", blobId.ToStringNew());
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("to_keep", logoBlobId.ToString());
-
-        BlobsManagerCounters.OnKeepMarker(logoBlobId.BlobSize());
-        BlobsToKeep.insert(std::move(logoBlobId));
-        db.AddBlobToKeep(blobId);
-    }
-    BlobsManagerCounters.OnBlobsKeep(BlobsToKeep);
-
-    blobBatch.BatchInfo->GenStepRef.Reset();
-}
-
-void TBlobManager::DeleteBlobOnExecute(const TUnifiedBlobId& blobId, IBlobManagerDb& db) {
-    // Persist deletion intent
-    db.AddBlobToDelete(blobId);
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("to_delete_on_execute", blobId);
-}
-
-void TBlobManager::DeleteBlobOnComplete(const TUnifiedBlobId& blobId) {
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("to_delete_on_complete", blobId);
-    ++CountersUpdate.BlobsDeleted;
-
-    // Check if the deletion needs to be delayed until the blob is no longer
-    // used by in-flight requests
-    if (!IsBlobInUsage(blobId)) {
-        LOG_S_DEBUG("BlobManager at tablet " << TabletInfo->TabletID << " Delete Blob " << blobId);
-        TLogoBlobID logoBlobId = blobId.GetLogoBlobId();
-        if (BlobsToDelete.emplace(logoBlobId).second) {
-            BlobsManagerCounters.OnDeleteBlobMarker(blobId.BlobSize());
-            BlobsManagerCounters.OnBlobsDelete(BlobsToDelete);
-        }
-    } else {
-        BlobsManagerCounters.OnDeleteBlobDelayedMarker(blobId.BlobSize());
-        LOG_S_DEBUG("BlobManager at tablet " << TabletInfo->TabletID << " Delay Delete Blob " << blobId);
-        BlobsToDeleteDelayed.insert(blobId.GetLogoBlobId());
-    }
-}
-
-void TBlobManager::OnGCFinished(const TGenStep& genStep, IBlobManagerDb& db) {
-    LastCollectedGenStep = genStep;
-    db.SaveLastGcBarrier(LastCollectedGenStep);
-    CollectGenStepInFlight.reset();
-}
-
-void TBlobManager::OnBlobFree(const TUnifiedBlobId& blobId) {
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "blob_free")("blob_id", blobId);
-    // Check if the blob is marked for delayed deletion
-    const TLogoBlobID logoBlobId = blobId.GetLogoBlobId();
-    if (BlobsToDeleteDelayed.erase(logoBlobId)) {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("blob_id", blobId)("event", "blob_delayed_deleted");
-        BlobsToDelete.insert(logoBlobId);
-        BlobsManagerCounters.OnBlobsDelete(BlobsToDelete);
-        BlobsManagerCounters.OnDeleteBlobMarker(logoBlobId.BlobSize());
-    }
-}
-
-}
diff --git a/ydb/core/tx/columnshard/blob_manager.h b/ydb/core/tx/columnshard/blob_manager.h
deleted file mode 100644
index a769a417aab7..000000000000
--- a/ydb/core/tx/columnshard/blob_manager.h
+++ /dev/null
@@ -1,233 +0,0 @@
-#pragma once
-
-#include "blob.h"
-#include "blobs_action/blob_manager_db.h"
-#include "blobs_action/abstract/storage.h"
-#include "counters/blobs_manager.h"
-
-#include 
-#include 
-#include 
-
-#include 
-
-namespace NKikimr::NOlap::NBlobOperations::NBlobStorage {
-class TGCTask;
-}
-
-namespace NKikimr::NColumnShard {
-
-using NOlap::TUnifiedBlobId;
-using NOlap::TBlobRange;
-using NOlap::TEvictedBlob;
-using NOlap::EEvictState;
-using NKikimrTxColumnShard::TEvictMetadata;
-
-
-// A batch of blobs that are written by a single task.
-// The batch is later saved or discarded as a whole.
-class TBlobBatch : public TMoveOnly {
-    friend class TBlobManager;
-
-    struct TBatchInfo;
-
-    std::unique_ptr BatchInfo;
-
-private:
-    explicit TBlobBatch(std::unique_ptr batchInfo);
-
-    void SendWriteRequest(const TActorContext& ctx, ui32 groupId, const TLogoBlobID& logoBlobId,
-        const TString& data, ui64 cookie, TInstant deadline);
-
-public:
-    TBlobBatch();
-    TBlobBatch(TBlobBatch&& other);
-    TBlobBatch& operator = (TBlobBatch&& other);
-    ~TBlobBatch();
-
-    // Write new blob as a part of this batch
-    void SendWriteBlobRequest(const TString& blobData, const TUnifiedBlobId& blobId, TInstant deadline, const TActorContext& ctx);
-
-    TUnifiedBlobId AllocateNextBlobId(const TString& blobData);
-
-    // Called with the result of WriteBlob request
-    void OnBlobWriteResult(const TLogoBlobID& blobId, const NKikimrProto::EReplyStatus status);
-
-    // Tells if all WriteBlob requests got corresponding results
-    bool AllBlobWritesCompleted() const;
-
-    // Number of blobs in the batch
-    ui64 GetBlobCount() const;
-
-    // Size of all blobs in the batch
-    ui64 GetTotalSize() const;
-};
-
-class IBlobManagerDb;
-
-// An interface for writing and deleting blobs for the ColumnShard index management.
-// All garbage collection related logic is hidden inside the implementation.
-class IBlobManager {
-protected:
-    virtual void DoSaveBlobBatch(TBlobBatch&& blobBatch, IBlobManagerDb& db) = 0;
-public:
-    static constexpr ui32 BLOB_CHANNEL = 2;
-    virtual ~IBlobManager() = default;
-
-    // Allocates a temporary blob batch with the BlobManager. If the tablet crashes or if
-    // this object is destroyed without doing SaveBlobBatch then all blobs in this batch
-    // will get garbage-collected.
-    virtual TBlobBatch StartBlobBatch(ui32 channel = BLOB_CHANNEL) = 0;
-
-    // This method is called in the same transaction in which the user saves references to blobs
-    // in some LocalDB table. It tells the BlobManager that the blobs are becoming permanently saved.
-    // NOTE: At this point all blob writes must be already acknowledged.
-    void SaveBlobBatch(TBlobBatch&& blobBatch, IBlobManagerDb& db) {
-        if (blobBatch.GetBlobCount() == 0) {
-            return;
-        }
-        return DoSaveBlobBatch(std::move(blobBatch), db);
-    }
-
-    virtual void DeleteBlobOnExecute(const TUnifiedBlobId& blobId, IBlobManagerDb& db) = 0;
-    virtual void DeleteBlobOnComplete(const TUnifiedBlobId& blobId) = 0;
-};
-
-// An interface for exporting and caching exported blobs out of ColumnShard index to external storages like S3.
-// Just do not mix it with IBlobManager that use out storage model.
-class IBlobExporter {
-protected:
-    ~IBlobExporter() = default;
-
-public:
-    // Lazily export blob to external object store. Keep it available via blobId.
-    virtual bool ExportOneToOne(TEvictedBlob&& evict, const TEvictMetadata& meta, IBlobManagerDb& db) = 0;
-    virtual bool DropOneToOne(const TUnifiedBlobId& blobId, IBlobManagerDb& db) = 0;
-    virtual bool UpdateOneToOne(TEvictedBlob& evict, IBlobManagerDb& db, bool& dropped) = 0;
-    virtual bool EraseOneToOne(const TEvictedBlob& evict, IBlobManagerDb& db) = 0;
-    virtual bool LoadOneToOneExport(IBlobManagerDb& db, THashSet& droppedEvicting) = 0;
-    virtual TEvictedBlob GetEvicted(const TUnifiedBlobId& blob, TEvictMetadata& meta) = 0;
-    virtual TEvictedBlob GetDropped(const TUnifiedBlobId& blobId, TEvictMetadata& meta) = 0;
-    virtual void GetCleanupBlobs(THashMap>& tierBlobs,
-                                const THashSet& allowList = {}) const = 0;
-    virtual void GetReexportBlobs(THashMap>& tierBlobs) const = 0;
-    virtual bool HasExternBlobs() const = 0;
-};
-
-// A ref-counted object to keep track when GC barrier can be moved to some step.
-// This means that all needed blobs below this step have been KeepFlag-ed and Ack-ed
-struct TAllocatedGenStep : public TThrRefBase {
-    const TGenStep GenStep;
-
-    explicit TAllocatedGenStep(const TGenStep& genStep)
-        : GenStep(genStep)
-    {}
-
-    bool Finished() const {
-        return RefCount() == 1;
-    }
-};
-
-using TAllocatedGenStepConstPtr = TIntrusiveConstPtr;
-
-struct TBlobManagerCounters {
-    ui64 BatchesStarted = 0;
-    ui64 BatchesCommitted = 0;
-    // TODO: ui64 BatchesDiscarded = 0; // Can we count them?
-    ui64 BlobsWritten = 0;
-    ui64 BlobsDeleted = 0;
-    ui64 BlobKeepEntries = 0;
-    ui64 BlobDontKeepEntries = 0;
-    ui64 BlobSkippedEntries = 0;
-    ui64 GcRequestsSent = 0;
-};
-
-// The implementation of BlobManager that hides all GC-related details
-class TBlobManager : public IBlobManager, public NOlap::TCommonBlobsTracker {
-private:
-    static constexpr size_t BLOB_COUNT_TO_TRIGGER_GC_DEFAULT = 1000;
-    static constexpr ui64 GC_INTERVAL_SECONDS_DEFAULT = 60;
-
-private:
-    TIntrusivePtr TabletInfo;
-    const ui32 CurrentGen;
-    ui32 CurrentStep;
-    TControlWrapper BlobCountToTriggerGC;
-    TControlWrapper GCIntervalSeconds;
-    std::optional CollectGenStepInFlight;
-    // Lists of blobs that need Keep flag to be set
-    TSet BlobsToKeep;
-    // Lists of blobs that need DoNotKeep flag to be set
-    TSet BlobsToDelete;
-
-    // List of blobs that are marked for deletion but are still used by in-flight requests
-    TSet BlobsToDeleteDelayed;
-
-    // Sorted queue of GenSteps that have in-flight BlobBatches
-    TDeque AllocatedGenSteps;
-
-    // The Gen:Step that has been acknowledged by the Distributed Storage
-    TGenStep LastCollectedGenStep = {0, 0};
-
-    // The barrier in the current in-flight GC request(s)
-    bool FirstGC = true;
-
-    const TBlobsManagerCounters BlobsManagerCounters = TBlobsManagerCounters("BlobsManager");
-
-    // Stores counter updates since last call to GetCountersUpdate()
-    // Then the counters are reset and start accumulating new delta
-    TBlobManagerCounters CountersUpdate;
-
-    ui64 PerGenerationCounter = 1;
-
-    TInstant PreviousGCTime; // Used for delaying next GC if there are too few blobs to collect
-
-    virtual void DoSaveBlobBatch(TBlobBatch&& blobBatch, IBlobManagerDb& db) override;
-public:
-    TBlobManager(TIntrusivePtr tabletInfo, ui32 gen);
-
-    virtual void OnBlobFree(const TUnifiedBlobId& blobId) override;
-
-    const TBlobsManagerCounters& GetCounters() const {
-        return BlobsManagerCounters;
-    }
-
-    ui64 GetTabletId() const {
-        return TabletInfo->TabletID;
-    }
-
-    ui64 GetCurrentGen() const {
-        return CurrentGen;
-    }
-
-    void RegisterControls(NKikimr::TControlBoard& icb);
-
-    // Loads the state at startup
-    bool LoadState(IBlobManagerDb& db);
-
-    // Prepares Keep/DontKeep lists and GC barrier
-    std::shared_ptr BuildGCTask(const TString& storageId, const std::shared_ptr& manager);
-
-    void OnGCFinished(const TGenStep& genStep, IBlobManagerDb& db);
-
-    TBlobManagerCounters GetCountersUpdate() {
-        TBlobManagerCounters res = CountersUpdate;
-        CountersUpdate = TBlobManagerCounters();
-        return res;
-    }
-
-    // Implementation of IBlobManager interface
-    TBlobBatch StartBlobBatch(ui32 channel = BLOB_CHANNEL) override;
-    void DeleteBlobOnExecute(const TUnifiedBlobId& blobId, IBlobManagerDb& db) override;
-    void DeleteBlobOnComplete(const TUnifiedBlobId& blobId) override;
-private:
-    TGenStep FindNewGCBarrier();
-
-    bool ExtractEvicted(TEvictedBlob& evict, TEvictMetadata& meta, bool fromDropped = false);
-
-    TGenStep EdgeGenStep() const {
-        return CollectGenStepInFlight ? *CollectGenStepInFlight : LastCollectedGenStep;
-    }
-};
-
-}
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/action.cpp b/ydb/core/tx/columnshard/blobs_action/abstract/action.cpp
index fdd3fd5adba1..f1d2e4e051ee 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/action.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/action.cpp
@@ -3,16 +3,4 @@
 
 namespace NKikimr::NOlap {
 
-std::shared_ptr TBlobsAction::GetWriting(const TPortionInfo& portionInfo) {
-    return GetStorageAction(portionInfo.GetBlobsStorage()->GetStorageId()).GetWriting(ConsumerId);
-}
-
-std::shared_ptr TBlobsAction::GetReading(const TPortionInfo& portionInfo) {
-    return GetStorageAction(portionInfo.GetBlobsStorage()->GetStorageId()).GetReading(ConsumerId);
-}
-
-std::shared_ptr TBlobsAction::GetRemoving(const TPortionInfo& portionInfo) {
-    return GetStorageAction(portionInfo.GetBlobsStorage()->GetStorageId()).GetRemoving(ConsumerId);
-}
-
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/action.h b/ydb/core/tx/columnshard/blobs_action/abstract/action.h
index 6f10c41d9169..90d5959e51c4 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/action.h
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/action.h
@@ -22,13 +22,13 @@ class TStorageAction {
 
     }
 
-    const std::shared_ptr& GetRemoving(const TString& consumerId) {
+    const std::shared_ptr& GetRemoving(const NBlobOperations::EConsumer consumerId) {
         if (!Removing) {
             Removing = Storage->StartDeclareRemovingAction(consumerId);
         }
         return Removing;
     }
-    const std::shared_ptr& GetWriting(const TString& consumerId) {
+    const std::shared_ptr& GetWriting(const NBlobOperations::EConsumer consumerId) {
         if (!Writing) {
             Writing = Storage->StartWritingAction(consumerId);
         }
@@ -37,7 +37,7 @@ class TStorageAction {
     const std::shared_ptr& GetWritingOptional() const {
         return Writing;
     }
-    const std::shared_ptr& GetReading(const TString& consumerId) {
+    const std::shared_ptr& GetReading(const NBlobOperations::EConsumer consumerId) {
         if (!Reading) {
             Reading = Storage->StartReadingAction(consumerId);
         }
@@ -55,9 +55,9 @@ class TStorageAction {
         return !!Writing;
     }
 
-    void OnExecuteTxAfterAction(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
+    void OnExecuteTxAfterAction(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
         if (Removing) {
-            Removing->OnExecuteTxAfterRemoving(self, dbBlobs, blobsWroteSuccessfully);
+            Removing->OnExecuteTxAfterRemoving(dbBlobs, blobsWroteSuccessfully);
         }
         if (Writing) {
             Writing->OnExecuteTxAfterWrite(self, dbBlobs, blobsWroteSuccessfully);
@@ -66,7 +66,7 @@ class TStorageAction {
 
     void OnCompleteTxAfterAction(NColumnShard::TColumnShard& self, const bool blobsWroteSuccessfully) {
         if (Removing) {
-            Removing->OnCompleteTxAfterRemoving(self, blobsWroteSuccessfully);
+            Removing->OnCompleteTxAfterRemoving(blobsWroteSuccessfully);
         }
         if (Writing) {
             Writing->OnCompleteTxAfterWrite(self, blobsWroteSuccessfully);
@@ -78,7 +78,7 @@ class TBlobsAction {
 private:
     std::shared_ptr Storages;
     THashMap StorageActions;
-    const TString ConsumerId;
+    const NBlobOperations::EConsumer ConsumerId;
 
     TStorageAction& GetStorageAction(const TString& storageId) {
         auto it = StorageActions.find(storageId);
@@ -88,13 +88,21 @@ class TBlobsAction {
         return it->second;
     }
 public:
-    explicit TBlobsAction(std::shared_ptr storages, const TString& consumerId)
+    explicit TBlobsAction(std::shared_ptr storages, const NBlobOperations::EConsumer consumerId)
         : Storages(storages)
         , ConsumerId(consumerId)
     {
 
     }
 
+    TString GetStorageIds() const {
+        TStringBuilder sb;
+        for (auto&& i : StorageActions) {
+            sb << i.first << ",";
+        }
+        return sb;
+    }
+
     ui32 GetWritingBlobsCount() const {
         ui32 result = 0;
         for (auto&& [_, action] : StorageActions) {
@@ -135,16 +143,22 @@ class TBlobsAction {
         return result;
     }
 
-    bool NeedDraftWritingTransaction() const {
+    [[nodiscard]] TConclusion NeedDraftWritingTransaction() const {
+        bool hasWriting = false;
         for (auto&& i : GetWritingActions()) {
             if (i->NeedDraftTransaction()) {
                 return true;
             }
+            hasWriting = true;
+        }
+        if (hasWriting) {
+            return false;
+        } else {
+            return TConclusionStatus::Fail("has not writings");
         }
-        return false;
     }
 
-    void OnExecuteTxAfterAction(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
+    void OnExecuteTxAfterAction(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
         for (auto&& i : StorageActions) {
             i.second.OnExecuteTxAfterAction(self, dbBlobs, blobsWroteSuccessfully);
         }
@@ -160,20 +174,14 @@ class TBlobsAction {
         return GetStorageAction(storageId).GetRemoving(ConsumerId);
     }
 
-    std::shared_ptr GetRemoving(const TPortionInfo& portionInfo);
-
     std::shared_ptr GetWriting(const TString& storageId) {
         return GetStorageAction(storageId).GetWriting(ConsumerId);
     }
 
-    std::shared_ptr GetWriting(const TPortionInfo& portionInfo);
-
     std::shared_ptr GetReading(const TString& storageId) {
         return GetStorageAction(storageId).GetReading(ConsumerId);
     }
 
-    std::shared_ptr GetReading(const TPortionInfo& portionInfo);
-
 };
 
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/blob_set.cpp b/ydb/core/tx/columnshard/blobs_action/abstract/blob_set.cpp
new file mode 100644
index 000000000000..b0952746b9ba
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/blob_set.cpp
@@ -0,0 +1,57 @@
+#include "blob_set.h"
+
+#include 
+
+#include 
+
+namespace NKikimr::NOlap {
+
+NKikimrColumnShardBlobOperationsProto::TTabletByBlob TTabletByBlob::SerializeToProto() const {
+    NKikimrColumnShardBlobOperationsProto::TTabletByBlob result;
+    for (auto&& i : Data) {
+        auto* blobsProto = result.AddBlobs();
+        blobsProto->SetBlobId(i.first.ToStringNew());
+        blobsProto->SetTabletId((ui64)i.second);
+    }
+    return result;
+}
+
+NKikimr::TConclusionStatus TTabletByBlob::DeserializeFromProto(const NKikimrColumnShardBlobOperationsProto::TTabletByBlob& proto) {
+    for (auto&& i : proto.GetBlobs()) {
+        auto parse = TUnifiedBlobId::BuildFromString(i.GetBlobId(), nullptr);
+        if (!parse) {
+            return parse;
+        }
+        AFL_VERIFY(Data.emplace(*parse, (TTabletId)i.GetTabletId()).second);
+    }
+    return TConclusionStatus::Success();
+}
+
+NKikimrColumnShardBlobOperationsProto::TTabletsByBlob TTabletsByBlob::SerializeToProto() const {
+    NKikimrColumnShardBlobOperationsProto::TTabletsByBlob result;
+    for (auto&& i : Data) {
+        auto* blobsProto = result.AddBlobs();
+        blobsProto->SetBlobId(i.first.ToStringNew());
+        for (auto&& t : i.second) {
+            blobsProto->AddTabletIds((ui64)t);
+        }
+    }
+    return result;
+}
+
+NKikimr::TConclusionStatus TTabletsByBlob::DeserializeFromProto(const NKikimrColumnShardBlobOperationsProto::TTabletsByBlob& proto) {
+    for (auto&& i : proto.GetBlobs()) {
+        auto parse = TUnifiedBlobId::BuildFromString(i.GetBlobId(), nullptr);
+        if (!parse) {
+            return parse;
+        }
+        auto it = Data.emplace(*parse, THashSet()).first;
+        for (auto&& t : i.GetTabletIds()) {
+            AFL_VERIFY(it->second.emplace((TTabletId)t).second);
+            ++Size;
+        }
+    }
+    return TConclusionStatus::Success();
+}
+
+}
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/blob_set.h b/ydb/core/tx/columnshard/blobs_action/abstract/blob_set.h
new file mode 100644
index 000000000000..756f0edb0a6f
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/blob_set.h
@@ -0,0 +1,523 @@
+#pragma once
+#include 
+#include 
+
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimrColumnShardBlobOperationsProto {
+class TTabletByBlob;
+class TTabletsByBlob;
+}
+
+namespace NKikimr::NOlap {
+
+class TTabletByBlob {
+private:
+    THashMap Data;
+public:
+    NKikimrColumnShardBlobOperationsProto::TTabletByBlob SerializeToProto() const;
+
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardBlobOperationsProto::TTabletByBlob& proto);
+
+    THashMap::const_iterator begin() const {
+        return Data.begin();
+    }
+
+    THashMap::const_iterator end() const {
+        return Data.end();
+    }
+
+    const THashMap* operator->() const {
+        return &Data;
+    }
+
+    THashMap* operator->() {
+        return &Data;
+    }
+
+};
+
+class TTabletsByBlob {
+private:
+    THashMap> Data;
+    i32 Size = 0;
+public:
+    ui32 GetSize() const {
+        return Size;
+    }
+
+    void Clear() {
+        Data.clear();
+        Size = 0;
+    }
+
+    NKikimrColumnShardBlobOperationsProto::TTabletsByBlob SerializeToProto() const;
+
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardBlobOperationsProto::TTabletsByBlob& proto);
+
+    THashMap>::const_iterator begin() const {
+        return Data.begin();
+    }
+
+    THashMap>::const_iterator end() const {
+        return Data.end();
+    }
+
+    bool Contains(const TTabletId tabletId, const TUnifiedBlobId& blobId) const {
+        auto it = Data.find(blobId);
+        if (it == Data.end()) {
+            return false;
+        }
+        return it->second.contains(tabletId);
+    }
+
+    const THashSet* Find(const TUnifiedBlobId& blobId) const {
+        auto it = Data.find(blobId);
+        if (it == Data.end()) {
+            return nullptr;
+        }
+        return &it->second;
+    }
+
+    bool IsEmpty() const {
+        return Data.empty();
+    }
+    using TGenStep = std::tuple;
+    std::deque GroupByGenStep() const {
+        std::deque result;
+        for (const auto& i : Data) {
+            result.emplace_back(i.first);
+        }
+        const auto pred = [](const TUnifiedBlobId& l, const TUnifiedBlobId& r) {
+            return TGenStep(l.GetLogoBlobId().Generation(), l.GetLogoBlobId().Step()) < TGenStep(r.GetLogoBlobId().Generation(), r.GetLogoBlobId().Step());
+        };
+        std::sort(result.begin(), result.end(), pred);
+        return result;
+    }
+    template 
+    TTabletsByBlob ExtractBlobs(const TFilter& filter, const std::optional countLimit = {}) {
+        TTabletsByBlob result;
+        THashSet idsRemove;
+        ui32 count = 0;
+        for (auto&& i : Data) {
+            if (filter(i.first, i.second)) {
+                idsRemove.emplace(i.first);
+                Size -= i.second.size();
+                result.Data.emplace(i.first, i.second);
+                result.Size += i.second.size();
+                count += i.second.size();
+                if (countLimit && count >= *countLimit) {
+                    break;
+                }
+            }
+        }
+        for (auto&& i : idsRemove) {
+            Data.erase(i);
+        }
+        return result;
+    }
+
+    class TIterator {
+    private:
+        const TTabletsByBlob& Owner;
+        THashMap>::const_iterator BlobsIterator;
+        THashSet::const_iterator TabletsIterator;
+    public:
+        TIterator(const TTabletsByBlob& owner)
+            : Owner(owner) {
+            BlobsIterator = Owner.Data.begin();
+            if (BlobsIterator != Owner.Data.end()) {
+                TabletsIterator = BlobsIterator->second.begin();
+            }
+        }
+
+        const TUnifiedBlobId& GetBlobId() const {
+            AFL_VERIFY(IsValid());
+            return BlobsIterator->first;
+        }
+
+        TTabletId GetTabletId() const {
+            AFL_VERIFY(IsValid());
+            return *TabletsIterator;
+        }
+
+        bool IsValid() const {
+            return BlobsIterator != Owner.Data.end() && TabletsIterator != BlobsIterator->second.end();
+        }
+
+        void operator++() {
+            AFL_VERIFY(IsValid());
+            ++TabletsIterator;
+            if (TabletsIterator == BlobsIterator->second.end()) {
+                ++BlobsIterator;
+                if (BlobsIterator != Owner.Data.end()) {
+                    TabletsIterator = BlobsIterator->second.begin();
+                }
+            }
+        }
+    };
+
+    TIterator GetIterator() const {
+        return TIterator(*this);
+    }
+
+    bool ExtractFront(TTabletId& tabletId, TUnifiedBlobId& blobId) {
+        if (Data.empty()) {
+            return false;
+        }
+        auto& b = Data.begin()->second;
+        AFL_VERIFY(b.size());
+        tabletId = *b.begin();
+        blobId = Data.begin()->first;
+        b.erase(b.begin());
+        if (b.empty()) {
+            Data.erase(Data.begin());
+        }
+        AFL_VERIFY(--Size >= 0);
+        return true;
+    }
+
+    bool ExtractFrontTo(TTabletsByBlob& dest) {
+        TTabletId tabletId;
+        TUnifiedBlobId blobId;
+        if (!ExtractFront(tabletId, blobId)) {
+            return false;
+        }
+        AFL_VERIFY(dest.Add(tabletId, blobId));
+        return true;
+    }
+
+    bool ExtractBlobTo(const TUnifiedBlobId& blobId, TTabletsByBlob& dest) {
+        auto it = Data.find(blobId);
+        if (it == Data.end()) {
+            return false;
+        }
+        AFL_VERIFY(dest.Add(blobId, it->second));
+        Size -= it->second.size();
+        AFL_VERIFY(Size >= 0);
+        Data.erase(it);
+        return true;
+    }
+
+    bool Add(const TTabletId tabletId, const TUnifiedBlobId& blobId) {
+        THashSet hashSet = {blobId};
+        return Add(tabletId, hashSet);
+    }
+
+    bool Add(const TTabletsByBlob& blobs) {
+        bool uniqueOnly = true;
+        for (auto&& i : blobs.Data) {
+            if (!Add(i.first, i.second)) {
+                uniqueOnly = false;
+            }
+        }
+        return uniqueOnly;
+    }
+
+    bool Add(const TTabletId tabletId, const THashSet& blobIds) {
+        bool hasSkipped = false;
+        for (auto&& i : blobIds) {
+            auto it = Data.find(i);
+            if (it == Data.end()) {
+                THashSet tabletsLocal = {tabletId};
+                it = Data.emplace(i, tabletsLocal).first;
+                Size += 1;
+            } else {
+                if (!it->second.emplace(tabletId).second) {
+                    hasSkipped = true;
+                } else {
+                    Size += 1;
+                }
+            }
+        }
+        return !hasSkipped;
+    }
+
+    bool Add(const TUnifiedBlobId& blobId, const THashSet& tabletIds) {
+        bool hasSkipped = false;
+        if (tabletIds.empty()) {
+            return true;
+        }
+        auto& hashSet = Data[blobId];
+        for (auto&& i : tabletIds) {
+            if (!hashSet.emplace(i).second) {
+                hasSkipped = true;
+            } else {
+                Size += 1;
+            }
+        }
+        return !hasSkipped;
+    }
+
+    bool Remove(const TTabletId tabletId, const TUnifiedBlobId& blobId) {
+        auto it = Data.find(blobId);
+        if (it == Data.end()) {
+            return false;
+        }
+        auto itTablet = it->second.find(tabletId);
+        if (itTablet == it->second.end()) {
+            return false;
+        }
+        it->second.erase(itTablet);
+        AFL_VERIFY(--Size >= 0);
+        if (it->second.empty()) {
+            Data.erase(it);
+        }
+        return true;
+    }
+};
+
+class TBlobsByTablet {
+private:
+    THashMap> Data;
+public:
+    class TIterator {
+    private:
+        const TBlobsByTablet* Owner;
+        THashMap>::const_iterator TabletsIterator;
+        THashSet::const_iterator BlobsIterator;
+    public:
+        TIterator(const TBlobsByTablet& owner)
+            : Owner(&owner)
+        {
+            TabletsIterator = Owner->Data.begin();
+            if (TabletsIterator != Owner->Data.end()) {
+                BlobsIterator = TabletsIterator->second.begin();
+            }
+        }
+
+        const TUnifiedBlobId& GetBlobId() const {
+            AFL_VERIFY(IsValid());
+            return *BlobsIterator;
+        }
+
+        TTabletId GetTabletId() const {
+            AFL_VERIFY(IsValid());
+            return TabletsIterator->first;
+        }
+
+        bool IsValid() const {
+            return TabletsIterator != Owner->Data.end() && BlobsIterator != TabletsIterator->second.end();
+        }
+
+        void operator++() {
+            AFL_VERIFY(IsValid());
+            ++BlobsIterator;
+            if (BlobsIterator == TabletsIterator->second.end()) {
+                ++TabletsIterator;
+                if (TabletsIterator != Owner->Data.end()) {
+                    BlobsIterator = TabletsIterator->second.begin();
+                }
+            }
+        }
+    };
+
+    TIterator GetIterator() const {
+        return TIterator(*this);
+    }
+
+    THashMap>::const_iterator begin() const {
+        return Data.begin();
+    }
+
+    THashMap>::const_iterator end() const {
+        return Data.end();
+    }
+
+    void GetFront(const ui32 count, TBlobsByTablet& result) const {
+        TBlobsByTablet resultLocal;
+        ui32 countReady = 0;
+        for (auto&& i : Data) {
+            for (auto&& b : i.second) {
+                if (countReady >= count) {
+                    std::swap(result, resultLocal);
+                    return;
+                }
+                resultLocal.Add(i.first, b);
+                ++countReady;
+            }
+        }
+        std::swap(result, resultLocal);
+    }
+
+    const THashSet* Find(const TTabletId tabletId) const {
+        auto it = Data.find(tabletId);
+        if (it == Data.end()) {
+            return nullptr;
+        }
+        return &it->second;
+    }
+
+    void ExtractFront(const ui32 count, TBlobsByTablet* result) {
+        TBlobsByTablet resultLocal;
+        ui32 countLocal = 0;
+        while (Data.size()) {
+            auto& t = *Data.begin();
+            while (t.second.size()) {
+                auto& b = *t.second.begin();
+                if (result && countLocal >= count) {
+                    std::swap(*result, resultLocal);
+                    return;
+                }
+                if (countLocal >= count) {
+                    return;
+                }
+                ++countLocal;
+                if (result) {
+                    resultLocal.Add(t.first, b);
+                }
+                t.second.erase(t.second.begin());
+            }
+            if (t.second.empty()) {
+                Data.erase(Data.begin());
+            }
+        }
+        if (result) {
+            std::swap(*result, resultLocal);
+        }
+    }
+
+    bool Add(const TTabletId tabletId, const TUnifiedBlobId& blobId) {
+        auto it = Data.find(tabletId);
+        if (it == Data.end()) {
+            THashSet hashSet = {blobId};
+            Data.emplace(tabletId, std::move(hashSet));
+            return true;
+        } else {
+            return it->second.emplace(blobId).second;
+        }
+    }
+
+    bool IsEmpty() const {
+        return Data.empty();
+    }
+
+    bool Remove(const TTabletId tabletId, const TUnifiedBlobId& blobId) {
+        auto it = Data.find(tabletId);
+        if (it == Data.end()) {
+            return false;
+        } else {
+            const bool result = it->second.erase(blobId);
+            if (result && it->second.empty()) {
+                Data.erase(it);
+            }
+            return result;
+        }
+    }
+
+    bool Remove(const TTabletId tabletId) {
+        auto it = Data.find(tabletId);
+        if (it == Data.end()) {
+            return false;
+        } else {
+            Data.erase(it);
+            return true;
+        }
+    }
+};
+
+class TBlobsCategories {
+private:
+    TTabletId SelfTabletId;
+    YDB_READONLY_DEF(TBlobsByTablet, Sharing);
+    YDB_ACCESSOR_DEF(TBlobsByTablet, Direct);
+    YDB_READONLY_DEF(TBlobsByTablet, Borrowed);
+public:
+    bool IsEmpty() const {
+        return Sharing.IsEmpty() && Direct.IsEmpty() && Borrowed.IsEmpty();
+    }
+
+    class TIterator {
+    private:
+        const TBlobsCategories* Owner;
+        std::optional Sharing;
+        std::optional Direct;
+        std::optional Borrowed;
+        TBlobsByTablet::TIterator* CurrentIterator = nullptr;
+
+        void SwitchIterator() {
+            CurrentIterator = nullptr;
+            if (Sharing && Sharing->IsValid()) {
+                CurrentIterator = &*Sharing;
+            } else {
+                Sharing.reset();
+            }
+            if (Direct && Direct->IsValid()) {
+                CurrentIterator = &*Direct;
+            } else {
+                Direct.reset();
+            }
+            if (Borrowed && Borrowed->IsValid()) {
+                CurrentIterator = &*Borrowed;
+            } else {
+                Borrowed.reset();
+            }
+        }
+
+    public:
+        TIterator(const TBlobsCategories& owner)
+            : Owner(&owner)
+        {
+            Sharing = Owner->Sharing.GetIterator();
+            Direct = Owner->Direct.GetIterator();
+            Borrowed = Owner->Borrowed.GetIterator();
+            SwitchIterator();
+        }
+
+        const TUnifiedBlobId& GetBlobId() const {
+            AFL_VERIFY(IsValid());
+            return CurrentIterator->GetBlobId();
+        }
+
+        TTabletId GetTabletId() const {
+            AFL_VERIFY(IsValid());
+            return CurrentIterator->GetTabletId();
+        }
+
+        bool IsValid() const {
+            return CurrentIterator && CurrentIterator->IsValid();
+        }
+
+        void operator++() {
+            AFL_VERIFY(IsValid());
+            ++*CurrentIterator;
+            if (!CurrentIterator->IsValid()) {
+                SwitchIterator();
+            }
+        }
+    };
+
+    TIterator GetIterator() const {
+        return TIterator(*this);
+    }
+
+    void AddDirect(const TTabletId tabletId, const TUnifiedBlobId& id) {
+        AFL_VERIFY(Direct.Add(tabletId, id));
+    }
+    void AddBorrowed(const TTabletId tabletId, const TUnifiedBlobId& id) {
+        AFL_VERIFY(Borrowed.Add(tabletId, id));
+    }
+    void AddSharing(const TTabletId tabletId, const TUnifiedBlobId& id) {
+        AFL_VERIFY(Sharing.Add(tabletId, id));
+    }
+    void RemoveSharing(const TTabletId tabletId, const TUnifiedBlobId& id) {
+        Y_UNUSED(Sharing.Remove(tabletId, id));
+    }
+    void RemoveBorrowed(const TTabletId tabletId, const TUnifiedBlobId& id) {
+        Y_UNUSED(Borrowed.Remove(tabletId, id));
+    }
+    TBlobsCategories(const TTabletId selfTabletId)
+        : SelfTabletId(selfTabletId)
+    {
+        Y_UNUSED(SelfTabletId);
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/common.h b/ydb/core/tx/columnshard/blobs_action/abstract/common.h
index 80ec48f7c952..8aa3881fec99 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/common.h
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/common.h
@@ -1,9 +1,11 @@
 #pragma once
-#include 
 #include 
-#include 
+#include 
+
 #include 
 #include 
+#include 
+#include 
 
 namespace NKikimr::NOlap {
 
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/gc.cpp b/ydb/core/tx/columnshard/blobs_action/abstract/gc.cpp
index dc1783692635..816ac9a8dfd2 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/gc.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/gc.cpp
@@ -1,20 +1,34 @@
 #include "gc.h"
 #include 
+#include 
 
 namespace NKikimr::NOlap {
 
 void IBlobsGCAction::OnCompleteTxAfterCleaning(NColumnShard::TColumnShard& self, const std::shared_ptr& taskAction) {
     if (!AbortedFlag) {
+        NActors::TLogContextGuard logGuard = NActors::TLogContextBuilder::Build()("tablet_id", self.TabletID());
         AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "OnCompleteTxAfterCleaning")("action_guid", GetActionGuid());
+        auto storage = self.GetStoragesManager()->GetOperator(GetStorageId());
+        storage->GetSharedBlobs()->OnTransactionCompleteAfterCleaning(BlobsToRemove);
+        for (auto i = BlobsToRemove.GetIterator(); i.IsValid(); ++i) {
+            Counters->OnReply(i.GetBlobId().BlobSize());
+        }
         if (!DoOnCompleteTxAfterCleaning(self, taskAction)) {
             return;
         }
-        taskAction->OnFinished();
+        OnFinished();
+        NYDBTest::TControllers::GetColumnShardController()->OnAfterGCAction(self, *taskAction);
     }
 }
 
-void IBlobsGCAction::OnExecuteTxAfterCleaning(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs) {
+void IBlobsGCAction::OnExecuteTxAfterCleaning(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs) {
     if (!AbortedFlag) {
+        const NActors::TLogContextGuard logGuard = NActors::TLogContextBuilder::Build()("tablet_id", self.TabletID());
+        auto storage = self.GetStoragesManager()->GetOperator(GetStorageId());
+        storage->GetSharedBlobs()->OnTransactionExecuteAfterCleaning(BlobsToRemove, dbBlobs.GetDatabase());
+        for (auto i = BlobsToRemove.GetIterator(); i.IsValid(); ++i) {
+            RemoveBlobIdFromDB(i.GetTabletId(), i.GetBlobId(), dbBlobs);
+        }
         AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "OnExecuteTxAfterCleaning")("action_guid", GetActionGuid());
         return DoOnExecuteTxAfterCleaning(self, dbBlobs);
     }
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/gc.h b/ydb/core/tx/columnshard/blobs_action/abstract/gc.h
index e310b9c4e935..ad381063e79e 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/gc.h
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/gc.h
@@ -1,35 +1,56 @@
 #pragma once
 #include "common.h"
 #include 
+#include 
+#include 
+#include 
+#include 
 
 namespace NKikimr::NColumnShard {
 class TColumnShard;
-class TBlobManagerDb;
 }
 
 namespace NKikimr::NOlap {
+class TBlobManagerDb;
 
 class IBlobsGCAction: public ICommonBlobsAction {
 private:
     using TBase = ICommonBlobsAction;
+protected:
+    TBlobsCategories BlobsToRemove;
+    std::shared_ptr Counters;
 protected:
     bool AbortedFlag = false;
     bool FinishedFlag = false;
 
-    virtual void DoOnExecuteTxAfterCleaning(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs) = 0;
+    virtual void DoOnExecuteTxAfterCleaning(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs) = 0;
     virtual bool DoOnCompleteTxAfterCleaning(NColumnShard::TColumnShard& self, const std::shared_ptr& taskAction) = 0;
+    virtual void RemoveBlobIdFromDB(const TTabletId tabletId, const TUnifiedBlobId& blobId, TBlobManagerDb& dbBlobs) = 0;
+    virtual bool DoIsEmpty() const = 0;
 public:
-    void OnExecuteTxAfterCleaning(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs);
+    void OnExecuteTxAfterCleaning(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs);
     void OnCompleteTxAfterCleaning(NColumnShard::TColumnShard& self, const std::shared_ptr& taskAction);
 
+    const TBlobsCategories& GetBlobsToRemove() const {
+        return BlobsToRemove;
+    }
+
+    bool IsEmpty() const {
+        return BlobsToRemove.IsEmpty() && DoIsEmpty();
+    }
+
     bool IsInProgress() const {
         return !AbortedFlag && !FinishedFlag;
     }
 
-    IBlobsGCAction(const TString& storageId)
+    IBlobsGCAction(const TString& storageId, TBlobsCategories&& blobsToRemove, const std::shared_ptr& counters)
         : TBase(storageId)
+        , BlobsToRemove(std::move(blobsToRemove))
+        , Counters(counters)
     {
-
+        for (auto i = BlobsToRemove.GetIterator(); i.IsValid(); ++i) {
+            Counters->OnRequest(i.GetBlobId().BlobSize());
+        }
     }
 
     void Abort();
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/gc_actor.cpp b/ydb/core/tx/columnshard/blobs_action/abstract/gc_actor.cpp
new file mode 100644
index 000000000000..7877709b4558
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/gc_actor.cpp
@@ -0,0 +1,5 @@
+#include "gc_actor.h"
+
+namespace NKikimr::NOlap::NBlobOperations::NBlobStorage {
+
+}
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/gc_actor.h b/ydb/core/tx/columnshard/blobs_action/abstract/gc_actor.h
new file mode 100644
index 000000000000..009dee623caf
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/gc_actor.h
@@ -0,0 +1,72 @@
+#pragma once
+#include "blob_set.h"
+#include "common.h"
+
+#include 
+
+#include 
+#include 
+
+namespace NKikimr::NOlap::NBlobOperations {
+
+template 
+class TSharedBlobsCollectionActor: public TActorBootstrapped {
+private:
+    using TBase = TActorBootstrapped;
+    const TString OperatorId;
+    TBlobsByTablet BlobIdsByTablets;
+    const TTabletId SelfTabletId;
+    virtual void DoOnSharedRemovingFinished() = 0;
+    void OnSharedRemovingFinished() {
+        SharedRemovingFinished = true;
+        DoOnSharedRemovingFinished();
+    }
+    void Handle(NEvents::TEvDeleteSharedBlobsFinished::TPtr& ev) {
+        AFL_VERIFY(BlobIdsByTablets.Remove((TTabletId)ev->Get()->Record.GetTabletId()));
+        if (BlobIdsByTablets.IsEmpty()) {
+            AFL_VERIFY(!SharedRemovingFinished);
+            OnSharedRemovingFinished();
+        }
+    }
+    void Handle(NActors::TEvents::TEvUndelivered::TPtr& ev) {
+        auto* blobIds = BlobIdsByTablets.Find((TTabletId)ev->Cookie);
+        AFL_VERIFY(blobIds);
+        auto evResend = std::make_unique(TBase::SelfId(), ev->Cookie, OperatorId, *blobIds);
+        NActors::TActivationContext::AsActorContext().Send(MakePipePeNodeCacheID(false),
+            new TEvPipeCache::TEvForward(evResend.release(), ev->Cookie, true), IEventHandle::FlagTrackDelivery, ev->Cookie);
+    }
+protected:
+    bool SharedRemovingFinished = false;
+public:
+    TSharedBlobsCollectionActor(const TString& operatorId, const TTabletId selfTabletId, const TBlobsByTablet& blobIds)
+        : OperatorId(operatorId)
+        , BlobIdsByTablets(blobIds)
+        , SelfTabletId(selfTabletId)
+    {
+
+    }
+
+    STFUNC(StateWork) {
+        switch (ev->GetTypeRewrite()) {
+            hFunc(NEvents::TEvDeleteSharedBlobsFinished, Handle);
+            hFunc(NActors::TEvents::TEvUndelivered, Handle);
+            default:
+                AFL_VERIFY(false)("problem", "unexpected event")("event_type", ev->GetTypeName());
+        }
+    }
+
+    void Bootstrap(const TActorContext& /*ctx*/) {
+        if (BlobIdsByTablets.IsEmpty()) {
+            OnSharedRemovingFinished();
+        } else {
+            for (auto&& i : BlobIdsByTablets) {
+                auto ev = std::make_unique(TBase::SelfId(), (ui64)SelfTabletId, OperatorId, i.second);
+                NActors::TActivationContext::AsActorContext().Send(MakePipePeNodeCacheID(false),
+                    new TEvPipeCache::TEvForward(ev.release(), (ui64)i.first, true), IEventHandle::FlagTrackDelivery, (ui64)i.first);
+            }
+        }
+    }
+
+};
+
+}
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/read.cpp b/ydb/core/tx/columnshard/blobs_action/abstract/read.cpp
index 766dd21da79d..baba7ec7b6c9 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/read.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/read.cpp
@@ -1,82 +1,96 @@
 #include "read.h"
 #include 
+#include 
 
 namespace NKikimr::NOlap {
 
-void IBlobsReadingAction::StartReading(THashMap>&& ranges) {
+void IBlobsReadingAction::StartReading(std::vector&& ranges) {
     AFL_VERIFY(ranges.size());
     AFL_VERIFY(Counters);
     for (auto&& i : ranges) {
-        AFL_VERIFY(i.second.size());
-        for (auto&& br : i.second) {
-            Counters->OnRequest(br.Size);
-        }
+        Counters->OnRequest(i.Size);
     }
-    return DoStartReading(ranges);
-}
-
-void IBlobsReadingAction::ExtractBlobsDataTo(THashMap& result) {
-    AFL_VERIFY(Started);
-    if (result.empty()) {
-        std::swap(result, Replies);
-    } else {
-        for (auto&& i : Replies) {
-            AFL_VERIFY(result.emplace(i.first, std::move(i.second)).second);
-        }
-        Replies.clear();
+    THashSet result;
+    Groups = GroupBlobsForOptimization(std::move(ranges));
+    for (auto&& [range, _] :Groups) {
+        result.emplace(range);
     }
-    RangesForResult.clear();
+    return DoStartReading(std::move(result));
 }
 
 void IBlobsReadingAction::Start(const THashSet& rangesInProgress) {
     Y_ABORT_UNLESS(!Started);
+    Started = true;
+
     Y_ABORT_UNLESS(RangesForRead.size() + RangesForResult.size());
     StartWaitingRanges = TMonotonic::Now();
-    for (auto&& i : RangesForRead) {
-        WaitingRangesCount += i.second.size();
-    }
-    THashMap> rangesFiltered;
+    WaitingRangesCount = RangesForRead.size();
+    std::vector rangesFiltered;
     if (rangesInProgress.empty()) {
-        rangesFiltered = RangesForRead;
+        rangesFiltered.insert(rangesFiltered.end(), RangesForRead.begin(), RangesForRead.end());
     } else {
-        for (auto&& i : RangesForRead) {
-            for (auto&& r : i.second) {
-                if (!rangesInProgress.contains(r)) {
-                    rangesFiltered[r.BlobId].emplace(r);
-                }
+        for (auto&& r : RangesForRead) {
+            if (!rangesInProgress.contains(r)) {
+                rangesFiltered.emplace_back(r);
             }
         }
     }
     if (rangesFiltered.size()) {
         StartReading(std::move(rangesFiltered));
     }
-    Started = true;
     for (auto&& i : RangesForResult) {
+        AFL_VERIFY(i.second.size() == i.first.Size);
         AFL_VERIFY(Replies.emplace(i.first, i.second).second);
     }
 }
 
 void IBlobsReadingAction::OnReadResult(const TBlobRange& range, const TString& data) {
+    auto it = Groups.find(range);
+    AFL_VERIFY(it != Groups.end());
     AFL_VERIFY(Counters);
-    AFL_VERIFY(--WaitingRangesCount >= 0);
+    WaitingRangesCount -= it->second.size();
+    AFL_VERIFY(WaitingRangesCount >= 0);
     Counters->OnReply(range.Size, TMonotonic::Now() - StartWaitingRanges);
-    Replies.emplace(range, data);
+    AFL_VERIFY(data.size() == range.Size);
+    for (auto&& i : it->second) {
+        AFL_VERIFY(i.Offset + i.GetBlobSize() <= range.Offset + data.size());
+        AFL_VERIFY(range.Offset <= i.Offset);
+        Replies.emplace(i, data.substr(i.Offset - range.Offset, i.GetBlobSize()));
+    }
+    Groups.erase(it);
 }
 
 void IBlobsReadingAction::OnReadError(const TBlobRange& range, const TErrorStatus& replyStatus) {
+    auto it = Groups.find(range);
+    AFL_VERIFY(it != Groups.end());
+
     AFL_VERIFY(Counters);
-    AFL_VERIFY(--WaitingRangesCount >= 0);
+    WaitingRangesCount -= it->second.size();
+    AFL_VERIFY(WaitingRangesCount >= 0);
     Counters->OnFail(range.Size, TMonotonic::Now() - StartWaitingRanges);
-    Fails.emplace(range, replyStatus);
+    for (auto&& i : it->second) {
+        Fails.emplace(i, replyStatus);
+    }
+    Groups.erase(it);
 }
 
-void IBlobsReadingAction::AddRange(const TBlobRange& range, const TString& result /*= Default()*/) {
+void IBlobsReadingAction::AddRange(const TBlobRange& range, const std::optional& result /*= {}*/) {
     Y_ABORT_UNLESS(!Started);
     if (!result) {
-        AFL_VERIFY(RangesForRead[range.BlobId].emplace(range).second)("range", range.ToString());
+        AFL_VERIFY(!RangesForResult.contains(range));
+        AFL_VERIFY(RangesForRead.emplace(range).second)("range", range.ToString());
     } else {
-        AFL_VERIFY(RangesForResult.emplace(range, result).second)("range", range.ToString());
+        AFL_VERIFY(result->size() == range.Size);
+        AFL_VERIFY(RangesForResult.emplace(range, *result).second)("range", range.ToString());
+    }
+}
+
+TString TActionReadBlobs::DebugString() const {
+    THashSet ranges;
+    for (auto&& i : Blobs) {
+        ranges.emplace(i.first);
     }
+    return JoinSeq(",", ranges);
 }
 
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/read.h b/ydb/core/tx/columnshard/blobs_action/abstract/read.h
index 06a04c13c521..2a916305f87a 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/read.h
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/read.h
@@ -8,26 +8,175 @@
 
 namespace NKikimr::NOlap {
 
+class TActionReadBlobs {
+private:
+    THashMap Blobs;
+public:
+    TString DebugString() const;
+
+    TActionReadBlobs() = default;
+
+    TActionReadBlobs(THashMap&& blobs)
+        : Blobs(std::move(blobs))
+    {
+        for (auto&& i : Blobs) {
+            AFL_VERIFY(i.second.size());
+        }
+    }
+
+    void Merge(TActionReadBlobs&& item) {
+        for (auto&& i : item.Blobs) {
+            Add(i.first, std::move(i.second));
+        }
+    }
+
+    THashMap::iterator begin() {
+        return Blobs.begin();
+    }
+
+    THashMap::iterator end() {
+        return Blobs.end();
+    }
+
+    ui64 GetTotalBlobsSize() const {
+        ui64 result = 0;
+        for (auto&& i : Blobs) {
+            result += i.second.size();
+        }
+        return result;
+    }
+
+    void Add(THashMap&& blobs) {
+        for (auto&& i : blobs) {
+            AFL_VERIFY(i.second.size());
+            AFL_VERIFY(Blobs.emplace(i.first, std::move(i.second)).second);
+        }
+    }
+
+    void Add(const TBlobRange& range, TString&& data) {
+        AFL_VERIFY(data.size());
+        AFL_VERIFY(Blobs.emplace(range, std::move(data)).second);
+    }
+
+    TString Extract(const TBlobRange& bRange) {
+        auto it = Blobs.find(bRange);
+        AFL_VERIFY(it != Blobs.end());
+        TString result = it->second;
+        Blobs.erase(it);
+        return result;
+    }
+
+    bool IsEmpty() const {
+        return Blobs.empty();
+    }
+};
+
+class TBlobsGlueing {
+public:
+    class TSequentialGluePolicy {
+    public:
+        bool Glue(TBlobRange& currentRange, const TBlobRange& addRange) const {
+            return currentRange.TryGlueWithNext(addRange);
+        }
+    };
+
+    class TBlobGluePolicy {
+    private:
+        const ui64 BlobLimitSize = 8LLU << 20;
+    public:
+        TBlobGluePolicy(const ui64 blobLimitSize)
+            : BlobLimitSize(blobLimitSize)
+        {
+        }
+
+        bool Glue(TBlobRange& currentRange, const TBlobRange& addRange) const {
+            return currentRange.TryGlueSameBlob(addRange, BlobLimitSize);
+        }
+    };
+
+    template 
+    static THashMap> GroupRanges(std::vector&& ranges, const TGluePolicy& policy) {
+        std::sort(ranges.begin(), ranges.end());
+        THashMap> result;
+        std::optional currentRange;
+        std::vector currentList;
+        for (auto&& br : ranges) {
+            if (!currentRange) {
+                currentRange = br;
+            }
+            else if (!policy.Glue(*currentRange, br)) {
+                result.emplace(*currentRange, std::move(currentList));
+                currentRange = br;
+                currentList.clear();
+            }
+            currentList.emplace_back(br);
+        }
+        if (currentRange) {
+            result.emplace(*currentRange, std::move(currentList));
+        }
+        return result;
+    }
+
+};
+
 class IBlobsReadingAction: public ICommonBlobsAction {
 public:
     using TErrorStatus = TConclusionSpecialStatus;
 private:
     using TBase = ICommonBlobsAction;
 
-    THashMap> RangesForRead;
+    THashSet RangesForRead;
     THashMap RangesForResult;
     TMonotonic StartWaitingRanges;
     i32 WaitingRangesCount = 0;
     THashMap Replies;
     THashMap Fails;
+    THashMap> Groups;
     std::shared_ptr Counters;
     bool Started = false;
+    bool DataExtracted = false;
     YDB_ACCESSOR(bool, IsBackgroundProcess, true);
 protected:
-    virtual void DoStartReading(const THashMap>& range) = 0;
-    void StartReading(THashMap>&& ranges);
+    virtual void DoStartReading(THashSet&& range) = 0;
+    void StartReading(std::vector&& ranges);
+    virtual THashMap> GroupBlobsForOptimization(std::vector&& ranges) const = 0;
 public:
 
+    const THashMap>& GetGroups() const {
+        return Groups;
+    }
+
+    void Merge(const std::shared_ptr& action) {
+        AFL_VERIFY(action);
+        AFL_VERIFY(!Started);
+        for (auto&& i : action->RangesForResult) {
+            RangesForResult.emplace(i.first, i.second);
+            auto it = RangesForRead.find(i.first);
+            if (it != RangesForRead.end()) {
+                RangesForRead.erase(it);
+            }
+        }
+        for (auto&& i : action->RangesForResult) {
+            RangesForResult.emplace(i.first, i.second);
+        }
+        for (auto&& i : action->RangesForRead) {
+            if (!RangesForResult.contains(i)) {
+                RangesForRead.emplace(i);
+            }
+        }
+    }
+
+    TActionReadBlobs ExtractBlobsData() {
+        AFL_VERIFY(Started);
+        AFL_VERIFY(IsFinished());
+        AFL_VERIFY(!DataExtracted);
+        DataExtracted = true;
+        auto result = TActionReadBlobs(std::move(Replies));
+        RangesForResult.clear();
+        Replies.clear();
+        return result;
+    }
+
     void SetCounters(std::shared_ptr counters) {
         Counters = counters;
     }
@@ -38,14 +187,10 @@ class IBlobsReadingAction: public ICommonBlobsAction {
 
     }
 
-    void ExtractBlobsDataTo(THashMap& result);
-
     ui64 GetExpectedBlobsSize() const {
         ui64 result = 0;
         for (auto&& i : RangesForRead) {
-            for (auto&& b : i.second) {
-                result += b.Size;
-            }
+            result += i.Size;
         }
         for (auto&& i : RangesForResult) {
             result += i.first.Size;
@@ -54,29 +199,10 @@ class IBlobsReadingAction: public ICommonBlobsAction {
     }
 
     ui64 GetExpectedBlobsCount() const {
-        ui64 result = 0;
-        for (auto&& i : RangesForRead) {
-            result += i.second.size();
-        }
-        return result + RangesForResult.size();
+        return RangesForRead.size() + RangesForResult.size();
     }
 
-    void FillExpectedRanges(THashSet& ranges) const {
-        for (auto&& i : RangesForRead) {
-            for (auto&& b : i.second) {
-                Y_ABORT_UNLESS(ranges.emplace(b).second);
-            }
-        }
-        for (auto&& i : RangesForResult) {
-            Y_ABORT_UNLESS(ranges.emplace(i.first).second);
-        }
-    }
-
-    const THashMap>& GetRangesForRead() const {
-        return RangesForRead;
-    }
-
-    void AddRange(const TBlobRange& range, const TString& result = Default());
+    void AddRange(const TBlobRange& range, const std::optional& result = {});
 
     void Start(const THashSet& rangesInProgress);
     void OnReadResult(const TBlobRange& range, const TString& data);
@@ -91,4 +217,46 @@ class IBlobsReadingAction: public ICommonBlobsAction {
     }
 };
 
+class TReadActionsCollection {
+private:
+    THashMap> Actions;
+public:
+    THashMap>::const_iterator begin() const {
+        return Actions.begin();
+    }
+
+    THashMap>::const_iterator end() const {
+        return Actions.end();
+    }
+
+    THashMap>::iterator begin() {
+        return Actions.begin();
+    }
+
+    THashMap>::iterator end() {
+        return Actions.end();
+    }
+
+    ui32 IsEmpty() const {
+        return Actions.empty();
+    }
+
+    void Add(const std::shared_ptr& action) {
+        auto it = Actions.find(action->GetStorageId());
+        if (it == Actions.end()) {
+            Actions.emplace(action->GetStorageId(), action);
+        } else {
+            it->second->Merge(action);
+        }
+    }
+
+    TReadActionsCollection() = default;
+
+    TReadActionsCollection(const std::vector>& actions) {
+        for (auto&& a: actions) {
+            Add(a);
+        }
+    }
+};
+
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/remove.cpp b/ydb/core/tx/columnshard/blobs_action/abstract/remove.cpp
index f15292cdb3a6..3296333ebcc5 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/remove.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/remove.cpp
@@ -3,12 +3,16 @@
 
 namespace NKikimr::NOlap {
 
-void IBlobsDeclareRemovingAction::DeclareRemove(const TUnifiedBlobId& blobId) {
-    if (DeclaredBlobs.emplace(blobId).second) {
-        ACFL_DEBUG("event", "DeclareRemove")("blob_id", blobId);
+void IBlobsDeclareRemovingAction::DeclareRemove(const TTabletId tabletId, const TUnifiedBlobId& blobId) {
+    if (DeclaredBlobs.Add(tabletId, blobId)) {
+        ACFL_DEBUG("event", "DeclareRemove")("blob_id", blobId)("tablet_id", (ui64)tabletId);
         Counters->OnRequest(blobId.BlobSize());
-        return DoDeclareRemove(blobId);
+        return DoDeclareRemove(tabletId, blobId);
     }
 }
 
+void IBlobsDeclareRemovingAction::DeclareSelfRemove(const TUnifiedBlobId& blobId) {
+    DeclareRemove(SelfTabletId, blobId);
+}
+
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/remove.h b/ydb/core/tx/columnshard/blobs_action/abstract/remove.h
index 2b68a3753c02..e48ae7c2bb54 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/remove.h
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/remove.h
@@ -1,4 +1,5 @@
 #pragma once
+#include "blob_set.h"
 #include "common.h"
 #include 
 #include 
@@ -7,37 +8,37 @@
 
 namespace NKikimr::NColumnShard {
 class TColumnShard;
-class TBlobManagerDb;
 }
 
 namespace NKikimr::NOlap {
+class TBlobManagerDb;
 
 class IBlobsDeclareRemovingAction: public ICommonBlobsAction {
 private:
+    const TTabletId SelfTabletId;
     using TBase = ICommonBlobsAction;
     std::shared_ptr Counters;
-    YDB_READONLY_DEF(THashSet, DeclaredBlobs);
+    YDB_READONLY_DEF(TTabletsByBlob, DeclaredBlobs);
 protected:
-    virtual void DoDeclareRemove(const TUnifiedBlobId& blobId) = 0;
-    virtual void DoOnExecuteTxAfterRemoving(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) = 0;
-    virtual void DoOnCompleteTxAfterRemoving(NColumnShard::TColumnShard& self, const bool blobsWroteSuccessfully) = 0;
+    virtual void DoDeclareRemove(const TTabletId tabletId, const TUnifiedBlobId& blobId) = 0;
+    virtual void DoOnExecuteTxAfterRemoving(TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) = 0;
+    virtual void DoOnCompleteTxAfterRemoving(const bool blobsWroteSuccessfully) = 0;
 public:
-    IBlobsDeclareRemovingAction(const TString& storageId)
+    IBlobsDeclareRemovingAction(const TString& storageId, const TTabletId& selfTabletId, const std::shared_ptr& counters)
         : TBase(storageId)
+        , SelfTabletId(selfTabletId)
+        , Counters(counters)
     {
 
     }
 
-    void SetCounters(const std::shared_ptr& counters) {
-        Counters = counters;
-    }
-
-    void DeclareRemove(const TUnifiedBlobId& blobId);
-    void OnExecuteTxAfterRemoving(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
-        return DoOnExecuteTxAfterRemoving(self, dbBlobs, blobsWroteSuccessfully);
+    void DeclareRemove(const TTabletId tabletId, const TUnifiedBlobId& blobId);
+    void DeclareSelfRemove(const TUnifiedBlobId& blobId);
+    void OnExecuteTxAfterRemoving(TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
+        return DoOnExecuteTxAfterRemoving(dbBlobs, blobsWroteSuccessfully);
     }
-    void OnCompleteTxAfterRemoving(NColumnShard::TColumnShard& self, const bool blobsWroteSuccessfully) {
-        return DoOnCompleteTxAfterRemoving(self, blobsWroteSuccessfully);
+    void OnCompleteTxAfterRemoving(const bool blobsWroteSuccessfully) {
+        return DoOnCompleteTxAfterRemoving(blobsWroteSuccessfully);
     }
 };
 
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/storage.h b/ydb/core/tx/columnshard/blobs_action/abstract/storage.h
index b0a565ee55bf..d99e949e308b 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/storage.h
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/storage.h
@@ -7,11 +7,10 @@
 #include 
 #include 
 #include 
-#include 
+#include 
 
-namespace NKikimr::NColumnShard {
-class TTiersManager;
-}
+#include 
+#include 
 
 namespace NKikimr::NOlap {
 
@@ -29,21 +28,25 @@ class TCommonBlobsTracker: public IBlobInUseTracker {
 
 class IBlobsStorageOperator {
 private:
+    YDB_READONLY_DEF(TTabletId, SelfTabletId);
     YDB_READONLY_DEF(TString, StorageId);
-
     std::shared_ptr CurrentGCAction;
     YDB_READONLY(bool, Stopped, false);
     std::shared_ptr Counters;
+    YDB_ACCESSOR_DEF(std::shared_ptr, SharedBlobs);
 protected:
-    virtual std::shared_ptr DoStartDeclareRemovingAction() = 0;
+    virtual std::shared_ptr DoStartDeclareRemovingAction(const std::shared_ptr& counters) = 0;
     virtual std::shared_ptr DoStartWritingAction() = 0;
     virtual std::shared_ptr DoStartReadingAction() = 0;
-    virtual bool DoLoad(NColumnShard::IBlobManagerDb& dbBlobs) = 0;
+    virtual bool DoLoad(IBlobManagerDb& dbBlobs) = 0;
     virtual bool DoStop() {
         return true;
     }
+    virtual const NSplitter::TSplitSettings& DoGetBlobSplitSettings() const {
+        return Default();
+    }
 
-    virtual void DoOnTieringModified(const std::shared_ptr& tiers) = 0;
+    virtual void DoOnTieringModified(const std::shared_ptr& tiers) = 0;
     virtual TString DoDebugString() const {
         return "";
     }
@@ -54,14 +57,21 @@ class IBlobsStorageOperator {
     }
 
 public:
-    IBlobsStorageOperator(const TString& storageId)
-        : StorageId(storageId)
+    IBlobsStorageOperator(const TString& storageId, const std::shared_ptr& sharedBlobs)
+        : SelfTabletId(sharedBlobs->GetSelfTabletId())
+        , StorageId(storageId)
+        , SharedBlobs(sharedBlobs)
     {
         Counters = std::make_shared(storageId);
     }
 
     void Stop();
 
+    const NSplitter::TSplitSettings& GetBlobSplitSettings() const {
+        return DoGetBlobSplitSettings();
+    }
+
+    virtual TTabletsByBlob GetBlobsToDelete() const = 0;
     virtual std::shared_ptr GetBlobsTracker() const = 0;
 
     virtual ~IBlobsStorageOperator() = default;
@@ -70,36 +80,38 @@ class IBlobsStorageOperator {
         return TStringBuilder() << "(storage_id=" << StorageId << ";details=(" << DoDebugString() << "))";
     }
 
-    bool Load(NColumnShard::IBlobManagerDb& dbBlobs) {
+    bool Load(IBlobManagerDb& dbBlobs) {
         return DoLoad(dbBlobs);
     }
-    void OnTieringModified(const std::shared_ptr& tiers) {
+    void OnTieringModified(const std::shared_ptr& tiers) {
+        AFL_VERIFY(tiers);
         return DoOnTieringModified(tiers);
     }
 
-    std::shared_ptr StartDeclareRemovingAction(const TString& consumerId) {
-        auto result = DoStartDeclareRemovingAction();
-        result->SetCounters(Counters->GetConsumerCounter(consumerId)->GetRemoveDeclareCounters());
-        return result;
+    std::shared_ptr StartDeclareRemovingAction(const NBlobOperations::EConsumer consumerId) {
+        return DoStartDeclareRemovingAction(Counters->GetConsumerCounter(consumerId)->GetRemoveDeclareCounters());
     }
-    std::shared_ptr StartWritingAction(const TString& consumerId) {
+    std::shared_ptr StartWritingAction(const NBlobOperations::EConsumer consumerId) {
         auto result = DoStartWritingAction();
         result->SetCounters(Counters->GetConsumerCounter(consumerId)->GetWriteCounters());
         return result;
     }
-    std::shared_ptr StartReadingAction(const TString& consumerId) {
+    std::shared_ptr StartReadingAction(const NBlobOperations::EConsumer consumerId) {
         auto result = DoStartReadingAction();
         result->SetCounters(Counters->GetConsumerCounter(consumerId)->GetReadCounters());
         return result;
     }
     bool StartGC() {
+        NActors::TLogContextGuard gLogging = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("storage_id", GetStorageId())("tablet_id", GetSelfTabletId());
         if (CurrentGCAction && CurrentGCAction->IsInProgress()) {
+            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "gc_in_progress");
             return false;
         }
         if (Stopped) {
+            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "stopped_on_gc");
             return false;
         }
-        auto task = StartGCAction(Counters->GetConsumerCounter("GC")->GetRemoveGCCounters());
+        auto task = StartGCAction(Counters->GetConsumerCounter(NBlobOperations::EConsumer::GC)->GetRemoveGCCounters());
         if (!task) {
             return false;
         }
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/storages_manager.cpp b/ydb/core/tx/columnshard/blobs_action/abstract/storages_manager.cpp
index 88b3ca44473c..8b80dd9be277 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/storages_manager.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/storages_manager.cpp
@@ -4,7 +4,25 @@
 
 namespace NKikimr::NOlap {
 
-std::shared_ptr IStoragesManager::GetOperator(const TString& storageId) {
+std::shared_ptr IStoragesManager::GetOperatorOptional(const TString& storageId) const {
+    AFL_VERIFY(Initialized);
+    AFL_VERIFY(storageId);
+    TReadGuard rg(RWMutex);
+    auto it = Constructed.find(storageId);
+    if (it != Constructed.end()) {
+        return it->second;
+    } else {
+        return nullptr;
+    }
+}
+
+std::shared_ptr IStoragesManager::GetOperatorVerified(const TString& storageId) const {
+    auto result = GetOperatorOptional(storageId);
+    AFL_VERIFY(result)("storage_id", storageId);
+    return result;
+}
+
+std::shared_ptr IStoragesManager::GetOperatorGuarantee(const TString& storageId) {
     TReadGuard rg(RWMutex);
     auto it = Constructed.find(storageId);
     if (it == Constructed.end()) {
@@ -19,23 +37,61 @@ std::shared_ptr IStoragesManager::GetOper
     return it->second;
 }
 
-std::shared_ptr IStoragesManager::InitializePortionOperator(const TPortionInfo& portionInfo) {
-    Y_ABORT_UNLESS(!portionInfo.HasStorageOperator());
-    if (portionInfo.GetMeta().GetTierName()) {
-        return GetOperator(portionInfo.GetMeta().GetTierName());
-    } else {
-        return GetOperator(DefaultStorageId);
-    }
+std::shared_ptr IStoragesManager::GetOperator(const TString& storageId) {
+    return GetOperatorGuarantee(storageId);
 }
 
-void IStoragesManager::OnTieringModified(const std::shared_ptr& tiers) {
+void IStoragesManager::OnTieringModified(const std::shared_ptr& tiers) {
+    AFL_VERIFY(tiers);
     for (auto&& i : tiers->GetManagers()) {
-        GetOperator(i.second.GetTierName())->OnTieringModified(tiers);
+        GetOperatorGuarantee(i.first)->OnTieringModified(tiers);
     }
 }
 
-void IStoragesManager::InitializeNecessaryStorages() {
+void IStoragesManager::DoInitialize() {
     GetOperator(DefaultStorageId);
+    GetOperator(MemoryStorageId);
+}
+
+bool IStoragesManager::LoadIdempotency(NTable::TDatabase& database) {
+    AFL_VERIFY(Initialized);
+    if (!DoLoadIdempotency(database)) {
+        return false;
+    }
+    TBlobManagerDb blobsDB(database);
+    for (auto&& i : GetStorages()) {
+        if (!i.second->Load(blobsDB)) {
+            return false;
+        }
+    }
+    GetOperatorVerified(DefaultStorageId);
+    GetSharedBlobsManager()->GetStorageManagerVerified(DefaultStorageId);
+    return true;
+}
+
+bool IStoragesManager::HasBlobsToDelete() const {
+    for (auto&& i : Constructed) {
+        if (!i.second->GetBlobsToDelete().IsEmpty()) {
+            return true;
+        }
+    }
+    return false;
+}
+
+std::shared_ptr IStoragesManager::BuildOperator(const TString& storageId) {
+    auto result = DoBuildOperator(storageId);
+    AFL_VERIFY(result)("storage_id", storageId);
+    return result;
+}
+
+void IStoragesManager::Stop() {
+    AFL_VERIFY(!Finished);
+    if (Initialized && !Finished) {
+        for (auto&& i : Constructed) {
+            i.second->Stop();
+        }
+        Finished = true;
+    }
 }
 
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/storages_manager.h b/ydb/core/tx/columnshard/blobs_action/abstract/storages_manager.h
index dd89f7ff2512..cc0e8f606d3f 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/storages_manager.h
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/storages_manager.h
@@ -1,5 +1,6 @@
 #pragma once
 #include "storage.h"
+#include 
 
 namespace NKikimr::NOlap {
 
@@ -7,46 +8,60 @@ class TPortionInfo;
 
 class IStoragesManager {
 private:
-    TRWMutex RWMutex;
+    mutable TRWMutex RWMutex;
+    bool Initialized = false;
+    bool Finished = false;
 protected:
     virtual std::shared_ptr DoBuildOperator(const TString& storageId) = 0;
     THashMap> Constructed;
-    std::shared_ptr BuildOperator(const TString& storageId) {
-        auto result = DoBuildOperator(storageId);
-        Y_ABORT_UNLESS(result);
-        return result;
-    }
+    std::shared_ptr BuildOperator(const TString& storageId);
+
+    virtual void DoInitialize();
+    virtual bool DoLoadIdempotency(NTable::TDatabase& database) = 0;
+    virtual const std::shared_ptr& DoGetSharedBlobsManager() const = 0;
 
-    virtual void InitializeNecessaryStorages();
 public:
-    static const inline TString DefaultStorageId = "__DEFAULT";
+    static const inline TString DefaultStorageId = NBlobOperations::TGlobal::DefaultStorageId;
+    static const inline TString MemoryStorageId = NBlobOperations::TGlobal::MemoryStorageId;
     virtual ~IStoragesManager() = default;
 
-    IStoragesManager() = default;
+    void Initialize() {
+        AFL_VERIFY(!Initialized);
+        Initialized = true;
+        DoInitialize();
+    }
 
-    void Stop() {
-        for (auto&& i : Constructed) {
-            i.second->Stop();
-        }
+    IStoragesManager() = default;
+    const std::shared_ptr& GetSharedBlobsManager() const {
+        AFL_VERIFY(Initialized);
+        return DoGetSharedBlobsManager();
     }
 
-    std::shared_ptr GetDefaultOperator() {
-        return GetOperator(DefaultStorageId);
+    bool LoadIdempotency(NTable::TDatabase& database);
+
+    bool HasBlobsToDelete() const;
+
+    void Stop();
+
+    std::shared_ptr GetDefaultOperator() const {
+        return GetOperatorVerified(DefaultStorageId);
     }
 
-    std::shared_ptr GetInsertOperator() {
+    std::shared_ptr GetInsertOperator() const {
         return GetDefaultOperator();
     }
 
     const THashMap>& GetStorages() {
-        InitializeNecessaryStorages();
+        AFL_VERIFY(Initialized);
         return Constructed;
     }
 
-    void OnTieringModified(const std::shared_ptr& tiers);
+    void OnTieringModified(const std::shared_ptr& tiers);
 
     std::shared_ptr GetOperator(const TString& storageIdExt);
-    std::shared_ptr InitializePortionOperator(const TPortionInfo& portionInfo);
+    std::shared_ptr GetOperatorGuarantee(const TString& storageIdExt);
+    std::shared_ptr GetOperatorVerified(const TString& storageIdExt) const;
+    std::shared_ptr GetOperatorOptional(const TString& storageIdExt) const;
 };
 
 
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/write.cpp b/ydb/core/tx/columnshard/blobs_action/abstract/write.cpp
index 60a3635e3fd1..1319e97edf22 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/write.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/write.cpp
@@ -3,14 +3,21 @@
 
 namespace NKikimr::NOlap {
 
-TUnifiedBlobId IBlobsWritingAction::AddDataForWrite(const TString& data) {
+TUnifiedBlobId IBlobsWritingAction::AddDataForWrite(const TString& data, const std::optional& externalBlobId) {
     Y_ABORT_UNLESS(!WritingStarted);
     auto blobId = AllocateNextBlobId(data);
-    AFL_VERIFY(BlobsForWrite.emplace(blobId, data).second);
+    AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("generated_blob_id", blobId.ToStringNew());
+    AddDataForWrite(externalBlobId.value_or(blobId), data);
+    return externalBlobId.value_or(blobId);
+}
+
+void IBlobsWritingAction::AddDataForWrite(const TUnifiedBlobId& blobId, const TString& data) {
+    AFL_VERIFY(blobId.IsValid())("blob_id", blobId.ToStringNew());
+    AFL_VERIFY(blobId.BlobSize() == data.size());
+    AFL_VERIFY(BlobsForWrite.emplace(blobId, data).second)("blob_id", blobId.ToStringNew());
     BlobsWaiting.emplace(blobId);
     BlobsWriteCount += 1;
     SumSize += data.size();
-    return blobId;
 }
 
 void IBlobsWritingAction::OnBlobWriteResult(const TUnifiedBlobId& blobId, const NKikimrProto::EReplyStatus status) {
@@ -34,7 +41,7 @@ bool IBlobsWritingAction::IsReady() const {
 }
 
 IBlobsWritingAction::~IBlobsWritingAction() {
-    AFL_VERIFY(!NActors::TlsActivationContext || BlobsWaiting.empty() || Aborted);
+//    AFL_VERIFY(!NActors::TlsActivationContext || BlobsWaiting.empty() || Aborted);
 }
 
 void IBlobsWritingAction::SendWriteBlobRequest(const TString& data, const TUnifiedBlobId& blobId) {
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/write.h b/ydb/core/tx/columnshard/blobs_action/abstract/write.h
index 0ae4f57abb0c..f20d4183cefb 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/write.h
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/write.h
@@ -4,10 +4,10 @@
 #include 
 #include 
 #include 
+#include 
 
 namespace NKikimr::NColumnShard {
 class TColumnShard;
-class TBlobManagerDb;
 }
 
 namespace NKikimr::NOlap {
@@ -23,14 +23,15 @@ class IBlobsWritingAction: public ICommonBlobsAction {
     THashSet BlobsWaiting;
     bool Aborted = false;
     std::shared_ptr Counters;
+    void AddDataForWrite(const TUnifiedBlobId& blobId, const TString& data);
 protected:
-    virtual void DoOnExecuteTxBeforeWrite(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs) = 0;
+    virtual void DoOnExecuteTxBeforeWrite(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs) = 0;
     virtual void DoOnCompleteTxBeforeWrite(NColumnShard::TColumnShard& self) = 0;
 
     virtual void DoSendWriteBlobRequest(const TString& data, const TUnifiedBlobId& blobId) = 0;
     virtual void DoOnBlobWriteResult(const TUnifiedBlobId& blobId, const NKikimrProto::EReplyStatus status) = 0;
 
-    virtual void DoOnExecuteTxAfterWrite(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) = 0;
+    virtual void DoOnExecuteTxAfterWrite(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) = 0;
     virtual void DoOnCompleteTxAfterWrite(NColumnShard::TColumnShard& self, const bool blobsWroteSuccessfully) = 0;
 
     virtual TUnifiedBlobId AllocateNextBlobId(const TString& data) = 0;
@@ -43,6 +44,14 @@ class IBlobsWritingAction: public ICommonBlobsAction {
     virtual ~IBlobsWritingAction();
     bool IsReady() const;
 
+    void Merge(const std::shared_ptr& action) {
+        AFL_VERIFY(action);
+        AFL_VERIFY(!WritingStarted);
+        for (auto&& i : action->BlobsForWrite) {
+            AddDataForWrite(i.first, i.second);
+        }
+    }
+
     void SetCounters(std::shared_ptr counters) {
         Counters = counters;
     }
@@ -54,11 +63,10 @@ class IBlobsWritingAction: public ICommonBlobsAction {
     void Abort() {
         Aborted = true;
     }
-    TUnifiedBlobId AddDataForWrite(const TString& data);
-
+    TUnifiedBlobId AddDataForWrite(const TString& data, const std::optional& externalBlobId = {});
     void OnBlobWriteResult(const TUnifiedBlobId& blobId, const NKikimrProto::EReplyStatus status);
 
-    void OnExecuteTxBeforeWrite(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs) {
+    void OnExecuteTxBeforeWrite(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs) {
         return DoOnExecuteTxBeforeWrite(self, dbBlobs);
     }
 
@@ -75,7 +83,7 @@ class IBlobsWritingAction: public ICommonBlobsAction {
         return DoOnCompleteTxBeforeWrite(self);
     }
 
-    void OnExecuteTxAfterWrite(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
+    void OnExecuteTxAfterWrite(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
         return DoOnExecuteTxAfterWrite(self, dbBlobs, blobsWroteSuccessfully);
     }
 
@@ -86,4 +94,43 @@ class IBlobsWritingAction: public ICommonBlobsAction {
     void SendWriteBlobRequest(const TString& data, const TUnifiedBlobId& blobId);
 };
 
+class TWriteActionsCollection {
+private:
+    THashMap> Actions;
+public:
+    THashMap>::const_iterator begin() const {
+        return Actions.begin();
+    }
+
+    THashMap>::const_iterator end() const {
+        return Actions.end();
+    }
+
+    THashMap>::iterator begin() {
+        return Actions.begin();
+    }
+
+    THashMap>::iterator end() {
+        return Actions.end();
+    }
+
+    std::shared_ptr Add(const std::shared_ptr& action) {
+        auto it = Actions.find(action->GetStorageId());
+        if (it == Actions.end()) {
+            return Actions.emplace(action->GetStorageId(), action).first->second;
+        } else if (action.get() != it->second.get()) {
+            it->second->Merge(action);
+        }
+        return it->second;
+    }
+
+    TWriteActionsCollection() = default;
+
+    TWriteActionsCollection(const std::vector>& actions) {
+        for (auto&& a : actions) {
+            Add(a);
+        }
+    }
+};
+
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/abstract/ya.make b/ydb/core/tx/columnshard/blobs_action/abstract/ya.make
index 2f0b074a602a..b3b4c20028c8 100644
--- a/ydb/core/tx/columnshard/blobs_action/abstract/ya.make
+++ b/ydb/core/tx/columnshard/blobs_action/abstract/ya.make
@@ -2,7 +2,9 @@ LIBRARY()
 
 SRCS(
     gc.cpp
+    gc_actor.cpp
     common.cpp
+    blob_set.cpp
     read.cpp
     write.cpp
     remove.cpp
@@ -15,7 +17,11 @@ PEERDIR(
     ydb/core/protos
     contrib/libs/apache/arrow
     ydb/core/tablet_flat
-    ydb/core/tx/tiering
+    ydb/core/tx/tiering/abstract
+    ydb/core/tx/columnshard/blobs_action/common
+    ydb/core/tx/columnshard/data_sharing/protos
+    ydb/core/tx/columnshard/blobs_action/events
+    ydb/core/tx/columnshard/blobs_action/protos
 )
 
 END()
diff --git a/ydb/core/tx/columnshard/blobs_action/blob_manager_db.cpp b/ydb/core/tx/columnshard/blobs_action/blob_manager_db.cpp
index b13e664f6419..3bc5f2b8c3d6 100644
--- a/ydb/core/tx/columnshard/blobs_action/blob_manager_db.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/blob_manager_db.cpp
@@ -1,14 +1,17 @@
 #include "blob_manager_db.h"
 #include 
+#include 
 
-namespace NKikimr::NColumnShard {
+namespace NKikimr::NOlap {
+
+using namespace NKikimr::NColumnShard;
 
 bool TBlobManagerDb::LoadLastGcBarrier(TGenStep& lastCollectedGenStep) {
     NIceDb::TNiceDb db(Database);
     ui64 gen = 0;
     ui64 step = 0;
-    if (!Schema::GetSpecialValue(db, Schema::EValueIds::LastGcBarrierGen, gen) ||
-        !Schema::GetSpecialValue(db, Schema::EValueIds::LastGcBarrierStep, step))
+    if (!Schema::GetSpecialValueOpt(db, Schema::EValueIds::LastGcBarrierGen, gen) ||
+        !Schema::GetSpecialValueOpt(db, Schema::EValueIds::LastGcBarrierStep, step))
     {
         return false;
     }
@@ -22,11 +25,11 @@ void TBlobManagerDb::SaveLastGcBarrier(const TGenStep& lastCollectedGenStep) {
     Schema::SaveSpecialValue(db, Schema::EValueIds::LastGcBarrierStep, std::get<1>(lastCollectedGenStep));
 }
 
-bool TBlobManagerDb::LoadLists(std::vector& blobsToKeep, std::vector& blobsToDelete,
-    const NOlap::IBlobGroupSelector* dsGroupSelector)
+bool TBlobManagerDb::LoadLists(std::vector& blobsToKeep, TTabletsByBlob& blobsToDelete,
+    const IBlobGroupSelector* dsGroupSelector, const TTabletId selfTabletId)
 {
     blobsToKeep.clear();
-    blobsToDelete.clear();
+    TTabletsByBlob blobsToDeleteLocal;
 
     NIceDb::TNiceDb db(Database);
 
@@ -39,12 +42,13 @@ bool TBlobManagerDb::LoadLists(std::vector& blobsToKeep,
 
         while (!rowset.EndOfSet()) {
             const TString blobIdStr = rowset.GetValue();
-            NOlap::TUnifiedBlobId unifiedBlobId = NOlap::TUnifiedBlobId::ParseFromString(blobIdStr, dsGroupSelector, error);
-            Y_ABORT_UNLESS(unifiedBlobId.IsValid(), "%s", error.c_str());
+            TUnifiedBlobId unifiedBlobId = TUnifiedBlobId::ParseFromString(blobIdStr, dsGroupSelector, error);
+            AFL_VERIFY(unifiedBlobId.IsValid())("event", "cannot_parse_blob")("error", error)("original_string", blobIdStr);
 
             blobsToKeep.push_back(unifiedBlobId);
-            if (!rowset.Next())
+            if (!rowset.Next()) {
                 return false;
+            }
         }
     }
 
@@ -57,102 +61,174 @@ bool TBlobManagerDb::LoadLists(std::vector& blobsToKeep,
 
         while (!rowset.EndOfSet()) {
             const TString blobIdStr = rowset.GetValue();
-            NOlap::TUnifiedBlobId unifiedBlobId = NOlap::TUnifiedBlobId::ParseFromString(blobIdStr, dsGroupSelector, error);
-            Y_ABORT_UNLESS(unifiedBlobId.IsValid(), "%s", error.c_str());
-            blobsToDelete.push_back(unifiedBlobId);
-            if (!rowset.Next())
+            TUnifiedBlobId unifiedBlobId = TUnifiedBlobId::ParseFromString(blobIdStr, dsGroupSelector, error);
+            AFL_VERIFY(unifiedBlobId.IsValid())("event", "cannot_parse_blob")("error", error)("original_string", blobIdStr);
+            blobsToDeleteLocal.Add(selfTabletId, unifiedBlobId);
+            if (!rowset.Next()) {
+                return false;
+            }
+        }
+    }
+
+    {
+        auto rowset = db.Table().Select();
+        if (!rowset.IsReady())
+            return false;
+
+        TString error;
+
+        while (!rowset.EndOfSet()) {
+            const TString blobIdStr = rowset.GetValue();
+            TUnifiedBlobId unifiedBlobId = TUnifiedBlobId::ParseFromString(blobIdStr, dsGroupSelector, error);
+            AFL_VERIFY(unifiedBlobId.IsValid())("event", "cannot_parse_blob")("error", error)("original_string", blobIdStr);
+            blobsToDeleteLocal.Add((TTabletId)rowset.GetValue(), unifiedBlobId);
+            if (!rowset.Next()) {
                 return false;
+            }
         }
     }
+    std::swap(blobsToDeleteLocal, blobsToDelete);
 
     return true;
 }
 
-void TBlobManagerDb::AddBlobToKeep(const NOlap::TUnifiedBlobId& blobId) {
+void TBlobManagerDb::AddBlobToKeep(const TUnifiedBlobId& blobId) {
     NIceDb::TNiceDb db(Database);
     db.Table().Key(blobId.ToStringLegacy()).Update();
 }
 
-void TBlobManagerDb::EraseBlobToKeep(const NOlap::TUnifiedBlobId& blobId) {
+void TBlobManagerDb::EraseBlobToKeep(const TUnifiedBlobId& blobId) {
     NIceDb::TNiceDb db(Database);
     db.Table().Key(blobId.ToStringLegacy()).Delete();
     db.Table().Key(blobId.ToStringNew()).Delete();
 }
 
-void TBlobManagerDb::AddBlobToDelete(const NOlap::TUnifiedBlobId& blobId) {
+void TBlobManagerDb::AddBlobToDelete(const TUnifiedBlobId& blobId, const TTabletId tabletId) {
     NIceDb::TNiceDb db(Database);
+    db.Table().Key(blobId.ToStringLegacy(), (ui64)tabletId).Update();
     db.Table().Key(blobId.ToStringLegacy()).Update();
 }
 
-void TBlobManagerDb::EraseBlobToDelete(const NOlap::TUnifiedBlobId& blobId) {
+void TBlobManagerDb::EraseBlobToDelete(const TUnifiedBlobId& blobId, const TTabletId tabletId) {
     NIceDb::TNiceDb db(Database);
     db.Table().Key(blobId.ToStringLegacy()).Delete();
     db.Table().Key(blobId.ToStringNew()).Delete();
+    db.Table().Key(blobId.ToStringLegacy(), (ui64)tabletId).Delete();
+    db.Table().Key(blobId.ToStringNew(), (ui64)tabletId).Delete();
 }
 
-bool TBlobManagerDb::LoadTierLists(const TString& storageId, std::deque& blobsToDelete, std::deque& draftBlobsToDelete) {
-    draftBlobsToDelete.clear();
-    blobsToDelete.clear();
+bool TBlobManagerDb::LoadTierLists(const TString& storageId, TTabletsByBlob& blobsToDelete, std::deque& draftBlobsToDelete, const TTabletId selfTabletId) {
+    TTabletsByBlob localBlobsToDelete;
+    std::deque localDraftBlobsToDelete;
 
     NIceDb::TNiceDb db(Database);
 
     {
         auto rowset = db.Table().Prefix(storageId).Select();
-        if (!rowset.IsReady())
+        if (!rowset.IsReady()) {
             return false;
+        }
 
         TString error;
 
         while (!rowset.EndOfSet()) {
             const TString blobIdStr = rowset.GetValue();
-            NOlap::TUnifiedBlobId unifiedBlobId = NOlap::TUnifiedBlobId::ParseFromString(blobIdStr, nullptr, error);
-            Y_ABORT_UNLESS(unifiedBlobId.IsValid(), "%s", error.c_str());
+            TUnifiedBlobId unifiedBlobId = TUnifiedBlobId::ParseFromString(blobIdStr, nullptr, error);
+            AFL_VERIFY(unifiedBlobId.IsValid())("event", "cannot_parse_blob")("error", error)("original_string", blobIdStr);
+
+            localBlobsToDelete.Add(selfTabletId, unifiedBlobId);
+            if (!rowset.Next()) {
+                return false;
+            }
+        }
+    }
+
+    {
+        auto rowset = db.Table().Prefix(storageId).Select();
+        if (!rowset.IsReady()) {
+            return false;
+        }
+
+        TString error;
+
+        while (!rowset.EndOfSet()) {
+            const TString blobIdStr = rowset.GetValue();
+            TUnifiedBlobId unifiedBlobId = TUnifiedBlobId::ParseFromString(blobIdStr, nullptr, error);
+            AFL_VERIFY(unifiedBlobId.IsValid())("event", "cannot_parse_blob")("error", error)("original_string", blobIdStr);
 
-            blobsToDelete.emplace_back(std::move(unifiedBlobId));
-            if (!rowset.Next())
+            localBlobsToDelete.Add((TTabletId)rowset.GetValue(), unifiedBlobId);
+            if (!rowset.Next()) {
                 return false;
+            }
         }
     }
 
     {
         auto rowset = db.Table().Prefix(storageId).Select();
-        if (!rowset.IsReady())
+        if (!rowset.IsReady()) {
             return false;
+        }
 
         TString error;
 
         while (!rowset.EndOfSet()) {
             const TString blobIdStr = rowset.GetValue();
-            NOlap::TUnifiedBlobId unifiedBlobId = NOlap::TUnifiedBlobId::ParseFromString(blobIdStr, nullptr, error);
-            Y_ABORT_UNLESS(unifiedBlobId.IsValid(), "%s", error.c_str());
+            TUnifiedBlobId unifiedBlobId = TUnifiedBlobId::ParseFromString(blobIdStr, nullptr, error);
+            AFL_VERIFY(unifiedBlobId.IsValid())("event", "cannot_parse_blob")("error", error)("original_string", blobIdStr);
 
-            draftBlobsToDelete.emplace_back(std::move(unifiedBlobId));
-            if (!rowset.Next())
+            localDraftBlobsToDelete.emplace_back(std::move(unifiedBlobId));
+            if (!rowset.Next()) {
                 return false;
+            }
         }
     }
+    
+    std::swap(localBlobsToDelete, blobsToDelete);
+    std::swap(localDraftBlobsToDelete, draftBlobsToDelete);
 
     return true;
 }
 
-void TBlobManagerDb::AddTierBlobToDelete(const TString& storageId, const NOlap::TUnifiedBlobId& blobId) {
+void TBlobManagerDb::AddTierBlobToDelete(const TString& storageId, const TUnifiedBlobId& blobId, const TTabletId tabletId) {
     NIceDb::TNiceDb db(Database);
+    db.Table().Key(storageId, blobId.ToStringNew(), (ui64)tabletId).Update();
     db.Table().Key(storageId, blobId.ToStringNew()).Update();
 }
 
-void TBlobManagerDb::RemoveTierBlobToDelete(const TString& storageId, const NOlap::TUnifiedBlobId& blobId) {
+void TBlobManagerDb::RemoveTierBlobToDelete(const TString& storageId, const TUnifiedBlobId& blobId, const TTabletId tabletId) {
     NIceDb::TNiceDb db(Database);
+    db.Table().Key(storageId, blobId.ToStringNew(), (ui64)tabletId).Delete();
     db.Table().Key(storageId, blobId.ToStringNew()).Delete();
 }
 
-void TBlobManagerDb::AddTierDraftBlobId(const TString& storageId, const NOlap::TUnifiedBlobId& blobId) {
+void TBlobManagerDb::AddTierDraftBlobId(const TString& storageId, const TUnifiedBlobId& blobId) {
     NIceDb::TNiceDb db(Database);
     db.Table().Key(storageId, blobId.ToStringNew()).Update();
 }
 
-void TBlobManagerDb::RemoveTierDraftBlobId(const TString& storageId, const NOlap::TUnifiedBlobId& blobId) {
+void TBlobManagerDb::RemoveTierDraftBlobId(const TString& storageId, const TUnifiedBlobId& blobId) {
     NIceDb::TNiceDb db(Database);
     db.Table().Key(storageId, blobId.ToStringNew()).Delete();
 }
 
+void TBlobManagerDb::RemoveBlobSharing(const TString& storageId, const TUnifiedBlobId& blobId, const TTabletId tabletId) {
+    NIceDb::TNiceDb db(Database);
+    db.Table().Key(storageId, blobId.ToStringNew(), (ui64)tabletId).Delete();
+}
+
+void TBlobManagerDb::AddBlobSharing(const TString& storageId, const TUnifiedBlobId& blobId, const TTabletId tabletId) {
+    NIceDb::TNiceDb db(Database);
+    db.Table().Key(storageId, blobId.ToStringNew(), (ui64)tabletId).Update();
+}
+
+void TBlobManagerDb::RemoveBorrowedBlob(const TString& storageId, const TUnifiedBlobId& blobId) {
+    NIceDb::TNiceDb db(Database);
+    db.Table().Key(storageId, blobId.ToStringNew()).Delete();
+}
+
+void TBlobManagerDb::AddBorrowedBlob(const TString& storageId, const TUnifiedBlobId& blobId, const TTabletId tabletId) {
+    NIceDb::TNiceDb db(Database);
+    db.Table().Key(storageId, blobId.ToStringNew()).Update(NIceDb::TUpdate((ui64)tabletId));
+}
+
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/blob_manager_db.h b/ydb/core/tx/columnshard/blobs_action/blob_manager_db.h
index bdfc4ddd12f4..6c52e6c9ff2f 100644
--- a/ydb/core/tx/columnshard/blobs_action/blob_manager_db.h
+++ b/ydb/core/tx/columnshard/blobs_action/blob_manager_db.h
@@ -1,13 +1,16 @@
 #pragma once
+#include "abstract/blob_set.h"
+#include "abstract/common.h"
 #include 
 #include 
 #include 
+#include 
 
 namespace NKikimr::NTable {
 class TDatabase;
 }
 
-namespace NKikimr::NColumnShard {
+namespace NKikimr::NOlap {
 
 // Garbage Collection generation and step
 using TGenStep = std::tuple;
@@ -16,22 +19,29 @@ class IBlobManagerDb {
 public:
     virtual ~IBlobManagerDb() = default;
 
-    virtual bool LoadLastGcBarrier(TGenStep& lastCollectedGenStep) = 0;
+    [[nodiscard]] virtual bool LoadLastGcBarrier(TGenStep& lastCollectedGenStep) = 0;
     virtual void SaveLastGcBarrier(const TGenStep& lastCollectedGenStep) = 0;
 
-    virtual bool LoadLists(std::vector& blobsToKeep, std::vector& blobsToDelete,
-        const NOlap::IBlobGroupSelector* dsGroupSelector) = 0;
-    virtual void AddBlobToKeep(const NOlap::TUnifiedBlobId& blobId) = 0;
-    virtual void EraseBlobToKeep(const NOlap::TUnifiedBlobId& blobId) = 0;
-    virtual void AddBlobToDelete(const NOlap::TUnifiedBlobId& blobId) = 0;
-    virtual void EraseBlobToDelete(const NOlap::TUnifiedBlobId& blobId) = 0;
+    [[nodiscard]] virtual bool LoadLists(std::vector& blobsToKeep, TTabletsByBlob& blobsToDelete,
+        const IBlobGroupSelector* dsGroupSelector, const TTabletId selfTabletId) = 0;
+    virtual void AddBlobToKeep(const TUnifiedBlobId& blobId) = 0;
+    virtual void EraseBlobToKeep(const TUnifiedBlobId& blobId) = 0;
 
-    virtual bool LoadTierLists(const TString& storageId, std::deque& blobsToDelete, std::deque& draftBlobsToDelete) = 0;
+    virtual void AddBlobToDelete(const TUnifiedBlobId& blobId, const TTabletId tabletId) = 0;
+    virtual void EraseBlobToDelete(const TUnifiedBlobId& blobId, const TTabletId tabletId) = 0;
 
-    virtual void AddTierBlobToDelete(const TString& storageId, const NOlap::TUnifiedBlobId& blobId) = 0;
-    virtual void RemoveTierBlobToDelete(const TString& storageId, const NOlap::TUnifiedBlobId& blobId) = 0;
-    virtual void AddTierDraftBlobId(const TString& storageId, const NOlap::TUnifiedBlobId& blobId) = 0;
-    virtual void RemoveTierDraftBlobId(const TString& storageId, const NOlap::TUnifiedBlobId& blobId) = 0;
+    [[nodiscard]] virtual bool LoadTierLists(const TString& storageId, TTabletsByBlob& blobsToDelete, std::deque& draftBlobsToDelete, const TTabletId selfTabletId) = 0;
+
+    virtual void AddTierBlobToDelete(const TString& storageId, const TUnifiedBlobId& blobId, const TTabletId tabletId) = 0;
+    virtual void RemoveTierBlobToDelete(const TString& storageId, const TUnifiedBlobId& blobId, const TTabletId tabletId) = 0;
+    virtual void AddTierDraftBlobId(const TString& storageId, const TUnifiedBlobId& blobId) = 0;
+    virtual void RemoveTierDraftBlobId(const TString& storageId, const TUnifiedBlobId& blobId) = 0;
+
+    virtual void AddBlobSharing(const TString& storageId, const TUnifiedBlobId& blobId, const TTabletId tabletId) = 0;
+    virtual void RemoveBlobSharing(const TString& storageId, const TUnifiedBlobId& blobId, const TTabletId tabletId) = 0;
+
+    virtual void AddBorrowedBlob(const TString& storageId, const TUnifiedBlobId& blobId, const TTabletId tabletId) = 0;
+    virtual void RemoveBorrowedBlob(const TString& storageId, const TUnifiedBlobId& blobId) = 0;
 };
 
 
@@ -41,25 +51,34 @@ class TBlobManagerDb : public IBlobManagerDb {
         : Database(db)
     {}
 
-    bool LoadLastGcBarrier(TGenStep& lastCollectedGenStep) override;
+    [[nodiscard]] bool LoadLastGcBarrier(TGenStep& lastCollectedGenStep) override;
     void SaveLastGcBarrier(const TGenStep& lastCollectedGenStep) override;
 
-    bool LoadLists(std::vector& blobsToKeep, std::vector& blobsToDelete,
-        const NOlap::IBlobGroupSelector* dsGroupSelector) override;
+    [[nodiscard]] bool LoadLists(std::vector& blobsToKeep, TTabletsByBlob& blobsToDelete,
+        const IBlobGroupSelector* dsGroupSelector, const TTabletId selfTabletId) override;
+
+    void AddBlobToKeep(const TUnifiedBlobId& blobId) override;
+    void EraseBlobToKeep(const TUnifiedBlobId& blobId) override;
+    void AddBlobToDelete(const TUnifiedBlobId& blobId, const TTabletId tabletId) override;
+    void EraseBlobToDelete(const TUnifiedBlobId& blobId, const TTabletId tabletId) override;
+
+    [[nodiscard]] bool LoadTierLists(const TString& storageId, TTabletsByBlob& blobsToDelete, std::deque& draftBlobsToDelete, const TTabletId selfTabletId) override;
 
-    void AddBlobToKeep(const NOlap::TUnifiedBlobId& blobId) override;
-    void EraseBlobToKeep(const NOlap::TUnifiedBlobId& blobId) override;
-    void AddBlobToDelete(const NOlap::TUnifiedBlobId& blobId) override;
-    void EraseBlobToDelete(const NOlap::TUnifiedBlobId& blobId) override;
+    void AddTierBlobToDelete(const TString& storageId, const TUnifiedBlobId& blobId, const TTabletId tabletId) override;
+    void RemoveTierBlobToDelete(const TString& storageId, const TUnifiedBlobId& blobId, const TTabletId tabletId) override;
 
-    bool LoadTierLists(const TString& storageId, std::deque& blobsToDelete, std::deque& draftBlobsToDelete) override;
+    void AddTierDraftBlobId(const TString& storageId, const TUnifiedBlobId& blobId) override;
+    void RemoveTierDraftBlobId(const TString& storageId, const TUnifiedBlobId& blobId) override;
 
-    void AddTierBlobToDelete(const TString& storageId, const NOlap::TUnifiedBlobId& blobId) override;
+    void AddBlobSharing(const TString& storageId, const TUnifiedBlobId& blobId, const TTabletId tabletId) override;
+    void RemoveBlobSharing(const TString& storageId, const TUnifiedBlobId& blobId, const TTabletId tabletId) override;
 
-    void RemoveTierBlobToDelete(const TString& storageId, const NOlap::TUnifiedBlobId& blobId) override;
+    void AddBorrowedBlob(const TString& storageId, const TUnifiedBlobId& blobId, const TTabletId tabletId) override;
+    void RemoveBorrowedBlob(const TString& storageId, const TUnifiedBlobId& blobId) override;
 
-    void AddTierDraftBlobId(const TString& storageId, const NOlap::TUnifiedBlobId& blobId) override;
-    void RemoveTierDraftBlobId(const TString& storageId, const NOlap::TUnifiedBlobId& blobId) override;
+    NTable::TDatabase& GetDatabase() {
+        return Database;
+    }
 
 private:
     NTable::TDatabase& Database;
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/blob_manager.cpp b/ydb/core/tx/columnshard/blobs_action/bs/blob_manager.cpp
new file mode 100644
index 000000000000..58e68248e40e
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/bs/blob_manager.cpp
@@ -0,0 +1,473 @@
+#include "blob_manager.h"
+#include 
+
+#include 
+#include "gc.h"
+
+namespace NKikimr::NOlap {
+
+TLogoBlobID ParseLogoBlobId(TString blobId) {
+    TLogoBlobID logoBlobId;
+    TString err;
+    if (!TLogoBlobID::Parse(logoBlobId, blobId, err)) {
+        Y_ABORT("%s", err.c_str());
+    }
+    return logoBlobId;
+}
+
+struct TBlobBatch::TBatchInfo : TNonCopyable {
+private:
+    std::vector BlobIds;
+public:
+    const std::vector& GetBlobIds() const {
+        return BlobIds;
+    }
+
+    TIntrusivePtr TabletInfo;
+    TAllocatedGenStepConstPtr GenStepRef;
+    const NColumnShard::TBlobsManagerCounters Counters;
+    const ui32 Gen;
+    const ui32 Step;
+    const ui32 Channel;
+
+    std::vector InFlight;
+    i32 InFlightCount;
+    ui64 TotalSizeBytes;
+
+    TBatchInfo(TIntrusivePtr tabletInfo, TAllocatedGenStepConstPtr genStep, ui32 channel, const NColumnShard::TBlobsManagerCounters& counters)
+        : TabletInfo(tabletInfo)
+        , GenStepRef(genStep)
+        , Counters(counters)
+        , Gen(std::get<0>(GenStepRef->GenStep))
+        , Step(std::get<1>(GenStepRef->GenStep))
+        , Channel(channel)
+        , InFlightCount(0)
+        , TotalSizeBytes(0) {
+    }
+
+    TUnifiedBlobId NextBlobId(const ui32 blobSize) {
+        InFlight.push_back(true);
+        ++InFlightCount;
+        TotalSizeBytes += blobSize;
+
+        const ui32 dsGroup = TabletInfo->GroupFor(Channel, Gen);
+        TUnifiedBlobId nextBlobId(dsGroup, TLogoBlobID(TabletInfo->TabletID, Gen, Step, Channel, blobSize, BlobIds.size()));
+        BlobIds.emplace_back(std::move(nextBlobId));
+        return BlobIds.back();
+    }
+};
+
+TBlobBatch::TBlobBatch(std::unique_ptr batchInfo)
+    : BatchInfo(std::move(batchInfo))
+{}
+
+TBlobBatch::TBlobBatch() = default;
+TBlobBatch::TBlobBatch(TBlobBatch&& other) = default;
+TBlobBatch& TBlobBatch::operator =(TBlobBatch&& other) = default;
+TBlobBatch::~TBlobBatch() = default;
+
+void TBlobBatch::SendWriteRequest(const TActorContext& ctx, ui32 groupId, const TLogoBlobID& logoBlobId, const TString& data, ui64 cookie, TInstant deadline) {
+    LOG_S_TRACE("EvPut " << data.size() << " bytes to group " << groupId
+        << " at tablet " << BatchInfo->TabletInfo->TabletID);
+
+    auto handleClass = NKikimrBlobStorage::UserData;
+    //auto handleClass = NKikimrBlobStorage::AsyncBlob; // TODO: what's the difference?
+    auto tactic = TEvBlobStorage::TEvPut::TacticMaxThroughput;
+
+    THolder put(
+        new TEvBlobStorage::TEvPut(logoBlobId, data, deadline, handleClass, tactic));
+    SendPutToGroup(ctx, groupId, BatchInfo->TabletInfo.Get(), std::move(put), cookie);
+}
+
+void TBlobBatch::SendWriteBlobRequest(const TString& blobData, const TUnifiedBlobId& blobId, TInstant deadline, const TActorContext& ctx) {
+    Y_ABORT_UNLESS(blobData.size() <= NColumnShard::TLimits::GetBlobSizeLimit(), "Blob %" PRISZT" size exceeds the limit %" PRIu64, blobData.size(), NColumnShard::TLimits::GetBlobSizeLimit());
+
+    const ui32 groupId = blobId.GetDsGroup();
+    SendWriteRequest(ctx, groupId, blobId.GetLogoBlobId(), blobData, 0, deadline);
+}
+
+void TBlobBatch::OnBlobWriteResult(const TLogoBlobID& blobId, const NKikimrProto::EReplyStatus status) {
+    BatchInfo->Counters.OnPutResult(blobId.BlobSize());
+    Y_ABORT_UNLESS(status == NKikimrProto::OK, "The caller must handle unsuccessful status");
+    Y_ABORT_UNLESS(BatchInfo);
+    Y_ABORT_UNLESS(blobId.Cookie() < BatchInfo->InFlight.size());
+    Y_ABORT_UNLESS(BatchInfo->InFlight[blobId.Cookie()], "Blob %s is already acked!", blobId.ToString().c_str());
+
+    BatchInfo->InFlight[blobId.Cookie()] = false;
+    --BatchInfo->InFlightCount;
+    Y_ABORT_UNLESS(BatchInfo->InFlightCount >= 0);
+}
+
+bool TBlobBatch::AllBlobWritesCompleted() const {
+    Y_ABORT_UNLESS(BatchInfo);
+    return BatchInfo->InFlightCount == 0;
+}
+
+ui64 TBlobBatch::GetBlobCount() const {
+    if (BatchInfo) {
+        return BatchInfo->GetBlobIds().size();
+    }
+    return 0;
+}
+
+ui64 TBlobBatch::GetTotalSize() const {
+    if (BatchInfo) {
+        return BatchInfo->TotalSizeBytes;
+    }
+    return 0;
+}
+
+
+TUnifiedBlobId TBlobBatch::AllocateNextBlobId(const TString& blobData) {
+    return BatchInfo->NextBlobId(blobData.size());
+}
+
+TBlobManager::TBlobManager(TIntrusivePtr tabletInfo, ui32 gen, const TTabletId selfTabletId)
+    : SelfTabletId(selfTabletId)
+    , TabletInfo(tabletInfo)
+    , CurrentGen(gen)
+    , CurrentStep(0)
+    , BlobCountToTriggerGC(BLOB_COUNT_TO_TRIGGER_GC_DEFAULT, 0, Max())
+    , GCIntervalSeconds(GC_INTERVAL_SECONDS_DEFAULT, 0,  Max())
+{}
+
+void TBlobManager::RegisterControls(NKikimr::TControlBoard& icb) {
+    icb.RegisterSharedControl(BlobCountToTriggerGC, "ColumnShardControls.BlobCountToTriggerGC");
+    icb.RegisterSharedControl(GCIntervalSeconds, "ColumnShardControls.GCIntervalSeconds");
+}
+
+bool TBlobManager::LoadState(IBlobManagerDb& db, const TTabletId selfTabletId) {
+    // Load last collected Generation
+    if (!db.LoadLastGcBarrier(LastCollectedGenStep)) {
+        return false;
+    }
+
+    // Load the keep and delete queues
+    std::vector blobsToKeep;
+    NColumnShard::TBlobGroupSelector dsGroupSelector(TabletInfo);
+    if (!db.LoadLists(blobsToKeep, BlobsToDelete, &dsGroupSelector, selfTabletId)) {
+        return false;
+    }
+
+    for (auto it = BlobsToDelete.GetIterator(); it.IsValid(); ++it) {
+        BlobsManagerCounters.OnDeleteBlobMarker(it.GetBlobId().BlobSize());
+    }
+    BlobsManagerCounters.OnBlobsDelete(BlobsToDelete);
+
+    // Build the list of steps that cannot be garbage collected before Keep flag is set on the blobs
+    THashSet genStepsWithBlobsToKeep;
+    for (const auto& unifiedBlobId : blobsToKeep) {
+        TLogoBlobID blobId = unifiedBlobId.GetLogoBlobId();
+        TGenStep genStep{blobId.Generation(), blobId.Step()};
+        Y_ABORT_UNLESS(genStep > LastCollectedGenStep);
+
+        BlobsToKeep.insert(blobId);
+        BlobsManagerCounters.OnKeepMarker(blobId.BlobSize());
+        const ui64 groupId = dsGroupSelector.GetGroup(blobId);
+        // Keep + DontKeep (probably in different gen:steps)
+        // GC could go through it to a greater LastCollectedGenStep
+        if (BlobsToDelete.Contains(SelfTabletId, TUnifiedBlobId(groupId, blobId))) {
+            continue;
+        }
+
+        genStepsWithBlobsToKeep.insert(genStep);
+    }
+    BlobsManagerCounters.OnBlobsKeep(BlobsToKeep);
+
+    AllocatedGenSteps.clear();
+    for (const auto& gs : genStepsWithBlobsToKeep) {
+        AllocatedGenSteps.push_back(new TAllocatedGenStep(gs));
+    }
+    AllocatedGenSteps.push_back(new TAllocatedGenStep({CurrentGen, 0}));
+
+    Sort(AllocatedGenSteps.begin(), AllocatedGenSteps.end(), [](const TAllocatedGenStepConstPtr& a, const TAllocatedGenStepConstPtr& b) {
+        return a->GenStep < b->GenStep;
+    });
+
+    return true;
+}
+
+void TBlobManager::PopGCBarriers(const TGenStep gs) {
+    while (AllocatedGenSteps.size() && AllocatedGenSteps.front()->GenStep <= gs) {
+        AllocatedGenSteps.pop_front();
+    }
+}
+
+std::vector TBlobManager::FindNewGCBarriers() {
+    AFL_VERIFY(!CollectGenStepInFlight);
+    TGenStep newCollectGenStep = LastCollectedGenStep;
+    std::vector result;
+    if (AllocatedGenSteps.empty()) {
+        return {TGenStep(CurrentGen, CurrentStep)};
+    }
+    for (auto& allocated : AllocatedGenSteps) {
+        AFL_VERIFY(allocated->GenStep > newCollectGenStep);
+        if (!allocated->Finished()) {
+            break;
+        }
+        result.emplace_back(allocated->GenStep);
+        newCollectGenStep = allocated->GenStep;
+    }
+    return result;
+}
+
+std::shared_ptr TBlobManager::BuildGCTask(const TString& storageId,
+    const std::shared_ptr& manager, const std::shared_ptr& sharedBlobsInfo,
+    const std::shared_ptr& counters) noexcept {
+    AFL_VERIFY(!CollectGenStepInFlight);
+    if (BlobsToKeep.empty() && BlobsToDelete.IsEmpty() && LastCollectedGenStep == TGenStep{CurrentGen, CurrentStep}) {
+        ACFL_DEBUG("event", "TBlobManager::BuildGCTask skip")("current_gen", CurrentGen)("current_step", CurrentStep);
+        return nullptr;
+    }
+    std::vector newCollectGenSteps = FindNewGCBarriers();
+
+    if (newCollectGenSteps.size()) {
+        if (AllocatedGenSteps.size()) {
+            AFL_VERIFY(newCollectGenSteps.front() > LastCollectedGenStep);
+        } else {
+            AFL_VERIFY(newCollectGenSteps.front() == LastCollectedGenStep);
+        }
+    }
+
+    PreviousGCTime = AppData()->TimeProvider->Now();
+    const ui32 channelIdx = BLOB_CHANNEL;
+    NBlobOperations::NBlobStorage::TGCTask::TGCListsByGroup perGroupGCListsInFlight;
+    // Clear all possibly not kept trash in channel's groups: create an event for each group
+
+    static const ui32 blobsGCCountLimit = 500000;
+
+    const auto predShared = [&](const TUnifiedBlobId& id, const THashSet& /*tabletIds*/) {
+        return id.GetLogoBlobId().TabletID() != (ui64)SelfTabletId;
+    };
+
+    TTabletsByBlob extractedToRemoveFromDB = BlobsToDelete.ExtractBlobs(predShared, blobsGCCountLimit);
+    if (extractedToRemoveFromDB.GetSize() >= blobsGCCountLimit) {
+        newCollectGenSteps.clear();
+    } else {
+        const auto predRemoveOld = [&](const TUnifiedBlobId& id, const THashSet& /*tabletIds*/) {
+            auto logoBlobId = id.GetLogoBlobId();
+            TGenStep genStep{logoBlobId.Generation(), logoBlobId.Step()};
+            return genStep < LastCollectedGenStep && id.GetLogoBlobId().TabletID() == (ui64)SelfTabletId;
+        };
+
+        TTabletsByBlob extractedOld = BlobsToDelete.ExtractBlobs(predRemoveOld, blobsGCCountLimit - extractedToRemoveFromDB.GetSize());
+        extractedToRemoveFromDB.Add(extractedOld);
+        for (TTabletsByBlob::TIterator itExtractedOld(extractedOld); itExtractedOld.IsValid(); ++itExtractedOld) {
+            const TUnifiedBlobId unifiedBlobId = itExtractedOld.GetBlobId();
+            auto logoBlobId = unifiedBlobId.GetLogoBlobId();
+            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("to_delete_gc", logoBlobId);
+            NBlobOperations::NBlobStorage::TGCTask::TGCLists& gl = perGroupGCListsInFlight[unifiedBlobId.GetDsGroup()];
+            BlobsManagerCounters.OnCollectDropExplicit(logoBlobId.BlobSize());
+            gl.DontKeepList.insert(logoBlobId);
+        }
+    }
+
+
+    std::deque keepsToErase;
+    std::deque deleteIndex = BlobsToDelete.GroupByGenStep();
+    for (auto&& newCollectGenStep : newCollectGenSteps) {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "PreparePerGroupGCRequests")("gen_step", newCollectGenStep);
+        BlobsManagerCounters.OnNewCollectStep(std::get<0>(newCollectGenStep), std::get<1>(newCollectGenStep));
+
+        // Make per-group Keep/DontKeep lists
+
+        {
+            // Add all blobs to keep
+            auto keepBlobIt = BlobsToKeep.begin();
+
+            for (; keepBlobIt != BlobsToKeep.end();) {
+                TGenStep genStep{keepBlobIt->Generation(), keepBlobIt->Step()};
+                AFL_VERIFY(genStep > LastCollectedGenStep);
+                if (genStep > newCollectGenStep) {
+                    break;
+                }
+                ui32 blobGroup = TabletInfo->GroupFor(keepBlobIt->Channel(), keepBlobIt->Generation());
+                perGroupGCListsInFlight[blobGroup].KeepList.insert(*keepBlobIt);
+                keepsToErase.emplace_back(TUnifiedBlobId(blobGroup, *keepBlobIt));
+                AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("to_keep_gc", *keepBlobIt);
+                keepBlobIt = BlobsToKeep.erase(keepBlobIt);
+                if (keepsToErase.size() > blobsGCCountLimit) {
+                    AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "a lot of blobs to gc")("to_remove", extractedToRemoveFromDB.GetSize())("keeps_to_erase", keepsToErase.size())("limit", blobsGCCountLimit)("has_border", !!CollectGenStepInFlight)("border", CollectGenStepInFlight.value_or(LastCollectedGenStep));
+                    break;
+                }
+            }
+            AFL_VERIFY(!CollectGenStepInFlight || *CollectGenStepInFlight <= newCollectGenStep);
+            if (keepsToErase.size() > blobsGCCountLimit) {
+                AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "a lot of blobs to gc")("to_remove", extractedToRemoveFromDB.GetSize())("keeps_to_erase", keepsToErase.size())("limit", blobsGCCountLimit)("has_border", !!CollectGenStepInFlight)("border", CollectGenStepInFlight.value_or(LastCollectedGenStep));
+                break;
+            }
+            BlobsManagerCounters.OnBlobsKeep(BlobsToKeep);
+
+            TTabletsByBlob extractedSelf;
+            {
+                while (deleteIndex.size()) {
+                    const auto& blobId = deleteIndex.front().GetLogoBlobId();
+                    if (newCollectGenStep < TGenStep(blobId.Generation(), blobId.Step())) {
+                        break;
+                    }
+                    BlobsToDelete.ExtractBlobTo(deleteIndex.front(), extractedSelf);
+                    if (extractedToRemoveFromDB.GetSize() + extractedSelf.GetSize() > blobsGCCountLimit) {
+                        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "a lot of blobs to gc")("to_remove", extractedToRemoveFromDB.GetSize())("keeps_to_erase", keepsToErase.size())("limit", blobsGCCountLimit);
+                        break;
+                    }
+                    deleteIndex.pop_front();
+                }
+
+            }
+
+            extractedToRemoveFromDB.Add(extractedSelf);
+            for (TTabletsByBlob::TIterator itExtractedSelf(extractedSelf); itExtractedSelf.IsValid(); ++itExtractedSelf) {
+                const TUnifiedBlobId unifiedBlobId = itExtractedSelf.GetBlobId();
+                auto logoBlobId = unifiedBlobId.GetLogoBlobId();
+                AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("to_delete_gc", logoBlobId);
+                NBlobOperations::NBlobStorage::TGCTask::TGCLists& gl = perGroupGCListsInFlight[unifiedBlobId.GetDsGroup()];
+                bool skipDontKeep = false;
+                if (gl.KeepList.erase(logoBlobId)) {
+                    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("to_keep_gc_remove", logoBlobId);
+                    // Skipped blobs still need to be deleted from BlobsToKeep table
+                    if (CurrentGen == logoBlobId.Generation()) {
+                        // If this blob was created and deleted in the current generation then
+                        // we can skip sending both Keep and DontKeep flags.
+                        // NOTE: its not safe to do this for older generations because there is
+                        // a scenario when Keep flag was sent in the old generation and then tablet restarted
+                        // before getting the result and removing the blob from the Keep list.
+                        skipDontKeep = true;
+                        ++CountersUpdate.BlobSkippedEntries;
+                    }
+                }
+                if (!skipDontKeep) {
+                    BlobsManagerCounters.OnCollectDropExplicit(logoBlobId.BlobSize());
+                    gl.DontKeepList.insert(logoBlobId);
+                } else {
+                    BlobsManagerCounters.OnCollectDropImplicit(logoBlobId.BlobSize());
+                }
+            }
+            BlobsManagerCounters.OnBlobsDelete(BlobsToDelete);
+        }
+        if (std::get<0>(newCollectGenStep) == CurrentGen) {
+            CollectGenStepInFlight = newCollectGenStep;
+        }
+        if (keepsToErase.size() > blobsGCCountLimit) {
+            AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "a lot of blobs to gc")("to_remove", extractedToRemoveFromDB.GetSize())("keeps_to_erase", keepsToErase.size())("limit", blobsGCCountLimit);
+            break;
+        }
+    }
+    if (CollectGenStepInFlight) {
+        if (FirstGC) {
+            FirstGC = false;
+
+            // TODO: we need only actual channel history here
+            const auto& channelHistory = TabletInfo->ChannelInfo(channelIdx)->History;
+
+            for (auto it = channelHistory.begin(); it != channelHistory.end(); ++it) {
+                perGroupGCListsInFlight[it->GroupID];
+            }
+        }
+        PopGCBarriers(*CollectGenStepInFlight);
+    }
+    if (BlobsToKeep.size() && CollectGenStepInFlight) {
+        TGenStep genStepFront{BlobsToKeep.begin()->Generation(), BlobsToKeep.begin()->Step()};
+        AFL_VERIFY(*CollectGenStepInFlight < genStepFront);
+    }
+    AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("notice", "collect_gen_step")("value", CollectGenStepInFlight)("current_gen", CurrentGen);
+    auto removeCategories = sharedBlobsInfo->BuildRemoveCategories(std::move(extractedToRemoveFromDB));
+
+    auto result = std::make_shared(storageId, std::move(perGroupGCListsInFlight), CollectGenStepInFlight,
+        std::move(keepsToErase), manager, std::move(removeCategories), counters, TabletInfo->TabletID, CurrentGen);
+    if (result->IsEmpty()) {
+        CollectGenStepInFlight = {};
+        return nullptr;
+    }
+    return result;
+}
+
+
+
+TBlobBatch TBlobManager::StartBlobBatch(ui32 channel) {
+    AFL_VERIFY(++CurrentStep < Max() - 10);
+    ++CountersUpdate.BatchesStarted;
+    Y_ABORT_UNLESS(channel == BLOB_CHANNEL, "Support for mutiple blob channels is not implemented yet");
+    ++CurrentStep;
+    TAllocatedGenStepConstPtr genStepRef = new TAllocatedGenStep({CurrentGen, CurrentStep});
+    AllocatedGenSteps.push_back(genStepRef);
+    auto batchInfo = std::make_unique(TabletInfo, genStepRef, channel, BlobsManagerCounters);
+    return TBlobBatch(std::move(batchInfo));
+}
+
+void TBlobManager::DoSaveBlobBatch(TBlobBatch&& blobBatch, IBlobManagerDb& db) {
+    Y_ABORT_UNLESS(blobBatch.BatchInfo);
+    ++CountersUpdate.BatchesCommitted;
+    CountersUpdate.BlobsWritten += blobBatch.GetBlobCount();
+
+    LOG_S_DEBUG("BlobManager at tablet " << TabletInfo->TabletID
+        << " Save Batch GenStep: " << blobBatch.BatchInfo->Gen << ":" << blobBatch.BatchInfo->Step
+        << " Blob count: " << blobBatch.BatchInfo->GetBlobIds().size());
+
+    // Add this batch to KeepQueue
+    TGenStep edgeGenStep = EdgeGenStep();
+    for (auto&& blobId: blobBatch.BatchInfo->GetBlobIds()) {
+        auto logoBlobId = blobId.GetLogoBlobId();
+        TGenStep genStep{logoBlobId.Generation(), logoBlobId.Step()};
+
+        AFL_VERIFY(genStep > edgeGenStep)("gen_step", genStep)("edge_gen_step", edgeGenStep)("blob_id", blobId.ToStringNew());
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("to_keep", logoBlobId.ToString());
+
+        BlobsManagerCounters.OnKeepMarker(logoBlobId.BlobSize());
+        BlobsToKeep.insert(std::move(logoBlobId));
+        db.AddBlobToKeep(blobId);
+    }
+    BlobsManagerCounters.OnBlobsKeep(BlobsToKeep);
+
+    blobBatch.BatchInfo->GenStepRef.Reset();
+}
+
+void TBlobManager::DeleteBlobOnExecute(const TTabletId tabletId, const TUnifiedBlobId& blobId, IBlobManagerDb& db) {
+    // Persist deletion intent
+    db.AddBlobToDelete(blobId, tabletId);
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("to_delete_on_execute", blobId);
+}
+
+void TBlobManager::DeleteBlobOnComplete(const TTabletId tabletId, const TUnifiedBlobId& blobId) {
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("to_delete_on_complete", blobId)("tablet_id_delete", (ui64)tabletId);
+    ++CountersUpdate.BlobsDeleted;
+
+    // Check if the deletion needs to be delayed until the blob is no longer
+    // used by in-flight requests
+    if (!IsBlobInUsage(blobId)) {
+        LOG_S_DEBUG("BlobManager at tablet " << TabletInfo->TabletID << " Delete Blob " << blobId);
+        Y_UNUSED(BlobsToDelete.Add(tabletId, blobId));
+        BlobsManagerCounters.OnDeleteBlobMarker(blobId.BlobSize());
+        BlobsManagerCounters.OnBlobsDelete(BlobsToDelete);
+    } else {
+        BlobsManagerCounters.OnDeleteBlobDelayedMarker(blobId.BlobSize());
+        LOG_S_DEBUG("BlobManager at tablet " << TabletInfo->TabletID << " Delay Delete Blob " << blobId);
+        BlobsToDeleteDelayed.Add(tabletId, blobId);
+    }
+}
+
+void TBlobManager::OnGCFinishedOnExecute(const std::optional& genStep, IBlobManagerDb& db) {
+    if (genStep) {
+        db.SaveLastGcBarrier(*genStep);
+    }
+}
+
+void TBlobManager::OnGCFinishedOnComplete(const std::optional& genStep) {
+    if (genStep) {
+        LastCollectedGenStep = *genStep;
+        CollectGenStepInFlight.reset();
+    } else {
+        AFL_VERIFY(!CollectGenStepInFlight);
+    }
+}
+
+void TBlobManager::OnBlobFree(const TUnifiedBlobId& blobId) {
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "blob_free")("blob_id", blobId);
+    // Check if the blob is marked for delayed deletion
+    if (BlobsToDeleteDelayed.ExtractBlobTo(blobId, BlobsToDelete)) {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("blob_id", blobId)("event", "blob_delayed_deleted");
+        BlobsManagerCounters.OnBlobsDelete(BlobsToDelete);
+        BlobsManagerCounters.OnDeleteBlobMarker(blobId.GetLogoBlobId().BlobSize());
+    }
+}
+
+}
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/blob_manager.h b/ydb/core/tx/columnshard/blobs_action/bs/blob_manager.h
new file mode 100644
index 000000000000..12f629318881
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/bs/blob_manager.h
@@ -0,0 +1,223 @@
+#pragma once
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+
+#include 
+
+namespace NKikimr::NOlap::NBlobOperations::NBlobStorage {
+class TGCTask;
+}
+
+namespace NKikimr::NOlap {
+
+using NKikimrTxColumnShard::TEvictMetadata;
+
+
+// A batch of blobs that are written by a single task.
+// The batch is later saved or discarded as a whole.
+class TBlobBatch : public TMoveOnly {
+    friend class TBlobManager;
+
+    struct TBatchInfo;
+
+    std::unique_ptr BatchInfo;
+
+private:
+    explicit TBlobBatch(std::unique_ptr batchInfo);
+
+    void SendWriteRequest(const TActorContext& ctx, ui32 groupId, const TLogoBlobID& logoBlobId,
+        const TString& data, ui64 cookie, TInstant deadline);
+
+public:
+    TBlobBatch();
+    TBlobBatch(TBlobBatch&& other);
+    TBlobBatch& operator = (TBlobBatch&& other);
+    ~TBlobBatch();
+
+    // Write new blob as a part of this batch
+    void SendWriteBlobRequest(const TString& blobData, const TUnifiedBlobId& blobId, TInstant deadline, const TActorContext& ctx);
+
+    TUnifiedBlobId AllocateNextBlobId(const TString& blobData);
+
+    // Called with the result of WriteBlob request
+    void OnBlobWriteResult(const TLogoBlobID& blobId, const NKikimrProto::EReplyStatus status);
+
+    // Tells if all WriteBlob requests got corresponding results
+    bool AllBlobWritesCompleted() const;
+
+    // Number of blobs in the batch
+    ui64 GetBlobCount() const;
+
+    // Size of all blobs in the batch
+    ui64 GetTotalSize() const;
+};
+
+class IBlobManagerDb;
+
+// An interface for writing and deleting blobs for the ColumnShard index management.
+// All garbage collection related logic is hidden inside the implementation.
+class IBlobManager {
+protected:
+    virtual void DoSaveBlobBatch(TBlobBatch&& blobBatch, IBlobManagerDb& db) = 0;
+public:
+    static constexpr ui32 BLOB_CHANNEL = 2;
+    virtual ~IBlobManager() = default;
+
+    // Allocates a temporary blob batch with the BlobManager. If the tablet crashes or if
+    // this object is destroyed without doing SaveBlobBatch then all blobs in this batch
+    // will get garbage-collected.
+    virtual TBlobBatch StartBlobBatch(ui32 channel = BLOB_CHANNEL) = 0;
+
+    // This method is called in the same transaction in which the user saves references to blobs
+    // in some LocalDB table. It tells the BlobManager that the blobs are becoming permanently saved.
+    // NOTE: At this point all blob writes must be already acknowledged.
+    void SaveBlobBatch(TBlobBatch&& blobBatch, IBlobManagerDb& db) {
+        if (blobBatch.GetBlobCount() == 0) {
+            return;
+        }
+        return DoSaveBlobBatch(std::move(blobBatch), db);
+    }
+
+    virtual void DeleteBlobOnExecute(const TTabletId tabletId, const TUnifiedBlobId& blobId, IBlobManagerDb& db) = 0;
+    virtual void DeleteBlobOnComplete(const TTabletId tabletId, const TUnifiedBlobId& blobId) = 0;
+};
+
+// A ref-counted object to keep track when GC barrier can be moved to some step.
+// This means that all needed blobs below this step have been KeepFlag-ed and Ack-ed
+struct TAllocatedGenStep : public TThrRefBase {
+    const TGenStep GenStep;
+
+    explicit TAllocatedGenStep(const TGenStep& genStep)
+        : GenStep(genStep)
+    {}
+
+    bool Finished() const {
+        return RefCount() == 1;
+    }
+};
+
+using TAllocatedGenStepConstPtr = TIntrusiveConstPtr;
+
+struct TBlobManagerCounters {
+    ui64 BatchesStarted = 0;
+    ui64 BatchesCommitted = 0;
+    // TODO: ui64 BatchesDiscarded = 0; // Can we count them?
+    ui64 BlobsWritten = 0;
+    ui64 BlobsDeleted = 0;
+    ui64 BlobKeepEntries = 0;
+    ui64 BlobDontKeepEntries = 0;
+    ui64 BlobSkippedEntries = 0;
+    ui64 GcRequestsSent = 0;
+};
+
+// The implementation of BlobManager that hides all GC-related details
+class TBlobManager : public IBlobManager, public TCommonBlobsTracker {
+private:
+    static constexpr size_t BLOB_COUNT_TO_TRIGGER_GC_DEFAULT = 1000;
+    static constexpr ui64 GC_INTERVAL_SECONDS_DEFAULT = 60;
+
+private:
+    const TTabletId SelfTabletId;
+    TIntrusivePtr TabletInfo;
+    const ui32 CurrentGen;
+    ui32 CurrentStep;
+    TControlWrapper BlobCountToTriggerGC;
+    TControlWrapper GCIntervalSeconds;
+    std::optional CollectGenStepInFlight;
+    // Lists of blobs that need Keep flag to be set
+    TSet BlobsToKeep;
+    // Lists of blobs that need DoNotKeep flag to be set
+    TTabletsByBlob BlobsToDelete;
+
+    // List of blobs that are marked for deletion but are still used by in-flight requests
+    TTabletsByBlob BlobsToDeleteDelayed;
+
+    // Sorted queue of GenSteps that have in-flight BlobBatches
+    TDeque AllocatedGenSteps;
+
+    // The Gen:Step that has been acknowledged by the Distributed Storage
+    TGenStep LastCollectedGenStep = {0, 0};
+
+    // The barrier in the current in-flight GC request(s)
+    bool FirstGC = true;
+
+    const NColumnShard::TBlobsManagerCounters BlobsManagerCounters = NColumnShard::TBlobsManagerCounters("BlobsManager");
+
+    // Stores counter updates since last call to GetCountersUpdate()
+    // Then the counters are reset and start accumulating new delta
+    TBlobManagerCounters CountersUpdate;
+
+    TInstant PreviousGCTime; // Used for delaying next GC if there are too few blobs to collect
+
+    virtual void DoSaveBlobBatch(TBlobBatch&& blobBatch, IBlobManagerDb& db) override;
+public:
+    TBlobManager(TIntrusivePtr tabletInfo, const ui32 gen, const TTabletId selfTabletId);
+
+    TTabletsByBlob GetBlobsToDeleteAll() const {
+        auto result = BlobsToDelete;
+        result.Add(BlobsToDeleteDelayed);
+        return result;
+    }
+
+    virtual void OnBlobFree(const TUnifiedBlobId& blobId) override;
+
+    const NColumnShard::TBlobsManagerCounters& GetCounters() const {
+        return BlobsManagerCounters;
+    }
+
+    TTabletId GetSelfTabletId() const {
+        return SelfTabletId;
+    }
+
+    ui64 GetTabletId() const {
+        return TabletInfo->TabletID;
+    }
+
+    ui64 GetCurrentGen() const {
+        return CurrentGen;
+    }
+
+    void RegisterControls(NKikimr::TControlBoard& icb);
+
+    // Loads the state at startup
+    bool LoadState(IBlobManagerDb& db, const TTabletId selfTabletId);
+
+    // Prepares Keep/DontKeep lists and GC barrier
+    std::shared_ptr BuildGCTask(const TString& storageId,
+        const std::shared_ptr& manager, const std::shared_ptr& sharedBlobsInfo,
+        const std::shared_ptr& counters) noexcept;
+
+    void OnGCFinishedOnExecute(const std::optional& genStep, IBlobManagerDb& db);
+    void OnGCFinishedOnComplete(const std::optional& genStep);
+
+    TBlobManagerCounters GetCountersUpdate() {
+        TBlobManagerCounters res = CountersUpdate;
+        CountersUpdate = TBlobManagerCounters();
+        return res;
+    }
+
+    // Implementation of IBlobManager interface
+    TBlobBatch StartBlobBatch(ui32 channel = BLOB_CHANNEL) override;
+    virtual void DeleteBlobOnExecute(const TTabletId tabletId, const TUnifiedBlobId& blobId, IBlobManagerDb& db) override;
+    virtual void DeleteBlobOnComplete(const TTabletId tabletId, const TUnifiedBlobId& blobId) override;
+private:
+    std::vector FindNewGCBarriers();
+    void PopGCBarriers(const TGenStep gs);
+    void PopGCBarriers(const ui32 count);
+
+    bool ExtractEvicted(TEvictedBlob& evict, TEvictMetadata& meta, bool fromDropped = false);
+
+    TGenStep EdgeGenStep() const {
+        return CollectGenStepInFlight ? *CollectGenStepInFlight : LastCollectedGenStep;
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/gc.cpp b/ydb/core/tx/columnshard/blobs_action/bs/gc.cpp
index 7d6a7456701b..823a016dee22 100644
--- a/ydb/core/tx/columnshard/blobs_action/bs/gc.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/bs/gc.cpp
@@ -2,99 +2,64 @@
 #include "storage.h"
 #include 
 #include 
-#include 
 #include 
 
 namespace NKikimr::NOlap::NBlobOperations::NBlobStorage {
 
-void TGCTask::DoOnExecuteTxAfterCleaning(NColumnShard::TColumnShard& /*self*/, NColumnShard::TBlobManagerDb& dbBlobs) {
-    size_t numBlobs = 0;
-
-    for (; KeepsToErase.size() && numBlobs < NColumnShard::TLimits::MAX_BLOBS_TO_DELETE; ++numBlobs) {
-        dbBlobs.EraseBlobToKeep(KeepsToErase.front());
-        KeepsToErase.pop_front();
-    }
+void TGCTask::RemoveBlobIdFromDB(const TTabletId tabletId, const TUnifiedBlobId& blobId, TBlobManagerDb& dbBlobs) {
+    dbBlobs.EraseBlobToDelete(blobId, tabletId);
+}
 
-    for (; DeletesToErase.size() && numBlobs < NColumnShard::TLimits::MAX_BLOBS_TO_DELETE; ++numBlobs) {
-        dbBlobs.EraseBlobToDelete(DeletesToErase.front());
-        DeletesToErase.pop_front();
-    }
-    if (KeepsToErase.empty() && DeletesToErase.empty()) {
-        Manager->OnGCFinished(CollectGenStepInFlight, dbBlobs);
+void TGCTask::DoOnExecuteTxAfterCleaning(NColumnShard::TColumnShard& /*self*/, TBlobManagerDb& dbBlobs) {
+    for (auto&& i : KeepsToErase) {
+        dbBlobs.EraseBlobToKeep(i);
     }
+    Manager->OnGCFinishedOnExecute(CollectGenStepInFlight, dbBlobs);
 }
 
-bool TGCTask::DoOnCompleteTxAfterCleaning(NColumnShard::TColumnShard& self, const std::shared_ptr& taskAction) {
-    if (KeepsToErase.size() || DeletesToErase.size()) {
-        TActorContext::AsActorContext().Send(self.SelfId(), std::make_unique(taskAction));
-        return false;
-    } else {
-        return true;
-    }
+bool TGCTask::DoOnCompleteTxAfterCleaning(NColumnShard::TColumnShard& /*self*/, const std::shared_ptr& /*taskAction*/) {
+    Manager->OnGCFinishedOnComplete(CollectGenStepInFlight);
+    return true;
 }
 
-TGCTask::TGCTask(const TString& storageId, TGCListsByGroup&& listsByGroupId, const NColumnShard::TGenStep& collectGenStepInFlight, std::deque&& keepsToErase, std::deque&& deletesToErase,
-    const std::shared_ptr& manager)
-    : TBase(storageId)
+TGCTask::TGCTask(const TString& storageId, TGCListsByGroup&& listsByGroupId, const std::optional& collectGenStepInFlight, std::deque&& keepsToErase,
+    const std::shared_ptr& manager, TBlobsCategories&& blobsToRemove, const std::shared_ptr& counters,
+    const ui64 tabletId, const ui64 currentGen)
+    : TBase(storageId, std::move(blobsToRemove), counters)
     , ListsByGroupId(std::move(listsByGroupId))
     , CollectGenStepInFlight(collectGenStepInFlight)
+    , TabletId(tabletId)
+    , CurrentGen(currentGen)
     , KeepsToErase(std::move(keepsToErase))
-    , DeletesToErase(std::move(deletesToErase))
     , Manager(manager)
 {
 }
 
 void TGCTask::OnGCResult(TEvBlobStorage::TEvCollectGarbageResult::TPtr ev) {
     AFL_VERIFY(ev->Get()->Status == NKikimrProto::OK)("status", ev->Get()->Status)("details", ev->Get()->ToString())("action_id", GetActionGuid());
-
-    // Find the group for this result
-    ui64 counterFromRequest = ev->Get()->PerGenerationCounter;
-    auto itCounter = CounterToGroupInFlight.find(counterFromRequest);
-    Y_ABORT_UNLESS(itCounter != CounterToGroupInFlight.end());
-    const ui32 group = itCounter->second;
-
-    auto itGroup = ListsByGroupId.find(group);
+    auto itGroup = ListsByGroupId.find(ev->Cookie);
     Y_ABORT_UNLESS(itGroup != ListsByGroupId.end());
-    const auto& keepList = itGroup->second.KeepList;
-    const auto& dontKeepList = itGroup->second.DontKeepList;
-
-    for (auto&& i : dontKeepList) {
-        Counters->OnReply(i.BlobSize());
-    }
-
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("actor", "OnGCResult")("keep_list", keepList.size())("dont_keep_list", dontKeepList.size());
-
-    for (const auto& blobId : keepList) {
-        KeepsToErase.emplace_back(TUnifiedBlobId(group, blobId));
-    }
-    for (const auto& blobId : dontKeepList) {
-        DeletesToErase.emplace_back(TUnifiedBlobId(group, blobId));
-    }
-
     ListsByGroupId.erase(itGroup);
-    CounterToGroupInFlight.erase(itCounter);
 }
 
-THashMap> TGCTask::BuildRequests(ui64& perGenerationCounter, const ui64 tabletId, const ui64 currentGen) {
-    const ui32 channelIdx = NColumnShard::IBlobManager::BLOB_CHANNEL;
-    // Make per group requests
-    THashMap> requests;
-    for (const auto& gl : ListsByGroupId) {
-        ui32 group = gl.first;
-        requests[group] = std::make_unique(
-            tabletId, currentGen, perGenerationCounter,
-            channelIdx, true,
-            std::get<0>(CollectGenStepInFlight), std::get<1>(CollectGenStepInFlight),
-            new TVector(gl.second.KeepList.begin(), gl.second.KeepList.end()),
-            new TVector(gl.second.DontKeepList.begin(), gl.second.DontKeepList.end()),
-            TInstant::Max(), true);
-        for (auto&& i : gl.second.DontKeepList) {
-            Counters->OnRequest(i.BlobSize());
-        }
-        Y_ABORT_UNLESS(CounterToGroupInFlight.emplace(perGenerationCounter, group).second);
-        perGenerationCounter += requests[group]->PerGenerationCounterStepSize();
-    }
-    return std::move(requests);
+namespace {
+static TAtomicCounter PerGenerationCounter = 1;
+}
+
+std::unique_ptr TGCTask::BuildRequest(const ui64 groupId) const {
+    const ui32 channelIdx = IBlobManager::BLOB_CHANNEL;
+    auto it = ListsByGroupId.find(groupId);
+    AFL_VERIFY(it != ListsByGroupId.end());
+    AFL_VERIFY(++it->second.RequestsCount < 10);
+    auto result = std::make_unique(
+        TabletId, CurrentGen, PerGenerationCounter.Val(),
+        channelIdx, !!CollectGenStepInFlight,
+        CollectGenStepInFlight ? std::get<0>(*CollectGenStepInFlight) : 0, CollectGenStepInFlight ? std::get<1>(*CollectGenStepInFlight) : 0,
+        new TVector(it->second.KeepList.begin(), it->second.KeepList.end()),
+        new TVector(it->second.DontKeepList.begin(), it->second.DontKeepList.end()),
+        TInstant::Max(), true);
+    result->PerGenerationCounter = PerGenerationCounter.Add(result->PerGenerationCounterStepSize());
+    return std::move(result);
 }
 
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/gc.h b/ydb/core/tx/columnshard/blobs_action/bs/gc.h
index c8ee866acb63..b19fcad9b468 100644
--- a/ydb/core/tx/columnshard/blobs_action/bs/gc.h
+++ b/ydb/core/tx/columnshard/blobs_action/bs/gc.h
@@ -1,9 +1,10 @@
 #pragma once
 
+#include "blob_manager.h"
+
 #include 
 #include 
 #include 
-#include 
 
 namespace NKikimr::NOlap::NBlobOperations::NBlobStorage {
 
@@ -14,31 +15,31 @@ class TGCTask: public IBlobsGCAction {
     struct TGCLists {
         THashSet KeepList;
         THashSet DontKeepList;
+        mutable ui32 RequestsCount = 0;
     };
     using TGCListsByGroup = THashMap;
 private:
     TGCListsByGroup ListsByGroupId;
-    NColumnShard::TGenStep CollectGenStepInFlight;
-    // Maps PerGenerationCounter value to the group in PerGroupGCListsInFlight
-    THashMap CounterToGroupInFlight;
+    std::optional CollectGenStepInFlight;
+    const ui64 TabletId;
+    const ui64 CurrentGen;
     std::deque KeepsToErase;
-    std::deque DeletesToErase;
-    std::shared_ptr Manager;
-    std::shared_ptr Counters;
+    std::shared_ptr Manager;
 protected:
-    virtual void DoOnExecuteTxAfterCleaning(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs) override;
+    virtual void RemoveBlobIdFromDB(const TTabletId tabletId, const TUnifiedBlobId& blobId, TBlobManagerDb& dbBlobs) override;
+    virtual void DoOnExecuteTxAfterCleaning(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs) override;
     virtual bool DoOnCompleteTxAfterCleaning(NColumnShard::TColumnShard& self, const std::shared_ptr& taskAction) override;
-public:
-    bool IsEmpty() const {
-        return ListsByGroupId.empty();
+    virtual bool DoIsEmpty() const override {
+        return !CollectGenStepInFlight && KeepsToErase.empty();
     }
 
-    void SetCounters(const std::shared_ptr& counters) {
-        Counters = counters;
-    }
+public:
+    TGCTask(const TString& storageId, TGCListsByGroup&& listsByGroupId, const std::optional& collectGenStepInFlight, std::deque&& keepsToErase,
+        const std::shared_ptr& manager, TBlobsCategories&& blobsToRemove, const std::shared_ptr& counters, const ui64 tabletId, const ui64 currentGen);
 
-    TGCTask(const TString& storageId, TGCListsByGroup&& listsByGroupId, const NColumnShard::TGenStep& collectGenStepInFlight, std::deque&& keepsToErase, std::deque&& deletesToErase,
-        const std::shared_ptr& manager);
+    const TGCListsByGroup& GetListsByGroupId() const {
+        return ListsByGroupId;
+    }
 
     bool IsFinished() const {
         return ListsByGroupId.empty();
@@ -46,7 +47,7 @@ class TGCTask: public IBlobsGCAction {
 
     void OnGCResult(TEvBlobStorage::TEvCollectGarbageResult::TPtr ev);
 
-    THashMap> BuildRequests(ui64& perGenerationCounter, const ui64 tabletId, const ui64 currentGen);
+    std::unique_ptr BuildRequest(const ui64 groupId) const;
 };
 
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/gc_actor.cpp b/ydb/core/tx/columnshard/blobs_action/bs/gc_actor.cpp
index e0fd4d29f277..8c2e792024ee 100644
--- a/ydb/core/tx/columnshard/blobs_action/bs/gc_actor.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/bs/gc_actor.cpp
@@ -9,9 +9,17 @@ void TGarbageCollectionActor::Handle(TEvBlobStorage::TEvCollectGarbageResult::TP
         auto g = PassAwayGuard();
         ACFL_WARN("event", "blocked_gc_event");
         return;
+    } else if (ev->Get()->Status == NKikimrProto::OK) {
+        GCTask->OnGCResult(ev);
+        CheckFinished();
+    } else {
+        ACFL_ERROR()("event", "GC_ERROR")("details", ev->Get()->Print(true));
+        SendToBSProxy(NActors::TActivationContext::AsActorContext(), ev->Cookie, GCTask->BuildRequest(ev->Cookie).release(), ev->Cookie);
     }
-    GCTask->OnGCResult(ev);
-    if (GCTask->IsFinished()) {
+}
+
+void TGarbageCollectionActor::CheckFinished() {
+    if (SharedRemovingFinished && GCTask->IsFinished()) {
         auto g = PassAwayGuard();
         ACFL_DEBUG("actor", "TGarbageCollectionActor")("event", "finished");
         TActorContext::AsActorContext().Send(TabletActorId, std::make_unique(GCTask));
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/gc_actor.h b/ydb/core/tx/columnshard/blobs_action/bs/gc_actor.h
index bcd5dfdbe06c..b2ebcfd35368 100644
--- a/ydb/core/tx/columnshard/blobs_action/bs/gc_actor.h
+++ b/ydb/core/tx/columnshard/blobs_action/bs/gc_actor.h
@@ -1,22 +1,27 @@
 #pragma once
 #include "gc.h"
 
-#include 
+#include 
 #include 
 #include 
 
 namespace NKikimr::NOlap::NBlobOperations::NBlobStorage {
 
-class TGarbageCollectionActor: public TActorBootstrapped {
+class TGarbageCollectionActor: public TSharedBlobsCollectionActor {
 private:
+    using TBase = TSharedBlobsCollectionActor;
     const NActors::TActorId TabletActorId;
-    THashMap> Requests;
     std::shared_ptr GCTask;
     void Handle(TEvBlobStorage::TEvCollectGarbageResult::TPtr& ev);
+    void CheckFinished();
+
+    virtual void DoOnSharedRemovingFinished() override {
+        CheckFinished();
+    }
 public:
-    TGarbageCollectionActor(const std::shared_ptr& task, THashMap>&& requests, const NActors::TActorId& tabletActorId)
-        : TabletActorId(tabletActorId)
-        , Requests(std::move(requests))
+    TGarbageCollectionActor(const std::shared_ptr& task, const NActors::TActorId& tabletActorId, const TTabletId selfTabletId)
+        : TBase(task->GetStorageId(), selfTabletId, task->GetBlobsToRemove().GetBorrowed())
+        , TabletActorId(tabletActorId)
         , GCTask(task)
     {
 
@@ -26,14 +31,19 @@ class TGarbageCollectionActor: public TActorBootstrappedGetActionGuid());
         switch (ev->GetTypeRewrite()) {
             hFunc(TEvBlobStorage::TEvCollectGarbageResult, Handle);
+            default:
+                TBase::StateWork(ev);
         }
     }
 
     void Bootstrap(const TActorContext& ctx) {
         AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("actor", "TGarbageCollectionActor")("event", "starting")("action_id", GCTask->GetActionGuid());
-        for (auto&& i : Requests) {
-            SendToBSProxy(ctx, i.first, i.second.release());
+        for (auto&& i : GCTask->GetListsByGroupId()) {
+            auto request = GCTask->BuildRequest(i.first);
+            AFL_VERIFY(request);
+            SendToBSProxy(ctx, i.first, request.release(), i.first);
         }
+        TBase::Bootstrap(ctx);
         Become(&TGarbageCollectionActor::StateWork);
     }
 };
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/read.cpp b/ydb/core/tx/columnshard/blobs_action/bs/read.cpp
index 89852a31f4d3..93d6e45200c4 100644
--- a/ydb/core/tx/columnshard/blobs_action/bs/read.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/bs/read.cpp
@@ -1,5 +1,14 @@
 #include "read.h"
+#include 
+#include 
 
 namespace NKikimr::NOlap::NBlobOperations::NBlobStorage {
 
+void TReadingAction::DoStartReading(THashSet&& ranges) {
+    NBlobCache::TReadBlobRangeOptions readOpts{.CacheAfterRead = true, .IsBackgroud = GetIsBackgroundProcess(), .WithDeadline = false};
+    std::vector rangesLocal(ranges.begin(), ranges.end());
+    TActorContext::AsActorContext().Send(BlobCacheActorId, new NBlobCache::TEvBlobCache::TEvReadBlobRangeBatch(std::move(rangesLocal), std::move(readOpts)));
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("blob_ids", JoinSeq(",", ranges))("count", ranges.size());
+}
+
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/read.h b/ydb/core/tx/columnshard/blobs_action/bs/read.h
index e21c66866a05..1bd6bbc03dfc 100644
--- a/ydb/core/tx/columnshard/blobs_action/bs/read.h
+++ b/ydb/core/tx/columnshard/blobs_action/bs/read.h
@@ -1,8 +1,6 @@
 #pragma once
 
 #include 
-#include 
-#include 
 
 namespace NKikimr::NOlap::NBlobOperations::NBlobStorage {
 
@@ -11,13 +9,9 @@ class TReadingAction: public IBlobsReadingAction {
     using TBase = IBlobsReadingAction;
     const TActorId BlobCacheActorId;
 protected:
-    virtual void DoStartReading(const THashMap>& ranges) override {
-        for (auto&& i : ranges) {
-            NBlobCache::TReadBlobRangeOptions readOpts{.CacheAfterRead = true, .IsBackgroud = GetIsBackgroundProcess(), .WithDeadline = false};
-            std::vector rangesLocal(i.second.begin(), i.second.end());
-            TActorContext::AsActorContext().Send(BlobCacheActorId, new NBlobCache::TEvBlobCache::TEvReadBlobRangeBatch(std::move(rangesLocal), std::move(readOpts)));
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("blob_id", i.first)("count", i.second.size());
-        }
+    virtual void DoStartReading(THashSet&& ranges) override;
+    virtual THashMap> GroupBlobsForOptimization(std::vector&& ranges) const override {
+        return TBlobsGlueing::GroupRanges(std::move(ranges), TBlobsGlueing::TSequentialGluePolicy());
     }
 public:
 
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/remove.h b/ydb/core/tx/columnshard/blobs_action/bs/remove.h
index 59c8bf38dcaf..4067b9c7e8cd 100644
--- a/ydb/core/tx/columnshard/blobs_action/bs/remove.h
+++ b/ydb/core/tx/columnshard/blobs_action/bs/remove.h
@@ -1,37 +1,36 @@
 #pragma once
 
+#include "blob_manager.h"
 #include 
-#include 
-#include 
 
 namespace NKikimr::NOlap::NBlobOperations::NBlobStorage {
 
 class TDeclareRemovingAction: public IBlobsDeclareRemovingAction {
 private:
     using TBase = IBlobsDeclareRemovingAction;
-    NColumnShard::TBlobManager* Manager;
+    TBlobManager* Manager;
 protected:
-    virtual void DoDeclareRemove(const TUnifiedBlobId& /*blobId*/) {
+    virtual void DoDeclareRemove(const TTabletId /*tabletId*/, const TUnifiedBlobId& /*blobId*/) {
 
     }
 
-    virtual void DoOnExecuteTxAfterRemoving(NColumnShard::TColumnShard& /*self*/, NColumnShard::TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
+    virtual void DoOnExecuteTxAfterRemoving(TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
         if (blobsWroteSuccessfully) {
-            for (auto&& i : GetDeclaredBlobs()) {
-                Manager->DeleteBlobOnExecute(i, dbBlobs);
+            for (auto i = GetDeclaredBlobs().GetIterator(); i.IsValid(); ++i) {
+                Manager->DeleteBlobOnExecute(i.GetTabletId(), i.GetBlobId(), dbBlobs);
             }
         }
     }
-    virtual void DoOnCompleteTxAfterRemoving(NColumnShard::TColumnShard& /*self*/, const bool blobsWroteSuccessfully) {
+    virtual void DoOnCompleteTxAfterRemoving(const bool blobsWroteSuccessfully) {
         if (blobsWroteSuccessfully) {
-            for (auto&& i : GetDeclaredBlobs()) {
-                Manager->DeleteBlobOnComplete(i);
+            for (auto i = GetDeclaredBlobs().GetIterator(); i.IsValid(); ++i) {
+                Manager->DeleteBlobOnComplete(i.GetTabletId(), i.GetBlobId());
             }
         }
     }
 public:
-    TDeclareRemovingAction(const TString& storageId, NColumnShard::TBlobManager& manager)
-        : TBase(storageId)
+    TDeclareRemovingAction(const TString& storageId, const std::shared_ptr& counters, TBlobManager& manager)
+        : TBase(storageId, manager.GetSelfTabletId(), counters)
         , Manager(&manager)
     {
 
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/storage.cpp b/ydb/core/tx/columnshard/blobs_action/bs/storage.cpp
index 7b9b864b8bb7..80a9c356ec40 100644
--- a/ydb/core/tx/columnshard/blobs_action/bs/storage.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/bs/storage.cpp
@@ -8,8 +8,8 @@
 
 namespace NKikimr::NOlap::NBlobOperations::NBlobStorage {
 
-std::shared_ptr TOperator::DoStartDeclareRemovingAction() {
-    return std::make_shared(GetStorageId(), *Manager);
+std::shared_ptr TOperator::DoStartDeclareRemovingAction(const std::shared_ptr& counters) {
+    return std::make_shared(GetStorageId(), counters, *Manager);
 }
 
 std::shared_ptr TOperator::DoStartWritingAction() {
@@ -21,22 +21,23 @@ std::shared_ptr TOperator::DoStartReadingAc
 }
 
 std::shared_ptr TOperator::DoStartGCAction(const std::shared_ptr& counters) const {
-    auto gcTask = Manager->BuildGCTask(GetStorageId(), Manager);
-    if (!gcTask || gcTask->IsEmpty()) {
+    auto gcTask = Manager->BuildGCTask(GetStorageId(), Manager, GetSharedBlobs(), counters);
+    if (!gcTask) {
         AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "StartGCSkipped");
         return nullptr;
+    } else {
+        AFL_VERIFY(!gcTask->IsEmpty());
     }
-    gcTask->SetCounters(counters);
-    auto requests = gcTask->BuildRequests(PerGenerationCounter, Manager->GetTabletId(), Manager->GetCurrentGen());
-    AFL_VERIFY(requests.size());
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "StartGC")("requests_count", requests.size());
-    TActorContext::AsActorContext().Register(new TGarbageCollectionActor(gcTask, std::move(requests), TabletActorId));
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "StartGC")("requests_count", gcTask->GetListsByGroupId().size());
+    TActorContext::AsActorContext().Register(new TGarbageCollectionActor(gcTask, TabletActorId, GetSelfTabletId()));
     return gcTask;
 }
 
-TOperator::TOperator(const TString& storageId, const NActors::TActorId& tabletActorId, const TIntrusivePtr& tabletInfo, const ui64 generation)
-    : TBase(storageId)
-    , Manager(std::make_shared(tabletInfo, generation))
+TOperator::TOperator(const TString& storageId, 
+    const NActors::TActorId& tabletActorId, const TIntrusivePtr& tabletInfo, 
+    const ui64 generation, const std::shared_ptr& sharedBlobs)
+    : TBase(storageId, sharedBlobs)
+    , Manager(std::make_shared(tabletInfo, generation, sharedBlobs->GetSelfTabletId()))
     , BlobCacheActorId(NBlobCache::MakeBlobCacheServiceId())
     , TabletActorId(tabletActorId)
 {
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/storage.h b/ydb/core/tx/columnshard/blobs_action/bs/storage.h
index 9e39e6173f0e..230b703020b8 100644
--- a/ydb/core/tx/columnshard/blobs_action/bs/storage.h
+++ b/ydb/core/tx/columnshard/blobs_action/bs/storage.h
@@ -1,8 +1,8 @@
 #pragma once
+#include "blob_manager.h"
 
 #include 
 #include 
-#include 
 #include 
 
 namespace NKikimr::NOlap::NBlobOperations::NBlobStorage {
@@ -10,24 +10,30 @@ namespace NKikimr::NOlap::NBlobOperations::NBlobStorage {
 class TOperator: public IBlobsStorageOperator {
 private:
     using TBase = IBlobsStorageOperator;
-    std::shared_ptr Manager;
+    std::shared_ptr Manager;
     const TActorId BlobCacheActorId;
     mutable ui64 PerGenerationCounter = 1;
     const TActorId TabletActorId;
 protected:
-    virtual std::shared_ptr DoStartDeclareRemovingAction() override;
+    virtual std::shared_ptr DoStartDeclareRemovingAction(const std::shared_ptr& counters) override;
     virtual std::shared_ptr DoStartWritingAction() override;
     virtual std::shared_ptr DoStartReadingAction() override;
     virtual std::shared_ptr DoStartGCAction(const std::shared_ptr& counters) const override;
-    virtual bool DoLoad(NColumnShard::IBlobManagerDb& dbBlobs) override {
-        return Manager->LoadState(dbBlobs);
+    virtual bool DoLoad(IBlobManagerDb& dbBlobs) override {
+        return Manager->LoadState(dbBlobs, GetSelfTabletId());
     }
-    virtual void DoOnTieringModified(const std::shared_ptr& /*tiers*/) override {
+    virtual void DoOnTieringModified(const std::shared_ptr& /*tiers*/) override {
         return;
     }
 
 public:
-    TOperator(const TString& storageId, const NActors::TActorId& tabletActorId, const TIntrusivePtr& tabletInfo, const ui64 generation);
+    TOperator(const TString& storageId, const NActors::TActorId& tabletActorId,
+        const TIntrusivePtr& tabletInfo, const ui64 generation, const std::shared_ptr& sharedBlobs);
+
+    virtual TTabletsByBlob GetBlobsToDelete() const override {
+        return Manager->GetBlobsToDeleteAll();
+    }
+
     virtual std::shared_ptr GetBlobsTracker() const override {
         return Manager;
     }
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/write.cpp b/ydb/core/tx/columnshard/blobs_action/bs/write.cpp
index cc3fd41bccd4..c72805d16b6c 100644
--- a/ydb/core/tx/columnshard/blobs_action/bs/write.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/bs/write.cpp
@@ -3,7 +3,7 @@
 
 namespace NKikimr::NOlap::NBlobOperations::NBlobStorage {
 
-void TWriteAction::DoOnExecuteTxAfterWrite(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
+void TWriteAction::DoOnExecuteTxAfterWrite(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
     ui64 blobsWritten = BlobBatch.GetBlobCount();
     ui64 bytesWritten = BlobBatch.GetTotalSize();
     if (blobsWroteSuccessfully) {
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/write.h b/ydb/core/tx/columnshard/blobs_action/bs/write.h
index d02f9b0dd7c6..049dbf1dd3c1 100644
--- a/ydb/core/tx/columnshard/blobs_action/bs/write.h
+++ b/ydb/core/tx/columnshard/blobs_action/bs/write.h
@@ -1,16 +1,15 @@
 #pragma once
 
+#include "blob_manager.h"
 #include 
-#include 
-#include 
 
 namespace NKikimr::NOlap::NBlobOperations::NBlobStorage {
 
 class TWriteAction: public IBlobsWritingAction {
 private:
     using TBase = IBlobsWritingAction;
-    NColumnShard::TBlobBatch BlobBatch;
-    std::shared_ptr Manager;
+    TBlobBatch BlobBatch;
+    std::shared_ptr Manager;
 protected:
     virtual void DoSendWriteBlobRequest(const TString& data, const TUnifiedBlobId& blobId) override {
         return BlobBatch.SendWriteBlobRequest(data, blobId, TInstant::Max(), TActorContext::AsActorContext());
@@ -20,7 +19,7 @@ class TWriteAction: public IBlobsWritingAction {
         return BlobBatch.OnBlobWriteResult(blobId.GetLogoBlobId(), status);
     }
 
-    virtual void DoOnExecuteTxBeforeWrite(NColumnShard::TColumnShard& /*self*/, NColumnShard::TBlobManagerDb& /*dbBlobs*/) override {
+    virtual void DoOnExecuteTxBeforeWrite(NColumnShard::TColumnShard& /*self*/, TBlobManagerDb& /*dbBlobs*/) override {
         return;
     }
 
@@ -28,7 +27,7 @@ class TWriteAction: public IBlobsWritingAction {
         return;
     }
 
-    virtual void DoOnExecuteTxAfterWrite(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) override;
+    virtual void DoOnExecuteTxAfterWrite(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) override;
     virtual void DoOnCompleteTxAfterWrite(NColumnShard::TColumnShard& /*self*/, const bool /*blobsWroteSuccessfully*/) override {
 
     }
@@ -41,7 +40,7 @@ class TWriteAction: public IBlobsWritingAction {
         return BlobBatch.AllocateNextBlobId(data);
     }
 
-    TWriteAction(const TString& storageId, const std::shared_ptr& manager)
+    TWriteAction(const TString& storageId, const std::shared_ptr& manager)
         : TBase(storageId)
         , BlobBatch(manager->StartBlobBatch())
         , Manager(manager)
diff --git a/ydb/core/tx/columnshard/blobs_action/bs/ya.make b/ydb/core/tx/columnshard/blobs_action/bs/ya.make
index 5974c3731cee..96b89d123e9d 100644
--- a/ydb/core/tx/columnshard/blobs_action/bs/ya.make
+++ b/ydb/core/tx/columnshard/blobs_action/bs/ya.make
@@ -7,6 +7,7 @@ SRCS(
     read.cpp
     storage.cpp
     remove.cpp
+    blob_manager.cpp
 )
 
 PEERDIR(
@@ -14,6 +15,8 @@ PEERDIR(
     contrib/libs/apache/arrow
     ydb/core/tablet_flat
     ydb/core/tx/tiering
+    ydb/core/tx/columnshard/data_sharing/protos
+    ydb/core/tx/columnshard/blobs_action/abstract
 )
 
 END()
diff --git a/ydb/core/tx/columnshard/blobs_action/common/const.cpp b/ydb/core/tx/columnshard/blobs_action/common/const.cpp
new file mode 100644
index 000000000000..0c63111e4497
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/common/const.cpp
@@ -0,0 +1,5 @@
+#include "const.h"
+
+namespace NKikimr::NOlap::NBlobOperations {
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/blobs_action/common/const.h b/ydb/core/tx/columnshard/blobs_action/common/const.h
new file mode 100644
index 000000000000..8901620b2dd0
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/common/const.h
@@ -0,0 +1,12 @@
+#pragma once
+#include 
+
+namespace NKikimr::NOlap::NBlobOperations {
+
+class TGlobal {
+public:
+    static const inline TString DefaultStorageId = "__DEFAULT";
+    static const inline TString MemoryStorageId = "__MEMORY";
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/blobs_action/common/ya.make b/ydb/core/tx/columnshard/blobs_action/common/ya.make
new file mode 100644
index 000000000000..0d6ae9574b16
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/common/ya.make
@@ -0,0 +1,10 @@
+LIBRARY()
+
+SRCS(
+    const.cpp
+)
+
+PEERDIR(
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/blobs_action/counters/storage.cpp b/ydb/core/tx/columnshard/blobs_action/counters/storage.cpp
index e7c30dc5ee4f..9fec504f7d38 100644
--- a/ydb/core/tx/columnshard/blobs_action/counters/storage.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/counters/storage.cpp
@@ -1,4 +1,6 @@
 #include "storage.h"
+#include 
+#include 
 
 namespace NKikimr::NOlap::NBlobOperations {
 
@@ -6,14 +8,18 @@ TStorageCounters::TStorageCounters(const TString& storageId)
     : TBase("BlobStorages")
 {
     DeepSubGroup("StorageId", storageId);
+    Consumers.resize((ui32)EConsumer::COUNT);
+    for (auto&& i : GetEnumAllValues()) {
+        if (i == EConsumer::COUNT) {
+            continue;
+        }
+        Consumers[(ui32)i] = std::make_shared(::ToString(i), *this);
+    }
 }
 
-std::shared_ptr TStorageCounters::GetConsumerCounter(const TString& consumerId) {
-    auto it = ConsumerCounters.find(consumerId);
-    if (it == ConsumerCounters.end()) {
-        it = ConsumerCounters.emplace(consumerId, std::make_shared(consumerId, *this)).first;
-    }
-    return it->second;
+std::shared_ptr TStorageCounters::GetConsumerCounter(const EConsumer consumer) {
+    AFL_VERIFY((ui32)consumer < Consumers.size());
+    return Consumers[(ui32)consumer];
 }
 
 TConsumerCounters::TConsumerCounters(const TString& consumerId, const TStorageCounters& parent)
diff --git a/ydb/core/tx/columnshard/blobs_action/counters/storage.h b/ydb/core/tx/columnshard/blobs_action/counters/storage.h
index e92ca28bda20..617c952c84c5 100644
--- a/ydb/core/tx/columnshard/blobs_action/counters/storage.h
+++ b/ydb/core/tx/columnshard/blobs_action/counters/storage.h
@@ -11,6 +11,25 @@ namespace NKikimr::NOlap::NBlobOperations {
 
 class TStorageCounters;
 
+enum class EConsumer {
+    TTL = 0,
+    GENERAL_COMPACTION,
+    INDEXATION,
+    CLEANUP_TABLES,
+    CLEANUP_PORTIONS,
+    CLEANUP_INSERT_TABLE,
+    CLEANUP_SHARED_BLOBS,
+    EXPORT,
+    SCAN,
+    GC,
+    WRITING,
+    WRITING_BUFFER,
+    WRITING_OPERATOR,
+    NORMALIZER,
+
+    COUNT
+};
+
 class TConsumerCounters: public NColumnShard::TCommonCountersOwner {
 private:
     using TBase = NColumnShard::TCommonCountersOwner;
@@ -25,11 +44,11 @@ class TConsumerCounters: public NColumnShard::TCommonCountersOwner {
 class TStorageCounters: public NColumnShard::TCommonCountersOwner {
 private:
     using TBase = NColumnShard::TCommonCountersOwner;
-    THashMap> ConsumerCounters;
+    std::vector> Consumers;
 public:
     TStorageCounters(const TString& storageId);
 
-    std::shared_ptr GetConsumerCounter(const TString& consumerId);
+    std::shared_ptr GetConsumerCounter(const EConsumer consumer);
 
 };
 
diff --git a/ydb/core/tx/columnshard/blobs_action/counters/ya.make b/ydb/core/tx/columnshard/blobs_action/counters/ya.make
index 34b9f0747546..4c1aef6d35b8 100644
--- a/ydb/core/tx/columnshard/blobs_action/counters/ya.make
+++ b/ydb/core/tx/columnshard/blobs_action/counters/ya.make
@@ -14,4 +14,6 @@ PEERDIR(
     ydb/core/tablet_flat
 )
 
+GENERATE_ENUM_SERIALIZATION(storage.h)
+
 END()
diff --git a/ydb/core/tx/columnshard/blobs_action/events/delete_blobs.cpp b/ydb/core/tx/columnshard/blobs_action/events/delete_blobs.cpp
new file mode 100644
index 000000000000..19bdbec65079
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/events/delete_blobs.cpp
@@ -0,0 +1,5 @@
+#include "delete_blobs.h"
+
+namespace NKikimr::NOlap::NBlobOperations::NEvents {
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/blobs_action/events/delete_blobs.h b/ydb/core/tx/columnshard/blobs_action/events/delete_blobs.h
new file mode 100644
index 000000000000..50e37bf7fe0f
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/events/delete_blobs.h
@@ -0,0 +1,32 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NBlobOperations::NEvents {
+
+struct TEvDeleteSharedBlobs: public NActors::TEventPB {
+    TEvDeleteSharedBlobs() = default;
+
+    TEvDeleteSharedBlobs(const NActors::TActorId sourceActorId, const ui64 sourceTabletId, const TString& storageId, const THashSet& blobIds) {
+        Record.SetStorageId(storageId);
+        Record.SetSourceTabletId(sourceTabletId);
+        NActors::ActorIdToProto(sourceActorId, Record.MutableSourceActorId());
+        for (auto&& i : blobIds) {
+            *Record.AddBlobIds() = i.ToStringNew();
+        }
+    }
+};
+
+struct TEvDeleteSharedBlobsFinished: public NActors::TEventPB {
+    TEvDeleteSharedBlobsFinished() = default;
+    TEvDeleteSharedBlobsFinished(const TTabletId tabletId)
+    {
+        Record.SetTabletId((ui64)tabletId);
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/blobs_action/events/ya.make b/ydb/core/tx/columnshard/blobs_action/events/ya.make
new file mode 100644
index 000000000000..e46f5f0120be
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/events/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+    delete_blobs.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/blobs_action/protos
+    ydb/library/actors/core
+    ydb/core/tx/datashard
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/blobs_action/memory.cpp b/ydb/core/tx/columnshard/blobs_action/memory.cpp
deleted file mode 100644
index 66ff21fc5004..000000000000
--- a/ydb/core/tx/columnshard/blobs_action/memory.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "memory.h"
-
-namespace NKikimr::NOlap {
-
-}
diff --git a/ydb/core/tx/columnshard/blobs_action/memory.h b/ydb/core/tx/columnshard/blobs_action/memory.h
deleted file mode 100644
index 2eee28698811..000000000000
--- a/ydb/core/tx/columnshard/blobs_action/memory.h
+++ /dev/null
@@ -1,173 +0,0 @@
-#pragma once
-
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap {
-
-class TMemoryStorage {
-private:
-    THashMap Data;
-    THashMap DataWriting;
-    THashSet DataForRemove;
-    TMutex Mutex;
-public:
-    std::optional Read(const TUnifiedBlobId& id) {
-        TGuard g(Mutex);
-        auto it = Data.find(id);
-        if (it == Data.end()) {
-            return {};
-        } else {
-            return it->second;
-        }
-    }
-
-    void DeclareDataForRemove(const TUnifiedBlobId& id) {
-        TGuard g(Mutex);
-        DataForRemove.emplace(id);
-    }
-
-    void StartWriting(const TUnifiedBlobId& id, const TString& data) {
-        TGuard g(Mutex);
-        Y_ABORT_UNLESS(DataWriting.emplace(id, data).second);
-    }
-
-    void CommitWriting(const TUnifiedBlobId& id) {
-        TGuard g(Mutex);
-        auto it = DataWriting.find(id);
-        Y_ABORT_UNLESS(it != DataWriting.end());
-        Y_ABORT_UNLESS(Data.emplace(id, it->second).second);
-        DataWriting.erase(it);
-    }
-
-    TMemoryStorage() = default;
-};
-
-class TMemoryWriteAction: public IBlobsWritingAction {
-private:
-    using TBase = IBlobsWritingAction;
-    const std::shared_ptr Storage;
-protected:
-    virtual void DoSendWriteBlobRequest(const TString& data, const TUnifiedBlobId& blobId) override {
-        Storage->StartWriting(blobId, data);
-        TActorContext::AsActorContext().Send(TActorContext::AsActorContext().SelfID, std::make_unique(
-            NKikimrProto::EReplyStatus::OK, blobId.GetLogoBlobId(), TStorageStatusFlags(), 0, 0));
-    }
-
-    virtual void DoOnBlobWriteResult(const TUnifiedBlobId& blobId, const NKikimrProto::EReplyStatus status) override {
-        Y_ABORT_UNLESS(status == NKikimrProto::EReplyStatus::OK);
-        Storage->CommitWriting(blobId);
-    }
-
-    virtual void DoOnExecuteTxBeforeWrite(NColumnShard::TColumnShard& /*self*/, NColumnShard::TBlobManagerDb& /*dbBlobs*/) override {
-        return;
-    }
-
-    virtual void DoOnCompleteTxBeforeWrite(NColumnShard::TColumnShard& /*self*/) override {
-        return;
-    }
-
-    virtual void DoOnExecuteTxAfterWrite(NColumnShard::TColumnShard& /*self*/, NColumnShard::TBlobManagerDb& /*dbBlobs*/, const bool /*blobsWroteSuccessfully*/) override {
-
-    }
-    virtual void DoOnCompleteTxAfterWrite(NColumnShard::TColumnShard& /*self*/, const bool /*blobsWroteSuccessfully*/) override {
-
-    }
-public:
-    virtual bool NeedDraftTransaction() const override {
-        return true;
-    }
-
-    virtual TUnifiedBlobId AllocateNextBlobId(const TString& /*data*/) override {
-        return TUnifiedBlobId();
-//        return BlobBatch.AllocateNextBlobId(data);
-    }
-
-    TMemoryWriteAction(const TString& storageId, const std::shared_ptr& storage)
-        : TBase(storageId)
-        , Storage(storage)
-    {
-
-    }
-};
-
-class TMemoryDeclareRemovingAction: public IBlobsDeclareRemovingAction {
-private:
-    using TBase = IBlobsDeclareRemovingAction;
-    const std::shared_ptr Storage;
-protected:
-    virtual void DoDeclareRemove(const TUnifiedBlobId& /*blobId*/) {
-
-    }
-
-    virtual void DoOnExecuteTxAfterRemoving(NColumnShard::TColumnShard& /*self*/, NColumnShard::TBlobManagerDb& /*dbBlobs*/, const bool /*blobsWroteSuccessfully*/) {
-        for (auto&& i : GetDeclaredBlobs()) {
-            Storage->DeclareDataForRemove(i);
-        }
-    }
-    virtual void DoOnCompleteTxAfterRemoving(NColumnShard::TColumnShard& /*self*/, const bool /*blobsWroteSuccessfully*/) {
-
-    }
-public:
-
-    TMemoryDeclareRemovingAction(const TString& storageId, const std::shared_ptr& storage)
-        : TBase(storageId)
-        , Storage(storage) {
-
-    }
-};
-
-class TMemoryReadingAction: public IBlobsReadingAction {
-private:
-    using TBase = IBlobsReadingAction;
-    const std::shared_ptr Storage;
-protected:
-    virtual void DoStartReading(const THashMap>& ranges) override {
-        for (auto&& i : ranges) {
-            auto data = Storage->Read(i.first);
-            for (auto&& r : i.second) {
-                if (!data) {
-                    TActorContext::AsActorContext().Send(TActorContext::AsActorContext().SelfID,
-                        new NBlobCache::TEvBlobCache::TEvReadBlobRangeResult(r, NKikimrProto::EReplyStatus::NODATA, ""));
-                } else {
-                    Y_ABORT_UNLESS(r.Offset + r.Size <= data->size());
-                    TActorContext::AsActorContext().Send(TActorContext::AsActorContext().SelfID,
-                        new NBlobCache::TEvBlobCache::TEvReadBlobRangeResult(r, NKikimrProto::EReplyStatus::OK, data->substr(r.Offset, r.Size)));
-                }
-            }
-        }
-    }
-public:
-
-    TMemoryReadingAction(const TString& storageId, const std::shared_ptr& storage)
-        : TBase(storageId)
-        , Storage(storage)
-    {
-
-    }
-};
-
-class TMemoryOperator: public IBlobsStorageOperator {
-private:
-    using TBase = IBlobsStorageOperator;
-    std::shared_ptr Storage;
-protected:
-    virtual std::shared_ptr DoStartDeclareRemovingAction() override {
-        return std::make_shared(GetStorageId(), Storage);
-    }
-    virtual std::shared_ptr DoStartWritingAction() override {
-        return std::make_shared(GetStorageId(), Storage);
-    }
-    virtual std::shared_ptr DoStartReadingAction() override {
-        return std::make_shared(GetStorageId(), Storage);
-    }
-public:
-    TMemoryOperator(const TString& storageId)
-        : TBase(storageId)
-    {
-        Storage = std::make_shared();
-    }
-};
-
-}
diff --git a/ydb/core/tx/columnshard/blobs_action/protos/blobs.proto b/ydb/core/tx/columnshard/blobs_action/protos/blobs.proto
new file mode 100644
index 000000000000..7c866b54c7d1
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/protos/blobs.proto
@@ -0,0 +1,19 @@
+package NKikimrColumnShardBlobOperationsProto;
+
+message TBlobTablets {
+    optional string BlobId = 1;
+    repeated uint64 TabletIds = 2;
+}
+
+message TTabletsByBlob {
+    repeated TBlobTablets Blobs = 1;
+}
+
+message TBlobTablet {
+    optional string BlobId = 1;
+    optional uint64 TabletId = 2;
+}
+
+message TTabletByBlob {
+    repeated TBlobTablet Blobs = 1;
+}
diff --git a/ydb/core/tx/columnshard/blobs_action/protos/events.proto b/ydb/core/tx/columnshard/blobs_action/protos/events.proto
new file mode 100644
index 000000000000..34ae1fc57e8b
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/protos/events.proto
@@ -0,0 +1,14 @@
+import "ydb/library/actors/protos/actors.proto";
+
+package NKikimrColumnShardBlobOperationsProto;
+
+message TEvDeleteSharedBlobs {
+    optional uint64 SourceTabletId = 1;
+    optional NActorsProto.TActorId SourceActorId = 2;
+    optional string StorageId = 3;
+    repeated string BlobIds = 4;
+}
+
+message TEvDeleteSharedBlobsFinished {
+    optional uint64 TabletId = 1;
+}
diff --git a/ydb/core/tx/columnshard/blobs_action/protos/ya.make b/ydb/core/tx/columnshard/blobs_action/protos/ya.make
new file mode 100644
index 000000000000..705fd373a847
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/protos/ya.make
@@ -0,0 +1,12 @@
+PROTO_LIBRARY()
+
+SRCS(
+    events.proto
+    blobs.proto
+)
+
+PEERDIR(
+    ydb/library/actors/protos
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/blobs_action/storages_manager/manager.cpp b/ydb/core/tx/columnshard/blobs_action/storages_manager/manager.cpp
new file mode 100644
index 000000000000..4d162527e8e6
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/storages_manager/manager.cpp
@@ -0,0 +1,50 @@
+#include "manager.h"
+#include 
+#include 
+#ifndef KIKIMR_DISABLE_S3_OPS
+#include 
+#endif
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+
+std::shared_ptr TStoragesManager::DoBuildOperator(const TString& storageId) {
+    if (storageId == TBase::DefaultStorageId) {
+        return std::make_shared(storageId, Shard.SelfId(), Shard.Info(),
+            Shard.Executor()->Generation(), SharedBlobsManager->GetStorageManagerGuarantee(storageId));
+    } else if (storageId == TBase::MemoryStorageId) {
+#ifndef KIKIMR_DISABLE_S3_OPS
+        {
+            static TMutex mutexLocal;
+            TGuard g(mutexLocal);
+            Singleton()->SetSecretKey("fakeSecret");
+        }
+        return std::make_shared(storageId, Shard.SelfId(), std::make_shared("fakeBucket", "fakeSecret"),
+            SharedBlobsManager->GetStorageManagerGuarantee(storageId));
+#else
+        return nullptr;
+#endif
+    } else if (!Shard.Tiers) {
+        return nullptr;
+    } else {
+#ifndef KIKIMR_DISABLE_S3_OPS
+        return std::make_shared(storageId, Shard, SharedBlobsManager->GetStorageManagerGuarantee(storageId));
+#else
+        return nullptr;
+#endif
+    }
+}
+
+bool TStoragesManager::DoLoadIdempotency(NTable::TDatabase& database) {
+    return SharedBlobsManager->LoadIdempotency(database);
+}
+
+TStoragesManager::TStoragesManager(NColumnShard::TColumnShard& shard)
+    : Shard(shard)
+    , SharedBlobsManager(std::make_shared((TTabletId)Shard.TabletID()))
+{
+
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/blobs_action/storages_manager/manager.h b/ydb/core/tx/columnshard/blobs_action/storages_manager/manager.h
new file mode 100644
index 000000000000..00828c89a713
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/storages_manager/manager.h
@@ -0,0 +1,31 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NColumnShard {
+class TColumnShard;
+}
+
+namespace NKikimr::NOlap {
+
+class TStoragesManager: public IStoragesManager {
+private:
+    using TBase = IStoragesManager;
+    NColumnShard::TColumnShard& Shard;
+    std::shared_ptr SharedBlobsManager;
+protected:
+    virtual std::shared_ptr DoBuildOperator(const TString& storageId) override;
+    virtual bool DoLoadIdempotency(NTable::TDatabase& database) override;
+
+    virtual const std::shared_ptr& DoGetSharedBlobsManager() const override {
+        AFL_VERIFY(SharedBlobsManager);
+        return SharedBlobsManager;
+    }
+
+public:
+    TStoragesManager(NColumnShard::TColumnShard& shard);
+};
+
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/blobs_action/storages_manager/ya.make b/ydb/core/tx/columnshard/blobs_action/storages_manager/ya.make
new file mode 100644
index 000000000000..b79b6720608b
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/storages_manager/ya.make
@@ -0,0 +1,22 @@
+LIBRARY()
+
+SRCS(
+    manager.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/manager
+    ydb/core/tx/columnshard/blobs_action/bs
+)
+
+IF (OS_WINDOWS)
+    CFLAGS(
+        -DKIKIMR_DISABLE_S3_OPS
+    )
+ELSE()
+    PEERDIR(
+        ydb/core/tx/columnshard/blobs_action/tier
+    )
+ENDIF()
+
+END()
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/adapter.cpp b/ydb/core/tx/columnshard/blobs_action/tier/adapter.cpp
index 6cda6d152ec2..9d94dafe939d 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/adapter.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/tier/adapter.cpp
@@ -16,9 +16,9 @@ std::unique_ptr TRepliesAdapter::RebuildReplyEvent(std::uni
     }
     if (ev->IsSuccess()) {
         AFL_VERIFY(!!ev->Body)("key", ev->Key)("interval_from", ev->GetReadInterval().first)("interval_to", ev->GetReadInterval().second);
-        return std::make_unique(bRange, NKikimrProto::EReplyStatus::OK, ev->Body);
+        return std::make_unique(bRange, NKikimrProto::EReplyStatus::OK, ev->Body, false, StorageId);
     } else {
-        return std::make_unique(bRange, NKikimrProto::EReplyStatus::ERROR, "");
+        return std::make_unique(bRange, NKikimrProto::EReplyStatus::ERROR, TStringBuilder() << ev->Result, false, StorageId);
     }
 }
 
@@ -28,9 +28,9 @@ std::unique_ptr TRepliesAdapter::RebuildReplyEvent(std::uni
     Y_ABORT_UNLESS(ev->Key);
     AFL_VERIFY(TLogoBlobID::Parse(logoBlobId, *ev->Key, error))("error", error)("str_blob_id", *ev->Key);
     if (ev->IsSuccess()) {
-        return std::make_unique(NKikimrProto::EReplyStatus::OK, logoBlobId, 0, Max(), 0);
+        return std::make_unique(NKikimrProto::EReplyStatus::OK, logoBlobId, 0, Max(), 0, StorageId);
     } else {
-        return std::make_unique(NKikimrProto::EReplyStatus::ERROR, logoBlobId, 0, Max(), 0);
+        return std::make_unique(NKikimrProto::EReplyStatus::ERROR, logoBlobId, 0, Max(), 0, StorageId);
     }
 }
 
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/adapter.h b/ydb/core/tx/columnshard/blobs_action/tier/adapter.h
index 1c3e6af2e88e..4e146e019137 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/adapter.h
+++ b/ydb/core/tx/columnshard/blobs_action/tier/adapter.h
@@ -4,7 +4,15 @@
 namespace NKikimr::NOlap::NBlobOperations::NTier {
 
 class TRepliesAdapter: public NWrappers::NExternalStorage::IReplyAdapter {
+private:
+    const TString StorageId;
 public:
+    TRepliesAdapter(const TString& storageId)
+        : StorageId(storageId)
+    {
+
+    }
+
     virtual std::unique_ptr RebuildReplyEvent(std::unique_ptr&& ev) const override;
     virtual std::unique_ptr RebuildReplyEvent(std::unique_ptr&& ev) const override;
     virtual std::unique_ptr RebuildReplyEvent(std::unique_ptr&& ev) const override {
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/gc.cpp b/ydb/core/tx/columnshard/blobs_action/tier/gc.cpp
index d1b509cbef0c..0d9c65f8ec82 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/gc.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/tier/gc.cpp
@@ -5,33 +5,18 @@
 
 namespace NKikimr::NOlap::NBlobOperations::NTier {
 
-void TGCTask::DoOnExecuteTxAfterCleaning(NColumnShard::TColumnShard& /*self*/, NColumnShard::TBlobManagerDb& dbBlobs) {
-    size_t numBlobs = 0;
-
-    for (; DraftBlobIds.size() && numBlobs < NColumnShard::TLimits::MAX_BLOBS_TO_DELETE; ++numBlobs) {
-        dbBlobs.EraseBlobToKeep(DraftBlobIds.front());
-        DraftBlobIds.pop_front();
-    }
+void TGCTask::RemoveBlobIdFromDB(const TTabletId tabletId, const TUnifiedBlobId& blobId, TBlobManagerDb& dbBlobs) {
+    dbBlobs.RemoveTierBlobToDelete(GetStorageId(), blobId, tabletId);
+}
 
-    for (; DeleteBlobIds.size() && numBlobs < NColumnShard::TLimits::MAX_BLOBS_TO_DELETE; ++numBlobs) {
-        dbBlobs.EraseBlobToDelete(DeleteBlobIds.front());
-        DeleteBlobIds.pop_front();
+void TGCTask::DoOnExecuteTxAfterCleaning(NColumnShard::TColumnShard& /*self*/, TBlobManagerDb& dbBlobs) {
+    for (auto&& i : DraftBlobIds) {
+        dbBlobs.RemoveTierDraftBlobId(GetStorageId(), i);
     }
 }
 
-bool TGCTask::DoOnCompleteTxAfterCleaning(NColumnShard::TColumnShard& self, const std::shared_ptr& taskAction) {
-    if (DraftBlobIds.size() || DeleteBlobIds.size()) {
-        TActorContext::AsActorContext().Send(self.SelfId(), std::make_unique(taskAction));
-        return false;
-    } else {
-        for (auto&& i : DraftBlobIds) {
-            Counters->OnReply(i.BlobSize());
-        }
-        for (auto&& i : DeleteBlobIds) {
-            Counters->OnReply(i.BlobSize());
-        }
-        return true;
-    }
+bool TGCTask::DoOnCompleteTxAfterCleaning(NColumnShard::TColumnShard& /*self*/, const std::shared_ptr& /*taskAction*/) {
+    return true;
 }
 
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/gc.h b/ydb/core/tx/columnshard/blobs_action/tier/gc.h
index cdae1449f2de..bb97d0350200 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/gc.h
+++ b/ydb/core/tx/columnshard/blobs_action/tier/gc.h
@@ -12,27 +12,24 @@ class TGCTask: public IBlobsGCAction {
     using TBase = IBlobsGCAction;
 private:
     YDB_READONLY_DEF(std::deque, DraftBlobIds);
-    YDB_READONLY_DEF(std::deque, DeleteBlobIds);
     YDB_READONLY_DEF(NWrappers::NExternalStorage::IExternalStorageOperator::TPtr, ExternalStorageOperator);
-    const std::shared_ptr Counters;
 protected:
-    virtual void DoOnExecuteTxAfterCleaning(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs) override;
+    virtual void DoOnExecuteTxAfterCleaning(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs) override;
     virtual bool DoOnCompleteTxAfterCleaning(NColumnShard::TColumnShard& self, const std::shared_ptr& taskAction) override;
+    virtual void RemoveBlobIdFromDB(const TTabletId tabletId, const TUnifiedBlobId& blobId, TBlobManagerDb& dbBlobs) override;
+    virtual bool DoIsEmpty() const override {
+        return DraftBlobIds.empty();
+    }
 public:
-    TGCTask(const TString& storageId, std::deque&& draftBlobIds, std::deque&& deleteBlobIds,
-        const NWrappers::NExternalStorage::IExternalStorageOperator::TPtr& externalStorageOperator, const std::shared_ptr& counters)
-        : TBase(storageId)
+    TGCTask(const TString& storageId, std::deque&& draftBlobIds, const NWrappers::NExternalStorage::IExternalStorageOperator::TPtr& externalStorageOperator,
+        TBlobsCategories&& blobsToRemove, const std::shared_ptr& counters)
+        : TBase(storageId, std::move(blobsToRemove), counters)
         , DraftBlobIds(std::move(draftBlobIds))
-        , DeleteBlobIds(std::move(deleteBlobIds))
         , ExternalStorageOperator(externalStorageOperator)
-        , Counters(counters)
     {
         for (auto&& i : DraftBlobIds) {
             Counters->OnRequest(i.BlobSize());
         }
-        for (auto&& i : DeleteBlobIds) {
-            Counters->OnRequest(i.BlobSize());
-        }
     }
 };
 
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/gc_actor.cpp b/ydb/core/tx/columnshard/blobs_action/tier/gc_actor.cpp
index 0fce2762142f..2c91679895fd 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/gc_actor.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/tier/gc_actor.cpp
@@ -9,19 +9,15 @@ void TGarbageCollectionActor::Handle(NWrappers::NExternalStorage::TEvDeleteObjec
     Y_ABORT_UNLESS(ev->Get()->Key);
     AFL_VERIFY(TLogoBlobID::Parse(logoBlobId, *ev->Get()->Key, errorMessage))("error", errorMessage);
     BlobIdsToRemove.erase(logoBlobId);
-    if (BlobIdsToRemove.empty()) {
-        auto g = PassAwayGuard();
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("actor", "TGarbageCollectionActor")("event", "finished");
-        TActorContext::AsActorContext().Send(TabletActorId, std::make_unique(GCTask));
-    }
+    CheckFinished();
 }
 
-void TGarbageCollectionActor::Bootstrap(const TActorContext& /*ctx*/) {
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("actor", "TGarbageCollectionActor")("event", "starting");
-    for (auto&& i : GCTask->GetDraftBlobIds()) {
-        BlobIdsToRemove.emplace(i.GetLogoBlobId());
+void TGarbageCollectionActor::Bootstrap(const TActorContext& ctx) {
+    for (auto i = GCTask->GetBlobsToRemove().GetDirect().GetIterator(); i.IsValid(); ++i) {
+        BlobIdsToRemove.emplace(i.GetBlobId().GetLogoBlobId());
     }
-    for (auto&& i : GCTask->GetDeleteBlobIds()) {
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("actor", "TGarbageCollectionActor")("event", "starting")("storage_id", GCTask->GetStorageId())("drafts", GCTask->GetDraftBlobIds().size())("to_delete", BlobIdsToRemove.size());
+    for (auto&& i : GCTask->GetDraftBlobIds()) {
         BlobIdsToRemove.emplace(i.GetLogoBlobId());
     }
     for (auto&& i : BlobIdsToRemove) {
@@ -31,7 +27,16 @@ void TGarbageCollectionActor::Bootstrap(const TActorContext& /*ctx*/) {
         TAutoPtr> evPtr((TEventHandle*)hRequest.release());
         GCTask->GetExternalStorageOperator()->Execute(evPtr);
     }
+    TBase::Bootstrap(ctx);
     Become(&TGarbageCollectionActor::StateWork);
 }
 
+void TGarbageCollectionActor::CheckFinished() {
+    if (SharedRemovingFinished && BlobIdsToRemove.empty()) {
+        auto g = PassAwayGuard();
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("actor", "TGarbageCollectionActor")("event", "finished");
+        TActorContext::AsActorContext().Send(TabletActorId, std::make_unique(GCTask));
+    }
+}
+
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/gc_actor.h b/ydb/core/tx/columnshard/blobs_action/tier/gc_actor.h
index 448c07899652..78ee58e9152d 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/gc_actor.h
+++ b/ydb/core/tx/columnshard/blobs_action/tier/gc_actor.h
@@ -1,22 +1,30 @@
 #pragma once
 #include "gc.h"
 
-#include 
+#include 
 #include 
+#include 
 #include 
 
 namespace NKikimr::NOlap::NBlobOperations::NTier {
 
-class TGarbageCollectionActor: public TActorBootstrapped {
+class TGarbageCollectionActor: public TSharedBlobsCollectionActor {
 private:
+    using TBase = TSharedBlobsCollectionActor;
     const NActors::TActorId TabletActorId;
     std::shared_ptr GCTask;
 
     THashSet BlobIdsToRemove;
     void Handle(NWrappers::NExternalStorage::TEvDeleteObjectResponse::TPtr& ev);
+    void CheckFinished();
+
+    virtual void DoOnSharedRemovingFinished() override {
+        CheckFinished();
+    }
 public:
-    TGarbageCollectionActor(const std::shared_ptr& task, const NActors::TActorId& tabletActorId)
-        : TabletActorId(tabletActorId)
+    TGarbageCollectionActor(const std::shared_ptr& task, const NActors::TActorId& tabletActorId, const TTabletId selfTabletId)
+        : TBase(task->GetStorageId(), selfTabletId, task->GetBlobsToRemove().GetBorrowed())
+        , TabletActorId(tabletActorId)
         , GCTask(task)
     {
 
@@ -25,6 +33,8 @@ class TGarbageCollectionActor: public TActorBootstrappedGetTypeRewrite()) {
             hFunc(NWrappers::NExternalStorage::TEvDeleteObjectResponse, Handle);
+            default:
+                TBase::StateWork(ev);
         }
     }
 
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/gc_info.h b/ydb/core/tx/columnshard/blobs_action/tier/gc_info.h
index 8814ccabe2a7..2aad8beb5c03 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/gc_info.h
+++ b/ydb/core/tx/columnshard/blobs_action/tier/gc_info.h
@@ -7,28 +7,30 @@ namespace NKikimr::NOlap::NBlobOperations::NTier {
 
 class TGCInfo: public TCommonBlobsTracker {
 private:
-    YDB_ACCESSOR_DEF(std::deque, BlobsToDelete);
+    YDB_ACCESSOR_DEF(TTabletsByBlob, BlobsToDelete);
     YDB_ACCESSOR_DEF(std::deque, DraftBlobIdsToRemove);
-    YDB_ACCESSOR_DEF(THashSet, BlobsToDeleteInFuture);
+    YDB_ACCESSOR_DEF(TTabletsByBlob, BlobsToDeleteInFuture);
 public:
     virtual void OnBlobFree(const TUnifiedBlobId& blobId) override {
-        if (BlobsToDeleteInFuture.erase(blobId)) {
-            BlobsToDelete.emplace_back(blobId);
-        }
+        BlobsToDeleteInFuture.ExtractBlobTo(blobId, BlobsToDelete);
     }
 
-    bool ExtractForGC(std::deque& deleteDraftBlobIds, std::deque& deleteBlobIds, const ui32 blobsCountLimit) {
-        if (DraftBlobIdsToRemove.empty() && BlobsToDelete.empty()) {
+    bool ExtractForGC(std::deque& deleteDraftBlobIds, TTabletsByBlob& deleteBlobIds, const ui32 blobsCountLimit) {
+        if (DraftBlobIdsToRemove.empty() && BlobsToDelete.IsEmpty()) {
+            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "extract_for_gc_skip")("reason", "no_data");
             return false;
         }
-        while (DraftBlobIdsToRemove.size() && deleteBlobIds.size() + deleteDraftBlobIds.size() < blobsCountLimit) {
+        ui32 count = 0;
+        TTabletsByBlob deleteBlobIdsLocal;
+        while (DraftBlobIdsToRemove.size() && count < blobsCountLimit) {
             deleteDraftBlobIds.emplace_back(DraftBlobIdsToRemove.front());
             DraftBlobIdsToRemove.pop_front();
+            ++count;
         }
-        while (BlobsToDelete.size() && deleteBlobIds.size() + deleteDraftBlobIds.size() < blobsCountLimit) {
-            deleteBlobIds.emplace_back(BlobsToDelete.front());
-            BlobsToDelete.pop_front();
+        while (BlobsToDelete.ExtractFrontTo(deleteBlobIdsLocal) && count < blobsCountLimit) {
+            ++count;
         }
+        std::swap(deleteBlobIdsLocal, deleteBlobIds);
         return true;
     }
 };
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/read.cpp b/ydb/core/tx/columnshard/blobs_action/tier/read.cpp
index 754dd289d730..7af0c28583af 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/read.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/tier/read.cpp
@@ -2,17 +2,15 @@
 
 namespace NKikimr::NOlap::NBlobOperations::NTier {
 
-void TReadingAction::DoStartReading(const THashMap>& ranges) {
-    for (auto&& i : ranges) {
-        for (auto&& r : i.second) {
-            auto awsRequest = Aws::S3::Model::GetObjectRequest()
-                .WithKey(i.first.GetLogoBlobId().ToString())
-                .WithRange(TStringBuilder() << "bytes=" << r.Offset << "-" << r.Offset + r.Size - 1);
-            auto request = std::make_unique(awsRequest);
-            auto hRequest = std::make_unique(NActors::TActorId(), TActorContext::AsActorContext().SelfID, request.release());
-            TAutoPtr> evPtr((TEventHandle*)hRequest.release());
-            ExternalStorageOperator->Execute(evPtr);
-        }
+void TReadingAction::DoStartReading(THashSet&& ranges) {
+    for (auto&& r : ranges) {
+        auto awsRequest = Aws::S3::Model::GetObjectRequest()
+            .WithKey(r.BlobId.GetLogoBlobId().ToString())
+            .WithRange(TStringBuilder() << "bytes=" << r.Offset << "-" << r.Offset + r.Size - 1);
+        auto request = std::make_unique(awsRequest);
+        auto hRequest = std::make_unique(NActors::TActorId(), TActorContext::AsActorContext().SelfID, request.release());
+        TAutoPtr> evPtr((TEventHandle*)hRequest.release());
+        ExternalStorageOperator->Execute(evPtr);
     }
 }
 
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/read.h b/ydb/core/tx/columnshard/blobs_action/tier/read.h
index b9804d18b662..e4742cc285ee 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/read.h
+++ b/ydb/core/tx/columnshard/blobs_action/tier/read.h
@@ -10,7 +10,10 @@ class TReadingAction: public IBlobsReadingAction {
     using TBase = IBlobsReadingAction;
     const NWrappers::NExternalStorage::IExternalStorageOperator::TPtr ExternalStorageOperator;
 protected:
-    virtual void DoStartReading(const THashMap>& ranges) override;
+    virtual void DoStartReading(THashSet&& ranges) override;
+    virtual THashMap> GroupBlobsForOptimization(std::vector&& ranges) const override {
+        return TBlobsGlueing::GroupRanges(std::move(ranges), TBlobsGlueing::TBlobGluePolicy(8LLU << 20));
+    }
 public:
 
     TReadingAction(const TString& storageId, const NWrappers::NExternalStorage::IExternalStorageOperator::TPtr& storageOperator)
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/remove.h b/ydb/core/tx/columnshard/blobs_action/tier/remove.h
index 75924c6d5eba..9dbd6fb0be9f 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/remove.h
+++ b/ydb/core/tx/columnshard/blobs_action/tier/remove.h
@@ -1,7 +1,6 @@
 #pragma once
 
 #include 
-#include 
 #include 
 #include "gc_info.h"
 
@@ -12,31 +11,31 @@ class TDeclareRemovingAction: public IBlobsDeclareRemovingAction {
     using TBase = IBlobsDeclareRemovingAction;
     std::shared_ptr GCInfo;
 protected:
-    virtual void DoDeclareRemove(const TUnifiedBlobId& /*blobId*/) {
+    virtual void DoDeclareRemove(const TTabletId /*tabletId*/, const TUnifiedBlobId& /*blobId*/) {
 
     }
 
-    virtual void DoOnExecuteTxAfterRemoving(NColumnShard::TColumnShard& /*self*/, NColumnShard::TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
+    virtual void DoOnExecuteTxAfterRemoving(TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
         if (blobsWroteSuccessfully) {
-            for (auto&& i : GetDeclaredBlobs()) {
-                dbBlobs.AddTierBlobToDelete(GetStorageId(), i);
+            for (auto i = GetDeclaredBlobs().GetIterator(); i.IsValid(); ++i) {
+                dbBlobs.AddTierBlobToDelete(GetStorageId(), i.GetBlobId(), i.GetTabletId());
             }
         }
     }
-    virtual void DoOnCompleteTxAfterRemoving(NColumnShard::TColumnShard& /*self*/, const bool blobsWroteSuccessfully) {
+    virtual void DoOnCompleteTxAfterRemoving(const bool blobsWroteSuccessfully) {
         if (blobsWroteSuccessfully) {
             for (auto&& i : GetDeclaredBlobs()) {
-                if (GCInfo->IsBlobInUsage(i)) {
-                    Y_ABORT_UNLESS(GCInfo->MutableBlobsToDeleteInFuture().emplace(i).second);
+                if (GCInfo->IsBlobInUsage(i.first)) {
+                    AFL_VERIFY(GCInfo->MutableBlobsToDeleteInFuture().Add(i.first, i.second));
                 } else {
-                    GCInfo->MutableBlobsToDelete().emplace_back(i);
+                    AFL_VERIFY(GCInfo->MutableBlobsToDelete().Add(i.first, i.second));
                 }
             }
         }
     }
 public:
-    TDeclareRemovingAction(const TString& storageId, const std::shared_ptr& gcInfo)
-        : TBase(storageId)
+    TDeclareRemovingAction(const TString& storageId, const TTabletId selfTabletId, const std::shared_ptr& counters, const std::shared_ptr& gcInfo)
+        : TBase(storageId, selfTabletId, counters)
         , GCInfo(gcInfo)
     {
 
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/storage.cpp b/ydb/core/tx/columnshard/blobs_action/tier/storage.cpp
index 5c0db48f42a2..36d273111eff 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/storage.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/tier/storage.cpp
@@ -15,12 +15,12 @@ NWrappers::NExternalStorage::IExternalStorageOperator::TPtr TOperator::GetCurren
     return ExternalStorageOperator;
 }
 
-std::shared_ptr TOperator::DoStartDeclareRemovingAction() {
-    return std::make_shared(GetStorageId(), GCInfo);
+std::shared_ptr TOperator::DoStartDeclareRemovingAction(const std::shared_ptr& counters) {
+    return std::make_shared(GetStorageId(), GetSelfTabletId(), counters, GCInfo);
 }
 
 std::shared_ptr TOperator::DoStartWritingAction() {
-    return std::make_shared(GetStorageId(), GetCurrentOperator(), TabletId, GCInfo);
+    return std::make_shared(GetStorageId(), GetCurrentOperator(), (ui64)GetSelfTabletId(), GCInfo);
 }
 
 std::shared_ptr TOperator::DoStartReadingAction() {
@@ -29,12 +29,22 @@ std::shared_ptr TOperator::DoStartReadingAction() {
 
 std::shared_ptr TOperator::DoStartGCAction(const std::shared_ptr& counters) const {
     std::deque draftBlobIds;
-    std::deque deleteBlobIds;
-    if (!GCInfo->ExtractForGC(draftBlobIds, deleteBlobIds, 100000)) {
+    AFL_VERIFY(!!TabletActorId);
+    TBlobsCategories categories(TTabletId(0));
+    {
+        TTabletsByBlob deleteBlobIds;
+        if (!GCInfo->ExtractForGC(draftBlobIds, deleteBlobIds, 100000)) {
+            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "start_gc_skipped")("reason", "cannot_extract");
+            return nullptr;
+        }
+        categories = GetSharedBlobs()->BuildRemoveCategories(std::move(deleteBlobIds));
+    }
+    auto gcTask = std::make_shared(GetStorageId(), std::move(draftBlobIds), GetCurrentOperator(), std::move(categories), counters);
+    if (gcTask->IsEmpty()) {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "start_gc_skipped")("reason", "task_empty");
         return nullptr;
     }
-    auto gcTask = std::make_shared(GetStorageId(), std::move(draftBlobIds), std::move(deleteBlobIds), GetCurrentOperator(), counters);
-    TActorContext::AsActorContext().Register(new TGarbageCollectionActor(gcTask, TabletActorId));
+    TActorContext::AsActorContext().Register(new TGarbageCollectionActor(gcTask, TabletActorId, GetSelfTabletId()));
     return gcTask;
 }
 
@@ -45,23 +55,46 @@ void TOperator::InitNewExternalOperator(const NColumnShard::NTiers::TManager* ti
     } else {
         settings.SetEndpoint("nowhere");
     }
+    {
+        TGuard changeLock(ChangeOperatorLock);
+        if (CurrentS3Settings && CurrentS3Settings->SerializeAsString() == settings.SerializeAsString()) {
+            return;
+        }
+    }
     auto extStorageConfig = NWrappers::NExternalStorage::IExternalStorageConfig::Construct(settings);
     AFL_VERIFY(extStorageConfig);
     auto extStorageOperator = extStorageConfig->ConstructStorageOperator(false);
-    extStorageOperator->InitReplyAdapter(std::make_shared());
+    extStorageOperator->InitReplyAdapter(std::make_shared(GetStorageId()));
+    TGuard changeLock(ChangeOperatorLock);
+    CurrentS3Settings = settings;
+    ExternalStorageOperator = extStorageOperator;
+}
+
+void TOperator::InitNewExternalOperator() {
+    AFL_VERIFY(InitializationConfig);
+    auto extStorageOperator = InitializationConfig->ConstructStorageOperator(false);
+    extStorageOperator->InitReplyAdapter(std::make_shared(GetStorageId()));
     TGuard changeLock(ChangeOperatorLock);
     ExternalStorageOperator = extStorageOperator;
 }
 
-TOperator::TOperator(const TString& storageId, const NColumnShard::TColumnShard& shard)
-    : TBase(storageId)
-    , TabletId(shard.TabletID())
+TOperator::TOperator(const TString& storageId, const NColumnShard::TColumnShard& shard, const std::shared_ptr& storageSharedBlobsManager)
+    : TBase(storageId, storageSharedBlobsManager)
     , TabletActorId(shard.SelfId())
 {
     InitNewExternalOperator(shard.GetTierManagerPointer(storageId));
 }
 
-void TOperator::DoOnTieringModified(const std::shared_ptr& tiers) {
+TOperator::TOperator(const TString& storageId, const TActorId& shardActorId, const std::shared_ptr& storageConfig,
+    const std::shared_ptr& storageSharedBlobsManager)
+    : TBase(storageId, storageSharedBlobsManager)
+    , TabletActorId(shardActorId)
+    , InitializationConfig(storageConfig)
+{
+    InitNewExternalOperator();
+}
+
+void TOperator::DoOnTieringModified(const std::shared_ptr& tiers) {
     auto* tierManager = tiers->GetManagerOptional(TBase::GetStorageId());
     if (tierManager) {
         InitNewExternalOperator(tierManager);
@@ -71,4 +104,15 @@ void TOperator::DoOnTieringModified(const std::shared_ptr draftBlobIdsToRemove;
+    if (!dbBlobs.LoadTierLists(GetStorageId(), blobsToDelete, draftBlobIdsToRemove, GetSelfTabletId())) {
+        return false;
+    }
+    GCInfo->MutableBlobsToDelete() = std::move(blobsToDelete);
+    GCInfo->MutableDraftBlobIdsToRemove() = std::move(draftBlobIdsToRemove);
+    return true;
+}
+
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/storage.h b/ydb/core/tx/columnshard/blobs_action/tier/storage.h
index fd2cd725ac81..f149faa4a1ad 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/storage.h
+++ b/ydb/core/tx/columnshard/blobs_action/tier/storage.h
@@ -1,7 +1,6 @@
 #pragma once
 
 #include 
-#include 
 #include 
 #include 
 #include 
@@ -12,33 +11,39 @@ namespace NKikimr::NOlap::NBlobOperations::NTier {
 class TOperator: public IBlobsStorageOperator {
 private:
     using TBase = IBlobsStorageOperator;
-    const ui64 TabletId;
     const NActors::TActorId TabletActorId;
     std::shared_ptr GCInfo = std::make_shared();
-
+    std::optional CurrentS3Settings;
+    NWrappers::NExternalStorage::IExternalStorageConfig::TPtr InitializationConfig;
     NWrappers::NExternalStorage::IExternalStorageConfig::TPtr ExternalStorageConfig;
     TSpinLock ChangeOperatorLock;
     NWrappers::NExternalStorage::IExternalStorageOperator::TPtr ExternalStorageOperator;
 
     NWrappers::NExternalStorage::IExternalStorageOperator::TPtr GetCurrentOperator() const;
     void InitNewExternalOperator(const NColumnShard::NTiers::TManager* tierManager);
+    void InitNewExternalOperator();
 
     virtual TString DoDebugString() const override {
         return GetCurrentOperator()->DebugString();
     }
 protected:
-    virtual std::shared_ptr DoStartDeclareRemovingAction() override;
+    virtual std::shared_ptr DoStartDeclareRemovingAction(const std::shared_ptr& counters) override;
     virtual std::shared_ptr DoStartWritingAction() override;
     virtual std::shared_ptr DoStartReadingAction() override;
     virtual std::shared_ptr DoStartGCAction(const std::shared_ptr& counters) const override;
-    virtual bool DoLoad(NColumnShard::IBlobManagerDb& dbBlobs) override {
-        dbBlobs.LoadTierLists(GetStorageId(), GCInfo->MutableBlobsToDelete(), GCInfo->MutableDraftBlobIdsToRemove());
-        return true;
-    }
-    virtual void DoOnTieringModified(const std::shared_ptr& tiers) override;
+    virtual bool DoLoad(IBlobManagerDb& dbBlobs) override;
+    virtual void DoOnTieringModified(const std::shared_ptr& tiers) override;
 
 public:
-    TOperator(const TString& storageId, const NColumnShard::TColumnShard& shard);
+    TOperator(const TString& storageId, const NColumnShard::TColumnShard& shard, const std::shared_ptr& storageSharedBlobsManager);
+    TOperator(const TString& storageId, const TActorId& shardActorId, const std::shared_ptr& storageConfig,
+        const std::shared_ptr& storageSharedBlobsManager);
+
+    virtual TTabletsByBlob GetBlobsToDelete() const override {
+        auto result = GCInfo->GetBlobsToDelete();
+        result.Add(GCInfo->GetBlobsToDeleteInFuture());
+        return result;
+    }
 
     virtual std::shared_ptr GetBlobsTracker() const override {
         return GCInfo;
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/write.cpp b/ydb/core/tx/columnshard/blobs_action/tier/write.cpp
index fa54aa75fadf..5ae88eb577d2 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/write.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/tier/write.cpp
@@ -15,21 +15,15 @@ void TWriteAction::DoSendWriteBlobRequest(const TString& data, const TUnifiedBlo
     ExternalStorageOperator->Execute(evPtr);
 }
 
-void TWriteAction::DoOnExecuteTxAfterWrite(NColumnShard::TColumnShard& /*self*/, NColumnShard::TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
+void TWriteAction::DoOnExecuteTxAfterWrite(NColumnShard::TColumnShard& /*self*/, TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) {
     if (blobsWroteSuccessfully) {
         for (auto&& i : GetBlobsForWrite()) {
             dbBlobs.RemoveTierDraftBlobId(GetStorageId(), i.first);
         }
-    } else {
-        for (auto&& i : GetBlobsForWrite()) {
-            dbBlobs.RemoveTierDraftBlobId(GetStorageId(), i.first);
-            dbBlobs.AddTierBlobToDelete(GetStorageId(), i.first);
-            GCInfo->MutableBlobsToDelete().emplace_back(i.first);
-        }
     }
 }
 
-void TWriteAction::DoOnExecuteTxBeforeWrite(NColumnShard::TColumnShard& /*self*/, NColumnShard::TBlobManagerDb& dbBlobs) {
+void TWriteAction::DoOnExecuteTxBeforeWrite(NColumnShard::TColumnShard& /*self*/, TBlobManagerDb& dbBlobs) {
     for (auto&& i : GetBlobsForWrite()) {
         dbBlobs.AddTierDraftBlobId(GetStorageId(), i.first);
     }
@@ -41,4 +35,12 @@ NKikimr::NOlap::TUnifiedBlobId TWriteAction::AllocateNextBlobId(const TString& d
     return TUnifiedBlobId(Max(), TLogoBlobID(TabletId, now.GetValue() >> 32, now.GetValue() & Max(), TLogoBlobID::MaxChannel, data.size(), AtomicIncrement(Counter) % TLogoBlobID::MaxCookie, 1));
 }
 
+void TWriteAction::DoOnCompleteTxAfterWrite(NColumnShard::TColumnShard& /*self*/, const bool blobsWroteSuccessfully) {
+    if (!blobsWroteSuccessfully) {
+        for (auto&& i : GetBlobsForWrite()) {
+            GCInfo->MutableDraftBlobIdsToRemove().emplace_back(i.first);
+        }
+    }
+}
+
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/write.h b/ydb/core/tx/columnshard/blobs_action/tier/write.h
index 9d65f971ce6c..cd1ebb65206c 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/write.h
+++ b/ydb/core/tx/columnshard/blobs_action/tier/write.h
@@ -1,7 +1,6 @@
 #pragma once
 
 #include 
-#include 
 #include 
 #include 
 #include "gc_info.h"
@@ -21,15 +20,13 @@ class TWriteAction: public IBlobsWritingAction {
         Y_ABORT_UNLESS(status == NKikimrProto::EReplyStatus::OK);
     }
 
-    virtual void DoOnExecuteTxBeforeWrite(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs) override;
+    virtual void DoOnExecuteTxBeforeWrite(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs) override;
     virtual void DoOnCompleteTxBeforeWrite(NColumnShard::TColumnShard& /*self*/) override {
         return;
     }
 
-    virtual void DoOnExecuteTxAfterWrite(NColumnShard::TColumnShard& self, NColumnShard::TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) override;
-    virtual void DoOnCompleteTxAfterWrite(NColumnShard::TColumnShard& /*self*/, const bool /*blobsWroteSuccessfully*/) override {
-
-    }
+    virtual void DoOnExecuteTxAfterWrite(NColumnShard::TColumnShard& self, TBlobManagerDb& dbBlobs, const bool blobsWroteSuccessfully) override;
+    virtual void DoOnCompleteTxAfterWrite(NColumnShard::TColumnShard& self, const bool blobsWroteSuccessfully) override;
 public:
     virtual bool NeedDraftTransaction() const override {
         return true;
diff --git a/ydb/core/tx/columnshard/blobs_action/tier/ya.make b/ydb/core/tx/columnshard/blobs_action/tier/ya.make
index 2df622ce24e0..6fd1d1cc0859 100644
--- a/ydb/core/tx/columnshard/blobs_action/tier/ya.make
+++ b/ydb/core/tx/columnshard/blobs_action/tier/ya.make
@@ -16,6 +16,8 @@ PEERDIR(
     contrib/libs/apache/arrow
     ydb/core/tablet_flat
     ydb/core/tx/tiering
+    ydb/core/tx/columnshard/data_sharing/protos
+    ydb/core/tx/columnshard/blobs_action/abstract
 )
 
 END()
diff --git a/ydb/core/tx/columnshard/blobs_action/transaction/tx_draft.cpp b/ydb/core/tx/columnshard/blobs_action/transaction/tx_draft.cpp
index c041f6cd412a..5d0b9b721f5d 100644
--- a/ydb/core/tx/columnshard/blobs_action/transaction/tx_draft.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/transaction/tx_draft.cpp
@@ -2,4 +2,22 @@
 
 namespace NKikimr::NColumnShard {
 
+bool TTxWriteDraft::Execute(TTransactionContext& txc, const TActorContext& /*ctx*/) {
+    TMemoryProfileGuard mpg("TTxWriteDraft::Execute");
+    NOlap::TBlobManagerDb blobManagerDb(txc.DB);
+    for (auto&& action : WriteController->GetBlobActions()) {
+        action.second->OnExecuteTxBeforeWrite(*Self, blobManagerDb);
+    }
+    return true;
+}
+
+void TTxWriteDraft::Complete(const TActorContext& ctx) {
+    TMemoryProfileGuard mpg("TTxWriteDraft::Complete");
+    Completed = true;
+    for (auto&& action : WriteController->GetBlobActions()) {
+        action.second->OnCompleteTxBeforeWrite(*Self);
+    }
+    ctx.Register(NColumnShard::CreateWriteActor(Self->TabletID(), WriteController, TInstant::Max()));
+}
+
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/transaction/tx_draft.h b/ydb/core/tx/columnshard/blobs_action/transaction/tx_draft.h
index a90db85f0f73..1bd9762d7917 100644
--- a/ydb/core/tx/columnshard/blobs_action/transaction/tx_draft.h
+++ b/ydb/core/tx/columnshard/blobs_action/transaction/tx_draft.h
@@ -7,26 +7,23 @@ using namespace NTabletFlatExecutor;
 
 class TTxWriteDraft: public TTransactionBase {
 private:
+    bool Completed = false;
     const IWriteController::TPtr WriteController;
 public:
+    ~TTxWriteDraft() {
+        if (!Completed) {
+            WriteController->Abort("TTxWriteDraft aborted before complete");
+        }
+    }
+
     TTxWriteDraft(TColumnShard* self, const IWriteController::TPtr writeController)
         : TBase(self)
         , WriteController(writeController) {
+        AFL_VERIFY(WriteController);
     }
 
-    bool Execute(TTransactionContext& txc, const TActorContext& /*ctx*/) override {
-        TBlobManagerDb blobManagerDb(txc.DB);
-        for (auto&& action : WriteController->GetBlobActions()) {
-            action->OnExecuteTxBeforeWrite(*Self, blobManagerDb);
-        }
-        return true;
-    }
-    void Complete(const TActorContext& ctx) override {
-        for (auto&& action : WriteController->GetBlobActions()) {
-            action->OnCompleteTxBeforeWrite(*Self);
-        }
-        ctx.Register(NColumnShard::CreateWriteActor(Self->TabletID(), WriteController, TInstant::Max()));
-    }
+    bool Execute(TTransactionContext& txc, const TActorContext& /*ctx*/) override;
+    void Complete(const TActorContext& ctx) override;
     TTxType GetTxType() const override { return TXTYPE_WRITE_DRAFT; }
 };
 
diff --git a/ydb/core/tx/columnshard/blobs_action/transaction/tx_gc_indexed.cpp b/ydb/core/tx/columnshard/blobs_action/transaction/tx_gc_indexed.cpp
index 6c03ae44a96d..73baa553cab9 100644
--- a/ydb/core/tx/columnshard/blobs_action/transaction/tx_gc_indexed.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/transaction/tx_gc_indexed.cpp
@@ -2,12 +2,14 @@
 
 namespace NKikimr::NColumnShard {
 bool TTxGarbageCollectionFinished::Execute(TTransactionContext& txc, const TActorContext& /*ctx*/) {
+    TMemoryProfileGuard mpg("TTxGarbageCollectionFinished::Execute");
     AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("tx", "TxGarbageCollectionFinished")("event", "execute");
-    TBlobManagerDb blobManagerDb(txc.DB);
+    NOlap::TBlobManagerDb blobManagerDb(txc.DB);
     Action->OnExecuteTxAfterCleaning(*Self, blobManagerDb);
     return true;
 }
 void TTxGarbageCollectionFinished::Complete(const TActorContext& /*ctx*/) {
+    TMemoryProfileGuard mpg("TTxGarbageCollectionFinished::Complete");
     AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("tx", "TxGarbageCollectionFinished")("event", "complete");
     Action->OnCompleteTxAfterCleaning(*Self, Action);
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/transaction/tx_gc_insert_table.cpp b/ydb/core/tx/columnshard/blobs_action/transaction/tx_gc_insert_table.cpp
index 307db45a5d24..15a05e7108a7 100644
--- a/ydb/core/tx/columnshard/blobs_action/transaction/tx_gc_insert_table.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/transaction/tx_gc_insert_table.cpp
@@ -1,28 +1,37 @@
 #include "tx_gc_insert_table.h"
+#include 
 
 namespace NKikimr::NColumnShard {
 
 bool TTxInsertTableCleanup::Execute(TTransactionContext& txc, const TActorContext& /*ctx*/) {
+    TMemoryProfileGuard mpg("TTxInsertTableCleanup::Execute");
     TBlobGroupSelector dsGroupSelector(Self->Info());
     NOlap::TDbWrapper dbTable(txc.DB, &dsGroupSelector);
     NIceDb::TNiceDb db(txc.DB);
 
     Self->TryAbortWrites(db, dbTable, std::move(WriteIdsToAbort));
 
-    TBlobManagerDb blobManagerDb(txc.DB);
+    NOlap::TBlobManagerDb blobManagerDb(txc.DB);
     auto allAborted = Self->InsertTable->GetAborted();
     auto storage = Self->StoragesManager->GetInsertOperator();
-    BlobsAction = storage->StartDeclareRemovingAction("TX_CLEANUP");
+    BlobsAction = storage->StartDeclareRemovingAction(NOlap::NBlobOperations::EConsumer::CLEANUP_INSERT_TABLE);
     for (auto& [abortedWriteId, abortedData] : allAborted) {
-        Self->InsertTable->EraseAborted(dbTable, abortedData, BlobsAction);
+        Self->InsertTable->EraseAbortedOnExecute(dbTable, abortedData, BlobsAction);
     }
-    BlobsAction->OnExecuteTxAfterRemoving(*Self, blobManagerDb, true);
+    BlobsAction->OnExecuteTxAfterRemoving(blobManagerDb, true);
     return true;
 }
 void TTxInsertTableCleanup::Complete(const TActorContext& /*ctx*/) {
+    TMemoryProfileGuard mpg("TTxInsertTableCleanup::Complete");
+    auto allAborted = Self->InsertTable->GetAborted();
+    for (auto& [abortedWriteId, abortedData] : allAborted) {
+        Self->InsertTable->EraseAbortedOnComplete(abortedData);
+    }
+
     Y_ABORT_UNLESS(BlobsAction);
-    BlobsAction->OnCompleteTxAfterRemoving(*Self, true);
-    Self->EnqueueBackgroundActivities();
+    BlobsAction->OnCompleteTxAfterRemoving(true);
+    Self->BackgroundController.FinishCleanupInsertTable();
+    Self->SetupCleanupInsertTable();
 }
 
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/transaction/tx_remove_blobs.cpp b/ydb/core/tx/columnshard/blobs_action/transaction/tx_remove_blobs.cpp
new file mode 100644
index 000000000000..74ad4c82b7e8
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/transaction/tx_remove_blobs.cpp
@@ -0,0 +1,22 @@
+#include "tx_remove_blobs.h"
+#include 
+
+namespace NKikimr::NColumnShard {
+
+bool TTxRemoveSharedBlobs::Execute(TTransactionContext& txc, const TActorContext&) {
+    TMemoryProfileGuard mpg("TTxRemoveSharedBlobs::Execute");
+    NActors::TLogContextGuard logGuard = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", Self->TabletID())("tx_state", "execute");
+    NOlap::TBlobManagerDb blobManagerDb(txc.DB);
+    RemoveAction->OnExecuteTxAfterRemoving(blobManagerDb, true);
+    return true;
+}
+
+void TTxRemoveSharedBlobs::Complete(const TActorContext& ctx) {
+    TMemoryProfileGuard mpg("TTxRemoveSharedBlobs::Complete");
+    NActors::TLogContextGuard logGuard = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", Self->TabletID())("tx_state", "complete");
+    RemoveAction->OnCompleteTxAfterRemoving(true);
+
+    ctx.Send(InitiatorActorId, new NOlap::NBlobOperations::NEvents::TEvDeleteSharedBlobsFinished((NOlap::TTabletId)Self->TabletID()));
+}
+
+}
diff --git a/ydb/core/tx/columnshard/blobs_action/transaction/tx_remove_blobs.h b/ydb/core/tx/columnshard/blobs_action/transaction/tx_remove_blobs.h
new file mode 100644
index 000000000000..d716ba89860f
--- /dev/null
+++ b/ydb/core/tx/columnshard/blobs_action/transaction/tx_remove_blobs.h
@@ -0,0 +1,34 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NColumnShard {
+
+class TTxRemoveSharedBlobs: public TTransactionBase {
+private:
+    std::shared_ptr RemoveAction;
+    const ui32 TabletTxNo;
+    const NActors::TActorId InitiatorActorId;
+
+    TStringBuilder TxPrefix() const {
+        return TStringBuilder() << "TxWrite[" << ToString(TabletTxNo) << "] ";
+    }
+
+    TString TxSuffix() const {
+        return TStringBuilder() << " at tablet " << Self->TabletID();
+    }
+public:
+    TTxRemoveSharedBlobs(TColumnShard* self, const std::shared_ptr& removeAction, const NActors::TActorId initiatorActorId)
+        : TBase(self)
+        , RemoveAction(removeAction)
+        , TabletTxNo(++Self->TabletTxCounter)
+        , InitiatorActorId(initiatorActorId)
+    {}
+
+    bool Execute(TTransactionContext& txc, const TActorContext& ctx) override;
+    void Complete(const TActorContext& ctx) override;
+    TTxType GetTxType() const override { return TXTYPE_DELETE_SHARED_BLOBS; }
+};
+
+
+}
diff --git a/ydb/core/tx/columnshard/blobs_action/transaction/tx_write.cpp b/ydb/core/tx/columnshard/blobs_action/transaction/tx_write.cpp
index 4d080a3f930b..639964702906 100644
--- a/ydb/core/tx/columnshard/blobs_action/transaction/tx_write.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/transaction/tx_write.cpp
@@ -1,12 +1,13 @@
 #include "tx_write.h"
 
 namespace NKikimr::NColumnShard {
+
 bool TTxWrite::InsertOneBlob(TTransactionContext& txc, const NOlap::TWideSerializedBatch& batch, const TWriteId writeId) {
     NKikimrTxColumnShard::TLogicalMetadata meta;
     meta.SetNumRows(batch->GetRowsCount());
     meta.SetRawBytes(batch->GetRawBytes());
     meta.SetDirtyWriteTimeSeconds(batch.GetStartInstant().Seconds());
-    meta.SetSpecialKeysRawData(batch->GetSpecialKeysSafe().SerializeToString());
+    meta.SetSpecialKeysRawData(batch->GetSpecialKeysSafe());
 
     const auto& blobRange = batch.GetRange();
     Y_ABORT_UNLESS(blobRange.GetBlobId().IsValid());
@@ -28,8 +29,8 @@ bool TTxWrite::InsertOneBlob(TTransactionContext& txc, const NOlap::TWideSeriali
     return false;
 }
 
-
 bool TTxWrite::Execute(TTransactionContext& txc, const TActorContext&) {
+    TMemoryProfileGuard mpg("TTxWrite::Execute");
     NActors::TLogContextGuard logGuard = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", Self->TabletID())("tx_state", "execute");
     ACFL_DEBUG("event", "start_execute");
     const NOlap::TWritingBuffer& buffer = PutBlobResult->Get()->MutableWritesBuffer();
@@ -66,29 +67,30 @@ bool TTxWrite::Execute(TTransactionContext& txc, const TActorContext&) {
         }
     }
 
-    TBlobManagerDb blobManagerDb(txc.DB);
+    NOlap::TBlobManagerDb blobManagerDb(txc.DB);
     AFL_VERIFY(buffer.GetAddActions().size() == 1);
     for (auto&& i : buffer.GetAddActions()) {
         i->OnExecuteTxAfterWrite(*Self, blobManagerDb, true);
     }
     for (auto&& i : buffer.GetRemoveActions()) {
-        i->OnExecuteTxAfterRemoving(*Self, blobManagerDb, true);
+        i->OnExecuteTxAfterRemoving(blobManagerDb, true);
     }
     for (auto&& aggr : buffer.GetAggregations()) {
         const auto& writeMeta = aggr->GetWriteData()->GetWriteMeta();
-        std::unique_ptr result;
-        TWriteOperation::TPtr operation;
         if (!writeMeta.HasLongTxId()) {
-            operation = Self->OperationsManager->GetOperation((TWriteId)writeMeta.GetWriteId());
+            auto operation = Self->OperationsManager->GetOperation((TWriteId)writeMeta.GetWriteId());
             Y_ABORT_UNLESS(operation);
             Y_ABORT_UNLESS(operation->GetStatus() == EOperationStatus::Started);
-        }
-        if (operation) {
             operation->OnWriteFinish(txc, aggr->GetWriteIds());
-            auto txInfo = Self->ProgressTxController->RegisterTxWithDeadline(operation->GetTxId(), NKikimrTxColumnShard::TX_KIND_COMMIT_WRITE, "", writeMeta.GetSource(), 0, txc);
-            Y_UNUSED(txInfo);
-            NEvents::TDataEvents::TCoordinatorInfo tInfo = Self->ProgressTxController->GetCoordinatorInfo(operation->GetTxId());
-            Results.emplace_back(NEvents::TDataEvents::TEvWriteResult::BuildPrepared(Self->TabletID(), operation->GetTxId(), tInfo));
+            if (operation->GetBehaviour() == EOperationBehaviour::InTxWrite) {
+                NKikimrTxColumnShard::TCommitWriteTxBody proto;
+                proto.SetLockId(operation->GetLockId());
+                TString txBody;
+                Y_ABORT_UNLESS(proto.SerializeToString(&txBody));
+                ProposeTransaction(TTxController::TBasicTxInfo(NKikimrTxColumnShard::TX_KIND_COMMIT_WRITE, operation->GetLockId()), txBody, writeMeta.GetSource(), operation->GetCookie(), txc);
+            } else {
+                Results.emplace_back(NEvents::TDataEvents::TEvWriteResult::BuildCompleted(Self->TabletID(), operation->GetLockId()));
+            }
         } else {
             Y_ABORT_UNLESS(aggr->GetWriteIds().size() == 1);
             Results.emplace_back(std::make_unique(Self->TabletID(), writeMeta, (ui64)aggr->GetWriteIds().front(), NKikimrTxColumnShard::EResultStatus::SUCCESS));
@@ -97,7 +99,17 @@ bool TTxWrite::Execute(TTransactionContext& txc, const TActorContext&) {
     return true;
 }
 
+void TTxWrite::OnProposeResult(TTxController::TProposeResult& proposeResult, const TTxController::TTxInfo& txInfo) {
+    Y_UNUSED(proposeResult);
+    Results.emplace_back(NEvents::TDataEvents::TEvWriteResult::BuildPrepared(Self->TabletID(), txInfo.TxId, Self->GetProgressTxController().BuildCoordinatorInfo(txInfo)));
+}
+
+void TTxWrite::OnProposeError(TTxController::TProposeResult& proposeResult, const TTxController::TBasicTxInfo& txInfo) {
+    AFL_VERIFY("Unexpected behaviour")("tx_id", txInfo.TxId)("details", proposeResult.DebugString());
+}
+
 void TTxWrite::Complete(const TActorContext& ctx) {
+    TMemoryProfileGuard mpg("TTxWrite::Complete");
     NActors::TLogContextGuard logGuard = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", Self->TabletID())("tx_state", "complete");
     const auto now = TMonotonic::Now();
     const NOlap::TWritingBuffer& buffer = PutBlobResult->Get()->MutableWritesBuffer();
@@ -105,13 +117,18 @@ void TTxWrite::Complete(const TActorContext& ctx) {
         i->OnCompleteTxAfterWrite(*Self, true);
     }
     for (auto&& i : buffer.GetRemoveActions()) {
-        i->OnCompleteTxAfterRemoving(*Self, true);
+        i->OnCompleteTxAfterRemoving(true);
     }
     AFL_VERIFY(buffer.GetAggregations().size() == Results.size());
     for (ui32 i = 0; i < buffer.GetAggregations().size(); ++i) {
         const auto& writeMeta = buffer.GetAggregations()[i]->GetWriteData()->GetWriteMeta();
-        ctx.Send(writeMeta.GetSource(), Results[i].release());
-        Self->CSCounters.OnWriteTxComplete((now - writeMeta.GetWriteStartInstant()).MilliSeconds());
+        auto operation = Self->OperationsManager->GetOperation((TWriteId)writeMeta.GetWriteId());
+        if (operation) {
+            ctx.Send(writeMeta.GetSource(), Results[i].release(), 0, operation->GetCookie());
+        } else {
+            ctx.Send(writeMeta.GetSource(), Results[i].release());
+        }
+        Self->CSCounters.OnWriteTxComplete(now - writeMeta.GetWriteStartInstant());
         Self->CSCounters.OnSuccessWriteResponse();
     }
 
diff --git a/ydb/core/tx/columnshard/blobs_action/transaction/tx_write.h b/ydb/core/tx/columnshard/blobs_action/transaction/tx_write.h
index 6086542940f6..4af16dc94cee 100644
--- a/ydb/core/tx/columnshard/blobs_action/transaction/tx_write.h
+++ b/ydb/core/tx/columnshard/blobs_action/transaction/tx_write.h
@@ -1,13 +1,14 @@
 #pragma once
 #include 
+#include 
 #include 
 
 namespace NKikimr::NColumnShard {
 
-class TTxWrite : public TTransactionBase {
+class TTxWrite : public TProposeTransactionBase {
 public:
     TTxWrite(TColumnShard* self, const TEvPrivate::TEvWriteBlobsResult::TPtr& putBlobResult)
-        : TBase(self)
+        : TProposeTransactionBase(self)
         , PutBlobResult(putBlobResult)
         , TabletTxNo(++Self->TabletTxCounter)
     {}
@@ -16,13 +17,17 @@ class TTxWrite : public TTransactionBase {
     void Complete(const TActorContext& ctx) override;
     TTxType GetTxType() const override { return TXTYPE_WRITE; }
 
-    bool InsertOneBlob(TTransactionContext& txc, const NOlap::TWideSerializedBatch& batch, const TWriteId writeId);
 
 private:
     TEvPrivate::TEvWriteBlobsResult::TPtr PutBlobResult;
     const ui32 TabletTxNo;
     std::vector> Results;
 
+
+    bool InsertOneBlob(TTransactionContext& txc, const NOlap::TWideSerializedBatch& batch, const TWriteId writeId);
+    void OnProposeResult(TTxController::TProposeResult& proposeResult, const TTxController::TTxInfo& txInfo) override;
+    void OnProposeError(TTxController::TProposeResult& proposeResult, const TTxController::TBasicTxInfo& txInfo) override;
+
     TStringBuilder TxPrefix() const {
         return TStringBuilder() << "TxWrite[" << ToString(TabletTxNo) << "] ";
     }
diff --git a/ydb/core/tx/columnshard/blobs_action/transaction/tx_write_index.cpp b/ydb/core/tx/columnshard/blobs_action/transaction/tx_write_index.cpp
index cd48f921478b..e6b9808493d2 100644
--- a/ydb/core/tx/columnshard/blobs_action/transaction/tx_write_index.cpp
+++ b/ydb/core/tx/columnshard/blobs_action/transaction/tx_write_index.cpp
@@ -1,41 +1,46 @@
 #include "tx_write_index.h"
+#include 
 #include 
+#include 
 #include 
 
 namespace NKikimr::NColumnShard {
 
 bool TTxWriteIndex::Execute(TTransactionContext& txc, const TActorContext& ctx) {
     auto changes = Ev->Get()->IndexChanges;
+    TMemoryProfileGuard mpg("TTxWriteIndex::Execute::" + changes->TypeString());
     TLogContextGuard gLogging = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", Self->TabletID())("external_task_id", changes->GetTaskIdentifier());
     Y_ABORT_UNLESS(Self->InsertTable);
     Y_ABORT_UNLESS(Self->TablesManager.HasPrimaryIndex());
     txc.DB.NoMoreReadsForTx();
 
-    ACFL_DEBUG("event", "TTxWriteIndex::Execute")("change_type", changes->TypeString())("details", *changes);
+    ACFL_DEBUG("event", "TTxWriteIndex::Execute")("change_type", changes->TypeString())("details", changes->DebugString());
     if (Ev->Get()->GetPutStatus() == NKikimrProto::OK) {
         NOlap::TSnapshot snapshot(Self->LastPlannedStep, Self->LastPlannedTxId);
-        Y_ABORT_UNLESS(Ev->Get()->IndexInfo.GetLastSchema()->GetSnapshot() <= snapshot);
+        Y_ABORT_UNLESS(Ev->Get()->IndexInfo->GetLastSchema()->GetSnapshot() <= snapshot);
 
         TBlobGroupSelector dsGroupSelector(Self->Info());
         NOlap::TDbWrapper dbWrap(txc.DB, &dsGroupSelector);
         AFL_VERIFY(Self->TablesManager.MutablePrimaryIndex().ApplyChanges(dbWrap, changes, snapshot));
         LOG_S_DEBUG(TxPrefix() << "(" << changes->TypeString() << ") apply" << TxSuffix());
-        NOlap::TWriteIndexContext context(txc, dbWrap);
-        changes->WriteIndex(*Self, context);
+        NOlap::TWriteIndexContext context(&txc.DB, dbWrap, Self->MutableIndexAs());
+        changes->WriteIndexOnExecute(Self, context);
 
-        changes->MutableBlobsAction().OnExecuteTxAfterAction(*Self, *context.BlobManagerDb, true);
+        NOlap::TBlobManagerDb blobManagerDb(txc.DB);
+        changes->MutableBlobsAction().OnExecuteTxAfterAction(*Self, blobManagerDb, true);
 
         Self->UpdateIndexCounters();
     } else {
         TBlobGroupSelector dsGroupSelector(Self->Info());
-        NColumnShard::TBlobManagerDb blobsDb(txc.DB);
+        NOlap::TBlobManagerDb blobsDb(txc.DB);
         changes->MutableBlobsAction().OnExecuteTxAfterAction(*Self, blobsDb, false);
         for (ui32 i = 0; i < changes->GetWritePortionsCount(); ++i) {
-            for (auto&& i : changes->GetWritePortionInfo(i)->GetPortionInfo().Records) {
-                LOG_S_WARN(TxPrefix() << "(" << changes->TypeString() << ":" << i.BlobRange << ") blob cannot apply changes: " << TxSuffix());
+            auto& portion = changes->GetWritePortionInfo(i)->GetPortionInfo();
+            for (auto&& i : portion.Records) {
+                LOG_S_WARN(TxPrefix() << "(" << changes->TypeString() << ":" << portion.RestoreBlobRange(i.BlobRange) << ") blob cannot apply changes: " << TxSuffix());
             }
         }
-        NOlap::TChangesFinishContext context("cannot write index blobs");
+        NOlap::TChangesFinishContext context("cannot write index blobs: " + ::ToString(Ev->Get()->GetPutStatus()));
         changes->Abort(*Self, context);
         LOG_S_ERROR(TxPrefix() << " (" << changes->TypeString() << ") cannot write index blobs" << TxSuffix());
     }
@@ -48,31 +53,27 @@ void TTxWriteIndex::Complete(const TActorContext& ctx) {
     TLogContextGuard gLogging(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", Self->TabletID()));
     CompleteReady = true;
     auto changes = Ev->Get()->IndexChanges;
-    ACFL_DEBUG("event", "TTxWriteIndex::Complete")("change_type", changes->TypeString())("details", *changes);
+    TMemoryProfileGuard mpg("TTxWriteIndex::Complete::" + changes->TypeString());
+    ACFL_DEBUG("event", "TTxWriteIndex::Complete")("change_type", changes->TypeString())("details", changes->DebugString());
 
     const ui64 blobsWritten = changes->GetBlobsAction().GetWritingBlobsCount();
     const ui64 bytesWritten = changes->GetBlobsAction().GetWritingTotalSize();
 
     if (!Ev->Get()->IndexChanges->IsAborted()) {
-        NOlap::TWriteIndexCompleteContext context(ctx, blobsWritten, bytesWritten, Ev->Get()->Duration, TriggerActivity);
-        Ev->Get()->IndexChanges->WriteIndexComplete(*Self, context);
-    }
-
-    if (Ev->Get()->GetPutStatus() == NKikimrProto::TRYLATER) {
-        ctx.Schedule(Self->FailActivationDelay, new TEvPrivate::TEvPeriodicWakeup(true));
-    } else {
-        Self->EnqueueBackgroundActivities(false, TriggerActivity);
+        NOlap::TWriteIndexCompleteContext context(ctx, blobsWritten, bytesWritten, Ev->Get()->Duration, Self->MutableIndexAs());
+        Ev->Get()->IndexChanges->WriteIndexOnComplete(Self, context);
     }
 
+    Self->EnqueueBackgroundActivities(false);
     changes->MutableBlobsAction().OnCompleteTxAfterAction(*Self, Ev->Get()->GetPutStatus() == NKikimrProto::OK);
-    NYDBTest::TControllers::GetColumnShardController()->OnWriteIndexComplete(Self->TabletID(), changes->TypeString());
+    NYDBTest::TControllers::GetColumnShardController()->OnWriteIndexComplete(*changes, *Self);
 }
 
 TTxWriteIndex::~TTxWriteIndex() {
     if (Ev) {
         auto changes = Ev->Get()->IndexChanges;
         if (!CompleteReady && changes) {
-            changes->AbortEmergency();
+            changes->AbortEmergency("TTxWriteIndex destructor withno CompleteReady flag");
         }
     }
 }
@@ -85,4 +86,11 @@ TTxWriteIndex::TTxWriteIndex(TColumnShard* self, TEvPrivate::TEvWriteIndex::TPtr
     Y_ABORT_UNLESS(Ev && Ev->Get()->IndexChanges);
 }
 
+void TTxWriteIndex::Describe(IOutputStream& out) const noexcept {
+    out << TypeName(*this);
+    if (Ev->Get()->IndexChanges) {
+        out << ": " << Ev->Get()->IndexChanges->DebugString();
+    }
+}
+
 }
diff --git a/ydb/core/tx/columnshard/blobs_action/transaction/tx_write_index.h b/ydb/core/tx/columnshard/blobs_action/transaction/tx_write_index.h
index 09922121d15a..3cf5d29a7219 100644
--- a/ydb/core/tx/columnshard/blobs_action/transaction/tx_write_index.h
+++ b/ydb/core/tx/columnshard/blobs_action/transaction/tx_write_index.h
@@ -16,12 +16,12 @@ class TTxWriteIndex: public TTransactionBase {
     bool Execute(TTransactionContext& txc, const TActorContext& ctx) override;
     void Complete(const TActorContext& ctx) override;
     TTxType GetTxType() const override { return TXTYPE_WRITE_INDEX; }
+    virtual void Describe(IOutputStream& out) const noexcept override;
 
 private:
 
     TEvPrivate::TEvWriteIndex::TPtr Ev;
     const ui32 TabletTxNo;
-    TBackgroundActivity TriggerActivity = TBackgroundActivity::All();
     bool CompleteReady = false;
 
     TStringBuilder TxPrefix() const {
diff --git a/ydb/core/tx/columnshard/blobs_action/transaction/ya.make b/ydb/core/tx/columnshard/blobs_action/transaction/ya.make
index 27268e5fd7f1..c78e93ef3b7e 100644
--- a/ydb/core/tx/columnshard/blobs_action/transaction/ya.make
+++ b/ydb/core/tx/columnshard/blobs_action/transaction/ya.make
@@ -6,6 +6,7 @@ SRCS(
     tx_write_index.cpp
     tx_gc_insert_table.cpp
     tx_gc_indexed.cpp
+    tx_remove_blobs.cpp
 )
 
 PEERDIR(
@@ -13,6 +14,8 @@ PEERDIR(
     contrib/libs/apache/arrow
     ydb/core/tablet_flat
     ydb/core/tx/tiering
+    ydb/core/tx/columnshard/data_sharing/protos
+    ydb/core/tx/columnshard/blobs_action/events
 )
 
 END()
diff --git a/ydb/core/tx/columnshard/blobs_action/ya.make b/ydb/core/tx/columnshard/blobs_action/ya.make
index 320cb63e4e79..12470a0aa080 100644
--- a/ydb/core/tx/columnshard/blobs_action/ya.make
+++ b/ydb/core/tx/columnshard/blobs_action/ya.make
@@ -2,7 +2,6 @@ LIBRARY()
 
 SRCS(
     blob_manager_db.cpp
-    memory.cpp
 )
 
 PEERDIR(
@@ -11,19 +10,10 @@ PEERDIR(
     ydb/core/tablet_flat
     ydb/core/tx/tiering
     ydb/core/tx/columnshard/blobs_action/abstract
-    ydb/core/tx/columnshard/blobs_action/bs
     ydb/core/tx/columnshard/blobs_action/counters
     ydb/core/tx/columnshard/blobs_action/transaction
+    ydb/core/tx/columnshard/blobs_action/events
+    ydb/core/tx/columnshard/blobs_action/protos
 )
 
-IF (OS_WINDOWS)
-    CFLAGS(
-        -DKIKIMR_DISABLE_S3_OPS
-    )
-ELSE()
-    PEERDIR(
-        ydb/core/tx/columnshard/blobs_action/tier
-    )
-ENDIF()
-
 END()
diff --git a/ydb/core/tx/columnshard/blobs_reader/actor.cpp b/ydb/core/tx/columnshard/blobs_reader/actor.cpp
index 6112a82e2633..3d27b9d8a0e8 100644
--- a/ydb/core/tx/columnshard/blobs_reader/actor.cpp
+++ b/ydb/core/tx/columnshard/blobs_reader/actor.cpp
@@ -14,13 +14,13 @@ void TActor::Handle(NBlobCache::TEvBlobCache::TEvReadBlobRangeResult::TPtr& ev)
 
     bool aborted = false;
     if (event.Status != NKikimrProto::EReplyStatus::OK) {
-        WaitingBlobsCount.Sub(Task->GetWaitingCount());
-        if (!Task->AddError(event.BlobRange, IBlobsReadingAction::TErrorStatus::Fail(event.Status, "cannot get blob"))) {
+        WaitingBlobsCount.Sub(Task->GetWaitingRangesCount());
+        if (!Task->AddError(event.DataSourceId, event.BlobRange, IBlobsReadingAction::TErrorStatus::Fail(event.Status, "cannot get blob: " + event.Data.substr(0, 1024)))) {
             aborted = true;
         }
     } else {
         WaitingBlobsCount.Dec();
-        Task->AddData(event.BlobRange, event.Data);
+        Task->AddData(event.DataSourceId, event.BlobRange, event.Data);
     }
     if (aborted || Task->IsFinished()) {
         Task = nullptr;
@@ -46,8 +46,7 @@ void TActor::Bootstrap() {
     NActors::TLogContextGuard gLogging = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("external_task_id", externalTaskId);
     Task->StartBlobsFetching({});
     ACFL_DEBUG("task", Task->DebugString());
-    WaitingBlobsCount.Add(Task->GetReadRangesCount());
-    AFL_VERIFY(Task->GetAllRangesSize());
+    WaitingBlobsCount.Add(Task->GetWaitingRangesCount());
     Become(&TThis::StateWait);
     if (Task->IsFinished()) {
         PassAway();
diff --git a/ydb/core/tx/columnshard/blobs_reader/read_coordinator.cpp b/ydb/core/tx/columnshard/blobs_reader/read_coordinator.cpp
index 5b6a255faffb..df9a740d230c 100644
--- a/ydb/core/tx/columnshard/blobs_reader/read_coordinator.cpp
+++ b/ydb/core/tx/columnshard/blobs_reader/read_coordinator.cpp
@@ -1,63 +1,41 @@
-#include "read_coordinator.h"
-
-namespace NKikimr::NOlap::NBlobOperations::NRead {
-
-TAtomicCounter TReadCoordinatorActor::WaitingBlobsCount = 0;
-
-void TReadCoordinatorActor::Handle(TEvStartReadTask::TPtr& ev) {
-    const auto& externalTaskId = ev->Get()->GetTask()->GetExternalTaskId();
-    NActors::TLogContextGuard gLogging = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("external_task_id", externalTaskId);
-    THashSet rangesInProgress;
-    for (auto&& agent : ev->Get()->GetTask()->GetAgents()) {
-        for (auto&& b : agent->GetRangesForRead()) {
-            for (auto&& r : b.second) {
-                auto it = BlobTasks.find(r);
-                if (it != BlobTasks.end()) {
-                    ACFL_DEBUG("event", "TEvReadTask")("enqueued_blob_id", r);
-                    rangesInProgress.emplace(r);
-                } else {
-                    ACFL_DEBUG("event", "TEvReadTask")("blob_id", r);
-                    it = BlobTasks.emplace(r, std::vector>()).first;
-                    WaitingBlobsCount.Inc();
-                }
-                it->second.emplace_back(ev->Get()->GetTask());
-            }
-        }
-    }
-    ev->Get()->GetTask()->StartBlobsFetching(rangesInProgress);
-    ACFL_DEBUG("task", ev->Get()->GetTask()->DebugString());
-    AFL_VERIFY(ev->Get()->GetTask()->GetAllRangesSize());
-}
-
-void TReadCoordinatorActor::Handle(NBlobCache::TEvBlobCache::TEvReadBlobRangeResult::TPtr& ev) {
-    ACFL_TRACE("event", "TEvReadBlobRangeResult")("blob_id", ev->Get()->BlobRange);
-
-    auto& event = *ev->Get();
-    auto it = BlobTasks.find(event.BlobRange);
-    AFL_VERIFY(it != BlobTasks.end())("blob_id", event.BlobRange);
-    for (auto&& i : it->second) {
-        if (event.Status != NKikimrProto::EReplyStatus::OK) {
-            i->AddError(event.BlobRange, IBlobsReadingAction::TErrorStatus::Fail(event.Status, "cannot get blob"));
-        } else {
-            i->AddData(event.BlobRange, event.Data);
-        }
-    }
-    WaitingBlobsCount.Dec();
-    BlobTasks.erase(it);
-}
-
-TReadCoordinatorActor::TReadCoordinatorActor(ui64 tabletId, const TActorId& parent)
-    : TabletId(tabletId)
-    , Parent(parent) {
-
-}
-
-TReadCoordinatorActor::~TReadCoordinatorActor() {
-    for (auto&& i : BlobTasks) {
-        for (auto&& t : i.second) {
-            t->Abort();
-        }
-    }
-}
-
+#include "read_coordinator.h"
+
+namespace NKikimr::NOlap::NBlobOperations::NRead {
+
+void TReadCoordinatorActor::Handle(TEvStartReadTask::TPtr& ev) {
+    const auto& externalTaskId = ev->Get()->GetTask()->GetExternalTaskId();
+    NActors::TLogContextGuard gLogging = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("external_task_id", externalTaskId);
+    THashSet rangesInProgress;
+    BlobTasks.AddTask(ev->Get()->GetTask());
+    ev->Get()->GetTask()->StartBlobsFetching(rangesInProgress);
+    ACFL_DEBUG("task", ev->Get()->GetTask()->DebugString());
+}
+
+void TReadCoordinatorActor::Handle(NBlobCache::TEvBlobCache::TEvReadBlobRangeResult::TPtr& ev) {
+    ACFL_TRACE("event", "TEvReadBlobRangeResult")("blob_id", ev->Get()->BlobRange);
+
+    auto& event = *ev->Get();
+    auto tasks = BlobTasks.Extract(event.DataSourceId, event.BlobRange);
+    for (auto&& i : tasks) {
+        if (event.Status != NKikimrProto::EReplyStatus::OK) {
+            i->AddError(event.DataSourceId, event.BlobRange, IBlobsReadingAction::TErrorStatus::Fail(event.Status, "cannot get blob"));
+        } else {
+            i->AddData(event.DataSourceId, event.BlobRange, event.Data);
+        }
+    }
+}
+
+TReadCoordinatorActor::TReadCoordinatorActor(ui64 tabletId, const TActorId& parent)
+    : TabletId(tabletId)
+    , Parent(parent) {
+
+}
+
+TReadCoordinatorActor::~TReadCoordinatorActor() {
+    auto tasks = BlobTasks.ExtractTasksAll();
+    for (auto&& i : tasks) {
+        i->Abort();
+    }
+}
+
 }
diff --git a/ydb/core/tx/columnshard/blobs_reader/read_coordinator.h b/ydb/core/tx/columnshard/blobs_reader/read_coordinator.h
index e89a29aee1b0..abd93b724a6d 100644
--- a/ydb/core/tx/columnshard/blobs_reader/read_coordinator.h
+++ b/ydb/core/tx/columnshard/blobs_reader/read_coordinator.h
@@ -12,13 +12,54 @@
 
 namespace NKikimr::NOlap::NBlobOperations::NRead {
 
+class TBlobsForRead {
+private:
+    THashMap>>> BlobTasks;
+public:
+    std::vector> ExtractTasksAll() {
+        THashMap> tasks;
+        for (auto&& i : BlobTasks) {
+            for (auto&& r : i.second) {
+                for (auto&& t : r.second) {
+                    tasks.emplace(t->GetTaskIdentifier(), t);
+                }
+            }
+        }
+        std::vector> result;
+        for (auto&& i : tasks) {
+            result.emplace_back(i.second);
+        }
+        return result;
+    }
+
+    std::vector> Extract(const TString& storageId, const TBlobRange& bRange) {
+        auto it = BlobTasks.find(storageId);
+        AFL_VERIFY(it != BlobTasks.end());
+        auto itBlobRange = it->second.find(bRange);
+        auto result = std::move(itBlobRange->second);
+        it->second.erase(itBlobRange);
+        if (it->second.empty()) {
+            BlobTasks.erase(it);
+        }
+        return result;
+    }
+
+    void AddTask(const std::shared_ptr& task) {
+        for (auto&& i : task->GetAgents()) {
+            auto& storage = BlobTasks[i.second->GetStorageId()];
+            for (auto&& bRid : i.second->GetGroups()) {
+                storage[bRid.first].emplace_back(task);
+            }
+        }
+    }
+};
+
 class TReadCoordinatorActor: public NActors::TActorBootstrapped {
 private:
     ui64 TabletId;
     NActors::TActorId Parent;
-    THashMap>> BlobTasks;
+    TBlobsForRead BlobTasks;
 public:
-    static TAtomicCounter WaitingBlobsCount;
     TReadCoordinatorActor(ui64 tabletId, const TActorId& parent);
 
     void Handle(TEvStartReadTask::TPtr& ev);
@@ -42,4 +83,4 @@ class TReadCoordinatorActor: public NActors::TActorBootstrapped>& ITask::GetAgents() const {
-    Y_ABORT_UNLESS(!BlobsFetchingStarted);
-    return Agents;
-}
-
-bool ITask::AddError(const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status) {
-    ++BlobErrorsCount;
+bool ITask::AddError(const TString& storageIdExt, const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status) {
+    const TString storageId = storageIdExt ? storageIdExt : IStoragesManager::DefaultStorageId;
+    AFL_VERIFY(--BlobsWaitingCount >= 0);
     if (TaskFinishedWithError || AbortFlag) {
-        ACFL_WARN("event", "SkipError")("blob_range", range)("message", status.GetErrorMessage())("status", status.GetStatus())("external_task_id", ExternalTaskId)("consumer", TaskCustomer)
+        ACFL_WARN("event", "SkipError")("storage_id", storageId)("blob_range", range)("message", status.GetErrorMessage())("status", status.GetStatus())("external_task_id", ExternalTaskId)("consumer", TaskCustomer)
             ("abort", AbortFlag)("finished_with_error", TaskFinishedWithError);
         return false;
     } else {
-        ACFL_ERROR("event", "NewError")("blob_range", range)("message", status.GetErrorMessage())("status", status.GetStatus())("external_task_id", ExternalTaskId)("consumer", TaskCustomer);
+        ACFL_ERROR("event", "NewError")("storage_id", storageId)("blob_range", range)("message", status.GetErrorMessage())("status", status.GetStatus())("external_task_id", ExternalTaskId)("consumer", TaskCustomer);
     }
     {
-        auto it = BlobsWaiting.find(range);
-        AFL_VERIFY(it != BlobsWaiting.end());
+        auto it = AgentsWaiting.find(storageId);
+        AFL_VERIFY(it != AgentsWaiting.end())("storage_id", storageId);
         it->second->OnReadError(range, status);
-        BlobsWaiting.erase(it);
+        if (it->second->IsFinished()) {
+            AgentsWaiting.erase(it);
+        }
     }
-    if (!OnError(range, status)) {
+    if (!OnError(storageId, range, status)) {
         TaskFinishedWithError = true;
         return false;
     }
-    if (BlobsWaiting.empty()) {
+    if (AgentsWaiting.empty()) {
         OnDataReady();
     }
     return true;
 }
 
-void ITask::AddData(const TBlobRange& range, const TString& data) {
-    ++BlobsDataCount;
+void ITask::AddData(const TString& storageIdExt, const TBlobRange& range, const TString& data) {
+    const TString storageId = storageIdExt ? storageIdExt : IStoragesManager::DefaultStorageId;
+    AFL_VERIFY(--BlobsWaitingCount >= 0);
     if (TaskFinishedWithError || AbortFlag) {
-        ACFL_WARN("event", "SkipDataAfterError")("external_task_id", ExternalTaskId)("abort", AbortFlag)("finished_with_error", TaskFinishedWithError);
+        ACFL_WARN("event", "SkipDataAfterError")("storage_id", storageId)("external_task_id", ExternalTaskId)("abort", AbortFlag)("finished_with_error", TaskFinishedWithError);
         return;
     } else {
-        ACFL_TRACE("event", "NewData")("range", range.ToString())("external_task_id", ExternalTaskId);
+        ACFL_TRACE("event", "NewData")("storage_id", storageId)("range", range.ToString())("external_task_id", ExternalTaskId);
     }
     Y_ABORT_UNLESS(BlobsFetchingStarted);
     {
-        auto it = BlobsWaiting.find(range);
-        AFL_VERIFY(it != BlobsWaiting.end());
+        auto it = AgentsWaiting.find(storageId);
+        AFL_VERIFY(it != AgentsWaiting.end())("storage_id", storageId);
         it->second->OnReadResult(range, data);
-        BlobsWaiting.erase(it);
+        if (it->second->IsFinished()) {
+            AgentsWaiting.erase(it);
+        }
     }
-    if (BlobsWaiting.empty()) {
+    if (AgentsWaiting.empty()) {
         OnDataReady();
     }
 }
@@ -59,24 +60,15 @@ void ITask::StartBlobsFetching(const THashSet& rangesInProgress) {
     ACFL_TRACE("task_id", ExternalTaskId)("event", "start");
     Y_ABORT_UNLESS(!BlobsFetchingStarted);
     BlobsFetchingStarted = true;
-    ui64 allRangesSize = 0;
-    ui64 allRangesCount = 0;
-    ui64 readRangesCount = 0;
+    AFL_VERIFY(BlobsWaitingCount == 0);
     for (auto&& agent : Agents) {
-        allRangesSize += agent->GetExpectedBlobsSize();
-        allRangesCount += agent->GetExpectedBlobsCount();
-        for (auto&& b : agent->GetRangesForRead()) {
-            for (auto&& r : b.second) {
-                BlobsWaiting.emplace(r, agent);
-                ++readRangesCount;
-            }
+        agent.second->Start(rangesInProgress);
+        if (!agent.second->IsFinished()) {
+            AgentsWaiting.emplace(agent.second->GetStorageId(), agent.second);
+            BlobsWaitingCount += agent.second->GetGroups().size();
         }
-        agent->Start(rangesInProgress);
     }
-    ReadRangesCount = readRangesCount;
-    AllRangesCount = allRangesCount;
-    AllRangesSize = allRangesSize;
-    if (BlobsWaiting.empty()) {
+    if (AgentsWaiting.empty()) {
         OnDataReady();
     }
 }
@@ -91,15 +83,15 @@ void ITask::TReadSubscriber::DoOnAllocationSuccess(const std::shared_ptr>& actions, const TString& taskCustomer, const TString& externalTaskId)
-    : Agents(actions)
-    , TaskIdentifier(TaskIdentifierBuilder.Inc())
+ITask::ITask(const TReadActionsCollection& actions, const TString& taskCustomer, const TString& externalTaskId)
+    : TaskIdentifier(TaskIdentifierBuilder.Inc())
     , ExternalTaskId(externalTaskId)
     , TaskCustomer(taskCustomer)
 {
-    AFL_VERIFY(Agents.size());
+    Agents = actions;
+    AFL_VERIFY(!Agents.IsEmpty());
     for (auto&& i : Agents) {
-        AFL_VERIFY(i->GetExpectedBlobsCount());
+        AFL_VERIFY(i.second->GetExpectedBlobsCount());
     }
 }
 
@@ -108,11 +100,7 @@ TString ITask::DebugString() const {
     if (TaskFinishedWithError) {
         sb << "finished_with_error=" << TaskFinishedWithError << ";";
     }
-    if (BlobErrorsCount) {
-        sb << "blob_errors=" << BlobErrorsCount << ";";
-    }
-    sb << "data=" << BlobsDataCount << ";"
-        << "waiting=" << BlobsWaiting.size() << ";"
+    sb << "agents_waiting=" << AgentsWaiting.size() << ";"
         << "additional_info=(" << DoDebugString() << ");"
         ;
     return sb;
@@ -125,22 +113,22 @@ void ITask::OnDataReady() {
     DoOnDataReady(ResourcesGuard);
 }
 
-bool ITask::OnError(const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status) {
+bool ITask::OnError(const TString& storageId, const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status) {
     ACFL_DEBUG("event", "OnError")("status", status.GetStatus())("task", DebugString());
-    return DoOnError(range, status);
+    return DoOnError(storageId, range, status);
 }
 
 ITask::~ITask() {
     AFL_VERIFY(!NActors::TlsActivationContext || DataIsReadyFlag || TaskFinishedWithError || AbortFlag || !BlobsFetchingStarted);
 }
 
-THashMap ITask::ExtractBlobsData() {
-    AFL_VERIFY(BlobsWaiting.empty());
+TCompositeReadBlobs ITask::ExtractBlobsData() {
+    AFL_VERIFY(AgentsWaiting.empty());
     AFL_VERIFY(!ResultsExtracted);
     ResultsExtracted = true;
-    THashMap result;
+    TCompositeReadBlobs result;
     for (auto&& i : Agents) {
-        i->ExtractBlobsDataTo(result);
+        result.Add(i.second->GetStorageId(), i.second->ExtractBlobsData());
     }
     return std::move(result);
 }
diff --git a/ydb/core/tx/columnshard/blobs_reader/task.h b/ydb/core/tx/columnshard/blobs_reader/task.h
index 65525b03f434..bc2796e9dda1 100644
--- a/ydb/core/tx/columnshard/blobs_reader/task.h
+++ b/ydb/core/tx/columnshard/blobs_reader/task.h
@@ -9,47 +9,106 @@
 
 namespace NKikimr::NOlap::NBlobOperations::NRead {
 
+class TCompositeReadBlobs {
+private:
+    THashMap BlobsByStorage;
+public:
+    TString DebugString() const {
+        TStringBuilder sb;
+        sb << "{";
+        for (auto&& i : BlobsByStorage) {
+            sb << "{storage_id:" << i.first << ";blobs:" << i.second.DebugString() << "};";
+        }
+        sb << "}";
+        return sb;
+    }
+
+    void Merge(TCompositeReadBlobs&& blobs) {
+        for (auto&& i : blobs.BlobsByStorage) {
+            BlobsByStorage[i.first].Merge(std::move(i.second));
+        }
+    }
+
+    void Clear() {
+        BlobsByStorage.clear();
+    }
+
+    bool IsEmpty() const {
+        return BlobsByStorage.empty();
+    }
+
+    THashMap::iterator begin() {
+        return BlobsByStorage.begin();
+    }
+    THashMap::iterator end() {
+        return BlobsByStorage.end();
+    }
+    void Add(const TString& storageId, TActionReadBlobs&& data) {
+        AFL_VERIFY(BlobsByStorage.emplace(storageId, std::move(data)).second);
+    }
+    void Add(const TString& storageId, const TBlobRange& blobId, TString&& value) {
+        BlobsByStorage[storageId].Add(blobId, std::move(value));
+    }
+    TString Extract(const TString& storageId, const TBlobRange& range) {
+        auto it = BlobsByStorage.find(storageId);
+        AFL_VERIFY(it != BlobsByStorage.end());
+        auto result = it->second.Extract(range);
+        if (it->second.IsEmpty()) {
+            BlobsByStorage.erase(it);
+        }
+        return result;
+    }
+
+    ui64 GetTotalBlobsSize() const {
+        ui64 result = 0;
+        for (auto&& i : BlobsByStorage) {
+            result += i.second.GetTotalBlobsSize();
+        }
+        return result;
+    }
+};
+
 class ITask: public NColumnShard::TMonitoringObjectsCounter {
 private:
-    THashMap> BlobsWaiting;
-    std::vector> Agents;
+    THashMap> AgentsWaiting;
+    YDB_READONLY_DEF(TReadActionsCollection, Agents);
     bool BlobsFetchingStarted = false;
     bool TaskFinishedWithError = false;
     bool DataIsReadyFlag = false;
     const ui64 TaskIdentifier = 0;
     const TString ExternalTaskId;
     bool AbortFlag = false;
-    std::optional AllRangesSize;
-    std::optional AllRangesCount;
-    std::optional ReadRangesCount;
     TString TaskCustomer;
     std::shared_ptr ResourcesGuard;
-    ui32 BlobErrorsCount = 0;
-    ui32 BlobsDataCount = 0;
+    i64 BlobsWaitingCount = 0;
     bool ResultsExtracted = false;
 protected:
     bool IsFetchingStarted() const {
         return BlobsFetchingStarted;
     }
 
-    THashMap ExtractBlobsData();
+    TCompositeReadBlobs ExtractBlobsData();
 
     virtual void DoOnDataReady(const std::shared_ptr& resourcesGuard) = 0;
-    virtual bool DoOnError(const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status) = 0;
+    virtual bool DoOnError(const TString& storageId, const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status) = 0;
 
     void OnDataReady();
-    bool OnError(const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status);
+    bool OnError(const TString& storageId, const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status);
 
     virtual TString DoDebugString() const {
         return "";
     }
 public:
+    i64 GetWaitingRangesCount() const {
+        return BlobsWaitingCount;
+    }
+
     void Abort() {
         AbortFlag = true;
     }
 
     bool IsFinished() const {
-        return BlobsWaiting.empty() && BlobsFetchingStarted;
+        return AgentsWaiting.empty() && BlobsFetchingStarted;
     }
 
     ui64 GetTaskIdentifier() const {
@@ -62,43 +121,14 @@ class ITask: public NColumnShard::TMonitoringObjectsCounter {
 
     TString DebugString() const;
 
-    ui64 GetAllRangesSize() const {
-        Y_ABORT_UNLESS(AllRangesSize);
-        return *AllRangesSize;
-    }
-
-    ui64 GetAllRangesCount() const {
-        Y_ABORT_UNLESS(AllRangesCount);
-        return *AllRangesCount;
-    }
-
-    ui64 GetReadRangesCount() const {
-        Y_ABORT_UNLESS(ReadRangesCount);
-        return *ReadRangesCount;
-    }
-
-    ui32 GetWaitingCount() const {
-        return BlobsWaiting.size();
-    }
-
-    THashSet GetExpectedRanges() const {
-        THashSet result;
-        for (auto&& i : Agents) {
-            i->FillExpectedRanges(result);
-        }
-        return result;
-    }
-
-    const std::vector>& GetAgents() const;
-
     virtual ~ITask();
 
-    ITask(const std::vector>& actions, const TString& taskCustomer, const TString& externalTaskId = "");
+    ITask(const TReadActionsCollection& actions, const TString& taskCustomer, const TString& externalTaskId = "");
 
     void StartBlobsFetching(const THashSet& rangesInProgress);
 
-    bool AddError(const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status);
-    void AddData(const TBlobRange& range, const TString& data);
+    bool AddError(const TString& storageId, const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status);
+    void AddData(const TString& storageId, const TBlobRange& range, const TString& data);
 
     class TReadSubscriber: public NResourceBroker::NSubscribe::ITask {
     private:
diff --git a/ydb/core/tx/columnshard/columnshard.cpp b/ydb/core/tx/columnshard/columnshard.cpp
index 6923c4f35783..bbbb97a53ae2 100644
--- a/ydb/core/tx/columnshard/columnshard.cpp
+++ b/ydb/core/tx/columnshard/columnshard.cpp
@@ -3,6 +3,11 @@
 #include "hooks/abstract/abstract.h"
 #include "resource_subscriber/actor.h"
 #include "engines/writer/buffer/actor.h"
+#include "engines/column_engine_logs.h"
+#include "export/manager/manager.h"
+
+#include 
+#include 
 
 namespace NKikimr {
 
@@ -19,9 +24,12 @@ void TColumnShard::CleanupActors(const TActorContext& ctx) {
     ctx.Send(BufferizationWriteActorId, new TEvents::TEvPoisonPill);
 
     StoragesManager->Stop();
+    ExportsManager->Stop();
+    DataLocksManager->Stop();
     if (Tiers) {
-        Tiers->Stop();
+        Tiers->Stop(true);
     }
+    NYDBTest::TControllers::GetColumnShardController()->OnCleanupActors(TabletID());
 }
 
 void TColumnShard::BecomeBroken(const TActorContext& ctx) {
@@ -36,9 +44,8 @@ void TColumnShard::SwitchToWork(const TActorContext& ctx) {
         AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("event", "initialize_shard")("step", "SwitchToWork");
 
         for (auto&& i : TablesManager.GetTables()) {
-            ActivateTiering(i.first, i.second.GetTieringUsage(), true);
+            ActivateTiering(i.first, i.second.GetTieringUsage());
         }
-        OnTieringModified();
 
         Become(&TThis::StateWork);
         SignalTabletActive(ctx);
@@ -46,8 +53,10 @@ void TColumnShard::SwitchToWork(const TActorContext& ctx) {
         TryRegisterMediatorTimeCast();
         EnqueueProgressTx(ctx);
     }
+    CSCounters.OnIndexMetadataLimit(NOlap::IColumnEngine::GetMetadataLimit());
     EnqueueBackgroundActivities();
     ctx.Send(SelfId(), new TEvPrivate::TEvPeriodicWakeup());
+    NYDBTest::TControllers::GetColumnShardController()->OnSwitchToWork(TabletID());
 }
 
 void TColumnShard::OnActivateExecutor(const TActorContext& ctx) {
@@ -57,6 +66,7 @@ void TColumnShard::OnActivateExecutor(const TActorContext& ctx) {
     Executor()->RegisterExternalTabletCounters(TabletCountersPtr.release());
 
     const auto selfActorId = SelfId();
+    StoragesManager->Initialize();
     Tiers = std::make_shared(TabletID(), SelfId(),
         [selfActorId](const TActorContext& ctx) {
         AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "tiering_new_event");
@@ -70,7 +80,6 @@ void TColumnShard::OnActivateExecutor(const TActorContext& ctx) {
     AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("event", "initialize_shard")("step", "initialize_tiring_finished");
     auto& icb = *AppData(ctx)->Icb;
     Limits.RegisterControls(icb);
-    CompactionLimits.RegisterControls(icb);
     Settings.RegisterControls(icb);
     ResourceSubscribeActor = ctx.Register(new NOlap::NResourceBroker::NSubscribe::TActor(TabletID(), SelfId()));
     BufferizationWriteActorId = ctx.Register(new NColumnShard::NWriting::TActor(TabletID(), SelfId()));
@@ -139,12 +148,14 @@ 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);
+    const NOlap::TVersionedIndex* index = nullptr;
+    if (HasIndex()) {
+        index = &GetIndexAs().GetVersionedIndex();
+    }
+    InFlightReadsTracker.RemoveInFlightRequest(ev->Get()->RequestCookie, index);
 
     ui64 txId = ev->Get()->TxId;
     if (ScanTxInFlight.contains(txId)) {
-        TDuration duration = TAppData::TimeProvider->Now() - ScanTxInFlight[txId];
-        IncCounter(COUNTER_SCAN_LATENCY, duration);
         ScanTxInFlight.erase(txId);
         SetCounter(COUNTER_SCAN_IN_FLY, ScanTxInFlight.size());
     }
@@ -201,7 +212,7 @@ void TColumnShard::UpdateInsertTableCounters() {
     SetCounter(COUNTER_COMMITTED_RECORDS, committed.Rows);
     SetCounter(COUNTER_COMMITTED_BYTES, committed.Bytes);
 
-    LOG_S_INFO("InsertTable. Prepared: " << prepared.Bytes << " in " << prepared.Rows
+    LOG_S_TRACE("InsertTable. Prepared: " << prepared.Bytes << " in " << prepared.Rows
         << " records, committed: " << committed.Bytes << " in " << committed.Rows
         << " records at tablet " << TabletID());
 }
@@ -214,7 +225,6 @@ void TColumnShard::UpdateIndexCounters() {
     auto& stats = TablesManager.MutablePrimaryIndex().GetTotalStats();
     SetCounter(COUNTER_INDEX_TABLES, stats.Tables);
     SetCounter(COUNTER_INDEX_COLUMN_RECORDS, stats.ColumnRecords);
-    SetCounter(COUNTER_INDEX_COLUMN_METADATA_BYTES, stats.ColumnMetadataBytes);
     SetCounter(COUNTER_INSERTED_PORTIONS, stats.GetInsertedStats().Portions);
     SetCounter(COUNTER_INSERTED_BLOBS, stats.GetInsertedStats().Blobs);
     SetCounter(COUNTER_INSERTED_ROWS, stats.GetInsertedStats().Rows);
@@ -247,7 +257,7 @@ void TColumnShard::UpdateIndexCounters() {
         << " s-compacted " << stats.GetSplitCompactedStats().DebugString()
         << " inactive " << stats.GetInactiveStats().DebugString()
         << " evicted " << stats.GetEvictedStats().DebugString()
-        << " column records " << stats.ColumnRecords << " meta bytes " << stats.ColumnMetadataBytes
+        << " column records " << stats.ColumnRecords
         << " at tablet " << TabletID());
 }
 
@@ -315,14 +325,6 @@ void TColumnShard::ConfigureStats(const NOlap::TColumnEngineStats& indexStats,
     tabletStats->SetLastUpdateTime(lastIndexUpdate.GetPlanStep());
 }
 
-TDuration TColumnShard::GetControllerPeriodicWakeupActivationPeriod() {
-    return NYDBTest::TControllers::GetColumnShardController()->GetPeriodicWakeupActivationPeriod(TSettings::DefaultPeriodicWakeupActivationPeriod);
-}
-
-TDuration TColumnShard::GetControllerStatsReportInterval() {
-    return NYDBTest::TControllers::GetColumnShardController()->GetStatsReportInterval(TSettings::DefaultStatsReportInterval);
-}
-
 void TColumnShard::FillTxTableStats(::NKikimrTableStats::TTableStats* tableStats) const {
     tableStats->SetTxRejectedByOverload(TabletCounters->Cumulative()[COUNTER_WRITE_OVERLOAD].Get());
     tableStats->SetTxRejectedBySpace(TabletCounters->Cumulative()[COUNTER_OUT_OF_SPACE].Get());
diff --git a/ydb/core/tx/columnshard/columnshard.h b/ydb/core/tx/columnshard/columnshard.h
index 5e5e6f10a000..09348a4fd4ab 100644
--- a/ydb/core/tx/columnshard/columnshard.h
+++ b/ydb/core/tx/columnshard/columnshard.h
@@ -66,6 +66,22 @@ struct TEvColumnShard {
         EvWriteResult,
         EvReadResult,
 
+        EvDeleteSharedBlobs,
+        EvDeleteSharedBlobsFinished,
+
+        EvDataSharingProposeFromInitiator,
+        EvDataSharingConfirmFromInitiator,
+        EvDataSharingAckFinishFromInitiator,
+        EvDataSharingStartToSource,
+        EvDataSharingSendDataFromSource,
+        EvDataSharingAckDataToSource,
+        EvDataSharingFinishedFromSource,
+        EvDataSharingAckFinishToSource,
+        EvDataSharingCheckStatusFromInitiator,
+        EvDataSharingCheckStatusResult,
+        EvApplyLinksModification,
+        EvApplyLinksModificationFinished,
+
         EvEnd
     };
 
@@ -210,8 +226,7 @@ struct TEvColumnShard {
         }
     };
 
-    struct TEvWriteResult : public TEventPB {
+    struct TEvWriteResult : public TEventPB {
         TEvWriteResult() = default;
 
         TEvWriteResult(ui64 origin, const NEvWrite::TWriteMeta& writeMeta, ui32 status)
@@ -235,6 +250,7 @@ struct TEvColumnShard {
     };
 
     using TEvScan = TEvDataShard::TEvKqpScan;
+
 };
 
 inline auto& Proto(TEvColumnShard::TEvProposeTransaction* ev) {
diff --git a/ydb/core/tx/columnshard/columnshard__index_scan.cpp b/ydb/core/tx/columnshard/columnshard__index_scan.cpp
deleted file mode 100644
index a2d4dc7bb809..000000000000
--- a/ydb/core/tx/columnshard/columnshard__index_scan.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-#include "columnshard__index_scan.h"
-#include 
-#include 
-
-namespace NKikimr::NColumnShard {
-
-TColumnShardScanIterator::TColumnShardScanIterator(const std::shared_ptr& context, const NOlap::TReadMetadata::TConstPtr& readMetadata)
-    : Context(context)
-    , ReadMetadata(readMetadata)
-    , ReadyResults(context->GetCounters())
-{
-    IndexedData = readMetadata->BuildReader(Context);
-    Y_ABORT_UNLESS(Context->GetReadMetadata()->IsSorted());
-
-    if (readMetadata->Empty()) {
-        IndexedData->Abort();
-    }
-}
-
-std::optional TColumnShardScanIterator::GetBatch() {
-    FillReadyResults();
-    return ReadyResults.pop_front();
-}
-
-void TColumnShardScanIterator::PrepareResults() {
-    FillReadyResults();
-}
-
-bool TColumnShardScanIterator::ReadNextInterval() {
-    return IndexedData->ReadNextInterval();
-}
-
-void TColumnShardScanIterator::FillReadyResults() {
-    auto ready = IndexedData->ExtractReadyResults(MaxRowsInBatch);
-    i64 limitLeft = Context->GetReadMetadata()->Limit == 0 ? INT64_MAX : Context->GetReadMetadata()->Limit - ItemsRead;
-    for (size_t i = 0; i < ready.size() && limitLeft; ++i) {
-        auto& batch = ReadyResults.emplace_back(std::move(ready[i]));
-        if (batch.GetResultBatch().num_rows() > limitLeft) {
-            batch.Cut(limitLeft);
-        }
-        limitLeft -= batch.GetResultBatch().num_rows();
-        ItemsRead += batch.GetResultBatch().num_rows();
-    }
-
-    if (limitLeft == 0) {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "abort_scan")("limit", Context->GetReadMetadata()->Limit)("ready", ItemsRead);
-        IndexedData->Abort();
-    }
-}
-
-TColumnShardScanIterator::~TColumnShardScanIterator() {
-    IndexedData->Abort();
-    ReadMetadata->ReadStats->PrintToLog();
-}
-
-void TColumnShardScanIterator::Apply(IDataTasksProcessor::ITask::TPtr task) {
-    if (!IndexedData->IsFinished()) {
-        Y_ABORT_UNLESS(task->Apply(*IndexedData));
-    }
-}
-
-}
diff --git a/ydb/core/tx/columnshard/columnshard__index_scan.h b/ydb/core/tx/columnshard/columnshard__index_scan.h
deleted file mode 100644
index 2d3d7e96e035..000000000000
--- a/ydb/core/tx/columnshard/columnshard__index_scan.h
+++ /dev/null
@@ -1,124 +0,0 @@
-#pragma once
-
-#include "columnshard__scan.h"
-#include "columnshard_common.h"
-#include "engines/reader/read_metadata.h"
-#include "engines/reader/read_context.h"
-
-namespace NKikimr::NColumnShard {
-
-class TIndexColumnResolver : public IColumnResolver {
-    const NOlap::TIndexInfo& IndexInfo;
-
-public:
-    explicit TIndexColumnResolver(const NOlap::TIndexInfo& indexInfo)
-        : IndexInfo(indexInfo)
-    {}
-
-    virtual std::optional GetColumnIdOptional(const TString& name) const override {
-        return IndexInfo.GetColumnIdOptional(name);
-    }
-
-    TString GetColumnName(ui32 id, bool required) const override {
-        return IndexInfo.GetColumnName(id, required);
-    }
-
-    const NTable::TScheme::TTableSchema& GetSchema() const override {
-        return IndexInfo;
-    }
-
-    NSsa::TColumnInfo GetDefaultColumn() const override {
-        return NSsa::TColumnInfo::Original((ui32)NOlap::TIndexInfo::ESpecialColumn::PLAN_STEP, NOlap::TIndexInfo::SPEC_COL_PLAN_STEP);
-    }
-};
-
-using NOlap::TUnifiedBlobId;
-using NOlap::TBlobRange;
-
-class TReadyResults {
-private:
-    const NColumnShard::TConcreteScanCounters Counters;
-    std::deque Data;
-    i64 RecordsCount = 0;
-public:
-    TString DebugString() const {
-        TStringBuilder sb;
-        sb
-            << "count:" << Data.size() << ";"
-            << "records_count:" << RecordsCount << ";"
-            ;
-        if (Data.size()) {
-            sb << "schema=" << Data.front().GetResultBatch().schema()->ToString() << ";";
-        }
-        return sb;
-    }
-    TReadyResults(const NColumnShard::TConcreteScanCounters& counters)
-        : Counters(counters)
-    {
-
-    }
-    NOlap::TPartialReadResult& emplace_back(NOlap::TPartialReadResult&& v) {
-        RecordsCount += v.GetResultBatch().num_rows();
-        Data.emplace_back(std::move(v));
-        return Data.back();
-    }
-    std::optional pop_front() {
-        if (Data.empty()) {
-            return {};
-        }
-        auto result = std::move(Data.front());
-        RecordsCount -= result.GetResultBatch().num_rows();
-        Data.pop_front();
-        return result;
-    }
-    bool empty() const {
-        return Data.empty();
-    }
-    size_t size() const {
-        return Data.size();
-    }
-};
-
-class TColumnShardScanIterator: public TScanIteratorBase {
-private:
-    std::shared_ptr Context;
-    const NOlap::TReadMetadata::TConstPtr ReadMetadata;
-    TReadyResults ReadyResults;
-    std::shared_ptr IndexedData;
-    ui64 ItemsRead = 0;
-    const i64 MaxRowsInBatch = 5000;
-public:
-    TColumnShardScanIterator(const std::shared_ptr& context, const NOlap::TReadMetadata::TConstPtr& readMetadata);
-    ~TColumnShardScanIterator();
-
-    virtual std::optional GetAvailableResultsCount() const override {
-        return ReadyResults.size();
-    }
-
-    virtual const NOlap::TReadStats& GetStats() const override {
-        return *ReadMetadata->ReadStats;
-    }
-
-    virtual TString DebugString(const bool verbose) const override {
-        return TStringBuilder()
-            << "ready_results:(" << ReadyResults.DebugString() << ");"
-            << "indexed_data:(" << IndexedData->DebugString(verbose) << ")"
-            ;
-    }
-
-    virtual void Apply(IDataTasksProcessor::ITask::TPtr task) override;
-
-    bool Finished() const  override {
-        return IndexedData->IsFinished() && ReadyResults.empty();
-    }
-
-    std::optional GetBatch() override;
-    virtual void PrepareResults() override;
-
-    virtual bool ReadNextInterval() override;
-
-private:
-    void FillReadyResults();
-};
-
-}
diff --git a/ydb/core/tx/columnshard/columnshard__init.cpp b/ydb/core/tx/columnshard/columnshard__init.cpp
index 3e11ed9e9217..c2304240381a 100644
--- a/ydb/core/tx/columnshard/columnshard__init.cpp
+++ b/ydb/core/tx/columnshard/columnshard__init.cpp
@@ -2,7 +2,10 @@
 #include "columnshard_ttl.h"
 #include "columnshard_private_events.h"
 #include "columnshard_schema.h"
+#include "blobs_action/storages_manager/manager.h"
 #include "hooks/abstract/abstract.h"
+#include "engines/column_engine_logs.h"
+#include "export/manager/manager.h"
 #include 
 
 #include 
@@ -60,16 +63,17 @@ bool TTxInit::Precharge(TTransactionContext& txc) {
     ready = ready & Schema::Precharge(db, txc.DB.GetScheme());
     ready = ready & Schema::Precharge(db, txc.DB.GetScheme());
 
-    ready = ready && Schema::GetSpecialValue(db, Schema::EValueIds::CurrentSchemeShardId, Self->CurrentSchemeShardId);
-    ready = ready && Schema::GetSpecialValue(db, Schema::EValueIds::LastSchemaSeqNoGeneration, Self->LastSchemaSeqNo.Generation);
-    ready = ready && Schema::GetSpecialValue(db, Schema::EValueIds::LastSchemaSeqNoRound, Self->LastSchemaSeqNo.Round);
+    ready = ready && Schema::GetSpecialValueOpt(db, Schema::EValueIds::CurrentSchemeShardId, Self->CurrentSchemeShardId);
+    ready = ready && Schema::GetSpecialValueOpt(db, Schema::EValueIds::LastSchemaSeqNoGeneration, Self->LastSchemaSeqNo.Generation);
+    ready = ready && Schema::GetSpecialValueOpt(db, Schema::EValueIds::LastSchemaSeqNoRound, Self->LastSchemaSeqNo.Round);
     ready = ready && Schema::GetSpecialProtoValue(db, Schema::EValueIds::ProcessingParams, Self->ProcessingParams);
-    ready = ready && Schema::GetSpecialValue(db, Schema::EValueIds::LastWriteId, Self->LastWriteId);
-    ready = ready && Schema::GetSpecialValue(db, Schema::EValueIds::LastPlannedStep, Self->LastPlannedStep);
-    ready = ready && Schema::GetSpecialValue(db, Schema::EValueIds::LastPlannedTxId, Self->LastPlannedTxId);
-    ready = ready && Schema::GetSpecialValue(db, Schema::EValueIds::LastExportNumber, Self->LastExportNo);
-    ready = ready && Schema::GetSpecialValue(db, Schema::EValueIds::OwnerPathId, Self->OwnerPathId);
-    ready = ready && Schema::GetSpecialValue(db, Schema::EValueIds::OwnerPath, Self->OwnerPath);
+    ready = ready && Schema::GetSpecialValueOpt(db, Schema::EValueIds::LastWriteId, Self->LastWriteId);
+    ready = ready && Schema::GetSpecialValueOpt(db, Schema::EValueIds::LastPlannedStep, Self->LastPlannedStep);
+    ready = ready && Schema::GetSpecialValueOpt(db, Schema::EValueIds::LastPlannedTxId, Self->LastPlannedTxId);
+    ready = ready && Schema::GetSpecialValueOpt(db, Schema::EValueIds::LastExportNumber, Self->LastExportNo);
+    ready = ready && Schema::GetSpecialValueOpt(db, Schema::EValueIds::OwnerPathId, Self->OwnerPathId);
+    ready = ready && Schema::GetSpecialValueOpt(db, Schema::EValueIds::OwnerPath, Self->OwnerPath);
+
 
     if (!ready) {
         return false;
@@ -86,53 +90,53 @@ bool TTxInit::ReadEverything(TTransactionContext& txc, const TActorContext& ctx)
     TBlobGroupSelector dsGroupSelector(Self->Info());
     NOlap::TDbWrapper dbTable(txc.DB, &dsGroupSelector);
     {
-        ACFL_INFO("step", "TInsertTable::Load_Start");
+        ACFL_DEBUG("step", "TInsertTable::Load_Start");
         TMemoryProfileGuard g("TTxInit/InsertTable");
         auto localInsertTable = std::make_unique();
         if (!localInsertTable->Load(dbTable, TAppData::TimeProvider->Now())) {
             ACFL_ERROR("step", "TInsertTable::Load_Fails");
             return false;
         }
-        ACFL_INFO("step", "TInsertTable::Load_Finish");
+        ACFL_DEBUG("step", "TInsertTable::Load_Finish");
         Self->InsertTable.swap(localInsertTable);
     }
 
     {
-        ACFL_INFO("step", "TTxController::Load_Start");
+        ACFL_DEBUG("step", "TTxController::Load_Start");
         TMemoryProfileGuard g("TTxInit/TTxController");
         auto localTxController = std::make_unique(*Self);
          if (!localTxController->Load(txc)) {
             ACFL_ERROR("step", "TTxController::Load_Fails");
             return false;
         }
-        ACFL_INFO("step", "TTxController::Load_Finish");
+        ACFL_DEBUG("step", "TTxController::Load_Finish");
         Self->ProgressTxController.swap(localTxController);
     }
 
     {
-        ACFL_INFO("step", "TOperationsManager::Load_Start");
+        ACFL_DEBUG("step", "TOperationsManager::Load_Start");
         TMemoryProfileGuard g("TTxInit/TOperationsManager");
         auto localOperationsManager = std::make_unique();
          if (!localOperationsManager->Load(txc)) {
             ACFL_ERROR("step", "TOperationsManager::Load_Fails");
             return false;
         }
-        ACFL_INFO("step", "TOperationsManager::Load_Finish");
+        ACFL_DEBUG("step", "TOperationsManager::Load_Finish");
         Self->OperationsManager.swap(localOperationsManager);
     }
 
     {
-        TBlobManagerDb blobManagerDb(txc.DB);
-        TMemoryProfileGuard g("TTxInit/StoragesManager");
-        for (auto&& i : Self->StoragesManager->GetStorages()) {
-            if (!i.second->Load(blobManagerDb)) {
-                ACFL_ERROR("event", "storages manager load")("storage", i.first);
-                return false;
-            }
+        ACFL_DEBUG("step", "TStoragesManager::Load_Start");
+        AFL_VERIFY(Self->StoragesManager);
+        TMemoryProfileGuard g("TTxInit/NDataSharing::TStoragesManager");
+        if (!Self->StoragesManager->LoadIdempotency(txc.DB)) {
+            return false;
         }
+        ACFL_DEBUG("step", "TStoragesManager::Load_Finish");
     }
+
     {
-        ACFL_INFO("step", "TTablesManager::Load_Start");
+        ACFL_DEBUG("step", "TTablesManager::Load_Start");
         TTablesManager tManagerLocal(Self->StoragesManager, Self->TabletID());
         {
             TMemoryProfileGuard g("TTxInit/TTablesManager");
@@ -153,7 +157,7 @@ bool TTxInit::ReadEverything(TTransactionContext& txc, const TActorContext& ctx)
         Self->SetCounter(COUNTER_TABLES, Self->TablesManager.GetTables().size());
         Self->SetCounter(COUNTER_TABLE_PRESETS, Self->TablesManager.GetSchemaPresets().size());
         Self->SetCounter(COUNTER_TABLE_TTLS, Self->TablesManager.GetTtl().PathsCount());
-        ACFL_INFO("step", "TTablesManager::Load_Finish");
+        ACFL_DEBUG("step", "TTablesManager::Load_Finish");
     }
 
     {
@@ -178,6 +182,24 @@ bool TTxInit::ReadEverything(TTransactionContext& txc, const TActorContext& ctx)
         }
     }
 
+    {
+        TMemoryProfileGuard g("TTxInit/NDataSharing::TExportsManager");
+        auto local = std::make_shared();
+        if (!local->Load(txc.DB)) {
+            return false;
+        }
+        Self->ExportsManager = local;
+    }
+
+    {
+        TMemoryProfileGuard g("TTxInit/NDataSharing::TSessionsManager");
+        auto local = std::make_shared();
+        if (!local->Load(txc.DB, Self->TablesManager.GetPrimaryIndexAsOptional())) {
+            return false;
+        }
+        Self->SharingSessionsManager = local;
+    }
+
     Self->UpdateInsertTableCounters();
     Self->UpdateIndexCounters();
     Self->UpdateResourceMetrics(ctx, {});
@@ -207,6 +229,7 @@ bool TTxInit::Execute(TTransactionContext& txc, const TActorContext& ctx) {
 void TTxInit::Complete(const TActorContext& ctx) {
     Self->ProgressTxController->OnTabletInit();
     Self->SwitchToWork(ctx);
+    NYDBTest::TControllers::GetColumnShardController()->OnTabletInitCompleted(*Self);
 }
 
 class TTxUpdateSchema : public TTransactionBase {
@@ -231,8 +254,11 @@ bool TTxUpdateSchema::Execute(TTransactionContext& txc, const TActorContext&) {
         if (result.IsSuccess()) {
             NormalizerTasks = result.DetachResult();
             if (!NormalizerTasks.empty()) {
+                ACFL_WARN("normalizer_controller", Self->NormalizerController.DebugString())("tasks_count", NormalizerTasks.size());
                 break;
             }
+            NIceDb::TNiceDb db(txc.DB);
+            Self->NormalizerController.UpdateControllerState(db);
             Self->NormalizerController.SwitchNormalizer();
         } else {
             Self->NormalizerController.GetCounters().OnNormalizerFails();
@@ -253,7 +279,7 @@ void TTxUpdateSchema::Complete(const TActorContext& ctx) {
     }
 
     NOlap::TNormalizationContext nCtx;
-    nCtx.SetColumnshardActor(Self->SelfId());
+    nCtx.SetShardActor(Self->SelfId());
     nCtx.SetResourceSubscribeActor(Self->ResourceSubscribeActor);
 
     for (auto&& task : NormalizerTasks) {
@@ -280,14 +306,24 @@ class TTxApplyNormalizer : public TTransactionBase {
 bool TTxApplyNormalizer::Execute(TTransactionContext& txc, const TActorContext&) {
     NActors::TLogContextGuard gLogging = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", Self->TabletID())("event", "initialize_shard");
     AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("step", "TTxApplyNormalizer.Execute")("details", Self->NormalizerController.DebugString());
-    return Changes->Apply(txc, Self->NormalizerController);
+    if (!Changes->ApplyOnExecute(txc, Self->NormalizerController)) {
+        return false;
+    }
+
+    if (Self->NormalizerController.GetNormalizer()->GetActiveTasksCount() == 1) {
+        NIceDb::TNiceDb db(txc.DB);
+        Self->NormalizerController.UpdateControllerState(db);
+    }
+    return true;
 }
 
 void TTxApplyNormalizer::Complete(const TActorContext& ctx) {
     AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("step", "TTxApplyNormalizer.Complete")("tablet_id", Self->TabletID())("event", "initialize_shard");
     AFL_VERIFY(!Self->NormalizerController.IsNormalizationFinished())("details", Self->NormalizerController.DebugString());
+    AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("tablet_id", Self->TabletID())("event", "apply_normalizer_changes")("details", Self->NormalizerController.DebugString())("size", Changes->GetSize());
+    Changes->ApplyOnComplete(Self->NormalizerController);
     Self->NormalizerController.GetNormalizer()->OnResultReady();
-    if (Self->NormalizerController.GetNormalizer()->WaitResult()) {
+    if (Self->NormalizerController.GetNormalizer()->HasActiveTasks()) {
         return;
     }
 
@@ -328,6 +364,9 @@ bool TTxInitSchema::Execute(TTransactionContext& txc, const TActorContext&) {
         }
     }
 
+    // NIceDb::TNiceDb db(txc.DB);
+    // Self->NormalizerController.InitControllerState(db);
+
     // Enable compression for the SmallBlobs table
     const auto* smallBlobsDefaultColumnFamily = txc.DB.GetScheme().DefaultFamilyFor(Schema::SmallBlobs::TableId);
     if (!smallBlobsDefaultColumnFamily ||
@@ -352,7 +391,7 @@ bool TTxInitSchema::Execute(TTransactionContext& txc, const TActorContext&) {
 }
 
 void TTxInitSchema::Complete(const TActorContext& ctx) {
-    LOG_S_DEBUG("TxInitSchema.Complete at tablet " << Self->TabletID();)
+    LOG_S_DEBUG("TxInitSchema.Complete at tablet " << Self->TabletID(););
     Self->Execute(new TTxUpdateSchema(Self), ctx);
 }
 
diff --git a/ydb/core/tx/columnshard/columnshard__progress_tx.cpp b/ydb/core/tx/columnshard/columnshard__progress_tx.cpp
index 42597d49275d..35d867caf4e4 100644
--- a/ydb/core/tx/columnshard/columnshard__progress_tx.cpp
+++ b/ydb/core/tx/columnshard/columnshard__progress_tx.cpp
@@ -18,6 +18,7 @@ class TColumnShard::TTxProgressTx : public TTransactionBase {
     bool Execute(TTransactionContext& txc, const TActorContext& ctx) override {
         NActors::TLogContextGuard logGuard = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", Self->TabletID())("tx_state", "execute");
         Y_ABORT_UNLESS(Self->ProgressTxInFlight);
+        Self->TabletCounters->Simple()[COUNTER_TX_COMPLETE_LAG].Set(Self->GetTxCompleteLag().MilliSeconds());
 
         size_t removedCount = Self->ProgressTxController->CleanExpiredTxs(txc);
         if (removedCount > 0) {
@@ -29,6 +30,7 @@ class TColumnShard::TTxProgressTx : public TTransactionBase {
         // Process a single transaction at the front of the queue
         auto plannedItem = Self->ProgressTxController->StartPlannedTx();
         if (!!plannedItem) {
+            PlannedQueueItem.emplace(plannedItem->PlanStep, plannedItem->TxId);
             ui64 step = plannedItem->PlanStep;
             ui64 txId = plannedItem->TxId;
 
@@ -50,12 +52,16 @@ class TColumnShard::TTxProgressTx : public TTransactionBase {
         if (TxOperator) {
             TxOperator->Complete(*Self, ctx);
         }
+        if (PlannedQueueItem) {
+            Self->GetProgressTxController().CompleteRunningTx(*PlannedQueueItem);
+        }
         Self->SetupIndexation();
     }
 
 private:
     TTxController::ITransactionOperatior::TPtr TxOperator;
     const ui32 TabletTxNo;
+    std::optional PlannedQueueItem;
 };
 
 void TColumnShard::EnqueueProgressTx(const TActorContext& ctx) {
diff --git a/ydb/core/tx/columnshard/columnshard__propose_transaction.cpp b/ydb/core/tx/columnshard/columnshard__propose_transaction.cpp
index 4f04f60ff8d1..3688e74126ed 100644
--- a/ydb/core/tx/columnshard/columnshard__propose_transaction.cpp
+++ b/ydb/core/tx/columnshard/columnshard__propose_transaction.cpp
@@ -3,17 +3,17 @@
 #include "columnshard_schema.h"
 #include 
 #include 
+#include 
 
 namespace NKikimr::NColumnShard {
 
 using namespace NTabletFlatExecutor;
 
-class TTxProposeTransaction : public NTabletFlatExecutor::TTransactionBase {
+class TTxProposeTransaction : public TProposeTransactionBase {
 public:
     TTxProposeTransaction(TColumnShard* self, TEvColumnShard::TEvProposeTransaction::TPtr& ev)
-        : TBase(self)
+        : TProposeTransactionBase(self)
         , Ev(ev)
-        , TabletTxNo(++Self->TabletTxCounter)
     {}
 
     bool Execute(TTransactionContext& txc, const TActorContext& ctx) override;
@@ -22,25 +22,16 @@ class TTxProposeTransaction : public NTabletFlatExecutor::TTransactionBase Result;
 
-    TStringBuilder TxPrefix() const {
-        return TStringBuilder() << "TxProposeTransaction[" << ToString(TabletTxNo) << "] ";
-    }
-
-    TString TxSuffix() const {
-        return TStringBuilder() << " at tablet " << Self->TabletID();
-    }
-
-    void ConstructResult(TTxController::TProposeResult& proposeResult, const TTxController::TBasicTxInfo& txInfo);
+    void OnProposeResult(TTxController::TProposeResult& proposeResult, const TTxController::TTxInfo& txInfo) override;
+    void OnProposeError(TTxController::TProposeResult& proposeResult, const TTxController::TBasicTxInfo& txInfo) override;
     TTxController::TProposeResult ProposeTtlDeprecated(const TString& txBody);
 };
 
 
 bool TTxProposeTransaction::Execute(TTransactionContext& txc, const TActorContext& /*ctx*/) {
     Y_ABORT_UNLESS(Ev);
-    LOG_S_DEBUG(TxPrefix() << "execute" << TxSuffix());
 
     txc.DB.NoMoreReadsForTx();
     NIceDb::TNiceDb db(txc.DB);
@@ -48,9 +39,9 @@ bool TTxProposeTransaction::Execute(TTransactionContext& txc, const TActorContex
     Self->IncCounter(COUNTER_PREPARE_REQUEST);
 
     auto& record = Proto(Ev->Get());
-    auto txKind = record.GetTxKind();
-    ui64 txId = record.GetTxId();
-    auto& txBody = record.GetTxBody();
+    const auto txKind = record.GetTxKind();
+    const ui64 txId = record.GetTxId();
+    const auto& txBody = record.GetTxBody();
 
     if (txKind == NKikimrTxColumnShard::TX_KIND_TTL) {
         auto proposeResult = ProposeTtlDeprecated(txBody);
@@ -71,39 +62,7 @@ bool TTxProposeTransaction::Execute(TTransactionContext& txc, const TActorContex
             Y_ABORT_UNLESS(Self->CurrentSchemeShardId == record.GetSchemeShardId());
         }
     }
-
-    TTxController::TBasicTxInfo fakeTxInfo;
-    fakeTxInfo.TxId = txId;
-    fakeTxInfo.TxKind = txKind;
-
-    auto txOperator = TTxController::ITransactionOperatior::TFactory::MakeHolder(txKind, fakeTxInfo);
-    if (!txOperator || !txOperator->Parse(txBody)) {
-        TTxController::TProposeResult proposeResult(NKikimrTxColumnShard::EResultStatus::ERROR, TStringBuilder() << "Error processing commit TxId# " << txId
-                                                << (txOperator ? ". Parsing error " : ". Unknown operator for txKind"));
-        ConstructResult(proposeResult, fakeTxInfo);
-        return true;
-    }
-
-    auto txInfoPtr = Self->ProgressTxController->GetTxInfo(txId);
-    if (!!txInfoPtr) {
-        if (txInfoPtr->Source != Ev->Get()->GetSource() || txInfoPtr->Cookie != Ev->Cookie) {
-            TTxController::TProposeResult proposeResult(NKikimrTxColumnShard::EResultStatus::ERROR, TStringBuilder() << "Another commit TxId# " << txId << " has already been proposed");
-            ConstructResult(proposeResult, fakeTxInfo);
-        }
-        TTxController::TProposeResult proposeResult;
-        ConstructResult(proposeResult, *txInfoPtr);
-    } else {
-        auto proposeResult = txOperator->Propose(*Self, txc, false);
-        if (!!proposeResult) {
-            const auto& txInfo = txOperator->TxWithDeadline() ? Self->ProgressTxController->RegisterTxWithDeadline(txId, txKind, txBody, Ev->Get()->GetSource(), Ev->Cookie, txc)
-                                                              : Self->ProgressTxController->RegisterTx(txId, txKind, txBody, Ev->Get()->GetSource(), Ev->Cookie, txc);
-
-            ConstructResult(proposeResult, txInfo);
-        } else {
-            ConstructResult(proposeResult, fakeTxInfo);
-        }
-    }
-    AFL_VERIFY(!!Result);
+    ProposeTransaction(TTxController::TBasicTxInfo(txKind, txId), txBody, Ev->Get()->GetSource(), Ev->Cookie, txc);
     return true;
 }
 
@@ -143,32 +102,33 @@ TTxController::TProposeResult TTxProposeTransaction::ProposeTtlDeprecated(const
         const TInstant now = TlsActivationContext ? AppData()->TimeProvider->Now() : TInstant::Now();
         for (ui64 pathId : ttlBody.GetPathIds()) {
             NOlap::TTiering tiering;
-            tiering.Ttl = NOlap::TTierInfo::MakeTtl(now - unixTime, columnName);
+            AFL_VERIFY(tiering.Add(NOlap::TTierInfo::MakeTtl(now - unixTime, columnName)));
             pathTtls.emplace(pathId, std::move(tiering));
         }
     }
-    if (!Self->SetupTtl(pathTtls, true)) {
+    if (!Self->SetupTtl(pathTtls)) {
         return TTxController::TProposeResult(NKikimrTxColumnShard::EResultStatus::SCHEMA_ERROR, "TTL not started");
     }
+    Self->TablesManager.MutablePrimaryIndex().OnTieringModified(Self->Tiers, Self->TablesManager.GetTtl(), {});
 
     return TTxController::TProposeResult();
 }
 
-void TTxProposeTransaction::ConstructResult(TTxController::TProposeResult& proposeResult, const TTxController::TBasicTxInfo& txInfo) {
+void TTxProposeTransaction::OnProposeError(TTxController::TProposeResult& proposeResult, const TTxController::TBasicTxInfo& txInfo) {
     Result = std::make_unique(Self->TabletID(), txInfo.TxKind, txInfo.TxId, proposeResult.GetStatus(), proposeResult.GetStatusMessage());
-    if (proposeResult.GetStatus() == NKikimrTxColumnShard::EResultStatus::PREPARED) {
-        Self->IncCounter(COUNTER_PREPARE_SUCCESS);
-        Result->Record.SetMinStep(txInfo.MinStep);
-        Result->Record.SetMaxStep(txInfo.MaxStep);
-        if (Self->ProcessingParams) {
-            Result->Record.MutableDomainCoordinators()->CopyFrom(Self->ProcessingParams->GetCoordinators());
-        }
-    } else if (proposeResult.GetStatus() == NKikimrTxColumnShard::EResultStatus::SUCCESS) {
-        Self->IncCounter(COUNTER_PREPARE_SUCCESS);
-    } else {
-        Self->IncCounter(COUNTER_PREPARE_ERROR);
-        LOG_S_INFO(TxPrefix() << "error txId " << txInfo.TxId << " " << proposeResult.GetStatusMessage() << TxSuffix());
+    Self->IncCounter(COUNTER_PREPARE_ERROR);
+    AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("message", proposeResult.GetStatusMessage())("tablet_id", Self->TabletID())("tx_id", txInfo.TxId);
+}
+
+void TTxProposeTransaction::OnProposeResult(TTxController::TProposeResult& proposeResult, const TTxController::TTxInfo& txInfo) {
+    AFL_VERIFY(proposeResult.GetStatus() == NKikimrTxColumnShard::EResultStatus::PREPARED)("tx_id", txInfo.TxId)("details", proposeResult.DebugString());
+    Result = std::make_unique(Self->TabletID(), txInfo.TxKind, txInfo.TxId, proposeResult.GetStatus(), proposeResult.GetStatusMessage());
+    Result->Record.SetMinStep(txInfo.MinStep);
+    Result->Record.SetMaxStep(txInfo.MaxStep);
+    if (Self->ProcessingParams) {
+        Result->Record.MutableDomainCoordinators()->CopyFrom(Self->ProcessingParams->GetCoordinators());
     }
+    Self->IncCounter(COUNTER_PREPARE_SUCCESS);
 }
 
 void TTxProposeTransaction::Complete(const TActorContext& ctx) {
@@ -180,12 +140,6 @@ void TTxProposeTransaction::Complete(const TActorContext& ctx) {
 
 
 void TColumnShard::Handle(TEvColumnShard::TEvProposeTransaction::TPtr& ev, const TActorContext& ctx) {
-    auto& record = Proto(ev->Get());
-    auto txKind = record.GetTxKind();
-    ui64 txId = record.GetTxId();
-    LOG_S_DEBUG("ProposeTransaction " << NKikimrTxColumnShard::ETransactionKind_Name(txKind)
-        << " txId " << txId << " at tablet " << TabletID());
-
     Execute(new TTxProposeTransaction(this, ev), ctx);
 }
 
diff --git a/ydb/core/tx/columnshard/columnshard__read_base.cpp b/ydb/core/tx/columnshard/columnshard__read_base.cpp
deleted file mode 100644
index 000b8e7e63c8..000000000000
--- a/ydb/core/tx/columnshard/columnshard__read_base.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-#include 
-#include 
-#include 
-
-namespace NKikimr::NColumnShard {
-
-
-std::shared_ptr
-TTxReadBase::PrepareReadMetadata(const NOlap::TReadDescription& read,
-                                 const std::unique_ptr& insertTable,
-                                 const std::unique_ptr& index,
-                                 TString& error, const bool isReverse) const {
-    if (!insertTable || !index) {
-        return nullptr;
-    }
-
-    if (read.GetSnapshot().GetPlanStep() < Self->GetMinReadStep()) {
-        error = TStringBuilder() << "Snapshot too old: " << read.GetSnapshot();
-        return nullptr;
-    }
-
-    NOlap::TDataStorageAccessor dataAccessor(insertTable, index);
-    auto readMetadata = std::make_shared(index->GetVersionedIndex(), read.GetSnapshot(),
-                            isReverse ? NOlap::TReadMetadata::ESorting::DESC : NOlap::TReadMetadata::ESorting::ASC, read.GetProgram());
-
-    if (!readMetadata->Init(read, dataAccessor, error)) {
-        return nullptr;
-    }
-    return readMetadata;
-}
-
-bool TTxReadBase::ParseProgram(NKikimrSchemeOp::EOlapProgramType programType,
-    TString serializedProgram, NOlap::TReadDescription& read, const NOlap::IColumnResolver& columnResolver) {
-
-    AFL_VERIFY(!read.ColumnIds.size() || !read.ColumnNames.size());
-    std::vector names;
-    std::set namesChecker;
-    for (auto&& i : read.ColumnIds) {
-        names.emplace_back(columnResolver.GetColumnName(i));
-        AFL_VERIFY(namesChecker.emplace(names.back()).second);
-    }
-    if (serializedProgram.empty()) {
-        for (auto&& i : read.ColumnNames) {
-            names.emplace_back(i);
-            AFL_VERIFY(namesChecker.emplace(names.back()).second);
-        }
-        NOlap::TProgramContainer container;
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "overriden_columns")("columns", JoinSeq(",", names));
-        container.OverrideProcessingColumns(std::vector(names.begin(), names.end()));
-        read.SetProgram(std::move(container));
-        return true;
-    } else {
-        NOlap::TProgramContainer ssaProgram;
-        TString error;
-        if (!ssaProgram.Init(columnResolver, programType, serializedProgram, error)) {
-            ErrorDescription = TStringBuilder() << "Can't parse SsaProgram at " << Self->TabletID() << " / " << error;
-            return false;
-        }
-
-        if (names.size()) {
-            std::set programColumns;
-            for (auto&& i : ssaProgram.GetSourceColumns()) {
-                if (!i.second.IsGenerated()) {
-                    programColumns.emplace(i.second.GetColumnName());
-                }
-            }
-            //its possible dont use columns from filter where pk field compare with null and remove from PKFilter and program, but stay in kqp columns request
-            if (Self->TablesManager.HasPrimaryIndex()) {
-                for (auto&& i : Self->TablesManager.GetIndexInfo(read.GetSnapshot()).GetReplaceKey()->field_names()) {
-                    const TString cId(i.data(), i.size());
-                    namesChecker.erase(cId);
-                    programColumns.erase(cId);
-                }
-            }
-
-            const auto getDiffColumnsMessage = [&]() {
-                return TStringBuilder() << "ssa program has different columns with kqp request: kqp_columns=" << JoinSeq(",", namesChecker) << " vs program_columns=" << JoinSeq(",", programColumns);
-            };
-
-            if (namesChecker.size() != programColumns.size()) {
-                ErrorDescription = getDiffColumnsMessage();
-                return false;
-            }
-            for (auto&& i : namesChecker) {
-                if (!programColumns.contains(i)) {
-                    ErrorDescription = getDiffColumnsMessage();
-                    return false;
-                }
-            }
-        }
-
-        read.SetProgram(std::move(ssaProgram));
-
-        return true;
-    }
-}
-
-}
diff --git a/ydb/core/tx/columnshard/columnshard__read_base.h b/ydb/core/tx/columnshard/columnshard__read_base.h
deleted file mode 100644
index 15347cba87d0..000000000000
--- a/ydb/core/tx/columnshard/columnshard__read_base.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#pragma once
-#include "engines/reader/description.h"
-#include 
-
-namespace NKikimr::NColumnShard {
-
-/// Read portion of data in OLAP transaction
-class TTxReadBase : public TTransactionBase {
-protected:
-    explicit TTxReadBase(TColumnShard* self)
-        : TBase(self)
-    {}
-
-    std::shared_ptr PrepareReadMetadata(
-                                    const NOlap::TReadDescription& readDescription,
-                                    const std::unique_ptr& insertTable,
-                                    const std::unique_ptr& index,
-                                    TString& error, const bool isReverse) const;
-
-protected:
-    bool ParseProgram(
-        NKikimrSchemeOp::EOlapProgramType programType,
-        TString serializedProgram,
-        NOlap::TReadDescription& read,
-        const NOlap::IColumnResolver& columnResolver
-    );
-
-protected:
-    TString ErrorDescription;
-};
-
-}
diff --git a/ydb/core/tx/columnshard/columnshard__scan.cpp b/ydb/core/tx/columnshard/columnshard__scan.cpp
index e4c76ab6cccf..9e00756d2ede 100644
--- a/ydb/core/tx/columnshard/columnshard__scan.cpp
+++ b/ydb/core/tx/columnshard/columnshard__scan.cpp
@@ -1,877 +1,10 @@
-#include "blobs_reader/actor.h"
-#include "blobs_reader/events.h"
-#include "blobs_reader/read_coordinator.h"
-#include "engines/reader/read_context.h"
-#include "resource_subscriber/actor.h"
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include 
+#include "columnshard__scan.h"
+#include "columnshard.h"
+#include "columnshard_impl.h"
+#include "engines/reader/transaction/tx_scan.h"
 
 namespace NKikimr::NColumnShard {
 
-using namespace NKqp;
-using NBlobCache::TBlobRange;
-
-class TTxScan: public TTxReadBase {
-public:
-    using TReadMetadataPtr = NOlap::TReadMetadataBase::TConstPtr;
-
-    TTxScan(TColumnShard* self, TEvColumnShard::TEvScan::TPtr& ev)
-        : TTxReadBase(self)
-        , Ev(ev) {
-    }
-
-    bool Execute(TTransactionContext& txc, const TActorContext& ctx) override;
-    void Complete(const TActorContext& ctx) override;
-    TTxType GetTxType() const override { return TXTYPE_START_SCAN; }
-
-private:
-    std::shared_ptr CreateReadMetadata(NOlap::TReadDescription& read,
-        bool isIndexStats, bool isReverse, ui64 limit);
-
-private:
-    TEvColumnShard::TEvScan::TPtr Ev;
-    std::vector ReadMetadataRanges;
-};
-
-
-constexpr i64 DEFAULT_READ_AHEAD_BYTES = (i64)2 * 1024 * 1024 * 1024;
-constexpr TDuration SCAN_HARD_TIMEOUT = TDuration::Minutes(10);
-constexpr TDuration SCAN_HARD_TIMEOUT_GAP = TDuration::Seconds(5);
-
-class TColumnShardScan : public TActorBootstrapped, NArrow::IRowWriter {
-private:
-    std::shared_ptr MemoryAccessor;
-    TActorId ResourceSubscribeActorId;
-    TActorId ReadCoordinatorActorId;
-    const std::shared_ptr StoragesManager;
-public:
-    static constexpr auto ActorActivityType() {
-        return NKikimrServices::TActivity::KQP_OLAP_SCAN;
-    }
-
-public:
-    virtual void PassAway() override {
-        Send(ResourceSubscribeActorId, new TEvents::TEvPoisonPill);
-        Send(ReadCoordinatorActorId, new TEvents::TEvPoisonPill);
-        IActor::PassAway();
-    }
-
-    TColumnShardScan(const TActorId& columnShardActorId, const TActorId& scanComputeActorId,
-        const std::shared_ptr& storagesManager, const NOlap::TComputeShardingPolicy& computeShardingPolicy,
-        ui32 scanId, ui64 txId, ui32 scanGen, ui64 requestCookie,
-        ui64 tabletId, TDuration timeout, std::vector&& readMetadataList,
-        NKikimrDataEvents::EDataFormat dataFormat, const TScanCounters& scanCountersPool)
-        : StoragesManager(storagesManager)
-        , ColumnShardActorId(columnShardActorId)
-        , ScanComputeActorId(scanComputeActorId)
-        , BlobCacheActorId(NBlobCache::MakeBlobCacheServiceId())
-        , ScanId(scanId)
-        , TxId(txId)
-        , ScanGen(scanGen)
-        , RequestCookie(requestCookie)
-        , DataFormat(dataFormat)
-        , TabletId(tabletId)
-        , ReadMetadataRanges(std::move(readMetadataList))
-        , ReadMetadataIndex(0)
-        , Deadline(TInstant::Now() + (timeout ? timeout + SCAN_HARD_TIMEOUT_GAP : SCAN_HARD_TIMEOUT))
-        , ScanCountersPool(scanCountersPool)
-        , Stats(NTracing::TTraceClient::GetLocalClient("SHARD", ::ToString(TabletId)/*, "SCAN_TXID:" + ::ToString(TxId)*/))
-        , ComputeShardingPolicy(computeShardingPolicy)
-    {
-        AFL_VERIFY(ReadMetadataRanges.size() == 1);
-        KeyYqlSchema = ReadMetadataRanges[ReadMetadataIndex]->GetKeyYqlSchema();
-    }
-
-    void Bootstrap(const TActorContext& ctx) {
-        TLogContextGuard gLogging(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD_SCAN)
-            ("SelfId", SelfId())("TabletId", TabletId)("ScanId", ScanId)("TxId", TxId)("ScanGen", ScanGen)
-        );
-        auto g = Stats->MakeGuard("bootstrap");
-        ScanActorId = ctx.SelfID;
-        Schedule(Deadline, new TEvents::TEvWakeup);
-
-        Y_ABORT_UNLESS(!ScanIterator);
-        MemoryAccessor = std::make_shared(SelfId(), "CSScan/Result");
-        ResourceSubscribeActorId = ctx.Register(new NOlap::NResourceBroker::NSubscribe::TActor(TabletId, SelfId()));
-        ReadCoordinatorActorId = ctx.Register(new NOlap::NBlobOperations::NRead::TReadCoordinatorActor(TabletId, SelfId()));
-
-        std::shared_ptr context = std::make_shared(StoragesManager, ScanCountersPool,
-            ReadMetadataRanges[ReadMetadataIndex], SelfId(), ResourceSubscribeActorId, ReadCoordinatorActorId, ComputeShardingPolicy);
-        ScanIterator = ReadMetadataRanges[ReadMetadataIndex]->StartScan(context);
-
-        // propagate self actor id // TODO: FlagSubscribeOnSession ?
-        Send(ScanComputeActorId, new TEvKqpCompute::TEvScanInitActor(ScanId, ctx.SelfID, ScanGen, TabletId), IEventHandle::FlagTrackDelivery);
-
-        Become(&TColumnShardScan::StateScan);
-        ContinueProcessing();
-    }
-
-private:
-    STATEFN(StateScan) {
-        auto g = Stats->MakeGuard("processing");
-        TLogContextGuard gLogging(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD_SCAN)
-            ("SelfId", SelfId())("TabletId", TabletId)("ScanId", ScanId)("TxId", TxId)("ScanGen", ScanGen)
-        );
-        switch (ev->GetTypeRewrite()) {
-            hFunc(TEvKqpCompute::TEvScanDataAck, HandleScan);
-            hFunc(TEvKqp::TEvAbortExecution, HandleScan);
-            hFunc(TEvents::TEvUndelivered, HandleScan);
-            hFunc(TEvents::TEvWakeup, HandleScan);
-            hFunc(NConveyor::TEvExecution::TEvTaskProcessedResult, HandleScan);
-            default:
-                AFL_VERIFY(false)("unexpected_event", ev->GetTypeName());
-        }
-    }
-
-    bool ReadNextBlob() {
-        while (ScanIterator->ReadNextInterval()) {
-        }
-        return true;
-    }
-
-    void HandleScan(NConveyor::TEvExecution::TEvTaskProcessedResult::TPtr& ev) {
-        --InFlightReads;
-        auto g = Stats->MakeGuard("task_result");
-        if (ev->Get()->GetErrorMessage()) {
-            ACFL_ERROR("event", "TEvTaskProcessedResult")("error", ev->Get()->GetErrorMessage());
-            SendScanError("task_error:" + ev->Get()->GetErrorMessage());
-            Finish();
-        } else {
-            ACFL_DEBUG("event", "TEvTaskProcessedResult");
-            auto t = static_pointer_cast(ev->Get()->GetResult());
-            Y_DEBUG_ABORT_UNLESS(dynamic_pointer_cast(ev->Get()->GetResult()));
-            if (!ScanIterator->Finished()) {
-                ScanIterator->Apply(t);
-            }
-        }
-        ContinueProcessing();
-    }
-
-    void HandleScan(TEvKqpCompute::TEvScanDataAck::TPtr& ev) {
-        auto g = Stats->MakeGuard("ack");
-        Y_ABORT_UNLESS(!AckReceivedInstant);
-        AckReceivedInstant = TMonotonic::Now();
-
-        Y_ABORT_UNLESS(ev->Get()->Generation == ScanGen);
-
-        ChunksLimiter = TChunksLimiter(ev->Get()->FreeSpace, ev->Get()->MaxChunksCount);
-        Y_ABORT_UNLESS(ev->Get()->MaxChunksCount == 1);
-        ACFL_DEBUG("event", "TEvScanDataAck")("info", ChunksLimiter.DebugString());
-        if (ScanIterator) {
-            if (!!ScanIterator->GetAvailableResultsCount() && !*ScanIterator->GetAvailableResultsCount()) {
-                ScanCountersPool.OnEmptyAck();
-            } else {
-                ScanCountersPool.OnNotEmptyAck();
-            }
-        }
-        ContinueProcessing();
-    }
-
-    // Returns true if it was able to produce new batch
-    bool ProduceResults() noexcept {
-        auto g = Stats->MakeGuard("ProduceResults");
-        TLogContextGuard gLogging(NActors::TLogContextBuilder::Build()("method", "produce result"));
-
-        ACFL_DEBUG("stage", "start")("iterator", ScanIterator->DebugString());
-        Y_ABORT_UNLESS(!Finished);
-        Y_ABORT_UNLESS(ScanIterator);
-
-        if (ScanIterator->Finished()) {
-            ACFL_DEBUG("stage", "scan iterator is finished")("iterator", ScanIterator->DebugString());
-            return false;
-        }
-
-        if (!ChunksLimiter.HasMore()) {
-            ScanIterator->PrepareResults();
-            ACFL_DEBUG("stage", "bytes limit exhausted")("limit", ChunksLimiter.DebugString());
-            return false;
-        }
-
-        auto resultOpt = ScanIterator->GetBatch();
-        if (!resultOpt) {
-            ACFL_DEBUG("stage", "no data is ready yet")("iterator", ScanIterator->DebugString());
-            return false;
-        }
-        auto& result = *resultOpt;
-        if (!result.ErrorString.empty()) {
-            ACFL_ERROR("stage", "got error")("iterator", ScanIterator->DebugString())("message", result.ErrorString);
-            SendAbortExecution(TString(result.ErrorString.data(), result.ErrorString.size()));
-
-            ScanIterator.reset();
-            Finish();
-            return false;
-        }
-
-        if (!result.GetRecordsCount()) {
-            ACFL_DEBUG("stage", "got empty batch")("iterator", ScanIterator->DebugString());
-            return true;
-        }
-
-        auto& shardedBatch = result.GetShardedBatch();
-        auto batch = shardedBatch.GetRecordBatch();
-        int numRows = batch->num_rows();
-        int numColumns = batch->num_columns();
-        ACFL_DEBUG("stage", "ready result")("iterator", ScanIterator->DebugString())("columns", numColumns)("rows", result.GetRecordsCount());
-
-        AFL_VERIFY(DataFormat == NKikimrDataEvents::FORMAT_ARROW);
-        {
-            MakeResult(0);
-            if (shardedBatch.IsSharded()) {
-                AFL_INFO(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "compute_sharding_success")("count", shardedBatch.GetSplittedByShards().size())("info", ComputeShardingPolicy.DebugString());
-                Result->SplittedBatches = shardedBatch.GetSplittedByShards();
-                Result->ArrowBatch = shardedBatch.GetRecordBatch();
-            } else {
-                if (ComputeShardingPolicy.IsEnabled()) {
-                    AFL_WARN(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "compute_sharding_problems")("info", ComputeShardingPolicy.DebugString());
-                }
-                Result->ArrowBatch = shardedBatch.GetRecordBatch();
-            }
-            Rows += batch->num_rows();
-            Bytes += NArrow::GetBatchDataSize(batch);
-            ACFL_DEBUG("stage", "data_format")("batch_size", NArrow::GetBatchDataSize(batch))("num_rows", numRows)("batch_columns", JoinSeq(",", batch->schema()->field_names()));
-        }
-        if (CurrentLastReadKey) {
-            NOlap::NIndexedReader::TSortableBatchPosition pNew(result.GetLastReadKey(), 0, result.GetLastReadKey()->schema()->field_names(), {}, false);
-            NOlap::NIndexedReader::TSortableBatchPosition pOld(CurrentLastReadKey, 0, CurrentLastReadKey->schema()->field_names(), {}, false);
-            AFL_VERIFY(pOld < pNew)("old", pOld.DebugJson().GetStringRobust())("new", pNew.DebugJson().GetStringRobust());
-        }
-        CurrentLastReadKey = result.GetLastReadKey();
-        
-        Result->LastKey = ConvertLastKey(result.GetLastReadKey());
-        SendResult(false, false);
-        ACFL_DEBUG("stage", "finished")("iterator", ScanIterator->DebugString());
-        return true;
-    }
-
-    void ContinueProcessingStep() {
-        if (!ScanIterator) {
-            ACFL_DEBUG("event", "ContinueProcessingStep")("stage", "iterator is not initialized");
-            return;
-        }
-        const bool hasAck = !!AckReceivedInstant;
-        // Send new results if there is available capacity
-        while (ScanIterator && ProduceResults()) {
-        }
-
-        // Switch to the next range if the current one is finished
-        if (ScanIterator && ScanIterator->Finished() && hasAck) {
-            NextReadMetadata();
-        }
-
-        if (ScanIterator) {
-            // Make read-ahead requests for the subsequent blobs
-            ReadNextBlob();
-        }
-    }
-
-    void ContinueProcessing() {
-        const i64 maxSteps = ReadMetadataRanges.size();
-        for (i64 step = 0; step <= maxSteps; ++step) {
-            ContinueProcessingStep();
-            if  (!ScanIterator || !ChunksLimiter.HasMore() || InFlightReads || MemoryAccessor->InWaiting() || ScanCountersPool.InWaiting()) {
-                return;
-            }
-        }
-        ScanCountersPool.Hanging->Add(1);
-        // The loop has finished without any progress!
-        LOG_ERROR_S(*TlsActivationContext, NKikimrServices::TX_COLUMNSHARD_SCAN,
-            "Scan " << ScanActorId << " is hanging"
-            << " txId: " << TxId << " scanId: " << ScanId << " gen: " << ScanGen << " tablet: " << TabletId << " debug: " << ScanIterator->DebugString());
-        Y_DEBUG_ABORT_UNLESS(false);
-    }
-
-    void HandleScan(TEvKqp::TEvAbortExecution::TPtr& ev) noexcept {
-        auto& msg = ev->Get()->Record;
-        const TString reason = ev->Get()->GetIssues().ToOneLineString();
-
-        auto prio = msg.GetStatusCode() == NYql::NDqProto::StatusIds::SUCCESS ? NActors::NLog::PRI_DEBUG : NActors::NLog::PRI_WARN;
-        LOG_LOG_S(*TlsActivationContext, prio, NKikimrServices::TX_COLUMNSHARD_SCAN,
-            "Scan " << ScanActorId << " got AbortExecution"
-            << " txId: " << TxId << " scanId: " << ScanId << " gen: " << ScanGen << " tablet: " << TabletId
-            << " code: " << NYql::NDqProto::StatusIds_StatusCode_Name(msg.GetStatusCode())
-            << " reason: " << reason);
-
-        AbortReason = std::move(reason);
-        Finish();
-    }
-
-    void HandleScan(TEvents::TEvUndelivered::TPtr& ev) {
-        ui32 eventType = ev->Get()->SourceType;
-        switch (eventType) {
-            case TEvKqpCompute::TEvScanInitActor::EventType:
-                AbortReason = "init failed";
-                break;
-            case TEvKqpCompute::TEvScanData::EventType:
-                AbortReason = "failed to send data batch";
-                break;
-        }
-
-        LOG_WARN_S(*TlsActivationContext, NKikimrServices::TX_COLUMNSHARD_SCAN,
-            "Scan " << ScanActorId << " undelivered event: " << eventType
-            << " txId: " << TxId << " scanId: " << ScanId << " gen: " << ScanGen << " tablet: " << TabletId
-            << " reason: " << ev->Get()->Reason
-            << " description: " << AbortReason);
-
-        Finish();
-    }
-
-    void HandleScan(TEvents::TEvWakeup::TPtr& /*ev*/) {
-        LOG_ERROR_S(*TlsActivationContext, NKikimrServices::TX_COLUMNSHARD_SCAN,
-            "Scan " << ScanActorId << " guard execution timeout"
-            << " txId: " << TxId << " scanId: " << ScanId << " gen: " << ScanGen << " tablet: " << TabletId);
-
-        Finish();
-    }
-
-private:
-    void MakeResult(size_t reserveRows = 0) {
-        if (!Finished && !Result) {
-            Result = MakeHolder(ScanId, ScanGen);
-            if (reserveRows) {
-                Y_ABORT_UNLESS(DataFormat != NKikimrDataEvents::FORMAT_ARROW);
-                Result->Rows.reserve(reserveRows);
-            }
-        }
-    }
-
-    void NextReadMetadata() {
-        auto g = Stats->MakeGuard("NextReadMetadata");
-        if (++ReadMetadataIndex == ReadMetadataRanges.size()) {
-            // Send empty batch with "finished" flag
-            MakeResult();
-            SendResult(false, true);
-            ScanIterator.reset();
-            return Finish();
-        }
-
-        auto context = std::make_shared(StoragesManager, ScanCountersPool, ReadMetadataRanges[ReadMetadataIndex], SelfId(),
-            ResourceSubscribeActorId, ReadCoordinatorActorId, ComputeShardingPolicy);
-        ScanIterator = ReadMetadataRanges[ReadMetadataIndex]->StartScan(context);
-    }
-
-    void AddRow(const TConstArrayRef& row) override {
-        Result->Rows.emplace_back(TOwnedCellVec::Make(row));
-        ++Rows;
-
-        // NOTE: Some per-row overhead to deal with the case when no columns were requested
-        Bytes += std::max((ui64)8, (ui64)Result->Rows.back().DataSize());
-    }
-
-    TOwnedCellVec ConvertLastKey(const std::shared_ptr& lastReadKey) {
-        Y_ABORT_UNLESS(lastReadKey, "last key must be passed");
-
-        struct TSingeRowWriter : public IRowWriter {
-            TOwnedCellVec Row;
-            bool Done = false;
-            void AddRow(const TConstArrayRef& row) override {
-                Y_ABORT_UNLESS(!Done);
-                Row = TOwnedCellVec::Make(row);
-                Done = true;
-            }
-        } singleRowWriter;
-        NArrow::TArrowToYdbConverter converter(KeyYqlSchema, singleRowWriter);
-        TString errStr;
-        bool ok = converter.Process(*lastReadKey, errStr);
-        Y_ABORT_UNLESS(ok, "%s", errStr.c_str());
-
-        Y_ABORT_UNLESS(singleRowWriter.Done);
-        return singleRowWriter.Row;
-    }
-
-    class TScanStatsOwner: public NKqp::TEvKqpCompute::IShardScanStats {
-    private:
-        YDB_READONLY_DEF(NOlap::TReadStats, Stats);
-    public:
-        TScanStatsOwner(const NOlap::TReadStats& stats)
-            : Stats(stats) {
-
-        }
-
-        virtual THashMap GetMetrics() const override {
-            THashMap result;
-            result["compacted_bytes"] = Stats.CompactedPortionsBytes;
-            result["inserted_bytes"] = Stats.InsertedPortionsBytes;
-            result["committed_bytes"] = Stats.CommittedPortionsBytes;
-            return result;
-        }
-    };
-
-    bool SendResult(bool pageFault, bool lastBatch) {
-        if (Finished) {
-            return true;
-        }
-
-        Result->PageFault = pageFault;
-        Result->PageFaults = PageFaults;
-        Result->Finished = lastBatch;
-        if (ScanIterator) {
-            Result->AvailablePacks = ScanIterator->GetAvailableResultsCount();
-        }
-        TDuration totalElapsedTime = TDuration::Seconds(GetElapsedTicksAsSeconds());
-        // Result->TotalTime = totalElapsedTime - LastReportedElapsedTime;
-        // TODO: Result->CpuTime = ...
-        LastReportedElapsedTime = totalElapsedTime;
-
-        PageFaults = 0;
-
-        LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::TX_COLUMNSHARD_SCAN,
-            "Scan " << ScanActorId << " send ScanData to " << ScanComputeActorId
-            << " txId: " << TxId << " scanId: " << ScanId << " gen: " << ScanGen << " tablet: " << TabletId
-            << " bytes: " << Bytes << " rows: " << Rows << " page faults: " << Result->PageFaults
-            << " finished: " << Result->Finished << " pageFault: " << Result->PageFault
-            << " arrow schema:\n" << (Result->ArrowBatch ? Result->ArrowBatch->schema()->ToString() : ""));
-
-        Finished = Result->Finished;
-        if (Finished) {
-            ALS_INFO(NKikimrServices::TX_COLUMNSHARD_SCAN) <<
-                "Scanner finished " << ScanActorId << " and sent to " << ScanComputeActorId
-                << " packs: " << PacksSum << " txId: " << TxId << " scanId: " << ScanId << " gen: " << ScanGen << " tablet: " << TabletId
-                << " bytes: " << Bytes << "/" << BytesSum << " rows: " << Rows << "/" << RowsSum << " page faults: " << Result->PageFaults
-                << " finished: " << Result->Finished << " pageFault: " << Result->PageFault
-                << " stats:" << Stats->ToJson() << ";iterator:" << (ScanIterator ? ScanIterator->DebugString(false) : "NO");
-            Result->StatsOnFinished = std::make_shared(ScanIterator->GetStats());
-        } else {
-            Y_ABORT_UNLESS(ChunksLimiter.Take(Bytes));
-            Result->RequestedBytesLimitReached = !ChunksLimiter.HasMore();
-            Y_ABORT_UNLESS(AckReceivedInstant);
-            ScanCountersPool.AckWaitingInfo(TMonotonic::Now() - *AckReceivedInstant);
-        }
-        AckReceivedInstant.reset();
-
-        Send(ScanComputeActorId, Result.Release(), IEventHandle::FlagTrackDelivery); // TODO: FlagSubscribeOnSession ?
-
-        ReportStats();
-
-        return true;
-    }
-
-    void SendScanError(TString reason = {}) {
-        TString msg = TStringBuilder() << "Scan failed at tablet " << TabletId;
-        if (!reason.empty()) {
-            msg += ", reason: " + reason;
-        }
-
-        auto ev = MakeHolder(ScanGen, TabletId);
-        ev->Record.SetStatus(Ydb::StatusIds::GENERIC_ERROR);
-        auto issue = NYql::YqlIssue({}, NYql::TIssuesIds::KIKIMR_RESULT_UNAVAILABLE, msg);
-        NYql::IssueToMessage(issue, ev->Record.MutableIssues()->Add());
-
-        Send(ScanComputeActorId, ev.Release());
-    }
-
-    void SendAbortExecution(TString reason = {}) {
-        auto status = NYql::NDqProto::StatusIds::PRECONDITION_FAILED;
-        TString msg = TStringBuilder() << "Scan failed at tablet " << TabletId;
-        if (!reason.empty()) {
-            msg += ", reason: " + reason;
-        }
-
-        Send(ScanComputeActorId, new TEvKqp::TEvAbortExecution(status, msg));
-    }
-
-    void Finish() {
-        LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::TX_COLUMNSHARD_SCAN,
-            "Scan " << ScanActorId << " finished for tablet " << TabletId);
-
-        Send(ColumnShardActorId, new TEvPrivate::TEvReadFinished(RequestCookie, TxId));
-        ReportStats();
-        PassAway();
-    }
-
-    void ReportStats() {
-        Send(ColumnShardActorId, new TEvPrivate::TEvScanStats(Rows, Bytes));
-        Rows = 0;
-        Bytes = 0;
-    }
-
-    class TInFlightGuard: NNonCopyable::TNonCopyable {
-    private:
-        static inline TAtomicCounter InFlightGlobal = 0;
-        i64 InFlightGuarded = 0;
-    public:
-        ~TInFlightGuard() {
-            Return(InFlightGuarded);
-        }
-
-        bool CanTake() {
-            return InFlightGlobal.Val() < DEFAULT_READ_AHEAD_BYTES || !InFlightGuarded;
-        }
-
-        void Take(const ui64 bytes) {
-            InFlightGlobal.Add(bytes);
-            InFlightGuarded += bytes;
-        }
-
-        void Return(const ui64 bytes) {
-            Y_ABORT_UNLESS(InFlightGlobal.Sub(bytes) >= 0);
-            InFlightGuarded -= bytes;
-            Y_ABORT_UNLESS(InFlightGuarded >= 0);
-        }
-    };
-
-private:
-    const TActorId ColumnShardActorId;
-    const TActorId ReadBlobsActorId;
-    const TActorId ScanComputeActorId;
-    std::optional AckReceivedInstant;
-    TActorId ScanActorId;
-    TActorId BlobCacheActorId;
-    const ui32 ScanId;
-    const ui64 TxId;
-    const ui32 ScanGen;
-    const ui64 RequestCookie;
-    const NKikimrDataEvents::EDataFormat DataFormat;
-    const ui64 TabletId;
-
-    std::vector ReadMetadataRanges;
-    ui32 ReadMetadataIndex;
-    std::unique_ptr ScanIterator;
-
-    std::vector> KeyYqlSchema;
-    const TSerializedTableRange TableRange;
-    const TSmallVec SkipNullKeys;
-    const TInstant Deadline;
-    TConcreteScanCounters ScanCountersPool;
-
-    TMaybe AbortReason;
-
-    TChunksLimiter ChunksLimiter;
-    THolder Result;
-    std::shared_ptr CurrentLastReadKey;
-    i64 InFlightReads = 0;
-    bool Finished = false;
-
-    class TBlobStats {
-    private:
-        ui64 PartsCount = 0;
-        ui64 Bytes = 0;
-        TDuration ReadingDurationSum;
-        TDuration ReadingDurationMax;
-        NMonitoring::THistogramPtr BlobDurationsCounter;
-        NMonitoring::THistogramPtr ByteDurationsCounter;
-    public:
-        TBlobStats(const NMonitoring::THistogramPtr blobDurationsCounter, const NMonitoring::THistogramPtr byteDurationsCounter)
-            : BlobDurationsCounter(blobDurationsCounter)
-            , ByteDurationsCounter(byteDurationsCounter)
-        {
-
-        }
-        void Received(const NBlobCache::TBlobRange& br, const TDuration d) {
-            ReadingDurationSum += d;
-            ReadingDurationMax = Max(ReadingDurationMax, d);
-            ++PartsCount;
-            Bytes += br.Size;
-            BlobDurationsCounter->Collect(d.MilliSeconds());
-            ByteDurationsCounter->Collect((i64)d.MilliSeconds(), br.Size);
-        }
-        TString DebugString() const {
-            TStringBuilder sb;
-            if (PartsCount) {
-                sb << "p_count=" << PartsCount << ";";
-                sb << "bytes=" << Bytes << ";";
-                sb << "d_avg=" << ReadingDurationSum / PartsCount << ";";
-                sb << "d_max=" << ReadingDurationMax << ";";
-            } else {
-                sb << "NO_BLOBS;";
-            }
-            return sb;
-        }
-    };
-
-    NTracing::TTraceClientGuard Stats;
-    const NOlap::TComputeShardingPolicy ComputeShardingPolicy;
-    ui64 Rows = 0;
-    ui64 BytesSum = 0;
-    ui64 RowsSum = 0;
-    ui64 PacksSum = 0;
-    ui64 Bytes = 0;
-    ui32 PageFaults = 0;
-    TDuration LastReportedElapsedTime;
-};
-
-static bool FillPredicatesFromRange(NOlap::TReadDescription& read, const ::NKikimrTx::TKeyRange& keyRange,
-                                    const std::vector>& ydbPk, ui64 tabletId, const NOlap::TIndexInfo* indexInfo, TString& error) {
-    TSerializedTableRange range(keyRange);
-    auto fromPredicate = std::make_shared();
-    auto toPredicate = std::make_shared();
-    std::tie(*fromPredicate, *toPredicate) = RangePredicates(range, ydbPk);
-
-    LOG_S_DEBUG("TTxScan range predicate. From key size: " << range.From.GetCells().size()
-        << " To key size: " << range.To.GetCells().size()
-        << " greater predicate over columns: " << fromPredicate->ToString()
-        << " less predicate over columns: " << toPredicate->ToString()
-        << " at tablet " << tabletId);
-
-    if (!read.PKRangesFilter.Add(fromPredicate, toPredicate, indexInfo)) {
-        error = "Error building filter";
-        return false;
-    }
-    return true;
-}
-
-std::shared_ptr
-PrepareStatsReadMetadata(ui64 tabletId, const NOlap::TReadDescription& read, const std::unique_ptr& index, TString& error, const bool isReverse) {
-    THashSet readColumnIds(read.ColumnIds.begin(), read.ColumnIds.end());
-    for (auto& [id, name] : read.GetProgram().GetSourceColumns()) {
-        readColumnIds.insert(id);
-    }
-
-    for (ui32 colId : readColumnIds) {
-        if (!PrimaryIndexStatsSchema.Columns.contains(colId)) {
-            error = Sprintf("Columnd id %" PRIu32 " not found", colId);
-            return {};
-        }
-    }
-
-    auto out = std::make_shared(tabletId,
-                isReverse ? NOlap::TReadStatsMetadata::ESorting::DESC : NOlap::TReadStatsMetadata::ESorting::ASC,
-                read.GetProgram(), index ? index->GetVersionedIndex().GetSchema(read.GetSnapshot()) : nullptr, read.GetSnapshot());
-
-    out->SetPKRangesFilter(read.PKRangesFilter);
-    out->ReadColumnIds.assign(readColumnIds.begin(), readColumnIds.end());
-    out->ResultColumnIds = read.ColumnIds;
-
-    const NOlap::TColumnEngineForLogs* logsIndex = dynamic_cast(index.get());
-    if (!index || !logsIndex) {
-        return out;
-    }
-    THashMap> portionsInUse;
-    const auto predStatSchema = [](const std::shared_ptr& l, const std::shared_ptr& r) {
-        return std::tuple(l->GetPathId(), l->GetPortionId()) < std::tuple(r->GetPathId(), r->GetPortionId());
-    };
-    for (auto&& filter : read.PKRangesFilter) {
-        const ui64 fromPathId = *filter.GetPredicateFrom().Get(0, 0, 1);
-        const ui64 toPathId = *filter.GetPredicateTo().Get(0, 0, Max());
-        if (read.TableName.EndsWith(NOlap::TIndexInfo::TABLE_INDEX_STATS_TABLE)) {
-            if (fromPathId <= read.PathId && toPathId >= read.PathId) {
-                auto pathInfo = logsIndex->GetGranuleOptional(read.PathId);
-                if (!pathInfo) {
-                    continue;
-                }
-                for (auto&& p : pathInfo->GetPortions()) {
-                    if (portionsInUse[read.PathId].emplace(p.first).second) {
-                        out->IndexPortions.emplace_back(p.second);
-                    }
-                }
-            }
-            std::sort(out->IndexPortions.begin(), out->IndexPortions.end(), predStatSchema);
-        } else if (read.TableName.EndsWith(NOlap::TIndexInfo::STORE_INDEX_STATS_TABLE)) {
-            auto pathInfos = logsIndex->GetTables(fromPathId, toPathId);
-            for (auto&& pathInfo: pathInfos) {
-                for (auto&& p: pathInfo->GetPortions()) {
-                    if (portionsInUse[p.second->GetPathId()].emplace(p.first).second) {
-                        out->IndexPortions.emplace_back(p.second);
-                    }
-                }
-            }
-            std::sort(out->IndexPortions.begin(), out->IndexPortions.end(), predStatSchema);
-        }
-    }
-
-    return out;
-}
-
-std::shared_ptr TTxScan::CreateReadMetadata(NOlap::TReadDescription& read,
-    bool indexStats, bool isReverse, ui64 itemsLimit)
-{
-    std::shared_ptr metadata;
-    if (indexStats) {
-        metadata = PrepareStatsReadMetadata(Self->TabletID(), read, Self->TablesManager.GetPrimaryIndex(), ErrorDescription, isReverse);
-    } else {
-        metadata = PrepareReadMetadata(read, Self->InsertTable, Self->TablesManager.GetPrimaryIndex(),
-                                       ErrorDescription, isReverse);
-    }
-
-    if (!metadata) {
-        return nullptr;
-    }
-
-    if (itemsLimit) {
-        metadata->Limit = itemsLimit;
-    }
-
-    return metadata;
-}
-
-
-bool TTxScan::Execute(TTransactionContext& txc, const TActorContext& /*ctx*/) {
-    Y_UNUSED(txc);
-
-    auto& record = Ev->Get()->Record;
-    const auto& snapshot = record.GetSnapshot();
-    const auto scanId = record.GetScanId();
-    const ui64 txId = record.GetTxId();
-
-    LOG_S_DEBUG("TTxScan prepare txId: " << txId << " scanId: " << scanId << " at tablet " << Self->TabletID());
-
-    ui64 itemsLimit = record.HasItemsLimit() ? record.GetItemsLimit() : 0;
-
-    NOlap::TReadDescription read(NOlap::TSnapshot(snapshot.GetStep(), snapshot.GetTxId()), record.GetReverse());
-    read.PathId = record.GetLocalPathId();
-    read.ReadNothing = !(Self->TablesManager.HasTable(read.PathId));
-    read.TableName = record.GetTablePath();
-    bool isIndexStats = read.TableName.EndsWith(NOlap::TIndexInfo::STORE_INDEX_STATS_TABLE) ||
-        read.TableName.EndsWith(NOlap::TIndexInfo::TABLE_INDEX_STATS_TABLE);
-    read.ColumnIds.assign(record.GetColumnTags().begin(), record.GetColumnTags().end());
-    read.StatsMode = record.GetStatsMode();
-
-    const NOlap::TIndexInfo* indexInfo = nullptr;
-    if (!isIndexStats) {
-        indexInfo = &(Self->TablesManager.GetIndexInfo(NOlap::TSnapshot(snapshot.GetStep(), snapshot.GetTxId())));
-    }
-
-    bool parseResult;
-
-    if (!isIndexStats) {
-        TIndexColumnResolver columnResolver(*indexInfo);
-        parseResult = ParseProgram(record.GetOlapProgramType(), record.GetOlapProgram(), read, columnResolver);
-    } else {
-        TStatsColumnResolver columnResolver;
-        parseResult = ParseProgram(record.GetOlapProgramType(), record.GetOlapProgram(), read, columnResolver);
-    }
-
-    if (!parseResult) {
-        return true;
-    }
-
-    if (!record.RangesSize()) {
-        auto range = CreateReadMetadata(read, isIndexStats, record.GetReverse(), itemsLimit);
-        if (range) {
-            ReadMetadataRanges = {range};
-        }
-        return true;
-    }
-
-    ReadMetadataRanges.reserve(record.RangesSize());
-
-    auto ydbKey = isIndexStats ?
-        NOlap::GetColumns(PrimaryIndexStatsSchema, PrimaryIndexStatsSchema.KeyColumns) :
-        indexInfo->GetPrimaryKeyColumns();
-
-    for (auto& range: record.GetRanges()) {
-        if (!FillPredicatesFromRange(read, range, ydbKey, Self->TabletID(), isIndexStats ? nullptr : indexInfo, ErrorDescription)) {
-            ReadMetadataRanges.clear();
-            return true;
-        }
-    }
-    {
-        auto newRange = CreateReadMetadata(read, isIndexStats, record.GetReverse(), itemsLimit);
-        if (!newRange) {
-            ReadMetadataRanges.clear();
-            return true;
-        }
-        ReadMetadataRanges.emplace_back(newRange);
-    }
-    Y_ABORT_UNLESS(ReadMetadataRanges.size() == 1);
-
-    return true;
-}
-
-template 
-struct TContainerPrinter {
-    const T& Ref;
-
-    TContainerPrinter(const T& ref)
-        : Ref(ref)
-    {}
-
-    friend IOutputStream& operator << (IOutputStream& out, const TContainerPrinter& cont) {
-        for (auto& ptr : cont.Ref) {
-            out << *ptr << " ";
-        }
-        return out;
-    }
-};
-
-void TTxScan::Complete(const TActorContext& ctx) {
-    auto& request = Ev->Get()->Record;
-    auto scanComputeActor = Ev->Sender;
-    const auto& snapshot = request.GetSnapshot();
-    const auto scanId = request.GetScanId();
-    const ui64 txId = request.GetTxId();
-    const ui32 scanGen = request.GetGeneration();
-    TString table = request.GetTablePath();
-    auto dataFormat = request.GetDataFormat();
-    const TDuration timeout = TDuration::MilliSeconds(request.GetTimeoutMs());
-    if (scanGen > 1) {
-        Self->IncCounter(COUNTER_SCAN_RESTARTED);
-    }
-
-    TStringStream detailedInfo;
-    if (IS_LOG_PRIORITY_ENABLED(NActors::NLog::PRI_TRACE, NKikimrServices::TX_COLUMNSHARD)) {
-        detailedInfo << " read metadata: (" << TContainerPrinter(ReadMetadataRanges) << ")" << " req: " << request;
-    }
-    if (ReadMetadataRanges.empty()) {
-        LOG_S_DEBUG("TTxScan failed "
-                << " txId: " << txId
-                << " scanId: " << scanId
-                << " gen: " << scanGen
-                << " table: " << table
-                << " snapshot: " << snapshot
-                << " timeout: " << timeout
-                << detailedInfo.Str()
-                << " at tablet " << Self->TabletID());
-
-        auto ev = MakeHolder(scanGen, Self->TabletID());
-
-        ev->Record.SetStatus(Ydb::StatusIds::BAD_REQUEST);
-        auto issue = NYql::YqlIssue({}, NYql::TIssuesIds::KIKIMR_BAD_REQUEST, TStringBuilder()
-            << "Table " << table << " (shard " << Self->TabletID() << ") scan failed, reason: " << ErrorDescription ? ErrorDescription : "unknown error");
-        NYql::IssueToMessage(issue, ev->Record.MutableIssues()->Add());
-
-        ctx.Send(scanComputeActor, ev.Release());
-        return;
-    }
-
-    ui64 requestCookie = Self->InFlightReadsTracker.AddInFlightRequest(ReadMetadataRanges);
-    auto statsDelta = Self->InFlightReadsTracker.GetSelectStatsDelta();
-
-    Self->IncCounter(COUNTER_READ_INDEX_PORTIONS, statsDelta.Portions);
-    Self->IncCounter(COUNTER_READ_INDEX_BLOBS, statsDelta.Blobs);
-    Self->IncCounter(COUNTER_READ_INDEX_ROWS, statsDelta.Rows);
-    Self->IncCounter(COUNTER_READ_INDEX_BYTES, statsDelta.Bytes);
-
-    NOlap::TComputeShardingPolicy shardingPolicy;
-    AFL_VERIFY(shardingPolicy.DeserializeFromProto(request.GetComputeShardingPolicy()));
-
-    auto scanActor = ctx.Register(new TColumnShardScan(Self->SelfId(), scanComputeActor, Self->GetStoragesManager(),
-        shardingPolicy, scanId, txId, scanGen, requestCookie, Self->TabletID(), timeout, std::move(ReadMetadataRanges), dataFormat, Self->ScanCounters));
-
-    LOG_S_DEBUG("TTxScan starting " << scanActor
-                << " txId: " << txId
-                << " scanId: " << scanId
-                << " gen: " << scanGen
-                << " table: " << table
-                << " snapshot: " << snapshot
-                << " timeout: " << timeout
-                << detailedInfo.Str()
-                << " at tablet " << Self->TabletID());
-}
-
-
 void TColumnShard::Handle(TEvColumnShard::TEvScan::TPtr& ev, const TActorContext& ctx) {
     auto& record = ev->Get()->Record;
     ui64 txId = record.GetTxId();
@@ -896,61 +29,7 @@ void TColumnShard::Handle(TEvColumnShard::TEvScan::TPtr& ev, const TActorContext
     LastAccessTime = TAppData::TimeProvider->Now();
     ScanTxInFlight.insert({txId, LastAccessTime});
     SetCounter(COUNTER_SCAN_IN_FLY, ScanTxInFlight.size());
-    Execute(new TTxScan(this, ev), ctx);
-}
-
-const NKikimr::NOlap::TReadStats& TScanIteratorBase::GetStats() const {
-    return Default();
-}
-
-}
-
-namespace NKikimr::NOlap {
-
-class TCurrentBatch {
-private:
-    std::vector Results;
-    ui64 RecordsCount = 0;
-public:
-    ui64 GetRecordsCount() const {
-        return RecordsCount;
-    }
-
-    void AddChunk(TPartialReadResult&& res) {
-        RecordsCount += res.GetRecordsCount();
-        Results.emplace_back(std::move(res));
-    }
-
-    void FillResult(std::vector& result) const {
-        if (Results.empty()) {
-            return;
-        }
-        for (auto&& i : Results) {
-            result.emplace_back(std::move(i));
-        }
-    }
-};
-
-std::vector TPartialReadResult::SplitResults(std::vector&& resultsExt, const ui32 maxRecordsInResult) {
-    std::vector resultBatches;
-    TCurrentBatch currentBatch;
-    for (auto&& i : resultsExt) {
-        AFL_VERIFY(i.GetRecordsCount());
-        currentBatch.AddChunk(std::move(i));
-        if (currentBatch.GetRecordsCount() >= maxRecordsInResult) {
-            resultBatches.emplace_back(std::move(currentBatch));
-            currentBatch = TCurrentBatch();
-        }
-    }
-    if (currentBatch.GetRecordsCount()) {
-        resultBatches.emplace_back(std::move(currentBatch));
-    }
-
-    std::vector result;
-    for (auto&& i : resultBatches) {
-        i.FillResult(result);
-    }
-    return result;
+    Execute(new NOlap::NReader::TTxScan(this, ev), ctx);
 }
 
 }
diff --git a/ydb/core/tx/columnshard/columnshard__scan.h b/ydb/core/tx/columnshard/columnshard__scan.h
index 2c6dd9c52a57..6f70f09beec2 100644
--- a/ydb/core/tx/columnshard/columnshard__scan.h
+++ b/ydb/core/tx/columnshard/columnshard__scan.h
@@ -1,116 +1 @@
 #pragma once
-
-#include "blob_cache.h"
-#include "blobs_reader/task.h"
-#include "engines/reader/conveyor_task.h"
-#include "resources/memory.h"
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap {
-struct TReadStats;
-// Represents a batch of rows produced by ASC or DESC scan with applied filters and partial aggregation
-class TPartialReadResult {
-private:
-    YDB_READONLY_DEF(std::vector>, ResourcesGuards);
-    NArrow::TShardedRecordBatch ResultBatch;
-
-    // This 1-row batch contains the last key that was read while producing the ResultBatch.
-    // NOTE: it might be different from the Key of last row in ResulBatch in case of filtering/aggregation/limit
-    std::shared_ptr LastReadKey;
-
-public:
-    void Cut(const ui32 limit) {
-        ResultBatch.Cut(limit);
-    }
-
-    const arrow::RecordBatch& GetResultBatch() const {
-        return *ResultBatch.GetRecordBatch();
-    }
-
-    const std::shared_ptr& GetResultBatchPtrVerified() const {
-        return ResultBatch.GetRecordBatch();
-    }
-
-    const std::shared_ptr& GetResourcesGuardOnly() const {
-        AFL_VERIFY(ResourcesGuards.size() == 1);
-        AFL_VERIFY(!!ResourcesGuards.front());
-        return ResourcesGuards.front();
-    }
-
-    ui64 GetMemorySize() const {
-        return ResultBatch.GetMemorySize();
-    }
-
-    ui64 GetRecordsCount() const {
-        return ResultBatch.GetRecordsCount();
-    }
-
-    static std::vector SplitResults(std::vector&& resultsExt, const ui32 maxRecordsInResult);
-
-    const NArrow::TShardedRecordBatch& GetShardedBatch() const {
-        return ResultBatch;
-    }
-
-    const std::shared_ptr& GetLastReadKey() const {
-        return LastReadKey;
-    }
-
-    std::string ErrorString;
-
-    explicit TPartialReadResult(
-        const std::vector>& resourcesGuards,
-        const NArrow::TShardedRecordBatch& batch, std::shared_ptr lastKey)
-        : ResourcesGuards(resourcesGuards)
-        , ResultBatch(batch)
-        , LastReadKey(lastKey) {
-        for (auto&& i : ResourcesGuards) {
-            AFL_VERIFY(i);
-        }
-        Y_ABORT_UNLESS(ResultBatch.GetRecordsCount());
-        Y_ABORT_UNLESS(LastReadKey);
-        Y_ABORT_UNLESS(LastReadKey->num_rows() == 1);
-    }
-
-    explicit TPartialReadResult(
-        const std::shared_ptr& resourcesGuards,
-        const NArrow::TShardedRecordBatch& batch, std::shared_ptr lastKey)
-        : TPartialReadResult(std::vector>({resourcesGuards}), batch, lastKey) {
-        AFL_VERIFY(resourcesGuards);
-    }
-
-    explicit TPartialReadResult(const NArrow::TShardedRecordBatch& batch, std::shared_ptr lastKey)
-        : TPartialReadResult(std::vector>(), batch, lastKey) {
-    }
-};
-}
-
-namespace NKikimr::NColumnShard {
-
-class TScanIteratorBase {
-public:
-    virtual ~TScanIteratorBase() = default;
-
-    virtual void Apply(IDataTasksProcessor::ITask::TPtr /*processor*/) {
-
-    }
-
-    virtual const NOlap::TReadStats& GetStats() const;
-
-    virtual std::optional GetAvailableResultsCount() const {
-        return {};
-    }
-    virtual bool Finished() const = 0;
-    virtual std::optional GetBatch() = 0;
-    virtual void PrepareResults() {
-
-    }
-    virtual bool ReadNextInterval() { return false; }
-    virtual TString DebugString(const bool verbose = false) const {
-        Y_UNUSED(verbose);
-        return "NO_DATA";
-    }
-};
-
-}
diff --git a/ydb/core/tx/columnshard/columnshard__stats_scan.cpp b/ydb/core/tx/columnshard/columnshard__stats_scan.cpp
deleted file mode 100644
index c7b189983a38..000000000000
--- a/ydb/core/tx/columnshard/columnshard__stats_scan.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-#include "columnshard__stats_scan.h"
-
-namespace NKikimr::NColumnShard {
-
-std::optional TStatsIterator::GetBatch() {
-    // Take next raw batch
-    auto batch = FillStatsBatch();
-
-    // Extract the last row's PK
-    auto keyBatch = NArrow::ExtractColumns(batch, KeySchema);
-    auto lastKey = keyBatch->Slice(keyBatch->num_rows() - 1, 1);
-
-    ApplyRangePredicates(batch);
-    if (!batch->num_rows()) {
-        return {};
-    }
-    // Leave only requested columns
-    auto resultBatch = NArrow::ExtractColumns(batch, ResultSchema);
-    NArrow::TStatusValidator::Validate(ReadMetadata->GetProgram().ApplyProgram(resultBatch));
-    if (!resultBatch->num_rows()) {
-        return {};
-    }
-    NOlap::TPartialReadResult out(resultBatch, lastKey);
-
-    return std::move(out);
-}
-
-std::shared_ptr TStatsIterator::FillStatsBatch() {
-    std::vector> portions;
-    ui32 recordsCount = 0;
-    while (IndexPortions.size()) {
-        auto& i = IndexPortions.front();
-        recordsCount += i->Records.size();
-        portions.emplace_back(i);
-        IndexPortions.pop_front();
-        if (recordsCount > 10000) {
-            break;
-        }
-    }
-    std::vector allColumnIds;
-    for (const auto& c : PrimaryIndexStatsSchema.Columns) {
-        allColumnIds.push_back(c.second.Id);
-    }
-    std::sort(allColumnIds.begin(), allColumnIds.end());
-    auto schema = NOlap::MakeArrowSchema(PrimaryIndexStatsSchema.Columns, allColumnIds);
-    auto builders = NArrow::MakeBuilders(schema, recordsCount);
-
-    for (auto&& p: portions) {
-        AppendStats(builders, *p);
-    }
-
-    auto columns = NArrow::Finish(std::move(builders));
-    return arrow::RecordBatch::Make(schema, recordsCount, columns);
-}
-
-void TStatsIterator::ApplyRangePredicates(std::shared_ptr& batch) {
-    NArrow::TColumnFilter filter = ReadMetadata->GetPKRangesFilter().BuildFilter(batch);
-    filter.Apply(batch);
-}
-
-void TStatsIterator::AppendStats(const std::vector>& builders, const NOlap::TPortionInfo& portion) {
-    {
-        std::vector records;
-        for (auto&& r : portion.Records) {
-            records.emplace_back(&r);
-        }
-        if (Reverse) {
-            std::reverse(records.begin(), records.end());
-        }
-        for (auto&& r : records) {
-            NArrow::Append(*builders[0], portion.GetPathId());
-            const std::string prod = ::ToString(portion.GetMeta().Produced);
-            NArrow::Append(*builders[1], prod);
-            NArrow::Append(*builders[2], ReadMetadata->TabletId);
-            NArrow::Append(*builders[3], r->GetMeta().GetNumRowsVerified());
-            NArrow::Append(*builders[4], r->GetMeta().GetRawBytesVerified());
-            NArrow::Append(*builders[5], portion.GetPortionId());
-            NArrow::Append(*builders[6], r->GetChunkIdx());
-            NArrow::Append(*builders[7], ReadMetadata->GetColumnNameDef(r->GetColumnId()).value_or("undefined"));
-            NArrow::Append(*builders[8], r->GetColumnId());
-            std::string blobIdString = r->BlobRange.BlobId.ToStringLegacy();
-            NArrow::Append(*builders[9], blobIdString);
-            NArrow::Append(*builders[10], r->BlobRange.Offset);
-            NArrow::Append(*builders[11], r->BlobRange.Size);
-            NArrow::Append(*builders[12], !portion.HasRemoveSnapshot() || ReadMetadata->GetRequestSnapshot() < portion.GetRemoveSnapshot());
-            std::string strTierName(portion.GetMeta().GetTierName().data(), portion.GetMeta().GetTierName().size());
-            NArrow::Append(*builders[13], strTierName);
-            NArrow::Append(*builders[14], "COLUMN");
-        }
-    }
-    {
-        std::vector indexes;
-        for (auto&& r : portion.GetIndexes()) {
-            indexes.emplace_back(&r);
-        }
-        if (Reverse) {
-            std::reverse(indexes.begin(), indexes.end());
-        }
-        for (auto&& r : indexes) {
-            NArrow::Append(*builders[0], portion.GetPathId());
-            const std::string prod = ::ToString(portion.GetMeta().Produced);
-            NArrow::Append(*builders[1], prod);
-            NArrow::Append(*builders[2], ReadMetadata->TabletId);
-            NArrow::Append(*builders[3], r->GetRecordsCount());
-            NArrow::Append(*builders[4], r->GetRawBytes());
-            NArrow::Append(*builders[5], portion.GetPortionId());
-            NArrow::Append(*builders[6], r->GetChunkIdx());
-            NArrow::Append(*builders[7], ReadMetadata->GetEntityName(r->GetIndexId()).value_or("undefined"));
-            NArrow::Append(*builders[8], r->GetIndexId());
-            std::string blobIdString = r->GetBlobRange().BlobId.ToStringLegacy();
-            NArrow::Append(*builders[9], blobIdString);
-            NArrow::Append(*builders[10], r->GetBlobRange().Offset);
-            NArrow::Append(*builders[11], r->GetBlobRange().Size);
-            NArrow::Append(*builders[12], !portion.HasRemoveSnapshot() || ReadMetadata->GetRequestSnapshot() < portion.GetRemoveSnapshot());
-            std::string strTierName(portion.GetMeta().GetTierName().data(), portion.GetMeta().GetTierName().size());
-            NArrow::Append(*builders[13], strTierName);
-            NArrow::Append(*builders[14], "INDEX");
-        }
-    }
-}
-
-}
diff --git a/ydb/core/tx/columnshard/columnshard__stats_scan.h b/ydb/core/tx/columnshard/columnshard__stats_scan.h
deleted file mode 100644
index 65fe0999ea70..000000000000
--- a/ydb/core/tx/columnshard/columnshard__stats_scan.h
+++ /dev/null
@@ -1,88 +0,0 @@
-#pragma once
-
-#include "columnshard__scan.h"
-#include "columnshard_common.h"
-#include "engines/reader/read_metadata.h"
-
-#include 
-#include 
-#include 
-
-namespace NKikimr::NColumnShard {
-
-static const NTable::TScheme::TTableSchema PrimaryIndexStatsSchema = []() {
-    NTable::TScheme::TTableSchema schema;
-    NIceDb::NHelpers::TStaticSchemaFiller::Fill(schema);
-    return schema;
-}();
-
-
-class TStatsColumnResolver : public IColumnResolver {
-public:
-    TString GetColumnName(ui32 id, bool required) const override {
-        auto it = PrimaryIndexStatsSchema.Columns.find(id);
-        if (it == PrimaryIndexStatsSchema.Columns.end()) {
-            Y_ABORT_UNLESS(!required, "No column '%" PRIu32 "' in primary_index_stats", id);
-            return {};
-        }
-        return it->second.Name;
-    }
-
-    std::optional GetColumnIdOptional(const TString& name) const override {
-        auto it = PrimaryIndexStatsSchema.ColumnNames.find(name);
-        if (it == PrimaryIndexStatsSchema.ColumnNames.end()) {
-            return {};
-        } else {
-            return it->second;
-        }
-    }
-
-    const NTable::TScheme::TTableSchema& GetSchema() const override {
-        return PrimaryIndexStatsSchema;
-    }
-
-    NSsa::TColumnInfo GetDefaultColumn() const override {
-        return NSsa::TColumnInfo::Original(1, "PathId");
-    }
-};
-
-
-class TStatsIterator : public TScanIteratorBase {
-public:
-    TStatsIterator(const NOlap::TReadStatsMetadata::TConstPtr& readMetadata)
-        : ReadMetadata(readMetadata)
-        , Reverse(ReadMetadata->IsDescSorted())
-        , KeySchema(NOlap::MakeArrowSchema(PrimaryIndexStatsSchema.Columns, PrimaryIndexStatsSchema.KeyColumns))
-        , ResultSchema(NOlap::MakeArrowSchema(PrimaryIndexStatsSchema.Columns, ReadMetadata->ResultColumnIds))
-        , IndexPortions(ReadMetadata->IndexPortions)
-    {
-        if (ResultSchema->num_fields() == 0) {
-            ResultSchema = KeySchema;
-        }
-        if (Reverse) {
-            std::reverse(IndexPortions.begin(), IndexPortions.end());
-        }
-    }
-
-    bool Finished() const override {
-        return IndexPortions.empty();
-    }
-
-    std::optional GetBatch() override;
-
-private:
-    NOlap::TReadStatsMetadata::TConstPtr ReadMetadata;
-    bool Reverse{false};
-    std::shared_ptr KeySchema;
-    std::shared_ptr ResultSchema;
-
-    std::deque> IndexPortions;
-
-    std::shared_ptr FillStatsBatch();
-
-    void ApplyRangePredicates(std::shared_ptr& batch);
-
-    void AppendStats(const std::vector>& builders, const NOlap::TPortionInfo& portion);
-};
-
-}
diff --git a/ydb/core/tx/columnshard/columnshard__write.cpp b/ydb/core/tx/columnshard/columnshard__write.cpp
index 101d3a296f96..920d1bd16e0c 100644
--- a/ydb/core/tx/columnshard/columnshard__write.cpp
+++ b/ydb/core/tx/columnshard/columnshard__write.cpp
@@ -1,6 +1,7 @@
 #include "columnshard_impl.h"
 #include "blobs_action/transaction/tx_write.h"
 #include "blobs_action/transaction/tx_draft.h"
+#include "counters/columnshard.h"
 #include "operations/slice_builder.h"
 #include "operations/write_data.h"
 
@@ -11,7 +12,7 @@ namespace NKikimr::NColumnShard {
 
 using namespace NTabletFlatExecutor;
 
-void TColumnShard::OverloadWriteFail(const EOverloadStatus overloadReason, const NEvWrite::TWriteData& writeData, std::unique_ptr&& event, const TActorContext& ctx) {
+void TColumnShard::OverloadWriteFail(const EOverloadStatus overloadReason, const NEvWrite::TWriteData& writeData, const ui64 cookie, std::unique_ptr&& event, const TActorContext& ctx) {
     IncCounter(COUNTER_WRITE_FAIL);
     switch (overloadReason) {
         case EOverloadStatus::Disk:
@@ -21,19 +22,30 @@ void TColumnShard::OverloadWriteFail(const EOverloadStatus overloadReason, const
             IncCounter(COUNTER_WRITE_OVERLOAD);
             CSCounters.OnOverloadInsertTable(writeData.GetSize());
             break;
-        case EOverloadStatus::Shard:
+        case EOverloadStatus::OverloadMetadata:
             IncCounter(COUNTER_WRITE_OVERLOAD);
-            CSCounters.OnOverloadShard(writeData.GetSize());
+            CSCounters.OnOverloadMetadata(writeData.GetSize());
+            break;
+        case EOverloadStatus::ShardTxInFly:
+            IncCounter(COUNTER_WRITE_OVERLOAD);
+            CSCounters.OnOverloadShardTx(writeData.GetSize());
+            break;
+        case EOverloadStatus::ShardWritesInFly:
+            IncCounter(COUNTER_WRITE_OVERLOAD);
+            CSCounters.OnOverloadShardWrites(writeData.GetSize());
+            break;
+        case EOverloadStatus::ShardWritesSizeInFly:
+            IncCounter(COUNTER_WRITE_OVERLOAD);
+            CSCounters.OnOverloadShardWritesSize(writeData.GetSize());
             break;
         case EOverloadStatus::None:
             Y_ABORT("invalid function usage");
     }
 
-    LOG_S_INFO("Write (overload) " << writeData.GetSize() << " bytes into pathId " << writeData.GetWriteMeta().GetTableId()
-        << " overload reason: [" << overloadReason << "]"
-        << " at tablet " << TabletID());
+    AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("event", "write_overload")("size", writeData.GetSize())
+        ("path_id", writeData.GetWriteMeta().GetTableId())("reason", overloadReason);
 
-    ctx.Send(writeData.GetWriteMeta().GetSource(), event.release());
+    ctx.Send(writeData.GetWriteMeta().GetSource(), event.release(), 0, cookie);
 }
 
 TColumnShard::EOverloadStatus TColumnShard::CheckOverloaded(const ui64 tableId) const {
@@ -45,8 +57,25 @@ TColumnShard::EOverloadStatus TColumnShard::CheckOverloaded(const ui64 tableId)
         return EOverloadStatus::InsertTable;
     }
 
-    if (WritesMonitor.ShardOverloaded()) {
-        return EOverloadStatus::Shard;
+    CSCounters.OnIndexMetadataLimit(NOlap::IColumnEngine::GetMetadataLimit());
+    if (TablesManager.GetPrimaryIndex() && TablesManager.GetPrimaryIndex()->IsOverloadedByMetadata(NOlap::IColumnEngine::GetMetadataLimit())) {
+        return EOverloadStatus::OverloadMetadata;
+    }
+
+    ui64 txLimit = Settings.OverloadTxInFlight;
+    ui64 writesLimit = Settings.OverloadWritesInFlight;
+    ui64 writesSizeLimit = Settings.OverloadWritesSizeInFlight;
+    if (txLimit && Executor()->GetStats().TxInFly > txLimit) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "shard_overload")("reason", "tx_in_fly")("sum", Executor()->GetStats().TxInFly)("limit", txLimit);
+        return EOverloadStatus::ShardTxInFly;
+    }
+    if (writesLimit && WritesMonitor.GetWritesInFlight() > writesLimit) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "shard_overload")("reason", "writes_in_fly")("sum", WritesMonitor.GetWritesInFlight())("limit", writesLimit);
+        return EOverloadStatus::ShardWritesInFly;
+    }
+    if (writesSizeLimit && WritesMonitor.GetWritesSizeInFlight() > writesSizeLimit) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "shard_overload")("reason", "writes_size_in_fly")("sum", WritesMonitor.GetWritesSizeInFlight())("limit", writesSizeLimit);
+        return EOverloadStatus::ShardWritesSizeInFly;
     }
     return EOverloadStatus::None;
 }
@@ -57,7 +86,8 @@ void TColumnShard::Handle(TEvPrivate::TEvWriteBlobsResult::TPtr& ev, const TActo
     auto& putResult = ev->Get()->GetPutResult();
     OnYellowChannels(putResult);
     NOlap::TWritingBuffer& wBuffer = ev->Get()->MutableWritesBuffer();
-    auto& baseAggregations = wBuffer.GetAggregations();
+    auto baseAggregations = wBuffer.GetAggregations();
+    wBuffer.InitReplyReceived(TMonotonic::Now());
 
     auto wg = WritesMonitor.FinishWrite(wBuffer.GetSumSize(), wBuffer.GetAggregations().size());
 
@@ -70,13 +100,13 @@ void TColumnShard::Handle(TEvPrivate::TEvWriteBlobsResult::TPtr& ev, const TActo
 
             auto result = std::make_unique(TabletID(), writeMeta, NKikimrTxColumnShard::EResultStatus::ERROR);
             ctx.Send(writeMeta.GetSource(), result.release());
-            CSCounters.OnFailedWriteResponse();
+            CSCounters.OnFailedWriteResponse(EWriteFailReason::NoTable);
             wBuffer.RemoveData(aggr, StoragesManager->GetInsertOperator());
             continue;
         }
 
         if (putResult.GetPutStatus() != NKikimrProto::OK) {
-            CSCounters.OnWritePutBlobsFail((TMonotonic::Now() - writeMeta.GetWriteStartInstant()).MilliSeconds());
+            CSCounters.OnWritePutBlobsFail(TMonotonic::Now() - writeMeta.GetWriteStartInstant());
             IncCounter(COUNTER_WRITE_FAIL);
 
             auto errCode = NKikimrTxColumnShard::EResultStatus::STORAGE_ERROR;
@@ -94,19 +124,20 @@ void TColumnShard::Handle(TEvPrivate::TEvWriteBlobsResult::TPtr& ev, const TActo
             } else {
                 auto operation = OperationsManager->GetOperation((TWriteId)writeMeta.GetWriteId());
                 Y_ABORT_UNLESS(operation);
-                auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), operation->GetTxId(), NKikimrDataEvents::TEvWriteResult::STATUS_INTERNAL_ERROR, "put data fails");
-                ctx.Send(writeMeta.GetSource(), result.release());
+                auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), operation->GetLockId(), NKikimrDataEvents::TEvWriteResult::STATUS_INTERNAL_ERROR, "put data fails");
+                ctx.Send(writeMeta.GetSource(), result.release(), 0, operation->GetCookie());
             }
-            CSCounters.OnFailedWriteResponse();
+            CSCounters.OnFailedWriteResponse(EWriteFailReason::PutBlob);
             wBuffer.RemoveData(aggr, StoragesManager->GetInsertOperator());
         } else {
             const TMonotonic now = TMonotonic::Now();
-            CSCounters.OnWritePutBlobsSuccess((now - writeMeta.GetWriteStartInstant()).MilliSeconds());
-            CSCounters.OnWriteMiddle1PutBlobsSuccess((now - writeMeta.GetWriteMiddle1StartInstant()).MilliSeconds());
-            CSCounters.OnWriteMiddle2PutBlobsSuccess((now - writeMeta.GetWriteMiddle2StartInstant()).MilliSeconds());
-            CSCounters.OnWriteMiddle3PutBlobsSuccess((now - writeMeta.GetWriteMiddle3StartInstant()).MilliSeconds());
-            CSCounters.OnWriteMiddle4PutBlobsSuccess((now - writeMeta.GetWriteMiddle4StartInstant()).MilliSeconds());
-            CSCounters.OnWriteMiddle5PutBlobsSuccess((now - writeMeta.GetWriteMiddle5StartInstant()).MilliSeconds());
+            CSCounters.OnWritePutBlobsSuccess(now - writeMeta.GetWriteStartInstant());
+            CSCounters.OnWriteMiddle1PutBlobsSuccess(now - writeMeta.GetWriteMiddle1StartInstant());
+            CSCounters.OnWriteMiddle2PutBlobsSuccess(now - writeMeta.GetWriteMiddle2StartInstant());
+            CSCounters.OnWriteMiddle3PutBlobsSuccess(now - writeMeta.GetWriteMiddle3StartInstant());
+            CSCounters.OnWriteMiddle4PutBlobsSuccess(now - writeMeta.GetWriteMiddle4StartInstant());
+            CSCounters.OnWriteMiddle5PutBlobsSuccess(now - writeMeta.GetWriteMiddle5StartInstant());
+            CSCounters.OnWriteMiddle6PutBlobsSuccess(now - writeMeta.GetWriteMiddle6StartInstant());
             LOG_S_DEBUG("Write (record) into pathId " << writeMeta.GetTableId()
                 << (writeMeta.GetWriteId() ? (" writeId " + ToString(writeMeta.GetWriteId())).c_str() : "") << " at tablet " << TabletID());
 
@@ -126,6 +157,7 @@ void TColumnShard::Handle(TEvColumnShard::TEvWrite::TPtr& ev, const TActorContex
     const auto& record = Proto(ev->Get());
     const ui64 tableId = record.GetTableId();
     const ui64 writeId = record.GetWriteId();
+    const ui64 cookie = ev->Cookie;
     const TString dedupId = record.GetDedupId();
     const auto source = ev->Sender;
 
@@ -139,18 +171,20 @@ void TColumnShard::Handle(TEvColumnShard::TEvWrite::TPtr& ev, const TActorContex
         IncCounter(signalIndex);
 
         ctx.Send(source, std::make_unique(TabletID(), writeMeta, NKikimrTxColumnShard::EResultStatus::ERROR));
-        CSCounters.OnFailedWriteResponse();
         return;
     };
 
     if (!AppDataVerified().ColumnShardConfig.GetWritingEnabled()) {
         AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "skip_writing")("reason", "disabled");
+        CSCounters.OnFailedWriteResponse(EWriteFailReason::Disabled);
         return returnFail(COUNTER_WRITE_FAIL);
     }
 
     if (!TablesManager.IsReadyForWrite(tableId)) {
         LOG_S_NOTICE("Write (fail) into pathId:" << writeMeta.GetTableId() << (TablesManager.HasPrimaryIndex()? "": " no index")
             << " at tablet " << TabletID());
+
+        CSCounters.OnFailedWriteResponse(EWriteFailReason::NoTable);
         return returnFail(COUNTER_WRITE_FAIL);
     }
 
@@ -159,15 +193,17 @@ void TColumnShard::Handle(TEvColumnShard::TEvWrite::TPtr& ev, const TActorContex
     if (!arrowData->ParseFromProto(record)) {
         LOG_S_ERROR("Write (fail) " << record.GetData().size() << " bytes into pathId " << writeMeta.GetTableId()
             << " at tablet " << TabletID());
+        CSCounters.OnFailedWriteResponse(EWriteFailReason::IncorrectSchema);
         return returnFail(COUNTER_WRITE_FAIL);
     }
 
-    NEvWrite::TWriteData writeData(writeMeta, arrowData, snapshotSchema->GetIndexInfo().GetReplaceKey(), StoragesManager->GetInsertOperator()->StartWritingAction("WRITING"));
+    NEvWrite::TWriteData writeData(writeMeta, arrowData, snapshotSchema->GetIndexInfo().GetReplaceKey(),
+        StoragesManager->GetInsertOperator()->StartWritingAction(NOlap::NBlobOperations::EConsumer::WRITING));
     auto overloadStatus = CheckOverloaded(tableId);
     if (overloadStatus != EOverloadStatus::None) {
         std::unique_ptr result = std::make_unique(TabletID(), writeData.GetWriteMeta(), NKikimrTxColumnShard::EResultStatus::OVERLOADED);
-        OverloadWriteFail(overloadStatus, writeData, std::move(result), ctx);
-        CSCounters.OnFailedWriteResponse();
+        OverloadWriteFail(overloadStatus, writeData, cookie, std::move(result), ctx);
+        CSCounters.OnFailedWriteResponse(EWriteFailReason::Overload);
     } else {
         if (ui64 writeId = (ui64)HasLongTxWrite(writeMeta.GetLongTxIdUnsafe(), writeMeta.GetWritePartId())) {
             LOG_S_DEBUG("Write (duplicate) into pathId " << writeMeta.GetTableId()
@@ -179,7 +215,7 @@ void TColumnShard::Handle(TEvColumnShard::TEvWrite::TPtr& ev, const TActorContex
             auto result = std::make_unique(
                 TabletID(), writeMeta, writeId, NKikimrTxColumnShard::EResultStatus::SUCCESS);
             ctx.Send(writeMeta.GetSource(), result.release());
-            CSCounters.OnFailedWriteResponse();
+            CSCounters.OnFailedWriteResponse(EWriteFailReason::LongTxDuplication);
             return;
         }
 
@@ -195,41 +231,124 @@ void TColumnShard::Handle(TEvColumnShard::TEvWrite::TPtr& ev, const TActorContex
     }
 }
 
+class TCommitOperation {
+public:
+    using TPtr = std::shared_ptr;
+
+    bool Parse(const NEvents::TDataEvents::TEvWrite& evWrite) {
+        LockId = evWrite.Record.GetLockTxId();
+        TxId = evWrite.Record.GetTxId();
+        KqpLocks = evWrite.Record.GetLocks();
+        return !!LockId && !!TxId && KqpLocks.GetOp() == NKikimrDataEvents::TKqpLocks::Commit;
+    }
+
+private:
+    NKikimrDataEvents::TKqpLocks KqpLocks;
+    YDB_READONLY(ui64, LockId, 0);
+    YDB_READONLY(ui64, TxId, 0);
+};
+class TProposeWriteTransaction : public TProposeTransactionBase {
+public:
+    TProposeWriteTransaction(TColumnShard* self, TCommitOperation::TPtr op, const TActorId source, const ui64 cookie)
+        : TProposeTransactionBase(self)
+        , WriteCommit(op)
+        , Source(source)
+        , Cookie(cookie)
+    {}
+
+    bool Execute(TTransactionContext& txc, const TActorContext& ctx) override;
+    void Complete(const TActorContext& ctx) override;
+    TTxType GetTxType() const override { return TXTYPE_PROPOSE; }
+
+private:
+    void OnProposeResult(TTxController::TProposeResult& proposeResult, const TTxController::TTxInfo& txInfo) override;
+    void OnProposeError(TTxController::TProposeResult& proposeResult, const TTxController::TBasicTxInfo& txInfo) override;
+
+private:
+    TCommitOperation::TPtr WriteCommit;
+    TActorId Source;
+    ui64 Cookie;
+    std::unique_ptr Result;
+};
+
+bool TProposeWriteTransaction::Execute(TTransactionContext& txc, const TActorContext&) {
+    NKikimrTxColumnShard::TCommitWriteTxBody proto;
+    proto.SetLockId(WriteCommit->GetLockId());
+    TString txBody;
+    Y_ABORT_UNLESS(proto.SerializeToString(&txBody));
+    ProposeTransaction(TTxController::TBasicTxInfo(NKikimrTxColumnShard::TX_KIND_COMMIT_WRITE, WriteCommit->GetTxId()), txBody, Source, Cookie, txc);
+    return true;
+}
+
+void TProposeWriteTransaction::Complete(const TActorContext& ctx) {
+    ctx.Send(Source, Result.release(), 0, Cookie);
+}
+
+void TProposeWriteTransaction::OnProposeResult(TTxController::TProposeResult& proposeResult, const TTxController::TTxInfo& txInfo) {
+    Y_UNUSED(proposeResult);
+    Result = NEvents::TDataEvents::TEvWriteResult::BuildPrepared(Self->TabletID(), txInfo.TxId, Self->GetProgressTxController().BuildCoordinatorInfo(txInfo));
+}
+
+void TProposeWriteTransaction::OnProposeError(TTxController::TProposeResult& proposeResult, const TTxController::TBasicTxInfo& txInfo) {
+    Y_UNUSED(proposeResult);
+    Result = NEvents::TDataEvents::TEvWriteResult::BuildError(Self->TabletID(), txInfo.TxId, NKikimrDataEvents::TEvWriteResult::STATUS_INTERNAL_ERROR, proposeResult.GetStatusMessage());
+}
+
 void TColumnShard::Handle(NEvents::TDataEvents::TEvWrite::TPtr& ev, const TActorContext& ctx) {
     NActors::TLogContextGuard gLogging = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", TabletID())("event", "TEvWrite");
 
     const auto& record = ev->Get()->Record;
-    const ui64 txId = ev->Get()->GetTxId();
     const auto source = ev->Sender;
+    const auto cookie = ev->Cookie;
+    const auto behaviour = TOperationsManager::GetBehaviour(*ev->Get());
+
+    if (behaviour == EOperationBehaviour::Undefined) {
+        IncCounter(COUNTER_WRITE_FAIL);
+        auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), 0, NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, "invalid write event");
+        ctx.Send(source, result.release(), 0, cookie);
+        return;
+    }
+
+    if (behaviour == EOperationBehaviour::CommitWriteLock) {
+        auto commitOperation = std::make_shared();
+        if (!commitOperation->Parse(*ev->Get())) {
+            IncCounter(COUNTER_WRITE_FAIL);
+            auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), 0, NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, "invalid commit event");
+            ctx.Send(source, result.release(), 0, cookie);
+        }
+        Execute(new TProposeWriteTransaction(this, commitOperation, source, cookie), ctx);
+        return;
+    }
+
+    const ui64 lockId = (behaviour == EOperationBehaviour::InTxWrite) ? record.GetTxId() : record.GetLockTxId();
 
     if (record.GetOperations().size() != 1) {
         IncCounter(COUNTER_WRITE_FAIL);
-        auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), txId, NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, "only single operation is supported");
-        ctx.Send(source, result.release());
+        auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), 0, NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, "only single operation is supported");
+        ctx.Send(source, result.release(), 0, cookie);
         return;
     }
 
     const auto& operation = record.GetOperations()[0];
-
     if (operation.GetType() != NKikimrDataEvents::TEvWrite::TOperation::OPERATION_REPLACE) {
         IncCounter(COUNTER_WRITE_FAIL);
-        auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), txId, NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, "only REPLACE operation is supported");
-        ctx.Send(source, result.release());
+        auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), 0, NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, "only REPLACE operation is supported");
+        ctx.Send(source, result.release(), 0, cookie);
         return;
     }
 
     if (!operation.GetTableId().HasSchemaVersion()) {
         IncCounter(COUNTER_WRITE_FAIL);
-        auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), txId, NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, "schema version not set");
-        ctx.Send(source, result.release());
+        auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), 0, NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, "schema version not set");
+        ctx.Send(source, result.release(), 0, cookie);
         return;
     }
 
     auto schema = TablesManager.GetPrimaryIndex()->GetVersionedIndex().GetSchema(operation.GetTableId().GetSchemaVersion());
     if (!schema) {
         IncCounter(COUNTER_WRITE_FAIL);
-        auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), txId, NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, "unknown schema version");
-        ctx.Send(source, result.release());
+        auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), 0, NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, "unknown schema version");
+        ctx.Send(source, result.release(), 0, cookie);
         return;
     }
 
@@ -237,30 +356,31 @@ void TColumnShard::Handle(NEvents::TDataEvents::TEvWrite::TPtr& ev, const TActor
 
     if (!TablesManager.IsReadyForWrite(tableId)) {
         IncCounter(COUNTER_WRITE_FAIL);
-        auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), txId, NKikimrDataEvents::TEvWriteResult::STATUS_INTERNAL_ERROR, "table not writable");
-        ctx.Send(source, result.release());
+        auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), 0, NKikimrDataEvents::TEvWriteResult::STATUS_INTERNAL_ERROR, "table not writable");
+        ctx.Send(source, result.release(), 0, cookie);
         return;
     }
 
     auto arrowData = std::make_shared(schema);
-    if (!arrowData->Parse(operation, NEvWrite::TPayloadHelper(*ev->Get()))) {
+    if (!arrowData->Parse(operation, NEvWrite::TPayloadReader(*ev->Get()))) {
         IncCounter(COUNTER_WRITE_FAIL);
-        auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), txId, NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, "parsing data error");
-        ctx.Send(source, result.release());
+        auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), 0, NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, "parsing data error");
+        ctx.Send(source, result.release(), 0, cookie);
     }
 
     auto overloadStatus = CheckOverloaded(tableId);
     if (overloadStatus != EOverloadStatus::None) {
         NEvWrite::TWriteData writeData(NEvWrite::TWriteMeta(0, tableId, source), arrowData, nullptr, nullptr);
-        std::unique_ptr result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), txId, NKikimrDataEvents::TEvWriteResult::STATUS_OVERLOADED, "overload data error");
-        OverloadWriteFail(overloadStatus, writeData, std::move(result), ctx);
+        std::unique_ptr result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), 0, NKikimrDataEvents::TEvWriteResult::STATUS_OVERLOADED, "overload data error");
+        OverloadWriteFail(overloadStatus, writeData, cookie, std::move(result), ctx);
         return;
     }
 
     auto wg = WritesMonitor.RegisterWrite(arrowData->GetSize());
 
-    auto writeOperation = OperationsManager->RegisterOperation(txId);
+    auto writeOperation = OperationsManager->RegisterOperation(lockId, cookie);
     Y_ABORT_UNLESS(writeOperation);
+    writeOperation->SetBehaviour(behaviour);
     writeOperation->Start(*this, tableId, arrowData, source, ctx);
 }
 
diff --git a/ydb/core/tx/columnshard/columnshard__write_index.cpp b/ydb/core/tx/columnshard/columnshard__write_index.cpp
index fe423b8156d0..69d54a68d1bd 100644
--- a/ydb/core/tx/columnshard/columnshard__write_index.cpp
+++ b/ydb/core/tx/columnshard/columnshard__write_index.cpp
@@ -6,10 +6,34 @@
 #include "engines/changes/abstract/abstract.h"
 #include "engines/writer/compacted_blob_constructor.h"
 
+#include 
+#include 
+
 #include 
 
 namespace NKikimr::NColumnShard {
 
+class TDiskResourcesRequest: public NLimiter::IResourceRequest {
+private:
+    using TBase = NLimiter::IResourceRequest;
+    std::shared_ptr WriteController;
+    const ui64 TabletId;
+
+private:
+    virtual void DoOnResourceAllocated() override {
+        NActors::TActivationContext::AsActorContext().Register(CreateWriteActor(TabletId, WriteController, TInstant::Max()));
+    }
+
+public:
+    TDiskResourcesRequest(const std::shared_ptr& writeController, const ui64 tabletId)
+        : TBase(writeController->GetWriteVolume())
+        , WriteController(writeController)
+        , TabletId(tabletId)
+    {
+
+    }
+};
+
 void TColumnShard::Handle(TEvPrivate::TEvWriteIndex::TPtr& ev, const TActorContext& ctx) {
     auto putStatus = ev->Get()->GetPutStatus();
 
@@ -25,13 +49,16 @@ void TColumnShard::Handle(TEvPrivate::TEvWriteIndex::TPtr& ev, const TActorConte
         } else {
             ACFL_DEBUG("event", "TEvWriteIndex")("count", ev->Get()->IndexChanges->GetWritePortionsCount());
             AFL_VERIFY(ev->Get()->IndexChanges->GetWritePortionsCount());
-
-            const bool needDraftTransaction = ev->Get()->IndexChanges->GetBlobsAction().NeedDraftWritingTransaction();
+            const bool needDiskLimiter = ev->Get()->IndexChanges->NeedDiskWriteLimiter();
             auto writeController = std::make_shared(ctx.SelfID, ev->Release());
-            if (needDraftTransaction) {
+            const TConclusion needDraftTransaction = writeController->GetBlobsAction().NeedDraftWritingTransaction();
+            AFL_VERIFY(needDraftTransaction.IsSuccess())("error", needDraftTransaction.GetErrorMessage());
+            if (*needDraftTransaction) {
                 Execute(new TTxWriteDraft(this, writeController));
+            } else if (needDiskLimiter) {
+                NLimiter::TCompDiskOperator::AskResource(std::make_shared(writeController, TabletID()));
             } else {
-                ctx.Register(CreateWriteActor(TabletID(), writeController, TInstant::Max()));
+                Register(CreateWriteActor(TabletID(), writeController, TInstant::Max()));
             }
         }
     } else {
diff --git a/ydb/core/tx/columnshard/columnshard_common.cpp b/ydb/core/tx/columnshard/columnshard_common.cpp
index dfd825f3b23d..d9f0dcc5e79b 100644
--- a/ydb/core/tx/columnshard/columnshard_common.cpp
+++ b/ydb/core/tx/columnshard/columnshard_common.cpp
@@ -10,91 +10,9 @@ using EAggregate = NArrow::EAggregate;
 using TAssign = NSsa::TAssign;
 using TAggregateAssign = NSsa::TAggregateAssign;
 
-std::vector ExtractTypes(const std::vector>& columns) {
-    std::vector types;
-    types.reserve(columns.size());
-    for (auto& [name, type] : columns) {
-        types.push_back(type);
-    }
-    return types;
-}
-
-TString FromCells(const TConstArrayRef& cells, const std::vector>& columns) {
-    Y_ABORT_UNLESS(cells.size() == columns.size());
-    if (cells.empty()) {
-        return {};
-    }
-
-    std::vector types = ExtractTypes(columns);
-
-    NArrow::TArrowBatchBuilder batchBuilder;
-    batchBuilder.Reserve(1);
-    bool ok = batchBuilder.Start(columns);
-    Y_ABORT_UNLESS(ok);
-
-    batchBuilder.AddRow(NKikimr::TDbTupleRef(), NKikimr::TDbTupleRef(types.data(), cells.data(), cells.size()));
-
-    auto batch = batchBuilder.FlushBatch(false);
-    Y_ABORT_UNLESS(batch);
-    Y_ABORT_UNLESS(batch->num_columns() == (int)cells.size());
-    Y_ABORT_UNLESS(batch->num_rows() == 1);
-    return NArrow::SerializeBatchNoCompression(batch);
-}
 }
 
 using EOperation = NArrow::EOperation;
 using TPredicate = NOlap::TPredicate;
 
-std::pair RangePredicates(const TSerializedTableRange& range,
-                                                  const std::vector>& columns) {
-    std::vector leftCells;
-    std::vector> leftColumns;
-    bool leftTrailingNull = false;
-    {
-        TConstArrayRef cells = range.From.GetCells();
-        const size_t size = cells.size();
-        Y_ASSERT(size <= columns.size());
-        leftCells.reserve(size);
-        leftColumns.reserve(size);
-        for (size_t i = 0; i < size; ++i) {
-            if (!cells[i].IsNull()) {
-                leftCells.push_back(cells[i]);
-                leftColumns.push_back(columns[i]);
-                leftTrailingNull = false;
-            } else {
-                leftTrailingNull = true;
-            }
-        }
-    }
-
-    std::vector rightCells;
-    std::vector> rightColumns;
-    bool rightTrailingNull = false;
-    {
-        TConstArrayRef cells = range.To.GetCells();
-        const size_t size = cells.size();
-        Y_ASSERT(size <= columns.size());
-        rightCells.reserve(size);
-        rightColumns.reserve(size);
-        for (size_t i = 0; i < size; ++i) {
-            if (!cells[i].IsNull()) {
-                rightCells.push_back(cells[i]);
-                rightColumns.push_back(columns[i]);
-                rightTrailingNull = false;
-            } else {
-                rightTrailingNull = true;
-            }
-        }
-    }
-
-    const bool fromInclusive = range.FromInclusive || leftTrailingNull;
-    const bool toInclusive = range.ToInclusive && !rightTrailingNull;
-
-    TString leftBorder = FromCells(leftCells, leftColumns);
-    TString rightBorder = FromCells(rightCells, rightColumns);
-    return std::make_pair(
-        TPredicate(fromInclusive ? EOperation::GreaterEqual : EOperation::Greater, leftBorder, NArrow::MakeArrowSchema(leftColumns)),
-        TPredicate(toInclusive ? EOperation::LessEqual : EOperation::Less, rightBorder, NArrow::MakeArrowSchema(rightColumns)));
-}
-
 }
diff --git a/ydb/core/tx/columnshard/columnshard_common.h b/ydb/core/tx/columnshard/columnshard_common.h
index c2460be231d0..455f39a512cc 100644
--- a/ydb/core/tx/columnshard/columnshard_common.h
+++ b/ydb/core/tx/columnshard/columnshard_common.h
@@ -1,7 +1,7 @@
 #pragma once
-#include "defs.h"
-#include "engines/reader/description.h"
-#include 
+#include "engines/reader/common/description.h"
+#include "engines/predicate/predicate.h"
+
 #include 
 
 namespace NKikimr::NOlap {
@@ -10,13 +10,10 @@ namespace NKikimr::NOlap {
 
 namespace NKikimr::NColumnShard {
 
-using TReadDescription = NOlap::TReadDescription;
+using TReadDescription = NOlap::NReader::TReadDescription;
 using IColumnResolver = NOlap::IColumnResolver;
 using NOlap::TWriteId;
 
-std::pair
-RangePredicates(const TSerializedTableRange& range, const std::vector>& columns);
-
 class TBatchCache {
 public:
     using TUnifiedBlobId = NOlap::TUnifiedBlobId;
diff --git a/ydb/core/tx/columnshard/columnshard_impl.cpp b/ydb/core/tx/columnshard/columnshard_impl.cpp
index 5d5df25e8fe9..64b33bb519f1 100644
--- a/ydb/core/tx/columnshard/columnshard_impl.cpp
+++ b/ydb/core/tx/columnshard/columnshard_impl.cpp
@@ -1,9 +1,9 @@
 #include "columnshard_impl.h"
+#include "blob.h"
 #include "columnshard_schema.h"
+#include "common/tablet_id.h"
 #include "blobs_reader/task.h"
 #include "blobs_reader/events.h"
-#include "engines/changes/ttl.h"
-#include "engines/changes/cleanup.h"
 #include "blobs_action/bs/storage.h"
 #include "resource_subscriber/task.h"
 
@@ -11,9 +11,27 @@
 #include "blobs_action/tier/storage.h"
 #endif
 
+#include "blobs_reader/actor.h"
+#include "blobs_action/storages_manager/manager.h"
+#include "blobs_action/transaction/tx_remove_blobs.h"
 #include "blobs_action/transaction/tx_gc_insert_table.h"
 #include "blobs_action/transaction/tx_gc_indexed.h"
+
+#include "data_sharing/destination/session/destination.h"
+#include "data_sharing/source/session/source.h"
+#include "data_sharing/common/transactions/tx_extension.h"
+
+#include "engines/changes/indexation.h"
+#include "engines/changes/cleanup_portions.h"
+#include "engines/changes/cleanup_tables.h"
+#include "engines/changes/ttl.h"
+
+#include "export/manager/manager.h"
+
+#include "resource_subscriber/counters.h"
+
 #include "hooks/abstract/abstract.h"
+
 #include 
 #include 
 #include 
@@ -22,13 +40,6 @@
 #include 
 #include 
 #include 
-#include "resource_subscriber/counters.h"
-#include "blobs_reader/actor.h"
-
-
-#include 
-#include 
-#include 
 
 namespace NKikimr::NColumnShard {
 
@@ -50,38 +61,15 @@ NTabletPipe::TClientConfig GetPipeClientConfig() {
 
 }
 
-class TColumnShard::TStoragesManager: public NOlap::IStoragesManager {
-private:
-    using TBase = NOlap::IStoragesManager;
-    TColumnShard& Shard;
-protected:
-    virtual std::shared_ptr DoBuildOperator(const TString& storageId) override {
-        if (storageId == TBase::DefaultStorageId) {
-            return std::make_shared(storageId, Shard.SelfId(), Shard.Info(), Shard.Executor()->Generation());
-        } else if (!Shard.Tiers) {
-            return nullptr;
-        } else {
-#ifndef KIKIMR_DISABLE_S3_OPS
-            return std::make_shared(storageId, Shard);
-#else
-            return nullptr;
-#endif
-        }
-    }
-public:
-    TStoragesManager(TColumnShard& shard)
-        : Shard(shard) {
-
-    }
-};
-
 TColumnShard::TColumnShard(TTabletStorageInfo* info, const TActorId& tablet)
     : TActor(&TThis::StateInit)
     , TTabletExecutedFlat(info, tablet, nullptr)
     , ProgressTxController(std::make_unique(*this))
-    , PeriodicWakeupActivationPeriod(GetControllerPeriodicWakeupActivationPeriod())
-    , StatsReportInterval(GetControllerStatsReportInterval())
-    , StoragesManager(std::make_shared(*this))
+    , StoragesManager(std::make_shared(*this))
+    , ExportsManager(std::make_shared())
+    , DataLocksManager(std::make_shared())
+    , PeriodicWakeupActivationPeriod(NYDBTest::TControllers::GetColumnShardController()->GetPeriodicWakeupActivationPeriod(TSettings::DefaultPeriodicWakeupActivationPeriod))
+    , StatsReportInterval(NYDBTest::TControllers::GetColumnShardController()->GetStatsReportInterval(TSettings::DefaultStatsReportInterval))
     , InFlightReadsTracker(StoragesManager)
     , TablesManager(StoragesManager, info->TabletID)
     , PipeClientCache(NTabletPipe::CreateBoundedClientCache(new NTabletPipe::TBoundedClientCacheConfig(), GetPipeClientConfig()))
@@ -89,7 +77,7 @@ TColumnShard::TColumnShard(TTabletStorageInfo* info, const TActorId& tablet)
     , SubscribeCounters(std::make_shared())
     , InsertTaskSubscription(NOlap::TInsertColumnEngineChanges::StaticTypeName(), SubscribeCounters)
     , CompactTaskSubscription(NOlap::TCompactColumnEngineChanges::StaticTypeName(), SubscribeCounters)
-    , ReadCounters("Read")
+    , TTLTaskSubscription(NOlap::TTTLColumnEngineChanges::StaticTypeName(), SubscribeCounters)
     , ScanCounters("Scan")
     , WritesMonitor(*this)
     , NormalizerController(StoragesManager, SubscribeCounters)
@@ -101,20 +89,16 @@ TColumnShard::TColumnShard(TTabletStorageInfo* info, const TActorId& tablet)
         ETxTypes_descriptor
     >());
     TabletCounters = TabletCountersPtr.get();
-
-    NormalizerController.RegisterNormalizer(std::make_shared());
-    NormalizerController.RegisterNormalizer(std::make_shared(Info()));
-    NormalizerController.RegisterNormalizer(std::make_shared(Info()));
+    NOlap::TNormalizationController::TInitContext initCtx(Info());
+    NormalizerController.InitNormalizers(initCtx);
 }
 
 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);
 }
 
@@ -208,7 +192,8 @@ ui64 TColumnShard::GetOutdatedStep() const {
 }
 
 ui64 TColumnShard::GetMinReadStep() const {
-    ui64 delayMillisec = MaxReadStaleness.MilliSeconds();
+    const TDuration maxReadStaleness = NYDBTest::TControllers::GetColumnShardController()->GetReadTimeoutClean(TDuration::Minutes(5));
+    ui64 delayMillisec = maxReadStaleness.MilliSeconds();
     ui64 passedStep = GetOutdatedStep();
     ui64 minReadStep = (passedStep > delayMillisec ? passedStep - delayMillisec : 0);
     return minReadStep;
@@ -295,6 +280,9 @@ void TColumnShard::TryAbortWrites(NIceDb::TNiceDb& db, NOlap::TDbWrapper& dbTabl
             failedAborts.push_back(writeId);
         }
     }
+    if (failedAborts.size()) {
+        AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "failed_aborts")("count", failedAborts.size())("writes_count", writesToAbort.size());
+    }
     for (auto& writeId : failedAborts) {
         writesToAbort.erase(writeId);
     }
@@ -389,7 +377,7 @@ void TColumnShard::RunEnsureTable(const NKikimrTxColumnShard::TCreateTable& tabl
         << " ttl settings: " << tableProto.GetTtlSettings()
         << " at tablet " << TabletID());
 
-    TTableInfo::TTableVersionInfo tableVerProto;
+    NKikimrTxColumnShard::TTableVersionInfo tableVerProto;
     tableVerProto.SetPathId(pathId);
 
     // check schema changed
@@ -410,21 +398,28 @@ void TColumnShard::RunEnsureTable(const NKikimrTxColumnShard::TCreateTable& tabl
         *tableVerProto.MutableSchema() = tableProto.GetSchema();
     }
 
-    TTableInfo table(pathId);
-    if (tableProto.HasTtlSettings()) {
-        const auto& ttlSettings = tableProto.GetTtlSettings();
-        *tableVerProto.MutableTtlSettings() = ttlSettings;
-        if (ttlSettings.HasUseTiering()) {
-            table.SetTieringUsage(ttlSettings.GetUseTiering());
-            ActivateTiering(pathId, table.GetTieringUsage());
+    {
+        bool needTieringActivation = false;
+        TTableInfo table(pathId);
+        if (tableProto.HasTtlSettings()) {
+            const auto& ttlSettings = tableProto.GetTtlSettings();
+            *tableVerProto.MutableTtlSettings() = ttlSettings;
+            if (ttlSettings.HasUseTiering()) {
+                table.SetTieringUsage(ttlSettings.GetUseTiering());
+                needTieringActivation = true;
+            }
+        }
+        const TString tieringName = table.GetTieringUsage();
+        TablesManager.RegisterTable(std::move(table), db);
+        if (needTieringActivation) {
+            ActivateTiering(pathId, tieringName);
         }
     }
 
     tableVerProto.SetSchemaPresetVersionAdj(tableProto.GetSchemaPresetVersionAdj());
     tableVerProto.SetTtlSettingsPresetVersionAdj(tableProto.GetTtlSettingsPresetVersionAdj());
 
-    TablesManager.RegisterTable(std::move(table), db);
-    TablesManager.AddTableVersion(pathId, version, tableVerProto, db);
+    TablesManager.AddTableVersion(pathId, version, tableVerProto, db, Tiers);
 
     SetCounter(COUNTER_TABLES, TablesManager.GetTables().size());
     SetCounter(COUNTER_TABLE_PRESETS, TablesManager.GetSchemaPresets().size());
@@ -443,7 +438,7 @@ void TColumnShard::RunAlterTable(const NKikimrTxColumnShard::TAlterTable& alterP
         << " ttl settings: " << alterProto.GetTtlSettings()
         << " at tablet " << TabletID());
 
-    TTableInfo::TTableVersionInfo tableVerProto;
+    NKikimrTxColumnShard::TTableVersionInfo tableVerProto;
     if (alterProto.HasSchemaPreset()) {
         tableVerProto.SetSchemaPresetId(alterProto.GetSchemaPreset().GetId());
         TablesManager.AddSchemaVersion(alterProto.GetSchemaPreset().GetId(), version, alterProto.GetSchemaPreset().GetSchema(), db);
@@ -461,7 +456,7 @@ void TColumnShard::RunAlterTable(const NKikimrTxColumnShard::TAlterTable& alterP
     Schema::SaveTableInfo(db, pathId, tieringUsage);
 
     tableVerProto.SetSchemaPresetVersionAdj(alterProto.GetSchemaPresetVersionAdj());
-    TablesManager.AddTableVersion(pathId, version, tableVerProto, db);
+    TablesManager.AddTableVersion(pathId, version, tableVerProto, db, Tiers);
 }
 
 void TColumnShard::RunDropTable(const NKikimrTxColumnShard::TDropTable& dropProto, const NOlap::TSnapshot& version,
@@ -509,36 +504,29 @@ void TColumnShard::RunAlterStore(const NKikimrTxColumnShard::TAlterStore& proto,
     }
 }
 
-void TColumnShard::EnqueueBackgroundActivities(bool periodic, TBackgroundActivity activity) {
+void TColumnShard::EnqueueBackgroundActivities(const bool periodic) {
     TLogContextGuard gLogging(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", TabletID()));
-    ACFL_DEBUG("event", "EnqueueBackgroundActivities")("periodic", periodic)("activity", activity.DebugString());
+    ACFL_DEBUG("event", "EnqueueBackgroundActivities")("periodic", periodic);
+    StoragesManager->GetOperatorVerified(NOlap::IStoragesManager::DefaultStorageId);
+    StoragesManager->GetSharedBlobsManager()->GetStorageManagerVerified(NOlap::IStoragesManager::DefaultStorageId);
     CSCounters.OnStartBackground();
-
     SendPeriodicStats();
 
     if (!TablesManager.HasPrimaryIndex()) {
         LOG_S_NOTICE("Background activities cannot be started: no index at tablet " << TabletID());
         return;
     }
+//  !!!!!! MUST BE FIRST THROUGH DATA HAVE TO BE SAME IN SESSIONS AFTER TABLET RESTART
+    SharingSessionsManager->Start(*this);
 
-    if (activity.HasIndexation()) {
-        SetupIndexation();
-    }
-
-    if (activity.HasCompaction()) {
-        SetupCompaction();
-    }
-
-    if (activity.HasCleanup()) {
-        SetupCleanup();
-    }
-
-    if (activity.HasTtl()) {
-        SetupTtl();
-    }
+    ExportsManager->Start(this);
 
+    SetupIndexation();
+    SetupCompaction();
+    SetupCleanupPortions();
+    SetupCleanupTables();
+    SetupTtl();
     SetupGC();
-
     SetupCleanupInsertTable();
 }
 
@@ -549,11 +537,12 @@ class TChangesTask: public NConveyor::ITask {
     const ui64 TabletId;
     const TActorId ParentActorId;
     TString ClassId;
+    NOlap::TSnapshot LastCompletedTx;
 protected:
     virtual bool DoExecute() override {
         NActors::TLogContextGuard g(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", TabletId)("parent_id", ParentActorId));
         {
-            NOlap::TConstructionContext context(TxEvent->IndexInfo, Counters);
+            NOlap::TConstructionContext context(*TxEvent->IndexInfo, Counters, LastCompletedTx);
             Y_ABORT_UNLESS(TxEvent->IndexChanges->ConstructBlobs(context).Ok());
             if (!TxEvent->IndexChanges->GetWritePortionsCount()) {
                 TxEvent->SetPutStatus(NKikimrProto::OK);
@@ -567,11 +556,12 @@ class TChangesTask: public NConveyor::ITask {
         return ClassId;
     }
 
-    TChangesTask(std::unique_ptr&& txEvent, const TIndexationCounters& counters, const ui64 tabletId, const TActorId parentActorId)
+    TChangesTask(std::unique_ptr&& txEvent, const TIndexationCounters& counters, const ui64 tabletId, const TActorId parentActorId, NOlap::TSnapshot lastCompletedTx)
         : TxEvent(std::move(txEvent))
         , Counters(counters)
         , TabletId(tabletId)
         , ParentActorId(parentActorId)
+        , LastCompletedTx(lastCompletedTx)
     {
         Y_ABORT_UNLESS(TxEvent);
         Y_ABORT_UNLESS(TxEvent->IndexChanges);
@@ -586,37 +576,62 @@ class TChangesReadTask: public NOlap::NBlobOperations::NRead::ITask {
     const ui64 TabletId;
     std::unique_ptr TxEvent;
     TIndexationCounters Counters;
+    NOlap::TSnapshot LastCompletedTx;
 protected:
     virtual void DoOnDataReady(const std::shared_ptr& resourcesGuard) override {
         TxEvent->IndexChanges->Blobs = ExtractBlobsData();
         TxEvent->IndexChanges->ResourcesGuard = resourcesGuard;
         const bool isInsert = !!dynamic_pointer_cast(TxEvent->IndexChanges);
-        std::shared_ptr task = std::make_shared(std::move(TxEvent), Counters, TabletId, ParentActorId);
+        std::shared_ptr task = std::make_shared(std::move(TxEvent), Counters, TabletId, ParentActorId, LastCompletedTx);
         if (isInsert) {
             NConveyor::TInsertServiceOperator::SendTaskToExecute(task);
         } else {
             NConveyor::TCompServiceOperator::SendTaskToExecute(task);
         }
     }
-    virtual bool DoOnError(const TBlobRange& range, const NOlap::IBlobsReadingAction::TErrorStatus& status) override {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "DoOnError")("blob_id", range)("status", status.GetErrorMessage())("status_code", status.GetStatus());
-        AFL_VERIFY(false)("blob_id", range)("status", status.GetStatus());
+    virtual bool DoOnError(const TString& storageId, const NOlap::TBlobRange& range, const NOlap::IBlobsReadingAction::TErrorStatus& status) override {
+        AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "DoOnError")("storage_id", storageId)("blob_id", range)("status", status.GetErrorMessage())("status_code", status.GetStatus());
+        AFL_VERIFY(status.GetStatus() != NKikimrProto::EReplyStatus::NODATA)("blob_id", range)("status", status.GetStatus())("error", status.GetErrorMessage())("type", TxEvent->IndexChanges->TypeString())("task_id", TxEvent->IndexChanges->GetTaskIdentifier())
+            ("debug", TxEvent->IndexChanges->DebugString());
         TxEvent->SetPutStatus(NKikimrProto::ERROR);
+        Counters.ReadErrors->Add(1);
         TActorContext::AsActorContext().Send(ParentActorId, std::move(TxEvent));
         return false;
     }
 public:
-    TChangesReadTask(std::unique_ptr&& event, const TActorId parentActorId, const ui64 tabletId, const TIndexationCounters& counters)
+    TChangesReadTask(std::unique_ptr&& event, const TActorId parentActorId, const ui64 tabletId, const TIndexationCounters& counters, NOlap::TSnapshot lastCompletedTx)
         : TBase(event->IndexChanges->GetReadingActions(), event->IndexChanges->TypeString(), event->IndexChanges->GetTaskIdentifier())
         , ParentActorId(parentActorId)
         , TabletId(tabletId)
         , TxEvent(std::move(event))
         , Counters(counters)
+        , LastCompletedTx(lastCompletedTx)
     {
         AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "start_changes")("type", TxEvent->IndexChanges->TypeString())("task_id", TxEvent->IndexChanges->GetTaskIdentifier());
     }
 };
 
+class TInsertChangesReadTask: public TChangesReadTask, public TMonitoringObjectsCounter {
+private:
+    using TBase = TChangesReadTask;
+public:
+    using TBase::TBase;
+};
+
+class TCompactChangesReadTask: public TChangesReadTask, public TMonitoringObjectsCounter {
+private:
+    using TBase = TChangesReadTask;
+public:
+    using TBase::TBase;
+};
+
+class TTTLChangesReadTask: public TChangesReadTask, public TMonitoringObjectsCounter {
+private:
+    using TBase = TChangesReadTask;
+public:
+    using TBase::TBase;
+};
+
 void TColumnShard::StartIndexTask(std::vector&& dataToIndex, const i64 bytesToIndex) {
     CSCounters.IndexationInput(bytesToIndex);
 
@@ -630,9 +645,9 @@ void TColumnShard::StartIndexTask(std::vector&& dat
     auto indexChanges = TablesManager.MutablePrimaryIndex().StartInsert(std::move(data));
     Y_ABORT_UNLESS(indexChanges);
 
-    auto actualIndexInfo = TablesManager.GetPrimaryIndex()->GetVersionedIndex();
+    auto actualIndexInfo = std::make_shared(TablesManager.GetPrimaryIndex()->GetVersionedIndex());
     indexChanges->Start(*this);
-    auto ev = std::make_unique(std::move(actualIndexInfo), indexChanges, Settings.CacheDataAfterIndexing);
+    auto ev = std::make_unique(actualIndexInfo, indexChanges, Settings.CacheDataAfterIndexing);
 
     const TString externalTaskId = indexChanges->GetTaskIdentifier();
     AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "indexation")("bytes", bytesToIndex)("blobs_count", dataToIndex.size())("max_limit", (i64)Limits.MaxInsertBytes)
@@ -640,11 +655,11 @@ void TColumnShard::StartIndexTask(std::vector&& dat
 
     NOlap::NResourceBroker::NSubscribe::ITask::StartResourceSubscription(
         ResourceSubscribeActor, std::make_shared(
-                                std::make_shared(std::move(ev), SelfId(), TabletID(), IndexationCounters), 0, indexChanges->CalcMemoryForUsage(), externalTaskId, InsertTaskSubscription));
+                                std::make_shared(std::move(ev), SelfId(), TabletID(), IndexationCounters, GetLastPlannedSnapshot()), 0, indexChanges->CalcMemoryForUsage(), externalTaskId, InsertTaskSubscription));
 }
 
 void TColumnShard::SetupIndexation() {
-    if (!AppDataVerified().ColumnShardConfig.GetIndexationEnabled()) {
+    if (!AppDataVerified().ColumnShardConfig.GetIndexationEnabled() || !NYDBTest::TControllers::GetColumnShardController()->IsBackgroundEnabled(NYDBTest::ICSController::EBackground::Indexation)) {
         AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "skip_indexation")("reason", "disabled");
         return;
     }
@@ -671,7 +686,8 @@ void TColumnShard::SetupIndexation() {
 
     AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "start_indexation_tasks")("insert_overload_size", InsertTable->GetCountersCommitted().Bytes);
     CSCounters.OnSetupIndexation();
-    i64 bytesToIndex = 0;
+    ui64 bytesToIndex = 0;
+    ui64 txBytesWrite = 0;
     std::vector dataToIndex;
     dataToIndex.reserve(TLimits::MIN_SMALL_BLOBS_TO_INSERT);
     for (auto it = InsertTable->GetPathPriorities().rbegin(); it != InsertTable->GetPathPriorities().rend(); ++it) {
@@ -679,11 +695,13 @@ void TColumnShard::SetupIndexation() {
             for (auto& data : pathInfo->GetCommitted()) {
                 Y_ABORT_UNLESS(data.BlobSize());
                 bytesToIndex += data.BlobSize();
+                txBytesWrite += data.GetTxVolume();
                 dataToIndex.push_back(&data);
-                if (bytesToIndex >= Limits.MaxInsertBytes) {
+                if (bytesToIndex >= (ui64)Limits.MaxInsertBytes || txBytesWrite >= NOlap::TGlobalLimits::TxWriteLimitBytes) {
                     StartIndexTask(std::move(dataToIndex), bytesToIndex);
                     dataToIndex.clear();
                     bytesToIndex = 0;
+                    txBytesWrite = 0;
                 }
             }
         }
@@ -694,7 +712,7 @@ void TColumnShard::SetupIndexation() {
 }
 
 void TColumnShard::SetupCompaction() {
-    if (!AppDataVerified().ColumnShardConfig.GetCompactionEnabled()) {
+    if (!AppDataVerified().ColumnShardConfig.GetCompactionEnabled() || !NYDBTest::TControllers::GetColumnShardController()->IsBackgroundEnabled(NYDBTest::ICSController::EBackground::Compaction)) {
         AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "skip_compaction")("reason", "disabled");
         return;
     }
@@ -702,8 +720,7 @@ void TColumnShard::SetupCompaction() {
 
     BackgroundController.CheckDeadlines();
     while (BackgroundController.GetCompactionsCount() < TSettings::MAX_ACTIVE_COMPACTIONS) {
-        auto limits = CompactionLimits.Get();
-        auto indexChanges = TablesManager.MutablePrimaryIndex().StartCompaction(limits, BackgroundController.GetConflictCompactionPortions());
+        auto indexChanges = TablesManager.MutablePrimaryIndex().StartCompaction(DataLocksManager);
         if (!indexChanges) {
             LOG_S_DEBUG("Compaction not started: cannot prepare compaction at tablet " << TabletID());
             break;
@@ -711,79 +728,101 @@ void TColumnShard::SetupCompaction() {
 
         indexChanges->Start(*this);
 
-        auto actualIndexInfo = TablesManager.GetPrimaryIndex()->GetVersionedIndex();
-        auto ev = std::make_unique(std::move(actualIndexInfo), indexChanges, Settings.CacheDataAfterCompaction);
+        auto actualIndexInfo = std::make_shared(TablesManager.GetPrimaryIndex()->GetVersionedIndex());
+        auto ev = std::make_unique(actualIndexInfo, indexChanges, Settings.CacheDataAfterCompaction);
         const TString externalTaskId = indexChanges->GetTaskIdentifier();
         AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "compaction")("external_task_id", externalTaskId);
 
         NOlap::NResourceBroker::NSubscribe::ITask::StartResourceSubscription(
             ResourceSubscribeActor, std::make_shared(
-                std::make_shared(std::move(ev), SelfId(), TabletID(), CompactionCounters), 0, indexChanges->CalcMemoryForUsage(), externalTaskId, CompactTaskSubscription));
+                std::make_shared(std::move(ev), SelfId(), TabletID(), CompactionCounters, GetLastPlannedSnapshot()), 0, indexChanges->CalcMemoryForUsage(), externalTaskId, CompactTaskSubscription));
     }
 
     LOG_S_DEBUG("ActiveCompactions: " << BackgroundController.GetCompactionsCount() << " at tablet " << TabletID());
 }
 
-bool TColumnShard::SetupTtl(const THashMap& pathTtls, const bool force) {
-    if (!AppDataVerified().ColumnShardConfig.GetTTLEnabled()) {
+bool TColumnShard::SetupTtl(const THashMap& pathTtls) {
+    if (!AppDataVerified().ColumnShardConfig.GetTTLEnabled() || !NYDBTest::TControllers::GetColumnShardController()->IsBackgroundEnabled(NYDBTest::ICSController::EBackground::TTL)) {
         AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "skip_ttl")("reason", "disabled");
         return false;
     }
     CSCounters.OnSetupTtl();
-    if (BackgroundController.IsTtlActive()) {
-        ACFL_DEBUG("background", "ttl")("skip_reason", "in_progress");
-        return false;
-    }
-    if (force) {
-        TablesManager.MutablePrimaryIndex().OnTieringModified(Tiers, TablesManager.GetTtl());
-    }
     THashMap eviction = pathTtls;
     for (auto&& i : eviction) {
         ACFL_DEBUG("background", "ttl")("path", i.first)("info", i.second.GetDebugString());
     }
 
-    auto actualIndexInfo = TablesManager.GetPrimaryIndex()->GetVersionedIndex();
-    std::shared_ptr indexChanges = TablesManager.MutablePrimaryIndex().StartTtl(eviction, BackgroundController.GetConflictTTLPortions());
+    auto actualIndexInfo = std::make_shared(TablesManager.GetPrimaryIndex()->GetVersionedIndex());
+    const ui64 memoryUsageLimit = HasAppData() ? AppDataVerified().ColumnShardConfig.GetTieringsMemoryLimit() : ((ui64)512 * 1024 * 1024);
+    std::vector> indexChanges = TablesManager.MutablePrimaryIndex().StartTtl(eviction, DataLocksManager, memoryUsageLimit);
 
-    if (!indexChanges) {
+    if (indexChanges.empty()) {
         ACFL_DEBUG("background", "ttl")("skip_reason", "no_changes");
         return false;
     }
-
-    const bool needWrites = indexChanges->NeedConstruction();
-    ACFL_DEBUG("background", "ttl")("need_writes", needWrites);
-
-    indexChanges->Start(*this);
-    auto ev = std::make_unique(std::move(actualIndexInfo), indexChanges, false);
-    NYDBTest::TControllers::GetColumnShardController()->OnWriteIndexStart(TabletID(), indexChanges->TypeString());
-    if (needWrites) {
-        ActorContext().Register(new NOlap::NBlobOperations::NRead::TActor(std::make_shared(std::move(ev), SelfId(), TabletID(), CompactionCounters)));
-    } else {
-        ev->SetPutStatus(NKikimrProto::OK);
-        ActorContext().Send(SelfId(), std::move(ev));
+    for (auto&& i : indexChanges) {
+        const TString externalTaskId = i->GetTaskIdentifier();
+        const bool needWrites = i->NeedConstruction();
+        ACFL_DEBUG("background", "ttl")("need_writes", needWrites);
+        i->Start(*this);
+        auto ev = std::make_unique(actualIndexInfo, i, false);
+        if (needWrites) {
+            NOlap::NResourceBroker::NSubscribe::ITask::StartResourceSubscription(
+                ResourceSubscribeActor, std::make_shared(
+                    std::make_shared(std::move(ev), SelfId(), TabletID(), CompactionCounters, GetLastPlannedSnapshot()), 0, i->CalcMemoryForUsage(), externalTaskId, TTLTaskSubscription));
+        } else {
+            ev->SetPutStatus(NKikimrProto::OK);
+            ActorContext().Send(SelfId(), std::move(ev));
+        }
     }
     return true;
 }
 
-void TColumnShard::SetupCleanup() {
+void TColumnShard::SetupCleanupPortions() {
     CSCounters.OnSetupCleanup();
-    if (BackgroundController.IsCleanupActive()) {
+    if (!AppDataVerified().ColumnShardConfig.GetCleanupEnabled() || !NYDBTest::TControllers::GetColumnShardController()->IsBackgroundEnabled(NYDBTest::ICSController::EBackground::Cleanup)) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "skip_cleanup")("reason", "disabled");
+        return;
+    }
+    if (BackgroundController.IsCleanupPortionsActive()) {
         ACFL_DEBUG("background", "cleanup")("skip_reason", "in_progress");
         return;
     }
 
     NOlap::TSnapshot cleanupSnapshot{GetMinReadStep(), 0};
 
-    auto changes =
-        TablesManager.MutablePrimaryIndex().StartCleanup(cleanupSnapshot, TablesManager.MutablePathsToDrop(), TLimits::MAX_TX_RECORDS);
+    auto changes = TablesManager.MutablePrimaryIndex().StartCleanupPortions(cleanupSnapshot, TablesManager.GetPathsToDrop(), DataLocksManager);
     if (!changes) {
         ACFL_DEBUG("background", "cleanup")("skip_reason", "no_changes");
         return;
     }
 
     ACFL_DEBUG("background", "cleanup")("changes_info", changes->DebugString());
-    auto actualIndexInfo = TablesManager.GetPrimaryIndex()->GetVersionedIndex();
-    auto ev = std::make_unique(std::move(actualIndexInfo), changes, false);
+    auto actualIndexInfo = std::make_shared(TablesManager.GetPrimaryIndex()->GetVersionedIndex());
+    auto ev = std::make_unique(actualIndexInfo, changes, false);
+    ev->SetPutStatus(NKikimrProto::OK); // No new blobs to write
+
+    changes->Start(*this);
+
+    Send(SelfId(), ev.release());
+}
+
+void TColumnShard::SetupCleanupTables() {
+    CSCounters.OnSetupCleanup();
+    if (BackgroundController.IsCleanupTablesActive()) {
+        ACFL_DEBUG("background", "cleanup")("skip_reason", "in_progress");
+        return;
+    }
+
+    auto changes = TablesManager.MutablePrimaryIndex().StartCleanupTables(TablesManager.MutablePathsToDrop());
+    if (!changes) {
+        ACFL_DEBUG("background", "cleanup")("skip_reason", "no_changes");
+        return;
+    }
+
+    ACFL_DEBUG("background", "cleanup")("changes_info", changes->DebugString());
+    auto actualIndexInfo = std::make_shared(TablesManager.GetPrimaryIndex()->GetVersionedIndex());
+    auto ev = std::make_unique(actualIndexInfo, changes, false);
     ev->SetPutStatus(NKikimrProto::OK); // No new blobs to write
 
     changes->Start(*this);
@@ -792,6 +831,10 @@ void TColumnShard::SetupCleanup() {
 }
 
 void TColumnShard::SetupGC() {
+    if (!NYDBTest::TControllers::GetColumnShardController()->IsBackgroundEnabled(NYDBTest::ICSController::EBackground::GC)) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "skip_gc")("reason", "disabled");
+        return;
+    }
     for (auto&& i : StoragesManager->GetStorages()) {
         i.second->StartGC();
     }
@@ -802,12 +845,18 @@ void TColumnShard::Handle(TEvPrivate::TEvGarbageCollectionFinished::TPtr& ev, co
 }
 
 void TColumnShard::SetupCleanupInsertTable() {
+    if (BackgroundController.IsCleanupInsertTableActive()) {
+        ACFL_DEBUG("background", "cleanup_insert_table")("skip_reason", "in_progress");
+        return;
+    }
     auto writeIdsToCleanup = InsertTable->OldWritesToAbort(AppData()->TimeProvider->Now());
 
     if (!InsertTable->GetAborted().size() && !writeIdsToCleanup.size()) {
         return;
     }
+    AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("event", "cleanup_started")("aborted", InsertTable->GetAborted().size())("to_cleanup", writeIdsToCleanup.size());
 
+    BackgroundController.StartCleanupInsertTable();
     Execute(new TTxInsertTableCleanup(this, std::move(writeIdsToCleanup)), TActorContext::AsActorContext());
 }
 
@@ -816,27 +865,247 @@ void TColumnShard::Die(const TActorContext& ctx) {
     CleanupActors(ctx);
     NTabletPipe::CloseAndForgetClient(SelfId(), StatsReportPipe);
     UnregisterMediatorTimeCast();
+    NYDBTest::TControllers::GetColumnShardController()->OnTabletStopped(*this);
     return IActor::Die(ctx);
 }
 
+void TColumnShard::Handle(NActors::TEvents::TEvUndelivered::TPtr& ev, const TActorContext&) {
+    ui32 eventType = ev->Get()->SourceType;
+    switch (eventType) {
+        case NOlap::NDataSharing::NEvents::TEvSendDataFromSource::EventType:
+        case NOlap::NDataSharing::NEvents::TEvAckDataToSource::EventType:
+        case NOlap::NDataSharing::NEvents::TEvApplyLinksModification::EventType:
+        case NOlap::NDataSharing::NEvents::TEvStartToSource::EventType:
+        case NOlap::NDataSharing::NEvents::TEvAckFinishToSource::EventType:
+        case NOlap::NDataSharing::NEvents::TEvFinishedFromSource::EventType:
+            SharingSessionsManager->InitializeEventsExchange(*this, ev->Cookie);
+            break;
+    }
+}
+
+void TColumnShard::Handle(NOlap::NDataSharing::NEvents::TEvProposeFromInitiator::TPtr& ev, const TActorContext& ctx) {
+    AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("process", "BlobsSharing")("event", "TEvProposeFromInitiator");
+    auto reqSession = std::make_shared();
+    auto conclusion = reqSession->DeserializeDataFromProto(ev->Get()->Record.GetSession(), TablesManager.GetPrimaryIndexAsVerified());
+    if (!conclusion) {
+        if (!reqSession->GetInitiatorController()) {
+            AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "cannot_parse_start_data_sharing_from_initiator");
+        } else {
+            reqSession->GetInitiatorController().ProposeError(ev->Get()->Record.GetSession().GetSessionId(), conclusion.GetErrorMessage());
+        }
+        return;
+    }
+
+    auto currentSession = SharingSessionsManager->GetDestinationSession(reqSession->GetSessionId());
+    if (currentSession) {
+        reqSession->GetInitiatorController().ProposeError(ev->Get()->Record.GetSession().GetSessionId(), "Session exists already");
+        return;
+    }
+
+    auto txConclusion = SharingSessionsManager->ProposeDestSession(this, reqSession);
+    Execute(txConclusion.release(), ctx);
+}
+
+void TColumnShard::Handle(NOlap::NDataSharing::NEvents::TEvConfirmFromInitiator::TPtr& ev, const TActorContext& ctx) {
+    AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("process", "BlobsSharing")("event", "TEvConfirmFromInitiator");
+    auto currentSession = SharingSessionsManager->GetDestinationSession(ev->Get()->Record.GetSessionId());
+    if (!currentSession) {
+        AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("process", "BlobsSharing")("event", "TEvStartFromInitiator")("problem", "not_exists_session")("session_id", ev->Get()->Record.GetSessionId());
+        return;
+    }
+    if (currentSession->IsConfirmed()) {
+        currentSession->GetInitiatorController().ConfirmSuccess(ev->Get()->Record.GetSessionId());
+    } else {
+
+        auto txConclusion = SharingSessionsManager->ConfirmDestSession(this, currentSession);
+        Execute(txConclusion.release(), ctx);
+    }
+}
+
+void TColumnShard::Handle(NOlap::NDataSharing::NEvents::TEvStartToSource::TPtr& ev, const TActorContext& ctx) {
+    AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("process", "BlobsSharing")("event", "TEvStartToSource");
+    auto reqSession = std::make_shared((NOlap::TTabletId)TabletID());
+    reqSession->DeserializeFromProto(ev->Get()->Record.GetSession(), {}, {}).Validate();
+
+    auto currentSession = SharingSessionsManager->GetSourceSession(reqSession->GetSessionId());
+    if (currentSession) {
+        AFL_VERIFY(currentSession->IsEqualTo(*reqSession))("session_current", currentSession->DebugString())("session_new", reqSession->DebugString());
+        return;
+    }
+
+    auto txConclusion = SharingSessionsManager->InitializeSourceSession(this, reqSession);
+    Execute(txConclusion.release(), ctx);
+};
+
+void TColumnShard::Handle(NOlap::NDataSharing::NEvents::TEvSendDataFromSource::TPtr& ev, const TActorContext& ctx) {
+    AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("process", "BlobsSharing")("event", "TEvSendDataFromSource");
+    auto currentSession = SharingSessionsManager->GetDestinationSession(ev->Get()->Record.GetSessionId());
+    if (!currentSession) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "ignore_inactual_sharing_session")("sesion_id", ev->Get()->Record.GetSessionId());
+        return;
+    }
+
+    THashMap dataByPathId;
+    for (auto&& i : ev->Get()->Record.GetPathIdData()) {
+        auto schema = TablesManager.GetPrimaryIndexAsVerified().GetVersionedIndex().GetLastSchema();
+        AFL_VERIFY(schema);
+        auto data = NOlap::NDataSharing::NEvents::TPathIdData::BuildFromProto(i, schema->GetIndexInfo());
+        AFL_VERIFY(data.IsSuccess())("error", data.GetErrorMessage());
+        AFL_VERIFY(dataByPathId.emplace(i.GetPathId(), data.DetachResult()).second);
+    }
+
+    auto txConclusion = currentSession->ReceiveData(this, dataByPathId, ev->Get()->Record.GetPackIdx(), (NOlap::TTabletId)ev->Get()->Record.GetSourceTabletId(), currentSession);
+    if (!txConclusion) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "skip_received_data");
+    } else {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "on_received_data");
+        Execute(txConclusion->release(), ctx);
+    }
+};
+
+void TColumnShard::Handle(NOlap::NDataSharing::NEvents::TEvAckDataToSource::TPtr& ev, const TActorContext& ctx) {
+    AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("process", "BlobsSharing")("event", "TEvAckDataToSource");
+    auto currentSession = SharingSessionsManager->GetSourceSession(ev->Get()->Record.GetSessionId());
+    if (!currentSession) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "ignore_inactual_sharing_session")("sesion_id", ev->Get()->Record.GetSessionId());
+        return;
+    }
+
+    auto txConclusion = currentSession->AckData(this, ev->Get()->Record.GetPackIdx(), currentSession);
+    if (!txConclusion) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "skip_ack_data");
+    } else {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "on_ack_data");
+        Execute(txConclusion->release(), ctx);
+    }
+};
+
+void TColumnShard::Handle(NOlap::NDataSharing::NEvents::TEvAckFinishToSource::TPtr& ev, const TActorContext& ctx) {
+    AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("process", "BlobsSharing")("event", "TEvAckFinishToSource");
+    auto currentSession = SharingSessionsManager->GetSourceSession(ev->Get()->Record.GetSessionId());
+    if (!currentSession) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "ignore_inactual_sharing_session")("sesion_id", ev->Get()->Record.GetSessionId());
+        return;
+    }
+
+    auto txConclusion = currentSession->AckFinished(this, currentSession);
+    if (!txConclusion) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "skip_ack_finish");
+    } else {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "on_ack_finish");
+        Execute(txConclusion->release(), ctx);
+    }
+};
+
+void TColumnShard::Handle(NOlap::NDataSharing::NEvents::TEvFinishedFromSource::TPtr& ev, const TActorContext& ctx) {
+    AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("process", "BlobsSharing")("event", "TEvFinishedFromSource");
+    auto currentSession = SharingSessionsManager->GetDestinationSession(ev->Get()->Record.GetSessionId());
+    if (!currentSession) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "ignore_inactual_sharing_session")("sesion_id", ev->Get()->Record.GetSessionId());
+        return;
+    }
+
+    auto txConclusion = currentSession->ReceiveFinished(this, (NOlap::TTabletId)ev->Get()->Record.GetSourceTabletId(), currentSession);
+    if (!txConclusion) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "skip_finished_data")("error", txConclusion.GetErrorMessage());
+    } else {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "on_finished_data");
+        Execute(txConclusion->release(), ctx);
+    }
+};
+
+void TColumnShard::Handle(NOlap::NExport::NEvents::TEvExportSaveCursor::TPtr& ev, const TActorContext& ctx) {
+    AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("process", "Export")("event", "NExport::NEvents::TEvExportSaveCursor");
+    auto currentSession = ExportsManager->GetSessionOptional(ev->Get()->GetIdentifier());
+    if (!currentSession) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "ignore_inactual_export_session")("sesion_id", ev->Get()->GetIdentifier().ToString());
+        return;
+    }
+
+    auto txConclusion = currentSession->SaveCursorTx(this, ev->Get()->DetachCursor(), currentSession);
+    AFL_VERIFY(txConclusion.IsSuccess())("error", txConclusion.GetErrorMessage());
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "on_save_cursor")("id", ev->Get()->GetIdentifier().ToString());
+    Execute(txConclusion->release(), ctx);
+}
+
+void TColumnShard::Handle(NOlap::NDataSharing::NEvents::TEvAckFinishFromInitiator::TPtr& ev, const TActorContext& ctx) {
+    AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("process", "BlobsSharing")("event", "TEvAckFinishFromInitiator");
+    auto currentSession = SharingSessionsManager->GetDestinationSession(ev->Get()->Record.GetSessionId());
+    if (!currentSession) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "ignore_inactual_sharing_session")("sesion_id", ev->Get()->Record.GetSessionId());
+        return;
+    }
+
+    auto txConclusion = currentSession->AckInitiatorFinished(this, currentSession);
+    if (!txConclusion) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "skip_initiator_ack_finished_data");
+    } else {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "on_initiator_ack_finished_data");
+        Execute(txConclusion->release(), ctx);
+    }
+};
+
+void TColumnShard::Handle(NOlap::NDataSharing::NEvents::TEvApplyLinksModification::TPtr& ev, const TActorContext& ctx) {
+    AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("process", "BlobsSharing")("event", "TEvApplyLinksModification")("info", ev->Get()->Record.DebugString());
+    NActors::TLogContextGuard gLogging = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", TabletID())("event", "TEvChangeBlobsOwning");
+
+    auto task = std::make_shared((NOlap::TTabletId)TabletID());
+    auto parsed = task->DeserializeFromProto(ev->Get()->Record.GetTask());
+    AFL_VERIFY(!!parsed)("error", parsed.GetErrorMessage());
+
+    AFL_VERIFY(task->GetTabletId() == (NOlap::TTabletId)TabletID());
+    auto txConclusion = task->BuildModificationTransaction(this, (NOlap::TTabletId)ev->Get()->Record.GetInitiatorTabletId(), ev->Get()->Record.GetSessionId(), ev->Get()->Record.GetPackIdx(), task);
+    AFL_VERIFY(!!txConclusion)("error", txConclusion.GetErrorMessage());
+    Execute(txConclusion->release(), ctx);
+}
+
+void TColumnShard::Handle(NOlap::NDataSharing::NEvents::TEvApplyLinksModificationFinished::TPtr& ev, const TActorContext& ctx) {
+    AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("process", "BlobsSharing")("event", "TEvApplyLinksModificationFinished");
+    auto currentSession = SharingSessionsManager->GetSourceSession(ev->Get()->Record.GetSessionId());
+    if (!currentSession) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "ignore_inactual_sharing_session")("sesion_id", ev->Get()->Record.GetSessionId());
+        return;
+    }
+    const NOlap::TTabletId modifiedTabletId = (NOlap::TTabletId)ev->Get()->Record.GetModifiedTabletId();
+    auto txConclusion = currentSession->AckLinks(this, modifiedTabletId, ev->Get()->Record.GetPackIdx(), currentSession);
+
+    if (!txConclusion) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "skip_change_links_finish")("error", txConclusion.GetErrorMessage())("tablet_id", modifiedTabletId);
+    } else {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "on_change_links_finish")("tablet_id", modifiedTabletId);
+        Execute(txConclusion->release(), ctx);
+    }
+}
+
+void TColumnShard::Handle(NOlap::NBlobOperations::NEvents::TEvDeleteSharedBlobs::TPtr& ev, const TActorContext& ctx) {
+    AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("process", "BlobsSharing")("event", "TEvDeleteSharedBlobs");
+    NActors::TLogContextGuard gLogging = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", TabletID())("event", "TEvDeleteSharedBlobs");
+    auto removeAction = StoragesManager->GetOperator(ev->Get()->Record.GetStorageId())->StartDeclareRemovingAction(NOlap::NBlobOperations::EConsumer::CLEANUP_SHARED_BLOBS);
+    for (auto&& i : ev->Get()->Record.GetBlobIds()) {
+        auto blobId = NOlap::TUnifiedBlobId::BuildFromString(i, nullptr);
+        AFL_VERIFY(!!blobId)("problem", blobId.GetErrorMessage());
+        removeAction->DeclareRemove((NOlap::TTabletId)ev->Get()->Record.GetSourceTabletId(), *blobId);
+    }
+    Execute(new TTxRemoveSharedBlobs(this, removeAction, NActors::ActorIdFromProto(ev->Get()->Record.GetSourceActorId())), ctx);
+}
+
 void TColumnShard::Handle(NMetadata::NProvider::TEvRefreshSubscriberData::TPtr& ev) {
     Y_ABORT_UNLESS(Tiers);
     AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("event", "TEvRefreshSubscriberData")("snapshot", ev->Get()->GetSnapshot()->SerializeToString());
     Tiers->TakeConfigs(ev->Get()->GetSnapshot(), nullptr);
 }
 
-void TColumnShard::ActivateTiering(const ui64 pathId, const TString& useTiering, const bool onTabletInit) {
-    Y_ABORT_UNLESS(!!Tiers);
-    if (!!Tiers) {
-        if (useTiering) {
-            Tiers->EnablePathId(pathId, useTiering);
-        } else {
-            Tiers->DisablePathId(pathId);
-        }
+void TColumnShard::ActivateTiering(const ui64 pathId, const TString& useTiering) {
+    AFL_VERIFY(Tiers);
+    if (useTiering) {
+        AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("event", "activate_tiering")("path_id", pathId)("tiering", useTiering);
     }
-    if (!onTabletInit) {
-        OnTieringModified();
+    if (useTiering) {
+        Tiers->EnablePathId(pathId, useTiering);
+    } else {
+        Tiers->DisablePathId(pathId);
     }
+    OnTieringModified(pathId);
 }
 
 void TColumnShard::Enqueue(STFUNC_SIG) {
@@ -849,12 +1118,19 @@ void TColumnShard::Enqueue(STFUNC_SIG) {
     }
 }
 
-void TColumnShard::OnTieringModified() {
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "OnTieringModified");
-    StoragesManager->OnTieringModified(Tiers);
-    if (TablesManager.HasPrimaryIndex()) {
-        TablesManager.MutablePrimaryIndex().OnTieringModified(Tiers, TablesManager.GetTtl());
+void TColumnShard::OnTieringModified(const std::optional pathId) {
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "OnTieringModified")("path_id", pathId);
+    if (Tiers->IsReady()) {
+        StoragesManager->OnTieringModified(Tiers);
+        if (TablesManager.HasPrimaryIndex()) {
+            TablesManager.MutablePrimaryIndex().OnTieringModified(Tiers, TablesManager.GetTtl(), pathId);
+        }
     }
 }
 
+const NKikimr::NColumnShard::NTiers::TManager* TColumnShard::GetTierManagerPointer(const TString& tierId) const {
+    Y_ABORT_UNLESS(!!Tiers);
+    return Tiers->GetManagerOptional(tierId);
+}
+
 }
diff --git a/ydb/core/tx/columnshard/columnshard_impl.h b/ydb/core/tx/columnshard/columnshard_impl.h
index 00e72583c23a..6132d60043d7 100644
--- a/ydb/core/tx/columnshard/columnshard_impl.h
+++ b/ydb/core/tx/columnshard/columnshard_impl.h
@@ -6,8 +6,9 @@
 #include "columnshard_common.h"
 #include "columnshard_ttl.h"
 #include "columnshard_private_events.h"
-#include "blob_manager.h"
 #include "tables_manager.h"
+
+#include "blobs_action/events/delete_blobs.h"
 #include "transactions/tx_controller.h"
 #include "inflight_request_tracker.h"
 #include "counters/columnshard.h"
@@ -15,6 +16,17 @@
 #include "resource_subscriber/task.h"
 #include "normalizer/abstract/abstract.h"
 
+#include "export/events/events.h"
+
+#include "data_sharing/destination/events/control.h"
+#include "data_sharing/source/events/control.h"
+#include "data_sharing/destination/events/transfer.h"
+#include "data_sharing/source/events/transfer.h"
+#include "data_sharing/manager/sessions.h"
+#include "data_sharing/manager/shared_blobs.h"
+#include "data_sharing/common/transactions/tx_extension.h"
+#include "data_sharing/modification/events/change_owning.h"
+
 #include 
 #include 
 #include 
@@ -22,17 +34,38 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 
+#include 
 
 namespace NKikimr::NOlap {
-class TCleanupColumnEngineChanges;
+class TCleanupPortionsColumnEngineChanges;
+class TCleanupTablesColumnEngineChanges;
 class TTTLColumnEngineChanges;
 class TChangesWithAppend;
 class TCompactColumnEngineChanges;
 class TInsertColumnEngineChanges;
+class TStoragesManager;
+
+namespace NReader {
+class TTxScan;
+namespace NPlain {
+class TIndexScannerConstructor;
+}
+}
+
+namespace NDataSharing {
+class TTxDataFromSource;
+class TTxDataAckToSource;
+class TTxFinishAckToSource;
+class TTxFinishAckFromInitiator;
+}
+
+namespace NExport {
+class TExportsManager;
+}
+
 namespace NBlobOperations {
 namespace NBlobStorage {
 class TWriteAction;
@@ -49,7 +82,9 @@ class TGeneralCompactColumnEngineChanges;
 
 namespace NKikimr::NColumnShard {
 
+
 class TTxInsertTableCleanup;
+class TTxRemoveSharedBlobs;
 class TOperationsManager;
 
 extern bool gAllowLogBatchingDefaultValue;
@@ -105,7 +140,6 @@ class TColumnShard
     friend class TTxWrite;
     friend class TTxReadBase;
     friend class TTxRead;
-    friend class TTxScan;
     friend class TTxWriteIndex;
     friend class TTxExportFinish;
     friend class TTxRunGC;
@@ -113,8 +147,10 @@ class TColumnShard
     friend class TTxReadBlobRanges;
     friend class TTxApplyNormalizer;
     friend class TTxMonitoring;
+    friend class TTxRemoveSharedBlobs;
 
-    friend class NOlap::TCleanupColumnEngineChanges;
+    friend class NOlap::TCleanupPortionsColumnEngineChanges;
+    friend class NOlap::TCleanupTablesColumnEngineChanges;
     friend class NOlap::TTTLColumnEngineChanges;
     friend class NOlap::TChangesWithAppend;
     friend class NOlap::TCompactColumnEngineChanges;
@@ -125,6 +161,16 @@ class TColumnShard
     friend class NOlap::NBlobOperations::NBlobStorage::TOperator;
     friend class NOlap::NBlobOperations::NTier::TOperator;
 
+    friend class NOlap::NDataSharing::TTxDataFromSource;
+    friend class NOlap::NDataSharing::TTxDataAckToSource;
+    friend class NOlap::NDataSharing::TTxFinishAckToSource;
+    friend class NOlap::NDataSharing::TTxFinishAckFromInitiator;
+
+    friend class NOlap::TStoragesManager;
+
+    friend class NOlap::NReader::TTxScan;
+    friend class NOlap::NReader::NPlain::TIndexScannerConstructor;
+
     class TStoragesManager;
     friend class TTxController;
 
@@ -134,6 +180,7 @@ class TColumnShard
     friend class TSchemaTransactionOperator;
     friend class TLongTxTransactionOperator;
     friend class TEvWriteTransactionOperator;
+    friend class TBackupTransactionOperator;
 
     class TTxProgressTx;
     class TTxProposeCancel;
@@ -163,6 +210,24 @@ class TColumnShard
     void Handle(TEvPrivate::TEvTieringModified::TPtr& ev, const TActorContext&);
     void Handle(TEvPrivate::TEvNormalizerResult::TPtr& ev, const TActorContext&);
 
+    void Handle(NActors::TEvents::TEvUndelivered::TPtr& ev, const TActorContext&);
+
+    void Handle(NOlap::NBlobOperations::NEvents::TEvDeleteSharedBlobs::TPtr& ev, const TActorContext& ctx);
+
+    void Handle(NOlap::NDataSharing::NEvents::TEvApplyLinksModification::TPtr& ev, const TActorContext& ctx);
+    void Handle(NOlap::NDataSharing::NEvents::TEvApplyLinksModificationFinished::TPtr& ev, const TActorContext& ctx);
+
+    void Handle(NOlap::NDataSharing::NEvents::TEvProposeFromInitiator::TPtr& ev, const TActorContext& ctx);
+    void Handle(NOlap::NDataSharing::NEvents::TEvConfirmFromInitiator::TPtr& ev, const TActorContext& ctx);
+    void Handle(NOlap::NDataSharing::NEvents::TEvStartToSource::TPtr& ev, const TActorContext& ctx);
+    void Handle(NOlap::NDataSharing::NEvents::TEvSendDataFromSource::TPtr& ev, const TActorContext& ctx);
+    void Handle(NOlap::NDataSharing::NEvents::TEvAckDataToSource::TPtr& ev, const TActorContext& ctx);
+    void Handle(NOlap::NDataSharing::NEvents::TEvFinishedFromSource::TPtr& ev, const TActorContext& ctx);
+    void Handle(NOlap::NDataSharing::NEvents::TEvAckFinishToSource::TPtr& ev, const TActorContext& ctx);
+    void Handle(NOlap::NDataSharing::NEvents::TEvAckFinishFromInitiator::TPtr& ev, const TActorContext& ctx);
+
+    void Handle(NOlap::NExport::NEvents::TEvExportSaveCursor::TPtr& ev, const TActorContext& ctx);
+
     ITransaction* CreateTxInitSchema();
 
     void OnActivateExecutor(const TActorContext& ctx) override;
@@ -175,10 +240,7 @@ class TColumnShard
         Y_UNUSED(ctx);
     }
 
-    const NTiers::TManager* GetTierManagerPointer(const TString& tierId) const {
-        Y_ABORT_UNLESS(!!Tiers);
-        return Tiers->GetManagerOptional(tierId);
-    }
+    const NTiers::TManager* GetTierManagerPointer(const TString& tierId) const;
 
     void Die(const TActorContext& ctx) override;
 
@@ -206,22 +268,21 @@ class TColumnShard
         TabletCounters->Cumulative()[counter].Increment(num);
     }
 
-    void IncCounter(NColumnShard::EPercentileCounters counter, const TDuration& latency) const {
-        TabletCounters->Percentile()[counter].IncrementFor(latency.MicroSeconds());
-    }
-
-    void ActivateTiering(const ui64 pathId, const TString& useTiering, const bool onTabletInit = false);
-    void OnTieringModified();
+    void ActivateTiering(const ui64 pathId, const TString& useTiering);
+    void OnTieringModified(const std::optional pathId = {});
 public:
     enum class EOverloadStatus {
-        Shard /* "shard" */,
+        ShardTxInFly /* "shard_tx" */,
+        ShardWritesInFly /* "shard_writes" */,
+        ShardWritesSizeInFly /* "shard_writes_size" */,
         InsertTable /* "insert_table" */,
+        OverloadMetadata /* "overload_metadata" */,
         Disk /* "disk" */,
         None /* "none" */
     };
 
 private:
-    void OverloadWriteFail(const EOverloadStatus overloadReason, const NEvWrite::TWriteData& writeData, std::unique_ptr&& event, const TActorContext& ctx);
+    void OverloadWriteFail(const EOverloadStatus overloadReason, const NEvWrite::TWriteData& writeData, const ui64 cookie, std::unique_ptr&& event, const TActorContext& ctx);
     EOverloadStatus CheckOverloaded(const ui64 tableId) const;
 
 protected:
@@ -238,7 +299,7 @@ class TColumnShard
             LOG_S_WARN("TColumnShard.StateBroken at " << TabletID()
                        << " unhandled event type: " << ev->GetTypeRewrite()
                        << " event: " << ev->ToString());
-            Send(IEventHandle::ForwardOnNondelivery(std::move(ev), TEvents::TEvUndelivered::ReasonActorUnknown));
+            Send(IEventHandle::ForwardOnNondelivery(std::move(ev), NActors::TEvents::TEvUndelivered::ReasonActorUnknown));
             break;
         }
     }
@@ -271,6 +332,23 @@ class TColumnShard
             HFunc(TEvPrivate::TEvWriteDraft, Handle);
             HFunc(TEvPrivate::TEvGarbageCollectionFinished, Handle);
             HFunc(TEvPrivate::TEvTieringModified, Handle);
+
+            HFunc(NActors::TEvents::TEvUndelivered, Handle);
+
+            HFunc(NOlap::NBlobOperations::NEvents::TEvDeleteSharedBlobs, Handle);
+            HFunc(NOlap::NDataSharing::NEvents::TEvApplyLinksModification, Handle);
+            HFunc(NOlap::NDataSharing::NEvents::TEvApplyLinksModificationFinished, Handle);
+
+            HFunc(NOlap::NDataSharing::NEvents::TEvProposeFromInitiator, Handle);
+            HFunc(NOlap::NDataSharing::NEvents::TEvConfirmFromInitiator, Handle);
+            HFunc(NOlap::NDataSharing::NEvents::TEvStartToSource, Handle);
+            HFunc(NOlap::NDataSharing::NEvents::TEvSendDataFromSource, Handle);
+            HFunc(NOlap::NDataSharing::NEvents::TEvAckDataToSource, Handle);
+            HFunc(NOlap::NDataSharing::NEvents::TEvFinishedFromSource, Handle);
+            HFunc(NOlap::NDataSharing::NEvents::TEvAckFinishToSource, Handle);
+            HFunc(NOlap::NDataSharing::NEvents::TEvAckFinishFromInitiator, Handle);
+
+            HFunc(NOlap::NExport::NEvents::TEvExportSaveCursor, Handle);
         default:
             if (!HandleDefaultEvents(ev, SelfId())) {
                 LOG_S_WARN("TColumnShard.StateWork at " << TabletID()
@@ -284,6 +362,10 @@ class TColumnShard
 private:
     std::unique_ptr ProgressTxController;
     std::unique_ptr OperationsManager;
+    std::shared_ptr SharingSessionsManager;
+    std::shared_ptr StoragesManager;
+    std::shared_ptr ExportsManager;
+    std::shared_ptr DataLocksManager;
 
     using TSchemaPreset = TSchemaPreset;
     using TTableInfo = TTableInfo;
@@ -298,8 +380,8 @@ class TColumnShard
     class TWritesMonitor {
     private:
         TColumnShard& Owner;
-        ui64 WritesInFlight = 0;
-        ui64 WritesSizeInFlight = 0;
+        YDB_READONLY(ui64, WritesInFlight, 0);
+        YDB_READONLY(ui64, WritesSizeInFlight, 0);
 
     public:
         class TGuard: public TNonCopyable {
@@ -335,17 +417,8 @@ class TColumnShard
             return TGuard(*this);
         }
 
-        bool ShardOverloaded() const {
-            ui64 txLimit = Owner.Settings.OverloadTxInFlight;
-            ui64 writesLimit = Owner.Settings.OverloadWritesInFlight;
-            ui64 writesSizeLimit = Owner.Settings.OverloadWritesSizeInFlight;
-            return  (txLimit && Owner.Executor()->GetStats().TxInFly > txLimit) ||
-                    (writesLimit && WritesInFlight > writesLimit) ||
-                    (writesSizeLimit && WritesSizeInFlight > writesSizeLimit);
-        }
-
         TString DebugString() const {
-            return TStringBuilder() << "TWritesMonitor: inflight " << WritesInFlight << " (" << WritesSizeInFlight << " bytes)";
+            return TStringBuilder() << "{object=write_monitor;count=" << WritesInFlight << ";size=" << WritesSizeInFlight << "}";
         }
 
     private:
@@ -363,14 +436,12 @@ class TColumnShard
     ui64 LastExportNo = 0;
 
     ui64 OwnerPathId = 0;
-    ui64 TabletTxCounter = 0;
     ui64 StatsReportRound = 0;
     TString OwnerPath;
 
     TIntrusivePtr MediatorTimeCastEntry;
     bool MediatorTimeCastRegistered = false;
     TSet MediatorTimeCastWaitingSteps;
-    TDuration MaxReadStaleness = TDuration::Minutes(5); // TODO: Make configurable?
     const TDuration PeriodicWakeupActivationPeriod;
     TDuration FailActivationDelay = TDuration::Seconds(1);
     const TDuration StatsReportInterval;
@@ -381,7 +452,6 @@ class TColumnShard
     TActorId BufferizationWriteActorId;
     TActorId StatsReportPipe;
 
-    std::shared_ptr StoragesManager;
     TInFlightReadsTracker InFlightReadsTracker;
     TTablesManager TablesManager;
     std::shared_ptr Tiers;
@@ -392,7 +462,7 @@ class TColumnShard
     std::shared_ptr SubscribeCounters;
     NOlap::NResourceBroker::NSubscribe::TTaskContext InsertTaskSubscription;
     NOlap::NResourceBroker::NSubscribe::TTaskContext CompactTaskSubscription;
-    const TScanCounters ReadCounters;
+    NOlap::NResourceBroker::NSubscribe::TTaskContext TTLTaskSubscription;
     const TScanCounters ScanCounters;
     const TIndexationCounters CompactionCounters = TIndexationCounters("GeneralCompaction");
     const TIndexationCounters IndexationCounters = TIndexationCounters("Indexation");
@@ -400,7 +470,6 @@ class TColumnShard
 
     const TCSCounters CSCounters;
     TWritesMonitor WritesMonitor;
-
     bool ProgressTxInFlight = false;
     THashMap ScanTxInFlight;
     THashMap LongTxWrites;
@@ -410,7 +479,6 @@ class TColumnShard
     TBackgroundController BackgroundController;
     TSettings Settings;
     TLimits Limits;
-    TCompactionLimits CompactionLimits;
     NOlap::TNormalizationController NormalizerController;
 
     void TryRegisterMediatorTimeCast();
@@ -422,6 +490,10 @@ class TColumnShard
     NOlap::TSnapshot GetMaxReadVersion() const;
     ui64 GetMinReadStep() const;
     ui64 GetOutdatedStep() const;
+    TDuration GetTxCompleteLag() const {
+        ui64 mediatorTime = MediatorTimeCastEntry ? MediatorTimeCastEntry->Get(TabletID()) : 0;
+        return ProgressTxController->GetTxCompleteLag(mediatorTime);
+    }
 
     TWriteId HasLongTxWrite(const NLongTxService::TLongTxId& longTxId, const ui32 partId);
     TWriteId GetLongTxWrite(NIceDb::TNiceDb& db, const NLongTxService::TLongTxId& longTxId, const ui32 partId);
@@ -434,7 +506,7 @@ class TColumnShard
     TWriteId BuildNextWriteId(NIceDb::TNiceDb& db);
 
     void EnqueueProgressTx(const TActorContext& ctx);
-    void EnqueueBackgroundActivities(bool periodic = false, TBackgroundActivity activity = TBackgroundActivity::All());
+    void EnqueueBackgroundActivities(const bool periodic = false);
     virtual void Enqueue(STFUNC_SIG) override;
 
     void UpdateSchemaSeqNo(const TMessageSeqNo& seqNo, NTabletFlatExecutor::TTransactionContext& txc);
@@ -450,8 +522,9 @@ class TColumnShard
     void StartIndexTask(std::vector&& dataToIndex, const i64 bytesToIndex);
     void SetupIndexation();
     void SetupCompaction();
-    bool SetupTtl(const THashMap& pathTtls = {}, const bool force = false);
-    void SetupCleanup();
+    bool SetupTtl(const THashMap& pathTtls = {});
+    void SetupCleanupPortions();
+    void SetupCleanupTables();
     void SetupCleanupInsertTable();
     void SetupGC();
 
@@ -466,14 +539,55 @@ class TColumnShard
     void ConfigureStats(const NOlap::TColumnEngineStats& indexStats, ::NKikimrTableStats::TTableStats* tabletStats);
     void FillTxTableStats(::NKikimrTableStats::TTableStats* tableStats) const;
 
-    static TDuration GetControllerPeriodicWakeupActivationPeriod();
-    static TDuration GetControllerStatsReportInterval();
-
 public:
+    ui64 TabletTxCounter = 0;
+
+    template 
+    const T& GetIndexAs() const {
+        return TablesManager.GetPrimaryIndexAsVerified();
+    }
+
+    const NOlap::IColumnEngine* GetIndexOptional() const {
+        return TablesManager.GetPrimaryIndex() ? TablesManager.GetPrimaryIndex().get() : nullptr;
+    }
+
+    template 
+    T& MutableIndexAs() {
+        return TablesManager.MutablePrimaryIndexAsVerified();
+    }
+
+    TTxController& GetProgressTxController() const {
+        AFL_VERIFY(ProgressTxController);
+        return *ProgressTxController;
+    }
+
+    bool HasIndex() const {
+        return !!TablesManager.GetPrimaryIndex();
+    }
+
+    NOlap::TSnapshot GetLastPlannedSnapshot() const {
+        return NOlap::TSnapshot(LastPlannedStep, LastPlannedTxId);
+    }
+
+    const std::shared_ptr& GetExportsManager() const {
+        return ExportsManager;
+    }
+
     const std::shared_ptr& GetStoragesManager() const {
+        AFL_VERIFY(StoragesManager);
         return StoragesManager;
     }
 
+    const std::shared_ptr& GetDataLocksManager() const {
+        AFL_VERIFY(DataLocksManager);
+        return DataLocksManager;
+    }
+
+    const NOlap::TInsertTable& GetInsertTable() const {
+        AFL_VERIFY(!!InsertTable);
+        return *InsertTable;
+    }
+
     static constexpr NKikimrServices::TActivity::EType ActorActivityType() {
         return NKikimrServices::TActivity::TX_COLUMNSHARD_ACTOR;
     }
diff --git a/ydb/core/tx/columnshard/columnshard_private_events.h b/ydb/core/tx/columnshard/columnshard_private_events.h
index e258f724fcf3..70c1870aa34a 100644
--- a/ydb/core/tx/columnshard/columnshard_private_events.h
+++ b/ydb/core/tx/columnshard/columnshard_private_events.h
@@ -1,6 +1,5 @@
 #pragma once
 
-#include "blob_manager.h"
 #include "blobs_action/abstract/gc.h"
 #include "defs.h"
 
@@ -37,6 +36,11 @@ struct TEvPrivate {
         EvWritingAddDataToBuffer,
         EvWritingFlushBuffer,
 
+        EvExportWritingFinished,
+        EvExportWritingFailed,
+        EvExportCursorSaved,
+        EvExportSaveCursor,
+
         EvEnd
     };
 
@@ -76,7 +80,7 @@ struct TEvPrivate {
 
     /// Common event for Indexing and GranuleCompaction: write index data in TTxWriteIndex transaction.
     struct TEvWriteIndex : public TEventLocal {
-        NOlap::TVersionedIndex IndexInfo;
+        std::shared_ptr IndexInfo;
         std::shared_ptr IndexChanges;
         bool GranuleCompaction{false};
         TUsage ResourceUsage;
@@ -84,10 +88,10 @@ struct TEvPrivate {
         TDuration Duration;
         TBlobPutResult::TPtr PutResult;
 
-        TEvWriteIndex(NOlap::TVersionedIndex&& indexInfo,
+        TEvWriteIndex(const std::shared_ptr& indexInfo,
             std::shared_ptr indexChanges,
             bool cacheData)
-            : IndexInfo(std::move(indexInfo))
+            : IndexInfo(indexInfo)
             , IndexChanges(indexChanges)
             , CacheData(cacheData)
         {
diff --git a/ydb/core/tx/columnshard/columnshard_schema.h b/ydb/core/tx/columnshard/columnshard_schema.h
index 1690fa0bfec7..25d7c11fcca4 100644
--- a/ydb/core/tx/columnshard/columnshard_schema.h
+++ b/ydb/core/tx/columnshard/columnshard_schema.h
@@ -38,13 +38,27 @@ struct Schema : NIceDb::Schema {
         ColumnsTableId,
         CountersTableId,
         OperationsTableId,
-        IndexesTableId
+        IndexesTableId,
+
+        LocksTableId,
+        LockRangesTableId,
+        LockConflictsTableId,
+        LockVolatileDependenciesTableId,
+
+        SharedBlobIdsTableId,
+        BorrowedBlobIdsTableId,
+        SourceSessionsTableId,
+        DestinationSessionsTableId,
+        OperationTxIdsId,
+        BackupIdsDeprecated,
+        ExportSessionsId
     };
 
     enum class ETierTables: ui32 {
         TierBlobsDraft = 1024,
         TierBlobsToKeep,
-        TierBlobsToDelete
+        TierBlobsToDelete,
+        TierBlobsToDeleteWT
     };
 
     enum class EValueIds : ui32 {
@@ -60,6 +74,9 @@ struct Schema : NIceDb::Schema {
         LastExportNumber = 10,
         OwnerPathId = 11,
         OwnerPath = 12,
+        LastCompletedStep = 13,
+        LastCompletedTxId = 14,
+        LastNormalizerSequentialId = 15,
     };
 
     enum class EInsertTableIds : ui8 {
@@ -68,9 +85,26 @@ struct Schema : NIceDb::Schema {
         Aborted = 2,
     };
 
+    enum class ECommonTables {
+        Value = 1,
+        TxInfo = 2,
+        SchemaPresetInfo = 3,
+        TtlSettingsPresetInfo = 4,
+        TableInfo = 5,
+        LongTxWrites = 6,
+        BlobsToKeep = 7,
+        BlobsToDelete = 8,
+        SchemaPresetVersionInfo = 9,
+        TtlSettingsPresetVersionInfo = 10,
+        TableVersionInfo = 11,
+        SmallBlobs = 12,
+        OneToOneEvictedBlobs = 13,
+        BlobsToDeleteWT = 14
+    };
+
     // Tablet tables
 
-    struct Value : Table<1> {
+    struct Value : Table<(ui32)ECommonTables::Value> {
         struct Id : Column<1, NScheme::NTypeIds::Uint32> {}; // one of EValueIds
         struct Digit : Column<2, NScheme::NTypeIds::Uint64> {};
         struct Bytes : Column<3, NScheme::NTypeIds::String> {};
@@ -79,7 +113,7 @@ struct Schema : NIceDb::Schema {
         using TColumns = TableColumns;
     };
 
-    struct TxInfo : Table<2> {
+    struct TxInfo : Table<(ui32)ECommonTables::TxInfo> {
         struct TxId : Column<1, NScheme::NTypeIds::Uint64> {};
         struct TxKind : Column<2, NScheme::NTypeIds::Uint32> { using Type = NKikimrTxColumnShard::ETransactionKind; };
         struct TxBody : Column<3, NScheme::NTypeIds::String> {};
@@ -92,7 +126,7 @@ struct Schema : NIceDb::Schema {
         using TColumns = TableColumns;
     };
 
-    struct SchemaPresetInfo : Table<3> {
+    struct SchemaPresetInfo : Table<(ui32)ECommonTables::SchemaPresetInfo> {
         struct Id : Column<1, NScheme::NTypeIds::Uint32> {};
         struct Name : Column<2, NScheme::NTypeIds::Utf8> {};
         struct DropStep : Column<3, NScheme::NTypeIds::Uint64> {};
@@ -102,7 +136,7 @@ struct Schema : NIceDb::Schema {
         using TColumns = TableColumns;
     };
 
-    struct SchemaPresetVersionInfo : Table<9> {
+    struct SchemaPresetVersionInfo : Table<(ui32)ECommonTables::SchemaPresetVersionInfo> {
         struct Id : Column<1, NScheme::NTypeIds::Uint32> {};
         struct SinceStep : Column<2, NScheme::NTypeIds::Uint64> {};
         struct SinceTxId : Column<3, NScheme::NTypeIds::Uint64> {};
@@ -112,7 +146,7 @@ struct Schema : NIceDb::Schema {
         using TColumns = TableColumns;
     };
 
-    struct TtlSettingsPresetInfo : Table<4> {
+    struct TtlSettingsPresetInfo : Table<(ui32)ECommonTables::TtlSettingsPresetInfo> {
         struct Id : Column<1, NScheme::NTypeIds::Uint32> {};
         struct Name : Column<2, NScheme::NTypeIds::Utf8> {};
         struct DropStep : Column<3, NScheme::NTypeIds::Uint64> {};
@@ -122,7 +156,7 @@ struct Schema : NIceDb::Schema {
         using TColumns = TableColumns;
     };
 
-    struct TtlSettingsPresetVersionInfo : Table<10> {
+    struct TtlSettingsPresetVersionInfo : Table<(ui32)ECommonTables::TtlSettingsPresetVersionInfo> {
         struct Id : Column<1, NScheme::NTypeIds::Uint32> {};
         struct SinceStep : Column<2, NScheme::NTypeIds::Uint64> {};
         struct SinceTxId : Column<3, NScheme::NTypeIds::Uint64> {};
@@ -132,7 +166,7 @@ struct Schema : NIceDb::Schema {
         using TColumns = TableColumns;
     };
 
-    struct TableInfo : Table<5> {
+    struct TableInfo : Table<(ui32)ECommonTables::TableInfo> {
         struct PathId : Column<1, NScheme::NTypeIds::Uint64> {};
         struct DropStep : Column<2, NScheme::NTypeIds::Uint64> {};
         struct DropTxId : Column<3, NScheme::NTypeIds::Uint64> {};
@@ -142,7 +176,7 @@ struct Schema : NIceDb::Schema {
         using TColumns = TableColumns;
     };
 
-    struct TableVersionInfo : Table<11> {
+    struct TableVersionInfo : Table<(ui32)ECommonTables::TableVersionInfo> {
         struct PathId : Column<1, NScheme::NTypeIds::Uint64> {};
         struct SinceStep : Column<2, NScheme::NTypeIds::Uint64> {};
         struct SinceTxId : Column<3, NScheme::NTypeIds::Uint64> {};
@@ -152,7 +186,7 @@ struct Schema : NIceDb::Schema {
         using TColumns = TableColumns;
     };
 
-    struct LongTxWrites : Table<6> {
+    struct LongTxWrites : Table<(ui32)ECommonTables::LongTxWrites> {
         struct WriteId: Column<1, NScheme::NTypeIds::Uint64> {};
         struct LongTxId : Column<2, NScheme::NTypeIds::String> {};
         struct WritePartId: Column<3, NScheme::NTypeIds::Uint32> {};
@@ -161,21 +195,21 @@ struct Schema : NIceDb::Schema {
         using TColumns = TableColumns;
     };
 
-    struct BlobsToKeep : Table<7> {
+    struct BlobsToKeep : Table<(ui32)ECommonTables::BlobsToKeep> {
         struct BlobId : Column<1, NScheme::NTypeIds::String> {};
 
         using TKey = TableKey;
         using TColumns = TableColumns;
     };
 
-    struct BlobsToDelete : Table<8> {
-        struct BlobId : Column<1, NScheme::NTypeIds::String> {};
+    struct BlobsToDelete: Table<(ui32)ECommonTables::BlobsToDelete> {
+        struct BlobId: Column<1, NScheme::NTypeIds::String> {};
 
         using TKey = TableKey;
         using TColumns = TableColumns;
     };
 
-    struct SmallBlobs : Table<12> {
+    struct SmallBlobs : Table<(ui32)ECommonTables::SmallBlobs> {
         struct BlobId : Column<1, NScheme::NTypeIds::String> {};
         struct Data : Column<2, NScheme::NTypeIds::String> {};
 
@@ -183,7 +217,7 @@ struct Schema : NIceDb::Schema {
         using TColumns = TableColumns;
     };
 
-    struct OneToOneEvictedBlobs : Table<13> {
+    struct OneToOneEvictedBlobs : Table<(ui32)ECommonTables::OneToOneEvictedBlobs> {
         struct BlobId : Column<1, NScheme::NTypeIds::String> {};
         struct Size : Column<2, NScheme::NTypeIds::Uint32> {}; // extracted from BlobId for better introspection
         struct State : Column<3, NScheme::NTypeIds::Byte> {}; // evicting -> (self) cached <-> exported
@@ -197,6 +231,14 @@ struct Schema : NIceDb::Schema {
         using TColumns = TableColumns;
     };
 
+    struct BlobsToDeleteWT: Table<(ui32)ECommonTables::BlobsToDeleteWT> {
+        struct BlobId: Column<1, NScheme::NTypeIds::String> {};
+        struct TabletId: Column<2, NScheme::NTypeIds::Uint64> {};
+
+        using TKey = TableKey;
+        using TColumns = TableColumns;
+    };
+
     // Index tables
 
     // InsertTable - common for all indices
@@ -264,14 +306,33 @@ struct Schema : NIceDb::Schema {
 
     struct Operations : NIceDb::Schema::Table {
         struct WriteId : Column<1, NScheme::NTypeIds::Uint64> {};
-        struct TxId : Column<2, NScheme::NTypeIds::Uint64> {};
+        struct LockId : Column<2, NScheme::NTypeIds::Uint64> {};
         struct Status : Column<3, NScheme::NTypeIds::Uint32> {};
         struct CreatedAt : Column<4, NScheme::NTypeIds::Uint64> {};
         struct GlobalWriteId : Column<5, NScheme::NTypeIds::Uint64> {};
         struct Metadata : Column<6, NScheme::NTypeIds::String> {};
+        struct Cookie : Column<7, NScheme::NTypeIds::Uint64> {};
 
         using TKey = TableKey;
-        using TColumns = TableColumns;
+        using TColumns = TableColumns;
+    };
+
+    struct OperationTxIds : NIceDb::Schema::Table {
+        struct TxId : Column<1, NScheme::NTypeIds::Uint64> {};
+        struct LockId : Column<2, NScheme::NTypeIds::Uint64> {};
+
+        using TKey = TableKey;
+        using TColumns = TableColumns;
+    };
+
+    struct ExportPersistentSessions : NIceDb::Schema::Table {
+        struct Identifier : Column<1, NScheme::NTypeIds::String> {};
+        struct Status: Column<2, NScheme::NTypeIds::String> {};
+        struct Task: Column<3, NScheme::NTypeIds::String> {};
+        struct Cursor: Column<4, NScheme::NTypeIds::String> {};
+
+        using TKey = TableKey;
+        using TColumns = TableColumns;
     };
 
     struct TierBlobsDraft: NIceDb::Schema::Table<(ui32)ETierTables::TierBlobsDraft> {
@@ -290,6 +351,15 @@ struct Schema : NIceDb::Schema {
         using TColumns = TableColumns;
     };
 
+    struct TierBlobsToDeleteWT: NIceDb::Schema::Table<(ui32)ETierTables::TierBlobsToDeleteWT> {
+        struct StorageId: Column<1, NScheme::NTypeIds::String> {};
+        struct BlobId: Column<2, NScheme::NTypeIds::String> {};
+        struct TabletId: Column<3, NScheme::NTypeIds::Uint64> {};
+
+        using TKey = TableKey;
+        using TColumns = TableColumns;
+    };
+
     struct IndexIndexes: NIceDb::Schema::Table {
         struct PathId: Column<1, NScheme::NTypeIds::Uint64> {};
         struct PortionId: Column<2, NScheme::NTypeIds::Uint64> {};
@@ -305,6 +375,83 @@ struct Schema : NIceDb::Schema {
         using TColumns = TableColumns;
     };
 
+    struct SharedBlobIds: NIceDb::Schema::Table {
+        struct StorageId: Column<1, NScheme::NTypeIds::String> {};
+        struct BlobId: Column<2, NScheme::NTypeIds::String> {};
+        struct TabletId: Column<3, NScheme::NTypeIds::Uint64> {};
+
+        using TKey = TableKey;
+        using TColumns = TableColumns;
+    };
+
+    struct BorrowedBlobIds: NIceDb::Schema::Table {
+        struct StorageId: Column<1, NScheme::NTypeIds::String> {};
+        struct BlobId: Column<2, NScheme::NTypeIds::String> {};
+        struct TabletId: Column<3, NScheme::NTypeIds::Uint64> {};
+
+        using TKey = TableKey;
+        using TColumns = TableColumns;
+    };
+
+    struct SourceSessions: NIceDb::Schema::Table {
+        struct SessionId: Column<1, NScheme::NTypeIds::String> {};
+        struct Details: Column<2, NScheme::NTypeIds::String> {};
+        struct CursorDynamic: Column<3, NScheme::NTypeIds::String> {};
+        struct CursorStatic: Column<4, NScheme::NTypeIds::String> {};
+
+        using TKey = TableKey;
+        using TColumns = TableColumns;
+    };
+
+    struct DestinationSessions: NIceDb::Schema::Table {
+        struct SessionId: Column<1, NScheme::NTypeIds::String> {};
+        struct Details: Column<2, NScheme::NTypeIds::String> {};
+        struct Cursor: Column<3, NScheme::NTypeIds::String> {};
+
+        using TKey = TableKey;
+        using TColumns = TableColumns;
+    };
+
+    struct Locks : Table {
+        struct LockId : Column<1, NScheme::NTypeIds::Uint64> {};
+        struct LockNodeId : Column<2, NScheme::NTypeIds::Uint32> {};
+        struct Generation : Column<3, NScheme::NTypeIds::Uint32> {};
+        struct Counter : Column<4, NScheme::NTypeIds::Uint64> {};
+        struct CreateTimestamp : Column<5, NScheme::NTypeIds::Uint64> {};
+        struct Flags : Column<6, NScheme::NTypeIds::Uint64> {};
+
+        using TKey = TableKey;
+        using TColumns = TableColumns;
+    };
+
+    struct LockRanges : Table {
+        struct LockId : Column<1, NScheme::NTypeIds::Uint64> {};
+        struct RangeId : Column<2, NScheme::NTypeIds::Uint64> {};
+        struct PathOwnerId : Column<3, NScheme::NTypeIds::Uint64> {};
+        struct LocalPathId : Column<4, NScheme::NTypeIds::Uint64> {};
+        struct Flags : Column<5, NScheme::NTypeIds::Uint64> {};
+        struct Data : Column<6, NScheme::NTypeIds::String> {};
+
+        using TKey = TableKey;
+        using TColumns = TableColumns;
+    };
+
+    struct LockConflicts : Table {
+        struct LockId : Column<1, NScheme::NTypeIds::Uint64> {};
+        struct ConflictId : Column<2, NScheme::NTypeIds::Uint64> {};
+
+        using TKey = TableKey;
+        using TColumns = TableColumns;
+    };
+
+    struct LockVolatileDependencies : Table {
+        struct LockId : Column<1, NScheme::NTypeIds::Uint64> {};
+        struct TxId : Column<2, NScheme::NTypeIds::Uint64> {};
+
+        using TKey = TableKey;
+        using TColumns = TableColumns;
+    };
+
     using TTables = SchemaTables<
         Value,
         TxInfo,
@@ -317,6 +464,7 @@ struct Schema : NIceDb::Schema {
         LongTxWrites,
         BlobsToKeep,
         BlobsToDelete,
+        BlobsToDeleteWT,
         InsertTable,
         IndexGranules,
         IndexColumns,
@@ -326,7 +474,14 @@ struct Schema : NIceDb::Schema {
         Operations,
         TierBlobsDraft,
         TierBlobsToDelete,
-        IndexIndexes
+        TierBlobsToDeleteWT,
+        IndexIndexes,
+        SharedBlobIds,
+        BorrowedBlobIds,
+        SourceSessions,
+        DestinationSessions,
+        OperationTxIds,
+        ExportPersistentSessions
         >;
 
     //
@@ -347,8 +502,23 @@ struct Schema : NIceDb::Schema {
 
         auto rowset = db.Table().Key((ui32)key).Select();
         if (rowset.IsReady()) {
-            if (rowset.IsValid())
+            if (rowset.IsValid()) {
+                value = T{rowset.template GetValue()};
+                return true;
+            }
+        }
+        return false;
+    }
+
+    template 
+    static bool GetSpecialValueOpt(NIceDb::TNiceDb& db, EValueIds key, T& value) {
+        using TSource = std::conditional_t || std::is_enum_v, Value::Digit, Value::Bytes>;
+
+        auto rowset = db.Table().Key((ui32)key).Select();
+        if (rowset.IsReady()) {
+            if (rowset.IsValid()) {
                 value = T{rowset.template GetValue()};
+            }
             return true;
         }
         return false;
@@ -548,26 +718,6 @@ struct Schema : NIceDb::Schema {
         }
         return true;
     }
-
-    // Operations
-    static void Operations_Write(NIceDb::TNiceDb& db, const TWriteOperation& operation) {
-        TString metadata;
-        NKikimrTxColumnShard::TInternalOperationData proto;
-        operation.ToProto(proto);
-        Y_ABORT_UNLESS(proto.SerializeToString(&metadata));
-
-        db.Table().Key((ui64)operation.GetWriteId()).Update(
-            NIceDb::TUpdate((ui32)operation.GetStatus()),
-            NIceDb::TUpdate(operation.GetCreatedAt().Seconds()),
-            NIceDb::TUpdate(metadata),
-            NIceDb::TUpdate(operation.GetTxId())
-        );
-    }
-
-    static void Operations_Erase(NIceDb::TNiceDb& db, const TWriteId writeId) {
-        db.Table().Key((ui64)writeId).Delete();
-    }
-
 };
 
 }
@@ -623,8 +773,8 @@ class TIndexChunkLoadContext {
     const ui32 RecordsCount;
     const ui32 RawBytes;
 public:
-    TIndexChunk BuildIndexChunk() const {
-        return TIndexChunk(Address.GetColumnId(), Address.GetChunkIdx(), RecordsCount, RawBytes, BlobRange);
+    TIndexChunk BuildIndexChunk(const TBlobRangeLink16::TLinkId blobLinkId) const {
+        return TIndexChunk(Address.GetColumnId(), Address.GetChunkIdx(), RecordsCount, RawBytes, BlobRange.BuildLink(blobLinkId));
     }
 
     template 
diff --git a/ydb/core/tx/columnshard/columnshard_ttl.h b/ydb/core/tx/columnshard/columnshard_ttl.h
index 77d401c64ade..de2378737e95 100644
--- a/ydb/core/tx/columnshard/columnshard_ttl.h
+++ b/ydb/core/tx/columnshard/columnshard_ttl.h
@@ -65,10 +65,13 @@ class TTtl {
         PathTtls.erase(pathId);
     }
 
-    void AddTtls(THashMap& eviction) const {
+    bool AddTtls(THashMap& eviction) const {
         for (auto& [pathId, descr] : PathTtls) {
-            eviction[pathId].Ttl = Convert(descr);
+            if (!eviction[pathId].Add(Convert(descr))) {
+                return false;
+            }
         }
+        return true;
     }
 
     const THashSet& TtlColumns() const { return Columns; }
diff --git a/ydb/core/tx/columnshard/columnshard_ut_common.cpp b/ydb/core/tx/columnshard/columnshard_ut_common.cpp
index 8df44d7df997..5e6794ff6cc3 100644
--- a/ydb/core/tx/columnshard/columnshard_ut_common.cpp
+++ b/ydb/core/tx/columnshard/columnshard_ut_common.cpp
@@ -1,11 +1,14 @@
 #include "columnshard_ut_common.h"
 
-#include "columnshard__stats_scan.h"
 #include "common/tests/shard_reader.h"
+#include "engines/reader/sys_view/chunks/chunks.h"
+#include 
 
 #include 
 #include 
 #include 
+#include 
+#include 
 #include 
 
 namespace NKikimr::NTxUT {
@@ -123,7 +126,7 @@ bool WriteDataImpl(TTestBasicRuntime& runtime, TActorId& sender, const ui64 shar
 }
 
 bool WriteData(TTestBasicRuntime& runtime, TActorId& sender, const ui64 shardId, const ui64 writeId, const ui64 tableId, const TString& data,
-                              const std::vector>& ydbSchema, std::vector* writeIds) {
+                              const std::vector& ydbSchema, std::vector* writeIds) {
     NLongTxService::TLongTxId longTxId;
     UNIT_ASSERT(longTxId.ParseString("ydb://long-tx/01ezvvxjdk2hd4vdgjs68knvp8?node_id=1"));
     return WriteDataImpl(runtime, sender, shardId, tableId, longTxId, writeId, data, NArrow::MakeArrowSchema(ydbSchema), writeIds);
@@ -131,7 +134,7 @@ bool WriteData(TTestBasicRuntime& runtime, TActorId& sender, const ui64 shardId,
 }
 
 bool WriteData(TTestBasicRuntime& runtime, TActorId& sender, const ui64 writeId, const ui64 tableId, const TString& data,
-                              const std::vector>& ydbSchema, bool waitResult, std::vector* writeIds) {
+                              const std::vector& ydbSchema, bool waitResult, std::vector* writeIds) {
     NLongTxService::TLongTxId longTxId;
     UNIT_ASSERT(longTxId.ParseString("ydb://long-tx/01ezvvxjdk2hd4vdgjs68knvp8?node_id=1"));
     if (writeIds) {
@@ -143,7 +146,7 @@ bool WriteData(TTestBasicRuntime& runtime, TActorId& sender, const ui64 writeId,
 
 std::optional WriteData(TTestBasicRuntime& runtime, TActorId& sender, const NLongTxService::TLongTxId& longTxId,
                               ui64 tableId, const ui64 writePartId, const TString& data,
-                              const std::vector>& ydbSchema)
+                              const std::vector& ydbSchema)
 {
     auto write = std::make_unique(sender, longTxId, tableId, "0", data, writePartId);
     write->SetArrowSchema(NArrow::SerializeSchema(*NArrow::MakeArrowSchema(ydbSchema)));
@@ -174,7 +177,7 @@ void ScanIndexStats(TTestBasicRuntime& runtime, TActorId& sender, const std::vec
 
     // Schema: pathId, kind, rows, bytes, rawBytes. PK: {pathId, kind}
     //record.SetSchemaVersion(0);
-    auto ydbSchema = PrimaryIndexStatsSchema;
+    auto ydbSchema = NOlap::NReader::NSysView::NChunks::TStatsIterator::StatsSchema;
     for (const auto& col : ydbSchema.Columns) {
         record.AddColumnTags(col.second.Id);
         auto columnType = NScheme::ProtoColumnTypeFromTypeInfoMod(col.second.PType, col.second.PTypeMod);
@@ -295,18 +298,17 @@ std::vector MakeTestCells(const std::vector& types, ui32 value
 }
 
 
-TString MakeTestBlob(std::pair range, const std::vector>& columns,
+TString MakeTestBlob(std::pair range, const std::vector& columns,
                      const TTestBlobOptions& options, const std::set& notNullColumns) {
-    TString err;
     NArrow::TArrowBatchBuilder batchBuilder(arrow::Compression::LZ4_FRAME, notNullColumns);
-    batchBuilder.Start(columns, 0, 0, err);
-
+    const auto startStatus = batchBuilder.Start(NArrow::NTest::TTestColumn::ConvertToPairs(columns));
+    UNIT_ASSERT_C(startStatus.ok(), startStatus.ToString());
     std::vector nullPositions;
     std::vector samePositions;
     for (size_t i = 0; i < columns.size(); ++i) {
-        if (options.NullColumns.contains(columns[i].first)) {
+        if (options.NullColumns.contains(columns[i].GetName())) {
             nullPositions.push_back(i);
-        } else if (options.SameValueColumns.contains(columns[i].first)) {
+        } else if (options.SameValueColumns.contains(columns[i].GetName())) {
             samePositions.push_back(i);
         }
     }
@@ -348,7 +350,7 @@ TString MakeTestBlob(std::pair range, const std::vector range, bool inclusiveFrom, bool inclusiveTo,
-                                    const std::vector>& columns) {
+                                    const std::vector& columns) {
     std::vector mem;
     std::vector types = TTestSchema::ExtractTypes(columns);
     std::vector cellsFrom = MakeTestCells(types, range.first, mem);
@@ -375,10 +377,10 @@ NMetadata::NFetcher::ISnapshot::TPtr TTestSchema::BuildSnapshot(const TTableSpec
             cProto.SetName(tier.Name);
             *cProto.MutableObjectStorage() = tier.S3;
             if (tier.Codec) {
-                cProto.MutableCompression()->SetCompressionCodec(tier.GetCodecId());
+                cProto.MutableCompression()->SetCodec(tier.GetCodecId());
             }
             if (tier.CompressionLevel) {
-                cProto.MutableCompression()->SetCompressionLevel(*tier.CompressionLevel);
+                cProto.MutableCompression()->SetLevel(*tier.CompressionLevel);
             }
             NColumnShard::NTiers::TTierConfig tConfig(tier.Name, cProto);
             cs->MutableTierConfigs().emplace(tConfig.GetTierName(), tConfig);
@@ -392,31 +394,48 @@ NMetadata::NFetcher::ISnapshot::TPtr TTestSchema::BuildSnapshot(const TTableSpec
 }
 
 namespace NKikimr::NColumnShard {
-    NOlap::TIndexInfo BuildTableInfo(const std::vector>& ydbSchema,
-                         const std::vector>& key) {
+    NOlap::TIndexInfo BuildTableInfo(const std::vector& ydbSchema,
+                         const std::vector& key) {
         NOlap::TIndexInfo indexInfo = NOlap::TIndexInfo::BuildDefault();
 
         for (ui32 i = 0; i < ydbSchema.size(); ++i) {
             ui32 id = i + 1;
-            auto& name = ydbSchema[i].first;
-            auto& type = ydbSchema[i].second;
+            auto& name = ydbSchema[i].GetName();
+            auto& type = ydbSchema[i].GetType();
 
             indexInfo.Columns[id] = NTable::TColumn(name, id, type, "");
             indexInfo.ColumnNames[name] = id;
         }
 
-        for (const auto& [keyName, keyType] : key) {
-            indexInfo.KeyColumns.push_back(indexInfo.ColumnNames[keyName]);
+        for (const auto& c : key) {
+            indexInfo.KeyColumns.push_back(indexInfo.ColumnNames[c.GetName()]);
         }
 
-        indexInfo.SetAllKeys();
+        auto storage = std::make_shared();
+        storage->Initialize();
+        indexInfo.SetAllKeys(NOlap::TTestStoragesManager::GetInstance());
         return indexInfo;
     }
 
+    void SetupSchema(TTestBasicRuntime& runtime, TActorId& sender, const TString& txBody, const NOlap::TSnapshot& snapshot, bool succeed) {
+
+        auto controller = NYDBTest::TControllers::GetControllerAs();
+        while (controller && !controller->IsActiveTablet(TTestTxConfig::TxTablet0)) {
+            runtime.SimulateSleep(TDuration::Seconds(1));
+        }
+
+        using namespace NTxUT;
+        bool ok = ProposeSchemaTx(runtime, sender, txBody, snapshot);
+        UNIT_ASSERT_VALUES_EQUAL(ok, succeed);
+        if (succeed) {
+            PlanSchemaTx(runtime, sender, snapshot);
+        }
+    }
+
     void SetupSchema(TTestBasicRuntime& runtime, TActorId& sender, ui64 pathId,
                  const TestTableDescription& table, TString codec) {
         using namespace NTxUT;
-        NOlap::TSnapshot snap(10, 10);
+        NOlap::TSnapshot snapshot(10, 10);
         TString txBody;
         auto specials = TTestSchema::TTableSpecials().WithCodec(codec);
         if (table.InStore) {
@@ -424,13 +443,11 @@ namespace NKikimr::NColumnShard {
         } else {
             txBody = TTestSchema::CreateStandaloneTableTxBody(pathId, table.Schema, table.Pk, specials);
         }
-        bool ok = ProposeSchemaTx(runtime, sender, txBody, snap);
-        UNIT_ASSERT(ok);
-
-        PlanSchemaTx(runtime, sender, snap);
+        SetupSchema(runtime, sender, txBody, snapshot, true);
     }
 
-    void PrepareTablet(TTestBasicRuntime& runtime, const ui64 tableId, const std::vector>& schema, const ui32 keySize) {
+
+    void PrepareTablet(TTestBasicRuntime& runtime, const ui64 tableId, const std::vector& schema, const ui32 keySize) {
         using namespace NTxUT;
         CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::TxTablet0, TTabletTypes::ColumnShard), &CreateColumnShard);
 
@@ -449,10 +466,22 @@ namespace NKikimr::NColumnShard {
         SetupSchema(runtime, sender, tableId, tableDescription);
     }
 
-    std::shared_ptr ReadAllAsBatch(TTestBasicRuntime& runtime, const ui64 tableId, const NOlap::TSnapshot& snapshot, const std::vector>& schema) {
+    void PrepareTablet(TTestBasicRuntime& runtime, const TString& schemaTxBody, bool succeed) {
+        using namespace NTxUT;
+        CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::TxTablet0, TTabletTypes::ColumnShard), &CreateColumnShard);
+
+        TDispatchOptions options;
+        options.FinalEvents.push_back(TDispatchOptions::TFinalEventCondition(TEvTablet::EvBoot));
+        runtime.DispatchEvents(options);
+
+        TActorId sender = runtime.AllocateEdgeActor();
+        SetupSchema(runtime, sender, schemaTxBody, NOlap::TSnapshot(1000, 100), succeed);
+    }
+
+    std::shared_ptr ReadAllAsBatch(TTestBasicRuntime& runtime, const ui64 tableId, const NOlap::TSnapshot& snapshot, const std::vector& schema) {
         std::vector fields;
         for (auto&& f : schema) {
-            fields.emplace_back(f.first);
+            fields.emplace_back(f.GetName());
         }
 
         NOlap::NTests::TShardReader reader(runtime, TTestTxConfig::TxTablet0, tableId, snapshot);
diff --git a/ydb/core/tx/columnshard/columnshard_ut_common.h b/ydb/core/tx/columnshard/columnshard_ut_common.h
index 0ea35595f338..e5bbe8d10997 100644
--- a/ydb/core/tx/columnshard/columnshard_ut_common.h
+++ b/ydb/core/tx/columnshard/columnshard_ut_common.h
@@ -3,15 +3,16 @@
 #include "columnshard.h"
 #include "columnshard_impl.h"
 #include "blob_cache.h"
+#include "engines/scheme/statistics/max/operator.h"
 
 #include 
+#include 
 #include 
 #include 
 #include 
 #include 
 #include 
 
-
 namespace NKikimr::NTxUT {
 
 // Private events of different actors reuse the same ES_PRIVATE range
@@ -50,6 +51,10 @@ struct TTestSchema {
             : Name(name)
         {}
 
+        TString DebugString() const {
+            return TStringBuilder() << "{Column=" << TtlColumn << ";EvictAfter=" << EvictAfter.value_or(TDuration::Zero()) << ";Name=" << Name << ";Codec=" << Codec << "};";
+        }
+
         NKikimrSchemeOp::EColumnCodec GetCodecId() const {
             if (Codec == "none") {
                 return NKikimrSchemeOp::EColumnCodec::ColumnCodecPlain;
@@ -95,6 +100,7 @@ struct TTestSchema {
             s3Config.SetProxyScheme(NKikimrSchemeOp::TS3Settings::HTTP);
 #else
             s3Config.SetEndpoint("fake");
+            s3Config.SetSecretKey("fakeSecret");
 #endif
             s3Config.SetRequestTimeoutMs(10000);
             s3Config.SetHttpRequestTimeoutMs(10000);
@@ -104,11 +110,22 @@ struct TTestSchema {
     };
 
     struct TTableSpecials : public TStorageTier {
+    private:
+        bool NeedTestStatisticsFlag = true;
+    public:
         std::vector Tiers;
         bool WaitEmptyAfter = false;
 
         TTableSpecials() noexcept = default;
 
+        bool NeedTestStatistics() const {
+            return NeedTestStatisticsFlag;
+        }
+
+        void SetNeedTestStatistics(const bool value) {
+            NeedTestStatisticsFlag = value;
+        }
+
         bool HasTiers() const {
             return !Tiers.empty();
         }
@@ -127,107 +144,110 @@ struct TTestSchema {
             EvictAfter = ttl;
             return *this;
         }
-    };
 
-    static auto YdbSchema(const std::pair& firstKeyItem = {"timestamp", TTypeInfo(NTypeIds::Timestamp) }) {
-        std::vector> schema = {
+        TString DebugString() const {
+            auto result =  TStringBuilder() << "WaitEmptyAfter=" << WaitEmptyAfter << ";Tiers=";
+            for (auto&& tier : Tiers) {
+                result << "{" << tier.DebugString() << "}";
+            }
+            result << ";TTL=" << TStorageTier::DebugString();
+            return result;
+        }
+    };
+    using TTestColumn = NArrow::NTest::TTestColumn;
+    static auto YdbSchema(const TTestColumn& firstKeyItem = TTestColumn("timestamp", TTypeInfo(NTypeIds::Timestamp))) {
+        std::vector schema = {
             // PK
             firstKeyItem,
-            {"resource_type", TTypeInfo(NTypeIds::Utf8) },
-            {"resource_id", TTypeInfo(NTypeIds::Utf8) },
-            {"uid", TTypeInfo(NTypeIds::Utf8) },
-            {"level", TTypeInfo(NTypeIds::Int32) },
-            {"message", TTypeInfo(NTypeIds::Utf8) },
-            {"json_payload", TTypeInfo(NTypeIds::Json) },
-            {"ingested_at", TTypeInfo(NTypeIds::Timestamp) },
-            {"saved_at", TTypeInfo(NTypeIds::Timestamp) },
-            {"request_id", TTypeInfo(NTypeIds::Utf8) }
+            TTestColumn("resource_type", TTypeInfo(NTypeIds::Utf8) ),
+            TTestColumn("resource_id", TTypeInfo(NTypeIds::Utf8) ),
+            TTestColumn("uid", TTypeInfo(NTypeIds::Utf8) ).SetStorageId("__MEMORY"),
+            TTestColumn("level", TTypeInfo(NTypeIds::Int32) ),
+            TTestColumn("message", TTypeInfo(NTypeIds::Utf8) ).SetStorageId("__MEMORY"),
+            TTestColumn("json_payload", TTypeInfo(NTypeIds::Json) ),
+            TTestColumn("ingested_at", TTypeInfo(NTypeIds::Timestamp) ),
+            TTestColumn("saved_at", TTypeInfo(NTypeIds::Timestamp) ),
+            TTestColumn("request_id", TTypeInfo(NTypeIds::Utf8) )
         };
         return schema;
     };
 
     static auto YdbExoticSchema() {
-        std::vector> schema = {
+        std::vector schema = {
             // PK
-            {"timestamp", TTypeInfo(NTypeIds::Timestamp) },
-            {"resource_type", TTypeInfo(NTypeIds::Utf8) },
-            {"resource_id", TTypeInfo(NTypeIds::Utf8) },
-            {"uid", TTypeInfo(NTypeIds::Utf8) },
+            TTestColumn("timestamp", TTypeInfo(NTypeIds::Timestamp) ),
+            TTestColumn("resource_type", TTypeInfo(NTypeIds::Utf8) ),
+            TTestColumn("resource_id", TTypeInfo(NTypeIds::Utf8) ),
+            TTestColumn("uid", TTypeInfo(NTypeIds::Utf8) ).SetStorageId("__MEMORY"),
             //
-            {"level", TTypeInfo(NTypeIds::Int32) },
-            {"message", TTypeInfo(NTypeIds::String4k) },
-            {"json_payload", TTypeInfo(NTypeIds::JsonDocument) },
-            {"ingested_at", TTypeInfo(NTypeIds::Timestamp) },
-            {"saved_at", TTypeInfo(NTypeIds::Timestamp) },
-            {"request_id", TTypeInfo(NTypeIds::Yson) }
+            TTestColumn("level", TTypeInfo(NTypeIds::Int32) ),
+            TTestColumn("message", TTypeInfo(NTypeIds::String4k) ).SetStorageId("__MEMORY"),
+            TTestColumn("json_payload", TTypeInfo(NTypeIds::JsonDocument) ),
+            TTestColumn("ingested_at", TTypeInfo(NTypeIds::Timestamp) ),
+            TTestColumn("saved_at", TTypeInfo(NTypeIds::Timestamp) ),
+            TTestColumn("request_id", TTypeInfo(NTypeIds::Yson) )
         };
         return schema;
     };
 
     static auto YdbPkSchema() {
-        std::vector> schema = {
-            {"timestamp", TTypeInfo(NTypeIds::Timestamp) },
-            {"resource_type", TTypeInfo(NTypeIds::Utf8) },
-            {"resource_id", TTypeInfo(NTypeIds::Utf8) },
-            {"uid", TTypeInfo(NTypeIds::Utf8) }
+        std::vector schema = {
+            TTestColumn("timestamp", TTypeInfo(NTypeIds::Timestamp) ),
+            TTestColumn("resource_type", TTypeInfo(NTypeIds::Utf8) ).SetStorageId("__MEMORY"),
+            TTestColumn("resource_id", TTypeInfo(NTypeIds::Utf8) ),
+            TTestColumn("uid", TTypeInfo(NTypeIds::Utf8) ).SetStorageId("__MEMORY")
         };
         return schema;
     }
 
     static auto YdbAllTypesSchema() {
-        std::vector> schema = {
-            { "ts", TTypeInfo(NTypeIds::Timestamp) },
-
-            { "i8", TTypeInfo(NTypeIds::Int8) },
-            { "i16", TTypeInfo(NTypeIds::Int16) },
-            { "i32", TTypeInfo(NTypeIds::Int32) },
-            { "i64", TTypeInfo(NTypeIds::Int64) },
-            { "u8", TTypeInfo(NTypeIds::Uint8) },
-            { "u16", TTypeInfo(NTypeIds::Uint16) },
-            { "u32", TTypeInfo(NTypeIds::Uint32) },
-            { "u64", TTypeInfo(NTypeIds::Uint64) },
-            { "float", TTypeInfo(NTypeIds::Float) },
-            { "double", TTypeInfo(NTypeIds::Double) },
-
-            { "byte", TTypeInfo(NTypeIds::Byte) },
+        std::vector schema = {
+            TTestColumn("ts", TTypeInfo(NTypeIds::Timestamp) ),
+
+            TTestColumn( "i8", TTypeInfo(NTypeIds::Int8) ),
+            TTestColumn( "i16", TTypeInfo(NTypeIds::Int16) ),
+            TTestColumn( "i32", TTypeInfo(NTypeIds::Int32) ),
+            TTestColumn( "i64", TTypeInfo(NTypeIds::Int64) ),
+            TTestColumn( "u8", TTypeInfo(NTypeIds::Uint8) ),
+            TTestColumn( "u16", TTypeInfo(NTypeIds::Uint16) ),
+            TTestColumn( "u32", TTypeInfo(NTypeIds::Uint32) ),
+            TTestColumn( "u64", TTypeInfo(NTypeIds::Uint64) ),
+            TTestColumn( "float", TTypeInfo(NTypeIds::Float) ),
+            TTestColumn( "double", TTypeInfo(NTypeIds::Double) ),
+
+            TTestColumn("byte", TTypeInfo(NTypeIds::Byte) ),
             //{ "bool", TTypeInfo(NTypeIds::Bool) },
             //{ "decimal", TTypeInfo(NTypeIds::Decimal) },
             //{ "dynum", TTypeInfo(NTypeIds::DyNumber) },
 
-            { "date", TTypeInfo(NTypeIds::Date) },
-            { "datetime", TTypeInfo(NTypeIds::Datetime) },
+            TTestColumn( "date", TTypeInfo(NTypeIds::Date) ),
+            TTestColumn( "datetime", TTypeInfo(NTypeIds::Datetime) ),
             //{ "interval", TTypeInfo(NTypeIds::Interval) },
 
-            {"text", TTypeInfo(NTypeIds::Text) },
-            {"bytes", TTypeInfo(NTypeIds::Bytes) },
-            {"yson", TTypeInfo(NTypeIds::Yson) },
-            {"json", TTypeInfo(NTypeIds::Json) },
-            {"jsondoc", TTypeInfo(NTypeIds::JsonDocument) }
+            TTestColumn("text", TTypeInfo(NTypeIds::Text) ),
+            TTestColumn("bytes", TTypeInfo(NTypeIds::Bytes) ),
+            TTestColumn("yson", TTypeInfo(NTypeIds::Yson) ),
+            TTestColumn("json", TTypeInfo(NTypeIds::Json) ),
+            TTestColumn("jsondoc", TTypeInfo(NTypeIds::JsonDocument) )
         };
         return schema;
     };
 
-    static NKikimrSchemeOp::TOlapColumnDescription CreateColumn(ui32 id, const TString& name, TTypeInfo type) {
-        NKikimrSchemeOp::TOlapColumnDescription col;
-        col.SetId(id);
-        col.SetName(name);
-        auto columnType = NScheme::ProtoColumnTypeFromTypeInfoMod(type, "");
-        col.SetTypeId(columnType.TypeId);
-        if (columnType.TypeInfo) {
-            *col.MutableTypeInfo() = *columnType.TypeInfo;
-        }
-        return col;
-    }
-
-    static void InitSchema(const std::vector>& columns,
-                           const std::vector>& pk,
+    static void InitSchema(const std::vector& columns,
+                           const std::vector& pk,
                            const TTableSpecials& specials,
                            NKikimrSchemeOp::TColumnTableSchema* schema)
     {
         schema->SetEngine(NKikimrSchemeOp::COLUMN_ENGINE_REPLACING_TIMESERIES);
 
         for (ui32 i = 0; i < columns.size(); ++i) {
-            *schema->MutableColumns()->Add() = CreateColumn(i + 1, columns[i].first, columns[i].second);
+            *schema->MutableColumns()->Add() = columns[i].CreateColumn(i + 1);
+            if (!specials.NeedTestStatistics()) {
+                continue;
+            }
+            if (NOlap::NStatistics::NMax::TOperator::IsAvailableType(columns[i].GetType())) {
+                *schema->AddStatistics() = NOlap::NStatistics::TOperatorContainer("MAX::" + columns[i].GetName(), std::make_shared(i + 1)).SerializeToProto();
+            }
         }
 
         Y_ABORT_UNLESS(pk.size() > 0);
@@ -236,10 +256,10 @@ struct TTestSchema {
         }
 
         if (specials.HasCodec()) {
-            schema->MutableDefaultCompression()->SetCompressionCodec(specials.GetCodecId());
+            schema->MutableDefaultCompression()->SetCodec(specials.GetCodecId());
         }
         if (specials.CompressionLevel) {
-            schema->MutableDefaultCompression()->SetCompressionLevel(*specials.CompressionLevel);
+            schema->MutableDefaultCompression()->SetLevel(*specials.CompressionLevel);
         }
     }
 
@@ -261,12 +281,13 @@ struct TTestSchema {
         return specials.HasTiers() || specials.HasTtl();
     }
 
-    static TString CreateTableTxBody(ui64 pathId, const std::vector>& columns,
-        const std::vector>& pk,
-        const TTableSpecials& specialsExt = {})
+    static TString CreateTableTxBody(ui64 pathId, const std::vector& columns,
+        const std::vector& pk,
+        const TTableSpecials& specialsExt = {}, ui64 generation = 0)
     {
         auto specials = specialsExt;
         NKikimrTxColumnShard::TSchemaTxBody tx;
+        tx.MutableSeqNo()->SetGeneration(generation);
         auto* table = tx.MutableEnsureTables()->AddTables();
         table->SetPathId(pathId);
 
@@ -288,8 +309,8 @@ struct TTestSchema {
         return out;
     }
 
-    static TString CreateInitShardTxBody(ui64 pathId, const std::vector>& columns,
-        const std::vector>& pk,
+    static TString CreateInitShardTxBody(ui64 pathId, const std::vector& columns,
+        const std::vector& pk,
         const TTableSpecials& specials = {}, const TString& ownerPath = "/Root/olap") {
         NKikimrTxColumnShard::TSchemaTxBody tx;
         auto* table = tx.MutableInitShard()->AddTables();
@@ -306,8 +327,8 @@ struct TTestSchema {
         return out;
     }
 
-    static TString CreateStandaloneTableTxBody(ui64 pathId, const std::vector>& columns,
-                                               const std::vector>& pk,
+    static TString CreateStandaloneTableTxBody(ui64 pathId, const std::vector& columns,
+                                               const std::vector& pk,
                                                const TTableSpecials& specials = {}) {
         NKikimrTxColumnShard::TSchemaTxBody tx;
         auto* table = tx.MutableEnsureTables()->AddTables();
@@ -377,20 +398,20 @@ struct TTestSchema {
         return txBody;
     }
 
-    static std::vector ExtractNames(const std::vector>& columns) {
+    static std::vector ExtractNames(const std::vector& columns) {
         std::vector out;
         out.reserve(columns.size());
         for (auto& col : columns) {
-            out.push_back(col.first);
+            out.push_back(col.GetName());
         }
         return out;
     }
 
-    static std::vector ExtractTypes(const std::vector>& columns) {
+    static std::vector ExtractTypes(const std::vector& columns) {
         std::vector types;
         types.reserve(columns.size());
-        for (auto& [name, type] : columns) {
-            types.push_back(type);
+        for (auto& i : columns) {
+            types.push_back(i.GetType());
         }
         return types;
     }
@@ -403,14 +424,14 @@ void PlanSchemaTx(TTestBasicRuntime& runtime, TActorId& sender, NOlap::TSnapshot
 void PlanWriteTx(TTestBasicRuntime& runtime, TActorId& sender, NOlap::TSnapshot snap, bool waitResult = true);
 
 bool WriteData(TTestBasicRuntime& runtime, TActorId& sender, const ui64 shardId, const ui64 writeId, const ui64 tableId, const TString& data,
-                              const std::vector>& ydbSchema, std::vector* writeIds);
+                              const std::vector& ydbSchema, std::vector* writeIds);
 
 bool WriteData(TTestBasicRuntime& runtime, TActorId& sender, const ui64 writeId, const ui64 tableId, const TString& data,
-                              const std::vector>& ydbSchema, bool waitResult = true, std::vector* writeIds = nullptr);
+                              const std::vector& ydbSchema, bool waitResult = true, std::vector* writeIds = nullptr);
 
 std::optional WriteData(TTestBasicRuntime& runtime, TActorId& sender, const NLongTxService::TLongTxId& longTxId,
                               ui64 tableId, const ui64 writePartId, const TString& data,
-                              const std::vector>& ydbSchema);
+                              const std::vector& ydbSchema);
 
 ui32 WaitWriteResult(TTestBasicRuntime& runtime, ui64 shardId, std::vector* writeIds = nullptr);
 
@@ -436,10 +457,10 @@ struct TTestBlobOptions {
 };
 
 TCell MakeTestCell(const TTypeInfo& typeInfo, ui32 value, std::vector& mem);
-TString MakeTestBlob(std::pair range, const std::vector>& columns,
+TString MakeTestBlob(std::pair range, const std::vector& columns,
                      const TTestBlobOptions& options = {}, const std::set& notNullColumns = {});
 TSerializedTableRange MakeTestRange(std::pair range, bool inclusiveFrom, bool inclusiveTo,
-                                    const std::vector>& columns);
+                                    const std::vector& columns);
 
 
 }
@@ -508,6 +529,13 @@ namespace NKikimr::NColumnShard {
             Y_ABORT_UNLESS(Builders.size() == schema->fields().size());
         }
 
+        TTableUpdatesBuilder(arrow::Result> schema) {
+            UNIT_ASSERT_C(schema.ok(), schema.status().ToString());
+            Schema = schema.ValueUnsafe();
+            Builders = NArrow::MakeBuilders(Schema);
+            Y_ABORT_UNLESS(Builders.size() == Schema->fields().size());
+        }
+
         TRowBuilder AddRow() {
             ++RowsCount;
             return TRowBuilder(0, *this);
@@ -525,20 +553,22 @@ namespace NKikimr::NColumnShard {
         }
     };
 
-    NOlap::TIndexInfo BuildTableInfo(const std::vector>& ydbSchema,
-                         const std::vector>& key);
+    NOlap::TIndexInfo BuildTableInfo(const std::vector& ydbSchema,
+                         const std::vector& key);
 
 
     struct TestTableDescription {
-        std::vector> Schema = NTxUT::TTestSchema::YdbSchema();
-        std::vector> Pk = NTxUT::TTestSchema::YdbPkSchema();
+        std::vector Schema = NTxUT::TTestSchema::YdbSchema();
+        std::vector Pk = NTxUT::TTestSchema::YdbPkSchema();
         bool InStore = true;
     };
 
     void SetupSchema(TTestBasicRuntime& runtime, TActorId& sender, ui64 pathId,
                  const TestTableDescription& table = {}, TString codec = "none");
+    void SetupSchema(TTestBasicRuntime& runtime, TActorId& sender, const TString& txBody, const NOlap::TSnapshot& snapshot, bool succeed = true);
 
-    void PrepareTablet(TTestBasicRuntime& runtime, const ui64 tableId, const std::vector>& schema, const ui32 keySize = 1);
+    void PrepareTablet(TTestBasicRuntime& runtime, const ui64 tableId, const std::vector& schema, const ui32 keySize = 1);
+    void PrepareTablet(TTestBasicRuntime& runtime, const TString& schemaTxBody, bool succeed);
 
-    std::shared_ptr ReadAllAsBatch(TTestBasicRuntime& runtime, const ui64 tableId, const NOlap::TSnapshot& snapshot, const std::vector>& schema);
+    std::shared_ptr ReadAllAsBatch(TTestBasicRuntime& runtime, const ui64 tableId, const NOlap::TSnapshot& snapshot, const std::vector& schema);
 }
diff --git a/ydb/core/tx/columnshard/common/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/common/CMakeLists.darwin-arm64.txt
index fb413280b2d1..ee1185c2ff92 100644
--- a/ydb/core/tx/columnshard/common/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/columnshard/common/CMakeLists.darwin-arm64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(protos)
 add_subdirectory(tests)
 get_built_tool_path(
   TOOL_enum_parser_bin
@@ -21,9 +22,11 @@ target_link_libraries(tx-columnshard-common PUBLIC
   ydb-core-protos
   libs-apache-arrow
   core-formats-arrow
+  columnshard-common-protos
   tools-enum_parser-enum_serialization_runtime
 )
 target_sources(tx-columnshard-common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/limits.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/reverse_accessor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/scalars.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/snapshot.cpp
diff --git a/ydb/core/tx/columnshard/common/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/common/CMakeLists.darwin-x86_64.txt
index fb413280b2d1..ee1185c2ff92 100644
--- a/ydb/core/tx/columnshard/common/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/columnshard/common/CMakeLists.darwin-x86_64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(protos)
 add_subdirectory(tests)
 get_built_tool_path(
   TOOL_enum_parser_bin
@@ -21,9 +22,11 @@ target_link_libraries(tx-columnshard-common PUBLIC
   ydb-core-protos
   libs-apache-arrow
   core-formats-arrow
+  columnshard-common-protos
   tools-enum_parser-enum_serialization_runtime
 )
 target_sources(tx-columnshard-common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/limits.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/reverse_accessor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/scalars.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/snapshot.cpp
diff --git a/ydb/core/tx/columnshard/common/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/common/CMakeLists.linux-aarch64.txt
index 6d584af68a8e..ea2ea81db813 100644
--- a/ydb/core/tx/columnshard/common/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/columnshard/common/CMakeLists.linux-aarch64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(protos)
 add_subdirectory(tests)
 get_built_tool_path(
   TOOL_enum_parser_bin
@@ -22,9 +23,11 @@ target_link_libraries(tx-columnshard-common PUBLIC
   ydb-core-protos
   libs-apache-arrow
   core-formats-arrow
+  columnshard-common-protos
   tools-enum_parser-enum_serialization_runtime
 )
 target_sources(tx-columnshard-common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/limits.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/reverse_accessor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/scalars.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/snapshot.cpp
diff --git a/ydb/core/tx/columnshard/common/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/common/CMakeLists.linux-x86_64.txt
index 6d584af68a8e..ea2ea81db813 100644
--- a/ydb/core/tx/columnshard/common/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/columnshard/common/CMakeLists.linux-x86_64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(protos)
 add_subdirectory(tests)
 get_built_tool_path(
   TOOL_enum_parser_bin
@@ -22,9 +23,11 @@ target_link_libraries(tx-columnshard-common PUBLIC
   ydb-core-protos
   libs-apache-arrow
   core-formats-arrow
+  columnshard-common-protos
   tools-enum_parser-enum_serialization_runtime
 )
 target_sources(tx-columnshard-common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/limits.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/reverse_accessor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/scalars.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/snapshot.cpp
diff --git a/ydb/core/tx/columnshard/common/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/common/CMakeLists.windows-x86_64.txt
index fb413280b2d1..ee1185c2ff92 100644
--- a/ydb/core/tx/columnshard/common/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/columnshard/common/CMakeLists.windows-x86_64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(protos)
 add_subdirectory(tests)
 get_built_tool_path(
   TOOL_enum_parser_bin
@@ -21,9 +22,11 @@ target_link_libraries(tx-columnshard-common PUBLIC
   ydb-core-protos
   libs-apache-arrow
   core-formats-arrow
+  columnshard-common-protos
   tools-enum_parser-enum_serialization_runtime
 )
 target_sources(tx-columnshard-common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/limits.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/reverse_accessor.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/scalars.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/snapshot.cpp
diff --git a/ydb/core/tx/columnshard/common/blob.cpp b/ydb/core/tx/columnshard/common/blob.cpp
new file mode 100644
index 000000000000..6bcf397e339a
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/blob.cpp
@@ -0,0 +1,173 @@
+#include "blob.h"
+#include 
+#include 
+
+#include 
+
+namespace NKikimr::NOlap {
+
+namespace {
+
+#define PARSE_INT_COMPONENT(fieldType, fieldName, endChar) \
+    if (pos >= endPos) { \
+        error = "Failed to parse " #fieldName " component"; \
+        return TUnifiedBlobId(); \
+    } \
+    fieldType fieldName = -1; \
+    { \
+        auto [ptr, ec] { std::from_chars(str + pos, str + endPos, fieldName) }; \
+        if (ec != std::errc()) { \
+            error = "Failed to parse " #fieldName " component"; \
+            return TUnifiedBlobId(); \
+        } else { \
+            pos = ptr - str; \
+        } \
+        if (str[pos++] != endChar) { \
+            error = #endChar " not found after " #fieldName; \
+            return TUnifiedBlobId(); \
+        } \
+    }
+
+// Format: "DS:group:logoBlobId"
+// Example: "DS:2181038103:[72075186224038245:51:31595:2:0:11952:0]"
+TUnifiedBlobId ParseExtendedDsBlobId(const TString& s, TString& error) {
+    Y_ABORT_UNLESS(s.size() > 2);
+    const char* str = s.c_str();
+    Y_ABORT_UNLESS(str[0] == 'D' && str[1] == 'S');
+    i64 pos = 2;
+    i64 endPos = s.size();
+    if (str[pos++] != ':') {
+        error = "Starting ':' not found";
+        return TUnifiedBlobId();
+    }
+
+    PARSE_INT_COMPONENT(ui32, dsGroup, ':');
+
+    TLogoBlobID logoBlobId;
+    if (!TLogoBlobID::Parse(logoBlobId, s.substr(pos), error)) {
+        return TUnifiedBlobId();
+    }
+
+    return TUnifiedBlobId(dsGroup, logoBlobId);
+}
+
+}
+
+TUnifiedBlobId TUnifiedBlobId::ParseFromString(const TString& str,
+    const IBlobGroupSelector* dsGroupSelector, TString& error) {
+    if (str.size() <= 2) {
+        error = TStringBuilder() << "Wrong blob id: '" << str << "'";
+        return TUnifiedBlobId();
+    }
+
+    if (str[0] == '[') {
+        // If blobId starts with '[' this must be a logoblobId and if channel is set to FAKE_CHANNEL
+        // this is a fake logoblobid used for small blob
+        TLogoBlobID logoBlobId;
+        bool parsed = TLogoBlobID::Parse(logoBlobId, str, error);
+        if (!parsed) {
+            error = "Cannot parse TLogoBlobID: " + error;
+            return TUnifiedBlobId();
+        }
+        // DS blob
+        if (!dsGroupSelector) {
+            error = "Need TBlobGroupSelector to resolve DS group for the blob";
+            return TUnifiedBlobId();
+        }
+        return TUnifiedBlobId(dsGroupSelector->GetGroup(logoBlobId), logoBlobId);
+    } else if (str[0] == 'D' && str[1] == 'S') {
+        return ParseExtendedDsBlobId(str, error);
+    }
+
+    error = TStringBuilder() << "Wrong blob id: '" << str << "'";
+    return TUnifiedBlobId();
+}
+
+NKikimr::TConclusionStatus TUnifiedBlobId::DeserializeFromProto(const NKikimrColumnShardProto::TUnifiedBlobId& proto) {
+    Id.DsGroup = proto.GetDsGroup();
+    TStringBuf sb(proto.GetBlobId().data(), proto.GetBlobId().size());
+    Id.BlobId = TLogoBlobID::FromBinary(sb);
+    return TConclusionStatus::Success();
+}
+
+NKikimr::TConclusion TUnifiedBlobId::BuildFromProto(const NKikimrColumnShardProto::TUnifiedBlobId& proto) {
+    TUnifiedBlobId result;
+    auto parse = result.DeserializeFromProto(proto);
+    if (!parse) {
+        return parse;
+    }
+    return result;
+}
+
+NKikimrColumnShardProto::TUnifiedBlobId TUnifiedBlobId::SerializeToProto() const {
+    NKikimrColumnShardProto::TUnifiedBlobId result;
+    result.SetDsGroup(Id.DsGroup);
+    result.SetBlobId(Id.BlobId.AsBinaryString());
+    return result;
+}
+
+NKikimr::TConclusionStatus TBlobRange::DeserializeFromProto(const NKikimrColumnShardProto::TBlobRange& proto) {
+    auto parsed = TUnifiedBlobId::BuildFromString(proto.GetBlobId(), nullptr);
+    if (!parsed) {
+        return parsed;
+    }
+    BlobId = parsed.DetachResult();
+
+    Offset = proto.GetOffset();
+    Size = proto.GetSize();
+    return TConclusionStatus::Success();
+}
+
+NKikimr::TConclusion TBlobRange::BuildFromProto(const NKikimrColumnShardProto::TBlobRange& proto) {
+    TBlobRange result;
+    auto parsed = result.DeserializeFromProto(proto);
+    if (!parsed) {
+        return parsed;
+    } else {
+        return result;
+    }
+}
+
+NKikimrColumnShardProto::TBlobRange TBlobRange::SerializeToProto() const {
+    NKikimrColumnShardProto::TBlobRange result;
+    result.SetBlobId(BlobId.ToStringNew());
+    result.SetOffset(Offset);
+    result.SetSize(Size);
+    return result;
+}
+
+NKikimr::TConclusionStatus TBlobRangeLink16::DeserializeFromProto(const NKikimrColumnShardProto::TBlobRangeLink16& proto) {
+    BlobIdx = proto.GetBlobIdx();
+    Offset = proto.GetOffset();
+    Size = proto.GetSize();
+    return TConclusionStatus::Success();
+}
+
+NKikimr::TConclusion TBlobRangeLink16::BuildFromProto(const NKikimrColumnShardProto::TBlobRangeLink16& proto) {
+    TBlobRangeLink16 result;
+    auto parsed = result.DeserializeFromProto(proto);
+    if (!parsed) {
+        return parsed;
+    } else {
+        return result;
+    }
+}
+
+NKikimrColumnShardProto::TBlobRangeLink16 TBlobRangeLink16::SerializeToProto() const {
+    NKikimrColumnShardProto::TBlobRangeLink16 result;
+    result.SetBlobIdx(GetBlobIdxVerified());
+    result.SetOffset(Offset);
+    result.SetSize(Size);
+    return result;
+}
+
+ui16 TBlobRangeLink16::GetBlobIdxVerified() const {
+    AFL_VERIFY(BlobIdx);
+    return *BlobIdx;
+}
+
+NKikimr::NOlap::TBlobRange TBlobRangeLink16::RestoreRange(const TUnifiedBlobId& blobId) const {
+    return TBlobRange(blobId, Offset, Size);
+}
+
+}
diff --git a/ydb/core/tx/columnshard/common/blob.h b/ydb/core/tx/columnshard/common/blob.h
new file mode 100644
index 000000000000..d7deea1df72d
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/blob.h
@@ -0,0 +1,410 @@
+#pragma once
+
+#include 
+#include 
+
+#include 
+
+namespace NKikimrColumnShardProto {
+class TBlobRange;
+class TBlobRangeLink16;
+class TUnifiedBlobId;
+}
+
+namespace NKikimr::NOlap {
+
+class IBlobGroupSelector {
+protected:
+    virtual ~IBlobGroupSelector() = default;
+
+public:
+    virtual ui32 GetGroup(const TLogoBlobID& blobId) const = 0;
+};
+
+class TUnifiedBlobId;
+
+class TUnifiedBlobId {
+    // Id of a blob in YDB distributed storage
+    struct TDsBlobId {
+        TLogoBlobID BlobId;
+        ui32 DsGroup;
+
+        bool operator == (const TDsBlobId& other) const {
+             return BlobId == other.BlobId && DsGroup == other.DsGroup;
+        }
+
+        TString ToStringNew() const {
+            return Sprintf( "DS:%" PRIu32 ":%s", DsGroup, BlobId.ToString().c_str());
+        }
+
+        TString ToStringLegacy() const {
+            return BlobId.ToString();
+        }
+
+        ui64 Hash() const {
+            return CombineHashes(BlobId.Hash(), IntHash(DsGroup));
+        }
+    };
+
+    TDsBlobId Id;
+
+public:
+    TUnifiedBlobId() = default;
+
+    // Initialize as DS blob Id
+    TUnifiedBlobId(ui32 dsGroup, const TLogoBlobID& logoBlobId)
+        : Id(TDsBlobId{logoBlobId, dsGroup})
+    {}
+
+    // Initialize as Small blob Id
+    TUnifiedBlobId(ui64 tabletId, ui32 gen, ui32 step, ui32 cookie, ui32 channel, const ui32 groupId, ui32 size)
+        : Id(TDsBlobId{TLogoBlobID(tabletId, gen, step, channel, size, cookie), groupId})
+    {}
+
+    TUnifiedBlobId(const TUnifiedBlobId& other) = default;
+    TUnifiedBlobId& operator = (const TUnifiedBlobId& logoBlobId) = default;
+    TUnifiedBlobId(TUnifiedBlobId&& other) = default;
+    TUnifiedBlobId& operator = (TUnifiedBlobId&& logoBlobId) = default;
+
+    static TUnifiedBlobId BuildRaw(const ui32 groupId, const ui64 tabletId, const ui64 r1, const ui64 r2) {
+        return TUnifiedBlobId(groupId, TLogoBlobID(tabletId, r1, r2));
+    }
+
+    NKikimrColumnShardProto::TUnifiedBlobId SerializeToProto() const;
+
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardProto::TUnifiedBlobId& proto);
+
+    static TConclusion BuildFromProto(const NKikimrColumnShardProto::TUnifiedBlobId& proto);
+
+    static TConclusion BuildFromString(const TString& id, const IBlobGroupSelector* dsGroupSelector) {
+        TString error;
+        TUnifiedBlobId result = ParseFromString(id, dsGroupSelector, error);
+        if (!result.IsValid()) {
+            return TConclusionStatus::Fail(error);
+        }
+        return result;
+    }
+
+    static TUnifiedBlobId ParseFromString(const TString& str,
+        const IBlobGroupSelector* dsGroupSelector, TString& error);
+
+    bool operator == (const TUnifiedBlobId& other) const {
+        return Id == other.Id;
+    }
+
+    bool IsValid() const {
+        return Id.BlobId.IsValid();
+    }
+
+    size_t BlobSize() const {
+        return Id.BlobId.BlobSize();
+    }
+
+    TLogoBlobID GetLogoBlobId() const {
+        return Id.BlobId;
+    }
+
+    ui32 GetDsGroup() const {
+        return Id.DsGroup;
+    }
+
+    ui64 GetTabletId() const {
+        return Id.BlobId.TabletID();
+    }
+
+    ui64 Hash() const noexcept {
+        return Id.Hash();
+    }
+
+    // This is only implemented for DS for backward compatibility with persisted data.
+    // All new functionality should rahter use string blob id representation
+    TString SerializeBinary() const {
+        return TString((const char*)GetLogoBlobId().GetRaw(), sizeof(TLogoBlobID));
+    }
+
+    TString ToStringLegacy() const {
+        return Id.ToStringLegacy();
+    }
+
+    TString ToStringNew() const {
+        return Id.ToStringNew();
+    }
+};
+
+
+// Describes a range of bytes in a blob. It is used for read requests and for caching.
+struct TBlobRange;
+class TBlobRangeLink16 {
+public:
+    using TLinkId = ui16;
+
+    std::optional BlobIdx;
+    ui32 Offset;
+    ui32 Size;
+
+    TBlobRangeLink16() = default;
+
+    ui32 GetSize() const {
+        return Size;
+    }
+
+    ui32 GetOffset() const {
+        return Offset;
+    }
+
+    explicit TBlobRangeLink16(ui32 offset, ui32 size)
+        : Offset(offset)
+        , Size(size) {
+    }
+
+    explicit TBlobRangeLink16(const ui16 blobIdx, ui32 offset, ui32 size)
+        : BlobIdx(blobIdx)
+        , Offset(offset)
+        , Size(size) {
+    }
+
+    ui16 GetBlobIdxVerified() const;
+
+    bool IsValid() const {
+        return !!BlobIdx;
+    }
+
+    NKikimrColumnShardProto::TBlobRangeLink16 SerializeToProto() const;
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardProto::TBlobRangeLink16& proto);
+    static TConclusion BuildFromProto(const NKikimrColumnShardProto::TBlobRangeLink16& proto);
+    TString ToString() const {
+        TStringBuilder result;
+        result << "[";
+        if (BlobIdx) {
+            result << *BlobIdx;
+        } else {
+            result << "NO_BLOB";
+        }
+        return result << ":" << Offset << ":" << Size << "]";
+    }
+
+    TBlobRange RestoreRange(const TUnifiedBlobId& blobId) const;
+};
+
+struct TBlobRange {
+    TUnifiedBlobId BlobId;
+    ui32 Offset;
+    ui32 Size;
+
+    bool operator<(const TBlobRange& br) const {
+        if (BlobId != br.BlobId) {
+            return BlobId.GetLogoBlobId().Compare(br.BlobId.GetLogoBlobId()) < 0;
+        } else if (Offset != br.Offset) {
+            return Offset < br.Offset;
+        } else {
+            return Size < br.Size;
+        }
+    }
+
+    const TUnifiedBlobId& GetBlobId() const {
+        return BlobId;
+    }
+
+    bool IsNextRangeFor(const TBlobRange& br) const {
+        return BlobId == br.BlobId && br.Offset + br.Size == Offset;
+    }
+
+    bool TryGlueSameBlob(const TBlobRange& br, const ui64 limit) {
+        if (GetBlobId() != br.GetBlobId()) {
+            return false;
+        }
+        const ui32 right = std::max(Offset + Size, br.Offset + br.Size);
+        const ui32 offset = std::min(Offset, br.Offset);
+        const ui32 size = right - offset;
+        if (size > limit) {
+            return false;
+        }
+        Size = size;
+        Offset = offset;
+        return true;
+    }
+
+    bool TryGlueWithNext(const TBlobRange& br) {
+        if (!br.IsNextRangeFor(*this)) {
+            return false;
+        }
+        Size += br.Size;
+        return true;
+    }
+
+    TBlobRangeLink16 BuildLink(const TBlobRangeLink16::TLinkId idx) const {
+        return TBlobRangeLink16(idx, Offset, Size);
+    }
+
+    TBlobRangeLink16 IncorrectLink() const {
+        return TBlobRangeLink16(Offset, Size);
+    }
+
+    bool IsValid() const {
+        return BlobId.IsValid() && Size && Offset + Size <= BlobId.BlobSize();
+    }
+
+    ui32 GetBlobSize() const {
+        return Size;
+    }
+
+    bool IsFullBlob() const {
+        return Size == BlobId.BlobSize();
+    }
+
+    explicit TBlobRange(const TUnifiedBlobId& blobId = TUnifiedBlobId(), ui32 offset = 0, ui32 size = 0)
+        : BlobId(blobId)
+        , Offset(offset)
+        , Size(size)
+    {
+        if (Size > 0) {
+            Y_ABORT_UNLESS(Offset < BlobId.BlobSize());
+            Y_ABORT_UNLESS(Offset + Size <= BlobId.BlobSize());
+        }
+    }
+
+    static TBlobRange FromBlobId(const TUnifiedBlobId& blobId) {
+        return TBlobRange(blobId, 0, blobId.BlobSize());
+    }
+
+    bool operator == (const TBlobRange& other) const {
+        return
+            BlobId == other.BlobId &&
+            Offset == other.Offset &&
+            Size == other.Size;
+    }
+
+    ui64 Hash() const noexcept {
+        ui64 hash = BlobId.Hash();
+        hash = CombineHashes(hash, IntHash(Offset));
+        hash = CombineHashes(hash, IntHash(Size));
+        return hash;
+    }
+
+    TString ToString() const {
+        return Sprintf("{ Blob: %s Offset: %" PRIu32 " Size: %" PRIu32 " }",
+                       BlobId.ToStringNew().c_str(), Offset, Size);
+    }
+
+    NKikimrColumnShardProto::TBlobRange SerializeToProto() const;
+
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardProto::TBlobRange& proto);
+    static TConclusion BuildFromProto(const NKikimrColumnShardProto::TBlobRange& proto);
+};
+
+class IBlobInUseTracker {
+private:
+    virtual bool DoFreeBlob(const NOlap::TUnifiedBlobId& blobId) = 0;
+    virtual bool DoUseBlob(const NOlap::TUnifiedBlobId& blobId) = 0;
+public:
+    virtual ~IBlobInUseTracker() = default;
+
+    bool FreeBlob(const NOlap::TUnifiedBlobId& blobId) {
+        return DoFreeBlob(blobId);
+    }
+    bool UseBlob(const NOlap::TUnifiedBlobId& blobId) {
+        return DoUseBlob(blobId);
+    }
+
+    virtual bool IsBlobInUsage(const NOlap::TUnifiedBlobId& blobId) const = 0;
+};
+
+// Expected blob lifecycle: EVICTING -> SELF_CACHED -> EXTERN <-> CACHED
+enum class EEvictState : ui8 {
+    UNKNOWN = 0,
+    EVICTING = 1,       // source, extern, cached blobs: 1--
+    SELF_CACHED = 2,    // source, extern, cached blobs: 11-
+    EXTERN = 3,         // source, extern, cached blobs: -1-
+    CACHED = 4,         // source, extern, cached blobs: -11
+    ERASING = 5,        // source, extern, cached blobs: -??
+    //ERASED = 6,       // source, extern, cached blobs: ---
+};
+
+inline bool IsExported(EEvictState state) {
+    return state == EEvictState::SELF_CACHED ||
+        state == EEvictState::EXTERN ||
+        state == EEvictState::CACHED;
+}
+
+inline bool CouldBeExported(EEvictState state) {
+    return state == EEvictState::SELF_CACHED ||
+        state == EEvictState::EXTERN ||
+        state == EEvictState::CACHED ||
+        state == EEvictState::ERASING;
+}
+
+inline bool IsDeleted(EEvictState state) {
+    return ui8(state) >= ui8(EEvictState::EXTERN); // !EVICTING and !SELF_CACHED
+}
+
+struct TEvictedBlob {
+    EEvictState State = EEvictState::UNKNOWN;
+    TUnifiedBlobId Blob;
+    TUnifiedBlobId ExternBlob;
+    TUnifiedBlobId CachedBlob;
+
+    bool operator == (const TEvictedBlob& other) const {
+        return Blob == other.Blob;
+    }
+
+    ui64 Hash() const noexcept {
+        return Blob.Hash();
+    }
+
+    bool IsEvicting() const {
+        return State == EEvictState::EVICTING;
+    }
+
+    bool IsExternal() const {
+        if (State == EEvictState::EXTERN) {
+            Y_ABORT_UNLESS(ExternBlob.IsValid());
+            return true;
+        }
+        return false;
+    }
+
+    TString ToString() const {
+        return TStringBuilder() << "state: " << (ui32)State
+            << " blob: " << Blob.ToStringNew()
+            << " extern: " << ExternBlob.ToStringNew()
+            << " cached: " << CachedBlob.ToStringNew();
+    }
+};
+
+}
+
+inline
+IOutputStream& operator <<(IOutputStream& out, const NKikimr::NOlap::TUnifiedBlobId& blobId) {
+    return out << blobId.ToStringNew();
+}
+
+inline
+IOutputStream& operator <<(IOutputStream& out, const NKikimr::NOlap::TBlobRange& blobRange) {
+    return out << blobRange.ToString();
+}
+
+inline
+IOutputStream& operator <<(IOutputStream& out, const NKikimr::NOlap::TBlobRangeLink16& blobRange) {
+    return out << blobRange.ToString();
+}
+
+template<>
+struct ::THash {
+    inline ui64 operator()(const NKikimr::NOlap::TUnifiedBlobId& a) const {
+        return a.Hash();
+    }
+};
+
+template <>
+struct THash {
+    inline size_t operator() (const NKikimr::NOlap::TBlobRange& key) const {
+        return key.Hash();
+    }
+};
+
+template <>
+struct THash {
+    inline size_t operator() (const NKikimr::NOlap::TEvictedBlob& key) const {
+        return key.Hash();
+    }
+};
diff --git a/ydb/core/tx/columnshard/common/limits.cpp b/ydb/core/tx/columnshard/common/limits.cpp
new file mode 100644
index 000000000000..7bd45fa70d3b
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/limits.cpp
@@ -0,0 +1,4 @@
+#include "limits.h"
+
+namespace NKikimr::NColumnShard {
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/common/limits.h b/ydb/core/tx/columnshard/common/limits.h
new file mode 100644
index 000000000000..04a5cb55128e
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/limits.h
@@ -0,0 +1,9 @@
+#pragma once
+#include 
+
+namespace NKikimr::NOlap {
+class TGlobalLimits {
+public:
+    static const inline ui64 TxWriteLimitBytes = 256 * 1024 * 1024;
+};
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/common/protos/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/common/protos/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..db46f04807c5
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/protos/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,46 @@
+
+# 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(columnshard-common-protos)
+target_link_libraries(columnshard-common-protos PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  contrib-libs-protobuf
+)
+target_proto_messages(columnshard-common-protos PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/protos/snapshot.proto
+)
+target_sources(columnshard-common-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tx/columnshard/common/protos/snapshot.pb.h
+)
+target_proto_addincls(columnshard-common-protos
+  ./
+  ${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(columnshard-common-protos
+  --cpp_out=${CMAKE_BINARY_DIR}/
+  --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/tx/columnshard/common/protos/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/common/protos/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..db46f04807c5
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/protos/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,46 @@
+
+# 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(columnshard-common-protos)
+target_link_libraries(columnshard-common-protos PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  contrib-libs-protobuf
+)
+target_proto_messages(columnshard-common-protos PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/protos/snapshot.proto
+)
+target_sources(columnshard-common-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tx/columnshard/common/protos/snapshot.pb.h
+)
+target_proto_addincls(columnshard-common-protos
+  ./
+  ${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(columnshard-common-protos
+  --cpp_out=${CMAKE_BINARY_DIR}/
+  --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/tx/columnshard/common/protos/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/common/protos/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..13d79958d794
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/protos/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,47 @@
+
+# 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(columnshard-common-protos)
+target_link_libraries(columnshard-common-protos PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  contrib-libs-protobuf
+)
+target_proto_messages(columnshard-common-protos PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/protos/snapshot.proto
+)
+target_sources(columnshard-common-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tx/columnshard/common/protos/snapshot.pb.h
+)
+target_proto_addincls(columnshard-common-protos
+  ./
+  ${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(columnshard-common-protos
+  --cpp_out=${CMAKE_BINARY_DIR}/
+  --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/tx/columnshard/common/protos/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/common/protos/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..13d79958d794
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/protos/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,47 @@
+
+# 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(columnshard-common-protos)
+target_link_libraries(columnshard-common-protos PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  contrib-libs-protobuf
+)
+target_proto_messages(columnshard-common-protos PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/protos/snapshot.proto
+)
+target_sources(columnshard-common-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tx/columnshard/common/protos/snapshot.pb.h
+)
+target_proto_addincls(columnshard-common-protos
+  ./
+  ${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(columnshard-common-protos
+  --cpp_out=${CMAKE_BINARY_DIR}/
+  --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/tx/columnshard/common/protos/CMakeLists.txt b/ydb/core/tx/columnshard/common/protos/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/protos/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/columnshard/common/protos/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/common/protos/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..db46f04807c5
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/protos/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,46 @@
+
+# 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(columnshard-common-protos)
+target_link_libraries(columnshard-common-protos PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  contrib-libs-protobuf
+)
+target_proto_messages(columnshard-common-protos PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/common/protos/snapshot.proto
+)
+target_sources(columnshard-common-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tx/columnshard/common/protos/snapshot.pb.h
+)
+target_proto_addincls(columnshard-common-protos
+  ./
+  ${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(columnshard-common-protos
+  --cpp_out=${CMAKE_BINARY_DIR}/
+  --cpp_styleguide_out=${CMAKE_BINARY_DIR}/
+)
diff --git a/ydb/core/tx/columnshard/common/protos/blob_range.proto b/ydb/core/tx/columnshard/common/protos/blob_range.proto
new file mode 100644
index 000000000000..fe72258f223c
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/protos/blob_range.proto
@@ -0,0 +1,18 @@
+package NKikimrColumnShardProto;
+
+message TUnifiedBlobId {
+    optional uint32 DsGroup = 1;
+    optional string BlobId = 2;
+}
+
+message TBlobRange {
+    optional string BlobId = 1;
+    optional uint64 Offset = 2;
+    optional uint64 Size = 3;
+}
+
+message TBlobRangeLink16 {
+    optional uint32 BlobIdx = 1;
+    optional uint64 Offset = 2;
+    optional uint64 Size = 3;
+}
diff --git a/ydb/core/tx/columnshard/common/protos/snapshot.proto b/ydb/core/tx/columnshard/common/protos/snapshot.proto
new file mode 100644
index 000000000000..becc25a219d2
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/protos/snapshot.proto
@@ -0,0 +1,6 @@
+package NKikimrColumnShardProto;
+
+message TSnapshot {
+    optional uint64 PlanStep = 1;
+    optional uint64 TxId = 2;
+}
diff --git a/ydb/core/tx/columnshard/common/protos/ya.make b/ydb/core/tx/columnshard/common/protos/ya.make
new file mode 100644
index 000000000000..872e967bc018
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/protos/ya.make
@@ -0,0 +1,11 @@
+PROTO_LIBRARY()
+
+SRCS(
+    snapshot.proto
+    blob_range.proto
+)
+
+PEERDIR(
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/common/snapshot.cpp b/ydb/core/tx/columnshard/common/snapshot.cpp
index fb4ee00017f8..a38565ee3447 100644
--- a/ydb/core/tx/columnshard/common/snapshot.cpp
+++ b/ydb/core/tx/columnshard/common/snapshot.cpp
@@ -1,4 +1,5 @@
 #include "snapshot.h"
+#include 
 #include 
 
 namespace NKikimr::NOlap {
@@ -7,4 +8,10 @@ TString TSnapshot::DebugString() const {
     return TStringBuilder() << "plan_step=" << PlanStep << ";tx_id=" << TxId << ";";
 }
 
+NKikimrColumnShardProto::TSnapshot TSnapshot::SerializeToProto() const {
+    NKikimrColumnShardProto::TSnapshot result;
+    SerializeToProto(result);
+    return result;
+}
+
 };
diff --git a/ydb/core/tx/columnshard/common/snapshot.h b/ydb/core/tx/columnshard/common/snapshot.h
index 93b896be051e..389310cd528e 100644
--- a/ydb/core/tx/columnshard/common/snapshot.h
+++ b/ydb/core/tx/columnshard/common/snapshot.h
@@ -1,6 +1,13 @@
 #pragma once
+#include 
+
 #include 
 #include 
+#include 
+
+namespace NKikimrColumnShardProto {
+class TSnapshot;
+}
 
 namespace NKikimr::NOlap {
 
@@ -15,6 +22,10 @@ class TSnapshot {
         , TxId(txId) {
     }
 
+    constexpr TInstant GetPlanInstant() const noexcept {
+        return TInstant::MilliSeconds(PlanStep);
+    }
+
     constexpr ui64 GetPlanStep() const noexcept {
         return PlanStep;
     }
@@ -47,6 +58,27 @@ class TSnapshot {
         return out << "{" << s.PlanStep << ':' << (s.TxId == std::numeric_limits::max() ? "max" : ::ToString(s.TxId)) << "}";
     }
 
+    template 
+    void SerializeToProto(TProto& result) const {
+        result.SetPlanStep(PlanStep);
+        result.SetTxId(TxId);
+    }
+
+    NKikimrColumnShardProto::TSnapshot SerializeToProto() const;
+
+    template 
+    TConclusionStatus DeserializeFromProto(const TProto& proto) {
+        PlanStep = proto.GetPlanStep();
+        TxId = proto.GetTxId();
+        if (!PlanStep) {
+            return TConclusionStatus::Fail("incorrect planStep in proto");
+        }
+        if (!TxId) {
+            return TConclusionStatus::Fail("incorrect txId in proto");
+        }
+        return TConclusionStatus::Success();
+    }
+
     TString DebugString() const;
 };
 
diff --git a/ydb/core/tx/columnshard/common/tablet_id.cpp b/ydb/core/tx/columnshard/common/tablet_id.cpp
new file mode 100644
index 000000000000..37cff9105404
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/tablet_id.cpp
@@ -0,0 +1,12 @@
+#include "tablet_id.h"
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+
+}
+
+template <>
+void Out(IOutputStream& os, TTypeTraits::TFuncParam val) {
+    os << (ui64)val;
+}
diff --git a/ydb/core/tx/columnshard/common/tablet_id.h b/ydb/core/tx/columnshard/common/tablet_id.h
new file mode 100644
index 000000000000..ca1f59d64c77
--- /dev/null
+++ b/ydb/core/tx/columnshard/common/tablet_id.h
@@ -0,0 +1,8 @@
+#pragma once
+#include 
+
+namespace NKikimr::NOlap {
+enum class TTabletId: ui64 {
+};
+
+}
diff --git a/ydb/core/tx/columnshard/common/tests/shard_reader.h b/ydb/core/tx/columnshard/common/tests/shard_reader.h
index 777c93d8f1f5..1bb3ad353835 100644
--- a/ydb/core/tx/columnshard/common/tests/shard_reader.h
+++ b/ydb/core/tx/columnshard/common/tests/shard_reader.h
@@ -6,7 +6,6 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 
@@ -220,8 +219,8 @@ class TShardReader {
         if (auto* evData = std::get<0>(event)) {
             auto b = evData->ArrowBatch;
             if (b) {
-                NArrow::TStatusValidator::Validate(b->ValidateFull());
-                ResultBatches.push_back(b);
+                ResultBatches.push_back(NArrow::ToBatch(b, true));
+                NArrow::TStatusValidator::Validate(ResultBatches.back()->ValidateFull());
             } else {
                 AFL_VERIFY(evData->Finished);
             }
diff --git a/ydb/core/tx/columnshard/common/ya.make b/ydb/core/tx/columnshard/common/ya.make
index ac748e9ed9c7..993b47fff695 100644
--- a/ydb/core/tx/columnshard/common/ya.make
+++ b/ydb/core/tx/columnshard/common/ya.make
@@ -1,16 +1,20 @@
 LIBRARY()
 
 SRCS(
+    limits.h
     reverse_accessor.cpp
     scalars.cpp
     snapshot.cpp
     portion.cpp
+    tablet_id.cpp
+    blob.cpp
 )
 
 PEERDIR(
     ydb/core/protos
     contrib/libs/apache/arrow
     ydb/core/formats/arrow
+    ydb/core/tx/columnshard/common/protos
 )
 
 GENERATE_ENUM_SERIALIZATION(portion.h)
diff --git a/ydb/core/tx/columnshard/config.clang-format b/ydb/core/tx/columnshard/config.clang-format
new file mode 100644
index 000000000000..f7d926ac1df2
--- /dev/null
+++ b/ydb/core/tx/columnshard/config.clang-format
@@ -0,0 +1,41 @@
+BasedOnStyle: Google
+IndentWidth: 4
+ColumnLimit: 232
+SpacesBeforeTrailingComments: 3
+InsertBraces : true
+DerivePointerAlignment: true
+PointerAlignment: Left
+AccessModifierOffset: -4
+IndentCaseLabels: true
+ShortBlockStyle: SBS_Never
+AllowShortCaseLabelsOnASingleLine : false
+AllowShortCompoundRequirementOnASingleLine : false
+AllowShortEnumsOnASingleLine : false
+AllowShortFunctionsOnASingleLine  : false
+AllowShortLambdasOnASingleLine : false
+ShortIfStyle: SIS_Never
+ShortLambdaStyle: SLS_None
+AllowShortLoopsOnASingleLine : false
+AllowAllParametersOfDeclarationOnNextLine: true
+ConstructorInitializerAllOnOneLineOrOnePerLine: false
+PackConstructorInitializersNever: true
+BreakConstructorInitializersBeforeComma: true
+IncludeCategories:
+  - Regex:           '^"[0-9,a-z,A-Z,_]*"'
+    Priority:        0
+    SortPriority:    0
+  - Regex:           '^".*'
+    Priority:        3
+    SortPriority:    3
+  - Regex:           '^<.*ydb/core.*'
+    Priority:        5
+    SortPriority:    5
+  - Regex:           '^\<.*ydb/.*'
+    Priority:        10
+    SortPriority:    10
+  - Regex:           '^\<.*\/.*'
+    Priority:        15
+    SortPriority:    15
+  - Regex:           '.*'
+    Priority:        20
+    SortPriority:    20
diff --git a/ydb/core/tx/columnshard/counters/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/counters/CMakeLists.darwin-arm64.txt
index b67a55fc728e..4d5344c2c183 100644
--- a/ydb/core/tx/columnshard/counters/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/columnshard/counters/CMakeLists.darwin-arm64.txt
@@ -7,6 +7,12 @@
 
 
 add_subdirectory(common)
+get_built_tool_path(
+  TOOL_enum_parser_bin
+  TOOL_enum_parser_dependency
+  tools/enum_parser/enum_parser
+  enum_parser
+)
 
 add_library(tx-columnshard-counters)
 target_link_libraries(tx-columnshard-counters PUBLIC
@@ -15,6 +21,7 @@ target_link_libraries(tx-columnshard-counters PUBLIC
   cpp-monlib-dynamic_counters
   columnshard-counters-common
   ydb-core-base
+  tools-enum_parser-enum_serialization_runtime
 )
 target_sources(tx-columnshard-counters PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/indexation.cpp
@@ -26,3 +33,8 @@ target_sources(tx-columnshard-counters PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/common_data.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/splitter.cpp
 )
+generate_enum_serilization(tx-columnshard-counters
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/columnshard.h
+  INCLUDE_HEADERS
+  ydb/core/tx/columnshard/counters/columnshard.h
+)
diff --git a/ydb/core/tx/columnshard/counters/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/counters/CMakeLists.darwin-x86_64.txt
index b67a55fc728e..4d5344c2c183 100644
--- a/ydb/core/tx/columnshard/counters/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/columnshard/counters/CMakeLists.darwin-x86_64.txt
@@ -7,6 +7,12 @@
 
 
 add_subdirectory(common)
+get_built_tool_path(
+  TOOL_enum_parser_bin
+  TOOL_enum_parser_dependency
+  tools/enum_parser/enum_parser
+  enum_parser
+)
 
 add_library(tx-columnshard-counters)
 target_link_libraries(tx-columnshard-counters PUBLIC
@@ -15,6 +21,7 @@ target_link_libraries(tx-columnshard-counters PUBLIC
   cpp-monlib-dynamic_counters
   columnshard-counters-common
   ydb-core-base
+  tools-enum_parser-enum_serialization_runtime
 )
 target_sources(tx-columnshard-counters PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/indexation.cpp
@@ -26,3 +33,8 @@ target_sources(tx-columnshard-counters PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/common_data.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/splitter.cpp
 )
+generate_enum_serilization(tx-columnshard-counters
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/columnshard.h
+  INCLUDE_HEADERS
+  ydb/core/tx/columnshard/counters/columnshard.h
+)
diff --git a/ydb/core/tx/columnshard/counters/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/counters/CMakeLists.linux-aarch64.txt
index 24d27e404383..df515f503c80 100644
--- a/ydb/core/tx/columnshard/counters/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/columnshard/counters/CMakeLists.linux-aarch64.txt
@@ -7,6 +7,12 @@
 
 
 add_subdirectory(common)
+get_built_tool_path(
+  TOOL_enum_parser_bin
+  TOOL_enum_parser_dependency
+  tools/enum_parser/enum_parser
+  enum_parser
+)
 
 add_library(tx-columnshard-counters)
 target_link_libraries(tx-columnshard-counters PUBLIC
@@ -16,6 +22,7 @@ target_link_libraries(tx-columnshard-counters PUBLIC
   cpp-monlib-dynamic_counters
   columnshard-counters-common
   ydb-core-base
+  tools-enum_parser-enum_serialization_runtime
 )
 target_sources(tx-columnshard-counters PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/indexation.cpp
@@ -27,3 +34,8 @@ target_sources(tx-columnshard-counters PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/common_data.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/splitter.cpp
 )
+generate_enum_serilization(tx-columnshard-counters
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/columnshard.h
+  INCLUDE_HEADERS
+  ydb/core/tx/columnshard/counters/columnshard.h
+)
diff --git a/ydb/core/tx/columnshard/counters/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/counters/CMakeLists.linux-x86_64.txt
index 24d27e404383..df515f503c80 100644
--- a/ydb/core/tx/columnshard/counters/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/columnshard/counters/CMakeLists.linux-x86_64.txt
@@ -7,6 +7,12 @@
 
 
 add_subdirectory(common)
+get_built_tool_path(
+  TOOL_enum_parser_bin
+  TOOL_enum_parser_dependency
+  tools/enum_parser/enum_parser
+  enum_parser
+)
 
 add_library(tx-columnshard-counters)
 target_link_libraries(tx-columnshard-counters PUBLIC
@@ -16,6 +22,7 @@ target_link_libraries(tx-columnshard-counters PUBLIC
   cpp-monlib-dynamic_counters
   columnshard-counters-common
   ydb-core-base
+  tools-enum_parser-enum_serialization_runtime
 )
 target_sources(tx-columnshard-counters PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/indexation.cpp
@@ -27,3 +34,8 @@ target_sources(tx-columnshard-counters PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/common_data.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/splitter.cpp
 )
+generate_enum_serilization(tx-columnshard-counters
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/columnshard.h
+  INCLUDE_HEADERS
+  ydb/core/tx/columnshard/counters/columnshard.h
+)
diff --git a/ydb/core/tx/columnshard/counters/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/counters/CMakeLists.windows-x86_64.txt
index b67a55fc728e..4d5344c2c183 100644
--- a/ydb/core/tx/columnshard/counters/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/columnshard/counters/CMakeLists.windows-x86_64.txt
@@ -7,6 +7,12 @@
 
 
 add_subdirectory(common)
+get_built_tool_path(
+  TOOL_enum_parser_bin
+  TOOL_enum_parser_dependency
+  tools/enum_parser/enum_parser
+  enum_parser
+)
 
 add_library(tx-columnshard-counters)
 target_link_libraries(tx-columnshard-counters PUBLIC
@@ -15,6 +21,7 @@ target_link_libraries(tx-columnshard-counters PUBLIC
   cpp-monlib-dynamic_counters
   columnshard-counters-common
   ydb-core-base
+  tools-enum_parser-enum_serialization_runtime
 )
 target_sources(tx-columnshard-counters PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/indexation.cpp
@@ -26,3 +33,8 @@ target_sources(tx-columnshard-counters PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/common_data.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/splitter.cpp
 )
+generate_enum_serilization(tx-columnshard-counters
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/counters/columnshard.h
+  INCLUDE_HEADERS
+  ydb/core/tx/columnshard/counters/columnshard.h
+)
diff --git a/ydb/core/tx/columnshard/counters/blobs_manager.cpp b/ydb/core/tx/columnshard/counters/blobs_manager.cpp
index 8e67ada3932c..1a590fb36387 100644
--- a/ydb/core/tx/columnshard/counters/blobs_manager.cpp
+++ b/ydb/core/tx/columnshard/counters/blobs_manager.cpp
@@ -52,7 +52,7 @@ void TBlobsManagerCounters::OnBlobsKeep(const TSet& blobs) const {
 //    BlobsKeepBytes->Set(size);
 }
 
-void TBlobsManagerCounters::OnBlobsDelete(const TSet& /*blobs*/) const {
+void TBlobsManagerCounters::OnBlobsDelete(const NOlap::TTabletsByBlob& /*blobs*/) const {
     //        BlobsDeleteCount->Set(blobs.size());
     //        ui64 size = 0;
     //        for (auto&& i : blobs) {
diff --git a/ydb/core/tx/columnshard/counters/blobs_manager.h b/ydb/core/tx/columnshard/counters/blobs_manager.h
index ef11e508261f..8fdc25436267 100644
--- a/ydb/core/tx/columnshard/counters/blobs_manager.h
+++ b/ydb/core/tx/columnshard/counters/blobs_manager.h
@@ -1,7 +1,14 @@
 #pragma once
+#include "common/owner.h"
+
 #include 
+#include 
+
 #include 
-#include "common/owner.h"
+
+namespace NKikimr::NOlap {
+class TTabletsByBlob;
+}
 
 namespace NKikimr::NColumnShard {
 
@@ -48,7 +55,7 @@ class TBlobsManagerCounters: public TCommonCountersOwner {
 
     void OnBlobsKeep(const TSet& blobs) const;
 
-    void OnBlobsDelete(const TSet& /*blobs*/) const;
+    void OnBlobsDelete(const NOlap::TTabletsByBlob& blobs) const;
 
     void OnAddSmallBlob(const ui32 bSize) const {
         AddSmallBlobBytes->Add(bSize);
diff --git a/ydb/core/tx/columnshard/counters/columnshard.cpp b/ydb/core/tx/columnshard/counters/columnshard.cpp
index 989deae6b9bc..64c7e2931c5f 100644
--- a/ydb/core/tx/columnshard/counters/columnshard.cpp
+++ b/ydb/core/tx/columnshard/counters/columnshard.cpp
@@ -2,6 +2,8 @@
 #include 
 #include 
 
+#include 
+
 namespace NKikimr::NColumnShard {
 
 TCSCounters::TCSCounters()
@@ -22,10 +24,18 @@ TCSCounters::TCSCounters()
     FutureIndexationInputBytes = TBase::GetDeriviative("FutureIndexationInput/Bytes");
     IndexationInputBytes = TBase::GetDeriviative("IndexationInput/Bytes");
 
-    OverloadInsertTableBytes = TBase::GetDeriviative("OverloadInsertTable/Bytes");
-    OverloadInsertTableCount = TBase::GetDeriviative("OverloadInsertTable/Count");
-    OverloadShardBytes = TBase::GetDeriviative("OverloadShard/Bytes");
-    OverloadShardCount = TBase::GetDeriviative("OverloadShard/Count");
+    IndexMetadataLimitBytes = TBase::GetValue("IndexMetadata/Limit/Bytes");
+
+    OverloadInsertTableBytes = TBase::GetDeriviative("Overload/InsertTable/Bytes");
+    OverloadInsertTableCount = TBase::GetDeriviative("Overload/InsertTable/Count");
+    OverloadMetadataBytes = TBase::GetDeriviative("Overload/Metadata/Bytes");
+    OverloadMetadataCount = TBase::GetDeriviative("Overload/Metadata/Count");
+    OverloadShardTxBytes = TBase::GetDeriviative("Overload/Shard/Tx/Bytes");
+    OverloadShardTxCount = TBase::GetDeriviative("Overload/Shard/Tx/Count");
+    OverloadShardWritesBytes = TBase::GetDeriviative("Overload/Shard/Writes/Bytes");
+    OverloadShardWritesCount = TBase::GetDeriviative("Overload/Shard/Writes/Count");
+    OverloadShardWritesSizeBytes = TBase::GetDeriviative("Overload/Shard/WritesSize/Bytes");
+    OverloadShardWritesSizeCount = TBase::GetDeriviative("Overload/Shard/WritesSize/Count");
 
     InternalCompactionGranuleBytes = TBase::GetValueAutoAggregationsClient("InternalCompaction/Bytes");
     InternalCompactionGranulePortionsCount = TBase::GetValueAutoAggregationsClient("InternalCompaction/PortionsCount");
@@ -39,12 +49,25 @@ TCSCounters::TCSCounters()
     HistogramSuccessWriteMiddle3PutBlobsDurationMs = TBase::GetHistogram("SuccessWriteMiddle3PutBlobsDurationMs", NMonitoring::ExponentialHistogram(18, 2, 5));
     HistogramSuccessWriteMiddle4PutBlobsDurationMs = TBase::GetHistogram("SuccessWriteMiddle4PutBlobsDurationMs", NMonitoring::ExponentialHistogram(18, 2, 5));
     HistogramSuccessWriteMiddle5PutBlobsDurationMs = TBase::GetHistogram("SuccessWriteMiddle5PutBlobsDurationMs", NMonitoring::ExponentialHistogram(18, 2, 5));
+    HistogramSuccessWriteMiddle6PutBlobsDurationMs = TBase::GetHistogram("SuccessWriteMiddle6PutBlobsDurationMs", NMonitoring::ExponentialHistogram(18, 2, 5));
     HistogramFailedWritePutBlobsDurationMs = TBase::GetHistogram("FailedWritePutBlobsDurationMs", NMonitoring::ExponentialHistogram(18, 2, 5));
     HistogramWriteTxCompleteDurationMs = TBase::GetHistogram("WriteTxCompleteDurationMs", NMonitoring::ExponentialHistogram(18, 2, 5));
     WritePutBlobsCount = TBase::GetValue("WritePutBlobs");
     WriteRequests = TBase::GetValue("WriteRequests");
-    FailedWriteRequests = TBase::GetDeriviative("FailedWriteRequests");
+
+    for (auto&& i : GetEnumAllValues()) {
+        auto sub = CreateSubGroup("reason", ::ToString(i));
+        FailedWriteRequests.emplace(i, sub.GetDeriviative("FailedWriteRequests"));
+    }
+
     SuccessWriteRequests = TBase::GetDeriviative("SuccessWriteRequests");
 }
 
+void TCSCounters::OnFailedWriteResponse(const EWriteFailReason reason) const {
+    WriteRequests->Sub(1);
+    auto it = FailedWriteRequests.find(reason);
+    AFL_VERIFY(it != FailedWriteRequests.end());
+    it->second->Add(1);
+}
+
 }
diff --git a/ydb/core/tx/columnshard/counters/columnshard.h b/ydb/core/tx/columnshard/counters/columnshard.h
index ffe935c995c2..6bada377df17 100644
--- a/ydb/core/tx/columnshard/counters/columnshard.h
+++ b/ydb/core/tx/columnshard/counters/columnshard.h
@@ -1,9 +1,21 @@
 #pragma once
-#include 
 #include "common/owner.h"
 
+#include 
+
+#include 
+
 namespace NKikimr::NColumnShard {
 
+enum class EWriteFailReason {
+    Disabled /* "disabled" */,
+    PutBlob /* "put_blob" */,
+    LongTxDuplication /* "long_tx_duplication" */,
+    NoTable /* "no_table" */,
+    IncorrectSchema /* "incorrect_schema" */,
+    Overload /* "overload" */
+};
+
 class TCSCounters: public TCommonCountersOwner {
 private:
     using TBase = TCommonCountersOwner;
@@ -22,10 +34,18 @@ class TCSCounters: public TCommonCountersOwner {
     NMonitoring::TDynamicCounters::TCounterPtr FutureIndexationInputBytes;
     NMonitoring::TDynamicCounters::TCounterPtr IndexationInputBytes;
 
+    NMonitoring::TDynamicCounters::TCounterPtr IndexMetadataLimitBytes;
+
     NMonitoring::TDynamicCounters::TCounterPtr OverloadInsertTableBytes;
     NMonitoring::TDynamicCounters::TCounterPtr OverloadInsertTableCount;
-    NMonitoring::TDynamicCounters::TCounterPtr OverloadShardBytes;
-    NMonitoring::TDynamicCounters::TCounterPtr OverloadShardCount;
+    NMonitoring::TDynamicCounters::TCounterPtr OverloadMetadataBytes;
+    NMonitoring::TDynamicCounters::TCounterPtr OverloadMetadataCount;
+    NMonitoring::TDynamicCounters::TCounterPtr OverloadShardTxBytes;
+    NMonitoring::TDynamicCounters::TCounterPtr OverloadShardTxCount;
+    NMonitoring::TDynamicCounters::TCounterPtr OverloadShardWritesBytes;
+    NMonitoring::TDynamicCounters::TCounterPtr OverloadShardWritesCount;
+    NMonitoring::TDynamicCounters::TCounterPtr OverloadShardWritesSizeBytes;
+    NMonitoring::TDynamicCounters::TCounterPtr OverloadShardWritesSizeCount;
 
     std::shared_ptr InternalCompactionGranuleBytes;
     std::shared_ptr InternalCompactionGranulePortionsCount;
@@ -39,54 +59,56 @@ class TCSCounters: public TCommonCountersOwner {
     NMonitoring::THistogramPtr HistogramSuccessWriteMiddle3PutBlobsDurationMs;
     NMonitoring::THistogramPtr HistogramSuccessWriteMiddle4PutBlobsDurationMs;
     NMonitoring::THistogramPtr HistogramSuccessWriteMiddle5PutBlobsDurationMs;
+    NMonitoring::THistogramPtr HistogramSuccessWriteMiddle6PutBlobsDurationMs;
     NMonitoring::THistogramPtr HistogramFailedWritePutBlobsDurationMs;
     NMonitoring::THistogramPtr HistogramWriteTxCompleteDurationMs;
     NMonitoring::TDynamicCounters::TCounterPtr WritePutBlobsCount;
     NMonitoring::TDynamicCounters::TCounterPtr WriteRequests;
-    NMonitoring::TDynamicCounters::TCounterPtr FailedWriteRequests;
+    THashMap FailedWriteRequests;
     NMonitoring::TDynamicCounters::TCounterPtr SuccessWriteRequests;
 public:
     void OnStartWriteRequest() const {
         WriteRequests->Add(1);
     }
 
-    void OnFailedWriteResponse() const {
-        WriteRequests->Sub(1);
-        FailedWriteRequests->Add(1);
-    }
+    void OnFailedWriteResponse(const EWriteFailReason reason) const;
 
     void OnSuccessWriteResponse() const {
         WriteRequests->Sub(1);
         SuccessWriteRequests->Add(1);
     }
 
-    void OnWritePutBlobsSuccess(const ui32 milliseconds) const {
-        HistogramSuccessWritePutBlobsDurationMs->Collect(milliseconds);
+    void OnWritePutBlobsSuccess(const TDuration d) const {
+        HistogramSuccessWritePutBlobsDurationMs->Collect(d.MilliSeconds());
         WritePutBlobsCount->Sub(1);
     }
 
-    void OnWriteMiddle1PutBlobsSuccess(const ui32 milliseconds) const {
-        HistogramSuccessWriteMiddle1PutBlobsDurationMs->Collect(milliseconds);
+    void OnWriteMiddle1PutBlobsSuccess(const TDuration d) const {
+        HistogramSuccessWriteMiddle1PutBlobsDurationMs->Collect(d.MilliSeconds());
     }
 
-    void OnWriteMiddle2PutBlobsSuccess(const ui32 milliseconds) const {
-        HistogramSuccessWriteMiddle2PutBlobsDurationMs->Collect(milliseconds);
+    void OnWriteMiddle2PutBlobsSuccess(const TDuration d) const {
+        HistogramSuccessWriteMiddle2PutBlobsDurationMs->Collect(d.MilliSeconds());
     }
 
-    void OnWriteMiddle3PutBlobsSuccess(const ui32 milliseconds) const {
-        HistogramSuccessWriteMiddle3PutBlobsDurationMs->Collect(milliseconds);
+    void OnWriteMiddle3PutBlobsSuccess(const TDuration d) const {
+        HistogramSuccessWriteMiddle3PutBlobsDurationMs->Collect(d.MilliSeconds());
     }
 
-    void OnWriteMiddle4PutBlobsSuccess(const ui32 milliseconds) const {
-        HistogramSuccessWriteMiddle4PutBlobsDurationMs->Collect(milliseconds);
+    void OnWriteMiddle4PutBlobsSuccess(const TDuration d) const {
+        HistogramSuccessWriteMiddle4PutBlobsDurationMs->Collect(d.MilliSeconds());
     }
 
-    void OnWriteMiddle5PutBlobsSuccess(const ui32 milliseconds) const {
-        HistogramSuccessWriteMiddle5PutBlobsDurationMs->Collect(milliseconds);
+    void OnWriteMiddle5PutBlobsSuccess(const TDuration d) const {
+        HistogramSuccessWriteMiddle5PutBlobsDurationMs->Collect(d.MilliSeconds());
     }
 
-    void OnWritePutBlobsFail(const ui32 milliseconds) const {
-        HistogramFailedWritePutBlobsDurationMs->Collect(milliseconds);
+    void OnWriteMiddle6PutBlobsSuccess(const TDuration d) const {
+        HistogramSuccessWriteMiddle6PutBlobsDurationMs->Collect(d.MilliSeconds());
+    }
+
+    void OnWritePutBlobsFail(const TDuration d) const {
+        HistogramFailedWritePutBlobsDurationMs->Collect(d.MilliSeconds());
         WritePutBlobsCount->Sub(1);
     }
 
@@ -94,8 +116,8 @@ class TCSCounters: public TCommonCountersOwner {
         WritePutBlobsCount->Add(1);
     }
 
-    void OnWriteTxComplete(const ui32 milliseconds) const {
-        HistogramWriteTxCompleteDurationMs->Collect(milliseconds);
+    void OnWriteTxComplete(const TDuration d) const {
+        HistogramWriteTxCompleteDurationMs->Collect(d.MilliSeconds());
     }
 
     void OnInternalCompactionInfo(const ui64 bytes, const ui32 portionsCount) const {
@@ -113,9 +135,24 @@ class TCSCounters: public TCommonCountersOwner {
         OverloadInsertTableCount->Add(1);
     }
 
-    void OnOverloadShard(const ui64 size) const {
-        OverloadShardBytes->Add(size);
-        OverloadShardCount->Add(1);
+    void OnOverloadMetadata(const ui64 size) const {
+        OverloadMetadataBytes->Add(size);
+        OverloadMetadataCount->Add(1);
+    }
+
+    void OnOverloadShardTx(const ui64 size) const {
+        OverloadShardTxBytes->Add(size);
+        OverloadShardTxCount->Add(1);
+    }
+
+    void OnOverloadShardWrites(const ui64 size) const {
+        OverloadShardWritesBytes->Add(size);
+        OverloadShardWritesCount->Add(1);
+    }
+
+    void OnOverloadShardWritesSize(const ui64 size) const {
+        OverloadShardWritesSizeBytes->Add(size);
+        OverloadShardWritesSizeCount->Add(1);
     }
 
     void SkipIndexationInputDueToSplitCompaction(const ui64 size) const {
@@ -136,6 +173,10 @@ class TCSCounters: public TCommonCountersOwner {
         IndexationInputBytes->Add(size);
     }
 
+    void OnIndexMetadataLimit(const ui64 limit) const {
+        IndexMetadataLimitBytes->Set(limit);
+    }
+
     void OnStartBackground() const {
         StartBackgroundCount->Add(1);
     }
diff --git a/ydb/core/tx/columnshard/counters/common/histogram.cpp b/ydb/core/tx/columnshard/counters/common/histogram.cpp
new file mode 100644
index 000000000000..096ea8dc5c08
--- /dev/null
+++ b/ydb/core/tx/columnshard/counters/common/histogram.cpp
@@ -0,0 +1,83 @@
+#include "histogram.h"
+
+namespace NKikimr::NColumnShard {
+
+TIncrementalHistogram::TIncrementalHistogram(const TString& moduleId, const TString& metricId, const TString& category, const std::set& values)
+    : TBase(moduleId)
+{
+    DeepSubGroup("metric", metricId);
+    if (category) {
+        DeepSubGroup("category", category);
+    }
+    std::optional predName;
+    for (auto&& i : values) {
+        if (!predName) {
+            Counters.emplace(i, TBase::GetValue("(-Inf," + ::ToString(i) + "]"));
+        } else {
+            Counters.emplace(i, TBase::GetValue("(" + *predName + "," + ::ToString(i) + "]"));
+        }
+        predName = ::ToString(i);
+    }
+    Y_ABORT_UNLESS(predName);
+    PlusInf = TBase::GetValue("(" + *predName + ",+Inf)");
+}
+
+TIncrementalHistogram::TIncrementalHistogram(const TString& moduleId, const TString& metricId, const TString& category, const std::map& values)
+    : TBase(moduleId)
+{
+    DeepSubGroup("metric", metricId);
+    if (category) {
+        DeepSubGroup("category", category);
+    }
+    std::optional predName;
+    for (auto&& i : values) {
+        if (!predName) {
+            Counters.emplace(i.first, TBase::GetValue("(-Inf," + i.second + "]"));
+        } else {
+            Counters.emplace(i.first, TBase::GetValue("(" + *predName + "," + i.second + "]"));
+        }
+        predName = i.second;
+    }
+    Y_ABORT_UNLESS(predName);
+    PlusInf = TBase::GetValue("(" + *predName + ",+Inf)");
+}
+
+TDeriviativeHistogram::TDeriviativeHistogram(const TString& moduleId, const TString& signalName, const TString& category, const std::set& values)
+    : TBase(moduleId)
+{
+    if (category) {
+        DeepSubGroup("category", category);
+    }
+    std::optional predName;
+    for (auto&& i : values) {
+        if (!predName) {
+            Counters.emplace(i, CreateSubGroup("bin", "(-Inf," + ::ToString(i) + "]").GetDeriviative(signalName));
+        } else {
+            Counters.emplace(i, CreateSubGroup("bin", "(" + *predName + "," + ::ToString(i) + "]").GetDeriviative(signalName));
+        }
+        predName = ::ToString(i);
+    }
+    Y_ABORT_UNLESS(predName);
+    PlusInf = CreateSubGroup("bin", "(" + *predName + ",+Inf)").GetDeriviative(signalName);
+}
+
+TDeriviativeHistogram::TDeriviativeHistogram(const TString& moduleId, const TString& signalName, const TString& category, const std::map& values)
+    : TBase(moduleId) 
+{
+    if (category) {
+        DeepSubGroup("category", category);
+    }
+    std::optional predName;
+    for (auto&& i : values) {
+        if (!predName) {
+            Counters.emplace(i.first, CreateSubGroup("bin", "(-Inf," + i.second + "]").GetDeriviative(signalName));
+        } else {
+            Counters.emplace(i.first, CreateSubGroup("bin", "(" + *predName + "," + i.second + "]").GetDeriviative(signalName));
+        }
+        predName = i.second;
+    }
+    Y_ABORT_UNLESS(predName);
+    PlusInf = CreateSubGroup("bin", "(" + *predName + ",+Inf)").GetDeriviative(signalName);
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/counters/common/histogram.h b/ydb/core/tx/columnshard/counters/common/histogram.h
new file mode 100644
index 000000000000..fcd1170ec142
--- /dev/null
+++ b/ydb/core/tx/columnshard/counters/common/histogram.h
@@ -0,0 +1,118 @@
+#pragma once
+#include "owner.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NColumnShard {
+
+class TIncrementalHistogram: public TCommonCountersOwner {
+private:
+    using TBase = TCommonCountersOwner;
+    std::map Counters;
+    NMonitoring::TDynamicCounters::TCounterPtr PlusInf;
+
+    NMonitoring::TDynamicCounters::TCounterPtr GetQuantile(const i64 value) const {
+        auto it = Counters.lower_bound(value);
+        if (it == Counters.end()) {
+            return PlusInf;
+        } else {
+            return it->second;
+        }
+    }
+public:
+
+    class TGuard {
+    private:
+        class TLineGuard {
+        private:
+            NMonitoring::TDynamicCounters::TCounterPtr Counter;
+            i64 Value = 0;
+        public:
+            TLineGuard(NMonitoring::TDynamicCounters::TCounterPtr counter)
+                : Counter(counter) {
+
+            }
+
+            ~TLineGuard() {
+                Sub(Value);
+            }
+
+            void Add(const i64 value) {
+                Counter->Add(value);
+                Value += value;
+            }
+
+            void Sub(const i64 value) {
+                Counter->Sub(value);
+                Value -= value;
+                Y_ABORT_UNLESS(Value >= 0);
+            }
+        };
+
+        std::map Counters;
+        TLineGuard PlusInf;
+
+        TLineGuard& GetLineGuard(const i64 value) {
+            auto it = Counters.lower_bound(value);
+            if (it == Counters.end()) {
+                return PlusInf;
+            } else {
+                return it->second;
+            }
+        }
+    public:
+        TGuard(const TIncrementalHistogram& owner)
+            : PlusInf(owner.PlusInf) {
+            for (auto&& i : owner.Counters) {
+                Counters.emplace(i.first, TLineGuard(i.second));
+            }
+        }
+        void Add(const i64 value, const i64 count) {
+            GetLineGuard(value).Add(count);
+        }
+
+        void Sub(const i64 value, const i64 count) {
+            GetLineGuard(value).Sub(count);
+        }
+    };
+
+    std::shared_ptr BuildGuard() const {
+        return std::make_shared(*this);
+    }
+
+    TIncrementalHistogram(const TString& moduleId, const TString& metricId, const TString& category, const std::set& values);
+
+    TIncrementalHistogram(const TString& moduleId, const TString& metricId, const TString& category, const std::map& values);
+
+};
+
+class TDeriviativeHistogram: public TCommonCountersOwner {
+private:
+    using TBase = TCommonCountersOwner;
+    std::map Counters;
+    NMonitoring::TDynamicCounters::TCounterPtr PlusInf;
+
+    NMonitoring::TDynamicCounters::TCounterPtr GetQuantile(const i64 value) const {
+        auto it = Counters.lower_bound(value);
+        if (it == Counters.end()) {
+            return PlusInf;
+        } else {
+            return it->second;
+        }
+    }
+public:
+
+    void Collect(const i64 volume, const ui32 count = 1) const {
+        GetQuantile(volume)->Add(count);
+
+    }
+
+    TDeriviativeHistogram(const TString& moduleId, const TString& signalName, const TString& category, const std::set& values);
+
+    TDeriviativeHistogram(const TString& moduleId, const TString& signalName, const TString& category, const std::map& values);
+
+};
+
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/counters/common/owner.h b/ydb/core/tx/columnshard/counters/common/owner.h
index 1ea4bd513b7f..456699c80dc0 100644
--- a/ydb/core/tx/columnshard/counters/common/owner.h
+++ b/ydb/core/tx/columnshard/counters/common/owner.h
@@ -50,6 +50,9 @@ class TCommonCountersOwner {
     NMonitoring::TDynamicCounters::TCounterPtr GetDeriviative(const TString& name) const;
     void DeepSubGroup(const TString& id, const TString& value);
     void DeepSubGroup(const TString& componentName);
+    TCommonCountersOwner CreateSubGroup(const TString& param, const TString& value) const {
+        return TCommonCountersOwner(*this, param, value);
+    }
     NMonitoring::THistogramPtr GetHistogram(const TString& name, NMonitoring::IHistogramCollectorPtr&& hCollector) const;
 
     TCommonCountersOwner(const TString& module, TIntrusivePtr<::NMonitoring::TDynamicCounters> baseSignals = nullptr);
diff --git a/ydb/core/tx/columnshard/counters/common/ya.make b/ydb/core/tx/columnshard/counters/common/ya.make
index 804699ec52bd..b2e330fc8b9b 100644
--- a/ydb/core/tx/columnshard/counters/common/ya.make
+++ b/ydb/core/tx/columnshard/counters/common/ya.make
@@ -6,6 +6,7 @@ SRCS(
     owner.cpp
     private.cpp
     object_counter.cpp
+    histogram.cpp
 )
 
 PEERDIR(
diff --git a/ydb/core/tx/columnshard/counters/engine_logs.cpp b/ydb/core/tx/columnshard/counters/engine_logs.cpp
index 07b2844e97de..e9daf966e196 100644
--- a/ydb/core/tx/columnshard/counters/engine_logs.cpp
+++ b/ydb/core/tx/columnshard/counters/engine_logs.cpp
@@ -2,6 +2,8 @@
 #include 
 #include 
 #include 
+#include 
+
 #include 
 
 namespace NKikimr::NColumnShard {
@@ -38,35 +40,82 @@ TEngineLogsCounters::TEngineLogsCounters()
 
     PortionToDropCount = TBase::GetDeriviative("Ttl/PortionToDrop/Count");
     PortionToDropBytes = TBase::GetDeriviative("Ttl/PortionToDrop/Bytes");
+    PortionToDropLag = TBase::GetHistogram("Ttl/PortionToDrop/Lag/Duration", NMonitoring::ExponentialHistogram(18, 2, 5));
+    SkipDeleteWithProcessMemory = TBase::GetHistogram("Ttl/PortionToDrop/Skip/ProcessMemory/Lag/Duration", NMonitoring::ExponentialHistogram(18, 2, 5));
+    SkipDeleteWithTxLimit = TBase::GetHistogram("Ttl/PortionToDrop/Skip/TxLimit/Lag/Duration", NMonitoring::ExponentialHistogram(18, 2, 5));
 
     PortionToEvictCount = TBase::GetDeriviative("Ttl/PortionToEvict/Count");
     PortionToEvictBytes = TBase::GetDeriviative("Ttl/PortionToEvict/Bytes");
+    PortionToEvictLag = TBase::GetHistogram("Ttl/PortionToEvict/Lag/Duration", NMonitoring::ExponentialHistogram(18, 2, 5));
+    SkipEvictionWithProcessMemory = TBase::GetHistogram("Ttl/PortionToEvict/Skip/ProcessMemory/Lag/Duration", NMonitoring::ExponentialHistogram(18, 2, 5));
+    SkipEvictionWithTxLimit = TBase::GetHistogram("Ttl/PortionToEvict/Skip/TxLimit/Lag/Duration", NMonitoring::ExponentialHistogram(18, 2, 5));
+
+    ActualizationTaskSizeRemove = TBase::GetHistogram("Actualization/RemoveTasks/Size", NMonitoring::ExponentialHistogram(18, 2));
+    ActualizationTaskSizeEvict = TBase::GetHistogram("Actualization/EvictTasks/Size", NMonitoring::ExponentialHistogram(18, 2));
+
+    ActualizationSkipRWProgressCount = TBase::GetDeriviative("Actualization/Skip/RWProgress/Count");
+    ActualizationSkipTooFreshPortion = TBase::GetHistogram("Actualization//Skip/TooFresh/Duration", NMonitoring::LinearHistogram(12, 0, 360));
 
     PortionNoTtlColumnCount = TBase::GetDeriviative("Ttl/PortionNoTtlColumn/Count");
     PortionNoTtlColumnBytes = TBase::GetDeriviative("Ttl/PortionNoTtlColumn/Bytes");
 
     PortionNoBorderCount = TBase::GetDeriviative("Ttl/PortionNoBorder/Count");
     PortionNoBorderBytes = TBase::GetDeriviative("Ttl/PortionNoBorder/Bytes");
+
+    GranuleOptimizerLocked = TBase::GetDeriviative("Optimizer/Granules/Locked");
+
+    IndexMetadataUsageBytes = TBase::GetValue("IndexMetadata/Usage/Bytes");
+
+    StatUsageForTTLCount = TBase::GetDeriviative("Ttl/StatUsageForTTLCount/Count");
+    ChunkUsageForTTLCount = TBase::GetDeriviative("Ttl/ChunkUsageForTTLCount/Count");
+}
+
+void TEngineLogsCounters::OnActualizationTask(const ui32 evictCount, const ui32 removeCount) const {
+    AFL_VERIFY(evictCount * removeCount == 0)("evict", evictCount)("remove", removeCount);
+    AFL_VERIFY(evictCount + removeCount);
+    if (evictCount) {
+        ActualizationTaskSizeEvict->Collect(evictCount);
+    } else {
+        ActualizationTaskSizeRemove->Collect(removeCount);
+    }
 }
 
 void TEngineLogsCounters::TPortionsInfoGuard::OnNewPortion(const std::shared_ptr& portion) const {
     const ui32 producedId = (ui32)(portion->HasRemoveSnapshot() ? NOlap::NPortion::EProduced::INACTIVE : portion->GetMeta().Produced);
     Y_ABORT_UNLESS(producedId < BlobGuards.size());
-    for (auto&& i : portion->GetBlobIds()) {
-        BlobGuards[producedId]->Add(i.BlobSize(), i.BlobSize());
+    for (auto&& i : portion->GetRecords()) {
+        BlobGuards[producedId]->Add(i.GetBlobRange().Size, i.GetBlobRange().Size);
+    }
+    for (auto&& i : portion->GetIndexes()) {
+        BlobGuards[producedId]->Add(i.GetBlobRange().Size, i.GetBlobRange().Size);
     }
     PortionRecordCountGuards[producedId]->Add(portion->GetRecordsCount(), 1);
-    PortionSizeGuards[producedId]->Add(portion->GetBlobBytes(), 1);
+    PortionSizeGuards[producedId]->Add(portion->GetTotalBlobBytes(), 1);
 }
 
 void TEngineLogsCounters::TPortionsInfoGuard::OnDropPortion(const std::shared_ptr& portion) const {
     const ui32 producedId = (ui32)(portion->HasRemoveSnapshot() ? NOlap::NPortion::EProduced::INACTIVE : portion->GetMeta().Produced);
     Y_ABORT_UNLESS(producedId < BlobGuards.size());
-    for (auto&& i : portion->GetBlobIds()) {
-        BlobGuards[producedId]->Sub(i.BlobSize(), i.BlobSize());
+    for (auto&& i : portion->GetRecords()) {
+        BlobGuards[producedId]->Sub(i.GetBlobRange().Size, i.GetBlobRange().Size);
+    }
+    for (auto&& i : portion->GetIndexes()) {
+        BlobGuards[producedId]->Sub(i.GetBlobRange().Size, i.GetBlobRange().Size);
     }
     PortionRecordCountGuards[producedId]->Sub(portion->GetRecordsCount(), 1);
-    PortionSizeGuards[producedId]->Sub(portion->GetBlobBytes(), 1);
+    PortionSizeGuards[producedId]->Sub(portion->GetTotalBlobBytes(), 1);
+}
+
+NKikimr::NColumnShard::TBaseGranuleDataClassSummary TBaseGranuleDataClassSummary::operator+(const TBaseGranuleDataClassSummary& item) const {
+    TBaseGranuleDataClassSummary result;
+    result.TotalPortionsSize = TotalPortionsSize + item.TotalPortionsSize;
+    result.ColumnPortionsSize = ColumnPortionsSize + item.ColumnPortionsSize;
+    AFL_VERIFY(result.TotalPortionsSize >= 0);
+    AFL_VERIFY(result.ColumnPortionsSize >= 0);
+    result.PortionsCount = PortionsCount + item.PortionsCount;
+    result.RecordsCount = RecordsCount + item.RecordsCount;
+    result.MetadataMemoryPortionsSize = MetadataMemoryPortionsSize + item.MetadataMemoryPortionsSize;
+    return result;
 }
 
 }
diff --git a/ydb/core/tx/columnshard/counters/engine_logs.h b/ydb/core/tx/columnshard/counters/engine_logs.h
index 20aa0a9757c8..97a4716652c3 100644
--- a/ydb/core/tx/columnshard/counters/engine_logs.h
+++ b/ydb/core/tx/columnshard/counters/engine_logs.h
@@ -1,5 +1,6 @@
 #pragma once
 #include "common/owner.h"
+#include "common/histogram.h"
 #include 
 #include 
 #include 
@@ -13,12 +14,17 @@ namespace NKikimr::NColumnShard {
 
 class TBaseGranuleDataClassSummary {
 protected:
-    i64 PortionsSize = 0;
+    i64 ColumnPortionsSize = 0;
+    i64 TotalPortionsSize = 0;
     i64 PortionsCount = 0;
     i64 RecordsCount = 0;
+    i64 MetadataMemoryPortionsSize = 0;
 public:
-    i64 GetPortionsSize() const {
-        return PortionsSize;
+    i64 GetColumnPortionsSize() const {
+        return ColumnPortionsSize;
+    }
+    i64 GetTotalPortionsSize() const {
+        return TotalPortionsSize;
     }
     i64 GetRecordsCount() const {
         return RecordsCount;
@@ -26,18 +32,21 @@ class TBaseGranuleDataClassSummary {
     i64 GetPortionsCount() const {
         return PortionsCount;
     }
+    i64 GetMetadataMemoryPortionsSize() const {
+        return MetadataMemoryPortionsSize;
+    }
 
     TString DebugString() const {
-        return TStringBuilder() << "size:" << PortionsSize << ";count:" << PortionsCount << ";";
+        return TStringBuilder() << 
+            "columns_size:" << ColumnPortionsSize << 
+            ";total_size:" << TotalPortionsSize << 
+            ";count:" << PortionsCount << 
+            ";metadata_portions_size:" << MetadataMemoryPortionsSize <<
+            ";records_count:" << RecordsCount <<
+            ";";
     }
 
-    TBaseGranuleDataClassSummary operator+(const TBaseGranuleDataClassSummary& item) const {
-        TBaseGranuleDataClassSummary result;
-        result.PortionsSize = PortionsSize + item.PortionsSize;
-        result.PortionsCount = PortionsCount + item.PortionsCount;
-        result.RecordsCount = RecordsCount + item.RecordsCount;
-        return result;
-    }
+    TBaseGranuleDataClassSummary operator+(const TBaseGranuleDataClassSummary& item) const;
 };
 
 class TDataClassCounters {
@@ -53,7 +62,7 @@ class TDataClassCounters {
     }
 
     void OnPortionsInfo(const TBaseGranuleDataClassSummary& dataInfo) const {
-        PortionsSize->SetValue(dataInfo.GetPortionsSize());
+        PortionsSize->SetValue(dataInfo.GetTotalPortionsSize());
         PortionsCount->SetValue(dataInfo.GetPortionsCount());
     }
 };
@@ -113,143 +122,45 @@ class TAgentGranuleDataCounters {
     }
 };
 
-class TIncrementalHistogram: public TCommonCountersOwner {
-private:
-    using TBase = TCommonCountersOwner;
-    std::map Counters;
-    NMonitoring::TDynamicCounters::TCounterPtr PlusInf;
-
-    NMonitoring::TDynamicCounters::TCounterPtr GetQuantile(const i64 value) const {
-        auto it = Counters.lower_bound(value);
-        if (it == Counters.end()) {
-            return PlusInf;
-        } else {
-            return it->second;
-        }
-    }
-public:
-
-    class TGuard {
-    private:
-        class TLineGuard {
-        private:
-            NMonitoring::TDynamicCounters::TCounterPtr Counter;
-            i64 Value = 0;
-        public:
-            TLineGuard(NMonitoring::TDynamicCounters::TCounterPtr counter)
-                : Counter(counter)
-            {
-
-            }
-
-            ~TLineGuard() {
-                Sub(Value);
-            }
-
-            void Add(const i64 value) {
-                Counter->Add(value);
-                Value += value;
-            }
-
-            void Sub(const i64 value) {
-                Counter->Sub(value);
-                Value -= value;
-                Y_ABORT_UNLESS(Value >= 0);
-            }
-        };
-
-        std::map Counters;
-        TLineGuard PlusInf;
-
-        TLineGuard& GetLineGuard(const i64 value) {
-            auto it = Counters.lower_bound(value);
-            if (it == Counters.end()) {
-                return PlusInf;
-            } else {
-                return it->second;
-            }
-        }
-    public:
-        TGuard(const TIncrementalHistogram& owner)
-            : PlusInf(owner.PlusInf)
-        {
-            for (auto&& i : owner.Counters) {
-                Counters.emplace(i.first, TLineGuard(i.second));
-            }
-        }
-        void Add(const i64 value, const i64 count) {
-            GetLineGuard(value).Add(count);
-        }
-
-        void Sub(const i64 value, const i64 count) {
-            GetLineGuard(value).Sub(count);
-        }
-    };
-
-    std::shared_ptr BuildGuard() const {
-        return std::make_shared(*this);
-    }
-
-    TIncrementalHistogram(const TString& moduleId, const TString& metricId, const TString& category, const std::set& values)
-        : TBase(moduleId) {
-        DeepSubGroup("metric", metricId);
-        if (category) {
-            DeepSubGroup("category", category);
-        }
-        std::optional predName;
-        for (auto&& i : values) {
-            if (!predName) {
-                Counters.emplace(i, TBase::GetValue("(-Inf," + ::ToString(i) + "]"));
-            } else {
-                Counters.emplace(i, TBase::GetValue("(" + *predName + "," + ::ToString(i) + "]"));
-            }
-            predName = ::ToString(i);
-        }
-        Y_ABORT_UNLESS(predName);
-        PlusInf = TBase::GetValue("(" + *predName + ",+Inf)");
-    }
-
-    TIncrementalHistogram(const TString& moduleId, const TString& metricId, const TString& category, const std::map& values)
-        : TBase(moduleId)
-    {
-        DeepSubGroup("metric", metricId);
-        if (category) {
-            DeepSubGroup("category", category);
-        }
-        std::optional predName;
-        for (auto&& i : values) {
-            if (!predName) {
-                Counters.emplace(i.first, TBase::GetValue("(-Inf," + i.second + "]"));
-            } else {
-                Counters.emplace(i.first, TBase::GetValue("(" + *predName + "," + i.second + "]"));
-            }
-            predName = i.second;
-        }
-        Y_ABORT_UNLESS(predName);
-        PlusInf = TBase::GetValue("(" + *predName + ",+Inf)");
-    }
-
-};
-
 class TEngineLogsCounters: public TCommonCountersOwner {
 private:
     using TBase = TCommonCountersOwner;
     NMonitoring::TDynamicCounters::TCounterPtr PortionToDropCount;
     NMonitoring::TDynamicCounters::TCounterPtr PortionToDropBytes;
+    NMonitoring::THistogramPtr PortionToDropLag;
+    NMonitoring::THistogramPtr SkipDeleteWithProcessMemory;
+    NMonitoring::THistogramPtr SkipDeleteWithTxLimit;
 
     NMonitoring::TDynamicCounters::TCounterPtr PortionToEvictCount;
     NMonitoring::TDynamicCounters::TCounterPtr PortionToEvictBytes;
+    NMonitoring::THistogramPtr PortionToEvictLag;
+    NMonitoring::THistogramPtr SkipEvictionWithProcessMemory;
+    NMonitoring::THistogramPtr SkipEvictionWithTxLimit;
+
+    NMonitoring::THistogramPtr ActualizationTaskSizeRemove;
+    NMonitoring::THistogramPtr ActualizationTaskSizeEvict;
+
+    NMonitoring::TDynamicCounters::TCounterPtr ActualizationSkipRWProgressCount;
+    NMonitoring::THistogramPtr ActualizationSkipTooFreshPortion;
 
     NMonitoring::TDynamicCounters::TCounterPtr PortionNoTtlColumnCount;
     NMonitoring::TDynamicCounters::TCounterPtr PortionNoTtlColumnBytes;
 
+    NMonitoring::TDynamicCounters::TCounterPtr StatUsageForTTLCount;
+    NMonitoring::TDynamicCounters::TCounterPtr ChunkUsageForTTLCount;
+
     NMonitoring::TDynamicCounters::TCounterPtr PortionNoBorderCount;
     NMonitoring::TDynamicCounters::TCounterPtr PortionNoBorderBytes;
 
+    NMonitoring::TDynamicCounters::TCounterPtr GranuleOptimizerLocked;
+
+    NMonitoring::TDynamicCounters::TCounterPtr IndexMetadataUsageBytes;
+
     TAgentGranuleDataCounters GranuleDataAgent;
     std::vector> BlobSizeDistribution;
     std::vector> PortionSizeDistribution;
     std::vector> PortionRecordsDistribution;
+
 public:
 
     class TPortionsInfoGuard {
@@ -279,6 +190,8 @@ class TEngineLogsCounters: public TCommonCountersOwner {
 
     };
 
+    void OnActualizationTask(const ui32 evictCount, const ui32 removeCount) const;
+
     TPortionsInfoGuard BuildPortionBlobsGuard() const {
         return TPortionsInfoGuard(BlobSizeDistribution, PortionSizeDistribution, PortionRecordsDistribution);
     }
@@ -287,14 +200,40 @@ class TEngineLogsCounters: public TCommonCountersOwner {
         return GranuleDataAgent.RegisterClient();
     }
 
-    void OnPortionToEvict(const ui64 size) const {
+    void OnActualizationSkipRWProgress() const {
+        ActualizationSkipRWProgressCount->Add(1);
+    }
+
+    void OnActualizationSkipTooFreshPortion(const TDuration dWait) const {
+        ActualizationSkipTooFreshPortion->Collect(dWait.Seconds());
+    }
+
+    void OnSkipDeleteWithProcessMemory(const TDuration lag) const {
+        SkipDeleteWithProcessMemory->Collect(lag.Seconds());
+    }
+
+    void OnSkipDeleteWithTxLimit(const TDuration lag) const {
+        SkipDeleteWithTxLimit->Collect(lag.Seconds());
+    }
+
+    void OnSkipEvictionWithProcessMemory(const TDuration lag) const {
+        SkipEvictionWithProcessMemory->Collect(lag.Seconds());
+    }
+
+    void OnSkipEvictionWithTxLimit(const TDuration lag) const {
+        SkipEvictionWithTxLimit->Collect(lag.Seconds());
+    }
+
+    void OnPortionToEvict(const ui64 size, const TDuration lag) const {
         PortionToEvictCount->Add(1);
         PortionToEvictBytes->Add(size);
+        PortionToEvictLag->Collect(lag.Seconds());
     }
 
-    void OnPortionToDrop(const ui64 size) const {
+    void OnPortionToDrop(const ui64 size, const TDuration lag) const {
         PortionToDropCount->Add(1);
         PortionToDropBytes->Add(size);
+        PortionToDropLag->Collect(lag.Seconds());
     }
 
     void OnPortionNoTtlColumn(const ui64 size) const {
@@ -302,11 +241,27 @@ class TEngineLogsCounters: public TCommonCountersOwner {
         PortionNoTtlColumnBytes->Add(size);
     }
 
+    void OnChunkUsageForTTL() const {
+        ChunkUsageForTTLCount->Add(1);
+    }
+
+    void OnStatUsageForTTL() const {
+        StatUsageForTTLCount->Add(1);
+    }
+
     void OnPortionNoBorder(const ui64 size) const {
         PortionNoBorderCount->Add(1);
         PortionNoBorderBytes->Add(size);
     }
 
+    void OnIndexMetadataUsageBytes(const ui64 size) const {
+        IndexMetadataUsageBytes->Set(size);
+    }
+
+    void OnGranuleOptimizerLocked() const {
+        GranuleOptimizerLocked->Add(1);
+    }
+
     TEngineLogsCounters();
 };
 
diff --git a/ydb/core/tx/columnshard/counters/indexation.cpp b/ydb/core/tx/columnshard/counters/indexation.cpp
index cbe62ae08259..d8ee87920d23 100644
--- a/ydb/core/tx/columnshard/counters/indexation.cpp
+++ b/ydb/core/tx/columnshard/counters/indexation.cpp
@@ -8,6 +8,7 @@ TIndexationCounters::TIndexationCounters(const TString& module)
     : TBase(module)
 {
     ReadBytes = TBase::GetDeriviative("Read/Bytes");
+    ReadErrors = TBase::GetDeriviative("Read/Errors/Count");
     AnalizeInsertedPortions = TBase::GetDeriviative("AnalizeInsertion/Portions");
     AnalizeInsertedBytes = TBase::GetDeriviative("AnalizeInsertion/Bytes");
     RepackedInsertedPortions = TBase::GetDeriviative("RepackedInsertion/Portions");
diff --git a/ydb/core/tx/columnshard/counters/indexation.h b/ydb/core/tx/columnshard/counters/indexation.h
index 4b926d260910..fdbbc659492b 100644
--- a/ydb/core/tx/columnshard/counters/indexation.h
+++ b/ydb/core/tx/columnshard/counters/indexation.h
@@ -13,6 +13,7 @@ class TIndexationCounters: public TCommonCountersOwner {
 public:
     NMonitoring::TDynamicCounters::TCounterPtr CompactionInputBytes;
 
+    NMonitoring::TDynamicCounters::TCounterPtr ReadErrors;
     NMonitoring::TDynamicCounters::TCounterPtr ReadBytes;
     NMonitoring::TDynamicCounters::TCounterPtr AnalizeCompactedPortions;
     NMonitoring::TDynamicCounters::TCounterPtr AnalizeInsertedPortions;
diff --git a/ydb/core/tx/columnshard/counters/scan.cpp b/ydb/core/tx/columnshard/counters/scan.cpp
index bf279913648e..075aa0e880ec 100644
--- a/ydb/core/tx/columnshard/counters/scan.cpp
+++ b/ydb/core/tx/columnshard/counters/scan.cpp
@@ -16,8 +16,6 @@ TScanCounters::TScanCounters(const TString& module)
     , NoResultsAckRequest(TBase::GetDeriviative("NoResultsAckRequest"))
     , AckWaitingDuration(TBase::GetDeriviative("AckWaitingDuration"))
 
-    , ScanDuration(TBase::GetDeriviative("ScanDuration"))
-
     , NoScanRecords(TBase::GetDeriviative("NoScanRecords"))
     , NoScanIntervals(TBase::GetDeriviative("NoScanIntervals"))
     , LinearScanRecords(TBase::GetDeriviative("LinearScanRecords"))
@@ -61,8 +59,44 @@ TScanCounters::TScanCounters(const TString& module)
     , BlobsReceivedCount(TBase::GetDeriviative("BlobsReceivedCount"))
     , BlobsReceivedBytes(TBase::GetDeriviative("BlobsReceivedBytes"))
 {
+    HistogramIntervalMemoryRequiredOnFail = TBase::GetHistogram("IntervalMemory/RequiredOnFail/Gb", NMonitoring::LinearHistogram(10, 1, 1));
+    HistogramIntervalMemoryReduceSize = TBase::GetHistogram("IntervalMemory/Reduce/Gb", NMonitoring::ExponentialHistogram(8, 2, 1));
+    HistogramIntervalMemoryRequiredAfterReduce = TBase::GetHistogram("IntervalMemory/RequiredAfterReduce/Mb", NMonitoring::ExponentialHistogram(10, 2, 64));
+/*
+    {
+        const std::map borders = {{0, "0"}, {512LLU * 1024 * 1024, "0.5Gb"}, {1LLU * 1024 * 1024 * 1024, "1Gb"},
+            {2LLU * 1024 * 1024 * 1024, "2Gb"}, {3LLU * 1024 * 1024 * 1024, "3Gb"},
+            {4LLU * 1024 * 1024 * 1024, "4Gb"}, {5LLU * 1024 * 1024 * 1024, "5Gb"},
+            {6LLU * 1024 * 1024 * 1024, "6Gb"}, {7LLU * 1024 * 1024 * 1024, "7Gb"}, {8LLU * 1024 * 1024 * 1024, "8Gb"}};
+        HistogramIntervalMemoryRequiredOnFail = std::make_shared(module, "IntervalMemory/RequiredOnFail/Bytes", "", borders);
+    }
+    {
+        const std::map borders = {{0, "0"}, {512LLU * 1024 * 1024, "0.5Gb"}, {1LLU * 1024 * 1024 * 1024, "1Gb"},
+            {2LLU * 1024 * 1024 * 1024, "2Gb"},
+            {4LLU * 1024 * 1024 * 1024, "4Gb"},
+            {8LLU * 1024 * 1024 * 1024, "8Gb"}, {16LLU * 1024 * 1024 * 1024, "16Gb"}, {32LLU * 1024 * 1024 * 1024, "32Gb"}};
+        HistogramIntervalMemoryReduceSize = std::make_shared(module, "IntervalMemory/Reduce/Bytes", "", borders);
+    }
+    {
+        const std::map borders = {{0, "0"}, {64LLU * 1024 * 1024, "64Mb"}, 
+            {128LLU * 1024 * 1024, "128Mb"}, {256LLU * 1024 * 1024, "256Mb"}, {512LLU * 1024 * 1024, "512Mb"}, 
+            {1024LLU * 1024 * 1024, "1024Mb"}, {2LLU * 1024 * 1024 * 1024, "2Gb"}, {3LLU * 1024 * 1024 * 1024, "3Gb"}
+            };
+        HistogramIntervalMemoryRequiredAfterReduce = std::make_shared(module, "IntervalMemory/RequiredAfterReduce/Bytes", "", borders);
+    }
+*/
+    ScanIntervalState = std::make_shared(*this);
     ResourcesSubscriberCounters = std::make_shared();
-
+    ScanDurationByStatus.resize((ui32)EStatusFinish::COUNT);
+    ui32 idx = 0;
+    for (auto&& i : GetEnumAllValues()) {
+        if (i == EStatusFinish::COUNT) {
+            continue;
+        }
+        ScanDurationByStatus[(ui32)i] = TBase::GetHistogram("ScanDuration/" + ::ToString(i) + "/Milliseconds", NMonitoring::ExponentialHistogram(18, 2, 1));
+        AFL_VERIFY(idx == (ui32)i);
+        ++idx;
+    }
 }
 
 NKikimr::NColumnShard::TScanAggregations TScanCounters::BuildAggregations() {
diff --git a/ydb/core/tx/columnshard/counters/scan.h b/ydb/core/tx/columnshard/counters/scan.h
index fd08804b10f6..d9bbd6b898ce 100644
--- a/ydb/core/tx/columnshard/counters/scan.h
+++ b/ydb/core/tx/columnshard/counters/scan.h
@@ -1,5 +1,6 @@
 #pragma once
 #include "common/owner.h"
+#include "common/histogram.h"
 #include 
 #include 
 #include 
@@ -40,6 +41,77 @@ class TScanAggregations: public TCommonCountersOwner {
 };
 
 class TScanCounters: public TCommonCountersOwner {
+public:
+    enum class EIntervalStatus {
+        Undefined = 0,
+        WaitResources,
+        WaitSources,
+        WaitMergerStart,
+        WaitMergerContinue,
+        WaitPartialReply,
+
+        COUNT
+    };
+
+    enum class EStatusFinish {
+        Success /* "Success" */ = 0,
+        ConveyorInternalError /* "ConveyorInternalError" */,
+        ExternalAbort /* "ExternalAbort" */,
+        IteratorInternalErrorScan /* "IteratorInternalErrorScan" */,
+        IteratorInternalErrorResult /* "IteratorInternalErrorResult" */,
+        Deadline /* "Deadline" */,
+        UndeliveredEvent /* "UndeliveredEvent" */,
+        CannotAddInFlight /* "CannotAddInFlight" */,
+        ProblemOnStart /*ProblemOnStart*/,
+
+        COUNT
+    };
+
+    class TScanIntervalState {
+    private:
+        std::vector ValuesByStatus;
+    public:
+        TScanIntervalState(const TScanCounters& counters) {
+            ValuesByStatus.resize((ui32)EIntervalStatus::COUNT);
+            for (auto&& i : GetEnumAllValues()) {
+                if (i == EIntervalStatus::COUNT) {
+                    continue;
+                }
+                ValuesByStatus[(ui32)i] = counters.CreateSubGroup("status", ::ToString(i)).GetValue("Intervals/Count");
+            }
+        }
+        void Add(const EIntervalStatus status) const {
+            AFL_VERIFY((ui32)status < ValuesByStatus.size());
+            ValuesByStatus[(ui32)status]->Add(1);
+        }
+        void Remove(const EIntervalStatus status) const {
+            AFL_VERIFY((ui32)status < ValuesByStatus.size());
+            ValuesByStatus[(ui32)status]->Sub(1);
+        }
+    };
+
+    class TScanIntervalStateGuard {
+    private:
+        EIntervalStatus Status = EIntervalStatus::Undefined;
+        const std::shared_ptr BaseCounters;
+    public:
+        TScanIntervalStateGuard(const std::shared_ptr& baseCounters)
+            : BaseCounters(baseCounters)
+        {
+            BaseCounters->Add(Status);
+        }
+
+        ~TScanIntervalStateGuard() {
+            BaseCounters->Remove(Status);
+        }
+
+        void SetStatus(const EIntervalStatus status) {
+            BaseCounters->Remove(Status);
+            Status = status;
+            BaseCounters->Add(Status);
+        }
+    };
+
 private:
     using TBase = TCommonCountersOwner;
     NMonitoring::TDynamicCounters::TCounterPtr ProcessingOverload;
@@ -54,7 +126,7 @@ class TScanCounters: public TCommonCountersOwner {
     NMonitoring::TDynamicCounters::TCounterPtr NoResultsAckRequest;
     NMonitoring::TDynamicCounters::TCounterPtr AckWaitingDuration;
 
-    NMonitoring::TDynamicCounters::TCounterPtr ScanDuration;
+    std::vector ScanDurationByStatus;
 
     NMonitoring::TDynamicCounters::TCounterPtr NoScanRecords;
     NMonitoring::TDynamicCounters::TCounterPtr NoScanIntervals;
@@ -62,11 +134,18 @@ class TScanCounters: public TCommonCountersOwner {
     NMonitoring::TDynamicCounters::TCounterPtr LinearScanIntervals;
     NMonitoring::TDynamicCounters::TCounterPtr LogScanRecords;
     NMonitoring::TDynamicCounters::TCounterPtr LogScanIntervals;
+    std::shared_ptr ScanIntervalState;
 
+    NMonitoring::THistogramPtr HistogramIntervalMemoryRequiredOnFail;
+    NMonitoring::THistogramPtr HistogramIntervalMemoryReduceSize;
+    NMonitoring::THistogramPtr HistogramIntervalMemoryRequiredAfterReduce;
 public:
 
-    std::shared_ptr ResourcesSubscriberCounters;
+    TScanIntervalStateGuard CreateIntervalStateGuard() const {
+        return TScanIntervalStateGuard(ScanIntervalState);
+    }
 
+    std::shared_ptr ResourcesSubscriberCounters;
 
     NMonitoring::TDynamicCounters::TCounterPtr PortionBytes;
     NMonitoring::TDynamicCounters::TCounterPtr FilterBytes;
@@ -106,6 +185,18 @@ class TScanCounters: public TCommonCountersOwner {
 
     TScanCounters(const TString& module = "Scan");
 
+    void OnOptimizedIntervalMemoryFailed(const ui64 memoryRequired) const {
+        HistogramIntervalMemoryRequiredOnFail->Collect(memoryRequired / (1024.0 * 1024.0 * 1024.0));
+    }
+
+    void OnOptimizedIntervalMemoryReduced(const ui64 memoryReduceVolume) const {
+        HistogramIntervalMemoryReduceSize->Collect(memoryReduceVolume / (1024.0 * 1024.0 * 1024.0));
+    }
+
+    void OnOptimizedIntervalMemoryRequired(const ui64 memoryRequired) const {
+        HistogramIntervalMemoryRequiredAfterReduce->Collect(memoryRequired / (1024.0 * 1024.0));
+    }
+
     void OnNoScanInterval(const ui32 recordsCount) const {
         NoScanRecords->Add(recordsCount);
         NoScanIntervals->Add(1);
@@ -121,8 +212,9 @@ class TScanCounters: public TCommonCountersOwner {
         LogScanIntervals->Add(1);
     }
 
-    void OnScanDuration(const TDuration d) const {
-        ScanDuration->Add(d.MicroSeconds());
+    void OnScanDuration(const EStatusFinish status, const TDuration d) const {
+        AFL_VERIFY((ui32)status < ScanDurationByStatus.size());
+        ScanDurationByStatus[(ui32)status]->Collect(d.MilliSeconds());
     }
 
     void AckWaitingInfo(const TDuration d) const {
diff --git a/ydb/core/tx/columnshard/counters/ya.make b/ydb/core/tx/columnshard/counters/ya.make
index aed1f68de28b..65797cb34752 100644
--- a/ydb/core/tx/columnshard/counters/ya.make
+++ b/ydb/core/tx/columnshard/counters/ya.make
@@ -17,4 +17,7 @@ PEERDIR(
     ydb/core/base
 )
 
+GENERATE_ENUM_SERIALIZATION(columnshard.h)
+GENERATE_ENUM_SERIALIZATION(scan.h)
+
 END()
diff --git a/ydb/core/tx/columnshard/data_locks/locks/abstract.cpp b/ydb/core/tx/columnshard/data_locks/locks/abstract.cpp
new file mode 100644
index 000000000000..d5c44aa83685
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_locks/locks/abstract.cpp
@@ -0,0 +1,5 @@
+#include "abstract.h"
+
+namespace NKikimr::NOlap::NDataLocks {
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_locks/locks/abstract.h b/ydb/core/tx/columnshard/data_locks/locks/abstract.h
new file mode 100644
index 000000000000..2e301d62a512
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_locks/locks/abstract.h
@@ -0,0 +1,52 @@
+#pragma once
+#include 
+
+#include 
+
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+class TPortionInfo;
+class TGranuleMeta;
+}
+
+namespace NKikimr::NOlap::NDataLocks {
+
+class ILock {
+private:
+    YDB_READONLY_DEF(TString, LockName);
+    YDB_READONLY_FLAG(ReadOnly, false);
+protected:
+    virtual std::optional DoIsLocked(const TPortionInfo& portion) const = 0;
+    virtual std::optional DoIsLocked(const TGranuleMeta& granule) const = 0;
+    virtual bool DoIsEmpty() const = 0;
+public:
+    ILock(const TString& lockName, const bool isReadOnly = false)
+        : LockName(lockName)
+        , ReadOnlyFlag(isReadOnly)
+    {
+
+    }
+
+    virtual ~ILock() = default;
+
+    std::optional IsLocked(const TPortionInfo& portion, const bool readOnly = false) const {
+        if (IsReadOnly() && readOnly) {
+            return {};
+        }
+        return DoIsLocked(portion);
+    }
+    std::optional IsLocked(const TGranuleMeta& g, const bool readOnly = false) const {
+        if (IsReadOnly() && readOnly) {
+            return {};
+        }
+        return DoIsLocked(g);
+    }
+    bool IsEmpty() const {
+        return DoIsEmpty();
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_locks/locks/composite.cpp b/ydb/core/tx/columnshard/data_locks/locks/composite.cpp
new file mode 100644
index 000000000000..0663ff68fb20
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_locks/locks/composite.cpp
@@ -0,0 +1,5 @@
+#include "composite.h"
+
+namespace NKikimr::NOlap::NDataLocks {
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_locks/locks/composite.h b/ydb/core/tx/columnshard/data_locks/locks/composite.h
new file mode 100644
index 000000000000..fd23ee15f85e
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_locks/locks/composite.h
@@ -0,0 +1,54 @@
+#pragma once
+#include "abstract.h"
+
+namespace NKikimr::NOlap::NDataLocks {
+
+class TCompositeLock: public ILock {
+private:
+    using TBase = ILock;
+    std::vector> Locks;
+protected:
+    virtual std::optional DoIsLocked(const TPortionInfo& portion) const override {
+        for (auto&& i : Locks) {
+            if (auto lockName = i->IsLocked(portion)) {
+                return lockName;
+            }
+        }
+        return {};
+    }
+    virtual std::optional DoIsLocked(const TGranuleMeta& granule) const override {
+        for (auto&& i : Locks) {
+            if (auto lockName = i->IsLocked(granule)) {
+                return lockName;
+            }
+        }
+        return {};
+    }
+    bool DoIsEmpty() const override {
+        return Locks.empty();
+    }
+public:
+    TCompositeLock(const TString& lockName, const std::vector>& locks, const bool readOnly = false)
+        : TBase(lockName, readOnly)
+    {
+        for (auto&& l : locks) {
+            if (!l || l->IsEmpty()) {
+                continue;
+            }
+            Locks.emplace_back(l);
+        }
+    }
+
+    TCompositeLock(const TString& lockName, std::initializer_list> locks, const bool readOnly = false)
+        : TBase(lockName, readOnly)
+    {
+        for (auto&& l : locks) {
+            if (!l || l->IsEmpty()) {
+                continue;
+            }
+            Locks.emplace_back(l);
+        }
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_locks/locks/list.cpp b/ydb/core/tx/columnshard/data_locks/locks/list.cpp
new file mode 100644
index 000000000000..c0dbcb9ac327
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_locks/locks/list.cpp
@@ -0,0 +1,5 @@
+#include "list.h"
+
+namespace NKikimr::NOlap::NDataLocks {
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_locks/locks/list.h b/ydb/core/tx/columnshard/data_locks/locks/list.h
new file mode 100644
index 000000000000..e74251e30b42
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_locks/locks/list.h
@@ -0,0 +1,96 @@
+#pragma once
+#include "abstract.h"
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataLocks {
+
+class TListPortionsLock: public ILock {
+private:
+    using TBase = ILock;
+    THashSet Portions;
+    THashSet Granules;
+protected:
+    virtual std::optional DoIsLocked(const TPortionInfo& portion) const override {
+        if (Portions.contains(portion.GetAddress())) {
+            return GetLockName();
+        }
+        return {};
+    }
+    virtual std::optional DoIsLocked(const TGranuleMeta& granule) const override {
+        if (Granules.contains(granule.GetPathId())) {
+            return GetLockName();
+        }
+        return {};
+    }
+    bool DoIsEmpty() const override {
+        return Portions.empty();
+    }
+public:
+    TListPortionsLock(const TString& lockName, const std::vector>& portions, const bool readOnly = false)
+        : TBase(lockName, readOnly)
+    {
+        for (auto&& p : portions) {
+            Portions.emplace(p->GetAddress());
+            Granules.emplace(p->GetPathId());
+        }
+    }
+
+    TListPortionsLock(const TString& lockName, const std::vector& portions, const bool readOnly = false)
+        : TBase(lockName, readOnly) {
+        for (auto&& p : portions) {
+            Portions.emplace(p.GetAddress());
+            Granules.emplace(p.GetPathId());
+        }
+    }
+
+    template 
+    TListPortionsLock(const TString& lockName, const std::vector& portions, const TGetter& g, const bool readOnly = false)
+        : TBase(lockName, readOnly) {
+        for (auto&& p : portions) {
+            const auto address = g(p);
+            Portions.emplace(address);
+            Granules.emplace(address.GetPathId());
+        }
+    }
+
+    template 
+    TListPortionsLock(const TString& lockName, const THashMap& portions, const bool readOnly = false)
+        : TBase(lockName, readOnly) {
+        for (auto&& p : portions) {
+            const auto address = p.first;
+            Portions.emplace(address);
+            Granules.emplace(address.GetPathId());
+        }
+    }
+};
+
+class TListTablesLock: public ILock {
+private:
+    using TBase = ILock;
+    THashSet Tables;
+protected:
+    virtual std::optional DoIsLocked(const TPortionInfo& portion) const override {
+        if (Tables.contains(portion.GetPathId())) {
+            return GetLockName();
+        }
+        return {};
+    }
+    virtual std::optional DoIsLocked(const TGranuleMeta& granule) const override {
+        if (Tables.contains(granule.GetPathId())) {
+            return GetLockName();
+        }
+        return {};
+    }
+    bool DoIsEmpty() const override {
+        return Tables.empty();
+    }
+public:
+    TListTablesLock(const TString& lockName, const THashSet& tables, const bool readOnly = false)
+        : TBase(lockName, readOnly)
+        , Tables(tables)
+    {
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_locks/locks/snapshot.cpp b/ydb/core/tx/columnshard/data_locks/locks/snapshot.cpp
new file mode 100644
index 000000000000..f2d702268364
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_locks/locks/snapshot.cpp
@@ -0,0 +1,5 @@
+#include "snapshot.h"
+
+namespace NKikimr::NOlap::NDataLocks {
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_locks/locks/snapshot.h b/ydb/core/tx/columnshard/data_locks/locks/snapshot.h
new file mode 100644
index 000000000000..c1f6e10b06e7
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_locks/locks/snapshot.h
@@ -0,0 +1,36 @@
+#pragma once
+#include "abstract.h"
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataLocks {
+
+class TSnapshotLock: public ILock {
+private:
+    using TBase = ILock;
+    const TSnapshot SnapshotBarrier;
+    const THashSet PathIds;
+protected:
+    virtual std::optional DoIsLocked(const TPortionInfo& portion) const override {
+        if (PathIds.contains((TTabletId)portion.GetPathId()) && portion.RecordSnapshotMin() <= SnapshotBarrier) {
+            return GetLockName();
+        }
+        return {};
+    }
+    virtual std::optional DoIsLocked(const TGranuleMeta& granule) const override {
+        if (PathIds.contains((TTabletId)granule.GetPathId())) {
+            return GetLockName();
+        }
+        return {};
+    }
+public:
+    TSnapshotLock(const TString& lockName, const TSnapshot& snapshotBarrier, const THashSet& pathIds, const bool readOnly = false)
+        : TBase(lockName, readOnly)
+        , SnapshotBarrier(snapshotBarrier)
+        , PathIds(pathIds)
+    {
+
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_locks/locks/ya.make b/ydb/core/tx/columnshard/data_locks/locks/ya.make
new file mode 100644
index 000000000000..debee52e8724
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_locks/locks/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+    abstract.cpp
+    list.cpp
+    snapshot.cpp
+    composite.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/storage
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_locks/manager/manager.cpp b/ydb/core/tx/columnshard/data_locks/manager/manager.cpp
new file mode 100644
index 000000000000..d97912d594f3
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_locks/manager/manager.cpp
@@ -0,0 +1,48 @@
+#include "manager.h"
+#include 
+
+namespace NKikimr::NOlap::NDataLocks {
+
+std::shared_ptr TManager::RegisterLock(const std::shared_ptr& lock) {
+    AFL_VERIFY(lock);
+    AFL_VERIFY(ProcessLocks.emplace(lock->GetLockName(), lock).second)("process_id", lock->GetLockName());
+    return std::make_shared(lock->GetLockName(), StopFlag);
+}
+
+void TManager::UnregisterLock(const TString& processId) {
+    AFL_VERIFY(ProcessLocks.erase(processId))("process_id", processId);
+}
+
+std::optional TManager::IsLocked(const TPortionInfo& portion) const {
+    for (auto&& i : ProcessLocks) {
+        if (auto lockName = i.second->IsLocked(portion)) {
+            return lockName;
+        }
+    }
+    return {};
+}
+
+std::optional TManager::IsLocked(const TGranuleMeta& granule) const {
+    for (auto&& i : ProcessLocks) {
+        if (auto lockName = i.second->IsLocked(granule)) {
+            return lockName;
+        }
+    }
+    return {};
+}
+
+void TManager::Stop() {
+    AFL_VERIFY(StopFlag->Inc() == 1);
+}
+
+TManager::TGuard::~TGuard() {
+    AFL_VERIFY(Released || !NActors::TlsActivationContext || StopFlag->Val() == 1);
+}
+
+void TManager::TGuard::Release(TManager& manager) {
+    AFL_VERIFY(!Released);
+    manager.UnregisterLock(ProcessId);
+    Released = true;
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_locks/manager/manager.h b/ydb/core/tx/columnshard/data_locks/manager/manager.h
new file mode 100644
index 000000000000..9075397d67ec
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_locks/manager/manager.h
@@ -0,0 +1,46 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataLocks {
+
+class TManager {
+private:
+    THashMap> ProcessLocks;
+    std::shared_ptr StopFlag = std::make_shared(0);
+    void UnregisterLock(const TString& processId);
+public:
+    TManager() = default;
+
+    void Stop();
+
+    class TGuard {
+    private:
+        const TString ProcessId;
+        std::shared_ptr StopFlag;
+        bool Released = false;
+    public:
+        TGuard(const TString& processId, const std::shared_ptr& stopFlag)
+            : ProcessId(processId)
+            , StopFlag(stopFlag)
+        {
+
+        }
+        ~TGuard();
+
+        void Release(TManager& manager);
+    };
+
+    [[nodiscard]] std::shared_ptr RegisterLock(const std::shared_ptr& lock);
+    template 
+    [[nodiscard]] std::shared_ptr RegisterLock(Args&&... args) {
+        return RegisterLock(std::make_shared(args...));
+    }
+    std::optional IsLocked(const TPortionInfo& portion) const;
+    std::optional IsLocked(const TGranuleMeta& granule) const;
+
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_locks/manager/ya.make b/ydb/core/tx/columnshard/data_locks/manager/ya.make
new file mode 100644
index 000000000000..4a5d8b2437f3
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_locks/manager/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+    manager.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_locks/locks
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_locks/ya.make b/ydb/core/tx/columnshard/data_locks/ya.make
new file mode 100644
index 000000000000..9212eb1c9582
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_locks/ya.make
@@ -0,0 +1,8 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_locks/manager
+    ydb/core/tx/columnshard/data_locks/locks
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/common/context/context.cpp b/ydb/core/tx/columnshard/data_sharing/common/context/context.cpp
new file mode 100644
index 000000000000..64f32b59b920
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/common/context/context.cpp
@@ -0,0 +1,62 @@
+#include "context.h"
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+NKikimrColumnShardDataSharingProto::TTransferContext TTransferContext::SerializeToProto() const {
+    NKikimrColumnShardDataSharingProto::TTransferContext result;
+    result.SetDestinationTabletId((ui64)DestinationTabletId);
+    for (auto&& i : SourceTabletIds) {
+        result.AddSourceTabletIds((ui64)i);
+    }
+    SnapshotBarrier.SerializeToProto(*result.MutableSnapshotBarrier());
+    result.SetMoving(Moving);
+    return result;
+}
+
+NKikimr::TConclusionStatus TTransferContext::DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TTransferContext& proto) {
+    DestinationTabletId = (TTabletId)proto.GetDestinationTabletId();
+    if (!(ui64)DestinationTabletId) {
+        return TConclusionStatus::Fail("incorrect DestinationTabletId in proto");
+    }
+    for (auto&& i : proto.GetSourceTabletIds()) {
+        AFL_VERIFY(SourceTabletIds.emplace((TTabletId)i).second);
+    }
+    Moving = proto.GetMoving();
+    {
+        if (!proto.HasSnapshotBarrier()) {
+            return TConclusionStatus::Fail("SnapshotBarrier not initialized in proto.");
+        }
+        auto snapshotParse = SnapshotBarrier.DeserializeFromProto(proto.GetSnapshotBarrier());
+        if (!snapshotParse) {
+            return snapshotParse;
+        }
+        if (!SnapshotBarrier.Valid()) {
+            return TConclusionStatus::Fail("SnapshotBarrier must be valid in proto.");
+        }
+    }
+    return TConclusionStatus::Success();
+}
+
+bool TTransferContext::IsEqualTo(const TTransferContext& context) const {
+    return
+        DestinationTabletId == context.DestinationTabletId &&
+        SourceTabletIds == context.SourceTabletIds &&
+        Moving == context.Moving &&
+        SnapshotBarrier == context.SnapshotBarrier;
+}
+
+TString TTransferContext::DebugString() const {
+    return TStringBuilder() << "{from=" << (ui64)DestinationTabletId << ";moving=" << Moving << ";snapshot=" << SnapshotBarrier.DebugString() << "}";
+}
+
+TTransferContext::TTransferContext(const TTabletId destination, const THashSet& sources, const TSnapshot& snapshotBarrier, const bool moving)
+    : DestinationTabletId(destination)
+    , SourceTabletIds(sources)
+    , Moving(moving)
+    , SnapshotBarrier(snapshotBarrier)
+{
+    AFL_VERIFY(!sources.contains(destination));
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/common/context/context.h b/ydb/core/tx/columnshard/data_sharing/common/context/context.h
new file mode 100644
index 000000000000..b124bc7a07ea
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/common/context/context.h
@@ -0,0 +1,29 @@
+#pragma once
+#include 
+#include 
+#include 
+
+#include 
+#include 
+
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TTransferContext {
+private:
+    YDB_READONLY(TTabletId, DestinationTabletId, (TTabletId)0);
+    YDB_READONLY_DEF(THashSet, SourceTabletIds);
+    YDB_READONLY(bool, Moving, false);
+    YDB_READONLY(TSnapshot, SnapshotBarrier, TSnapshot::Zero());
+public:
+    TTransferContext() = default;
+    bool IsEqualTo(const TTransferContext& context) const;
+    TString DebugString() const;
+
+    TTransferContext(const TTabletId destination, const THashSet& sources, const TSnapshot& snapshotBarrier, const bool moving);
+    NKikimrColumnShardDataSharingProto::TTransferContext SerializeToProto() const;
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TTransferContext& proto);
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/common/context/ya.make b/ydb/core/tx/columnshard/data_sharing/common/context/ya.make
new file mode 100644
index 000000000000..c5f45338b5f6
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/common/context/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+    context.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/protos
+    ydb/library/actors/core
+    ydb/library/conclusion
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/common/session/common.cpp b/ydb/core/tx/columnshard/data_sharing/common/session/common.cpp
new file mode 100644
index 000000000000..bb22359d925a
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/common/session/common.cpp
@@ -0,0 +1,66 @@
+#include "common.h"
+
+#include 
+#include 
+#include 
+
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+TString TCommonSession::DebugString() const {
+    return TStringBuilder() << "{id=" << SessionId << ";context=" << TransferContext.DebugString() << ";}";
+}
+
+bool TCommonSession::Start(const NColumnShard::TColumnShard& shard) {
+    const NActors::TLogContextGuard lGuard = NActors::TLogContextBuilder::Build()("info", Info);
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("info", "Start");
+    AFL_VERIFY(!IsStartingFlag);
+    IsStartingFlag = true;
+    AFL_VERIFY(!IsStartedFlag);
+    const auto& index = shard.GetIndexAs();
+    THashMap>> portionsByPath;
+    std::vector> portionsLock;
+    THashMap> local;
+    for (auto&& i : GetPathIdsForStart()) {
+//        const auto insertTableSnapshot = shard.GetInsertTable().GetMinCommittedSnapshot(i);
+//        const auto shardSnapshot = shard.GetLastCompletedTx();
+//        if (shard.GetInsertTable().GetMinCommittedSnapshot(i).value_or(shard.GetLastPlannedSnapshot()) <= GetSnapshotBarrier()) {
+//            AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("insert_table_snapshot", insertTableSnapshot)("last_completed_tx", shardSnapshot)("barrier", GetSnapshotBarrier());
+//            IsStartingFlag = false;
+//            return false;
+//        }
+        auto& portionsVector = portionsByPath[i];
+        const auto& g = index.GetGranuleVerified(i);
+        for (auto&& p : g.GetPortionsOlderThenSnapshot(GetSnapshotBarrier())) {
+            if (shard.GetDataLocksManager()->IsLocked(*p.second)) {
+                IsStartingFlag = false;
+                return false;
+            }
+            portionsVector.emplace_back(p.second);
+            portionsLock.emplace_back(p.second);
+        }
+    }
+
+    IsStartedFlag = DoStart(shard, portionsByPath);
+    if (IsFinishedFlag) {
+        IsStartedFlag = false;
+    }
+    if (IsStartedFlag) {
+        AFL_VERIFY(!LockGuard);
+        LockGuard = shard.GetDataLocksManager()->RegisterLock("sharing_session:" + GetSessionId(), portionsLock, true);
+    }
+    IsStartingFlag = false;
+    return IsStartedFlag;
+}
+
+void TCommonSession::Finish(const std::shared_ptr& dataLocksManager) {
+    AFL_VERIFY(!IsFinishedFlag);
+    IsFinishedFlag = true;
+    if (IsStartedFlag) {
+        AFL_VERIFY(LockGuard);
+        LockGuard->Release(*dataLocksManager);
+    }
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/common/session/common.h b/ydb/core/tx/columnshard/data_sharing/common/session/common.h
new file mode 100644
index 000000000000..c3070b5e7b8e
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/common/session/common.h
@@ -0,0 +1,110 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+
+namespace NKikimr::NColumnShard {
+class TColumnShard;
+}
+
+namespace NKikimr::NOlap {
+class TPortionInfo;
+namespace NDataLocks {
+class TManager;
+}
+}
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TCommonSession {
+private:
+    static ui64 GetNextRuntimeId() {
+        static TAtomicCounter Counter = 0;
+        return (ui64)Counter.Inc();
+    }
+
+    YDB_READONLY_DEF(TString, SessionId);
+    const TString Info;
+    YDB_READONLY(ui64, RuntimeId, GetNextRuntimeId());
+    std::shared_ptr LockGuard;
+    bool IsStartedFlag = false;
+    bool IsStartingFlag = false;
+    bool IsFinishedFlag = false;
+protected:
+    TTransferContext TransferContext;
+    virtual bool DoStart(const NColumnShard::TColumnShard& shard, const THashMap>>& portions) = 0;
+    virtual THashSet GetPathIdsForStart() const = 0;
+public:
+    virtual ~TCommonSession() = default;
+
+    TCommonSession(const TString& info)
+        : Info(info)
+    {
+
+    }
+
+    TCommonSession(const TString& sessionId, const TString& info, const TTransferContext& transferContext)
+        : SessionId(sessionId)
+        , Info(info)
+        , TransferContext(transferContext) {
+    }
+
+    bool IsFinished() const {
+        return IsFinishedFlag;
+    }
+
+    bool IsStarted() const {
+        return IsStartedFlag;
+    }
+
+    bool IsStarting() const {
+        return IsStartingFlag;
+    }
+
+    bool IsEqualTo(const TCommonSession& item) const {
+        return SessionId == item.SessionId && TransferContext.IsEqualTo(item.TransferContext);
+    }
+
+    bool Start(const NColumnShard::TColumnShard& shard);
+    void Finish(const std::shared_ptr& dataLocksManager);
+
+    const TSnapshot& GetSnapshotBarrier() const {
+        return TransferContext.GetSnapshotBarrier();
+    }
+
+    TString DebugString() const;
+
+    template 
+    void SerializeToProto(TProto& proto) const {
+        AFL_VERIFY(SessionId);
+        *proto.MutableSessionId() = SessionId;
+        *proto.MutableTransferContext() = TransferContext.SerializeToProto();
+    }
+
+    template 
+    TConclusionStatus DeserializeFromProto(const TProto& proto) {
+        {
+            SessionId = proto.GetSessionId();
+            if (!SessionId) {
+                return TConclusionStatus::Fail("SessionId not initialized in proto.");
+            }
+        }
+        {
+            if (!proto.HasTransferContext()) {
+                return TConclusionStatus::Fail("TransferContext not initialized in proto.");
+            }
+            auto parsing = TransferContext.DeserializeFromProto(proto.GetTransferContext());
+            if (!parsing) {
+                return parsing;
+            }
+        }
+        return TConclusionStatus::Success();
+    }
+
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/common/session/ya.make b/ydb/core/tx/columnshard/data_sharing/common/session/ya.make
new file mode 100644
index 000000000000..2e68440a4a6b
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/common/session/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+    common.cpp
+)
+
+PEERDIR(
+    ydb/library/conclusion
+    ydb/core/tx/columnshard/common
+    ydb/core/tx/columnshard/data_sharing/common/context
+    ydb/core/tablet_flat
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/common/transactions/tx_extension.cpp b/ydb/core/tx/columnshard/data_sharing/common/transactions/tx_extension.cpp
new file mode 100644
index 000000000000..8a97c55b0ed3
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/common/transactions/tx_extension.cpp
@@ -0,0 +1,5 @@
+#include "tx_extension.h"
+
+namespace NKikimr::NColumnShard::NDataSharing {
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/common/transactions/tx_extension.h b/ydb/core/tx/columnshard/data_sharing/common/transactions/tx_extension.h
new file mode 100644
index 000000000000..055081e37173
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/common/transactions/tx_extension.h
@@ -0,0 +1,35 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+template 
+class TExtendedTransactionBase: public NTabletFlatExecutor::TTransactionBase {
+private:
+    const TString TxInfo;
+    const ui32 TabletTxNo;
+    using TBase = NTabletFlatExecutor::TTransactionBase;
+    virtual bool DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const NActors::TActorContext& ctx) = 0;
+    virtual void DoComplete(const NActors::TActorContext & ctx) = 0;
+
+public:
+    virtual bool Execute(NTabletFlatExecutor::TTransactionContext& txc, const NActors::TActorContext& ctx) override final {
+        NActors::TLogContextGuard logGuard = NActors::TLogContextBuilder::Build()("tablet_id", TBase::Self->TabletID())("tx_no", TabletTxNo)("tx_info", TxInfo);
+        return DoExecute(txc, ctx);
+    }
+    virtual void Complete(const NActors::TActorContext& ctx) override final {
+        NActors::TLogContextGuard logGuard = NActors::TLogContextBuilder::Build()("tablet_id", TBase::Self->TabletID())("tx_no", TabletTxNo)("tx_info", TxInfo);
+        return DoComplete(ctx);
+    }
+
+    TExtendedTransactionBase(TShard* self, const TString& txInfo = Default())
+        : TBase(self)
+        , TxInfo(txInfo)
+        , TabletTxNo(++TBase::Self->TabletTxCounter)
+    {
+
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/common/transactions/ya.make b/ydb/core/tx/columnshard/data_sharing/common/transactions/ya.make
new file mode 100644
index 000000000000..30aa6d488922
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/common/transactions/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+SRCS(
+    tx_extension.cpp
+)
+
+PEERDIR(
+    ydb/core/tablet_flat
+    ydb/core/tx/tiering
+    ydb/services/metadata/abstract
+    ydb/core/tx/columnshard/data_sharing/protos
+    ydb/core/tx/columnshard/blobs_action/protos
+    ydb/core/base
+    ydb/core/tx/tiering
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/common/ya.make b/ydb/core/tx/columnshard/data_sharing/common/ya.make
new file mode 100644
index 000000000000..1d1caafc12c6
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/common/ya.make
@@ -0,0 +1,9 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/common/session
+    ydb/core/tx/columnshard/data_sharing/common/transactions
+    ydb/core/tx/columnshard/data_sharing/common/context
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/events/control.cpp b/ydb/core/tx/columnshard/data_sharing/destination/events/control.cpp
new file mode 100644
index 000000000000..cb0407f1aba2
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/events/control.cpp
@@ -0,0 +1,14 @@
+#include "control.h"
+#include 
+
+namespace NKikimr::NOlap::NDataSharing::NEvents {
+
+TEvProposeFromInitiator::TEvProposeFromInitiator(const TDestinationSession& session) {
+    *Record.MutableSession() = session.SerializeDataToProto();
+}
+
+TEvConfirmFromInitiator::TEvConfirmFromInitiator(const TString& sessionId) {
+    *Record.MutableSessionId() = sessionId;
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/events/control.h b/ydb/core/tx/columnshard/data_sharing/destination/events/control.h
new file mode 100644
index 000000000000..eff9504fa0b5
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/events/control.h
@@ -0,0 +1,33 @@
+#pragma once
+#include 
+#include 
+
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+class TDestinationSession;
+}
+
+namespace NKikimr::NOlap::NDataSharing::NEvents {
+
+struct TEvProposeFromInitiator: public NActors::TEventPB {
+    TEvProposeFromInitiator() = default;
+
+    TEvProposeFromInitiator(const TDestinationSession& session);
+};
+
+struct TEvConfirmFromInitiator: public NActors::TEventPB {
+    TEvConfirmFromInitiator() = default;
+
+    TEvConfirmFromInitiator(const TString& sessionId);
+};
+
+struct TEvAckFinishFromInitiator: public NActors::TEventPB {
+    TEvAckFinishFromInitiator() = default;
+
+    TEvAckFinishFromInitiator(const TString& sharingId) {
+        Record.SetSessionId(sharingId);
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/events/status.cpp b/ydb/core/tx/columnshard/data_sharing/destination/events/status.cpp
new file mode 100644
index 000000000000..e6af6b90d5ab
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/events/status.cpp
@@ -0,0 +1,5 @@
+#include "status.h"
+
+namespace NKikimr::NOlap::NDataSharing::NEvents {
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/events/status.h b/ydb/core/tx/columnshard/data_sharing/destination/events/status.h
new file mode 100644
index 000000000000..7a1327be236d
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/events/status.h
@@ -0,0 +1,16 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing::NEvents {
+
+struct TEvCheckStatusFromInitiator: public NActors::TEventPB {
+    TEvCheckStatusFromInitiator() = default;
+
+    TEvCheckStatusFromInitiator(const TString& sessionId) {
+        Record.SetSessionId(sessionId);
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/events/transfer.cpp b/ydb/core/tx/columnshard/data_sharing/destination/events/transfer.cpp
new file mode 100644
index 000000000000..55d7e8e9ea7d
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/events/transfer.cpp
@@ -0,0 +1,68 @@
+#include "transfer.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing::NEvents {
+
+THashMap TPathIdData::BuildLinkTabletTasks(
+    const std::shared_ptr& sharedBlobs, const TTabletId selfTabletId, const TTransferContext& context, const TVersionedIndex& index) {
+    THashMap> blobIds;
+    for (auto&& i : Portions) {
+        auto schema = i.GetSchema(index);
+        i.FillBlobIdsByStorage(blobIds, schema->GetIndexInfo());
+    }
+
+    THashMap> blobsInfo;
+
+    for (auto&& i : blobIds) {
+        auto storageManager = sharedBlobs->GetStorageManagerVerified(i.first);
+        auto storeCategories = storageManager->BuildStoreCategories(i.second);
+        auto& blobs = blobsInfo[i.first];
+        for (auto it = storeCategories.GetDirect().GetIterator(); it.IsValid(); ++it) {
+            auto itSharing = blobs.find(it.GetBlobId());
+            if (itSharing == blobs.end()) {
+                itSharing = blobs.emplace(it.GetBlobId(), TBlobSharing(i.first, it.GetBlobId())).first;
+            }
+        }
+        for (auto it = storeCategories.GetSharing().GetIterator(); it.IsValid(); ++it) {
+            auto itSharing = blobs.find(it.GetBlobId());
+            if (itSharing == blobs.end()) {
+                itSharing = blobs.emplace(it.GetBlobId(), TBlobSharing(i.first, it.GetBlobId())).first;
+            }
+            itSharing->second.AddShared(it.GetTabletId());
+        }
+        for (auto it = storeCategories.GetBorrowed().GetIterator(); it.IsValid(); ++it) {
+            auto itSharing = blobs.find(it.GetBlobId());
+            if (itSharing == blobs.end()) {
+                itSharing = blobs.emplace(it.GetBlobId(), TBlobSharing(i.first, it.GetBlobId())).first;
+            }
+            itSharing->second.AddBorrowed(it.GetTabletId());
+        }
+    }
+
+    THashMap globalTabletTasks;
+    for (auto&& [storageId, blobs] : blobsInfo) {
+        THashMap storageTabletTasks;
+        for (auto&& [_, blobInfo] : blobs) {
+            THashMap blobTabletTasks = context.GetMoving() ? blobInfo.BuildTabletTasksOnMove(context, selfTabletId, storageId) : blobInfo.BuildTabletTasksOnCopy(context, selfTabletId, storageId);
+            for (auto&& [tId, tInfo] : blobTabletTasks) {
+                auto itTablet = storageTabletTasks.find(tId);
+                if (itTablet == storageTabletTasks.end()) {
+                    itTablet = storageTabletTasks.emplace(tId, TStorageTabletTask(storageId, tId)).first;
+                }
+                itTablet->second.Merge(tInfo);
+            }
+        }
+        for (auto&& i : storageTabletTasks) {
+            auto it = globalTabletTasks.find(i.first);
+            if (it == globalTabletTasks.end()) {
+                it = globalTabletTasks.emplace(i.first, TTaskForTablet(i.first)).first;
+            }
+            it->second.AddStorage(std::move(i.second));
+        }
+    }
+    return globalTabletTasks;
+}
+
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/events/transfer.h b/ydb/core/tx/columnshard/data_sharing/destination/events/transfer.h
new file mode 100644
index 000000000000..d4205a0db65d
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/events/transfer.h
@@ -0,0 +1,107 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+#include 
+
+namespace NKikimr::NOlap {
+class TVersionedIndex;
+}
+
+namespace NKikimr::NOlap::NDataSharing {
+class TSharedBlobsManager;
+class TTaskForTablet;
+}
+
+namespace NKikimr::NOlap::NDataSharing::NEvents {
+
+class TPathIdData {
+private:
+    YDB_READONLY(ui64, PathId, 0);
+    YDB_READONLY_DEF(std::vector, Portions);
+
+    TPathIdData() = default;
+
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TPathIdData& proto, const TIndexInfo& indexInfo) {
+        if (!proto.HasPathId()) {
+            return TConclusionStatus::Fail("no path id in proto");
+        }
+        PathId = proto.GetPathId();
+        for (auto&& portionProto : proto.GetPortions()) {
+            TConclusion portion = TPortionInfo::BuildFromProto(portionProto, indexInfo);
+            if (!portion) {
+                return portion.GetError();
+            }
+            Portions.emplace_back(portion.DetachResult());
+        }
+        return TConclusionStatus::Success();
+    }
+public:
+    TPathIdData(const ui64 pathId, const std::vector& portions)
+        : PathId(pathId)
+        , Portions(portions)
+    {
+
+    }
+
+    std::vector DetachPortions() {
+        return std::move(Portions);
+    }
+    THashMap BuildLinkTabletTasks(const std::shared_ptr& sharedBlobs, const TTabletId selfTabletId,
+        const TTransferContext& context, const TVersionedIndex& index);
+
+    void InitPortionIds(ui64* lastPortionId, const std::optional pathId = {}) {
+        AFL_VERIFY(lastPortionId);
+        for (auto&& i : Portions) {
+            i.SetPortion(++*lastPortionId);
+            if (pathId) {
+                i.SetPathId(*pathId);
+            }
+        }
+    }
+
+    void SerializeToProto(NKikimrColumnShardDataSharingProto::TPathIdData& proto) const {
+        proto.SetPathId(PathId);
+        for (auto&& i : Portions) {
+            i.SerializeToProto(*proto.AddPortions());
+        }
+    };
+
+
+    static TConclusion BuildFromProto(const NKikimrColumnShardDataSharingProto::TPathIdData& proto, const TIndexInfo& indexInfo) {
+        TPathIdData result;
+        auto resultParsing = result.DeserializeFromProto(proto, indexInfo);
+        if (!resultParsing) {
+            return resultParsing;
+        } else {
+            return result;
+        }
+    }
+
+};
+
+struct TEvSendDataFromSource: public NActors::TEventPB {
+    TEvSendDataFromSource() = default;
+
+    TEvSendDataFromSource(const TString& sessionId, const ui32 packIdx, const TTabletId sourceTabletId, const THashMap& pathIdData) {
+        Record.SetSessionId(sessionId);
+        Record.SetPackIdx(packIdx);
+        Record.SetSourceTabletId((ui64)sourceTabletId);
+        for (auto&& i : pathIdData) {
+            i.second.SerializeToProto(*Record.AddPathIdData());
+        }
+    }
+};
+
+struct TEvFinishedFromSource: public NActors::TEventPB {
+    TEvFinishedFromSource() = default;
+
+    TEvFinishedFromSource(const TString& sessionId, const TTabletId sourceTabletId) {
+        Record.SetSessionId(sessionId);
+        Record.SetSourceTabletId((ui64)sourceTabletId);
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/events/ya.make b/ydb/core/tx/columnshard/data_sharing/destination/events/ya.make
new file mode 100644
index 000000000000..89b02707d5f4
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/events/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+SRCS(
+    transfer.cpp
+    status.cpp
+    control.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/portions
+    ydb/core/tx/columnshard/data_sharing/destination/session
+    ydb/core/tx/columnshard/data_sharing/protos
+    ydb/library/actors/core
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/session/destination.cpp b/ydb/core/tx/columnshard/data_sharing/destination/session/destination.cpp
new file mode 100644
index 000000000000..d70fd05f9849
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/session/destination.cpp
@@ -0,0 +1,187 @@
+#include "destination.h"
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+NKikimr::TConclusionStatus TDestinationSession::DataReceived(THashMap&& data, TColumnEngineForLogs& index, const std::shared_ptr& /*manager*/) {
+    auto guard = index.GranulesStorage->GetStats()->StartPackModification();
+    for (auto&& i : data) {
+        auto it = PathIds.find(i.first);
+        AFL_VERIFY(it != PathIds.end())("path_id_undefined", i.first);
+        for (auto&& portion : i.second.DetachPortions()) {
+            ui32 contains = 0;
+            ui32 notContains = 0;
+            THashMap> blobIds;
+            portion.FillBlobIdsByStorage(blobIds, index.GetVersionedIndex());
+            for (auto&& s : blobIds) {
+                auto it = CurrentBlobIds.find(s.first);
+                if (it == CurrentBlobIds.end()) {
+                    notContains += s.second.size();
+                    continue;
+                }
+                for (auto&& b : s.second) {
+                    if (it->second.contains(b)) {
+                        ++contains;
+                    }
+                }
+            }
+            AFL_VERIFY(!contains || !notContains);
+            if (!contains) {
+                portion.SetPathId(it->second);
+                index.UpsertPortion(std::move(portion));
+            }
+        }
+    }
+    return TConclusionStatus::Success();
+}
+
+void TDestinationSession::SendCurrentCursorAck(const NColumnShard::TColumnShard& shard, const std::optional tabletId) {
+    AFL_VERIFY(IsStarted() || IsStarting());
+    bool found = false;
+    bool allTransfersFinished = true;
+    for (auto&& [_, cursor] : Cursors) {
+        if (!cursor.GetDataFinished()) {
+            allTransfersFinished = false;
+        }
+        if (tabletId && *tabletId != cursor.GetTabletId()) {
+            continue;
+        }
+        found = true;
+        if (cursor.GetDataFinished()) {
+            auto ev = std::make_unique(GetSessionId());
+            NActors::TActivationContext::AsActorContext().Send(MakePipePeNodeCacheID(false),
+                new TEvPipeCache::TEvForward(ev.release(), (ui64)cursor.GetTabletId(), true), IEventHandle::FlagTrackDelivery, GetRuntimeId());
+        } else if (cursor.GetPackIdx()) {
+            auto ev = std::make_unique(GetSessionId(), cursor.GetPackIdx());
+            NActors::TActivationContext::AsActorContext().Send(MakePipePeNodeCacheID(false),
+                new TEvPipeCache::TEvForward(ev.release(), (ui64)cursor.GetTabletId(), true), IEventHandle::FlagTrackDelivery, GetRuntimeId());
+        } else {
+            std::set pathIdsBase;
+            for (auto&& i : PathIds) {
+                pathIdsBase.emplace(i.first);
+            }
+            TSourceSession source(GetSessionId(), TransferContext, cursor.GetTabletId(), pathIdsBase, (TTabletId)shard.TabletID());
+            auto ev = std::make_unique(source);
+            NActors::TActivationContext::AsActorContext().Send(MakePipePeNodeCacheID(false),
+                new TEvPipeCache::TEvForward(ev.release(), (ui64)cursor.GetTabletId(), true), IEventHandle::FlagTrackDelivery, GetRuntimeId());
+        }
+    }
+    if (allTransfersFinished && !IsFinished()) {
+        NYDBTest::TControllers::GetColumnShardController()->OnDataSharingFinished(shard.TabletID(), GetSessionId());
+        Finish(shard.GetDataLocksManager());
+        InitiatorController.Finished(GetSessionId());
+    }
+    AFL_VERIFY(found);
+}
+
+NKikimr::TConclusion> TDestinationSession::ReceiveData(
+    NColumnShard::TColumnShard* self, const THashMap& data, const ui32 receivedPackIdx, const TTabletId sourceTabletId,
+    const std::shared_ptr& selfPtr) {
+    auto result = GetCursorVerified(sourceTabletId).ReceiveData(receivedPackIdx);
+    if (!result) {
+        return result;
+    }
+    return std::unique_ptr(new TTxDataFromSource(self, selfPtr, data, sourceTabletId));
+}
+
+NKikimr::TConclusion> TDestinationSession::ReceiveFinished(NColumnShard::TColumnShard* self, const TTabletId sourceTabletId, const std::shared_ptr& selfPtr) {
+    auto result = GetCursorVerified(sourceTabletId).ReceiveFinished();
+    if (!result) {
+        return result;
+    }
+    return std::unique_ptr(new TTxFinishFromSource(self, sourceTabletId, selfPtr));
+}
+
+NKikimr::TConclusion> TDestinationSession::AckInitiatorFinished(NColumnShard::TColumnShard* self, const std::shared_ptr& selfPtr) {
+    return std::unique_ptr(new TTxFinishAckFromInitiator(self, selfPtr));
+}
+
+NKikimr::TConclusionStatus TDestinationSession::DeserializeDataFromProto(const NKikimrColumnShardDataSharingProto::TDestinationSession& proto, const TColumnEngineForLogs& index) {
+    if (!InitiatorController.DeserializeFromProto(proto.GetInitiatorController())) {
+        return TConclusionStatus::Fail("cannot parse initiator controller: " + proto.GetInitiatorController().DebugString());
+    }
+    auto parseBase = TBase::DeserializeFromProto(proto);
+    if (!parseBase) {
+        return parseBase;
+    }
+
+    for (auto&& i : TransferContext.GetSourceTabletIds()) {
+        Cursors.emplace(i, TSourceCursorForDestination(i));
+    }
+
+    for (auto&& i : proto.GetPathIds()) {
+        auto g = index.GetGranuleOptional(i.GetDestPathId());
+        if (!g) {
+            return TConclusionStatus::Fail("Incorrect remapping into undefined path id: " + ::ToString(i.GetDestPathId()));
+        }
+        if (!i.GetSourcePathId() || !i.GetDestPathId()) {
+            return TConclusionStatus::Fail("PathIds remapping contains incorrect ids: " + i.DebugString());
+        }
+        if (!PathIds.emplace(i.GetSourcePathId(), i.GetDestPathId()).second) {
+            return TConclusionStatus::Fail("PathIds contains duplicated values.");
+        }
+    }
+    if (PathIds.empty()) {
+        return TConclusionStatus::Fail("PathIds empty.");
+    }
+    return TConclusionStatus::Success();
+}
+
+NKikimrColumnShardDataSharingProto::TDestinationSession TDestinationSession::SerializeDataToProto() const {
+    NKikimrColumnShardDataSharingProto::TDestinationSession result;
+    InitiatorController.SerializeToProto(*result.MutableInitiatorController());
+    TBase::SerializeToProto(result);
+    for (auto&& i : PathIds) {
+        auto* pathIdRemap = result.AddPathIds();
+        pathIdRemap->SetSourcePathId(i.first);
+        pathIdRemap->SetDestPathId(i.second);
+    }
+    return result;
+}
+
+NKikimrColumnShardDataSharingProto::TDestinationSession::TFullCursor TDestinationSession::SerializeCursorToProto() const {
+    NKikimrColumnShardDataSharingProto::TDestinationSession::TFullCursor result;
+    result.SetConfirmedFlag(ConfirmedFlag);
+    for (auto&& i : Cursors) {
+        *result.AddSourceCursors() = i.second.SerializeToProto();
+    }
+    return result;
+}
+
+NKikimr::TConclusionStatus TDestinationSession::DeserializeCursorFromProto(const NKikimrColumnShardDataSharingProto::TDestinationSession::TFullCursor& proto) {
+    ConfirmedFlag = proto.GetConfirmedFlag();
+    for (auto&& i : proto.GetSourceCursors()) {
+        TSourceCursorForDestination cursor;
+        auto parsed = cursor.DeserializeFromProto(i);
+        if (!parsed) {
+            return parsed;
+        }
+        auto it = Cursors.find(cursor.GetTabletId());
+        AFL_VERIFY(it != Cursors.end());
+        it->second = cursor;
+    }
+    return TConclusionStatus::Success();
+}
+
+bool TDestinationSession::DoStart(const NColumnShard::TColumnShard& shard, const THashMap>>& portions) {
+    AFL_VERIFY(IsConfirmed());
+    NYDBTest::TControllers::GetColumnShardController()->OnDataSharingStarted(shard.TabletID(), GetSessionId());
+    THashMap> local;
+    for (auto&& i : portions) {
+        for (auto&& p : i.second) {
+            p->FillBlobIdsByStorage(local, shard.GetIndexAs().GetVersionedIndex());
+        }
+    }
+    std::swap(CurrentBlobIds, local);
+    SendCurrentCursorAck(shard, {});
+    return true;
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/session/destination.h b/ydb/core/tx/columnshard/data_sharing/destination/session/destination.h
new file mode 100644
index 000000000000..a2780449d498
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/session/destination.h
@@ -0,0 +1,134 @@
+#pragma once
+#include 
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NColumnShard {
+class TColumnShard;
+}
+
+namespace NKikimr::NOlap {
+class TColumnEngineForLogs;
+class IStoragesManager;
+}
+
+namespace NKikimr::NOlap::NDataSharing {
+
+namespace NEvents {
+class TPathIdData;
+}
+
+class TSourceCursorForDestination {
+private:
+    YDB_READONLY(TTabletId, TabletId, (TTabletId)0);
+    YDB_READONLY(ui32, PackIdx, 0);
+    YDB_READONLY(bool, DataFinished, false);
+public:
+    TSourceCursorForDestination() = default;
+    TSourceCursorForDestination(const TTabletId tabletId)
+        : TabletId(tabletId)
+    {
+
+    }
+
+    TConclusionStatus ReceiveData(const ui32 packIdxReceived) {
+        if (packIdxReceived != PackIdx + 1) {
+            return TConclusionStatus::Fail("inconsistency packIdx");
+        }
+        PackIdx = packIdxReceived;
+        return TConclusionStatus::Success();
+    }
+
+    TConclusionStatus ReceiveFinished() {
+        if (DataFinished) {
+            return TConclusionStatus::Fail("inconsistency DataFinished");
+        }
+        DataFinished = true;
+        return TConclusionStatus::Success();
+    }
+
+    [[nodiscard]] TConclusionStatus DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TDestinationSession::TSourceCursor& proto) {
+        TabletId = (TTabletId)proto.GetTabletId();
+        PackIdx = proto.GetPackIdx();
+        DataFinished = proto.GetFinished();
+        return TConclusionStatus::Success();
+    }
+
+    [[nodiscard]] NKikimrColumnShardDataSharingProto::TDestinationSession::TSourceCursor SerializeToProto() const {
+        NKikimrColumnShardDataSharingProto::TDestinationSession::TSourceCursor result;
+        result.SetTabletId((ui64)TabletId);
+        result.SetPackIdx(PackIdx);
+        result.SetFinished(DataFinished);
+        return result;
+    }
+
+};
+
+class TDestinationSession: public TCommonSession {
+private:
+    using TBase = TCommonSession;
+    YDB_READONLY_DEF(TInitiatorControllerContainer, InitiatorController);
+    using TPathIdsRemapper = THashMap;
+    YDB_READONLY_DEF(TPathIdsRemapper, PathIds);
+    YDB_READONLY_FLAG(Confirmed, false);
+    THashMap Cursors;
+    THashMap> CurrentBlobIds;
+protected:
+    virtual bool DoStart(const NColumnShard::TColumnShard& shard, const THashMap>>& portions) override;
+    virtual THashSet GetPathIdsForStart() const override {
+        THashSet result;
+        for (auto&& i : PathIds) {
+            result.emplace(i.first);
+        }
+        return result;
+    }
+public:
+    TSourceCursorForDestination& GetCursorVerified(const TTabletId& tabletId) {
+        auto it = Cursors.find(tabletId);
+        AFL_VERIFY(it != Cursors.end());
+        return it->second;
+    }
+
+    TDestinationSession(const TInitiatorControllerContainer& controller, const TPathIdsRemapper& remapper, const TString& sessionId, const TTransferContext& context)
+        : TBase(sessionId, "destination_base", context)
+        , InitiatorController(controller)
+        , PathIds(remapper)
+    {
+
+    }
+
+    TDestinationSession()
+        : TBase("dest_proto")
+    {
+
+    }
+
+    void Confirm(const bool allowRepeat = false) {
+        AFL_VERIFY(!ConfirmedFlag || allowRepeat);
+        ConfirmedFlag = true;
+    }
+
+    [[nodiscard]] TConclusionStatus DataReceived(THashMap&& data, TColumnEngineForLogs& index, const std::shared_ptr& manager);
+
+    void SendCurrentCursorAck(const NColumnShard::TColumnShard& shard, const std::optional tabletId);
+
+    NKikimrColumnShardDataSharingProto::TDestinationSession SerializeDataToProto() const;
+
+    [[nodiscard]] TConclusion> ReceiveFinished(NColumnShard::TColumnShard* self, const TTabletId sourceTabletId, const std::shared_ptr& selfPtr);
+
+    [[nodiscard]] TConclusion> AckInitiatorFinished(NColumnShard::TColumnShard* self, const std::shared_ptr& selfPtr);
+
+    [[nodiscard]] TConclusion> ReceiveData(NColumnShard::TColumnShard* self, const THashMap& data,
+        const ui32 receivedPackIdx, const TTabletId sourceTabletId, const std::shared_ptr& selfPtr);
+
+    NKikimrColumnShardDataSharingProto::TDestinationSession::TFullCursor SerializeCursorToProto() const;
+    [[nodiscard]] TConclusionStatus DeserializeCursorFromProto(const NKikimrColumnShardDataSharingProto::TDestinationSession::TFullCursor& proto);
+
+    [[nodiscard]] TConclusionStatus DeserializeDataFromProto(const NKikimrColumnShardDataSharingProto::TDestinationSession& proto, const TColumnEngineForLogs& index);
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/session/ya.make b/ydb/core/tx/columnshard/data_sharing/destination/session/ya.make
new file mode 100644
index 000000000000..92588efad0f8
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/session/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+    destination.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/initiator/controller
+    ydb/core/tx/columnshard/data_sharing/common/session
+    ydb/core/tx/columnshard/data_sharing/common/transactions
+    ydb/core/tx/columnshard/data_sharing/destination/transactions
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_data_from_source.cpp b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_data_from_source.cpp
new file mode 100644
index 000000000000..5c779525b3f3
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_data_from_source.cpp
@@ -0,0 +1,44 @@
+#include "tx_data_from_source.h"
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+bool TTxDataFromSource::DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& /*ctx*/) {
+    using namespace NKikimr::NColumnShard;
+    TDbWrapper dbWrapper(txc.DB, nullptr);
+    {
+        ui64* lastPortionPtr = Self->TablesManager.MutablePrimaryIndexAsVerified().GetLastPortionPointer();
+        for (auto&& i : PortionsByPathId) {
+            auto it = Session->GetPathIds().find(i.first);
+            AFL_VERIFY(it != Session->GetPathIds().end());
+            i.second.InitPortionIds(lastPortionPtr, it->second);
+        }
+        dbWrapper.WriteCounter(TColumnEngineForLogs::LAST_PORTION, *lastPortionPtr);
+    }
+    THashMap> sharedBlobIds;
+    for (auto&& i : PortionsByPathId) {
+        for (auto&& p : i.second.GetPortions()) {
+            p.SaveToDatabase(dbWrapper);
+        }
+    }
+    NIceDb::TNiceDb db(txc.DB);
+    db.Table().Key(Session->GetSessionId())
+        .Update(NIceDb::TUpdate(Session->SerializeCursorToProto().SerializeAsString()));
+    return true;
+}
+
+void TTxDataFromSource::DoComplete(const TActorContext& /*ctx*/) {
+    Session->DataReceived(std::move(PortionsByPathId), Self->TablesManager.MutablePrimaryIndexAsVerified(), Self->GetStoragesManager()).Validate();
+    Session->SendCurrentCursorAck(*Self, SourceTabletId);
+}
+
+TTxDataFromSource::TTxDataFromSource(NColumnShard::TColumnShard* self, const std::shared_ptr& session, const THashMap& portionsByPathId, const TTabletId sourceTabletId)
+    : TBase(self)
+    , Session(session)
+    , PortionsByPathId(portionsByPathId)
+    , SourceTabletId(sourceTabletId)
+{
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_data_from_source.h b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_data_from_source.h
new file mode 100644
index 000000000000..82b69ac41fb6
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_data_from_source.h
@@ -0,0 +1,28 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TTxDataFromSource: public TExtendedTransactionBase {
+private:
+    using TBase = TExtendedTransactionBase;
+    std::shared_ptr Session;
+    THashMap PortionsByPathId;
+    THashMap> SharedBlobIds;
+    const TTabletId SourceTabletId;
+protected:
+    virtual bool DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& ctx) override;
+    virtual void DoComplete(const TActorContext& ctx) override;
+public:
+    TTxDataFromSource(NColumnShard::TColumnShard* self, const std::shared_ptr& session, const THashMap& portionsByPathId, const TTabletId sourceTabletId);
+
+    TTxType GetTxType() const override { return NColumnShard::TXTYPE_DATA_SHARING_DATA_FROM_SOURCE; }
+};
+
+
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_finish_ack_from_initiator.cpp b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_finish_ack_from_initiator.cpp
new file mode 100644
index 000000000000..ecd5dfeac082
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_finish_ack_from_initiator.cpp
@@ -0,0 +1,16 @@
+#include "tx_finish_ack_from_initiator.h"
+
+namespace NKikimr::NOlap::NDataSharing {
+
+bool TTxFinishAckFromInitiator::DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& /*ctx*/) {
+    using namespace NKikimr::NColumnShard;
+    NIceDb::TNiceDb db(txc.DB);
+    db.Table().Key(Session->GetSessionId()).Delete();
+    return true;
+}
+
+void TTxFinishAckFromInitiator::DoComplete(const TActorContext& /*ctx*/) {
+    Self->SharingSessionsManager->RemoveDestinationSession(Session->GetSessionId());
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_finish_ack_from_initiator.h b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_finish_ack_from_initiator.h
new file mode 100644
index 000000000000..0d61359a1e8f
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_finish_ack_from_initiator.h
@@ -0,0 +1,26 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TTxFinishAckFromInitiator: public TExtendedTransactionBase {
+private:
+    using TBase = TExtendedTransactionBase;
+    std::shared_ptr Session;
+protected:
+    virtual bool DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& ctx) override;
+    virtual void DoComplete(const TActorContext& /*ctx*/) override;
+public:
+    TTxFinishAckFromInitiator(NColumnShard::TColumnShard* self, const std::shared_ptr& session)
+        : TBase(self)
+        , Session(session)
+    {
+    }
+
+    TTxType GetTxType() const override { return NColumnShard::TXTYPE_DATA_SHARING_FINISH_ACK_FROM_INITIATOR; }
+};
+
+
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_finish_from_source.cpp b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_finish_from_source.cpp
new file mode 100644
index 000000000000..7229dafe789e
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_finish_from_source.cpp
@@ -0,0 +1,17 @@
+#include "tx_finish_from_source.h"
+
+namespace NKikimr::NOlap::NDataSharing {
+
+bool TTxFinishFromSource::DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& /*ctx*/) {
+    using namespace NColumnShard;
+    NIceDb::TNiceDb db(txc.DB);
+    db.Table().Key(Session->GetSessionId())
+        .Update(NIceDb::TUpdate(Session->SerializeCursorToProto().SerializeAsString()));
+    return true;
+}
+
+void TTxFinishFromSource::DoComplete(const TActorContext& /*ctx*/) {
+    Session->SendCurrentCursorAck(*Self, SourceTabletId);
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_finish_from_source.h b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_finish_from_source.h
new file mode 100644
index 000000000000..92a0bb667988
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_finish_from_source.h
@@ -0,0 +1,28 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TTxFinishFromSource: public TExtendedTransactionBase {
+private:
+    using TBase = TExtendedTransactionBase;
+    std::shared_ptr Session;
+    const TTabletId SourceTabletId;
+protected:
+    virtual bool DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& ctx) override;
+    virtual void DoComplete(const TActorContext& ctx) override;
+public:
+    TTxFinishFromSource(NColumnShard::TColumnShard* self, const TTabletId sourceTabletId, const std::shared_ptr& session)
+        : TBase(self)
+        , Session(session)
+        , SourceTabletId(sourceTabletId)
+    {
+    }
+
+    TTxType GetTxType() const override { return NColumnShard::TXTYPE_DATA_SHARING_FINISH_FROM_SOURCE; }
+};
+
+
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_start_from_initiator.cpp b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_start_from_initiator.cpp
new file mode 100644
index 000000000000..4de8f6e30882
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_start_from_initiator.cpp
@@ -0,0 +1,33 @@
+#include "tx_start_from_initiator.h"
+
+namespace NKikimr::NOlap::NDataSharing {
+
+bool TTxProposeFromInitiator::DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& /*ctx*/) {
+    using namespace NColumnShard;
+    NIceDb::TNiceDb db(txc.DB);
+    db.Table().Key(Session->GetSessionId())
+        .Update(NIceDb::TUpdate(Session->SerializeDataToProto().SerializeAsString()));
+    return true;
+}
+
+void TTxProposeFromInitiator::DoComplete(const TActorContext& /*ctx*/) {
+    AFL_VERIFY(!Session->IsConfirmed());
+    AFL_VERIFY(Sessions->emplace(Session->GetSessionId(), Session).second);
+    Session->GetInitiatorController().ProposeSuccess(Session->GetSessionId());
+}
+
+bool TTxConfirmFromInitiator::DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& /*ctx*/) {
+    using namespace NColumnShard;
+    NIceDb::TNiceDb db(txc.DB);
+    Session->Confirm(true);
+    db.Table().Key(Session->GetSessionId())
+        .Update(NIceDb::TUpdate(Session->SerializeCursorToProto().SerializeAsString()));
+    return true;
+}
+
+void TTxConfirmFromInitiator::DoComplete(const TActorContext& /*ctx*/) {
+    Session->Start(*Self);
+    Session->GetInitiatorController().ConfirmSuccess(Session->GetSessionId());
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_start_from_initiator.h b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_start_from_initiator.h
new file mode 100644
index 000000000000..e90a2af29935
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/transactions/tx_start_from_initiator.h
@@ -0,0 +1,44 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TTxProposeFromInitiator: public TExtendedTransactionBase {
+private:
+    using TBase = TExtendedTransactionBase;
+    std::shared_ptr Session;
+    THashMap>* Sessions;
+protected:
+    virtual bool DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& ctx) override;
+    virtual void DoComplete(const TActorContext& ctx) override;
+public:
+    TTxProposeFromInitiator(NColumnShard::TColumnShard* self, const std::shared_ptr& session, THashMap>& sessions, const TString& info)
+        : TBase(self, info)
+        , Session(session)
+        , Sessions(&sessions) {
+    }
+
+    TTxType GetTxType() const override { return NColumnShard::TXTYPE_DATA_SHARING_PROPOSE_FROM_INITIATOR; }
+};
+
+class TTxConfirmFromInitiator: public TExtendedTransactionBase {
+private:
+    using TBase = TExtendedTransactionBase;
+    std::shared_ptr Session;
+protected:
+    virtual bool DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& ctx) override;
+    virtual void DoComplete(const TActorContext& ctx) override;
+public:
+    TTxConfirmFromInitiator(NColumnShard::TColumnShard* self, const std::shared_ptr& session, const TString& info)
+        : TBase(self, info)
+        , Session(session)
+    {
+    }
+
+    TTxType GetTxType() const override { return NColumnShard::TXTYPE_DATA_SHARING_CONFIRM_FROM_INITIATOR; }
+};
+
+
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/transactions/ya.make b/ydb/core/tx/columnshard/data_sharing/destination/transactions/ya.make
new file mode 100644
index 000000000000..db1eca3269fa
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/transactions/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+SRCS(
+    tx_start_from_initiator.cpp
+    tx_data_from_source.cpp
+    tx_finish_from_source.cpp
+    tx_finish_ack_from_initiator.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/tiering
+    ydb/core/tx/columnshard/data_sharing/protos
+    ydb/core/tx/columnshard/data_sharing/common/transactions
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/destination/ya.make b/ydb/core/tx/columnshard/data_sharing/destination/ya.make
new file mode 100644
index 000000000000..77349cb09cb2
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/destination/ya.make
@@ -0,0 +1,9 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/destination/session
+    ydb/core/tx/columnshard/data_sharing/destination/transactions
+    ydb/core/tx/columnshard/data_sharing/destination/events
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/initiator/controller/abstract.cpp b/ydb/core/tx/columnshard/data_sharing/initiator/controller/abstract.cpp
new file mode 100644
index 000000000000..f7eeaa175efb
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/initiator/controller/abstract.cpp
@@ -0,0 +1,4 @@
+#include "abstract.h"
+
+namespace NKikimr::NOlap::NDataSharing {
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/initiator/controller/abstract.h b/ydb/core/tx/columnshard/data_sharing/initiator/controller/abstract.h
new file mode 100644
index 000000000000..3eb908800729
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/initiator/controller/abstract.h
@@ -0,0 +1,75 @@
+#pragma once
+#include 
+#include 
+
+#include 
+
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class IInitiatorController {
+protected:
+    virtual void DoProposeError(const TString& sessionId, const TString& message) const = 0;
+    virtual void DoProposeSuccess(const TString& sessionId) const = 0;
+    virtual void DoConfirmSuccess(const TString& sessionId) const = 0;
+    virtual void DoFinished(const TString& sessionId) const = 0;
+    virtual void DoStatus(const TStatusContainer& status) const = 0;
+    virtual TConclusionStatus DoDeserializeFromProto(const NKikimrColumnShardDataSharingProto::TInitiator::TController& proto) = 0;
+    virtual void DoSerializeToProto(NKikimrColumnShardDataSharingProto::TInitiator::TController& proto) const = 0;
+public:
+    using TProto = NKikimrColumnShardDataSharingProto::TInitiator::TController;
+    using TFactory = NObjectFactory::TObjectFactory;
+
+    virtual ~IInitiatorController() = default;
+
+    void SerializeToProto(NKikimrColumnShardDataSharingProto::TInitiator::TController& proto) const {
+        return DoSerializeToProto(proto);
+    }
+
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TInitiator::TController& proto) {
+        return DoDeserializeFromProto(proto);
+    }
+
+    void Status(const TStatusContainer& status) const {
+        DoStatus(status);
+    }
+    void ProposeError(const TString& sessionId, const TString& message) const {
+        DoProposeError(sessionId, message);
+    }
+    void ConfirmSuccess(const TString& sessionId) const {
+        DoConfirmSuccess(sessionId);
+    }
+    void ProposeSuccess(const TString& sessionId) const {
+        DoProposeSuccess(sessionId);
+    }
+    void Finished(const TString& sessionId) const {
+        DoFinished(sessionId);
+    }
+    virtual TString GetClassName() const = 0;
+};
+
+class TInitiatorControllerContainer: public NBackgroundTasks::TInterfaceProtoContainer {
+private:
+    using TBase = NBackgroundTasks::TInterfaceProtoContainer;
+public:
+    using TBase::TBase;
+
+    void Status(const TStatusContainer& status) const {
+        TBase::GetObjectPtrVerified()->Status(status);
+    }
+    void ProposeSuccess(const TString& sessionId) const {
+        TBase::GetObjectPtrVerified()->ProposeSuccess(sessionId);
+    }
+    void ConfirmSuccess(const TString& sessionId) const {
+        TBase::GetObjectPtrVerified()->ConfirmSuccess(sessionId);
+    }
+    void ProposeError(const TString& sessionId, const TString& message) const {
+        TBase::GetObjectPtrVerified()->ProposeError(sessionId, message);
+    }
+    void Finished(const TString& sessionId) const {
+        TBase::GetObjectPtrVerified()->Finished(sessionId);
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/initiator/controller/test.cpp b/ydb/core/tx/columnshard/data_sharing/initiator/controller/test.cpp
new file mode 100644
index 000000000000..162ef65ff2c5
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/initiator/controller/test.cpp
@@ -0,0 +1,4 @@
+#include "test.h"
+
+namespace NKikimr::NOlap::NDataSharing {
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/initiator/controller/test.h b/ydb/core/tx/columnshard/data_sharing/initiator/controller/test.h
new file mode 100644
index 000000000000..95645fdba873
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/initiator/controller/test.h
@@ -0,0 +1,37 @@
+#pragma once
+#include "abstract.h"
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TTestInitiatorController: public IInitiatorController {
+public:
+    static TString GetClassNameStatic() {
+        return "TEST";
+    }
+private:
+    static inline TFactory::TRegistrator Registrator = TFactory::TRegistrator(GetClassNameStatic());
+protected:
+    virtual TConclusionStatus DoDeserializeFromProto(const NKikimrColumnShardDataSharingProto::TInitiator::TController& /*proto*/) override {
+        return TConclusionStatus::Success();
+    }
+    virtual void DoSerializeToProto(NKikimrColumnShardDataSharingProto::TInitiator::TController& /*proto*/) const override {
+
+    }
+
+    virtual void DoStatus(const TStatusContainer& /*status*/) const override {
+
+    }
+    virtual void DoProposeError(const TString& /*sessionId*/, const TString& /*message*/) const override {
+    }
+    virtual void DoProposeSuccess(const TString& /*sessionId*/) const override {
+    }
+    virtual void DoConfirmSuccess(const TString& /*sessionId*/) const override {
+    }
+    virtual void DoFinished(const TString& /*sessionId*/) const override {
+    }
+    virtual TString GetClassName() const override {
+        return GetClassNameStatic();
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/initiator/controller/ya.make b/ydb/core/tx/columnshard/data_sharing/initiator/controller/ya.make
new file mode 100644
index 000000000000..9f2dce70dbd7
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/initiator/controller/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+    abstract.cpp
+    GLOBAL test.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/initiator/status
+    ydb/services/bg_tasks/abstract
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/initiator/status/abstract.cpp b/ydb/core/tx/columnshard/data_sharing/initiator/status/abstract.cpp
new file mode 100644
index 000000000000..fc8a83aa36d3
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/initiator/status/abstract.cpp
@@ -0,0 +1,5 @@
+#include "abstract.h"
+
+namespace NKikimr::NOlap::NDataSharing {
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/initiator/status/abstract.h b/ydb/core/tx/columnshard/data_sharing/initiator/status/abstract.h
new file mode 100644
index 000000000000..d5c8eb1c0b88
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/initiator/status/abstract.h
@@ -0,0 +1,70 @@
+#pragma once
+#include 
+#include 
+
+#include 
+#include 
+
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+enum class EStatus {
+    Undefined,
+    NotFound,
+    StartFailed,
+    InProgress
+};
+
+class IStatus {
+private:
+    YDB_READONLY(EStatus, Status, EStatus::Undefined);
+    YDB_READONLY_DEF(TString, SessionId);
+protected:
+    virtual NJson::TJsonValue DoDebugJson() const {
+        return NJson::JSON_NULL;
+    }
+    virtual TConclusionStatus DoDeserializeFromProto(const NKikimrColumnShardDataSharingProto::TInitiator::TStatus& proto) = 0;
+    virtual void DoSerializeFromProto(NKikimrColumnShardDataSharingProto::TInitiator::TStatus& proto) const = 0;
+public:
+    using TProto = NKikimrColumnShardDataSharingProto::TInitiator::TStatus;
+    using TFactory = NObjectFactory::TObjectFactory;
+    IStatus(const EStatus status, const TString& sessionId)
+        : Status(status)
+        , SessionId(sessionId)
+    {
+        AFL_VERIFY(SessionId);
+    }
+
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TInitiator::TStatus& proto) {
+        if (!TryFromString(proto.GetClassName(), Status)) {
+            return TConclusionStatus::Fail("cannot parse class name as status: " + proto.GetClassName());
+        }
+        SessionId = proto.GetSessionId();
+        return DoDeserializeFromProto(proto);
+    }
+    void SerializeToProto(NKikimrColumnShardDataSharingProto::TInitiator::TStatus& proto) const {
+        *proto.MutableSessionId() = SessionId;
+        return DoSerializeFromProto(proto);
+    }
+
+    TString GetClassName() const {
+        return ::ToString(Status);
+    }
+
+    NJson::TJsonValue DebugJson() const {
+        NJson::TJsonValue result = NJson::JSON_MAP;
+        result.InsertValue("class_name", GetClassName());
+        result.InsertValue("session_id", SessionId);
+        auto detailsJson = DoDebugJson();
+        if (!detailsJson.IsNull()) {
+            result.InsertValue("details", std::move(detailsJson));
+        }
+        return result;
+    }
+};
+
+class TStatusContainer: public NBackgroundTasks::TInterfaceProtoContainer {
+
+};
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/initiator/status/ya.make b/ydb/core/tx/columnshard/data_sharing/initiator/status/ya.make
new file mode 100644
index 000000000000..743bfaf5d3e7
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/initiator/status/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+    abstract.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/protos
+    ydb/services/bg_tasks/abstract
+)
+
+GENERATE_ENUM_SERIALIZATION(abstract.h)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/initiator/ya.make b/ydb/core/tx/columnshard/data_sharing/initiator/ya.make
new file mode 100644
index 000000000000..f5cbef5a1b75
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/initiator/ya.make
@@ -0,0 +1,8 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/initiator/controller
+    ydb/core/tx/columnshard/data_sharing/initiator/status
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/manager/sessions.cpp b/ydb/core/tx/columnshard/data_sharing/manager/sessions.cpp
new file mode 100644
index 000000000000..197fa88ac65d
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/manager/sessions.cpp
@@ -0,0 +1,114 @@
+#include "sessions.h"
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+void TSessionsManager::Start(const NColumnShard::TColumnShard& shard) const {
+    NActors::TLogContextGuard logGuard = NActors::TLogContextBuilder::Build()("sessions", "start")("tablet_id", shard.TabletID());
+    for (auto&& i : SourceSessions) {
+        if (!i.second->IsStarted()) {
+            i.second->Start(shard);
+        }
+    }
+    for (auto&& i : DestSessions) {
+        if (!i.second->IsStarted() && i.second->IsConfirmed()) {
+            i.second->Start(shard);
+        }
+    }
+    NYDBTest::TControllers::GetColumnShardController()->OnAfterSharingSessionsManagerStart(shard);
+}
+
+void TSessionsManager::InitializeEventsExchange(const NColumnShard::TColumnShard& shard, const std::optional sessionCookie) {
+    AFL_VERIFY(!sessionCookie || *sessionCookie);
+    for (auto&& i : SourceSessions) {
+        if (sessionCookie && *sessionCookie != i.second->GetRuntimeId()) {
+            continue;
+        }
+        i.second->ActualizeDestination(shard.GetDataLocksManager());
+    }
+    for (auto&& i : DestSessions) {
+        if (sessionCookie && *sessionCookie != i.second->GetRuntimeId()) {
+            continue;
+        }
+        i.second->SendCurrentCursorAck(shard, {});
+    }
+}
+
+bool TSessionsManager::Load(NTable::TDatabase& database, const TColumnEngineForLogs* index) {
+    NIceDb::TNiceDb db(database);
+    using namespace NColumnShard;
+    {
+        auto rowset = db.Table().Select();
+        if (!rowset.IsReady()) {
+            return false;
+        }
+
+        while (!rowset.EndOfSet()) {
+            auto session = std::make_shared((TTabletId)index->GetTabletId());
+
+            NKikimrColumnShardDataSharingProto::TSourceSession protoSession;
+            AFL_VERIFY(protoSession.ParseFromString(rowset.GetValue()));
+
+            NKikimrColumnShardDataSharingProto::TSourceSession::TCursorDynamic protoSessionCursorDynamic;
+            AFL_VERIFY(protoSessionCursorDynamic.ParseFromString(rowset.GetValue()));
+
+            NKikimrColumnShardDataSharingProto::TSourceSession::TCursorStatic protoSessionCursorStatic;
+            AFL_VERIFY(protoSessionCursorStatic.ParseFromString(rowset.GetValue()));
+
+            AFL_VERIFY(index);
+            session->DeserializeFromProto(protoSession, protoSessionCursorDynamic, protoSessionCursorStatic).Validate();
+            AFL_VERIFY(SourceSessions.emplace(session->GetSessionId(), session).second);
+            if (!rowset.Next()) {
+                return false;
+            }
+        }
+
+    }
+
+    {
+        auto rowset = db.Table().Select();
+        if (!rowset.IsReady()) {
+            return false;
+        }
+
+        while (!rowset.EndOfSet()) {
+            auto session = std::make_shared();
+
+            NKikimrColumnShardDataSharingProto::TDestinationSession protoSession;
+            AFL_VERIFY(protoSession.ParseFromString(rowset.GetValue()));
+
+            NKikimrColumnShardDataSharingProto::TDestinationSession::TFullCursor protoSessionCursor;
+            AFL_VERIFY(protoSessionCursor.ParseFromString(rowset.GetValue()));
+
+            AFL_VERIFY(index);
+            session->DeserializeDataFromProto(protoSession, *index).Validate();
+            session->DeserializeCursorFromProto(protoSessionCursor).Validate();
+            AFL_VERIFY(DestSessions.emplace(session->GetSessionId(), session).second);
+            if (!rowset.Next()) {
+                return false;
+            }
+        }
+    }
+    return true;
+}
+
+std::unique_ptr TSessionsManager::ProposeDestSession(NColumnShard::TColumnShard* self, const std::shared_ptr& session) {
+    AFL_VERIFY(session);
+    return std::make_unique(self, session, DestSessions, "tx_propose_from_initiator");
+}
+
+std::unique_ptr TSessionsManager::ConfirmDestSession(NColumnShard::TColumnShard* self, const std::shared_ptr& session) {
+    AFL_VERIFY(session);
+    return std::make_unique(self, session, "tx_confirm_from_initiator");
+}
+
+std::unique_ptr TSessionsManager::InitializeSourceSession(NColumnShard::TColumnShard* self, const std::shared_ptr& session) {
+    AFL_VERIFY(session);
+    return std::make_unique(self, session, SourceSessions, "tx_start_to_source");
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/manager/sessions.h b/ydb/core/tx/columnshard/data_sharing/manager/sessions.h
new file mode 100644
index 000000000000..691b42ad8bb4
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/manager/sessions.h
@@ -0,0 +1,54 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NColumnShard {
+class TColumnShard;
+}
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TSessionsManager {
+private:
+    THashMap> SourceSessions;
+    THashMap> DestSessions;
+public:
+    TSessionsManager() = default;
+
+    void Start(const NColumnShard::TColumnShard& shard) const;
+
+    std::shared_ptr GetSourceSession(const TString& sessionId) const {
+        auto it = SourceSessions.find(sessionId);
+        if (it == SourceSessions.end()) {
+            return nullptr;
+        }
+        return it->second;
+    }
+
+    std::shared_ptr GetDestinationSession(const TString& sessionId) const {
+        auto it = DestSessions.find(sessionId);
+        if (it == DestSessions.end()) {
+            return nullptr;
+        }
+        return it->second;
+    }
+
+    void RemoveSourceSession(const TString& sessionId) {
+        SourceSessions.erase(sessionId);
+    }
+
+    void RemoveDestinationSession(const TString& sessionId) {
+        DestSessions.erase(sessionId);
+    }
+
+    [[nodiscard]] bool Load(NTable::TDatabase& database, const TColumnEngineForLogs* index);
+
+    void InitializeEventsExchange(const NColumnShard::TColumnShard& shard, const std::optional sessionCookie = {});
+
+    std::unique_ptr InitializeSourceSession(NColumnShard::TColumnShard* self, const std::shared_ptr& session);
+    std::unique_ptr ProposeDestSession(NColumnShard::TColumnShard* self, const std::shared_ptr& session);
+    std::unique_ptr ConfirmDestSession(NColumnShard::TColumnShard* self, const std::shared_ptr& session);
+
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/manager/shared_blobs.cpp b/ydb/core/tx/columnshard/data_sharing/manager/shared_blobs.cpp
new file mode 100644
index 000000000000..40387937a93b
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/manager/shared_blobs.cpp
@@ -0,0 +1,127 @@
+#include "shared_blobs.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+bool TSharedBlobsManager::LoadIdempotency(NTable::TDatabase& database) {
+    NIceDb::TNiceDb db(database);
+    using namespace NKikimr::NColumnShard;
+    THashMap>> sharedBlobIds;
+    THashMap> borrowedBlobIds;
+    {
+        auto rowset = db.Table().Select();
+        if (!rowset.IsReady())
+            return false;
+
+        TString error;
+        while (!rowset.EndOfSet()) {
+            const TString& storageId = rowset.GetValue();
+            auto unifiedBlobId = NOlap::TUnifiedBlobId::BuildFromString(rowset.GetValue(), nullptr);
+            AFL_VERIFY(!!unifiedBlobId)("error", unifiedBlobId.GetErrorMessage());
+            AFL_VERIFY(sharedBlobIds[storageId][*unifiedBlobId].emplace((TTabletId)rowset.GetValue()).second)("blob_id", *unifiedBlobId)("storage_id", storageId);
+            if (!rowset.Next())
+                return false;
+        }
+    }
+
+    {
+        auto rowset = db.Table().Select();
+        if (!rowset.IsReady())
+            return false;
+
+        TString error;
+
+        while (!rowset.EndOfSet()) {
+            const TString& storageId = rowset.GetValue();
+            auto unifiedBlobId = NOlap::TUnifiedBlobId::BuildFromString(rowset.GetValue(), nullptr);
+            AFL_VERIFY(!!unifiedBlobId)("error", unifiedBlobId.GetErrorMessage());
+            AFL_VERIFY(borrowedBlobIds[storageId].emplace(*unifiedBlobId, (TTabletId)rowset.GetValue()).second)("blob_id", *unifiedBlobId)("storage_id", storageId);
+            if (!rowset.Next())
+                return false;
+        }
+    }
+    for (auto&& i : Storages) {
+        i.second->Clear();
+    }
+    for (auto&& [storageId, blobs] : sharedBlobIds) {
+        auto storage = GetStorageManagerGuarantee(storageId);
+        for (auto&& b : blobs) {
+            for (auto&& t : b.second) {
+                AFL_VERIFY(storage->UpsertSharedBlobOnLoad(b.first, t));
+            }
+        }
+    }
+    for (auto&& [storageId, blobs] : borrowedBlobIds) {
+        auto storage = GetStorageManagerGuarantee(storageId);
+        for (auto&& b : blobs) {
+            AFL_VERIFY(storage->UpsertBorrowedBlobOnLoad(b.first, b.second));
+        }
+    }
+    return true;
+}
+
+void TStorageSharedBlobsManager::RemoveSharedBlobsDB(NTabletFlatExecutor::TTransactionContext& txc, const TTabletsByBlob& blobIds) {
+    NIceDb::TNiceDb db(txc.DB);
+    for (auto i = blobIds.GetIterator(); i.IsValid(); ++i) {
+        db.Table().Key(StorageId, i.GetBlobId().ToStringNew(), (ui64)i.GetTabletId()).Delete();
+    }
+}
+
+void TStorageSharedBlobsManager::WriteSharedBlobsDB(NTabletFlatExecutor::TTransactionContext& txc, const TTabletsByBlob& blobIds) {
+    NIceDb::TNiceDb db(txc.DB);
+    for (auto i = blobIds.GetIterator(); i.IsValid(); ++i) {
+        db.Table().Key(StorageId, i.GetBlobId().ToStringNew(), (ui64)i.GetTabletId()).Update();
+    }
+}
+
+void TStorageSharedBlobsManager::WriteBorrowedBlobsDB(NTabletFlatExecutor::TTransactionContext& txc, const TTabletByBlob& blobIds) {
+    NIceDb::TNiceDb db(txc.DB);
+    for (auto&& it: blobIds) {
+        db.Table().Key(StorageId, it.first.ToStringNew()).Update(NIceDb::TUpdate((ui64)it.second));
+    }
+}
+
+void TStorageSharedBlobsManager::CASBorrowedBlobsDB(NTabletFlatExecutor::TTransactionContext& txc, const TTabletId tabletIdFrom, const TTabletId tabletIdTo, const THashSet& blobIds) {
+    NIceDb::TNiceDb db(txc.DB);
+    for (auto&& i : blobIds) {
+        auto it = BorrowedBlobIds.find(i);
+        AFL_VERIFY(it != BorrowedBlobIds.end())("blob_id", i.ToStringNew());
+        AFL_VERIFY(it->second == tabletIdFrom || it->second == tabletIdTo);
+        if (tabletIdTo == SelfTabletId) {
+            db.Table().Key(StorageId, i.ToStringNew()).Delete();
+        } else {
+            db.Table().Key(StorageId, i.ToStringNew()).Update(NIceDb::TUpdate((ui64)tabletIdTo));
+        }
+    }
+}
+
+void TStorageSharedBlobsManager::OnTransactionExecuteAfterCleaning(const TBlobsCategories& removeTask, NTable::TDatabase& db) {
+    TBlobManagerDb dbBlobs(db);
+    for (auto&& i : removeTask.GetSharing()) {
+        for (auto&& b : i.second) {
+            dbBlobs.RemoveBlobSharing(StorageId, b, i.first);
+        }
+    }
+    for (auto&& i : removeTask.GetBorrowed()) {
+        for (auto&& blob : i.second) {
+            dbBlobs.RemoveBorrowedBlob(StorageId, blob);
+        }
+    }
+}
+
+void TStorageSharedBlobsManager::OnTransactionCompleteAfterCleaning(const TBlobsCategories& removeTask) {
+    for (auto i = removeTask.GetSharing().GetIterator(); i.IsValid(); ++i) {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("action", "remove_share")("tablet_id_share", i.GetTabletId())("blob_id", i.GetBlobId().ToStringNew());
+        SharedBlobIds.Remove(i.GetTabletId(), i.GetBlobId());
+    }
+    for (auto i = removeTask.GetBorrowed().GetIterator(); i.IsValid(); ++i) {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("action", "remove_own")("tablet_id_own", i.GetTabletId())("blob_id", i.GetBlobId().ToStringNew());
+        auto it = BorrowedBlobIds.find(i.GetBlobId());
+        AFL_VERIFY(it != BorrowedBlobIds.end());
+        BorrowedBlobIds.erase(it);
+    }
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/manager/shared_blobs.h b/ydb/core/tx/columnshard/data_sharing/manager/shared_blobs.h
new file mode 100644
index 000000000000..c9cacb603aeb
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/manager/shared_blobs.h
@@ -0,0 +1,247 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TStorageSharedBlobsManager {
+private:
+    const TString StorageId;
+    const TTabletId SelfTabletId;
+    THashMap BorrowedBlobIds; // blobId -> owned by tabletId
+    TTabletsByBlob SharedBlobIds; // blobId -> shared with tabletIds
+
+    bool CheckRemoveBlobId(const TTabletId tabletId, const TUnifiedBlobId& blobId, TBlobsCategories& blobs) const {
+        const THashSet* shared = SharedBlobIds.Find(blobId);
+        bool doRemove = false;
+        if (shared) {
+            auto itTablet = shared->find(tabletId);
+            AFL_VERIFY(itTablet != shared->end());
+            if (shared->size() == 1) {
+                doRemove = true;
+            }
+            blobs.AddSharing(tabletId, blobId);
+        } else {
+            doRemove = true;
+        }
+        if (doRemove) {
+            auto it = BorrowedBlobIds.find(blobId);
+            if (it != BorrowedBlobIds.end()) {
+                AFL_VERIFY(it->second != tabletId);
+                blobs.AddBorrowed(it->second, blobId);
+            } else {
+                blobs.AddDirect(tabletId, blobId);
+            }
+        }
+        return doRemove;
+    }
+public:
+    TStorageSharedBlobsManager(const TString& storageId, const TTabletId tabletId)
+        : StorageId(storageId)
+        , SelfTabletId(tabletId)
+    {
+
+    }
+
+    bool IsTrivialLinks() const {
+        return BorrowedBlobIds.empty() && SharedBlobIds.IsEmpty();
+    }
+    TTabletId GetSelfTabletId() const {
+        return SelfTabletId;
+    }
+
+    TBlobsCategories GetBlobCategories() const {
+        TBlobsCategories result(SelfTabletId);
+        for (auto&& i : BorrowedBlobIds) {
+            result.AddBorrowed(i.second, i.first);
+        }
+        for (auto i = SharedBlobIds.GetIterator(); i.IsValid(); ++i) {
+            result.AddSharing(i.GetTabletId(), i.GetBlobId());
+        }
+        return result;
+    }
+
+    TBlobsCategories BuildRemoveCategories(TTabletsByBlob&& blobs) const {
+        TBlobsCategories result(SelfTabletId);
+        for (auto it = blobs.GetIterator(); it.IsValid(); ++it) {
+            CheckRemoveBlobId(it.GetTabletId(), it.GetBlobId(), result);
+        }
+        return result;
+    }
+
+    TBlobsCategories BuildStoreCategories(const THashSet& blobIds) const {
+        TBlobsCategories result(SelfTabletId);
+        for (auto&& i : blobIds) {
+            auto* tabletIds = SharedBlobIds.Find(i);
+            auto it = BorrowedBlobIds.find(i);
+            bool borrowed = false;
+            bool direct = false;
+            bool shared = false;
+            if (it != BorrowedBlobIds.end()) {
+                result.AddBorrowed(it->second, i);
+                borrowed = true;
+            } else if (!tabletIds) {
+                result.AddDirect(SelfTabletId, i);
+                direct = true;
+            }
+            if (tabletIds) {
+                for (auto&& t : *tabletIds) {
+                    result.AddSharing(t, i);
+                    shared = true;
+                }
+            }
+            AFL_VERIFY((borrowed ? 1 : 0) + (direct ? 1 : 0) + (shared ? 1 : 0) == 1)("b", borrowed)("d", direct)("s", shared);
+        }
+        return result;
+    }
+
+    void RemoveSharedBlobsDB(NTabletFlatExecutor::TTransactionContext& txc, const TTabletsByBlob& blobIds);
+
+    void RemoveSharedBlobs(const TTabletsByBlob& blobIds) {
+        for (auto i = blobIds.GetIterator(); i.IsValid(); ++i) {
+            AFL_VERIFY(SharedBlobIds.Remove(i.GetTabletId(), i.GetBlobId()));
+        }
+    }
+
+    void WriteSharedBlobsDB(NTabletFlatExecutor::TTransactionContext& txc, const TTabletsByBlob& blobIds);
+
+    [[nodiscard]] bool AddSharedBlobs(const TTabletsByBlob& blobIds) {
+        bool result = true;
+        for (auto i = blobIds.GetIterator(); i.IsValid(); ++i) {
+            if (!SharedBlobIds.Add(i.GetTabletId(), i.GetBlobId())) {
+                result = false;
+            }
+        }
+        return result;
+    }
+
+    void WriteBorrowedBlobsDB(NTabletFlatExecutor::TTransactionContext& txc, const TTabletByBlob& blobIds);
+
+    void AddBorrowedBlobs(const TTabletByBlob& blobIds) {
+        for (auto&& i : blobIds) {
+            auto infoInsert = BorrowedBlobIds.emplace(i.first, i.second);
+            if (!infoInsert.second) {
+                AFL_VERIFY(infoInsert.first->second == i.second)("before", infoInsert.first->second)("after", i.second);
+            }
+        }
+    }
+
+    void CASBorrowedBlobsDB(NTabletFlatExecutor::TTransactionContext& txc, const TTabletId tabletIdFrom, const TTabletId tabletIdTo, const THashSet& blobIds);
+
+    void CASBorrowedBlobs(const TTabletId tabletIdFrom, const TTabletId tabletIdTo, const THashSet& blobIds) {
+        for (auto&& i : blobIds) {
+            auto it = BorrowedBlobIds.find(i);
+            AFL_VERIFY(it != BorrowedBlobIds.end());
+            AFL_VERIFY(it->second == tabletIdFrom || it->second == tabletIdTo);
+            if (it->second == SelfTabletId) {
+                BorrowedBlobIds.erase(it);
+            } else {
+                it->second = tabletIdTo;
+            }
+        }
+    }
+
+    [[nodiscard]] bool UpsertSharedBlobOnLoad(const TUnifiedBlobId& blobId, const TTabletId tabletId) {
+        return SharedBlobIds.Add(tabletId, blobId);
+    }
+
+    [[nodiscard]] bool UpsertBorrowedBlobOnLoad(const TUnifiedBlobId& blobId, const TTabletId ownerTabletId) {
+        return BorrowedBlobIds.emplace(blobId, ownerTabletId).second;
+    }
+
+    void Clear() {
+        SharedBlobIds.Clear();
+        BorrowedBlobIds.clear();
+    }
+
+    void OnTransactionExecuteAfterCleaning(const TBlobsCategories& removeTask, NTable::TDatabase& db);
+    void OnTransactionCompleteAfterCleaning(const TBlobsCategories& removeTask);
+};
+
+class TSharedBlobsManager {
+private:
+    const TTabletId SelfTabletId;
+    THashMap> Storages;
+public:
+    TSharedBlobsManager(const TTabletId tabletId)
+        : SelfTabletId(tabletId)
+    {
+
+    }
+
+    bool IsTrivialLinks() const {
+        for (auto&& i : Storages) {
+            if (!i.second->IsTrivialLinks()) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    THashMap GetBlobCategories() const {
+        THashMap result;
+        for (auto&& i : Storages) {
+            result.emplace(i.first, i.second->GetBlobCategories());
+        }
+        return result;
+    }
+
+    TTabletId GetSelfTabletId() const {
+        return SelfTabletId;
+    }
+
+    void WriteSharedBlobsDB(NTabletFlatExecutor::TTransactionContext& txc, const THashMap& blobIds) {
+        for (auto&& i : blobIds) {
+            GetStorageManagerGuarantee(i.first)->WriteSharedBlobsDB(txc, i.second);
+        }
+    }
+
+    void AddSharingBlobs(const THashMap& blobIds) {
+        for (auto&& i : blobIds) {
+            Y_UNUSED(GetStorageManagerGuarantee(i.first)->AddSharedBlobs(i.second));
+        }
+    }
+
+    void WriteBorrowedBlobsDB(NTabletFlatExecutor::TTransactionContext& txc, const THashMap& blobIds) {
+        for (auto&& i : blobIds) {
+            GetStorageManagerGuarantee(i.first)->WriteBorrowedBlobsDB(txc, i.second);
+        }
+    }
+
+    void AddBorrowedBlobs(const THashMap& blobIds) {
+        for (auto&& i : blobIds) {
+            GetStorageManagerGuarantee(i.first)->AddBorrowedBlobs(i.second);
+        }
+    }
+
+    std::shared_ptr GetStorageManagerOptional(const TString& storageId) const {
+        auto it = Storages.find(storageId);
+        if (it == Storages.end()) {
+            return nullptr;
+        }
+        return it->second;
+    }
+
+    std::shared_ptr GetStorageManagerVerified(const TString& storageId) const {
+        auto it = Storages.find(storageId);
+        AFL_VERIFY(it != Storages.end())("storage_id", storageId);
+        return it->second;
+    }
+
+    std::shared_ptr GetStorageManagerGuarantee(const TString& storageId) {
+        auto it = Storages.find(storageId);
+        if (it == Storages.end()) {
+            it = Storages.emplace(storageId, std::make_shared(storageId, SelfTabletId)).first;
+        }
+        return it->second;
+    }
+
+    bool LoadIdempotency(NTable::TDatabase& database);
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/manager/ya.make b/ydb/core/tx/columnshard/data_sharing/manager/ya.make
new file mode 100644
index 000000000000..e26356c94a55
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/manager/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+    sessions.cpp
+    shared_blobs.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/source/session
+    ydb/core/tx/columnshard/data_sharing/destination/session
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/modification/events/change_owning.cpp b/ydb/core/tx/columnshard/data_sharing/modification/events/change_owning.cpp
new file mode 100644
index 000000000000..849fa635eac3
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/modification/events/change_owning.cpp
@@ -0,0 +1,13 @@
+#include "change_owning.h"
+#include 
+
+namespace NKikimr::NOlap::NDataSharing::NEvents {
+
+TEvApplyLinksModification::TEvApplyLinksModification(const TTabletId initiatorTabletId, const TString& sessionId, const ui64 packIdx, const TTaskForTablet& task) {
+    Record.SetInitiatorTabletId((ui64)initiatorTabletId);
+    Record.SetSessionId(sessionId);
+    Record.SetPackIdx(packIdx);
+    *Record.MutableTask() = task.SerializeToProto();
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/modification/events/change_owning.h b/ydb/core/tx/columnshard/data_sharing/modification/events/change_owning.h
new file mode 100644
index 000000000000..5ed6f02d62d4
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/modification/events/change_owning.h
@@ -0,0 +1,30 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+class TTaskForTablet;
+}
+
+namespace NKikimr::NOlap::NDataSharing::NEvents {
+
+struct TEvApplyLinksModification: public NActors::TEventPB {
+    TEvApplyLinksModification() = default;
+
+    TEvApplyLinksModification(const TTabletId initiatorTabletId, const TString& sessionId, const ui64 packIdx, const TTaskForTablet& task);
+};
+
+struct TEvApplyLinksModificationFinished: public NActors::TEventPB {
+    TEvApplyLinksModificationFinished() = default;
+    TEvApplyLinksModificationFinished(const TTabletId modifiedTabletId, const TString& sessionId, const ui64 packIdx) {
+        Record.SetSessionId(sessionId);
+        Record.SetModifiedTabletId((ui64)modifiedTabletId);
+        Record.SetPackIdx(packIdx);
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/modification/events/ya.make b/ydb/core/tx/columnshard/data_sharing/modification/events/ya.make
new file mode 100644
index 000000000000..0b800c5b7d67
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/modification/events/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+    change_owning.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/blobs_action/protos
+    ydb/core/tx/columnshard/data_sharing/protos
+    ydb/library/actors/core
+    ydb/core/tx/datashard
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/modification/tasks/modification.cpp b/ydb/core/tx/columnshard/data_sharing/modification/tasks/modification.cpp
new file mode 100644
index 000000000000..3633406093f1
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/modification/tasks/modification.cpp
@@ -0,0 +1,43 @@
+#include "modification.h"
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+NKikimr::TConclusion> TTaskForTablet::BuildModificationTransaction(NColumnShard::TColumnShard* self, const TTabletId initiator, const TString& sessionId, const ui64 packIdx, const std::shared_ptr& selfPtr) {
+    return std::unique_ptr(new TTxApplyLinksModification(self, selfPtr, sessionId, initiator, packIdx));
+}
+
+void TTaskForTablet::ApplyForDB(NTabletFlatExecutor::TTransactionContext& txc, const std::shared_ptr& manager) const {
+    for (auto&& i : TasksByStorage) {
+        auto storageManager = manager->GetStorageManagerVerified(i.first);
+        i.second.ApplyForDB(txc, storageManager);
+    }
+}
+
+void TTaskForTablet::ApplyForRuntime(const std::shared_ptr& manager) const {
+    for (auto&& i : TasksByStorage) {
+        auto storageManager = manager->GetStorageManagerVerified(i.first);
+        i.second.ApplyForRuntime(storageManager);
+    }
+}
+
+void TStorageTabletTask::ApplyForDB(NTabletFlatExecutor::TTransactionContext& txc, const std::shared_ptr& manager) const {
+    for (auto&& i : RemapOwner) {
+        manager->CASBorrowedBlobsDB(txc, i.second.GetFrom(), i.second.GetTo(), {i.first});
+    }
+    manager->WriteBorrowedBlobsDB(txc, InitOwner);
+    manager->WriteSharedBlobsDB(txc, AddSharingLinks);
+    manager->RemoveSharedBlobsDB(txc, RemoveSharingLinks);
+}
+
+void TStorageTabletTask::ApplyForRuntime(const std::shared_ptr& manager) const {
+    for (auto&& i : RemapOwner) {
+        manager->CASBorrowedBlobs(i.second.GetFrom(), i.second.GetTo(), {i.first});
+    }
+    manager->AddBorrowedBlobs(InitOwner);
+    Y_UNUSED(manager->AddSharedBlobs(AddSharingLinks));
+    manager->RemoveSharedBlobs(RemoveSharingLinks);
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/modification/tasks/modification.h b/ydb/core/tx/columnshard/data_sharing/modification/tasks/modification.h
new file mode 100644
index 000000000000..4f5de2c0b38b
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/modification/tasks/modification.h
@@ -0,0 +1,364 @@
+#pragma once
+#include 
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NColumnShard {
+class TColumnShard;
+}
+
+namespace NKikimr::NOlap {
+class TColumnEngineForLogs;
+}
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TStorageSharedBlobsManager;
+class TSharedBlobsManager;
+
+namespace NEvents {
+class TPathIdData;
+}
+
+class TBlobOwnerRemap {
+private:
+    YDB_READONLY_DEF(TTabletId, From);
+    YDB_READONLY_DEF(TTabletId, To);
+public:
+    TBlobOwnerRemap(const TTabletId from, const TTabletId to)
+        : From(from)
+        , To(to) {
+
+    }
+
+    bool operator==(const TBlobOwnerRemap& item) const {
+        return From == item.From && To == item.To;
+    }
+};
+
+class TStorageTabletTask {
+private:
+    TTabletId TabletId;
+    TString StorageId;
+    THashMap RemapOwner;
+    TTabletByBlob InitOwner;
+    TTabletsByBlob AddSharingLinks;
+    TTabletsByBlob RemoveSharingLinks;
+public:
+    TStorageTabletTask(const TString& storageId, const TTabletId tabletId)
+        : TabletId(tabletId)
+        , StorageId(storageId) {
+
+    }
+
+    NKikimrColumnShardDataSharingProto::TStorageTabletTask SerializeToProto() const {
+        NKikimrColumnShardDataSharingProto::TStorageTabletTask result;
+        result.SetTabletId((ui64)TabletId);
+        result.SetStorageId(StorageId);
+        *result.MutableInitOwner() = InitOwner.SerializeToProto();
+        *result.MutableAddSharingLinks() = AddSharingLinks.SerializeToProto();
+        *result.MutableRemoveSharingLinks() = RemoveSharingLinks.SerializeToProto();
+
+        for (auto&& i : RemapOwner) {
+            auto* remapProto = result.AddRemapOwner();
+            remapProto->SetBlobId(i.first.ToStringNew());
+            remapProto->SetFrom((ui64)i.second.GetFrom());
+            remapProto->SetTo((ui64)i.second.GetTo());
+        }
+
+        return result;
+    }
+
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TStorageTabletTask& proto) {
+        StorageId = proto.GetStorageId();
+        if (!StorageId) {
+            return TConclusionStatus::Fail("empty storage id");
+        }
+        TabletId = (TTabletId)proto.GetTabletId();
+        if (!(ui64)TabletId) {
+            return TConclusionStatus::Fail("empty tablet id for storage task");
+        }
+        {
+            auto parse = InitOwner.DeserializeFromProto(proto.GetInitOwner());
+            if (!parse) {
+                return parse;
+            }
+        }
+        {
+            auto parse = AddSharingLinks.DeserializeFromProto(proto.GetAddSharingLinks());
+            if (!parse) {
+                return parse;
+            }
+        }
+        {
+            auto parse = RemoveSharingLinks.DeserializeFromProto(proto.GetRemoveSharingLinks());
+            if (!parse) {
+                return parse;
+            }
+        }
+        for (auto&& i : proto.GetRemapOwner()) {
+            auto parse = TUnifiedBlobId::BuildFromString(i.GetBlobId(), nullptr);
+            if (!parse) {
+                return parse;
+            }
+            RemapOwner.emplace(*parse, TBlobOwnerRemap((TTabletId)i.GetFrom(), (TTabletId)i.GetTo()));
+        }
+        return TConclusionStatus::Success();
+    }
+
+    void ApplyForDB(NTabletFlatExecutor::TTransactionContext& txc, const std::shared_ptr& manager) const;
+
+    void ApplyForRuntime(const std::shared_ptr& manager) const;
+
+    const TString GetStorageId() const {
+        return StorageId;
+    }
+
+    void AddRemapOwner(const TUnifiedBlobId& blobId, const TTabletId from, const TTabletId to) {
+//        AFL_VERIFY(to != TabletId);
+        AFL_VERIFY(RemapOwner.emplace(blobId, TBlobOwnerRemap(from, to)).second);
+    }
+
+    void AddInitOwner(const TUnifiedBlobId& blobId, const TTabletId to) {
+//        AFL_VERIFY(to != TabletId);
+        AFL_VERIFY(InitOwner->emplace(blobId, to).second);
+    }
+
+    void AddLink(const TUnifiedBlobId& blobId, const TTabletId tabletId) {
+//        AFL_VERIFY(tabletId != TabletId);
+        AFL_VERIFY(AddSharingLinks.Add(tabletId, blobId));
+    }
+
+    void RemoveLink(const TUnifiedBlobId& blobId, const TTabletId tabletId) {
+        AFL_VERIFY(RemoveSharingLinks.Add(tabletId, blobId));
+    }
+
+    void Merge(const TStorageTabletTask& from) {
+        AFL_VERIFY(TabletId == from.TabletId);
+        for (auto&& i : from.InitOwner) {
+            auto info = InitOwner->emplace(i.first, i.second);
+            if (!info.second) {
+                AFL_VERIFY(info.first->second == i.second);
+            }
+        }
+        for (auto&& i : from.RemapOwner) {
+            auto info = RemapOwner.emplace(i.first, i.second);
+            if (!info.second) {
+                AFL_VERIFY(info.first->second == i.second);
+            }
+        }
+        AddSharingLinks.Add(from.AddSharingLinks);
+        RemoveSharingLinks.Add(from.RemoveSharingLinks);
+    }
+};
+
+class TTaskForTablet {
+private:
+    YDB_READONLY(TTabletId, TabletId, (TTabletId)0);
+    THashMap TasksByStorage;
+public:
+    TTaskForTablet(const TTabletId tabletId)
+        : TabletId(tabletId) 
+    {
+    }
+
+    void Merge(const TTaskForTablet& from) {
+        for (auto&& i : from.TasksByStorage) {
+            auto it = TasksByStorage.find(i.first);
+            if (it == TasksByStorage.end()) {
+                TasksByStorage.emplace(i.first, i.second);
+            } else {
+                it->second.Merge(i.second);
+            }
+        }
+    }
+
+    void ApplyForDB(NTabletFlatExecutor::TTransactionContext& txc, const std::shared_ptr& manager) const;
+
+    void ApplyForRuntime(const std::shared_ptr& manager) const;
+
+    void AddStorage(TStorageTabletTask&& info) {
+        auto storageId = info.GetStorageId();
+        TasksByStorage.emplace(storageId, std::move(info));
+    }
+
+    const TStorageTabletTask* GetStorageTasksOptional(const TString& storageId) const {
+        auto it = TasksByStorage.find(storageId);
+        if (it == TasksByStorage.end()) {
+            return nullptr;
+        }
+        return &it->second;
+    }
+
+    const TStorageTabletTask& GetStorageTasksGuarantee(const TString& storageId) {
+        auto it = TasksByStorage.find(storageId);
+        if (it == TasksByStorage.end()) {
+            it = TasksByStorage.emplace(storageId, TStorageTabletTask(storageId, TabletId)).first;
+        }
+        return it->second;
+    }
+
+    NKikimrColumnShardDataSharingProto::TTaskForTablet SerializeToProto() const {
+        NKikimrColumnShardDataSharingProto::TTaskForTablet result;
+        for (auto&& i : TasksByStorage) {
+            *result.AddTasksByStorage() = i.second.SerializeToProto();
+        }
+        return result;
+    }
+
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TTaskForTablet& proto) {
+        for (auto&& i : proto.GetTasksByStorage()) {
+            TStorageTabletTask sTask("", TTabletId(0));
+            auto parse = sTask.DeserializeFromProto(i);
+            if (!parse) {
+                return parse;
+            }
+            const TString storageId = sTask.GetStorageId();
+            AFL_VERIFY(TasksByStorage.emplace(storageId, std::move(sTask)).second);
+        }
+        return TConclusionStatus::Success();
+    }
+
+    TConclusion> BuildModificationTransaction(NColumnShard::TColumnShard* self, const TTabletId initiator,
+        const TString& sessionId, const ui64 packIdx, const std::shared_ptr& selfPtr);
+
+};
+
+class TBlobSharing {
+private:
+    const TString StorageId;
+    TUnifiedBlobId BlobId;
+    std::optional Borrowed;
+    THashSet Shared;
+public:
+    TBlobSharing(const TString& storageId, const TUnifiedBlobId& blobId)
+        : StorageId(storageId)
+        , BlobId(blobId)
+    {
+
+    }
+    void AddShared(const TTabletId tabletId) {
+        AFL_VERIFY(Shared.emplace(tabletId).second);
+    }
+    void AddBorrowed(const TTabletId tabletId) {
+        AFL_VERIFY(!Borrowed);
+        Borrowed = tabletId;
+    }
+
+    THashMap BuildTabletTasksOnCopy(const TTransferContext& context, const TTabletId selfTabletId, const TString& storageId) const {
+        auto toTabletId = context.GetDestinationTabletId();
+        THashMap result;
+        const TTabletId ownerTabletId = Borrowed.value_or(selfTabletId);
+        if (Borrowed) {
+            AFL_VERIFY(Shared.empty());
+        }
+        if (ownerTabletId != toTabletId) {
+            {
+                TStorageTabletTask task(storageId, ownerTabletId);
+                task.AddLink(BlobId, toTabletId);
+                task.AddLink(BlobId, selfTabletId);
+                AFL_VERIFY(result.emplace(ownerTabletId, std::move(task)).second);
+            }
+            {
+                TStorageTabletTask task(storageId, toTabletId);
+                task.AddInitOwner(BlobId, ownerTabletId);
+                AFL_VERIFY(result.emplace(toTabletId, std::move(task)).second);
+            }
+        }
+        return result;
+    }
+
+    THashMap BuildTabletTasksOnMove(const TTransferContext& context, const TTabletId selfTabletId, const TString& storageId) const {
+        THashMap result;
+        auto& movedTabletId = context.GetSourceTabletIds();
+        auto toTabletId = context.GetDestinationTabletId();
+        if (Borrowed) {
+            AFL_VERIFY(Shared.empty());
+            if (movedTabletId.contains(*Borrowed)) {
+                {
+                    TStorageTabletTask task(storageId, toTabletId);
+                    task.AddLink(BlobId, selfTabletId);
+                    task.AddLink(BlobId, toTabletId);
+                    AFL_VERIFY(result.emplace(toTabletId, std::move(task)).second);
+                }
+                {
+                    TStorageTabletTask task(storageId, selfTabletId);
+                    task.AddRemapOwner(BlobId, *Borrowed, toTabletId);
+                    AFL_VERIFY(result.emplace(selfTabletId, std::move(task)).second);
+                }
+                {
+                    TStorageTabletTask task(storageId, *Borrowed);
+                    task.RemoveLink(BlobId, selfTabletId);
+                    AFL_VERIFY(result.emplace(*Borrowed, std::move(task)).second);
+                }
+            } else if (toTabletId == *Borrowed) {
+            } else {
+                {
+                    TStorageTabletTask task(storageId, *Borrowed);
+                    task.AddLink(BlobId, toTabletId);
+                    AFL_VERIFY(result.emplace(*Borrowed, std::move(task)).second);
+                }
+                {
+                    TStorageTabletTask task(storageId, toTabletId);
+                    task.AddInitOwner(BlobId, *Borrowed);
+                    AFL_VERIFY(result.emplace(toTabletId, std::move(task)).second);
+                }
+            }
+        } else {
+            for (auto&& i : Shared) {
+                if (movedTabletId.contains(i) && i != selfTabletId) {
+                    continue;
+                }
+
+                if (i != selfTabletId) {
+                    TStorageTabletTask task(StorageId, i);
+                    task.AddRemapOwner(BlobId, selfTabletId, toTabletId);
+                    AFL_VERIFY(result.emplace(i, std::move(task)).second);
+                }
+
+                {
+                    TStorageTabletTask task(StorageId, selfTabletId);
+                    task.RemoveLink(BlobId, i);
+                    auto info = result.emplace(selfTabletId, task);
+                    if (!info.second) {
+                        info.first->second.Merge(task);
+                    }
+                }
+
+                {
+                    TStorageTabletTask task(StorageId, toTabletId);
+                    task.AddLink(BlobId, i);
+                    auto info = result.emplace(toTabletId, task);
+                    if (!info.second) {
+                        info.first->second.Merge(task);
+                    }
+                }
+            }
+            {
+                TStorageTabletTask task(storageId, toTabletId);
+                task.AddLink(BlobId, selfTabletId);
+                task.AddLink(BlobId, toTabletId);
+                auto info = result.emplace(toTabletId, task);
+                if (!info.second) {
+                    info.first->second.Merge(task);
+                }
+            }
+            {
+                TStorageTabletTask task(storageId, selfTabletId);
+                task.AddInitOwner(BlobId, toTabletId);
+                auto info = result.emplace(selfTabletId, task);
+                if (!info.second) {
+                    info.first->second.Merge(task);
+                }
+            }
+        }
+        return result;
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/modification/tasks/ya.make b/ydb/core/tx/columnshard/data_sharing/modification/tasks/ya.make
new file mode 100644
index 000000000000..f42b0f0c234e
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/modification/tasks/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+    modification.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/initiator/controller
+    ydb/core/tx/columnshard/data_sharing/common/session
+    ydb/core/tx/columnshard/data_sharing/common/transactions
+    ydb/core/tx/columnshard/data_sharing/destination/transactions
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/modification/transactions/tx_change_blobs_owning.cpp b/ydb/core/tx/columnshard/data_sharing/modification/transactions/tx_change_blobs_owning.cpp
new file mode 100644
index 000000000000..d10cac2c1e6b
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/modification/transactions/tx_change_blobs_owning.cpp
@@ -0,0 +1,22 @@
+#include "tx_change_blobs_owning.h"
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+bool TTxApplyLinksModification::DoExecute(TTransactionContext& txc, const TActorContext&) {
+    NActors::TLogContextGuard logGuard = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", Self->TabletID())("tx_state", "execute");
+    Task->ApplyForDB(txc, Self->GetStoragesManager()->GetSharedBlobsManager());
+    return true;
+}
+
+void TTxApplyLinksModification::DoComplete(const TActorContext& /*ctx*/) {
+    NActors::TLogContextGuard logGuard = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", Self->TabletID())("tx_state", "complete");
+    Task->ApplyForRuntime(Self->GetStoragesManager()->GetSharedBlobsManager());
+
+    auto ev = std::make_unique(Task->GetTabletId(), SessionId, PackIdx);
+    NActors::TActivationContext::AsActorContext().Send(MakePipePeNodeCacheID(false),
+        new TEvPipeCache::TEvForward(ev.release(), (ui64)InitiatorTabletId, true), IEventHandle::FlagTrackDelivery);
+}
+
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/modification/transactions/tx_change_blobs_owning.h b/ydb/core/tx/columnshard/data_sharing/modification/transactions/tx_change_blobs_owning.h
new file mode 100644
index 000000000000..d32ae4504563
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/modification/transactions/tx_change_blobs_owning.h
@@ -0,0 +1,34 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TTaskForTablet;
+
+class TTxApplyLinksModification: public TExtendedTransactionBase {
+private:
+    using TBase = TExtendedTransactionBase;
+    std::shared_ptr Task;
+    const TTabletId InitiatorTabletId;
+    const TString SessionId;
+    const ui64 PackIdx;
+    bool DoExecute(TTransactionContext& txc, const TActorContext& ctx) override;
+    void DoComplete(const TActorContext& ctx) override;
+public:
+    TTxApplyLinksModification(NColumnShard::TColumnShard* self, const std::shared_ptr& task, const TString& sessionId, const TTabletId initiatorTabletId, const ui64 packIdx)
+        : TBase(self)
+        , Task(task)
+        , InitiatorTabletId(initiatorTabletId)
+        , SessionId(sessionId)
+        , PackIdx(packIdx)
+    {
+        AFL_VERIFY(!!Task);
+    }
+
+    TTxType GetTxType() const override { return NColumnShard::TXTYPE_DATA_SHARING_APPLY_LINKS_MODIFICATION; }
+};
+
+
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/modification/transactions/ya.make b/ydb/core/tx/columnshard/data_sharing/modification/transactions/ya.make
new file mode 100644
index 000000000000..39afa046110c
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/modification/transactions/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+SRCS(
+    tx_change_blobs_owning.cpp
+)
+
+PEERDIR(
+    ydb/core/tablet_flat
+    ydb/core/tx/tiering
+    ydb/services/metadata/abstract
+    ydb/core/tx/columnshard/data_sharing/protos
+    ydb/core/tx/columnshard/blobs_action/protos
+    ydb/core/base
+    ydb/core/tx/tiering
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/modification/ya.make b/ydb/core/tx/columnshard/data_sharing/modification/ya.make
new file mode 100644
index 000000000000..81c688ef432e
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/modification/ya.make
@@ -0,0 +1,9 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/modification/tasks
+    ydb/core/tx/columnshard/data_sharing/modification/transactions
+    ydb/core/tx/columnshard/data_sharing/modification/events
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/protos/data.proto b/ydb/core/tx/columnshard/data_sharing/protos/data.proto
new file mode 100644
index 000000000000..f59d6e7b3d7d
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/protos/data.proto
@@ -0,0 +1,41 @@
+import "ydb/core/tx/columnshard/common/protos/blob_range.proto";
+import "ydb/core/tx/columnshard/common/protos/snapshot.proto";
+import "ydb/core/protos/tx_columnshard.proto";
+
+package NKikimrColumnShardDataSharingProto;
+
+message TColumnRecord {
+    optional uint32 ColumnId = 1;
+    optional uint32 ChunkIdx = 2;
+    optional NKikimrColumnShardProto.TBlobRangeLink16 BlobRange = 3;
+    optional NKikimrTxColumnShard.TIndexColumnMeta Meta = 4;
+}
+
+message TIndexChunk {
+    optional uint32 IndexId = 1;
+    optional uint32 ChunkIdx = 2;
+    optional NKikimrColumnShardProto.TBlobRangeLink16 BlobRange = 3;
+
+    message TMeta {
+        optional uint32 RecordsCount = 1;
+        optional uint32 RawBytes = 2;
+    }
+    optional TMeta Meta = 4;
+}
+
+message TPortionInfo {
+    optional uint64 PathId = 1;
+    optional uint64 PortionId = 2;
+    optional NKikimrColumnShardProto.TSnapshot MinSnapshotDeprecated = 3;
+    optional NKikimrColumnShardProto.TSnapshot RemoveSnapshot = 4;
+    optional NKikimrTxColumnShard.TIndexPortionMeta Meta = 5;
+    repeated TColumnRecord Records = 6;
+    repeated TIndexChunk Indexes = 7;
+    repeated NKikimrColumnShardProto.TUnifiedBlobId BlobIds = 8;
+    optional uint64 SchemaVersion = 9;
+}
+
+message TPathIdData {
+    optional uint64 PathId = 1;
+    repeated TPortionInfo Portions = 2;
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/protos/events.proto b/ydb/core/tx/columnshard/data_sharing/protos/events.proto
new file mode 100644
index 000000000000..7f60cea111e0
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/protos/events.proto
@@ -0,0 +1,67 @@
+import "ydb/library/actors/protos/actors.proto";
+import "ydb/core/tx/columnshard/data_sharing/protos/links.proto";
+import "ydb/core/tx/columnshard/data_sharing/protos/data.proto";
+import "ydb/core/tx/columnshard/data_sharing/protos/sessions.proto";
+import "ydb/core/tx/columnshard/data_sharing/protos/initiator.proto";
+
+package NKikimrColumnShardDataSharingProto;
+
+message TEvProposeFromInitiator {
+    optional TDestinationSession Session = 1;
+}
+
+message TEvConfirmFromInitiator {
+    optional string SessionId = 1;
+}
+
+message TEvAckFinishFromInitiator {
+    optional string SessionId = 1;
+}
+
+message TEvStartToSource {
+    optional TSourceSession Session = 1;
+}
+
+message TEvSendDataFromSource {
+    optional string SessionId = 1;
+    optional uint64 PackIdx = 2;
+    repeated TPathIdData PathIdData = 3;
+    optional uint64 SourceTabletId = 4;
+}
+
+message TEvAckDataToSource {
+    optional uint64 PackIdx = 1;
+    optional string SessionId = 2;
+}
+
+message TEvFinishedFromSource {
+    optional string SessionId = 1;
+    optional uint64 SourceTabletId = 2;
+}
+
+message TEvAckFinishToSource {
+    optional string SessionId = 1;
+}
+
+message TEvCheckStatusFromInitiator {
+    optional string SessionId = 1;
+}
+
+message TEvCheckStatusResult {
+    optional string ClassName = 1;
+    optional string SessionId = 2;
+    optional TInitiator.TStatus Status = 3;
+}
+
+message TEvApplyLinksModification {
+    optional uint64 InitiatorTabletId = 1;
+    optional string SessionId = 2;
+    optional uint64 PackIdx = 3;
+    optional TTaskForTablet Task = 4;
+}
+
+message TEvApplyLinksModificationFinished {
+    optional uint64 ModifiedTabletId = 1;
+    optional string SessionId = 2;
+    optional uint64 PackIdx = 3;
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/protos/initiator.proto b/ydb/core/tx/columnshard/data_sharing/protos/initiator.proto
new file mode 100644
index 000000000000..8f84e125473c
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/protos/initiator.proto
@@ -0,0 +1,38 @@
+package NKikimrColumnShardDataSharingProto;
+
+message TInitiator {
+    message TController {
+        optional string ClassName = 1;
+
+        message TTest {
+        }
+
+        oneof Implementation {
+            TTest Test = 40;
+        }
+    }
+
+    message TStatus {
+        message TInProgress {
+            optional uint32 PortionsCount = 1;
+            optional uint32 PortionsReady = 2;
+        }
+
+        message TStartFailed {
+            optional string ErrorMessage = 1;
+        }
+
+        message TNotFound {
+            optional string ErrorMessage = 1;
+        }
+
+        optional string ClassName = 1;
+        optional string SessionId = 2;
+
+        oneof Implementation {
+            TInProgress InProgress = 40;
+            TStartFailed StartFailed = 41;
+            TNotFound NotFound = 42;
+        }
+    }
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/protos/links.proto b/ydb/core/tx/columnshard/data_sharing/protos/links.proto
new file mode 100644
index 000000000000..26dee494fbc0
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/protos/links.proto
@@ -0,0 +1,23 @@
+import "ydb/core/tx/columnshard/blobs_action/protos/blobs.proto";
+
+package NKikimrColumnShardDataSharingProto;
+
+message TBlobOwnerRemap {
+    optional string BlobId = 1;
+    optional uint64 From = 2;
+    optional uint64 To = 3;
+}
+
+message TStorageTabletTask {
+    optional uint64 TabletId = 1;
+    optional string StorageId = 2;
+    repeated TBlobOwnerRemap RemapOwner = 3;
+    optional NKikimrColumnShardBlobOperationsProto.TTabletByBlob InitOwner = 4;
+    optional NKikimrColumnShardBlobOperationsProto.TTabletsByBlob AddSharingLinks= 5;
+    optional NKikimrColumnShardBlobOperationsProto.TTabletsByBlob RemoveSharingLinks = 6;
+}
+
+message TTaskForTablet {
+    optional uint64 TabletId = 1;
+    repeated TStorageTabletTask TasksByStorage = 2;
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/protos/sessions.proto b/ydb/core/tx/columnshard/data_sharing/protos/sessions.proto
new file mode 100644
index 000000000000..9ae73bf26138
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/protos/sessions.proto
@@ -0,0 +1,59 @@
+package NKikimrColumnShardDataSharingProto;
+
+import "ydb/core/tx/columnshard/common/protos/snapshot.proto";
+import "ydb/core/tx/columnshard/data_sharing/protos/initiator.proto";
+
+message TDestinationRemapIds {
+    optional uint64 SourcePathId = 1;
+    optional uint64 DestPathId = 2;
+}
+
+message TTransferContext {
+    optional uint64 DestinationTabletId = 1;
+    repeated uint64 SourceTabletIds = 2;
+    optional bool Moving = 3[default = false];
+    optional NKikimrColumnShardProto.TSnapshot SnapshotBarrier = 4;
+}
+
+message TDestinationSession {
+    optional string SessionId = 1;
+    repeated TDestinationRemapIds PathIds = 3;
+    optional TInitiator.TController InitiatorController = 4;
+    optional TTransferContext TransferContext = 5;
+
+    message TSourceCursor {
+        optional uint64 TabletId = 1;
+        optional uint64 PackIdx = 2;
+        optional bool Finished = 3;
+    }
+    message TFullCursor {
+        repeated TSourceCursor SourceCursors = 1;
+        optional bool ConfirmedFlag = 2 [default = false];
+    }
+}
+
+message TSourceSession {
+    optional string SessionId = 1;
+    repeated uint64 PathIds = 3;
+    optional uint64 DestinationTabletId = 4;
+    optional TTransferContext TransferContext = 5;
+
+    message TCursorDynamic {
+        optional uint64 StartPathId = 1;
+        optional uint64 StartPortionId = 2;
+        optional uint64 NextPathId = 3;
+        optional uint64 NextPortionId = 4;
+        optional uint32 PackIdx = 5;
+        optional uint32 AckReceivedForPackIdx = 6[default = 0];
+        repeated uint64 LinksModifiedTablets = 7;
+    }
+
+    message TPathPortionsHash {
+        optional uint64 PathId = 1;
+        optional string Hash = 2;
+    }
+
+    message TCursorStatic {
+        repeated TPathPortionsHash PathHashes = 7;
+    }
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/protos/transfer.proto b/ydb/core/tx/columnshard/data_sharing/protos/transfer.proto
new file mode 100644
index 000000000000..8d40ba1abfc1
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/protos/transfer.proto
@@ -0,0 +1,19 @@
+import "ydb/library/actors/protos/actors.proto";
+
+package NKikimrColumnShardDataSharingProto;
+
+message TEvSendDataFromSource {
+    optional NActorsProto.TActorId SourceActorId = 1;
+    optional string SharingId = 2;
+    repeated TPathIdData DataByPathId = 3;
+}
+
+message TEvAckDataToSource {
+    optional NActorsProto.TActorId DestActorId = 1;
+    optional string SharingId = 2;
+}
+
+message TEvFinishedFromSource {
+    optional NActorsProto.TActorId SourceActorId = 1;
+    optional string SharingId = 2;
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/protos/ya.make b/ydb/core/tx/columnshard/data_sharing/protos/ya.make
new file mode 100644
index 000000000000..f500be540e25
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/protos/ya.make
@@ -0,0 +1,19 @@
+PROTO_LIBRARY()
+
+SRCS(
+    data.proto
+    events.proto
+    sessions.proto
+    initiator.proto
+    links.proto
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/common/protos
+    ydb/library/actors/protos
+    ydb/core/tx/columnshard/blobs_action/protos
+    ydb/core/protos
+
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/source/events/control.cpp b/ydb/core/tx/columnshard/data_sharing/source/events/control.cpp
new file mode 100644
index 000000000000..d8decd48b8fd
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/events/control.cpp
@@ -0,0 +1,10 @@
+#include "control.h"
+#include 
+
+namespace NKikimr::NOlap::NDataSharing::NEvents {
+
+TEvStartToSource::TEvStartToSource(const TSourceSession& session) {
+    *Record.MutableSession() = session.SerializeDataToProto();
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/source/events/control.h b/ydb/core/tx/columnshard/data_sharing/source/events/control.h
new file mode 100644
index 000000000000..73438ac41ed8
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/events/control.h
@@ -0,0 +1,18 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+class TSourceSession;
+}
+
+namespace NKikimr::NOlap::NDataSharing::NEvents {
+
+struct TEvStartToSource: public NActors::TEventPB {
+    TEvStartToSource() = default;
+
+    TEvStartToSource(const TSourceSession& session);
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/source/events/transfer.cpp b/ydb/core/tx/columnshard/data_sharing/source/events/transfer.cpp
new file mode 100644
index 000000000000..8e3f7cc3864a
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/events/transfer.cpp
@@ -0,0 +1,5 @@
+#include "transfer.h"
+
+namespace NKikimr::NOlap::NDataSharing::NEvents {
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/source/events/transfer.h b/ydb/core/tx/columnshard/data_sharing/source/events/transfer.h
new file mode 100644
index 000000000000..e10dc1e43ada
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/events/transfer.h
@@ -0,0 +1,25 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing::NEvents {
+
+struct TEvAckDataToSource: public NActors::TEventPB {
+    TEvAckDataToSource() = default;
+
+    TEvAckDataToSource(const TString& sessionId, const ui32 packIdx) {
+        Record.SetSessionId(sessionId);
+        Record.SetPackIdx(packIdx);
+    }
+};
+
+struct TEvAckFinishToSource: public NActors::TEventPB {
+    TEvAckFinishToSource() = default;
+
+    TEvAckFinishToSource(const TString& sessionId) {
+        Record.SetSessionId(sessionId);
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/source/events/ya.make b/ydb/core/tx/columnshard/data_sharing/source/events/ya.make
new file mode 100644
index 000000000000..d9f1fb7017de
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/events/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+    transfer.cpp
+    control.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/source/session
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/source/session/cursor.cpp b/ydb/core/tx/columnshard/data_sharing/source/session/cursor.cpp
new file mode 100644
index 000000000000..1ca8fac2ace7
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/session/cursor.cpp
@@ -0,0 +1,181 @@
+#include "source.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+void TSourceCursor::BuildSelection(const std::shared_ptr& sharedBlobsManager, const TVersionedIndex& index) {
+    THashMap result;
+    auto itCurrentPath = PortionsForSend.find(StartPathId);
+    AFL_VERIFY(itCurrentPath != PortionsForSend.end());
+    auto itPortion = itCurrentPath->second.find(StartPortionId);
+    AFL_VERIFY(itPortion != itCurrentPath->second.end());
+    ui32 count = 0;
+    ui32 chunksCount = 0;
+    bool selectMore = true;
+    for (; itCurrentPath != PortionsForSend.end() && selectMore; ++itCurrentPath) {
+        std::vector portions;
+        for (; itPortion != itCurrentPath->second.end(); ++itPortion) {
+            selectMore = (count < 10000 && chunksCount < 1000000);
+            if (!selectMore) {
+                NextPathId = itCurrentPath->first;
+                NextPortionId = itPortion->first;
+            } else {
+                portions.emplace_back(*itPortion->second);
+                chunksCount += portions.back().GetRecords().size();
+                chunksCount += portions.back().GetIndexes().size();
+                ++count;
+            }
+        }
+        if (portions.size()) {
+            NEvents::TPathIdData pathIdDataCurrent(itCurrentPath->first, portions);
+            result.emplace(itCurrentPath->first, pathIdDataCurrent);
+        }
+    }
+    if (selectMore) {
+        AFL_VERIFY(!NextPathId);
+        AFL_VERIFY(!NextPortionId);
+    }
+
+    THashMap tabletTasksResult;
+
+    for (auto&& i : result) {
+        THashMap tabletTasks = i.second.BuildLinkTabletTasks(sharedBlobsManager, SelfTabletId, TransferContext, index);
+        for (auto&& t : tabletTasks) {
+            auto it = tabletTasksResult.find(t.first);
+            if (it == tabletTasksResult.end()) {
+                tabletTasksResult.emplace(t.first, std::move(t.second));
+            } else {
+                it->second.Merge(t.second);
+            }
+        }
+    }
+
+    std::swap(Links, tabletTasksResult);
+    std::swap(Selected, result);
+}
+
+bool TSourceCursor::Next(const std::shared_ptr& sharedBlobsManager, const TVersionedIndex& index) {
+    PreviousSelected = std::move(Selected);
+    LinksModifiedTablets.clear();
+    Selected.clear();
+    if (!NextPathId) {
+        AFL_VERIFY(!NextPortionId);
+        return false;
+    } else {
+        AFL_VERIFY(NextPortionId);
+    }
+    StartPathId = *NextPathId;
+    StartPortionId = *NextPortionId;
+    NextPathId = {};
+    NextPortionId = {};
+    ++PackIdx;
+    BuildSelection(sharedBlobsManager, index);
+    AFL_VERIFY(IsValid());
+    return true;
+}
+
+NKikimrColumnShardDataSharingProto::TSourceSession::TCursorDynamic TSourceCursor::SerializeDynamicToProto() const {
+    NKikimrColumnShardDataSharingProto::TSourceSession::TCursorDynamic result;
+    result.SetStartPathId(StartPathId);
+    result.SetStartPortionId(StartPortionId);
+    if (NextPathId) {
+        result.SetNextPathId(*NextPathId);
+    }
+    if (NextPortionId) {
+        result.SetNextPortionId(*NextPortionId);
+    }
+    result.SetPackIdx(PackIdx);
+    result.SetAckReceivedForPackIdx(AckReceivedForPackIdx);
+    for (auto&& t : LinksModifiedTablets) {
+        result.AddLinksModifiedTablets((ui64)t);
+    }
+    return result;
+}
+
+NKikimrColumnShardDataSharingProto::TSourceSession::TCursorStatic TSourceCursor::SerializeStaticToProto() const {
+    NKikimrColumnShardDataSharingProto::TSourceSession::TCursorStatic result;
+    for (auto&& i : PathPortionHashes) {
+        auto* pathHash = result.AddPathHashes();
+        pathHash->SetPathId(i.first);
+        pathHash->SetHash(i.second);
+    }
+    return result;
+}
+
+NKikimr::TConclusionStatus TSourceCursor::DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TSourceSession::TCursorDynamic& proto,
+    const NKikimrColumnShardDataSharingProto::TSourceSession::TCursorStatic& protoStatic) {
+    StartPathId = proto.GetStartPathId();
+    StartPortionId = proto.GetStartPortionId();
+    PackIdx = proto.GetPackIdx();
+    if (!PackIdx) {
+        return TConclusionStatus::Fail("Incorrect proto cursor PackIdx value: " + proto.DebugString());
+    }
+    if (proto.HasNextPathId()) {
+        AFL_VERIFY(proto.GetNextPathId() == *NextPathId)("next_local", *NextPathId)("proto", proto.GetNextPathId());
+    }
+    if (proto.HasNextPortionId()) {
+        AFL_VERIFY(proto.GetNextPortionId() == *NextPortionId)("next_local", *NextPortionId)("proto", proto.GetNextPortionId());
+    }
+    if (proto.HasAckReceivedForPackIdx()) {
+        AckReceivedForPackIdx = proto.GetAckReceivedForPackIdx();
+    } else {
+        AckReceivedForPackIdx = 0;
+    }
+    for (auto&& i : proto.GetLinksModifiedTablets()) {
+        LinksModifiedTablets.emplace((TTabletId)i);
+    }
+    for (auto&& i : protoStatic.GetPathHashes()) {
+        PathPortionHashes.emplace(i.GetPathId(), i.GetHash());
+    }
+    AFL_VERIFY(PathPortionHashes.size());
+    StaticSaved = true;
+    return TConclusionStatus::Success();
+}
+
+TSourceCursor::TSourceCursor(const TTabletId selfTabletId, const std::set& pathIds, const TTransferContext transferContext)
+    : SelfTabletId(selfTabletId)
+    , TransferContext(transferContext)
+    , PathIds(pathIds)
+{
+}
+
+bool TSourceCursor::Start(const std::shared_ptr& sharedBlobsManager, const THashMap>>& portions, const TVersionedIndex& index) {
+    AFL_VERIFY(!IsStartedFlag);
+    std::map>> local;
+    std::vector> portionsLock;
+    NArrow::NHash::NXX64::TStreamStringHashCalcer hashCalcer(0);
+    for (auto&& i : portions) {
+        hashCalcer.Start();
+        std::map> portionsMap;
+        for (auto&& p : i.second) {
+            const ui64 portionId = p->GetPortionId();
+            hashCalcer.Update((ui8*)&portionId, sizeof(portionId));
+            AFL_VERIFY(portionsMap.emplace(portionId, p).second);
+        }
+        auto it = PathPortionHashes.find(i.first);
+        const ui64 hash = hashCalcer.Finish();
+        if (it == PathPortionHashes.end()) {
+            PathPortionHashes.emplace(i.first, ::ToString(hash));
+        } else {
+            AFL_VERIFY(::ToString(hash) == it->second);
+        }
+        local.emplace(i.first, std::move(portionsMap));
+    }
+    std::swap(PortionsForSend, local);
+    if (!StartPathId) {
+        AFL_VERIFY(PortionsForSend.size());
+        AFL_VERIFY(PortionsForSend.begin()->second.size());
+
+        NextPathId = PortionsForSend.begin()->first;
+        NextPortionId = PortionsForSend.begin()->second.begin()->first;
+        AFL_VERIFY(Next(sharedBlobsManager, index));
+    } else {
+        BuildSelection(sharedBlobsManager, index);
+    }
+    IsStartedFlag = true;
+    return true;
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/source/session/cursor.h b/ydb/core/tx/columnshard/data_sharing/source/session/cursor.h
new file mode 100644
index 000000000000..7e527758bf0a
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/session/cursor.h
@@ -0,0 +1,108 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+class TColumnEngineForLogs;
+class TVersionedIndex;
+}
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TSharedBlobsManager;
+
+class TSourceCursor {
+private:
+    std::map>> PortionsForSend;
+    THashMap PreviousSelected;
+    THashMap Selected;
+    THashMap Links;
+    YDB_READONLY(ui64, StartPathId, 0);
+    YDB_READONLY(ui64, StartPortionId, 0);
+    YDB_READONLY(ui64, PackIdx, 0);
+    TTabletId SelfTabletId;
+    TTransferContext TransferContext;
+    std::optional NextPathId = 0;
+    std::optional NextPortionId = 0;
+    THashSet LinksModifiedTablets;
+    ui64 AckReceivedForPackIdx = 0;
+    std::set PathIds;
+    THashMap PathPortionHashes;
+    bool IsStartedFlag = false;
+    YDB_ACCESSOR(bool, StaticSaved, false);
+    void BuildSelection(const std::shared_ptr& sharedBlobsManager, const TVersionedIndex& index);
+public:
+    bool IsAckDataReceived() const {
+        return AckReceivedForPackIdx == PackIdx;
+    }
+
+    bool IsStarted() const {
+        return IsStartedFlag;
+    }
+
+    TConclusionStatus AckData(const ui64 packIdxReceived) {
+        AFL_VERIFY(packIdxReceived <= PackIdx);
+        if (packIdxReceived != PackIdx) {
+            return TConclusionStatus::Fail("incorrect packIdx received for AckData: " + ::ToString(packIdxReceived) + " but expected: " + ::ToString(PackIdx));
+        }
+        AckReceivedForPackIdx = packIdxReceived;
+        AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("event", "SourceAckData")("pack", PackIdx)("pack_ack", AckReceivedForPackIdx)("links_ready", LinksModifiedTablets.size())("links_waiting", Links.size());
+        return TConclusionStatus::Success();
+    }
+
+    TConclusionStatus AckLinks(const TTabletId tabletId, const ui64 packIdxReceived) {
+        if (packIdxReceived != PackIdx) {
+            return TConclusionStatus::Fail("incorrect packIdx received for AckLinks: " + ::ToString(packIdxReceived) + " but expected: " + ::ToString(PackIdx));
+        }
+        AFL_VERIFY(Links.contains(tabletId));
+        if (LinksModifiedTablets.emplace(tabletId).second) {
+            AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("event", "SourceAckData")("pack", PackIdx)("pack_ack", AckReceivedForPackIdx)("links_ready", LinksModifiedTablets.size())("links_waiting", Links.size());
+            return TConclusionStatus::Success();
+        } else {
+            return TConclusionStatus::Fail("AckLinks repeated table");
+        }
+    }
+
+    bool IsReadyForNext() const {
+        return AckReceivedForPackIdx == PackIdx && LinksModifiedTablets.size() == Links.size();
+    }
+
+    const THashSet& GetLinksModifiedTablets() const {
+        return LinksModifiedTablets;
+    }
+
+    void AddLinksModifiedTablet(const TTabletId tabletId) {
+        LinksModifiedTablets.emplace(tabletId);
+    }
+
+    const THashMap GetPreviousSelected() const {
+        return PreviousSelected;
+    }
+
+    const THashMap& GetSelected() const {
+        return Selected;
+    }
+
+    const THashMap& GetLinks() const {
+        return Links;
+    }
+
+    bool Next(const std::shared_ptr& sharedBlobsManager, const TVersionedIndex& index);
+
+    bool IsValid() {
+        return Selected.size();
+    }
+
+    TSourceCursor(const TTabletId selfTabletId, const std::set& pathIds, const TTransferContext transferContext);
+
+    bool Start(const std::shared_ptr& sharedBlobsManager, const THashMap>>& portions, const TVersionedIndex& index);
+
+    NKikimrColumnShardDataSharingProto::TSourceSession::TCursorDynamic SerializeDynamicToProto() const;
+    NKikimrColumnShardDataSharingProto::TSourceSession::TCursorStatic SerializeStaticToProto() const;
+
+    [[nodiscard]] TConclusionStatus DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TSourceSession::TCursorDynamic& proto,
+        const NKikimrColumnShardDataSharingProto::TSourceSession::TCursorStatic& protoStatic);
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/source/session/source.cpp b/ydb/core/tx/columnshard/data_sharing/source/session/source.cpp
new file mode 100644
index 000000000000..3cf78859289f
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/session/source.cpp
@@ -0,0 +1,110 @@
+#include "source.h"
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+NKikimr::TConclusionStatus TSourceSession::DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TSourceSession& proto, 
+    const std::optional& protoCursor,
+    const std::optional& protoCursorStatic) {
+    auto parseBase = TBase::DeserializeFromProto(proto);
+    if (!parseBase) {
+        return parseBase;
+    }
+    DestinationTabletId = (TTabletId)proto.GetDestinationTabletId();
+    if (!(ui64)DestinationTabletId) {
+        return TConclusionStatus::Fail("Incorrect DestinationTabletId in proto.");
+    }
+    for (auto&& i : proto.GetPathIds()) {
+        if (!PathIds.emplace(i).second) {
+            return TConclusionStatus::Fail("PathIds contains duplicated values.");
+        }
+    }
+    if (PathIds.empty()) {
+        return TConclusionStatus::Fail("PathIds empty.");
+    }
+    AFL_VERIFY(PathIds.size());
+    Cursor = std::make_shared(SelfTabletId, PathIds, TransferContext);
+    AFL_VERIFY(!!protoCursor == !!protoCursorStatic);
+    if (protoCursor) {
+        auto parsed = Cursor->DeserializeFromProto(*protoCursor, *protoCursorStatic);
+        if (!parsed) {
+            return parsed;
+        }
+    }
+    return TConclusionStatus::Success();
+}
+
+TConclusion> TSourceSession::AckFinished(NColumnShard::TColumnShard* self, const std::shared_ptr& selfPtr) {
+    return std::unique_ptr(new TTxFinishAckToSource(self, selfPtr, "ack_finished"));
+}
+
+TConclusion> TSourceSession::AckData(NColumnShard::TColumnShard* self, const ui32 receivedPackIdx, const std::shared_ptr& selfPtr) {
+    auto ackResult = Cursor->AckData(receivedPackIdx);
+    if (!ackResult) {
+        return ackResult;
+    }
+    if (Cursor->IsReadyForNext()) {
+        Cursor->Next(self->GetStoragesManager()->GetSharedBlobsManager(), self->GetIndexAs().GetVersionedIndex());
+        return std::unique_ptr(new TTxDataAckToSource(self, selfPtr, "ack_to_source_on_ack_data"));
+    } else {
+        return std::unique_ptr(new TTxWriteSourceCursor(self, selfPtr, "write_source_cursor_on_ack_data"));
+    }
+}
+
+TConclusion> TSourceSession::AckLinks(NColumnShard::TColumnShard* self, const TTabletId tabletId, const ui32 receivedPackIdx, const std::shared_ptr& selfPtr) {
+    auto ackResult = Cursor->AckLinks(tabletId, receivedPackIdx);
+    if (!ackResult) {
+        return ackResult;
+    }
+    if (Cursor->IsReadyForNext()) {
+        Cursor->Next(self->GetStoragesManager()->GetSharedBlobsManager(), self->GetIndexAs().GetVersionedIndex());
+        return std::unique_ptr(new TTxDataAckToSource(self, selfPtr, "ack_to_source_on_ack_links"));
+    } else {
+        return std::unique_ptr(new TTxWriteSourceCursor(self, selfPtr, "write_source_cursor_on_ack_links"));
+    }
+}
+
+void TSourceSession::ActualizeDestination(const std::shared_ptr& dataLocksManager) {
+    AFL_VERIFY(IsStarted() || IsStarting());
+    AFL_VERIFY(Cursor);
+    if (Cursor->IsValid()) {
+        if (!Cursor->IsAckDataReceived()) {
+            const THashMap& packPortions = Cursor->GetSelected();
+            auto ev = std::make_unique(GetSessionId(), Cursor->GetPackIdx(), SelfTabletId, packPortions);
+            NActors::TActivationContext::AsActorContext().Send(MakePipePeNodeCacheID(false),
+                new TEvPipeCache::TEvForward(ev.release(), (ui64)DestinationTabletId, true), IEventHandle::FlagTrackDelivery, GetRuntimeId());
+        }
+        {
+            const auto& links = Cursor->GetLinks();
+            for (auto&& [tabletId, task] : links) {
+                if (Cursor->GetLinksModifiedTablets().contains(tabletId)) {
+                    continue;
+                }
+                auto ev = std::make_unique(SelfTabletId, GetSessionId(), Cursor->GetPackIdx(), task);
+                NActors::TActivationContext::AsActorContext().Send(MakePipePeNodeCacheID(false),
+                    new TEvPipeCache::TEvForward(ev.release(), (ui64)tabletId, true), IEventHandle::FlagTrackDelivery, GetRuntimeId());
+            }
+        }
+    } else {
+        auto ev = std::make_unique(GetSessionId(), SelfTabletId);
+        NActors::TActivationContext::AsActorContext().Send(MakePipePeNodeCacheID(false),
+            new TEvPipeCache::TEvForward(ev.release(), (ui64)DestinationTabletId, true), IEventHandle::FlagTrackDelivery, GetRuntimeId());
+        Finish(dataLocksManager);
+    }
+}
+
+bool TSourceSession::DoStart(const NColumnShard::TColumnShard& shard, const THashMap>>& portions) {
+    AFL_VERIFY(Cursor);
+    if (Cursor->Start(shard.GetStoragesManager()->GetSharedBlobsManager(), portions, shard.GetIndexAs().GetVersionedIndex())) {
+        ActualizeDestination(shard.GetDataLocksManager());
+        return true;
+    } else {
+        return false;
+    }
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/source/session/source.h b/ydb/core/tx/columnshard/data_sharing/source/session/source.h
new file mode 100644
index 000000000000..319302fe92d8
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/session/source.h
@@ -0,0 +1,91 @@
+#pragma once
+#include "cursor.h"
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TSharedBlobsManager;
+
+class TSourceSession: public TCommonSession {
+private:
+    using TBase = TCommonSession;
+    const TTabletId SelfTabletId;
+    std::shared_ptr Cursor;
+    YDB_READONLY_DEF(std::set, PathIds);
+    TTabletId DestinationTabletId = TTabletId(0);
+protected:
+    virtual bool DoStart(const NColumnShard::TColumnShard& shard, const THashMap>>& portions) override;
+    virtual THashSet GetPathIdsForStart() const override {
+        THashSet result;
+        for (auto&& i : PathIds) {
+            result.emplace(i);
+        }
+        return result;
+    }
+public:
+    TSourceSession(const TTabletId selfTabletId)
+        : TBase("source_proto")
+        , SelfTabletId(selfTabletId)
+    {
+
+    }
+
+    TSourceSession(const TString& sessionId, const TTransferContext& transfer, const TTabletId selfTabletId, const std::set& pathIds, const TTabletId destTabletId)
+        : TBase(sessionId, "source_base", transfer)
+        , SelfTabletId(selfTabletId)
+        , PathIds(pathIds)
+        , DestinationTabletId(destTabletId)
+    {
+    }
+
+    TTabletId GetDestinationTabletId() const {
+        return DestinationTabletId;
+    }
+
+    TString DebugString() const {
+        return TStringBuilder() << "{base=" << TBase::DebugString() << ";destination_tablet_id=" << (ui64)DestinationTabletId << ";}";
+    }
+
+    bool IsEqualTo(const TSourceSession& item) const {
+        return
+            TBase::IsEqualTo(item) &&
+            DestinationTabletId == item.DestinationTabletId &&
+            PathIds == item.PathIds;
+    }
+
+    std::shared_ptr GetCursorVerified() const {
+        AFL_VERIFY(!!Cursor);
+        return Cursor;
+    }
+
+    bool TryNextCursor(const ui32 packIdx, const std::shared_ptr& sharedBlobsManager, const TVersionedIndex& index) {
+        AFL_VERIFY(Cursor);
+        if (packIdx != Cursor->GetPackIdx()) {
+            return false;
+        }
+        Cursor->Next(sharedBlobsManager, index);
+        return true;
+    }
+
+    [[nodiscard]] TConclusion> AckFinished(NColumnShard::TColumnShard* self, const std::shared_ptr& selfPtr);
+    [[nodiscard]] TConclusion> AckData(NColumnShard::TColumnShard* self, const ui32 receivedPackIdx, const std::shared_ptr& selfPtr);
+    [[nodiscard]] TConclusion> AckLinks(NColumnShard::TColumnShard* self, const TTabletId tabletId, const ui32 packIdx, const std::shared_ptr& selfPtr);
+
+    void ActualizeDestination(const std::shared_ptr& dataLocksManager);
+
+    NKikimrColumnShardDataSharingProto::TSourceSession SerializeDataToProto() const {
+        NKikimrColumnShardDataSharingProto::TSourceSession result;
+        TBase::SerializeToProto(result);
+        result.SetDestinationTabletId((ui64)DestinationTabletId);
+        for (auto&& i : PathIds) {
+            result.AddPathIds(i);
+        }
+        return result;
+    }
+
+    [[nodiscard]] TConclusionStatus DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TSourceSession& proto,
+        const std::optional& protoCursor, 
+        const std::optional& protoCursorStatic);
+};
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/source/session/ya.make b/ydb/core/tx/columnshard/data_sharing/source/session/ya.make
new file mode 100644
index 000000000000..c045cca16e17
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/session/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+    source.cpp
+    cursor.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/common/session
+    ydb/core/tx/columnshard/data_sharing/destination/events
+    ydb/core/tx/columnshard/data_sharing/source/transactions
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_data_ack_to_source.cpp b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_data_ack_to_source.cpp
new file mode 100644
index 000000000000..146a93bc706c
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_data_ack_to_source.cpp
@@ -0,0 +1,40 @@
+#include "tx_data_ack_to_source.h"
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+bool TTxDataAckToSource::DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& /*ctx*/) {
+    using namespace NColumnShard;
+    THashMap sharedTabletBlobIds;
+    {
+        THashMap> sharedBlobIds;
+        auto& index = Self->GetIndexAs().GetVersionedIndex();
+        for (auto&& [_, i] : Session->GetCursorVerified()->GetPreviousSelected()) {
+            for (auto&& portion : i.GetPortions()) {
+                portion.FillBlobIdsByStorage(sharedBlobIds, index);
+            }
+        }
+        for (auto&& i : sharedBlobIds) {
+            AFL_VERIFY(sharedTabletBlobIds[i.first].Add(Session->GetDestinationTabletId(), i.second));
+            sharedTabletBlobIds[i.first].Add(Self->GetStoragesManager()->GetSharedBlobsManager()->GetSelfTabletId(), std::move(i.second));
+        }
+        Self->GetStoragesManager()->GetSharedBlobsManager()->WriteSharedBlobsDB(txc, sharedTabletBlobIds);
+    }
+
+    NIceDb::TNiceDb db(txc.DB);
+    db.Table().Key(Session->GetSessionId())
+        .Update(NIceDb::TUpdate(Session->GetCursorVerified()->SerializeDynamicToProto().SerializeAsString()));
+    if (!Session->GetCursorVerified()->GetStaticSaved()) {
+        db.Table().Key(Session->GetSessionId())
+            .Update(NIceDb::TUpdate(Session->GetCursorVerified()->SerializeStaticToProto().SerializeAsString()));
+        Session->GetCursorVerified()->SetStaticSaved(true);
+    }
+    std::swap(SharedBlobIds, sharedTabletBlobIds);
+    return true;
+}
+
+void TTxDataAckToSource::DoComplete(const TActorContext& /*ctx*/) {
+    Session->ActualizeDestination(Self->GetDataLocksManager());
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_data_ack_to_source.h b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_data_ack_to_source.h
new file mode 100644
index 000000000000..a8a4756a94f8
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_data_ack_to_source.h
@@ -0,0 +1,28 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TTxDataAckToSource: public TExtendedTransactionBase {
+private:
+    using TBase = TExtendedTransactionBase;
+    std::shared_ptr Session;
+    THashMap SharedBlobIds;
+protected:
+    virtual bool DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& ctx) override;
+    virtual void DoComplete(const TActorContext& ctx) override;
+public:
+    TTxDataAckToSource(NColumnShard::TColumnShard* self, const std::shared_ptr& session, const TString& info)
+        : TBase(self, info)
+        , Session(session)
+    {
+    }
+
+    TTxType GetTxType() const override { return NColumnShard::TXTYPE_DATA_SHARING_DATA_ACK_TO_SOURCE; }
+};
+
+
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_finish_ack_to_source.cpp b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_finish_ack_to_source.cpp
new file mode 100644
index 000000000000..913cc7f0ac5c
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_finish_ack_to_source.cpp
@@ -0,0 +1,15 @@
+#include "tx_finish_ack_to_source.h"
+
+namespace NKikimr::NOlap::NDataSharing {
+bool TTxFinishAckToSource::DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& /*ctx*/) {
+    using namespace NKikimr::NColumnShard;
+    NIceDb::TNiceDb db(txc.DB);
+    db.Table().Key(Session->GetSessionId()).Delete();
+    return true;
+}
+
+void TTxFinishAckToSource::DoComplete(const TActorContext& /*ctx*/) {
+    Self->SharingSessionsManager->RemoveSourceSession(Session->GetSessionId());
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_finish_ack_to_source.h b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_finish_ack_to_source.h
new file mode 100644
index 000000000000..3c03f5f7e9c7
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_finish_ack_to_source.h
@@ -0,0 +1,27 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TTxFinishAckToSource: public TExtendedTransactionBase {
+private:
+    using TBase = TExtendedTransactionBase;
+    std::shared_ptr Session;
+protected:
+    virtual bool DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& ctx) override;
+    virtual void DoComplete(const TActorContext& /*ctx*/) override;
+public:
+    TTxFinishAckToSource(NColumnShard::TColumnShard* self, const std::shared_ptr& session, const TString& info)
+        : TBase(self, info)
+        , Session(session)
+    {
+        AFL_VERIFY(!Session->GetCursorVerified()->IsValid());
+    }
+
+    TTxType GetTxType() const override { return NColumnShard::TXTYPE_DATA_SHARING_FINISH_ACK_TO_SOURCE; }
+};
+
+
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_start_to_source.cpp b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_start_to_source.cpp
new file mode 100644
index 000000000000..687b2e3661e0
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_start_to_source.cpp
@@ -0,0 +1,20 @@
+#include "tx_start_to_source.h"
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+bool TTxStartToSource::DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& /*ctx*/) {
+    using namespace NColumnShard;
+    NIceDb::TNiceDb db(txc.DB);
+    db.Table().Key(Session->GetSessionId())
+        .Update(NIceDb::TUpdate(Session->SerializeDataToProto().SerializeAsString()));
+    return true;
+}
+
+void TTxStartToSource::DoComplete(const TActorContext& /*ctx*/) {
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("info", "TTxStartToSource::Complete");
+    AFL_VERIFY(Sessions->emplace(Session->GetSessionId(), Session).second);
+    Session->Start(*Self);
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_start_to_source.h b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_start_to_source.h
new file mode 100644
index 000000000000..6506f269a75c
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_start_to_source.h
@@ -0,0 +1,28 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TTxStartToSource: public TExtendedTransactionBase {
+private:
+    using TBase = TExtendedTransactionBase;
+    std::shared_ptr Session;
+    THashMap>* Sessions;
+protected:
+    virtual bool DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& ctx) override;
+    virtual void DoComplete(const TActorContext& ctx) override;
+public:
+    TTxStartToSource(NColumnShard::TColumnShard* self, const std::shared_ptr& session, THashMap>& sessions, const TString& info)
+        : TBase(self, info)
+        , Session(session)
+        , Sessions(&sessions)
+    {
+    }
+
+    TTxType GetTxType() const override { return NColumnShard::TXTYPE_DATA_SHARING_START_TO_SOURCE; }
+};
+
+
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_write_source_cursor.cpp b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_write_source_cursor.cpp
new file mode 100644
index 000000000000..4af96622de2b
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_write_source_cursor.cpp
@@ -0,0 +1,17 @@
+#include "tx_write_source_cursor.h"
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+bool TTxWriteSourceCursor::DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& /*ctx*/) {
+    using namespace NColumnShard;
+    NIceDb::TNiceDb db(txc.DB);
+    db.Table().Key(Session->GetSessionId())
+        .Update(NIceDb::TUpdate(Session->GetCursorVerified()->SerializeDynamicToProto().SerializeAsString()));
+    return true;
+}
+
+void TTxWriteSourceCursor::DoComplete(const TActorContext& /*ctx*/) {
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_write_source_cursor.h b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_write_source_cursor.h
new file mode 100644
index 000000000000..315e6038ed41
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/transactions/tx_write_source_cursor.h
@@ -0,0 +1,27 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NDataSharing {
+
+class TTxWriteSourceCursor: public TExtendedTransactionBase {
+private:
+    using TBase = TExtendedTransactionBase;
+    std::shared_ptr Session;
+protected:
+    virtual bool DoExecute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& ctx) override;
+    virtual void DoComplete(const TActorContext& ctx) override;
+public:
+    TTxWriteSourceCursor(NColumnShard::TColumnShard* self, const std::shared_ptr& session, const TString& info)
+        : TBase(self, info)
+        , Session(session)
+    {
+    }
+
+    TTxType GetTxType() const override { return NColumnShard::TXTYPE_DATA_SHARING_WRITE_SOURCE_CURSOR; }
+};
+
+
+}
diff --git a/ydb/core/tx/columnshard/data_sharing/source/transactions/ya.make b/ydb/core/tx/columnshard/data_sharing/source/transactions/ya.make
new file mode 100644
index 000000000000..90269b952ed4
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/transactions/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+    tx_start_to_source.cpp
+    tx_data_ack_to_source.cpp
+    tx_finish_ack_to_source.cpp
+    tx_write_source_cursor.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/common/transactions
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/source/ya.make b/ydb/core/tx/columnshard/data_sharing/source/ya.make
new file mode 100644
index 000000000000..ed17858d4057
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/source/ya.make
@@ -0,0 +1,9 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/source/session
+    ydb/core/tx/columnshard/data_sharing/source/transactions
+    ydb/core/tx/columnshard/data_sharing/source/events
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/data_sharing/ya.make b/ydb/core/tx/columnshard/data_sharing/ya.make
new file mode 100644
index 000000000000..f3f443c03540
--- /dev/null
+++ b/ydb/core/tx/columnshard/data_sharing/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/tx/columnshard/data_sharing/common
+    ydb/core/tx/columnshard/data_sharing/destination
+    ydb/core/tx/columnshard/data_sharing/source
+    ydb/core/tx/columnshard/data_sharing/initiator
+    ydb/core/tx/columnshard/data_sharing/manager
+    ydb/core/tx/columnshard/data_sharing/protos
+    ydb/core/tx/columnshard/data_sharing/modification
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/defs.h b/ydb/core/tx/columnshard/defs.h
index f3d5c90bc181..76d1cc3a2bb0 100644
--- a/ydb/core/tx/columnshard/defs.h
+++ b/ydb/core/tx/columnshard/defs.h
@@ -1,4 +1,5 @@
 #pragma once
+#include "common/blob.h"
 #include 
 #include 
 #include 
diff --git a/ydb/core/tx/columnshard/engines/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/CMakeLists.darwin-arm64.txt
index 41ff6614c5b3..dcfcc1d3275d 100644
--- a/ydb/core/tx/columnshard/engines/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/columnshard/engines/CMakeLists.darwin-arm64.txt
@@ -36,7 +36,6 @@ target_link_libraries(tx-columnshard-engines PUBLIC
   columnshard-engines-insert_table
   columnshard-engines-changes
   columnshard-engines-portions
-  formats-arrow-compression
   core-tx-program
   udf-service-exception_policy
 )
diff --git a/ydb/core/tx/columnshard/engines/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/engines/CMakeLists.darwin-x86_64.txt
index 41ff6614c5b3..dcfcc1d3275d 100644
--- a/ydb/core/tx/columnshard/engines/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/CMakeLists.darwin-x86_64.txt
@@ -36,7 +36,6 @@ target_link_libraries(tx-columnshard-engines PUBLIC
   columnshard-engines-insert_table
   columnshard-engines-changes
   columnshard-engines-portions
-  formats-arrow-compression
   core-tx-program
   udf-service-exception_policy
 )
diff --git a/ydb/core/tx/columnshard/engines/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/engines/CMakeLists.linux-aarch64.txt
index e5129086a415..9d0ab1b75f82 100644
--- a/ydb/core/tx/columnshard/engines/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/columnshard/engines/CMakeLists.linux-aarch64.txt
@@ -37,7 +37,6 @@ target_link_libraries(tx-columnshard-engines PUBLIC
   columnshard-engines-insert_table
   columnshard-engines-changes
   columnshard-engines-portions
-  formats-arrow-compression
   core-tx-program
   udf-service-exception_policy
 )
diff --git a/ydb/core/tx/columnshard/engines/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/engines/CMakeLists.linux-x86_64.txt
index e5129086a415..9d0ab1b75f82 100644
--- a/ydb/core/tx/columnshard/engines/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/CMakeLists.linux-x86_64.txt
@@ -37,7 +37,6 @@ target_link_libraries(tx-columnshard-engines PUBLIC
   columnshard-engines-insert_table
   columnshard-engines-changes
   columnshard-engines-portions
-  formats-arrow-compression
   core-tx-program
   udf-service-exception_policy
 )
diff --git a/ydb/core/tx/columnshard/engines/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/engines/CMakeLists.windows-x86_64.txt
index 41ff6614c5b3..dcfcc1d3275d 100644
--- a/ydb/core/tx/columnshard/engines/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/CMakeLists.windows-x86_64.txt
@@ -36,7 +36,6 @@ target_link_libraries(tx-columnshard-engines PUBLIC
   columnshard-engines-insert_table
   columnshard-engines-changes
   columnshard-engines-portions
-  formats-arrow-compression
   core-tx-program
   udf-service-exception_policy
 )
diff --git a/ydb/core/tx/columnshard/engines/changes/abstract/abstract.cpp b/ydb/core/tx/columnshard/engines/changes/abstract/abstract.cpp
index 8d3c4ae87610..ea47cb746081 100644
--- a/ydb/core/tx/columnshard/engines/changes/abstract/abstract.cpp
+++ b/ydb/core/tx/columnshard/engines/changes/abstract/abstract.cpp
@@ -2,6 +2,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 
 namespace NKikimr::NOlap {
@@ -17,13 +18,7 @@ TString TColumnEngineChanges::DebugString() const {
 TConclusionStatus TColumnEngineChanges::ConstructBlobs(TConstructionContext& context) noexcept {
     Y_ABORT_UNLESS(Stage == EStage::Started);
 
-    {
-        ui64 readBytes = 0;
-        for (auto&& i : Blobs) {
-            readBytes += i.first.Size;
-        }
-        context.Counters.CompactionInputSize(readBytes);
-    }
+    context.Counters.CompactionInputSize(Blobs.GetTotalBlobsSize());
     const TMonotonic start = TMonotonic::Now();
     TConclusionStatus result = DoConstructBlobs(context);
     if (result.Ok()) {
@@ -35,31 +30,24 @@ TConclusionStatus TColumnEngineChanges::ConstructBlobs(TConstructionContext& con
     return result;
 }
 
-bool TColumnEngineChanges::ApplyChanges(TColumnEngineForLogs& self, TApplyChangesContext& context) {
-    Y_ABORT_UNLESS(Stage == EStage::Compiled);
-    Y_ABORT_UNLESS(DoApplyChanges(self, context));
-    Stage = EStage::Applied;
-    return true;
-}
-
-void TColumnEngineChanges::WriteIndex(NColumnShard::TColumnShard& self, TWriteIndexContext& context) {
+void TColumnEngineChanges::WriteIndexOnExecute(NColumnShard::TColumnShard* self, TWriteIndexContext& context) {
     Y_ABORT_UNLESS(Stage != EStage::Aborted);
-    if ((ui32)Stage >= (ui32)EStage::Written) {
-        return;
-    }
-    Y_ABORT_UNLESS(Stage == EStage::Applied);
+    Y_ABORT_UNLESS(Stage <= EStage::Written);
+    Y_ABORT_UNLESS(Stage >= EStage::Compiled);
 
-    DoWriteIndex(self, context);
+    DoWriteIndexOnExecute(self, context);
     Stage = EStage::Written;
 }
 
-void TColumnEngineChanges::WriteIndexComplete(NColumnShard::TColumnShard& self, TWriteIndexCompleteContext& context) {
-    Y_ABORT_UNLESS(Stage == EStage::Written);
+void TColumnEngineChanges::WriteIndexOnComplete(NColumnShard::TColumnShard* self, TWriteIndexCompleteContext& context) {
+    Y_ABORT_UNLESS(Stage == EStage::Written || !self);
     Stage = EStage::Finished;
     AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "WriteIndexComplete")("type", TypeString())("success", context.FinishedSuccessfully);
-    DoWriteIndexComplete(self, context);
-    DoOnFinish(self, context);
-    self.IncCounter(GetCounterIndex(context.FinishedSuccessfully));
+    DoWriteIndexOnComplete(self, context);
+    if (self) {
+        OnFinish(*self, context);
+        self->IncCounter(GetCounterIndex(context.FinishedSuccessfully));
+    }
 
 }
 
@@ -76,17 +64,21 @@ void TColumnEngineChanges::Compile(TFinalizationContext& context) noexcept {
 }
 
 TColumnEngineChanges::~TColumnEngineChanges() {
-    Y_DEBUG_ABORT_UNLESS(!NActors::TlsActivationContext || Stage == EStage::Created || Stage == EStage::Finished || Stage == EStage::Aborted);
+//    AFL_VERIFY_DEBUG(!NActors::TlsActivationContext || Stage == EStage::Created || Stage == EStage::Finished || Stage == EStage::Aborted)("stage", Stage);
 }
 
 void TColumnEngineChanges::Abort(NColumnShard::TColumnShard& self, TChangesFinishContext& context) {
-    Y_ABORT_UNLESS(Stage != EStage::Finished && Stage != EStage::Created && Stage != EStage::Aborted);
+    AFL_VERIFY(Stage != EStage::Finished && Stage != EStage::Created && Stage != EStage::Aborted)("stage", Stage)("reason", context.ErrorMessage)("prev_reason", AbortedReason);
     Stage = EStage::Aborted;
-    DoOnFinish(self, context);
+    AbortedReason = context.ErrorMessage;
+    OnFinish(self, context);
 }
 
 void TColumnEngineChanges::Start(NColumnShard::TColumnShard& self) {
+    AFL_VERIFY(!LockGuard);
+    LockGuard = self.DataLocksManager->RegisterLock(BuildDataLock());
     Y_ABORT_UNLESS(Stage == EStage::Created);
+    NYDBTest::TControllers::GetColumnShardController()->OnWriteIndexStart(self.TabletID(), *this);
     DoStart(self);
     Stage = EStage::Started;
     if (!NeedConstruction()) {
@@ -102,16 +94,28 @@ void TColumnEngineChanges::StartEmergency() {
     }
 }
 
-void TColumnEngineChanges::AbortEmergency() {
-    AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "AbortEmergency");
-    Stage = EStage::Aborted;
-    OnAbortEmergency();
+void TColumnEngineChanges::AbortEmergency(const TString& reason) {
+    AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "AbortEmergency")("reason", reason)("prev_reason", AbortedReason);
+    if (Stage == EStage::Aborted) {
+        AbortedReason += "; AnotherReason: " + reason;
+    } else {
+        Stage = EStage::Aborted;
+        AbortedReason = reason;
+        OnAbortEmergency();
+    }
+}
+
+void TColumnEngineChanges::OnFinish(NColumnShard::TColumnShard& self, TChangesFinishContext& context) {
+    if (!!LockGuard) {
+        LockGuard->Release(*self.DataLocksManager);
+    }
+    DoOnFinish(self, context);
 }
 
-TWriteIndexContext::TWriteIndexContext(NTabletFlatExecutor::TTransactionContext& txc, IDbWrapper& dbWrapper)
-    : Txc(txc)
-    , BlobManagerDb(std::make_shared(txc.DB))
+TWriteIndexContext::TWriteIndexContext(NTable::TDatabase* db, IDbWrapper& dbWrapper, TColumnEngineForLogs& engineLogs)
+    : DB(db)
     , DBWrapper(dbWrapper)
+    , EngineLogs(engineLogs)
 {
 
 }
diff --git a/ydb/core/tx/columnshard/engines/changes/abstract/abstract.h b/ydb/core/tx/columnshard/engines/changes/abstract/abstract.h
index 8a5dacc48fac..568836bfa8a3 100644
--- a/ydb/core/tx/columnshard/engines/changes/abstract/abstract.h
+++ b/ydb/core/tx/columnshard/engines/changes/abstract/abstract.h
@@ -1,12 +1,18 @@
 #pragma once
 #include "settings.h"
+#include 
+#include 
+#include 
 #include 
 #include 
+#include 
+#include 
+#include 
+#include 
+#include 
 #include 
 #include 
 #include 
-#include 
-#include 
 #include 
 
 #include 
@@ -24,7 +30,6 @@ class TTransactionContext;
 namespace NKikimr::NColumnShard {
 class TBlobManagerDb;
 class TColumnShard;
-class TBackgroundActivity;
 }
 
 namespace NKikimr::NOlap {
@@ -32,17 +37,69 @@ class TColumnEngineForLogs;
 class TVersionedIndex;
 class TPortionInfoWithBlobs;
 
-struct TPortionEvictionFeatures {
-    const TString TargetTierName;
-    const ui64 PathId;      // portion path id for cold-storage-key construct
-    bool DataChanges = true;
-    const std::shared_ptr StorageOperator;
-
-    TPortionEvictionFeatures(const TString& targetTierName, const ui64 pathId, const std::shared_ptr& storageOperator)
-        : TargetTierName(targetTierName)
-        , PathId(pathId)
-        , StorageOperator(storageOperator)
-    {}
+class TPortionEvictionFeatures {
+private:
+    YDB_READONLY_DEF(std::shared_ptr, CurrentScheme);
+    YDB_READONLY_DEF(std::shared_ptr, TargetScheme);
+    std::optional TargetTierName;
+    const TString CurrentTierName;
+    std::optional RWAddress;
+public:
+    TPortionEvictionFeatures(const std::shared_ptr& currentScheme, const std::shared_ptr& targetScheme, const TString& currentTierName)
+        : CurrentScheme(currentScheme)
+        , TargetScheme(targetScheme)
+        , CurrentTierName(currentTierName)
+    {
+        AFL_VERIFY(CurrentTierName);
+    }
+
+    const TString& GetTargetTierName() const {
+        AFL_VERIFY(TargetTierName);
+        return *TargetTierName;
+    }
+
+    void SetTargetTierName(const TString& value) {
+        AFL_VERIFY(!TargetTierName);
+        TargetTierName = value;
+    }
+
+    void OnSkipPortionWithProcessMemory(const NColumnShard::TEngineLogsCounters& counters, const TDuration dWait) const {
+        if (TargetTierName == NTiering::NCommon::DeleteTierName) {
+            counters.OnSkipDeleteWithProcessMemory(dWait);
+        } else {
+            counters.OnSkipEvictionWithProcessMemory(dWait);
+        }
+    }
+
+    void OnSkipPortionWithTxLimit(const NColumnShard::TEngineLogsCounters& counters, const TDuration dWait) const {
+        if (TargetTierName == NTiering::NCommon::DeleteTierName) {
+            counters.OnSkipDeleteWithTxLimit(dWait);
+        } else {
+            counters.OnSkipEvictionWithTxLimit(dWait);
+        }
+    }
+
+    NActualizer::TRWAddress GetRWAddress() {
+        if (!RWAddress) {
+            AFL_VERIFY(TargetTierName);
+            RWAddress = NActualizer::TRWAddress(CurrentScheme->GetIndexInfo().GetUsedStorageIds(CurrentTierName), TargetScheme->GetIndexInfo().GetUsedStorageIds(*TargetTierName));
+        }
+        return *RWAddress;
+    }
+
+    bool NeedRewrite() const {
+        if (TargetTierName == NTiering::NCommon::DeleteTierName) {
+            return false;
+        }
+        if (CurrentTierName != TargetTierName) {
+            return true;
+        }
+        if (CurrentScheme->GetVersion() != TargetScheme->GetVersion()) {
+            return true;
+        }
+        AFL_VERIFY(false);
+        return false;
+    }
 };
 
 class TFinalizationContext: TNonCopyable {
@@ -71,10 +128,10 @@ class TFinalizationContext: TNonCopyable {
 
 class TWriteIndexContext: TNonCopyable {
 public:
-    NTabletFlatExecutor::TTransactionContext& Txc;
-    std::shared_ptr BlobManagerDb;
+    NTable::TDatabase* DB;
     IDbWrapper& DBWrapper;
-    TWriteIndexContext(NTabletFlatExecutor::TTransactionContext& txc, IDbWrapper& dbWrapper);
+    TColumnEngineForLogs& EngineLogs;
+    TWriteIndexContext(NTable::TDatabase* db, IDbWrapper& dbWrapper, TColumnEngineForLogs& engineLogs);
 };
 
 class TChangesFinishContext {
@@ -98,38 +155,30 @@ class TWriteIndexCompleteContext: TNonCopyable, public TChangesFinishContext {
     const ui32 BlobsWritten;
     const ui64 BytesWritten;
     const TDuration Duration;
-    NColumnShard::TBackgroundActivity& TriggerActivity;
+    TColumnEngineForLogs& EngineLogs;
     TWriteIndexCompleteContext(const TActorContext& actorContext, const ui32 blobsWritten, const ui64 bytesWritten
-        , const TDuration d, NColumnShard::TBackgroundActivity& triggerActivity)
+        , const TDuration d, TColumnEngineForLogs& engineLogs)
         : ActorContext(actorContext)
         , BlobsWritten(blobsWritten)
         , BytesWritten(bytesWritten)
         , Duration(d)
-        , TriggerActivity(triggerActivity)
+        , EngineLogs(engineLogs)
     {
 
     }
 };
 
-class TApplyChangesContext: TNonCopyable {
-public:
-    IDbWrapper& DB;
-    const TSnapshot Snapshot;
-    TApplyChangesContext(IDbWrapper& db, const TSnapshot& snapshot)
-        : DB(db)
-        , Snapshot(snapshot) {
-
-    }
-};
-
 class TConstructionContext: TNonCopyable {
 public:
     const TVersionedIndex& SchemaVersions;
     const NColumnShard::TIndexationCounters Counters;
+    const NOlap::TSnapshot LastCommittedTx;
 
-    TConstructionContext(const TVersionedIndex& schemaVersions, const NColumnShard::TIndexationCounters& counters)
+    TConstructionContext(const TVersionedIndex& schemaVersions, const NColumnShard::TIndexationCounters& counters, const NOlap::TSnapshot& lastCommittedTx)
         : SchemaVersions(schemaVersions)
-        , Counters(counters) {
+        , Counters(counters)
+        , LastCommittedTx(lastCommittedTx)
+    {
 
     }
 };
@@ -143,20 +192,21 @@ class TColumnEngineChanges {
         Started,
         Constructed,
         Compiled,
-        Applied,
         Written,
         Finished,
         Aborted
     };
 private:
     EStage Stage = EStage::Created;
+    std::shared_ptr LockGuard;
+    TString AbortedReason;
+
 protected:
     virtual void DoDebugString(TStringOutput& out) const = 0;
     virtual void DoCompile(TFinalizationContext& context) = 0;
-    virtual void DoWriteIndex(NColumnShard::TColumnShard& self, TWriteIndexContext& context) = 0;
-    virtual void DoWriteIndexComplete(NColumnShard::TColumnShard& self, TWriteIndexCompleteContext& context) = 0;
+    virtual void DoWriteIndexOnExecute(NColumnShard::TColumnShard* self, TWriteIndexContext& context) = 0;
+    virtual void DoWriteIndexOnComplete(NColumnShard::TColumnShard* self, TWriteIndexCompleteContext& context) = 0;
     virtual void DoOnFinish(NColumnShard::TColumnShard& self, TChangesFinishContext& context) = 0;
-    virtual bool DoApplyChanges(TColumnEngineForLogs& self, TApplyChangesContext& context) = 0;
     virtual bool NeedConstruction() const {
         return true;
     }
@@ -172,7 +222,24 @@ class TColumnEngineChanges {
 
     const TString TaskIdentifier = TGUID::Create().AsGuidString();
     virtual ui64 DoCalcMemoryForUsage() const = 0;
+    virtual std::shared_ptr DoBuildDataLock() const = 0;
+    std::shared_ptr BuildDataLock() const {
+        return DoBuildDataLock();
+    }
+
 public:
+    class IMemoryPredictor {
+    public:
+        virtual ui64 AddPortion(const TPortionInfo& portionInfo) = 0;
+        virtual ~IMemoryPredictor() = default;
+    };
+
+    virtual bool NeedDiskWriteLimiter() const {
+        return false;
+    }
+
+    void OnFinish(NColumnShard::TColumnShard& self, TChangesFinishContext& context);
+
     ui64 CalcMemoryForUsage() const {
         return DoCalcMemoryForUsage();
     }
@@ -189,7 +256,7 @@ class TColumnEngineChanges {
         return BlobsAction;
     }
 
-    TColumnEngineChanges(const std::shared_ptr& storagesManager, const TString& consumerId)
+    TColumnEngineChanges(const std::shared_ptr& storagesManager, const NBlobOperations::EConsumer consumerId)
         : BlobsAction(storagesManager, consumerId)
     {
 
@@ -202,30 +269,22 @@ class TColumnEngineChanges {
         return Stage == EStage::Aborted;
     }
 
-    virtual THashSet GetTouchedPortions() const = 0;
-
     void StartEmergency();
-    void AbortEmergency();
+    void AbortEmergency(const TString& reason);
 
     void Abort(NColumnShard::TColumnShard& self, TChangesFinishContext& context);
     void Start(NColumnShard::TColumnShard& self);
-    bool ApplyChanges(TColumnEngineForLogs& self, TApplyChangesContext& context);
 
     virtual ui32 GetWritePortionsCount() const = 0;
     virtual TPortionInfoWithBlobs* GetWritePortionInfo(const ui32 index) = 0;
     virtual bool NeedWritePortion(const ui32 index) const = 0;
 
-    void WriteIndex(NColumnShard::TColumnShard& self, TWriteIndexContext& context);
-    void WriteIndexComplete(NColumnShard::TColumnShard& self, TWriteIndexCompleteContext& context);
+    void WriteIndexOnExecute(NColumnShard::TColumnShard* self, TWriteIndexContext& context);
+    void WriteIndexOnComplete(NColumnShard::TColumnShard* self, TWriteIndexCompleteContext& context);
 
     void Compile(TFinalizationContext& context) noexcept;
 
-    void SetBlobs(THashMap&& blobs) {
-        Y_ABORT_UNLESS(!blobs.empty());
-        Blobs = std::move(blobs);
-    }
-
-    THashMap Blobs;
+    NBlobOperations::NRead::TCompositeReadBlobs Blobs;
     std::shared_ptr ResourcesGuard;
 
     std::vector> GetReadingActions() const {
@@ -237,11 +296,7 @@ class TColumnEngineChanges {
     TString DebugString() const;
 
     ui64 TotalBlobsSize() const {
-        ui64 size = 0;
-        for (const auto& [_, blob] : Blobs) {
-            size += blob.size();
-        }
-        return size;
+        return Blobs.GetTotalBlobsSize();
     }
 
 };
diff --git a/ydb/core/tx/columnshard/engines/changes/abstract/settings.h b/ydb/core/tx/columnshard/engines/changes/abstract/settings.h
index ec966965d52d..20dd155ba426 100644
--- a/ydb/core/tx/columnshard/engines/changes/abstract/settings.h
+++ b/ydb/core/tx/columnshard/engines/changes/abstract/settings.h
@@ -32,13 +32,6 @@ struct TCompactionLimits {
     i64 GranuleSizeForOverloadPrevent = WARNING_OVERLOAD_GRANULE_SIZE;
     i64 GranuleIndexedPortionsSizeLimit = WARNING_INSERTED_PORTIONS_SIZE;
     ui32 GranuleIndexedPortionsCountLimit = WARNING_INSERTED_PORTIONS_COUNT;
-
-    TSplitSettings GetSplitSettings() const {
-        return TSplitSettings()
-            .SetMinBlobSize(0.5 * std::min(MAX_BLOB_SIZE, GranuleSizeForOverloadPrevent))
-            .SetMaxBlobSize(std::min(MAX_BLOB_SIZE, GranuleSizeForOverloadPrevent))
-            .SetMaxPortionSize(0.5 * GranuleSizeForOverloadPrevent);
-    }
 };
 
 }
diff --git a/ydb/core/tx/columnshard/engines/changes/actualization/construction/context.cpp b/ydb/core/tx/columnshard/engines/changes/actualization/construction/context.cpp
new file mode 100644
index 000000000000..6b1ea617f219
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/changes/actualization/construction/context.cpp
@@ -0,0 +1,73 @@
+#include "context.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NActualizer {
+
+TTieringProcessContext::TTieringProcessContext(const ui64 memoryUsageLimit, const TSaverContext& saverContext,
+    const std::shared_ptr& dataLocksManager, const NColumnShard::TEngineLogsCounters& counters, const std::shared_ptr& controller)
+    : MemoryUsageLimit(memoryUsageLimit)
+    , SaverContext(saverContext)
+    , Counters(counters)
+    , Controller(controller)
+    , DataLocksManager(dataLocksManager)
+    , Now(TlsActivationContext ? AppData()->TimeProvider->Now() : TInstant::Now())
+{
+
+}
+
+bool TTieringProcessContext::AddPortion(const TPortionInfo& info, TPortionEvictionFeatures&& features, const std::optional dWait) {
+    if (!UsedPortions.emplace(info.GetAddress()).second) {
+        return true;
+    }
+    if (DataLocksManager->IsLocked(info)) {
+        return true;
+    }
+
+    const auto buildNewTask = [&]() {
+        return TTaskConstructor(TTTLColumnEngineChanges::BuildMemoryPredictor(), std::make_shared(features.GetRWAddress(), SaverContext));
+    };
+    auto it = Tasks.find(features.GetRWAddress());
+    if (it == Tasks.end()) {
+        std::vector tasks = {buildNewTask()};
+        it = Tasks.emplace(features.GetRWAddress(), std::move(tasks)).first;
+    }
+    if (it->second.back().GetTxWriteVolume() + info.GetTxVolume() > TGlobalLimits::TxWriteLimitBytes && it->second.back().GetTxWriteVolume()) {
+        if (Controller->IsNewTaskAvailable(it->first, it->second.size())) {
+            it->second.emplace_back(buildNewTask());
+        } else {
+            return false;
+        }
+        features.OnSkipPortionWithProcessMemory(Counters, *dWait);
+    }
+    if (features.NeedRewrite()) {
+        if (MemoryUsageLimit <= it->second.back().GetMemoryUsage()) {
+            if (Controller->IsNewTaskAvailable(it->first, it->second.size())) {
+                it->second.emplace_back(buildNewTask());
+            } else {
+                return false;
+            }
+            features.OnSkipPortionWithTxLimit(Counters, *dWait);
+        }
+        it->second.back().MutableMemoryUsage() = it->second.back().GetMemoryPredictor()->AddPortion(info);
+    }
+    it->second.back().MutableTxWriteVolume() += info.GetTxVolume();
+    if (features.GetTargetTierName() == NTiering::NCommon::DeleteTierName) {
+        AFL_VERIFY(dWait);
+        Counters.OnPortionToDrop(info.GetTotalBlobBytes(), *dWait);
+        it->second.back().GetTask()->PortionsToRemove.emplace(info.GetAddress(), info);
+        AFL_VERIFY(!it->second.back().GetTask()->GetPortionsToEvictCount())("rw", features.GetRWAddress().DebugString())("f", it->first.DebugString());
+    } else {
+        if (!dWait) {
+            AFL_VERIFY(features.GetCurrentScheme()->GetVersion() < features.GetTargetScheme()->GetVersion());
+        } else {
+            Counters.OnPortionToEvict(info.GetTotalBlobBytes(), *dWait);
+        }
+        it->second.back().GetTask()->AddPortionToEvict(info, std::move(features));
+        AFL_VERIFY(it->second.back().GetTask()->PortionsToRemove.empty())("rw", features.GetRWAddress().DebugString())("f", it->first.DebugString());
+    }
+    return true;
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/changes/actualization/construction/context.h b/ydb/core/tx/columnshard/engines/changes/actualization/construction/context.h
new file mode 100644
index 000000000000..0e5a5e326d3a
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/changes/actualization/construction/context.h
@@ -0,0 +1,62 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+
+namespace NKikimr::NOlap::NActualizer {
+
+class TTaskConstructor {
+private:
+    YDB_READONLY_DEF(std::shared_ptr, MemoryPredictor);
+    YDB_READONLY_DEF(std::shared_ptr, Task);
+    YDB_ACCESSOR(ui64, MemoryUsage, 0);
+    YDB_ACCESSOR(ui64, TxWriteVolume, 0);
+public:
+    TTaskConstructor(const std::shared_ptr& predictor, const std::shared_ptr& task)
+        : MemoryPredictor(predictor)
+        , Task(task) {
+
+    }
+};
+
+class TTieringProcessContext {
+private:
+    THashSet UsedPortions;
+    const ui64 MemoryUsageLimit;
+    TSaverContext SaverContext;
+    THashMap> Tasks;
+    const NColumnShard::TEngineLogsCounters Counters;
+    std::shared_ptr Controller;
+public:
+    const std::shared_ptr DataLocksManager;
+    const TInstant Now = AppDataVerified().TimeProvider->Now();
+
+    const NColumnShard::TEngineLogsCounters GetCounters() const {
+        return Counters;
+    }
+
+    const THashMap>& GetTasks() const {
+        return Tasks;
+    }
+
+    bool AddPortion(const TPortionInfo& info, TPortionEvictionFeatures&& features, const std::optional dWait);
+
+    bool IsRWAddressAvailable(const TRWAddress& address) const {
+        auto it = Tasks.find(address);
+        if (it == Tasks.end()) {
+            return Controller->IsNewTaskAvailable(address, 0);
+        } else {
+            return Controller->IsNewTaskAvailable(address, it->second.size());
+        }
+    }
+
+    TTieringProcessContext(const ui64 memoryUsageLimit, const TSaverContext& saverContext, const std::shared_ptr& dataLocksManager,
+        const NColumnShard::TEngineLogsCounters& counters, const std::shared_ptr& controller);
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/changes/actualization/construction/ya.make b/ydb/core/tx/columnshard/engines/changes/actualization/construction/ya.make
new file mode 100644
index 000000000000..12df95df6331
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/changes/actualization/construction/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+    context.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/changes/abstract
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/changes/actualization/controller/controller.cpp b/ydb/core/tx/columnshard/engines/changes/actualization/controller/controller.cpp
new file mode 100644
index 000000000000..672e02fd71f4
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/changes/actualization/controller/controller.cpp
@@ -0,0 +1,15 @@
+#include "controller.h"
+
+namespace NKikimr::NOlap::NActualizer {
+
+ui32 TController::GetLimitForAddress(const NActualizer::TRWAddress& address) const {
+    if (address.WriteIs(NTiering::NCommon::DeleteTierName)) {
+        return 16;
+    } else if (address.ReadIs(IStoragesManager::DefaultStorageId) && address.WriteIs(IStoragesManager::DefaultStorageId)) {
+        return 16;
+    } else {
+        return 1;
+    }
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/changes/actualization/controller/controller.h b/ydb/core/tx/columnshard/engines/changes/actualization/controller/controller.h
new file mode 100644
index 000000000000..bae5930bec6a
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/changes/actualization/controller/controller.h
@@ -0,0 +1,31 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NOlap::NActualizer {
+
+class TController {
+private:
+    THashMap ActualizationsInProgress;
+    ui32 GetLimitForAddress(const NActualizer::TRWAddress& address) const;
+
+public:
+    void StartActualization(const NActualizer::TRWAddress& address) {
+        AFL_VERIFY(++ActualizationsInProgress[address] <= (i32)GetLimitForAddress(address));
+    }
+
+    void FinishActualization(const NActualizer::TRWAddress& address) {
+        AFL_VERIFY(--ActualizationsInProgress[address] >= 0);
+    }
+
+    bool IsNewTaskAvailable(const NActualizer::TRWAddress& address, const ui32 readyTemporaryTasks) const {
+        auto it = ActualizationsInProgress.find(address);
+        if (it == ActualizationsInProgress.end()) {
+            return readyTemporaryTasks < GetLimitForAddress(address);
+        } else {
+            return it->second + readyTemporaryTasks < GetLimitForAddress(address);
+        }
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/changes/actualization/controller/ya.make b/ydb/core/tx/columnshard/engines/changes/actualization/controller/ya.make
new file mode 100644
index 000000000000..e92d5a71cdd6
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/changes/actualization/controller/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+    controller.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/changes/abstract
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/changes/actualization/ya.make b/ydb/core/tx/columnshard/engines/changes/actualization/ya.make
new file mode 100644
index 000000000000..4362b8dffa5e
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/changes/actualization/ya.make
@@ -0,0 +1,8 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/changes/actualization/construction
+    ydb/core/tx/columnshard/engines/changes/actualization/controller
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/changes/cleanup.cpp b/ydb/core/tx/columnshard/engines/changes/cleanup.cpp
deleted file mode 100644
index e99f5730913e..000000000000
--- a/ydb/core/tx/columnshard/engines/changes/cleanup.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-#include "cleanup.h"
-#include 
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap {
-
-void TCleanupColumnEngineChanges::DoDebugString(TStringOutput& out) const {
-    if (ui32 dropped = PortionsToDrop.size()) {
-        out << "drop " << dropped << " portions";
-        for (auto& portionInfo : PortionsToDrop) {
-            out << portionInfo.DebugString();
-        }
-    }
-}
-
-void TCleanupColumnEngineChanges::DoWriteIndex(NColumnShard::TColumnShard& self, TWriteIndexContext& context) {
-    self.IncCounter(NColumnShard::COUNTER_PORTIONS_ERASED, PortionsToDrop.size());
-    THashSet pathIds;
-    for (auto&& p : PortionsToDrop) {
-        auto removing = BlobsAction.GetRemoving(p);
-        for (auto&& r : p.Records) {
-            removing->DeclareRemove(r.BlobRange.BlobId);
-        }
-        pathIds.emplace(p.GetPathId());
-        self.IncCounter(NColumnShard::COUNTER_RAW_BYTES_ERASED, p.RawBytesSum());
-    }
-    for (auto&& p: pathIds) {
-        self.TablesManager.TryFinalizeDropPath(context.Txc, p);
-    }
-}
-
-bool TCleanupColumnEngineChanges::DoApplyChanges(TColumnEngineForLogs& self, TApplyChangesContext& context) {
-    for (auto& portionInfo : PortionsToDrop) {
-        if (!self.ErasePortion(portionInfo)) {
-            AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "Cannot erase portion")("portion", portionInfo.DebugString());
-            continue;
-        }
-        portionInfo.RemoveFromDatabase(context.DB);
-    }
-
-    return true;
-}
-
-void TCleanupColumnEngineChanges::DoStart(NColumnShard::TColumnShard& self) {
-    self.BackgroundController.StartCleanup();
-}
-
-void TCleanupColumnEngineChanges::DoWriteIndexComplete(NColumnShard::TColumnShard& /*self*/, TWriteIndexCompleteContext& context) {
-    context.TriggerActivity = NeedRepeat ? NColumnShard::TBackgroundActivity::Cleanup() : NColumnShard::TBackgroundActivity::None();
-}
-
-void TCleanupColumnEngineChanges::DoOnFinish(NColumnShard::TColumnShard& self, TChangesFinishContext& /*context*/) {
-    self.BackgroundController.FinishCleanup();
-}
-
-NColumnShard::ECumulativeCounters TCleanupColumnEngineChanges::GetCounterIndex(const bool isSuccess) const {
-    return isSuccess ? NColumnShard::COUNTER_CLEANUP_SUCCESS : NColumnShard::COUNTER_CLEANUP_FAIL;
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/changes/cleanup.h b/ydb/core/tx/columnshard/engines/changes/cleanup.h
deleted file mode 100644
index b5c47f81fc1e..000000000000
--- a/ydb/core/tx/columnshard/engines/changes/cleanup.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#pragma once
-#include "abstract/abstract.h"
-
-namespace NKikimr::NOlap {
-
-class TCleanupColumnEngineChanges: public TColumnEngineChanges {
-private:
-    using TBase = TColumnEngineChanges;
-    THashMap> BlobsToForget;
-    THashMap>> StoragePortions;
-protected:
-    virtual void DoStart(NColumnShard::TColumnShard& self) override;
-    virtual void DoOnFinish(NColumnShard::TColumnShard& self, TChangesFinishContext& context) override;
-    virtual bool DoApplyChanges(TColumnEngineForLogs& self, TApplyChangesContext& context) override;
-    virtual void DoDebugString(TStringOutput& out) const override;
-    virtual void DoWriteIndexComplete(NColumnShard::TColumnShard& self, TWriteIndexCompleteContext& context) override;
-    virtual void DoWriteIndex(NColumnShard::TColumnShard& self, TWriteIndexContext& context) override;
-    virtual void DoCompile(TFinalizationContext& /*context*/) override {
-    }
-    virtual TConclusionStatus DoConstructBlobs(TConstructionContext& /*context*/) noexcept override {
-        return TConclusionStatus::Success();
-    }
-    virtual bool NeedConstruction() const override {
-        return false;
-    }
-    virtual NColumnShard::ECumulativeCounters GetCounterIndex(const bool isSuccess) const override;
-    virtual ui64 DoCalcMemoryForUsage() const override {
-        return 0;
-    }
-public:
-    TCleanupColumnEngineChanges(const std::shared_ptr& storagesManager)
-        : TBase(storagesManager, StaticTypeName()) {
-
-    }
-
-
-    virtual THashSet GetTouchedPortions() const override {
-        THashSet result;
-        for (const auto& portionInfo : PortionsToDrop) {
-            result.emplace(portionInfo.GetAddress());
-        }
-        return result;
-    }
-
-    std::vector PortionsToDrop;
-    bool NeedRepeat = false;
-
-    virtual ui32 GetWritePortionsCount() const override {
-        return 0;
-    }
-    virtual TPortionInfoWithBlobs* GetWritePortionInfo(const ui32 /*index*/) override {
-        return nullptr;
-    }
-    virtual bool NeedWritePortion(const ui32 /*index*/) const override {
-        return true;
-    }
-
-    static TString StaticTypeName() {
-        return "CS::CLEANUP";
-    }
-
-    virtual TString TypeString() const override {
-        return StaticTypeName();
-    }
-};
-
-}
diff --git a/ydb/core/tx/columnshard/engines/changes/cleanup_portions.cpp b/ydb/core/tx/columnshard/engines/changes/cleanup_portions.cpp
new file mode 100644
index 000000000000..3aa29ed01a13
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/changes/cleanup_portions.cpp
@@ -0,0 +1,63 @@
+#include "cleanup_portions.h"
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+
+void TCleanupPortionsColumnEngineChanges::DoDebugString(TStringOutput& out) const {
+    if (ui32 dropped = PortionsToDrop.size()) {
+        out << "drop " << dropped << " portions";
+        for (auto& portionInfo : PortionsToDrop) {
+            out << portionInfo.DebugString();
+        }
+    }
+}
+
+void TCleanupPortionsColumnEngineChanges::DoWriteIndexOnExecute(NColumnShard::TColumnShard* self, TWriteIndexContext& context) {
+    THashSet pathIds;
+    if (self) {
+        THashMap> blobIdsByStorage;
+        for (auto&& p : PortionsToDrop) {
+            p.RemoveFromDatabase(context.DBWrapper);
+
+            p.FillBlobIdsByStorage(blobIdsByStorage, context.EngineLogs.GetVersionedIndex());
+            pathIds.emplace(p.GetPathId());
+        }
+        for (auto&& i : blobIdsByStorage) {
+            auto action = BlobsAction.GetRemoving(i.first);
+            for (auto&& b : i.second) {
+                action->DeclareRemove((TTabletId)self->TabletID(), b);
+            }
+        }
+    }
+}
+
+void TCleanupPortionsColumnEngineChanges::DoWriteIndexOnComplete(NColumnShard::TColumnShard* self, TWriteIndexCompleteContext& context) {
+    for (auto& portionInfo : PortionsToDrop) {
+        if (!context.EngineLogs.ErasePortion(portionInfo)) {
+            AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "Cannot erase portion")("portion", portionInfo.DebugString());
+        }
+    }
+    if (self) {
+        self->IncCounter(NColumnShard::COUNTER_PORTIONS_ERASED, PortionsToDrop.size());
+        for (auto&& p : PortionsToDrop) {
+            self->IncCounter(NColumnShard::COUNTER_RAW_BYTES_ERASED, p.GetTotalRawBytes());
+        }
+    }
+}
+
+void TCleanupPortionsColumnEngineChanges::DoStart(NColumnShard::TColumnShard& self) {
+    self.BackgroundController.StartCleanupPortions();
+}
+
+void TCleanupPortionsColumnEngineChanges::DoOnFinish(NColumnShard::TColumnShard& self, TChangesFinishContext& /*context*/) {
+    self.BackgroundController.FinishCleanupPortions();
+}
+
+NColumnShard::ECumulativeCounters TCleanupPortionsColumnEngineChanges::GetCounterIndex(const bool isSuccess) const {
+    return isSuccess ? NColumnShard::COUNTER_CLEANUP_SUCCESS : NColumnShard::COUNTER_CLEANUP_FAIL;
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/changes/cleanup_portions.h b/ydb/core/tx/columnshard/engines/changes/cleanup_portions.h
new file mode 100644
index 000000000000..f4addb74f048
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/changes/cleanup_portions.h
@@ -0,0 +1,61 @@
+#pragma once
+#include "abstract/abstract.h"
+
+namespace NKikimr::NOlap {
+
+class TCleanupPortionsColumnEngineChanges: public TColumnEngineChanges {
+private:
+    using TBase = TColumnEngineChanges;
+    THashMap> BlobsToForget;
+    THashMap>> StoragePortions;
+protected:
+    virtual void DoWriteIndexOnComplete(NColumnShard::TColumnShard* self, TWriteIndexCompleteContext& context) override;
+    virtual void DoWriteIndexOnExecute(NColumnShard::TColumnShard* self, TWriteIndexContext& context) override;
+
+    virtual void DoStart(NColumnShard::TColumnShard& self) override;
+    virtual void DoOnFinish(NColumnShard::TColumnShard& self, TChangesFinishContext& context) override;
+    virtual void DoDebugString(TStringOutput& out) const override;
+    virtual void DoCompile(TFinalizationContext& /*context*/) override {
+    }
+    virtual TConclusionStatus DoConstructBlobs(TConstructionContext& /*context*/) noexcept override {
+        return TConclusionStatus::Success();
+    }
+    virtual bool NeedConstruction() const override {
+        return false;
+    }
+    virtual NColumnShard::ECumulativeCounters GetCounterIndex(const bool isSuccess) const override;
+    virtual ui64 DoCalcMemoryForUsage() const override {
+        return 0;
+    }
+    virtual std::shared_ptr DoBuildDataLock() const override {
+        return std::make_shared(TypeString() + "::" + GetTaskIdentifier(), PortionsToDrop);
+    }
+
+public:
+    TCleanupPortionsColumnEngineChanges(const std::shared_ptr& storagesManager)
+        : TBase(storagesManager, NBlobOperations::EConsumer::CLEANUP_PORTIONS) {
+
+    }
+
+    std::vector PortionsToDrop;
+
+    virtual ui32 GetWritePortionsCount() const override {
+        return 0;
+    }
+    virtual TPortionInfoWithBlobs* GetWritePortionInfo(const ui32 /*index*/) override {
+        return nullptr;
+    }
+    virtual bool NeedWritePortion(const ui32 /*index*/) const override {
+        return false;
+    }
+
+    static TString StaticTypeName() {
+        return "CS::CLEANUP::PORTIONS";
+    }
+
+    virtual TString TypeString() const override {
+        return StaticTypeName();
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/changes/cleanup_tables.cpp b/ydb/core/tx/columnshard/engines/changes/cleanup_tables.cpp
new file mode 100644
index 000000000000..e600be9d6ef0
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/changes/cleanup_tables.cpp
@@ -0,0 +1,42 @@
+#include "cleanup_tables.h"
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+
+void TCleanupTablesColumnEngineChanges::DoDebugString(TStringOutput& out) const {
+    if (ui32 dropped = TablesToDrop.size()) {
+        out << "drop " << dropped << " tables: " << JoinSeq(",", TablesToDrop) << ";";
+    }
+}
+
+void TCleanupTablesColumnEngineChanges::DoWriteIndexOnExecute(NColumnShard::TColumnShard* self, TWriteIndexContext& context) {
+    if (self && context.DB) {
+        for (auto&& t : TablesToDrop) {
+            self->TablesManager.TryFinalizeDropPathOnExecute(*context.DB, t);
+        }
+    }
+}
+
+void TCleanupTablesColumnEngineChanges::DoWriteIndexOnComplete(NColumnShard::TColumnShard* self, TWriteIndexCompleteContext& /*context*/) {
+    for (auto&& t : TablesToDrop) {
+        self->TablesManager.TryFinalizeDropPathOnComplete(t);
+    }
+}
+
+void TCleanupTablesColumnEngineChanges::DoStart(NColumnShard::TColumnShard& self) {
+    self.BackgroundController.StartCleanupTables();
+}
+
+void TCleanupTablesColumnEngineChanges::DoOnFinish(NColumnShard::TColumnShard& self, TChangesFinishContext& /*context*/) {
+    self.BackgroundController.FinishCleanupTables();
+}
+
+NColumnShard::ECumulativeCounters TCleanupTablesColumnEngineChanges::GetCounterIndex(const bool isSuccess) const {
+    return isSuccess ? NColumnShard::COUNTER_CLEANUP_SUCCESS : NColumnShard::COUNTER_CLEANUP_FAIL;
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/changes/cleanup_tables.h b/ydb/core/tx/columnshard/engines/changes/cleanup_tables.h
new file mode 100644
index 000000000000..5f5b7a9bd00b
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/changes/cleanup_tables.h
@@ -0,0 +1,59 @@
+#pragma once
+#include "abstract/abstract.h"
+
+namespace NKikimr::NOlap {
+
+class TCleanupTablesColumnEngineChanges: public TColumnEngineChanges {
+private:
+    using TBase = TColumnEngineChanges;
+protected:
+    virtual void DoWriteIndexOnComplete(NColumnShard::TColumnShard* self, TWriteIndexCompleteContext& context) override;
+    virtual void DoWriteIndexOnExecute(NColumnShard::TColumnShard* self, TWriteIndexContext& context) override;
+
+    virtual void DoStart(NColumnShard::TColumnShard& self) override;
+    virtual void DoOnFinish(NColumnShard::TColumnShard& self, TChangesFinishContext& context) override;
+    virtual void DoDebugString(TStringOutput& out) const override;
+    virtual void DoCompile(TFinalizationContext& /*context*/) override {
+    }
+    virtual TConclusionStatus DoConstructBlobs(TConstructionContext& /*context*/) noexcept override {
+        return TConclusionStatus::Success();
+    }
+    virtual bool NeedConstruction() const override {
+        return false;
+    }
+    virtual NColumnShard::ECumulativeCounters GetCounterIndex(const bool isSuccess) const override;
+    virtual ui64 DoCalcMemoryForUsage() const override {
+        return 0;
+    }
+    virtual std::shared_ptr DoBuildDataLock() const override {
+        return std::make_shared(TypeString() + "::" + GetTaskIdentifier(), TablesToDrop);
+    }
+
+public:
+    TCleanupTablesColumnEngineChanges(const std::shared_ptr& storagesManager)
+        : TBase(storagesManager, NBlobOperations::EConsumer::CLEANUP_TABLES) {
+
+    }
+
+    THashSet TablesToDrop;
+
+    virtual ui32 GetWritePortionsCount() const override {
+        return 0;
+    }
+    virtual TPortionInfoWithBlobs* GetWritePortionInfo(const ui32 /*index*/) override {
+        return nullptr;
+    }
+    virtual bool NeedWritePortion(const ui32 /*index*/) const override {
+        return false;
+    }
+
+    static TString StaticTypeName() {
+        return "CS::CLEANUP::TABLES";
+    }
+
+    virtual TString TypeString() const override {
+        return StaticTypeName();
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/changes/compaction.cpp b/ydb/core/tx/columnshard/engines/changes/compaction.cpp
index 6ad04f33711c..24e1e8c5c0e5 100644
--- a/ydb/core/tx/columnshard/engines/changes/compaction.cpp
+++ b/ydb/core/tx/columnshard/engines/changes/compaction.cpp
@@ -27,34 +27,34 @@ void TCompactColumnEngineChanges::DoCompile(TFinalizationContext& context) {
     }
 }
 
-bool TCompactColumnEngineChanges::DoApplyChanges(TColumnEngineForLogs& self, TApplyChangesContext& context) {
-    return TBase::DoApplyChanges(self, context);
-}
-
-void TCompactColumnEngineChanges::DoWriteIndex(NColumnShard::TColumnShard& self, TWriteIndexContext& context) {
-    TBase::DoWriteIndex(self, context);
-}
-
 void TCompactColumnEngineChanges::DoStart(NColumnShard::TColumnShard& self) {
     TBase::DoStart(self);
 
     Y_ABORT_UNLESS(SwitchedPortions.size());
+    THashMap> blobRanges;
+    auto& index = self.GetIndexAs().GetVersionedIndex();
     for (const auto& p : SwitchedPortions) {
         Y_ABORT_UNLESS(!p.Empty());
-        auto action = BlobsAction.GetReading(p);
-        for (const auto& rec : p.Records) {
-            action->AddRange(rec.BlobRange);
+        p.FillBlobRangesByStorage(blobRanges, index);
+    }
+
+    for (const auto& p : blobRanges) {
+        auto action = BlobsAction.GetReading(p.first);
+        for (auto&& b: p.second) {
+            action->AddRange(b);
         }
     }
 
-    self.BackgroundController.StartCompaction(NKikimr::NOlap::TPlanCompactionInfo(GranuleMeta->GetPathId()), *this);
+    self.BackgroundController.StartCompaction(NKikimr::NOlap::TPlanCompactionInfo(GranuleMeta->GetPathId()));
     NeedGranuleStatusProvide = true;
     GranuleMeta->OnCompactionStarted();
 }
 
-void TCompactColumnEngineChanges::DoWriteIndexComplete(NColumnShard::TColumnShard& self, TWriteIndexCompleteContext& context) {
-    TBase::DoWriteIndexComplete(self, context);
-    self.IncCounter(NColumnShard::COUNTER_COMPACTION_TIME, context.Duration.MilliSeconds());
+void TCompactColumnEngineChanges::DoWriteIndexOnComplete(NColumnShard::TColumnShard* self, TWriteIndexCompleteContext& context) {
+    TBase::DoWriteIndexOnComplete(self, context);
+    if (self) {
+        self->IncCounter(NColumnShard::COUNTER_COMPACTION_TIME, context.Duration.MilliSeconds());
+    }
 }
 
 void TCompactColumnEngineChanges::DoOnFinish(NColumnShard::TColumnShard& self, TChangesFinishContext& context) {
@@ -68,8 +68,8 @@ void TCompactColumnEngineChanges::DoOnFinish(NColumnShard::TColumnShard& self, T
     NeedGranuleStatusProvide = false;
 }
 
-TCompactColumnEngineChanges::TCompactColumnEngineChanges(const TSplitSettings& splitSettings, std::shared_ptr granule, const std::vector>& portions, const TSaverContext& saverContext)
-    : TBase(splitSettings, saverContext, StaticTypeName())
+TCompactColumnEngineChanges::TCompactColumnEngineChanges(std::shared_ptr granule, const std::vector>& portions, const TSaverContext& saverContext)
+    : TBase(saverContext, NBlobOperations::EConsumer::GENERAL_COMPACTION)
     , GranuleMeta(granule) {
     Y_ABORT_UNLESS(GranuleMeta);
 
@@ -87,12 +87,4 @@ TCompactColumnEngineChanges::~TCompactColumnEngineChanges() {
     Y_DEBUG_ABORT_UNLESS(!NActors::TlsActivationContext || !NeedGranuleStatusProvide);
 }
 
-THashSet TCompactColumnEngineChanges::GetTouchedPortions() const {
-    THashSet result = TBase::GetTouchedPortions();
-    for (auto&& i : SwitchedPortions) {
-        result.emplace(i.GetAddress());
-    }
-    return result;
-}
-
 }
diff --git a/ydb/core/tx/columnshard/engines/changes/compaction.h b/ydb/core/tx/columnshard/engines/changes/compaction.h
index 7c033fdfbc0e..fc449e341459 100644
--- a/ydb/core/tx/columnshard/engines/changes/compaction.h
+++ b/ydb/core/tx/columnshard/engines/changes/compaction.h
@@ -14,23 +14,24 @@ class TCompactColumnEngineChanges: public TChangesWithAppend {
 protected:
     std::shared_ptr GranuleMeta;
 
+    virtual void DoWriteIndexOnComplete(NColumnShard::TColumnShard* self, TWriteIndexCompleteContext& context) override;
+
     virtual void DoStart(NColumnShard::TColumnShard& self) override;
-    virtual void DoWriteIndexComplete(NColumnShard::TColumnShard& self, TWriteIndexCompleteContext& context) override;
     virtual void DoOnFinish(NColumnShard::TColumnShard& self, TChangesFinishContext& context) override;
-    virtual void DoWriteIndex(NColumnShard::TColumnShard& self, TWriteIndexContext& context) override;
     virtual void DoDebugString(TStringOutput& out) const override;
     virtual void DoCompile(TFinalizationContext& context) override;
-    virtual bool DoApplyChanges(TColumnEngineForLogs& self, TApplyChangesContext& context) override;
     virtual TPortionMeta::EProduced GetResultProducedClass() const = 0;
     virtual void OnAbortEmergency() override {
         NeedGranuleStatusProvide = false;
     }
+    virtual std::shared_ptr DoBuildDataLockImpl() const override {
+        return std::make_shared(TypeString() + "::" + GetTaskIdentifier(), SwitchedPortions);
+    }
+
 public:
     std::vector SwitchedPortions; // Portions that would be replaced by new ones
 
-    virtual THashSet GetTouchedPortions() const override;
-
-    TCompactColumnEngineChanges(const TSplitSettings& splitSettings, std::shared_ptr granule, const std::vector>& portions, const TSaverContext& saverContext);
+    TCompactColumnEngineChanges(std::shared_ptr granule, const std::vector>& portions, const TSaverContext& saverContext);
     ~TCompactColumnEngineChanges();
 
     static TString StaticTypeName() {
diff --git a/ydb/core/tx/columnshard/engines/changes/compaction/column_portion_chunk.cpp b/ydb/core/tx/columnshard/engines/changes/compaction/column_portion_chunk.cpp
index 7b1dbdb36198..09eed586ac20 100644
--- a/ydb/core/tx/columnshard/engines/changes/compaction/column_portion_chunk.cpp
+++ b/ydb/core/tx/columnshard/engines/changes/compaction/column_portion_chunk.cpp
@@ -2,37 +2,25 @@
 #include 
 #include 
 #include 
+#include 
 
 namespace NKikimr::NOlap::NCompaction {
 
-std::vector> TChunkPreparation::DoInternalSplitImpl(const TColumnSaver& saver, const std::shared_ptr& counters, const std::vector& splitSizes) const {
-    auto loader = SchemaInfo->GetColumnLoaderVerified(Record.ColumnId);
-    auto rb = NArrow::TStatusValidator::GetValid(loader->Apply(Data));
-
-    auto chunks = TSimpleSplitter(saver, counters).SplitBySizes(rb, Data, splitSizes);
-    std::vector> newChunks;
-    for (auto&& i : chunks) {
-        Y_ABORT_UNLESS(i.GetSlicedBatch()->num_columns() == 1);
-        newChunks.emplace_back(std::make_shared(saver.Apply(i.GetSlicedBatch()), i.GetSlicedBatch()->column(0), GetColumnId(), SchemaInfo));
-    }
-    return newChunks;
-}
-
 std::shared_ptr TColumnPortion::AppendBlob(const TString& data, const TColumnRecord& columnChunk, ui32& remained) {
-//    if (CurrentPortionRecords + columnChunk.GetMeta().GetNumRowsVerified() <= Context.GetPortionRowsCountLimit() &&
-//        columnChunk.GetMeta().GetRawBytesVerified() < Context.GetChunkRawBytesLimit() &&
+//    if (CurrentPortionRecords + columnChunk.GetMeta().GetNumRows() <= Context.GetPortionRowsCountLimit() &&
+//        columnChunk.GetMeta().GetRawBytes() < Context.GetChunkRawBytesLimit() &&
 //        data.size() < Context.GetChunkPackedBytesLimit() &&
-//        columnChunk.GetMeta().GetRawBytesVerified() > Context.GetStorePackedChunkSizeLimit() && Context.GetSaver().IsHardPacker() &&
+//        columnChunk.GetMeta().GetRawBytes() > Context.GetStorePackedChunkSizeLimit() && Context.GetSaver().IsHardPacker() &&
 //        Context.GetUseWholeChunksOptimization())
 //    {
 //        NChanges::TGeneralCompactionCounters::OnFullBlobAppend(columnChunk.BlobRange.GetBlobSize());
 //        FlushBuffer();
 //        Chunks.emplace_back(std::make_shared(data, columnChunk, Context.GetSchemaInfo()));
 //        PackedSize += Chunks.back()->GetPackedSize();
-//        CurrentPortionRecords += columnChunk.GetMeta().GetNumRowsVerified();
+//        CurrentPortionRecords += columnChunk.GetMeta().GetNumRows();
 //        return nullptr;
 //    } else {
-        NChanges::TGeneralCompactionCounters::OnSplittedBlobAppend(columnChunk.BlobRange.GetBlobSize());
+        NChanges::TGeneralCompactionCounters::OnSplittedBlobAppend(columnChunk.BlobRange.GetSize());
         auto batch = NArrow::TStatusValidator::GetValid(Context.GetLoader()->Apply(data));
         AFL_VERIFY(batch->num_columns() == 1);
         auto batchArray = batch->column(0);
@@ -72,7 +60,7 @@ ui32 TColumnPortion::AppendSlice(const std::shared_ptr& a, const u
 bool TColumnPortion::FlushBuffer() {
     if (Builder->length()) {
         auto newArrayChunk = NArrow::TStatusValidator::GetValid(Builder->Finish());
-        Chunks.emplace_back(std::make_shared(Context.GetSaver().Apply(newArrayChunk, Context.GetResultField()), newArrayChunk, Context.GetColumnId(), Context.GetSchemaInfo()));
+        Chunks.emplace_back(std::make_shared(Context.GetSaver().Apply(newArrayChunk, Context.GetResultField()), newArrayChunk, TChunkAddress(Context.GetColumnId(), 0), ColumnInfo));
         Builder = Context.MakeBuilder();
         CurrentChunkRawSize = 0;
         PredictedPackedBytes = 0;
diff --git a/ydb/core/tx/columnshard/engines/changes/compaction/column_portion_chunk.h b/ydb/core/tx/columnshard/engines/changes/compaction/column_portion_chunk.h
index aa3a15ddceef..f1d4cbadd6cf 100644
--- a/ydb/core/tx/columnshard/engines/changes/compaction/column_portion_chunk.h
+++ b/ydb/core/tx/columnshard/engines/changes/compaction/column_portion_chunk.h
@@ -10,102 +10,6 @@
 
 namespace NKikimr::NOlap::NCompaction {
 
-class TChunkPreparation: public IPortionColumnChunk {
-private:
-    using TBase = IPortionColumnChunk;
-    TString Data;
-    TColumnRecord Record;
-    ISnapshotSchema::TPtr SchemaInfo;
-    std::shared_ptr First;
-    std::shared_ptr Last;
-protected:
-    virtual std::vector> DoInternalSplitImpl(const TColumnSaver& saver, const std::shared_ptr& counters, const std::vector& splitSizes) const override;
-    virtual const TString& DoGetData() const override {
-        return Data;
-    }
-    virtual ui32 DoGetRecordsCountImpl() const override {
-        return Record.GetMeta().GetNumRowsVerified();
-    }
-    virtual TString DoDebugString() const override {
-        return "";
-    }
-    virtual TSimpleChunkMeta DoBuildSimpleChunkMeta() const override {
-        return Record.GetMeta();
-    }
-    virtual std::shared_ptr DoGetFirstScalar() const override {
-        return First;
-    }
-    virtual std::shared_ptr DoGetLastScalar() const override {
-        return Last;
-    }
-
-public:
-    const TColumnRecord& GetRecord() const {
-        return Record;
-    }
-
-    TChunkPreparation(const TString& data, const TColumnRecord& columnChunk, ISnapshotSchema::TPtr schema)
-        : TBase(columnChunk.ColumnId)
-        , Data(data)
-        , Record(columnChunk)
-        , SchemaInfo(schema) {
-        Y_ABORT_UNLESS(Data.size() == Record.BlobRange.Size || columnChunk.BlobRange.Size == 0);
-    }
-
-    TChunkPreparation(const TString& data, const std::shared_ptr& column, const ui32 columnId, ISnapshotSchema::TPtr schema)
-        : TBase(columnId)
-        , Data(data)
-        , Record(TChunkAddress(columnId, 0), column, schema->GetIndexInfo())
-        , SchemaInfo(schema) {
-        Y_ABORT_UNLESS(column->length());
-        First = NArrow::TStatusValidator::GetValid(column->GetScalar(0));
-        Last = NArrow::TStatusValidator::GetValid(column->GetScalar(column->length() - 1));
-        Record.BlobRange.Size = data.size();
-    }
-};
-
-class TNullChunkPreparation: public IPortionColumnChunk {
-private:
-    using TBase = IPortionColumnChunk;
-    const ui32 RecordsCount;
-    TString Data;
-protected:
-    virtual std::vector> DoInternalSplitImpl(const TColumnSaver& /*saver*/, const std::shared_ptr& /*counters*/,
-                                                                                const std::vector& /*splitSizes*/) const override {
-        AFL_VERIFY(false);
-        return {};
-    }
-    virtual const TString& DoGetData() const override {
-        return Data;
-    }
-    virtual ui32 DoGetRecordsCountImpl() const override {
-        return RecordsCount;
-    }
-    virtual TString DoDebugString() const override {
-        return TStringBuilder() << "rc=" << RecordsCount << ";data_size=" << Data.size() << ";";
-    }
-    virtual TSimpleChunkMeta DoBuildSimpleChunkMeta() const override {
-        AFL_VERIFY(false);
-        return TSimpleChunkMeta(nullptr, false, false);
-    }
-    virtual std::shared_ptr DoGetFirstScalar() const override {
-        return nullptr;
-    }
-    virtual std::shared_ptr DoGetLastScalar() const override {
-        return nullptr;
-    }
-
-public:
-    TNullChunkPreparation(const ui32 columnId, const ui32 recordsCount, const std::shared_ptr& f, const TColumnSaver& saver)
-        : TBase(columnId)
-        , RecordsCount(recordsCount)
-        , Data(saver.Apply(NArrow::TThreadSimpleArraysCache::GetNull(f->type(), recordsCount), f))
-    {
-        Y_ABORT_UNLESS(RecordsCount);
-        SetChunkIdx(0);
-    }
-};
-
 class TColumnPortionResult {
 protected:
     std::vector> Chunks;
@@ -143,10 +47,13 @@ class TColumnPortion: public TColumnPortionResult {
     const TColumnMergeContext& Context;
     YDB_READONLY(ui64, CurrentChunkRawSize, 0);
     double PredictedPackedBytes = 0;
+    const TSimpleColumnInfo ColumnInfo;
 public:
     TColumnPortion(const TColumnMergeContext& context)
         : TBase(context.GetColumnId())
-        , Context(context) {
+        , Context(context)
+        , ColumnInfo(Context.GetIndexInfo().GetColumnFeaturesVerified(context.GetColumnId()))
+    {
         Builder = Context.MakeBuilder();
     }
 
diff --git a/ydb/core/tx/columnshard/engines/changes/compaction/merge_context.h b/ydb/core/tx/columnshard/engines/changes/compaction/merge_context.h
index 834ca2293154..a5da857c2aff 100644
--- a/ydb/core/tx/columnshard/engines/changes/compaction/merge_context.h
+++ b/ydb/core/tx/columnshard/engines/changes/compaction/merge_context.h
@@ -42,10 +42,10 @@ class TColumnMergeContext {
     }
 
     TColumnMergeContext(const ui32 columnId, const ISnapshotSchema::TPtr& schema, const ui32 portionRowsCountLimit, const ui32 chunkRawBytesLimit,
-        const std::optional& columnStat, const TSaverContext& saverContext)
+        const std::optional& columnStat)
         : ColumnId(columnId)
         , SchemaInfo(schema)
-        , Saver(schema->GetColumnSaver(columnId, saverContext))
+        , Saver(schema->GetColumnSaver(columnId))
         , Loader(schema->GetColumnLoaderOptional(columnId))
         , ResultField(schema->GetIndexInfo().GetColumnFieldVerified(columnId))
         , PortionRowsCountLimit(portionRowsCountLimit)
diff --git a/ydb/core/tx/columnshard/engines/changes/compaction/merged_column.cpp b/ydb/core/tx/columnshard/engines/changes/compaction/merged_column.cpp
index ed03a8fcf523..5f638a30f155 100644
--- a/ydb/core/tx/columnshard/engines/changes/compaction/merged_column.cpp
+++ b/ydb/core/tx/columnshard/engines/changes/compaction/merged_column.cpp
@@ -3,7 +3,7 @@
 namespace NKikimr::NOlap::NCompaction {
 
 void TMergedColumn::AppendBlob(const TString& data, const TColumnRecord& columnChunk) {
-    RecordsCount += columnChunk.GetMeta().GetNumRowsVerified();
+    RecordsCount += columnChunk.GetMeta().GetNumRows();
     ui32 remained;
     std::shared_ptr dataArray = Portions.back().AppendBlob(data, columnChunk, remained);
     while (remained) {
diff --git a/ydb/core/tx/columnshard/engines/changes/general_compaction.cpp b/ydb/core/tx/columnshard/engines/changes/general_compaction.cpp
index 2b47f9b8a736..14dad1e76bb8 100644
--- a/ydb/core/tx/columnshard/engines/changes/general_compaction.cpp
+++ b/ydb/core/tx/columnshard/engines/changes/general_compaction.cpp
@@ -11,20 +11,21 @@
 #include 
 #include 
 #include 
+#include 
 #include 
-#include 
+#include 
+#include 
 
 namespace NKikimr::NOlap::NCompaction {
 
-void TGeneralCompactColumnEngineChanges::BuildAppendedPortionsByFullBatches(TConstructionContext& context) noexcept {
-    std::vector portions = TPortionInfoWithBlobs::RestorePortions(SwitchedPortions, Blobs);
+void TGeneralCompactColumnEngineChanges::BuildAppendedPortionsByFullBatches(TConstructionContext& context, std::vector&& portions) noexcept {
     std::vector> batchResults;
     auto resultSchema = context.SchemaVersions.GetLastSchema();
     {
         auto resultDataSchema = resultSchema->GetIndexInfo().ArrowSchemaWithSpecials();
-        NIndexedReader::TMergePartialStream mergeStream(resultSchema->GetIndexInfo().GetReplaceKey(), resultDataSchema, false);
+        NArrow::NMerger::TMergePartialStream mergeStream(resultSchema->GetIndexInfo().GetReplaceKey(), resultDataSchema, false, IIndexInfo::GetSpecialColumnNames());
         for (auto&& i : portions) {
-            auto dataSchema = context.SchemaVersions.GetSchema(i.GetPortionInfo().GetMinSnapshot());
+            auto dataSchema = i.GetPortionInfo().GetSchema(context.SchemaVersions);
             auto batch = i.GetBatch(dataSchema, *resultSchema);
             batch = resultSchema->NormalizeBatch(*dataSchema, batch);
             Y_DEBUG_ABORT_UNLESS(NArrow::IsSortedAndUnique(batch, resultSchema->GetIndexInfo().GetReplaceKey()));
@@ -34,7 +35,7 @@ void TGeneralCompactColumnEngineChanges::BuildAppendedPortionsByFullBatches(TCon
     }
     Y_ABORT_UNLESS(batchResults.size());
     for (auto&& b : batchResults) {
-        auto portions = MakeAppendedPortions(b, GranuleMeta->GetPathId(), resultSchema->GetSnapshot(), GranuleMeta.get(), context);
+        auto portions = MakeAppendedPortions(b, GranuleMeta->GetPathId(), resultSchema->GetSnapshot(), GranuleMeta.get(), context, {});
         Y_ABORT_UNLESS(portions.size());
         for (auto& portion : portions) {
             AppendedPortions.emplace_back(std::move(portion));
@@ -42,14 +43,14 @@ void TGeneralCompactColumnEngineChanges::BuildAppendedPortionsByFullBatches(TCon
     }
 }
 
-void TGeneralCompactColumnEngineChanges::BuildAppendedPortionsByChunks(TConstructionContext& context) noexcept {
-    std::vector portions = TPortionInfoWithBlobs::RestorePortions(SwitchedPortions, Blobs);
+void TGeneralCompactColumnEngineChanges::BuildAppendedPortionsByChunks(TConstructionContext& context, std::vector&& portions) noexcept {
     static const TString portionIdFieldName = "$$__portion_id";
     static const TString portionRecordIndexFieldName = "$$__portion_record_idx";
     static const std::shared_ptr portionIdField = std::make_shared(portionIdFieldName, std::make_shared());
     static const std::shared_ptr portionRecordIndexField = std::make_shared(portionRecordIndexFieldName, std::make_shared());
 
     auto resultSchema = context.SchemaVersions.GetLastSchema();
+
     std::vector pkFieldNames = resultSchema->GetIndexInfo().GetReplaceKey()->field_names();
     std::set pkFieldNamesSet(pkFieldNames.begin(), pkFieldNames.end());
     for (auto&& i : TIndexInfo::GetSpecialColumnNames()) {
@@ -65,10 +66,10 @@ void TGeneralCompactColumnEngineChanges::BuildAppendedPortionsByChunks(TConstruc
             indexFields.emplace_back(i);
         }
         auto dataSchema = std::make_shared(indexFields);
-        NIndexedReader::TMergePartialStream mergeStream(resultSchema->GetIndexInfo().GetReplaceKey(), dataSchema, false);
+        NArrow::NMerger::TMergePartialStream mergeStream(resultSchema->GetIndexInfo().GetReplaceKey(), dataSchema, false, IIndexInfo::GetSpecialColumnNames());
         ui32 idx = 0;
         for (auto&& i : portions) {
-            auto dataSchema = context.SchemaVersions.GetSchema(i.GetPortionInfo().GetMinSnapshot());
+            auto dataSchema = i.GetPortionInfo().GetSchema(context.SchemaVersions);
             auto batch = i.GetBatch(dataSchema, *resultSchema, pkFieldNamesSet);
             {
                 NArrow::NConstruction::IArrayBuilder::TPtr column = std::make_shared>>(portionIdFieldName, idx++);
@@ -99,14 +100,14 @@ void TGeneralCompactColumnEngineChanges::BuildAppendedPortionsByChunks(TConstruc
 
         std::vector cursors;
         for (auto&& p : portions) {
-            auto dataSchema = context.SchemaVersions.GetSchema(p.GetPortionInfo().GetMinSnapshot());
+            auto dataSchema = p.GetPortionInfo().GetSchema(context.SchemaVersions);
             auto loader = dataSchema->GetColumnLoaderOptional(columnId);
             std::vector records;
             std::vector> chunks;
             if (!p.ExtractColumnChunks(columnId, records, chunks)) {
                 AFL_VERIFY(!loader);
                 records = {nullptr};
-                chunks.emplace_back(std::make_shared(columnId, p.GetPortionInfo().GetRecordsCount(), resultField, resultSchema->GetColumnSaver(columnId, SaverContext)));
+                chunks.emplace_back(std::make_shared(columnId, p.GetPortionInfo().GetRecordsCount(), resultField, resultSchema->GetColumnSaver(columnId)));
                 loader = resultSchema->GetColumnLoaderVerified(columnId);
             }
             AFL_VERIFY(!!loader);
@@ -118,8 +119,8 @@ void TGeneralCompactColumnEngineChanges::BuildAppendedPortionsByChunks(TConstruc
         std::map> columnChunks;
         ui32 batchIdx = 0;
         for (auto&& batchResult : batchResults) {
-            const ui32 portionRecordsCountLimit = batchResult->num_rows() / (batchResult->num_rows() / GetSplitSettings().GetExpectedRecordsCountOnPage() + 1) + 1;
-            TColumnMergeContext context(columnId, resultSchema, portionRecordsCountLimit, GetSplitSettings().GetExpectedUnpackColumnChunkRawSize(), columnInfo, SaverContext);
+            const ui32 portionRecordsCountLimit = batchResult->num_rows() / (batchResult->num_rows() / NSplitter::TSplitSettings().GetExpectedRecordsCountOnPage() + 1) + 1;
+            TColumnMergeContext context(columnId, resultSchema, portionRecordsCountLimit, NSplitter::TSplitSettings().GetExpectedUnpackColumnChunkRawSize(), columnInfo);
             TMergedColumn mColumn(context);
 
             auto columnPortionIdx = batchResult->GetColumnByName(portionIdFieldName);
@@ -159,6 +160,8 @@ void TGeneralCompactColumnEngineChanges::BuildAppendedPortionsByChunks(TConstruc
 
     }
     ui32 batchIdx = 0;
+
+    const auto groups = resultSchema->GetIndexInfo().GetEntityGroupsByStorageId(IStoragesManager::DefaultStorageId, *SaverContext.GetStoragesManager());
     for (auto&& columnChunks : chunkGroups) {
         auto batchResult = batchResults[batchIdx];
         ++batchIdx;
@@ -174,28 +177,29 @@ void TGeneralCompactColumnEngineChanges::BuildAppendedPortionsByChunks(TConstruc
         }
 
         std::vector batchSlices;
-        std::shared_ptr schemaDetails(new TDefaultSchemaDetails(resultSchema, SaverContext, stats));
+        std::shared_ptr schemaDetails(new TDefaultSchemaDetails(resultSchema, stats));
 
         for (ui32 i = 0; i < columnChunks.begin()->second.size(); ++i) {
-            std::map>> portionColumns;
+            THashMap>> portionColumns;
             for (auto&& p : columnChunks) {
                 portionColumns.emplace(p.first, p.second[i].GetChunks());
             }
             resultSchema->GetIndexInfo().AppendIndexes(portionColumns);
-            batchSlices.emplace_back(portionColumns, schemaDetails, context.Counters.SplitterCounters, GetSplitSettings());
+            batchSlices.emplace_back(portionColumns, schemaDetails, context.Counters.SplitterCounters);
         }
-        TSimilarSlicer slicer(GetSplitSettings().GetExpectedPortionSize());
+        TSimilarPacker slicer(NSplitter::TSplitSettings().GetExpectedPortionSize());
         auto packs = slicer.Split(batchSlices);
 
         ui32 recordIdx = 0;
         for (auto&& i : packs) {
             TGeneralSerializedSlice slice(std::move(i));
             auto b = batchResult->Slice(recordIdx, slice.GetRecordsCount());
-            std::vector>> chunksByBlobs = slice.GroupChunksByBlobs();
-            AppendedPortions.emplace_back(TPortionInfoWithBlobs::BuildByBlobs(chunksByBlobs, nullptr, GranuleMeta->GetPathId(), resultSchema->GetSnapshot(), SaverContext.GetStorageOperator()));
+            AppendedPortions.emplace_back(TPortionInfoWithBlobs::BuildByBlobs(slice.GroupChunksByBlobs(groups), nullptr, GranuleMeta->GetPathId(),
+                resultSchema->GetVersion(), resultSchema->GetSnapshot(), SaverContext.GetStoragesManager()));
+            AppendedPortions.back().FillStatistics(resultSchema->GetIndexInfo());
             NArrow::TFirstLastSpecialKeys primaryKeys(slice.GetFirstLastPKBatch(resultSchema->GetIndexInfo().GetReplaceKey()));
             NArrow::TMinMaxSpecialKeys snapshotKeys(b, TIndexInfo::ArrowSchemaSnapshot());
-            AppendedPortions.back().GetPortionInfo().AddMetadata(*resultSchema, primaryKeys, snapshotKeys, SaverContext.GetTierName());
+            AppendedPortions.back().GetPortionInfo().AddMetadata(*resultSchema, primaryKeys, snapshotKeys, IStoragesManager::DefaultStorageId);
             recordIdx += slice.GetRecordsCount();
         }
     }
@@ -209,22 +213,25 @@ TConclusionStatus TGeneralCompactColumnEngineChanges::DoConstructBlobs(TConstruc
     i64 otherPortionsSize = 0;
     for (auto&& i : SwitchedPortions) {
         if (i.GetMeta().GetProduced() == TPortionMeta::EProduced::INSERTED) {
-            insertedPortionsSize += i.GetBlobBytes();
+            insertedPortionsSize += i.GetTotalBlobBytes();
         } else if (i.GetMeta().GetProduced() == TPortionMeta::EProduced::SPLIT_COMPACTED) {
-            compactedPortionsSize += i.GetBlobBytes();
+            compactedPortionsSize += i.GetTotalBlobBytes();
         } else {
-            otherPortionsSize += i.GetBlobBytes();
+            otherPortionsSize += i.GetTotalBlobBytes();
         }
-        portionsSize += i.GetBlobBytes();
+        portionsSize += i.GetTotalBlobBytes();
         ++portionsCount;
     }
     NChanges::TGeneralCompactionCounters::OnPortionsKind(insertedPortionsSize, compactedPortionsSize, otherPortionsSize);
     NChanges::TGeneralCompactionCounters::OnRepackPortions(portionsCount, portionsSize);
 
-    if (!HasAppData() || AppDataVerified().ColumnShardConfig.GetUseChunkedMergeOnCompaction()) {
-        BuildAppendedPortionsByChunks(context);
-    } else {
-        BuildAppendedPortionsByFullBatches(context);
+    {
+        std::vector portions = TPortionInfoWithBlobs::RestorePortions(SwitchedPortions, Blobs, context.SchemaVersions, SaverContext.GetStoragesManager());
+        if (!HasAppData() || AppDataVerified().ColumnShardConfig.GetUseChunkedMergeOnCompaction()) {
+            BuildAppendedPortionsByChunks(context, std::move(portions));
+        } else {
+            BuildAppendedPortionsByFullBatches(context, std::move(portions));
+        }
     }
 
     if (IS_DEBUG_LOG_ENABLED(NKikimrServices::TX_COLUMNSHARD)) {
@@ -246,24 +253,26 @@ TConclusionStatus TGeneralCompactColumnEngineChanges::DoConstructBlobs(TConstruc
     return TConclusionStatus::Success();
 }
 
-void TGeneralCompactColumnEngineChanges::DoWriteIndexComplete(NColumnShard::TColumnShard& self, TWriteIndexCompleteContext& context) {
-    TBase::DoWriteIndexComplete(self, context);
-    self.IncCounter(context.FinishedSuccessfully ? NColumnShard::COUNTER_SPLIT_COMPACTION_SUCCESS : NColumnShard::COUNTER_SPLIT_COMPACTION_FAIL);
-    self.IncCounter(NColumnShard::COUNTER_SPLIT_COMPACTION_BLOBS_WRITTEN, context.BlobsWritten);
-    self.IncCounter(NColumnShard::COUNTER_SPLIT_COMPACTION_BYTES_WRITTEN, context.BytesWritten);
+void TGeneralCompactColumnEngineChanges::DoWriteIndexOnComplete(NColumnShard::TColumnShard* self, TWriteIndexCompleteContext& context) {
+    TBase::DoWriteIndexOnComplete(self, context);
+    if (self) {
+        self->IncCounter(context.FinishedSuccessfully ? NColumnShard::COUNTER_SPLIT_COMPACTION_SUCCESS : NColumnShard::COUNTER_SPLIT_COMPACTION_FAIL);
+        self->IncCounter(NColumnShard::COUNTER_SPLIT_COMPACTION_BLOBS_WRITTEN, context.BlobsWritten);
+        self->IncCounter(NColumnShard::COUNTER_SPLIT_COMPACTION_BYTES_WRITTEN, context.BytesWritten);
+    }
 }
 
 void TGeneralCompactColumnEngineChanges::DoStart(NColumnShard::TColumnShard& self) {
     TBase::DoStart(self);
     auto& g = *GranuleMeta;
-    self.CSCounters.OnSplitCompactionInfo(g.GetAdditiveSummary().GetCompacted().GetPortionsSize(), g.GetAdditiveSummary().GetCompacted().GetPortionsCount());
+    self.CSCounters.OnSplitCompactionInfo(g.GetAdditiveSummary().GetCompacted().GetTotalPortionsSize(), g.GetAdditiveSummary().GetCompacted().GetPortionsCount());
 }
 
 NColumnShard::ECumulativeCounters TGeneralCompactColumnEngineChanges::GetCounterIndex(const bool isSuccess) const {
     return isSuccess ? NColumnShard::COUNTER_COMPACTION_SUCCESS : NColumnShard::COUNTER_COMPACTION_FAIL;
 }
 
-void TGeneralCompactColumnEngineChanges::AddCheckPoint(const NIndexedReader::TSortableBatchPosition& position, const bool include, const bool validationDuplications) {
+void TGeneralCompactColumnEngineChanges::AddCheckPoint(const NArrow::NMerger::TSortableBatchPosition& position, const bool include, const bool validationDuplications) {
     AFL_VERIFY(CheckPoints.emplace(position, include).second || !validationDuplications);
 }
 
@@ -283,10 +292,10 @@ ui64 TGeneralCompactColumnEngineChanges::TMemoryPredictorChunkedPolicy::AddPorti
         SumMemoryFix += i.BlobRange.Size;
         auto it = maxChunkSizeByColumn.find(i.GetColumnId());
         if (it == maxChunkSizeByColumn.end()) {
-            maxChunkSizeByColumn.emplace(i.GetColumnId(), i.GetMeta().GetRawBytesVerified());
+            maxChunkSizeByColumn.emplace(i.GetColumnId(), i.GetMeta().GetRawBytes());
         } else {
-            if (it->second < i.GetMeta().GetRawBytesVerified()) {
-                it->second = i.GetMeta().GetRawBytesVerified();
+            if (it->second < i.GetMeta().GetRawBytes()) {
+                it->second = i.GetMeta().GetRawBytes();
             }
         }
     }
diff --git a/ydb/core/tx/columnshard/engines/changes/general_compaction.h b/ydb/core/tx/columnshard/engines/changes/general_compaction.h
index 287ba34b37ae..510d265ed2c4 100644
--- a/ydb/core/tx/columnshard/engines/changes/general_compaction.h
+++ b/ydb/core/tx/columnshard/engines/changes/general_compaction.h
@@ -1,18 +1,23 @@
 #pragma once
 #include "compaction.h"
-#include 
+#include 
 
 namespace NKikimr::NOlap::NCompaction {
 
 class TGeneralCompactColumnEngineChanges: public TCompactColumnEngineChanges {
 private:
     using TBase = TCompactColumnEngineChanges;
-    virtual void DoWriteIndexComplete(NColumnShard::TColumnShard& self, TWriteIndexCompleteContext& context) override;
-    std::map CheckPoints;
-    void BuildAppendedPortionsByFullBatches(TConstructionContext& context) noexcept;
-    void BuildAppendedPortionsByChunks(TConstructionContext& context) noexcept;
+    virtual void DoWriteIndexOnComplete(NColumnShard::TColumnShard* self, TWriteIndexCompleteContext& context) override;
+    std::map CheckPoints;
+    void BuildAppendedPortionsByFullBatches(TConstructionContext& context, std::vector&& portions) noexcept;
+    void BuildAppendedPortionsByChunks(TConstructionContext& context, std::vector&& portions) noexcept;
 protected:
     virtual TConclusionStatus DoConstructBlobs(TConstructionContext& context) noexcept override;
+
+    virtual bool NeedDiskWriteLimiter() const override {
+        return true;
+    }
+
     virtual TPortionMeta::EProduced GetResultProducedClass() const override {
         return TPortionMeta::EProduced::SPLIT_COMPACTED;
     }
@@ -29,12 +34,6 @@ class TGeneralCompactColumnEngineChanges: public TCompactColumnEngineChanges {
 public:
     using TBase::TBase;
 
-    class IMemoryPredictor {
-    public:
-        virtual ui64 AddPortion(const TPortionInfo& portionInfo) = 0;
-        virtual ~IMemoryPredictor() = default;
-    };
-
     class TMemoryPredictorSimplePolicy: public IMemoryPredictor {
     private:
         ui64 SumMemory = 0;
@@ -42,7 +41,7 @@ class TGeneralCompactColumnEngineChanges: public TCompactColumnEngineChanges {
         virtual ui64 AddPortion(const TPortionInfo& portionInfo) override {
             for (auto&& i : portionInfo.GetRecords()) {
                 SumMemory += i.BlobRange.Size;
-                SumMemory += 2 * i.GetMeta().GetRawBytesVerified();
+                SumMemory += 2 * i.GetMeta().GetRawBytes();
             }
             return SumMemory;
         }
@@ -60,7 +59,7 @@ class TGeneralCompactColumnEngineChanges: public TCompactColumnEngineChanges {
 
     static std::shared_ptr BuildMemoryPredictor();
 
-    void AddCheckPoint(const NIndexedReader::TSortableBatchPosition& position, const bool include = true, const bool validationDuplications = true);
+    void AddCheckPoint(const NArrow::NMerger::TSortableBatchPosition& position, const bool include = true, const bool validationDuplications = true);
 
     virtual TString TypeString() const override {
         return StaticTypeName();
diff --git a/ydb/core/tx/columnshard/engines/changes/indexation.cpp b/ydb/core/tx/columnshard/engines/changes/indexation.cpp
index c68100010934..e386ff714994 100644
--- a/ydb/core/tx/columnshard/engines/changes/indexation.cpp
+++ b/ydb/core/tx/columnshard/engines/changes/indexation.cpp
@@ -3,24 +3,20 @@
 #include 
 #include 
 #include 
+#include 
+#include 
+#include 
+#include 
 
 namespace NKikimr::NOlap {
 
-bool TInsertColumnEngineChanges::DoApplyChanges(TColumnEngineForLogs& self, TApplyChangesContext& context) {
-    if (!TBase::DoApplyChanges(self, context)) {
-        return false;
-    }
-    return true;
-}
-
-void TInsertColumnEngineChanges::DoWriteIndex(NColumnShard::TColumnShard& self, TWriteIndexContext& context) {
-    TBase::DoWriteIndex(self, context);
-    auto removing = BlobsAction.GetRemoving(IStoragesManager::DefaultStorageId);
-    for (const auto& insertedData : DataToIndex) {
-        self.InsertTable->EraseCommitted(context.DBWrapper, insertedData, removing);
-    }
-    if (!DataToIndex.empty()) {
-        self.UpdateInsertTableCounters();
+void TInsertColumnEngineChanges::DoWriteIndexOnExecute(NColumnShard::TColumnShard* self, TWriteIndexContext& context) {
+    TBase::DoWriteIndexOnExecute(self, context);
+    if (self) {
+        auto removing = BlobsAction.GetRemoving(IStoragesManager::DefaultStorageId);
+        for (const auto& insertedData : DataToIndex) {
+            self->InsertTable->EraseCommittedOnExecute(context.DBWrapper, insertedData, removing);
+        }
     }
 }
 
@@ -29,16 +25,25 @@ void TInsertColumnEngineChanges::DoStart(NColumnShard::TColumnShard& self) {
     Y_ABORT_UNLESS(DataToIndex.size());
     auto reading = BlobsAction.GetReading(IStoragesManager::DefaultStorageId);
     for (auto&& insertedData : DataToIndex) {
-        reading->AddRange(insertedData.GetBlobRange(), insertedData.GetBlobData().value_or(""));
+        reading->AddRange(insertedData.GetBlobRange(), insertedData.GetBlobData());
     }
 
     self.BackgroundController.StartIndexing(*this);
 }
 
-void TInsertColumnEngineChanges::DoWriteIndexComplete(NColumnShard::TColumnShard& self, TWriteIndexCompleteContext& context) {
-    self.IncCounter(NColumnShard::COUNTER_INDEXING_BLOBS_WRITTEN, context.BlobsWritten);
-    self.IncCounter(NColumnShard::COUNTER_INDEXING_BYTES_WRITTEN, context.BytesWritten);
-    self.IncCounter(NColumnShard::COUNTER_INDEXING_TIME, context.Duration.MilliSeconds());
+void TInsertColumnEngineChanges::DoWriteIndexOnComplete(NColumnShard::TColumnShard* self, TWriteIndexCompleteContext& context) {
+    TBase::DoWriteIndexOnComplete(self, context);
+    if (self) {
+        for (const auto& insertedData : DataToIndex) {
+            self->InsertTable->EraseCommittedOnComplete(insertedData);
+        }
+        if (!DataToIndex.empty()) {
+            self->UpdateInsertTableCounters();
+        }
+        self->IncCounter(NColumnShard::COUNTER_INDEXING_BLOBS_WRITTEN, context.BlobsWritten);
+        self->IncCounter(NColumnShard::COUNTER_INDEXING_BYTES_WRITTEN, context.BytesWritten);
+        self->IncCounter(NColumnShard::COUNTER_INDEXING_TIME, context.Duration.MilliSeconds());
+    }
 }
 
 void TInsertColumnEngineChanges::DoOnFinish(NColumnShard::TColumnShard& self, TChangesFinishContext& /*context*/) {
@@ -72,12 +77,10 @@ TConclusionStatus TInsertColumnEngineChanges::DoConstructBlobs(TConstructionCont
 
         std::shared_ptr batch;
         {
-            auto itBlobData = Blobs.find(blobRange);
-            Y_ABORT_UNLESS(itBlobData != Blobs.end(), "Data for range %s has not been read", blobRange.ToString().c_str());
-            Y_ABORT_UNLESS(!itBlobData->second.empty(), "Blob data not present");
+            const auto blobData = Blobs.Extract(IStoragesManager::DefaultStorageId, blobRange);
+            Y_ABORT_UNLESS(blobData.size(), "Blob data not present");
             // Prepare batch
-            batch = NArrow::DeserializeBatch(itBlobData->second, indexInfo.ArrowSchema());
-            Blobs.erase(itBlobData);
+            batch = NArrow::DeserializeBatch(blobData, indexInfo.ArrowSchema());
             AFL_VERIFY(batch)("event", "cannot_parse")
                 ("data_snapshot", TStringBuilder() << inserted.GetSnapshot())
                 ("index_snapshot", TStringBuilder() << blobSchema->GetSnapshot());
@@ -90,10 +93,10 @@ TConclusionStatus TInsertColumnEngineChanges::DoConstructBlobs(TConstructionCont
         Y_DEBUG_ABORT_UNLESS(NArrow::IsSorted(pathBatches[inserted.PathId].back(), resultSchema->GetIndexInfo().GetReplaceKey()));
     }
 
-    Y_ABORT_UNLESS(Blobs.empty());
+    Y_ABORT_UNLESS(Blobs.IsEmpty());
     const std::vector comparableColumns = resultSchema->GetIndexInfo().GetReplaceKey()->field_names();
     for (auto& [pathId, batches] : pathBatches) {
-        NIndexedReader::TMergePartialStream stream(resultSchema->GetIndexInfo().GetReplaceKey(), resultSchema->GetIndexInfo().ArrowSchemaWithSpecials(), false);
+        NArrow::NMerger::TMergePartialStream stream(resultSchema->GetIndexInfo().GetReplaceKey(), resultSchema->GetIndexInfo().ArrowSchemaWithSpecials(), false, IIndexInfo::GetSpecialColumnNames());
         THashMap fieldSizes;
         ui64 rowsCount = 0;
         for (auto&& batch : batches) {
@@ -104,23 +107,24 @@ TConclusionStatus TInsertColumnEngineChanges::DoConstructBlobs(TConstructionCont
             rowsCount += batch->num_rows();
         }
 
-        NIndexedReader::TRecordBatchBuilder builder(resultSchema->GetIndexInfo().ArrowSchemaWithSpecials()->fields(), rowsCount, fieldSizes);
+        NArrow::NMerger::TRecordBatchBuilder builder(resultSchema->GetIndexInfo().ArrowSchemaWithSpecials()->fields(), rowsCount, fieldSizes);
         stream.SetPossibleSameVersion(true);
         stream.DrainAll(builder);
 
         auto itGranule = PathToGranule.find(pathId);
         AFL_VERIFY(itGranule != PathToGranule.end());
-        std::vector> result = NIndexedReader::TSortableBatchPosition::SplitByBordersInSequentialContainer(builder.Finalize(), comparableColumns, itGranule->second);
+        std::vector> result = NArrow::NMerger::TRWSortableBatchPosition::SplitByBordersInSequentialContainer(builder.Finalize(), comparableColumns, itGranule->second);
         for (auto&& b : result) {
             if (!b) {
                 continue;
             }
+            std::optional externalSaver;
             if (b->num_rows() < 100) {
-                SaverContext.SetExternalCompression(NArrow::TCompression(arrow::Compression::type::UNCOMPRESSED));
+                externalSaver = NArrow::NSerialization::TSerializerContainer(std::make_shared(arrow::Compression::type::UNCOMPRESSED));
             } else {
-                SaverContext.SetExternalCompression(NArrow::TCompression(arrow::Compression::type::LZ4_FRAME));
+                externalSaver = NArrow::NSerialization::TSerializerContainer(std::make_shared(arrow::Compression::type::LZ4_FRAME));
             }
-            auto portions = MakeAppendedPortions(b, pathId, maxSnapshot, nullptr, context);
+            auto portions = MakeAppendedPortions(b, pathId, maxSnapshot, nullptr, context, externalSaver);
             Y_ABORT_UNLESS(portions.size());
             for (auto& portion : portions) {
                 AppendedPortions.emplace_back(std::move(portion));
diff --git a/ydb/core/tx/columnshard/engines/changes/indexation.h b/ydb/core/tx/columnshard/engines/changes/indexation.h
index 13c407c23d9b..95befd334c23 100644
--- a/ydb/core/tx/columnshard/engines/changes/indexation.h
+++ b/ydb/core/tx/columnshard/engines/changes/indexation.h
@@ -2,8 +2,8 @@
 #include "abstract/abstract.h"
 #include "with_appended.h"
 #include 
-#include 
 #include 
+#include 
 
 namespace NKikimr::NOlap {
 
@@ -14,11 +14,11 @@ class TInsertColumnEngineChanges: public TChangesWithAppend {
         const TIndexInfo& indexInfo, const TInsertedData& inserted) const;
     std::vector DataToIndex;
 protected:
+    virtual void DoWriteIndexOnComplete(NColumnShard::TColumnShard* self, TWriteIndexCompleteContext& context) override;
+    virtual void DoWriteIndexOnExecute(NColumnShard::TColumnShard* self, TWriteIndexContext& context) override;
+
     virtual void DoStart(NColumnShard::TColumnShard& self) override;
-    virtual void DoWriteIndexComplete(NColumnShard::TColumnShard& self, TWriteIndexCompleteContext& context) override;
-    virtual bool DoApplyChanges(TColumnEngineForLogs& self, TApplyChangesContext& context) override;
     virtual void DoOnFinish(NColumnShard::TColumnShard& self, TChangesFinishContext& context) override;
-    virtual void DoWriteIndex(NColumnShard::TColumnShard& self, TWriteIndexContext& context) override;
     virtual TConclusionStatus DoConstructBlobs(TConstructionContext& context) noexcept override;
     virtual NColumnShard::ECumulativeCounters GetCounterIndex(const bool isSuccess) const override;
     virtual ui64 DoCalcMemoryForUsage() const override {
@@ -28,11 +28,16 @@ class TInsertColumnEngineChanges: public TChangesWithAppend {
         }
         return result;
     }
+
+    virtual std::shared_ptr DoBuildDataLockImpl() const override {
+        return nullptr;
+    }
+
 public:
-    THashMap> PathToGranule; // pathId -> positions (sorted by pk)
+    THashMap> PathToGranule; // pathId -> positions (sorted by pk)
 public:
-    TInsertColumnEngineChanges(std::vector&& dataToIndex, const TSplitSettings& splitSettings, const TSaverContext& saverContext)
-        : TBase(splitSettings, saverContext, StaticTypeName())
+    TInsertColumnEngineChanges(std::vector&& dataToIndex, const TSaverContext& saverContext)
+        : TBase(saverContext, NBlobOperations::EConsumer::INDEXATION)
         , DataToIndex(std::move(dataToIndex))
     {
     }
@@ -41,10 +46,6 @@ class TInsertColumnEngineChanges: public TChangesWithAppend {
         return DataToIndex;
     }
 
-    virtual THashSet GetTouchedPortions() const override {
-        return TBase::GetTouchedPortions();
-    }
-
     static TString StaticTypeName() {
         return "CS::INDEXATION";
     }
diff --git a/ydb/core/tx/columnshard/engines/changes/ttl.cpp b/ydb/core/tx/columnshard/engines/changes/ttl.cpp
index 80117f34f331..1caea149059e 100644
--- a/ydb/core/tx/columnshard/engines/changes/ttl.cpp
+++ b/ydb/core/tx/columnshard/engines/changes/ttl.cpp
@@ -9,69 +9,65 @@ namespace NKikimr::NOlap {
 
 void TTTLColumnEngineChanges::DoDebugString(TStringOutput& out) const {
     TBase::DoDebugString(out);
-    if (PortionsToEvict.size()) {
-        out << "eviction=(count=" << PortionsToEvict.size() << ";portions=[";
-        for (auto& info : PortionsToEvict) {
-            out << info.GetPortionInfo() << ";to=" << info.GetFeatures().TargetTierName << ";";
-        }
-        out << "];";
-    }
+    out << "eviction=" << PortionsToEvict.size() << ";address=" << RWAddress.DebugString() << ";";
 }
 
 void TTTLColumnEngineChanges::DoStart(NColumnShard::TColumnShard& self) {
     Y_ABORT_UNLESS(PortionsToEvict.size() || PortionsToRemove.size());
+    THashMap> blobRanges;
+    auto& engine = self.MutableIndexAs();
+    auto& index = engine.GetVersionedIndex();
     for (const auto& p : PortionsToEvict) {
         Y_ABORT_UNLESS(!p.GetPortionInfo().Empty());
-
-        auto agent = BlobsAction.GetReading(p.GetPortionInfo());
-        for (const auto& rec : p.GetPortionInfo().Records) {
-            agent->AddRange(rec.BlobRange);
+        p.GetPortionInfo().FillBlobRangesByStorage(blobRanges, index);
+    }
+    for (auto&& i : blobRanges) {
+        auto action = BlobsAction.GetReading(i.first);
+        for (auto&& b : i.second) {
+            action->AddRange(b);
         }
     }
-    self.BackgroundController.StartTtl(*this);
+    engine.GetActualizationController()->StartActualization(RWAddress);
 }
 
 void TTTLColumnEngineChanges::DoOnFinish(NColumnShard::TColumnShard& self, TChangesFinishContext& /*context*/) {
-    self.BackgroundController.FinishTtl();
+    auto& engine = self.MutableIndexAs();
+    engine.GetActualizationController()->FinishActualization(RWAddress);
+    if (IsAborted()) {
+        THashMap> restoreIndexAddresses;
+        for (auto&& i : PortionsToEvict) {
+            AFL_VERIFY(restoreIndexAddresses[i.GetPortionInfo().GetPathId()].emplace(i.GetPortionInfo().GetPortionId()).second);
+        }
+        for (auto&& i : PortionsToRemove) {
+            AFL_VERIFY(restoreIndexAddresses[i.first.GetPathId()].emplace(i.first.GetPortionId()).second);
+        }
+        engine.ReturnToIndexes(restoreIndexAddresses);
+    }
 }
 
-std::optional TTTLColumnEngineChanges::UpdateEvictedPortion(TPortionForEviction& info, THashMap& srcBlobs,
-    TConstructionContext& context) const {
+std::optional TTTLColumnEngineChanges::UpdateEvictedPortion(TPortionForEviction& info, NBlobOperations::NRead::TCompositeReadBlobs& srcBlobs,
+    TConstructionContext& context) const
+{
     const TPortionInfo& portionInfo = info.GetPortionInfo();
     auto& evictFeatures = info.GetFeatures();
-    Y_ABORT_UNLESS(portionInfo.GetMeta().GetTierName() != evictFeatures.TargetTierName);
-
-    auto* tiering = Tiering.FindPtr(evictFeatures.PathId);
-    Y_ABORT_UNLESS(tiering);
-    auto compression = tiering->GetCompression(evictFeatures.TargetTierName);
-    if (!compression) {
-        // Nothing to recompress. We have no other kinds of evictions yet.
-        evictFeatures.DataChanges = false;
-        auto result = TPortionInfoWithBlobs::RestorePortion(portionInfo, srcBlobs);
-        result.GetPortionInfo().InitOperator(evictFeatures.StorageOperator, true);
-        result.GetPortionInfo().MutableMeta().SetTierName(evictFeatures.TargetTierName);
-        return result;
-    }
+    auto blobSchema = portionInfo.GetSchema(context.SchemaVersions);
+    Y_ABORT_UNLESS(portionInfo.GetMeta().GetTierName() != evictFeatures.GetTargetTierName() || blobSchema->GetVersion() < evictFeatures.GetTargetScheme()->GetVersion());
 
-    auto blobSchema = context.SchemaVersions.GetSchema(portionInfo.GetMinSnapshot());
-    auto resultSchema = context.SchemaVersions.GetLastSchema();
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("portion_for_eviction", portionInfo.DebugString());
+    auto portionWithBlobs = TPortionInfoWithBlobs::RestorePortion(portionInfo, srcBlobs, blobSchema->GetIndexInfo(), SaverContext.GetStoragesManager());
+    TPortionInfoWithBlobs result = TPortionInfoWithBlobs::SyncPortion(
+        std::move(portionWithBlobs), blobSchema, evictFeatures.GetTargetScheme(), evictFeatures.GetTargetTierName(), SaverContext.GetStoragesManager(), context.Counters.SplitterCounters);
 
-    TSaverContext saverContext(evictFeatures.StorageOperator, SaverContext.GetStoragesManager());
-    saverContext.SetTierName(evictFeatures.TargetTierName).SetExternalCompression(compression);
-    auto withBlobs = TPortionInfoWithBlobs::RestorePortion(portionInfo, srcBlobs);
-    withBlobs.GetPortionInfo().InitOperator(evictFeatures.StorageOperator, true);
-    withBlobs.GetPortionInfo().MutableMeta().SetTierName(evictFeatures.TargetTierName);
-    return withBlobs.ChangeSaver(resultSchema, saverContext);
+    result.GetPortionInfo().MutableMeta().SetTierName(evictFeatures.GetTargetTierName());
+    return std::move(result);
 }
 
 NKikimr::TConclusionStatus TTTLColumnEngineChanges::DoConstructBlobs(TConstructionContext& context) noexcept {
-    Y_ABORT_UNLESS(!Blobs.empty());
+    Y_ABORT_UNLESS(!Blobs.IsEmpty());
     Y_ABORT_UNLESS(!PortionsToEvict.empty());
 
     for (auto&& info : PortionsToEvict) {
         if (auto pwb = UpdateEvictedPortion(info, Blobs, context)) {
-            info.MutablePortionInfo().SetRemoveSnapshot(info.MutablePortionInfo().GetMinSnapshot());
+            info.MutablePortionInfo().SetRemoveSnapshot(context.LastCommittedTx);
             AFL_VERIFY(PortionsToRemove.emplace(info.GetPortionInfo().GetAddress(), info.GetPortionInfo()).second);
             AppendedPortions.emplace_back(std::move(*pwb));
         }
diff --git a/ydb/core/tx/columnshard/engines/changes/ttl.h b/ydb/core/tx/columnshard/engines/changes/ttl.h
index 5e19c69af8d8..c9cb1a989d93 100644
--- a/ydb/core/tx/columnshard/engines/changes/ttl.h
+++ b/ydb/core/tx/columnshard/engines/changes/ttl.h
@@ -1,14 +1,15 @@
 #pragma once
 #include "compaction.h"
+
+#include 
+
 #include 
 
 namespace NKikimr::NOlap {
 
 class TTTLColumnEngineChanges: public TChangesWithAppend {
 private:
-    using TPathIdBlobs = THashMap>;
     using TBase = TChangesWithAppend;
-    THashMap ExportTierBlobs;
 
     class TPortionForEviction {
     private:
@@ -39,11 +40,11 @@ class TTTLColumnEngineChanges: public TChangesWithAppend {
         }
     };
 
-    std::optional UpdateEvictedPortion(TPortionForEviction& info, THashMap& srcBlobs,
+    std::optional UpdateEvictedPortion(TPortionForEviction& info, NBlobOperations::NRead::TCompositeReadBlobs& srcBlobs,
         TConstructionContext& context) const;
 
-    std::vector PortionsToEvict; // {portion, TPortionEvictionFeatures}
-
+    std::vector PortionsToEvict;
+    const NActualizer::TRWAddress RWAddress;
 protected:
     virtual void DoStart(NColumnShard::TColumnShard& self) override;
     virtual void DoOnFinish(NColumnShard::TColumnShard& self, TChangesFinishContext& context) override;
@@ -51,26 +52,45 @@ class TTTLColumnEngineChanges: public TChangesWithAppend {
     virtual TConclusionStatus DoConstructBlobs(TConstructionContext& context) noexcept override;
     virtual NColumnShard::ECumulativeCounters GetCounterIndex(const bool isSuccess) const override;
     virtual ui64 DoCalcMemoryForUsage() const override {
+        auto predictor = BuildMemoryPredictor();
         ui64 result = 0;
         for (auto& p : PortionsToEvict) {
-            result += 2 * p.GetPortionInfo().GetBlobBytes();
+            result = predictor->AddPortion(p.GetPortionInfo());
         }
         return result;
     }
-public:
-    virtual bool NeedConstruction() const override {
-        return PortionsToEvict.size();
+    virtual std::shared_ptr DoBuildDataLockImpl() const override {
+        const auto pred = [](const TPortionForEviction& p) {
+            return p.GetPortionInfo().GetAddress();
+        };
+        return std::make_shared(TypeString() + "::" + RWAddress.DebugString() + "::" + GetTaskIdentifier(), PortionsToEvict, pred);
     }
-    virtual THashSet GetTouchedPortions() const override {
-        THashSet result = TBase::GetTouchedPortions();
-        for (auto&& info : PortionsToEvict) {
-            result.emplace(info.GetPortionInfo().GetAddress());
+public:
+    class TMemoryPredictorSimplePolicy: public IMemoryPredictor {
+    private:
+        ui64 SumBlobsMemory = 0;
+        ui64 MaxRawMemory = 0;
+    public:
+        virtual ui64 AddPortion(const TPortionInfo& portionInfo) override {
+            if (MaxRawMemory < portionInfo.GetTotalRawBytes()) {
+                MaxRawMemory = portionInfo.GetTotalRawBytes();
+            }
+            SumBlobsMemory += portionInfo.GetTotalBlobBytes();
+            return SumBlobsMemory + MaxRawMemory;
         }
-        return result;
+    };
+
+    const NActualizer::TRWAddress& GetRWAddress() const {
+        return RWAddress;
     }
 
-    THashMap Tiering;
+    static std::shared_ptr BuildMemoryPredictor() {
+        return std::make_shared();
+    }
 
+    virtual bool NeedConstruction() const override {
+        return PortionsToEvict.size();
+    }
     ui32 GetPortionsToEvictCount() const {
         return PortionsToEvict.size();
     }
@@ -89,8 +109,10 @@ class TTTLColumnEngineChanges: public TChangesWithAppend {
         return StaticTypeName();
     }
 
-    TTTLColumnEngineChanges(const TSplitSettings& splitSettings, const TSaverContext& saverContext)
-        : TBase(splitSettings, saverContext, StaticTypeName()) {
+    TTTLColumnEngineChanges(const NActualizer::TRWAddress& address, const TSaverContext& saverContext)
+        : TBase(saverContext, NBlobOperations::EConsumer::TTL)
+        , RWAddress(address)
+    {
 
     }
 
diff --git a/ydb/core/tx/columnshard/engines/changes/with_appended.cpp b/ydb/core/tx/columnshard/engines/changes/with_appended.cpp
index 2ff9533af295..65d5696c42e1 100644
--- a/ydb/core/tx/columnshard/engines/changes/with_appended.cpp
+++ b/ydb/core/tx/columnshard/engines/changes/with_appended.cpp
@@ -1,88 +1,89 @@
 #include "with_appended.h"
+
 #include 
 #include 
 #include 
-#include 
+#include 
+#include 
 
 namespace NKikimr::NOlap {
 
-void TChangesWithAppend::DoDebugString(TStringOutput& out) const {
-    if (ui32 added = AppendedPortions.size()) {
-        out << "portions_count:" << added << ";portions=(";
-        for (auto& portionInfo : AppendedPortions) {
-            out << portionInfo;
+void TChangesWithAppend::DoWriteIndexOnExecute(NColumnShard::TColumnShard* self, TWriteIndexContext& context) {
+    THashSet usedPortionIds;
+    for (auto& [_, portionInfo] : PortionsToRemove) {
+        Y_ABORT_UNLESS(!portionInfo.Empty());
+        Y_ABORT_UNLESS(portionInfo.HasRemoveSnapshot());
+        AFL_VERIFY(usedPortionIds.emplace(portionInfo.GetPortionId()).second)("portion_info", portionInfo.DebugString(true));
+        portionInfo.SaveToDatabase(context.DBWrapper);
+    }
+    const auto predRemoveDroppedTable = [self](const TPortionInfoWithBlobs& item) {
+        auto& portionInfo = item.GetPortionInfo();
+        if (!!self && (!self->TablesManager.HasTable(portionInfo.GetPathId()) || self->TablesManager.GetTable(portionInfo.GetPathId()).IsDropped())) {
+            AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "skip_inserted_data")("reason", "table_removed")("path_id", portionInfo.GetPathId());
+            return true;
+        } else {
+            return false;
         }
-        out << "); ";
+    };
+    AppendedPortions.erase(std::remove_if(AppendedPortions.begin(), AppendedPortions.end(), predRemoveDroppedTable), AppendedPortions.end());
+    for (auto& portionInfoWithBlobs : AppendedPortions) {
+        auto& portionInfo = portionInfoWithBlobs.GetPortionInfo();
+        Y_ABORT_UNLESS(!portionInfo.Empty());
+        AFL_VERIFY(usedPortionIds.emplace(portionInfo.GetPortionId()).second)("portion_info", portionInfo.DebugString(true));
+        portionInfo.SaveToDatabase(context.DBWrapper);
     }
 }
 
-void TChangesWithAppend::DoWriteIndex(NColumnShard::TColumnShard& self, TWriteIndexContext& /*context*/) {
-    for (auto& portionInfo : AppendedPortions) {
-        switch (portionInfo.GetPortionInfo().GetMeta().Produced) {
-            case NOlap::TPortionMeta::EProduced::UNSPECIFIED:
-                Y_ABORT_UNLESS(false); // unexpected
-            case NOlap::TPortionMeta::EProduced::INSERTED:
-                self.IncCounter(NColumnShard::COUNTER_INDEXING_PORTIONS_WRITTEN);
-                break;
-            case NOlap::TPortionMeta::EProduced::COMPACTED:
-                self.IncCounter(NColumnShard::COUNTER_COMPACTION_PORTIONS_WRITTEN);
-                break;
-            case NOlap::TPortionMeta::EProduced::SPLIT_COMPACTED:
-                self.IncCounter(NColumnShard::COUNTER_SPLIT_COMPACTION_PORTIONS_WRITTEN);
-                break;
-            case NOlap::TPortionMeta::EProduced::EVICTED:
-                Y_ABORT("Unexpected evicted case");
-                break;
-            case NOlap::TPortionMeta::EProduced::INACTIVE:
-                Y_ABORT("Unexpected inactive case");
-                break;
+void TChangesWithAppend::DoWriteIndexOnComplete(NColumnShard::TColumnShard* self, TWriteIndexCompleteContext& context) {
+    if (self) {
+        for (auto& portionInfo : AppendedPortions) {
+            switch (portionInfo.GetPortionInfo().GetMeta().Produced) {
+                case NOlap::TPortionMeta::EProduced::UNSPECIFIED:
+                    Y_ABORT_UNLESS(false);   // unexpected
+                case NOlap::TPortionMeta::EProduced::INSERTED:
+                    self->IncCounter(NColumnShard::COUNTER_INDEXING_PORTIONS_WRITTEN);
+                    break;
+                case NOlap::TPortionMeta::EProduced::COMPACTED:
+                    self->IncCounter(NColumnShard::COUNTER_COMPACTION_PORTIONS_WRITTEN);
+                    break;
+                case NOlap::TPortionMeta::EProduced::SPLIT_COMPACTED:
+                    self->IncCounter(NColumnShard::COUNTER_SPLIT_COMPACTION_PORTIONS_WRITTEN);
+                    break;
+                case NOlap::TPortionMeta::EProduced::EVICTED:
+                    Y_ABORT("Unexpected evicted case");
+                    break;
+                case NOlap::TPortionMeta::EProduced::INACTIVE:
+                    Y_ABORT("Unexpected inactive case");
+                    break;
+            }
         }
-    }
-    self.IncCounter(NColumnShard::COUNTER_PORTIONS_DEACTIVATED, PortionsToRemove.size());
+        self->IncCounter(NColumnShard::COUNTER_PORTIONS_DEACTIVATED, PortionsToRemove.size());
 
-    THashSet blobsDeactivated;
-    for (auto& [_, portionInfo] : PortionsToRemove) {
-        for (auto& rec : portionInfo.Records) {
-            blobsDeactivated.insert(rec.BlobRange.BlobId);
+        THashSet blobsDeactivated;
+        for (auto& [_, portionInfo] : PortionsToRemove) {
+            for (auto& rec : portionInfo.Records) {
+                blobsDeactivated.emplace(portionInfo.GetBlobId(rec.BlobRange.GetBlobIdxVerified()));
+            }
+            self->IncCounter(NColumnShard::COUNTER_RAW_BYTES_DEACTIVATED, portionInfo.GetTotalRawBytes());
         }
-        self.IncCounter(NColumnShard::COUNTER_RAW_BYTES_DEACTIVATED, portionInfo.RawBytesSum());
-    }
 
-    self.IncCounter(NColumnShard::COUNTER_BLOBS_DEACTIVATED, blobsDeactivated.size());
-    for (auto& blobId : blobsDeactivated) {
-        self.IncCounter(NColumnShard::COUNTER_BYTES_DEACTIVATED, blobId.BlobSize());
+        self->IncCounter(NColumnShard::COUNTER_BLOBS_DEACTIVATED, blobsDeactivated.size());
+        for (auto& blobId : blobsDeactivated) {
+            self->IncCounter(NColumnShard::COUNTER_BYTES_DEACTIVATED, blobId.BlobSize());
+        }
     }
-}
-
-bool TChangesWithAppend::DoApplyChanges(TColumnEngineForLogs& self, TApplyChangesContext& context) {
-    // Save new portions (their column records)
     {
-        auto g = self.GranulesStorage->StartPackModification();
-        THashSet usedPortionIds;
+        auto g = context.EngineLogs.GranulesStorage->GetStats()->StartPackModification();
         for (auto& [_, portionInfo] : PortionsToRemove) {
-            Y_ABORT_UNLESS(!portionInfo.Empty());
-            Y_ABORT_UNLESS(portionInfo.HasRemoveSnapshot());
-
-            const TPortionInfo& oldInfo = self.GetGranuleVerified(portionInfo.GetPathId()).GetPortionVerified(portionInfo.GetPortion());
-            AFL_VERIFY(usedPortionIds.emplace(portionInfo.GetPortionId()).second)("portion_info", portionInfo.DebugString(true));
-            self.UpsertPortion(portionInfo, &oldInfo);
-
-            portionInfo.SaveToDatabase(context.DB);
+            context.EngineLogs.CleanupPortions[portionInfo.GetRemoveSnapshotVerified()].emplace_back(portionInfo);
+            const TPortionInfo& oldInfo = context.EngineLogs.GetGranuleVerified(portionInfo.GetPathId()).GetPortionVerified(portionInfo.GetPortion());
+            context.EngineLogs.UpsertPortion(portionInfo, &oldInfo);
         }
         for (auto& portionInfoWithBlobs : AppendedPortions) {
             auto& portionInfo = portionInfoWithBlobs.GetPortionInfo();
-            Y_ABORT_UNLESS(!portionInfo.Empty());
-            AFL_VERIFY(usedPortionIds.emplace(portionInfo.GetPortionId()).second)("portion_info", portionInfo.DebugString(true));
-            self.UpsertPortion(portionInfo);
-            portionInfo.SaveToDatabase(context.DB);
+            context.EngineLogs.UpsertPortion(portionInfo);
         }
     }
-
-    for (auto& [_, portionInfo] : PortionsToRemove) {
-        self.CleanupPortions[portionInfo.GetRemoveSnapshot()].emplace_back(portionInfo);
-    }
-
-    return true;
 }
 
 void TChangesWithAppend::DoCompile(TFinalizationContext& context) {
@@ -98,7 +99,7 @@ void TChangesWithAppend::DoCompile(TFinalizationContext& context) {
 }
 
 std::vector TChangesWithAppend::MakeAppendedPortions(const std::shared_ptr batch,
-    const ui64 pathId, const TSnapshot& snapshot, const TGranuleMeta* granuleMeta, TConstructionContext& context) const {
+    const ui64 pathId, const TSnapshot& snapshot, const TGranuleMeta* granuleMeta, TConstructionContext& context, const std::optional& overrideSaver) const {
     Y_ABORT_UNLESS(batch->num_rows());
 
     auto resultSchema = context.SchemaVersions.GetSchema(snapshot);
@@ -107,29 +108,33 @@ std::vector TChangesWithAppend::MakeAppendedPortions(cons
     if (granuleMeta) {
         stats = granuleMeta->BuildSerializationStats(resultSchema);
     }
-    auto schema = std::make_shared(resultSchema, SaverContext, stats);
+    auto schema = std::make_shared(resultSchema, stats);
+    if (overrideSaver) {
+        schema->SetOverrideSerializer(*overrideSaver);
+    }
     std::vector out;
     {
-        std::vector pages = TRBSplitLimiter::BuildSimpleSlices(batch, SplitSettings, context.Counters.SplitterCounters, schema);
+        std::vector pages = TBatchSerializedSlice::BuildSimpleSlices(batch, NSplitter::TSplitSettings(), context.Counters.SplitterCounters, schema);
         std::vector generalPages;
         for (auto&& i : pages) {
-            std::map>> portionColumns = i.GetPortionChunks();
+            auto portionColumns = i.GetPortionChunksToHash();
             resultSchema->GetIndexInfo().AppendIndexes(portionColumns);
-            generalPages.emplace_back(portionColumns, schema, context.Counters.SplitterCounters, SplitSettings);
+            generalPages.emplace_back(portionColumns, schema, context.Counters.SplitterCounters);
         }
 
-        TSimilarSlicer slicer(SplitSettings.GetExpectedPortionSize());
+        const NSplitter::TEntityGroups groups = resultSchema->GetIndexInfo().GetEntityGroupsByStorageId(IStoragesManager::DefaultStorageId, *SaverContext.GetStoragesManager());
+        TSimilarPacker slicer(NSplitter::TSplitSettings().GetExpectedPortionSize());
         auto packs = slicer.Split(generalPages);
 
         ui32 recordIdx = 0;
         for (auto&& i : packs) {
             TGeneralSerializedSlice slice(std::move(i));
             auto b = batch->Slice(recordIdx, slice.GetRecordsCount());
-            std::vector>> chunksByBlobs = slice.GroupChunksByBlobs();
-            out.emplace_back(TPortionInfoWithBlobs::BuildByBlobs(chunksByBlobs, nullptr, pathId, snapshot, SaverContext.GetStorageOperator()));
+            out.emplace_back(TPortionInfoWithBlobs::BuildByBlobs(slice.GroupChunksByBlobs(groups), nullptr, pathId, resultSchema->GetVersion(), snapshot, SaverContext.GetStoragesManager()));
+            out.back().FillStatistics(resultSchema->GetIndexInfo());
             NArrow::TFirstLastSpecialKeys primaryKeys(slice.GetFirstLastPKBatch(resultSchema->GetIndexInfo().GetReplaceKey()));
             NArrow::TMinMaxSpecialKeys snapshotKeys(b, TIndexInfo::ArrowSchemaSnapshot());
-            out.back().GetPortionInfo().AddMetadata(*resultSchema, primaryKeys, snapshotKeys, SaverContext.GetTierName());
+            out.back().GetPortionInfo().AddMetadata(*resultSchema, primaryKeys, snapshotKeys, IStoragesManager::DefaultStorageId);
             recordIdx += slice.GetRecordsCount();
         }
     }
@@ -140,4 +145,4 @@ std::vector TChangesWithAppend::MakeAppendedPortions(cons
 void TChangesWithAppend::DoStart(NColumnShard::TColumnShard& /*self*/) {
 }
 
-}
+}   // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/changes/with_appended.h b/ydb/core/tx/columnshard/engines/changes/with_appended.h
index a398c61b005e..ebac536d0110 100644
--- a/ydb/core/tx/columnshard/engines/changes/with_appended.h
+++ b/ydb/core/tx/columnshard/engines/changes/with_appended.h
@@ -11,40 +11,39 @@ class TChangesWithAppend: public TColumnEngineChanges {
     using TBase = TColumnEngineChanges;
 
 protected:
-    TSplitSettings SplitSettings;
     TSaverContext SaverContext;
-    virtual void DoDebugString(TStringOutput& out) const override;
     virtual void DoCompile(TFinalizationContext& context) override;
-    virtual bool DoApplyChanges(TColumnEngineForLogs& self, TApplyChangesContext& context) override;
-    virtual void DoWriteIndex(NColumnShard::TColumnShard& self, TWriteIndexContext& context) override;
-    virtual void DoWriteIndexComplete(NColumnShard::TColumnShard& /*self*/, TWriteIndexCompleteContext& /*context*/) override {
-
-    }
+    virtual void DoWriteIndexOnExecute(NColumnShard::TColumnShard* self, TWriteIndexContext& context) override;
+    virtual void DoWriteIndexOnComplete(NColumnShard::TColumnShard* self, TWriteIndexCompleteContext& context) override;
     virtual void DoStart(NColumnShard::TColumnShard& self) override;
     std::vector MakeAppendedPortions(const std::shared_ptr batch, const ui64 granule,
-        const TSnapshot& snapshot, const TGranuleMeta* granuleMeta, TConstructionContext& context) const;
+        const TSnapshot& snapshot, const TGranuleMeta* granuleMeta, TConstructionContext& context, const std::optional& overrideSaver) const;
 
-public:
-    const TSplitSettings& GetSplitSettings() const {
-        return SplitSettings;
+    virtual void DoDebugString(TStringOutput& out) const override {
+        out << "remove=" << PortionsToRemove.size() << ";append=" << AppendedPortions.size() << ";";
     }
 
-    TChangesWithAppend(const TSplitSettings& splitSettings, const TSaverContext& saverContext, const TString& consumerId)
+    virtual std::shared_ptr DoBuildDataLockImpl() const = 0;
+
+    virtual std::shared_ptr DoBuildDataLock() const override final {
+        auto actLock = DoBuildDataLockImpl();
+        if (actLock) {
+            auto selfLock = std::make_shared(TypeString() + "::" + GetTaskIdentifier() + "::REMOVE", PortionsToRemove);
+            return std::make_shared(TypeString() + "::" + GetTaskIdentifier(), std::vector>({actLock, selfLock}));
+        } else {
+            auto selfLock = std::make_shared(TypeString() + "::" + GetTaskIdentifier(), PortionsToRemove);
+            return selfLock;
+        }
+    }
+
+public:
+    TChangesWithAppend(const TSaverContext& saverContext, const NBlobOperations::EConsumer consumerId)
         : TBase(saverContext.GetStoragesManager(), consumerId)
-        , SplitSettings(splitSettings)
         , SaverContext(saverContext)
     {
 
     }
 
-    virtual THashSet GetTouchedPortions() const override {
-        THashSet result;
-        for (auto&& i : PortionsToRemove) {
-            result.emplace(i.first);
-        }
-        return result;
-    }
-
     THashMap PortionsToRemove;
     std::vector AppendedPortions;
     virtual ui32 GetWritePortionsCount() const override {
diff --git a/ydb/core/tx/columnshard/engines/changes/ya.make b/ydb/core/tx/columnshard/engines/changes/ya.make
index faf74a7c05bb..5a266e18bb0a 100644
--- a/ydb/core/tx/columnshard/engines/changes/ya.make
+++ b/ydb/core/tx/columnshard/engines/changes/ya.make
@@ -4,7 +4,8 @@ SRCS(
     compaction.cpp
     ttl.cpp
     indexation.cpp
-    cleanup.cpp
+    cleanup_portions.cpp
+    cleanup_tables.cpp
     with_appended.cpp
     general_compaction.cpp
 )
@@ -16,6 +17,7 @@ PEERDIR(
     ydb/core/tx/columnshard/engines/changes/abstract
     ydb/core/tx/columnshard/engines/changes/compaction
     ydb/core/tx/columnshard/engines/changes/counters
+    ydb/core/tx/columnshard/engines/changes/actualization
     ydb/core/tx/columnshard/splitter
     ydb/core/tablet_flat
     ydb/core/tx/tiering
diff --git a/ydb/core/tx/columnshard/engines/column_engine.cpp b/ydb/core/tx/columnshard/engines/column_engine.cpp
index efe84977f65d..288be294731e 100644
--- a/ydb/core/tx/columnshard/engines/column_engine.cpp
+++ b/ydb/core/tx/columnshard/engines/column_engine.cpp
@@ -1,12 +1,25 @@
 #include "column_engine.h"
-#include "changes/abstract/abstract.h"
-#include 
+#include 
+#include 
 
 namespace NKikimr::NOlap {
 
+const std::shared_ptr& IColumnEngine::GetReplaceKey() const {
+    return GetVersionedIndex().GetLastSchema()->GetIndexInfo().GetReplaceKey();
+}
+
+ui64 IColumnEngine::GetMetadataLimit() {
+    static const auto MemoryTotal = NSystemInfo::TotalMemorySize();
+    if (!HasAppData()) {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("total", MemoryTotal);
+        return MemoryTotal * 0.3;
+    } else if (AppDataVerified().ColumnShardConfig.GetIndexMetadataMemoryLimit().HasAbsoluteValue()) {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("value", AppDataVerified().ColumnShardConfig.GetIndexMetadataMemoryLimit().GetAbsoluteValue());
+        return AppDataVerified().ColumnShardConfig.GetIndexMetadataMemoryLimit().GetAbsoluteValue();
+    } else {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("total", MemoryTotal)("kff", AppDataVerified().ColumnShardConfig.GetIndexMetadataMemoryLimit().GetTotalRatio());
+        return MemoryTotal * AppDataVerified().ColumnShardConfig.GetIndexMetadataMemoryLimit().GetTotalRatio();
+    }
 }
 
-template <>
-void Out(IOutputStream& out, TTypeTraits::TFuncParam changes) {
-    out << changes.DebugString();
 }
diff --git a/ydb/core/tx/columnshard/engines/column_engine.h b/ydb/core/tx/columnshard/engines/column_engine.h
index 29f7e74c2714..aba511eec9b1 100644
--- a/ydb/core/tx/columnshard/engines/column_engine.h
+++ b/ydb/core/tx/columnshard/engines/column_engine.h
@@ -1,10 +1,11 @@
 #pragma once
 #include "db_wrapper.h"
-#include "portions/portion_info.h"
 #include "scheme/snapshot_scheme.h"
 #include "predicate/filter.h"
 #include "changes/abstract/settings.h"
 #include "changes/abstract/compaction_info.h"
+#include "scheme/versions/versioned_index.h"
+
 #include 
 
 namespace NKikimr::NColumnShard {
@@ -17,7 +18,12 @@ class TInsertColumnEngineChanges;
 class TCompactColumnEngineChanges;
 class TColumnEngineChanges;
 class TTTLColumnEngineChanges;
-class TCleanupColumnEngineChanges;
+class TCleanupPortionsColumnEngineChanges;
+class TCleanupTablesColumnEngineChanges;
+class TPortionInfo;
+namespace NDataLocks {
+class TManager;
+}
 
 struct TSelectInfo {
     struct TStats {
@@ -60,12 +66,9 @@ struct TSelectInfo {
             out.Records += portionInfo->NumChunks();
             out.Rows += portionInfo->NumRows();
             for (auto& rec : portionInfo->Records) {
-                uniqBlob.insert(rec.BlobRange.BlobId);
+                out.Bytes += rec.BlobRange.Size;
             }
-        }
-        out.Blobs += uniqBlob.size();
-        for (auto blobId : uniqBlob) {
-            out.Bytes += blobId.BlobSize();
+            out.Blobs += portionInfo->GetBlobIdsCount();
         }
         return out;
     }
@@ -156,7 +159,6 @@ class TColumnEngineStats {
 
     i64 Tables{};
     i64 ColumnRecords{};
-    i64 ColumnMetadataBytes{};
     THashMap StatsByType;
 
     std::vector GetKinds() const {
@@ -286,82 +288,18 @@ class TColumnEngineStats {
     }
 };
 
-class TVersionedIndex {
-    std::map Snapshots;
-    std::shared_ptr PrimaryKey;
-    std::map SnapshotByVersion;
-    ui64 LastSchemaVersion = 0;
-public:
-    TString DebugString() const {
-        TStringBuilder sb;
-        for (auto&& i : Snapshots) {
-            sb << i.first << ":" << i.second->DebugString() << ";";
-        }
-        return sb;
-    }
-
-    ISnapshotSchema::TPtr GetSchema(const ui64 version) const {
-        auto it = SnapshotByVersion.find(version);
-        return it == SnapshotByVersion.end() ? nullptr : it->second;
-    }
-
-    ISnapshotSchema::TPtr GetSchemaVerified(const ui64 version) const {
-        auto it = SnapshotByVersion.find(version);
-        Y_ABORT_UNLESS(it != SnapshotByVersion.end(), "no schema for version %lu", version);
-        return it->second;
-    }
-
-    ISnapshotSchema::TPtr GetSchema(const TSnapshot& version) const {
-        for (auto it = Snapshots.rbegin(); it != Snapshots.rend(); ++it) {
-            if (it->first <= version) {
-                return it->second;
-            }
-        }
-        Y_ABORT_UNLESS(!Snapshots.empty());
-        Y_ABORT_UNLESS(version.IsZero());
-        return Snapshots.begin()->second; // For old compaction logic compatibility
-    }
-
-    ISnapshotSchema::TPtr GetLastSchema() const {
-        Y_ABORT_UNLESS(!Snapshots.empty());
-        return Snapshots.rbegin()->second;
-    }
-
-    bool IsEmpty() const {
-        return Snapshots.empty();
-    }
-
-    const std::shared_ptr& GetPrimaryKey() const noexcept {
-        return PrimaryKey;
-    }
-
-    void AddIndex(const TSnapshot& snapshot, TIndexInfo&& indexInfo) {
-        if (Snapshots.empty()) {
-            PrimaryKey = indexInfo.GetPrimaryKey();
-        } else {
-            Y_ABORT_UNLESS(PrimaryKey->Equals(indexInfo.GetPrimaryKey()));
-        }
-
-        auto newVersion = indexInfo.GetVersion();
-        auto itVersion = SnapshotByVersion.emplace(newVersion, std::make_shared(std::move(indexInfo), snapshot));
-        if (!itVersion.second) {
-            AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("message", "Skip registered version")("version", LastSchemaVersion);
-        }
-        auto itSnap = Snapshots.emplace(snapshot, itVersion.first->second);
-        Y_ABORT_UNLESS(itSnap.second);
-        LastSchemaVersion = std::max(newVersion, LastSchemaVersion);
-    }
-};
-
-
 class IColumnEngine {
 protected:
     virtual void DoRegisterTable(const ui64 pathId) = 0;
 public:
+
+    static ui64 GetMetadataLimit();
+
     virtual ~IColumnEngine() = default;
 
     virtual const TVersionedIndex& GetVersionedIndex() const = 0;
-    virtual const std::shared_ptr& GetReplaceKey() const { return GetVersionedIndex().GetLastSchema()->GetIndexInfo().GetReplaceKey(); }
+    virtual std::shared_ptr CopyVersionedIndexPtr() const = 0;
+    virtual const std::shared_ptr& GetReplaceKey() const;
 
     virtual bool HasDataInPathId(const ui64 pathId) const = 0;
     virtual bool Load(IDbWrapper& db) = 0;
@@ -369,21 +307,24 @@ class IColumnEngine {
         AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "RegisterTable")("path_id", pathId);
         return DoRegisterTable(pathId);
     }
+    virtual bool IsOverloadedByMetadata(const ui64 limit) const = 0;
     virtual std::shared_ptr Select(ui64 pathId, TSnapshot snapshot,
                                                 const TPKRangesFilter& pkRangesFilter) const = 0;
     virtual std::shared_ptr StartInsert(std::vector&& dataToIndex) noexcept = 0;
-    virtual std::shared_ptr StartCompaction(const TCompactionLimits& limits, const THashSet& busyPortions) noexcept = 0;
-    virtual std::shared_ptr StartCleanup(const TSnapshot& snapshot, THashSet& pathsToDrop,
-                                                               ui32 maxRecords) noexcept = 0;
-    virtual std::shared_ptr StartTtl(const THashMap& pathEviction, const THashSet& busyPortions,
-                                                           ui64 maxBytesToEvict = TCompactionLimits::DEFAULT_EVICTION_BYTES) noexcept = 0;
+    virtual std::shared_ptr StartCompaction(const std::shared_ptr& dataLocksManager) noexcept = 0;
+    virtual std::shared_ptr StartCleanupPortions(const TSnapshot& snapshot, const THashSet& pathsToDrop,
+        const std::shared_ptr& dataLocksManager) noexcept = 0;
+    virtual std::shared_ptr StartCleanupTables(THashSet& pathsToDrop) noexcept = 0;
+    virtual std::vector> StartTtl(const THashMap& pathEviction,
+        const std::shared_ptr& dataLocksManager, const ui64 memoryUsageLimit) noexcept = 0;
     virtual bool ApplyChanges(IDbWrapper& db, std::shared_ptr changes, const TSnapshot& snapshot) noexcept = 0;
     virtual void RegisterSchemaVersion(const TSnapshot& snapshot, TIndexInfo&& info) = 0;
+    virtual void RegisterSchemaVersion(const TSnapshot& snapshot, const NKikimrSchemeOp::TColumnTableSchema& schema) = 0;
     virtual const TMap>& GetStats() const = 0;
     virtual const TColumnEngineStats& GetTotalStats() = 0;
     virtual ui64 MemoryUsage() const { return 0; }
     virtual TSnapshot LastUpdate() const { return TSnapshot::Zero(); }
-    virtual void OnTieringModified(std::shared_ptr manager, const NColumnShard::TTtl& ttl) = 0;
+    virtual void OnTieringModified(const std::shared_ptr& manager, const NColumnShard::TTtl& ttl, const std::optional pathId) = 0;
 };
 
 }
diff --git a/ydb/core/tx/columnshard/engines/column_engine_logs.cpp b/ydb/core/tx/columnshard/engines/column_engine_logs.cpp
index 39482ad60fdc..5b3710f18c65 100644
--- a/ydb/core/tx/columnshard/engines/column_engine_logs.cpp
+++ b/ydb/core/tx/columnshard/engines/column_engine_logs.cpp
@@ -1,17 +1,21 @@
 #include "column_engine_logs.h"
 #include "filter.h"
 
+#include "changes/actualization/construction/context.h"
+#include "changes/indexation.h"
+#include "changes/general_compaction.h"
+#include "changes/cleanup_portions.h"
+#include "changes/cleanup_tables.h"
+#include "changes/ttl.h"
+
+#include 
 #include 
-#include 
-#include 
-#include 
 #include 
 #include 
+#include 
+#include 
+
 #include 
-#include "changes/indexation.h"
-#include "changes/general_compaction.h"
-#include "changes/cleanup.h"
-#include "changes/ttl.h"
 
 #include 
 #include 
@@ -20,22 +24,27 @@
 
 namespace NKikimr::NOlap {
 
-TColumnEngineForLogs::TColumnEngineForLogs(ui64 tabletId, const TCompactionLimits& limits, const std::shared_ptr& storagesManager)
-    : GranulesStorage(std::make_shared(SignalCounters, limits, storagesManager))
+TColumnEngineForLogs::TColumnEngineForLogs(ui64 tabletId, const std::shared_ptr& storagesManager,
+    const TSnapshot& snapshot, const NKikimrSchemeOp::TColumnTableSchema& schema)
+    : GranulesStorage(std::make_shared(SignalCounters, storagesManager))
     , StoragesManager(storagesManager)
     , TabletId(tabletId)
     , LastPortion(0)
     , LastGranule(0)
 {
+    ActualizationController = std::make_shared();
+    RegisterSchemaVersion(snapshot, schema);
 }
 
-ui64 TColumnEngineForLogs::MemoryUsage() const {
-    auto numPortions = Counters.GetPortionsCount();
-
-    return Counters.Tables * (sizeof(TGranuleMeta) + sizeof(ui64)) +
-        numPortions * (sizeof(TPortionInfo) + sizeof(ui64)) +
-        Counters.ColumnRecords * sizeof(TColumnRecord) +
-        Counters.ColumnMetadataBytes;
+TColumnEngineForLogs::TColumnEngineForLogs(ui64 tabletId, const std::shared_ptr& storagesManager,
+    const TSnapshot& snapshot, TIndexInfo&& schema)
+    : GranulesStorage(std::make_shared(SignalCounters, storagesManager))
+    , StoragesManager(storagesManager)
+    , TabletId(tabletId)
+    , LastPortion(0)
+    , LastGranule(0) {
+    ActualizationController = std::make_shared();
+    RegisterSchemaVersion(snapshot, std::move(schema));
 }
 
 const TMap>& TColumnEngineForLogs::GetStats() const {
@@ -43,8 +52,7 @@ const TMap>& TColumnEngineForLogs::Get
 }
 
 const TColumnEngineStats& TColumnEngineForLogs::GetTotalStats() {
-    Counters.Tables = Tables.size();
-
+    Counters.Tables = GranulesStorage->GetTables().size();
     return Counters;
 }
 
@@ -62,22 +70,17 @@ void TColumnEngineForLogs::UpdatePortionStats(const TPortionInfo& portionInfo, E
     UpdatePortionStats(*PathStats[pathId], portionInfo, updateType, exPortionInfo);
 }
 
-TColumnEngineStats::TPortionsStats DeltaStats(const TPortionInfo& portionInfo, ui64& metadataBytes) {
+TColumnEngineStats::TPortionsStats DeltaStats(const TPortionInfo& portionInfo) {
     TColumnEngineStats::TPortionsStats deltaStats;
-    THashSet blobs;
+    deltaStats.Bytes = 0;
     for (auto& rec : portionInfo.Records) {
-        metadataBytes += rec.GetMeta().GetMetadataSize();
-        blobs.insert(rec.BlobRange.BlobId);
         deltaStats.BytesByColumn[rec.ColumnId] += rec.BlobRange.Size;
-        deltaStats.RawBytesByColumn[rec.ColumnId] += rec.GetMeta().GetRawBytes().value_or(0);
+        deltaStats.RawBytesByColumn[rec.ColumnId] += rec.GetMeta().GetRawBytes();
     }
     deltaStats.Rows = portionInfo.NumRows();
-    deltaStats.RawBytes = portionInfo.RawBytesSum();
-    deltaStats.Bytes = 0;
-    for (auto& blobId : blobs) {
-        deltaStats.Bytes += blobId.BlobSize();
-    }
-    deltaStats.Blobs = blobs.size();
+    deltaStats.Bytes = portionInfo.GetTotalBlobBytes();
+    deltaStats.RawBytes = portionInfo.GetTotalRawBytes();
+    deltaStats.Blobs = portionInfo.GetBlobIdsCount();
     deltaStats.Portions = 1;
     return deltaStats;
 }
@@ -86,8 +89,7 @@ void TColumnEngineForLogs::UpdatePortionStats(TColumnEngineStats& engineStats, c
                                               EStatsUpdateType updateType,
                                               const TPortionInfo* exPortionInfo) const {
     ui64 columnRecords = portionInfo.Records.size();
-    ui64 metadataBytes = 0;
-    TColumnEngineStats::TPortionsStats deltaStats = DeltaStats(portionInfo, metadataBytes);
+    TColumnEngineStats::TPortionsStats deltaStats = DeltaStats(portionInfo);
 
     Y_ABORT_UNLESS(!exPortionInfo || exPortionInfo->GetMeta().Produced != TPortionMeta::EProduced::UNSPECIFIED);
     Y_ABORT_UNLESS(portionInfo.GetMeta().Produced != TPortionMeta::EProduced::UNSPECIFIED);
@@ -106,23 +108,19 @@ void TColumnEngineForLogs::UpdatePortionStats(TColumnEngineStats& engineStats, c
 
     if (isErase) { // PortionsToDrop
         engineStats.ColumnRecords -= columnRecords;
-        engineStats.ColumnMetadataBytes -= metadataBytes;
 
         stats -= deltaStats;
     } else if (isAdd) { // Load || AppendedPortions
         engineStats.ColumnRecords += columnRecords;
-        engineStats.ColumnMetadataBytes += metadataBytes;
 
         stats += deltaStats;
     } else if (&srcStats != &stats || exPortionInfo) { // SwitchedPortions || PortionsToEvict
         stats += deltaStats;
 
         if (exPortionInfo) {
-            ui64 rmMetadataBytes = 0;
-            srcStats -= DeltaStats(*exPortionInfo, rmMetadataBytes);
+            srcStats -= DeltaStats(*exPortionInfo);
 
             engineStats.ColumnRecords += columnRecords - exPortionInfo->Records.size();
-            engineStats.ColumnMetadataBytes += metadataBytes - rmMetadataBytes;
         } else {
             srcStats -= deltaStats;
         }
@@ -134,7 +132,27 @@ void TColumnEngineForLogs::RegisterSchemaVersion(const TSnapshot& snapshot, TInd
         const NOlap::TIndexInfo& lastIndexInfo = VersionedIndex.GetLastSchema()->GetIndexInfo();
         Y_ABORT_UNLESS(lastIndexInfo.CheckCompatible(indexInfo));
     }
+    const bool isCriticalScheme = indexInfo.GetSchemeNeedActualization();
     VersionedIndex.AddIndex(snapshot, std::move(indexInfo));
+    if (isCriticalScheme) {
+        if (!ActualizationStarted) {
+            ActualizationStarted = true;
+            for (auto&& i : GranulesStorage->GetTables()) {
+                i.second->StartActualizationIndex();
+            }
+        }
+        for (auto&& i : GranulesStorage->GetTables()) {
+            i.second->RefreshScheme();
+        }
+    }
+}
+
+void TColumnEngineForLogs::RegisterSchemaVersion(const TSnapshot& snapshot, const NKikimrSchemeOp::TColumnTableSchema& schema) {
+    std::optional indexInfoOptional = NOlap::TIndexInfo::BuildFromProto(schema, StoragesManager);
+    AFL_VERIFY(indexInfoOptional);
+    NOlap::TIndexInfo indexInfo = std::move(*indexInfoOptional);
+    indexInfo.SetAllKeys(StoragesManager);
+    RegisterSchemaVersion(snapshot, std::move(indexInfo));
 }
 
 bool TColumnEngineForLogs::Load(IDbWrapper& db) {
@@ -143,7 +161,7 @@ bool TColumnEngineForLogs::Load(IDbWrapper& db) {
     THashMap granuleToPathIdDecoder;
     {
         TMemoryProfileGuard g("TTxInit/LoadColumns");
-        auto guard = GranulesStorage->StartPackModification();
+        auto guard = GranulesStorage->GetStats()->StartPackModification();
         if (!LoadColumns(db)) {
             return false;
         }
@@ -152,11 +170,11 @@ bool TColumnEngineForLogs::Load(IDbWrapper& db) {
         }
     }
 
-    for (const auto& [pathId, spg] : Tables) {
+    for (const auto& [pathId, spg] : GranulesStorage->GetTables()) {
         for (const auto& [_, portionInfo] : spg->GetPortions()) {
             UpdatePortionStats(*portionInfo, EStatsUpdateType::ADD);
             if (portionInfo->CheckForCleanup()) {
-                CleanupPortions[portionInfo->GetRemoveSnapshot()].emplace_back(*portionInfo);
+                CleanupPortions[portionInfo->GetRemoveSnapshotVerified()].emplace_back(*portionInfo);
             }
         }
     }
@@ -167,30 +185,26 @@ bool TColumnEngineForLogs::Load(IDbWrapper& db) {
 }
 
 bool TColumnEngineForLogs::LoadColumns(IDbWrapper& db) {
-    TSnapshot lastSnapshot(0, 0);
-    const TIndexInfo* currentIndexInfo = nullptr;
+    TPortionInfo::TSchemaCursor schema(VersionedIndex);
     if (!db.LoadColumns([&](const TPortionInfo& portion, const TColumnChunkLoadContext& loadContext) {
-        if (!currentIndexInfo || lastSnapshot != portion.GetMinSnapshot()) {
-            currentIndexInfo = &VersionedIndex.GetSchema(portion.GetMinSnapshot())->GetIndexInfo();
-            lastSnapshot = portion.GetMinSnapshot();
-        }
+        auto currentSchema = schema.GetSchema(portion);
         AFL_VERIFY(portion.ValidSnapshotInfo())("details", portion.DebugString());
         // Locate granule and append the record.
-        TColumnRecord rec(loadContext, *currentIndexInfo);
-        GetGranulePtrVerified(portion.GetPathId())->AddColumnRecord(*currentIndexInfo, portion, rec, loadContext.GetPortionMeta());
+        GetGranulePtrVerified(portion.GetPathId())->AddColumnRecordOnLoad(currentSchema->GetIndexInfo(), portion, loadContext, loadContext.GetPortionMeta());
     })) {
         return false;
     }
 
     if (!db.LoadIndexes([&](const ui64 pathId, const ui64 portionId, const TIndexChunkLoadContext& loadContext) {
-        auto portion = GetGranulePtrVerified(pathId)->GetPortionPtr(portionId);
+        auto portion = GetGranulePtrVerified(pathId)->GetPortionOptional(portionId);
         AFL_VERIFY(portion);
-        portion->AddIndex(loadContext.BuildIndexChunk());
+        const auto linkBlobId = portion->RegisterBlobId(loadContext.GetBlobRange().GetBlobId());
+        portion->AddIndex(loadContext.BuildIndexChunk(linkBlobId));
     })) {
         return false;
     };
 
-    for (auto&& i : Tables) {
+    for (auto&& i : GranulesStorage->GetTables()) {
         i.second->OnAfterPortionsLoad();
     }
     return true;
@@ -220,9 +234,8 @@ bool TColumnEngineForLogs::LoadCounters(IDbWrapper& db) {
 std::shared_ptr TColumnEngineForLogs::StartInsert(std::vector&& dataToIndex) noexcept {
     Y_ABORT_UNLESS(dataToIndex.size());
 
-    TSaverContext saverContext(StoragesManager->GetInsertOperator(), StoragesManager);
-
-    auto changes = std::make_shared(std::move(dataToIndex), TSplitSettings(), saverContext);
+    TSaverContext saverContext(StoragesManager);
+    auto changes = std::make_shared(std::move(dataToIndex), saverContext);
     auto pkSchema = VersionedIndex.GetLastSchema()->GetIndexInfo().GetReplaceKey();
 
     for (const auto& data : changes->GetDataToIndex()) {
@@ -237,71 +250,123 @@ std::shared_ptr TColumnEngineForLogs::StartInsert(st
     return changes;
 }
 
-std::shared_ptr TColumnEngineForLogs::StartCompaction(const TCompactionLimits& limits, const THashSet& busyPortions) noexcept {
-    auto granule = GranulesStorage->GetGranuleForCompaction(Tables);
+std::shared_ptr TColumnEngineForLogs::StartCompaction(const std::shared_ptr& dataLocksManager) noexcept {
+    AFL_VERIFY(dataLocksManager);
+    auto granule = GranulesStorage->GetGranuleForCompaction(dataLocksManager);
     if (!granule) {
         AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "no granules for start compaction");
         return nullptr;
     }
     granule->OnStartCompaction();
-    auto changes = granule->GetOptimizationTask(limits, granule, busyPortions);
-    NYDBTest::TControllers::GetColumnShardController()->OnStartCompaction(changes);
+    auto changes = granule->GetOptimizationTask(granule, dataLocksManager);
     if (!changes) {
         AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "cannot build optimization task for granule that need compaction")("weight", granule->GetCompactionPriority().DebugString());
     }
     return changes;
 }
 
-std::shared_ptr TColumnEngineForLogs::StartCleanup(const TSnapshot& snapshot,
-                                                                         THashSet& pathsToDrop, ui32 maxRecords) noexcept {
+std::shared_ptr TColumnEngineForLogs::StartCleanupTables(THashSet& pathsToDrop) noexcept {
+    if (pathsToDrop.empty()) {
+        return nullptr;
+    }
+    auto changes = std::make_shared(StoragesManager);
+
+    ui64 txSize = 0;
+    const ui64 txSizeLimit = TGlobalLimits::TxWriteLimitBytes / 4;
+    THashSet pathsToRemove;
+    for (ui64 pathId : pathsToDrop) {
+        if (!HasDataInPathId(pathId)) {
+            changes->TablesToDrop.emplace(pathId);
+        }
+        txSize += 256;
+        if (txSize > txSizeLimit) {
+            break;
+        }
+    }
+    for (auto&& i : pathsToRemove) {
+        pathsToDrop.erase(i);
+    }
+    if (changes->TablesToDrop.empty()) {
+        return nullptr;
+    }
+    return changes;
+}
+
+std::shared_ptr TColumnEngineForLogs::StartCleanupPortions(const TSnapshot& snapshot,
+                                                                         const THashSet& pathsToDrop, const std::shared_ptr& dataLocksManager) noexcept {
+    AFL_VERIFY(dataLocksManager);
     AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "StartCleanup")("portions_count", CleanupPortions.size());
-    auto changes = std::make_shared(StoragesManager);
-    ui32 affectedRecords = 0;
+    auto changes = std::make_shared(StoragesManager);
 
     // Add all portions from dropped paths
-    THashSet dropPortions;
-    THashSet emptyPaths;
+    ui64 txSize = 0;
+    const ui64 txSizeLimit = TGlobalLimits::TxWriteLimitBytes / 4;
+    ui32 skipLocked = 0;
+    ui32 portionsFromDrop = 0;
+    bool limitExceeded = false;
+    THashSet uniquePortions;
     for (ui64 pathId : pathsToDrop) {
-        auto itTable = Tables.find(pathId);
-        if (itTable == Tables.end()) {
-            emptyPaths.insert(pathId);
+        auto g = GranulesStorage->GetGranuleOptional(pathId);
+        if (!g) {
             continue;
         }
 
-        for (auto& [portion, info] : itTable->second->GetPortions()) {
-            affectedRecords += info->NumChunks();
-            changes->PortionsToDrop.push_back(*info);
-            dropPortions.insert(portion);
-
-            if (affectedRecords > maxRecords) {
+        for (auto& [portion, info] : g->GetPortions()) {
+            if (dataLocksManager->IsLocked(*info)) {
+                ++skipLocked;
+                continue;
+            }
+            if (txSize + info->GetTxVolume() < txSizeLimit || changes->PortionsToDrop.empty()) {
+                txSize += info->GetTxVolume();
+            } else {
+                limitExceeded = true;
                 break;
             }
+            const auto inserted = uniquePortions.emplace(info->GetAddress()).second;
+            Y_ABORT_UNLESS(inserted);
+            changes->PortionsToDrop.push_back(*info);
+            ++portionsFromDrop;
         }
     }
-    for (ui64 pathId : emptyPaths) {
-        pathsToDrop.erase(pathId);
-    }
 
-    if (affectedRecords > maxRecords) {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "StartCleanup")("portions_count", CleanupPortions.size())("portions_prepared", changes->PortionsToDrop.size());
-        return changes;
-    }
-
-    while (CleanupPortions.size() && affectedRecords <= maxRecords) {
-        auto it = CleanupPortions.begin();
+    for (auto it = CleanupPortions.begin(); !limitExceeded && it != CleanupPortions.end();) {
         if (it->first >= snapshot) {
             AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "StartCleanupStop")("snapshot", snapshot.DebugString())("current_snapshot", it->first.DebugString());
             break;
         }
-        for (auto&& i : it->second) {
-            Y_ABORT_UNLESS(i.CheckForCleanup(snapshot));
-            affectedRecords += i.NumChunks();
-            changes->PortionsToDrop.push_back(i);
+        for (ui32 i = 0; i < it->second.size();) {
+            if (dataLocksManager->IsLocked(it->second[i])) {
+                ++skipLocked;
+                ++i;
+                continue;
+            }
+            const auto inserted = uniquePortions.emplace(it->second[i].GetAddress()).second;
+            if (inserted) {
+                Y_ABORT_UNLESS(it->second[i].CheckForCleanup(snapshot));
+                if (txSize + it->second[i].GetTxVolume() < txSizeLimit || changes->PortionsToDrop.empty()) {
+                    txSize += it->second[i].GetTxVolume();
+                } else {
+                    limitExceeded = true;
+                    break;
+                }
+                changes->PortionsToDrop.push_back(std::move(it->second[i]));
+            }
+            if (i + 1 < it->second.size()) {
+                it->second[i] = std::move(it->second.back());
+            }
+            it->second.pop_back();
+        }
+        if (limitExceeded) {
+            break;
+        }
+        if (it->second.empty()) {
+            it = CleanupPortions.erase(it);
+        } else {
+            ++it;
         }
-        CleanupPortions.erase(it);
     }
-    changes->NeedRepeat = affectedRecords > maxRecords;
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "StartCleanup")("portions_count", CleanupPortions.size())("portions_prepared", changes->PortionsToDrop.size());
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "StartCleanup")
+        ("portions_count", CleanupPortions.size())("portions_prepared", changes->PortionsToDrop.size())("drop", portionsFromDrop)("skip", skipLocked);
 
     if (changes->PortionsToDrop.empty()) {
         return nullptr;
@@ -310,168 +375,43 @@ std::shared_ptr TColumnEngineForLogs::StartCleanup(
     return changes;
 }
 
-TDuration TColumnEngineForLogs::ProcessTiering(const ui64 pathId, const TTiering& ttl, TTieringProcessContext& context) const {
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "ProcessTiering")("path_id", pathId)("ttl", ttl.GetDebugString());
-    ui64 evictionSize = 0;
-    ui64 dropBlobs = 0;
-    auto& indexInfo = VersionedIndex.GetLastSchema()->GetIndexInfo();
-    Y_ABORT_UNLESS(context.Changes->Tiering.emplace(pathId, ttl).second);
-
-    TDuration dWaiting = NYDBTest::TControllers::GetColumnShardController()->GetTTLDefaultWaitingDuration(TDuration::Minutes(1));
-    auto itTable = Tables.find(pathId);
-    if (itTable == Tables.end()) {
-        return dWaiting;
-    }
-
-    std::optional expireTimestampOpt;
-    if (ttl.Ttl) {
-        expireTimestampOpt = ttl.Ttl->GetEvictInstant(context.Now);
-    }
-
-    auto ttlColumnNames = ttl.GetTtlColumns();
-    Y_ABORT_UNLESS(ttlColumnNames.size() == 1); // TODO: support different ttl columns
-    ui32 ttlColumnId = indexInfo.GetColumnId(*ttlColumnNames.begin());
-    for (auto& [portion, info] : itTable->second->GetPortions()) {
-        if (info->HasRemoveSnapshot()) {
-            continue;
-        }
-        if (context.BusyPortions.contains(info->GetAddress())) {
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "skip ttl through busy portion")("portion_id", info->GetAddress().DebugString());
-            continue;
-        }
+std::vector> TColumnEngineForLogs::StartTtl(const THashMap& pathEviction, const std::shared_ptr& dataLocksManager, 
+    const ui64 memoryUsageLimit) noexcept {
+    AFL_VERIFY(dataLocksManager);
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "StartTtl")("external", pathEviction.size());
 
-        context.AllowEviction = (evictionSize <= context.MaxEvictBytes);
-        context.AllowDrop = (dropBlobs <= TCompactionLimits::MAX_BLOBS_TO_DELETE);
-        const bool tryEvictPortion = context.AllowEviction && ttl.HasTiers();
-
-        if (auto max = info->MaxValue(ttlColumnId)) {
-            bool keep = !expireTimestampOpt;
-            if (expireTimestampOpt) {
-                auto mpiOpt = ttl.Ttl->ScalarToInstant(max);
-                Y_ABORT_UNLESS(mpiOpt);
-                const TInstant maxTtlPortionInstant = *mpiOpt;
-                const TDuration d = maxTtlPortionInstant - *expireTimestampOpt;
-                keep = !!d;
-                AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("event", "keep_detect")("max", maxTtlPortionInstant.Seconds())("expire", expireTimestampOpt->Seconds());
-                if (d && dWaiting > d) {
-                    dWaiting = d;
-                }
-            }
-
-            AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("event", "scalar_less_result")("keep", keep)("tryEvictPortion", tryEvictPortion)("allowDrop", context.AllowDrop);
-            if (keep && tryEvictPortion) {
-                const TString currentTierName = info->GetMeta().GetTierName() ? info->GetMeta().GetTierName() : IStoragesManager::DefaultStorageId;
-                TString tierName = "";
-                for (auto& tierRef : ttl.GetOrderedTiers()) {
-                    auto& tierInfo = tierRef.Get();
-                    if (!indexInfo.AllowTtlOverColumn(tierInfo.GetEvictColumnName())) {
-                        SignalCounters.OnPortionNoTtlColumn(info->BlobsBytes());
-                        continue;
-                    }
-                    auto mpiOpt = tierInfo.ScalarToInstant(max);
-                    Y_ABORT_UNLESS(mpiOpt);
-                    const TInstant maxTieringPortionInstant = *mpiOpt;
-
-                    const TDuration d = tierInfo.GetEvictInstant(context.Now) - maxTieringPortionInstant;
-                    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "tiering_choosing")("max", maxTieringPortionInstant.Seconds())
-                        ("evict", tierInfo.GetEvictInstant(context.Now).Seconds())("tier_name", tierInfo.GetName())("d", d);
-                    if (d) {
-                        tierName = tierInfo.GetName();
-                        break;
-                    } else {
-                        auto dWaitLocal = maxTieringPortionInstant - tierInfo.GetEvictInstant(context.Now);
-                        if (dWaiting > dWaitLocal) {
-                            dWaiting = dWaitLocal;
-                        }
-                    }
-                }
-                if (!tierName) {
-                    tierName = IStoragesManager::DefaultStorageId;
-                }
-                if (currentTierName != tierName) {
-                    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "tiering switch detected")("from", currentTierName)("to", tierName);
-                    evictionSize += info->BlobsSizes().first;
-                    context.Changes->AddPortionToEvict(*info, TPortionEvictionFeatures(tierName, pathId, StoragesManager->GetOperator(tierName)));
-                    SignalCounters.OnPortionToEvict(info->BlobsBytes());
-                }
-            }
-            if (!keep && context.AllowDrop) {
-                AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "portion_remove")("portion", info->DebugString());
-                dropBlobs += info->NumBlobs();
-                AFL_VERIFY(context.Changes->PortionsToRemove.emplace(info->GetAddress(), *info).second);
-                SignalCounters.OnPortionToDrop(info->BlobsBytes());
+    TSaverContext saverContext(StoragesManager);
+    NActualizer::TTieringProcessContext context(memoryUsageLimit, saverContext, dataLocksManager, SignalCounters, ActualizationController);
+    for (auto&& i : pathEviction) {
+        auto g = GetGranuleOptional(i.first);
+        if (g) {
+            if (!ActualizationStarted) {
+                g->StartActualizationIndex();
             }
-        } else {
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "scalar_less_not_max");
-            SignalCounters.OnPortionNoBorder(info->BlobsBytes());
+            g->RefreshTiering(i.second);
+            g->BuildActualizationTasks(context);
         }
     }
-    if (dWaiting > TDuration::MilliSeconds(500) && (!context.AllowEviction || !context.AllowDrop)) {
-        dWaiting = TDuration::MilliSeconds(500);
-    }
-    Y_ABORT_UNLESS(!!dWaiting);
-    return dWaiting;
-}
 
-bool TColumnEngineForLogs::DrainEvictionQueue(std::map>& evictionsQueue, TTieringProcessContext& context) const {
-    const TMonotonic nowMonotonic = TlsActivationContext ? AppData()->MonotonicTimeProvider->Now() : TMonotonic::Now();
-    bool hasChanges = false;
-    while (evictionsQueue.size() && evictionsQueue.begin()->first < nowMonotonic) {
-        hasChanges = true;
-        auto tierings = std::move(evictionsQueue.begin()->second);
-        evictionsQueue.erase(evictionsQueue.begin());
-        for (auto&& i : tierings) {
-            auto itDuration = context.DurationsForced.find(i.GetPathId());
-            if (itDuration == context.DurationsForced.end()) {
-                const TDuration dWaiting = ProcessTiering(i.GetPathId(), i.GetTieringInfo(), context);
-                evictionsQueue[nowMonotonic + dWaiting].emplace_back(std::move(i));
-            } else {
-                evictionsQueue[nowMonotonic + itDuration->second].emplace_back(std::move(i));
+    if (ActualizationStarted) {
+        TLogContextGuard lGuard(TLogContextBuilder::Build()("queue", "ttl")("external_count", pathEviction.size()));
+        for (auto&& i : GranulesStorage->GetTables()) {
+            if (pathEviction.contains(i.first)) {
+                continue;
             }
-        }
-    }
-
-    if (evictionsQueue.size()) {
-        if (evictionsQueue.begin()->first < nowMonotonic) {
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "stop scan")("reason", "too many data")("first", evictionsQueue.begin()->first)("now", nowMonotonic);
-        } else if (!hasChanges) {
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "stop scan")("reason", "too early")("first", evictionsQueue.begin()->first)("now", nowMonotonic);
-        } else {
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "stop scan")("reason", "task_ready")("first", evictionsQueue.begin()->first)("now", nowMonotonic)
-                ("internal", hasChanges)("evict_portions", context.Changes->GetPortionsToEvictCount())
-                ("drop_portions", context.Changes->PortionsToRemove.size());
+            i.second->BuildActualizationTasks(context);
         }
     } else {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "stop scan")("reason", "no data in queue");
-    }
-    return hasChanges;
-}
-
-std::shared_ptr TColumnEngineForLogs::StartTtl(const THashMap& pathEviction, const THashSet& busyPortions, ui64 maxEvictBytes) noexcept {
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "StartTtl")("external", pathEviction.size())
-        ("internal", EvictionsController.MutableNextCheckInstantForTierings().size())
-        ;
-
-    TSaverContext saverContext(StoragesManager->GetDefaultOperator(), StoragesManager);
-
-    auto changes = std::make_shared(TSplitSettings(), saverContext);
-
-    TTieringProcessContext context(maxEvictBytes, changes, busyPortions);
-    bool hasExternalChanges = false;
-    for (auto&& i : pathEviction) {
-        context.DurationsForced[i.first] = ProcessTiering(i.first, i.second, context);
-        hasExternalChanges = true;
-    }
-
-    {
-        TLogContextGuard lGuard(TLogContextBuilder::Build()("queue", "ttl")("has_external", hasExternalChanges));
-        DrainEvictionQueue(EvictionsController.MutableNextCheckInstantForTierings(), context);
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "StartTtl")("skip", "not_ready_tiers");
     }
-
-    if (changes->PortionsToRemove.empty() && !changes->GetPortionsToEvictCount()) {
-        return nullptr;
+    std::vector> result;
+    for (auto&& i : context.GetTasks()) {
+        for (auto&& t : i.second) {
+            SignalCounters.OnActualizationTask(t.GetTask()->GetPortionsToEvictCount(), t.GetTask()->PortionsToRemove.size());
+            result.emplace_back(t.GetTask());
+        }
     }
-    return changes;
+    return result;
 }
 
 bool TColumnEngineForLogs::ApplyChanges(IDbWrapper& db, std::shared_ptr indexChanges, const TSnapshot& snapshot) noexcept {
@@ -479,10 +419,6 @@ bool TColumnEngineForLogs::ApplyChanges(IDbWrapper& db, std::shared_ptrCompile(context);
     }
-    {
-        TApplyChangesContext context(db, snapshot);
-        Y_ABORT_UNLESS(indexChanges->ApplyChanges(*this, context));
-    }
     db.WriteCounter(LAST_PORTION, LastPortion);
     db.WriteCounter(LAST_GRANULE, LastGranule);
 
@@ -495,10 +431,7 @@ bool TColumnEngineForLogs::ApplyChanges(IDbWrapper& db, std::shared_ptrsecond->IsErasable());
-    Tables.erase(it);
+    GranulesStorage->EraseTable(pathId);
 }
 
 void TColumnEngineForLogs::UpsertPortion(const TPortionInfo& portionInfo, const TPortionInfo* exInfo) {
@@ -516,7 +449,7 @@ bool TColumnEngineForLogs::ErasePortion(const TPortionInfo& portionInfo, bool up
     const ui64 portion = portionInfo.GetPortion();
     auto spg = GetGranulePtrVerified(portionInfo.GetPathId());
     Y_ABORT_UNLESS(spg);
-    auto p = spg->GetPortionPtr(portion);
+    auto p = spg->GetPortionOptional(portion);
 
     if (!p) {
         LOG_S_WARN("Portion erased already " << portionInfo << " at tablet " << TabletId);
@@ -533,12 +466,11 @@ bool TColumnEngineForLogs::ErasePortion(const TPortionInfo& portionInfo, bool up
 std::shared_ptr TColumnEngineForLogs::Select(ui64 pathId, TSnapshot snapshot,
     const TPKRangesFilter& pkRangesFilter) const {
     auto out = std::make_shared();
-    auto itTable = Tables.find(pathId);
-    if (itTable == Tables.end()) {
+    auto spg = GranulesStorage->GetGranuleOptional(pathId);
+    if (!spg) {
         return out;
     }
 
-    auto spg = itTable->second;
     for (const auto& [indexKey, keyPortions] : spg->GroupOrderedPortionsByPK()) {
         for (auto&& [_, portionInfo] : keyPortions) {
             if (!portionInfo->IsVisible(snapshot)) {
@@ -558,40 +490,50 @@ std::shared_ptr TColumnEngineForLogs::Select(ui64 pathId, TSnapshot
     return out;
 }
 
-void TColumnEngineForLogs::OnTieringModified(std::shared_ptr manager, const NColumnShard::TTtl& ttl) {
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "OnTieringModified");
-    std::optional> tierings;
-    if (manager) {
-        tierings = manager->GetTiering();
+void TColumnEngineForLogs::OnTieringModified(const std::shared_ptr& manager, const NColumnShard::TTtl& ttl, const std::optional pathId) {
+    if (!ActualizationStarted) {
+        for (auto&& i : GranulesStorage->GetTables()) {
+            i.second->StartActualizationIndex();
+        }
     }
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "OnTieringModified")
-        ("new_count_tierings", tierings ? ::ToString(tierings->size()) : TString("undefined"))
-        ("new_count_ttls", ttl.PathsCount());
-    EvictionsController.RefreshTierings(std::move(tierings), ttl);
 
-}
+    ActualizationStarted = true;
+    AFL_VERIFY(manager);
+    THashMap tierings = manager->GetTiering();
+    ttl.AddTtls(tierings);
 
-void TColumnEngineForLogs::DoRegisterTable(const ui64 pathId) {
-    AFL_VERIFY(Tables.emplace(pathId, std::make_shared(pathId, GranulesStorage, SignalCounters.RegisterGranuleDataCounters(), VersionedIndex)).second);
-}
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "OnTieringModified")
+        ("new_count_tierings", tierings.size())
+        ("new_count_ttls", ttl.PathsCount());
+    // some string
 
-TColumnEngineForLogs::TTieringProcessContext::TTieringProcessContext(const ui64 maxEvictBytes, std::shared_ptr changes, const THashSet& busyPortions)
-    : Now(TlsActivationContext ? AppData()->TimeProvider->Now() : TInstant::Now())
-    , MaxEvictBytes(maxEvictBytes)
-    , Changes(changes)
-    , BusyPortions(busyPortions)
-{
 
+    if (pathId) {
+        auto g = GetGranulePtrVerified(*pathId);
+        auto it = tierings.find(*pathId);
+        if (it == tierings.end()) {
+            g->RefreshTiering({});
+        } else {
+            g->RefreshTiering(it->second);
+        }
+    } else {
+        for (auto&& [gPathId, g] : GranulesStorage->GetTables()) {
+            auto it = tierings.find(gPathId);
+            if (it == tierings.end()) {
+                g->RefreshTiering({});
+            } else {
+                g->RefreshTiering(it->second);
+            }
+        }
+    }
 }
 
-void TEvictionsController::RefreshTierings(std::optional>&& tierings, const NColumnShard::TTtl& ttl) {
-    if (tierings) {
-        OriginalTierings = std::move(*tierings);
+void TColumnEngineForLogs::DoRegisterTable(const ui64 pathId) {
+    std::shared_ptr g = GranulesStorage->RegisterTable(pathId, SignalCounters.RegisterGranuleDataCounters(), VersionedIndex);
+    if (ActualizationStarted) {
+        g->StartActualizationIndex();
+        g->RefreshScheme();
     }
-    auto copy = OriginalTierings;
-    ttl.AddTtls(copy);
-    NextCheckInstantForTierings = BuildNextInstantCheckers(std::move(copy));
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "RefreshTierings")("count", NextCheckInstantForTierings.size());
 }
 
 } // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/column_engine_logs.h b/ydb/core/tx/columnshard/engines/column_engine_logs.h
index 5ce93a914eca..d991a6878f7d 100644
--- a/ydb/core/tx/columnshard/engines/column_engine_logs.h
+++ b/ydb/core/tx/columnshard/engines/column_engine_logs.h
@@ -3,14 +3,15 @@
 #include "defs.h"
 #include "column_engine.h"
 #include 
+#include 
 #include 
 #include 
+
+#include "changes/actualization/controller/controller.h"
+
 #include "scheme/tier_info.h"
 #include "storage/granule.h"
 #include "storage/storage.h"
-#include "changes/indexation.h"
-#include "changes/ttl.h"
-#include "changes/with_appended.h"
 
 namespace NKikimr::NArrow {
 struct TSortDescription;
@@ -18,54 +19,18 @@ struct TSortDescription;
 
 namespace NKikimr::NOlap {
 
-struct TReadMetadata;
-class TGranulesTable;
-class TColumnsTable;
-class TCountersTable;
-
-class TEvictionsController {
-public:
-    class TTieringWithPathId {
-    private:
-        const ui64 PathId;
-        TTiering TieringInfo;
-    public:
-        TTieringWithPathId(const ui64 pathId, TTiering&& tieringInfo)
-            : PathId(pathId)
-            , TieringInfo(std::move(tieringInfo))
-        {
-
-        }
-
-        ui64 GetPathId() const {
-            return PathId;
-        }
-
-        const TTiering& GetTieringInfo() const {
-            return TieringInfo;
-        }
-    };
-private:
-    THashMap OriginalTierings;
-    std::map> NextCheckInstantForTierings;
-
-    std::map> BuildNextInstantCheckers(THashMap&& info) {
-        std::map> result;
-        std::vector newTasks;
-        for (auto&& i : info) {
-            newTasks.emplace_back(i.first, std::move(i.second));
-        }
-        result.emplace(TMonotonic::Zero(), std::move(newTasks));
-        return result;
-    }
-public:
-    std::map>& MutableNextCheckInstantForTierings() {
-        return NextCheckInstantForTierings;
-    }
+class TCompactColumnEngineChanges;
+class TTTLColumnEngineChanges;
+class TChangesWithAppend;
+class TCompactColumnEngineChanges;
+class TCleanupPortionsColumnEngineChanges;
+class TCleanupTablesColumnEngineChanges;
 
-    void RefreshTierings(std::optional>&& tierings, const NColumnShard::TTtl& ttl);
-};
+namespace NDataSharing {
+class TDestinationSession;
+}
 
+struct TReadMetadata;
 
 /// Engine with 2 tables:
 /// - Granules: PK -> granules (use part of PK)
@@ -77,27 +42,26 @@ class TColumnEngineForLogs : public IColumnEngine {
     friend class TTTLColumnEngineChanges;
     friend class TChangesWithAppend;
     friend class TCompactColumnEngineChanges;
-    friend class TCleanupColumnEngineChanges;
+    friend class TCleanupPortionsColumnEngineChanges;
+    friend class TCleanupTablesColumnEngineChanges;
+    friend class NDataSharing::TDestinationSession;
 private:
+    bool ActualizationStarted = false;
     const NColumnShard::TEngineLogsCounters SignalCounters;
     std::shared_ptr GranulesStorage;
     std::shared_ptr StoragesManager;
-    TEvictionsController EvictionsController;
-    class TTieringProcessContext {
-    public:
-        bool AllowEviction = true;
-        bool AllowDrop = true;
-        const TInstant Now;
-        const ui64 MaxEvictBytes;
-        std::shared_ptr Changes;
-        std::map DurationsForced;
-        const THashSet& BusyPortions;
-        TTieringProcessContext(const ui64 maxEvictBytes, std::shared_ptr changes, const THashSet& busyPortions);
-    };
 
-    TDuration ProcessTiering(const ui64 pathId, const TTiering& tiering, TTieringProcessContext& context) const;
-    bool DrainEvictionQueue(std::map>& evictionsQueue, TTieringProcessContext& context) const;
+    std::shared_ptr ActualizationController;
+
 public:
+    const std::shared_ptr& GetActualizationController() const {
+        return ActualizationController;
+    }
+
+    ui64* GetLastPortionPointer() {
+        return &LastPortion;
+    }
+
     enum ETableIdx {
         GRANULES = 0,
     };
@@ -115,9 +79,14 @@ class TColumnEngineForLogs : public IColumnEngine {
         ADD,
     };
 
-    TColumnEngineForLogs(ui64 tabletId, const TCompactionLimits& limits, const std::shared_ptr& storagesManager);
+    TColumnEngineForLogs(ui64 tabletId, const std::shared_ptr& storagesManager, const TSnapshot& snapshot, const NKikimrSchemeOp::TColumnTableSchema& schema);
+    TColumnEngineForLogs(ui64 tabletId, const std::shared_ptr& storagesManager, const TSnapshot& snapshot, TIndexInfo&& schema);
 
-    virtual void OnTieringModified(std::shared_ptr manager, const NColumnShard::TTtl& ttl) override;
+    virtual void OnTieringModified(const std::shared_ptr& manager, const NColumnShard::TTtl& ttl, const std::optional pathId) override;
+
+    virtual std::shared_ptr CopyVersionedIndexPtr() const override {
+        return std::make_shared(VersionedIndex);
+    }
 
     const TVersionedIndex& GetVersionedIndex() const override {
         return VersionedIndex;
@@ -125,33 +94,37 @@ class TColumnEngineForLogs : public IColumnEngine {
 
     const TMap>& GetStats() const override;
     const TColumnEngineStats& GetTotalStats() override;
-    ui64 MemoryUsage() const override;
     TSnapshot LastUpdate() const override { return LastSnapshot; }
 
     virtual void DoRegisterTable(const ui64 pathId) override;
 public:
     bool Load(IDbWrapper& db) override;
 
-    std::shared_ptr StartInsert(std::vector&& dataToIndex) noexcept override;
-    std::shared_ptr StartCompaction(const TCompactionLimits& limits, const THashSet& busyPortions) noexcept override;
-    std::shared_ptr StartCleanup(const TSnapshot& snapshot, THashSet& pathsToDrop, ui32 maxRecords) noexcept override;
-    std::shared_ptr StartTtl(const THashMap& pathEviction, const THashSet& busyPortions,
-                                                   ui64 maxEvictBytes = TCompactionLimits::DEFAULT_EVICTION_BYTES) noexcept override;
+    virtual bool IsOverloadedByMetadata(const ui64 limit) const override {
+        return limit < TGranulesStat::GetSumMetadataMemoryPortionsSize();
+    }
 
+    std::shared_ptr StartInsert(std::vector&& dataToIndex) noexcept override;
+    std::shared_ptr StartCompaction(const std::shared_ptr& dataLocksManager) noexcept override;
+    std::shared_ptr StartCleanupPortions(const TSnapshot& snapshot, const THashSet& pathsToDrop, const std::shared_ptr& dataLocksManager) noexcept override;
+    std::shared_ptr StartCleanupTables(THashSet& pathsToDrop) noexcept override;
+    std::vector> StartTtl(const THashMap& pathEviction,
+        const std::shared_ptr& locksManager, const ui64 memoryUsageLimit) noexcept override;
+
+    void ReturnToIndexes(const THashMap>& portions) const {
+        return GranulesStorage->ReturnToIndexes(portions);
+    }
     bool ApplyChanges(IDbWrapper& db, std::shared_ptr indexChanges,
                       const TSnapshot& snapshot) noexcept override;
 
     void RegisterSchemaVersion(const TSnapshot& snapshot, TIndexInfo&& info) override;
+    void RegisterSchemaVersion(const TSnapshot& snapshot, const NKikimrSchemeOp::TColumnTableSchema& schema) override;
 
     std::shared_ptr Select(ui64 pathId, TSnapshot snapshot,
                                         const TPKRangesFilter& pkRangesFilter) const override;
 
     bool IsPortionExists(const ui64 pathId, const ui64 portionId) const {
-        auto it = Tables.find(pathId);
-        if (it == Tables.end()) {
-            return false;
-        }
-        return !!it->second->GetPortionPtr(portionId);
+        return !!GranulesStorage->GetPortionOptional(pathId, portionId);
     }
 
     virtual bool HasDataInPathId(const ui64 pathId) const override {
@@ -164,9 +137,7 @@ class TColumnEngineForLogs : public IColumnEngine {
     }
 
     const TGranuleMeta& GetGranuleVerified(const ui64 pathId) const {
-        auto it = Tables.find(pathId);
-        AFL_VERIFY(it != Tables.end())("path_id", pathId)("count", Tables.size());
-        return *it->second;
+        return *GetGranulePtrVerified(pathId);
     }
 
     std::shared_ptr GetGranulePtrVerified(const ui64 pathId) const {
@@ -176,22 +147,11 @@ class TColumnEngineForLogs : public IColumnEngine {
     }
 
     std::shared_ptr GetGranuleOptional(const ui64 pathId) const {
-        auto it = Tables.find(pathId);
-        if (it == Tables.end()) {
-            return nullptr;
-        }
-        return it->second;
+        return GranulesStorage->GetGranuleOptional(pathId);
     }
 
-    std::vector> GetTables(const ui64 pathIdFrom, const ui64 pathIdTo) const {
-        std::vector> result;
-        for (auto&& i : Tables) {
-            if (i.first < pathIdFrom || i.first > pathIdTo) {
-                continue;
-            }
-            result.emplace_back(i.second);
-        }
-        return result;
+    std::vector> GetTables(const std::optional pathIdFrom, const std::optional pathIdTo) const {
+        return GranulesStorage->GetTables(pathIdFrom, pathIdTo);
     }
 
     ui64 GetTabletId() const {
@@ -201,9 +161,6 @@ class TColumnEngineForLogs : public IColumnEngine {
 private:
     TVersionedIndex VersionedIndex;
     ui64 TabletId;
-    std::shared_ptr ColumnsTable;
-    std::shared_ptr CountersTable;
-    THashMap> Tables; // pathId into Granule that equal to Table
     TMap> PathStats; // per path_id stats sorted by path_id
     std::map> CleanupPortions;
     TColumnEngineStats Counters;
diff --git a/ydb/core/tx/columnshard/engines/db_wrapper.cpp b/ydb/core/tx/columnshard/engines/db_wrapper.cpp
index 838a082af52d..4bfd6be1554b 100644
--- a/ydb/core/tx/columnshard/engines/db_wrapper.cpp
+++ b/ydb/core/tx/columnshard/engines/db_wrapper.cpp
@@ -48,11 +48,12 @@ void TDbWrapper::WriteColumn(const NOlap::TPortionInfo& portion, const TColumnRe
         *rowProto.MutablePortionMeta() = std::move(*proto);
     }
     using IndexColumns = NColumnShard::Schema::IndexColumns;
+    auto removeSnapshot = portion.GetRemoveSnapshotOptional();
     db.Table().Key(0, portion.GetDeprecatedGranuleId(), row.ColumnId,
-        portion.GetMinSnapshot().GetPlanStep(), portion.GetMinSnapshot().GetTxId(), portion.GetPortion(), row.Chunk).Update(
-            NIceDb::TUpdate(portion.GetRemoveSnapshot().GetPlanStep()),
-            NIceDb::TUpdate(portion.GetRemoveSnapshot().GetTxId()),
-            NIceDb::TUpdate(row.SerializedBlobId()),
+        portion.GetMinSnapshotDeprecated().GetPlanStep(), portion.GetMinSnapshotDeprecated().GetTxId(), portion.GetPortion(), row.Chunk).Update(
+            NIceDb::TUpdate(removeSnapshot ? removeSnapshot->GetPlanStep() : 0),
+            NIceDb::TUpdate(removeSnapshot ? removeSnapshot->GetTxId() : 0),
+            NIceDb::TUpdate(portion.GetBlobId(row.GetBlobRange().GetBlobIdxVerified()).SerializeBinary()),
             NIceDb::TUpdate(rowProto.SerializeAsString()),
             NIceDb::TUpdate(row.BlobRange.Offset),
             NIceDb::TUpdate(row.BlobRange.Size),
@@ -64,7 +65,7 @@ void TDbWrapper::EraseColumn(const NOlap::TPortionInfo& portion, const TColumnRe
     NIceDb::TNiceDb db(Database);
     using IndexColumns = NColumnShard::Schema::IndexColumns;
     db.Table().Key(0, portion.GetDeprecatedGranuleId(), row.ColumnId,
-        portion.GetMinSnapshot().GetPlanStep(), portion.GetMinSnapshot().GetTxId(), portion.GetPortion(), row.Chunk).Delete();
+        portion.GetMinSnapshotDeprecated().GetPlanStep(), portion.GetMinSnapshotDeprecated().GetTxId(), portion.GetPortion(), row.Chunk).Delete();
 }
 
 bool TDbWrapper::LoadColumns(const std::function& callback) {
@@ -78,7 +79,7 @@ bool TDbWrapper::LoadColumns(const std::function());
-        portion.SetMinSnapshot(rowset.GetValue(), rowset.GetValue());
+        portion.SetMinSnapshotDeprecated(NOlap::TSnapshot(rowset.GetValue(), rowset.GetValue()));
         portion.SetPortion(rowset.GetValue());
         portion.SetDeprecatedGranuleId(rowset.GetValue());
 
@@ -100,7 +101,7 @@ void TDbWrapper::WriteIndex(const TPortionInfo& portion, const TIndexChunk& row)
     using IndexIndexes = NColumnShard::Schema::IndexIndexes;
     NIceDb::TNiceDb db(Database);
     db.Table().Key(portion.GetPathId(), portion.GetPortionId(), row.GetIndexId(), row.GetChunkIdx()).Update(
-            NIceDb::TUpdate(row.GetBlobRange().BlobId.SerializeBinary()),
+            NIceDb::TUpdate(portion.GetBlobId(row.GetBlobRange().GetBlobIdxVerified()).SerializeBinary()),
             NIceDb::TUpdate(row.GetBlobRange().Offset),
             NIceDb::TUpdate(row.GetBlobRange().Size),
             NIceDb::TUpdate(row.GetRecordsCount()),
diff --git a/ydb/core/tx/columnshard/engines/db_wrapper.h b/ydb/core/tx/columnshard/engines/db_wrapper.h
index 743f43272b20..6e23ee5a67a0 100644
--- a/ydb/core/tx/columnshard/engines/db_wrapper.h
+++ b/ydb/core/tx/columnshard/engines/db_wrapper.h
@@ -1,5 +1,6 @@
 #pragma once
 #include "defs.h"
+#include 
 
 namespace NKikimr::NTable {
 class TDatabase;
@@ -11,7 +12,7 @@ class TColumnChunkLoadContext;
 class TIndexChunkLoadContext;
 struct TInsertedData;
 class TInsertTableAccessor;
-struct TColumnRecord;
+class TColumnRecord;
 class TIndexChunk;
 struct TGranuleRecord;
 class IColumnEngine;
diff --git a/ydb/core/tx/columnshard/engines/defs.h b/ydb/core/tx/columnshard/engines/defs.h
index 6c4e0371d7a4..a01edc7ef767 100644
--- a/ydb/core/tx/columnshard/engines/defs.h
+++ b/ydb/core/tx/columnshard/engines/defs.h
@@ -3,7 +3,6 @@
 #include 
 #include 
 #include 
-#include 
 
 namespace NKikimr::NOlap {
 
@@ -16,14 +15,6 @@ inline TWriteId operator++(TWriteId& w) noexcept {
     return w;
 }
 
-class IBlobGroupSelector {
-protected:
-    virtual ~IBlobGroupSelector() = default;
-
-public:
-    virtual ui32 GetGroup(const TLogoBlobID& blobId) const = 0;
-};
-
 } // namespace NKikimr::NOlap
 
 template <>
diff --git a/ydb/core/tx/columnshard/engines/filter.cpp b/ydb/core/tx/columnshard/engines/filter.cpp
index bcfa6c7f109f..67dfb8e5ae71 100644
--- a/ydb/core/tx/columnshard/engines/filter.cpp
+++ b/ydb/core/tx/columnshard/engines/filter.cpp
@@ -1,6 +1,6 @@
 #include "filter.h"
 #include "defs.h"
-#include "reader/read_metadata.h"
+#include "scheme/abstract/index_info.h"
 
 #include 
 #include 
@@ -82,8 +82,8 @@ class TTableSnapshotGetter {
 template 
 NArrow::TColumnFilter MakeSnapshotFilterImpl(const std::shared_ptr& batch, const TSnapshot& snapshot) {
     Y_ABORT_UNLESS(batch);
-    auto steps = batch->GetColumnByName(TIndexInfo::SPEC_COL_PLAN_STEP);
-    auto ids = batch->GetColumnByName(TIndexInfo::SPEC_COL_TX_ID);
+    auto steps = batch->GetColumnByName(IIndexInfo::SPEC_COL_PLAN_STEP);
+    auto ids = batch->GetColumnByName(IIndexInfo::SPEC_COL_TX_ID);
     NArrow::TColumnFilter result = NArrow::TColumnFilter::BuildAllowFilter();
     TGetter getter(steps, ids, snapshot);
     result.Reset(steps->length(), std::move(getter));
@@ -123,18 +123,4 @@ NArrow::TColumnFilter MakeSnapshotFilter(const std::shared_ptr(batch, snapshot);
 }
 
-NArrow::TColumnFilter FilterPortion(const std::shared_ptr& portion, const TReadMetadata& readMetadata, const bool useSnapshotFilter) {
-    Y_ABORT_UNLESS(portion);
-    NArrow::TColumnFilter result = readMetadata.GetPKRangesFilter().BuildFilter(portion);
-    if (readMetadata.GetSnapshot().GetPlanStep() && useSnapshotFilter) {
-        result = result.And(MakeSnapshotFilter(portion, readMetadata.GetSnapshot()));
-    }
-
-    return result;
-}
-
-NArrow::TColumnFilter FilterNotIndexed(const std::shared_ptr& batch, const TReadMetadata& readMetadata) {
-    return readMetadata.GetPKRangesFilter().BuildFilter(batch);
-}
-
 }
diff --git a/ydb/core/tx/columnshard/engines/filter.h b/ydb/core/tx/columnshard/engines/filter.h
index 160a55e01d3f..7670b0eab1d3 100644
--- a/ydb/core/tx/columnshard/engines/filter.h
+++ b/ydb/core/tx/columnshard/engines/filter.h
@@ -3,6 +3,7 @@
 #include "defs.h"
 #include 
 #include 
+#include 
 
 namespace NKikimr::NOlap {
 
@@ -10,7 +11,4 @@ NArrow::TColumnFilter MakeSnapshotFilter(const std::shared_ptr& batch, const TSnapshot& snapshot);
 
 struct TReadMetadata;
-NArrow::TColumnFilter FilterPortion(const std::shared_ptr& batch, const TReadMetadata& readMetadata, const bool useSnapshotFilter);
-NArrow::TColumnFilter FilterNotIndexed(const std::shared_ptr& batch, const TReadMetadata& readMetadata);
-
 } // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/insert_table/data.h b/ydb/core/tx/columnshard/engines/insert_table/data.h
index 60361d2e27fc..c6cea97be5a6 100644
--- a/ydb/core/tx/columnshard/engines/insert_table/data.h
+++ b/ydb/core/tx/columnshard/engines/insert_table/data.h
@@ -2,6 +2,7 @@
 #include "meta.h"
 #include 
 #include 
+#include 
 #include 
 
 namespace NKikimr::NOlap {
@@ -23,6 +24,7 @@ struct TInsertedData {
     };
 
     std::shared_ptr BlobDataGuard;
+
 public:
     ui64 PlanStep = 0;
     ui64 WriteTxId = 0;
@@ -40,6 +42,10 @@ struct TInsertedData {
         }
     }
 
+    ui64 GetTxVolume() const {
+        return Meta.GetTxVolume() + sizeof(TBlobRange);
+    }
+
     const TInsertedDataMeta& GetMeta() const {
         return Meta;
     }
@@ -126,7 +132,8 @@ class TCommittedBlob {
 private:
     TBlobRange BlobRange;
     TSnapshot CommitSnapshot;
-    YDB_READONLY_DEF(ui64, SchemaVersion);
+    YDB_READONLY(ui64, SchemaVersion, 0);
+    YDB_READONLY(ui64, RecordsCount, 0);
     YDB_READONLY_DEF(std::optional, First);
     YDB_READONLY_DEF(std::optional, Last);
 public:
@@ -144,15 +151,16 @@ class TCommittedBlob {
         return *Last;
     }
 
-    TCommittedBlob(const TBlobRange& blobRange, const TSnapshot& snapshot, const ui64 schemaVersion, const std::optional& first, const std::optional& last)
+    TCommittedBlob(const TBlobRange& blobRange, const TSnapshot& snapshot, const ui64 schemaVersion, const ui64 recordsCount, const std::optional& first, const std::optional& last)
         : BlobRange(blobRange)
         , CommitSnapshot(snapshot)
         , SchemaVersion(schemaVersion)
+        , RecordsCount(recordsCount)
         , First(first)
         , Last(last)
     {}
 
-    /// It uses trick then we place key wtih planStep:txId in container and find them later by BlobId only.
+    /// It uses trick then we place key with planStep:txId in container and find them later by BlobId only.
     /// So hash() and equality should depend on BlobId only.
     bool operator == (const TCommittedBlob& key) const { return BlobRange == key.BlobRange; }
     ui64 Hash() const noexcept { return BlobRange.Hash(); }
diff --git a/ydb/core/tx/columnshard/engines/insert_table/insert_table.cpp b/ydb/core/tx/columnshard/engines/insert_table/insert_table.cpp
index 02eaedbeb918..91af9a46140d 100644
--- a/ydb/core/tx/columnshard/engines/insert_table/insert_table.cpp
+++ b/ydb/core/tx/columnshard/engines/insert_table/insert_table.cpp
@@ -79,17 +79,29 @@ THashSet TInsertTable::DropPath(IDbWrapper& dbTable, ui64 pathId) {
     return Summary.GetInsertedByPathId(pathId);
 }
 
-void TInsertTable::EraseCommitted(IDbWrapper& dbTable, const TInsertedData& data, const std::shared_ptr& blobsAction) {
-    if (Summary.EraseCommitted(data)) {
-        RemoveBlobLink(data.GetBlobRange().BlobId, blobsAction);
+void TInsertTable::EraseCommittedOnExecute(IDbWrapper& dbTable, const TInsertedData& data, const std::shared_ptr& blobsAction) {
+    if (Summary.HasCommitted(data)) {
         dbTable.EraseCommitted(data);
+        RemoveBlobLinkOnExecute(data.GetBlobRange().BlobId, blobsAction);
     }
 }
 
-void TInsertTable::EraseAborted(IDbWrapper& dbTable, const TInsertedData& data, const std::shared_ptr& blobsAction) {
-    if (Summary.EraseAborted((TWriteId)data.WriteTxId)) {
-        RemoveBlobLink(data.GetBlobRange().BlobId, blobsAction);
+void TInsertTable::EraseCommittedOnComplete(const TInsertedData& data) {
+    if (Summary.EraseCommitted(data)) {
+        RemoveBlobLinkOnComplete(data.GetBlobRange().BlobId);
+    }
+}
+
+void TInsertTable::EraseAbortedOnExecute(IDbWrapper& dbTable, const TInsertedData& data, const std::shared_ptr& blobsAction) {
+    if (Summary.HasAborted((TWriteId)data.WriteTxId)) {
         dbTable.EraseAborted(data);
+        RemoveBlobLinkOnExecute(data.GetBlobRange().BlobId, blobsAction);
+    }
+}
+
+void TInsertTable::EraseAbortedOnComplete(const TInsertedData& data) {
+    if (Summary.EraseAborted((TWriteId)data.WriteTxId)) {
+        RemoveBlobLinkOnComplete(data.GetBlobRange().BlobId);
     }
 }
 
@@ -121,19 +133,30 @@ std::vector TInsertTable::Read(ui64 pathId, const TSnapshot& sna
     std::vector result;
     result.reserve(ret.size());
     for (auto&& i : ret) {
-        result.emplace_back(TCommittedBlob(i->GetBlobRange(), i->GetSnapshot(), i->GetSchemaVersion(), i->GetMeta().GetFirstPK(pkSchema), i->GetMeta().GetLastPK(pkSchema)));
+        result.emplace_back(TCommittedBlob(i->GetBlobRange(), i->GetSnapshot(), i->GetSchemaVersion(), i->GetMeta().GetNumRows(), i->GetMeta().GetFirstPK(pkSchema), i->GetMeta().GetLastPK(pkSchema)));
     }
 
     return result;
 }
 
-bool TInsertTableAccessor::RemoveBlobLink(const TUnifiedBlobId& blobId, const std::shared_ptr& blobsAction) {
+bool TInsertTableAccessor::RemoveBlobLinkOnExecute(const TUnifiedBlobId& blobId, const std::shared_ptr& blobsAction) {
     AFL_VERIFY(blobsAction);
     auto itBlob = BlobLinks.find(blobId);
     AFL_VERIFY(itBlob != BlobLinks.end());
     AFL_VERIFY(itBlob->second >= 1);
     if (itBlob->second == 1) {
-        blobsAction->DeclareRemove(itBlob->first);
+        blobsAction->DeclareSelfRemove(itBlob->first);
+        return true;
+    } else {
+        return false;
+    }
+}
+
+bool TInsertTableAccessor::RemoveBlobLinkOnComplete(const TUnifiedBlobId& blobId) {
+    auto itBlob = BlobLinks.find(blobId);
+    AFL_VERIFY(itBlob != BlobLinks.end());
+    AFL_VERIFY(itBlob->second >= 1);
+    if (itBlob->second == 1) {
         BlobLinks.erase(itBlob);
         return true;
     } else {
diff --git a/ydb/core/tx/columnshard/engines/insert_table/insert_table.h b/ydb/core/tx/columnshard/engines/insert_table/insert_table.h
index e7d523610fb2..373964818370 100644
--- a/ydb/core/tx/columnshard/engines/insert_table/insert_table.h
+++ b/ydb/core/tx/columnshard/engines/insert_table/insert_table.h
@@ -21,12 +21,24 @@ class TInsertTableAccessor {
         ++BlobLinks[blobId];
     }
 
-    bool RemoveBlobLink(const TUnifiedBlobId& blobId, const std::shared_ptr& blobsAction);
+    bool RemoveBlobLinkOnExecute(const TUnifiedBlobId& blobId, const std::shared_ptr& blobsAction);
+    bool RemoveBlobLinkOnComplete(const TUnifiedBlobId& blobId);
 public:
     const std::map>& GetPathPriorities() const {
         return Summary.GetPathPriorities();
     }
 
+    std::optional GetMinCommittedSnapshot(const ui64 pathId) const {
+        auto* info = Summary.GetPathInfoOptional(pathId);
+        if (!info) {
+            return {};
+        } else if (info->GetCommitted().empty()) {
+            return {};
+        } else {
+            return info->GetCommitted().begin()->GetSnapshot();
+        }
+    }
+
     bool AddInserted(TInsertedData&& data, const bool load) {
         if (load) {
             AddBlobLink(data.GetBlobRange().BlobId);
@@ -72,8 +84,13 @@ class TInsertTable: public TInsertTableAccessor {
     void Abort(IDbWrapper& dbTable, const THashSet& writeIds);
     THashSet OldWritesToAbort(const TInstant& now) const;
     THashSet DropPath(IDbWrapper& dbTable, ui64 pathId);
-    void EraseCommitted(IDbWrapper& dbTable, const TInsertedData& key, const std::shared_ptr& blobsAction);
-    void EraseAborted(IDbWrapper& dbTable, const TInsertedData& key, const std::shared_ptr& blobsAction);
+
+    void EraseCommittedOnExecute(IDbWrapper& dbTable, const TInsertedData& key, const std::shared_ptr& blobsAction);
+    void EraseCommittedOnComplete(const TInsertedData& key);
+
+    void EraseAbortedOnExecute(IDbWrapper& dbTable, const TInsertedData& key, const std::shared_ptr& blobsAction);
+    void EraseAbortedOnComplete(const TInsertedData& key);
+
     std::vector Read(ui64 pathId, const TSnapshot& snapshot, const std::shared_ptr& pkSchema) const;
     bool Load(IDbWrapper& dbTable, const TInstant loadTime);
 };
diff --git a/ydb/core/tx/columnshard/engines/insert_table/meta.h b/ydb/core/tx/columnshard/engines/insert_table/meta.h
index 40c7d59dd1c3..b513288eb787 100644
--- a/ydb/core/tx/columnshard/engines/insert_table/meta.h
+++ b/ydb/core/tx/columnshard/engines/insert_table/meta.h
@@ -20,6 +20,10 @@ class TInsertedDataMeta {
 
     const std::optional& GetSpecialKeys() const;
 public:
+    ui64 GetTxVolume() const {
+        return 2 * sizeof(ui64) + sizeof(ui32) + sizeof(OriginalProto) + (SpecialKeysParsed ? SpecialKeysParsed->GetMemoryBytes() : 0);
+    }
+
     TInsertedDataMeta(const NKikimrTxColumnShard::TLogicalMetadata& proto)
         : OriginalProto(proto)
     {
diff --git a/ydb/core/tx/columnshard/engines/insert_table/path_info.cpp b/ydb/core/tx/columnshard/engines/insert_table/path_info.cpp
index 4c46193e1537..31be2b8a8fa3 100644
--- a/ydb/core/tx/columnshard/engines/insert_table/path_info.cpp
+++ b/ydb/core/tx/columnshard/engines/insert_table/path_info.cpp
@@ -39,6 +39,10 @@ bool TPathInfo::EraseCommitted(const TInsertedData& data) {
     return result;
 }
 
+bool TPathInfo::HasCommitted(const TInsertedData& data) {
+    return Committed.contains(data);
+}
+
 bool TPathInfo::AddCommitted(TInsertedData&& data, const bool load) {
     const ui64 dataSize = data.BlobSize();
     Summary->RemovePriority(*this);
diff --git a/ydb/core/tx/columnshard/engines/insert_table/path_info.h b/ydb/core/tx/columnshard/engines/insert_table/path_info.h
index 242126faf3d2..5e44929307c4 100644
--- a/ydb/core/tx/columnshard/engines/insert_table/path_info.h
+++ b/ydb/core/tx/columnshard/engines/insert_table/path_info.h
@@ -62,6 +62,7 @@ class TPathInfo: public TMoveOnly {
     TPathInfoIndexPriority GetIndexationPriority() const;
 
     bool EraseCommitted(const TInsertedData& data);
+    bool HasCommitted(const TInsertedData& data);
 
     const TSet& GetCommitted() const {
         return Committed;
diff --git a/ydb/core/tx/columnshard/engines/insert_table/rt_insertion.cpp b/ydb/core/tx/columnshard/engines/insert_table/rt_insertion.cpp
index 84eae30941f5..4723ac8da5c6 100644
--- a/ydb/core/tx/columnshard/engines/insert_table/rt_insertion.cpp
+++ b/ydb/core/tx/columnshard/engines/insert_table/rt_insertion.cpp
@@ -140,6 +140,14 @@ bool TInsertionSummary::EraseAborted(const TWriteId writeId) {
     return true;
 }
 
+bool TInsertionSummary::HasAborted(const TWriteId writeId) {
+    auto it = Aborted.find(writeId);
+    if (it == Aborted.end()) {
+        return false;
+    }
+    return true;
+}
+
 bool TInsertionSummary::EraseCommitted(const TInsertedData& data) {
     TPathInfo* pathInfo = GetPathInfoOptional(data.PathId);
     if (!pathInfo) {
@@ -155,6 +163,14 @@ bool TInsertionSummary::EraseCommitted(const TInsertedData& data) {
     }
 }
 
+bool TInsertionSummary::HasCommitted(const TInsertedData& data) {
+    TPathInfo* pathInfo = GetPathInfoOptional(data.PathId);
+    if (!pathInfo) {
+        return false;
+    }
+    return pathInfo->HasCommitted(data);
+}
+
 const NKikimr::NOlap::TInsertedData* TInsertionSummary::AddAborted(TInsertedData&& data, const bool load /*= false*/) {
     const TWriteId writeId((TWriteId)data.WriteTxId);
     Counters.Aborted.Add(data.BlobSize(), load);
diff --git a/ydb/core/tx/columnshard/engines/insert_table/rt_insertion.h b/ydb/core/tx/columnshard/engines/insert_table/rt_insertion.h
index 3ae529fca4fc..291886bd81bd 100644
--- a/ydb/core/tx/columnshard/engines/insert_table/rt_insertion.h
+++ b/ydb/core/tx/columnshard/engines/insert_table/rt_insertion.h
@@ -47,8 +47,10 @@ class TInsertionSummary {
 
     const TInsertedData* AddAborted(TInsertedData&& data, const bool load = false);
     bool EraseAborted(const TWriteId writeId);
+    bool HasAborted(const TWriteId writeId);
 
     bool EraseCommitted(const TInsertedData& data);
+    bool HasCommitted(const TInsertedData& data);
 
     const TInsertedData* AddInserted(TInsertedData&& data, const bool load = false);
     std::optional ExtractInserted(const TWriteId id);
diff --git a/ydb/core/tx/columnshard/engines/portions/column_record.cpp b/ydb/core/tx/columnshard/engines/portions/column_record.cpp
index 1c5ed366f149..e4fbef70c5fc 100644
--- a/ydb/core/tx/columnshard/engines/portions/column_record.cpp
+++ b/ydb/core/tx/columnshard/engines/portions/column_record.cpp
@@ -1,62 +1,90 @@
 #include "column_record.h"
+
 #include 
+
+#include 
 #include 
 #include 
 #include 
 
 namespace NKikimr::NOlap {
 
-TChunkMeta::TChunkMeta(const TColumnChunkLoadContext& context, const TIndexInfo& indexInfo) {
-    auto field = indexInfo.ArrowColumnFieldOptional(context.GetAddress().GetColumnId());
-    if (context.GetMetaProto().HasNumRows()) {
-        NumRows = context.GetMetaProto().GetNumRows();
+TConclusionStatus TChunkMeta::DeserializeFromProto(const TChunkAddress& address, const NKikimrTxColumnShard::TIndexColumnMeta& proto, const TSimpleColumnInfo& columnInfo) {
+    auto field = columnInfo.GetArrowField();
+    if (proto.HasNumRows()) {
+        NumRows = proto.GetNumRows();
     }
-    if (context.GetMetaProto().HasRawBytes()) {
-        RawBytes = context.GetMetaProto().GetRawBytes();
+    if (proto.HasRawBytes()) {
+        RawBytes = proto.GetRawBytes();
     }
-    if (context.GetMetaProto().HasMinValue()) {
-        AFL_VERIFY(field)("field_id", context.GetAddress().GetColumnId())("field_name", indexInfo.GetColumnName(context.GetAddress().GetColumnId()));
-        Min = ConstantToScalar(context.GetMetaProto().GetMinValue(), field->type());
-    }
-    if (context.GetMetaProto().HasMaxValue()) {
-        AFL_VERIFY(field)("field_id", context.GetAddress().GetColumnId())("field_name", indexInfo.GetColumnName(context.GetAddress().GetColumnId()));
-        Max = ConstantToScalar(context.GetMetaProto().GetMaxValue(), field->type());
+    if (proto.HasMaxValue()) {
+        AFL_VERIFY(field)("field_id", address.GetColumnId())("field_name", columnInfo.GetColumnName());
+        Max = ConstantToScalar(proto.GetMaxValue(), field->type());
     }
+    return TConclusionStatus::Success();
 }
 
-TChunkMeta::TChunkMeta(const std::shared_ptr& column, const ui32 columnId, const TIndexInfo& indexInfo)
-    : TBase(column, indexInfo.GetMinMaxIdxColumns().contains(columnId), indexInfo.IsSortedColumn(columnId))
+TChunkMeta::TChunkMeta(const TColumnChunkLoadContext& context, const TSimpleColumnInfo& columnInfo) {
+    DeserializeFromProto(context.GetAddress(), context.GetMetaProto(), columnInfo).Validate();
+}
+
+TChunkMeta::TChunkMeta(const std::shared_ptr& column, const TSimpleColumnInfo& columnInfo)
+    : TBase(column, columnInfo.GetNeedMinMax(), columnInfo.GetIsSorted())
 {
 }
 
 NKikimrTxColumnShard::TIndexColumnMeta TChunkMeta::SerializeToProto() const {
     NKikimrTxColumnShard::TIndexColumnMeta meta;
-    if (NumRows) {
-        meta.SetNumRows(*NumRows);
-    }
-    if (RawBytes) {
-        meta.SetRawBytes(*RawBytes);
-    }
-    if (HasMinMax()) {
-        ScalarToConstant(*Min, *meta.MutableMinValue());
+    meta.SetNumRows(NumRows);
+    meta.SetRawBytes(RawBytes);
+    if (HasMax()) {
         ScalarToConstant(*Max, *meta.MutableMaxValue());
+        ScalarToConstant(*Max, *meta.MutableMinValue());
     }
     return meta;
 }
 
-TColumnRecord::TColumnRecord(const TColumnChunkLoadContext& loadContext, const TIndexInfo& info)
-    : Meta(loadContext, info)
+TColumnRecord::TColumnRecord(const TBlobRangeLink16::TLinkId blobLinkId, const TColumnChunkLoadContext& loadContext, const TSimpleColumnInfo& columnInfo)
+    : Meta(loadContext, columnInfo)
     , ColumnId(loadContext.GetAddress().GetColumnId())
     , Chunk(loadContext.GetAddress().GetChunk())
-    , BlobRange(loadContext.GetBlobRange())
+    , BlobRange(loadContext.GetBlobRange().BuildLink(blobLinkId))
 {
 }
 
-TColumnRecord::TColumnRecord(const TChunkAddress& address, const std::shared_ptr& column, const TIndexInfo& info)
-    : Meta(column, address.GetColumnId(), info)
+TColumnRecord::TColumnRecord(const TChunkAddress& address, const std::shared_ptr& column, const TSimpleColumnInfo& columnInfo)
+    : Meta(column, columnInfo)
     , ColumnId(address.GetColumnId())
     , Chunk(address.GetChunk())
 {
 }
 
+NKikimrColumnShardDataSharingProto::TColumnRecord TColumnRecord::SerializeToProto() const {
+    NKikimrColumnShardDataSharingProto::TColumnRecord result;
+    result.SetColumnId(ColumnId);
+    result.SetChunkIdx(Chunk);
+    *result.MutableMeta() = Meta.SerializeToProto();
+    *result.MutableBlobRange() = BlobRange.SerializeToProto();
+    return result;
+}
+
+NKikimr::TConclusionStatus TColumnRecord::DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TColumnRecord& proto, const TSimpleColumnInfo& columnInfo) {
+    ColumnId = proto.GetColumnId();
+    Chunk = proto.GetChunkIdx();
+    {
+        auto parse = Meta.DeserializeFromProto(GetAddress(), proto.GetMeta(), columnInfo);
+        if (!parse) {
+            return parse;
+        }
+    }
+    {
+        auto parsed = TBlobRangeLink16::BuildFromProto(proto.GetBlobRange());
+        if (!parsed) {
+            return parsed;
+        }
+        BlobRange = parsed.DetachResult();
+    }
+    return TConclusionStatus::Success();
+}
+
 }
diff --git a/ydb/core/tx/columnshard/engines/portions/column_record.h b/ydb/core/tx/columnshard/engines/portions/column_record.h
index 219e6f8b5316..9d958055cbf9 100644
--- a/ydb/core/tx/columnshard/engines/portions/column_record.h
+++ b/ydb/core/tx/columnshard/engines/portions/column_record.h
@@ -1,49 +1,38 @@
 #pragma once
 
 #include "common.h"
+
 #include 
+
 #include 
 #include 
 #include 
 #include 
+#include 
+
 #include 
-#include 
+
 #include 
 #include 
 #include 
 
+#include 
+
+namespace NKikimrColumnShardDataSharingProto {
+class TColumnRecord;
+}
+
 namespace NKikimr::NOlap {
 class TColumnChunkLoadContext;
 struct TIndexInfo;
-
-class TIndexChunk {
-private:
-    YDB_READONLY(ui32, IndexId, 0);
-    YDB_READONLY(ui32, ChunkIdx, 0);
-    YDB_READONLY(ui32, RecordsCount, 0);
-    YDB_READONLY(ui32, RawBytes, 0);
-    YDB_READONLY_DEF(TBlobRange, BlobRange);
-
-public:
-    TIndexChunk(const ui32 indexId, const ui32 chunkIdx, const ui32 recordsCount, const ui64 rawBytes, const TBlobRange& blobRange)
-        : IndexId(indexId)
-        , ChunkIdx(chunkIdx)
-        , RecordsCount(recordsCount)
-        , RawBytes(rawBytes)
-        , BlobRange(blobRange) {
-
-    }
-
-    void RegisterBlobId(const TUnifiedBlobId& blobId) {
-//        AFL_VERIFY(!BlobRange.BlobId.GetTabletId())("original", BlobRange.BlobId.ToStringNew())("new", blobId.ToStringNew());
-        BlobRange.BlobId = blobId;
-    }
-};
+class TColumnRecord;
 
 struct TChunkMeta: public TSimpleChunkMeta {
 private:
     using TBase = TSimpleChunkMeta;
     TChunkMeta() = default;
+    [[nodiscard]] TConclusionStatus DeserializeFromProto(const TChunkAddress& address, const NKikimrTxColumnShard::TIndexColumnMeta& proto, const TSimpleColumnInfo& columnInfo);
+    friend class TColumnRecord;
 public:
     TChunkMeta(TSimpleChunkMeta&& baseMeta)
         : TBase(baseMeta)
@@ -51,6 +40,15 @@ struct TChunkMeta: public TSimpleChunkMeta {
 
     }
 
+    [[nodiscard]] static TConclusion BuildFromProto(const TChunkAddress& address, const NKikimrTxColumnShard::TIndexColumnMeta& proto, const TSimpleColumnInfo& columnInfo) {
+        TChunkMeta result;
+        auto parse = result.DeserializeFromProto(address, proto, columnInfo);
+        if (!parse) {
+            return parse;
+        }
+        return result;
+    }
+
     NKikimrTxColumnShard::TIndexColumnMeta SerializeToProto() const;
 
     class TTestInstanceBuilder {
@@ -63,12 +61,12 @@ struct TChunkMeta: public TSimpleChunkMeta {
         }
     };
 
-    TChunkMeta(const TColumnChunkLoadContext& context, const TIndexInfo& indexInfo);
+    TChunkMeta(const TColumnChunkLoadContext& context, const TSimpleColumnInfo& columnInfo);
 
-    TChunkMeta(const std::shared_ptr& column, const ui32 columnId, const TIndexInfo& indexInfo);
+    TChunkMeta(const std::shared_ptr& column, const TSimpleColumnInfo& columnInfo);
 };
 
-struct TColumnRecord {
+class TColumnRecord {
 private:
     TChunkMeta Meta;
     TColumnRecord(TChunkMeta&& meta)
@@ -76,18 +74,28 @@ struct TColumnRecord {
     {
 
     }
+
+    TColumnRecord() = default;
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TColumnRecord& proto, const TSimpleColumnInfo& columnInfo);
 public:
     ui32 ColumnId = 0;
     ui16 Chunk = 0;
-    TBlobRange BlobRange;
+    TBlobRangeLink16 BlobRange;
 
+    ui32 GetEntityId() const {
+        return ColumnId;
+    }
 
-    void RegisterBlobId(const TUnifiedBlobId& blobId) {
+    void ResetBlobRange() {
+        BlobRange = TBlobRangeLink16();
+    }
+
+    void RegisterBlobIdx(const ui16 blobIdx) {
 //        AFL_VERIFY(!BlobRange.BlobId.GetTabletId())("original", BlobRange.BlobId.ToStringNew())("new", blobId.ToStringNew());
-        BlobRange.BlobId = blobId;
+        BlobRange.BlobIdx = blobIdx;
     }
 
-    TColumnRecord(const TChunkAddress& address, const TBlobRange& range, TChunkMeta&& meta)
+    TColumnRecord(const TChunkAddress& address, const TBlobRangeLink16& range, TChunkMeta&& meta)
         : Meta(std::move(meta))
         , ColumnId(address.GetColumnId())
         , Chunk(address.GetChunk())
@@ -114,6 +122,19 @@ struct TColumnRecord {
     ui16 GetChunkIdx() const {
         return Chunk;
     }
+    const TBlobRangeLink16& GetBlobRange() const {
+        return BlobRange;
+    }
+
+    NKikimrColumnShardDataSharingProto::TColumnRecord SerializeToProto() const;
+    static TConclusion BuildFromProto(const NKikimrColumnShardDataSharingProto::TColumnRecord& proto, const TSimpleColumnInfo& columnInfo) {
+        TColumnRecord result;
+        auto parse = result.DeserializeFromProto(proto, columnInfo);
+        if (!parse) {
+            return parse;
+        }
+        return result;
+    }
 
     TColumnSerializationStat GetSerializationStat(const std::string& columnName) const {
         TColumnSerializationStat result(ColumnId, columnName);
@@ -122,7 +143,7 @@ struct TColumnRecord {
     }
 
     TSimpleSerializationStat GetSerializationStat() const {
-        return TSimpleSerializationStat(BlobRange.Size, Meta.GetNumRowsVerified(), Meta.GetRawBytesVerified());
+        return TSimpleSerializationStat(BlobRange.Size, Meta.GetNumRows(), Meta.GetRawBytes());
     }
 
     const TChunkMeta& GetMeta() const {
@@ -138,11 +159,7 @@ struct TColumnRecord {
     }
 
     bool Valid() const {
-        return ColumnId && ValidBlob();
-    }
-
-    TString SerializedBlobId() const {
-        return BlobRange.BlobId.SerializeBinary();
+        return ColumnId && BlobRange.IsValid();
     }
 
     TString DebugString() const {
@@ -152,13 +169,9 @@ struct TColumnRecord {
             ;
     }
 
-    bool ValidBlob() const {
-        return BlobRange.BlobId.IsValid() && BlobRange.Size;
-    }
-
-    TColumnRecord(const TChunkAddress& address, const std::shared_ptr& column, const TIndexInfo& info);
+    TColumnRecord(const TChunkAddress& address, const std::shared_ptr& column, const TSimpleColumnInfo& columnInfo);
 
-    TColumnRecord(const TColumnChunkLoadContext& loadContext, const TIndexInfo& info);
+    TColumnRecord(const TBlobRangeLink16::TLinkId blobLinkId, const TColumnChunkLoadContext& loadContext, const TSimpleColumnInfo& columnInfo);
 
     friend IOutputStream& operator << (IOutputStream& out, const TColumnRecord& rec) {
         out << '{';
@@ -179,14 +192,21 @@ class TSimpleOrderedColumnChunk: public IPortionColumnChunk {
     YDB_READONLY_DEF(TString, Data);
 protected:
     virtual TString DoDebugString() const override {
-        return TStringBuilder() << "column_id=" << GetColumnId() << ";chunk=" << GetChunkIdx() << ";data_size=" << Data.size() << ";";
+        TStringBuilder sb;
+        sb << "column_id=" << GetColumnId() << ";data_size=" << Data.size() << ";";
+        if (GetChunkIdxOptional()) {
+            sb << "chunk=" << GetChunkIdxVerified() << ";";
+        } else {
+            sb << "chunk=NO_INITIALIZED;";
+        }
+        return sb;
     }
 
     virtual const TString& DoGetData() const override {
         return Data;
     }
     virtual ui32 DoGetRecordsCountImpl() const override {
-        return ColumnRecord.GetMeta().GetNumRowsVerified();
+        return ColumnRecord.GetMeta().GetNumRows();
     }
     virtual std::vector> DoInternalSplitImpl(const TColumnSaver& /*saver*/, const std::shared_ptr& /*counters*/,
                                                                                 const std::vector& /*splitSizes*/) const override {
diff --git a/ydb/core/tx/columnshard/engines/portions/common.h b/ydb/core/tx/columnshard/engines/portions/common.h
index 311563918469..1231a1e9f5f3 100644
--- a/ydb/core/tx/columnshard/engines/portions/common.h
+++ b/ydb/core/tx/columnshard/engines/portions/common.h
@@ -33,5 +33,11 @@ class TChunkAddress {
     TString DebugString() const;
 };
 
-
 }
+
+template<>
+struct ::THash {
+    inline ui64 operator()(const NKikimr::NOlap::TChunkAddress& a) const {
+        return ((ui64)a.GetEntityId()) << 16 + a.GetChunkIdx();
+    }
+};
diff --git a/ydb/core/tx/columnshard/engines/portions/index_chunk.cpp b/ydb/core/tx/columnshard/engines/portions/index_chunk.cpp
new file mode 100644
index 000000000000..4aeaa20dd20e
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/portions/index_chunk.cpp
@@ -0,0 +1,39 @@
+#include "index_chunk.h"
+#include 
+
+namespace NKikimr::NOlap {
+
+NKikimr::TConclusionStatus TIndexChunk::DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TIndexChunk& proto) {
+    IndexId = proto.GetIndexId();
+    ChunkIdx = proto.GetChunkIdx();
+    {
+        if (!proto.HasMeta()) {
+            return TConclusionStatus::Fail("no meta information");
+        }
+        RecordsCount = proto.GetMeta().GetRecordsCount();
+        RawBytes = proto.GetMeta().GetRawBytes();
+    }
+    {
+        auto parsed = TBlobRangeLink16::BuildFromProto(proto.GetBlobRange());
+        if (!parsed) {
+            return parsed;
+        }
+        BlobRange = parsed.DetachResult();
+    }
+    return TConclusionStatus::Success();
+}
+
+NKikimrColumnShardDataSharingProto::TIndexChunk TIndexChunk::SerializeToProto() const {
+    NKikimrColumnShardDataSharingProto::TIndexChunk result;
+    result.SetIndexId(IndexId);
+    result.SetChunkIdx(ChunkIdx);
+    {
+        auto* meta = result.MutableMeta();
+        meta->SetRecordsCount(RecordsCount);
+        meta->SetRawBytes(RawBytes);
+    }
+    *result.MutableBlobRange() = BlobRange.SerializeToProto();
+    return result;
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/portions/index_chunk.h b/ydb/core/tx/columnshard/engines/portions/index_chunk.h
new file mode 100644
index 000000000000..6a71704318ca
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/portions/index_chunk.h
@@ -0,0 +1,73 @@
+#pragma once
+
+#include "common.h"
+
+#include 
+
+#include 
+#include 
+#include 
+#include 
+
+#include 
+
+#include 
+#include 
+#include 
+
+#include 
+
+namespace NKikimrColumnShardDataSharingProto {
+class TIndexChunk;
+}
+
+namespace NKikimr::NOlap {
+struct TIndexInfo;
+
+class TIndexChunk {
+private:
+    YDB_READONLY(ui32, IndexId, 0);
+    YDB_READONLY(ui32, ChunkIdx, 0);
+    YDB_READONLY(ui32, RecordsCount, 0);
+    YDB_READONLY(ui32, RawBytes, 0);
+    YDB_READONLY_DEF(TBlobRangeLink16, BlobRange);
+
+    TIndexChunk() = default;
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TIndexChunk& proto);
+public:
+    TChunkAddress GetAddress() const {
+        return TChunkAddress(IndexId, ChunkIdx);
+    }
+
+    ui32 GetEntityId() const {
+        return IndexId;
+    }
+
+    TIndexChunk(const ui32 indexId, const ui32 chunkIdx, const ui32 recordsCount, const ui64 rawBytes, const TBlobRangeLink16& blobRange)
+        : IndexId(indexId)
+        , ChunkIdx(chunkIdx)
+        , RecordsCount(recordsCount)
+        , RawBytes(rawBytes)
+        , BlobRange(blobRange) {
+
+    }
+
+    void RegisterBlobIdx(const TBlobRangeLink16::TLinkId blobLinkId) {
+//        AFL_VERIFY(!BlobRange.BlobId.GetTabletId())("original", BlobRange.BlobId.ToStringNew())("new", blobId.ToStringNew());
+        BlobRange.BlobIdx = blobLinkId;
+    }
+
+    static TConclusion BuildFromProto(const NKikimrColumnShardDataSharingProto::TIndexChunk& proto) {
+        TIndexChunk result;
+        auto parse = result.DeserializeFromProto(proto);
+        if (!parse) {
+            return parse;
+        }
+        return result;
+    }
+
+    NKikimrColumnShardDataSharingProto::TIndexChunk SerializeToProto() const;
+
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/portions/meta.cpp b/ydb/core/tx/columnshard/engines/portions/meta.cpp
index 9f6a2c30823b..282211dd5cda 100644
--- a/ydb/core/tx/columnshard/engines/portions/meta.cpp
+++ b/ydb/core/tx/columnshard/engines/portions/meta.cpp
@@ -35,6 +35,15 @@ bool TPortionMeta::DeserializeFromProto(const NKikimrTxColumnShard::TIndexPortio
         AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "DeserializeFromProto")("error", "parsing duplication");
         return true;
     }
+    FirstPkColumn = indexInfo.GetPKFirstColumnId();
+    {
+        auto parsed = NStatistics::TPortionStorage::BuildFromProto(portionMeta.GetStatisticsStorage());
+        if (!parsed) {
+            AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "DeserializeFromProto")("error", parsed.GetErrorMessage());
+            return false;
+        }
+        StatisticsStorage = parsed.DetachResult();
+    }
     TierName = portionMeta.GetTierName();
     if (portionMeta.GetIsInserted()) {
         Produced = TPortionMeta::EProduced::INSERTED;
@@ -68,14 +77,10 @@ bool TPortionMeta::DeserializeFromProto(const NKikimrTxColumnShard::TIndexPortio
     return true;
 }
 
-std::optional TPortionMeta::SerializeToProto(const ui32 columnId, const ui32 chunk) const {
-    if (columnId != FirstPkColumn || chunk != 0) {
-        return {};
-    }
-
+NKikimrTxColumnShard::TIndexPortionMeta TPortionMeta::SerializeToProto() const {
     NKikimrTxColumnShard::TIndexPortionMeta portionMeta;
     portionMeta.SetTierName(TierName);
-
+    *portionMeta.MutableStatisticsStorage() = StatisticsStorage.SerializeToProto();
     switch (Produced) {
         case TPortionMeta::EProduced::UNSPECIFIED:
             Y_ABORT_UNLESS(false);
@@ -112,6 +117,14 @@ std::optional TPortionMeta::SerializeTo
     return portionMeta;
 }
 
+std::optional TPortionMeta::SerializeToProto(const ui32 columnId, const ui32 chunk) const {
+    if (!IsChunkWithPortionInfo(columnId, chunk)) {
+        return {};
+    }
+
+    return SerializeToProto();
+}
+
 TString TPortionMeta::DebugString() const {
     TStringBuilder sb;
     sb << "(produced=" << Produced << ";";
diff --git a/ydb/core/tx/columnshard/engines/portions/meta.h b/ydb/core/tx/columnshard/engines/portions/meta.h
index 7acafc89a772..8a715bca23d9 100644
--- a/ydb/core/tx/columnshard/engines/portions/meta.h
+++ b/ydb/core/tx/columnshard/engines/portions/meta.h
@@ -1,6 +1,7 @@
 #pragma once
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -15,6 +16,7 @@ struct TPortionMeta {
 private:
     std::shared_ptr ReplaceKeyEdges; // first and last PK rows
     YDB_ACCESSOR_DEF(TString, TierName);
+    YDB_READONLY_DEF(NStatistics::TPortionStorage, StatisticsStorage);
 public:
     using EProduced = NPortion::EProduced;
 
@@ -26,9 +28,27 @@ struct TPortionMeta {
     EProduced Produced{EProduced::UNSPECIFIED};
     ui32 FirstPkColumn = 0;
 
+    ui64 GetMetadataMemorySize() const {
+        return sizeof(TPortionMeta) + ReplaceKeyEdges->GetMemorySize();
+    }
+
+    void SetStatisticsStorage(NStatistics::TPortionStorage&& storage) {
+        AFL_VERIFY(StatisticsStorage.IsEmpty());
+        StatisticsStorage = std::move(storage);
+    }
+
+    void ResetStatisticsStorage(NStatistics::TPortionStorage&& storage) {
+        StatisticsStorage = std::move(storage);
+    }
+
+    bool IsChunkWithPortionInfo(const ui32 columnId, const ui32 chunkIdx) const {
+        return columnId == FirstPkColumn && chunkIdx == 0;
+    }
+
     bool DeserializeFromProto(const NKikimrTxColumnShard::TIndexPortionMeta& portionMeta, const TIndexInfo& indexInfo);
 
     std::optional SerializeToProto(const ui32 columnId, const ui32 chunk) const;
+    NKikimrTxColumnShard::TIndexPortionMeta SerializeToProto() const;
 
     void FillBatchInfo(const NArrow::TFirstLastSpecialKeys& primaryKeys, const NArrow::TMinMaxSpecialKeys& snapshotKeys, const TIndexInfo& indexInfo);
 
diff --git a/ydb/core/tx/columnshard/engines/portions/portion_info.cpp b/ydb/core/tx/columnshard/engines/portions/portion_info.cpp
index 3deb26a0a730..c67ea7f67ec7 100644
--- a/ydb/core/tx/columnshard/engines/portions/portion_info.cpp
+++ b/ydb/core/tx/columnshard/engines/portions/portion_info.cpp
@@ -1,11 +1,17 @@
 #include "portion_info.h"
-#include 
+#include 
+#include 
+#include 
 #include 
+#include 
+#include 
+#include 
 #include 
-#include 
 #include 
 #include 
 
+#include 
+
 namespace NKikimr::NOlap {
 
 const TColumnRecord& TPortionInfo::AppendOneChunkColumn(TColumnRecord&& record) {
@@ -43,21 +49,6 @@ void TPortionInfo::AddMetadata(const ISnapshotSchema& snapshotSchema, const NArr
     Meta.SetTierName(tierName);
 }
 
-std::shared_ptr TPortionInfo::MinValue(ui32 columnId) const {
-    std::shared_ptr result;
-    for (auto&& i : Records) {
-        if (i.ColumnId == columnId) {
-            if (!i.GetMeta().GetMin()) {
-                return nullptr;
-            }
-            if (!result || NArrow::ScalarCompare(result, i.GetMeta().GetMin()) > 0) {
-                result = i.GetMeta().GetMin();
-            }
-        }
-    }
-    return result;
-}
-
 std::shared_ptr TPortionInfo::MaxValue(ui32 columnId) const {
     std::shared_ptr result;
     for (auto&& i : Records) {
@@ -73,76 +64,47 @@ std::shared_ptr TPortionInfo::MaxValue(ui32 columnId) const {
     return result;
 }
 
-TPortionInfo TPortionInfo::CopyWithFilteredColumns(const THashSet& columnIds) const {
-    TPortionInfo result(PathId, Portion, GetMinSnapshot(), BlobsOperator);
-    result.Meta = Meta;
-    result.Records.reserve(columnIds.size());
-
-    for (auto& rec : Records) {
-        Y_ABORT_UNLESS(rec.Valid());
-        if (columnIds.contains(rec.ColumnId)) {
-            result.Records.push_back(rec);
-        }
-    }
-    return result;
-}
-
-ui64 TPortionInfo::GetRawBytes(const std::vector& columnIds) const {
-    ui64 sum = 0;
-    const ui32 numRows = NumRows();
-    for (auto&& i : columnIds) {
-        if (TIndexInfo::IsSpecialColumn(i)) {
-            sum += numRows * TIndexInfo::GetSpecialColumnByteWidth(i);
-        } else {
-            for (auto&& r : Records) {
-                if (r.ColumnId == i) {
-                    sum += r.GetMeta().GetRawBytesVerified();
-                }
-            }
-        }
-    }
-    return sum;
+ui64 TPortionInfo::GetColumnRawBytes(const std::vector& columnIds, const bool validation) const {
+    return GetColumnRawBytes(std::set(columnIds.begin(), columnIds.end()), validation);
 }
 
-ui64 TPortionInfo::GetRawBytes(const std::set& entityIds) const {
+ui64 TPortionInfo::GetColumnRawBytes(const std::optional>& entityIds, const bool validation) const {
     ui64 sum = 0;
-    const ui32 numRows = NumRows();
-    for (auto&& i : TIndexInfo::GetSpecialColumnIds()) {
-        if (entityIds.contains(i)) {
-            sum += numRows * TIndexInfo::GetSpecialColumnByteWidth(i);
-        }
-    }
-    for (auto&& r : Records) {
-        if (entityIds.contains(r.ColumnId)) {
-            sum += r.GetMeta().GetRawBytesVerified();
-        }
-    }
+    const auto aggr = [&](const TColumnRecord& r) {
+        sum += r.GetMeta().GetRawBytes();
+    };
+    AggregateIndexChunksData(aggr, Records, entityIds, validation);
     return sum;
 }
 
-ui64 TPortionInfo::GetIndexBytes(const std::set& entityIds) const {
+ui64 TPortionInfo::GetColumnBlobBytes(const std::optional>& entityIds, const bool validation) const {
     ui64 sum = 0;
-    for (auto&& r : Indexes) {
-        if (entityIds.contains(r.GetIndexId())) {
-            sum += r.GetBlobRange().Size;
-        }
-    }
+    const auto aggr = [&](const TColumnRecord& r) {
+        sum += r.GetBlobRange().GetSize();
+    };
+    AggregateIndexChunksData(aggr, Records, entityIds, validation);
     return sum;
 }
 
-int TPortionInfo::CompareSelfMaxItemMinByPk(const TPortionInfo& item, const TIndexInfo& info) const {
-    return CompareByColumnIdsImpl(item, info.KeyColumns);
+ui64 TPortionInfo::GetColumnBlobBytes(const std::vector& columnIds, const bool validation) const {
+    return GetColumnBlobBytes(std::set(columnIds.begin(), columnIds.end()), validation);
 }
 
-int TPortionInfo::CompareMinByPk(const TPortionInfo& item, const TIndexInfo& info) const {
-    return CompareMinByColumnIds(item, info.KeyColumns);
+ui64 TPortionInfo::GetIndexRawBytes(const std::optional>& entityIds, const bool validation) const {
+    ui64 sum = 0;
+    const auto aggr = [&](const TIndexChunk& r) {
+        sum += r.GetRawBytes();
+    };
+    AggregateIndexChunksData(aggr, Indexes, entityIds, validation);
+    return sum;
 }
 
 TString TPortionInfo::DebugString(const bool withDetails) const {
     TStringBuilder sb;
     sb << "(portion_id:" << Portion << ";" <<
         "path_id:" << PathId << ";records_count:" << NumRows() << ";"
-        "min_schema_snapshot:(" << MinSnapshot.DebugString() << ");";
+        "min_schema_snapshot:(" << MinSnapshotDeprecated.DebugString() << ");"
+        "schema_version:" << SchemaVersion.value_or(0) << ";";
     if (withDetails) {
         sb <<
             "records_snapshot_min:(" << RecordSnapshotMin().DebugString() << ");" <<
@@ -151,21 +113,20 @@ TString TPortionInfo::DebugString(const bool withDetails) const {
             "to:" << IndexKeyEnd().DebugString() << ";";
     }
     sb <<
-        "size:" << BlobsBytes() << ";" <<
+        "column_size:" << GetColumnBlobBytes() << ";" <<
+        "index_size:" << GetIndexBlobBytes() << ";" <<
         "meta:(" << Meta.DebugString() << ");";
     if (RemoveSnapshot.Valid()) {
         sb << "remove_snapshot:(" << RemoveSnapshot.DebugString() << ");";
     }
-    if (BlobsOperator) {
-        sb << "blobs_operator:" << BlobsOperator->DebugString() << ";";
-    }
     sb << "chunks:(" << Records.size() << ");";
     if (IS_TRACE_LOG_ENABLED(NKikimrServices::TX_COLUMNSHARD)) {
-        std::set blobIds;
+        std::vector blobRanges;
         for (auto&& i : Records) {
-            blobIds.emplace(::ToString(i.BlobRange.BlobId));
+            blobRanges.emplace_back(i.BlobRange);
         }
-        sb << "blobs:" << JoinSeq(",", blobIds) << ";blobs_count:" << blobIds.size() << ";";
+        sb << "blobs:" << JoinSeq(",", blobRanges) << ";ranges_count:" << blobRanges.size() << ";";
+        sb << "blob_ids:" << JoinSeq(",", BlobIds) << ";blobs_count:" << BlobIds.size() << ";";
     }
     return sb << ")";
 }
@@ -179,41 +140,20 @@ void TPortionInfo::AddRecord(const TIndexInfo& indexInfo, const TColumnRecord& r
     }
 }
 
-bool TPortionInfo::HasPkMinMax() const {
-    bool result = false;
-    for (auto&& i : Records) {
-        if (i.ColumnId == Meta.FirstPkColumn) {
-            if (!i.GetMeta().HasMinMax()) {
-                return false;
-            }
-            result = true;
-        }
-    }
-    return result;
-}
-
 std::vector TPortionInfo::GetColumnChunksPointers(const ui32 columnId) const {
     std::vector result;
     for (auto&& c : Records) {
         if (c.ColumnId == columnId) {
             Y_ABORT_UNLESS(c.Chunk == result.size());
-            Y_ABORT_UNLESS(c.GetMeta().GetNumRowsVerified());
+            Y_ABORT_UNLESS(c.GetMeta().GetNumRows());
             result.emplace_back(&c);
         }
     }
     return result;
 }
 
-size_t TPortionInfo::NumBlobs() const {
-    THashSet blobIds;
-    for (auto&& i : Records) {
-        blobIds.emplace(i.BlobRange.BlobId);
-    }
-    return blobIds.size();
-}
-
 bool TPortionInfo::IsEqualWithSnapshots(const TPortionInfo& item) const {
-    return PathId == item.PathId && MinSnapshot == item.MinSnapshot
+    return PathId == item.PathId && MinSnapshotDeprecated == item.MinSnapshotDeprecated
         && Portion == item.Portion && RemoveSnapshot == item.RemoveSnapshot;
 }
 
@@ -227,6 +167,7 @@ void TPortionInfo::RemoveFromDatabase(IDbWrapper& db) const {
 }
 
 void TPortionInfo::SaveToDatabase(IDbWrapper& db) const {
+    FullValidation();
     for (auto& record : Records) {
         db.WriteColumn(*this, record);
     }
@@ -262,9 +203,9 @@ std::vector TPortionInfo::BuildPages() cons
             currentSize = 0;
             currentId = i.GetColumnId();
         }
-        currentSize += i.GetMeta().GetNumRowsVerified();
+        currentSize += i.GetMeta().GetNumRows();
         ++currentCursor[currentSize];
-        entities[i.GetColumnId()].emplace_back(&i, i.GetMeta().GetNumRowsVerified());
+        entities[i.GetColumnId()].emplace_back(&i, i.GetMeta().GetNumRows());
     }
     for (auto&& i : Indexes) {
         if (currentId != i.GetIndexId()) {
@@ -306,6 +247,489 @@ std::vector TPortionInfo::BuildPages() cons
     return pages;
 }
 
+ui64 TPortionInfo::GetMetadataMemorySize() const {
+    return sizeof(TPortionInfo) + Records.size() * (sizeof(TColumnRecord) + 8) + Indexes.size() * sizeof(TIndexChunk) + BlobIds.size() * sizeof(TUnifiedBlobId)
+        - sizeof(TPortionMeta) + Meta.GetMetadataMemorySize();
+}
+
+ui64 TPortionInfo::GetTxVolume() const {
+    return 1024 + Records.size() * 256 + Indexes.size() * 256;
+}
+
+void TPortionInfo::SerializeToProto(NKikimrColumnShardDataSharingProto::TPortionInfo& proto) const {
+    proto.SetPathId(PathId);
+    proto.SetPortionId(Portion);
+    proto.SetSchemaVersion(GetSchemaVersionVerified());
+    *proto.MutableMinSnapshotDeprecated() = MinSnapshotDeprecated.SerializeToProto();
+    if (!RemoveSnapshot.IsZero()) {
+        *proto.MutableRemoveSnapshot() = RemoveSnapshot.SerializeToProto();
+    }
+    for (auto&& i : BlobIds) {
+        *proto.AddBlobIds() = i.SerializeToProto();
+    }
+
+    *proto.MutableMeta() = Meta.SerializeToProto();
+
+    for (auto&& r : Records) {
+        *proto.AddRecords() = r.SerializeToProto();
+    }
+
+    for (auto&& r : Indexes) {
+        *proto.AddIndexes() = r.SerializeToProto();
+    }
+}
+
+TConclusionStatus TPortionInfo::DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TPortionInfo& proto, const TIndexInfo& info) {
+    PathId = proto.GetPathId();
+    Portion = proto.GetPortionId();
+    SchemaVersion = proto.GetSchemaVersion();
+    for (auto&& i : proto.GetBlobIds()) {
+        auto blobId = TUnifiedBlobId::BuildFromProto(i);
+        if (!blobId) {
+            return blobId;
+        }
+        BlobIds.emplace_back(blobId.DetachResult());
+    }
+    {
+        auto parse = MinSnapshotDeprecated.DeserializeFromProto(proto.GetMinSnapshotDeprecated());
+        if (!parse) {
+            return parse;
+        }
+    }
+    if (proto.HasRemoveSnapshot()) {
+        auto parse = RemoveSnapshot.DeserializeFromProto(proto.GetRemoveSnapshot());
+        if (!parse) {
+            return parse;
+        }
+    }
+    if (!Meta.DeserializeFromProto(proto.GetMeta(), info)) {
+        return TConclusionStatus::Fail("cannot parse meta");
+    }
+    for (auto&& i : proto.GetRecords()) {
+        auto parse = TColumnRecord::BuildFromProto(i, info.GetColumnFeaturesVerified(i.GetColumnId()));
+        if (!parse) {
+            return parse;
+        }
+        Records.emplace_back(std::move(parse.DetachResult()));
+    }
+    for (auto&& i : proto.GetIndexes()) {
+        auto parse = TIndexChunk::BuildFromProto(i);
+        if (!parse) {
+            return parse;
+        }
+        Indexes.emplace_back(std::move(parse.DetachResult()));
+    }
+    return TConclusionStatus::Success();
+}
+
+TConclusion TPortionInfo::BuildFromProto(const NKikimrColumnShardDataSharingProto::TPortionInfo& proto, const TIndexInfo& info) {
+    TPortionInfo result;
+    auto parse = result.DeserializeFromProto(proto, info);
+    if (!parse) {
+        return parse;
+    }
+    return result;
+}
+
+THashMap TPortionInfo::DecodeBlobAddresses(NBlobOperations::NRead::TCompositeReadBlobs&& blobs, const TIndexInfo& indexInfo) const {
+    THashMap result;
+    for (auto&& i : blobs) {
+        for (auto&& b : i.second) {
+            bool found = false;
+            TString columnStorageId;
+            ui32 columnId = 0;
+            for (auto&& record : Records) {
+                if (RestoreBlobRange(record.GetBlobRange()) == b.first) {
+                    if (columnId != record.GetColumnId()) {
+                        columnStorageId = GetColumnStorageId(record.GetColumnId(), indexInfo);
+                    }
+                    if (columnStorageId != i.first) {
+                        continue;
+                    }
+                    result.emplace(record.GetAddress(), std::move(b.second));
+                    found = true;
+                    break;
+                }
+            }
+            if (found) {
+                continue;
+            }
+            for (auto&& record : Indexes) {
+                if (RestoreBlobRange(record.GetBlobRange()) == b.first) {
+                    if (columnId != record.GetIndexId()) {
+                        columnStorageId = indexInfo.GetIndexStorageId(record.GetIndexId());
+                    }
+                    if (columnStorageId != i.first) {
+                        continue;
+                    }
+                    result.emplace(record.GetAddress(), std::move(b.second));
+                    found = true;
+                    break;
+                }
+            }
+            AFL_VERIFY(found)("blobs", blobs.DebugString())("records", DebugString(true))("problem", b.first);
+        }
+    }
+    return result;
+}
+
+const TString& TPortionInfo::GetColumnStorageId(const ui32 columnId, const TIndexInfo& indexInfo) const {
+    return indexInfo.GetColumnStorageId(columnId, GetMeta().GetTierName());
+}
+
+const TString& TPortionInfo::GetEntityStorageId(const ui32 columnId, const TIndexInfo& indexInfo) const {
+    return indexInfo.GetEntityStorageId(columnId, GetMeta().GetTierName());
+}
+
+ISnapshotSchema::TPtr TPortionInfo::GetSchema(const TVersionedIndex& index) const {
+    if (SchemaVersion) {
+        auto schema = index.GetSchema(SchemaVersion.value());
+        AFL_VERIFY(!!schema)("details", TStringBuilder() << "cannot find schema for version " << SchemaVersion.value());
+        return schema;
+    }
+    return index.GetSchema(MinSnapshotDeprecated);
+}
+
+void TPortionInfo::FillBlobRangesByStorage(THashMap>& result, const TIndexInfo& indexInfo) const {
+    for (auto&& i : Records) {
+        const TString& storageId = GetColumnStorageId(i.GetColumnId(), indexInfo);
+        AFL_VERIFY(result[storageId].emplace(RestoreBlobRange(i.GetBlobRange())).second)("blob_id", RestoreBlobRange(i.GetBlobRange()).ToString());
+    }
+    for (auto&& i : Indexes) {
+        const TString& storageId = indexInfo.GetIndexStorageId(i.GetIndexId());
+        AFL_VERIFY(result[storageId].emplace(RestoreBlobRange(i.GetBlobRange())).second)("blob_id", RestoreBlobRange(i.GetBlobRange()).ToString());
+    }
+}
+
+void TPortionInfo::FillBlobRangesByStorage(THashMap>& result, const TVersionedIndex& index) const {
+    auto schema = GetSchema(index);
+    return FillBlobRangesByStorage(result, schema->GetIndexInfo());
+}
+
+void TPortionInfo::FillBlobIdsByStorage(THashMap>& result, const TIndexInfo& indexInfo) const {
+    THashMap> local;
+    THashSet* currentHashLocal;
+    THashSet* currentHashResult;
+    ui32 lastEntityId = 0;
+    TString lastStorageId;
+    ui32 lastBlobIdx = BlobIds.size();
+    for (auto&& i : Records) {
+        if (lastEntityId != i.GetEntityId()) {
+            const TString& storageId = GetColumnStorageId(i.GetEntityId(), indexInfo);
+            if (storageId != lastStorageId) {
+                currentHashResult = &result[storageId];
+                currentHashLocal = &local[storageId];
+                lastStorageId = storageId;
+                lastBlobIdx = BlobIds.size();
+            }
+        }
+        if (lastBlobIdx != i.GetBlobRange().GetBlobIdxVerified() && currentHashLocal->emplace(i.GetBlobRange().GetBlobIdxVerified()).second) {
+            auto blobId = GetBlobId(i.GetBlobRange().GetBlobIdxVerified());
+            AFL_VERIFY(currentHashResult->emplace(blobId).second)("blob_id", blobId.ToStringNew());
+            lastBlobIdx = i.GetBlobRange().GetBlobIdxVerified();
+        }
+    }
+    for (auto&& i : Indexes) {
+        if (lastEntityId != i.GetEntityId()) {
+            const TString& storageId = indexInfo.GetIndexStorageId(i.GetEntityId());
+            if (storageId != lastStorageId) {
+                currentHashResult = &result[storageId];
+                currentHashLocal = &local[storageId];
+                lastStorageId = storageId;
+                lastBlobIdx = BlobIds.size();
+            }
+        }
+        if (lastBlobIdx != i.GetBlobRange().GetBlobIdxVerified() && currentHashLocal->emplace(i.GetBlobRange().GetBlobIdxVerified()).second) {
+            auto blobId = GetBlobId(i.GetBlobRange().GetBlobIdxVerified());
+            AFL_VERIFY(currentHashResult->emplace(blobId).second)("blob_id", blobId.ToStringNew());
+            lastBlobIdx = i.GetBlobRange().GetBlobIdxVerified();
+        }
+    }
+}
+
+void TPortionInfo::FillBlobIdsByStorage(THashMap>& result, const TVersionedIndex& index) const {
+    auto schema = GetSchema(index);
+    return FillBlobIdsByStorage(result, schema->GetIndexInfo());
+}
+
+TBlobRangeLink16::TLinkId TPortionInfo::RegisterBlobId(const TUnifiedBlobId& blobId) {
+    AFL_VERIFY(blobId.IsValid());
+    TBlobRangeLink16::TLinkId idx = 0;
+    for (auto&& i : BlobIds) {
+        if (i == blobId) {
+            return idx;
+        }
+        ++idx;
+    }
+    BlobIds.emplace_back(blobId);
+    return idx;
+}
+
+THashMap>>> TPortionInfo::RestoreEntityChunks(NBlobOperations::NRead::TCompositeReadBlobs& blobs, const TIndexInfo& indexInfo) const {
+    THashMap>>> result;
+    for (auto&& c : GetRecords()) {
+        const TString& storageId = GetColumnStorageId(c.GetColumnId(), indexInfo);
+        auto& storageRecords = result[storageId];
+        auto& blobRecords = storageRecords[GetBlobId(c.GetBlobRange().GetBlobIdxVerified())];
+        blobRecords.emplace_back(std::make_shared(blobs.Extract(storageId, RestoreBlobRange(c.GetBlobRange())), c, indexInfo.GetColumnFeaturesVerified(c.GetColumnId())));
+        blobRecords.back()->SetChunkIdx(c.GetChunkIdx());
+    }
+    for (auto&& c : GetIndexes()) {
+        const TString& storageId = indexInfo.GetIndexStorageId(c.GetIndexId());
+        auto& storageRecords = result[storageId];
+        auto& blobRecords = storageRecords[GetBlobId(c.GetBlobRange().GetBlobIdxVerified())];
+        blobRecords.emplace_back(std::make_shared(c.GetAddress(), c.GetRecordsCount(), c.GetRawBytes(), blobs.Extract(storageId, RestoreBlobRange(c.GetBlobRange()))));
+        blobRecords.back()->SetChunkIdx(c.GetChunkIdx());
+    }
+    return result;
+}
+
+THashMap>> TPortionInfo::GetEntityChunks(const TIndexInfo& indexInfo) const {
+    THashMap>> result;
+    for (auto&& c : GetRecords()) {
+        const TString& storageId = GetColumnStorageId(c.GetColumnId(), indexInfo);
+        auto& storageRecords = result[storageId];
+        auto& blobRecords = storageRecords[GetBlobId(c.GetBlobRange().GetBlobIdxVerified())];
+        blobRecords.emplace_back(TEntityChunk(c.GetAddress(), c.GetMeta().GetNumRows(), c.GetMeta().GetRawBytes(), c.GetBlobRange()));
+    }
+    for (auto&& c : GetIndexes()) {
+        const TString& storageId = indexInfo.GetIndexStorageId(c.GetIndexId());
+        auto& storageRecords = result[storageId];
+        auto& blobRecords = storageRecords[GetBlobId(c.GetBlobRange().GetBlobIdxVerified())];
+        blobRecords.emplace_back(TEntityChunk(c.GetAddress(), c.GetRecordsCount(), c.GetRawBytes(), c.GetBlobRange()));
+    }
+    return result;
+}
+
+void TPortionInfo::ReorderChunks() {
+    {
+        auto pred = [](const TColumnRecord& l, const TColumnRecord& r) {
+            return l.GetAddress() < r.GetAddress();
+        };
+        std::sort(Records.begin(), Records.end(), pred);
+        std::optional chunk;
+        for (auto&& i : Records) {
+            if (!chunk) {
+                chunk = i.GetAddress();
+            } else {
+                AFL_VERIFY(*chunk < i.GetAddress());
+                chunk = i.GetAddress();
+            }
+            AFL_VERIFY(chunk->GetEntityId());
+        }
+    }
+    {
+        auto pred = [](const TIndexChunk& l, const TIndexChunk& r) {
+            return l.GetAddress() < r.GetAddress();
+        };
+        std::sort(Indexes.begin(), Indexes.end(), pred);
+        std::optional chunk;
+        for (auto&& i : Indexes) {
+            if (!chunk) {
+                chunk = i.GetAddress();
+            } else {
+                AFL_VERIFY(*chunk < i.GetAddress());
+                chunk = i.GetAddress();
+            }
+            AFL_VERIFY(chunk->GetEntityId());
+        }
+    }
+}
+
+void TPortionInfo::FullValidation() const {
+    AFL_VERIFY(PathId);
+    AFL_VERIFY(Portion);
+    AFL_VERIFY(MinSnapshotDeprecated.Valid());
+    std::set blobIdxs;
+    for (auto&& i : Records) {
+        blobIdxs.emplace(i.GetBlobRange().GetBlobIdxVerified());
+    }
+    for (auto&& i : Indexes) {
+        blobIdxs.emplace(i.GetBlobRange().GetBlobIdxVerified());
+    }
+    if (BlobIds.size()) {
+        AFL_VERIFY(BlobIds.size() == blobIdxs.size());
+        AFL_VERIFY(BlobIds.size() == *blobIdxs.rbegin() + 1);
+    } else {
+        AFL_VERIFY(blobIdxs.empty());
+    }
+}
+
+ui64 TPortionInfo::GetMinMemoryForReadColumns(const std::optional>& columnIds) const {
+    ui32 columnId = 0;
+    ui32 chunkIdx = 0;
+
+    struct TDelta {
+        i64 BlobBytes = 0;
+        i64 RawBytes = 0;
+        void operator+=(const TDelta& add) {
+            BlobBytes += add.BlobBytes;
+            RawBytes += add.RawBytes;
+        }
+    };
+
+    std::map diffByPositions;
+    ui64 position = 0;
+    ui64 RawBytesCurrent = 0;
+    ui64 BlobBytesCurrent = 0;
+    std::optional recordsCount;
+
+    const auto doFlushColumn = [&]() {
+        if (!recordsCount && position) {
+            recordsCount = position;
+        } else {
+            AFL_VERIFY(*recordsCount == position);
+        }
+        if (position) {
+            TDelta delta;
+            delta.RawBytes = -1 * RawBytesCurrent;
+            delta.BlobBytes = -1 * BlobBytesCurrent;
+            diffByPositions[position] += delta;
+        }
+        position = 0;
+        chunkIdx = 0;
+        RawBytesCurrent = 0;
+        BlobBytesCurrent = 0;
+    };
+
+    for (auto&& i : Records) {
+        if (columnIds && !columnIds->contains(i.GetColumnId())) {
+            continue;
+        }
+        if (columnId != i.GetColumnId()) {
+            if (columnId) {
+                doFlushColumn();
+            }
+            AFL_VERIFY(i.GetColumnId() > columnId);
+            AFL_VERIFY(i.GetChunkIdx() == 0);
+            columnId = i.GetColumnId();
+        } else {
+            AFL_VERIFY(i.GetChunkIdx() == chunkIdx + 1);
+        }
+        chunkIdx = i.GetChunkIdx();
+        TDelta delta;
+        delta.RawBytes = -1 * RawBytesCurrent + i.GetMeta().GetRawBytes();
+        delta.BlobBytes = -1 * BlobBytesCurrent + i.GetBlobRange().Size;
+        diffByPositions[position] += delta;
+        position += i.GetMeta().GetNumRows();
+        RawBytesCurrent = i.GetMeta().GetRawBytes();
+        BlobBytesCurrent = i.GetBlobRange().Size;
+    }
+    if (columnId) {
+        doFlushColumn();
+    }
+    i64 maxRawBytes = 0;
+    TDelta current;
+    for (auto&& i : diffByPositions) {
+        current += i.second;
+        AFL_VERIFY(current.BlobBytes >= 0);
+        AFL_VERIFY(current.RawBytes >= 0);
+        if (maxRawBytes < current.RawBytes) {
+            maxRawBytes = current.RawBytes;
+        }
+    }
+    AFL_VERIFY(current.BlobBytes == 0)("real", current.BlobBytes);
+    AFL_VERIFY(current.RawBytes == 0)("real", current.RawBytes);
+    return maxRawBytes;
+}
+
+namespace {
+template 
+TPortionInfo::TPreparedBatchData PrepareForAssembleImpl(const TPortionInfo& portion, const ISnapshotSchema& dataSchema, const ISnapshotSchema& resultSchema,
+    THashMap& blobsData) {
+    std::vector columns;
+    auto arrowResultSchema = resultSchema.GetSchema();
+    columns.reserve(arrowResultSchema->num_fields());
+    const ui32 rowsCount = portion.GetRecordsCount();
+    for (auto&& i : arrowResultSchema->fields()) {
+        columns.emplace_back(rowsCount, dataSchema.GetColumnLoaderOptional(i->name()), resultSchema.GetColumnLoaderOptional(i->name()));
+    }
+    {
+        int skipColumnId = -1;
+        TPortionInfo::TColumnAssemblingInfo* currentAssembler = nullptr;
+        for (auto& rec : portion.GetRecords()) {
+            if (skipColumnId == (int)rec.ColumnId) {
+                continue;
+            }
+            if (!currentAssembler || rec.ColumnId != currentAssembler->GetColumnId()) {
+                const i32 resultPos = resultSchema.GetFieldIndex(rec.ColumnId);
+                if (resultPos < 0) {
+                    skipColumnId = rec.ColumnId;
+                    continue;
+                }
+                AFL_VERIFY((ui32)resultPos < columns.size());
+                currentAssembler = &columns[resultPos];
+            }
+            auto it = blobsData.find(rec.GetAddress());
+            AFL_VERIFY(it != blobsData.end())("size", blobsData.size())("address", rec.GetAddress().DebugString());
+            currentAssembler->AddBlobInfo(rec.Chunk, rec.GetMeta().GetNumRows(), std::move(it->second));
+            blobsData.erase(it);
+        }
+    }
+
+    // Make chunked arrays for columns
+    std::vector preparedColumns;
+    preparedColumns.reserve(columns.size());
+    for (auto& c : columns) {
+        preparedColumns.emplace_back(c.Compile());
+    }
+
+    return TPortionInfo::TPreparedBatchData(std::move(preparedColumns), arrowResultSchema, rowsCount);
+}
+
+}
+
+namespace {
+class TChunkAccessor {
+private:
+    const std::vector& Chunks;
+    const std::shared_ptr Loader;
+public:
+    TChunkAccessor(const std::vector& chunks, const std::shared_ptr& loader)
+        : Chunks(chunks)
+        , Loader(loader)
+    {
+
+    }
+    ui64 GetChunksCount() const {
+        return Chunks.size();
+    }
+    ui64 GetChunkLength(const ui32 idx) const {
+        return Chunks[idx].GetRecordsCount();
+    }
+    std::shared_ptr GetArray(const ui32 idx) const {
+        return Chunks[idx].GetArrayVerified(Loader);
+    }
+};
+}
+
+NArrow::NAccessor::IChunkedArray::TCurrentChunkAddress TDeserializeChunkedArray::DoGetChunk(const std::optional& chunkCurrent, const ui64 position) const {
+    TChunkAccessor accessor(Chunks, Loader);
+    return SelectChunk(chunkCurrent, position, accessor);
+}
+
+TPortionInfo::TPreparedBatchData TPortionInfo::PrepareForAssemble(const ISnapshotSchema& dataSchema, const ISnapshotSchema& resultSchema, THashMap& blobsData) const {
+    return PrepareForAssembleImpl(*this, dataSchema, resultSchema, blobsData);
+}
+
+TPortionInfo::TPreparedBatchData TPortionInfo::PrepareForAssemble(const ISnapshotSchema& dataSchema, const ISnapshotSchema& resultSchema, THashMap& blobsData) const {
+    return PrepareForAssembleImpl(*this, dataSchema, resultSchema, blobsData);
+}
+
+std::shared_ptr TPortionInfo::TPreparedColumn::AssembleForSeqAccess() const {
+    Y_ABORT_UNLESS(!Blobs.empty());
+
+    std::vector chunks;
+    chunks.reserve(Blobs.size());
+    ui64 recordsCount = 0;
+    for (auto& blob : Blobs) {
+        chunks.push_back(blob.BuildDeserializeChunk(Loader));
+        recordsCount += blob.GetExpectedRowsCountVerified();
+    }
+
+    return std::make_shared(recordsCount, Loader, std::move(chunks));
+}
+
 std::shared_ptr TPortionInfo::TPreparedColumn::Assemble() const {
     Y_ABORT_UNLESS(!Blobs.empty());
 
@@ -321,6 +745,18 @@ std::shared_ptr TPortionInfo::TPreparedColumn::Assemble() c
     return (*res)->column(0);
 }
 
+TDeserializeChunkedArray::TChunk TPortionInfo::TAssembleBlobInfo::BuildDeserializeChunk(const std::shared_ptr& loader) const {
+    if (NullRowsCount) {
+        Y_ABORT_UNLESS(!Data);
+        auto emptyBatch = NArrow::MakeEmptyBatch(loader->GetExpectedSchema(), NullRowsCount);
+        AFL_VERIFY(emptyBatch->num_columns() == 1);
+        return TDeserializeChunkedArray::TChunk(emptyBatch->column(0));
+    } else {
+        AFL_VERIFY(ExpectedRowsCount);
+        return TDeserializeChunkedArray::TChunk(*ExpectedRowsCount, Data);
+    }
+}
+
 std::shared_ptr TPortionInfo::TAssembleBlobInfo::BuildRecordBatch(const TColumnLoader& loader) const {
     if (NullRowsCount) {
         Y_ABORT_UNLESS(!Data);
@@ -331,10 +767,24 @@ std::shared_ptr TPortionInfo::TAssembleBlobInfo::BuildRecord
             AFL_ERROR(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "cannot unpack batch")("error", result.status().ToString())("loader", loader.DebugString());
             return nullptr;
         }
+        if (ExpectedRowsCount) {
+            AFL_VERIFY((*result)->num_rows() == ExpectedRowsCount)("real", (*result)->num_rows())("expected", ExpectedRowsCount);
+        }
         return *result;
     }
 }
 
+std::shared_ptr TPortionInfo::TPreparedBatchData::AssembleForSeqAccess() const {
+    std::vector> columns;
+    std::vector> fields;
+    for (auto&& i : Columns) {
+        columns.emplace_back(i.AssembleForSeqAccess());
+        fields.emplace_back(i.GetField());
+    }
+
+    return std::make_shared(std::make_shared(fields), std::move(columns));
+}
+
 std::shared_ptr TPortionInfo::TPreparedBatchData::AssembleTable(const TAssembleOptions& options) const {
     std::vector> columns;
     std::vector> fields;
@@ -362,10 +812,7 @@ std::shared_ptr TPortionInfo::TPreparedBatchData::AssembleTable(co
 }
 
 std::shared_ptr TPortionInfo::TPreparedBatchData::Assemble(const TAssembleOptions& options) const {
-    auto table = AssembleTable(options);
-    auto res = table->CombineChunks();
-    Y_ABORT_UNLESS(res.ok());
-    return NArrow::ToBatch(*res);
+    return NArrow::ToBatch(AssembleTable(options), true);
 }
 
 }
diff --git a/ydb/core/tx/columnshard/engines/portions/portion_info.h b/ydb/core/tx/columnshard/engines/portions/portion_info.h
index ffca573d8cce..ee3793c8e8f5 100644
--- a/ydb/core/tx/columnshard/engines/portions/portion_info.h
+++ b/ydb/core/tx/columnshard/engines/portions/portion_info.h
@@ -1,8 +1,11 @@
 #pragma once
 #include "column_record.h"
+#include "index_chunk.h"
 #include "meta.h"
 
 #include 
+#include 
+#include 
 #include 
 #include 
 #include 
@@ -10,26 +13,233 @@
 
 #include 
 
+namespace NKikimrColumnShardDataSharingProto {
+class TPortionInfo;
+}
+
 namespace NKikimr::NOlap {
 
+namespace NBlobOperations::NRead {
+class TCompositeReadBlobs;
+}
+
 struct TIndexInfo;
+class TVersionedIndex;
 class IDbWrapper;
 
+class TDeserializeChunkedArray: public NArrow::NAccessor::IChunkedArray {
+private:
+    using TBase = NArrow::NAccessor::IChunkedArray;
+public:
+    class TChunk {
+    private:
+        YDB_READONLY(ui32, RecordsCount, 0);
+        std::shared_ptr PredefinedArray;
+        const TString Data;
+    public:
+        TChunk(const std::shared_ptr& predefinedArray)
+            : PredefinedArray(predefinedArray) {
+            AFL_VERIFY(PredefinedArray);
+            RecordsCount = PredefinedArray->length();
+        }
+
+        TChunk(const ui32 recordsCount, const TString& data)
+            : RecordsCount(recordsCount)
+            , Data(data) {
+
+        }
+
+        std::shared_ptr GetArrayVerified(const std::shared_ptr& loader) const {
+            if (PredefinedArray) {
+                return PredefinedArray;
+            }
+            auto result = loader->ApplyVerified(Data);
+            AFL_VERIFY(result);
+            AFL_VERIFY(result->num_columns() == 1);
+            AFL_VERIFY(result->num_rows() == RecordsCount)("length", result->num_rows())("records_count", RecordsCount);
+            return result->column(0);
+        }
+    };
+
+    std::shared_ptr Loader;
+    std::vector Chunks;
+protected:
+    virtual TCurrentChunkAddress DoGetChunk(const std::optional& chunkCurrent, const ui64 position) const override;
+    virtual std::shared_ptr DoGetChunkedArray() const override {
+        AFL_VERIFY(false);
+        return nullptr;
+    }
+public:
+    TDeserializeChunkedArray(const ui64 recordsCount, const std::shared_ptr& loader, std::vector&& chunks)
+        : TBase(recordsCount, NArrow::NAccessor::IChunkedArray::EType::SerializedChunkedArray, loader->GetField()->type())
+        , Loader(loader)
+        , Chunks(std::move(chunks)) {
+        AFL_VERIFY(Loader);
+    }
+};
+
+class TEntityChunk {
+private:
+    TChunkAddress Address;
+    YDB_READONLY(ui32, RecordsCount, 0);
+    YDB_READONLY(ui64, RawBytes, 0);
+    YDB_READONLY_DEF(TBlobRangeLink16, BlobRange);
+public:
+    const TChunkAddress& GetAddress() const {
+        return Address;
+    }
+
+    TEntityChunk(const TChunkAddress& address, const ui32 recordsCount, const ui64 rawBytesSize, const TBlobRangeLink16& blobRange)
+        : Address(address)
+        , RecordsCount(recordsCount)
+        , RawBytes(rawBytesSize)
+        , BlobRange(blobRange)
+    {
+
+    }
+};
+
 class TPortionInfo {
+public:
+    using TRuntimeFeatures = ui8;
+    enum class ERuntimeFeature: TRuntimeFeatures {
+        Optimized = 1 /* "optimized" */
+    };
 private:
     TPortionInfo() = default;
     ui64 PathId = 0;
     ui64 Portion = 0;   // Id of independent (overlayed by PK) portion of data in pathId
-    TSnapshot MinSnapshot = TSnapshot::Zero();  // {PlanStep, TxId} is min snapshot for {Granule, Portion}
+    TSnapshot MinSnapshotDeprecated = TSnapshot::Zero();  // {PlanStep, TxId} is min snapshot for {Granule, Portion}
     TSnapshot RemoveSnapshot = TSnapshot::Zero(); // {XPlanStep, XTxId} is snapshot where the blob has been removed (i.e. compacted into another one)
+    std::optional SchemaVersion;
 
-    bool HasPkMinMax() const;
     TPortionMeta Meta;
-    std::shared_ptr BlobsOperator;
     ui64 DeprecatedGranuleId = 0;
     YDB_READONLY_DEF(std::vector, Indexes);
+    YDB_READONLY(TRuntimeFeatures, RuntimeFeatures, 0);
+    std::vector BlobIds;
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardDataSharingProto::TPortionInfo& proto, const TIndexInfo& info);
 
+    template 
+    static void CheckChunksOrder(const std::vector& chunks) {
+        ui32 entityId = 0;
+        ui32 chunkIdx = 0;
+        for (auto&& i : chunks) {
+            if (entityId != i.GetEntityId()) {
+                AFL_VERIFY(entityId < i.GetEntityId());
+                AFL_VERIFY(i.GetChunkIdx() == 0);
+                entityId = i.GetEntityId();
+                chunkIdx = 0;
+            } else {
+                AFL_VERIFY(i.GetChunkIdx() == chunkIdx + 1);
+                chunkIdx = i.GetChunkIdx();
+            }
+        }
+    }
+
+    template 
+    static void AggregateIndexChunksData(const TAggregator& aggr, const std::vector& chunks, const std::optional>& columnIds, const bool validation) {
+        if (columnIds) {
+            auto itColumn = columnIds->begin();
+            auto itRecord = chunks.begin();
+            ui32 recordsInEntityCount = 0;
+            while (itRecord != chunks.end() && itColumn != columnIds->end()) {
+                if (itRecord->GetEntityId() < *itColumn) {
+                    ++itRecord;
+                } else if (*itColumn < itRecord->GetEntityId()) {
+                    AFL_VERIFY(!validation || recordsInEntityCount)("problem", "validation")("reason", "no_chunks_for_column")("column_id", *itColumn);
+                    ++itColumn;
+                    recordsInEntityCount = 0;
+                } else {
+                    ++recordsInEntityCount;
+                    aggr(*itRecord);
+                    ++itRecord;
+                }
+            }
+        } else {
+            for (auto&& i : chunks) {
+                aggr(i);
+            }
+        }
+    }
 public:
+    ui64 GetMinMemoryForReadColumns(const std::optional>& columnIds) const;
+
+    void InitRuntimeFeature(const ERuntimeFeature feature, const bool activity) {
+        if (activity) {
+            AddRuntimeFeature(feature);
+        } else {
+            RemoveRuntimeFeature(feature);
+        }
+    }
+
+    void AddRuntimeFeature(const ERuntimeFeature feature) {
+        RuntimeFeatures |= (TRuntimeFeatures)feature;
+    }
+
+    void RemoveRuntimeFeature(const ERuntimeFeature feature) {
+        RuntimeFeatures &= (Max() - (TRuntimeFeatures)feature);
+    }
+
+    void OnAfterLoad() const {
+        CheckChunksOrder(Records);
+        CheckChunksOrder(Indexes);
+    }
+
+    bool HasRuntimeFeature(const ERuntimeFeature feature) const {
+        if (feature == ERuntimeFeature::Optimized) {
+            if ((RuntimeFeatures & (TRuntimeFeatures)feature)) {
+                return true;
+            } else {
+                return GetTierNameDef(NOlap::NBlobOperations::TGlobal::DefaultStorageId) != NOlap::NBlobOperations::TGlobal::DefaultStorageId;
+            }
+        }
+        return (RuntimeFeatures & (TRuntimeFeatures)feature);
+    }
+
+    void FullValidation() const;
+
+    bool HasIndexes(const std::set& ids) const {
+        auto idsCopy = ids;
+        for (auto&& i : Indexes) {
+            idsCopy.erase(i.GetIndexId());
+            if (idsCopy.empty()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    void ReorderChunks();
+
+    THashMap>>> RestoreEntityChunks(NBlobOperations::NRead::TCompositeReadBlobs& blobs, const TIndexInfo& indexInfo) const;
+    THashMap>> GetEntityChunks(const TIndexInfo & info) const;
+
+    const TBlobRange RestoreBlobRange(const TBlobRangeLink16& linkRange) const {
+        return linkRange.RestoreRange(GetBlobId(linkRange.GetBlobIdxVerified()));
+    }
+
+    const TUnifiedBlobId& GetBlobId(const TBlobRangeLink16::TLinkId linkId) const {
+        AFL_VERIFY(linkId < BlobIds.size());
+        return BlobIds[linkId];
+    }
+
+    ui32 GetBlobIdsCount() const {
+        return BlobIds.size();
+    }
+
+    THashMap DecodeBlobAddresses(NBlobOperations::NRead::TCompositeReadBlobs&& blobs, const TIndexInfo& indexInfo) const;
+
+    void SetStatisticsStorage(NStatistics::TPortionStorage&& storage) {
+        Meta.SetStatisticsStorage(std::move(storage));
+    }
+
+    const TString& GetColumnStorageId(const ui32 columnId, const TIndexInfo& indexInfo) const;
+    const TString& GetEntityStorageId(const ui32 entityId, const TIndexInfo& indexInfo) const;
+
+    ui64 GetTxVolume() const; // fake-correct method for determ volume on rewrite this portion in transaction progress
+    ui64 GetMetadataMemorySize() const;
+
     class TPage {
     private:
         YDB_READONLY_DEF(std::vector, Records);
@@ -45,6 +255,16 @@ class TPortionInfo {
         }
     };
 
+    TString GetTierNameDef(const TString& defaultTierName) const {
+        if (GetMeta().GetTierName()) {
+            return GetMeta().GetTierName();
+        }
+        return defaultTierName;
+    }
+
+    static TConclusion BuildFromProto(const NKikimrColumnShardDataSharingProto::TPortionInfo& proto, const TIndexInfo& info);
+    void SerializeToProto(NKikimrColumnShardDataSharingProto::TPortionInfo& proto) const;
+
     std::vector BuildPages() const;
 
     std::vector Records;
@@ -57,16 +277,18 @@ class TPortionInfo {
         return PathId;
     }
 
-    void RegisterBlobId(const TChunkAddress& address, const TUnifiedBlobId& blobId) {
+    TBlobRangeLink16::TLinkId RegisterBlobId(const TUnifiedBlobId& blobId);
+
+    void RegisterBlobIdx(const TChunkAddress& address, const TBlobRangeLink16::TLinkId blobIdx) {
         for (auto it = Records.begin(); it != Records.end(); ++it) {
             if (it->ColumnId == address.GetEntityId() && it->Chunk == address.GetChunkIdx()) {
-                it->RegisterBlobId(blobId);
+                it->RegisterBlobIdx(blobIdx);
                 return;
             }
         }
         for (auto it = Indexes.begin(); it != Indexes.end(); ++it) {
             if (it->GetIndexId() == address.GetEntityId() && it->GetChunkIdx() == address.GetChunkIdx()) {
-                it->RegisterBlobId(blobId);
+                it->RegisterBlobIdx(blobIdx);
                 return;
             }
         }
@@ -117,10 +339,6 @@ class TPortionInfo {
         return Portion;
     }
 
-    bool HasStorageOperator() const {
-        return !!BlobsOperator;
-    }
-
     NJson::TJsonValue SerializeToJsonVisual() const {
         NJson::TJsonValue result = NJson::JSON_MAP;
         result.InsertValue("id", Portion);
@@ -136,24 +354,18 @@ class TPortionInfo {
         return result;
     }
 
-    void InitOperator(const std::shared_ptr& bOperator, const bool rewrite) {
-        if (rewrite) {
-            AFL_VERIFY(!!BlobsOperator);
-        } else {
-            AFL_VERIFY(!BlobsOperator);
-        }
-        AFL_VERIFY(!!bOperator);
-        BlobsOperator = bOperator;
-    }
-
     static constexpr const ui32 BLOB_BYTES_LIMIT = 8 * 1024 * 1024;
 
-    const std::shared_ptr& GetBlobsStorage() const {
-        Y_ABORT_UNLESS(BlobsOperator);
-        return BlobsOperator;
-    }
     std::vector GetColumnChunksPointers(const ui32 columnId) const;
 
+    std::set GetColumnIds() const {
+        std::set result;
+        for (auto&& i : Records) {
+            result.emplace(i.GetColumnId());
+        }
+        return result;
+    }
+
     TSerializationStats GetSerializationStat(const ISnapshotSchema& schema) const {
         TSerializationStats result;
         for (auto&& i : Records) {
@@ -166,7 +378,6 @@ class TPortionInfo {
 
     void ResetMeta() {
         Meta = TPortionMeta();
-        BlobsOperator = nullptr;
     }
 
     const TPortionMeta& GetMeta() const {
@@ -186,18 +397,51 @@ class TPortionInfo {
         return nullptr;
     }
 
+    std::optional GetEntityRecord(const TChunkAddress& address) const {
+        for (auto&& c : GetRecords()) {
+            if (c.GetAddress() == address) {
+                return TEntityChunk(c.GetAddress(), c.GetMeta().GetNumRows(), c.GetMeta().GetRawBytes(), c.GetBlobRange());
+            }
+        }
+        for (auto&& c : GetIndexes()) {
+            if (c.GetAddress() == address) {
+                return TEntityChunk(c.GetAddress(), c.GetRecordsCount(), c.GetRawBytes(), c.GetBlobRange());
+            }
+        }
+        return {};
+    }
+
+    bool HasEntityAddress(const TChunkAddress& address) const {
+        for (auto&& c : GetRecords()) {
+            if (c.GetAddress() == address) {
+                return true;
+            }
+        }
+        for (auto&& c : GetIndexes()) {
+            if (c.GetAddress() == address) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     bool Empty() const { return Records.empty(); }
     bool Produced() const { return Meta.GetProduced() != TPortionMeta::EProduced::UNSPECIFIED; }
-    bool Valid() const { return MinSnapshot.Valid() && PathId && Portion && !Empty() && Produced() && HasPkMinMax() && Meta.IndexKeyStart && Meta.IndexKeyEnd; }
-    bool ValidSnapshotInfo() const { return MinSnapshot.Valid() && PathId && Portion; }
+    bool Valid() const { return ValidSnapshotInfo() && !Empty() && Produced() && Meta.IndexKeyStart && Meta.IndexKeyEnd; }
+    bool ValidSnapshotInfo() const { return MinSnapshotDeprecated.Valid() && PathId && Portion; }
     bool IsInserted() const { return Meta.GetProduced() == TPortionMeta::EProduced::INSERTED; }
     bool IsEvicted() const { return Meta.GetProduced() == TPortionMeta::EProduced::EVICTED; }
     bool CanHaveDups() const { return !Produced(); /* || IsInserted(); */ }
     bool CanIntersectOthers() const { return !Valid() || IsInserted() || IsEvicted(); }
     size_t NumChunks() const { return Records.size(); }
-    size_t NumBlobs() const;
 
-    TPortionInfo CopyWithFilteredColumns(const THashSet& columnIds) const;
+    TPortionInfo CopyBeforeChunksRebuild() const {
+        TPortionInfo result = *this;
+        result.Records.clear();
+        result.Indexes.clear();
+        result.BlobIds.clear();
+        return result;
+    }
 
     bool IsEqualWithSnapshots(const TPortionInfo& item) const;
 
@@ -205,11 +449,11 @@ class TPortionInfo {
         return TPortionInfo();
     }
 
-    TPortionInfo(const ui64 pathId, const ui64 portionId, const TSnapshot& minSnapshot, const std::shared_ptr& blobsOperator)
+    TPortionInfo(const ui64 pathId, const ui64 portionId, const ui64 schemaVersion, const TSnapshot& minSnapshot)
         : PathId(pathId)
         , Portion(portionId)
-        , MinSnapshot(minSnapshot)
-        , BlobsOperator(blobsOperator) {
+        , MinSnapshotDeprecated(minSnapshot)
+        , SchemaVersion(schemaVersion) {
     }
 
     TString DebugString(const bool withDetails = false) const;
@@ -218,12 +462,16 @@ class TPortionInfo {
         return RemoveSnapshot.Valid();
     }
 
-    bool CheckForCleanup(const TSnapshot& snapshot) const {
+    bool IsRemovedFor(const TSnapshot& snapshot) const {
         if (!HasRemoveSnapshot()) {
             return false;
+        } else {
+            return GetRemoveSnapshotVerified() <= snapshot;
         }
+    }
 
-        return GetRemoveSnapshot() < snapshot;
+    bool CheckForCleanup(const TSnapshot& snapshot) const {
+        return IsRemovedFor(snapshot);
     }
 
     bool CheckForCleanup() const {
@@ -259,22 +507,36 @@ class TPortionInfo {
         DeprecatedGranuleId = granuleId;
     }
 
-    const TSnapshot& GetMinSnapshot() const {
-        return MinSnapshot;
+    const TSnapshot& GetMinSnapshotDeprecated() const {
+        return MinSnapshotDeprecated;
     }
 
-    const TSnapshot& GetRemoveSnapshot() const {
+    const TSnapshot& GetRemoveSnapshotVerified() const {
+        AFL_VERIFY(HasRemoveSnapshot());
         return RemoveSnapshot;
     }
 
-    void SetMinSnapshot(const TSnapshot& snap) {
+    std::optional GetRemoveSnapshotOptional() const {
+        if (RemoveSnapshot.Valid()) {
+            return RemoveSnapshot;
+        } else {
+            return {};
+        }
+    }
+
+    ui64 GetSchemaVersionVerified() const {
+        AFL_VERIFY(SchemaVersion);
+        return SchemaVersion.value();
+    }
+
+    void SetMinSnapshotDeprecated(const TSnapshot& snap) {
         Y_ABORT_UNLESS(snap.Valid());
-        MinSnapshot = snap;
+        MinSnapshotDeprecated = snap;
     }
 
-    void SetMinSnapshot(const ui64 planStep, const ui64 txId) {
-        MinSnapshot = TSnapshot(planStep, txId);
-        Y_ABORT_UNLESS(MinSnapshot.Valid());
+    void SetSchemaVersion(const ui64 version) {
+        AFL_VERIFY(version);
+        SchemaVersion = version;
     }
 
     void SetRemoveSnapshot(const TSnapshot& snap) {
@@ -289,34 +551,12 @@ class TPortionInfo {
         Y_ABORT_UNLESS(!wasValid || RemoveSnapshot.Valid());
     }
 
-    std::pair BlobsSizes() const {
-        ui32 sum = 0;
-        ui32 max = 0;
-        for (const auto& rec : Records) {
-            sum += rec.BlobRange.Size;
-            max = Max(max, rec.BlobRange.Size);
-        }
-        return {sum, max};
-    }
-
-    ui64 GetBlobBytes() const noexcept {
-        ui64 sum = 0;
-        for (const auto& rec : Records) {
-            sum += rec.BlobRange.Size;
-        }
-        return sum;
-    }
-
-    ui64 BlobsBytes() const noexcept {
-        return GetBlobBytes();
-    }
-
     bool IsVisible(const TSnapshot& snapshot) const {
         if (Empty()) {
             return false;
         }
 
-        bool visible = (MinSnapshot <= snapshot);
+        bool visible = (Meta.RecordSnapshotMin <= snapshot);
         if (visible && RemoveSnapshot.Valid()) {
             visible = snapshot < RemoveSnapshot;
         }
@@ -336,7 +576,6 @@ class TPortionInfo {
     void AddMetadata(const ISnapshotSchema& snapshotSchema, const NArrow::TFirstLastSpecialKeys& primaryKeys, const NArrow::TMinMaxSpecialKeys& snapshotKeys,
         const TString& tierName);
 
-    std::shared_ptr MinValue(ui32 columnId) const;
     std::shared_ptr MaxValue(ui32 columnId) const;
 
     const NArrow::TReplaceKey& IndexKeyStart() const {
@@ -359,20 +598,46 @@ class TPortionInfo {
         return *Meta.RecordSnapshotMax;
     }
 
-    THashSet GetBlobIds() const {
-        THashSet result;
-        for (auto&& i : Records) {
-            result.emplace(i.BlobRange.BlobId);
-        }
+
+    THashMap> GetBlobIdsByStorage(const TIndexInfo& indexInfo) const {
+        THashMap> result;
+        FillBlobIdsByStorage(result, indexInfo);
         return result;
     }
 
+    class TSchemaCursor {
+        const NOlap::TVersionedIndex& VersionedIndex;
+        ISnapshotSchema::TPtr CurrentSchema;
+        TSnapshot LastSnapshot = TSnapshot::Zero();
+    public:
+        TSchemaCursor(const NOlap::TVersionedIndex& versionedIndex)
+            : VersionedIndex(versionedIndex)
+        {}
+
+        ISnapshotSchema::TPtr GetSchema(const TPortionInfo& portion) {
+            if (!CurrentSchema || portion.MinSnapshotDeprecated != LastSnapshot) {
+                CurrentSchema = portion.GetSchema(VersionedIndex);
+                LastSnapshot = portion.GetMinSnapshotDeprecated();
+            }
+            AFL_VERIFY(!!CurrentSchema)("portion", portion.DebugString());
+            return CurrentSchema;
+        }
+    };
+
+    ISnapshotSchema::TPtr GetSchema(const TVersionedIndex& index) const;
+
+    void FillBlobRangesByStorage(THashMap>& result, const TIndexInfo& indexInfo) const;
+    void FillBlobRangesByStorage(THashMap>& result, const TVersionedIndex& index) const;
+
+    void FillBlobIdsByStorage(THashMap>& result, const TIndexInfo& indexInfo) const;
+    void FillBlobIdsByStorage(THashMap>& result, const TVersionedIndex& index) const;
+
     ui32 GetRecordsCount() const {
         ui32 result = 0;
         std::optional columnIdFirst;
         for (auto&& i : Records) {
             if (!columnIdFirst || *columnIdFirst == i.ColumnId) {
-                result += i.GetMeta().GetNumRowsVerified();
+                result += i.GetMeta().GetNumRows();
                 columnIdFirst = i.ColumnId;
             }
         }
@@ -387,75 +652,54 @@ class TPortionInfo {
         ui32 result = 0;
         for (auto&& i : Records) {
             if (columnId == i.ColumnId) {
-                result += i.GetMeta().GetNumRowsVerified();
+                result += i.GetMeta().GetNumRows();
             }
         }
         return result;
     }
 
-    ui64 GetIndexBytes(const std::set& columnIds) const;
-
-    ui64 GetRawBytes(const std::vector& columnIds) const;
-    ui64 GetRawBytes(const std::set& columnIds) const;
-    ui64 GetRawBytes() const {
-        ui64 result = 0;
-        for (auto&& i : Records) {
-            result += i.GetMeta().GetRawBytesVerified();
+    ui64 GetIndexRawBytes(const std::optional>& columnIds = {}, const bool validation = true) const;
+    ui64 GetIndexBlobBytes() const noexcept {
+        ui64 sum = 0;
+        for (const auto& rec : Indexes) {
+            sum += rec.GetBlobRange().Size;
         }
-        return result;
+        return sum;
     }
 
-    ui64 RawBytesSum() const {
-        return GetRawBytes();
-    }
+    ui64 GetColumnRawBytes(const std::vector& columnIds, const bool validation = true) const;
+    ui64 GetColumnRawBytes(const std::optional>& columnIds = {}, const bool validation = true) const;
 
-private:
-    class TMinGetter {
-    public:
-        static std::shared_ptr Get(const TPortionInfo& portionInfo, const ui32 columnId) {
-            return portionInfo.MinValue(columnId);
-        }
-    };
-
-    class TMaxGetter {
-    public:
-        static std::shared_ptr Get(const TPortionInfo& portionInfo, const ui32 columnId) {
-            return portionInfo.MaxValue(columnId);
-        }
-    };
+    ui64 GetColumnBlobBytes(const std::vector& columnIds, const bool validation = true) const;
+    ui64 GetColumnBlobBytes(const std::optional>& columnIds = {}, const bool validation = true) const;
 
-    template 
-    int CompareByColumnIdsImpl(const TPortionInfo& item, const std::vector& columnIds) const {
-        for (auto&& i : columnIds) {
-            std::shared_ptr valueSelf = TSelfGetter::Get(*this, i);
-            std::shared_ptr valueItem = TItemGetter::Get(item, i);
-            if (!!valueSelf && !!valueItem) {
-                const int cmpResult = NArrow::ScalarCompare(valueSelf, valueItem);
-                if (cmpResult) {
-                    return cmpResult;
-                }
-            } else if (!!valueSelf) {
-                return 1;
-            } else if (!!valueItem) {
-                return -1;
-            }
-        }
-        return 0;
+    ui64 GetTotalBlobBytes() const noexcept {
+        return GetIndexBlobBytes() + GetColumnBlobBytes();
     }
-public:
-    int CompareSelfMaxItemMinByPk(const TPortionInfo& item, const TIndexInfo& info) const;
-
-    int CompareMinByPk(const TPortionInfo& item, const TIndexInfo& info) const;
 
-    int CompareMinByColumnIds(const TPortionInfo& item, const std::vector& columnIds) const {
-        return CompareByColumnIdsImpl(item, columnIds);
+    ui64 GetTotalRawBytes() const {
+        return GetColumnRawBytes() + GetIndexRawBytes();
     }
-
+public:
     class TAssembleBlobInfo {
     private:
+        YDB_READONLY_DEF(std::optional, ExpectedRowsCount);
         ui32 NullRowsCount = 0;
         TString Data;
     public:
+        ui32 GetExpectedRowsCountVerified() const {
+            AFL_VERIFY(ExpectedRowsCount);
+            return *ExpectedRowsCount;
+        }
+
+        void SetExpectedRecordsCount(const ui32 expectedRowsCount) {
+            AFL_VERIFY(!ExpectedRowsCount);
+            ExpectedRowsCount = expectedRowsCount;
+            if (!Data) {
+                AFL_VERIFY(*ExpectedRowsCount == NullRowsCount);
+            }
+        }
+
         TAssembleBlobInfo(const ui32 rowsCount)
             : NullRowsCount(rowsCount) {
             AFL_VERIFY(NullRowsCount);
@@ -483,6 +727,7 @@ class TPortionInfo {
         }
 
         std::shared_ptr BuildRecordBatch(const TColumnLoader& loader) const;
+        TDeserializeChunkedArray::TChunk BuildDeserializeChunk(const std::shared_ptr& loader) const;
     };
 
     class TPreparedColumn {
@@ -510,6 +755,7 @@ class TPortionInfo {
         }
 
         std::shared_ptr Assemble() const;
+        std::shared_ptr AssembleForSeqAccess() const;
     };
 
     class TPreparedBatchData {
@@ -576,6 +822,7 @@ class TPortionInfo {
 
         std::shared_ptr Assemble(const TAssembleOptions& options = {}) const;
         std::shared_ptr AssembleTable(const TAssembleOptions& options = {}) const;
+        std::shared_ptr AssembleForSeqAccess() const;
     };
 
     class TColumnAssemblingInfo {
@@ -583,6 +830,7 @@ class TPortionInfo {
         std::vector BlobsInfo;
         YDB_READONLY(ui32, ColumnId, 0);
         const ui32 NumRows;
+        ui32 NumRowsByChunks = 0;
         const std::shared_ptr DataLoader;
         const std::shared_ptr ResultLoader;
     public:
@@ -602,8 +850,10 @@ class TPortionInfo {
             return ResultLoader->GetField();
         }
 
-        void AddBlobInfo(const ui32 expectedChunkIdx, TAssembleBlobInfo&& info) {
+        void AddBlobInfo(const ui32 expectedChunkIdx, const ui32 expectedRecordsCount, TAssembleBlobInfo&& info) {
             AFL_VERIFY(expectedChunkIdx == BlobsInfo.size());
+            info.SetExpectedRecordsCount(expectedRecordsCount);
+            NumRowsByChunks += expectedRecordsCount;
             BlobsInfo.emplace_back(std::move(info));
         }
 
@@ -612,58 +862,18 @@ class TPortionInfo {
                 BlobsInfo.emplace_back(TAssembleBlobInfo(NumRows));
                 return TPreparedColumn(std::move(BlobsInfo), ResultLoader);
             } else {
+                AFL_VERIFY(NumRowsByChunks == NumRows)("by_chunks", NumRowsByChunks)("expected", NumRows);
                 AFL_VERIFY(DataLoader);
                 return TPreparedColumn(std::move(BlobsInfo), DataLoader);
             }
         }
     };
 
-    template 
-    TPreparedBatchData PrepareForAssemble(const ISnapshotSchema& dataSchema, const ISnapshotSchema& resultSchema,
-        THashMap& blobsData) const {
-        std::vector columns;
-        auto arrowResultSchema = resultSchema.GetSchema();
-        columns.reserve(arrowResultSchema->num_fields());
-        const ui32 rowsCount = NumRows();
-        for (auto&& i : arrowResultSchema->fields()) {
-            columns.emplace_back(rowsCount, dataSchema.GetColumnLoaderOptional(i->name()), resultSchema.GetColumnLoaderOptional(i->name()));
-        }
-        {
-            int skipColumnId = -1;
-            TColumnAssemblingInfo* currentAssembler = nullptr;
-            for (auto& rec : Records) {
-                if (skipColumnId == (int)rec.ColumnId) {
-                    continue;
-                }
-                if (!currentAssembler || rec.ColumnId != currentAssembler->GetColumnId()) {
-                    const i32 resultPos = resultSchema.GetFieldIndex(rec.ColumnId);
-                    if (resultPos < 0) {
-                        skipColumnId = rec.ColumnId;
-                        continue;
-                    }
-                    AFL_VERIFY((ui32)resultPos < columns.size());
-                    currentAssembler = &columns[resultPos];
-                }
-                auto it = blobsData.find(rec.BlobRange);
-                Y_ABORT_UNLESS(it != blobsData.end());
-                currentAssembler->AddBlobInfo(rec.Chunk, std::move(it->second));
-                blobsData.erase(it);
-            }
-        }
-
-        // Make chunked arrays for columns
-        std::vector preparedColumns;
-        preparedColumns.reserve(columns.size());
-        for (auto& c : columns) {
-            preparedColumns.emplace_back(c.Compile());
-        }
-
-        return TPreparedBatchData(std::move(preparedColumns), arrowResultSchema, rowsCount);
-    }
+    TPreparedBatchData PrepareForAssemble(const ISnapshotSchema& dataSchema, const ISnapshotSchema& resultSchema, THashMap& blobsData) const;
+    TPreparedBatchData PrepareForAssemble(const ISnapshotSchema& dataSchema, const ISnapshotSchema& resultSchema, THashMap& blobsData) const;
 
-    std::shared_ptr AssembleInBatch(const ISnapshotSchema& dataSchema,
-        const ISnapshotSchema& resultSchema,
-        THashMap& data) const {
+    std::shared_ptr AssembleInBatch(const ISnapshotSchema& dataSchema, const ISnapshotSchema& resultSchema,
+        THashMap& data) const {
         auto batch = PrepareForAssemble(dataSchema, resultSchema, data).Assemble();
         Y_ABORT_UNLESS(batch->Validate().ok());
         return batch;
diff --git a/ydb/core/tx/columnshard/engines/portions/with_blobs.cpp b/ydb/core/tx/columnshard/engines/portions/with_blobs.cpp
index 9d8adcac99f2..7a29d2779c79 100644
--- a/ydb/core/tx/columnshard/engines/portions/with_blobs.cpp
+++ b/ydb/core/tx/columnshard/engines/portions/with_blobs.cpp
@@ -1,6 +1,10 @@
 #include "with_blobs.h"
 #include 
 #include 
+#include 
+#include 
+#include 
+#include 
 
 namespace NKikimr::NOlap {
 
@@ -8,40 +12,38 @@ void TPortionInfoWithBlobs::TBlobInfo::RestoreChunk(const TPortionInfoWithBlobs&
     Y_ABORT_UNLESS(!ResultBlob);
     const TString& data = chunk->GetData();
     Size += data.size();
-    auto address = chunk->GetChunkAddress();
-    Y_ABORT_UNLESS(owner.GetPortionInfo().GetRecordPointer(address));
-    Y_ABORT_UNLESS(Chunks.emplace(address, chunk).second);
+    auto address = chunk->GetChunkAddressVerified();
+    AFL_VERIFY(owner.GetPortionInfo().HasEntityAddress(address))("address", address.DebugString());
+    AFL_VERIFY(Chunks.emplace(address, chunk).second)("address", address.DebugString());
     ChunksOrdered.emplace_back(chunk);
 }
 
 void TPortionInfoWithBlobs::TBlobInfo::AddChunk(TPortionInfoWithBlobs& owner, const std::shared_ptr& chunk) {
     AFL_VERIFY(chunk);
     Y_ABORT_UNLESS(!ResultBlob);
-    TBlobRange bRange;
     const TString& data = chunk->GetData();
 
-    bRange.Offset = Size;
-    bRange.Size = data.size();
-
+    TBlobRangeLink16 bRange(Size, data.size());
     Size += data.size();
 
-    Y_ABORT_UNLESS(Chunks.emplace(chunk->GetChunkAddress(), chunk).second);
+    Y_ABORT_UNLESS(Chunks.emplace(chunk->GetChunkAddressVerified(), chunk).second);
     ChunksOrdered.emplace_back(chunk);
 
-    chunk->AddIntoPortion(bRange, owner.PortionInfo);
+    chunk->AddIntoPortionBeforeBlob(bRange, owner.PortionInfo);
 }
 
 void TPortionInfoWithBlobs::TBlobInfo::RegisterBlobId(TPortionInfoWithBlobs& owner, const TUnifiedBlobId& blobId) {
+    const TBlobRangeLink16::TLinkId idx = owner.PortionInfo.RegisterBlobId(blobId);
     for (auto&& i : Chunks) {
-        owner.PortionInfo.RegisterBlobId(i.first, blobId);
+        owner.PortionInfo.RegisterBlobIdx(i.first, idx);
     }
 }
 
 void TPortionInfoWithBlobs::TBlobInfo::ExtractEntityChunks(const ui32 entityId, std::map>& resultMap) {
     const auto pred = [this, &resultMap, entityId](const std::shared_ptr& chunk) {
         if (chunk->GetEntityId() == entityId) {
-            resultMap.emplace(chunk->GetChunkAddress(), chunk);
-            Chunks.erase(chunk->GetChunkAddress());
+            resultMap.emplace(chunk->GetChunkAddressVerified(), chunk);
+            Chunks.erase(chunk->GetChunkAddressVerified());
             return true;
         } else {
             return false;
@@ -54,10 +56,10 @@ std::shared_ptr TPortionInfoWithBlobs::GetBatch(const ISnaps
     Y_ABORT_UNLESS(data);
     if (columnNames.empty()) {
         if (!CachedBatch) {
-            THashMap blobs;
+            THashMap blobs;
             for (auto&& i : PortionInfo.Records) {
-                blobs[i.BlobRange] = GetBlobByRangeVerified(i.ColumnId, i.Chunk);
-                Y_ABORT_UNLESS(blobs[i.BlobRange].size() == i.BlobRange.Size);
+                blobs[i.GetAddress()] = GetBlobByRangeVerified(i.ColumnId, i.Chunk);
+                Y_ABORT_UNLESS(blobs[i.GetAddress()].size() == i.BlobRange.Size);
             }
             CachedBatch = PortionInfo.AssembleInBatch(*data, result, blobs);
             Y_DEBUG_ABORT_UNLESS(NArrow::IsSortedAndUnique(*CachedBatch, result.GetIndexInfo().GetReplaceKey()));
@@ -73,99 +75,59 @@ std::shared_ptr TPortionInfoWithBlobs::GetBatch(const ISnaps
         return result;
     } else {
         auto filteredSchema = std::make_shared(data, columnNames);
-        THashMap blobs;
+        THashMap blobs;
         for (auto&& i : PortionInfo.Records) {
-            blobs[i.BlobRange] = GetBlobByRangeVerified(i.ColumnId, i.Chunk);
-            Y_ABORT_UNLESS(blobs[i.BlobRange].size() == i.BlobRange.Size);
+            blobs[i.GetAddress()] = GetBlobByRangeVerified(i.ColumnId, i.Chunk);
+            Y_ABORT_UNLESS(blobs[i.GetAddress()].size() == i.BlobRange.Size);
         }
         return PortionInfo.AssembleInBatch(*data, *filteredSchema, blobs);
     }
 }
 
-NKikimr::NOlap::TPortionInfoWithBlobs TPortionInfoWithBlobs::RestorePortion(const TPortionInfo& portion, THashMap& blobs) {
+NKikimr::NOlap::TPortionInfoWithBlobs TPortionInfoWithBlobs::RestorePortion(const TPortionInfo& portion, NBlobOperations::NRead::TCompositeReadBlobs& blobs, const TIndexInfo& indexInfo, const std::shared_ptr& operators) {
     TPortionInfoWithBlobs result(portion);
-    const auto pred = [](const TColumnRecord& l, const TColumnRecord& r) {
-        return l.GetAddress() < r.GetAddress();
-    };
-    std::sort(result.PortionInfo.Records.begin(), result.PortionInfo.Records.end(), pred);
-
-    THashMap> recordsByBlob;
-    for (auto&& c : result.PortionInfo.Records) {
-        auto& blobRecords = recordsByBlob[c.BlobRange.BlobId];
-        blobRecords.emplace_back(&c);
-    }
-
-    const auto predOffset = [](const TColumnRecord* l, const TColumnRecord* r) {
-        return l->BlobRange.Offset < r->BlobRange.Offset;
-    };
-
-    for (auto&& i : recordsByBlob) {
-        std::sort(i.second.begin(), i.second.end(), predOffset);
-        auto builder = result.StartBlob();
-        for (auto&& d : i.second) {
-            auto itBlob = blobs.find(d->BlobRange);
-            Y_ABORT_UNLESS(itBlob != blobs.end());
-            builder.RestoreChunk(std::make_shared(*d, itBlob->second));
-            blobs.erase(itBlob);
+    THashMap>>> records = result.PortionInfo.RestoreEntityChunks(blobs, indexInfo);
+    for (auto&& [storageId, recordsByBlob] : records) {
+        auto storage = operators->GetOperatorVerified(storageId);
+        for (auto&& i : recordsByBlob) {
+            auto builder = result.StartBlob(storage);
+            for (auto&& d : i.second) {
+                builder.RestoreChunk(d);
+            }
         }
     }
     return result;
 }
 
-std::vector TPortionInfoWithBlobs::RestorePortions(const std::vector& portions, THashMap& blobs) {
+std::vector TPortionInfoWithBlobs::RestorePortions(const std::vector& portions, NBlobOperations::NRead::TCompositeReadBlobs& blobs,
+    const TVersionedIndex& tables, const std::shared_ptr& operators) {
     std::vector result;
     for (auto&& i : portions) {
-        result.emplace_back(RestorePortion(i, blobs));
+        const auto schema = i.GetSchema(tables);
+        result.emplace_back(RestorePortion(i, blobs, schema->GetIndexInfo(), operators));
     }
     return result;
 }
 
-NKikimr::NOlap::TPortionInfoWithBlobs TPortionInfoWithBlobs::BuildByBlobs(std::vector>>& chunksByBlobs, std::shared_ptr batch, const ui64 granule,
-                                                                          const TSnapshot& snapshot, const std::shared_ptr& bStorageOperator) {
-    TPortionInfoWithBlobs result(TPortionInfo(granule, 0, snapshot, bStorageOperator), batch);
-    for (auto& blob : chunksByBlobs) {
-        auto blobInfo = result.StartBlob();
-        for (auto&& chunk : blob) {
-            blobInfo.AddChunk(chunk);
-        }
-    }
-
-    const auto pred = [](const TColumnRecord& l, const TColumnRecord& r) {
-        return l.GetAddress() < r.GetAddress();
-    };
-    std::sort(result.GetPortionInfo().Records.begin(), result.GetPortionInfo().Records.end(), pred);
+NKikimr::NOlap::TPortionInfoWithBlobs TPortionInfoWithBlobs::BuildByBlobs(std::vector&& chunks,
+    std::shared_ptr batch, const ui64 granule, const ui64 schemaVersion, const TSnapshot& snapshot, const std::shared_ptr& operators)
+{
+    TPortionInfoWithBlobs result = BuildByBlobs(std::move(chunks), TPortionInfo(granule, 0, schemaVersion, snapshot), operators);
+    result.InitBatchCached(batch);
     return result;
 }
 
-std::optional TPortionInfoWithBlobs::ChangeSaver(ISnapshotSchema::TPtr currentSchema, const TSaverContext& saverContext) const {
-    TPortionInfoWithBlobs result(PortionInfo, CachedBatch);
-    result.PortionInfo.Records.clear();
-    std::optional bBuilder;
-    for (auto& rec : PortionInfo.Records) {
-        auto field = currentSchema->GetFieldByColumnIdVerified(rec.ColumnId);
-
-        const TString blobOriginal = GetBlobByRangeVerified(rec.ColumnId, rec.Chunk);
-        {
-            auto rb = NArrow::TStatusValidator::GetValid(currentSchema->GetColumnLoaderVerified(rec.ColumnId)->Apply(blobOriginal));
-            auto columnSaver = currentSchema->GetColumnSaver(rec.ColumnId, saverContext);
-            const TString newBlob = columnSaver.Apply(rb);
-            if (newBlob.size() >= TPortionInfo::BLOB_BYTES_LIMIT) {
-                return {};
-            }
-            if (!bBuilder || result.GetBlobs().back().GetSize() + newBlob.size() >= TPortionInfo::BLOB_BYTES_LIMIT) {
-                bBuilder = result.StartBlob();
-            }
-            Y_ABORT_UNLESS(rb);
-            Y_ABORT_UNLESS(rb->num_columns() == 1);
-
-            bBuilder->AddChunk(std::make_shared(rec, newBlob));
+TPortionInfoWithBlobs TPortionInfoWithBlobs::BuildByBlobs(std::vector&& chunks, const TPortionInfo& basePortion,
+    const std::shared_ptr& operators) {
+    TPortionInfoWithBlobs result(basePortion.CopyBeforeChunksRebuild());
+    for (auto&& blob : chunks) {
+        auto storage = operators->GetOperatorVerified(blob.GetGroupName());
+        auto blobInfo = result.StartBlob(storage);
+        for (auto&& chunk : blob.GetChunks()) {
+            blobInfo.AddChunk(chunk);
         }
     }
-    const auto pred = [](const TColumnRecord& l, const TColumnRecord& r) {
-        return l.GetAddress() < r.GetAddress();
-    };
-    std::sort(result.PortionInfo.Records.begin(), result.PortionInfo.Records.end(), pred);
-
+    result.GetPortionInfo().ReorderChunks();
     return result;
 }
 
@@ -180,7 +142,7 @@ std::vector> TPortionInfoWithBlobs::GetEntity
     }
     std::vector> result;
     for (auto&& i : sortedChunks) {
-        AFL_VERIFY(i.second->GetChunkIdx() == result.size())("idx", i.second->GetChunkIdx())("size", result.size());
+        AFL_VERIFY(i.second->GetChunkIdxVerified() == result.size())("idx", i.second->GetChunkIdxVerified())("size", result.size());
         result.emplace_back(i.second);
     }
     return result;
@@ -204,4 +166,76 @@ bool TPortionInfoWithBlobs::ExtractColumnChunks(const ui32 columnId, std::vector
     std::swap(chunksLocal, chunks);
     return true;
 }
+
+void TPortionInfoWithBlobs::FillStatistics(const TIndexInfo& index) {
+    NStatistics::TPortionStorage storage;
+    for (auto&& i : index.GetStatisticsByName()) {
+        THashMap>> data;
+        for (auto&& entityId : i.second->GetEntityIds()) {
+            data.emplace(entityId, GetEntityChunks(entityId));
+        }
+        i.second->FillStatisticsData(data, storage, index);
+    }
+    PortionInfo.SetStatisticsStorage(std::move(storage));
+}
+
+TPortionInfoWithBlobs TPortionInfoWithBlobs::SyncPortion(TPortionInfoWithBlobs&& source,
+    const ISnapshotSchema::TPtr& from, const ISnapshotSchema::TPtr& to, const TString& targetTier, const std::shared_ptr& storages,
+    std::shared_ptr counters) {
+    if (from->GetVersion() == to->GetVersion() && targetTier == source.GetPortionInfo().GetTierNameDef(IStoragesManager::DefaultStorageId)) {
+        return std::move(source);
+    }
+    NYDBTest::TControllers::GetColumnShardController()->OnPortionActualization(source.PortionInfo);
+    auto pages = source.PortionInfo.BuildPages();
+    std::vector pageSizes;
+    for (auto&& p : pages) {
+        pageSizes.emplace_back(p.GetRecordsCount());
+    }
+    THashMap>> columnChunks;
+    for (auto&& i : source.Blobs) {
+        for (auto&& c : i.GetChunks()) {
+            columnChunks[c.first.GetColumnId()].emplace_back(c.second);
+        }
+    }
+
+    THashMap>> entityChunksNew;
+    for (auto&& i : to->GetIndexInfo().GetColumnIds()) {
+        auto it = columnChunks.find(i);
+        std::vector> newChunks;
+        if (it != columnChunks.end()) {
+            newChunks = to->GetIndexInfo().ActualizeColumnData(it->second, from->GetIndexInfo(), i);
+        } else {
+            newChunks = to->GetIndexInfo().MakeEmptyChunks(i, pageSizes, to->GetIndexInfo().GetColumnFeaturesVerified(i));
+        }
+        AFL_VERIFY(entityChunksNew.emplace(i, std::move(newChunks)).second);
+    }
+
+    for (auto&& i : to->GetIndexInfo().GetIndexes()) {
+        if (from->GetIndexInfo().HasIndexId(i.first)) {
+            continue;
+        }
+        to->GetIndexInfo().AppendIndex(entityChunksNew, i.first);
+    }
+
+    auto schemaTo = std::make_shared(to, std::make_shared());
+    TGeneralSerializedSlice slice(entityChunksNew, schemaTo, counters);
+    const NSplitter::TEntityGroups groups = to->GetIndexInfo().GetEntityGroupsByStorageId(targetTier, *storages);
+    TPortionInfoWithBlobs result = TPortionInfoWithBlobs::BuildByBlobs(slice.GroupChunksByBlobs(groups), source.PortionInfo, storages);
+    result.GetPortionInfo().SetMinSnapshotDeprecated(to->GetSnapshot());
+    result.GetPortionInfo().SetSchemaVersion(to->GetVersion());
+    result.GetPortionInfo().MutableMeta().SetTierName(targetTier);
+
+    NStatistics::TPortionStorage storage;
+    for (auto&& i : to->GetIndexInfo().GetStatisticsByName()) {
+        auto it = from->GetIndexInfo().GetStatisticsByName().find(i.first);
+        if (it != from->GetIndexInfo().GetStatisticsByName().end()) {
+            i.second->CopyData(it->second.GetCursorVerified(), source.PortionInfo.GetMeta().GetStatisticsStorage(), storage);
+        } else {
+            i.second->FillStatisticsData(entityChunksNew, storage, to->GetIndexInfo());
+        }
+    }
+    result.PortionInfo.MutableMeta().ResetStatisticsStorage(std::move(storage));
+    return result;
+}
+
 }
diff --git a/ydb/core/tx/columnshard/engines/portions/with_blobs.h b/ydb/core/tx/columnshard/engines/portions/with_blobs.h
index 1a7a6b7192cb..83e2dc68fda8 100644
--- a/ydb/core/tx/columnshard/engines/portions/with_blobs.h
+++ b/ydb/core/tx/columnshard/engines/portions/with_blobs.h
@@ -1,11 +1,17 @@
 #pragma once
 #include "portion_info.h"
-#include 
-#include 
 #include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
 
 namespace NKikimr::NOlap {
 
+class TVersionedIndex;
+
 class TPortionInfoWithBlobs {
 public:
     class TBlobInfo {
@@ -13,26 +19,36 @@ class TPortionInfoWithBlobs {
         using TBlobChunks = std::map>;
         YDB_READONLY(ui64, Size, 0);
         YDB_READONLY_DEF(TBlobChunks, Chunks);
+        YDB_READONLY_DEF(std::shared_ptr, Operator);
         std::vector> ChunksOrdered;
         mutable std::optional ResultBlob;
         void AddChunk(TPortionInfoWithBlobs& owner, const std::shared_ptr& chunk);
         void RestoreChunk(const TPortionInfoWithBlobs& owner, const std::shared_ptr& chunk);
 
     public:
+        TBlobInfo(const std::shared_ptr& bOperator)
+            : Operator(bOperator)
+        {
+
+        }
+
         class TBuilder {
         private:
             TBlobInfo* OwnerBlob;
             TPortionInfoWithBlobs* OwnerPortion;
-
         public:
             TBuilder(TBlobInfo& blob, TPortionInfoWithBlobs& portion)
                 : OwnerBlob(&blob)
                 , OwnerPortion(&portion) {
             }
+            ui64 GetSize() const {
+                return OwnerBlob->GetSize();
+            }
+
             void AddChunk(const std::shared_ptr& chunk) {
                 return OwnerBlob->AddChunk(*OwnerPortion, chunk);
             }
-            void RestoreChunk(const std::shared_ptr& chunk) {
+            void RestoreChunk(const std::shared_ptr& chunk) {
                 OwnerBlob->RestoreChunk(*OwnerPortion, chunk);
             }
         };
@@ -71,29 +87,40 @@ class TPortionInfoWithBlobs {
         PortionInfo = portionInfo;
     }
 
-    TBlobInfo::TBuilder StartBlob() {
-        Blobs.emplace_back(TBlobInfo());
+    TBlobInfo::TBuilder StartBlob(const std::shared_ptr& bOperator) {
+        Blobs.emplace_back(TBlobInfo(bOperator));
         return TBlobInfo::TBuilder(Blobs.back(), *this);
     }
 
 public:
-    static std::vector RestorePortions(const std::vector& portions, THashMap& blobs);
-    static TPortionInfoWithBlobs RestorePortion(const TPortionInfo& portions, THashMap& blobs);
+    void InitBatchCached(const std::shared_ptr& batch) {
+        if (!batch) {
+            return;
+        }
+        CachedBatch = batch;
+    }
+
+    static std::vector RestorePortions(const std::vector& portions, NBlobOperations::NRead::TCompositeReadBlobs& blobs,
+        const TVersionedIndex& tables, const std::shared_ptr& operators);
+    static TPortionInfoWithBlobs RestorePortion(const TPortionInfo& portion, NBlobOperations::NRead::TCompositeReadBlobs& blobs,
+        const TIndexInfo& indexInfo, const std::shared_ptr& operators);
 
     std::shared_ptr GetBatch(const ISnapshotSchema::TPtr& data, const ISnapshotSchema& result, const std::set& columnNames = {}) const;
+    static TPortionInfoWithBlobs SyncPortion(TPortionInfoWithBlobs&& source,
+        const ISnapshotSchema::TPtr& from, const ISnapshotSchema::TPtr& to, const TString& targetTier, const std::shared_ptr& storages,
+        std::shared_ptr counters);
 
     std::vector> GetEntityChunks(const ui32 entityId) const;
 
     bool ExtractColumnChunks(const ui32 columnId, std::vector& records, std::vector>& chunks);
 
-    ui64 GetSize() const {
-        return PortionInfo.BlobsBytes();
-    }
+    void FillStatistics(const TIndexInfo& index);
 
-    static TPortionInfoWithBlobs BuildByBlobs(std::vector>>& chunksByBlobs, std::shared_ptr batch, const ui64 granule, const TSnapshot& snapshot,
-                                              const std::shared_ptr& bStorageOperator);
+    static TPortionInfoWithBlobs BuildByBlobs(std::vector&& chunks,
+        std::shared_ptr batch, const ui64 granule, const ui64 schemaVersion, const TSnapshot& snapshot, const std::shared_ptr& operators);
 
-    std::optional ChangeSaver(ISnapshotSchema::TPtr currentSchema, const TSaverContext& saverContext) const;
+    static TPortionInfoWithBlobs BuildByBlobs(std::vector&& chunks, const TPortionInfo& basePortion,
+        const std::shared_ptr& operators);
 
     const TString& GetBlobByRangeVerified(const ui32 columnId, const ui32 chunkId) const {
         for (auto&& b : Blobs) {
diff --git a/ydb/core/tx/columnshard/engines/portions/ya.make b/ydb/core/tx/columnshard/engines/portions/ya.make
index 7a6c96a9a8a2..96254fce4299 100644
--- a/ydb/core/tx/columnshard/engines/portions/ya.make
+++ b/ydb/core/tx/columnshard/engines/portions/ya.make
@@ -6,12 +6,14 @@ SRCS(
     with_blobs.cpp
     meta.cpp
     common.cpp
+    index_chunk.cpp
 )
 
 PEERDIR(
     ydb/core/tx/columnshard/engines/scheme
     ydb/core/tx/columnshard/splitter
     ydb/core/tx/columnshard/common
+    ydb/core/tx/columnshard/data_sharing/protos
     ydb/core/tablet_flat
 )
 
diff --git a/ydb/core/tx/columnshard/engines/predicate/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/predicate/CMakeLists.darwin-arm64.txt
index 0c1f4b43211f..3246d3a047d5 100644
--- a/ydb/core/tx/columnshard/engines/predicate/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/columnshard/engines/predicate/CMakeLists.darwin-arm64.txt
@@ -8,6 +8,9 @@
 
 
 add_library(columnshard-engines-predicate)
+target_compile_options(columnshard-engines-predicate PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
 target_link_libraries(columnshard-engines-predicate PUBLIC
   contrib-libs-cxxsupp
   yutil
diff --git a/ydb/core/tx/columnshard/engines/predicate/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/engines/predicate/CMakeLists.darwin-x86_64.txt
index 0c1f4b43211f..3246d3a047d5 100644
--- a/ydb/core/tx/columnshard/engines/predicate/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/predicate/CMakeLists.darwin-x86_64.txt
@@ -8,6 +8,9 @@
 
 
 add_library(columnshard-engines-predicate)
+target_compile_options(columnshard-engines-predicate PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
 target_link_libraries(columnshard-engines-predicate PUBLIC
   contrib-libs-cxxsupp
   yutil
diff --git a/ydb/core/tx/columnshard/engines/predicate/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/engines/predicate/CMakeLists.linux-aarch64.txt
index 1fedfdeb94a5..54501ee5fdb6 100644
--- a/ydb/core/tx/columnshard/engines/predicate/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/columnshard/engines/predicate/CMakeLists.linux-aarch64.txt
@@ -8,6 +8,9 @@
 
 
 add_library(columnshard-engines-predicate)
+target_compile_options(columnshard-engines-predicate PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
 target_link_libraries(columnshard-engines-predicate PUBLIC
   contrib-libs-linux-headers
   contrib-libs-cxxsupp
diff --git a/ydb/core/tx/columnshard/engines/predicate/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/engines/predicate/CMakeLists.linux-x86_64.txt
index 1fedfdeb94a5..54501ee5fdb6 100644
--- a/ydb/core/tx/columnshard/engines/predicate/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/predicate/CMakeLists.linux-x86_64.txt
@@ -8,6 +8,9 @@
 
 
 add_library(columnshard-engines-predicate)
+target_compile_options(columnshard-engines-predicate PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
 target_link_libraries(columnshard-engines-predicate PUBLIC
   contrib-libs-linux-headers
   contrib-libs-cxxsupp
diff --git a/ydb/core/tx/columnshard/engines/predicate/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/engines/predicate/CMakeLists.windows-x86_64.txt
index 0c1f4b43211f..3246d3a047d5 100644
--- a/ydb/core/tx/columnshard/engines/predicate/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/predicate/CMakeLists.windows-x86_64.txt
@@ -8,6 +8,9 @@
 
 
 add_library(columnshard-engines-predicate)
+target_compile_options(columnshard-engines-predicate PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
 target_link_libraries(columnshard-engines-predicate PUBLIC
   contrib-libs-cxxsupp
   yutil
diff --git a/ydb/core/tx/columnshard/engines/predicate/filter.cpp b/ydb/core/tx/columnshard/engines/predicate/filter.cpp
index 77816507e0c1..10d66a832c1a 100644
--- a/ydb/core/tx/columnshard/engines/predicate/filter.cpp
+++ b/ydb/core/tx/columnshard/engines/predicate/filter.cpp
@@ -84,6 +84,15 @@ bool TPKRangesFilter::IsPortionInUsage(const TPortionInfo& info, const TIndexInf
     return SortedRanges.empty();
 }
 
+bool TPKRangesFilter::IsPortionInPartialUsage(const NArrow::TReplaceKey& start, const NArrow::TReplaceKey& end, const TIndexInfo& indexInfo) const {
+    for (auto&& i : SortedRanges) {
+        if (i.IsPortionInPartialUsage(start, end, indexInfo)) {
+            return true;
+        }
+    }
+    return false;
+}
+
 TPKRangesFilter::TPKRangesFilter(const bool reverse)
     : ReverseFlag(reverse)
 {
diff --git a/ydb/core/tx/columnshard/engines/predicate/filter.h b/ydb/core/tx/columnshard/engines/predicate/filter.h
index d9448d438081..6d30adfdc227 100644
--- a/ydb/core/tx/columnshard/engines/predicate/filter.h
+++ b/ydb/core/tx/columnshard/engines/predicate/filter.h
@@ -38,6 +38,7 @@ class TPKRangesFilter {
     }
 
     bool IsPortionInUsage(const TPortionInfo& info, const TIndexInfo& indexInfo) const;
+    bool IsPortionInPartialUsage(const NArrow::TReplaceKey& start, const NArrow::TReplaceKey& end, const TIndexInfo& indexInfo) const;
 
     NArrow::TColumnFilter BuildFilter(const arrow::Datum& data) const;
 
diff --git a/ydb/core/tx/columnshard/engines/predicate/range.cpp b/ydb/core/tx/columnshard/engines/predicate/range.cpp
index 53e10174b82d..1025fa055ca5 100644
--- a/ydb/core/tx/columnshard/engines/predicate/range.cpp
+++ b/ydb/core/tx/columnshard/engines/predicate/range.cpp
@@ -59,6 +59,37 @@ bool TPKRangeFilter::IsPortionInUsage(const TPortionInfo& info, const TIndexInfo
     return true;
 }
 
+bool TPKRangeFilter::IsPortionInPartialUsage(const NArrow::TReplaceKey& start, const NArrow::TReplaceKey& end, const TIndexInfo& indexInfo) const {
+    bool startUsage = false;
+    bool endUsage = false;
+    if (auto from = PredicateFrom.ExtractKey(indexInfo.GetPrimaryKey())) {
+        AFL_VERIFY(from->Size() <= start.Size());
+        if (PredicateFrom.IsInclude()) {
+            startUsage = std::is_lt(start.ComparePartNotNull(*from, from->Size()));
+        } else {
+            startUsage = std::is_lteq(start.ComparePartNotNull(*from, from->Size()));
+        }
+    } else {
+        startUsage = true;
+    }
+
+    if (auto to = PredicateTo.ExtractKey(indexInfo.GetPrimaryKey())) {
+        AFL_VERIFY(to->Size() <= end.Size());
+        if (PredicateTo.IsInclude()) {
+            endUsage = std::is_gt(end.ComparePartNotNull(*to, to->Size()));
+        } else {
+            endUsage = std::is_gteq(end.ComparePartNotNull(*to, to->Size()));
+        }
+    } else {
+        endUsage = true;
+    }
+
+//    AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("start", start.DebugString())("end", end.DebugString())("from", PredicateFrom.DebugString())("to", PredicateTo.DebugString())
+//        ("start_usage", startUsage)("end_usage", endUsage);
+
+    return endUsage || startUsage;
+}
+
 std::optional TPKRangeFilter::Build(TPredicateContainer&& from, TPredicateContainer&& to) {
     if (!from.CrossRanges(to)) {
         AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "cannot_build_predicate_range")("error", "predicates from/to not intersected");
diff --git a/ydb/core/tx/columnshard/engines/predicate/range.h b/ydb/core/tx/columnshard/engines/predicate/range.h
index 7e23da4f13d6..ff84f35408a3 100644
--- a/ydb/core/tx/columnshard/engines/predicate/range.h
+++ b/ydb/core/tx/columnshard/engines/predicate/range.h
@@ -41,6 +41,7 @@ class TPKRangeFilter {
     NArrow::TColumnFilter BuildFilter(const arrow::Datum& data) const;
 
     bool IsPortionInUsage(const TPortionInfo& info, const TIndexInfo& indexInfo) const;
+    bool IsPortionInPartialUsage(const NArrow::TReplaceKey& start, const NArrow::TReplaceKey& end, const TIndexInfo& indexInfo) const;
 
     std::set GetColumnIds(const TIndexInfo& indexInfo) const;
     TString DebugString() const;
diff --git a/ydb/core/tx/columnshard/engines/reader/abstract/abstract.cpp b/ydb/core/tx/columnshard/engines/reader/abstract/abstract.cpp
new file mode 100644
index 000000000000..04715867e012
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/abstract/abstract.cpp
@@ -0,0 +1,9 @@
+#include "abstract.h"
+
+namespace NKikimr::NOlap::NReader {
+
+const TReadStats& TScanIteratorBase::GetStats() const {
+    return Default();
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/reader/abstract/abstract.h b/ydb/core/tx/columnshard/engines/reader/abstract/abstract.h
new file mode 100644
index 000000000000..2681626b6d4f
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/abstract/abstract.h
@@ -0,0 +1,45 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader {
+
+class TScanIteratorBase {
+protected:
+    virtual void DoOnSentDataFromInterval(const ui32 /*intervalIdx*/) const {
+
+    }
+public:
+    virtual ~TScanIteratorBase() = default;
+
+    virtual void Apply(IDataTasksProcessor::ITask::TPtr /*processor*/) {
+
+    }
+
+    virtual TConclusionStatus Start() = 0;
+
+    virtual const TReadStats& GetStats() const;
+
+    void OnSentDataFromInterval(const std::optional intervalIdx) const {
+        if (intervalIdx) {
+            DoOnSentDataFromInterval(*intervalIdx);
+        }
+    }
+
+    virtual std::optional GetAvailableResultsCount() const {
+        return {};
+    }
+    virtual bool Finished() const = 0;
+    virtual TConclusion> GetBatch() = 0;
+    virtual void PrepareResults() {
+
+    }
+    virtual TConclusion ReadNextInterval() { return false; }
+    virtual TString DebugString(const bool verbose = false) const {
+        Y_UNUSED(verbose);
+        return "NO_DATA";
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/abstract/constructor.cpp b/ydb/core/tx/columnshard/engines/reader/abstract/constructor.cpp
new file mode 100644
index 000000000000..dba163fcfd15
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/abstract/constructor.cpp
@@ -0,0 +1,80 @@
+#include "constructor.h"
+#include 
+
+namespace NKikimr::NOlap::NReader {
+
+NKikimr::TConclusionStatus IScannerConstructor::ParseProgram(const TVersionedIndex* vIndex,
+    const NKikimrSchemeOp::EOlapProgramType programType, const TString& serializedProgram, TReadDescription& read, const IColumnResolver& columnResolver) const {
+    AFL_VERIFY(!read.ColumnIds.size() || !read.ColumnNames.size());
+    std::vector names;
+    std::set namesChecker;
+    for (auto&& i : read.ColumnIds) {
+        names.emplace_back(columnResolver.GetColumnName(i));
+        AFL_VERIFY(namesChecker.emplace(names.back()).second);
+    }
+    if (serializedProgram.empty()) {
+        for (auto&& i : read.ColumnNames) {
+            names.emplace_back(i);
+            AFL_VERIFY(namesChecker.emplace(names.back()).second);
+        }
+        TProgramContainer container;
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "overriden_columns")("columns", JoinSeq(",", names));
+        container.OverrideProcessingColumns(std::vector(names.begin(), names.end()));
+        read.SetProgram(std::move(container));
+        return TConclusionStatus::Success();
+    } else {
+        TProgramContainer ssaProgram;
+        TString error;
+        if (!ssaProgram.Init(columnResolver, programType, serializedProgram, error)) {
+            return TConclusionStatus::Fail(TStringBuilder() << "Can't parse SsaProgram: " << error);
+        }
+
+        if (names.size()) {
+            std::set programColumns;
+            for (auto&& i : ssaProgram.GetSourceColumns()) {
+                if (!i.second.IsGenerated()) {
+                    programColumns.emplace(i.second.GetColumnName());
+                }
+            }
+            //its possible dont use columns from filter where pk field compare with null and remove from PKFilter and program, but stay in kqp columns request
+            if (vIndex) {
+                for (auto&& i : vIndex->GetSchema(read.GetSnapshot())->GetIndexInfo().GetReplaceKey()->field_names()) {
+                    const TString cId(i.data(), i.size());
+                    namesChecker.erase(cId);
+                    programColumns.erase(cId);
+                }
+            }
+
+            const auto getDiffColumnsMessage = [&]() {
+                return TStringBuilder() << "ssa program has different columns with kqp request: kqp_columns=" << JoinSeq(",", namesChecker) << " vs program_columns=" << JoinSeq(",", programColumns);
+            };
+
+            if (namesChecker.size() != programColumns.size()) {
+                return TConclusionStatus::Fail(getDiffColumnsMessage());
+            }
+            for (auto&& i : namesChecker) {
+                if (!programColumns.contains(i)) {
+                    return TConclusionStatus::Fail(getDiffColumnsMessage());
+                }
+            }
+        }
+
+        read.SetProgram(std::move(ssaProgram));
+
+        return TConclusionStatus::Success();
+    }
+}
+
+NKikimr::TConclusion> IScannerConstructor::BuildReadMetadata(const NColumnShard::TColumnShard* self, const TReadDescription& read) const {
+    TConclusion> result = DoBuildReadMetadata(self, read);
+    if (result.IsFail()) {
+        return result;
+    } else if (!*result) {
+        return result.DetachResult();
+    } else {
+        (*result)->Limit = ItemsLimit;
+        return result.DetachResult();
+    }
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/reader/abstract/constructor.h b/ydb/core/tx/columnshard/engines/reader/abstract/constructor.h
new file mode 100644
index 000000000000..584ea78aa5a0
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/abstract/constructor.h
@@ -0,0 +1,37 @@
+#pragma once
+#include "read_metadata.h"
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader {
+
+class IScannerConstructor {
+protected:
+    const TSnapshot Snapshot;
+    const ui64 ItemsLimit;
+    const bool IsReverse;
+    TConclusionStatus ParseProgram(const TVersionedIndex* vIndex, const NKikimrSchemeOp::EOlapProgramType programType,
+        const TString& serializedProgram, TReadDescription& read, const IColumnResolver& columnResolver) const;
+private:
+    virtual TConclusion> DoBuildReadMetadata(const NColumnShard::TColumnShard* self, const TReadDescription& read) const = 0;
+
+public:
+    virtual ~IScannerConstructor() = default;
+
+    IScannerConstructor(const TSnapshot& snapshot, const ui64 itemsLimit, const bool reverse)
+        : Snapshot(snapshot)
+        , ItemsLimit(itemsLimit)
+        , IsReverse(reverse)
+    {
+
+    }
+
+    virtual TConclusionStatus ParseProgram(const TVersionedIndex* vIndex, const NKikimrTxDataShard::TEvKqpScan& proto, TReadDescription& read) const = 0;
+    virtual std::vector GetPrimaryKeyScheme(const NColumnShard::TColumnShard* self) const = 0;
+    TConclusion> BuildReadMetadata(const NColumnShard::TColumnShard* self, const TReadDescription& read) const;
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/reader/abstract/read_context.cpp b/ydb/core/tx/columnshard/engines/reader/abstract/read_context.cpp
new file mode 100644
index 000000000000..b54de1722f16
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/abstract/read_context.cpp
@@ -0,0 +1,9 @@
+#include "read_context.h"
+
+namespace NKikimr::NOlap::NReader {
+
+IDataReader::IDataReader(const std::shared_ptr& context)
+    : Context(context) {
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/read_context.h b/ydb/core/tx/columnshard/engines/reader/abstract/read_context.h
similarity index 80%
rename from ydb/core/tx/columnshard/engines/reader/read_context.h
rename to ydb/core/tx/columnshard/engines/reader/abstract/read_context.h
index bc5d5fa1ba86..fbcdab4d8622 100644
--- a/ydb/core/tx/columnshard/engines/reader/read_context.h
+++ b/ydb/core/tx/columnshard/engines/reader/abstract/read_context.h
@@ -1,16 +1,13 @@
 #pragma once
-#include "conveyor_task.h"
 #include "read_metadata.h"
-#include 
-#include 
-#include 
+#include 
 #include 
-#include 
 #include 
-#include 
-#include 
+#include 
+#include 
+#include 
 
-namespace NKikimr::NOlap {
+namespace NKikimr::NOlap::NReader {
 
 class TComputeShardingPolicy {
 private:
@@ -39,20 +36,6 @@ class TComputeShardingPolicy {
     }
 };
 
-class TActorBasedMemoryAccesor: public TScanMemoryLimiter::IMemoryAccessor {
-private:
-    using TBase = TScanMemoryLimiter::IMemoryAccessor;
-    const NActors::TActorIdentity OwnerId;
-protected:
-    virtual void DoOnBufferReady() override;
-public:
-    TActorBasedMemoryAccesor(const NActors::TActorIdentity& ownerId, const TString& limiterName)
-        : TBase(TMemoryLimitersController::GetLimiter(limiterName))
-        , OwnerId(ownerId) {
-
-    }
-};
-
 class TReadContext {
 private:
     YDB_READONLY_DEF(std::shared_ptr, StoragesManager);
@@ -62,8 +45,15 @@ class TReadContext {
     const TActorId ScanActorId;
     const TActorId ResourceSubscribeActorId;
     const TActorId ReadCoordinatorActorId;
-    const NOlap::TComputeShardingPolicy ComputeShardingPolicy;
+    const TComputeShardingPolicy ComputeShardingPolicy;
 public:
+    template 
+    std::shared_ptr GetReadMetadataPtrVerifiedAs() const {
+        auto result = dynamic_pointer_cast(ReadMetadata);
+        AFL_VERIFY(result);
+        return result;
+    }
+
     bool IsReverse() const {
         return ReadMetadata->IsDescSorted();
     }
@@ -97,7 +87,7 @@ class TReadContext {
     }
 
     TReadContext(const std::shared_ptr& storagesManager, const NColumnShard::TConcreteScanCounters& counters, const TReadMetadataBase::TConstPtr& readMetadata,
-        const TActorId& scanActorId, const TActorId& resourceSubscribeActorId, const TActorId& readCoordinatorActorId, const NOlap::TComputeShardingPolicy& computeShardingPolicy)
+        const TActorId& scanActorId, const TActorId& resourceSubscribeActorId, const TActorId& readCoordinatorActorId, const TComputeShardingPolicy& computeShardingPolicy)
         : StoragesManager(storagesManager)
         , Counters(counters)
         , ReadMetadata(readMetadata)
@@ -114,15 +104,24 @@ class TReadContext {
 class IDataReader {
 protected:
     std::shared_ptr Context;
+    bool Started = false;
+    virtual TConclusionStatus DoStart() = 0;
     virtual TString DoDebugString(const bool verbose) const = 0;
     virtual void DoAbort() = 0;
     virtual bool DoIsFinished() const = 0;
     virtual std::vector DoExtractReadyResults(const int64_t maxRowsInBatch) = 0;
-    virtual bool DoReadNextInterval() = 0;
+    virtual TConclusion DoReadNextInterval() = 0;
 public:
-    IDataReader(const std::shared_ptr& context);
+    IDataReader(const std::shared_ptr& context);
     virtual ~IDataReader() = default;
 
+    TConclusionStatus Start() {
+        AFL_VERIFY(!Started);
+        Started = true;
+        return DoStart();
+    }
+    virtual void OnSentDataFromInterval(const ui32 intervalIdx) const = 0;
+
     const TReadContext& GetContext() const {
         return *Context;
     }
@@ -135,7 +134,8 @@ class IDataReader {
         return Context->GetCounters();
     }
 
-    void Abort() {
+    void Abort(const TString& reason) {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "scan_aborted")("reason", reason);
         return DoAbort();
     }
 
@@ -166,7 +166,7 @@ class IDataReader {
         sb << DoDebugString(verbose);
         return sb;
     }
-    bool ReadNextInterval() {
+    [[nodiscard]] TConclusion ReadNextInterval() {
         return DoReadNextInterval();
     }
 };
diff --git a/ydb/core/tx/columnshard/engines/reader/abstract/read_metadata.cpp b/ydb/core/tx/columnshard/engines/reader/abstract/read_metadata.cpp
new file mode 100644
index 000000000000..e6fc29578f1c
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/abstract/read_metadata.cpp
@@ -0,0 +1,31 @@
+#include "read_metadata.h"
+#include 
+
+namespace NKikimr::NOlap::NReader {
+
+TDataStorageAccessor::TDataStorageAccessor(const std::unique_ptr& insertTable,
+                                const std::unique_ptr& index)
+    : InsertTable(insertTable)
+    , Index(index)
+{}
+
+std::shared_ptr TDataStorageAccessor::Select(const TReadDescription& readDescription) const {
+    if (readDescription.ReadNothing) {
+        return std::make_shared();
+    }
+    return Index->Select(readDescription.PathId,
+                            readDescription.GetSnapshot(),
+                            readDescription.PKRangesFilter);
+}
+
+ISnapshotSchema::TPtr TReadMetadataBase::GetLoadSchemaVerified(const TPortionInfo& portion) const {
+    auto schema = portion.GetSchema(GetIndexVersions());
+    AFL_VERIFY(schema);
+    return schema;
+}
+
+std::vector TDataStorageAccessor::GetCommitedBlobs(const TReadDescription& readDescription, const std::shared_ptr& pkSchema) const {
+    return std::move(InsertTable->Read(readDescription.PathId, readDescription.GetSnapshot(), pkSchema));
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/abstract/read_metadata.h b/ydb/core/tx/columnshard/engines/reader/abstract/read_metadata.h
new file mode 100644
index 000000000000..7d06dee3cb2a
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/abstract/read_metadata.h
@@ -0,0 +1,151 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+    class TPortionInfo;
+}
+namespace NKikimr::NOlap::NReader {
+
+class TScanIteratorBase;
+class TReadContext;
+
+class TDataStorageAccessor {
+private:
+    const std::unique_ptr& InsertTable;
+    const std::unique_ptr& Index;
+
+public:
+    TDataStorageAccessor(const std::unique_ptr& insertTable,
+                                 const std::unique_ptr& index);
+    std::shared_ptr Select(const TReadDescription& readDescription) const;
+    std::vector GetCommitedBlobs(const TReadDescription& readDescription, const std::shared_ptr& pkSchema) const;
+};
+
+// Holds all metadata that is needed to perform read/scan
+struct TReadMetadataBase {
+public:
+    enum class ESorting {
+        NONE = 0 /* "not_sorted" */,
+        ASC /* "ascending" */,
+        DESC /* "descending" */,
+    };
+private:
+    const ESorting Sorting = ESorting::ASC; // Sorting inside returned batches
+    std::optional PKRangesFilter;
+    TProgramContainer Program;
+    std::shared_ptr IndexVersionsPointer;
+    TSnapshot RequestSnapshot;
+protected:
+    std::shared_ptr ResultIndexSchema;
+    const TVersionedIndex& GetIndexVersions() const {
+        AFL_VERIFY(IndexVersionsPointer);
+        return *IndexVersionsPointer;
+    }
+public:
+    using TConstPtr = std::shared_ptr;
+
+    void SetPKRangesFilter(const TPKRangesFilter& value) {
+        Y_ABORT_UNLESS(IsSorted() && value.IsReverse() == IsDescSorted());
+        Y_ABORT_UNLESS(!PKRangesFilter);
+        PKRangesFilter = value;
+    }
+
+    const TPKRangesFilter& GetPKRangesFilter() const {
+        Y_ABORT_UNLESS(!!PKRangesFilter);
+        return *PKRangesFilter;
+    }
+
+    ISnapshotSchema::TPtr GetResultSchema() const {
+        return ResultIndexSchema;
+    }
+
+    ISnapshotSchema::TPtr GetLoadSchemaVerified(const TPortionInfo& porition) const;
+
+    std::shared_ptr GetBlobSchema(const ui64 version) const {
+        return GetIndexVersions().GetSchema(version)->GetIndexInfo().ArrowSchema();
+    }
+
+    const TIndexInfo& GetIndexInfo(const std::optional& version = {}) const {
+        if (version && version < RequestSnapshot) {
+            return GetIndexVersions().GetSchema(*version)->GetIndexInfo();
+        }
+        return ResultIndexSchema->GetIndexInfo();
+    }
+
+    TReadMetadataBase(const std::shared_ptr index, const ESorting sorting, const TProgramContainer& ssaProgram, const std::shared_ptr& schema, const TSnapshot& requestSnapshot)
+        : Sorting(sorting)
+        , Program(ssaProgram)
+        , IndexVersionsPointer(index)
+        , RequestSnapshot(requestSnapshot)
+        , ResultIndexSchema(schema)
+    {
+    }
+    virtual ~TReadMetadataBase() = default;
+
+    ui64 Limit = 0;
+
+    virtual void Dump(IOutputStream& out) const {
+        out << " predicate{" << (PKRangesFilter ? PKRangesFilter->DebugString() : "no_initialized") << "}"
+            << " " << Sorting << " sorted";
+    }
+
+    std::set GetProcessingColumnIds() const {
+        std::set result;
+        for (auto&& i : GetProgram().GetProcessingColumns()) {
+            result.emplace(ResultIndexSchema->GetIndexInfo().GetColumnId(i));
+        }
+        return result;
+    }
+    bool IsAscSorted() const { return Sorting == ESorting::ASC; }
+    bool IsDescSorted() const { return Sorting == ESorting::DESC; }
+    bool IsSorted() const { return IsAscSorted() || IsDescSorted(); }
+
+    virtual std::unique_ptr StartScan(const std::shared_ptr& readContext) const = 0;
+    virtual std::vector GetKeyYqlSchema() const = 0;
+
+    // TODO:  can this only be done for base class?
+    friend IOutputStream& operator << (IOutputStream& out, const TReadMetadataBase& meta) {
+        meta.Dump(out);
+        return out;
+    }
+
+    const TProgramContainer& GetProgram() const {
+        return Program;
+    }
+
+    const TSnapshot& GetRequestSnapshot() const {
+        return RequestSnapshot;
+    }
+
+    std::shared_ptr GetReplaceKey() const {
+        return ResultIndexSchema->GetIndexInfo().GetReplaceKey();
+    }
+
+    std::optional GetColumnNameDef(const ui32 columnId) const {
+        if (!ResultIndexSchema) {
+            return {};
+        }
+        auto f = ResultIndexSchema->GetFieldByColumnIdOptional(columnId);
+        if (!f) {
+            return {};
+        }
+        return f->name();
+    }
+
+    std::optional GetEntityName(const ui32 entityId) const {
+        if (!ResultIndexSchema) {
+            return {};
+        }
+        auto result = ResultIndexSchema->GetIndexInfo().GetColumnNameOptional(entityId);
+        if (!!result) {
+            return result;
+        }
+        return ResultIndexSchema->GetIndexInfo().GetIndexNameOptional(entityId);
+    }
+
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/abstract/ya.make b/ydb/core/tx/columnshard/engines/reader/abstract/ya.make
new file mode 100644
index 000000000000..9ad540de1170
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/abstract/ya.make
@@ -0,0 +1,20 @@
+LIBRARY()
+
+SRCS(
+    abstract.cpp
+    read_metadata.cpp
+    constructor.cpp
+    read_context.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/scheme/versions
+    ydb/core/tx/columnshard/engines/insert_table
+    ydb/core/tx/program
+    ydb/core/protos
+    ydb/core/tx/columnshard/data_sharing/protos
+)
+
+GENERATE_ENUM_SERIALIZATION(read_metadata.h)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/reader/actor/actor.cpp b/ydb/core/tx/columnshard/engines/reader/actor/actor.cpp
new file mode 100644
index 000000000000..878153f52baf
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/actor/actor.cpp
@@ -0,0 +1,415 @@
+#include "actor.h"
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader {
+constexpr i64 DEFAULT_READ_AHEAD_BYTES = (i64)2 * 1024 * 1024 * 1024;
+constexpr TDuration SCAN_HARD_TIMEOUT = TDuration::Minutes(10);
+constexpr TDuration SCAN_HARD_TIMEOUT_GAP = TDuration::Seconds(5);
+
+namespace {
+class TInFlightGuard: NNonCopyable::TNonCopyable {
+private:
+    static inline TAtomicCounter InFlightGlobal = 0;
+    i64 InFlightGuarded = 0;
+public:
+    ~TInFlightGuard() {
+        Return(InFlightGuarded);
+    }
+
+    bool CanTake() {
+        return InFlightGlobal.Val() < DEFAULT_READ_AHEAD_BYTES || !InFlightGuarded;
+    }
+
+    void Take(const ui64 bytes) {
+        InFlightGlobal.Add(bytes);
+        InFlightGuarded += bytes;
+    }
+
+    void Return(const ui64 bytes) {
+        Y_ABORT_UNLESS(InFlightGlobal.Sub(bytes) >= 0);
+        InFlightGuarded -= bytes;
+        Y_ABORT_UNLESS(InFlightGuarded >= 0);
+    }
+};
+
+}
+
+void TColumnShardScan::PassAway() {
+    Send(ResourceSubscribeActorId, new TEvents::TEvPoisonPill);
+    Send(ReadCoordinatorActorId, new TEvents::TEvPoisonPill);
+    IActor::PassAway();
+}
+
+TColumnShardScan::TColumnShardScan(const TActorId& columnShardActorId, const TActorId& scanComputeActorId, const std::shared_ptr& storagesManager, 
+    const TComputeShardingPolicy& computeShardingPolicy, ui32 scanId, ui64 txId, ui32 scanGen, ui64 requestCookie, 
+    ui64 tabletId, TDuration timeout, const TReadMetadataBase::TConstPtr& readMetadataRange,
+    NKikimrDataEvents::EDataFormat dataFormat, const NColumnShard::TScanCounters& scanCountersPool)
+    : StoragesManager(storagesManager)
+    , ColumnShardActorId(columnShardActorId)
+    , ScanComputeActorId(scanComputeActorId)
+    , BlobCacheActorId(NBlobCache::MakeBlobCacheServiceId())
+    , ScanId(scanId)
+    , TxId(txId)
+    , ScanGen(scanGen)
+    , RequestCookie(requestCookie)
+    , DataFormat(dataFormat)
+    , TabletId(tabletId)
+    , ReadMetadataRange(readMetadataRange)
+    , Deadline(TInstant::Now() + (timeout ? timeout + SCAN_HARD_TIMEOUT_GAP : SCAN_HARD_TIMEOUT))
+    , ScanCountersPool(scanCountersPool)
+    , Stats(NTracing::TTraceClient::GetLocalClient("SHARD", ::ToString(TabletId)/*, "SCAN_TXID:" + ::ToString(TxId)*/))
+    , ComputeShardingPolicy(computeShardingPolicy)
+{
+    AFL_VERIFY(ReadMetadataRange);
+    KeyYqlSchema = ReadMetadataRange->GetKeyYqlSchema();
+}
+
+void TColumnShardScan::Bootstrap(const TActorContext& ctx) {
+    TLogContextGuard gLogging(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD_SCAN)
+        ("SelfId", SelfId())("TabletId", TabletId)("ScanId", ScanId)("TxId", TxId)("ScanGen", ScanGen)
+    );
+    auto g = Stats->MakeGuard("bootstrap");
+    ScanActorId = ctx.SelfID;
+    Schedule(Deadline, new TEvents::TEvWakeup);
+
+    Y_ABORT_UNLESS(!ScanIterator);
+    ResourceSubscribeActorId = ctx.Register(new NResourceBroker::NSubscribe::TActor(TabletId, SelfId()));
+    ReadCoordinatorActorId = ctx.Register(new NBlobOperations::NRead::TReadCoordinatorActor(TabletId, SelfId()));
+
+    std::shared_ptr context = std::make_shared(StoragesManager, ScanCountersPool,
+        ReadMetadataRange, SelfId(), ResourceSubscribeActorId, ReadCoordinatorActorId, ComputeShardingPolicy);
+    ScanIterator = ReadMetadataRange->StartScan(context);
+    auto startResult = ScanIterator->Start();
+    StartInstant = TMonotonic::Now();
+    if (!startResult) {
+        ACFL_ERROR("event", "BootstrapError")("error", startResult.GetErrorMessage());
+        SendScanError("scanner_start_error:" + startResult.GetErrorMessage());
+        Finish(NColumnShard::TScanCounters::EStatusFinish::ProblemOnStart);
+    } else {
+
+        // propagate self actor id // TODO: FlagSubscribeOnSession ?
+        Send(ScanComputeActorId, new NKqp::TEvKqpCompute::TEvScanInitActor(ScanId, ctx.SelfID, ScanGen, TabletId), IEventHandle::FlagTrackDelivery);
+
+        Become(&TColumnShardScan::StateScan);
+        ContinueProcessing();
+    }
+}
+
+void TColumnShardScan::HandleScan(NConveyor::TEvExecution::TEvTaskProcessedResult::TPtr& ev) {
+    --InFlightReads;
+    auto g = Stats->MakeGuard("task_result");
+    if (ev->Get()->GetErrorMessage()) {
+        ACFL_ERROR("event", "TEvTaskProcessedResult")("error", ev->Get()->GetErrorMessage());
+        SendScanError("task_error:" + ev->Get()->GetErrorMessage());
+        Finish(NColumnShard::TScanCounters::EStatusFinish::ConveyorInternalError);
+    } else {
+        ACFL_DEBUG("event", "TEvTaskProcessedResult");
+        auto t = static_pointer_cast(ev->Get()->GetResult());
+        Y_DEBUG_ABORT_UNLESS(dynamic_pointer_cast(ev->Get()->GetResult()));
+        if (!ScanIterator->Finished()) {
+            ScanIterator->Apply(t);
+        }
+    }
+    ContinueProcessing();
+}
+
+void TColumnShardScan::HandleScan(NKqp::TEvKqpCompute::TEvScanDataAck::TPtr& ev) {
+    auto g = Stats->MakeGuard("ack");
+    Y_ABORT_UNLESS(!AckReceivedInstant);
+    AckReceivedInstant = TMonotonic::Now();
+
+    Y_ABORT_UNLESS(ev->Get()->Generation == ScanGen);
+
+    ChunksLimiter = TChunksLimiter(ev->Get()->FreeSpace, ev->Get()->MaxChunksCount);
+    Y_ABORT_UNLESS(ev->Get()->MaxChunksCount == 1);
+    ACFL_DEBUG("event", "TEvScanDataAck")("info", ChunksLimiter.DebugString());
+    if (ScanIterator) {
+        if (!!ScanIterator->GetAvailableResultsCount() && !*ScanIterator->GetAvailableResultsCount()) {
+            ScanCountersPool.OnEmptyAck();
+        } else {
+            ScanCountersPool.OnNotEmptyAck();
+        }
+    }
+    ContinueProcessing();
+}
+
+void TColumnShardScan::HandleScan(NKqp::TEvKqp::TEvAbortExecution::TPtr& ev) noexcept {
+    auto& msg = ev->Get()->Record;
+    const TString reason = ev->Get()->GetIssues().ToOneLineString();
+
+    auto prio = msg.GetStatusCode() == NYql::NDqProto::StatusIds::SUCCESS ? NActors::NLog::PRI_DEBUG : NActors::NLog::PRI_WARN;
+    LOG_LOG_S(*TlsActivationContext, prio, NKikimrServices::TX_COLUMNSHARD_SCAN,
+        "Scan " << ScanActorId << " got AbortExecution"
+        << " txId: " << TxId << " scanId: " << ScanId << " gen: " << ScanGen << " tablet: " << TabletId
+        << " code: " << NYql::NDqProto::StatusIds_StatusCode_Name(msg.GetStatusCode())
+        << " reason: " << reason);
+
+    AbortReason = std::move(reason);
+    Finish(NColumnShard::TScanCounters::EStatusFinish::ExternalAbort);
+}
+
+void TColumnShardScan::HandleScan(TEvents::TEvUndelivered::TPtr& ev) {
+    ui32 eventType = ev->Get()->SourceType;
+    switch (eventType) {
+        case NKqp::TEvKqpCompute::TEvScanInitActor::EventType:
+            AbortReason = "init failed";
+            break;
+        case NKqp::TEvKqpCompute::TEvScanData::EventType:
+            AbortReason = "failed to send data batch";
+            break;
+    }
+
+    LOG_WARN_S(*TlsActivationContext, NKikimrServices::TX_COLUMNSHARD_SCAN,
+        "Scan " << ScanActorId << " undelivered event: " << eventType
+        << " txId: " << TxId << " scanId: " << ScanId << " gen: " << ScanGen << " tablet: " << TabletId
+        << " reason: " << ev->Get()->Reason
+        << " description: " << AbortReason);
+
+    Finish(NColumnShard::TScanCounters::EStatusFinish::UndeliveredEvent);
+}
+
+void TColumnShardScan::HandleScan(TEvents::TEvWakeup::TPtr& /*ev*/) {
+    LOG_ERROR_S(*TlsActivationContext, NKikimrServices::TX_COLUMNSHARD_SCAN,
+        "Scan " << ScanActorId << " guard execution timeout"
+        << " txId: " << TxId << " scanId: " << ScanId << " gen: " << ScanGen << " tablet: " << TabletId);
+
+    Finish(NColumnShard::TScanCounters::EStatusFinish::Deadline);
+}
+
+bool TColumnShardScan::ProduceResults() noexcept {
+    auto g = Stats->MakeGuard("ProduceResults");
+    TLogContextGuard gLogging(NActors::TLogContextBuilder::Build()("method", "produce result"));
+
+    ACFL_DEBUG("stage", "start")("iterator", ScanIterator->DebugString());
+    Y_ABORT_UNLESS(!Finished);
+    Y_ABORT_UNLESS(ScanIterator);
+
+    if (ScanIterator->Finished()) {
+        ACFL_DEBUG("stage", "scan iterator is finished")("iterator", ScanIterator->DebugString());
+        return false;
+    }
+
+    if (!ChunksLimiter.HasMore()) {
+        ScanIterator->PrepareResults();
+        ACFL_DEBUG("stage", "limit exhausted")("limit", ChunksLimiter.DebugString());
+        return false;
+    }
+
+    auto resultConclusion = ScanIterator->GetBatch();
+    if (resultConclusion.IsFail()) {
+        ACFL_ERROR("stage", "got error")("iterator", ScanIterator->DebugString())("message", resultConclusion.GetErrorMessage());
+        SendScanError(resultConclusion.GetErrorMessage());
+
+        ScanIterator.reset();
+        Finish(NColumnShard::TScanCounters::EStatusFinish::IteratorInternalErrorResult);
+        return false;
+    }
+
+    std::optional resultOpt = resultConclusion.DetachResult();
+    if (!resultOpt) {
+        ACFL_DEBUG("stage", "no data is ready yet")("iterator", ScanIterator->DebugString());
+        return false;
+    }
+
+    auto& result = *resultOpt;
+
+    if (!result.GetRecordsCount()) {
+        ACFL_DEBUG("stage", "got empty batch")("iterator", ScanIterator->DebugString());
+        return true;
+    }
+
+    auto& shardedBatch = result.GetShardedBatch();
+    auto batch = shardedBatch.GetRecordBatch();
+    int numRows = batch->num_rows();
+    int numColumns = batch->num_columns();
+    ACFL_DEBUG("stage", "ready result")("iterator", ScanIterator->DebugString())("columns", numColumns)("rows", result.GetRecordsCount());
+
+    AFL_VERIFY(DataFormat == NKikimrDataEvents::FORMAT_ARROW);
+    {
+        MakeResult(0);
+        if (shardedBatch.IsSharded()) {
+            AFL_INFO(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "compute_sharding_success")("count", shardedBatch.GetSplittedByShards().size())("info", ComputeShardingPolicy.DebugString());
+            Result->SplittedBatches = shardedBatch.GetSplittedByShards();
+        } else {
+            if (ComputeShardingPolicy.IsEnabled()) {
+                AFL_WARN(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "compute_sharding_problems")("info", ComputeShardingPolicy.DebugString());
+            }
+        }
+        TMemoryProfileGuard mGuard("SCAN_PROFILE::RESULT::TO_KQP", IS_DEBUG_LOG_ENABLED(NKikimrServices::TX_COLUMNSHARD_SCAN_MEMORY));
+        Result->ArrowBatch = shardedBatch.GetRecordBatch();
+        Rows += batch->num_rows();
+        Bytes += NArrow::GetTableDataSize(Result->ArrowBatch);
+        ACFL_DEBUG("stage", "data_format")("batch_size", NArrow::GetTableDataSize(Result->ArrowBatch))("num_rows", numRows)("batch_columns", JoinSeq(",", batch->schema()->field_names()));
+    }
+    if (CurrentLastReadKey) {
+        NArrow::NMerger::TSortableBatchPosition pNew(result.GetLastReadKey(), 0, result.GetLastReadKey()->schema()->field_names(), {}, ReadMetadataRange->IsDescSorted());
+        NArrow::NMerger::TSortableBatchPosition pOld(CurrentLastReadKey, 0, CurrentLastReadKey->schema()->field_names(), {}, ReadMetadataRange->IsDescSorted());
+        AFL_VERIFY(pOld < pNew)("old", pOld.DebugJson().GetStringRobust())("new", pNew.DebugJson().GetStringRobust());
+    }
+    CurrentLastReadKey = result.GetLastReadKey();
+
+    Result->LastKey = ConvertLastKey(result.GetLastReadKey());
+    SendResult(false, false);
+    ScanIterator->OnSentDataFromInterval(result.GetNotFinishedIntervalIdx());
+    ACFL_DEBUG("stage", "finished")("iterator", ScanIterator->DebugString());
+    return true;
+}
+
+void TColumnShardScan::ContinueProcessing() {
+    if (!ScanIterator) {
+        ACFL_DEBUG("event", "ContinueProcessing")("stage", "iterator is not initialized");
+        return;
+    }
+    // Send new results if there is available capacity
+    while (ScanIterator && ProduceResults()) {
+    }
+
+    if (ScanIterator) {
+        // Switch to the next range if the current one is finished
+        if (ScanIterator->Finished()) {
+            if (ChunksLimiter.HasMore()) {
+                auto g = Stats->MakeGuard("Finish");
+                MakeResult();
+                SendResult(false, true);
+                ScanIterator.reset();
+                Finish(NColumnShard::TScanCounters::EStatusFinish::Success);
+            }
+        } else {
+            while (true) {
+                TConclusion hasMoreData = ScanIterator->ReadNextInterval();
+                if (hasMoreData.IsFail()) {
+                    ACFL_ERROR("event", "ContinueProcessing")("error", hasMoreData.GetErrorMessage());
+                    ScanIterator.reset();
+                    SendScanError("iterator_error:" + hasMoreData.GetErrorMessage());
+                    return Finish(NColumnShard::TScanCounters::EStatusFinish::IteratorInternalErrorScan);
+                } else if (!*hasMoreData) {
+                    break;
+                }
+            }
+        }
+    }
+    AFL_VERIFY(!ScanIterator || !ChunksLimiter.HasMore() || InFlightReads || ScanCountersPool.InWaiting())("scan_actor_id", ScanActorId)("tx_id", TxId)("scan_id", ScanId)("gen", ScanGen)("tablet", TabletId)
+        ("debug", ScanIterator->DebugString());
+}
+
+void TColumnShardScan::MakeResult(size_t reserveRows /*= 0*/) {
+    if (!Finished && !Result) {
+        Result = MakeHolder(ScanId, ScanGen);
+        if (reserveRows) {
+            Y_ABORT_UNLESS(DataFormat != NKikimrDataEvents::FORMAT_ARROW);
+            Result->Rows.reserve(reserveRows);
+        }
+    }
+}
+
+void TColumnShardScan::AddRow(const TConstArrayRef& row) {
+    Result->Rows.emplace_back(TOwnedCellVec::Make(row));
+    ++Rows;
+
+    // NOTE: Some per-row overhead to deal with the case when no columns were requested
+    Bytes += std::max((ui64)8, (ui64)Result->Rows.back().DataSize());
+}
+
+NKikimr::TOwnedCellVec TColumnShardScan::ConvertLastKey(const std::shared_ptr& lastReadKey) {
+    Y_ABORT_UNLESS(lastReadKey, "last key must be passed");
+
+    struct TSingeRowWriter: public IRowWriter {
+        TOwnedCellVec Row;
+        bool Done = false;
+        void AddRow(const TConstArrayRef& row) override {
+            Y_ABORT_UNLESS(!Done);
+            Row = TOwnedCellVec::Make(row);
+            Done = true;
+        }
+    } singleRowWriter;
+    NArrow::TArrowToYdbConverter converter(KeyYqlSchema, singleRowWriter);
+    TString errStr;
+    bool ok = converter.Process(*lastReadKey, errStr);
+    Y_ABORT_UNLESS(ok, "%s", errStr.c_str());
+
+    Y_ABORT_UNLESS(singleRowWriter.Done);
+    return singleRowWriter.Row;
+}
+
+bool TColumnShardScan::SendResult(bool pageFault, bool lastBatch) {
+    if (Finished) {
+        return true;
+    }
+
+    Result->PageFault = pageFault;
+    Result->PageFaults = PageFaults;
+    Result->Finished = lastBatch;
+    if (ScanIterator) {
+        Result->AvailablePacks = ScanIterator->GetAvailableResultsCount();
+    }
+    TDuration totalElapsedTime = TDuration::Seconds(GetElapsedTicksAsSeconds());
+    // Result->TotalTime = totalElapsedTime - LastReportedElapsedTime;
+    // TODO: Result->CpuTime = ...
+    LastReportedElapsedTime = totalElapsedTime;
+
+    PageFaults = 0;
+
+    LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::TX_COLUMNSHARD_SCAN,
+        "Scan " << ScanActorId << " send ScanData to " << ScanComputeActorId
+        << " txId: " << TxId << " scanId: " << ScanId << " gen: " << ScanGen << " tablet: " << TabletId
+        << " bytes: " << Bytes << " rows: " << Rows << " page faults: " << Result->PageFaults
+        << " finished: " << Result->Finished << " pageFault: " << Result->PageFault
+        << " arrow schema:\n" << (Result->ArrowBatch ? Result->ArrowBatch->schema()->ToString() : ""));
+
+    Finished = Result->Finished;
+    if (Finished) {
+        ALS_INFO(NKikimrServices::TX_COLUMNSHARD_SCAN) <<
+            "Scanner finished " << ScanActorId << " and sent to " << ScanComputeActorId
+            << " packs: " << PacksSum << " txId: " << TxId << " scanId: " << ScanId << " gen: " << ScanGen << " tablet: " << TabletId
+            << " bytes: " << Bytes << "/" << BytesSum << " rows: " << Rows << "/" << RowsSum << " page faults: " << Result->PageFaults
+            << " finished: " << Result->Finished << " pageFault: " << Result->PageFault
+            << " stats:" << Stats->ToJson() << ";iterator:" << (ScanIterator ? ScanIterator->DebugString(false) : "NO");
+        Result->StatsOnFinished = std::make_shared(ScanIterator->GetStats());
+    } else {
+        Y_ABORT_UNLESS(ChunksLimiter.Take(Bytes));
+        Result->RequestedBytesLimitReached = !ChunksLimiter.HasMore();
+        Y_ABORT_UNLESS(AckReceivedInstant);
+        ScanCountersPool.AckWaitingInfo(TMonotonic::Now() - *AckReceivedInstant);
+    }
+    AckReceivedInstant.reset();
+
+    Send(ScanComputeActorId, Result.Release(), IEventHandle::FlagTrackDelivery); // TODO: FlagSubscribeOnSession ?
+
+    ReportStats();
+
+    return true;
+}
+
+void TColumnShardScan::SendScanError(const TString& reason) {
+    AFL_VERIFY(reason);
+    const TString msg = TStringBuilder() << "Scan failed at tablet " << TabletId << ", reason: " + reason;
+
+    auto ev = MakeHolder(ScanGen, TabletId);
+    ev->Record.SetStatus(Ydb::StatusIds::GENERIC_ERROR);
+    auto issue = NYql::YqlIssue({}, NYql::TIssuesIds::KIKIMR_RESULT_UNAVAILABLE, msg);
+    NYql::IssueToMessage(issue, ev->Record.MutableIssues()->Add());
+
+    Send(ScanComputeActorId, ev.Release());
+}
+
+void TColumnShardScan::Finish(const NColumnShard::TScanCounters::EStatusFinish status) {
+    LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::TX_COLUMNSHARD_SCAN,
+        "Scan " << ScanActorId << " finished for tablet " << TabletId);
+
+    Send(ColumnShardActorId, new NColumnShard::TEvPrivate::TEvReadFinished(RequestCookie, TxId));
+    AFL_VERIFY(StartInstant);
+    ScanCountersPool.OnScanDuration(status, TMonotonic::Now() - *StartInstant);
+    ReportStats();
+    PassAway();
+}
+
+void TColumnShardScan::ReportStats() {
+    Send(ColumnShardActorId, new NColumnShard::TEvPrivate::TEvScanStats(Rows, Bytes));
+    Rows = 0;
+    Bytes = 0;
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/reader/actor/actor.h b/ydb/core/tx/columnshard/engines/reader/actor/actor.h
new file mode 100644
index 000000000000..33134f85bcab
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/actor/actor.h
@@ -0,0 +1,184 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader {
+
+class TColumnShardScan: public TActorBootstrapped, NArrow::IRowWriter {
+private:
+    TActorId ResourceSubscribeActorId;
+    TActorId ReadCoordinatorActorId;
+    const std::shared_ptr StoragesManager;
+    std::optional StartInstant;
+public:
+    static constexpr auto ActorActivityType() {
+        return NKikimrServices::TActivity::KQP_OLAP_SCAN;
+    }
+
+public:
+    virtual void PassAway() override;
+
+    TColumnShardScan(const TActorId& columnShardActorId, const TActorId& scanComputeActorId,
+        const std::shared_ptr& storagesManager, const TComputeShardingPolicy& computeShardingPolicy,
+        ui32 scanId, ui64 txId, ui32 scanGen, ui64 requestCookie,
+        ui64 tabletId, TDuration timeout, const TReadMetadataBase::TConstPtr& readMetadataRange,
+        NKikimrDataEvents::EDataFormat dataFormat, const NColumnShard::TScanCounters& scanCountersPool);
+
+    void Bootstrap(const TActorContext& ctx);
+
+private:
+    STATEFN(StateScan) {
+        auto g = Stats->MakeGuard("processing");
+        TLogContextGuard gLogging(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD_SCAN)
+            ("SelfId", SelfId())("TabletId", TabletId)("ScanId", ScanId)("TxId", TxId)("ScanGen", ScanGen)
+        );
+        switch (ev->GetTypeRewrite()) {
+            hFunc(NKqp::TEvKqpCompute::TEvScanDataAck, HandleScan);
+            hFunc(NKqp::TEvKqp::TEvAbortExecution, HandleScan);
+            hFunc(TEvents::TEvUndelivered, HandleScan);
+            hFunc(TEvents::TEvWakeup, HandleScan);
+            hFunc(NConveyor::TEvExecution::TEvTaskProcessedResult, HandleScan);
+            default:
+                AFL_VERIFY(false)("unexpected_event", ev->GetTypeName());
+        }
+    }
+
+    void HandleScan(NConveyor::TEvExecution::TEvTaskProcessedResult::TPtr& ev);
+
+    void HandleScan(NKqp::TEvKqpCompute::TEvScanDataAck::TPtr& ev);
+
+    // Returns true if it was able to produce new batch
+    bool ProduceResults() noexcept;
+
+    void ContinueProcessing();
+
+    void HandleScan(NKqp::TEvKqp::TEvAbortExecution::TPtr& ev) noexcept;
+
+    void HandleScan(TEvents::TEvUndelivered::TPtr& ev);
+
+    void HandleScan(TEvents::TEvWakeup::TPtr& /*ev*/);
+
+private:
+    void MakeResult(size_t reserveRows = 0);
+
+    void AddRow(const TConstArrayRef& row) override;
+
+    TOwnedCellVec ConvertLastKey(const std::shared_ptr& lastReadKey);
+
+    class TScanStatsOwner: public NKqp::TEvKqpCompute::IShardScanStats {
+    private:
+        YDB_READONLY_DEF(TReadStats, Stats);
+    public:
+        TScanStatsOwner(const TReadStats& stats)
+            : Stats(stats) {
+
+        }
+
+        virtual THashMap GetMetrics() const override {
+            THashMap result;
+            result["compacted_bytes"] = Stats.CompactedPortionsBytes;
+            result["inserted_bytes"] = Stats.InsertedPortionsBytes;
+            result["committed_bytes"] = Stats.CommittedPortionsBytes;
+            return result;
+        }
+    };
+
+    bool SendResult(bool pageFault, bool lastBatch);
+
+    void SendScanError(const TString& reason);
+
+    void Finish(const NColumnShard::TScanCounters::EStatusFinish status);
+
+    void ReportStats();
+
+private:
+    const TActorId ColumnShardActorId;
+    const TActorId ReadBlobsActorId;
+    const TActorId ScanComputeActorId;
+    std::optional AckReceivedInstant;
+    TActorId ScanActorId;
+    TActorId BlobCacheActorId;
+    const ui32 ScanId;
+    const ui64 TxId;
+    const ui32 ScanGen;
+    const ui64 RequestCookie;
+    const NKikimrDataEvents::EDataFormat DataFormat;
+    const ui64 TabletId;
+
+    TReadMetadataBase::TConstPtr ReadMetadataRange;
+    std::unique_ptr ScanIterator;
+
+    std::vector> KeyYqlSchema;
+    const TSerializedTableRange TableRange;
+    const TSmallVec SkipNullKeys;
+    const TInstant Deadline;
+    NColumnShard::TConcreteScanCounters ScanCountersPool;
+
+    TMaybe AbortReason;
+
+    TChunksLimiter ChunksLimiter;
+    THolder Result;
+    std::shared_ptr CurrentLastReadKey;
+    i64 InFlightReads = 0;
+    bool Finished = false;
+
+    class TBlobStats {
+    private:
+        ui64 PartsCount = 0;
+        ui64 Bytes = 0;
+        TDuration ReadingDurationSum;
+        TDuration ReadingDurationMax;
+        NMonitoring::THistogramPtr BlobDurationsCounter;
+        NMonitoring::THistogramPtr ByteDurationsCounter;
+    public:
+        TBlobStats(const NMonitoring::THistogramPtr blobDurationsCounter, const NMonitoring::THistogramPtr byteDurationsCounter)
+            : BlobDurationsCounter(blobDurationsCounter)
+            , ByteDurationsCounter(byteDurationsCounter) {
+
+        }
+        void Received(const TBlobRange& br, const TDuration d) {
+            ReadingDurationSum += d;
+            ReadingDurationMax = Max(ReadingDurationMax, d);
+            ++PartsCount;
+            Bytes += br.Size;
+            BlobDurationsCounter->Collect(d.MilliSeconds());
+            ByteDurationsCounter->Collect((i64)d.MilliSeconds(), br.Size);
+        }
+        TString DebugString() const {
+            TStringBuilder sb;
+            if (PartsCount) {
+                sb << "p_count=" << PartsCount << ";";
+                sb << "bytes=" << Bytes << ";";
+                sb << "d_avg=" << ReadingDurationSum / PartsCount << ";";
+                sb << "d_max=" << ReadingDurationMax << ";";
+            } else {
+                sb << "NO_BLOBS;";
+            }
+            return sb;
+        }
+    };
+
+    NTracing::TTraceClientGuard Stats;
+    const TComputeShardingPolicy ComputeShardingPolicy;
+    ui64 Rows = 0;
+    ui64 BytesSum = 0;
+    ui64 RowsSum = 0;
+    ui64 PacksSum = 0;
+    ui64 Bytes = 0;
+    ui32 PageFaults = 0;
+    TDuration LastReportedElapsedTime;
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/reader/actor/ya.make b/ydb/core/tx/columnshard/engines/reader/actor/ya.make
new file mode 100644
index 000000000000..c0b913a0c123
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/actor/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+    actor.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/reader/abstract
+    ydb/core/kqp/compute_actor
+    ydb/library/yql/core/issue
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/reader/common/conveyor_task.cpp b/ydb/core/tx/columnshard/engines/reader/common/conveyor_task.cpp
new file mode 100644
index 000000000000..26f14784a032
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/common/conveyor_task.cpp
@@ -0,0 +1,9 @@
+#include "conveyor_task.h"
+
+namespace NKikimr::NOlap::NReader {
+
+bool IDataTasksProcessor::ITask::Apply(IDataReader& indexedDataRead) const {
+    return DoApply(indexedDataRead);
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/common/conveyor_task.h b/ydb/core/tx/columnshard/engines/reader/common/conveyor_task.h
new file mode 100644
index 000000000000..f29b19ecee59
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/common/conveyor_task.h
@@ -0,0 +1,28 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader {
+
+class IDataReader;
+
+class IDataTasksProcessor {
+public:
+    class ITask: public NConveyor::ITask {
+    private:
+        using TBase = NConveyor::ITask;
+    protected:
+        virtual bool DoApply(IDataReader& indexedDataRead) const = 0;
+    public:
+        ITask(const std::optional ownerId = {})
+            : TBase(ownerId) {
+
+        }
+
+        using TPtr = std::shared_ptr;
+        virtual ~ITask() = default;
+        bool Apply(IDataReader& indexedDataRead) const;
+    };
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/description.cpp b/ydb/core/tx/columnshard/engines/reader/common/description.cpp
similarity index 100%
rename from ydb/core/tx/columnshard/engines/reader/description.cpp
rename to ydb/core/tx/columnshard/engines/reader/common/description.cpp
diff --git a/ydb/core/tx/columnshard/engines/reader/description.h b/ydb/core/tx/columnshard/engines/reader/common/description.h
similarity index 93%
rename from ydb/core/tx/columnshard/engines/reader/description.h
rename to ydb/core/tx/columnshard/engines/reader/common/description.h
index f05943bffa07..704b4bd101a9 100644
--- a/ydb/core/tx/columnshard/engines/reader/description.h
+++ b/ydb/core/tx/columnshard/engines/reader/common/description.h
@@ -1,8 +1,10 @@
 #pragma once
-#include 
+#include 
 #include 
+#include 
+
 #include 
-namespace NKikimr::NOlap {
+namespace NKikimr::NOlap::NReader {
 
 // Describes read/scan request
 struct TReadDescription {
diff --git a/ydb/core/tx/columnshard/engines/reader/queue.cpp b/ydb/core/tx/columnshard/engines/reader/common/queue.cpp
similarity index 100%
rename from ydb/core/tx/columnshard/engines/reader/queue.cpp
rename to ydb/core/tx/columnshard/engines/reader/common/queue.cpp
diff --git a/ydb/core/tx/columnshard/engines/reader/queue.h b/ydb/core/tx/columnshard/engines/reader/common/queue.h
similarity index 100%
rename from ydb/core/tx/columnshard/engines/reader/queue.h
rename to ydb/core/tx/columnshard/engines/reader/common/queue.h
diff --git a/ydb/core/tx/columnshard/engines/reader/common/result.cpp b/ydb/core/tx/columnshard/engines/reader/common/result.cpp
new file mode 100644
index 000000000000..484165c67b54
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/common/result.cpp
@@ -0,0 +1,51 @@
+#include "result.h"
+
+namespace NKikimr::NOlap::NReader {
+
+class TCurrentBatch {
+private:
+    std::vector Results;
+    ui64 RecordsCount = 0;
+public:
+    ui64 GetRecordsCount() const {
+        return RecordsCount;
+    }
+
+    void AddChunk(TPartialReadResult&& res) {
+        RecordsCount += res.GetRecordsCount();
+        Results.emplace_back(std::move(res));
+    }
+
+    void FillResult(std::vector& result) const {
+        if (Results.empty()) {
+            return;
+        }
+        for (auto&& i : Results) {
+            result.emplace_back(std::move(i));
+        }
+    }
+};
+
+std::vector TPartialReadResult::SplitResults(std::vector&& resultsExt, const ui32 maxRecordsInResult) {
+    std::vector resultBatches;
+    TCurrentBatch currentBatch;
+    for (auto&& i : resultsExt) {
+        AFL_VERIFY(i.GetRecordsCount());
+        currentBatch.AddChunk(std::move(i));
+        if (currentBatch.GetRecordsCount() >= maxRecordsInResult) {
+            resultBatches.emplace_back(std::move(currentBatch));
+            currentBatch = TCurrentBatch();
+        }
+    }
+    if (currentBatch.GetRecordsCount()) {
+        resultBatches.emplace_back(std::move(currentBatch));
+    }
+
+    std::vector result;
+    for (auto&& i : resultBatches) {
+        i.FillResult(result);
+    }
+    return result;
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/reader/common/result.h b/ydb/core/tx/columnshard/engines/reader/common/result.h
new file mode 100644
index 000000000000..2c3f698bf7d7
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/common/result.h
@@ -0,0 +1,87 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+#include 
+namespace NKikimr::NOlap::NReader {
+
+// Represents a batch of rows produced by ASC or DESC scan with applied filters and partial aggregation
+class TPartialReadResult {
+private:
+    YDB_READONLY_DEF(std::vector>, ResourcesGuards);
+    NArrow::TShardedRecordBatch ResultBatch;
+
+    // This 1-row batch contains the last key that was read while producing the ResultBatch.
+    // NOTE: it might be different from the Key of last row in ResulBatch in case of filtering/aggregation/limit
+    std::shared_ptr LastReadKey;
+    YDB_READONLY_DEF(std::optional, NotFinishedIntervalIdx);
+
+public:
+    void Cut(const ui32 limit) {
+        ResultBatch.Cut(limit);
+    }
+
+    const arrow::Table& GetResultBatch() const {
+        return *ResultBatch.GetRecordBatch();
+    }
+
+    const std::shared_ptr& GetResultBatchPtrVerified() const {
+        AFL_VERIFY(ResultBatch.GetRecordBatch());
+        return ResultBatch.GetRecordBatch();
+    }
+
+    const std::shared_ptr& GetResourcesGuardOnly() const {
+        AFL_VERIFY(ResourcesGuards.size() == 1);
+        AFL_VERIFY(!!ResourcesGuards.front());
+        return ResourcesGuards.front();
+    }
+
+    ui64 GetMemorySize() const {
+        return ResultBatch.GetMemorySize();
+    }
+
+    ui64 GetRecordsCount() const {
+        return ResultBatch.GetRecordsCount();
+    }
+
+    static std::vector SplitResults(std::vector&& resultsExt, const ui32 maxRecordsInResult);
+
+    const NArrow::TShardedRecordBatch& GetShardedBatch() const {
+        return ResultBatch;
+    }
+
+    const std::shared_ptr& GetLastReadKey() const {
+        return LastReadKey;
+    }
+
+    explicit TPartialReadResult(
+        const std::vector>& resourcesGuards,
+        const NArrow::TShardedRecordBatch& batch, std::shared_ptr lastKey, const std::optional notFinishedIntervalIdx)
+        : ResourcesGuards(resourcesGuards)
+        , ResultBatch(batch)
+        , LastReadKey(lastKey)
+        , NotFinishedIntervalIdx(notFinishedIntervalIdx)
+    {
+        for (auto&& i : ResourcesGuards) {
+            AFL_VERIFY(i);
+        }
+        Y_ABORT_UNLESS(ResultBatch.GetRecordsCount());
+        Y_ABORT_UNLESS(LastReadKey);
+        Y_ABORT_UNLESS(LastReadKey->num_rows() == 1);
+    }
+
+    explicit TPartialReadResult(
+        const std::shared_ptr& resourcesGuards,
+        const NArrow::TShardedRecordBatch& batch, std::shared_ptr lastKey, const std::optional notFinishedIntervalIdx)
+        : TPartialReadResult(std::vector>({resourcesGuards}), batch, lastKey, notFinishedIntervalIdx) {
+        AFL_VERIFY(resourcesGuards);
+    }
+
+    explicit TPartialReadResult(const NArrow::TShardedRecordBatch& batch, std::shared_ptr lastKey, const std::optional notFinishedIntervalIdx)
+        : TPartialReadResult(std::vector>(), batch, lastKey, notFinishedIntervalIdx) {
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/common/stats.cpp b/ydb/core/tx/columnshard/engines/reader/common/stats.cpp
new file mode 100644
index 000000000000..36be742dd0f6
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/common/stats.cpp
@@ -0,0 +1,28 @@
+#include "stats.h"
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader {
+
+void TReadStats::PrintToLog() {
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)
+        ("event", "statistic")
+        ("begin", BeginTimestamp)
+        ("index_granules", IndexGranules)
+        ("index_portions", IndexPortions)
+        ("index_batches", IndexBatches)
+        ("committed_batches", CommittedBatches)
+        ("schema_columns", SchemaColumns)
+        ("filter_columns", FilterColumns)
+        ("additional_columns", AdditionalColumns)
+        ("compacted_portions_bytes", CompactedPortionsBytes)
+        ("inserted_portions_bytes", InsertedPortionsBytes)
+        ("committed_portions_bytes", CommittedPortionsBytes)
+        ("data_filter_bytes", DataFilterBytes)
+        ("data_additional_bytes", DataAdditionalBytes)
+        ("delta_bytes", CompactedPortionsBytes + InsertedPortionsBytes + CommittedPortionsBytes - DataFilterBytes - DataAdditionalBytes)
+        ("selected_rows", SelectedRows)
+        ;
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/reader/common/stats.h b/ydb/core/tx/columnshard/engines/reader/common/stats.h
new file mode 100644
index 000000000000..3feb8459cee0
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/common/stats.h
@@ -0,0 +1,41 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader {
+
+struct TReadStats {
+    TInstant BeginTimestamp;
+    ui64 IndexGranules{0};
+    ui64 IndexPortions{0};
+    ui64 IndexBatches{0};
+    ui64 CommittedBatches{0};
+    ui64 CommittedPortionsBytes = 0;
+    ui64 InsertedPortionsBytes = 0;
+    ui64 CompactedPortionsBytes = 0;
+    ui64 DataFilterBytes{0};
+    ui64 DataAdditionalBytes{0};
+
+    ui32 SchemaColumns = 0;
+    ui32 FilterColumns = 0;
+    ui32 AdditionalColumns = 0;
+
+    ui32 SelectedRows = 0;
+
+    TReadStats()
+        : BeginTimestamp(TInstant::Now()) {
+    }
+
+    void PrintToLog();
+
+    ui64 GetReadBytes() const {
+        return CompactedPortionsBytes + InsertedPortionsBytes + CompactedPortionsBytes;
+    }
+
+    TDuration Duration() {
+        return TInstant::Now() - BeginTimestamp;
+    }
+};
+
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/reader/common/ya.make b/ydb/core/tx/columnshard/engines/reader/common/ya.make
new file mode 100644
index 000000000000..8c7beb01bd69
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/common/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+SRCS(
+    conveyor_task.cpp
+    queue.cpp
+    description.cpp
+    result.cpp
+    stats.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/program
+    ydb/core/formats/arrow/reader
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/reader/conveyor_task.cpp b/ydb/core/tx/columnshard/engines/reader/conveyor_task.cpp
deleted file mode 100644
index 736dbcf5be71..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/conveyor_task.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#include "conveyor_task.h"
-#include "read_context.h"
-
-namespace NKikimr::NColumnShard {
-
-bool IDataTasksProcessor::ITask::Apply(NOlap::IDataReader& indexedDataRead) const {
-    return DoApply(indexedDataRead);
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/conveyor_task.h b/ydb/core/tx/columnshard/engines/reader/conveyor_task.h
deleted file mode 100644
index ef535257cfab..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/conveyor_task.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#pragma once
-#include 
-#include 
-
-namespace NKikimr::NOlap {
-class IDataReader;
-}
-
-namespace NKikimr::NColumnShard {
-
-class IDataTasksProcessor {
-public:
-    class ITask: public NConveyor::ITask {
-    private:
-        using TBase = NConveyor::ITask;
-    protected:
-        virtual bool DoApply(NOlap::IDataReader& indexedDataRead) const = 0;
-    public:
-        ITask(const std::optional ownerId = {})
-            : TBase(ownerId) {
-
-        }
-
-        using TPtr = std::shared_ptr;
-        virtual ~ITask() = default;
-        bool Apply(NOlap::IDataReader& indexedDataRead) const;
-    };
-};
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.darwin-arm64.txt
index a2a2b2fef8cc..1ae5e959e98b 100644
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.darwin-arm64.txt
@@ -17,14 +17,12 @@ target_link_libraries(engines-reader-plain_reader PUBLIC
 )
 target_sources(engines-reader-plain_reader PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/scanner.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/source.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/source.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/interval.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/fetched_data.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/plain_read_data.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/filter_assembler.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/column_assembler.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/committed_assembler.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/columns_set.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/context.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/fetching.cpp
 )
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.darwin-x86_64.txt
index a2a2b2fef8cc..1ae5e959e98b 100644
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.darwin-x86_64.txt
@@ -17,14 +17,12 @@ target_link_libraries(engines-reader-plain_reader PUBLIC
 )
 target_sources(engines-reader-plain_reader PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/scanner.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/source.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/source.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/interval.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/fetched_data.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/plain_read_data.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/filter_assembler.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/column_assembler.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/committed_assembler.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/columns_set.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/context.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/fetching.cpp
 )
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.linux-aarch64.txt
index 44d5df1539f1..4df4f212d2e6 100644
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.linux-aarch64.txt
@@ -18,14 +18,12 @@ target_link_libraries(engines-reader-plain_reader PUBLIC
 )
 target_sources(engines-reader-plain_reader PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/scanner.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/source.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/source.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/interval.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/fetched_data.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/plain_read_data.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/filter_assembler.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/column_assembler.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/committed_assembler.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/columns_set.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/context.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/fetching.cpp
 )
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.linux-x86_64.txt
index 44d5df1539f1..4df4f212d2e6 100644
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.linux-x86_64.txt
@@ -18,14 +18,12 @@ target_link_libraries(engines-reader-plain_reader PUBLIC
 )
 target_sources(engines-reader-plain_reader PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/scanner.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/source.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/source.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/interval.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/fetched_data.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/plain_read_data.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/filter_assembler.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/column_assembler.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/committed_assembler.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/columns_set.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/context.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/fetching.cpp
 )
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.windows-x86_64.txt
index a2a2b2fef8cc..1ae5e959e98b 100644
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/CMakeLists.windows-x86_64.txt
@@ -17,14 +17,12 @@ target_link_libraries(engines-reader-plain_reader PUBLIC
 )
 target_sources(engines-reader-plain_reader PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/scanner.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/source.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/source.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/interval.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/fetched_data.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/plain_read_data.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/filter_assembler.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/column_assembler.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/committed_assembler.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/columns_set.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/context.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/reader/plain_reader/fetching.cpp
 )
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/column_assembler.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/column_assembler.cpp
deleted file mode 100644
index 7ea68e1a3398..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/column_assembler.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#include "column_assembler.h"
-#include "plain_read_data.h"
-
-namespace NKikimr::NOlap::NPlainReader {
-
-bool TAssembleBatch::DoExecute() {
-    /// @warning The replace logic is correct only in assumption that predicate is applied over a part of ReplaceKey.
-    /// It's not OK to apply predicate before replacing key duplicates otherwise.
-    /// Assumption: dup(A, B) <=> PK(A) = PK(B) => Predicate(A) = Predicate(B) => all or no dups for PK(A) here
-
-    auto batchConstructor = BuildBatchConstructor(FetchColumns->GetFilteredSchemaVerified());
-
-    Y_ABORT_UNLESS(batchConstructor.GetColumnsCount());
-
-    TPortionInfo::TPreparedBatchData::TAssembleOptions options;
-    auto addBatch = batchConstructor.AssembleTable(options);
-    Y_ABORT_UNLESS(addBatch);
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)
-        ("columns_count", addBatch->num_columns())("num_rows", addBatch->num_rows());
-    Filter->Apply(addBatch);
-    Result = NArrow::ToBatch(addBatch, true);
-
-    return true;
-}
-
-bool TAssembleFFBatch::DoApply(IDataReader& /*owner*/) const {
-    Source->InitFetchStageData(Result);
-    return true;
-}
-
-TAssembleBatch::TAssembleBatch(const std::shared_ptr& context, const std::shared_ptr& portionInfo,
-    const std::shared_ptr& source, const std::shared_ptr& columns, const THashMap& blobs, const std::shared_ptr& filter)
-    : TBase(context, portionInfo, source, std::move(blobs))
-    , Filter(filter)
-    , TaskGuard(Context->GetCommonContext()->GetCounters().GetAssembleTasksGuard())
-    , FetchColumns(columns)
-{
-    TBase::SetPriority(TBase::EPriority::High);
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/column_assembler.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/column_assembler.h
deleted file mode 100644
index 9158620e0991..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/column_assembler.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#pragma once
-#include "source.h"
-#include 
-#include 
-#include 
-#include 
-#include 
-#include "filter_assembler.h"
-
-namespace NKikimr::NOlap::NPlainReader {
-class TBatch;
-class TAssembleBatch: public TAssemblerCommon, public NColumnShard::TMonitoringObjectsCounter {
-private:
-    using TBase = TAssemblerCommon;
-    std::shared_ptr Filter;
-protected:
-    std::shared_ptr Result;
-    const NColumnShard::TCounterGuard TaskGuard;
-    const std::shared_ptr FetchColumns;
-    virtual bool DoExecute() override;
-public:
-    virtual TString GetTaskClassIdentifier() const override {
-        return "PlainReader::TAssembleBatch";
-    }
-
-    TAssembleBatch(const std::shared_ptr& context, const std::shared_ptr& portionInfo,
-        const std::shared_ptr& source, const std::shared_ptr& columns, const THashMap& blobs, const std::shared_ptr& filter);
-};
-
-class TAssembleFFBatch: public TAssembleBatch {
-private:
-    using TBase = TAssembleBatch;
-protected:
-    virtual bool DoApply(IDataReader& owner) const override;
-public:
-    using TBase::TBase;
-};
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor.cpp
deleted file mode 100644
index a4ecce5de374..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-#include "constructor.h"
-#include 
-
-namespace NKikimr::NOlap::NPlainReader {
-
-void TBlobsFetcherTask::DoOnDataReady(const std::shared_ptr& /*resourcesGuard*/) {
-    Source->MutableStageData().AddBlobs(ExtractBlobsData());
-    AFL_VERIFY(Step->GetNextStep());
-    auto task = std::make_shared(Source, Step->GetNextStep(), Context->GetCommonContext()->GetScanActorId());
-    NConveyor::TScanServiceOperator::SendTaskToExecute(task);
-}
-
-bool TBlobsFetcherTask::DoOnError(const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status) {
-    AFL_ERROR(NKikimrServices::TX_COLUMNSHARD_SCAN)("error_on_blob_reading", range.ToString())("scan_actor_id", Context->GetCommonContext()->GetScanActorId())
-        ("status", status.GetErrorMessage())("status_code", status.GetStatus());
-    NActors::TActorContext::AsActorContext().Send(Context->GetCommonContext()->GetScanActorId(), 
-        std::make_unique(TConclusionStatus::Fail("cannot read blob range " + range.ToString())));
-    return false;
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor.h
deleted file mode 100644
index 3b5ceca5200e..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#pragma once
-#include 
-#include 
-#include 
-#include 
-#include 
-#include "source.h"
-
-namespace NKikimr::NOlap::NPlainReader {
-
-class TBlobsFetcherTask: public NBlobOperations::NRead::ITask {
-private:
-    using TBase = NBlobOperations::NRead::ITask;
-    const std::shared_ptr Source;
-    const std::shared_ptr Step;
-    const std::shared_ptr Context;
-
-    virtual void DoOnDataReady(const std::shared_ptr& resourcesGuard) override;
-    virtual bool DoOnError(const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status) override;
-public:
-    TBlobsFetcherTask(const std::vector>& readActions, const std::shared_ptr& sourcePtr,
-        const std::shared_ptr& step, const std::shared_ptr& context, const TString& taskCustomer, const TString& externalTaskId)
-        : TBase(readActions, taskCustomer, externalTaskId) 
-        , Source(sourcePtr)
-        , Step(step)
-        , Context(context)
-    {
-
-    }
-};
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/constructor.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/constructor.cpp
new file mode 100644
index 000000000000..87315949329a
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/constructor.cpp
@@ -0,0 +1,42 @@
+#include "constructor.h"
+#include "resolver.h"
+#include "read_metadata.h"
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+NKikimr::TConclusionStatus TIndexScannerConstructor::ParseProgram(const TVersionedIndex* vIndex, const NKikimrTxDataShard::TEvKqpScan& proto, TReadDescription& read) const {
+    AFL_VERIFY(vIndex);
+    auto& indexInfo = vIndex->GetSchema(Snapshot)->GetIndexInfo();
+    TIndexColumnResolver columnResolver(indexInfo);
+    return TBase::ParseProgram(vIndex, proto.GetOlapProgramType(), proto.GetOlapProgram(), read, columnResolver);
+}
+
+std::vector TIndexScannerConstructor::GetPrimaryKeyScheme(const NColumnShard::TColumnShard* self) const {
+    auto& indexInfo = self->TablesManager.GetIndexInfo(Snapshot);
+    return indexInfo.GetPrimaryKeyColumns();
+}
+
+NKikimr::TConclusion> TIndexScannerConstructor::DoBuildReadMetadata(const NColumnShard::TColumnShard* self, const TReadDescription& read) const {
+    auto& insertTable = self->InsertTable;
+    auto& index = self->TablesManager.GetPrimaryIndex();
+    if (!insertTable || !index) {
+        return std::shared_ptr();
+    }
+
+    if (read.GetSnapshot().GetPlanStep() < self->GetMinReadStep()) {
+        return TConclusionStatus::Fail(TStringBuilder() << "Snapshot too old: " << read.GetSnapshot());
+    }
+
+    TDataStorageAccessor dataAccessor(insertTable, index);
+    auto readMetadata = std::make_shared(index->CopyVersionedIndexPtr(), read.GetSnapshot(),
+        IsReverse ? TReadMetadataBase::ESorting::DESC : TReadMetadataBase::ESorting::ASC, read.GetProgram());
+
+    auto initResult = readMetadata->Init(read, dataAccessor);
+    if (!initResult) {
+        return initResult;
+    }
+    return dynamic_pointer_cast(readMetadata);
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/constructor.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/constructor.h
new file mode 100644
index 000000000000..bb576fdbdc70
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/constructor.h
@@ -0,0 +1,17 @@
+#pragma once
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+class TIndexScannerConstructor: public IScannerConstructor {
+private:
+    using TBase = IScannerConstructor;
+protected:
+    virtual TConclusion> DoBuildReadMetadata(const NColumnShard::TColumnShard* self, const TReadDescription& read) const override;
+public:
+    using TBase::TBase;
+    virtual TConclusionStatus ParseProgram(const TVersionedIndex* vIndex, const NKikimrTxDataShard::TEvKqpScan& proto, TReadDescription& read) const override;
+    virtual std::vector GetPrimaryKeyScheme(const NColumnShard::TColumnShard* self) const override;
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/read_metadata.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/read_metadata.cpp
new file mode 100644
index 000000000000..a664f71756c7
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/read_metadata.cpp
@@ -0,0 +1,57 @@
+#include "read_metadata.h"
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+std::unique_ptr TReadMetadata::StartScan(const std::shared_ptr& readContext) const {
+    return std::make_unique(readContext, readContext->GetReadMetadataPtrVerifiedAs());
+}
+
+TConclusionStatus TReadMetadata::Init(const TReadDescription& readDescription, const TDataStorageAccessor& dataAccessor) {
+    SetPKRangesFilter(readDescription.PKRangesFilter);
+
+    /// @note We could have column name changes between schema versions:
+    /// Add '1:foo', Drop '1:foo', Add '2:foo'. Drop should hide '1:foo' from reads.
+    /// It's expected that we have only one version on 'foo' in blob and could split them by schema {planStep:txId}.
+    /// So '1:foo' would be omitted in blob records for the column in new snapshots. And '2:foo' - in old ones.
+    /// It's not possible for blobs with several columns. There should be a special logic for them.
+    CommittedBlobs = dataAccessor.GetCommitedBlobs(readDescription, ResultIndexSchema->GetIndexInfo().GetReplaceKey());
+
+    SelectInfo = dataAccessor.Select(readDescription);
+    StatsMode = readDescription.StatsMode;
+    return TConclusionStatus::Success();
+}
+
+std::set TReadMetadata::GetEarlyFilterColumnIds() const {
+    auto& indexInfo = ResultIndexSchema->GetIndexInfo();
+    std::set result;
+    for (auto&& i : GetProgram().GetEarlyFilterColumns()) {
+        auto id = indexInfo.GetColumnIdOptional(i);
+        if (id) {
+            result.emplace(*id);
+            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("early_filter_column", i);
+        }
+    }
+    return result;
+}
+
+std::set TReadMetadata::GetPKColumnIds() const {
+    std::set result;
+    auto& indexInfo = ResultIndexSchema->GetIndexInfo();
+    for (auto&& i : indexInfo.GetPrimaryKeyColumns()) {
+        Y_ABORT_UNLESS(result.emplace(indexInfo.GetColumnId(i.first)).second);
+    }
+    return result;
+}
+
+std::shared_ptr TReadMetadata::BuildReader(const std::shared_ptr& context) const {
+    return std::make_shared(context);
+}
+
+NArrow::NMerger::TSortableBatchPosition TReadMetadata::BuildSortedPosition(const NArrow::TReplaceKey& key) const {
+    return NArrow::NMerger::TSortableBatchPosition(key.ToBatch(GetReplaceKey()), 0,
+        GetReplaceKey()->field_names(), {}, IsDescSorted());
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/read_metadata.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/read_metadata.h
new file mode 100644
index 000000000000..8be1cf19a97c
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/read_metadata.h
@@ -0,0 +1,87 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+// Holds all metadata that is needed to perform read/scan
+struct TReadMetadata : public TReadMetadataBase {
+    using TBase = TReadMetadataBase;
+public:
+    using TConstPtr = std::shared_ptr;
+
+    NArrow::NMerger::TSortableBatchPosition BuildSortedPosition(const NArrow::TReplaceKey& key) const;
+    std::shared_ptr BuildReader(const std::shared_ptr& context) const;
+
+    bool HasProcessingColumnIds() const {
+        return GetProgram().HasProcessingColumnIds();
+    }
+
+    std::shared_ptr SelectInfo;
+    NYql::NDqProto::EDqStatsMode StatsMode = NYql::NDqProto::EDqStatsMode::DQ_STATS_MODE_NONE;
+    std::vector CommittedBlobs;
+    std::shared_ptr ReadStats;
+
+    TReadMetadata(const std::shared_ptr info, const TSnapshot& snapshot, const ESorting sorting, const TProgramContainer& ssaProgram)
+        : TBase(info, sorting, ssaProgram, info->GetSchema(snapshot), snapshot)
+        , ReadStats(std::make_shared())
+    {
+    }
+
+    virtual std::vector GetKeyYqlSchema() const override {
+        return GetResultSchema()->GetIndexInfo().GetPrimaryKeyColumns();
+    }
+
+    TConclusionStatus Init(const TReadDescription& readDescription, const TDataStorageAccessor& dataAccessor);
+
+    std::vector GetColumnsOrder() const {
+        auto schema = GetResultSchema();
+        std::vector result;
+        for (auto&& i : schema->GetSchema()->fields()) {
+            result.emplace_back(i->name());
+        }
+        return result;
+    }
+
+    std::set GetEarlyFilterColumnIds() const;
+    std::set GetPKColumnIds() const;
+
+    bool Empty() const {
+        Y_ABORT_UNLESS(SelectInfo);
+        return SelectInfo->PortionsOrderedPK.empty() && CommittedBlobs.empty();
+    }
+
+    size_t NumIndexedChunks() const {
+        Y_ABORT_UNLESS(SelectInfo);
+        return SelectInfo->NumChunks();
+    }
+
+    size_t NumIndexedBlobs() const {
+        Y_ABORT_UNLESS(SelectInfo);
+        return SelectInfo->Stats().Blobs;
+    }
+
+    std::unique_ptr StartScan(const std::shared_ptr& readContext) const override;
+
+    void Dump(IOutputStream& out) const override {
+        out << " index chunks: " << NumIndexedChunks()
+            << " index blobs: " << NumIndexedBlobs()
+            << " committed blobs: " << CommittedBlobs.size()
+      //      << " with program steps: " << (Program ? Program->Steps.size() : 0)
+            << " at snapshot: " << GetRequestSnapshot().DebugString();
+        TBase::Dump(out);
+        if (SelectInfo) {
+            out << ", " << *SelectInfo;
+        }
+    }
+
+    friend IOutputStream& operator << (IOutputStream& out, const TReadMetadata& meta) {
+        meta.Dump(out);
+        return out;
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/resolver.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/resolver.cpp
new file mode 100644
index 000000000000..2b90c5f2faa4
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/resolver.cpp
@@ -0,0 +1,5 @@
+#include "resolver.h"
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/resolver.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/resolver.h
new file mode 100644
index 000000000000..c5a2998a54c1
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/resolver.h
@@ -0,0 +1,32 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+class TIndexColumnResolver: public IColumnResolver {
+    const NOlap::TIndexInfo& IndexInfo;
+
+public:
+    explicit TIndexColumnResolver(const NOlap::TIndexInfo& indexInfo)
+        : IndexInfo(indexInfo) {
+    }
+
+    virtual std::optional GetColumnIdOptional(const TString& name) const override {
+        return IndexInfo.GetColumnIdOptional(name);
+    }
+
+    TString GetColumnName(ui32 id, bool required) const override {
+        return IndexInfo.GetColumnName(id, required);
+    }
+
+    const NTable::TScheme::TTableSchema& GetSchema() const override {
+        return IndexInfo;
+    }
+
+    NSsa::TColumnInfo GetDefaultColumn() const override {
+        return NSsa::TColumnInfo::Original((ui32)NOlap::TIndexInfo::ESpecialColumn::PLAN_STEP, NOlap::TIndexInfo::SPEC_COL_PLAN_STEP);
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/ya.make b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/ya.make
new file mode 100644
index 000000000000..b91efa4346d8
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/constructor/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+    constructor.cpp
+    resolver.cpp
+    read_metadata.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/reader/abstract
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/context.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/context.cpp
deleted file mode 100644
index cf07daf49f8f..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/context.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-#include "context.h"
-#include "source.h"
-
-namespace NKikimr::NOlap::NPlainReader {
-
-std::shared_ptr TSpecialReadContext::BuildMerger() const {
-    return std::make_shared(ReadMetadata->GetReplaceKey(), ProgramInputColumns->GetSchema(), CommonContext->IsReverse());
-}
-
-ui64 TSpecialReadContext::GetMemoryForSources(const std::map>& sources, const bool isExclusive) {
-    ui64 result = 0;
-    for (auto&& i : sources) {
-        auto fetchingPlan = GetColumnsFetchingPlan(i.second, isExclusive);
-        AFL_VERIFY(i.second->GetIntervalsCount());
-        result += fetchingPlan->PredictRawBytes(i.second) / i.second->GetIntervalsCount();
-    }
-    return result;
-}
-
-std::shared_ptr TSpecialReadContext::GetColumnsFetchingPlan(const std::shared_ptr& source, const bool exclusiveSource) const {
-    const bool needSnapshots = !exclusiveSource || ReadMetadata->GetSnapshot() < source->GetRecordSnapshotMax();
-    auto result = CacheFetchingScripts[needSnapshots ? 1 : 0][exclusiveSource ? 1 : 0];
-    if (!result) {
-        return std::make_shared(source->GetRecordsCount(), "fake");
-    }
-    return result;
-}
-
-std::shared_ptr TSpecialReadContext::BuildColumnsFetchingPlan(const bool needSnapshots, const bool exclusiveSource) const {
-    std::shared_ptr result = std::make_shared();
-    std::shared_ptr current = result;
-    if (!!IndexChecker) {
-        current = current->AttachNext(std::make_shared(std::make_shared(IndexChecker->GetIndexIds())));
-        current = current->AttachNext(std::make_shared(IndexChecker));
-    }
-    if (!EFColumns->GetColumnsCount()) {
-        TColumnsSet columnsFetch = *FFColumns;
-        if (needSnapshots) {
-            columnsFetch = columnsFetch + *SpecColumns;
-        }
-        if (!exclusiveSource) {
-            columnsFetch = columnsFetch + *PKColumns + *SpecColumns;
-        }
-        if (columnsFetch.GetColumnsCount()) {
-            current = current->AttachNext(std::make_shared(std::make_shared(columnsFetch), "simple"));
-            current = current->AttachNext(std::make_shared(std::make_shared(columnsFetch)));
-        } else {
-            return nullptr;
-        }
-    } else if (exclusiveSource) {
-        TColumnsSet columnsFetch = *EFColumns;
-        if (needSnapshots || FFColumns->Contains(SpecColumns)) {
-            columnsFetch = columnsFetch + *SpecColumns;
-        }
-        AFL_VERIFY(columnsFetch.GetColumnsCount());
-        current = current->AttachNext(std::make_shared(std::make_shared(columnsFetch), "ef"));
-
-        if (needSnapshots || FFColumns->Contains(SpecColumns)) {
-            current = current->AttachNext(std::make_shared(SpecColumns));
-            current = current->AttachNext(std::make_shared());
-            columnsFetch = columnsFetch - *SpecColumns;
-        }
-        current = current->AttachNext(std::make_shared(std::make_shared(columnsFetch)));
-        if (!ReadMetadata->GetPKRangesFilter().IsEmpty()) {
-            current = current->AttachNext(std::make_shared());
-        }
-        for (auto&& i : ReadMetadata->GetProgram().GetSteps()) {
-            if (!i->IsFilterOnly()) {
-                break;
-            }
-            current = current->AttachNext(std::make_shared(i));
-        }
-        const TColumnsSet columnsAdditionalFetch = *FFColumns - *EFColumns - *SpecColumns;
-        if (columnsAdditionalFetch.GetColumnsCount()) {
-            current = current->AttachNext(std::make_shared(std::make_shared(columnsAdditionalFetch)));
-            current = current->AttachNext(std::make_shared(std::make_shared(columnsAdditionalFetch)));
-        }
-    } else {
-        TColumnsSet columnsFetch = *MergeColumns + *EFColumns;
-        AFL_VERIFY(columnsFetch.GetColumnsCount());
-        current = current->AttachNext(std::make_shared(std::make_shared(columnsFetch), "full"));
-        current = current->AttachNext(std::make_shared(SpecColumns));
-        if (needSnapshots) {
-            current = current->AttachNext(std::make_shared());
-        }
-        current = current->AttachNext(std::make_shared(PKColumns));
-        if (!ReadMetadata->GetPKRangesFilter().IsEmpty()) {
-            current = current->AttachNext(std::make_shared());
-        }
-        const TColumnsSet columnsFetchEF = columnsFetch - *SpecColumns - *PKColumns;
-        current = current->AttachNext(std::make_shared(std::make_shared(columnsFetchEF)));
-        for (auto&& i : ReadMetadata->GetProgram().GetSteps()) {
-            if (!i->IsFilterOnly()) {
-                break;
-            }
-            current = current->AttachNext(std::make_shared(i));
-        }
-        const TColumnsSet columnsAdditionalFetch = *FFColumns - *EFColumns - *SpecColumns - *PKColumns;
-        if (columnsAdditionalFetch.GetColumnsCount()) {
-            current = current->AttachNext(std::make_shared(std::make_shared(columnsAdditionalFetch)));
-            current = current->AttachNext(std::make_shared(std::make_shared(columnsAdditionalFetch)));
-        }
-    }
-    return result->GetNextStep();
-}
-
-TSpecialReadContext::TSpecialReadContext(const std::shared_ptr& commonContext)
-    : CommonContext(commonContext)
-{
-    ReadMetadata = dynamic_pointer_cast(CommonContext->GetReadMetadata());
-    Y_ABORT_UNLESS(ReadMetadata);
-    Y_ABORT_UNLESS(ReadMetadata->SelectInfo);
-
-    auto readSchema = ReadMetadata->GetLoadSchema(ReadMetadata->GetSnapshot());
-    SpecColumns = std::make_shared(TIndexInfo::GetSpecialColumnIdsSet(), ReadMetadata->GetIndexInfo(), readSchema);
-    IndexChecker = ReadMetadata->GetProgram().GetIndexChecker();
-    {
-        auto efColumns = ReadMetadata->GetEarlyFilterColumnIds();
-        if (efColumns.size()) {
-            EFColumns = std::make_shared(efColumns, ReadMetadata->GetIndexInfo(), readSchema);
-        } else {
-            EFColumns = std::make_shared();
-        }
-    }
-    if (ReadMetadata->HasProcessingColumnIds()) {
-        FFColumns = std::make_shared(ReadMetadata->GetProcessingColumnIds(), ReadMetadata->GetIndexInfo(), readSchema);
-        if (SpecColumns->Contains(*FFColumns) && !EFColumns->IsEmpty()) {
-            FFColumns = std::make_shared(*EFColumns + *SpecColumns);
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("ff_modified", FFColumns->DebugString());
-        } else {
-            AFL_VERIFY(!FFColumns->Contains(*SpecColumns))("info", FFColumns->DebugString());
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("ff_first", FFColumns->DebugString());
-        }
-    } else {
-        FFColumns = EFColumns;
-    }
-    if (FFColumns->IsEmpty()) {
-        ProgramInputColumns = SpecColumns;
-    } else {
-        ProgramInputColumns = FFColumns;
-    }
-
-    PKColumns = std::make_shared(ReadMetadata->GetPKColumnIds(), ReadMetadata->GetIndexInfo(), readSchema);
-    MergeColumns = std::make_shared(*PKColumns + *SpecColumns);
-
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("columns_context_info", DebugString());
-    CacheFetchingScripts[0][0] = BuildColumnsFetchingPlan(false, false);
-    CacheFetchingScripts[0][1] = BuildColumnsFetchingPlan(false, true);
-    CacheFetchingScripts[1][0] = BuildColumnsFetchingPlan(true, false);
-    CacheFetchingScripts[1][1] = BuildColumnsFetchingPlan(true, true);
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/context.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/context.h
deleted file mode 100644
index a8b727a5385a..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/context.h
+++ /dev/null
@@ -1,53 +0,0 @@
-#pragma once
-#include "columns_set.h"
-#include "fetching.h"
-#include 
-#include 
-
-namespace NKikimr::NOlap::NPlainReader {
-
-class IDataSource;
-
-class TSpecialReadContext {
-private:
-    YDB_READONLY_DEF(std::shared_ptr, CommonContext);
-
-    YDB_READONLY_DEF(std::shared_ptr, SpecColumns);
-    YDB_READONLY_DEF(std::shared_ptr, MergeColumns);
-    YDB_READONLY_DEF(std::shared_ptr, EFColumns);
-    YDB_READONLY_DEF(std::shared_ptr, PKColumns);
-    YDB_READONLY_DEF(std::shared_ptr, FFColumns);
-    YDB_READONLY_DEF(std::shared_ptr, ProgramInputColumns);
-
-    NIndexes::TIndexCheckerContainer IndexChecker;
-    TReadMetadata::TConstPtr ReadMetadata;
-    std::shared_ptr EmptyColumns = std::make_shared();
-    std::shared_ptr PKFFColumns;
-    std::shared_ptr EFPKColumns;
-    std::shared_ptr FFMinusEFColumns;
-    std::shared_ptr BuildColumnsFetchingPlan(const bool needSnapshotsFilter, const bool exclusiveSource) const;
-    std::array, 2>, 2> CacheFetchingScripts;
-public:
-    ui64 GetMemoryForSources(const std::map>& sources, const bool isExclusive);
-
-    const TReadMetadata::TConstPtr& GetReadMetadata() const {
-        return ReadMetadata;
-    }
-
-    std::shared_ptr BuildMerger() const;
-
-    TString DebugString() const {
-        return TStringBuilder() <<
-            "ef=" << EFColumns->DebugString() << ";" <<
-            "pk=" << PKColumns->DebugString() << ";" <<
-            "ff=" << FFColumns->DebugString() << ";" <<
-            "program_input=" << ProgramInputColumns->DebugString()
-            ;
-    }
-
-    TSpecialReadContext(const std::shared_ptr& commonContext);
-
-    std::shared_ptr GetColumnsFetchingPlan(const std::shared_ptr& source, const bool exclusiveSource) const;
-};
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/fetched_data.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/fetched_data.cpp
deleted file mode 100644
index d4f1a808b742..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/fetched_data.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "fetched_data.h"
-#include 
-#include 
-
-namespace NKikimr::NOlap {
-
-void TFetchedData::SyncTableColumns(const std::vector>& fields) {
-    for (auto&& i : fields) {
-        if (Table->GetColumnByName(i->name())) {
-            continue;
-        }
-        Table = NArrow::TStatusValidator::GetValid(Table->AddColumn(Table->num_columns(), i,
-            std::make_shared(NArrow::TThreadSimpleArraysCache::GetNull(i->type(), Table->num_rows()))));
-    }
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/fetched_data.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/fetched_data.h
deleted file mode 100644
index 62d3c1fcb3b2..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/fetched_data.h
+++ /dev/null
@@ -1,118 +0,0 @@
-#pragma once
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap {
-
-class TFetchedData {
-protected:
-    using TBlobs = THashMap;
-    YDB_ACCESSOR_DEF(TBlobs, Blobs);
-    YDB_READONLY_DEF(std::shared_ptr, Table);
-    YDB_READONLY_DEF(std::shared_ptr, Filter);
-    YDB_READONLY(bool, UseFilter, false);
-public:
-    TFetchedData(const bool useFilter)
-        : UseFilter(useFilter)
-    {
-
-    }
-
-    void SyncTableColumns(const std::vector>& fields);
-
-    std::shared_ptr GetAppliedFilter() const {
-        return UseFilter ? Filter : nullptr;
-    }
-
-    std::shared_ptr GetNotAppliedFilter() const {
-        return UseFilter ? nullptr : Filter;
-    }
-
-    TString ExtractBlob(const TBlobRange& bRange) {
-        auto it = Blobs.find(bRange);
-        AFL_VERIFY(it != Blobs.end());
-        AFL_VERIFY(it->second.IsBlob());
-        auto result = it->second.GetData();
-        Blobs.erase(it);
-        return result;
-    }
-
-    void AddBlobs(THashMap&& blobs) {
-        for (auto&& i : blobs) {
-            AFL_VERIFY(Blobs.emplace(i.first, std::move(i.second)).second);
-        }
-    }
-
-    void AddNulls(THashMap&& blobs) {
-        for (auto&& i : blobs) {
-            AFL_VERIFY(Blobs.emplace(i.first, i.second).second);
-        }
-    }
-
-    bool IsEmptyFilter() const {
-        return Filter && Filter->IsTotalDenyFilter();
-    }
-
-    bool IsEmpty() const {
-        return IsEmptyFilter() || (Table && !Table->num_rows());
-    }
-
-    void AddFilter(const std::shared_ptr& filter) {
-        if (UseFilter && Table && filter) {
-            AFL_VERIFY(filter->Apply(Table));
-        }
-        if (!Filter) {
-            Filter = filter;
-        } else if (filter) {
-            *Filter = Filter->CombineSequentialAnd(*filter);
-        }
-    }
-
-    void AddFilter(const NArrow::TColumnFilter& filter) {
-        if (UseFilter && Table) {
-            AFL_VERIFY(filter.Apply(Table));
-        }
-        if (!Filter) {
-            Filter = std::make_shared(filter);
-        } else {
-            *Filter = Filter->CombineSequentialAnd(filter);
-        }
-    }
-
-    void AddBatch(const std::shared_ptr& batch) {
-        return AddBatch(arrow::Table::Make(batch->schema(), batch->columns(), batch->num_rows()));
-    }
-
-    void AddBatch(const std::shared_ptr& table) {
-        auto tableLocal = table;
-        if (Filter && UseFilter) {
-            AFL_VERIFY(Filter->Apply(tableLocal));
-        }
-        if (!Table) {
-            Table = tableLocal;
-        } else {
-            AFL_VERIFY(NArrow::MergeBatchColumns({Table, tableLocal}, Table));
-        }
-    }
-
-};
-
-class TFetchedResult {
-private:
-    YDB_READONLY_DEF(std::shared_ptr, Batch);
-    YDB_READONLY_DEF(std::shared_ptr, NotAppliedFilter);
-public:
-    TFetchedResult(std::unique_ptr&& data)
-        : NotAppliedFilter(data->GetNotAppliedFilter()) {
-        if (data->GetTable()) {
-            Batch = NArrow::ToBatch(data->GetTable(), true);
-        }
-    }
-};
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/fetching.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/fetching.cpp
deleted file mode 100644
index 96923fed2a2f..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/fetching.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-#include "fetching.h"
-#include "source.h"
-#include 
-#include 
-
-namespace NKikimr::NOlap::NPlainReader {
-
-bool TStepAction::DoApply(IDataReader& /*owner*/) const {
-    if (FinishedFlag) {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "apply");
-        Source->SetIsReady();
-    }
-    return true;
-}
-
-bool TStepAction::DoExecute() {
-    while (Step) {
-        if (Source->IsEmptyData()) {
-            Source->Finalize();
-            FinishedFlag = true;
-            return true;
-        }
-        if (!Step->ExecuteInplace(Source, Step)) {
-            return true;
-        }
-        if (Source->IsEmptyData()) {
-            Source->Finalize();
-            FinishedFlag = true;
-            return true;
-        }
-        Step = Step->GetNextStep();
-    }
-    Source->Finalize();
-    FinishedFlag = true;
-    return true;
-}
-
-bool TBlobsFetchingStep::DoExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& step) const {
-    AFL_VERIFY((!!Columns) ^ (!!Indexes));
-
-    const bool startFetchingColumns = Columns ? source->StartFetchingColumns(source, step, Columns) : false;
-    const bool startFetchingIndexes = Indexes ? source->StartFetchingIndexes(source, step, Indexes) : false;
-    return !startFetchingColumns && !startFetchingIndexes;
-}
-
-ui64 TBlobsFetchingStep::PredictRawBytes(const std::shared_ptr& source) const {
-    if (Columns) {
-        return source->GetRawBytes(Columns->GetColumnIds());
-    } else {
-        AFL_VERIFY(Indexes);
-        return source->GetIndexBytes(Indexes->GetIndexIdsSet());
-    }
-}
-
-bool TAssemblerStep::DoExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& /*step*/) const {
-    source->AssembleColumns(Columns);
-    return true;
-}
-
-bool TFilterProgramStep::DoExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& /*step*/) const {
-    auto filter = Step->BuildFilter(source->GetStageData().GetTable());
-    source->MutableStageData().AddFilter(filter);
-    return true;
-}
-
-bool TPredicateFilter::DoExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& /*step*/) const {
-    auto filter = source->GetContext()->GetReadMetadata()->GetPKRangesFilter().BuildFilter(source->GetStageData().GetTable());
-    source->MutableStageData().AddFilter(filter);
-    return true;
-}
-
-bool TSnapshotFilter::DoExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& /*step*/) const {
-    auto filter = MakeSnapshotFilter(source->GetStageData().GetTable(), source->GetContext()->GetReadMetadata()->GetSnapshot());
-    source->MutableStageData().AddFilter(filter);
-    return true;
-}
-
-bool TBuildFakeSpec::DoExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& /*step*/) const {
-    std::vector> columns;
-    for (auto&& f : TIndexInfo::ArrowSchemaSnapshot()->fields()) {
-        columns.emplace_back(NArrow::TThreadSimpleArraysCache::GetConst(f->type(), std::make_shared(0), Count));
-    }
-    source->MutableStageData().AddBatch(arrow::RecordBatch::Make(TIndexInfo::ArrowSchemaSnapshot(), Count, columns));
-    return true;
-}
-
-bool TApplyIndexStep::DoExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& /*step*/) const {
-    source->ApplyIndex(IndexChecker);
-    return true;
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/fetching.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/fetching.h
deleted file mode 100644
index 6446538535da..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/fetching.h
+++ /dev/null
@@ -1,220 +0,0 @@
-#pragma once
-#include "columns_set.h"
-#include 
-#include 
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap::NPlainReader {
-class IDataSource;
-
-class IFetchingStep {
-private:
-    std::shared_ptr NextStep;
-    YDB_READONLY_DEF(TString, Name);
-    YDB_READONLY(ui32, Index, 0);
-    YDB_READONLY_DEF(TString, BranchName);
-protected:
-    virtual bool DoExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& step) const = 0;
-    virtual TString DoDebugString() const {
-        return "";
-    }
-public:
-    virtual ~IFetchingStep() = default;
-
-    std::shared_ptr AttachNext(const std::shared_ptr& nextStep) {
-        AFL_VERIFY(nextStep);
-        NextStep = nextStep;
-        nextStep->Index = Index + 1;
-        if (!nextStep->BranchName) {
-            nextStep->BranchName = BranchName;
-        }
-        return nextStep;
-    }
-
-    virtual ui64 PredictRawBytes(const std::shared_ptr& /*source*/) const {
-        return 0;
-    }
-
-    bool ExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& step) const {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("scan_step", DebugString())("scan_step_idx", GetIndex());
-        return DoExecuteInplace(source, step);
-    }
-
-    const std::shared_ptr& GetNextStep() const {
-        return NextStep;
-    }
-
-    IFetchingStep(const TString& name, const TString& branchName = Default())
-        : Name(name)
-        , BranchName(branchName)
-    {
-
-    }
-
-    TString DebugString() const {
-        TStringBuilder sb;
-        sb << "name=" << Name << ";" << DoDebugString() << ";branch=" << BranchName << ";";
-        if (NextStep) {
-            sb << "next=" << NextStep->DebugString() << ";";
-        }
-        return sb;
-    }
-};
-
-class TStepAction: public NColumnShard::IDataTasksProcessor::ITask {
-private:
-    using TBase = NColumnShard::IDataTasksProcessor::ITask;
-    std::shared_ptr Source;
-    std::shared_ptr Step;
-    bool FinishedFlag = false;
-protected:
-    virtual bool DoApply(IDataReader& /*owner*/) const override;
-    virtual bool DoExecute() override;
-public:
-    virtual TString GetTaskClassIdentifier() const override {
-        return "STEP_ACTION";
-    }
-
-    TStepAction(const std::shared_ptr& source, const std::shared_ptr& step, const NActors::TActorId& ownerActorId)
-        : TBase(ownerActorId)
-        , Source(source)
-        , Step(step)
-    {
-
-    }
-};
-
-class TBuildFakeSpec: public IFetchingStep {
-private:
-    using TBase = IFetchingStep;
-    const ui32 Count = 0;
-protected:
-    virtual bool DoExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& /*step*/) const override;
-public:
-    TBuildFakeSpec(const ui32 count, const TString& nameBranch = "")
-        : TBase("FAKE_SPEC", nameBranch)
-        , Count(count)
-    {
-        AFL_VERIFY(Count);
-    }
-};
-
-class TFakeStep: public IFetchingStep {
-private:
-    using TBase = IFetchingStep;
-public:
-    virtual bool DoExecuteInplace(const std::shared_ptr& /*source*/, const std::shared_ptr& /*step*/) const override {
-        return true;
-    }
-
-    TFakeStep()
-        : TBase("FAKE")
-    {
-
-    }
-};
-
-class TApplyIndexStep: public IFetchingStep {
-private:
-    using TBase = IFetchingStep;
-    const NIndexes::TIndexCheckerContainer IndexChecker;
-protected:
-    virtual bool DoExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& /*step*/) const override;
-public:
-    TApplyIndexStep(const NIndexes::TIndexCheckerContainer& indexChecker)
-        : TBase("APPLY_INDEX")
-        , IndexChecker(indexChecker)
-    {
-
-    }
-};
-
-class TBlobsFetchingStep: public IFetchingStep {
-private:
-    using TBase = IFetchingStep;
-    std::shared_ptr Columns;
-    std::shared_ptr Indexes;
-protected:
-    virtual bool DoExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& step) const override;
-    virtual ui64 PredictRawBytes(const std::shared_ptr& source) const override;
-    virtual TString DoDebugString() const override {
-        TStringBuilder sb;
-        if (Columns) {
-            sb << "columns=" << Columns->DebugString() << ";";
-        } else {
-            sb << "indexes=" << Indexes->DebugString() << ";";
-        }
-        return sb;
-    }
-public:
-    TBlobsFetchingStep(const std::shared_ptr& columns, const TString& nameBranch = "")
-        : TBase("FETCHING", nameBranch)
-        , Columns(columns) {
-        AFL_VERIFY(Columns);
-        AFL_VERIFY(Columns->GetColumnsCount());
-    }
-
-    TBlobsFetchingStep(const std::shared_ptr& indexes, const TString& nameBranch = "")
-        : TBase("FETCHING", nameBranch)
-        , Indexes(indexes) {
-        AFL_VERIFY(Indexes);
-        AFL_VERIFY(Indexes->GetIndexesCount());
-    }
-};
-
-class TAssemblerStep: public IFetchingStep {
-private:
-    using TBase = IFetchingStep;
-    YDB_READONLY_DEF(std::shared_ptr, Columns);
-    virtual TString DoDebugString() const override {
-        return TStringBuilder() << "columns=" << Columns->DebugString() << ";";
-    }
-public:
-    virtual bool DoExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& /*step*/) const override;
-    TAssemblerStep(const std::shared_ptr& columns)
-        : TBase("ASSEMBLER")
-        , Columns(columns)
-    {
-        AFL_VERIFY(Columns);
-    }
-};
-
-class TFilterProgramStep: public IFetchingStep {
-private:
-    using TBase = IFetchingStep;
-    std::shared_ptr Step;
-public:
-    virtual bool DoExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& step) const override;
-    TFilterProgramStep(const std::shared_ptr& step)
-        : TBase("PROGRAM")
-        , Step(step)
-    {
-
-    }
-};
-
-class TPredicateFilter: public IFetchingStep {
-private:
-    using TBase = IFetchingStep;
-public:
-    virtual bool DoExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& step) const override;
-    TPredicateFilter()
-        : TBase("PREDICATE") {
-
-    }
-};
-
-class TSnapshotFilter: public IFetchingStep {
-private:
-    using TBase = IFetchingStep;
-public:
-    virtual bool DoExecuteInplace(const std::shared_ptr& source, const std::shared_ptr& step) const override;
-    TSnapshotFilter()
-        : TBase("SNAPSHOT") {
-
-    }
-};
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/interval.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/interval.cpp
deleted file mode 100644
index dce2a8a3e1a3..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/interval.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-#include "interval.h"
-#include "scanner.h"
-#include "plain_read_data.h"
-#include 
-
-namespace NKikimr::NOlap::NPlainReader {
-
-class TMergeTask: public NColumnShard::IDataTasksProcessor::ITask {
-private:
-    using TBase = NColumnShard::IDataTasksProcessor::ITask;
-    std::shared_ptr ResultBatch;
-    std::shared_ptr LastPK;
-    const NColumnShard::TCounterGuard Guard;
-    std::shared_ptr Context;
-    std::map> Sources;
-    std::shared_ptr MergingContext;
-    const ui32 IntervalIdx;
-    std::optional ShardedBatch;
-
-    void PrepareResultBatch() {
-        if (!ResultBatch || ResultBatch->num_rows() == 0) {
-            ResultBatch = nullptr;
-            LastPK = nullptr;
-            return;
-        }
-        {
-            ResultBatch = NArrow::ExtractColumns(ResultBatch, Context->GetProgramInputColumns()->GetColumnNamesVector());
-            AFL_VERIFY(ResultBatch);
-            AFL_VERIFY((ui32)ResultBatch->num_columns() == Context->GetProgramInputColumns()->GetColumnNamesVector().size());
-            NArrow::TStatusValidator::Validate(Context->GetReadMetadata()->GetProgram().ApplyProgram(ResultBatch));
-        }
-        if (ResultBatch->num_rows()) {
-            const auto& shardingPolicy = Context->GetCommonContext()->GetComputeShardingPolicy();
-            if (NArrow::THashConstructor::BuildHashUI64(ResultBatch, shardingPolicy.GetColumnNames(), "__compute_sharding_hash")) {
-                ShardedBatch = NArrow::TShardingSplitIndex::Apply(shardingPolicy.GetShardsCount(), ResultBatch, "__compute_sharding_hash");
-            } else {
-                ShardedBatch = NArrow::TShardedRecordBatch(ResultBatch);
-            }
-            AFL_VERIFY(!!LastPK == !!ShardedBatch->GetRecordsCount())("lpk", !!LastPK)("sb", ShardedBatch->GetRecordsCount());
-        } else {
-            ResultBatch = nullptr;
-            LastPK = nullptr;
-        }
-    }
-
-    bool EmptyFiltersOnly() const {
-        for (auto&& [_, i] : Sources) {
-            if (!i->IsEmptyData()) {
-                return false;
-            }
-        }
-        return true;
-    }
-protected:
-    virtual bool DoApply(NOlap::IDataReader& indexedDataRead) const override {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "DoApply")("interval_idx", MergingContext->GetIntervalIdx());
-        auto& reader = static_cast(indexedDataRead);
-        reader.MutableScanner().OnIntervalResult(ShardedBatch, LastPK, IntervalIdx, reader);
-        return true;
-    }
-    virtual bool DoExecute() override {
-        if (MergingContext->IsExclusiveInterval()) {
-            ResultBatch = Sources.begin()->second->GetStageResult().GetBatch();
-            if (ResultBatch && ResultBatch->num_rows()) {
-                LastPK = Sources.begin()->second->GetLastPK();
-                ResultBatch = NArrow::ExtractColumnsValidate(ResultBatch, Context->GetProgramInputColumns()->GetColumnNamesVector());
-                AFL_VERIFY(ResultBatch)("info", Context->GetProgramInputColumns()->GetSchema()->ToString());
-                Context->GetCommonContext()->GetCounters().OnNoScanInterval(ResultBatch->num_rows());
-                if (Context->GetCommonContext()->IsReverse()) {
-                    ResultBatch = NArrow::ReverseRecords(ResultBatch);
-                }
-                PrepareResultBatch();
-            }
-            Sources.clear();
-            AFL_VERIFY(!!LastPK == (!!ResultBatch && ResultBatch->num_rows()));
-            return true;
-        }
-        if (EmptyFiltersOnly()) {
-            ResultBatch = NArrow::MakeEmptyBatch(Context->GetProgramInputColumns()->GetSchema());
-            return true;
-        }
-        std::shared_ptr merger = Context->BuildMerger();
-        for (auto&& [_, i] : Sources) {
-            if (auto rb = i->GetStageResult().GetBatch()) {
-                merger->AddSource(rb, i->GetStageResult().GetNotAppliedFilter());
-            }
-        }
-        AFL_VERIFY(merger->GetSourcesCount() <= Sources.size());
-        const ui32 originalSourcesCount = Sources.size();
-        Sources.clear();
-
-        if (merger->GetSourcesCount() == 0) {
-            ResultBatch = nullptr;
-            return true;
-        }
-
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "DoExecute")("interval_idx", MergingContext->GetIntervalIdx());
-        merger->SkipToLowerBound(MergingContext->GetStart(), MergingContext->GetIncludeStart());
-        std::optional lastResultPosition;
-        if (merger->GetSourcesCount() == 1) {
-            ResultBatch = merger->SingleSourceDrain(MergingContext->GetFinish(), MergingContext->GetIncludeFinish(), &lastResultPosition);
-            if (ResultBatch) {
-                Context->GetCommonContext()->GetCounters().OnLogScanInterval(ResultBatch->num_rows());
-                AFL_VERIFY(ResultBatch->schema()->Equals(Context->GetProgramInputColumns()->GetSchema()))("res", ResultBatch->schema()->ToString())("ctx", Context->GetProgramInputColumns()->GetSchema()->ToString());
-            }
-            if (MergingContext->GetIncludeFinish() && originalSourcesCount == 1) {
-                AFL_VERIFY(merger->IsEmpty())("merging_context_finish", MergingContext->GetFinish().DebugJson().GetStringRobust())("merger", merger->DebugString());
-            }
-        } else {
-            auto rbBuilder = std::make_shared(Context->GetProgramInputColumns()->GetSchema()->fields());
-            merger->DrainCurrentTo(*rbBuilder, MergingContext->GetFinish(), MergingContext->GetIncludeFinish(), &lastResultPosition);
-            Context->GetCommonContext()->GetCounters().OnLinearScanInterval(rbBuilder->GetRecordsCount());
-            ResultBatch = rbBuilder->Finalize();
-        }
-        if (lastResultPosition) {
-            LastPK = lastResultPosition->ExtractSortingPosition();
-        }
-        AFL_VERIFY(!!LastPK == (!!ResultBatch && ResultBatch->num_rows()));
-        PrepareResultBatch();
-        return true;
-    }
-public:
-    virtual TString GetTaskClassIdentifier() const override {
-        return "CS::MERGE_RESULT";
-    }
-
-    TMergeTask(std::shared_ptr&& mergingContext, const std::shared_ptr& readContext, std::map>&& sources)
-        : TBase(readContext->GetCommonContext()->GetScanActorId())
-        , Guard(readContext->GetCommonContext()->GetCounters().GetMergeTasksGuard())
-        , Context(readContext)
-        , Sources(std::move(sources))
-        , MergingContext(std::move(mergingContext))
-        , IntervalIdx(MergingContext->GetIntervalIdx())
-    {
-        for (auto&& s : Sources) {
-            AFL_VERIFY(s.second->IsDataReady());
-        }
-
-    }
-};
-
-void TFetchingInterval::ConstructResult() {
-    if (ReadySourcesCount.Val() != WaitSourcesCount || !ReadyGuards.Val()) {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "skip_construct_result")("interval_idx", IntervalIdx);
-        return;
-    } else {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "start_construct_result")("interval_idx", IntervalIdx);
-    }
-    if (AtomicCas(&ResultConstructionInProgress, 1, 0)) {
-        auto task = std::make_shared(std::move(MergingContext), Context, std::move(Sources));
-        task->SetPriority(NConveyor::ITask::EPriority::High);
-        NConveyor::TScanServiceOperator::SendTaskToExecute(task);
-    }
-}
-
-void TFetchingInterval::OnInitResourcesGuard(const std::shared_ptr& guard) {
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "allocated")("interval_idx", IntervalIdx);
-    AFL_VERIFY(guard);
-    AFL_VERIFY(!ResourcesGuard);
-    ResourcesGuard = guard;
-    AFL_VERIFY(ReadyGuards.Inc() <= 1);
-    ConstructResult();
-}
-
-void TFetchingInterval::OnSourceFetchStageReady(const ui32 /*sourceIdx*/) {
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "fetched")("interval_idx", IntervalIdx);
-    AFL_VERIFY(ReadySourcesCount.Inc() <= WaitSourcesCount);
-    ConstructResult();
-}
-
-TFetchingInterval::TFetchingInterval(const NIndexedReader::TSortableBatchPosition& start, const NIndexedReader::TSortableBatchPosition& finish,
-    const ui32 intervalIdx, const std::map>& sources, const std::shared_ptr& context,
-    const bool includeFinish, const bool includeStart, const bool isExclusiveInterval)
-    : TTaskBase(0, context->GetMemoryForSources(sources, isExclusiveInterval), "", context->GetCommonContext()->GetResourcesTaskContext())
-    , MergingContext(std::make_shared(start, finish, intervalIdx, includeFinish, includeStart, isExclusiveInterval))
-    , Context(context)
-    , TaskGuard(Context->GetCommonContext()->GetCounters().GetResourcesAllocationTasksGuard())
-    , Sources(sources)
-    , IntervalIdx(intervalIdx)
-{
-    Y_ABORT_UNLESS(Sources.size());
-    for (auto&& [_, i] : Sources) {
-        if (!i->IsDataReady()) {
-            ++WaitSourcesCount;
-        }
-        i->RegisterInterval(*this);
-    }
-}
-
-void TFetchingInterval::DoOnAllocationSuccess(const std::shared_ptr& guard) {
-    AFL_VERIFY(guard);
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("interval_idx", IntervalIdx)("event", "resources_allocated")
-        ("resources", guard->DebugString())("start", MergingContext->GetIncludeStart())("finish", MergingContext->GetIncludeFinish())("sources", Sources.size());
-    for (auto&& [_, i] : Sources) {
-        i->InitFetchingPlan(Context->GetColumnsFetchingPlan(i, MergingContext->IsExclusiveInterval()), i, MergingContext->IsExclusiveInterval());
-    }
-    OnInitResourcesGuard(guard);
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/interval.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/interval.h
deleted file mode 100644
index 50f7fe76a807..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/interval.h
+++ /dev/null
@@ -1,116 +0,0 @@
-#pragma once
-#include 
-#include 
-#include "source.h"
-
-namespace NKikimr::NOlap::NPlainReader {
-
-class TScanHead;
-
-class TMergingContext {
-protected:
-    YDB_READONLY_DEF(NIndexedReader::TSortableBatchPosition, Start);
-    YDB_READONLY_DEF(NIndexedReader::TSortableBatchPosition, Finish);
-    YDB_READONLY(bool, IncludeFinish, true);
-    YDB_READONLY(bool, IncludeStart, false);
-    YDB_READONLY(ui32, IntervalIdx, 0);
-    bool IsExclusiveIntervalFlag = false;
-public:
-    TMergingContext(const NIndexedReader::TSortableBatchPosition& start, const NIndexedReader::TSortableBatchPosition& finish,
-        const ui32 intervalIdx, const bool includeFinish, const bool includeStart, const bool isExclusiveInterval)
-        : Start(start)
-        , Finish(finish)
-        , IncludeFinish(includeFinish)
-        , IncludeStart(includeStart)
-        , IntervalIdx(intervalIdx)
-        , IsExclusiveIntervalFlag(isExclusiveInterval)
-    {
-
-    }
-
-    bool IsExclusiveInterval() const {
-        return IsExclusiveIntervalFlag;
-    }
-
-    NJson::TJsonValue DebugJson() const {
-        NJson::TJsonValue result = NJson::JSON_MAP;
-        result.InsertValue("start", Start.DebugJson());
-        result.InsertValue("idx", IntervalIdx);
-        result.InsertValue("finish", Finish.DebugJson());
-        result.InsertValue("include_finish", IncludeFinish);
-        result.InsertValue("exclusive", IsExclusiveIntervalFlag);
-        return result;
-    }
-
-};
-
-class TFetchingInterval: public TNonCopyable, public NResourceBroker::NSubscribe::ITask {
-private:
-    using TTaskBase = NResourceBroker::NSubscribe::ITask;
-    std::shared_ptr MergingContext;
-    TAtomic ResultConstructionInProgress = 0;
-    std::shared_ptr Context;
-    NColumnShard::TCounterGuard TaskGuard;
-    std::map> Sources;
-    void ConstructResult();
-
-    IDataSource& GetSourceVerified(const ui32 idx) {
-        auto it = Sources.find(idx);
-        Y_ABORT_UNLESS(it != Sources.end());
-        return *it->second;
-    }
-
-    std::shared_ptr ExtractSourceVerified(const ui32 idx) {
-        auto it = Sources.find(idx);
-        Y_ABORT_UNLESS(it != Sources.end());
-        auto result = it->second;
-        Sources.erase(it);
-        return result;
-    }
-
-    std::shared_ptr ResourcesGuard;
-    const ui32 IntervalIdx;
-    TAtomicCounter ReadySourcesCount = 0;
-    TAtomicCounter ReadyGuards = 0;
-    ui32 WaitSourcesCount = 0;
-    void OnInitResourcesGuard(const std::shared_ptr& guard);
-protected:
-    virtual void DoOnAllocationSuccess(const std::shared_ptr& guard) override;
-
-public:
-    ui32 GetIntervalIdx() const {
-        return IntervalIdx;
-    }
-
-    const std::map>& GetSources() const {
-        return Sources;
-    }
-
-    const std::shared_ptr& GetResourcesGuard() const {
-        return ResourcesGuard;
-    }
-
-    void Abort() {
-        for (auto&& i : Sources) {
-            i.second->Abort();
-        }
-    }
-
-    NJson::TJsonValue DebugJson() const {
-        NJson::TJsonValue result = NJson::JSON_MAP;
-        result.InsertValue("merging_context", MergingContext ? MergingContext->DebugJson() : "");
-        auto& jsonSources = result.InsertValue("sources", NJson::JSON_ARRAY);
-        for (auto&& [_, i] : Sources) {
-            jsonSources.AppendValue(i->DebugJson());
-        }
-        return result;
-    }
-
-    void OnSourceFetchStageReady(const ui32 sourceIdx);
-
-    TFetchingInterval(const NIndexedReader::TSortableBatchPosition& start, const NIndexedReader::TSortableBatchPosition& finish,
-        const ui32 intervalIdx, const std::map>& sources, const std::shared_ptr& context,
-        const bool includeFinish, const bool includeStart, const bool isExclusiveInterval);
-};
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/columns_set.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/columns_set.cpp
similarity index 89%
rename from ydb/core/tx/columnshard/engines/reader/plain_reader/columns_set.cpp
rename to ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/columns_set.cpp
index ee95b7e42fa1..f100c8f89041 100644
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/columns_set.cpp
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/columns_set.cpp
@@ -2,7 +2,7 @@
 #include 
 #include 
 
-namespace NKikimr::NOlap::NPlainReader {
+namespace NKikimr::NOlap::NReader::NPlain {
 
 TString TColumnsSet::DebugString() const {
     return TStringBuilder() << "("
@@ -11,7 +11,7 @@ TString TColumnsSet::DebugString() const {
         << ");";
 }
 
-NKikimr::NOlap::NPlainReader::TColumnsSet TColumnsSet::operator-(const TColumnsSet& external) const {
+NKikimr::NOlap::NReader::NPlain::TColumnsSet TColumnsSet::operator-(const TColumnsSet& external) const {
     if (external.IsEmpty() || IsEmpty()) {
         return *this;
     }
@@ -30,7 +30,7 @@ NKikimr::NOlap::NPlainReader::TColumnsSet TColumnsSet::operator-(const TColumnsS
     return result;
 }
 
-NKikimr::NOlap::NPlainReader::TColumnsSet TColumnsSet::operator+(const TColumnsSet& external) const {
+NKikimr::NOlap::NReader::NPlain::TColumnsSet TColumnsSet::operator+(const TColumnsSet& external) const {
     if (external.IsEmpty()) {
         return *this;
     }
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/columns_set.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/columns_set.h
similarity index 83%
rename from ydb/core/tx/columnshard/engines/reader/plain_reader/columns_set.h
rename to ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/columns_set.h
index 97fef7f317eb..08d7ac103d80 100644
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/columns_set.h
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/columns_set.h
@@ -4,7 +4,7 @@
 #include 
 #include 
 
-namespace NKikimr::NOlap::NPlainReader {
+namespace NKikimr::NOlap::NReader::NPlain {
 
 class TIndexesSet {
 private:
@@ -83,6 +83,11 @@ class TColumnsSet {
         return *FilteredSchema;
     }
 
+    const std::shared_ptr& GetFilteredSchemaPtrVerified() const {
+        AFL_VERIFY(FilteredSchema);
+        return FilteredSchema;
+    }
+
     bool Contains(const std::shared_ptr& columnsSet) const {
         if (!columnsSet) {
             return true;
@@ -106,6 +111,25 @@ class TColumnsSet {
         return true;
     }
 
+    bool Cross(const TColumnsSet& columnsSet) const {
+        for (auto&& i : columnsSet.ColumnIds) {
+            if (ColumnIds.contains(i)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    std::set Intersect(const TColumnsSet& columnsSet) const {
+        std::set result;
+        for (auto&& i : columnsSet.ColumnIds) {
+            if (ColumnIds.contains(i)) {
+                result.emplace(i);
+            }
+        }
+        return result;
+    }
+
     bool IsEqual(const TColumnsSet& columnsSet) const {
         if (columnsSet.GetColumnIds().size() != ColumnIds.size()) {
             return false;
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/constructor.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/constructor.cpp
new file mode 100644
index 000000000000..55810391516d
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/constructor.cpp
@@ -0,0 +1,21 @@
+#include "constructor.h"
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+void TBlobsFetcherTask::DoOnDataReady(const std::shared_ptr& /*resourcesGuard*/) {
+    Source->MutableStageData().AddBlobs(Source->DecodeBlobAddresses(ExtractBlobsData()));
+    AFL_VERIFY(Step.Next());
+    auto task = std::make_shared(Source, std::move(Step), Context->GetCommonContext()->GetScanActorId());
+    NConveyor::TScanServiceOperator::SendTaskToExecute(task);
+}
+
+bool TBlobsFetcherTask::DoOnError(const TString& storageId, const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status) {
+    AFL_ERROR(NKikimrServices::TX_COLUMNSHARD_SCAN)("error_on_blob_reading", range.ToString())("scan_actor_id", Context->GetCommonContext()->GetScanActorId())
+        ("status", status.GetErrorMessage())("status_code", status.GetStatus())("storage_id", storageId);
+    NActors::TActorContext::AsActorContext().Send(Context->GetCommonContext()->GetScanActorId(), 
+        std::make_unique(TConclusionStatus::Fail("cannot read blob range " + range.ToString())));
+    return false;
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/constructor.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/constructor.h
new file mode 100644
index 000000000000..79e3e26c4e3c
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/constructor.h
@@ -0,0 +1,32 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
+#include "source.h"
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+class TBlobsFetcherTask: public NBlobOperations::NRead::ITask, public NColumnShard::TMonitoringObjectsCounter {
+private:
+    using TBase = NBlobOperations::NRead::ITask;
+    const std::shared_ptr Source;
+    TFetchingScriptCursor Step;
+    const std::shared_ptr Context;
+
+    virtual void DoOnDataReady(const std::shared_ptr& resourcesGuard) override;
+    virtual bool DoOnError(const TString& storageId, const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status) override;
+public:
+    TBlobsFetcherTask(const std::vector>& readActions, const std::shared_ptr& sourcePtr,
+        const TFetchingScriptCursor& step, const std::shared_ptr& context, const TString& taskCustomer, const TString& externalTaskId)
+        : TBase(readActions, taskCustomer, externalTaskId) 
+        , Source(sourcePtr)
+        , Step(step)
+        , Context(context)
+    {
+
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/context.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/context.cpp
new file mode 100644
index 000000000000..d7c566762869
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/context.cpp
@@ -0,0 +1,235 @@
+#include "context.h"
+#include "source.h"
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+std::unique_ptr TSpecialReadContext::BuildMerger() const {
+    return std::make_unique(ReadMetadata->GetReplaceKey(), ProgramInputColumns->GetSchema(), CommonContext->IsReverse(), IIndexInfo::GetSpecialColumnNames());
+}
+
+ui64 TSpecialReadContext::GetMemoryForSources(const THashMap>& sources, const bool isExclusive) {
+    ui64 result = 0;
+    bool hasSequentialReadSources = false;
+    for (auto&& i : sources) {
+        auto fetchingPlan = GetColumnsFetchingPlan(i.second);
+        AFL_VERIFY(i.second->GetIntervalsCount());
+        const ui64 sourceMemory = std::max(1, fetchingPlan->PredictRawBytes(i.second) / i.second->GetIntervalsCount());
+        if (!i.second->IsSourceInMemory()) {
+            hasSequentialReadSources = true;
+        }
+        result += sourceMemory;
+    }
+    AFL_VERIFY(result);
+    if (hasSequentialReadSources) {
+        result += ReadSequentiallyBufferSize;
+    } else {
+        if (!isExclusive && !CommonContext->IsReverse()) {
+            result = 2 * result; // due to in time we will have data in original portion + data in merged(or reversed) interval
+        }
+    }
+    return result;
+}
+
+std::shared_ptr TSpecialReadContext::GetColumnsFetchingPlan(const std::shared_ptr& source) const {
+    const bool needSnapshots = !source->GetExclusiveIntervalOnly() || ReadMetadata->GetRequestSnapshot() < source->GetRecordSnapshotMax() || !source->IsSourceInMemory();
+    const bool partialUsageByPK = ReadMetadata->GetPKRangesFilter().IsPortionInPartialUsage(source->GetStartReplaceKey(), source->GetFinishReplaceKey(), ReadMetadata->GetIndexInfo());
+    const bool useIndexes = (IndexChecker ? source->HasIndexes(IndexChecker->GetIndexIds()) : false);
+    if (auto result = CacheFetchingScripts[needSnapshots ? 1 : 0][(source->GetExclusiveIntervalOnly() && source->IsSourceInMemory()) ? 1 : 0][partialUsageByPK ? 1 : 0][useIndexes ? 1 : 0]) {
+        return result;
+    }
+    {
+        std::shared_ptr result = std::make_shared();
+        result->SetBranchName("FAKE");
+        result->AddStep(std::make_shared(source->GetRecordsCount()));
+        return result;
+    }
+}
+
+std::shared_ptr TSpecialReadContext::BuildColumnsFetchingPlan(const bool needSnapshots, const bool exclusiveSource,
+    const bool partialUsageByPredicateExt, const bool useIndexes) const {
+    std::shared_ptr result = std::make_shared();
+    const bool partialUsageByPredicate = partialUsageByPredicateExt && PredicateColumns->GetColumnsCount();
+    if (!!IndexChecker && useIndexes) {
+        result->AddStep(std::make_shared(std::make_shared(IndexChecker->GetIndexIds())));
+        result->AddStep(std::make_shared(IndexChecker));
+    }
+    if (!EFColumns->GetColumnsCount() && !partialUsageByPredicate) {
+        result->SetBranchName("simple");
+        TColumnsSet columnsFetch = *FFColumns;
+        if (needSnapshots) {
+            columnsFetch = columnsFetch + *SpecColumns;
+        }
+        if (!exclusiveSource) {
+            columnsFetch = columnsFetch + *PKColumns + *SpecColumns;
+        } else {
+            if (columnsFetch.GetColumnsCount() == 1 && SpecColumns->Contains(columnsFetch)) {
+                return nullptr;
+            }
+        }
+        if (columnsFetch.GetColumnsCount()) {
+            result->AddStep(std::make_shared(std::make_shared(columnsFetch)));
+            if (!exclusiveSource) {
+                result->AddStep(std::make_shared(std::make_shared(*PKColumns + *SpecColumns), "LAST"));
+                auto additional = columnsFetch - (*PKColumns + *SpecColumns);
+                if (!additional.IsEmpty()) {
+                    result->AddStep(std::make_shared(std::make_shared(columnsFetch - (*PKColumns + *SpecColumns)), "LAST"));
+                }
+            } else {
+                result->AddStep(std::make_shared(std::make_shared(columnsFetch), "LAST"));
+            }
+        } else {
+            return nullptr;
+        }
+    } else if (exclusiveSource) {
+        result->SetBranchName("exclusive");
+        TColumnsSet columnsFetch = *EFColumns;
+        if (needSnapshots || FFColumns->Cross(*SpecColumns)) {
+            columnsFetch = columnsFetch + *SpecColumns;
+        }
+        if (partialUsageByPredicate) {
+            columnsFetch = columnsFetch + *PredicateColumns;
+        }
+        AFL_VERIFY(columnsFetch.GetColumnsCount());
+        result->AddStep(std::make_shared(std::make_shared(columnsFetch)));
+
+        if (needSnapshots || FFColumns->Cross(*SpecColumns)) {
+            result->AddStep(std::make_shared(SpecColumns, "SPEC"));
+            result->AddStep(std::make_shared());
+            columnsFetch = columnsFetch - *SpecColumns;
+        }
+        if (partialUsageByPredicate) {
+            result->AddStep(std::make_shared(PredicateColumns, "PREDICATE"));
+            result->AddStep(std::make_shared());
+            columnsFetch = columnsFetch - *PredicateColumns;
+        }
+        for (auto&& i : ReadMetadata->GetProgram().GetSteps()) {
+            if (!i->IsFilterOnly()) {
+                break;
+            }
+            TColumnsSet stepColumnIds(i->GetFilterOriginalColumnIds(), ReadMetadata->GetIndexInfo(), ReadMetadata->GetResultSchema());
+            {
+                auto intersectionIds = columnsFetch.Intersect(stepColumnIds);
+                if (intersectionIds.size()) {
+                    TColumnsSet intersection(intersectionIds, ReadMetadata->GetIndexInfo(), ReadMetadata->GetResultSchema());
+                    result->AddStep(std::make_shared(std::make_shared(intersection), "EF"));
+                    columnsFetch = columnsFetch - intersection;
+                }
+            }
+            result->AddStep(std::make_shared(i));
+        }
+        AFL_VERIFY(columnsFetch.IsEmpty());
+        TColumnsSet columnsAdditionalFetch = *FFColumns - *EFColumns - *SpecColumns;
+        if (partialUsageByPredicate) {
+            columnsAdditionalFetch = columnsAdditionalFetch - *PredicateColumns;
+        }
+        if (columnsAdditionalFetch.GetColumnsCount()) {
+            result->AddStep(std::make_shared(std::make_shared(columnsAdditionalFetch)));
+            result->AddStep(std::make_shared(std::make_shared(columnsAdditionalFetch), "LAST"));
+        }
+    } else {
+        result->SetBranchName("merge");
+        TColumnsSet columnsFetch = *MergeColumns + *EFColumns;
+        AFL_VERIFY(columnsFetch.GetColumnsCount());
+        result->AddStep(std::make_shared(std::make_shared(columnsFetch)));
+        result->AddStep(std::make_shared(SpecColumns, "SPEC"));
+        if (needSnapshots) {
+            result->AddStep(std::make_shared());
+        }
+        result->AddStep(std::make_shared(PKColumns, "PK"));
+        if (partialUsageByPredicate) {
+            result->AddStep(std::make_shared());
+        }
+        TColumnsSet columnsFetchEF = columnsFetch - *SpecColumns - *PKColumns;
+        for (auto&& i : ReadMetadata->GetProgram().GetSteps()) {
+            if (!i->IsFilterOnly()) {
+                break;
+            }
+            TColumnsSet stepColumnIds(i->GetFilterOriginalColumnIds(), ReadMetadata->GetIndexInfo(), ReadMetadata->GetResultSchema());
+            {
+                auto intersectionIds = columnsFetchEF.Intersect(stepColumnIds);
+                if (intersectionIds.size()) {
+                    TColumnsSet intersection(intersectionIds, ReadMetadata->GetIndexInfo(), ReadMetadata->GetResultSchema());
+                    result->AddStep(std::make_shared(std::make_shared(intersection), "EF"));
+                    columnsFetchEF = columnsFetchEF - intersection;
+                }
+            }
+            result->AddStep(std::make_shared(i));
+        }
+        AFL_VERIFY(columnsFetchEF.IsEmpty());
+        const TColumnsSet columnsAdditionalFetch = *FFColumns - *EFColumns - *SpecColumns - *PKColumns - *PredicateColumns;
+        if (columnsAdditionalFetch.GetColumnsCount()) {
+            result->AddStep(std::make_shared(std::make_shared(columnsAdditionalFetch)));
+            result->AddStep(std::make_shared(std::make_shared(columnsAdditionalFetch), "LAST"));
+        }
+    }
+    return result;
+}
+
+TSpecialReadContext::TSpecialReadContext(const std::shared_ptr& commonContext)
+    : CommonContext(commonContext)
+{
+    ReadMetadata = dynamic_pointer_cast(CommonContext->GetReadMetadata());
+    Y_ABORT_UNLESS(ReadMetadata);
+    Y_ABORT_UNLESS(ReadMetadata->SelectInfo);
+
+    auto readSchema = ReadMetadata->GetResultSchema();
+    SpecColumns = std::make_shared(TIndexInfo::GetSpecialColumnIdsSet(), ReadMetadata->GetIndexInfo(), readSchema);
+    IndexChecker = ReadMetadata->GetProgram().GetIndexChecker();
+    {
+        auto predicateColumns = ReadMetadata->GetPKRangesFilter().GetColumnIds(ReadMetadata->GetIndexInfo());
+        if (predicateColumns.size()) {
+            PredicateColumns = std::make_shared(predicateColumns, ReadMetadata->GetIndexInfo(), readSchema);
+        } else {
+            PredicateColumns = std::make_shared();
+        }
+    }
+    {
+        auto efColumns = ReadMetadata->GetEarlyFilterColumnIds();
+        if (efColumns.size()) {
+            EFColumns = std::make_shared(efColumns, ReadMetadata->GetIndexInfo(), readSchema);
+        } else {
+            EFColumns = std::make_shared();
+        }
+    }
+    if (ReadMetadata->HasProcessingColumnIds()) {
+        FFColumns = std::make_shared(ReadMetadata->GetProcessingColumnIds(), ReadMetadata->GetIndexInfo(), readSchema);
+        if (SpecColumns->Contains(*FFColumns) && !EFColumns->IsEmpty()) {
+            FFColumns = std::make_shared(*EFColumns + *SpecColumns);
+            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("ff_modified", FFColumns->DebugString());
+        } else {
+            AFL_VERIFY(!FFColumns->Contains(*SpecColumns))("info", FFColumns->DebugString());
+            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("ff_first", FFColumns->DebugString());
+        }
+    } else {
+        FFColumns = EFColumns;
+    }
+    if (FFColumns->IsEmpty()) {
+        ProgramInputColumns = SpecColumns;
+    } else {
+        ProgramInputColumns = FFColumns;
+    }
+
+    PKColumns = std::make_shared(ReadMetadata->GetPKColumnIds(), ReadMetadata->GetIndexInfo(), readSchema);
+    MergeColumns = std::make_shared(*PKColumns + *SpecColumns);
+
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("columns_context_info", DebugString());
+    CacheFetchingScripts[0][0][0][0] = BuildColumnsFetchingPlan(false, false, false, false);
+    CacheFetchingScripts[0][1][0][0] = BuildColumnsFetchingPlan(false, true, false, false);
+    CacheFetchingScripts[1][0][0][0] = BuildColumnsFetchingPlan(true, false, false, false);
+    CacheFetchingScripts[1][1][0][0] = BuildColumnsFetchingPlan(true, true, false, false);
+    CacheFetchingScripts[0][0][1][0] = BuildColumnsFetchingPlan(false, false, true, false);
+    CacheFetchingScripts[0][1][1][0] = BuildColumnsFetchingPlan(false, true, true, false);
+    CacheFetchingScripts[1][0][1][0] = BuildColumnsFetchingPlan(true, false, true, false);
+    CacheFetchingScripts[1][1][1][0] = BuildColumnsFetchingPlan(true, true, true, false);
+
+    CacheFetchingScripts[0][0][0][1] = BuildColumnsFetchingPlan(false, false, false, true);
+    CacheFetchingScripts[0][1][0][1] = BuildColumnsFetchingPlan(false, true, false, true);
+    CacheFetchingScripts[1][0][0][1] = BuildColumnsFetchingPlan(true, false, false, true);
+    CacheFetchingScripts[1][1][0][1] = BuildColumnsFetchingPlan(true, true, false, true);
+    CacheFetchingScripts[0][0][1][1] = BuildColumnsFetchingPlan(false, false, true, true);
+    CacheFetchingScripts[0][1][1][1] = BuildColumnsFetchingPlan(false, true, true, true);
+    CacheFetchingScripts[1][0][1][1] = BuildColumnsFetchingPlan(true, false, true, true);
+    CacheFetchingScripts[1][1][1][1] = BuildColumnsFetchingPlan(true, true, true, true);
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/context.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/context.h
new file mode 100644
index 000000000000..dc46c4b70b19
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/context.h
@@ -0,0 +1,61 @@
+#pragma once
+#include "columns_set.h"
+#include "fetching.h"
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+class IDataSource;
+
+class TSpecialReadContext {
+private:
+    YDB_READONLY_DEF(std::shared_ptr, CommonContext);
+
+    YDB_READONLY_DEF(std::shared_ptr, SpecColumns);
+    YDB_READONLY_DEF(std::shared_ptr, MergeColumns);
+    YDB_READONLY_DEF(std::shared_ptr, EFColumns);
+    YDB_READONLY_DEF(std::shared_ptr, PredicateColumns);
+    YDB_READONLY_DEF(std::shared_ptr, PKColumns);
+    YDB_READONLY_DEF(std::shared_ptr, FFColumns);
+    YDB_READONLY_DEF(std::shared_ptr, ProgramInputColumns);
+
+    NIndexes::TIndexCheckerContainer IndexChecker;
+    TReadMetadata::TConstPtr ReadMetadata;
+    std::shared_ptr EmptyColumns = std::make_shared();
+    std::shared_ptr BuildColumnsFetchingPlan(const bool needSnapshotsFilter, const bool exclusiveSource, const bool partialUsageByPredicate, const bool useIndexes) const;
+    std::array, 2>, 2>, 2>, 2> CacheFetchingScripts;
+public:
+    static const inline ui64 DefaultRejectMemoryIntervalLimit = ((ui64)3) << 30;
+    static const inline ui64 DefaultReduceMemoryIntervalLimit = DefaultRejectMemoryIntervalLimit;
+    static const inline ui64 DefaultReadSequentiallyBufferSize = ((ui64)8) << 20;
+
+    const ui64 ReduceMemoryIntervalLimit = NYDBTest::TControllers::GetColumnShardController()->GetReduceMemoryIntervalLimit(DefaultReduceMemoryIntervalLimit);
+    const ui64 RejectMemoryIntervalLimit = NYDBTest::TControllers::GetColumnShardController()->GetRejectMemoryIntervalLimit(DefaultRejectMemoryIntervalLimit);
+    const ui64 ReadSequentiallyBufferSize = DefaultReadSequentiallyBufferSize;
+
+    ui64 GetMemoryForSources(const THashMap>& sources, const bool isExclusive);
+
+    const TReadMetadata::TConstPtr& GetReadMetadata() const {
+        return ReadMetadata;
+    }
+
+    std::unique_ptr BuildMerger() const;
+
+    TString DebugString() const {
+        return TStringBuilder() <<
+            "ef=" << EFColumns->DebugString() << ";" <<
+            "pk=" << PKColumns->DebugString() << ";" <<
+            "ff=" << FFColumns->DebugString() << ";" <<
+            "program_input=" << ProgramInputColumns->DebugString()
+            ;
+    }
+
+    TSpecialReadContext(const std::shared_ptr& commonContext);
+
+    std::shared_ptr GetColumnsFetchingPlan(const std::shared_ptr& source) const;
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/fetched_data.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/fetched_data.cpp
new file mode 100644
index 000000000000..3b434b67cc50
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/fetched_data.cpp
@@ -0,0 +1,18 @@
+#include "fetched_data.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+
+void TFetchedData::SyncTableColumns(const std::vector>& fields) {
+    for (auto&& i : fields) {
+        if (Table->GetSchema()->GetFieldByName(i->name())) {
+            continue;
+        }
+        Table->AddField(i, std::make_shared(NArrow::TThreadSimpleArraysCache::GetNull(i->type(), Table->num_rows())))
+            .Validate();
+    }
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/fetched_data.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/fetched_data.h
new file mode 100644
index 000000000000..f1575baaf9cc
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/fetched_data.h
@@ -0,0 +1,131 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+
+class TFetchedData {
+protected:
+    using TBlobs = THashMap;
+    YDB_ACCESSOR_DEF(TBlobs, Blobs);
+    YDB_READONLY_DEF(std::shared_ptr, Table);
+    YDB_READONLY_DEF(std::shared_ptr, Filter);
+    YDB_READONLY(bool, UseFilter, false);
+public:
+    TFetchedData(const bool useFilter)
+        : UseFilter(useFilter)
+    {
+
+    }
+
+    void SyncTableColumns(const std::vector>& fields);
+
+    std::shared_ptr GetAppliedFilter() const {
+        return UseFilter ? Filter : nullptr;
+    }
+
+    std::shared_ptr GetNotAppliedFilter() const {
+        return UseFilter ? nullptr : Filter;
+    }
+
+    TString ExtractBlob(const TChunkAddress& address) {
+        auto it = Blobs.find(address);
+        AFL_VERIFY(it != Blobs.end());
+        AFL_VERIFY(it->second.IsBlob());
+        auto result = it->second.GetData();
+        Blobs.erase(it);
+        return result;
+    }
+
+    void AddBlobs(THashMap&& blobData) {
+        for (auto&& i : blobData) {
+            AFL_VERIFY(Blobs.emplace(i.first, std::move(i.second)).second);
+        }
+    }
+
+    void AddNulls(THashMap&& blobs) {
+        for (auto&& i : blobs) {
+            AFL_VERIFY(Blobs.emplace(i.first, i.second).second);
+        }
+    }
+
+    bool IsEmpty() const {
+        return (Filter && Filter->IsTotalDenyFilter()) || (Table && !Table->num_rows());
+    }
+
+    void AddFilter(const std::shared_ptr& filter) {
+        if (!filter) {
+            return;
+        }
+        return AddFilter(*filter);
+    }
+
+    void AddFilter(const NArrow::TColumnFilter& filter) {
+        if (UseFilter && Table) {
+            AFL_VERIFY(filter.Apply(Table));
+        }
+        if (!Filter) {
+            Filter = std::make_shared(filter);
+        } else if (UseFilter) {
+            *Filter = Filter->CombineSequentialAnd(filter);
+        } else {
+            *Filter = Filter->And(filter);
+        }
+    }
+
+    void AddBatch(const std::shared_ptr& batch) {
+        return AddBatch(arrow::Table::Make(batch->schema(), batch->columns(), batch->num_rows()));
+    }
+
+    void AddBatch(const std::shared_ptr& table) {
+        AFL_VERIFY(table);
+        if (UseFilter) {
+            AddBatch(table->BuildTable());
+        } else {
+            if (!Table) {
+                Table = table;
+            } else {
+                auto mergeResult = Table->MergeColumnsStrictly(*table);
+                AFL_VERIFY(mergeResult.IsSuccess())("error", mergeResult.GetErrorMessage());
+            }
+        }
+    }
+
+    void AddBatch(const std::shared_ptr& table) {
+        auto tableLocal = table;
+        if (Filter && UseFilter) {
+            AFL_VERIFY(Filter->Apply(tableLocal));
+        }
+        if (!Table) {
+            Table = std::make_shared(tableLocal);
+        } else {
+            auto mergeResult = Table->MergeColumnsStrictly(NArrow::TGeneralContainer(tableLocal));
+            AFL_VERIFY(mergeResult.IsSuccess())("error", mergeResult.GetErrorMessage());
+        }
+    }
+
+};
+
+class TFetchedResult {
+private:
+    YDB_READONLY_DEF(std::shared_ptr, Batch);
+    YDB_READONLY_DEF(std::shared_ptr, NotAppliedFilter);
+public:
+    TFetchedResult(std::unique_ptr&& data)
+        : Batch(data->GetTable())
+        , NotAppliedFilter(data->GetNotAppliedFilter()) {
+    }
+
+    bool IsEmpty() const {
+        return !Batch || Batch->num_rows() == 0 || (NotAppliedFilter && NotAppliedFilter->IsTotalDenyFilter());
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/fetching.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/fetching.cpp
new file mode 100644
index 000000000000..daef4343318e
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/fetching.cpp
@@ -0,0 +1,141 @@
+#include "fetching.h"
+#include "source.h"
+#include 
+#include 
+
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+bool TStepAction::DoApply(IDataReader& /*owner*/) const {
+    if (FinishedFlag) {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "apply");
+        Source->SetIsReady();
+    }
+    return true;
+}
+
+bool TStepAction::DoExecute() {
+    if (Source->IsAborted()) {
+        return true;
+    }
+    auto executeResult = Cursor.Execute(Source);
+    if (!executeResult) {
+        SetErrorMessage(executeResult.GetErrorMessage());
+        return false;
+    }
+    if (*executeResult) {
+        Source->Finalize();
+        FinishedFlag = true;
+    }
+    return true;
+}
+
+TConclusion TColumnBlobsFetchingStep::DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& step) const {
+    return !source->StartFetchingColumns(source, step, Columns);
+}
+
+ui64 TColumnBlobsFetchingStep::DoPredictRawBytes(const std::shared_ptr& source) const {
+    const ui64 result = source->GetColumnRawBytes(Columns->GetColumnIds());
+    if (!result) {
+        return Columns->GetColumnIds().size() * source->GetRecordsCount() * sizeof(ui32); // null for all records for all columns in future will be
+    } else {
+        return result;
+    }
+}
+
+TConclusion TIndexBlobsFetchingStep::DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& step) const {
+    return !source->StartFetchingIndexes(source, step, Indexes);
+}
+
+ui64 TIndexBlobsFetchingStep::DoPredictRawBytes(const std::shared_ptr& source) const {
+    return source->GetIndexRawBytes(Indexes->GetIndexIdsSet());
+}
+
+TConclusion TAssemblerStep::DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& /*step*/) const {
+    source->AssembleColumns(Columns);
+    return true;
+}
+
+TConclusion TOptionalAssemblerStep::DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& /*step*/) const {
+    source->AssembleColumns(Columns);
+    return true;
+}
+
+bool TOptionalAssemblerStep::DoInitSourceSeqColumnIds(const std::shared_ptr& source) const {
+    for (auto&& i : Columns->GetColumnIds()) {
+        if (source->AddSequentialEntityIds(i)) {
+            return true;
+        }
+    }
+    return false;
+}
+
+TConclusion TFilterProgramStep::DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& /*step*/) const {
+    AFL_VERIFY(source);
+    AFL_VERIFY(Step);
+    std::shared_ptr table;
+    if (source->IsSourceInMemory(Step->GetFilterOriginalColumnIds())) {
+        auto filter = Step->BuildFilter(source->GetStageData().GetTable());
+        if (!filter.ok()) {
+            return TConclusionStatus::Fail(filter.status().message());
+        }
+        source->MutableStageData().AddFilter(*filter);
+    }
+    return true;
+}
+
+ui64 TFilterProgramStep::DoPredictRawBytes(const std::shared_ptr& source) const {
+    return NArrow::TColumnFilter::GetPredictedMemorySize(source->GetRecordsCount());
+}
+
+TConclusion TPredicateFilter::DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& /*step*/) const {
+    auto filter = source->GetContext()->GetReadMetadata()->GetPKRangesFilter().BuildFilter(source->GetStageData().GetTable()->BuildTable());
+    source->MutableStageData().AddFilter(filter);
+    return true;
+}
+
+TConclusion TSnapshotFilter::DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& /*step*/) const {
+    auto filter = MakeSnapshotFilter(source->GetStageData().GetTable()->BuildTable(), source->GetContext()->GetReadMetadata()->GetRequestSnapshot());
+    source->MutableStageData().AddFilter(filter);
+    return true;
+}
+
+TConclusion TBuildFakeSpec::DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& /*step*/) const {
+    std::vector> columns;
+    for (auto&& f : TIndexInfo::ArrowSchemaSnapshot()->fields()) {
+        columns.emplace_back(NArrow::TThreadSimpleArraysCache::GetConst(f->type(), std::make_shared(0), Count));
+    }
+    source->MutableStageData().AddBatch(arrow::RecordBatch::Make(TIndexInfo::ArrowSchemaSnapshot(), Count, columns));
+    return true;
+}
+
+TConclusion TApplyIndexStep::DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& /*step*/) const {
+    source->ApplyIndex(IndexChecker);
+    return true;
+}
+
+TConclusion TFetchingScriptCursor::Execute(const std::shared_ptr& source) {
+    AFL_VERIFY(source);
+    NMiniKQL::TThrowingBindTerminator bind;
+    AFL_VERIFY(!Script->IsFinished(CurrentStepIdx));
+    while (!Script->IsFinished(CurrentStepIdx)) {
+        if (source->GetStageData().IsEmpty()) {
+            break;
+        }
+        auto step = Script->GetStep(CurrentStepIdx);
+        TMemoryProfileGuard mGuard("SCAN_PROFILE::FETCHING::" + step->GetName() + "::" + Script->GetBranchName(), IS_DEBUG_LOG_ENABLED(NKikimrServices::TX_COLUMNSHARD_SCAN_MEMORY));
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("scan_step", step->DebugString())("scan_step_idx", CurrentStepIdx);
+        const TConclusion resultStep = step->ExecuteInplace(source, *this);
+        if (!resultStep) {
+            return resultStep;
+        }
+        if (!*resultStep) {
+            return false;
+        }
+        ++CurrentStepIdx;
+    }
+    return true;
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/fetching.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/fetching.h
new file mode 100644
index 000000000000..1d0a1ceee8f0
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/fetching.h
@@ -0,0 +1,294 @@
+#pragma once
+#include "columns_set.h"
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+class IDataSource;
+class TFetchingScriptCursor;
+class IFetchingStep {
+private:
+    YDB_READONLY_DEF(TString, Name);
+protected:
+    virtual TConclusion DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& step) const = 0;
+    virtual TString DoDebugString() const {
+        return "";
+    }
+public:
+    virtual ui64 DoPredictRawBytes(const std::shared_ptr& /*source*/) const {
+        return 0;
+    }
+    virtual bool DoInitSourceSeqColumnIds(const std::shared_ptr& /*source*/) const {
+        return false;
+    }
+
+    virtual ~IFetchingStep() = default;
+
+    [[nodiscard]] TConclusion ExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& step) const {
+        return DoExecuteInplace(source, step);
+    }
+
+    IFetchingStep(const TString& name)
+        : Name(name)
+    {
+
+    }
+
+    TString DebugString() const {
+        TStringBuilder sb;
+        sb << "name=" << Name << ";details={" << DoDebugString() << "};";
+        return sb;
+    }
+};
+
+class TFetchingScript {
+private:
+    YDB_ACCESSOR(TString, BranchName, "UNDEFINED");
+    std::vector> Steps;
+public:
+    TFetchingScript() = default;
+
+    TString DebugString() const {
+        TStringBuilder sb;
+        sb << "[";
+        for (auto&& i : Steps) {
+            sb << "{" << i->DebugString() << "};";
+        }
+        sb << "]";
+        return sb;
+    }
+
+    const std::shared_ptr& GetStep(const ui32 index) const {
+        AFL_VERIFY(index < Steps.size());
+        return Steps[index];
+    }
+
+    ui64 PredictRawBytes(const std::shared_ptr& source) const {
+        ui64 result = 0;
+        for (auto&& current: Steps) {
+            result += current->DoPredictRawBytes(source);
+        }
+        return result;
+    }
+
+    void AddStep(const std::shared_ptr& step) {
+        AFL_VERIFY(step);
+        Steps.emplace_back(step);
+    }
+
+    bool InitSourceSeqColumnIds(const std::shared_ptr& source) const {
+        for (auto it = Steps.rbegin(); it != Steps.rend(); ++it) {
+            if ((*it)->DoInitSourceSeqColumnIds(source)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    bool IsFinished(const ui32 currentStepIdx) const {
+        AFL_VERIFY(currentStepIdx <= Steps.size());
+        return currentStepIdx == Steps.size();
+    }
+
+    ui32 Execute(const ui32 startStepIdx, const std::shared_ptr& source) const;
+};
+
+class TFetchingScriptCursor {
+private:
+    ui32 CurrentStepIdx = 0;
+    std::shared_ptr Script;
+public:
+    TFetchingScriptCursor(const std::shared_ptr& script, const ui32 index)
+        : CurrentStepIdx(index)
+        , Script(script)
+    {
+
+    }
+
+    const TString& GetName() const {
+        return Script->GetStep(CurrentStepIdx)->GetName();
+    }
+
+    TString DebugString() const {
+        return Script->GetStep(CurrentStepIdx)->DebugString();
+    }
+
+    bool Next() {
+        return !Script->IsFinished(++CurrentStepIdx);
+    }
+
+    TConclusion Execute(const std::shared_ptr& source);
+};
+
+class TStepAction: public IDataTasksProcessor::ITask {
+private:
+    using TBase = IDataTasksProcessor::ITask;
+    std::shared_ptr Source;
+    TFetchingScriptCursor Cursor;
+    bool FinishedFlag = false;
+protected:
+    virtual bool DoApply(IDataReader& owner) const override;
+    virtual bool DoExecute() override;
+public:
+    virtual TString GetTaskClassIdentifier() const override {
+        return "STEP_ACTION";
+    }
+
+    TStepAction(const std::shared_ptr& source, TFetchingScriptCursor&& cursor, const NActors::TActorId& ownerActorId)
+        : TBase(ownerActorId)
+        , Source(source)
+        , Cursor(std::move(cursor))
+    {
+
+    }
+};
+
+class TBuildFakeSpec: public IFetchingStep {
+private:
+    using TBase = IFetchingStep;
+    const ui32 Count = 0;
+protected:
+    virtual TConclusion DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& step) const override;
+    virtual ui64 DoPredictRawBytes(const std::shared_ptr& /*source*/) const override {
+        return TIndexInfo::GetSpecialColumnsRecordSize() * Count;
+    }
+public:
+    TBuildFakeSpec(const ui32 count)
+        : TBase("FAKE_SPEC")
+        , Count(count)
+    {
+        AFL_VERIFY(Count);
+    }
+};
+
+class TApplyIndexStep: public IFetchingStep {
+private:
+    using TBase = IFetchingStep;
+    const NIndexes::TIndexCheckerContainer IndexChecker;
+protected:
+    virtual TConclusion DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& step) const override;
+public:
+    TApplyIndexStep(const NIndexes::TIndexCheckerContainer& indexChecker)
+        : TBase("APPLY_INDEX")
+        , IndexChecker(indexChecker)
+    {
+
+    }
+};
+
+class TColumnBlobsFetchingStep: public IFetchingStep {
+private:
+    using TBase = IFetchingStep;
+    std::shared_ptr Columns;
+protected:
+    virtual TConclusion DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& step) const override;
+    virtual ui64 DoPredictRawBytes(const std::shared_ptr& source) const override;
+    virtual TString DoDebugString() const override {
+        return TStringBuilder() << "columns=" << Columns->DebugString() << ";";
+    }
+public:
+    TColumnBlobsFetchingStep(const std::shared_ptr& columns)
+        : TBase("FETCHING_COLUMNS")
+        , Columns(columns) {
+        AFL_VERIFY(Columns);
+        AFL_VERIFY(Columns->GetColumnsCount());
+    }
+};
+
+class TIndexBlobsFetchingStep: public IFetchingStep {
+private:
+    using TBase = IFetchingStep;
+    std::shared_ptr Indexes;
+protected:
+    virtual TConclusion DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& step) const override;
+    virtual ui64 DoPredictRawBytes(const std::shared_ptr& source) const override;
+    virtual TString DoDebugString() const override {
+        return TStringBuilder() << "indexes=" << Indexes->DebugString() << ";";
+    }
+public:
+    TIndexBlobsFetchingStep(const std::shared_ptr& indexes)
+        : TBase("FETCHING_INDEXES")
+        , Indexes(indexes) {
+        AFL_VERIFY(Indexes);
+        AFL_VERIFY(Indexes->GetIndexesCount());
+    }
+};
+
+class TAssemblerStep: public IFetchingStep {
+private:
+    using TBase = IFetchingStep;
+    YDB_READONLY_DEF(std::shared_ptr, Columns);
+    virtual TString DoDebugString() const override {
+        return TStringBuilder() << "columns=" << Columns->DebugString() << ";";
+    }
+public:
+    virtual TConclusion DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& step) const override;
+    TAssemblerStep(const std::shared_ptr& columns, const TString& specName = Default())
+        : TBase("ASSEMBLER" + (specName ? "::" + specName : ""))
+        , Columns(columns)
+    {
+        AFL_VERIFY(Columns);
+        AFL_VERIFY(Columns->GetColumnsCount());
+    }
+};
+
+class TOptionalAssemblerStep: public IFetchingStep {
+private:
+    using TBase = IFetchingStep;
+    YDB_READONLY_DEF(std::shared_ptr, Columns);
+    virtual TString DoDebugString() const override {
+        return TStringBuilder() << "columns=" << Columns->DebugString() << ";";
+    }
+protected:
+    virtual bool DoInitSourceSeqColumnIds(const std::shared_ptr& source) const override;
+public:
+    virtual TConclusion DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& step) const override;
+    TOptionalAssemblerStep(const std::shared_ptr& columns, const TString& specName = Default())
+        : TBase("OPTIONAL_ASSEMBLER" + (specName ? "::" + specName : ""))
+        , Columns(columns) {
+        AFL_VERIFY(Columns);
+        AFL_VERIFY(Columns->GetColumnsCount());
+    }
+};
+
+class TFilterProgramStep: public IFetchingStep {
+private:
+    using TBase = IFetchingStep;
+    std::shared_ptr Step;
+protected:
+    virtual ui64 DoPredictRawBytes(const std::shared_ptr& source) const override;
+public:
+    virtual TConclusion DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& step) const override;
+    TFilterProgramStep(const std::shared_ptr& step)
+        : TBase("PROGRAM")
+        , Step(step)
+    {
+    }
+};
+
+class TPredicateFilter: public IFetchingStep {
+private:
+    using TBase = IFetchingStep;
+public:
+    virtual TConclusion DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& step) const override;
+    TPredicateFilter()
+        : TBase("PREDICATE") {
+
+    }
+};
+
+class TSnapshotFilter: public IFetchingStep {
+private:
+    using TBase = IFetchingStep;
+public:
+    virtual TConclusion DoExecuteInplace(const std::shared_ptr& source, const TFetchingScriptCursor& step) const override;
+    TSnapshotFilter()
+        : TBase("SNAPSHOT") {
+
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/interval.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/interval.cpp
new file mode 100644
index 000000000000..8e228937b653
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/interval.cpp
@@ -0,0 +1,94 @@
+#include "interval.h"
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+void TFetchingInterval::ConstructResult() {
+    if (ReadySourcesCount.Val() != WaitSourcesCount || !ReadyGuards.Val()) {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "skip_construct_result")("interval_idx", IntervalIdx);
+        return;
+    } else {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "start_construct_result")("interval_idx", IntervalIdx);
+    }
+    if (AtomicCas(&SourcesFinalized, 1, 0)) {
+        IntervalStateGuard.SetStatus(NColumnShard::TScanCounters::EIntervalStatus::WaitMergerStart);
+        auto task = std::make_shared(MergingContext, Context, std::move(Sources));
+        task->SetPriority(NConveyor::ITask::EPriority::High);
+        NConveyor::TScanServiceOperator::SendTaskToExecute(task);
+    }
+}
+
+void TFetchingInterval::OnInitResourcesGuard(const std::shared_ptr& guard) {
+    IntervalStateGuard.SetStatus(NColumnShard::TScanCounters::EIntervalStatus::WaitSources);
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "allocated")("interval_idx", IntervalIdx);
+    AFL_VERIFY(guard);
+    AFL_VERIFY(!ResourcesGuard);
+    ResourcesGuard = guard;
+    for (auto&& i : Sources) {
+        i.second->OnInitResourcesGuard(i.second);
+    }
+    AFL_VERIFY(ReadyGuards.Inc() <= 1);
+    ConstructResult();
+}
+
+void TFetchingInterval::OnSourceFetchStageReady(const ui32 /*sourceIdx*/) {
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "fetched")("interval_idx", IntervalIdx);
+    AFL_VERIFY(ReadySourcesCount.Inc() <= WaitSourcesCount);
+    ConstructResult();
+}
+
+TFetchingInterval::TFetchingInterval(const NArrow::NMerger::TSortableBatchPosition& start, const NArrow::NMerger::TSortableBatchPosition& finish,
+    const ui32 intervalIdx, const THashMap>& sources, const std::shared_ptr& context,
+    const bool includeFinish, const bool includeStart, const bool isExclusiveInterval)
+    : TTaskBase(0, context->GetMemoryForSources(sources, isExclusiveInterval), "", context->GetCommonContext()->GetResourcesTaskContext())
+    , MergingContext(std::make_shared(start, finish, intervalIdx, includeFinish, includeStart, isExclusiveInterval))
+    , Context(context)
+    , TaskGuard(Context->GetCommonContext()->GetCounters().GetResourcesAllocationTasksGuard())
+    , Sources(sources)
+    , IntervalIdx(intervalIdx)
+    , IntervalStateGuard(Context->GetCommonContext()->GetCounters().CreateIntervalStateGuard())
+{
+    Y_ABORT_UNLESS(Sources.size());
+    for (auto&& [_, i] : Sources) {
+        if (!i->IsDataReady()) {
+            ++WaitSourcesCount;
+        }
+        i->RegisterInterval(*this);
+    }
+    IntervalStateGuard.SetStatus(NColumnShard::TScanCounters::EIntervalStatus::WaitResources);
+}
+
+void TFetchingInterval::DoOnAllocationSuccess(const std::shared_ptr& guard) {
+    AFL_VERIFY(guard);
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("interval_idx", IntervalIdx)("event", "resources_allocated")
+        ("resources", guard->DebugString())("start", MergingContext->GetIncludeStart())("finish", MergingContext->GetIncludeFinish())("sources", Sources.size());
+    OnInitResourcesGuard(guard);
+}
+
+void TFetchingInterval::SetMerger(std::unique_ptr&& merger) {
+    AFL_VERIFY(!Merger);
+    AFL_VERIFY(AtomicCas(&PartSendingWait, 1, 0));
+    if (merger) {
+        IntervalStateGuard.SetStatus(NColumnShard::TScanCounters::EIntervalStatus::WaitPartialReply);
+    }
+    Merger = std::move(merger);
+}
+
+bool TFetchingInterval::HasMerger() const {
+    return !!Merger;
+}
+
+void TFetchingInterval::OnPartSendingComplete() {
+    AFL_VERIFY(Merger);
+    AFL_VERIFY(AtomicCas(&PartSendingWait, 0, 1));
+    AFL_VERIFY(AtomicGet(SourcesFinalized) == 1);
+    if (AbortedFlag) {
+        return;
+    }
+    IntervalStateGuard.SetStatus(NColumnShard::TScanCounters::EIntervalStatus::WaitMergerContinue);
+    auto task = std::make_shared(MergingContext, Context, std::move(Merger));
+    task->SetPriority(NConveyor::ITask::EPriority::High);
+    NConveyor::TScanServiceOperator::SendTaskToExecute(task);
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/interval.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/interval.h
new file mode 100644
index 000000000000..80613ef5b2d2
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/interval.h
@@ -0,0 +1,92 @@
+#pragma once
+#include "source.h"
+#include "merge.h"
+
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+class TFetchingInterval: public TNonCopyable, public NResourceBroker::NSubscribe::ITask {
+private:
+    using TTaskBase = NResourceBroker::NSubscribe::ITask;
+    std::shared_ptr MergingContext;
+    bool AbortedFlag = false;
+    TAtomic SourcesFinalized = 0;
+    TAtomic PartSendingWait = 0;
+    std::unique_ptr Merger;
+    std::shared_ptr Context;
+    NColumnShard::TCounterGuard TaskGuard;
+    THashMap> Sources;
+
+    void ConstructResult();
+
+    std::shared_ptr ResourcesGuard;
+    const ui32 IntervalIdx;
+    TAtomicCounter ReadySourcesCount = 0;
+    TAtomicCounter ReadyGuards = 0;
+    ui32 WaitSourcesCount = 0;
+    NColumnShard::TConcreteScanCounters::TScanIntervalStateGuard IntervalStateGuard;
+    void OnInitResourcesGuard(const std::shared_ptr& guard);
+protected:
+    virtual void DoOnAllocationSuccess(const std::shared_ptr& guard) override;
+
+public:
+    std::set GetPathIds() const {
+        std::set result;
+        for (auto&& i : Sources) {
+            result.emplace(i.second->GetPathId());
+        }
+        return result;
+    }
+
+    ui32 GetIntervalIdx() const {
+        return IntervalIdx;
+    }
+
+    const THashMap>& GetSources() const {
+        return Sources;
+    }
+
+    const std::shared_ptr& GetResourcesGuard() const {
+        return ResourcesGuard;
+    }
+
+    void Abort() {
+        AbortedFlag = true;
+        if (AtomicCas(&SourcesFinalized, 1, 0)) {
+            for (auto&& i : Sources) {
+                i.second->Abort();
+            }
+        }
+    }
+
+    NJson::TJsonValue DebugJson() const {
+        NJson::TJsonValue result = NJson::JSON_MAP;
+        result.InsertValue("merging_context", MergingContext ? MergingContext->DebugJson() : "");
+        auto& jsonSources = result.InsertValue("sources", NJson::JSON_ARRAY);
+        for (auto&& [_, i] : Sources) {
+            jsonSources.AppendValue(i->DebugJson());
+        }
+        return result;
+    }
+
+    NJson::TJsonValue DebugJsonForMemory() const {
+        NJson::TJsonValue result = NJson::JSON_MAP;
+        auto& jsonSources = result.InsertValue("sources", NJson::JSON_ARRAY);
+        for (auto&& [_, i] : Sources) {
+            jsonSources.AppendValue(i->DebugJsonForMemory());
+        }
+        return result;
+    }
+
+    void OnSourceFetchStageReady(const ui32 sourceIdx);
+    void OnPartSendingComplete();
+    void SetMerger(std::unique_ptr&& merger);
+    bool HasMerger() const;
+
+    TFetchingInterval(const NArrow::NMerger::TSortableBatchPosition& start, const NArrow::NMerger::TSortableBatchPosition& finish,
+        const ui32 intervalIdx, const THashMap>& sources, const std::shared_ptr& context,
+        const bool includeFinish, const bool includeStart, const bool isExclusiveInterval);
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/iterator.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/iterator.cpp
new file mode 100644
index 000000000000..60e41095303c
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/iterator.cpp
@@ -0,0 +1,62 @@
+#include "iterator.h"
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+TColumnShardScanIterator::TColumnShardScanIterator(const std::shared_ptr& context, const TReadMetadata::TConstPtr& readMetadata)
+    : Context(context)
+    , ReadMetadata(readMetadata)
+    , ReadyResults(context->GetCounters())
+{
+    IndexedData = readMetadata->BuildReader(Context);
+    Y_ABORT_UNLESS(Context->GetReadMetadata()->IsSorted());
+}
+
+TConclusion> TColumnShardScanIterator::GetBatch() {
+    FillReadyResults();
+    return ReadyResults.pop_front();
+}
+
+void TColumnShardScanIterator::PrepareResults() {
+    FillReadyResults();
+}
+
+TConclusion TColumnShardScanIterator::ReadNextInterval() {
+    return IndexedData->ReadNextInterval();
+}
+
+void TColumnShardScanIterator::DoOnSentDataFromInterval(const ui32 intervalIdx) const {
+    return IndexedData->OnSentDataFromInterval(intervalIdx);
+}
+
+void TColumnShardScanIterator::FillReadyResults() {
+    auto ready = IndexedData->ExtractReadyResults(MaxRowsInBatch);
+    i64 limitLeft = Context->GetReadMetadata()->Limit == 0 ? INT64_MAX : Context->GetReadMetadata()->Limit - ItemsRead;
+    for (size_t i = 0; i < ready.size() && limitLeft; ++i) {
+        auto& batch = ReadyResults.emplace_back(std::move(ready[i]));
+        if (batch.GetResultBatch().num_rows() > limitLeft) {
+            batch.Cut(limitLeft);
+        }
+        limitLeft -= batch.GetResultBatch().num_rows();
+        ItemsRead += batch.GetResultBatch().num_rows();
+    }
+
+    if (limitLeft == 0) {
+        AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "limit_reached_on_scan")("limit", Context->GetReadMetadata()->Limit)("ready", ItemsRead);
+        IndexedData->Abort("records count limit exhausted");
+    }
+}
+
+TColumnShardScanIterator::~TColumnShardScanIterator() {
+    if (!IndexedData->IsFinished()) {
+        IndexedData->Abort("iterator destructor");
+    }
+    ReadMetadata->ReadStats->PrintToLog();
+}
+
+void TColumnShardScanIterator::Apply(IDataTasksProcessor::ITask::TPtr task) {
+    if (!IndexedData->IsFinished()) {
+        Y_ABORT_UNLESS(task->Apply(*IndexedData));
+    }
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/iterator.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/iterator.h
new file mode 100644
index 000000000000..38f05ff276cd
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/iterator.h
@@ -0,0 +1,102 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+class TReadyResults {
+private:
+    const NColumnShard::TConcreteScanCounters Counters;
+    std::deque Data;
+    i64 RecordsCount = 0;
+public:
+    TString DebugString() const {
+        TStringBuilder sb;
+        sb
+            << "count:" << Data.size() << ";"
+            << "records_count:" << RecordsCount << ";"
+            ;
+        if (Data.size()) {
+            sb << "schema=" << Data.front().GetResultBatch().schema()->ToString() << ";";
+        }
+        return sb;
+    }
+    TReadyResults(const NColumnShard::TConcreteScanCounters& counters)
+        : Counters(counters)
+    {
+
+    }
+    TPartialReadResult& emplace_back(TPartialReadResult&& v) {
+        RecordsCount += v.GetResultBatch().num_rows();
+        Data.emplace_back(std::move(v));
+        return Data.back();
+    }
+    std::optional pop_front() {
+        if (Data.empty()) {
+            return {};
+        }
+        auto result = std::move(Data.front());
+        RecordsCount -= result.GetResultBatch().num_rows();
+        Data.pop_front();
+        return result;
+    }
+    bool empty() const {
+        return Data.empty();
+    }
+    size_t size() const {
+        return Data.size();
+    }
+};
+
+class TColumnShardScanIterator: public TScanIteratorBase {
+private:
+    std::shared_ptr Context;
+    const TReadMetadata::TConstPtr ReadMetadata;
+    TReadyResults ReadyResults;
+    std::shared_ptr IndexedData;
+    ui64 ItemsRead = 0;
+    const i64 MaxRowsInBatch = 5000;
+    virtual void DoOnSentDataFromInterval(const ui32 intervalIdx) const override;
+
+public:
+    TColumnShardScanIterator(const std::shared_ptr& context, const TReadMetadata::TConstPtr& readMetadata);
+    ~TColumnShardScanIterator();
+
+    virtual TConclusionStatus Start() override {
+        AFL_VERIFY(IndexedData);
+        return IndexedData->Start();
+    }
+
+    virtual std::optional GetAvailableResultsCount() const override {
+        return ReadyResults.size();
+    }
+
+    virtual const TReadStats& GetStats() const override {
+        return *ReadMetadata->ReadStats;
+    }
+
+    virtual TString DebugString(const bool verbose) const override {
+        return TStringBuilder()
+            << "ready_results:(" << ReadyResults.DebugString() << ");"
+            << "indexed_data:(" << IndexedData->DebugString(verbose) << ")"
+            ;
+    }
+
+    virtual void Apply(IDataTasksProcessor::ITask::TPtr task) override;
+
+    bool Finished() const  override {
+        return IndexedData->IsFinished() && ReadyResults.empty();
+    }
+
+    TConclusion> GetBatch() override;
+    virtual void PrepareResults() override;
+
+    virtual TConclusion ReadNextInterval() override;
+
+private:
+    void FillReadyResults();
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/merge.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/merge.cpp
new file mode 100644
index 000000000000..b36c976881cc
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/merge.cpp
@@ -0,0 +1,157 @@
+#include "merge.h"
+#include "plain_read_data.h"
+#include "source.h"
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+std::optional TBaseMergeTask::DrainMergerLinearScan(const std::optional resultBufferLimit) {
+    std::optional lastResultPosition;
+    AFL_VERIFY(!ResultBatch);
+    auto rbBuilder = std::make_shared(Context->GetProgramInputColumns()->GetSchema()->fields());
+    rbBuilder->SetMemoryBufferLimit(resultBufferLimit);
+    if (!Merger->DrainToControlPoint(*rbBuilder, MergingContext->GetIncludeFinish(), &lastResultPosition)) {
+        if (Merger->IsEmpty()) {
+            Merger = nullptr;
+        } else {
+            AFL_VERIFY(rbBuilder->IsBufferExhausted());
+        }
+    } else {
+        Merger = nullptr;
+    }
+    Context->GetCommonContext()->GetCounters().OnLinearScanInterval(rbBuilder->GetRecordsCount());
+    ResultBatch = NArrow::TStatusValidator::GetValid(arrow::Table::FromRecordBatches({rbBuilder->Finalize()}));
+    return lastResultPosition;
+}
+
+void TBaseMergeTask::PrepareResultBatch() {
+    if (!ResultBatch || ResultBatch->num_rows() == 0) {
+        ResultBatch = nullptr;
+        LastPK = nullptr;
+        return;
+    }
+    {
+        ResultBatch = NArrow::ExtractColumns(ResultBatch, Context->GetProgramInputColumns()->GetColumnNamesVector());
+        AFL_VERIFY(ResultBatch);
+        AFL_VERIFY((ui32)ResultBatch->num_columns() == Context->GetProgramInputColumns()->GetColumnNamesVector().size());
+        NArrow::TStatusValidator::Validate(Context->GetReadMetadata()->GetProgram().ApplyProgram(ResultBatch));
+    }
+    if (ResultBatch->num_rows()) {
+        const auto& shardingPolicy = Context->GetCommonContext()->GetComputeShardingPolicy();
+        if (NArrow::THashConstructor::BuildHashUI64(ResultBatch, shardingPolicy.GetColumnNames(), "__compute_sharding_hash")) {
+            ShardedBatch = NArrow::TShardingSplitIndex::Apply(shardingPolicy.GetShardsCount(), ResultBatch, "__compute_sharding_hash");
+        } else {
+            ShardedBatch = NArrow::TShardedRecordBatch(ResultBatch);
+        }
+        AFL_VERIFY(!!LastPK == !!ShardedBatch->GetRecordsCount())("lpk", !!LastPK)("sb", ShardedBatch->GetRecordsCount());
+    } else {
+        ResultBatch = nullptr;
+        LastPK = nullptr;
+    }
+}
+
+bool TBaseMergeTask::DoApply(IDataReader& indexedDataRead) const {
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "DoApply")("interval_idx", MergingContext->GetIntervalIdx());
+    auto& reader = static_cast(indexedDataRead);
+    reader.MutableScanner().OnIntervalResult(ShardedBatch, LastPK, std::move(Merger), IntervalIdx, reader);
+    return true;
+}
+
+bool TStartMergeTask::DoExecute() {
+    if (OnlyEmptySources) {
+        ResultBatch = nullptr;
+        return true;
+    }
+    bool sourcesInMemory = true;
+    for (auto&& i : Sources) {
+        if (!i.second->IsSourceInMemory()) {
+            sourcesInMemory = false;
+            break;
+        }
+    }
+    if (MergingContext->IsExclusiveInterval() && sourcesInMemory) {
+        TMemoryProfileGuard mGuard("SCAN_PROFILE::MERGE::EXCLUSIVE", IS_DEBUG_LOG_ENABLED(NKikimrServices::TX_COLUMNSHARD_SCAN_MEMORY));
+        auto& container = Sources.begin()->second->GetStageResult().GetBatch();
+        if (container && container->num_rows()) {
+            ResultBatch = container->BuildTable();
+            LastPK = Sources.begin()->second->GetLastPK();
+            ResultBatch = NArrow::ExtractColumnsValidate(ResultBatch, Context->GetProgramInputColumns()->GetColumnNamesVector());
+            AFL_VERIFY(ResultBatch)("info", Context->GetProgramInputColumns()->GetSchema()->ToString());
+            Context->GetCommonContext()->GetCounters().OnNoScanInterval(ResultBatch->num_rows());
+            if (Context->GetCommonContext()->IsReverse()) {
+                ResultBatch = NArrow::ReverseRecords(ResultBatch);
+            }
+            PrepareResultBatch();
+        }
+        Sources.clear();
+        AFL_VERIFY(!!LastPK == (!!ResultBatch && ResultBatch->num_rows()));
+        return true;
+    }
+    TMemoryProfileGuard mGuard("SCAN_PROFILE::MERGE::COMMON", IS_DEBUG_LOG_ENABLED(NKikimrServices::TX_COLUMNSHARD_SCAN_MEMORY));
+    AFL_VERIFY(!Merger);
+    Merger = Context->BuildMerger();
+    for (auto&& [_, i] : Sources) {
+        if (auto rb = i->GetStageResult().GetBatch()) {
+            Merger->AddSource(rb, i->GetStageResult().GetNotAppliedFilter());
+        }
+    }
+    AFL_VERIFY(Merger->GetSourcesCount() <= Sources.size());
+    if (Merger->GetSourcesCount() == 0) {
+        ResultBatch = nullptr;
+        return true;
+    }
+    Merger->PutControlPoint(MergingContext->GetFinish());
+    Merger->SkipToLowerBound(MergingContext->GetStart(), MergingContext->GetIncludeStart());
+    const ui32 originalSourcesCount = Sources.size();
+    Sources.clear();
+
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "DoExecute")("interval_idx", MergingContext->GetIntervalIdx());
+    std::optional lastResultPosition;
+    if (Merger->GetSourcesCount() == 1 && sourcesInMemory) {
+        TMemoryProfileGuard mGuard("SCAN_PROFILE::MERGE::ONE", IS_DEBUG_LOG_ENABLED(NKikimrServices::TX_COLUMNSHARD_SCAN_MEMORY));
+        ResultBatch = Merger->SingleSourceDrain(MergingContext->GetFinish(), MergingContext->GetIncludeFinish(), &lastResultPosition);
+        if (ResultBatch) {
+            Context->GetCommonContext()->GetCounters().OnLogScanInterval(ResultBatch->num_rows());
+            AFL_VERIFY(ResultBatch->schema()->Equals(Context->GetProgramInputColumns()->GetSchema()))("res", ResultBatch->schema()->ToString())("ctx", Context->GetProgramInputColumns()->GetSchema()->ToString());
+        }
+        if (MergingContext->GetIncludeFinish() && originalSourcesCount == 1) {
+            AFL_VERIFY(Merger->IsEmpty())("merging_context_finish", MergingContext->GetFinish().DebugJson().GetStringRobust())("merger", Merger->DebugString());
+        }
+    } else {
+        TMemoryProfileGuard mGuard("SCAN_PROFILE::MERGE::MANY", IS_DEBUG_LOG_ENABLED(NKikimrServices::TX_COLUMNSHARD_SCAN_MEMORY));
+        const std::optional bufferLimit = sourcesInMemory ? std::nullopt : std::optional(Context->ReadSequentiallyBufferSize);
+        lastResultPosition = DrainMergerLinearScan(bufferLimit);
+    }
+    if (lastResultPosition) {
+        LastPK = lastResultPosition->ExtractSortingPosition(MergingContext->GetFinish().GetSortFields());
+    }
+    AFL_VERIFY(!!LastPK == (!!ResultBatch && ResultBatch->num_rows()));
+    PrepareResultBatch();
+    return true;
+}
+
+TStartMergeTask::TStartMergeTask(const std::shared_ptr& mergingContext, const std::shared_ptr& readContext, THashMap>&& sources)
+    : TBase(mergingContext, readContext)
+    , Sources(std::move(sources))
+{
+    for (auto&& s : Sources) {
+        AFL_VERIFY(s.second->IsDataReady());
+    }
+    for (auto&& [_, i] : Sources) {
+        if (!i->GetStageResult().IsEmpty()) {
+            OnlyEmptySources = false;
+        }
+    }
+}
+
+bool TContinueMergeTask::DoExecute() {
+    TMemoryProfileGuard mGuard("SCAN_PROFILE::MERGE::CONTINUE", IS_DEBUG_LOG_ENABLED(NKikimrServices::TX_COLUMNSHARD_SCAN_MEMORY));
+    std::optional lastResultPosition = DrainMergerLinearScan(Context->ReadSequentiallyBufferSize);
+    if (lastResultPosition) {
+        LastPK = lastResultPosition->ExtractSortingPosition(MergingContext->GetFinish().GetSortFields());
+    }
+    AFL_VERIFY(!!LastPK == (!!ResultBatch && ResultBatch->num_rows()));
+    PrepareResultBatch();
+    return true;
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/merge.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/merge.h
new file mode 100644
index 000000000000..90cda0841363
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/merge.h
@@ -0,0 +1,110 @@
+#pragma once
+#include "context.h"
+#include 
+#include 
+
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+class TMergingContext {
+protected:
+    YDB_READONLY_DEF(NArrow::NMerger::TSortableBatchPosition, Start);
+    YDB_READONLY_DEF(NArrow::NMerger::TSortableBatchPosition, Finish);
+    YDB_READONLY(bool, IncludeFinish, true);
+    YDB_READONLY(bool, IncludeStart, false);
+    YDB_READONLY(ui32, IntervalIdx, 0);
+    bool IsExclusiveIntervalFlag = false;
+public:
+    TMergingContext(const NArrow::NMerger::TSortableBatchPosition& start, const NArrow::NMerger::TSortableBatchPosition& finish,
+        const ui32 intervalIdx, const bool includeFinish, const bool includeStart, const bool isExclusiveInterval)
+        : Start(start)
+        , Finish(finish)
+        , IncludeFinish(includeFinish)
+        , IncludeStart(includeStart)
+        , IntervalIdx(intervalIdx)
+        , IsExclusiveIntervalFlag(isExclusiveInterval)
+    {
+
+    }
+
+    bool IsExclusiveInterval() const {
+        return IsExclusiveIntervalFlag;
+    }
+
+    NJson::TJsonValue DebugJson() const {
+        NJson::TJsonValue result = NJson::JSON_MAP;
+        result.InsertValue("start", Start.DebugJson());
+        result.InsertValue("idx", IntervalIdx);
+        result.InsertValue("finish", Finish.DebugJson());
+        result.InsertValue("include_finish", IncludeFinish);
+        result.InsertValue("exclusive", IsExclusiveIntervalFlag);
+        return result;
+    }
+
+};
+
+class TBaseMergeTask: public IDataTasksProcessor::ITask {
+private:
+    using TBase = IDataTasksProcessor::ITask;
+protected:
+    std::shared_ptr ResultBatch;
+    std::shared_ptr LastPK;
+    const NColumnShard::TCounterGuard Guard;
+    std::shared_ptr Context;
+    mutable std::unique_ptr Merger;
+    std::shared_ptr MergingContext;
+    const ui32 IntervalIdx;
+    std::optional ShardedBatch;
+
+    [[nodiscard]] std::optional DrainMergerLinearScan(const std::optional resultBufferLimit);
+
+    void PrepareResultBatch();
+private:
+    virtual bool DoApply(IDataReader& indexedDataRead) const override;
+public:
+    TBaseMergeTask(const std::shared_ptr& mergingContext, const std::shared_ptr& readContext)
+        : TBase(readContext->GetCommonContext()->GetScanActorId())
+        , Guard(readContext->GetCommonContext()->GetCounters().GetMergeTasksGuard())
+        , Context(readContext)
+        , MergingContext(mergingContext)
+        , IntervalIdx(MergingContext->GetIntervalIdx()) {
+
+    }
+};
+
+class TStartMergeTask: public TBaseMergeTask {
+private:
+    using TBase = TBaseMergeTask;
+    bool OnlyEmptySources = true;
+    THashMap> Sources;
+protected:
+    virtual bool DoExecute() override;
+public:
+    virtual TString GetTaskClassIdentifier() const override {
+        return "CS::MERGE_START";
+    }
+
+    TStartMergeTask(const std::shared_ptr& mergingContext,
+        const std::shared_ptr& readContext, THashMap>&& sources);
+};
+
+class TContinueMergeTask: public TBaseMergeTask {
+private:
+    using TBase = TBaseMergeTask;
+protected:
+    virtual bool DoExecute() override;
+public:
+    virtual TString GetTaskClassIdentifier() const override {
+        return "CS::MERGE_CONTINUE";
+    }
+
+    TContinueMergeTask(const std::shared_ptr& mergingContext, const std::shared_ptr& readContext, std::unique_ptr&& merger)
+        : TBase(mergingContext, readContext) {
+        AFL_VERIFY(merger);
+        Merger = std::move(merger);
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/plain_read_data.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/plain_read_data.cpp
new file mode 100644
index 000000000000..9def8738cab9
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/plain_read_data.cpp
@@ -0,0 +1,82 @@
+#include "plain_read_data.h"
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+TPlainReadData::TPlainReadData(const std::shared_ptr& context)
+    : TBase(context)
+    , SpecialReadContext(std::make_shared(context))
+{
+    ui32 sourceIdx = 0;
+    std::deque> sources;
+    const auto& portionsOrdered = GetReadMetadata()->SelectInfo->GetPortionsOrdered(GetReadMetadata()->IsDescSorted());
+    const auto& committed = GetReadMetadata()->CommittedBlobs;
+    auto itCommitted = committed.begin();
+    auto itPortion = portionsOrdered.begin();
+    ui64 committedPortionsBytes = 0;
+    ui64 insertedPortionsBytes = 0;
+    ui64 compactedPortionsBytes = 0;
+    while (itCommitted != committed.end() || itPortion != portionsOrdered.end()) {
+        bool movePortion = false;
+        if (itCommitted == committed.end()) {
+            movePortion = true;
+        } else if (itPortion == portionsOrdered.end()) {
+            movePortion = false;
+        } else if (itCommitted->GetFirstVerified() < (*itPortion)->IndexKeyStart()) {
+            movePortion = false;
+        } else {
+            movePortion = true;
+        }
+
+        if (movePortion) {
+            if ((*itPortion)->GetMeta().GetProduced() == NPortion::EProduced::COMPACTED || (*itPortion)->GetMeta().GetProduced() == NPortion::EProduced::SPLIT_COMPACTED) {
+                compactedPortionsBytes += (*itPortion)->GetTotalBlobBytes();
+            } else {
+                insertedPortionsBytes += (*itPortion)->GetTotalBlobBytes();
+            }
+            sources.emplace_back(std::make_shared(sourceIdx++, *itPortion, SpecialReadContext, (*itPortion)->IndexKeyStart(), (*itPortion)->IndexKeyEnd()));
+            ++itPortion;
+        } else {
+            sources.emplace_back(std::make_shared(sourceIdx++, *itCommitted, SpecialReadContext, itCommitted->GetFirstVerified(), itCommitted->GetLastVerified()));
+            committedPortionsBytes += itCommitted->GetSize();
+            ++itCommitted;
+        }
+    }
+    Scanner = std::make_shared(std::move(sources), SpecialReadContext);
+
+    auto& stats = GetReadMetadata()->ReadStats;
+    stats->IndexPortions = GetReadMetadata()->SelectInfo->PortionsOrderedPK.size();
+    stats->IndexBatches = GetReadMetadata()->NumIndexedBlobs();
+    stats->CommittedBatches = GetReadMetadata()->CommittedBlobs.size();
+    stats->SchemaColumns = (*SpecialReadContext->GetProgramInputColumns() - *SpecialReadContext->GetSpecColumns()).GetColumnsCount();
+    stats->CommittedPortionsBytes = committedPortionsBytes;
+    stats->InsertedPortionsBytes = insertedPortionsBytes;
+    stats->CompactedPortionsBytes = compactedPortionsBytes;
+
+}
+
+std::vector TPlainReadData::DoExtractReadyResults(const int64_t maxRowsInBatch) {
+    auto result = TPartialReadResult::SplitResults(std::move(PartialResults), maxRowsInBatch);
+    ui32 count = 0;
+    for (auto&& r: result) {
+        count += r.GetRecordsCount();
+    }
+    AFL_VERIFY(count == ReadyResultsCount);
+
+    ReadyResultsCount = 0;
+    PartialResults.clear();
+
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "DoExtractReadyResults")("result", result.size())("count", count)("finished", Scanner->IsFinished());
+    return result;
+}
+
+TConclusion TPlainReadData::DoReadNextInterval() {
+    return Scanner->BuildNextInterval();
+}
+
+void TPlainReadData::OnIntervalResult(const std::shared_ptr& result) {
+//    result->GetResourcesGuardOnly()->Update(result->GetMemorySize());
+    ReadyResultsCount += result->GetRecordsCount();
+    PartialResults.emplace_back(std::move(*result));
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/plain_read_data.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/plain_read_data.h
new file mode 100644
index 000000000000..39d993b156d6
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/plain_read_data.h
@@ -0,0 +1,77 @@
+#pragma once
+#include "columns_set.h"
+#include "source.h"
+#include "scanner.h"
+
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+class TPlainReadData: public IDataReader, TNonCopyable, NColumnShard::TMonitoringObjectsCounter {
+private:
+    using TBase = IDataReader;
+    std::shared_ptr Scanner;
+    std::shared_ptr SpecialReadContext;
+    std::vector PartialResults;
+    ui32 ReadyResultsCount = 0;
+    bool AbortedFlag = false;
+protected:
+    virtual TConclusionStatus DoStart() override {
+        return Scanner->Start();
+    }
+
+    virtual TString DoDebugString(const bool verbose) const override {
+        TStringBuilder sb;
+        sb << SpecialReadContext->DebugString() << ";";
+        if (verbose) {
+            sb << "intervals_schema=" << Scanner->DebugString();
+        }
+        return sb;
+    }
+
+    virtual std::vector DoExtractReadyResults(const int64_t maxRowsInBatch) override;
+    virtual TConclusion DoReadNextInterval() override;
+
+    virtual void DoAbort() override {
+        AbortedFlag = true;
+        Scanner->Abort();
+        PartialResults.clear();
+        Y_ABORT_UNLESS(IsFinished());
+    }
+    virtual bool DoIsFinished() const override {
+        return (Scanner->IsFinished() && PartialResults.empty());
+    }
+public:
+    virtual void OnSentDataFromInterval(const ui32 intervalIdx) const override {
+        Scanner->OnSentDataFromInterval(intervalIdx);
+    }
+
+    const TReadMetadata::TConstPtr& GetReadMetadata() const {
+        return SpecialReadContext->GetReadMetadata();
+    }
+
+    const std::shared_ptr& GetSpecialReadContext() const {
+        return SpecialReadContext;
+    }
+
+    const TScanHead& GetScanner() const {
+        return *Scanner;
+    }
+
+    TScanHead& MutableScanner() {
+        return *Scanner;
+    }
+
+    void OnIntervalResult(const std::shared_ptr& result);
+
+    TPlainReadData(const std::shared_ptr& context);
+    ~TPlainReadData() {
+        if (!AbortedFlag) {
+            Abort("unexpected on destructor");
+        }
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/scanner.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/scanner.cpp
new file mode 100644
index 000000000000..8442648344b7
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/scanner.cpp
@@ -0,0 +1,312 @@
+#include "scanner.h"
+#include "plain_read_data.h"
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+void TScanHead::OnIntervalResult(const std::optional& newBatch, const std::shared_ptr& lastPK,
+    std::unique_ptr&& merger, const ui32 intervalIdx, TPlainReadData& reader) {
+    if (Context->GetReadMetadata()->Limit && (!newBatch || newBatch->GetRecordsCount() == 0) && InFlightLimit < 1000) {
+        if (++ZeroCount == std::max(16, InFlightLimit)) {
+            InFlightLimit = std::max(MaxInFlight, InFlightLimit * 2);
+            ZeroCount = 0;
+        }
+    } else {
+        ZeroCount = 0;
+    }
+    auto itInterval = FetchingIntervals.find(intervalIdx);
+    AFL_VERIFY(itInterval != FetchingIntervals.end());
+    itInterval->second->SetMerger(std::move(merger));
+    AFL_VERIFY(Context->GetCommonContext()->GetReadMetadata()->IsSorted());
+    if (newBatch && newBatch->GetRecordsCount()) {
+        const std::optional callbackIdxSubscriver = itInterval->second->HasMerger() ? std::optional(intervalIdx) : std::nullopt;
+        AFL_VERIFY(ReadyIntervals.emplace(intervalIdx, std::make_shared(itInterval->second->GetResourcesGuard(), *newBatch, lastPK, callbackIdxSubscriver)).second);
+    } else {
+        AFL_VERIFY(ReadyIntervals.emplace(intervalIdx, nullptr).second);
+    }
+    Y_ABORT_UNLESS(FetchingIntervals.size());
+    while (FetchingIntervals.size()) {
+        const auto interval = FetchingIntervals.begin()->second;
+        const ui32 intervalIdx = interval->GetIntervalIdx();
+        auto it = ReadyIntervals.find(intervalIdx);
+        if (it == ReadyIntervals.end()) {
+            break;
+        }
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "interval_result")("interval_idx", intervalIdx)("count", it->second ? it->second->GetRecordsCount() : 0);
+        auto result = it->second;
+        ReadyIntervals.erase(it);
+        if (result) {
+            reader.OnIntervalResult(result);
+        }
+        if (!interval->HasMerger()) {
+            FetchingIntervals.erase(FetchingIntervals.begin());
+        } else if (result) {
+            break;
+        } else {
+            interval->OnPartSendingComplete();
+        }
+    }
+    if (FetchingIntervals.empty()) {
+        AFL_VERIFY(ReadyIntervals.empty());
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "intervals_finished");
+    } else {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "wait_interval")("remained", FetchingIntervals.size())("interval_idx", FetchingIntervals.begin()->first);
+    }
+}
+
+TConclusionStatus TScanHead::Start() {
+    TScanContext context;
+    for (auto itPoint = BorderPoints.begin(); itPoint != BorderPoints.end(); ++itPoint) {
+        auto& point = itPoint->second;
+        context.OnStartPoint(point);
+        if (context.GetIsSpecialPoint()) {
+            auto detectorResult = DetectSourcesFeatureInContextIntervalScan(context.GetCurrentSources(), false);
+            for (auto&& i : context.GetCurrentSources()) {
+                i.second->IncIntervalsCount();
+            }
+            if (!detectorResult) {
+                AFL_ERROR(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "scanner_initializer_aborted")("reason", detectorResult.GetErrorMessage());
+                Abort();
+                return detectorResult;
+            }
+        }
+        for (auto&& i : point.GetFinishSources()) {
+            i->InitFetchingPlan(Context->GetColumnsFetchingPlan(i));
+        }
+        context.OnFinishPoint(point);
+        if (context.GetCurrentSources().size()) {
+            auto itPointNext = itPoint;
+            Y_ABORT_UNLESS(++itPointNext != BorderPoints.end());
+            context.OnNextPointInfo(itPointNext->second);
+            for (auto&& i : context.GetCurrentSources()) {
+                i.second->IncIntervalsCount();
+            }
+            auto detectorResult = DetectSourcesFeatureInContextIntervalScan(context.GetCurrentSources(), context.GetIsExclusiveInterval());
+            if (!detectorResult) {
+                AFL_ERROR(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "scanner_initializer_aborted")("reason", detectorResult.GetErrorMessage());
+                Abort();
+                return detectorResult;
+            }
+        }
+    }
+    return TConclusionStatus::Success();
+}
+
+TScanHead::TScanHead(std::deque>&& sources, const std::shared_ptr& context)
+    : Context(context)
+{
+    if (!HasAppData() || !AppDataVerified().ColumnShardConfig.HasMaxInFlightIntervalsOnRequest()) {
+        MaxInFlight = 256;
+    } else {
+        MaxInFlight = AppDataVerified().ColumnShardConfig.GetMaxInFlightIntervalsOnRequest();
+    }
+
+    if (Context->GetReadMetadata()->Limit) {
+        InFlightLimit = 1;
+    } else {
+        InFlightLimit = MaxInFlight;
+    }
+    while (sources.size()) {
+        auto source = sources.front();
+        BorderPoints[source->GetStart()].AddStart(source);
+        BorderPoints[source->GetFinish()].AddFinish(source);
+        sources.pop_front();
+    }
+}
+
+class TSourcesStorageForMemoryOptimization {
+private:
+    class TSourceInfo {
+    private:
+        YDB_READONLY_DEF(std::shared_ptr, Source);
+        YDB_READONLY_DEF(std::shared_ptr, FetchingInfo);
+    public:
+        TSourceInfo(const std::shared_ptr& source, const std::shared_ptr& fetchingInfo)
+            : Source(source)
+            , FetchingInfo(fetchingInfo)
+        {
+
+        }
+
+        NJson::TJsonValue DebugJson() const {
+            NJson::TJsonValue result = NJson::JSON_MAP;
+            result.InsertValue("source", Source->DebugJsonForMemory());
+//            result.InsertValue("fetching", Fetching->DebugJsonForMemory());
+            return result;
+        }
+    };
+
+    std::map> Sources;
+    YDB_READONLY(ui64, MemorySum, 0);
+    YDB_READONLY_DEF(std::set, PathIds);
+public:
+    TString DebugString() const {
+        NJson::TJsonValue resultJson;
+        auto& memorySourcesArr = resultJson.InsertValue("sources_by_memory", NJson::JSON_ARRAY);
+        resultJson.InsertValue("sources_by_memory_count", Sources.size());
+        for (auto it = Sources.rbegin(); it != Sources.rend(); ++it) {
+            auto& sourceMap = memorySourcesArr.AppendValue(NJson::JSON_MAP);
+            sourceMap.InsertValue("memory", it->first);
+            auto& sourcesArr = sourceMap.InsertValue("sources", NJson::JSON_ARRAY);
+            for (auto&& s : it->second) {
+                sourcesArr.AppendValue(s.second.DebugJson());
+            }
+        }
+        return resultJson.GetStringRobust();
+    }
+
+    void UpdateSource(const ui64 oldMemoryInfo, const ui32 sourceIdx) {
+        auto it = Sources.find(oldMemoryInfo);
+        AFL_VERIFY(it != Sources.end());
+        auto itSource = it->second.find(sourceIdx);
+        AFL_VERIFY(itSource != it->second.end());
+        auto sourceInfo = itSource->second;
+        it->second.erase(itSource);
+        if (it->second.empty()) {
+            Sources.erase(it);
+        }
+        AFL_VERIFY(MemorySum >= oldMemoryInfo);
+        MemorySum -= oldMemoryInfo;
+        AddSource(sourceInfo.GetSource(), sourceInfo.GetFetchingInfo());
+    }
+
+    void AddSource(const std::shared_ptr& source, const std::shared_ptr& fetching) {
+        const ui64 sourceMemory = fetching->PredictRawBytes(source);
+        MemorySum += sourceMemory;
+        AFL_VERIFY(Sources[sourceMemory].emplace(source->GetSourceIdx(), TSourceInfo(source, fetching)).second);
+        PathIds.emplace(source->GetPathId());
+    }
+
+    bool Optimize(const ui64 memoryLimit) {
+        bool modified = true;
+        while (MemorySum > memoryLimit && modified) {
+            modified = false;
+            for (auto it = Sources.rbegin(); it != Sources.rend(); ++it) {
+                for (auto&& [sourceIdx, sourceInfo] : it->second) {
+                    if (!sourceInfo.GetFetchingInfo()->InitSourceSeqColumnIds(sourceInfo.GetSource())) {
+                        continue;
+                    }
+                    modified = true;
+                    UpdateSource(it->first, sourceIdx);
+                    break;
+                }
+                if (modified) {
+                    break;
+                }
+            }
+        }
+        return MemorySum < memoryLimit;
+    }
+};
+
+TConclusionStatus TScanHead::DetectSourcesFeatureInContextIntervalScan(const THashMap>& intervalSources, const bool isExclusiveInterval) const {
+    TSourcesStorageForMemoryOptimization optimizer;
+    for (auto&& i : intervalSources) {
+        if (!isExclusiveInterval) {
+            i.second->SetExclusiveIntervalOnly(false);
+        }
+        auto fetchingPlan = Context->GetColumnsFetchingPlan(i.second);
+        optimizer.AddSource(i.second, fetchingPlan);
+    }
+    const ui64 startMemory = optimizer.GetMemorySum();
+    if (!optimizer.Optimize(Context->ReduceMemoryIntervalLimit) && Context->RejectMemoryIntervalLimit < optimizer.GetMemorySum()) {
+        AFL_ERROR(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "next_internal_broken")
+            ("reason", "a lot of memory need")("start", startMemory)
+            ("reduce_limit", Context->ReduceMemoryIntervalLimit)
+            ("reject_limit", Context->RejectMemoryIntervalLimit)
+            ("need", optimizer.GetMemorySum())
+            ("path_ids", JoinSeq(",", optimizer.GetPathIds()))
+            ("details", IS_LOG_PRIORITY_ENABLED(NActors::NLog::PRI_DEBUG, NKikimrServices::TX_COLUMNSHARD_SCAN) ? optimizer.DebugString() : "NEED_DEBUG_LEVEL");
+        Context->GetCommonContext()->GetCounters().OnOptimizedIntervalMemoryFailed(optimizer.GetMemorySum());
+        return TConclusionStatus::Fail("We need a lot of memory in time for interval scanner: " +
+            ::ToString(optimizer.GetMemorySum()) + " path_ids: " + JoinSeq(",", optimizer.GetPathIds()) + ". We need wait compaction processing. Sorry.");
+    } else if (optimizer.GetMemorySum() < startMemory) {
+        AFL_INFO(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "memory_reduce_active")
+            ("reason", "need reduce memory")("start", startMemory)
+            ("reduce_limit", Context->ReduceMemoryIntervalLimit)
+            ("reject_limit", Context->RejectMemoryIntervalLimit)
+            ("need", optimizer.GetMemorySum())
+            ("path_ids", JoinSeq(",", optimizer.GetPathIds()));
+        Context->GetCommonContext()->GetCounters().OnOptimizedIntervalMemoryReduced(startMemory - optimizer.GetMemorySum());
+    }
+    Context->GetCommonContext()->GetCounters().OnOptimizedIntervalMemoryRequired(optimizer.GetMemorySum());
+    return TConclusionStatus::Success();
+}
+
+TConclusion TScanHead::BuildNextInterval() {
+    if (AbortFlag) {
+        return false;
+    }
+    while (BorderPoints.size() && (FetchingIntervals.size() < InFlightLimit || BorderPoints.begin()->second.GetStartSources().empty())) {
+        auto firstBorderPointInfo = std::move(BorderPoints.begin()->second);
+        CurrentState.OnStartPoint(firstBorderPointInfo);
+
+        if (CurrentState.GetIsSpecialPoint()) {
+            const ui32 intervalIdx = SegmentIdxCounter++;
+            auto interval = std::make_shared(
+                BorderPoints.begin()->first, BorderPoints.begin()->first, intervalIdx, CurrentState.GetCurrentSources(),
+                Context, true, true, false);
+            FetchingIntervals.emplace(intervalIdx, interval);
+            IntervalStats.emplace_back(CurrentState.GetCurrentSources().size(), true);
+            NResourceBroker::NSubscribe::ITask::StartResourceSubscription(Context->GetCommonContext()->GetResourceSubscribeActorId(), interval);
+            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "new_interval")("interval_idx", intervalIdx)("interval", interval->DebugJson());
+        }
+
+        CurrentState.OnFinishPoint(firstBorderPointInfo);
+
+        CurrentStart = BorderPoints.begin()->first;
+        BorderPoints.erase(BorderPoints.begin());
+        if (CurrentState.GetCurrentSources().size()) {
+            Y_ABORT_UNLESS(BorderPoints.size());
+            CurrentState.OnNextPointInfo(BorderPoints.begin()->second);
+            const ui32 intervalIdx = SegmentIdxCounter++;
+            auto interval = std::make_shared(*CurrentStart, BorderPoints.begin()->first, intervalIdx, CurrentState.GetCurrentSources(), Context,
+                CurrentState.GetIncludeFinish(), CurrentState.GetIncludeStart(), CurrentState.GetIsExclusiveInterval());
+            FetchingIntervals.emplace(intervalIdx, interval);
+            IntervalStats.emplace_back(CurrentState.GetCurrentSources().size(), false);
+            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "new_interval")("interval_idx", intervalIdx)("interval", interval->DebugJson());
+            NResourceBroker::NSubscribe::ITask::StartResourceSubscription(Context->GetCommonContext()->GetResourceSubscribeActorId(), interval);
+            return true;
+        } else {
+            IntervalStats.emplace_back(CurrentState.GetCurrentSources().size(), false);
+        }
+    }
+    return false;
+}
+
+const TReadContext& TScanHead::GetContext() const {
+    return *Context->GetCommonContext();
+}
+
+bool TScanHead::IsReverse() const {
+    return GetContext().GetReadMetadata()->IsDescSorted();
+}
+
+void TScanHead::Abort() {
+    AbortFlag = true;
+    THashSet sourceIds;
+    for (auto&& i : FetchingIntervals) {
+        for (auto&& s : i.second->GetSources()) {
+            sourceIds.emplace(s.first);
+        }
+        i.second->Abort();
+    }
+    for (auto&& i : BorderPoints) {
+        for (auto&& s : i.second.GetStartSources()) {
+            if (sourceIds.emplace(s->GetSourceIdx()).second) {
+                s->Abort();
+            }
+        }
+        for (auto&& s : i.second.GetFinishSources()) {
+            if (sourceIds.emplace(s->GetSourceIdx()).second) {
+                s->Abort();
+            }
+        }
+    }
+    FetchingIntervals.clear();
+    BorderPoints.clear();
+    Y_ABORT_UNLESS(IsFinished());
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/scanner.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/scanner.h
new file mode 100644
index 000000000000..7092dac19acd
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/scanner.h
@@ -0,0 +1,124 @@
+#pragma once
+#include "source.h"
+#include "interval.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+class TPlainReadData;
+
+class TDataSourceEndpoint {
+private:
+    YDB_READONLY_DEF(std::vector>, StartSources);
+    YDB_READONLY_DEF(std::vector>, FinishSources);
+public:
+    void AddStart(std::shared_ptr source) {
+        StartSources.emplace_back(source);
+    }
+    void AddFinish(std::shared_ptr source) {
+        FinishSources.emplace_back(source);
+    }
+};
+
+class TIntervalStat {
+private:
+    YDB_READONLY(ui32, SourcesCount, 0);
+    YDB_READONLY(bool, IsPoint, false);
+public:
+    TIntervalStat(const ui32 sourcesCount, const bool isPoint)
+        : SourcesCount(sourcesCount)
+        , IsPoint(isPoint)
+    {
+
+    }
+};
+
+class TScanContext {
+private:
+    using TCurrentSources = THashMap>;
+    YDB_READONLY(bool, IncludeStart, false);
+    YDB_READONLY(bool, IncludeFinish, false);
+    YDB_READONLY_DEF(TCurrentSources, CurrentSources);
+    YDB_READONLY(bool, IsSpecialPoint, false);
+    YDB_READONLY(bool, IsExclusiveInterval, false);
+public:
+    void OnStartPoint(const TDataSourceEndpoint& point) {
+        IsSpecialPoint = point.GetStartSources().size() && point.GetFinishSources().size();
+        IncludeStart = point.GetStartSources().size() && !IsSpecialPoint;
+        for (auto&& i : point.GetStartSources()) {
+            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("add_source", i->GetSourceIdx());
+            AFL_VERIFY(CurrentSources.emplace(i->GetSourceIdx(), i).second)("idx", i->GetSourceIdx());
+        }
+    }
+
+    void OnFinishPoint(const TDataSourceEndpoint& point) {
+        for (auto&& i : point.GetFinishSources()) {
+            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("remove_source", i->GetSourceIdx());
+            AFL_VERIFY(CurrentSources.erase(i->GetSourceIdx()))("idx", i->GetSourceIdx());
+        }
+    }
+
+    void OnNextPointInfo(const TDataSourceEndpoint& nextPoint) {
+        IncludeFinish = nextPoint.GetStartSources().empty();
+        IsExclusiveInterval = (CurrentSources.size() == 1) && IncludeStart && IncludeFinish;
+    }
+};
+
+class TScanHead {
+private:
+    std::shared_ptr Context;
+    bool SourcesInitialized = false;
+    TScanContext CurrentState;
+    std::map BorderPoints;
+    std::optional CurrentStart;
+    std::map> FetchingIntervals;
+    THashMap> ReadyIntervals;
+    ui32 SegmentIdxCounter = 0;
+    std::vector IntervalStats;
+    ui64 InFlightLimit = 1;
+    ui64 MaxInFlight = 256;
+    ui64 ZeroCount = 0;
+    bool AbortFlag = false;
+    void DrainSources();
+    [[nodiscard]] TConclusionStatus DetectSourcesFeatureInContextIntervalScan(const THashMap>& intervalSources, const bool isExclusiveInterval) const;
+public:
+    void OnSentDataFromInterval(const ui32 intervalIdx) const {
+        if (AbortFlag) {
+            return;
+        }
+        auto it = FetchingIntervals.find(intervalIdx);
+        AFL_VERIFY(it != FetchingIntervals.end())("interval_idx", intervalIdx)("count", FetchingIntervals.size());
+        it->second->OnPartSendingComplete();
+    }
+
+    bool IsReverse() const;
+    void Abort();
+
+    bool IsFinished() const {
+        return BorderPoints.empty() && FetchingIntervals.empty();
+    }
+
+    const TReadContext& GetContext() const;
+
+    TString DebugString() const {
+        TStringBuilder sb;
+        for (auto&& i : IntervalStats) {
+            sb << (i.GetIsPoint() ? "^" : "") << i.GetSourcesCount() << ";";
+        }
+        return sb;
+    }
+
+    void OnIntervalResult(const std::optional& batch, const std::shared_ptr& lastPK, 
+        std::unique_ptr&& merger, const ui32 intervalIdx, TPlainReadData& reader);
+
+    TConclusionStatus Start();
+
+    TScanHead(std::deque>&& sources, const std::shared_ptr& context);
+
+    [[nodiscard]] TConclusion BuildNextInterval();
+
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/source.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/source.cpp
new file mode 100644
index 000000000000..723ba175f571
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/source.cpp
@@ -0,0 +1,241 @@
+#include "source.h"
+#include "interval.h"
+#include "fetched_data.h"
+#include "plain_read_data.h"
+#include "constructor.h"
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+void IDataSource::InitFetchingPlan(const std::shared_ptr& fetching) {
+    AFL_VERIFY(fetching);
+    AFL_VERIFY(!FetchingPlan);
+    FetchingPlan = fetching;
+}
+
+void IDataSource::RegisterInterval(TFetchingInterval& interval) {
+    AFL_VERIFY(FetchingPlan);
+    if (!IsReadyFlag) {
+        AFL_VERIFY(Intervals.emplace(interval.GetIntervalIdx(), &interval).second);
+    }
+}
+
+void IDataSource::SetIsReady() {
+    AFL_VERIFY(!IsReadyFlag);
+    IsReadyFlag = true;
+    for (auto&& i : Intervals) {
+        i.second->OnSourceFetchStageReady(SourceIdx);
+    }
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "source_ready")("intervals_count", Intervals.size())("source_idx", SourceIdx);
+    Intervals.clear();
+}
+
+void IDataSource::OnInitResourcesGuard(const std::shared_ptr& sourcePtr) {
+    AFL_VERIFY(FetchingPlan);
+    if (AtomicCas(&FilterStageFlag, 1, 0)) {
+        StageData = std::make_unique(GetExclusiveIntervalOnly() && IsSourceInMemory());
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("InitFetchingPlan", FetchingPlan->DebugString())("source_idx", SourceIdx);
+        NActors::TLogContextGuard logGuard(NActors::TLogContextBuilder::Build()("source", SourceIdx)("method", "InitFetchingPlan"));
+        if (IsAborted()) {
+            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "InitFetchingPlanAborted");
+            return;
+        }
+        TFetchingScriptCursor cursor(FetchingPlan, 0);
+        auto task = std::make_shared(sourcePtr, std::move(cursor), Context->GetCommonContext()->GetScanActorId());
+        NConveyor::TScanServiceOperator::SendTaskToExecute(task);
+    }
+}
+
+void TPortionDataSource::NeedFetchColumns(const std::set& columnIds,
+    TBlobsAction& blobsAction, THashMap& nullBlocks,
+    const std::shared_ptr& filter) {
+    const NArrow::TColumnFilter& cFilter = filter ? *filter : NArrow::TColumnFilter::BuildAllowFilter();
+    ui32 fetchedChunks = 0;
+    ui32 nullChunks = 0;
+    for (auto&& i : columnIds) {
+        auto columnChunks = Portion->GetColumnChunksPointers(i);
+        if (columnChunks.empty()) {
+            continue;
+        }
+        auto itFilter = cFilter.GetIterator(false, Portion->NumRows(i));
+        bool itFinished = false;
+        for (auto&& c : columnChunks) {
+            Y_ABORT_UNLESS(!itFinished);
+            if (!itFilter.IsBatchForSkip(c->GetMeta().GetNumRows())) {
+                auto reading = blobsAction.GetReading(Schema->GetIndexInfo().GetColumnStorageId(c->GetColumnId(), Portion->GetMeta().GetTierName()));
+                reading->SetIsBackgroundProcess(false);
+                reading->AddRange(Portion->RestoreBlobRange(c->BlobRange));
+                ++fetchedChunks;
+            } else {
+                nullBlocks.emplace(c->GetAddress(), c->GetMeta().GetNumRows());
+                ++nullChunks;
+            }
+            itFinished = !itFilter.Next(c->GetMeta().GetNumRows());
+        }
+        AFL_VERIFY(itFinished)("filter", itFilter.DebugString())("count", Portion->NumRows(i));
+    }
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "chunks_stats")("fetch", fetchedChunks)("null", nullChunks)("reading_actions", blobsAction.GetStorageIds())("columns", columnIds.size());
+}
+
+bool TPortionDataSource::DoStartFetchingColumns(const std::shared_ptr& sourcePtr, const TFetchingScriptCursor& step, const std::shared_ptr& columns) {
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", step.GetName());
+    AFL_VERIFY(columns->GetColumnsCount());
+    AFL_VERIFY(!StageData->GetAppliedFilter() || !StageData->GetAppliedFilter()->IsTotalDenyFilter());
+    auto& columnIds = columns->GetColumnIds();
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", step.GetName())("fetching_info", step.DebugString());
+
+    TBlobsAction action(GetContext()->GetCommonContext()->GetStoragesManager(), NBlobOperations::EConsumer::SCAN);
+    {
+        THashMap nullBlocks;
+        NeedFetchColumns(columnIds, action, nullBlocks, StageData->GetAppliedFilter());
+        StageData->AddNulls(std::move(nullBlocks));
+    }
+
+    auto readActions = action.GetReadingActions();
+    if (!readActions.size()) {
+        return false;
+    }
+
+    auto constructor = std::make_shared(readActions, sourcePtr, step, GetContext(), "CS::READ::" + step.GetName(), "");
+    NActors::TActivationContext::AsActorContext().Register(new NOlap::NBlobOperations::NRead::TActor(constructor));
+    return true;
+}
+
+bool TPortionDataSource::DoStartFetchingIndexes(const std::shared_ptr& sourcePtr, const TFetchingScriptCursor& step, const std::shared_ptr& indexes) {
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", step.GetName());
+    Y_ABORT_UNLESS(indexes->GetIndexesCount());
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", step.GetName())("fetching_info", step.DebugString());
+
+    TBlobsAction action(GetContext()->GetCommonContext()->GetStoragesManager(), NBlobOperations::EConsumer::SCAN);
+    {
+        std::set indexIds;
+        for (auto&& i : Portion->GetIndexes()) {
+            if (!indexes->GetIndexIdsSet().contains(i.GetIndexId())) {
+                continue;
+            }
+            indexIds.emplace(i.GetIndexId());
+            auto readAction = action.GetReading(Schema->GetIndexInfo().GetIndexStorageId(i.GetIndexId()));
+            readAction->SetIsBackgroundProcess(false);
+            readAction->AddRange(Portion->RestoreBlobRange(i.GetBlobRange()));
+        }
+        if (indexes->GetIndexIdsSet().size() != indexIds.size()) {
+            return false;
+        }
+    }
+    auto readingActions = action.GetReadingActions();
+    if (!readingActions.size()) {
+        NYDBTest::TControllers::GetColumnShardController()->OnIndexSelectProcessed({});
+        return false;
+    }
+
+    auto constructor = std::make_shared(readingActions, sourcePtr, step, GetContext(), "CS::READ::" + step.GetName(), "");
+    NActors::TActivationContext::AsActorContext().Register(new NOlap::NBlobOperations::NRead::TActor(constructor));
+    return true;
+}
+
+void TPortionDataSource::DoAbort() {
+}
+
+void TPortionDataSource::DoApplyIndex(const NIndexes::TIndexCheckerContainer& indexChecker) {
+    THashMap> indexBlobs;
+    std::set indexIds = indexChecker->GetIndexIds();
+//    NActors::TLogContextGuard gLog = NActors::TLogContextBuilder::Build()("records_count", GetRecordsCount())("portion_id", Portion->GetAddress().DebugString());
+    std::vector pages = Portion->BuildPages();
+    NArrow::TColumnFilter constructor = NArrow::TColumnFilter::BuildAllowFilter();
+    for (auto&& p : pages) {
+        for (auto&& i : p.GetIndexes()) {
+            if (!indexIds.contains(i->GetIndexId())) {
+                continue;
+            }
+            indexBlobs[i->GetIndexId()].emplace_back(StageData->ExtractBlob(i->GetAddress()));
+        }
+        for (auto&& i : indexIds) {
+            if (!indexBlobs.contains(i)) {
+                return;
+            }
+        }
+        if (indexChecker->Check(indexBlobs)) {
+            NYDBTest::TControllers::GetColumnShardController()->OnIndexSelectProcessed(true);
+            constructor.Add(true, p.GetRecordsCount());
+        } else {
+            NYDBTest::TControllers::GetColumnShardController()->OnIndexSelectProcessed(false);
+            constructor.Add(false, p.GetRecordsCount());
+        }
+    }
+    AFL_VERIFY(constructor.Size() == Portion->GetRecordsCount());
+    if (constructor.IsTotalDenyFilter()) {
+        StageData->AddFilter(NArrow::TColumnFilter::BuildDenyFilter());
+    } else if (constructor.IsTotalAllowFilter()) {
+        return;
+    } else {
+        StageData->AddFilter(constructor);
+    }
+}
+
+void TPortionDataSource::DoAssembleColumns(const std::shared_ptr& columns) {
+    auto blobSchema = GetContext()->GetReadMetadata()->GetLoadSchemaVerified(*Portion);
+    if (SequentialEntityIds.empty()) {
+        MutableStageData().AddBatch(Portion->PrepareForAssemble(*blobSchema, columns->GetFilteredSchemaVerified(), MutableStageData().MutableBlobs()).AssembleTable());
+    } else {
+        {
+            auto inMemColumns = columns->GetColumnIds();
+            for (auto&& i : SequentialEntityIds) {
+                inMemColumns.erase(i);
+            }
+            if (inMemColumns.size()) {
+                auto filteredSchema = std::make_shared(columns->GetFilteredSchemaPtrVerified(), inMemColumns);
+                MutableStageData().AddBatch(Portion->PrepareForAssemble(*blobSchema, *filteredSchema, MutableStageData().MutableBlobs()).AssembleTable());
+            }
+        }
+        {
+            std::set scanColumns;
+            for (auto&& i : columns->GetColumnIds()) {
+                if (SequentialEntityIds.contains(i)) {
+                    scanColumns.emplace(i);
+                }
+            }
+            if (scanColumns.size()) {
+                auto filteredSchema = std::make_shared(columns->GetFilteredSchemaPtrVerified(), scanColumns);
+                MutableStageData().AddBatch(Portion->PrepareForAssemble(*blobSchema, *filteredSchema, MutableStageData().MutableBlobs()).AssembleForSeqAccess());
+            }
+        }
+    }
+}
+
+bool TCommittedDataSource::DoStartFetchingColumns(const std::shared_ptr& sourcePtr, const TFetchingScriptCursor& step, const std::shared_ptr& /*columns*/) {
+    if (ReadStarted) {
+        return false;
+    }
+    ReadStarted = true;
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", step.GetName())("fetching_info", step.DebugString());
+
+    std::shared_ptr storageOperator = GetContext()->GetCommonContext()->GetStoragesManager()->GetInsertOperator();
+    auto readAction = storageOperator->StartReadingAction(NBlobOperations::EConsumer::SCAN);
+
+    readAction->SetIsBackgroundProcess(false);
+    readAction->AddRange(CommittedBlob.GetBlobRange());
+
+    std::vector> actions = {readAction};
+    auto constructor = std::make_shared(actions, sourcePtr, step, GetContext(), "CS::READ::" + step.GetName(), "");
+    NActors::TActivationContext::AsActorContext().Register(new NOlap::NBlobOperations::NRead::TActor(constructor));
+    return true;
+}
+
+void TCommittedDataSource::DoAssembleColumns(const std::shared_ptr& columns) {
+    TMemoryProfileGuard mGuard("SCAN_PROFILE::ASSEMBLER::COMMITTED", IS_DEBUG_LOG_ENABLED(NKikimrServices::TX_COLUMNSHARD_SCAN_MEMORY));
+    if (!GetStageData().GetTable()) {
+        Y_ABORT_UNLESS(GetStageData().GetBlobs().size() == 1);
+        auto bData = MutableStageData().ExtractBlob(GetStageData().GetBlobs().begin()->first);
+        auto batch = NArrow::DeserializeBatch(bData, GetContext()->GetReadMetadata()->GetBlobSchema(CommittedBlob.GetSchemaVersion()));
+        Y_ABORT_UNLESS(batch);
+        batch = GetContext()->GetReadMetadata()->GetIndexInfo().AddSpecialColumns(batch, CommittedBlob.GetSnapshot());
+        MutableStageData().AddBatch(batch);
+    }
+    MutableStageData().SyncTableColumns(columns->GetSchema()->fields());
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/source.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/source.h
new file mode 100644
index 000000000000..13bcbcff5ce3
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/source.h
@@ -0,0 +1,386 @@
+#pragma once
+#include "context.h"
+#include "columns_set.h"
+#include "fetched_data.h"
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+class IDataReader;
+}
+
+namespace NKikimr::NOlap::NReader::NPlain {
+
+class TFetchingInterval;
+class TPlainReadData;
+class IFetchTaskConstructor;
+class IFetchingStep;
+
+class IDataSource {
+private:
+    YDB_ACCESSOR(bool, ExclusiveIntervalOnly, true);
+    YDB_READONLY(ui32, SourceIdx, 0);
+    YDB_READONLY_DEF(NArrow::NMerger::TSortableBatchPosition, Start);
+    YDB_READONLY_DEF(NArrow::NMerger::TSortableBatchPosition, Finish);
+    NArrow::TReplaceKey StartReplaceKey;
+    NArrow::TReplaceKey FinishReplaceKey;
+    YDB_READONLY_DEF(std::shared_ptr, Context);
+    YDB_READONLY(TSnapshot, RecordSnapshotMax, TSnapshot::Zero());
+    YDB_READONLY(ui32, RecordsCount, 0);
+    YDB_READONLY(ui32, IntervalsCount, 0);
+    virtual NJson::TJsonValue DoDebugJson() const = 0;
+    bool MergingStartedFlag = false;
+    bool AbortedFlag = false;
+    std::shared_ptr FetchingPlan;
+protected:
+    bool IsSourceInMemoryFlag = true;
+    THashMap Intervals;
+
+    std::unique_ptr StageData;
+    std::unique_ptr StageResult;
+
+    TAtomic FilterStageFlag = 0;
+    bool IsReadyFlag = false;
+
+    virtual bool DoStartFetchingColumns(const std::shared_ptr& sourcePtr, const TFetchingScriptCursor& step, const std::shared_ptr& columns) = 0;
+    virtual bool DoStartFetchingIndexes(const std::shared_ptr& sourcePtr, const TFetchingScriptCursor& step, const std::shared_ptr& indexes) = 0;
+    virtual void DoAssembleColumns(const std::shared_ptr& columns) = 0;
+    virtual void DoAbort() = 0;
+    virtual void DoApplyIndex(const NIndexes::TIndexCheckerContainer& indexMeta) = 0;
+    virtual bool DoAddSequentialEntityIds(const ui32 entityId) = 0;
+    virtual NJson::TJsonValue DoDebugJsonForMemory() const {
+        return NJson::JSON_MAP;
+    }
+public:
+    void OnInitResourcesGuard(const std::shared_ptr& sourcePtr);
+
+    bool IsAborted() const {
+        return AbortedFlag;
+    }
+    bool IsSourceInMemory() const {
+        return IsSourceInMemoryFlag;
+    }
+    virtual bool IsSourceInMemory(const std::set& fieldIds) const = 0;
+    bool AddSequentialEntityIds(const ui32 entityId) {
+        if (DoAddSequentialEntityIds(entityId)) {
+            IsSourceInMemoryFlag = false;
+            return true;
+        }
+        return false;
+    }
+    virtual THashMap DecodeBlobAddresses(NBlobOperations::NRead::TCompositeReadBlobs&& blobsOriginal) const = 0;
+
+    virtual ui64 GetPathId() const = 0;
+    virtual bool HasIndexes(const std::set& indexIds) const = 0;
+
+    const NArrow::TReplaceKey& GetStartReplaceKey() const {
+        return StartReplaceKey;
+    }
+    const NArrow::TReplaceKey& GetFinishReplaceKey() const {
+        return FinishReplaceKey;
+    }
+
+    const TFetchedResult& GetStageResult() const {
+        AFL_VERIFY(!!StageResult);
+        return *StageResult;
+    }
+
+    void SetIsReady();
+
+    void Finalize() {
+        TMemoryProfileGuard mpg("SCAN_PROFILE::STAGE_RESULT", IS_DEBUG_LOG_ENABLED(NKikimrServices::TX_COLUMNSHARD_SCAN_MEMORY));
+        StageResult = std::make_unique(std::move(StageData));
+    }
+
+    void ApplyIndex(const NIndexes::TIndexCheckerContainer& indexMeta) {
+        return DoApplyIndex(indexMeta);
+    }
+
+    void AssembleColumns(const std::shared_ptr& columns) {
+        if (columns->IsEmpty()) {
+            return;
+        }
+        DoAssembleColumns(columns);
+    }
+
+    bool StartFetchingColumns(const std::shared_ptr& sourcePtr, const TFetchingScriptCursor& step, const std::shared_ptr& columns) {
+        AFL_VERIFY(columns);
+        return DoStartFetchingColumns(sourcePtr, step, columns);
+    }
+
+    bool StartFetchingIndexes(const std::shared_ptr& sourcePtr, const TFetchingScriptCursor& step, const std::shared_ptr& indexes) {
+        AFL_VERIFY(indexes);
+        return DoStartFetchingIndexes(sourcePtr, step, indexes);
+    }
+    void InitFetchingPlan(const std::shared_ptr& fetching);
+
+    std::shared_ptr GetLastPK() const {
+        return Finish.BuildSortingCursor().ExtractSortingPosition(Finish.GetSortFields());
+    }
+    void IncIntervalsCount() {
+        ++IntervalsCount;
+    }
+
+    virtual ui64 GetColumnRawBytes(const std::set& columnIds) const = 0;
+    virtual ui64 GetIndexRawBytes(const std::set& indexIds) const = 0;
+
+    bool IsMergingStarted() const {
+        return MergingStartedFlag;
+    }
+
+    void StartMerging() {
+        Y_ABORT_UNLESS(!MergingStartedFlag);
+        MergingStartedFlag = true;
+    }
+
+    void Abort() {
+        AbortedFlag = true;
+        Intervals.clear();
+        DoAbort();
+    }
+
+    NJson::TJsonValue DebugJsonForMemory() const {
+        NJson::TJsonValue result = NJson::JSON_MAP;
+        result.InsertValue("details", DoDebugJsonForMemory());
+        result.InsertValue("count", RecordsCount);
+        return result;
+    }
+
+    NJson::TJsonValue DebugJson() const {
+        NJson::TJsonValue result = NJson::JSON_MAP;
+        result.InsertValue("source_idx", SourceIdx);
+        result.InsertValue("start", Start.DebugJson());
+        result.InsertValue("finish", Finish.DebugJson());
+        result.InsertValue("specific", DoDebugJson());
+        return result;
+    }
+
+    bool OnIntervalFinished(const ui32 intervalIdx);
+
+    bool IsDataReady() const {
+        return IsReadyFlag;
+    }
+
+    const TFetchedData& GetStageData() const {
+        AFL_VERIFY(StageData);
+        return *StageData;
+    }
+
+    TFetchedData& MutableStageData() {
+        AFL_VERIFY(StageData);
+        return *StageData;
+    }
+
+    void RegisterInterval(TFetchingInterval& interval);
+
+    IDataSource(const ui32 sourceIdx, const std::shared_ptr& context,
+        const NArrow::TReplaceKey& start, const NArrow::TReplaceKey& finish,
+        const TSnapshot& recordSnapshotMax, const ui32 recordsCount)
+        : SourceIdx(sourceIdx)
+        , Start(context->GetReadMetadata()->BuildSortedPosition(start))
+        , Finish(context->GetReadMetadata()->BuildSortedPosition(finish))
+        , StartReplaceKey(start)
+        , FinishReplaceKey(finish)
+        , Context(context)
+        , RecordSnapshotMax(recordSnapshotMax)
+        , RecordsCount(recordsCount)
+    {
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "portions_for_merge")("start", Start.DebugJson())("finish", Finish.DebugJson());
+        if (Start.IsReverseSort()) {
+            std::swap(Start, Finish);
+        }
+        Y_ABORT_UNLESS(Start.Compare(Finish) != std::partial_ordering::greater);
+    }
+
+    virtual ~IDataSource() {
+        Y_ABORT_UNLESS(AbortedFlag || Intervals.empty());
+    }
+};
+
+class TPortionDataSource: public IDataSource {
+private:
+    using TBase = IDataSource;
+    std::set SequentialEntityIds;
+    std::shared_ptr Portion;
+    std::shared_ptr Schema;
+
+    void NeedFetchColumns(const std::set& columnIds,
+        TBlobsAction& blobsAction, THashMap& nullBlocks,
+        const std::shared_ptr& filter);
+
+    virtual void DoApplyIndex(const NIndexes::TIndexCheckerContainer& indexChecker) override;
+    virtual bool DoStartFetchingColumns(const std::shared_ptr& sourcePtr, const TFetchingScriptCursor& step, const std::shared_ptr& columns) override;
+    virtual bool DoStartFetchingIndexes(const std::shared_ptr& sourcePtr, const TFetchingScriptCursor& step, const std::shared_ptr& indexes) override;
+    virtual void DoAssembleColumns(const std::shared_ptr& columns) override;
+    virtual NJson::TJsonValue DoDebugJson() const override {
+        NJson::TJsonValue result = NJson::JSON_MAP;
+        result.InsertValue("type", "portion");
+        result.InsertValue("info", Portion->DebugString());
+        return result;
+    }
+
+    virtual NJson::TJsonValue DoDebugJsonForMemory() const override {
+        NJson::TJsonValue result = TBase::DoDebugJsonForMemory();
+        auto columns = Portion->GetColumnIds();
+        for (auto&& i : SequentialEntityIds) {
+            AFL_VERIFY(columns.erase(i));
+        }
+//        result.InsertValue("sequential_columns", JoinSeq(",", SequentialEntityIds));
+        if (SequentialEntityIds.size()) {
+            result.InsertValue("min_memory_seq", Portion->GetMinMemoryForReadColumns(SequentialEntityIds));
+            result.InsertValue("min_memory_seq_blobs", Portion->GetColumnBlobBytes(SequentialEntityIds));
+            result.InsertValue("in_mem", Portion->GetColumnRawBytes(columns, false));
+        }
+        result.InsertValue("columns_in_mem", JoinSeq(",", columns));
+        result.InsertValue("portion_id", Portion->GetPortionId());
+        result.InsertValue("raw", Portion->GetTotalRawBytes());
+        result.InsertValue("blob", Portion->GetTotalBlobBytes());
+        result.InsertValue("read_memory", GetColumnRawBytes(Portion->GetColumnIds()));
+        return result;
+    }
+    virtual void DoAbort() override;
+    virtual ui64 GetPathId() const override {
+        return Portion->GetPathId();
+    }
+    virtual bool DoAddSequentialEntityIds(const ui32 entityId) override {
+        return SequentialEntityIds.emplace(entityId).second;
+    }
+
+public:
+    virtual bool HasIndexes(const std::set& indexIds) const override {
+        return Portion->HasIndexes(indexIds);
+    }
+
+    virtual THashMap DecodeBlobAddresses(NBlobOperations::NRead::TCompositeReadBlobs&& blobsOriginal) const override {
+        return Portion->DecodeBlobAddresses(std::move(blobsOriginal), Schema->GetIndexInfo());
+    }
+
+    virtual bool IsSourceInMemory(const std::set& fieldIds) const override {
+        for (auto&& i : SequentialEntityIds) {
+            if (fieldIds.contains(i)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    virtual ui64 GetColumnRawBytes(const std::set& columnsIds) const override {
+        if (SequentialEntityIds.size()) {
+            std::set selectedSeq;
+            std::set selectedInMem;
+            for (auto&& i : columnsIds) {
+                if (SequentialEntityIds.contains(i)) {
+                    selectedSeq.emplace(i);
+                } else {
+                    selectedInMem.emplace(i);
+                }
+            }
+            return Portion->GetMinMemoryForReadColumns(selectedSeq)
+                + Portion->GetColumnBlobBytes(selectedSeq)
+                + Portion->GetColumnRawBytes(selectedInMem, false);
+        } else {
+            return Portion->GetColumnRawBytes(columnsIds, false);
+        }
+    }
+
+    virtual ui64 GetIndexRawBytes(const std::set& indexIds) const override {
+        return Portion->GetIndexRawBytes(indexIds, false);
+    }
+
+    const TPortionInfo& GetPortionInfo() const {
+        return *Portion;
+    }
+
+    std::shared_ptr GetPortionInfoPtr() const {
+        return Portion;
+    }
+
+    TPortionDataSource(const ui32 sourceIdx, const std::shared_ptr& portion, const std::shared_ptr& context,
+        const NArrow::TReplaceKey& start, const NArrow::TReplaceKey& finish)
+        : TBase(sourceIdx, context, start, finish, portion->RecordSnapshotMax(), portion->GetRecordsCount())
+        , Portion(portion)
+        , Schema(GetContext()->GetReadMetadata()->GetLoadSchemaVerified(*Portion))
+    {
+    }
+};
+
+class TCommittedDataSource: public IDataSource {
+private:
+    using TBase = IDataSource;
+    TCommittedBlob CommittedBlob;
+    bool ReadStarted = false;
+
+    virtual void DoAbort() override {
+
+    }
+
+    virtual bool DoStartFetchingColumns(const std::shared_ptr& sourcePtr, const TFetchingScriptCursor& step, const std::shared_ptr& columns) override;
+    virtual bool DoStartFetchingIndexes(const std::shared_ptr& /*sourcePtr*/, const TFetchingScriptCursor& /*step*/, const std::shared_ptr& /*indexes*/) override {
+        return false;
+    }
+    virtual void DoApplyIndex(const NIndexes::TIndexCheckerContainer& /*indexMeta*/) override {
+        return;
+    }
+
+    virtual void DoAssembleColumns(const std::shared_ptr& columns) override;
+    virtual NJson::TJsonValue DoDebugJson() const override {
+        NJson::TJsonValue result = NJson::JSON_MAP;
+        result.InsertValue("type", "commit");
+        result.InsertValue("info", CommittedBlob.DebugString());
+        return result;
+    }
+    virtual ui64 GetPathId() const override {
+        return 0;
+    }
+    virtual bool DoAddSequentialEntityIds(const ui32 /*entityId*/) override {
+        return false;
+    }
+public:
+    virtual THashMap DecodeBlobAddresses(NBlobOperations::NRead::TCompositeReadBlobs&& blobsOriginal) const override {
+        THashMap result;
+        for (auto&& i : blobsOriginal) {
+            for (auto&& b : i.second) {
+                result.emplace(TChunkAddress(1, 1), std::move(b.second));
+            }
+        }
+        return result;
+    }
+
+    virtual bool IsSourceInMemory(const std::set& /*fieldIds*/) const override {
+        return true;
+    }
+
+    virtual bool HasIndexes(const std::set& /*indexIds*/) const override {
+        return false;
+    }
+
+    virtual ui64 GetColumnRawBytes(const std::set& /*columnIds*/) const override {
+        return CommittedBlob.GetBlobRange().Size;
+    }
+
+    virtual ui64 GetIndexRawBytes(const std::set& /*columnIds*/) const override {
+        AFL_VERIFY(false);
+        return 0;
+    }
+
+    const TCommittedBlob& GetCommitted() const {
+        return CommittedBlob;
+    }
+
+    TCommittedDataSource(const ui32 sourceIdx, const TCommittedBlob& committed, const std::shared_ptr& context,
+        const NArrow::TReplaceKey& start, const NArrow::TReplaceKey& finish)
+        : TBase(sourceIdx, context, start, finish, committed.GetSnapshot(), committed.GetRecordsCount())
+        , CommittedBlob(committed) {
+
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/ya.make b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/ya.make
new file mode 100644
index 000000000000..cfa691a22e84
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/iterator/ya.make
@@ -0,0 +1,23 @@
+LIBRARY()
+
+SRCS(
+    scanner.cpp
+    constructor.cpp
+    source.cpp
+    interval.cpp
+    fetched_data.cpp
+    plain_read_data.cpp
+    merge.cpp
+    columns_set.cpp
+    context.cpp
+    fetching.cpp
+    iterator.cpp
+)
+
+PEERDIR(
+    ydb/core/formats/arrow
+    ydb/core/tx/columnshard/blobs_action
+    ydb/core/tx/conveyor/usage
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/plain_read_data.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/plain_read_data.cpp
deleted file mode 100644
index 0720416cddb2..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/plain_read_data.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-#include "plain_read_data.h"
-
-namespace NKikimr::NOlap::NPlainReader {
-
-TPlainReadData::TPlainReadData(const std::shared_ptr& context)
-    : TBase(context)
-    , SpecialReadContext(std::make_shared(context))
-{
-    ui32 sourceIdx = 0;
-    std::deque> sources;
-    const auto& portionsOrdered = GetReadMetadata()->SelectInfo->GetPortionsOrdered(GetReadMetadata()->IsDescSorted());
-    const auto& committed = GetReadMetadata()->CommittedBlobs;
-    auto itCommitted = committed.begin();
-    auto itPortion = portionsOrdered.begin();
-    ui64 committedPortionsBytes = 0;
-    ui64 insertedPortionsBytes = 0;
-    ui64 compactedPortionsBytes = 0;
-    while (itCommitted != committed.end() || itPortion != portionsOrdered.end()) {
-        bool movePortion = false;
-        if (itCommitted == committed.end()) {
-            movePortion = true;
-        } else if (itPortion == portionsOrdered.end()) {
-            movePortion = false;
-        } else if (itCommitted->GetFirstVerified() < (*itPortion)->IndexKeyStart()) {
-            movePortion = false;
-        } else {
-            movePortion = true;
-        }
-
-        if (movePortion) {
-            if ((*itPortion)->GetMeta().GetProduced() == NPortion::EProduced::COMPACTED || (*itPortion)->GetMeta().GetProduced() == NPortion::EProduced::SPLIT_COMPACTED) {
-                compactedPortionsBytes += (*itPortion)->BlobsBytes();
-            } else {
-                insertedPortionsBytes += (*itPortion)->BlobsBytes();
-            }
-            auto start = GetReadMetadata()->BuildSortedPosition((*itPortion)->IndexKeyStart());
-            auto finish = GetReadMetadata()->BuildSortedPosition((*itPortion)->IndexKeyEnd());
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "portions_for_merge")("start", start.DebugJson())("finish", finish.DebugJson());
-            sources.emplace_back(std::make_shared(sourceIdx++, *itPortion, SpecialReadContext, start, finish));
-            ++itPortion;
-        } else {
-            auto start = GetReadMetadata()->BuildSortedPosition(itCommitted->GetFirstVerified());
-            auto finish = GetReadMetadata()->BuildSortedPosition(itCommitted->GetLastVerified());
-            sources.emplace_back(std::make_shared(sourceIdx++, *itCommitted, SpecialReadContext, start, finish));
-            committedPortionsBytes += itCommitted->GetSize();
-            ++itCommitted;
-        }
-    }
-    Scanner = std::make_shared(std::move(sources), SpecialReadContext);
-
-    auto& stats = GetReadMetadata()->ReadStats;
-    stats->IndexPortions = GetReadMetadata()->SelectInfo->PortionsOrderedPK.size();
-    stats->IndexBatches = GetReadMetadata()->NumIndexedBlobs();
-    stats->CommittedBatches = GetReadMetadata()->CommittedBlobs.size();
-    stats->SchemaColumns = (*SpecialReadContext->GetProgramInputColumns() - *SpecialReadContext->GetSpecColumns()).GetColumnsCount();
-    stats->CommittedPortionsBytes = committedPortionsBytes;
-    stats->InsertedPortionsBytes = insertedPortionsBytes;
-    stats->CompactedPortionsBytes = compactedPortionsBytes;
-
-}
-
-std::vector TPlainReadData::DoExtractReadyResults(const int64_t maxRowsInBatch) {
-    auto result = TPartialReadResult::SplitResults(std::move(PartialResults), maxRowsInBatch);
-    ui32 count = 0;
-    for (auto&& r: result) {
-        count += r.GetRecordsCount();
-    }
-    AFL_VERIFY(count == ReadyResultsCount);
-
-    ReadyResultsCount = 0;
-    PartialResults.clear();
-
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "DoExtractReadyResults")("result", result.size())("count", count)("finished", Scanner->IsFinished());
-    return result;
-}
-
-bool TPlainReadData::DoReadNextInterval() {
-    return Scanner->BuildNextInterval();
-}
-
-void TPlainReadData::OnIntervalResult(const std::shared_ptr& result) {
-    result->GetResourcesGuardOnly()->Update(result->GetMemorySize());
-    ReadyResultsCount += result->GetRecordsCount();
-    PartialResults.emplace_back(std::move(*result));
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/plain_read_data.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/plain_read_data.h
deleted file mode 100644
index 13e1f25f0d16..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/plain_read_data.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#pragma once
-#include "columns_set.h"
-#include "source.h"
-#include "scanner.h"
-
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap::NPlainReader {
-
-class TPlainReadData: public IDataReader, TNonCopyable {
-private:
-    using TBase = IDataReader;
-    std::shared_ptr Scanner;
-    std::shared_ptr SpecialReadContext;
-    std::vector PartialResults;
-    ui32 ReadyResultsCount = 0;
-    bool AbortedFlag = false;
-protected:
-    virtual TString DoDebugString(const bool verbose) const override {
-        TStringBuilder sb;
-        sb << SpecialReadContext->DebugString() << ";";
-        if (verbose) {
-            sb << "intervals_schema=" << Scanner->DebugString();
-        }
-        return sb;
-    }
-
-    virtual std::vector DoExtractReadyResults(const int64_t /*maxRowsInBatch*/) override;
-    virtual bool DoReadNextInterval() override;
-
-    virtual void DoAbort() override {
-        AbortedFlag = true;
-        Scanner->Abort();
-        PartialResults.clear();
-        Y_ABORT_UNLESS(IsFinished());
-    }
-    virtual bool DoIsFinished() const override {
-        return (Scanner->IsFinished() && PartialResults.empty());
-    }
-public:
-    const TReadMetadata::TConstPtr& GetReadMetadata() const {
-        return SpecialReadContext->GetReadMetadata();
-    }
-
-    const std::shared_ptr& GetSpecialReadContext() const {
-        return SpecialReadContext;
-    }
-
-    const TScanHead& GetScanner() const {
-        return *Scanner;
-    }
-
-    TScanHead& MutableScanner() {
-        return *Scanner;
-    }
-
-    void OnIntervalResult(const std::shared_ptr& result);
-
-    TPlainReadData(const std::shared_ptr& context);
-    ~TPlainReadData() {
-        if (!AbortedFlag) {
-            Abort();
-        }
-    }
-};
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/scanner.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/scanner.cpp
deleted file mode 100644
index 7611a4488ff2..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/scanner.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-#include "scanner.h"
-#include "plain_read_data.h"
-#include 
-#include 
-
-namespace NKikimr::NOlap::NPlainReader {
-
-void TScanHead::OnIntervalResult(const std::optional& newBatch, const std::shared_ptr& lastPK, const ui32 intervalIdx, TPlainReadData& reader) {
-    if (Context->GetReadMetadata()->Limit && (!newBatch || newBatch->GetRecordsCount() == 0) && InFlightLimit < 1000) {
-        if (++ZeroCount == std::max(16, InFlightLimit)) {
-            InFlightLimit *= 2;
-            ZeroCount = 0;
-        }
-    } else {
-        ZeroCount = 0;
-    }
-    auto itInterval = FetchingIntervals.find(intervalIdx);
-    AFL_VERIFY(itInterval != FetchingIntervals.end());
-    if (!Context->GetCommonContext()->GetReadMetadata()->IsSorted()) {
-        if (newBatch && newBatch->GetRecordsCount()) {
-            reader.OnIntervalResult(std::make_shared(itInterval->second->GetResourcesGuard(), *newBatch, lastPK));
-        }
-        AFL_VERIFY(FetchingIntervals.erase(intervalIdx));
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "interval_result")("interval_idx", intervalIdx)("count", newBatch ? newBatch->GetRecordsCount() : 0);
-    } else {
-        if (newBatch && newBatch->GetRecordsCount()) {
-            AFL_VERIFY(ReadyIntervals.emplace(intervalIdx, std::make_shared(itInterval->second->GetResourcesGuard(), *newBatch, lastPK)).second);
-        } else {
-            AFL_VERIFY(ReadyIntervals.emplace(intervalIdx, nullptr).second);
-        }
-        Y_ABORT_UNLESS(FetchingIntervals.size());
-        while (FetchingIntervals.size()) {
-            const auto interval = FetchingIntervals.begin()->second;
-            const ui32 intervalIdx = interval->GetIntervalIdx();
-            auto it = ReadyIntervals.find(intervalIdx);
-            if (it == ReadyIntervals.end()) {
-                break;
-            }
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "interval_result")("interval_idx", intervalIdx)("count", it->second ? it->second->GetRecordsCount() : 0);
-            FetchingIntervals.erase(FetchingIntervals.begin());
-            if (it->second) {
-                reader.OnIntervalResult(it->second);
-            }
-            ReadyIntervals.erase(it);
-        }
-        if (FetchingIntervals.empty()) {
-            AFL_VERIFY(ReadyIntervals.empty());
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "intervals_finished");
-        } else {
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "wait_interval")("remained", FetchingIntervals.size())("interval_idx", FetchingIntervals.begin()->first);
-        }
-    }
-}
-
-TScanHead::TScanHead(std::deque>&& sources, const std::shared_ptr& context)
-    : Context(context)
-{
-    InFlightLimit = Context->GetReadMetadata()->Limit ? 1 : Max();
-    while (sources.size()) {
-        auto source = sources.front();
-        BorderPoints[source->GetStart()].AddStart(source);
-        BorderPoints[source->GetFinish()].AddFinish(source);
-        sources.pop_front();
-    }
-
-    THashMap> currentSources;
-    for (auto&& i : BorderPoints) {
-        for (auto&& s : i.second.GetStartSources()) {
-            AFL_VERIFY(currentSources.emplace(s->GetSourceIdx(), s).second);
-        }
-        for (auto&& [_, source] : currentSources) {
-            source->IncIntervalsCount();
-        }
-        for (auto&& s : i.second.GetFinishSources()) {
-            AFL_VERIFY(currentSources.erase(s->GetSourceIdx()));
-        }
-    }
-}
-
-bool TScanHead::BuildNextInterval() {
-    while (BorderPoints.size() && (FetchingIntervals.size() < InFlightLimit || BorderPoints.begin()->second.GetStartSources().empty())) {
-        auto firstBorderPointInfo = std::move(BorderPoints.begin()->second);
-        bool includeStart = firstBorderPointInfo.GetStartSources().size();
-        for (auto&& i : firstBorderPointInfo.GetStartSources()) {
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("add_source", i->GetSourceIdx());
-            AFL_VERIFY(CurrentSegments.emplace(i->GetSourceIdx(), i).second)("idx", i->GetSourceIdx());
-        }
-
-        if (firstBorderPointInfo.GetStartSources().size() && firstBorderPointInfo.GetFinishSources().size()) {
-            includeStart = false;
-            const ui32 intervalIdx = SegmentIdxCounter++;
-            auto interval = std::make_shared(
-                BorderPoints.begin()->first, BorderPoints.begin()->first, intervalIdx, CurrentSegments,
-                Context, true, true, false);
-            FetchingIntervals.emplace(intervalIdx, interval);
-            IntervalStats.emplace_back(CurrentSegments.size(), true);
-            NResourceBroker::NSubscribe::ITask::StartResourceSubscription(Context->GetCommonContext()->GetResourceSubscribeActorId(), interval);
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "new_interval")("interval_idx", intervalIdx)("interval", interval->DebugJson());
-        }
-
-        for (auto&& i : firstBorderPointInfo.GetFinishSources()) {
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("remove_source", i->GetSourceIdx());
-            AFL_VERIFY(CurrentSegments.erase(i->GetSourceIdx()))("idx", i->GetSourceIdx());
-        }
-
-        CurrentStart = BorderPoints.begin()->first;
-        BorderPoints.erase(BorderPoints.begin());
-        if (CurrentSegments.size()) {
-            Y_ABORT_UNLESS(BorderPoints.size());
-            const bool includeFinish = BorderPoints.begin()->second.GetStartSources().empty();
-            const ui32 intervalIdx = SegmentIdxCounter++;
-            const bool isExclusiveInterval = (CurrentSegments.size() == 1) && includeStart && includeFinish;
-            auto interval = std::make_shared(*CurrentStart, BorderPoints.begin()->first, intervalIdx, CurrentSegments, Context, includeFinish, includeStart, isExclusiveInterval);
-            FetchingIntervals.emplace(intervalIdx, interval);
-            IntervalStats.emplace_back(CurrentSegments.size(), false);
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "new_interval")("interval_idx", intervalIdx)("interval", interval->DebugJson());
-            NResourceBroker::NSubscribe::ITask::StartResourceSubscription(Context->GetCommonContext()->GetResourceSubscribeActorId(), interval);
-            return true;
-        } else {
-            IntervalStats.emplace_back(CurrentSegments.size(), false);
-        }
-    }
-    return false;
-}
-
-const NKikimr::NOlap::TReadContext& TScanHead::GetContext() const {
-    return *Context->GetCommonContext();
-}
-
-bool TScanHead::IsReverse() const {
-    return GetContext().GetReadMetadata()->IsDescSorted();
-}
-
-void TScanHead::Abort() {
-    for (auto&& i : FetchingIntervals) {
-        i.second->Abort();
-    }
-    FetchingIntervals.clear();
-    BorderPoints.clear();
-    Y_ABORT_UNLESS(IsFinished());
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/scanner.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/scanner.h
deleted file mode 100644
index 8e071e8f54a5..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/scanner.h
+++ /dev/null
@@ -1,76 +0,0 @@
-#pragma once
-#include "source.h"
-#include "interval.h"
-#include 
-
-namespace NKikimr::NOlap::NPlainReader {
-
-class TPlainReadData;
-
-class TDataSourceEndpoint {
-private:
-    YDB_READONLY_DEF(std::vector>, StartSources);
-    YDB_READONLY_DEF(std::vector>, FinishSources);
-public:
-    void AddStart(std::shared_ptr source) {
-        StartSources.emplace_back(source);
-    }
-    void AddFinish(std::shared_ptr source) {
-        FinishSources.emplace_back(source);
-    }
-};
-
-class TIntervalStat {
-private:
-    YDB_READONLY(ui32, SourcesCount, 0);
-    YDB_READONLY(bool, IsPoint, false);
-public:
-    TIntervalStat(const ui32 sourcesCount, const bool isPoint)
-        : SourcesCount(sourcesCount)
-        , IsPoint(isPoint)
-    {
-
-    }
-};
-
-class TScanHead {
-private:
-    std::shared_ptr Context;
-    std::map BorderPoints;
-    std::map> CurrentSegments;
-    std::optional CurrentStart;
-    std::map> FetchingIntervals;
-    THashMap> ReadyIntervals;
-    ui32 SegmentIdxCounter = 0;
-    std::vector IntervalStats;
-    void DrainSources();
-    ui64 InFlightLimit = 1;
-    ui64 ZeroCount = 0;
-public:
-
-    bool IsReverse() const;
-    void Abort();
-
-    bool IsFinished() const {
-        return BorderPoints.empty() && FetchingIntervals.empty();
-    }
-
-    const TReadContext& GetContext() const;
-
-    TString DebugString() const {
-        TStringBuilder sb;
-        for (auto&& i : IntervalStats) {
-            sb << (i.GetIsPoint() ? "^" : "") << i.GetSourcesCount() << ";";
-        }
-        return sb;
-    }
-
-    void OnIntervalResult(const std::optional& batch, const std::shared_ptr& lastPK, const ui32 intervalIdx, TPlainReadData& reader);
-
-    TScanHead(std::deque>&& sources, const std::shared_ptr& context);
-
-    bool BuildNextInterval();
-
-};
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/source.cpp b/ydb/core/tx/columnshard/engines/reader/plain_reader/source.cpp
deleted file mode 100644
index e52f769a8172..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/source.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-#include "source.h"
-#include "interval.h"
-#include "fetched_data.h"
-#include "plain_read_data.h"
-#include "constructor.h"
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap::NPlainReader {
-
-void IDataSource::InitFetchingPlan(const std::shared_ptr& fetchingFirstStep, const std::shared_ptr& sourcePtr, const bool isExclusive) {
-    AFL_VERIFY(fetchingFirstStep);
-    if (AtomicCas(&FilterStageFlag, 1, 0)) {
-        StageData = std::make_unique(isExclusive);
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("InitFetchingPlan", fetchingFirstStep->DebugString())("source_idx", SourceIdx);
-        NActors::TLogContextGuard logGuard(NActors::TLogContextBuilder::Build()("source", SourceIdx)("method", "InitFetchingPlan"));
-        if (IsAborted()) {
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "InitFetchingPlanAborted");
-            return;
-        }
-        if (fetchingFirstStep->ExecuteInplace(sourcePtr, fetchingFirstStep)) {
-            auto task = std::make_shared(sourcePtr, fetchingFirstStep->GetNextStep(), Context->GetCommonContext()->GetScanActorId());
-            NConveyor::TScanServiceOperator::SendTaskToExecute(task);
-        }
-    }
-}
-
-void IDataSource::RegisterInterval(TFetchingInterval& interval) {
-    if (!IsReadyFlag) {
-        AFL_VERIFY(Intervals.emplace(interval.GetIntervalIdx(), &interval).second);
-    }
-}
-
-void IDataSource::SetIsReady() {
-    AFL_VERIFY(!IsReadyFlag);
-    IsReadyFlag = true;
-    for (auto&& i : Intervals) {
-        i.second->OnSourceFetchStageReady(SourceIdx);
-    }
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "source_ready")("intervals_count", Intervals.size())("source_idx", SourceIdx);
-    Intervals.clear();
-}
-
-void TPortionDataSource::NeedFetchColumns(const std::set& columnIds,
-    const std::shared_ptr& readingAction, THashMap& nullBlocks,
-    const std::shared_ptr& filter) {
-    const NArrow::TColumnFilter& cFilter = filter ? *filter : NArrow::TColumnFilter::BuildAllowFilter();
-    ui32 fetchedChunks = 0;
-    ui32 nullChunks = 0;
-    for (auto&& i : columnIds) {
-        auto columnChunks = Portion->GetColumnChunksPointers(i);
-        if (columnChunks.empty()) {
-            continue;
-        }
-        auto itFilter = cFilter.GetIterator(false, Portion->NumRows(i));
-        bool itFinished = false;
-        for (auto&& c : columnChunks) {
-            Y_ABORT_UNLESS(!itFinished);
-            if (!itFilter.IsBatchForSkip(c->GetMeta().GetNumRowsVerified())) {
-                readingAction->AddRange(c->BlobRange);
-                ++fetchedChunks;
-            } else {
-                nullBlocks.emplace(c->BlobRange, c->GetMeta().GetNumRowsVerified());
-                ++nullChunks;
-            }
-            itFinished = !itFilter.Next(c->GetMeta().GetNumRowsVerified());
-        }
-        AFL_VERIFY(itFinished)("filter", itFilter.DebugString())("count", Portion->NumRows(i));
-    }
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "chunks_stats")("fetch", fetchedChunks)("null", nullChunks)("reading_action", readingAction->GetStorageId())("columns", columnIds.size());
-}
-
-bool TPortionDataSource::DoStartFetchingColumns(const std::shared_ptr& sourcePtr, const std::shared_ptr& step, const std::shared_ptr& columns) {
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", step->GetName());
-    AFL_VERIFY(columns->GetColumnsCount());
-    AFL_VERIFY(!StageData->GetAppliedFilter() || !StageData->GetAppliedFilter()->IsTotalDenyFilter());
-    auto& columnIds = columns->GetColumnIds();
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", step->GetName())("fetching_info", step->DebugString());
-
-    auto readAction = Portion->GetBlobsStorage()->StartReadingAction("CS::READ::" + step->GetName());
-    readAction->SetIsBackgroundProcess(false);
-    {
-        THashMap nullBlocks;
-        NeedFetchColumns(columnIds, readAction, nullBlocks, StageData->GetAppliedFilter());
-        StageData->AddNulls(std::move(nullBlocks));
-    }
-
-    if (!readAction->GetExpectedBlobsSize()) {
-        return false;
-    }
-
-    std::vector> actions = {readAction};
-    auto constructor = std::make_shared(actions, sourcePtr, step, GetContext(), "CS::READ::" + step->GetName(), "");
-    NActors::TActivationContext::AsActorContext().Register(new NOlap::NBlobOperations::NRead::TActor(constructor));
-    return true;
-}
-
-bool TPortionDataSource::DoStartFetchingIndexes(const std::shared_ptr& sourcePtr, const std::shared_ptr& step, const std::shared_ptr& indexes) {
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", step->GetName());
-    Y_ABORT_UNLESS(indexes->GetIndexesCount());
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", step->GetName())("fetching_info", step->DebugString());
-
-    auto readAction = Portion->GetBlobsStorage()->StartReadingAction("CS::READ::" + step->GetName());
-    readAction->SetIsBackgroundProcess(false);
-    {
-        std::set indexIds;
-        for (auto&& i : Portion->GetIndexes()) {
-            if (!indexes->GetIndexIdsSet().contains(i.GetIndexId())) {
-                continue;
-            }
-            indexIds.emplace(i.GetIndexId());
-            readAction->AddRange(i.GetBlobRange());
-        }
-        if (indexes->GetIndexIdsSet().size() != indexIds.size()) {
-            return false;
-        }
-    }
-
-    if (!readAction->GetExpectedBlobsSize()) {
-        NYDBTest::TControllers::GetColumnShardController()->OnIndexSelectProcessed({});
-        return false;
-    }
-
-    std::vector> actions = {readAction};
-    auto constructor = std::make_shared(actions, sourcePtr, step, GetContext(), "CS::READ::" + step->GetName(), "");
-    NActors::TActivationContext::AsActorContext().Register(new NOlap::NBlobOperations::NRead::TActor(constructor));
-    return true;
-}
-
-void TPortionDataSource::DoAbort() {
-}
-
-void TPortionDataSource::DoApplyIndex(const NIndexes::TIndexCheckerContainer& indexChecker) {
-    THashMap> indexBlobs;
-    std::set indexIds = indexChecker->GetIndexIds();
-//    NActors::TLogContextGuard gLog = NActors::TLogContextBuilder::Build()("records_count", GetRecordsCount())("portion_id", Portion->GetAddress().DebugString());
-    std::vector pages = Portion->BuildPages();
-    NArrow::TColumnFilter constructor = NArrow::TColumnFilter::BuildAllowFilter();
-    for (auto&& p : pages) {
-        for (auto&& i : p.GetIndexes()) {
-            if (!indexIds.contains(i->GetIndexId())) {
-                continue;
-            }
-            indexBlobs[i->GetIndexId()].emplace_back(StageData->ExtractBlob(i->GetBlobRange()));
-        }
-        for (auto&& i : indexIds) {
-            if (!indexBlobs.contains(i)) {
-                return;
-            }
-        }
-        if (indexChecker->Check(indexBlobs)) {
-            NYDBTest::TControllers::GetColumnShardController()->OnIndexSelectProcessed(true);
-            constructor.Add(true, p.GetRecordsCount());
-        } else {
-            NYDBTest::TControllers::GetColumnShardController()->OnIndexSelectProcessed(false);
-            constructor.Add(false, p.GetRecordsCount());
-        }
-    }
-    AFL_VERIFY(constructor.Size() == Portion->GetRecordsCount());
-    if (constructor.IsTotalDenyFilter()) {
-        StageData->AddFilter(NArrow::TColumnFilter::BuildDenyFilter());
-    } else if (constructor.IsTotalAllowFilter()) {
-        return;
-    } else {
-        StageData->AddFilter(constructor);
-    }
-}
-
-bool TCommittedDataSource::DoStartFetchingColumns(const std::shared_ptr& sourcePtr, const std::shared_ptr& step, const std::shared_ptr& /*columns*/) {
-    if (ReadStarted) {
-        return false;
-    }
-    ReadStarted = true;
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", step->GetName())("fetching_info", step->DebugString());
-
-    std::shared_ptr storageOperator = GetContext()->GetCommonContext()->GetStoragesManager()->GetInsertOperator();
-    auto readAction = storageOperator->StartReadingAction("CS::READ::" + step->GetName());
-
-    readAction->SetIsBackgroundProcess(false);
-    readAction->AddRange(CommittedBlob.GetBlobRange());
-
-    std::vector> actions = {readAction};
-    auto constructor = std::make_shared(actions, sourcePtr, step, GetContext(), "CS::READ::" + step->GetName(), "");
-    NActors::TActivationContext::AsActorContext().Register(new NOlap::NBlobOperations::NRead::TActor(constructor));
-    return true;
-}
-
-void TCommittedDataSource::DoAssembleColumns(const std::shared_ptr& columns) {
-    if (!GetStageData().GetTable()) {
-        Y_ABORT_UNLESS(GetStageData().GetBlobs().size() == 1);
-        auto bData = MutableStageData().ExtractBlob(GetStageData().GetBlobs().begin()->first);
-        auto batch = NArrow::DeserializeBatch(bData, GetContext()->GetReadMetadata()->GetBlobSchema(CommittedBlob.GetSchemaVersion()));
-        Y_ABORT_UNLESS(batch);
-        batch = GetContext()->GetReadMetadata()->GetIndexInfo().AddSpecialColumns(batch, CommittedBlob.GetSnapshot());
-        MutableStageData().AddBatch(batch);
-    }
-    MutableStageData().SyncTableColumns(columns->GetSchema()->fields());
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/source.h b/ydb/core/tx/columnshard/engines/reader/plain_reader/source.h
deleted file mode 100644
index f339312ecfd7..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/source.h
+++ /dev/null
@@ -1,266 +0,0 @@
-#pragma once
-#include "context.h"
-#include "columns_set.h"
-#include "fetched_data.h"
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap {
-class IDataReader;
-}
-
-namespace NKikimr::NOlap::NPlainReader {
-
-class TFetchingInterval;
-class TPlainReadData;
-class IFetchTaskConstructor;
-class IFetchingStep;
-
-class IDataSource {
-private:
-    YDB_READONLY(ui32, SourceIdx, 0);
-    YDB_READONLY_DEF(NIndexedReader::TSortableBatchPosition, Start);
-    YDB_READONLY_DEF(NIndexedReader::TSortableBatchPosition, Finish);
-    YDB_READONLY_DEF(std::shared_ptr, Context);
-    YDB_READONLY(TSnapshot, RecordSnapshotMax, TSnapshot::Zero());
-    std::optional RecordsCount;
-    YDB_READONLY(ui32, IntervalsCount, 0);
-    virtual NJson::TJsonValue DoDebugJson() const = 0;
-    bool MergingStartedFlag = false;
-    bool AbortedFlag = false;
-protected:
-    THashMap Intervals;
-
-    std::unique_ptr StageData;
-    std::unique_ptr StageResult;
-
-    TAtomic FilterStageFlag = 0;
-    bool IsReadyFlag = false;
-
-    bool IsAborted() const {
-        return AbortedFlag;
-    }
-
-    virtual bool DoStartFetchingColumns(const std::shared_ptr& sourcePtr, const std::shared_ptr& step, const std::shared_ptr& columns) = 0;
-    virtual bool DoStartFetchingIndexes(const std::shared_ptr& sourcePtr, const std::shared_ptr& step, const std::shared_ptr& indexes) = 0;
-    virtual void DoAssembleColumns(const std::shared_ptr& columns) = 0;
-    virtual void DoAbort() = 0;
-    virtual void DoApplyIndex(const NIndexes::TIndexCheckerContainer& indexMeta) = 0;
-public:
-    const TFetchedResult& GetStageResult() const {
-        AFL_VERIFY(!!StageResult);
-        return *StageResult;
-    }
-
-    void SetIsReady();
-
-    void Finalize() {
-        StageResult = std::make_unique(std::move(StageData));
-    }
-
-    bool IsEmptyData() const {
-        return GetStageData().IsEmpty();
-    }
-
-    void ApplyIndex(const NIndexes::TIndexCheckerContainer& indexMeta) {
-        return DoApplyIndex(indexMeta);
-    }
-
-    void AssembleColumns(const std::shared_ptr& columns) {
-        if (columns->IsEmpty()) {
-            return;
-        }
-        DoAssembleColumns(columns);
-    }
-
-    bool StartFetchingColumns(const std::shared_ptr& sourcePtr, const std::shared_ptr& step, const std::shared_ptr& columns) {
-        AFL_VERIFY(columns);
-        return DoStartFetchingColumns(sourcePtr, step, columns);
-    }
-
-    bool StartFetchingIndexes(const std::shared_ptr& sourcePtr, const std::shared_ptr& step, const std::shared_ptr& indexes) {
-        AFL_VERIFY(indexes);
-        return DoStartFetchingIndexes(sourcePtr, step, indexes);
-    }
-    void InitFetchingPlan(const std::shared_ptr& fetchingFirstStep, const std::shared_ptr& sourcePtr, const bool isExclusive);
-
-    std::shared_ptr GetLastPK() const {
-        return Finish.ExtractSortingPosition();
-    }
-    void IncIntervalsCount() {
-        ++IntervalsCount;
-    }
-
-    virtual ui64 GetRawBytes(const std::set& columnIds) const = 0;
-    virtual ui64 GetIndexBytes(const std::set& indexIds) const = 0;
-
-    bool IsMergingStarted() const {
-        return MergingStartedFlag;
-    }
-
-    void StartMerging() {
-        Y_ABORT_UNLESS(!MergingStartedFlag);
-        MergingStartedFlag = true;
-    }
-
-    void Abort() {
-        AbortedFlag = true;
-        Intervals.clear();
-        DoAbort();
-    }
-
-    NJson::TJsonValue DebugJson() const {
-        NJson::TJsonValue result = NJson::JSON_MAP;
-        result.InsertValue("source_idx", SourceIdx);
-        result.InsertValue("start", Start.DebugJson());
-        result.InsertValue("finish", Finish.DebugJson());
-        result.InsertValue("specific", DoDebugJson());
-        return result;
-    }
-
-    bool OnIntervalFinished(const ui32 intervalIdx);
-
-    bool IsDataReady() const {
-        return IsReadyFlag;
-    }
-
-    const TFetchedData& GetStageData() const {
-        AFL_VERIFY(StageData);
-        return *StageData;
-    }
-
-    TFetchedData& MutableStageData() {
-        AFL_VERIFY(StageData);
-        return *StageData;
-    }
-
-    ui32 GetRecordsCount() const {
-        AFL_VERIFY(RecordsCount);
-        return *RecordsCount;
-    }
-
-    void RegisterInterval(TFetchingInterval& interval);
-
-    IDataSource(const ui32 sourceIdx, const std::shared_ptr& context, 
-        const NIndexedReader::TSortableBatchPosition& start, const NIndexedReader::TSortableBatchPosition& finish,
-        const TSnapshot& recordSnapshotMax, const std::optional recordsCount
-    )
-        : SourceIdx(sourceIdx)
-        , Start(start)
-        , Finish(finish)
-        , Context(context)
-        , RecordSnapshotMax(recordSnapshotMax)
-        , RecordsCount(recordsCount)
-    {
-        if (Start.IsReverseSort()) {
-            std::swap(Start, Finish);
-        }
-        Y_ABORT_UNLESS(Start.Compare(Finish) != std::partial_ordering::greater);
-    }
-
-    virtual ~IDataSource() {
-        Y_ABORT_UNLESS(AbortedFlag || Intervals.empty());
-    }
-};
-
-class TPortionDataSource: public IDataSource {
-private:
-    using TBase = IDataSource;
-    std::shared_ptr Portion;
-
-    void NeedFetchColumns(const std::set& columnIds,
-        const std::shared_ptr& readingAction, THashMap& nullBlocks,
-        const std::shared_ptr& filter);
-
-    virtual void DoApplyIndex(const NIndexes::TIndexCheckerContainer& indexChecker) override;
-    virtual bool DoStartFetchingColumns(const std::shared_ptr& sourcePtr, const std::shared_ptr& step, const std::shared_ptr& columns) override;
-    virtual bool DoStartFetchingIndexes(const std::shared_ptr& sourcePtr, const std::shared_ptr& step, const std::shared_ptr& indexes) override;
-    virtual void DoAssembleColumns(const std::shared_ptr& columns) override {
-        auto blobSchema = GetContext()->GetReadMetadata()->GetLoadSchema(Portion->GetMinSnapshot());
-        MutableStageData().AddBatch(Portion->PrepareForAssemble(*blobSchema, columns->GetFilteredSchemaVerified(), MutableStageData().MutableBlobs()).AssembleTable());
-    }
-    virtual NJson::TJsonValue DoDebugJson() const override {
-        NJson::TJsonValue result = NJson::JSON_MAP;
-        result.InsertValue("type", "portion");
-        result.InsertValue("info", Portion->DebugString());
-        return result;
-    }
-
-    virtual void DoAbort() override;
-public:
-    virtual ui64 GetRawBytes(const std::set& columnIds) const override {
-        return Portion->GetRawBytes(columnIds);
-    }
-
-    virtual ui64 GetIndexBytes(const std::set& columnIds) const override {
-        return Portion->GetIndexBytes(columnIds);
-    }
-
-    const TPortionInfo& GetPortionInfo() const {
-        return *Portion;
-    }
-
-    std::shared_ptr GetPortionInfoPtr() const {
-        return Portion;
-    }
-
-    TPortionDataSource(const ui32 sourceIdx, const std::shared_ptr& portion, const std::shared_ptr& context,
-        const NIndexedReader::TSortableBatchPosition& start, const NIndexedReader::TSortableBatchPosition& finish)
-        : TBase(sourceIdx, context, start, finish, portion->RecordSnapshotMax(), portion->GetRecordsCount())
-        , Portion(portion) {
-
-    }
-};
-
-class TCommittedDataSource: public IDataSource {
-private:
-    using TBase = IDataSource;
-    TCommittedBlob CommittedBlob;
-    bool ReadStarted = false;
-
-    virtual void DoAbort() override {
-
-    }
-
-    virtual bool DoStartFetchingColumns(const std::shared_ptr& sourcePtr, const std::shared_ptr& step, const std::shared_ptr& columns) override;
-    virtual bool DoStartFetchingIndexes(const std::shared_ptr& /*sourcePtr*/, const std::shared_ptr& /*step*/, const std::shared_ptr& /*indexes*/) override {
-        return false;
-    }
-    virtual void DoApplyIndex(const NIndexes::TIndexCheckerContainer& /*indexMeta*/) override {
-        return;
-    }
-
-    virtual void DoAssembleColumns(const std::shared_ptr& columns) override;
-    virtual NJson::TJsonValue DoDebugJson() const override {
-        NJson::TJsonValue result = NJson::JSON_MAP;
-        result.InsertValue("type", "commit");
-        result.InsertValue("info", CommittedBlob.DebugString());
-        return result;
-    }
-public:
-    virtual ui64 GetRawBytes(const std::set& /*columnIds*/) const override {
-        return CommittedBlob.GetBlobRange().Size;
-    }
-
-    virtual ui64 GetIndexBytes(const std::set& /*columnIds*/) const override {
-        return 0;
-    }
-
-    const TCommittedBlob& GetCommitted() const {
-        return CommittedBlob;
-    }
-
-    TCommittedDataSource(const ui32 sourceIdx, const TCommittedBlob& committed, const std::shared_ptr& context,
-        const NIndexedReader::TSortableBatchPosition& start, const NIndexedReader::TSortableBatchPosition& finish)
-        : TBase(sourceIdx, context, start, finish, committed.GetSnapshot(), {})
-        , CommittedBlob(committed) {
-
-    }
-};
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/plain_reader/ya.make b/ydb/core/tx/columnshard/engines/reader/plain_reader/ya.make
index 4a4db941aa67..c0e311e32598 100644
--- a/ydb/core/tx/columnshard/engines/reader/plain_reader/ya.make
+++ b/ydb/core/tx/columnshard/engines/reader/plain_reader/ya.make
@@ -1,21 +1,11 @@
 LIBRARY()
 
 SRCS(
-    scanner.cpp
-    constructor.cpp
-    source.cpp
-    interval.cpp
-    fetched_data.cpp
-    plain_read_data.cpp
-    columns_set.cpp
-    context.cpp
-    fetching.cpp
 )
 
 PEERDIR(
-    ydb/core/formats/arrow
-    ydb/core/tx/columnshard/blobs_action
-    ydb/core/tx/conveyor/usage
+    ydb/core/tx/columnshard/engines/reader/plain_reader/constructor
+    ydb/core/tx/columnshard/engines/reader/plain_reader/iterator
 )
 
 END()
diff --git a/ydb/core/tx/columnshard/engines/reader/read_context.cpp b/ydb/core/tx/columnshard/engines/reader/read_context.cpp
deleted file mode 100644
index ba07afecc800..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/read_context.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "read_context.h"
-#include "read_metadata.h"
-#include 
-
-namespace NKikimr::NOlap {
-
-void TActorBasedMemoryAccesor::DoOnBufferReady() {
-    OwnerId.Send(OwnerId, new NActors::TEvents::TEvWakeup(1));
-}
-
-
-IDataReader::IDataReader(const std::shared_ptr& context)
-    : Context(context) {
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/read_filter_merger.cpp b/ydb/core/tx/columnshard/engines/reader/read_filter_merger.cpp
deleted file mode 100644
index 0ac89d8ef3bc..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/read_filter_merger.cpp
+++ /dev/null
@@ -1,237 +0,0 @@
-#include "read_filter_merger.h"
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap::NIndexedReader {
-
-void TMergePartialStream::PutControlPoint(std::shared_ptr point) {
-    Y_ABORT_UNLESS(point);
-    AFL_VERIFY(point->IsSameSortingSchema(SortSchema))("point", point->DebugJson())("schema", SortSchema->ToString());
-    Y_ABORT_UNLESS(point->IsReverseSort() == Reverse);
-    Y_ABORT_UNLESS(++ControlPoints == 1);
-
-    SortHeap.Push(TBatchIterator(*point));
-}
-
-void TMergePartialStream::AddSource(std::shared_ptr batch, std::shared_ptr filter) {
-    if (!batch || !batch->num_rows()) {
-        return;
-    }
-    Y_DEBUG_ABORT_UNLESS(NArrow::IsSorted(batch, SortSchema));
-    AddNewToHeap(batch, filter);
-}
-
-void TMergePartialStream::AddNewToHeap(std::shared_ptr batch, std::shared_ptr filter) {
-    if (!filter || filter->IsTotalAllowFilter()) {
-        SortHeap.Push(TBatchIterator(batch, nullptr, SortSchema->field_names(), DataSchema ? DataSchema->field_names() : std::vector(), Reverse));
-    } else if (filter->IsTotalDenyFilter()) {
-        return;
-    } else {
-        SortHeap.Push(TBatchIterator(batch, filter, SortSchema->field_names(), DataSchema ? DataSchema->field_names() : std::vector(), Reverse));
-    }
-}
-
-void TMergePartialStream::RemoveControlPoint() {
-    Y_ABORT_UNLESS(ControlPoints == 1);
-    Y_ABORT_UNLESS(ControlPointEnriched());
-    Y_ABORT_UNLESS(-- ControlPoints == 0);
-    Y_ABORT_UNLESS(SortHeap.Current().IsControlPoint());
-    SortHeap.RemoveTop();
-}
-
-void TMergePartialStream::CheckSequenceInDebug(const TSortableBatchPosition& nextKeyColumnsPosition) {
-#ifndef NDEBUG
-    if (CurrentKeyColumns) {
-        const bool linearExecutionCorrectness = CurrentKeyColumns->Compare(nextKeyColumnsPosition) == std::partial_ordering::less;
-        if (!linearExecutionCorrectness) {
-            const bool newSegmentScan = nextKeyColumnsPosition.GetPosition() == 0;
-            AFL_VERIFY(newSegmentScan && nextKeyColumnsPosition.Compare(*CurrentKeyColumns) == std::partial_ordering::less)
-                ("merge_debug", DebugJson())("current_ext", nextKeyColumnsPosition.DebugJson())("newSegmentScan", newSegmentScan);
-        }
-    }
-    CurrentKeyColumns = nextKeyColumnsPosition;
-#else
-    Y_UNUSED(nextKeyColumnsPosition);
-#endif
-}
-
-bool TMergePartialStream::DrainCurrentTo(TRecordBatchBuilder& builder, const TSortableBatchPosition& readTo, const bool includeFinish, std::optional* lastResultPosition) {
-    Y_ABORT_UNLESS((ui32)DataSchema->num_fields() == builder.GetBuildersCount());
-    builder.ValidateDataSchema(DataSchema);
-    PutControlPoint(std::make_shared(readTo));
-    bool cpReachedFlag = false;
-    while (SortHeap.Size() && !cpReachedFlag) {
-        if (SortHeap.Current().IsControlPoint()) {
-            RemoveControlPoint();
-            cpReachedFlag = true;
-            if (SortHeap.Empty() || !includeFinish || SortHeap.Current().GetKeyColumns().Compare(readTo) == std::partial_ordering::greater) {
-                return true;
-            }
-        }
-
-        if (auto currentPosition = DrainCurrentPosition()) {
-            CheckSequenceInDebug(*currentPosition);
-            builder.AddRecord(*currentPosition);
-            if (lastResultPosition) {
-                *lastResultPosition = *currentPosition;
-            }
-        }
-    }
-    return false;
-}
-
-std::shared_ptr TMergePartialStream::SingleSourceDrain(const TSortableBatchPosition& readTo, const bool includeFinish, std::optional* lastResultPosition) {
-    std::shared_ptr result;
-    if (SortHeap.Empty()) {
-        return result;
-    }
-    const ui32 startPos = SortHeap.Current().GetKeyColumns().GetPosition();
-    const TSortableBatchPosition::TFoundPosition pos = SortHeap.MutableCurrent().SkipToLower(readTo);
-    bool finished = false;
-    const i32 delta = Reverse ? startPos - pos.GetPosition() : pos.GetPosition() - startPos;
-    if (delta == 0 && pos.IsGreater()) {
-        return nullptr;
-    }
-    bool include = false;
-    AFL_VERIFY(delta >= 0);
-    if (pos.IsEqual()) {
-        if (includeFinish) {
-            finished = !SortHeap.MutableCurrent().Next();
-            include = true;
-        } else {
-            finished = false;
-        }
-    } else if (pos.IsGreater()) {
-        finished = false;
-    } else {
-        finished = true;
-        include = true;
-    }
-    const ui32 resultSize = delta + (include ? 1 : 0);
-    if (Reverse) {
-        result = SortHeap.Current().GetKeyColumns().SliceData(pos.GetPosition() + (include ? 0 : 1), resultSize);
-        if (lastResultPosition && resultSize) {
-            auto keys = SortHeap.Current().GetKeyColumns().SliceKeys(pos.GetPosition() + (include ? 0 : 1), resultSize);
-            *lastResultPosition = TSortableBatchPosition(keys, 0, SortSchema->field_names(), {}, true);
-        }
-        if (SortHeap.Current().GetFilter()) {
-            SortHeap.Current().GetFilter()->Apply(result, pos.GetPosition() + (include ? 0 : 1), resultSize);
-        }
-    } else {
-        result = SortHeap.Current().GetKeyColumns().SliceData(startPos, resultSize);
-        if (lastResultPosition && resultSize) {
-            auto keys = SortHeap.Current().GetKeyColumns().SliceKeys(startPos, resultSize);
-            *lastResultPosition = TSortableBatchPosition(keys, keys->num_rows() - 1, SortSchema->field_names(), {}, false);
-        }
-        if (SortHeap.Current().GetFilter()) {
-            SortHeap.Current().GetFilter()->Apply(result, startPos, resultSize);
-        }
-    }
-    if (!result || !result->num_rows()) {
-        if (lastResultPosition) {
-            *lastResultPosition = {};
-        }
-    }
-#ifndef NDEBUG
-    NArrow::TStatusValidator::Validate(result->ValidateFull());
-#endif
-
-    if (Reverse) {
-        result = NArrow::ReverseRecords(result);
-    }
-
-    if (finished) {
-        SortHeap.RemoveTop();
-    } else {
-        SortHeap.UpdateTop();
-    }
-    if (SortHeap.Empty()) {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("pos", readTo.DebugJson().GetStringRobust())("heap", "EMPTY");
-    } else {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("pos", readTo.DebugJson().GetStringRobust())("heap", SortHeap.Current().GetKeyColumns().DebugJson().GetStringRobust());
-    }
-    return result;
-}
-
-bool TMergePartialStream::DrainAll(TRecordBatchBuilder& builder) {
-    Y_ABORT_UNLESS((ui32)DataSchema->num_fields() == builder.GetBuildersCount());
-    while (SortHeap.Size()) {
-        if (auto currentPosition = DrainCurrentPosition()) {
-            CheckSequenceInDebug(*currentPosition);
-            builder.AddRecord(*currentPosition);
-        }
-    }
-    return false;
-}
-
-std::optional TMergePartialStream::DrainCurrentPosition() {
-    Y_ABORT_UNLESS(SortHeap.Size());
-    Y_ABORT_UNLESS(!SortHeap.Current().IsControlPoint());
-    TSortableBatchPosition result = SortHeap.Current().GetKeyColumns();
-    TSortableBatchPosition resultVersion = SortHeap.Current().GetVersionColumns();
-    bool isFirst = true;
-    const bool deletedFlag = SortHeap.Current().IsDeleted();
-    while (SortHeap.Size() && (isFirst || result.Compare(SortHeap.Current().GetKeyColumns()) == std::partial_ordering::equivalent)) {
-        auto& anotherIterator = SortHeap.Current();
-        if (!isFirst) {
-            if (PossibleSameVersionFlag) {
-                AFL_VERIFY(resultVersion.Compare(anotherIterator.GetVersionColumns()) != std::partial_ordering::less)("r", resultVersion.DebugJson())("a", anotherIterator.GetVersionColumns().DebugJson())
-                    ("key", result.DebugJson());
-            } else {
-                AFL_VERIFY(resultVersion.Compare(anotherIterator.GetVersionColumns()) == std::partial_ordering::greater)("r", resultVersion.DebugJson())("a", anotherIterator.GetVersionColumns().DebugJson())
-                    ("key", result.DebugJson());
-            }
-        }
-        SortHeap.Next();
-        isFirst = false;
-    }
-    if (deletedFlag) {
-        return {};
-    }
-    return result;
-}
-
-std::vector> TMergePartialStream::DrainAllParts(const std::map& positions,
-    const std::vector>& resultFields)
-{
-    std::vector> result;
-    for (auto&& i : positions) {
-        NIndexedReader::TRecordBatchBuilder indexesBuilder(resultFields);
-        DrainCurrentTo(indexesBuilder, i.first, i.second);
-        result.emplace_back(indexesBuilder.Finalize());
-        if (result.back()->num_rows() == 0) {
-            result.pop_back();
-        }
-    }
-    NIndexedReader::TRecordBatchBuilder indexesBuilder(resultFields);
-    DrainAll(indexesBuilder);
-    result.emplace_back(indexesBuilder.Finalize());
-    if (result.back()->num_rows() == 0) {
-        result.pop_back();
-    }
-    return result;
-}
-
-NJson::TJsonValue TMergePartialStream::TBatchIterator::DebugJson() const {
-    NJson::TJsonValue result;
-    result["is_cp"] = IsControlPoint();
-    result["key"] = KeyColumns.DebugJson();
-    return result;
-}
-
-void TRecordBatchBuilder::ValidateDataSchema(const std::shared_ptr& schema) {
-    AFL_VERIFY(IsSameFieldsSequence(schema->fields(), Fields));
-}
-
-void TRecordBatchBuilder::AddRecord(const TSortableBatchPosition& position) {
-    Y_DEBUG_ABORT_UNLESS(position.GetData().GetColumns().size() == Builders.size());
-    Y_DEBUG_ABORT_UNLESS(IsSameFieldsSequence(position.GetData().GetFields(), Fields));
-//    AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("event", "record_add_on_read")("record", position.DebugJson());
-    for (ui32 i = 0; i < position.GetData().GetColumns().size(); ++i) {
-        NArrow::Append(*Builders[i], *position.GetData().GetColumns()[i], position.GetPosition());
-    }
-    ++RecordsCount;
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/read_filter_merger.h b/ydb/core/tx/columnshard/engines/reader/read_filter_merger.h
deleted file mode 100644
index 54dadf24d101..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/read_filter_merger.h
+++ /dev/null
@@ -1,423 +0,0 @@
-#pragma once
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap::NIndexedReader {
-
-class TRecordBatchBuilder;
-
-template 
-class TSortingHeap {
-public:
-    TSortingHeap() = default;
-
-    template 
-    TSortingHeap(TCursors& cursors, bool notNull) {
-        Queue.reserve(cursors.size());
-        for (auto& cur : cursors) {
-            if (!cur.Empty()) {
-                Queue.emplace_back(TSortCursor(&cur, notNull));
-            }
-        }
-        std::make_heap(Queue.begin(), Queue.end());
-    }
-
-    const TSortCursor& Current() const { return Queue.front(); }
-    TSortCursor& MutableCurrent() { return Queue.front(); }
-    size_t Size() const { return Queue.size(); }
-    bool Empty() const { return Queue.empty(); }
-    TSortCursor& NextChild() { return Queue[NextChildIndex()]; }
-
-    void Next() {
-        Y_ABORT_UNLESS(Size());
-
-        if (Queue.front().Next()) {
-            UpdateTop();
-        } else {
-            RemoveTop();
-        }
-    }
-
-    void RemoveTop() {
-        std::pop_heap(Queue.begin(), Queue.end());
-        Queue.pop_back();
-        NextIdx = 0;
-    }
-
-    void Push(TSortCursor&& cursor) {
-        Queue.emplace_back(cursor);
-        std::push_heap(Queue.begin(), Queue.end());
-        NextIdx = 0;
-    }
-
-    NJson::TJsonValue DebugJson() const {
-        NJson::TJsonValue result = NJson::JSON_ARRAY;
-        for (auto&& i : Queue) {
-            result.AppendValue(i.DebugJson());
-        }
-        return result;
-    }
-
-    /// This is adapted version of the function __sift_down from libc++.
-    /// Why cannot simply use std::priority_queue?
-    /// - because it doesn't support updating the top element and requires pop and push instead.
-    /// Also look at "Boost.Heap" library.
-    void UpdateTop() {
-        size_t size = Queue.size();
-        if (size < 2)
-            return;
-
-        auto begin = Queue.begin();
-
-        size_t child_idx = NextChildIndex();
-        auto child_it = begin + child_idx;
-
-        /// Check if we are in order.
-        if (*child_it < *begin)
-            return;
-
-        NextIdx = 0;
-
-        auto curr_it = begin;
-        auto top(std::move(*begin));
-        do {
-            /// We are not in heap-order, swap the parent with it's largest child.
-            *curr_it = std::move(*child_it);
-            curr_it = child_it;
-
-            // recompute the child based off of the updated parent
-            child_idx = 2 * child_idx + 1;
-
-            if (child_idx >= size)
-                break;
-
-            child_it = begin + child_idx;
-
-            if ((child_idx + 1) < size && *child_it < *(child_it + 1)) {
-                /// Right child exists and is greater than left child.
-                ++child_it;
-                ++child_idx;
-            }
-
-            /// Check if we are in order.
-        } while (!(*child_it < top));
-        *curr_it = std::move(top);
-    }
-private:
-    std::vector Queue;
-    /// Cache comparison between first and second child if the order in queue has not been changed.
-    size_t NextIdx = 0;
-
-    size_t NextChildIndex() {
-        if (NextIdx == 0) {
-            NextIdx = 1;
-            if (Queue.size() > 2 && Queue[1] < Queue[2]) {
-                ++NextIdx;
-            }
-        }
-
-        return NextIdx;
-    }
-
-};
-
-class TMergePartialStream {
-private:
-#ifndef NDEBUG
-    std::optional CurrentKeyColumns;
-#endif
-    bool PossibleSameVersionFlag = true;
-
-    class TBatchIterator {
-    private:
-        bool ControlPointFlag;
-        TSortableBatchPosition KeyColumns;
-        TSortableBatchPosition VersionColumns;
-        i64 RecordsCount;
-        int ReverseSortKff;
-
-        std::shared_ptr Filter;
-        std::shared_ptr FilterIterator;
-
-        i32 GetFirstPosition() const {
-            if (ReverseSortKff > 0) {
-                return 0;
-            } else {
-                return RecordsCount - 1;
-            }
-        }
-
-    public:
-        NJson::TJsonValue DebugJson() const;
-
-        const std::shared_ptr& GetFilter() const {
-            return Filter;
-        }
-
-        bool IsControlPoint() const {
-            return ControlPointFlag;
-        }
-
-        const TSortableBatchPosition& GetKeyColumns() const {
-            return KeyColumns;
-        }
-
-        const TSortableBatchPosition& GetVersionColumns() const {
-            return VersionColumns;
-        }
-
-        TBatchIterator(const TSortableBatchPosition& keyColumns)
-            : ControlPointFlag(true)
-            , KeyColumns(keyColumns)
-        {
-
-        }
-
-        TBatchIterator(std::shared_ptr batch, std::shared_ptr filter,
-            const std::vector& keyColumns, const std::vector& dataColumns, const bool reverseSort)
-            : ControlPointFlag(false)
-            , KeyColumns(batch, 0, keyColumns, dataColumns, reverseSort)
-            , VersionColumns(batch, 0, TIndexInfo::GetSpecialColumnNames(), {}, false)
-            , RecordsCount(batch->num_rows())
-            , ReverseSortKff(reverseSort ? -1 : 1)
-            , Filter(filter)
-        {
-            Y_ABORT_UNLESS(KeyColumns.InitPosition(GetFirstPosition()));
-            Y_ABORT_UNLESS(VersionColumns.InitPosition(GetFirstPosition()));
-            if (Filter) {
-                FilterIterator = std::make_shared(Filter->GetIterator(reverseSort, RecordsCount));
-            }
-        }
-
-        bool CheckNextBatch(const TBatchIterator& nextIterator) {
-            return KeyColumns.Compare(nextIterator.KeyColumns) == std::partial_ordering::less;
-        }
-
-        bool IsReverse() const {
-            return ReverseSortKff < 0;
-        }
-
-        bool IsDeleted() const {
-            if (!FilterIterator) {
-                return false;
-            }
-            return !FilterIterator->GetCurrentAcceptance();
-        }
-
-        TSortableBatchPosition::TFoundPosition SkipToLower(const TSortableBatchPosition& pos) {
-            const ui32 posStart = KeyColumns.GetPosition();
-            auto result = KeyColumns.SkipToLower(pos);
-            const i32 delta = IsReverse() ? (posStart - KeyColumns.GetPosition()) : (KeyColumns.GetPosition() - posStart);
-            AFL_VERIFY(delta >= 0);
-            AFL_VERIFY(VersionColumns.InitPosition(KeyColumns.GetPosition()));
-            if (FilterIterator && delta) {
-                AFL_VERIFY(FilterIterator->Next(delta));
-            }
-            return result;
-        }
-
-        bool Next() {
-            const bool result = KeyColumns.NextPosition(ReverseSortKff) && VersionColumns.NextPosition(ReverseSortKff);
-            if (FilterIterator) {
-                Y_ABORT_UNLESS(result == FilterIterator->Next(1));
-            }
-            return result;
-        }
-
-        bool operator<(const TBatchIterator& item) const {
-            const std::partial_ordering result = KeyColumns.Compare(item.KeyColumns);
-            if (result == std::partial_ordering::equivalent) {
-                if (IsControlPoint() && item.IsControlPoint()) {
-                    return false;
-                } else if (IsControlPoint()) {
-                    return false;
-                } else if (item.IsControlPoint()) {
-                    return true;
-                }
-                //don't need inverse through we need maximal version at first (reverse analytic not included in VersionColumns)
-                return VersionColumns.Compare(item.VersionColumns) == std::partial_ordering::less;
-            } else {
-                //inverse logic through we use max heap, but need minimal element if not reverse (reverse analytic included in KeyColumns)
-                return result == std::partial_ordering::greater;
-            }
-        }
-    };
-
-    class TIteratorData {
-    private:
-        YDB_READONLY_DEF(std::shared_ptr, Batch);
-        YDB_READONLY_DEF(std::shared_ptr, Filter);
-    public:
-        TIteratorData(std::shared_ptr batch, std::shared_ptr filter)
-            : Batch(batch)
-            , Filter(filter)
-        {
-
-        }
-    };
-
-    NJson::TJsonValue DebugJson() const {
-        NJson::TJsonValue result = NJson::JSON_MAP;
-#ifndef NDEBUG
-        if (CurrentKeyColumns) {
-            result["current"] = CurrentKeyColumns->DebugJson();
-        }
-#endif
-        result.InsertValue("heap", SortHeap.DebugJson());
-        return result;
-    }
-
-    TSortingHeap SortHeap;
-    std::shared_ptr SortSchema;
-    std::shared_ptr DataSchema;
-    const bool Reverse;
-    ui32 ControlPoints = 0;
-
-    std::optional DrainCurrentPosition();
-
-    void AddNewToHeap(std::shared_ptr batch, std::shared_ptr filter);
-    void CheckSequenceInDebug(const TSortableBatchPosition& nextKeyColumnsPosition);
-public:
-    TMergePartialStream(std::shared_ptr sortSchema, std::shared_ptr dataSchema, const bool reverse)
-        : SortSchema(sortSchema)
-        , DataSchema(dataSchema)
-        , Reverse(reverse) {
-        Y_ABORT_UNLESS(SortSchema);
-        Y_ABORT_UNLESS(SortSchema->num_fields());
-        Y_ABORT_UNLESS(!DataSchema || DataSchema->num_fields());
-    }
-
-    void SkipToLowerBound(const TSortableBatchPosition& pos, const bool include) {
-        if (SortHeap.Empty()) {
-            return;
-        }
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("pos", pos.DebugJson().GetStringRobust())("heap", SortHeap.Current().GetKeyColumns().DebugJson().GetStringRobust());
-        while (!SortHeap.Empty()) {
-            const auto cmpResult = SortHeap.Current().GetKeyColumns().Compare(pos);
-            if (cmpResult == std::partial_ordering::greater) {
-                break;
-            }
-            if (cmpResult == std::partial_ordering::equivalent && include) {
-                break;
-            }
-            const TSortableBatchPosition::TFoundPosition skipPos = SortHeap.MutableCurrent().SkipToLower(pos);
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("pos", pos.DebugJson().GetStringRobust())("heap", SortHeap.Current().GetKeyColumns().DebugJson().GetStringRobust());
-            if (skipPos.IsEqual()) {
-                if (!include && !SortHeap.MutableCurrent().Next()) {
-                    SortHeap.RemoveTop();
-                } else {
-                    SortHeap.UpdateTop();
-                }
-            } else if (skipPos.IsLess()) {
-                SortHeap.RemoveTop();
-            } else {
-                SortHeap.UpdateTop();
-            }
-        }
-    }
-
-    void SetPossibleSameVersion(const bool value) {
-        PossibleSameVersionFlag = value;
-    }
-
-    bool IsValid() const {
-        return SortHeap.Size();
-    }
-
-    ui32 GetSourcesCount() const {
-        return SortHeap.Size();
-    }
-
-    TString DebugString() const {
-        return TStringBuilder() << "sort_heap=" << SortHeap.DebugJson();
-    }
-
-    void PutControlPoint(std::shared_ptr point);
-
-    void RemoveControlPoint();
-
-    bool ControlPointEnriched() const {
-        return SortHeap.Size() && SortHeap.Current().IsControlPoint();
-    }
-
-    void AddSource(std::shared_ptr batch, std::shared_ptr filter);
-
-    bool IsEmpty() const {
-        return !SortHeap.Size();
-    }
-
-    bool DrainAll(TRecordBatchBuilder& builder);
-    std::shared_ptr SingleSourceDrain(const TSortableBatchPosition& readTo, const bool includeFinish, std::optional* lastResultPosition = nullptr);
-    bool DrainCurrentTo(TRecordBatchBuilder& builder, const TSortableBatchPosition& readTo, const bool includeFinish, std::optional* lastResultPosition = nullptr);
-    std::vector> DrainAllParts(const std::map& positions,
-        const std::vector>& resultFields);
-};
-
-class TRecordBatchBuilder {
-private:
-    std::vector> Builders;
-    YDB_READONLY_DEF(std::vector>, Fields);
-    YDB_READONLY(ui32, RecordsCount, 0);
-
-    bool IsSameFieldsSequence(const std::vector>& f1, const std::vector>& f2) {
-        if (f1.size() != f2.size()) {
-            return false;
-        }
-        for (ui32 i = 0; i < f1.size(); ++i) {
-            if (!f1[i]->Equals(f2[i])) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-public:
-    ui32 GetBuildersCount() const {
-        return Builders.size();
-    }
-
-    TString GetColumnNames() const {
-        TStringBuilder result;
-        for (auto&& f : Fields) {
-            result << f->name() << ",";
-        }
-        return result;
-    }
-
-    TRecordBatchBuilder(const std::vector>& fields, const std::optional rowsCountExpectation = {}, const THashMap& fieldDataSizePreallocated = {})
-        : Fields(fields) {
-        Y_ABORT_UNLESS(Fields.size());
-        for (auto&& f : fields) {
-            Builders.emplace_back(NArrow::MakeBuilder(f));
-            auto it = fieldDataSizePreallocated.find(f->name());
-            if (it != fieldDataSizePreallocated.end()) {
-                NArrow::ReserveData(*Builders.back(), it->second);
-            }
-            if (rowsCountExpectation) {
-                NArrow::TStatusValidator::Validate(Builders.back()->Reserve(*rowsCountExpectation));
-            }
-        }
-    }
-
-    std::shared_ptr Finalize() {
-        auto schema = std::make_shared(Fields);
-        std::vector> columns;
-        for (auto&& i : Builders) {
-            columns.emplace_back(NArrow::TStatusValidator::GetValid(i->Finish()));
-        }
-        return arrow::RecordBatch::Make(schema, columns.front()->length(), columns);
-    }
-
-    void AddRecord(const TSortableBatchPosition& position);
-    void ValidateDataSchema(const std::shared_ptr& schema);
-};
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/read_metadata.cpp b/ydb/core/tx/columnshard/engines/reader/read_metadata.cpp
deleted file mode 100644
index 988d6553b327..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/read_metadata.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-#include "read_metadata.h"
-#include "read_context.h"
-#include "plain_reader/plain_read_data.h"
-#include 
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap {
-
-TDataStorageAccessor::TDataStorageAccessor(const std::unique_ptr& insertTable,
-                                const std::unique_ptr& index)
-    : InsertTable(insertTable)
-    , Index(index)
-{}
-
-std::shared_ptr TDataStorageAccessor::Select(const NOlap::TReadDescription& readDescription) const {
-    if (readDescription.ReadNothing) {
-        return std::make_shared();
-    }
-    return Index->Select(readDescription.PathId,
-                            readDescription.GetSnapshot(),
-                            readDescription.PKRangesFilter);
-}
-
-std::vector TDataStorageAccessor::GetCommitedBlobs(const NOlap::TReadDescription& readDescription, const std::shared_ptr& pkSchema) const {
-    return std::move(InsertTable->Read(readDescription.PathId, readDescription.GetSnapshot(), pkSchema));
-}
-
-std::unique_ptr TReadMetadata::StartScan(const std::shared_ptr& readContext) const {
-    return std::make_unique(readContext, this->shared_from_this());
-}
-
-bool TReadMetadata::Init(const TReadDescription& readDescription, const TDataStorageAccessor& dataAccessor, std::string& /*error*/) {
-    SetPKRangesFilter(readDescription.PKRangesFilter);
-
-    /// @note We could have column name changes between schema versions:
-    /// Add '1:foo', Drop '1:foo', Add '2:foo'. Drop should hide '1:foo' from reads.
-    /// It's expected that we have only one version on 'foo' in blob and could split them by schema {planStep:txId}.
-    /// So '1:foo' would be omitted in blob records for the column in new snapshots. And '2:foo' - in old ones.
-    /// It's not possible for blobs with several columns. There should be a special logic for them.
-    CommittedBlobs = dataAccessor.GetCommitedBlobs(readDescription, ResultIndexSchema->GetIndexInfo().GetReplaceKey());
-
-    SelectInfo = dataAccessor.Select(readDescription);
-    StatsMode = readDescription.StatsMode;
-    return true;
-}
-
-std::set TReadMetadata::GetEarlyFilterColumnIds() const {
-    auto& indexInfo = ResultIndexSchema->GetIndexInfo();
-    std::set result = GetPKRangesFilter().GetColumnIds(indexInfo);
-    for (auto&& i : GetProgram().GetEarlyFilterColumns()) {
-        auto id = indexInfo.GetColumnIdOptional(i);
-        if (id) {
-            result.emplace(*id);
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("early_filter_column", i);
-        }
-    }
-    return result;
-}
-
-std::set TReadMetadata::GetPKColumnIds() const {
-    std::set result;
-    auto& indexInfo = ResultIndexSchema->GetIndexInfo();
-    for (auto&& i : indexInfo.GetPrimaryKeyColumns()) {
-        Y_ABORT_UNLESS(result.emplace(indexInfo.GetColumnId(i.first)).second);
-    }
-    return result;
-}
-
-std::vector> TReadStatsMetadata::GetKeyYqlSchema() const {
-    return NOlap::GetColumns(NColumnShard::PrimaryIndexStatsSchema, NColumnShard::PrimaryIndexStatsSchema.KeyColumns);
-}
-
-std::unique_ptr TReadStatsMetadata::StartScan(const std::shared_ptr& /*readContext*/) const {
-    return std::make_unique(this->shared_from_this());
-}
-
-void TReadStats::PrintToLog() {
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)
-        ("event", "statistic")
-        ("begin", BeginTimestamp)
-        ("index_granules", IndexGranules)
-        ("index_portions", IndexPortions)
-        ("index_batches", IndexBatches)
-        ("committed_batches", CommittedBatches)
-        ("schema_columns", SchemaColumns)
-        ("filter_columns", FilterColumns)
-        ("additional_columns", AdditionalColumns)
-        ("compacted_portions_bytes", CompactedPortionsBytes)
-        ("inserted_portions_bytes", InsertedPortionsBytes)
-        ("committed_portions_bytes", CommittedPortionsBytes)
-        ("data_filter_bytes", DataFilterBytes)
-        ("data_additional_bytes", DataAdditionalBytes)
-        ("delta_bytes", CompactedPortionsBytes + InsertedPortionsBytes + CommittedPortionsBytes - DataFilterBytes - DataAdditionalBytes)
-        ("selected_rows", SelectedRows)
-        ;
-}
-
-std::shared_ptr TReadMetadata::BuildReader(const std::shared_ptr& context) const {
-    return std::make_shared(context);
-//    auto result = std::make_shared(self, context);
-//    result->InitRead();
-//    return result;
-}
-
-NIndexedReader::TSortableBatchPosition TReadMetadata::BuildSortedPosition(const NArrow::TReplaceKey& key) const {
-    return NIndexedReader::TSortableBatchPosition(key.ToBatch(GetReplaceKey()), 0,
-        GetReplaceKey()->field_names(), {}, IsDescSorted());
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/read_metadata.h b/ydb/core/tx/columnshard/engines/reader/read_metadata.h
deleted file mode 100644
index 13358c0586df..000000000000
--- a/ydb/core/tx/columnshard/engines/reader/read_metadata.h
+++ /dev/null
@@ -1,303 +0,0 @@
-#pragma once
-#include "conveyor_task.h"
-#include "description.h"
-#include "read_filter_merger.h"
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include 
-#include 
-
-namespace NKikimr::NColumnShard {
-class TScanIteratorBase;
-}
-
-namespace NKikimr::NOlap {
-
-class TReadContext;
-
-struct TReadStats {
-    TInstant BeginTimestamp;
-    ui64 IndexGranules{0};
-    ui64 IndexPortions{0};
-    ui64 IndexBatches{0};
-    ui64 CommittedBatches{0};
-    ui64 CommittedPortionsBytes = 0;
-    ui64 InsertedPortionsBytes = 0;
-    ui64 CompactedPortionsBytes = 0;
-    ui64 DataFilterBytes{ 0 };
-    ui64 DataAdditionalBytes{ 0 };
-
-    ui32 SchemaColumns = 0;
-    ui32 FilterColumns = 0;
-    ui32 AdditionalColumns = 0;
-
-    ui32 SelectedRows = 0;
-
-    TReadStats()
-        : BeginTimestamp(TInstant::Now())
-    {}
-
-    void PrintToLog();
-
-    ui64 GetReadBytes() const {
-        return CompactedPortionsBytes + InsertedPortionsBytes + CompactedPortionsBytes;
-    }
-
-    TDuration Duration() {
-        return TInstant::Now() - BeginTimestamp;
-    }
-};
-
-class TDataStorageAccessor {
-private:
-    const std::unique_ptr& InsertTable;
-    const std::unique_ptr& Index;
-
-public:
-    TDataStorageAccessor(const std::unique_ptr& insertTable,
-                                 const std::unique_ptr& index);
-    std::shared_ptr Select(const NOlap::TReadDescription& readDescription) const;
-    std::vector GetCommitedBlobs(const NOlap::TReadDescription& readDescription, const std::shared_ptr& pkSchema) const;
-};
-
-// Holds all metadata that is needed to perform read/scan
-struct TReadMetadataBase {
-public:
-    enum class ESorting {
-        NONE = 0 /* "not_sorted" */,
-        ASC /* "ascending" */,
-        DESC /* "descending" */,
-    };
-private:
-    const ESorting Sorting = ESorting::ASC; // Sorting inside returned batches
-    std::optional PKRangesFilter;
-    TProgramContainer Program;
-public:
-    using TConstPtr = std::shared_ptr;
-
-    void SetPKRangesFilter(const TPKRangesFilter& value) {
-        Y_ABORT_UNLESS(IsSorted() && value.IsReverse() == IsDescSorted());
-        Y_ABORT_UNLESS(!PKRangesFilter);
-        PKRangesFilter = value;
-    }
-
-    const TPKRangesFilter& GetPKRangesFilter() const {
-        Y_ABORT_UNLESS(!!PKRangesFilter);
-        return *PKRangesFilter;
-    }
-
-    TReadMetadataBase(const ESorting sorting, const TProgramContainer& ssaProgram)
-        : Sorting(sorting)
-        , Program(ssaProgram)
-    {
-    }
-    virtual ~TReadMetadataBase() = default;
-
-    ui64 Limit = 0;
-
-    virtual void Dump(IOutputStream& out) const {
-        out << " predicate{" << (PKRangesFilter ? PKRangesFilter->DebugString() : "no_initialized") << "}"
-            << " " << Sorting << " sorted";
-    }
-
-    bool IsAscSorted() const { return Sorting == ESorting::ASC; }
-    bool IsDescSorted() const { return Sorting == ESorting::DESC; }
-    bool IsSorted() const { return IsAscSorted() || IsDescSorted(); }
-
-    virtual std::vector> GetKeyYqlSchema() const = 0;
-    virtual std::unique_ptr StartScan(const std::shared_ptr& readContext) const = 0;
-
-    // TODO:  can this only be done for base class?
-    friend IOutputStream& operator << (IOutputStream& out, const TReadMetadataBase& meta) {
-        meta.Dump(out);
-        return out;
-    }
-
-    const TProgramContainer& GetProgram() const {
-        return Program;
-    }
-};
-
-// Holds all metadata that is needed to perform read/scan
-struct TReadMetadata : public TReadMetadataBase, public std::enable_shared_from_this {
-    using TBase = TReadMetadataBase;
-private:
-    TVersionedIndex IndexVersions;
-    TSnapshot Snapshot;
-    std::shared_ptr ResultIndexSchema;
-public:
-    using TConstPtr = std::shared_ptr;
-
-    NIndexedReader::TSortableBatchPosition BuildSortedPosition(const NArrow::TReplaceKey& key) const;
-    std::shared_ptr BuildReader(const std::shared_ptr& context) const;
-
-    bool HasProcessingColumnIds() const {
-        return GetProgram().HasProcessingColumnIds();
-    }
-
-    std::set GetProcessingColumnIds() const {
-        std::set result;
-        for (auto&& i : GetProgram().GetProcessingColumns()) {
-            result.emplace(ResultIndexSchema->GetIndexInfo().GetColumnId(i));
-        }
-        return result;
-    }
-    std::shared_ptr SelectInfo;
-    NYql::NDqProto::EDqStatsMode StatsMode = NYql::NDqProto::EDqStatsMode::DQ_STATS_MODE_NONE;
-    std::vector CommittedBlobs;
-    std::shared_ptr ReadStats;
-
-    const TSnapshot& GetSnapshot() const {
-        return Snapshot;
-    }
-
-    TReadMetadata(const TVersionedIndex& info, const TSnapshot& snapshot, const ESorting sorting, const TProgramContainer& ssaProgram)
-        : TBase(sorting, ssaProgram)
-        , IndexVersions(info)
-        , Snapshot(snapshot)
-        , ResultIndexSchema(info.GetSchema(Snapshot))
-        , ReadStats(std::make_shared())
-    {
-    }
-
-    bool Init(const TReadDescription& readDescription, const TDataStorageAccessor& dataAccessor, std::string& error);
-
-    ISnapshotSchema::TPtr GetSnapshotSchema(const TSnapshot& version) const {
-        if (version >= Snapshot){
-            return ResultIndexSchema;
-        }
-        return IndexVersions.GetSchema(version);
-    }
-
-    ISnapshotSchema::TPtr GetLoadSchema(const std::optional& version = {}) const {
-        if (!version) {
-            return ResultIndexSchema;
-        }
-        return IndexVersions.GetSchema(*version);
-    }
-
-    std::shared_ptr GetBlobSchema(const ui64 version) const {
-        return IndexVersions.GetSchema(version)->GetIndexInfo().ArrowSchema();
-    }
-
-    const TIndexInfo& GetIndexInfo(const std::optional& version = {}) const {
-        if (version && version < Snapshot) {
-            return IndexVersions.GetSchema(*version)->GetIndexInfo();
-        }
-        return ResultIndexSchema->GetIndexInfo();
-    }
-
-    std::vector GetColumnsOrder() const {
-        auto loadSchema = GetLoadSchema(Snapshot);
-        std::vector result;
-        for (auto&& i : loadSchema->GetSchema()->fields()) {
-            result.emplace_back(i->name());
-        }
-        return result;
-    }
-
-    std::set GetEarlyFilterColumnIds() const;
-    std::set GetPKColumnIds() const;
-
-    bool Empty() const {
-        Y_ABORT_UNLESS(SelectInfo);
-        return SelectInfo->PortionsOrderedPK.empty() && CommittedBlobs.empty();
-    }
-
-    std::shared_ptr GetReplaceKey() const {
-        return ResultIndexSchema->GetIndexInfo().GetReplaceKey();
-    }
-
-    std::vector GetKeyYqlSchema() const override {
-        return ResultIndexSchema->GetIndexInfo().GetPrimaryKeyColumns();
-    }
-
-    size_t NumIndexedChunks() const {
-        Y_ABORT_UNLESS(SelectInfo);
-        return SelectInfo->NumChunks();
-    }
-
-    size_t NumIndexedBlobs() const {
-        Y_ABORT_UNLESS(SelectInfo);
-        return SelectInfo->Stats().Blobs;
-    }
-
-    std::unique_ptr StartScan(const std::shared_ptr& readContext) const override;
-
-    void Dump(IOutputStream& out) const override {
-        out << " index chunks: " << NumIndexedChunks()
-            << " index blobs: " << NumIndexedBlobs()
-            << " committed blobs: " << CommittedBlobs.size()
-      //      << " with program steps: " << (Program ? Program->Steps.size() : 0)
-            << " at snapshot: " << Snapshot.GetPlanStep() << ":" << Snapshot.GetTxId();
-        TBase::Dump(out);
-        if (SelectInfo) {
-            out << ", " << *SelectInfo;
-        }
-    }
-
-    friend IOutputStream& operator << (IOutputStream& out, const TReadMetadata& meta) {
-        meta.Dump(out);
-        return out;
-    }
-};
-
-struct TReadStatsMetadata : public TReadMetadataBase, public std::enable_shared_from_this {
-private:
-    using TBase = TReadMetadataBase;
-    TSnapshot RequestSnapshot;
-    std::shared_ptr ResultIndexSchema;
-public:
-    using TConstPtr = std::shared_ptr;
-
-    const ui64 TabletId;
-    std::vector ReadColumnIds;
-    std::vector ResultColumnIds;
-    std::deque> IndexPortions;
-
-    const TSnapshot& GetRequestSnapshot() const { return RequestSnapshot; }
-
-    std::optional GetColumnNameDef(const ui32 columnId) const {
-        if (!ResultIndexSchema) {
-            return {};
-        }
-        auto f = ResultIndexSchema->GetFieldByColumnIdOptional(columnId);
-        if (!f) {
-            return {};
-        }
-        return f->name();
-    }
-
-    std::optional GetEntityName(const ui32 entityId) const {
-        if (!ResultIndexSchema) {
-            return {};
-        }
-        auto result = ResultIndexSchema->GetIndexInfo().GetColumnNameOptional(entityId);
-        if (!!result) {
-            return result;
-        }
-        return ResultIndexSchema->GetIndexInfo().GetIndexNameOptional(entityId);
-    }
-
-    explicit TReadStatsMetadata(ui64 tabletId, const ESorting sorting, const TProgramContainer& ssaProgram, const std::shared_ptr& schema, const TSnapshot& requestSnapshot)
-        : TBase(sorting, ssaProgram)
-        , RequestSnapshot(requestSnapshot)
-        , ResultIndexSchema(schema)
-        , TabletId(tabletId)
-    {
-    }
-
-    std::vector> GetKeyYqlSchema() const override;
-
-    std::unique_ptr StartScan(const std::shared_ptr& readContext) const override;
-};
-
-}
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/granule_view.cpp b/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/granule_view.cpp
new file mode 100644
index 000000000000..db99dc03e698
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/granule_view.cpp
@@ -0,0 +1,5 @@
+#include "granule_view.h"
+
+namespace NKikimr::NOlap::NReader::NSysView::NAbstract {
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/granule_view.h b/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/granule_view.h
new file mode 100644
index 000000000000..84d0bb698e0a
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/granule_view.h
@@ -0,0 +1,43 @@
+#pragma once
+#include 
+
+namespace NKikimr::NOlap::NReader::NSysView::NAbstract {
+
+class TGranuleMetaView {
+private:
+    using TPortions = std::deque>;
+    YDB_READONLY(ui64, PathId, 0);
+    YDB_READONLY_DEF(TPortions, Portions);
+public:
+    TGranuleMetaView(const TGranuleMeta& granule, const bool reverse)
+        : PathId(granule.GetPathId())
+    {
+        for (auto&& i : granule.GetPortions()) {
+            Portions.emplace_back(i.second);
+        }
+
+        const auto predSort = [](const std::shared_ptr& l, const std::shared_ptr& r) {
+            return l->GetPortionId() < r->GetPortionId();
+        };
+
+        std::sort(Portions.begin(), Portions.end(), predSort);
+        if (reverse) {
+            std::reverse(Portions.begin(), Portions.end());
+        }
+    }
+
+    bool operator<(const TGranuleMetaView& item) const {
+        return PathId < item.PathId;
+    }
+
+    std::shared_ptr PopFrontPortion() {
+        if (Portions.empty()) {
+            return nullptr;
+        }
+        auto result = Portions.front();
+        Portions.pop_front();
+        return result;
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/iterator.cpp b/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/iterator.cpp
new file mode 100644
index 000000000000..c47dd37eacb6
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/iterator.cpp
@@ -0,0 +1,5 @@
+#include "iterator.h"
+
+namespace NKikimr::NOlap::NReader::NSysView::NAbstract {
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/iterator.h b/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/iterator.h
new file mode 100644
index 000000000000..aea0425815bf
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/iterator.h
@@ -0,0 +1,155 @@
+#pragma once
+#include "granule_view.h"
+#include "metadata.h"
+
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NSysView::NAbstract {
+
+class TStatsIteratorBase: public TScanIteratorBase {
+private:
+    const NTable::TScheme::TTableSchema StatsSchema;
+    std::shared_ptr DataSchema;
+protected:
+    virtual bool AppendStats(const std::vector>& builders, TGranuleMetaView& granule) const = 0;
+    virtual ui32 PredictRecordsCount(const TGranuleMetaView& granule) const = 0;
+    TReadStatsMetadata::TConstPtr ReadMetadata;
+    const bool Reverse = false;
+    std::shared_ptr KeySchema;
+    std::shared_ptr ResultSchema;
+
+    std::deque IndexGranules;
+public:
+    virtual TConclusionStatus Start() override {
+        return TConclusionStatus::Success();
+    }
+
+    virtual bool Finished() const override {
+        return IndexGranules.empty();
+    }
+
+    virtual TConclusion> GetBatch() override {
+        while (!Finished()) {
+            auto batchOpt = ExtractStatsBatch();
+            if (!batchOpt) {
+                AFL_VERIFY(Finished());
+                return std::nullopt;
+            }
+            auto originalBatch = *batchOpt;
+            if (originalBatch->num_rows() == 0) {
+                continue;
+            }
+            auto keyBatch = NArrow::ExtractColumns(originalBatch, KeySchema);
+            auto lastKey = keyBatch->Slice(keyBatch->num_rows() - 1, 1);
+
+            {
+                NArrow::TColumnFilter filter = ReadMetadata->GetPKRangesFilter().BuildFilter(originalBatch);
+                filter.Apply(originalBatch);
+            }
+
+            // Leave only requested columns
+            auto resultBatch = NArrow::ExtractColumns(originalBatch, ResultSchema);
+            NArrow::TStatusValidator::Validate(ReadMetadata->GetProgram().ApplyProgram(resultBatch));
+            if (resultBatch->num_rows() == 0) {
+                continue;
+            }
+            auto table = NArrow::TStatusValidator::GetValid(arrow::Table::FromRecordBatches({resultBatch}));
+            TPartialReadResult out(table, lastKey, std::nullopt);
+            return std::move(out);
+        }
+        return std::nullopt;
+    }
+
+    std::optional> ExtractStatsBatch() {
+        while (IndexGranules.size()) {
+            auto builders = NArrow::MakeBuilders(DataSchema, PredictRecordsCount(IndexGranules.front()));
+            if (!AppendStats(builders, IndexGranules.front())) {
+                IndexGranules.pop_front();
+            }
+            auto columns = NArrow::Finish(std::move(builders));
+            AFL_VERIFY(columns.size());
+            std::optional count;
+            for (auto&& i : columns) {
+                if (!count) {
+                    count = i->length();
+                } else {
+                    AFL_VERIFY(*count == i->length());
+                }
+            }
+            auto result = arrow::RecordBatch::Make(DataSchema, columns.front()->length(), columns);
+            if (result->num_rows()) {
+                return result;
+            }
+        }
+        return std::nullopt;
+    }
+
+
+    TStatsIteratorBase(const NAbstract::TReadStatsMetadata::TConstPtr& readMetadata, const NTable::TScheme::TTableSchema& statsSchema)
+        : StatsSchema(statsSchema)
+        , ReadMetadata(readMetadata)
+        , KeySchema(MakeArrowSchema(StatsSchema.Columns, StatsSchema.KeyColumns))
+        , ResultSchema(MakeArrowSchema(StatsSchema.Columns, ReadMetadata->ResultColumnIds))
+        , IndexGranules(ReadMetadata->IndexGranules)
+    {
+        if (ResultSchema->num_fields() == 0) {
+            ResultSchema = KeySchema;
+        }
+        std::vector allColumnIds;
+        for (const auto& c : StatsSchema.Columns) {
+            allColumnIds.push_back(c.second.Id);
+        }
+        std::sort(allColumnIds.begin(), allColumnIds.end());
+        DataSchema = MakeArrowSchema(StatsSchema.Columns, allColumnIds);
+    }
+};
+
+template 
+class TStatsIterator : public TStatsIteratorBase {
+private:
+    using TBase = TStatsIteratorBase;
+public:
+    static inline const NTable::TScheme::TTableSchema StatsSchema = []() {
+        NTable::TScheme::TTableSchema schema;
+        NIceDb::NHelpers::TStaticSchemaFiller::Fill(schema);
+        return schema;
+    }();
+
+    class TStatsColumnResolver: public IColumnResolver {
+    public:
+        TString GetColumnName(ui32 id, bool required) const override {
+            auto it = StatsSchema.Columns.find(id);
+            if (it == StatsSchema.Columns.end()) {
+                Y_ABORT_UNLESS(!required, "No column '%" PRIu32 "' in primary_index_stats", id);
+                return {};
+            }
+            return it->second.Name;
+        }
+
+        std::optional GetColumnIdOptional(const TString& name) const override {
+            auto it = StatsSchema.ColumnNames.find(name);
+            if (it == StatsSchema.ColumnNames.end()) {
+                return {};
+            } else {
+                return it->second;
+            }
+        }
+
+        const NTable::TScheme::TTableSchema& GetSchema() const override {
+            return StatsSchema;
+        }
+
+        NSsa::TColumnInfo GetDefaultColumn() const override {
+            return NSsa::TColumnInfo::Original(1, "PathId");
+        }
+    };
+
+    TStatsIterator(const NAbstract::TReadStatsMetadata::TConstPtr& readMetadata)
+        : TBase(readMetadata, StatsSchema)
+    {
+    }
+
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/metadata.cpp b/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/metadata.cpp
new file mode 100644
index 000000000000..c3008a99032a
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/metadata.cpp
@@ -0,0 +1,5 @@
+#include "metadata.h"
+
+namespace NKikimr::NOlap::NReader::NSysView::NAbstract {
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/metadata.h b/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/metadata.h
new file mode 100644
index 000000000000..c5068be3c82f
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/metadata.h
@@ -0,0 +1,26 @@
+#pragma once
+#include "granule_view.h"
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NSysView::NAbstract {
+
+struct TReadStatsMetadata: public TReadMetadataBase {
+private:
+    using TBase = TReadMetadataBase;
+public:
+    using TConstPtr = std::shared_ptr;
+
+    const ui64 TabletId;
+    std::vector ReadColumnIds;
+    std::vector ResultColumnIds;
+    std::deque IndexGranules;
+
+    explicit TReadStatsMetadata(const std::shared_ptr& info, ui64 tabletId, const ESorting sorting,
+        const TProgramContainer& ssaProgram, const std::shared_ptr& schema, const TSnapshot& requestSnapshot)
+        : TBase(info, sorting, ssaProgram, schema, requestSnapshot)
+        , TabletId(tabletId) {
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/ya.make b/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/ya.make
new file mode 100644
index 000000000000..000edfb62e37
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/abstract/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/reader/abstract
+)
+
+SRCS(
+    iterator.cpp
+    metadata.cpp
+    granule_view.cpp
+)
+
+END()
+
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/chunks/chunks.cpp b/ydb/core/tx/columnshard/engines/reader/sys_view/chunks/chunks.cpp
new file mode 100644
index 000000000000..1aeb83b4ea24
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/chunks/chunks.cpp
@@ -0,0 +1,110 @@
+#include "chunks.h"
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NSysView::NChunks {
+
+void TStatsIterator::AppendStats(const std::vector>& builders, const TPortionInfo& portion) const {
+    auto portionSchema = ReadMetadata->GetLoadSchemaVerified(portion);
+    const std::string prod = ::ToString(portion.GetMeta().Produced);
+    const bool activity = !portion.IsRemovedFor(ReadMetadata->GetRequestSnapshot());
+    {
+        std::vector records;
+        for (auto&& r : portion.Records) {
+            records.emplace_back(&r);
+        }
+        if (Reverse) {
+            std::reverse(records.begin(), records.end());
+        }
+        for (auto&& r : records) {
+            NArrow::Append(*builders[0], portion.GetPathId());
+            NArrow::Append(*builders[1], prod);
+            NArrow::Append(*builders[2], ReadMetadata->TabletId);
+            NArrow::Append(*builders[3], r->GetMeta().GetNumRows());
+            NArrow::Append(*builders[4], r->GetMeta().GetRawBytes());
+            NArrow::Append(*builders[5], portion.GetPortionId());
+            NArrow::Append(*builders[6], r->GetChunkIdx());
+            NArrow::Append(*builders[7], ReadMetadata->GetColumnNameDef(r->GetColumnId()).value_or("undefined"));
+            NArrow::Append(*builders[8], r->GetColumnId());
+            std::string blobIdString = portion.GetBlobId(r->GetBlobRange().GetBlobIdxVerified()).ToStringLegacy();
+            NArrow::Append(*builders[9], blobIdString);
+            NArrow::Append(*builders[10], r->BlobRange.Offset);
+            NArrow::Append(*builders[11], r->BlobRange.Size);
+            NArrow::Append(*builders[12], activity);
+
+            const auto tierName = portionSchema->GetIndexInfo().GetEntityStorageId(r->GetColumnId(), portion.GetMeta().GetTierName());
+            std::string strTierName(tierName.data(), tierName.size());
+            NArrow::Append(*builders[13], strTierName);
+            NArrow::Append(*builders[14], "COL");
+        }
+    }
+    {
+        std::vector indexes;
+        for (auto&& r : portion.GetIndexes()) {
+            indexes.emplace_back(&r);
+        }
+        if (Reverse) {
+            std::reverse(indexes.begin(), indexes.end());
+        }
+        for (auto&& r : indexes) {
+            NArrow::Append(*builders[0], portion.GetPathId());
+            NArrow::Append(*builders[1], prod);
+            NArrow::Append(*builders[2], ReadMetadata->TabletId);
+            NArrow::Append(*builders[3], r->GetRecordsCount());
+            NArrow::Append(*builders[4], r->GetRawBytes());
+            NArrow::Append(*builders[5], portion.GetPortionId());
+            NArrow::Append(*builders[6], r->GetChunkIdx());
+            NArrow::Append(*builders[7], ReadMetadata->GetEntityName(r->GetIndexId()).value_or("undefined"));
+            NArrow::Append(*builders[8], r->GetIndexId());
+            std::string blobIdString = portion.GetBlobId(r->GetBlobRange().GetBlobIdxVerified()).ToStringLegacy();
+            NArrow::Append(*builders[9], blobIdString);
+            NArrow::Append(*builders[10], r->GetBlobRange().Offset);
+            NArrow::Append(*builders[11], r->GetBlobRange().Size);
+            NArrow::Append(*builders[12], activity);
+            const auto tierName = portionSchema->GetIndexInfo().GetEntityStorageId(r->GetIndexId(), portion.GetMeta().GetTierName());
+            std::string strTierName(tierName.data(), tierName.size());
+            NArrow::Append(*builders[13], strTierName);
+            NArrow::Append(*builders[14], "IDX");
+        }
+    }
+}
+
+std::unique_ptr TReadStatsMetadata::StartScan(const std::shared_ptr& readContext) const {
+    return std::make_unique(readContext->GetReadMetadataPtrVerifiedAs());
+}
+
+std::vector> TReadStatsMetadata::GetKeyYqlSchema() const {
+    return GetColumns(TStatsIterator::StatsSchema, TStatsIterator::StatsSchema.KeyColumns);
+}
+
+std::shared_ptr TConstructor::BuildMetadata(const NColumnShard::TColumnShard* self, const TReadDescription& read) const {
+    auto* index = self->GetIndexOptional();
+    return std::make_shared(index ? index->CopyVersionedIndexPtr() : nullptr, self->TabletID(),
+        IsReverse ? TReadMetadataBase::ESorting::DESC : TReadMetadataBase::ESorting::ASC,
+        read.GetProgram(), index ? index->GetVersionedIndex().GetLastSchema() : nullptr, read.GetSnapshot());
+}
+
+bool TStatsIterator::AppendStats(const std::vector>& builders, NAbstract::TGranuleMetaView& granule) const {
+    ui64 recordsCount = 0;
+    while (auto portion = granule.PopFrontPortion()) {
+        recordsCount += portion->GetRecords().size() + portion->GetIndexes().size();
+        AppendStats(builders, *portion);
+        if (recordsCount > 10000) {
+            break;
+        }
+    }
+    return granule.GetPortions().size();
+}
+
+ui32 TStatsIterator::PredictRecordsCount(const NAbstract::TGranuleMetaView& granule) const {
+    ui32 recordsCount = 0;
+    for (auto&& portion : granule.GetPortions()) {
+        recordsCount += portion->GetRecords().size() + portion->GetIndexes().size();
+        if (recordsCount > 10000) {
+            break;
+        }
+    }
+    return recordsCount;
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/chunks/chunks.h b/ydb/core/tx/columnshard/engines/reader/sys_view/chunks/chunks.h
new file mode 100644
index 000000000000..0d6fd6618560
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/chunks/chunks.h
@@ -0,0 +1,39 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NSysView::NChunks {
+
+class TConstructor: public TStatScannerConstructor {
+private:
+    using TBase = TStatScannerConstructor;
+protected:
+    virtual std::shared_ptr BuildMetadata(const NColumnShard::TColumnShard* self, const TReadDescription& read) const override;
+public:
+    using TBase::TBase;
+};
+
+class TReadStatsMetadata: public NAbstract::TReadStatsMetadata, std::enable_shared_from_this {
+private:
+    using TBase = NAbstract::TReadStatsMetadata;
+    using TSysViewSchema = NKikimr::NSysView::Schema::PrimaryIndexStats;
+public:
+    using TBase::TBase;
+
+    virtual std::unique_ptr StartScan(const std::shared_ptr& /*readContext*/) const override;
+    virtual std::vector> GetKeyYqlSchema() const override;
+};
+
+class TStatsIterator: public NAbstract::TStatsIterator {
+private:
+    using TBase = NAbstract::TStatsIterator;
+    virtual bool AppendStats(const std::vector>& builders, NAbstract::TGranuleMetaView& granule) const override;
+    virtual ui32 PredictRecordsCount(const NAbstract::TGranuleMetaView& granule) const override;
+    void AppendStats(const std::vector>& builders, const TPortionInfo& portion) const;
+public:
+    using TBase::TBase;
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/chunks/ya.make b/ydb/core/tx/columnshard/engines/reader/sys_view/chunks/ya.make
new file mode 100644
index 000000000000..70b3aa79df54
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/chunks/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/reader/sys_view/abstract
+)
+
+SRCS(
+    chunks.cpp
+)
+
+END()
+
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/constructor/constructor.cpp b/ydb/core/tx/columnshard/engines/reader/sys_view/constructor/constructor.cpp
new file mode 100644
index 000000000000..6101174764da
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/constructor/constructor.cpp
@@ -0,0 +1,5 @@
+#include "constructor.h"
+
+namespace NKikimr::NOlap::NReader::NSysView {
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/constructor/constructor.h b/ydb/core/tx/columnshard/engines/reader/sys_view/constructor/constructor.h
new file mode 100644
index 000000000000..e69c36193a4e
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/constructor/constructor.h
@@ -0,0 +1,85 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NSysView {
+
+template 
+class TStatScannerConstructor: public IScannerConstructor {
+private:
+    using TBase = IScannerConstructor;
+
+    virtual std::shared_ptr BuildMetadata(const NColumnShard::TColumnShard* self, const TReadDescription& read) const = 0;
+
+    virtual TConclusion> DoBuildReadMetadata(const NColumnShard::TColumnShard* self, const TReadDescription& read) const override {
+        THashSet readColumnIds(read.ColumnIds.begin(), read.ColumnIds.end());
+        for (auto& [id, name] : read.GetProgram().GetSourceColumns()) {
+            readColumnIds.insert(id);
+        }
+
+        for (ui32 colId : readColumnIds) {
+            if (!NAbstract::TStatsIterator::StatsSchema.Columns.contains(colId)) {
+                return TConclusionStatus::Fail(Sprintf("Columnd id %" PRIu32 " not found", colId));
+            }
+        }
+
+        auto out = BuildMetadata(self, read);
+
+        out->SetPKRangesFilter(read.PKRangesFilter);
+        out->ReadColumnIds.assign(readColumnIds.begin(), readColumnIds.end());
+        out->ResultColumnIds = read.ColumnIds;
+
+        const TColumnEngineForLogs* logsIndex = dynamic_cast(self->GetIndexOptional());
+        if (!logsIndex) {
+            return dynamic_pointer_cast(out);
+        }
+        THashSet pathIds;
+        for (auto&& filter : read.PKRangesFilter) {
+            const ui64 fromPathId = *filter.GetPredicateFrom().Get(0, 0, 1);
+            const ui64 toPathId = *filter.GetPredicateTo().Get(0, 0, Max());
+            if (read.TableName.EndsWith(IIndexInfo::TABLE_INDEX_STATS_TABLE) 
+                || read.TableName.EndsWith(IIndexInfo::TABLE_INDEX_PORTION_STATS_TABLE)
+                || read.TableName.EndsWith(IIndexInfo::TABLE_INDEX_GRANULE_STATS_TABLE)
+                ) {
+                if (fromPathId <= read.PathId && read.PathId <= toPathId) {
+                    auto pathInfo = logsIndex->GetGranuleOptional(read.PathId);
+                    if (!pathInfo) {
+                        continue;
+                    }
+                    if (pathIds.emplace(pathInfo->GetPathId()).second) {
+                        out->IndexGranules.emplace_back(NAbstract::TGranuleMetaView(*pathInfo, out->IsDescSorted()));
+                    }
+                }
+            } else if (read.TableName.EndsWith(IIndexInfo::STORE_INDEX_STATS_TABLE) 
+                || read.TableName.EndsWith(IIndexInfo::STORE_INDEX_PORTION_STATS_TABLE)
+                || read.TableName.EndsWith(IIndexInfo::STORE_INDEX_GRANULE_STATS_TABLE)
+                ) {
+                auto pathInfos = logsIndex->GetTables(fromPathId, toPathId);
+                for (auto&& pathInfo : pathInfos) {
+                    if (pathIds.emplace(pathInfo->GetPathId()).second) {
+                        out->IndexGranules.emplace_back(NAbstract::TGranuleMetaView(*pathInfo, out->IsDescSorted()));
+                    }
+                }
+            }
+        }
+        std::sort(out->IndexGranules.begin(), out->IndexGranules.end());
+        if (out->IsDescSorted()) {
+            std::reverse(out->IndexGranules.begin(), out->IndexGranules.end());
+        }
+        return dynamic_pointer_cast(out);
+    }
+public:
+    using TBase::TBase;
+    virtual TConclusionStatus ParseProgram(const TVersionedIndex* vIndex, const NKikimrTxDataShard::TEvKqpScan& proto, TReadDescription& read) const override {
+        typename NAbstract::TStatsIterator::TStatsColumnResolver columnResolver;
+        return TBase::ParseProgram(vIndex, proto.GetOlapProgramType(), proto.GetOlapProgram(), read, columnResolver);
+    }
+    virtual std::vector GetPrimaryKeyScheme(const NColumnShard::TColumnShard* /*self*/) const override {
+        return GetColumns(NAbstract::TStatsIterator::StatsSchema, NAbstract::TStatsIterator::StatsSchema.KeyColumns);
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/constructor/ya.make b/ydb/core/tx/columnshard/engines/reader/sys_view/constructor/ya.make
new file mode 100644
index 000000000000..bee096800cde
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/constructor/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+    constructor.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/reader/abstract
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/granules/granules.cpp b/ydb/core/tx/columnshard/engines/reader/sys_view/granules/granules.cpp
new file mode 100644
index 000000000000..4ab8e7ad2bbc
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/granules/granules.cpp
@@ -0,0 +1,33 @@
+#include "granules.h"
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NSysView::NGranules {
+
+bool TStatsIterator::AppendStats(const std::vector>& builders, NAbstract::TGranuleMetaView& granule) const {
+    NArrow::Append(*builders[0], granule.GetPathId());
+    NArrow::Append(*builders[1], ReadMetadata->TabletId);
+    NArrow::Append(*builders[2], granule.GetPortions().size());
+    NArrow::Append(*builders[3], HostNameField);
+    NArrow::Append(*builders[4], NActors::TActivationContext::AsActorContext().SelfID.NodeId());
+    return false;
+}
+
+std::unique_ptr TReadStatsMetadata::StartScan(const std::shared_ptr& readContext) const {
+    return std::make_unique(readContext->GetReadMetadataPtrVerifiedAs());
+}
+
+std::vector> TReadStatsMetadata::GetKeyYqlSchema() const {
+    return GetColumns(TStatsIterator::StatsSchema, TStatsIterator::StatsSchema.KeyColumns);
+}
+
+std::shared_ptr TConstructor::BuildMetadata(const NColumnShard::TColumnShard* self, const TReadDescription& read) const {
+    auto* index = self->GetIndexOptional();
+    return std::make_shared(index ? index->CopyVersionedIndexPtr() : nullptr, self->TabletID(),
+        IsReverse ? TReadMetadataBase::ESorting::DESC : TReadMetadataBase::ESorting::ASC,
+        read.GetProgram(), index ? index->GetVersionedIndex().GetLastSchema() : nullptr, read.GetSnapshot());
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/granules/granules.h b/ydb/core/tx/columnshard/engines/reader/sys_view/granules/granules.h
new file mode 100644
index 000000000000..742f1e1be560
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/granules/granules.h
@@ -0,0 +1,42 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NSysView::NGranules {
+
+class TConstructor: public TStatScannerConstructor {
+private:
+    using TBase = TStatScannerConstructor;
+protected:
+    virtual std::shared_ptr BuildMetadata(const NColumnShard::TColumnShard* self, const TReadDescription& read) const override;
+
+public:
+    using TBase::TBase;
+};
+
+struct TReadStatsMetadata: public NAbstract::TReadStatsMetadata {
+private:
+    using TBase = NAbstract::TReadStatsMetadata;
+    using TSysViewSchema = NKikimr::NSysView::Schema::PrimaryIndexGranuleStats;
+public:
+    using TBase::TBase;
+
+    virtual std::unique_ptr StartScan(const std::shared_ptr& readContext) const override;
+    virtual std::vector> GetKeyYqlSchema() const override;
+};
+
+class TStatsIterator : public NAbstract::TStatsIterator {
+private:
+    const std::string HostNameField = HostName();
+    using TBase = NAbstract::TStatsIterator;
+    virtual ui32 PredictRecordsCount(const NAbstract::TGranuleMetaView& /*granule*/) const override {
+        return 1;
+    }
+    virtual bool AppendStats(const std::vector>& builders, NAbstract::TGranuleMetaView& granule) const override;
+public:
+    using TBase::TBase;
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/granules/ya.make b/ydb/core/tx/columnshard/engines/reader/sys_view/granules/ya.make
new file mode 100644
index 000000000000..390364b3e64a
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/granules/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/reader/sys_view/abstract
+)
+
+SRCS(
+    granules.cpp
+)
+
+END()
+
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/portions/portions.cpp b/ydb/core/tx/columnshard/engines/reader/sys_view/portions/portions.cpp
new file mode 100644
index 000000000000..76f1bdda2c7c
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/portions/portions.cpp
@@ -0,0 +1,58 @@
+#include "portions.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NSysView::NPortions {
+
+void TStatsIterator::AppendStats(const std::vector>& builders, const TPortionInfo& portion) const {
+    NArrow::Append(*builders[0], portion.GetPathId());
+    const std::string prod = ::ToString(portion.GetMeta().Produced);
+    NArrow::Append(*builders[1], prod);
+    NArrow::Append(*builders[2], ReadMetadata->TabletId);
+    NArrow::Append(*builders[3], portion.NumRows());
+    NArrow::Append(*builders[4], portion.GetColumnRawBytes());
+    NArrow::Append(*builders[5], portion.GetIndexRawBytes());
+    NArrow::Append(*builders[6], portion.GetColumnBlobBytes());
+    NArrow::Append(*builders[7], portion.GetIndexBlobBytes());
+    NArrow::Append(*builders[8], portion.GetPortionId());
+    NArrow::Append(*builders[9], !portion.IsRemovedFor(ReadMetadata->GetRequestSnapshot()));
+
+    auto tierName = portion.GetTierNameDef(NBlobOperations::TGlobal::DefaultStorageId);
+    NArrow::Append(*builders[10], arrow::util::string_view(tierName.data(), tierName.size()));
+    auto statInfo = portion.GetMeta().GetStatisticsStorage().SerializeToProto().DebugString();
+    NArrow::Append(*builders[11], arrow::util::string_view(statInfo.data(), statInfo.size()));
+}
+
+ui32 TStatsIterator::PredictRecordsCount(const NAbstract::TGranuleMetaView& granule) const {
+    return std::min(10000, granule.GetPortions().size());
+}
+
+bool TStatsIterator::AppendStats(const std::vector>& builders, NAbstract::TGranuleMetaView& granule) const {
+    ui64 recordsCount = 0;
+    while (auto portion = granule.PopFrontPortion()) {
+        recordsCount += 1;
+        AppendStats(builders, *portion);
+        if (recordsCount >= 10000) {
+            break;
+        }
+    }
+    return granule.GetPortions().size();
+}
+
+std::unique_ptr TReadStatsMetadata::StartScan(const std::shared_ptr& readContext) const {
+    return std::make_unique(readContext->GetReadMetadataPtrVerifiedAs());
+}
+
+std::vector> TReadStatsMetadata::GetKeyYqlSchema() const {
+    return GetColumns(TStatsIterator::StatsSchema, TStatsIterator::StatsSchema.KeyColumns);
+}
+
+std::shared_ptr TConstructor::BuildMetadata(const NColumnShard::TColumnShard* self, const TReadDescription& read) const {
+    auto* index = self->GetIndexOptional();
+    return std::make_shared(index ? index->CopyVersionedIndexPtr() : nullptr, self->TabletID(),
+        IsReverse ? TReadMetadataBase::ESorting::DESC : TReadMetadataBase::ESorting::ASC,
+        read.GetProgram(), index ? index->GetVersionedIndex().GetLastSchema() : nullptr, read.GetSnapshot());
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/portions/portions.h b/ydb/core/tx/columnshard/engines/reader/sys_view/portions/portions.h
new file mode 100644
index 000000000000..8bcb8080ad3b
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/portions/portions.h
@@ -0,0 +1,39 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader::NSysView::NPortions {
+
+class TConstructor: public TStatScannerConstructor {
+private:
+    using TBase = TStatScannerConstructor;
+protected:
+    virtual std::shared_ptr BuildMetadata(const NColumnShard::TColumnShard* self, const TReadDescription& read) const override;
+
+public:
+    using TBase::TBase;
+};
+
+struct TReadStatsMetadata: public NAbstract::TReadStatsMetadata {
+private:
+    using TBase = NAbstract::TReadStatsMetadata;
+    using TSysViewSchema = NKikimr::NSysView::Schema::PrimaryIndexPortionStats;
+public:
+    using TBase::TBase;
+
+    virtual std::unique_ptr StartScan(const std::shared_ptr& readContext) const override;
+    virtual std::vector> GetKeyYqlSchema() const override;
+};
+
+class TStatsIterator : public NAbstract::TStatsIterator {
+private:
+    using TBase = NAbstract::TStatsIterator;
+    virtual bool AppendStats(const std::vector>& builders, NAbstract::TGranuleMetaView& granule) const override;
+    virtual ui32 PredictRecordsCount(const NAbstract::TGranuleMetaView& granule) const override;
+    void AppendStats(const std::vector>& builders, const TPortionInfo& portion) const;
+public:
+    using TBase::TBase;
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/portions/ya.make b/ydb/core/tx/columnshard/engines/reader/sys_view/portions/ya.make
new file mode 100644
index 000000000000..0f1cab2459c6
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/portions/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/reader/sys_view/abstract
+)
+
+SRCS(
+    portions.cpp
+)
+
+END()
+
diff --git a/ydb/core/tx/columnshard/engines/reader/sys_view/ya.make b/ydb/core/tx/columnshard/engines/reader/sys_view/ya.make
new file mode 100644
index 000000000000..d3fdaa984fa4
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/sys_view/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/reader/sys_view/abstract
+    ydb/core/tx/columnshard/engines/reader/sys_view/portions
+    ydb/core/tx/columnshard/engines/reader/sys_view/chunks
+    ydb/core/tx/columnshard/engines/reader/sys_view/constructor
+    ydb/core/tx/columnshard/engines/reader/sys_view/granules
+)
+
+SRCS(
+)
+
+END()
+
diff --git a/ydb/core/tx/columnshard/engines/reader/transaction/tx_scan.cpp b/ydb/core/tx/columnshard/engines/reader/transaction/tx_scan.cpp
new file mode 100644
index 000000000000..0d054056e39d
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/transaction/tx_scan.cpp
@@ -0,0 +1,274 @@
+#include "tx_scan.h"
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader {
+
+std::vector ExtractTypes(const std::vector>& columns) {
+    std::vector types;
+    types.reserve(columns.size());
+    for (auto& [name, type] : columns) {
+        types.push_back(type);
+    }
+    return types;
+}
+
+TString FromCells(const TConstArrayRef& cells, const std::vector>& columns) {
+    Y_ABORT_UNLESS(cells.size() == columns.size());
+    if (cells.empty()) {
+        return {};
+    }
+
+    std::vector types = ExtractTypes(columns);
+
+    NArrow::TArrowBatchBuilder batchBuilder;
+    batchBuilder.Reserve(1);
+    auto startStatus = batchBuilder.Start(columns);
+    Y_ABORT_UNLESS(startStatus.ok(), "%s", startStatus.ToString().c_str());
+
+    batchBuilder.AddRow(NKikimr::TDbTupleRef(), NKikimr::TDbTupleRef(types.data(), cells.data(), cells.size()));
+
+    auto batch = batchBuilder.FlushBatch(false);
+    Y_ABORT_UNLESS(batch);
+    Y_ABORT_UNLESS(batch->num_columns() == (int)cells.size());
+    Y_ABORT_UNLESS(batch->num_rows() == 1);
+    return NArrow::SerializeBatchNoCompression(batch);
+}
+
+std::pair RangePredicates(const TSerializedTableRange& range, const std::vector>& columns) {
+    std::vector leftCells;
+    std::vector> leftColumns;
+    bool leftTrailingNull = false;
+    {
+        TConstArrayRef cells = range.From.GetCells();
+        const size_t size = cells.size();
+        Y_ASSERT(size <= columns.size());
+        leftCells.reserve(size);
+        leftColumns.reserve(size);
+        for (size_t i = 0; i < size; ++i) {
+            if (!cells[i].IsNull()) {
+                leftCells.push_back(cells[i]);
+                leftColumns.push_back(columns[i]);
+                leftTrailingNull = false;
+            } else {
+                leftTrailingNull = true;
+            }
+        }
+    }
+
+    std::vector rightCells;
+    std::vector> rightColumns;
+    bool rightTrailingNull = false;
+    {
+        TConstArrayRef cells = range.To.GetCells();
+        const size_t size = cells.size();
+        Y_ASSERT(size <= columns.size());
+        rightCells.reserve(size);
+        rightColumns.reserve(size);
+        for (size_t i = 0; i < size; ++i) {
+            if (!cells[i].IsNull()) {
+                rightCells.push_back(cells[i]);
+                rightColumns.push_back(columns[i]);
+                rightTrailingNull = false;
+            } else {
+                rightTrailingNull = true;
+            }
+        }
+    }
+
+    const bool fromInclusive = range.FromInclusive || leftTrailingNull;
+    const bool toInclusive = range.ToInclusive && !rightTrailingNull;
+
+    TString leftBorder = FromCells(leftCells, leftColumns);
+    TString rightBorder = FromCells(rightCells, rightColumns);
+    auto leftSchema = NArrow::MakeArrowSchema(leftColumns);
+    Y_ASSERT(leftSchema.ok());
+    auto rightSchema = NArrow::MakeArrowSchema(rightColumns);
+    Y_ASSERT(rightSchema.ok());
+    return std::make_pair(
+        TPredicate(fromInclusive ? NKernels::EOperation::GreaterEqual : NKernels::EOperation::Greater, leftBorder, leftSchema.ValueUnsafe()),
+        TPredicate(toInclusive ? NKernels::EOperation::LessEqual : NKernels::EOperation::Less, rightBorder, rightSchema.ValueUnsafe()));
+}
+
+static bool FillPredicatesFromRange(TReadDescription& read, const ::NKikimrTx::TKeyRange& keyRange,
+    const std::vector>& ydbPk, ui64 tabletId, const TIndexInfo* indexInfo, TString& error) {
+    TSerializedTableRange range(keyRange);
+    auto fromPredicate = std::make_shared();
+    auto toPredicate = std::make_shared();
+    std::tie(*fromPredicate, *toPredicate) = RangePredicates(range, ydbPk);
+
+    LOG_S_DEBUG("TTxScan range predicate. From key size: " << range.From.GetCells().size()
+        << " To key size: " << range.To.GetCells().size()
+        << " greater predicate over columns: " << fromPredicate->ToString()
+        << " less predicate over columns: " << toPredicate->ToString()
+        << " at tablet " << tabletId);
+
+    if (!read.PKRangesFilter.Add(fromPredicate, toPredicate, indexInfo)) {
+        error = "Error building filter";
+        return false;
+    }
+    return true;
+}
+
+bool TTxScan::Execute(TTransactionContext& /*txc*/, const TActorContext& /*ctx*/) {
+    TMemoryProfileGuard mpg("TTxScan::Execute");
+    auto& record = Ev->Get()->Record;
+    TSnapshot snapshot(record.GetSnapshot().GetStep(), record.GetSnapshot().GetTxId());
+    const auto scanId = record.GetScanId();
+    const ui64 txId = record.GetTxId();
+
+    LOG_S_DEBUG("TTxScan prepare txId: " << txId << " scanId: " << scanId << " at tablet " << Self->TabletID());
+
+    TReadDescription read(snapshot, record.GetReverse());
+    read.PathId = record.GetLocalPathId();
+    read.ReadNothing = !Self->TablesManager.HasTable(read.PathId);
+    read.TableName = record.GetTablePath();
+    bool isIndex = false;
+    std::unique_ptr scannerConstructor = [&]() {
+        const ui64 itemsLimit = record.HasItemsLimit() ? record.GetItemsLimit() : 0;
+        if (read.TableName.EndsWith(TIndexInfo::STORE_INDEX_STATS_TABLE) ||
+            read.TableName.EndsWith(TIndexInfo::TABLE_INDEX_STATS_TABLE)) {
+            return std::unique_ptr(new NSysView::NChunks::TConstructor(snapshot, itemsLimit, record.GetReverse()));
+        }
+        if (read.TableName.EndsWith(TIndexInfo::STORE_INDEX_PORTION_STATS_TABLE) ||
+            read.TableName.EndsWith(TIndexInfo::TABLE_INDEX_PORTION_STATS_TABLE)) {
+            return std::unique_ptr(new NSysView::NPortions::TConstructor(snapshot, itemsLimit, record.GetReverse()));
+        }
+        if (read.TableName.EndsWith(TIndexInfo::STORE_INDEX_GRANULE_STATS_TABLE) ||
+            read.TableName.EndsWith(TIndexInfo::TABLE_INDEX_GRANULE_STATS_TABLE)) {
+            return std::unique_ptr(new NSysView::NGranules::TConstructor(snapshot, itemsLimit, record.GetReverse()));
+        }
+        isIndex = true;
+        return std::unique_ptr(new NPlain::TIndexScannerConstructor(snapshot, itemsLimit, record.GetReverse()));
+    }();
+    read.ColumnIds.assign(record.GetColumnTags().begin(), record.GetColumnTags().end());
+    read.StatsMode = record.GetStatsMode();
+
+    const TVersionedIndex* vIndex = Self->GetIndexOptional() ? &Self->GetIndexOptional()->GetVersionedIndex() : nullptr;
+    auto parseResult = scannerConstructor->ParseProgram(vIndex, record, read);
+    if (!parseResult) {
+        ErrorDescription = parseResult.GetErrorMessage();
+        return true;
+    }
+
+    if (!record.RangesSize()) {
+        auto range = scannerConstructor->BuildReadMetadata(Self, read);
+        if (range.IsSuccess()) {
+            ReadMetadataRange = range.DetachResult();
+        } else {
+            ErrorDescription = range.GetErrorMessage();
+        }
+        return true;
+    }
+
+    auto ydbKey = scannerConstructor->GetPrimaryKeyScheme(Self);
+    auto* indexInfo = (vIndex && isIndex) ? &vIndex->GetSchema(snapshot)->GetIndexInfo() : nullptr;
+    for (auto& range : record.GetRanges()) {
+        if (!FillPredicatesFromRange(read, range, ydbKey, Self->TabletID(), indexInfo, ErrorDescription)) {
+            ReadMetadataRange = nullptr;
+            return true;
+        }
+    }
+    {
+        auto newRange = scannerConstructor->BuildReadMetadata(Self, read);
+        if (!newRange) {
+            ErrorDescription = newRange.GetErrorMessage();
+            ReadMetadataRange = nullptr;
+            return true;
+        }
+        ReadMetadataRange = newRange.DetachResult();
+    }
+    AFL_VERIFY(ReadMetadataRange);
+    return true;
+}
+
+template 
+struct TContainerPrinter {
+    const T& Ref;
+
+    TContainerPrinter(const T& ref)
+        : Ref(ref) {
+    }
+
+    friend IOutputStream& operator << (IOutputStream& out, const TContainerPrinter& cont) {
+        for (auto& ptr : cont.Ref) {
+            out << *ptr << " ";
+        }
+        return out;
+    }
+};
+
+void TTxScan::Complete(const TActorContext& ctx) {
+    TMemoryProfileGuard mpg("TTxScan::Complete");
+    auto& request = Ev->Get()->Record;
+    auto scanComputeActor = Ev->Sender;
+    const auto& snapshot = request.GetSnapshot();
+    const auto scanId = request.GetScanId();
+    const ui64 txId = request.GetTxId();
+    const ui32 scanGen = request.GetGeneration();
+    TString table = request.GetTablePath();
+    auto dataFormat = request.GetDataFormat();
+    const TDuration timeout = TDuration::MilliSeconds(request.GetTimeoutMs());
+    if (scanGen > 1) {
+        Self->IncCounter(NColumnShard::COUNTER_SCAN_RESTARTED);
+    }
+    const NActors::TLogContextGuard gLogging = NActors::TLogContextBuilder::Build()
+        ("tx_id", txId)("scan_id", scanId)("gen", scanGen)("table", table)("snapshot", snapshot)("tablet", Self->TabletID())("timeout", timeout);
+
+    if (!ReadMetadataRange) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "TTxScan failed")("reason", "no metadata");
+
+        auto ev = MakeHolder(scanGen, Self->TabletID());
+        ev->Record.SetStatus(Ydb::StatusIds::BAD_REQUEST);
+        auto issue = NYql::YqlIssue({}, NYql::TIssuesIds::KIKIMR_BAD_REQUEST, TStringBuilder()
+            << "Table " << table << " (shard " << Self->TabletID() << ") scan failed, reason: " << ErrorDescription ? ErrorDescription : "no metadata ranges");
+        NYql::IssueToMessage(issue, ev->Record.MutableIssues()->Add());
+
+        ctx.Send(scanComputeActor, ev.Release());
+        return;
+    }
+    TStringBuilder detailedInfo;
+    if (IS_LOG_PRIORITY_ENABLED(NActors::NLog::PRI_TRACE, NKikimrServices::TX_COLUMNSHARD)) {
+        detailedInfo << " read metadata: (" << *ReadMetadataRange << ")" << " req: " << request;
+    }
+
+    const TVersionedIndex* index = nullptr;
+    if (Self->HasIndex()) {
+        index = &Self->GetIndexAs().GetVersionedIndex();
+    }
+    const TConclusion requestCookie = Self->InFlightReadsTracker.AddInFlightRequest(ReadMetadataRange, index);
+    if (!requestCookie) {
+        AFL_ERROR(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "TTxScan failed")("reason", requestCookie.GetErrorMessage())("trace_details", detailedInfo);
+        auto ev = MakeHolder(scanGen, Self->TabletID());
+
+        ev->Record.SetStatus(Ydb::StatusIds::INTERNAL_ERROR);
+        auto issue = NYql::YqlIssue({}, NYql::TIssuesIds::KIKIMR_TEMPORARILY_UNAVAILABLE, TStringBuilder()
+            << "Table " << table << " (shard " << Self->TabletID() << ") scan failed, reason: " << requestCookie.GetErrorMessage());
+        NYql::IssueToMessage(issue, ev->Record.MutableIssues()->Add());
+        Self->ScanCounters.OnScanDuration(NColumnShard::TScanCounters::EStatusFinish::CannotAddInFlight, TDuration::Zero());
+        ctx.Send(scanComputeActor, ev.Release());
+        return;
+    }
+    auto statsDelta = Self->InFlightReadsTracker.GetSelectStatsDelta();
+
+    Self->IncCounter(NColumnShard::COUNTER_READ_INDEX_PORTIONS, statsDelta.Portions);
+    Self->IncCounter(NColumnShard::COUNTER_READ_INDEX_BLOBS, statsDelta.Blobs);
+    Self->IncCounter(NColumnShard::COUNTER_READ_INDEX_ROWS, statsDelta.Rows);
+    Self->IncCounter(NColumnShard::COUNTER_READ_INDEX_BYTES, statsDelta.Bytes);
+
+    TComputeShardingPolicy shardingPolicy;
+    AFL_VERIFY(shardingPolicy.DeserializeFromProto(request.GetComputeShardingPolicy()));
+
+    auto scanActor = ctx.Register(new TColumnShardScan(Self->SelfId(), scanComputeActor, Self->GetStoragesManager(),
+        shardingPolicy, scanId, txId, scanGen, *requestCookie, Self->TabletID(), timeout, ReadMetadataRange, dataFormat, Self->ScanCounters));
+
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD_SCAN)("event", "TTxScan started")("actor_id", scanActor)("trace_detailed", detailedInfo);
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/reader/transaction/tx_scan.h b/ydb/core/tx/columnshard/engines/reader/transaction/tx_scan.h
new file mode 100644
index 000000000000..2d9eb9619a64
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/transaction/tx_scan.h
@@ -0,0 +1,28 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NReader {
+class TTxScan: public NTabletFlatExecutor::TTransactionBase {
+private:
+    using TBase = NTabletFlatExecutor::TTransactionBase;
+public:
+    using TReadMetadataPtr = TReadMetadataBase::TConstPtr;
+
+    TTxScan(NColumnShard::TColumnShard* self, TEvColumnShard::TEvScan::TPtr& ev)
+        : TBase(self)
+        , Ev(ev) {
+    }
+
+    bool Execute(TTransactionContext& txc, const TActorContext& ctx) override;
+    void Complete(const TActorContext& ctx) override;
+    TTxType GetTxType() const override { return NColumnShard::TXTYPE_START_SCAN; }
+
+private:
+    TString ErrorDescription;
+    TEvColumnShard::TEvScan::TPtr Ev;
+    TReadMetadataPtr ReadMetadataRange;
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/reader/transaction/ya.make b/ydb/core/tx/columnshard/engines/reader/transaction/ya.make
new file mode 100644
index 000000000000..a8bc351fdebc
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/reader/transaction/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+    tx_scan.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/reader/abstract
+    ydb/core/tablet_flat
+    ydb/core/tx/columnshard/engines/reader/actor
+    ydb/core/tx/columnshard/engines/reader/sys_view/constructor
+    ydb/core/tx/columnshard/engines/reader/plain_reader/constructor
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/reader/ya.make b/ydb/core/tx/columnshard/engines/reader/ya.make
index f673de8200e8..c1a5dbd87327 100644
--- a/ydb/core/tx/columnshard/engines/reader/ya.make
+++ b/ydb/core/tx/columnshard/engines/reader/ya.make
@@ -1,12 +1,6 @@
 LIBRARY()
 
 SRCS(
-    conveyor_task.cpp
-    description.cpp
-    queue.cpp
-    read_filter_merger.cpp
-    read_metadata.cpp
-    read_context.cpp
 )
 
 PEERDIR(
@@ -18,10 +12,12 @@ PEERDIR(
     ydb/core/tx/columnshard/resources
     ydb/core/tx/program
     ydb/core/tx/columnshard/engines/reader/plain_reader
+    ydb/core/tx/columnshard/engines/reader/sys_view
+    ydb/core/tx/columnshard/engines/reader/abstract
+    ydb/core/tx/columnshard/engines/reader/common
+    ydb/core/tx/columnshard/engines/reader/actor
+    ydb/core/tx/columnshard/engines/reader/transaction
     ydb/core/tx/columnshard/engines/scheme
 )
 
-GENERATE_ENUM_SERIALIZATION(read_metadata.h)
-YQL_LAST_ABI_VERSION()
-
 END()
diff --git a/ydb/core/tx/columnshard/engines/scheme/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/scheme/CMakeLists.darwin-arm64.txt
index 8a4b2b5ca5fe..ff848baca1a6 100644
--- a/ydb/core/tx/columnshard/engines/scheme/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/columnshard/engines/scheme/CMakeLists.darwin-arm64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(indexes)
 
 add_library(columnshard-engines-scheme)
 target_compile_options(columnshard-engines-scheme PRIVATE
@@ -17,6 +18,7 @@ target_link_libraries(columnshard-engines-scheme PUBLIC
   ydb-core-protos
   core-formats-arrow
   library-actors-core
+  engines-scheme-indexes
 )
 target_sources(columnshard-engines-scheme PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.cpp
diff --git a/ydb/core/tx/columnshard/engines/scheme/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/engines/scheme/CMakeLists.darwin-x86_64.txt
index 8a4b2b5ca5fe..ff848baca1a6 100644
--- a/ydb/core/tx/columnshard/engines/scheme/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/scheme/CMakeLists.darwin-x86_64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(indexes)
 
 add_library(columnshard-engines-scheme)
 target_compile_options(columnshard-engines-scheme PRIVATE
@@ -17,6 +18,7 @@ target_link_libraries(columnshard-engines-scheme PUBLIC
   ydb-core-protos
   core-formats-arrow
   library-actors-core
+  engines-scheme-indexes
 )
 target_sources(columnshard-engines-scheme PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.cpp
diff --git a/ydb/core/tx/columnshard/engines/scheme/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/engines/scheme/CMakeLists.linux-aarch64.txt
index b4c04478cd3e..df52b32b8c5d 100644
--- a/ydb/core/tx/columnshard/engines/scheme/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/columnshard/engines/scheme/CMakeLists.linux-aarch64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(indexes)
 
 add_library(columnshard-engines-scheme)
 target_compile_options(columnshard-engines-scheme PRIVATE
@@ -18,6 +19,7 @@ target_link_libraries(columnshard-engines-scheme PUBLIC
   ydb-core-protos
   core-formats-arrow
   library-actors-core
+  engines-scheme-indexes
 )
 target_sources(columnshard-engines-scheme PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.cpp
diff --git a/ydb/core/tx/columnshard/engines/scheme/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/engines/scheme/CMakeLists.linux-x86_64.txt
index b4c04478cd3e..df52b32b8c5d 100644
--- a/ydb/core/tx/columnshard/engines/scheme/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/scheme/CMakeLists.linux-x86_64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(indexes)
 
 add_library(columnshard-engines-scheme)
 target_compile_options(columnshard-engines-scheme PRIVATE
@@ -18,6 +19,7 @@ target_link_libraries(columnshard-engines-scheme PUBLIC
   ydb-core-protos
   core-formats-arrow
   library-actors-core
+  engines-scheme-indexes
 )
 target_sources(columnshard-engines-scheme PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.cpp
diff --git a/ydb/core/tx/columnshard/engines/scheme/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/engines/scheme/CMakeLists.windows-x86_64.txt
index 8a4b2b5ca5fe..ff848baca1a6 100644
--- a/ydb/core/tx/columnshard/engines/scheme/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/scheme/CMakeLists.windows-x86_64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(indexes)
 
 add_library(columnshard-engines-scheme)
 target_compile_options(columnshard-engines-scheme PRIVATE
@@ -17,6 +18,7 @@ target_link_libraries(columnshard-engines-scheme PUBLIC
   ydb-core-protos
   core-formats-arrow
   library-actors-core
+  engines-scheme-indexes
 )
 target_sources(columnshard-engines-scheme PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.cpp
diff --git a/ydb/core/tx/columnshard/engines/scheme/abstract/index_info.cpp b/ydb/core/tx/columnshard/engines/scheme/abstract/index_info.cpp
new file mode 100644
index 000000000000..d849f5c9bbff
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/abstract/index_info.cpp
@@ -0,0 +1,20 @@
+#include "index_info.h"
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+
+const TString IIndexInfo::STORE_INDEX_STATS_TABLE = TString("/") + NSysView::SysPathName + "/" + NSysView::StorePrimaryIndexStatsName;
+const TString IIndexInfo::STORE_INDEX_PORTION_STATS_TABLE = TString("/") + NSysView::SysPathName + "/" + NSysView::StorePrimaryIndexPortionStatsName;
+const TString IIndexInfo::STORE_INDEX_GRANULE_STATS_TABLE = TString("/") + NSysView::SysPathName + "/" + NSysView::StorePrimaryIndexGranuleStatsName;
+const TString IIndexInfo::TABLE_INDEX_STATS_TABLE = TString("/") + NSysView::SysPathName + "/" + NSysView::TablePrimaryIndexStatsName;
+const TString IIndexInfo::TABLE_INDEX_PORTION_STATS_TABLE = TString("/") + NSysView::SysPathName + "/" + NSysView::TablePrimaryIndexPortionStatsName;
+const TString IIndexInfo::TABLE_INDEX_GRANULE_STATS_TABLE = TString("/") + NSysView::SysPathName + "/" + NSysView::TablePrimaryIndexGranuleStatsName;
+
+std::shared_ptr IIndexInfo::GetColumnLoaderVerified(const ui32 columnId) const {
+    auto result = GetColumnLoaderOptional(columnId);
+    AFL_VERIFY(result);
+    return result;
+}
+
+} // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/scheme/abstract/index_info.h b/ydb/core/tx/columnshard/engines/scheme/abstract/index_info.h
new file mode 100644
index 000000000000..343ad58746b1
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/abstract/index_info.h
@@ -0,0 +1,39 @@
+#pragma once
+#include "loader.h"
+
+#include 
+
+namespace NKikimr::NOlap {
+
+class IIndexInfo {
+public:
+    enum class ESpecialColumn: ui32 {
+        PLAN_STEP = NOlap::NPortion::TSpecialColumns::SPEC_COL_PLAN_STEP_INDEX,
+        TX_ID = NOlap::NPortion::TSpecialColumns::SPEC_COL_TX_ID_INDEX
+    };
+
+    static constexpr const char* SPEC_COL_PLAN_STEP = NOlap::NPortion::TSpecialColumns::SPEC_COL_PLAN_STEP;
+    static constexpr const char* SPEC_COL_TX_ID = NOlap::NPortion::TSpecialColumns::SPEC_COL_TX_ID;
+    static const TString STORE_INDEX_STATS_TABLE;
+    static const TString STORE_INDEX_PORTION_STATS_TABLE;
+    static const TString STORE_INDEX_GRANULE_STATS_TABLE;
+    static const TString TABLE_INDEX_STATS_TABLE;
+    static const TString TABLE_INDEX_PORTION_STATS_TABLE;
+    static const TString TABLE_INDEX_GRANULE_STATS_TABLE;
+
+    static const std::vector& GetSpecialColumnNames() {
+        static const std::vector result = {std::string(SPEC_COL_PLAN_STEP), std::string(SPEC_COL_TX_ID)};
+        return result;
+    }
+
+    static const std::vector& GetSpecialColumnIds() {
+        static const std::vector result = {(ui32)ESpecialColumn::PLAN_STEP, (ui32)ESpecialColumn::TX_ID};
+        return result;
+    }
+
+    virtual std::shared_ptr GetColumnLoaderOptional(const ui32 columnId) const = 0;
+    std::shared_ptr GetColumnLoaderVerified(const ui32 columnId) const;
+    virtual ~IIndexInfo() = default;
+};
+
+} // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/scheme/abstract/loader.cpp b/ydb/core/tx/columnshard/engines/scheme/abstract/loader.cpp
new file mode 100644
index 000000000000..a6f534c87190
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/abstract/loader.cpp
@@ -0,0 +1,60 @@
+#include "loader.h"
+#include 
+
+namespace NKikimr::NOlap {
+
+TString TColumnLoader::DebugString() const {
+    TStringBuilder result;
+    if (ExpectedSchema) {
+        result << "schema:" << ExpectedSchema->ToString() << ";";
+    }
+    if (Transformer) {
+        result << "transformer:" << Transformer->DebugString() << ";";
+    }
+    if (Serializer) {
+        result << "serializer:" << Serializer->DebugString() << ";";
+    }
+    return result;
+}
+
+TColumnLoader::TColumnLoader(NArrow::NTransformation::ITransformer::TPtr transformer, const NArrow::NSerialization::TSerializerContainer& serializer,
+    const std::shared_ptr& expectedSchema, const ui32 columnId)
+    : Transformer(transformer)
+    , Serializer(serializer)
+    , ExpectedSchema(expectedSchema)
+    , ColumnId(columnId) {
+    Y_ABORT_UNLESS(ExpectedSchema);
+    auto fieldsCountStr = ::ToString(ExpectedSchema->num_fields());
+    Y_ABORT_UNLESS(ExpectedSchema->num_fields() == 1, "%s", fieldsCountStr.data());
+    Y_ABORT_UNLESS(Serializer);
+}
+
+const std::shared_ptr& TColumnLoader::GetField() const {
+    return ExpectedSchema->field(0);
+}
+
+arrow::Result> TColumnLoader::Apply(const TString& data) const {
+    Y_ABORT_UNLESS(Serializer);
+    arrow::Result> columnArray =
+        Transformer ? Serializer->Deserialize(data) : Serializer->Deserialize(data, ExpectedSchema);
+    if (!columnArray.ok()) {
+        return columnArray;
+    }
+    if (Transformer) {
+        return Transformer->Transform(*columnArray);
+    } else {
+        return columnArray;
+    }
+}
+
+std::shared_ptr TColumnLoader::ApplyVerified(const TString& data) const {
+    return NArrow::TStatusValidator::GetValid(Apply(data));
+}
+
+std::shared_ptr TColumnLoader::ApplyVerifiedColumn(const TString& data) const {
+    auto rb = ApplyVerified(data);
+    AFL_VERIFY(rb->num_columns() == 1)("schema", rb->schema()->ToString());
+    return rb->column(0);
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/abstract/loader.h b/ydb/core/tx/columnshard/engines/scheme/abstract/loader.h
new file mode 100644
index 000000000000..306f3aa21671
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/abstract/loader.h
@@ -0,0 +1,49 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+
+class TColumnLoader {
+private:
+    NArrow::NTransformation::ITransformer::TPtr Transformer;
+    NArrow::NSerialization::TSerializerContainer Serializer;
+    std::shared_ptr ExpectedSchema;
+    const ui32 ColumnId;
+public:
+    bool IsEqualTo(const TColumnLoader& item) const {
+        if (!!Transformer != !!item.Transformer) {
+            return false;
+        } else if (!!Transformer && !Transformer->IsEqualTo(*item.Transformer)) {
+            return false;
+        }
+        if (!Serializer.IsEqualTo(item.Serializer)) {
+            return false;
+        }
+        return true;
+    }
+
+    TString DebugString() const;
+
+    TColumnLoader(NArrow::NTransformation::ITransformer::TPtr transformer, const NArrow::NSerialization::TSerializerContainer& serializer,
+        const std::shared_ptr& expectedSchema, const ui32 columnId);
+
+    ui32 GetColumnId() const {
+        return ColumnId;
+    }
+
+    const std::shared_ptr& GetField() const;
+
+    const std::shared_ptr& GetExpectedSchema() const {
+        return ExpectedSchema;
+    }
+
+    arrow::Result> Apply(const TString& data) const;
+
+    std::shared_ptr ApplyVerified(const TString& data) const;
+
+    std::shared_ptr ApplyVerifiedColumn(const TString& data) const;
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/scheme/abstract/saver.cpp b/ydb/core/tx/columnshard/engines/scheme/abstract/saver.cpp
new file mode 100644
index 000000000000..c15db92b8eec
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/abstract/saver.cpp
@@ -0,0 +1,31 @@
+#include "saver.h"
+
+namespace NKikimr::NOlap {
+
+TColumnSaver::TColumnSaver(NArrow::NTransformation::ITransformer::TPtr transformer, const NArrow::NSerialization::TSerializerContainer serializer)
+    : Transformer(transformer)
+    , Serializer(serializer)
+{
+    Y_ABORT_UNLESS(Serializer);
+}
+
+bool TColumnSaver::IsHardPacker() const {
+    return Serializer->IsHardPacker();
+}
+
+TString TColumnSaver::Apply(std::shared_ptr data, std::shared_ptr field) const {
+    auto schema = std::make_shared(arrow::FieldVector{field});
+    auto batch = arrow::RecordBatch::Make(schema, data->length(), {data});
+    return Apply(batch);
+}
+
+TString TColumnSaver::Apply(const std::shared_ptr& data) const {
+    Y_ABORT_UNLESS(Serializer);
+    if (Transformer) {
+        return Serializer->SerializeFull(Transformer->Transform(data));
+    } else {
+        return Serializer->SerializePayload(data);
+    }
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/abstract/saver.h b/ydb/core/tx/columnshard/engines/scheme/abstract/saver.h
new file mode 100644
index 000000000000..c4d10c55a359
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/abstract/saver.h
@@ -0,0 +1,34 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+
+class TColumnSaver {
+private:
+    NArrow::NTransformation::ITransformer::TPtr Transformer;
+    NArrow::NSerialization::TSerializerContainer Serializer;
+public:
+    TColumnSaver() = default;
+    TColumnSaver(NArrow::NTransformation::ITransformer::TPtr transformer, const NArrow::NSerialization::TSerializerContainer serializer);
+
+    void ResetSerializer(const NArrow::NSerialization::TSerializerContainer& serializer) {
+        AFL_VERIFY(serializer);
+        if (Serializer.IsCompatibleForExchange(serializer)) {
+            Serializer = serializer;
+        } else {
+            AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "cannot_reset_serializer")("reason", "incompatible_serializers");
+        }
+    }
+
+    bool IsHardPacker() const;
+
+    TString Apply(std::shared_ptr data, std::shared_ptr field) const;
+
+    TString Apply(const std::shared_ptr& data) const;
+};
+
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/abstract/ya.make b/ydb/core/tx/columnshard/engines/scheme/abstract/ya.make
new file mode 100644
index 000000000000..b830415daae1
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/abstract/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+SRCS(
+    saver.cpp
+    index_info.cpp
+    loader.cpp
+)
+
+PEERDIR(
+    ydb/library/actors/core
+    ydb/core/formats/arrow/transformer
+    ydb/core/formats/arrow/serializer
+)
+
+YQL_LAST_ABI_VERSION()
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.cpp b/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.cpp
index a80496460e90..e779afcaa956 100644
--- a/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.cpp
+++ b/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.cpp
@@ -1,119 +1 @@
 #include "abstract_scheme.h"
-
-#include 
-#include 
-
-namespace NKikimr::NOlap {
-
-std::shared_ptr ISnapshotSchema::GetFieldByIndex(const int index) const {
-    auto schema = GetSchema();
-    if (!schema || index < 0 || index >= schema->num_fields()) {
-        return nullptr;
-    }
-    return schema->field(index);
-}
-std::shared_ptr ISnapshotSchema::GetFieldByColumnIdOptional(const ui32 columnId) const {
-    return GetFieldByIndex(GetFieldIndex(columnId));
-}
-
-std::set ISnapshotSchema::GetPkColumnsIds() const {
-    std::set result;
-    for (auto&& field : GetIndexInfo().GetReplaceKey()->fields()) {
-        result.emplace(GetColumnId(field->name()));
-    }
-    return result;
-
-}
-
-std::shared_ptr ISnapshotSchema::NormalizeBatch(const ISnapshotSchema& dataSchema, const std::shared_ptr batch) const {
-    if (dataSchema.GetSnapshot() == GetSnapshot()) {
-        return batch;
-    }
-    Y_ABORT_UNLESS(dataSchema.GetSnapshot() < GetSnapshot());
-    const std::shared_ptr& resultArrowSchema = GetSchema();
-    std::vector> newColumns;
-    newColumns.reserve(resultArrowSchema->num_fields());
-
-    for (size_t i = 0; i < resultArrowSchema->fields().size(); ++i) {
-        auto& resultField = resultArrowSchema->fields()[i];
-        auto columnId = GetIndexInfo().GetColumnId(resultField->name());
-        auto oldColumnIndex = dataSchema.GetFieldIndex(columnId);
-        if (oldColumnIndex >= 0) { // ColumnExists
-            auto oldColumnInfo = dataSchema.GetFieldByIndex(oldColumnIndex);
-            Y_ABORT_UNLESS(oldColumnInfo);
-            auto columnData = batch->GetColumnByName(oldColumnInfo->name());
-            Y_ABORT_UNLESS(columnData);
-            newColumns.push_back(columnData);
-        } else { // AddNullColumn
-            auto nullColumn = NArrow::MakeEmptyBatch(arrow::schema({resultField}), batch->num_rows());
-            newColumns.push_back(nullColumn->column(0));
-        }
-    }
-    return arrow::RecordBatch::Make(resultArrowSchema, batch->num_rows(), newColumns);
-}
-
-std::shared_ptr ISnapshotSchema::PrepareForInsert(const TString& data, const std::shared_ptr& dataSchema) const {
-    std::shared_ptr dstSchema = GetIndexInfo().ArrowSchema();
-    auto batch = NArrow::DeserializeBatch(data, (dataSchema ? dataSchema : dstSchema));
-    if (!batch) {
-        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("error", "DeserializeBatch() failed");
-        return nullptr;
-    }
-    if (batch->num_rows() == 0) {
-        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("error", "empty batch");
-        return nullptr;
-    }
-
-    // Correct schema
-    if (dataSchema) {
-        batch = NArrow::ExtractColumns(batch, dstSchema, true);
-        if (!batch) {
-            AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("error", "cannot correct schema");
-            return nullptr;
-        }
-    }
-
-    if (!batch->schema()->Equals(dstSchema)) {
-        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("error", TStringBuilder() << "unexpected schema for insert batch: '" << batch->schema()->ToString() << "'");
-        return nullptr;
-    }
-
-    const auto& sortingKey = GetIndexInfo().GetPrimaryKey();
-    Y_ABORT_UNLESS(sortingKey);
-
-    // Check PK is NOT NULL
-    for (auto& field : sortingKey->fields()) {
-        auto column = batch->GetColumnByName(field->name());
-        if (!column) {
-            AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("error", TStringBuilder() << "missing PK column '" << field->name() << "'");
-            return nullptr;
-        }
-        if (NArrow::HasNulls(column)) {
-            AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("error", TStringBuilder() << "PK column '" << field->name() << "' contains NULLs");
-            return nullptr;
-        }
-    }
-
-    auto status = batch->ValidateFull();
-    if (!status.ok()) {
-        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("error", status.ToString());
-        return nullptr;
-    }
-    batch = NArrow::SortBatch(batch, sortingKey, true);
-    Y_DEBUG_ABORT_UNLESS(NArrow::IsSortedAndUnique(batch, sortingKey));
-    return batch;
-}
-
-ui32 ISnapshotSchema::GetColumnId(const std::string& columnName) const {
-    auto id = GetColumnIdOptional(columnName);
-    AFL_VERIFY(id)("column_name", columnName)("schema", JoinSeq(",", GetSchema()->field_names()));
-    return *id;
-}
-
-std::shared_ptr ISnapshotSchema::GetFieldByColumnIdVerified(const ui32 columnId) const {
-    auto result = GetFieldByColumnIdOptional(columnId);
-    AFL_VERIFY(result)("event", "unknown_column")("column_id", columnId)("schema", DebugString());
-    return result;
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.h b/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.h
index b063ba7d02ef..25f6253c385b 100644
--- a/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.h
+++ b/ydb/core/tx/columnshard/engines/scheme/abstract_scheme.h
@@ -1,72 +1,2 @@
 #pragma once
-
-#include 
-#include 
-
-#include 
-
-#include 
-
-namespace NKikimr::NOlap {
-
-struct TIndexInfo;
-
-class ISnapshotSchema {
-protected:
-    virtual TString DoDebugString() const = 0;
-public:
-    using TPtr = std::shared_ptr;
-
-    virtual ~ISnapshotSchema() {}
-    virtual std::shared_ptr GetColumnLoaderOptional(const ui32 columnId) const = 0;
-    std::shared_ptr GetColumnLoaderVerified(const ui32 columnId) const {
-        auto result = GetColumnLoaderOptional(columnId);
-        AFL_VERIFY(result);
-        return result;
-    }
-    std::shared_ptr GetColumnLoaderOptional(const std::string& columnName) const {
-        const std::optional id = GetColumnIdOptional(columnName);
-        if (id) {
-            return GetColumnLoaderOptional(*id);
-        } else {
-            return nullptr;
-        }
-    }
-    std::shared_ptr GetColumnLoaderVerified(const std::string& columnName) const {
-        auto result = GetColumnLoaderOptional(columnName);
-        AFL_VERIFY(result);
-        return result;
-    }
-
-    virtual TColumnSaver GetColumnSaver(const ui32 columnId, const TSaverContext& context) const = 0;
-    TColumnSaver GetColumnSaver(const TString& columnName, const TSaverContext& context) const {
-        return GetColumnSaver(GetColumnId(columnName), context);
-    }
-    TColumnSaver GetColumnSaver(const std::string& columnName, const TSaverContext& context) const {
-        return GetColumnSaver(TString(columnName.data(), columnName.size()), context);
-    }
-
-    virtual std::optional GetColumnIdOptional(const std::string& columnName) const = 0;
-    virtual int GetFieldIndex(const ui32 columnId) const = 0;
-
-    ui32 GetColumnId(const std::string& columnName) const;
-    std::shared_ptr GetFieldByIndex(const int index) const;
-    std::shared_ptr GetFieldByColumnIdOptional(const ui32 columnId) const;
-    std::shared_ptr GetFieldByColumnIdVerified(const ui32 columnId) const;
-
-    TString DebugString() const {
-        return DoDebugString();
-    }
-    virtual const std::shared_ptr& GetSchema() const = 0;
-    virtual const TIndexInfo& GetIndexInfo() const = 0;
-    virtual const TSnapshot& GetSnapshot() const = 0;
-    virtual ui64 GetVersion() const = 0;
-    virtual ui32 GetColumnsCount() const = 0;
-
-    std::set GetPkColumnsIds() const;
-
-    std::shared_ptr NormalizeBatch(const ISnapshotSchema& dataSchema, const std::shared_ptr batch) const;
-    std::shared_ptr PrepareForInsert(const TString& data, const std::shared_ptr& dataSchema) const;
-};
-
-} // namespace NKikimr::NOlap
+#include "versions/abstract_scheme.h"
diff --git a/ydb/core/tx/columnshard/engines/scheme/column/info.cpp b/ydb/core/tx/columnshard/engines/scheme/column/info.cpp
new file mode 100644
index 000000000000..7444cfa3093e
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/column/info.cpp
@@ -0,0 +1,90 @@
+#include "info.h"
+#include 
+
+namespace NKikimr::NOlap {
+
+NArrow::NTransformation::ITransformer::TPtr TSimpleColumnInfo::GetSaveTransformer() const {
+    NArrow::NTransformation::ITransformer::TPtr transformer;
+    if (DictionaryEncoding) {
+        transformer = DictionaryEncoding->BuildEncoder();
+    }
+    return transformer;
+}
+
+NArrow::NTransformation::ITransformer::TPtr TSimpleColumnInfo::GetLoadTransformer() const {
+    NArrow::NTransformation::ITransformer::TPtr transformer;
+    if (DictionaryEncoding) {
+        transformer = DictionaryEncoding->BuildDecoder();
+    }
+    return transformer;
+}
+
+TConclusionStatus TSimpleColumnInfo::DeserializeFromProto(const NKikimrSchemeOp::TOlapColumnDescription& columnInfo)
+{
+    AFL_VERIFY(columnInfo.GetId() == ColumnId);
+    if (columnInfo.HasSerializer()) {
+        AFL_VERIFY(Serializer.DeserializeFromProto(columnInfo.GetSerializer()));
+    } else if (columnInfo.HasCompression()) {
+        Serializer.DeserializeFromProto(columnInfo.GetCompression()).Validate();
+    }
+    AFL_VERIFY(Serializer);
+    if (columnInfo.HasDictionaryEncoding()) {
+        auto settings = NArrow::NDictionary::TEncodingSettings::BuildFromProto(columnInfo.GetDictionaryEncoding());
+        Y_ABORT_UNLESS(settings.IsSuccess());
+        DictionaryEncoding = *settings;
+    }
+    Loader = std::make_shared(GetLoadTransformer(), Serializer, ArrowSchema, ColumnId);
+    return TConclusionStatus::Success();
+}
+
+TSimpleColumnInfo::TSimpleColumnInfo(const ui32 columnId, const std::shared_ptr& arrowField, const NArrow::NSerialization::TSerializerContainer& serializer,
+    const bool needMinMax, const bool isSorted)
+    : ColumnId(columnId)
+    , ArrowField(arrowField)
+    , ArrowSchema(std::make_shared(arrow::FieldVector({arrowField})))
+    , Serializer(serializer)
+    , NeedMinMax(needMinMax)
+    , IsSorted(isSorted)
+{
+    ColumnName = ArrowField->name();
+    Loader = std::make_shared(GetLoadTransformer(), Serializer, ArrowSchema, ColumnId);
+}
+
+std::vector> TSimpleColumnInfo::ActualizeColumnData(const std::vector>& source, const TSimpleColumnInfo& sourceColumnFeatures) const {
+    AFL_VERIFY(Loader);
+    const auto checkNeedActualize = [&]() {
+        if (!Serializer.IsEqualTo(sourceColumnFeatures.Serializer)) {
+            AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("event", "actualization")("reason", "serializer")
+                ("from", sourceColumnFeatures.Serializer.SerializeToProto().DebugString())
+                ("to", Serializer.SerializeToProto().DebugString());
+            return true;
+        }
+        if (!Loader->IsEqualTo(*sourceColumnFeatures.Loader)) {
+            AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("event", "actualization")("reason", "loader");
+            return true;
+        }
+        if (!!DictionaryEncoding != !!sourceColumnFeatures.DictionaryEncoding) {
+            AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("event", "actualization")("reason", "dictionary")("from", !!sourceColumnFeatures.DictionaryEncoding)("to", !!DictionaryEncoding);
+            return true;
+        }
+        if (!!DictionaryEncoding && !DictionaryEncoding->IsEqualTo(*sourceColumnFeatures.DictionaryEncoding)) {
+            AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("event", "actualization")("reason", "dictionary_encoding")
+                ("from", sourceColumnFeatures.DictionaryEncoding->SerializeToProto().DebugString())
+                ("to", DictionaryEncoding->SerializeToProto().DebugString())
+                ;
+            return true;
+        }
+        return false;
+    };
+    if (!checkNeedActualize()) {
+        return source;
+    }
+    std::vector> result;
+    for (auto&& s : source) {
+        auto data = NArrow::TStatusValidator::GetValid(sourceColumnFeatures.Loader->Apply(s->GetData()));
+        result.emplace_back(s->CopyWithAnotherBlob(GetColumnSaver().Apply(data), *this));
+    }
+    return result;
+}
+
+} // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/scheme/column/info.h b/ydb/core/tx/columnshard/engines/scheme/column/info.h
new file mode 100644
index 000000000000..5f4eced0eae6
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/column/info.h
@@ -0,0 +1,61 @@
+#pragma once
+#include 
+#include 
+
+#include 
+#include 
+#include 
+#include 
+
+#include 
+
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+
+class IPortionDataChunk;
+
+class TSimpleColumnInfo {
+private:
+    YDB_READONLY(ui32, ColumnId, 0);
+    YDB_READONLY_DEF(TString, ColumnName);
+    YDB_READONLY_DEF(std::shared_ptr, ArrowField);
+    YDB_READONLY_DEF(std::shared_ptr, ArrowSchema);
+    YDB_READONLY(NArrow::NSerialization::TSerializerContainer, Serializer, NArrow::NSerialization::TSerializerContainer::GetDefaultSerializer());
+    YDB_READONLY(bool, NeedMinMax, false);
+    YDB_READONLY(bool, IsSorted, false);
+    std::optional DictionaryEncoding;
+    std::shared_ptr Loader;
+    NArrow::NTransformation::ITransformer::TPtr GetLoadTransformer() const;
+
+public:
+
+    TSimpleColumnInfo(const ui32 columnId, const std::shared_ptr& arrowField, const NArrow::NSerialization::TSerializerContainer& serializer, const bool needMinMax, const bool isSorted);
+
+    TColumnSaver GetColumnSaver() const {
+        NArrow::NTransformation::ITransformer::TPtr transformer = GetSaveTransformer();
+        AFL_VERIFY(Serializer);
+        return TColumnSaver(transformer, Serializer);
+    }
+
+    std::vector> ActualizeColumnData(const std::vector>& source, const TSimpleColumnInfo& sourceColumnFeatures) const;
+
+    TString DebugString() const {
+        TStringBuilder sb;
+        sb << "serializer=" << (Serializer ? Serializer->DebugString() : "NO") << ";";
+        sb << "encoding=" << (DictionaryEncoding ? DictionaryEncoding->DebugString() : "NO") << ";";
+        sb << "loader=" << (Loader ? Loader->DebugString() : "NO") << ";";
+        return sb;
+    }
+
+    NArrow::NTransformation::ITransformer::TPtr GetSaveTransformer() const;
+    TConclusionStatus DeserializeFromProto(const NKikimrSchemeOp::TOlapColumnDescription& columnInfo);
+
+    const std::shared_ptr& GetLoader() const {
+        AFL_VERIFY(Loader);
+        return Loader;
+    }
+};
+
+} // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/scheme/column/ya.make b/ydb/core/tx/columnshard/engines/scheme/column/ya.make
new file mode 100644
index 000000000000..79a17cbe405c
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/column/ya.make
@@ -0,0 +1,18 @@
+LIBRARY()
+
+SRCS(
+    info.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/scheme/abstract
+
+    ydb/core/formats/arrow/dictionary
+    ydb/core/formats/arrow/serializer
+    ydb/core/formats/arrow/transformer
+    ydb/core/formats/arrow/common
+
+    contrib/libs/apache/arrow
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/scheme/column_features.cpp b/ydb/core/tx/columnshard/engines/scheme/column_features.cpp
index a416509e4878..49a0e78325dc 100644
--- a/ydb/core/tx/columnshard/engines/scheme/column_features.cpp
+++ b/ydb/core/tx/columnshard/engines/scheme/column_features.cpp
@@ -1,84 +1,8 @@
 #include "column_features.h"
 #include "index_info.h"
-#include 
-#include 
+#include 
 #include 
 
 namespace NKikimr::NOlap {
 
-NArrow::NTransformation::ITransformer::TPtr TColumnFeatures::GetSaveTransformer() const {
-    NArrow::NTransformation::ITransformer::TPtr transformer;
-    if (DictionaryEncoding) {
-        transformer = DictionaryEncoding->BuildEncoder();
-    }
-    return transformer;
-}
-
-NArrow::NTransformation::ITransformer::TPtr TColumnFeatures::GetLoadTransformer() const {
-    NArrow::NTransformation::ITransformer::TPtr transformer;
-    if (DictionaryEncoding) {
-        transformer = DictionaryEncoding->BuildDecoder();
-    }
-    return transformer;
-}
-
-void TColumnFeatures::InitLoader(const TIndexInfo& info) {
-    NArrow::NTransformation::ITransformer::TPtr transformer = GetLoadTransformer();
-    auto schema = info.GetColumnSchema(ColumnId);
-    if (!transformer) {
-        Loader = std::make_shared(transformer,
-            std::make_shared(schema),
-            schema, ColumnId);
-    } else {
-        Loader = std::make_shared(transformer,
-            std::make_shared(),
-            schema, ColumnId);
-    }
-}
-
-std::optional TColumnFeatures::BuildFromProto(const NKikimrSchemeOp::TOlapColumnDescription& columnInfo, const TIndexInfo& indexInfo) {
-    const ui32 columnId = columnInfo.GetId();
-    TColumnFeatures result(columnId);
-    if (columnInfo.HasCompression()) {
-        auto settings = NArrow::TCompression::BuildFromProto(columnInfo.GetCompression());
-        Y_ABORT_UNLESS(settings.IsSuccess());
-        result.Compression = *settings;
-    }
-    if (columnInfo.HasDictionaryEncoding()) {
-        auto settings = NArrow::NDictionary::TEncodingSettings::BuildFromProto(columnInfo.GetDictionaryEncoding());
-        Y_ABORT_UNLESS(settings.IsSuccess());
-        result.DictionaryEncoding = *settings;
-    }
-    result.InitLoader(indexInfo);
-    return result;
-}
-
-std::unique_ptr TColumnFeatures::GetCompressionCodec() const {
-    if (Compression) {
-        return Compression->BuildArrowCodec();
-    } else {
-        return nullptr;
-    }
-}
-
-NKikimr::NOlap::TColumnFeatures TColumnFeatures::BuildFromIndexInfo(const ui32 columnId, const TIndexInfo& indexInfo) {
-    TColumnFeatures result(columnId);
-    result.InitLoader(indexInfo);
-    return result;
-}
-
-TString TColumnLoader::DebugString() const {
-    TStringBuilder result;
-    if (ExpectedSchema) {
-        result << "schema:" << ExpectedSchema->ToString() << ";";
-    }
-    if (Transformer) {
-        result << "transformer:" << Transformer->DebugString() << ";";
-    }
-    if (Deserializer) {
-        result << "deserializer:" << Deserializer->DebugString() << ";";
-    }
-    return result;
-}
-
 } // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/scheme/column_features.h b/ydb/core/tx/columnshard/engines/scheme/column_features.h
index 11415ecc20de..7f8f5017559d 100644
--- a/ydb/core/tx/columnshard/engines/scheme/column_features.h
+++ b/ydb/core/tx/columnshard/engines/scheme/column_features.h
@@ -1,168 +1,53 @@
 #pragma once
-#include 
+#include "abstract/loader.h"
+#include "abstract/saver.h"
+#include "column/info.h"
+
 #include 
 #include 
 #include 
 #include 
 #include 
+#include 
+#include 
+
 #include 
 #include 
-#include 
 
 namespace NKikimr::NOlap {
 
 class TSaverContext {
 private:
-    TString TierName;
-    std::optional ExternalCompression;
-    YDB_READONLY_DEF(std::shared_ptr, StorageOperator);
     YDB_READONLY_DEF(std::shared_ptr, StoragesManager);
 public:
-    TSaverContext(const std::shared_ptr& storageOperator, const std::shared_ptr& storagesManager)
-        : StorageOperator(storageOperator)
-        , StoragesManager(storagesManager) {
-
-    }
-
-    const std::optional& GetExternalCompression() const {
-        return ExternalCompression;
-    }
-    TSaverContext& SetExternalCompression(const std::optional& value) {
-        ExternalCompression = value;
-        return *this;
-    }
-    const TString& GetTierName() const {
-        return TierName;
-    }
-    TSaverContext& SetTierName(const TString& value) {
-        TierName = value;
-        return *this;
-    }
-};
-
-class TColumnSaver {
-private:
-    NArrow::NTransformation::ITransformer::TPtr Transformer;
-    NArrow::NSerialization::ISerializer::TPtr Serializer;
-public:
-    TColumnSaver() = default;
-    TColumnSaver(NArrow::NTransformation::ITransformer::TPtr transformer, NArrow::NSerialization::ISerializer::TPtr serializer)
-        : Transformer(transformer)
-        , Serializer(serializer) {
-        Y_ABORT_UNLESS(Serializer);
-    }
-
-    bool IsHardPacker() const {
-        return Serializer && Serializer->IsHardPacker();
-    }
-
-    TString Apply(std::shared_ptr data, std::shared_ptr field) const {
-        auto schema = std::make_shared(arrow::FieldVector{field});
-        auto batch = arrow::RecordBatch::Make(schema, data->length(), {data});
-        return Apply(batch);
-    }
-
-    TString Apply(const std::shared_ptr& data) const {
-        Y_ABORT_UNLESS(Serializer);
-        if (Transformer) {
-            return Serializer->Serialize(Transformer->Transform(data));
-        } else {
-            return Serializer->Serialize(data);
-        }
-    }
-};
-
-class TColumnLoader {
-private:
-    NArrow::NTransformation::ITransformer::TPtr Transformer;
-    NArrow::NSerialization::IDeserializer::TPtr Deserializer;
-    std::shared_ptr ExpectedSchema;
-    const ui32 ColumnId;
-public:
-    TString DebugString() const;
-
-    TColumnLoader(NArrow::NTransformation::ITransformer::TPtr transformer, NArrow::NSerialization::IDeserializer::TPtr deserializer,
-        const std::shared_ptr& expectedSchema, const ui32 columnId)
-        : Transformer(transformer)
-        , Deserializer(deserializer)
-        , ExpectedSchema(expectedSchema)
-        , ColumnId(columnId) {
-        Y_ABORT_UNLESS(ExpectedSchema);
-        auto fieldsCountStr = ::ToString(ExpectedSchema->num_fields());
-        Y_ABORT_UNLESS(ExpectedSchema->num_fields() == 1, "%s", fieldsCountStr.data());
-        Y_ABORT_UNLESS(Deserializer);
-    }
-
-    ui32 GetColumnId() const {
-        return ColumnId;
-    }
-
-    const std::shared_ptr& GetField() const {
-        return ExpectedSchema->field(0);
-    }
-
-    const std::shared_ptr& GetExpectedSchema() const {
-        return ExpectedSchema;
-    }
-
-    arrow::Result> Apply(const TString& data) const {
-        Y_ABORT_UNLESS(Deserializer);
-        arrow::Result> columnArray = Deserializer->Deserialize(data);
-        if (!columnArray.ok()) {
-            return columnArray;
-        }
-        if (Transformer) {
-            return Transformer->Transform(*columnArray);
-        } else {
-            return columnArray;
-        }
-    }
-
-    std::shared_ptr ApplyVerified(const TString& data) const {
-        return NArrow::TStatusValidator::GetValid(Apply(data));
-    }
-
-    std::shared_ptr ApplyVerifiedColumn(const TString& data) const {
-        auto rb = ApplyVerified(data);
-        AFL_VERIFY(rb->num_columns() == 1)("schema", rb->schema()->ToString());
-        return rb->column(0);
+    TSaverContext(const std::shared_ptr& storagesManager)
+        : StoragesManager(storagesManager) {
+        AFL_VERIFY(StoragesManager);
     }
 };
 
 struct TIndexInfo;
 
-class TColumnFeatures {
+class TColumnFeatures: public TSimpleColumnInfo {
 private:
-    ui32 ColumnId;
-    std::optional Compression;
-    std::optional DictionaryEncoding;
-    std::shared_ptr Loader;
-
-    NArrow::NTransformation::ITransformer::TPtr GetLoadTransformer() const;
-
-    void InitLoader(const TIndexInfo& info);
-    TColumnFeatures(const ui32 columnId)
-        : ColumnId(columnId) {
-    }
+    using TBase = TSimpleColumnInfo;
+    YDB_READONLY_DEF(std::shared_ptr, Operator);
 public:
-
-    TString DebugString() const {
-        TStringBuilder sb;
-        sb << "compression=" << (Compression ? Compression->DebugString() : "NO") << ";";
-        sb << "encoding=" << (DictionaryEncoding ? DictionaryEncoding->DebugString() : "NO") << ";";
-        sb << "loader=" << (Loader ? Loader->DebugString() : "NO") << ";";
-        return sb;
-    }
-
-    NArrow::NTransformation::ITransformer::TPtr GetSaveTransformer() const;
-    static std::optional BuildFromProto(const NKikimrSchemeOp::TOlapColumnDescription& columnInfo, const TIndexInfo& indexInfo);
-    static TColumnFeatures BuildFromIndexInfo(const ui32 columnId, const TIndexInfo& indexInfo);
-
-    std::unique_ptr GetCompressionCodec() const;
-
-    const std::shared_ptr& GetLoader() const {
-        AFL_VERIFY(Loader);
-        return Loader;
+    TColumnFeatures(const ui32 columnId, const std::shared_ptr& arrowField, const NArrow::NSerialization::TSerializerContainer& serializer,
+        const std::shared_ptr& bOperator, const bool needMinMax, const bool isSorted)
+        : TBase(columnId, arrowField, serializer, needMinMax, isSorted)
+        , Operator(bOperator)
+    {
+        AFL_VERIFY(Operator);
+
+    }
+    TConclusionStatus DeserializeFromProto(const NKikimrSchemeOp::TOlapColumnDescription& columnInfo, const std::shared_ptr& storagesManager) {
+        auto parsed = TBase::DeserializeFromProto(columnInfo);
+        if (!parsed) {
+            return parsed;
+        }
+        Operator = storagesManager->GetOperatorVerified(columnInfo.GetStorageId() ? columnInfo.GetStorageId() : IStoragesManager::DefaultStorageId);
+        return TConclusionStatus::Success();
     }
 };
 
diff --git a/ydb/core/tx/columnshard/engines/scheme/filtered_scheme.cpp b/ydb/core/tx/columnshard/engines/scheme/filtered_scheme.cpp
index 52ad20e0da28..30eba88ffdd8 100644
--- a/ydb/core/tx/columnshard/engines/scheme/filtered_scheme.cpp
+++ b/ydb/core/tx/columnshard/engines/scheme/filtered_scheme.cpp
@@ -1,94 +1 @@
 #include "filtered_scheme.h"
-#include 
-
-
-namespace NKikimr::NOlap {
-
-TFilteredSnapshotSchema::TFilteredSnapshotSchema(ISnapshotSchema::TPtr originalSnapshot, const std::vector& columnIds)
-    : TFilteredSnapshotSchema(originalSnapshot, std::set(columnIds.begin(), columnIds.end()))
-{}
-
-TFilteredSnapshotSchema::TFilteredSnapshotSchema(ISnapshotSchema::TPtr originalSnapshot, const std::set& columnIds)
-    : OriginalSnapshot(originalSnapshot)
-    , ColumnIds(columnIds)
-{
-    std::vector> schemaFields;
-    for (auto&& i : OriginalSnapshot->GetSchema()->fields()) {
-        if (!ColumnIds.contains(OriginalSnapshot->GetIndexInfo().GetColumnId(i->name()))) {
-            continue;
-        }
-        schemaFields.emplace_back(i);
-    }
-    Schema = std::make_shared(schemaFields);
-}
-
-TFilteredSnapshotSchema::TFilteredSnapshotSchema(ISnapshotSchema::TPtr originalSnapshot, const std::set& columnNames)
-    : OriginalSnapshot(originalSnapshot) {
-    for (auto&& i : columnNames) {
-        ColumnIds.emplace(OriginalSnapshot->GetColumnId(i));
-    }
-    std::vector> schemaFields;
-    for (auto&& i : OriginalSnapshot->GetSchema()->fields()) {
-        if (!columnNames.contains(i->name())) {
-            continue;
-        }
-        schemaFields.emplace_back(i);
-    }
-    Schema = std::make_shared(schemaFields);
-}
-
-TColumnSaver TFilteredSnapshotSchema::GetColumnSaver(const ui32 columnId, const TSaverContext& context) const {
-    Y_ABORT_UNLESS(ColumnIds.contains(columnId));
-    return OriginalSnapshot->GetColumnSaver(columnId, context);
-}
-
-std::shared_ptr TFilteredSnapshotSchema::GetColumnLoaderOptional(const ui32 columnId) const {
-    Y_ABORT_UNLESS(ColumnIds.contains(columnId));
-    return OriginalSnapshot->GetColumnLoaderOptional(columnId);
-}
-
-std::optional TFilteredSnapshotSchema::GetColumnIdOptional(const std::string& columnName) const {
-    return OriginalSnapshot->GetColumnIdOptional(columnName);
-}
-
-int TFilteredSnapshotSchema::GetFieldIndex(const ui32 columnId) const {
-    if (!ColumnIds.contains(columnId)) {
-        return -1;
-    }
-    TString columnName = OriginalSnapshot->GetIndexInfo().GetColumnName(columnId, false);
-    if (!columnName) {
-        return -1;
-    }
-    std::string name(columnName.data(), columnName.size());
-    return Schema->GetFieldIndex(name);
-}
-
-const std::shared_ptr& TFilteredSnapshotSchema::GetSchema() const {
-    return Schema;
-}
-
-const TIndexInfo& TFilteredSnapshotSchema::GetIndexInfo() const {
-    return OriginalSnapshot->GetIndexInfo();
-}
-
-const TSnapshot& TFilteredSnapshotSchema::GetSnapshot() const {
-    return OriginalSnapshot->GetSnapshot();
-}
-
-ui32 TFilteredSnapshotSchema::GetColumnsCount() const {
-    return Schema->num_fields();
-}
-
-ui64 TFilteredSnapshotSchema::GetVersion() const {
-    return OriginalSnapshot->GetIndexInfo().GetVersion();
-}
-
-TString TFilteredSnapshotSchema::DoDebugString() const {
-    return TStringBuilder() << "("
-        << "original=" << OriginalSnapshot->DebugString() << ";"
-        << "column_ids=[" << JoinSeq(",", ColumnIds) << "];"
-        << ")"
-        ;
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/scheme/filtered_scheme.h b/ydb/core/tx/columnshard/engines/scheme/filtered_scheme.h
index 2e444b26d53f..e0f0bdb537af 100644
--- a/ydb/core/tx/columnshard/engines/scheme/filtered_scheme.h
+++ b/ydb/core/tx/columnshard/engines/scheme/filtered_scheme.h
@@ -1,32 +1,2 @@
 #pragma once
-
-#include "abstract_scheme.h"
-
-#include 
-
-namespace NKikimr::NOlap {
-
-class TFilteredSnapshotSchema: public ISnapshotSchema {
-    ISnapshotSchema::TPtr OriginalSnapshot;
-    std::shared_ptr Schema;
-    std::set ColumnIds;
-protected:
-    virtual TString DoDebugString() const override;
-public:
-    TFilteredSnapshotSchema(ISnapshotSchema::TPtr originalSnapshot, const std::vector& columnIds);
-    TFilteredSnapshotSchema(ISnapshotSchema::TPtr originalSnapshot, const std::set& columnIds);
-    TFilteredSnapshotSchema(ISnapshotSchema::TPtr originalSnapshot, const std::set& columnNames);
-
-    TColumnSaver GetColumnSaver(const ui32 columnId, const TSaverContext& context) const override;
-    std::shared_ptr GetColumnLoaderOptional(const ui32 columnId) const override;
-    std::optional GetColumnIdOptional(const std::string& columnName) const override;
-    int GetFieldIndex(const ui32 columnId) const override;
-
-    const std::shared_ptr& GetSchema() const override;
-    const TIndexInfo& GetIndexInfo() const override;
-    const TSnapshot& GetSnapshot() const override;
-    ui32 GetColumnsCount() const override;
-    ui64 GetVersion() const override;
-};
-
-}
+#include "versions/filtered_scheme.h"
diff --git a/ydb/core/tx/columnshard/engines/scheme/index_info.cpp b/ydb/core/tx/columnshard/engines/scheme/index_info.cpp
index 6bac1a0af456..c91f2d0d1370 100644
--- a/ydb/core/tx/columnshard/engines/scheme/index_info.cpp
+++ b/ydb/core/tx/columnshard/engines/scheme/index_info.cpp
@@ -1,18 +1,16 @@
 #include "index_info.h"
+#include "statistics/abstract/operator.h"
 
+#include 
+
+#include 
 #include 
-#include 
-#include 
-#include 
+#include 
 #include 
-#include 
-#include 
+#include 
 
 namespace NKikimr::NOlap {
 
-const TString TIndexInfo::STORE_INDEX_STATS_TABLE = TString("/") + NSysView::SysPathName + "/" + NSysView::StorePrimaryIndexStatsName;
-const TString TIndexInfo::TABLE_INDEX_STATS_TABLE = TString("/") + NSysView::SysPathName + "/" + NSysView::TablePrimaryIndexStatsName;
-
 static std::vector NamesOnly(const std::vector& columns) {
     std::vector out;
     out.reserve(columns.size());
@@ -49,6 +47,10 @@ std::shared_ptr TIndexInfo::AddSpecialColumns(const std::sha
     return *res;
 }
 
+ui64 TIndexInfo::GetSpecialColumnsRecordSize() {
+    return sizeof(ui64) + sizeof(ui64);
+}
+
 std::shared_ptr TIndexInfo::ArrowSchemaSnapshot() {
     static std::shared_ptr result = std::make_shared(arrow::FieldVector{
         arrow::field(SPEC_COL_PLAN_STEP, arrow::uint64()),
@@ -232,7 +234,7 @@ std::shared_ptr TIndexInfo::ArrowColumnFieldOptional(const ui32 co
     }
 }
 
-void TIndexInfo::SetAllKeys() {
+void TIndexInfo::SetAllKeys(const std::shared_ptr& operators) {
     /// @note Setting replace and sorting key to PK we are able to:
     /// * apply REPLACE by MergeSort
     /// * apply PK predicate before REPLACE
@@ -257,78 +259,14 @@ void TIndexInfo::SetAllKeys() {
     MinMaxIdxColumnsIds.insert(GetPKFirstColumnId());
     if (!Schema) {
         AFL_VERIFY(!SchemaWithSpecials);
-        InitializeCaches();
-    }
-}
-
-std::shared_ptr TIndexInfo::SortDescription() const {
-    if (GetPrimaryKey()) {
-        auto key = ExtendedKey; // Sort with extended key, greater snapshot first
-        Y_ABORT_UNLESS(key && key->num_fields() > 2);
-        auto description = std::make_shared(key);
-        description->Directions[key->num_fields() - 1] = -1;
-        description->Directions[key->num_fields() - 2] = -1;
-        description->NotNull = true; // TODO
-        return description;
-    }
-    return {};
-}
-
-std::shared_ptr TIndexInfo::SortReplaceDescription() const {
-    if (GetPrimaryKey()) {
-        auto key = ExtendedKey; // Sort with extended key, greater snapshot first
-        Y_ABORT_UNLESS(key && key->num_fields() > 2);
-        auto description = std::make_shared(key, GetPrimaryKey());
-        description->Directions[key->num_fields() - 1] = -1;
-        description->Directions[key->num_fields() - 2] = -1;
-        description->NotNull = true; // TODO
-        return description;
-    }
-    return {};
-}
-
-bool TIndexInfo::AllowTtlOverColumn(const TString& name) const {
-    auto it = ColumnNames.find(name);
-    if (it == ColumnNames.end()) {
-        return false;
-    }
-    return MinMaxIdxColumnsIds.contains(it->second);
-}
-
-TColumnSaver TIndexInfo::GetColumnSaver(const ui32 columnId, const TSaverContext& context) const {
-    arrow::ipc::IpcWriteOptions options;
-    options.use_threads = false;
-
-    NArrow::NTransformation::ITransformer::TPtr transformer;
-    std::unique_ptr columnCodec;
-    {
-        auto it = ColumnFeatures.find(columnId);
-        AFL_VERIFY(it != ColumnFeatures.end());
-        transformer = it->second.GetSaveTransformer();
-        columnCodec = it->second.GetCompressionCodec();
-    }
-
-    if (context.GetExternalCompression()) {
-        options.codec = context.GetExternalCompression()->BuildArrowCodec();
-    } else if (columnCodec) {
-        options.codec = std::move(columnCodec);
-    } else if (DefaultCompression) {
-        options.codec = DefaultCompression->BuildArrowCodec();
-    } else {
-        options.codec = NArrow::TCompression::BuildDefaultCodec();
-    }
-
-    if (!transformer) {
-        return TColumnSaver(transformer, std::make_shared(options));
-    } else {
-        return TColumnSaver(transformer, std::make_shared(options));
+        InitializeCaches(operators);
     }
 }
 
-std::shared_ptr TIndexInfo::GetColumnLoaderVerified(const ui32 columnId) const {
-    auto result = GetColumnLoaderOptional(columnId);
-    AFL_VERIFY(result);
-    return result;
+TColumnSaver TIndexInfo::GetColumnSaver(const ui32 columnId) const {
+    auto it = ColumnFeatures.find(columnId);
+    AFL_VERIFY(it != ColumnFeatures.end());
+    return it->second.GetColumnSaver();
 }
 
 std::shared_ptr TIndexInfo::GetColumnLoaderOptional(const ui32 columnId) const {
@@ -374,52 +312,67 @@ std::shared_ptr TIndexInfo::GetColumnSchema(const ui32 columnId)
     return GetColumnsSchema({columnId});
 }
 
-bool TIndexInfo::DeserializeFromProto(const NKikimrSchemeOp::TColumnTableSchema& schema) {
+bool TIndexInfo::DeserializeFromProto(const NKikimrSchemeOp::TColumnTableSchema& schema, const std::shared_ptr& operators) {
     if (schema.GetEngine() != NKikimrSchemeOp::COLUMN_ENGINE_REPLACING_TIMESERIES) {
         AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "cannot_parse_index_info")("reason", "incorrect_engine_in_schema");
         return false;
     }
 
+    {
+        SchemeNeedActualization = schema.GetOptions().GetSchemeNeedActualization();
+    }
+
+    if (schema.HasDefaultCompression()) {
+        NArrow::NSerialization::TSerializerContainer container;
+        if (!container.DeserializeFromProto(schema.GetDefaultCompression())) {
+            AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "cannot_parse_index_info")("reason", "cannot_parse_default_serializer");
+            return false;
+        }
+        DefaultSerializer = container;
+    }
+
+    {
+        for (const auto& stat : schema.GetStatistics()) {
+            NStatistics::TOperatorContainer container;
+            AFL_VERIFY(container.DeserializeFromProto(stat));
+            AFL_VERIFY(StatisticsByName.emplace(container.GetName(), std::move(container)).second);
+        }
+        NStatistics::TPortionStorageCursor cursor;
+        for (auto&& [_, container] : StatisticsByName) {
+            container.SetCursor(cursor);
+            container->ShiftCursor(cursor);
+        }
+    }
+
     for (const auto& idx : schema.GetIndexes()) {
         NIndexes::TIndexMetaContainer meta;
         AFL_VERIFY(meta.DeserializeFromProto(idx));
         Indexes.emplace(meta->GetIndexId(), meta);
     }
-
     for (const auto& col : schema.GetColumns()) {
         const ui32 id = col.GetId();
         const TString& name = col.GetName();
         const bool notNull = col.HasNotNull() ? col.GetNotNull() : false;
-        auto typeInfoMod = NScheme::TypeInfoModFromProtoColumnType(col.GetTypeId(),
-            col.HasTypeInfo() ? &col.GetTypeInfo() : nullptr);
+        auto typeInfoMod = NScheme::TypeInfoModFromProtoColumnType(col.GetTypeId(), col.HasTypeInfo() ? &col.GetTypeInfo() : nullptr);
         Columns[id] = NTable::TColumn(name, id, typeInfoMod.TypeInfo, typeInfoMod.TypeMod, notNull);
         ColumnNames[name] = id;
     }
-    InitializeCaches();
-    for (const auto& col : schema.GetColumns()) {
-        std::optional cFeatures = TColumnFeatures::BuildFromProto(col, *this);
-        if (!cFeatures) {
-            AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "cannot_parse_column_feature");
-            return false;
-        }
-        auto it = ColumnFeatures.find(col.GetId());
-        AFL_VERIFY(it != ColumnFeatures.end());
-        it->second = *cFeatures;
-    }
-
     for (const auto& keyName : schema.GetKeyColumnNames()) {
         Y_ABORT_UNLESS(ColumnNames.contains(keyName));
         KeyColumns.push_back(ColumnNames[keyName]);
     }
-
-    if (schema.HasDefaultCompression()) {
-        auto result = NArrow::TCompression::BuildFromProto(schema.GetDefaultCompression());
-        if (!result) {
-            AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "cannot_parse_index_info")("reason", result.GetErrorMessage());
+    InitializeCaches(operators);
+    for (const auto& col : schema.GetColumns()) {
+        auto it = ColumnFeatures.find(col.GetId());
+        AFL_VERIFY(it != ColumnFeatures.end());
+        auto parsed = it->second.DeserializeFromProto(col, operators);
+        if (!parsed) {
+            AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "cannot_parse_column_feature")("reason", parsed.GetErrorMessage());
             return false;
         }
-        DefaultCompression = *result;
     }
+
+
     Version = schema.GetVersion();
     return true;
 }
@@ -444,7 +397,9 @@ std::shared_ptr MakeArrowSchema(const NTable::TScheme::TTableSche
 
         const auto& column = it->second;
         std::string colName(column.Name.data(), column.Name.size());
-        fields.emplace_back(std::make_shared(colName, NArrow::GetArrowType(column.PType), !column.NotNull));
+        auto arrowType = NArrow::GetArrowType(column.PType);
+        AFL_VERIFY(arrowType.ok());
+        fields.emplace_back(std::make_shared(colName, arrowType.ValueUnsafe(), !column.NotNull));
     }
 
     return std::make_shared(std::move(fields));
@@ -461,9 +416,9 @@ std::vector GetColumns(const NTable::TScheme::TTableSchema& table
     return out;
 }
 
-std::optional TIndexInfo::BuildFromProto(const NKikimrSchemeOp::TColumnTableSchema& schema) {
+std::optional TIndexInfo::BuildFromProto(const NKikimrSchemeOp::TColumnTableSchema& schema, const std::shared_ptr& operators) {
     TIndexInfo result("");
-    if (!result.DeserializeFromProto(schema)) {
+    if (!result.DeserializeFromProto(schema, operators)) {
         return std::nullopt;
     }
     return result;
@@ -473,18 +428,46 @@ std::shared_ptr TIndexInfo::SpecialColumnField(const ui32 columnId
     return ArrowSchemaSnapshot()->GetFieldByName(GetColumnName(columnId, true));
 }
 
-void TIndexInfo::InitializeCaches() {
+void TIndexInfo::InitializeCaches(const std::shared_ptr& operators) {
     BuildArrowSchema();
     BuildSchemaWithSpecials();
 
     for (auto&& c : Columns) {
         AFL_VERIFY(ArrowColumnByColumnIdCache.emplace(c.first, GetColumnFieldVerified(c.first)).second);
-        AFL_VERIFY(ColumnFeatures.emplace(c.first, TColumnFeatures::BuildFromIndexInfo(c.first, *this)).second);
+        AFL_VERIFY(ColumnFeatures.emplace(c.first, TColumnFeatures(c.first, GetColumnFieldVerified(c.first), DefaultSerializer, operators->GetDefaultOperator(), 
+            NArrow::IsPrimitiveYqlType(c.second.PType), c.first == GetPKFirstColumnId())).second);
     }
     for (auto&& cId : GetSpecialColumnIds()) {
         AFL_VERIFY(ArrowColumnByColumnIdCache.emplace(cId, GetColumnFieldVerified(cId)).second);
-        AFL_VERIFY(ColumnFeatures.emplace(cId, TColumnFeatures::BuildFromIndexInfo(cId, *this)).second);
+        AFL_VERIFY(ColumnFeatures.emplace(cId, TColumnFeatures(cId, GetColumnFieldVerified(cId), DefaultSerializer, operators->GetDefaultOperator(), false, false)).second);
+    }
+}
+
+std::vector> TIndexInfo::MakeEmptyChunks(const ui32 columnId, const std::vector& pages, const TSimpleColumnInfo& columnInfo) const {
+    std::vector> result;
+    auto columnArrowSchema = GetColumnSchema(columnId);
+    TColumnSaver saver = GetColumnSaver(columnId);
+    ui32 idx = 0;
+    for (auto p : pages) {
+        auto arr = NArrow::MakeEmptyBatch(columnArrowSchema, p);
+        AFL_VERIFY(arr->num_columns() == 1)("count", arr->num_columns());
+        result.emplace_back(std::make_shared(saver.Apply(arr), arr->column(0), TChunkAddress(columnId, idx), columnInfo));
+        ++idx;
+    }
+    return result;
+}
+
+NSplitter::TEntityGroups TIndexInfo::GetEntityGroupsByStorageId(const TString& specialTier, const IStoragesManager& storages) const {
+    NSplitter::TEntityGroups groups(storages.GetDefaultOperator()->GetBlobSplitSettings(), IStoragesManager::DefaultStorageId);
+    for (auto&& i : GetEntityIds()) {
+        auto storageId = GetEntityStorageId(i, specialTier);
+        auto* group = groups.GetGroupOptional(storageId);
+        if (!group) {
+            group = &groups.RegisterGroup(storageId, storages.GetOperatorVerified(storageId)->GetBlobSplitSettings());
+        }
+        group->AddEntity(i);
     }
+    return groups;
 }
 
 } // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/scheme/index_info.h b/ydb/core/tx/columnshard/engines/scheme/index_info.h
index 44d15cc375d9..a5c63814256e 100644
--- a/ydb/core/tx/columnshard/engines/scheme/index_info.h
+++ b/ydb/core/tx/columnshard/engines/scheme/index_info.h
@@ -3,6 +3,11 @@
 #include "column_features.h"
 #include "tier_info.h"
 
+#include "abstract/index_info.h"
+#include "indexes/abstract/meta.h"
+#include "statistics/abstract/operator.h"
+#include "statistics/abstract/common.h"
+
 #include 
 
 #include 
@@ -12,7 +17,6 @@
 #include 
 #include 
 #include 
-#include "indexes/abstract/meta.h"
 
 namespace arrow {
     class Array;
@@ -20,43 +24,96 @@ namespace arrow {
     class Schema;
 }
 
-namespace NKikimr::NArrow {
-    struct TSortDescription;
-}
-
 namespace NKikimr::NOlap {
 
+class TPortionInfoWithBlobs;
 struct TInsertedData;
 class TSnapshotColumnInfo;
+class ISnapshotSchema;
 using TNameTypeInfo = std::pair;
 
 /// Column engine index description in terms of tablet's local table.
 /// We have to use YDB types for keys here.
-struct TIndexInfo : public NTable::TScheme::TTableSchema {
+struct TIndexInfo : public NTable::TScheme::TTableSchema, public IIndexInfo {
 private:
     THashMap ColumnFeatures;
     THashMap> ArrowColumnByColumnIdCache;
     THashMap Indexes;
+    std::map StatisticsByName;
     TIndexInfo(const TString& name);
-    bool DeserializeFromProto(const NKikimrSchemeOp::TColumnTableSchema& schema);
+    bool SchemeNeedActualization = false;
+    bool DeserializeFromProto(const NKikimrSchemeOp::TColumnTableSchema& schema, const std::shared_ptr& operators);
     TColumnFeatures& GetOrCreateColumnFeatures(const ui32 columnId) const;
     void BuildSchemaWithSpecials();
     void BuildArrowSchema();
-    void InitializeCaches();
+    void InitializeCaches(const std::shared_ptr& operators);
 public:
-    static constexpr const char* SPEC_COL_PLAN_STEP = NOlap::NPortion::TSpecialColumns::SPEC_COL_PLAN_STEP;
-    static constexpr const char* SPEC_COL_TX_ID = NOlap::NPortion::TSpecialColumns::SPEC_COL_TX_ID;
-    static const TString STORE_INDEX_STATS_TABLE;
-    static const TString TABLE_INDEX_STATS_TABLE;
+    const TColumnFeatures& GetColumnFeaturesVerified(const ui32 columnId) const {
+        auto it = ColumnFeatures.find(columnId);
+        AFL_VERIFY(it != ColumnFeatures.end());
+        return it->second;
+    }
+
+    NSplitter::TEntityGroups GetEntityGroupsByStorageId(const TString& specialTier, const IStoragesManager& storages) const;
+
+    bool GetSchemeNeedActualization() const {
+        return SchemeNeedActualization;
+    }
+
+    std::set GetUsedStorageIds(const TString& portionTierName) const {
+        std::set result;
+        if (portionTierName && portionTierName != IStoragesManager::DefaultStorageId) {
+            result.emplace(portionTierName);
+        } else {
+            for (auto&& i : ColumnFeatures) {
+                result.emplace(i.second.GetOperator()->GetStorageId());
+            }
+        }
+        return result;
+    }
+
+    std::vector> MakeEmptyChunks(const ui32 columnId, const std::vector& pages, const TSimpleColumnInfo& columnInfo) const;
+
+    const std::map& GetStatisticsByName() const {
+        return StatisticsByName;
+    }
+
+    NStatistics::TOperatorContainer GetStatistics(const NStatistics::TIdentifier& id) const {
+        for (auto&& i : StatisticsByName) {
+            if (i.second->GetIdentifier() == id) {
+                return i.second;
+            }
+        }
+        return NStatistics::TOperatorContainer();
+    }
 
     const THashMap& GetIndexes() const {
         return Indexes;
     }
 
-    enum class ESpecialColumn : ui32 {
-        PLAN_STEP = NOlap::NPortion::TSpecialColumns::SPEC_COL_PLAN_STEP_INDEX,
-        TX_ID = NOlap::NPortion::TSpecialColumns::SPEC_COL_TX_ID_INDEX
-    };
+    const TString& GetIndexStorageId(const ui32 indexId) const {
+        auto it = Indexes.find(indexId);
+        AFL_VERIFY(it != Indexes.end());
+        return it->second->GetStorageId();
+    }
+
+    const TString& GetColumnStorageId(const ui32 columnId, const TString& specialTier) const {
+        if (specialTier && specialTier != IStoragesManager::DefaultStorageId) {
+            return specialTier;
+        } else {
+            auto it = ColumnFeatures.find(columnId);
+            AFL_VERIFY(it != ColumnFeatures.end());
+            return it->second.GetOperator()->GetStorageId();
+        }
+    }
+
+    const TString& GetEntityStorageId(const ui32 entityId, const TString& specialTier) const {
+        auto it = Indexes.find(entityId);
+        if (it != Indexes.end()) {
+            return it->second->GetStorageId();
+        }
+        return GetColumnStorageId(entityId, specialTier);
+    }
 
     TString DebugString() const {
         TStringBuilder sb;
@@ -77,6 +134,7 @@ struct TIndexInfo : public NTable::TScheme::TTableSchema {
 
     /// Makes schema as set of the special columns.
     static std::shared_ptr ArrowSchemaSnapshot();
+    static ui64 GetSpecialColumnsRecordSize();
 
     /// Matches name of the filed with names of the special columns.
     static bool IsSpecialColumn(const arrow::Field& field);
@@ -102,20 +160,35 @@ struct TIndexInfo : public NTable::TScheme::TTableSchema {
         return result;
     }
 
-    static std::optional BuildFromProto(const NKikimrSchemeOp::TColumnTableSchema& schema);
+    std::vector> ActualizeColumnData(const std::vector>& source, const TIndexInfo& sourceIndexInfo, const ui32 columnId) const {
+        auto itCurrent = ColumnFeatures.find(columnId);
+        auto itPred = sourceIndexInfo.ColumnFeatures.find(columnId);
+        AFL_VERIFY(itCurrent != ColumnFeatures.end());
+        AFL_VERIFY(itPred != sourceIndexInfo.ColumnFeatures.end());
+        return itCurrent->second.ActualizeColumnData(source, itPred->second);
+    }
+
+    static std::optional BuildFromProto(const NKikimrSchemeOp::TColumnTableSchema& schema, const std::shared_ptr& operators);
 
     static const std::vector& SnapshotColumnNames() {
         static std::vector result = {SPEC_COL_PLAN_STEP, SPEC_COL_TX_ID};
         return result;
     }
 
+    bool HasColumnId(const ui32 columnId) const {
+        return ColumnFeatures.contains(columnId);
+    }
+
+    bool HasIndexId(const ui32 indexId) const {
+        return Indexes.contains(indexId);
+    }
+
     std::shared_ptr GetColumnFieldOptional(const ui32 columnId) const;
     std::shared_ptr GetColumnFieldVerified(const ui32 columnId) const;
     std::shared_ptr GetColumnSchema(const ui32 columnId) const;
     std::shared_ptr GetColumnsSchema(const std::set& columnIds) const;
-    TColumnSaver GetColumnSaver(const ui32 columnId, const TSaverContext& context) const;
-    std::shared_ptr GetColumnLoaderOptional(const ui32 columnId) const;
-    std::shared_ptr GetColumnLoaderVerified(const ui32 columnId) const;
+    TColumnSaver GetColumnSaver(const ui32 columnId) const;
+    virtual std::shared_ptr GetColumnLoaderOptional(const ui32 columnId) const override;
     std::optional GetColumnNameOptional(const ui32 columnId) const {
         auto f = GetColumnFieldOptional(columnId);
         if (!f) {
@@ -140,13 +213,20 @@ struct TIndexInfo : public NTable::TScheme::TTableSchema {
         return meta->GetIndexName();
     }
 
-    void AppendIndexes(std::map>>& originalData) const {
+    void AppendIndexes(THashMap>>& originalData) const {
         for (auto&& i : Indexes) {
             std::shared_ptr chunk = i.second->BuildIndex(i.first, originalData, *this);
             AFL_VERIFY(originalData.emplace(i.first, std::vector>({chunk})).second);
         }
     }
 
+    void AppendIndex(THashMap>>& originalData, const ui32 indexId) const {
+        auto it = Indexes.find(indexId);
+        AFL_VERIFY(it != Indexes.end());
+        std::shared_ptr chunk = it->second->BuildIndex(indexId, originalData, *this);
+        AFL_VERIFY(originalData.emplace(indexId, std::vector>({chunk})).second);
+    }
+
     /// Returns an id of the column located by name. The name should exists in the schema.
     ui32 GetColumnId(const std::string& name) const;
     std::optional GetColumnIdOptional(const std::string& name) const;
@@ -157,6 +237,13 @@ struct TIndexInfo : public NTable::TScheme::TTableSchema {
     /// Returns names of columns defined by the specific ids.
     std::vector GetColumnNames(const std::vector& ids) const;
     std::vector GetColumnIds() const;
+    std::vector GetEntityIds() const {
+        auto result = GetColumnIds();
+        for (auto&& i : Indexes) {
+            result.emplace_back(i.first);
+        }
+        return result;
+    }
 
     /// Returns info of columns defined by specific ids.
     std::vector GetColumns(const std::vector& ids) const;
@@ -179,7 +266,7 @@ struct TIndexInfo : public NTable::TScheme::TTableSchema {
     const std::shared_ptr& GetPrimaryKey() const { return PrimaryKey; }
 
     /// Initializes sorting, replace, index and extended keys.
-    void SetAllKeys();
+    void SetAllKeys(const std::shared_ptr& operators);
 
     void CheckTtlColumn(const TString& ttlColumn) const {
         Y_ABORT_UNLESS(!ttlColumn.empty());
@@ -213,19 +300,6 @@ struct TIndexInfo : public NTable::TScheme::TTableSchema {
     bool IsSorted() const { return true; }
     bool IsSortedColumn(const ui32 columnId) const { return GetPKFirstColumnId() == columnId; }
 
-    std::shared_ptr SortDescription() const;
-    std::shared_ptr SortReplaceDescription() const;
-
-    static const std::vector& GetSpecialColumnNames() {
-        static const std::vector result = { std::string(SPEC_COL_PLAN_STEP), std::string(SPEC_COL_TX_ID) };
-        return result;
-    }
-
-    static const std::vector& GetSpecialColumnIds() {
-        static const std::vector result = {(ui32)ESpecialColumn::PLAN_STEP, (ui32)ESpecialColumn::TX_ID};
-        return result;
-    }
-
     static const std::set& GetSpecialColumnIdsSet() {
         static const std::set result(GetSpecialColumnIds().begin(), GetSpecialColumnIds().end());
         return result;
@@ -236,6 +310,9 @@ struct TIndexInfo : public NTable::TScheme::TTableSchema {
     }
 
     bool CheckCompatible(const TIndexInfo& other) const;
+    NArrow::NSerialization::TSerializerContainer GetDefaultSerializer() const {
+        return DefaultSerializer;
+    }
 
 private:
     ui64 Version = 0;
@@ -246,7 +323,7 @@ struct TIndexInfo : public NTable::TScheme::TTableSchema {
     std::shared_ptr ExtendedKey; // Extend PK with snapshot columns to allow old shapshot reads
     THashSet RequiredColumns;
     THashSet MinMaxIdxColumnsIds;
-    std::optional DefaultCompression;
+    NArrow::NSerialization::TSerializerContainer DefaultSerializer = NArrow::NSerialization::TSerializerContainer::GetDefaultSerializer();
 };
 
 std::shared_ptr MakeArrowSchema(const NTable::TScheme::TTableSchema::TColumns& columns, const std::vector& ids, bool withSpecials = false);
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..91fd0677fbe8
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.darwin-arm64.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_subdirectory(abstract)
+add_subdirectory(bloom)
+
+add_library(engines-scheme-indexes INTERFACE)
+target_link_libraries(engines-scheme-indexes INTERFACE
+  contrib-libs-cxxsupp
+  yutil
+  scheme-indexes-abstract
+  scheme-indexes-bloom
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..91fd0677fbe8
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.darwin-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_subdirectory(abstract)
+add_subdirectory(bloom)
+
+add_library(engines-scheme-indexes INTERFACE)
+target_link_libraries(engines-scheme-indexes INTERFACE
+  contrib-libs-cxxsupp
+  yutil
+  scheme-indexes-abstract
+  scheme-indexes-bloom
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..81afd01ecc00
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,19 @@
+
+# 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(abstract)
+add_subdirectory(bloom)
+
+add_library(engines-scheme-indexes INTERFACE)
+target_link_libraries(engines-scheme-indexes INTERFACE
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  scheme-indexes-abstract
+  scheme-indexes-bloom
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..81afd01ecc00
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,19 @@
+
+# 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(abstract)
+add_subdirectory(bloom)
+
+add_library(engines-scheme-indexes INTERFACE)
+target_link_libraries(engines-scheme-indexes INTERFACE
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  scheme-indexes-abstract
+  scheme-indexes-bloom
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..91fd0677fbe8
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/CMakeLists.windows-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_subdirectory(abstract)
+add_subdirectory(bloom)
+
+add_library(engines-scheme-indexes INTERFACE)
+target_link_libraries(engines-scheme-indexes INTERFACE
+  contrib-libs-cxxsupp
+  yutil
+  scheme-indexes-abstract
+  scheme-indexes-bloom
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..f1fe2605a6fa
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/CMakeLists.darwin-arm64.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(scheme-indexes-abstract)
+target_compile_options(scheme-indexes-abstract PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(scheme-indexes-abstract PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+target_sources(scheme-indexes-abstract PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/constructor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/meta.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/checker.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/program.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/simple.cpp
+)
+
+add_global_library_for(scheme-indexes-abstract.global scheme-indexes-abstract)
+target_compile_options(scheme-indexes-abstract.global PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(scheme-indexes-abstract.global PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+target_sources(scheme-indexes-abstract.global PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/composite.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..f1fe2605a6fa
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/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(scheme-indexes-abstract)
+target_compile_options(scheme-indexes-abstract PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(scheme-indexes-abstract PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+target_sources(scheme-indexes-abstract PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/constructor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/meta.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/checker.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/program.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/simple.cpp
+)
+
+add_global_library_for(scheme-indexes-abstract.global scheme-indexes-abstract)
+target_compile_options(scheme-indexes-abstract.global PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(scheme-indexes-abstract.global PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+target_sources(scheme-indexes-abstract.global PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/composite.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..156f15256004
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/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(scheme-indexes-abstract)
+target_compile_options(scheme-indexes-abstract PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(scheme-indexes-abstract PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+target_sources(scheme-indexes-abstract PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/constructor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/meta.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/checker.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/program.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/simple.cpp
+)
+
+add_global_library_for(scheme-indexes-abstract.global scheme-indexes-abstract)
+target_compile_options(scheme-indexes-abstract.global PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(scheme-indexes-abstract.global PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+target_sources(scheme-indexes-abstract.global PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/composite.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..156f15256004
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/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(scheme-indexes-abstract)
+target_compile_options(scheme-indexes-abstract PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(scheme-indexes-abstract PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+target_sources(scheme-indexes-abstract PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/constructor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/meta.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/checker.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/program.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/simple.cpp
+)
+
+add_global_library_for(scheme-indexes-abstract.global scheme-indexes-abstract)
+target_compile_options(scheme-indexes-abstract.global PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(scheme-indexes-abstract.global PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+target_sources(scheme-indexes-abstract.global PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/composite.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/CMakeLists.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..f1fe2605a6fa
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/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(scheme-indexes-abstract)
+target_compile_options(scheme-indexes-abstract PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(scheme-indexes-abstract PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+target_sources(scheme-indexes-abstract PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/constructor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/meta.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/checker.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/program.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/simple.cpp
+)
+
+add_global_library_for(scheme-indexes-abstract.global scheme-indexes-abstract)
+target_compile_options(scheme-indexes-abstract.global PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(scheme-indexes-abstract.global PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+target_sources(scheme-indexes-abstract.global PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/composite.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/meta.cpp b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/meta.cpp
index 77e9430ed953..f645bd4a308b 100644
--- a/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/meta.cpp
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/meta.cpp
@@ -1,19 +1,23 @@
 #include "meta.h"
+#include 
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
-#include 
+#include 
 #include 
 
 namespace NKikimr::NOlap::NIndexes {
 
-void TPortionIndexChunk::DoAddIntoPortion(const TBlobRange& bRange, TPortionInfo& portionInfo) const {
-    portionInfo.AddIndex(TIndexChunk(GetEntityId(), GetChunkIdx(), RecordsCount, RawBytes, bRange));
+void TPortionIndexChunk::DoAddIntoPortionBeforeBlob(const TBlobRangeLink16& bRange, TPortionInfo& portionInfo) const {
+    AFL_VERIFY(!bRange.IsValid());
+    portionInfo.AddIndex(TIndexChunk(GetEntityId(), GetChunkIdxVerified(), RecordsCount, RawBytes, bRange));
 }
 
-std::shared_ptr TIndexByColumns::DoBuildIndex(const ui32 indexId, std::map>>& data, const TIndexInfo& indexInfo) const {
+std::shared_ptr TIndexByColumns::DoBuildIndex(const ui32 indexId, THashMap>>& data, const TIndexInfo& indexInfo) const {
+    AFL_VERIFY(Serializer);
     AFL_VERIFY(data.size());
     std::vector columnReaders;
     for (auto&& i : ColumnIds) {
@@ -27,12 +31,12 @@ std::shared_ptr TIndexByColumns::DoBuildIndex
     }
     TChunkedBatchReader reader(std::move(columnReaders));
     std::shared_ptr indexBatch = DoBuildIndexImpl(reader);
-    const TString indexData = TColumnSaver(nullptr, Serializer).Apply(indexBatch);
-    return std::make_shared(indexId, recordsCount, NArrow::GetBatchDataSize(indexBatch), indexData);
+    const TString indexData = Serializer->SerializeFull(indexBatch);
+    return std::make_shared(TChunkAddress(indexId, 0), recordsCount, NArrow::GetBatchDataSize(indexBatch), indexData);
 }
 
 bool TIndexByColumns::DoDeserializeFromProto(const NKikimrSchemeOp::TOlapIndexDescription& /*proto*/) {
-    Serializer = std::make_shared(arrow::ipc::IpcWriteOptions::Defaults());
+    Serializer = NArrow::NSerialization::TSerializerContainer::GetDefaultSerializer();
     return true;
 }
 
@@ -40,7 +44,7 @@ TIndexByColumns::TIndexByColumns(const ui32 indexId, const TString& indexName, c
     : TBase(indexId, indexName)
     , ColumnIds(columnIds)
 {
-    Serializer = std::make_shared(arrow::ipc::IpcWriteOptions::Defaults());
+    Serializer = NArrow::NSerialization::TSerializerContainer::GetDefaultSerializer();
 }
 
 NKikimr::TConclusionStatus TIndexByColumns::CheckSameColumnsForModification(const IIndexMeta& newMeta) const {
@@ -59,4 +63,13 @@ NKikimr::TConclusionStatus TIndexByColumns::CheckSameColumnsForModification(cons
     return TConclusionStatus::Success();
 }
 
+bool IIndexMeta::DeserializeFromProto(const NKikimrSchemeOp::TOlapIndexDescription& proto) {
+    IndexId = proto.GetId();
+    AFL_VERIFY(IndexId);
+    IndexName = proto.GetName();
+    AFL_VERIFY(IndexName);
+    StorageId = proto.GetStorageId() ? proto.GetStorageId() : IStoragesManager::DefaultStorageId;
+    return DoDeserializeFromProto(proto);
+}
+
 }   // namespace NKikimr::NOlap::NIndexes
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/meta.h b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/meta.h
index 9966d4ee31ef..1f414cdc0301 100644
--- a/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/meta.h
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/abstract/meta.h
@@ -28,8 +28,9 @@ class IIndexMeta {
 private:
     YDB_READONLY_DEF(TString, IndexName);
     YDB_READONLY(ui32, IndexId, 0);
+    YDB_READONLY(TString, StorageId, IStoragesManager::DefaultStorageId);
 protected:
-    virtual std::shared_ptr DoBuildIndex(const ui32 indexId, std::map>>& data, const TIndexInfo& indexInfo) const = 0;
+    virtual std::shared_ptr DoBuildIndex(const ui32 indexId, THashMap>>& data, const TIndexInfo& indexInfo) const = 0;
     virtual void DoFillIndexCheckers(const std::shared_ptr& info, const NSchemeShard::TOlapSchema& schema) const = 0;
     virtual bool DoDeserializeFromProto(const NKikimrSchemeOp::TOlapIndexDescription& proto) = 0;
     virtual void DoSerializeToProto(NKikimrSchemeOp::TOlapIndexDescription& proto) const = 0;
@@ -59,7 +60,7 @@ class IIndexMeta {
 
     virtual ~IIndexMeta() = default;
 
-    std::shared_ptr BuildIndex(const ui32 indexId, std::map>>& data, const TIndexInfo& indexInfo) const {
+    std::shared_ptr BuildIndex(const ui32 indexId, THashMap>>& data, const TIndexInfo& indexInfo) const {
         return DoBuildIndex(indexId, data, indexInfo);
     }
 
@@ -67,19 +68,16 @@ class IIndexMeta {
         return DoFillIndexCheckers(info, schema);
     }
 
-    bool DeserializeFromProto(const NKikimrSchemeOp::TOlapIndexDescription& proto) {
-        IndexId = proto.GetId();
-        AFL_VERIFY(IndexId);
-        IndexName = proto.GetName();
-        AFL_VERIFY(IndexName);
-        return DoDeserializeFromProto(proto);
-    }
+    bool DeserializeFromProto(const NKikimrSchemeOp::TOlapIndexDescription& proto);
 
     void SerializeToProto(NKikimrSchemeOp::TOlapIndexDescription& proto) const {
         AFL_VERIFY(IndexId);
         proto.SetId(IndexId);
         AFL_VERIFY(IndexName);
         proto.SetName(IndexName);
+        if (StorageId) {
+            proto.SetStorageId(StorageId);
+        }
         return DoSerializeToProto(proto);
     }
 
@@ -126,10 +124,10 @@ class TPortionIndexChunk: public IPortionDataChunk {
     virtual std::shared_ptr DoGetLastScalar() const override {
         return nullptr;
     }
-    virtual void DoAddIntoPortion(const TBlobRange& bRange, TPortionInfo& portionInfo) const override;
+    virtual void DoAddIntoPortionBeforeBlob(const TBlobRangeLink16& bRange, TPortionInfo& portionInfo) const override;
 public:
-    TPortionIndexChunk(const ui32 entityId, const ui32 recordsCount, const ui64 rawBytes, const TString& data)
-        : TBase(entityId, 0)
+    TPortionIndexChunk(const TChunkAddress& address, const ui32 recordsCount, const ui64 rawBytes, const TString& data)
+        : TBase(address.GetColumnId(), address.GetChunkIdx())
         , RecordsCount(recordsCount)
         , RawBytes(rawBytes)
         , Data(data)
@@ -146,7 +144,7 @@ class TIndexByColumns: public IIndexMeta {
     std::set ColumnIds;
     virtual std::shared_ptr DoBuildIndexImpl(TChunkedBatchReader& reader) const = 0;
 
-    virtual std::shared_ptr DoBuildIndex(const ui32 indexId, std::map>>& data, const TIndexInfo& indexInfo) const override final;
+    virtual std::shared_ptr DoBuildIndex(const ui32 indexId, THashMap>>& data, const TIndexInfo& indexInfo) const override final;
     virtual bool DoDeserializeFromProto(const NKikimrSchemeOp::TOlapIndexDescription& /*proto*/) override;
 
     TConclusionStatus CheckSameColumnsForModification(const IIndexMeta& newMeta) const;
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..e5282c0d2e12
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/CMakeLists.darwin-arm64.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(scheme-indexes-bloom INTERFACE)
+target_link_libraries(scheme-indexes-bloom INTERFACE
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+
+add_global_library_for(scheme-indexes-bloom.global scheme-indexes-bloom)
+target_link_libraries(scheme-indexes-bloom.global PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+target_sources(scheme-indexes-bloom.global PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/constructor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/meta.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/checker.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..e5282c0d2e12
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/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(scheme-indexes-bloom INTERFACE)
+target_link_libraries(scheme-indexes-bloom INTERFACE
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+
+add_global_library_for(scheme-indexes-bloom.global scheme-indexes-bloom)
+target_link_libraries(scheme-indexes-bloom.global PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+target_sources(scheme-indexes-bloom.global PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/constructor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/meta.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/checker.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..66fa2e29226a
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/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(scheme-indexes-bloom INTERFACE)
+target_link_libraries(scheme-indexes-bloom INTERFACE
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+
+add_global_library_for(scheme-indexes-bloom.global scheme-indexes-bloom)
+target_link_libraries(scheme-indexes-bloom.global PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+target_sources(scheme-indexes-bloom.global PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/constructor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/meta.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/checker.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..66fa2e29226a
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/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(scheme-indexes-bloom INTERFACE)
+target_link_libraries(scheme-indexes-bloom INTERFACE
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+
+add_global_library_for(scheme-indexes-bloom.global scheme-indexes-bloom)
+target_link_libraries(scheme-indexes-bloom.global PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+target_sources(scheme-indexes-bloom.global PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/constructor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/meta.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/checker.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/CMakeLists.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..e5282c0d2e12
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/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(scheme-indexes-bloom INTERFACE)
+target_link_libraries(scheme-indexes-bloom INTERFACE
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+
+add_global_library_for(scheme-indexes-bloom.global scheme-indexes-bloom)
+target_link_libraries(scheme-indexes-bloom.global PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  core-formats-arrow
+)
+target_sources(scheme-indexes-bloom.global PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/constructor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/meta.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/checker.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/checker.cpp b/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/checker.cpp
index 368589b11c31..1ec8aede916d 100644
--- a/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/checker.cpp
+++ b/ydb/core/tx/columnshard/engines/scheme/indexes/bloom/checker.cpp
@@ -1,5 +1,5 @@
 #include "checker.h"
-#include 
+#include 
 #include 
 #include 
 #include 
@@ -14,7 +14,7 @@ void TBloomFilterChecker::DoSerializeToProtoImpl(NKikimrSSA::TProgram::TOlapInde
 
 bool TBloomFilterChecker::DoCheckImpl(const std::vector& blobs) const {
     for (auto&& blob : blobs) {
-        auto rb = NArrow::TStatusValidator::GetValid(NArrow::NSerialization::TFullDataDeserializer().Deserialize(blob));
+        auto rb = NArrow::TStatusValidator::GetValid(NArrow::NSerialization::TSerializerContainer::GetDefaultSerializer()->Deserialize(blob));
         AFL_VERIFY(rb);
         AFL_VERIFY(rb->schema()->num_fields() == 1);
         AFL_VERIFY(rb->schema()->field(0)->type()->id() == arrow::Type::BOOL);
diff --git a/ydb/core/tx/columnshard/engines/scheme/snapshot_scheme.cpp b/ydb/core/tx/columnshard/engines/scheme/snapshot_scheme.cpp
index 19f9c39cc438..dd1148e52cf5 100644
--- a/ydb/core/tx/columnshard/engines/scheme/snapshot_scheme.cpp
+++ b/ydb/core/tx/columnshard/engines/scheme/snapshot_scheme.cpp
@@ -1,53 +1 @@
 #include "snapshot_scheme.h"
-
-namespace NKikimr::NOlap {
-
-TSnapshotSchema::TSnapshotSchema(TIndexInfo&& indexInfo, const TSnapshot& snapshot)
-    : IndexInfo(std::move(indexInfo))
-    , Schema(IndexInfo.ArrowSchemaWithSpecials())
-    , Snapshot(snapshot)
-{
-}
-
-TColumnSaver TSnapshotSchema::GetColumnSaver(const ui32 columnId, const TSaverContext& context) const {
-    return IndexInfo.GetColumnSaver(columnId, context);
-}
-
-std::shared_ptr TSnapshotSchema::GetColumnLoaderOptional(const ui32 columnId) const {
-    return IndexInfo.GetColumnLoaderOptional(columnId);
-}
-
-std::optional TSnapshotSchema::GetColumnIdOptional(const std::string& columnName) const {
-    return IndexInfo.GetColumnIdOptional(columnName);
-}
-
-int TSnapshotSchema::GetFieldIndex(const ui32 columnId) const {
-    const TString& columnName = IndexInfo.GetColumnName(columnId, false);
-    if (!columnName) {
-        return -1;
-    }
-    std::string name(columnName.data(), columnName.size());
-    return Schema->GetFieldIndex(name);
-}
-
-const std::shared_ptr& TSnapshotSchema::GetSchema() const {
-    return Schema;
-}
-
-const TIndexInfo& TSnapshotSchema::GetIndexInfo() const {
-    return IndexInfo;
-}
-
-const TSnapshot& TSnapshotSchema::GetSnapshot() const {
-    return Snapshot;
-}
-
-ui32 TSnapshotSchema::GetColumnsCount() const {
-    return Schema->num_fields();
-}
-
-ui64 TSnapshotSchema::GetVersion() const {
-    return IndexInfo.GetVersion();
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/scheme/snapshot_scheme.h b/ydb/core/tx/columnshard/engines/scheme/snapshot_scheme.h
index 1104e507729b..b94ede6cb16e 100644
--- a/ydb/core/tx/columnshard/engines/scheme/snapshot_scheme.h
+++ b/ydb/core/tx/columnshard/engines/scheme/snapshot_scheme.h
@@ -1,38 +1,2 @@
 #pragma once
-
-#include "abstract_scheme.h"
-
-#include 
-
-namespace NKikimr::NOlap {
-
-class TSnapshotSchema: public ISnapshotSchema {
-private:
-    TIndexInfo IndexInfo;
-    std::shared_ptr Schema;
-    TSnapshot Snapshot;
-protected:
-    virtual TString DoDebugString() const override {
-        return TStringBuilder() << "("
-            "schema=" << Schema->ToString() << ";" <<
-            "snapshot=" << Snapshot.DebugString() << ";" <<
-            "index_info=" << IndexInfo.DebugString() << ";" <<
-            ")"
-            ;
-    }
-public:
-    TSnapshotSchema(TIndexInfo&& indexInfo, const TSnapshot& snapshot);
-
-    TColumnSaver GetColumnSaver(const ui32 columnId, const TSaverContext& context) const override;
-    std::shared_ptr GetColumnLoaderOptional(const ui32 columnId) const override;
-    std::optional GetColumnIdOptional(const std::string& columnName) const override;
-    int GetFieldIndex(const ui32 columnId) const override;
-
-    const std::shared_ptr& GetSchema() const override;
-    const TIndexInfo& GetIndexInfo() const override;
-    const TSnapshot& GetSnapshot() const override;
-    ui32 GetColumnsCount() const override;
-    ui64 GetVersion() const override;
-};
-
-}
+#include "versions/snapshot_scheme.h"
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/common.cpp b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/common.cpp
new file mode 100644
index 000000000000..e7960e66809e
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/common.cpp
@@ -0,0 +1,40 @@
+#include "common.h"
+#include 
+
+namespace NKikimr::NOlap::NStatistics {
+
+TIdentifier::TIdentifier(const EType type, const std::vector& entities)
+    : Type(type)
+    , EntityIds(entities)
+{
+    AFL_VERIFY(EntityIds.size());
+}
+
+bool TIdentifier::operator<(const TIdentifier& item) const {
+    if (Type != item.Type) {
+        return (ui32)Type < (ui32)item.Type;
+    }
+    for (ui32 i = 0; i < std::min(EntityIds.size(), item.EntityIds.size()); ++i) {
+        if (EntityIds[i] < item.EntityIds[i]) {
+            return true;
+        }
+    }
+    return false;
+}
+
+bool TIdentifier::operator==(const TIdentifier& item) const {
+    if (Type != item.Type) {
+        return false;
+    }
+    if (EntityIds.size() != item.EntityIds.size()) {
+        return false;
+    }
+    for (ui32 i = 0; i < EntityIds.size(); ++i) {
+        if (EntityIds[i] != item.EntityIds[i]) {
+            return false;
+        }
+    }
+    return true;
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/common.h b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/common.h
new file mode 100644
index 000000000000..abfd7159a97b
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/common.h
@@ -0,0 +1,24 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NStatistics {
+enum class EType {
+    Undefined /* "undefined" */,
+    Max /* "max" */,
+    Variability /* "variability" */
+};
+
+class TIdentifier {
+private:
+    YDB_READONLY(EType, Type, EType::Undefined);
+    YDB_READONLY_DEF(std::vector, EntityIds);
+public:
+    TIdentifier(const EType type, const std::vector& entities);
+
+    bool operator<(const TIdentifier& item) const;
+    bool operator==(const TIdentifier& item) const;
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/constructor.cpp b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/constructor.cpp
new file mode 100644
index 000000000000..5713317c7d21
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/constructor.cpp
@@ -0,0 +1,5 @@
+#include "constructor.h"
+
+namespace NKikimr::NOlap::NStatistics {
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/constructor.h b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/constructor.h
new file mode 100644
index 000000000000..8948e93d482c
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/constructor.h
@@ -0,0 +1,73 @@
+#pragma once
+#include "common.h"
+#include "portion_storage.h"
+#include "operator.h"
+
+#include 
+
+namespace NKikimr::NSchemeShard {
+class TOlapSchema;
+}
+
+namespace NKikimrColumnShardStatisticsProto {
+class TOperatorContainer;
+}
+
+namespace NKikimr::NOlap::NStatistics {
+
+class IConstructor {
+private:
+    YDB_READONLY(EType, Type, EType::Undefined);
+    IConstructor() = default;
+protected:
+    virtual TConclusion> DoCreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const = 0;
+    virtual bool DoDeserializeFromProto(const NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) = 0;
+    virtual void DoSerializeToProto(NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) const = 0;
+    virtual TConclusionStatus DoDeserializeFromJson(const NJson::TJsonValue& jsonData) = 0;
+public:
+    using TProto = NKikimrColumnShardStatisticsProto::TConstructorContainer;
+    using TFactory = NObjectFactory::TObjectFactory;
+
+    virtual ~IConstructor() = default;
+
+    IConstructor(const EType type)
+        :Type(type) {
+
+    }
+
+    TConclusionStatus DeserializeFromJson(const NJson::TJsonValue& jsonData) {
+        return DoDeserializeFromJson(jsonData);
+    }
+
+    TConclusion CreateOperator(const TString& name, const NSchemeShard::TOlapSchema& currentSchema) const {
+        auto result = DoCreateOperator(currentSchema);
+        if (!result) {
+            return result.GetError();
+        }
+        return TOperatorContainer(name, result.DetachResult());
+    }
+
+    TString GetClassName() const {
+        return ::ToString(Type);
+    }
+
+    bool DeserializeFromProto(const NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) {
+        if (!TryFromString(proto.GetClassName(), Type)) {
+            return false;
+        }
+        return DoDeserializeFromProto(proto);
+    }
+
+    void SerializeToProto(NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) const {
+        return DoSerializeToProto(proto);
+    }
+};
+
+class TConstructorContainer: public NBackgroundTasks::TInterfaceProtoContainer {
+private:
+    using TBase = NBackgroundTasks::TInterfaceProtoContainer;
+public:
+    using TBase::TBase;
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/operator.cpp b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/operator.cpp
new file mode 100644
index 000000000000..357d8bbd3934
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/operator.cpp
@@ -0,0 +1,12 @@
+#include "operator.h"
+
+namespace NKikimr::NOlap::NStatistics {
+
+bool IOperator::DeserializeFromProto(const NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) {
+    if (!TryFromString(proto.GetClassName(), Type)) {
+        return false;
+    }
+    return DoDeserializeFromProto(proto);
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/operator.h b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/operator.h
new file mode 100644
index 000000000000..29f6f6744ac4
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/operator.h
@@ -0,0 +1,124 @@
+#pragma once
+#include "common.h"
+#include "portion_storage.h"
+
+#include 
+#include 
+
+#include 
+#include 
+
+#include 
+
+namespace NKikimr::NOlap {
+class IPortionDataChunk;
+}
+
+namespace NKikimr::NOlap::NStatistics {
+
+class IOperator {
+private:
+    YDB_READONLY(EType, Type, EType::Undefined);
+    IOperator() = default;
+protected:
+    virtual void DoFillStatisticsData(const THashMap>>& data, TPortionStorage& portionStats, const IIndexInfo& index) const = 0;
+    virtual void DoShiftCursor(TPortionStorageCursor& cursor) const = 0;
+    virtual bool DoDeserializeFromProto(const NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) = 0;
+    virtual void DoSerializeToProto(NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) const = 0;
+    virtual void DoCopyData(const TPortionStorageCursor& cursor, const TPortionStorage& portionStatsFrom, TPortionStorage& portionStatsTo) const = 0;
+public:
+    using TProto = NKikimrColumnShardStatisticsProto::TOperatorContainer;
+    using TFactory = NObjectFactory::TObjectFactory;
+
+    virtual ~IOperator() = default;
+
+    virtual std::vector GetEntityIds() const = 0;
+
+    IOperator(const EType type)
+        :Type(type) {
+
+    }
+
+    void ShiftCursor(TPortionStorageCursor& cursor) const {
+        DoShiftCursor(cursor);
+    }
+
+    void CopyData(const TPortionStorageCursor& cursor, const TPortionStorage& portionStatsFrom, TPortionStorage& portionStatsTo) const {
+        return DoCopyData(cursor, portionStatsFrom, portionStatsTo);
+    }
+
+    void FillStatisticsData(const THashMap>>& data, TPortionStorage& portionStats, const IIndexInfo& index) const {
+        DoFillStatisticsData(data, portionStats, index);
+    }
+
+    TString GetClassName() const {
+        return ::ToString(Type);
+    }
+
+    TIdentifier GetIdentifier() const {
+        return TIdentifier(Type, GetEntityIds());
+    }
+
+    bool DeserializeFromProto(const NKikimrColumnShardStatisticsProto::TOperatorContainer& proto);
+
+    void SerializeToProto(NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) const {
+        return DoSerializeToProto(proto);
+    }
+};
+
+class TOperatorContainer: public NBackgroundTasks::TInterfaceProtoContainer {
+private:
+    YDB_READONLY_DEF(TString, Name);
+    std::optional Cursor;
+    using TBase = NBackgroundTasks::TInterfaceProtoContainer;
+public:
+    TOperatorContainer() = default;
+
+    TOperatorContainer(const TString& name, const std::shared_ptr& object)
+        : TBase(object)
+        , Name(name)
+    {
+        AFL_VERIFY(Name);
+    }
+
+    const TPortionStorageCursor& GetCursorVerified() const {
+        AFL_VERIFY(Cursor);
+        return *Cursor;
+    }
+
+    void SetCursor(const TPortionStorageCursor& cursor) {
+        AFL_VERIFY(!Cursor);
+        Cursor = cursor;
+    }
+
+    std::shared_ptr GetScalarVerified(const TPortionStorage& storage) {
+        AFL_VERIFY(!!Cursor);
+        return storage.GetScalarVerified(*Cursor);
+    }
+
+    NKikimrColumnShardStatisticsProto::TOperatorContainer SerializeToProto() const {
+        NKikimrColumnShardStatisticsProto::TOperatorContainer result = TBase::SerializeToProto();
+        result.SetName(Name);
+        AFL_VERIFY(Name);
+        return result;
+    }
+
+    void SerializeToProto(NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) const {
+        TBase::SerializeToProto(proto);
+        proto.SetName(Name);
+        AFL_VERIFY(Name);
+    }
+
+    bool DeserializeFromProto(const NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) {
+        Name = proto.GetName();
+        if (!Name) {
+            return false;
+        }
+        if (!TBase::DeserializeFromProto(proto)) {
+            return false;
+        }
+        return true;
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/portion_storage.cpp b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/portion_storage.cpp
new file mode 100644
index 000000000000..f0d67ecf7d42
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/portion_storage.cpp
@@ -0,0 +1,119 @@
+#include "portion_storage.h"
+#include 
+#include 
+
+namespace NKikimr::NOlap::NStatistics {
+
+NKikimrColumnShardStatisticsProto::TScalar TPortionStorage::ScalarToProto(const arrow::Scalar& scalar) {
+    NKikimrColumnShardStatisticsProto::TScalar result;
+    switch (scalar.type->id()) {
+        case arrow::Type::BOOL:
+            result.SetBool(static_cast(scalar).value);
+            break;
+        case arrow::Type::UINT8:
+            result.SetUint8(static_cast(scalar).value);
+            break;
+        case arrow::Type::UINT16:
+            result.SetUint16(static_cast(scalar).value);
+            break;
+        case arrow::Type::UINT32:
+            result.SetUint32(static_cast(scalar).value);
+            break;
+        case arrow::Type::UINT64:
+            result.SetUint64(static_cast(scalar).value);
+            break;
+        case arrow::Type::INT8:
+            result.SetInt8(static_cast(scalar).value);
+            break;
+        case arrow::Type::INT16:
+            result.SetInt16(static_cast(scalar).value);
+            break;
+        case arrow::Type::INT32:
+            result.SetInt32(static_cast(scalar).value);
+            break;
+        case arrow::Type::INT64:
+            result.SetInt64(static_cast(scalar).value);
+            break;
+        case arrow::Type::DOUBLE:
+            result.SetDouble(static_cast(scalar).value);
+            break;
+        case arrow::Type::FLOAT:
+            result.SetFloat(static_cast(scalar).value);
+            break;
+        case arrow::Type::TIMESTAMP:
+        {
+            auto* ts = result.MutableTimestamp();
+            ts->SetValue(static_cast(scalar).value);
+            ts->SetUnit(static_cast(*scalar.type).unit());
+            break;
+        }
+        default:
+            AFL_VERIFY(false)("problem", "incorrect type for statistics usage")("type", scalar.type->ToString());
+    }
+    return result;
+}
+
+std::shared_ptr TPortionStorage::ProtoToScalar(const NKikimrColumnShardStatisticsProto::TScalar& proto) {
+    if (proto.HasBool()) {
+        return std::make_shared(proto.GetBool());
+    } else if (proto.HasUint8()) {
+        return std::make_shared(proto.GetUint8());
+    } else if (proto.HasUint16()) {
+        return std::make_shared(proto.GetUint16());
+    } else if (proto.HasUint32()) {
+        return std::make_shared(proto.GetUint32());
+    } else if (proto.HasUint64()) {
+        return std::make_shared(proto.GetUint64());
+    } else if (proto.HasInt8()) {
+        return std::make_shared(proto.GetInt8());
+    } else if (proto.HasInt16()) {
+        return std::make_shared(proto.GetInt16());
+    } else if (proto.HasInt32()) {
+        return std::make_shared(proto.GetInt32());
+    } else if (proto.HasInt64()) {
+        return std::make_shared(proto.GetInt64());
+    } else if (proto.HasDouble()) {
+        return std::make_shared(proto.GetDouble());
+    } else if (proto.HasFloat()) {
+        return std::make_shared(proto.GetFloat());
+    } else if (proto.HasTimestamp()) {
+        arrow::TimeUnit::type unit = arrow::TimeUnit::type(proto.GetTimestamp().GetUnit());
+        return std::make_shared(proto.GetTimestamp().GetValue(), std::make_shared(unit));
+    }
+    AFL_VERIFY(false)("problem", "incorrect statistics proto")("proto", proto.DebugString());
+    return nullptr;
+}
+
+std::shared_ptr TPortionStorage::GetScalarVerified(const TPortionStorageCursor& cursor) const {
+    AFL_VERIFY(cursor.GetScalarsPosition() < Data.size());
+    AFL_VERIFY(Data[cursor.GetScalarsPosition()]);
+    return Data[cursor.GetScalarsPosition()];
+}
+
+void TPortionStorage::AddScalar(const std::shared_ptr& scalar) {
+    const auto type = scalar->type->id();
+    AFL_VERIFY(type == arrow::Type::BOOL ||
+        type == arrow::Type::UINT8 || type == arrow::Type::UINT16 || type == arrow::Type::UINT32 || type == arrow::Type::UINT64 ||
+        type == arrow::Type::INT8 || type == arrow::Type::INT16 || type == arrow::Type::INT32 || type == arrow::Type::INT64 ||
+        type == arrow::Type::DOUBLE || type == arrow::Type::TIMESTAMP || type == arrow::Type::FLOAT)
+        ("problem", "incorrect_stat_type")("incoming", scalar->type->ToString());
+    Data.emplace_back(scalar);
+}
+
+NKikimrColumnShardStatisticsProto::TPortionStorage TPortionStorage::SerializeToProto() const {
+    NKikimrColumnShardStatisticsProto::TPortionStorage result;
+    for (auto&& i : Data) {
+        AFL_VERIFY(i);
+        *result.AddScalars() = ScalarToProto(*i);
+    }
+    return result;
+}
+
+NKikimr::TConclusionStatus TPortionStorage::DeserializeFromProto(const NKikimrColumnShardStatisticsProto::TPortionStorage& proto) {
+    for (auto&& i : proto.GetScalars()) {
+        Data.emplace_back(ProtoToScalar(i));
+    }
+    return TConclusionStatus::Success();
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/portion_storage.h b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/portion_storage.h
new file mode 100644
index 000000000000..a3e4b6bcb0dd
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/portion_storage.h
@@ -0,0 +1,53 @@
+#pragma once
+
+#include 
+#include 
+#include 
+
+#include 
+
+namespace NKikimrColumnShardStatisticsProto {
+class TScalar;
+class TPortionStorage;
+}
+
+namespace NKikimr::NOlap::NStatistics {
+class TPortionStorageCursor {
+private:
+    YDB_READONLY(ui32, ScalarsPosition, 0);
+public:
+    TPortionStorageCursor() = default;
+
+    void AddScalarsPosition(const ui32 shift) {
+        ScalarsPosition += shift;
+    }
+};
+
+class TPortionStorage {
+private:
+    YDB_READONLY_DEF(std::vector>, Data);
+    static NKikimrColumnShardStatisticsProto::TScalar ScalarToProto(const arrow::Scalar& value);
+    static std::shared_ptr ProtoToScalar(const NKikimrColumnShardStatisticsProto::TScalar& proto);
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardStatisticsProto::TPortionStorage& proto);
+
+public:
+    bool IsEmpty() const {
+        return Data.empty();
+    }
+
+    std::shared_ptr GetScalarVerified(const TPortionStorageCursor& cursor) const;
+
+    void AddScalar(const std::shared_ptr& scalar);
+
+    NKikimrColumnShardStatisticsProto::TPortionStorage SerializeToProto() const;
+
+    static TConclusion BuildFromProto(const NKikimrColumnShardStatisticsProto::TPortionStorage& proto) {
+        TPortionStorage result;
+        auto parse = result.DeserializeFromProto(proto);
+        if (!parse) {
+            return parse;
+        }
+        return result;
+    }
+};
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/ya.make b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/ya.make
new file mode 100644
index 000000000000..f63520354edf
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/abstract/ya.make
@@ -0,0 +1,20 @@
+LIBRARY()
+
+SRCS(
+    portion_storage.cpp
+    constructor.cpp
+    operator.cpp
+    common.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/scheme/statistics/protos
+    ydb/core/tx/columnshard/engines/scheme/abstract
+    contrib/libs/apache/arrow
+    ydb/library/actors/core
+    ydb/library/conclusion
+)
+
+GENERATE_ENUM_SERIALIZATION(common.h)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/max/constructor.cpp b/ydb/core/tx/columnshard/engines/scheme/statistics/max/constructor.cpp
new file mode 100644
index 000000000000..a12a27812350
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/max/constructor.cpp
@@ -0,0 +1,45 @@
+#include "constructor.h"
+#include "operator.h"
+
+namespace NKikimr::NOlap::NStatistics::NMax {
+
+NKikimr::TConclusion> TConstructor::DoCreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const {
+    auto column = currentSchema.GetColumns().GetByName(ColumnName);
+    if (!TOperator::IsAvailableType(column->GetType())) {
+        return TConclusionStatus::Fail("incorrect type for stat calculation");
+    }
+    return std::make_shared(column->GetId());
+}
+
+bool TConstructor::DoDeserializeFromProto(const NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) {
+    if (!proto.HasMax()) {
+        return false;
+    }
+    ColumnName = proto.GetMax().GetColumnName();
+    if (!ColumnName) {
+        return false;
+    }
+    return true;
+}
+
+void TConstructor::DoSerializeToProto(NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) const {
+    AFL_VERIFY(!!ColumnName);
+    proto.MutableMax()->SetColumnName(ColumnName);
+}
+
+NKikimr::TConclusionStatus TConstructor::DoDeserializeFromJson(const NJson::TJsonValue& jsonData) {
+    if (!jsonData.Has("column_name")) {
+        return TConclusionStatus::Fail("no column_name field in json description");
+    }
+    TString columnNameLocal;
+    if (!jsonData["column_name"].GetString(&columnNameLocal)) {
+        return TConclusionStatus::Fail("incorrect column_name field in json description (no string)");
+    }
+    if (!columnNameLocal) {
+        return TConclusionStatus::Fail("empty column_name field in json description");
+    }
+    ColumnName = columnNameLocal;
+    return TConclusionStatus::Success();
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/max/constructor.h b/ydb/core/tx/columnshard/engines/scheme/statistics/max/constructor.h
new file mode 100644
index 000000000000..695096a63d2f
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/max/constructor.h
@@ -0,0 +1,33 @@
+#pragma once
+#include 
+#include 
+
+#include 
+
+namespace NKikimr::NOlap::NStatistics::NMax {
+
+class TConstructor: public IConstructor {
+private:
+    using TBase = IConstructor;
+    static inline const auto Registrator = TFactory::TRegistrator(::ToString(EType::Max));
+    YDB_READONLY(TString, ColumnName, 0);
+protected:
+    virtual TConclusion> DoCreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const override;
+    virtual bool DoDeserializeFromProto(const NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) override;
+    virtual void DoSerializeToProto(NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) const override;
+    virtual TConclusionStatus DoDeserializeFromJson(const NJson::TJsonValue& jsonData) override;
+public:
+    TConstructor(const TString& columnName)
+        : TBase(EType::Max)
+        , ColumnName(columnName)
+    {
+
+    }
+
+    TConstructor()
+        :TBase(EType::Max) {
+
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/max/operator.cpp b/ydb/core/tx/columnshard/engines/scheme/statistics/max/operator.cpp
new file mode 100644
index 000000000000..8e2c179e077b
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/max/operator.cpp
@@ -0,0 +1,41 @@
+#include "operator.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NStatistics::NMax {
+
+void TOperator::DoFillStatisticsData(const THashMap>>& data, TPortionStorage& portionStats, const IIndexInfo& index) const {
+    auto loader = index.GetColumnLoaderVerified(EntityId);
+    auto it = data.find(EntityId);
+    AFL_VERIFY(it != data.end());
+    std::shared_ptr result;
+    for (auto&& i : it->second) {
+        auto rb = NArrow::TStatusValidator::GetValid(loader->Apply(i->GetData()));
+        AFL_VERIFY(rb->num_columns() == 1);
+        auto res = NArrow::FindMinMaxPosition(rb->column(0));
+        auto currentScalarMax = NArrow::TStatusValidator::GetValid(rb->column(0)->GetScalar(res.second));
+        if (!result || NArrow::ScalarCompare(result, currentScalarMax) < 0) {
+            result = currentScalarMax;
+        }
+    }
+    portionStats.AddScalar(result);
+}
+
+bool TOperator::DoDeserializeFromProto(const NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) {
+    if (!proto.HasMax()) {
+        return false;
+    }
+    EntityId = proto.GetMax().GetEntityId();
+    if (!EntityId) {
+        return false;
+    }
+    return true;
+}
+
+void TOperator::DoSerializeToProto(NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) const {
+    AFL_VERIFY(EntityId);
+    proto.MutableMax()->SetEntityId(EntityId);
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/max/operator.h b/ydb/core/tx/columnshard/engines/scheme/statistics/max/operator.h
new file mode 100644
index 000000000000..50e0a76599eb
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/max/operator.h
@@ -0,0 +1,64 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NOlap::NStatistics::NMax {
+
+class TOperator: public IOperator {
+private:
+    using TBase = IOperator;
+    ui32 EntityId = 0;
+    static inline auto Registrator = TFactory::TRegistrator(::ToString(EType::Max));
+protected:
+    virtual void DoCopyData(const TPortionStorageCursor& cursor, const TPortionStorage& portionStatsFrom, TPortionStorage& portionStatsTo) const override {
+        std::shared_ptr scalar = portionStatsFrom.GetScalarVerified(cursor);
+        portionStatsTo.AddScalar(scalar);
+    }
+
+    virtual void DoFillStatisticsData(const THashMap>>& data, TPortionStorage& portionStats, const IIndexInfo& index) const override;
+    virtual void DoShiftCursor(TPortionStorageCursor& cursor) const override {
+        cursor.AddScalarsPosition(1);
+    }
+    virtual std::vector GetEntityIds() const override {
+        return {EntityId};
+    }
+    virtual bool DoDeserializeFromProto(const NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) override;
+    virtual void DoSerializeToProto(NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) const override;
+public:
+
+    static bool IsAvailableType(const NScheme::TTypeInfo type) {
+        switch (type.GetTypeId()) {
+            case NScheme::NTypeIds::Int8:
+            case NScheme::NTypeIds::Uint8:
+            case NScheme::NTypeIds::Int16:
+            case NScheme::NTypeIds::Uint16:
+            case NScheme::NTypeIds::Int32:
+            case NScheme::NTypeIds::Uint32:
+            case NScheme::NTypeIds::Int64:
+            case NScheme::NTypeIds::Uint64:
+            case NScheme::NTypeIds::Timestamp:
+            case NScheme::NTypeIds::Double:
+            case NScheme::NTypeIds::Float:
+            case NScheme::NTypeIds::Datetime:
+            case NScheme::NTypeIds::Date:
+                return true;
+            default:
+                break;
+        }
+        return false;
+    }
+
+    TOperator()
+        : TBase(EType::Max)
+    {
+
+    }
+
+    TOperator(const ui32 entityId)
+        : TBase(EType::Max)
+        , EntityId(entityId) {
+
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/max/ya.make b/ydb/core/tx/columnshard/engines/scheme/statistics/max/ya.make
new file mode 100644
index 000000000000..631c95eeb3d8
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/max/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+    GLOBAL constructor.cpp
+    GLOBAL operator.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/scheme/statistics/abstract
+    ydb/core/tx/columnshard/engines/scheme/abstract
+    ydb/core/tx/columnshard/splitter/abstract
+    ydb/core/formats/arrow
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/protos/data.proto b/ydb/core/tx/columnshard/engines/scheme/statistics/protos/data.proto
new file mode 100644
index 000000000000..c99f485d399d
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/protos/data.proto
@@ -0,0 +1,66 @@
+package NKikimrColumnShardStatisticsProto;
+
+message TScalar {
+    message TTimestamp {
+        optional uint64 Value = 1;
+        optional uint32 Unit = 2;
+    }
+    oneof Value {
+        bool Bool = 1;
+        uint32 Uint8 = 2;
+        uint32 Uint16 = 3;
+        uint32 Uint32 = 4;
+        uint64 Uint64 = 5;
+
+        int32 Int8 = 6;
+        int32 Int16 = 7;
+        int32 Int32 = 8;
+        int64 Int64 = 9;
+
+        double Double = 10;
+
+        TTimestamp Timestamp = 11;
+
+        float Float = 12;
+    }
+}
+
+message TPortionStorage {
+    repeated TScalar Scalars = 1;
+}
+
+message TMaxConstructor {
+    optional string ColumnName = 3;
+}
+
+message TVariabilityConstructor {
+    optional string ColumnName = 3;
+}
+
+message TConstructorContainer {
+    optional string Name = 1;
+
+    optional string ClassName = 40;
+    oneof Implementation {
+        TMaxConstructor Max = 41;
+        TVariabilityConstructor Variability = 42;
+    }
+}
+
+message TMaxOperator {
+    optional uint32 EntityId = 1;
+}
+
+message TVariabilityOperator {
+    optional uint32 EntityId = 1;
+}
+
+message TOperatorContainer {
+    optional string Name = 1;
+
+    optional string ClassName = 40;
+    oneof Implementation {
+        TMaxOperator Max = 41;
+        TVariabilityOperator Variability = 42;
+    }
+}
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/protos/ya.make b/ydb/core/tx/columnshard/engines/scheme/statistics/protos/ya.make
new file mode 100644
index 000000000000..f72b3b7cf620
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/protos/ya.make
@@ -0,0 +1,11 @@
+PROTO_LIBRARY()
+
+SRCS(
+    data.proto
+)
+
+PEERDIR(
+
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/variability/constructor.cpp b/ydb/core/tx/columnshard/engines/scheme/statistics/variability/constructor.cpp
new file mode 100644
index 000000000000..25840673fcb5
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/variability/constructor.cpp
@@ -0,0 +1,45 @@
+#include "constructor.h"
+#include "operator.h"
+
+namespace NKikimr::NOlap::NStatistics::NVariability {
+
+NKikimr::TConclusion> TConstructor::DoCreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const {
+    auto column = currentSchema.GetColumns().GetByName(ColumnName);
+    if (!TOperator::IsAvailableType(column->GetType())) {
+        return TConclusionStatus::Fail("incorrect type for stat calculation");
+    }
+    return std::make_shared(column->GetId());
+}
+
+bool TConstructor::DoDeserializeFromProto(const NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) {
+    if (!proto.HasVariability()) {
+        return false;
+    }
+    ColumnName = proto.GetVariability().GetColumnName();
+    if (!ColumnName) {
+        return false;
+    }
+    return true;
+}
+
+void TConstructor::DoSerializeToProto(NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) const {
+    AFL_VERIFY(!!ColumnName);
+    proto.MutableVariability()->SetColumnName(ColumnName);
+}
+
+NKikimr::TConclusionStatus TConstructor::DoDeserializeFromJson(const NJson::TJsonValue& jsonData) {
+    if (!jsonData.Has("column_name")) {
+        return TConclusionStatus::Fail("no column_name field in json description");
+    }
+    TString columnNameLocal;
+    if (!jsonData["column_name"].GetString(&columnNameLocal)) {
+        return TConclusionStatus::Fail("incorrect column_name field in json description (no string)");
+    }
+    if (!columnNameLocal) {
+        return TConclusionStatus::Fail("empty column_name field in json description");
+    }
+    ColumnName = columnNameLocal;
+    return TConclusionStatus::Success();
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/variability/constructor.h b/ydb/core/tx/columnshard/engines/scheme/statistics/variability/constructor.h
new file mode 100644
index 000000000000..809c9043faac
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/variability/constructor.h
@@ -0,0 +1,33 @@
+#pragma once
+#include 
+#include 
+
+#include 
+
+namespace NKikimr::NOlap::NStatistics::NVariability {
+
+class TConstructor: public IConstructor {
+private:
+    using TBase = IConstructor;
+    static inline const auto Registrator = TFactory::TRegistrator(::ToString(EType::Variability));
+    YDB_READONLY(TString, ColumnName, 0);
+protected:
+    virtual TConclusion> DoCreateOperator(const NSchemeShard::TOlapSchema& currentSchema) const override;
+    virtual bool DoDeserializeFromProto(const NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) override;
+    virtual void DoSerializeToProto(NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) const override;
+    virtual TConclusionStatus DoDeserializeFromJson(const NJson::TJsonValue& jsonData) override;
+public:
+    TConstructor(const TString& columnName)
+        : TBase(EType::Max)
+        , ColumnName(columnName)
+    {
+
+    }
+
+    TConstructor()
+        :TBase(EType::Variability) {
+
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/variability/operator.cpp b/ydb/core/tx/columnshard/engines/scheme/statistics/variability/operator.cpp
new file mode 100644
index 000000000000..d43d617171bb
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/variability/operator.cpp
@@ -0,0 +1,164 @@
+#include "operator.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NStatistics::NVariability {
+
+class IValuesContainer {
+protected:
+    std::optional DataType;
+    ui32 DifferentCount = 0;
+
+    virtual void DoAddArray(const std::shared_ptr& array) = 0;
+public:
+    virtual ~IValuesContainer() = default;
+    ui32 GetDifferentCount() const {
+        return DifferentCount;
+    }
+
+    void AddArray(const std::shared_ptr& array) {
+        if (!DataType) {
+            DataType = array->type_id();
+        } else {
+            AFL_VERIFY(DataType == array->type_id())("base", (ui32)*DataType)("to", (ui32)array->type_id());
+        }
+        return DoAddArray(array);
+    }
+};
+
+template 
+class TCTypeValuesContainer: public IValuesContainer {
+private:
+    using TWrap = TArrowElement;
+    using TArray = typename arrow::TypeTraits::ArrayType;
+    using TCType = typename TWrap::T::c_type;
+    using TCContainer = THashSet;
+
+    TCContainer ElementsStorage;
+protected:
+    virtual void DoAddArray(const std::shared_ptr& array) override {
+        NArrow::SwitchType(array->type_id(), [&](const auto& type) {
+            using TWrap = std::decay_t;
+            if constexpr (std::is_same_v) {
+                const TArray& arrTyped = static_cast(*array);
+                for (ui32 i = 0; i < array->length(); ++i) {
+                    if constexpr (arrow::has_c_type()) {
+                        if (ElementsStorage.emplace(arrTyped.Value(i)).second) {
+                            ++DifferentCount;
+                        }
+                        continue;
+                    }
+                    AFL_VERIFY(false);
+                }
+                return true;
+            }
+            AFL_VERIFY(false);
+            return false;
+        });
+    }
+};
+
+template 
+class TStringValuesContainer: public IValuesContainer {
+private:
+    using TWrap = TArrowElement;
+    using TArray = typename arrow::TypeTraits::ArrayType;
+    using TCType = TString;
+    using TCContainer = THashSet;
+
+    TCContainer ElementsStorage;
+protected:
+    virtual void DoAddArray(const std::shared_ptr& array) override {
+        NArrow::SwitchType(array->type_id(), [&](const auto& type) {
+            using TWrap = std::decay_t;
+            if constexpr (std::is_same_v) {
+                const TArray& arrTyped = static_cast(*array);
+                for (ui32 i = 0; i < array->length(); ++i) {
+                    if constexpr (arrow::has_string_view()) {
+                        auto value = arrTyped.GetView(i);
+                        if (ElementsStorage.emplace(value.data(), value.size()).second) {
+                            ++DifferentCount;
+                        }
+                        continue;
+                    }
+                    AFL_VERIFY(false);
+                }
+                return true;
+            }
+            AFL_VERIFY(false);
+            return false;
+        });
+    }
+};
+
+class TDifferentElementsAggregator {
+private:
+    std::shared_ptr Container;
+public:
+    TDifferentElementsAggregator() = default;
+
+    bool HasData() const {
+        return !!Container;
+    }
+
+    ui32 GetDifferentCount() const {
+        return Container ? Container->GetDifferentCount() : 0;
+    }
+
+    void AddArray(const std::shared_ptr& array) {
+        if (!Container) {
+            NArrow::SwitchType(array->type_id(), [&](const auto& type) {
+                using TWrap = std::decay_t;
+                if (!Container) {
+                    if constexpr (arrow::has_c_type()) {
+                        Container = std::make_shared>();
+                        Container->AddArray(array);
+                        return true;
+                    }
+                    if constexpr (arrow::has_string_view()) {
+                        Container = std::make_shared>();
+                        Container->AddArray(array);
+                        return true;
+                    }
+                    AFL_VERIFY(false);
+                }
+                return false;
+            });
+        }
+        Container->AddArray(array);
+    }
+};
+
+void TOperator::DoFillStatisticsData(const THashMap>>& data, TPortionStorage& portionStats, const IIndexInfo& index) const {
+    auto it = data.find(EntityId);
+    AFL_VERIFY(it != data.end());
+    auto loader = index.GetColumnLoaderVerified(EntityId);
+    std::shared_ptr result;
+    TDifferentElementsAggregator aggregator;
+    for (auto&& i : it->second) {
+        auto rb = NArrow::TStatusValidator::GetValid(loader->Apply(i->GetData()));
+        AFL_VERIFY(rb->num_columns() == 1);
+        aggregator.AddArray(rb->column(0));
+    }
+    AFL_VERIFY(aggregator.HasData());
+    portionStats.AddScalar(std::make_shared(aggregator.GetDifferentCount()));
+}
+
+bool TOperator::DoDeserializeFromProto(const NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) {
+    if (!proto.HasVariability()) {
+        return false;
+    }
+    EntityId = proto.GetVariability().GetEntityId();
+    if (!EntityId) {
+        return false;
+    }
+    return true;
+}
+
+void TOperator::DoSerializeToProto(NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) const {
+    AFL_VERIFY(EntityId);
+    proto.MutableVariability()->SetEntityId(EntityId);
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/variability/operator.h b/ydb/core/tx/columnshard/engines/scheme/statistics/variability/operator.h
new file mode 100644
index 000000000000..ac0fdd110030
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/variability/operator.h
@@ -0,0 +1,67 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NOlap::NStatistics::NVariability {
+
+class TOperator: public IOperator {
+private:
+    using TBase = IOperator;
+    ui32 EntityId = 0;
+    static inline auto Registrator = TFactory::TRegistrator(::ToString(EType::Variability));
+protected:
+    virtual void DoCopyData(const TPortionStorageCursor& cursor, const TPortionStorage& portionStatsFrom, TPortionStorage& portionStatsTo) const override {
+        std::shared_ptr scalar = portionStatsFrom.GetScalarVerified(cursor);
+        portionStatsTo.AddScalar(scalar);
+    }
+
+    virtual void DoFillStatisticsData(const THashMap>>& data, TPortionStorage& portionStats, const IIndexInfo& index) const override;
+    virtual void DoShiftCursor(TPortionStorageCursor& cursor) const override {
+        cursor.AddScalarsPosition(1);
+    }
+    virtual std::vector GetEntityIds() const override {
+        return {EntityId};
+    }
+    virtual bool DoDeserializeFromProto(const NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) override;
+    virtual void DoSerializeToProto(NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) const override;
+public:
+
+    static bool IsAvailableType(const NScheme::TTypeInfo type) {
+        switch (type.GetTypeId()) {
+            case NScheme::NTypeIds::Int8:
+            case NScheme::NTypeIds::Uint8:
+            case NScheme::NTypeIds::Int16:
+            case NScheme::NTypeIds::Uint16:
+            case NScheme::NTypeIds::Int32:
+            case NScheme::NTypeIds::Uint32:
+            case NScheme::NTypeIds::Int64:
+            case NScheme::NTypeIds::Uint64:
+            case NScheme::NTypeIds::String:
+            case NScheme::NTypeIds::Utf8:
+            case NScheme::NTypeIds::Uuid:
+            case NScheme::NTypeIds::Timestamp:
+            case NScheme::NTypeIds::Double:
+            case NScheme::NTypeIds::Float:
+            case NScheme::NTypeIds::Datetime:
+            case NScheme::NTypeIds::Date:
+                return true;
+            default:
+                break;
+        }
+        return false;
+    }
+
+    TOperator()
+        : TBase(EType::Variability)
+    {
+
+    }
+
+    TOperator(const ui32 entityId)
+        : TBase(EType::Variability)
+        , EntityId(entityId) {
+
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/variability/ya.make b/ydb/core/tx/columnshard/engines/scheme/statistics/variability/ya.make
new file mode 100644
index 000000000000..631c95eeb3d8
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/variability/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+    GLOBAL constructor.cpp
+    GLOBAL operator.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/scheme/statistics/abstract
+    ydb/core/tx/columnshard/engines/scheme/abstract
+    ydb/core/tx/columnshard/splitter/abstract
+    ydb/core/formats/arrow
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/scheme/statistics/ya.make b/ydb/core/tx/columnshard/engines/scheme/statistics/ya.make
new file mode 100644
index 000000000000..3baed9c3538a
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/statistics/ya.make
@@ -0,0 +1,10 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/scheme/statistics/abstract
+    ydb/core/tx/columnshard/engines/scheme/statistics/max
+    ydb/core/tx/columnshard/engines/scheme/statistics/variability
+    ydb/core/tx/columnshard/engines/scheme/statistics/protos
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/scheme/tier_info.cpp b/ydb/core/tx/columnshard/engines/scheme/tier_info.cpp
index 1672d7a97ac7..d49c21ed0647 100644
--- a/ydb/core/tx/columnshard/engines/scheme/tier_info.cpp
+++ b/ydb/core/tx/columnshard/engines/scheme/tier_info.cpp
@@ -1,21 +1 @@
 #include "tier_info.h"
-
-namespace NKikimr::NOlap {
-
-std::optional TTierInfo::ScalarToInstant(const std::shared_ptr& scalar) const {
-    const ui64 unitsInSeconds = TtlUnitsInSecond ? TtlUnitsInSecond : 1;
-    switch (scalar->type->id()) {
-        case arrow::Type::TIMESTAMP:
-            return TInstant::MicroSeconds(std::static_pointer_cast(scalar)->value);
-        case arrow::Type::UINT16: // YQL Date
-            return TInstant::Days(std::static_pointer_cast(scalar)->value);
-        case arrow::Type::UINT32: // YQL Datetime or Uint32
-            return TInstant::MicroSeconds(std::static_pointer_cast(scalar)->value / (1.0 * unitsInSeconds / 1000000));
-        case arrow::Type::UINT64:
-            return TInstant::MicroSeconds(std::static_pointer_cast(scalar)->value / (1.0 * unitsInSeconds / 1000000));
-        default:
-            return {};
-    }
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/scheme/tier_info.h b/ydb/core/tx/columnshard/engines/scheme/tier_info.h
index d9808ca9b919..38c92a8aca16 100644
--- a/ydb/core/tx/columnshard/engines/scheme/tier_info.h
+++ b/ydb/core/tx/columnshard/engines/scheme/tier_info.h
@@ -1,168 +1,2 @@
 #pragma once
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap {
-
-class TTierInfo {
-private:
-    YDB_READONLY_DEF(TString, Name);
-    YDB_READONLY_DEF(TString, EvictColumnName);
-    YDB_READONLY_DEF(TDuration, EvictDuration);
-
-    ui32 TtlUnitsInSecond;
-    YDB_READONLY_DEF(std::optional, Compression);
-public:
-    TTierInfo(const TString& tierName, TDuration evictDuration, const TString& column, ui32 unitsInSecond = 0)
-        : Name(tierName)
-        , EvictColumnName(column)
-        , EvictDuration(evictDuration)
-        , TtlUnitsInSecond(unitsInSecond)
-    {
-        Y_ABORT_UNLESS(!!Name);
-        Y_ABORT_UNLESS(!!EvictColumnName);
-    }
-
-    TInstant GetEvictInstant(const TInstant now) const {
-        return now - EvictDuration;
-    }
-
-    TTierInfo& SetCompression(const NArrow::TCompression& value) {
-        Compression = value;
-        return *this;
-    }
-
-    std::shared_ptr GetEvictColumn(const std::shared_ptr& schema) const {
-        return schema->GetFieldByName(EvictColumnName);
-    }
-
-    std::optional ScalarToInstant(const std::shared_ptr& scalar) const;
-
-    static std::shared_ptr MakeTtl(const TDuration evictDuration, const TString& ttlColumn, ui32 unitsInSecond = 0) {
-        return std::make_shared("TTL", evictDuration, ttlColumn, unitsInSecond);
-    }
-
-    TString GetDebugString() const {
-        TStringBuilder sb;
-        sb << "name=" << Name << ";duration=" << EvictDuration << ";column=" << EvictColumnName << ";compression=";
-        if (Compression) {
-            sb << Compression->DebugString();
-        } else {
-            sb << "NOT_SPECIFIED(Default)";
-        }
-        sb << ";";
-        return sb;
-    }
-};
-
-class TTierRef {
-public:
-    TTierRef(const std::shared_ptr& tierInfo)
-        : Info(tierInfo)
-    {
-        Y_ABORT_UNLESS(tierInfo);
-    }
-
-    bool operator < (const TTierRef& b) const {
-        if (Info->GetEvictDuration() > b.Info->GetEvictDuration()) {
-            return true;
-        } else if (Info->GetEvictDuration() == b.Info->GetEvictDuration()) {
-            return Info->GetName() > b.Info->GetName(); // add stability: smaller name is hotter
-        }
-        return false;
-    }
-
-    bool operator == (const TTierRef& b) const {
-        return Info->GetEvictDuration() == b.Info->GetEvictDuration()
-            && Info->GetName() == b.Info->GetName();
-    }
-
-    const TTierInfo& Get() const {
-        return *Info;
-    }
-
-    std::shared_ptr GetPtr() const {
-        return Info;
-    }
-
-private:
-    std::shared_ptr Info;
-};
-
-class TTiering {
-    using TTiersMap = THashMap>;
-    TTiersMap TierByName;
-    TSet OrderedTiers;
-public:
-
-    std::shared_ptr Ttl;
-
-    const TTiersMap& GetTierByName() const {
-        return TierByName;
-    }
-
-    const TSet& GetOrderedTiers() const {
-        return OrderedTiers;
-    }
-
-    bool HasTiers() const {
-        return !OrderedTiers.empty();
-    }
-
-    void Add(const std::shared_ptr& tier) {
-        if (HasTiers()) {
-            // TODO: support different ttl columns
-            Y_ABORT_UNLESS(tier->GetEvictColumnName() == OrderedTiers.begin()->Get().GetEvictColumnName());
-        }
-
-        TierByName.emplace(tier->GetName(), tier);
-        OrderedTiers.emplace(tier);
-    }
-
-    TString GetHottestTierName() const {
-        if (OrderedTiers.size()) {
-            return OrderedTiers.rbegin()->Get().GetName(); // hottest one
-        }
-        return {};
-    }
-
-    std::optional GetCompression(const TString& name) const {
-        auto it = TierByName.find(name);
-        if (it != TierByName.end()) {
-            Y_ABORT_UNLESS(!name.empty());
-            return it->second->GetCompression();
-        }
-        return {};
-    }
-
-    THashSet GetTtlColumns() const {
-        THashSet out;
-        if (Ttl) {
-            out.insert(Ttl->GetEvictColumnName());
-        }
-        for (auto& [tierName, tier] : TierByName) {
-            out.insert(tier->GetEvictColumnName());
-        }
-        return out;
-    }
-
-    TString GetDebugString() const {
-        TStringBuilder sb;
-        if (Ttl) {
-            sb << Ttl->GetDebugString() << "; ";
-        }
-        for (auto&& i : OrderedTiers) {
-            sb << i.Get().GetDebugString() << "; ";
-        }
-        return sb;
-    }
-};
-
-}
+#include "tiering/tier_info.h"
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/scheme/tiering/common.cpp b/ydb/core/tx/columnshard/engines/scheme/tiering/common.cpp
new file mode 100644
index 000000000000..e60d56d39c91
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/tiering/common.cpp
@@ -0,0 +1,5 @@
+#include "common.h"
+
+namespace NKikimr::NOlap::NTiering::NCommon {
+
+}
diff --git a/ydb/core/tx/columnshard/engines/scheme/tiering/common.h b/ydb/core/tx/columnshard/engines/scheme/tiering/common.h
new file mode 100644
index 000000000000..ab6ed9a05a7e
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/tiering/common.h
@@ -0,0 +1,9 @@
+#pragma once
+
+#include 
+
+namespace NKikimr::NOlap::NTiering::NCommon {
+
+static inline const TString DeleteTierName = "$$DELETE";
+
+}
diff --git a/ydb/core/tx/columnshard/engines/scheme/tiering/tier_info.cpp b/ydb/core/tx/columnshard/engines/scheme/tiering/tier_info.cpp
new file mode 100644
index 000000000000..659062338bb0
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/tiering/tier_info.cpp
@@ -0,0 +1,42 @@
+#include "tier_info.h"
+#include 
+
+namespace NKikimr::NOlap {
+
+std::optional TTierInfo::ScalarToInstant(const std::shared_ptr& scalar) const {
+    const ui64 unitsInSeconds = TtlUnitsInSecond ? TtlUnitsInSecond : 1;
+    switch (scalar->type->id()) {
+        case arrow::Type::TIMESTAMP:
+            return TInstant::MicroSeconds(std::static_pointer_cast(scalar)->value);
+        case arrow::Type::UINT16: // YQL Date
+            return TInstant::Days(std::static_pointer_cast(scalar)->value);
+        case arrow::Type::UINT32: // YQL Datetime or Uint32
+            return TInstant::MicroSeconds(std::static_pointer_cast(scalar)->value / (1.0 * unitsInSeconds / 1000000));
+        case arrow::Type::UINT64:
+            return TInstant::MicroSeconds(std::static_pointer_cast(scalar)->value / (1.0 * unitsInSeconds / 1000000));
+        default:
+            return {};
+    }
+}
+
+TTiering::TTieringContext TTiering::GetTierToMove(const std::shared_ptr& max, const TInstant now) const {
+    AFL_VERIFY(OrderedTiers.size());
+    std::optional nextTierName;
+    std::optional nextTierDuration;
+    for (auto& tierRef : GetOrderedTiers()) {
+        auto& tierInfo = tierRef.Get();
+        auto mpiOpt = tierInfo.ScalarToInstant(max);
+        Y_ABORT_UNLESS(mpiOpt);
+        const TInstant maxTieringPortionInstant = *mpiOpt;
+        const TDuration dWaitLocal = maxTieringPortionInstant - tierInfo.GetEvictInstant(now);
+        if (!dWaitLocal) {
+            return TTieringContext(tierInfo.GetName(), tierInfo.GetEvictInstant(now) - maxTieringPortionInstant, nextTierName, nextTierDuration);
+        } else {
+            nextTierName = tierInfo.GetName();
+            nextTierDuration = dWaitLocal;
+        }
+    }
+    return TTieringContext(IStoragesManager::DefaultStorageId, TDuration::Zero(), nextTierName, nextTierDuration);
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/scheme/tiering/tier_info.h b/ydb/core/tx/columnshard/engines/scheme/tiering/tier_info.h
new file mode 100644
index 000000000000..c65cb1703ad0
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/tiering/tier_info.h
@@ -0,0 +1,215 @@
+#pragma once
+#include "common.h"
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+
+class TTierInfo {
+private:
+    YDB_READONLY_DEF(TString, Name);
+    YDB_READONLY_DEF(TString, EvictColumnName);
+    YDB_READONLY_DEF(TDuration, EvictDuration);
+
+    ui32 TtlUnitsInSecond;
+    YDB_READONLY_DEF(std::optional, Serializer);
+public:
+    static TString GetTtlTierName() {
+        return NTiering::NCommon::DeleteTierName;
+    }
+
+    TTierInfo(const TString& tierName, TDuration evictDuration, const TString& column, ui32 unitsInSecond = 0)
+        : Name(tierName)
+        , EvictColumnName(column)
+        , EvictDuration(evictDuration)
+        , TtlUnitsInSecond(unitsInSecond)
+    {
+        Y_ABORT_UNLESS(!!Name);
+        Y_ABORT_UNLESS(!!EvictColumnName);
+    }
+
+    TInstant GetEvictInstant(const TInstant now) const {
+        return now - EvictDuration;
+    }
+
+    TTierInfo& SetSerializer(const NArrow::NSerialization::TSerializerContainer& value) {
+        Serializer = value;
+        return *this;
+    }
+
+    std::shared_ptr GetEvictColumn(const std::shared_ptr& schema) const {
+        return schema->GetFieldByName(EvictColumnName);
+    }
+
+    std::optional ScalarToInstant(const std::shared_ptr& scalar) const;
+
+    static std::shared_ptr MakeTtl(const TDuration evictDuration, const TString& ttlColumn, ui32 unitsInSecond = 0) {
+        return std::make_shared(NTiering::NCommon::DeleteTierName, evictDuration, ttlColumn, unitsInSecond);
+    }
+
+    TString GetDebugString() const {
+        TStringBuilder sb;
+        sb << "name=" << Name << ";duration=" << EvictDuration << ";column=" << EvictColumnName << ";serializer=";
+        if (Serializer) {
+            sb << Serializer->DebugString();
+        } else {
+            sb << "NOT_SPECIFIED(Default)";
+        }
+        sb << ";";
+        return sb;
+    }
+};
+
+class TTierRef {
+public:
+    TTierRef(const std::shared_ptr& tierInfo)
+        : Info(tierInfo)
+    {
+        Y_ABORT_UNLESS(tierInfo);
+    }
+
+    bool operator < (const TTierRef& b) const {
+        if (Info->GetEvictDuration() > b.Info->GetEvictDuration()) {
+            return true;
+        } else if (Info->GetEvictDuration() == b.Info->GetEvictDuration()) {
+            if (Info->GetName() == NTiering::NCommon::DeleteTierName) {
+                return true;
+            } else if (b.Info->GetName() == NTiering::NCommon::DeleteTierName) {
+                return false;
+            }
+            return Info->GetName() > b.Info->GetName(); // add stability: smaller name is hotter
+        }
+        return false;
+    }
+
+    bool operator == (const TTierRef& b) const {
+        return Info->GetEvictDuration() == b.Info->GetEvictDuration()
+            && Info->GetName() == b.Info->GetName();
+    }
+
+    const TTierInfo& Get() const {
+        return *Info;
+    }
+
+    std::shared_ptr GetPtr() const {
+        return Info;
+    }
+
+private:
+    std::shared_ptr Info;
+};
+
+class TTiering {
+    using TTiersMap = THashMap>;
+    TTiersMap TierByName;
+    TSet OrderedTiers;
+    TString TTLColumnName;
+public:
+
+    class TTieringContext {
+    private:
+        YDB_READONLY_DEF(TString, CurrentTierName);
+        YDB_READONLY_DEF(TDuration, CurrentTierLag);
+
+        YDB_READONLY_DEF(std::optional, NextTierName);
+        YDB_READONLY_DEF(std::optional, NextTierWaiting);
+    public:
+        TString DebugString() const {
+            TStringBuilder sb;
+            sb << CurrentTierName << "/" << CurrentTierLag << ";";
+            if (NextTierName) {
+                sb << *NextTierName << "/" << *NextTierWaiting << ";";
+            }
+            return sb;
+        }
+
+        TTieringContext(const TString& tierName, const TDuration waiting, const std::optional& nextTierName = {}, const std::optional& nextTierDuration = {})
+            : CurrentTierName(tierName)
+            , CurrentTierLag(waiting)
+            , NextTierName(nextTierName)
+            , NextTierWaiting(nextTierDuration)
+        {
+            AFL_VERIFY(!nextTierName == !nextTierDuration);
+        }
+
+        TString GetNextTierNameVerified() const {
+            AFL_VERIFY(NextTierName);
+            return *NextTierName;
+        }
+
+        TDuration GetNextTierWaitingVerified() const {
+            AFL_VERIFY(NextTierWaiting);
+            return *NextTierWaiting;
+        }
+    };
+
+    TTieringContext GetTierToMove(const std::shared_ptr& max, const TInstant now) const;
+
+    const TTiersMap& GetTierByName() const {
+        return TierByName;
+    }
+
+    std::shared_ptr GetTierByName(const TString& name) const {
+        auto it = TierByName.find(name);
+        if (it == TierByName.end()) {
+            return nullptr;
+        }
+        return it->second;
+    }
+
+    const TSet& GetOrderedTiers() const {
+        return OrderedTiers;
+    }
+
+    bool HasTiers() const {
+        return !OrderedTiers.empty();
+    }
+
+    [[nodiscard]] bool Add(const std::shared_ptr& tier) {
+        AFL_VERIFY(tier);
+        if (!TTLColumnName) {
+            TTLColumnName = tier->GetEvictColumnName();
+        } else if (TTLColumnName != tier->GetEvictColumnName()) {
+            AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("problem", "incorrect_tiering_metadata")("column_before", TTLColumnName)("column_new", tier->GetEvictColumnName());
+            return false;
+        }
+
+        TierByName.emplace(tier->GetName(), tier);
+        OrderedTiers.emplace(tier);
+        return true;
+    }
+
+    std::optional GetSerializer(const TString& name) const {
+        auto it = TierByName.find(name);
+        if (it != TierByName.end()) {
+            Y_ABORT_UNLESS(!name.empty());
+            return it->second->GetSerializer();
+        }
+        return {};
+    }
+
+    const TString& GetTtlColumn() const {
+        AFL_VERIFY(TTLColumnName);
+        return TTLColumnName;
+    }
+
+    const TString& GetEvictColumnName() const {
+        return TTLColumnName;
+    }
+
+    TString GetDebugString() const {
+        TStringBuilder sb;
+        for (auto&& i : OrderedTiers) {
+            sb << i.Get().GetDebugString() << "; ";
+        }
+        return sb;
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/scheme/tiering/ya.make b/ydb/core/tx/columnshard/engines/scheme/tiering/ya.make
new file mode 100644
index 000000000000..45f21958d0d8
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/tiering/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+    tier_info.cpp
+    common.cpp
+)
+
+PEERDIR(
+    ydb/core/formats/arrow/serializer
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/scheme/versions/abstract_scheme.cpp b/ydb/core/tx/columnshard/engines/scheme/versions/abstract_scheme.cpp
new file mode 100644
index 000000000000..771ebe52e783
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/versions/abstract_scheme.cpp
@@ -0,0 +1,141 @@
+#include "abstract_scheme.h"
+
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+
+std::shared_ptr ISnapshotSchema::GetFieldByIndex(const int index) const {
+    auto schema = GetSchema();
+    if (!schema || index < 0 || index >= schema->num_fields()) {
+        return nullptr;
+    }
+    return schema->field(index);
+}
+std::shared_ptr ISnapshotSchema::GetFieldByColumnIdOptional(const ui32 columnId) const {
+    return GetFieldByIndex(GetFieldIndex(columnId));
+}
+
+std::set ISnapshotSchema::GetPkColumnsIds() const {
+    std::set result;
+    for (auto&& field : GetIndexInfo().GetReplaceKey()->fields()) {
+        result.emplace(GetColumnId(field->name()));
+    }
+    return result;
+
+}
+
+std::shared_ptr ISnapshotSchema::NormalizeBatch(const ISnapshotSchema& dataSchema, const std::shared_ptr batch) const {
+    if (dataSchema.GetSnapshot() == GetSnapshot()) {
+        return batch;
+    }
+    Y_ABORT_UNLESS(dataSchema.GetSnapshot() < GetSnapshot());
+    const std::shared_ptr& resultArrowSchema = GetSchema();
+    std::vector> newColumns;
+    newColumns.reserve(resultArrowSchema->num_fields());
+
+    for (size_t i = 0; i < resultArrowSchema->fields().size(); ++i) {
+        auto& resultField = resultArrowSchema->fields()[i];
+        auto columnId = GetIndexInfo().GetColumnId(resultField->name());
+        auto oldColumnIndex = dataSchema.GetFieldIndex(columnId);
+        if (oldColumnIndex >= 0) { // ColumnExists
+            auto oldColumnInfo = dataSchema.GetFieldByIndex(oldColumnIndex);
+            Y_ABORT_UNLESS(oldColumnInfo);
+            auto columnData = batch->GetColumnByName(oldColumnInfo->name());
+            Y_ABORT_UNLESS(columnData);
+            newColumns.push_back(columnData);
+        } else { // AddNullColumn
+            auto nullColumn = NArrow::MakeEmptyBatch(arrow::schema({resultField}), batch->num_rows());
+            newColumns.push_back(nullColumn->column(0));
+        }
+    }
+    return arrow::RecordBatch::Make(resultArrowSchema, batch->num_rows(), newColumns);
+}
+
+std::shared_ptr ISnapshotSchema::PrepareForInsert(const TString& data, const std::shared_ptr& dataSchema) const {
+    std::shared_ptr dstSchema = GetIndexInfo().ArrowSchema();
+    auto batch = NArrow::DeserializeBatch(data, (dataSchema ? dataSchema : dstSchema));
+    if (!batch) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("error", "DeserializeBatch() failed");
+        return nullptr;
+    }
+    if (batch->num_rows() == 0) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("error", "empty batch");
+        return nullptr;
+    }
+
+    // Correct schema
+    if (dataSchema) {
+        batch = NArrow::ExtractColumns(batch, dstSchema, true);
+        if (!batch) {
+            AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("error", "cannot correct schema");
+            return nullptr;
+        }
+    }
+
+    if (!batch->schema()->Equals(dstSchema)) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("error", TStringBuilder() << "unexpected schema for insert batch: '" << batch->schema()->ToString() << "'");
+        return nullptr;
+    }
+
+    const auto& sortingKey = GetIndexInfo().GetPrimaryKey();
+    Y_ABORT_UNLESS(sortingKey);
+
+    // Check PK is NOT NULL
+    for (auto& field : sortingKey->fields()) {
+        auto column = batch->GetColumnByName(field->name());
+        if (!column) {
+            AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("error", TStringBuilder() << "missing PK column '" << field->name() << "'");
+            return nullptr;
+        }
+        if (NArrow::HasNulls(column)) {
+            AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("error", TStringBuilder() << "PK column '" << field->name() << "' contains NULLs");
+            return nullptr;
+        }
+    }
+
+    auto status = batch->ValidateFull();
+    if (!status.ok()) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("error", status.ToString());
+        return nullptr;
+    }
+    batch = NArrow::SortBatch(batch, sortingKey, true);
+    Y_DEBUG_ABORT_UNLESS(NArrow::IsSortedAndUnique(batch, sortingKey));
+    return batch;
+}
+
+ui32 ISnapshotSchema::GetColumnId(const std::string& columnName) const {
+    auto id = GetColumnIdOptional(columnName);
+    AFL_VERIFY(id)("column_name", columnName)("schema", JoinSeq(",", GetSchema()->field_names()));
+    return *id;
+}
+
+std::shared_ptr ISnapshotSchema::GetFieldByColumnIdVerified(const ui32 columnId) const {
+    auto result = GetFieldByColumnIdOptional(columnId);
+    AFL_VERIFY(result)("event", "unknown_column")("column_id", columnId)("schema", DebugString());
+    return result;
+}
+
+std::shared_ptr ISnapshotSchema::GetColumnLoaderVerified(const ui32 columnId) const {
+    auto result = GetColumnLoaderOptional(columnId);
+    AFL_VERIFY(result);
+    return result;
+}
+
+std::shared_ptr ISnapshotSchema::GetColumnLoaderVerified(const std::string& columnName) const {
+    auto result = GetColumnLoaderOptional(columnName);
+    AFL_VERIFY(result);
+    return result;
+}
+
+std::shared_ptr ISnapshotSchema::GetColumnLoaderOptional(const std::string& columnName) const {
+    const std::optional id = GetColumnIdOptional(columnName);
+    if (id) {
+        return GetColumnLoaderOptional(*id);
+    } else {
+        return nullptr;
+    }
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/scheme/versions/abstract_scheme.h b/ydb/core/tx/columnshard/engines/scheme/versions/abstract_scheme.h
new file mode 100644
index 000000000000..0fc4047de574
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/versions/abstract_scheme.h
@@ -0,0 +1,57 @@
+#pragma once
+#include 
+#include 
+
+#include 
+
+#include 
+
+namespace NKikimr::NOlap {
+
+struct TIndexInfo;
+class TSaverContext;
+
+class ISnapshotSchema {
+protected:
+    virtual TString DoDebugString() const = 0;
+public:
+    using TPtr = std::shared_ptr;
+
+    virtual ~ISnapshotSchema() {}
+    virtual std::shared_ptr GetColumnLoaderOptional(const ui32 columnId) const = 0;
+    std::shared_ptr GetColumnLoaderVerified(const ui32 columnId) const;
+    std::shared_ptr GetColumnLoaderOptional(const std::string& columnName) const;
+    std::shared_ptr GetColumnLoaderVerified(const std::string& columnName) const;
+
+    virtual TColumnSaver GetColumnSaver(const ui32 columnId) const = 0;
+    TColumnSaver GetColumnSaver(const TString& columnName) const {
+        return GetColumnSaver(GetColumnId(columnName));
+    }
+    TColumnSaver GetColumnSaver(const std::string& columnName) const {
+        return GetColumnSaver(TString(columnName.data(), columnName.size()));
+    }
+
+    virtual std::optional GetColumnIdOptional(const std::string& columnName) const = 0;
+    virtual int GetFieldIndex(const ui32 columnId) const = 0;
+
+    ui32 GetColumnId(const std::string& columnName) const;
+    std::shared_ptr GetFieldByIndex(const int index) const;
+    std::shared_ptr GetFieldByColumnIdOptional(const ui32 columnId) const;
+    std::shared_ptr GetFieldByColumnIdVerified(const ui32 columnId) const;
+
+    TString DebugString() const {
+        return DoDebugString();
+    }
+    virtual const std::shared_ptr& GetSchema() const = 0;
+    virtual const TIndexInfo& GetIndexInfo() const = 0;
+    virtual const TSnapshot& GetSnapshot() const = 0;
+    virtual ui64 GetVersion() const = 0;
+    virtual ui32 GetColumnsCount() const = 0;
+
+    std::set GetPkColumnsIds() const;
+
+    std::shared_ptr NormalizeBatch(const ISnapshotSchema& dataSchema, const std::shared_ptr batch) const;
+    std::shared_ptr PrepareForInsert(const TString& data, const std::shared_ptr& dataSchema) const;
+};
+
+} // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/scheme/versions/filtered_scheme.cpp b/ydb/core/tx/columnshard/engines/scheme/versions/filtered_scheme.cpp
new file mode 100644
index 000000000000..8832e7eb0ec8
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/versions/filtered_scheme.cpp
@@ -0,0 +1,94 @@
+#include "filtered_scheme.h"
+#include 
+
+
+namespace NKikimr::NOlap {
+
+TFilteredSnapshotSchema::TFilteredSnapshotSchema(ISnapshotSchema::TPtr originalSnapshot, const std::vector& columnIds)
+    : TFilteredSnapshotSchema(originalSnapshot, std::set(columnIds.begin(), columnIds.end()))
+{}
+
+TFilteredSnapshotSchema::TFilteredSnapshotSchema(ISnapshotSchema::TPtr originalSnapshot, const std::set& columnIds)
+    : OriginalSnapshot(originalSnapshot)
+    , ColumnIds(columnIds)
+{
+    std::vector> schemaFields;
+    for (auto&& i : OriginalSnapshot->GetSchema()->fields()) {
+        if (!ColumnIds.contains(OriginalSnapshot->GetIndexInfo().GetColumnId(i->name()))) {
+            continue;
+        }
+        schemaFields.emplace_back(i);
+    }
+    Schema = std::make_shared(schemaFields);
+}
+
+TFilteredSnapshotSchema::TFilteredSnapshotSchema(ISnapshotSchema::TPtr originalSnapshot, const std::set& columnNames)
+    : OriginalSnapshot(originalSnapshot) {
+    for (auto&& i : columnNames) {
+        ColumnIds.emplace(OriginalSnapshot->GetColumnId(i));
+    }
+    std::vector> schemaFields;
+    for (auto&& i : OriginalSnapshot->GetSchema()->fields()) {
+        if (!columnNames.contains(i->name())) {
+            continue;
+        }
+        schemaFields.emplace_back(i);
+    }
+    Schema = std::make_shared(schemaFields);
+}
+
+TColumnSaver TFilteredSnapshotSchema::GetColumnSaver(const ui32 columnId) const {
+    Y_ABORT_UNLESS(ColumnIds.contains(columnId));
+    return OriginalSnapshot->GetColumnSaver(columnId);
+}
+
+std::shared_ptr TFilteredSnapshotSchema::GetColumnLoaderOptional(const ui32 columnId) const {
+    Y_ABORT_UNLESS(ColumnIds.contains(columnId));
+    return OriginalSnapshot->GetColumnLoaderOptional(columnId);
+}
+
+std::optional TFilteredSnapshotSchema::GetColumnIdOptional(const std::string& columnName) const {
+    return OriginalSnapshot->GetColumnIdOptional(columnName);
+}
+
+int TFilteredSnapshotSchema::GetFieldIndex(const ui32 columnId) const {
+    if (!ColumnIds.contains(columnId)) {
+        return -1;
+    }
+    TString columnName = OriginalSnapshot->GetIndexInfo().GetColumnName(columnId, false);
+    if (!columnName) {
+        return -1;
+    }
+    std::string name(columnName.data(), columnName.size());
+    return Schema->GetFieldIndex(name);
+}
+
+const std::shared_ptr& TFilteredSnapshotSchema::GetSchema() const {
+    return Schema;
+}
+
+const TIndexInfo& TFilteredSnapshotSchema::GetIndexInfo() const {
+    return OriginalSnapshot->GetIndexInfo();
+}
+
+const TSnapshot& TFilteredSnapshotSchema::GetSnapshot() const {
+    return OriginalSnapshot->GetSnapshot();
+}
+
+ui32 TFilteredSnapshotSchema::GetColumnsCount() const {
+    return Schema->num_fields();
+}
+
+ui64 TFilteredSnapshotSchema::GetVersion() const {
+    return OriginalSnapshot->GetIndexInfo().GetVersion();
+}
+
+TString TFilteredSnapshotSchema::DoDebugString() const {
+    return TStringBuilder() << "("
+        << "original=" << OriginalSnapshot->DebugString() << ";"
+        << "column_ids=[" << JoinSeq(",", ColumnIds) << "];"
+        << ")"
+        ;
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/scheme/versions/filtered_scheme.h b/ydb/core/tx/columnshard/engines/scheme/versions/filtered_scheme.h
new file mode 100644
index 000000000000..e9fa1b41b7c2
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/versions/filtered_scheme.h
@@ -0,0 +1,32 @@
+#pragma once
+
+#include "abstract_scheme.h"
+
+#include 
+
+namespace NKikimr::NOlap {
+
+class TFilteredSnapshotSchema: public ISnapshotSchema {
+    ISnapshotSchema::TPtr OriginalSnapshot;
+    std::shared_ptr Schema;
+    std::set ColumnIds;
+protected:
+    virtual TString DoDebugString() const override;
+public:
+    TFilteredSnapshotSchema(ISnapshotSchema::TPtr originalSnapshot, const std::vector& columnIds);
+    TFilteredSnapshotSchema(ISnapshotSchema::TPtr originalSnapshot, const std::set& columnIds);
+    TFilteredSnapshotSchema(ISnapshotSchema::TPtr originalSnapshot, const std::set& columnNames);
+
+    TColumnSaver GetColumnSaver(const ui32 columnId) const override;
+    std::shared_ptr GetColumnLoaderOptional(const ui32 columnId) const override;
+    std::optional GetColumnIdOptional(const std::string& columnName) const override;
+    int GetFieldIndex(const ui32 columnId) const override;
+
+    const std::shared_ptr& GetSchema() const override;
+    const TIndexInfo& GetIndexInfo() const override;
+    const TSnapshot& GetSnapshot() const override;
+    ui32 GetColumnsCount() const override;
+    ui64 GetVersion() const override;
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/scheme/versions/snapshot_scheme.cpp b/ydb/core/tx/columnshard/engines/scheme/versions/snapshot_scheme.cpp
new file mode 100644
index 000000000000..1fe6820cf547
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/versions/snapshot_scheme.cpp
@@ -0,0 +1,53 @@
+#include "snapshot_scheme.h"
+
+namespace NKikimr::NOlap {
+
+TSnapshotSchema::TSnapshotSchema(TIndexInfo&& indexInfo, const TSnapshot& snapshot)
+    : IndexInfo(std::move(indexInfo))
+    , Schema(IndexInfo.ArrowSchemaWithSpecials())
+    , Snapshot(snapshot)
+{
+}
+
+TColumnSaver TSnapshotSchema::GetColumnSaver(const ui32 columnId) const {
+    return IndexInfo.GetColumnSaver(columnId);
+}
+
+std::shared_ptr TSnapshotSchema::GetColumnLoaderOptional(const ui32 columnId) const {
+    return IndexInfo.GetColumnLoaderOptional(columnId);
+}
+
+std::optional TSnapshotSchema::GetColumnIdOptional(const std::string& columnName) const {
+    return IndexInfo.GetColumnIdOptional(columnName);
+}
+
+int TSnapshotSchema::GetFieldIndex(const ui32 columnId) const {
+    const TString& columnName = IndexInfo.GetColumnName(columnId, false);
+    if (!columnName) {
+        return -1;
+    }
+    std::string name(columnName.data(), columnName.size());
+    return Schema->GetFieldIndex(name);
+}
+
+const std::shared_ptr& TSnapshotSchema::GetSchema() const {
+    return Schema;
+}
+
+const TIndexInfo& TSnapshotSchema::GetIndexInfo() const {
+    return IndexInfo;
+}
+
+const TSnapshot& TSnapshotSchema::GetSnapshot() const {
+    return Snapshot;
+}
+
+ui32 TSnapshotSchema::GetColumnsCount() const {
+    return Schema->num_fields();
+}
+
+ui64 TSnapshotSchema::GetVersion() const {
+    return IndexInfo.GetVersion();
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/scheme/versions/snapshot_scheme.h b/ydb/core/tx/columnshard/engines/scheme/versions/snapshot_scheme.h
new file mode 100644
index 000000000000..539d8f99a02c
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/versions/snapshot_scheme.h
@@ -0,0 +1,38 @@
+#pragma once
+
+#include "abstract_scheme.h"
+
+#include 
+
+namespace NKikimr::NOlap {
+
+class TSnapshotSchema: public ISnapshotSchema {
+private:
+    TIndexInfo IndexInfo;
+    std::shared_ptr Schema;
+    TSnapshot Snapshot;
+protected:
+    virtual TString DoDebugString() const override {
+        return TStringBuilder() << "("
+            "schema=" << Schema->ToString() << ";" <<
+            "snapshot=" << Snapshot.DebugString() << ";" <<
+            "index_info=" << IndexInfo.DebugString() << ";" <<
+            ")"
+            ;
+    }
+public:
+    TSnapshotSchema(TIndexInfo&& indexInfo, const TSnapshot& snapshot);
+
+    TColumnSaver GetColumnSaver(const ui32 columnId) const override;
+    std::shared_ptr GetColumnLoaderOptional(const ui32 columnId) const override;
+    std::optional GetColumnIdOptional(const std::string& columnName) const override;
+    int GetFieldIndex(const ui32 columnId) const override;
+
+    const std::shared_ptr& GetSchema() const override;
+    const TIndexInfo& GetIndexInfo() const override;
+    const TSnapshot& GetSnapshot() const override;
+    ui32 GetColumnsCount() const override;
+    ui64 GetVersion() const override;
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/scheme/versions/versioned_index.cpp b/ydb/core/tx/columnshard/engines/scheme/versions/versioned_index.cpp
new file mode 100644
index 000000000000..e7cf6f30ed36
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/versions/versioned_index.cpp
@@ -0,0 +1,31 @@
+#include "versioned_index.h"
+#include "snapshot_scheme.h"
+
+#include 
+
+namespace NKikimr::NOlap {
+
+void TVersionedIndex::AddIndex(const TSnapshot& snapshot, TIndexInfo&& indexInfo) {
+    if (Snapshots.empty()) {
+        PrimaryKey = indexInfo.GetPrimaryKey();
+    } else {
+        Y_ABORT_UNLESS(PrimaryKey->Equals(indexInfo.GetPrimaryKey()));
+    }
+
+    const bool needActualization = indexInfo.GetSchemeNeedActualization();
+    auto newVersion = indexInfo.GetVersion();
+    auto itVersion = SnapshotByVersion.emplace(newVersion, std::make_shared(std::move(indexInfo), snapshot));
+    if (!itVersion.second) {
+        AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("message", "Skip registered version")("version", LastSchemaVersion);
+    } else if (needActualization) {
+        if (!SchemeVersionForActualization || *SchemeVersionForActualization < newVersion) {
+            SchemeVersionForActualization = newVersion;
+            SchemeForActualization = itVersion.first->second;
+        }
+    }
+    auto itSnap = Snapshots.emplace(snapshot, itVersion.first->second);
+    Y_ABORT_UNLESS(itSnap.second);
+    LastSchemaVersion = std::max(newVersion, LastSchemaVersion);
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/scheme/versions/versioned_index.h b/ydb/core/tx/columnshard/engines/scheme/versions/versioned_index.h
new file mode 100644
index 000000000000..d83d338350d7
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/versions/versioned_index.h
@@ -0,0 +1,68 @@
+#pragma once
+#include "abstract_scheme.h"
+
+namespace NKikimr::NOlap {
+
+class TVersionedIndex {
+    std::map Snapshots;
+    std::shared_ptr PrimaryKey;
+    std::map SnapshotByVersion;
+    ui64 LastSchemaVersion = 0;
+    std::optional SchemeVersionForActualization;
+    ISnapshotSchema::TPtr SchemeForActualization;
+public:
+    ISnapshotSchema::TPtr GetLastCriticalSchema() const {
+        return SchemeForActualization;
+    }
+
+    ISnapshotSchema::TPtr GetLastCriticalSchemaDef(const ISnapshotSchema::TPtr defaultSchema) const {
+        auto result = GetLastCriticalSchema();
+        return result ? result : defaultSchema;
+    }
+
+    TString DebugString() const {
+        TStringBuilder sb;
+        for (auto&& i : Snapshots) {
+            sb << i.first << ":" << i.second->DebugString() << ";";
+        }
+        return sb;
+    }
+
+    ISnapshotSchema::TPtr GetSchema(const ui64 version) const {
+        auto it = SnapshotByVersion.find(version);
+        return it == SnapshotByVersion.end() ? nullptr : it->second;
+    }
+
+    ISnapshotSchema::TPtr GetSchemaVerified(const ui64 version) const {
+        auto it = SnapshotByVersion.find(version);
+        Y_ABORT_UNLESS(it != SnapshotByVersion.end(), "no schema for version %lu", version);
+        return it->second;
+    }
+
+    ISnapshotSchema::TPtr GetSchema(const TSnapshot& version) const {
+        for (auto it = Snapshots.rbegin(); it != Snapshots.rend(); ++it) {
+            if (it->first <= version) {
+                return it->second;
+            }
+        }
+        Y_ABORT_UNLESS(!Snapshots.empty());
+        Y_ABORT_UNLESS(version.IsZero());
+        return Snapshots.begin()->second; // For old compaction logic compatibility
+    }
+
+    ISnapshotSchema::TPtr GetLastSchema() const {
+        Y_ABORT_UNLESS(!Snapshots.empty());
+        return Snapshots.rbegin()->second;
+    }
+
+    bool IsEmpty() const {
+        return Snapshots.empty();
+    }
+
+    const std::shared_ptr& GetPrimaryKey() const noexcept {
+        return PrimaryKey;
+    }
+
+    void AddIndex(const TSnapshot& snapshot, TIndexInfo&& indexInfo);
+};
+}
diff --git a/ydb/core/tx/columnshard/engines/scheme/versions/ya.make b/ydb/core/tx/columnshard/engines/scheme/versions/ya.make
new file mode 100644
index 000000000000..63dc44a74899
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/scheme/versions/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+    abstract_scheme.cpp
+    snapshot_scheme.cpp
+    filtered_scheme.cpp
+    versioned_index.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/scheme/abstract
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/scheme/ya.make b/ydb/core/tx/columnshard/engines/scheme/ya.make
index 2067cdd542b7..f2b04cd56c89 100644
--- a/ydb/core/tx/columnshard/engines/scheme/ya.make
+++ b/ydb/core/tx/columnshard/engines/scheme/ya.make
@@ -15,6 +15,13 @@ PEERDIR(
 
     ydb/library/actors/core
     ydb/core/tx/columnshard/engines/scheme/indexes
+    ydb/core/tx/columnshard/engines/scheme/statistics
+    ydb/core/tx/columnshard/engines/scheme/abstract
+    ydb/core/tx/columnshard/engines/scheme/versions
+    ydb/core/tx/columnshard/engines/scheme/tiering
+    ydb/core/tx/columnshard/engines/scheme/column
+    ydb/core/tx/columnshard/blobs_action/abstract
+    ydb/core/tx/columnshard/engines/changes/compaction
 )
 
 YQL_LAST_ABI_VERSION()
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/abstract/abstract.cpp b/ydb/core/tx/columnshard/engines/storage/actualizer/abstract/abstract.cpp
new file mode 100644
index 000000000000..d193e92e3e1a
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/abstract/abstract.cpp
@@ -0,0 +1,5 @@
+#include "abstract.h"
+
+namespace NKikimr::NOlap::NActualizer {
+
+}
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/abstract/abstract.h b/ydb/core/tx/columnshard/engines/storage/actualizer/abstract/abstract.h
new file mode 100644
index 000000000000..56db4cf2fa4f
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/abstract/abstract.h
@@ -0,0 +1,30 @@
+#pragma once
+#include "context.h"
+
+#include 
+
+namespace NKikimr::NOlap::NActualizer {
+
+class IActualizer {
+protected:
+    virtual void DoAddPortion(const TPortionInfo& info, const TAddExternalContext& context) = 0;
+    virtual void DoRemovePortion(const ui64 portionId) = 0;
+    virtual void DoExtractTasks(TTieringProcessContext& tasksContext, const TExternalTasksContext& externalContext, TInternalTasksContext& internalContext) = 0;
+public:
+    virtual ~IActualizer() = default;
+    void ExtractTasks(TTieringProcessContext& tasksContext, const TExternalTasksContext& externalContext, TInternalTasksContext& internalContext) {
+        return DoExtractTasks(tasksContext, externalContext, internalContext);
+    }
+    void AddPortion(const std::shared_ptr& info, const TAddExternalContext& context) {
+        AFL_VERIFY(info);
+        if (info->HasRemoveSnapshot()) {
+            return;
+        }
+        return DoAddPortion(*info, context);
+    }
+    void RemovePortion(const ui64 portionId) {
+        return DoRemovePortion(portionId);
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/abstract/context.cpp b/ydb/core/tx/columnshard/engines/storage/actualizer/abstract/context.cpp
new file mode 100644
index 000000000000..6ef73de8ceb0
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/abstract/context.cpp
@@ -0,0 +1,5 @@
+#include "context.h"
+
+namespace NKikimr::NOlap::NActualizer {
+
+}
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/abstract/context.h b/ydb/core/tx/columnshard/engines/storage/actualizer/abstract/context.h
new file mode 100644
index 000000000000..3e50ee118d43
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/abstract/context.h
@@ -0,0 +1,59 @@
+#pragma once
+#include 
+
+#include 
+
+#include 
+
+namespace NKikimr::NOlap {
+class TPortionInfo;
+}
+
+namespace NKikimr::NOlap::NActualizer {
+
+class TTieringProcessContext;
+
+class TAddExternalContext {
+private:
+    YDB_READONLY_DEF(TInstant, Now);
+    YDB_ACCESSOR(bool, PortionExclusiveGuarantee, true);
+    const THashMap>& Portions;
+public:
+    TAddExternalContext(const TInstant now, const THashMap>& portions)
+        : Now(now)
+        , Portions(portions)
+    {
+
+    }
+
+    const THashMap>& GetPortions() const {
+        return Portions;
+    }
+};
+
+class TExternalTasksContext {
+private:
+    const THashMap>& Portions;
+public:
+    const THashMap>& GetPortions() const {
+        return Portions;
+    }
+
+    const std::shared_ptr& GetPortionVerified(const ui64 portionId) const {
+        auto it = Portions.find(portionId);
+        AFL_VERIFY(it != Portions.end());
+        return it->second;
+    }
+
+    TExternalTasksContext(const THashMap>& portions)
+        : Portions(portions)
+    {
+
+    }
+};
+
+class TInternalTasksContext {
+public:
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/abstract/ya.make b/ydb/core/tx/columnshard/engines/storage/actualizer/abstract/ya.make
new file mode 100644
index 000000000000..90979469658b
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/abstract/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+    abstract.cpp
+    context.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/scheme/versions
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/common/address.cpp b/ydb/core/tx/columnshard/engines/storage/actualizer/common/address.cpp
new file mode 100644
index 000000000000..6fae8d9c9b73
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/common/address.cpp
@@ -0,0 +1,33 @@
+#include "address.h"
+
+#include 
+
+#include 
+
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NActualizer {
+
+TRWAddress::TRWAddress(std::set&& readStorages, std::set&& writeStorages): ReadStorages(std::move(readStorages))
+, WriteStorages(std::move(writeStorages)) {
+    AFL_VERIFY(!ReadStorages.contains(""));
+    AFL_VERIFY(!WriteStorages.contains(""));
+    if (WriteStorages.contains(NTiering::NCommon::DeleteTierName)) {
+        AFL_VERIFY(WriteStorages.size() == 1);
+    }
+    Hash = 0;
+    for (auto&& i : ReadStorages) {
+        Hash = CombineHashes(Hash, CityHash64(i.data(), i.size()));
+    }
+    for (auto&& i : WriteStorages) {
+        Hash = CombineHashes(Hash, CityHash64(i.data(), i.size()));
+    }
+}
+
+TString TRWAddress::DebugString() const {
+    return "R:" + JoinSeq(",", ReadStorages) + ";W:" + JoinSeq(",", WriteStorages);
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/common/address.h b/ydb/core/tx/columnshard/engines/storage/actualizer/common/address.h
new file mode 100644
index 000000000000..31a74b7cc019
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/common/address.h
@@ -0,0 +1,34 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NOlap::NActualizer {
+
+class TRWAddress {
+private:
+    std::set ReadStorages;
+    std::set WriteStorages;
+    ui64 Hash = 0;
+public:
+    bool WriteIs(const TString& storageId) const {
+        return WriteStorages.size() == 1 && WriteStorages.contains(storageId);
+    }
+
+    bool ReadIs(const TString& storageId) const {
+        return ReadStorages.size() == 1 && ReadStorages.contains(storageId);
+    }
+
+    TString DebugString() const;
+
+    TRWAddress(std::set&& readStorages, std::set&& writeStorages);
+
+    bool operator==(const TRWAddress& item) const {
+        return ReadStorages == item.ReadStorages && WriteStorages == item.WriteStorages;
+    }
+
+    operator size_t() const { 
+        return Hash;
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/common/ya.make b/ydb/core/tx/columnshard/engines/storage/actualizer/common/ya.make
new file mode 100644
index 000000000000..ae034445d0c4
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/common/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+    address.cpp
+)
+
+PEERDIR(
+    ydb/library/actors/core
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/counters/counters.cpp b/ydb/core/tx/columnshard/engines/storage/actualizer/counters/counters.cpp
new file mode 100644
index 000000000000..f6e4cca64311
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/counters/counters.cpp
@@ -0,0 +1,5 @@
+#include "counters.h"
+
+namespace NKikimr::NOlap::NActualizer {
+
+}
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/counters/counters.h b/ydb/core/tx/columnshard/engines/storage/actualizer/counters/counters.h
new file mode 100644
index 000000000000..7bf8aa895f69
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/counters/counters.h
@@ -0,0 +1,109 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NOlap::NActualizer {
+
+class TPortionCategoryCounterAgents: public NColumnShard::TCommonCountersOwner {
+private:
+    using TBase = NColumnShard::TCommonCountersOwner;
+public:
+    const std::shared_ptr RecordsCount;
+    const std::shared_ptr Count;
+    const std::shared_ptr Bytes;
+    TPortionCategoryCounterAgents(NColumnShard::TCommonCountersOwner& base, const TString& categoryName)
+        : TBase(base, "category", categoryName)
+        , RecordsCount(TBase::GetValueAutoAggregations("ByGranule/Portions/RecordsCount"))
+        , Count(TBase::GetValueAutoAggregations("ByGranule/Portions/Count"))
+        , Bytes(TBase::GetValueAutoAggregations("ByGranule/Portions/Bytes"))
+    {
+    }
+};
+
+class TPortionCategoryCounters {
+private:
+    std::shared_ptr RecordsCount;
+    std::shared_ptr Count;
+    std::shared_ptr Bytes;
+public:
+    TPortionCategoryCounters(TPortionCategoryCounterAgents& agents)
+    {
+        RecordsCount = agents.RecordsCount->GetClient();
+        Count = agents.Count->GetClient();
+        Bytes = agents.Bytes->GetClient();
+    }
+
+    void AddPortion(const std::shared_ptr& p) {
+        RecordsCount->Add(p->NumRows());
+        Count->Add(1);
+        Bytes->Add(p->GetTotalBlobBytes());
+    }
+
+    void RemovePortion(const std::shared_ptr& p) {
+        RecordsCount->Remove(p->NumRows());
+        Count->Remove(1);
+        Bytes->Remove(p->GetTotalBlobBytes());
+    }
+};
+
+class TGlobalCounters: public NColumnShard::TCommonCountersOwner {
+private:
+    using TBase = NColumnShard::TCommonCountersOwner;
+    std::shared_ptr PortionsWaitingEviction;
+    std::shared_ptr PortionsWaitingDelete;
+    std::shared_ptr PortionsLatenessEviction;
+    std::shared_ptr PortionsLatenessDelete;
+    std::shared_ptr PortionsToSyncSchema;
+public:
+
+    TGlobalCounters()
+        : TBase("Actualizer")
+    {
+        PortionsWaitingEviction = std::make_shared(*this, "eviction_waiting");
+        PortionsWaitingDelete = std::make_shared(*this, "delete_waiting");
+        PortionsLatenessEviction = std::make_shared(*this, "eviction_lateness");
+        PortionsLatenessDelete = std::make_shared(*this, "delete_lateness");
+        PortionsToSyncSchema = std::make_shared(*this, "sync_schema");
+    }
+
+    static std::shared_ptr BuildPortionsWaitingEvictionAggregation() {
+        return std::make_shared(*Singleton()->PortionsWaitingEviction);
+    }
+
+    static std::shared_ptr BuildPortionsWaitingDeleteAggregation() {
+        return std::make_shared(*Singleton()->PortionsWaitingDelete);
+    }
+
+    static std::shared_ptr BuildPortionsLatenessEvictionAggregation() {
+        return std::make_shared(*Singleton()->PortionsLatenessEviction);
+    }
+
+    static std::shared_ptr BuildPortionsLatenessDeleteAggregation() {
+        return std::make_shared(*Singleton()->PortionsLatenessDelete);
+    }
+
+    static std::shared_ptr BuildPortionsToSyncSchemaAggregation() {
+        return std::make_shared(*Singleton()->PortionsToSyncSchema);
+    }
+};
+
+class TCounters {
+public:
+    const std::shared_ptr PortionsWaitingEviction;
+    const std::shared_ptr PortionsWaitingDelete;
+    const std::shared_ptr PortionsLatenessEviction;
+    const std::shared_ptr PortionsLatenessDelete;
+    const std::shared_ptr PortionsToSyncSchema;
+
+    TCounters()
+        : PortionsWaitingEviction(TGlobalCounters::BuildPortionsWaitingEvictionAggregation())
+        , PortionsWaitingDelete(TGlobalCounters::BuildPortionsWaitingDeleteAggregation())
+        , PortionsLatenessEviction(TGlobalCounters::BuildPortionsLatenessEvictionAggregation())
+        , PortionsLatenessDelete(TGlobalCounters::BuildPortionsLatenessDeleteAggregation())
+        , PortionsToSyncSchema(TGlobalCounters::BuildPortionsToSyncSchemaAggregation())
+    {
+    }
+
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/counters/ya.make b/ydb/core/tx/columnshard/engines/storage/actualizer/counters/ya.make
new file mode 100644
index 000000000000..d73b370747be
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/counters/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+    counters.cpp
+)
+
+PEERDIR(
+    ydb/library/actors/core
+    ydb/core/tx/columnshard/engines/portions
+    ydb/core/tx/columnshard/counters/common
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/index/index.cpp b/ydb/core/tx/columnshard/engines/storage/actualizer/index/index.cpp
new file mode 100644
index 000000000000..91805b0ef283
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/index/index.cpp
@@ -0,0 +1,54 @@
+#include "index.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NActualizer {
+
+void TGranuleActualizationIndex::ExtractActualizationTasks(TTieringProcessContext& tasksContext, const NActualizer::TExternalTasksContext& externalContext) const {
+    TInternalTasksContext internalContext;
+    for (auto&& i : Actualizers) {
+        i->ExtractTasks(tasksContext, externalContext, internalContext);
+    }
+}
+
+void TGranuleActualizationIndex::AddPortion(const std::shared_ptr& portion, const TAddExternalContext& context) {
+    for (auto&& i : Actualizers) {
+        i->AddPortion(portion, context);
+    }
+}
+
+void TGranuleActualizationIndex::RemovePortion(const std::shared_ptr& portion) {
+    for (auto&& i : Actualizers) {
+        i->RemovePortion(portion->GetPortionId());
+    }
+}
+
+void TGranuleActualizationIndex::RefreshTiering(const std::optional& info, const TAddExternalContext& context) {
+    AFL_VERIFY(TieringActualizer);
+    TieringActualizer->Refresh(info, context);
+    NYDBTest::TControllers::GetColumnShardController()->OnActualizationRefreshTiering();
+}
+
+void TGranuleActualizationIndex::RefreshScheme(const TAddExternalContext& context) {
+    AFL_VERIFY(SchemeActualizer);
+    SchemeActualizer->Refresh(context);
+    NYDBTest::TControllers::GetColumnShardController()->OnActualizationRefreshScheme();
+}
+
+TGranuleActualizationIndex::TGranuleActualizationIndex(const ui64 pathId, const TVersionedIndex& versionedIndex)
+    : PathId(pathId)
+    , VersionedIndex(versionedIndex)
+{
+    Y_UNUSED(PathId);
+}
+
+void TGranuleActualizationIndex::Start() {
+    AFL_VERIFY(Actualizers.empty());
+    TieringActualizer = std::make_shared(PathId, VersionedIndex);
+    SchemeActualizer = std::make_shared(PathId, VersionedIndex);
+    Actualizers.emplace_back(TieringActualizer);
+    Actualizers.emplace_back(SchemeActualizer);
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/index/index.h b/ydb/core/tx/columnshard/engines/storage/actualizer/index/index.h
new file mode 100644
index 000000000000..a67fac3a5cdb
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/index/index.h
@@ -0,0 +1,37 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+class TVersionedIndex;
+class TTiering;
+}
+
+namespace NKikimr::NOlap::NActualizer {
+class TTieringActualizer;
+class TSchemeActualizer;
+
+class TGranuleActualizationIndex {
+private:
+    TCounters Counters;
+    std::vector> Actualizers;
+
+    std::shared_ptr TieringActualizer;
+    std::shared_ptr SchemeActualizer;
+
+    const ui64 PathId;
+    const TVersionedIndex& VersionedIndex;
+public:
+    void Start();
+    TGranuleActualizationIndex(const ui64 pathId, const TVersionedIndex& versionedIndex);
+
+    void ExtractActualizationTasks(TTieringProcessContext& tasksContext, const NActualizer::TExternalTasksContext& externalContext) const;
+
+    void RefreshTiering(const std::optional& info, const TAddExternalContext& context);
+    void RefreshScheme(const TAddExternalContext& context);
+
+    void AddPortion(const std::shared_ptr& portion, const TAddExternalContext& context);
+    void RemovePortion(const std::shared_ptr& portion);
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/index/ya.make b/ydb/core/tx/columnshard/engines/storage/actualizer/index/ya.make
new file mode 100644
index 000000000000..8308be890dca
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/index/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+    index.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/scheme/versions
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/scheme/counters.cpp b/ydb/core/tx/columnshard/engines/storage/actualizer/scheme/counters.cpp
new file mode 100644
index 000000000000..146a8700def1
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/scheme/counters.cpp
@@ -0,0 +1,5 @@
+#include "counters.h"
+
+namespace NKikimr::NOlap::NStorageOptimizer::NBuckets {
+
+}
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/scheme/counters.h b/ydb/core/tx/columnshard/engines/storage/actualizer/scheme/counters.h
new file mode 100644
index 000000000000..8f5ab2ff4311
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/scheme/counters.h
@@ -0,0 +1,47 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NActualizer {
+
+class TSchemeGlobalCounters: public NColumnShard::TCommonCountersOwner {
+private:
+    using TBase = NColumnShard::TCommonCountersOwner;
+
+    std::shared_ptr QueueSizeInternalWrite;
+    std::shared_ptr QueueSizeExternalWrite;
+public:
+    TSchemeGlobalCounters()
+        : TBase("SchemeActualizer")
+    {
+        QueueSizeExternalWrite = TBase::GetValueAutoAggregations("Granule/Scheme/Actualization/QueueSize/ExternalWrite");
+        QueueSizeInternalWrite = TBase::GetValueAutoAggregations("Granule/Scheme/Actualization/QueueSize/InternalWrite");
+    }
+
+    static std::shared_ptr BuildQueueSizeExternalWrite() {
+        return Singleton()->QueueSizeExternalWrite->GetClient();
+    }
+
+    static std::shared_ptr BuildQueueSizeInternalWrite() {
+        return Singleton()->QueueSizeInternalWrite->GetClient();
+    }
+
+};
+
+class TSchemeCounters {
+public:
+    const std::shared_ptr QueueSizeInternalWrite;
+    const std::shared_ptr QueueSizeExternalWrite;
+
+    TSchemeCounters()
+        : QueueSizeInternalWrite(TSchemeGlobalCounters::BuildQueueSizeInternalWrite())
+        , QueueSizeExternalWrite(TSchemeGlobalCounters::BuildQueueSizeExternalWrite())
+{
+    }
+
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/scheme/scheme.cpp b/ydb/core/tx/columnshard/engines/storage/actualizer/scheme/scheme.cpp
new file mode 100644
index 000000000000..b2def23842d4
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/scheme/scheme.cpp
@@ -0,0 +1,117 @@
+#include "scheme.h"
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NActualizer {
+
+std::optional TSchemeActualizer::BuildActualizationInfo(const TPortionInfo& portion) const {
+    AFL_VERIFY(TargetSchema);
+    const TString& currentTierName = portion.GetTierNameDef(IStoragesManager::DefaultStorageId);
+    auto portionSchema = portion.GetSchema(VersionedIndex);
+    if (portionSchema->GetVersion() < TargetSchema->GetVersion()) {
+        auto storagesWrite = TargetSchema->GetIndexInfo().GetUsedStorageIds(currentTierName);
+        auto storagesRead = portionSchema->GetIndexInfo().GetUsedStorageIds(currentTierName);
+        TRWAddress address(std::move(storagesRead), std::move(storagesWrite));
+        return TFullActualizationInfo(std::move(address), TargetSchema);
+    }
+    return {};
+}
+
+void TSchemeActualizer::DoAddPortion(const TPortionInfo& info, const TAddExternalContext& addContext) {
+    if (!TargetSchema) {
+        return;
+    }
+    if (!addContext.GetPortionExclusiveGuarantee()) {
+        if (PortionsInfo.contains(info.GetPortionId())) {
+            return;
+        }
+    } else {
+        AFL_VERIFY(!PortionsInfo.contains(info.GetPortionId()));
+    }
+    auto actualizationInfo = BuildActualizationInfo(info);
+    if (!actualizationInfo) {
+        return;
+    }
+    NYDBTest::TControllers::GetColumnShardController()->AddPortionForActualizer(1);
+    AFL_VERIFY(PortionsToActualizeScheme[actualizationInfo->GetAddress()].emplace(info.GetPortionId()).second);
+    AFL_VERIFY(PortionsInfo.emplace(info.GetPortionId(), actualizationInfo->ExtractFindId()).second);
+}
+
+void TSchemeActualizer::DoRemovePortion(const ui64 portionId) {
+    auto it = PortionsInfo.find(portionId);
+    if (it == PortionsInfo.end()) {
+        return;
+    }
+    auto itAddress = PortionsToActualizeScheme.find(it->second.GetRWAddress());
+    AFL_VERIFY(itAddress != PortionsToActualizeScheme.end());
+    AFL_VERIFY(itAddress->second.erase(portionId));
+    NYDBTest::TControllers::GetColumnShardController()->AddPortionForActualizer(-1);
+    if (itAddress->second.empty()) {
+        PortionsToActualizeScheme.erase(itAddress);
+    }
+    PortionsInfo.erase(it);
+}
+
+void TSchemeActualizer::DoExtractTasks(TTieringProcessContext& tasksContext, const TExternalTasksContext& externalContext, TInternalTasksContext& /*internalContext*/) {
+    THashSet portionsToRemove;
+    for (auto&& [address, portions] : PortionsToActualizeScheme) {
+        if (!tasksContext.IsRWAddressAvailable(address)) {
+            continue;
+        }
+        for (auto&& portionId : portions) {
+            auto portion = externalContext.GetPortionVerified(portionId);
+            if (!address.WriteIs(NBlobOperations::TGlobal::DefaultStorageId) && !address.WriteIs(NTiering::NCommon::DeleteTierName)) {
+                if (!portion->HasRuntimeFeature(TPortionInfo::ERuntimeFeature::Optimized)) {
+                    continue;
+                }
+            }
+            auto info = BuildActualizationInfo(*portion);
+            AFL_VERIFY(info);
+            auto portionScheme = portion->GetSchema(VersionedIndex);
+            TPortionEvictionFeatures features(portionScheme, info->GetTargetScheme(), portion->GetTierNameDef(IStoragesManager::DefaultStorageId));
+            features.SetTargetTierName(portion->GetTierNameDef(IStoragesManager::DefaultStorageId));
+
+            if (!tasksContext.AddPortion(*portion, std::move(features), {})) {
+                break;
+            } else {
+                portionsToRemove.emplace(portion->GetPortionId());
+            }
+        }
+    }
+    for (auto&& i : portionsToRemove) {
+        RemovePortion(i);
+    }
+
+    ui64 waitQueueExternal = 0;
+    ui64 waitQueueInternal = 0;
+    for (auto&& i : PortionsToActualizeScheme) {
+        if (i.first.WriteIs(IStoragesManager::DefaultStorageId)) {
+            waitQueueInternal += i.second.size();
+        } else {
+            waitQueueExternal += i.second.size();
+        }
+    }
+    Counters.QueueSizeInternalWrite->SetValue(waitQueueInternal);
+    Counters.QueueSizeExternalWrite->SetValue(waitQueueExternal);
+
+}
+
+void TSchemeActualizer::Refresh(const TAddExternalContext& externalContext) {
+    TargetSchema = VersionedIndex.GetLastCriticalSchema();
+    if (!TargetSchema) {
+        AFL_VERIFY(PortionsInfo.empty());
+    } else {
+        NYDBTest::TControllers::GetColumnShardController()->AddPortionForActualizer(-1 * PortionsInfo.size());
+        PortionsInfo.clear();
+        PortionsToActualizeScheme.clear();
+        for (auto&& i : externalContext.GetPortions()) {
+            AddPortion(i.second, externalContext);
+        }
+    }
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/scheme/scheme.h b/ydb/core/tx/columnshard/engines/storage/actualizer/scheme/scheme.h
new file mode 100644
index 000000000000..f67335d1f553
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/scheme/scheme.h
@@ -0,0 +1,73 @@
+#pragma once
+#include "counters.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NActualizer {
+
+class TSchemeActualizer: public IActualizer {
+private:
+    const TSchemeCounters Counters;
+    THashMap> PortionsToActualizeScheme;
+    std::shared_ptr TargetSchema;
+    const ui64 PathId;
+    const TVersionedIndex& VersionedIndex;
+
+    class TFindActualizationInfo {
+    private:
+        TRWAddress RWAddress;
+    public:
+        const TRWAddress& GetRWAddress() const {
+            return RWAddress;
+        }
+
+        TFindActualizationInfo(TRWAddress&& rwAddress)
+            : RWAddress(std::move(rwAddress)) {
+
+        }
+    };
+
+    THashMap PortionsInfo;
+
+    class TFullActualizationInfo {
+    private:
+        TRWAddress Address;
+        YDB_ACCESSOR_DEF(std::shared_ptr, TargetScheme);
+    public:
+        TFindActualizationInfo ExtractFindId() {
+            return TFindActualizationInfo(std::move(Address));
+        }
+
+        TString DebugString() const {
+            return TStringBuilder() << "{address=" << Address.DebugString() << ";target_scheme=" << TargetScheme->DebugString() << "}";
+        }
+
+        const TRWAddress& GetAddress() const {
+            return Address;
+        }
+
+        TFullActualizationInfo(TRWAddress&& address, const std::shared_ptr& targetScheme)
+            : Address(std::move(address))
+            , TargetScheme(targetScheme) {
+
+        }
+    };
+
+    std::optional BuildActualizationInfo(const TPortionInfo& portion) const;
+
+protected:
+    virtual void DoAddPortion(const TPortionInfo& info, const TAddExternalContext& context) override;
+    virtual void DoRemovePortion(const ui64 portionId) override;
+    virtual void DoExtractTasks(TTieringProcessContext& tasksContext, const TExternalTasksContext& externalContext, TInternalTasksContext& internalContext) override;
+public:
+    void Refresh(const TAddExternalContext& externalContext);
+
+    TSchemeActualizer(const ui64 pathId, const TVersionedIndex& versionedIndex)
+        : PathId(pathId)
+        , VersionedIndex(versionedIndex) {
+        Y_UNUSED(PathId);
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/scheme/ya.make b/ydb/core/tx/columnshard/engines/storage/actualizer/scheme/ya.make
new file mode 100644
index 000000000000..39bde6f3d885
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/scheme/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+    scheme.cpp
+    counters.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/scheme/versions
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/counters.cpp b/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/counters.cpp
new file mode 100644
index 000000000000..146a8700def1
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/counters.cpp
@@ -0,0 +1,5 @@
+#include "counters.h"
+
+namespace NKikimr::NOlap::NStorageOptimizer::NBuckets {
+
+}
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/counters.h b/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/counters.h
new file mode 100644
index 000000000000..7d7a1cc3d830
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/counters.h
@@ -0,0 +1,78 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NActualizer {
+
+class TTieringGlobalCounters: public NColumnShard::TCommonCountersOwner {
+private:
+    using TBase = NColumnShard::TCommonCountersOwner;
+
+    std::shared_ptr QueueSizeToEvict;
+    std::shared_ptr QueueSizeToDelete;
+    std::shared_ptr DifferenceWaitToEvict;
+    std::shared_ptr DifferenceWaitToDelete;
+    NMonitoring::TDynamicCounters::TCounterPtr SkipEvictionForCompaction;
+    NMonitoring::TDynamicCounters::TCounterPtr SkipEvictionForLimit;
+public:
+    TTieringGlobalCounters()
+        : TBase("TieringActualizer")
+    {
+        QueueSizeToEvict = TBase::GetValueAutoAggregations("Granule/Eviction/QueueSize");
+        QueueSizeToDelete = TBase::GetValueAutoAggregations("Granule/Deletion/QueueSize");
+        DifferenceWaitToEvict = TBase::GetValueAutoAggregations("Granule/Eviction/WaitingInSeconds");
+        DifferenceWaitToDelete = TBase::GetValueAutoAggregations("Granule/Deletion/WaitingInSeconds");
+        SkipEvictionForCompaction = TBase::GetDeriviative("Eviction/SkipForCompaction");
+        SkipEvictionForLimit = TBase::GetDeriviative("Eviction/SkipForLimit");
+    }
+
+    static NMonitoring::TDynamicCounters::TCounterPtr GetSkipEvictionForLimit() {
+        return Singleton()->SkipEvictionForLimit;
+    }
+
+    static NMonitoring::TDynamicCounters::TCounterPtr GetSkipEvictionForCompaction() {
+        return Singleton()->SkipEvictionForCompaction;
+    }
+
+    static std::shared_ptr BuildQueueSizeToEvict() {
+        return Singleton()->QueueSizeToEvict->GetClient();
+    }
+
+    static std::shared_ptr BuildQueueSizeToDelete() {
+        return Singleton()->QueueSizeToDelete->GetClient();
+    }
+
+    static std::shared_ptr BuildDifferenceWaitToEvict() {
+        return Singleton()->DifferenceWaitToEvict->GetClient();
+    }
+
+    static std::shared_ptr BuildDifferenceWaitToDelete() {
+        return Singleton()->DifferenceWaitToDelete->GetClient();
+    }
+
+};
+
+class TTieringCounters {
+public:
+    const std::shared_ptr QueueSizeToEvict;
+    const std::shared_ptr QueueSizeToDelete;
+    const std::shared_ptr DifferenceWaitToEvict;
+    const std::shared_ptr DifferenceWaitToDelete;
+    const NMonitoring::TDynamicCounters::TCounterPtr SkipEvictionForCompaction;
+    const NMonitoring::TDynamicCounters::TCounterPtr SkipEvictionForLimit;
+
+    TTieringCounters()
+        : QueueSizeToEvict(TTieringGlobalCounters::BuildQueueSizeToEvict())
+        , QueueSizeToDelete(TTieringGlobalCounters::BuildQueueSizeToDelete())
+        , DifferenceWaitToEvict(TTieringGlobalCounters::BuildDifferenceWaitToEvict())
+        , DifferenceWaitToDelete(TTieringGlobalCounters::BuildDifferenceWaitToDelete())
+        , SkipEvictionForCompaction(TTieringGlobalCounters::GetSkipEvictionForCompaction())
+        , SkipEvictionForLimit(TTieringGlobalCounters::GetSkipEvictionForLimit()) {
+    }
+
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/tiering.cpp b/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/tiering.cpp
new file mode 100644
index 000000000000..ffd7bb2274a1
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/tiering.cpp
@@ -0,0 +1,184 @@
+#include "tiering.h"
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NActualizer {
+
+std::shared_ptr TTieringActualizer::GetTargetSchema(const std::shared_ptr& portionSchema) const {
+    if (!TargetCriticalSchema) {
+        return portionSchema;
+    }
+    if (portionSchema->GetVersion() < TargetCriticalSchema->GetVersion()) {
+        return TargetCriticalSchema;
+    }
+    return portionSchema;
+}
+
+std::optional TTieringActualizer::BuildActualizationInfo(const TPortionInfo& portion, const TInstant now) const {
+    std::shared_ptr portionSchema = portion.GetSchema(VersionedIndex);
+    std::shared_ptr targetSchema = GetTargetSchema(portionSchema);
+    const TString& currentTierName = portion.GetTierNameDef(IStoragesManager::DefaultStorageId);
+
+    if (Tiering) {
+        AFL_VERIFY(TieringColumnId);
+        auto statOperator = portionSchema->GetIndexInfo().GetStatistics(NStatistics::TIdentifier(NStatistics::EType::Max, {*TieringColumnId}));
+        std::shared_ptr max;
+        if (!statOperator) {
+            max = portion.MaxValue(*TieringColumnId);
+            if (!max) {
+                AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "scalar_less_not_max");
+                return {};
+            }
+        } else {
+            NYDBTest::TControllers::GetColumnShardController()->OnStatisticsUsage(statOperator);
+            max = statOperator.GetScalarVerified(portion.GetMeta().GetStatisticsStorage());
+        }
+        auto tieringInfo = Tiering->GetTierToMove(max, now);
+        AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("tiering_info", tieringInfo.DebugString());
+        std::optional d;
+        std::set storagesWrite;
+        TString targetTierName;
+        if (portion.GetTierNameDef(IStoragesManager::DefaultStorageId) != tieringInfo.GetCurrentTierName()) {
+            d = -1 * tieringInfo.GetCurrentTierLag().GetValue();
+            targetTierName = tieringInfo.GetCurrentTierName();
+        } else if (tieringInfo.GetNextTierName()) {
+            d = tieringInfo.GetNextTierWaitingVerified().GetValue();
+            targetTierName = tieringInfo.GetNextTierNameVerified();
+        }
+        if (d) {
+            //            if (currentTierName == "deploy_logs_s3" && targetTierName == IStoragesManager::DefaultStorageId) {
+            //                AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("tiering_info", tieringInfo.DebugString())("max", max->ToString())("now", now.ToString())("d", *d)("tiering", Tiering->GetDebugString())("pathId", PathId);
+            //                AFL_VERIFY(false)("tiering_info", tieringInfo.DebugString())("max", max->ToString())("now", now.ToString())("d", *d)("tiering", Tiering->GetDebugString())("pathId", PathId);
+            //            }
+            auto storagesWrite = targetSchema->GetIndexInfo().GetUsedStorageIds(targetTierName);
+            auto storagesRead = portionSchema->GetIndexInfo().GetUsedStorageIds(currentTierName);
+            return TFullActualizationInfo(TRWAddress(std::move(storagesRead), std::move(storagesWrite)), targetTierName, *d, targetSchema);
+        }
+    } else if (currentTierName != IStoragesManager::DefaultStorageId) {
+        //        if (currentTierName == "deploy_logs_s3") {
+        //            AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("pathId", PathId);
+        //            AFL_VERIFY(false)("pathId", PathId);
+        //        }
+        auto storagesWrite = targetSchema->GetIndexInfo().GetUsedStorageIds(IStoragesManager::DefaultStorageId);
+        auto storagesRead = portionSchema->GetIndexInfo().GetUsedStorageIds(currentTierName);
+        TRWAddress address(std::move(storagesRead), std::move(storagesWrite));
+        return TFullActualizationInfo(std::move(address), IStoragesManager::DefaultStorageId, 0, targetSchema);
+    }
+    return {};
+}
+
+void TTieringActualizer::DoAddPortion(const TPortionInfo& portion, const TAddExternalContext& addContext) {
+    if (!addContext.GetPortionExclusiveGuarantee()) {
+        if (PortionsInfo.contains(portion.GetPortionId())) {
+            return;
+        }
+    } else {
+        AFL_VERIFY(!PortionsInfo.contains(portion.GetPortionId()));
+    }
+    auto info = BuildActualizationInfo(portion, addContext.GetNow());
+    if (!info) {
+        return;
+    }
+    AFL_VERIFY(PortionIdByWaitDuration[info->GetAddress()].AddPortion(*info, portion.GetPortionId(), addContext.GetNow() - StartInstant));
+    auto address = info->GetAddress();
+    TFindActualizationInfo findId(std::move(address), info->GetWaitDuration() + (addContext.GetNow() - StartInstant));
+    AFL_VERIFY(PortionsInfo.emplace(portion.GetPortionId(), std::move(findId)).second);
+}
+
+void TTieringActualizer::DoRemovePortion(const ui64 portionId) {
+    auto it = PortionsInfo.find(portionId);
+    if (it == PortionsInfo.end()) {
+        return;
+    }
+    auto itAddress = PortionIdByWaitDuration.find(it->second.GetRWAddress());
+    AFL_VERIFY(itAddress != PortionIdByWaitDuration.end());
+    if (itAddress->second.RemovePortion(it->second, portionId)) {
+        PortionIdByWaitDuration.erase(itAddress);
+    }
+    PortionsInfo.erase(it);
+}
+
+void TTieringActualizer::DoExtractTasks(TTieringProcessContext& tasksContext, const TExternalTasksContext& externalContext, TInternalTasksContext& /*internalContext*/) {
+    THashSet portionIds;
+    for (auto&& [address, addressPortions] : PortionIdByWaitDuration) {
+        if (!tasksContext.IsRWAddressAvailable(address)) {
+            Counters.SkipEvictionForLimit->Add(1);
+            continue;
+        }
+        for (auto&& [duration, portions] : addressPortions.GetPortions()) {
+            if (duration - (tasksContext.Now - StartInstant) > TDuration::Zero()) {
+                break;
+            }
+            bool limitEnriched = false;
+            for (auto&& p : portions) {
+                auto portion = externalContext.GetPortionVerified(p);
+                if (!address.WriteIs(NBlobOperations::TGlobal::DefaultStorageId) && !address.WriteIs(NTiering::NCommon::DeleteTierName)) {
+                    if (!portion->HasRuntimeFeature(TPortionInfo::ERuntimeFeature::Optimized)) {
+                        Counters.SkipEvictionForCompaction->Add(1);
+                        continue;
+                    }
+                }
+                auto info = BuildActualizationInfo(*portion, tasksContext.Now);
+                AFL_VERIFY(info);
+                auto portionScheme = portion->GetSchema(VersionedIndex);
+                TPortionEvictionFeatures features(portionScheme, info->GetTargetScheme(), portion->GetTierNameDef(IStoragesManager::DefaultStorageId));
+                features.SetTargetTierName(info->GetTargetTierName());
+
+                if (!tasksContext.AddPortion(*portion, std::move(features), info->GetLateness())) {
+                    limitEnriched = true;
+                    break;
+                } else {
+                    portionIds.emplace(portion->GetPortionId());
+                }
+            }
+            if (limitEnriched) {
+                break;
+            }
+        }
+    }
+    for (auto&& i : portionIds) {
+        RemovePortion(i);
+    }
+
+    ui64 waitDurationEvict = 0;
+    ui64 waitQueueEvict = 0;
+    ui64 waitDurationDelete = 0;
+    ui64 waitQueueDelete = 0;
+    for (auto&& i : PortionIdByWaitDuration) {
+        std::shared_ptr waitDurationSignal;
+        std::shared_ptr queueSizeSignal;
+        if (i.first.WriteIs(NTiering::NCommon::DeleteTierName)) {
+            i.second.CorrectSignals(waitQueueDelete, waitDurationDelete, tasksContext.Now - StartInstant);
+        } else {
+            i.second.CorrectSignals(waitQueueEvict, waitDurationEvict, tasksContext.Now - StartInstant);
+        }
+    }
+    Counters.DifferenceWaitToDelete->SetValue(waitDurationDelete);
+    Counters.DifferenceWaitToEvict->SetValue(waitDurationEvict);
+    Counters.QueueSizeToDelete->SetValue(waitQueueDelete);
+    Counters.QueueSizeToEvict->SetValue(waitQueueEvict);
+
+}
+
+void TTieringActualizer::Refresh(const std::optional& info, const TAddExternalContext& externalContext) {
+    StartInstant = externalContext.GetNow();
+    Tiering = info;
+    if (Tiering) {
+        TieringColumnId = VersionedIndex.GetLastSchema()->GetColumnId(Tiering->GetTtlColumn());
+    } else {
+        TieringColumnId = {};
+    }
+    TargetCriticalSchema = VersionedIndex.GetLastCriticalSchema();
+    PortionsInfo.clear();
+    PortionIdByWaitDuration.clear();
+
+    for (auto&& i : externalContext.GetPortions()) {
+        AddPortion(i.second, externalContext);
+    }
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/tiering.h b/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/tiering.h
new file mode 100644
index 000000000000..96c8a13c00ce
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/tiering.h
@@ -0,0 +1,142 @@
+#pragma once
+#include "counters.h"
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+class TTiering;
+}
+
+namespace NKikimr::NOlap::NActualizer {
+
+class TTieringActualizer: public IActualizer {
+private:
+    TTieringCounters Counters;
+    class TFullActualizationInfo {
+    private:
+        TRWAddress Address;
+        YDB_ACCESSOR_DEF(TString, TargetTierName);
+        YDB_ACCESSOR_DEF(ISnapshotSchema::TPtr, TargetScheme);
+        i64 WaitDurationValue;
+    public:
+        TString DebugString() const {
+            return TStringBuilder() << "{address=" << Address.DebugString() << ";target_tier=" << TargetTierName << ";wait_duration=" << TDuration::FromValue(WaitDurationValue) << "}";
+        }
+
+        const TRWAddress& GetAddress() const {
+            return Address;
+        }
+
+        TFullActualizationInfo(TRWAddress&& address, const TString& targetTierName, const i64 waitDurationValue, const ISnapshotSchema::TPtr& targetScheme)
+            : Address(std::move(address))
+            , TargetTierName(targetTierName)
+            , TargetScheme(targetScheme)
+            , WaitDurationValue(waitDurationValue)
+        {
+
+        }
+
+        TDuration GetWaitDuration() const {
+            if (WaitDurationValue >= 0) {
+                return TDuration::FromValue(WaitDurationValue);
+            } else {
+                return TDuration::Zero();
+            }
+        }
+
+        TDuration GetLateness() const {
+            if (WaitDurationValue >= 0) {
+                return TDuration::Zero();
+            } else {
+                return TDuration::FromValue(-WaitDurationValue);
+            }
+        }
+    };
+
+    class TFindActualizationInfo {
+    private:
+        TRWAddress RWAddress;
+        YDB_READONLY_DEF(TDuration, WaitDuration);
+    public:
+        const TRWAddress& GetRWAddress() const {
+            return RWAddress;
+        }
+
+        TFindActualizationInfo(TRWAddress&& rwAddress, const TDuration waitDuration)
+            : RWAddress(std::move(rwAddress))
+            , WaitDuration(waitDuration) {
+
+        }
+    };
+
+    class TRWAddressPortionsInfo {
+    private:
+        std::map> Portions;
+    public:
+        const std::map>& GetPortions() const {
+            return Portions;
+        }
+
+        void CorrectSignals(ui64& queueSize, ui64& waitSeconds, const TDuration dCorrect) const {
+            if (Portions.empty()) {
+                return;
+            }
+            for (auto&& i : Portions) {
+                if (i.first > dCorrect) {
+                    break;
+                }
+                queueSize += i.second.size();
+            }
+            if (Portions.begin()->first < dCorrect) {
+                waitSeconds = std::max(waitSeconds, (dCorrect - Portions.begin()->first).Seconds());
+            }
+        }
+
+        [[nodiscard]] bool AddPortion(const TFullActualizationInfo& info, const ui64 portionId, const TDuration dCorrection) {
+            return Portions[info.GetWaitDuration() + dCorrection].emplace(portionId).second;
+        }
+
+        bool RemovePortion(const TFindActualizationInfo& info, const ui64 portionId) {
+            auto itDuration = Portions.find(info.GetWaitDuration());
+            AFL_VERIFY(itDuration != Portions.end());
+            AFL_VERIFY(itDuration->second.erase(portionId));
+            if (itDuration->second.empty()) {
+                Portions.erase(itDuration);
+            }
+            return Portions.empty();
+        }
+    };
+
+    std::optional Tiering;
+    std::optional TieringColumnId;
+
+    std::shared_ptr TargetCriticalSchema;
+    const ui64 PathId;
+    const TVersionedIndex& VersionedIndex;
+
+    TInstant StartInstant = TInstant::Zero();
+    THashMap PortionIdByWaitDuration;
+    THashMap PortionsInfo;
+
+    std::shared_ptr GetTargetSchema(const std::shared_ptr& portionSchema) const;
+
+    std::optional BuildActualizationInfo(const TPortionInfo& portion, const TInstant now) const;
+
+    virtual void DoAddPortion(const TPortionInfo& portion, const TAddExternalContext& addContext) override;
+    virtual void DoRemovePortion(const ui64 portionId) override;
+    virtual void DoExtractTasks(TTieringProcessContext& tasksContext, const TExternalTasksContext& externalContext, TInternalTasksContext& internalContext) override;
+
+public:
+    void Refresh(const std::optional& info, const TAddExternalContext& externalContext);
+
+    TTieringActualizer(const ui64 pathId, const TVersionedIndex& versionedIndex)
+        : PathId(pathId)
+        , VersionedIndex(versionedIndex)
+    {
+        Y_UNUSED(PathId);
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/ya.make b/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/ya.make
new file mode 100644
index 000000000000..cea28ce6b79c
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/tiering/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+    tiering.cpp
+    counters.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/scheme/versions
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/storage/actualizer/ya.make b/ydb/core/tx/columnshard/engines/storage/actualizer/ya.make
new file mode 100644
index 000000000000..0689e11c04e6
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/actualizer/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/storage/actualizer/index
+    ydb/core/tx/columnshard/engines/storage/actualizer/common
+    ydb/core/tx/columnshard/engines/storage/actualizer/abstract
+    ydb/core/tx/columnshard/engines/storage/actualizer/scheme
+    ydb/core/tx/columnshard/engines/storage/actualizer/tiering
+    ydb/core/tx/columnshard/engines/storage/actualizer/counters
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/storage/chunks/column.cpp b/ydb/core/tx/columnshard/engines/storage/chunks/column.cpp
new file mode 100644
index 000000000000..485802b0e3c1
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/chunks/column.cpp
@@ -0,0 +1,18 @@
+#include "column.h"
+#include 
+
+namespace NKikimr::NOlap::NChunks {
+
+std::vector> TChunkPreparation::DoInternalSplitImpl(const TColumnSaver& saver, const std::shared_ptr& counters, const std::vector& splitSizes) const {
+    auto rb = NArrow::TStatusValidator::GetValid(ColumnInfo.GetLoader()->Apply(Data));
+
+    auto chunks = TSimpleSplitter(saver, counters).SplitBySizes(rb, Data, splitSizes);
+    std::vector> newChunks;
+    for (auto&& i : chunks) {
+        Y_ABORT_UNLESS(i.GetSlicedBatch()->num_columns() == 1);
+        newChunks.emplace_back(std::make_shared(saver.Apply(i.GetSlicedBatch()), i.GetSlicedBatch()->column(0), TChunkAddress(GetColumnId(), GetChunkIdxOptional().value_or(0)), ColumnInfo));
+    }
+    return newChunks;
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/storage/chunks/column.h b/ydb/core/tx/columnshard/engines/storage/chunks/column.h
new file mode 100644
index 000000000000..7e05b45a9638
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/chunks/column.h
@@ -0,0 +1,68 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NChunks {
+
+class TChunkPreparation: public IPortionColumnChunk {
+private:
+    using TBase = IPortionColumnChunk;
+    TString Data;
+    TColumnRecord Record;
+    TSimpleColumnInfo ColumnInfo;
+    std::shared_ptr First;
+    std::shared_ptr Last;
+protected:
+    virtual std::vector> DoInternalSplitImpl(const TColumnSaver& saver, const std::shared_ptr& counters, const std::vector& splitSizes) const override;
+    virtual const TString& DoGetData() const override {
+        return Data;
+    }
+    virtual ui32 DoGetRecordsCountImpl() const override {
+        return Record.GetMeta().GetNumRows();
+    }
+    virtual TString DoDebugString() const override {
+        return "";
+    }
+    virtual TSimpleChunkMeta DoBuildSimpleChunkMeta() const override {
+        return Record.GetMeta();
+    }
+    virtual std::shared_ptr DoGetFirstScalar() const override {
+        return First;
+    }
+    virtual std::shared_ptr DoGetLastScalar() const override {
+        return Last;
+    }
+    virtual std::shared_ptr DoCopyWithAnotherBlob(TString&& data, const TSimpleColumnInfo& columnInfo) const override {
+        TColumnRecord cRecord = Record;
+        cRecord.ResetBlobRange();
+        return std::make_shared(std::move(data), cRecord, columnInfo);
+    }
+
+public:
+    const TColumnRecord& GetRecord() const {
+        return Record;
+    }
+
+    TChunkPreparation(const TString& data, const TColumnRecord& columnChunk, const TSimpleColumnInfo& columnInfo)
+        : TBase(columnChunk.ColumnId)
+        , Data(data)
+        , Record(columnChunk)
+        , ColumnInfo(columnInfo) {
+        AFL_VERIFY(Data.size() == Record.BlobRange.Size || Record.BlobRange.Size == 0)("data", Data.size())("record", Record.BlobRange.Size);
+    }
+
+    TChunkPreparation(const TString& data, const std::shared_ptr& column, const TChunkAddress& address, const TSimpleColumnInfo& columnInfo)
+        : TBase(address.GetColumnId())
+        , Data(data)
+        , Record(address, column, columnInfo)
+        , ColumnInfo(columnInfo) {
+        Y_ABORT_UNLESS(column->length());
+        First = NArrow::TStatusValidator::GetValid(column->GetScalar(0));
+        Last = NArrow::TStatusValidator::GetValid(column->GetScalar(column->length() - 1));
+        Record.BlobRange.Size = data.size();
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/storage/chunks/data.cpp b/ydb/core/tx/columnshard/engines/storage/chunks/data.cpp
new file mode 100644
index 000000000000..373c88a765fa
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/chunks/data.cpp
@@ -0,0 +1,11 @@
+#include "data.h"
+#include 
+
+namespace NKikimr::NOlap::NChunks {
+
+void TPortionIndexChunk::DoAddIntoPortionBeforeBlob(const TBlobRangeLink16& bRange, TPortionInfo& portionInfo) const {
+    AFL_VERIFY(!bRange.IsValid());
+    portionInfo.AddIndex(TIndexChunk(GetEntityId(), GetChunkIdxVerified(), RecordsCount, RawBytes, bRange));
+}
+
+}   // namespace NKikimr::NOlap::NIndexes
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/storage/chunks/data.h b/ydb/core/tx/columnshard/engines/storage/chunks/data.h
new file mode 100644
index 000000000000..dfa9189e560b
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/chunks/data.h
@@ -0,0 +1,48 @@
+#pragma once
+#include 
+
+namespace NKikimr::NOlap::NChunks {
+
+class TPortionIndexChunk: public IPortionDataChunk {
+private:
+    using TBase = IPortionDataChunk;
+    const ui32 RecordsCount;
+    const ui64 RawBytes;
+    const TString Data;
+protected:
+    virtual const TString& DoGetData() const override {
+        return Data;
+    }
+    virtual TString DoDebugString() const override {
+        return "";
+    }
+    virtual std::vector> DoInternalSplit(const TColumnSaver& /*saver*/, const std::shared_ptr& /*counters*/, const std::vector& /*splitSizes*/) const override {
+        return {};
+    }
+    virtual bool DoIsSplittable() const override {
+        return false;
+    }
+    virtual std::optional DoGetRecordsCount() const override {
+        return RecordsCount;
+    }
+    virtual std::shared_ptr DoGetFirstScalar() const override {
+        return nullptr;
+    }
+    virtual std::shared_ptr DoGetLastScalar() const override {
+        return nullptr;
+    }
+    virtual void DoAddIntoPortionBeforeBlob(const TBlobRangeLink16& bRange, TPortionInfo& portionInfo) const override;
+    virtual std::shared_ptr DoCopyWithAnotherBlob(TString&& data, const TSimpleColumnInfo& /*columnInfo*/) const override {
+        return std::make_shared(GetChunkAddressVerified(), RecordsCount, RawBytes, std::move(data));
+    }
+public:
+    TPortionIndexChunk(const TChunkAddress& address, const ui32 recordsCount, const ui64 rawBytes, const TString& data)
+        : TBase(address.GetColumnId(), address.GetChunkIdx())
+        , RecordsCount(recordsCount)
+        , RawBytes(rawBytes)
+        , Data(data)
+    {
+    }
+
+};
+}   // namespace NKikimr::NOlap::NChunks
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/storage/chunks/null_column.cpp b/ydb/core/tx/columnshard/engines/storage/chunks/null_column.cpp
new file mode 100644
index 000000000000..9aa56e56eda3
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/chunks/null_column.cpp
@@ -0,0 +1,5 @@
+#include "null_column.h"
+
+namespace NKikimr::NOlap::NChunks {
+
+}
diff --git a/ydb/core/tx/columnshard/engines/storage/chunks/null_column.h b/ydb/core/tx/columnshard/engines/storage/chunks/null_column.h
new file mode 100644
index 000000000000..3b5f078fcd08
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/chunks/null_column.h
@@ -0,0 +1,51 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NChunks {
+
+class TNullChunkPreparation: public IPortionColumnChunk {
+private:
+    using TBase = IPortionColumnChunk;
+    const ui32 RecordsCount;
+    TString Data;
+protected:
+    virtual std::vector> DoInternalSplitImpl(const TColumnSaver& /*saver*/, const std::shared_ptr& /*counters*/,
+                                                                                const std::vector& /*splitSizes*/) const override {
+        AFL_VERIFY(false);
+        return {};
+    }
+    virtual const TString& DoGetData() const override {
+        return Data;
+    }
+    virtual ui32 DoGetRecordsCountImpl() const override {
+        return RecordsCount;
+    }
+    virtual TString DoDebugString() const override {
+        return TStringBuilder() << "rc=" << RecordsCount << ";data_size=" << Data.size() << ";";
+    }
+    virtual TSimpleChunkMeta DoBuildSimpleChunkMeta() const override {
+        AFL_VERIFY(false);
+        return TSimpleChunkMeta(nullptr, false, false);
+    }
+    virtual std::shared_ptr DoGetFirstScalar() const override {
+        return nullptr;
+    }
+    virtual std::shared_ptr DoGetLastScalar() const override {
+        return nullptr;
+    }
+
+public:
+    TNullChunkPreparation(const ui32 columnId, const ui32 recordsCount, const std::shared_ptr& f, const TColumnSaver& saver)
+        : TBase(columnId)
+        , RecordsCount(recordsCount)
+        , Data(saver.Apply(NArrow::TThreadSimpleArraysCache::GetNull(f->type(), recordsCount), f))
+    {
+        Y_ABORT_UNLESS(RecordsCount);
+        SetChunkIdx(0);
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/engines/storage/chunks/ya.make b/ydb/core/tx/columnshard/engines/storage/chunks/ya.make
new file mode 100644
index 000000000000..d61554bd6f0c
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/storage/chunks/ya.make
@@ -0,0 +1,17 @@
+LIBRARY()
+
+SRCS(
+    data.cpp
+    column.cpp
+    null_column.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/splitter/abstract
+    ydb/core/tx/columnshard/splitter
+    ydb/core/tx/columnshard/engines/scheme/versions
+    ydb/core/tx/columnshard/engines/portions
+    ydb/core/tx/columnshard/counters
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/engines/storage/granule.cpp b/ydb/core/tx/columnshard/engines/storage/granule.cpp
index aac2d2bdd1b7..54e7668a1419 100644
--- a/ydb/core/tx/columnshard/engines/storage/granule.cpp
+++ b/ydb/core/tx/columnshard/engines/storage/granule.cpp
@@ -1,18 +1,11 @@
 #include "granule.h"
 #include "storage.h"
-#include 
 #include "optimizer/lbuckets/optimizer.h"
 
-namespace NKikimr::NOlap {
-
-TGranuleAdditiveSummary::ECompactionClass TGranuleMeta::GetCompactionType(const TCompactionLimits& limits) const {
-    return GetAdditiveSummary().GetCompactionClass(
-        limits, ModificationLastTime, TMonotonic::Now());
-}
+#include 
+#include 
 
-ui64 TGranuleMeta::Size() const {
-    return GetAdditiveSummary().GetGranuleSize();
-}
+namespace NKikimr::NOlap {
 
 void TGranuleMeta::UpsertPortion(const TPortionInfo& info) {
     AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("event", "upsert_portion")("portion", info.DebugString())("path_id", GetPathId());
@@ -50,21 +43,11 @@ bool TGranuleMeta::ErasePortion(const ui64 portion) {
     return true;
 }
 
-void TGranuleMeta::AddColumnRecord(const TIndexInfo& indexInfo, const TPortionInfo& portion, const TColumnRecord& rec, const NKikimrTxColumnShard::TIndexPortionMeta* portionMeta) {
-    auto it = Portions.find(portion.GetPortion());
-    AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("event", "add_column_record")("portion_info", portion.DebugString())("record", rec.DebugString());
-    if (it == Portions.end()) {
-        Y_ABORT_UNLESS(portion.Records.empty());
-        auto portionNew = std::make_shared(portion);
-        it = Portions.emplace(portion.GetPortion(), portionNew).first;
-    } else {
-        AFL_VERIFY(it->second->IsEqualWithSnapshots(portion))("self", it->second->DebugString())("item", portion.DebugString());
-    }
-    it->second->AddRecord(indexInfo, rec, portionMeta);
-
-    if (portionMeta) {
-        it->second->InitOperator(Owner->GetStoragesManager()->InitializePortionOperator(*it->second), false);
-    }
+void TGranuleMeta::AddColumnRecordOnLoad(const TIndexInfo& indexInfo, const TPortionInfo& portion, const TColumnChunkLoadContext& rec, const NKikimrTxColumnShard::TIndexPortionMeta* portionMeta) {
+    std::shared_ptr pInfo = UpsertPortionOnLoad(portion);
+    TColumnRecord cRecord(pInfo->RegisterBlobId(rec.GetBlobRange().GetBlobId()), rec, indexInfo.GetColumnFeaturesVerified(rec.GetAddress().GetColumnId()));
+    AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("event", "AddColumnRecordOnLoad")("portion_info", portion.DebugString())("record", cRecord.DebugString());
+    pInfo->AddRecord(indexInfo, cRecord, portionMeta);
 }
 
 void TGranuleMeta::OnAfterChangePortion(const std::shared_ptr portionAfter, NStorageOptimizer::IOptimizerPlanner::TModificationGuard* modificationGuard) {
@@ -78,17 +61,20 @@ void TGranuleMeta::OnAfterChangePortion(const std::shared_ptr port
             } else {
                 OptimizerPlanner->StartModificationGuard().AddPortion(portionAfter);
             }
+            NActualizer::TAddExternalContext context(HasAppData() ? AppDataVerified().TimeProvider->Now() : TInstant::Now(), Portions);
+            ActualizationIndex->AddPortion(portionAfter, context);
         }
+        Stats->OnAddPortion(*portionAfter);
     }
     if (!!AdditiveSummaryCache) {
-        auto g = AdditiveSummaryCache->StartEdit(Counters);
         if (portionAfter && !portionAfter->HasRemoveSnapshot()) {
+            auto g = AdditiveSummaryCache->StartEdit(Counters);
             g.AddPortion(*portionAfter);
         }
     }
 
     ModificationLastTime = TMonotonic::Now();
-    Owner->UpdateGranuleInfo(*this);
+    Stats->UpdateGranuleInfo(*this);
 }
 
 void TGranuleMeta::OnBeforeChangePortion(const std::shared_ptr portionBefore) {
@@ -107,11 +93,13 @@ void TGranuleMeta::OnBeforeChangePortion(const std::shared_ptr por
         PortionInfoGuard.OnDropPortion(portionBefore);
         if (!portionBefore->HasRemoveSnapshot()) {
             OptimizerPlanner->StartModificationGuard().RemovePortion(portionBefore);
+            ActualizationIndex->RemovePortion(portionBefore);
         }
+        Stats->OnRemovePortion(*portionBefore);
     }
     if (!!AdditiveSummaryCache) {
-        auto g = AdditiveSummaryCache->StartEdit(Counters);
         if (portionBefore && !portionBefore->HasRemoveSnapshot()) {
+            auto g = AdditiveSummaryCache->StartEdit(Counters);
             g.RemovePortion(*portionBefore);
         }
     }
@@ -121,14 +109,14 @@ void TGranuleMeta::OnCompactionFinished() {
     AllowInsertionFlag = false;
     Y_ABORT_UNLESS(Activity.erase(EActivity::GeneralCompaction));
     AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "OnCompactionFinished")("info", DebugString());
-    Owner->UpdateGranuleInfo(*this);
+    Stats->UpdateGranuleInfo(*this);
 }
 
 void TGranuleMeta::OnCompactionFailed(const TString& reason) {
     AllowInsertionFlag = false;
     Y_ABORT_UNLESS(Activity.erase(EActivity::GeneralCompaction));
     AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "OnCompactionFailed")("reason", reason)("info", DebugString());
-    Owner->UpdateGranuleInfo(*this);
+    Stats->UpdateGranuleInfo(*this);
 }
 
 void TGranuleMeta::OnCompactionStarted() {
@@ -158,14 +146,14 @@ const NKikimr::NOlap::TGranuleAdditiveSummary& TGranuleMeta::GetAdditiveSummary(
     return *AdditiveSummaryCache;
 }
 
-TGranuleMeta::TGranuleMeta(const ui64 pathId, std::shared_ptr owner, const NColumnShard::TGranuleDataCounters& counters, const TVersionedIndex& versionedIndex)
+TGranuleMeta::TGranuleMeta(const ui64 pathId, const TGranulesStorage& owner, const NColumnShard::TGranuleDataCounters& counters, const TVersionedIndex& versionedIndex)
     : PathId(pathId)
-    , Owner(owner)
     , Counters(counters)
-    , PortionInfoGuard(Owner->GetCounters().BuildPortionBlobsGuard())
+    , PortionInfoGuard(owner.GetCounters().BuildPortionBlobsGuard())
+    , Stats(owner.GetStats())
 {
-    Y_ABORT_UNLESS(Owner);
-    OptimizerPlanner = std::make_shared(PathId, owner->GetStoragesManager(), versionedIndex.GetLastSchema()->GetIndexInfo().GetReplaceKey());
+    OptimizerPlanner = std::make_shared(PathId, owner.GetStoragesManager(), versionedIndex.GetLastSchema()->GetIndexInfo().GetReplaceKey());
+    ActualizationIndex = std::make_shared(PathId, versionedIndex);
 
 }
 
@@ -173,4 +161,17 @@ bool TGranuleMeta::InCompaction() const {
     return Activity.contains(EActivity::GeneralCompaction);
 }
 
+std::shared_ptr TGranuleMeta::UpsertPortionOnLoad(const TPortionInfo& portion) {
+    auto it = Portions.find(portion.GetPortion());
+    AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("event", "UpsertPortionOnLoad")("portion_info", portion.DebugString());
+    if (it == Portions.end()) {
+        Y_ABORT_UNLESS(portion.Records.empty());
+        auto portionNew = std::make_shared(portion);
+        it = Portions.emplace(portion.GetPortion(), portionNew).first;
+    } else {
+        AFL_VERIFY(it->second->IsEqualWithSnapshots(portion))("self", it->second->DebugString())("item", portion.DebugString());
+    }
+    return it->second;
+}
+
 } // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/storage/granule.h b/ydb/core/tx/columnshard/engines/storage/granule.h
index b7423485094d..7113b69256a7 100644
--- a/ydb/core/tx/columnshard/engines/storage/granule.h
+++ b/ydb/core/tx/columnshard/engines/storage/granule.h
@@ -1,13 +1,19 @@
 #pragma once
-#include 
+#include "optimizer/abstract/optimizer.h"
+#include "actualizer/index/index.h"
+
 #include 
 #include 
 #include 
-#include "optimizer/abstract/optimizer.h"
+
+#include 
+#include 
 
 namespace NKikimr::NOlap {
 
 class TGranulesStorage;
+class TGranulesStat;
+class TColumnChunkLoadContext;
 
 class TDataClassSummary: public NColumnShard::TBaseGranuleDataClassSummary {
 private:
@@ -19,8 +25,9 @@ class TDataClassSummary: public NColumnShard::TBaseGranuleDataClassSummary {
     }
 
     void AddPortion(const TPortionInfo& info) {
-        const auto sizes = info.BlobsSizes();
-        PortionsSize += sizes.first;
+        ColumnPortionsSize += info.GetColumnBlobBytes();
+        TotalPortionsSize += info.GetTotalBlobBytes();
+        MetadataMemoryPortionsSize += info.GetMetadataMemorySize();
         RecordsCount += info.NumRows();
         ++PortionsCount;
 
@@ -35,9 +42,12 @@ class TDataClassSummary: public NColumnShard::TBaseGranuleDataClassSummary {
     }
 
     void RemovePortion(const TPortionInfo& info) {
-        const auto sizes = info.BlobsSizes();
-        PortionsSize -= sizes.first;
-        Y_ABORT_UNLESS(PortionsSize >= 0);
+        MetadataMemoryPortionsSize -= info.GetMetadataMemorySize();
+        Y_ABORT_UNLESS(MetadataMemoryPortionsSize >= 0);
+        ColumnPortionsSize -= info.GetColumnBlobBytes();
+        Y_ABORT_UNLESS(ColumnPortionsSize >= 0);
+        TotalPortionsSize -= info.GetTotalBlobBytes();
+        Y_ABORT_UNLESS(TotalPortionsSize >= 0);
         RecordsCount -= info.NumRows();
         Y_ABORT_UNLESS(RecordsCount >= 0);
         --PortionsCount;
@@ -60,48 +70,17 @@ class TGranuleAdditiveSummary {
     TDataClassSummary Compacted;
     friend class TGranuleMeta;
 public:
-    enum class ECompactionClass: ui32 {
-        Split = 100,
-        Internal = 50,
-        WaitInternal = 30,
-        NoCompaction = 0
-    };
-
-    ECompactionClass GetCompactionClass(const TCompactionLimits& limits, const TMonotonic lastModification, const TMonotonic now) const {
-        if (GetActivePortionsCount() <= 1) {
-            return ECompactionClass::NoCompaction;
-        }
-        if ((i64)GetGranuleSize() >= limits.GranuleSizeForOverloadPrevent)
-        {
-            return ECompactionClass::Split;
-        }
-
-        if (now - lastModification > TDuration::Seconds(limits.InGranuleCompactSeconds)) {
-            if (GetInserted().GetPortionsCount()) {
-                return ECompactionClass::Internal;
-            }
-        } else {
-            if (GetInserted().GetPortionsCount() > 1 &&
-                (GetInserted().GetPortionsSize() >= limits.GranuleIndexedPortionsSizeLimit ||
-                    GetInserted().GetPortionsCount() >= limits.GranuleIndexedPortionsCountLimit)) {
-                return ECompactionClass::Internal;
-            }
-            if (GetInserted().GetPortionsCount()) {
-                return ECompactionClass::WaitInternal;
-            }
-        }
-
-        return ECompactionClass::NoCompaction;
-    }
-
     const TDataClassSummary& GetInserted() const {
         return Inserted;
     }
     const TDataClassSummary& GetCompacted() const {
         return Compacted;
     }
+    ui64 GetMetadataMemoryPortionsSize() const {
+        return Inserted.GetMetadataMemoryPortionsSize() + Compacted.GetMetadataMemoryPortionsSize();
+    }
     ui64 GetGranuleSize() const {
-        return Inserted.GetPortionsSize() + Compacted.GetPortionsSize();
+        return Inserted.GetTotalPortionsSize() + Compacted.GetTotalPortionsSize();
     }
     ui64 GetActivePortionsCount() const {
         return Inserted.GetPortionsCount() + Compacted.GetPortionsCount();
@@ -165,10 +144,11 @@ class TGranuleMeta: TNonCopyable {
     std::set Activity;
     mutable bool AllowInsertionFlag = false;
     const ui64 PathId;
-    std::shared_ptr Owner;
     const NColumnShard::TGranuleDataCounters Counters;
     NColumnShard::TEngineLogsCounters::TPortionsInfoGuard PortionInfoGuard;
+    std::shared_ptr Stats;
     std::shared_ptr OptimizerPlanner;
+    std::shared_ptr ActualizationIndex;
     std::map>> PortionsByPK;
 
     void OnBeforeChangePortion(const std::shared_ptr portionBefore);
@@ -176,11 +156,35 @@ class TGranuleMeta: TNonCopyable {
     void OnAdditiveSummaryChange() const;
     YDB_READONLY(TMonotonic, LastCompactionInstant, TMonotonic::Zero());
 public:
+    void RefreshTiering(const std::optional& tiering) {
+        NActualizer::TAddExternalContext context(HasAppData() ? AppDataVerified().TimeProvider->Now() : TInstant::Now(), Portions);
+        ActualizationIndex->RefreshTiering(tiering, context);
+    }
+
+    void RefreshScheme() {
+        NActualizer::TAddExternalContext context(HasAppData() ? AppDataVerified().TimeProvider->Now() : TInstant::Now(), Portions);
+        ActualizationIndex->RefreshScheme(context);
+    }
+
+    void ReturnToIndexes(const THashSet& portionIds) {
+        NActualizer::TAddExternalContext context(HasAppData() ? AppDataVerified().TimeProvider->Now() : TInstant::Now(), Portions);
+        context.SetPortionExclusiveGuarantee(false);
+        for (auto&& p : portionIds) {
+            auto it = Portions.find(p);
+            AFL_VERIFY(it != Portions.end());
+            ActualizationIndex->AddPortion(it->second, context);
+        }
+    }
+
+    void StartActualizationIndex() {
+        ActualizationIndex->Start();
+    }
+
     NJson::TJsonValue OptimizerSerializeToJson() const {
         return OptimizerPlanner->SerializeToJsonVisual();
     }
 
-    std::vector GetBucketPositions() const {
+    std::vector GetBucketPositions() const {
         return OptimizerPlanner->GetBucketPositions();
     }
 
@@ -188,17 +192,33 @@ class TGranuleMeta: TNonCopyable {
         LastCompactionInstant = TMonotonic::Now();
     }
 
-    std::shared_ptr GetOptimizationTask(const TCompactionLimits& limits, std::shared_ptr self, const THashSet& busyPortions) const {
-        return OptimizerPlanner->GetOptimizationTask(limits, self, busyPortions);
+    void BuildActualizationTasks(NActualizer::TTieringProcessContext& context) const {
+        NActualizer::TExternalTasksContext extTasks(Portions);
+        ActualizationIndex->ExtractActualizationTasks(context, extTasks);
+    }
+
+    std::shared_ptr GetOptimizationTask(std::shared_ptr self, const std::shared_ptr& locksManager) const {
+        return OptimizerPlanner->GetOptimizationTask(self, locksManager);
     }
 
     const std::map>>& GroupOrderedPortionsByPK() const {
         return PortionsByPK;
     }
 
+    std::map> GetPortionsOlderThenSnapshot(const TSnapshot& border) const {
+        std::map> result;
+        for (auto&& i : Portions) {
+            if (i.second->RecordSnapshotMin() <= border) {
+                result.emplace(i.first, i.second);
+            }
+        }
+        return result;
+    }
+
     void OnAfterPortionsLoad() {
         auto g = OptimizerPlanner->StartModificationGuard();
         for (auto&& i : Portions) {
+            i.second->OnAfterLoad();
             OnAfterChangePortion(i.second, &g);
         }
     }
@@ -214,27 +234,22 @@ class TGranuleMeta: TNonCopyable {
         return result;
     }
 
-    TGranuleAdditiveSummary::ECompactionClass GetCompactionType(const TCompactionLimits& limits) const;
     const TGranuleAdditiveSummary& GetAdditiveSummary() const;
 
     NStorageOptimizer::TOptimizationPriority GetCompactionPriority() const {
         return OptimizerPlanner->GetUsefulMetric();
     }
 
+    bool IsLockedOptimizer(const std::shared_ptr& dataLocksManager) const {
+        return OptimizerPlanner->IsLocked(dataLocksManager);
+    }
+
     void ActualizeOptimizer(const TInstant currentInstant) const {
         if (currentInstant - OptimizerPlanner->GetActualizationInstant() > TDuration::Seconds(1)) {
             OptimizerPlanner->Actualize(currentInstant);
         }
     }
 
-    bool NeedCompaction(const TCompactionLimits& limits) const {
-        if (InCompaction() || Empty()) {
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "granule_skipped_by_state")("path_id", GetPathId())("granule_size", Size());
-            return false;
-        }
-        return GetCompactionType(limits) != TGranuleAdditiveSummary::ECompactionClass::NoCompaction;
-    }
-
     bool InCompaction() const;
 
     bool IsErasable() const {
@@ -257,12 +272,22 @@ class TGranuleMeta: TNonCopyable {
             ;
     }
 
-    void AddColumnRecord(const TIndexInfo& indexInfo, const TPortionInfo& portion, const TColumnRecord& rec, const NKikimrTxColumnShard::TIndexPortionMeta* portionMeta);
+    std::shared_ptr UpsertPortionOnLoad(const TPortionInfo& portion);
+
+    void AddColumnRecordOnLoad(const TIndexInfo& indexInfo, const TPortionInfo& portion, const TColumnChunkLoadContext& rec, const NKikimrTxColumnShard::TIndexPortionMeta* portionMeta);
 
     const THashMap>& GetPortions() const {
         return Portions;
     }
 
+    std::vector> GetPortionsVector() const {
+        std::vector> result;
+        for (auto&& i : Portions) {
+            result.emplace_back(i.second);
+        }
+        return result;
+    }
+
     ui64 GetPathId() const {
         return PathId;
     }
@@ -273,7 +298,7 @@ class TGranuleMeta: TNonCopyable {
         return *it->second;
     }
 
-    std::shared_ptr GetPortionPtr(const ui64 portion) const {
+    std::shared_ptr GetPortionOptional(const ui64 portion) const {
         auto it = Portions.find(portion);
         if (it == Portions.end()) {
             return nullptr;
@@ -283,11 +308,9 @@ class TGranuleMeta: TNonCopyable {
 
     bool ErasePortion(const ui64 portion);
 
-    explicit TGranuleMeta(const ui64 pathId, std::shared_ptr owner, const NColumnShard::TGranuleDataCounters& counters, const TVersionedIndex& versionedIndex);
+    explicit TGranuleMeta(const ui64 pathId, const TGranulesStorage& owner, const NColumnShard::TGranuleDataCounters& counters, const TVersionedIndex& versionedIndex);
 
     bool Empty() const noexcept { return Portions.empty(); }
-
-    ui64 Size() const;
 };
 
 } // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/optimizer.cpp b/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/optimizer.cpp
index 4c6265d14850..6394b18b319c 100644
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/optimizer.cpp
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/optimizer.cpp
@@ -3,16 +3,9 @@
 
 namespace NKikimr::NOlap::NStorageOptimizer {
 
-std::shared_ptr IOptimizerPlanner::GetOptimizationTask(const TCompactionLimits& limits, std::shared_ptr granule, const THashSet& busyPortions) const {
+std::shared_ptr IOptimizerPlanner::GetOptimizationTask(std::shared_ptr granule, const std::shared_ptr& dataLocksManager) const {
     NActors::TLogContextGuard g(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("path_id", PathId));
-    auto result = DoGetOptimizationTask(limits, granule, busyPortions);
-    if (!!result) {
-        auto portions = result->GetTouchedPortions();
-        for (auto&& i : portions) {
-            AFL_VERIFY(!busyPortions.contains(i))("portion_address", i.DebugString());
-        }
-    }
-    return result;
+    return DoGetOptimizationTask(granule, dataLocksManager);
 }
 
 } // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/optimizer.h b/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/optimizer.h
index 9e9d1e222e3f..8090de1dee6d 100644
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/optimizer.h
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/abstract/optimizer.h
@@ -1,13 +1,15 @@
 #pragma once
 #include 
-#include 
 #include 
 #include 
+#include 
 
 namespace NKikimr::NOlap {
-struct TCompactionLimits;
 class TGranuleMeta;
 class TColumnEngineChanges;
+namespace NDataLocks {
+class TManager;
+}
 }
 
 namespace NKikimr::NOlap::NStorageOptimizer {
@@ -55,7 +57,7 @@ class IOptimizerPlanner {
     YDB_READONLY(TInstant, ActualizationInstant, TInstant::Zero());
 protected:
     virtual void DoModifyPortions(const THashMap>& add, const THashMap>& remove) = 0;
-    virtual std::shared_ptr DoGetOptimizationTask(const TCompactionLimits& limits, std::shared_ptr granule, const THashSet& busyPortions) const = 0;
+    virtual std::shared_ptr DoGetOptimizationTask(std::shared_ptr granule, const std::shared_ptr& dataLocksManager) const = 0;
     virtual TOptimizationPriority DoGetUsefulMetric() const = 0;
     virtual void DoActualize(const TInstant currentInstant) = 0;
     virtual TString DoDebugString() const {
@@ -64,7 +66,8 @@ class IOptimizerPlanner {
     virtual NJson::TJsonValue DoSerializeToJsonVisual() const {
         return NJson::JSON_NULL;
     }
-    
+    virtual bool DoIsLocked(const std::shared_ptr& dataLocksManager) const = 0;
+
 public:
     using TFactory = NObjectFactory::TObjectFactory;
     IOptimizerPlanner(const ui64 pathId)
@@ -115,7 +118,10 @@ class IOptimizerPlanner {
         return DoDebugString();
     }
 
-    virtual std::vector GetBucketPositions() const = 0;
+    virtual std::vector GetBucketPositions() const = 0;
+    bool IsLocked(const std::shared_ptr& dataLocksManager) const {
+        return DoIsLocked(dataLocksManager);
+    }
 
     NJson::TJsonValue SerializeToJsonVisual() const {
         return DoSerializeToJsonVisual();
@@ -126,7 +132,7 @@ class IOptimizerPlanner {
         DoModifyPortions(add, remove);
     }
 
-    std::shared_ptr GetOptimizationTask(const TCompactionLimits& limits, std::shared_ptr granule, const THashSet& busyPortions) const;
+    std::shared_ptr GetOptimizationTask(std::shared_ptr granule, const std::shared_ptr& dataLocksManager) const;
     TOptimizationPriority GetUsefulMetric() const {
         return DoGetUsefulMetric();
     }
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/blob_size.cpp b/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/blob_size.cpp
deleted file mode 100644
index da20b6420059..000000000000
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/blob_size.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#include "blob_size.h"
-#include 
-#include 
-
-namespace NKikimr::NOlap::NStorageOptimizer {
-
-std::shared_ptr TBlobsWithSizeLimit::BuildMergeTask(const TCompactionLimits& limits, std::shared_ptr granule, const THashSet& busyPortions) const {
-    if (PortionsSize > (i64)SizeLimitToMerge || PortionsCount > CountLimitToMerge) {
-        i64 currentSum = 0;
-        std::vector> portions;
-        std::optional tierName;
-        for (auto&& i : Portions) {
-            for (auto&& c : i.second) {
-                if (busyPortions.contains(c.second->GetAddress())) {
-                    continue;
-                }
-                if (c.second->GetMeta().GetTierName() && (!tierName || *tierName < c.second->GetMeta().GetTierName())) {
-                    tierName = c.second->GetMeta().GetTierName();
-                }
-                currentSum += c.second->GetBlobBytes();
-                portions.emplace_back(c.second);
-                if (currentSum > (i64)32 * 1024 * 1024) {
-                    break;
-                }
-            }
-            if (currentSum > (i64)32 * 1024 * 1024) {
-                break;
-            }
-        }
-        if (currentSum > SizeLimitToMerge || PortionsCount > CountLimitToMerge) {
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "take_granule_with_small")("portions", portions.size())("current_sum", currentSum);
-            TSaverContext saverContext(StoragesManager->GetOperator(tierName.value_or(IStoragesManager::DefaultStorageId)), StoragesManager);
-            return std::make_shared(limits.GetSplitSettings(), granule, portions, saverContext);
-        } else {
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "take_granule_with_small")("skip", "not_enough_data");
-        }
-    } else {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "take_granule_with_small")("event", "skip_by_condition");
-    }
-    return nullptr;
-}
-
-} // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/blob_size.h b/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/blob_size.h
deleted file mode 100644
index df4eb4d35807..000000000000
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/blob_size.h
+++ /dev/null
@@ -1,145 +0,0 @@
-#pragma once
-#include "counters.h"
-#include 
-#include 
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap::NStorageOptimizer {
-
-class TBlobsWithSizeLimit {
-private:
-    YDB_READONLY(ui64, SizeLimit, 0);
-    YDB_READONLY(i64, SizeLimitToMerge, (i64)2 * 1024 * 1024);
-    YDB_READONLY(i64, CountLimitToMerge, 8);
-    YDB_READONLY(i64, PortionsSize, 0);
-    YDB_READONLY(i64, PortionsCount, 0);
-    std::map>> Portions;
-    std::shared_ptr Counters;
-    std::shared_ptr StoragesManager;
-public:
-    TString DebugString() const {
-        return TStringBuilder()
-            << "p_count=" << PortionsCount << ";"
-            << "p_count_by_key=" << Portions.size() << ";"
-            ;
-    }
-
-    TBlobsWithSizeLimit(const ui64 limit, const std::shared_ptr& counters, const std::shared_ptr& storagesManager)
-        : SizeLimit(limit)
-        , Counters(counters)
-        , StoragesManager(storagesManager)
-    {
-
-    }
-
-    std::shared_ptr BuildMergeTask(const TCompactionLimits& limits, std::shared_ptr granule, const THashSet& busyPortions) const;
-
-    void AddPortion(const std::shared_ptr& portion) {
-        AFL_VERIFY(portion->BlobsBytes() < SizeLimit);
-        AFL_VERIFY(Portions[portion->IndexKeyStart()].emplace(portion->GetPortion(), portion).second);
-        PortionsSize += portion->BlobsBytes();
-        ++PortionsCount;
-        Counters->OnAddSmallPortion();
-    }
-
-    void RemovePortion(const std::shared_ptr& portion) {
-        auto it = Portions.find(portion->IndexKeyStart());
-        AFL_VERIFY(it != Portions.end());
-        AFL_VERIFY(it->second.erase(portion->GetPortion()));
-        if (!it->second.size()) {
-            Portions.erase(it);
-        }
-        PortionsSize -= portion->BlobsBytes();
-        AFL_VERIFY(PortionsSize >= 0);
-        --PortionsCount;
-        AFL_VERIFY(PortionsCount >= 0);
-        Counters->OnRemoveSmallPortion();
-    }
-
-    std::optional GetWeight() const {
-        Y_ABORT_UNLESS(Counters->GetSmallCounts() == PortionsCount);
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("portions_opt_count", PortionsCount)("counter", (ui64)Counters->SmallPortionsByGranule.get());
-        if (PortionsSize > SizeLimitToMerge || PortionsCount > CountLimitToMerge) {
-            return TOptimizationPriority::Critical(PortionsCount);
-        } else {
-            return {};
-        }
-    }
-};
-
-class TBlobsBySize {
-private:
-    std::map BlobsBySizeLimit;
-public:
-    TString DebugString() const {
-        TStringBuilder sb;
-        sb << "(";
-        for (auto&& i : BlobsBySizeLimit) {
-            sb << "(" << i.first << ":" << i.second.DebugString() << ");";
-        }
-        sb << ")";
-        return sb;
-    }
-
-    void AddPortion(const std::shared_ptr& portion) {
-        auto it = BlobsBySizeLimit.upper_bound(portion->GetBlobBytes());
-        if (it != BlobsBySizeLimit.end()) {
-            it->second.AddPortion(portion);
-        }
-    }
-
-    void RemovePortion(const std::shared_ptr& portion) {
-        auto it = BlobsBySizeLimit.upper_bound(portion->GetBlobBytes());
-        if (it != BlobsBySizeLimit.end()) {
-            it->second.RemovePortion(portion);
-        }
-    }
-
-    std::optional GetWeight() const {
-        std::optional result;
-        for (auto&& i : BlobsBySizeLimit) {
-            auto w = i.second.GetWeight();
-            if (!w) {
-                continue;
-            }
-            if (!result || *result < *w) {
-                result = w;
-            }
-        }
-        return result;
-    }
-
-    const TBlobsWithSizeLimit* GetMaxWeightLimiter() const {
-        std::optional resultWeight;
-        const TBlobsWithSizeLimit* result = nullptr;
-        for (auto&& i : BlobsBySizeLimit) {
-            auto w = i.second.GetWeight();
-            if (!w) {
-                continue;
-            }
-            if (!resultWeight || *resultWeight < *w) {
-                resultWeight = w;
-                result = &i.second;
-            }
-        }
-        return result;
-    }
-
-    std::shared_ptr BuildMergeTask(const TCompactionLimits& limits, std::shared_ptr granule, const THashSet& busyPortions) const {
-        auto* limiter = GetMaxWeightLimiter();
-        if (!limiter) {
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("fail", "limiter absent");
-            return nullptr;
-        }
-        return limiter->BuildMergeTask(limits, granule, busyPortions);
-    }
-
-    TBlobsBySize(const std::shared_ptr& counters, const std::shared_ptr& storagesManager) {
-//        BlobsBySizeLimit.emplace(512 * 1024, TBlobsWithSizeLimit(512 * 1024, counters, storagesManager));
-        BlobsBySizeLimit.emplace(1024 * 1024, TBlobsWithSizeLimit(1024 * 1024, counters, storagesManager));
-    }
-};
-
-} // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/counters.cpp b/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/counters.cpp
deleted file mode 100644
index a8c1f6920c1a..000000000000
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/counters.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "counters.h"
-
-namespace NKikimr::NOlap::NStorageOptimizer {
-
-} // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/counters.h b/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/counters.h
deleted file mode 100644
index e43f9acda67a..000000000000
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/counters.h
+++ /dev/null
@@ -1,98 +0,0 @@
-#pragma once
-#include 
-#include 
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap::NStorageOptimizer {
-
-class TGlobalCounters: public NColumnShard::TCommonCountersOwner {
-private:
-    using TBase = NColumnShard::TCommonCountersOwner;
-    NMonitoring::TDynamicCounters::TCounterPtr SmallPortionsCount;
-    std::shared_ptr HistogramOverlappedIntervalsCount;
-    std::shared_ptr HistogramOverlappedIntervalsPackedSizeCount;
-    std::shared_ptr HistogramOverlappedIntervalsRawSizeCount;
-    std::shared_ptr SmallPortionsCountByGranule;
-public:
-    TGlobalCounters()
-        : TBase("IntervalsStorageOptimizer") {
-        SmallPortionsCountByGranule = TBase::GetValueAutoAggregations("Granule/SmallPortions/Count");
-        SmallPortionsCount = TBase::GetValue("SmallPortions/Count");
-
-        const std::set borders = {0, 1, 2, 4, 8, 16, 32, 64};
-        HistogramOverlappedIntervalsCount = std::make_shared("IntervalsStorageOptimizer", "OverlappedIntervals/Count", "", borders);
-        HistogramOverlappedIntervalsPackedSizeCount = std::make_shared("IntervalsStorageOptimizer", "OverlappedIntervals/Size/Packed", "", borders);
-        HistogramOverlappedIntervalsRawSizeCount = std::make_shared("IntervalsStorageOptimizer", "OverlappedIntervals/Size/Raw", "", borders);
-    }
-
-    static std::shared_ptr BuildClientSmallPortionsAggregation() {
-        return Singleton()->SmallPortionsCountByGranule->GetClient();
-    }
-
-    static std::shared_ptr BuildGuardIntervalsOverlapping() {
-        return Singleton()->HistogramOverlappedIntervalsCount->BuildGuard();
-    }
-
-    static std::shared_ptr BuildGuardIntervalsPackedSizeOverlapping() {
-        return Singleton()->HistogramOverlappedIntervalsPackedSizeCount->BuildGuard();
-    }
-
-    static std::shared_ptr BuildGuardIntervalsRawSizeOverlapping() {
-        return Singleton()->HistogramOverlappedIntervalsRawSizeCount->BuildGuard();
-    }
-
-    static std::shared_ptr BuildSmallPortionsGuard() {
-        return std::make_shared(Singleton()->SmallPortionsCount);
-    }
-
-};
-
-class TCounters {
-private:
-    std::shared_ptr IntervalsGuard;
-    std::shared_ptr IntervalsPackedSizeGuard;
-    std::shared_ptr IntervalsRawSizeGuard;
-    std::shared_ptr SmallPortionsCount;
-public:
-    std::shared_ptr SmallPortionsByGranule;
-    i64 GetSmallCounts() const {
-        return SmallPortionsByGranule->GetValueSimple();
-    }
-
-    TCounters() {
-        IntervalsGuard = TGlobalCounters::BuildGuardIntervalsOverlapping();
-        IntervalsPackedSizeGuard = TGlobalCounters::BuildGuardIntervalsPackedSizeOverlapping();
-        IntervalsRawSizeGuard = TGlobalCounters::BuildGuardIntervalsRawSizeOverlapping();
-        SmallPortionsCount = TGlobalCounters::BuildSmallPortionsGuard();
-        SmallPortionsByGranule = TGlobalCounters::BuildClientSmallPortionsAggregation();
-    }
-
-    void OnRemoveIntervalsCount(const ui32 count, const ui64 rawSize, const ui64 packedSize) {
-        IntervalsGuard->Sub(count, 1);
-        IntervalsPackedSizeGuard->Sub(count, packedSize);
-        IntervalsRawSizeGuard->Sub(count, rawSize);
-    }
-
-    void OnAddIntervalsCount(const ui32 count, const ui64 rawSize, const ui64 packedSize) {
-        IntervalsGuard->Add(count, 1);
-        IntervalsPackedSizeGuard->Add(count, packedSize);
-        IntervalsRawSizeGuard->Add(count, rawSize);
-    }
-
-    void OnAddSmallPortion() {
-        SmallPortionsCount->Add(1);
-        SmallPortionsByGranule->Add(1);
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("add_opt_count", SmallPortionsByGranule->GetValueSimple())("counter", (ui64)SmallPortionsByGranule.get());
-    }
-
-    void OnRemoveSmallPortion() {
-        SmallPortionsCount->Sub(1);
-        SmallPortionsByGranule->Remove(1);
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("remove_opt_count", SmallPortionsByGranule->GetValueSimple())("counter", (ui64)SmallPortionsByGranule.get());
-    }
-
-};
-
-}
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/optimizer.cpp b/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/optimizer.cpp
deleted file mode 100644
index a31ebe4eb6a6..000000000000
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/optimizer.cpp
+++ /dev/null
@@ -1,212 +0,0 @@
-#include "optimizer.h"
-#include 
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap::NStorageOptimizer {
-
-std::vector> TIntervalsOptimizerPlanner::GetPortionsForIntervalStartedIn(const NArrow::TReplaceKey& keyStart, const ui32 countExpectation) const {
-    std::vector> result;
-    auto it = Positions.find(keyStart);
-    AFL_VERIFY(it != Positions.end());
-    THashSet portionsCurrentlyClosed;
-    auto itReverse = make_reverse_iterator(it);
-    AFL_VERIFY(itReverse != Positions.rbegin());
-    --itReverse;
-    for (; itReverse != Positions.rend(); ++itReverse) {
-        for (auto&& i : itReverse->second.GetPositions()) {
-            if (i.first.GetIsStart()) {
-                if (!portionsCurrentlyClosed.erase(i.first.GetPortionId())) {
-                    result.emplace_back(i.second.GetPortionPtr());
-                }
-            } else {
-                AFL_VERIFY(portionsCurrentlyClosed.emplace(i.first.GetPortionId()).second);
-            }
-        }
-        if (result.size() == countExpectation) {
-            return result;
-        }
-    }
-    AFL_VERIFY(false)("result.size()", result.size())("expectation", countExpectation);
-    return result;
-}
-
-std::shared_ptr TIntervalsOptimizerPlanner::DoGetOptimizationTask(const TCompactionLimits& limits, std::shared_ptr granule, const THashSet& busyPortions) const {
-    if (auto result = SizeProblemBlobs.BuildMergeTask(limits, granule, busyPortions)) {
-        return result;
-    }
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("skip", "no_small_portion_tasks");
-    return nullptr;
-    if (RangedSegments.empty()) {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "no_ranged_segments");
-        return nullptr;
-    }
-    auto& topSegment = **RangedSegments.rbegin()->second.begin();
-    auto& features = topSegment.GetFeatures();
-    std::vector> portions = GetPortionsForIntervalStartedIn(topSegment.GetPosition(), features.GetPortionsCount());
-
-    if (portions.size() <= 1) {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "take_granule_skip")("features", features.DebugJson().GetStringRobust())("reason", "one_portion");
-        return nullptr;
-    }
-
-    std::optional tierName;
-    for (auto&& i : portions) {
-        if (i->GetMeta().GetTierName() && (!tierName || *tierName < i->GetMeta().GetTierName())) {
-            tierName = i->GetMeta().GetTierName();
-        }
-        if (busyPortions.contains(i->GetAddress())) {
-            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "take_granule_skip")("features", features.DebugJson().GetStringRobust())
-                ("count", features.GetPortionsCount())("reason", "busy_portion")("portion_address", i->GetAddress().DebugString());
-            return nullptr;
-        }
-    }
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "take_granule")("features", features.DebugJson().GetStringRobust())("count", features.GetPortionsCount());
-
-    TSaverContext saverContext(StoragesManager->GetOperator(tierName.value_or(IStoragesManager::DefaultStorageId)), StoragesManager);
-    return std::make_shared(limits.GetSplitSettings(), granule, portions, saverContext);
-}
-
-void TIntervalsOptimizerPlanner::RemovePortion(const std::shared_ptr& info) {
-    AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("event", "remove_portion")("portion_id", info->GetPortion());
-    auto itStart = Positions.find(info->IndexKeyStart());
-    auto itFinish = Positions.find(info->IndexKeyEnd());
-    Y_ABORT_UNLESS(itStart != Positions.end());
-    Y_ABORT_UNLESS(itFinish != Positions.end());
-    if (itStart == itFinish) {
-        RemoveRanged(itStart->second);
-        itStart->second.RemoveSummary(info);
-        AddRanged(itStart->second);
-        if (itStart->second.RemoveStart(info) || itStart->second.RemoveFinish(info)) {
-            RemoveRanged(itStart->second);
-            Positions.erase(itStart);
-        }
-    } else {
-        for (auto it = itStart; it != itFinish; ++it) {
-            RemoveRanged(it->second);
-            it->second.RemoveSummary(info);
-            AddRanged(it->second);
-        }
-        if (itStart->second.RemoveStart(info)) {
-            RemoveRanged(itStart->second);
-            Positions.erase(itStart);
-        }
-        if (itFinish->second.RemoveFinish(info)) {
-            RemoveRanged(itFinish->second);
-            Positions.erase(itFinish);
-        }
-    }
-    AFL_VERIFY(RangedSegments.empty() == Positions.empty())("rs_size", RangedSegments.size())("p_size", Positions.size());
-}
-
-void TIntervalsOptimizerPlanner::AddPortion(const std::shared_ptr& info) {
-    AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("event", "add_portion")("portion_id", info->GetPortion());
-    auto itStart = Positions.find(info->IndexKeyStart());
-    if (itStart == Positions.end()) {
-        itStart = Positions.emplace(info->IndexKeyStart(), TBorderPositions(info->IndexKeyStart())).first;
-        if (itStart != Positions.begin()) {
-            auto itStartCopy = itStart;
-            --itStartCopy;
-            itStart->second.CopyFrom(itStartCopy->second);
-            AddRanged(itStart->second);
-        }
-    }
-    auto itEnd = Positions.find(info->IndexKeyEnd());
-    if (itEnd == Positions.end()) {
-        itEnd = Positions.emplace(info->IndexKeyEnd(), TBorderPositions(info->IndexKeyEnd())).first;
-        Y_ABORT_UNLESS(itEnd != Positions.begin());
-        auto itEndCopy = itEnd;
-        --itEndCopy;
-        itEnd->second.CopyFrom(itEndCopy->second);
-        AddRanged(itEnd->second);
-        itStart = Positions.find(info->IndexKeyStart());
-    }
-    Y_ABORT_UNLESS(itStart != Positions.end());
-    Y_ABORT_UNLESS(itEnd != Positions.end());
-    itStart->second.AddStart(info);
-    itEnd->second.AddFinish(info);
-    if (itStart != itEnd) {
-        for (auto it = itStart; it != itEnd; ++it) {
-            RemoveRanged(it->second);
-            it->second.AddSummary(info);
-            AFL_VERIFY(!!it->second.GetFeatures());
-            AddRanged(it->second);
-        }
-    } else {
-        RemoveRanged(itStart->second);
-        itStart->second.AddSummary(info);
-        AddRanged(itStart->second);
-    }
-    AFL_VERIFY(RangedSegments.empty() == Positions.empty())("rs_size", RangedSegments.size())("p_size", Positions.size());
-}
-
-void TIntervalsOptimizerPlanner::DoModifyPortions(const THashMap>& add, const THashMap>& remove) {
-    for (auto&& [_, i] : remove) {
-        SizeProblemBlobs.RemovePortion(i);
-        RemovePortion(i);
-    }
-    for (auto&& [_, i] : add) {
-        SizeProblemBlobs.AddPortion(i);
-        AddPortion(i);
-    }
-}
-
-void TIntervalsOptimizerPlanner::RemoveRanged(const TBorderPositions& data) {
-    if (!!data.GetFeatures()) {
-        Counters->OnRemoveIntervalsCount(data.GetFeatures().GetPortionsCount(), data.GetFeatures().GetPortionsRawWeight(), data.GetFeatures().GetPortionsWeight());
-        auto itFeatures = RangedSegments.find(data.GetFeatures());
-        Y_ABORT_UNLESS(itFeatures->second.erase(&data));
-        if (itFeatures->second.empty()) {
-            RangedSegments.erase(itFeatures);
-        }
-    }
-}
-
-void TIntervalsOptimizerPlanner::AddRanged(const TBorderPositions& data) {
-    if (!!data.GetFeatures()) {
-        Counters->OnAddIntervalsCount(data.GetFeatures().GetPortionsCount(), data.GetFeatures().GetPortionsRawWeight(), data.GetFeatures().GetPortionsWeight());
-        Y_ABORT_UNLESS(RangedSegments[data.GetFeatures()].emplace(&data).second);
-    }
-}
-
-TIntervalsOptimizerPlanner::TIntervalsOptimizerPlanner(const ui64 pathId, const std::shared_ptr& storagesManager)
-    : TBase(pathId)
-    , StoragesManager(storagesManager)
-    , Counters(std::make_shared())
-    , SizeProblemBlobs(Counters, storagesManager)
-{
-}
-
-TOptimizationPriority TIntervalsOptimizerPlanner::DoGetUsefulMetric() const {
-    auto res = SizeProblemBlobs.GetWeight();
-    if (!!res) {
-        AFL_VERIFY(RangedSegments.size())("positions", Positions.size())("sizes", SizeProblemBlobs.DebugString());
-        return *res;
-    }
-    if (RangedSegments.empty()) {
-        return TOptimizationPriority::Zero();
-    }
-    auto& topSegment = **RangedSegments.rbegin()->second.begin();
-    auto& topFeaturesTask = topSegment.GetFeatures();
-    return TOptimizationPriority::Optimization(topFeaturesTask.GetUsefulMetric());
-}
-
-TString TIntervalsOptimizerPlanner::DoDebugString() const {
-    NJson::TJsonValue result = NJson::JSON_MAP;
-    auto& positions = result.InsertValue("positions", NJson::JSON_ARRAY);
-    for (auto&& i : Positions) {
-        positions.AppendValue(i.second.DebugJson());
-    }
-    return result.GetStringRobust();
-}
-
-void TIntervalsOptimizerPlanner::TBorderPositions::AddSummary(const std::shared_ptr& info) {
-    Features.Add(info);
-}
-
-void TIntervalsOptimizerPlanner::TBorderPositions::RemoveSummary(const std::shared_ptr& info) {
-    Features.Remove(info);
-}
-
-} // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/optimizer.h b/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/optimizer.h
deleted file mode 100644
index 80f3a5edc583..000000000000
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/optimizer.h
+++ /dev/null
@@ -1,256 +0,0 @@
-#pragma once
-#include "optimizer.h"
-#include "counters.h"
-#include "blob_size.h"
-#include 
-#include 
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap::NStorageOptimizer {
-
-class TCounters;
-
-class TSegmentPosition {
-private:
-    std::shared_ptr Portion;
-    const NArrow::TReplaceKey& Position;
-    const bool IsStartFlag;
-    TSegmentPosition(const std::shared_ptr& data, const bool start)
-        : Portion(data)
-        , Position(start ? Portion->IndexKeyStart() : Portion->IndexKeyEnd())
-        , IsStartFlag(start)
-    {
-
-    }
-public:
-
-    NJson::TJsonValue DebugJson() const {
-        NJson::TJsonValue result = NJson::JSON_MAP;
-        result.InsertValue("is_start", IsStartFlag);
-        return result;
-    }
-
-    TString DebugString() const {
-        return TStringBuilder() <<
-            (IsStartFlag ? "ADD" : "REMOVE") << ":" <<
-            Position.DebugString() << ";" <<
-            Portion->DebugString() << ";"
-            ;
-    }
-
-    std::shared_ptr GetPortionPtr() const {
-        return Portion;
-    }
-
-    const TPortionInfo& GetPortion() const {
-        return *Portion;
-    }
-
-    const NArrow::TReplaceKey& GetPosition() const {
-        return Position;
-    }
-
-    static TSegmentPosition Start(const std::shared_ptr& data) {
-        return TSegmentPosition(data, true);
-    }
-
-    static TSegmentPosition Finish(const std::shared_ptr& data) {
-        return TSegmentPosition(data, false);
-    }
-
-    bool operator<(const TSegmentPosition& item) const {
-        return Portion->GetPortion() < item.Portion->GetPortion();
-    }
-};
-
-class TIntervalFeatures {
-private:
-    YDB_READONLY(i32, PortionsCount, 0);
-    YDB_READONLY(i32, RecordsCount, 0);
-    YDB_READONLY(i64, PortionsWeight, 0);
-    YDB_READONLY(i64, PortionsRawWeight, 0);
-    YDB_READONLY(i64, SmallPortionsWeight, 0);
-    YDB_READONLY(i64, SmallPortionsCount, 0);
-public:
-
-    NJson::TJsonValue DebugJson() const {
-        NJson::TJsonValue result = NJson::JSON_MAP;
-        result.InsertValue("p_count", PortionsCount);
-        result.InsertValue("p_weight", PortionsWeight);
-        result.InsertValue("p_raw_weight", PortionsRawWeight);
-        result.InsertValue("sp_count", SmallPortionsCount);
-        result.InsertValue("sp_weight", SmallPortionsWeight);
-        result.InsertValue("r_count", RecordsCount);
-        return result;
-    }
-
-    i64 GetUsefulMetric() const {
-        if (PortionsCount == 1 || PortionsWeight == 0) {
-            return 0;
-        }
-        return (i64)10000 * PortionsCount / (PortionsWeight * 1e-6);
-    }
-
-    double GetUsefulKff() const {
-        if (PortionsCount == 0 || PortionsWeight == 0) {
-            return Max();
-        }
-        Y_ABORT_UNLESS(PortionsWeight);
-        return 1.0 * GetUsefulMetric() / PortionsWeight;
-    }
-
-    void Add(const std::shared_ptr& info) {
-        AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("event", "add_portion_in_summary")("portion_id", info->GetPortion())("count", GetPortionsCount())("this", (ui64)this);
-        ++PortionsCount;
-        const i64 portionBytes = info->BlobsBytes();
-        PortionsWeight += portionBytes;
-        PortionsRawWeight += info->RawBytesSum();
-        RecordsCount += info->NumRows();
-        if ((i64)portionBytes < TSplitSettings().GetMinBlobSize()) {
-            ++SmallPortionsCount;
-            SmallPortionsWeight += portionBytes;
-        }
-    }
-
-    void Remove(const std::shared_ptr& info) {
-        AFL_TRACE(NKikimrServices::TX_COLUMNSHARD)("event", "remove_portion_from_summary")("portion_id", info->GetPortion())("count", GetPortionsCount())("this", (ui64)this);
-        Y_ABORT_UNLESS(--PortionsCount >= 0);
-        const i64 portionBytes = info->BlobsBytes();
-        PortionsWeight -= portionBytes;
-        Y_ABORT_UNLESS(PortionsWeight >= 0);
-        PortionsRawWeight -= info->RawBytesSum();
-        Y_ABORT_UNLESS(PortionsRawWeight >= 0);
-        RecordsCount -= info->NumRows();
-        Y_ABORT_UNLESS(RecordsCount >= 0);
-        if ((i64)portionBytes < TSplitSettings().GetMinBlobSize()) {
-            Y_ABORT_UNLESS(--SmallPortionsCount >= 0);
-            SmallPortionsWeight -= portionBytes;
-            Y_ABORT_UNLESS(SmallPortionsWeight >= 0);
-        }
-    }
-
-    bool operator!() const {
-        return !PortionsCount;
-    }
-
-    bool operator<(const TIntervalFeatures& item) const {
-        return GetUsefulMetric() < item.GetUsefulMetric();
-    }
-    bool IsEnoughWeight() const {
-        return GetPortionsRawWeight() > TSplitSettings().GetMinBlobSize() * 10;
-    }
-
-};
-
-class TIntervalsOptimizerPlanner: public IOptimizerPlanner {
-private:
-    static ui64 LimitSmallBlobsMerge;
-    static ui64 LimitSmallBlobDetect;
-    std::shared_ptr StoragesManager;
-
-    std::shared_ptr Counters;
-
-    using TBase = IOptimizerPlanner;
-
-    class TPortionIntervalPoint {
-    private:
-        YDB_READONLY(ui64, PortionId, 0);
-        YDB_READONLY(bool, IsStart, false);
-    public:
-        TPortionIntervalPoint(const ui64 portionId, const bool isStart)
-            : PortionId(portionId)
-            , IsStart(isStart)
-        {
-
-        }
-
-        bool operator<(const TPortionIntervalPoint& item) const {
-            return std::tie(PortionId, IsStart) < std::tie(item.PortionId, item.IsStart);
-        }
-    };
-
-    class TBorderPositions {
-    private:
-        const NArrow::TReplaceKey Position;
-        std::map Positions;
-        YDB_READONLY_DEF(TIntervalFeatures, Features);
-    public:
-        TBorderPositions(const NArrow::TReplaceKey& position)
-            : Position(position)
-        {
-
-        }
-
-        const std::map& GetPositions() const {
-            return Positions;
-        }
-
-        NJson::TJsonValue DebugJson() const {
-            NJson::TJsonValue result = NJson::JSON_MAP;
-            result.InsertValue("p", Position.DebugString());
-            auto& segments = result.InsertValue("segments", NJson::JSON_ARRAY);
-            for (auto&& i : Positions) {
-                segments.AppendValue(i.second.DebugJson());
-            }
-            result.InsertValue("features", Features.DebugJson());
-            return result;
-        }
-
-        void CopyFrom(const TBorderPositions& source) {
-            Features = source.Features;
-        }
-
-        const NArrow::TReplaceKey& GetPosition() const {
-            return Position;
-        }
-
-        void AddStart(const std::shared_ptr& info) {
-            Y_ABORT_UNLESS(Positions.emplace(TPortionIntervalPoint(info->GetPortion(), true), TSegmentPosition::Start(info)).second);
-        }
-        void AddFinish(const std::shared_ptr& info) {
-            Y_ABORT_UNLESS(Positions.emplace(TPortionIntervalPoint(info->GetPortion(), false), TSegmentPosition::Finish(info)).second);
-        }
-        bool RemoveStart(const std::shared_ptr& info) {
-            Y_ABORT_UNLESS(Positions.erase(TPortionIntervalPoint(info->GetPortion(), true)));
-            return Positions.empty();
-        }
-        bool RemoveFinish(const std::shared_ptr& info) {
-            Y_ABORT_UNLESS(Positions.erase(TPortionIntervalPoint(info->GetPortion(), false)));
-            return Positions.empty();
-        }
-        void AddSummary(const std::shared_ptr& info);
-        void RemoveSummary(const std::shared_ptr& info);
-    };
-
-    std::map> RangedSegments;
-
-    using TPositions = std::map;
-    TPositions Positions;
-    TBlobsBySize SizeProblemBlobs;
-
-    void RemovePortion(const std::shared_ptr& info);
-    void AddPortion(const std::shared_ptr& info);
-
-    void RemoveRanged(const TBorderPositions& data);
-    void AddRanged(const TBorderPositions& data);
-
-    bool RemoveSmallPortion(const std::shared_ptr& info);
-
-    bool AddSmallPortion(const std::shared_ptr& info);
-
-    std::vector> GetPortionsForIntervalStartedIn(const NArrow::TReplaceKey& keyStart, const ui32 countExpectation) const;
-
-protected:
-    virtual void DoModifyPortions(const THashMap>& add, const THashMap>& remove) override;
-    virtual std::shared_ptr DoGetOptimizationTask(const TCompactionLimits& limits, std::shared_ptr granule, const THashSet& busyPortions) const override;
-
-    virtual TOptimizationPriority DoGetUsefulMetric() const override;
-    virtual TString DoDebugString() const override;
-
-public:
-    TIntervalsOptimizerPlanner(const ui64 pathId, const std::shared_ptr& storagesManager);
-};
-
-} // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/ya.make b/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/ya.make
deleted file mode 100644
index f76c42447ab7..000000000000
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/intervals/ya.make
+++ /dev/null
@@ -1,16 +0,0 @@
-LIBRARY()
-
-SRCS(
-    optimizer.cpp
-    blob_size.cpp
-    counters.cpp
-)
-
-PEERDIR(
-    contrib/libs/apache/arrow
-    ydb/core/protos
-    ydb/core/formats/arrow
-    ydb/core/tx/columnshard/engines/changes/abstract
-)
-
-END()
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/counters.cpp b/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/counters.cpp
index 146a8700def1..f6e4cca64311 100644
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/counters.cpp
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/counters.cpp
@@ -1,5 +1,5 @@
 #include "counters.h"
 
-namespace NKikimr::NOlap::NStorageOptimizer::NBuckets {
+namespace NKikimr::NOlap::NActualizer {
 
 }
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/counters.h b/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/counters.h
index 9ab62e8f8801..08e9b51fc59b 100644
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/counters.h
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/counters.h
@@ -39,13 +39,13 @@ class TPortionCategoryCounters {
     void AddPortion(const std::shared_ptr& p) {
         RecordsCount->Add(p->NumRows());
         Count->Add(1);
-        Bytes->Add(p->GetBlobBytes());
+        Bytes->Add(p->GetTotalBlobBytes());
     }
 
     void RemovePortion(const std::shared_ptr& p) {
         RecordsCount->Remove(p->NumRows());
         Count->Remove(1);
-        Bytes->Remove(p->GetBlobBytes());
+        Bytes->Remove(p->GetTotalBlobBytes());
     }
 };
 
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/optimizer.h b/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/optimizer.h
index 531279ccd244..013c2d754aca 100644
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/optimizer.h
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets/optimizer.h
@@ -1,17 +1,21 @@
 #pragma once
 #include "counters.h"
 
-#include 
-#include 
-#include 
+#include 
 #include 
+#include 
+#include 
+#include 
 #include 
+#include 
+#include 
 #include 
+
 #include 
 
 #include 
-#include 
 #include 
+#include 
 
 namespace NKikimr::NOlap::NStorageOptimizer::NBuckets {
 
@@ -27,6 +31,7 @@ class TSimplePortionsGroupInfo {
     YDB_READONLY(i64, Bytes, 0);
     YDB_READONLY(i64, Count, 0);
     YDB_READONLY(i64, RecordsCount, 0);
+
 public:
     NJson::TJsonValue SerializeToJson() const {
         NJson::TJsonValue result = NJson::JSON_MAP;
@@ -41,12 +46,12 @@ class TSimplePortionsGroupInfo {
     }
 
     void AddPortion(const std::shared_ptr& p) {
-        Bytes += p->GetBlobBytes();
+        Bytes += p->GetTotalBlobBytes();
         Count += 1;
         RecordsCount += p->NumRows();
     }
     void RemovePortion(const std::shared_ptr& p) {
-        Bytes -= p->GetBlobBytes();
+        Bytes -= p->GetTotalBlobBytes();
         Count -= 1;
         RecordsCount -= p->NumRows();
         AFL_VERIFY(Bytes >= 0);
@@ -59,11 +64,10 @@ class TPortionsGroupInfo: public TSimplePortionsGroupInfo {
 private:
     using TBase = TSimplePortionsGroupInfo;
     std::shared_ptr Signals;
+
 public:
     TPortionsGroupInfo(const std::shared_ptr& signals)
-        : Signals(signals)
-    {
-
+        : Signals(signals) {
     }
 
     void AddPortion(const std::shared_ptr& p) {
@@ -199,6 +203,44 @@ class TPortionsPool {
     }
 
 public:
+    void InitRuntimeFeature() const {
+        for (auto&& f : Futures) {
+            for (auto&& p : f.second) {
+                p.second->RemoveRuntimeFeature(TPortionInfo::ERuntimeFeature::Optimized);
+            }
+        }
+        for (auto&& i : PreActuals) {
+            i.second->RemoveRuntimeFeature(TPortionInfo::ERuntimeFeature::Optimized);
+        }
+        for (auto&& i : Actuals) {
+            i.second->RemoveRuntimeFeature(TPortionInfo::ERuntimeFeature::Optimized);
+        }
+    }
+
+    bool IsLocked(const std::shared_ptr& dataLocksManager) const {
+        for (auto&& f : Futures) {
+            for (auto&& p : f.second) {
+                if (auto lockInfo = dataLocksManager->IsLocked(*p.second)) {
+                    AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "optimization_locked")("reason", *lockInfo);
+                    return true;
+                }
+            }
+        }
+        for (auto&& i : PreActuals) {
+            if (auto lockInfo = dataLocksManager->IsLocked(*i.second)) {
+                AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "optimization_locked")("reason", *lockInfo);
+                return true;
+            }
+        }
+        for (auto&& i : Actuals) {
+            if (auto lockInfo = dataLocksManager->IsLocked(*i.second)) {
+                AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "optimization_locked")("reason", *lockInfo);
+                return true;
+            }
+        }
+        return false;
+    }
+
     bool Validate(const std::shared_ptr& portion) const {
         if (portion) {
             AFL_VERIFY(!PreActuals.contains(portion->GetPortionId()));
@@ -245,13 +287,13 @@ class TPortionsPool {
 
     TPortionsPool(const std::shared_ptr& counters, const TDuration futureDetector)
         : Counters(counters)
-        , FutureDetector(futureDetector)
-    {
+        , FutureDetector(futureDetector) {
     }
 
     ~TPortionsPool() {
         for (auto&& i : Actuals) {
             Counters->PortionsForMerge->RemovePortion(i.second);
+            Counters->ActualPortions->RemovePortion(i.second);
         }
         for (auto&& f : Futures) {
             for (auto&& i : f.second) {
@@ -361,8 +403,12 @@ class TPortionsPool {
 
         std::vector> result;
         std::shared_ptr predictor = NCompaction::TGeneralCompactColumnEngineChanges::BuildMemoryPredictor();
+        ui64 txSizeLimit = 0;
         for (auto&& i : sorted) {
             result.emplace_back(i);
+            if (txSizeLimit + i->GetTxVolume() > TGlobalLimits::TxWriteLimitBytes / 2) {
+                break;
+            }
             if (predictor->AddPortion(*i) > sizeLimit && result.size() > 1) {
                 break;
             }
@@ -374,6 +420,7 @@ class TPortionsPool {
     }
 
     void Add(const std::shared_ptr& portion, const TInstant now) {
+        portion->RemoveRuntimeFeature(TPortionInfo::ERuntimeFeature::Optimized);
         auto portionMaxSnapshotInstant = TInstant::MilliSeconds(portion->RecordSnapshotMax().GetPlanStep());
         if (now - portionMaxSnapshotInstant < FutureDetector) {
             AFL_VERIFY(AddFuture(portion));
@@ -387,7 +434,8 @@ class TPortionsPool {
         }
     }
 
-    bool Remove(const std::shared_ptr& portion) Y_WARN_UNUSED_RESULT {
+    [[nodiscard]] bool Remove(const std::shared_ptr& portion) {
+        portion->AddRuntimeFeature(TPortionInfo::ERuntimeFeature::Optimized);
         if (RemovePreActual(portion)) {
             return true;
         }
@@ -415,7 +463,8 @@ class TPortionsPool {
         }
     }
 
-    void Actualize(const TInstant currentInstant) {
+    [[nodiscard]] TInstant Actualize(const TInstant currentInstant) {
+        TInstant result = TInstant::Max();
         auto border = GetFutureBorder();
         if (border) {
             for (auto&& i : Futures) {
@@ -423,6 +472,8 @@ class TPortionsPool {
                     for (auto&& p : i.second) {
                         AFL_VERIFY(AddPreActual(p.second));
                     }
+                } else {
+                    result = std::min(result, i.first + FutureDetector);
                 }
             }
             while (Futures.size() && currentInstant - Futures.begin()->first >= FutureDetector) {
@@ -454,6 +505,7 @@ class TPortionsPool {
                 AFL_VERIFY(RemoveActual(i));
             }
         }
+        return result;
     }
 
     void SplitTo(TPortionsPool& dest, const NArrow::TReplaceKey& destStart) {
@@ -510,7 +562,7 @@ class TPortionsPool {
 /*
         const ui64 count = BucketInfo.GetCount() + ((mainPortion && !isFinal) ? 1 : 0);
         //        const ui64 recordsCount = BucketInfo.GetRecordsCount() + ((mainPortion && !isFinal) ? mainPortion->GetRecordsCount() : 0);
-        const ui64 sumBytes = BucketInfo.GetBytes() + ((mainPortion && !isFinal) ? mainPortion->GetBlobBytes() : 0);
+        const ui64 sumBytes = BucketInfo.GetBytes() + ((mainPortion && !isFinal) ? mainPortion->GetTotalBlobBytes() : 0);
         if (count <= 1) {
             return 0;
         }
@@ -527,7 +579,7 @@ class TPortionsPool {
 /*
         const ui64 count = BucketInfo.GetCount() + ((mainPortion && !isFinal) ? 1 : 0);
         //        const ui64 recordsCount = BucketInfo.GetRecordsCount() + ((mainPortion && !isFinal) ? mainPortion->GetRecordsCount() : 0);
-        const ui64 sumBytes = BucketInfo.GetBytes() + ((mainPortion && !isFinal) ? mainPortion->GetBlobBytes() : 0);
+        const ui64 sumBytes = BucketInfo.GetBytes() + ((mainPortion && !isFinal) ? mainPortion->GetTotalBlobBytes() : 0);
         if (count > 1 && (sumBytes > 32 * 1024 * 1024 || !isFinal || count > 100)) {
             return (10000000000.0 * count - sumBytes) * (isFinal ? 1 : 10);
         } else {
@@ -537,7 +589,7 @@ class TPortionsPool {
 
         const ui64 count = BucketInfo.GetCount() + ((mainPortion && !isFinal) ? 1 : 0);
         const ui64 recordsCount = BucketInfo.GetRecordsCount() + ((mainPortion && !isFinal) ? mainPortion->GetRecordsCount() : 0);
-        const ui64 sumBytes = BucketInfo.GetBytes() + ((mainPortion && !isFinal) ? mainPortion->GetBlobBytes() : 0);
+        const ui64 sumBytes = BucketInfo.GetBytes() + ((mainPortion && !isFinal) ? mainPortion->GetTotalBlobBytes() : 0);
         if (NYDBTest::TControllers::GetColumnShardController()->GetCompactionControl() == NYDBTest::EOptimizerCompactionWeightControl::Disable) {
             return 0;
         }
@@ -577,8 +629,11 @@ class TPortionsBucket: public TMoveOnly {
 private:
     std::shared_ptr MainPortion;
     const std::shared_ptr Counters;
+    mutable std::optional LastWeight;
     TPortionsPool Others;
+    TInstant NextActualizeInstant = TInstant::Zero();
     std::optional NextBorder;
+    YDB_READONLY_DEF(std::optional, StartPos);
 
     void MoveNextBorderTo(TPortionsBucket& dest) {
         dest.NextBorder = NextBorder;
@@ -592,23 +647,33 @@ class TPortionsBucket: public TMoveOnly {
     bool Validate() const {
         return Others.Validate(MainPortion);
     }
+
+    void RebuildOptimizedFeature(const TInstant currentInstant) const {
+//        Others.InitRuntimeFeature();
+        if (!MainPortion) {
+            return;
+        }
+        MainPortion->InitRuntimeFeature(TPortionInfo::ERuntimeFeature::Optimized, Others.IsEmpty() && currentInstant > MainPortion->RecordSnapshotMax().GetPlanInstant() +
+            NYDBTest::TControllers::GetColumnShardController()->GetLagForCompactionBeforeTierings(TDuration::Minutes(60)));
+    }
 public:
     class TModificationGuard: TNonCopyable {
     private:
-        const TPortionsBucket& Owner;
+        TPortionsBucket& Owner;
         const bool IsEmptyOthers = false;
         const bool HasNextBorder = false;
+
     public:
-        TModificationGuard(const TPortionsBucket& owner)
+        TModificationGuard(TPortionsBucket& owner)
             : Owner(owner)
             , IsEmptyOthers(Owner.Others.ActualsEmpty())
-            , HasNextBorder(Owner.NextBorder)
-        {
+            , HasNextBorder(Owner.NextBorder) {
             AFL_VERIFY_DEBUG(Owner.Validate());
         }
 
         ~TModificationGuard() {
             AFL_VERIFY_DEBUG(Owner.Validate());
+            Owner.NextActualizeInstant = TInstant::Zero();
             if (!Owner.MainPortion) {
                 return;
             }
@@ -626,6 +691,16 @@ class TPortionsBucket: public TMoveOnly {
         }
     };
 
+    bool IsLocked(const std::shared_ptr& dataLocksManager) const {
+        if (MainPortion) {
+            if (auto lockInfo = dataLocksManager->IsLocked(*MainPortion)) {
+                AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "optimization_locked")("reason", *lockInfo);
+                return true;
+            }
+        }
+        return Others.IsLocked(dataLocksManager);
+    }
+
     bool IsEmpty() const {
         return !MainPortion && Others.IsEmpty();
     }
@@ -634,12 +709,14 @@ class TPortionsBucket: public TMoveOnly {
         return TModificationGuard(*this);
     }
 
-    TPortionsBucket(const std::shared_ptr& portion, const std::shared_ptr& counters)
+    TPortionsBucket(const std::shared_ptr& portion, const std::shared_ptr& pkSchema, const std::shared_ptr& counters)
         : MainPortion(portion)
         , Counters(counters)
         , Others(Counters, GetCommonFreshnessCheckDuration())
     {
         if (MainPortion) {
+            NArrow::NMerger::TSortableBatchPosition sBatchPosition(MainPortion->IndexKeyStart().ToBatch(pkSchema), 0, pkSchema->field_names(), {}, false);
+            StartPos = std::move(sBatchPosition);
             Counters->PortionsAlone->AddPortion(MainPortion);
         }
     }
@@ -694,11 +771,20 @@ class TPortionsBucket: public TMoveOnly {
     }
 
     i64 GetWeight() const {
-        return Others.GetWeight(MainPortion, !NextBorder);
+        LastWeight = Others.GetWeight(MainPortion, !NextBorder);
+        return *LastWeight;
     }
 
-    std::shared_ptr BuildOptimizationTask(const TCompactionLimits& limits, std::shared_ptr granule,
-        const THashSet& busyPortions, const NArrow::TReplaceKey* nextBorder, const std::shared_ptr& primaryKeysSchema,
+    i64 GetLastWeight() const {
+        if (LastWeight) {
+            return *LastWeight;
+        } else {
+            return GetWeight();
+        }
+    }
+
+    std::shared_ptr BuildOptimizationTask(std::shared_ptr granule,
+        const std::shared_ptr& locksManager, const NArrow::TReplaceKey* nextBorder, const std::shared_ptr& primaryKeysSchema,
         const std::shared_ptr& storagesManager) const
     {
         auto youngestPortion = GetYoungestPortion(nextBorder);
@@ -714,6 +800,7 @@ class TPortionsBucket: public TMoveOnly {
         std::optional stopInstant;
         const ui64 memLimit = HasAppData() ? AppDataVerified().ColumnShardConfig.GetCompactionMemoryLimit() : 512 * 1024 * 1024;
         std::vector> portions = Others.GetOptimizerTaskPortions(memLimit, stopPoint);
+        bool forceMergeForTests = false;
         if (nextBorder) {
             if (MainPortion) {
                 portions.emplace_back(MainPortion);
@@ -723,10 +810,16 @@ class TPortionsBucket: public TMoveOnly {
             }
         } else {
             if (MainPortion) {
-                for (auto&& i : portions) {
-                    if (MainPortion->CrossPKWith(*i)) {
-                        portions.emplace_back(MainPortion);
-                        break;
+                if (portions.size() == 1) {
+                    AFL_VERIFY(NYDBTest::TControllers::GetColumnShardController()->GetCompactionControl() == NYDBTest::EOptimizerCompactionWeightControl::Force);
+                    forceMergeForTests = true;
+                    portions.emplace_back(MainPortion);
+                } else {
+                    for (auto&& i : portions) {
+                        if (MainPortion->CrossPKWith(*i)) {
+                            portions.emplace_back(MainPortion);
+                            break;
+                        }
                     }
                 }
             }
@@ -738,26 +831,26 @@ class TPortionsBucket: public TMoveOnly {
         AFL_VERIFY(portions.size() > 1);
         ui64 size = 0;
         for (auto&& i : portions) {
-            size += i->GetBlobBytes();
-            if (busyPortions.contains(i->GetAddress())) {
+            size += i->GetTotalBlobBytes();
+            if (locksManager->IsLocked(*i)) {
                 AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("info", Others.DebugString())("event", "skip_optimization")("reason", "busy");
                 return nullptr;
             }
         }
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("stop_instant", stopInstant.value_or(TInstant::Zero()))("size", size)("next", NextBorder ? NextBorder->DebugString() : "")
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("stop_instant", stopInstant)("size", size)("next", NextBorder ? NextBorder->DebugString() : "")
             ("count", portions.size())("info", Others.DebugString())("event", "start_optimization")("stop_point", stopPoint ? stopPoint->DebugString() : "");
-        TSaverContext saverContext(storagesManager->GetOperator(IStoragesManager::DefaultStorageId), storagesManager);
-        auto result = std::make_shared(limits.GetSplitSettings(), granule, portions, saverContext);
+        TSaverContext saverContext(storagesManager);
+        auto result = std::make_shared(granule, portions, saverContext);
         if (MainPortion) {
-            NIndexedReader::TSortableBatchPosition pos(MainPortion->IndexKeyStart().ToBatch(primaryKeysSchema), 0, primaryKeysSchema->field_names(), {}, false);
-            result->AddCheckPoint(pos, true, false);
+            NArrow::NMerger::TSortableBatchPosition pos(MainPortion->IndexKeyStart().ToBatch(primaryKeysSchema), 0, primaryKeysSchema->field_names(), {}, false);
+            result->AddCheckPoint(pos, false, false);
         }
-        if (!nextBorder && MainPortion) {
-            NIndexedReader::TSortableBatchPosition pos(MainPortion->IndexKeyEnd().ToBatch(primaryKeysSchema), 0, primaryKeysSchema->field_names(), {}, false);
+        if (!nextBorder && MainPortion && !forceMergeForTests) {
+            NArrow::NMerger::TSortableBatchPosition pos(MainPortion->IndexKeyEnd().ToBatch(primaryKeysSchema), 0, primaryKeysSchema->field_names(), {}, false);
             result->AddCheckPoint(pos, true, false);
         }
         if (stopPoint) {
-            NIndexedReader::TSortableBatchPosition pos(stopPoint->ToBatch(primaryKeysSchema), 0, primaryKeysSchema->field_names(), {}, false);
+            NArrow::NMerger::TSortableBatchPosition pos(stopPoint->ToBatch(primaryKeysSchema), 0, primaryKeysSchema->field_names(), {}, false);
             result->AddCheckPoint(pos, false, false);
         }
         return result;
@@ -767,15 +860,15 @@ class TPortionsBucket: public TMoveOnly {
         auto gChartsThis = StartModificationGuard();
         if (NextBorder && MainPortion) {
             AFL_VERIFY(portion->CrossPKWith(MainPortion->IndexKeyStart(), *NextBorder));
+#ifndef NDEBUG
             auto oldPortionInfo = GetOldestPortion(true);
             auto youngPortionInfo = GetYoungestPortion(true);
             AFL_VERIFY(oldPortionInfo && youngPortionInfo);
             AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)
-                ("event", "other_not_final")("delta", youngPortionInfo->RecordSnapshotMax().GetPlanStep() - oldPortionInfo->RecordSnapshotMax().GetPlanStep())
-                ("main", MainPortion->DebugString(true))
-                ("current", portion->DebugString(true))
-                ("oldest", oldPortionInfo->DebugString(true))("young", youngPortionInfo->DebugString(true))
-                ("bucket_from", MainPortion->IndexKeyStart().DebugString())("bucket_to", NextBorder->DebugString());
+            ("event", "other_not_final")("delta", youngPortionInfo->RecordSnapshotMax().GetPlanStep() - oldPortionInfo->RecordSnapshotMax().GetPlanStep())
+                ("main", MainPortion->DebugString(true))("current", portion->DebugString(true))("oldest", oldPortionInfo->DebugString(true))
+                ("young", youngPortionInfo->DebugString(true))("bucket_from", MainPortion->IndexKeyStart().DebugString())("bucket_to", NextBorder->DebugString());
+#endif
         }
         Others.Add(portion, now);
     }
@@ -793,8 +886,12 @@ class TPortionsBucket: public TMoveOnly {
     }
 
     void Actualize(const TInstant currentInstant) {
+        if (currentInstant < NextActualizeInstant) {
+            return;
+        }
         auto gChartsThis = StartModificationGuard();
-        Others.Actualize(currentInstant);
+        NextActualizeInstant = Others.Actualize(currentInstant);
+        RebuildOptimizedFeature(currentInstant);
     }
 
     void SplitOthersWith(TPortionsBucket& dest) {
@@ -833,7 +930,7 @@ class TPortionBuckets {
     }
 
     void RemoveBucketFromRating(const std::shared_ptr& bucket) {
-        auto it = BucketsByWeight.find(bucket->GetWeight());
+        auto it = BucketsByWeight.find(bucket->GetLastWeight());
         AFL_VERIFY(it != BucketsByWeight.end());
         AFL_VERIFY(it->second.erase(bucket.get()));
         if (it->second.empty()) {
@@ -887,7 +984,7 @@ class TPortionBuckets {
     }
 
     void AddBucket(const std::shared_ptr& portion) {
-        auto insertInfo = Buckets.emplace(portion->IndexKeyStart(), std::make_shared(portion, Counters));
+        auto insertInfo = Buckets.emplace(portion->IndexKeyStart(), std::make_shared(portion, PrimaryKeysSchema, Counters));
         AFL_VERIFY(insertInfo.second);
         if (insertInfo.first == Buckets.begin()) {
             RemoveBucketFromRating(LeftBucket);
@@ -902,16 +999,28 @@ class TPortionBuckets {
         }
         AddBucketToRating(insertInfo.first->second);
     }
+
 public:
-    TPortionBuckets(const std::shared_ptr& primaryKeysSchema, const std::shared_ptr& storagesManager, const std::shared_ptr& counters)
+    TPortionBuckets(const std::shared_ptr& primaryKeysSchema, const std::shared_ptr& storagesManager,
+        const std::shared_ptr& counters)
         : PrimaryKeysSchema(primaryKeysSchema)
         , StoragesManager(storagesManager)
-        , LeftBucket(std::make_shared(nullptr, counters))
-        , Counters(counters)
-    {
+        , LeftBucket(std::make_shared(nullptr, primaryKeysSchema, counters))
+        , Counters(counters) {
         AddBucketToRating(LeftBucket);
     }
 
+    bool IsLocked(const std::shared_ptr& dataLocksManager) const {
+        if (BucketsByWeight.empty()) {
+            return false;
+        }
+        if (BucketsByWeight.rbegin()->second.empty()) {
+            return false;
+        }
+        const TPortionsBucket* bucketForOptimization = *BucketsByWeight.rbegin()->second.begin();
+        return bucketForOptimization->IsLocked(dataLocksManager);
+    }
+
     bool IsEmpty() const {
         return Buckets.empty() && LeftBucket->IsEmpty();
     }
@@ -939,7 +1048,7 @@ class TPortionBuckets {
     }
 
     void RemovePortion(const std::shared_ptr& portion) {
-        if (portion->GetBlobBytes() < SmallPortionDetectSizeLimit) {
+        if (portion->GetTotalBlobBytes() < NYDBTest::TControllers::GetColumnShardController()->GetSmallPortionSizeDetector(SmallPortionDetectSizeLimit)) {
             Counters->SmallPortions->RemovePortion(portion);
         }
         if (!RemoveBucket(portion)) {
@@ -947,34 +1056,33 @@ class TPortionBuckets {
         }
     }
 
-    std::shared_ptr BuildOptimizationTask(const TCompactionLimits& limits, std::shared_ptr granule, const THashSet& busyPortions) const {
+    std::shared_ptr BuildOptimizationTask(std::shared_ptr granule, const std::shared_ptr& locksManager) const {
         AFL_VERIFY(BucketsByWeight.size());
         if (!BucketsByWeight.rbegin()->first) {
             return nullptr;
+        }
+        AFL_VERIFY(BucketsByWeight.rbegin()->second.size());
+        const TPortionsBucket* bucketForOptimization = *BucketsByWeight.rbegin()->second.begin();
+        if (bucketForOptimization == LeftBucket.get()) {
+            if (Buckets.size()) {
+                return bucketForOptimization->BuildOptimizationTask(granule, locksManager, &Buckets.begin()->first, PrimaryKeysSchema, StoragesManager);
+            } else {
+                return bucketForOptimization->BuildOptimizationTask(granule, locksManager, nullptr, PrimaryKeysSchema, StoragesManager);
+            }
         } else {
-            AFL_VERIFY(BucketsByWeight.rbegin()->second.size());
-            const TPortionsBucket* bucketForOptimization = *BucketsByWeight.rbegin()->second.begin();
-            if (bucketForOptimization == LeftBucket.get()) {
-                if (Buckets.size()) {
-                    return bucketForOptimization->BuildOptimizationTask(limits, granule, busyPortions, &Buckets.begin()->first, PrimaryKeysSchema, StoragesManager);
-                } else {
-                    return bucketForOptimization->BuildOptimizationTask(limits, granule, busyPortions, nullptr, PrimaryKeysSchema, StoragesManager);
-                }
+            auto it = Buckets.find(bucketForOptimization->GetPortion()->IndexKeyStart());
+            AFL_VERIFY(it != Buckets.end());
+            ++it;
+            if (it != Buckets.end()) {
+                return bucketForOptimization->BuildOptimizationTask(granule, locksManager, &it->first, PrimaryKeysSchema, StoragesManager);
             } else {
-                auto it = Buckets.find(bucketForOptimization->GetPortion()->IndexKeyStart());
-                AFL_VERIFY(it != Buckets.end());
-                ++it;
-                if (it != Buckets.end()) {
-                    return bucketForOptimization->BuildOptimizationTask(limits, granule, busyPortions, &it->first, PrimaryKeysSchema, StoragesManager);
-                } else {
-                    return bucketForOptimization->BuildOptimizationTask(limits, granule, busyPortions, nullptr, PrimaryKeysSchema, StoragesManager);
-                }
+                return bucketForOptimization->BuildOptimizationTask(granule, locksManager, nullptr, PrimaryKeysSchema, StoragesManager);
             }
         }
-   }
+    }
 
     void AddPortion(const std::shared_ptr& portion, const TInstant now) {
-        if (portion->GetBlobBytes() < SmallPortionDetectSizeLimit) {
+        if (portion->GetTotalBlobBytes() < NYDBTest::TControllers::GetColumnShardController()->GetSmallPortionSizeDetector(SmallPortionDetectSizeLimit)) {
             Counters->SmallPortions->AddPortion(portion);
             AddOther(portion, now);
             return;
@@ -989,8 +1097,14 @@ class TPortionBuckets {
         } else {
             if (itFrom == Buckets.end()) {
                 const TDuration freshness = now - TInstant::MilliSeconds(portion->RecordSnapshotMax().GetPlanStep());
-                if (freshness < GetCommonFreshnessCheckDuration() || portion->GetMeta().GetProduced() == NPortion::EProduced::INSERTED) {
-                    AddOther(portion, now);
+                if (Y_LIKELY(!NYDBTest::TControllers::GetColumnShardController()->NeedForceCompactionBacketsConstruction())) {
+                    if (freshness < GetCommonFreshnessCheckDuration() || portion->GetMeta().GetProduced() == NPortion::EProduced::INSERTED) {
+                        AddOther(portion, now);
+                        return;
+                    }
+                }
+                if (Buckets.empty()) {
+                    AddBucket(portion);
                     return;
                 }
             }
@@ -1003,11 +1117,11 @@ class TPortionBuckets {
         }
     }
 
-    std::vector GetBucketPositions() const {
-        std::vector result;
+    std::vector GetBucketPositions() const {
+        std::vector result;
         for (auto&& i : Buckets) {
-            NIndexedReader::TSortableBatchPosition pos(i.second->GetPortion()->IndexKeyStart().ToBatch(PrimaryKeysSchema), 0, PrimaryKeysSchema->field_names(), {}, false);
-            result.emplace_back(pos);
+            AFL_VERIFY(i.second->GetStartPos());
+            result.emplace_back(*i.second->GetStartPos());
         }
         return result;
     }
@@ -1019,7 +1133,12 @@ class TOptimizerPlanner: public IOptimizerPlanner {
     std::shared_ptr Counters;
     TPortionBuckets Buckets;
     const std::shared_ptr StoragesManager;
+
 protected:
+    virtual bool DoIsLocked(const std::shared_ptr& dataLocksManager) const override {
+        return Buckets.IsLocked(dataLocksManager);
+    }
+
     virtual void DoModifyPortions(const THashMap>& add, const THashMap>& remove) override {
         const TInstant now = TInstant::Now();
         for (auto&& [_, i] : remove) {
@@ -1041,13 +1160,13 @@ class TOptimizerPlanner: public IOptimizerPlanner {
             Buckets.AddPortion(i, now);
         }
     }
-    virtual std::shared_ptr DoGetOptimizationTask(const TCompactionLimits& limits, std::shared_ptr granule, const THashSet& busyPortions) const override {
-        return Buckets.BuildOptimizationTask(limits, granule, busyPortions);
-
+    virtual std::shared_ptr DoGetOptimizationTask(std::shared_ptr granule, const std::shared_ptr& locksManager) const override {
+        return Buckets.BuildOptimizationTask(granule, locksManager);
     }
     virtual void DoActualize(const TInstant currentInstant) override {
         Buckets.Actualize(currentInstant);
     }
+
     virtual TOptimizationPriority DoGetUsefulMetric() const override {
         if (Buckets.GetWeight()) {
             return TOptimizationPriority::Critical(Buckets.GetWeight());
@@ -1061,8 +1180,9 @@ class TOptimizerPlanner: public IOptimizerPlanner {
     virtual NJson::TJsonValue DoSerializeToJsonVisual() const override {
         return Buckets.SerializeToJson();
     }
+
 public:
-    virtual std::vector GetBucketPositions() const override {
+    virtual std::vector GetBucketPositions() const override {
         return Buckets.GetBucketPositions();
     }
 
@@ -1070,9 +1190,8 @@ class TOptimizerPlanner: public IOptimizerPlanner {
         : TBase(pathId)
         , Counters(std::make_shared())
         , Buckets(primaryKeysSchema, storagesManager, Counters)
-        , StoragesManager(storagesManager)
-    {
+        , StoragesManager(storagesManager) {
     }
 };
 
-}
+}   // namespace NKikimr::NOlap::NStorageOptimizer::NBuckets
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/levels/counters.cpp b/ydb/core/tx/columnshard/engines/storage/optimizer/levels/counters.cpp
deleted file mode 100644
index 6004ce09169f..000000000000
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/levels/counters.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "counters.h"
-
-namespace NKikimr::NOlap::NStorageOptimizer::NLevels {
-
-} // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/levels/counters.h b/ydb/core/tx/columnshard/engines/storage/optimizer/levels/counters.h
deleted file mode 100644
index c0c3e2ca3d2f..000000000000
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/levels/counters.h
+++ /dev/null
@@ -1,107 +0,0 @@
-#pragma once
-#include 
-#include 
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap::NStorageOptimizer::NLevels {
-
-class TGlobalCounters: public NColumnShard::TCommonCountersOwner {
-private:
-    using TBase = NColumnShard::TCommonCountersOwner;
-    NMonitoring::TDynamicCounters::TCounterPtr SmallPortionsCount;
-    std::shared_ptr SmallPortionsCountByGranule;
-
-    std::shared_ptr CriticalRecordsCount;
-    std::shared_ptr NormalRecordsCount;
-
-    std::shared_ptr OldestCriticalActuality;
-public:
-    TGlobalCounters()
-        : TBase("LevelsStorageOptimizer")
-    {
-        SmallPortionsCount = TBase::GetValue("SmallPortions/Count");
-        CriticalRecordsCount = TBase::GetValueAutoAggregations("Granule/CriticalRecord/Count");
-        NormalRecordsCount = TBase::GetValueAutoAggregations("Granule/NormalRecord/Count");
-        OldestCriticalActuality = TBase::GetValueAutoAggregations("Granule/ActualityMs");
-        SmallPortionsCountByGranule = TBase::GetValueAutoAggregations("Granule/SmallPortions/Count");
-    }
-
-    static std::shared_ptr BuildOldestCriticalActualityAggregation() {
-        return Singleton()->OldestCriticalActuality->GetClient();
-    }
-
-    static std::shared_ptr BuildClientSmallPortionsAggregation() {
-        return Singleton()->SmallPortionsCountByGranule->GetClient();
-    }
-
-    static std::shared_ptr BuildSmallPortionsGuard() {
-        return std::make_shared(Singleton()->SmallPortionsCount);
-    }
-
-    static std::shared_ptr BuildCriticalRecordsCountAggregation() {
-        return Singleton()->CriticalRecordsCount->GetClient();
-    }
-
-    static std::shared_ptr BuildNormalRecordsCountAggregation() {
-        return Singleton()->NormalRecordsCount->GetClient();
-    }
-
-};
-
-class TCounters {
-private:
-    std::shared_ptr CriticalRecordsCount;
-    std::shared_ptr NormalRecordsCount;
-
-    std::shared_ptr OldestCriticalActuality;
-
-    std::shared_ptr SmallPortionsCount;
-    std::shared_ptr SmallPortionsByGranule;
-public:
-    i64 GetSmallCounts() const {
-        return SmallPortionsByGranule->GetValueSimple();
-    }
-
-    TCounters() {
-        CriticalRecordsCount = TGlobalCounters::BuildCriticalRecordsCountAggregation();
-        NormalRecordsCount = TGlobalCounters::BuildNormalRecordsCountAggregation();
-        SmallPortionsCount = TGlobalCounters::BuildSmallPortionsGuard();
-        SmallPortionsByGranule = TGlobalCounters::BuildClientSmallPortionsAggregation();
-        OldestCriticalActuality = TGlobalCounters::BuildOldestCriticalActualityAggregation();
-    }
-
-    void OnMinProblemSnapshot(const TDuration d) {
-        OldestCriticalActuality->SetValue(d.MilliSeconds(), TInstant::Now() + TDuration::Seconds(10));
-    }
-
-    void OnAddCriticalCount(const ui32 count) {
-        CriticalRecordsCount->Add(count);
-    }
-
-    void OnAddNormalCount(const ui32 count) {
-        NormalRecordsCount->Add(count);
-    }
-
-    void OnRemoveCriticalCount(const ui32 count) {
-        CriticalRecordsCount->Remove(count);
-    }
-
-    void OnRemoveNormalCount(const ui32 count) {
-        NormalRecordsCount->Remove(count);
-    }
-
-    void OnAddSmallPortion() {
-        SmallPortionsCount->Add(1);
-        SmallPortionsByGranule->Add(1);
-    }
-
-    void OnRemoveSmallPortion() {
-        SmallPortionsCount->Sub(1);
-        SmallPortionsByGranule->Remove(1);
-    }
-
-};
-
-}
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/levels/optimizer.cpp b/ydb/core/tx/columnshard/engines/storage/optimizer/levels/optimizer.cpp
deleted file mode 100644
index c78ef905041a..000000000000
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/levels/optimizer.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "optimizer.h"
-
-namespace NKikimr::NOlap::NStorageOptimizer {
-
-}
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/levels/optimizer.h b/ydb/core/tx/columnshard/engines/storage/optimizer/levels/optimizer.h
deleted file mode 100644
index f192ae5bb674..000000000000
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/levels/optimizer.h
+++ /dev/null
@@ -1,523 +0,0 @@
-#pragma once
-#include "counters.h"
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#include 
-#include 
-#include 
-
-namespace NKikimr::NOlap::NStorageOptimizer::NLevels {
-
-class TLevelInfo {
-private:
-    THashMap Counters;
-    YDB_READONLY(i64, CriticalWeight, 0);
-    YDB_READONLY(i64, NormalizedWeight, 0);
-    THashSet PortionIds;
-    std::shared_ptr Signals;
-public:
-    TLevelInfo(std::shared_ptr counters)
-        : Signals(counters)
-    {
-
-    }
-
-    void AddPortion(const std::shared_ptr& p, const ui32 refCount) {
-        if (p->GetBlobBytes() < (1 << 20)) {
-            Signals->OnAddSmallPortion();
-        }
-        auto it = Counters.find(p->GetPortion());
-        i64 refCountPred = 0;
-        if (it == Counters.end()) {
-            it = Counters.emplace(p->GetPortion(), refCount).first;
-        } else {
-            refCountPred = it->second;
-            it->second += refCount;
-        }
-        if (it->second == 1 && refCountPred == 0) {
-            NormalizedWeight += p->NumRows();
-            Signals->OnAddNormalCount(p->NumRows());
-        } else if (it->second >= 2 && refCountPred == 1) {
-            CriticalWeight += p->NumRows();
-            Signals->OnAddCriticalCount(p->NumRows());
-
-            NormalizedWeight -= p->NumRows();
-            Y_ABORT_UNLESS(NormalizedWeight >= 0);
-
-            Signals->OnRemoveNormalCount(p->NumRows());
-        } else if (it->second >= 2 && refCountPred == 0) {
-            CriticalWeight += p->NumRows();
-            Signals->OnAddCriticalCount(p->NumRows());
-        } else if (it->second >= 2 && refCountPred >= 2) {
-        } else {
-            Y_ABORT_UNLESS(false);
-        }
-    }
-
-    void RemovePortion(const std::shared_ptr& p, const ui32 refCount) {
-        if (p->GetBlobBytes() < (1 << 20)) {
-            Signals->OnRemoveSmallPortion();
-        }
-        auto it = Counters.find(p->GetPortion());
-        Y_ABORT_UNLESS(it != Counters.end());
-        const i64 refCountPred = it->second;
-        it->second -= refCount;
-        Y_ABORT_UNLESS(it->second >= 0);
-        if (it->second >= 2) {
-        } else if (it->second == 1) {
-            Y_ABORT_UNLESS(refCountPred >= 2);
-            CriticalWeight -= p->NumRows();
-            Y_ABORT_UNLESS(CriticalWeight >= 0);
-            Signals->OnRemoveCriticalCount(p->NumRows());
-            Y_ABORT_UNLESS(CriticalWeight >= 0);
-            NormalizedWeight += p->NumRows();
-            Signals->OnAddNormalCount(p->NumRows());
-        } else if (it->second == 0) {
-            if (refCountPred >= 2) {
-                Y_ABORT_UNLESS(refCountPred >= 2);
-                CriticalWeight -= p->NumRows();
-                Y_ABORT_UNLESS(CriticalWeight >= 0);
-                Signals->OnRemoveCriticalCount(p->NumRows());
-            } else if (refCountPred == 1) {
-                NormalizedWeight -= p->NumRows();
-                Y_ABORT_UNLESS(NormalizedWeight >= 0);
-                Signals->OnRemoveNormalCount(p->NumRows());
-            } else {
-                Y_ABORT_UNLESS(false);
-            }
-            Counters.erase(it);
-        }
-    }
-
-};
-
-class TBorderPoint {
-public:
-    using TBorderPortions = THashMap>;
-private:
-    THashMap MiddleWeight;
-    YDB_READONLY_DEF(TBorderPortions, StartPortions);
-    YDB_READONLY_DEF(TBorderPortions, MiddlePortions);
-    YDB_READONLY_DEF(TBorderPortions, FinishPortions);
-    std::shared_ptr LevelInfo;
-public:
-    void InitInternalPoint(const TBorderPoint& predPoint) {
-        Y_ABORT_UNLESS(predPoint.MiddleWeight.size() == predPoint.MiddlePortions.size());
-        for (auto&& i : predPoint.MiddlePortions) {
-            auto it = predPoint.MiddleWeight.find(i.first);
-            if (it->second != 2) {
-                AddMiddle(i.second, 1);
-            }
-        }
-    }
-
-    std::shared_ptr GetOnlyPortion() const {
-        Y_ABORT_UNLESS(MiddlePortions.size() == 1);
-        Y_ABORT_UNLESS(!IsCritical());
-        return MiddlePortions.begin()->second;
-    }
-
-    bool IsSmall() const {
-        if (!IsCritical() && MiddlePortions.size() == 1 && MiddlePortions.begin()->second->GetBlobBytes() < (1 << 20)) {
-            return true;
-        }
-        return false;
-    }
-
-    bool IsCritical() const {
-        if (StartPortions.size() && FinishPortions.size()) {
-            return true;
-        }
-        if (MiddlePortions.size() > 1 || StartPortions.size() > 1 || FinishPortions.size() > 1) {
-            return true;
-        }
-        return false;
-    }
-
-    TBorderPoint(const std::shared_ptr& info)
-        : LevelInfo(info) {
-
-    }
-
-    ~TBorderPoint() {
-        for (auto&& i : MiddlePortions) {
-            if (i.second->IndexKeyStart() == i.second->IndexKeyEnd()) {
-                LevelInfo->RemovePortion(i.second, 2);
-            } else {
-                LevelInfo->RemovePortion(i.second, 1);
-            }
-        }
-    }
-
-    void AddStart(const std::shared_ptr& p) {
-        Y_ABORT_UNLESS(StartPortions.emplace(p->GetPortion(), p).second);
-    }
-    void RemoveStart(const std::shared_ptr& p) {
-        Y_ABORT_UNLESS(StartPortions.erase(p->GetPortion()));
-    }
-
-    void AddMiddle(const std::shared_ptr& p, const ui32 portionCriticalWeight) {
-        Y_ABORT_UNLESS(MiddleWeight.emplace(p->GetPortion(), portionCriticalWeight).second);
-        Y_ABORT_UNLESS(MiddlePortions.emplace(p->GetPortion(), p).second);
-        LevelInfo->AddPortion(p, portionCriticalWeight);
-    }
-    void RemoveMiddle(const std::shared_ptr& p, const ui32 portionCriticalWeight) {
-        Y_ABORT_UNLESS(MiddleWeight.erase(p->GetPortion()));
-        Y_ABORT_UNLESS(MiddlePortions.erase(p->GetPortion()));
-        LevelInfo->RemovePortion(p, portionCriticalWeight);
-    }
-
-    void AddFinish(const std::shared_ptr& p) {
-        Y_ABORT_UNLESS(FinishPortions.emplace(p->GetPortion(), p).second);
-    }
-    void RemoveFinish(const std::shared_ptr& p) {
-        Y_ABORT_UNLESS(FinishPortions.erase(p->GetPortion()));
-    }
-
-    bool IsEmpty() const {
-        return StartPortions.empty() && FinishPortions.empty();
-    }
-};
-
-class TPortionsPlacement {
-private:
-    THashSet PortionIds;
-    std::map Borders;
-    std::shared_ptr LevelInfo;
-public:
-    TPortionsPlacement(const std::shared_ptr& levelInfo)
-        : LevelInfo(levelInfo)
-    {
-
-    }
-
-    class TPortionsScanner {
-    private:
-        THashMap> CurrentPortions;
-        const THashSet& BusyPortions;
-    public:
-
-        TPortionsScanner(const THashSet& busyPortions)
-            : BusyPortions(busyPortions)
-        {
-
-        }
-
-        const THashMap>& GetCurrentPortions() const {
-            return CurrentPortions;
-        }
-
-        bool AddBorderPoint(const TBorderPoint& p, bool& hasBusy) {
-            hasBusy = false;
-            for (auto&& [_, portionInfo] : p.GetStartPortions()) {
-                if (BusyPortions.contains(portionInfo->GetAddress())) {
-                    hasBusy = true;
-                    continue;
-                }
-                AFL_VERIFY(CurrentPortions.emplace(portionInfo->GetPortion(), portionInfo).second);
-            }
-
-            for (auto&& [_, portionInfo] : p.GetFinishPortions()) {
-                if (BusyPortions.contains(portionInfo->GetAddress())) {
-                    continue;
-                }
-                AFL_VERIFY(CurrentPortions.erase(portionInfo->GetPortion()));
-            }
-            return CurrentPortions.size();
-        }
-    };
-
-    enum class EChainProblem {
-        NoProblem,
-        SmallChunks,
-        MergeChunks
-    };
-
-    std::vector>> GetPortionsToCompact(const ui64 sizeLimit, const THashSet& busyPortions) const {
-        std::vector>> result;
-        THashSet readyPortionIds;
-        ui64 resultSize = 0;
-
-        TPortionsScanner buffer(busyPortions);
-        THashMap> portionsCurrentChain;
-        ui64 chainSize = 0;
-        EChainProblem problemType = EChainProblem::NoProblem;
-        for (auto&& i : Borders) {
-            bool hasBusy = false;
-            if (!buffer.AddBorderPoint(i.second, hasBusy)) {
-                if (hasBusy && problemType == EChainProblem::SmallChunks) {
-                    chainSize = 0;
-                    portionsCurrentChain.clear();
-                    problemType = EChainProblem::NoProblem;
-                } else if (chainSize > (1 << 20)) {
-                    resultSize += chainSize;
-                    std::vector> chain;
-                    for (auto&& i : portionsCurrentChain) {
-                        chain.emplace_back(i.second);
-                    }
-                    result.emplace_back(chain);
-                    chainSize = 0;
-                    portionsCurrentChain.clear();
-                    problemType = EChainProblem::NoProblem;
-                }
-            } else {
-                if (buffer.GetCurrentPortions().size() > 1) {
-                    problemType = EChainProblem::MergeChunks;
-                } else if (buffer.GetCurrentPortions().begin()->second->GetBlobBytes() < (1 << 20) && problemType == EChainProblem::NoProblem) {
-                    problemType = EChainProblem::SmallChunks;
-                }
-                if (problemType != EChainProblem::NoProblem) {
-                    for (auto&& i : buffer.GetCurrentPortions()) {
-                        if (portionsCurrentChain.emplace(i.second->GetPortion(), i.second).second) {
-                            chainSize += i.second->GetBlobBytes();
-                        }
-                    }
-                }
-            }
-            if (resultSize + chainSize > sizeLimit) {
-                break;
-            }
-        }
-        if (portionsCurrentChain.size() > 1) {
-            std::vector> chain;
-            for (auto&& i : portionsCurrentChain) {
-                chain.emplace_back(i.second);
-            }
-            result.emplace_back(chain);
-        }
-
-        return result;
-    }
-
-    void RemovePortion(const std::shared_ptr& portion) {
-        Y_ABORT_UNLESS(PortionIds.erase(portion->GetPortion()));
-        auto itStart = Borders.find(portion->IndexKeyStart());
-        AFL_VERIFY(itStart != Borders.end());
-        auto itFinish = Borders.find(portion->IndexKeyEnd());
-        AFL_VERIFY(itFinish != Borders.end());
-
-        itStart->second.RemoveStart(portion);
-        itFinish->second.RemoveFinish(portion);
-        if (itStart != itFinish) {
-            for (auto it = itStart; it != itFinish; ++it) {
-                it->second.RemoveMiddle(portion, 1);
-            }
-            if (itFinish->second.IsEmpty()) {
-                Y_ABORT_UNLESS(Borders.erase(portion->IndexKeyEnd()));
-            }
-            if (itStart->second.IsEmpty()) {
-                Y_ABORT_UNLESS(Borders.erase(portion->IndexKeyStart()));
-            }
-        } else {
-            itStart->second.RemoveMiddle(portion, 2);
-            if (itStart->second.IsEmpty()) {
-                Borders.erase(itStart);
-            }
-        }
-    }
-
-    void AddPortion(const std::shared_ptr& portion) {
-        Y_ABORT_UNLESS(PortionIds.emplace(portion->GetPortion()).second);
-        auto itStartInfo = Borders.emplace(portion->IndexKeyStart(), TBorderPoint(LevelInfo));
-        auto itStart = itStartInfo.first;
-        if (itStartInfo.second && itStart != Borders.begin()) {
-            auto itStartCopy = itStart;
-            --itStartCopy;
-            itStart->second.InitInternalPoint(itStartCopy->second);
-        }
-        auto itFinishInfo = Borders.emplace(portion->IndexKeyEnd(), TBorderPoint(LevelInfo));
-        auto itFinish = itFinishInfo.first;
-        if (itFinishInfo.second) {
-            Y_ABORT_UNLESS(itFinish != Borders.begin());
-            auto itFinishCopy = itFinish;
-            --itFinishCopy;
-            itFinish->second.InitInternalPoint(itFinishCopy->second);
-        }
-
-        itStart->second.AddStart(portion);
-        itFinish->second.AddFinish(portion);
-        if (itStart != itFinish) {
-            for (auto it = itStart; it != itFinish; ++it) {
-                it->second.AddMiddle(portion, 1);
-            }
-        } else {
-            itStart->second.AddMiddle(portion, 2);
-        }
-    }
-};
-
-class TLevel {
-private:
-    YDB_READONLY(TDuration, CriticalAge, TDuration::Zero());
-    YDB_READONLY(ui64, CriticalSize, 0);
-    std::shared_ptr LevelInfo;
-    TPortionsPlacement PortionsPlacement;
-    std::shared_ptr NextLevel;
-    std::map Borders;
-    std::map>> PortionByAge;
-    const ui64 PortionsSizeLimit = (ui64)250 * 1024 * 1024;
-    TCompactionLimits CompactionLimits;
-    THashSet PortionIds;
-    const std::shared_ptr StoragesManager;
-    std::shared_ptr PrimaryKeysSchema;
-public:
-    TLevel(const TDuration criticalAge, const ui64 criticalSize, std::shared_ptr nextLevel, const std::shared_ptr& storagesManager, std::shared_ptr counters,
-        const std::shared_ptr& primaryKeysSchema)
-        : CriticalAge(criticalAge)
-        , CriticalSize(criticalSize)
-        , LevelInfo(std::make_shared(counters))
-        , PortionsPlacement(LevelInfo)
-        , NextLevel(nextLevel)
-        , StoragesManager(storagesManager)
-        , PrimaryKeysSchema(primaryKeysSchema)
-    {
-        CompactionLimits.GranuleSizeForOverloadPrevent = CriticalSize * 0.5;
-    }
-
-    ui64 GetWeight() const {
-        return LevelInfo->GetCriticalWeight();
-    }
-
-    void ProvidePortionsNextLevel(const TInstant currentInstant) {
-        if (!NextLevel) {
-            return;
-        }
-        std::vector> portionsForProviding;
-        for (auto&& i : PortionByAge) {
-            if (TInstant::MilliSeconds(i.first.GetPlanStep()) + CriticalAge < currentInstant) {
-                for (auto&& p : i.second) {
-                    portionsForProviding.emplace_back(p.second);
-                }
-            } else {
-                break;
-            }
-        }
-        for (auto&& i : portionsForProviding) {
-            RemovePortion(i, currentInstant);
-            NextLevel->AddPortion(i, currentInstant);
-        }
-    }
-
-    void AddPortion(const std::shared_ptr& portionInfo, const TInstant addInstant) {
-        if (TInstant::MilliSeconds(portionInfo->RecordSnapshotMax().GetPlanStep()) + CriticalAge < addInstant) {
-            Y_ABORT_UNLESS(!PortionIds.contains(portionInfo->GetPortion()));
-            if (NextLevel) {
-                return NextLevel->AddPortion(portionInfo, addInstant);
-            }
-        }
-        PortionsPlacement.AddPortion(portionInfo);
-        Y_ABORT_UNLESS(PortionByAge[portionInfo->RecordSnapshotMax()].emplace(portionInfo->GetPortion(), portionInfo).second);
-        ProvidePortionsNextLevel(addInstant);
-    }
-
-    void RemovePortion(const std::shared_ptr& portionInfo, const TInstant removeInstant) {
-        PortionsPlacement.RemovePortion(portionInfo);
-        {
-            auto it = PortionByAge.find(portionInfo->RecordSnapshotMax());
-            Y_ABORT_UNLESS(it != PortionByAge.end());
-            Y_ABORT_UNLESS(it->second.erase(portionInfo->GetPortion()));
-            if (it->second.empty()) {
-                PortionByAge.erase(it);
-            }
-        }
-        ProvidePortionsNextLevel(removeInstant);
-    }
-
-    std::shared_ptr BuildOptimizationTask(const TCompactionLimits& /*limits*/, std::shared_ptr granule, const THashSet& busyPortions, const TInstant /*currentInstant*/) const {
-        std::vector>> portionGroups = PortionsPlacement.GetPortionsToCompact(PortionsSizeLimit, busyPortions);
-        if (portionGroups.empty()) {
-            AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "optimization_task_skipped");
-            return nullptr;
-        }
-        std::vector> portions;
-        std::vector positions;
-        for (auto&& i : portionGroups) {
-            portions.insert(portions.end(), i.begin(), i.end());
-            std::optional position;
-            for (auto&& p : i) {
-                NIndexedReader::TSortableBatchPosition pos(p->IndexKeyEnd().ToBatch(PrimaryKeysSchema), 0, PrimaryKeysSchema->field_names(), {}, false);
-                if (!position || position->Compare(pos) == std::partial_ordering::less) {
-                    position = pos;
-                }
-            }
-            Y_ABORT_UNLESS(position);
-            positions.emplace_back(*position);
-        }
-        TSaverContext saverContext(StoragesManager->GetOperator(IStoragesManager::DefaultStorageId), StoragesManager);
-        auto result = std::make_shared(CompactionLimits.GetSplitSettings(), granule, portions, saverContext);
-        for (auto&& i : positions) {
-            result->AddCheckPoint(i);
-        }
-        return result;
-    }
-
-};
-
-class TLevelsOptimizerPlanner: public IOptimizerPlanner {
-private:
-    using TBase = IOptimizerPlanner;
-    std::shared_ptr L3;
-    std::shared_ptr LMax;
-    std::shared_ptr LStart;
-    const std::shared_ptr StoragesManager;
-    std::shared_ptr Counters;
-protected:
-    virtual std::vector GetBucketPositions() const override {
-        return {};
-    }
-
-    virtual void DoModifyPortions(const THashMap>& add, const THashMap>& remove) override {
-        const TInstant currentInstant = TInstant::Now();
-        for (auto&& [_, i] : remove) {
-            if (i->GetMeta().GetTierName() != IStoragesManager::DefaultStorageId && i->GetMeta().GetTierName() != "") {
-                continue;
-            }
-            if (!i->GetMeta().RecordSnapshotMax) {
-                LMax->RemovePortion(i, currentInstant);
-            } else {
-                LStart->RemovePortion(i, currentInstant);
-            }
-        }
-        for (auto&& [_, i] : add) {
-            if (i->GetMeta().GetTierName() != IStoragesManager::DefaultStorageId && i->GetMeta().GetTierName() != "") {
-                continue;
-            }
-            if (!i->GetMeta().RecordSnapshotMax) {
-                LMax->AddPortion(i, currentInstant);
-            } else {
-                LStart->AddPortion(i, currentInstant);
-            }
-        }
-    }
-    virtual std::shared_ptr DoGetOptimizationTask(const TCompactionLimits& limits, std::shared_ptr granule, const THashSet& busyPortions) const override {
-        return LStart->BuildOptimizationTask(limits, granule, busyPortions, TInstant::Now());
-
-    }
-    virtual TOptimizationPriority DoGetUsefulMetric() const override {
-        return TOptimizationPriority::Critical(LStart->GetWeight());
-    }
-    virtual TString DoDebugString() const override {
-        return "";
-    }
-    virtual void DoActualize(const TInstant /*currentInstant*/) override {
-
-    }
-public:
-    TLevelsOptimizerPlanner(const ui64 pathId, const std::shared_ptr& storagesManager, const std::shared_ptr& primaryKeysSchema)
-        : TBase(pathId)
-        , StoragesManager(storagesManager)
-        , Counters(std::make_shared())
-    {
-        L3 = std::make_shared(TDuration::Seconds(120), 24 << 20, nullptr, StoragesManager, Counters, primaryKeysSchema);
-        LMax = L3;
-        LStart = L3;
-    }
-};
-
-} // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/levels/ya.make b/ydb/core/tx/columnshard/engines/storage/optimizer/levels/ya.make
deleted file mode 100644
index 3f96a5717477..000000000000
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/levels/ya.make
+++ /dev/null
@@ -1,15 +0,0 @@
-LIBRARY()
-
-SRCS(
-    optimizer.cpp
-    counters.cpp
-)
-
-PEERDIR(
-    contrib/libs/apache/arrow
-    ydb/core/protos
-    ydb/core/formats/arrow
-    ydb/core/tx/columnshard/engines/changes/abstract
-)
-
-END()
diff --git a/ydb/core/tx/columnshard/engines/storage/optimizer/ya.make b/ydb/core/tx/columnshard/engines/storage/optimizer/ya.make
index e1362859aaea..1d73127f26c2 100644
--- a/ydb/core/tx/columnshard/engines/storage/optimizer/ya.make
+++ b/ydb/core/tx/columnshard/engines/storage/optimizer/ya.make
@@ -2,8 +2,6 @@ LIBRARY()
 
 PEERDIR(
     ydb/core/tx/columnshard/engines/storage/optimizer/abstract
-    ydb/core/tx/columnshard/engines/storage/optimizer/intervals
-    ydb/core/tx/columnshard/engines/storage/optimizer/levels
     ydb/core/tx/columnshard/engines/storage/optimizer/lbuckets
 )
 
diff --git a/ydb/core/tx/columnshard/engines/storage/storage.cpp b/ydb/core/tx/columnshard/engines/storage/storage.cpp
index 7e6f7e81b53e..2aa5c0af7244 100644
--- a/ydb/core/tx/columnshard/engines/storage/storage.cpp
+++ b/ydb/core/tx/columnshard/engines/storage/storage.cpp
@@ -1,34 +1,50 @@
 #include "storage.h"
+#include 
 
 namespace NKikimr::NOlap {
 
-void TGranulesStorage::UpdateGranuleInfo(const TGranuleMeta& granule) {
-    if (PackModificationFlag) {
-        PackModifiedGranules[granule.GetPathId()] = &granule;
-        return;
-    }
-}
-
-std::shared_ptr TGranulesStorage::GetGranuleForCompaction(const THashMap>& granules) const {
-    const TInstant now = TInstant::Now();
-    std::optional priority;
-    std::shared_ptr granule;
-    for (auto&& i : granules) {
+std::shared_ptr TGranulesStorage::GetGranuleForCompaction(const std::shared_ptr& dataLocksManager) const {
+    const TInstant now = HasAppData() ? AppDataVerified().TimeProvider->Now() : TInstant::Now();
+    std::map> granulesSorted;
+    ui32 countChecker = 0;
+    std::optional priorityChecker;
+    for (auto&& i : Tables) {
+        NActors::TLogContextGuard lGuard = NActors::TLogContextBuilder::Build()("path_id", i.first);
         i.second->ActualizeOptimizer(now);
-        if (!priority || *priority < i.second->GetCompactionPriority()) {
-            priority = i.second->GetCompactionPriority();
-            granule = i.second;
+        auto gPriority = i.second->GetCompactionPriority();
+        if (gPriority.IsZero() || (priorityChecker && gPriority < *priorityChecker)) {
+            continue;
+        }
+        granulesSorted.emplace(gPriority, i.second);
+        if (++countChecker % 100 == 0) {
+            for (auto&& it = granulesSorted.rbegin(); it != granulesSorted.rend(); ++it) {
+                if (!it->second->IsLockedOptimizer(dataLocksManager)) {
+                    priorityChecker = it->first;
+                    break;
+                }
+            }
         }
     }
-    if (!priority) {
+    if (granulesSorted.empty()) {
         AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "no_granules");
         return nullptr;
     }
-    if (priority->IsZero()) {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "zero_priority");
-        return nullptr;
+    for (auto&& it = granulesSorted.rbegin(); it != granulesSorted.rend(); ++it) {
+        if (priorityChecker && it->first < *priorityChecker) {
+            continue;
+        }
+        NActors::TLogContextGuard lGuard = NActors::TLogContextBuilder::Build()("path_id", it->second->GetPathId());
+        if (it->second->IsLockedOptimizer(dataLocksManager)) {
+            Counters.OnGranuleOptimizerLocked();
+            AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "skip_optimizer_throught_lock")("priority", it->first.DebugString());
+        } else {
+            AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("event", "granule_compaction_weight")("priority", it->first.DebugString());
+            return it->second;
+        }
     }
-    return granule;
+
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "all_significant_granules_locked")("count", granulesSorted.size());
+    return nullptr;
 }
 
 } // namespace NKikimr::NOlap
diff --git a/ydb/core/tx/columnshard/engines/storage/storage.h b/ydb/core/tx/columnshard/engines/storage/storage.h
index 1fa7b524c882..b58d61a80c26 100644
--- a/ydb/core/tx/columnshard/engines/storage/storage.h
+++ b/ydb/core/tx/columnshard/engines/storage/storage.h
@@ -6,13 +6,15 @@
 
 namespace NKikimr::NOlap {
 
-class TGranulesStorage {
+class TGranulesStat {
 private:
-    const TCompactionLimits Limits;
+    i64 MetadataMemoryPortionsSize = 0;
     const NColumnShard::TEngineLogsCounters Counters;
-    std::shared_ptr StoragesManager;
     bool PackModificationFlag = false;
     THashMap PackModifiedGranules;
+
+    static inline TAtomicCounter SumMetadataMemoryPortionsSize = 0;
+
     void StartModificationImpl() {
         Y_ABORT_UNLESS(!PackModificationFlag);
         PackModificationFlag = true;
@@ -28,27 +30,21 @@ class TGranulesStorage {
     }
 
 public:
-    TGranulesStorage(const NColumnShard::TEngineLogsCounters counters, const TCompactionLimits& limits, const std::shared_ptr& storagesManager)
-        : Limits(limits)
-        , Counters(counters)
-        , StoragesManager(storagesManager)
+    TGranulesStat(const NColumnShard::TEngineLogsCounters& counters)
+        : Counters(counters)
     {
 
     }
 
-    const std::shared_ptr& GetStoragesManager() const {
-        return StoragesManager;
-    }
-
     const NColumnShard::TEngineLogsCounters& GetCounters() const {
         return Counters;
     }
 
     class TModificationGuard: TNonCopyable {
     private:
-        TGranulesStorage& Owner;
+        TGranulesStat& Owner;
     public:
-        TModificationGuard(TGranulesStorage& storage)
+        TModificationGuard(TGranulesStat& storage)
             : Owner(storage) {
             Owner.StartModificationImpl();
         }
@@ -62,9 +58,123 @@ class TGranulesStorage {
         return TModificationGuard(*this);
     }
 
-    std::shared_ptr GetGranuleForCompaction(const THashMap>& granules) const;
+    static ui64 GetSumMetadataMemoryPortionsSize() {
+        return SumMetadataMemoryPortionsSize.Val();
+    }
+
+    i64 GetMetadataMemoryPortionsSize() const {
+        return MetadataMemoryPortionsSize;
+    }
+
+    ~TGranulesStat() {
+        SumMetadataMemoryPortionsSize.Sub(MetadataMemoryPortionsSize);
+    }
+
+    void UpdateGranuleInfo(const TGranuleMeta& granule) {
+        if (PackModificationFlag) {
+            PackModifiedGranules[granule.GetPathId()] = &granule;
+            return;
+        }
+    }
+
+    void OnRemovePortion(const TPortionInfo& portion) {
+        MetadataMemoryPortionsSize -= portion.GetMetadataMemorySize();
+        AFL_VERIFY(MetadataMemoryPortionsSize >= 0);
+        const i64 value = SumMetadataMemoryPortionsSize.Sub(portion.GetMetadataMemorySize());
+        Counters.OnIndexMetadataUsageBytes(value);
+    }
+
+    void OnAddPortion(const TPortionInfo& portion) {
+        MetadataMemoryPortionsSize += portion.GetMetadataMemorySize();
+        const i64 value = SumMetadataMemoryPortionsSize.Add(portion.GetMetadataMemorySize());
+        Counters.OnIndexMetadataUsageBytes(value);
+    }
+
+};
+
+class TGranulesStorage {
+private:
+    const NColumnShard::TEngineLogsCounters Counters;
+    std::shared_ptr StoragesManager;
+    THashMap> Tables; // pathId into Granule that equal to Table
+    std::shared_ptr Stats;
+public:
+    TGranulesStorage(const NColumnShard::TEngineLogsCounters counters, const std::shared_ptr& storagesManager)
+        : Counters(counters)
+        , StoragesManager(storagesManager)
+        , Stats(std::make_shared(Counters))
+    {
+
+    }
+
+    const std::shared_ptr& GetStats() const {
+        return Stats;
+    }
+
+    std::shared_ptr RegisterTable(const ui64 pathId, const NColumnShard::TGranuleDataCounters& counters, const TVersionedIndex& versionedIndex) {
+        auto infoEmplace = Tables.emplace(pathId, std::make_shared(pathId, *this, counters, versionedIndex));
+        AFL_VERIFY(infoEmplace.second);
+        return infoEmplace.first->second;
+    }
+
+    void EraseTable(const ui64 pathId) {
+        auto it = Tables.find(pathId);
+        Y_ABORT_UNLESS(it != Tables.end());
+        Y_ABORT_UNLESS(it->second->IsErasable());
+        Tables.erase(it);
+    }
+
+    const THashMap>& GetTables() const {
+        return Tables;
+    }
+
+    void ReturnToIndexes(const THashMap>& portions) const {
+        for (auto&& [g, portionIds] : portions) {
+            auto it = Tables.find(g);
+            AFL_VERIFY(it != Tables.end());
+            it->second->ReturnToIndexes(portionIds);
+        }
+    }
+
+    std::vector> GetTables(const std::optional pathIdFrom, const std::optional pathIdTo) const {
+        std::vector> result;
+        for (auto&& i : Tables) {
+            if (pathIdFrom && i.first < *pathIdFrom) {
+                continue;
+            }
+            if (pathIdTo && i.first > *pathIdTo) {
+                continue;
+            }
+            result.emplace_back(i.second);
+        }
+        return result;
+    }
+
+    std::shared_ptr GetPortionOptional(const ui64 pathId, const ui64 portionId) const {
+        auto it = Tables.find(pathId);
+        if (it == Tables.end()) {
+            return nullptr;
+        }
+        return it->second->GetPortionOptional(portionId);
+    }
+
+    std::shared_ptr GetGranuleOptional(const ui64 pathId) const {
+        auto it = Tables.find(pathId);
+        if (it == Tables.end()) {
+            return nullptr;
+        }
+        return it->second;
+    }
+
+    const std::shared_ptr& GetStoragesManager() const {
+        return StoragesManager;
+    }
+
+    const NColumnShard::TEngineLogsCounters& GetCounters() const {
+        return Counters;
+    }
 
-    void UpdateGranuleInfo(const TGranuleMeta& granule);
+    std::shared_ptr GetGranuleForCompaction(const std::shared_ptr& locksManager) const;
 
 };
 
diff --git a/ydb/core/tx/columnshard/engines/storage/ya.make b/ydb/core/tx/columnshard/engines/storage/ya.make
index 811707b20d2d..2f1af88b17a7 100644
--- a/ydb/core/tx/columnshard/engines/storage/ya.make
+++ b/ydb/core/tx/columnshard/engines/storage/ya.make
@@ -9,6 +9,8 @@ PEERDIR(
     contrib/libs/apache/arrow
     ydb/core/protos
     ydb/core/tx/columnshard/engines/storage/optimizer
+    ydb/core/tx/columnshard/engines/storage/actualizer
+    ydb/core/tx/columnshard/engines/storage/chunks
     ydb/core/formats/arrow
 )
 
diff --git a/ydb/core/tx/columnshard/engines/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/ut/CMakeLists.darwin-arm64.txt
index 38152a164d0e..cd0d843a5837 100644
--- a/ydb/core/tx/columnshard/engines/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/columnshard/engines/ut/CMakeLists.darwin-arm64.txt
@@ -35,13 +35,12 @@ target_link_options(ydb-core-tx-columnshard-engines-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-columnshard-engines-ut PRIVATE
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_insert_table.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_logs_engine.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_program.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/ut_insert_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/ut_logs_engine.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/ut_program.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/helper.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
 )
 set_property(
@@ -69,6 +68,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/engines/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/engines/ut/CMakeLists.darwin-x86_64.txt
index b2ebd6d00523..49565f45d672 100644
--- a/ydb/core/tx/columnshard/engines/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/ut/CMakeLists.darwin-x86_64.txt
@@ -36,13 +36,12 @@ target_link_options(ydb-core-tx-columnshard-engines-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-columnshard-engines-ut PRIVATE
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_insert_table.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_logs_engine.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_program.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/ut_insert_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/ut_logs_engine.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/ut_program.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/helper.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
 )
 set_property(
@@ -70,6 +69,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/engines/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/engines/ut/CMakeLists.linux-aarch64.txt
index c60d79794a3c..edc5cadba920 100644
--- a/ydb/core/tx/columnshard/engines/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/columnshard/engines/ut/CMakeLists.linux-aarch64.txt
@@ -38,14 +38,12 @@ target_link_options(ydb-core-tx-columnshard-engines-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-columnshard-engines-ut PRIVATE
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_insert_table.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_logs_engine.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_program.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/ut_insert_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/ut_logs_engine.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/ut_program.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/helper.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
 )
 set_property(
@@ -73,6 +71,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/engines/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/engines/ut/CMakeLists.linux-x86_64.txt
index 9748cc589aff..93b62bb07fc3 100644
--- a/ydb/core/tx/columnshard/engines/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/ut/CMakeLists.linux-x86_64.txt
@@ -39,14 +39,12 @@ target_link_options(ydb-core-tx-columnshard-engines-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-columnshard-engines-ut PRIVATE
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_insert_table.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_logs_engine.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_program.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/ut_insert_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/ut_logs_engine.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/ut_program.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/helper.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
 )
 set_property(
@@ -74,6 +72,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/engines/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/engines/ut/CMakeLists.windows-x86_64.txt
index 687550a86063..3a9483de8f04 100644
--- a/ydb/core/tx/columnshard/engines/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/ut/CMakeLists.windows-x86_64.txt
@@ -33,9 +33,10 @@ target_link_libraries(ydb-core-tx-columnshard-engines-ut PUBLIC
   json2_udf
 )
 target_sources(ydb-core-tx-columnshard-engines-ut PRIVATE
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_insert_table.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_logs_engine.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut_program.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/ut_insert_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/ut_logs_engine.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/ut_program.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/ut/helper.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
 )
 set_property(
@@ -63,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/engines/ut/helper.cpp b/ydb/core/tx/columnshard/engines/ut/helper.cpp
new file mode 100644
index 000000000000..eee9159edea7
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/ut/helper.cpp
@@ -0,0 +1,11 @@
+#include "helper.h"
+
+namespace  NKikimr::NOlap::NEngines::NTest {
+
+NKikimrTxColumnShard::TLogicalMetadata TLocalHelper::GetMetaProto() {
+    NKikimrTxColumnShard::TLogicalMetadata result;
+    result.SetDirtyWriteTimeSeconds(TInstant::Now().Seconds());
+    return result;
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/ut/helper.h b/ydb/core/tx/columnshard/engines/ut/helper.h
new file mode 100644
index 000000000000..8e17730a21c6
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/ut/helper.h
@@ -0,0 +1,11 @@
+#pragma once
+#include 
+
+namespace NKikimr::NOlap::NEngines::NTest {
+
+class TLocalHelper {
+public:
+    static NKikimrTxColumnShard::TLogicalMetadata GetMetaProto();
+};
+
+};
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/engines/ut_insert_table.cpp b/ydb/core/tx/columnshard/engines/ut/ut_insert_table.cpp
similarity index 86%
rename from ydb/core/tx/columnshard/engines/ut_insert_table.cpp
rename to ydb/core/tx/columnshard/engines/ut/ut_insert_table.cpp
index e54f8248f3d6..8362ee918b85 100644
--- a/ydb/core/tx/columnshard/engines/ut_insert_table.cpp
+++ b/ydb/core/tx/columnshard/engines/ut/ut_insert_table.cpp
@@ -1,5 +1,6 @@
-#include "db_wrapper.h"
-#include "insert_table/insert_table.h"
+#include "helper.h"
+#include 
+#include 
 
 #include 
 
@@ -9,6 +10,7 @@
 namespace NKikimr {
 
 using namespace NOlap;
+using namespace NKikimr::NOlap::NEngines::NTest;
 
 namespace {
 
@@ -40,29 +42,28 @@ class TTestInsertTableDB: public IDbWrapper {
 
 }
 
-
 Y_UNIT_TEST_SUITE(TColumnEngineTestInsertTable) {
     Y_UNIT_TEST(TestInsertCommit) {
         ui64 writeId = 0;
         ui64 tableId = 0;
         TString dedupId = "0";
-        TUnifiedBlobId blobId1(2222, 1, 1, 100, 1);
+        TUnifiedBlobId blobId1(2222, 1, 1, 100, 2, 0, 1);
 
         TTestInsertTableDB dbTable;
         TInsertTable insertTable;
         ui64 indexSnapshot = 0;
 
         // insert, not commited
-        bool ok = insertTable.Insert(dbTable, TInsertedData(writeId, tableId, dedupId, blobId1, {}, indexSnapshot, {}));
+        bool ok = insertTable.Insert(dbTable, TInsertedData(writeId, tableId, dedupId, blobId1, TLocalHelper::GetMetaProto(), indexSnapshot, {}));
         UNIT_ASSERT(ok);
 
         // insert the same blobId1 again
-        ok = insertTable.Insert(dbTable, TInsertedData(writeId, tableId, dedupId, blobId1, {}, indexSnapshot, {}));
+        ok = insertTable.Insert(dbTable, TInsertedData(writeId, tableId, dedupId, blobId1, TLocalHelper::GetMetaProto(), indexSnapshot, {}));
         UNIT_ASSERT(!ok);
 
         // insert different blodId with the same writeId and dedupId
-        TUnifiedBlobId blobId2(2222, 1, 2, 100, 1);
-        ok = insertTable.Insert(dbTable, TInsertedData(writeId, tableId, dedupId, blobId2, {}, indexSnapshot, {}));
+        TUnifiedBlobId blobId2(2222, 1, 2, 100, 2, 0, 1);
+        ok = insertTable.Insert(dbTable, TInsertedData(writeId, tableId, dedupId, blobId2, TLocalHelper::GetMetaProto(), indexSnapshot, {}));
         UNIT_ASSERT(!ok);
 
         // read nothing
diff --git a/ydb/core/tx/columnshard/engines/ut/ut_logs_engine.cpp b/ydb/core/tx/columnshard/engines/ut/ut_logs_engine.cpp
new file mode 100644
index 000000000000..0770a69d456d
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/ut/ut_logs_engine.cpp
@@ -0,0 +1,764 @@
+#include "helper.h"
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr {
+
+using namespace NOlap;
+namespace NTypeIds = NScheme::NTypeIds;
+using TTypeId = NScheme::TTypeId;
+using TTypeInfo = NScheme::TTypeInfo;
+using TDefaultTestsController = NKikimr::NYDBTest::NColumnShard::TController;
+using namespace NKikimr::NOlap::NEngines::NTest;
+
+namespace {
+
+std::shared_ptr EmptyDataLocksManager = std::make_shared();
+
+class TTestDbWrapper : public IDbWrapper {
+private:
+    std::map> LoadContexts;
+public:
+    struct TIndex {
+        THashMap> Columns; // pathId -> portions
+        THashMap Counters;
+    };
+
+    void Insert(const TInsertedData& data) override {
+        Inserted.emplace(TWriteId{data.WriteTxId}, data);
+    }
+
+    void Commit(const TInsertedData& data) override {
+        Committed[data.PathId].emplace(data);
+    }
+
+    void Abort(const TInsertedData& data) override {
+        Aborted.emplace(TWriteId{data.WriteTxId}, data);
+    }
+
+    void EraseInserted(const TInsertedData& data) override {
+        Inserted.erase(TWriteId{data.WriteTxId});
+    }
+
+    void EraseCommitted(const TInsertedData& data) override {
+        Committed[data.PathId].erase(data);
+    }
+
+    void EraseAborted(const TInsertedData& data) override {
+        Aborted.erase(TWriteId{data.WriteTxId});
+    }
+
+    bool Load(TInsertTableAccessor& accessor,
+              const TInstant&) override {
+        for (auto&& i : Inserted) {
+            accessor.AddInserted(std::move(i.second), true);
+        }
+        for (auto&& i : Aborted) {
+            accessor.AddAborted(std::move(i.second), true);
+        }
+        for (auto&& i : Committed) {
+            for (auto&& c: i.second) {
+                auto copy = c;
+                accessor.AddCommitted(std::move(copy), true);
+            }
+        }
+        return true;
+    }
+
+    void WriteColumn(const TPortionInfo& portion, const TColumnRecord& row) override {
+        auto proto = portion.GetMeta().SerializeToProto(row.ColumnId, row.Chunk);
+        auto rowProto = row.GetMeta().SerializeToProto();
+        if (proto) {
+            *rowProto.MutablePortionMeta() = std::move(*proto);
+        }
+
+        auto& data = Indices[0].Columns[portion.GetPathId()];
+        NOlap::TColumnChunkLoadContext loadContext(row.GetAddress(), portion.RestoreBlobRange(row.BlobRange), rowProto);
+        auto itInsertInfo = LoadContexts[portion.GetAddress()].emplace(row.GetAddress(), loadContext);
+        if (!itInsertInfo.second) {
+            itInsertInfo.first->second = loadContext;
+        }
+        auto it = data.find(portion.GetPortion());
+        if (it == data.end()) {
+            it = data.emplace(portion.GetPortion(), portion.CopyBeforeChunksRebuild()).first;
+        } else {
+            Y_ABORT_UNLESS(portion.GetPathId() == it->second.GetPathId() && portion.GetPortion() == it->second.GetPortion());
+        }
+        it->second.SetMinSnapshotDeprecated(portion.GetMinSnapshotDeprecated());
+        if (portion.HasRemoveSnapshot()) {
+            it->second.SetRemoveSnapshot(portion.GetRemoveSnapshotVerified());
+        } else {
+            AFL_VERIFY(!it->second.HasRemoveSnapshot());
+        }
+
+        bool replaced = false;
+        for (auto& rec : it->second.Records) {
+            if (rec.IsEqualTest(row)) {
+                rec = row;
+                replaced = true;
+                break;
+            }
+        }
+        if (!replaced) {
+            it->second.Records.push_back(row);
+        }
+    }
+
+    void EraseColumn(const TPortionInfo& portion, const TColumnRecord& row) override {
+        auto& data = Indices[0].Columns[portion.GetPathId()];
+        auto it = data.find(portion.GetPortion());
+        Y_ABORT_UNLESS(it != data.end());
+        auto& portionLocal = it->second;
+
+        std::vector filtered;
+        for (auto& rec : portionLocal.Records) {
+            if (!rec.IsEqualTest(row)) {
+                filtered.push_back(rec);
+            }
+        }
+        portionLocal.Records.swap(filtered);
+    }
+
+    bool LoadColumns(const std::function& callback) override {
+        auto& columns = Indices[0].Columns;
+        for (auto& [pathId, portions] : columns) {
+            for (auto& [portionId, portionLocal] : portions) {
+                auto copy = portionLocal;
+                copy.ResetMeta();
+                copy.Records.clear();
+                for (const auto& rec : portionLocal.Records) {
+                    auto itContextLoader = LoadContexts[copy.GetAddress()].find(rec.GetAddress());
+                    Y_ABORT_UNLESS(itContextLoader != LoadContexts[copy.GetAddress()].end());
+                    callback(copy, itContextLoader->second);
+                    LoadContexts[copy.GetAddress()].erase(itContextLoader);
+                }
+            }
+        }
+        return true;
+    }
+
+    virtual void WriteIndex(const TPortionInfo& /*portion*/, const TIndexChunk& /*row*/) override {}
+    virtual void EraseIndex(const TPortionInfo& /*portion*/, const TIndexChunk& /*row*/) override {}
+    virtual bool LoadIndexes(const std::function& /*callback*/) override { return true; }
+
+    void WriteCounter(ui32 counterId, ui64 value) override {
+        auto& counters = Indices[0].Counters;
+        counters[counterId] = value;
+    }
+
+    bool LoadCounters(const std::function& callback) override {
+        auto& counters = Indices[0].Counters;
+        for (auto& [id, value] : counters) {
+            callback(id, value);
+        }
+        return true;
+    }
+
+private:
+    THashMap Inserted;
+    THashMap> Committed;
+    THashMap Aborted;
+    THashMap Indices;
+};
+
+static const std::vector testColumns = {
+    // PK
+    NArrow::NTest::TTestColumn("timestamp", TTypeInfo(NTypeIds::Timestamp) ),
+    NArrow::NTest::TTestColumn("resource_type", TTypeInfo(NTypeIds::Utf8) ),
+    NArrow::NTest::TTestColumn("resource_id", TTypeInfo(NTypeIds::Utf8) ),
+    NArrow::NTest::TTestColumn("uid", TTypeInfo(NTypeIds::Utf8) ),
+    //
+    NArrow::NTest::TTestColumn("message", TTypeInfo(NTypeIds::Utf8) )
+};
+
+static const std::vector testKey = {
+    NArrow::NTest::TTestColumn("timestamp", TTypeInfo(NTypeIds::Timestamp) ),
+    NArrow::NTest::TTestColumn("resource_type", TTypeInfo(NTypeIds::Utf8) ),
+    NArrow::NTest::TTestColumn("resource_id", TTypeInfo(NTypeIds::Utf8) ),
+    NArrow::NTest::TTestColumn("uid", TTypeInfo(NTypeIds::Utf8) )
+};
+
+template 
+class TBuilder {
+public:
+    using TTraits = typename arrow::TypeTraits;
+    using TCType = std::conditional_t::value, typename TTraits::CType, std::string>;
+
+    struct TRow {
+        TCType Timestamp;
+        std::string ResourceType;
+        std::string ResourceId;
+        std::string Uid;
+        std::string Message;
+    };
+
+    TBuilder()
+        : Schema(NArrow::MakeArrowSchema(testColumns))
+    {
+        auto status = arrow::RecordBatchBuilder::Make(Schema, arrow::default_memory_pool(), &BatchBuilder);
+        Y_ABORT_UNLESS(status.ok());
+    }
+
+    bool AddRow(const TRow& row) {
+        bool ok = true;
+        ok = ok && BatchBuilder->GetFieldAs(0)->Append(row.Timestamp).ok();
+        ok = ok && BatchBuilder->GetFieldAs::BuilderType>(1)->Append(row.ResourceType).ok();
+        ok = ok && BatchBuilder->GetFieldAs::BuilderType>(2)->Append(row.ResourceId).ok();
+        ok = ok && BatchBuilder->GetFieldAs::BuilderType>(3)->Append(row.Uid).ok();
+        ok = ok && BatchBuilder->GetFieldAs::BuilderType>(4)->Append(row.Message).ok();
+        return ok;
+    }
+
+    std::shared_ptr Finish() {
+        std::shared_ptr batch;
+        auto status = BatchBuilder->Flush(&batch);
+        Y_ABORT_UNLESS(status.ok());
+        return batch;
+    }
+
+private:
+    std::shared_ptr Schema = NArrow::MakeArrowSchema(testColumns);
+    std::unique_ptr BatchBuilder;
+};
+
+TUnifiedBlobId MakeUnifiedBlobId(ui32 step, ui32 blobSize) {
+    return TUnifiedBlobId(11111, TLogoBlobID(100500, 42, step, 3, blobSize, 0));
+}
+
+TBlobRange MakeBlobRange(ui32 step, ui32 blobSize) {
+    // tabletId, generation, step, channel, blobSize, cookie
+    return TBlobRange(MakeUnifiedBlobId(step, blobSize), 0, blobSize);
+}
+
+TString MakeTestBlob(i64 start = 0, i64 end = 100) {
+    TBuilder builder;
+    for (i64 ts = start; ts < end; ++ts) {
+        TString str = ToString(ts);
+        TString sortedStr = Sprintf("%05ld", (long)ts);
+        builder.AddRow({ts, sortedStr, str, str, str});
+    }
+    auto batch = builder.Finish();
+    return NArrow::SerializeBatchNoCompression(batch);
+}
+
+void AddIdsToBlobs(std::vector& portions, NBlobOperations::NRead::TCompositeReadBlobs& blobs, ui32& step) {
+    for (auto& portion : portions) {
+        for (auto& rec : portion.GetPortionInfo().Records) {
+            rec.BlobRange.BlobIdx = portion.GetPortionInfo().RegisterBlobId(MakeUnifiedBlobId(++step, portion.GetBlobFullSizeVerified(rec.ColumnId, rec.Chunk)));
+            TString data = portion.GetBlobByRangeVerified(rec.ColumnId, rec.Chunk);
+            blobs.Add(IStoragesManager::DefaultStorageId, portion.GetPortionInfo().RestoreBlobRange(rec.BlobRange), std::move(data));
+        }
+    }
+}
+
+bool Insert(TColumnEngineForLogs& engine, TTestDbWrapper& db, TSnapshot snap,
+            std::vector&& dataToIndex, NBlobOperations::NRead::TCompositeReadBlobs& blobs, ui32& step) {
+
+    for (ui32 i = 0; i < dataToIndex.size(); ++i) {
+        // Commited data always has nonzero planstep (for WriteLoadRead tests)
+        dataToIndex[i].PlanStep = i + 1;
+    };
+    std::shared_ptr changes = engine.StartInsert(std::move(dataToIndex));
+    if (!changes) {
+        return false;
+    }
+
+    changes->Blobs = std::move(blobs);
+    blobs.Clear();
+    changes->StartEmergency();
+
+    NOlap::TConstructionContext context(engine.GetVersionedIndex(), NColumnShard::TIndexationCounters("Indexation"), snap);
+    Y_ABORT_UNLESS(changes->ConstructBlobs(context).Ok());
+
+    UNIT_ASSERT_VALUES_EQUAL(changes->AppendedPortions.size(), 1);
+    ui32 blobsCount = 0;
+    for (auto&& i : changes->AppendedPortions) {
+        blobsCount += i.GetBlobs().size();
+    }
+    UNIT_ASSERT_VALUES_EQUAL(blobsCount, 1); // add 2 columns: planStep, txId
+
+    AddIdsToBlobs(changes->AppendedPortions, blobs, step);
+
+    const bool result = engine.ApplyChanges(db, changes, snap);
+
+    NOlap::TWriteIndexContext contextExecute(nullptr, db, engine);
+    changes->WriteIndexOnExecute(nullptr, contextExecute);
+    NOlap::TWriteIndexCompleteContext contextComplete(NActors::TActivationContext::AsActorContext(), 0, 0, TDuration::Zero(), engine);
+    changes->WriteIndexOnComplete(nullptr, contextComplete);
+    changes->AbortEmergency("testing");
+    return result;
+}
+
+struct TExpected {
+    ui32 SrcPortions;
+    ui32 NewPortions;
+    ui32 NewGranules;
+};
+
+bool Compact(TColumnEngineForLogs& engine, TTestDbWrapper& db, TSnapshot snap, NBlobOperations::NRead::TCompositeReadBlobs&& blobs, ui32& step,
+             const TExpected& /*expected*/, THashMap* blobsPool = nullptr) {
+    std::shared_ptr changes = dynamic_pointer_cast(engine.StartCompaction(EmptyDataLocksManager));
+    UNIT_ASSERT(changes);
+    //    UNIT_ASSERT_VALUES_EQUAL(changes->SwitchedPortions.size(), expected.SrcPortions);
+    changes->Blobs = std::move(blobs);
+    changes->StartEmergency();
+    NOlap::TConstructionContext context(engine.GetVersionedIndex(), NColumnShard::TIndexationCounters("Compaction"), NOlap::TSnapshot(step, 1));
+    Y_ABORT_UNLESS(changes->ConstructBlobs(context).Ok());
+
+    //    UNIT_ASSERT_VALUES_EQUAL(changes->AppendedPortions.size(), expected.NewPortions);
+    AddIdsToBlobs(changes->AppendedPortions, changes->Blobs, step);
+
+    //    UNIT_ASSERT_VALUES_EQUAL(changes->GetTmpGranuleIds().size(), expected.NewGranules);
+
+    const bool result = engine.ApplyChanges(db, changes, snap);
+    NOlap::TWriteIndexContext contextExecute(nullptr, db, engine);
+    changes->WriteIndexOnExecute(nullptr, contextExecute);
+    NOlap::TWriteIndexCompleteContext contextComplete(NActors::TActivationContext::AsActorContext(), 0, 0, TDuration::Zero(), engine);
+    changes->WriteIndexOnComplete(nullptr, contextComplete);
+    if (blobsPool) {
+        for (auto&& i : changes->AppendedPortions) {
+            for (auto&& r : i.GetPortionInfo().Records) {
+                Y_ABORT_UNLESS(blobsPool->emplace(i.GetPortionInfo().RestoreBlobRange(r.BlobRange), i.GetBlobByRangeVerified(r.ColumnId, r.Chunk)).second);
+            }
+        }
+    }
+    changes->AbortEmergency("testing");
+    return result;
+}
+
+bool Cleanup(TColumnEngineForLogs& engine, TTestDbWrapper& db, TSnapshot snap, ui32 expectedToDrop) {
+    THashSet pathsToDrop;
+    std::shared_ptr changes = engine.StartCleanupPortions(snap, pathsToDrop, EmptyDataLocksManager);
+    UNIT_ASSERT(changes || !expectedToDrop);
+    if (!expectedToDrop && !changes) {
+        return true;
+    }
+    UNIT_ASSERT_VALUES_EQUAL(changes->PortionsToDrop.size(), expectedToDrop);
+
+
+    changes->StartEmergency();
+    const bool result = engine.ApplyChanges(db, changes, snap);
+    NOlap::TWriteIndexContext contextExecute(nullptr, db, engine);
+    changes->WriteIndexOnExecute(nullptr, contextExecute);
+    NOlap::TWriteIndexCompleteContext contextComplete(NActors::TActivationContext::AsActorContext(), 0, 0, TDuration::Zero(), engine);
+    changes->WriteIndexOnComplete(nullptr, contextComplete);
+    changes->AbortEmergency("testing");
+    return result;
+}
+
+bool Ttl(TColumnEngineForLogs& engine, TTestDbWrapper& db,
+         const THashMap& pathEviction, ui32 expectedToDrop) {
+    std::vector> vChanges = engine.StartTtl(pathEviction, EmptyDataLocksManager, 512 * 1024 * 1024);
+    AFL_VERIFY(vChanges.size() == 1)("count", vChanges.size());
+    auto changes = vChanges.front();
+    UNIT_ASSERT_VALUES_EQUAL(changes->PortionsToRemove.size(), expectedToDrop);
+
+
+    changes->StartEmergency();
+    const bool result = engine.ApplyChanges(db, changes, TSnapshot(1,1));
+    NOlap::TWriteIndexContext contextExecute(nullptr, db, engine);
+    changes->WriteIndexOnExecute(nullptr, contextExecute);
+    NOlap::TWriteIndexCompleteContext contextComplete(NActors::TActivationContext::AsActorContext(), 0, 0, TDuration::Zero(), engine);
+    changes->WriteIndexOnComplete(nullptr, contextComplete);
+    changes->AbortEmergency("testing");
+    return result;
+}
+
+std::shared_ptr MakePredicate(int64_t ts, NArrow::EOperation op) {
+    auto type = arrow::timestamp(arrow::TimeUnit::MICRO);
+    auto res = arrow::MakeArrayFromScalar(arrow::TimestampScalar(ts, type), 1);
+
+    std::vector> fields = { std::make_shared("timestamp", type) };
+    return std::make_shared(op, arrow::RecordBatch::Make(std::make_shared(std::move(fields)), 1, { *res }));
+}
+
+std::shared_ptr MakeStrPredicate(const std::string& key, NArrow::EOperation op) {
+    auto type = arrow::utf8();
+    auto res = arrow::MakeArrayFromScalar(arrow::StringScalar(key), 1);
+
+    std::vector> fields = { std::make_shared("resource_type", type) };
+    return std::make_shared(op, arrow::RecordBatch::Make(std::make_shared(std::move(fields)), 1, { *res }));
+}
+
+} // namespace
+
+std::shared_ptr InitializeStorageManager() {
+    return NKikimr::NOlap::TTestStoragesManager::GetInstance();
+}
+
+std::shared_ptr CommonStoragesManager = InitializeStorageManager();
+
+Y_UNIT_TEST_SUITE(TColumnEngineTestLogs) {
+    void WriteLoadRead(const std::vector& ydbSchema,
+                       const std::vector& key) {
+        TTestDbWrapper db;
+        TIndexInfo tableInfo = NColumnShard::BuildTableInfo(ydbSchema, key);
+
+        std::vector paths = {1, 2};
+
+        TString testBlob = MakeTestBlob();
+
+        std::vector blobRanges;
+        blobRanges.push_back(MakeBlobRange(1, testBlob.size()));
+        blobRanges.push_back(MakeBlobRange(2, testBlob.size()));
+
+        // PlanStep, TxId, PathId, DedupId, BlobId, Data, [Metadata]
+        // load
+        TSnapshot indexSnaphot(1, 1);
+        TColumnEngineForLogs engine(0, CommonStoragesManager, indexSnaphot, TIndexInfo(tableInfo));
+        for (auto&& i : paths) {
+            engine.RegisterTable(i);
+        }
+        engine.Load(db);
+
+        std::vector dataToIndex = {
+            TInsertedData(2, paths[0], "", blobRanges[0].BlobId, TLocalHelper::GetMetaProto(), 0, {}),
+            TInsertedData(1, paths[0], "", blobRanges[1].BlobId, TLocalHelper::GetMetaProto(), 0, {})
+        };
+
+        // write
+
+        ui32 step = 1000;
+        {
+            NBlobOperations::NRead::TCompositeReadBlobs blobs;
+            TString str1 = testBlob;
+            blobs.Add(IStoragesManager::DefaultStorageId, blobRanges[0], std::move(str1));
+            str1 = testBlob;
+            blobs.Add(IStoragesManager::DefaultStorageId, blobRanges[1], std::move(str1));
+            Insert(engine, db, TSnapshot(1, 2), std::move(dataToIndex), blobs, step);
+        }
+
+        // selects
+
+        auto lastSchema = engine.GetVersionedIndex().GetLastSchema();
+        UNIT_ASSERT_EQUAL(lastSchema->GetSnapshot(), indexSnaphot);
+        const TIndexInfo& indexInfo = lastSchema->GetIndexInfo();
+        THashSet oneColumnId = { indexInfo.GetColumnId(testColumns[0].GetName()) };
+        THashSet columnIds;
+        for (auto& c : testColumns) {
+            columnIds.insert(indexInfo.GetColumnId(c.GetName()));
+        }
+
+        { // select from snap before insert
+            ui64 planStep = 1;
+            ui64 txId = 0;
+            auto selectInfo = engine.Select(paths[0], TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
+            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 0);
+        }
+
+        { // select from snap between insert (greater txId)
+            ui64 planStep = 1;
+            ui64 txId = 2;
+            auto selectInfo = engine.Select(paths[0], TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
+            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 0);
+        }
+
+        { // select from snap after insert (greater planStep)
+            ui64 planStep = 2;
+            ui64 txId = 1;
+            auto selectInfo = engine.Select(paths[0], TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
+            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 1);
+            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK[0]->NumChunks(), columnIds.size() + TIndexInfo::GetSpecialColumnNames().size());
+        }
+
+        { // select another pathId
+            ui64 planStep = 2;
+            ui64 txId = 1;
+            auto selectInfo = engine.Select(paths[1], TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
+            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 0);
+        }
+    }
+
+    Y_UNIT_TEST(IndexWriteLoadRead) {
+        WriteLoadRead(testColumns, testKey);
+    }
+
+    Y_UNIT_TEST(IndexWriteLoadReadStrPK) {
+        std::vector key = {
+            NArrow::NTest::TTestColumn("resource_type", TTypeInfo(NTypeIds::Utf8) ),
+            NArrow::NTest::TTestColumn("resource_id", TTypeInfo(NTypeIds::Utf8) ),
+            NArrow::NTest::TTestColumn("uid", TTypeInfo(NTypeIds::Utf8) ),
+            NArrow::NTest::TTestColumn("timestamp", TTypeInfo(NTypeIds::Timestamp) )
+        };
+
+        WriteLoadRead(testColumns, key);
+    }
+
+    void ReadWithPredicates(const std::vector& ydbSchema,
+                            const std::vector& key) {
+        TTestDbWrapper db;
+        TIndexInfo tableInfo = NColumnShard::BuildTableInfo(ydbSchema, key);
+
+        ui64 pathId = 1;
+        ui32 step = 1000;
+
+        TSnapshot indexSnapshot(1, 1);
+        TColumnEngineForLogs engine(0, CommonStoragesManager, indexSnapshot, TIndexInfo(tableInfo));
+        engine.RegisterTable(pathId);
+        engine.Load(db);
+
+        // insert
+        ui64 planStep = 1;
+
+        ui64 numRows = 1000;
+        ui64 rowPos = 0;
+        for (ui64 txId = 1; txId <= 20; ++txId, rowPos += numRows) {
+            TString testBlob = MakeTestBlob(rowPos, rowPos + numRows);
+            auto blobRange = MakeBlobRange(++step, testBlob.size());
+            NBlobOperations::NRead::TCompositeReadBlobs blobs;
+            TString str1 = testBlob;
+            blobs.Add(IStoragesManager::DefaultStorageId, blobRange, std::move(str1));
+
+            // PlanStep, TxId, PathId, DedupId, BlobId, Data, [Metadata]
+            std::vector dataToIndex;
+            dataToIndex.push_back(
+                TInsertedData(txId, pathId, "", blobRange.BlobId, TLocalHelper::GetMetaProto(), 0, {}));
+
+            bool ok = Insert(engine, db, TSnapshot(planStep, txId), std::move(dataToIndex), blobs, step);
+            UNIT_ASSERT(ok);
+        }
+
+        // compact
+        planStep = 2;
+
+//        bool ok = Compact(engine, db, TSnapshot(planStep, 1), std::move(blobs), step, {20, 4, 4});
+//        UNIT_ASSERT(ok);
+
+        // read
+
+        // TODO: read old snapshot
+
+        planStep = 3;
+
+        const TIndexInfo& indexInfo = engine.GetVersionedIndex().GetLastSchema()->GetIndexInfo();
+        THashSet oneColumnId = { indexInfo.GetColumnId(key[0].GetName()) };
+
+        { // full scan
+            ui64 txId = 1;
+            auto selectInfo = engine.Select(pathId, TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
+            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 20);
+        }
+
+        // predicates
+
+        {
+            ui64 txId = 1;
+            std::shared_ptr gt10k = MakePredicate(10000, NArrow::EOperation::Greater);
+            if (key[0].GetType() == TTypeInfo(NTypeIds::Utf8)) {
+                gt10k = MakeStrPredicate("10000", NArrow::EOperation::Greater);
+            }
+            NOlap::TPKRangesFilter pkFilter(false);
+            Y_ABORT_UNLESS(pkFilter.Add(gt10k, nullptr, nullptr));
+            auto selectInfo = engine.Select(pathId, TSnapshot(planStep, txId), pkFilter);
+            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 10);
+        }
+
+        {
+            ui64 txId = 1;
+            std::shared_ptr lt10k = MakePredicate(8999, NArrow::EOperation::Less); // TODO: better border checks
+            if (key[0].GetType() == TTypeInfo(NTypeIds::Utf8)) {
+                lt10k = MakeStrPredicate("08999", NArrow::EOperation::Less);
+            }
+            NOlap::TPKRangesFilter pkFilter(false);
+            Y_ABORT_UNLESS(pkFilter.Add(nullptr, lt10k, nullptr));
+            auto selectInfo = engine.Select(pathId, TSnapshot(planStep, txId), pkFilter);
+            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 9);
+        }
+    }
+
+    Y_UNIT_TEST(IndexReadWithPredicates) {
+        ReadWithPredicates(testColumns, testKey);
+    }
+
+    Y_UNIT_TEST(IndexReadWithPredicatesStrPK) {
+        std::vector key = {
+            NArrow::NTest::TTestColumn("resource_type", TTypeInfo(NTypeIds::Utf8) ),
+            NArrow::NTest::TTestColumn("resource_id", TTypeInfo(NTypeIds::Utf8) ),
+            NArrow::NTest::TTestColumn("uid", TTypeInfo(NTypeIds::Utf8) ),
+            NArrow::NTest::TTestColumn("timestamp", TTypeInfo(NTypeIds::Timestamp) )
+        };
+
+        ReadWithPredicates(testColumns, key);
+    }
+
+    Y_UNIT_TEST(IndexWriteOverload) {
+        TTestDbWrapper db;
+        auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
+        TIndexInfo tableInfo = NColumnShard::BuildTableInfo(testColumns, testKey);;
+
+        ui64 pathId = 1;
+        ui32 step = 1000;
+
+        // inserts
+        ui64 planStep = 1;
+
+        TSnapshot indexSnapshot(1, 1);
+        TColumnEngineForLogs engine(0, CommonStoragesManager, indexSnapshot, TIndexInfo(tableInfo));
+        engine.RegisterTable(pathId);
+        engine.Load(db);
+
+        ui64 numRows = 1000;
+        ui64 rowPos = 0;
+        NBlobOperations::NRead::TCompositeReadBlobs blobsAll;
+        for (ui64 txId = 1; txId <= 100; ++txId, rowPos += numRows) {
+            TString testBlob = MakeTestBlob(rowPos, rowPos + numRows);
+            auto blobRange = MakeBlobRange(++step, testBlob.size());
+            NBlobOperations::NRead::TCompositeReadBlobs blobs;
+            blobs.Add(IStoragesManager::DefaultStorageId, blobRange, std::move(testBlob));
+
+            // PlanStep, TxId, PathId, DedupId, BlobId, Data, [Metadata]
+            std::vector dataToIndex;
+            dataToIndex.push_back(
+                TInsertedData(txId, pathId, "", blobRange.BlobId, TLocalHelper::GetMetaProto(), 0, {}));
+
+            bool ok = Insert(engine, db, TSnapshot(planStep, txId), std::move(dataToIndex), blobs, step);
+            blobsAll.Merge(std::move(blobs));
+            UNIT_ASSERT(ok);
+        }
+
+        { // check it's overloaded after reload
+            TColumnEngineForLogs tmpEngine(0, CommonStoragesManager, TSnapshot::Zero(), TIndexInfo(tableInfo));
+            tmpEngine.RegisterTable(pathId);
+            tmpEngine.Load(db);
+        }
+
+        // compact
+        planStep = 2;
+
+        bool ok = Compact(engine, db, TSnapshot(planStep, 1), std::move(blobsAll), step, {23, 5, 5});
+        UNIT_ASSERT(ok);
+
+        // success write after compaction
+        planStep = 3;
+
+        for (ui64 txId = 1; txId <= 2; ++txId, rowPos += numRows) {
+            TString testBlob = MakeTestBlob(rowPos, rowPos + numRows);
+            auto blobRange = MakeBlobRange(++step, testBlob.size());
+            NBlobOperations::NRead::TCompositeReadBlobs blobs;
+            blobs.Add(IStoragesManager::DefaultStorageId, blobRange, std::move(testBlob));
+
+            // PlanStep, TxId, PathId, DedupId, BlobId, Data, [Metadata]
+            std::vector dataToIndex;
+            dataToIndex.push_back(
+                TInsertedData(txId, pathId, "", blobRange.BlobId, TLocalHelper::GetMetaProto(), 0, {}));
+
+            bool ok = Insert(engine, db, TSnapshot(planStep, txId), std::move(dataToIndex), blobs, step);
+            UNIT_ASSERT(ok);
+        }
+
+        { // check it's not overloaded after reload
+            TColumnEngineForLogs tmpEngine(0, CommonStoragesManager, TSnapshot::Zero(), TIndexInfo(tableInfo));
+            tmpEngine.RegisterTable(pathId);
+            tmpEngine.Load(db);
+        }
+    }
+
+    Y_UNIT_TEST(IndexTtl) {
+        TTestDbWrapper db;
+        TIndexInfo tableInfo = NColumnShard::BuildTableInfo(testColumns, testKey);
+
+        ui64 pathId = 1;
+        ui32 step = 1000;
+
+        // insert
+        ui64 planStep = 1;
+        TSnapshot indexSnapshot(1, 1);
+        {
+            TColumnEngineForLogs engine(0, CommonStoragesManager, indexSnapshot, TIndexInfo(tableInfo));
+            engine.RegisterTable(pathId);
+            engine.Load(db);
+
+            ui64 numRows = 1000;
+            ui64 rowPos = 0;
+            for (ui64 txId = 1; txId <= 20; ++txId, rowPos += numRows) {
+                TString testBlob = MakeTestBlob(rowPos, rowPos + numRows);
+                auto blobRange = MakeBlobRange(++step, testBlob.size());
+                NBlobOperations::NRead::TCompositeReadBlobs blobs;
+                TString str1 = testBlob;
+                blobs.Add(IStoragesManager::DefaultStorageId, blobRange, std::move(str1));
+
+                // PlanStep, TxId, PathId, DedupId, BlobId, Data, [Metadata]
+                std::vector dataToIndex;
+                dataToIndex.push_back(
+                    TInsertedData(txId, pathId, "", blobRange.BlobId, TLocalHelper::GetMetaProto(), 0, {}));
+
+                bool ok = Insert(engine, db, TSnapshot(planStep, txId), std::move(dataToIndex), blobs, step);
+                UNIT_ASSERT(ok);
+            }
+
+            // compact
+            planStep = 2;
+
+            //        bool ok = Compact(engine, db, TSnapshot(planStep, 1), std::move(blobs), step, {20, 4, 4});
+            //        UNIT_ASSERT(ok);
+
+                    // read
+            planStep = 3;
+
+            const TIndexInfo& indexInfo = engine.GetVersionedIndex().GetLastSchema()->GetIndexInfo();
+            THashSet oneColumnId = {indexInfo.GetColumnId(testColumns[0].GetName())};
+
+            { // full scan
+                ui64 txId = 1;
+                auto selectInfo = engine.Select(pathId, TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
+                UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 20);
+            }
+
+            // Cleanup
+            Cleanup(engine, db, TSnapshot(planStep, 1), 0);
+
+            { // full scan
+                ui64 txId = 1;
+                auto selectInfo = engine.Select(pathId, TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
+                UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 20);
+            }
+
+            // TTL
+            std::shared_ptr ttlColType = arrow::timestamp(arrow::TimeUnit::MICRO);
+            THashMap pathTtls;
+            NOlap::TTiering tiering;
+            AFL_VERIFY(tiering.Add(NOlap::TTierInfo::MakeTtl(TDuration::MicroSeconds(TInstant::Now().MicroSeconds() - 10000), "timestamp")));
+            pathTtls.emplace(pathId, std::move(tiering));
+            Ttl(engine, db, pathTtls, 10);
+
+            // read + load + read
+
+            { // full scan
+                ui64 txId = 1;
+                auto selectInfo = engine.Select(pathId, TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
+                UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 10);
+            }
+        }
+        {
+            // load
+            TColumnEngineForLogs engine(0, CommonStoragesManager, indexSnapshot, TIndexInfo(tableInfo));
+            engine.RegisterTable(pathId);
+            engine.Load(db);
+
+            const TIndexInfo& indexInfo = engine.GetVersionedIndex().GetLastSchema()->GetIndexInfo();
+            THashSet oneColumnId = {indexInfo.GetColumnId(testColumns[0].GetName())};
+
+            { // full scan
+                ui64 txId = 1;
+                auto selectInfo = engine.Select(pathId, TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
+                UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 10);
+            }
+        }
+    }
+}
+
+}
diff --git a/ydb/core/tx/columnshard/engines/ut_program.cpp b/ydb/core/tx/columnshard/engines/ut/ut_program.cpp
similarity index 95%
rename from ydb/core/tx/columnshard/engines/ut_program.cpp
rename to ydb/core/tx/columnshard/engines/ut/ut_program.cpp
index 884c5739b5c1..a4586c489460 100644
--- a/ydb/core/tx/columnshard/engines/ut_program.cpp
+++ b/ydb/core/tx/columnshard/engines/ut/ut_program.cpp
@@ -1,7 +1,8 @@
-#include "index_info.h"
+#include 
+#include 
 
-#include 
 #include 
+#include 
 #include 
 #include 
 
@@ -20,16 +21,16 @@ using TTypeId = NScheme::TTypeId;
 using TTypeInfo = NScheme::TTypeInfo;
 
 namespace {
-    static const std::vector> testColumns = {
-        {"timestamp", TTypeInfo(NTypeIds::Timestamp) },
-        {"uid", TTypeInfo(NTypeIds::Utf8) },
-        {"sum", TTypeInfo(NTypeIds::Int32) },
-        {"vat", TTypeInfo(NTypeIds::Int32) },
+    static const std::vector testColumns = {
+        NArrow::NTest::TTestColumn("timestamp", TTypeInfo(NTypeIds::Timestamp) ),
+        NArrow::NTest::TTestColumn("uid", TTypeInfo(NTypeIds::Utf8) ),
+        NArrow::NTest::TTestColumn("sum", TTypeInfo(NTypeIds::Int32)),
+        NArrow::NTest::TTestColumn("vat", TTypeInfo(NTypeIds::Int32)),
     };
 
-    static const std::vector> testKey = {
-        {"timestamp", TTypeInfo(NTypeIds::Timestamp) },
-        {"uid", TTypeInfo(NTypeIds::Utf8) }
+    static const std::vector testKey = {
+        NArrow::NTest::TTestColumn("timestamp", TTypeInfo(NTypeIds::Timestamp) ),
+        NArrow::NTest::TTestColumn("uid", TTypeInfo(NTypeIds::Utf8) )
     };
 }
 
@@ -133,7 +134,7 @@ Y_UNIT_TEST_SUITE(TestProgram) {
 
     Y_UNIT_TEST(YqlKernel) {
         TIndexInfo indexInfo = BuildTableInfo(testColumns, testKey);
-        TIndexColumnResolver columnResolver(indexInfo);
+        NReader::NPlain::TIndexColumnResolver columnResolver(indexInfo);
 
         NKikimrSSA::TProgram programProto;
         {
@@ -178,7 +179,7 @@ Y_UNIT_TEST_SUITE(TestProgram) {
 
     Y_UNIT_TEST(YqlKernelStartsWithScalar) {
         TIndexInfo indexInfo = BuildTableInfo(testColumns, testKey);
-        TIndexColumnResolver columnResolver(indexInfo);
+        NReader::NPlain::TIndexColumnResolver columnResolver(indexInfo);
 
         NKikimrSSA::TProgram programProto;
         {
@@ -232,7 +233,7 @@ Y_UNIT_TEST_SUITE(TestProgram) {
 
     Y_UNIT_TEST(YqlKernelEndsWithScalar) {
         TIndexInfo indexInfo = BuildTableInfo(testColumns, testKey);
-        TIndexColumnResolver columnResolver(indexInfo);
+        NReader::NPlain::TIndexColumnResolver columnResolver(indexInfo);
 
         NKikimrSSA::TProgram programProto;
         {
@@ -286,7 +287,7 @@ Y_UNIT_TEST_SUITE(TestProgram) {
 
     Y_UNIT_TEST(YqlKernelStartsWith) {
         TIndexInfo indexInfo = BuildTableInfo(testColumns, testKey);
-        TIndexColumnResolver columnResolver(indexInfo);
+        NReader::NPlain::TIndexColumnResolver columnResolver(indexInfo);
 
         NKikimrSSA::TProgram programProto;
         {
@@ -333,7 +334,7 @@ Y_UNIT_TEST_SUITE(TestProgram) {
 
     Y_UNIT_TEST(YqlKernelEndsWith) {
         TIndexInfo indexInfo = BuildTableInfo(testColumns, testKey);
-        TIndexColumnResolver columnResolver(indexInfo);
+        NReader::NPlain::TIndexColumnResolver columnResolver(indexInfo);
 
         NKikimrSSA::TProgram programProto;
 
@@ -381,7 +382,7 @@ Y_UNIT_TEST_SUITE(TestProgram) {
 
     Y_UNIT_TEST(YqlKernelContains) {
         TIndexInfo indexInfo = BuildTableInfo(testColumns, testKey);
-        TIndexColumnResolver columnResolver(indexInfo);
+        NReader::NPlain::TIndexColumnResolver columnResolver(indexInfo);
 
         NKikimrSSA::TProgram programProto;
 
@@ -434,7 +435,7 @@ Y_UNIT_TEST_SUITE(TestProgram) {
 
     Y_UNIT_TEST(YqlKernelEquals) {
         TIndexInfo indexInfo = BuildTableInfo(testColumns, testKey);
-        TIndexColumnResolver columnResolver(indexInfo);
+        NReader::NPlain::TIndexColumnResolver columnResolver(indexInfo);
 
         NKikimrSSA::TProgram programProto;
 
@@ -489,7 +490,7 @@ Y_UNIT_TEST_SUITE(TestProgram) {
 
     void JsonExistsImpl(bool isBinaryType) {
         TIndexInfo indexInfo = BuildTableInfo(testColumns, testKey);
-        TIndexColumnResolver columnResolver(indexInfo);
+        NReader::NPlain::TIndexColumnResolver columnResolver(indexInfo);
 
         NKikimrSSA::TProgram programProto;
         {
@@ -535,7 +536,9 @@ Y_UNIT_TEST_SUITE(TestProgram) {
         if (isBinaryType) {
             THashMap cc;
             cc["json_data"] = TTypeInfo(NTypeIds::JsonDocument);
-            batch = NArrow::ConvertColumns(batch, cc);
+            auto convertResult = NArrow::ConvertColumns(batch, cc);
+            UNIT_ASSERT_C(convertResult.ok(), convertResult.status().ToString());
+            batch = *convertResult;
             Cerr << batch->ToString() << Endl;
         }
         auto res = program.ApplyProgram(batch);
@@ -551,7 +554,7 @@ Y_UNIT_TEST_SUITE(TestProgram) {
 
     Y_UNIT_TEST(Like) {
         TIndexInfo indexInfo = BuildTableInfo(testColumns, testKey);
-        TIndexColumnResolver columnResolver(indexInfo);
+        NReader::NPlain::TIndexColumnResolver columnResolver(indexInfo);
 
         NKikimrSSA::TProgram programProto;
         {
@@ -657,7 +660,7 @@ Y_UNIT_TEST_SUITE(TestProgram) {
 
     void JsonValueImpl(bool isBinaryType, NYql::EDataSlot resultType) {
         TIndexInfo indexInfo = BuildTableInfo(testColumns, testKey);
-        TIndexColumnResolver columnResolver(indexInfo);
+        NReader::NPlain::TIndexColumnResolver columnResolver(indexInfo);
 
         NKikimrSSA::TProgram programProto;
         {
@@ -727,7 +730,9 @@ Y_UNIT_TEST_SUITE(TestProgram) {
         if (isBinaryType) {
             THashMap cc;
             cc["json_data"] = TTypeInfo(NTypeIds::JsonDocument);
-            batch = NArrow::ConvertColumns(batch, cc);
+            auto convertResult = NArrow::ConvertColumns(batch, cc);
+            UNIT_ASSERT_C(convertResult.ok(), convertResult.status().ToString());
+            batch = *convertResult;
             Cerr << batch->ToString() << Endl;
         }
 
@@ -808,7 +813,7 @@ Y_UNIT_TEST_SUITE(TestProgram) {
 
     Y_UNIT_TEST(SimpleFunction) {
         TIndexInfo indexInfo = BuildTableInfo(testColumns, testKey);;
-        TIndexColumnResolver columnResolver(indexInfo);
+        NReader::NPlain::TIndexColumnResolver columnResolver(indexInfo);
 
         NKikimrSSA::TProgram programProto;
         {
diff --git a/ydb/core/tx/columnshard/engines/ut/ya.make b/ydb/core/tx/columnshard/engines/ut/ya.make
index 13fc351c5a56..41a7d7b2aac3 100644
--- a/ydb/core/tx/columnshard/engines/ut/ya.make
+++ b/ydb/core/tx/columnshard/engines/ut/ya.make
@@ -23,6 +23,7 @@ PEERDIR(
     ydb/library/yql/sql/pg_dummy
     ydb/library/yql/core/arrow_kernels/request
     ydb/core/testlib/default
+    ydb/core/tx/columnshard/test_helper
     ydb/core/tx/columnshard/hooks/abstract
     ydb/core/tx/columnshard/hooks/testing
 
@@ -35,6 +36,7 @@ SRCS(
     ut_insert_table.cpp
     ut_logs_engine.cpp
     ut_program.cpp
+    helper.cpp
     ydb/core/tx/columnshard/columnshard_ut_common.cpp
 )
 
diff --git a/ydb/core/tx/columnshard/engines/ut_logs_engine.cpp b/ydb/core/tx/columnshard/engines/ut_logs_engine.cpp
deleted file mode 100644
index 8f1bdf36fc4e..000000000000
--- a/ydb/core/tx/columnshard/engines/ut_logs_engine.cpp
+++ /dev/null
@@ -1,751 +0,0 @@
-#include 
-#include "column_engine_logs.h"
-#include "predicate/predicate.h"
-#include "changes/cleanup.h"
-
-#include 
-#include 
-#include 
-#include 
-
-
-namespace NKikimr {
-
-using namespace NOlap;
-namespace NTypeIds = NScheme::NTypeIds;
-using TTypeId = NScheme::TTypeId;
-using TTypeInfo = NScheme::TTypeInfo;
-using TDefaultTestsController = NKikimr::NYDBTest::NColumnShard::TController;
-
-namespace {
-
-class TTestDbWrapper : public IDbWrapper {
-private:
-    std::map> LoadContexts;
-public:
-    struct TIndex {
-        THashMap> Columns; // pathId -> portions
-        THashMap Counters;
-    };
-
-    void Insert(const TInsertedData& data) override {
-        Inserted.emplace(TWriteId{data.WriteTxId}, data);
-    }
-
-    void Commit(const TInsertedData& data) override {
-        Committed[data.PathId].emplace(data);
-    }
-
-    void Abort(const TInsertedData& data) override {
-        Aborted.emplace(TWriteId{data.WriteTxId}, data);
-    }
-
-    void EraseInserted(const TInsertedData& data) override {
-        Inserted.erase(TWriteId{data.WriteTxId});
-    }
-
-    void EraseCommitted(const TInsertedData& data) override {
-        Committed[data.PathId].erase(data);
-    }
-
-    void EraseAborted(const TInsertedData& data) override {
-        Aborted.erase(TWriteId{data.WriteTxId});
-    }
-
-    bool Load(TInsertTableAccessor& accessor,
-              const TInstant&) override {
-        for (auto&& i : Inserted) {
-            accessor.AddInserted(std::move(i.second), true);
-        }
-        for (auto&& i : Aborted) {
-            accessor.AddAborted(std::move(i.second), true);
-        }
-        for (auto&& i : Committed) {
-            for (auto&& c: i.second) {
-                auto copy = c;
-                accessor.AddCommitted(std::move(copy), true);
-            }
-        }
-        return true;
-    }
-
-    void WriteColumn(const TPortionInfo& portion, const TColumnRecord& row) override {
-        auto proto = portion.GetMeta().SerializeToProto(row.ColumnId, row.Chunk);
-        auto rowProto = row.GetMeta().SerializeToProto();
-        if (proto) {
-            *rowProto.MutablePortionMeta() = std::move(*proto);
-        }
-
-        auto& data = Indices[0].Columns[portion.GetPathId()];
-        NOlap::TColumnChunkLoadContext loadContext(row.GetAddress(), row.BlobRange, rowProto);
-        auto itInsertInfo = LoadContexts[portion.GetAddress()].emplace(row.GetAddress(), loadContext);
-        if (!itInsertInfo.second) {
-            itInsertInfo.first->second = loadContext;
-        }
-        auto it = data.find(portion.GetPortion());
-        if (it == data.end()) {
-            it = data.emplace(portion.GetPortion(), portion.CopyWithFilteredColumns({})).first;
-        } else {
-            Y_ABORT_UNLESS(portion.GetPathId() == it->second.GetPathId() && portion.GetPortion() == it->second.GetPortion());
-        }
-        it->second.SetMinSnapshot(portion.GetMinSnapshot());
-        it->second.SetRemoveSnapshot(portion.GetRemoveSnapshot());
-
-        bool replaced = false;
-        for (auto& rec : it->second.Records) {
-            if (rec.IsEqualTest(row)) {
-                rec = row;
-                replaced = true;
-                break;
-            }
-        }
-        if (!replaced) {
-            it->second.Records.push_back(row);
-        }
-    }
-
-    void EraseColumn(const TPortionInfo& portion, const TColumnRecord& row) override {
-        auto& data = Indices[0].Columns[portion.GetPathId()];
-        auto it = data.find(portion.GetPortion());
-        Y_ABORT_UNLESS(it != data.end());
-        auto& portionLocal = it->second;
-
-        std::vector filtered;
-        for (auto& rec : portionLocal.Records) {
-            if (!rec.IsEqualTest(row)) {
-                filtered.push_back(rec);
-            }
-        }
-        portionLocal.Records.swap(filtered);
-    }
-
-    bool LoadColumns(const std::function& callback) override {
-        auto& columns = Indices[0].Columns;
-        for (auto& [pathId, portions] : columns) {
-            for (auto& [portionId, portionLocal] : portions) {
-                auto copy = portionLocal;
-                copy.ResetMeta();
-                copy.Records.clear();
-                for (const auto& rec : portionLocal.Records) {
-                    auto itContextLoader = LoadContexts[copy.GetAddress()].find(rec.GetAddress());
-                    Y_ABORT_UNLESS(itContextLoader != LoadContexts[copy.GetAddress()].end());
-                    callback(copy, itContextLoader->second);
-                    LoadContexts[copy.GetAddress()].erase(itContextLoader);
-                }
-            }
-        }
-        return true;
-    }
-
-    virtual void WriteIndex(const TPortionInfo& /*portion*/, const TIndexChunk& /*row*/) override {}
-    virtual void EraseIndex(const TPortionInfo& /*portion*/, const TIndexChunk& /*row*/) override {}
-    virtual bool LoadIndexes(const std::function& /*callback*/) override { return true; }
-
-    void WriteCounter(ui32 counterId, ui64 value) override {
-        auto& counters = Indices[0].Counters;
-        counters[counterId] = value;
-    }
-
-    bool LoadCounters(const std::function& callback) override {
-        auto& counters = Indices[0].Counters;
-        for (auto& [id, value] : counters) {
-            callback(id, value);
-        }
-        return true;
-    }
-
-private:
-    THashMap Inserted;
-    THashMap> Committed;
-    THashMap Aborted;
-    THashMap Indices;
-};
-
-static const std::vector> testColumns = {
-    // PK
-    {"timestamp", TTypeInfo(NTypeIds::Timestamp) },
-    {"resource_type", TTypeInfo(NTypeIds::Utf8) },
-    {"resource_id", TTypeInfo(NTypeIds::Utf8) },
-    {"uid", TTypeInfo(NTypeIds::Utf8) },
-    //
-    {"message", TTypeInfo(NTypeIds::Utf8) }
-};
-
-static const std::vector> testKey = {
-    {"timestamp", TTypeInfo(NTypeIds::Timestamp) },
-    {"resource_type", TTypeInfo(NTypeIds::Utf8) },
-    {"resource_id", TTypeInfo(NTypeIds::Utf8) },
-    {"uid", TTypeInfo(NTypeIds::Utf8) }
-};
-
-template 
-class TBuilder {
-public:
-    using TTraits = typename arrow::TypeTraits;
-    using TCType = std::conditional_t::value, typename TTraits::CType, std::string>;
-
-    struct TRow {
-        TCType Timestamp;
-        std::string ResourceType;
-        std::string ResourceId;
-        std::string Uid;
-        std::string Message;
-    };
-
-    TBuilder()
-        : Schema(NArrow::MakeArrowSchema(testColumns))
-    {
-        auto status = arrow::RecordBatchBuilder::Make(Schema, arrow::default_memory_pool(), &BatchBuilder);
-        Y_ABORT_UNLESS(status.ok());
-    }
-
-    bool AddRow(const TRow& row) {
-        bool ok = true;
-        ok = ok && BatchBuilder->GetFieldAs(0)->Append(row.Timestamp).ok();
-        ok = ok && BatchBuilder->GetFieldAs::BuilderType>(1)->Append(row.ResourceType).ok();
-        ok = ok && BatchBuilder->GetFieldAs::BuilderType>(2)->Append(row.ResourceId).ok();
-        ok = ok && BatchBuilder->GetFieldAs::BuilderType>(3)->Append(row.Uid).ok();
-        ok = ok && BatchBuilder->GetFieldAs::BuilderType>(4)->Append(row.Message).ok();
-        return ok;
-    }
-
-    std::shared_ptr Finish() {
-        std::shared_ptr batch;
-        auto status = BatchBuilder->Flush(&batch);
-        Y_ABORT_UNLESS(status.ok());
-        return batch;
-    }
-
-private:
-    std::shared_ptr Schema = NArrow::MakeArrowSchema(testColumns);
-    std::unique_ptr BatchBuilder;
-};
-
-TUnifiedBlobId MakeUnifiedBlobId(ui32 step, ui32 blobSize) {
-    return TUnifiedBlobId(11111, TLogoBlobID(100500, 42, step, 3, blobSize, 0));
-}
-
-TBlobRange MakeBlobRange(ui32 step, ui32 blobSize) {
-    // tabletId, generation, step, channel, blobSize, cookie
-    return TBlobRange(MakeUnifiedBlobId(step, blobSize), 0, blobSize);
-}
-
-TString MakeTestBlob(i64 start = 0, i64 end = 100) {
-    TBuilder builder;
-    for (i64 ts = start; ts < end; ++ts) {
-        TString str = ToString(ts);
-        TString sortedStr = Sprintf("%05ld", (long)ts);
-        builder.AddRow({ts, sortedStr, str, str, str});
-    }
-    auto batch = builder.Finish();
-    return NArrow::SerializeBatchNoCompression(batch);
-}
-
-void AddIdsToBlobs(std::vector& portions, THashMap& blobs, ui32& step) {
-    for (auto& portion : portions) {
-        for (auto& rec : portion.GetPortionInfo().Records) {
-            rec.BlobRange.BlobId = MakeUnifiedBlobId(++step, portion.GetBlobFullSizeVerified(rec.ColumnId, rec.Chunk));
-            blobs[rec.BlobRange] = portion.GetBlobByRangeVerified(rec.ColumnId, rec.Chunk);
-        }
-    }
-}
-
-TCompactionLimits TestLimits() {
-    TCompactionLimits limits;
-    limits.GranuleBlobSplitSize = 1024;
-    limits.GranuleSizeForOverloadPrevent = 400 * 1024;
-    limits.GranuleOverloadSize = 800 * 1024;
-    return limits;
-}
-
-bool Insert(TColumnEngineForLogs& engine, TTestDbWrapper& db, TSnapshot snap,
-            std::vector&& dataToIndex, THashMap& blobs, ui32& step) {
-
-    for (ui32 i = 0; i < dataToIndex.size(); ++i) {
-        // Commited data always has nonzero planstep (for WriteLoadRead tests)
-        dataToIndex[i].PlanStep = i + 1;
-    };
-    std::shared_ptr changes = engine.StartInsert(std::move(dataToIndex));
-    if (!changes) {
-        return false;
-    }
-
-    changes->Blobs.insert(blobs.begin(), blobs.end());
-    blobs.clear();
-    changes->StartEmergency();
-
-    NOlap::TConstructionContext context(engine.GetVersionedIndex(), NColumnShard::TIndexationCounters("Indexation"));
-    Y_ABORT_UNLESS(changes->ConstructBlobs(context).Ok());
-
-    UNIT_ASSERT_VALUES_EQUAL(changes->AppendedPortions.size(), 1);
-    ui32 blobsCount = 0;
-    for (auto&& i : changes->AppendedPortions) {
-        blobsCount += i.GetBlobs().size();
-    }
-    UNIT_ASSERT_VALUES_EQUAL(blobsCount, 1); // add 2 columns: planStep, txId
-
-    AddIdsToBlobs(changes->AppendedPortions, blobs, step);
-
-    const bool result = engine.ApplyChanges(db, changes, snap);
-    changes->AbortEmergency();
-    return result;
-}
-
-struct TExpected {
-    ui32 SrcPortions;
-    ui32 NewPortions;
-    ui32 NewGranules;
-};
-
-bool Compact(TColumnEngineForLogs& engine, TTestDbWrapper& db, TSnapshot snap, THashMap&& blobs, ui32& step,
-             const TExpected& /*expected*/, THashMap* blobsPool = nullptr) {
-    std::shared_ptr changes = dynamic_pointer_cast(engine.StartCompaction(TestLimits(), {}));
-    UNIT_ASSERT(changes);
-    //    UNIT_ASSERT_VALUES_EQUAL(changes->SwitchedPortions.size(), expected.SrcPortions);
-    changes->SetBlobs(std::move(blobs));
-    changes->StartEmergency();
-    NOlap::TConstructionContext context(engine.GetVersionedIndex(), NColumnShard::TIndexationCounters("Compaction"));
-    Y_ABORT_UNLESS(changes->ConstructBlobs(context).Ok());
-
-    //    UNIT_ASSERT_VALUES_EQUAL(changes->AppendedPortions.size(), expected.NewPortions);
-    AddIdsToBlobs(changes->AppendedPortions, changes->Blobs, step);
-
-    //    UNIT_ASSERT_VALUES_EQUAL(changes->GetTmpGranuleIds().size(), expected.NewGranules);
-
-    const bool result = engine.ApplyChanges(db, changes, snap);
-    if (blobsPool) {
-        for (auto&& i : changes->AppendedPortions) {
-            for (auto&& r : i.GetPortionInfo().Records) {
-                Y_ABORT_UNLESS(blobsPool->emplace(r.BlobRange, i.GetBlobByRangeVerified(r.ColumnId, r.Chunk)).second);
-            }
-        }
-    }
-    changes->AbortEmergency();
-    return result;
-}
-
-bool Cleanup(TColumnEngineForLogs& engine, TTestDbWrapper& db, TSnapshot snap, ui32 expectedToDrop) {
-    THashSet pathsToDrop;
-    std::shared_ptr changes = engine.StartCleanup(snap, pathsToDrop, 1000);
-    UNIT_ASSERT(changes || !expectedToDrop);
-    if (!expectedToDrop && !changes) {
-        return true;
-    }
-    UNIT_ASSERT_VALUES_EQUAL(changes->PortionsToDrop.size(), expectedToDrop);
-
-
-    changes->StartEmergency();
-    const bool result = engine.ApplyChanges(db, changes, snap);
-    changes->AbortEmergency();
-    return result;
-}
-
-bool Ttl(TColumnEngineForLogs& engine, TTestDbWrapper& db,
-         const THashMap& pathEviction, ui32 expectedToDrop) {
-    std::shared_ptr changes = engine.StartTtl(pathEviction, {});
-    UNIT_ASSERT(changes);
-    UNIT_ASSERT_VALUES_EQUAL(changes->PortionsToRemove.size(), expectedToDrop);
-
-
-    changes->StartEmergency();
-    const bool result = engine.ApplyChanges(db, changes, TSnapshot(1,1));
-    changes->AbortEmergency();
-    return result;
-}
-
-std::shared_ptr MakePredicate(int64_t ts, NArrow::EOperation op) {
-    auto type = arrow::timestamp(arrow::TimeUnit::MICRO);
-    auto res = arrow::MakeArrayFromScalar(arrow::TimestampScalar(ts, type), 1);
-
-    std::vector> fields = { std::make_shared("timestamp", type) };
-    return std::make_shared(op, arrow::RecordBatch::Make(std::make_shared(std::move(fields)), 1, { *res }));
-}
-
-std::shared_ptr MakeStrPredicate(const std::string& key, NArrow::EOperation op) {
-    auto type = arrow::utf8();
-    auto res = arrow::MakeArrayFromScalar(arrow::StringScalar(key), 1);
-
-    std::vector> fields = { std::make_shared("resource_type", type) };
-    return std::make_shared(op, arrow::RecordBatch::Make(std::make_shared(std::move(fields)), 1, { *res }));
-}
-
-} // namespace
-
-class TTestStoragesManager: public NOlap::IStoragesManager {
-private:
-    using TBase = NOlap::IStoragesManager;
-    TIntrusivePtr TabletInfo = new TTabletStorageInfo();
-protected:
-    virtual std::shared_ptr DoBuildOperator(const TString& storageId) override {
-        if (storageId == TBase::DefaultStorageId) {
-            return std::make_shared(storageId, NActors::TActorId(), TabletInfo, 1);
-        } else 
-            return nullptr;
-    }
-};
-
-std::shared_ptr CommonStoragesManager = std::make_shared();
-
-Y_UNIT_TEST_SUITE(TColumnEngineTestLogs) {
-    void WriteLoadRead(const std::vector>& ydbSchema,
-                       const std::vector>& key) {
-        TTestDbWrapper db;
-        TIndexInfo tableInfo = NColumnShard::BuildTableInfo(ydbSchema, key);
-
-        std::vector paths = {1, 2};
-
-        TString testBlob = MakeTestBlob();
-
-        std::vector blobRanges;
-        blobRanges.push_back(MakeBlobRange(1, testBlob.size()));
-        blobRanges.push_back(MakeBlobRange(2, testBlob.size()));
-
-        // PlanStep, TxId, PathId, DedupId, BlobId, Data, [Metadata]
-        // load
-        TColumnEngineForLogs engine(0, TestLimits(), CommonStoragesManager);
-        TSnapshot indexSnaphot(1, 1);
-        engine.RegisterSchemaVersion(indexSnaphot, TIndexInfo(tableInfo));
-        for (auto&& i : paths) {
-            engine.RegisterTable(i);
-        }
-        engine.Load(db);
-
-        std::vector dataToIndex = {
-            TInsertedData(2, paths[0], "", blobRanges[0].BlobId, {}, 0, {}),
-            TInsertedData(1, paths[0], "", blobRanges[1].BlobId, {}, 0, {})
-        };
-
-        // write
-
-        ui32 step = 1000;
-        THashMap blobs;
-        blobs[blobRanges[0]] = testBlob;
-        blobs[blobRanges[1]] = testBlob;
-        Insert(engine, db, TSnapshot(1, 2), std::move(dataToIndex), blobs, step);
-
-        // selects
-
-        auto lastSchema = engine.GetVersionedIndex().GetLastSchema();
-        UNIT_ASSERT_EQUAL(lastSchema->GetSnapshot(), indexSnaphot);
-        const TIndexInfo& indexInfo = lastSchema->GetIndexInfo();
-        THashSet oneColumnId = { indexInfo.GetColumnId(testColumns[0].first) };
-        THashSet columnIds;
-        for (auto& [column, typeId] : testColumns) {
-            columnIds.insert(indexInfo.GetColumnId(column));
-        }
-
-        { // select from snap before insert
-            ui64 planStep = 1;
-            ui64 txId = 0;
-            auto selectInfo = engine.Select(paths[0], TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
-            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 0);
-        }
-
-        { // select from snap between insert (greater txId)
-            ui64 planStep = 1;
-            ui64 txId = 2;
-            auto selectInfo = engine.Select(paths[0], TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
-            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 0);
-        }
-
-        { // select from snap after insert (greater planStep)
-            ui64 planStep = 2;
-            ui64 txId = 1;
-            auto selectInfo = engine.Select(paths[0], TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
-            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 1);
-            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK[0]->NumChunks(), columnIds.size() + TIndexInfo::GetSpecialColumnNames().size());
-        }
-
-        { // select another pathId
-            ui64 planStep = 2;
-            ui64 txId = 1;
-            auto selectInfo = engine.Select(paths[1], TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
-            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 0);
-        }
-    }
-
-    Y_UNIT_TEST(IndexWriteLoadRead) {
-        WriteLoadRead(testColumns, testKey);
-    }
-
-    Y_UNIT_TEST(IndexWriteLoadReadStrPK) {
-        std::vector> key = {
-            {"resource_type", TTypeInfo(NTypeIds::Utf8) },
-            {"resource_id", TTypeInfo(NTypeIds::Utf8) },
-            {"uid", TTypeInfo(NTypeIds::Utf8) },
-            {"timestamp", TTypeInfo(NTypeIds::Timestamp) }
-        };
-
-        WriteLoadRead(testColumns, key);
-    }
-
-    void ReadWithPredicates(const std::vector>& ydbSchema,
-                            const std::vector>& key) {
-        TTestDbWrapper db;
-        TIndexInfo tableInfo = NColumnShard::BuildTableInfo(ydbSchema, key);
-
-        ui64 pathId = 1;
-        ui32 step = 1000;
-
-        TSnapshot indexSnapshot(1, 1);
-        TColumnEngineForLogs engine(0, TestLimits(), CommonStoragesManager);
-        engine.RegisterSchemaVersion(indexSnapshot, TIndexInfo(tableInfo));
-        engine.RegisterTable(pathId);
-        engine.Load(db);
-
-        // insert
-        ui64 planStep = 1;
-
-        ui64 numRows = 1000;
-        ui64 rowPos = 0;
-        for (ui64 txId = 1; txId <= 20; ++txId, rowPos += numRows) {
-            TString testBlob = MakeTestBlob(rowPos, rowPos + numRows);
-            auto blobRange = MakeBlobRange(++step, testBlob.size());
-            THashMap blobs;
-            blobs[blobRange] = testBlob;
-
-            // PlanStep, TxId, PathId, DedupId, BlobId, Data, [Metadata]
-            std::vector dataToIndex;
-            dataToIndex.push_back(
-                TInsertedData(txId, pathId, "", blobRange.BlobId, {}, 0, {}));
-
-            bool ok = Insert(engine, db, TSnapshot(planStep, txId), std::move(dataToIndex), blobs, step);
-            UNIT_ASSERT(ok);
-        }
-
-        // compact
-        planStep = 2;
-
-//        bool ok = Compact(engine, db, TSnapshot(planStep, 1), std::move(blobs), step, {20, 4, 4});
-//        UNIT_ASSERT(ok);
-
-        // read
-
-        // TODO: read old snapshot
-
-        planStep = 3;
-
-        const TIndexInfo& indexInfo = engine.GetVersionedIndex().GetLastSchema()->GetIndexInfo();
-        THashSet oneColumnId = { indexInfo.GetColumnId(key[0].first) };
-
-        { // full scan
-            ui64 txId = 1;
-            auto selectInfo = engine.Select(pathId, TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
-            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 20);
-        }
-
-        // predicates
-
-        {
-            ui64 txId = 1;
-            std::shared_ptr gt10k = MakePredicate(10000, NArrow::EOperation::Greater);
-            if (key[0].second == TTypeInfo(NTypeIds::Utf8)) {
-                gt10k = MakeStrPredicate("10000", NArrow::EOperation::Greater);
-            }
-            NOlap::TPKRangesFilter pkFilter(false);
-            Y_ABORT_UNLESS(pkFilter.Add(gt10k, nullptr, nullptr));
-            auto selectInfo = engine.Select(pathId, TSnapshot(planStep, txId), pkFilter);
-            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 10);
-        }
-
-        {
-            ui64 txId = 1;
-            std::shared_ptr lt10k = MakePredicate(8999, NArrow::EOperation::Less); // TODO: better border checks
-            if (key[0].second == TTypeInfo(NTypeIds::Utf8)) {
-                lt10k = MakeStrPredicate("08999", NArrow::EOperation::Less);
-            }
-            NOlap::TPKRangesFilter pkFilter(false);
-            Y_ABORT_UNLESS(pkFilter.Add(nullptr, lt10k, nullptr));
-            auto selectInfo = engine.Select(pathId, TSnapshot(planStep, txId), pkFilter);
-            UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 9);
-        }
-    }
-
-    Y_UNIT_TEST(IndexReadWithPredicates) {
-        ReadWithPredicates(testColumns, testKey);
-    }
-
-    Y_UNIT_TEST(IndexReadWithPredicatesStrPK) {
-        std::vector> key = {
-            {"resource_type", TTypeInfo(NTypeIds::Utf8) },
-            {"resource_id", TTypeInfo(NTypeIds::Utf8) },
-            {"uid", TTypeInfo(NTypeIds::Utf8) },
-            {"timestamp", TTypeInfo(NTypeIds::Timestamp) }
-        };
-
-        ReadWithPredicates(testColumns, key);
-    }
-
-    Y_UNIT_TEST(IndexWriteOverload) {
-        TTestDbWrapper db;
-        auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
-        TIndexInfo tableInfo = NColumnShard::BuildTableInfo(testColumns, testKey);;
-
-        ui64 pathId = 1;
-        ui32 step = 1000;
-
-        // inserts
-        ui64 planStep = 1;
-
-        TColumnEngineForLogs engine(0, TestLimits(), CommonStoragesManager);
-        TSnapshot indexSnapshot(1, 1);
-        engine.RegisterSchemaVersion(indexSnapshot, TIndexInfo(tableInfo));
-        engine.RegisterTable(pathId);
-        engine.Load(db);
-
-        ui64 numRows = 1000;
-        ui64 rowPos = 0;
-        THashMap blobsAll;
-        for (ui64 txId = 1; txId <= 100; ++txId, rowPos += numRows) {
-            TString testBlob = MakeTestBlob(rowPos, rowPos + numRows);
-            auto blobRange = MakeBlobRange(++step, testBlob.size());
-            THashMap blobs;
-            blobs[blobRange] = testBlob;
-
-            // PlanStep, TxId, PathId, DedupId, BlobId, Data, [Metadata]
-            std::vector dataToIndex;
-            dataToIndex.push_back(
-                TInsertedData(txId, pathId, "", blobRange.BlobId, {}, 0, {}));
-
-            bool ok = Insert(engine, db, TSnapshot(planStep, txId), std::move(dataToIndex), blobs, step);
-            for (auto&& i : blobs) {
-                blobsAll[i.first] = i.second;
-            }
-            UNIT_ASSERT(ok);
-        }
-
-        { // check it's overloaded after reload
-            TColumnEngineForLogs tmpEngine(0, TestLimits(), CommonStoragesManager);
-            tmpEngine.RegisterSchemaVersion(TSnapshot::Zero(), TIndexInfo(tableInfo));
-            tmpEngine.RegisterTable(pathId);
-            tmpEngine.Load(db);
-        }
-
-        // compact
-        planStep = 2;
-
-        bool ok = Compact(engine, db, TSnapshot(planStep, 1), std::move(blobsAll), step, {23, 5, 5});
-        UNIT_ASSERT(ok);
-
-        // success write after compaction
-        planStep = 3;
-
-        for (ui64 txId = 1; txId <= 2; ++txId, rowPos += numRows) {
-            TString testBlob = MakeTestBlob(rowPos, rowPos + numRows);
-            auto blobRange = MakeBlobRange(++step, testBlob.size());
-            THashMap blobs;
-            blobs[blobRange] = testBlob;
-
-            // PlanStep, TxId, PathId, DedupId, BlobId, Data, [Metadata]
-            std::vector dataToIndex;
-            dataToIndex.push_back(
-                TInsertedData(txId, pathId, "", blobRange.BlobId, {}, 0, {}));
-
-            bool ok = Insert(engine, db, TSnapshot(planStep, txId), std::move(dataToIndex), blobs, step);
-            UNIT_ASSERT(ok);
-        }
-
-        { // check it's not overloaded after reload
-            TColumnEngineForLogs tmpEngine(0, TestLimits(), CommonStoragesManager);
-            tmpEngine.RegisterSchemaVersion(TSnapshot::Zero(), TIndexInfo(tableInfo));
-            tmpEngine.RegisterTable(pathId);
-            tmpEngine.Load(db);
-        }
-    }
-
-    Y_UNIT_TEST(IndexTtl) {
-        TTestDbWrapper db;
-        TIndexInfo tableInfo = NColumnShard::BuildTableInfo(testColumns, testKey);
-
-        ui64 pathId = 1;
-        ui32 step = 1000;
-
-        // insert
-        ui64 planStep = 1;
-        TSnapshot indexSnapshot(1, 1);
-        {
-            TColumnEngineForLogs engine(0, TestLimits(), CommonStoragesManager);
-            engine.RegisterSchemaVersion(indexSnapshot, TIndexInfo(tableInfo));
-            engine.RegisterTable(pathId);
-            engine.Load(db);
-
-            ui64 numRows = 1000;
-            ui64 rowPos = 0;
-            for (ui64 txId = 1; txId <= 20; ++txId, rowPos += numRows) {
-                TString testBlob = MakeTestBlob(rowPos, rowPos + numRows);
-                auto blobRange = MakeBlobRange(++step, testBlob.size());
-                THashMap blobs;
-                blobs[blobRange] = testBlob;
-
-                // PlanStep, TxId, PathId, DedupId, BlobId, Data, [Metadata]
-                std::vector dataToIndex;
-                dataToIndex.push_back(
-                    TInsertedData(txId, pathId, "", blobRange.BlobId, {}, 0, {}));
-
-                bool ok = Insert(engine, db, TSnapshot(planStep, txId), std::move(dataToIndex), blobs, step);
-                UNIT_ASSERT(ok);
-            }
-
-            // compact
-            planStep = 2;
-
-            //        bool ok = Compact(engine, db, TSnapshot(planStep, 1), std::move(blobs), step, {20, 4, 4});
-            //        UNIT_ASSERT(ok);
-
-                    // read
-            planStep = 3;
-
-            const TIndexInfo& indexInfo = engine.GetVersionedIndex().GetLastSchema()->GetIndexInfo();
-            THashSet oneColumnId = {indexInfo.GetColumnId(testColumns[0].first)};
-
-            { // full scan
-                ui64 txId = 1;
-                auto selectInfo = engine.Select(pathId, TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
-                UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 20);
-            }
-
-            // Cleanup
-            Cleanup(engine, db, TSnapshot(planStep, 1), 0);
-
-            { // full scan
-                ui64 txId = 1;
-                auto selectInfo = engine.Select(pathId, TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
-                UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 20);
-            }
-
-            // TTL
-            std::shared_ptr ttlColType = arrow::timestamp(arrow::TimeUnit::MICRO);
-            THashMap pathTtls;
-            NOlap::TTiering tiering;
-            tiering.Ttl = NOlap::TTierInfo::MakeTtl(TDuration::MicroSeconds(TInstant::Now().MicroSeconds() - 10000), "timestamp");
-            pathTtls.emplace(pathId, std::move(tiering));
-            Ttl(engine, db, pathTtls, 10);
-
-            // read + load + read
-
-            { // full scan
-                ui64 txId = 1;
-                auto selectInfo = engine.Select(pathId, TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
-                UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 10);
-            }
-        }
-        {
-            // load
-            TColumnEngineForLogs engine(0, TestLimits(), CommonStoragesManager);
-            engine.RegisterSchemaVersion(indexSnapshot, TIndexInfo(tableInfo));
-            engine.RegisterTable(pathId);
-            engine.Load(db);
-
-            const TIndexInfo& indexInfo = engine.GetVersionedIndex().GetLastSchema()->GetIndexInfo();
-            THashSet oneColumnId = {indexInfo.GetColumnId(testColumns[0].first)};
-
-            { // full scan
-                ui64 txId = 1;
-                auto selectInfo = engine.Select(pathId, TSnapshot(planStep, txId), NOlap::TPKRangesFilter(false));
-                UNIT_ASSERT_VALUES_EQUAL(selectInfo->PortionsOrderedPK.size(), 10);
-            }
-        }
-    }
-}
-
-}
diff --git a/ydb/core/tx/columnshard/engines/writer/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/writer/CMakeLists.darwin-arm64.txt
index b2d1bcb6c402..f9552befc4cd 100644
--- a/ydb/core/tx/columnshard/engines/writer/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/columnshard/engines/writer/CMakeLists.darwin-arm64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(buffer)
 
 add_library(columnshard-engines-writer)
 target_compile_options(columnshard-engines-writer PRIVATE
@@ -19,6 +20,7 @@ target_link_libraries(columnshard-engines-writer PUBLIC
   blobstorage-vdisk-protos
   ydb-core-tablet_flat
   core-formats-arrow
+  engines-writer-buffer
   library-actors-core
 )
 target_sources(columnshard-engines-writer PRIVATE
diff --git a/ydb/core/tx/columnshard/engines/writer/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/engines/writer/CMakeLists.darwin-x86_64.txt
index b2d1bcb6c402..f9552befc4cd 100644
--- a/ydb/core/tx/columnshard/engines/writer/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/writer/CMakeLists.darwin-x86_64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(buffer)
 
 add_library(columnshard-engines-writer)
 target_compile_options(columnshard-engines-writer PRIVATE
@@ -19,6 +20,7 @@ target_link_libraries(columnshard-engines-writer PUBLIC
   blobstorage-vdisk-protos
   ydb-core-tablet_flat
   core-formats-arrow
+  engines-writer-buffer
   library-actors-core
 )
 target_sources(columnshard-engines-writer PRIVATE
diff --git a/ydb/core/tx/columnshard/engines/writer/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/engines/writer/CMakeLists.linux-aarch64.txt
index f583bbb57571..059239b8a589 100644
--- a/ydb/core/tx/columnshard/engines/writer/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/columnshard/engines/writer/CMakeLists.linux-aarch64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(buffer)
 
 add_library(columnshard-engines-writer)
 target_compile_options(columnshard-engines-writer PRIVATE
@@ -20,6 +21,7 @@ target_link_libraries(columnshard-engines-writer PUBLIC
   blobstorage-vdisk-protos
   ydb-core-tablet_flat
   core-formats-arrow
+  engines-writer-buffer
   library-actors-core
 )
 target_sources(columnshard-engines-writer PRIVATE
diff --git a/ydb/core/tx/columnshard/engines/writer/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/engines/writer/CMakeLists.linux-x86_64.txt
index f583bbb57571..059239b8a589 100644
--- a/ydb/core/tx/columnshard/engines/writer/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/writer/CMakeLists.linux-x86_64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(buffer)
 
 add_library(columnshard-engines-writer)
 target_compile_options(columnshard-engines-writer PRIVATE
@@ -20,6 +21,7 @@ target_link_libraries(columnshard-engines-writer PUBLIC
   blobstorage-vdisk-protos
   ydb-core-tablet_flat
   core-formats-arrow
+  engines-writer-buffer
   library-actors-core
 )
 target_sources(columnshard-engines-writer PRIVATE
diff --git a/ydb/core/tx/columnshard/engines/writer/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/engines/writer/CMakeLists.windows-x86_64.txt
index b2d1bcb6c402..f9552befc4cd 100644
--- a/ydb/core/tx/columnshard/engines/writer/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/columnshard/engines/writer/CMakeLists.windows-x86_64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(buffer)
 
 add_library(columnshard-engines-writer)
 target_compile_options(columnshard-engines-writer PRIVATE
@@ -19,6 +20,7 @@ target_link_libraries(columnshard-engines-writer PUBLIC
   blobstorage-vdisk-protos
   ydb-core-tablet_flat
   core-formats-arrow
+  engines-writer-buffer
   library-actors-core
 )
 target_sources(columnshard-engines-writer PRIVATE
diff --git a/ydb/core/tx/columnshard/engines/writer/blob_constructor.cpp b/ydb/core/tx/columnshard/engines/writer/blob_constructor.cpp
index 2fae90b9e7f1..ccf07b5ba5f3 100644
--- a/ydb/core/tx/columnshard/engines/writer/blob_constructor.cpp
+++ b/ydb/core/tx/columnshard/engines/writer/blob_constructor.cpp
@@ -2,4 +2,16 @@
 
 namespace NKikimr::NOlap {
 
+TBlobWriteInfo::TBlobWriteInfo(const TString& data, const std::shared_ptr& writeOperator, const std::optional& customBlobId)
+    : Data(data)
+    , WriteOperator(writeOperator)
+{
+    Y_ABORT_UNLESS(WriteOperator);
+    BlobId = WriteOperator->AddDataForWrite(data, customBlobId);
+}
+
+NKikimr::NOlap::TBlobWriteInfo TBlobWriteInfo::BuildWriteTask(const TString& data, const std::shared_ptr& writeOperator, const std::optional& customBlobId /*= {}*/) {
+    return TBlobWriteInfo(data, writeOperator, customBlobId);
+}
+
 }
diff --git a/ydb/core/tx/columnshard/engines/writer/blob_constructor.h b/ydb/core/tx/columnshard/engines/writer/blob_constructor.h
index c2df91c9a605..2c7bf22753af 100644
--- a/ydb/core/tx/columnshard/engines/writer/blob_constructor.h
+++ b/ydb/core/tx/columnshard/engines/writer/blob_constructor.h
@@ -23,18 +23,11 @@ class TBlobWriteInfo {
 private:
     YDB_READONLY_DEF(TUnifiedBlobId, BlobId);
     YDB_READONLY_DEF(TString, Data);
-    YDB_READONLY_DEF(std::shared_ptr, WriteOperator);
-
-    TBlobWriteInfo(const TString& data, const std::shared_ptr& writeOperator)
-        : Data(data)
-        , WriteOperator(writeOperator) {
-        Y_ABORT_UNLESS(WriteOperator);
-        BlobId = WriteOperator->AddDataForWrite(data);
-    }
+    YDB_ACCESSOR_DEF(std::shared_ptr, WriteOperator);
+
+    TBlobWriteInfo(const TString& data, const std::shared_ptr& writeOperator, const std::optional& customBlobId);
 public:
-    static TBlobWriteInfo BuildWriteTask(const TString& data, const std::shared_ptr& writeOperator) {
-        return TBlobWriteInfo(data, writeOperator);
-    }
+    static TBlobWriteInfo BuildWriteTask(const TString& data, const std::shared_ptr& writeOperator, const std::optional& customBlobId = {});
 };
 
 }
diff --git a/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..0dbf8dfecb14
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.darwin-arm64.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(engines-writer-buffer)
+target_link_libraries(engines-writer-buffer PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  library-actors-core
+  ydb-core-protos
+  ydb-core-tablet_flat
+  yql-core-expr_nodes
+  actors-testlib-common
+)
+target_sources(engines-writer-buffer PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/writer/buffer/actor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/writer/buffer/events.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..0dbf8dfecb14
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.darwin-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(engines-writer-buffer)
+target_link_libraries(engines-writer-buffer PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  library-actors-core
+  ydb-core-protos
+  ydb-core-tablet_flat
+  yql-core-expr_nodes
+  actors-testlib-common
+)
+target_sources(engines-writer-buffer PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/writer/buffer/actor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/writer/buffer/events.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..7d54501a3a89
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,24 @@
+
+# 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(engines-writer-buffer)
+target_link_libraries(engines-writer-buffer PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  library-actors-core
+  ydb-core-protos
+  ydb-core-tablet_flat
+  yql-core-expr_nodes
+  actors-testlib-common
+)
+target_sources(engines-writer-buffer PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/writer/buffer/actor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/writer/buffer/events.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..7d54501a3a89
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,24 @@
+
+# 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(engines-writer-buffer)
+target_link_libraries(engines-writer-buffer PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  library-actors-core
+  ydb-core-protos
+  ydb-core-tablet_flat
+  yql-core-expr_nodes
+  actors-testlib-common
+)
+target_sources(engines-writer-buffer PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/writer/buffer/actor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/writer/buffer/events.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.txt b/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..0dbf8dfecb14
--- /dev/null
+++ b/ydb/core/tx/columnshard/engines/writer/buffer/CMakeLists.windows-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(engines-writer-buffer)
+target_link_libraries(engines-writer-buffer PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  library-actors-core
+  ydb-core-protos
+  ydb-core-tablet_flat
+  yql-core-expr_nodes
+  actors-testlib-common
+)
+target_sources(engines-writer-buffer PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/writer/buffer/actor.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/engines/writer/buffer/events.cpp
+)
diff --git a/ydb/core/tx/columnshard/engines/writer/buffer/actor.cpp b/ydb/core/tx/columnshard/engines/writer/buffer/actor.cpp
index 28e0ab6ca203..0ffaaf3a9fee 100644
--- a/ydb/core/tx/columnshard/engines/writer/buffer/actor.cpp
+++ b/ydb/core/tx/columnshard/engines/writer/buffer/actor.cpp
@@ -1,4 +1,5 @@
 #include "actor.h"
+#include 
 #include 
 
 namespace NKikimr::NColumnShard::NWriting {
diff --git a/ydb/core/tx/columnshard/engines/writer/buffer/ya.make b/ydb/core/tx/columnshard/engines/writer/buffer/ya.make
index 78a3ee199907..2aafd30fcc66 100644
--- a/ydb/core/tx/columnshard/engines/writer/buffer/ya.make
+++ b/ydb/core/tx/columnshard/engines/writer/buffer/ya.make
@@ -15,6 +15,8 @@ PEERDIR(
     ydb/core/tablet_flat
     ydb/library/yql/core/expr_nodes
     ydb/library/actors/testlib/common
+    ydb/core/tx/columnshard/data_sharing/protos
+    ydb/core/tx/columnshard/blobs_action/protos
 )
 
 END()
diff --git a/ydb/core/tx/columnshard/engines/writer/compacted_blob_constructor.cpp b/ydb/core/tx/columnshard/engines/writer/compacted_blob_constructor.cpp
index 59cd3a62042e..4f48bc21c245 100644
--- a/ydb/core/tx/columnshard/engines/writer/compacted_blob_constructor.cpp
+++ b/ydb/core/tx/columnshard/engines/writer/compacted_blob_constructor.cpp
@@ -3,6 +3,7 @@
 #include 
 #include 
 #include 
+#include 
 
 namespace NKikimr::NOlap {
 
@@ -18,23 +19,31 @@ TCompactedWriteController::TCompactedWriteController(const TActorId& dstActor, T
         auto* pInfo = changes.GetWritePortionInfo(i);
         Y_ABORT_UNLESS(pInfo);
         TPortionInfoWithBlobs& portionWithBlobs = *pInfo;
-        auto action = changes.MutableBlobsAction().GetWriting(portionWithBlobs.GetPortionInfo());
         for (auto&& b : portionWithBlobs.GetBlobs()) {
-            auto& task = AddWriteTask(TBlobWriteInfo::BuildWriteTask(b.GetBlob(), action));
+            auto& task = AddWriteTask(TBlobWriteInfo::BuildWriteTask(b.GetBlob(), changes.MutableBlobsAction().GetWriting(b.GetOperator()->GetStorageId())));
             b.RegisterBlobId(portionWithBlobs, task.GetBlobId());
+            WriteVolume += b.GetSize();
         }
     }
 }
 
 void TCompactedWriteController::DoOnReadyResult(const NActors::TActorContext& ctx, const NColumnShard::TBlobPutResult::TPtr& putResult) {
-    WriteIndexEv->PutResult = putResult;
+    WriteIndexEv->PutResult = NYDBTest::TControllers::GetColumnShardController()->OverrideBlobPutResultOnCompaction(putResult, GetBlobActions());
     ctx.Send(DstActor, WriteIndexEv.Release());
 }
 
 TCompactedWriteController::~TCompactedWriteController() {
     if (WriteIndexEv && WriteIndexEv->IndexChanges) {
-        WriteIndexEv->IndexChanges->AbortEmergency();
+        WriteIndexEv->IndexChanges->AbortEmergency("TCompactedWriteController destructed with WriteIndexEv and WriteIndexEv->IndexChanges");
     }
 }
 
+const NKikimr::NOlap::TBlobsAction& TCompactedWriteController::GetBlobsAction() {
+    return WriteIndexEv->IndexChanges->GetBlobsAction();
+}
+
+void TCompactedWriteController::DoAbort(const TString& reason) {
+    AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "TCompactedWriteController::DoAbort")("reason", reason);
+}
+
 }
diff --git a/ydb/core/tx/columnshard/engines/writer/compacted_blob_constructor.h b/ydb/core/tx/columnshard/engines/writer/compacted_blob_constructor.h
index 36a5d9a34b45..99eb6f29961d 100644
--- a/ydb/core/tx/columnshard/engines/writer/compacted_blob_constructor.h
+++ b/ydb/core/tx/columnshard/engines/writer/compacted_blob_constructor.h
@@ -6,6 +6,7 @@
 #include 
 #include 
 #include 
+#include 
 
 namespace NKikimr::NOlap {
 
@@ -13,9 +14,18 @@ class TCompactedWriteController : public NColumnShard::IWriteController {
 private:
     TAutoPtr WriteIndexEv;
     TActorId DstActor;
+    ui64 WriteVolume = 0;
+
 protected:
     void DoOnReadyResult(const NActors::TActorContext& ctx, const NColumnShard::TBlobPutResult::TPtr& putResult) override;
+    virtual void DoAbort(const TString& reason) override;
+
 public:
+    const TBlobsAction& GetBlobsAction();
+    ui64 GetWriteVolume() const {
+        return WriteVolume;
+    }
+
     TCompactedWriteController(const TActorId& dstActor, TAutoPtr writeEv);
     ~TCompactedWriteController();
 };
diff --git a/ydb/core/tx/columnshard/engines/writer/indexed_blob_constructor.cpp b/ydb/core/tx/columnshard/engines/writer/indexed_blob_constructor.cpp
index 318e4889fe07..7b858a3e6984 100644
--- a/ydb/core/tx/columnshard/engines/writer/indexed_blob_constructor.cpp
+++ b/ydb/core/tx/columnshard/engines/writer/indexed_blob_constructor.cpp
@@ -35,14 +35,45 @@ void TWideSerializedBatch::InitBlobId(const TUnifiedBlobId& id) {
 
 void TWritingBuffer::InitReadyInstant(const TMonotonic instant) {
     for (auto&& aggr : Aggregations) {
-        aggr->GetWriteData()->MutableWriteMeta().SetWriteMiddle4StartInstant(instant);
+        aggr->GetWriteData()->MutableWriteMeta().SetWriteMiddle5StartInstant(instant);
     }
 }
 
 void TWritingBuffer::InitStartSending(const TMonotonic instant) {
     for (auto&& aggr : Aggregations) {
-        aggr->GetWriteData()->MutableWriteMeta().SetWriteMiddle5StartInstant(instant);
+        aggr->GetWriteData()->MutableWriteMeta().SetWriteMiddle4StartInstant(instant);
+    }
+}
+
+void TWritingBuffer::InitReplyReceived(const TMonotonic instant) {
+    for (auto&& aggr : Aggregations) {
+        aggr->GetWriteData()->MutableWriteMeta().SetWriteMiddle6StartInstant(instant);
+    }
+}
+
+std::vector TWritingBuffer::GroupIntoBlobs() {
+    std::vector result;
+    TWritingBlob currentBlob;
+    ui64 sumSize = 0;
+    for (auto&& aggr : Aggregations) {
+        for (auto&& bInfo : aggr->MutableSplittedBlobs()) {
+            if (!currentBlob.AddData(bInfo)) {
+                result.emplace_back(std::move(currentBlob));
+                currentBlob = TWritingBlob();
+                AFL_VERIFY(currentBlob.AddData(bInfo));
+            }
+            sumSize += bInfo.GetSplittedBlobs().GetSize();
+        }
+    }
+    if (currentBlob.GetSize()) {
+        result.emplace_back(std::move(currentBlob));
+    }
+    if (result.size()) {
+        if (sumSize / result.size() < 4 * 1024 * 1024 && result.size() != 1) {
+            AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "error_splitting")("size", sumSize)("count", result.size());
+        }
     }
+    return result;
 }
 
 }
diff --git a/ydb/core/tx/columnshard/engines/writer/indexed_blob_constructor.h b/ydb/core/tx/columnshard/engines/writer/indexed_blob_constructor.h
index 7f977a171597..e4af7b2da294 100644
--- a/ydb/core/tx/columnshard/engines/writer/indexed_blob_constructor.h
+++ b/ydb/core/tx/columnshard/engines/writer/indexed_blob_constructor.h
@@ -5,6 +5,7 @@
 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -57,7 +58,7 @@ class TWritingBlob {
     bool AddData(TWideSerializedBatch& batch) {
         if (BlobData.size() + batch.GetSplittedBlobs().GetSize() < 8 * 1024 * 1024) {
             Ranges.emplace_back(&batch);
-            batch.SetRange(TBlobRange(TUnifiedBlobId(0, 0, 0, 0, BlobData.size() + batch.GetSplittedBlobs().GetSize()), BlobData.size(), batch.GetSplittedBlobs().GetSize()));
+            batch.SetRange(TBlobRange(TUnifiedBlobId(0, 0, 0, 0, 0, 0, BlobData.size() + batch.GetSplittedBlobs().GetSize()), BlobData.size(), batch.GetSplittedBlobs().GetSize()));
             BlobData += batch.GetSplittedBlobs().GetData();
             return true;
         } else {
@@ -134,9 +135,9 @@ class TWritingBuffer: public TMoveOnly {
                 for (auto&& s : Aggregations[i]->GetSplittedBlobs()) {
                     if (--linksCount[s.GetRange().BlobId] == 0) {
                         if (!DeclareRemoveAction) {
-                            DeclareRemoveAction = bOperator->StartDeclareRemovingAction("WRITING_BUFFER");
+                            DeclareRemoveAction = bOperator->StartDeclareRemovingAction(NBlobOperations::EConsumer::WRITING_BUFFER);
                         }
-                        DeclareRemoveAction->DeclareRemove(s.GetRange().BlobId);
+                        DeclareRemoveAction->DeclareRemove(bOperator->GetSelfTabletId(), s.GetRange().BlobId);
                     }
                 }
                 Aggregations.erase(Aggregations.begin() + i);
@@ -160,24 +161,9 @@ class TWritingBuffer: public TMoveOnly {
 
     void InitReadyInstant(const TMonotonic instant);
     void InitStartSending(const TMonotonic instant);
+    void InitReplyReceived(const TMonotonic instant);
 
-    std::vector GroupIntoBlobs() {
-        std::vector result;
-        TWritingBlob currentBlob;
-        for (auto&& aggr : Aggregations) {
-            for (auto&& bInfo : aggr->MutableSplittedBlobs()) {
-                if (!currentBlob.AddData(bInfo)) {
-                    result.emplace_back(std::move(currentBlob));
-                    currentBlob = TWritingBlob();
-                    AFL_VERIFY(currentBlob.AddData(bInfo));
-                }
-            }
-        }
-        if (currentBlob.GetSize()) {
-            result.emplace_back(std::move(currentBlob));
-        }
-        return result;
-    }
+    std::vector GroupIntoBlobs();
 };
 
 class TIndexedWriteController : public NColumnShard::IWriteController, public NColumnShard::TMonitoringObjectsCounter {
diff --git a/ydb/core/tx/columnshard/engines/writer/write_controller.cpp b/ydb/core/tx/columnshard/engines/writer/write_controller.cpp
index abae873b3c5b..0b3322b955c4 100644
--- a/ydb/core/tx/columnshard/engines/writer/write_controller.cpp
+++ b/ydb/core/tx/columnshard/engines/writer/write_controller.cpp
@@ -1,5 +1,25 @@
 #include "write_controller.h"
+#include 
 
 namespace NKikimr::NColumnShard {
 
+void IWriteController::OnBlobWriteResult(const TEvBlobStorage::TEvPutResult& result) {
+    NOlap::TUnifiedBlobId blobId(result.GroupId, result.Id);
+    auto it = WaitingActions.find(result.StorageId ? result.StorageId : NOlap::IStoragesManager::DefaultStorageId);
+    AFL_VERIFY(it != WaitingActions.end());
+    it->second->OnBlobWriteResult(blobId, result.Status);
+    if (it->second->IsReady()) {
+        WaitingActions.erase(it);
+    }
+    DoOnBlobWriteResult(result);
+}
+
+NKikimr::NOlap::TBlobWriteInfo& IWriteController::AddWriteTask(NOlap::TBlobWriteInfo&& task) {
+    auto fullAction = WritingActions.Add(task.GetWriteOperator());
+    task.SetWriteOperator(fullAction);
+    WaitingActions.emplace(fullAction->GetStorageId(), fullAction);
+    WriteTasks.emplace_back(std::move(task));
+    return WriteTasks.back();
+}
+
 }
diff --git a/ydb/core/tx/columnshard/engines/writer/write_controller.h b/ydb/core/tx/columnshard/engines/writer/write_controller.h
index 554423c88863..ae51e5571cec 100644
--- a/ydb/core/tx/columnshard/engines/writer/write_controller.h
+++ b/ydb/core/tx/columnshard/engines/writer/write_controller.h
@@ -4,7 +4,6 @@
 #include "blob_constructor.h"
 
 #include 
-#include 
 #include 
 #include 
 
@@ -29,8 +28,8 @@ class TBlobPutResult: public NColumnShard::TPutStatus {
 
 class IWriteController {
 private:
-    THashMap> BlobActions;
-    THashMap> WritingActions;
+    THashMap> WaitingActions;
+    NOlap::TWriteActionsCollection WritingActions;
     std::deque WriteTasks;
 protected:
     virtual void DoOnReadyResult(const NActors::TActorContext& ctx, const TBlobPutResult::TPtr& putResult) = 0;
@@ -41,16 +40,33 @@ class IWriteController {
 
     }
 
-    NOlap::TBlobWriteInfo& AddWriteTask(NOlap::TBlobWriteInfo&& task) {
-        WritingActions.emplace(task.GetWriteOperator()->GetActionId(), task.GetWriteOperator());
-        WriteTasks.emplace_back(std::move(task));
-        return WriteTasks.back();
+    NOlap::TBlobWriteInfo& AddWriteTask(NOlap::TBlobWriteInfo&& task);
+    virtual void DoAbort(const TString& /*reason*/) {
     }
 public:
-    void Abort() {
+    const NOlap::TWriteActionsCollection& GetBlobActions() const {
+        return WritingActions;
+    }
+
+    TString DebugString() const {
+        TStringBuilder sb;
+        for (auto&& i : WritingActions) {
+            sb << i.second->GetStorageId() << ",";
+        }
+        ui64 size = 0;
+        for (auto&& i : WriteTasks) {
+            size += i.GetBlobId().BlobSize();
+        }
+
+        return TStringBuilder() << "size=" << size << ";count=" << WriteTasks.size() << ";actions=" << sb << ";";
+    }
+
+    void Abort(const TString& reason) {
+        AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("event", "IWriteController aborted")("reason", reason);
         for (auto&& i : WritingActions) {
             i.second->Abort();
         }
+        DoAbort(reason);
     }
 
     using TPtr = std::shared_ptr;
@@ -64,14 +80,7 @@ class IWriteController {
         DoOnReadyResult(ctx, putResult);
     }
 
-    void OnBlobWriteResult(const TEvBlobStorage::TEvPutResult& result) {
-        TUnifiedBlobId blobId(result.GroupId, result.Id);
-        auto it = BlobActions.find(blobId);
-        AFL_VERIFY(it != BlobActions.end());
-        it->second->OnBlobWriteResult(blobId, result.Status);
-        BlobActions.erase(it);
-        DoOnBlobWriteResult(result);
-    }
+    void OnBlobWriteResult(const TEvBlobStorage::TEvPutResult& result);
 
     std::optional Next() {
         if (WriteTasks.empty()) {
@@ -79,19 +88,11 @@ class IWriteController {
         }
         auto result = std::move(WriteTasks.front());
         WriteTasks.pop_front();
-        BlobActions.emplace(result.GetBlobId(), result.GetWriteOperator());
         return result;
 
     }
-    bool IsBlobActionsReady() const {
-        return BlobActions.empty();
-    }
-    std::vector> GetBlobActions() const {
-        std::vector> actions;
-        for (auto&& i : WritingActions) {
-            actions.emplace_back(i.second);
-        }
-        return actions;
+    bool IsReady() const {
+        return WaitingActions.empty();
     }
 };
 
diff --git a/ydb/core/tx/columnshard/engines/ya.make b/ydb/core/tx/columnshard/engines/ya.make
index 4b058ca9bbca..4a244f8be456 100644
--- a/ydb/core/tx/columnshard/engines/ya.make
+++ b/ydb/core/tx/columnshard/engines/ya.make
@@ -29,8 +29,8 @@ PEERDIR(
     ydb/core/tx/columnshard/engines/insert_table
     ydb/core/tx/columnshard/engines/changes
     ydb/core/tx/columnshard/engines/portions
-    ydb/core/formats/arrow/compression
     ydb/core/tx/program
+    ydb/core/tx/columnshard/common
 
     # for NYql::NUdf alloc stuff used in binary_json
     ydb/library/yql/public/udf/service/exception_policy
diff --git a/ydb/core/tx/columnshard/export/actor/export_actor.cpp b/ydb/core/tx/columnshard/export/actor/export_actor.cpp
new file mode 100644
index 000000000000..3790bc94b790
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/actor/export_actor.cpp
@@ -0,0 +1,36 @@
+#include "export_actor.h"
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+void TActor::HandleExecute(NKqp::TEvKqpCompute::TEvScanData::TPtr& ev) {
+    SwitchStage(EStage::WaitData, EStage::WaitWriting);
+    auto data = ev->Get()->ArrowBatch;
+    AFL_VERIFY(!!data || ev->Get()->Finished);
+    if (data) {
+        CurrentData = NArrow::ToBatch(data, true);
+        CurrentDataBlob = Serializer->SerializeFull(CurrentData);
+        if (data) {
+            auto controller = std::make_shared(SelfId(), std::vector({CurrentDataBlob}), 
+                BlobsOperator->StartWritingAction(NBlobOperations::EConsumer::EXPORT), Cursor, ShardTabletId, Selector->GetPathId());
+            Register(CreateWriteActor((ui64)ShardTabletId, controller, TInstant::Max()));
+        }
+    } else {
+        CurrentData = nullptr;
+        CurrentDataBlob = "";
+        TBase::Send(SelfId(), new NEvents::TEvExportWritingFinished);
+    }
+    TOwnedCellVec lastKey = ev->Get()->LastKey;
+    AFL_VERIFY(!Cursor.IsFinished());
+    Cursor.InitNext(ev->Get()->LastKey, ev->Get()->Finished);
+}
+
+void TActor::HandleExecute(NEvents::TEvExportWritingFailed::TPtr& /*ev*/) {
+    SwitchStage(EStage::WaitWriting, EStage::WaitWriting);
+    auto controller = std::make_shared(SelfId(), std::vector({CurrentDataBlob}), 
+        BlobsOperator->StartWritingAction(NBlobOperations::EConsumer::EXPORT),
+        Cursor, ShardTabletId, Selector->GetPathId());
+    Register(CreateWriteActor((ui64)ShardTabletId, controller, TInstant::Max()));
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/actor/export_actor.h b/ydb/core/tx/columnshard/export/actor/export_actor.h
new file mode 100644
index 000000000000..b82f97106407
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/actor/export_actor.h
@@ -0,0 +1,118 @@
+#pragma once
+#include "write.h"
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+class TActor: public NActors::TActorBootstrapped {
+private:
+    enum class EStage {
+        Initialization,
+        WaitData,
+        WaitWriting,
+        WaitSaveCursor,
+        Finished
+    };
+
+    using TBase = NActors::TActorBootstrapped;
+    const TIdentifier ExportId;
+    const TActorId ShardActorId;
+    const TTabletId ShardTabletId;
+    NArrow::NSerialization::TSerializerContainer Serializer;
+    TSelectorContainer Selector;
+    std::shared_ptr BlobsOperator;
+    std::optional ScanActorId;
+
+    TCursor Cursor;
+    EStage Stage = EStage::Initialization;
+    std::shared_ptr CurrentData;
+    TString CurrentDataBlob;
+    static inline const ui64 FreeSpace = ((ui64)8) << 20;
+    void SwitchStage(const EStage from, const EStage to) {
+        AFL_VERIFY(Stage == from)("from", (ui32)from)("real", (ui32)Stage)("to", (ui32)to);
+        Stage = to;
+    }
+
+protected:
+    void HandleExecute(NKqp::TEvKqpCompute::TEvScanInitActor::TPtr& ev) {
+        SwitchStage(EStage::Initialization, EStage::WaitData);
+        AFL_VERIFY(!ScanActorId);
+        auto& msg = ev->Get()->Record;
+        ScanActorId = ActorIdFromProto(msg.GetScanActorId());
+        TBase::Send(*ScanActorId, new NKqp::TEvKqpCompute::TEvScanDataAck(FreeSpace, (ui64)ShardTabletId, 1));
+    }
+
+    void HandleExecute(NEvents::TEvExportCursorSaved::TPtr& /*ev*/) {
+        SwitchStage(EStage::WaitSaveCursor, EStage::WaitData);
+        AFL_VERIFY(ScanActorId);
+        TBase::Send(*ScanActorId, new NKqp::TEvKqpCompute::TEvScanDataAck(FreeSpace, (ui64)ShardTabletId, 1));
+    }
+
+    void HandleExecute(NEvents::TEvExportWritingFinished::TPtr& /*ev*/) {
+        SwitchStage(EStage::WaitWriting, EStage::WaitSaveCursor);
+        AFL_VERIFY(Cursor.HasLastKey());
+        Send(ShardActorId, new NEvents::TEvExportSaveCursor(ExportId, Cursor));
+        if (Cursor.IsFinished()) {
+            PassAway();
+        }
+    }
+
+    void HandleExecute(NEvents::TEvExportWritingFailed::TPtr& ev);
+
+    void HandleExecute(NKqp::TEvKqpCompute::TEvScanData::TPtr& ev);
+
+    void HandleExecute(NKqp::TEvKqpCompute::TEvScanError::TPtr& /*ev*/) {
+        AFL_VERIFY(false);
+    }
+public:
+
+    TActor(const TActorId& shardActorId, const TTabletId shardTabletId, const NArrow::NSerialization::TSerializerContainer& serializer, const TSelectorContainer& selector,
+        const std::shared_ptr& bOperator, const TIdentifier& id, const TCursor& startCursor)
+        : ExportId(id)
+        , ShardActorId(shardActorId)
+        , ShardTabletId(shardTabletId)
+        , Serializer(serializer)
+        , Selector(selector)
+        , BlobsOperator(bOperator)
+        , Cursor(startCursor)
+    {
+        AFL_VERIFY(serializer);
+        AFL_VERIFY(selector);
+    }
+
+    void Bootstrap() {
+        auto evStart = Selector->BuildRequestInitiator(Cursor);
+        evStart->Record.SetGeneration((ui64)ShardTabletId);
+        Send(ShardActorId, evStart.release());
+        Become(&TActor::StateFunc);
+    }
+
+    STATEFN(StateFunc) {
+        try {
+            switch (ev->GetTypeRewrite()) {
+                hFunc(NKqp::TEvKqpCompute::TEvScanInitActor, HandleExecute);
+                hFunc(NKqp::TEvKqpCompute::TEvScanData, HandleExecute);
+                hFunc(NKqp::TEvKqpCompute::TEvScanError, HandleExecute);
+                hFunc(NEvents::TEvExportCursorSaved, HandleExecute);
+                hFunc(NEvents::TEvExportWritingFinished, HandleExecute);
+                hFunc(NEvents::TEvExportWritingFailed, HandleExecute);
+                default:
+                    AFL_VERIFY(false)("event_type", ev->GetTypeName());
+            }
+        } catch (...) {
+            AFL_VERIFY(false);
+        }
+    }
+
+
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/actor/write.cpp b/ydb/core/tx/columnshard/export/actor/write.cpp
new file mode 100644
index 000000000000..4b48104b5601
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/actor/write.cpp
@@ -0,0 +1,26 @@
+#include "write.h"
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+void TWriteController::DoOnReadyResult(const NActors::TActorContext& ctx, const NColumnShard::TBlobPutResult::TPtr& putResult) {
+    if (putResult->GetPutStatus() == NKikimrProto::OK) {
+        ctx.Send(ExportActorId, new NEvents::TEvExportWritingFinished());
+    } else {
+        ctx.Send(ExportActorId, new NEvents::TEvExportWritingFailed());
+    }
+}
+
+TWriteController::TWriteController(const TActorId& exportActorId, const std::vector& blobsToWrite, const std::shared_ptr& writeAction, 
+    const TCursor& cursor, const TTabletId tabletId, const ui64 pathId)
+    : ExportActorId(exportActorId) 
+{
+    for (auto&& i : blobsToWrite) {
+        auto blobId = TUnifiedBlobId((ui64)tabletId, (pathId << 24) >> 40, pathId >> 40, cursor.GetChunkIdx(), pathId & Max(), Max(), i.size());
+        AFL_VERIFY((((ui64)blobId.GetLogoBlobId().Step() >> 8) << 40) + ((ui64)blobId.GetLogoBlobId().Generation() << 8) + blobId.GetLogoBlobId().Channel() == pathId);
+        auto info = NOlap::TBlobWriteInfo::BuildWriteTask(i, writeAction, blobId);
+        AddWriteTask(std::move(info));
+    }
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/actor/write.h b/ydb/core/tx/columnshard/export/actor/write.h
new file mode 100644
index 000000000000..ac5a28add2d2
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/actor/write.h
@@ -0,0 +1,17 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+class TWriteController: public NColumnShard::IWriteController {
+private:
+    const TActorId ExportActorId;
+protected:
+    virtual void DoOnReadyResult(const NActors::TActorContext& ctx, const NColumnShard::TBlobPutResult::TPtr& putResult);
+public:
+    TWriteController(const TActorId& exportActorId, const std::vector& blobsToWrite, const std::shared_ptr& writeAction,
+        const TCursor& cursor, const TTabletId tabletId, const ui64 pathId);
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/actor/ya.make b/ydb/core/tx/columnshard/export/actor/ya.make
new file mode 100644
index 000000000000..ce9e06a7390f
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/actor/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+SRCS(
+    export_actor.cpp
+    write.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/blobs_action/abstract
+    ydb/library/actors/core
+    ydb/core/tx/columnshard/engines/writer
+    ydb/core/tx/columnshard/export/events
+    ydb/core/kqp/compute_actor
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/export/common/identifier.cpp b/ydb/core/tx/columnshard/export/common/identifier.cpp
new file mode 100644
index 000000000000..647c72e846a0
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/common/identifier.cpp
@@ -0,0 +1,49 @@
+#include "identifier.h"
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+NKikimr::TConclusionStatus TIdentifier::DeserializeFromProto(const NKikimrColumnShardExportProto::TIdentifier& proto) {
+    PathId = proto.GetPathId();
+    if (!PathId) {
+        return TConclusionStatus::Fail("Incorrect pathId (zero)");
+    }
+    return TConclusionStatus::Success();
+}
+
+NKikimr::TConclusion TIdentifier::BuildFromProto(const NKikimrColumnShardExportProto::TIdentifier& proto) {
+    TIdentifier result;
+    auto parseResult = result.DeserializeFromProto(proto);
+    if (!parseResult) {
+        return parseResult;
+    }
+    return result;
+}
+
+NKikimr::TConclusion TIdentifier::BuildFromProto(const NKikimrTxColumnShard::TBackupTxBody& proto) {
+    TIdentifier result;
+    result.PathId = proto.GetBackupTask().GetTableId();
+    if (!result.PathId) {
+        return TConclusionStatus::Fail("incorrect pathId (cannot been zero)");
+    }
+    return result;
+}
+
+NKikimrColumnShardExportProto::TIdentifier TIdentifier::SerializeToProto() const {
+    NKikimrColumnShardExportProto::TIdentifier result;
+    result.SetPathId(PathId);
+    return result;
+}
+
+TString TIdentifier::DebugString() const {
+    return SerializeToProto().DebugString();
+}
+
+TString TIdentifier::ToString() const {
+    return TStringBuilder() << "path_id=" << PathId << ";";
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/common/identifier.h b/ydb/core/tx/columnshard/export/common/identifier.h
new file mode 100644
index 000000000000..6db80e809a2d
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/common/identifier.h
@@ -0,0 +1,48 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimrColumnShardExportProto {
+class TIdentifier;
+}
+
+namespace NKikimrTxColumnShard {
+class TBackupTxBody;
+}
+
+namespace NKikimr::NOlap::NExport {
+
+class TIdentifier {
+private:
+    YDB_READONLY(ui64, PathId, 0);
+
+    TIdentifier() = default;
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardExportProto::TIdentifier& proto);
+public:
+    TIdentifier(const ui64 pathId)
+        : PathId(pathId)
+    {
+
+    }
+
+    static TConclusion BuildFromProto(const NKikimrTxColumnShard::TBackupTxBody& proto);
+    static TConclusion BuildFromProto(const NKikimrColumnShardExportProto::TIdentifier& proto);
+
+    NKikimrColumnShardExportProto::TIdentifier SerializeToProto() const;
+
+    TString ToString() const;
+
+    operator size_t() const {
+        return PathId;
+    }
+
+    bool operator==(const TIdentifier& id) const {
+        return PathId == id.PathId;
+    }
+
+    TString DebugString() const;
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/common/ya.make b/ydb/core/tx/columnshard/export/common/ya.make
new file mode 100644
index 000000000000..7b6bfba407dd
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/common/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+    identifier.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/export/protos
+    ydb/library/conclusion
+    ydb/core/protos
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/export/events/events.cpp b/ydb/core/tx/columnshard/export/events/events.cpp
new file mode 100644
index 000000000000..1227faa871bb
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/events/events.cpp
@@ -0,0 +1,5 @@
+#include "events.h"
+
+namespace NKikimr::NOlap::NExport::NEvents {
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/events/events.h b/ydb/core/tx/columnshard/export/events/events.h
new file mode 100644
index 000000000000..a8c6241583ae
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/events/events.h
@@ -0,0 +1,38 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NExport::NEvents {
+
+struct TEvExportWritingFinished: public TEventLocal {
+};
+
+struct TEvExportWritingFailed: public TEventLocal {
+};
+
+struct TEvExportCursorSaved: public TEventLocal {
+};
+
+class TEvExportSaveCursor: public TEventLocal {
+private:
+    TIdentifier Identifier;
+    TCursor Cursor;
+public:
+    const TIdentifier& GetIdentifier() const {
+        return Identifier;
+    }
+
+    TCursor DetachCursor() {
+        return std::move(Cursor);
+    }
+
+    TEvExportSaveCursor(const TIdentifier& id, const TCursor& cursor)
+        : Identifier(id)
+        , Cursor(cursor) {
+
+    }
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/events/ya.make b/ydb/core/tx/columnshard/export/events/ya.make
new file mode 100644
index 000000000000..136aa89b147f
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/events/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+    events.cpp
+)
+
+PEERDIR(
+    ydb/core/base
+    ydb/core/tx/columnshard/export/common
+    ydb/core/tx/columnshard/export/session
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/export/manager/manager.cpp b/ydb/core/tx/columnshard/export/manager/manager.cpp
new file mode 100644
index 000000000000..9735ae0b73e6
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/manager/manager.cpp
@@ -0,0 +1,67 @@
+#include "manager.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+void TExportsManager::Start(const NColumnShard::TColumnShard* shard) {
+    for (auto&& i : Sessions) {
+        if (i.second->IsConfirmed()) {
+            AFL_VERIFY(i.second->Start(shard->GetStoragesManager(), (TTabletId)shard->TabletID(), shard->SelfId()));
+        }
+    }
+}
+
+bool TExportsManager::Load(NTable::TDatabase& database) {
+    NIceDb::TNiceDb db(database);
+    using namespace NColumnShard;
+    {
+        auto rowset = db.Table().Select();
+        if (!rowset.IsReady()) {
+            return false;
+        }
+
+        while (!rowset.EndOfSet()) {
+            NKikimrColumnShardExportProto::TExportTask taskProto;
+            AFL_VERIFY(taskProto.ParseFromString(rowset.GetValue()));
+            auto task = TExportTask::BuildFromProto(taskProto);
+            AFL_VERIFY(task.IsSuccess())("error", task.GetErrorMessage());
+
+            NKikimrColumnShardExportProto::TCursor cursorProto;
+            AFL_VERIFY(cursorProto.ParseFromString(rowset.GetValue()));
+            auto cursor = TCursor::BuildFromProto(cursorProto);
+            AFL_VERIFY(cursor.IsSuccess())("error", cursor.GetErrorMessage());
+
+            TSession::EStatus status;
+            AFL_VERIFY(TryFromString(rowset.GetValue(), status));
+
+            auto session = std::make_shared(std::make_shared(task.DetachResult()), status, cursor.DetachResult());
+
+            AFL_VERIFY(Sessions.emplace(session->GetIdentifier(), session).second);
+            if (!rowset.Next()) {
+                return false;
+            }
+        }
+
+    }
+    return true;
+}
+
+void TExportsManager::RemoveSession(const NExport::TIdentifier& id, NTabletFlatExecutor::TTransactionContext& txc) {
+    auto session = GetSessionOptional(id);
+    if (session) {
+        AFL_VERIFY(session->IsDraft());
+    }
+    Sessions.erase(id);
+    NIceDb::TNiceDb db(txc.DB);
+    db.Table().Key(id.ToString()).Delete();
+}
+
+void TExportsManager::Stop() {
+    for (auto&& i : Sessions) {
+        i.second->Stop();
+    }
+}
+
+}
diff --git a/ydb/core/tx/columnshard/export/manager/manager.h b/ydb/core/tx/columnshard/export/manager/manager.h
new file mode 100644
index 000000000000..28cec4edb310
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/manager/manager.h
@@ -0,0 +1,58 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NColumnShard {
+class TColumnShard;
+}
+
+namespace NKikimr::NOlap::NExport {
+
+    class TExportsManager {
+    private:
+        THashMap> Sessions;
+    public:
+        void Start(const NColumnShard::TColumnShard* shard);
+        void Stop();
+
+        TConclusionStatus ProposeTask(const std::shared_ptr& exportTask) {
+            auto it = Sessions.find(exportTask->GetIdentifier());
+            if (it != Sessions.end()) {
+                return TConclusionStatus::Fail("task identifier exists already");
+            }
+            Sessions.emplace(exportTask->GetIdentifier(), std::make_shared(exportTask));
+            return TConclusionStatus::Success();
+        }
+
+        bool ConfirmSessionOnExecute(const NExport::TIdentifier& id, NTabletFlatExecutor::TTransactionContext& txc) {
+            auto session = GetSessionVerified(id);
+            AFL_VERIFY(session->IsDraft());
+            session->SaveFullToDB(txc.DB);
+            return true;
+        }
+
+        bool ConfirmSessionOnComplete(const NExport::TIdentifier& id) {
+            GetSessionVerified(id)->Confirm();
+            return true;
+        }
+
+        std::shared_ptr GetSessionOptional(const NExport::TIdentifier& id) const {
+            auto it = Sessions.find(id);
+            if (it == Sessions.end()) {
+                return nullptr;
+            }
+            return it->second;
+        }
+
+        std::shared_ptr GetSessionVerified(const NExport::TIdentifier& id) const {
+            auto result = GetSessionOptional(id);
+            AFL_VERIFY(result);
+            return result;
+        }
+
+        void RemoveSession(const NExport::TIdentifier& id, NTabletFlatExecutor::TTransactionContext& txc);
+
+        bool Load(NTable::TDatabase& database);
+
+    };
+}
diff --git a/ydb/core/tx/columnshard/export/manager/ya.make b/ydb/core/tx/columnshard/export/manager/ya.make
new file mode 100644
index 000000000000..4ec61ce42f7f
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/manager/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+    manager.cpp
+)
+
+PEERDIR(
+    ydb/core/protos
+    ydb/core/tx/columnshard/blobs_action
+    ydb/core/tx/columnshard/export/session
+    ydb/core/tx/columnshard/export/protos
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/export/protos/cursor.proto b/ydb/core/tx/columnshard/export/protos/cursor.proto
new file mode 100644
index 000000000000..a57ea864a308
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/protos/cursor.proto
@@ -0,0 +1,7 @@
+package NKikimrColumnShardExportProto;
+
+message TCursor {
+    optional string LastKey = 1;
+    optional bool Finished = 2;
+    optional uint32 ChunkIdx = 3;
+}
diff --git a/ydb/core/tx/columnshard/export/protos/selector.proto b/ydb/core/tx/columnshard/export/protos/selector.proto
new file mode 100644
index 000000000000..51e19b7e3f72
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/protos/selector.proto
@@ -0,0 +1,17 @@
+import "ydb/core/tx/columnshard/common/protos/snapshot.proto";
+
+package NKikimrColumnShardExportProto;
+
+message TBackupSelector {
+    optional NKikimrColumnShardProto.TSnapshot Snapshot = 1;
+    optional string TableName = 2;
+    optional uint64 TablePathId = 3;
+}
+
+message TSelectorContainer {
+    optional string ClassName = 1;
+
+    oneof Implementation {
+        TBackupSelector Backup = 40;
+    }
+}
diff --git a/ydb/core/tx/columnshard/export/protos/storage.proto b/ydb/core/tx/columnshard/export/protos/storage.proto
new file mode 100644
index 000000000000..cb3962f82963
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/protos/storage.proto
@@ -0,0 +1,21 @@
+import "ydb/core/protos/flat_scheme_op.proto";
+
+package NKikimrColumnShardExportProto;
+
+message TTierStorageInitializer {
+    optional string TierName = 1;
+}
+
+message TExternalS3StorageInitializer {
+    optional string StorageName = 1;
+    optional NKikimrSchemeOp.TS3Settings Settings = 2;
+}
+
+message TStorageInitializerContainer {
+    optional string ClassName = 1;
+
+    oneof Implementation {
+        TTierStorageInitializer Tier = 40;
+        TExternalS3StorageInitializer ExternalS3 = 41;
+    }
+}
diff --git a/ydb/core/tx/columnshard/export/protos/task.proto b/ydb/core/tx/columnshard/export/protos/task.proto
new file mode 100644
index 000000000000..7c8e9d60f5ef
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/protos/task.proto
@@ -0,0 +1,16 @@
+import "ydb/core/tx/columnshard/export/protos/selector.proto";
+import "ydb/core/tx/columnshard/export/protos/storage.proto";
+import "ydb/core/protos/flat_scheme_op.proto";
+
+package NKikimrColumnShardExportProto;
+
+message TIdentifier {
+    optional uint64 PathId = 1;
+}
+
+message TExportTask {
+    optional TIdentifier Identifier = 1;
+    optional TSelectorContainer Selector = 2;
+    optional TStorageInitializerContainer StorageInitializer = 3;
+    optional NKikimrSchemeOp.TOlapColumn.TSerializer Serializer = 4;
+}
diff --git a/ydb/core/tx/columnshard/export/protos/ya.make b/ydb/core/tx/columnshard/export/protos/ya.make
new file mode 100644
index 000000000000..602d4aafb660
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/protos/ya.make
@@ -0,0 +1,15 @@
+PROTO_LIBRARY()
+
+SRCS(
+    cursor.proto
+    selector.proto
+    storage.proto
+    task.proto
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/common/protos
+    ydb/core/protos
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/export/session/cursor.cpp b/ydb/core/tx/columnshard/export/session/cursor.cpp
new file mode 100644
index 000000000000..c154162767ec
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/cursor.cpp
@@ -0,0 +1,36 @@
+#include "cursor.h"
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+NKikimr::TConclusionStatus TCursor::DeserializeFromProto(const NKikimrColumnShardExportProto::TCursor& proto) {
+    if (proto.HasLastKey()) {
+        LastKey = TOwnedCellVec(TSerializedCellVec(proto.GetLastKey()).GetCells());
+    }
+    if (proto.HasFinished()) {
+        Finished = proto.GetFinished();
+    }
+    ChunkIdx = proto.GetChunkIdx();
+    return TConclusionStatus::Success();
+}
+
+NKikimr::TConclusion TCursor::BuildFromProto(const NKikimrColumnShardExportProto::TCursor& proto) {
+    TCursor result;
+    auto parsedResult = result.DeserializeFromProto(proto);
+    if (!parsedResult) {
+        return parsedResult;
+    }
+    return result;
+}
+
+NKikimrColumnShardExportProto::TCursor TCursor::SerializeToProto() const {
+    NKikimrColumnShardExportProto::TCursor result;
+    if (LastKey) {
+        result.SetLastKey(TSerializedCellVec::Serialize(*LastKey));
+    }
+    result.SetFinished(Finished);
+    result.SetChunkIdx(ChunkIdx);
+    return result;
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/session/cursor.h b/ydb/core/tx/columnshard/export/session/cursor.h
new file mode 100644
index 000000000000..8e3ee12d0d33
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/cursor.h
@@ -0,0 +1,55 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimrColumnShardExportProto {
+class TCursor;
+}
+
+namespace NKikimr::NOlap::NExport {
+
+class TCursor {
+private:
+    ui32 ChunkIdx = 1;
+    std::optional LastKey;
+    bool Finished = false;
+
+    [[nodiscard]] TConclusionStatus DeserializeFromProto(const NKikimrColumnShardExportProto::TCursor& proto);
+public:
+    TCursor() = default;
+    TCursor(const TOwnedCellVec& lastKey, const bool finished)
+        : LastKey(lastKey)
+        , Finished(finished)
+    {
+
+    }
+
+    const std::optional& GetLastKey() const {
+        return LastKey;
+    }
+
+    ui32 GetChunkIdx() const {
+        return ChunkIdx;
+    }
+
+    bool HasLastKey() const {
+        return !!LastKey;
+    }
+
+    bool IsFinished() const {
+        return Finished;
+    }
+
+    void InitNext(const TOwnedCellVec& lastKey, const bool finished) {
+        ++ChunkIdx;
+        LastKey = lastKey;
+        Finished = finished;
+    }
+
+    static TConclusion BuildFromProto(const NKikimrColumnShardExportProto::TCursor& proto);
+
+    NKikimrColumnShardExportProto::TCursor SerializeToProto() const;
+};
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/session/selector/abstract/selector.cpp b/ydb/core/tx/columnshard/export/session/selector/abstract/selector.cpp
new file mode 100644
index 000000000000..aeed23ff2e62
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/selector/abstract/selector.cpp
@@ -0,0 +1,16 @@
+#include "selector.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+NKikimr::TConclusion TSelectorContainer::BuildFromProto(const NKikimrTxColumnShard::TBackupTxBody& proto) {
+    auto parsed = TBackupSelector::BuildFromProto(proto.GetBackupTask());
+    if (!parsed) {
+        return parsed.GetError();
+    }
+    return TSelectorContainer(std::make_shared(parsed.DetachResult()));
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/session/selector/abstract/selector.h b/ydb/core/tx/columnshard/export/session/selector/abstract/selector.h
new file mode 100644
index 000000000000..78a8268544a0
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/selector/abstract/selector.h
@@ -0,0 +1,62 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimrTxColumnShard {
+class TBackupTxBody;
+}
+
+namespace NKikimr::NOlap::NExport {
+
+class ISelector {
+protected:
+    virtual TConclusionStatus DoDeserializeFromProto(const NKikimrColumnShardExportProto::TSelectorContainer& proto) = 0;
+    virtual void DoSerializeToProto(NKikimrColumnShardExportProto::TSelectorContainer& proto) const = 0;
+    virtual std::unique_ptr DoBuildRequestInitiator(const TCursor& cursor) const = 0;
+
+public:
+    using TProto = NKikimrColumnShardExportProto::TSelectorContainer;
+    using TFactory = NObjectFactory::TObjectFactory;
+
+    virtual ~ISelector() = default;
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardExportProto::TSelectorContainer& proto) {
+        return DoDeserializeFromProto(proto);
+    }
+
+    std::unique_ptr BuildRequestInitiator(const TCursor& cursor) const {
+        return DoBuildRequestInitiator(cursor);
+    }
+
+    void SerializeToProto(NKikimrColumnShardExportProto::TSelectorContainer& proto) const {
+        DoSerializeToProto(proto);
+    }
+
+    virtual ui64 GetPathId() const = 0;
+    virtual TString GetClassName() const = 0;
+};
+
+class TSelectorContainer: public NBackgroundTasks::TInterfaceProtoContainer {
+private:
+    using TBase = NBackgroundTasks::TInterfaceProtoContainer;
+public:
+    using TBase::TBase;
+
+    static TConclusion BuildFromProto(const NKikimrColumnShardExportProto::TSelectorContainer& proto) {
+        TSelectorContainer result;
+        if (!result.DeserializeFromProto(proto)) {
+            return TConclusionStatus::Fail("cannot parse proto as TSelectorContainer");
+        }
+        return result;
+    }
+
+    static TConclusion BuildFromProto(const NKikimrTxColumnShard::TBackupTxBody& proto);
+
+    TString DebugString() const {
+        return TBase::SerializeToProto().DebugString();
+    }
+};
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/session/selector/abstract/ya.make b/ydb/core/tx/columnshard/export/session/selector/abstract/ya.make
new file mode 100644
index 000000000000..f0d43e38008d
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/selector/abstract/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+    selector.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/export/protos
+    ydb/services/bg_tasks/abstract
+    ydb/library/conclusion
+    ydb/core/protos
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/export/session/selector/backup/selector.cpp b/ydb/core/tx/columnshard/export/session/selector/backup/selector.cpp
new file mode 100644
index 000000000000..319c94a473c9
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/selector/backup/selector.cpp
@@ -0,0 +1,30 @@
+#include "selector.h"
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+std::unique_ptr TBackupSelector::DoBuildRequestInitiator(const TCursor& cursor) const {
+    auto ev = std::make_unique();
+    ev->Record.SetLocalPathId(TablePathId);
+
+    auto protoRanges = ev->Record.MutableRanges();
+
+    if (cursor.HasLastKey()) {
+        auto* newRange = protoRanges->Add();
+        TSerializedTableRange(TSerializedCellVec::Serialize(*cursor.GetLastKey()), {}, false, false).Serialize(*newRange);
+    }
+
+    ev->Record.MutableSnapshot()->SetStep(Snapshot.GetPlanStep());
+    ev->Record.MutableSnapshot()->SetTxId(Snapshot.GetTxId());
+    ev->Record.SetStatsMode(NYql::NDqProto::EDqStatsMode::DQ_STATS_MODE_NONE);
+    ev->Record.SetScanId(TablePathId);
+    ev->Record.SetTxId(TablePathId);
+    ev->Record.SetTablePath(TableName);
+    ev->Record.SetSchemaVersion(0);
+
+    ev->Record.SetReverse(false);
+    ev->Record.SetDataFormat(NKikimrDataEvents::EDataFormat::FORMAT_ARROW);
+    return ev;
+}
+
+}
diff --git a/ydb/core/tx/columnshard/export/session/selector/backup/selector.h b/ydb/core/tx/columnshard/export/session/selector/backup/selector.h
new file mode 100644
index 000000000000..2ec27a23ccb1
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/selector/backup/selector.h
@@ -0,0 +1,80 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+class TBackupSelector: public ISelector {
+public:
+    static TString GetClassNameStatic() {
+        return "BACKUP";
+    }
+private:
+    TSnapshot Snapshot = TSnapshot::Zero();
+    TString TableName;
+    ui64 TablePathId;
+    static inline const TFactory::TRegistrator Registrator = TFactory::TRegistrator(GetClassNameStatic());
+
+    TConclusionStatus Validate() const {
+        if (!Snapshot.Valid()) {
+            return TConclusionStatus::Fail("invalid snapshot");
+        }
+        if (!TablePathId) {
+            return TConclusionStatus::Fail("invalid path id");
+        }
+        if (!TableName) {
+            return TConclusionStatus::Fail("invalid table name");
+        }
+        return TConclusionStatus::Success();
+    }
+protected:
+    virtual std::unique_ptr DoBuildRequestInitiator(const TCursor& cursor) const override;
+
+    virtual TConclusionStatus DoDeserializeFromProto(const NKikimrColumnShardExportProto::TSelectorContainer& proto) override {
+        auto result = Snapshot.DeserializeFromProto(proto.GetBackup().GetSnapshot());
+        if (!result) {
+            return result;
+        }
+        TableName = proto.GetBackup().GetTableName();
+        TablePathId = proto.GetBackup().GetTablePathId();
+        return Validate();
+    }
+
+    virtual void DoSerializeToProto(NKikimrColumnShardExportProto::TSelectorContainer& proto) const override {
+        *proto.MutableBackup()->MutableSnapshot() = Snapshot.SerializeToProto();
+        proto.MutableBackup()->SetTablePathId(TablePathId);
+        proto.MutableBackup()->SetTableName(TableName);
+    }
+
+    TConclusionStatus DeserializeFromProto(const NKikimrSchemeOp::TBackupTask& proto) {
+        Snapshot = TSnapshot(proto.GetSnapshotStep(), proto.GetSnapshotTxId());
+        TableName = proto.GetTableName();
+        TablePathId = proto.GetTableId();
+        return Validate();
+    }
+public:
+    TBackupSelector() = default;
+    TBackupSelector(const TSnapshot& snapshot)
+        : Snapshot(snapshot) {
+
+    }
+
+    virtual ui64 GetPathId() const override {
+        return TablePathId;
+    }
+
+    static TConclusion BuildFromProto(const NKikimrSchemeOp::TBackupTask& proto) {
+        TBackupSelector result;
+        auto parsed = result.DeserializeFromProto(proto);
+        if (!parsed) {
+            return parsed;
+        }
+        return result;
+    }
+
+    virtual TString GetClassName() const override {
+        return GetClassNameStatic();
+    }
+};
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/session/selector/backup/ya.make b/ydb/core/tx/columnshard/export/session/selector/backup/ya.make
new file mode 100644
index 000000000000..e941fe19565e
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/selector/backup/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+    GLOBAL selector.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/export/session/selector/abstract
+    ydb/core/protos
+    ydb/library/yql/dq/actors/protos
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/export/session/selector/ya.make b/ydb/core/tx/columnshard/export/session/selector/ya.make
new file mode 100644
index 000000000000..8b8446f1abba
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/selector/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/export/session/selector/abstract
+    ydb/core/tx/columnshard/export/session/selector/backup
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/export/session/session.cpp b/ydb/core/tx/columnshard/export/session/session.cpp
new file mode 100644
index 000000000000..eb027a295ae0
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/session.cpp
@@ -0,0 +1,65 @@
+#include "session.h"
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+TConclusion> TSession::SaveCursorTx(NColumnShard::TColumnShard* shard, TCursor&& newCursor, const std::shared_ptr& selfPtr) const {
+    AFL_VERIFY(IsStarted());
+    AFL_VERIFY(ExportActorId);
+    return std::unique_ptr(new TTxSaveCursor(shard, selfPtr, std::move(newCursor), *ExportActorId));
+}
+
+void TSession::Stop() {
+    if (IsStarted()) {
+        AFL_VERIFY(ExportActorId);
+        NActors::TActivationContext::AsActorContext().Send(*ExportActorId, new TEvents::TEvPoisonPill);
+        ExportActorId = {};
+    }
+}
+
+bool TSession::Start(const std::shared_ptr& storages, const TTabletId tabletId, const TActorId& tabletActorId) {
+    AFL_VERIFY(IsConfirmed());
+    auto blobsOperator = Task->GetStorageInitializer()->InitializeOperator(storages);
+    if (!blobsOperator) {
+        AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "problem_on_export_start")("reason", "cannot_initialize_operator")("problem", blobsOperator.GetErrorMessage());
+        return false;
+    }
+    AFL_VERIFY(!ExportActorId);
+    ExportActorId = NActors::TActivationContext::AsActorContext().Register(new TActor(tabletActorId, tabletId,
+        Task->GetSerializer(), Task->GetSelector(), blobsOperator.DetachResult(), Task->GetIdentifier(), Cursor));
+    Status = EStatus::Started;
+    return true;
+}
+
+void TSession::SaveFullToDB(NTable::TDatabase& tdb) {
+    using namespace NColumnShard;
+    NIceDb::TNiceDb db(tdb);
+    db.Table().Key(Task->GetIdentifier().ToString()).Update(
+        NIceDb::TUpdate(::ToString(Status)),
+        NIceDb::TUpdate(Cursor.SerializeToProto().SerializeAsString()),
+        NIceDb::TUpdate(Task->SerializeToProto().SerializeAsString())
+    );
+}
+
+void TSession::SaveCursorToDB(NTable::TDatabase& tdb) {
+    using namespace NColumnShard;
+    NIceDb::TNiceDb db(tdb);
+    if (Status != EStatus::Started) {
+        db.Table().Key(Task->GetIdentifier().ToString()).Update(
+            NIceDb::TUpdate(::ToString(Status)),
+            NIceDb::TUpdate(Cursor.SerializeToProto().SerializeAsString())
+        );
+    } else {
+        db.Table().Key(Task->GetIdentifier().ToString()).Update(
+            NIceDb::TUpdate(Cursor.SerializeToProto().SerializeAsString())
+        );
+    }
+}
+
+}
diff --git a/ydb/core/tx/columnshard/export/session/session.h b/ydb/core/tx/columnshard/export/session/session.h
new file mode 100644
index 000000000000..67beeb5c74dc
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/session.h
@@ -0,0 +1,98 @@
+#pragma once
+#include "task.h"
+#include "cursor.h"
+#include 
+#include 
+
+namespace NKikimr::NColumnShard {
+class TColumnShard;
+}
+
+namespace NKikimr::NTabletFlatExecutor {
+class ITransaction;
+}
+
+namespace NKikimr::NOlap {
+class IStoragesManager;
+}
+
+namespace NKikimr::NOlap::NExport {
+    class TSession {
+    public:
+        enum class EStatus: ui64 {
+            Draft = 0 /*"draft"*/,
+            Confirmed = 1 /*"confirmed"*/,
+            Started = 2 /*"started"*/,
+            Finished = 3 /*"finished"*/
+        };
+
+    private:
+        std::shared_ptr Task;
+        EStatus Status = EStatus::Draft;
+        TCursor Cursor;
+        std::optional ExportActorId;
+    public:
+        void SetCursor(const TCursor& cursor) {
+            Cursor = cursor;
+            if (Cursor.IsFinished()) {
+                Finish();
+            }
+        }
+
+        TSession(const std::shared_ptr& task)
+            : Task(task) {
+            AFL_VERIFY(Task);
+        }
+
+        TSession(const std::shared_ptr& task, const EStatus status, TCursor&& cursor)
+            : Task(task)
+            , Status(status)
+            , Cursor(std::move(cursor)) {
+            AFL_VERIFY(Status != EStatus::Started);
+            AFL_VERIFY(Task);
+        }
+
+        bool IsConfirmed() const {
+            return Status == EStatus::Confirmed;
+        }
+
+        void SaveFullToDB(NTable::TDatabase& tdb);
+
+        void SaveCursorToDB(NTable::TDatabase& tdb);
+
+        [[nodiscard]] TConclusion> SaveCursorTx(NColumnShard::TColumnShard* shard, TCursor&& newCursor, const std::shared_ptr& selfPtr) const;
+
+        const TCursor& GetCursor() const {
+            return Cursor;
+        }
+
+        TString DebugString() const {
+            return TStringBuilder() << "task=" << Task->DebugString() << ";status=" << Status;
+        }
+
+        bool IsDraft() const {
+            return Status == EStatus::Draft;
+        }
+
+        void Confirm() {
+            AFL_VERIFY(IsDraft());
+            Status = EStatus::Confirmed;
+        }
+
+        bool IsStarted() const {
+            return Status == EStatus::Started;
+        }
+
+        const TIdentifier& GetIdentifier() const {
+            return Task->GetIdentifier();
+        }
+
+        [[nodiscard]] bool Start(const std::shared_ptr& storages, const TTabletId tabletId, const TActorId& tabletActorId);
+        void Stop();
+        void Finish() {
+            AFL_VERIFY(Status == EStatus::Started);
+            Status = EStatus::Finished;
+        }
+
+    };
+}
diff --git a/ydb/core/tx/columnshard/export/session/storage/abstract/storage.cpp b/ydb/core/tx/columnshard/export/session/storage/abstract/storage.cpp
new file mode 100644
index 000000000000..f7cc791f14dc
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/storage/abstract/storage.cpp
@@ -0,0 +1,15 @@
+#include "storage.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+NKikimr::TConclusion TStorageInitializerContainer::BuildFromProto(const NKikimrTxColumnShard::TBackupTxBody& proto) {
+    if (!proto.GetBackupTask().HasS3Settings()) {
+        return TConclusionStatus::Fail("s3 settings not found in backup task");
+    }
+    return TStorageInitializerContainer(std::make_shared("BACKUP", proto.GetBackupTask().GetS3Settings()));
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/session/storage/abstract/storage.h b/ydb/core/tx/columnshard/export/session/storage/abstract/storage.h
new file mode 100644
index 000000000000..f4991e153ffb
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/storage/abstract/storage.h
@@ -0,0 +1,63 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+class IStoragesManager;
+class IBlobsStorageOperator;
+}
+
+namespace NKikimrTxColumnShard {
+class TBackupTxBody;
+}
+
+namespace NKikimr::NOlap::NExport {
+
+class IStorageInitializer {
+protected:
+    virtual TConclusionStatus DoDeserializeFromProto(const NKikimrColumnShardExportProto::TStorageInitializerContainer& proto) = 0;
+    virtual void DoSerializeToProto(NKikimrColumnShardExportProto::TStorageInitializerContainer& proto) const = 0;
+    virtual TConclusion> DoInitializeOperator(const std::shared_ptr& storages) const = 0;
+public:
+    using TProto = NKikimrColumnShardExportProto::TStorageInitializerContainer;
+    using TFactory = NObjectFactory::TObjectFactory;
+
+    virtual ~IStorageInitializer() = default;
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardExportProto::TStorageInitializerContainer& proto) {
+        return DoDeserializeFromProto(proto);
+    }
+
+    TConclusion> InitializeOperator(const std::shared_ptr& storages) const {
+        return DoInitializeOperator(storages);
+    }
+
+    void SerializeToProto(NKikimrColumnShardExportProto::TStorageInitializerContainer& proto) const {
+        DoSerializeToProto(proto);
+    }
+
+    virtual TString GetClassName() const = 0;
+};
+
+class TStorageInitializerContainer: public NBackgroundTasks::TInterfaceProtoContainer {
+private:
+    using TBase = NBackgroundTasks::TInterfaceProtoContainer;
+public:
+    using TBase::TBase;
+
+    static TConclusion BuildFromProto(const NKikimrColumnShardExportProto::TStorageInitializerContainer& proto) {
+        TStorageInitializerContainer result;
+        if (!result.DeserializeFromProto(proto)) {
+            return TConclusionStatus::Fail("cannot parse proto as TSelectorContainer");
+        }
+        return result;
+    }
+
+    static TConclusion BuildFromProto(const NKikimrTxColumnShard::TBackupTxBody& proto);
+
+    TString DebugString() const {
+        return TBase::SerializeToProto().DebugString();
+    }
+};
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/session/storage/abstract/ya.make b/ydb/core/tx/columnshard/export/session/storage/abstract/ya.make
new file mode 100644
index 000000000000..587502a776ef
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/storage/abstract/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+    storage.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/export/session/storage/s3
+    ydb/core/tx/columnshard/export/protos
+    ydb/services/bg_tasks/abstract
+    ydb/library/conclusion
+    ydb/core/protos
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/export/session/storage/s3/storage.cpp b/ydb/core/tx/columnshard/export/session/storage/s3/storage.cpp
new file mode 100644
index 000000000000..e3bbce9d4c92
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/storage/s3/storage.cpp
@@ -0,0 +1,25 @@
+#include "storage.h"
+#include 
+#ifndef KIKIMR_DISABLE_S3_OPS
+#include 
+#include 
+#endif
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+NKikimr::TConclusion> TS3StorageInitializer::DoInitializeOperator(const std::shared_ptr& storages) const {
+#ifndef KIKIMR_DISABLE_S3_OPS
+    auto extStorageConfig = NWrappers::NExternalStorage::IExternalStorageConfig::Construct(S3Settings);
+    if (!extStorageConfig) {
+        return TConclusionStatus::Fail("cannot build operator with this config: " + S3Settings.DebugString());
+    }
+    return std::shared_ptr(new NBlobOperations::NTier::TOperator("__EXPORT:" + StorageName, NActors::TActorId(), extStorageConfig,
+        std::make_shared("__EXPORT:" + StorageName, storages->GetSharedBlobsManager()->GetSelfTabletId())));
+#else
+    Y_UNUSED(storages);
+    return TConclusionStatus::Fail("s3 not supported");
+#endif
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/session/storage/s3/storage.h b/ydb/core/tx/columnshard/export/session/storage/s3/storage.h
new file mode 100644
index 000000000000..1713875faae5
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/storage/s3/storage.h
@@ -0,0 +1,44 @@
+#pragma once
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+class TS3StorageInitializer: public IStorageInitializer {
+public:
+    static TString GetClassNameStatic() {
+        return "S3";
+    }
+private:
+    TString StorageName;
+    NKikimrSchemeOp::TS3Settings S3Settings;
+    static inline const TFactory::TRegistrator Registrator = TFactory::TRegistrator(GetClassNameStatic());
+protected:
+    virtual TConclusion> DoInitializeOperator(const std::shared_ptr& storages) const override;
+public:
+    TS3StorageInitializer() = default;
+    TS3StorageInitializer(const TString& storageName, const NKikimrSchemeOp::TS3Settings& s3Settings)
+        : StorageName(storageName)
+        , S3Settings(s3Settings)
+    {
+
+    }
+
+    virtual TConclusionStatus DoDeserializeFromProto(const NKikimrColumnShardExportProto::TStorageInitializerContainer& proto) override {
+        if (!proto.HasExternalS3()) {
+            return TConclusionStatus::Fail("has not s3 configuration");
+        }
+        S3Settings = proto.GetExternalS3().GetSettings();
+        StorageName = proto.GetExternalS3().GetStorageName();
+        return TConclusionStatus::Success();
+    }
+
+    virtual void DoSerializeToProto(NKikimrColumnShardExportProto::TStorageInitializerContainer& proto) const override {
+        *proto.MutableExternalS3()->MutableSettings() = S3Settings;
+        proto.MutableExternalS3()->SetStorageName(StorageName);
+    }
+
+    virtual TString GetClassName() const override {
+        return GetClassNameStatic();
+    }
+};
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/session/storage/s3/ya.make b/ydb/core/tx/columnshard/export/session/storage/s3/ya.make
new file mode 100644
index 000000000000..235ad58af4cb
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/storage/s3/ya.make
@@ -0,0 +1,23 @@
+LIBRARY()
+
+SRCS(
+    GLOBAL storage.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/export/session/selector/abstract
+    ydb/core/tx/columnshard/blobs_action/abstract
+    ydb/core/wrappers
+)
+
+IF (OS_WINDOWS)
+    CFLAGS(
+        -DKIKIMR_DISABLE_S3_OPS
+    )
+ELSE()
+    PEERDIR(
+        ydb/core/tx/columnshard/blobs_action/tier
+    )
+ENDIF()
+
+END()
diff --git a/ydb/core/tx/columnshard/export/session/storage/tier/storage.cpp b/ydb/core/tx/columnshard/export/session/storage/tier/storage.cpp
new file mode 100644
index 000000000000..45e2d449b3c2
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/storage/tier/storage.cpp
@@ -0,0 +1,14 @@
+#include "storage.h"
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+NKikimr::TConclusion> TTierStorageInitializer::DoInitializeOperator(const std::shared_ptr& storages) const {
+    auto bOperator = storages->GetOperatorOptional(TierName);
+    if (!bOperator) {
+        return TConclusionStatus::Fail("cannot find tier with name '" + TierName + "' for export destination");
+    }
+    return bOperator;
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/session/storage/tier/storage.h b/ydb/core/tx/columnshard/export/session/storage/tier/storage.h
new file mode 100644
index 000000000000..84ea3465f2c4
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/storage/tier/storage.h
@@ -0,0 +1,40 @@
+#pragma once
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+class TTierStorageInitializer: public IStorageInitializer {
+public:
+    static TString GetClassNameStatic() {
+        return "TIER";
+    }
+private:
+    TString TierName;
+    static inline const TFactory::TRegistrator Registrator = TFactory::TRegistrator(GetClassNameStatic());
+protected:
+    virtual TConclusion> DoInitializeOperator(const std::shared_ptr& storages) const override;
+public:
+    TTierStorageInitializer() = default;
+    TTierStorageInitializer(const TString& tierName)
+        : TierName(tierName)
+    {
+
+    }
+
+    virtual TConclusionStatus DoDeserializeFromProto(const NKikimrColumnShardExportProto::TStorageInitializerContainer& proto) override {
+        if (!proto.HasTier()) {
+            return TConclusionStatus::Fail("has not tier configuration");
+        }
+        TierName = proto.GetTier().GetTierName();
+        return TConclusionStatus::Success();
+    }
+
+    virtual void DoSerializeToProto(NKikimrColumnShardExportProto::TStorageInitializerContainer& proto) const override {
+        proto.MutableTier()->SetTierName(TierName);
+    }
+
+    virtual TString GetClassName() const override {
+        return GetClassNameStatic();
+    }
+};
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/export/session/storage/tier/ya.make b/ydb/core/tx/columnshard/export/session/storage/tier/ya.make
new file mode 100644
index 000000000000..e2d3bc839b86
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/storage/tier/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+    GLOBAL storage.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/export/session/selector/abstract
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/export/session/storage/ya.make b/ydb/core/tx/columnshard/export/session/storage/ya.make
new file mode 100644
index 000000000000..cd447f751650
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/storage/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/export/session/storage/abstract
+    ydb/core/tx/columnshard/export/session/storage/s3
+    ydb/core/tx/columnshard/export/session/storage/tier
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/export/session/task.cpp b/ydb/core/tx/columnshard/export/session/task.cpp
new file mode 100644
index 000000000000..fd396f1b0895
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/task.cpp
@@ -0,0 +1,48 @@
+#include "session.h"
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+NKikimr::TConclusionStatus TExportTask::DeserializeFromProto(const NKikimrColumnShardExportProto::TExportTask& proto) {
+    auto id = TIdentifier::BuildFromProto(proto.GetIdentifier());
+    if (!id) {
+        return id;
+    }
+    auto selector = TSelectorContainer::BuildFromProto(proto.GetSelector());
+    if (!selector) {
+        return selector;
+    }
+    auto initializer = TStorageInitializerContainer::BuildFromProto(proto.GetStorageInitializer());
+    if (!initializer) {
+        return initializer;
+    }
+    auto serializer = NArrow::NSerialization::TSerializerContainer::BuildFromProto(proto.GetSerializer());
+    if (!serializer) {
+        return serializer;
+    }
+    Identifier = id.DetachResult();
+    Selector = selector.DetachResult();
+    StorageInitializer = initializer.DetachResult();
+    Serializer = serializer.DetachResult();
+    return TConclusionStatus::Success();
+}
+
+NKikimrColumnShardExportProto::TExportTask TExportTask::SerializeToProto() const {
+    NKikimrColumnShardExportProto::TExportTask result;
+    *result.MutableIdentifier() = Identifier.SerializeToProto();
+    *result.MutableSelector() = Selector.SerializeToProto();
+    *result.MutableStorageInitializer() = StorageInitializer.SerializeToProto();
+    *result.MutableSerializer() = Serializer.SerializeToProto();
+    return result;
+}
+
+NKikimr::TConclusion TExportTask::BuildFromProto(const NKikimrColumnShardExportProto::TExportTask& proto) {
+    TExportTask result;
+    auto resultParsed = result.DeserializeFromProto(proto);
+    if (!resultParsed) {
+        return resultParsed;
+    }
+    return result;
+}
+
+}
diff --git a/ydb/core/tx/columnshard/export/session/task.h b/ydb/core/tx/columnshard/export/session/task.h
new file mode 100644
index 000000000000..144305d27515
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/task.h
@@ -0,0 +1,49 @@
+#pragma once
+#include "selector/abstract/selector.h"
+#include "storage/abstract/storage.h"
+
+#include 
+#include 
+
+#include 
+#include 
+
+namespace NKikimrColumnShardExportProto {
+class TExportTask;
+}
+
+namespace NKikimr::NOlap::NExport {
+
+class TExportTask {
+private:
+    TIdentifier Identifier = TIdentifier(0);
+    YDB_READONLY_DEF(TSelectorContainer, Selector);
+    YDB_READONLY_DEF(TStorageInitializerContainer, StorageInitializer);
+    YDB_READONLY_DEF(NArrow::NSerialization::TSerializerContainer, Serializer);
+
+    TExportTask() = default;
+
+    TConclusionStatus DeserializeFromProto(const NKikimrColumnShardExportProto::TExportTask& proto);
+
+public:
+    NKikimrColumnShardExportProto::TExportTask SerializeToProto() const;
+
+    static TConclusion BuildFromProto(const NKikimrColumnShardExportProto::TExportTask& proto);
+
+    const TIdentifier& GetIdentifier() const {
+        return Identifier;
+    }
+
+    TExportTask(const TIdentifier& id, const TSelectorContainer& selector, const TStorageInitializerContainer& storageInitializer, const NArrow::NSerialization::TSerializerContainer& serializer)
+        : Identifier(id)
+        , Selector(selector)
+        , StorageInitializer(storageInitializer)
+        , Serializer(serializer)
+    {
+    }
+
+    TString DebugString() const {
+        return TStringBuilder() << "{task_id=" << Identifier.DebugString() << ";selector=" << Selector.DebugString() << ";}";
+    }
+};
+}
diff --git a/ydb/core/tx/columnshard/export/session/ya.make b/ydb/core/tx/columnshard/export/session/ya.make
new file mode 100644
index 000000000000..a7ac2661e309
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/session/ya.make
@@ -0,0 +1,20 @@
+LIBRARY()
+
+SRCS(
+    session.cpp
+    cursor.cpp
+    task.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/export/session/selector
+    ydb/core/tx/columnshard/export/session/storage
+    ydb/core/scheme
+    ydb/core/tx/columnshard/export/protos
+    ydb/core/tablet_flat
+    ydb/core/tx/columnshard/export/transactions
+)
+
+GENERATE_ENUM_SERIALIZATION(session.h)
+
+END()
diff --git a/ydb/core/tx/columnshard/export/transactions/tx_save_cursor.cpp b/ydb/core/tx/columnshard/export/transactions/tx_save_cursor.cpp
new file mode 100644
index 000000000000..159c0b492933
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/transactions/tx_save_cursor.cpp
@@ -0,0 +1,23 @@
+#include "tx_save_cursor.h"
+#include 
+#include 
+
+namespace NKikimr::NOlap::NExport {
+
+bool TTxSaveCursor::Execute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& /*ctx*/) {
+    TSession copy = *Session;
+    copy.SetCursor(Cursor);
+    copy.SaveCursorToDB(txc.DB);
+    return true;
+}
+
+void TTxSaveCursor::Complete(const TActorContext& ctx) {
+    Session->SetCursor(Cursor);
+    if (!Cursor.IsFinished()) {
+        ctx.Send(ExportActorId, new NEvents::TEvExportCursorSaved);
+    } else {
+        NYDBTest::TControllers::GetColumnShardController()->OnExportFinished();
+    }
+}
+
+}
diff --git a/ydb/core/tx/columnshard/export/transactions/tx_save_cursor.h b/ydb/core/tx/columnshard/export/transactions/tx_save_cursor.h
new file mode 100644
index 000000000000..94023bf8a21a
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/transactions/tx_save_cursor.h
@@ -0,0 +1,26 @@
+#pragma once
+#include 
+
+namespace NKikimr::NOlap::NExport {
+class TSession;
+class TTxSaveCursor: public NColumnShard::TTransactionBase {
+private:
+    using TBase = NColumnShard::TTransactionBase;
+    const TCursor Cursor;
+    const TActorId ExportActorId;
+    std::shared_ptr Session;
+public:
+    TTxSaveCursor(NColumnShard::TColumnShard* self, const std::shared_ptr& session, TCursor&& cursor, const TActorId& exportActorId)
+        : TBase(self)
+        , Cursor(std::move(cursor))
+        , ExportActorId(exportActorId)
+        , Session(session)
+    {
+    }
+
+    bool Execute(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& /*ctx*/) override;
+    void Complete(const TActorContext& ctx) override;
+    TTxType GetTxType() const override { return NColumnShard::TXTYPE_EXPORT_SAVE_CURSOR; }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/export/transactions/ya.make b/ydb/core/tx/columnshard/export/transactions/ya.make
new file mode 100644
index 000000000000..bd05fac6fa49
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/transactions/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCS(
+    tx_save_cursor.cpp
+)
+
+PEERDIR(
+    ydb/core/protos
+    ydb/core/tx/columnshard/export/protos
+    ydb/core/tx/columnshard/blobs_action
+    ydb/services/metadata/abstract
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/export/ya.make b/ydb/core/tx/columnshard/export/ya.make
new file mode 100644
index 000000000000..99e9dcb669d9
--- /dev/null
+++ b/ydb/core/tx/columnshard/export/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+SRCS(
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/export/session
+    ydb/core/tx/columnshard/export/manager
+    ydb/core/tx/columnshard/export/actor
+    ydb/core/tx/columnshard/export/events
+    ydb/core/tx/columnshard/export/protos
+    ydb/core/tx/columnshard/export/common
+    ydb/core/tx/columnshard/export/transactions
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/hooks/abstract/abstract.h b/ydb/core/tx/columnshard/hooks/abstract/abstract.h
index e9b9144cacbb..f1665ee4de71 100644
--- a/ydb/core/tx/columnshard/hooks/abstract/abstract.h
+++ b/ydb/core/tx/columnshard/hooks/abstract/abstract.h
@@ -1,6 +1,7 @@
 #pragma once
 
 #include 
+#include 
 
 #include 
 #include 
@@ -11,16 +12,18 @@
 #include 
 #include 
 
-namespace NKikimr::NOlap::NIndexedReader {
-class IOrderPolicy;
-}
-
 namespace NKikimr::NColumnShard {
 class TTiersManager;
+class TColumnShard;
 }
 
 namespace NKikimr::NOlap {
 class TColumnEngineChanges;
+class IBlobsGCAction;
+class TPortionInfo;
+namespace NStatistics {
+class TOperatorContainer;
+}
 }
 namespace arrow {
 class RecordBatch;
@@ -44,48 +47,126 @@ class ILocalDBModifier {
 };
 
 class ICSController {
-private:
-    YDB_READONLY(TAtomicCounter, OnSortingPolicyCounter, 0);
+public:
+    enum class EBackground {
+        Indexation,
+        Compaction,
+        TTL,
+        Cleanup,
+        GC
+    };
 protected:
-    virtual bool DoOnSortingPolicy(std::shared_ptr /*policy*/) {
-        return true;
+    virtual void DoOnTabletInitCompleted(const ::NKikimr::NColumnShard::TColumnShard& /*shard*/) {
+        return;
+    }
+    virtual void DoOnTabletStopped(const ::NKikimr::NColumnShard::TColumnShard& /*shard*/) {
+        return;
     }
     virtual bool DoOnAfterFilterAssembling(const std::shared_ptr& /*batch*/) {
         return true;
     }
-    virtual bool DoOnStartCompaction(std::shared_ptr& /*changes*/) {
+    virtual bool DoOnWriteIndexComplete(const NOlap::TColumnEngineChanges& /*changes*/, const ::NKikimr::NColumnShard::TColumnShard& /*shard*/) {
         return true;
     }
-    virtual bool DoOnWriteIndexComplete(const ui64 /*tabletId*/, const TString& /*changeClassName*/) {
+    virtual bool DoOnWriteIndexStart(const ui64 /*tabletId*/, NOlap::TColumnEngineChanges& /*change*/) {
         return true;
     }
-    virtual bool DoOnWriteIndexStart(const ui64 /*tabletId*/, const TString& /*changeClassName*/) {
-        return true;
+    virtual void DoOnAfterSharingSessionsManagerStart(const NColumnShard::TColumnShard& /*shard*/) {
+    }
+    virtual void DoOnAfterGCAction(const NColumnShard::TColumnShard& /*shard*/, const NOlap::IBlobsGCAction& /*action*/) {
+    }
+    virtual void DoOnDataSharingFinished(const ui64 /*tabletId*/, const TString& /*sessionId*/) {
+    }
+    virtual void DoOnDataSharingStarted(const ui64 /*tabletId*/, const TString & /*sessionId*/) {
     }
 
 public:
+    virtual bool IsBackgroundEnabled(const EBackground /*id*/) const {
+        return true;
+    }
+
     using TPtr = std::shared_ptr;
     virtual ~ICSController() = default;
-    bool OnSortingPolicy(std::shared_ptr policy) {
-        OnSortingPolicyCounter.Inc();
-        return DoOnSortingPolicy(policy);
+
+    virtual NColumnShard::TBlobPutResult::TPtr OverrideBlobPutResultOnCompaction(const NColumnShard::TBlobPutResult::TPtr original, const NOlap::TWriteActionsCollection& /*actions*/) const {
+        return original;
+    }
+
+    virtual ui64 GetReduceMemoryIntervalLimit(const ui64 def) const {
+        return def;
+    }
+    virtual ui64 GetRejectMemoryIntervalLimit(const ui64 def) const {
+        return def;
+    }
+    virtual bool NeedForceCompactionBacketsConstruction() const {
+        return false;
+    }
+    virtual ui64 GetSmallPortionSizeDetector(const ui64 def) const {
+        return def;
+    }
+    virtual void OnExportFinished() {
+
+    }
+    virtual void OnActualizationRefreshScheme() {
+
+    }
+    virtual void OnActualizationRefreshTiering() {
+
     }
+    virtual void AddPortionForActualizer(const i32 /*portionsCount*/) {
+
+    }
+
+    void OnDataSharingFinished(const ui64 tabletId, const TString& sessionId) {
+        return DoOnDataSharingFinished(tabletId, sessionId);
+    }
+    void OnDataSharingStarted(const ui64 tabletId, const TString& sessionId) {
+        return DoOnDataSharingStarted(tabletId, sessionId);
+    }
+    virtual void OnStatisticsUsage(const NOlap::NStatistics::TOperatorContainer& /*statOperator*/) {
+
+    }
+    virtual void OnPortionActualization(const NOlap::TPortionInfo& /*info*/) {
+
+    }
+    virtual void OnMaxValueUsage() {
+    }
+
+    virtual TDuration GetLagForCompactionBeforeTierings(const TDuration def) const {
+        return def;
+    }
+
+    void OnTabletInitCompleted(const NColumnShard::TColumnShard& shard) {
+        DoOnTabletInitCompleted(shard);
+    }
+
+    void OnTabletStopped(const NColumnShard::TColumnShard& shard) {
+        DoOnTabletStopped(shard);
+    }
+
+    void OnAfterGCAction(const NColumnShard::TColumnShard& shard, const NOlap::IBlobsGCAction& action) {
+        DoOnAfterGCAction(shard, action);
+    }
+
     bool OnAfterFilterAssembling(const std::shared_ptr& batch) {
         return DoOnAfterFilterAssembling(batch);
     }
-    bool OnWriteIndexComplete(const ui64 tabletId, const TString& changeClassName) {
-        return DoOnWriteIndexComplete(tabletId, changeClassName);
+    bool OnWriteIndexComplete(const NOlap::TColumnEngineChanges& changes, const NColumnShard::TColumnShard& shard) {
+        return DoOnWriteIndexComplete(changes, shard);
     }
-    bool OnWriteIndexStart(const ui64 tabletId, const TString& changeClassName) {
-        return DoOnWriteIndexStart(tabletId, changeClassName);
+    void OnAfterSharingSessionsManagerStart(const NColumnShard::TColumnShard& shard) {
+        return DoOnAfterSharingSessionsManagerStart(shard);
     }
-    bool OnStartCompaction(std::shared_ptr& changes) {
-        return DoOnStartCompaction(changes);
+    bool OnWriteIndexStart(const ui64 tabletId, NOlap::TColumnEngineChanges& change) {
+        return DoOnWriteIndexStart(tabletId, change);
     }
     virtual void OnIndexSelectProcessed(const std::optional /*result*/) {
     }
+    virtual TDuration GetReadTimeoutClean(const TDuration def) {
+        return def;
+    }
     virtual EOptimizerCompactionWeightControl GetCompactionControl() const {
-        return EOptimizerCompactionWeightControl::Force;
+        return EOptimizerCompactionWeightControl::Default;
     }
     virtual TDuration GetTTLDefaultWaitingDuration(const TDuration defaultValue) const {
         return defaultValue;
@@ -117,6 +198,14 @@ class ICSController {
         static std::shared_ptr result = std::make_shared(TInstant::Now());
         return result;
     }
+
+    virtual void OnSwitchToWork(const ui64 tabletId) {
+        Y_UNUSED(tabletId);
+    }
+
+    virtual void OnCleanupActors(const ui64 tabletId) {
+        Y_UNUSED(tabletId);
+    }
 };
 
 class TControllers {
@@ -153,6 +242,12 @@ class TControllers {
     static ICSController::TPtr GetColumnShardController() {
         return Singleton()->CSController;
     }
+
+    template 
+    static T* GetControllerAs() {
+        auto controller = Singleton()->CSController;
+        return dynamic_cast(controller.get());
+    }
 };
 
 }
diff --git a/ydb/core/tx/columnshard/hooks/testing/controller.cpp b/ydb/core/tx/columnshard/hooks/testing/controller.cpp
index 2fcf27ebaf76..e711a72d4c2b 100644
--- a/ydb/core/tx/columnshard/hooks/testing/controller.cpp
+++ b/ydb/core/tx/columnshard/hooks/testing/controller.cpp
@@ -1,28 +1,144 @@
 #include "controller.h"
+#include 
+#include 
 #include 
 #include 
 #include 
+#include 
+#include 
 #include 
 
 namespace NKikimr::NYDBTest::NColumnShard {
 
-bool TController::DoOnAfterFilterAssembling(const std::shared_ptr& batch) {
-    if (batch) {
-        FilteredRecordsCount.Add(batch->num_rows());
+bool TController::DoOnWriteIndexComplete(const NOlap::TColumnEngineChanges& change, const ::NKikimr::NColumnShard::TColumnShard& shard) {
+    TGuard g(Mutex);
+    if (SharingIds.empty()) {
+        TCheckContext context;
+        CheckInvariants(shard, context);
     }
-    return true;
+    return TBase::DoOnWriteIndexComplete(change, shard);
 }
 
-bool TController::DoOnWriteIndexComplete(const ui64 /*tabletId*/, const TString& /*changeClassName*/) {
-    Indexations.Inc();
-    return true;
+void TController::DoOnAfterGCAction(const ::NKikimr::NColumnShard::TColumnShard& /*shard*/, const NOlap::IBlobsGCAction& action) {
+    TGuard g(Mutex);
+    for (auto d = action.GetBlobsToRemove().GetDirect().GetIterator(); d.IsValid(); ++d) {
+        AFL_VERIFY(RemovedBlobIds[action.GetStorageId()][d.GetBlobId()].emplace(d.GetTabletId()).second);
+    }
+//    if (SharingIds.empty()) {
+//        CheckInvariants();
+//    }
+}
+
+void TController::CheckInvariants(const ::NKikimr::NColumnShard::TColumnShard& shard, TCheckContext& context) const {
+    if (!shard.HasIndex()) {
+        return;
+    }
+    const auto& index = shard.GetIndexAs();
+    std::vector> granules = index.GetTables({}, {});
+    THashMap> ids;
+    for (auto&& i : granules) {
+        for (auto&& p : i->GetPortions()) {
+            p.second->FillBlobIdsByStorage(ids, index.GetVersionedIndex());
+        }
+    }
+    for (auto&& i : ids) {
+        auto it = RemovedBlobIds.find(i.first);
+        if (it == RemovedBlobIds.end()) {
+            continue;
+        }
+        for (auto&& b : i.second) {
+            auto itB = it->second.find(b);
+            if (itB != it->second.end()) {
+                AFL_VERIFY(!itB->second.contains((NOlap::TTabletId)shard.TabletID()));
+            }
+        }
+    }
+    THashMap shardBlobsCategories = shard.GetStoragesManager()->GetSharedBlobsManager()->GetBlobCategories();
+    for (auto&& i : shardBlobsCategories) {
+        auto manager = shard.GetStoragesManager()->GetOperatorVerified(i.first);
+        const NOlap::TTabletsByBlob blobs = manager->GetBlobsToDelete();
+        for (auto b = blobs.GetIterator(); b.IsValid(); ++b) {
+            i.second.RemoveSharing(b.GetTabletId(), b.GetBlobId());
+        }
+        for (auto b = blobs.GetIterator(); b.IsValid(); ++b) {
+            i.second.RemoveBorrowed(b.GetTabletId(), b.GetBlobId());
+        }
+    }
+    context.AddCategories(shard.TabletID(), std::move(shardBlobsCategories));
+}
+
+TController::TCheckContext TController::CheckInvariants() const {
+    TGuard g(Mutex);
+    TCheckContext context;
+    if (ExpectedShardsCount && *ExpectedShardsCount != ShardActuals.size()) {
+        return context;
+    }
+    for (auto&& i : ShardActuals) {
+        CheckInvariants(*i.second, context);
+    }
+    Cerr << context.DebugString() << Endl;
+    context.Check();
+    return context;
 }
 
-bool TController::DoOnStartCompaction(std::shared_ptr& changes) {
-    if (auto compaction = dynamic_pointer_cast(changes)) {
-        Compactions.Inc();
+void TController::DoOnTabletInitCompleted(const ::NKikimr::NColumnShard::TColumnShard& shard) {
+    TGuard g(Mutex);
+    AFL_VERIFY(ShardActuals.emplace(shard.TabletID(), &shard).second);
+}
+
+void TController::DoOnTabletStopped(const ::NKikimr::NColumnShard::TColumnShard& shard) {
+    TGuard g(Mutex);
+    AFL_VERIFY(ShardActuals.erase(shard.TabletID()));
+}
+
+std::vector TController::GetPathIds(const ui64 tabletId) const {
+    TGuard g(Mutex);
+    std::vector result;
+    for (auto&& i : ShardActuals) {
+        if (i.first == tabletId) {
+            const auto& index = i.second->GetIndexAs();
+            std::vector> granules = index.GetTables({}, {});
+
+            for (auto&& g : granules) {
+                result.emplace_back(g->GetPathId());
+            }
+            break;
+        }
+    }
+    return result;
+}
+
+bool TController::IsTrivialLinks() const {
+    TGuard g(Mutex);
+    for (auto&& i : ShardActuals) {
+        if (!i.second->GetStoragesManager()->GetSharedBlobsManager()->IsTrivialLinks()) {
+            return false;
+        }
+        if (i.second->GetStoragesManager()->HasBlobsToDelete()) {
+            return false;
+        }
     }
     return true;
 }
 
+::NKikimr::NColumnShard::TBlobPutResult::TPtr TController::OverrideBlobPutResultOnCompaction(const ::NKikimr::NColumnShard::TBlobPutResult::TPtr original, const NOlap::TWriteActionsCollection& actions) const {
+    if (IndexWriteControllerEnabled) {
+        return original;
+    }
+    bool found = false;
+    for (auto&& i : actions) {
+        if (i.first != NOlap::NBlobOperations::TGlobal::DefaultStorageId) {
+            found = true;
+            break;
+        }
+    }
+    if (!found) {
+        return original;
+    }
+    IndexWriteControllerBrokeCount.Inc();
+    ::NKikimr::NColumnShard::TBlobPutResult::TPtr result = std::make_shared<::NKikimr::NColumnShard::TBlobPutResult>(*original);
+    result->SetPutStatus(NKikimrProto::EReplyStatus::ERROR);
+    return result;
+}
+
 }
diff --git a/ydb/core/tx/columnshard/hooks/testing/controller.h b/ydb/core/tx/columnshard/hooks/testing/controller.h
index 7fc824508e91..e3e3f184b952 100644
--- a/ydb/core/tx/columnshard/hooks/testing/controller.h
+++ b/ydb/core/tx/columnshard/hooks/testing/controller.h
@@ -1,26 +1,146 @@
 #pragma once
+#include "ro_controller.h"
+#include 
+#include 
+#include 
+#include 
 #include 
+#include 
 
 namespace NKikimr::NYDBTest::NColumnShard {
 
-class TController: public ICSController {
+class TController: public TReadOnlyController {
 private:
-    YDB_READONLY(TAtomicCounter, FilteredRecordsCount, 0);
-    YDB_READONLY(TAtomicCounter, Compactions, 0);
-    YDB_READONLY(TAtomicCounter, Indexations, 0);
-    YDB_READONLY(TAtomicCounter, IndexesSkippingOnSelect, 0);
-    YDB_READONLY(TAtomicCounter, IndexesApprovedOnSelect, 0);
-    YDB_READONLY(TAtomicCounter, IndexesSkippedNoData, 0);
+    using TBase = TReadOnlyController;
+    YDB_ACCESSOR_DEF(std::optional, LagForCompactionBeforeTierings);
     YDB_ACCESSOR(std::optional, GuaranteeIndexationInterval, TDuration::Zero());
     YDB_ACCESSOR(std::optional, PeriodicWakeupActivationPeriod, std::nullopt);
     YDB_ACCESSOR(std::optional, StatsReportInterval, std::nullopt);
     YDB_ACCESSOR(std::optional, GuaranteeIndexationStartBytesLimit, 0);
     YDB_ACCESSOR(std::optional, OptimizerFreshnessCheckDuration, TDuration::Zero());
     EOptimizerCompactionWeightControl CompactionControl = EOptimizerCompactionWeightControl::Force;
+
+    YDB_ACCESSOR(std::optional, OverrideReduceMemoryIntervalLimit, 1024);
+    YDB_ACCESSOR_DEF(std::optional, OverrideRejectMemoryIntervalLimit);
+
+    std::optional ReadTimeoutClean;
+    std::optional ExpectedShardsCount;
+
+    THashMap ShardActuals;
+    THashMap>> RemovedBlobIds;
+    TMutex Mutex;
+
+    YDB_ACCESSOR(bool, IndexWriteControllerEnabled, true);
+    mutable TAtomicCounter IndexWriteControllerBrokeCount;
+    std::set DisabledBackgrounds;
+
+    TMutex ActiveTabletsMutex;
+    std::set ActiveTablets;
+
+    class TBlobInfo {
+    private:
+        const NOlap::TUnifiedBlobId BlobId;
+        std::optional OwnerTabletId;
+        THashSet SharedTabletIdsFromShared;
+        THashSet SharedTabletIdsFromOwner;
+    public:
+        TBlobInfo(const NOlap::TUnifiedBlobId& blobId)
+            : BlobId(blobId)
+        {
+
+        }
+        void AddOwner(const ui64 tabletId) {
+            if (!OwnerTabletId) {
+                OwnerTabletId = tabletId;
+            } else {
+                AFL_VERIFY(*OwnerTabletId == tabletId);
+            }
+        }
+
+        void AddSharingFromOwner(const ui64 tabletId) {
+            SharedTabletIdsFromOwner.emplace(tabletId);
+        }
+        void AddSharingFromShared(const ui64 tabletId) {
+            SharedTabletIdsFromShared.emplace(tabletId);
+        }
+        void Check() const {
+            AFL_VERIFY(OwnerTabletId);
+            AFL_VERIFY(SharedTabletIdsFromShared == SharedTabletIdsFromOwner)("blob_id", BlobId.ToStringNew())("shared", JoinSeq(",", SharedTabletIdsFromShared))("owned", JoinSeq(",", SharedTabletIdsFromOwner));
+        }
+
+        void DebugString(const TString& delta, TStringBuilder& sb) const {
+            if (OwnerTabletId) {
+                sb << delta << "O: " << *OwnerTabletId << Endl;
+            }
+            if (SharedTabletIdsFromShared.size()) {
+                sb << delta << "S: " << JoinSeq(",", SharedTabletIdsFromShared) << Endl;
+            }
+        }
+    };
+
+    class TCheckContext {
+    private:
+        THashMap> Infos;
+    public:
+        void Check() const {
+            for (auto&& i : Infos) {
+                for (auto&& b : i.second) {
+                    b.second.Check();
+                }
+            }
+        }
+
+        TString DebugString() const {
+            TStringBuilder sb;
+            for (auto&& i : Infos) {
+                sb << i.first << Endl;
+                for (auto&& b : i.second) {
+                    sb << "    " << b.first << Endl;
+                    b.second.DebugString("        ", sb);
+                }
+            }
+            return sb;
+        }
+
+        void AddCategories(const ui64 tabletId, THashMap&& categories) {
+            for (auto&& s : categories) {
+                for (auto it = s.second.GetDirect().GetIterator(); it.IsValid(); ++it) {
+                    Infos[s.first].emplace(it.GetBlobId(), it.GetBlobId()).first->second.AddOwner((ui64)it.GetTabletId());
+                }
+                for (auto it = s.second.GetBorrowed().GetIterator(); it.IsValid(); ++it) {
+                    Infos[s.first].emplace(it.GetBlobId(), it.GetBlobId()).first->second.AddOwner((ui64)it.GetTabletId());
+                    Infos[s.first].emplace(it.GetBlobId(), it.GetBlobId()).first->second.AddSharingFromShared((ui64)tabletId);
+                }
+                for (auto it = s.second.GetSharing().GetIterator(); it.IsValid(); ++it) {
+                    Infos[s.first].emplace(it.GetBlobId(), it.GetBlobId()).first->second.AddOwner(tabletId);
+                    Infos[s.first].emplace(it.GetBlobId(), it.GetBlobId()).first->second.AddSharingFromOwner((ui64)it.GetTabletId());
+                    if (it.GetTabletId() == (NOlap::TTabletId)tabletId) {
+                        Infos[s.first].emplace(it.GetBlobId(), it.GetBlobId()).first->second.AddSharingFromShared((ui64)tabletId);
+                    }
+                }
+            }
+        }
+    };
+
+    void CheckInvariants(const ::NKikimr::NColumnShard::TColumnShard& shard, TCheckContext& context) const;
+
+    THashSet SharingIds;
 protected:
-    virtual bool DoOnAfterFilterAssembling(const std::shared_ptr& batch) override;
-    virtual bool DoOnStartCompaction(std::shared_ptr& changes) override;
-    virtual bool DoOnWriteIndexComplete(const ui64 /*tabletId*/, const TString& /*changeClassName*/) override;
+    virtual ::NKikimr::NColumnShard::TBlobPutResult::TPtr OverrideBlobPutResultOnCompaction(const ::NKikimr::NColumnShard::TBlobPutResult::TPtr original, const NOlap::TWriteActionsCollection& actions) const override;
+    virtual TDuration GetLagForCompactionBeforeTierings(const TDuration def) const override {
+        return LagForCompactionBeforeTierings.value_or(def);
+    }
+
+    virtual bool IsBackgroundEnabled(const EBackground id) const override {
+        TGuard g(Mutex);
+        return !DisabledBackgrounds.contains(id);
+    }
+
+    virtual void DoOnTabletInitCompleted(const ::NKikimr::NColumnShard::TColumnShard& shard) override;
+    virtual void DoOnTabletStopped(const ::NKikimr::NColumnShard::TColumnShard& shard) override;
+    virtual void DoOnAfterGCAction(const ::NKikimr::NColumnShard::TColumnShard& shard, const NOlap::IBlobsGCAction& action) override;
+
+    virtual bool DoOnWriteIndexComplete(const NOlap::TColumnEngineChanges& changes, const ::NKikimr::NColumnShard::TColumnShard& shard) override;
     virtual TDuration GetGuaranteeIndexationInterval(const TDuration defaultValue) const override {
         return GuaranteeIndexationInterval.value_or(defaultValue);
     }
@@ -36,27 +156,97 @@ class TController: public ICSController {
     virtual TDuration GetOptimizerFreshnessCheckDuration(const TDuration defaultValue) const override {
         return OptimizerFreshnessCheckDuration.value_or(defaultValue);
     }
+    virtual TDuration GetReadTimeoutClean(const TDuration def) override {
+        return ReadTimeoutClean.value_or(def);
+    }
     virtual EOptimizerCompactionWeightControl GetCompactionControl() const override {
         return CompactionControl;
     }
 
+    virtual void DoOnDataSharingFinished(const ui64 /*tabletId*/, const TString& sessionId) override {
+        TGuard g(Mutex);
+        AFL_VERIFY(SharingIds.erase(sessionId));
+        if (SharingIds.empty()) {
+            CheckInvariants();
+        }
+    }
+    virtual void DoOnDataSharingStarted(const ui64 /*tabletId*/, const TString& sessionId) override {
+        TGuard g(Mutex);
+        if (SharingIds.empty()) {
+            CheckInvariants();
+        }
+        SharingIds.emplace(sessionId);
+    }
+
 public:
-    virtual void OnIndexSelectProcessed(const std::optional result) override {
-        if (!result) {
-            IndexesSkippedNoData.Inc();
-        } else if (*result) {
-            IndexesApprovedOnSelect.Inc();
-        } else {
-            IndexesSkippingOnSelect.Inc();
+    const TAtomicCounter& GetIndexWriteControllerBrokeCount() const {
+        return IndexWriteControllerBrokeCount;
+    }
+    virtual ui64 GetReduceMemoryIntervalLimit(const ui64 def) const override {
+        return OverrideReduceMemoryIntervalLimit.value_or(def);
+    }
+    virtual ui64 GetRejectMemoryIntervalLimit(const ui64 def) const override {
+        return OverrideRejectMemoryIntervalLimit.value_or(def);
+    }
+    bool IsTrivialLinks() const;
+    TCheckContext CheckInvariants() const;
+
+    ui32 GetShardActualsCount() const {
+        TGuard g(Mutex);
+        return ShardActuals.size();
+    }
+
+    void DisableBackground(const EBackground id) {
+        TGuard g(Mutex);
+        DisabledBackgrounds.emplace(id);
+    }
+
+    void EnableBackground(const EBackground id) {
+        TGuard g(Mutex);
+        DisabledBackgrounds.erase(id);
+    }
+
+    std::vector GetShardActualIds() const {
+        TGuard g(Mutex);
+        std::vector result;
+        for (auto&& i : ShardActuals) {
+            result.emplace_back(i.first);
         }
+        return result;
+    }
+
+    std::vector GetPathIds(const ui64 tabletId) const;
+
+    void SetExpectedShardsCount(const ui32 value) {
+        ExpectedShardsCount = value;
     }
     void SetCompactionControl(const EOptimizerCompactionWeightControl value) {
         CompactionControl = value;
     }
+    void SetReadTimeoutClean(const TDuration d) {
+        ReadTimeoutClean = d;
+    }
 
     bool HasPKSortingOnly() const;
-    bool HasCompactions() const {
-        return Compactions.Val();
+
+    void OnSwitchToWork(const ui64 tabletId) override {
+        TGuard g(ActiveTabletsMutex);
+        ActiveTablets.emplace(tabletId);
+    }
+
+    void OnCleanupActors(const ui64 tabletId) override {
+        TGuard g(ActiveTabletsMutex);
+        ActiveTablets.erase(tabletId);
+    }
+
+    ui64 GetActiveTabletsCount() const {
+        TGuard g(ActiveTabletsMutex);
+        return ActiveTablets.size();
+    }
+
+    bool IsActiveTablet(const ui64 tabletId) const {
+        TGuard g(ActiveTabletsMutex);
+        return ActiveTablets.contains(tabletId);
     }
 };
 
diff --git a/ydb/core/tx/columnshard/hooks/testing/ro_controller.cpp b/ydb/core/tx/columnshard/hooks/testing/ro_controller.cpp
new file mode 100644
index 000000000000..0f51716c649e
--- /dev/null
+++ b/ydb/core/tx/columnshard/hooks/testing/ro_controller.cpp
@@ -0,0 +1,48 @@
+#include "ro_controller.h"
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NYDBTest::NColumnShard {
+
+bool TReadOnlyController::DoOnAfterFilterAssembling(const std::shared_ptr& batch) {
+    if (batch) {
+        FilteredRecordsCount.Add(batch->num_rows());
+    }
+    return true;
+}
+
+bool TReadOnlyController::DoOnWriteIndexComplete(const NOlap::TColumnEngineChanges& change, const ::NKikimr::NColumnShard::TColumnShard& /*shard*/) {
+    if (change.TypeString() == NOlap::TTTLColumnEngineChanges::StaticTypeName()) {
+        TTLFinishedCounter.Inc();
+    }
+    if (change.TypeString() == NOlap::TInsertColumnEngineChanges::StaticTypeName()) {
+        InsertFinishedCounter.Inc();
+    }
+    if (change.TypeString() == NOlap::TCompactColumnEngineChanges::StaticTypeName()) {
+        CompactionFinishedCounter.Inc();
+        AFL_VERIFY(CompactionsLimit.Dec() >= 0);
+    }
+    return true;
+}
+
+bool TReadOnlyController::DoOnWriteIndexStart(const ui64 tabletId, NOlap::TColumnEngineChanges& change) {
+    AFL_NOTICE(NKikimrServices::TX_COLUMNSHARD)("event", change.TypeString())("tablet_id", tabletId);
+    if (change.TypeString() == NOlap::TTTLColumnEngineChanges::StaticTypeName()) {
+        TTLStartedCounter.Inc();
+    }
+    if (change.TypeString() == NOlap::TInsertColumnEngineChanges::StaticTypeName()) {
+        InsertStartedCounter.Inc();
+    }
+    if (change.TypeString() == NOlap::TCompactColumnEngineChanges::StaticTypeName()) {
+        CompactionStartedCounter.Inc();
+    }
+    return true;
+}
+
+}
diff --git a/ydb/core/tx/columnshard/hooks/testing/ro_controller.h b/ydb/core/tx/columnshard/hooks/testing/ro_controller.h
new file mode 100644
index 000000000000..f05940e947a8
--- /dev/null
+++ b/ydb/core/tx/columnshard/hooks/testing/ro_controller.h
@@ -0,0 +1,126 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NYDBTest::NColumnShard {
+
+class TReadOnlyController: public ICSController {
+private:
+    YDB_READONLY(TAtomicCounter, TTLFinishedCounter, 0);
+    YDB_READONLY(TAtomicCounter, TTLStartedCounter, 0);
+    YDB_READONLY(TAtomicCounter, InsertFinishedCounter, 0);
+    YDB_READONLY(TAtomicCounter, InsertStartedCounter, 0);
+    YDB_READONLY(TAtomicCounter, CompactionFinishedCounter, 0);
+    YDB_READONLY(TAtomicCounter, CompactionStartedCounter, 0);
+
+    YDB_READONLY(TAtomicCounter, FilteredRecordsCount, 0);
+    YDB_READONLY(TAtomicCounter, IndexesSkippingOnSelect, 0);
+    YDB_READONLY(TAtomicCounter, IndexesApprovedOnSelect, 0);
+    YDB_READONLY(TAtomicCounter, IndexesSkippedNoData, 0);
+    YDB_READONLY(TAtomicCounter, TieringUpdates, 0);
+    YDB_READONLY(TAtomicCounter, NeedActualizationCount, 0);
+    
+    YDB_READONLY(TAtomicCounter, ActualizationsCount, 0);
+    YDB_READONLY(TAtomicCounter, ActualizationRefreshSchemeCount, 0);
+    YDB_READONLY(TAtomicCounter, ActualizationRefreshTieringCount, 0);
+
+    YDB_ACCESSOR(TAtomicCounter, CompactionsLimit, 10000000);
+
+protected:
+    virtual void AddPortionForActualizer(const i32 portionsCount) override {
+        NeedActualizationCount.Add(portionsCount);
+    }
+
+    virtual void OnPortionActualization(const NOlap::TPortionInfo& /*info*/) override {
+        ActualizationsCount.Inc();
+    }
+    virtual void OnActualizationRefreshScheme() override {
+        ActualizationRefreshSchemeCount.Inc();
+    }
+    virtual void OnActualizationRefreshTiering() override {
+        ActualizationRefreshTieringCount.Inc();
+    }
+
+    virtual bool DoOnWriteIndexStart(const ui64 tabletId, NOlap::TColumnEngineChanges& change) override;
+    virtual bool DoOnAfterFilterAssembling(const std::shared_ptr& batch) override;
+    virtual bool DoOnWriteIndexComplete(const NOlap::TColumnEngineChanges& changes, const ::NKikimr::NColumnShard::TColumnShard& shard) override;
+    virtual void OnTieringModified(const std::shared_ptr& /*tiers*/) override {
+        TieringUpdates.Inc();
+    }
+    virtual EOptimizerCompactionWeightControl GetCompactionControl() const override {
+        return EOptimizerCompactionWeightControl::Force;
+    }
+
+public:
+    void WaitCompactions(const TDuration d) const {
+        TInstant start = TInstant::Now();
+        ui32 compactionsStart = GetCompactionStartedCounter().Val();
+        while (Now() - start < d) {
+            if (compactionsStart != GetCompactionStartedCounter().Val()) {
+                compactionsStart = GetCompactionStartedCounter().Val();
+                start = TInstant::Now();
+            }
+            Cerr << "WAIT_COMPACTION: " << GetCompactionStartedCounter().Val() << Endl;
+            Sleep(TDuration::Seconds(1));
+        }
+    }
+
+    void WaitIndexation(const TDuration d) const {
+        TInstant start = TInstant::Now();
+        ui32 compactionsStart = GetInsertStartedCounter().Val();
+        while (Now() - start < d) {
+            if (compactionsStart != GetInsertStartedCounter().Val()) {
+                compactionsStart = GetInsertStartedCounter().Val();
+                start = TInstant::Now();
+            }
+            Cerr << "WAIT_INDEXATION: " << GetInsertStartedCounter().Val() << Endl;
+            Sleep(TDuration::Seconds(1));
+        }
+    }
+
+    template 
+    void WaitCondition(const TDuration d, const TTester& test) const {
+        const TInstant start = TInstant::Now();
+        while (TInstant::Now() - start < d) {
+            if (test()) {
+                Cerr << "condition SUCCESS!!..." << TInstant::Now() - start << Endl;
+                return;
+            } else {
+                Cerr << "waiting condition..." << TInstant::Now() - start << Endl;
+                Sleep(TDuration::Seconds(1));
+            }
+        }
+        AFL_VERIFY(false)("reason", "condition not reached");
+    }
+
+    void WaitActualization(const TDuration d) const {
+        TInstant start = TInstant::Now();
+        const i64 startVal = NeedActualizationCount.Val();
+        i64 predVal = NeedActualizationCount.Val();
+        while (TInstant::Now() - start < d && (!startVal || NeedActualizationCount.Val())) {
+            Cerr << "waiting actualization: " << NeedActualizationCount.Val() << "/" << TInstant::Now() - start << Endl;
+            if (NeedActualizationCount.Val() != predVal) {
+                predVal = NeedActualizationCount.Val();
+                start = TInstant::Now();
+            }
+            Sleep(TDuration::Seconds(1));
+        }
+        AFL_VERIFY(!NeedActualizationCount.Val());
+    }
+
+    virtual void OnIndexSelectProcessed(const std::optional result) override {
+        if (!result) {
+            IndexesSkippedNoData.Inc();
+        } else if (*result) {
+            IndexesApprovedOnSelect.Inc();
+        } else {
+            IndexesSkippingOnSelect.Inc();
+        }
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/hooks/testing/ya.make b/ydb/core/tx/columnshard/hooks/testing/ya.make
index 5a56a25ea233..14a380c02f88 100644
--- a/ydb/core/tx/columnshard/hooks/testing/ya.make
+++ b/ydb/core/tx/columnshard/hooks/testing/ya.make
@@ -2,6 +2,7 @@ LIBRARY()
 
 SRCS(
     controller.cpp
+    ro_controller.cpp
 )
 
 PEERDIR(
diff --git a/ydb/core/tx/columnshard/inflight_request_tracker.cpp b/ydb/core/tx/columnshard/inflight_request_tracker.cpp
new file mode 100644
index 000000000000..98ca6d7ab6da
--- /dev/null
+++ b/ydb/core/tx/columnshard/inflight_request_tracker.cpp
@@ -0,0 +1,90 @@
+#include "inflight_request_tracker.h"
+#include "engines/column_engine.h"
+#include "engines/reader/plain_reader/constructor/read_metadata.h"
+
+namespace NKikimr::NColumnShard {
+
+void TInFlightReadsTracker::RemoveInFlightRequest(ui64 cookie, const NOlap::TVersionedIndex* index) {
+    Y_ABORT_UNLESS(RequestsMeta.contains(cookie), "Unknown request cookie %" PRIu64, cookie);
+    const auto& readMetaList = RequestsMeta[cookie];
+
+    for (const auto& readMetaBase : readMetaList) {
+        NOlap::NReader::NPlain::TReadMetadata::TConstPtr readMeta = std::dynamic_pointer_cast(readMetaBase);
+
+        if (!readMeta) {
+            continue;
+        }
+
+        THashMap> portionBlobIds;
+        for (const auto& portion : readMeta->SelectInfo->PortionsOrderedPK) {
+            const ui64 portionId = portion->GetPortion();
+            AFL_VERIFY(index);
+            portion->FillBlobIdsByStorage(portionBlobIds, *index);
+            auto it = PortionUseCount.find(portionId);
+            Y_ABORT_UNLESS(it != PortionUseCount.end(), "Portion id %" PRIu64 " not found in request %" PRIu64, portionId, cookie);
+            if (it->second == 1) {
+                PortionUseCount.erase(it);
+            } else {
+                it->second--;
+            }
+        }
+
+        for (auto&& i : portionBlobIds) {
+            auto storage = StoragesManager->GetOperatorVerified(i.first);
+            auto tracker = storage->GetBlobsTracker();
+            for (auto& blobId : i.second) {
+                tracker->FreeBlob(blobId);
+            }
+        }
+
+        auto insertStorage = StoragesManager->GetInsertOperator();
+        auto tracker = insertStorage->GetBlobsTracker();
+        for (const auto& committedBlob : readMeta->CommittedBlobs) {
+            tracker->FreeBlob(committedBlob.GetBlobRange().GetBlobId());
+        }
+    }
+
+    RequestsMeta.erase(cookie);
+}
+
+TConclusionStatus TInFlightReadsTracker::AddToInFlightRequest(const ui64 cookie, NOlap::NReader::TReadMetadataBase::TConstPtr readMetaBase, const NOlap::TVersionedIndex* index) {
+    RequestsMeta[cookie].push_back(readMetaBase);
+
+    auto readMeta = std::dynamic_pointer_cast(readMetaBase);
+
+    if (!readMeta) {
+        return TConclusionStatus::Success();
+    }
+
+    auto selectInfo = readMeta->SelectInfo;
+    Y_ABORT_UNLESS(selectInfo);
+    SelectStatsDelta += selectInfo->Stats();
+
+    THashMap> portionBlobIds;
+    for (const auto& portion : readMeta->SelectInfo->PortionsOrderedPK) {
+        const ui64 portionId = portion->GetPortion();
+        PortionUseCount[portionId]++;
+        AFL_VERIFY(index);
+        portion->FillBlobIdsByStorage(portionBlobIds, *index);
+    }
+
+    for (auto&& i : portionBlobIds) {
+        auto storage = StoragesManager->GetOperatorOptional(i.first);
+        if (!storage) {
+            return TConclusionStatus::Fail("blobs storage info not ready for '" + i.first + "'");
+        }
+        auto tracker = storage->GetBlobsTracker();
+        for (auto& blobId : i.second) {
+            tracker->UseBlob(blobId);
+        }
+    }
+
+    auto insertStorage = StoragesManager->GetInsertOperator();
+    auto tracker = insertStorage->GetBlobsTracker();
+    for (const auto& committedBlob : readMeta->CommittedBlobs) {
+        tracker->UseBlob(committedBlob.GetBlobRange().GetBlobId());
+    }
+    return TConclusionStatus::Success();
+}
+
+}
diff --git a/ydb/core/tx/columnshard/inflight_request_tracker.h b/ydb/core/tx/columnshard/inflight_request_tracker.h
index 8b6c35bcac9a..d530c11d7a4f 100644
--- a/ydb/core/tx/columnshard/inflight_request_tracker.h
+++ b/ydb/core/tx/columnshard/inflight_request_tracker.h
@@ -1,67 +1,29 @@
 #pragma once
 
 #include "blob.h"
-#include 
+#include 
+
+namespace NKikimr::NOlap {
+class TVersionedIndex;
+}
 
 namespace NKikimr::NColumnShard {
 
-using NOlap::TReadMetadata;
 using NOlap::IBlobInUseTracker;
 
 class TInFlightReadsTracker {
 public:
     // Returns a unique cookie associated with this request
-    ui64 AddInFlightRequest(NOlap::TReadMetadataBase::TConstPtr readMeta) {
-        const ui64 cookie = NextCookie++;
-        AddToInFlightRequest(cookie, readMeta);
-        return cookie;
-    }
-
-    // Returns a unique cookie associated with this request
-    template 
-    ui64 AddInFlightRequest(const TReadMetadataList& readMetaList) {
+    [[nodiscard]] TConclusion AddInFlightRequest(NOlap::NReader::TReadMetadataBase::TConstPtr readMeta, const NOlap::TVersionedIndex* index) {
         const ui64 cookie = NextCookie++;
-        for (const auto& readMetaPtr : readMetaList) {
-            AddToInFlightRequest(cookie, readMetaPtr);
+        auto status = AddToInFlightRequest(cookie, readMeta, index);
+        if (!status) {
+            return status;
         }
         return cookie;
     }
 
-    void RemoveInFlightRequest(ui64 cookie) {
-        Y_ABORT_UNLESS(RequestsMeta.contains(cookie), "Unknown request cookie %" PRIu64, cookie);
-        const auto& readMetaList = RequestsMeta[cookie];
-
-        for (const auto& readMetaBase : readMetaList) {
-            NOlap::TReadMetadata::TConstPtr readMeta = std::dynamic_pointer_cast(readMetaBase);
-
-            if (!readMeta) {
-                continue;
-            }
-
-            for (const auto& portion : readMeta->SelectInfo->PortionsOrderedPK) {
-                const ui64 portionId = portion->GetPortion();
-                auto it = PortionUseCount.find(portionId);
-                Y_ABORT_UNLESS(it != PortionUseCount.end(), "Portion id %" PRIu64 " not found in request %" PRIu64, portionId, cookie);
-                if (it->second == 1) {
-                    PortionUseCount.erase(it);
-                } else {
-                    it->second--;
-                }
-                auto tracker = portion->GetBlobsStorage()->GetBlobsTracker();
-                for (auto& rec : portion->Records) {
-                    tracker->FreeBlob(rec.BlobRange.BlobId);
-                }
-            }
-
-            auto insertStorage = StoragesManager->GetInsertOperator();
-            auto tracker = insertStorage->GetBlobsTracker();
-            for (const auto& committedBlob : readMeta->CommittedBlobs) {
-                tracker->FreeBlob(committedBlob.GetBlobRange().GetBlobId());
-            }
-        }
-
-        RequestsMeta.erase(cookie);
-    }
+    void RemoveInFlightRequest(ui64 cookie, const NOlap::TVersionedIndex* index);
 
     // Checks if the portion is in use by any in-flight request
     bool IsPortionUsed(ui64 portionId) const {
@@ -81,39 +43,12 @@ class TInFlightReadsTracker {
     }
 
 private:
-    void AddToInFlightRequest(const ui64 cookie, NOlap::TReadMetadataBase::TConstPtr readMetaBase) {
-        RequestsMeta[cookie].push_back(readMetaBase);
-
-        NOlap::TReadMetadata::TConstPtr readMeta = std::dynamic_pointer_cast(readMetaBase);
-
-        if (!readMeta) {
-            return;
-        }
-
-        auto selectInfo = readMeta->SelectInfo;
-        Y_ABORT_UNLESS(selectInfo);
-        SelectStatsDelta += selectInfo->Stats();
-
-        for (const auto& portion : readMeta->SelectInfo->PortionsOrderedPK) {
-            const ui64 portionId = portion->GetPortion();
-            PortionUseCount[portionId]++;
-            auto tracker = portion->GetBlobsStorage()->GetBlobsTracker();
-            for (auto& rec : portion->Records) {
-                tracker->UseBlob(rec.BlobRange.BlobId);
-            }
-        }
-
-        auto insertStorage = StoragesManager->GetInsertOperator();
-        auto tracker = insertStorage->GetBlobsTracker();
-        for (const auto& committedBlob : readMeta->CommittedBlobs) {
-            tracker->UseBlob(committedBlob.GetBlobRange().GetBlobId());
-        }
-    }
+    [[nodiscard]] TConclusionStatus AddToInFlightRequest(const ui64 cookie, NOlap::NReader::TReadMetadataBase::TConstPtr readMetaBase, const NOlap::TVersionedIndex* index);
 
 private:
     std::shared_ptr StoragesManager;
     ui64 NextCookie{1};
-    THashMap> RequestsMeta;
+    THashMap> RequestsMeta;
     THashMap PortionUseCount;
     NOlap::TSelectInfo::TStats SelectStatsDelta;
 };
diff --git a/ydb/core/tx/columnshard/normalizer/abstract/abstract.cpp b/ydb/core/tx/columnshard/normalizer/abstract/abstract.cpp
index 470d01bb3d4c..99de629aeb39 100644
--- a/ydb/core/tx/columnshard/normalizer/abstract/abstract.cpp
+++ b/ydb/core/tx/columnshard/normalizer/abstract/abstract.cpp
@@ -1,13 +1,17 @@
 #include "abstract.h"
+#include 
+#include 
+
 
 namespace NKikimr::NOlap {
 
     void TNormalizationController::RegisterNormalizer(INormalizerComponent::TPtr normalizer) {
+        AFL_VERIFY(normalizer);
         Counters.emplace_back(normalizer->GetName());
         Normalizers.push_back(normalizer);
     }
 
-    const INormalizerComponent::TPtr& TNormalizationController::GetNormalizer() const {
+    const TNormalizationController::INormalizerComponent::TPtr& TNormalizationController::GetNormalizer() const {
         Y_ABORT_UNLESS(CurrentNormalizerIndex < Normalizers.size());
         return Normalizers[CurrentNormalizerIndex];
     }
@@ -17,7 +21,7 @@ namespace NKikimr::NOlap {
         return Counters[CurrentNormalizerIndex];
     }
 
-    bool TNormalizationController::IsNormalizationFinished() const {
+    bool TNormalizationController::TNormalizationController::IsNormalizationFinished() const {
         return CurrentNormalizerIndex >= Normalizers.size();
     }
 
@@ -25,9 +29,38 @@ namespace NKikimr::NOlap {
         if (IsNormalizationFinished()) {
             return false;
         }
-        Y_ABORT_UNLESS(!GetNormalizer()->WaitResult());
+        Y_ABORT_UNLESS(!GetNormalizer()->HasActiveTasks());
         GetCounters().OnNormalizerFinish();
         ++CurrentNormalizerIndex;
         return !IsNormalizationFinished();
     }
+
+    void TTrivialNormalizerTask::Start(const TNormalizationController& /* controller */, const TNormalizationContext& nCtx) {
+        TActorContext::AsActorContext().Send(nCtx.GetShardActor(), std::make_unique(Changes));
+    }
+
+    void TNormalizationController::UpdateControllerState(NIceDb::TNiceDb& db) {
+        NColumnShard::Schema::SaveSpecialValue(db, NColumnShard::Schema::EValueIds::LastNormalizerSequentialId, GetNormalizer()->GetSequentialId());
+    }
+
+    void TNormalizationController::InitNormalizers(const TInitContext& ctx) {
+        auto normalizers = GetEnumAllValues();
+        auto lastRegisteredNormalizer = ENormalizerSequentialId::Granules;
+        for (auto nType : normalizers) {
+            RegisterNormalizer(std::shared_ptr(INormalizerComponent::TFactory::Construct(nType, ctx)));
+            AFL_VERIFY(lastRegisteredNormalizer <= nType)("current", ToString(nType))("last", ToString(lastRegisteredNormalizer));
+            lastRegisteredNormalizer = nType;
+        }
+    }
+
+    void TNormalizationController::InitControllerState(NIceDb::TNiceDb& db) {
+        ui64 lastNormalizerId;
+        if (NColumnShard::Schema::GetSpecialValue(db, NColumnShard::Schema::EValueIds::LastNormalizerSequentialId, lastNormalizerId)) {
+            // We want to rerun all normalizers in case of binary rollback
+            if (lastNormalizerId <= GetLastNormalizerSequentialId()) {
+                LastAppliedNormalizerId = lastNormalizerId;
+            }
+        }
+    }
+
 }
diff --git a/ydb/core/tx/columnshard/normalizer/abstract/abstract.h b/ydb/core/tx/columnshard/normalizer/abstract/abstract.h
index 89e75a67e091..dad21751eb65 100644
--- a/ydb/core/tx/columnshard/normalizer/abstract/abstract.h
+++ b/ydb/core/tx/columnshard/normalizer/abstract/abstract.h
@@ -5,8 +5,12 @@
 
 #include 
 #include 
-
 #include 
+#include 
+
+namespace NKikimr::NIceDb {
+    class TNiceDb;
+}
 
 namespace NKikimr::NOlap {
 
@@ -46,11 +50,25 @@ namespace NKikimr::NOlap {
         }
     };
 
+    enum class ENormalizerSequentialId : ui32 {
+        Granules = 1,
+        Chunks,
+        PortionsCleaner,
+        TablesCleaner,
+        // PortionsMetadata
+    };
+
     class TNormalizationContext {
         YDB_ACCESSOR_DEF(TActorId, ResourceSubscribeActor);
-        YDB_ACCESSOR_DEF(TActorId, ColumnshardActor);
+        YDB_ACCESSOR_DEF(TActorId, ShardActor);
+        std::shared_ptr ResourcesGuard;
+    public:
+        void SetResourcesGuard(std::shared_ptr rg) {
+            ResourcesGuard = rg;
+        }
     };
 
+
     class TNormalizationController;
 
     class INormalizerTask {
@@ -66,48 +84,118 @@ namespace NKikimr::NOlap {
         using TPtr = std::shared_ptr;
         virtual ~INormalizerChanges() {}
 
-        virtual bool Apply(NTabletFlatExecutor::TTransactionContext& txc, const TNormalizationController& normalizationContext) const = 0;
+        virtual bool ApplyOnExecute(NTabletFlatExecutor::TTransactionContext& txc, const TNormalizationController& normalizationContext) const = 0;
+        virtual void ApplyOnComplete(const TNormalizationController& normalizationContext) const {
+            Y_UNUSED(normalizationContext);
+        }
+
+        virtual ui64 GetSize() const = 0;
     };
 
-    class INormalizerComponent {
+    class TTrivialNormalizerTask : public INormalizerTask {
+        INormalizerChanges::TPtr Changes;
     public:
-        using TPtr = std::shared_ptr;
-
-        virtual ~INormalizerComponent() {}
-
-        bool WaitResult() const {
-            return AtomicGet(ActiveTasksCount) > 0;
-        }
-
-        void OnResultReady() {
-            AFL_VERIFY(ActiveTasksCount > 0);
-            AtomicDecrement(ActiveTasksCount);
+        TTrivialNormalizerTask(const INormalizerChanges::TPtr& changes)
+            : Changes(changes)
+        {
+            AFL_VERIFY(Changes);
         }
 
-        virtual const TString& GetName() const = 0;
-        virtual TConclusion> Init(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) = 0;
-    protected:
-        TAtomic ActiveTasksCount = 0;
+        void Start(const TNormalizationController& /* controller */, const TNormalizationContext& /*nCtx*/) override;
     };
 
     class TNormalizationController {
+    public:
+        class TInitContext {
+            TIntrusiveConstPtr StorageInfo;
+        public:
+            TInitContext(TTabletStorageInfo* info)
+                : StorageInfo(info)
+            {}
+
+            TIntrusiveConstPtr GetStorageInfo() const {
+                return StorageInfo;
+            }
+        };
+
+        class INormalizerComponent {
+        public:
+            using TPtr = std::shared_ptr;
+            using TFactory = NObjectFactory::TParametrizedObjectFactory;
+
+            virtual ~INormalizerComponent() {}
+
+            bool HasActiveTasks() const {
+                return AtomicGet(ActiveTasksCount) > 0;
+            }
+
+            void OnResultReady() {
+                AFL_VERIFY(ActiveTasksCount > 0);
+                AtomicDecrement(ActiveTasksCount);
+            }
+
+            i64 GetActiveTasksCount() const {
+                return AtomicGet(ActiveTasksCount);
+            }
+
+            virtual ENormalizerSequentialId GetType() const = 0;
+
+            TString GetName() const {
+                return ToString(GetType());
+            }
+
+            ui32 GetSequentialId() const {
+                return (ui32) GetType();
+            }
+
+            TConclusion> Init(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) {
+                if (controller.HasLastAppliedNormalizerId() && controller.GetLastAppliedNormalizerIdUnsafe() >= GetSequentialId()) {
+                    return std::vector();
+                }
+                auto result = DoInit(controller, txc);
+                if (!result.IsSuccess()) {
+                    return result;
+                }
+                AtomicSet(ActiveTasksCount, result.GetResult().size());
+                return result;
+            }
+
+        private:
+            virtual TConclusion> DoInit(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) = 0;
+
+            TAtomic ActiveTasksCount = 0;
+        };
+        using TPtr = std::shared_ptr;
+
+    private:
         std::shared_ptr StoragesManager;
         NOlap::NResourceBroker::NSubscribe::TTaskContext TaskSubscription;
 
-        std::vector Normalizers;
+        std::vector Normalizers;
         ui64 CurrentNormalizerIndex = 0;
         std::vector Counters;
+        YDB_READONLY_OPT(ui32, LastAppliedNormalizerId);
+
+    private:
+        void RegisterNormalizer(INormalizerComponent::TPtr normalizer);
 
     public:
         TNormalizationController(std::shared_ptr storagesManager, const std::shared_ptr& counters)
             : StoragesManager(storagesManager)
-            , TaskSubscription("CS:NORMALIZER", counters) {}
+            , TaskSubscription("CS::NORMALIZER", counters) {}
 
         const NOlap::NResourceBroker::NSubscribe::TTaskContext& GetTaskSubscription() const {
             return TaskSubscription;
         }
 
-        void RegisterNormalizer(INormalizerComponent::TPtr normalizer);
+        void InitNormalizers(const TInitContext& ctx);
+        void UpdateControllerState(NIceDb::TNiceDb& db);
+        void InitControllerState(NIceDb::TNiceDb& db);
+
+        ui32 GetLastNormalizerSequentialId() {
+            AFL_VERIFY(!Normalizers.empty());
+            return Normalizers.back()->GetSequentialId();
+        }
 
         std::shared_ptr GetStoragesManager() const {
             AFL_VERIFY(!!StoragesManager);
@@ -117,7 +205,7 @@ namespace NKikimr::NOlap {
         TString DebugString() const {
             return TStringBuilder() << "normalizers_count=" << Normalizers.size()
                                     << ";current_normalizer_idx=" << CurrentNormalizerIndex
-                                    << ";current_normalizer=" << (CurrentNormalizerIndex < Normalizers.size()) ? Normalizers[CurrentNormalizerIndex]->GetName() : "";
+                                    << ";current_normalizer=" << (CurrentNormalizerIndex < Normalizers.size() ? Normalizers[CurrentNormalizerIndex]->GetName() : "");
         }
 
         const INormalizerComponent::TPtr& GetNormalizer() const;
diff --git a/ydb/core/tx/columnshard/normalizer/abstract/ya.make b/ydb/core/tx/columnshard/normalizer/abstract/ya.make
index 48572e5fe02f..5ba07d4d2395 100644
--- a/ydb/core/tx/columnshard/normalizer/abstract/ya.make
+++ b/ydb/core/tx/columnshard/normalizer/abstract/ya.make
@@ -4,6 +4,8 @@ SRCS(
     abstract.cpp
 )
 
+GENERATE_ENUM_SERIALIZATION(abstract.h)
+
 PEERDIR(
     ydb/core/tablet_flat
     ydb/core/tx/columnshard/blobs_action/abstract
diff --git a/ydb/core/tx/columnshard/normalizer/granule/normalizer.cpp b/ydb/core/tx/columnshard/normalizer/granule/normalizer.cpp
index 5eeaba2ae5af..081b40f2379e 100644
--- a/ydb/core/tx/columnshard/normalizer/granule/normalizer.cpp
+++ b/ydb/core/tx/columnshard/normalizer/granule/normalizer.cpp
@@ -31,7 +31,7 @@ class TGranulesNormalizer::TNormalizerResult : public INormalizerChanges {
     {}
 
 public:
-    bool Apply(NTabletFlatExecutor::TTransactionContext& txc, const TNormalizationController& /* normController */) const override {
+    bool ApplyOnExecute(NTabletFlatExecutor::TTransactionContext& txc, const TNormalizationController& /* normController */) const override {
         using namespace NColumnShard;
         NIceDb::TNiceDb db(txc.DB);
         ACFL_INFO("normalizer", "TGranulesNormalizer")("message", TStringBuilder() << "apply " << Chunks.size() << " chunks");
@@ -48,6 +48,10 @@ class TGranulesNormalizer::TNormalizerResult : public INormalizerChanges {
         return true;
     }
 
+    ui64 GetSize() const override {
+        return Chunks.size();
+    }
+
     static std::optional> Init(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) {
         using namespace NColumnShard;
         NIceDb::TNiceDb db(txc.DB);
@@ -126,28 +130,15 @@ class TGranulesNormalizer::TNormalizerResult : public INormalizerChanges {
 
 };
 
-class TGranulesNormalizerTask : public INormalizerTask {
-    INormalizerChanges::TPtr Changes;
-public:
-    TGranulesNormalizerTask(const INormalizerChanges::TPtr& changes)
-        : Changes(changes)
-    {}
-
-    void Start(const TNormalizationController& /* controller */, const TNormalizationContext& nCtx) override {
-        TActorContext::AsActorContext().Send(nCtx.GetColumnshardActor(), std::make_unique(Changes));
-    }
-};
-
-TConclusion> TGranulesNormalizer::Init(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) {
+TConclusion> TGranulesNormalizer::DoInit(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) {
     auto changes = TNormalizerResult::Init(controller, txc);
     if (!changes) {
         return TConclusionStatus::Fail("Not ready");;
     }
     std::vector tasks;
     for (auto&& c : *changes) {
-        tasks.emplace_back(std::make_shared(c));
+        tasks.emplace_back(std::make_shared(c));
     }
-    AtomicSet(ActiveTasksCount, tasks.size());
     return tasks;
 }
 
diff --git a/ydb/core/tx/columnshard/normalizer/granule/normalizer.h b/ydb/core/tx/columnshard/normalizer/granule/normalizer.h
index a3c78e4ba8e5..063f2298519c 100644
--- a/ydb/core/tx/columnshard/normalizer/granule/normalizer.h
+++ b/ydb/core/tx/columnshard/normalizer/granule/normalizer.h
@@ -6,15 +6,19 @@
 
 namespace NKikimr::NOlap {
 
-class TGranulesNormalizer: public NOlap::INormalizerComponent {
+class TGranulesNormalizer: public TNormalizationController::INormalizerComponent {
     class TNormalizerResult;
+
+    static inline INormalizerComponent::TFactory::TRegistrator Registrator = INormalizerComponent::TFactory::TRegistrator(ENormalizerSequentialId::Granules);
 public:
-    virtual const TString& GetName() const override {
-        const static TString name = "TGranulesNormalizer";
-        return name;
+    TGranulesNormalizer(const TNormalizationController::TInitContext&) {
+    }
+
+    virtual ENormalizerSequentialId GetType() const override {
+        return ENormalizerSequentialId::Granules;
     }
 
-    virtual TConclusion> Init(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) override;
+    virtual TConclusion> DoInit(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) override;
 };
 
 }
diff --git a/ydb/core/tx/columnshard/normalizer/granule/ya.make b/ydb/core/tx/columnshard/normalizer/granule/ya.make
index 8a8c7e5ab0aa..d44051621eb3 100644
--- a/ydb/core/tx/columnshard/normalizer/granule/ya.make
+++ b/ydb/core/tx/columnshard/normalizer/granule/ya.make
@@ -1,7 +1,7 @@
 LIBRARY()
 
 SRCS(
-    normalizer.cpp
+    GLOBAL normalizer.cpp
 )
 
 PEERDIR(
diff --git a/ydb/core/tx/columnshard/normalizer/portion/chunks.cpp b/ydb/core/tx/columnshard/normalizer/portion/chunks.cpp
index 6ed01b83baad..5fb16edcc0d1 100644
--- a/ydb/core/tx/columnshard/normalizer/portion/chunks.cpp
+++ b/ydb/core/tx/columnshard/normalizer/portion/chunks.cpp
@@ -15,7 +15,7 @@ class TChunksNormalizer::TNormalizerResult : public INormalizerChanges {
         : Chunks(std::move(chunks))
     {}
 
-    bool Apply(NTabletFlatExecutor::TTransactionContext& txc, const TNormalizationController& /* normController */) const override {
+    bool ApplyOnExecute(NTabletFlatExecutor::TTransactionContext& txc, const TNormalizationController& /* normController */) const override {
         using namespace NColumnShard;
         NIceDb::TNiceDb db(txc.DB);
 
@@ -34,13 +34,17 @@ class TChunksNormalizer::TNormalizerResult : public INormalizerChanges {
         }
         return true;
     }
+
+    ui64 GetSize() const override {
+        return Chunks.size();
+    }
 };
 
 class TRowsAndBytesChangesTask: public NConveyor::ITask {
 public:
     using TDataContainer = std::vector;
 private:
-    THashMap Blobs;
+    NBlobOperations::NRead::TCompositeReadBlobs Blobs;
     std::vector Chunks;
     TNormalizationContext NormContext;
 protected:
@@ -48,13 +52,12 @@ class TRowsAndBytesChangesTask: public NConveyor::ITask {
         for (auto&& chunkInfo : Chunks) {
             const auto& blobRange = chunkInfo.GetBlobRange();
 
-            auto blobIt = Blobs.find(blobRange);
-            Y_ABORT_UNLESS(blobIt != Blobs.end());
+            auto blobData = Blobs.Extract(IStoragesManager::DefaultStorageId, blobRange);
 
             auto columnLoader = chunkInfo.GetLoader();
             Y_ABORT_UNLESS(!!columnLoader);
 
-            TPortionInfo::TAssembleBlobInfo assembleBlob(blobIt->second);
+            TPortionInfo::TAssembleBlobInfo assembleBlob(blobData);
             auto batch = assembleBlob.BuildRecordBatch(*columnLoader);
             Y_ABORT_UNLESS(!!batch);
 
@@ -63,12 +66,12 @@ class TRowsAndBytesChangesTask: public NConveyor::ITask {
         }
 
         auto changes = std::make_shared(std::move(Chunks));
-        TActorContext::AsActorContext().Send(NormContext.GetColumnshardActor(), std::make_unique(changes));
+        TActorContext::AsActorContext().Send(NormContext.GetShardActor(), std::make_unique(changes));
         return true;
     }
 
 public:
-    TRowsAndBytesChangesTask(THashMap&& blobs, const TNormalizationContext& nCtx, std::vector&& chunks, THashMap&&)
+    TRowsAndBytesChangesTask(NBlobOperations::NRead::TCompositeReadBlobs&& blobs, const TNormalizationContext& nCtx, std::vector&& chunks, std::shared_ptr>)
         : Blobs(std::move(blobs))
         , Chunks(std::move(chunks))
         , NormContext(nCtx)
@@ -92,7 +95,7 @@ void TChunksNormalizer::TChunkInfo::InitSchema(const NColumnShard::TTablesManage
     Schema = tm.GetPrimaryIndexSafe().GetVersionedIndex().GetSchema(NOlap::TSnapshot(Key.GetPlanStep(), Key.GetTxId()));
 }
 
-TConclusion> TChunksNormalizer::Init(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) {
+TConclusion> TChunksNormalizer::DoInit(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) {
     using namespace NColumnShard;
     NIceDb::TNiceDb db(txc.DB);
 
@@ -152,7 +155,6 @@ TConclusion> TChunksNormalizer::Init(const TN
     if (package.size() > 0) {
         tasks.emplace_back(std::make_shared>(std::move(package)));
     }
-    AtomicSet(ActiveTasksCount, tasks.size());
     return tasks;
 }
 
diff --git a/ydb/core/tx/columnshard/normalizer/portion/chunks.h b/ydb/core/tx/columnshard/normalizer/portion/chunks.h
index d174b8903862..f272f956208a 100644
--- a/ydb/core/tx/columnshard/normalizer/portion/chunks.h
+++ b/ydb/core/tx/columnshard/normalizer/portion/chunks.h
@@ -12,7 +12,7 @@ namespace NKikimr::NColumnShard {
 
 namespace NKikimr::NOlap {
 
-    class TChunksNormalizer : public INormalizerComponent {
+    class TChunksNormalizer : public TNormalizationController::INormalizerComponent {
     public:
         class TNormalizerResult;
 
@@ -83,17 +83,17 @@ namespace NKikimr::NOlap {
             }
         };
 
+        static inline INormalizerComponent::TFactory::TRegistrator Registrator = INormalizerComponent::TFactory::TRegistrator(ENormalizerSequentialId::Chunks);
     public:
-        TChunksNormalizer(TTabletStorageInfo* info)
-            : DsGroupSelector(info)
+        TChunksNormalizer(const TNormalizationController::TInitContext& info)
+            : DsGroupSelector(info.GetStorageInfo())
         {}
 
-        virtual const TString& GetName() const override {
-            const static TString name = "TChunksNormalizer";
-            return name;
+        virtual ENormalizerSequentialId GetType() const override {
+            return ENormalizerSequentialId::Chunks;
         }
 
-        virtual TConclusion> Init(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) override;
+        virtual TConclusion> DoInit(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) override;
 
     private:
         NColumnShard::TBlobGroupSelector DsGroupSelector;
diff --git a/ydb/core/tx/columnshard/normalizer/portion/clean.cpp b/ydb/core/tx/columnshard/normalizer/portion/clean.cpp
new file mode 100644
index 000000000000..8ee71df72d25
--- /dev/null
+++ b/ydb/core/tx/columnshard/normalizer/portion/clean.cpp
@@ -0,0 +1,91 @@
+#include "clean.h"
+
+#include 
+#include 
+#include 
+#include 
+
+#include 
+
+
+namespace NKikimr::NOlap {
+
+class TBlobsRemovingResult : public INormalizerChanges {
+    std::shared_ptr RemovingAction;
+    std::vector> Portions;
+public:
+    TBlobsRemovingResult(std::shared_ptr removingAction, std::vector>&& portions)
+        : RemovingAction(removingAction)
+        , Portions(std::move(portions))
+    {}
+
+    bool ApplyOnExecute(NTabletFlatExecutor::TTransactionContext& txc, const TNormalizationController& /* normController */) const override {
+        NOlap::TBlobManagerDb blobManagerDb(txc.DB);
+        RemovingAction->OnExecuteTxAfterRemoving(blobManagerDb, true);
+
+        TDbWrapper db(txc.DB, nullptr);
+        for (auto&& portion : Portions) {
+            AFL_CRIT(NKikimrServices::TX_COLUMNSHARD)("message", "remove lost portion")("path_id", portion->GetPathId())("portion_id", portion->GetPortionId());
+            portion->RemoveFromDatabase(db);
+        }
+        return true;
+    }
+
+    void ApplyOnComplete(const TNormalizationController& /* normController */) const override {
+        RemovingAction->OnCompleteTxAfterRemoving(true);
+    }
+
+    ui64 GetSize() const override {
+        return Portions.size();
+    }
+};
+
+class TBlobsRemovingTask : public INormalizerTask {
+    std::vector Blobs;
+    std::vector> Portions;
+public:
+    TBlobsRemovingTask(std::vector&& blobs, std::vector>&& portions)
+        : Blobs(std::move(blobs))
+        , Portions(std::move(portions))
+    {}
+
+    void Start(const TNormalizationController& controller, const TNormalizationContext& nCtx) override {
+        controller.GetCounters().CountObjects(Blobs.size());
+        auto removeAction = controller.GetStoragesManager()->GetDefaultOperator()->StartDeclareRemovingAction(NBlobOperations::EConsumer::NORMALIZER);
+        for (auto&& blobId : Blobs) {
+            removeAction->DeclareSelfRemove(blobId);
+        }
+        TActorContext::AsActorContext().Send(nCtx.GetShardActor(), std::make_unique(std::make_shared(removeAction, std::move(Portions))));
+    }
+};
+
+
+bool TCleanPortionsNormalizer::CheckPortion(const NColumnShard::TTablesManager& tablesManager, const TPortionInfo& portionInfo) const {
+    return tablesManager.HasTable(portionInfo.GetAddress().GetPathId(), true);
+}
+
+INormalizerTask::TPtr TCleanPortionsNormalizer::BuildTask(std::vector>&& portions, std::shared_ptr> schemas) const {
+    std::vector blobIds;
+    THashMap> blobsByStorage;
+    for (auto&& portion : portions) {
+        auto schemaPtr = schemas->FindPtr(portion->GetPortionId());
+        portion->FillBlobIdsByStorage(blobsByStorage, schemaPtr->get()->GetIndexInfo());
+    }
+    for (auto&& [storageId, blobs] : blobsByStorage) {
+        if (storageId == NBlobOperations::TGlobal::DefaultStorageId) {
+            for (auto&& blobId : blobs) {
+                blobIds.emplace_back(blobId);
+            }
+        } else {
+            AFL_VERIFY(false)("details", "Invalid storage for normalizer");
+        }
+    }
+    return std::make_shared(std::move(blobIds), std::move(portions));
+}
+
+ TConclusion TCleanPortionsNormalizer::DoInitImpl(const TNormalizationController&, NTabletFlatExecutor::TTransactionContext&) {
+    return true;
+}
+
+
+}
diff --git a/ydb/core/tx/columnshard/normalizer/portion/clean.h b/ydb/core/tx/columnshard/normalizer/portion/clean.h
new file mode 100644
index 000000000000..dec0b6c8eacd
--- /dev/null
+++ b/ydb/core/tx/columnshard/normalizer/portion/clean.h
@@ -0,0 +1,39 @@
+#pragma once
+
+#include "normalizer.h"
+#include 
+#include 
+
+
+namespace NKikimr::NColumnShard {
+    class TTablesManager;
+}
+
+namespace NKikimr::NOlap {
+
+class TCleanPortionsNormalizer : public TPortionsNormalizerBase {
+    static inline TFactory::TRegistrator Registrator = TFactory::TRegistrator(ENormalizerSequentialId::PortionsCleaner);
+public:
+    class TNormalizerResult;
+    class TTask;
+
+public:
+    TCleanPortionsNormalizer(const TNormalizationController::TInitContext& info)
+        : TPortionsNormalizerBase(info)
+    {}
+
+    virtual ENormalizerSequentialId GetType() const override {
+        return ENormalizerSequentialId::PortionsCleaner;
+    }
+
+    virtual std::set GetColumnsFilter(const ISnapshotSchema::TPtr& /*schema*/) const override {
+        return {};
+    }
+
+    virtual INormalizerTask::TPtr BuildTask(std::vector>&& portions, std::shared_ptr> schemas) const override;
+    virtual TConclusion DoInitImpl(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) override;
+
+    virtual bool CheckPortion(const NColumnShard::TTablesManager& tablesManager, const TPortionInfo& portionInfo) const override;
+};
+
+}
diff --git a/ydb/core/tx/columnshard/normalizer/portion/min_max.cpp b/ydb/core/tx/columnshard/normalizer/portion/min_max.cpp
deleted file mode 100644
index efdaf4d95169..000000000000
--- a/ydb/core/tx/columnshard/normalizer/portion/min_max.cpp
+++ /dev/null
@@ -1,221 +0,0 @@
-#include "min_max.h"
-#include "normalizer.h"
-
-#include 
-#include 
-#include 
-
-#include 
-
-
-namespace NKikimr::NOlap {
-
-class TMinMaxSnapshotChangesTask: public NConveyor::ITask {
-public:
-    using TDataContainer = std::vector>;
-private:
-    THashMap Blobs;
-    TDataContainer Portions;
-    THashMap Schemas;
-    TNormalizationContext NormContext;
-protected:
-    virtual bool DoExecute() override {
-        Y_ABORT_UNLESS(!Schemas.empty());
-        auto pkColumnIds = Schemas.begin()->second->GetPkColumnsIds();
-        pkColumnIds.insert(TIndexInfo::GetSpecialColumnIds().begin(), TIndexInfo::GetSpecialColumnIds().end());
-
-        for (auto&& portionInfo : Portions) {
-            auto blobSchema = Schemas.FindPtr(portionInfo->GetPortionId());
-            THashMap blobsDataAssemble;
-            for (auto&& i : portionInfo->Records) {
-                auto blobIt = Blobs.find(i.BlobRange);
-                Y_ABORT_UNLESS(blobIt != Blobs.end());
-                blobsDataAssemble.emplace(i.BlobRange, blobIt->second);
-            }
-
-            AFL_VERIFY(!!blobSchema)("details", portionInfo->DebugString());
-            auto filteredSchema = std::make_shared(*blobSchema, pkColumnIds);
-            auto preparedBatch = portionInfo->PrepareForAssemble(**blobSchema, *filteredSchema, blobsDataAssemble);
-            auto batch = preparedBatch.Assemble();
-            Y_ABORT_UNLESS(!!batch);
-            portionInfo->AddMetadata(**blobSchema, batch, portionInfo->GetMeta().GetTierName());
-        }
-
-        auto changes = std::make_shared(std::move(Portions));
-        TActorContext::AsActorContext().Send(NormContext.GetColumnshardActor(), std::make_unique(changes));
-        return true;
-    }
-
-public:
-    TMinMaxSnapshotChangesTask(THashMap&& blobs, const TNormalizationContext& nCtx, TDataContainer&& portions, THashMap&& schemas)
-        : Blobs(std::move(blobs))
-        , Portions(std::move(portions))
-        , Schemas(std::move(schemas))
-        , NormContext(nCtx)
-    {}
-
-    virtual TString GetTaskClassIdentifier() const override {
-        const static TString name = "TMinMaxSnapshotChangesTask";
-        return name;
-    }
-
-    static void FillBlobRanges(std::shared_ptr readAction, const std::shared_ptr& portion) {
-        for (auto&& chunk : portion->Records) {
-            readAction->AddRange(chunk.BlobRange);
-        }
-    }
-
-    static ui64 GetMemSize(const std::shared_ptr& portion) {
-        return portion->GetRawBytes();
-    }
-
-    static bool CheckPortion(const TPortionInfo& portionInfo) {
-        if (!portionInfo.GetMeta().HasPrimaryKeyBorders() || !portionInfo.GetMeta().HasSnapshotMinMax()) {
-            return false;
-        }
-        return true;
-    }
-
-    static std::set GetColumnsFilter(const ISnapshotSchema::TPtr& schema) {
-        return schema->GetPkColumnsIds();
-    }
-};
-
-
-class TPortionsNormalizer::TNormalizerResult : public INormalizerChanges {
-    TMinMaxSnapshotChangesTask::TDataContainer Portions;
-public:
-    TNormalizerResult(TMinMaxSnapshotChangesTask::TDataContainer&& portions)
-        : Portions(std::move(portions))
-    {}
-
-    bool Apply(NTabletFlatExecutor::TTransactionContext& txc, const TNormalizationController& /* normController */) const override {
-        using namespace NColumnShard;
-        NIceDb::TNiceDb db(txc.DB);
-
-        for (auto&& portionInfo : Portions) {
-            for (auto&& chunk : portionInfo->Records) {
-                auto proto = portionInfo->GetMeta().SerializeToProto(chunk.ColumnId, chunk.Chunk);
-                if (!proto) {
-                    continue;
-                }
-                auto rowProto = chunk.GetMeta().SerializeToProto();
-                *rowProto.MutablePortionMeta() = std::move(*proto);
-
-                db.Table().Key(0, portionInfo->GetDeprecatedGranuleId(), chunk.ColumnId,
-                    portionInfo->GetMinSnapshot().GetPlanStep(), portionInfo->GetMinSnapshot().GetTxId(), portionInfo->GetPortion(), chunk.Chunk).Update(
-                    NIceDb::TUpdate(rowProto.SerializeAsString())
-                );
-            }
-        }
-        return true;
-    }
-};
-
-TConclusion> TPortionsNormalizer::Init(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) {
-    using namespace NColumnShard;
-    std::vector tasks;
-
-    NIceDb::TNiceDb db(txc.DB);
-
-    bool ready = true;
-    ready = ready & Schema::Precharge(db, txc.DB.GetScheme());
-    if (!ready) {
-        return TConclusionStatus::Fail("Not ready");
-    }
-
-    TTablesManager tablesManager(controller.GetStoragesManager(), 0);
-    if (!tablesManager.InitFromDB(db)) {
-        ACFL_ERROR("normalizer", "TPortionsNormalizer")("error", "can't initialize tables manager");
-        return TConclusionStatus::Fail("Can't load index");
-    }
-
-    if (!tablesManager.HasPrimaryIndex()) {
-        return tasks;
-    }
-
-    THashMap> portions;
-    THashMap schemas;
-    auto pkColumnIds = TMinMaxSnapshotChangesTask::GetColumnsFilter(tablesManager.GetPrimaryIndexSafe().GetVersionedIndex().GetLastSchema());
-
-    {
-        auto rowset = db.Table().Select();
-        if (!rowset.IsReady()) {
-            return TConclusionStatus::Fail("Not ready");
-        }
-
-        TSnapshot lastSnapshot(0, 0);
-        ISnapshotSchema::TPtr currentSchema;
-        auto initPortionCB = [&](const TPortionInfo& portion, const TColumnChunkLoadContext& loadContext) {
-            if (!currentSchema || lastSnapshot != portion.GetMinSnapshot()) {
-                currentSchema = tablesManager.GetPrimaryIndexSafe().GetVersionedIndex().GetSchema(portion.GetMinSnapshot());
-                lastSnapshot = portion.GetMinSnapshot();
-            }
-
-            AFL_VERIFY(portion.ValidSnapshotInfo())("details", portion.DebugString());
-            TColumnRecord rec(loadContext, currentSchema->GetIndexInfo());
-            if (!pkColumnIds.contains(rec.ColumnId)) {
-                return;
-            }
-            auto it = portions.find(portion.GetPortion());
-            auto portionMeta = loadContext.GetPortionMeta();
-            if (it == portions.end()) {
-                Y_ABORT_UNLESS(portion.Records.empty());
-                schemas[portion.GetPortionId()] = currentSchema;
-                auto portionNew = std::make_shared(portion);
-                portionNew->AddRecord(currentSchema->GetIndexInfo(), rec, portionMeta);
-                it = portions.emplace(portion.GetPortion(), portionNew).first;
-            } else {
-                AFL_VERIFY(it->second->IsEqualWithSnapshots(portion))("self", it->second->DebugString())("item", portion.DebugString());
-                it->second->AddRecord(currentSchema->GetIndexInfo(), rec, portionMeta);
-            }
-        };
-
-        while (!rowset.EndOfSet()) {
-            TPortionInfo portion = TPortionInfo::BuildEmpty();
-            auto index = rowset.GetValue();
-            Y_ABORT_UNLESS(index == 0);
-
-            portion.SetPathId(rowset.GetValue());
-
-            portion.SetMinSnapshot(rowset.GetValue(), rowset.GetValue());
-            portion.SetPortion(rowset.GetValue());
-            portion.SetDeprecatedGranuleId(rowset.GetValue());
-            portion.SetRemoveSnapshot(rowset.GetValue(), rowset.GetValue());
-
-            NOlap::TColumnChunkLoadContext chunkLoadContext(rowset, &DsGroupSelector);
-            initPortionCB(portion, chunkLoadContext);
-
-            if (!rowset.Next()) {
-                return TConclusionStatus::Fail("Not ready");
-            }
-        }
-    }
-
-    std::vector> package;
-    package.reserve(100);
-
-    ui64 brokenPortioncCount = 0;
-    for (auto&& portion : portions) {
-        if (TMinMaxSnapshotChangesTask::CheckPortion(*portion.second)) {
-            continue;
-        }
-        ++brokenPortioncCount;
-        package.emplace_back(portion.second);
-        if (package.size() == 100) {
-            std::vector> local;
-            local.swap(package);
-            tasks.emplace_back(std::make_shared>(std::move(local), schemas));
-        }
-    }
-
-    if (package.size() > 0) {
-        tasks.emplace_back(std::make_shared>(std::move(package), schemas));
-    }
-
-    AtomicSet(ActiveTasksCount, tasks.size());
-    ACFL_INFO("normalizer", "TPortionsNormalizer")("message", TStringBuilder() << brokenPortioncCount << " portions found");
-    return tasks;
-}
-
-}
diff --git a/ydb/core/tx/columnshard/normalizer/portion/min_max.h b/ydb/core/tx/columnshard/normalizer/portion/min_max.h
deleted file mode 100644
index 6b7f8cd1eb97..000000000000
--- a/ydb/core/tx/columnshard/normalizer/portion/min_max.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#pragma once
-
-#include 
-#include 
-
-#include 
-
-
-namespace NKikimr::NColumnShard {
-    class TTablesManager;
-}
-
-namespace NKikimr::NOlap {
-
-class TPortionsNormalizer : public INormalizerComponent {
-public:
-    class TNormalizerResult;
-
-public:
-    TPortionsNormalizer(TTabletStorageInfo* info)
-        : DsGroupSelector(info)
-    {}
-
-    virtual const TString& GetName() const override {
-        const static TString name = "TPortionsNormalizer";
-        return name;
-    }
-
-    virtual TConclusion> Init(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) override;
-
-private:
-    NColumnShard::TBlobGroupSelector DsGroupSelector;
-};
-
-}
diff --git a/ydb/core/tx/columnshard/normalizer/portion/normalizer.cpp b/ydb/core/tx/columnshard/normalizer/portion/normalizer.cpp
index 2102bd3260f7..c1a3dc6399fb 100644
--- a/ydb/core/tx/columnshard/normalizer/portion/normalizer.cpp
+++ b/ydb/core/tx/columnshard/normalizer/portion/normalizer.cpp
@@ -1,5 +1,111 @@
 #include "normalizer.h"
 
+#include 
+#include 
+#include 
+
 namespace NKikimr::NOlap {
-    
+
+TConclusion> TPortionsNormalizerBase::DoInit(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) {
+    auto initRes = DoInitImpl(controller,txc);
+
+    if (initRes.IsFail()) {
+        return initRes;
+    }
+
+    using namespace NColumnShard;
+
+    NIceDb::TNiceDb db(txc.DB);
+    bool ready = true;
+    ready = ready & Schema::Precharge(db, txc.DB.GetScheme());
+    if (!ready) {
+        return TConclusionStatus::Fail("Not ready");
+    }
+
+    NColumnShard::TTablesManager tablesManager(controller.GetStoragesManager(), 0);
+    if (!tablesManager.InitFromDB(db)) {
+        ACFL_ERROR("normalizer", "TPortionsNormalizer")("error", "can't initialize tables manager");
+        return TConclusionStatus::Fail("Can't load index");
+    }
+
+    std::vector tasks;
+    if (!tablesManager.HasPrimaryIndex()) {
+        return tasks;
+    }
+
+    auto columnsFilter = GetColumnsFilter(tablesManager.GetPrimaryIndexSafe().GetVersionedIndex().GetLastSchema());
+
+    THashMap> portions;
+    auto schemas = std::make_shared>();
+
+    {
+        auto rowset = db.Table().Select();
+        if (!rowset.IsReady()) {
+            return TConclusionStatus::Fail("Not ready");
+        }
+
+        TPortionInfo::TSchemaCursor schema(tablesManager.GetPrimaryIndexSafe().GetVersionedIndex());
+        auto initPortionCB = [&](const TPortionInfo& portion, const TColumnChunkLoadContext& loadContext) {
+            auto currentSchema = schema.GetSchema(portion);
+            AFL_VERIFY(portion.ValidSnapshotInfo())("details", portion.DebugString());
+
+            if (!columnsFilter.empty() && !columnsFilter.contains(loadContext.GetAddress().GetColumnId())) {
+                return;
+            }
+            auto it = portions.find(portion.GetPortionId());
+            if (it == portions.end()) {
+                Y_ABORT_UNLESS(portion.Records.empty());
+                (*schemas)[portion.GetPortionId()] = currentSchema;
+                it = portions.emplace(portion.GetPortionId(), std::make_shared(portion)).first;
+            }
+            TColumnRecord rec(it->second->RegisterBlobId(loadContext.GetBlobRange().GetBlobId()), loadContext, currentSchema->GetIndexInfo().GetColumnFeaturesVerified(loadContext.GetAddress().GetColumnId()));
+            AFL_VERIFY(it->second->IsEqualWithSnapshots(portion))("self", it->second->DebugString())("item", portion.DebugString());
+            auto portionMeta = loadContext.GetPortionMeta();
+            it->second->AddRecord(currentSchema->GetIndexInfo(), rec, portionMeta);
+        };
+
+        while (!rowset.EndOfSet()) {
+            TPortionInfo portion = TPortionInfo::BuildEmpty();
+            auto index = rowset.GetValue();
+            Y_ABORT_UNLESS(index == 0);
+
+            portion.SetPathId(rowset.GetValue());
+            portion.SetMinSnapshotDeprecated(NOlap::TSnapshot(rowset.GetValue(), rowset.GetValue()));
+            portion.SetPortion(rowset.GetValue());
+            portion.SetDeprecatedGranuleId(rowset.GetValue());
+            portion.SetRemoveSnapshot(rowset.GetValue(), rowset.GetValue());
+
+            NOlap::TColumnChunkLoadContext chunkLoadContext(rowset, &DsGroupSelector);
+            initPortionCB(portion, chunkLoadContext);
+
+            if (!rowset.Next()) {
+                return TConclusionStatus::Fail("Not ready");
+            }
+        }
+    }
+
+    std::vector> package;
+    package.reserve(100);
+
+    ui64 brokenPortioncCount = 0;
+    for (auto&& [_, portionInfo] : portions) {
+        if (CheckPortion(tablesManager,  *portionInfo)) {
+            continue;
+        }
+        ++brokenPortioncCount;
+        package.emplace_back(portionInfo);
+        if (package.size() == 1000) {
+            std::vector> local;
+            local.swap(package);
+            tasks.emplace_back(BuildTask(std::move(local), schemas));
+        }
+    }
+
+    if (package.size() > 0) {
+        tasks.emplace_back(BuildTask(std::move(package), schemas));
+    }
+    ACFL_INFO("normalizer", "TPortionsNormalizer")("message", TStringBuilder() << brokenPortioncCount << " portions found");
+    return tasks;
+}
+
 }
diff --git a/ydb/core/tx/columnshard/normalizer/portion/normalizer.h b/ydb/core/tx/columnshard/normalizer/portion/normalizer.h
index 5cb952f68ae1..574a1c212873 100644
--- a/ydb/core/tx/columnshard/normalizer/portion/normalizer.h
+++ b/ydb/core/tx/columnshard/normalizer/portion/normalizer.h
@@ -2,6 +2,7 @@
 
 #include 
 #include 
+#include 
 
 #include 
 #include 
@@ -11,6 +12,9 @@
 #include 
 
 
+namespace NKikimr::NColumnShard {
+    class TTablesManager;
+}
 namespace NKikimr::NOlap {
 
 template 
@@ -18,11 +22,11 @@ class TReadPortionsTask: public NOlap::NBlobOperations::NRead::ITask {
 private:
     using TBase = NOlap::NBlobOperations::NRead::ITask;
     typename TConveyorTask::TDataContainer Data;
-    THashMap Schemas;
+    std::shared_ptr> Schemas;
     TNormalizationContext NormContext;
 
 public:
-    TReadPortionsTask(const TNormalizationContext& nCtx, const std::vector>& actions, typename TConveyorTask::TDataContainer&& data, THashMap&& schemas)
+     TReadPortionsTask(const TNormalizationContext& nCtx, const std::vector>& actions, typename TConveyorTask::TDataContainer&& data, std::shared_ptr> schemas)
         : TBase(actions, "CS::NORMALIZER")
         , Data(std::move(data))
         , Schemas(std::move(schemas))
@@ -32,13 +36,13 @@ class TReadPortionsTask: public NOlap::NBlobOperations::NRead::ITask {
 
 protected:
     virtual void DoOnDataReady(const std::shared_ptr& resourcesGuard) override {
-        Y_UNUSED(resourcesGuard);
-        std::shared_ptr task = std::make_shared(std::move(ExtractBlobsData()), NormContext, std::move(Data), std::move(Schemas));
+        NormContext.SetResourcesGuard(resourcesGuard);
+        std::shared_ptr task = std::make_shared(std::move(ExtractBlobsData()), NormContext, std::move(Data), Schemas);
         NConveyor::TCompServiceOperator::SendTaskToExecute(task);
     }
 
-    virtual bool DoOnError(const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status) override {
-        Y_UNUSED(status, range);
+    virtual bool DoOnError(const TString& storageId, const TBlobRange& range, const IBlobsReadingAction::TErrorStatus& status) override {
+        Y_UNUSED(status, range, storageId);
         return false;
     }
 
@@ -49,20 +53,20 @@ class TReadPortionsTask: public NOlap::NBlobOperations::NRead::ITask {
 template 
 class TPortionsNormalizerTask : public INormalizerTask {
     typename TConveyorTask::TDataContainer Package;
-    THashMap Schemas;
+    std::shared_ptr> Schemas;
 public:
     TPortionsNormalizerTask(typename TConveyorTask::TDataContainer&& package)
         : Package(std::move(package))
     {}
 
-    TPortionsNormalizerTask(typename TConveyorTask::TDataContainer&& package, const THashMap& schemas)
+    TPortionsNormalizerTask(typename TConveyorTask::TDataContainer&& package, const std::shared_ptr> schemas)
         : Package(std::move(package))
         , Schemas(schemas)
     {}
 
     void Start(const TNormalizationController& controller, const TNormalizationContext& nCtx) override {
         controller.GetCounters().CountObjects(Package.size());
-        auto readingAction = controller.GetStoragesManager()->GetInsertOperator()->StartReadingAction("CS::NORMALIZER");
+        auto readingAction = controller.GetStoragesManager()->GetInsertOperator()->StartReadingAction(NBlobOperations::EConsumer::NORMALIZER);
         ui64 memSize = 0;
         for (auto&& data : Package) {
             TConveyorTask::FillBlobRanges(readingAction, data);
@@ -71,7 +75,30 @@ class TPortionsNormalizerTask : public INormalizerTask {
         std::vector> actions = {readingAction};
         NOlap::NResourceBroker::NSubscribe::ITask::StartResourceSubscription(
             nCtx.GetResourceSubscribeActor(),std::make_shared(
-                    std::make_shared>( nCtx, actions, std::move(Package), std::move(Schemas) ), 1, memSize, "CS::NORMALIZER", controller.GetTaskSubscription()));
+                    std::make_shared>(nCtx, actions, std::move(Package), Schemas), 1, memSize, "CS::NORMALIZER", controller.GetTaskSubscription()));
+    }
+};
+
+class TPortionsNormalizerBase : public TNormalizationController::INormalizerComponent {
+public:
+    TPortionsNormalizerBase(const TNormalizationController::TInitContext& info)
+        : DsGroupSelector(info.GetStorageInfo())
+    {}
+
+    virtual TConclusion> DoInit(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) override final;
+
+protected:
+    virtual INormalizerTask::TPtr BuildTask(std::vector>&& portions, std::shared_ptr> schemas) const = 0;
+    virtual TConclusion DoInitImpl(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc)  = 0;
+
+    virtual bool CheckPortion(const NColumnShard::TTablesManager& tablesManager, const TPortionInfo& /*portionInfo*/) const = 0;
+
+    virtual std::set GetColumnsFilter(const ISnapshotSchema::TPtr& schema) const {
+        return schema->GetPkColumnsIds();
     }
+
+private:
+    NColumnShard::TBlobGroupSelector DsGroupSelector;
 };
+
 }
diff --git a/ydb/core/tx/columnshard/normalizer/portion/portion.cpp b/ydb/core/tx/columnshard/normalizer/portion/portion.cpp
new file mode 100644
index 000000000000..739715f44125
--- /dev/null
+++ b/ydb/core/tx/columnshard/normalizer/portion/portion.cpp
@@ -0,0 +1,75 @@
+#include "portion.h"
+
+#include 
+#include 
+#include 
+
+#include 
+
+
+namespace NKikimr::NOlap {
+
+class TPortionsNormalizer::TNormalizerResult : public INormalizerChanges {
+    std::vector> Portions;
+    std::shared_ptr> Schemas;
+public:
+    TNormalizerResult(std::vector>&& portions, std::shared_ptr> schemas)
+        : Portions(std::move(portions))
+        , Schemas(schemas)
+    {}
+
+    bool ApplyOnExecute(NTabletFlatExecutor::TTransactionContext& txc, const TNormalizationController& /* normController */) const override {
+        using namespace NColumnShard;
+        TDbWrapper db(txc.DB, nullptr);
+
+        for (auto&& portionInfo : Portions) {
+            auto schema = Schemas->FindPtr(portionInfo->GetPortionId());
+            AFL_VERIFY(!!schema)("portion_id", portionInfo->GetPortionId());
+            portionInfo->SaveToDatabase(db, (*schema)->GetIndexInfo().GetPKFirstColumnId(), true);
+        }
+        return true;
+    }
+
+    ui64 GetSize() const override {
+        return Portions.size();
+    }
+};
+
+bool TPortionsNormalizer::CheckPortion(const NColumnShard::TTablesManager&, const TPortionInfo& portionInfo) const {
+    return KnownPortions.contains(portionInfo.GetAddress());
+}
+
+INormalizerTask::TPtr TPortionsNormalizer::BuildTask(std::vector>&& portions, std::shared_ptr> schemas) const {
+    return std::make_shared(std::make_shared(std::move(portions), schemas));
+}
+
+ TConclusion TPortionsNormalizer::DoInitImpl(const TNormalizationController&, NTabletFlatExecutor::TTransactionContext& txc) {
+    using namespace NColumnShard;
+
+    NIceDb::TNiceDb db(txc.DB);
+    bool ready = true;
+    ready = ready & Schema::Precharge(db, txc.DB.GetScheme());
+    if (!ready) {
+        return TConclusionStatus::Fail("Not ready");
+    }
+
+    {
+        auto rowset = db.Table().Select();
+        if (!rowset.IsReady()) {
+            return TConclusionStatus::Fail("Not ready");
+        }
+
+        while (!rowset.EndOfSet()) {
+            TPortionAddress portionAddr(rowset.GetValue(), rowset.GetValue());
+            KnownPortions.insert(portionAddr);
+            if (!rowset.Next()) {
+                return TConclusionStatus::Fail("Not ready");
+            }
+        }
+    }
+
+    return true;
+}
+
+
+}
diff --git a/ydb/core/tx/columnshard/normalizer/portion/portion.h b/ydb/core/tx/columnshard/normalizer/portion/portion.h
new file mode 100644
index 000000000000..505d6fe8d90a
--- /dev/null
+++ b/ydb/core/tx/columnshard/normalizer/portion/portion.h
@@ -0,0 +1,39 @@
+#pragma once
+
+#include "normalizer.h"
+#include 
+#include 
+
+
+namespace NKikimr::NColumnShard {
+    class TTablesManager;
+}
+
+namespace NKikimr::NOlap {
+
+class TPortionsNormalizer : public TPortionsNormalizerBase {
+    static inline TFactory::TRegistrator Registrator = TFactory::TRegistrator(ENormalizerSequentialId::PortionsMetadata);
+public:
+    class TNormalizerResult;
+    class TTask;
+
+public:
+    TPortionsNormalizer(const TNormalizationController::TInitContext& info)
+        : TPortionsNormalizerBase(info)
+    {}
+
+    virtual ENormalizerSequentialId GetType() const override {
+        return ENormalizerSequentialId::PortionsMetadata;
+    }
+
+    virtual INormalizerTask::TPtr BuildTask(std::vector>&& portions, std::shared_ptr> schemas) const override;
+    virtual TConclusion DoInitImpl(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) override;
+
+    virtual bool CheckPortion(const NColumnShard::TTablesManager& tablesManager, const TPortionInfo& portionInfo) const override;
+
+private:
+    THashSet KnownPortions;
+
+};
+
+}
diff --git a/ydb/core/tx/columnshard/normalizer/portion/ya.make b/ydb/core/tx/columnshard/normalizer/portion/ya.make
index 2dd2475a1987..9f6a67d026d7 100644
--- a/ydb/core/tx/columnshard/normalizer/portion/ya.make
+++ b/ydb/core/tx/columnshard/normalizer/portion/ya.make
@@ -2,8 +2,8 @@ LIBRARY()
 
 SRCS(
     normalizer.cpp
-    min_max.cpp
-    chunks.cpp
+    GLOBAL chunks.cpp
+    GLOBAL clean.cpp
 )
 
 PEERDIR(
diff --git a/ydb/core/tx/columnshard/normalizer/tables/normalizer.cpp b/ydb/core/tx/columnshard/normalizer/tables/normalizer.cpp
new file mode 100644
index 000000000000..63bd4c027edf
--- /dev/null
+++ b/ydb/core/tx/columnshard/normalizer/tables/normalizer.cpp
@@ -0,0 +1,141 @@
+#include "normalizer.h"
+
+#include 
+
+namespace NKikimr::NOlap {
+
+class TRemovedTablesNormalizer::TNormalizerResult : public INormalizerChanges {
+    struct TPathInfo {
+        ui64 PathId;
+        ui64 Step;
+        ui64 TxId;
+    };
+
+    std::vector PathIds;
+
+public:
+    TNormalizerResult(std::vector&& pathIds)
+        : PathIds(std::move(pathIds))
+    {}
+
+public:
+    bool ApplyOnExecute(NTabletFlatExecutor::TTransactionContext& txc, const TNormalizationController& /* normController */) const override {
+        using namespace NColumnShard;
+        NIceDb::TNiceDb db(txc.DB);
+
+        for (auto&& pathInfo: PathIds) {
+            db.Table().Key(pathInfo.PathId, pathInfo.Step, pathInfo.TxId).Delete();
+            db.Table().Key(pathInfo.PathId).Delete();
+        }
+        return true;
+    }
+
+    ui64 GetSize() const override {
+        return PathIds.size();
+    }
+
+    static std::optional> Init(NTabletFlatExecutor::TTransactionContext& txc) {
+        using namespace NColumnShard;
+        NIceDb::TNiceDb db(txc.DB);
+
+        bool ready = true;
+        ready = ready & Schema::Precharge(db, txc.DB.GetScheme());
+        ready = ready & Schema::Precharge(db, txc.DB.GetScheme());
+        ready = ready & Schema::Precharge(db, txc.DB.GetScheme());
+        if (!ready) {
+            return std::nullopt;
+        }
+
+        std::set notEmptyPaths;
+        {
+            auto rowset = db.Table().Select();
+            if (!rowset.IsReady()) {
+                return std::nullopt;
+            }
+
+            while (!rowset.EndOfSet()) {
+                const auto pathId = rowset.GetValue();
+                notEmptyPaths.emplace(pathId);
+
+                if (!rowset.Next()) {
+                    return std::nullopt;
+                }
+            }
+        }
+
+
+        std::set droppedTables;
+        {
+            auto rowset = db.Table().Select();
+            if (!rowset.IsReady()) {
+                return std::nullopt;
+            }
+
+            while (!rowset.EndOfSet()) {
+                const auto pathId = rowset.GetValue();
+                const NOlap::TSnapshot dropSnapshot(rowset.GetValue(), rowset.GetValue());
+
+                if (dropSnapshot.Valid() && !notEmptyPaths.contains(pathId)) {
+                    droppedTables.emplace(pathId);
+                }
+
+                if (!rowset.Next()) {
+                    return std::nullopt;
+                }
+            }
+        }
+
+        std::vector changes;
+        ui64 fullCount = 0;
+
+        {
+            auto rowset = db.Table().Select();
+            if (!rowset.IsReady()) {
+                return std::nullopt;
+            }
+
+            std::vector toRemove;
+            while (!rowset.EndOfSet()) {
+                TPathInfo pathInfo;
+                pathInfo.PathId = rowset.GetValue();
+                if (droppedTables.contains(pathInfo.PathId)) {
+                    pathInfo.Step = rowset.GetValue();
+                    pathInfo.TxId = rowset.GetValue();
+                    toRemove.emplace_back(pathInfo);
+                    ++fullCount;
+                }
+
+                if (toRemove.size() == 10000) {
+                    changes.emplace_back(std::make_shared(std::move(toRemove)));
+                    toRemove.clear();
+                }
+
+                if (!rowset.Next()) {
+                    return std::nullopt;
+                }
+            }
+
+            if (toRemove.size() > 0) {
+                changes.emplace_back(std::make_shared(std::move(toRemove)));
+            }
+        }
+
+        ACFL_INFO("normalizer", "TGranulesNormalizer")("message", TStringBuilder() << fullCount << " chunks found");
+        return changes;
+    }
+
+};
+
+TConclusion> TRemovedTablesNormalizer::DoInit(const TNormalizationController& /*controller*/, NTabletFlatExecutor::TTransactionContext& txc) {
+    auto changes = TNormalizerResult::Init(txc);
+    if (!changes) {
+        return TConclusionStatus::Fail("Not ready");;
+    }
+    std::vector tasks;
+    for (auto&& c : *changes) {
+        tasks.emplace_back(std::make_shared(c));
+    }
+    return tasks;
+}
+
+}
diff --git a/ydb/core/tx/columnshard/normalizer/tables/normalizer.h b/ydb/core/tx/columnshard/normalizer/tables/normalizer.h
new file mode 100644
index 000000000000..b22b6e39b21d
--- /dev/null
+++ b/ydb/core/tx/columnshard/normalizer/tables/normalizer.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include 
+#include 
+
+
+namespace NKikimr::NOlap {
+
+class TRemovedTablesNormalizer: public TNormalizationController::INormalizerComponent {
+    static inline INormalizerComponent::TFactory::TRegistrator Registrator = INormalizerComponent::TFactory::TRegistrator(ENormalizerSequentialId::TablesCleaner);
+    class TNormalizerResult;
+public:
+    TRemovedTablesNormalizer(const TNormalizationController::TInitContext&)
+    {}
+
+    virtual ENormalizerSequentialId GetType() const override {
+        return ENormalizerSequentialId::TablesCleaner;
+    }
+
+    virtual TConclusion> DoInit(const TNormalizationController& controller, NTabletFlatExecutor::TTransactionContext& txc) override;
+};
+
+}
diff --git a/ydb/core/tx/columnshard/normalizer/tables/ya.make b/ydb/core/tx/columnshard/normalizer/tables/ya.make
new file mode 100644
index 000000000000..d44051621eb3
--- /dev/null
+++ b/ydb/core/tx/columnshard/normalizer/tables/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+    GLOBAL normalizer.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/normalizer/abstract
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/operations/write.cpp b/ydb/core/tx/columnshard/operations/write.cpp
index b580b2c2f340..38007b1f96a3 100644
--- a/ydb/core/tx/columnshard/operations/write.cpp
+++ b/ydb/core/tx/columnshard/operations/write.cpp
@@ -13,11 +13,12 @@
 
 namespace NKikimr::NColumnShard {
 
-    TWriteOperation::TWriteOperation(const TWriteId writeId, const ui64 txId, const EOperationStatus& status, const TInstant createdAt)
+    TWriteOperation::TWriteOperation(const TWriteId writeId, const ui64 lockId, const ui64 cookie, const EOperationStatus& status, const TInstant createdAt)
         : Status(status)
         , CreatedAt(createdAt)
         , WriteId(writeId)
-        , TxId(txId)
+        , LockId(lockId)
+        , Cookie(cookie)
     {
     }
 
@@ -26,7 +27,8 @@ namespace NKikimr::NColumnShard {
 
         NEvWrite::TWriteMeta writeMeta((ui64)WriteId, tableId, source);
         std::shared_ptr task = std::make_shared(owner.TabletID(), ctx.SelfID, owner.BufferizationWriteActorId,
-            NEvWrite::TWriteData(writeMeta, data, owner.TablesManager.GetPrimaryIndex()->GetReplaceKey(), owner.StoragesManager->GetInsertOperator()->StartWritingAction("WRITING_OPERATOR")));
+            NEvWrite::TWriteData(writeMeta, data, owner.TablesManager.GetPrimaryIndex()->GetReplaceKey(),
+                owner.StoragesManager->GetInsertOperator()->StartWritingAction(NOlap::NBlobOperations::EConsumer::WRITING_OPERATOR)));
         NConveyor::TCompServiceOperator::SendTaskToExecute(task);
 
         Status = EOperationStatus::Started;
@@ -57,8 +59,21 @@ namespace NKikimr::NColumnShard {
         Y_ABORT_UNLESS(Status == EOperationStatus::Started);
         Status = EOperationStatus::Prepared;
         GlobalWriteIds = globalWriteIds;
+
         NIceDb::TNiceDb db(txc.DB);
-        Schema::Operations_Write(db, *this);
+        NKikimrTxColumnShard::TInternalOperationData proto;
+        ToProto(proto);
+
+        TString metadata;
+        Y_ABORT_UNLESS(proto.SerializeToString(&metadata));
+
+        db.Table().Key((ui64)WriteId).Update(
+            NIceDb::TUpdate((ui32)Status),
+            NIceDb::TUpdate(CreatedAt.Seconds()),
+            NIceDb::TUpdate(metadata),
+            NIceDb::TUpdate(LockId),
+            NIceDb::TUpdate(Cookie)
+        );
     }
 
     void TWriteOperation::ToProto(NKikimrTxColumnShard::TInternalOperationData& proto) const  {
@@ -86,46 +101,67 @@ namespace NKikimr::NColumnShard {
 
     bool TOperationsManager::Load(NTabletFlatExecutor::TTransactionContext& txc) {
         NIceDb::TNiceDb db(txc.DB);
-        auto rowset = db.Table().Select();
-        if (!rowset.IsReady()) {
-            return false;
-        }
-
-        while (!rowset.EndOfSet()) {
-            const TWriteId writeId = (TWriteId) rowset.GetValue();
-            const ui64 createdAtSec = rowset.GetValue();
-            const ui64 txId = rowset.GetValue();
-            const TString metadata = rowset.GetValue();
-            NKikimrTxColumnShard::TInternalOperationData metaProto;
-            Y_ABORT_UNLESS(metaProto.ParseFromString(metadata));
-            const EOperationStatus status = (EOperationStatus) rowset.GetValue();
-
-            auto operation = std::make_shared(writeId, txId, status, TInstant::Seconds(createdAtSec));
-            operation->FromProto(metaProto);
-
-            Y_ABORT_UNLESS(operation->GetStatus() != EOperationStatus::Draft);
-
-            auto [_, isOk] = Operations.emplace(operation->GetWriteId(), operation);
-            if (!isOk) {
-                AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "duplicated_operation")("operation", *operation);
+        {
+            auto rowset = db.Table().Select();
+            if (!rowset.IsReady()) {
                 return false;
             }
-            Transactions[txId].push_back(operation->GetWriteId());
-            LastWriteId = std::max(LastWriteId, operation->GetWriteId());
-            if (!rowset.Next()) {
+
+            while (!rowset.EndOfSet()) {
+                const TWriteId writeId = (TWriteId) rowset.GetValue();
+                const ui64 createdAtSec = rowset.GetValue();
+                const ui64 lockId = rowset.GetValue();
+                const ui64 cookie = rowset.GetValueOrDefault(0);
+                const TString metadata = rowset.GetValue();
+                const EOperationStatus status = (EOperationStatus) rowset.GetValue();
+
+                NKikimrTxColumnShard::TInternalOperationData metaProto;
+                Y_ABORT_UNLESS(metaProto.ParseFromString(metadata));
+
+                auto operation = std::make_shared(writeId, lockId, cookie, status, TInstant::Seconds(createdAtSec));
+                operation->FromProto(metaProto);
+                AFL_VERIFY(operation->GetStatus() != EOperationStatus::Draft);
+
+                auto [_, isOk] = Operations.emplace(operation->GetWriteId(), operation);
+                if (!isOk) {
+                    AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "duplicated_operation")("operation", *operation);
+                    return false;
+                }
+                Locks[lockId].push_back(operation->GetWriteId());
+                LastWriteId = std::max(LastWriteId, operation->GetWriteId());
+                if (!rowset.Next()) {
+                    return false;
+                }
+            }
+        }
+        {
+            auto rowset = db.Table().Select();
+            if (!rowset.IsReady()) {
                 return false;
             }
+
+            while (!rowset.EndOfSet()) {
+                const ui64 lockId = rowset.GetValue();
+                const ui64 txId = rowset.GetValue();
+                AFL_VERIFY(Locks.contains(lockId))("lock_id", lockId);
+                Tx2Lock[txId] = lockId;
+                 if (!rowset.Next()) {
+                    return false;
+                }
+            }
         }
         return true;
     }
 
     bool TOperationsManager::CommitTransaction(TColumnShard& owner, const ui64 txId, NTabletFlatExecutor::TTransactionContext& txc, const NOlap::TSnapshot& snapshot) {
-        TLogContextGuard gLogging(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD_SCAN)("tx_id", txId)("event", "transaction_commit_fails"));
-        auto tIt = Transactions.find(txId);
-        if (tIt == Transactions.end()) {
-            AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("details", "skip_unknown_transaction");
+        TLogContextGuard gLogging(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tx_id", txId));
+        auto lockId = GetLockForTx(txId);
+        if (!lockId) {
+            ACFL_ERROR("details", "unknown_transaction");
             return true;
         }
+        auto tIt = Locks.find(*lockId);
+        AFL_VERIFY(tIt != Locks.end())("tx_id", txId)("lock_id", *lockId);
 
         TVector commited;
         for (auto&& opId : tIt->second) {
@@ -133,21 +169,20 @@ namespace NKikimr::NColumnShard {
             (*opPtr)->Commit(owner, txc, snapshot);
             commited.emplace_back(*opPtr);
         }
-
-        Transactions.erase(txId);
-        for (auto&& op: commited) {
-            RemoveOperation(op, txc);
-        }
+        OnTransactionFinish(commited, txId, txc);
         return true;
     }
 
     bool TOperationsManager::AbortTransaction(TColumnShard& owner, const ui64 txId, NTabletFlatExecutor::TTransactionContext& txc) {
-        TLogContextGuard gLogging(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD_SCAN)("tx_id", txId)("event", "transaction_abort_fails"));
-        auto tIt = Transactions.find(txId);
-        if (tIt == Transactions.end()) {
-            AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("details", "unknown_transaction");
+        TLogContextGuard gLogging(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tx_id", txId));
+
+        auto lockId = GetLockForTx(txId);
+        if (!lockId) {
+            ACFL_ERROR("details", "unknown_transaction");
             return true;
         }
+        auto tIt = Locks.find(*lockId);
+        AFL_VERIFY(tIt != Locks.end())("tx_id", txId)("lock_id", *lockId);
 
         TVector aborted;
         for (auto&& opId : tIt->second) {
@@ -156,10 +191,7 @@ namespace NKikimr::NColumnShard {
             aborted.emplace_back(*opPtr);
         }
 
-        Transactions.erase(txId);
-        for (auto&& op: aborted) {
-            RemoveOperation(op, txc);
-        }
+        OnTransactionFinish(aborted, txId, txc);
         return true;
     }
 
@@ -171,22 +203,66 @@ namespace NKikimr::NColumnShard {
         return it->second;
     }
 
-    void TOperationsManager::RemoveOperation(const TWriteOperation::TPtr& op, NTabletFlatExecutor::TTransactionContext& txc) {
+    void TOperationsManager::OnTransactionFinish(const TVector& operations, const ui64 txId, NTabletFlatExecutor::TTransactionContext& txc) {
+        auto lockId = GetLockForTx(txId);
+        AFL_VERIFY(!!lockId)("tx_id", txId);
+        Locks.erase(*lockId);
+        Tx2Lock.erase(txId);
+        for (auto&& op: operations) {
+            RemoveOperation(op, txc);
+        }
         NIceDb::TNiceDb db(txc.DB);
+        db.Table().Key(txId, *lockId).Delete();
+    }
+
+    void TOperationsManager::RemoveOperation(const TWriteOperation::TPtr& op, NTabletFlatExecutor::TTransactionContext& txc) {
         Operations.erase(op->GetWriteId());
-        Schema::Operations_Erase(db, op->GetWriteId());
+        NIceDb::TNiceDb db(txc.DB);
+        db.Table().Key((ui64)op->GetWriteId()).Delete();
     }
 
     TWriteId TOperationsManager::BuildNextWriteId() {
         return ++LastWriteId;
     }
 
-    TWriteOperation::TPtr TOperationsManager::RegisterOperation(const ui64 txId) {
+    std::optional TOperationsManager::GetLockForTx(const ui64 txId) const {
+        auto lockIt = Tx2Lock.find(txId);
+        if (lockIt != Tx2Lock.end()) {
+            return lockIt->second;
+        }
+        return std::nullopt;
+    }
+
+    void TOperationsManager::LinkTransaction(const ui64 lockId, const ui64 txId, NTabletFlatExecutor::TTransactionContext& txc) {
+        Tx2Lock[txId] = lockId;
+        NIceDb::TNiceDb db(txc.DB);
+        db.Table().Key(txId, lockId).Update();
+    }
+
+    TWriteOperation::TPtr TOperationsManager::RegisterOperation(const ui64 lockId, const ui64 cookie) {
         auto writeId = BuildNextWriteId();
-        auto operation = std::make_shared(writeId, txId, EOperationStatus::Draft, AppData()->TimeProvider->Now());
+        auto operation = std::make_shared(writeId, lockId, cookie, EOperationStatus::Draft, AppData()->TimeProvider->Now());
         Y_ABORT_UNLESS(Operations.emplace(operation->GetWriteId(), operation).second);
-
-        Transactions[operation->GetTxId()].push_back(operation->GetWriteId());
+        Locks[operation->GetLockId()].push_back(operation->GetWriteId());
         return operation;
     }
+
+    EOperationBehaviour TOperationsManager::GetBehaviour(const NEvents::TDataEvents::TEvWrite& evWrite) {
+        if (evWrite.Record.HasLockTxId() && evWrite.Record.HasLockNodeId()) {
+            if (evWrite.Record.HasLocks() && evWrite.Record.GetLocks().GetOp() == NKikimrDataEvents::TKqpLocks::Commit) {
+                return EOperationBehaviour::CommitWriteLock;
+            }
+
+            if (evWrite.Record.GetTxMode() == NKikimrDataEvents::TEvWrite::MODE_PREPARE) {
+                return EOperationBehaviour::WriteWithLock;
+            }
+
+            return EOperationBehaviour::Undefined;
+        }
+
+        if (evWrite.Record.HasTxId() && evWrite.Record.GetTxMode() == NKikimrDataEvents::TEvWrite::MODE_PREPARE) {
+            return EOperationBehaviour::InTxWrite;
+        }
+        return EOperationBehaviour::Undefined;
+    }
 }
diff --git a/ydb/core/tx/columnshard/operations/write.h b/ydb/core/tx/columnshard/operations/write.h
index 4107b7e301bc..08fe7724b39c 100644
--- a/ydb/core/tx/columnshard/operations/write.h
+++ b/ydb/core/tx/columnshard/operations/write.h
@@ -1,6 +1,7 @@
 #pragma once
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -28,17 +29,26 @@ namespace NKikimr::NColumnShard {
         Prepared = 3
     };
 
+     enum class EOperationBehaviour : ui32 {
+        Undefined = 1,
+        InTxWrite = 2,
+        WriteWithLock = 3,
+        CommitWriteLock = 4
+    };
+
     class TWriteOperation {
         YDB_READONLY(EOperationStatus, Status, EOperationStatus::Draft);
         YDB_READONLY_DEF(TInstant, CreatedAt);
         YDB_READONLY_DEF(TWriteId, WriteId);
-        YDB_READONLY(ui64, TxId, 0);
+        YDB_READONLY(ui64, LockId, 0);
+        YDB_READONLY(ui64, Cookie, 0);
         YDB_READONLY_DEF(TVector, GlobalWriteIds);
+        YDB_ACCESSOR(EOperationBehaviour, Behaviour, EOperationBehaviour::Undefined);
 
     public:
         using TPtr = std::shared_ptr;
 
-        TWriteOperation(const TWriteId writeId, const ui64 txId, const EOperationStatus& status, const TInstant createdAt);
+        TWriteOperation(const TWriteId writeId, const ui64 lockId, const ui64 cookie, const EOperationStatus& status, const TInstant createdAt);
 
         void Start(TColumnShard& owner, const ui64 tableId, const NEvWrite::IDataContainer::TPtr& data, const NActors::TActorId& source, const TActorContext& ctx);
         void OnWriteFinish(NTabletFlatExecutor::TTransactionContext& txc, const TVector& globalWriteIds);
@@ -46,7 +56,7 @@ namespace NKikimr::NColumnShard {
         void Abort(TColumnShard& owner, NTabletFlatExecutor::TTransactionContext& txc) const;
 
         void Out(IOutputStream& out) const {
-            out << "write_id=" << (ui64) WriteId << ";tx_id=" << TxId;
+            out << "write_id=" << (ui64) WriteId << ";lock_id=" << LockId;
         }
 
         void ToProto(NKikimrTxColumnShard::TInternalOperationData& proto) const;
@@ -54,7 +64,8 @@ namespace NKikimr::NColumnShard {
     };
 
     class TOperationsManager {
-        TMap> Transactions;
+        TMap> Locks;
+        TMap Tx2Lock;
         TMap Operations;
         TWriteId LastWriteId = TWriteId(0);
 
@@ -64,11 +75,16 @@ namespace NKikimr::NColumnShard {
         TWriteOperation::TPtr GetOperation(const TWriteId writeId) const;
         bool CommitTransaction(TColumnShard& owner, const ui64 txId, NTabletFlatExecutor::TTransactionContext& txc, const NOlap::TSnapshot& snapshot);
         bool AbortTransaction(TColumnShard& owner, const ui64 txId, NTabletFlatExecutor::TTransactionContext& txc);
+        void LinkTransaction(const ui64 lockId, const ui64 txId, NTabletFlatExecutor::TTransactionContext& txc);
+        std::optional GetLockForTx(const ui64 lockId) const;
+
+        TWriteOperation::TPtr RegisterOperation(const ui64 lockId, const ui64 cookie);
+        static EOperationBehaviour GetBehaviour(const NEvents::TDataEvents::TEvWrite& evWrite);
 
-        TWriteOperation::TPtr RegisterOperation(const ui64 txId);
     private:
         TWriteId BuildNextWriteId();
         void RemoveOperation(const TWriteOperation::TPtr& op, NTabletFlatExecutor::TTransactionContext& txc);
+        void OnTransactionFinish(const TVector& operations, const ui64 txId, NTabletFlatExecutor::TTransactionContext& txc);
     };
 }
 
diff --git a/ydb/core/tx/columnshard/operations/write_data.cpp b/ydb/core/tx/columnshard/operations/write_data.cpp
index b81b3839d7af..884e953dfb80 100644
--- a/ydb/core/tx/columnshard/operations/write_data.cpp
+++ b/ydb/core/tx/columnshard/operations/write_data.cpp
@@ -5,7 +5,7 @@
 
 namespace NKikimr::NColumnShard {
 
-bool TArrowData::Parse(const NKikimrDataEvents::TEvWrite_TOperation& proto, const NEvWrite::IPayloadData& payload) {
+bool TArrowData::Parse(const NKikimrDataEvents::TEvWrite_TOperation& proto, const NEvWrite::IPayloadReader& payload) {
     if(proto.GetPayloadFormat() != NKikimrDataEvents::FORMAT_ARROW)
     {
         AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "invalid_payload_format")("payload_format", (ui64)proto.GetPayloadFormat());
diff --git a/ydb/core/tx/columnshard/operations/write_data.h b/ydb/core/tx/columnshard/operations/write_data.h
index b4fcb5e68ef3..374cd060713b 100644
--- a/ydb/core/tx/columnshard/operations/write_data.h
+++ b/ydb/core/tx/columnshard/operations/write_data.h
@@ -18,7 +18,7 @@ class TArrowData : public NEvWrite::IDataContainer {
         : IndexSchema(schema)
     {}
 
-    bool Parse(const NKikimrDataEvents::TEvWrite::TOperation& proto, const NKikimr::NEvWrite::IPayloadData& payload);
+    bool Parse(const NKikimrDataEvents::TEvWrite::TOperation& proto, const NKikimr::NEvWrite::IPayloadReader& payload);
     virtual std::shared_ptr ExtractBatch() override;
     ui64 GetSchemaVersion() const override;
     ui64 GetSize() const override {
diff --git a/ydb/core/tx/columnshard/operations/ya.make b/ydb/core/tx/columnshard/operations/ya.make
index 200a78be1567..80dd03dd9b34 100644
--- a/ydb/core/tx/columnshard/operations/ya.make
+++ b/ydb/core/tx/columnshard/operations/ya.make
@@ -10,6 +10,7 @@ PEERDIR(
     ydb/core/protos
     ydb/core/tx/data_events
     ydb/services/metadata
+    ydb/core/tx/columnshard/data_sharing/destination/events
 )
 
 END()
diff --git a/ydb/core/tx/columnshard/resource_subscriber/actor.cpp b/ydb/core/tx/columnshard/resource_subscriber/actor.cpp
index 91ed2f405b36..bd97ea30185a 100644
--- a/ydb/core/tx/columnshard/resource_subscriber/actor.cpp
+++ b/ydb/core/tx/columnshard/resource_subscriber/actor.cpp
@@ -13,38 +13,46 @@ class TCookie: public TThrRefBase {
     }
 };
 
-void TActor::Handle(TEvStartTask::TPtr& ev) {
-    Y_ABORT_UNLESS(!Aborted);
-    auto task = ev->Get()->GetTask();
-    Y_ABORT_UNLESS(task);
-    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "ask_resources")("task", task->DebugString());
-    Tasks.emplace(++Counter, task);
-    Send(NKikimr::NResourceBroker::MakeResourceBrokerID(), new NKikimr::NResourceBroker::TEvResourceBroker::TEvSubmitTask(
-        task->GetExternalTaskId(),
-        {{task->GetCPUAllocation(), task->GetMemoryAllocation()}},
-        task->GetType(),
-        task->GetPriority(),
-        new TCookie(Counter)
-    ));
-    task->GetContext().GetCounters()->OnRequest(task->GetMemoryAllocation());
-}
-
-void TActor::Handle(NKikimr::NResourceBroker::TEvResourceBroker::TEvResourceAllocated::TPtr& ev) {
-    auto it = Tasks.find(((TCookie*)ev->Get()->Cookie.Get())->GetTaskIdentifier());
+void TActor::DoReplyAllocated(const ui64 internalTaskId, const ui64 rbTaskId) {
+    auto it = Tasks.find(internalTaskId);
     Y_ABORT_UNLESS(it != Tasks.end());
     auto task = it->second;
     Tasks.erase(it);
     task->GetContext().GetCounters()->OnReply(task->GetMemoryAllocation());
     if (Aborted) {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "result_resources_on_abort")("task_id", ev->Get()->TaskId)("task", task->DebugString());
-        std::make_unique(ev->Get()->TaskId, task->GetExternalTaskId(), *task, SelfId(), task->GetContext());
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "result_resources_on_abort")("task_id", rbTaskId)("task", task->DebugString());
+        std::make_unique(rbTaskId, task->GetExternalTaskId(), *task, SelfId(), task->GetContext());
         if (Tasks.empty()) {
             PassAway();
         }
     } else {
-        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "result_resources")("task_id", ev->Get()->TaskId)("task", task->DebugString());
-        task->OnAllocationSuccess(ev->Get()->TaskId, SelfId());
+        AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "result_resources")("task_id", rbTaskId)("task", task->DebugString());
+        task->OnAllocationSuccess(rbTaskId, SelfId());
+    }
+}
+
+void TActor::Handle(TEvStartTask::TPtr& ev) {
+    Y_ABORT_UNLESS(!Aborted);
+    auto task = ev->Get()->GetTask();
+    Y_ABORT_UNLESS(task);
+    AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "ask_resources")("task", task->DebugString());
+    Tasks.emplace(++Counter, task);
+    if (!task->GetCPUAllocation() && !task->GetMemoryAllocation()) {
+        DoReplyAllocated(Counter, 0);
+    } else {
+        Send(NKikimr::NResourceBroker::MakeResourceBrokerID(), new NKikimr::NResourceBroker::TEvResourceBroker::TEvSubmitTask(
+            task->GetExternalTaskId(),
+            {{task->GetCPUAllocation(), task->GetMemoryAllocation()}},
+            task->GetType(),
+            task->GetPriority(),
+            new TCookie(Counter)
+        ));
     }
+    task->GetContext().GetCounters()->OnRequest(task->GetMemoryAllocation());
+}
+
+void TActor::Handle(NKikimr::NResourceBroker::TEvResourceBroker::TEvResourceAllocated::TPtr& ev) {
+    DoReplyAllocated(((TCookie*)ev->Get()->Cookie.Get())->GetTaskIdentifier(), ev->Get()->TaskId);
 }
 
 TActor::TActor(ui64 tabletId, const TActorId& parent)
diff --git a/ydb/core/tx/columnshard/resource_subscriber/actor.h b/ydb/core/tx/columnshard/resource_subscriber/actor.h
index 6b38d23c338d..c7c2152c940c 100644
--- a/ydb/core/tx/columnshard/resource_subscriber/actor.h
+++ b/ydb/core/tx/columnshard/resource_subscriber/actor.h
@@ -22,6 +22,7 @@ class TActor: public TActorBootstrapped {
         }
     }
 
+    void DoReplyAllocated(const ui64 internalTaskId, const ui64 rbTaskId);
 public:
     static TAtomicCounter WaitingBlobsCount;
     TActor(ui64 tabletId, const TActorId& parent);
@@ -35,13 +36,14 @@ class TActor: public TActorBootstrapped {
     }
 
     STFUNC(StateWait) {
-        TLogContextGuard gLogging(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", TabletId)("parent", Parent));
+        TLogContextGuard gLogging(NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", TabletId)("parent", Parent)("ev_type", ev->GetTypeName()));
         switch (ev->GetTypeRewrite()) {
             cFunc(NActors::TEvents::TEvPoison::EventType, StartStopping);
             hFunc(TEvStartTask, Handle);
             hFunc(NKikimr::NResourceBroker::TEvResourceBroker::TEvResourceAllocated, Handle);
             default:
-                AFL_VERIFY(false);
+                AFL_WARN(NKikimrServices::TX_COLUMNSHARD)("problem", "unexpected event");
+                AFL_VERIFY_DEBUG(false);
         }
     }
 };
diff --git a/ydb/core/tx/columnshard/resource_subscriber/task.cpp b/ydb/core/tx/columnshard/resource_subscriber/task.cpp
index 7c836f5df898..d429c1e936c1 100644
--- a/ydb/core/tx/columnshard/resource_subscriber/task.cpp
+++ b/ydb/core/tx/columnshard/resource_subscriber/task.cpp
@@ -19,9 +19,11 @@ TResourcesGuard::~TResourcesGuard() {
         return;
     }
     AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "free_resources")("task_id", TaskId)("external_task_id", ExternalTaskId)("mem", Memory)("cpu", Cpu);
-    auto ev = std::make_unique(NKikimr::NResourceBroker::MakeResourceBrokerID(), Sender, new NKikimr::NResourceBroker::TEvResourceBroker::TEvFinishTask(TaskId));
-    NActors::TActorContext::AsActorContext().Send(std::move(ev));
-    Context.GetCounters()->GetBytesAllocated()->Remove(Memory);
+    if (TaskId) {
+        auto ev = std::make_unique(NKikimr::NResourceBroker::MakeResourceBrokerID(), Sender, new NKikimr::NResourceBroker::TEvResourceBroker::TEvFinishTask(TaskId));
+        NActors::TActorContext::AsActorContext().Send(std::move(ev));
+        Context.GetCounters()->GetBytesAllocated()->Remove(Memory);
+    }
 }
 
 TResourcesGuard::TResourcesGuard(const ui64 taskId, const TString& externalTaskId, const ITask& task, const NActors::TActorId& sender, const TTaskContext& context)
@@ -31,18 +33,24 @@ TResourcesGuard::TResourcesGuard(const ui64 taskId, const TString& externalTaskI
     , Memory(task.GetMemoryAllocation())
     , Cpu(task.GetCPUAllocation())
     , Context(context)
+    , Priority(task.GetPriority())
 {
+    AFL_VERIFY(taskId || (!Memory && !Cpu));
     Context.GetCounters()->GetBytesAllocated()->Add(Memory);
     AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "allocate_resources")("external_task_id", ExternalTaskId)("task_id", TaskId)("mem", Memory)("cpu", Cpu);
 }
 
 void TResourcesGuard::Update(const ui64 memNew) {
+    if (!TaskId) {
+        return;
+    }
+    AFL_VERIFY(Memory);
     Context.GetCounters()->GetBytesAllocated()->Remove(Memory);
     AFL_VERIFY(NActors::TlsActivationContext);
     AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "update_resources")("task_id", TaskId)("external_task_id", ExternalTaskId)("mem", memNew)("cpu", Cpu)("mem_old", Memory);
     Memory = memNew;
     auto ev = std::make_unique(NKikimr::NResourceBroker::MakeResourceBrokerID(), Sender, new NKikimr::NResourceBroker::TEvResourceBroker::TEvUpdateTask(TaskId, {{Cpu, Memory}},
-        Context.GetTypeName(), 1000));
+        Context.GetTypeName(), Priority));
     NActors::TActorContext::AsActorContext().Send(std::move(ev));
     Context.GetCounters()->GetBytesAllocated()->Add(Memory);
 }
diff --git a/ydb/core/tx/columnshard/resource_subscriber/task.h b/ydb/core/tx/columnshard/resource_subscriber/task.h
index 0ea764acc404..df4b742f1ad9 100644
--- a/ydb/core/tx/columnshard/resource_subscriber/task.h
+++ b/ydb/core/tx/columnshard/resource_subscriber/task.h
@@ -26,6 +26,7 @@ class TResourcesGuard: public NColumnShard::TMonitoringObjectsCounter
+#include 
+
+namespace NKikimr::NOlap {
+
+TSimpleChunkMeta::TSimpleChunkMeta(const std::shared_ptr& column, const bool needMax, const bool isSortedColumn) {
+    Y_ABORT_UNLESS(column);
+    Y_ABORT_UNLESS(column->length());
+    NumRows = column->length();
+    RawBytes = NArrow::GetArrayDataSize(column);
+
+    if (needMax) {
+        std::pair minMaxPos = {0, (column->length() - 1)};
+        if (!isSortedColumn) {
+            minMaxPos = NArrow::FindMinMaxPosition(column);
+            Y_ABORT_UNLESS(minMaxPos.first >= 0);
+            Y_ABORT_UNLESS(minMaxPos.second >= 0);
+        }
+
+        Max = NArrow::GetScalar(column, minMaxPos.second);
+
+        Y_ABORT_UNLESS(Max);
+    }
+}
+
+}
diff --git a/ydb/core/tx/columnshard/splitter/abstract/chunk_meta.h b/ydb/core/tx/columnshard/splitter/abstract/chunk_meta.h
new file mode 100644
index 000000000000..8f8f902e4095
--- /dev/null
+++ b/ydb/core/tx/columnshard/splitter/abstract/chunk_meta.h
@@ -0,0 +1,44 @@
+#pragma once
+#include 
+#include 
+
+#include 
+#include 
+
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+
+class TSimpleChunkMeta {
+protected:
+    std::shared_ptr Max;
+    ui32 NumRows = 0;
+    ui32 RawBytes = 0;
+    TSimpleChunkMeta() = default;
+public:
+    TSimpleChunkMeta(const std::shared_ptr& column, const bool needMinMax, const bool isSortedColumn);
+
+    ui64 GetMetadataSize() const {
+        return sizeof(ui32) + sizeof(ui32) + 8 * 3 * 2;
+    }
+
+    std::shared_ptr GetMax() const {
+        return Max;
+    }
+    ui32 GetNumRows() const {
+        return NumRows;
+    }
+    ui32 GetRecordsCount() const {
+        return NumRows;
+    }
+    ui32 GetRawBytes() const {
+        return RawBytes;
+    }
+
+    bool HasMax() const noexcept {
+        return Max.get();
+    }
+
+};
+}
diff --git a/ydb/core/tx/columnshard/splitter/abstract/chunks.cpp b/ydb/core/tx/columnshard/splitter/abstract/chunks.cpp
new file mode 100644
index 000000000000..05c8240f8afb
--- /dev/null
+++ b/ydb/core/tx/columnshard/splitter/abstract/chunks.cpp
@@ -0,0 +1,5 @@
+#include "chunks.h"
+
+namespace NKikimr::NOlap {
+
+}
diff --git a/ydb/core/tx/columnshard/splitter/abstract/chunks.h b/ydb/core/tx/columnshard/splitter/abstract/chunks.h
new file mode 100644
index 000000000000..e873ff80560e
--- /dev/null
+++ b/ydb/core/tx/columnshard/splitter/abstract/chunks.h
@@ -0,0 +1,125 @@
+#pragma once
+#include 
+#include 
+
+#include 
+
+#include 
+
+namespace NKikimr::NColumnShard {
+class TSplitterCounters;
+}
+
+namespace NKikimr::NOlap {
+
+class TPortionInfo;
+class TSimpleColumnInfo;
+class TColumnSaver;
+
+class IPortionDataChunk {
+private:
+    YDB_READONLY(ui32, EntityId, 0);
+
+    std::optional ChunkIdx;
+
+protected:
+    ui64 DoGetPackedSize() const {
+        return GetData().size();
+    }
+    virtual const TString& DoGetData() const = 0;
+    virtual TString DoDebugString() const = 0;
+    virtual std::vector> DoInternalSplit(const TColumnSaver& saver, const std::shared_ptr& counters, const std::vector& splitSizes) const = 0;
+    virtual bool DoIsSplittable() const = 0;
+    virtual std::optional DoGetRecordsCount() const = 0;
+    virtual std::shared_ptr DoGetFirstScalar() const = 0;
+    virtual std::shared_ptr DoGetLastScalar() const = 0;
+    virtual void DoAddIntoPortionBeforeBlob(const TBlobRangeLink16& bRange, TPortionInfo& portionInfo) const = 0;
+    virtual std::shared_ptr DoCopyWithAnotherBlob(TString&& /*data*/, const TSimpleColumnInfo& /*columnInfo*/) const {
+        AFL_VERIFY(false);
+        return nullptr;
+    }
+public:
+    IPortionDataChunk(const ui32 entityId, const std::optional& chunkIdx = {})
+        : EntityId(entityId)
+        , ChunkIdx(chunkIdx) {
+    }
+
+    virtual ~IPortionDataChunk() = default;
+
+    TString DebugString() const {
+        return DoDebugString();
+    }
+
+    const TString& GetData() const {
+        return DoGetData();
+    }
+
+    ui64 GetPackedSize() const {
+        return DoGetPackedSize();
+    }
+
+    std::optional GetRecordsCount() const {
+        return DoGetRecordsCount();
+    }
+
+    ui32 GetRecordsCountVerified() const {
+        auto result = DoGetRecordsCount();
+        AFL_VERIFY(result);
+        return *result;
+    }
+
+    std::vector> InternalSplit(const TColumnSaver& saver, const std::shared_ptr& counters, const std::vector& splitSizes) const {
+        return DoInternalSplit(saver, counters, splitSizes);
+    }
+
+    bool IsSplittable() const {
+        return DoIsSplittable();
+    }
+
+    ui16 GetChunkIdxVerified() const {
+        AFL_VERIFY(!!ChunkIdx);
+        return *ChunkIdx;
+    }
+
+    std::optional GetChunkIdxOptional() const {
+        return ChunkIdx;
+    }
+
+    void SetChunkIdx(const ui16 value) {
+        ChunkIdx = value;
+    }
+
+    std::shared_ptr CopyWithAnotherBlob(TString&& data, const TSimpleColumnInfo& columnInfo) const {
+        return DoCopyWithAnotherBlob(std::move(data), columnInfo);
+    }
+
+    std::shared_ptr GetFirstScalar() const {
+        auto result = DoGetFirstScalar();
+        AFL_VERIFY(result);
+        return result;
+    }
+    std::shared_ptr GetLastScalar() const {
+        auto result = DoGetLastScalar();
+        AFL_VERIFY(result);
+        return result;
+    }
+
+    TChunkAddress GetChunkAddressVerified() const {
+        return TChunkAddress(GetEntityId(), GetChunkIdxVerified());
+    }
+
+    std::optional GetChunkAddressOptional() const {
+        if (ChunkIdx) {
+            return TChunkAddress(GetEntityId(), GetChunkIdxVerified());
+        } else {
+            return {};
+        }
+    }
+
+    void AddIntoPortionBeforeBlob(const TBlobRangeLink16& bRange, TPortionInfo& portionInfo) const {
+        AFL_VERIFY(!bRange.IsValid());
+        return DoAddIntoPortionBeforeBlob(bRange, portionInfo);
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/splitter/abstract/ya.make b/ydb/core/tx/columnshard/splitter/abstract/ya.make
new file mode 100644
index 000000000000..82886451c221
--- /dev/null
+++ b/ydb/core/tx/columnshard/splitter/abstract/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+SRCS(
+    chunks.cpp
+    chunk_meta.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/columnshard/engines/scheme/abstract
+    ydb/core/tx/columnshard/common
+)
+
+END()
diff --git a/ydb/core/tx/columnshard/splitter/batch_slice.cpp b/ydb/core/tx/columnshard/splitter/batch_slice.cpp
index 47dfe990eb11..83f9f90f77f2 100644
--- a/ydb/core/tx/columnshard/splitter/batch_slice.cpp
+++ b/ydb/core/tx/columnshard/splitter/batch_slice.cpp
@@ -4,69 +4,123 @@
 
 namespace NKikimr::NOlap {
 
-bool TGeneralSerializedSlice::GroupBlobs(std::vector& blobs) {
-    std::vector> chunksInProgress;
+class TChunksToSplit {
+private:
+    YDB_READONLY_DEF(std::vector>, Chunks);
+    i64 FullSize = 0;
+public:
+    ui64 GetFullSize() const {
+        return FullSize;
+    }
+
+    ui32 size() const {
+        return Chunks.size();
+    }
+
+    void Clear() {
+        Chunks.clear();
+        FullSize = 0;
+    }
+
+    const std::shared_ptr& operator[](const ui32 index) const {
+        AFL_VERIFY(index < Chunks.size());
+        return Chunks[index];
+    }
+
+    void AddChunks(const std::vector>& chunks) {
+        for (auto&& i : chunks) {
+            FullSize += i->GetPackedSize();
+            Chunks.emplace_back(i);
+        }
+    }
+
+    void PopFront(const ui32 count) {
+        AFL_VERIFY(count <= Chunks.size());
+        for (ui32 i = 0; i < count; ++i) {
+            FullSize -= Chunks[i]->GetPackedSize();
+        }
+        AFL_VERIFY(FullSize >= 0);
+        Chunks.erase(Chunks.begin(), Chunks.begin() + count);
+    }
+
+    void Exchange(const ui32 index, std::vector>&& newChunks) {
+        AFL_VERIFY(index < Chunks.size());
+        FullSize -= Chunks[index]->GetPackedSize();
+        AFL_VERIFY(FullSize >= 0);
+        for (auto&& i : newChunks) {
+            FullSize += i->GetPackedSize();
+        }
+        Chunks.erase(Chunks.begin() + index);
+        Chunks.insert(Chunks.begin() + index, newChunks.begin(), newChunks.end());
+    }
+
+    bool IsEmpty() {
+        return Chunks.empty();
+    }
+};
+
+bool TGeneralSerializedSlice::GroupBlobsImpl(const NSplitter::TGroupFeatures& features, std::vector& blobs) {
+    TChunksToSplit chunksInProgress;
     std::sort(Data.begin(), Data.end());
     for (auto&& i : Data) {
-        for (auto&& p : i.GetChunks()) {
-            chunksInProgress.emplace_back(p);
+        if (!features.Contains(i.GetEntityId())) {
+            continue;
         }
+        chunksInProgress.AddChunks(i.GetChunks());
     }
+    InternalSplitsCount = 0;
+    AFL_VERIFY(chunksInProgress.size());
     std::vector result;
-    Y_ABORT_UNLESS(Settings.GetMaxBlobSize() >= 2 * Settings.GetMinBlobSize());
-    while (chunksInProgress.size()) {
-        i64 fullSize = 0;
-        for (auto&& i : chunksInProgress) {
-            fullSize += i->GetPackedSize();
-        }
-        if (fullSize < Settings.GetMaxBlobSize()) {
-            result.emplace_back(TSplittedBlob());
-            for (auto&& i : chunksInProgress) {
-                result.back().Take(i);
-            }
-            chunksInProgress.clear();
-            break;
-        }
+    Y_ABORT_UNLESS(features.GetSplitSettings().GetMaxBlobSize() >= 2 * features.GetSplitSettings().GetMinBlobSize());
+    while (!chunksInProgress.IsEmpty()) {
         bool hasNoSplitChanges = true;
         while (hasNoSplitChanges) {
+            if (chunksInProgress.GetFullSize() < (ui64)features.GetSplitSettings().GetMaxBlobSize()) {
+                result.emplace_back(TSplittedBlob(features.GetName()));
+                for (auto&& i : chunksInProgress.GetChunks()) {
+                    result.back().Take(i);
+                }
+                chunksInProgress.Clear();
+                break;
+            }
             hasNoSplitChanges = false;
             i64 partSize = 0;
             for (ui32 i = 0; i < chunksInProgress.size(); ++i) {
                 const i64 nextPartSize = partSize + chunksInProgress[i]->GetPackedSize();
-                const i64 nextOtherSize = fullSize - nextPartSize;
-                const i64 otherSize = fullSize - partSize;
-                if (nextPartSize >= Settings.GetMaxBlobSize() || nextOtherSize < Settings.GetMinBlobSize()) {
-                    Y_ABORT_UNLESS(otherSize >= Settings.GetMinBlobSize());
-                    Y_ABORT_UNLESS(partSize < Settings.GetMaxBlobSize());
-                    if (partSize >= Settings.GetMinBlobSize()) {
-                        result.emplace_back(TSplittedBlob());
+                const i64 nextOtherSize = chunksInProgress.GetFullSize() - nextPartSize;
+                const i64 otherSize = chunksInProgress.GetFullSize() - partSize;
+                if (nextPartSize >= features.GetSplitSettings().GetMaxBlobSize() || nextOtherSize < features.GetSplitSettings().GetMinBlobSize()) {
+                    Y_ABORT_UNLESS(otherSize >= features.GetSplitSettings().GetMinBlobSize());
+                    Y_ABORT_UNLESS(partSize < features.GetSplitSettings().GetMaxBlobSize());
+                    if (partSize >= features.GetSplitSettings().GetMinBlobSize()) {
+                        result.emplace_back(TSplittedBlob(features.GetName()));
                         for (ui32 chunk = 0; chunk < i; ++chunk) {
                             result.back().Take(chunksInProgress[chunk]);
                         }
                         Counters->BySizeSplitter.OnCorrectSerialized(result.back().GetSize());
-                        chunksInProgress.erase(chunksInProgress.begin(), chunksInProgress.begin() + i);
+                        chunksInProgress.PopFront(i);
                         hasNoSplitChanges = true;
                     } else {
-                        Y_ABORT_UNLESS((i64)chunksInProgress[i]->GetPackedSize() > Settings.GetMinBlobSize() - partSize);
-                        Y_ABORT_UNLESS(otherSize - (Settings.GetMinBlobSize() - partSize) >= Settings.GetMinBlobSize());
+                        Y_ABORT_UNLESS((i64)chunksInProgress[i]->GetPackedSize() > features.GetSplitSettings().GetMinBlobSize() - partSize);
+                        Y_ABORT_UNLESS(otherSize - (features.GetSplitSettings().GetMinBlobSize() - partSize) >= features.GetSplitSettings().GetMinBlobSize());
 
                         std::vector> newChunks;
                         const bool splittable = chunksInProgress[i]->IsSplittable();
                         if (splittable) {
                             Counters->BySizeSplitter.OnTrashSerialized(chunksInProgress[i]->GetPackedSize());
-                            const std::vector sizes = {(ui64)(Settings.GetMinBlobSize() - partSize)};
+                            const std::vector sizes = {(ui64)(features.GetSplitSettings().GetMinBlobSize() - partSize)};
                             newChunks = chunksInProgress[i]->InternalSplit(Schema->GetColumnSaver(chunksInProgress[i]->GetEntityId()), Counters, sizes);
-                            chunksInProgress.erase(chunksInProgress.begin() + i);
-                            chunksInProgress.insert(chunksInProgress.begin() + i, newChunks.begin(), newChunks.end());
+                            ++InternalSplitsCount;
+                            chunksInProgress.Exchange(i, std::move(newChunks));
                         }
 
-                        TSplittedBlob newBlob;
+                        TSplittedBlob newBlob(features.GetName());
                         for (ui32 chunk = 0; chunk <= i; ++chunk) {
                             newBlob.Take(chunksInProgress[chunk]);
                         }
-                        AFL_VERIFY(splittable || newBlob.GetSize() < Settings.GetMaxBlobSize())("splittable", splittable)("blob_size", newBlob.GetSize())("max", Settings.GetMaxBlobSize());
-                        if (newBlob.GetSize() < Settings.GetMaxBlobSize()) {
-                            chunksInProgress.erase(chunksInProgress.begin(), chunksInProgress.begin() + i + 1);
+                        AFL_VERIFY(splittable || newBlob.GetSize() < features.GetSplitSettings().GetMaxBlobSize())("splittable", splittable)("blob_size", newBlob.GetSize())("max", features.GetSplitSettings().GetMaxBlobSize());
+                        if (newBlob.GetSize() < features.GetSplitSettings().GetMaxBlobSize()) {
+                            chunksInProgress.PopFront(i + 1);
                             result.emplace_back(std::move(newBlob));
                             Counters->BySizeSplitter.OnCorrectSerialized(result.back().GetSize());
                         }
@@ -95,11 +149,9 @@ bool TGeneralSerializedSlice::GroupBlobs(std::vector& blobs) {
     return true;
 }
 
-TGeneralSerializedSlice::TGeneralSerializedSlice(const std::map>>& data, ISchemaDetailInfo::TPtr schema, std::shared_ptr counters,
-                                                 const TSplitSettings& settings)
+TGeneralSerializedSlice::TGeneralSerializedSlice(const THashMap>>& data, ISchemaDetailInfo::TPtr schema, std::shared_ptr counters)
     : Schema(schema)
-    , Counters(counters)
-    , Settings(settings) {
+    , Counters(counters) {
     std::optional recordsCount;
     for (auto&& [entityId, chunks] : data) {
         TSplittedEntity entity(entityId);
@@ -118,16 +170,16 @@ TGeneralSerializedSlice::TGeneralSerializedSlice(const std::map counters, const TSplitSettings& settings)
+TGeneralSerializedSlice::TGeneralSerializedSlice(const ui32 recordsCount, ISchemaDetailInfo::TPtr schema, std::shared_ptr counters)
     : RecordsCount(recordsCount)
     , Schema(schema)
     , Counters(counters)
-    , Settings(settings)
 {
 }
 
-TBatchSerializedSlice::TBatchSerializedSlice(const std::shared_ptr& batch, ISchemaDetailInfo::TPtr schema, std::shared_ptr counters, const TSplitSettings& settings)
-    : TBase(TValidator::CheckNotNull(batch)->num_rows(), schema, counters, settings)
+TBatchSerializedSlice::TBatchSerializedSlice(const std::shared_ptr& batch, ISchemaDetailInfo::TPtr schema, std::shared_ptr counters,
+    const NSplitter::TSplitSettings& settings)
+    : TBase(TValidator::CheckNotNull(batch)->num_rows(), schema, counters)
     , Batch(batch)
 {
     Y_ABORT_UNLESS(batch);
@@ -145,7 +197,7 @@ TBatchSerializedSlice::TBatchSerializedSlice(const std::shared_ptr> chunks;
-        for (auto&& i : splitter.Split(i, Schema->GetField(c.GetEntityId()), Settings.GetMaxBlobSize())) {
+        for (auto&& i : splitter.Split(i, Schema->GetField(c.GetEntityId()), settings.GetMaxBlobSize())) {
             chunks.emplace_back(std::make_shared(c.GetEntityId(), i, Schema));
         }
         c.SetChunks(chunks);
@@ -154,6 +206,24 @@ TBatchSerializedSlice::TBatchSerializedSlice(const std::shared_ptr TBatchSerializedSlice::BuildSimpleSlices(const std::shared_ptr& batch, const NSplitter::TSplitSettings& settings, const std::shared_ptr& counters, const ISchemaDetailInfo::TPtr& schemaInfo) {
+    std::vector slices;
+    auto stats = schemaInfo->GetBatchSerializationStats(batch);
+    ui32 recordsCount = settings.GetMinRecordsCount();
+    if (stats) {
+        const ui32 recordsCountForMinSize = stats->PredictOptimalPackRecordsCount(batch->num_rows(), settings.GetMinBlobSize()).value_or(recordsCount);
+        const ui32 recordsCountForMaxPortionSize = stats->PredictOptimalPackRecordsCount(batch->num_rows(), settings.GetMaxPortionSize()).value_or(recordsCount);
+        recordsCount = std::min(recordsCountForMaxPortionSize, std::max(recordsCount, recordsCountForMinSize));
+    }
+    auto linearSplitInfo = TSimpleSplitter::GetOptimalLinearSplitting(batch->num_rows(), recordsCount);
+    for (auto it = linearSplitInfo.StartIterator(); it.IsValid(); it.Next()) {
+        std::shared_ptr current = batch->Slice(it.GetPosition(), it.GetCurrentPackSize());
+        TBatchSerializedSlice slice(current, schemaInfo, counters, settings);
+        slices.emplace_back(std::move(slice));
+    }
+    return slices;
+}
+
 void TGeneralSerializedSlice::MergeSlice(TGeneralSerializedSlice&& slice) {
     Y_ABORT_UNLESS(Data.size() == slice.Data.size());
     RecordsCount += slice.GetRecordsCount();
@@ -163,4 +233,21 @@ void TGeneralSerializedSlice::MergeSlice(TGeneralSerializedSlice&& slice) {
     }
 }
 
+bool TGeneralSerializedSlice::GroupBlobs(std::vector& blobs, const NSplitter::TEntityGroups& groups) {
+    if (groups.IsEmpty()) {
+        return GroupBlobsImpl(groups.GetDefaultGroupFeatures(), blobs);
+    } else {
+        std::vector result;
+        for (auto&& i : groups) {
+            std::vector blobsLocal;
+            if (!GroupBlobsImpl(i.second, blobsLocal)) {
+                return false;
+            }
+            result.insert(result.end(), blobsLocal.begin(), blobsLocal.end());
+        }
+        std::swap(result, blobs);
+        return true;
+    }
+}
+
 }
diff --git a/ydb/core/tx/columnshard/splitter/batch_slice.h b/ydb/core/tx/columnshard/splitter/batch_slice.h
index a97a1e1770e7..acbb9a0414e4 100644
--- a/ydb/core/tx/columnshard/splitter/batch_slice.h
+++ b/ydb/core/tx/columnshard/splitter/batch_slice.h
@@ -4,60 +4,27 @@
 #include "scheme_info.h"
 #include "column_info.h"
 #include "blob_info.h"
+#include "similar_packer.h"
 #include 
 #include 
 #include 
-#include 
+#include 
 
 #include 
 
 namespace NKikimr::NOlap {
 
-template 
-class TArrayView {
-private:
-    typename TContainer::iterator Begin;
-    typename TContainer::iterator End;
-public:
-    TArrayView(typename TContainer::iterator itBegin, typename TContainer::iterator itEnd)
-        : Begin(itBegin)
-        , End(itEnd) {
-
-    }
-
-    typename TContainer::iterator begin() {
-        return Begin;
-    }
-
-    typename TContainer::iterator end() {
-        return End;
-    }
-
-    typename TContainer::value_type& front() {
-        return *Begin;
-    }
-
-    typename TContainer::value_type& operator[](const size_t index) {
-        return *(Begin + index);
-    }
-
-    size_t size() {
-        return End - Begin;
-    }
-};
-
-template 
-using TVectorView = TArrayView>;
-
 class TDefaultSchemaDetails: public ISchemaDetailInfo {
 private:
     ISnapshotSchema::TPtr Schema;
-    const TSaverContext Context;
     std::shared_ptr Stats;
+protected:
+    virtual TColumnSaver DoGetColumnSaver(const ui32 columnId) const override {
+        return Schema->GetColumnSaver(columnId);
+    }
 public:
-    TDefaultSchemaDetails(ISnapshotSchema::TPtr schema, const TSaverContext& context, const std::shared_ptr& stats)
+    TDefaultSchemaDetails(ISnapshotSchema::TPtr schema, const std::shared_ptr& stats)
         : Schema(schema)
-        , Context(context)
         , Stats(stats)
     {
         AFL_VERIFY(Stats);
@@ -73,7 +40,11 @@ class TDefaultSchemaDetails: public ISchemaDetailInfo {
     }
 
     virtual std::optional GetColumnSerializationStats(const ui32 columnId) const override {
-        return Stats->GetColumnInfo(columnId);
+        auto stats = Stats->GetColumnInfo(columnId);
+        if (stats && stats->GetRecordsCount() != 0) {
+            return stats;
+        }
+        return std::nullopt;
     }
     virtual std::optional GetBatchSerializationStats(const std::shared_ptr& rb) const override {
         return Stats->GetStatsForRecordBatch(rb);
@@ -81,20 +52,17 @@ class TDefaultSchemaDetails: public ISchemaDetailInfo {
     virtual ui32 GetColumnId(const std::string& fieldName) const override {
         return Schema->GetColumnId(fieldName);
     }
-    virtual TColumnSaver GetColumnSaver(const ui32 columnId) const override {
-        return Schema->GetColumnSaver(columnId, Context);
-    }
 };
 
 class TGeneralSerializedSlice {
 private:
     YDB_READONLY(ui32, RecordsCount, 0);
+    YDB_READONLY(ui32, InternalSplitsCount, 0);
 protected:
     std::vector Data;
     ui64 Size = 0;
     ISchemaDetailInfo::TPtr Schema;
     std::shared_ptr Counters;
-    TSplitSettings Settings;
     TGeneralSerializedSlice() = default;
 
     const TSplittedEntity& GetEntityDataVerified(const ui32& entityId) const {
@@ -106,10 +74,19 @@ class TGeneralSerializedSlice {
         Y_ABORT_UNLESS(false);
         return Data.front();
     }
+    bool GroupBlobsImpl(const NSplitter::TGroupFeatures& features, std::vector& blobs);
 
 public:
 
-    std::map>> GetPortionChunks() const {
+    THashMap>> GetPortionChunksToHash() const {
+        THashMap>> result;
+        for (auto&& i : Data) {
+            AFL_VERIFY(result.emplace(i.GetEntityId(), i.GetChunks()).second);
+        }
+        return result;
+    }
+
+    std::map>> GetPortionChunksToMap() const {
         std::map>> result;
         for (auto&& i : Data) {
             AFL_VERIFY(result.emplace(i.GetEntityId(), i.GetChunks()).second);
@@ -133,14 +110,10 @@ class TGeneralSerializedSlice {
         return Size;
     }
 
-    std::vector>> GroupChunksByBlobs() {
-        std::vector>> result;
+    std::vector GroupChunksByBlobs(const NSplitter::TEntityGroups& groups) {
         std::vector blobs;
-        GroupBlobs(blobs);
-        for (auto&& i : blobs) {
-            result.emplace_back(i.GetChunks());
-        }
-        return result;
+        AFL_VERIFY(GroupBlobs(blobs, groups));
+        return blobs;
     }
 
     explicit TGeneralSerializedSlice(TVectorView&& objects) {
@@ -150,12 +123,12 @@ class TGeneralSerializedSlice {
             MergeSlice(std::move(objects[i]));
         }
     }
-    TGeneralSerializedSlice(const std::map>>& data, ISchemaDetailInfo::TPtr schema, std::shared_ptr counters, const TSplitSettings& settings);
-    TGeneralSerializedSlice(const ui32 recordsCount, ISchemaDetailInfo::TPtr schema, std::shared_ptr counters, const TSplitSettings& settings);
+    TGeneralSerializedSlice(const THashMap>>& data, ISchemaDetailInfo::TPtr schema, std::shared_ptr counters);
+    TGeneralSerializedSlice(const ui32 recordsCount, ISchemaDetailInfo::TPtr schema, std::shared_ptr counters);
 
     void MergeSlice(TGeneralSerializedSlice&& slice);
 
-    bool GroupBlobs(std::vector& blobs);
+    bool GroupBlobs(std::vector& blobs, const NSplitter::TEntityGroups& groups);
 
     bool operator<(const TGeneralSerializedSlice& item) const {
         return Size < item.Size;
@@ -167,7 +140,7 @@ class TBatchSerializedSlice: public TGeneralSerializedSlice {
     using TBase = TGeneralSerializedSlice;
     YDB_READONLY_DEF(std::shared_ptr, Batch);
 public:
-    TBatchSerializedSlice(const std::shared_ptr& batch, ISchemaDetailInfo::TPtr schema, std::shared_ptr counters, const TSplitSettings& settings);
+    TBatchSerializedSlice(const std::shared_ptr& batch, ISchemaDetailInfo::TPtr schema, std::shared_ptr counters, const NSplitter::TSplitSettings& settings);
 
     explicit TBatchSerializedSlice(TVectorView&& objects) {
         Y_ABORT_UNLESS(objects.size());
@@ -180,6 +153,10 @@ class TBatchSerializedSlice: public TGeneralSerializedSlice {
         Batch = NArrow::CombineBatches({Batch, slice.Batch});
         TBase::MergeSlice(std::move(slice));
     }
+
+    static std::vector BuildSimpleSlices(const std::shared_ptr& batch, const NSplitter::TSplitSettings& settings,
+        const std::shared_ptr& counters, const ISchemaDetailInfo::TPtr& schemaInfo);
+
 };
 
 }
diff --git a/ydb/core/tx/columnshard/splitter/blob_info.h b/ydb/core/tx/columnshard/splitter/blob_info.h
index a4515f9f7849..d96b55fd0f9c 100644
--- a/ydb/core/tx/columnshard/splitter/blob_info.h
+++ b/ydb/core/tx/columnshard/splitter/blob_info.h
@@ -6,10 +6,17 @@ namespace NKikimr::NOlap {
 
 class TSplittedBlob {
 private:
+    YDB_READONLY_DEF(TString, GroupName);
     YDB_READONLY(i64, Size, 0);
     YDB_READONLY_DEF(std::vector>, Chunks);
 
 public:
+    TSplittedBlob(const TString& groupName)
+        : GroupName(groupName)
+    {
+
+    }
+
     void Take(const std::shared_ptr& chunk);
     bool operator<(const TSplittedBlob& item) const {
         return Size > item.Size;
diff --git a/ydb/core/tx/columnshard/splitter/chunk_meta.cpp b/ydb/core/tx/columnshard/splitter/chunk_meta.cpp
index cfa9bb2afb19..3d41d9b0b6c6 100644
--- a/ydb/core/tx/columnshard/splitter/chunk_meta.cpp
+++ b/ydb/core/tx/columnshard/splitter/chunk_meta.cpp
@@ -1,29 +1 @@
 #include "chunk_meta.h"
-#include 
-#include 
-
-namespace NKikimr::NOlap {
-
-TSimpleChunkMeta::TSimpleChunkMeta(const std::shared_ptr& column, const bool needMinMax, const bool isSortedColumn) {
-    Y_ABORT_UNLESS(column);
-    Y_ABORT_UNLESS(column->length());
-    NumRows = column->length();
-    RawBytes = NArrow::GetArrayDataSize(column);
-
-    if (needMinMax) {
-        std::pair minMaxPos = {0, (column->length() - 1)};
-        if (!isSortedColumn) {
-            minMaxPos = NArrow::FindMinMaxPosition(column);
-            Y_ABORT_UNLESS(minMaxPos.first >= 0);
-            Y_ABORT_UNLESS(minMaxPos.second >= 0);
-        }
-
-        Min = NArrow::GetScalar(column, minMaxPos.first);
-        Max = NArrow::GetScalar(column, minMaxPos.second);
-
-        Y_ABORT_UNLESS(Min);
-        Y_ABORT_UNLESS(Max);
-    }
-}
-
-}
diff --git a/ydb/core/tx/columnshard/splitter/chunk_meta.h b/ydb/core/tx/columnshard/splitter/chunk_meta.h
index ce23529f90f2..874531d3537d 100644
--- a/ydb/core/tx/columnshard/splitter/chunk_meta.h
+++ b/ydb/core/tx/columnshard/splitter/chunk_meta.h
@@ -1,57 +1,2 @@
 #pragma once
-#include 
-#include 
-
-#include 
-#include 
-
-#include 
-#include 
-
-namespace NKikimr::NOlap {
-
-class TSimpleChunkMeta {
-protected:
-    std::shared_ptr Min;
-    std::shared_ptr Max;
-    std::optional NumRows;
-    std::optional RawBytes;
-    TSimpleChunkMeta() = default;
-public:
-    TSimpleChunkMeta(const std::shared_ptr& column, const bool needMinMax, const bool isSortedColumn);
-
-
-    ui64 GetMetadataSize() const {
-        return sizeof(ui32) + sizeof(ui32) + 8 * 3 * 2;
-    }
-
-    std::shared_ptr GetMin() const {
-        return Min;
-    }
-    std::shared_ptr GetMax() const {
-        return Max;
-    }
-    std::optional GetNumRows() const {
-        return NumRows;
-
-    }
-    std::optional GetRawBytes() const {
-        return RawBytes;
-    }
-
-    ui32 GetNumRowsVerified() const {
-        Y_ABORT_UNLESS(NumRows);
-        return *NumRows;
-    }
-
-    ui32 GetRawBytesVerified() const {
-        Y_ABORT_UNLESS(RawBytes);
-        return *RawBytes;
-    }
-
-    bool HasMinMax() const noexcept {
-        return Min.get() && Max.get();
-    }
-
-};
-}
+#include "abstract/chunk_meta.h"
diff --git a/ydb/core/tx/columnshard/splitter/chunks.cpp b/ydb/core/tx/columnshard/splitter/chunks.cpp
index 0bf0b70fe6d6..c00c3f43e61b 100644
--- a/ydb/core/tx/columnshard/splitter/chunks.cpp
+++ b/ydb/core/tx/columnshard/splitter/chunks.cpp
@@ -24,8 +24,9 @@ std::vector> IPortionColumnChunk::DoInternalS
     return result;
 }
 
-void IPortionColumnChunk::DoAddIntoPortion(const TBlobRange& bRange, TPortionInfo& portionInfo) const {
-    TColumnRecord rec(GetChunkAddress(), bRange, BuildSimpleChunkMeta());
+void IPortionColumnChunk::DoAddIntoPortionBeforeBlob(const TBlobRangeLink16& bRange, TPortionInfo& portionInfo) const {
+    AFL_VERIFY(!bRange.IsValid());
+    TColumnRecord rec(GetChunkAddressVerified(), bRange, BuildSimpleChunkMeta());
     portionInfo.AppendOneChunkColumn(std::move(rec));
 }
 
diff --git a/ydb/core/tx/columnshard/splitter/chunks.h b/ydb/core/tx/columnshard/splitter/chunks.h
index 73f88f15e5aa..bd7d6c80efdb 100644
--- a/ydb/core/tx/columnshard/splitter/chunks.h
+++ b/ydb/core/tx/columnshard/splitter/chunks.h
@@ -1,5 +1,6 @@
 #pragma once
-#include "chunk_meta.h"
+#include "abstract/chunk_meta.h"
+#include "abstract/chunks.h"
 
 #include 
 #include 
@@ -7,91 +8,6 @@
 
 namespace NKikimr::NOlap {
 
-class IPortionDataChunk {
-private:
-    YDB_READONLY(ui32, EntityId, 0);
-
-    std::optional ChunkIdx;
-
-protected:
-    ui64 DoGetPackedSize() const {
-        return GetData().size();
-    }
-    virtual const TString& DoGetData() const = 0;
-    virtual TString DoDebugString() const = 0;
-    virtual std::vector> DoInternalSplit(const TColumnSaver& saver, const std::shared_ptr& counters, const std::vector& splitSizes) const = 0;
-    virtual bool DoIsSplittable() const = 0;
-    virtual std::optional DoGetRecordsCount() const = 0;
-    virtual std::shared_ptr DoGetFirstScalar() const = 0;
-    virtual std::shared_ptr DoGetLastScalar() const = 0;
-    virtual void DoAddIntoPortion(const TBlobRange& bRange, TPortionInfo& portionInfo) const = 0;
-public:
-    IPortionDataChunk(const ui32 entityId, const std::optional& chunkIdx = {})
-        : EntityId(entityId)
-        , ChunkIdx(chunkIdx) {
-    }
-
-    virtual ~IPortionDataChunk() = default;
-
-    TString DebugString() const {
-        return DoDebugString();
-    }
-
-    const TString& GetData() const {
-        return DoGetData();
-    }
-
-    ui64 GetPackedSize() const {
-        return DoGetPackedSize();
-    }
-
-    std::optional GetRecordsCount() const {
-        return DoGetRecordsCount();
-    }
-
-    ui32 GetRecordsCountVerified() const {
-        auto result = DoGetRecordsCount();
-        AFL_VERIFY(result);
-        return *result;
-    }
-
-    std::vector> InternalSplit(const TColumnSaver& saver, const std::shared_ptr& counters, const std::vector& splitSizes) const {
-        return DoInternalSplit(saver, counters, splitSizes);
-    }
-
-    bool IsSplittable() const {
-        return DoIsSplittable();
-    }
-
-    ui16 GetChunkIdx() const {
-        AFL_VERIFY(!!ChunkIdx);
-        return *ChunkIdx;
-    }
-
-    void SetChunkIdx(const ui16 value) {
-        ChunkIdx = value;
-    }
-
-    std::shared_ptr GetFirstScalar() const {
-        auto result = DoGetFirstScalar();
-        Y_ABORT_UNLESS(result);
-        return result;
-    }
-    std::shared_ptr GetLastScalar() const {
-        auto result = DoGetLastScalar();
-        Y_ABORT_UNLESS(result);
-        return result;
-    }
-
-    TChunkAddress GetChunkAddress() const {
-        return TChunkAddress(GetEntityId(), GetChunkIdx());
-    }
-
-    void AddIntoPortion(const TBlobRange& bRange, TPortionInfo& portionInfo) const {
-        return DoAddIntoPortion(bRange, portionInfo);
-    }
-};
-
 class IPortionColumnChunk : public IPortionDataChunk {
 private:
     using TBase = IPortionDataChunk;
@@ -103,7 +19,7 @@ class IPortionColumnChunk : public IPortionDataChunk {
         return DoGetRecordsCountImpl();
     }
 
-    virtual void DoAddIntoPortion(const TBlobRange& bRange, TPortionInfo& portionInfo) const override;
+    virtual void DoAddIntoPortionBeforeBlob(const TBlobRangeLink16& bRange, TPortionInfo& portionInfo) const override;
 
     virtual std::vector> DoInternalSplitImpl(const TColumnSaver& saver, const std::shared_ptr& counters, const std::vector& splitSizes) const = 0;
     virtual std::vector> DoInternalSplit(const TColumnSaver& saver, const std::shared_ptr& counters, const std::vector& splitSizes) const override;
diff --git a/ydb/core/tx/columnshard/splitter/rb_splitter.cpp b/ydb/core/tx/columnshard/splitter/rb_splitter.cpp
deleted file mode 100644
index 698a9e6f3e4a..000000000000
--- a/ydb/core/tx/columnshard/splitter/rb_splitter.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-#include "rb_splitter.h"
-#include "simple.h"
-
-namespace NKikimr::NOlap {
-
-TRBSplitLimiter::TRBSplitLimiter(std::shared_ptr counters, ISchemaDetailInfo::TPtr schemaInfo,
-    const std::shared_ptr batch, const TSplitSettings& settings)
-    : Counters(counters)
-    , Batch(batch)
-    , Settings(settings)
-{
-    Y_ABORT_UNLESS(Batch->num_rows());
-    std::vector slices = BuildSimpleSlices(Batch, Settings, Counters, schemaInfo);
-
-    auto chunks = TSimilarSlicer(Settings.GetMinBlobSize()).Split(slices);
-    ui32 chunkStartPosition = 0;
-    for (auto&& spanObjects : chunks) {
-        Slices.emplace_back(TBatchSerializedSlice(std::move(spanObjects)));
-        chunkStartPosition += spanObjects.size();
-    }
-    Y_ABORT_UNLESS(chunkStartPosition == slices.size());
-    ui32 recordsCountCheck = 0;
-    for (auto&& i : Slices) {
-        recordsCountCheck += i.GetRecordsCount();
-    }
-    Y_ABORT_UNLESS(recordsCountCheck == batch->num_rows());
-}
-
-bool TRBSplitLimiter::Next(std::vector>>& portionBlobs, std::shared_ptr& batch) {
-    if (!Slices.size()) {
-        return false;
-    }
-    std::vector blobs;
-    Slices.front().GroupBlobs(blobs);
-    std::vector>> result;
-    std::map columnChunks;
-    for (auto&& i : blobs) {
-        if (blobs.size() == 1) {
-            Counters->MonoBlobs.OnBlobData(i.GetSize());
-        } else {
-            Counters->SplittedBlobs.OnBlobData(i.GetSize());
-        }
-        result.emplace_back(i.GetChunks());
-    }
-    std::swap(result, portionBlobs);
-    batch = Slices.front().GetBatch();
-    Slices.pop_front();
-    return true;
-}
-
-std::vector TRBSplitLimiter::BuildSimpleSlices(const std::shared_ptr& batch, const TSplitSettings& settings,
-    const std::shared_ptr& counters, const ISchemaDetailInfo::TPtr& schemaInfo)
-{
-    std::vector slices;
-    auto stats = schemaInfo->GetBatchSerializationStats(batch);
-    ui32 recordsCount = settings.GetMinRecordsCount();
-    if (stats) {
-        const ui32 recordsCountForMinSize = stats->PredictOptimalPackRecordsCount(batch->num_rows(), settings.GetMinBlobSize()).value_or(recordsCount);
-        const ui32 recordsCountForMaxPortionSize = stats->PredictOptimalPackRecordsCount(batch->num_rows(), settings.GetMaxPortionSize()).value_or(recordsCount);
-        recordsCount = std::min(recordsCountForMaxPortionSize, std::max(recordsCount, recordsCountForMinSize));
-    }
-    auto linearSplitInfo = TSimpleSplitter::GetOptimalLinearSplitting(batch->num_rows(), recordsCount);
-    for (auto it = linearSplitInfo.StartIterator(); it.IsValid(); it.Next()) {
-        std::shared_ptr current = batch->Slice(it.GetPosition(), it.GetCurrentPackSize());
-        TBatchSerializedSlice slice(current, schemaInfo, counters, settings);
-        slices.emplace_back(std::move(slice));
-    }
-    return slices;
-}
-
-}
diff --git a/ydb/core/tx/columnshard/splitter/rb_splitter.h b/ydb/core/tx/columnshard/splitter/rb_splitter.h
deleted file mode 100644
index e5d25f2dcef9..000000000000
--- a/ydb/core/tx/columnshard/splitter/rb_splitter.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#pragma once
-#include "batch_slice.h"
-#include "stats.h"
-#include 
-#include 
-#include 
-#include 
-
-#include 
-
-namespace NKikimr::NOlap {
-
-class TSimilarSlicer {
-private:
-    const ui64 BottomLimit = 0;
-public:
-    TSimilarSlicer(const ui64 bottomLimit)
-        : BottomLimit(bottomLimit) {
-
-    }
-
-    template 
-    std::vector> Split(std::vector& objects) {
-        ui64 fullSize = 0;
-        for (auto&& i : objects) {
-            fullSize += i.GetSize();
-        }
-        if (fullSize <= BottomLimit) {
-            return {TVectorView(objects.begin(), objects.end())};
-        }
-        ui64 currentSize = 0;
-        ui64 currentStart = 0;
-        std::vector> result;
-        for (ui32 i = 0; i < objects.size(); ++i) {
-            const ui64 nextSize = currentSize + objects[i].GetSize();
-            const ui64 nextOtherSize = fullSize - nextSize;
-            if ((nextSize >= BottomLimit && nextOtherSize >= BottomLimit) || (i + 1 == objects.size())) {
-                result.emplace_back(TVectorView(objects.begin() + currentStart, objects.begin() + i + 1));
-                currentSize = 0;
-                currentStart = i + 1;
-            } else {
-                currentSize = nextSize;
-            }
-        }
-        return result;
-    }
-};
-
-class TRBSplitLimiter {
-private:
-    std::deque Slices;
-    std::shared_ptr Counters;
-    std::shared_ptr Batch;
-    TSplitSettings Settings;
-public:
-    TRBSplitLimiter(std::shared_ptr counters,
-        ISchemaDetailInfo::TPtr schemaInfo, const std::shared_ptr batch, const TSplitSettings& settings);
-
-    static std::vector BuildSimpleSlices(const std::shared_ptr& batch, const TSplitSettings& settings,
-        const std::shared_ptr& counters, const ISchemaDetailInfo::TPtr& schemaInfo);
-
-    std::deque ExtractSlices() {
-        return std::move(Slices);
-    }
-
-    bool Next(std::vector>>& portionBlobs, std::shared_ptr& batch);
-};
-
-}
diff --git a/ydb/core/tx/columnshard/splitter/scheme_info.cpp b/ydb/core/tx/columnshard/splitter/scheme_info.cpp
index 912c1d54f2fb..fe4a65604e11 100644
--- a/ydb/core/tx/columnshard/splitter/scheme_info.cpp
+++ b/ydb/core/tx/columnshard/splitter/scheme_info.cpp
@@ -2,4 +2,12 @@
 
 namespace NKikimr::NOlap {
 
+NKikimr::NOlap::TColumnSaver ISchemaDetailInfo::GetColumnSaver(const ui32 columnId) const {
+    auto saver = DoGetColumnSaver(columnId);
+    if (OverrideSerializer) {
+        saver.ResetSerializer(*OverrideSerializer);
+    }
+    return saver;
+}
+
 }
diff --git a/ydb/core/tx/columnshard/splitter/scheme_info.h b/ydb/core/tx/columnshard/splitter/scheme_info.h
index 1e00f53343b6..1e72e63e9d35 100644
--- a/ydb/core/tx/columnshard/splitter/scheme_info.h
+++ b/ydb/core/tx/columnshard/splitter/scheme_info.h
@@ -8,11 +8,15 @@
 namespace NKikimr::NOlap {
 
 class ISchemaDetailInfo {
+private:
+    YDB_ACCESSOR_DEF(std::optional, OverrideSerializer);
+protected:
+    virtual TColumnSaver DoGetColumnSaver(const ui32 columnId) const = 0;
 public:
     using TPtr = std::shared_ptr;
     virtual ~ISchemaDetailInfo() = default;
     virtual ui32 GetColumnId(const std::string& fieldName) const = 0;
-    virtual TColumnSaver GetColumnSaver(const ui32 columnId) const = 0;
+    TColumnSaver GetColumnSaver(const ui32 columnId) const;
     virtual std::shared_ptr GetField(const ui32 columnId) const = 0;
     virtual std::optional GetColumnSerializationStats(const ui32 columnId) const = 0;
     virtual bool NeedMinMaxForColumn(const ui32 columnId) const = 0;
diff --git a/ydb/core/tx/columnshard/splitter/settings.cpp b/ydb/core/tx/columnshard/splitter/settings.cpp
index 36ba5be4f7ed..65a6b822ba5f 100644
--- a/ydb/core/tx/columnshard/splitter/settings.cpp
+++ b/ydb/core/tx/columnshard/splitter/settings.cpp
@@ -1,5 +1,5 @@
 #include "settings.h"
 
-namespace NKikimr::NOlap {
+namespace NKikimr::NOlap::NSplitter {
 
 }
diff --git a/ydb/core/tx/columnshard/splitter/settings.h b/ydb/core/tx/columnshard/splitter/settings.h
index 34bc29783799..146d1147aef2 100644
--- a/ydb/core/tx/columnshard/splitter/settings.h
+++ b/ydb/core/tx/columnshard/splitter/settings.h
@@ -2,9 +2,15 @@
 
 #include 
 
+#include 
+
 #include 
+#include 
+#include 
+#include 
+#include 
 
-namespace NKikimr::NOlap {
+namespace NKikimr::NOlap::NSplitter {
 
 class TSplitSettings {
 private:
@@ -29,4 +35,97 @@ class TSplitSettings {
         return MaxPortionSize;
     }
 };
+
+class TGroupFeatures {
+private:
+    YDB_READONLY_DEF(TString, Name);
+    YDB_READONLY_DEF(TSplitSettings, SplitSettings);
+    YDB_READONLY_DEF(std::set, EntityIds);
+public:
+    TGroupFeatures(const TString& name, const TSplitSettings& settings, std::set&& entities)
+        : Name(name)
+        , SplitSettings(settings)
+        , EntityIds(std::move(entities)) {
+        AFL_VERIFY(!!Name);
+    }
+
+    TGroupFeatures(const TString& name, const TSplitSettings& settings)
+        : Name(name)
+        , SplitSettings(settings) {
+        AFL_VERIFY(!!Name);
+    }
+
+    void AddEntity(const ui32 entityId) {
+        AFL_VERIFY(EntityIds.emplace(entityId).second);
+    }
+
+    bool IsEmpty() const {
+        return EntityIds.empty();
+    }
+
+    bool Contains(const ui32 entityId) const {
+        return EntityIds.empty() || EntityIds.contains(entityId);
+    }
+};
+
+class TEntityGroups {
+private:
+    THashMap GroupEntities;
+    THashSet UsedEntityIds;
+    TGroupFeatures DefaultGroupFeatures;
+public:
+    TEntityGroups(const TGroupFeatures& defaultGroup)
+        : DefaultGroupFeatures(defaultGroup) {
+        AFL_VERIFY(DefaultGroupFeatures.IsEmpty())("problem", "default group cannot be not empty");
+    }
+
+    TEntityGroups(const TSplitSettings& splitSettings, const TString& name)
+        : DefaultGroupFeatures(name, splitSettings) {
+
+    }
+
+    const TGroupFeatures& GetDefaultGroupFeatures() const {
+        return DefaultGroupFeatures;
+    }
+
+    bool IsEmpty() const {
+        return GroupEntities.empty();
+    }
+
+    TGroupFeatures& RegisterGroup(const TString& groupName, const TSplitSettings& settings) {
+        auto it = GroupEntities.find(groupName);
+        AFL_VERIFY(it == GroupEntities.end());
+        return GroupEntities.emplace(groupName, TGroupFeatures(groupName, settings)).first->second;
+    }
+
+    TGroupFeatures& MutableGroupVerified(const TString& groupName) {
+        auto it = GroupEntities.find(groupName);
+        AFL_VERIFY(it != GroupEntities.end());
+        return it->second;
+    }
+
+    TGroupFeatures* GetGroupOptional(const TString& groupName) {
+        auto it = GroupEntities.find(groupName);
+        if (it != GroupEntities.end()) {
+            return &it->second;
+        } else {
+            return nullptr;
+        }
+    }
+
+    void Add(TGroupFeatures&& features, const TString& groupName) {
+        for (auto&& i : features.GetEntityIds()) {
+            AFL_VERIFY(UsedEntityIds.emplace(i).second);
+        }
+        AFL_VERIFY(GroupEntities.emplace(groupName, std::move(features)).second);
+    }
+
+    THashMap::const_iterator begin() const {
+        return GroupEntities.begin();
+    }
+
+    THashMap::const_iterator end() const {
+        return GroupEntities.end();
+    }
+};
 }
diff --git a/ydb/core/tx/columnshard/splitter/similar_packer.cpp b/ydb/core/tx/columnshard/splitter/similar_packer.cpp
new file mode 100644
index 000000000000..9d22b3a6b255
--- /dev/null
+++ b/ydb/core/tx/columnshard/splitter/similar_packer.cpp
@@ -0,0 +1,5 @@
+#include "similar_packer.h"
+
+namespace NKikimr::NOlap {
+
+}
diff --git a/ydb/core/tx/columnshard/splitter/similar_packer.h b/ydb/core/tx/columnshard/splitter/similar_packer.h
new file mode 100644
index 000000000000..54abde2640fb
--- /dev/null
+++ b/ydb/core/tx/columnshard/splitter/similar_packer.h
@@ -0,0 +1,81 @@
+#pragma once
+#include 
+
+#include 
+
+namespace NKikimr::NOlap {
+
+template 
+class TArrayView {
+private:
+    typename TContainer::iterator Begin;
+    typename TContainer::iterator End;
+public:
+    TArrayView(typename TContainer::iterator itBegin, typename TContainer::iterator itEnd)
+        : Begin(itBegin)
+        , End(itEnd) {
+
+    }
+
+    typename TContainer::iterator begin() {
+        return Begin;
+    }
+
+    typename TContainer::iterator end() {
+        return End;
+    }
+
+    typename TContainer::value_type& front() {
+        return *Begin;
+    }
+
+    typename TContainer::value_type& operator[](const size_t index) {
+        return *(Begin + index);
+    }
+
+    size_t size() {
+        return End - Begin;
+    }
+};
+
+template 
+using TVectorView = TArrayView>;
+
+class TSimilarPacker {
+private:
+    const ui64 BottomLimitNecessary = 0;
+public:
+    TSimilarPacker(const ui64 bottomLimitNecessary)
+        : BottomLimitNecessary(bottomLimitNecessary)
+    {
+
+    }
+
+    template 
+    std::vector> Split(std::vector& objects) {
+        ui64 fullSize = 0;
+        for (auto&& i : objects) {
+            fullSize += i.GetSize();
+        }
+        if (fullSize <= BottomLimitNecessary) {
+            return {TVectorView(objects.begin(), objects.end())};
+        }
+        ui64 currentSize = 0;
+        ui64 currentStart = 0;
+        std::vector> result;
+        for (ui32 i = 0; i < objects.size(); ++i) {
+            const ui64 nextSize = currentSize + objects[i].GetSize();
+            const ui64 nextOtherSize = fullSize - nextSize;
+            if ((nextSize >= BottomLimitNecessary && nextOtherSize >= BottomLimitNecessary) || (i + 1 == objects.size())) {
+                result.emplace_back(TVectorView(objects.begin() + currentStart, objects.begin() + i + 1));
+                currentSize = 0;
+                currentStart = i + 1;
+            } else {
+                currentSize = nextSize;
+            }
+        }
+        return result;
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/splitter/simple.h b/ydb/core/tx/columnshard/splitter/simple.h
index d83df17125a0..48c7b9efa009 100644
--- a/ydb/core/tx/columnshard/splitter/simple.h
+++ b/ydb/core/tx/columnshard/splitter/simple.h
@@ -172,6 +172,10 @@ class TSplittedColumnChunk: public IPortionColumnChunk {
     virtual std::shared_ptr DoGetLastScalar() const override {
         return Data.GetLastScalar();
     }
+    virtual std::shared_ptr DoCopyWithAnotherBlob(TString&& /*data*/, const TSimpleColumnInfo& /*columnInfo*/) const override {
+        AFL_VERIFY(false);
+        return nullptr;
+    }
 
 public:
     i64 GetSize() const {
diff --git a/ydb/core/tx/columnshard/splitter/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/splitter/ut/CMakeLists.darwin-arm64.txt
index a3bb444c1e83..9a8cfbcb9dca 100644
--- a/ydb/core/tx/columnshard/splitter/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/columnshard/splitter/ut/CMakeLists.darwin-arm64.txt
@@ -24,7 +24,7 @@ target_link_libraries(ydb-core-tx-columnshard-splitter-ut PUBLIC
   libs-apache-arrow
   ydb-library-arrow_kernels
   tx-columnshard-counters
-  formats-arrow-compression
+  columnshard-engines-portions
   core-kqp-common
   yql-parser-pg_wrapper
   yql-public-udf
@@ -33,15 +33,17 @@ target_link_libraries(ydb-core-tx-columnshard-splitter-ut PUBLIC
   core-tx-tx_proxy
   ydb-core-tx
   ydb-core-mind
+  minikql-comp_nodes-llvm14
   udf-service-exception_policy
   yql-sql-pg
+  ydb-services-kesus
+  ydb-services-persqueue_cluster_discovery
+  ydb-services-ydb
 )
 target_link_options(ydb-core-tx-columnshard-splitter-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-columnshard-splitter-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/ut/ut_splitter.cpp
@@ -71,6 +73,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/splitter/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/splitter/ut/CMakeLists.darwin-x86_64.txt
index 9a37386f9988..424039ecc775 100644
--- a/ydb/core/tx/columnshard/splitter/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/columnshard/splitter/ut/CMakeLists.darwin-x86_64.txt
@@ -25,7 +25,7 @@ target_link_libraries(ydb-core-tx-columnshard-splitter-ut PUBLIC
   libs-apache-arrow
   ydb-library-arrow_kernels
   tx-columnshard-counters
-  formats-arrow-compression
+  columnshard-engines-portions
   core-kqp-common
   yql-parser-pg_wrapper
   yql-public-udf
@@ -34,15 +34,17 @@ target_link_libraries(ydb-core-tx-columnshard-splitter-ut PUBLIC
   core-tx-tx_proxy
   ydb-core-tx
   ydb-core-mind
+  minikql-comp_nodes-llvm14
   udf-service-exception_policy
   yql-sql-pg
+  ydb-services-kesus
+  ydb-services-persqueue_cluster_discovery
+  ydb-services-ydb
 )
 target_link_options(ydb-core-tx-columnshard-splitter-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-columnshard-splitter-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/ut/ut_splitter.cpp
@@ -72,6 +74,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/splitter/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/splitter/ut/CMakeLists.linux-aarch64.txt
index 4004fb00acab..e3816268cd7e 100644
--- a/ydb/core/tx/columnshard/splitter/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/columnshard/splitter/ut/CMakeLists.linux-aarch64.txt
@@ -25,7 +25,7 @@ target_link_libraries(ydb-core-tx-columnshard-splitter-ut PUBLIC
   libs-apache-arrow
   ydb-library-arrow_kernels
   tx-columnshard-counters
-  formats-arrow-compression
+  columnshard-engines-portions
   core-kqp-common
   yql-parser-pg_wrapper
   yql-public-udf
@@ -34,8 +34,12 @@ target_link_libraries(ydb-core-tx-columnshard-splitter-ut PUBLIC
   core-tx-tx_proxy
   ydb-core-tx
   ydb-core-mind
+  minikql-comp_nodes-llvm14
   udf-service-exception_policy
   yql-sql-pg
+  ydb-services-kesus
+  ydb-services-persqueue_cluster_discovery
+  ydb-services-ydb
 )
 target_link_options(ydb-core-tx-columnshard-splitter-ut PRIVATE
   -ldl
@@ -43,9 +47,6 @@ target_link_options(ydb-core-tx-columnshard-splitter-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-columnshard-splitter-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/ut/ut_splitter.cpp
@@ -75,6 +76,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/splitter/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/splitter/ut/CMakeLists.linux-x86_64.txt
index 78af7fd737f9..d6f87e5afc8a 100644
--- a/ydb/core/tx/columnshard/splitter/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/columnshard/splitter/ut/CMakeLists.linux-x86_64.txt
@@ -26,7 +26,7 @@ target_link_libraries(ydb-core-tx-columnshard-splitter-ut PUBLIC
   libs-apache-arrow
   ydb-library-arrow_kernels
   tx-columnshard-counters
-  formats-arrow-compression
+  columnshard-engines-portions
   core-kqp-common
   yql-parser-pg_wrapper
   yql-public-udf
@@ -35,8 +35,12 @@ target_link_libraries(ydb-core-tx-columnshard-splitter-ut PUBLIC
   core-tx-tx_proxy
   ydb-core-tx
   ydb-core-mind
+  minikql-comp_nodes-llvm14
   udf-service-exception_policy
   yql-sql-pg
+  ydb-services-kesus
+  ydb-services-persqueue_cluster_discovery
+  ydb-services-ydb
 )
 target_link_options(ydb-core-tx-columnshard-splitter-ut PRIVATE
   -ldl
@@ -44,9 +48,6 @@ target_link_options(ydb-core-tx-columnshard-splitter-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-columnshard-splitter-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/ut/ut_splitter.cpp
@@ -76,6 +77,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/splitter/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/splitter/ut/CMakeLists.windows-x86_64.txt
index 344442f4e89c..6e1d7ab6bd19 100644
--- a/ydb/core/tx/columnshard/splitter/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/columnshard/splitter/ut/CMakeLists.windows-x86_64.txt
@@ -25,7 +25,7 @@ target_link_libraries(ydb-core-tx-columnshard-splitter-ut PUBLIC
   libs-apache-arrow
   ydb-library-arrow_kernels
   tx-columnshard-counters
-  formats-arrow-compression
+  columnshard-engines-portions
   core-kqp-common
   yql-parser-pg_wrapper
   yql-public-udf
@@ -34,8 +34,12 @@ target_link_libraries(ydb-core-tx-columnshard-splitter-ut PUBLIC
   core-tx-tx_proxy
   ydb-core-tx
   ydb-core-mind
+  minikql-comp_nodes-llvm14
   udf-service-exception_policy
   yql-sql-pg
+  ydb-services-kesus
+  ydb-services-persqueue_cluster_discovery
+  ydb-services-ydb
 )
 target_sources(ydb-core-tx-columnshard-splitter-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/splitter/ut/ut_splitter.cpp
@@ -65,6 +69,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/splitter/ut/ut_splitter.cpp b/ydb/core/tx/columnshard/splitter/ut/ut_splitter.cpp
index 3c5b881b4bb7..b63524185294 100644
--- a/ydb/core/tx/columnshard/splitter/ut/ut_splitter.cpp
+++ b/ydb/core/tx/columnshard/splitter/ut/ut_splitter.cpp
@@ -1,10 +1,17 @@
-#include 
-#include 
+#include 
+#include 
+#include 
+#include 
 #include 
-#include 
+#include 
+
 #include 
 #include 
-#include 
+#include 
+#include 
+
+#include 
+
 #include 
 
 Y_UNIT_TEST_SUITE(Splitter) {
@@ -14,6 +21,11 @@ Y_UNIT_TEST_SUITE(Splitter) {
     class TTestSnapshotSchema: public NKikimr::NOlap::ISchemaDetailInfo {
     private:
         mutable std::map Decoder;
+    protected:
+        virtual NKikimr::NOlap::TColumnSaver DoGetColumnSaver(const ui32 columnId) const override {
+            return NKikimr::NOlap::TColumnSaver(nullptr, std::make_shared(arrow::ipc::IpcOptions::Defaults()));
+        }
+
     public:
         virtual bool NeedMinMaxForColumn(const ui32 /*columnId*/) const override {
             return true;
@@ -22,10 +34,6 @@ Y_UNIT_TEST_SUITE(Splitter) {
             return false;
         }
 
-        virtual NKikimr::NOlap::TColumnSaver GetColumnSaver(const ui32 columnId) const override {
-            return NKikimr::NOlap::TColumnSaver(nullptr, std::make_shared(arrow::ipc::IpcWriteOptions::Defaults()));
-        }
-
         virtual std::optional GetColumnSerializationStats(const ui32 /*columnId*/) const override {
             return {};
         }
@@ -36,7 +44,7 @@ Y_UNIT_TEST_SUITE(Splitter) {
         NKikimr::NOlap::TColumnLoader GetColumnLoader(const ui32 columnId) const {
             arrow::FieldVector v = {std::make_shared(GetColumnName(columnId), std::make_shared())};
             auto schema = std::make_shared(v);
-            return NKikimr::NOlap::TColumnLoader(nullptr, std::make_shared(), schema, columnId);
+            return NKikimr::NOlap::TColumnLoader(nullptr, NSerialization::TSerializerContainer::GetDefaultSerializer(), schema, columnId);
         }
 
         virtual std::shared_ptr GetField(const ui32 columnId) const override {
@@ -67,79 +75,98 @@ Y_UNIT_TEST_SUITE(Splitter) {
         std::shared_ptr Schema = std::make_shared();
         YDB_ACCESSOR_DEF(std::optional, ExpectSlicesCount);
         YDB_ACCESSOR_DEF(std::optional, ExpectBlobsCount);
-        YDB_ACCESSOR(bool, HasMultiSplit, false);
-    public:
+        YDB_ACCESSOR(std::optional, ExpectPortionsCount, 1);
+        YDB_ACCESSOR_DEF(std::optional, ExpectChunksCount);
+        YDB_ACCESSOR(std::optional, ExpectedInternalSplitsCount, 0);
 
-        void Execute(std::shared_ptr batch) {
+    public:
+        void Execute(std::shared_ptr batch, 
+            const NKikimr::NOlap::NSplitter::TSplitSettings& settings = NKikimr::NOlap::NSplitter::TSplitSettings()
+            ) {
+            using namespace NKikimr::NOlap;
             NKikimr::NColumnShard::TIndexationCounters counters("test");
-            NKikimr::NOlap::TRBSplitLimiter limiter(counters.SplitterCounters, Schema, batch, NKikimr::NOlap::TSplitSettings());
-            std::vector>> chunksForBlob;
-            std::map>> restoredBatch;
-            std::vector blobsSize;
-            bool hasMultiSplit = false;
+            std::vector generalSlices;
+            {
+                auto slices = TBatchSerializedSlice::BuildSimpleSlices(batch, settings, counters.SplitterCounters, Schema);
+                for (auto&& i : slices) {
+                    generalSlices.emplace_back(i);
+                }
+            }
+
+            TSimilarPacker packer(settings.GetExpectedPortionSize());
+            auto packs = packer.Split(generalSlices);
+            const NSplitter::TEntityGroups groups(settings, "default");
+            const ui32 portionsCount = packs.size();
             ui32 blobsCount = 0;
-            ui32 slicesCount = 0;
-            std::shared_ptr sliceBatch;
-            while (limiter.Next(chunksForBlob, sliceBatch)) {
-                ++slicesCount;
-                TStringBuilder sb;
-                std::map recordsCountByColumn;
-                for (auto&& chunks : chunksForBlob) {
-                    ++blobsCount;
-                    ui64 blobSize = 0;
-                    sb << "[";
-                    std::set blobColumnChunks;
-                    for (auto&& iData : chunks) {
-                        auto i = dynamic_pointer_cast(iData);
-                        AFL_VERIFY(i);
-                        const ui32 columnId = i->GetColumnId();
-                        recordsCountByColumn[columnId] += i->GetRecordsCountVerified();
-                        restoredBatch[Schema->GetColumnName(columnId)].emplace_back(*Schema->GetColumnLoader(columnId).Apply(i->GetData()));
-                        blobSize += i->GetData().size();
-                        if (i->GetRecordsCount() != NKikimr::NOlap::TSplitSettings().GetMinRecordsCount() && !blobColumnChunks.emplace(columnId).second) {
-                            hasMultiSplit = true;
+            ui32 chunksCount = 0;
+            ui32 pagesSum = 0;
+            ui32 portionShift = 0;
+            ui32 internalSplitsCount = 0;
+            for (auto&& i : packs) {
+                ui32 portionRecordsCount = 0;
+                for (auto&& rc : i) {
+                    portionRecordsCount += rc.GetRecordsCount();
+                }
+                const ui32 pagesOriginal = i.size();
+                pagesSum += pagesOriginal;
+                TGeneralSerializedSlice slice(std::move(i));
+                auto blobsLocal = slice.GroupChunksByBlobs(groups);
+                internalSplitsCount += slice.GetInternalSplitsCount();
+                blobsCount += blobsLocal.size();
+                THashMap>> entityChunks;
+                ui32 portionSize = 0;
+                for (auto&& b : blobsLocal) {
+                    chunksCount += b.GetChunks().size();
+                    ui64 bSize = 0;
+                    for (auto&& c : b.GetChunks()) {
+                        bSize += c->GetData().size();
+                        AFL_VERIFY(c->GetEntityId());
+                        auto& v = entityChunks[c->GetEntityId()];
+                        if (v.size()) {
+                            AFL_VERIFY(v.back()->GetChunkIdxVerified() + 1 == c->GetChunkIdxVerified());
                         }
-                        sb << "(" << i->DebugString() << ")";
+                        entityChunks[c->GetEntityId()].emplace_back(c);
                     }
-                    blobsSize.emplace_back(blobSize);
-                    sb << "];";
+                    portionSize += bSize;
+                    AFL_VERIFY(bSize < (ui64)settings.GetMaxBlobSize());
+                    AFL_VERIFY(bSize * 1.01 > (ui64)settings.GetMinBlobSize() || (packs.size() == 1 && blobsLocal.size() == 1))("blob_size", bSize);
                 }
-                std::optional columnRecordsCount;
-                for (auto&& i : recordsCountByColumn) {
-                    if (!columnRecordsCount) {
-                        columnRecordsCount = i.second;
-                    } else {
-                        Y_ABORT_UNLESS(i.second == *columnRecordsCount);
+                AFL_VERIFY(portionSize >= settings.GetExpectedPortionSize() || packs.size() == 1)("size", portionSize)("limit", settings.GetMaxPortionSize());
+
+                THashMap> entitiesByRecordsCount;
+                ui32 pagesRestore = 0;
+                for (auto&& e : entityChunks) {
+                    const std::shared_ptr arr = batch->GetColumnByName(Schema->GetColumnName(e.first));
+                    AFL_VERIFY(arr);
+                    ui32 count = 0;
+                    for (auto&& c : e.second) {
+                        auto slice = arr->Slice(count + portionShift, c->GetRecordsCountVerified());
+                        auto readBatch = *Schema->GetColumnLoader(e.first).Apply(c->GetData());
+                        AFL_VERIFY(slice->length() == readBatch->num_rows());
+                        Y_ABORT_UNLESS(readBatch->column(0)->RangeEquals(*slice, 0, readBatch->num_rows(), 0, arrow::EqualOptions::Defaults()));
+                        count += c->GetRecordsCountVerified();
+                        AFL_VERIFY(entitiesByRecordsCount[count].emplace(e.first).second);
+                        AFL_VERIFY(entitiesByRecordsCount[count].size() <= (ui32)batch->num_columns());
+                        if (entitiesByRecordsCount[count].size() == (ui32)batch->num_columns()) {
+                            ++pagesRestore;
+                        }
                     }
+                    AFL_VERIFY(count == portionRecordsCount);
                 }
-                Cerr << sb << Endl;
-            }
-            if (ExpectBlobsCount) {
-                Y_ABORT_UNLESS(*ExpectBlobsCount == blobsCount);
-            }
-            if (ExpectSlicesCount) {
-                Y_ABORT_UNLESS(*ExpectSlicesCount == slicesCount);
-            }
-            Y_ABORT_UNLESS(hasMultiSplit == HasMultiSplit);
-            for (auto&& i : blobsSize) {
-                Y_ABORT_UNLESS(i < NKikimr::NOlap::TSplitSettings().GetMaxBlobSize());
-                Y_ABORT_UNLESS(i + 10000 >= NKikimr::NOlap::TSplitSettings().GetMinBlobSize() || blobsSize.size() == 1);
-            }
-            Y_ABORT_UNLESS(restoredBatch.size() == (ui32)batch->num_columns());
-            for (auto&& i : batch->schema()->fields()) {
-                auto it = restoredBatch.find(i->name());
-                Y_ABORT_UNLESS(it != restoredBatch.end());
-                auto column = batch->GetColumnByName(i->name());
-                Y_ABORT_UNLESS(column);
-                ui64 recordsCount = 0;
-                for (auto&& c : it->second) {
-                    Y_ABORT_UNLESS(c->num_columns() == 1);
-                    Y_ABORT_UNLESS(c->column(0)->RangeEquals(column, 0, c->num_rows(), recordsCount, arrow::EqualOptions::Defaults()));
-                    recordsCount += c->num_rows();
+                AFL_VERIFY(entitiesByRecordsCount.size() >= i.size());
+                AFL_VERIFY(pagesRestore == pagesOriginal || batch->num_columns() == 1)("restore", pagesRestore)("original", pagesOriginal);
+                for (auto&& c : entityChunks.begin()->second) {
+                    portionShift += c->GetRecordsCountVerified();
                 }
-                Y_ABORT_UNLESS(recordsCount == (ui32)batch->num_rows());
-
             }
+            AFL_VERIFY(portionShift = batch->num_rows());
+            AFL_VERIFY(pagesSum == generalSlices.size())("sum", pagesSum)("general_slices", generalSlices.size());
+            AFL_VERIFY(internalSplitsCount == ExpectedInternalSplitsCount.value_or(internalSplitsCount))("expected", *ExpectedInternalSplitsCount)("real", internalSplitsCount);
+            AFL_VERIFY(blobsCount == ExpectBlobsCount.value_or(blobsCount))("blobs_count", blobsCount)("expected", *ExpectBlobsCount);
+            AFL_VERIFY(pagesSum == ExpectSlicesCount.value_or(pagesSum))("sum", pagesSum)("expected", *ExpectSlicesCount);
+            AFL_VERIFY(portionsCount == ExpectPortionsCount.value_or(portionsCount))("portions_count", portionsCount)("expected", *ExpectPortionsCount);
+            AFL_VERIFY(chunksCount == ExpectChunksCount.value_or(chunksCount))("chunks_count", chunksCount)("expected", *ExpectChunksCount);
+            
         }
     };
 
@@ -158,7 +185,7 @@ Y_UNIT_TEST_SUITE(Splitter) {
         std::shared_ptr batch = NKikimr::NArrow::NConstruction::TRecordBatchConstructor({column}).BuildBatch(80048);
         NKikimr::NColumnShard::TIndexationCounters counters("test");
 
-        TSplitTester().SetExpectBlobsCount(1).SetExpectSlicesCount(1).SetHasMultiSplit(true).Execute(batch);
+        TSplitTester().SetExpectBlobsCount(1).SetExpectSlicesCount(8).Execute(batch);
     }
 
     Y_UNIT_TEST(Minimal) {
@@ -189,15 +216,36 @@ Y_UNIT_TEST_SUITE(Splitter) {
         TSplitTester().SetExpectBlobsCount(8).SetExpectSlicesCount(8).Execute(batch);
     }
 
+    Y_UNIT_TEST(CritSmallPortions) {
+        NConstruction::IArrayBuilder::TPtr columnBig = std::make_shared>(
+            "field1", NKikimr::NArrow::NConstruction::TStringPoolFiller(8, 7120));
+        NConstruction::IArrayBuilder::TPtr columnSmall = std::make_shared>(
+            "field2", NKikimr::NArrow::NConstruction::TStringPoolFiller(8, 128));
+        std::shared_ptr batch = NKikimr::NArrow::NConstruction::TRecordBatchConstructor({columnBig, columnSmall}).BuildBatch(80048);
+        NKikimr::NColumnShard::TIndexationCounters counters("test");
+
+        TSplitTester().SetExpectBlobsCount(80).SetExpectSlicesCount(80).SetExpectedInternalSplitsCount(0).SetExpectPortionsCount(40)
+            .Execute(batch, NKikimr::NOlap::NSplitter::TSplitSettings().SetMinRecordsCount(1000).SetMaxPortionSize(8000000));
+    }
+
     Y_UNIT_TEST(Crit) {
         NConstruction::IArrayBuilder::TPtr columnBig = std::make_shared>(
-            "field1", NKikimr::NArrow::NConstruction::TStringPoolFiller(8, 712));
+            "field1", NKikimr::NArrow::NConstruction::TStringPoolFiller(8, 7120));
         NConstruction::IArrayBuilder::TPtr columnSmall = std::make_shared>(
             "field2", NKikimr::NArrow::NConstruction::TStringPoolFiller(8, 128));
         std::shared_ptr batch = NKikimr::NArrow::NConstruction::TRecordBatchConstructor({columnBig, columnSmall}).BuildBatch(80048);
         NKikimr::NColumnShard::TIndexationCounters counters("test");
 
-        TSplitTester().SetExpectBlobsCount(16).SetExpectSlicesCount(8).Execute(batch);
+        TSplitTester().SetExpectBlobsCount(80).SetExpectSlicesCount(8).SetExpectedInternalSplitsCount(8).SetExpectPortionsCount(8).Execute(batch);
+    }
+
+    Y_UNIT_TEST(CritSimple) {
+        NConstruction::IArrayBuilder::TPtr columnBig = std::make_shared>(
+            "field1", NKikimr::NArrow::NConstruction::TStringPoolFiller(8, 7120));
+        std::shared_ptr batch = NKikimr::NArrow::NConstruction::TRecordBatchConstructor({columnBig}).BuildBatch(80048);
+        NKikimr::NColumnShard::TIndexationCounters counters("test");
+
+        TSplitTester().SetExpectBlobsCount(72).SetExpectSlicesCount(8).SetExpectedInternalSplitsCount(0).SetExpectPortionsCount(8).Execute(batch);
     }
 
 };
diff --git a/ydb/core/tx/columnshard/splitter/ut/ya.make b/ydb/core/tx/columnshard/splitter/ut/ya.make
index e242c0b6b57b..24d266bffa8e 100644
--- a/ydb/core/tx/columnshard/splitter/ut/ya.make
+++ b/ydb/core/tx/columnshard/splitter/ut/ya.make
@@ -7,14 +7,17 @@ PEERDIR(
     ydb/library/arrow_kernels
 
     ydb/core/tx/columnshard/counters
-    ydb/core/formats/arrow/compression
     ydb/core/tx/columnshard/engines/portions
+    ydb/core/tx/columnshard/common
+    ydb/core/tx/columnshard/blobs_action
+    ydb/core/tx/columnshard/data_sharing
     ydb/core/kqp/common
     ydb/library/yql/parser/pg_wrapper
     ydb/library/yql/public/udf
     ydb/core/persqueue
     ydb/core/kqp/session_actor
     ydb/core/tx/tx_proxy
+    ydb/core/tx/columnshard/engines/storage/chunks
     ydb/core/tx
     ydb/core/mind
     ydb/library/yql/minikql/comp_nodes/llvm14
diff --git a/ydb/core/tx/columnshard/splitter/ya.make b/ydb/core/tx/columnshard/splitter/ya.make
index 9f2f0719a9a2..5f6c60cdf1ff 100644
--- a/ydb/core/tx/columnshard/splitter/ya.make
+++ b/ydb/core/tx/columnshard/splitter/ya.make
@@ -4,7 +4,7 @@ SRCS(
     batch_slice.cpp
     chunks.cpp
     simple.cpp
-    rb_splitter.cpp
+    similar_packer.cpp
     stats.cpp
     column_info.cpp
     settings.cpp
@@ -15,7 +15,8 @@ SRCS(
 
 PEERDIR(
     contrib/libs/apache/arrow
-    ydb/core/tx/columnshard/engines/storage
+    ydb/core/tx/columnshard/splitter/abstract
+    ydb/core/tx/columnshard/engines/scheme
 )
 
 END()
diff --git a/ydb/core/tx/columnshard/tables_manager.cpp b/ydb/core/tx/columnshard/tables_manager.cpp
index c100b8d3481f..e7d3ca6ba0c8 100644
--- a/ydb/core/tx/columnshard/tables_manager.cpp
+++ b/ydb/core/tx/columnshard/tables_manager.cpp
@@ -37,13 +37,18 @@ bool TTablesManager::FillMonitoringReport(NTabletFlatExecutor::TTransactionConte
         }
     }
     json.InsertValue("tables_count", Tables.size());
-    json.InsertValue("presets_count", SchemaPresets.size());
+    json.InsertValue("presets_count", SchemaPresetsIds.size());
     json.InsertValue("to_drop_count", PathsToDrop.size());
     return true;
 }
 
 bool TTablesManager::InitFromDB(NIceDb::TNiceDb& db) {
+    using TTableVersionsInfo = TVersionedSchema;
+
+    THashMap schemaPresets;
+    THashMap tableVersions;
     {
+        TMemoryProfileGuard g("TTablesManager/InitFromDB::Tables");
         auto rowset = db.Table().Select();
         if (!rowset.IsReady()) {
             return false;
@@ -57,7 +62,9 @@ bool TTablesManager::InitFromDB(NIceDb::TNiceDb& db) {
             if (table.IsDropped()) {
                 PathsToDrop.insert(table.GetPathId());
             }
-            Tables.insert_or_assign(table.GetPathId(), std::move(table));
+
+            AFL_VERIFY(tableVersions.emplace(table.GetPathId(), TTableVersionsInfo()).second);
+            AFL_VERIFY(Tables.emplace(table.GetPathId(), std::move(table)).second);
 
             if (!rowset.Next()) {
                 return false;
@@ -67,6 +74,7 @@ bool TTablesManager::InitFromDB(NIceDb::TNiceDb& db) {
 
     bool isFakePresetOnly = true;
     {
+        TMemoryProfileGuard g("TTablesManager/InitFromDB::SchemaPresets");
         auto rowset = db.Table().Select();
         if (!rowset.IsReady()) {
             return false;
@@ -82,7 +90,8 @@ bool TTablesManager::InitFromDB(NIceDb::TNiceDb& db) {
                 Y_VERIFY_S(preset.GetName() == "default", "Preset name: " + preset.GetName());
                 isFakePresetOnly = false;
             }
-            SchemaPresets.insert_or_assign(preset.GetId(), preset);
+            AFL_VERIFY(schemaPresets.emplace(preset.GetId(), preset).second);
+            AFL_VERIFY(SchemaPresetsIds.emplace(preset.GetId()).second);
             if (!rowset.Next()) {
                 return false;
             }
@@ -90,6 +99,7 @@ bool TTablesManager::InitFromDB(NIceDb::TNiceDb& db) {
     }
 
     {
+        TMemoryProfileGuard g("TTablesManager/InitFromDB::Versions");
         auto rowset = db.Table().Select();
         if (!rowset.IsReady()) {
             return false;
@@ -101,13 +111,14 @@ bool TTablesManager::InitFromDB(NIceDb::TNiceDb& db) {
             Y_ABORT_UNLESS(Tables.contains(pathId));
             NOlap::TSnapshot version(
                 rowset.GetValue(),
-                    rowset.GetValue());
+                rowset.GetValue());
 
-            auto& table = Tables.at(pathId);
-            TTableInfo::TTableVersionInfo versionInfo;
+            auto& table = Tables[pathId];
+            auto& versionsInfo = tableVersions[pathId];
+            NKikimrTxColumnShard::TTableVersionInfo versionInfo;
             Y_ABORT_UNLESS(versionInfo.ParseFromString(rowset.GetValue()));
             AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("event", "load_table_version")("path_id", pathId)("snapshot", version)("version", versionInfo.HasSchema() ? versionInfo.GetSchema().GetVersion() : -1);
-            Y_ABORT_UNLESS(SchemaPresets.contains(versionInfo.GetSchemaPresetId()));
+            Y_ABORT_UNLESS(schemaPresets.contains(versionInfo.GetSchemaPresetId()));
 
             if (!table.IsDropped()) {
                 auto& ttlSettings = versionInfo.GetTtlSettings();
@@ -120,7 +131,8 @@ bool TTablesManager::InitFromDB(NIceDb::TNiceDb& db) {
                     }
                 }
             }
-            table.AddVersion(version, versionInfo);
+            table.AddVersion(version);
+            versionsInfo.AddVersion(version, versionInfo);
             if (!rowset.Next()) {
                 return false;
             }
@@ -128,6 +140,7 @@ bool TTablesManager::InitFromDB(NIceDb::TNiceDb& db) {
     }
 
     {
+        TMemoryProfileGuard g("TTablesManager/InitFromDB::PresetVersions");
         auto rowset = db.Table().Select();
         if (!rowset.IsReady()) {
             return false;
@@ -135,8 +148,8 @@ bool TTablesManager::InitFromDB(NIceDb::TNiceDb& db) {
 
         while (!rowset.EndOfSet()) {
             const ui32 id = rowset.GetValue();
-            Y_ABORT_UNLESS(SchemaPresets.contains(id));
-            auto& preset = SchemaPresets.at(id);
+            Y_ABORT_UNLESS(schemaPresets.contains(id));
+            auto& preset = schemaPresets[id];
             NOlap::TSnapshot version(
                 rowset.GetValue(),
                 rowset.GetValue());
@@ -151,19 +164,27 @@ bool TTablesManager::InitFromDB(NIceDb::TNiceDb& db) {
         }
     }
 
-    for (const auto& [id, preset] : SchemaPresets) {
+    TMemoryProfileGuard g("TTablesManager/InitFromDB::Other");
+    for (const auto& [id, preset] : schemaPresets) {
         if (isFakePresetOnly) {
             Y_ABORT_UNLESS(id == 0);
         } else {
             Y_ABORT_UNLESS(id > 0);
         }
-        for (const auto& [version, schemaInfo] : preset.GetVersions()) {
+        for (const auto& [version, schemaInfo] : preset.GetVersionsById()) {
             if (schemaInfo.HasSchema()) {
                 AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("event", "index_schema")("preset_id", id)("snapshot", version)("version", schemaInfo.GetSchema().GetVersion());
-                IndexSchemaVersion(version, schemaInfo.GetSchema());
+                if (!PrimaryIndex) {
+                    PrimaryIndex = std::make_unique(TabletId, StoragesManager, preset.GetMinVersionForId(schemaInfo.GetSchema().GetVersion()), schemaInfo.GetSchema());
+                } else {
+                    PrimaryIndex->RegisterSchemaVersion(preset.GetMinVersionForId(schemaInfo.GetSchema().GetVersion()),  schemaInfo.GetSchema());
+                }
             }
         }
     }
+    for (auto&& i : Tables) {
+        PrimaryIndex->RegisterTable(i.first);
+    }
     return true;
 }
 
@@ -176,11 +197,14 @@ bool TTablesManager::LoadIndex(NOlap::TDbWrapper& idxDB) {
     return true;
 }
 
-bool TTablesManager::HasTable(const ui64 pathId) const {
+bool TTablesManager::HasTable(const ui64 pathId, bool withDeleted) const {
     auto it = Tables.find(pathId);
-    if (it == Tables.end() || it->second.IsDropped()) {
+    if (it == Tables.end()) {
         return false;
     }
+    if (it->second.IsDropped()) {
+        return withDeleted;
+    }
     return true;
 }
 
@@ -189,7 +213,7 @@ bool TTablesManager::IsReadyForWrite(const ui64 pathId) const {
 }
 
 bool TTablesManager::HasPreset(const ui32 presetId) const {
-    return SchemaPresets.contains(presetId);
+    return SchemaPresetsIds.contains(presetId);
 }
 
 const TTableInfo& TTablesManager::GetTable(const ui64 pathId) const {
@@ -201,8 +225,7 @@ ui64 TTablesManager::GetMemoryUsage() const {
     ui64 memory =
         Tables.size() * sizeof(TTableInfo) +
         PathsToDrop.size() * sizeof(ui64) +
-        Ttl.PathsCount() * sizeof(TTtl::TDescription) +
-        SchemaPresets.size() * sizeof(TSchemaPreset);
+        Ttl.PathsCount() * sizeof(TTtl::TDescription);
     if (PrimaryIndex) {
         memory += PrimaryIndex->MemoryUsage();
     }
@@ -210,20 +233,17 @@ ui64 TTablesManager::GetMemoryUsage() const {
 }
 
 void TTablesManager::DropTable(const ui64 pathId, const NOlap::TSnapshot& version, NIceDb::TNiceDb& db) {
-    auto& table = Tables.at(pathId);
+    AFL_VERIFY(Tables.contains(pathId));
+    auto& table = Tables[pathId];
     table.SetDropVersion(version);
     PathsToDrop.insert(pathId);
     Ttl.DropPathTtl(pathId);
-    if (PrimaryIndex) {
-        PrimaryIndex->OnTieringModified(nullptr, Ttl);
-    }
     Schema::SaveTableDropVersion(db, pathId, version.GetPlanStep(), version.GetTxId());
 }
 
 void TTablesManager::DropPreset(const ui32 presetId, const NOlap::TSnapshot& version, NIceDb::TNiceDb& db) {
-    auto& preset = SchemaPresets.at(presetId);
-    Y_ABORT_UNLESS(preset.GetName() != "default", "Cannot drop the default preset");
-    preset.SetDropVersion(version);
+    AFL_VERIFY(SchemaPresetsIds.contains(presetId));
+    SchemaPresetsIds.erase(presetId);
     Schema::SaveSchemaPresetDropVersion(db, presetId, version);
 }
 
@@ -233,24 +253,23 @@ void TTablesManager::RegisterTable(TTableInfo&& table, NIceDb::TNiceDb& db) {
 
     Schema::SaveTableInfo(db, table.GetPathId(), table.GetTieringUsage());
     const ui64 pathId = table.GetPathId();
-    Tables.insert_or_assign(pathId, std::move(table));
+    AFL_VERIFY(Tables.emplace(pathId, std::move(table)).second);
     if (PrimaryIndex) {
         PrimaryIndex->RegisterTable(pathId);
     }
 }
 
 bool TTablesManager::RegisterSchemaPreset(const TSchemaPreset& schemaPreset, NIceDb::TNiceDb& db) {
-    if (SchemaPresets.contains(schemaPreset.GetId())) {
+    if (SchemaPresetsIds.contains(schemaPreset.GetId())) {
         return false;
     }
+    SchemaPresetsIds.emplace(schemaPreset.GetId());
     Schema::SaveSchemaPresetInfo(db, schemaPreset.GetId(), schemaPreset.GetName());
-    SchemaPresets.insert_or_assign(schemaPreset.GetId(), schemaPreset);
     return true;
 }
 
 void TTablesManager::AddSchemaVersion(const ui32 presetId, const NOlap::TSnapshot& version, const NKikimrSchemeOp::TColumnTableSchema& schema, NIceDb::TNiceDb& db) {
-    Y_ABORT_UNLESS(SchemaPresets.contains(presetId));
-    auto preset = SchemaPresets.at(presetId);
+    Y_ABORT_UNLESS(SchemaPresetsIds.contains(presetId));
 
     TSchemaPreset::TSchemaPresetVersionInfo versionInfo;
     versionInfo.SetId(presetId);
@@ -258,30 +277,37 @@ void TTablesManager::AddSchemaVersion(const ui32 presetId, const NOlap::TSnapsho
     versionInfo.SetSinceTxId(version.GetTxId());
     *versionInfo.MutableSchema() = schema;
 
-    auto& schemaPreset = SchemaPresets.at(presetId);
     Schema::SaveSchemaPresetVersionInfo(db, presetId, version, versionInfo);
-    schemaPreset.AddVersion(version, versionInfo);
-    if (versionInfo.HasSchema()){
-        IndexSchemaVersion(version, versionInfo.GetSchema());
+    if (versionInfo.HasSchema()) {
+        if (!PrimaryIndex) {
+            PrimaryIndex = std::make_unique(TabletId, StoragesManager, version, schema);
+            for (auto&& i : Tables) {
+                PrimaryIndex->RegisterTable(i.first);
+            }
+        } else {
+            PrimaryIndex->RegisterSchemaVersion(version, schema);
+        }
         for (auto& columnName : Ttl.TtlColumns()) {
             PrimaryIndex->GetVersionedIndex().GetLastSchema()->GetIndexInfo().CheckTtlColumn(columnName);
         }
     }
 }
 
-void TTablesManager::AddTableVersion(const ui64 pathId, const NOlap::TSnapshot& version, const TTableInfo::TTableVersionInfo& versionInfo, NIceDb::TNiceDb& db) {
-    auto& table = Tables.at(pathId);
+void TTablesManager::AddTableVersion(const ui64 pathId, const NOlap::TSnapshot& version, const NKikimrTxColumnShard::TTableVersionInfo& versionInfo, NIceDb::TNiceDb& db, std::shared_ptr& manager) {
+    auto it = Tables.find(pathId);
+    AFL_VERIFY(it != Tables.end());
+    auto& table = it->second;
 
     if (versionInfo.HasSchemaPresetId()) {
-        Y_ABORT_UNLESS(SchemaPresets.contains(versionInfo.GetSchemaPresetId()));
+        Y_ABORT_UNLESS(SchemaPresetsIds.contains(versionInfo.GetSchemaPresetId()));
     } else if (versionInfo.HasSchema()) {
         TSchemaPreset fakePreset;
-        if (SchemaPresets.empty()) {
+        if (SchemaPresetsIds.empty()) {
             TSchemaPreset fakePreset;
             Y_ABORT_UNLESS(RegisterSchemaPreset(fakePreset, db));
             AddSchemaVersion(fakePreset.GetId(), version, versionInfo.GetSchema(), db);
         } else {
-            Y_ABORT_UNLESS(SchemaPresets.contains(fakePreset.GetId()));
+            Y_ABORT_UNLESS(SchemaPresetsIds.contains(fakePreset.GetId()));
             AddSchemaVersion(fakePreset.GetId(), version, versionInfo.GetSchema(), db);
         }
     }
@@ -293,34 +319,12 @@ void TTablesManager::AddTableVersion(const ui64 pathId, const NOlap::TSnapshot&
         } else {
             Ttl.DropPathTtl(pathId);
         }
-        if (PrimaryIndex) {
-            PrimaryIndex->OnTieringModified(nullptr, Ttl);
+        if (PrimaryIndex && manager->IsReady()) {
+            PrimaryIndex->OnTieringModified(manager, Ttl, pathId);
         }
     }
     Schema::SaveTableVersionInfo(db, pathId, version, versionInfo);
-    table.AddVersion(version, versionInfo);
-}
-
-void TTablesManager::IndexSchemaVersion(const NOlap::TSnapshot& snapshot, const NKikimrSchemeOp::TColumnTableSchema& schema) {
-    NOlap::TIndexInfo indexInfo = DeserializeIndexInfoFromProto(schema);
-    indexInfo.SetAllKeys();
-    const bool isFirstPrimaryIndexInitialization = !PrimaryIndex;
-    if (!PrimaryIndex) {
-        PrimaryIndex = std::make_unique(TabletId, NOlap::TCompactionLimits(), StoragesManager);
-    }
-    PrimaryIndex->RegisterSchemaVersion(snapshot, std::move(indexInfo));
-    if (isFirstPrimaryIndexInitialization) {
-        for (auto&& i : Tables) {
-            PrimaryIndex->RegisterTable(i.first);
-        }
-    }
-    PrimaryIndex->OnTieringModified(nullptr, Ttl);
-}
-
-NOlap::TIndexInfo TTablesManager::DeserializeIndexInfoFromProto(const NKikimrSchemeOp::TColumnTableSchema& schema) {
-    std::optional indexInfo = NOlap::TIndexInfo::BuildFromProto(schema);
-    Y_ABORT_UNLESS(indexInfo);
-    return *indexInfo;
+    table.AddVersion(version);
 }
 
 TTablesManager::TTablesManager(const std::shared_ptr& storagesManager, const ui64 tabletId)
@@ -329,23 +333,29 @@ TTablesManager::TTablesManager(const std::shared_ptr& s
 {
 }
 
-bool TTablesManager::TryFinalizeDropPath(NTabletFlatExecutor::TTransactionContext& txc, const ui64 pathId) {
+bool TTablesManager::TryFinalizeDropPathOnExecute(NTable::TDatabase& dbTable, const ui64 pathId) const {
     auto itDrop = PathsToDrop.find(pathId);
-    if (itDrop == PathsToDrop.end()) {
-        return false;
-    }
-    if (GetPrimaryIndexSafe().HasDataInPathId(pathId)) {
-        return false;
-    }
-    PathsToDrop.erase(itDrop);
-    NIceDb::TNiceDb db(txc.DB);
+    AFL_VERIFY(itDrop != PathsToDrop.end());
+    AFL_VERIFY(!GetPrimaryIndexSafe().HasDataInPathId(pathId));
+    NIceDb::TNiceDb db(dbTable);
     NColumnShard::Schema::EraseTableInfo(db, pathId);
-    const auto& table = Tables.find(pathId);
-    Y_ABORT_UNLESS(table != Tables.end(), "No schema for path %lu", pathId);
-    for (auto&& tableVersion : table->second.GetVersions()) {
-        NColumnShard::Schema::EraseTableVersionInfo(db, pathId, tableVersion.first);
+    const auto& itTable = Tables.find(pathId);
+    AFL_VERIFY(itTable != Tables.end())("problem", "No schema for path")("path_id", pathId);
+    for (auto&& tableVersion : itTable->second.GetVersions()) {
+        NColumnShard::Schema::EraseTableVersionInfo(db, pathId, tableVersion);
     }
     return true;
 }
 
+bool TTablesManager::TryFinalizeDropPathOnComplete(const ui64 pathId) {
+    auto itDrop = PathsToDrop.find(pathId);
+    AFL_VERIFY(itDrop != PathsToDrop.end());
+    AFL_VERIFY(!GetPrimaryIndexSafe().HasDataInPathId(pathId));
+    PathsToDrop.erase(itDrop);
+    const auto& itTable = Tables.find(pathId);
+    AFL_VERIFY(itTable != Tables.end())("problem", "No schema for path")("path_id", pathId);
+    Tables.erase(itTable);
+    return true;
+}
+
 }
diff --git a/ydb/core/tx/columnshard/tables_manager.h b/ydb/core/tx/columnshard/tables_manager.h
index 725bf197c284..60e1a5f66dbd 100644
--- a/ydb/core/tx/columnshard/tables_manager.h
+++ b/ydb/core/tx/columnshard/tables_manager.h
@@ -13,43 +13,40 @@
 
 namespace NKikimr::NColumnShard {
 
-template
+template
 class TVersionedSchema {
-protected:
-    std::optional DropVersion;
-    TMap Versions;
-
+private:
+    TMap Versions;
+    TMap VersionsById;
+    TMap MinVersionById;
 public:
-    bool IsDropped() const {
-        return DropVersion.has_value();
-    }
-
     bool IsEmpty() const {
-        return Versions.empty();
+        return VersionsById.empty();
     }
 
-    void SetDropVersion(const NOlap::TSnapshot& version) {
-        DropVersion = version;
+    const TMap& GetVersionsById() const {
+        return VersionsById;
     }
 
-    const TMap& GetVersions() const {
-        return Versions;
+    NOlap::TSnapshot GetMinVersionForId(const ui64 sVersion) const {
+        auto it = MinVersionById.find(sVersion);
+        Y_ABORT_UNLESS(it != MinVersionById.end());
+        return it->second;
     }
 
-    const TSchemaProto& GetVersion(const NOlap::TSnapshot& version) const {
-        const TSchemaProto* result = nullptr;
-        for (auto ver : Versions) {
-            if (ver.first > version) {
-                break;
-            }
-            result = &ver.second;
+    void AddVersion(const NOlap::TSnapshot& snapshot, const TVersionData& versionInfo) {
+        ui64 ssVersion = 0;
+        if (versionInfo.HasSchema()) {
+            ssVersion = versionInfo.GetSchema().GetVersion();
         }
-        Y_ABORT_UNLESS(!!result);
-        return *result;
-    }
+        VersionsById.emplace(ssVersion, versionInfo);
+        Y_ABORT_UNLESS(Versions.emplace(snapshot, ssVersion).second);
 
-    void AddVersion(const NOlap::TSnapshot& version, const TSchemaProto& versionInfo) {
-        Versions[version] = versionInfo;
+        if (MinVersionById.contains(ssVersion)) {
+            MinVersionById.emplace(ssVersion, std::min(snapshot, MinVersionById.at(ssVersion)));
+        } else {
+            MinVersionById.emplace(ssVersion, snapshot);
+        }
     }
 };
 
@@ -80,22 +77,16 @@ class TSchemaPreset : public TVersionedSchema();
         }
         Y_ABORT_UNLESS(!Id || Name == "default", "Unsupported preset at load time");
-
-        if (rowset.template HaveValue() &&
-            rowset.template HaveValue())
-        {
-            DropVersion.emplace(rowset.template GetValue(),
-                rowset.template GetValue());
-        }
         return true;
     }
 };
 
-class TTableInfo : public TVersionedSchema {
+class TTableInfo {
 public:
-    using TTableVersionInfo = NKikimrTxColumnShard::TTableVersionInfo;
     ui64 PathId;
     TString TieringUsage;
+    std::optional DropVersion;
+    YDB_READONLY_DEF(TSet, Versions);
 
 public:
     const TString& GetTieringUsage() const {
@@ -107,10 +98,26 @@ class TTableInfo : public TVersionedSchema Tables;
-    THashMap SchemaPresets;
+    THashSet SchemaPresetsIds;
     THashSet PathsToDrop;
     TTtl Ttl;
     std::unique_ptr PrimaryIndex;
@@ -140,14 +147,15 @@ class TTablesManager {
 public:
     TTablesManager(const std::shared_ptr& storagesManager, const ui64 tabletId);
 
-    bool TryFinalizeDropPath(NTabletFlatExecutor::TTransactionContext& txc, const ui64 pathId);
+    bool TryFinalizeDropPathOnExecute(NTable::TDatabase& dbTable, const ui64 pathId) const;
+    bool TryFinalizeDropPathOnComplete(const ui64 pathId);
 
     const TTtl& GetTtl() const {
         return Ttl;
     }
 
-    void AddTtls(THashMap& eviction) {
-        Ttl.AddTtls(eviction);
+    bool AddTtls(THashMap& eviction) {
+        return Ttl.AddTtls(eviction);
     }
 
     const THashSet& GetPathsToDrop() const {
@@ -162,8 +170,8 @@ class TTablesManager {
         return Tables;
     }
 
-    const THashMap& GetSchemaPresets() const {
-        return SchemaPresets;
+    const THashSet& GetSchemaPresets() const {
+        return SchemaPresetsIds;
     }
 
     bool HasPrimaryIndex() const {
@@ -189,13 +197,39 @@ class TTablesManager {
         return *PrimaryIndex;
     }
 
+    template 
+    TIndex& MutablePrimaryIndexAsVerified() {
+        AFL_VERIFY(!!PrimaryIndex);
+        auto result = dynamic_cast(PrimaryIndex.get());
+        AFL_VERIFY(result);
+        return *result;
+    }
+
+    template 
+    const TIndex& GetPrimaryIndexAsVerified() const {
+        AFL_VERIFY(!!PrimaryIndex);
+        auto result = dynamic_cast(PrimaryIndex.get());
+        AFL_VERIFY(result);
+        return *result;
+    }
+
+    template 
+    const TIndex* GetPrimaryIndexAsOptional() const {
+        if (!PrimaryIndex) {
+            return nullptr;
+        }
+        auto result = dynamic_cast(PrimaryIndex.get());
+        AFL_VERIFY(result);
+        return result;
+    }
+
     bool InitFromDB(NIceDb::TNiceDb& db);
     bool LoadIndex(NOlap::TDbWrapper& db);
 
     const TTableInfo& GetTable(const ui64 pathId) const;
     ui64 GetMemoryUsage() const;
 
-    bool HasTable(const ui64 pathId) const;
+    bool HasTable(const ui64 pathId, bool withDeleted = false) const;
     bool IsReadyForWrite(const ui64 pathId) const;
     bool HasPreset(const ui32 presetId) const;
 
@@ -206,11 +240,8 @@ class TTablesManager {
     bool RegisterSchemaPreset(const TSchemaPreset& schemaPreset, NIceDb::TNiceDb& db);
 
     void AddSchemaVersion(const ui32 presetId, const NOlap::TSnapshot& version, const NKikimrSchemeOp::TColumnTableSchema& schema, NIceDb::TNiceDb& db);
-    void AddTableVersion(const ui64 pathId, const NOlap::TSnapshot& version, const TTableInfo::TTableVersionInfo& versionInfo, NIceDb::TNiceDb& db);
+    void AddTableVersion(const ui64 pathId, const NOlap::TSnapshot& version, const NKikimrTxColumnShard::TTableVersionInfo& versionInfo, NIceDb::TNiceDb& db, std::shared_ptr& manager);
     bool FillMonitoringReport(NTabletFlatExecutor::TTransactionContext& txc, NJson::TJsonValue& json);
-private:
-    void IndexSchemaVersion(const NOlap::TSnapshot& version, const NKikimrSchemeOp::TColumnTableSchema& schema);
-    static NOlap::TIndexInfo DeserializeIndexInfoFromProto(const NKikimrSchemeOp::TColumnTableSchema& schema);
 };
 
 }
diff --git a/ydb/core/tx/columnshard/test_helper/controllers.cpp b/ydb/core/tx/columnshard/test_helper/controllers.cpp
new file mode 100644
index 000000000000..d9ee86446c61
--- /dev/null
+++ b/ydb/core/tx/columnshard/test_helper/controllers.cpp
@@ -0,0 +1,22 @@
+#include "controllers.h"
+#include 
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+
+void TWaitCompactionController::OnTieringModified(const std::shared_ptr& /*tiers*/) {
+    ++TiersModificationsCount;
+    AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("event", "OnTieringModified")("count", TiersModificationsCount);
+}
+
+void TWaitCompactionController::SetTiersSnapshot(TTestBasicRuntime& runtime, const TActorId& tabletActorId, const NMetadata::NFetcher::ISnapshot::TPtr& snapshot) {
+    CurrentConfig = snapshot;
+    ui32 startCount = TiersModificationsCount;
+    NTxUT::ProvideTieringSnapshot(runtime, tabletActorId, snapshot);
+    while (TiersModificationsCount == startCount) {
+        runtime.SimulateSleep(TDuration::Seconds(1));
+    }
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/test_helper/controllers.h b/ydb/core/tx/columnshard/test_helper/controllers.h
new file mode 100644
index 000000000000..682f2dcacaf8
--- /dev/null
+++ b/ydb/core/tx/columnshard/test_helper/controllers.h
@@ -0,0 +1,57 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NOlap {
+
+class TWaitCompactionController: public NYDBTest::NColumnShard::TController {
+private:
+    using TBase = NKikimr::NYDBTest::ICSController;
+    TAtomicCounter ExportsFinishedCount = 0;
+    NMetadata::NFetcher::ISnapshot::TPtr CurrentConfig;
+    ui32 TiersModificationsCount = 0;
+    YDB_READONLY(TAtomicCounter, StatisticsUsageCount, 0);
+    YDB_READONLY(TAtomicCounter, MaxValueUsageCount, 0);
+protected:
+    virtual void OnTieringModified(const std::shared_ptr& /*tiers*/) override;
+    virtual void OnExportFinished() override {
+        ExportsFinishedCount.Inc();
+    }
+    virtual bool NeedForceCompactionBacketsConstruction() const override {
+        return true;
+    }
+    virtual ui64 GetSmallPortionSizeDetector(const ui64 /*def*/) const override {
+        return 0;
+    }
+    virtual TDuration GetOptimizerFreshnessCheckDuration(const TDuration /*defaultValue*/) const override {
+        return TDuration::Zero();
+    }
+    virtual TDuration GetLagForCompactionBeforeTierings(const TDuration /*def*/) const override {
+        return TDuration::Zero();
+    }
+    virtual TDuration GetTTLDefaultWaitingDuration(const TDuration /*defaultValue*/) const override {
+        return TDuration::Seconds(1);
+    }
+public:
+    ui32 GetFinishedExportsCount() const {
+        return ExportsFinishedCount.Val();
+    }
+
+    virtual void OnStatisticsUsage(const NKikimr::NOlap::NStatistics::TOperatorContainer& /*statOperator*/) override {
+        StatisticsUsageCount.Inc();
+    }
+    virtual void OnMaxValueUsage() override {
+        MaxValueUsageCount.Inc();
+    }
+    void SetTiersSnapshot(TTestBasicRuntime& runtime, const TActorId& tabletActorId, const NMetadata::NFetcher::ISnapshot::TPtr& snapshot);
+
+    virtual NMetadata::NFetcher::ISnapshot::TPtr GetFallbackTiersSnapshot() const override {
+        if (CurrentConfig) {
+            return CurrentConfig;
+        } else {
+            return TBase::GetFallbackTiersSnapshot();
+        }
+    }
+};
+
+}
diff --git a/ydb/core/tx/columnshard/test_helper/helper.cpp b/ydb/core/tx/columnshard/test_helper/helper.cpp
new file mode 100644
index 000000000000..fc8fea56e84c
--- /dev/null
+++ b/ydb/core/tx/columnshard/test_helper/helper.cpp
@@ -0,0 +1,91 @@
+#include "helper.h"
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NArrow::NTest {
+
+NKikimrSchemeOp::TOlapColumnDescription TTestColumn::CreateColumn(const ui32 id) const {
+    NKikimrSchemeOp::TOlapColumnDescription col;
+    col.SetId(id);
+    col.SetName(Name);
+    if (StorageId) {
+        col.SetStorageId(StorageId);
+    }
+    auto columnType = NScheme::ProtoColumnTypeFromTypeInfoMod(Type, "");
+    col.SetTypeId(columnType.TypeId);
+    if (columnType.TypeInfo) {
+        *col.MutableTypeInfo() = *columnType.TypeInfo;
+    }
+    return col;
+}
+
+std::vector> TTestColumn::ConvertToPairs(const std::vector& columns) {
+    std::vector> result;
+    for (auto&& i : columns) {
+        result.emplace_back(std::make_pair(i.GetName(), i.GetType()));
+    }
+    return result;
+}
+
+std::vector TTestColumn::BuildFromPairs(const std::vector>& columns) {
+    std::vector result;
+    for (auto&& i : columns) {
+        result.emplace_back(i.first, i.second);
+    }
+    return result;
+}
+
+THashMap TTestColumn::ConvertToHash(const std::vector& columns) {
+    THashMap result;
+    for (auto&& i : columns) {
+        result.emplace(i.GetName(), i.GetType());
+    }
+    return result;
+}
+
+std::vector TTestColumn::CropSchema(const std::vector& input, const ui32 size) {
+    AFL_VERIFY(input.size() >= size);
+    return std::vector(input.begin(), input.begin() + size);
+}
+
+}
+
+namespace NKikimr::NArrow {
+
+std::vector> MakeArrowFields(const std::vector& columns, const std::set& notNullColumns /*= {}*/) {
+    auto result = MakeArrowFields(NTest::TTestColumn::ConvertToPairs(columns), notNullColumns);
+    UNIT_ASSERT_C(result.ok(), result.status().ToString());
+    return result.ValueUnsafe();
+}
+
+std::shared_ptr MakeArrowSchema(const std::vector& columns, const std::set& notNullColumns /*= {}*/) {
+    auto result = MakeArrowSchema(NTest::TTestColumn::ConvertToPairs(columns), notNullColumns);
+    UNIT_ASSERT_C(result.ok(), result.status().ToString());
+    return result.ValueUnsafe();
+}
+
+}
+
+namespace NKikimr::NOlap {
+
+std::shared_ptr TTestStoragesManager::DoBuildOperator(const TString& storageId) {
+    if (storageId == TBase::DefaultStorageId) {
+        return std::make_shared(storageId, NActors::TActorId(), TabletInfo,
+            1, SharedBlobsManager->GetStorageManagerGuarantee(TBase::DefaultStorageId));
+    } else if (storageId == TBase::MemoryStorageId) {
+        Singleton()->SetSecretKey("fakeSecret");
+        return std::make_shared(storageId, NActors::TActorId(), std::make_shared("fakeBucket", "fakeSecret"),
+            SharedBlobsManager->GetStorageManagerGuarantee(storageId));
+    } else {
+        return nullptr;
+    }
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/columnshard/test_helper/helper.h b/ydb/core/tx/columnshard/test_helper/helper.h
new file mode 100644
index 000000000000..4501cfe5fea4
--- /dev/null
+++ b/ydb/core/tx/columnshard/test_helper/helper.h
@@ -0,0 +1,75 @@
+#pragma once
+#include 
+#include 
+
+#include 
+
+#include 
+
+namespace NKikimrSchemeOp {
+class TOlapColumnDescription;
+}
+
+namespace NKikimr::NOlap {
+
+class TTestStoragesManager: public NOlap::IStoragesManager {
+private:
+    using TBase = NOlap::IStoragesManager;
+    TIntrusivePtr TabletInfo = new TTabletStorageInfo();
+    std::shared_ptr SharedBlobsManager = std::make_shared(NOlap::TTabletId(0));
+protected:
+    virtual bool DoLoadIdempotency(NTable::TDatabase& /*database*/) override {
+        return true;
+    }
+
+    virtual std::shared_ptr DoBuildOperator(const TString& storageId) override;
+    virtual const std::shared_ptr& DoGetSharedBlobsManager() const override {
+        return SharedBlobsManager;
+    }
+public:
+
+    static std::shared_ptr GetInstance() {
+        static auto result = std::make_shared();
+        static TMutex mutex;
+        static bool initialized = false;
+        TGuard g(mutex);
+        if (!initialized) {
+            result->Initialize();
+        }
+        initialized = true;
+        return result;
+    }
+
+};
+
+}
+
+namespace NKikimr::NArrow::NTest {
+
+class TTestColumn {
+private:
+    YDB_ACCESSOR_DEF(TString, Name);
+    YDB_ACCESSOR_DEF(NScheme::TTypeInfo, Type);
+    YDB_ACCESSOR_DEF(TString, StorageId);
+public:
+    explicit TTestColumn(const TString& name, const NScheme::TTypeInfo& type)
+        : Name(name)
+        , Type(type) {
+
+    }
+
+    NKikimrSchemeOp::TOlapColumnDescription CreateColumn(const ui32 id) const;
+    static std::vector> ConvertToPairs(const std::vector& columns);
+    static THashMap ConvertToHash(const std::vector& columns);
+    static std::vector BuildFromPairs(const std::vector>& columns);
+    static std::vector CropSchema(const std::vector& input, const ui32 size);
+};
+
+}
+
+namespace NKikimr::NArrow {
+
+std::vector> MakeArrowFields(const std::vector& columns, const std::set& notNullColumns = {});
+std::shared_ptr MakeArrowSchema(const std::vector& columns, const std::set& notNullColumns = {});
+
+}
diff --git a/ydb/core/tx/columnshard/test_helper/ya.make b/ydb/core/tx/columnshard/test_helper/ya.make
new file mode 100644
index 000000000000..04b99f3aee70
--- /dev/null
+++ b/ydb/core/tx/columnshard/test_helper/ya.make
@@ -0,0 +1,20 @@
+LIBRARY()
+
+PEERDIR(
+    ydb/core/protos
+    contrib/libs/apache/arrow
+    ydb/library/actors/core
+    ydb/core/tx/columnshard/blobs_action/bs
+    ydb/core/tx/columnshard/blobs_action/tier
+    ydb/core/wrappers
+)
+
+SRCS(
+    helper.cpp
+    controllers.cpp
+)
+
+YQL_LAST_ABI_VERSION()
+
+END()
+
diff --git a/ydb/core/tx/columnshard/transactions/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/transactions/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..1c1f0c7af617
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/CMakeLists.darwin-arm64.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_subdirectory(operators)
+
+add_library(tx-columnshard-transactions)
+target_compile_options(tx-columnshard-transactions PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-columnshard-transactions PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-tablet_flat
+  core-tx-data_events
+)
+target_sources(tx-columnshard-transactions PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/tx_controller.cpp
+)
diff --git a/ydb/core/tx/columnshard/transactions/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/transactions/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..1c1f0c7af617
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/CMakeLists.darwin-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_subdirectory(operators)
+
+add_library(tx-columnshard-transactions)
+target_compile_options(tx-columnshard-transactions PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-columnshard-transactions PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-tablet_flat
+  core-tx-data_events
+)
+target_sources(tx-columnshard-transactions PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/tx_controller.cpp
+)
diff --git a/ydb/core/tx/columnshard/transactions/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/transactions/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..f16f3e9b6702
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,24 @@
+
+# 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(operators)
+
+add_library(tx-columnshard-transactions)
+target_compile_options(tx-columnshard-transactions PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-columnshard-transactions PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-tablet_flat
+  core-tx-data_events
+)
+target_sources(tx-columnshard-transactions PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/tx_controller.cpp
+)
diff --git a/ydb/core/tx/columnshard/transactions/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/transactions/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..f16f3e9b6702
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,24 @@
+
+# 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(operators)
+
+add_library(tx-columnshard-transactions)
+target_compile_options(tx-columnshard-transactions PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-columnshard-transactions PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-tablet_flat
+  core-tx-data_events
+)
+target_sources(tx-columnshard-transactions PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/tx_controller.cpp
+)
diff --git a/ydb/core/tx/columnshard/transactions/CMakeLists.txt b/ydb/core/tx/columnshard/transactions/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/columnshard/transactions/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/transactions/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..1cbf15564965
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,24 @@
+
+# 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(operators)
+
+add_library(tx-columnshard-transactions)
+target_compile_options(tx-columnshard-transactions PRIVATE
+  -DKIKIMR_DISABLE_S3_OPS
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(tx-columnshard-transactions PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-tablet_flat
+  core-tx-data_events
+)
+target_sources(tx-columnshard-transactions PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/tx_controller.cpp
+)
diff --git a/ydb/core/tx/columnshard/transactions/operators/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/transactions/operators/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..af66af6bed8f
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/operators/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# 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(columnshard-transactions-operators INTERFACE)
+target_link_libraries(columnshard-transactions-operators INTERFACE
+  contrib-libs-cxxsupp
+  yutil
+  tx-columnshard-transactions
+)
+
+add_global_library_for(columnshard-transactions-operators.global columnshard-transactions-operators)
+target_link_libraries(columnshard-transactions-operators.global PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  tx-columnshard-transactions
+)
+target_sources(columnshard-transactions-operators.global PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/operators/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/operators/long_tx_write.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/operators/ev_write.cpp
+)
diff --git a/ydb/core/tx/columnshard/transactions/operators/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/transactions/operators/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..af66af6bed8f
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/operators/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,27 @@
+
+# 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(columnshard-transactions-operators INTERFACE)
+target_link_libraries(columnshard-transactions-operators INTERFACE
+  contrib-libs-cxxsupp
+  yutil
+  tx-columnshard-transactions
+)
+
+add_global_library_for(columnshard-transactions-operators.global columnshard-transactions-operators)
+target_link_libraries(columnshard-transactions-operators.global PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  tx-columnshard-transactions
+)
+target_sources(columnshard-transactions-operators.global PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/operators/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/operators/long_tx_write.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/operators/ev_write.cpp
+)
diff --git a/ydb/core/tx/columnshard/transactions/operators/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/transactions/operators/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..8a4995961026
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/operators/CMakeLists.linux-aarch64.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(columnshard-transactions-operators INTERFACE)
+target_link_libraries(columnshard-transactions-operators INTERFACE
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  tx-columnshard-transactions
+)
+
+add_global_library_for(columnshard-transactions-operators.global columnshard-transactions-operators)
+target_link_libraries(columnshard-transactions-operators.global PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  tx-columnshard-transactions
+)
+target_sources(columnshard-transactions-operators.global PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/operators/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/operators/long_tx_write.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/operators/ev_write.cpp
+)
diff --git a/ydb/core/tx/columnshard/transactions/operators/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/transactions/operators/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..8a4995961026
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/operators/CMakeLists.linux-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(columnshard-transactions-operators INTERFACE)
+target_link_libraries(columnshard-transactions-operators INTERFACE
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  tx-columnshard-transactions
+)
+
+add_global_library_for(columnshard-transactions-operators.global columnshard-transactions-operators)
+target_link_libraries(columnshard-transactions-operators.global PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  tx-columnshard-transactions
+)
+target_sources(columnshard-transactions-operators.global PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/operators/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/operators/long_tx_write.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/operators/ev_write.cpp
+)
diff --git a/ydb/core/tx/columnshard/transactions/operators/CMakeLists.txt b/ydb/core/tx/columnshard/transactions/operators/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/operators/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/columnshard/transactions/operators/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/transactions/operators/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..af66af6bed8f
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/operators/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,27 @@
+
+# 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(columnshard-transactions-operators INTERFACE)
+target_link_libraries(columnshard-transactions-operators INTERFACE
+  contrib-libs-cxxsupp
+  yutil
+  tx-columnshard-transactions
+)
+
+add_global_library_for(columnshard-transactions-operators.global columnshard-transactions-operators)
+target_link_libraries(columnshard-transactions-operators.global PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  tx-columnshard-transactions
+)
+target_sources(columnshard-transactions-operators.global PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/operators/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/operators/long_tx_write.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/transactions/operators/ev_write.cpp
+)
diff --git a/ydb/core/tx/columnshard/transactions/operators/backup.cpp b/ydb/core/tx/columnshard/transactions/operators/backup.cpp
new file mode 100644
index 000000000000..f55d2b82b0b3
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/operators/backup.cpp
@@ -0,0 +1,67 @@
+#include "backup.h"
+#include 
+#include 
+
+namespace NKikimr::NColumnShard {
+
+bool TBackupTransactionOperator::Parse(const TString& data) {
+    NKikimrTxColumnShard::TBackupTxBody txBody;
+    if (!txBody.ParseFromString(data)) {
+        return false;
+    }
+    if (!txBody.HasBackupTask()) {
+        return false;
+    }
+    TConclusion id = NOlap::NExport::TIdentifier::BuildFromProto(txBody);
+    if (!id) {
+        AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "cannot_parse_id")("problem", id.GetErrorMessage());
+        return false;
+    }
+    TConclusion selector = NOlap::NExport::TSelectorContainer::BuildFromProto(txBody);
+    if (!selector) {
+        AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "cannot_parse_selector")("problem", selector.GetErrorMessage());
+        return false;
+    }
+    TConclusion storeInitializer = NOlap::NExport::TStorageInitializerContainer::BuildFromProto(txBody);
+    if (!storeInitializer) {
+        AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("event", "cannot_parse_selector")("problem", storeInitializer.GetErrorMessage());
+        return false;
+    }
+    NArrow::NSerialization::TSerializerContainer serializer(std::make_shared());
+    ExportTask = std::make_shared(id.DetachResult(), selector.DetachResult(), storeInitializer.DetachResult(), serializer);
+    return true;
+}
+
+TBackupTransactionOperator::TProposeResult TBackupTransactionOperator::Propose(TColumnShard& owner, NTabletFlatExecutor::TTransactionContext& /*txc*/, bool /*proposed*/) const {
+    auto proposition = owner.GetExportsManager()->ProposeTask(ExportTask);
+    if (!proposition) {
+        return TProposeResult(NKikimrTxColumnShard::EResultStatus::ERROR,
+            TStringBuilder() << "Invalid backup task TxId# " << GetTxId() << ": " << ExportTask->DebugString() << ": " << proposition.GetErrorMessage());
+    }
+    return TProposeResult();
+}
+
+bool TBackupTransactionOperator::Progress(TColumnShard& owner, const NOlap::TSnapshot& version, NTabletFlatExecutor::TTransactionContext& txc) {
+    Y_UNUSED(version);
+    AFL_VERIFY(ExportTask);
+    owner.GetExportsManager()->ConfirmSessionOnExecute(ExportTask->GetIdentifier(), txc);
+    return true;
+}
+
+bool TBackupTransactionOperator::Complete(TColumnShard& owner, const TActorContext& ctx) {
+    AFL_VERIFY(ExportTask);
+    owner.GetExportsManager()->ConfirmSessionOnComplete(ExportTask->GetIdentifier());
+    auto result = std::make_unique(
+        owner.TabletID(), TxInfo.TxKind, GetTxId(), NKikimrTxColumnShard::SUCCESS);
+    result->Record.SetStep(TxInfo.PlanStep);
+    ctx.Send(TxInfo.Source, result.release(), 0, TxInfo.Cookie);
+    AFL_VERIFY(owner.GetExportsManager()->GetSessionVerified(ExportTask->GetIdentifier())->Start(owner.GetStoragesManager(), (NOlap::TTabletId)owner.TabletID(), owner.SelfId()));
+    return true;
+}
+
+bool TBackupTransactionOperator::Abort(TColumnShard& owner, NTabletFlatExecutor::TTransactionContext& txc) {
+    owner.GetExportsManager()->RemoveSession(ExportTask->GetIdentifier(), txc);
+    return true;
+}
+
+}
diff --git a/ydb/core/tx/columnshard/transactions/operators/backup.h b/ydb/core/tx/columnshard/transactions/operators/backup.h
new file mode 100644
index 000000000000..bc873e3dbda0
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/operators/backup.h
@@ -0,0 +1,29 @@
+#pragma once
+
+#include 
+#include 
+#include 
+
+namespace NKikimr::NColumnShard {
+
+    class TBackupTransactionOperator : public TTxController::ITransactionOperatior {
+    private:
+        std::shared_ptr ExportTask;
+        using TBase = TTxController::ITransactionOperatior;
+        using TProposeResult = TTxController::TProposeResult;
+        static inline auto Registrator = TFactory::TRegistrator(NKikimrTxColumnShard::TX_KIND_BACKUP);
+    public:
+        using TBase::TBase;
+
+        virtual bool Parse(const TString& data) override;
+
+        virtual TProposeResult Propose(TColumnShard& owner, NTabletFlatExecutor::TTransactionContext& txc, bool /*proposed*/) const override;
+
+        virtual bool Progress(TColumnShard& owner, const NOlap::TSnapshot& version, NTabletFlatExecutor::TTransactionContext& txc) override;
+
+        virtual bool Complete(TColumnShard& owner, const TActorContext& ctx) override;
+
+        virtual bool Abort(TColumnShard& owner, NTabletFlatExecutor::TTransactionContext& txc) override;
+    };
+
+}
diff --git a/ydb/core/tx/columnshard/transactions/operators/ev_write.h b/ydb/core/tx/columnshard/transactions/operators/ev_write.h
index b31f381df529..ca83ce8696ac 100644
--- a/ydb/core/tx/columnshard/transactions/operators/ev_write.h
+++ b/ydb/core/tx/columnshard/transactions/operators/ev_write.h
@@ -12,11 +12,16 @@ namespace NKikimr::NColumnShard {
         using TBase::TBase;
 
         virtual bool Parse(const TString& data) override {
-            Y_UNUSED(data);
-            return true;
+            NKikimrTxColumnShard::TCommitWriteTxBody commitTxBody;
+            if (!commitTxBody.ParseFromString(data)) {
+                return false;
+            }
+            LockId = commitTxBody.GetLockId();
+            return !!LockId;
         }
 
-        TProposeResult Propose(TColumnShard& /*owner*/, NTabletFlatExecutor::TTransactionContext& /*txc*/, bool /*proposed*/) const override {
+        TProposeResult Propose(TColumnShard& owner, NTabletFlatExecutor::TTransactionContext& txc, bool /*proposed*/) const override {
+            owner.OperationsManager->LinkTransaction(LockId, GetTxId(), txc);
             return TProposeResult();
         }
 
@@ -25,7 +30,7 @@ namespace NKikimr::NColumnShard {
         }
 
         virtual bool Complete(TColumnShard& owner, const TActorContext& ctx) override {
-            auto result = NEvents::TDataEvents::TEvWriteResult::BuildCommited(owner.TabletID(), GetTxId());
+            auto result = NEvents::TDataEvents::TEvWriteResult::BuildCompleted(owner.TabletID(), GetTxId());
             ctx.Send(TxInfo.Source, result.release(), 0, TxInfo.Cookie);
             return true;
         }
@@ -33,6 +38,8 @@ namespace NKikimr::NColumnShard {
         virtual bool Abort(TColumnShard& owner, NTabletFlatExecutor::TTransactionContext& txc) override {
             return owner.OperationsManager->AbortTransaction(owner, GetTxId(), txc);
         }
+    private:
+        ui64 LockId = 0;
     };
 
 }
diff --git a/ydb/core/tx/columnshard/transactions/operators/schema.h b/ydb/core/tx/columnshard/transactions/operators/schema.h
index 78940db37059..58bb89c8c0f8 100644
--- a/ydb/core/tx/columnshard/transactions/operators/schema.h
+++ b/ydb/core/tx/columnshard/transactions/operators/schema.h
@@ -25,14 +25,18 @@ namespace NKikimr::NColumnShard {
         TProposeResult Propose(TColumnShard& owner, NTabletFlatExecutor::TTransactionContext& txc, bool /*proposed*/) const override {
             switch (SchemaTxBody.TxBody_case()) {
                 case NKikimrTxColumnShard::TSchemaTxBody::kInitShard:
+                    {
+                        auto validationStatus = ValidateTables(SchemaTxBody.GetInitShard().GetTables());
+                        if (validationStatus.IsFail()) {
+                            return  TProposeResult(NKikimrTxColumnShard::EResultStatus::SCHEMA_ERROR, "Invalid schema: " + validationStatus.GetErrorMessage());
+                        }
+                    }
                     break;
                 case NKikimrTxColumnShard::TSchemaTxBody::kEnsureTables:
-                    for (auto& table : SchemaTxBody.GetEnsureTables().GetTables()) {
-                        if (table.HasSchemaPreset() && !ValidateTablePreset(table.GetSchemaPreset())) {
-                            return TProposeResult(NKikimrTxColumnShard::EResultStatus::ERROR, "Invalid schema");
-                        }
-                        if (table.HasSchema() && !ValidateTableSchema(table.GetSchema())) {
-                            return TProposeResult(NKikimrTxColumnShard::EResultStatus::ERROR, "Invalid schema");
+                    {
+                        auto validationStatus = ValidateTables(SchemaTxBody.GetEnsureTables().GetTables());
+                        if (validationStatus.IsFail()) {
+                            return  TProposeResult(NKikimrTxColumnShard::EResultStatus::SCHEMA_ERROR, "Invalid schema: " + validationStatus.GetErrorMessage());
                         }
                     }
                     break;
@@ -91,10 +95,26 @@ namespace NKikimr::NColumnShard {
         }
 
     private:
-        bool ValidateTableSchema(const NKikimrSchemeOp::TColumnTableSchema& schema) const {
-            namespace NTypeIds = NScheme::NTypeIds;
+        TConclusionStatus ValidateTables(::google::protobuf::RepeatedPtrField<::NKikimrTxColumnShard::TCreateTable> tables) const {
+            for (auto& table : tables) {
+                if (table.HasSchemaPreset()) {
+                    const auto validationStatus = ValidateTablePreset(table.GetSchemaPreset());
+                    if (validationStatus.IsFail()) {
+                        return validationStatus;
+                    }
+                }
+                if (table.HasSchema()) {
+                    const auto validationStatus = ValidateTableSchema(table.GetSchema());
+                    if (validationStatus.IsFail()) {
+                        return validationStatus;
+                    }
+                }
+            } return TConclusionStatus::Success();
+        }
 
-            static const THashSet supportedTypes = {
+        TConclusionStatus ValidateTableSchema(const NKikimrSchemeOp::TColumnTableSchema& schema) const {
+            namespace NTypeIds = NScheme::NTypeIds;
+            static const THashSet pkSupportedTypes = {
                 NTypeIds::Timestamp,
                 NTypeIds::Int8,
                 NTypeIds::Int16,
@@ -110,43 +130,50 @@ namespace NKikimr::NColumnShard {
                 //NTypeIds::Float,
                 //NTypeIds::Double,
                 NTypeIds::String,
-                NTypeIds::Utf8
+                NTypeIds::Utf8,
+                NTypeIds::Decimal
             };
-
             if (!schema.HasEngine() ||
                 schema.GetEngine() != NKikimrSchemeOp::EColumnTableEngine::COLUMN_ENGINE_REPLACING_TIMESERIES) {
-                return false;
+                return TConclusionStatus::Fail("Invalid scheme engine: " + (schema.HasEngine() ? NKikimrSchemeOp::EColumnTableEngine_Name(schema.GetEngine()) : TString("No")));
             }
 
             if (!schema.KeyColumnNamesSize()) {
-                return false;
+                return TConclusionStatus::Fail("There is no key columns");
             }
 
-            TString firstKeyColumn = schema.GetKeyColumnNames()[0];
             THashSet keyColumns(schema.GetKeyColumnNames().begin(), schema.GetKeyColumnNames().end());
-
+            TVector columnErrors;
             for (const NKikimrSchemeOp::TOlapColumnDescription& column : schema.GetColumns()) {
                 TString name = column.GetName();
-                /*
-                if (column.GetNotNull() && keyColumns.contains(name)) {
-                    return false;
+                void* typeDescr = nullptr;
+                if (column.GetTypeId() == NTypeIds::Pg && column.HasTypeInfo()) {
+                    typeDescr = NPg::TypeDescFromPgTypeId(column.GetTypeInfo().GetPgTypeId());
+                }
+
+                NScheme::TTypeInfo schemeType(column.GetTypeId(), typeDescr);
+                if (keyColumns.contains(name) && !pkSupportedTypes.contains(column.GetTypeId())) {
+                    columnErrors.emplace_back("key column " + name + " has unsupported type "  + column.GetTypeName());
                 }
-                */
-                if (name == firstKeyColumn && !supportedTypes.contains(column.GetTypeId())) {
-                    return false;
+                auto arrowType = NArrow::GetArrowType(schemeType);
+                if (!arrowType.ok()) {
+                    columnErrors.emplace_back("column " + name + ": " + arrowType.status().ToString());
                 }
                 keyColumns.erase(name);
             }
+            if (!columnErrors.empty()) {
+                return TConclusionStatus::Fail("Column errors: " + JoinSeq("; ", columnErrors));
+            }
 
             if (!keyColumns.empty()) {
-                return false;
+                return TConclusionStatus::Fail("Key columns not in scheme: " + JoinSeq(", ", keyColumns));
             }
-            return true;
+            return TConclusionStatus::Success();
         }
 
-        bool ValidateTablePreset(const NKikimrSchemeOp::TColumnTableSchemaPreset& preset) const {
+        TConclusionStatus ValidateTablePreset(const NKikimrSchemeOp::TColumnTableSchemaPreset& preset) const {
             if (preset.HasName() && preset.GetName() != "default") {
-                return false;
+                return TConclusionStatus::Fail("Preset name must be empty or 'default', but '" + preset.GetName() + "' got");
             }
             return ValidateTableSchema(preset.GetSchema());
         }
diff --git a/ydb/core/tx/columnshard/transactions/operators/ya.make b/ydb/core/tx/columnshard/transactions/operators/ya.make
index 449ec29a137d..c412503159f6 100644
--- a/ydb/core/tx/columnshard/transactions/operators/ya.make
+++ b/ydb/core/tx/columnshard/transactions/operators/ya.make
@@ -4,10 +4,13 @@ SRCS(
     GLOBAL schema.cpp
     GLOBAL long_tx_write.cpp
     GLOBAL ev_write.cpp
+    GLOBAL backup.cpp
 )
 
 PEERDIR(
     ydb/core/tx/columnshard/transactions
+    ydb/core/tx/columnshard/data_sharing/destination/events
+    ydb/core/tx/columnshard/export/manager
 )
 
 END()
diff --git a/ydb/core/tx/columnshard/transactions/propose_transaction_base.cpp b/ydb/core/tx/columnshard/transactions/propose_transaction_base.cpp
new file mode 100644
index 000000000000..ef50e2ae5959
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/propose_transaction_base.cpp
@@ -0,0 +1,37 @@
+#include "propose_transaction_base.h"
+
+#include 
+
+
+namespace NKikimr::NColumnShard {
+
+    void TProposeTransactionBase::ProposeTransaction(const TTxController::TBasicTxInfo& txInfo, const TString& txBody, const TActorId source, const ui64 cookie, TTransactionContext& txc) {
+        auto txOperator = TTxController::ITransactionOperatior::TFactory::MakeHolder(txInfo.TxKind, TTxController::TTxInfo(txInfo.TxKind, txInfo.TxId));
+        if (!txOperator || !txOperator->Parse(txBody)) {
+            TTxController::TProposeResult proposeResult(NKikimrTxColumnShard::EResultStatus::ERROR, TStringBuilder() << "Error processing commit TxId# " << txInfo.TxId
+                                                    << (txOperator ? ". Parsing error " : ". Unknown operator for txKind"));
+            OnProposeError(proposeResult, txInfo);
+            return;
+        }
+
+        auto txInfoPtr = Self->GetProgressTxController().GetTxInfo(txInfo.TxId);
+        if (!!txInfoPtr) {
+            if (txInfoPtr->Source != source || txInfoPtr->Cookie != cookie) {
+                TTxController::TProposeResult proposeResult(NKikimrTxColumnShard::EResultStatus::ERROR, TStringBuilder() << "Another commit TxId# " << txInfo.TxId << " has already been proposed");
+                OnProposeError(proposeResult, txInfo);
+            }
+            TTxController::TProposeResult proposeResult;
+            OnProposeResult(proposeResult, *txInfoPtr);
+        } else {
+            auto proposeResult = txOperator->Propose(*Self, txc, false);
+            if (!!proposeResult) {
+                const auto fullTxInfo = txOperator->TxWithDeadline() ? Self->GetProgressTxController().RegisterTxWithDeadline(txInfo.TxId, txInfo.TxKind, txBody, source, cookie, txc)
+                                                                : Self->GetProgressTxController().RegisterTx(txInfo.TxId, txInfo.TxKind, txBody, source, cookie, txc);
+
+                OnProposeResult(proposeResult, fullTxInfo);
+            } else {
+                OnProposeError(proposeResult, txInfo);
+            }
+        }
+    }
+}
diff --git a/ydb/core/tx/columnshard/transactions/propose_transaction_base.h b/ydb/core/tx/columnshard/transactions/propose_transaction_base.h
new file mode 100644
index 000000000000..7657c4aff475
--- /dev/null
+++ b/ydb/core/tx/columnshard/transactions/propose_transaction_base.h
@@ -0,0 +1,22 @@
+#pragma once
+#include "tx_controller.h"
+
+namespace NKikimr::NColumnShard {
+
+class TColumnShard;
+
+class TProposeTransactionBase : public NTabletFlatExecutor::TTransactionBase {
+public:
+    TProposeTransactionBase(TColumnShard* self)
+        : TBase(self)
+    {}
+
+protected:
+    void ProposeTransaction(const TTxController::TBasicTxInfo& txInfo, const TString& txBody, const TActorId source, const ui64 cookie, TTransactionContext& txc);
+
+    virtual void OnProposeResult(TTxController::TProposeResult& proposeResult, const TTxController::TTxInfo& txInfo) = 0;
+    virtual void OnProposeError(TTxController::TProposeResult& proposeResult, const TTxController::TBasicTxInfo& txInfo) = 0;
+};
+
+
+}
diff --git a/ydb/core/tx/columnshard/transactions/tx_controller.cpp b/ydb/core/tx/columnshard/transactions/tx_controller.cpp
index 1137456d3d69..43a56ecf348e 100644
--- a/ydb/core/tx/columnshard/transactions/tx_controller.cpp
+++ b/ydb/core/tx/columnshard/transactions/tx_controller.cpp
@@ -23,7 +23,7 @@ ui64 TTxController::GetAllowedStep() const {
 }
 
 ui64 TTxController::GetMemoryUsage() const {
-    return  BasicTxInfo.size() * sizeof(TBasicTxInfo) +
+    return  BasicTxInfo.size() * sizeof(TTxInfo) +
             DeadlineQueue.size() * sizeof(TPlanQueueItem) +
             (PlanQueue.size() + RunningQueue.size()) * sizeof(TPlanQueueItem);
 }
@@ -45,9 +45,11 @@ bool TTxController::Load(NTabletFlatExecutor::TTransactionContext& txc) {
         return false;
 
     while (!rowset.EndOfSet()) {
-        ui64 txId = rowset.GetValue();
-        auto& txInfo = BasicTxInfo[txId];
-        txInfo.TxId = txId;
+        const ui64 txId = rowset.GetValue();
+        const NKikimrTxColumnShard::ETransactionKind txKind = rowset.GetValue();
+
+        auto txInfoIt = BasicTxInfo.emplace(txId, TTxInfo(txKind, txId)).first;
+        auto& txInfo = txInfoIt->second;
         txInfo.MaxStep = rowset.GetValue();
         if (txInfo.MaxStep != Max()) {
             txInfo.MinStep = txInfo.MaxStep - MaxCommitTxDelay.MilliSeconds();
@@ -55,7 +57,6 @@ bool TTxController::Load(NTabletFlatExecutor::TTransactionContext& txc) {
         txInfo.PlanStep = rowset.GetValueOrDefault(0);
         txInfo.Source = rowset.GetValue();
         txInfo.Cookie = rowset.GetValue();
-        txInfo.TxKind = rowset.GetValue();
 
         if (txInfo.PlanStep != 0) {
             PlanQueue.emplace(txInfo.PlanStep, txInfo.TxId);
@@ -90,12 +91,11 @@ TTxController::ITransactionOperatior::TPtr TTxController::GetVerifiedTxOperator(
     return it->second;
 }
 
-const TTxController::TBasicTxInfo& TTxController::RegisterTx(const ui64 txId, const NKikimrTxColumnShard::ETransactionKind& txKind, const TString& txBody, const TActorId& source, const ui64 cookie, NTabletFlatExecutor::TTransactionContext& txc) {
+TTxController::TTxInfo TTxController::RegisterTx(const ui64 txId, const NKikimrTxColumnShard::ETransactionKind& txKind, const TString& txBody, const TActorId& source, const ui64 cookie, NTabletFlatExecutor::TTransactionContext& txc) {
     NIceDb::TNiceDb db(txc.DB);
 
-    auto& txInfo = BasicTxInfo[txId];
-    txInfo.TxId = txId;
-    txInfo.TxKind = txKind;
+    auto txInfoIt = BasicTxInfo.emplace(txId, TTxInfo(txKind, txId)).first;
+    auto& txInfo = txInfoIt->second;
     txInfo.Source = source;
     txInfo.Cookie = cookie;
 
@@ -108,12 +108,11 @@ const TTxController::TBasicTxInfo& TTxController::RegisterTx(const ui64 txId, co
     return txInfo;
 }
 
-const TTxController::TBasicTxInfo& TTxController::RegisterTxWithDeadline(const ui64 txId, const NKikimrTxColumnShard::ETransactionKind& txKind, const TString& txBody, const TActorId& source, const ui64 cookie, NTabletFlatExecutor::TTransactionContext& txc) {
+TTxController::TTxInfo TTxController::RegisterTxWithDeadline(const ui64 txId, const NKikimrTxColumnShard::ETransactionKind& txKind, const TString& txBody, const TActorId& source, const ui64 cookie, NTabletFlatExecutor::TTransactionContext& txc) {
     NIceDb::TNiceDb db(txc.DB);
 
-    auto& txInfo = BasicTxInfo[txId];
-    txInfo.TxId = txId;
-    txInfo.TxKind = txKind;
+    auto txInfoIt = BasicTxInfo.emplace(txId, TTxInfo(txKind, txId)).first;
+    auto& txInfo = txInfoIt->second;
     txInfo.Source = source;
     txInfo.Cookie = cookie;
     txInfo.MinStep = GetAllowedStep();
@@ -174,7 +173,7 @@ bool TTxController::CancelTx(const ui64 txId, NTabletFlatExecutor::TTransactionC
     return true;
 }
 
-std::optional TTxController::StartPlannedTx() {
+std::optional TTxController::StartPlannedTx() {
     if (!PlanQueue.empty()) {
         auto node = PlanQueue.extract(PlanQueue.begin());
         auto& item = node.value();
@@ -196,7 +195,7 @@ void TTxController::FinishPlannedTx(const ui64 txId, NTabletFlatExecutor::TTrans
 }
 
 void TTxController::CompleteRunningTx(const TPlanQueueItem& txItem) {
-    RunningQueue.erase(txItem);
+    AFL_VERIFY(RunningQueue.erase(txItem))("info", txItem.DebugString());
 }
 
 std::optional TTxController::GetPlannedTx() const {
@@ -206,17 +205,19 @@ std::optional TTxController::GetPlannedTx() const
     return *PlanQueue.begin();
 }
 
-const TTxController::TBasicTxInfo* TTxController::GetTxInfo(const ui64 txId) const {
-    return BasicTxInfo.FindPtr(txId);
+std::optional TTxController::GetTxInfo(const ui64 txId) const {
+    auto txPtr = BasicTxInfo.FindPtr(txId);
+    if (txPtr) {
+        return *txPtr;
+    }
+    return std::nullopt;
 }
 
-NEvents::TDataEvents::TCoordinatorInfo TTxController::GetCoordinatorInfo(const ui64 txId) const {
-    auto txInfo = BasicTxInfo.FindPtr(txId);
-    Y_ABORT_UNLESS(txInfo);
+NEvents::TDataEvents::TCoordinatorInfo TTxController::BuildCoordinatorInfo(const TTxInfo& txInfo) const {
     if (Owner.ProcessingParams) {
-        return NEvents::TDataEvents::TCoordinatorInfo(txInfo->MinStep, txInfo->MaxStep, Owner.ProcessingParams->GetCoordinators());
+        return NEvents::TDataEvents::TCoordinatorInfo(txInfo.MinStep, txInfo.MaxStep, Owner.ProcessingParams->GetCoordinators());
     }
-    return NEvents::TDataEvents::TCoordinatorInfo(txInfo->MinStep, txInfo->MaxStep, {});
+    return NEvents::TDataEvents::TCoordinatorInfo(txInfo.MinStep, txInfo.MaxStep, {});
 }
 
 size_t TTxController::CleanExpiredTxs(NTabletFlatExecutor::TTransactionContext& txc) {
@@ -239,6 +240,19 @@ size_t TTxController::CleanExpiredTxs(NTabletFlatExecutor::TTransactionContext&
     return removedCount;
 }
 
+TDuration TTxController::GetTxCompleteLag(ui64 timecastStep) const {
+    if (PlanQueue.empty()) {
+        return TDuration::Zero();
+    }
+
+    ui64 currentStep = PlanQueue.begin()->Step;
+    if (timecastStep > currentStep) {
+        return TDuration::MilliSeconds(timecastStep - currentStep);
+    }
+
+    return TDuration::Zero();
+}
+
 TTxController::EPlanResult TTxController::PlanTx(const ui64 planStep, const ui64 txId, NTabletFlatExecutor::TTransactionContext& txc) {
     auto it = BasicTxInfo.find(txId);
     if (it == BasicTxInfo.end()) {
diff --git a/ydb/core/tx/columnshard/transactions/tx_controller.h b/ydb/core/tx/columnshard/transactions/tx_controller.h
index fb38fae9d32e..d48bd504a1fb 100644
--- a/ydb/core/tx/columnshard/transactions/tx_controller.h
+++ b/ydb/core/tx/columnshard/transactions/tx_controller.h
@@ -24,16 +24,32 @@ class TTxController {
         inline bool operator<(const TPlanQueueItem& rhs) const {
             return Step < rhs.Step || (Step == rhs.Step && TxId < rhs.TxId);
         }
+
+        TString DebugString() const {
+            return TStringBuilder() << "step=" << Step << ";txId=" << TxId << ";";
+        }
     };
 
     struct TBasicTxInfo {
-        ui64 TxId;
+        const NKikimrTxColumnShard::ETransactionKind TxKind;
+        const ui64 TxId;
+    public:
+        TBasicTxInfo(const NKikimrTxColumnShard::ETransactionKind& txKind, const ui64 txId)
+            : TxKind(txKind)
+            , TxId(txId)
+        {}
+    };
+
+    struct TTxInfo : public TBasicTxInfo {
         ui64 MaxStep = Max();
         ui64 MinStep = 0;
         ui64 PlanStep = 0;
         TActorId Source;
         ui64 Cookie = 0;
-        NKikimrTxColumnShard::ETransactionKind TxKind;
+    public:
+        TTxInfo(const NKikimrTxColumnShard::ETransactionKind& txKind, const ui64 txId)
+            : TBasicTxInfo(txKind, txId)
+        {}
     };
 
     class TProposeResult {
@@ -47,18 +63,22 @@ class TTxController {
         {}
 
         bool operator!() const {
-            return Status != NKikimrTxColumnShard::EResultStatus::PREPARED;
+            return Status != NKikimrTxColumnShard::EResultStatus::PREPARED && Status != NKikimrTxColumnShard::EResultStatus::SUCCESS;
+        }
+
+        TString DebugString() const {
+            return TStringBuilder() << "status=" << (ui64) Status << ";message=" << StatusMessage;
         }
     };
 
     class ITransactionOperatior {
     protected:
-        TBasicTxInfo TxInfo;
+        TTxInfo TxInfo;
     public:
         using TPtr = std::shared_ptr;
-        using TFactory = NObjectFactory::TParametrizedObjectFactory;
+        using TFactory = NObjectFactory::TParametrizedObjectFactory;
 
-        ITransactionOperatior(const TBasicTxInfo& txInfo)
+        ITransactionOperatior(const TTxInfo& txInfo)
             : TxInfo(txInfo)
         {}
 
@@ -87,7 +107,7 @@ class TTxController {
 private:
     const TDuration MaxCommitTxDelay = TDuration::Seconds(30);
     TColumnShard& Owner;
-    THashMap BasicTxInfo;
+    THashMap BasicTxInfo;
     std::set DeadlineQueue;
     std::set PlanQueue;
     std::set RunningQueue;
@@ -109,21 +129,22 @@ class TTxController {
 
     bool Load(NTabletFlatExecutor::TTransactionContext& txc);
 
-    const TBasicTxInfo& RegisterTx(const ui64 txId, const NKikimrTxColumnShard::ETransactionKind& txKind, const TString& txBody, const TActorId& source, const ui64 cookie, NTabletFlatExecutor::TTransactionContext& txc);
-    const TBasicTxInfo& RegisterTxWithDeadline(const ui64 txId, const NKikimrTxColumnShard::ETransactionKind& txKind, const TString& txBody, const TActorId& source, const ui64 cookie, NTabletFlatExecutor::TTransactionContext& txc);
+    TTxInfo RegisterTx(const ui64 txId, const NKikimrTxColumnShard::ETransactionKind& txKind, const TString& txBody, const TActorId& source, const ui64 cookie, NTabletFlatExecutor::TTransactionContext& txc);
+    TTxInfo RegisterTxWithDeadline(const ui64 txId, const NKikimrTxColumnShard::ETransactionKind& txKind, const TString& txBody, const TActorId& source, const ui64 cookie, NTabletFlatExecutor::TTransactionContext& txc);
 
     bool CancelTx(const ui64 txId, NTabletFlatExecutor::TTransactionContext& txc);
 
-    std::optional StartPlannedTx();
+    std::optional StartPlannedTx();
     void FinishPlannedTx(const ui64 txId, NTabletFlatExecutor::TTransactionContext& txc);
     void CompleteRunningTx(const TPlanQueueItem& tx);
 
     std::optional GetPlannedTx() const;
     TPlanQueueItem GetFrontTx() const;
-    const TBasicTxInfo* GetTxInfo(const ui64 txId) const;
-    NEvents::TDataEvents::TCoordinatorInfo GetCoordinatorInfo(const ui64 txId) const;
+    std::optional GetTxInfo(const ui64 txId) const;
+    NEvents::TDataEvents::TCoordinatorInfo BuildCoordinatorInfo(const TTxInfo& txInfo) const;
 
     size_t CleanExpiredTxs(NTabletFlatExecutor::TTransactionContext& txc);
+    TDuration GetTxCompleteLag(ui64 timecastStep) const;
 
     enum class EPlanResult {
         Skipped,
diff --git a/ydb/core/tx/columnshard/transactions/ya.make b/ydb/core/tx/columnshard/transactions/ya.make
index 17f70379bb89..9994787f2fe4 100644
--- a/ydb/core/tx/columnshard/transactions/ya.make
+++ b/ydb/core/tx/columnshard/transactions/ya.make
@@ -2,11 +2,13 @@ LIBRARY()
 
 SRCS(
     tx_controller.cpp
+    propose_transaction_base.cpp
 )
 
 PEERDIR(
     ydb/core/tablet_flat
     ydb/core/tx/data_events
+    ydb/core/tx/columnshard/data_sharing/destination/events
 )
 
 IF (OS_WINDOWS)
diff --git a/ydb/core/tx/columnshard/ut_rw/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/ut_rw/CMakeLists.darwin-arm64.txt
index 737bdbf11b87..9a0a319dd72a 100644
--- a/ydb/core/tx/columnshard/ut_rw/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/columnshard/ut_rw/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-columnshard-ut_rw PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-columnshard-ut_rw PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
@@ -67,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/ut_rw/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/ut_rw/CMakeLists.darwin-x86_64.txt
index edb570ec7913..1085d2da8a91 100644
--- a/ydb/core/tx/columnshard/ut_rw/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/columnshard/ut_rw/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-columnshard-ut_rw PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-columnshard-ut_rw PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
@@ -68,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/ut_rw/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/ut_rw/CMakeLists.linux-aarch64.txt
index 3d90143420d2..8511ea73af71 100644
--- a/ydb/core/tx/columnshard/ut_rw/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/columnshard/ut_rw/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-columnshard-ut_rw PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-columnshard-ut_rw PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
@@ -71,6 +68,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/ut_rw/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/ut_rw/CMakeLists.linux-x86_64.txt
index b9e15ace0951..34b7a7ca799f 100644
--- a/ydb/core/tx/columnshard/ut_rw/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/columnshard/ut_rw/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-columnshard-ut_rw PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-columnshard-ut_rw PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
@@ -72,6 +69,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/ut_rw/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/ut_rw/CMakeLists.windows-x86_64.txt
index 68c91949bc06..ccfd2efe9e4d 100644
--- a/ydb/core/tx/columnshard/ut_rw/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/columnshard/ut_rw/CMakeLists.windows-x86_64.txt
@@ -61,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/ut_rw/ut_backup.cpp b/ydb/core/tx/columnshard/ut_rw/ut_backup.cpp
new file mode 100644
index 000000000000..377b9de19ced
--- /dev/null
+++ b/ydb/core/tx/columnshard/ut_rw/ut_backup.cpp
@@ -0,0 +1,112 @@
+#include "columnshard_ut_common.h"
+
+#include 
+#include 
+#include 
+
+#include 
+#include 
+
+
+namespace NKikimr {
+
+using namespace NColumnShard;
+using namespace NTxUT;
+
+Y_UNIT_TEST_SUITE(Backup) {
+
+    bool ProposeTx(TTestBasicRuntime& runtime, TActorId& sender, NKikimrTxColumnShard::ETransactionKind txKind, const TString& txBody, const ui64 txId) {
+        auto event = std::make_unique(
+            txKind, sender, txId, txBody);
+
+        ForwardToTablet(runtime, TTestTxConfig::TxTablet0, sender, event.release());
+        auto ev = runtime.GrabEdgeEvent(sender);
+        const auto& res = ev->Get()->Record;
+        UNIT_ASSERT_EQUAL(res.GetTxId(), txId);
+        UNIT_ASSERT_EQUAL(res.GetTxKind(), txKind);
+        return (res.GetStatus() == NKikimrTxColumnShard::PREPARED);
+    }
+
+    void PlanTx(TTestBasicRuntime& runtime, TActorId& sender, NKikimrTxColumnShard::ETransactionKind txKind, NOlap::TSnapshot snap, bool waitResult = true) {
+        auto plan = std::make_unique(snap.GetPlanStep(), 0, TTestTxConfig::TxTablet0);
+        auto tx = plan->Record.AddTransactions();
+        tx->SetTxId(snap.GetTxId());
+        ActorIdToProto(sender, tx->MutableAckTo());
+        ForwardToTablet(runtime, TTestTxConfig::TxTablet0, sender, plan.release());
+
+        UNIT_ASSERT(runtime.GrabEdgeEvent(sender));
+        if (waitResult) {
+            auto ev = runtime.GrabEdgeEvent(sender);
+            const auto& res = ev->Get()->Record;
+            UNIT_ASSERT_EQUAL(res.GetTxId(), snap.GetTxId());
+            UNIT_ASSERT_EQUAL(res.GetTxKind(), txKind);
+            UNIT_ASSERT_EQUAL(res.GetStatus(), NKikimrTxColumnShard::SUCCESS);
+        }
+    }
+
+    template 
+    void TestWaitCondition(TTestBasicRuntime& runtime, const TString& title, const TChecker& checker, const TDuration d = TDuration::Seconds(10)) {
+        const TInstant start = TInstant::Now();
+        while (TInstant::Now() - start < d && !checker()) {
+            Cerr << "waiting " << title << Endl;
+            runtime.SimulateSleep(TDuration::Seconds(1));
+        }
+        AFL_VERIFY(checker());
+    }
+
+    Y_UNIT_TEST(ProposeBackup) {
+        TTestBasicRuntime runtime;
+        TTester::Setup(runtime);
+
+        const ui64 tableId = 1;
+        const std::vector schema = {
+                                                                    NArrow::NTest::TTestColumn("key1", TTypeInfo(NTypeIds::Uint64)),
+                                                                    NArrow::NTest::TTestColumn("key2", TTypeInfo(NTypeIds::Uint64)),
+                                                                    NArrow::NTest::TTestColumn("field", TTypeInfo(NTypeIds::Utf8) )
+                                                                };
+        auto csControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
+        PrepareTablet(runtime, tableId, schema, 2);
+        ui64 txId = 111;
+        ui64 planStep = 1000000000; // greater then delays
+
+        ui64 writeId = 1;
+
+        TActorId sender = runtime.AllocateEdgeActor();
+
+        {
+            std::vector writeIds;
+            UNIT_ASSERT(WriteData(runtime, sender, writeId++, tableId, MakeTestBlob({0, 100}, schema), schema, true, &writeIds));
+            ProposeCommit(runtime, sender, ++txId, writeIds);
+            PlanCommit(runtime, sender, ++planStep, txId);
+        }
+
+        const ui32 start = csControllerGuard->GetInsertStartedCounter().Val();
+        TestWaitCondition(runtime, "insert compacted",
+            [&]() {
+            ++writeId;
+            std::vector writeIds;
+            WriteData(runtime, sender, writeId, tableId, MakeTestBlob({writeId * 100, (writeId + 1) * 100}, schema), schema, true, &writeIds);
+            ProposeCommit(runtime, sender, ++txId, writeIds);
+            PlanCommit(runtime, sender, ++planStep, txId);
+            return csControllerGuard->GetInsertStartedCounter().Val() > start + 1;
+        }, TDuration::Seconds(1000));
+
+        NKikimrTxColumnShard::TBackupTxBody txBody;
+        NOlap::TSnapshot backupSnapshot(planStep, txId);
+        txBody.MutableBackupTask()->SetTableName("abcde");
+        txBody.MutableBackupTask()->SetTableId(tableId);
+        txBody.MutableBackupTask()->SetSnapshotStep(backupSnapshot.GetPlanStep());
+        txBody.MutableBackupTask()->SetSnapshotTxId(backupSnapshot.GetTxId());
+        txBody.MutableBackupTask()->MutableS3Settings()->SetEndpoint("fake");
+        txBody.MutableBackupTask()->MutableS3Settings()->SetSecretKey("fakeSecret");
+        UNIT_ASSERT(ProposeTx(runtime, sender, NKikimrTxColumnShard::TX_KIND_BACKUP, txBody.SerializeAsString(), ++txId));
+        AFL_VERIFY(csControllerGuard->GetFinishedExportsCount() == 0);
+        PlanTx(runtime, sender, NKikimrTxColumnShard::TX_KIND_BACKUP, NOlap::TSnapshot(++planStep, txId));
+        TestWaitCondition(runtime, "export",
+            []() {return Singleton()->GetSize(); });
+        TestWaitCondition(runtime, "finish",
+            [&]() {return csControllerGuard->GetFinishedExportsCount() == 1; });
+    }
+}
+
+} // namespace NKikimr
diff --git a/ydb/core/tx/columnshard/ut_rw/ut_columnshard_read_write.cpp b/ydb/core/tx/columnshard/ut_rw/ut_columnshard_read_write.cpp
index 5d717773d30d..e1bc10e38fb0 100644
--- a/ydb/core/tx/columnshard/ut_rw/ut_columnshard_read_write.cpp
+++ b/ydb/core/tx/columnshard/ut_rw/ut_columnshard_read_write.cpp
@@ -7,10 +7,11 @@
 #include 
 #include 
 #include 
-#include 
+#include 
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -33,12 +34,10 @@ using TTypeInfo = NScheme::TTypeInfo;
 
 using TDefaultTestsController = NKikimr::NYDBTest::NColumnShard::TController;
 class TDisableCompactionController: public NKikimr::NYDBTest::NColumnShard::TController {
-protected:
-    virtual bool DoOnStartCompaction(std::shared_ptr& changes) {
-        changes = nullptr;
-        return true;
-    }
 public:
+    TDisableCompactionController() {
+        DisableBackground(NKikimr::NYDBTest::ICSController::EBackground::Compaction);
+    }
 };
 
 template 
@@ -338,6 +337,7 @@ bool CheckColumns(const std::shared_ptr& batch, const std::v
 void TestWrite(const TestTableDescription& table) {
     TTestBasicRuntime runtime;
     TTester::Setup(runtime);
+    auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
 
     TActorId sender = runtime.AllocateEdgeActor();
     CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::TxTablet0, TTabletTypes::ColumnShard), &CreateColumnShard);
@@ -352,12 +352,12 @@ void TestWrite(const TestTableDescription& table) {
 
     SetupSchema(runtime, sender, tableId, table);
 
-    const std::vector>& ydbSchema = table.Schema;
+    const auto& ydbSchema = table.Schema;
 
     bool ok = WriteData(runtime, sender, writeId++, tableId, MakeTestBlob({0, 100}, ydbSchema), ydbSchema);
     UNIT_ASSERT(ok);
 
-    std::vector> schema = ydbSchema;
+    auto schema = ydbSchema;
 
     // no data
 
@@ -373,7 +373,7 @@ void TestWrite(const TestTableDescription& table) {
 
     // missing columns
 
-    schema.resize(4);
+    schema = NArrow::NTest::TTestColumn::CropSchema(schema, 4);
     ok = WriteData(runtime, sender, writeId++, tableId, MakeTestBlob({0, 100}, schema), schema);
     UNIT_ASSERT(ok);
 
@@ -381,7 +381,7 @@ void TestWrite(const TestTableDescription& table) {
     // It fails only if we specify source schema. No way to detect it from serialized batch data.
 
     schema = ydbSchema;
-    schema[0].second = TTypeInfo(NTypeIds::Int64);
+    schema[0].SetType(TTypeInfo(NTypeIds::Int64));
     ok = WriteData(runtime, sender, writeId++, tableId, MakeTestBlob({0, 100}, schema),
                    schema);
     UNIT_ASSERT(!ok);
@@ -390,7 +390,7 @@ void TestWrite(const TestTableDescription& table) {
 
     for (size_t i = 0; i < ydbSchema.size(); ++i) {
         schema = ydbSchema;
-        schema[i].second = TTypeInfo(NTypeIds::Int8);
+        schema[i].SetType(TTypeInfo(NTypeIds::Int8));
         ok = WriteData(runtime, sender, writeId++, tableId, MakeTestBlob({0, 100}, schema), schema);
         UNIT_ASSERT(!ok);
     }
@@ -399,24 +399,24 @@ void TestWrite(const TestTableDescription& table) {
 
     for (size_t i = 0; i < ydbSchema.size(); ++i) {
         schema = ydbSchema;
-        schema[i].second = TTypeInfo(NTypeIds::Int64);
+        schema[i].SetType(TTypeInfo(NTypeIds::Int64));
         ok = WriteData(runtime, sender, writeId++, tableId, MakeTestBlob({0, 100}, schema), schema);
-        UNIT_ASSERT(ok == (ydbSchema[i].second == TTypeInfo(NTypeIds::Int64)));
+        UNIT_ASSERT(ok == (ydbSchema[i].GetType() == TTypeInfo(NTypeIds::Int64)));
     }
 
     schema = ydbSchema;
-    schema[1].second = TTypeInfo(NTypeIds::Utf8);
-    schema[5].second = TTypeInfo(NTypeIds::Int32);
+    schema[1].SetType(TTypeInfo(NTypeIds::Utf8));
+    schema[5].SetType(TTypeInfo(NTypeIds::Int32));
     ok = WriteData(runtime, sender, writeId++, tableId, MakeTestBlob({0, 100}, schema), schema);
     UNIT_ASSERT(!ok);
 
     // reordered columns
 
-    THashMap remap(ydbSchema.begin(), ydbSchema.end());
+    THashMap remap = NArrow::NTest::TTestColumn::ConvertToHash(ydbSchema);
 
-    schema.resize(0);
+    schema.clear();
     for (auto& [name, typeInfo] : remap) {
-        schema.push_back({name, typeInfo});
+        schema.push_back(NArrow::NTest::TTestColumn(name, typeInfo));
     }
 
     ok = WriteData(runtime, sender, writeId++, tableId, MakeTestBlob({0, 100}, schema), schema);
@@ -434,6 +434,7 @@ void TestWrite(const TestTableDescription& table) {
 void TestWriteOverload(const TestTableDescription& table) {
     TTestBasicRuntime runtime;
     TTester::Setup(runtime);
+    auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
 
     TActorId sender = runtime.AllocateEdgeActor();
     CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::TxTablet0, TTabletTypes::ColumnShard), &CreateColumnShard);
@@ -624,7 +625,7 @@ void TestWriteRead(bool reboots, const TestTableDescription& table = {}, TString
     runtime.DispatchEvents(options);
 
     auto write = [&](TTestBasicRuntime& runtime, TActorId& sender, ui64 writeId, ui64 tableId,
-                     const TString& data, const std::vector>& ydbSchema, std::vector& intWriteIds) {
+                     const TString& data, const std::vector& ydbSchema, std::vector& intWriteIds) {
         bool ok = WriteData(runtime, sender, writeId, tableId, data, ydbSchema, true, &intWriteIds);
         if (reboots) {
             RebootTablet(runtime, TTestTxConfig::TxTablet0, sender);
@@ -654,8 +655,8 @@ void TestWriteRead(bool reboots, const TestTableDescription& table = {}, TString
 
     SetupSchema(runtime, sender, tableId, table, codec);
 
-    const std::vector>& ydbSchema = table.Schema;
-    const std::vector>& testYdbPk = table.Pk;
+    const std::vector& ydbSchema = table.Schema;
+    const std::vector& testYdbPk = table.Pk;
 
     // ----xx
     // -----xx..
@@ -879,8 +880,7 @@ void TestWriteRead(bool reboots, const TestTableDescription& table = {}, TString
             UNIT_ASSERT_LE(insertedBytes / 100000, 50);
         }
         if (committedBytes) {
-            UNIT_ASSERT_GE(committedBytes / 100000, 65);
-            UNIT_ASSERT_LE(committedBytes / 100000, 78);
+            UNIT_ASSERT_LE(committedBytes / 100000, 1);
         }
         if (compactedBytes) {
             if (codec == "" || codec == "lz4") {
@@ -947,7 +947,7 @@ void TestCompactionInGranuleImpl(bool reboots, const TestTableDescription& table
     runtime.DispatchEvents(options);
 
     auto write = [&](TTestBasicRuntime& runtime, TActorId& sender, ui64 writeId, ui64 tableId,
-                     const TString& data, const std::vector>& ydbSchema, std::vector& writeIds) {
+                     const TString& data, const std::vector& ydbSchema, std::vector& writeIds) {
         bool ok = WriteData(runtime, sender, writeId, tableId, data, ydbSchema, true, &writeIds);
         if (reboots) {
             RebootTablet(runtime, TTestTxConfig::TxTablet0, sender);
@@ -1038,7 +1038,7 @@ void TestCompactionInGranuleImpl(bool reboots, const TestTableDescription& table
         UNIT_ASSERT(rb);
         UNIT_ASSERT(reader.IsCorrectlyFinished());
 
-        if (ydbPk[0].second == TTypeInfo(NTypeIds::String) || ydbPk[0].second == TTypeInfo(NTypeIds::Utf8)) {
+        if (ydbPk[0].GetType() == TTypeInfo(NTypeIds::String) || ydbPk[0].GetType() == TTypeInfo(NTypeIds::Utf8)) {
             UNIT_ASSERT(DataHas({rb}, triggerPortion, true));
             UNIT_ASSERT(DataHas({rb}, smallWrites, true));
         } else {
@@ -1224,6 +1224,7 @@ void TestReadWithProgram(const TestTableDescription& table = {})
 {
     TTestBasicRuntime runtime;
     TTester::Setup(runtime);
+    auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
 
     TActorId sender = runtime.AllocateEdgeActor();
     CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::TxTablet0, TTabletTypes::ColumnShard), &CreateColumnShard);
@@ -1307,6 +1308,7 @@ void TestReadWithProgram(const TestTableDescription& table = {})
 void TestReadWithProgramLike(const TestTableDescription& table = {}) {
     TTestBasicRuntime runtime;
     TTester::Setup(runtime);
+    auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
 
     TActorId sender = runtime.AllocateEdgeActor();
     CreateTestBootstrapper(runtime,
@@ -1375,6 +1377,7 @@ void TestReadWithProgramLike(const TestTableDescription& table = {}) {
 void TestSomePrograms(const TestTableDescription& table) {
     TTestBasicRuntime runtime;
     TTester::Setup(runtime);
+    auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
 
     TActorId sender = runtime.AllocateEdgeActor();
     CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::TxTablet0, TTabletTypes::ColumnShard), &CreateColumnShard);
@@ -1430,12 +1433,13 @@ struct TReadAggregateResult {
     std::vector Counts = {100};
 };
 
-void TestReadAggregate(const std::vector>& ydbSchema, const TString& testDataBlob,
+void TestReadAggregate(const std::vector& ydbSchema, const TString& testDataBlob,
                        bool addProjection, const std::vector& aggKeys = {},
                        const TReadAggregateResult& expectedResult = {},
                        const TReadAggregateResult& expectedFiltered = {1, {1}, {1}, {1}}) {
     TTestBasicRuntime runtime;
     TTester::Setup(runtime);
+    auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
 
     TActorId sender = runtime.AllocateEdgeActor();
     CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::TxTablet0, TTabletTypes::ColumnShard), &CreateColumnShard);
@@ -1449,8 +1453,7 @@ void TestReadAggregate(const std::vector>& ydbSche
     ui64 planStep = 100;
     ui64 txId = 100;
 
-    auto pk = ydbSchema;
-    pk.resize(4);
+    auto pk = NArrow::NTest::TTestColumn::CropSchema(ydbSchema, 4);
     TestTableDescription table{.Schema = ydbSchema, .Pk = pk};
     SetupSchema(runtime, sender, tableId, table);
 
@@ -1480,8 +1483,8 @@ void TestReadAggregate(const std::vector>& ydbSche
 
     ui32 prog = 0;
     for (ui32 i = 0; i < ydbSchema.size(); ++i, ++prog) {
-        if (intTypes.contains(ydbSchema[i].second.GetTypeId()) ||
-            strTypes.contains(ydbSchema[i].second.GetTypeId())) {
+        if (intTypes.contains(ydbSchema[i].GetType().GetTypeId()) ||
+            strTypes.contains(ydbSchema[i].GetType().GetTypeId())) {
             checkResult.insert(prog);
         }
 
@@ -1497,8 +1500,8 @@ void TestReadAggregate(const std::vector>& ydbSche
 
     for (ui32 i = 0; i < ydbSchema.size(); ++i, ++prog) {
         isFiltered.insert(prog);
-        if (intTypes.contains(ydbSchema[i].second.GetTypeId()) ||
-            strTypes.contains(ydbSchema[i].second.GetTypeId())) {
+        if (intTypes.contains(ydbSchema[i].GetType().GetTypeId()) ||
+            strTypes.contains(ydbSchema[i].GetType().GetTypeId())) {
             checkResult.insert(prog);
         }
 
@@ -1516,8 +1519,8 @@ void TestReadAggregate(const std::vector>& ydbSche
     std::vector unnamedColumns = {"100", "101", "102", "103"};
     if (!addProjection) {
         for (auto& key : aggKeys) {
-            namedColumns.push_back(ydbSchema[key].first);
-            unnamedColumns.push_back(ydbSchema[key].first);
+            namedColumns.push_back(ydbSchema[key].GetName());
+            unnamedColumns.push_back(ydbSchema[key].GetName());
         }
     }
 
@@ -1563,13 +1566,14 @@ Y_UNIT_TEST_SUITE(EvWrite) {
 
         TTestBasicRuntime runtime;
         TTester::Setup(runtime);
+        auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
 
         const ui64 ownerId = 0;
         const ui64 tableId = 1;
         const ui64 schemaVersion = 1;
-        const std::vector> schema = {
-                                                                    {"key", TTypeInfo(NTypeIds::Uint64) },
-                                                                    {"field", TTypeInfo(NTypeIds::Utf8) }
+        const std::vector schema = {
+            NArrow::NTest::TTestColumn("key", TTypeInfo(NTypeIds::Uint64)),
+            NArrow::NTest::TTestColumn("field", TTypeInfo(NTypeIds::Utf8))
                                                                 };
         const std::vector columnsIds = {1, 2};
         PrepareTablet(runtime, tableId, schema);
@@ -1583,8 +1587,9 @@ Y_UNIT_TEST_SUITE(EvWrite) {
         TString blobData = NArrow::SerializeBatchNoCompression(batch);
         UNIT_ASSERT(blobData.size() < TLimits::GetMaxBlobSize());
 
-        auto evWrite = std::make_unique(txId, NKikimrDataEvents::TEvWrite::MODE_PREPARE);
-        ui64 payloadIndex = NEvWrite::TPayloadHelper(*evWrite).AddDataToPayload(std::move(blobData));
+        auto evWrite = std::make_unique(NKikimrDataEvents::TEvWrite::MODE_PREPARE);
+        evWrite->SetTxId(txId);
+        ui64 payloadIndex = NEvWrite::TPayloadWriter(*evWrite).AddDataToPayload(std::move(blobData));
         evWrite->AddOperation(NKikimrDataEvents::TEvWrite::TOperation::OPERATION_REPLACE, {ownerId, tableId, schemaVersion}, columnsIds, payloadIndex, NKikimrDataEvents::FORMAT_ARROW);
 
         TActorId sender = runtime.AllocateEdgeActor();
@@ -1613,14 +1618,16 @@ Y_UNIT_TEST_SUITE(EvWrite) {
 
         TTestBasicRuntime runtime;
         TTester::Setup(runtime);
+        auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
+
 
         const ui64 ownerId = 0;
         const ui64 tableId = 1;
         const ui64 schemaVersion = 1;
-        const std::vector> schema = {
-                                                                    {"key", TTypeInfo(NTypeIds::Uint64) },
-                                                                    {"field", TTypeInfo(NTypeIds::Utf8) }
-                                                                };
+        const std::vector schema = {
+            NArrow::NTest::TTestColumn("key", TTypeInfo(NTypeIds::Uint64)),
+            NArrow::NTest::TTestColumn("field", TTypeInfo(NTypeIds::Utf8))
+        };
         const std::vector columnsIds = {1, 2};
         PrepareTablet(runtime, tableId, schema);
         const ui64 txId = 111;
@@ -1633,8 +1640,9 @@ Y_UNIT_TEST_SUITE(EvWrite) {
         TString blobData = NArrow::SerializeBatchNoCompression(batch);
         UNIT_ASSERT(blobData.size() < TLimits::GetMaxBlobSize());
 
-        auto evWrite = std::make_unique(txId, NKikimrDataEvents::TEvWrite::MODE_PREPARE);
-        ui64 payloadIndex = NEvWrite::TPayloadHelper(*evWrite).AddDataToPayload(std::move(blobData));
+        auto evWrite = std::make_unique(NKikimrDataEvents::TEvWrite::MODE_PREPARE);
+        evWrite->SetTxId(txId);
+        ui64 payloadIndex = NEvWrite::TPayloadWriter(*evWrite).AddDataToPayload(std::move(blobData));
         evWrite->AddOperation(NKikimrDataEvents::TEvWrite::TOperation::OPERATION_REPLACE, {ownerId, tableId, schemaVersion}, columnsIds, payloadIndex, NKikimrDataEvents::FORMAT_ARROW);
 
         TActorId sender = runtime.AllocateEdgeActor();
@@ -1660,14 +1668,16 @@ Y_UNIT_TEST_SUITE(EvWrite) {
 
         TTestBasicRuntime runtime;
         TTester::Setup(runtime);
+        auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
+
 
         const ui64 ownerId = 0;
         const ui64 tableId = 1;
         const ui64 schemaVersion = 1;
-        const std::vector> schema = {
-                                                                    {"key", TTypeInfo(NTypeIds::Uint64) },
-                                                                    {"field", TTypeInfo(NTypeIds::Utf8) }
-                                                                };
+        const std::vector schema = {
+            NArrow::NTest::TTestColumn("key", TTypeInfo(NTypeIds::Uint64)),
+            NArrow::NTest::TTestColumn("field", TTypeInfo(NTypeIds::Utf8))
+        };
         const std::vector columnsIds = {1, 2};
         PrepareTablet(runtime, tableId, schema);
         const ui64 txId = 111;
@@ -1680,8 +1690,9 @@ Y_UNIT_TEST_SUITE(EvWrite) {
         TString blobData = NArrow::SerializeBatchNoCompression(batch);
         UNIT_ASSERT(blobData.size() > TLimits::GetMaxBlobSize());
 
-        auto evWrite = std::make_unique(txId, NKikimrDataEvents::TEvWrite::MODE_PREPARE);
-        ui64 payloadIndex = NEvWrite::TPayloadHelper(*evWrite).AddDataToPayload(std::move(blobData));
+        auto evWrite = std::make_unique(NKikimrDataEvents::TEvWrite::MODE_PREPARE);
+        evWrite->SetTxId(txId);
+        ui64 payloadIndex = NEvWrite::TPayloadWriter(*evWrite).AddDataToPayload(std::move(blobData));
         evWrite->AddOperation(NKikimrDataEvents::TEvWrite::TOperation::OPERATION_REPLACE, {ownerId, tableId, schemaVersion}, columnsIds, payloadIndex, NKikimrDataEvents::FORMAT_ARROW);
 
         TActorId sender = runtime.AllocateEdgeActor();
@@ -1698,6 +1709,105 @@ Y_UNIT_TEST_SUITE(EvWrite) {
         auto readResult = ReadAllAsBatch(runtime, tableId, NOlap::TSnapshot(11, txId), schema);
         UNIT_ASSERT_VALUES_EQUAL(readResult->num_rows(), 2048);
     }
+
+    Y_UNIT_TEST(WriteWithLock) {
+        using namespace NArrow;
+
+        TTestBasicRuntime runtime;
+        TTester::Setup(runtime);
+        auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
+
+
+        const ui64 ownerId = 0;
+        const ui64 tableId = 1;
+        const ui64 schemaVersion = 1;
+        const std::vector schema = {
+                                                                    NArrow::NTest::TTestColumn("key", TTypeInfo(NTypeIds::Uint64) ),
+                                                                    NArrow::NTest::TTestColumn("field", TTypeInfo(NTypeIds::Utf8) )
+                                                                };
+        const std::vector columnsIds = {1, 2};
+        PrepareTablet(runtime, tableId, schema);
+        const ui64 txId = 111;
+        const ui64 lockId = 110;
+
+        {
+            NConstruction::IArrayBuilder::TPtr keyColumn = std::make_shared>>("key");
+            NConstruction::IArrayBuilder::TPtr column = std::make_shared>("field", NConstruction::TStringPoolFiller(8, 100));
+            auto batch = NConstruction::TRecordBatchConstructor({ keyColumn, column }).BuildBatch(2048);
+            TString blobData = NArrow::SerializeBatchNoCompression(batch);
+            UNIT_ASSERT(blobData.size() < TLimits::GetMaxBlobSize());
+            auto evWrite = std::make_unique(NKikimrDataEvents::TEvWrite::MODE_PREPARE);
+            evWrite->SetLockId(lockId, 1);
+
+            ui64 payloadIndex = NEvWrite::TPayloadWriter(*evWrite).AddDataToPayload(std::move(blobData));
+            evWrite->AddOperation(NKikimrDataEvents::TEvWrite::TOperation::OPERATION_REPLACE, {ownerId, tableId, schemaVersion}, columnsIds, payloadIndex, NKikimrDataEvents::FORMAT_ARROW);
+
+            TActorId sender = runtime.AllocateEdgeActor();
+            ForwardToTablet(runtime, TTestTxConfig::TxTablet0, sender, evWrite.release());
+
+            {
+                TAutoPtr handle;
+                auto event = runtime.GrabEdgeEvent(handle);
+                UNIT_ASSERT(event);
+                UNIT_ASSERT_VALUES_EQUAL(event->Record.GetOrigin(), TTestTxConfig::TxTablet0);
+                UNIT_ASSERT_VALUES_EQUAL(event->Record.GetTxId(), lockId);
+                UNIT_ASSERT_VALUES_EQUAL((ui64)event->Record.GetStatus(), (ui64)NKikimrDataEvents::TEvWriteResult::STATUS_COMPLETED);
+
+                auto readResult = ReadAllAsBatch(runtime, tableId, NOlap::TSnapshot(10, lockId), schema);
+                UNIT_ASSERT_VALUES_EQUAL(readResult->num_rows(), 0);
+            }
+        }
+        {
+            NConstruction::IArrayBuilder::TPtr keyColumn = std::make_shared>>("key", 2049);
+            NConstruction::IArrayBuilder::TPtr column = std::make_shared>("field", NConstruction::TStringPoolFiller(8, 100));
+            auto batch = NConstruction::TRecordBatchConstructor({ keyColumn, column }).BuildBatch(2048);
+            TString blobData = NArrow::SerializeBatchNoCompression(batch);
+            UNIT_ASSERT(blobData.size() < TLimits::GetMaxBlobSize());
+            auto evWrite = std::make_unique(NKikimrDataEvents::TEvWrite::MODE_PREPARE);
+            evWrite->SetLockId(lockId, 1);
+
+            ui64 payloadIndex = NEvWrite::TPayloadWriter(*evWrite).AddDataToPayload(std::move(blobData));
+            evWrite->AddOperation(NKikimrDataEvents::TEvWrite::TOperation::OPERATION_REPLACE, {ownerId, tableId, schemaVersion}, columnsIds, payloadIndex, NKikimrDataEvents::FORMAT_ARROW);
+
+            TActorId sender = runtime.AllocateEdgeActor();
+            ForwardToTablet(runtime, TTestTxConfig::TxTablet0, sender, evWrite.release());
+
+            {
+                TAutoPtr handle;
+                auto event = runtime.GrabEdgeEvent(handle);
+                UNIT_ASSERT(event);
+                UNIT_ASSERT_VALUES_EQUAL(event->Record.GetOrigin(), TTestTxConfig::TxTablet0);
+                UNIT_ASSERT_VALUES_EQUAL(event->Record.GetTxId(), lockId);
+                UNIT_ASSERT_VALUES_EQUAL((ui64)event->Record.GetStatus(), (ui64)NKikimrDataEvents::TEvWriteResult::STATUS_COMPLETED);
+
+                auto readResult = ReadAllAsBatch(runtime, tableId, NOlap::TSnapshot(10, txId), schema);
+                UNIT_ASSERT_VALUES_EQUAL(readResult->num_rows(), 0);
+            }
+        }
+        {
+            auto evWrite = std::make_unique(NKikimrDataEvents::TEvWrite::MODE_PREPARE);
+            evWrite->SetLockId(lockId, 1);
+            evWrite->SetTxId(txId);
+            evWrite->Record.MutableLocks()->SetOp(NKikimrDataEvents::TKqpLocks::Commit);
+
+            TActorId sender = runtime.AllocateEdgeActor();
+            ForwardToTablet(runtime, TTestTxConfig::TxTablet0, sender, evWrite.release());
+
+            {
+                TAutoPtr handle;
+                auto event = runtime.GrabEdgeEvent(handle);
+                UNIT_ASSERT(event);
+                UNIT_ASSERT_VALUES_EQUAL(event->Record.GetOrigin(), TTestTxConfig::TxTablet0);
+                UNIT_ASSERT_VALUES_EQUAL((ui64)event->Record.GetStatus(), (ui64)NKikimrDataEvents::TEvWriteResult::STATUS_PREPARED);
+                UNIT_ASSERT_VALUES_EQUAL(event->Record.GetTxId(), txId);
+            }
+
+            PlanWriteTx(runtime, sender, NOlap::TSnapshot(11, txId));
+        }
+
+        auto readResult = ReadAllAsBatch(runtime, tableId, NOlap::TSnapshot(11, txId), schema);
+        UNIT_ASSERT_VALUES_EQUAL(readResult->num_rows(), 2 * 2048);
+    }
 }
 
 Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
@@ -1787,8 +1897,8 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
         auto schema = TTestSchema::YdbSchema();
         auto pk = TTestSchema::YdbPkSchema();
 
-        schema[0].second = TTypeInfo(typeId);
-        pk[0].second = TTypeInfo(typeId);
+        schema[0].SetType(TTypeInfo(typeId));
+        pk[0].SetType(TTypeInfo(typeId));
         TestTableDescription table{.Schema = schema, .Pk = pk};
         TestCompactionInGranuleImpl(reboot, table);
     }
@@ -1869,14 +1979,14 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
     Y_UNIT_TEST(ReadSomePrograms) {
         TestTableDescription table;
         table.Schema = {
-            {"timestamp", TTypeInfo(NTypeIds::Timestamp) },
-            {"resource_id", TTypeInfo(NTypeIds::Utf8) },
-            {"uid", TTypeInfo(NTypeIds::Utf8) },
-            {"level", TTypeInfo(NTypeIds::Int32) },
-            {"message", TTypeInfo(NTypeIds::Utf8) }
+            NArrow::NTest::TTestColumn("timestamp", TTypeInfo(NTypeIds::Timestamp) ),
+            NArrow::NTest::TTestColumn("resource_id", TTypeInfo(NTypeIds::Utf8) ),
+            NArrow::NTest::TTestColumn("uid", TTypeInfo(NTypeIds::Utf8) ),
+            NArrow::NTest::TTestColumn("level", TTypeInfo(NTypeIds::Int32) ),
+            NArrow::NTest::TTestColumn("message", TTypeInfo(NTypeIds::Utf8) )
         };
         table.Pk = {
-            {"timestamp", TTypeInfo(NTypeIds::Timestamp) }
+            NArrow::NTest::TTestColumn("timestamp", TTypeInfo(NTypeIds::Timestamp) )
         };
 
         TestSomePrograms(table);
@@ -1913,7 +2023,7 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
             Cerr << "-- group by key: " << key << "\n";
 
             // the type has the same values in test batch so result would be grouped in one row
-            if (sameValTypes.contains(schema[key].second.GetTypeId())) {
+            if (sameValTypes.contains(schema[key].GetType().GetTypeId())) {
                 TestReadAggregate(schema, testBlob, (key % 2), { key }, resGrouped, resFiltered);
             } else {
                 TestReadAggregate(schema, testBlob, (key % 2), { key }, resDefault, resFiltered);
@@ -1921,8 +2031,8 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
         }
         for (ui32 key = 0; key < schema.size() - 1; ++key) {
             Cerr << "-- group by key: " << key << ", " << key + 1 << "\n";
-            if (sameValTypes.contains(schema[key].second.GetTypeId()) &&
-                sameValTypes.contains(schema[key + 1].second.GetTypeId())) {
+            if (sameValTypes.contains(schema[key].GetType().GetTypeId()) &&
+                sameValTypes.contains(schema[key + 1].GetType().GetTypeId())) {
                 TestReadAggregate(schema, testBlob, (key % 2), { key, key + 1 }, resGrouped, resFiltered);
             } else {
                 TestReadAggregate(schema, testBlob, (key % 2), { key, key + 1 }, resDefault, resFiltered);
@@ -1930,9 +2040,9 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
         }
         for (ui32 key = 0; key < schema.size() - 2; ++key) {
             Cerr << "-- group by key: " << key << ", " << key + 1 << ", " << key + 2 << "\n";
-            if (sameValTypes.contains(schema[key].second.GetTypeId()) &&
-                sameValTypes.contains(schema[key + 1].second.GetTypeId()) &&
-                sameValTypes.contains(schema[key + 1].second.GetTypeId())) {
+            if (sameValTypes.contains(schema[key].GetType().GetTypeId()) &&
+                sameValTypes.contains(schema[key + 1].GetType().GetTypeId()) &&
+                sameValTypes.contains(schema[key + 1].GetType().GetTypeId())) {
                 TestReadAggregate(schema, testBlob, (key % 2), { key, key + 1, key + 2 }, resGrouped, resFiltered);
             } else {
                 TestReadAggregate(schema, testBlob, (key % 2), { key, key + 1, key + 2 }, resDefault, resFiltered);
@@ -1945,10 +2055,10 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
         TTestBasicRuntime& Runtime;
         const ui64 PlanStep;
         const ui64 TxId;
-        const std::vector> YdbPk;
+        const std::vector YdbPk;
 
     public:
-        TTabletReadPredicateTest(TTestBasicRuntime& runtime, const ui64 planStep, const ui64 txId, const std::vector>& ydbPk)
+        TTabletReadPredicateTest(TTestBasicRuntime& runtime, const ui64 planStep, const ui64 txId, const std::vector& ydbPk)
             : Runtime(runtime)
             , PlanStep(planStep)
             , TxId(txId)
@@ -1968,14 +2078,14 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
 
             bool GetInclude() const noexcept { return Include; }
 
-            std::vector GetCellVec(const std::vector>& pk,
+            std::vector GetCellVec(const std::vector& pk,
                                         std::vector& mem, bool trailingNulls = false) const
             {
                 UNIT_ASSERT(Border.size() <= pk.size());
                 std::vector cells;
                 size_t i = 0;
                 for (; i < Border.size(); ++i) {
-                    cells.push_back(MakeTestCell(pk[i].second, Border[i], mem));
+                    cells.push_back(MakeTestCell(pk[i].GetType(), Border[i], mem));
                 }
                 for (; trailingNulls && i < pk.size(); ++i) {
                     cells.push_back(TCell());
@@ -1995,7 +2105,7 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
             TTestCaseOptions& SetTo(const TBorder& border) { To = border; return *this; }
             TTestCaseOptions& SetExpectedCount(ui32 count) { ExpectedCount = count; return *this; }
 
-            TSerializedTableRange MakeRange(const std::vector>& pk) const {
+            TSerializedTableRange MakeRange(const std::vector& pk) const {
                 std::vector mem;
                 auto cellsFrom = From ? From->GetCellVec(pk, mem, false) : std::vector();
                 auto cellsTo = To ? To->GetCellVec(pk, mem) : std::vector();
@@ -2073,7 +2183,7 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
         SetupSchema(runtime, sender, tableId, table, "lz4");
         TAutoPtr handle;
 
-        bool isStrPk0 = table.Pk[0].second == TTypeInfo(NTypeIds::String) || table.Pk[0].second == TTypeInfo(NTypeIds::Utf8);
+        bool isStrPk0 = table.Pk[0].GetType() == TTypeInfo(NTypeIds::String) || table.Pk[0].GetType() == TTypeInfo(NTypeIds::Utf8);
 
         // Write different keys: grow on compaction
 
@@ -2190,13 +2300,13 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
                 ui32 resultLimit = 1024 * 1024;
                 runtime.Send(new IEventHandle(scanActorId, sender, new NKqp::TEvKqpCompute::TEvScanDataAck(resultLimit, 0, 1)));
                 auto scan = runtime.GrabEdgeEvent(handle);
-                auto batchStats = scan->ArrowBatch;
                 if (scan->Finished) {
                     AFL_VERIFY(!scan->ArrowBatch || !scan->ArrowBatch->num_rows());
                     break;
                 }
-                UNIT_ASSERT(batchStats);
-//                Cerr << batchStats->ToString() << Endl;
+                UNIT_ASSERT(scan->ArrowBatch);
+                auto batchStats = NArrow::ToBatch(scan->ArrowBatch, true);
+                //                Cerr << batchStats->ToString() << Endl;
 
                 for (ui32 i = 0; i < batchStats->num_rows(); ++i) {
                     auto paths = batchStats->GetColumnByName("PathId");
@@ -2222,7 +2332,7 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
                     if (!keyColumnId) {
                         keyColumnId = internalColumnId;
                     }
-                    Cerr << "[" << __LINE__ << "] " << activity << " " << table.Pk[0].second.GetTypeId() << " "
+                    Cerr << "[" << __LINE__ << "] " << activity << " " << table.Pk[0].GetType().GetTypeId() << " "
                         << pathId << " " << kindStr << " " << numRows << " " << numBytes << " " << numRawBytes << "\n";
 
                     if (pathId == tableId) {
@@ -2260,12 +2370,12 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
         auto schema = TTestSchema::YdbSchema();
         auto pk = TTestSchema::YdbPkSchema();
         TTestBlobOptions opts;
-        opts.SameValueColumns.emplace(pk[0].first);
+        opts.SameValueColumns.emplace(pk[0].GetName());
 
-        schema[0].second = TTypeInfo(typeId);
-        pk[0].second = TTypeInfo(typeId);
-        schema[1].second = TTypeInfo(typeId);
-        pk[1].second = TTypeInfo(typeId);
+        schema[0].SetType(TTypeInfo(typeId));
+        pk[0].SetType(TTypeInfo(typeId));
+        schema[1].SetType(TTypeInfo(typeId));
+        pk[1].SetType(TTypeInfo(typeId));
         TestTableDescription table{.Schema = schema, .Pk = pk};
         TestCompactionSplitGranuleImpl(table, opts);
     }
@@ -2305,6 +2415,7 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
     Y_UNIT_TEST(ReadStale) {
         TTestBasicRuntime runtime;
         TTester::Setup(runtime);
+        auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
 
         TActorId sender = runtime.AllocateEdgeActor();
         CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::TxTablet0, TTabletTypes::ColumnShard), &CreateColumnShard);
@@ -2322,7 +2433,7 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
         SetupSchema(runtime, sender, tableId);
         TAutoPtr handle;
 
-        // Write some test data to adavnce the time
+        // Write some test data to advance the time
         {
             std::pair triggerPortion = {1, 1000};
             TString triggerData = MakeTestBlob(triggerPortion, ydbSchema);
@@ -2434,7 +2545,7 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
                     }
                     Cerr << Endl;
                 }
-                if (auto cleanup = dynamic_pointer_cast(msg->IndexChanges)) {
+                if (auto cleanup = dynamic_pointer_cast(msg->IndexChanges)) {
                     Y_ABORT_UNLESS(cleanup->PortionsToDrop.size());
                     ++cleanupsHappened;
                     Cerr << "Cleanup old portions:";
@@ -2477,7 +2588,7 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
                     Cerr << " deletes blobs: " << JoinStrings(msg->DoNotKeep->begin(), msg->DoNotKeep->end(), " ");
                     for (const auto& blobId : *msg->DoNotKeep) {
                         deletedBlobs.insert(blobId.ToString());
-                        delayedBlobs.erase(TUnifiedBlobId(0, blobId).ToStringNew());
+                        delayedBlobs.erase(NOlap::TUnifiedBlobId(0, blobId).ToStringNew());
                     }
                 }
                 Cerr << Endl;
@@ -2613,6 +2724,18 @@ Y_UNIT_TEST_SUITE(TColumnShardTestReadWrite) {
     Y_UNIT_TEST(CompactionGC) {
         TestCompactionGC();
     }
+
+    Y_UNIT_TEST(PortionInfoSize) {
+        Cerr << sizeof(NOlap::TPortionInfo) << Endl;
+        Cerr << sizeof(NOlap::TPortionMeta) << Endl;
+        Cerr << sizeof(NOlap::TColumnRecord) << Endl;
+        Cerr << sizeof(NOlap::TIndexChunk) << Endl;
+        Cerr << sizeof(std::optional) << Endl;
+        Cerr << sizeof(std::optional) << Endl;
+        Cerr << sizeof(NOlap::TSnapshot) << Endl;
+        Cerr << sizeof(NArrow::TReplaceKey) << Endl;
+        Cerr << sizeof(NArrow::NMerger::TSortableBatchPosition) << Endl;
+    }
 }
 
 }
diff --git a/ydb/core/tx/columnshard/ut_rw/ut_normalizer.cpp b/ydb/core/tx/columnshard/ut_rw/ut_normalizer.cpp
index 3c467583b189..8f6df202a4ec 100644
--- a/ydb/core/tx/columnshard/ut_rw/ut_normalizer.cpp
+++ b/ydb/core/tx/columnshard/ut_rw/ut_normalizer.cpp
@@ -32,6 +32,16 @@ struct TPortionRecord {
     ui32 Size = 0;
 };
 
+
+class TNormalizerChecker {
+public:
+    virtual ~TNormalizerChecker() {}
+
+    virtual ui64 RecordsCountAfterReboot(const ui64 initialRecodsCount) const {
+        return initialRecodsCount;
+    }
+};
+
 class TPathIdCleaner : public NYDBTest::ILocalDBModifier {
 public:
     virtual void Apply(NTabletFlatExecutor::TTransactionContext& txc) const override {
@@ -149,59 +159,78 @@ class TColumnChunksCleaner : public NYDBTest::ILocalDBModifier {
         }
     }
 };
-
-class TMinMaxCleaner : public NYDBTest::ILocalDBModifier {
+/*
+class TPortinosCleaner : public NYDBTest::ILocalDBModifier {
 public:
     virtual void Apply(NTabletFlatExecutor::TTransactionContext& txc) const override {
         using namespace NColumnShard;
         NIceDb::TNiceDb db(txc.DB);
 
-        std::vector portion2Key;
-        std::optional pathId;
+        std::vector portions;
         {
-            auto rowset = db.Table().Select();
+            auto rowset = db.Table().Select();
             UNIT_ASSERT(rowset.IsReady());
 
             while (!rowset.EndOfSet()) {
-                TPortionRecord key;
-                key.Index = rowset.GetValue();
-                key.Granule = rowset.GetValue();
-                key.ColumnIdx = rowset.GetValue();
-                key.PlanStep = rowset.GetValue();
-                key.TxId = rowset.GetValue();
-                key.Portion = rowset.GetValue();
-                key.Chunk = rowset.GetValue();
-
-                key.XPlanStep = rowset.GetValue();
-                key.XTxId = rowset.GetValue();
-                key.Blob = rowset.GetValue();
-                key.Metadata = rowset.GetValue();
-                key.Offset = rowset.GetValue();
-                key.Size = rowset.GetValue();
+                NOlap::TPortionAddress addr(rowset.GetValue(), rowset.GetValue());
+                portions.emplace_back(addr);
+                UNIT_ASSERT(rowset.Next());
+            }
+        }
 
-                pathId = rowset.GetValue();
+        for (auto&& key: portions) {
+            db.Table().Key(key.GetPathId(), key.GetPortionId()).Delete();
+        }
+    }
+};
+*/
+class TTablesCleaner : public NYDBTest::ILocalDBModifier {
+public:
+    virtual void Apply(NTabletFlatExecutor::TTransactionContext& txc) const override {
+        using namespace NColumnShard;
+        NIceDb::TNiceDb db(txc.DB);
 
-                portion2Key.emplace_back(std::move(key));
+        std::vector tables;
+        {
+            auto rowset = db.Table().Select();
+            UNIT_ASSERT(rowset.IsReady());
 
+            while (!rowset.EndOfSet()) {
+                const auto pathId = rowset.GetValue();
+                tables.emplace_back(pathId);
                 UNIT_ASSERT(rowset.Next());
             }
         }
 
-        UNIT_ASSERT(pathId.has_value());
+        for (auto&& key: tables) {
+            db.Table().Key(key).Delete();
+        }
 
-        for (auto&& key: portion2Key) {
-            NKikimrTxColumnShard::TIndexColumnMeta metaProto;
-            UNIT_ASSERT(metaProto.ParseFromArray(key.Metadata.data(), key.Metadata.size()));
-            if (metaProto.HasPortionMeta()) {
-                metaProto.MutablePortionMeta()->ClearRecordSnapshotMax();
-                metaProto.MutablePortionMeta()->ClearRecordSnapshotMin();
+        struct TKey {
+            ui64 PathId;
+            ui64 Step;
+            ui64 TxId;
+        };
+
+        std::vector versions;
+        {
+            auto rowset = db.Table().Select();
+            UNIT_ASSERT(rowset.IsReady());
+
+            while (!rowset.EndOfSet()) {
+                TKey key;
+                key.PathId = rowset.GetValue();
+                key.Step = rowset.GetValue();
+                key.TxId = rowset.GetValue();
+                versions.emplace_back(key);
+                UNIT_ASSERT(rowset.Next());
             }
+        }
 
-            db.Table().Key(key.Index, key.Granule, key.ColumnIdx,
-            key.PlanStep, key.TxId, key.Portion, key.Chunk).Update(
-                NIceDb::TUpdate(metaProto.SerializeAsString())
-            );
+        for (auto&& key: versions) {
+            db.Table().Key(key.PathId, key.Step, key.TxId).Delete();
         }
+
     }
 };
 
@@ -218,7 +247,7 @@ class TPrepareLocalDBController: public NKikimr::NYDBTest::NColumnShard::TContro
 Y_UNIT_TEST_SUITE(Normalizers) {
 
     template 
-    void TestNormalizerImpl() {
+    void TestNormalizerImpl(const TNormalizerChecker& checker = TNormalizerChecker()) {
         using namespace NArrow;
         auto csControllerGuard = NYDBTest::TControllers::RegisterCSControllerGuard>();
 
@@ -228,10 +257,10 @@ Y_UNIT_TEST_SUITE(Normalizers) {
         const ui64 ownerId = 0;
         const ui64 tableId = 1;
         const ui64 schemaVersion = 1;
-        const std::vector> schema = {
-                                                                    {"key1", TTypeInfo(NTypeIds::Uint64) },
-                                                                    {"key2", TTypeInfo(NTypeIds::Uint64) },
-                                                                    {"field", TTypeInfo(NTypeIds::Utf8) }
+        const std::vector schema = {
+                                                                    NArrow::NTest::TTestColumn("key1", TTypeInfo(NTypeIds::Uint64)),
+                                                                    NArrow::NTest::TTestColumn("key2", TTypeInfo(NTypeIds::Uint64)),
+                                                                    NArrow::NTest::TTestColumn("field", TTypeInfo(NTypeIds::Utf8) )
                                                                 };
         const std::vector columnsIds = { 1, 2, 3};
         PrepareTablet(runtime, tableId, schema, 2);
@@ -245,8 +274,9 @@ Y_UNIT_TEST_SUITE(Normalizers) {
         auto batch = NConstruction::TRecordBatchConstructor({ key1Column, key2Column, column }).BuildBatch(20048);
         TString blobData = NArrow::SerializeBatchNoCompression(batch);
 
-        auto evWrite = std::make_unique(txId, NKikimrDataEvents::TEvWrite::MODE_PREPARE);
-        ui64 payloadIndex = NEvWrite::TPayloadHelper(*evWrite).AddDataToPayload(std::move(blobData));
+        auto evWrite = std::make_unique(NKikimrDataEvents::TEvWrite::MODE_PREPARE);
+        evWrite->SetTxId(txId);
+        ui64 payloadIndex = NEvWrite::TPayloadWriter(*evWrite).AddDataToPayload(std::move(blobData));
         evWrite->AddOperation(NKikimrDataEvents::TEvWrite::TOperation::OPERATION_REPLACE, {ownerId, tableId, schemaVersion}, columnsIds, payloadIndex, NKikimrDataEvents::FORMAT_ARROW);
 
         TActorId sender = runtime.AllocateEdgeActor();
@@ -268,7 +298,7 @@ Y_UNIT_TEST_SUITE(Normalizers) {
 
         {
             auto readResult = ReadAllAsBatch(runtime, tableId, NOlap::TSnapshot(11, txId), schema);
-            UNIT_ASSERT_VALUES_EQUAL(readResult->num_rows(), 20048);
+            UNIT_ASSERT_VALUES_EQUAL(readResult->num_rows(), checker.RecordsCountAfterReboot(20048));
         }
     }
 
@@ -279,9 +309,21 @@ Y_UNIT_TEST_SUITE(Normalizers) {
     Y_UNIT_TEST(ColumnChunkNormalizer) {
         TestNormalizerImpl();
     }
+/*
+    Y_UNIT_TEST(PortionsNormalizer) {
+        TestNormalizerImpl();
+    }
+*/
 
-    Y_UNIT_TEST(MinMaxNormalizer) {
-        TestNormalizerImpl();
+    Y_UNIT_TEST(EmptyTablesNormalizer) {
+        class TLocalNormalizerChecker : public TNormalizerChecker {
+        public:
+            ui64 RecordsCountAfterReboot(const ui64) const override {
+                return 0;
+            }
+        };
+        TLocalNormalizerChecker checker;
+        TestNormalizerImpl(checker);
     }
 }
 
diff --git a/ydb/core/tx/columnshard/ut_rw/ya.make b/ydb/core/tx/columnshard/ut_rw/ya.make
index 5932bccf759a..8f5af7869b5f 100644
--- a/ydb/core/tx/columnshard/ut_rw/ya.make
+++ b/ydb/core/tx/columnshard/ut_rw/ya.make
@@ -19,9 +19,11 @@ PEERDIR(
     library/cpp/regex/pcre
     library/cpp/svnversion
     ydb/core/testlib/default
+    ydb/core/tx/columnshard/test_helper
     ydb/core/tx/columnshard/hooks/abstract
     ydb/core/tx/columnshard/hooks/testing
     ydb/core/tx/columnshard/common/tests
+    ydb/core/tx/columnshard/test_helper
     ydb/services/metadata
     ydb/core/tx
     ydb/public/lib/yson_value
@@ -33,6 +35,7 @@ SRCS(
     columnshard_ut_common.cpp
     ut_columnshard_read_write.cpp
     ut_normalizer.cpp
+    ut_backup.cpp
 )
 
 END()
diff --git a/ydb/core/tx/columnshard/ut_schema/CMakeLists.darwin-arm64.txt b/ydb/core/tx/columnshard/ut_schema/CMakeLists.darwin-arm64.txt
index 837f723bf9c4..236df899d978 100644
--- a/ydb/core/tx/columnshard/ut_schema/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/columnshard/ut_schema/CMakeLists.darwin-arm64.txt
@@ -33,8 +33,6 @@ target_link_options(ydb-core-tx-columnshard-ut_schema PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-columnshard-ut_schema PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/ut_schema/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/columnshard/ut_schema/CMakeLists.darwin-x86_64.txt
index b939a28187e2..be286f288451 100644
--- a/ydb/core/tx/columnshard/ut_schema/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/columnshard/ut_schema/CMakeLists.darwin-x86_64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-columnshard-ut_schema PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-columnshard-ut_schema PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/ut_schema/CMakeLists.linux-aarch64.txt b/ydb/core/tx/columnshard/ut_schema/CMakeLists.linux-aarch64.txt
index 2bfe87b014bd..824131189ba2 100644
--- a/ydb/core/tx/columnshard/ut_schema/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/columnshard/ut_schema/CMakeLists.linux-aarch64.txt
@@ -36,9 +36,6 @@ target_link_options(ydb-core-tx-columnshard-ut_schema PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-columnshard-ut_schema PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/ut_schema/CMakeLists.linux-x86_64.txt b/ydb/core/tx/columnshard/ut_schema/CMakeLists.linux-x86_64.txt
index c88400f82da3..202a72d24b75 100644
--- a/ydb/core/tx/columnshard/ut_schema/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/columnshard/ut_schema/CMakeLists.linux-x86_64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-columnshard-ut_schema PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-columnshard-ut_schema PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/columnshard/columnshard_ut_common.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/columnshard/ut_schema/CMakeLists.windows-x86_64.txt b/ydb/core/tx/columnshard/ut_schema/CMakeLists.windows-x86_64.txt
index ac67d068cd1b..385621f72a54 100644
--- a/ydb/core/tx/columnshard/ut_schema/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/columnshard/ut_schema/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
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 d08e22258981..ae9da9114c76 100644
--- a/ydb/core/tx/columnshard/ut_schema/ut_columnshard_schema.cpp
+++ b/ydb/core/tx/columnshard/ut_schema/ut_columnshard_schema.cpp
@@ -9,6 +9,8 @@
 #include 
 #include 
 #include 
+#include 
+#include 
 #include 
 
 #include 
@@ -20,6 +22,7 @@ namespace NKikimr {
 
 using namespace NTxUT;
 using namespace NColumnShard;
+using TDefaultTestsController = NKikimr::NYDBTest::NColumnShard::TController;
 
 enum class EInitialEviction {
     None,
@@ -27,71 +30,10 @@ enum class EInitialEviction {
     Tiering
 };
 
-class TWaitCompactionController: public NKikimr::NYDBTest::NColumnShard::TController {
-private:
-    using TBase = NKikimr::NYDBTest::ICSController;
-    TAtomic TTLFinishedCounter = 0;
-    TAtomic TTLStartedCounter = 0;
-    NMetadata::NFetcher::ISnapshot::TPtr CurrentConfig;
-    bool CompactionEnabledFlag = true;
-    ui32 TiersModificationsCount = 0;
-protected:
-    virtual void OnTieringModified(const std::shared_ptr& /*tiers*/) override {
-        ++TiersModificationsCount;
-        AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("event", "OnTieringModified")("count", TiersModificationsCount);
-    }
-    virtual bool DoOnStartCompaction(std::shared_ptr& changes) override {
-        if (!CompactionEnabledFlag) {
-            changes = nullptr;
-        }
-        return true;
-    }
-    virtual bool DoOnWriteIndexComplete(const ui64 /*tabletId*/, const TString& changeClassName) override {
-        if (changeClassName.find("TTL") != TString::npos) {
-            AtomicIncrement(TTLFinishedCounter);
-        }
-        return true;
-    }
-    virtual bool DoOnWriteIndexStart(const ui64 /*tabletId*/, const TString& changeClassName) override {
-        if (changeClassName.find("TTL") != TString::npos) {
-            AtomicIncrement(TTLStartedCounter);
-        }
-        return true;
-    }
-public:
-    void SetCompactionEnabled(const bool value) {
-        CompactionEnabledFlag = value;
-    }
-    void SetTiersSnapshot(TTestBasicRuntime& runtime, const TActorId& tabletActorId, const NMetadata::NFetcher::ISnapshot::TPtr& snapshot) {
-        CurrentConfig = snapshot;
-        ui32 startCount = TiersModificationsCount;
-        ProvideTieringSnapshot(runtime, tabletActorId, snapshot);
-        while (TiersModificationsCount == startCount) {
-            runtime.SimulateSleep(TDuration::Seconds(1));
-        }
-    }
-
-    virtual NMetadata::NFetcher::ISnapshot::TPtr GetFallbackTiersSnapshot() const override {
-        if (CurrentConfig) {
-            return CurrentConfig;
-        } else {
-            return TBase::GetFallbackTiersSnapshot();
-        }
-    }
-    i64 GetTTLFinishedCounter() const {
-        return AtomicGet(TTLFinishedCounter);
-    }
-
-    i64 GetTTLStartedCounter() const {
-        return AtomicGet(TTLStartedCounter);
-    }
-
-};
-
 namespace {
 
-static const std::vector> testYdbSchema = TTestSchema::YdbSchema();
-static const std::vector> testYdbPk = TTestSchema::YdbPkSchema();
+static const std::vector testYdbSchema = TTestSchema::YdbSchema();
+static const std::vector testYdbPk = TTestSchema::YdbPkSchema();
 
 std::shared_ptr UpdateColumn(std::shared_ptr batch, TString columnName, i64 seconds) {
     std::string name(columnName.c_str(), columnName.size());
@@ -184,7 +126,7 @@ bool CheckSame(const std::shared_ptr& batch, const ui32 expe
 }
 
 std::vector MakeData(const std::vector& ts, ui32 portionSize, ui32 overlapSize, const TString& ttlColumnName,
-                              const std::vector>& ydbSchema = testYdbSchema) {
+                              const std::vector& ydbSchema = testYdbSchema) {
     UNIT_ASSERT(ts.size() > 0);
 
     ui32 numRows = portionSize + (ts.size() - 1) * (portionSize - overlapSize);
@@ -204,23 +146,6 @@ std::vector MakeData(const std::vector& ts, ui32 portionSize, ui3
     return data;
 }
 
-bool TestCreateTable(const TString& txBody, ui64 planStep = 1000, ui64 txId = 100) {
-    TTestBasicRuntime runtime;
-    TTester::Setup(runtime);
-
-    TActorId sender = runtime.AllocateEdgeActor();
-    CreateTestBootstrapper(runtime,
-                           CreateTestTabletInfo(TTestTxConfig::TxTablet0, TTabletTypes::ColumnShard),
-                           &CreateColumnShard);
-
-    TDispatchOptions options;
-    options.FinalEvents.push_back(TDispatchOptions::TFinalEventCondition(TEvTablet::EvBoot));
-    runtime.DispatchEvents(options);
-
-    //
-    return ProposeSchemaTx(runtime, sender, txBody, NOlap::TSnapshot(++planStep, ++txId));
-}
-
 enum class EExpectedResult {
     OK_FINISHED,
     OK,
@@ -232,16 +157,16 @@ static constexpr ui32 PORTION_ROWS = 80 * 1000;
 // ts[0] = 1600000000; // date -u --date='@1600000000' Sun Sep 13 12:26:40 UTC 2020
 // ts[1] = 1620000000; // date -u --date='@1620000000' Mon May  3 00:00:00 UTC 2021
 void TestTtl(bool reboots, bool internal, TTestSchema::TTableSpecials spec = {},
-             const std::vector>& ydbSchema = testYdbSchema)
+             const std::vector& ydbSchema = testYdbSchema)
 {
-    auto csControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
-    csControllerGuard->SetCompactionEnabled(false);
+    auto csControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
+    csControllerGuard->DisableBackground(NKikimr::NYDBTest::ICSController::EBackground::Compaction);
     std::vector ts = {1600000000, 1620000000};
 
     ui32 ttlIncSeconds = 1;
-    for (auto& [name, typeInfo] : ydbSchema) {
-        if (name == spec.TtlColumn) {
-            if (typeInfo.GetTypeId() == NTypeIds::Date) {
+    for (auto& c : ydbSchema) {
+        if (c.GetName() == spec.TtlColumn) {
+            if (c.GetType().GetTypeId() == NTypeIds::Date) {
                 ttlIncSeconds = TDuration::Days(1).Seconds();
             }
             break;
@@ -280,11 +205,9 @@ void TestTtl(bool reboots, bool internal, TTestSchema::TTableSpecials spec = {},
         UNIT_ASSERT(!spec.TtlColumn.empty());
         spec.EvictAfter = TDuration::Seconds(ttlSec);
     }
-    bool ok = ProposeSchemaTx(runtime, sender,
+    SetupSchema(runtime, sender,
                               TTestSchema::CreateInitShardTxBody(tableId, ydbSchema, testYdbPk, spec, "/Root/olapStore"),
                               NOlap::TSnapshot(++planStep, ++txId));
-    UNIT_ASSERT(ok);
-    PlanSchemaTx(runtime, sender, NOlap::TSnapshot(planStep, txId));
     if (spec.HasTiers()) {
         csControllerGuard->SetTiersSnapshot(runtime, sender, TTestSchema::BuildSnapshot(spec));
     }
@@ -310,6 +233,9 @@ void TestTtl(bool reboots, bool internal, TTestSchema::TTableSpecials spec = {},
     } else {
         TriggerTTL(runtime, sender, NOlap::TSnapshot(++planStep, ++txId), {tableId}, ts[0] + ttlIncSeconds, spec.TtlColumn);
     }
+    while (csControllerGuard->GetTTLFinishedCounter().Val() != csControllerGuard->GetTTLStartedCounter().Val()) {
+        runtime.SimulateSleep(TDuration::Seconds(1)); // wait all finished before (ttl especially)
+    }
 
     TAutoPtr handle;
 
@@ -333,11 +259,9 @@ void TestTtl(bool reboots, bool internal, TTestSchema::TTableSpecials spec = {},
     } else {
         spec.EvictAfter = TDuration::Seconds(ttlSec);
     }
-    ok = ProposeSchemaTx(runtime, sender,
+    SetupSchema(runtime, sender,
                          TTestSchema::AlterTableTxBody(tableId, 2, spec),
                          NOlap::TSnapshot(++planStep, ++txId));
-    UNIT_ASSERT(ok);
-    PlanSchemaTx(runtime, sender, NOlap::TSnapshot(planStep, txId));
     if (spec.HasTiers()) {
         csControllerGuard->SetTiersSnapshot(runtime, sender, TTestSchema::BuildSnapshot(spec));
     }
@@ -347,18 +271,21 @@ void TestTtl(bool reboots, bool internal, TTestSchema::TTableSpecials spec = {},
     } else {
         TriggerTTL(runtime, sender, NOlap::TSnapshot(++planStep, ++txId), {tableId}, ts[1] + ttlIncSeconds, spec.TtlColumn);
     }
+    while (csControllerGuard->GetTTLFinishedCounter().Val() != csControllerGuard->GetTTLStartedCounter().Val()) {
+        runtime.SimulateSleep(TDuration::Seconds(1)); // wait all finished before (ttl especially)
+    }
 
     {
         --planStep;
         NOlap::NTests::TShardReader reader(runtime, TTestTxConfig::TxTablet0, tableId, NOlap::TSnapshot(planStep, Max()));
-        reader.SetReplyColumns({spec.TtlColumn});
+        reader.SetReplyColumns({spec.TtlColumn, NOlap::TIndexInfo::SPEC_COL_PLAN_STEP});
         auto rb = reader.ReadAll();
         UNIT_ASSERT(reader.IsCorrectlyFinished());
         UNIT_ASSERT(!rb || !rb->num_rows());
     }
 
     // Disable TTL
-    ok = ProposeSchemaTx(runtime, sender,
+    auto ok = ProposeSchemaTx(runtime, sender,
                          TTestSchema::AlterTableTxBody(tableId, 3, TTestSchema::TTableSpecials()),
                          NOlap::TSnapshot(++planStep, ++txId));
     UNIT_ASSERT(ok);
@@ -378,6 +305,9 @@ void TestTtl(bool reboots, bool internal, TTestSchema::TTableSpecials spec = {},
     } else {
         TriggerTTL(runtime, sender, NOlap::TSnapshot(++planStep, ++txId), {tableId}, ts[0] - ttlIncSeconds, spec.TtlColumn);
     }
+    while (csControllerGuard->GetTTLFinishedCounter().Val() != csControllerGuard->GetTTLStartedCounter().Val()) {
+        runtime.SimulateSleep(TDuration::Seconds(1)); // wait all finished before (ttl especially)
+    }
 
     {
         --planStep;
@@ -387,6 +317,14 @@ void TestTtl(bool reboots, bool internal, TTestSchema::TTableSpecials spec = {},
         UNIT_ASSERT(reader.IsCorrectlyFinished());
         UNIT_ASSERT(CheckSame(rb, PORTION_ROWS, spec.TtlColumn, ts[0]));
     }
+
+    if (spec.NeedTestStatistics()) {
+        AFL_VERIFY(csControllerGuard->GetStatisticsUsageCount().Val());
+        AFL_VERIFY(!csControllerGuard->GetMaxValueUsageCount().Val());
+    } else {
+        AFL_VERIFY(!csControllerGuard->GetStatisticsUsageCount().Val());
+        AFL_VERIFY(csControllerGuard->GetMaxValueUsageCount().Val());
+    }
 }
 
 class TCountersContainer {
@@ -568,8 +506,12 @@ std::vector> TestTiers(bool reboots, const std::vector();
+    auto csControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
+    csControllerGuard->DisableBackground(NYDBTest::ICSController::EBackground::TTL);
     TTestBasicRuntime runtime;
     TTester::Setup(runtime);
 
@@ -606,13 +548,9 @@ std::vector> TestTiers(bool reboots, const std::vector 0);
-    {
-        const bool ok = ProposeSchemaTx(runtime, sender,
+    SetupSchema(runtime, sender,
             TTestSchema::CreateInitShardTxBody(tableId, testYdbSchema, testYdbPk, specs[0], "/Root/olapStore"),
             NOlap::TSnapshot(++planStep, ++txId));
-        UNIT_ASSERT(ok);
-    }
-    PlanSchemaTx(runtime, sender, NOlap::TSnapshot(planStep, txId));
     if (specs[0].Tiers.size()) {
         csControllerGuard->SetTiersSnapshot(runtime, sender, TTestSchema::BuildSnapshot(specs[0]));
     }
@@ -627,6 +565,7 @@ std::vector> TestTiers(bool reboots, const std::vectorEnableBackground(NYDBTest::ICSController::EBackground::TTL);
 
     runtime.SetLogPriority(NKikimrServices::TX_COLUMNSHARD, NActors::NLog::PRI_DEBUG);
 
@@ -661,11 +600,9 @@ std::vector> TestTiers(bool reboots, const std::vectorSetTiersSnapshot(runtime, sender, TTestSchema::BuildSnapshot(specs[i]));
@@ -693,7 +630,6 @@ std::vector> TestTiers(bool reboots, const std::vector> TestTiers(bool reboots, const std::vectorIsCorrectlyFinished());
             }
         }
-        while (csControllerGuard->GetTTLFinishedCounter() != csControllerGuard->GetTTLStartedCounter()) {
+        while (csControllerGuard->GetTTLFinishedCounter().Val() != csControllerGuard->GetTTLStartedCounter().Val()) {
             runtime.SimulateSleep(TDuration::Seconds(1)); // wait all finished before (ttl especially)
         }
 
@@ -748,6 +684,14 @@ std::vector> TestTiers(bool reboots, const std::vectorGetStatisticsUsageCount().Val());
+        AFL_VERIFY(!csControllerGuard->GetMaxValueUsageCount().Val());
+    } else {
+        AFL_VERIFY(!csControllerGuard->GetStatisticsUsageCount().Val());
+        AFL_VERIFY(csControllerGuard->GetMaxValueUsageCount().Val());
+    }
+
     return specRowsBytes;
 }
 
@@ -831,8 +775,8 @@ class TEvictionChanges {
 
 TTestSchema::TTableSpecials InitialSpec(const EInitialEviction init, TDuration initTs) {
     TTestSchema::TTableSpecials spec;
+    spec.TtlColumn = "timestamp";
     if (init == EInitialEviction::Ttl) {
-        spec.TtlColumn = "timestamp";
         spec.EvictAfter = initTs;
     }
     return spec;
@@ -894,10 +838,11 @@ std::vector> TestOneTierExport(const TTestSchema::TTableSp
     return rowsBytes;
 }
 
-void TestTwoHotTiers(bool reboot, bool changeTtl, const EInitialEviction initial = EInitialEviction::None,
+void TestTwoHotTiers(bool reboot, bool changeTtl, const bool statisticsUsage, const EInitialEviction initial = EInitialEviction::None,
                     bool revCompaction = false) {
     TTestSchema::TTableSpecials spec;
     spec.SetTtlColumn("timestamp");
+    spec.SetNeedTestStatistics(statisticsUsage);
     spec.Tiers.emplace_back(TTestSchema::TStorageTier("tier0").SetTtlColumn("timestamp"));
     spec.Tiers.emplace_back(TTestSchema::TStorageTier("tier1").SetTtlColumn("timestamp"));
     spec.Tiers[(revCompaction ? 0 : 1)].SetCodec("zstd");
@@ -930,13 +875,13 @@ void TestTwoHotTiers(bool reboot, bool changeTtl, const EInitialEviction initial
     }
 }
 
-void TestHotAndColdTiers(bool reboot, const EInitialEviction initial) {
+void TestHotAndColdTiers(bool reboot, const EInitialEviction initial, const bool statisticsUsage) {
     TTestSchema::TTableSpecials spec;
     spec.SetTtlColumn("timestamp");
     spec.Tiers.emplace_back(TTestSchema::TStorageTier("tier0").SetTtlColumn("timestamp"));
     spec.Tiers.emplace_back(TTestSchema::TStorageTier("tier1").SetTtlColumn("timestamp"));
     spec.Tiers.back().S3 = TTestSchema::TStorageTier::FakeS3();
-
+    spec.SetNeedTestStatistics(statisticsUsage);
     TestTiersAndTtl(spec, reboot, initial);
 }
 
@@ -979,6 +924,7 @@ void TestExport(bool reboot, TExportTestOpts&& opts = TExportTestOpts{}) {
 void TestDrop(bool reboots) {
     TTestBasicRuntime runtime;
     TTester::Setup(runtime);
+    auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
 
     TActorId sender = runtime.AllocateEdgeActor();
     CreateTestBootstrapper(runtime,
@@ -996,11 +942,8 @@ void TestDrop(bool reboots) {
     ui64 planStep = 1000000000; // greater then delays
     ui64 txId = 100;
 
-    bool ok = ProposeSchemaTx(runtime, sender, TTestSchema::CreateTableTxBody(tableId, testYdbSchema, testYdbPk),
+    SetupSchema(runtime, sender, TTestSchema::CreateTableTxBody(tableId, testYdbSchema, testYdbPk),
                               NOlap::TSnapshot(++planStep, ++txId));
-    UNIT_ASSERT(ok);
-    PlanSchemaTx(runtime, sender, NOlap::TSnapshot(planStep, txId));
-
     //
 
     TString data1 = MakeTestBlob({0, PORTION_ROWS}, testYdbSchema);
@@ -1027,9 +970,7 @@ void TestDrop(bool reboots) {
     }
 
     // Drop table
-    ok = ProposeSchemaTx(runtime, sender, TTestSchema::DropTableTxBody(tableId, 2), NOlap::TSnapshot(++planStep, ++txId));
-    UNIT_ASSERT(ok);
-    PlanSchemaTx(runtime, sender, NOlap::TSnapshot(planStep, txId));
+    SetupSchema(runtime, sender, TTestSchema::DropTableTxBody(tableId, 2), NOlap::TSnapshot(++planStep, ++txId));
 
     if (reboots) {
         RebootTablet(runtime, TTestTxConfig::TxTablet0, sender);
@@ -1049,6 +990,7 @@ void TestDrop(bool reboots) {
 void TestDropWriteRace() {
     TTestBasicRuntime runtime;
     TTester::Setup(runtime);
+    auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
 
     TActorId sender = runtime.AllocateEdgeActor();
     CreateTestBootstrapper(runtime,
@@ -1068,11 +1010,8 @@ void TestDropWriteRace() {
     NLongTxService::TLongTxId longTxId;
     UNIT_ASSERT(longTxId.ParseString("ydb://long-tx/01ezvvxjdk2hd4vdgjs68knvp8?node_id=1"));
 
-    bool ok = ProposeSchemaTx(runtime, sender, TTestSchema::CreateTableTxBody(tableId, testYdbSchema, testYdbPk),
+    SetupSchema(runtime, sender, TTestSchema::CreateTableTxBody(tableId, testYdbSchema, testYdbPk),
                               NOlap::TSnapshot(++planStep, ++txId));
-    UNIT_ASSERT(ok);
-    PlanSchemaTx(runtime, sender, NOlap::TSnapshot(planStep, txId));
-
     TString data = MakeTestBlob({0, 100}, testYdbSchema);
     UNIT_ASSERT(data.size() < NColumnShard::TLimits::MIN_BYTES_TO_INSERT);
 
@@ -1083,7 +1022,7 @@ void TestDropWriteRace() {
     auto commitTxId = txId;
 
     // Drop table
-    ok = ProposeSchemaTx(runtime, sender, TTestSchema::DropTableTxBody(tableId, 2), NOlap::TSnapshot(++planStep, ++txId));
+    auto ok = ProposeSchemaTx(runtime, sender, TTestSchema::DropTableTxBody(tableId, 2), NOlap::TSnapshot(++planStep, ++txId));
     if (ok) {
         PlanSchemaTx(runtime, sender, NOlap::TSnapshot(planStep, txId));
     }
@@ -1095,6 +1034,7 @@ void TestDropWriteRace() {
 void TestCompaction(std::optional numWrites = {}) {
     TTestBasicRuntime runtime;
     TTester::Setup(runtime);
+    auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
 
     TActorId sender = runtime.AllocateEdgeActor();
     CreateTestBootstrapper(runtime,
@@ -1111,11 +1051,8 @@ void TestCompaction(std::optional numWrites = {}) {
     ui64 planStep = 100;
     ui64 txId = 100;
 
-    bool ok = ProposeSchemaTx(runtime, sender, TTestSchema::CreateTableTxBody(tableId, testYdbSchema, testYdbPk),
+    SetupSchema(runtime, sender, TTestSchema::CreateTableTxBody(tableId, testYdbSchema, testYdbPk),
                               NOlap::TSnapshot(++planStep, ++txId));
-    UNIT_ASSERT(ok);
-    PlanSchemaTx(runtime, sender, NOlap::TSnapshot(planStep, txId));
-
     // Set tiering
 
     ui64 ts = 1620000000;
@@ -1131,11 +1068,8 @@ void TestCompaction(std::optional numWrites = {}) {
     spec.Tiers.back().EvictAfter = allow;
     spec.Tiers.back().S3 = TTestSchema::TStorageTier::FakeS3();
 
-    ok = ProposeSchemaTx(runtime, sender, TTestSchema::AlterTableTxBody(tableId, 1, spec),
+    SetupSchema(runtime, sender, TTestSchema::AlterTableTxBody(tableId, 1, spec),
                             NOlap::TSnapshot(++planStep, ++txId));
-    UNIT_ASSERT(ok);
-    PlanSchemaTx(runtime, sender, NOlap::TSnapshot(planStep, txId));
-
     ProvideTieringSnapshot(runtime, sender, TTestSchema::BuildSnapshot(spec));
 
     // Writes
@@ -1189,16 +1123,31 @@ Y_UNIT_TEST_SUITE(TColumnShardTestSchema) {
             NTypeIds::Datetime
         };
 
-        auto schema = TTestSchema::YdbSchema({"k0", TTypeInfo(NTypeIds::Timestamp)});
-        auto pk = schema;
-        pk.resize(4);
+        TTestBasicRuntime runtime;
+        TTester::Setup(runtime);
+        auto csDefaultControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
+
+        using namespace NTxUT;
+        CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::TxTablet0, TTabletTypes::ColumnShard), &CreateColumnShard);
+
+        TDispatchOptions options;
+        options.FinalEvents.push_back(TDispatchOptions::TFinalEventCondition(TEvTablet::EvBoot));
+        runtime.DispatchEvents(options);
+
+        TActorId sender = runtime.AllocateEdgeActor();
+
+        auto schema = TTestSchema::YdbSchema(NArrow::NTest::TTestColumn("k0", TTypeInfo(NTypeIds::Timestamp)));
+        auto pk = NArrow::NTest::TTestColumn::CropSchema(schema, 4);
+
+        ui64 planStep = 1000;
+        ui64 txId = 100;
+        ui64 generation = 0;
 
         for (auto& ydbType : intTypes) {
-            schema[0].second = TTypeInfo(ydbType);
-            pk[0].second = TTypeInfo(ydbType);
-            auto txBody = TTestSchema::CreateTableTxBody(tableId, schema, pk);
-            bool ok = TestCreateTable(txBody);
-            UNIT_ASSERT(ok);
+            schema[0].SetType(TTypeInfo(ydbType));
+            pk[0].SetType(TTypeInfo(ydbType));
+            auto txBody = TTestSchema::CreateTableTxBody(tableId++, schema, pk, {}, ++generation);
+            SetupSchema(runtime, sender, txBody, NOlap::TSnapshot(planStep++, txId++));
         }
 
         // TODO: support float types
@@ -1208,11 +1157,10 @@ Y_UNIT_TEST_SUITE(TColumnShardTestSchema) {
         };
 
         for (auto& ydbType : floatTypes) {
-            schema[0].second = TTypeInfo(ydbType);
-            pk[0].second = TTypeInfo(ydbType);
-            auto txBody = TTestSchema::CreateTableTxBody(tableId, schema, pk);
-            bool ok = TestCreateTable(txBody);
-            UNIT_ASSERT(!ok);
+            schema[0].SetType(TTypeInfo(ydbType));
+            pk[0].SetType(TTypeInfo(ydbType));
+            auto txBody = TTestSchema::CreateTableTxBody(tableId++, schema, pk, {}, ++generation);
+            SetupSchema(runtime, sender, txBody, NOlap::TSnapshot(planStep++, txId++), false);
         }
 
         std::vector strTypes = {
@@ -1221,11 +1169,10 @@ Y_UNIT_TEST_SUITE(TColumnShardTestSchema) {
         };
 
         for (auto& ydbType : strTypes) {
-            schema[0].second = TTypeInfo(ydbType);
-            pk[0].second = TTypeInfo(ydbType);
-            auto txBody = TTestSchema::CreateTableTxBody(tableId, schema, pk);
-            bool ok = TestCreateTable(txBody);
-            UNIT_ASSERT(ok);
+            schema[0].SetType(TTypeInfo(ydbType));
+            pk[0].SetType(TTypeInfo(ydbType));
+            auto txBody = TTestSchema::CreateTableTxBody(tableId++, schema, pk, {}, ++generation);
+            SetupSchema(runtime, sender, txBody, NOlap::TSnapshot(planStep++, txId++));
         }
 
         std::vector xsonTypes = {
@@ -1235,11 +1182,10 @@ Y_UNIT_TEST_SUITE(TColumnShardTestSchema) {
         };
 
         for (auto& ydbType : xsonTypes) {
-            schema[0].second = TTypeInfo(ydbType);
-            pk[0].second = TTypeInfo(ydbType);
-            auto txBody = TTestSchema::CreateTableTxBody(tableId, schema, pk);
-            bool ok = TestCreateTable(txBody);
-            UNIT_ASSERT(!ok);
+            schema[0].SetType(TTypeInfo(ydbType));
+            pk[0].SetType(TTypeInfo(ydbType));
+            auto txBody = TTestSchema::CreateTableTxBody(tableId++, schema, pk, {}, ++generation);
+            SetupSchema(runtime, sender, txBody, NOlap::TSnapshot(planStep++, txId++), false);
         }
     }
 
@@ -1250,8 +1196,8 @@ Y_UNIT_TEST_SUITE(TColumnShardTestSchema) {
     Y_UNIT_TEST(ExternalTTL_Types) {
         auto ydbSchema = testYdbSchema;
         for (auto typeId : {NTypeIds::Datetime, NTypeIds::Date, NTypeIds::Uint32, NTypeIds::Uint64}) {
-            UNIT_ASSERT_EQUAL(ydbSchema[8].first, "saved_at");
-            ydbSchema[8].second = TTypeInfo(typeId);
+            UNIT_ASSERT_EQUAL(ydbSchema[8].GetName(), "saved_at");
+            ydbSchema[8].SetType(TTypeInfo(typeId));
 
             TTestSchema::TTableSpecials specs;
             specs.SetTtlColumn("saved_at");
@@ -1272,8 +1218,8 @@ Y_UNIT_TEST_SUITE(TColumnShardTestSchema) {
     Y_UNIT_TEST(InternalTTL_Types) {
         auto ydbSchema = testYdbSchema;
         for (auto typeId : {NTypeIds::Datetime, NTypeIds::Date, NTypeIds::Uint32, NTypeIds::Uint64}) {
-            UNIT_ASSERT_EQUAL(ydbSchema[8].first, "saved_at");
-            ydbSchema[8].second = TTypeInfo(typeId);
+            UNIT_ASSERT_EQUAL(ydbSchema[8].GetName(), "saved_at");
+            ydbSchema[8].SetType(TTypeInfo(typeId));
 
             TTestSchema::TTableSpecials specs;
             specs.SetTtlColumn("saved_at");
@@ -1320,64 +1266,91 @@ Y_UNIT_TEST_SUITE(TColumnShardTestSchema) {
     // TODO: EnableOneTierAfterTtl, EnableTtlAfterOneTier
 
     Y_UNIT_TEST(HotTiers) {
-        TestTwoHotTiers(false, false);
+        TestTwoHotTiers(false, false, false);
     }
 
     Y_UNIT_TEST(RebootHotTiers) {
-        TestTwoHotTiers(true, false);
+        TestTwoHotTiers(true, false, false);
+    }
+
+    Y_UNIT_TEST(HotTiersWithStat) {
+        TestTwoHotTiers(false, false, true);
+    }
+
+    Y_UNIT_TEST(RebootHotTiersWithStat) {
+        TestTwoHotTiers(true, false, true);
     }
 
     Y_UNIT_TEST(HotTiersRevCompression) {
-        TestTwoHotTiers(false, false, EInitialEviction::None, true);
+        TestTwoHotTiers(false, false, false, EInitialEviction::None, true);
     }
 
     Y_UNIT_TEST(RebootHotTiersRevCompression) {
-        TestTwoHotTiers(true, false, EInitialEviction::None, true);
+        TestTwoHotTiers(true, false, false, EInitialEviction::None, true);
     }
 
     Y_UNIT_TEST(HotTiersTtl) {
         NColumnShard::gAllowLogBatchingDefaultValue = false;
-        TestTwoHotTiers(false, true);
+        TestTwoHotTiers(false, true, false);
     }
 
     Y_UNIT_TEST(RebootHotTiersTtl) {
         NColumnShard::gAllowLogBatchingDefaultValue = false;
-        TestTwoHotTiers(true, true);
+        TestTwoHotTiers(true, true, false);
+    }
+
+    Y_UNIT_TEST(HotTiersTtlWithStat) {
+        NColumnShard::gAllowLogBatchingDefaultValue = false;
+        TestTwoHotTiers(false, true, true);
+    }
+
+    Y_UNIT_TEST(RebootHotTiersTtlWithStat) {
+        NColumnShard::gAllowLogBatchingDefaultValue = false;
+        TestTwoHotTiers(true, true, true);
     }
 
     Y_UNIT_TEST(HotTiersAfterTtl) {
-        TestTwoHotTiers(false, false, EInitialEviction::Ttl);
+        TestTwoHotTiers(false, false, false, EInitialEviction::Ttl);
     }
 
     Y_UNIT_TEST(RebootHotTiersAfterTtl) {
-        TestTwoHotTiers(true, false, EInitialEviction::Ttl);
+        TestTwoHotTiers(true, false, false, EInitialEviction::Ttl);
     }
 
     // TODO: EnableTtlAfterHotTiers
 
     Y_UNIT_TEST(ColdTiers) {
-        TestHotAndColdTiers(false, EInitialEviction::Tiering);
+        TestHotAndColdTiers(false, EInitialEviction::Tiering, false);
     }
 
     Y_UNIT_TEST(RebootColdTiers) {
         //NColumnShard::gAllowLogBatchingDefaultValue = false;
-        TestHotAndColdTiers(true, EInitialEviction::Tiering);
+        TestHotAndColdTiers(true, EInitialEviction::Tiering, false);
+    }
+
+    Y_UNIT_TEST(ColdTiersWithStat) {
+        TestHotAndColdTiers(false, EInitialEviction::Tiering, true);
+    }
+
+    Y_UNIT_TEST(RebootColdTiersWithStat) {
+        //NColumnShard::gAllowLogBatchingDefaultValue = false;
+        TestHotAndColdTiers(true, EInitialEviction::Tiering, true);
     }
 
     Y_UNIT_TEST(EnableColdTiersAfterNoEviction) {
-        TestHotAndColdTiers(false, EInitialEviction::None);
+        TestHotAndColdTiers(false, EInitialEviction::None, false);
     }
 
     Y_UNIT_TEST(RebootEnableColdTiersAfterNoEviction) {
-        TestHotAndColdTiers(true, EInitialEviction::None);
+        TestHotAndColdTiers(true, EInitialEviction::None, false);
     }
 
     Y_UNIT_TEST(EnableColdTiersAfterTtl) {
-        TestHotAndColdTiers(false, EInitialEviction::Ttl);
+        TestHotAndColdTiers(false, EInitialEviction::Ttl, false);
     }
 
     Y_UNIT_TEST(RebootEnableColdTiersAfterTtl) {
-        TestHotAndColdTiers(true, EInitialEviction::Ttl);
+        TestHotAndColdTiers(true, EInitialEviction::Ttl, false);
     }
 
     Y_UNIT_TEST(OneColdTier) {
diff --git a/ydb/core/tx/columnshard/ut_schema/ya.make b/ydb/core/tx/columnshard/ut_schema/ya.make
index f94fea4e912b..d3b7fdd5d842 100644
--- a/ydb/core/tx/columnshard/ut_schema/ya.make
+++ b/ydb/core/tx/columnshard/ut_schema/ya.make
@@ -21,6 +21,7 @@ PEERDIR(
     ydb/core/testlib/default
     ydb/core/tx/columnshard/hooks/abstract
     ydb/core/tx/columnshard/hooks/testing
+    ydb/core/tx/columnshard/test_helper
     ydb/services/metadata
     ydb/core/tx
     ydb/public/lib/yson_value
diff --git a/ydb/core/tx/columnshard/write_actor.cpp b/ydb/core/tx/columnshard/write_actor.cpp
index 5d858afe6564..25cbb99b5915 100644
--- a/ydb/core/tx/columnshard/write_actor.cpp
+++ b/ydb/core/tx/columnshard/write_actor.cpp
@@ -36,12 +36,12 @@ class TWriteActor: public TActorBootstrapped, public TMonitoringObj
 
         if (status != NKikimrProto::OK) {
             ACFL_ERROR("event", "TEvPutResult")("blob_id", msg->Id.ToString())("status", status)("error", msg->ErrorReason);
-            WriteController->Abort();
+            WriteController->Abort("cannot write blob " + msg->Id.ToString() + ", status: " + ::ToString(status) + ". reason: " + msg->ErrorReason);
             return SendResultAndDie(ctx, status);
         }
 
         WriteController->OnBlobWriteResult(*msg);
-        if (WriteController->IsBlobActionsReady()) {
+        if (WriteController->IsReady()) {
             return SendResultAndDie(ctx, NKikimrProto::OK);
         }
     }
@@ -84,7 +84,7 @@ class TWriteActor: public TActorBootstrapped, public TMonitoringObj
             writeInfo->GetWriteOperator()->SendWriteBlobRequest(writeInfo->GetData(), writeInfo->GetBlobId());
         }
 
-        if (WriteController->IsBlobActionsReady()) {
+        if (WriteController->IsReady()) {
             return SendResultAndDie(ctx, NKikimrProto::OK);
         }
         Become(&TThis::StateWait);
diff --git a/ydb/core/tx/columnshard/ya.make b/ydb/core/tx/columnshard/ya.make
index 924a67d6350e..2c8103b24329 100644
--- a/ydb/core/tx/columnshard/ya.make
+++ b/ydb/core/tx/columnshard/ya.make
@@ -4,17 +4,13 @@ SRCS(
     background_controller.cpp
     blob.cpp
     blob_cache.cpp
-    blob_manager.cpp
     columnshard__init.cpp
     columnshard__notify_tx_completion.cpp
     columnshard__plan_step.cpp
     columnshard__progress_tx.cpp
     columnshard__propose_cancel.cpp
     columnshard__propose_transaction.cpp
-    columnshard__read_base.cpp
     columnshard__scan.cpp
-    columnshard__index_scan.cpp
-    columnshard__stats_scan.cpp
     columnshard__write.cpp
     columnshard__write_index.cpp
     columnshard.cpp
@@ -25,6 +21,7 @@ SRCS(
     columnshard_view.cpp
     counters.cpp
     defs.cpp
+    inflight_request_tracker.cpp
     write_actor.cpp
     tables_manager.cpp
 )
@@ -45,6 +42,7 @@ PEERDIR(
     ydb/core/tx/time_cast
     ydb/core/tx/columnshard/engines
     ydb/core/tx/columnshard/engines/writer
+    ydb/core/tx/columnshard/engines/reader/abstract
     ydb/core/tx/columnshard/counters
     ydb/core/tx/columnshard/common
     ydb/core/tx/columnshard/splitter
@@ -53,9 +51,14 @@ PEERDIR(
     ydb/core/tx/columnshard/transactions/operators
     ydb/core/tx/columnshard/blobs_reader
     ydb/core/tx/columnshard/blobs_action
+    ydb/core/tx/columnshard/data_locks
+    ydb/core/tx/columnshard/data_sharing
+    ydb/core/tx/columnshard/export
     ydb/core/tx/columnshard/resource_subscriber
     ydb/core/tx/columnshard/normalizer/granule
     ydb/core/tx/columnshard/normalizer/portion
+    ydb/core/tx/columnshard/normalizer/tables
+    ydb/core/tx/columnshard/blobs_action/storages_manager
     ydb/core/tx/tiering
     ydb/core/tx/conveyor/usage
     ydb/core/tx/tracing
diff --git a/ydb/core/tx/conveyor/service/service.cpp b/ydb/core/tx/conveyor/service/service.cpp
index 0ab75a217394..7a590379d595 100644
--- a/ydb/core/tx/conveyor/service/service.cpp
+++ b/ydb/core/tx/conveyor/service/service.cpp
@@ -16,7 +16,12 @@ void TDistributor::Bootstrap() {
     const ui32 workersCount = Config.GetWorkersCountForConveyor(NKqp::TStagePredictor::GetUsableThreads());
     AFL_NOTICE(NKikimrServices::TX_CONVEYOR)("action", "conveyor_registered")("actor_id", SelfId())("workers_count", workersCount)("config", Config.DebugString());
     for (ui32 i = 0; i < workersCount; ++i) {
-        Workers.emplace_back(Register(new TWorker(ConveyorName)));
+        const double usage = Config.GetWorkerCPUUsage(i);
+        Workers.emplace_back(Register(new TWorker(ConveyorName, usage, SelfId())));
+        if (usage < 1) {
+            AFL_VERIFY(!SlowWorkerId);
+            SlowWorkerId = Workers.back();
+        }
     }
     Counters.AvailableWorkersCount->Set(Workers.size());
     Counters.WorkersCountLimit->Set(Workers.size());
@@ -25,11 +30,13 @@ void TDistributor::Bootstrap() {
 }
 
 void TDistributor::HandleMain(TEvInternal::TEvTaskProcessedResult::TPtr& ev) {
+    const auto now = TMonotonic::Now();
+    const TDuration dExecution = now - ev->Get()->GetStartInstant();
     Counters.SolutionsRate->Inc();
-    Counters.ExecuteHistogram->Collect((TMonotonic::Now() - ev->Get()->GetStartInstant()).MilliSeconds());
+    Counters.ExecuteHistogram->Collect(dExecution.MilliSeconds());
     if (Waiting.size()) {
         auto task = Waiting.pop();
-        Counters.WaitingHistogram->Collect((TMonotonic::Now() - task.GetCreateInstant()).MilliSeconds());
+        Counters.WaitingHistogram->Collect((now - task.GetCreateInstant()).MilliSeconds());
         task.OnBeforeStart();
         Send(ev->Sender, new TEvInternal::TEvNewTask(task));
     } else {
@@ -62,8 +69,13 @@ void TDistributor::HandleMain(TEvExecution::TEvNewTask::TPtr& ev) {
         Counters.WaitingHistogram->Collect(0);
 
         wTask.OnBeforeStart();
-        Send(Workers.back(), new TEvInternal::TEvNewTask(wTask));
-        Workers.pop_back();
+        if (Workers.size() == 1 || !SlowWorkerId || Workers.back() != *SlowWorkerId) {
+            Send(Workers.back(), new TEvInternal::TEvNewTask(wTask));
+            Workers.pop_back();
+        } else {
+            Send(Workers.front(), new TEvInternal::TEvNewTask(wTask));
+            Workers.pop_front();
+        }
         Counters.UseWorkerRate->Inc();
     } else if (Waiting.size() < Config.GetQueueSizeLimit()) {
         Waiting.push(wTask);
diff --git a/ydb/core/tx/conveyor/service/service.h b/ydb/core/tx/conveyor/service/service.h
index 9891e818a973..833952090905 100644
--- a/ydb/core/tx/conveyor/service/service.h
+++ b/ydb/core/tx/conveyor/service/service.h
@@ -75,7 +75,8 @@ class TDistributor: public TActorBootstrapped {
     const TConfig Config;
     const TString ConveyorName = "common";
     TDequePriorityFIFO Waiting;
-    std::vector Workers;
+    std::deque Workers;
+    std::optional SlowWorkerId;
     TCounters Counters;
     THashMap> Signals;
 
diff --git a/ydb/core/tx/conveyor/service/worker.cpp b/ydb/core/tx/conveyor/service/worker.cpp
index a71e8dffda87..42c0b4e239d7 100644
--- a/ydb/core/tx/conveyor/service/worker.cpp
+++ b/ydb/core/tx/conveyor/service/worker.cpp
@@ -2,12 +2,35 @@
 
 namespace NKikimr::NConveyor {
 
-void TWorker::HandleMain(TEvInternal::TEvNewTask::TPtr& ev) {
-    auto& workerTask = ev->Get()->GetTask();
+void TWorker::ExecuteTask(const TWorkerTask& workerTask) {
+    std::optional start;
+    if (CPUUsage < 1) {
+        start = TMonotonic::Now();
+    }
     if (workerTask.GetTask()->Execute(workerTask.GetTaskSignals())) {
-        TBase::Sender(workerTask, workerTask.GetTask()).SendTo(ev->Sender);
+        TBase::Sender(workerTask, workerTask.GetTask()).SendTo(DistributorId);
+    } else {
+        TBase::Sender(workerTask, workerTask.GetTask()->GetErrorMessage()).SendTo(DistributorId);
+    }
+    if (CPUUsage < 1) {
+        Schedule((TMonotonic::Now() - *start) * (1 - CPUUsage), new NActors::TEvents::TEvWakeup);
+        WaitWakeUp = true;
+    }
+}
+
+void TWorker::HandleMain(NActors::TEvents::TEvWakeup::TPtr& /*ev*/) {
+    WaitWakeUp = false;
+    if (WaitTask) {
+        ExecuteTask(*WaitTask);
+        WaitTask.reset();
+    }
+}
+
+void TWorker::HandleMain(TEvInternal::TEvNewTask::TPtr& ev) {
+    if (!WaitWakeUp) {
+        ExecuteTask(ev->Get()->GetTask());
     } else {
-        TBase::Sender(workerTask, workerTask.GetTask()->GetErrorMessage()).SendTo(ev->Sender);
+        WaitTask = ev->Get()->GetTask();
     }
 }
 
diff --git a/ydb/core/tx/conveyor/service/worker.h b/ydb/core/tx/conveyor/service/worker.h
index b87b5aacda40..0159f257c433 100644
--- a/ydb/core/tx/conveyor/service/worker.h
+++ b/ydb/core/tx/conveyor/service/worker.h
@@ -91,13 +91,20 @@ struct TEvInternal {
 class TWorker: public NActors::TActorBootstrapped {
 private:
     using TBase = NActors::TActorBootstrapped;
-public:
+    const double CPUUsage = 1;
+    bool WaitWakeUp = false;
+    const NActors::TActorId DistributorId;
+    std::optional WaitTask;
+    void ExecuteTask(const TWorkerTask& workerTask);
     void HandleMain(TEvInternal::TEvNewTask::TPtr& ev);
+    void HandleMain(NActors::TEvents::TEvWakeup::TPtr& ev);
+public:
 
     STATEFN(StateMain) {
         switch (ev->GetTypeRewrite()) {
             hFunc(TEvInternal::TEvNewTask, HandleMain);
-            default:
+            hFunc(NActors::TEvents::TEvWakeup, HandleMain);
+        default:
                 ALS_ERROR(NKikimrServices::TX_CONVEYOR) << "unexpected event for task executor: " << ev->GetTypeRewrite();
                 break;
         }
@@ -107,8 +114,10 @@ class TWorker: public NActors::TActorBootstrapped {
         Become(&TWorker::StateMain);
     }
 
-    TWorker(const TString& conveyorName)
+    TWorker(const TString& conveyorName, const double cpuUsage, const NActors::TActorId& distributorId)
         : TBase("CONVEYOR::" + conveyorName + "::WORKER")
+        , CPUUsage(cpuUsage)
+        , DistributorId(distributorId)
     {
 
     }
diff --git a/ydb/core/tx/conveyor/usage/config.cpp b/ydb/core/tx/conveyor/usage/config.cpp
index d39f93a65e4e..2117e2d0870e 100644
--- a/ydb/core/tx/conveyor/usage/config.cpp
+++ b/ydb/core/tx/conveyor/usage/config.cpp
@@ -12,7 +12,9 @@ bool TConfig::DeserializeFromProto(const NKikimrConfig::TConveyorConfig& config)
     if (config.HasQueueSizeLimit()) {
         QueueSizeLimit = config.GetQueueSizeLimit();
     }
-    if (config.HasWorkersCount()) {
+    if (config.HasWorkersCountDouble()) {
+        WorkersCount = config.GetWorkersCountDouble();
+    } else if (config.HasWorkersCount()) {
         WorkersCount = config.GetWorkersCount();
     }
     if (config.HasDefaultFractionOfThreadsCount()) {
@@ -23,7 +25,7 @@ bool TConfig::DeserializeFromProto(const NKikimrConfig::TConveyorConfig& config)
 
 ui32 TConfig::GetWorkersCountForConveyor(const ui32 poolThreadsCount) const {
     if (WorkersCount) {
-        return *WorkersCount;
+        return std::ceil(*WorkersCount);
     } else if (DefaultFractionOfThreadsCount) {
         return Min(poolThreadsCount, Max(1, *DefaultFractionOfThreadsCount * poolThreadsCount));
     } else {
@@ -44,4 +46,17 @@ TString TConfig::DebugString() const {
     return sb;
 }
 
+double TConfig::GetWorkerCPUUsage(const ui32 workerIdx) const {
+    if (!WorkersCount) {
+        return 1;
+    }
+    double wholePart;
+    const double fractionalPart = std::modf(*WorkersCount, &wholePart);
+    if (workerIdx + 1 <= wholePart) {
+        return 1;
+    } else {
+        return fractionalPart;
+    }
+}
+
 }
diff --git a/ydb/core/tx/conveyor/usage/config.h b/ydb/core/tx/conveyor/usage/config.h
index ed9b2c9d05d5..12ed6780a7f6 100644
--- a/ydb/core/tx/conveyor/usage/config.h
+++ b/ydb/core/tx/conveyor/usage/config.h
@@ -6,13 +6,14 @@ namespace NKikimr::NConveyor {
 
 class TConfig {
 private:
-    YDB_OPT(ui32, WorkersCount);
+    YDB_OPT(double, WorkersCount);
     YDB_READONLY(ui32, QueueSizeLimit, 256 * 1024);
     YDB_READONLY_FLAG(Enabled, true);
     YDB_OPT(double, DefaultFractionOfThreadsCount);
 public:
     bool DeserializeFromProto(const NKikimrConfig::TConveyorConfig& config);
     ui32 GetWorkersCountForConveyor(const ui32 poolThreadsCount) const;
+    double GetWorkerCPUUsage(const ui32 workerIdx) const;
     TString DebugString() const;
 };
 
diff --git a/ydb/core/tx/coordinator/CMakeLists.darwin-arm64.txt b/ydb/core/tx/coordinator/CMakeLists.darwin-arm64.txt
index bd9fdf6266d8..ffa953fe5ccf 100644
--- a/ydb/core/tx/coordinator/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/coordinator/CMakeLists.darwin-arm64.txt
@@ -30,6 +30,7 @@ target_link_libraries(core-tx-coordinator PUBLIC
   ydb-core-util
 )
 target_sources(core-tx-coordinator PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/defs.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_hooks.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_impl.cpp
diff --git a/ydb/core/tx/coordinator/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/coordinator/CMakeLists.darwin-x86_64.txt
index bd9fdf6266d8..ffa953fe5ccf 100644
--- a/ydb/core/tx/coordinator/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/coordinator/CMakeLists.darwin-x86_64.txt
@@ -30,6 +30,7 @@ target_link_libraries(core-tx-coordinator PUBLIC
   ydb-core-util
 )
 target_sources(core-tx-coordinator PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/defs.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_hooks.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_impl.cpp
diff --git a/ydb/core/tx/coordinator/CMakeLists.linux-aarch64.txt b/ydb/core/tx/coordinator/CMakeLists.linux-aarch64.txt
index 455aa7c1601f..05eb4e1d128a 100644
--- a/ydb/core/tx/coordinator/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/coordinator/CMakeLists.linux-aarch64.txt
@@ -31,6 +31,7 @@ target_link_libraries(core-tx-coordinator PUBLIC
   ydb-core-util
 )
 target_sources(core-tx-coordinator PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/defs.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_hooks.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_impl.cpp
diff --git a/ydb/core/tx/coordinator/CMakeLists.linux-x86_64.txt b/ydb/core/tx/coordinator/CMakeLists.linux-x86_64.txt
index 455aa7c1601f..05eb4e1d128a 100644
--- a/ydb/core/tx/coordinator/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/coordinator/CMakeLists.linux-x86_64.txt
@@ -31,6 +31,7 @@ target_link_libraries(core-tx-coordinator PUBLIC
   ydb-core-util
 )
 target_sources(core-tx-coordinator PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/defs.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_hooks.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_impl.cpp
diff --git a/ydb/core/tx/coordinator/CMakeLists.windows-x86_64.txt b/ydb/core/tx/coordinator/CMakeLists.windows-x86_64.txt
index bd9fdf6266d8..ffa953fe5ccf 100644
--- a/ydb/core/tx/coordinator/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/coordinator/CMakeLists.windows-x86_64.txt
@@ -30,6 +30,7 @@ target_link_libraries(core-tx-coordinator PUBLIC
   ydb-core-util
 )
 target_sources(core-tx-coordinator PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/defs.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_hooks.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_impl.cpp
diff --git a/ydb/core/tx/coordinator/coordinator__acquire_read_step.cpp b/ydb/core/tx/coordinator/coordinator__acquire_read_step.cpp
index d34df2ed3f30..d74c67376705 100644
--- a/ydb/core/tx/coordinator/coordinator__acquire_read_step.cpp
+++ b/ydb/core/tx/coordinator/coordinator__acquire_read_step.cpp
@@ -103,7 +103,12 @@ void TTxCoordinator::Handle(TEvTxProxy::TEvAcquireReadStep::TPtr& ev, const TAct
         return;
     }
 
-    if (ReadOnlyLeaseEnabled()) {
+    // Note: when volatile state is preserved we don't want to update the last
+    // acquired step, because the new generation might miss that and invariants
+    // not read-step not going back would be violated. Run the code below using
+    // the normal tx, which will almost certainly fail (the storage is supposed
+    // to be blocked already), or successfully persist the new read step.
+    if (ReadOnlyLeaseEnabled() && !VolatileState.Preserved) {
         // We acquire read step using a read-only lease from executor
         // It is guaranteed that any future generation was not running at
         // the time ConfirmReadOnlyLease was called.
diff --git a/ydb/core/tx/coordinator/coordinator__plan_step.cpp b/ydb/core/tx/coordinator/coordinator__plan_step.cpp
index 2954ff4faafb..c5ce361b4b52 100644
--- a/ydb/core/tx/coordinator/coordinator__plan_step.cpp
+++ b/ydb/core/tx/coordinator/coordinator__plan_step.cpp
@@ -1,4 +1,5 @@
 #include "coordinator_impl.h"
+#include "coordinator_hooks.h"
 
 #include 
 
@@ -42,7 +43,29 @@ struct TTxCoordinator::TTxPlanStep : public TTransactionBase {
     }
 
     void Plan(TTransactionContext &txc, const TActorContext &ctx) {
-        Y_UNUSED(txc);
+        if (Self->VolatileState.Preserved) {
+            // A preserved state indicates a newer generation has been started
+            // already, and this coordinator will stop eventually. Decline
+            // all pending transactions.
+            for (auto& slot : Slots) {
+                for (auto& proposal : slot) {
+                    Self->MonCounters.StepPlannedDeclinedTx->Inc();
+                    ProxyPlanConfirmations.Queue.emplace_back(
+                        proposal.TxId,
+                        proposal.Proxy,
+                        TEvTxProxy::TEvProposeTransactionStatus::EStatus::StatusRestarting,
+                        0);
+                    ++DeclinedCounter;
+                }
+            }
+            Self->SendStepConfirmations(ProxyPlanConfirmations, ctx);
+            return;
+        }
+
+        if (auto* hooks = ICoordinatorHooks::Get(); Y_UNLIKELY(hooks)) {
+            hooks->BeginPlanStep(Self->TabletID(), Self->Executor()->Generation(), PlanOnStep);
+        }
+
         NIceDb::TNiceDb db(txc.DB);
         ExecStartMoment = ctx.Now();
         const bool lowDiskSpace = Self->Executor()->GetStats().IsAnyChannelYellowStop;
diff --git a/ydb/core/tx/coordinator/coordinator__restore_transaction.cpp b/ydb/core/tx/coordinator/coordinator__restore_transaction.cpp
index af411d349ed5..f3269e362cab 100644
--- a/ydb/core/tx/coordinator/coordinator__restore_transaction.cpp
+++ b/ydb/core/tx/coordinator/coordinator__restore_transaction.cpp
@@ -125,10 +125,12 @@ struct TTxCoordinator::TTxRestoreTransactions : public TTransactionBaseVolatileTransactions) {
             auto txId = pr.first;
             auto &tx = pr.second;
+            maxStep = Max(maxStep, tx.PlanOnStep);
             for (auto &prmed : tx.UnconfirmedAffectedSet) {
                 auto medId = prmed.first;
                 auto &medTx = GetMediatorTx(medId, tx.PlanOnStep, txId);
@@ -137,6 +139,7 @@ struct TTxCoordinator::TTxRestoreTransactions : public TTransactionBaseVolatileTransactions.size();
         Self->Transactions.swap(transactions);
         *Self->MonCounters.TxInFly += txCounter;
         Self->MonCounters.CurrentTxInFly = txCounter;
 
-        if (Self->PrevStateActorId) {
-            NIceDb::TNiceDb db(txc.DB);
+        NIceDb::TNiceDb db(txc.DB);
 
+        // Previous coordinator might have had transactions that were after
+        // its persistent blocked range, but before LastPlanned was updated.
+        // Since we pick them up as planned and send to mediators we also need
+        // to make sure LastPlanned reflects that.
+        if (Self->VolatileState.LastPlanned < maxVolatileStep) {
+            Self->VolatileState.LastPlanned = maxVolatileStep;
+            Schema::SaveState(db, Schema::State::KeyLastPlanned, maxVolatileStep);
+        }
+
+        if (Self->PrevStateActorId) {
             ui64 volatileLeaseMs = Self->VolatilePlanLeaseMs;
             if (volatileLeaseMs > 0) {
                 // Make sure we start and persist new state actor before allowing clients to acquire new read steps
diff --git a/ydb/core/tx/coordinator/coordinator_hooks.cpp b/ydb/core/tx/coordinator/coordinator_hooks.cpp
index 742ed2bdc4b6..225ed046ac1e 100644
--- a/ydb/core/tx/coordinator/coordinator_hooks.cpp
+++ b/ydb/core/tx/coordinator/coordinator_hooks.cpp
@@ -14,6 +14,12 @@ namespace NKikimr::NFlatTxCoordinator {
         return true;
     }
 
+    void ICoordinatorHooks::BeginPlanStep(ui64 tabletId, ui64 generation, ui64 planStep) {
+        Y_UNUSED(tabletId);
+        Y_UNUSED(generation);
+        Y_UNUSED(planStep);
+    }
+
     ICoordinatorHooks* ICoordinatorHooks::Get() {
         return CoordinatorHooks.load(std::memory_order_acquire);
     }
diff --git a/ydb/core/tx/coordinator/coordinator_hooks.h b/ydb/core/tx/coordinator/coordinator_hooks.h
index 4f96fd25d146..e38dbc72cc96 100644
--- a/ydb/core/tx/coordinator/coordinator_hooks.h
+++ b/ydb/core/tx/coordinator/coordinator_hooks.h
@@ -10,6 +10,7 @@ namespace NKikimr::NFlatTxCoordinator {
 
     public:
         virtual bool PersistConfig(ui64 tabletId, const NKikimrSubDomains::TProcessingParams& config);
+        virtual void BeginPlanStep(ui64 tabletId, ui64 generation, ui64 planStep);
 
     public:
         static ICoordinatorHooks* Get();
diff --git a/ydb/core/tx/coordinator/coordinator_impl.cpp b/ydb/core/tx/coordinator/coordinator_impl.cpp
index cfdc7bb55fc5..9a130616231b 100644
--- a/ydb/core/tx/coordinator/coordinator_impl.cpp
+++ b/ydb/core/tx/coordinator/coordinator_impl.cpp
@@ -328,6 +328,11 @@ ui64 TTxCoordinator::AlignPlanStep(ui64 step) {
 void TTxCoordinator::Handle(TEvPrivate::TEvPlanTick::TPtr &ev, const TActorContext &ctx) {
     //LOG_DEBUG_S(ctx, NKikimrServices::TX_COORDINATOR, "tablet# " << TabletID() << " HANDLE EvPlanTick LastPlanned " << VolatileState.LastPlanned);
 
+    if (VolatileState.Preserved) {
+        // Avoid planning any new transactions, wait until we are stopped
+        return;
+    }
+
     ui64 next = ev->Get()->Step;
     while (!PendingPlanTicks.empty() && PendingPlanTicks.front() <= next) {
         PendingPlanTicks.pop_front();
@@ -556,8 +561,14 @@ void TTxCoordinator::TryInitMonCounters(const TActorContext &ctx) {
 }
 
 void TTxCoordinator::SendMediatorStep(TMediator &mediator, const TActorContext &ctx) {
+    if (VolatileState.Preserved) {
+        // We don't want to send new steps when state has been preserved and
+        // potentially sent to newer generations.
+        return;
+    }
+
     if (!mediator.Active) {
-        // We don't want to update LastSentStep when mediators are not empty
+        // We don't want to update LastSentStep when mediators are not connected
         return;
     }
 
diff --git a/ydb/core/tx/coordinator/coordinator_impl.h b/ydb/core/tx/coordinator/coordinator_impl.h
index 83272721ee4c..8369e8418f6e 100644
--- a/ydb/core/tx/coordinator/coordinator_impl.h
+++ b/ydb/core/tx/coordinator/coordinator_impl.h
@@ -433,6 +433,10 @@ class TTxCoordinator : public TActor, public TTabletExecutedFlat
         TVector AcquireReadStepPending;
         bool AcquireReadStepFlushing = false;
         bool AcquireReadStepStarting = false;
+
+        // When true the state has been preserved by the state actor
+        // Any changes will not be migrated to newer generations
+        bool Preserved = false;
     };
 
 public:
diff --git a/ydb/core/tx/coordinator/coordinator_state.cpp b/ydb/core/tx/coordinator/coordinator_state.cpp
index fa1351c54770..70f91a736244 100644
--- a/ydb/core/tx/coordinator/coordinator_state.cpp
+++ b/ydb/core/tx/coordinator/coordinator_state.cpp
@@ -80,6 +80,7 @@ void TCoordinatorStateActor::PreserveState() {
         Y_ABORT_UNLESS(ok);
     }
 
+    Owner->VolatileState.Preserved = true;
 }
 
 STFUNC(TCoordinatorStateActor::StateWork) {
diff --git a/ydb/core/tx/coordinator/coordinator_volatile_ut.cpp b/ydb/core/tx/coordinator/coordinator_volatile_ut.cpp
index bc148f7d8ba2..cb57683785b4 100644
--- a/ydb/core/tx/coordinator/coordinator_volatile_ut.cpp
+++ b/ydb/core/tx/coordinator/coordinator_volatile_ut.cpp
@@ -1,4 +1,6 @@
 #include 
+#include 
+#include 
 #include 
 #include 
 #include 
@@ -258,6 +260,637 @@ namespace NKikimr::NFlatTxCoordinator::NTest {
             observedSteps.clear();
         }
 
+        Y_UNIT_TEST(MediatorReconnectPlanRace) {
+            TPortManager pm;
+            TServerSettings serverSettings(pm.GetPort(2134));
+            serverSettings.SetDomainName("Root")
+                .SetNodeCount(1)
+                .SetUseRealThreads(false);
+
+            Tests::TServer::TPtr server = new TServer(serverSettings);
+
+            auto &runtime = *server->GetRuntime();
+            runtime.SetLogPriority(NKikimrServices::TX_COORDINATOR, NActors::NLog::PRI_DEBUG);
+            runtime.SetLogPriority(NKikimrServices::BOOTSTRAPPER, NActors::NLog::PRI_DEBUG);
+
+            auto sender = runtime.AllocateEdgeActor();
+            ui64 coordinatorId = ChangeStateStorage(Coordinator, server->GetSettings().Domain);
+            ui64 mediatorId = ChangeStateStorage(Mediator, server->GetSettings().Domain);
+            ui64 tabletId = ChangeStateStorage(TTestTxConfig::TxTablet0, server->GetSettings().Domain);
+
+            CreateTestBootstrapper(runtime,
+                CreateTestTabletInfo(tabletId, TTabletTypes::Dummy),
+                [](const TActorId& tablet, TTabletStorageInfo* info) {
+                    return new TPlanTargetTablet(tablet, info);
+                });
+
+            {
+                TDispatchOptions options;
+                options.FinalEvents.push_back(TDispatchOptions::TFinalEventCondition(TEvTablet::EvBoot, 1));
+                runtime.DispatchEvents(options);
+            }
+
+            TActorId mediatorQueue;
+            std::vector> mediatorQueueSteps;
+            auto blockMediatorQueueSteps = runtime.AddObserver([&](TEvMediatorQueueStep::TPtr& ev) {
+                mediatorQueue = ev->GetRecipientRewrite();
+                mediatorQueueSteps.emplace_back(ev.Release());
+                Cerr << "... blocked TEvMediatorQueueStep for " << mediatorQueue << Endl;
+            });
+
+            std::vector observedSteps;
+            auto stepsObserver = runtime.AddObserver([&](TEvTxProcessing::TEvPlanStep::TPtr& ev) {
+                auto* msg = ev->Get();
+                observedSteps.push_back(msg->Record.GetStep());
+            });
+
+            auto waitFor = [&](const auto& condition, const TString& description) {
+                for (int i = 0; i < 5 && !condition(); ++i) {
+                    Cerr << "... waiting for " << description << Endl;
+                    TDispatchOptions options;
+                    options.CustomFinalCondition = [&]() {
+                        return condition();
+                    };
+                    runtime.DispatchEvents(options);
+                }
+                UNIT_ASSERT_C(condition(), "... failed to wait for " << description);
+            };
+
+            ui64 txId = 12345678;
+            if (auto propose = std::make_unique(coordinatorId, txId, 0, Min(), Max())) {
+                auto* tx = propose->Record.MutableTransaction();
+                // Not necessary, but we test volatile transactions here
+                tx->SetFlags(TEvTxProxy::TEvProposeTransaction::FlagVolatile);
+                auto* affected = tx->AddAffectedSet();
+                affected->SetTabletId(tabletId);
+                affected->SetFlags(TEvTxProxy::TEvProposeTransaction::AffectedWrite);
+
+                runtime.SendToPipe(coordinatorId, sender, propose.release());
+            }
+
+            waitFor([&]{ return mediatorQueueSteps.size() > 0; }, "TEvMediatorQueueStep");
+            UNIT_ASSERT_VALUES_EQUAL(mediatorQueueSteps.size(), 1u);
+
+            // We shouldn't see any steps yet
+            UNIT_ASSERT_VALUES_EQUAL(observedSteps.size(), 0u);
+
+            auto injectMediatorQueueStep = runtime.AddObserver([&](TEvTabletPipe::TEvClientDestroyed::TPtr& ev) {
+                if (ev->GetRecipientRewrite() == mediatorQueue) {
+                    Cerr << "... found pipe disconnect at " << mediatorQueue << Endl;
+                    // Stop blocking mediator queue steps
+                    // This seems to be safe, since we remove someone else from std::list
+                    blockMediatorQueueSteps.Remove();
+                    // Inject blocked mediator steps into queue mailbox, they will be handled after the disconnect
+                    for (auto& ev : mediatorQueueSteps) {
+                        runtime.Send(ev.release(), 0, true);
+                    }
+                    mediatorQueueSteps.clear();
+                }
+            });
+
+            Cerr << "... rebooting mediator" << Endl;
+            RebootTablet(runtime, mediatorId, sender);
+
+            waitFor([&]{ return mediatorQueueSteps.empty(); }, "injected mediator steps");
+
+            // We must observe the plan step soon
+            runtime.SimulateSleep(TDuration::Seconds(2));
+            UNIT_ASSERT_VALUES_EQUAL(observedSteps.size(), 1u);
+        }
+
+        /**
+         * Tests a scenario where coordinator's volatile lease expires, which
+         * causes coordinator to update the lease during volatile planning.
+         * That transaction is migrated to a newer instance, but commit updating
+         * last known step fails. A bug caused new instances to reach a confused
+         * state, which could cause it to attempt planning more transactions in
+         * the same step, violating invariants.
+         */
+        Y_UNIT_TEST(CoordinatorMigrateUncommittedVolatileTx) {
+            struct TCoordinatorHooks : public ICoordinatorHooks {
+                std::vector PlannedSteps;
+
+                void BeginPlanStep(ui64 tabletId, ui64 generation, ui64 planStep) override {
+                    Cerr << "... coordinator " << tabletId << " gen " << generation << " is planning step " << planStep << Endl;
+                    PlannedSteps.push_back(planStep);
+                }
+            } hooks;
+            TCoordinatorHooksGuard hooksGuard(hooks);
+
+            TPortManager pm;
+            TServerSettings serverSettings(pm.GetPort(2134));
+            serverSettings.SetDomainName("Root")
+                .SetNodeCount(1)
+                .SetUseRealThreads(false)
+                .SetDomainPlanResolution(50);
+
+            Tests::TServer::TPtr server = new TServer(serverSettings);
+
+            auto &runtime = *server->GetRuntime();
+            runtime.SetLogPriority(NKikimrServices::TX_COORDINATOR, NActors::NLog::PRI_DEBUG);
+            runtime.SetLogPriority(NKikimrServices::BOOTSTRAPPER, NActors::NLog::PRI_DEBUG);
+            // runtime.SetLogPriority(NKikimrServices::TX_MEDIATOR, NActors::NLog::PRI_DEBUG);
+            // runtime.SetLogPriority(NKikimrServices::TX_MEDIATOR_EXEC_QUEUE, NActors::NLog::PRI_DEBUG);
+            // runtime.SetLogPriority(NKikimrServices::TX_MEDIATOR_TABLETQUEUE, NActors::NLog::PRI_DEBUG);
+
+            auto sender = runtime.AllocateEdgeActor();
+            ui64 coordinatorId = ChangeStateStorage(Coordinator, server->GetSettings().Domain);
+            ui64 tabletId = ChangeStateStorage(TTestTxConfig::TxTablet0, server->GetSettings().Domain);
+
+            CreateTestBootstrapper(runtime,
+                CreateTestTabletInfo(tabletId, TTabletTypes::Dummy),
+                [](const TActorId& tablet, TTabletStorageInfo* info) {
+                    return new TPlanTargetTablet(tablet, info);
+                });
+
+            {
+                TDispatchOptions options;
+                options.FinalEvents.push_back(TDispatchOptions::TFinalEventCondition(TEvTablet::EvBoot, 1));
+                runtime.DispatchEvents(options);
+            }
+
+            auto waitFor = [&](const auto& condition, const TString& description) {
+                for (int i = 0; i < 5 && !condition(); ++i) {
+                    Cerr << "... waiting for " << description << Endl;
+                    TDispatchOptions options;
+                    options.CustomFinalCondition = [&]() {
+                        return condition();
+                    };
+                    runtime.DispatchEvents(options);
+                }
+                UNIT_ASSERT_C(condition(), "... failed to wait for " << description);
+            };
+
+            // Wait for the first idle mediator step
+            waitFor([&]{ return hooks.PlannedSteps.size() >= 2; }, "the first two planned steps");
+
+            auto oldTimestamp = runtime.GetCurrentTime();
+            auto oldCoordinatorSysActorId = ResolveTablet(runtime, coordinatorId, 0, /* sysTablet */ true);
+            auto oldCoordinatorUserActorId = ResolveTablet(runtime, coordinatorId, 0, /* sysTablet */ false);
+
+            // Sleep for 500ms, so the default volatile lease of 250ms will expire
+            runtime.SimulateSleep(TDuration::MilliSeconds(500));
+
+            hooks.PlannedSteps.clear();
+
+            // Start blocking EvPut responses for the new plan (but allowing data to commit)
+            std::vector> blockedPutResponses;
+            auto blockPutResponses = runtime.AddObserver(
+                [&](TEvBlobStorage::TEvPutResult::TPtr& ev) {
+                    auto* msg = ev->Get();
+                    if (hooks.PlannedSteps.size() > 0 && msg->Id.TabletID() == coordinatorId) {
+                        // Block commits from coordinator
+                        Cerr << "... blocking put " << msg->Id << " response" << Endl;
+                        blockedPutResponses.emplace_back(ev.Release());
+                    }
+                });
+
+            // Block target tablet's accept messages to keep transactions in mediator
+            std::vector> blockedPlanStepAccepted;
+            auto blockPlanStepAccepted = runtime.AddObserver(
+                [&](TEvTxProcessing::TEvPlanStepAccepted::TPtr& ev) {
+                    auto* msg = ev->Get();
+                    if (msg->Record.GetTabletId() == tabletId) {
+                        Cerr << "... blocked accept from " << tabletId << Endl;
+                        blockedPlanStepAccepted.emplace_back(ev.Release());
+                    }
+                });
+
+            // Plan a persistent transaction
+            ui64 persistentTxId = 10000000;
+            if (auto propose = std::make_unique(coordinatorId, persistentTxId, 0, Min(), Max())) {
+                auto* tx = propose->Record.MutableTransaction();
+                auto* affected = tx->AddAffectedSet();
+                affected->SetTabletId(tabletId);
+                affected->SetFlags(TEvTxProxy::TEvProposeTransaction::AffectedWrite);
+
+                runtime.SendToPipe(coordinatorId, sender, propose.release());
+            }
+
+            // Wait until we have some commit responses blocked
+            // This will ensure planned tx is persisted, but coordinator will not act on it yet
+            waitFor([&]{ return blockedPutResponses.size() > 0; }, "blocked put responses");
+
+            UNIT_ASSERT_VALUES_EQUAL(hooks.PlannedSteps.size(), 1u);
+            ui64 persistentPlanStep = hooks.PlannedSteps.at(0);
+            hooks.PlannedSteps.clear();
+
+            // Stop blocking put responses
+            blockPutResponses.Remove();
+
+            // Start blocking EvPut requests (not allowing data to commit)
+            std::vector> blockedPutRequests;
+            auto blockPutRequests = runtime.AddObserver(
+                [&](TEvBlobStorage::TEvPut::TPtr& ev) {
+                    auto* msg = ev->Get();
+                    if (msg->Id.TabletID() == coordinatorId) {
+                        // Block commits from coordinator
+                        Cerr << "... blocking put " << msg->Id << " request" << Endl;
+                        blockedPutRequests.emplace_back(ev.Release());
+                    }
+                });
+
+            // Plan a volatile transaction, expected to be planned for Step+1
+            ui64 volatileTxId1 = 10000010;
+            if (auto propose = std::make_unique(coordinatorId, volatileTxId1, 0, Min(), Max())) {
+                auto* tx = propose->Record.MutableTransaction();
+                tx->SetFlags(TEvTxProxy::TEvProposeTransaction::FlagVolatile);
+                auto* affected = tx->AddAffectedSet();
+                affected->SetTabletId(tabletId);
+                affected->SetFlags(TEvTxProxy::TEvProposeTransaction::AffectedWrite);
+
+                runtime.SendToPipe(coordinatorId, sender, propose.release());
+            }
+
+            // Wait until it's actually planned
+            waitFor([&]{ return hooks.PlannedSteps.size() >= 1; }, "planned volatile tx");
+
+            UNIT_ASSERT_VALUES_EQUAL(hooks.PlannedSteps.size(), 1u);
+            ui64 volatilePlanStep = hooks.PlannedSteps.at(0);
+            hooks.PlannedSteps.clear();
+
+            UNIT_ASSERT_C(volatilePlanStep > persistentPlanStep,
+                "Volatile plan step " << volatilePlanStep << " should be after persistent plan step " << persistentPlanStep);
+
+            // Make sure everything settles
+            runtime.SimulateSleep(TDuration::MilliSeconds(1));
+
+            // We expect there to be a commit attempt (extending the lease and updating last planned)
+            UNIT_ASSERT_C(blockedPutRequests.size() > 0, "expected to have put requests blocked by now");
+            blockPutRequests.Remove();
+
+            // We want to start a new instance in parallel
+            // Block the old bootstrapper from starting unwanted instances when current tablet dies
+            bool oldTabletStopped = false;
+            auto blockOldTabletDead = runtime.AddObserver(
+                [&](TEvTablet::TEvTabletDead::TPtr& ev) {
+                    if (ev->Sender == oldCoordinatorSysActorId) {
+                        if (ev->GetRecipientRewrite() == oldCoordinatorUserActorId) {
+                            oldTabletStopped = true;
+                        } else {
+                            ev.Reset();
+                        }
+                    }
+                });
+
+            // New instance will migrate the in-memory state, block it from reaching the new instance temporarily
+            std::vector> blockedStateResponses;
+            auto blockStateResponses = runtime.AddObserver(
+                [&](TEvTxCoordinator::TEvCoordinatorStateResponse::TPtr& ev) {
+                    Cerr << "... blocking state response from " << ev->Sender << " to " << ev->GetRecipientRewrite() << Endl;
+                    Cerr << ev->Get()->Record.DebugString();
+                    blockedStateResponses.emplace_back(ev.Release());
+                });
+
+            // Rewind to some older time
+            runtime.UpdateCurrentTime(oldTimestamp, /* rewind */ true);
+
+            // Start a new bootstrapper, which will boot a new instance in parallel
+            Cerr << "... starting a new coordinator instance" << Endl;
+            CreateTestBootstrapper(runtime, CreateTestTabletInfo(coordinatorId, TTabletTypes::Coordinator), &CreateFlatTxCoordinator);
+
+            // Wait until new coordinator almost receives the in-memory state
+            waitFor([&]{ return blockedStateResponses.size() >= 1; }, "migrated state");
+
+            // Unblock previously blocked blobstorage messages
+            // Since new coordinator has started the storage is already blocked
+            Cerr << "... unblocking put responses and requests" << Endl;
+            for (auto& ev : blockedPutResponses) {
+                runtime.Send(ev.release(), 0, true);
+            }
+            blockedPutResponses.clear();
+            for (auto& ev : blockedPutRequests) {
+                runtime.Send(ev.release(), 0, true);
+            }
+            blockedPutRequests.clear();
+
+            // Sleep a little, so everything settles (e.g. committed plan is sent to mediator)
+            runtime.SimulateSleep(TDuration::MilliSeconds(1));
+
+            waitFor([&]{ return oldTabletStopped; }, "old tablet stopped");
+            hooks.PlannedSteps.clear();
+
+            // Unblock the in-memory state transfer
+            blockStateResponses.Remove();
+            for (auto& ev : blockedStateResponses) {
+                runtime.Send(ev.release(), 0, true);
+            }
+            blockedStateResponses.clear();
+
+            // Make sure new requests go to the new instance
+            InvalidateTabletResolverCache(runtime, coordinatorId);
+
+            // Plan another volatile transaction, with a smaller TxId
+            ui64 volatileTxId2 = 10000005;
+            if (auto propose = std::make_unique(coordinatorId, volatileTxId2, 0, Min(), Max())) {
+                auto* tx = propose->Record.MutableTransaction();
+                tx->SetFlags(TEvTxProxy::TEvProposeTransaction::FlagVolatile);
+                auto* affected = tx->AddAffectedSet();
+                affected->SetTabletId(tabletId);
+                affected->SetFlags(TEvTxProxy::TEvProposeTransaction::AffectedWrite);
+
+                runtime.SendToPipe(coordinatorId, sender, propose.release());
+            }
+
+            // Wait until it's actually planned
+            waitFor([&]{ return hooks.PlannedSteps.size() >= 1; }, "planned volatile tx");
+
+            UNIT_ASSERT_VALUES_EQUAL(hooks.PlannedSteps.size(), 1u);
+            ui64 volatilePlanStep2 = hooks.PlannedSteps.at(0);
+            hooks.PlannedSteps.clear();
+
+            // Wait until everything settles (e.g. mediators receive all pending transactions)
+            runtime.SimulateSleep(TDuration::MilliSeconds(1));
+
+            // Reboot the target tablet to trigger the original assertion
+            Cerr << "... rebooting target tablet" << Endl;
+            RebootTablet(runtime, tabletId, sender);
+
+            // Wait until everything settles
+            runtime.SimulateSleep(TDuration::MilliSeconds(1));
+
+            // Validate the new plan does not go back in time
+            UNIT_ASSERT_C(volatilePlanStep2 > volatilePlanStep,
+                "New volatile plan step " << volatilePlanStep2 << " is expected to be after " << volatilePlanStep);
+        }
+
+        /**
+         * This scenario tests an empty volatile plan that is scheduled behind
+         * a persistent plan, which finishes committing after an in-memory
+         * state has been snapshotted and migrated. There was a bug where this
+         * empty plan step would not be considered as confirmed, and could be
+         * erroneously considered as unused by a previous generation.
+         */
+        Y_UNIT_TEST(CoordinatorRestartWithEnqueuedVolatileStep) {
+            struct TCoordinatorHooks : public ICoordinatorHooks {
+                std::vector PlannedSteps;
+
+                void BeginPlanStep(ui64 tabletId, ui64 generation, ui64 planStep) override {
+                    Cerr << "... coordinator " << tabletId << " gen " << generation << " is planning step " << planStep << Endl;
+                    PlannedSteps.push_back(planStep);
+                }
+            } hooks;
+            TCoordinatorHooksGuard hooksGuard(hooks);
+
+            TPortManager pm;
+            TServerSettings serverSettings(pm.GetPort(2134));
+            serverSettings.SetDomainName("Root")
+                .SetNodeCount(1)
+                .SetUseRealThreads(false)
+                .SetDomainPlanResolution(50);
+
+            Tests::TServer::TPtr server = new TServer(serverSettings);
+
+            auto &runtime = *server->GetRuntime();
+            runtime.SetLogPriority(NKikimrServices::TX_COORDINATOR, NActors::NLog::PRI_DEBUG);
+            runtime.SetLogPriority(NKikimrServices::BOOTSTRAPPER, NActors::NLog::PRI_DEBUG);
+            runtime.SetLogPriority(NKikimrServices::TX_MEDIATOR, NActors::NLog::PRI_DEBUG);
+            runtime.SetLogPriority(NKikimrServices::TX_MEDIATOR_EXEC_QUEUE, NActors::NLog::PRI_DEBUG);
+            runtime.SetLogPriority(NKikimrServices::TX_MEDIATOR_TABLETQUEUE, NActors::NLog::PRI_DEBUG);
+
+            auto sender = runtime.AllocateEdgeActor();
+            ui64 coordinatorId = ChangeStateStorage(Coordinator, server->GetSettings().Domain);
+            ui64 mediatorId = ChangeStateStorage(Mediator, server->GetSettings().Domain);
+            ui64 tabletId = ChangeStateStorage(TTestTxConfig::TxTablet0, server->GetSettings().Domain);
+
+            CreateTestBootstrapper(runtime,
+                CreateTestTabletInfo(tabletId, TTabletTypes::Dummy),
+                [](const TActorId& tablet, TTabletStorageInfo* info) {
+                    return new TPlanTargetTablet(tablet, info);
+                });
+
+            {
+                TDispatchOptions options;
+                options.FinalEvents.push_back(TDispatchOptions::TFinalEventCondition(TEvTablet::EvBoot, 1));
+                runtime.DispatchEvents(options);
+            }
+
+            auto waitFor = [&](const auto& condition, const TString& description) {
+                for (int i = 0; i < 5 && !condition(); ++i) {
+                    Cerr << "... waiting for " << description << Endl;
+                    TDispatchOptions options;
+                    options.CustomFinalCondition = [&]() {
+                        return condition();
+                    };
+                    runtime.DispatchEvents(options);
+                }
+                UNIT_ASSERT_C(condition(), "... failed to wait for " << description);
+            };
+
+            // Wait for the first idle mediator step
+            waitFor([&]{ return hooks.PlannedSteps.size() >= 2; }, "the first two planned steps");
+            runtime.SimulateSleep(TDuration::MilliSeconds(1));
+
+            hooks.PlannedSteps.clear();
+
+            auto oldTimestamp = runtime.GetCurrentTime();
+            auto oldCoordinatorSysActorId = ResolveTablet(runtime, coordinatorId, 0, /* sysTablet */ true);
+            auto oldCoordinatorUserActorId = ResolveTablet(runtime, coordinatorId, 0, /* sysTablet */ false);
+
+            // Start blocking EvPut responses for the new plan (but allowing data to commit)
+            std::vector> blockedPutResponses;
+            auto blockPutResponses = runtime.AddObserver(
+                [&](TEvBlobStorage::TEvPutResult::TPtr& ev) {
+                    auto* msg = ev->Get();
+                    if (hooks.PlannedSteps.size() > 0 && msg->Id.TabletID() == coordinatorId) {
+                        // Block commits from coordinator
+                        Cerr << "... blocking put " << msg->Id << " response" << Endl;
+                        blockedPutResponses.emplace_back(ev.Release());
+                    }
+                });
+
+            // Block target tablet's accept messages to keep transactions in mediator
+            std::vector> blockedPlanStepAccepted;
+            auto blockPlanStepAccepted = runtime.AddObserver(
+                [&](TEvTxProcessing::TEvPlanStepAccepted::TPtr& ev) {
+                    auto* msg = ev->Get();
+                    if (msg->Record.GetTabletId() == tabletId) {
+                        Cerr << "... blocked accept from " << tabletId << Endl;
+                        blockedPlanStepAccepted.emplace_back(ev.Release());
+                    }
+                });
+
+            // step -> list of transactions
+            std::map> observedSteps;
+            auto observeSteps = runtime.AddObserver(
+                [&](TEvTxCoordinator::TEvCoordinatorStep::TPtr& ev) {
+                    auto* msg = ev->Get();
+                    Cerr << "... observed step:" << Endl;
+                    Cerr << msg->Record.DebugString();
+                    if (msg->Record.GetCoordinatorID() != coordinatorId) {
+                        return;
+                    }
+                    ui64 step = msg->Record.GetStep();
+                    std::vector txIds;
+                    for (const auto& tx : msg->Record.GetTransactions()) {
+                        txIds.push_back(tx.GetTxId());
+                    }
+                    std::sort(txIds.begin(), txIds.end());
+                    auto it = observedSteps.find(step);
+                    if (it == observedSteps.end()) {
+                        observedSteps[step] = std::move(txIds);
+                    } else {
+                        auto dumpTxIds = [](const std::vector& txIds) -> TString {
+                            TStringBuilder sb;
+                            sb << "{";
+                            bool first = true;
+                            for (ui64 txId : txIds) {
+                                if (first) {
+                                    first = false;
+                                } else {
+                                    sb << ", ";
+                                }
+                                sb << txId;
+                            }
+                            sb << "}";
+                            return std::move(sb);
+                        };
+                        UNIT_ASSERT_C(it->second == txIds,
+                            "Step " << step << " changed transactions list "
+                            << dumpTxIds(it->second) << " -> " << dumpTxIds(txIds));
+                    }
+                });
+
+            // txId -> step
+            std::map observedTabletTxs;
+            auto observeTabletTxs = runtime.AddObserver(
+                [&](TEvTxProcessing::TEvPlanStep::TPtr& ev) {
+                    auto* msg = ev->Get();
+                    Cerr << "... observed tablet step:" << Endl;
+                    Cerr << msg->Record.DebugString();
+                    ui64 step = msg->Record.GetStep();
+                    for (auto& tx : msg->Record.GetTransactions()) {
+                        observedTabletTxs[tx.GetTxId()] = step;
+                    }
+                });
+
+            // Plan a persistent transaction
+            ui64 persistentTxId = 10000000;
+            if (auto propose = std::make_unique(coordinatorId, persistentTxId, 0, Min(), Max())) {
+                auto* tx = propose->Record.MutableTransaction();
+                auto* affected = tx->AddAffectedSet();
+                affected->SetTabletId(tabletId);
+                affected->SetFlags(TEvTxProxy::TEvProposeTransaction::AffectedWrite);
+
+                runtime.SendToPipe(coordinatorId, sender, propose.release());
+            }
+
+            // Wait until we have some commit responses blocked
+            waitFor([&]{ return blockedPutResponses.size() > 0; }, "blocked put responses");
+
+            UNIT_ASSERT_VALUES_EQUAL(hooks.PlannedSteps.size(), 1u);
+            ui64 persistentPlanStep = hooks.PlannedSteps.at(0);
+            hooks.PlannedSteps.clear();
+
+            // Require an empty step, it should be divisible by plan resolution
+            runtime.SendToPipe(coordinatorId, sender, new TEvTxProxy::TEvRequirePlanSteps(coordinatorId, persistentPlanStep + 50));
+
+            // Wait until it is also planned
+            waitFor([&]{ return hooks.PlannedSteps.size() >= 1; }, "planning for the required step");
+
+            UNIT_ASSERT_VALUES_EQUAL(hooks.PlannedSteps.size(), 1u);
+            ui64 volatileEmptyPlanStep = hooks.PlannedSteps.at(0);
+            hooks.PlannedSteps.clear();
+
+            // Stop blocking newer put responses
+            blockPutResponses.Remove();
+
+            // Make sure everything settles
+            runtime.SimulateSleep(TDuration::MilliSeconds(1));
+
+            // We want to start a new instance in parallel
+            // Block the old bootstrapper from starting unwanted instances when current tablet dies
+            bool oldTabletStopped = false;
+            auto blockOldTabletDead = runtime.AddObserver(
+                [&](TEvTablet::TEvTabletDead::TPtr& ev) {
+                    if (ev->Sender == oldCoordinatorSysActorId) {
+                        if (ev->GetRecipientRewrite() == oldCoordinatorUserActorId) {
+                            oldTabletStopped = true;
+                        } else {
+                            ev.Reset();
+                        }
+                    }
+                });
+
+            // New instance will migrate the in-memory state, block it from reaching the new instance temporarily
+            std::vector> blockedStateResponses;
+            auto blockStateResponses = runtime.AddObserver(
+                [&](TEvTxCoordinator::TEvCoordinatorStateResponse::TPtr& ev) {
+                    Cerr << "... blocking state response from " << ev->Sender << " to " << ev->GetRecipientRewrite() << Endl;
+                    Cerr << ev->Get()->Record.DebugString();
+                    blockedStateResponses.emplace_back(ev.Release());
+                });
+
+            // Rewind to some older time
+            runtime.UpdateCurrentTime(oldTimestamp, /* rewind */ true);
+
+            // Start a new bootstrapper, which will boot a new instance in parallel
+            Cerr << "... starting a new coordinator instance" << Endl;
+            CreateTestBootstrapper(runtime, CreateTestTabletInfo(coordinatorId, TTabletTypes::Coordinator), &CreateFlatTxCoordinator);
+
+            // Wait until new coordinator almost receives the in-memory state
+            waitFor([&]{ return blockedStateResponses.size() >= 1; }, "migrated state");
+
+            // Unblock previously blocked blobstorage messages
+            // Since new coordinator has started the storage is already blocked
+            Cerr << "... unblocking put responses and requests" << Endl;
+            for (auto& ev : blockedPutResponses) {
+                runtime.Send(ev.release(), 0, true);
+            }
+            blockedPutResponses.clear();
+
+            // Sleep a little, so everything settles (e.g. committed plan is sent to mediator)
+            runtime.SimulateSleep(TDuration::MilliSeconds(1));
+
+            waitFor([&]{ return oldTabletStopped; }, "old tablet stopped");
+            hooks.PlannedSteps.clear();
+
+            // Unblock the in-memory state transfer
+            blockStateResponses.Remove();
+            for (auto& ev : blockedStateResponses) {
+                runtime.Send(ev.release(), 0, true);
+            }
+            blockedStateResponses.clear();
+
+            size_t oldObservedSteps = observedSteps.size();
+
+            // Make sure new requests go to the new instance
+            InvalidateTabletResolverCache(runtime, coordinatorId);
+
+            // Plan another persistent transaction
+            ui64 persistentTxId2 = 10000011;
+            Cerr << "... trying to plan tx " << persistentTxId2 << Endl;
+            if (auto propose = std::make_unique(coordinatorId, persistentTxId2, 0, Min(), Max())) {
+                auto* tx = propose->Record.MutableTransaction();
+                auto* affected = tx->AddAffectedSet();
+                affected->SetTabletId(tabletId);
+                affected->SetFlags(TEvTxProxy::TEvProposeTransaction::AffectedWrite);
+
+                runtime.SendToPipe(coordinatorId, sender, propose.release());
+            }
+
+            // Wait until it's actually planned
+            waitFor([&]{ return hooks.PlannedSteps.size() >= 1; }, "planned another persistent tx");
+
+            // Wait until mediator observes it
+            waitFor([&]{ return observedSteps.size() > oldObservedSteps; }, "new step reaches mediator");
+
+            runtime.SimulateSleep(TDuration::MilliSeconds(50));
+            UNIT_ASSERT_C(observedTabletTxs.contains(persistentTxId2),
+                "Tablet did not observe a persistent tx " << persistentTxId2);
+
+            Y_UNUSED(sender);
+            Y_UNUSED(coordinatorId);
+            Y_UNUSED(mediatorId);
+
+            Y_UNUSED(oldTimestamp);
+            Y_UNUSED(oldCoordinatorSysActorId);
+            Y_UNUSED(oldCoordinatorUserActorId);
+
+            Y_UNUSED(persistentPlanStep);
+            Y_UNUSED(volatileEmptyPlanStep);
+        }
+
     } // Y_UNIT_TEST_SUITE(CoordinatorVolatile)
 
 } // namespace NKikimr::NFlatTxCoordinator::NTest
diff --git a/ydb/core/tx/coordinator/mediator_queue.cpp b/ydb/core/tx/coordinator/mediator_queue.cpp
index c7a4eecbd255..8cb7557d80aa 100644
--- a/ydb/core/tx/coordinator/mediator_queue.cpp
+++ b/ydb/core/tx/coordinator/mediator_queue.cpp
@@ -284,6 +284,7 @@ class TTxCoordinatorMediatorQueue : public TActorBootstrappedGetTypeRewrite()) {
+            HFunc(TEvMediatorQueueStep, Handle);
             HFunc(TEvTxProcessing::TEvPlanStepAck, Handle);
             HFunc(TEvTxCoordinator::TEvCoordinatorSyncResult, Handle);
             HFunc(TEvTabletPipe::TEvClientConnected, Handle);
@@ -294,8 +295,8 @@ class TTxCoordinatorMediatorQueue : public TActorBootstrappedGetTypeRewrite()) {
-            HFunc(TEvTxProcessing::TEvPlanStepAck, Handle);
             HFunc(TEvMediatorQueueStep, Handle);
+            HFunc(TEvTxProcessing::TEvPlanStepAck, Handle);
             HFunc(TEvTabletPipe::TEvClientDestroyed, Handle);
             CFunc(TEvents::TSystem::PoisonPill, Die)
         }
diff --git a/ydb/core/tx/coordinator/protos/CMakeLists.darwin-arm64.txt b/ydb/core/tx/coordinator/protos/CMakeLists.darwin-arm64.txt
index 20d07d9e099a..c240c3d766b8 100644
--- a/ydb/core/tx/coordinator/protos/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/coordinator/protos/CMakeLists.darwin-arm64.txt
@@ -28,6 +28,9 @@ target_link_libraries(tx-coordinator-protos PUBLIC
 target_proto_messages(tx-coordinator-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/protos/events.proto
 )
+target_sources(tx-coordinator-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tx/coordinator/protos/events.pb.h
+)
 target_proto_addincls(tx-coordinator-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/tx/coordinator/protos/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/coordinator/protos/CMakeLists.darwin-x86_64.txt
index 20d07d9e099a..c240c3d766b8 100644
--- a/ydb/core/tx/coordinator/protos/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/coordinator/protos/CMakeLists.darwin-x86_64.txt
@@ -28,6 +28,9 @@ target_link_libraries(tx-coordinator-protos PUBLIC
 target_proto_messages(tx-coordinator-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/protos/events.proto
 )
+target_sources(tx-coordinator-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tx/coordinator/protos/events.pb.h
+)
 target_proto_addincls(tx-coordinator-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/tx/coordinator/protos/CMakeLists.linux-aarch64.txt b/ydb/core/tx/coordinator/protos/CMakeLists.linux-aarch64.txt
index 363433566205..f52d9243c20b 100644
--- a/ydb/core/tx/coordinator/protos/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/coordinator/protos/CMakeLists.linux-aarch64.txt
@@ -29,6 +29,9 @@ target_link_libraries(tx-coordinator-protos PUBLIC
 target_proto_messages(tx-coordinator-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/protos/events.proto
 )
+target_sources(tx-coordinator-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tx/coordinator/protos/events.pb.h
+)
 target_proto_addincls(tx-coordinator-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/tx/coordinator/protos/CMakeLists.linux-x86_64.txt b/ydb/core/tx/coordinator/protos/CMakeLists.linux-x86_64.txt
index 363433566205..f52d9243c20b 100644
--- a/ydb/core/tx/coordinator/protos/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/coordinator/protos/CMakeLists.linux-x86_64.txt
@@ -29,6 +29,9 @@ target_link_libraries(tx-coordinator-protos PUBLIC
 target_proto_messages(tx-coordinator-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/protos/events.proto
 )
+target_sources(tx-coordinator-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tx/coordinator/protos/events.pb.h
+)
 target_proto_addincls(tx-coordinator-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/tx/coordinator/protos/CMakeLists.windows-x86_64.txt b/ydb/core/tx/coordinator/protos/CMakeLists.windows-x86_64.txt
index 20d07d9e099a..c240c3d766b8 100644
--- a/ydb/core/tx/coordinator/protos/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/coordinator/protos/CMakeLists.windows-x86_64.txt
@@ -28,6 +28,9 @@ target_link_libraries(tx-coordinator-protos PUBLIC
 target_proto_messages(tx-coordinator-protos PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/protos/events.proto
 )
+target_sources(tx-coordinator-protos PRIVATE
+  ${CMAKE_BINARY_DIR}/ydb/core/tx/coordinator/protos/events.pb.h
+)
 target_proto_addincls(tx-coordinator-protos
   ./
   ${CMAKE_SOURCE_DIR}/
diff --git a/ydb/core/tx/coordinator/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/coordinator/ut/CMakeLists.darwin-arm64.txt
index b9f36054e644..b8e1f5071802 100644
--- a/ydb/core/tx/coordinator/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/coordinator/ut/CMakeLists.darwin-arm64.txt
@@ -27,8 +27,6 @@ target_link_options(ydb-core-tx-coordinator-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-coordinator-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_ut.cpp
@@ -59,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/coordinator/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/coordinator/ut/CMakeLists.darwin-x86_64.txt
index a59ad5a3c3bd..ef0fb278296a 100644
--- a/ydb/core/tx/coordinator/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/coordinator/ut/CMakeLists.darwin-x86_64.txt
@@ -28,8 +28,6 @@ target_link_options(ydb-core-tx-coordinator-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-coordinator-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_ut.cpp
@@ -60,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/coordinator/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tx/coordinator/ut/CMakeLists.linux-aarch64.txt
index 73cda29bf525..ead58733ca90 100644
--- a/ydb/core/tx/coordinator/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/coordinator/ut/CMakeLists.linux-aarch64.txt
@@ -30,9 +30,6 @@ target_link_options(ydb-core-tx-coordinator-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-coordinator-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_ut.cpp
@@ -63,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/coordinator/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tx/coordinator/ut/CMakeLists.linux-x86_64.txt
index 94451cadef89..6aa42c3fda86 100644
--- a/ydb/core/tx/coordinator/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/coordinator/ut/CMakeLists.linux-x86_64.txt
@@ -31,9 +31,6 @@ target_link_options(ydb-core-tx-coordinator-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-coordinator-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/coordinator/coordinator_ut.cpp
@@ -64,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/coordinator/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tx/coordinator/ut/CMakeLists.windows-x86_64.txt
index 032d24539fc1..ee6d0154938e 100644
--- a/ydb/core/tx/coordinator/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/coordinator/ut/CMakeLists.windows-x86_64.txt
@@ -53,6 +53,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/data_events/columnshard_splitter.h b/ydb/core/tx/data_events/columnshard_splitter.h
index 9c2b2c47ad5d..fabc0d2c5d20 100644
--- a/ydb/core/tx/data_events/columnshard_splitter.h
+++ b/ydb/core/tx/data_events/columnshard_splitter.h
@@ -174,7 +174,7 @@ class TColumnShardShardsSplitter : public IShardsSplitter {
                 col.HasTypeInfo() ? &col.GetTypeInfo() : nullptr);
             columns.emplace_back(col.GetName(), typeInfoMod.TypeInfo);
         }
-        return NArrow::MakeArrowSchema(columns);
+        return NArrow::TStatusValidator::GetValid(NArrow::MakeArrowSchema(columns));
     }
 };
 }
diff --git a/ydb/core/tx/data_events/events.h b/ydb/core/tx/data_events/events.h
index 8fab00c8699d..a875bfe3b1da 100644
--- a/ydb/core/tx/data_events/events.h
+++ b/ydb/core/tx/data_events/events.h
@@ -38,13 +38,29 @@ struct TDataEvents {
     public:
         TEvWrite() = default;
 
-        TEvWrite(ui64 txId, NKikimrDataEvents::TEvWrite::ETxMode txMode) {
-            Y_ABORT_UNLESS(txMode != NKikimrDataEvents::TEvWrite::MODE_UNSPECIFIED);
 
+        TEvWrite(const ui64 txId, NKikimrDataEvents::TEvWrite::ETxMode txMode) {
+            Y_ABORT_UNLESS(txMode != NKikimrDataEvents::TEvWrite::MODE_UNSPECIFIED);
+            Record.SetTxMode(txMode);
             Record.SetTxId(txId);
+        }
+
+        TEvWrite(NKikimrDataEvents::TEvWrite::ETxMode txMode) {
+            Y_ABORT_UNLESS(txMode != NKikimrDataEvents::TEvWrite::MODE_UNSPECIFIED);
             Record.SetTxMode(txMode);
         }
 
+        TEvWrite& SetTxId(const ui64 txId) {
+            Record.SetTxId(txId);
+            return *this;
+        }
+
+        TEvWrite& SetLockId(const ui64 lockTxId, const ui64 lockNodeId) {
+            Record.SetLockTxId(lockTxId);
+            Record.SetLockNodeId(lockNodeId);
+            return *this;
+        }
+
         void AddOperation(NKikimrDataEvents::TEvWrite_TOperation::EOperationType operationType, const TTableId& tableId, const std::vector& columnIds,
             ui64 payloadIndex, NKikimrDataEvents::EDataFormat payloadFormat) {
             Y_ABORT_UNLESS(operationType != NKikimrDataEvents::TEvWrite::TOperation::OPERATION_UNSPECIFIED);
@@ -87,7 +103,7 @@ struct TDataEvents {
             return result;
         }
 
-        static std::unique_ptr BuildCommited(const ui64 origin, const ui64 txId) {
+        static std::unique_ptr BuildCompleted(const ui64 origin, const ui64 txId) {
             auto result = std::make_unique();
             result->Record.SetOrigin(origin);
             result->Record.SetTxId(txId);
diff --git a/ydb/core/tx/data_events/payload_helper.h b/ydb/core/tx/data_events/payload_helper.h
index 1905b60150c9..8d0b503b911c 100644
--- a/ydb/core/tx/data_events/payload_helper.h
+++ b/ydb/core/tx/data_events/payload_helper.h
@@ -4,20 +4,26 @@
 
 namespace NKikimr::NEvWrite {
 
-class IPayloadData {
+class IPayloadReader {
 public:
     virtual TString GetDataFromPayload(const ui64 index) const = 0;
+    virtual ~IPayloadReader() {
+    }
+};
+
+class IPayloadWriter {
+public:
     virtual ui64 AddDataToPayload(TString&& blobData) = 0;
-    virtual ~IPayloadData() {
+    virtual ~IPayloadWriter() {
     }
 };
 
 template 
-class TPayloadHelper: public IPayloadData {
-    TEvent& Event;
+class TPayloadReader: public IPayloadReader {
+    const TEvent& Event;
 
 public:
-    TPayloadHelper(TEvent& ev)
+    TPayloadReader(const TEvent& ev)
         : Event(ev)
     {
     }
@@ -28,6 +34,17 @@ class TPayloadHelper: public IPayloadData {
         rope.Begin().ExtractPlainDataAndAdvance(data.Detach(), data.size());
         return data;
     }
+};
+
+template 
+class TPayloadWriter: public IPayloadWriter {
+    TEvent& Event;
+
+public:
+    TPayloadWriter(TEvent& ev)
+        : Event(ev)
+    {
+    }
 
     ui64 AddDataToPayload(TString&& blobData) override {
         TRope rope;
@@ -35,5 +52,4 @@ class TPayloadHelper: public IPayloadData {
         return Event.AddPayload(std::move(rope));
     }
 };
-
 }
diff --git a/ydb/core/tx/data_events/write_data.h b/ydb/core/tx/data_events/write_data.h
index 739d9b3e89c5..d25c65e65c1d 100644
--- a/ydb/core/tx/data_events/write_data.h
+++ b/ydb/core/tx/data_events/write_data.h
@@ -5,6 +5,7 @@
 #include 
 
 #include 
+#include 
 
 namespace NKikimr::NOlap {
 class IBlobsWritingAction;
@@ -31,12 +32,14 @@ class TWriteMeta {
     YDB_ACCESSOR(ui64, WritePartId, 0);
     YDB_ACCESSOR_DEF(TString, DedupId);
 
+    YDB_READONLY(TString, Id, TGUID::CreateTimebased().AsUuidString());
     YDB_READONLY(TMonotonic, WriteStartInstant, TMonotonic::Now());
     YDB_ACCESSOR(TMonotonic, WriteMiddle1StartInstant, TMonotonic::Now());
     YDB_ACCESSOR(TMonotonic, WriteMiddle2StartInstant, TMonotonic::Now());
     YDB_ACCESSOR(TMonotonic, WriteMiddle3StartInstant, TMonotonic::Now());
     YDB_ACCESSOR(TMonotonic, WriteMiddle4StartInstant, TMonotonic::Now());
     YDB_ACCESSOR(TMonotonic, WriteMiddle5StartInstant, TMonotonic::Now());
+    YDB_ACCESSOR(TMonotonic, WriteMiddle6StartInstant, TMonotonic::Now());
 public:
     TWriteMeta(const ui64 writeId, const ui64 tableId, const NActors::TActorId& source)
         : WriteId(writeId)
diff --git a/ydb/core/tx/datashard/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/CMakeLists.darwin-arm64.txt
index 02077d6ae648..0ccb55b5d375 100644
--- a/ydb/core/tx/datashard/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/CMakeLists.darwin-arm64.txt
@@ -34,6 +34,7 @@ add_subdirectory(ut_rs)
 add_subdirectory(ut_sequence)
 add_subdirectory(ut_snapshot)
 add_subdirectory(ut_stats)
+add_subdirectory(ut_trace)
 add_subdirectory(ut_upload_rows)
 add_subdirectory(ut_volatile)
 add_subdirectory(ut_write)
@@ -85,12 +86,6 @@ get_built_tool_path(
   tools/enum_parser/enum_parser
   enum_parser
 )
-get_built_tool_path(
-  TOOL_enum_parser_bin
-  TOOL_enum_parser_dependency
-  tools/enum_parser/enum_parser
-  enum_parser
-)
 get_built_tool_path(
   TOOL_rescompiler_bin
   TOOL_rescompiler_dependency
@@ -123,10 +118,11 @@ target_link_libraries(core-tx-datashard PUBLIC
   cpp-string_utils-quote
   ydb-core-actorlib_impl
   ydb-core-base
+  ydb-core-change_exchange
   ydb-core-engine
   core-engine-minikql
   ydb-core-formats
-  ydb-core-io_formats
+  core-io_formats-ydb_dump
   core-kqp-runtime
   core-persqueue-partition_key_range
   core-persqueue-writer
@@ -148,6 +144,35 @@ target_link_libraries(core-tx-datashard PUBLIC
   ydb-library-chunks_limiter
 )
 target_sources(core-tx-datashard PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__engine_host.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_locks_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_locks.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_trans_queue.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_outreadset.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_active_transaction.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_direct_transaction.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_failpoints.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_dep_tracker.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_pipeline.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_user_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_user_table.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp_compute.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_read_operation.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_txs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit_ctors.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit_kind.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_iface.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_conflicts.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/operation.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/progress_queue.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/read_table_scan.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/read_iterator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/setup_sys_locks.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/alter_cdc_stream_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/alter_table_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/backup_restore_common.cpp
@@ -173,8 +198,6 @@ target_sources(core-tx-datashard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_async_index.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_cdc_stream.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_common_ops.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_monitoring.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_commit_writes_tx_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_data_tx_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_distributed_erase_tx_unit.cpp
@@ -280,9 +303,11 @@ target_sources(core-tx-datashard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_scan.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finalize_build_index_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finish_propose_unit.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finish_propose_write_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/follower_edge.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/initiate_build_index_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_conflicts.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_validator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/load_and_wait_in_rs_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/load_tx_details_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/make_scan_snapshot_unit.cpp
@@ -335,11 +360,6 @@ generate_enum_serilization(core-tx-datashard
   INCLUDE_HEADERS
   ydb/core/tx/datashard/change_exchange.h
 )
-generate_enum_serilization(core-tx-datashard
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_record.h
-  INCLUDE_HEADERS
-  ydb/core/tx/datashard/change_record.h
-)
 generate_enum_serilization(core-tx-datashard
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard.h
   INCLUDE_HEADERS
@@ -396,10 +416,11 @@ target_link_libraries(core-tx-datashard.global PUBLIC
   cpp-string_utils-quote
   ydb-core-actorlib_impl
   ydb-core-base
+  ydb-core-change_exchange
   ydb-core-engine
   core-engine-minikql
   ydb-core-formats
-  ydb-core-io_formats
+  core-io_formats-ydb_dump
   core-kqp-runtime
   core-persqueue-partition_key_range
   core-persqueue-writer
diff --git a/ydb/core/tx/datashard/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/CMakeLists.darwin-x86_64.txt
index 02077d6ae648..0ccb55b5d375 100644
--- a/ydb/core/tx/datashard/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/CMakeLists.darwin-x86_64.txt
@@ -34,6 +34,7 @@ add_subdirectory(ut_rs)
 add_subdirectory(ut_sequence)
 add_subdirectory(ut_snapshot)
 add_subdirectory(ut_stats)
+add_subdirectory(ut_trace)
 add_subdirectory(ut_upload_rows)
 add_subdirectory(ut_volatile)
 add_subdirectory(ut_write)
@@ -85,12 +86,6 @@ get_built_tool_path(
   tools/enum_parser/enum_parser
   enum_parser
 )
-get_built_tool_path(
-  TOOL_enum_parser_bin
-  TOOL_enum_parser_dependency
-  tools/enum_parser/enum_parser
-  enum_parser
-)
 get_built_tool_path(
   TOOL_rescompiler_bin
   TOOL_rescompiler_dependency
@@ -123,10 +118,11 @@ target_link_libraries(core-tx-datashard PUBLIC
   cpp-string_utils-quote
   ydb-core-actorlib_impl
   ydb-core-base
+  ydb-core-change_exchange
   ydb-core-engine
   core-engine-minikql
   ydb-core-formats
-  ydb-core-io_formats
+  core-io_formats-ydb_dump
   core-kqp-runtime
   core-persqueue-partition_key_range
   core-persqueue-writer
@@ -148,6 +144,35 @@ target_link_libraries(core-tx-datashard PUBLIC
   ydb-library-chunks_limiter
 )
 target_sources(core-tx-datashard PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__engine_host.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_locks_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_locks.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_trans_queue.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_outreadset.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_active_transaction.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_direct_transaction.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_failpoints.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_dep_tracker.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_pipeline.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_user_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_user_table.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp_compute.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_read_operation.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_txs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit_ctors.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit_kind.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_iface.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_conflicts.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/operation.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/progress_queue.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/read_table_scan.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/read_iterator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/setup_sys_locks.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/alter_cdc_stream_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/alter_table_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/backup_restore_common.cpp
@@ -173,8 +198,6 @@ target_sources(core-tx-datashard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_async_index.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_cdc_stream.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_common_ops.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_monitoring.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_commit_writes_tx_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_data_tx_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_distributed_erase_tx_unit.cpp
@@ -280,9 +303,11 @@ target_sources(core-tx-datashard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_scan.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finalize_build_index_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finish_propose_unit.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finish_propose_write_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/follower_edge.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/initiate_build_index_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_conflicts.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_validator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/load_and_wait_in_rs_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/load_tx_details_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/make_scan_snapshot_unit.cpp
@@ -335,11 +360,6 @@ generate_enum_serilization(core-tx-datashard
   INCLUDE_HEADERS
   ydb/core/tx/datashard/change_exchange.h
 )
-generate_enum_serilization(core-tx-datashard
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_record.h
-  INCLUDE_HEADERS
-  ydb/core/tx/datashard/change_record.h
-)
 generate_enum_serilization(core-tx-datashard
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard.h
   INCLUDE_HEADERS
@@ -396,10 +416,11 @@ target_link_libraries(core-tx-datashard.global PUBLIC
   cpp-string_utils-quote
   ydb-core-actorlib_impl
   ydb-core-base
+  ydb-core-change_exchange
   ydb-core-engine
   core-engine-minikql
   ydb-core-formats
-  ydb-core-io_formats
+  core-io_formats-ydb_dump
   core-kqp-runtime
   core-persqueue-partition_key_range
   core-persqueue-writer
diff --git a/ydb/core/tx/datashard/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/CMakeLists.linux-aarch64.txt
index bfda437b594c..a32eff50d7c4 100644
--- a/ydb/core/tx/datashard/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/CMakeLists.linux-aarch64.txt
@@ -34,6 +34,7 @@ add_subdirectory(ut_rs)
 add_subdirectory(ut_sequence)
 add_subdirectory(ut_snapshot)
 add_subdirectory(ut_stats)
+add_subdirectory(ut_trace)
 add_subdirectory(ut_upload_rows)
 add_subdirectory(ut_volatile)
 add_subdirectory(ut_write)
@@ -85,12 +86,6 @@ get_built_tool_path(
   tools/enum_parser/enum_parser
   enum_parser
 )
-get_built_tool_path(
-  TOOL_enum_parser_bin
-  TOOL_enum_parser_dependency
-  tools/enum_parser/enum_parser
-  enum_parser
-)
 get_built_tool_path(
   TOOL_rescompiler_bin
   TOOL_rescompiler_dependency
@@ -124,10 +119,11 @@ target_link_libraries(core-tx-datashard PUBLIC
   cpp-string_utils-quote
   ydb-core-actorlib_impl
   ydb-core-base
+  ydb-core-change_exchange
   ydb-core-engine
   core-engine-minikql
   ydb-core-formats
-  ydb-core-io_formats
+  core-io_formats-ydb_dump
   core-kqp-runtime
   core-persqueue-partition_key_range
   core-persqueue-writer
@@ -149,6 +145,35 @@ target_link_libraries(core-tx-datashard PUBLIC
   ydb-library-chunks_limiter
 )
 target_sources(core-tx-datashard PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__engine_host.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_locks_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_locks.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_trans_queue.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_outreadset.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_active_transaction.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_direct_transaction.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_failpoints.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_dep_tracker.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_pipeline.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_user_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_user_table.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp_compute.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_read_operation.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_txs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit_ctors.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit_kind.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_iface.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_conflicts.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/operation.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/progress_queue.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/read_table_scan.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/read_iterator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/setup_sys_locks.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/alter_cdc_stream_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/alter_table_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/backup_restore_common.cpp
@@ -174,8 +199,6 @@ target_sources(core-tx-datashard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_async_index.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_cdc_stream.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_common_ops.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_monitoring.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_commit_writes_tx_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_data_tx_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_distributed_erase_tx_unit.cpp
@@ -281,9 +304,11 @@ target_sources(core-tx-datashard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_scan.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finalize_build_index_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finish_propose_unit.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finish_propose_write_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/follower_edge.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/initiate_build_index_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_conflicts.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_validator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/load_and_wait_in_rs_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/load_tx_details_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/make_scan_snapshot_unit.cpp
@@ -336,11 +361,6 @@ generate_enum_serilization(core-tx-datashard
   INCLUDE_HEADERS
   ydb/core/tx/datashard/change_exchange.h
 )
-generate_enum_serilization(core-tx-datashard
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_record.h
-  INCLUDE_HEADERS
-  ydb/core/tx/datashard/change_record.h
-)
 generate_enum_serilization(core-tx-datashard
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard.h
   INCLUDE_HEADERS
@@ -398,10 +418,11 @@ target_link_libraries(core-tx-datashard.global PUBLIC
   cpp-string_utils-quote
   ydb-core-actorlib_impl
   ydb-core-base
+  ydb-core-change_exchange
   ydb-core-engine
   core-engine-minikql
   ydb-core-formats
-  ydb-core-io_formats
+  core-io_formats-ydb_dump
   core-kqp-runtime
   core-persqueue-partition_key_range
   core-persqueue-writer
diff --git a/ydb/core/tx/datashard/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/CMakeLists.linux-x86_64.txt
index bfda437b594c..a32eff50d7c4 100644
--- a/ydb/core/tx/datashard/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/CMakeLists.linux-x86_64.txt
@@ -34,6 +34,7 @@ add_subdirectory(ut_rs)
 add_subdirectory(ut_sequence)
 add_subdirectory(ut_snapshot)
 add_subdirectory(ut_stats)
+add_subdirectory(ut_trace)
 add_subdirectory(ut_upload_rows)
 add_subdirectory(ut_volatile)
 add_subdirectory(ut_write)
@@ -85,12 +86,6 @@ get_built_tool_path(
   tools/enum_parser/enum_parser
   enum_parser
 )
-get_built_tool_path(
-  TOOL_enum_parser_bin
-  TOOL_enum_parser_dependency
-  tools/enum_parser/enum_parser
-  enum_parser
-)
 get_built_tool_path(
   TOOL_rescompiler_bin
   TOOL_rescompiler_dependency
@@ -124,10 +119,11 @@ target_link_libraries(core-tx-datashard PUBLIC
   cpp-string_utils-quote
   ydb-core-actorlib_impl
   ydb-core-base
+  ydb-core-change_exchange
   ydb-core-engine
   core-engine-minikql
   ydb-core-formats
-  ydb-core-io_formats
+  core-io_formats-ydb_dump
   core-kqp-runtime
   core-persqueue-partition_key_range
   core-persqueue-writer
@@ -149,6 +145,35 @@ target_link_libraries(core-tx-datashard PUBLIC
   ydb-library-chunks_limiter
 )
 target_sources(core-tx-datashard PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__engine_host.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_locks_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_locks.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_trans_queue.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_outreadset.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_active_transaction.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_direct_transaction.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_failpoints.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_dep_tracker.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_pipeline.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_user_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_user_table.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp_compute.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_read_operation.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_txs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit_ctors.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit_kind.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_iface.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_conflicts.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/operation.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/progress_queue.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/read_table_scan.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/read_iterator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/setup_sys_locks.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/alter_cdc_stream_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/alter_table_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/backup_restore_common.cpp
@@ -174,8 +199,6 @@ target_sources(core-tx-datashard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_async_index.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_cdc_stream.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_common_ops.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_monitoring.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_commit_writes_tx_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_data_tx_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_distributed_erase_tx_unit.cpp
@@ -281,9 +304,11 @@ target_sources(core-tx-datashard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_scan.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finalize_build_index_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finish_propose_unit.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finish_propose_write_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/follower_edge.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/initiate_build_index_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_conflicts.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_validator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/load_and_wait_in_rs_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/load_tx_details_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/make_scan_snapshot_unit.cpp
@@ -336,11 +361,6 @@ generate_enum_serilization(core-tx-datashard
   INCLUDE_HEADERS
   ydb/core/tx/datashard/change_exchange.h
 )
-generate_enum_serilization(core-tx-datashard
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_record.h
-  INCLUDE_HEADERS
-  ydb/core/tx/datashard/change_record.h
-)
 generate_enum_serilization(core-tx-datashard
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard.h
   INCLUDE_HEADERS
@@ -398,10 +418,11 @@ target_link_libraries(core-tx-datashard.global PUBLIC
   cpp-string_utils-quote
   ydb-core-actorlib_impl
   ydb-core-base
+  ydb-core-change_exchange
   ydb-core-engine
   core-engine-minikql
   ydb-core-formats
-  ydb-core-io_formats
+  core-io_formats-ydb_dump
   core-kqp-runtime
   core-persqueue-partition_key_range
   core-persqueue-writer
diff --git a/ydb/core/tx/datashard/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/CMakeLists.windows-x86_64.txt
index f77a673de3d5..e9568610daf1 100644
--- a/ydb/core/tx/datashard/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/CMakeLists.windows-x86_64.txt
@@ -34,6 +34,7 @@ add_subdirectory(ut_rs)
 add_subdirectory(ut_sequence)
 add_subdirectory(ut_snapshot)
 add_subdirectory(ut_stats)
+add_subdirectory(ut_trace)
 add_subdirectory(ut_upload_rows)
 add_subdirectory(ut_volatile)
 add_subdirectory(ut_write)
@@ -85,12 +86,6 @@ get_built_tool_path(
   tools/enum_parser/enum_parser
   enum_parser
 )
-get_built_tool_path(
-  TOOL_enum_parser_bin
-  TOOL_enum_parser_dependency
-  tools/enum_parser/enum_parser
-  enum_parser
-)
 get_built_tool_path(
   TOOL_rescompiler_bin
   TOOL_rescompiler_dependency
@@ -124,10 +119,11 @@ target_link_libraries(core-tx-datashard PUBLIC
   cpp-string_utils-quote
   ydb-core-actorlib_impl
   ydb-core-base
+  ydb-core-change_exchange
   ydb-core-engine
   core-engine-minikql
   ydb-core-formats
-  ydb-core-io_formats
+  core-io_formats-ydb_dump
   core-kqp-runtime
   core-persqueue-partition_key_range
   core-persqueue-writer
@@ -149,6 +145,35 @@ target_link_libraries(core-tx-datashard PUBLIC
   ydb-library-chunks_limiter
 )
 target_sources(core-tx-datashard PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard__engine_host.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_locks_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_locks.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_trans_queue.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_outreadset.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_active_transaction.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_direct_transaction.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_failpoints.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_dep_tracker.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_pipeline.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_user_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_user_table.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp_compute.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_kqp.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_read_operation.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_txs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit_ctors.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/execution_unit_kind.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_iface.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_conflicts.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/operation.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/progress_queue.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/read_table_scan.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/read_iterator.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/setup_sys_locks.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/alter_cdc_stream_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/alter_table_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/backup_restore_common.cpp
@@ -174,8 +199,6 @@ target_sources(core-tx-datashard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_async_index.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_cdc_stream.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_common_ops.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_sender_monitoring.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_commit_writes_tx_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_data_tx_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/check_distributed_erase_tx_unit.cpp
@@ -281,9 +304,11 @@ target_sources(core-tx-datashard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/export_scan.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finalize_build_index_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finish_propose_unit.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/finish_propose_write_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/follower_edge.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/initiate_build_index_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_conflicts.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/key_validator.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/load_and_wait_in_rs_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/load_tx_details_unit.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/make_scan_snapshot_unit.cpp
@@ -331,11 +356,6 @@ generate_enum_serilization(core-tx-datashard
   INCLUDE_HEADERS
   ydb/core/tx/datashard/change_exchange.h
 )
-generate_enum_serilization(core-tx-datashard
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/change_record.h
-  INCLUDE_HEADERS
-  ydb/core/tx/datashard/change_record.h
-)
 generate_enum_serilization(core-tx-datashard
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard.h
   INCLUDE_HEADERS
@@ -393,10 +413,11 @@ target_link_libraries(core-tx-datashard.global PUBLIC
   cpp-string_utils-quote
   ydb-core-actorlib_impl
   ydb-core-base
+  ydb-core-change_exchange
   ydb-core-engine
   core-engine-minikql
   ydb-core-formats
-  ydb-core-io_formats
+  core-io_formats-ydb_dump
   core-kqp-runtime
   core-persqueue-partition_key_range
   core-persqueue-writer
diff --git a/ydb/core/tx/datashard/build_index.cpp b/ydb/core/tx/datashard/build_index.cpp
index f76f078be9a5..c9eaf91699b5 100644
--- a/ydb/core/tx/datashard/build_index.cpp
+++ b/ydb/core/tx/datashard/build_index.cpp
@@ -328,7 +328,7 @@ class TBuildIndexScan : public TActor, public NTable::IScan {
 
     EScan Seek(TLead& lead, ui64 seq) noexcept override {
         auto ctx = TActivationContext::AsActorContext().MakeFor(SelfId());
-        LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD,
+        LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD,
                     "Seek no " << seq << " " << Debug());
         if (seq) {
             if (!WriteBuf.IsEmpty()) {
@@ -367,7 +367,7 @@ class TBuildIndexScan : public TActor, public NTable::IScan {
 
     EScan Feed(TArrayRef key, const TRow& row) noexcept override {
         auto ctx = TActivationContext::AsActorContext().MakeFor(SelfId());
-        LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD,
+        LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD,
                     "Feed key " << DebugPrintPoint(KeyTypes, key, *AppData()->TypeRegistry)
                                 << " " << Debug());
 
diff --git a/ydb/core/tx/datashard/cdc_stream_scan.cpp b/ydb/core/tx/datashard/cdc_stream_scan.cpp
index 09bed6daf3b1..03d487ad2b45 100644
--- a/ydb/core/tx/datashard/cdc_stream_scan.cpp
+++ b/ydb/core/tx/datashard/cdc_stream_scan.cpp
@@ -3,13 +3,14 @@
 #include "datashard_impl.h"
 
 #include 
+#include 
 
 #include 
 #include 
 
-#define LOG_D(stream) LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, "[CdcStreamScan] " << stream)
-#define LOG_I(stream) LOG_INFO_S(ctx, NKikimrServices::TX_DATASHARD, "[CdcStreamScan] " << stream)
-#define LOG_W(stream) LOG_WARN_S(ctx, NKikimrServices::TX_DATASHARD, "[CdcStreamScan] " << stream)
+#define LOG_D(stream) LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, "[CdcStreamScan][" << TabletID() << "] " << stream)
+#define LOG_I(stream) LOG_INFO_S(ctx, NKikimrServices::TX_DATASHARD, "[CdcStreamScan][" << TabletID() << "] " << stream)
+#define LOG_W(stream) LOG_WARN_S(ctx, NKikimrServices::TX_DATASHARD, "[CdcStreamScan][" << TabletID() << "] " << stream)
 
 namespace NKikimr::NDataShard {
 
@@ -17,6 +18,11 @@ using namespace NActors;
 using namespace NTable;
 using namespace NTabletFlatExecutor;
 
+void TCdcStreamScanManager::TStats::Serialize(NKikimrTxDataShard::TEvCdcStreamScanResponse_TStats& proto) const {
+    proto.SetRowsProcessed(RowsProcessed);
+    proto.SetBytesProcessed(BytesProcessed);
+}
+
 void TCdcStreamScanManager::Reset() {
     Scans.clear();
     TxIdToPathId.clear();
@@ -95,6 +101,7 @@ void TCdcStreamScanManager::Complete(const TPathId& streamPathId) {
         return;
     }
 
+    CompletedScans[streamPathId] = it->second.Stats;
     TxIdToPathId.erase(it->second.TxId);
     Scans.erase(it);
 }
@@ -104,6 +111,15 @@ void TCdcStreamScanManager::Complete(ui64 txId) {
     Complete(TxIdToPathId.at(txId));
 }
 
+bool TCdcStreamScanManager::IsCompleted(const TPathId& streamPathId) const {
+    return CompletedScans.contains(streamPathId);
+}
+
+const TCdcStreamScanManager::TStats& TCdcStreamScanManager::GetCompletedStats(const TPathId& streamPathId) const {
+    Y_ABORT_UNLESS(CompletedScans.contains(streamPathId));
+    return CompletedScans.at(streamPathId);
+}
+
 TCdcStreamScanManager::TScanInfo* TCdcStreamScanManager::Get(const TPathId& streamPathId) {
     return Scans.FindPtr(streamPathId);
 }
@@ -203,6 +219,10 @@ class TDataShard::TTxCdcStreamScanProgress
         return row;
     }
 
+    ui64 TabletID() const {
+        return Self->TabletID();
+    }
+
 public:
     explicit TTxCdcStreamScanProgress(TDataShard* self, TDataShard::TEvPrivate::TEvCdcStreamScanProgress::TPtr ev)
         : TBase(self)
@@ -213,7 +233,7 @@ class TDataShard::TTxCdcStreamScanProgress
     TTxType GetTxType() const override { return TXTYPE_CDC_STREAM_SCAN_PROGRESS; }
 
     bool Execute(TTransactionContext& txc, const TActorContext& ctx) override {
-        const auto& ev = *Request->Get();
+        auto& ev = *Request->Get();
         const auto& tablePathId = ev.TablePathId;
         const auto& streamPathId = ev.StreamPathId;
         const auto& readVersion = ev.ReadVersion;
@@ -238,7 +258,25 @@ class TDataShard::TTxCdcStreamScanProgress
         }
 
         ChangeRecords.clear();
-        if (Self->CheckChangesQueueOverflow()) {
+
+        if (!ev.ReservationCookie) {
+            ev.ReservationCookie = Self->ReserveChangeQueueCapacity(ev.Rows.size());
+        }
+
+        if (!ev.ReservationCookie) {
+            LOG_I("Cannot reserve change queue capacity");
+            Reschedule = true;
+            return true;
+        }
+
+        if (Self->GetFreeChangeQueueCapacity(ev.ReservationCookie) < ev.Rows.size()) {
+            LOG_I("Not enough change queue capacity");
+            Reschedule = true;
+            return true;
+        }
+
+        if (Self->CheckChangesQueueOverflow(ev.ReservationCookie)) {
+            LOG_I("Change queue overflow");
             Reschedule = true;
             return true;
         }
@@ -335,7 +373,7 @@ class TDataShard::TTxCdcStreamScanProgress
             LOG_I("Enqueue " << ChangeRecords.size() << " change record(s)"
                 << ": streamPathId# " << Request->Get()->StreamPathId);
 
-            Self->EnqueueChangeRecords(std::move(ChangeRecords));
+            Self->EnqueueChangeRecords(std::move(ChangeRecords), Request->Get()->ReservationCookie);
             ctx.Send(Request->Sender, Response.Release());
         } else if (Reschedule) {
             LOG_I("Re-schedule progress tx"
@@ -434,8 +472,7 @@ class TCdcStreamScan: public IActorCallback, public IScan {
         PathIdFromPathId(StreamPathId, response->Record.MutableStreamPathId());
         response->Record.SetStatus(status);
         response->Record.SetErrorDescription(error);
-        response->Record.MutableStats()->SetRowsProcessed(Stats.RowsProcessed);
-        response->Record.MutableStats()->SetBytesProcessed(Stats.BytesProcessed);
+        Stats.Serialize(*response->Record.MutableStats());
 
         Send(ReplyTo, std::move(response));
     }
@@ -550,14 +587,17 @@ class TDataShard::TTxCdcStreamScanRun: public TTransactionBase {
     TEvDataShard::TEvCdcStreamScanRequest::TPtr Request;
     THolder Response; // response to sender or forward to scanner
 
-    THolder MakeResponse(const TActorContext& ctx,
-            NKikimrTxDataShard::TEvCdcStreamScanResponse::EStatus status, const TString& error = {}) const
-    {
+    template 
+    THolder MakeResponse(const TActorContext& ctx, Args&&... args) const {
         return MakeHolder(Request->Sender, ctx.SelfID, new TEvDataShard::TEvCdcStreamScanResponse(
-            Request->Get()->Record, Self->TabletID(), status, error
+            Request->Get()->Record, Self->TabletID(), std::forward(args)...
         ));
     }
 
+    ui64 TabletID() const {
+        return Self->TabletID();
+    }
+
 public:
     explicit TTxCdcStreamScanRun(TDataShard* self, TEvDataShard::TEvCdcStreamScanRequest::TPtr ev)
         : TBase(self)
@@ -617,6 +657,11 @@ class TDataShard::TTxCdcStreamScanRun: public TTransactionBase {
             } else if (info->ScanId) {
                 return true; // nop, scan actor will report state when it starts
             }
+        } else if (Self->CdcStreamScanManager.IsCompleted(streamPathId)) {
+            Response = MakeResponse(ctx, NKikimrTxDataShard::TEvCdcStreamScanResponse::DONE);
+            Self->CdcStreamScanManager.GetCompletedStats(streamPathId).Serialize(
+                *Response->Get()->Record.MutableStats());
+            return true;
         } else if (Self->CdcStreamScanManager.Size()) {
             Response = MakeResponse(ctx, NKikimrTxDataShard::TEvCdcStreamScanResponse::OVERLOADED);
             return true;
@@ -696,8 +741,7 @@ void TDataShard::Handle(TEvDataShard::TEvCdcStreamScanRequest::TPtr& ev, const T
 
 void TDataShard::Handle(TEvPrivate::TEvCdcStreamScanRegistered::TPtr& ev, const TActorContext& ctx) {
     if (!CdcStreamScanManager.Has(ev->Get()->TxId)) {
-        LOG_W("Unknown cdc stream scan actor registered"
-            << ": at: " << TabletID());
+        LOG_W("Unknown cdc stream scan actor registered");
         return;
     }
 
diff --git a/ydb/core/tx/datashard/cdc_stream_scan.h b/ydb/core/tx/datashard/cdc_stream_scan.h
index 11e3ebe7af04..eaa2460e149e 100644
--- a/ydb/core/tx/datashard/cdc_stream_scan.h
+++ b/ydb/core/tx/datashard/cdc_stream_scan.h
@@ -9,6 +9,10 @@
 #include 
 #include 
 
+namespace NKikimrTxDataShard {
+    class TEvCdcStreamScanResponse_TStats;
+}
+
 namespace NKikimr::NDataShard {
 
 class TCdcStreamScanManager {
@@ -16,6 +20,8 @@ class TCdcStreamScanManager {
     struct TStats {
         ui64 RowsProcessed = 0;
         ui64 BytesProcessed = 0;
+
+        void Serialize(NKikimrTxDataShard::TEvCdcStreamScanResponse_TStats& proto) const;
     };
 
 private:
@@ -39,6 +45,8 @@ class TCdcStreamScanManager {
 
     void Complete(const TPathId& streamPathId);
     void Complete(ui64 txId);
+    bool IsCompleted(const TPathId& streamPathId) const;
+    const TStats& GetCompletedStats(const TPathId& streamPathId) const;
 
     TScanInfo* Get(const TPathId& streamPathId);
     const TScanInfo* Get(const TPathId& streamPathId) const;
@@ -57,6 +65,7 @@ class TCdcStreamScanManager {
 
 private:
     THashMap Scans;
+    THashMap CompletedScans;
     THashMap TxIdToPathId;
 };
 
diff --git a/ydb/core/tx/datashard/create_table_unit.cpp b/ydb/core/tx/datashard/create_table_unit.cpp
index 3f1a08d4dfc9..61d1cfc97c92 100644
--- a/ydb/core/tx/datashard/create_table_unit.cpp
+++ b/ydb/core/tx/datashard/create_table_unit.cpp
@@ -86,6 +86,7 @@ EExecutionStatus TCreateTableUnit::Execute(TOperation::TPtr op,
         txc.DB.NoMoreReadsForTx();
         DataShard.SetPersistState(TShardState::Ready, txc);
         DataShard.CheckMvccStateChangeCanStart(ctx); // Recheck
+        DataShard.SendRegistrationRequestTimeCast(ctx);
     }
 
     return EExecutionStatus::DelayCompleteNoMoreRestarts;
diff --git a/ydb/core/tx/datashard/datashard.cpp b/ydb/core/tx/datashard/datashard.cpp
index f71f7231e516..e5d09702fb17 100644
--- a/ydb/core/tx/datashard/datashard.cpp
+++ b/ydb/core/tx/datashard/datashard.cpp
@@ -1,5 +1,6 @@
 #include "datashard_impl.h"
 #include "datashard_txs.h"
+#include "datashard_locks_db.h"
 #include "probes.h"
 
 #include 
@@ -226,41 +227,18 @@ void TDataShard::OnStopGuardStarting(const TActorContext &ctx) {
     // Handle immediate ops that have completed BuildAndWaitDependencies
     for (const auto &kv : Pipeline.GetImmediateOps()) {
         const auto &op = kv.second;
-        // Send reject result immediately, because we cannot control when
-        // a new datashard tablet may start and block us from commiting
-        // anything new. The usual progress queue is too slow for that.
-        if (!op->Result() && !op->HasResultSentFlag()) {
-            auto kind = static_cast(op->GetKind());
-            auto rejectStatus = NKikimrTxDataShard::TEvProposeTransactionResult::OVERLOADED;
-            TString rejectReason = TStringBuilder()
-                    << "Rejecting immediate tx "
-                    << op->GetTxId()
-                    << " because datashard "
-                    << TabletID()
-                    << " is restarting";
-            auto result = MakeHolder(
-                    kind, TabletID(), op->GetTxId(), rejectStatus);
-            result->AddError(NKikimrTxDataShard::TError::WRONG_SHARD_STATE, rejectReason);
-            LOG_NOTICE_S(ctx, NKikimrServices::TX_DATASHARD, rejectReason);
-
-            ctx.Send(op->GetTarget(), result.Release(), 0, op->GetCookie());
-
-            IncCounter(COUNTER_PREPARE_OVERLOADED);
-            IncCounter(COUNTER_PREPARE_COMPLETE);
-            op->SetResultSentFlag();
+        if (op->OnStopping(*this, ctx)) {
+            Pipeline.AddCandidateOp(op);
+            PlanQueue.Progress(ctx);
         }
-        // Add op to candidates because IsReadyToExecute just became true
-        Pipeline.AddCandidateOp(op);
-        PlanQueue.Progress(ctx);
     }
 
     // Handle prepared ops by notifying about imminent shutdown
     for (const auto &kv : TransQueue.GetTxsInFly()) {
         const auto &op = kv.second;
-        if (op->GetTarget() && !op->HasCompletedFlag()) {
-            auto notify = MakeHolder(
-                TabletID(), op->GetTxId());
-            ctx.Send(op->GetTarget(), notify.Release(), 0, op->GetCookie());
+        if (op->OnStopping(*this, ctx)) {
+            Pipeline.AddCandidateOp(op);
+            PlanQueue.Progress(ctx);
         }
     }
 }
@@ -421,8 +399,23 @@ void TDataShard::SendRegistrationRequestTimeCast(const TActorContext &ctx) {
     if (RegistrationSended)
         return;
 
-    if (!ProcessingParams)
+    if (!ProcessingParams) {
+        LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, TabletID()
+            << " not sending time cast registration request in state "
+            << DatashardStateName(State)
+            << ": missing processing params");
         return;
+    }
+
+    if (State == TShardState::WaitScheme ||
+        State == TShardState::SplitDstReceivingSnapshot)
+    {
+        // We don't have all the necessary info yet
+        LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, TabletID()
+            << " not sending time cast registration request in state "
+            << DatashardStateName(State));
+        return;
+    }
 
     LOG_INFO_S(ctx, NKikimrServices::TX_DATASHARD, "Send registration request to time cast "
          << DatashardStateName(State) << " tabletId " << TabletID()
@@ -446,6 +439,29 @@ void TDataShard::SendRegistrationRequestTimeCast(const TActorContext &ctx) {
     }
 }
 
+class TDataShard::TSendArbiterReadSets final : public IVolatileTxCallback {
+public:
+    TSendArbiterReadSets(TDataShard* self, TVector>&& readSets)
+        : Self(self)
+        , ReadSets(std::move(readSets))
+    {}
+
+    void OnCommit(ui64) override {
+        // The transaction is persistent and committed
+        // Arbiter must now send its outgoing readsets
+        Self->SendReadSets(TActivationContext::ActorContextFor(Self->SelfId()), std::move(ReadSets));
+    }
+
+    void OnAbort(ui64) override {
+        // ReadSets are persistently replaced on abort and sent by volatile tx manager
+        // Previously generated readsets must be ignored
+    }
+
+private:
+    TDataShard* Self;
+    TVector> ReadSets;
+};
+
 void TDataShard::PrepareAndSaveOutReadSets(ui64 step,
                                                   ui64 txId,
                                                   const TMap, TString>& txOutReadSets,
@@ -458,6 +474,11 @@ void TDataShard::PrepareAndSaveOutReadSets(ui64 step,
     if (txOutReadSets.empty())
         return;
 
+    auto* info = VolatileTxManager.FindByTxId(txId);
+    if (info && !(info->IsArbiter && info->State != EVolatileTxState::Committed)) {
+        info = nullptr;
+    }
+
     ui64 prevSeqno = NextSeqno;
     for (auto& kv : txOutReadSets) {
         ui64 source = kv.first.first;
@@ -467,12 +488,21 @@ void TDataShard::PrepareAndSaveOutReadSets(ui64 step,
             ui64 seqno = NextSeqno++;
             OutReadSets.SaveReadSet(db, seqno, step, rsKey, kv.second);
             preparedRS.push_back(PrepareReadSet(step, txId, source, target, kv.second, seqno));
+            if (info) {
+                // ReadSet seqnos that must be replaced on abort
+                info->ArbiterReadSets.push_back(seqno);
+            }
         }
     }
 
     if (NextSeqno != prevSeqno) {
         PersistSys(db, Schema::Sys_NextSeqno, NextSeqno);
     }
+
+    if (info) {
+        VolatileTxManager.AttachVolatileTxCallback(txId, new TSendArbiterReadSets(this, std::move(preparedRS)));
+        preparedRS.clear();
+    }
 }
 
 void TDataShard::SendDelayedAcks(const TActorContext& ctx, TVector>& delayedAcks) const {
@@ -720,6 +750,39 @@ void TDataShard::PersistChangeRecord(NIceDb::TNiceDb& db, const TChangeRecord& r
             NIceDb::TUpdate(record.GetKind()),
             NIceDb::TUpdate(record.GetBody()),
             NIceDb::TUpdate(record.GetSource()));
+
+        auto res = ChangesQueue.emplace(record.GetOrder(), record);
+        Y_VERIFY_S(res.second, "Duplicate change record: " << record.GetOrder());
+
+        if (res.first->second.SchemaVersion) {
+            res.first->second.SchemaSnapshotAcquired = SchemaSnapshotManager.AcquireReference(
+                TSchemaSnapshotKey(res.first->second.TableId, res.first->second.SchemaVersion));
+        }
+
+        if (CommittingChangeRecords.empty()) {
+            db.GetDatabase().OnCommit([this] {
+                CommittingChangeRecords.clear();
+            });
+            db.GetDatabase().OnRollback([this] {
+                for (const auto order : CommittingChangeRecords) {
+                    auto cIt = ChangesQueue.find(order);
+                    Y_VERIFY_S(cIt != ChangesQueue.end(), "Cannot find change record: " << order);
+
+                    if (cIt->second.SchemaSnapshotAcquired) {
+                        const auto snapshotKey = TSchemaSnapshotKey(cIt->second.TableId, cIt->second.SchemaVersion);
+                        if (const auto last = SchemaSnapshotManager.ReleaseReference(snapshotKey)) {
+                            ScheduleRemoveSchemaSnapshot(snapshotKey);
+                        }
+                    }
+
+                    ChangesQueue.erase(cIt);
+                }
+
+                CommittingChangeRecords.clear();
+            });
+        }
+
+        CommittingChangeRecords.push_back(record.GetOrder());
     } else {
         auto& state = LockChangeRecords[lockId];
         Y_ABORT_UNLESS(state.Changes.empty() || state.Changes.back().LockOffset < record.GetLockOffset(),
@@ -799,6 +862,14 @@ void TDataShard::CommitLockChangeRecords(NIceDb::TNiceDb& db, ui64 lockId, ui64
         committed.Step = rowVersion.Step;
         committed.TxId = rowVersion.TxId;
         collected.push_back(committed);
+
+        auto res = ChangesQueue.emplace(committed.Order, committed);
+        Y_VERIFY_S(res.second, "Duplicate change record: " << committed.Order);
+
+        if (res.first->second.SchemaVersion) {
+            res.first->second.SchemaSnapshotAcquired = SchemaSnapshotManager.AcquireReference(
+                TSchemaSnapshotKey(res.first->second.TableId, res.first->second.SchemaVersion));
+        }
     }
 
     Y_VERIFY_S(!CommittedLockChangeRecords.contains(lockId), "Cannot commit lock " << lockId << " more than once");
@@ -825,7 +896,26 @@ void TDataShard::CommitLockChangeRecords(NIceDb::TNiceDb& db, ui64 lockId, ui64
         LockChangeRecords.erase(it);
     });
     db.GetDatabase().OnRollback([this, lockId]() {
-        CommittedLockChangeRecords.erase(lockId);
+        auto it = CommittedLockChangeRecords.find(lockId);
+        Y_VERIFY_S(it != CommittedLockChangeRecords.end(), "Unexpected failure to find lockId# " << lockId);
+
+        for (size_t i = 0; i < it->second.Count; ++i) {
+            const ui64 order = it->second.Order + i;
+
+            auto cIt = ChangesQueue.find(order);
+            Y_VERIFY_S(cIt != ChangesQueue.end(), "Cannot find change record: " << order);
+
+            if (cIt->second.SchemaSnapshotAcquired) {
+                const auto snapshotKey = TSchemaSnapshotKey(cIt->second.TableId, cIt->second.SchemaVersion);
+                if (const auto last = SchemaSnapshotManager.ReleaseReference(snapshotKey)) {
+                    ScheduleRemoveSchemaSnapshot(snapshotKey);
+                }
+            }
+
+            ChangesQueue.erase(cIt);
+        }
+
+        CommittedLockChangeRecords.erase(it);
     });
 }
 
@@ -859,7 +949,6 @@ void TDataShard::RemoveChangeRecord(NIceDb::TNiceDb& db, ui64 order) {
 
     auto it = ChangesQueue.find(order);
     if (it == ChangesQueue.end()) {
-        Y_VERIFY_DEBUG_S(false, "Trying to remove non-enqueud record: " << order);
         return;
     }
 
@@ -887,23 +976,16 @@ void TDataShard::RemoveChangeRecord(NIceDb::TNiceDb& db, ui64 order) {
     ChangesQueueBytes -= record.BodySize;
 
     if (record.SchemaSnapshotAcquired) {
-        Y_ABORT_UNLESS(record.TableId);
-        auto tableIt = TableInfos.find(record.TableId.LocalPathId);
-
-        if (tableIt != TableInfos.end()) {
-            const auto snapshotKey = TSchemaSnapshotKey(record.TableId, record.SchemaVersion);
-            const bool last = SchemaSnapshotManager.ReleaseReference(snapshotKey);
-
-            if (last) {
-                const auto* snapshot = SchemaSnapshotManager.FindSnapshot(snapshotKey);
-                Y_ABORT_UNLESS(snapshot);
+        const auto snapshotKey = TSchemaSnapshotKey(record.TableId, record.SchemaVersion);
+        if (const bool last = SchemaSnapshotManager.ReleaseReference(snapshotKey)) {
+            ScheduleRemoveSchemaSnapshot(snapshotKey);
+        }
+    }
 
-                if (snapshot->Schema->GetTableSchemaVersion() < tableIt->second->GetTableSchemaVersion()) {
-                    SchemaSnapshotManager.RemoveShapshot(db, snapshotKey);
-                }
-            }
-        } else {
-            Y_DEBUG_ABORT_UNLESS(State == TShardState::PreOffline);
+    if (auto rIt = ChangeQueueReservations.find(record.ReservationCookie); rIt != ChangeQueueReservations.end()) {
+        --ChangeQueueReservedCapacity;
+        if (!--rIt->second) {
+            ChangeQueueReservations.erase(rIt);
         }
     }
 
@@ -912,11 +994,12 @@ void TDataShard::RemoveChangeRecord(NIceDb::TNiceDb& db, ui64 order) {
 
     IncCounter(COUNTER_CHANGE_RECORDS_REMOVED);
     SetCounter(COUNTER_CHANGE_QUEUE_SIZE, ChangesQueue.size());
+    SetCounter(COUNTER_CHANGE_QUEUE_RESERVED_CAPACITY, ChangeQueueReservedCapacity);
 
     CheckChangesQueueNoOverflow();
 }
 
-void TDataShard::EnqueueChangeRecords(TVector&& records) {
+void TDataShard::EnqueueChangeRecords(TVector&& records, ui64 cookie, bool afterMove) {
     if (!records) {
         return;
     }
@@ -936,34 +1019,71 @@ void TDataShard::EnqueueChangeRecords(TVectorTimeProvider->Now();
     TVector forward(Reserve(records.size()));
     for (const auto& record : records) {
+        auto it = ChangesQueue.find(record.Order);
+        if (it == ChangesQueue.end()) {
+            Y_ABORT_UNLESS(afterMove);
+            continue;
+        }
+
         forward.emplace_back(record.Order, record.PathId, record.BodySize);
 
-        auto res = ChangesQueue.emplace(
-            std::piecewise_construct,
-            std::forward_as_tuple(record.Order),
-            std::forward_as_tuple(record, now)
-        );
-        if (res.second) {
-            ChangesList.PushBack(&res.first->second);
+        it->second.EnqueuedAt = now;
+        it->second.ReservationCookie = cookie;
+        ChangesList.PushBack(&it->second);
 
-            Y_ABORT_UNLESS(ChangesQueueBytes <= (Max() - record.BodySize));
-            ChangesQueueBytes += record.BodySize;
+        Y_ABORT_UNLESS(ChangesQueueBytes <= (Max() - record.BodySize));
+        ChangesQueueBytes += record.BodySize;
+    }
 
-            if (record.SchemaVersion) {
-                res.first->second.SchemaSnapshotAcquired = SchemaSnapshotManager.AcquireReference(
-                    TSchemaSnapshotKey(record.TableId, record.SchemaVersion));
-            }
-        }
+    if (auto it = ChangeQueueReservations.find(cookie); it != ChangeQueueReservations.end()) {
+        Y_ABORT_UNLESS(!afterMove);
+        ChangeQueueReservedCapacity -= it->second;
+        ChangeQueueReservedCapacity += records.size();
     }
 
     UpdateChangeExchangeLag(now);
     IncCounter(COUNTER_CHANGE_RECORDS_ENQUEUED, forward.size());
     SetCounter(COUNTER_CHANGE_QUEUE_SIZE, ChangesQueue.size());
+    SetCounter(COUNTER_CHANGE_QUEUE_RESERVED_CAPACITY, ChangeQueueReservedCapacity);
 
     Y_ABORT_UNLESS(OutChangeSender);
     Send(OutChangeSender, new NChangeExchange::TEvChangeExchange::TEvEnqueueRecords(std::move(forward)));
 }
 
+ui32 TDataShard::GetFreeChangeQueueCapacity(ui64 cookie) {
+    const auto sizeLimit = AppData()->DataShardConfig.GetChangesQueueItemsLimit();
+    if (sizeLimit < ChangesQueue.size()) {
+        return 0;
+    }
+
+    const auto free = Min(sizeLimit - ChangesQueue.size(), Max(sizeLimit / 2, 1ul));
+
+    ui32 reserved = ChangeQueueReservedCapacity;
+    if (auto it = ChangeQueueReservations.find(cookie); it != ChangeQueueReservations.end()) {
+        reserved -= it->second;
+    }
+
+    if (free < reserved) {
+        return 0;
+    }
+
+    return free - reserved;
+}
+
+ui64 TDataShard::ReserveChangeQueueCapacity(ui32 capacity) {
+    const auto sizeLimit = AppData()->DataShardConfig.GetChangesQueueItemsLimit();
+    if (Max(sizeLimit / 2, 1ul) < ChangeQueueReservedCapacity) {
+        return 0;
+    }
+
+    const auto cookie = NextChangeQueueReservationCookie++;
+    ChangeQueueReservations.emplace(cookie, capacity);
+    ChangeQueueReservedCapacity += capacity;
+    SetCounter(COUNTER_CHANGE_QUEUE_RESERVED_CAPACITY, ChangeQueueReservedCapacity);
+
+    return cookie;
+}
+
 void TDataShard::UpdateChangeExchangeLag(TInstant now) {
     if (!ChangesList.Empty()) {
         const auto* front = ChangesList.Front();
@@ -1082,6 +1202,14 @@ bool TDataShard::LoadChangeRecords(NIceDb::TNiceDb& db, TVectorsecond.SchemaVersion) {
+            res.first->second.SchemaSnapshotAcquired = SchemaSnapshotManager.AcquireReference(
+                TSchemaSnapshotKey(res.first->second.TableId, res.first->second.SchemaVersion));
+        }
+
         if (!rowset.Next()) {
             return false;
         }
@@ -1180,6 +1308,14 @@ bool TDataShard::LoadChangeRecordCommits(NIceDb::TNiceDb& db, TVectorsecond.SchemaVersion) {
+                res.first->second.SchemaSnapshotAcquired = SchemaSnapshotManager.AcquireReference(
+                    TSchemaSnapshotKey(res.first->second.TableId, res.first->second.SchemaVersion));
+            }
         }
 
         LockChangeRecords.erase(lockId);
@@ -1238,6 +1374,51 @@ void TDataShard::ScheduleRemoveAbandonedLockChanges() {
     }
 }
 
+void TDataShard::ScheduleRemoveSchemaSnapshot(const TSchemaSnapshotKey& key) {
+    Y_ABORT_UNLESS(!SchemaSnapshotManager.HasReference(key));
+
+    const auto* snapshot = SchemaSnapshotManager.FindSnapshot(key);
+    Y_ABORT_UNLESS(snapshot);
+
+    auto it = TableInfos.find(key.PathId);
+    if (it == TableInfos.end()) {
+        Y_DEBUG_ABORT_UNLESS(State == TShardState::PreOffline);
+        return;
+    }
+
+    if (snapshot->Schema->GetTableSchemaVersion() < it->second->GetTableSchemaVersion()) {
+        bool wasEmpty = PendingSchemaSnapshotsToGc.empty();
+        PendingSchemaSnapshotsToGc.push_back(key);
+        if (wasEmpty) {
+            Send(SelfId(), new TEvPrivate::TEvRemoveSchemaSnapshots);
+        }
+    }
+}
+
+void TDataShard::ScheduleRemoveAbandonedSchemaSnapshots() {
+    bool wasEmpty = PendingSchemaSnapshotsToGc.empty();
+
+    for (const auto& [key, snapshot] : SchemaSnapshotManager.GetSnapshots()) {
+        auto it = TableInfos.find(key.PathId);
+        if (it == TableInfos.end()) {
+            Y_DEBUG_ABORT_UNLESS(State == TShardState::PreOffline);
+            break;
+        }
+        if (SchemaSnapshotManager.HasReference(key)) {
+            continue;
+        }
+        if (snapshot.Schema->GetTableSchemaVersion() >= it->second->GetTableSchemaVersion()) {
+            continue;
+        }
+
+        PendingSchemaSnapshotsToGc.push_back(key);
+    }
+
+    if (wasEmpty && !PendingSchemaSnapshotsToGc.empty()) {
+        Send(SelfId(), new TEvPrivate::TEvRemoveSchemaSnapshots);
+    }
+}
+
 void TDataShard::PersistSchemeTxResult(NIceDb::TNiceDb &db, const TSchemaOperation &op) {
     db.Table().Key(op.TxId).Update(
         NIceDb::TUpdate(op.Success),
@@ -1451,8 +1632,18 @@ void TDataShard::AddSchemaSnapshot(const TPathId& pathId, ui64 tableSchemaVersio
     Y_ABORT_UNLESS(TableInfos.contains(pathId.LocalPathId));
     auto tableInfo = TableInfos[pathId.LocalPathId];
 
-    const auto key = TSchemaSnapshotKey(pathId.OwnerId, pathId.LocalPathId, tableSchemaVersion);
+    const auto key = TSchemaSnapshotKey(pathId, tableSchemaVersion);
     SchemaSnapshotManager.AddSnapshot(txc.DB, key, TSchemaSnapshot(tableInfo, step, txId));
+
+    const auto& snapshots = SchemaSnapshotManager.GetSnapshots();
+    for (auto it = snapshots.lower_bound(TSchemaSnapshotKey(pathId, 1)); it != snapshots.end(); ++it) {
+        if (it->first == key) {
+            break;
+        }
+        if (!SchemaSnapshotManager.HasReference(it->first)) {
+            ScheduleRemoveSchemaSnapshot(it->first);
+        }
+    }
 }
 
 void TDataShard::PersistLastLoanTableTid(NIceDb::TNiceDb& db, ui32 localTid) {
@@ -1552,7 +1743,9 @@ TUserTable::TPtr TDataShard::MoveUserTable(TOperation::TPtr op, const NKikimrTxD
     newTableInfo->StatsUpdateInProgress = false;
     newTableInfo->StatsNeedUpdate = true;
 
-    RemoveUserTable(prevId);
+    TDataShardLocksDb locksDb(*this, txc);
+
+    RemoveUserTable(prevId, &locksDb);
     AddUserTable(newId, newTableInfo);
 
     for (auto& [_, record] : ChangesQueue) {
@@ -1984,68 +2177,81 @@ TRowVersion TDataShard::GetMvccTxVersion(EMvccTxMode mode, TOperation* op) const
         }
     }
 
-    TRowVersion edge;
-    TRowVersion readEdge = Max(
-            SnapshotManager.GetCompleteEdge(),
-            SnapshotManager.GetUnprotectedReadEdge());
-    TRowVersion writeEdge = Max(readEdge, SnapshotManager.GetIncompleteEdge());
-    switch (mode) {
-        case EMvccTxMode::ReadOnly:
-            // With read-only transactions we don't need reads to include
-            // changes made at the incomplete edge, as that is a point where
-            // distributed transactions performed some reads, not writes.
-            // Since incomplete transactions are still inflight, the actual
-            // version will stick to the first incomplete transaction is queue,
-            // effectively reading non-repeatable state before that transaction.
-            edge = readEdge;
-            break;
-        case EMvccTxMode::ReadWrite:
-            // With read-write transactions we must choose a point that is
-            // greater than both complete and incomplete edges. The reason
-            // is that incomplete transactions performed some reads at that
-            // point and these snapshot points must be repeatable.
-            // Note that as soon as the first write past the IncompleteEdge
-            // happens it cements all distributed transactions up to that point
-            // as complete, so all future reads and writes are guaranteed to
-            // include that point as well.
-            edge = writeEdge;
-            break;
-    }
+    LOG_TRACE_S(*TlsActivationContext, NKikimrServices::TX_DATASHARD, "GetMvccTxVersion at " << TabletID()
+        << " CompleteEdge# " << SnapshotManager.GetCompleteEdge()
+        << " IncompleteEdge# " << SnapshotManager.GetIncompleteEdge()
+        << " UnprotectedReadEdge# " << SnapshotManager.GetUnprotectedReadEdge()
+        << " ImmediateWriteEdge# " << SnapshotManager.GetImmediateWriteEdge()
+        << " ImmediateWriteEdgeReplied# " << SnapshotManager.GetImmediateWriteEdgeReplied());
+
+    TRowVersion version = [&]() {
+        TRowVersion edge;
+        TRowVersion readEdge = Max(
+                SnapshotManager.GetCompleteEdge(),
+                SnapshotManager.GetUnprotectedReadEdge());
+        TRowVersion writeEdge = Max(readEdge, SnapshotManager.GetIncompleteEdge());
+        switch (mode) {
+            case EMvccTxMode::ReadOnly:
+                // With read-only transactions we don't need reads to include
+                // changes made at the incomplete edge, as that is a point where
+                // distributed transactions performed some reads, not writes.
+                // Since incomplete transactions are still inflight, the actual
+                // version will stick to the first incomplete transaction is queue,
+                // effectively reading non-repeatable state before that transaction.
+                edge = readEdge;
+                break;
+            case EMvccTxMode::ReadWrite:
+                // With read-write transactions we must choose a point that is
+                // greater than both complete and incomplete edges. The reason
+                // is that incomplete transactions performed some reads at that
+                // point and these snapshot points must be repeatable.
+                // Note that as soon as the first write past the IncompleteEdge
+                // happens it cements all distributed transactions up to that point
+                // as complete, so all future reads and writes are guaranteed to
+                // include that point as well.
+                edge = writeEdge;
+                break;
+        }
 
-    // If there's any planned operation that is above our edge, it would be a
-    // suitable version for a new immediate operation. We effectively try to
-    // execute "before" that point if possible.
-    if (auto nextOp = Pipeline.GetNextPlannedOp(edge.Step, edge.TxId))
-        return TRowVersion(nextOp->GetStep(), nextOp->GetTxId());
+        // If there's any planned operation that is above our edge, it would be a
+        // suitable version for a new immediate operation. We effectively try to
+        // execute "before" that point if possible.
+        if (auto nextOp = Pipeline.GetNextPlannedOp(edge.Step, edge.TxId))
+            return TRowVersion(nextOp->GetStep(), nextOp->GetTxId());
+
+        // Normally we stick transactions to the end of the last known mediator step
+        // Note this calculations only happen when we don't have distributed
+        // transactions left in queue, and we won't have any more transactions
+        // up to the current mediator time. The mediator time itself may be stale,
+        // in which case we may have evidence of its higher value via complete and
+        // incomplete edges above.
+        const ui64 mediatorStep = Max(MediatorTimeCastEntry ? MediatorTimeCastEntry->Get(TabletID()) : 0, writeEdge.Step);
+        TRowVersion mediatorEdge(mediatorStep, ::Max());
+
+        switch (mode) {
+            case EMvccTxMode::ReadOnly: {
+                // We read at the end of the current step
+                return mediatorEdge;
+            }
+
+            case EMvccTxMode::ReadWrite: {
+                // We write at the end of the current step, or the start of the next step when that's protected
+                return Max(mediatorEdge, writeEdge.Next());
+            }
+        }
 
-    // Normally we stick transactions to the end of the last known mediator step
-    // Note this calculations only happen when we don't have distributed
-    // transactions left in queue, and we won't have any more transactions
-    // up to the current mediator time. The mediator time itself may be stale,
-    // in which case we may have evidence of its higher value via complete and
-    // incomplete edges above.
-    const ui64 mediatorStep = Max(MediatorTimeCastEntry ? MediatorTimeCastEntry->Get(TabletID()) : 0, writeEdge.Step);
-    TRowVersion mediatorEdge(mediatorStep, ::Max());
+        Y_ABORT("unreachable");
+    }();
 
     switch (mode) {
         case EMvccTxMode::ReadOnly: {
-            // We want to include everything that was potentially confirmed to
-            // users, but we don't want to include anything that is not replied
-            // at the start of this read.
-            // Note it's only possible to have ImmediateWriteEdge > mediatorEdge
-            // when ImmediateWriteEdge == mediatorEdge + 1
-            return Max(mediatorEdge, SnapshotManager.GetImmediateWriteEdgeReplied());
+            // We must read all writes we have replied to already
+            return Max(version, SnapshotManager.GetImmediateWriteEdgeReplied());
         }
 
         case EMvccTxMode::ReadWrite: {
-            // We must use at least a previously used immediate write edge
-            // But we must also avoid trumpling over any unprotected mvcc
-            // snapshot reads that have occurred.
-            // Note it's only possible to go past the last known mediator step
-            // when we had an unprotected read, which itself happens at the
-            // last mediator step. So we may only ever have a +1 step, never
-            // anything more.
-            return Max(mediatorEdge, writeEdge.Next(), SnapshotManager.GetImmediateWriteEdge());
+            // We must never go backwards in our single-shard writes
+            return Max(version, SnapshotManager.GetImmediateWriteEdge());
         }
     }
 
@@ -2098,8 +2304,16 @@ TDataShard::TPromotePostExecuteEdges TDataShard::PromoteImmediatePostExecuteEdge
                 // We need to wait for completion until the flag is committed
                 res.WaitCompletion = true;
             }
+            LOG_TRACE_S(*TlsActivationContext, NKikimrServices::TX_DATASHARD, "PromoteImmediatePostExecuteEdges at " << TabletID()
+                << " promoting UnprotectedReadEdge to " << version);
             SnapshotManager.PromoteUnprotectedReadEdge(version);
 
+            // Make sure pending distributed transactions are marked incomplete,
+            // since we just protected up to and including version from writes,
+            // we need to make sure new immediate conflicting writes are blocked
+            // and don't perform writes with out-of-order versions.
+            res.HadWrites |= Pipeline.MarkPlannedLogicallyIncompleteUpTo(version, txc);
+
             // We want to promote the complete edge when protected reads are
             // used or when we're already writing something anyway.
             if (res.HadWrites) {
@@ -2260,6 +2474,19 @@ void TDataShard::SendAfterMediatorStepActivate(ui64 mediatorStep, const TActorCo
     for (auto it = MediatorDelayedReplies.begin(); it != MediatorDelayedReplies.end();) {
         const ui64 step = it->first.Step;
 
+        if (SrcSplitDescription) {
+            if (State == TShardState::SplitSrcSendingSnapshot ||
+                State == TShardState::SplitSrcWaitForPartitioningChanged ||
+                State == TShardState::PreOffline ||
+                State == TShardState::Offline)
+            {
+                // We cannot send replies, since dst shard is now in charge
+                // of keeping track of acknowledged writes. So we expect
+                // split src logic to reboot this shard later.
+                break;
+            }
+        }
+
         if (step <= mediatorStep) {
             SnapshotManager.PromoteImmediateWriteEdgeReplied(it->first);
             Send(it->second.Target, it->second.Event.Release(), 0, it->second.Cookie);
@@ -2292,6 +2519,31 @@ void TDataShard::SendAfterMediatorStepActivate(ui64 mediatorStep, const TActorCo
     EmitHeartbeats();
 }
 
+class TDataShard::TTxMediatorStateRestored : public TTransactionBase {
+public:
+    TTxMediatorStateRestored(TDataShard* self, ui64 readStep, ui64 observedStep)
+        : TTransactionBase(self)
+        , ReadStep(readStep)
+        , ObservedStep(observedStep)
+    {}
+
+    bool Execute(TTransactionContext& txc, const TActorContext&) override {
+        Y_ABORT_UNLESS(Self->MediatorStateRestoreTxPending);
+        Self->MediatorStateRestoreTxPending = false;
+
+        Self->FinishMediatorStateRestore(txc, ReadStep, ObservedStep);
+        return true;
+    }
+
+    void Complete(const TActorContext&) override {
+        // nothing
+    }
+
+private:
+    const ui64 ReadStep;
+    const ui64 ObservedStep;
+};
+
 void TDataShard::CheckMediatorStateRestored() {
     if (!MediatorStateWaiting ||
         !RegistrationSended ||
@@ -2299,16 +2551,11 @@ void TDataShard::CheckMediatorStateRestored() {
         CoordinatorSubscriptionsPending > 0 && CoordinatorPrevReadStepMax == Max())
     {
         // We are not waiting or not ready to make a decision
-        if (MediatorStateWaiting &&
-            MediatorTimeCastEntry &&
-            CoordinatorPrevReadStepMax == Max() &&
-            !MediatorStateBackupInitiated)
-        {
-            // It is possible we don't have coordinators with new protocol support
-            // Use a backup plan of acquiring a read snapshot for restoring the read step
-            Schedule(TDuration::MilliSeconds(50), new TEvPrivate::TEvMediatorRestoreBackup);
-            MediatorStateBackupInitiated = true;
-        }
+        return;
+    }
+
+    if (MediatorStateRestoreTxPending) {
+        // We already made a decision and are waiting for transaction to execute
         return;
     }
 
@@ -2327,13 +2574,16 @@ void TDataShard::CheckMediatorStateRestored() {
     // HEAD reads must include that in their results.
     const ui64 waitStep = CoordinatorPrevReadStepMax;
     const ui64 readStep = CoordinatorPrevReadStepMax;
-
-    LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::TX_DATASHARD, "CheckMediatorStateRestored: waitStep# " << waitStep << " readStep# " << readStep);
+    const ui64 observedStep = GetMaxObservedStep();
+    LOG_DEBUG_S(*TlsActivationContext, NKikimrServices::TX_DATASHARD, "CheckMediatorStateRestored at " << TabletID() << ":"
+        << " waitStep# " << waitStep
+        << " readStep# " << readStep
+        << " observedStep# " << observedStep);
 
     // WARNING: we must perform this check BEFORE we update unprotected read edge
     // We may enter this code path multiple times, and we expect that the above
     // read step may be refined while we wait based on pessimistic backup step.
-    if (GetMaxObservedStep() < waitStep) {
+    if (observedStep < waitStep) {
         // We need to wait until we observe mediator step that is at least
         // as large as the step we found.
         if (MediatorTimeCastWaitingSteps.insert(waitStep).second) {
@@ -2343,6 +2593,13 @@ void TDataShard::CheckMediatorStateRestored() {
         return;
     }
 
+    MediatorStateRestoreTxPending = true;
+    Execute(new TTxMediatorStateRestored(this, readStep, observedStep));
+}
+
+void TDataShard::FinishMediatorStateRestore(TTransactionContext& txc, ui64 readStep, ui64 observedStep) {
+    Y_ABORT_UNLESS(MediatorStateWaiting);
+
     // Using the inferred last read step we restore the pessimistic unprotected
     // read edge. Note we only need to do so if there have actually been any
     // unprotected reads in this datashard history. We also need to make sure
@@ -2354,7 +2611,12 @@ void TDataShard::CheckMediatorStateRestored() {
             SnapshotManager.GetImmediateWriteEdge().Step > SnapshotManager.GetCompleteEdge().Step
             ? SnapshotManager.GetImmediateWriteEdge().Prev()
             : TRowVersion::Min();
-        SnapshotManager.PromoteUnprotectedReadEdge(Max(lastReadEdge, preImmediateWriteEdge));
+        const TRowVersion edge = Max(lastReadEdge, preImmediateWriteEdge);
+        LOG_TRACE_S(*TlsActivationContext, NKikimrServices::TX_DATASHARD, "CheckMediatorStateRestored at " << TabletID()
+            << " promoting UnprotectedReadEdge to " << edge);
+        Pipeline.MarkPlannedLogicallyCompleteUpTo(edge, txc);
+        Pipeline.MarkPlannedLogicallyIncompleteUpTo(edge, txc);
+        SnapshotManager.PromoteUnprotectedReadEdge(edge);
     }
 
     // Promote the replied immediate write edge up to the currently observed step
@@ -2363,7 +2625,7 @@ void TDataShard::CheckMediatorStateRestored() {
     // data that is definitely not replied yet.
     if (SnapshotManager.GetImmediateWriteEdgeReplied() < SnapshotManager.GetImmediateWriteEdge()) {
         const ui64 writeStep = SnapshotManager.GetImmediateWriteEdge().Step;
-        const TRowVersion edge(GetMaxObservedStep(), Max());
+        const TRowVersion edge(observedStep, Max());
         SnapshotManager.PromoteImmediateWriteEdgeReplied(
             Min(edge, SnapshotManager.GetImmediateWriteEdge()));
         // Try to ensure writes become visible sooner rather than later
@@ -2500,6 +2762,10 @@ bool TDataShard::CheckDataTxReject(const TString& opDescr,
         rejectDescriptions.push_back(TStringBuilder()
             << "is in process of split opId " << DstSplitOpId
             << " state " << DatashardStateName(State));
+    } else if (State == TShardState::WaitScheme) {
+        reject = true;
+        rejectReasons |= ERejectReasons::WrongState;
+        rejectDescriptions.push_back("is not created yet");
     } else if (State == TShardState::PreOffline || State == TShardState::Offline) {
         reject = true;
         rejectStatus = NKikimrTxDataShard::TEvProposeTransactionResult::ERROR;
@@ -2662,6 +2928,11 @@ void TDataShard::Handle(TEvDataShard::TEvProposeTransaction::TPtr &ev, const TAc
     auto* msg = ev->Get();
     LWTRACK(ProposeTransactionRequest, msg->Orbit);
 
+    if (CheckDataTxRejectAndReply(ev, ctx)) {
+        IncCounter(COUNTER_PREPARE_REQUEST);
+        return;
+    }
+
     // Check if we need to delay an immediate transaction
     if (MediatorStateWaiting &&
         (ev->Get()->GetFlags() & TTxFlags::Immediate) &&
@@ -2694,10 +2965,6 @@ void TDataShard::Handle(TEvDataShard::TEvProposeTransaction::TPtr &ev, const TAc
 
     IncCounter(COUNTER_PREPARE_REQUEST);
 
-    if (CheckDataTxRejectAndReply(ev, ctx)) {
-        return;
-    }
-
     switch (ev->Get()->GetTxKind()) {
     case NKikimrTxDataShard::TX_KIND_DATA:
     case NKikimrTxDataShard::TX_KIND_SCAN:
@@ -2802,8 +3069,10 @@ void TDataShard::ProposeTransaction(TEvDataShard::TEvProposeTransaction::TPtr &&
         UpdateProposeQueueSize();
     } else {
         // Prepare planned transactions as soon as possible
-        NWilson::TSpan datashardTransactionSpan(TWilsonTablet::Tablet, std::move(ev->TraceId), "Datashard.Transaction", NWilson::EFlags::AUTO_END);
-        datashardTransactionSpan.Attribute("Shard", std::to_string(TabletID()));
+        NWilson::TSpan datashardTransactionSpan(TWilsonTablet::TabletTopLevel, std::move(ev->TraceId), "Datashard.Transaction", NWilson::EFlags::AUTO_END);
+        if (datashardTransactionSpan) {
+            datashardTransactionSpan.Attribute("Shard", std::to_string(TabletID()));
+        }
 
         Execute(new TTxProposeTransactionBase(this, std::move(ev), TAppData::TimeProvider->Now(), NextTieBreakerIndex++, /* delayed */ false, std::move(datashardTransactionSpan)), ctx);
     }
@@ -2823,8 +3092,10 @@ void TDataShard::ProposeTransaction(NEvents::TDataEvents::TEvWrite::TPtr&& ev, c
         UpdateProposeQueueSize();
     } else {
         // Prepare planned transactions as soon as possible
-        NWilson::TSpan datashardTransactionSpan(TWilsonTablet::Tablet, std::move(ev->TraceId), "Datashard.WriteTransaction", NWilson::EFlags::AUTO_END);
-        datashardTransactionSpan.Attribute("Shard", std::to_string(TabletID()));
+        NWilson::TSpan datashardTransactionSpan(TWilsonTablet::TabletTopLevel, std::move(ev->TraceId), "Datashard.WriteTransaction", NWilson::EFlags::AUTO_END);
+        if (datashardTransactionSpan) {
+            datashardTransactionSpan.Attribute("Shard", std::to_string(TabletID()));
+        }
 
         Execute(new TTxWrite(this, std::move(ev), TAppData::TimeProvider->Now(), NextTieBreakerIndex++, /* delayed */ false, std::move(datashardTransactionSpan)), ctx);
     }
@@ -2891,16 +3162,20 @@ void TDataShard::Handle(TEvPrivate::TEvDelayedProposeTransaction::TPtr &ev, cons
             switch (item.Event->GetTypeRewrite()) {
                 case TEvDataShard::TEvProposeTransaction::EventType: {
                     auto event = IEventHandle::Downcast(std::move(item.Event));
-                    NWilson::TSpan datashardTransactionSpan(TWilsonTablet::Tablet, std::move(event->TraceId), "Datashard.Transaction", NWilson::EFlags::AUTO_END);
-                    datashardTransactionSpan.Attribute("Shard", std::to_string(TabletID()));
+                    NWilson::TSpan datashardTransactionSpan(TWilsonTablet::TabletTopLevel, std::move(event->TraceId), "Datashard.Transaction", NWilson::EFlags::AUTO_END);
+                    if (datashardTransactionSpan) {
+                        datashardTransactionSpan.Attribute("Shard", std::to_string(TabletID()));
+                    }
                     
                     Execute(new TTxProposeTransactionBase(this, std::move(event), item.ReceivedAt, item.TieBreakerIndex, /* delayed */ true, std::move(datashardTransactionSpan)), ctx);
                     return;
                 }
                 case NEvents::TDataEvents::TEvWrite::EventType: {
                     auto event = IEventHandle::Downcast(std::move(item.Event));
-                    NWilson::TSpan datashardTransactionSpan(TWilsonTablet::Tablet, std::move(event->TraceId), "Datashard.WriteTransaction", NWilson::EFlags::AUTO_END);
-                    datashardTransactionSpan.Attribute("Shard", std::to_string(TabletID()));
+                    NWilson::TSpan datashardTransactionSpan(TWilsonTablet::TabletTopLevel, std::move(event->TraceId), "Datashard.WriteTransaction", NWilson::EFlags::AUTO_END);
+                    if (datashardTransactionSpan) {
+                        datashardTransactionSpan.Attribute("Shard", std::to_string(TabletID()));
+                    }
 
                     Execute(new TTxWrite(this, std::move(event), item.ReceivedAt, item.TieBreakerIndex, /* delayed */ true, std::move(datashardTransactionSpan)), ctx);
                     return;
@@ -2921,13 +3196,13 @@ void TDataShard::Handle(TEvPrivate::TEvDelayedProposeTransaction::TPtr &ev, cons
                     kind, TabletID(), txId,
                     NKikimrTxDataShard::TEvProposeTransactionResult::CANCELLED);
                 ctx.Send(target, result, 0, cookie);
-                return;
+                break;
             }
             case NEvents::TDataEvents::TEvWrite::EventType: {
                 auto* msg = item.Event->Get();
                 auto result = NEvents::TDataEvents::TEvWriteResult::BuildError(TabletID(), msg->GetTxId(), NKikimrDataEvents::TEvWriteResult::STATUS_CANCELLED, "Canceled");
                 ctx.Send(target, result.release(), 0, cookie);
-                return;
+                break;
             }
             default:
                 Y_FAIL_S("Unexpected event type " << item.Event->GetTypeRewrite());
@@ -3252,10 +3527,7 @@ void TDataShard::Handle(TEvMediatorTimecast::TEvNotifyPlanStep::TPtr& ev, const
 }
 
 void TDataShard::Handle(TEvPrivate::TEvMediatorRestoreBackup::TPtr&, const TActorContext&) {
-    if (MediatorStateWaiting && CoordinatorPrevReadStepMax == Max()) {
-        // We are still waiting for new protol coordinator state
-        // TODO: send an old snapshot request to coordinators
-    }
+    Y_ABORT("This code path was always no-op and no longer used");
 }
 
 bool TDataShard::WaitPlanStep(ui64 step) {
@@ -3328,19 +3600,31 @@ bool TDataShard::CheckTxNeedWait(const TEvDataShard::TEvProposeTransaction::TPtr
     return false;
 }
 
-bool TDataShard::CheckChangesQueueOverflow() const {
+bool TDataShard::CheckChangesQueueOverflow(ui64 cookie) const {
     const auto* appData = AppData();
     const auto sizeLimit = appData->DataShardConfig.GetChangesQueueItemsLimit();
     const auto bytesLimit = appData->DataShardConfig.GetChangesQueueBytesLimit();
-    return ChangesQueue.size() >= sizeLimit || ChangesQueueBytes >= bytesLimit;
+
+    ui32 reserved = ChangeQueueReservedCapacity;
+    if (auto it = ChangeQueueReservations.find(cookie); it != ChangeQueueReservations.end()) {
+        reserved -= it->second;
+    }
+
+    return (ChangesQueue.size() + reserved) >= sizeLimit || ChangesQueueBytes >= bytesLimit;
 }
 
-void TDataShard::CheckChangesQueueNoOverflow() {
+void TDataShard::CheckChangesQueueNoOverflow(ui64 cookie) {
     if (OverloadSubscribersByReason[RejectReasonIndex(ERejectReason::ChangesQueueOverflow)]) {
         const auto* appData = AppData();
         const auto sizeLimit = appData->DataShardConfig.GetChangesQueueItemsLimit();
         const auto bytesLimit = appData->DataShardConfig.GetChangesQueueBytesLimit();
-        if (ChangesQueue.size() < sizeLimit && ChangesQueueBytes < bytesLimit) {
+
+        ui32 reserved = ChangeQueueReservedCapacity;
+        if (auto it = ChangeQueueReservations.find(cookie); it != ChangeQueueReservations.end()) {
+            reserved -= it->second;
+        }
+
+        if ((ChangesQueue.size() + reserved) < sizeLimit && ChangesQueueBytes < bytesLimit) {
             NotifyOverloadSubscribers(ERejectReason::ChangesQueueOverflow);
         }
     }
diff --git a/ydb/core/tx/datashard/datashard__compact_borrowed.cpp b/ydb/core/tx/datashard/datashard__compact_borrowed.cpp
index cad476c8e524..3dae5cc8ad6d 100644
--- a/ydb/core/tx/datashard/datashard__compact_borrowed.cpp
+++ b/ydb/core/tx/datashard/datashard__compact_borrowed.cpp
@@ -21,45 +21,59 @@ class TDataShard::TTxCompactBorrowed : public NTabletFlatExecutor::TTransactionB
             << " for table " << pathId
             << " at tablet " << Self->TabletID());
 
-        auto response = MakeHolder(Self->TabletID(), pathId);
+        auto nothingToCompactResult = MakeHolder(Self->TabletID(), pathId);
 
-        if (pathId.OwnerId != Self->GetPathOwnerId()) {
-            // Ignore unexpected owner
-            ctx.Send(Ev->Sender, std::move(response));
+        if (pathId.OwnerId != Self->GetPathOwnerId()) { // ignore unexpected owner
+            ctx.Send(Ev->Sender, std::move(nothingToCompactResult));
             return true;
         }
-
         auto it = Self->TableInfos.find(pathId.LocalPathId);
-        if (it == Self->TableInfos.end()) {
-            // Ignore unexpected table (may normally happen with races)
-            ctx.Send(Ev->Sender, std::move(response));
+        if (it == Self->TableInfos.end()) { // ignore unexpected table (may normally happen with races)
+            ctx.Send(Ev->Sender, std::move(nothingToCompactResult));
             return true;
         }
-
         const TUserTable& tableInfo = *it->second;
+     
+        THashSet tablesToCompact;
+        if (txc.DB.HasBorrowed(tableInfo.LocalTid, Self->TabletID())) {
+            tablesToCompact.insert(tableInfo.LocalTid);
+        }
+        if (tableInfo.ShadowTid && txc.DB.HasBorrowed(tableInfo.ShadowTid, Self->TabletID())) {
+            tablesToCompact.insert(tableInfo.ShadowTid);
+        }
+
+        auto waiter = MakeIntrusive(Ev->Sender, pathId.LocalPathId);
 
-        bool hasBorrowed = txc.DB.HasBorrowed(tableInfo.LocalTid, Self->TabletID());
-        if (!hasBorrowed) {
+        for (auto tableToCompact : tablesToCompact) {
             LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD,
                 "TEvCompactBorrowed request from " << Ev->Sender
                 << " for table " << pathId
-                << " has no borrowed parts"
+                << " starting compaction for local table " << tableToCompact
                 << " at tablet " << Self->TabletID());
-            ctx.Send(Ev->Sender, std::move(response));
-            return true;
-        }
 
-        LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD,
-            "TEvCompactBorrowed request from " << Ev->Sender
-            << " for table " << pathId
-            << " starting compaction for local table " << tableInfo.LocalTid
-            << " at tablet " << Self->TabletID());
-
-        Self->Executor()->CompactBorrowed(tableInfo.LocalTid);
-        Self->IncCounter(COUNTER_TX_COMPACT_BORROWED);
-        ++tableInfo.Stats.CompactBorrowedCount;
+            if (Self->Executor()->CompactBorrowed(tableToCompact)) {
+                Self->IncCounter(COUNTER_TX_COMPACT_BORROWED);
+                ++tableInfo.Stats.CompactBorrowedCount;
+
+                waiter->CompactingTables.insert(tableToCompact);
+                Self->CompactBorrowedWaiters[tableToCompact].push_back(waiter);
+            } else {
+                LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD,
+                    "TEvCompactBorrowed request from " << Ev->Sender
+                    << " for table " << pathId
+                    << " can not be compacted"
+                    << " at tablet " << Self->TabletID());
+            }
+        }
 
-        Self->CompactBorrowedWaiters[tableInfo.LocalTid].emplace_back(Ev->Sender);
+        if (waiter->CompactingTables.empty()) { // none has been triggered
+            LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD,
+                "TEvCompactBorrowed request from " << Ev->Sender
+                << " for table " << pathId
+                << " has no parts for borrowed compaction"
+                << " at tablet " << Self->TabletID());
+            ctx.Send(Ev->Sender, std::move(nothingToCompactResult));
+        }
 
         return true;
     }
diff --git a/ydb/core/tx/datashard/datashard__compaction.cpp b/ydb/core/tx/datashard/datashard__compaction.cpp
index de0720cdbae9..f32ac18c3952 100644
--- a/ydb/core/tx/datashard/datashard__compaction.cpp
+++ b/ydb/core/tx/datashard/datashard__compaction.cpp
@@ -196,6 +196,12 @@ void TDataShard::Handle(TEvDataShard::TEvCompactTable::TPtr& ev, const TActorCon
 void TDataShard::CompactionComplete(ui32 tableId, const TActorContext &ctx) {
     auto finishedInfo = Executor()->GetFinishedCompactionInfo(tableId);
 
+    LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD,
+        "CompactionComplete of tablet# "<< TabletID()
+        << ", table# " << tableId
+        << ", finished edge# " << finishedInfo.Edge
+        << ", ts " << finishedInfo.FullCompactionTs);
+
     TLocalPathId localPathId = InvalidLocalPathId;
     if (tableId >= Schema::MinLocalTid) {
         for (auto& ti : TableInfos) {
@@ -234,11 +240,12 @@ void TDataShard::ReplyCompactionWaiters(
         << ", finished edge# " << compactionInfo.Edge
         << ", front# " << (CompactionWaiters[tableId].empty() ? 0UL : std::get<0>(CompactionWaiters[tableId].front())));
 
-    auto& fullCompactionQueue = CompactionWaiters[tableId];
-    while (!fullCompactionQueue.empty()) {
-        const auto& waiter = CompactionWaiters[tableId].front();
-        if (std::get<0>(waiter) > compactionInfo.Edge)
+    auto fullCompactionQueue = CompactionWaiters.FindPtr(tableId);
+    while (fullCompactionQueue && !fullCompactionQueue->empty()) {
+        const auto& waiter = fullCompactionQueue->front();
+        if (std::get<0>(waiter) > compactionInfo.Edge) {
             break;
+        }
 
         const auto& sender = std::get<1>(waiter);
         auto response = MakeHolder(
@@ -252,27 +259,30 @@ void TDataShard::ReplyCompactionWaiters(
             "Sending TEvCompactTableResult to# " << sender
             << "pathId# " << TPathId(GetPathOwnerId(), localPathId));
 
-        fullCompactionQueue.pop_front();
+        fullCompactionQueue->pop_front();
     }
 
-    auto& compactBorrowedQueue = CompactBorrowedWaiters[tableId];
-    if (!compactBorrowedQueue.empty()) {
+    auto compactBorrowedQueue = CompactBorrowedWaiters.FindPtr(tableId);
+    if (compactBorrowedQueue && !compactBorrowedQueue->empty()) {
         const bool hasBorrowed = Executor()->HasBorrowed(tableId, TabletID());
         if (!hasBorrowed) {
-            while (!compactBorrowedQueue.empty()) {
-                const auto& waiter = compactBorrowedQueue.front();
-
-                auto response = MakeHolder(
-                    TabletID(),
-                    GetPathOwnerId(),
-                    localPathId);
-                ctx.Send(waiter, std::move(response));
-
-                LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD,
-                    "Sending TEvCompactBorrowedResult to# " << waiter
-                    << "pathId# " << TPathId(GetPathOwnerId(), localPathId));
-
-                compactBorrowedQueue.pop_front();
+            while (!compactBorrowedQueue->empty()) {
+                const auto& waiter = compactBorrowedQueue->front();
+                waiter->CompactingTables.erase(tableId);
+
+                if (waiter->CompactingTables.empty()) { // all requested tables have been compacted
+                    auto response = MakeHolder(
+                        TabletID(),
+                        GetPathOwnerId(),
+                        waiter->RequestedTable);
+                    ctx.Send(waiter->ActorId, std::move(response));
+
+                    LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD,
+                        "Sending TEvCompactBorrowedResult to# " << waiter->ActorId
+                        << "pathId# " << TPathId(GetPathOwnerId(), waiter->RequestedTable));
+                }
+
+                compactBorrowedQueue->pop_front();
             }
         }
     }
diff --git a/ydb/core/tx/datashard/datashard__init.cpp b/ydb/core/tx/datashard/datashard__init.cpp
index b00bb254ecdb..430ddca1c887 100644
--- a/ydb/core/tx/datashard/datashard__init.cpp
+++ b/ydb/core/tx/datashard/datashard__init.cpp
@@ -425,6 +425,12 @@ bool TDataShard::TTxInit::ReadEverything(TTransactionContext &txc) {
             return false;
     }
 
+    if (Self->State != TShardState::Offline && txc.DB.GetScheme().GetTableInfo(Schema::SchemaSnapshots::TableId)) {
+        if (!Self->SchemaSnapshotManager.Load(db)) {
+            return false;
+        }
+    }
+
     if (Self->State != TShardState::Offline && txc.DB.GetScheme().GetTableInfo(Schema::ChangeRecords::TableId)) {
         if (!Self->LoadChangeRecords(db, ChangeRecords)) {
             return false;
@@ -512,12 +518,6 @@ bool TDataShard::TTxInit::ReadEverything(TTransactionContext &txc) {
         }
     }
 
-    if (Self->State != TShardState::Offline && txc.DB.GetScheme().GetTableInfo(Schema::SchemaSnapshots::TableId)) {
-        if (!Self->SchemaSnapshotManager.Load(db)) {
-            return false;
-        }
-    }
-
     if (Self->State != TShardState::Offline && txc.DB.GetScheme().GetTableInfo(Schema::Locks::TableId)) {
         TDataShardLocksDb locksDb(*Self, txc);
         if (!Self->SysLocks.Load(locksDb)) {
@@ -529,6 +529,7 @@ bool TDataShard::TTxInit::ReadEverything(TTransactionContext &txc) {
         if (!Self->VolatileTxManager.Load(db)) {
             return false;
         }
+        Self->OutReadSets.HoldArbiterReadSets();
     }
 
     if (Self->State != TShardState::Offline && txc.DB.GetScheme().GetTableInfo(Schema::CdcStreamScans::TableId)) {
@@ -546,6 +547,7 @@ bool TDataShard::TTxInit::ReadEverything(TTransactionContext &txc) {
     Self->SubscribeNewLocks();
 
     Self->ScheduleRemoveAbandonedLockChanges();
+    Self->ScheduleRemoveAbandonedSchemaSnapshots();
 
     return true;
 }
@@ -698,10 +700,12 @@ bool TDataShard::SyncSchemeOnFollower(TTransactionContext &txc, const TActorCont
     Y_ABORT_UNLESS(userTablesSchema, "UserTables");
 
     // Check if tables changed since last time we synchronized them
-    ui64 lastSysUpdate = txc.DB.Head(Schema::Sys::TableId).Serial;
-    ui64 lastSchemeUpdate = txc.DB.Head(Schema::UserTables::TableId).Serial;
-    ui64 lastSnapshotsUpdate = scheme.GetTableInfo(Schema::Snapshots::TableId)
-        ? txc.DB.Head(Schema::Snapshots::TableId).Serial : 0;
+    NTable::TDatabase::TChangeCounter lastSysUpdate = txc.DB.Head(Schema::Sys::TableId);
+    NTable::TDatabase::TChangeCounter lastSchemeUpdate = txc.DB.Head(Schema::UserTables::TableId);
+    NTable::TDatabase::TChangeCounter lastSnapshotsUpdate;
+    if (scheme.GetTableInfo(Schema::Snapshots::TableId)) {
+        lastSnapshotsUpdate = txc.DB.Head(Schema::Snapshots::TableId);
+    }
 
     NIceDb::TNiceDb db(txc.DB);
 
@@ -737,10 +741,8 @@ bool TDataShard::SyncSchemeOnFollower(TTransactionContext &txc, const TActorCont
     if (FollowerState.LastSysUpdate < lastSysUpdate) {
         LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD,
                 "Updating sys metadata on follower, tabletId " << TabletID()
-                << " prevGen " << (FollowerState.LastSysUpdate >> 32)
-                << " prevStep " << (FollowerState.LastSysUpdate & (ui32)-1)
-                << " newGen " << (lastSysUpdate >> 32)
-                << " newStep " << (lastSysUpdate & (ui32)-1));
+                << " prev " << FollowerState.LastSysUpdate
+                << " current " << lastSysUpdate);
 
         bool ready = true;
         ready &= SysGetUi64(db, Schema::Sys_PathOwnerId, PathOwnerId);
@@ -756,10 +758,8 @@ bool TDataShard::SyncSchemeOnFollower(TTransactionContext &txc, const TActorCont
     if (FollowerState.LastSchemeUpdate < lastSchemeUpdate) {
         LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD,
                 "Updating tables metadata on follower, tabletId " << TabletID()
-                << " prevGen " << (FollowerState.LastSchemeUpdate >> 32)
-                << " prevStep " << (FollowerState.LastSchemeUpdate & (ui32)-1)
-                << " newGen " << (lastSchemeUpdate >> 32)
-                << " newStep " << (lastSchemeUpdate & (ui32)-1));
+                << " prev " << FollowerState.LastSchemeUpdate
+                << " current " << lastSchemeUpdate);
 
         struct TRow {
             TPathId TableId;
@@ -829,10 +829,8 @@ bool TDataShard::SyncSchemeOnFollower(TTransactionContext &txc, const TActorCont
     if (FollowerState.LastSnapshotsUpdate < lastSnapshotsUpdate) {
         LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD,
                 "Updating snapshots metadata on follower, tabletId " << TabletID()
-                << " prevGen " << (FollowerState.LastSnapshotsUpdate >> 32)
-                << " prevStep " << (FollowerState.LastSnapshotsUpdate & (ui32)-1)
-                << " newGen " << (lastSnapshotsUpdate >> 32)
-                << " newStep " << (lastSnapshotsUpdate & (ui32)-1));
+                << " prev " << FollowerState.LastSnapshotsUpdate
+                << " current " << lastSnapshotsUpdate);
 
         NIceDb::TNiceDb db(txc.DB);
         if (!SnapshotManager.ReloadSnapshots(db)) {
diff --git a/ydb/core/tx/datashard/datashard__kqp_scan.cpp b/ydb/core/tx/datashard/datashard__kqp_scan.cpp
index 603df1e0aa6b..e54fbd4b10cc 100644
--- a/ydb/core/tx/datashard/datashard__kqp_scan.cpp
+++ b/ydb/core/tx/datashard/datashard__kqp_scan.cpp
@@ -71,8 +71,8 @@ class TKqpScan : public TActor, public NTable::IScan {
                     schema.emplace_back(column.Name, column.Type);
                 }
                 BatchBuilder->Reserve(INIT_BATCH_ROWS);
-                bool started = BatchBuilder->Start(schema);
-                YQL_ENSURE(started, "Failed to start BatchBuilder");
+                auto started = BatchBuilder->Start(schema);
+                YQL_ENSURE(started.ok(), "Failed to start BatchBuilder: " + started.ToString());
             }
         }
 
@@ -436,7 +436,7 @@ class TKqpScan : public TActor, public NTable::IScan {
 
             if (DataFormat == NKikimrDataEvents::FORMAT_ARROW) {
                 FlushBatchToResult();
-                sendBytes = NArrow::GetBatchDataSize(Result->ArrowBatch);
+                sendBytes = NArrow::GetTableDataSize(Result->ArrowBatch);
                 // Batch is stored inside BatchBuilder until we flush it into Result. So we verify number of rows here.
                 YQL_ENSURE(Rows == 0 && Result->ArrowBatch == nullptr || Result->ArrowBatch->num_rows() == (i64) Rows);
             } else {
@@ -489,7 +489,7 @@ class TKqpScan : public TActor, public NTable::IScan {
         // send a batch and try to send an empty batch again without adding rows, then a copy of the batch will be send
         // instead. So we check Rows here.
         if (Rows != 0) {
-            Result->ArrowBatch = Tags.empty() ? NArrow::CreateNoColumnsBatch(Rows) : BatchBuilder->FlushBatch(true);
+            Result->ArrowBatch = NArrow::TStatusValidator::GetValid(arrow::Table::FromRecordBatches({Tags.empty() ? NArrow::CreateNoColumnsBatch(Rows) : BatchBuilder->FlushBatch(true)}));
         }
     }
 
diff --git a/ydb/core/tx/datashard/datashard__op_rows.cpp b/ydb/core/tx/datashard/datashard__op_rows.cpp
index 5cee5d62acab..0372e649947e 100644
--- a/ydb/core/tx/datashard/datashard__op_rows.cpp
+++ b/ydb/core/tx/datashard/datashard__op_rows.cpp
@@ -16,7 +16,7 @@ class TTxDirectBase : public TTransactionBase {
 
 public:
     TTxDirectBase(TDataShard* ds, TEvRequest ev)
-        : TBase(ds)
+        : TBase(ds, std::move(ev->TraceId))
         , Ev(ev)
     {
     }
diff --git a/ydb/core/tx/datashard/datashard__read_iterator.cpp b/ydb/core/tx/datashard/datashard__read_iterator.cpp
index 928592a56959..e59adc95af56 100644
--- a/ydb/core/tx/datashard/datashard__read_iterator.cpp
+++ b/ydb/core/tx/datashard/datashard__read_iterator.cpp
@@ -665,6 +665,10 @@ class TReader {
             }
         }
 
+        if (record.TxLocksSize() > 0 || record.BrokenTxLocksSize() > 0) {
+            useful = true;
+        }
+
         Self->IncCounter(COUNTER_READ_ITERATOR_ROWS_READ, RowsRead);
         if (!isKeysRequest) {
             Self->IncCounter(COUNTER_ENGINE_HOST_SELECT_RANGE_ROW_SKIPS, DeletedRowSkips);
@@ -1070,8 +1074,7 @@ const NHPTimer::STime TReader::MaxCyclesPerIteration =
 
 class TDataShard::TReadOperation : public TOperation, public IReadOperation {
     TDataShard* Self;
-    TActorId Sender;
-    std::shared_ptr Request;
+    TReadIteratorId ReadId;
 
     NMiniKQL::IEngineFlat::TValidationInfo ValidationInfo;
 
@@ -1087,11 +1090,10 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
     static constexpr ui32 Flags = NTxDataShard::TTxFlags::ReadOnly | NTxDataShard::TTxFlags::Immediate;
 
 public:
-    TReadOperation(TDataShard* ds, TInstant receivedAt, ui64 tieBreakerIndex, TEvDataShard::TEvRead::TPtr ev)
+    TReadOperation(TDataShard* ds, TInstant receivedAt, ui64 tieBreakerIndex, const TReadIteratorId& readId)
         : TOperation(TBasicOpInfo(EOperationKind::ReadTx, Flags, 0, receivedAt, tieBreakerIndex))
         , Self(ds)
-        , Sender(ev->Sender)
-        , Request(ev->Release().Release())
+        , ReadId(readId)
     {}
 
     void BuildExecutionPlan(bool loaded) override
@@ -1113,14 +1115,13 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
     }
 
     EExecutionStatus Execute(TTransactionContext& txc, const TActorContext& ctx) override {
-        TReadIteratorId readId(Sender, Request->Record.GetReadId());
-        auto it = Self->ReadIterators.find(readId);
-        if (it == Self->ReadIterators.end()) {
+        auto readIt = Self->ReadIterators.find(ReadId);
+        if (readIt == Self->ReadIterators.end()) {
             // iterator has been aborted
             return EExecutionStatus::DelayComplete;
         }
-        Y_ABORT_UNLESS(it->second);
-        auto& state = *it->second;
+        Y_ABORT_UNLESS(readIt->second);
+        auto& state = *readIt->second;
 
         if (Result->Record.HasStatus()) {
             // error happened on check phase
@@ -1129,9 +1130,11 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
 
         Y_ABORT_UNLESS(state.State == TReadIteratorState::EState::Executing);
 
+        auto* request = state.Request;
+
         ++ExecuteCount;
         LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " Execute read# " << ExecuteCount
-            << ", request: " << Request->Record);
+            << ", request: " << request->Record);
 
         switch (Self->State) {
         case TShardState::Ready:
@@ -1244,8 +1247,8 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
             }
         }
 
-        state.LockId = state.Request->Record.GetLockTxId();
-        state.LockNodeId = state.Request->Record.GetLockNodeId();
+        state.LockId = request->Record.GetLockTxId();
+        state.LockNodeId = request->Record.GetLockNodeId();
 
         TDataShardLocksDb locksDb(*Self, txc);
         TSetupSysLocks guardLocks(state.LockId, state.LockNodeId, *Self, &locksDb);
@@ -1305,22 +1308,37 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
                 state.IsHeadRead = false;
 
                 if (!Self->IsFollower()) {
+                    TRowVersion unreadableEdge = Self->Pipeline.GetUnreadableEdge();
+                    if (state.ReadVersion >= unreadableEdge) {
+                        // This version is unreadable in repeatable read mode at the moment, we have to wait
+                        // We actually have to completely destroy current state and start from scratch
+                        LWTRACK(ReadWaitSnapshot, request->Orbit, state.ReadVersion.Step, state.ReadVersion.TxId);
+                        Self->Pipeline.AddWaitingReadIterator(state.ReadVersion, std::move(state.Ev), ctx);
+                        Self->DeleteReadIterator(readIt);
+
+                        // Make sure we rollback everything (on a slim chance there are any changes)
+                        if (txc.DB.HasChanges()) {
+                            txc.DB.RollbackChanges();
+                        }
+
+                        // This unit will remove current operation from the pipeline when we return
+                        Abort(EExecutionUnitKind::CompletedOperations);
+
+                        return EExecutionStatus::Executed;
+                    }
+
                     // Switch to repeatable read at the same version
                     SetMvccSnapshot(state.ReadVersion, /* isRepeatable */ true);
 
-                    TStepOrder order(state.ReadVersion.Step, state.ReadVersion.TxId);
-                    const auto& plannedOps = Self->Pipeline.GetActivePlannedOps();
-                    auto it = plannedOps.lower_bound(order);
-                    if (it != plannedOps.end() && it->first == order) {
-                        if (!it->second->IsReadOnly()) {
-                            // we need to wait this op
-                            AddDependency(it->second);
+                    // We may have had repeatable read conflicts, promote them
+                    PromoteRepeatableReadConflicts();
 
-                            // Make sure current incomplete result will not be sent
-                            Result = MakeEvReadResult(ctx.SelfID.NodeId());
+                    // Having runtime conflicts now means we have to wait and restart
+                    if (HasRuntimeConflicts()) {
+                        // Make sure current incomplete result will not be sent
+                        Result = MakeEvReadResult(ctx.SelfID.NodeId());
 
-                            return EExecutionStatus::Continue;
-                        }
+                        return EExecutionStatus::Continue;
                     }
                 } else {
                     auto [followerEdge, followerRepeatable] = Self->GetSnapshotManager().GetFollowerReadEdge();
@@ -1374,8 +1392,7 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
     }
 
     void CheckRequestAndInit(TTransactionContext& txc, const TActorContext& ctx) override {
-        TReadIteratorId readId(Sender, Request->Record.GetReadId());
-        auto it = Self->ReadIterators.find(readId);
+        auto it = Self->ReadIterators.find(ReadId);
         if (it == Self->ReadIterators.end()) {
             // iterator has been aborted
             return;
@@ -1386,7 +1403,8 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
 
         Result = MakeEvReadResult(ctx.SelfID.NodeId());
 
-        const auto& record = Request->Record;
+        auto* request = state.Request;
+        const auto& record = request->Record;
 
         if (record.HasMaxRows())
             state.Quota.Rows = record.GetMaxRows();
@@ -1405,7 +1423,7 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
 
         state.Reverse = record.GetReverse();
         if (state.Reverse) {
-            state.FirstUnprocessedQuery = Request->Keys.size() + Request->Ranges.size() - 1;
+            state.FirstUnprocessedQuery = request->Keys.size() + request->Ranges.size() - 1;
         }
 
         // Note: some checks already performed in TTxReadViaPipeline::Execute
@@ -1455,10 +1473,10 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
         }
 
         // Make ranges in the new 'any' form compatible with the old '+inf' form
-        for (size_t i = 0; i < Request->Ranges.size(); ++i) {
-            auto& range = Request->Ranges[i];
+        for (size_t i = 0; i < request->Ranges.size(); ++i) {
+            auto& range = request->Ranges[i];
             auto& keyFrom = range.From;
-            auto& keyTo = Request->Ranges[i].To;
+            auto& keyTo = request->Ranges[i].To;
 
             if (range.FromInclusive && keyFrom.GetCells().size() != TableInfo.KeyColumnCount) {
                 keyFrom = ExtendWithNulls(keyFrom, TableInfo.KeyColumnCount);
@@ -1470,16 +1488,16 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
         }
 
         // Make prefixes in the new 'any' form compatible with the old '+inf' form
-        for (size_t i = 0; i < Request->Keys.size(); ++i) {
-            const auto& key = Request->Keys[i];
+        for (size_t i = 0; i < request->Keys.size(); ++i) {
+            const auto& key = request->Keys[i];
             if (key.GetCells().size() == TableInfo.KeyColumnCount)
                 continue;
 
-            if (state.Keys.size() != Request->Keys.size()) {
-                state.Keys.resize(Request->Keys.size());
+            if (state.Keys.size() != request->Keys.size()) {
+                state.Keys.resize(request->Keys.size());
             }
 
-            // we can safely use cells referencing original Request->Keys[x],
+            // we can safely use cells referencing original request->Keys[x],
             // because request will live until the end
             state.Keys[i] = ExtendWithNulls(key, TableInfo.KeyColumnCount);
         }
@@ -1499,7 +1517,6 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
             state.Columns.push_back(col);
         }
 
-        state.Request = Request;
         state.State = TReadIteratorState::EState::Executing;
 
         Y_ASSERT(Result);
@@ -1517,29 +1534,29 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
             return;
         ResultSent = true;
 
-        TReadIteratorId readId(Sender, Request->Record.GetReadId());
-        auto it = Self->ReadIterators.find(readId);
+        auto it = Self->ReadIterators.find(ReadId);
         if (it == Self->ReadIterators.end()) {
             // the one who removed the iterator should have replied to user
-            LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << readId
+            LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << ReadId
                 << " has been invalidated before TReadOperation::SendResult()");
             return;
         }
 
         Y_ABORT_UNLESS(it->second);
         auto& state = *it->second;
+        auto* request = state.Request;
 
         if (!Result) {
-            LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << readId
+            LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << ReadId
                 << " TReadOperation::Execute() finished without Result, aborting");
             Result = MakeEvReadResult(ctx.SelfID.NodeId());
             SetStatusError(Result->Record, Ydb::StatusIds::ABORTED, TStringBuilder()
                 << "Iterator aborted"
                 << " (shard# " << Self->TabletID() << " node# " << ctx.SelfID.NodeId() << " state# " << DatashardStateName(Self->State) << ")");
-            Result->Record.SetReadId(readId.ReadId);
-            Self->SendImmediateReadResult(Sender, Result.release(), 0, state.SessionId);
+            Result->Record.SetReadId(ReadId.ReadId);
+            Self->SendImmediateReadResult(ReadId.Sender, Result.release(), 0, state.SessionId);
             
-            Request->ReadSpan.EndError("Iterator aborted");
+            request->ReadSpan.EndError("Iterator aborted");
             Self->DeleteReadIterator(it);
             return;
         }
@@ -1553,13 +1570,13 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
         // error happened and status set
         auto& record = Result->Record;
         if (record.HasStatus()) {
-            record.SetReadId(readId.ReadId);
+            record.SetReadId(ReadId.ReadId);
             record.SetSeqNo(state.SeqNo + 1);
-            LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << readId
+            LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << ReadId
                 << " TReadOperation::Execute() finished with error, aborting: " << record.DebugString());
-            Self->SendImmediateReadResult(Sender, Result.release(), 0, state.SessionId);
+            Self->SendImmediateReadResult(ReadId.Sender, Result.release(), 0, state.SessionId);
 
-            Request->ReadSpan.EndError("Finished with error");
+            request->ReadSpan.EndError("Finished with error");
             Self->DeleteReadIterator(it);
             return;
         }
@@ -1567,7 +1584,7 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
         Y_ASSERT(Reader);
         Y_ASSERT(BlockBuilder);
 
-        LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << readId
+        LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << ReadId
             << " sends rowCount# " << Reader->GetRowsRead() << ", bytes# " << Reader->GetBytesRead()
             << ", quota rows left# " << (state.Quota.Rows - Reader->GetRowsRead())
             << ", quota bytes left# " << (state.Quota.Bytes - Reader->GetBytesRead())
@@ -1583,29 +1600,29 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
 
         if (!gSkipReadIteratorResultFailPoint.Check(Self->TabletID())) {
             LWTRACK(ReadSendResult, state.Orbit);
-            Self->SendImmediateReadResult(Sender, Result.release(), 0, state.SessionId);
+            Self->SendImmediateReadResult(ReadId.Sender, Result.release(), 0, state.SessionId);
         }
     }
 
     void Complete(const TActorContext& ctx) override {
-        TReadIteratorId readId(Sender, Request->Record.GetReadId());
-        auto it = Self->ReadIterators.find(readId);
+        auto it = Self->ReadIterators.find(ReadId);
         if (it == Self->ReadIterators.end()) {
             // the one who removed the iterator should have reply to user
-            LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << readId
+            LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << ReadId
                 << " has been invalidated before TReadOperation::Complete()");
             return;
         }
         auto& state = *it->second;
+        auto* request = state.Request;
 
-        LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " Complete read# " << state.ReadId
+        LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " Complete read# " << ReadId
             << " after executionsCount# " << ExecuteCount);
 
         SendResult(ctx);
 
-        it = Self->ReadIterators.find(readId);
+        it = Self->ReadIterators.find(ReadId);
         if (it == Self->ReadIterators.end()) {
-            // We sent an error and delete iterator
+            // We sent an error and deleted iterator
             return;
         }
 
@@ -1617,17 +1634,17 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
             if (!state.IsExhausted()) {
                 ctx.Send(
                     Self->SelfId(),
-                    new TEvDataShard::TEvReadContinue(Sender, Request->Record.GetReadId()));
+                    new TEvDataShard::TEvReadContinue(ReadId.Sender, ReadId.ReadId));
             } else {
                 Self->IncCounter(COUNTER_READ_ITERATORS_EXHAUSTED_COUNT);
                 LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID()
-                    << " read iterator# " << readId << " exhausted");
+                    << " read iterator# " << ReadId << " exhausted");
             }
         } else {
-            LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << readId
+            LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << ReadId
                 << " finished in read");
 
-            Request->ReadSpan.EndOk();
+            request->ReadSpan.EndOk();
             Self->DeleteReadIterator(it);
         }
     }
@@ -1870,7 +1887,6 @@ class TDataShard::TReadOperation : public TOperation, public IReadOperation {
 };
 
 class TDataShard::TTxReadViaPipeline : public NTabletFlatExecutor::TTransactionBase {
-    TEvDataShard::TEvRead::TPtr Ev;
     TReadIteratorId ReadId;
 
     // When we need to reply with an error
@@ -1881,10 +1897,9 @@ class TDataShard::TTxReadViaPipeline : public NTabletFlatExecutor::TTransactionB
     bool WaitComplete = false;
 
 public:
-    TTxReadViaPipeline(TDataShard* ds, TEvDataShard::TEvRead::TPtr ev, NWilson::TTraceId &&traceId)
+    TTxReadViaPipeline(TDataShard* ds, const TReadIteratorId& readId, NWilson::TTraceId &&traceId)
         : TBase(ds, std::move(traceId))
-        , Ev(std::move(ev))
-        , ReadId(Ev->Sender, Ev->Get()->Record.GetReadId())
+        , ReadId(readId)
     {}
 
     TTxType GetTxType() const override { return TXTYPE_READ; }
@@ -1916,22 +1931,23 @@ class TDataShard::TTxReadViaPipeline : public NTabletFlatExecutor::TTransactionB
                         // iterator already aborted
                         return true;
                     }
+                    auto& state = *readIt->second;
                     ReplyError(
                         Ydb::StatusIds::INTERNAL_ERROR,
                         TStringBuilder() << "Failed to sync follower: " << errMessage
                             << " (shard# " << Self->TabletID() << " node# " << ctx.SelfID.NodeId() << " state# " << DatashardStateName(Self->State) << ")",
                         ctx.SelfID.NodeId(),
-                        Ev->Get()->ReadSpan);
+                        state.Request->ReadSpan);
                     return true;
                 }
             }
 
-            if (Ev) {
+            if (!Op) {
                 // We must perform some initialization in transaction (e.g. after a follower sync), but before the operation is built
                 Y_ABORT_UNLESS(readIt != Self->ReadIterators.end());
                 Y_ABORT_UNLESS(readIt->second);
                 auto& state = *readIt->second;
-                auto* request = Ev->Get();
+                auto* request = state.Request;
                 const auto& record = request->Record;
                 NWilson::TSpan &readSpan = request->ReadSpan;
 
@@ -2039,7 +2055,7 @@ class TDataShard::TTxReadViaPipeline : public NTabletFlatExecutor::TTransactionB
                                 TRowVersion unreadableEdge = Self->Pipeline.GetUnreadableEdge();
                                 if (state.ReadVersion >= unreadableEdge) {
                                     LWTRACK(ReadWaitSnapshot, request->Orbit, state.ReadVersion.Step, state.ReadVersion.TxId);
-                                    Self->Pipeline.AddWaitingReadIterator(state.ReadVersion, std::move(Ev), ctx);
+                                    Self->Pipeline.AddWaitingReadIterator(state.ReadVersion, std::move(state.Ev), ctx);
                                     Self->DeleteReadIterator(readIt);
                                     return true;
                                 }
@@ -2115,7 +2131,7 @@ class TDataShard::TTxReadViaPipeline : public NTabletFlatExecutor::TTransactionB
                 }
 
                 const ui64 tieBreaker = Self->NextTieBreakerIndex++;
-                Op = new TReadOperation(Self, ctx.Now(), tieBreaker, Ev);
+                Op = new TReadOperation(Self, ctx.Now(), tieBreaker, ReadId);
 
                 Op->BuildExecutionPlan(false);
                 Self->Pipeline.GetExecutionUnit(Op->GetCurrentUnit()).AddOperation(Op);
@@ -2129,7 +2145,6 @@ class TDataShard::TTxReadViaPipeline : public NTabletFlatExecutor::TTransactionB
                     Op->SetUsingSnapshotFlag();
                 }
 
-                Ev = nullptr;
                 Op->IncrementInProgress();
             }
 
@@ -2234,7 +2249,7 @@ class TDataShard::TTxReadViaPipeline : public NTabletFlatExecutor::TTransactionB
 };
 
 class TDataShard::TTxReadContinue : public NTabletFlatExecutor::TTransactionBase {
-    TEvDataShard::TEvReadContinue::TPtr Ev;
+    TReadIteratorId ReadId;
 
     std::unique_ptr Result;
     std::unique_ptr BlockBuilder;
@@ -2243,9 +2258,9 @@ class TDataShard::TTxReadContinue : public NTabletFlatExecutor::TTransactionBase
     bool DelayedResult = false;
 
 public:
-    TTxReadContinue(TDataShard* ds, TEvDataShard::TEvReadContinue::TPtr ev, NWilson::TTraceId &&traceId)
+    TTxReadContinue(TDataShard* ds, const TReadIteratorId& readId, NWilson::TTraceId &&traceId)
         : TBase(ds, std::move(traceId))
-        , Ev(ev)
+        , ReadId(readId)
     {}
 
     // note that intentionally the same as TEvRead
@@ -2256,20 +2271,18 @@ class TDataShard::TTxReadContinue : public NTabletFlatExecutor::TTransactionBase
         // 1. Since TTxReadContinue scheduled, shard was ready.
         // 2. If shards changes the state, it must cancel iterators and we will
         // not find our readId ReadIterators.
-        TReadIteratorId readId(Ev->Get()->Reader, Ev->Get()->ReadId);
-        auto it = Self->ReadIterators.find(readId);
+        auto it = Self->ReadIterators.find(ReadId);
         if (it == Self->ReadIterators.end()) {
             // read has been aborted
-            LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " ReadContinue for reader# "
-                << Ev->Get()->Reader << ", readId# " << Ev->Get()->ReadId << " didn't found state");
+            LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " ReadContinue for iterator# " << ReadId
+                << " didn't find state");
             return true;
         }
 
         Y_ASSERT(it->second);
         auto& state = *it->second;
 
-        LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " ReadContinue for reader# "
-            << Ev->Get()->Reader << ", readId# " << Ev->Get()->ReadId
+        LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " ReadContinue for iterator# " << ReadId
             << ", firstUnprocessedQuery# " << state.FirstUnprocessedQuery);
 
         Result = MakeEvReadResult(ctx.SelfID.NodeId());
@@ -2364,7 +2377,7 @@ class TDataShard::TTxReadContinue : public NTabletFlatExecutor::TTransactionBase
         Y_ASSERT(Result);
 
         LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID()
-            << " ReadContinue: reader# " << Ev->Get()->Reader << ", readId# " << Ev->Get()->ReadId
+            << " ReadContinue: iterator# " << ReadId
             << ", FirstUnprocessedQuery# " << state.FirstUnprocessedQuery);
 
         TDataShardLocksDb locksDb(*Self, txc);
@@ -2384,7 +2397,7 @@ class TDataShard::TTxReadContinue : public NTabletFlatExecutor::TTransactionBase
                 Self->WaitVolatileDependenciesThenSend(
                     Reader->GetVolatileReadDependencies(),
                     Self->SelfId(),
-                    std::make_unique(Ev->Get()->Reader, Ev->Get()->ReadId));
+                    std::make_unique(ReadId.Sender, ReadId.ReadId));
                 return true;
             }
 
@@ -2407,9 +2420,7 @@ class TDataShard::TTxReadContinue : public NTabletFlatExecutor::TTransactionBase
     }
 
     void ApplyLocks(const TActorContext& ctx) {
-        const auto* request = Ev->Get();
-        TReadIteratorId readId(request->Reader, request->ReadId);
-        auto it = Self->ReadIterators.find(readId);
+        auto it = Self->ReadIterators.find(ReadId);
         Y_ABORT_UNLESS(it != Self->ReadIterators.end());
         Y_ABORT_UNLESS(it->second);
         auto& state = *it->second;
@@ -2445,7 +2456,7 @@ class TDataShard::TTxReadContinue : public NTabletFlatExecutor::TTransactionBase
                 addLock->SetSchemeShard(state.PathId.OwnerId);
                 addLock->SetPathId(state.PathId.LocalPathId);
 
-                LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << readId
+                LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << ReadId
                     << " TTxReadContinue::Execute() found broken lock# " << state.Lock->GetLockId());
 
                 // A broken write lock means we are reading inconsistent results and must abort
@@ -2464,21 +2475,19 @@ class TDataShard::TTxReadContinue : public NTabletFlatExecutor::TTransactionBase
     }
 
     void SendResult(const TActorContext& ctx) {
-        auto* request = Ev->Get();
-        TReadIteratorId readId(request->Reader, request->ReadId);
-        auto it = Self->ReadIterators.find(readId);
+        auto it = Self->ReadIterators.find(ReadId);
         Y_ABORT_UNLESS(it != Self->ReadIterators.end());
         Y_ABORT_UNLESS(it->second);
         auto& state = *it->second;
 
         if (!Result) {
-            LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << readId
+            LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << ReadId
                 << " TTxReadContinue::Execute() finished without Result, aborting");
 
             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);
+            Result->Record.SetReadId(ReadId.ReadId);
+            Self->SendImmediateReadResult(ReadId.Sender, Result.release(), 0, state.SessionId);
 
             state.Request->ReadSpan.EndError("Iterator aborted");
             Self->DeleteReadIterator(it);
@@ -2489,10 +2498,10 @@ class TDataShard::TTxReadContinue : public NTabletFlatExecutor::TTransactionBase
         auto& record = Result->Record;
         if (record.HasStatus()) {
             record.SetSeqNo(state.SeqNo + 1);
-            record.SetReadId(readId.ReadId);
-            Self->SendImmediateReadResult(request->Reader, Result.release(), 0, state.SessionId);
-            LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << readId
+            record.SetReadId(ReadId.ReadId);
+            LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << ReadId
                 << " TTxReadContinue::Execute() finished with error, aborting: " << record.DebugString());
+            Self->SendImmediateReadResult(ReadId.Sender, Result.release(), 0, state.SessionId);
 
             state.Request->ReadSpan.EndError("Finished with error");
             Self->DeleteReadIterator(it);
@@ -2502,7 +2511,7 @@ class TDataShard::TTxReadContinue : public NTabletFlatExecutor::TTransactionBase
         Y_ASSERT(Reader);
         Y_ASSERT(BlockBuilder);
 
-        LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " readContinue iterator# " << readId
+        LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " readContinue iterator# " << ReadId
             << " sends rowCount# " << Reader->GetRowsRead() << ", bytes# " << Reader->GetBytesRead()
             << ", quota rows left# " << (state.Quota.Rows - Reader->GetRowsRead())
             << ", quota bytes left# " << (state.Quota.Bytes - Reader->GetBytesRead())
@@ -2514,7 +2523,7 @@ class TDataShard::TTxReadContinue : public NTabletFlatExecutor::TTransactionBase
         bool useful = Reader->FillResult(*Result, state);
         if (useful) {
             LWTRACK(ReadSendResult, state.Orbit);
-            Self->SendImmediateReadResult(request->Reader, Result.release(), 0, state.SessionId);
+            Self->SendImmediateReadResult(ReadId.Sender, Result.release(), 0, state.SessionId);
         }
 
         if (Reader->HasUnreadQueries()) {
@@ -2524,14 +2533,14 @@ class TDataShard::TTxReadContinue : public NTabletFlatExecutor::TTransactionBase
             if (!state.IsExhausted()) {
                 ctx.Send(
                     Self->SelfId(),
-                    new TEvDataShard::TEvReadContinue(request->Reader, request->ReadId));
+                    new TEvDataShard::TEvReadContinue(ReadId.Sender, ReadId.ReadId));
             } else {
                 Self->IncCounter(COUNTER_READ_ITERATORS_EXHAUSTED_COUNT);
                 LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID()
-                    << " read iterator# " << readId << " exhausted");
+                    << " read iterator# " << ReadId << " exhausted");
             }
         } else {
-            LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << readId
+            LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " read iterator# " << ReadId
                 << " finished in ReadContinue");
             
             state.Request->ReadSpan.EndOk();
@@ -2545,7 +2554,7 @@ void TDataShard::Handle(TEvDataShard::TEvRead::TPtr& ev, const TActorContext& ct
     auto* request = ev->Get();
     
     if (!request->ReadSpan) {
-        request->ReadSpan = NWilson::TSpan(TWilsonTablet::Tablet, std::move(ev->TraceId), "Datashard.Read", NWilson::EFlags::AUTO_END);
+        request->ReadSpan = NWilson::TSpan(TWilsonTablet::TabletTopLevel, std::move(ev->TraceId), "Datashard.Read", NWilson::EFlags::AUTO_END);
         request->ReadSpan.Attribute("Shard", std::to_string(TabletID()));
     }
 
@@ -2694,16 +2703,21 @@ void TDataShard::Handle(TEvDataShard::TEvRead::TPtr& ev, const TActorContext& ct
         sessionId = ev->InterconnectSession;
     }
 
-    ReadIterators.emplace(
+    auto pr = ReadIterators.emplace(
         readId,
         new TReadIteratorState(
             readId, TPathId(record.GetTableId().GetOwnerId(), record.GetTableId().GetTableId()),
             sessionId, readVersion, isHeadRead,
             AppData()->MonotonicTimeProvider->Now(), std::move(request->Orbit)));
+    Y_ABORT_UNLESS(pr.second);
+
+    auto& state = *pr.first->second;
+    state.Ev = std::move(ev);
+    state.Request = request;
 
     SetCounter(COUNTER_READ_ITERATORS_COUNT, ReadIterators.size());
 
-    Executor()->Execute(new TTxReadViaPipeline(this, ev, request->ReadSpan.GetTraceId()), ctx);
+    Executor()->Execute(new TTxReadViaPipeline(this, readId, request->ReadSpan.GetTraceId()), ctx);
 }
 
 void TDataShard::Handle(TEvDataShard::TEvReadContinue::TPtr& ev, const TActorContext& ctx) {
@@ -2712,8 +2726,8 @@ void TDataShard::Handle(TEvDataShard::TEvReadContinue::TPtr& ev, const TActorCon
     if (Y_UNLIKELY(it == ReadIterators.end())) {
         return;
     }
-    
-    Executor()->Execute(new TTxReadContinue(this, ev, it->second->Request->ReadSpan.GetTraceId()), ctx);
+
+    Executor()->Execute(new TTxReadContinue(this, readId, it->second->Request->ReadSpan.GetTraceId()), ctx);
 }
 
 void TDataShard::Handle(TEvDataShard::TEvReadAck::TPtr& ev, const TActorContext& ctx) {
@@ -2831,9 +2845,7 @@ void TDataShard::Handle(TEvDataShard::TEvReadCancel::TPtr& ev, const TActorConte
 
     LWTRACK(ReadCancel, state->Orbit);
 
-    if (state->Request) {
-        state->Request->ReadSpan.EndError("Cancelled");
-    }
+    state->Request->ReadSpan.EndError("Cancelled");
     DeleteReadIterator(it);
 }
 
@@ -2856,6 +2868,7 @@ void TDataShard::CancelReadIterators(Ydb::StatusIds::StatusCode code, const TStr
         result->Record.SetSeqNo(state->SeqNo + 1);
 
         SendViaSession(state->SessionId, readIteratorId.Sender, SelfId(), result.release());
+        state->Request->ReadSpan.EndError("Cancelled");
     }
 
     ReadIterators.clear();
@@ -2909,6 +2922,7 @@ void TDataShard::ReadIteratorsOnNodeDisconnected(const TActorId& sessionId, cons
             ++exhaustedCount;
         }
 
+        state->Request->ReadSpan.EndError("Disconnected");
         ReadIterators.erase(it);
     }
 
diff --git a/ydb/core/tx/datashard/datashard__stats.cpp b/ydb/core/tx/datashard/datashard__stats.cpp
index d19a415740f4..5a6e45a2edb0 100644
--- a/ydb/core/tx/datashard/datashard__stats.cpp
+++ b/ydb/core/tx/datashard/datashard__stats.cpp
@@ -179,7 +179,6 @@ class TAsyncTableStatsBuilder : public TActorBootstrappedSender);
 
     ui64 tableId = ev->Get()->TableId;
-    LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, "Stats rebuilt at datashard " << TabletID() << ", for tableId " << tableId);
+    LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, "Stats rebuilt at datashard " << TabletID() << ", for tableId " << tableId
+        << ": RowCount " << ev->Get()->Stats.RowCount << ", DataSize " << ev->Get()->Stats.DataSize.Size
+        << (ev->Get()->PartOwners.size() > 1 || ev->Get()->PartOwners.size() == 1 && *ev->Get()->PartOwners.begin() != TabletID() ? ", with borrowed parts" : ""));
 
     i64 dataSize = 0;
     if (TableInfos.contains(tableId)) {
@@ -409,6 +412,21 @@ void TDataShard::Handle(TEvPrivate::TEvAsyncTableStats::TPtr& ev, const TActorCo
     }
 }
 
+void TDataShard::Handle(TEvPrivate::TEvTableStatsError::TPtr& ev, const TActorContext& ctx) {
+    Actors.erase(ev->Sender);
+
+    auto msg = ev->Get();
+
+    LOG_ERROR_S(ctx, NKikimrServices::TX_DATASHARD, "Stats rebuilt error '" << msg->Message 
+        << "', code: " << ui32(msg->Code) << ", datashard " << TabletID() << ", tableId " << msg->TableId);
+
+    auto it = TableInfos.find(msg->TableId);
+    if (it != TableInfos.end()) {
+        it->second->StatsUpdateInProgress = false;
+        // if we have got an error, a compaction should have happened so restart build stats anyway
+        it->second->StatsNeedUpdate = true;
+    }
+}
 
 class TDataShard::TTxInitiateStatsUpdate : public NTabletFlatExecutor::TTransactionBase {
 private:
@@ -425,9 +443,7 @@ class TDataShard::TTxInitiateStatsUpdate : public NTabletFlatExecutor::TTransact
     void CheckIdleMemCompaction(const TUserTable& table, TTransactionContext& txc, const TActorContext& ctx) {
         // Note: we only care about changes in the main table
         auto lastTableChange = txc.DB.Head(table.LocalTid);
-        if (table.LastTableChange.Serial != lastTableChange.Serial ||
-            table.LastTableChange.Epoch != lastTableChange.Epoch)
-        {
+        if (table.LastTableChange != lastTableChange) {
             table.LastTableChange = lastTableChange;
             table.LastTableChangeTimestamp = ctx.Monotonic();
             return;
diff --git a/ydb/core/tx/datashard/datashard_active_transaction.cpp b/ydb/core/tx/datashard/datashard_active_transaction.cpp
index b54f21d39a82..745010c5401d 100644
--- a/ydb/core/tx/datashard/datashard_active_transaction.cpp
+++ b/ydb/core/tx/datashard/datashard_active_transaction.cpp
@@ -404,7 +404,7 @@ TValidatedDataTx::TPtr TActiveTransaction::BuildDataTx(TDataShard *self,
     if (!DataTx) {
         Y_ABORT_UNLESS(TxBody);
         DataTx = std::make_shared(self, txc, ctx, GetStepOrder(),
-                                                    GetReceivedAt(), TxBody, MvccSnapshotRepeatable);
+                                                    GetReceivedAt(), TxBody, IsMvccSnapshotRepeatable());
         if (DataTx->HasStreamResponse())
             SetStreamSink(DataTx->GetSink());
     }
@@ -635,7 +635,7 @@ ERestoreDataStatus TActiveTransaction::RestoreTxData(
 
     bool extractKeys = DataTx->IsTxInfoLoaded();
     DataTx = std::make_shared(self, txc, ctx, GetStepOrder(),
-                                                GetReceivedAt(), TxBody, MvccSnapshotRepeatable);
+                                                GetReceivedAt(), TxBody, IsMvccSnapshotRepeatable());
     if (DataTx->Ready() && extractKeys) {
         DataTx->ExtractKeys(true);
     }
@@ -937,4 +937,45 @@ void TActiveTransaction::UntrackMemory() const {
     NActors::NMemory::TLabel::Sub(TxBody.size());
 }
 
+bool TActiveTransaction::OnStopping(TDataShard& self, const TActorContext& ctx) {
+    if (IsImmediate()) {
+        // Send reject result immediately, because we cannot control when
+        // a new datashard tablet may start and block us from commiting
+        // anything new. The usual progress queue is too slow for that.
+        if (!HasResultSentFlag() && !Result()) {
+            auto kind = static_cast(GetKind());
+            auto rejectStatus = NKikimrTxDataShard::TEvProposeTransactionResult::OVERLOADED;
+            TString rejectReason = TStringBuilder()
+                    << "Rejecting immediate tx "
+                    << GetTxId()
+                    << " because datashard "
+                    << self.TabletID()
+                    << " is restarting";
+            auto result = MakeHolder(
+                    kind, self.TabletID(), GetTxId(), rejectStatus);
+            result->AddError(NKikimrTxDataShard::TError::WRONG_SHARD_STATE, rejectReason);
+            LOG_NOTICE_S(ctx, NKikimrServices::TX_DATASHARD, rejectReason);
+
+            ctx.Send(GetTarget(), result.Release(), 0, GetCookie());
+
+            self.IncCounter(COUNTER_PREPARE_OVERLOADED);
+            self.IncCounter(COUNTER_PREPARE_COMPLETE);
+            SetResultSentFlag();
+        }
+
+        // Immediate ops become ready when stopping flag is set
+        return true;
+    } else {
+        // Distributed operations send notification when proposed
+        if (GetTarget() && !HasCompletedFlag()) {
+            auto notify = MakeHolder(
+                self.TabletID(), GetTxId());
+            ctx.Send(GetTarget(), notify.Release(), 0, GetCookie());
+        }
+
+        // Distributed ops avoid doing new work when stopping
+        return false;
+    }
+}
+
 }}
diff --git a/ydb/core/tx/datashard/datashard_active_transaction.h b/ydb/core/tx/datashard/datashard_active_transaction.h
index cca5b12b876f..247b5335c0c9 100644
--- a/ydb/core/tx/datashard/datashard_active_transaction.h
+++ b/ydb/core/tx/datashard/datashard_active_transaction.h
@@ -603,6 +603,8 @@ class TActiveTransaction : public TOperation {
         return ++PageFaultCount;
     }
 
+    bool OnStopping(TDataShard& self, const TActorContext& ctx) override;
+
 private:
     void TrackMemory() const;
     void UntrackMemory() const;
diff --git a/ydb/core/tx/datashard/datashard_change_sending.cpp b/ydb/core/tx/datashard/datashard_change_sending.cpp
index d70874dd64aa..dd628ce2d6ce 100644
--- a/ydb/core/tx/datashard/datashard_change_sending.cpp
+++ b/ydb/core/tx/datashard/datashard_change_sending.cpp
@@ -286,7 +286,7 @@ class TDataShard::TTxRemoveChangeRecords: public TTransactionBase {
                 ChangeExchangeSplit = true;
             } else {
                 for (const auto dstTabletId : Self->ChangeSenderActivator.GetDstSet()) {
-                    if (Self->SplitSrcSnapshotSender.Acked(dstTabletId)) {
+                    if (Self->SplitSrcSnapshotSender.Acked(dstTabletId) && !Self->ChangeSenderActivator.Acked(dstTabletId)) {
                         ActivationList.insert(dstTabletId);
                     }
                 }
@@ -346,9 +346,7 @@ class TDataShard::TTxRemoveChangeRecords: public TTransactionBase {
         }
 
         for (const auto dstTabletId : ActivationList) {
-            if (!Self->ChangeSenderActivator.Acked(dstTabletId)) {
-                Self->ChangeSenderActivator.DoSend(dstTabletId, ctx);
-            }
+            Self->ChangeSenderActivator.DoSend(dstTabletId, ctx);
         }
 
         Self->CheckStateChange(ctx);
@@ -383,7 +381,7 @@ class TDataShard::TTxChangeExchangeSplitAck: public TTransactionBase
         Y_ABORT_UNLESS(Self->ChangeExchangeSplitter.Done());
 
         for (const auto dstTabletId : Self->ChangeSenderActivator.GetDstSet()) {
-            if (Self->SplitSrcSnapshotSender.Acked(dstTabletId)) {
+            if (Self->SplitSrcSnapshotSender.Acked(dstTabletId) && !Self->ChangeSenderActivator.Acked(dstTabletId)) {
                 ActivationList.insert(dstTabletId);
             }
         }
@@ -396,9 +394,7 @@ class TDataShard::TTxChangeExchangeSplitAck: public TTransactionBase
             << ", at tablet# " << Self->TabletID());
 
         for (const auto dstTabletId : ActivationList) {
-            if (!Self->ChangeSenderActivator.Acked(dstTabletId)) {
-                Self->ChangeSenderActivator.DoSend(dstTabletId, ctx);
-            }
+            Self->ChangeSenderActivator.DoSend(dstTabletId, ctx);
         }
     }
 
diff --git a/ydb/core/tx/datashard/datashard_common_upload.cpp b/ydb/core/tx/datashard/datashard_common_upload.cpp
index ff31a995f507..aa66cc6ecd58 100644
--- a/ydb/core/tx/datashard/datashard_common_upload.cpp
+++ b/ydb/core/tx/datashard/datashard_common_upload.cpp
@@ -286,6 +286,7 @@ bool TCommonUploadOps::Execute(TDataShard* self, TTrans
             /* participants */ { },
             groupProvider.GetCurrentChangeGroup(),
             /* ordered */ false,
+            /* arbiter */ false,
             txc);
         // Note: transaction is already committed, no additional waiting needed
     }
diff --git a/ydb/core/tx/datashard/datashard_dep_tracker.cpp b/ydb/core/tx/datashard/datashard_dep_tracker.cpp
index 34d25312795e..cbc79414ca93 100644
--- a/ydb/core/tx/datashard/datashard_dep_tracker.cpp
+++ b/ydb/core/tx/datashard/datashard_dep_tracker.cpp
@@ -46,8 +46,8 @@ namespace {
         return a.GetStep() < b.Step || (a.GetStep() == b.Step && a.GetTxId() < b.TxId);
     }
 
-    bool IsLessEqual(const TOperation& a, const TRowVersion& b) {
-        return a.GetStep() < b.Step || (a.GetStep() == b.Step && a.GetTxId() <= b.TxId);
+    bool IsEqual(const TOperation& a, const TRowVersion& b) {
+        return a.GetStep() == b.Step && a.GetTxId() == b.TxId;
     }
 }
 
@@ -673,11 +673,13 @@ void TDependencyTracker::TMvccDependencyTrackingLogic::AddOperation(const TOpera
 
                     if (lock) {
                         lock->SetLastOpId(op->GetTxId());
-                        if (locksCache.Locks.contains(lockTxId) && lock->IsPersistent()) {
+                        if (locksCache.Locks.contains(lockTxId) && lock->IsPersistent() && !lock->IsFrozen()) {
                             // This lock was cached before, and since we know
                             // it's persistent, we know it was also frozen
                             // during that lock caching. Restore the frozen
                             // flag for this lock.
+                            // Note: this code path is only for older shards
+                            // which didn't persist the frozen flag.
                             lock->SetFrozen();
                         }
                     }
@@ -797,8 +799,10 @@ void TDependencyTracker::TMvccDependencyTrackingLogic::AddOperation(const TOpera
         Y_ABORT_UNLESS(!conflict.IsImmediate());
         if (snapshot.IsMax()) {
             conflict.AddImmediateConflict(op);
-        } else if (snapshotRepeatable ? IsLessEqual(conflict, snapshot) : IsLess(conflict, snapshot)) {
+        } else if (IsLess(conflict, snapshot)) {
             op->AddDependency(&conflict);
+        } else if (IsEqual(conflict, snapshot)) {
+            op->AddRepeatableReadConflict(&conflict);
         }
     };
 
diff --git a/ydb/core/tx/datashard/datashard_direct_erase.cpp b/ydb/core/tx/datashard/datashard_direct_erase.cpp
index 0a4d6cc91d69..65fa427b1a6d 100644
--- a/ydb/core/tx/datashard/datashard_direct_erase.cpp
+++ b/ydb/core/tx/datashard/datashard_direct_erase.cpp
@@ -212,6 +212,7 @@ TDirectTxErase::EStatus TDirectTxErase::CheckedExecute(
             /* participants */ { },
             groupProvider ? groupProvider->GetCurrentChangeGroup() : std::nullopt,
             /* ordered */ false,
+            /* arbiter */ false,
             *params.Txc);
         // Note: transaction is already committed, no additional waiting needed
     }
diff --git a/ydb/core/tx/datashard/datashard_impl.h b/ydb/core/tx/datashard/datashard_impl.h
index 7720260dce60..45f1da995d86 100644
--- a/ydb/core/tx/datashard/datashard_impl.h
+++ b/ydb/core/tx/datashard/datashard_impl.h
@@ -236,6 +236,7 @@ class TDataShard
     class TTxCdcStreamScanProgress;
     class TTxCdcStreamEmitHeartbeats;
     class TTxUpdateFollowerReadEdge;
+    class TTxRemoveSchemaSnapshots;
 
     template  friend class TTxDirectBase;
     class TTxUploadRows;
@@ -247,6 +248,8 @@ class TDataShard
     class TTxHandleSafeKqpScan;
     class TTxHandleSafeBuildIndexScan;
 
+    class TTxMediatorStateRestored;
+
     ITransaction *CreateTxMonitoring(TDataShard *self,
                                      NMon::TEvRemoteHttpInfo::TPtr ev);
     ITransaction *CreateTxGetInfo(TDataShard *self,
@@ -328,6 +331,7 @@ class TDataShard
 
     class TWaitVolatileDependencies;
     class TSendVolatileResult;
+    class TSendArbiterReadSets;
 
     struct TEvPrivate {
         enum EEv {
@@ -362,6 +366,8 @@ class TDataShard
             EvConfirmReadonlyLease,
             EvReadonlyLeaseConfirmation,
             EvPlanPredictedTxs,
+            EvTableStatsError,
+            EvRemoveSchemaSnapshots,
             EvEnd
         };
 
@@ -398,6 +404,29 @@ class TDataShard
             ui64 SearchHeight = 0;
         };
 
+        struct TEvTableStatsError : public TEventLocal {
+            enum class ECode {
+                FETCH_PAGE_FAILED,
+                RESOURCE_ALLOCATION_FAILED,
+                ACTOR_DIED,
+                UNKNOWN
+            };
+
+            TEvTableStatsError(ui64 tableId, ECode code, const TString& msg)
+                : TableId(tableId)
+                , Code(code)
+                , Message(msg)
+            {}
+
+            TEvTableStatsError(ui64 tableId, ECode code)
+                : TEvTableStatsError(tableId, code, "")
+            {}
+
+            const ui64 TableId;
+            const ECode Code;
+            const TString Message;
+        };
+
         struct TEvRemoveOldInReadSets : public TEventLocal {};
 
         struct TEvRegisterScanActor : public TEventLocal {
@@ -529,6 +558,7 @@ class TDataShard
             const TRowVersion ReadVersion;
             const TVector ValueTags;
             TVector> Rows;
+            ui64 ReservationCookie = 0;
             const TCdcStreamScanManager::TStats Stats;
         };
 
@@ -557,6 +587,8 @@ class TDataShard
         struct TEvReadonlyLeaseConfirmation: public TEventLocal {};
 
         struct TEvPlanPredictedTxs : public TEventLocal {};
+
+        struct TEvRemoveSchemaSnapshots : public TEventLocal {};
     };
 
     struct Schema : NIceDb::Schema {
@@ -1245,6 +1277,7 @@ class TDataShard
     void Handle(TEvDataShard::TEvSplitPartitioningChanged::TPtr& ev, const TActorContext& ctx);
     void Handle(TEvDataShard::TEvGetTableStats::TPtr& ev, const TActorContext& ctx);
     void Handle(TEvPrivate::TEvAsyncTableStats::TPtr& ev, const TActorContext& ctx);
+    void Handle(TEvPrivate::TEvTableStatsError::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);
@@ -1339,6 +1372,8 @@ class TDataShard
 
     void Handle(TEvPrivate::TEvPlanPredictedTxs::TPtr& ev, const TActorContext& ctx);
 
+    void Handle(TEvPrivate::TEvRemoveSchemaSnapshots::TPtr& ev, const TActorContext& ctx);
+
     void HandleByReplicationSourceOffsetsServer(STATEFN_SIG);
 
     void DoPeriodicTasks(const TActorContext &ctx);
@@ -1578,10 +1613,10 @@ class TDataShard
         return nullptr;
     }
 
-    void RemoveUserTable(const TPathId& tableId) {
-        TableInfos.erase(tableId.LocalPathId);
-        SysLocks.RemoveSchema(tableId);
+    void RemoveUserTable(const TPathId& tableId, ILocksDb* locksDb) {
+        SysLocks.RemoveSchema(tableId, locksDb);
         Pipeline.GetDepTracker().RemoveSchema(tableId);
+        TableInfos.erase(tableId.LocalPathId);
     }
 
     void AddUserTable(const TPathId& tableId, TUserTable::TPtr tableInfo) {
@@ -1835,7 +1870,10 @@ class TDataShard
     void MoveChangeRecord(NIceDb::TNiceDb& db, ui64 order, const TPathId& pathId);
     void MoveChangeRecord(NIceDb::TNiceDb& db, ui64 lockId, ui64 lockOffset, const TPathId& pathId);
     void RemoveChangeRecord(NIceDb::TNiceDb& db, ui64 order);
-    void EnqueueChangeRecords(TVector&& records);
+    // TODO(ilnaz): remove 'afterMove' after #6541
+    void EnqueueChangeRecords(TVector&& records, ui64 cookie = 0, bool afterMove = false);
+    ui32 GetFreeChangeQueueCapacity(ui64 cookie);
+    ui64 ReserveChangeQueueCapacity(ui32 capacity);
     void UpdateChangeExchangeLag(TInstant now);
     void CreateChangeSender(const TActorContext& ctx);
     void KillChangeSender(const TActorContext& ctx);
@@ -1847,6 +1885,8 @@ class TDataShard
     bool LoadChangeRecordCommits(NIceDb::TNiceDb& db, TVector& records);
     void ScheduleRemoveLockChanges(ui64 lockId);
     void ScheduleRemoveAbandonedLockChanges();
+    void ScheduleRemoveSchemaSnapshot(const TSchemaSnapshotKey& key);
+    void ScheduleRemoveAbandonedSchemaSnapshots();
 
     static void PersistCdcStreamScanLastKey(NIceDb::TNiceDb& db, const TSerializedCellVec& value,
         const TPathId& tablePathId, const TPathId& streamPathId);
@@ -1947,6 +1987,7 @@ class TDataShard
     void SendAfterMediatorStepActivate(ui64 mediatorStep, const TActorContext& ctx);
 
     void CheckMediatorStateRestored();
+    void FinishMediatorStateRestore(TTransactionContext&, ui64, ui64);
 
     void FillExecutionStats(const TExecutionProfile& execProfile, TEvDataShard::TEvProposeTransactionResult& result) const;
 
@@ -1973,8 +2014,8 @@ class TDataShard
     void WaitPredictedPlanStep(ui64 step);
     void SchedulePlanPredictedTxs();
 
-    bool CheckChangesQueueOverflow() const;
-    void CheckChangesQueueNoOverflow();
+    bool CheckChangesQueueOverflow(ui64 cookie = 0) const;
+    void CheckChangesQueueNoOverflow(ui64 cookie = 0);
 
     void DeleteReadIterator(TReadIteratorsMap::iterator it);
     void CancelReadIterators(Ydb::StatusIds::StatusCode code, const TString& issue, const TActorContext& ctx);
@@ -2359,9 +2400,9 @@ class TDataShard
 
     // For follower only
     struct TFollowerState {
-        ui64 LastSysUpdate = 0;
-        ui64 LastSchemeUpdate = 0;
-        ui64 LastSnapshotsUpdate = 0;
+        NTable::TDatabase::TChangeCounter LastSysUpdate;
+        NTable::TDatabase::TChangeCounter LastSchemeUpdate;
+        NTable::TDatabase::TChangeCounter LastSnapshotsUpdate;
     };
 
     //
@@ -2613,7 +2654,7 @@ class TDataShard
 
     TVector> MediatorStateWaitingMsgs;
     bool MediatorStateWaiting = false;
-    bool MediatorStateBackupInitiated = false;
+    bool MediatorStateRestoreTxPending = false;
 
     bool IcbRegistered = false;
 
@@ -2706,23 +2747,31 @@ class TDataShard
         TInstant EnqueuedAt;
         ui64 LockId;
         ui64 LockOffset;
+        ui64 ReservationCookie;
 
-        explicit TEnqueuedRecord(ui64 bodySize, const TPathId& tableId,
-                ui64 schemaVersion, TInstant created, TInstant enqueued, ui64 lockId = 0, ui64 lockOffset = 0)
+        explicit TEnqueuedRecord(ui64 bodySize, const TPathId& tableId, ui64 schemaVersion,
+                TInstant created, ui64 lockId = 0, ui64 lockOffset = 0)
             : BodySize(bodySize)
             , TableId(tableId)
             , SchemaVersion(schemaVersion)
             , SchemaSnapshotAcquired(false)
             , CreatedAt(created)
-            , EnqueuedAt(enqueued)
+            , EnqueuedAt(TInstant::Zero())
             , LockId(lockId)
             , LockOffset(lockOffset)
+            , ReservationCookie(0)
         {
         }
 
-        explicit TEnqueuedRecord(const IDataShardChangeCollector::TChange& record, TInstant now)
-            : TEnqueuedRecord(record.BodySize, record.TableId, record.SchemaVersion, record.CreatedAt(), now,
-                record.LockId, record.LockOffset)
+        explicit TEnqueuedRecord(const IDataShardChangeCollector::TChange& record)
+            : TEnqueuedRecord(record.BodySize, record.TableId, record.SchemaVersion,
+                record.CreatedAt(), record.LockId, record.LockOffset)
+        {
+        }
+
+        explicit TEnqueuedRecord(const TChangeRecord& record)
+            : TEnqueuedRecord(record.GetBody().size(), record.GetTableId(), record.GetSchemaVersion(),
+                record.GetApproximateCreationDateTime(), record.GetLockId(), record.GetLockOffset())
         {
         }
     };
@@ -2742,6 +2791,9 @@ class TDataShard
     THashMap ChangesQueue; // ui64 is order
     TIntrusiveList ChangesList;
     ui64 ChangesQueueBytes = 0;
+    THashMap ChangeQueueReservations;
+    ui64 NextChangeQueueReservationCookie = 1;
+    ui32 ChangeQueueReservedCapacity = 0;
     TActorId OutChangeSender;
     bool OutChangeSenderSuspended = false;
 
@@ -2760,9 +2812,11 @@ class TDataShard
         size_t Count = 0;
     };
 
+    TVector CommittingChangeRecords;
     THashMap LockChangeRecords; // ui64 is lock id
     THashMap CommittedLockChangeRecords; // ui64 is lock id
     TVector PendingLockChangeRecordsToRemove;
+    TVector PendingSchemaSnapshotsToGc;
 
     // in
     THashMap InChangeSenders; // ui64 is shard id
@@ -2784,10 +2838,19 @@ class TDataShard
     // from the front
     THashMap CompactionWaiters;
 
-    using TCompactBorrowedWaiterList = TList;
+    struct TCompactBorrowedWaiter : public TThrRefBase {
+        TCompactBorrowedWaiter(TActorId actorId, TLocalPathId requestedTable)
+            : ActorId(actorId)
+            , RequestedTable(requestedTable)
+        { }
+
+        TActorId ActorId;
+        TLocalPathId RequestedTable;
+        THashSet CompactingTables;
+    };
 
     // tableLocalTid -> waiters, similar to CompactionWaiters
-    THashMap CompactBorrowedWaiters;
+    THashMap>> CompactBorrowedWaiters;
 
     struct TReplicationSourceOffsetsReceiveState {
         // A set of tables for which we already received offsets
@@ -2849,6 +2912,16 @@ class TDataShard
         CommittedLockChangeRecords = std::move(committedLockChangeRecords);
     }
 
+    auto TakeChangesQueue() {
+        auto result = std::move(ChangesQueue);
+        ChangesQueue.clear();
+        return result;
+    }
+
+    void SetChangesQueue(THashMap&& changesQueue) {
+        ChangesQueue = std::move(changesQueue);
+    }
+
 protected:
     // Redundant init state required by flat executor implementation
     void StateInit(TAutoPtr &ev) {
@@ -2870,6 +2943,7 @@ class TDataShard
             HFuncTraced(TEvMediatorTimecast::TEvNotifyPlanStep, Handle);
             HFuncTraced(TEvPrivate::TEvMediatorRestoreBackup, Handle);
             HFuncTraced(TEvPrivate::TEvRemoveLockChangeRecords, Handle);
+            HFuncTraced(TEvPrivate::TEvRemoveSchemaSnapshots, Handle);
         default:
             if (!HandleDefaultEvents(ev, SelfId())) {
                 ALOG_WARN(NKikimrServices::TX_DATASHARD, "TDataShard::StateInactive unhandled event type: " << ev->GetTypeRewrite()
@@ -2933,6 +3007,7 @@ class TDataShard
             HFunc(TEvDataShard::TEvSplitPartitioningChanged, Handle);
             HFunc(TEvDataShard::TEvGetTableStats, Handle);
             HFunc(TEvPrivate::TEvAsyncTableStats, Handle);
+            HFunc(TEvPrivate::TEvTableStatsError, Handle);
             HFunc(TEvDataShard::TEvKqpScan, Handle);
             HFunc(TEvDataShard::TEvUploadRowsRequest, Handle);
             HFunc(TEvDataShard::TEvEraseRowsRequest, Handle);
@@ -2993,6 +3068,7 @@ class TDataShard
             HFuncTraced(TEvPrivate::TEvRemoveLockChangeRecords, Handle);
             HFunc(TEvPrivate::TEvConfirmReadonlyLease, Handle);
             HFunc(TEvPrivate::TEvPlanPredictedTxs, Handle);
+            HFuncTraced(TEvPrivate::TEvRemoveSchemaSnapshots, Handle);
             default:
                 if (!HandleDefaultEvents(ev, SelfId())) {
                     ALOG_WARN(NKikimrServices::TX_DATASHARD, "TDataShard::StateWork unhandled event type: " << ev->GetTypeRewrite() << " event: " << ev->ToString());
diff --git a/ydb/core/tx/datashard/datashard_kqp.cpp b/ydb/core/tx/datashard/datashard_kqp.cpp
index cdd14d30f54c..fe75efa49816 100644
--- a/ydb/core/tx/datashard/datashard_kqp.cpp
+++ b/ydb/core/tx/datashard/datashard_kqp.cpp
@@ -764,6 +764,14 @@ bool KqpValidateLocks(ui64 origin, TActiveTransaction* tx, TSysLocks& sysLocks)
     return true;
 }
 
+bool KqpLocksHasArbiter(const NKikimrDataEvents::TKqpLocks* kqpLocks) {
+    return kqpLocks && kqpLocks->GetArbiterShard() != 0;
+}
+
+bool KqpLocksIsArbiter(ui64 tabletId, const NKikimrDataEvents::TKqpLocks* kqpLocks) {
+    return KqpLocksHasArbiter(kqpLocks) && kqpLocks->GetArbiterShard() == tabletId;
+}
+
 bool KqpValidateVolatileTx(ui64 origin, TActiveTransaction* tx, TSysLocks& sysLocks) {
     auto& kqpLocks = tx->GetDataTx()->GetKqpLocks();
 
@@ -779,6 +787,9 @@ bool KqpValidateVolatileTx(ui64 origin, TActiveTransaction* tx, TSysLocks& sysLo
     Y_ABORT_UNLESS(tx->OutReadSets().empty());
     Y_ABORT_UNLESS(tx->AwaitingDecisions().empty());
 
+    const bool hasArbiter = KqpLocksHasArbiter(&kqpLocks);
+    const bool isArbiter = KqpLocksIsArbiter(origin, &kqpLocks);
+
     // Note: usually all shards send locks, since they either have side effects or need to validate locks
     // However it is technically possible to have pure-read shards, that don't contribute to the final decision
     bool sendLocks = SendLocks(kqpLocks, origin);
@@ -808,6 +819,11 @@ bool KqpValidateVolatileTx(ui64 origin, TActiveTransaction* tx, TSysLocks& sysLo
                 continue;
             }
 
+            if (hasArbiter && !isArbiter && dstTabletId != kqpLocks.GetArbiterShard()) {
+                // Non-arbiter shards only send locks to the arbiter
+                continue;
+            }
+
             LOG_TRACE_S(*TlsActivationContext, NKikimrServices::TX_DATASHARD, "Send commit decision from "
                 << origin << " to " << dstTabletId);
 
@@ -821,6 +837,8 @@ bool KqpValidateVolatileTx(ui64 origin, TActiveTransaction* tx, TSysLocks& sysLo
 
             tx->OutReadSets()[key] = std::move(bodyStr);
         }
+    } else {
+        Y_ABORT_UNLESS(!isArbiter, "Arbiter is not in the sending shards set");
     }
 
     bool receiveLocks = ReceiveLocks(kqpLocks, origin);
@@ -833,6 +851,11 @@ bool KqpValidateVolatileTx(ui64 origin, TActiveTransaction* tx, TSysLocks& sysLo
                 continue;
             }
 
+            if (hasArbiter && !isArbiter && srcTabletId != kqpLocks.GetArbiterShard()) {
+                // Non-arbiter shards only await decision from the arbiter
+                continue;
+            }
+
             LOG_TRACE_S(*TlsActivationContext, NKikimrServices::TX_DATASHARD, "Will wait for volatile decision from "
                 << srcTabletId << " to " << origin);
 
@@ -891,6 +914,8 @@ bool KqpValidateVolatileTx(ui64 origin, TActiveTransaction* tx, TSysLocks& sysLo
 
             return false;
         }
+    } else {
+        Y_ABORT_UNLESS(!isArbiter, "Arbiter is not in the receiving shards set");
     }
 
     return true;
diff --git a/ydb/core/tx/datashard/datashard_kqp.h b/ydb/core/tx/datashard/datashard_kqp.h
index 54b9c4746958..ae91dc661ad8 100644
--- a/ydb/core/tx/datashard/datashard_kqp.h
+++ b/ydb/core/tx/datashard/datashard_kqp.h
@@ -38,6 +38,9 @@ void KqpPrepareInReadsets(TInputOpData::TInReadSets& inReadSets,
 bool KqpValidateLocks(ui64 origin, TActiveTransaction* tx, TSysLocks& sysLocks);
 bool KqpValidateVolatileTx(ui64 origin, TActiveTransaction* tx, TSysLocks& sysLocks);
 
+bool KqpLocksHasArbiter(const NKikimrDataEvents::TKqpLocks* kqpLocks);
+bool KqpLocksIsArbiter(ui64 tabletId, const NKikimrDataEvents::TKqpLocks* kqpLocks);
+
 void KqpEraseLocks(ui64 origin, TActiveTransaction* tx, TSysLocks& sysLocks);
 void KqpCommitLocks(ui64 origin, TActiveTransaction* tx, const TRowVersion& writeVersion, TDataShard& dataShard);
 
diff --git a/ydb/core/tx/datashard/datashard_loans.cpp b/ydb/core/tx/datashard/datashard_loans.cpp
index 58c9f2de2280..6644e8cfd5b3 100644
--- a/ydb/core/tx/datashard/datashard_loans.cpp
+++ b/ydb/core/tx/datashard/datashard_loans.cpp
@@ -50,6 +50,7 @@ NTabletFlatExecutor::ITransaction* TDataShard::CreateTxInitiateBorrowedPartsRetu
 }
 
 void TDataShard::CompletedLoansChanged(const TActorContext &ctx) {
+    LOG_INFO_S(ctx, NKikimrServices::TX_DATASHARD, TabletID() << " CompletedLoansChanged");
     Y_ABORT_UNLESS(Executor()->GetStats().CompactedPartLoans);
 
     CheckInitiateBorrowedPartsReturn(ctx);
diff --git a/ydb/core/tx/datashard/datashard_locks.cpp b/ydb/core/tx/datashard/datashard_locks.cpp
index a7e5aecbaa5c..4291d8c53e16 100644
--- a/ydb/core/tx/datashard/datashard_locks.cpp
+++ b/ydb/core/tx/datashard/datashard_locks.cpp
@@ -44,16 +44,17 @@ TLockInfo::TLockInfo(TLockLocker * locker, ui64 lockId, ui32 lockNodeId)
     , CreationTime(TAppData::TimeProvider->Now())
 {}
 
-TLockInfo::TLockInfo(TLockLocker * locker, ui64 lockId, ui32 lockNodeId, ui32 generation, ui64 counter, TInstant createTs)
+TLockInfo::TLockInfo(TLockLocker * locker, const ILocksDb::TLockRow& row)
     : Locker(locker)
-    , LockId(lockId)
-    , LockNodeId(lockNodeId)
-    , Generation(generation)
-    , Counter(counter)
-    , CreationTime(createTs)
+    , LockId(row.LockId)
+    , LockNodeId(row.LockNodeId)
+    , Generation(row.Generation)
+    , Counter(row.Counter)
+    , CreationTime(TInstant::MicroSeconds(row.CreateTs))
+    , Flags(ELockFlags(row.Flags))
     , Persistent(true)
 {
-    if (counter == Max()) {
+    if (Counter == Max()) {
         BreakVersion.emplace(TRowVersion::Min());
     }
 }
@@ -145,7 +146,7 @@ void TLockInfo::OnRemoved() {
 void TLockInfo::PersistLock(ILocksDb* db) {
     Y_ABORT_UNLESS(!IsPersistent());
     Y_ABORT_UNLESS(db, "Cannot persist lock without a db");
-    db->PersistAddLock(LockId, LockNodeId, Generation, Counter, CreationTime.MicroSeconds());
+    db->PersistAddLock(LockId, LockNodeId, Generation, Counter, CreationTime.MicroSeconds(), ui64(Flags));
     Persistent = true;
 
     PersistRanges(db);
@@ -298,11 +299,11 @@ void TLockInfo::CleanupConflicts() {
     }
 }
 
-void TLockInfo::RestorePersistentRange(ui64 rangeId, const TPathId& tableId, ELockRangeFlags flags) {
+void TLockInfo::RestorePersistentRange(const ILocksDb::TLockRange& rangeRow) {
     auto& range = PersistentRanges.emplace_back();
-    range.Id = rangeId;
-    range.TableId = tableId;
-    range.Flags = flags;
+    range.Id = rangeRow.RangeId;
+    range.TableId = rangeRow.TableId;
+    range.Flags = ELockRangeFlags(rangeRow.Flags);
 
     if (!!(range.Flags & ELockRangeFlags::Read)) {
         if (ReadTables.insert(range.TableId).second) {
@@ -334,6 +335,14 @@ void TLockInfo::RestorePersistentVolatileDependency(ui64 txId) {
     VolatileDependencies.insert(txId);
 }
 
+void TLockInfo::SetFrozen(ILocksDb* db) {
+    Y_ABORT_UNLESS(IsPersistent());
+    Flags |= ELockFlags::Frozen;
+    if (db) {
+        db->PersistLockFlags(LockId, ui64(Flags));
+    }
+}
+
 // TTableLocks
 
 void TTableLocks::AddShardLock(TLockInfo* lock) {
@@ -550,14 +559,14 @@ TLockInfo::TPtr TLockLocker::GetOrAddLock(ui64 lockId, ui32 lockNodeId) {
     return lock;
 }
 
-TLockInfo::TPtr TLockLocker::AddLock(ui64 lockId, ui32 lockNodeId, ui32 generation, ui64 counter, TInstant createTs) {
-    Y_ABORT_UNLESS(Locks.find(lockId) == Locks.end());
+TLockInfo::TPtr TLockLocker::AddLock(const ILocksDb::TLockRow& row) {
+    Y_ABORT_UNLESS(Locks.find(row.LockId) == Locks.end());
 
-    TLockInfo::TPtr lock(new TLockInfo(this, lockId, lockNodeId, generation, counter, createTs));
+    TLockInfo::TPtr lock(new TLockInfo(this, row));
     Y_ABORT_UNLESS(lock->IsPersistent());
-    Locks[lockId] = lock;
-    if (lockNodeId) {
-        PendingSubscribeLocks.emplace_back(lockId, lockNodeId);
+    Locks[row.LockId] = lock;
+    if (row.LockNodeId) {
+        PendingSubscribeLocks.emplace_back(row.LockId, row.LockNodeId);
     }
     return lock;
 }
@@ -615,12 +624,23 @@ void TLockLocker::UpdateSchema(const TPathId& tableId, const TUserTable& tableIn
     table->UpdateKeyColumnsTypes(tableInfo.KeyColumnTypes);
 }
 
-void TLockLocker::RemoveSchema(const TPathId& tableId) {
+void TLockLocker::RemoveSchema(const TPathId& tableId, ILocksDb* db) {
+    // Make sure all persistent locks are removed from the database
+    for (auto& pr : Locks) {
+        if (pr.second->IsPersistent()) {
+            pr.second->PersistRemoveLock(db);
+        }
+        pr.second->OnRemoved();
+    }
+
     Tables.erase(tableId);
     Y_ABORT_UNLESS(Tables.empty());
     Locks.clear();
     ShardLocks.clear();
+    ExpireQueue.Clear();
     BrokenLocks.Clear();
+    BrokenPersistentLocks.Clear();
+    BrokenLocksCount_ = 0;
     CleanupPending.clear();
     CleanupCandidates.clear();
     PendingSubscribeLocks.clear();
@@ -1171,9 +1191,9 @@ bool TSysLocks::Load(ILocksDb& db) {
     Locker.Clear();
 
     for (auto& lockRow : rows) {
-        TLockInfo::TPtr lock = Locker.AddLock(lockRow.LockId, lockRow.LockNodeId, lockRow.Generation, lockRow.Counter, TInstant::MicroSeconds(lockRow.CreateTs));
+        TLockInfo::TPtr lock = Locker.AddLock(lockRow);
         for (auto& rangeRow : lockRow.Ranges) {
-            lock->RestorePersistentRange(rangeRow.RangeId, rangeRow.TableId, ELockRangeFlags(rangeRow.Flags));
+            lock->RestorePersistentRange(rangeRow);
         }
     }
 
diff --git a/ydb/core/tx/datashard/datashard_locks.h b/ydb/core/tx/datashard/datashard_locks.h
index 2d95dc74e748..f12eab077eb2 100644
--- a/ydb/core/tx/datashard/datashard_locks.h
+++ b/ydb/core/tx/datashard/datashard_locks.h
@@ -57,6 +57,7 @@ class ILocksDb {
     // Persist adding/removing a lock info
     virtual void PersistAddLock(ui64 lockId, ui32 lockNodeId, ui32 generation, ui64 counter, ui64 createTs, ui64 flags = 0) = 0;
     virtual void PersistLockCounter(ui64 lockId, ui64 counter) = 0;
+    virtual void PersistLockFlags(ui64 lockId, ui64 flags) = 0;
     virtual void PersistRemoveLock(ui64 lockId) = 0;
 
     // Persist adding/removing info on locked ranges
@@ -206,6 +207,23 @@ struct TPendingSubscribeLock {
     }
 };
 
+// ELockFlags type safe enum
+
+enum class ELockFlags : ui64 {
+    None = 0,
+    Frozen = 1,
+};
+
+using ELockFlagsRaw = std::underlying_type::type;
+
+inline ELockFlags operator|(ELockFlags a, ELockFlags b) { return ELockFlags(ELockFlagsRaw(a) | ELockFlagsRaw(b)); }
+inline ELockFlags operator&(ELockFlags a, ELockFlags b) { return ELockFlags(ELockFlagsRaw(a) & ELockFlagsRaw(b)); }
+inline ELockFlags& operator|=(ELockFlags& a, ELockFlags b) { return a = a | b; }
+inline ELockFlags& operator&=(ELockFlags& a, ELockFlags b) { return a = a & b; }
+inline bool operator!(ELockFlags c) { return ELockFlagsRaw(c) == 0; }
+
+// ELockConflictFlags type safe enum
+
 enum class ELockConflictFlags : ui8 {
     None = 0,
     BreakThemOnOurCommit = 1,
@@ -220,6 +238,8 @@ inline ELockConflictFlags& operator|=(ELockConflictFlags& a, ELockConflictFlags
 inline ELockConflictFlags& operator&=(ELockConflictFlags& a, ELockConflictFlags b) { return a = a & b; }
 inline bool operator!(ELockConflictFlags c) { return ELockConflictFlagsRaw(c) == 0; }
 
+// ELockRangeFlags type safe enum
+
 enum class ELockRangeFlags : ui8 {
     None = 0,
     Read = 1,
@@ -262,7 +282,7 @@ class TLockInfo
     using TPtr = TIntrusivePtr;
 
     TLockInfo(TLockLocker * locker, ui64 lockId, ui32 lockNodeId);
-    TLockInfo(TLockLocker * locker, ui64 lockId, ui32 lockNodeId, ui32 generation, ui64 counter, TInstant createTs);
+    TLockInfo(TLockLocker * locker, const ILocksDb::TLockRow& row);
     ~TLockInfo();
 
     bool Empty() const {
@@ -303,6 +323,9 @@ class TLockInfo
     ui32 GetLockNodeId() const { return LockNodeId; }
 
     TInstant GetCreationTime() const { return CreationTime; }
+
+    ELockFlags GetFlags() const { return Flags; }
+
     const THashSet& GetReadTables() const { return ReadTables; }
     const THashSet& GetWriteTables() const { return WriteTables; }
 
@@ -320,7 +343,7 @@ class TLockInfo
     void PersistConflicts(ILocksDb* db);
     void CleanupConflicts();
 
-    void RestorePersistentRange(ui64 rangeId, const TPathId& tableId, ELockRangeFlags flags);
+    void RestorePersistentRange(const ILocksDb::TLockRange& rangeRow);
     void RestorePersistentConflict(TLockInfo* otherLock);
     void RestorePersistentVolatileDependency(ui64 txId);
 
@@ -341,8 +364,8 @@ class TLockInfo
     ui64 GetLastOpId() const { return LastOpId; }
     void SetLastOpId(ui64 opId) { LastOpId = opId; }
 
-    bool IsFrozen() const { return Frozen; }
-    void SetFrozen() { Frozen = true; }
+    bool IsFrozen() const { return !!(Flags & ELockFlags::Frozen); }
+    void SetFrozen(ILocksDb* db = nullptr);
 
 private:
     void MakeShardLock();
@@ -369,6 +392,7 @@ class TLockInfo
     ui32 Generation;
     ui64 Counter;
     TInstant CreationTime;
+    ELockFlags Flags = ELockFlags::None;
     THashSet ReadTables;
     THashSet WriteTables;
     TVector Points;
@@ -386,7 +410,6 @@ class TLockInfo
     TVector PersistentRanges;
 
     ui64 LastOpId = 0;
-    bool Frozen = false;
 };
 
 struct TTableLocksReadListTag {};
@@ -578,7 +601,7 @@ class TLockLocker {
     }
 
     void UpdateSchema(const TPathId& tableId, const TUserTable& tableInfo);
-    void RemoveSchema(const TPathId& tableId);
+    void RemoveSchema(const TPathId& tableId, ILocksDb* db);
     bool ForceShardLock(const TPathId& tableId) const;
     bool ForceShardLock(const TIntrusiveList& readTables) const;
 
@@ -641,7 +664,7 @@ class TLockLocker {
     void RemoveBrokenRanges();
 
     TLockInfo::TPtr GetOrAddLock(ui64 lockId, ui32 lockNodeId);
-    TLockInfo::TPtr AddLock(ui64 lockId, ui32 lockNodeId, ui32 generation, ui64 counter, TInstant createTs);
+    TLockInfo::TPtr AddLock(const ILocksDb::TLockRow& row);
     void RemoveOneLock(ui64 lockId, ILocksDb* db = nullptr);
 
     void SaveBrokenPersistentLocks(ILocksDb* db);
@@ -817,8 +840,8 @@ class TSysLocks {
         Locker.UpdateSchema(tableId, tableInfo);
     }
 
-    void RemoveSchema(const TPathId& tableId) {
-        Locker.RemoveSchema(tableId);
+    void RemoveSchema(const TPathId& tableId, ILocksDb* db) {
+        Locker.RemoveSchema(tableId, db);
     }
 
     TVector ApplyLocks();
diff --git a/ydb/core/tx/datashard/datashard_locks_db.cpp b/ydb/core/tx/datashard/datashard_locks_db.cpp
index 9285acb6df44..5e5b21c173e9 100644
--- a/ydb/core/tx/datashard/datashard_locks_db.cpp
+++ b/ydb/core/tx/datashard/datashard_locks_db.cpp
@@ -129,6 +129,14 @@ void TDataShardLocksDb::PersistLockCounter(ui64 lockId, ui64 counter) {
     HasChanges_ = true;
 }
 
+void TDataShardLocksDb::PersistLockFlags(ui64 lockId, ui64 flags) {
+    using Schema = TDataShard::Schema;
+    NIceDb::TNiceDb db(DB);
+    db.Table().Key(lockId).Update(
+        NIceDb::TUpdate(flags));
+    HasChanges_ = true;
+}
+
 void TDataShardLocksDb::PersistRemoveLock(ui64 lockId) {
     // We remove lock changes unless it's managed by volatile tx manager
     bool isVolatile = Self.GetVolatileTxManager().FindByCommitTxId(lockId);
diff --git a/ydb/core/tx/datashard/datashard_locks_db.h b/ydb/core/tx/datashard/datashard_locks_db.h
index 1aba7176ec94..c9da2a157624 100644
--- a/ydb/core/tx/datashard/datashard_locks_db.h
+++ b/ydb/core/tx/datashard/datashard_locks_db.h
@@ -23,6 +23,7 @@ class TDataShardLocksDb
     // Persist adding/removing a lock info
     void PersistAddLock(ui64 lockId, ui32 lockNodeId, ui32 generation, ui64 counter, ui64 createTs, ui64 flags = 0) override;
     void PersistLockCounter(ui64 lockId, ui64 counter) override;
+    void PersistLockFlags(ui64 lockId, ui64 flags) override;
     void PersistRemoveLock(ui64 lockId) override;
 
     // Persist adding/removing info on locked ranges
diff --git a/ydb/core/tx/datashard/datashard_outreadset.cpp b/ydb/core/tx/datashard/datashard_outreadset.cpp
index 79f73afcf065..466c5adf63c2 100644
--- a/ydb/core/tx/datashard/datashard_outreadset.cpp
+++ b/ydb/core/tx/datashard/datashard_outreadset.cpp
@@ -19,6 +19,7 @@ bool TOutReadSets::LoadReadSets(NIceDb::TNiceDb& db) {
     // TODO[serxa]: this should be Range but it is not working right now
     auto rowset = db.Table().GreaterOrEqual(0).Select<
                                     Schema::OutReadSets::Seqno,
+                                    Schema::OutReadSets::Step,
                                     Schema::OutReadSets::TxId,
                                     Schema::OutReadSets::Origin,
                                     Schema::OutReadSets::From,
@@ -27,12 +28,18 @@ bool TOutReadSets::LoadReadSets(NIceDb::TNiceDb& db) {
         return false;
     while (!rowset.EndOfSet()) {
         ui64 seqNo = rowset.GetValue();
+        ui64 step = rowset.GetValue();
         ui64 txId = rowset.GetValue();
         ui64 origin = rowset.GetValue();
         ui64 source = rowset.GetValue();
         ui64 target = rowset.GetValue();
 
-        TReadSetKey rsInfo(txId, origin, source, target);
+        TReadSetInfo rsInfo;
+        rsInfo.TxId = txId;
+        rsInfo.Step = step;
+        rsInfo.Origin = origin;
+        rsInfo.From = source;
+        rsInfo.To = target;
 
         Y_ABORT_UNLESS(!CurrentReadSets.contains(seqNo));
         Y_ABORT_UNLESS(!CurrentReadSetInfos.contains(rsInfo));
@@ -48,19 +55,22 @@ bool TOutReadSets::LoadReadSets(NIceDb::TNiceDb& db) {
     return true;
 }
 
-void TOutReadSets::SaveReadSet(NIceDb::TNiceDb& db, ui64 seqNo, ui64 step, const TReadSetKey& rsInfo, TString body) {
+void TOutReadSets::SaveReadSet(NIceDb::TNiceDb& db, ui64 seqNo, ui64 step, const TReadSetKey& rsKey, const TString& body) {
     using Schema = TDataShard::Schema;
 
     Y_ABORT_UNLESS(!CurrentReadSets.contains(seqNo));
-    Y_ABORT_UNLESS(!CurrentReadSetInfos.contains(rsInfo));
+    Y_ABORT_UNLESS(!CurrentReadSetInfos.contains(rsKey));
 
-    CurrentReadSetInfos[rsInfo] = seqNo;
+    TReadSetInfo rsInfo(rsKey);
+    rsInfo.Step = step;
+
+    CurrentReadSetInfos[rsKey] = seqNo;
     CurrentReadSets[seqNo] = rsInfo;
 
     UpdateMonCounter();
 
     db.Table().Key(seqNo).Update(
-        NIceDb::TUpdate(step),
+        NIceDb::TUpdate(rsInfo.Step),
         NIceDb::TUpdate(rsInfo.TxId),
         NIceDb::TUpdate(rsInfo.Origin),
         NIceDb::TUpdate(rsInfo.From),
@@ -68,6 +78,31 @@ void TOutReadSets::SaveReadSet(NIceDb::TNiceDb& db, ui64 seqNo, ui64 step, const
         NIceDb::TUpdate(body));
 }
 
+void TOutReadSets::RemoveReadSet(NIceDb::TNiceDb& db, ui64 seqNo) {
+    using Schema = TDataShard::Schema;
+
+    db.Table().Key(seqNo).Delete();
+
+    auto it = CurrentReadSets.find(seqNo);
+    if (it != CurrentReadSets.end()) {
+        CurrentReadSetInfos.erase(it->second);
+        CurrentReadSets.erase(it);
+    }
+}
+
+TReadSetInfo TOutReadSets::ReplaceReadSet(NIceDb::TNiceDb& db, ui64 seqNo, const TString& body) {
+    using Schema = TDataShard::Schema;
+
+    auto it = CurrentReadSets.find(seqNo);
+    if (it != CurrentReadSets.end()) {
+        db.Table().Key(seqNo).Update(
+            NIceDb::TUpdate(body));
+        return it->second;
+    } else {
+        return TReadSetInfo();
+    }
+}
+
 void TOutReadSets::AckForDeletedDestination(ui64 tabletId, ui64 seqNo, const TActorContext &ctx) {
     const TReadSetKey* rsInfo  = CurrentReadSets.FindPtr(seqNo);
 
@@ -113,8 +148,6 @@ void TOutReadSets::SaveAck(const TActorContext &ctx, TAutoPtr& event : ReadSetAcks) {
         TEvTxProcessing::TEvReadSetAck& ev = *event;
@@ -128,7 +161,7 @@ void TOutReadSets::Cleanup(NIceDb::TNiceDb& db, const TActorContext& ctx) {
             "Deleted RS at %" PRIu64 " source %" PRIu64 " dest %" PRIu64 " consumer %" PRIu64 " seqno %" PRIu64" txId %" PRIu64,
             Self->TabletID(), sender, dest, consumer, seqno, txId);
 
-        db.Table().Key(seqno).Delete();
+        RemoveReadSet(db, seqno);
         Self->ResendReadSetPipeTracker.DetachTablet(seqno, ev.Record.GetTabletDest(), 0, ctx);
     }
     ReadSetAcks.clear();
@@ -140,14 +173,44 @@ void TOutReadSets::Cleanup(NIceDb::TNiceDb& db, const TActorContext& ctx) {
 void TOutReadSets::ResendAll(const TActorContext& ctx) {
     TPendingPipeTrackerCommands pendingPipeTrackerCommands;
     for (const auto& rs : CurrentReadSets) {
+        if (rs.second.OnHold) {
+            continue;
+        }
         ui64 seqNo = rs.first;
         ui64 target = rs.second.To;
-        Self->ResendReadSetQueue.Progress(rs.first, ctx);
+        Self->ResendReadSetQueue.Progress(seqNo, ctx);
         pendingPipeTrackerCommands.AttachTablet(seqNo, target);
     }
     pendingPipeTrackerCommands.Apply(Self->ResendReadSetPipeTracker, ctx);
 }
 
+void TOutReadSets::HoldArbiterReadSets() {
+    for (auto& rs : CurrentReadSets) {
+        const ui64& seqNo = rs.first;
+        const ui64& txId = rs.second.TxId;
+        auto* info = Self->VolatileTxManager.FindByTxId(txId);
+        if (info && info->IsArbiter && info->State != EVolatileTxState::Committed) {
+            info->ArbiterReadSets.push_back(seqNo);
+            info->IsArbiterOnHold = true;
+            rs.second.OnHold = true;
+        }
+    }
+}
+
+void TOutReadSets::ReleaseOnHoldReadSets(const std::vector& seqNos, const TActorContext& ctx) {
+    TPendingPipeTrackerCommands pendingPipeTrackerCommands;
+    for (ui64 seqNo : seqNos) {
+        auto it = CurrentReadSets.find(seqNo);
+        if (it != CurrentReadSets.end() && it->second.OnHold) {
+            it->second.OnHold = false;
+            ui64 target = it->second.To;
+            Self->ResendReadSetQueue.Progress(seqNo, ctx);
+            pendingPipeTrackerCommands.AttachTablet(seqNo, target);
+        }
+    }
+    pendingPipeTrackerCommands.Apply(Self->ResendReadSetPipeTracker, ctx);
+}
+
 bool TOutReadSets::ResendRS(NTabletFlatExecutor::TTransactionContext &txc, const TActorContext &ctx, ui64 seqNo) {
     using Schema = TDataShard::Schema;
 
diff --git a/ydb/core/tx/datashard/datashard_outreadset.h b/ydb/core/tx/datashard/datashard_outreadset.h
index 3cf4c8db01a5..388ee237a7df 100644
--- a/ydb/core/tx/datashard/datashard_outreadset.h
+++ b/ydb/core/tx/datashard/datashard_outreadset.h
@@ -35,13 +35,22 @@ struct TReadSetKey {
         return TxId + (Origin << 16) + (From << 8) + To;
     }
 
-    explicit operator size_t () const {
+    explicit operator size_t() const {
         return Hash();
     }
 
-    bool operator == (const TReadSetKey& other) const {
-        return TxId == other.TxId && Origin == other.Origin && From == other.From && To == other.To;
-    }
+    friend bool operator==(const TReadSetKey& a, const TReadSetKey& b) = default;
+};
+
+struct TReadSetInfo : TReadSetKey {
+    ui64 Step = 0;
+    bool OnHold = false;
+
+    TReadSetInfo() = default;
+
+    explicit TReadSetInfo(const TReadSetKey& rsKey)
+        : TReadSetKey(rsKey)
+    {}
 };
 
 ///
@@ -54,7 +63,9 @@ class TOutReadSets {
     {}
 
     bool LoadReadSets(NIceDb::TNiceDb& db);
-    void SaveReadSet(NIceDb::TNiceDb& db, ui64 seqNo, ui64 step, const TReadSetKey& rsKey, TString body);
+    void SaveReadSet(NIceDb::TNiceDb& db, ui64 seqNo, ui64 step, const TReadSetKey& rsKey, const TString& body);
+    void RemoveReadSet(NIceDb::TNiceDb& db, ui64 seqNo);
+    TReadSetInfo ReplaceReadSet(NIceDb::TNiceDb& db, ui64 seqNo, const TString& body);
     void SaveAck(const TActorContext& ctx, TAutoPtr ev);
     void AckForDeletedDestination(ui64 tabletId, ui64 seqNo, const TActorContext &ctx);
     bool ResendRS(NTabletFlatExecutor::TTransactionContext& txc, const TActorContext& ctx, ui64 seqNo);
@@ -74,12 +85,30 @@ class TOutReadSets {
     void ResendExpectations(ui64 target, const TActorContext& ctx);
     THashMap RemoveExpectations(ui64 target);
 
+    /**
+     * Must be called after the database is reloaded.
+     *
+     * Matches readsets to uncommitted arbiter volatile transactions and puts
+     * them on hold. These readsets will not be sent until the transaction
+     * is committed.
+     */
+    void HoldArbiterReadSets();
+
+    /**
+     * Releases readsets that are currently on hold and schedules them for
+     * resending. This is called when an arbiter volatile transaction has
+     * determined it is going to be committed, and only after a restart.
+     * Readsets after initial execution are not on hold and are sent normally
+     * after volatile transaction commits.
+     */
+    void ReleaseOnHoldReadSets(const std::vector& seqNos, const TActorContext& ctx);
+
 private:
     void UpdateMonCounter() const;
 
 private:
     TDataShard * Self;
-    THashMap CurrentReadSets;      // SeqNo -> Info
+    THashMap CurrentReadSets;     // SeqNo -> Info
     THashMap CurrentReadSetInfos;  // Info -> SeqNo
     THashSet AckedSeqno;
     TVector> ReadSetAcks;
diff --git a/ydb/core/tx/datashard/datashard_pipeline.cpp b/ydb/core/tx/datashard/datashard_pipeline.cpp
index 4c2cd578930b..e0f8d2d2c2bd 100644
--- a/ydb/core/tx/datashard/datashard_pipeline.cpp
+++ b/ydb/core/tx/datashard/datashard_pipeline.cpp
@@ -38,6 +38,7 @@ TPipeline::~TPipeline()
         pr.second->ClearSpecialDependencies();
         pr.second->ClearPlannedConflicts();
         pr.second->ClearImmediateConflicts();
+        pr.second->ClearRepeatableReadConflicts();
     }
 }
 
@@ -400,13 +401,25 @@ void TPipeline::AddActiveOp(TOperation::TPtr op)
         if (Self->IsMvccEnabled()) {
             TStepOrder stepOrder = op->GetStepOrder();
             TRowVersion version(stepOrder.Step, stepOrder.TxId);
-            TRowVersion completeEdge = Max(
-                    Self->SnapshotManager.GetCompleteEdge(),
-                    Self->SnapshotManager.GetUnprotectedReadEdge());
-            if (version <= completeEdge) {
-                op->SetFlag(TTxFlags::BlockingImmediateOps);
-            } else if (version <= Self->SnapshotManager.GetIncompleteEdge()) {
-                op->SetFlag(TTxFlags::BlockingImmediateWrites);
+            if (version <= Self->SnapshotManager.GetCompleteEdge() ||
+                version < Self->SnapshotManager.GetImmediateWriteEdge() ||
+                version < Self->SnapshotManager.GetUnprotectedReadEdge())
+            {
+                // This transaction would have been marked as logically complete
+                if (!op->HasFlag(TTxFlags::BlockingImmediateOps)) {
+                    LOG_TRACE_S(*TlsActivationContext, NKikimrServices::TX_DATASHARD,
+                        "Adding BlockingImmediateOps for op " << *op << " at " << Self->TabletID());
+                    op->SetFlag(TTxFlags::BlockingImmediateOps);
+                }
+            } else if (version <= Self->SnapshotManager.GetIncompleteEdge() ||
+                       version <= Self->SnapshotManager.GetUnprotectedReadEdge())
+            {
+                // This transaction would have been marked as logically incomplete
+                if (!op->HasFlag(TTxFlags::BlockingImmediateWrites)) {
+                    LOG_TRACE_S(*TlsActivationContext, NKikimrServices::TX_DATASHARD,
+                        "Adding BlockingImmediateWrites for op " << *op << " at " << Self->TabletID());
+                    op->SetFlag(TTxFlags::BlockingImmediateWrites);
+                }
             }
         }
         auto pr = ActivePlannedOps.emplace(op->GetStepOrder(), op);
@@ -414,10 +427,14 @@ void TPipeline::AddActiveOp(TOperation::TPtr op)
         Y_ABORT_UNLESS(pr.first == std::prev(ActivePlannedOps.end()), "AddActiveOp must always add transactions in order");
         bool isComplete = op->HasFlag(TTxFlags::BlockingImmediateOps);
         if (ActivePlannedOpsLogicallyCompleteEnd == ActivePlannedOps.end() && !isComplete) {
+            LOG_TRACE_S(*TlsActivationContext, NKikimrServices::TX_DATASHARD,
+                "Operation " << *op << " is the new logically complete end at " << Self->TabletID());
             ActivePlannedOpsLogicallyCompleteEnd = pr.first;
         }
         bool isIncomplete = isComplete || op->HasFlag(TTxFlags::BlockingImmediateWrites);
         if (ActivePlannedOpsLogicallyIncompleteEnd == ActivePlannedOps.end() && !isIncomplete) {
+            LOG_TRACE_S(*TlsActivationContext, NKikimrServices::TX_DATASHARD,
+                "Operation " << *op << " is the new logically incomplete end at " << Self->TabletID());
             ActivePlannedOpsLogicallyIncompleteEnd = pr.first;
         }
     }
@@ -487,6 +504,7 @@ void TPipeline::UnblockNormalDependencies(const TOperation::TPtr &op)
     op->ClearDependencies();
     op->ClearPlannedConflicts();
     op->ClearImmediateConflicts();
+    op->ClearRepeatableReadConflicts();
     DepTracker.RemoveOperation(op);
 }
 
@@ -1723,15 +1741,17 @@ EExecutionStatus TPipeline::RunExecutionPlan(TOperation::TPtr op,
             return EExecutionStatus::Reschedule;
         }
 
-        NWilson::TSpan unitSpan(TWilsonTablet::Tablet, txc.TransactionExecutionSpan.GetTraceId(), "Datashard.Unit");
+        NWilson::TSpan unitSpan(TWilsonTablet::TabletDetailed, txc.TransactionExecutionSpan.GetTraceId(), "Datashard.Unit");
         
         NCpuTime::TCpuTimer timer;
         auto status = unit.Execute(op, txc, ctx);
         op->AddExecutionTime(timer.GetTime());
         
-        unitSpan.Attribute("Type", TypeName(unit))
-                .Attribute("Status", static_cast(status))
-                .EndOk();
+        if (unitSpan) {
+            unitSpan.Attribute("Type", TypeName(unit))
+                    .Attribute("Status", static_cast(status))
+                    .EndOk();
+        }
 
         LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD,
                     "Execution status for " << *op << " at " << Self->TabletID()
diff --git a/ydb/core/tx/datashard/datashard_schema_snapshots.cpp b/ydb/core/tx/datashard/datashard_schema_snapshots.cpp
index 77cad7bf4d78..71b600eda02e 100644
--- a/ydb/core/tx/datashard/datashard_schema_snapshots.cpp
+++ b/ydb/core/tx/datashard/datashard_schema_snapshots.cpp
@@ -20,6 +20,7 @@ TSchemaSnapshotManager::TSchemaSnapshotManager(const TDataShard* self)
 
 void TSchemaSnapshotManager::Reset() {
     Snapshots.clear();
+    References.clear();
 }
 
 bool TSchemaSnapshotManager::Load(NIceDb::TNiceDb& db) {
@@ -79,14 +80,16 @@ const TSchemaSnapshot* TSchemaSnapshotManager::FindSnapshot(const TSchemaSnapsho
     return Snapshots.FindPtr(key);
 }
 
-void TSchemaSnapshotManager::RemoveShapshot(NIceDb::TNiceDb& db, const TSchemaSnapshotKey& key) {
+void TSchemaSnapshotManager::RemoveShapshot(NTable::TDatabase& db, const TSchemaSnapshotKey& key) {
     auto it = Snapshots.find(key);
     if (it == Snapshots.end()) {
         return;
     }
 
     Snapshots.erase(it);
-    PersistRemoveSnapshot(db, key);
+
+    NIceDb::TNiceDb nicedb(db);
+    PersistRemoveSnapshot(nicedb, key);
 }
 
 void TSchemaSnapshotManager::RenameSnapshots(NTable::TDatabase& db,
@@ -119,6 +122,10 @@ void TSchemaSnapshotManager::RenameSnapshots(NTable::TDatabase& db,
     }
 }
 
+const TSchemaSnapshotManager::TSnapshots& TSchemaSnapshotManager::GetSnapshots() const {
+    return Snapshots;
+}
+
 bool TSchemaSnapshotManager::AcquireReference(const TSchemaSnapshotKey& key) {
     auto it = Snapshots.find(key);
     if (it == Snapshots.end()) {
@@ -152,6 +159,15 @@ bool TSchemaSnapshotManager::ReleaseReference(const TSchemaSnapshotKey& key) {
     return true;
 }
 
+bool TSchemaSnapshotManager::HasReference(const TSchemaSnapshotKey& key) const {
+    auto refIt = References.find(key);
+    if (refIt != References.end()) {
+        return refIt->second;
+    } else {
+        return false;
+    }
+}
+
 void TSchemaSnapshotManager::PersistAddSnapshot(NIceDb::TNiceDb& db, const TSchemaSnapshotKey& key, const TSchemaSnapshot& snapshot) {
     using Schema = TDataShard::Schema;
     db.Table()
diff --git a/ydb/core/tx/datashard/datashard_schema_snapshots.h b/ydb/core/tx/datashard/datashard_schema_snapshots.h
index db0d3b655b34..0bc80a628e2e 100644
--- a/ydb/core/tx/datashard/datashard_schema_snapshots.h
+++ b/ydb/core/tx/datashard/datashard_schema_snapshots.h
@@ -23,6 +23,8 @@ struct TSchemaSnapshot {
 };
 
 class TSchemaSnapshotManager {
+    using TSnapshots = TMap>;
+
 public:
     explicit TSchemaSnapshotManager(const TDataShard* self);
 
@@ -31,11 +33,13 @@ class TSchemaSnapshotManager {
 
     bool AddSnapshot(NTable::TDatabase& db, const TSchemaSnapshotKey& key, const TSchemaSnapshot& snapshot);
     const TSchemaSnapshot* FindSnapshot(const TSchemaSnapshotKey& key) const;
-    void RemoveShapshot(NIceDb::TNiceDb& db, const TSchemaSnapshotKey& key);
+    void RemoveShapshot(NTable::TDatabase& db, const TSchemaSnapshotKey& key);
     void RenameSnapshots(NTable::TDatabase& db, const TPathId& prevTableId, const TPathId& newTableId);
+    const TSnapshots& GetSnapshots() const;
 
     bool AcquireReference(const TSchemaSnapshotKey& key);
     bool ReleaseReference(const TSchemaSnapshotKey& key);
+    bool HasReference(const TSchemaSnapshotKey& key) const;
 
 private:
     void PersistAddSnapshot(NIceDb::TNiceDb& db, const TSchemaSnapshotKey& key, const TSchemaSnapshot& snapshot);
@@ -43,7 +47,7 @@ class TSchemaSnapshotManager {
 
 private:
     const TDataShard* Self;
-    TMap> Snapshots;
+    TSnapshots Snapshots;
     THashMap References;
 
 }; // TSchemaSnapshotManager
diff --git a/ydb/core/tx/datashard/datashard_split_dst.cpp b/ydb/core/tx/datashard/datashard_split_dst.cpp
index 12d152c188e5..c55038394253 100644
--- a/ydb/core/tx/datashard/datashard_split_dst.cpp
+++ b/ydb/core/tx/datashard/datashard_split_dst.cpp
@@ -120,13 +120,11 @@ class TDataShard::TTxInitSplitMergeDestination : public NTabletFlatExecutor::TTr
 class TDataShard::TTxSplitTransferSnapshot : public NTabletFlatExecutor::TTransactionBase {
 private:
     TEvDataShard::TEvSplitTransferSnapshot::TPtr Ev;
-    bool LastSnapshotReceived;
 
 public:
     TTxSplitTransferSnapshot(TDataShard* ds, TEvDataShard::TEvSplitTransferSnapshot::TPtr& ev)
         : NTabletFlatExecutor::TTransactionBase(ds)
         , Ev(ev)
-        , LastSnapshotReceived(false)
     {}
 
     TTxType GetTxType() const override { return TXTYPE_SPLIT_TRANSFER_SNAPSHOT; }
@@ -175,6 +173,7 @@ class TDataShard::TTxSplitTransferSnapshot : public NTabletFlatExecutor::TTransa
 
         LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " Received snapshot for split/merge TxId " << opId
                     << " from tabeltId " << srcTabletId);
+        LOG_TRACE_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " Received snapshot: " << record.DebugString());
 
         if (!Self->DstSplitSchemaInitialized) {
             LegacyInitSchema(txc);
@@ -256,8 +255,6 @@ class TDataShard::TTxSplitTransferSnapshot : public NTabletFlatExecutor::TTransa
         }
 
         if (Self->ReceiveSnapshotsFrom.empty()) {
-            LastSnapshotReceived = true;
-
             const auto minVersion = mvcc ? Self->GetSnapshotManager().GetLowWatermark()
                                          : Self->GetSnapshotManager().GetMinWriteVersion();
 
@@ -291,8 +288,15 @@ class TDataShard::TTxSplitTransferSnapshot : public NTabletFlatExecutor::TTransa
                 Self->PromoteFollowerReadEdge(txc);
             }
 
-            Self->State = TShardState::Ready;
-            Self->PersistSys(db, Schema::Sys_State, Self->State);
+            // Note: we persist Ready, but keep current state in memory until Complete
+            Self->SetPersistState(TShardState::Ready, txc);
+            Self->State = TShardState::SplitDstReceivingSnapshot;
+
+            // Schedule a new transaction that will move shard to the Ready state
+            // and finish initialization. This new transaction is guaranteed to
+            // wait until async LoanTable above is complete and new parts are
+            // fully merged into the table.
+            Self->Execute(new TTxLastSnapshotReceived(Self));
         }
 
         return true;
@@ -305,12 +309,52 @@ class TDataShard::TTxSplitTransferSnapshot : public NTabletFlatExecutor::TTransa
         LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " ack snapshot OpId " << opId);
 
         ctx.Send(ackTo, new TEvDataShard::TEvSplitTransferSnapshotAck(opId, Self->TabletID()));
+    }
 
-        if (LastSnapshotReceived) {
-            // We have received all the data, reload everything from the received system tables
-            Self->Execute(Self->CreateTxInit(), ctx);
+    class TTxLastSnapshotReceived : public NTabletFlatExecutor::TTransactionBase {
+    public:
+        TTxLastSnapshotReceived(TDataShard* self)
+            : TTransactionBase(self)
+        {}
+
+        bool Execute(TTransactionContext&, const TActorContext&) override {
+            return true;
         }
-    }
+
+        void Complete(const TActorContext& ctx) override {
+            // Note: we skip init in an unlikely event of state resetting before reaching Complete
+            if (Self->State == TShardState::SplitDstReceivingSnapshot) {
+                // We have received all the data, finish shard initialization
+                // Note: previously we used TxInit, however received system tables
+                // have been empty for years now, and since pipes are still open we
+                // may receive requests between TxInit loading the Ready state and
+                // its Complete method initializing everything properly. Instead
+                // necessary steps are repeated here.
+                Self->State = TShardState::Ready;
+
+                // We are already in StateWork, but we need to repeat many steps now that we are Ready
+                Self->SwitchToWork(ctx);
+
+                // We can send the registration request now that we are ready
+                Self->SendRegistrationRequestTimeCast(ctx);
+
+                // Initialize snapshot expiration queue with current context time
+                Self->GetSnapshotManager().InitExpireQueue(ctx.Now());
+                if (Self->GetSnapshotManager().HasExpiringSnapshots()) {
+                    Self->PlanCleanup(ctx);
+                }
+
+                // Initialize change senders
+                Self->KillChangeSender(ctx);
+                Self->CreateChangeSender(ctx);
+                Self->MaybeActivateChangeSender(ctx);
+                Self->EmitHeartbeats();
+
+                // Switch mvcc state if needed
+                Self->CheckMvccStateChangeCanStart(ctx);
+            }
+        }
+    };
 };
 
 class TDataShard::TTxSplitReplicationSourceOffsets : public NTabletFlatExecutor::TTransactionBase {
diff --git a/ydb/core/tx/datashard/datashard_split_src.cpp b/ydb/core/tx/datashard/datashard_split_src.cpp
index c3a4bf8df9ef..b08dd8c143aa 100644
--- a/ydb/core/tx/datashard/datashard_split_src.cpp
+++ b/ydb/core/tx/datashard/datashard_split_src.cpp
@@ -238,6 +238,8 @@ class TDataShard::TTxSplitSnapshotComplete : public NTabletFlatExecutor::TTransa
 private:
     TIntrusivePtr SnapContext;
     bool ChangeExchangeSplit;
+    THashSet ActivationList;
+    THashSet SplitList;
 
 public:
     TTxSplitSnapshotComplete(TDataShard* ds, TIntrusivePtr snapContext)
@@ -372,13 +374,11 @@ class TDataShard::TTxSplitSnapshotComplete : public NTabletFlatExecutor::TTransa
                     proto->SetTimeoutMs(kv.second.Timeout.MilliSeconds());
                 }
 
-                if (Self->ChangesQueue || tableInfo.HasCdcStreams()) {
+                if (tableInfo.HasAsyncIndexes() || tableInfo.HasCdcStreams()) {
                     snapshot->SetWaitForActivation(true);
-                    Self->ChangeSenderActivator.AddDst(dstTablet);
-                    db.Table().Key(dstTablet).Update();
-
+                    ActivationList.insert(dstTablet);
                     if (tableInfo.HasCdcStreams()) {
-                        Self->ChangeExchangeSplitter.AddDst(dstTablet);
+                        SplitList.insert(dstTablet);
                     }
                 }
 
@@ -397,14 +397,23 @@ class TDataShard::TTxSplitSnapshotComplete : public NTabletFlatExecutor::TTransa
             }
         }
 
-        ChangeExchangeSplit = !Self->ChangesQueue && !Self->ChangeExchangeSplitter.Done();
-
         if (needToReadPages) {
             LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, Self->TabletID() << " BorrowSnapshot is restarting for split OpId " << opId);
             return false;
         } else {
             txc.Env.DropSnapshot(SnapContext);
 
+            for (ui64 dstTabletId : ActivationList) {
+                Self->ChangeSenderActivator.AddDst(dstTabletId);
+                db.Table().Key(dstTabletId).Update();
+            }
+
+            for (ui64 dstTabletId : SplitList) {
+                Self->ChangeExchangeSplitter.AddDst(dstTabletId);
+            }
+
+            ChangeExchangeSplit = !Self->ChangesQueue && !Self->ChangeExchangeSplitter.Done();
+
             Self->State = TShardState::SplitSrcSendingSnapshot;
             Self->PersistSys(db, Schema::Sys_State, Self->State);
 
@@ -432,14 +441,14 @@ class TDataShard::TTxSplitTransferSnapshotAck : public NTabletFlatExecutor::TTra
 private:
     TEvDataShard::TEvSplitTransferSnapshotAck::TPtr Ev;
     bool AllDstAcksReceived;
-    bool Activate;
+    ui64 ActivateTabletId;
 
 public:
     TTxSplitTransferSnapshotAck(TDataShard* ds, TEvDataShard::TEvSplitTransferSnapshotAck::TPtr& ev)
         : NTabletFlatExecutor::TTransactionBase(ds)
         , Ev(ev)
         , AllDstAcksReceived(false)
-        , Activate(false)
+        , ActivateTabletId(0)
     {}
 
     TTxType GetTxType() const override { return TXTYPE_SPLIT_TRANSFER_SNAPSHOT_ACK; }
@@ -463,8 +472,8 @@ class TDataShard::TTxSplitTransferSnapshotAck : public NTabletFlatExecutor::TTra
         // Remove the row for acked snapshot
         db.Table().Key(dstTabletId).Delete();
 
-        if (!Self->ChangesQueue && Self->ChangeExchangeSplitter.Done()) {
-            Activate = !Self->ChangeSenderActivator.Acked(dstTabletId);
+        if (!Self->ChangesQueue && Self->ChangeExchangeSplitter.Done() && !Self->ChangeSenderActivator.Acked(dstTabletId)) {
+            ActivateTabletId = dstTabletId;
         }
 
         return true;
@@ -479,11 +488,8 @@ class TDataShard::TTxSplitTransferSnapshotAck : public NTabletFlatExecutor::TTra
             }
         }
 
-        if (Activate) {
-            const ui64 dstTabletId = Ev->Get()->Record.GetTabletId();
-            if (!Self->ChangeSenderActivator.Acked(dstTabletId)) {
-                Self->ChangeSenderActivator.DoSend(dstTabletId, ctx);
-            }
+        if (ActivateTabletId) {
+            Self->ChangeSenderActivator.DoSend(ActivateTabletId, ctx);
         }
     }
 };
@@ -529,6 +535,15 @@ class TDataShard::TTxSplitPartitioningChanged : public NTabletFlatExecutor::TTra
             }
         }
 
+        if (!Self->MediatorDelayedReplies.empty()) {
+            // We have some pending mediator replies, which must not be replied.
+            // Unfortunately we may linger around for a long time, and clients
+            // would keep awaiting replies for all that time. We have to make
+            // sure those clients receive an appropriate disconnection error
+            // instead.
+            ctx.Send(Self->SelfId(), new TEvents::TEvPoison);
+        }
+
         // TODO: properly check if there are no loans
         Self->CheckStateChange(ctx);
     }
diff --git a/ydb/core/tx/datashard/datashard_user_db.cpp b/ydb/core/tx/datashard/datashard_user_db.cpp
index 59edf2e6699d..5ebd83a294ee 100644
--- a/ydb/core/tx/datashard/datashard_user_db.cpp
+++ b/ydb/core/tx/datashard/datashard_user_db.cpp
@@ -45,11 +45,17 @@ NTable::EReady TDataShardUserDb::SelectRow(
 }
 
 ui64 CalculateKeyBytes(const TArrayRef key) {
-    return std::accumulate(key.begin(), key.end(), 0, [](ui64 bytes, const TRawTypeValue& value) { return bytes + value.IsEmpty() ? 1 : value.Size(); });
+    ui64 bytes = 0ull;
+    for (const TRawTypeValue& value : key)
+        bytes += value.IsEmpty() ? 1ull : value.Size();
+    return bytes;
 };
 
 ui64 CalculateValueBytes(const TArrayRef ops) {
-    return std::accumulate(ops.begin(), ops.end(), 0, [](ui64 bytes, const NIceDb::TUpdateOp& op) { return bytes + op.Value.IsEmpty() ? 1 : op.Value.Size(); });
+    ui64 bytes = 0ull;
+    for (const NIceDb::TUpdateOp& op : ops)
+        bytes += op.Value.IsEmpty() ? 1ull : op.Value.Size();
+    return bytes;
 };
 
 void TDataShardUserDb::UpdateRow(
diff --git a/ydb/core/tx/datashard/datashard_user_table.h b/ydb/core/tx/datashard/datashard_user_table.h
index 40a53145c998..bca8c9107cc6 100644
--- a/ydb/core/tx/datashard/datashard_user_table.h
+++ b/ydb/core/tx/datashard/datashard_user_table.h
@@ -401,7 +401,7 @@ struct TUserTable : public TThrRefBase {
     mutable TStats Stats;
     mutable bool StatsUpdateInProgress = false;
     mutable bool StatsNeedUpdate = true;
-    mutable NTable::TDatabase::TChg LastTableChange{ 0, NTable::TEpoch::Zero() };
+    mutable NTable::TDatabase::TChangeCounter LastTableChange;
     mutable TMonotonic LastTableChangeTimestamp;
 
     ui32 SpecialColTablet = Max();
diff --git a/ydb/core/tx/datashard/datashard_ut_build_index.cpp b/ydb/core/tx/datashard/datashard_ut_build_index.cpp
index da80947ca50d..35cb7139e6d6 100644
--- a/ydb/core/tx/datashard/datashard_ut_build_index.cpp
+++ b/ydb/core/tx/datashard/datashard_ut_build_index.cpp
@@ -95,7 +95,7 @@ Y_UNIT_TEST_SUITE(TTxDataShardBuildIndexScan) {
         CreateShardedTable(server, sender, root, name, opts);
     }
 
-    Y_UNIT_TEST(TestRunScan) {
+    Y_UNIT_TEST(RunScan) {
         TPortManager pm;
         TServerSettings serverSettings(pm.GetPort(2134));
         serverSettings.SetDomainName("Root")
@@ -130,8 +130,7 @@ Y_UNIT_TEST_SUITE(TTxDataShardBuildIndexScan) {
         // Alter table: disable shadow data and change compaction policy
         auto policy = NLocalDb::CreateDefaultUserTablePolicy();
         policy->KeepEraseMarkers = false;
-        WaitTxNotification(server,
-                           AsyncAlterAndDisableShadow(server, "/Root", "table-2", policy.Get()));
+        WaitTxNotification(server, AsyncAlterAndDisableShadow(server, "/Root", "table-2", policy.Get()));
 
         // Shadow data must be visible now
         auto data2 = ReadShardedTable(server, "/Root/table-2");
@@ -140,6 +139,102 @@ Y_UNIT_TEST_SUITE(TTxDataShardBuildIndexScan) {
                                  "value = 300, key = 3\n"
                                  "value = 500, key = 5\n");
     }
+
+    Y_UNIT_TEST(ShadowBorrowCompaction) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings
+            .SetDomainName("Root")
+            .SetUseRealThreads(false);
+
+        Tests::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::FLAT_TX_SCHEMESHARD, NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::TABLET_EXECUTOR, NLog::PRI_DEBUG);
+
+        // Allow manipulating shadow data using normal schemeshard operations
+        runtime.GetAppData().AllowShadowDataInSchemeShardForTests = true;
+
+        InitRoot(server, sender);
+
+        CreateShardedTable(server, sender, "/Root", "table-1", 1, false);
+
+        // Upsert some initial values
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 100), (2, 200), (3, 300), (4, 400), (5, 500);");
+
+        CreateShardedTableForIndex(server, sender, "/Root", "table-2", 1, false);
+
+        auto observer = runtime.AddObserver([&](TEvDataShard::TEvCompactBorrowed::TPtr& event) {
+            Cerr << "Captured TEvDataShard::TEvCompactBorrowed from " << runtime.FindActorName(event->Sender) << " to " << runtime.FindActorName(event->GetRecipientRewrite()) << Endl;
+            if (runtime.FindActorName(event->Sender) == "FLAT_SCHEMESHARD_ACTOR") {
+                event.Reset();
+            }
+        });
+
+        auto snapshot = CreateVolatileSnapshot(server, { "/Root/table-1" });
+
+        DoBuildIndex(server, sender, "/Root/table-1", "/Root/table-2", snapshot, NKikimrTxDataShard::TEvBuildIndexProgressResponse::DONE);
+
+        // Writes to shadow data should not be visible yet
+        auto data = ReadShardedTable(server, "/Root/table-2");
+        UNIT_ASSERT_VALUES_EQUAL(data, "");
+
+        // Split index
+        auto shards1 = GetTableShards(server, sender, "/Root/table-2");
+        UNIT_ASSERT_VALUES_EQUAL(shards1.size(), 1u);
+
+        // Split would fail otherwise :(
+        SetSplitMergePartCountLimit(server->GetRuntime(), -1);
+
+        auto senderSplit = runtime.AllocateEdgeActor();
+        ui64 txId = AsyncSplitTable(server, senderSplit, "/Root/table-2", shards1.at(0), 300);
+        WaitTxNotification(server, senderSplit, txId);
+
+        auto shards2 = GetTableShards(server, sender, "/Root/table-2");
+        UNIT_ASSERT_VALUES_EQUAL(shards2.size(), 2u);
+
+        for (auto shardIndex : xrange(2u)) {
+            auto stats = WaitTableStats(runtime, shards2.at(shardIndex));
+            // Cerr << "Received shard stats:" << Endl << stats.DebugString() << Endl;
+
+            UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetRowCount(), shardIndex == 0 ? 2 : 3);
+
+            THashSet owners(stats.GetUserTablePartOwners().begin(), stats.GetUserTablePartOwners().end());
+            // Note: datashard always adds current shard to part owners, even if there are no parts
+            UNIT_ASSERT_VALUES_EQUAL(owners, (THashSet{shards1.at(0), shards2.at(shardIndex)}));
+            
+            auto tableId = ResolveTableId(server, sender, "/Root/table-2");
+            auto result = CompactBorrowed(runtime, shards2.at(shardIndex), tableId);
+            // Cerr << "Compact result " << result.DebugString() << Endl;
+            UNIT_ASSERT_VALUES_EQUAL(result.GetTabletId(), shards2.at(shardIndex));
+            UNIT_ASSERT_VALUES_EQUAL(result.GetPathId().GetOwnerId(), tableId.PathId.OwnerId);
+            UNIT_ASSERT_VALUES_EQUAL(result.GetPathId().GetLocalId(), tableId.PathId.LocalPathId);
+
+            for (int i = 0; i < 5 && (owners.size() > 1 || owners.contains(shards1.at(0))); ++i) {
+                auto stats = WaitTableStats(runtime, shards2.at(shardIndex));
+                owners = THashSet(stats.GetUserTablePartOwners().begin(), stats.GetUserTablePartOwners().end());
+            }
+
+            UNIT_ASSERT_VALUES_EQUAL(owners, (THashSet{shards2.at(shardIndex)}));
+        }
+
+        // Alter table: disable shadow data and change compaction policy
+        auto policy = NLocalDb::CreateDefaultUserTablePolicy();
+        policy->KeepEraseMarkers = false;
+        WaitTxNotification(server, AsyncAlterAndDisableShadow(server, "/Root", "table-2", policy.Get()));
+
+        // Shadow data must be visible now
+        auto data2 = ReadShardedTable(server, "/Root/table-2");
+        UNIT_ASSERT_VALUES_EQUAL(data2,
+                                 "value = 100, key = 1\n"
+                                 "value = 200, key = 2\n"
+                                 "value = 300, key = 3\n"
+                                 "value = 400, key = 4\n"
+                                 "value = 500, key = 5\n");
+    }
 }
 
 } // namespace NKikimr
diff --git a/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp b/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp
index 601a8c579ec3..da7f5f397cb2 100644
--- a/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp
+++ b/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp
@@ -15,6 +15,7 @@
 #include 
 #include 
 
+#include 
 #include 
 #include 
 #include 
@@ -789,7 +790,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
         static THolder MakeClient(const NYdb::TDriver& driver, const TString& database) {
             return MakeHolder(driver, NYdb::TCommonClientSettings().Database(database));
         }
-    }; 
+    };
 
     class TTestTopicEnv: public TTestEnv {
     public:
@@ -798,7 +799,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
         static THolder MakeClient(const NYdb::TDriver& driver, const TString& database) {
             return MakeHolder(driver, NYdb::NTopic::TTopicClientSettings().Database(database));
         }
-    }; 
+    };
 
     TShardedTableOptions SimpleTable() {
         return TShardedTableOptions()
@@ -1344,7 +1345,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
             (3, 30);
         )", R"(
             DELETE FROM `/Root/Table` WHERE key = 1;
-        )"}, { 
+        )"}, {
             R"({"update":{},"key":[1]})",
             R"({"update":{},"key":[2]})",
             R"({"update":{},"key":[3]})",
@@ -1360,7 +1361,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
             (3, 30);
         )", R"(
             DELETE FROM `/Root/Table` WHERE key = 1;
-        )"}, { 
+        )"}, {
             {DebeziumBody("u", nullptr, nullptr), {{"__key", R"({"payload":{"key":1}})"}}},
             {DebeziumBody("u", nullptr, nullptr), {{"__key", R"({"payload":{"key":2}})"}}},
             {DebeziumBody("u", nullptr, nullptr), {{"__key", R"({"payload":{"key":3}})"}}},
@@ -1376,7 +1377,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
             (3, 30);
         )", R"(
             DELETE FROM `/Root/Table` WHERE key = 1;
-        )"}, { 
+        )"}, {
             R"({"update":{"value":10},"key":[1]})",
             R"({"update":{"value":20},"key":[2]})",
             R"({"update":{"value":30},"key":[3]})",
@@ -1397,7 +1398,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
             (3, 300);
         )", R"(
             DELETE FROM `/Root/Table` WHERE key = 1;
-        )"}, { 
+        )"}, {
             R"({"update":{},"newImage":{"value":10},"key":[1]})",
             R"({"update":{},"newImage":{"value":20},"key":[2]})",
             R"({"update":{},"newImage":{"value":30},"key":[3]})",
@@ -1421,7 +1422,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
             (3, 300);
         )", R"(
             DELETE FROM `/Root/Table` WHERE key = 1;
-        )"}, { 
+        )"}, {
             {DebeziumBody("c", nullptr, R"({"key":1,"value":10})"), {{"__key", R"({"payload":{"key":1}})"}}},
             {DebeziumBody("c", nullptr, R"({"key":2,"value":20})"), {{"__key", R"({"payload":{"key":2}})"}}},
             {DebeziumBody("c", nullptr, R"({"key":3,"value":30})"), {{"__key", R"({"payload":{"key":3}})"}}},
@@ -1445,7 +1446,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
             (3, 300);
         )", R"(
             DELETE FROM `/Root/Table` WHERE key = 1;
-        )"}, { 
+        )"}, {
             {DebeziumBody("u", nullptr, nullptr), {{"__key", R"({"payload":{"key":1}})"}}},
             {DebeziumBody("u", nullptr, nullptr), {{"__key", R"({"payload":{"key":2}})"}}},
             {DebeziumBody("u", nullptr, nullptr), {{"__key", R"({"payload":{"key":3}})"}}},
@@ -1456,7 +1457,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
         });
     }
 
-    Y_UNIT_TEST(NewImageLogDebezium) { 
+    Y_UNIT_TEST(NewImageLogDebezium) {
         TopicRunner::Read(SimpleTable(), NewImage(NKikimrSchemeOp::ECdcStreamFormatDebeziumJson), {R"(
             UPSERT INTO `/Root/Table` (key, value) VALUES
             (1, 10),
@@ -1469,7 +1470,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
             (3, 300);
         )", R"(
             DELETE FROM `/Root/Table` WHERE key = 1;
-        )"}, { 
+        )"}, {
             {DebeziumBody("u", nullptr, R"({"key":1,"value":10})"), {{"__key", R"({"payload":{"key":1}})"}}},
             {DebeziumBody("u", nullptr, R"({"key":2,"value":20})"), {{"__key", R"({"payload":{"key":2}})"}}},
             {DebeziumBody("u", nullptr, R"({"key":3,"value":30})"), {{"__key", R"({"payload":{"key":3}})"}}},
@@ -1486,7 +1487,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
             (1, 10),
             (2, 20),
             (3, 30);
-        )"}, { 
+        )"}, {
             R"({"update":{},"key":[1],"ts":"***"})",
             R"({"update":{},"key":[2],"ts":"***"})",
             R"({"update":{},"key":[3],"ts":"***"})",
@@ -1512,7 +1513,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
             UPSERT INTO `/Root/Table` (__Hash, id_shard, id_sort, __RowData) VALUES (
                 1, "10", "100", JsonDocument('{"M":{"color":{"S":"pink"},"weight":{"N":"4.5"}}}')
             );
-        )"}, { 
+        )"}, {
             WriteJson(NJson::TJsonMap({
                 {"awsRegion", ""},
                 {"dynamodb", NJson::TJsonMap({
@@ -1541,7 +1542,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
             );
         )", R"(
             DELETE FROM `/Root/Table` WHERE __Hash = 1;
-        )"}, { 
+        )"}, {
             WriteJson(NJson::TJsonMap({
                 {"awsRegion", ""},
                 {"dynamodb", NJson::TJsonMap({
@@ -1639,7 +1640,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
                 (1, 0.0%s/0.0%s),
                 (2, 1.0%s/0.0%s),
                 (3, -1.0%s/0.0%s);
-            )", s, s, s, s, s, s)}, { 
+            )", s, s, s, s, s, s)}, {
                 R"({"update":{"value":"nan"},"key":[1]})",
                 R"({"update":{"value":"inf"},"key":[2]})",
                 R"({"update":{"value":"-inf"},"key":[3]})",
@@ -1674,7 +1675,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
         TopicRunner::Read(table, KeysOnly(NKikimrSchemeOp::ECdcStreamFormatDebeziumJson), {Sprintf(R"(
             UPSERT INTO `/Root/Table` (key, value) VALUES
             ("%s", 1);
-        )", key.c_str())}, { 
+        )", key.c_str())}, {
             {DebeziumBody("u", nullptr, nullptr), {{"__key", Sprintf(R"({"payload":{"key":"%s"}})", key.c_str())}}},
         });
     }
@@ -2043,7 +2044,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
         ExecSQL(env.GetServer(), env.GetEdgeActor(), R"(
             UPSERT INTO `/Root/TableAux` (key, value)
             VALUES (1, 10);
-        )"); 
+        )");
 
         SetSplitMergePartCountLimit(&runtime, -1);
         const auto tabletIds = GetTableShards(env.GetServer(), env.GetEdgeActor(), "/Root/Table");
@@ -2292,7 +2293,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
         auto tabletIds = GetTableShards(env.GetServer(), env.GetEdgeActor(), "/Root/Table");
         UNIT_ASSERT_VALUES_EQUAL(tabletIds.size(), 1);
 
-        WaitTxNotification(env.GetServer(), env.GetEdgeActor(), 
+        WaitTxNotification(env.GetServer(), env.GetEdgeActor(),
             AsyncSplitTable(env.GetServer(), env.GetEdgeActor(), "/Root/Table", tabletIds.at(0), 4));
 
         // execute on old partitions
@@ -2376,7 +2377,8 @@ Y_UNIT_TEST_SUITE(Cdc) {
 
             case TSchemeBoardEvents::EvUpdate:
                 if (auto* msg = ev->Get()) {
-                    const auto desc = msg->GetRecord().GetDescribeSchemeResult();
+                    NKikimrScheme::TEvDescribeSchemeResult desc;
+                    Y_ABORT_UNLESS(ParseFromStringNoSizeLimit(desc, *msg->GetRecord().GetDescribeSchemeResultSerialized().begin()));
                     if (desc.GetPath() == "/Root/Table/Stream" && desc.GetPathDescription().GetSelf().GetCreateFinished()) {
                         delayed.emplace_back(ev.Release());
                         return TTestActorRuntime::EEventAction::DROP;
@@ -2446,7 +2448,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
         ExecSQL(env.GetServer(), env.GetEdgeActor(), R"(
             UPSERT INTO `/Root/Table` (key, value)
             VALUES (1, 10);
-        )"); 
+        )");
 
         SetSplitMergePartCountLimit(&runtime, -1);
         const auto tabletIds = GetTableShards(env.GetServer(), env.GetEdgeActor(), "/Root/Table");
@@ -2633,6 +2635,49 @@ Y_UNIT_TEST_SUITE(Cdc) {
         });
     }
 
+    Y_UNIT_TEST(InitialScanRacyCompleteAndRequest) {
+        TPortManager portManager;
+        TServer::TPtr server = new TServer(TServerSettings(portManager.GetPort(2134), {}, DefaultPQConfig())
+            .SetUseRealThreads(false)
+            .SetDomainName("Root")
+            .SetEnableChangefeedInitialScan(true)
+        );
+
+        auto& runtime = *server->GetRuntime();
+        const auto edgeActor = runtime.AllocateEdgeActor();
+
+        SetupLogging(runtime);
+        InitRoot(server, edgeActor);
+        CreateShardedTable(server, edgeActor, "/Root", "Table", SimpleTable());
+
+        std::unique_ptr doneResponse;
+        auto blockDone = runtime.AddObserver(
+            [&](TEvDataShard::TEvCdcStreamScanResponse::TPtr& ev) {
+                if (ev->Get()->Record.GetStatus() == NKikimrTxDataShard::TEvCdcStreamScanResponse::DONE) {
+                    doneResponse.reset(ev.Release());
+                }
+            }
+        );
+
+        WaitTxNotification(server, edgeActor, AsyncAlterAddStream(server, "/Root", "Table",
+            WithInitialScan(Updates(NKikimrSchemeOp::ECdcStreamFormatJson))));
+        WaitFor(runtime, [&]{ return bool(doneResponse); }, "doneResponse");
+        blockDone.Remove();
+
+        bool done = false;
+        auto waitDone = runtime.AddObserver(
+            [&](TEvDataShard::TEvCdcStreamScanResponse::TPtr& ev) {
+                if (ev->Get()->Record.GetStatus() == NKikimrTxDataShard::TEvCdcStreamScanResponse::DONE) {
+                    done = true;
+                }
+            }
+        );
+
+        const auto& record = doneResponse->Get()->Record;
+        RebootTablet(runtime, record.GetTablePathId().GetOwnerId(), edgeActor);
+        WaitFor(runtime, [&]{ return done; }, "done");
+    }
+
     Y_UNIT_TEST(InitialScanUpdatedRows) {
         TPortManager portManager;
         TServer::TPtr server = new TServer(TServerSettings(portManager.GetPort(2134), {}, DefaultPQConfig())
@@ -3103,6 +3148,45 @@ Y_UNIT_TEST_SUITE(Cdc) {
         });
     }
 
+    Y_UNIT_TEST(ResolvedTimestampsMultiplePartitions) {
+        TPortManager portManager;
+        TServer::TPtr server = new TServer(TServerSettings(portManager.GetPort(2134), {}, DefaultPQConfig())
+            .SetUseRealThreads(false)
+            .SetDomainName("Root")
+        );
+
+        auto& runtime = *server->GetRuntime();
+        const auto edgeActor = runtime.AllocateEdgeActor();
+
+        SetupLogging(runtime);
+        InitRoot(server, edgeActor);
+        CreateShardedTable(server, edgeActor, "/Root", "Table", TShardedTableOptions().Shards(2));
+
+        WaitTxNotification(server, edgeActor, AsyncAlterAddStream(server, "/Root", "Table",
+            WithResolvedTimestamps(TDuration::Seconds(3), Updates(NKikimrSchemeOp::ECdcStreamFormatJson))));
+
+        TVector>> records(2); // partition to records
+        while (true) {
+            for (ui32 i = 0; i < records.size(); ++i) {
+                records[i] = GetRecords(*server->GetRuntime(), edgeActor, "/Root/Table/Stream", i);
+            }
+
+            if (AllOf(records, [](const auto& x) { return !x.empty(); })) {
+                break;
+            }
+
+            SimulateSleep(server, TDuration::Seconds(1));
+        }
+
+        UNIT_ASSERT(records.size() > 1);
+        UNIT_ASSERT(!records[0].empty());
+        AssertJsonsEqual(records[0][0].second, R"({"resolved":"***"})");
+
+        for (ui32 i = 1; i < records.size(); ++i) {
+            UNIT_ASSERT_VALUES_EQUAL(records[i][0].second, records[0][0].second);
+        }
+    }
+
     Y_UNIT_TEST(InitialScanAndResolvedTimestamps) {
         TPortManager portManager;
         TServer::TPtr server = new TServer(TServerSettings(portManager.GetPort(2134), {}, DefaultPQConfig())
@@ -3266,7 +3350,7 @@ Y_UNIT_TEST_SUITE(Cdc) {
         auto tabletIds = GetTableShards(env.GetServer(), env.GetEdgeActor(), "/Root/Table");
         UNIT_ASSERT_VALUES_EQUAL(tabletIds.size(), 1);
 
-        WaitTxNotification(env.GetServer(), env.GetEdgeActor(), 
+        WaitTxNotification(env.GetServer(), env.GetEdgeActor(),
             AsyncSplitTable(env.GetServer(), env.GetEdgeActor(), "/Root/Table", tabletIds.at(0), 4));
 
         // merge
@@ -3290,6 +3374,194 @@ Y_UNIT_TEST_SUITE(Cdc) {
         });
     }
 
+    void MustNotLoseSchemaSnapshot(bool enableVolatileTx) {
+        TPortManager portManager;
+        TServer::TPtr server = new TServer(TServerSettings(portManager.GetPort(2134), {}, DefaultPQConfig())
+            .SetUseRealThreads(false)
+            .SetDomainName("Root")
+            .SetEnableDataShardVolatileTransactions(enableVolatileTx)
+        );
+
+        auto& runtime = *server->GetRuntime();
+        const auto edgeActor = runtime.AllocateEdgeActor();
+
+        SetupLogging(runtime);
+        InitRoot(server, edgeActor);
+        CreateShardedTable(server, edgeActor, "/Root", "Table", SimpleTable());
+
+        WaitTxNotification(server, edgeActor, AsyncAlterAddStream(server, "/Root", "Table",
+            Updates(NKikimrSchemeOp::ECdcStreamFormatJson)));
+
+        auto tabletIds = GetTableShards(server, edgeActor, "/Root/Table");
+        UNIT_ASSERT_VALUES_EQUAL(tabletIds.size(), 1);
+
+        std::vector> blockedRemoveRecords;
+        auto blockRemoveRecords = runtime.AddObserver([&](auto& ev) {
+            Cerr << "... blocked remove record" << Endl;
+            blockedRemoveRecords.emplace_back(ev.Release());
+        });
+
+        Cerr << "... execute first query" << Endl;
+        ExecSQL(server, edgeActor, R"(
+            UPSERT INTO `/Root/Table` (key, value) VALUES (1, 10);
+        )");
+
+        WaitFor(runtime, [&]{ return blockedRemoveRecords.size() == 1; }, "blocked remove records");
+        blockRemoveRecords.Remove();
+
+        std::vector> blockedPlans;
+        auto blockPlans = runtime.AddObserver([&](auto& ev) {
+            blockedPlans.emplace_back(ev.Release());
+        });
+
+        Cerr << "... execute scheme query" << Endl;
+        const auto alterTxId = AsyncAlterAddExtraColumn(server, "/Root", "Table");
+
+        WaitFor(runtime, [&]{ return blockedPlans.size() > 0; }, "blocked plans");
+        blockPlans.Remove();
+
+        std::vector> blockedPutResponses;
+        auto blockPutResponses = runtime.AddObserver([&](auto& ev) {
+            auto* msg = ev->Get();
+            if (msg->Id.TabletID() == tabletIds[0]) {
+                Cerr << "... blocked put response:" << msg->Id << Endl;
+                blockedPutResponses.emplace_back(ev.Release());
+            }
+        });
+
+        Cerr << "... execute second query" << Endl;
+        SendSQL(server, edgeActor, R"(
+            UPSERT INTO `/Root/Table` (key, value) VALUES (2, 20);
+        )");
+
+        WaitFor(runtime, [&]{ return blockedPutResponses.size() > 0; }, "blocked put responses");
+        auto wasBlockedPutResponses = blockedPutResponses.size();
+
+        Cerr << "... release blocked plans" << Endl;
+        for (auto& ev : std::exchange(blockedPlans, {})) {
+            runtime.Send(ev.release(), 0, true);
+        }
+
+        WaitFor(runtime, [&]{ return blockedPutResponses.size() > wasBlockedPutResponses; }, "blocked put responses");
+        wasBlockedPutResponses = blockedPutResponses.size();
+
+        Cerr << "... release blocked remove records" << Endl;
+        for (auto& ev : std::exchange(blockedRemoveRecords, {})) {
+            runtime.Send(ev.release(), 0, true);
+        }
+
+        WaitFor(runtime, [&]{ return blockedPutResponses.size() > wasBlockedPutResponses; }, "blocked put responses");
+        blockPutResponses.Remove();
+
+        Cerr << "... release blocked put responses" << Endl;
+        for (auto& ev : std::exchange(blockedPutResponses, {})) {
+            runtime.Send(ev.release(), 0, true);
+        }
+
+        Cerr << "... finalize" << Endl;
+        WaitTxNotification(server, edgeActor, alterTxId);
+        WaitForContent(server, edgeActor, "/Root/Table/Stream", {
+            R"({"update":{"value":10},"key":[1]})",
+            R"({"update":{"value":20},"key":[2]})",
+        });
+    }
+
+    Y_UNIT_TEST(MustNotLoseSchemaSnapshot) {
+        MustNotLoseSchemaSnapshot(false);
+    }
+
+    Y_UNIT_TEST(MustNotLoseSchemaSnapshotWithVolatileTx) {
+        MustNotLoseSchemaSnapshot(true);
+    }
+
+    Y_UNIT_TEST(ResolvedTimestampsContinueAfterMerge) {
+        TPortManager portManager;
+        TServer::TPtr server = new TServer(TServerSettings(portManager.GetPort(2134), {}, DefaultPQConfig())
+            .SetUseRealThreads(false)
+            .SetDomainName("Root")
+        );
+
+        auto& runtime = *server->GetRuntime();
+        const auto edgeActor = runtime.AllocateEdgeActor();
+
+        SetupLogging(runtime);
+        InitRoot(server, edgeActor);
+        SetSplitMergePartCountLimit(&runtime, -1);
+        CreateShardedTable(server, edgeActor, "/Root", "Table", SimpleTable());
+
+        WaitTxNotification(server, edgeActor, AsyncAlterAddStream(server, "/Root", "Table",
+            WithResolvedTimestamps(TDuration::Seconds(3), Updates(NKikimrSchemeOp::ECdcStreamFormatJson))));
+
+        Cerr << "... prepare" << Endl;
+        {
+            WaitForContent(server, edgeActor, "/Root/Table/Stream", {
+                R"({"resolved":"***"})",
+            });
+
+            auto tabletIds = GetTableShards(server, edgeActor, "/Root/Table");
+            UNIT_ASSERT_VALUES_EQUAL(tabletIds.size(), 1);
+
+            WaitTxNotification(server, edgeActor, AsyncSplitTable(server, edgeActor, "/Root/Table", tabletIds.at(0), 2));
+            WaitForContent(server, edgeActor, "/Root/Table/Stream", {
+                R"({"resolved":"***"})",
+                R"({"resolved":"***"})",
+            });
+        }
+
+        auto initialTabletIds = GetTableShards(server, edgeActor, "/Root/Table");
+        UNIT_ASSERT_VALUES_EQUAL(initialTabletIds.size(), 2);
+
+        std::vector> blockedSplitRequests;
+        auto blockSplitRequests = runtime.AddObserver([&](auto& ev) {
+            if (ev->Get()->Record.GetPartitionRequest().HasCmdSplitMessageGroup()) {
+                blockedSplitRequests.emplace_back(ev.Release());
+            }
+        });
+
+        Cerr << "... merge table" << Endl;
+        const auto mergeTxId = AsyncMergeTable(server, edgeActor, "/Root/Table", initialTabletIds);
+        WaitFor(runtime, [&]{ return blockedSplitRequests.size() == initialTabletIds.size(); }, "blocked split requests");
+        blockSplitRequests.Remove();
+
+        std::vector> blockedRegisterRequests;
+        auto blockRegisterRequests = runtime.AddObserver([&](auto& ev) {
+            if (ev->Get()->Record.GetPartitionRequest().HasCmdRegisterMessageGroup()) {
+                blockedRegisterRequests.emplace_back(ev.Release());
+            }
+        });
+
+        ui32 splitResponses = 0;
+        auto countSplitResponses = runtime.AddObserver([&](auto&) {
+            ++splitResponses;
+        });
+
+        Cerr << "... release split requests" << Endl;
+        for (auto& ev : std::exchange(blockedSplitRequests, {})) {
+            runtime.Send(ev.release(), 0, true);
+            WaitFor(runtime, [prev = splitResponses, &splitResponses]{ return splitResponses > prev; }, "split response");
+        }
+
+        Cerr << "... reboot pq tablet" << Endl;
+        RebootTablet(runtime, ResolvePqTablet(runtime, edgeActor, "/Root/Table/Stream", 0), edgeActor);
+        countSplitResponses.Remove();
+
+        Cerr << "... release register requests" << Endl;
+        blockRegisterRequests.Remove();
+        for (auto& ev : std::exchange(blockedRegisterRequests, {})) {
+            runtime.Send(ev.release(), 0, true);
+        }
+
+        Cerr << "... wait for merge tx notification" << Endl;
+        WaitTxNotification(server, edgeActor, mergeTxId);
+
+        Cerr << "... wait for final heartbeat" << Endl;
+        WaitForContent(server, edgeActor, "/Root/Table/Stream", {
+            R"({"resolved":"***"})",
+            R"({"resolved":"***"})",
+            R"({"resolved":"***"})",
+        });
+    }
+
 } // Cdc
 
 } // NKikimr
@@ -3298,7 +3570,7 @@ template <>
 void Out>(IOutputStream& output, const std::pair& x) {
     output << x.first << ":" << x.second;
 }
- 
+
 void AppendToString(TString& dst, const std::pair& x) {
     TStringOutput output(dst);
     output << x;
diff --git a/ydb/core/tx/datashard/datashard_ut_common_kqp.h b/ydb/core/tx/datashard/datashard_ut_common_kqp.h
index 888711b79943..61b189a860c4 100644
--- a/ydb/core/tx/datashard/datashard_ut_common_kqp.h
+++ b/ydb/core/tx/datashard/datashard_ut_common_kqp.h
@@ -11,6 +11,9 @@ namespace NKqpHelpers {
     using TEvExecuteDataQueryRequest = NKikimr::NGRpcService::TGrpcRequestOperationCall;
 
+    using TEvExecuteSchemeQueryRequest = NKikimr::NGRpcService::TGrpcRequestOperationCall;
+
     using TEvCreateSessionRequest = NKikimr::NGRpcService::TGrpcRequestOperationCall;
 
@@ -42,7 +45,7 @@ namespace NKqpHelpers {
     inline TString CreateSessionRPC(TTestActorRuntime& runtime, const TString& database = {}) {
         Ydb::Table::CreateSessionRequest request;
         auto future = NRpcService::DoLocalRpc(
-           std::move(request), database, "", /* token */ runtime.GetActorSystem(0));
+           std::move(request), database, /* token */ "", runtime.GetActorSystem(0));
         TString sessionId;
         auto response = AwaitResponse(runtime, future);
         UNIT_ASSERT_VALUES_EQUAL(response.operation().status(), Ydb::StatusIds::SUCCESS);
@@ -71,7 +74,7 @@ namespace NKqpHelpers {
         TTestActorRuntime& runtime, Ydb::Table::ExecuteDataQueryRequest&& request, const TString& database = {})
     {
         return NRpcService::DoLocalRpc(
-            std::move(request), database, "" /* token */, runtime.GetActorSystem(0));
+            std::move(request), database, /* token */ "", runtime.GetActorSystem(0));
     }
 
     inline Ydb::Table::ExecuteDataQueryRequest MakeSimpleRequestRPC(
@@ -119,7 +122,7 @@ namespace NKqpHelpers {
         Ydb::Table::DeleteSessionRequest request;
         request.set_session_id(sessionId);
         auto future = NRpcService::DoLocalRpc(
-            std::move(request), "", "", /* token */ runtime.GetActorSystem(0));
+            std::move(request), "", /* token */ "", runtime.GetActorSystem(0));
     }
 
     inline THolder MakeStreamRequest(
@@ -146,7 +149,17 @@ namespace NKqpHelpers {
         if (result.result_sets_size() == 0) {
             return "";
         }
-        return FormatResult(result.result_sets(0));
+        if (result.result_sets_size() == 1) {
+            return FormatResult(result.result_sets(0));
+        }
+        TStringBuilder sb;
+        for (int i = 0; i < result.result_sets_size(); ++i) {
+            if (i != 0) {
+                sb << "\n";
+            }
+            sb << FormatResult(result.result_sets(i));
+        }
+        return sb;
     }
 
     inline TString FormatResult(const Ydb::Table::ExecuteDataQueryResponse& response) {
@@ -158,17 +171,15 @@ namespace NKqpHelpers {
         return FormatResult(result);
     }
 
-    inline TString KqpSimpleExec(TTestActorRuntime& runtime, const TString& query, bool staleRo = false, const TString& database = {}) {
+    inline auto KqpSimpleSend(TTestActorRuntime& runtime, const TString& query, bool staleRo = false, const TString& database = {}) {
         TString sessionId = CreateSessionRPC(runtime, database);
         TString txId;
-        auto response = AwaitResponse(
-            runtime, SendRequest(runtime, MakeSimpleRequestRPC(query, sessionId, txId, true /* commitTx */, staleRo), database));
-        if (response.operation().status() != Ydb::StatusIds::SUCCESS) {
-            return TStringBuilder() << "ERROR: " << response.operation().status();
-        }
-        Ydb::Table::ExecuteQueryResult result;
-        response.operation().result().UnpackTo(&result);
-        return FormatResult(result);
+        return SendRequest(runtime, MakeSimpleRequestRPC(query, sessionId, txId, /* commitTx */ true, staleRo), database);
+    }
+
+    inline TString KqpSimpleExec(TTestActorRuntime& runtime, const TString& query, bool staleRo = false, const TString& database = {}) {
+        auto response = AwaitResponse(runtime, KqpSimpleSend(runtime, query, staleRo, database));
+        return FormatResult(response);
     }
 
     inline TString KqpSimpleStaleRoExec(TTestActorRuntime& runtime, const TString& query, const TString& database = {}) {
@@ -200,9 +211,13 @@ namespace NKqpHelpers {
         return FormatResult(result);
     }
 
-    inline TString KqpSimpleCommit(TTestActorRuntime& runtime, const TString& sessionId, const TString& txId, const TString& query) {
+    inline auto KqpSimpleSendCommit(TTestActorRuntime& runtime, const TString& sessionId, const TString& txId, const TString& query) {
         Y_ABORT_UNLESS(!txId.empty(), "commit on empty transaction");
-        auto response = AwaitResponse(runtime, SendRequest(runtime, MakeSimpleRequestRPC(query, sessionId, txId, true /* commitTx */)));
+        return SendRequest(runtime, MakeSimpleRequestRPC(query, sessionId, txId, true /* commitTx */));
+    }
+
+    inline TString KqpSimpleCommit(TTestActorRuntime& runtime, const TString& sessionId, const TString& txId, const TString& query) {
+        auto response = AwaitResponse(runtime, KqpSimpleSendCommit(runtime, sessionId, txId, query));
         if (response.operation().status() != Ydb::StatusIds::SUCCESS) {
             return TStringBuilder() << "ERROR: " << response.operation().status();
         }
@@ -212,6 +227,31 @@ namespace NKqpHelpers {
         return FormatResult(result);
     }
 
+    inline Ydb::Table::ExecuteSchemeQueryRequest MakeSchemeRequestRPC(
+        const TString& sql, const TString& sessionId)
+    {
+        Ydb::Table::ExecuteSchemeQueryRequest request;
+        request.set_session_id(sessionId);
+        request.set_yql_text(sql);
+        return request;
+    }
+
+    inline NThreading::TFuture SendRequest(
+        TTestActorRuntime& runtime, Ydb::Table::ExecuteSchemeQueryRequest&& request, const TString& database = {})
+    {
+        return NRpcService::DoLocalRpc(
+            std::move(request), database, /* token */ "", runtime.GetActorSystem(0));
+    }
+
+    inline TString KqpSchemeExec(TTestActorRuntime& runtime, const TString& query) {
+        TString sessionId = CreateSessionRPC(runtime);
+        auto response = AwaitResponse(runtime, SendRequest(runtime, MakeSchemeRequestRPC(query, sessionId)));
+        if (response.operation().status() != Ydb::StatusIds::SUCCESS) {
+            return TStringBuilder() << "ERROR: " << response.operation().status();
+        }
+        return "SUCCESS";
+    }
+
 } // namespace NKqpHelpers
 } // namespace NDataShard
 } // namespace NKikimr
diff --git a/ydb/core/tx/datashard/datashard_ut_compaction.cpp b/ydb/core/tx/datashard/datashard_ut_compaction.cpp
index b627b17d3d22..c9873b3c19ca 100644
--- a/ydb/core/tx/datashard/datashard_ut_compaction.cpp
+++ b/ydb/core/tx/datashard/datashard_ut_compaction.cpp
@@ -6,52 +6,6 @@ using namespace NKikimr::NDataShard;
 using namespace NSchemeShard;
 using namespace Tests;
 
-namespace {
-
-    NKikimrTxDataShard::TEvPeriodicTableStats WaitTableStats(TTestActorRuntime& runtime, ui64 tabletId) {
-        NKikimrTxDataShard::TEvPeriodicTableStats stats;
-        bool captured = false;
-
-        auto observerFunc = [&](TAutoPtr& ev) {
-            switch (ev->GetTypeRewrite()) {
-                case TEvDataShard::TEvPeriodicTableStats::EventType: {
-                    const auto& record = ev->Get()->Record;
-                    if (record.GetDatashardId() == tabletId) {
-                        stats = record;
-                        captured = true;
-                    }
-                    break;
-                }
-                default: {
-                    break;
-                }
-            }
-            return TTestActorRuntime::EEventAction::PROCESS;
-        };
-        auto prevObserverFunc = runtime.SetObserverFunc(observerFunc);
-
-        for (int i = 0; i < 5 && !captured; ++i) {
-            TDispatchOptions options;
-            options.CustomFinalCondition = [&]() {
-                return captured;
-            };
-            runtime.DispatchEvents(options, TDuration::Seconds(5));
-        }
-
-        runtime.SetObserverFunc(prevObserverFunc);
-        UNIT_ASSERT(captured);
-
-        return stats;
-    }
-
-    void CompactBorrowed(TTestActorRuntime& runtime, ui64 shardId, const TTableId& tableId) {
-        auto evReq = MakeHolder(tableId.PathId);
-        auto sender = runtime.AllocateEdgeActor();
-        runtime.SendToPipe(shardId, sender, evReq.Release(), 0, GetPipeConfigWithRetries());
-    }
-
-} // namespace
-
 Y_UNIT_TEST_SUITE(DataShardCompaction) {
     Y_UNIT_TEST(CompactBorrowed) {
         TPortManager pm;
@@ -87,7 +41,7 @@ Y_UNIT_TEST_SUITE(DataShardCompaction) {
 
         {
             auto stats = WaitTableStats(runtime, shards2.at(0));
-            // Cerr << "Received shard stats:" << Endl << stats.DebugString();
+            Cerr << "Received shard stats:" << Endl << stats.DebugString();
             const auto& ownersProto = stats.GetUserTablePartOwners();
             THashSet owners(ownersProto.begin(), ownersProto.end());
             // NOTE: datashard always adds current shard to part owners, even if there are no parts
@@ -96,12 +50,18 @@ Y_UNIT_TEST_SUITE(DataShardCompaction) {
             UNIT_ASSERT(owners.contains(shards2.at(0)));
         }
 
-        auto tableId = ResolveTableId(server, sender, "/Root/table-1");
-        CompactBorrowed(runtime, shards2.at(0), tableId);
+        {
+            auto tableId = ResolveTableId(server, sender, "/Root/table-1");
+            auto result = CompactBorrowed(runtime, shards2.at(0), tableId);
+            Cerr << "Compact result " << result.DebugString() << Endl;
+            UNIT_ASSERT_VALUES_EQUAL(result.GetTabletId(), shards2.at(0));
+            UNIT_ASSERT_VALUES_EQUAL(result.GetPathId().GetOwnerId(), tableId.PathId.OwnerId);
+            UNIT_ASSERT_VALUES_EQUAL(result.GetPathId().GetLocalId(), tableId.PathId.LocalPathId);
+        }
 
         for (int i = 0; i < 5; ++i) {
             auto stats = WaitTableStats(runtime, shards2.at(0));
-            // Cerr << "Received shard stats:" << Endl << stats.DebugString();
+            // Cerr << "Received shard stats:" << Endl << stats.DebugString() << Endl;
             const auto& ownersProto = stats.GetUserTablePartOwners();
             THashSet owners(ownersProto.begin(), ownersProto.end());
             if (i < 4) {
diff --git a/ydb/core/tx/datashard/datashard_ut_followers.cpp b/ydb/core/tx/datashard/datashard_ut_followers.cpp
index 57f6b39f1ffc..b4c4ea7712a7 100644
--- a/ydb/core/tx/datashard/datashard_ut_followers.cpp
+++ b/ydb/core/tx/datashard/datashard_ut_followers.cpp
@@ -2,6 +2,8 @@
 #include "datashard_ut_common_kqp.h"
 #include "datashard_ut_read_table.h"
 
+#include 
+
 namespace NKikimr {
 
 using namespace NKikimr::NDataShard;
@@ -162,6 +164,100 @@ Y_UNIT_TEST_SUITE(DataShardFollowers) {
         }
     }
 
+    Y_UNIT_TEST(FollowerRebootAfterSysCompaction) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false)
+            .SetEnableForceFollowers(true);
+
+        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);
+
+        InitRoot(server, sender);
+
+        CreateShardedTable(server, sender, "/Root", "table-1",
+            TShardedTableOptions()
+                .Shards(2)
+                .Followers(1));
+
+        const auto shards = GetTableShards(server, sender, "/Root/table-1");
+        UNIT_ASSERT_VALUES_EQUAL(shards.size(), 2u);
+
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 11), (2, 22), (3, 33);");
+
+        // Wait for leader to promote the follower read edge (and stop writing to the Sys table)
+        Cerr << "... sleeping" << Endl;
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleStaleRoExec(runtime,
+                "SELECT key, value FROM `/Root/table-1` WHERE key >= 1 AND key <= 3",
+                "/Root"),
+            "{ items { uint32_value: 1 } items { uint32_value: 11 } }, "
+            "{ items { uint32_value: 2 } items { uint32_value: 22 } }, "
+            "{ items { uint32_value: 3 } items { uint32_value: 33 } }");
+
+        // Now we ask the leader to compact the Sys table
+        {
+            NActorsProto::TRemoteHttpInfo pb;
+            pb.SetMethod(HTTP_METHOD_GET);
+            pb.SetPath("/executorInternals");
+            auto* p1 = pb.AddQueryParams();
+            p1->SetKey("force_compaction");
+            p1->SetValue("1");
+            SendViaPipeCache(runtime, shards.at(0), sender,
+                std::make_unique(std::move(pb)));
+            auto ev = runtime.GrabEdgeEventRethrow(sender);
+            UNIT_ASSERT_C(
+                ev->Get()->Html.Contains("Table will be compacted in the near future"),
+                ev->Get()->Html);
+        }
+
+        // Allow table to finish compaction
+        Cerr << "... sleeping" << Endl;
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        // Reboot follower
+        Cerr << "... killing follower" << Endl;
+        SendViaPipeCache(runtime, shards.at(0), sender,
+            std::make_unique(),
+            { .Follower = true });
+
+        // Allow it to boot properly
+        Cerr << "... sleeping" << Endl;
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        // Read from follower must succeed
+        Cerr << "... checking" << Endl;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleStaleRoExec(runtime,
+                "SELECT key, value FROM `/Root/table-1` WHERE key >= 1 AND key <= 3",
+                "/Root"),
+            "{ items { uint32_value: 1 } items { uint32_value: 11 } }, "
+            "{ items { uint32_value: 2 } items { uint32_value: 22 } }, "
+            "{ items { uint32_value: 3 } items { uint32_value: 33 } }");
+
+        // Update row values and sleep
+        Cerr << "... updating rows" << Endl;
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 44), (2, 55), (3, 66);");
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        // Read from follower must see updated values
+        Cerr << "... checking" << Endl;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleStaleRoExec(runtime,
+                "SELECT key, value FROM `/Root/table-1` WHERE key >= 1 AND key <= 3",
+                "/Root"),
+            "{ items { uint32_value: 1 } items { uint32_value: 44 } }, "
+            "{ items { uint32_value: 2 } items { uint32_value: 55 } }, "
+            "{ items { uint32_value: 3 } items { uint32_value: 66 } }");
+    }
+
 } // Y_UNIT_TEST_SUITE(DataShardFollowers)
 
 } // namespace NKikimr
diff --git a/ydb/core/tx/datashard/datashard_ut_order.cpp b/ydb/core/tx/datashard/datashard_ut_order.cpp
index 194f826743e6..4f58e3fe804f 100644
--- a/ydb/core/tx/datashard/datashard_ut_order.cpp
+++ b/ydb/core/tx/datashard/datashard_ut_order.cpp
@@ -1662,129 +1662,6 @@ Y_UNIT_TEST_TWIN(TestOutOfOrderNonConflictingWrites, StreamLookup) {
     }
 }
 
-Y_UNIT_TEST(MvccTestOutOfOrderRestartLocksSingleWithoutBarrier) {
-    TPortManager pm;
-    NKikimrConfig::TAppConfig app;
-    app.MutableTableServiceConfig()->SetEnableKqpDataQueryStreamLookup(false);
-    TServerSettings serverSettings(pm.GetPort(2134));
-    serverSettings.SetDomainName("Root")
-        .SetAppConfig(app)
-        .SetUseRealThreads(false);
-
-    Tests::TServer::TPtr server = new TServer(serverSettings);
-    auto &runtime = *server->GetRuntime();
-    auto sender = runtime.AllocateEdgeActor();
-
-    // This test requires barrier to be disabled
-    runtime.GetAppData().FeatureFlags.SetDisableDataShardBarrier(true);
-
-    runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
-    runtime.SetLogPriority(NKikimrServices::KQP_EXECUTER, NLog::PRI_DEBUG);
-
-    const bool usesVolatileTxs = runtime.GetAppData(0).FeatureFlags.GetEnableDataShardVolatileTransactions();
-
-    InitRoot(server, sender);
-
-    CreateShardedTable(server, sender, "/Root", "table-1", 1);
-    CreateShardedTable(server, sender, "/Root", "table-2", 1);
-    auto table1shards = GetTableShards(server, sender, "/Root/table-1");
-    auto table2shards = GetTableShards(server, sender, "/Root/table-2");
-
-    ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 1);"));
-    ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-2` (key, value) VALUES (2, 1);"));
-
-    TString sessionId = CreateSessionRPC(runtime);
-
-    TString txId;
-    {
-        auto result = KqpSimpleBegin(runtime, sessionId, txId, Q_(R"(
-             SELECT * FROM `/Root/table-1` WHERE key = 1
-             UNION ALL
-             SELECT * FROM `/Root/table-2` WHERE key = 2
-             ORDER BY key)"));
-        UNIT_ASSERT_VALUES_EQUAL(
-            result,
-            "{ items { uint32_value: 1 } items { uint32_value: 1 } }, "
-            "{ items { uint32_value: 2 } items { uint32_value: 1 } }");
-    }
-
-    // Capture and block all readset messages
-    TVector> readSets;
-    auto captureRS = [&](TAutoPtr &event) -> auto {
-        if (event->GetTypeRewrite() == TEvTxProcessing::EvReadSet) {
-            readSets.push_back(std::move(event));
-            return TTestActorRuntime::EEventAction::DROP;
-        }
-        return TTestActorRuntime::EEventAction::PROCESS;
-    };
-    auto prevObserverFunc = runtime.SetObserverFunc(captureRS);
-
-    // Send a commit request, it would block on readset exchange
-    SendRequest(runtime, MakeSimpleRequestRPC(Q_(R"(
-        UPSERT INTO `/Root/table-1` (key, value) VALUES (3, 2);
-        UPSERT INTO `/Root/table-2` (key, value) VALUES (4, 2))"), sessionId, txId, true));
-
-    // Wait until we captured both readsets
-    const size_t expectedReadSets = usesVolatileTxs ? 4 : 2;
-    if (readSets.size() < expectedReadSets) {
-        TDispatchOptions options;
-        options.FinalEvents.emplace_back(
-            [&](IEventHandle &) -> bool {
-                return readSets.size() >= expectedReadSets;
-            });
-        runtime.DispatchEvents(options);
-    }
-    UNIT_ASSERT_VALUES_EQUAL(readSets.size(), expectedReadSets);
-
-    // Reboot table-1 tablet
-    readSets.clear();
-    RebootTablet(runtime, table1shards[0], sender);
-
-    // Wait until we captured both readsets again
-    if (readSets.size() < expectedReadSets) {
-        TDispatchOptions options;
-        options.FinalEvents.emplace_back(
-            [&](IEventHandle &) -> bool {
-                return readSets.size() >= expectedReadSets;
-            });
-        runtime.DispatchEvents(options);
-    }
-    UNIT_ASSERT_VALUES_EQUAL(readSets.size(), expectedReadSets);
-
-    // Select keys 1 and 3, we expect this immediate tx to succeed
-    // Note that key 3 is not written yet, but we pretend immediate tx
-    // executes before that waiting transaction (no key 3 yet).
-    // Note: volatile transactions block reads until they are resolved, so this read is skipped
-    if (!usesVolatileTxs) {
-        auto result = KqpSimpleExec(runtime, Q_("SELECT key, value FROM `/Root/table-1` WHERE key = 1 OR key = 3;"));
-        UNIT_ASSERT_VALUES_EQUAL(result, "{ items { uint32_value: 1 } items { uint32_value: 1 } }");
-    }
-
-    // Upsert key 1, we expect this immediate tx to be executed successfully because it lies to the right on the global timeline
-    {
-        auto result = KqpSimpleExec(runtime, Q_("UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 3);"));
-        UNIT_ASSERT_VALUES_EQUAL(result, "");
-    }
-
-    // Upsert key 5, this immediate tx should be executed successfully too
-    {
-        auto result = KqpSimpleExec(runtime, Q_("UPSERT INTO `/Root/table-1` (key, value) VALUES (5, 3);"));
-        UNIT_ASSERT_VALUES_EQUAL(result, "");
-    }
-
-    // Release readsets allowing tx to progress
-    runtime.SetObserverFunc(prevObserverFunc);
-    for (auto& ev : readSets) {
-        runtime.Send(ev.Release(), 0, /* viaActorSystem */ true);
-    }
-
-    // Select key 3, we expect a success
-    {
-        auto result = KqpSimpleExec(runtime, Q_("SELECT key, value FROM `/Root/table-1` WHERE key = 3;"));
-        UNIT_ASSERT_VALUES_EQUAL(result, "{ items { uint32_value: 3 } items { uint32_value: 2 } }");
-    }
-}
-
 Y_UNIT_TEST_TWIN(TestOutOfOrderRestartLocksReorderedWithoutBarrier, StreamLookup) {
     TPortManager pm;
     NKikimrConfig::TAppConfig app;
@@ -3386,6 +3263,72 @@ Y_UNIT_TEST_TWIN(TestShardRestartPlannedCommitShouldSucceed, StreamLookup) {
     }
 }
 
+Y_UNIT_TEST(TestShardRestartDuringWaitingRead) {
+    TPortManager pm;
+    NKikimrConfig::TAppConfig app;
+    app.MutableTableServiceConfig()->SetEnableKqpDataQuerySourceRead(true);
+    TServerSettings serverSettings(pm.GetPort(2134));
+    serverSettings.SetDomainName("Root")
+        .SetUseRealThreads(false)
+        .SetAppConfig(app)
+        // We read from an unresolved volatile tx
+        .SetEnableDataShardVolatileTransactions(true);
+
+    Tests::TServer::TPtr server = new TServer(serverSettings);
+    auto &runtime = *server->GetRuntime();
+    auto sender = runtime.AllocateEdgeActor();
+
+    InitRoot(server, sender);
+
+    CreateShardedTable(server, sender, "/Root", "table-1", 1);
+    CreateShardedTable(server, sender, "/Root", "table-2", 1);
+    auto table1shards = GetTableShards(server, sender, "/Root/table-1");
+
+    ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 10)"));
+    ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-2` (key, value) VALUES (2, 20)"));
+
+    // Block readset exchange
+    std::vector> readSets;
+    auto blockReadSets = runtime.AddObserver([&](TEvTxProcessing::TEvReadSet::TPtr& ev) {
+        readSets.emplace_back(ev.Release());
+    });
+
+    // Start a distributed write to both tables
+    TString sessionId = CreateSessionRPC(runtime, "/Root");
+    auto upsertResult = SendRequest(
+        runtime,
+        MakeSimpleRequestRPC(R"(
+            UPSERT INTO `/Root/table-1` (key, value) VALUES (3, 30);
+            UPSERT INTO `/Root/table-2` (key, value) VALUES (4, 40);
+            )", sessionId, /* txId */ "", /* commitTx */ true),
+        "/Root");
+    WaitFor(runtime, [&]{ return readSets.size() >= 4; }, "readsets");
+
+    // Start reading the first table
+    TString readSessionId = CreateSessionRPC(runtime, "/Root");
+    auto readResult = SendRequest(
+        runtime,
+        MakeSimpleRequestRPC(R"(
+            SELECT key, value FROM `/Root/table-1`
+            ORDER BY key;
+            )", readSessionId, /* txId */ "", /* commitTx */ true),
+        "/Root");
+
+    // Sleep to ensure read is properly waiting
+    runtime.SimulateSleep(TDuration::Seconds(1));
+
+    // Gracefully restart the first table shard
+    blockReadSets.Remove();
+    GracefulRestartTablet(runtime, table1shards[0], sender);
+
+    // Read succeeds because it is automatically retried
+    // No assert should be triggered in debug builds
+    UNIT_ASSERT_VALUES_EQUAL(
+        FormatResult(AwaitResponse(runtime, std::move(readResult))),
+        "{ items { uint32_value: 1 } items { uint32_value: 10 } }, "
+        "{ items { uint32_value: 3 } items { uint32_value: 30 } }");
+}
+
 Y_UNIT_TEST(TestShardSnapshotReadNoEarlyReply) {
     TPortManager pm;
     TServerSettings serverSettings(pm.GetPort(2134));
@@ -4336,6 +4279,7 @@ Y_UNIT_TEST(UncommittedReadSetAck) {
 
     bool capturePlanSteps = true;
     TVector> capturedPlanSteps;
+    TVector capturedPlanTxIds;
     THashSet passReadSetTxIds;
     ui64 observedReadSets = 0;
     TVector> capturedReadSets;
@@ -4351,6 +4295,12 @@ Y_UNIT_TEST(UncommittedReadSetAck) {
             case TEvTxProcessing::TEvPlanStep::EventType: {
                 if (nodeIndex == 1 && ev->GetRecipientRewrite() == table3actor && capturePlanSteps) {
                     Cerr << "... captured plan step for table-3" << Endl;
+                    auto* msg = ev->Get();
+                    for (const auto& tx : msg->Record.GetTransactions()) {
+                        ui64 txId = tx.GetTxId();
+                        capturedPlanTxIds.push_back(txId);
+                        Cerr << "... captured plan step tx " << txId << " for table-3" << Endl;
+                    }
                     capturedPlanSteps.emplace_back(ev.Release());
                     return TTestActorRuntime::EEventAction::DROP;
                 }
@@ -4360,6 +4310,12 @@ Y_UNIT_TEST(UncommittedReadSetAck) {
                 if (nodeIndex == 1 && ev->GetRecipientRewrite() == table3actor) {
                     auto* msg = ev->Get();
                     ui64 txId = msg->Record.GetTxId();
+                    if ((msg->Record.GetFlags() & NKikimrTx::TEvReadSet::FLAG_EXPECT_READSET) &&
+                        (msg->Record.GetFlags() & NKikimrTx::TEvReadSet::FLAG_NO_DATA))
+                    {
+                        Cerr << "... passing expectation for txid# " << txId << Endl;
+                        break;
+                    }
                     ++observedReadSets;
                     if (!passReadSetTxIds.contains(txId)) {
                         Cerr << "... readset for txid# " << txId << " was blocked" << Endl;
@@ -4410,20 +4366,11 @@ Y_UNIT_TEST(UncommittedReadSetAck) {
         }
     };
 
-    waitFor([&]{ return capturedPlanSteps.size() > 0; }, "plan step");
-    UNIT_ASSERT_VALUES_EQUAL(capturedPlanSteps.size(), 1u);
-    ui64 realTxId1, realTxId2;
-    {
-        auto* msg = capturedPlanSteps[0]->Get();
-        TVector realTxIds;
-        for (const auto& tx : msg->Record.GetTransactions()) {
-            realTxIds.emplace_back(tx.GetTxId());
-        }
-        UNIT_ASSERT_VALUES_EQUAL(realTxIds.size(), 2u);
-        std::sort(realTxIds.begin(), realTxIds.end());
-        realTxId1 = realTxIds.at(0);
-        realTxId2 = realTxIds.at(1);
-    }
+    waitFor([&]{ return capturedPlanTxIds.size() >= 2; }, "captured transactions");
+    UNIT_ASSERT_C(capturedPlanTxIds.size(), 2u);
+    std::sort(capturedPlanTxIds.begin(), capturedPlanTxIds.end());
+    ui64 realTxId1 = capturedPlanTxIds.at(0);
+    ui64 realTxId2 = capturedPlanTxIds.at(1);
 
     // Unblock and resend the plan step message
     capturePlanSteps = false;
@@ -4432,7 +4379,7 @@ Y_UNIT_TEST(UncommittedReadSetAck) {
     }
     capturedPlanSteps.clear();
 
-    // Wait until there are 2 readset messages
+    // Wait until there are 2 readset messages (with data)
     waitFor([&]{ return capturedReadSets.size() >= 2; }, "initial readsets");
     SimulateSleep(runtime, TDuration::MilliSeconds(5));
 
diff --git a/ydb/core/tx/datashard/datashard_ut_read_iterator.cpp b/ydb/core/tx/datashard/datashard_ut_read_iterator.cpp
index 044080f8d711..940f4179aa76 100644
--- a/ydb/core/tx/datashard/datashard_ut_read_iterator.cpp
+++ b/ydb/core/tx/datashard/datashard_ut_read_iterator.cpp
@@ -21,6 +21,7 @@
 namespace NKikimr {
 
 using namespace NKikimr::NDataShard;
+using namespace NKikimr::NDataShard::NKqpHelpers;
 using namespace NSchemeShard;
 using namespace Tests;
 
@@ -348,7 +349,7 @@ struct TTestHelper {
         auto &runtime = *Server->GetRuntime();
         Sender = runtime.AllocateEdgeActor();
 
-        runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_NOTICE);
+        runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
         runtime.SetLogPriority(NKikimrServices::TX_PROXY, NLog::PRI_INFO);
 
         InitRoot(Server, Sender);
@@ -759,7 +760,7 @@ struct TTestHelper {
         TSerializedCellMatrix matrix(cells, 1, columnCount);
 
         auto evWrite = std::make_unique(txId, txMode);
-        ui64 payloadIndex = NKikimr::NEvWrite::TPayloadHelper(*evWrite).AddDataToPayload(matrix.ReleaseBuffer());
+        ui64 payloadIndex = NKikimr::NEvWrite::TPayloadWriter(*evWrite).AddDataToPayload(matrix.ReleaseBuffer());
         evWrite->AddOperation(NKikimrDataEvents::TEvWrite::TOperation::OPERATION_UPSERT, table.TableId, columnIds, payloadIndex, NKikimrDataEvents::FORMAT_CELLVEC);
 
         return Write(*Server->GetRuntime(), Sender, table.TabletId, std::move(evWrite));
@@ -818,7 +819,11 @@ struct TTestHelper {
                     break;
                 }
                 case TEvTxProcessing::EvReadSet: {
-                    if (dropRS) {
+                    auto* msg = event->Get();
+                    auto flags = msg->Record.GetFlags();
+                    auto isExpect = flags & NKikimrTx::TEvReadSet::FLAG_EXPECT_READSET;
+                    auto isNoData = flags & NKikimrTx::TEvReadSet::FLAG_NO_DATA;
+                    if (dropRS && !(isExpect && isNoData)) {
                         result.ReadSets.push_back(std::move(event));
                         return TTestActorRuntime::EEventAction::DROP;
                     }
@@ -852,7 +857,10 @@ struct TTestHelper {
             )"));
         }
 
-        waitFor([&]{ return result.ReadSets.size() == 1; }, "intercepted RS");
+        const bool usesVolatileTxs = runtime.GetAppData(0).FeatureFlags.GetEnableDataShardVolatileTransactions();
+        const size_t expectedReadSets = 1 + (finalUpserts && usesVolatileTxs ? 2 : 0);
+
+        waitFor([&]{ return result.ReadSets.size() == expectedReadSets; }, "intercepted RS");
 
         // restore original observer (note we used lambda function and stack variables)
         Server->GetRuntime()->SetObserverFunc(prevObserverFunc);
@@ -2576,7 +2584,9 @@ Y_UNIT_TEST_SUITE(DataShardReadIterator) {
         TPortManager pm;
         TServerSettings serverSettings(pm.GetPort(2134));
         serverSettings.SetDomainName("Root")
-            .SetUseRealThreads(false);
+            .SetUseRealThreads(false)
+            // Blocked volatile transactions block reads, disable
+            .SetEnableDataShardVolatileTransactions(false);
 
         const ui64 shardCount = 1;
         TTestHelper helper(serverSettings, shardCount);
@@ -3600,7 +3610,7 @@ Y_UNIT_TEST_SUITE(DataShardReadIteratorPageFaults) {
         auto& runtime = *server->GetRuntime();
         auto sender = runtime.AllocateEdgeActor();
 
-        runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_NOTICE);
+        runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
         runtime.SetLogPriority(NKikimrServices::TX_PROXY, NLog::PRI_INFO);
         // runtime.SetLogPriority(NKikimrServices::TABLET_EXECUTOR, NLog::PRI_DEBUG);
 
@@ -3680,6 +3690,480 @@ Y_UNIT_TEST_SUITE(DataShardReadIteratorPageFaults) {
         // We should be able to drop table
         WaitTxNotification(server, AsyncDropTable(server, sender, "/Root", "table-1"));
     }
+
+    Y_UNIT_TEST(LocksNotLostOnPageFault) {
+        TPortManager pm;
+        NFake::TCaches caches;
+        caches.Shared = 1 /* bytes */;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false)
+            .SetCacheParams(caches);
+        TServer::TPtr server = new TServer(serverSettings);
+
+        auto& runtime = *server->GetRuntime();
+        auto sender = runtime.AllocateEdgeActor();
+
+        runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        TDisableDataShardLogBatching disableDataShardLogBatching;
+
+        // Use a policy that forces very small page sizes, effectively making each row on its own page
+        NLocalDb::TCompactionPolicyPtr policy = NLocalDb::CreateDefaultTablePolicy();
+        policy->MinDataPageSize = 1;
+
+        auto opts = TShardedTableOptions()
+                .Columns({{"key", "Int32", true, false},
+                          {"index", "Int32", true, false},
+                          {"value", "Int32", false, false}})
+                .Policy(policy.Get())
+                .ExecutorCacheSize(1 /* byte */);
+        auto [shards, tableId] = CreateShardedTable(server, sender, "/Root", "table-1", opts);
+
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table-1` (key, index, value) VALUES (1, 0, 10), (3, 0, 30), (5, 0, 50), (7, 0, 70), (9, 0, 90);");
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        const auto shard1 = shards.at(0);
+        CompactTable(runtime, shard1, tableId, false);
+        RebootTablet(runtime, shard1, sender);
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        // Start a write transaction that has uncommitted write to key (2, 0)
+        // This is because read iterator measures "work" in processed/skipped rows, so we have to give it something
+        TString writeSessionId, writeTxId;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleBegin(runtime, writeSessionId, writeTxId, R"(
+                UPSERT INTO `/Root/table-1` (key, index, value) VALUES (2, 0, 20), (4, 0, 40);
+
+                SELECT key, index, value FROM `/Root/table-1`
+                WHERE key = 2
+                ORDER BY key, index;
+                )"),
+            "{ items { int32_value: 2 } items { int32_value: 0 } items { int32_value: 20 } }");
+
+        // Start a read transaction with several range read in a specific order
+        // The first two prefixes don't exist (nothing committed yet)
+        // The other two prefixes are supposed to page fault
+        TString sessionId, txId;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleBegin(runtime, sessionId, txId, R"(
+                SELECT key, index, value FROM `/Root/table-1`
+                WHERE key IN (2, 4, 7, 9)
+                ORDER BY key, index;
+                )"),
+            "{ items { int32_value: 7 } items { int32_value: 0 } items { int32_value: 70 } }, "
+            "{ items { int32_value: 9 } items { int32_value: 0 } items { int32_value: 90 } }");
+
+        // Commit the first transaction, it must succeed
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleCommit(runtime, writeSessionId, writeTxId, "SELECT 1;"),
+            "{ items { int32_value: 1 } }");
+
+        // Commit the second transaction with a new upsert, it must not succeed
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleCommit(runtime, sessionId, txId,
+                "UPSERT INTO `/Root/table-1` (key, index, value) VALUES (2, 0, 22);"),
+            "ERROR: ABORTED");
+    }
+}
+
+Y_UNIT_TEST_SUITE(DataShardReadIteratorConsistency) {
+
+    Y_UNIT_TEST(LocalSnapshotReadWithPlanQueueRace) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false);
+        TServer::TPtr server = new TServer(serverSettings);
+
+        auto& runtime = *server->GetRuntime();
+        auto sender = runtime.AllocateEdgeActor();
+
+        runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        TDisableDataShardLogBatching disableDataShardLogBatching;
+
+        auto [shards, tableId] = CreateShardedTable(server, sender, "/Root", "table-1", 1);
+        CreateShardedTable(server, sender, "/Root", "table-2", 1);
+
+        auto shardActor = ResolveTablet(runtime, shards.at(0));
+
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 10), (3, 30), (5, 50), (7, 70), (9, 90);");
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table-2` (key, value) VALUES (2, 20), (4, 40), (6, 60), (8, 80);");
+
+        std::vector reads;
+        auto captureReads = runtime.AddObserver([&](TEvDataShard::TEvRead::TPtr& ev) {
+            if (ev->GetRecipientRewrite() == shardActor) {
+                Cerr << "... captured TEvRead for " << shardActor << Endl;
+                reads.push_back(std::move(ev));
+            }
+        });
+
+        std::vector plans;
+        auto capturePlans = runtime.AddObserver([&](TEvTxProcessing::TEvPlanStep::TPtr& ev) {
+            if (ev->GetRecipientRewrite() == shardActor) {
+                Cerr << "... captured TEvPlanStep for " << shardActor << Endl;
+                plans.push_back(std::move(ev));
+            }
+        });
+
+        auto readFuture = KqpSimpleSend(runtime, R"(
+            SELECT * FROM `/Root/table-1` ORDER BY key;
+            )");
+
+        auto upsertFuture = KqpSimpleSend(runtime, R"(
+            UPSERT INTO `/Root/table-1` SELECT * FROM `/Root/table-2`;
+            )");
+
+        WaitFor(runtime, [&]{ return reads.size() > 0 && plans.size() > 0; }, "read and plan");
+
+        captureReads.Remove();
+        capturePlans.Remove();
+
+        TRowVersion lastTx;
+        for (auto& ev : plans) {
+            auto* msg = ev->Get();
+            for (auto& tx : msg->Record.GetTransactions()) {
+                // Remember the last transaction in the plan
+                lastTx = TRowVersion(msg->Record.GetStep(), tx.GetTxId());
+            }
+            runtime.Send(ev.Release(), 0, true);
+        }
+        plans.clear();
+
+        for (auto& ev : reads) {
+            auto* msg = ev->Get();
+            // We expect it to be an immediate read
+            UNIT_ASSERT_C(!msg->Record.HasSnapshot(), msg->Record.DebugString());
+            // Limit each chunk to just 2 rows
+            // This will force it to sleep and read in repeatable snapshot mode
+            msg->Record.SetMaxRowsInResult(2);
+            // Message must be immediate after plan in the mailbox
+            runtime.Send(ev.Release(), 0, true);
+        }
+        reads.clear();
+
+        std::vector readContinues;
+        auto captureReadContinues = runtime.AddObserver([&](TEvDataShard::TEvReadContinue::TPtr& ev) {
+            if (ev->GetRecipientRewrite() == shardActor) {
+                Cerr << "... captured TEvReadContinue for " << shardActor << Endl;
+                readContinues.push_back(std::move(ev));
+            }
+        });
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(upsertFuture))),
+            "");
+
+        captureReadContinues.Remove();
+        for (auto& ev : readContinues) {
+            runtime.Send(ev.Release(), 0, true);
+        }
+        readContinues.clear();
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(readFuture))),
+            // Technically result without 2, 4, 6 and 8 is possible
+            // In practice we will never block writes because of unfinished reads
+            "{ items { uint32_value: 1 } items { uint32_value: 10 } }, "
+            "{ items { uint32_value: 2 } items { uint32_value: 20 } }, "
+            "{ items { uint32_value: 3 } items { uint32_value: 30 } }, "
+            "{ items { uint32_value: 4 } items { uint32_value: 40 } }, "
+            "{ items { uint32_value: 5 } items { uint32_value: 50 } }, "
+            "{ items { uint32_value: 6 } items { uint32_value: 60 } }, "
+            "{ items { uint32_value: 7 } items { uint32_value: 70 } }, "
+            "{ items { uint32_value: 8 } items { uint32_value: 80 } }, "
+            "{ items { uint32_value: 9 } items { uint32_value: 90 } }");
+    }
+
+    Y_UNIT_TEST(LocalSnapshotReadHasRequiredDependencies) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false)
+            // We need to block transactions with readsets
+            .SetEnableDataShardVolatileTransactions(false);
+        TServer::TPtr server = new TServer(serverSettings);
+
+        auto& runtime = *server->GetRuntime();
+        auto sender = runtime.AllocateEdgeActor();
+
+        runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        TDisableDataShardLogBatching disableDataShardLogBatching;
+
+        auto [shards, tableId] = CreateShardedTable(server, sender, "/Root", "table-1", 1);
+        CreateShardedTable(server, sender, "/Root", "table-2", 1);
+
+        auto shardActor = ResolveTablet(runtime, shards.at(0));
+
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 10), (3, 30), (5, 50), (7, 70);");
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table-2` (key, value) VALUES (2, 20), (4, 40), (6, 60);");
+
+        std::vector readsets;
+        auto captureReadSets = runtime.AddObserver([&](TEvTxProcessing::TEvReadSet::TPtr& ev) {
+            if (ev->GetRecipientRewrite() == shardActor) {
+                Cerr << "... captured readset for " << ev->GetRecipientRewrite() << Endl;
+                readsets.push_back(std::move(ev));
+            }
+        });
+
+        // Block while writing to some keys
+        auto upsertFuture = KqpSimpleSend(runtime, R"(
+            UPSERT INTO `/Root/table-1` SELECT * FROM `/Root/table-2`;
+        )");
+
+        WaitFor(runtime, [&]{ return readsets.size() > 0; }, "readset");
+
+        captureReadSets.Remove();
+
+        auto modifyReads = runtime.AddObserver([&](TEvDataShard::TEvRead::TPtr& ev) {
+            if (ev->GetRecipientRewrite() == shardActor) {
+                Cerr << "... modifying TEvRead for " << shardActor << Endl;
+                auto* msg = ev->Get();
+                // We expect it to be an immediate read
+                UNIT_ASSERT_C(!msg->Record.HasSnapshot(), msg->Record.DebugString());
+                // Limit each chunk to just 2 rows
+                // This will force it to sleep and read in repeatable snapshot mode
+                msg->Record.SetMaxRowsInResult(2);
+            }
+        });
+
+        // Read all rows, including currently undecided keys
+        auto readFuture = KqpSimpleSend(runtime, R"(
+            SELECT * FROM `/Root/table-1`
+            WHERE key <= 5
+            ORDER BY key;
+            )");
+
+        // Give read a chance to finish incorrectly
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        for (auto& ev : readsets) {
+            runtime.Send(ev.Release(), 0, true);
+        }
+        readsets.clear();
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(upsertFuture))),
+            "");
+
+        // We must have observed all rows at the given repeatable snapshot
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(readFuture))),
+            "{ items { uint32_value: 1 } items { uint32_value: 10 } }, "
+            "{ items { uint32_value: 2 } items { uint32_value: 20 } }, "
+            "{ items { uint32_value: 3 } items { uint32_value: 30 } }, "
+            "{ items { uint32_value: 4 } items { uint32_value: 40 } }, "
+            "{ items { uint32_value: 5 } items { uint32_value: 50 } }");
+    }
+
+    Y_UNIT_TEST(LocalSnapshotReadNoUnnecessaryDependencies) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false)
+            // We need to block transactions with readsets
+            .SetEnableDataShardVolatileTransactions(false);
+        TServer::TPtr server = new TServer(serverSettings);
+
+        auto& runtime = *server->GetRuntime();
+        auto sender = runtime.AllocateEdgeActor();
+
+        runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        TDisableDataShardLogBatching disableDataShardLogBatching;
+
+        auto [shards, tableId] = CreateShardedTable(server, sender, "/Root", "table-1", 1);
+        CreateShardedTable(server, sender, "/Root", "table-2", 1);
+
+        auto shardActor = ResolveTablet(runtime, shards.at(0));
+
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 10), (3, 30), (5, 50), (7, 70);");
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table-2` (key, value) VALUES (2, 20), (4, 40), (6, 60);");
+
+        std::vector readsets;
+        auto captureReadSets = runtime.AddObserver([&](TEvTxProcessing::TEvReadSet::TPtr& ev) {
+            if (ev->GetRecipientRewrite() == shardActor) {
+                Cerr << "... captured readset for " << ev->GetRecipientRewrite() << Endl;
+                readsets.push_back(std::move(ev));
+            }
+        });
+
+        // Block while writing to key 2
+        auto upsertFuture = KqpSimpleSend(runtime, R"(
+            UPSERT INTO `/Root/table-1` SELECT * FROM `/Root/table-2` WHERE key = 2;
+        )");
+
+        WaitFor(runtime, [&]{ return readsets.size() > 0; }, "readset");
+
+        captureReadSets.Remove();
+
+        auto modifyReads = runtime.AddObserver([&](TEvDataShard::TEvRead::TPtr& ev) {
+            if (ev->GetRecipientRewrite() == shardActor) {
+                Cerr << "... modifying TEvRead for " << shardActor << Endl;
+                auto* msg = ev->Get();
+                // We expect it to be an immediate read
+                UNIT_ASSERT_C(!msg->Record.HasSnapshot(), msg->Record.DebugString());
+                // Limit each chunk to just 2 rows
+                // This will force it to sleep and read in repeatable snapshot mode
+                msg->Record.SetMaxRowsInResult(2);
+            }
+        });
+
+        // Read all rows, not including currently undecided keys
+        auto readFuture = KqpSimpleSend(runtime, R"(
+            SELECT * FROM `/Root/table-1`
+            WHERE key >= 3
+            ORDER BY key;
+            )");
+
+        // Read must complete without waiting for the above upsert to finish
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(readFuture))),
+            "{ items { uint32_value: 3 } items { uint32_value: 30 } }, "
+            "{ items { uint32_value: 5 } items { uint32_value: 50 } }, "
+            "{ items { uint32_value: 7 } items { uint32_value: 70 } }");
+
+        for (auto& ev : readsets) {
+            runtime.Send(ev.Release(), 0, true);
+        }
+        readsets.clear();
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(upsertFuture))),
+            "");
+    }
+
+    Y_UNIT_TEST(LocalSnapshotReadWithConcurrentWrites) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false)
+            // We need to block transactions with readsets
+            .SetEnableDataShardVolatileTransactions(false);
+        TServer::TPtr server = new TServer(serverSettings);
+
+        auto& runtime = *server->GetRuntime();
+        auto sender = runtime.AllocateEdgeActor();
+
+        runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        TDisableDataShardLogBatching disableDataShardLogBatching;
+
+        auto [shards, tableId] = CreateShardedTable(server, sender, "/Root", "table-1", 1);
+        CreateShardedTable(server, sender, "/Root", "table-2", 1);
+
+        auto shardActor = ResolveTablet(runtime, shards.at(0));
+
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 10), (3, 30), (5, 50), (7, 70);");
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table-2` (key, value) VALUES (2, 20), (4, 40), (6, 60);");
+
+        std::vector readsets;
+        auto captureReadSets = runtime.AddObserver([&](TEvTxProcessing::TEvReadSet::TPtr& ev) {
+            if (ev->GetRecipientRewrite() == shardActor) {
+                Cerr << "... captured readset for " << ev->GetRecipientRewrite() << Endl;
+                readsets.push_back(std::move(ev));
+            }
+        });
+
+        // The first upsert needs to block while writing to key 2
+        auto upsertFuture1 = KqpSimpleSend(runtime, R"(
+            UPSERT INTO `/Root/table-1` SELECT * FROM `/Root/table-2` WHERE key = 2;
+        )");
+
+        WaitFor(runtime, [&]{ return readsets.size() > 0; }, "readset");
+
+        captureReadSets.Remove();
+
+        TRowVersion txVersion = TRowVersion::Min();
+        auto observePlanSteps = runtime.AddObserver([&](TEvTxProcessing::TEvPlanStep::TPtr& ev) {
+            if (ev->GetRecipientRewrite() == shardActor) {
+                auto* msg = ev->Get();
+                for (const auto& tx : msg->Record.GetTransactions()) {
+                    txVersion = TRowVersion(msg->Record.GetStep(), tx.GetTxId());
+                    Cerr << "... observed plan for tx " << txVersion << Endl;
+                }
+            }
+        });
+
+        // Start a transaction that reads from key 3
+        TString sessionId, txId;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleBegin(runtime, sessionId, txId, R"(
+                SELECT key, value FROM `/Root/table-1` WHERE key = 3;
+            )"),
+            "{ items { uint32_value: 3 } items { uint32_value: 30 } }");
+
+        // The second upsert should be ready to execute, but blocked by write-write conflict on key 2
+        // Note we also read from key 3, so that later only one transaction may survive
+        auto upsertFuture2 = KqpSimpleSend(runtime, R"(
+            SELECT key, value FROM `/Root/table-1` WHERE key = 3;
+            $rows = (
+                SELECT key, value FROM `/Root/table-2` WHERE key = 4
+                UNION ALL
+                SELECT 2u AS key, 21u AS value
+                UNION ALL
+                SELECT 3u AS key, 31u AS value
+            );
+            UPSERT INTO `/Root/table-1` SELECT * FROM $rows;
+        )");
+
+        WaitFor(runtime, [&]{ return txVersion != TRowVersion::Min(); }, "plan step");
+
+        observePlanSteps.Remove();
+        auto forceSnapshotRead = runtime.AddObserver([&](TEvDataShard::TEvRead::TPtr& ev) {
+            if (ev->GetRecipientRewrite() == shardActor) {
+                auto* msg = ev->Get();
+                if (!msg->Record.HasSnapshot()) {
+                    Cerr << "... forcing read snapshot " << txVersion << Endl;
+                    msg->Record.MutableSnapshot()->SetStep(txVersion.Step);
+                    msg->Record.MutableSnapshot()->SetTxId(txVersion.TxId);
+                }
+            }
+        });
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, R"(
+                SELECT key, value FROM `/Root/table-1`
+                WHERE key >= 5
+                ORDER BY key;
+            )"),
+            "{ items { uint32_value: 5 } items { uint32_value: 50 } }, "
+            "{ items { uint32_value: 7 } items { uint32_value: 70 } }");
+
+        auto commitFuture = KqpSimpleSendCommit(runtime, sessionId, txId, R"(
+            UPSERT INTO `/Root/table-1` (key, value) VALUES (3, 32);
+        )");
+
+        // Give it all a chance to complete
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        // Unblock readsets
+        for (auto& ev : readsets) {
+            runtime.Send(ev.Release(), 0, true);
+        }
+        readsets.clear();
+
+        auto result1 = FormatResult(AwaitResponse(runtime, std::move(upsertFuture2)));
+        auto result2 = FormatResult(AwaitResponse(runtime, std::move(commitFuture)));
+
+        UNIT_ASSERT_C(
+            result1 == "ERROR: ABORTED" || result2 == "ERROR: ABORTED",
+            "result1: " << result1 << ", "
+            "result2: " << result2);
+    }
+
 }
 
 } // namespace NKikimr
diff --git a/ydb/core/tx/datashard/datashard_ut_rs.cpp b/ydb/core/tx/datashard/datashard_ut_rs.cpp
index 1f6ca976a929..b15784d66c22 100644
--- a/ydb/core/tx/datashard/datashard_ut_rs.cpp
+++ b/ydb/core/tx/datashard/datashard_ut_rs.cpp
@@ -48,7 +48,10 @@ struct IsReadSet {
     {
         if (ev.GetTypeRewrite() == TEvTxProcessing::EvReadSet) {
             auto &rec = ev.Get()->Record;
-            if (rec.GetTabletSource() == Source && rec.GetTabletDest() == Dest) {
+            bool isExpectation = (
+                (rec.GetFlags() & NKikimrTx::TEvReadSet::FLAG_EXPECT_READSET) &&
+                (rec.GetFlags() & NKikimrTx::TEvReadSet::FLAG_NO_DATA));
+            if (rec.GetTabletSource() == Source && rec.GetTabletDest() == Dest && !isExpectation) {
                 return true;
             }
         }
@@ -64,7 +67,9 @@ Y_UNIT_TEST_SUITE(TDataShardRSTest) {
         TPortManager pm;
         TServerSettings serverSettings(pm.GetPort(2134));
         serverSettings.SetDomainName("Root")
-            .SetUseRealThreads(false);
+            .SetUseRealThreads(false)
+            // Volatile transactions avoid storing readsets in InReadSets table
+            .SetEnableDataShardVolatileTransactions(false);
 
         Tests::TServer::TPtr server = new TServer(serverSettings);
         auto &runtime = *server->GetRuntime();
@@ -250,7 +255,13 @@ Y_UNIT_TEST_SUITE(TDataShardRSTest) {
         TPortManager pm;
         TServerSettings serverSettings(pm.GetPort(2134));
         serverSettings.SetDomainName("Root")
-            .SetUseRealThreads(false);
+            .SetUseRealThreads(false)
+            // This test expects rs acks to be delayed during one of restarts,
+            // which doesn't happen with volatile transactions. With volatile
+            // transactions both upserts have already executed, one of them is
+            // just waiting for confirmation before making changes visible.
+            // Since acks are not delayed they are just gone when dropped.
+            .SetEnableDataShardVolatileTransactions(false);
 
         Tests::TServer::TPtr server = new TServer(serverSettings);
         auto &runtime = *server->GetRuntime();
@@ -278,7 +289,10 @@ Y_UNIT_TEST_SUITE(TDataShardRSTest) {
         auto captureRS = [shard1,shard3](TAutoPtr &event) -> auto {
             if (event->GetTypeRewrite() == TEvTxProcessing::EvReadSet) {
                 auto &rec = event->Get()->Record;
-                if (rec.GetTabletSource() == shard1) {
+                bool isExpectation = (
+                    (rec.GetFlags() & NKikimrTx::TEvReadSet::FLAG_EXPECT_READSET) &&
+                    (rec.GetFlags() & NKikimrTx::TEvReadSet::FLAG_NO_DATA));
+                if (rec.GetTabletSource() == shard1 && !isExpectation) {
                     return TTestActorRuntime::EEventAction::DROP;
                 }
             } else if (event->GetTypeRewrite() == TEvTxProcessing::EvReadSetAck) {
@@ -359,6 +373,9 @@ Y_UNIT_TEST_SUITE(TDataShardRSTest) {
             switch (ev->GetTypeRewrite()) {
                 case TEvTxProcessing::TEvReadSet::EventType: {
                     auto* msg = ev->Get();
+                    if (msg->Record.GetFlags() & NKikimrTx::TEvReadSet::FLAG_NO_DATA) {
+                        break;
+                    }
                     NKikimrTx::TReadSetData genericData;
                     Y_ABORT_UNLESS(genericData.ParseFromString(msg->Record.GetReadSet()));
                     Cerr << "... generic readset: " << genericData.DebugString() << Endl;
@@ -419,6 +436,13 @@ Y_UNIT_TEST_SUITE(TDataShardRSTest) {
             switch (ev->GetTypeRewrite()) {
                 case TEvTxProcessing::TEvReadSet::EventType: {
                     auto* msg = ev->Get();
+                    if (msg->Record.GetFlags() & NKikimrTx::TEvReadSet::FLAG_NO_DATA) {
+                        if (!(msg->Record.GetFlags() & NKikimrTx::TEvReadSet::FLAG_EXPECT_READSET)) {
+                            Cerr << "... nodata readset" << Endl;
+                            ++readSets;
+                        }
+                        break;
+                    }
                     NKikimrTx::TReadSetData genericData;
                     Y_ABORT_UNLESS(genericData.ParseFromString(msg->Record.GetReadSet()));
                     Cerr << "... generic readset: " << genericData.DebugString() << Endl;
diff --git a/ydb/core/tx/datashard/datashard_ut_snapshot.cpp b/ydb/core/tx/datashard/datashard_ut_snapshot.cpp
index f34a7e09942b..b91690875ed0 100644
--- a/ydb/core/tx/datashard/datashard_ut_snapshot.cpp
+++ b/ydb/core/tx/datashard/datashard_ut_snapshot.cpp
@@ -8,6 +8,7 @@
 #include 
 
 #include  // Y_UNIT_TEST_(TWIN|QUAD)
+#include 
 
 #include 
 
@@ -3823,6 +3824,1148 @@ Y_UNIT_TEST_SUITE(DataShardSnapshots) {
         UNIT_ASSERT_C(duration <= TDuration::MilliSeconds(200), "UPSERT takes too much time: " << duration);
     }
 
+    Y_UNIT_TEST(UncommittedWriteRestartDuringCommit) {
+        NKikimrConfig::TAppConfig app;
+        app.MutableTableServiceConfig()->SetEnableKqpDataQuerySourceRead(true);
+
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false)
+            .SetDomainPlanResolution(100)
+            .SetAppConfig(app)
+            // Bug was with non-volatile transactions
+            .SetEnableDataShardVolatileTransactions(false);
+
+        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.SetLogPriority(NKikimrServices::KQP_EXECUTER, NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::KQP_SESSION, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        TDisableDataShardLogBatching disableDataShardLogBatching;
+        CreateShardedTable(server, sender, "/Root", "table-1", 1);
+        CreateShardedTable(server, sender, "/Root", "table-2", 1);
+
+        // Insert some initial data
+        ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 10);"));
+        ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-2` (key, value) VALUES (2, 20);"));
+
+        const auto shards1 = GetTableShards(server, sender, "/Root/table-1");
+
+        TString sessionId, txId;
+
+        // Start inserting a row into table-1
+        Cerr << "... sending initial upsert" << Endl;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleBegin(runtime, sessionId, txId, Q_(R"(
+                UPSERT INTO `/Root/table-1` (key, value) VALUES (3, 30);
+                )")),
+            "");
+
+        // We want to block readsets
+        std::vector> readSets;
+        auto blockReadSets = runtime.AddObserver([&](TEvTxProcessing::TEvReadSet::TPtr& ev) {
+            readSets.emplace_back(ev.Release());
+        });
+
+        // Start committing an additional read/write
+        // Note: select on table-1 flushes accumulated changes
+        // Note: select on table-2 ensures we have an outgoing readset
+        Cerr << "... sending commit request" << Endl;
+        auto commitFuture = SendRequest(runtime, MakeSimpleRequestRPC(Q_(R"(
+            SELECT key, value FROM `/Root/table-1`
+            UNION ALL
+            SELECT key, value FROM `/Root/table-2`
+            ORDER BY key;
+
+            UPSERT INTO `/Root/table-2` (key, value) VALUES (4, 40);
+            )"), sessionId, txId, true /* commitTx */));
+
+        WaitFor(runtime, [&]{ return readSets.size() >= 2; }, "readset exchange");
+        UNIT_ASSERT_VALUES_EQUAL(readSets.size(), 2u);
+
+        // We want to block local boot to make sure it stays down during rollback
+        std::vector> blockedLocalBoot;
+        auto blockLocalBoot = runtime.AddObserver([&](TEvLocal::TEvBootTablet::TPtr& ev) {
+            Cerr << "... blocking TEvLocal::TEvBootTablet" << Endl;
+            blockedLocalBoot.emplace_back(std::move(ev.Release()));
+        });
+
+        // Kill current datashard actor with TEvPoison (so it doesn't have a chance to reply)
+        Cerr << "... sending TEvPoison to " << shards1.at(0) << Endl;
+        ForwardToTablet(runtime, shards1.at(0), sender, new TEvents::TEvPoison);
+
+        // Wait until hive tries to boot a new instance (old instance is dead by that point)
+        WaitFor(runtime, [&]{ return blockedLocalBoot.size() > 0; }, "blocked local boot", 3);
+
+        // Stop blocking and resend readsets
+        blockReadSets.Remove();
+        Cerr << "... resending readsets" << Endl;
+        for (auto& ev : readSets) {
+            runtime.Send(ev.release(), 0, true);
+        }
+        readSets.clear();
+
+        // Wait until commit fails with UNDETERMINED
+        Cerr << "... waiting for commit result" << Endl;
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(commitFuture))),
+            "ERROR: UNDETERMINED");
+
+        // Sleep a little to make sure everything settles
+        Cerr << "... sleeping for 1 second" << Endl;
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        // We want to detect a restarting datashard and block its progress queue
+        TActorId shard1actor;
+        std::vector> blockedProgress;
+        auto blockProgressQueue = runtime.AddObserver([&](TAutoPtr& ev) {
+            switch (ev->GetTypeRewrite()) {
+                case TEvTablet::TEvBoot::EventType: {
+                    auto* msg = ev->Get();
+                    Cerr << "... observed TEvBoot for " << msg->TabletID << " at " << ev->GetRecipientRewrite() << Endl;
+                    if (msg->TabletID == shards1.at(0)) {
+                        shard1actor = ev->GetRecipientRewrite();
+                    }
+                    break;
+                }
+                case EventSpaceBegin(TKikimrEvents::ES_PRIVATE) + 0 /* EvProgressTransaction */: {
+                    if (shard1actor && ev->GetRecipientRewrite() == shard1actor) {
+                        Cerr << "... blocking TEvProgressTranasction at " << ev->GetRecipientRewrite() << Endl;
+                        blockedProgress.emplace_back(ev.Release());
+                        return;
+                    }
+                    break;
+                }
+            }
+        });
+
+        // Unblock local boot
+        blockLocalBoot.Remove();
+        Cerr << "... unblocking local boot" << Endl;
+        for (auto& ev : blockedLocalBoot) {
+            runtime.Send(ev.release(), 0, true);
+        }
+        blockedLocalBoot.clear();
+
+        // Wait until a new instance starts and is blocked at progress queue handling
+        WaitFor(runtime, [&]{ return blockedProgress.size() > 0; }, "blocked progress", 10);
+
+        // Sleep a little to make sure datashard subscribes to lock and handles the response
+        Cerr << "... sleeping for 1 second" << Endl;
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        // Unblock progress queue and resend blocked messages
+        Cerr << "... resending progress queue" << Endl;
+        blockProgressQueue.Remove();
+        for (auto& ev : blockedProgress) {
+            runtime.Send(ev.release(), 0, true);
+        }
+        blockedProgress.clear();
+
+        // Sleep a little to make sure everything settles
+        Cerr << "... sleeping for 1 second" << Endl;
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        // Now make a read query, we must not observe partial commit
+        Cerr << "... checking final table state" << Endl;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, Q_(R"(
+                SELECT key, value FROM `/Root/table-1`
+                UNION ALL
+                SELECT key, value FROM `/Root/table-2`
+                ORDER BY key;
+                )")),
+            "{ items { uint32_value: 1 } items { uint32_value: 10 } }, "
+            "{ items { uint32_value: 2 } items { uint32_value: 20 } }, "
+            "{ items { uint32_value: 3 } items { uint32_value: 30 } }, "
+            "{ items { uint32_value: 4 } items { uint32_value: 40 } }");
+    }
+
+    /**
+     * This observer forces newly created nodes to start on particular nodes
+     */
+    class TCreateTabletNodePinning {
+    public:
+        TCreateTabletNodePinning(TTestActorRuntime& runtime)
+            : Runtime(runtime)
+            , Node1(Runtime.GetNodeId(0))
+            , Observer(Runtime.AddObserver([this](auto& ev) { this->Process(ev); }))
+        {}
+
+        void SetNodeIndexes(std::initializer_list nodeIndexes) {
+            AllowedNodes.clear();
+            for (ui32 nodeIndex : nodeIndexes) {
+                AllowedNodes.push_back(Node1 + nodeIndex);
+            }
+        }
+
+        void Remove() {
+            Observer.Remove();
+        }
+
+    private:
+        void Process(TEvHive::TEvCreateTablet::TPtr& ev) {
+            auto* msg = ev->Get();
+            msg->Record.ClearAllowedNodeIDs();
+            for (ui32 nodeId : AllowedNodes) {
+                msg->Record.AddAllowedNodeIDs(nodeId);
+            }
+        }
+
+    private:
+        TTestActorRuntime& Runtime;
+        const ui32 Node1;
+        std::vector AllowedNodes;
+        TTestActorRuntime::TEventObserverHolder Observer;
+    };
+
+    /**
+     * This observer allows blocking timecast updates at different nodes
+     */
+    class TMediatorTimeCastBlocking {
+    public:
+        TMediatorTimeCastBlocking(TTestActorRuntime& runtime)
+            : Runtime(runtime)
+            , Node1(Runtime.GetNodeId(0))
+            , Observer(Runtime.AddObserver([this](auto& ev) { this->Process(ev); }))
+        {}
+
+        void SetMaxAllowedStep(ui32 nodeIndex, ui64 step) {
+            while (Nodes.size() <= nodeIndex) {
+                Nodes.emplace_back();
+            }
+            Nodes[nodeIndex].MaxAllowedStep = step;
+        }
+
+        void Unblock(ui32 nodeIndex) {
+            while (Nodes.size() <= nodeIndex) {
+                Nodes.emplace_back();
+            }
+            auto& state = Nodes[nodeIndex];
+            state.MaxAllowedStep = Max();
+            for (auto& kv : state.Buckets) {
+                if (kv.second.LastBlocked) {
+                    Runtime.Send(kv.second.LastBlocked.release(), nodeIndex, true);
+                }
+            }
+        }
+
+        ui64 WaitNextStep() {
+            ui64 step = LastStep;
+            WaitFor(Runtime, [&]{ return LastStep > step; }, "next timecast step", 10);
+            return LastStep;
+        }
+
+        void Remove() {
+            Observer.Remove();
+        }
+
+    private:
+        void Process(TEvMediatorTimecast::TEvUpdate::TPtr& ev) {
+            auto* msg = ev->Get();
+            ui32 nodeId = ev->GetRecipientRewrite().NodeId();
+            ui32 nodeIndex = nodeId - Node1;
+            auto bucket = msg->Record.GetBucket();
+            auto step = msg->Record.GetTimeBarrier();
+            Cerr << "... observed step " << step << " at node " << nodeId << " bucket " << bucket << Endl;
+            LastStep = Max(LastStep, step);
+            while (Nodes.size() <= nodeIndex) {
+                Nodes.emplace_back();
+            }
+            auto& state = Nodes[nodeIndex];
+            auto& bucketState = state.Buckets[bucket];
+            ui64 prevObserved = bucketState.LastObservedStep;
+            bucketState.LastObservedStep = step;
+            bucketState.LastBlocked.reset();
+            if (step > state.MaxAllowedStep) {
+                Cerr << "... blocked step " << step << " at node " << nodeId << " bucket " << bucket << Endl;
+                // Generate an blocked event we would resend when on unblock
+                auto* newMsg = new TEvMediatorTimecast::TEvUpdate;
+                newMsg->Record = msg->Record;
+                bucketState.LastBlocked.reset(new IEventHandle(
+                    ev->Recipient,
+                    ev->Sender,
+                    newMsg,
+                    ev->Flags,
+                    ev->Cookie));
+                bucketState.LastBlocked->Rewrite(ev->GetTypeRewrite(), ev->GetRecipientRewrite());
+                // Modify the original event to send the max allowed step when necessary
+                if (prevObserved < state.MaxAllowedStep) {
+                    Cerr << "... synthetic step " << state.MaxAllowedStep << " at node " << nodeId << " bucket " << bucket << Endl;
+                    msg->Record.SetTimeBarrier(state.MaxAllowedStep);
+                } else {
+                    ev.Reset();
+                }
+                return;
+            }
+        }
+
+    private:
+        struct TBucketState {
+            ui64 LastObservedStep = 0;
+            std::unique_ptr LastBlocked;
+        };
+
+        struct TNodeState {
+            ui64 MaxAllowedStep = Max();
+            std::map Buckets;
+        };
+
+    public:
+        ui64 LastStep = 0;
+
+    private:
+        TTestActorRuntime& Runtime;
+        const ui32 Node1;
+        std::vector Nodes;
+        TTestActorRuntime::TEventObserverHolder Observer;
+    };
+
+    /**
+     * Observer for blocking split at src tablets
+     */
+    class TSplitSrcBlocking {
+    public:
+        TSplitSrcBlocking(TTestActorRuntime& runtime)
+            : Runtime(runtime)
+            , Node1(Runtime.GetNodeId(0))
+            , Observer(Runtime.AddObserver([this](auto& ev) { this->Process(ev); }))
+        {}
+
+        void Unblock() {
+            Observer.Remove();
+            for (auto& ev : Blocked) {
+                ui32 nodeIndex = ev->GetRecipientRewrite().NodeId() - Node1;
+                Runtime.Send(ev.release(), nodeIndex, true);
+            }
+            Blocked.clear();
+        }
+
+    private:
+        void Process(TEvDataShard::TEvSplit::TPtr& ev) {
+            Cerr << "... blocking TEvSplit" << Endl;
+            Blocked.emplace_back(ev.Release());
+        }
+
+    private:
+        TTestActorRuntime& Runtime;
+        const ui32 Node1;
+        std::vector> Blocked;
+        TTestActorRuntime::TEventObserverHolder Observer;
+    };
+
+    Y_UNIT_TEST(RepeatableReadAfterSplitRace) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetNodeCount(2)
+            .SetUseRealThreads(false)
+            .SetDomainPlanResolution(100);
+
+        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.SetLogPriority(NKikimrServices::KQP_EXECUTER, NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::KQP_SESSION, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        TCreateTabletNodePinning createTabletNodePinning(runtime);
+
+        // Create table-1 at node 1
+        createTabletNodePinning.SetNodeIndexes({ 0 });
+        CreateShardedTable(server, sender, "/Root", "table-1", 1);
+        auto shards1 = GetTableShards(server, sender, "/Root/table-1");
+
+        // Create table-2 at node 2
+        createTabletNodePinning.SetNodeIndexes({ 1 });
+        CreateShardedTable(server, sender, "/Root", "table-2", 1);
+
+        // Insert initial values
+        ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 10);"));
+        ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-2` (key, value) VALUES (2, 20);"));
+
+        TSplitSrcBlocking splitSrcBlocking(runtime);
+        TMediatorTimeCastBlocking mediatorTimeCastBlocking(runtime);
+
+        // We need to make a snapshot read to force unprotected reads
+        // This will also ensure both nodes have an updated mediator time cast
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, Q_(R"(
+                SELECT key, value FROM `/Root/table-1`
+                UNION ALL
+                SELECT key, value FROM `/Root/table-2`
+                ORDER BY key;
+                )")),
+            "{ items { uint32_value: 1 } items { uint32_value: 10 } }, "
+            "{ items { uint32_value: 2 } items { uint32_value: 20 } }");
+
+        // One more upsert to table-2, this will bump mediator time at node 2 past the snapshot
+        ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-2` (key, value) VALUES (3, 30);"));
+
+        // We won't allow node 2 to go past that write version
+        mediatorTimeCastBlocking.SetMaxAllowedStep(1, mediatorTimeCastBlocking.LastStep);
+
+        // Start split of table-1 at key 10
+        auto splitSender = runtime.AllocateEdgeActor();
+        SetSplitMergePartCountLimit(server->GetRuntime(), -1);
+        Cerr << "... starting split of table-1" << Endl;
+        ui64 splitTxId = AsyncSplitTable(server, splitSender, "/Root/table-1", shards1.at(0), 10);
+
+        // We want to mediator time to advance, so the next snapshot is greater than the last write version
+        mediatorTimeCastBlocking.WaitNextStep();
+
+        // Start a snapshot read from table-1
+        // This will run at node 1 shard where mediator time is recent
+        Cerr << "... reading from table-1" << Endl;
+        TString sessionId, txId;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleBegin(runtime, sessionId, txId, Q_(R"(
+                SELECT key, value FROM `/Root/table-1`
+                ORDER BY key;
+                )")),
+            "{ items { uint32_value: 1 } items { uint32_value: 10 } }");
+
+        // Now unblock TEvSplit and wait until it finishes
+        splitSrcBlocking.Unblock();
+
+        // Wait until split finishes, so we can continue working with the new shards
+        Cerr << "... waiting for split to finish" << Endl;
+        WaitTxNotification(server, splitSender, splitTxId);
+
+        // Start an upsert into newly split table-1
+        TString upsertSessionId = CreateSessionRPC(runtime);
+        auto upsertFuture = SendRequest(runtime, MakeSimpleRequestRPC(Q_(R"(
+            UPSERT INTO `/Root/table-1` (key, value) VALUES (4, 40);
+            )"), upsertSessionId, "", /* commit */ true));
+
+        // We cannot wait for it to finish (bug may be fixed)
+        // So we sleep for several seconds instead
+        Cerr << "... sleeping for 2 seconds" << Endl;
+        runtime.SimulateSleep(TDuration::Seconds(2));
+
+        // Unblock mediator timecast at node 2
+        mediatorTimeCastBlocking.Unblock(1);
+
+        // Wait until upsert finishes
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(upsertFuture))),
+            "");
+
+        // Repeat read in a previous tx, this read must be repeatable
+        // In other words we must not observe the new 4/40 row
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleContinue(runtime, sessionId, txId, Q_(R"(
+                SELECT key, value FROM `/Root/table-1`
+                UNION ALL
+                SELECT key, value FROM `/Root/table-2`
+                ORDER BY key;
+                )")),
+            "{ items { uint32_value: 1 } items { uint32_value: 10 } }, "
+            "{ items { uint32_value: 2 } items { uint32_value: 20 } }, "
+            "{ items { uint32_value: 3 } items { uint32_value: 30 } }");
+    }
+
+    Y_UNIT_TEST(DelayedWriteReadableAfterSplit) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetNodeCount(2)
+            .SetUseRealThreads(false)
+            .SetDomainPlanResolution(100);
+
+        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.SetLogPriority(NKikimrServices::KQP_EXECUTER, NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::KQP_SESSION, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        TCreateTabletNodePinning createTabletNodePinning(runtime);
+
+        // Create table-1 at node 1
+        createTabletNodePinning.SetNodeIndexes({ 0 });
+        CreateShardedTable(server, sender, "/Root", "table-1", 1);
+        auto shards1 = GetTableShards(server, sender, "/Root/table-1");
+
+        // Create table-2 at node 2
+        createTabletNodePinning.SetNodeIndexes({ 1 });
+        CreateShardedTable(server, sender, "/Root", "table-2", 1);
+
+        // Insert initial values
+        ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 10);"));
+        ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-2` (key, value) VALUES (2, 20);"));
+
+        TSplitSrcBlocking splitSrcBlocking(runtime);
+        TMediatorTimeCastBlocking mediatorTimeCastBlocking(runtime);
+
+        // We need to make a snapshot read to force unprotected reads
+        // This will also ensure both nodes have an updated mediator time cast
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, Q_(R"(
+                SELECT key, value FROM `/Root/table-1`
+                UNION ALL
+                SELECT key, value FROM `/Root/table-2`
+                ORDER BY key;
+                )")),
+            "{ items { uint32_value: 1 } items { uint32_value: 10 } }, "
+            "{ items { uint32_value: 2 } items { uint32_value: 20 } }");
+
+        // One more upsert to table-2, this will bump mediator time past the snapshot
+        ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-2` (key, value) VALUES (3, 30);"));
+
+        // Wait for the next step, we will expect to read at that step
+        ui64 step = mediatorTimeCastBlocking.WaitNextStep();
+        Cerr << "... expecting next read at step " << step << Endl;
+
+        // We won't allow node 2 to go past that snapshot
+        mediatorTimeCastBlocking.SetMaxAllowedStep(1, step);
+
+        // Start a snapshot read from table-1
+        // This will run at node 1 shard where mediator time is recent
+        Cerr << "... reading from table-1" << Endl;
+        TString sessionId, txId;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleBegin(runtime, sessionId, txId, Q_(R"(
+                SELECT key, value FROM `/Root/table-1`
+                ORDER BY key;
+                )")),
+            "{ items { uint32_value: 1 } items { uint32_value: 10 } }");
+
+        // Start split of table-1 at key 10
+        auto splitSender = runtime.AllocateEdgeActor();
+        SetSplitMergePartCountLimit(server->GetRuntime(), -1);
+        Cerr << "... starting split of table-1" << Endl;
+        ui64 splitTxId = AsyncSplitTable(server, splitSender, "/Root/table-1", shards1.at(0), 10);
+
+        // Perform an immediate write, which will happen after the above snapshot
+        // We also wait for the result to make sure mediator time advances at node 1
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, Q_(R"(
+                UPSERT INTO `/Root/table-1` (key, value) VALUES (4, 40);
+            )")),
+            "");
+
+        // Unblock split at src
+        splitSrcBlocking.Unblock();
+
+        // Wait until split finishes, so we can continue working with the new shards
+        Cerr << "... waiting for split to finish" << Endl;
+        WaitTxNotification(server, splitSender, splitTxId);
+
+        // Start an immediate read from the new left shard of table-1
+        TString readSessionId = CreateSessionRPC(runtime);
+        Cerr << "... starting immediate read from table-1" << Endl;
+        auto readFuture = SendRequest(runtime, MakeSimpleRequestRPC(Q_(R"(
+            SELECT key, value FROM `/Root/table-1`
+            WHERE key <= 5
+            ORDER BY key;
+            )"), readSessionId, "", /* commit */ true));
+
+        // We cannot wait for it to finish (bug may be fixed)
+        // So we sleep for several seconds instead
+        Cerr << "... sleeping for 2 seconds" << Endl;
+        runtime.SimulateSleep(TDuration::Seconds(2));
+
+        // Unblock mediator timecast at node 2
+        mediatorTimeCastBlocking.Unblock(1);
+
+        // Wait until read finishes, we must observe previously inserted row
+        Cerr << "... waiting for table-1 read to finish" << Endl;
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(readFuture))),
+            "{ items { uint32_value: 1 } items { uint32_value: 10 } }, "
+            "{ items { uint32_value: 4 } items { uint32_value: 40 } }");
+
+        // Repeat read in a previous tx, this read must be repeatable
+        // In other words we must not observe the new 4/40 row
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleContinue(runtime, sessionId, txId, Q_(R"(
+                SELECT key, value FROM `/Root/table-1`
+                UNION ALL
+                SELECT key, value FROM `/Root/table-2`
+                ORDER BY key;
+                )")),
+            "{ items { uint32_value: 1 } items { uint32_value: 10 } }, "
+            "{ items { uint32_value: 2 } items { uint32_value: 20 } }, "
+            "{ items { uint32_value: 3 } items { uint32_value: 30 } }");
+    }
+
+    Y_UNIT_TEST(DelayedWriteReplyAfterSplit) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetNodeCount(2)
+            .SetUseRealThreads(false)
+            .SetDomainPlanResolution(100);
+
+        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.SetLogPriority(NKikimrServices::KQP_EXECUTER, NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::KQP_SESSION, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        TDisableDataShardLogBatching disableDataShardLogBatching;
+        TCreateTabletNodePinning createTabletNodePinning(runtime);
+
+        // Create table-1 at node 1
+        createTabletNodePinning.SetNodeIndexes({ 0 });
+        CreateShardedTable(server, sender, "/Root", "table-1", 1);
+        auto shards1 = GetTableShards(server, sender, "/Root/table-1");
+
+        // Create table-2 at node 2
+        createTabletNodePinning.SetNodeIndexes({ 1 });
+        CreateShardedTable(server, sender, "/Root", "table-2", 1);
+
+        // Insert initial values
+        ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 10);"));
+        ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-2` (key, value) VALUES (2, 20);"));
+
+        TSplitSrcBlocking splitSrcBlocking(runtime);
+        TMediatorTimeCastBlocking mediatorTimeCastBlocking(runtime);
+
+        // We need to make a snapshot read to force unprotected reads
+        // This will also ensure both nodes have an updated mediator time cast
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, Q_(R"(
+                SELECT key, value FROM `/Root/table-1`
+                UNION ALL
+                SELECT key, value FROM `/Root/table-2`
+                ORDER BY key;
+                )")),
+            "{ items { uint32_value: 1 } items { uint32_value: 10 } }, "
+            "{ items { uint32_value: 2 } items { uint32_value: 20 } }");
+
+        // One more upsert to table-2, this will bump mediator time past the snapshot
+        ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-2` (key, value) VALUES (3, 30);"));
+
+        // Wait for the next step, we will expect to read at that step
+        ui64 step = mediatorTimeCastBlocking.WaitNextStep();
+        Cerr << "... expecting next read at step " << step << Endl;
+
+        // We won't allow neither node 1 nor node 2 to go past that snapshot
+        mediatorTimeCastBlocking.SetMaxAllowedStep(0, step);
+        mediatorTimeCastBlocking.SetMaxAllowedStep(1, step);
+
+        // Start a snapshot read from table-1
+        // This will run at node 1 shard
+        Cerr << "... reading from table-1" << Endl;
+        TString sessionId, txId;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleBegin(runtime, sessionId, txId, Q_(R"(
+                SELECT key, value FROM `/Root/table-1`
+                ORDER BY key;
+                )")),
+            "{ items { uint32_value: 1 } items { uint32_value: 10 } }");
+
+        // Start split of table-1 at key 10
+        auto splitSender = runtime.AllocateEdgeActor();
+        SetSplitMergePartCountLimit(server->GetRuntime(), -1);
+        Cerr << "... starting split of table-1" << Endl;
+        ui64 splitTxId = AsyncSplitTable(server, splitSender, "/Root/table-1", shards1.at(0), 10);
+
+        // Start upserting a row into table-1, since mediator time is blocked
+        // this will not be able to reply until mediator time advances.
+        TString upsertSessionId = CreateSessionRPC(runtime);
+        Cerr << "... starting upsert into table-1" << Endl;
+        auto upsertFuture = SendRequest(runtime, MakeSimpleRequestRPC(Q_(R"(
+            UPSERT INTO `/Root/table-1` (key, value) VALUES (4, 40);
+            )"), upsertSessionId, "", /* commit */ true));
+
+        // Sleep a little, so the above upsert is fully executed at future step and reply is enqueued
+        runtime.SimulateSleep(TDuration::MicroSeconds(100));
+
+        // We expect mediator time to be at the last step
+        UNIT_ASSERT_VALUES_EQUAL(mediatorTimeCastBlocking.LastStep, step);
+
+        // Now unblock the split and wait until it finishes
+        splitSrcBlocking.Unblock();
+        Cerr << "... waiting for split to finish" << Endl;
+        WaitTxNotification(server, splitSender, splitTxId);
+
+        // We expect mediator time to still be at the last step
+        UNIT_ASSERT_VALUES_EQUAL(mediatorTimeCastBlocking.LastStep, step);
+
+        // The new shard should be ready to take requests, validate by an immediate read
+        // The new row must not be visible, since mediator time is still in the past,
+        // and the write could not have sent a successful reply yet.
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, Q_(R"(
+                SELECT key, value FROM `/Root/table-1`
+                WHERE key <= 5
+                ORDER BY key;
+                )")),
+            "{ items { uint32_value: 1 } items { uint32_value: 10 } }");
+
+        // Now that we confirmed the new shard is readable, allow mediator time to advance at node 1
+        mediatorTimeCastBlocking.Unblock(0);
+
+        // Sleep for a couple of seconds and check whether upsert has replied
+        runtime.SimulateSleep(TDuration::Seconds(2));
+
+        // When upsert replies, only errors are allowed, otherwise new reads
+        // at node 2 would keep reading stale values.
+        if (upsertFuture.HasValue() || upsertFuture.HasException()) {
+            Cerr << "... upsert finished before unblocking node 2" << Endl;
+            auto upsertResult = FormatResult(upsertFuture.ExtractValueSync());
+            if (upsertResult == "") {
+                // It was successful, double check that node 2 can see the result
+                // For obvious reasons it cannot (due to blocked mediator time)
+                UNIT_ASSERT_VALUES_EQUAL(
+                    KqpSimpleExec(runtime, Q_(R"(
+                        SELECT key, value FROM `/Root/table-1`
+                        WHERE key <= 5
+                        ORDER BY key;
+                        )")),
+                    "{ items { uint32_value: 1 } items { uint32_value: 10 } }, "
+                    "{ items { uint32_value: 4 } items { uint32_value: 40 } }, ");
+            } else {
+                // Otherwise we must get an UNDETERMINED error
+                // The upsert hasn't happened yet, but will happen later
+                UNIT_ASSERT_VALUES_EQUAL(
+                    upsertResult,
+                    "ERROR: UNDETERMINED");
+            }
+        } else {
+            // Try to be future proof, in case we implement waiting with dst shards
+            Cerr << "... upsert did not finish before unblocking node 2" << Endl;
+        }
+    }
+
+    Y_UNIT_TEST(PostMergeNotCompactedTooEarly) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false)
+            .SetDomainPlanResolution(100);
+
+        Tests::TServer::TPtr server = new TServer(serverSettings);
+        auto &runtime = *server->GetRuntime();
+        auto sender = runtime.AllocateEdgeActor();
+
+        runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        TDisableDataShardLogBatching disableDataShardLogBatching;
+
+        KqpSchemeExec(runtime, R"(
+            CREATE TABLE `/Root/table` (key int, value bytes, PRIMARY KEY (key))
+            WITH (AUTO_PARTITIONING_MIN_PARTITIONS_COUNT = 1,
+                  PARTITION_AT_KEYS = (5));
+        )");
+
+        const auto shards = GetTableShards(server, sender, "/Root/table");
+        UNIT_ASSERT_VALUES_EQUAL(shards.size(), 2u);
+        const auto tableId = ResolveTableId(server, sender, "/Root/table");
+
+        for (int i = 0; i < 20; ++i) {
+            Cerr << "... upserting key " << i << Endl;
+            auto query = Sprintf(R"(
+                UPSERT INTO `/Root/table` (key, value) VALUES (%d, '%s');
+            )", i, TString(128 * 1024, 'x').c_str());
+            ExecSQL(server, sender, query);
+            if (i >= 5) {
+                Cerr << "... compacting shard " << shards.at(1) << Endl;
+                CompactTable(runtime, shards.at(1), tableId, false);
+            } else if (i == 4) {
+                Cerr << "... compacting shard " << shards.at(0) << Endl;
+                CompactTable(runtime, shards.at(0), tableId, false);
+            }
+        }
+
+        // Read (and snapshot) current data, so it doesn't go away on compaction
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, "SELECT COUNT(*) FROM `/Root/table`;"),
+            "{ items { uint64_value: 20 } }");
+
+        // Delete all the data in shard 0, this is small and will stay in memtable
+        // But when borrowed dst compaction will have pressure to compact it all
+        ExecSQL(server, sender, "DELETE FROM `/Root/table` WHERE key < 5");
+
+        std::vector snapshots;
+        auto captureSnapshots = runtime.AddObserver(
+            [&](TEvDataShard::TEvSplitTransferSnapshot::TPtr& ev) {
+                auto* msg = ev->Get();
+                Cerr << "... captured snapshot from " << msg->Record.GetSrcTabletId() << Endl;
+                snapshots.emplace_back(ev.Release());
+            });
+
+        Cerr << "... merging table" << Endl;
+        SetSplitMergePartCountLimit(server->GetRuntime(), -1);
+        ui64 txId = AsyncMergeTable(server, sender, "/Root/table", shards);
+        Cerr << "... started merge " << txId << Endl;
+        WaitFor(runtime, [&]{ return snapshots.size() >= 2; }, "both src tablet snapshots");
+
+        std::vector gets;
+        auto captureGets = runtime.AddObserver(
+            [&](TEvBlobStorage::TEvGet::TPtr& ev) {
+                auto* msg = ev->Get();
+                if (msg->Queries[0].Id.TabletID() == shards.at(1)) {
+                    Cerr << "... blocking blob get of " << msg->Queries[0].Id << Endl;
+                    gets.emplace_back(ev.Release());
+                }
+            });
+
+        // Release snapshot for shard 0 then shard 1
+        captureSnapshots.Remove();
+        Cerr << "... unlocking snapshots from tablet " << shards.at(0) << Endl;
+        for (auto& ev : snapshots) {
+            if (ev && ev->Get()->Record.GetSrcTabletId() == shards.at(0)) {
+                runtime.Send(ev.Release(), 0, true);
+            }
+        }
+        Cerr << "... unblocking snapshots from tablet " << shards.at(1) << Endl;
+        for (auto& ev : snapshots) {
+            if (ev && ev->Get()->Record.GetSrcTabletId() == shards.at(1)) {
+                runtime.Send(ev.Release(), 0, true);
+            }
+        }
+
+        // Let it commit above snapshots and incorrectly compact after the first one is loaded and merged
+        runtime.SimulateSleep(TDuration::Seconds(1));
+        UNIT_ASSERT(gets.size() > 0);
+
+        Cerr << "... unblocking blob gets" << Endl;
+        captureGets.Remove();
+        for (auto& ev : gets) {
+            runtime.Send(ev.Release(), 0, true);
+        }
+
+        // Let it finish loading the second snapshot
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        // Wait for merge to complete and start a borrowed compaction
+        // When bug is present it will cause newly compacted to part to have epoch larger than previously compacted
+        WaitTxNotification(server, sender, txId);
+        const auto merged = GetTableShards(server, sender, "/Root/table");
+        UNIT_ASSERT_VALUES_EQUAL(merged.size(), 1u);
+        Cerr << "... compacting borrowed parts in shard " << merged.at(0) << Endl;
+        CompactBorrowed(runtime, merged.at(0), tableId);
+
+        // Validate we have an expected number of rows
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, "SELECT COUNT(*) FROM `/Root/table`;"),
+            "{ items { uint64_value: 15 } }");
+    }
+
+    Y_UNIT_TEST(PipelineAndMediatorRestoreRace) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false)
+            .SetDomainPlanResolution(100)
+            .SetEnableDataShardVolatileTransactions(false);
+
+        Tests::TServer::TPtr server = new TServer(serverSettings);
+        auto &runtime = *server->GetRuntime();
+        auto sender = runtime.AllocateEdgeActor();
+
+        runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        TDisableDataShardLogBatching disableDataShardLogBatching;
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSchemeExec(runtime, R"(
+                CREATE TABLE `/Root/table1` (key int, value int, PRIMARY KEY (key));
+                CREATE TABLE `/Root/table2` (key int, value int, PRIMARY KEY (key));
+            )"),
+            "SUCCESS");
+
+        const auto shards1 = GetTableShards(server, sender, "/Root/table1");
+        UNIT_ASSERT_VALUES_EQUAL(shards1.size(), 1u);
+
+        // Upsert initial data
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, R"(
+                UPSERT INTO `/Root/table1` (key, value) VALUES (1, 10);
+                UPSERT INTO `/Root/table2` (key, value) VALUES (2, 20);
+            )"),
+            "");
+
+        // Make sure shards have unprotected reads enabled
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, R"(
+                SELECT key, value FROM `/Root/table1`
+                UNION ALL
+                SELECT key, value FROM `/Root/table2`
+                ORDER BY key;
+            )"),
+            "{ items { int32_value: 1 } items { int32_value: 10 } }, "
+            "{ items { int32_value: 2 } items { int32_value: 20 } }");
+
+        std::vector readsets;
+        auto blockReadSets = runtime.AddObserver(
+            [&](TEvTxProcessing::TEvReadSet::TPtr& ev) {
+                auto* msg = ev->Get();
+                Cerr << "... blocking readset for " << msg->Record.GetTabletDest() << Endl;
+                readsets.push_back(std::move(ev));
+            });
+
+        size_t planSteps = 0;
+        auto observePlanSteps = runtime.AddObserver(
+            [&](TEvTxProcessing::TEvPlanStep::TPtr& ev) {
+                auto* msg = ev->Get();
+                Cerr << "... observed plan step " << msg->Record.GetStep() << " for " << msg->Record.GetTabletID() << Endl;
+                ++planSteps;
+            });
+
+        // Create a "staircase" of transactions at different steps
+
+        // Upsert1 will have outgoing readsets from both shards
+        Cerr << "... sending upsert1" << Endl;
+        auto upsert1 = KqpSimpleSend(runtime, R"(
+            SELECT key, value FROM `/Root/table1` WHERE key = 1;
+            SELECT key, value FROM `/Root/table2` WHERE key = 2;
+            UPSERT INTO `/Root/table1` (key, value) VALUES (3, 30), (5, 50);
+            UPSERT INTO `/Root/table2` (key, value) VALUES (4, 40);
+        )");
+        WaitFor(runtime, [&]{ return planSteps >= 2; }, "upsert1 plan step");
+        UNIT_ASSERT_VALUES_EQUAL(planSteps, 2u);
+        WaitFor(runtime, [&]{ return readsets.size() >= 2; }, "upsert1 readsets");
+        UNIT_ASSERT_VALUES_EQUAL(readsets.size(), 2u);
+
+        // Upsert2 will be blocked by dependencies (key 5) at table1, but not table2
+        Cerr << "... sending upsert2" << Endl;
+        auto upsert2 = KqpSimpleSend(runtime, R"(
+            SELECT key, value FROM `/Root/table2` WHERE key = 2;
+            UPSERT INTO `/Root/table1` (key, value) VALUES (5, 55), (7, 70);
+        )");
+        WaitFor(runtime, [&]{ return planSteps >= 4; }, "upsert2 plan step");
+        UNIT_ASSERT_VALUES_EQUAL(planSteps, 4u);
+        WaitFor(runtime, [&]{ return readsets.size() >= 3; }, "upsert2 readset from table2");
+        UNIT_ASSERT_VALUES_EQUAL(readsets.size(), 3u);
+
+        // Upsert3 will be blocked by dependencies (key 7) at table1, but not table2
+        Cerr << "... sending upsert3" << Endl;
+        auto upsert3 = KqpSimpleSend(runtime, R"(
+            SELECT key, value FROM `/Root/table2` WHERE key = 2;
+            UPSERT INTO `/Root/table1` (key, value) VALUES (7, 77), (9, 90);
+        )");
+        WaitFor(runtime, [&]{ return planSteps >= 6; }, "upsert3 plan step");
+        UNIT_ASSERT_VALUES_EQUAL(planSteps, 6u);
+        WaitFor(runtime, [&]{ return readsets.size() >= 4; }, "upsert3 readset from table2");
+        UNIT_ASSERT_VALUES_EQUAL(readsets.size(), 4u);
+
+        // Sleep a little to make sure everything is persisted at table1 and mediator time advanced
+        runtime.SimulateSleep(TDuration::MilliSeconds(200));
+
+        // Now restart table1 shard while blocking mediator timecast registration
+        std::vector registrations;
+        auto blockRegistrations = runtime.AddObserver(
+            [&](TEvMediatorTimecast::TEvRegisterTabletResult::TPtr& ev) {
+                Cerr << "... blocking timecast registration result for " << ev->GetRecipientRewrite() << Endl;
+                registrations.push_back(std::move(ev));
+            });
+
+        // ... waiting for the new tablet actor booting
+        TActorId shardActor;
+        auto waitBoot = runtime.AddObserver(
+            [&](TEvTablet::TEvBoot::TPtr& ev) {
+                auto* msg = ev->Get();
+                if (msg->TabletID == shards1.at(0)) {
+                    shardActor = ev->GetRecipientRewrite();
+                    Cerr << "... booting " << msg->TabletID << " with actor " << shardActor << Endl;
+                }
+            });
+
+        // ... and blocking progress transactions
+        size_t allowProgress = 0;
+        std::vector> blockedProgress;
+        auto blockProgress = runtime.AddObserver([&](TAutoPtr& ev) {
+            if (shardActor &&
+                ev->GetRecipientRewrite() == shardActor &&
+                ev->GetTypeRewrite() == EventSpaceBegin(TKikimrEvents::ES_PRIVATE) + 0 /* EvProgressTransaction */)
+            {
+                if (allowProgress > 0) {
+                    Cerr << "... allowing EvProgressTransaction for " << ev->GetRecipientRewrite() << Endl;
+                    --allowProgress;
+                } else {
+                    Cerr << "... blocking EvProgressTransaction for " << ev->GetRecipientRewrite() << Endl;
+                    blockedProgress.push_back(std::move(ev));
+                }
+            }
+        });
+
+        Cerr << "... rebooting " << shards1.at(0) << Endl;
+        GracefulRestartTablet(runtime, shards1.at(0), sender);
+
+        WaitFor(runtime, [&]{ return registrations.size() >= 1; }, "timecast registration");
+        UNIT_ASSERT_VALUES_EQUAL(registrations.size(), 1u);
+
+        WaitFor(runtime, [&]{ return readsets.size() >= 8; }, "readsets resent");
+        UNIT_ASSERT_VALUES_EQUAL(readsets.size(), 8u);
+
+        // We need to unblock two transactions
+        // The first is already marked incomplete
+        // The second will be added to the pipeline, but blocked by dependencies
+        for (int i = 0; i < 2; ++i) {
+            WaitFor(runtime, [&]{ return blockedProgress.size() >= 1; }, "blocked progress");
+            UNIT_ASSERT_VALUES_EQUAL(blockedProgress.size(), 1);
+
+            Cerr << "... unblocking a single progress tx" << Endl;
+            allowProgress += blockedProgress.size();
+            for (auto& ev : blockedProgress) {
+                runtime.Send(ev.Release(), 0, true);
+            }
+            blockedProgress.clear();
+        }
+
+        WaitFor(runtime, [&]{ return blockedProgress.size() >= 1; }, "blocked progress");
+        UNIT_ASSERT_VALUES_EQUAL(blockedProgress.size(), 1);
+
+        runtime.SimulateSleep(TDuration::MilliSeconds(1));
+
+        Cerr << "... unblocking timecast registration" << Endl;
+        blockRegistrations.Remove();
+        for (auto& ev : registrations) {
+            runtime.Send(ev.Release(), 0, true);
+        }
+
+        runtime.SimulateSleep(TDuration::MilliSeconds(200));
+
+        // Unblock the final transaction
+        // It's going to be before the restored worst-case unprotected read edge
+        // However because it's no the complete/incomplete tail it will not update lists properly
+        Cerr << "... unblocking final progress tx" << Endl;
+        blockProgress.Remove();
+        for (auto& ev : blockedProgress) {
+            runtime.Send(ev.Release(), 0, true);
+        }
+        blockedProgress.clear();
+
+        runtime.SimulateSleep(TDuration::MilliSeconds(1));
+
+        // Perform snapshot read that will try to mark all pending transactions as logically complete/incomplete
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, R"(
+                SELECT key, value FROM `/Root/table1` WHERE key = 1
+                UNION ALL
+                SELECT key, value FROM `/Root/table2` WHERE key = 2
+                ORDER BY key;
+            )"),
+            "{ items { int32_value: 1 } items { int32_value: 10 } }, "
+            "{ items { int32_value: 2 } items { int32_value: 20 } }");
+
+        Cerr << "... unblocking readsets" << Endl;
+        blockReadSets.Remove();
+        for (auto& ev : readsets) {
+            runtime.Send(ev.Release(), 0, true);
+        }
+        readsets.clear();
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(upsert1))),
+            "{ items { int32_value: 1 } items { int32_value: 10 } }\n"
+            "{ items { int32_value: 2 } items { int32_value: 20 } }");
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(upsert2))),
+            "{ items { int32_value: 2 } items { int32_value: 20 } }");
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(upsert3))),
+            "{ items { int32_value: 2 } items { int32_value: 20 } }");
+    }
+
+    Y_UNIT_TEST(UncommittedChangesRenameTable) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false)
+            .SetDomainPlanResolution(100)
+            .SetEnableDataShardVolatileTransactions(true);
+
+        Tests::TServer::TPtr server = new TServer(serverSettings);
+        auto &runtime = *server->GetRuntime();
+        auto sender = runtime.AllocateEdgeActor();
+
+        runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        TDisableDataShardLogBatching disableDataShardLogBatching;
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSchemeExec(runtime, R"(
+                CREATE TABLE `/Root/table1` (key int, value int, PRIMARY KEY (key));
+            )"),
+            "SUCCESS");
+
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table1` (key, value) VALUES (2, 22);");
+
+        TString sessionId = CreateSessionRPC(runtime);
+        TString txId;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleBegin(runtime, sessionId, txId, R"(
+                UPSERT INTO `/Root/table1` (key, value) VALUES (1, 11), (3, 33);
+                SELECT key, value FROM `/Root/table1` ORDER BY key;
+            )"),
+            "{ items { int32_value: 1 } items { int32_value: 11 } }, "
+            "{ items { int32_value: 2 } items { int32_value: 22 } }, "
+            "{ items { int32_value: 3 } items { int32_value: 33 } }");
+
+        auto shards = GetTableShards(server, sender, "/Root/table1");
+        auto tableId1 = ResolveTableId(server, sender, "/Root/table1");
+
+        // Check shard has open transactions
+        {
+            runtime.SendToPipe(shards.at(0), sender, new TEvDataShard::TEvGetOpenTxs(tableId1.PathId));
+            auto ev = runtime.GrabEdgeEventRethrow(sender);
+            UNIT_ASSERT_C(!ev->Get()->OpenTxs.empty(), "at shard " << shards.at(0));
+        }
+
+        WaitTxNotification(server, sender, AsyncMoveTable(server, "/Root/table1", "/Root/table1moved"));
+        auto tableId2 = ResolveTableId(server, sender, "/Root/table1moved");
+
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        // Check shard doesn't have open transactions
+        {
+            runtime.SendToPipe(shards.at(0), sender, new TEvDataShard::TEvGetOpenTxs(tableId2.PathId));
+            auto ev = runtime.GrabEdgeEventRethrow(sender);
+            UNIT_ASSERT_C(ev->Get()->OpenTxs.empty(), "at shard " << shards.at(0));
+        }
+
+        RebootTablet(runtime, shards.at(0), sender);
+
+        // The original table was removed
+        // We must not be able to commit the transaction
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleCommit(runtime, sessionId, txId, "SELECT 1"),
+            "ERROR: ABORTED");
+
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        // Check shard doesn't have open transactions
+        {
+            runtime.SendToPipe(shards.at(0), sender, new TEvDataShard::TEvGetOpenTxs(tableId2.PathId));
+            auto ev = runtime.GrabEdgeEventRethrow(sender);
+            UNIT_ASSERT_C(ev->Get()->OpenTxs.empty(), "at shard " << shards.at(0));
+        }
+    }
+
 }
 
 } // namespace NKikimr
diff --git a/ydb/core/tx/datashard/datashard_ut_stats.cpp b/ydb/core/tx/datashard/datashard_ut_stats.cpp
index f8907f5ccbde..0e1aae65c3f6 100644
--- a/ydb/core/tx/datashard/datashard_ut_stats.cpp
+++ b/ydb/core/tx/datashard/datashard_ut_stats.cpp
@@ -1,5 +1,4 @@
 #include 
-#include "datashard_ut_common_kqp.h"
 #include "ydb/core/tablet_flat/shared_sausagecache.h"
 
 namespace NKikimr {
@@ -10,41 +9,6 @@ using namespace Tests;
 
 Y_UNIT_TEST_SUITE(DataShardStats) {
 
-    NKikimrTxDataShard::TEvPeriodicTableStats WaitTableStats(TTestActorRuntime& runtime, size_t minPartCount = 0, size_t minRows = 0) {
-        NKikimrTxDataShard::TEvPeriodicTableStats stats;
-        bool captured = false;
-
-        auto observerFunc = [&](TAutoPtr& ev) {
-            switch (ev->GetTypeRewrite()) {
-                case TEvDataShard::TEvPeriodicTableStats::EventType: {
-                    stats = ev->Get()->Record;
-                    if (stats.GetTableStats().GetPartCount() >= minPartCount && stats.GetTableStats().GetRowCount() >= minRows) {
-                        captured = true;
-                    }
-                    break;
-                }
-                default: {
-                    break;
-                }
-            }
-            return TTestActorRuntime::EEventAction::PROCESS;
-        };
-        auto prevObserverFunc = runtime.SetObserverFunc(observerFunc);
-
-        for (int i = 0; i < 5 && !captured; ++i) {
-            TDispatchOptions options;
-            options.CustomFinalCondition = [&]() {
-                return captured;
-            };
-            runtime.DispatchEvents(options, TDuration::Seconds(5));
-        }
-
-        runtime.SetObserverFunc(prevObserverFunc);
-        UNIT_ASSERT(captured);
-
-        return stats;
-    }
-
     NKikimrTableStats::TTableStats GetTableStats(TTestActorRuntime& runtime, ui64 tabletId, ui64 tableId) {
         auto sender = runtime.AllocateEdgeActor();
         auto request = MakeHolder(tableId);
@@ -86,7 +50,7 @@ Y_UNIT_TEST_SUITE(DataShardStats) {
 
         {
             Cerr << "... waiting for stats after upsert" << Endl;
-            auto stats = WaitTableStats(runtime);
+            auto stats = WaitTableStats(runtime, shard1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetDatashardId(), shard1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetRowCount(), 3u);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetPartCount(), 0u);
@@ -99,7 +63,7 @@ Y_UNIT_TEST_SUITE(DataShardStats) {
 
         {
             Cerr << "... waiting for stats after compaction" << Endl;
-            auto stats = WaitTableStats(runtime, 1);
+            auto stats = WaitTableStats(runtime, shard1, 1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetDatashardId(), shard1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetRowCount(), 3u);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetPartCount(), 1u);
@@ -116,7 +80,7 @@ Y_UNIT_TEST_SUITE(DataShardStats) {
 
         {
             Cerr << "... waiting for stats after write" << Endl;
-            auto stats = WaitTableStats(runtime);
+            auto stats = WaitTableStats(runtime, shard1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetDatashardId(), shard1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetRowCount(), 4u);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetImmediateTxCompleted(), 2u);
@@ -151,7 +115,7 @@ Y_UNIT_TEST_SUITE(DataShardStats) {
 
         {
             Cerr << "... waiting for stats after upsert" << Endl;
-            auto stats = WaitTableStats(runtime);
+            auto stats = WaitTableStats(runtime, shard1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetDatashardId(), shard1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetRowCount(), 3u);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetPartCount(), 0u);
@@ -163,7 +127,7 @@ Y_UNIT_TEST_SUITE(DataShardStats) {
 
         {
             Cerr << "... waiting for stats after compaction" << Endl;
-            auto stats = WaitTableStats(runtime, 1);
+            auto stats = WaitTableStats(runtime, shard1, 1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetDatashardId(), shard1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetRowCount(), 3u);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetPartCount(), 1u);
@@ -214,7 +178,7 @@ Y_UNIT_TEST_SUITE(DataShardStats) {
 
         {
             Cerr << "... waiting for stats after upsert" << Endl;
-            auto stats = WaitTableStats(runtime);
+            auto stats = WaitTableStats(runtime, shard1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetDatashardId(), shard1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetRowCount(), count);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetPartCount(), 0u);
@@ -226,7 +190,7 @@ Y_UNIT_TEST_SUITE(DataShardStats) {
 
         {
             Cerr << "... waiting for stats after compaction" << Endl;
-            auto stats = WaitTableStats(runtime, 1);
+            auto stats = WaitTableStats(runtime, shard1, 1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetDatashardId(), shard1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetRowCount(), count);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetPartCount(), 1u);
@@ -296,7 +260,7 @@ Y_UNIT_TEST_SUITE(DataShardStats) {
 
         {
             Cerr << "... waiting for stats after upsert" << Endl;
-            auto stats = WaitTableStats(runtime);
+            auto stats = WaitTableStats(runtime, shard1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetDatashardId(), shard1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetRowCount(), 5u);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetPartCount(), 0u);
@@ -308,7 +272,7 @@ Y_UNIT_TEST_SUITE(DataShardStats) {
 
         {
             Cerr << "... waiting for stats after compaction" << Endl;
-            auto stats = WaitTableStats(runtime, 1);
+            auto stats = WaitTableStats(runtime, shard1, 1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetDatashardId(), shard1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetRowCount(), 5u);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetPartCount(), 1u);
@@ -366,7 +330,7 @@ Y_UNIT_TEST_SUITE(DataShardStats) {
             CompactTable(runtime, shard1, tableId1, false);
 
             Cerr << "... waiting for stats after compaction" << Endl;
-            auto stats = WaitTableStats(runtime, 1, (batch + 1) * batchItems);
+            auto stats = WaitTableStats(runtime, shard1, 1, (batch + 1) * batchItems);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetDatashardId(), shard1);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetRowCount(), (batch + 1) * batchItems);
             UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetPartCount(), 1);
@@ -378,6 +342,59 @@ Y_UNIT_TEST_SUITE(DataShardStats) {
         UNIT_ASSERT_LE(counters->ActiveBytes->Val(), 800*1024); // one index
     }
 
+    Y_UNIT_TEST(NoData) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false);
+
+        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::TABLET_SAUSAGECACHE, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        auto [shards, tableId1] = CreateShardedTable(server, sender, "/Root", "table-1", 1);
+        const auto shard1 = GetTableShards(server, sender, "/Root/table-1").at(0);
+
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 1), (2, 2), (3, 3)");
+        
+        bool captured = false;
+        auto observer = runtime.AddObserver([&](NSharedCache::TEvResult::TPtr& event) {
+            IActor *actor = runtime.FindActor(event->Recipient);
+            
+            Cerr << "Got SchemeShard NSharedCache::TEvResult from " << event->Sender << " to " << event->Recipient << "(" << actor->GetActivityType() << ")"<< Endl;
+            
+            if (actor && actor->GetActivityType() == 288) {
+                auto& message = *event->Get();
+                event.Reset(static_cast *>(
+                    new IEventHandle(event->Recipient, event->Sender, 
+                        new NSharedCache::TEvResult(message.Origin, message.Cookie, NKikimrProto::NODATA))));
+                captured = true;
+            }
+        });
+
+        CompactTable(runtime, shard1, tableId1, false);
+
+        for (int i = 0; i < 5 && !captured; ++i) {
+            TDispatchOptions options;
+            options.CustomFinalCondition = [&]() { return captured; };
+            runtime.DispatchEvents(options, TDuration::Seconds(5));
+        }
+        observer.Remove();
+
+        {
+            Cerr << "Waiting stats.." << Endl;
+            auto stats = WaitTableStats(runtime, shard1, 1);
+            UNIT_ASSERT_VALUES_EQUAL(stats.GetDatashardId(), shard1);
+            UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetRowCount(), 3);
+            UNIT_ASSERT_VALUES_EQUAL(stats.GetTableStats().GetPartCount(), 1);
+        }
+    }
+
 } // Y_UNIT_TEST_SUITE(DataShardStats)
 
 } // namespace NKikimr
diff --git a/ydb/core/tx/datashard/datashard_ut_trace.cpp b/ydb/core/tx/datashard/datashard_ut_trace.cpp
index 16719754f7a4..3eb2127496da 100644
--- a/ydb/core/tx/datashard/datashard_ut_trace.cpp
+++ b/ydb/core/tx/datashard/datashard_ut_trace.cpp
@@ -31,79 +31,8 @@ Y_UNIT_TEST_SUITE(TDataShardTrace) {
         auto &runtime = *server->GetRuntime();
         TAutoPtr handle;
 
-        THolder request;
-        if (traceId) {
-            struct RequestCtx : NGRpcService::IRequestCtxMtSafe {
-                RequestCtx(NWilson::TTraceId &&traceId) : TraceId(std::move(traceId)) {}
-
-                NWilson::TTraceId GetWilsonTraceId() const override {
-                    return TraceId.Clone();
-                }
-
-                TMaybe GetTraceId() const override {
-                    return Nothing();
-                }
-
-                const TMaybe GetDatabaseName() const override {
-                    return "";
-                }
-
-                const TIntrusiveConstPtr& GetInternalToken() const override {
-                    return Ptr;
-                }
-
-                const TString& GetSerializedToken() const override {
-                    return Token;
-                }
-
-                bool IsClientLost() const override {
-                    return false;
-                };
-
-                virtual const google::protobuf::Message* GetRequest() const override {
-                    return nullptr;
-                };
-
-                const TMaybe GetRequestType() const override {
-                    return "_document_api_request";
-                };
-
-                void SetFinishAction(std::function&& cb) override {
-                    Y_UNUSED(cb);
-                };
-
-                google::protobuf::Arena* GetArena() override {
-                    return nullptr;
-                };
-
-                TIntrusiveConstPtr Ptr;
-                TString Token;
-                NWilson::TTraceId TraceId;
-            };
-            
-            auto *txControl = google::protobuf::Arena::CreateMessage(&arena);
-            txControl->mutable_begin_tx()->mutable_serializable_read_write();
-            txControl->set_commit_tx(true);
-
-            auto ptr = std::make_shared(std::move(traceId));
-            request = MakeHolder(
-                NKikimrKqp::QUERY_ACTION_EXECUTE,
-                NKikimrKqp::QUERY_TYPE_SQL_DML,
-                TActorId(),
-                ptr,
-                TString(), //sessionId
-                TString(sql),
-                TString(), //queryId
-                txControl, //tx_control
-                nullptr, //ydbParameters
-                Ydb::Table::QueryStatsCollection::STATS_COLLECTION_UNSPECIFIED, //collectStats
-                nullptr, // query_cache_policy
-                nullptr //operationParams
-            );
-        } else {
-            request = MakeSQLRequest(sql, true);
-        }
-        runtime.Send(new IEventHandle(NKqp::MakeKqpProxyID(runtime.GetNodeId()), sender, request.Release(), 0, 0, nullptr));
+        THolder request = MakeSQLRequest(sql, true);
+        runtime.Send(new IEventHandle(NKqp::MakeKqpProxyID(runtime.GetNodeId()), sender, request.Release(), 0, 0, nullptr, std::move(traceId)));
         auto ev = runtime.GrabEdgeEventRethrow(sender);
         UNIT_ASSERT_VALUES_EQUAL(ev->Get()->Record.GetRef().GetYdbStatus(), code);
     }
@@ -292,27 +221,24 @@ Y_UNIT_TEST_SUITE(TDataShardTrace) {
         TFakeWilsonUploader::Trace &trace = uploader->Traces.begin()->second;
 
         std::string canon;
-        if (server->GetSettings().AppConfig->GetTableServiceConfig().GetEnableKqpDataQueryStreamLookup()) {
-            auto lookupActorSpan = trace.Root.BFSFindOne("LookupActor");
-            UNIT_ASSERT(lookupActorSpan);
+        if (server->GetSettings().AppConfig->GetTableServiceConfig().GetEnableKqpDataQueryStreamLookup() || server->GetSettings().AppConfig->GetTableServiceConfig().GetPredicateExtract20()) {
+            auto readActorSpan = trace.Root.BFSFindOne("ReadActor");
+            UNIT_ASSERT(readActorSpan);
 
-            auto dsReads = lookupActorSpan->get().FindAll("Datashard.Read"); // Lookup actor sends EvRead to each shard.
+            auto dsReads = readActorSpan->get().FindAll("Datashard.Read"); // Read actor sends EvRead to each shard.
             UNIT_ASSERT_EQUAL(dsReads.size(), 2);
 
-            canon = "(Session.query.QUERY_ACTION_EXECUTE -> [(CompileService -> [(CompileActor)]) "
-                ", (DataExecuter -> [(WaitForTableResolve) , (WaitForSnapshot) , (ComputeActor) "
-                ", (ComputeActor -> [(LookupActor -> [(WaitForShardsResolve) , (Datashard.Read "
-                "-> [(Tablet.Transaction -> [(Tablet.Transaction.Execute -> [(Datashard.Unit) "
-                ", (Datashard.Unit) , (Datashard.Unit)]) , (Tablet.Transaction.Wait) , (Tablet.Transaction.Enqueued) "
-                ", (Tablet.Transaction.Execute -> [(Datashard.Unit)]) , (Tablet.Transaction.Wait) , (Tablet.Transaction.Enqueued) "
-                ", (Tablet.Transaction.Execute -> [(Datashard.Unit) , (Datashard.Unit)]) , (Tablet.WriteLog "
-                "-> [(Tablet.WriteLog.LogEntry)])])]) , (Datashard.Read "
-                "-> [(Tablet.Transaction -> [(Tablet.Transaction.Execute -> [(Datashard.Unit) , (Datashard.Unit) "
-                ", (Datashard.Unit)]) , (Tablet.Transaction.Wait) , (Tablet.Transaction.Enqueued) "
-                ", (Tablet.Transaction.Execute -> [(Datashard.Unit)]) , (Tablet.Transaction.Wait) "
-                ", (Tablet.Transaction.Enqueued) , (Tablet.Transaction.Execute -> [(Datashard.Unit) "
-                ", (Datashard.Unit)]) , (Tablet.WriteLog -> [(Tablet.WriteLog.LogEntry)])])"
-                "])])]) , (ComputeActor) , (RunTasks)])])";
+            canon = "(Session.query.QUERY_ACTION_EXECUTE -> [(CompileService -> [(CompileActor)]) , (LiteralExecuter) "
+                ", (DataExecuter -> [(WaitForTableResolve) , (WaitForShardsResolve) , (WaitForSnapshot) , (ComputeActor) "
+                ", (RunTasks) , (KqpNode.SendTasks) , (ComputeActor -> [(ReadActor -> [(WaitForShardsResolve) , (Datashard.Read "
+                "-> [(Tablet.Transaction -> [(Tablet.Transaction.Execute -> [(Datashard.Unit) , (Datashard.Unit) , (Datashard.Unit)]) "
+                ", (Tablet.Transaction.Wait) , (Tablet.Transaction.Enqueued) , (Tablet.Transaction.Execute -> [(Datashard.Unit)]) "
+                ", (Tablet.Transaction.Wait) , (Tablet.Transaction.Enqueued) , (Tablet.Transaction.Execute -> [(Datashard.Unit) "
+                ", (Datashard.Unit)]) , (Tablet.WriteLog -> [(Tablet.WriteLog.LogEntry)])])]) , (Datashard.Read -> [(Tablet.Transaction "
+                "-> [(Tablet.Transaction.Execute -> [(Datashard.Unit) , (Datashard.Unit) , (Datashard.Unit)]) , (Tablet.Transaction.Wait) "
+                ", (Tablet.Transaction.Enqueued) , (Tablet.Transaction.Execute -> [(Datashard.Unit)]) , (Tablet.Transaction.Wait) "
+                ", (Tablet.Transaction.Enqueued) , (Tablet.Transaction.Execute -> [(Datashard.Unit) , (Datashard.Unit)]) , (Tablet.WriteLog "
+                "-> [(Tablet.WriteLog.LogEntry)])])])])])])])";
         } else {
             auto deSpan = trace.Root.BFSFindOne("DataExecuter");
             UNIT_ASSERT(deSpan);
diff --git a/ydb/core/tx/datashard/datashard_ut_volatile.cpp b/ydb/core/tx/datashard/datashard_ut_volatile.cpp
index efc134ed160e..61c94953717c 100644
--- a/ydb/core/tx/datashard/datashard_ut_volatile.cpp
+++ b/ydb/core/tx/datashard/datashard_ut_volatile.cpp
@@ -3,6 +3,7 @@
 #include "datashard_ut_common_pq.h"
 #include "datashard_active_transaction.h"
 
+#include 
 #include 
 
 namespace NKikimr {
@@ -2106,6 +2107,784 @@ Y_UNIT_TEST_SUITE(DataShardVolatile) {
             "{ items { uint32_value: 6 } items { uint32_value: 6 } }");
     }
 
+    // Regression test for KIKIMR-21060
+    Y_UNIT_TEST(DistributedWriteRSNotAckedBeforeCommit) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false)
+            .SetDomainPlanResolution(1000)
+            .SetEnableDataShardVolatileTransactions(true);
+
+        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);
+
+        InitRoot(server, sender);
+
+        CreateShardedTable(server, sender, "/Root", "table-1", 1);
+        CreateShardedTable(server, sender, "/Root", "table-2", 1);
+
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 10);");
+        ExecSQL(server, sender, "UPSERT INTO `/Root/table-2` (key, value) VALUES (2, 20);");
+
+        // Block readset exchange
+        std::vector> readSets;
+        auto blockReadSets = runtime.AddObserver([&](TEvTxProcessing::TEvReadSet::TPtr& ev) {
+            Cerr << "... blocking readset" << Endl;
+            readSets.emplace_back(ev.Release());
+        });
+
+        // Start a distributed write to both tables
+        TString sessionId = CreateSessionRPC(runtime, "/Root");
+        auto upsertResult = SendRequest(
+            runtime,
+            MakeSimpleRequestRPC(R"(
+                UPSERT INTO `/Root/table-1` (key, value) VALUES (3, 30);
+                UPSERT INTO `/Root/table-2` (key, value) VALUES (4, 40);
+                )", sessionId, /* txId */ "", /* commitTx */ true),
+            "/Root");
+        WaitFor(runtime, [&]{ return readSets.size() >= 4; }, "readsets");
+
+        // Stop blocking further readsets
+        blockReadSets.Remove();
+
+        // Sleep a little to make sure everything so far is fully committed
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        // Start blocking commits for table-1
+        const auto shards1 = GetTableShards(server, sender, "/Root/table-1");
+        UNIT_ASSERT_VALUES_EQUAL(shards1.size(), 1u);
+        std::vector> putResponses;
+        auto blockCommits = runtime.AddObserver([&](TEvBlobStorage::TEvPut::TPtr& ev) {
+            auto* msg = ev->Get();
+            // Drop all put requests for table-1
+            if (msg->Id.TabletID() == shards1.at(0)) {
+                // We can't just drop requests, we must reply to it later
+                putResponses.emplace_back(new IEventHandle(
+                    ev->Sender,
+                    ev->GetRecipientRewrite(),
+                    msg->MakeErrorResponse(NKikimrProto::BLOCKED, "Fake blocked response", 0).release(),
+                    0,
+                    ev->Cookie));
+                Cerr << "... dropping put " << msg->Id << Endl;
+                ev.Reset();
+            }
+        });
+
+        // Unblock readsets
+        for (auto& ev : readSets) {
+            runtime.Send(ev.release(), 0, true);
+        }
+        readSets.clear();
+
+        // Sleep to make sure those readsets are fully processed
+        // Bug was acknowledging readsets before tx state is fully persisted
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        // Transaction will return success even when commits are blocked at this point
+        Cerr << "... awaiting upsert result" << Endl;
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(upsertResult))),
+            "");
+
+        // Now we stop blocking commits and gracefully restart the tablet, all pending commits will be lost
+        blockCommits.Remove();
+        for (auto& ev : putResponses) {
+            runtime.Send(ev.release(), 0, true);
+        }
+        Cerr << "... restarting tablet " << shards1.at(0) << Endl;
+        GracefulRestartTablet(runtime, shards1.at(0), sender);
+
+        // We must see all rows as committed, i.e. nothing should be lost
+        Cerr << "... reading final result" << Endl;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, R"(
+                SELECT key, value FROM `/Root/table-1`
+                UNION ALL
+                SELECT key, value FROM `/Root/table-2`
+                ORDER BY key
+                )"),
+            "{ items { uint32_value: 1 } items { uint32_value: 10 } }, "
+            "{ items { uint32_value: 2 } items { uint32_value: 20 } }, "
+            "{ items { uint32_value: 3 } items { uint32_value: 30 } }, "
+            "{ items { uint32_value: 4 } items { uint32_value: 40 } }");
+    }
+
+    Y_UNIT_TEST(TwoAppendsMustBeVolatile) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetNodeCount(2)
+            .SetUseRealThreads(false)
+            .SetDomainPlanResolution(100)
+            .SetEnableDataShardVolatileTransactions(true);
+
+        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.SetLogPriority(NKikimrServices::KQP_EXECUTER, NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::KQP_SESSION, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        CreateShardedTable(server, sender, "/Root", "table-1", 1);
+        CreateShardedTable(server, sender, "/Root", "table-2", 1);
+
+        // Insert initial values
+        ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 10);"));
+        ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-2` (key, value) VALUES (2, 20);"));
+
+        size_t volatileTxs = 0;
+        auto proposeObserver = runtime.AddObserver([&](TEvDataShard::TEvProposeTransaction::TPtr& ev) {
+            auto* msg = ev->Get();
+            if (msg->Record.GetFlags() & TTxFlags::VolatilePrepare) {
+                ++volatileTxs;
+            }
+        });
+
+        // This simulates a jepsen transaction that appends two values at different shards
+        TString sessionId, txId;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleBegin(runtime, sessionId, txId, Q_(R"(
+                $next_index = (
+                    SELECT COALESCE(MAX(key) + 1u, 0u)
+                    FROM (
+                        SELECT key FROM `/Root/table-1`
+                        UNION ALL
+                        SELECT key FROM `/Root/table-2`
+                    )
+                );
+                UPSERT INTO `/Root/table-1` (key, value) VALUES ($next_index, 30u);
+                )")),
+            "");
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleCommit(runtime, sessionId, txId, Q_(R"(
+                $next_index = (
+                    SELECT COALESCE(MAX(key) + 1u, 0u)
+                    FROM (
+                        SELECT key FROM `/Root/table-1`
+                        UNION ALL
+                        SELECT key FROM `/Root/table-2`
+                    )
+                );
+                UPSERT INTO `/Root/table-2` (key, value) VALUES ($next_index, 40u);
+                )")),
+            "");
+
+        // There should have been volatile transactions at both shards
+        UNIT_ASSERT_VALUES_EQUAL(volatileTxs, 2u);
+    }
+
+    // Regression test for KIKIMR-21156
+    Y_UNIT_TEST(VolatileCommitOnBlobStorageFailure) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false)
+            .SetDomainPlanResolution(1000)
+            .SetEnableDataShardVolatileTransactions(true);
+
+        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.SetLogPriority(NKikimrServices::KQP_EXECUTER, NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::KQP_SESSION, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        TDisableDataShardLogBatching disableDataShardLogBatching;
+        CreateShardedTable(server, sender, "/Root", "table-1", 1);
+        CreateShardedTable(server, sender, "/Root", "table-2", 1);
+
+        // Make sure read flags are persisted by performing a snapshot read
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, R"(
+                SELECT key, value FROM `/Root/table-1`
+                UNION ALL
+                SELECT key, value FROM `/Root/table-2`
+                ORDER BY key
+                )"),
+            "");
+
+        // Insert initial values
+        ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-1` (key, value) VALUES (1, 10);"));
+        ExecSQL(server, sender, Q_("UPSERT INTO `/Root/table-2` (key, value) VALUES (2, 20);"));
+
+        // Start blocking commits for table-1
+        const auto shards1 = GetTableShards(server, sender, "/Root/table-1");
+        UNIT_ASSERT_VALUES_EQUAL(shards1.size(), 1u);
+        std::deque blockedPuts;
+        auto blockCommits = runtime.AddObserver([&](TEvBlobStorage::TEvPut::TPtr& ev) {
+            auto* msg = ev->Get();
+            // Drop all put requests for table-1
+            if (msg->Id.TabletID() == shards1.at(0)) {
+                Cerr << "... blocking put " << msg->Id << Endl;
+                blockedPuts.push_back(std::move(ev));
+            }
+        });
+
+        // Start an upsert to table-1, this will block further readonly localdb tx completions
+        Cerr << "... starting an upsert to table-1" << Endl;
+        auto firstUpsertFuture = KqpSimpleSend(runtime, R"(
+            UPSERT INTO `/Root/table-1` (key, value) VALUES (3, 30);
+            )");
+
+        // Wait until puts are blocked
+        WaitFor(runtime, [&]{ return blockedPuts.size() > 0; }, "blocked puts");
+        auto firstUpsertPuts = std::move(blockedPuts);
+        UNIT_ASSERT(blockedPuts.empty());
+
+        // Read from table-2 and write to table-1 based on the result
+        // This will result in a two-shard volatile tx writing to table-1
+        Cerr << "... starting distributed tx between table-1 and table-2" << Endl;
+        auto volatileFuture = KqpSimpleSend(runtime, R"(
+            UPSERT INTO `/Root/table-1`
+                SELECT key + 2u AS key, value + 2u AS value
+                FROM `/Root/table-2`;
+            )");
+
+        // Wait until it also tries to commit
+        WaitFor(runtime, [&]{ return blockedPuts.size() > 0; }, "blocked puts");
+
+        // Now unblock the first upsert puts
+        blockCommits.Remove();
+        for (auto& ev : firstUpsertPuts) {
+            runtime.Send(ev.Release(), 0, true);
+        }
+        firstUpsertPuts.clear();
+
+        // And wait for it to finish successfully
+        Cerr << "... waiting for first upsert result" << Endl;
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(firstUpsertFuture))),
+            "");
+
+        // Reply to everything previously blocked with an error, the shard will restart
+        for (auto& ev : blockedPuts) {
+            auto proxy = ev->Recipient;
+            ui32 groupId = GroupIDFromBlobStorageProxyID(proxy);
+            auto res = ev->Get()->MakeErrorResponse(NKikimrProto::ERROR, "Something went wrong", groupId);
+            runtime.Send(new IEventHandle(ev->Sender, proxy, res.release()), 0, true);
+        }
+
+        // Wait for the volatile tx result
+        Cerr << "... waiting for volatile tx result" << Endl;
+        auto result = FormatResult(AwaitResponse(runtime, std::move(volatileFuture)));
+        if (result == "") {
+            // A success result is not ok now, but in the future we might migrate state
+            // Check that the supposedly committed row actually exists
+            UNIT_ASSERT_VALUES_EQUAL(
+                KqpSimpleExec(runtime, R"(
+                    SELECT key, value FROM `/Root/table-1` ORDER BY key;
+                    )"),
+                "{ items { uint32_value: 1 } items { uint32_value: 10 } }, "
+                "{ items { uint32_value: 3 } items { uint32_value: 30 } }, "
+                "{ items { uint32_value: 4 } items { uint32_value: 22 } }");
+        } else {
+            // Otherwise the result must be undetermined
+            UNIT_ASSERT_VALUES_EQUAL(result, "ERROR: UNDETERMINED");
+        }
+    }
+
+    class TForceVolatileProposeArbiter {
+    public:
+        TForceVolatileProposeArbiter(TTestActorRuntime& runtime, ui64 arbiterShard)
+            : ArbiterShard(arbiterShard)
+            , Observer(runtime.AddObserver(
+                [this](auto& ev) {
+                    this->OnEvent(ev);
+                }))
+        {}
+
+        void Remove() {
+            Observer.Remove();
+        }
+
+    private:
+        void OnEvent(TEvDataShard::TEvProposeTransaction::TPtr& ev) {
+            auto* msg = ev->Get();
+            int kind = msg->Record.GetTxKind();
+            if (kind != NKikimrTxDataShard::TX_KIND_DATA) {
+                Cerr << "... skipping TEvProposeTransaction with kind " << kind
+                    << " (expected " << int(NKikimrTxDataShard::TX_KIND_DATA) << ")"
+                    << Endl;
+                return;
+            }
+
+            ui32 flags = msg->Record.GetFlags();
+            if (!(flags & TTxFlags::VolatilePrepare)) {
+                Cerr << "... skipping TEvProposeTransaction with flags " << flags
+                    << " (missing VolatilePrepare flag)"
+                    << Endl;
+                return;
+            }
+
+            NKikimrTxDataShard::TDataTransaction tx;
+            bool ok = tx.ParseFromString(msg->Record.GetTxBody());
+            Y_ABORT_UNLESS(ok, "Failed to parse data transaction");
+            if (!tx.HasKqpTransaction()) {
+                Cerr << "... skipping TEvProposeTransaction without kqp transaction" << Endl;
+                return;
+            }
+
+            auto* kqpTx = tx.MutableKqpTransaction();
+
+            int kqpType = kqpTx->GetType();
+            if (kqpType != NKikimrTxDataShard::KQP_TX_TYPE_DATA) {
+                Cerr << "... skipping TEvProposeTransaction with kqp type " << kqpType
+                    << " (expected " << int(NKikimrTxDataShard::KQP_TX_TYPE_DATA) << ")"
+                    << Endl;
+                return;
+            }
+
+            if (!kqpTx->HasLocks()) {
+                Cerr << "... skipping TEvProposeTransaction without locks" << Endl;
+                return;
+            }
+
+            auto* kqpLocks = kqpTx->MutableLocks();
+            const auto& sendingShards = kqpLocks->GetSendingShards();
+            const auto& receivingShards = kqpLocks->GetReceivingShards();
+
+            if (std::find(sendingShards.begin(), sendingShards.end(), ArbiterShard) == sendingShards.end()) {
+                Cerr << "... skipping TEvProposeTransaction without " << ArbiterShard << " in sending shards" << Endl;
+                return;
+            }
+
+            if (std::find(receivingShards.begin(), receivingShards.end(), ArbiterShard) == receivingShards.end()) {
+                Cerr << "... skipping TEvProposeTransaction without " << ArbiterShard << " in receiving shards" << Endl;
+                return;
+            }
+
+            kqpLocks->SetArbiterShard(ArbiterShard);
+            ok = tx.SerializeToString(msg->Record.MutableTxBody());
+            Y_ABORT_UNLESS(ok, "Failed to serialize data transaction");
+            ++Modified;
+        }
+
+    public:
+        size_t Modified = 0;
+
+    private:
+        const ui64 ArbiterShard;
+        TTestActorRuntime::TEventObserverHolder Observer;
+    };
+
+    class TForceBrokenLock {
+    public:
+        TForceBrokenLock(TTestActorRuntime& runtime, const TTableId& tableId, ui64 shard)
+            : TableId(tableId)
+            , Shard(shard)
+            , ShardActor(ResolveTablet(runtime, shard))
+            , Observer(runtime.AddObserver(
+                [this](auto& ev) {
+                    this->OnEvent(ev);
+                }))
+        {}
+
+    private:
+        void OnEvent(TEvDataShard::TEvProposeTransaction::TPtr& ev) {
+            if (ev->GetRecipientRewrite() != ShardActor) {
+                return;
+            }
+
+            auto* msg = ev->Get();
+            int kind = msg->Record.GetTxKind();
+            if (kind != NKikimrTxDataShard::TX_KIND_DATA) {
+                Cerr << "... skipping TEvProposeTransaction with kind " << kind
+                    << " (expected " << int(NKikimrTxDataShard::TX_KIND_DATA) << ")"
+                    << Endl;
+                return;
+            }
+
+            ui32 flags = msg->Record.GetFlags();
+            if (!(flags & TTxFlags::VolatilePrepare)) {
+                Cerr << "... skipping TEvProposeTransaction with flags " << flags
+                    << " (missing VolatilePrepare flag)"
+                    << Endl;
+                return;
+            }
+
+            NKikimrTxDataShard::TDataTransaction tx;
+            bool ok = tx.ParseFromString(msg->Record.GetTxBody());
+            Y_ABORT_UNLESS(ok, "Failed to parse data transaction");
+            if (!tx.HasKqpTransaction()) {
+                Cerr << "... skipping TEvProposeTransaction without kqp transaction" << Endl;
+                return;
+            }
+
+            auto* kqpTx = tx.MutableKqpTransaction();
+
+            int kqpType = kqpTx->GetType();
+            if (kqpType != NKikimrTxDataShard::KQP_TX_TYPE_DATA) {
+                Cerr << "... skipping TEvProposeTransaction with kqp type " << kqpType
+                    << " (expected " << int(NKikimrTxDataShard::KQP_TX_TYPE_DATA) << ")"
+                    << Endl;
+                return;
+            }
+
+            if (!kqpTx->HasLocks()) {
+                Cerr << "... skipping TEvProposeTransaction without locks" << Endl;
+                return;
+            }
+
+            auto* kqpLocks = kqpTx->MutableLocks();
+
+            // We use a lock that should have never existed to simulate a broken lock
+            auto* kqpLock = kqpLocks->AddLocks();
+            kqpLock->SetLockId(msg->Record.GetTxId());
+            kqpLock->SetDataShard(Shard);
+            kqpLock->SetGeneration(1);
+            kqpLock->SetCounter(1);
+            kqpLock->SetSchemeShard(TableId.PathId.OwnerId);
+            kqpLock->SetPathId(TableId.PathId.LocalPathId);
+
+            ok = tx.SerializeToString(msg->Record.MutableTxBody());
+            Y_ABORT_UNLESS(ok, "Failed to serialize data transaction");
+            ++Modified;
+        }
+
+    public:
+        size_t Modified = 0;
+
+    private:
+        const TTableId TableId;
+        const ui64 Shard;
+        const TActorId ShardActor;
+        TTestActorRuntime::TEventObserverHolder Observer;
+    };
+
+    class TBlockReadSets : public std::vector {
+    public:
+        TBlockReadSets(TTestActorRuntime& runtime)
+            : Runtime(runtime)
+            , Observer(runtime.AddObserver(
+                [this](auto& ev) {
+                    this->OnEvent(ev);
+                }))
+        {}
+
+        void Remove() {
+            Observer.Remove();
+            clear();
+        }
+
+        void Unblock() {
+            Observer.Remove();
+            for (auto& ev : *this) {
+                Runtime.Send(ev.Release(), 0, true);
+            }
+            clear();
+        }
+
+    private:
+        void OnEvent(TEvTxProcessing::TEvReadSet::TPtr& ev) {
+            push_back(std::move(ev));
+        }
+
+    private:
+        TTestActorRuntime& Runtime;
+        TTestActorRuntime::TEventObserverHolder Observer;
+    };
+
+    class TCountReadSets {
+    public:
+        TCountReadSets(TTestActorRuntime& runtime)
+            : Observer(runtime.AddObserver(
+                [this](auto& ev) {
+                    this->OnEvent(ev);
+                }))
+        {}
+
+    private:
+        void OnEvent(TEvTxProcessing::TEvReadSet::TPtr&) {
+            ++Count;
+        }
+
+    public:
+        size_t Count = 0;
+
+    private:
+        TTestActorRuntime::TEventObserverHolder Observer;
+    };
+
+    Y_UNIT_TEST(UpsertNoLocksArbiter) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false)
+            .SetEnableDataShardVolatileTransactions(true);
+
+        Tests::TServer::TPtr server = new TServer(serverSettings);
+        auto &runtime = *server->GetRuntime();
+        auto sender = runtime.AllocateEdgeActor();
+
+        runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSchemeExec(runtime, R"(
+                CREATE TABLE `/Root/table` (key int, value int, PRIMARY KEY (key))
+                WITH (PARTITION_AT_KEYS = (10, 20, 30));
+            )"),
+            "SUCCESS");
+
+        const auto shards = GetTableShards(server, sender, "/Root/table");
+        UNIT_ASSERT_VALUES_EQUAL(shards.size(), 4u);
+
+        TForceVolatileProposeArbiter forceArbiter(runtime, shards.at(0));
+        TCountReadSets countReadSets(runtime);
+
+        Cerr << "========= Starting upsert =========" << Endl;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, R"(
+                UPSERT INTO `/Root/table` (key, value)
+                VALUES (1, 11), (11, 111), (21, 211), (31, 311);
+            )"),
+            "");
+
+        // arbiter will send 6 readsets (3 decisions + 3 expectations)
+        // shards will send 2 readsets each (decision + expectation)
+        UNIT_ASSERT_VALUES_EQUAL(countReadSets.Count, 6 + 3 * 2);
+
+        UNIT_ASSERT_VALUES_EQUAL(forceArbiter.Modified, 4u);
+        forceArbiter.Remove();
+
+        Cerr << "========= Checking table =========" << Endl;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, R"(
+                SELECT key, value FROM `/Root/table`
+                ORDER BY key;
+            )"),
+            "{ items { int32_value: 1 } items { int32_value: 11 } }, "
+            "{ items { int32_value: 11 } items { int32_value: 111 } }, "
+            "{ items { int32_value: 21 } items { int32_value: 211 } }, "
+            "{ items { int32_value: 31 } items { int32_value: 311 } }");
+    }
+
+    Y_UNIT_TEST(UpsertBrokenLockArbiter) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false)
+            .SetEnableDataShardVolatileTransactions(true);
+
+        Tests::TServer::TPtr server = new TServer(serverSettings);
+        auto &runtime = *server->GetRuntime();
+        auto sender = runtime.AllocateEdgeActor();
+
+        runtime.SetLogPriority(NKikimrServices::TX_DATASHARD, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSchemeExec(runtime, R"(
+                CREATE TABLE `/Root/table` (key int, value int, PRIMARY KEY (key))
+                WITH (PARTITION_AT_KEYS = (10, 20, 30));
+            )"),
+            "SUCCESS");
+
+        const auto tableId = ResolveTableId(server, sender, "/Root/table");
+        const auto shards = GetTableShards(server, sender, "/Root/table");
+        UNIT_ASSERT_VALUES_EQUAL(shards.size(), 4u);
+
+        for (size_t i = 0; i < shards.size(); ++i) {
+            TForceVolatileProposeArbiter forceArbiter(runtime, shards.at(0));
+            TForceBrokenLock forceBrokenLock(runtime, tableId, shards.at(i));
+            TCountReadSets countReadSets(runtime);
+
+            int key = 1 + i;
+            int value = key * 10 + key;
+            TString query = Sprintf(
+                R"(UPSERT INTO `/Root/table` (key, value) VALUES (%d, %d), (%d, %d), (%d, %d), (%d, %d);)",
+                key, value,
+                key + 10, value + 100,
+                key + 20, value + 200,
+                key + 30, value + 300);
+
+            Cerr << "========= Starting query " << query << " =========" << Endl;
+            UNIT_ASSERT_VALUES_EQUAL(
+                KqpSimpleExec(runtime, query),
+                "ERROR: ABORTED");
+
+            // Note: kqp stops gathering responses early on abort, allow everyone to settle
+            runtime.SimulateSleep(TDuration::MilliSeconds(1));
+
+            // arbiter will send 3 or 6 readsets (3 aborts or 3 decisions + 3 expectations)
+            // shards will send 1 or 2 readsets each (abort or decision + expectation)
+            size_t expectedReadSets = (i == 0 ? 3 + 3 * 2 : 6 + 2 * 2 + 1);
+            UNIT_ASSERT_VALUES_EQUAL(countReadSets.Count, expectedReadSets);
+
+            UNIT_ASSERT_VALUES_EQUAL(forceBrokenLock.Modified, 1u);
+            UNIT_ASSERT_VALUES_EQUAL(forceArbiter.Modified, 4u);
+        }
+
+        Cerr << "========= Checking table =========" << Endl;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, R"(
+                SELECT key, value FROM `/Root/table`
+                ORDER BY key;
+            )"),
+            "");
+    }
+
+    Y_UNIT_TEST(UpsertNoLocksArbiterRestart) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false)
+            .SetEnableDataShardVolatileTransactions(true);
+
+        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::PIPE_CLIENT, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSchemeExec(runtime, R"(
+                CREATE TABLE `/Root/table` (key int, value int, PRIMARY KEY (key))
+                WITH (PARTITION_AT_KEYS = (10, 20, 30));
+            )"),
+            "SUCCESS");
+
+        const auto shards = GetTableShards(server, sender, "/Root/table");
+        UNIT_ASSERT_VALUES_EQUAL(shards.size(), 4u);
+
+        TForceVolatileProposeArbiter forceArbiter(runtime, shards.at(0));
+        TBlockReadSets blockedReadSets(runtime);
+
+        Cerr << "========= Starting upsert =========" << Endl;
+        auto upsertFuture = KqpSimpleSend(runtime, R"(
+            UPSERT INTO `/Root/table` (key, value)
+            VALUES (1, 11), (11, 111), (21, 211), (31, 311);
+            )");
+
+        // arbiter will send 3 expectations
+        // shards will send 1 commit decision + 1 expectation
+        size_t expectedReadSets = 3 + 3 * 2;
+        runtime.SimulateSleep(TDuration::Seconds(1));
+        UNIT_ASSERT_VALUES_EQUAL(blockedReadSets.size(), expectedReadSets);
+
+        // Reboot arbiter
+        Cerr << "========= Rebooting arbiter =========" << Endl;
+        blockedReadSets.clear();
+        RebootTablet(runtime, shards.at(0), sender);
+        runtime.SimulateSleep(TDuration::Seconds(1));
+        UNIT_ASSERT_VALUES_EQUAL(blockedReadSets.size(), expectedReadSets);
+
+        Cerr << "========= Unblocking readsets =========" << Endl;
+        blockedReadSets.Unblock();
+        TCountReadSets countReadSets(runtime);
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        // arbiter will send 3 additional commit decisions
+        UNIT_ASSERT_VALUES_EQUAL(countReadSets.Count, expectedReadSets + 3);
+
+        Cerr << "========= Checking table =========" << Endl;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, R"(
+                SELECT key, value FROM `/Root/table`
+                ORDER BY key;
+            )"),
+            "{ items { int32_value: 1 } items { int32_value: 11 } }, "
+            "{ items { int32_value: 11 } items { int32_value: 111 } }, "
+            "{ items { int32_value: 21 } items { int32_value: 211 } }, "
+            "{ items { int32_value: 31 } items { int32_value: 311 } }");
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(upsertFuture))),
+            "ERROR: UNDETERMINED");
+    }
+
+    Y_UNIT_TEST(UpsertBrokenLockArbiterRestart) {
+        TPortManager pm;
+        TServerSettings serverSettings(pm.GetPort(2134));
+        serverSettings.SetDomainName("Root")
+            .SetUseRealThreads(false)
+            .SetEnableDataShardVolatileTransactions(true);
+
+        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::PIPE_CLIENT, NLog::PRI_TRACE);
+
+        InitRoot(server, sender);
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSchemeExec(runtime, R"(
+                CREATE TABLE `/Root/table` (key int, value int, PRIMARY KEY (key))
+                WITH (PARTITION_AT_KEYS = (10, 20, 30));
+            )"),
+            "SUCCESS");
+
+        const auto tableId = ResolveTableId(server, sender, "/Root/table");
+        const auto shards = GetTableShards(server, sender, "/Root/table");
+        UNIT_ASSERT_VALUES_EQUAL(shards.size(), 4u);
+
+        TForceVolatileProposeArbiter forceArbiter(runtime, shards.at(0));
+        TForceBrokenLock forceBrokenLock(runtime, tableId, shards.at(3));
+
+        TBlockReadSets blockedReadSets(runtime);
+
+        Cerr << "========= Starting upsert =========" << Endl;
+        auto upsertFuture = KqpSimpleSend(runtime, R"(
+            UPSERT INTO `/Root/table` (key, value)
+            VALUES (1, 11), (11, 111), (21, 211), (31, 311);
+            )");
+
+        // arbiter will send 3 expectations
+        // two shards will send 1 commit decision + 1 expectation
+        size_t expectedReadSets = 3 + 2 * 2;
+        runtime.SimulateSleep(TDuration::Seconds(1));
+        UNIT_ASSERT_VALUES_EQUAL(blockedReadSets.size(), expectedReadSets);
+
+        // Reboot arbiter
+        Cerr << "========= Rebooting arbiter =========" << Endl;
+        blockedReadSets.clear();
+        RebootTablet(runtime, shards.at(0), sender);
+        runtime.SimulateSleep(TDuration::Seconds(1));
+        UNIT_ASSERT_VALUES_EQUAL(blockedReadSets.size(), expectedReadSets);
+
+        Cerr << "========= Unblocking readsets =========" << Endl;
+        blockedReadSets.Unblock();
+        TCountReadSets countReadSets(runtime);
+        runtime.SimulateSleep(TDuration::Seconds(1));
+
+        // arbiter will send 3 additional commit decisions
+        // the last shard sends a nodata readset to answer expectation
+        UNIT_ASSERT_VALUES_EQUAL(countReadSets.Count, expectedReadSets + 4);
+
+        Cerr << "========= Checking table =========" << Endl;
+        UNIT_ASSERT_VALUES_EQUAL(
+            KqpSimpleExec(runtime, R"(
+                SELECT key, value FROM `/Root/table`
+                ORDER BY key;
+            )"),
+            "");
+
+        UNIT_ASSERT_VALUES_EQUAL(
+            FormatResult(AwaitResponse(runtime, std::move(upsertFuture))),
+            "ERROR: ABORTED");
+    }
+
 } // Y_UNIT_TEST_SUITE(DataShardVolatile)
 
 } // namespace NKikimr
diff --git a/ydb/core/tx/datashard/datashard_ut_write.cpp b/ydb/core/tx/datashard/datashard_ut_write.cpp
index b2a6a33c8740..55f8dcd2865a 100644
--- a/ydb/core/tx/datashard/datashard_ut_write.cpp
+++ b/ydb/core/tx/datashard/datashard_ut_write.cpp
@@ -94,7 +94,7 @@ Y_UNIT_TEST_SUITE(DataShardWrite) {
         TSerializedCellMatrix matrix({TCell(hugeStringValue.c_str(), hugeStringValue.size())}, 1, 1);
 
         auto evWrite = std::make_unique(100, NKikimrDataEvents::TEvWrite::MODE_IMMEDIATE);
-        ui64 payloadIndex = NKikimr::NEvWrite::TPayloadHelper(*evWrite).AddDataToPayload(matrix.ReleaseBuffer());
+        ui64 payloadIndex = NKikimr::NEvWrite::TPayloadWriter(*evWrite).AddDataToPayload(matrix.ReleaseBuffer());
         evWrite->AddOperation(NKikimrDataEvents::TEvWrite::TOperation::OPERATION_UPSERT, tableId, {1}, payloadIndex, NKikimrDataEvents::FORMAT_CELLVEC);
 
         const auto& record = Write(runtime, sender, shards[0], std::move(evWrite), NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST);
diff --git a/ydb/core/tx/datashard/datashard_write_operation.cpp b/ydb/core/tx/datashard/datashard_write_operation.cpp
index 5bd48c0a0311..5ebb2dfc4102 100644
--- a/ydb/core/tx/datashard/datashard_write_operation.cpp
+++ b/ydb/core/tx/datashard/datashard_write_operation.cpp
@@ -89,8 +89,8 @@ bool TValidatedWriteTx::ParseRecord(const TDataShard::TTableInfos& tableInfos) {
         return false;
     }
 
-    NEvWrite::TPayloadHelper payloadHelper(*Ev->Get());
-    TString payload = payloadHelper.GetDataFromPayload(RecordOperation().GetPayloadIndex());
+    NEvWrite::TPayloadReader payloadReader(*Ev->Get());
+    TString payload = payloadReader.GetDataFromPayload(RecordOperation().GetPayloadIndex());
 
     if (!TSerializedCellMatrix::TryParse(payload,Matrix))
     {
diff --git a/ydb/core/tx/datashard/execute_data_tx_unit.cpp b/ydb/core/tx/datashard/execute_data_tx_unit.cpp
index a2976e05bd82..67be732c65a6 100644
--- a/ydb/core/tx/datashard/execute_data_tx_unit.cpp
+++ b/ydb/core/tx/datashard/execute_data_tx_unit.cpp
@@ -332,6 +332,7 @@ void TExecuteDataTxUnit::ExecuteDataTx(TOperation::TPtr op,
             participants,
             tx->GetDataTx()->GetVolatileChangeGroup(),
             tx->GetDataTx()->GetVolatileCommitOrdered(),
+            /* arbiter */ false,
             txc);
     }
 
diff --git a/ydb/core/tx/datashard/execute_distributed_erase_tx_unit.cpp b/ydb/core/tx/datashard/execute_distributed_erase_tx_unit.cpp
index 1c1a8be5e81b..d2f889640089 100644
--- a/ydb/core/tx/datashard/execute_distributed_erase_tx_unit.cpp
+++ b/ydb/core/tx/datashard/execute_distributed_erase_tx_unit.cpp
@@ -18,7 +18,7 @@ class TExecuteDistributedEraseTxUnit : public TExecutionUnit {
 
 public:
     TExecuteDistributedEraseTxUnit(TDataShard& self, TPipeline& pipeline)
-        : TExecutionUnit(EExecutionUnitKind::ExecuteDistributedEraseTx, false, self, pipeline)
+        : TExecutionUnit(EExecutionUnitKind::ExecuteDistributedEraseTx, true, self, pipeline)
     {
     }
 
@@ -91,11 +91,12 @@ class TExecuteDistributedEraseTxUnit : public TExecutionUnit {
                 for (const auto& rs : readSets) {
                     NKikimrTxDataShard::TDistributedEraseRS body;
                     Y_ABORT_UNLESS(body.ParseFromArray(rs.Body.data(), rs.Body.size()));
-
                     Y_ABORT_UNLESS(presentRows.contains(rs.Origin));
-                    const bool ok = Execute(txc, request, presentRows.at(rs.Origin),
-                        DeserializeBitMap(body.GetConfirmedRows()), writeVersion, op->GetGlobalTxId());
-                    Y_ABORT_UNLESS(ok);
+
+                    auto confirmedRows = DeserializeBitMap(body.GetConfirmedRows());
+                    if (!Execute(txc, request, presentRows.at(rs.Origin), confirmedRows, writeVersion, op->GetGlobalTxId())) {
+                        return EExecutionStatus::Restart;
+                    }
                 }
             }
 
@@ -214,6 +215,7 @@ class TExecuteDistributedEraseTxUnit : public TExecutionUnit {
                 /* participants */ { },
                 groupProvider ? groupProvider->GetCurrentChangeGroup() : std::nullopt,
                 volatileOrdered,
+                /* arbiter */ false,
                 txc);
             // Note: transaction is already committed, no additional waiting needed
         }
diff --git a/ydb/core/tx/datashard/execute_kqp_data_tx_unit.cpp b/ydb/core/tx/datashard/execute_kqp_data_tx_unit.cpp
index cd331d8f7f36..9b2b84c07867 100644
--- a/ydb/core/tx/datashard/execute_kqp_data_tx_unit.cpp
+++ b/ydb/core/tx/datashard/execute_kqp_data_tx_unit.cpp
@@ -225,6 +225,8 @@ EExecutionStatus TExecuteKqpDataTxUnit::Execute(TOperation::TPtr op, TTransactio
 
         LWTRACK(ProposeTransactionKqpDataExecute, op->Orbit);
 
+        const bool isArbiter = op->HasVolatilePrepareFlag() && KqpLocksIsArbiter(tabletId, &kqpLocks);
+
         KqpCommitLocks(tabletId, tx, writeVersion, DataShard);
 
         auto& computeCtx = tx->GetDataTx()->GetKqpComputeCtx();
@@ -335,6 +337,7 @@ EExecutionStatus TExecuteKqpDataTxUnit::Execute(TOperation::TPtr op, TTransactio
                 participants,
                 dataTx->GetVolatileChangeGroup(),
                 dataTx->GetVolatileCommitOrdered(),
+                isArbiter,
                 txc);
         }
 
diff --git a/ydb/core/tx/datashard/export_common.cpp b/ydb/core/tx/datashard/export_common.cpp
index bbedc5c02c86..fa7a0fb28074 100644
--- a/ydb/core/tx/datashard/export_common.cpp
+++ b/ydb/core/tx/datashard/export_common.cpp
@@ -66,6 +66,7 @@ TMaybe GenYdbScheme(
     FillPartitioningSettings(scheme, tableDesc);
     FillKeyBloomFilter(scheme, tableDesc);
     FillReadReplicasSettings(scheme, tableDesc);
+    FillSequenceDescription(scheme, tableDesc);
 
     return scheme;
 }
@@ -117,5 +118,15 @@ bool PgToStream(TStringBuf data, void* typeDesc, IOutputStream& out, TString& er
     return true;
 }
 
+bool UuidToStream(const std::pair& loHi, IOutputStream& out, TString& err) {
+    Y_UNUSED(err);
+
+    NYdb::TUuidValue uuid(loHi.first, loHi.second);
+    
+    out << uuid.ToString();
+    
+    return true;
+}
+
 } // NDataShard
 } // NKikimr
diff --git a/ydb/core/tx/datashard/export_common.h b/ydb/core/tx/datashard/export_common.h
index df3434a45cc7..3fad32a0a305 100644
--- a/ydb/core/tx/datashard/export_common.h
+++ b/ydb/core/tx/datashard/export_common.h
@@ -3,6 +3,7 @@
 #include "datashard_user_table.h"
 
 #include 
+#include 
 
 #include 
 #include 
@@ -39,6 +40,7 @@ TString DyNumberToString(TStringBuf data);
 bool DecimalToStream(const std::pair& loHi, IOutputStream& out, TString& err);
 bool DyNumberToStream(TStringBuf data, IOutputStream& out, TString& err);
 bool PgToStream(TStringBuf data, void* typeDesc, IOutputStream& out, TString& err);
+bool UuidToStream(const std::pair& loHi, IOutputStream& out, TString& err);
 
 } // NDataShard
 } // NKikimr
diff --git a/ydb/core/tx/datashard/export_s3_buffer_raw.cpp b/ydb/core/tx/datashard/export_s3_buffer_raw.cpp
index 8e4bceadbbf8..649c46735eff 100644
--- a/ydb/core/tx/datashard/export_s3_buffer_raw.cpp
+++ b/ydb/core/tx/datashard/export_s3_buffer_raw.cpp
@@ -125,6 +125,9 @@ bool TS3BufferRaw::Collect(const NTable::IScan::TRow& row, IOutputStream& out) {
         case NScheme::NTypeIds::Pg:
             serialized = PgToStream(cell.AsBuf(), column.Type.GetTypeDesc(), out, ErrorString);
             break;
+        case NScheme::NTypeIds::Uuid:
+            serialized = UuidToStream(cell.AsValue>(), out, ErrorString);
+            break;
         default:
             Y_ABORT("Unsupported type");
         }
diff --git a/ydb/core/tx/datashard/finish_propose_unit.cpp b/ydb/core/tx/datashard/finish_propose_unit.cpp
index 7c30cb960093..bfc7a166d2aa 100644
--- a/ydb/core/tx/datashard/finish_propose_unit.cpp
+++ b/ydb/core/tx/datashard/finish_propose_unit.cpp
@@ -99,8 +99,11 @@ EExecutionStatus TFinishProposeUnit::Execute(TOperation::TPtr op,
         op->SetFinishProposeTs(DataShard.ConfirmReadOnlyLease());
     }
 
-    if (!op->HasResultSentFlag() && (op->IsDirty() || op->HasVolatilePrepareFlag() || !Pipeline.WaitCompletion(op)))
+    if (!op->HasResultSentFlag() && (op->IsDirty() || op->HasVolatilePrepareFlag() || !Pipeline.WaitCompletion(op))) {
+        DataShard.IncCounter(COUNTER_PREPARE_COMPLETE);
+        op->SetProposeResultSentEarly();
         CompleteRequest(op, ctx);
+    }
 
     if (!DataShard.IsFollower())
         DataShard.PlanCleanup(ctx);
@@ -128,7 +131,7 @@ EExecutionStatus TFinishProposeUnit::Execute(TOperation::TPtr op,
 void TFinishProposeUnit::Complete(TOperation::TPtr op,
                                   const TActorContext &ctx)
 {
-    if (!op->HasResultSentFlag()) {
+    if (!op->HasResultSentFlag() && !op->IsProposeResultSentEarly()) {
         DataShard.IncCounter(COUNTER_PREPARE_COMPLETE);
 
         if (op->Result())
diff --git a/ydb/core/tx/datashard/finish_propose_write_unit.cpp b/ydb/core/tx/datashard/finish_propose_write_unit.cpp
index d6c9dffa10fa..7ed6d64ff24f 100644
--- a/ydb/core/tx/datashard/finish_propose_write_unit.cpp
+++ b/ydb/core/tx/datashard/finish_propose_write_unit.cpp
@@ -97,8 +97,11 @@ EExecutionStatus TFinishProposeWriteUnit::Execute(TOperation::TPtr op,
         op->SetFinishProposeTs(DataShard.ConfirmReadOnlyLease());
     }
 
-    if (!op->HasResultSentFlag() && (op->IsDirty() || op->HasVolatilePrepareFlag() || !Pipeline.WaitCompletion(op)))
+    if (!op->HasResultSentFlag() && (op->IsDirty() || op->HasVolatilePrepareFlag() || !Pipeline.WaitCompletion(op))) {
+        DataShard.IncCounter(COUNTER_PREPARE_COMPLETE);
+        op->SetProposeResultSentEarly();
         CompleteRequest(op, ctx);
+    }
 
     if (!DataShard.IsFollower())
         DataShard.PlanCleanup(ctx);
@@ -127,7 +130,7 @@ void TFinishProposeWriteUnit::Complete(TOperation::TPtr op, const TActorContext
 {
     TWriteOperation* writeOp = TWriteOperation::CastWriteOperation(op);
 
-    if (!op->HasResultSentFlag()) {
+    if (!op->HasResultSentFlag() && !op->IsProposeResultSentEarly()) {
         DataShard.IncCounter(COUNTER_WRITE_COMPLETE);
 
         if (writeOp->GetWriteResult())
diff --git a/ydb/core/tx/datashard/move_index_unit.cpp b/ydb/core/tx/datashard/move_index_unit.cpp
index 6b3a30be457a..73fa338d35e7 100644
--- a/ydb/core/tx/datashard/move_index_unit.cpp
+++ b/ydb/core/tx/datashard/move_index_unit.cpp
@@ -60,20 +60,27 @@ class TMoveIndexUnit : public TExecutionUnit {
         NIceDb::TNiceDb db(txc.DB);
 
         ChangeRecords.clear();
-        if (!DataShard.LoadChangeRecords(db, ChangeRecords)) {
-            return EExecutionStatus::Restart;
-        }
 
+        auto changesQueue = DataShard.TakeChangesQueue();
         auto lockChangeRecords = DataShard.TakeLockChangeRecords();
         auto committedLockChangeRecords = DataShard.TakeCommittedLockChangeRecords();
 
+        if (!DataShard.LoadChangeRecords(db, ChangeRecords)) {
+            DataShard.SetChangesQueue(std::move(changesQueue));
+            DataShard.SetLockChangeRecords(std::move(lockChangeRecords));
+            DataShard.SetCommittedLockChangeRecords(std::move(committedLockChangeRecords));
+            return EExecutionStatus::Restart;
+        }
+
         if (!DataShard.LoadLockChangeRecords(db)) {
+            DataShard.SetChangesQueue(std::move(changesQueue));
             DataShard.SetLockChangeRecords(std::move(lockChangeRecords));
             DataShard.SetCommittedLockChangeRecords(std::move(committedLockChangeRecords));
             return EExecutionStatus::Restart;
         }
 
         if (!DataShard.LoadChangeRecordCommits(db, ChangeRecords)) {
+            DataShard.SetChangesQueue(std::move(changesQueue));
             DataShard.SetLockChangeRecords(std::move(lockChangeRecords));
             DataShard.SetCommittedLockChangeRecords(std::move(committedLockChangeRecords));
             return EExecutionStatus::Restart;
@@ -99,7 +106,7 @@ class TMoveIndexUnit : public TExecutionUnit {
     void Complete(TOperation::TPtr, const TActorContext& ctx) override {
         DataShard.CreateChangeSender(ctx);
         DataShard.MaybeActivateChangeSender(ctx);
-        DataShard.EnqueueChangeRecords(std::move(ChangeRecords));
+        DataShard.EnqueueChangeRecords(std::move(ChangeRecords), 0, true);
     }
 };
 
diff --git a/ydb/core/tx/datashard/move_table_unit.cpp b/ydb/core/tx/datashard/move_table_unit.cpp
index 846f517ee10a..3e34394e15d6 100644
--- a/ydb/core/tx/datashard/move_table_unit.cpp
+++ b/ydb/core/tx/datashard/move_table_unit.cpp
@@ -60,20 +60,27 @@ class TMoveTableUnit : public TExecutionUnit {
         NIceDb::TNiceDb db(txc.DB);
 
         ChangeRecords.clear();
-        if (!DataShard.LoadChangeRecords(db, ChangeRecords)) {
-            return EExecutionStatus::Restart;
-        }
 
+        auto changesQueue = DataShard.TakeChangesQueue();
         auto lockChangeRecords = DataShard.TakeLockChangeRecords();
         auto committedLockChangeRecords = DataShard.TakeCommittedLockChangeRecords();
 
+        if (!DataShard.LoadChangeRecords(db, ChangeRecords)) {
+            DataShard.SetChangesQueue(std::move(changesQueue));
+            DataShard.SetLockChangeRecords(std::move(lockChangeRecords));
+            DataShard.SetCommittedLockChangeRecords(std::move(committedLockChangeRecords));
+            return EExecutionStatus::Restart;
+        }
+
         if (!DataShard.LoadLockChangeRecords(db)) {
+            DataShard.SetChangesQueue(std::move(changesQueue));
             DataShard.SetLockChangeRecords(std::move(lockChangeRecords));
             DataShard.SetCommittedLockChangeRecords(std::move(committedLockChangeRecords));
             return EExecutionStatus::Restart;
         }
 
         if (!DataShard.LoadChangeRecordCommits(db, ChangeRecords)) {
+            DataShard.SetChangesQueue(std::move(changesQueue));
             DataShard.SetLockChangeRecords(std::move(lockChangeRecords));
             DataShard.SetCommittedLockChangeRecords(std::move(committedLockChangeRecords));
             return EExecutionStatus::Restart;
@@ -99,7 +106,7 @@ class TMoveTableUnit : public TExecutionUnit {
     void Complete(TOperation::TPtr, const TActorContext& ctx) override {
         DataShard.CreateChangeSender(ctx);
         DataShard.MaybeActivateChangeSender(ctx);
-        DataShard.EnqueueChangeRecords(std::move(ChangeRecords));
+        DataShard.EnqueueChangeRecords(std::move(ChangeRecords), 0, true);
     }
 };
 
diff --git a/ydb/core/tx/datashard/operation.cpp b/ydb/core/tx/datashard/operation.cpp
index c217cbf5c6ca..9de4faa6bb17 100644
--- a/ydb/core/tx/datashard/operation.cpp
+++ b/ydb/core/tx/datashard/operation.cpp
@@ -183,6 +183,40 @@ void TOperation::ClearImmediateConflicts() {
     ImmediateConflicts.clear();
 }
 
+void TOperation::AddRepeatableReadConflict(const TOperation::TPtr &op) {
+    Y_ABORT_UNLESS(this != op.Get());
+    Y_DEBUG_ABORT_UNLESS(IsImmediate());
+    Y_DEBUG_ABORT_UNLESS(!op->IsImmediate());
+
+    if (IsMvccSnapshotRepeatable()) {
+        AddDependency(this);
+        return;
+    }
+
+    if (RepeatableReadConflicts.insert(op).second) {
+        op->RepeatableReadConflicts.insert(this);
+    }
+}
+
+void TOperation::PromoteRepeatableReadConflicts() {
+    Y_ABORT_UNLESS(IsImmediate());
+
+    for (auto& op : RepeatableReadConflicts) {
+        Y_DEBUG_ABORT_UNLESS(op->RepeatableReadConflicts.contains(this));
+        op->RepeatableReadConflicts.erase(this);
+        AddDependency(op);
+    }
+    RepeatableReadConflicts.clear();
+}
+
+void TOperation::ClearRepeatableReadConflicts() {
+    for (auto& op : RepeatableReadConflicts) {
+        Y_DEBUG_ABORT_UNLESS(op->RepeatableReadConflicts.contains(this));
+        op->RepeatableReadConflicts.erase(this);
+    }
+    RepeatableReadConflicts.clear();
+}
+
 void TOperation::AddVolatileDependency(ui64 txId) {
     VolatileDependencies.insert(txId);
 }
@@ -289,5 +323,12 @@ void TOperation::SetFinishProposeTs() noexcept
     SetFinishProposeTs(AppData()->MonotonicTimeProvider->Now());
 }
 
+bool TOperation::OnStopping(TDataShard&, const TActorContext&)
+{
+    // By default operations don't do anything when stopping
+    // However they may become ready so add to candidates
+    return true;
+}
+
 } // namespace NDataShard
 } // namespace NKikimr
diff --git a/ydb/core/tx/datashard/operation.h b/ydb/core/tx/datashard/operation.h
index 7c7e5bf13769..6c963da09a32 100644
--- a/ydb/core/tx/datashard/operation.h
+++ b/ydb/core/tx/datashard/operation.h
@@ -402,12 +402,15 @@ class TBasicOpInfo {
 
     bool IsMvccSnapshotRead() const { return !MvccSnapshot.IsMax(); }
     const TRowVersion& GetMvccSnapshot() const { return MvccSnapshot; }
-    bool IsMvccSnapshotRepeatable() const { return MvccSnapshotRepeatable; }
+    bool IsMvccSnapshotRepeatable() const { return MvccSnapshotRepeatable_; }
     void SetMvccSnapshot(const TRowVersion& snapshot, bool isRepeatable = true) {
         MvccSnapshot = snapshot;
-        MvccSnapshotRepeatable = isRepeatable;
+        MvccSnapshotRepeatable_ = isRepeatable;
     }
 
+    bool IsProposeResultSentEarly() const { return ProposeResultSentEarly_; }
+    void SetProposeResultSentEarly(bool value = true) { ProposeResultSentEarly_ = value; }
+
     ///////////////////////////////////
     //     DEBUG AND MONITORING      //
     ///////////////////////////////////
@@ -429,7 +432,11 @@ class TBasicOpInfo {
 
     TSnapshotKey AcquiredSnapshotKey;
     TRowVersion MvccSnapshot = TRowVersion::Max();
-    bool MvccSnapshotRepeatable = false;
+
+private:
+    // Runtime flags
+    ui8 MvccSnapshotRepeatable_ : 1 = 0;
+    ui8 ProposeResultSentEarly_ : 1 = 0;
 };
 
 struct TRSData {
@@ -679,6 +686,7 @@ class TOperation
     const absl::flat_hash_set> &GetSpecialDependencies() const { return SpecialDependencies; }
     const absl::flat_hash_set> &GetPlannedConflicts() const { return PlannedConflicts; }
     const absl::flat_hash_set> &GetImmediateConflicts() const { return ImmediateConflicts; }
+    const absl::flat_hash_set> &GetRepeatableReadConflicts() const { return RepeatableReadConflicts; }
     const absl::flat_hash_set &GetVolatileDependencies() const { return VolatileDependencies; }
     bool HasVolatileDependencies() const { return !VolatileDependencies.empty(); }
     bool GetVolatileDependenciesAborted() const { return VolatileDependenciesAborted; }
@@ -696,6 +704,10 @@ class TOperation
     void ClearSpecialDependents();
     void ClearSpecialDependencies();
 
+    void AddRepeatableReadConflict(const TOperation::TPtr &op);
+    void PromoteRepeatableReadConflicts();
+    void ClearRepeatableReadConflicts();
+
     void AddVolatileDependency(ui64 txId);
     void RemoveVolatileDependency(ui64 txId, bool success);
     void ClearVolatileDependenciesAborted() { VolatileDependenciesAborted = false; }
@@ -812,6 +824,18 @@ class TOperation
         return OperationSpan.GetTraceId();
     }
 
+    /**
+     * Called when datashard is going to stop soon
+     *
+     * Operation may override this method to support sending notifications or
+     * results signalling that the operation will never complete. When result
+     * is sent operation is supposed to set its ResultSentFlag.
+     *
+     * When this method returns true the operation will be added to the
+     * pipeline as a candidate for execution.
+     */
+    virtual bool OnStopping(TDataShard& self, const TActorContext& ctx);
+
 protected:
     TOperation()
         : TOperation(TBasicOpInfo())
@@ -873,6 +897,7 @@ class TOperation
     absl::flat_hash_set> SpecialDependencies;
     absl::flat_hash_set> PlannedConflicts;
     absl::flat_hash_set> ImmediateConflicts;
+    absl::flat_hash_set> RepeatableReadConflicts;
     absl::flat_hash_set VolatileDependencies;
     bool VolatileDependenciesAborted = false;
     TVector ExecutionPlan;
diff --git a/ydb/core/tx/datashard/read_iterator.h b/ydb/core/tx/datashard/read_iterator.h
index 3ce26ec01220..71f853f9795c 100644
--- a/ydb/core/tx/datashard/read_iterator.h
+++ b/ydb/core/tx/datashard/read_iterator.h
@@ -179,7 +179,9 @@ struct TReadIteratorState {
 
     bool Reverse = false;
 
-    std::shared_ptr Request;
+    // The original event handle
+    TEvDataShard::TEvRead::TPtr Ev;
+    TEvDataShard::TEvRead* Request = nullptr;
 
     // parallel to Request->Keys, but real data only in indices,
     // where in Request->Keys we have key prefix (here we have properly extended one).
diff --git a/ydb/core/tx/datashard/read_table_scan.cpp b/ydb/core/tx/datashard/read_table_scan.cpp
index c622d23bcec4..bc0be6f68684 100644
--- a/ydb/core/tx/datashard/read_table_scan.cpp
+++ b/ydb/core/tx/datashard/read_table_scan.cpp
@@ -301,8 +301,9 @@ class TRowsToOldResult : public TRowsToResult {
 
 class TRowsToYdbResult : public TRowsToResult {
 public:
-    TRowsToYdbResult(const NKikimrTxDataShard::TReadTableTransaction& request)
+    TRowsToYdbResult(const NKikimrTxDataShard::TReadTableTransaction& request, bool allowNotNull)
         : TRowsToResult(request)
+        , AllowNotNull(allowNotNull)
     {
         BuildResultCommonPart(request);
         StartNewMessage();
@@ -345,16 +346,16 @@ class TRowsToYdbResult : public TRowsToResult {
                 pg->set_typlen(0);
                 pg->set_typmod(0);
             } else {
+                bool notNullResp = AllowNotNull && col.GetNotNull();
                 auto id = static_cast(col.GetTypeId());
+                auto xType = notNullResp ? meta->mutable_type() : meta->mutable_type()->mutable_optional_type()->mutable_item();
                 if (id == NYql::NProto::Decimal) {
-                    auto decimalType = meta->mutable_type()->mutable_optional_type()->mutable_item()
-                        ->mutable_decimal_type();
+                    auto decimalType = xType->mutable_decimal_type();
                     //TODO: Pass decimal params here
                     decimalType->set_precision(22);
                     decimalType->set_scale(9);
                 } else {
-                    meta->mutable_type()->mutable_optional_type()->mutable_item()
-                        ->set_type_id(static_cast(id));
+                    xType->set_type_id(static_cast(id));
                 }
             }
         }
@@ -363,6 +364,7 @@ class TRowsToYdbResult : public TRowsToResult {
     }
 
     Ydb::ResultSet YdbResultSet;
+    const bool AllowNotNull;
 };
 
 class TReadTableScan : public TActor, public NTable::IScan {
@@ -390,8 +392,14 @@ class TReadTableScan : public TActor, public NTable::IScan {
         , PendingAcks(0)
         , Finished(false)
     {
-        if (tx.HasApiVersion() && tx.GetApiVersion() == NKikimrTxUserProxy::TReadTableTransaction::YDB_V1) {
-            Writer = MakeHolder(tx);
+        if (tx.HasApiVersion()) {
+            if (tx.GetApiVersion() == NKikimrTxUserProxy::TReadTableTransaction::YDB_V1) {
+                Writer = MakeHolder(tx, false);
+            } else if (tx.GetApiVersion() == NKikimrTxUserProxy::TReadTableTransaction::YDB_V2) {
+                Writer = MakeHolder(tx, true);
+            } else {
+                Writer = MakeHolder(tx); 
+            }
         } else {
             Writer = MakeHolder(tx);
         }
diff --git a/ydb/core/tx/datashard/remove_schema_snapshots.cpp b/ydb/core/tx/datashard/remove_schema_snapshots.cpp
new file mode 100644
index 000000000000..fe63f30be61d
--- /dev/null
+++ b/ydb/core/tx/datashard/remove_schema_snapshots.cpp
@@ -0,0 +1,54 @@
+#include "datashard_impl.h"
+
+namespace NKikimr::NDataShard {
+
+class TDataShard::TTxRemoveSchemaSnapshots: public NTabletFlatExecutor::TTransactionBase {
+public:
+    TTxRemoveSchemaSnapshots(TDataShard* self)
+        : TBase(self)
+    { }
+
+    TTxType GetTxType() const override { return TXTYPE_REMOVE_SCHEMA_SNAPSHOTS; }
+
+    bool Execute(TTransactionContext& txc, const TActorContext&) override {
+        while (!Self->PendingSchemaSnapshotsToGc.empty()) {
+            const auto key = Self->PendingSchemaSnapshotsToGc.back();
+            const auto* snapshot = Self->GetSchemaSnapshotManager().FindSnapshot(key);
+
+            if (!snapshot) {
+                Self->PendingSchemaSnapshotsToGc.pop_back();
+                continue;
+            }
+
+            if (Self->GetSchemaSnapshotManager().HasReference(key)) {
+                Self->PendingSchemaSnapshotsToGc.pop_back();
+                continue;
+            }
+
+            auto table = Self->FindUserTable(TPathId(key.OwnerId, key.PathId));
+            if (!table) {
+                Self->PendingSchemaSnapshotsToGc.pop_back();
+                continue;
+            }
+
+            if (snapshot->Schema->GetTableSchemaVersion() >= table->GetTableSchemaVersion()) {
+                Self->PendingSchemaSnapshotsToGc.pop_back();
+                continue;
+            }
+
+            Self->GetSchemaSnapshotManager().RemoveShapshot(txc.DB, key);
+            Self->PendingSchemaSnapshotsToGc.pop_back();
+        }
+
+        return true;
+    }
+
+    void Complete(const TActorContext&) override {
+    }
+};
+
+void TDataShard::Handle(TEvPrivate::TEvRemoveSchemaSnapshots::TPtr&, const TActorContext& ctx) {
+    Execute(new TTxRemoveSchemaSnapshots(this), ctx);
+}
+
+} // namespace NKikimr::NDataShard
diff --git a/ydb/core/tx/datashard/store_and_send_out_rs_unit.cpp b/ydb/core/tx/datashard/store_and_send_out_rs_unit.cpp
index 71b429094464..e809c4209ce4 100644
--- a/ydb/core/tx/datashard/store_and_send_out_rs_unit.cpp
+++ b/ydb/core/tx/datashard/store_and_send_out_rs_unit.cpp
@@ -1,6 +1,7 @@
 #include "datashard_impl.h"
 #include "datashard_pipeline.h"
 #include "execution_unit_ctors.h"
+#include "datashard_locks_db.h"
 
 namespace NKikimr {
 namespace NDataShard {
@@ -62,7 +63,8 @@ EExecutionStatus TStoreAndSendOutRSUnit::Execute(TOperation::TPtr op,
             ui64 lockId = pr.first;
             auto lock = DataShard.SysLocksTable().GetRawLock(lockId, TRowVersion::Min());
             if (lock && lock->IsPersistent()) {
-                lock->SetFrozen();
+                TDataShardLocksDb locksDb(DataShard, txc);
+                lock->SetFrozen(&locksDb);
             }
         }
         tx->MarkLocksStored();
diff --git a/ydb/core/tx/datashard/sys_tables.h b/ydb/core/tx/datashard/sys_tables.h
index de3715000ffd..7378daf1e26c 100644
--- a/ydb/core/tx/datashard/sys_tables.h
+++ b/ydb/core/tx/datashard/sys_tables.h
@@ -30,6 +30,8 @@ struct TSysTables {
         TString DefaultFromSequence;
         EDefaultKind DefaultKind;
         Ydb::TypedValue DefaultFromLiteral;
+        bool IsBuildInProgress = false;
+        bool IsNotNullColumn = false; //maybe move into TTypeInfo?
 
         TTableColumnInfo() = default;
 
@@ -53,7 +55,7 @@ struct TSysTables {
             const TString& typeMod = {}, i32 keyOrder = -1,
             const TString& defaultFromSequence = {},
             EDefaultKind defaultKind = EDefaultKind::DEFAULT_UNDEFINED,
-            const Ydb::TypedValue& defaultFromLiteral = {})
+            const Ydb::TypedValue& defaultFromLiteral = {}, bool isBuildInProgress = false, bool isNotNullColumn = false)
             : Name(name)
             , Id(colId)
             , PType(type)
@@ -62,6 +64,8 @@ struct TSysTables {
             , DefaultFromSequence(defaultFromSequence)
             , DefaultKind(defaultKind)
             , DefaultFromLiteral(defaultFromLiteral)
+            , IsBuildInProgress(isBuildInProgress)
+            , IsNotNullColumn(isNotNullColumn)
         {}
     };
 
diff --git a/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.darwin-arm64.txt
index d307a249fc62..2eeb9e2017b2 100644
--- a/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_background_compaction PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_background_compaction PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_background_compaction.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.darwin-x86_64.txt
index 97b370f5a0b3..49ce3f6be1af 100644
--- a/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_background_compaction PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_background_compaction PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_background_compaction.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.linux-aarch64.txt
index e2c94c318373..a1c770f8e1d9 100644
--- a/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_background_compaction PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_background_compaction PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_background_compaction.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.linux-x86_64.txt
index cdbf022d6dd0..d5d9ce84d4af 100644
--- a/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_background_compaction PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_background_compaction PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_background_compaction.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.windows-x86_64.txt
index f8a1a5204bc3..2222c0c4f76b 100644
--- a/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_background_compaction/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_build_index/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_build_index/CMakeLists.darwin-arm64.txt
index efdcb2a82ac5..9933ab2e3e7b 100644
--- a/ydb/core/tx/datashard/ut_build_index/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_build_index/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_build_index PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_build_index PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_build_index.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_build_index/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_build_index/CMakeLists.darwin-x86_64.txt
index d94f2b640e91..e62e265a9970 100644
--- a/ydb/core/tx/datashard/ut_build_index/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_build_index/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_build_index PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_build_index PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_build_index.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_build_index/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_build_index/CMakeLists.linux-aarch64.txt
index cad1e2c1e914..8ff865be659d 100644
--- a/ydb/core/tx/datashard/ut_build_index/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_build_index/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_build_index PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_build_index PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_build_index.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_build_index/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_build_index/CMakeLists.linux-x86_64.txt
index 8f3ff5cc4926..e6fee890b2fd 100644
--- a/ydb/core/tx/datashard/ut_build_index/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_build_index/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_build_index PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_build_index PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_build_index.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_build_index/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_build_index/CMakeLists.windows-x86_64.txt
index 554ea3efb78c..0c6dbcbe5406 100644
--- a/ydb/core/tx/datashard/ut_build_index/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_build_index/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_change_collector/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_change_collector/CMakeLists.darwin-arm64.txt
index f026822e3c66..460a9de43d2c 100644
--- a/ydb/core/tx/datashard/ut_change_collector/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_change_collector/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_change_collector PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_change_collector PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_change_collector.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_change_collector/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_change_collector/CMakeLists.darwin-x86_64.txt
index a294b5be41b7..83f36f724ed9 100644
--- a/ydb/core/tx/datashard/ut_change_collector/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_change_collector/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_change_collector PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_change_collector PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_change_collector.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_change_collector/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_change_collector/CMakeLists.linux-aarch64.txt
index a1f58c31d5b3..8f9374ebdbac 100644
--- a/ydb/core/tx/datashard/ut_change_collector/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_change_collector/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_change_collector PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_change_collector PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_change_collector.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_change_collector/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_change_collector/CMakeLists.linux-x86_64.txt
index efbbb5b8a9cd..53f4f591fba7 100644
--- a/ydb/core/tx/datashard/ut_change_collector/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_change_collector/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_change_collector PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_change_collector PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_change_collector.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_change_collector/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_change_collector/CMakeLists.windows-x86_64.txt
index 457cc8393ec5..3030a20802d7 100644
--- a/ydb/core/tx/datashard/ut_change_collector/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_change_collector/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.darwin-arm64.txt
index 815a53bfd1ae..8b8ce5946724 100644
--- a/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.darwin-arm64.txt
@@ -37,8 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_change_exchange PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_change_exchange PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp
@@ -68,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.darwin-x86_64.txt
index 398673551ed0..9269cb495b99 100644
--- a/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.darwin-x86_64.txt
@@ -38,8 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_change_exchange PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_change_exchange PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp
@@ -69,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.linux-aarch64.txt
index 97103937998a..148100a2574c 100644
--- a/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.linux-aarch64.txt
@@ -40,9 +40,6 @@ target_link_options(ydb-core-tx-datashard-ut_change_exchange PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_change_exchange PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp
@@ -72,6 +69,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.linux-x86_64.txt
index 937bf9b9a6f5..0ca25690c7b9 100644
--- a/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.linux-x86_64.txt
@@ -41,9 +41,6 @@ target_link_options(ydb-core-tx-datashard-ut_change_exchange PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_change_exchange PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_change_exchange.cpp
@@ -73,6 +70,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.windows-x86_64.txt
index acba1fbce12b..a7bcf14a3cda 100644
--- a/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_change_exchange/CMakeLists.windows-x86_64.txt
@@ -62,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_common/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_common/CMakeLists.darwin-arm64.txt
index 773aa90c43ee..fc5bca702ee5 100644
--- a/ydb/core/tx/datashard/ut_common/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_common/CMakeLists.darwin-arm64.txt
@@ -18,5 +18,6 @@ target_link_libraries(tx-datashard-ut_common PUBLIC
   kqp-ut-common
 )
 target_sources(tx-datashard-ut_common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_common/datashard_ut_common.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_common/datashard_ut_common.cpp
 )
diff --git a/ydb/core/tx/datashard/ut_common/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_common/CMakeLists.darwin-x86_64.txt
index 773aa90c43ee..fc5bca702ee5 100644
--- a/ydb/core/tx/datashard/ut_common/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_common/CMakeLists.darwin-x86_64.txt
@@ -18,5 +18,6 @@ target_link_libraries(tx-datashard-ut_common PUBLIC
   kqp-ut-common
 )
 target_sources(tx-datashard-ut_common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_common/datashard_ut_common.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_common/datashard_ut_common.cpp
 )
diff --git a/ydb/core/tx/datashard/ut_common/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_common/CMakeLists.linux-aarch64.txt
index 20d9a03406a7..56496b049d39 100644
--- a/ydb/core/tx/datashard/ut_common/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_common/CMakeLists.linux-aarch64.txt
@@ -19,5 +19,6 @@ target_link_libraries(tx-datashard-ut_common PUBLIC
   kqp-ut-common
 )
 target_sources(tx-datashard-ut_common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_common/datashard_ut_common.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_common/datashard_ut_common.cpp
 )
diff --git a/ydb/core/tx/datashard/ut_common/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_common/CMakeLists.linux-x86_64.txt
index 20d9a03406a7..56496b049d39 100644
--- a/ydb/core/tx/datashard/ut_common/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_common/CMakeLists.linux-x86_64.txt
@@ -19,5 +19,6 @@ target_link_libraries(tx-datashard-ut_common PUBLIC
   kqp-ut-common
 )
 target_sources(tx-datashard-ut_common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_common/datashard_ut_common.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_common/datashard_ut_common.cpp
 )
diff --git a/ydb/core/tx/datashard/ut_common/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_common/CMakeLists.windows-x86_64.txt
index 773aa90c43ee..fc5bca702ee5 100644
--- a/ydb/core/tx/datashard/ut_common/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_common/CMakeLists.windows-x86_64.txt
@@ -18,5 +18,6 @@ target_link_libraries(tx-datashard-ut_common PUBLIC
   kqp-ut-common
 )
 target_sources(tx-datashard-ut_common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_common/datashard_ut_common.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_common/datashard_ut_common.cpp
 )
diff --git a/ydb/core/tx/datashard/ut_common/datashard_ut_common.cpp b/ydb/core/tx/datashard/ut_common/datashard_ut_common.cpp
index f4e34337edf9..6e2bc0886f64 100644
--- a/ydb/core/tx/datashard/ut_common/datashard_ut_common.cpp
+++ b/ydb/core/tx/datashard/ut_common/datashard_ut_common.cpp
@@ -1,6 +1,7 @@
 #include "datashard_ut_common.h"
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -1274,6 +1275,15 @@ NKikimrTxDataShard::TEvCompactTableResult CompactTable(
     return ev->Get()->Record;
 }
 
+NKikimrTxDataShard::TEvCompactBorrowedResult CompactBorrowed(TTestActorRuntime& runtime, ui64 shardId, const TTableId& tableId) {
+    auto request = MakeHolder(tableId.PathId);
+    auto sender = runtime.AllocateEdgeActor();
+    runtime.SendToPipe(shardId, sender, request.Release(), 0, GetPipeConfigWithRetries());
+
+    auto ev = runtime.GrabEdgeEventRethrow(sender);
+    return ev->Get()->Record;
+}
+
 std::pair GetTables(
     Tests::TServer::TPtr server,
     ui64 tabletId)
@@ -1736,6 +1746,34 @@ void WaitTxNotification(Tests::TServer::TPtr server, ui64 txId) {
     WaitTxNotification(server, sender, txId);
 }
 
+NKikimrTxDataShard::TEvPeriodicTableStats WaitTableStats(TTestActorRuntime& runtime, ui64 tabletId, ui64 minPartCount, ui64 minRows) {
+    NKikimrTxDataShard::TEvPeriodicTableStats stats;
+    bool captured = false;
+
+    auto observer = runtime.AddObserver([&](auto& ev) {
+        const auto& record = ev->Get()->Record;
+        if (record.GetDatashardId() == tabletId) {
+            Cerr << "Captured TEvDataShard::TEvPeriodicTableStats " << record.ShortDebugString() << Endl;
+            if (record.GetTableStats().GetPartCount() >= minPartCount && record.GetTableStats().GetRowCount() >= minRows) {
+                stats = record;
+                captured = true;
+            }
+        }
+    });
+
+    for (int i = 0; i < 5 && !captured; ++i) {
+        TDispatchOptions options;
+        options.CustomFinalCondition = [&]() { return captured; };
+        runtime.DispatchEvents(options, TDuration::Seconds(5));
+    }
+
+    observer.Remove();
+
+    UNIT_ASSERT(captured);
+
+    return stats;
+}
+
 void SimulateSleep(Tests::TServer::TPtr server, TDuration duration) {
     auto &runtime = *server->GetRuntime();
     SimulateSleep(runtime, duration);
@@ -1835,7 +1873,7 @@ std::unique_ptr MakeWriteRequest(ui64 txId, NKik
     UNIT_ASSERT(blobData.size() < 8_MB);
 
     auto evWrite = std::make_unique(txId, txMode);
-    ui64 payloadIndex = NKikimr::NEvWrite::TPayloadHelper(*evWrite).AddDataToPayload(std::move(blobData));
+    ui64 payloadIndex = NKikimr::NEvWrite::TPayloadWriter(*evWrite).AddDataToPayload(std::move(blobData));
     evWrite->AddOperation(NKikimrDataEvents::TEvWrite::TOperation::OPERATION_UPSERT, tableId, columnIds, payloadIndex, NKikimrDataEvents::FORMAT_CELLVEC);
 
     return evWrite;
@@ -1936,7 +1974,7 @@ TTestActorRuntimeBase::TEventObserverHolderPair ReplaceEvProposeTransactionWithE
         std::iota(columnIds.begin(), columnIds.end(), 1);
 
         auto evWrite = std::make_unique(txId, txMode);
-        ui64 payloadIndex = NKikimr::NEvWrite::TPayloadHelper(*evWrite).AddDataToPayload(std::move(blobData));
+        ui64 payloadIndex = NKikimr::NEvWrite::TPayloadWriter(*evWrite).AddDataToPayload(std::move(blobData));
         evWrite->AddOperation(NKikimrDataEvents::TEvWrite::TOperation::OPERATION_UPSERT, tableId, columnIds, payloadIndex, NKikimrDataEvents::FORMAT_CELLVEC);
 
         // Copy locks
@@ -2274,4 +2312,22 @@ TString ReadShardedTable(
     return StartReadShardedTable(server, path, snapshot, /* pause = */ false).Result;
 }
 
+void SendViaPipeCache(
+    TTestActorRuntime& runtime,
+    ui64 tabletId, const TActorId& sender,
+    std::unique_ptr msg,
+    const TSendViaPipeCacheOptions& options)
+{
+    ui32 nodeIndex = sender.NodeId() - runtime.GetNodeId(0);
+    runtime.Send(
+        new IEventHandle(
+            MakePipePeNodeCacheID(options.Follower),
+            sender,
+            new TEvPipeCache::TEvForward(msg.release(), tabletId, options.Subscribe),
+            options.Flags,
+            options.Cookie),
+        nodeIndex,
+        /* viaActorSystem */ true);
+}
+
 }
diff --git a/ydb/core/tx/datashard/ut_common/datashard_ut_common.h b/ydb/core/tx/datashard/ut_common/datashard_ut_common.h
index 6b2482cd90c3..450164a88a21 100644
--- a/ydb/core/tx/datashard/ut_common/datashard_ut_common.h
+++ b/ydb/core/tx/datashard/ut_common/datashard_ut_common.h
@@ -524,6 +524,9 @@ ui64 AsyncCreateCopyTable(Tests::TServer::TPtr server,
 NKikimrTxDataShard::TEvCompactTableResult CompactTable(
     TTestActorRuntime& runtime, ui64 shardId, const TTableId& tableId, bool compactBorrowed = false);
 
+NKikimrTxDataShard::TEvCompactBorrowedResult CompactBorrowed(
+    TTestActorRuntime& runtime, ui64 shardId, const TTableId& tableId);
+
 using TTableInfoMap = THashMap;
 
 std::pair GetTables(Tests::TServer::TPtr server,
@@ -684,6 +687,8 @@ TString ReadShardedTable(
 void WaitTxNotification(Tests::TServer::TPtr server, TActorId sender, ui64 txId);
 void WaitTxNotification(Tests::TServer::TPtr server, ui64 txId);
 
+NKikimrTxDataShard::TEvPeriodicTableStats WaitTableStats(TTestActorRuntime& runtime, ui64 tabletId, ui64 minPartCount = 0, ui64 minRows = 0);
+
 void SimulateSleep(Tests::TServer::TPtr server, TDuration duration);
 void SimulateSleep(TTestActorRuntime& runtime, TDuration duration);
 
@@ -798,4 +803,17 @@ void WaitFor(TTestActorRuntime& runtime, TCondition&& condition, const TString&
     UNIT_ASSERT_C(condition(), "... failed to wait for " << description);
 }
 
+struct TSendViaPipeCacheOptions {
+    ui32 Flags = 0;
+    ui64 Cookie = 0;
+    bool Follower = false;
+    bool Subscribe = false;
+};
+
+void SendViaPipeCache(
+    TTestActorRuntime& runtime,
+    ui64 tabletId, const TActorId& sender,
+    std::unique_ptr msg,
+    const TSendViaPipeCacheOptions& options = {});
+
 }
diff --git a/ydb/core/tx/datashard/ut_compaction/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_compaction/CMakeLists.darwin-arm64.txt
index 5d3faa3b5d4b..1bcabfefc24a 100644
--- a/ydb/core/tx/datashard/ut_compaction/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_compaction/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_compaction PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_compaction PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_compaction.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_compaction/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_compaction/CMakeLists.darwin-x86_64.txt
index 0ed7fc7bea67..731215793d47 100644
--- a/ydb/core/tx/datashard/ut_compaction/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_compaction/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_compaction PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_compaction PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_compaction.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_compaction/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_compaction/CMakeLists.linux-aarch64.txt
index 04ee77c32525..cf01f5814cac 100644
--- a/ydb/core/tx/datashard/ut_compaction/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_compaction/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_compaction PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_compaction PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_compaction.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_compaction/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_compaction/CMakeLists.linux-x86_64.txt
index 4f0ad0856e7f..755eed85090a 100644
--- a/ydb/core/tx/datashard/ut_compaction/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_compaction/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_compaction PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_compaction PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_compaction.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_compaction/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_compaction/CMakeLists.windows-x86_64.txt
index 6e753185b271..3104b5ac854f 100644
--- a/ydb/core/tx/datashard/ut_compaction/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_compaction/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.darwin-arm64.txt
index 55cb9b48d61c..cf6161d86935 100644
--- a/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_erase_rows PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_erase_rows PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_erase_rows.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.darwin-x86_64.txt
index 2529a39824f6..dedafa296ab9 100644
--- a/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_erase_rows PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_erase_rows PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_erase_rows.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.linux-aarch64.txt
index 726d3e8d66fe..a7a8cfcedc74 100644
--- a/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_erase_rows PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_erase_rows PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_erase_rows.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.linux-x86_64.txt
index 81d84708c368..0b9c19379e0c 100644
--- a/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_erase_rows PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_erase_rows PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_erase_rows.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.windows-x86_64.txt
index 19c099356230..3551a35e3000 100644
--- a/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_erase_rows/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_followers/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_followers/CMakeLists.darwin-arm64.txt
index 529db4e22405..781f4c495057 100644
--- a/ydb/core/tx/datashard/ut_followers/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_followers/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_followers PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_followers PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_followers.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_followers/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_followers/CMakeLists.darwin-x86_64.txt
index 8dd8b9389b87..54241baaadc4 100644
--- a/ydb/core/tx/datashard/ut_followers/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_followers/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_followers PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_followers PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_followers.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_followers/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_followers/CMakeLists.linux-aarch64.txt
index c4168379ab24..948c2c7127fd 100644
--- a/ydb/core/tx/datashard/ut_followers/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_followers/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_followers PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_followers PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_followers.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_followers/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_followers/CMakeLists.linux-x86_64.txt
index cdb702199067..89a20f7d85ac 100644
--- a/ydb/core/tx/datashard/ut_followers/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_followers/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_followers PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_followers PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_followers.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_followers/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_followers/CMakeLists.windows-x86_64.txt
index 38026f7aa0b5..fe0bc10a3e7f 100644
--- a/ydb/core/tx/datashard/ut_followers/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_followers/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_init/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_init/CMakeLists.darwin-arm64.txt
index f9ba79047953..df367128c86d 100644
--- a/ydb/core/tx/datashard/ut_init/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_init/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_init PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_init PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_init.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_init/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_init/CMakeLists.darwin-x86_64.txt
index f61001cb4f31..406b047c8017 100644
--- a/ydb/core/tx/datashard/ut_init/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_init/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_init PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_init PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_init.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_init/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_init/CMakeLists.linux-aarch64.txt
index 9403c3868c15..127a2e46ebdd 100644
--- a/ydb/core/tx/datashard/ut_init/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_init/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_init PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_init PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_init.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_init/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_init/CMakeLists.linux-x86_64.txt
index d8badfa873ff..4cebdab724c6 100644
--- a/ydb/core/tx/datashard/ut_init/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_init/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_init PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_init PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_init.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_init/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_init/CMakeLists.windows-x86_64.txt
index ed67da876da4..bbdf5db23fa5 100644
--- a/ydb/core/tx/datashard/ut_init/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_init/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_keys/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_keys/CMakeLists.darwin-arm64.txt
index dff0b516259d..1b5f07db1d63 100644
--- a/ydb/core/tx/datashard/ut_keys/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_keys/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_keys PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_keys PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_keys.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_keys/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_keys/CMakeLists.darwin-x86_64.txt
index 69d3004eab48..7a3940e32c59 100644
--- a/ydb/core/tx/datashard/ut_keys/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_keys/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_keys PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_keys PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_keys.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_keys/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_keys/CMakeLists.linux-aarch64.txt
index c129bcd3c987..db547f6ea9e4 100644
--- a/ydb/core/tx/datashard/ut_keys/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_keys/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_keys PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_keys PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_keys.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_keys/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_keys/CMakeLists.linux-x86_64.txt
index b2f599106be4..97598da27e6e 100644
--- a/ydb/core/tx/datashard/ut_keys/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_keys/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_keys PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_keys PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_keys.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_keys/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_keys/CMakeLists.windows-x86_64.txt
index 9f8b19214de8..2ba632427b09 100644
--- a/ydb/core/tx/datashard/ut_keys/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_keys/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_kqp/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_kqp/CMakeLists.darwin-arm64.txt
index f61c7e666306..323e60a0dae5 100644
--- a/ydb/core/tx/datashard/ut_kqp/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_kqp/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_kqp PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_kqp PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_kqp/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_kqp/CMakeLists.darwin-x86_64.txt
index 6522bfa0cb4b..db36ab9aec67 100644
--- a/ydb/core/tx/datashard/ut_kqp/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_kqp/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_kqp PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_kqp PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp.cpp
@@ -67,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_kqp/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_kqp/CMakeLists.linux-aarch64.txt
index 12c982f061fa..efb1d4700e30 100644
--- a/ydb/core/tx/datashard/ut_kqp/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_kqp/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_kqp PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_kqp PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_kqp/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_kqp/CMakeLists.linux-x86_64.txt
index f6bbe0cc031e..21c90c464adc 100644
--- a/ydb/core/tx/datashard/ut_kqp/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_kqp/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_kqp PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_kqp PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp.cpp
@@ -71,6 +68,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_kqp/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_kqp/CMakeLists.windows-x86_64.txt
index 15a05d62f367..4068546e929c 100644
--- a/ydb/core/tx/datashard/ut_kqp/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_kqp/CMakeLists.windows-x86_64.txt
@@ -60,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.darwin-arm64.txt
index b6f3657f644f..c0675f45c8ce 100644
--- a/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_kqp_errors PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_kqp_errors PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp_errors.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.darwin-x86_64.txt
index b5a8d290195d..c2f0c7cad85a 100644
--- a/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_kqp_errors PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_kqp_errors PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp_errors.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.linux-aarch64.txt
index cb0734d034a8..46207473804a 100644
--- a/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_kqp_errors PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_kqp_errors PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp_errors.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.linux-x86_64.txt
index 54052ffeda26..af73fff8287c 100644
--- a/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_kqp_errors PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_kqp_errors PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp_errors.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.windows-x86_64.txt
index dd3c24d13311..3821b31bc666 100644
--- a/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_kqp_errors/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.darwin-arm64.txt
index 289425f21b19..6bf768092a9e 100644
--- a/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_kqp_scan PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_kqp_scan PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp_scan.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.darwin-x86_64.txt
index afbc6340312a..9629db5eba04 100644
--- a/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_kqp_scan PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_kqp_scan PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp_scan.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.linux-aarch64.txt
index ec719c0c47b9..1f713a0d415c 100644
--- a/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_kqp_scan PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_kqp_scan PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp_scan.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.linux-x86_64.txt
index a23a37eef6ec..af159f54f441 100644
--- a/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_kqp_scan PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_kqp_scan PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_kqp_scan.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.windows-x86_64.txt
index b712c5069225..21f32fe247b1 100644
--- a/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_kqp_scan/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_locks/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_locks/CMakeLists.darwin-arm64.txt
index 9ced346b42e0..567549dd0ff7 100644
--- a/ydb/core/tx/datashard/ut_locks/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_locks/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_locks PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_locks PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_locks.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_locks/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_locks/CMakeLists.darwin-x86_64.txt
index a93e05b5e2ec..c69e20c2b062 100644
--- a/ydb/core/tx/datashard/ut_locks/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_locks/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_locks PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_locks PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_locks.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_locks/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_locks/CMakeLists.linux-aarch64.txt
index dec4ec9ef72f..6c1a6637b827 100644
--- a/ydb/core/tx/datashard/ut_locks/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_locks/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_locks PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_locks PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_locks.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_locks/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_locks/CMakeLists.linux-x86_64.txt
index a5813f190a5f..332c6881c04f 100644
--- a/ydb/core/tx/datashard/ut_locks/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_locks/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_locks PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_locks PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_locks.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_locks/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_locks/CMakeLists.windows-x86_64.txt
index 33e0fe353d15..71dac22b9e02 100644
--- a/ydb/core/tx/datashard/ut_locks/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_locks/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_minikql/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_minikql/CMakeLists.darwin-arm64.txt
index 1669c7d6462a..c5caee92bb3d 100644
--- a/ydb/core/tx/datashard/ut_minikql/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_minikql/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_minikql PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_minikql PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_minikql.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_minikql/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_minikql/CMakeLists.darwin-x86_64.txt
index f2badd8b1799..0388b86476ae 100644
--- a/ydb/core/tx/datashard/ut_minikql/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_minikql/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_minikql PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_minikql PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_minikql.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_minikql/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_minikql/CMakeLists.linux-aarch64.txt
index f994d8fa1c36..9da0259eaec3 100644
--- a/ydb/core/tx/datashard/ut_minikql/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_minikql/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_minikql PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_minikql PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_minikql.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_minikql/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_minikql/CMakeLists.linux-x86_64.txt
index b6dd12d591f1..1d77618e782f 100644
--- a/ydb/core/tx/datashard/ut_minikql/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_minikql/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_minikql PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_minikql PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_minikql.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_minikql/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_minikql/CMakeLists.windows-x86_64.txt
index d9a1eefb472b..660161eeaa49 100644
--- a/ydb/core/tx/datashard/ut_minikql/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_minikql/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_minstep/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_minstep/CMakeLists.darwin-arm64.txt
index ab81530e0478..fe9c9383b230 100644
--- a/ydb/core/tx/datashard/ut_minstep/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_minstep/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_minstep PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_minstep PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_minstep.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_minstep/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_minstep/CMakeLists.darwin-x86_64.txt
index 10c0f1c7c3dc..98e5e74cf55e 100644
--- a/ydb/core/tx/datashard/ut_minstep/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_minstep/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_minstep PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_minstep PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_minstep.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_minstep/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_minstep/CMakeLists.linux-aarch64.txt
index f6a3170f4dea..9f31c294880c 100644
--- a/ydb/core/tx/datashard/ut_minstep/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_minstep/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_minstep PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_minstep PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_minstep.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_minstep/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_minstep/CMakeLists.linux-x86_64.txt
index a78cfcc0bd27..65440eb2d6a6 100644
--- a/ydb/core/tx/datashard/ut_minstep/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_minstep/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_minstep PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_minstep PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_minstep.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_minstep/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_minstep/CMakeLists.windows-x86_64.txt
index db7c86e808b6..293c085498dc 100644
--- a/ydb/core/tx/datashard/ut_minstep/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_minstep/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_order/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_order/CMakeLists.darwin-arm64.txt
index cca65e2ce960..0e4fc8567b84 100644
--- a/ydb/core/tx/datashard/ut_order/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_order/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_order PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_order PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_order.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_order/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_order/CMakeLists.darwin-x86_64.txt
index 513049b8daaf..82ea829f2226 100644
--- a/ydb/core/tx/datashard/ut_order/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_order/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_order PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_order PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_order.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_order/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_order/CMakeLists.linux-aarch64.txt
index bd3a1f34364d..d8b519c47831 100644
--- a/ydb/core/tx/datashard/ut_order/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_order/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_order PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_order PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_order.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_order/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_order/CMakeLists.linux-x86_64.txt
index 9e8524bd4578..bc386c7ade87 100644
--- a/ydb/core/tx/datashard/ut_order/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_order/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_order PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_order PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_order.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_order/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_order/CMakeLists.windows-x86_64.txt
index 4658f34a6494..4cc6e71279e8 100644
--- a/ydb/core/tx/datashard/ut_order/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_order/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.darwin-arm64.txt
index e7d3955f53f9..d766fc8b6343 100644
--- a/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_range_avl_tree PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_range_avl_tree PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/range_avl_tree_ut.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.darwin-x86_64.txt
index 8bc223982387..0b9d23869933 100644
--- a/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_range_avl_tree PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_range_avl_tree PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/range_avl_tree_ut.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.linux-aarch64.txt
index 9cabb66c1eee..f051347a3192 100644
--- a/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_range_avl_tree PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_range_avl_tree PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/range_avl_tree_ut.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.linux-x86_64.txt
index 091e31789905..f187981aa005 100644
--- a/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_range_avl_tree PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_range_avl_tree PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/range_avl_tree_ut.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.windows-x86_64.txt
index 6329299a68d7..fc89ecc1e5cf 100644
--- a/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_range_avl_tree/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_range_ops/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_range_ops/CMakeLists.darwin-arm64.txt
index 98b220052900..5b533846f369 100644
--- a/ydb/core/tx/datashard/ut_range_ops/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_range_ops/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_range_ops PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_range_ops PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_range_ops.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_range_ops/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_range_ops/CMakeLists.darwin-x86_64.txt
index 97e2adfcf11a..4d8eab865410 100644
--- a/ydb/core/tx/datashard/ut_range_ops/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_range_ops/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_range_ops PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_range_ops PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_range_ops.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_range_ops/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_range_ops/CMakeLists.linux-aarch64.txt
index 535320417eef..4afab54ee000 100644
--- a/ydb/core/tx/datashard/ut_range_ops/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_range_ops/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_range_ops PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_range_ops PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_range_ops.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_range_ops/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_range_ops/CMakeLists.linux-x86_64.txt
index 7a3c1c1e8d09..fac306efab06 100644
--- a/ydb/core/tx/datashard/ut_range_ops/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_range_ops/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_range_ops PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_range_ops PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_range_ops.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_range_ops/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_range_ops/CMakeLists.windows-x86_64.txt
index b0f9560f5c34..54ec0311de48 100644
--- a/ydb/core/tx/datashard/ut_range_ops/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_range_ops/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_range_treap/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_range_treap/CMakeLists.darwin-arm64.txt
index dcf8838cd46f..bc7705dc6a7e 100644
--- a/ydb/core/tx/datashard/ut_range_treap/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_range_treap/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_range_treap PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_range_treap PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/range_treap_ut.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_range_treap/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_range_treap/CMakeLists.darwin-x86_64.txt
index 89c959394de8..48cd4a563b02 100644
--- a/ydb/core/tx/datashard/ut_range_treap/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_range_treap/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_range_treap PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_range_treap PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/range_treap_ut.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_range_treap/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_range_treap/CMakeLists.linux-aarch64.txt
index 10b1d8272c45..4288fbb3e39d 100644
--- a/ydb/core/tx/datashard/ut_range_treap/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_range_treap/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_range_treap PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_range_treap PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/range_treap_ut.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_range_treap/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_range_treap/CMakeLists.linux-x86_64.txt
index ce18da096f0f..d42117cfbb70 100644
--- a/ydb/core/tx/datashard/ut_range_treap/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_range_treap/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_range_treap PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_range_treap PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/range_treap_ut.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_range_treap/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_range_treap/CMakeLists.windows-x86_64.txt
index 66ad767b6592..305eaf27447c 100644
--- a/ydb/core/tx/datashard/ut_range_treap/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_range_treap/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.darwin-arm64.txt
index 222b8d26bb0d..7f474a4a6462 100644
--- a/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_read_iterator PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_read_iterator PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_read_iterator.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.darwin-x86_64.txt
index c667c8e5b20e..3e31333eb235 100644
--- a/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_read_iterator PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_read_iterator PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_read_iterator.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.linux-aarch64.txt
index 3eebce3873ff..2b3dac3281ee 100644
--- a/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_read_iterator PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_read_iterator PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_read_iterator.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.linux-x86_64.txt
index a35c7512809e..d6e75d03fa41 100644
--- a/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_read_iterator PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_read_iterator PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_read_iterator.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.windows-x86_64.txt
index fb85011ef83b..23cdcd4786f8 100644
--- a/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_read_iterator/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_read_table/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_read_table/CMakeLists.darwin-arm64.txt
index 099e41a2cc5a..b2484df41b8d 100644
--- a/ydb/core/tx/datashard/ut_read_table/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_read_table/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_read_table PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_read_table PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_read_table.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_read_table/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_read_table/CMakeLists.darwin-x86_64.txt
index 7652fcf9af31..cb44106a82a2 100644
--- a/ydb/core/tx/datashard/ut_read_table/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_read_table/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_read_table PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_read_table PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_read_table.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_read_table/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_read_table/CMakeLists.linux-aarch64.txt
index 991958b30f09..c7e453b9873f 100644
--- a/ydb/core/tx/datashard/ut_read_table/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_read_table/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_read_table PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_read_table PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_read_table.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_read_table/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_read_table/CMakeLists.linux-x86_64.txt
index b2600796b49b..29a629e8daa3 100644
--- a/ydb/core/tx/datashard/ut_read_table/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_read_table/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_read_table PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_read_table PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_read_table.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_read_table/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_read_table/CMakeLists.windows-x86_64.txt
index 7aadb70c32d2..f06124181f5b 100644
--- a/ydb/core/tx/datashard/ut_read_table/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_read_table/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_reassign/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_reassign/CMakeLists.darwin-arm64.txt
index ac8b74a1163c..5013df8ccd7a 100644
--- a/ydb/core/tx/datashard/ut_reassign/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_reassign/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_reassign PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_reassign PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_reassign.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_reassign/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_reassign/CMakeLists.darwin-x86_64.txt
index 800338eee944..d5542a1b0bd8 100644
--- a/ydb/core/tx/datashard/ut_reassign/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_reassign/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_reassign PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_reassign PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_reassign.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_reassign/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_reassign/CMakeLists.linux-aarch64.txt
index 11fafdeaef3d..5bc826d02e53 100644
--- a/ydb/core/tx/datashard/ut_reassign/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_reassign/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_reassign PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_reassign PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_reassign.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_reassign/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_reassign/CMakeLists.linux-x86_64.txt
index fc828f0f2bc2..f0d7a2c349a6 100644
--- a/ydb/core/tx/datashard/ut_reassign/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_reassign/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_reassign PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_reassign PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_reassign.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_reassign/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_reassign/CMakeLists.windows-x86_64.txt
index eeaa1bc7edf7..f8a0456962b9 100644
--- a/ydb/core/tx/datashard/ut_reassign/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_reassign/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_replication/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_replication/CMakeLists.darwin-arm64.txt
index eebb17dd4ea7..af5d35c8d657 100644
--- a/ydb/core/tx/datashard/ut_replication/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_replication/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_replication PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_replication PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_replication.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_replication/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_replication/CMakeLists.darwin-x86_64.txt
index 4ad0509c4ea9..b5b82e3514e4 100644
--- a/ydb/core/tx/datashard/ut_replication/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_replication/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_replication PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_replication PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_replication.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_replication/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_replication/CMakeLists.linux-aarch64.txt
index 90ec39951631..58e93da46a80 100644
--- a/ydb/core/tx/datashard/ut_replication/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_replication/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_replication PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_replication PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_replication.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_replication/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_replication/CMakeLists.linux-x86_64.txt
index bafcfa2da3b6..e6a53a56ff41 100644
--- a/ydb/core/tx/datashard/ut_replication/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_replication/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_replication PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_replication PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_replication.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_replication/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_replication/CMakeLists.windows-x86_64.txt
index c979524668e1..9de835d84d12 100644
--- a/ydb/core/tx/datashard/ut_replication/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_replication/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_rs/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_rs/CMakeLists.darwin-arm64.txt
index 38f169c237aa..c4ed0c491c88 100644
--- a/ydb/core/tx/datashard/ut_rs/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_rs/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_rs PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_rs PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_rs.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_rs/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_rs/CMakeLists.darwin-x86_64.txt
index 4bed9467bef7..9ac330fbde0e 100644
--- a/ydb/core/tx/datashard/ut_rs/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_rs/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_rs PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_rs PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_rs.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_rs/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_rs/CMakeLists.linux-aarch64.txt
index a2ede653b6fd..5c2cb61fb187 100644
--- a/ydb/core/tx/datashard/ut_rs/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_rs/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_rs PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_rs PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_rs.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_rs/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_rs/CMakeLists.linux-x86_64.txt
index 4d21061c51d7..dca054990ab5 100644
--- a/ydb/core/tx/datashard/ut_rs/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_rs/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_rs PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_rs PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_rs.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_rs/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_rs/CMakeLists.windows-x86_64.txt
index f02c3ee328e9..f39a73a51724 100644
--- a/ydb/core/tx/datashard/ut_rs/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_rs/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_sequence/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_sequence/CMakeLists.darwin-arm64.txt
index 534574719227..750cf43b17b2 100644
--- a/ydb/core/tx/datashard/ut_sequence/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_sequence/CMakeLists.darwin-arm64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_sequence PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_sequence PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_sequence/datashard_ut_sequence.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_sequence/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_sequence/CMakeLists.darwin-x86_64.txt
index 9708a3ad1287..82edde5a8552 100644
--- a/ydb/core/tx/datashard/ut_sequence/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_sequence/CMakeLists.darwin-x86_64.txt
@@ -36,8 +36,6 @@ target_link_options(ydb-core-tx-datashard-ut_sequence PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_sequence PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_sequence/datashard_ut_sequence.cpp
@@ -67,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_sequence/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_sequence/CMakeLists.linux-aarch64.txt
index e91c55b8e1b2..8f2724b75c13 100644
--- a/ydb/core/tx/datashard/ut_sequence/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_sequence/CMakeLists.linux-aarch64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_sequence PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_sequence PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_sequence/datashard_ut_sequence.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_sequence/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_sequence/CMakeLists.linux-x86_64.txt
index d46b1156845d..fa5c81238648 100644
--- a/ydb/core/tx/datashard/ut_sequence/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_sequence/CMakeLists.linux-x86_64.txt
@@ -39,9 +39,6 @@ target_link_options(ydb-core-tx-datashard-ut_sequence PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_sequence PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/ut_sequence/datashard_ut_sequence.cpp
@@ -71,6 +68,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_sequence/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_sequence/CMakeLists.windows-x86_64.txt
index a47972c4efe4..3021ad647202 100644
--- a/ydb/core/tx/datashard/ut_sequence/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_sequence/CMakeLists.windows-x86_64.txt
@@ -60,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_snapshot/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_snapshot/CMakeLists.darwin-arm64.txt
index f390347dea6f..cbf6a853c75a 100644
--- a/ydb/core/tx/datashard/ut_snapshot/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_snapshot/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_snapshot PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_snapshot PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_snapshot.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_snapshot/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_snapshot/CMakeLists.darwin-x86_64.txt
index 4c4dc8d3964d..f532bb344d84 100644
--- a/ydb/core/tx/datashard/ut_snapshot/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_snapshot/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_snapshot PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_snapshot PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_snapshot.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_snapshot/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_snapshot/CMakeLists.linux-aarch64.txt
index e954529fad33..7fdf23ad9220 100644
--- a/ydb/core/tx/datashard/ut_snapshot/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_snapshot/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_snapshot PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_snapshot PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_snapshot.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_snapshot/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_snapshot/CMakeLists.linux-x86_64.txt
index 4479ad2b1c29..6f89cf7f9adc 100644
--- a/ydb/core/tx/datashard/ut_snapshot/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_snapshot/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_snapshot PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_snapshot PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_snapshot.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_snapshot/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_snapshot/CMakeLists.windows-x86_64.txt
index 27770f865ca3..eda018dc4e87 100644
--- a/ydb/core/tx/datashard/ut_snapshot/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_snapshot/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_stats/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_stats/CMakeLists.darwin-arm64.txt
index bb0d48bfcf7f..3be752b9d1b7 100644
--- a/ydb/core/tx/datashard/ut_stats/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_stats/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_stats PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_stats PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_stats.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_stats/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_stats/CMakeLists.darwin-x86_64.txt
index 7510211d98c8..f826a3f80406 100644
--- a/ydb/core/tx/datashard/ut_stats/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_stats/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_stats PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_stats PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_stats.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_stats/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_stats/CMakeLists.linux-aarch64.txt
index 785c6913fcbd..f05d90fa4e5a 100644
--- a/ydb/core/tx/datashard/ut_stats/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_stats/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_stats PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_stats PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_stats.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_stats/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_stats/CMakeLists.linux-x86_64.txt
index 21875d710b7a..baa2932ee622 100644
--- a/ydb/core/tx/datashard/ut_stats/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_stats/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_stats PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_stats PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_stats.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_stats/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_stats/CMakeLists.windows-x86_64.txt
index cb09a13d3d32..44a7dcf9d212 100644
--- a/ydb/core/tx/datashard/ut_stats/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_stats/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_trace/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_trace/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..18a0f3ca7b55
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_trace/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,85 @@
+
+# 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-core-tx-datashard-ut_trace)
+target_compile_options(ydb-core-tx-datashard-ut_trace PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_trace PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_trace PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  cpp-testing-unittest_main
+  core-tx-datashard
+  tx-datashard-ut_common
+  library-cpp-getopt
+  cpp-regex-pcre
+  library-cpp-svnversion
+  kqp-ut-common
+  core-testlib-default
+  ydb-core-tx
+  udf-service-exception_policy
+  public-lib-yson_value
+  cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_trace PRIVATE
+  -Wl,-platform_version,macos,11.0,11.0
+  -fPIC
+  -fPIC
+)
+target_sources(ydb-core-tx-datashard-ut_trace PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_trace.cpp
+)
+set_property(
+  TARGET
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  SPLIT_FACTOR
+  5
+)
+add_yunittest(
+  NAME
+  ydb-core-tx-datashard-ut_trace
+  TEST_TARGET
+  ydb-core-tx-datashard-ut_trace
+  TEST_ARG
+  --print-before-suite
+  --print-before-test
+  --fork-tests
+  --print-times
+  --show-fails
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  LABELS
+  MEDIUM
+  $FILTER_ONLY_TEST_TAGS
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  PROCESSORS
+  1
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  TIMEOUT
+  600
+)
+target_allocator(ydb-core-tx-datashard-ut_trace
+  system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_trace)
diff --git a/ydb/core/tx/datashard/ut_trace/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_trace/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..2b179af5ca25
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_trace/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,86 @@
+
+# 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-core-tx-datashard-ut_trace)
+target_compile_options(ydb-core-tx-datashard-ut_trace PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_trace PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_trace PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  library-cpp-cpuid_check
+  cpp-testing-unittest_main
+  core-tx-datashard
+  tx-datashard-ut_common
+  library-cpp-getopt
+  cpp-regex-pcre
+  library-cpp-svnversion
+  kqp-ut-common
+  core-testlib-default
+  ydb-core-tx
+  udf-service-exception_policy
+  public-lib-yson_value
+  cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_trace PRIVATE
+  -Wl,-platform_version,macos,11.0,11.0
+  -fPIC
+  -fPIC
+)
+target_sources(ydb-core-tx-datashard-ut_trace PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_trace.cpp
+)
+set_property(
+  TARGET
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  SPLIT_FACTOR
+  5
+)
+add_yunittest(
+  NAME
+  ydb-core-tx-datashard-ut_trace
+  TEST_TARGET
+  ydb-core-tx-datashard-ut_trace
+  TEST_ARG
+  --print-before-suite
+  --print-before-test
+  --fork-tests
+  --print-times
+  --show-fails
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  LABELS
+  MEDIUM
+  $FILTER_ONLY_TEST_TAGS
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  PROCESSORS
+  1
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  TIMEOUT
+  600
+)
+target_allocator(ydb-core-tx-datashard-ut_trace
+  system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_trace)
diff --git a/ydb/core/tx/datashard/ut_trace/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_trace/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..93d03774570a
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_trace/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,88 @@
+
+# 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-core-tx-datashard-ut_trace)
+target_compile_options(ydb-core-tx-datashard-ut_trace PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_trace PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_trace PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  cpp-testing-unittest_main
+  core-tx-datashard
+  tx-datashard-ut_common
+  library-cpp-getopt
+  cpp-regex-pcre
+  library-cpp-svnversion
+  kqp-ut-common
+  core-testlib-default
+  ydb-core-tx
+  udf-service-exception_policy
+  public-lib-yson_value
+  cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_trace PRIVATE
+  -ldl
+  -lrt
+  -Wl,--no-as-needed
+  -fPIC
+  -fPIC
+)
+target_sources(ydb-core-tx-datashard-ut_trace PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_trace.cpp
+)
+set_property(
+  TARGET
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  SPLIT_FACTOR
+  5
+)
+add_yunittest(
+  NAME
+  ydb-core-tx-datashard-ut_trace
+  TEST_TARGET
+  ydb-core-tx-datashard-ut_trace
+  TEST_ARG
+  --print-before-suite
+  --print-before-test
+  --fork-tests
+  --print-times
+  --show-fails
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  LABELS
+  MEDIUM
+  $FILTER_ONLY_TEST_TAGS
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  PROCESSORS
+  1
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  TIMEOUT
+  600
+)
+target_allocator(ydb-core-tx-datashard-ut_trace
+  cpp-malloc-jemalloc
+)
+vcs_info(ydb-core-tx-datashard-ut_trace)
diff --git a/ydb/core/tx/datashard/ut_trace/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_trace/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..3b9d3a8f1da6
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_trace/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,90 @@
+
+# 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-core-tx-datashard-ut_trace)
+target_compile_options(ydb-core-tx-datashard-ut_trace PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_trace PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_trace PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  library-cpp-cpuid_check
+  cpp-testing-unittest_main
+  core-tx-datashard
+  tx-datashard-ut_common
+  library-cpp-getopt
+  cpp-regex-pcre
+  library-cpp-svnversion
+  kqp-ut-common
+  core-testlib-default
+  ydb-core-tx
+  udf-service-exception_policy
+  public-lib-yson_value
+  cpp-client-ydb_result
+)
+target_link_options(ydb-core-tx-datashard-ut_trace PRIVATE
+  -ldl
+  -lrt
+  -Wl,--no-as-needed
+  -fPIC
+  -fPIC
+)
+target_sources(ydb-core-tx-datashard-ut_trace PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_trace.cpp
+)
+set_property(
+  TARGET
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  SPLIT_FACTOR
+  5
+)
+add_yunittest(
+  NAME
+  ydb-core-tx-datashard-ut_trace
+  TEST_TARGET
+  ydb-core-tx-datashard-ut_trace
+  TEST_ARG
+  --print-before-suite
+  --print-before-test
+  --fork-tests
+  --print-times
+  --show-fails
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  LABELS
+  MEDIUM
+  $FILTER_ONLY_TEST_TAGS
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  PROCESSORS
+  1
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  TIMEOUT
+  600
+)
+target_allocator(ydb-core-tx-datashard-ut_trace
+  cpp-malloc-tcmalloc
+  libs-tcmalloc-no_percpu_cache
+)
+vcs_info(ydb-core-tx-datashard-ut_trace)
diff --git a/ydb/core/tx/datashard/ut_trace/CMakeLists.txt b/ydb/core/tx/datashard/ut_trace/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_trace/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/datashard/ut_trace/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_trace/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..c75a7b7fdb31
--- /dev/null
+++ b/ydb/core/tx/datashard/ut_trace/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,81 @@
+
+# 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-core-tx-datashard-ut_trace)
+target_compile_options(ydb-core-tx-datashard-ut_trace PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-datashard-ut_trace PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard
+)
+target_link_libraries(ydb-core-tx-datashard-ut_trace PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  library-cpp-cpuid_check
+  cpp-testing-unittest_main
+  core-tx-datashard
+  tx-datashard-ut_common
+  library-cpp-getopt
+  cpp-regex-pcre
+  library-cpp-svnversion
+  kqp-ut-common
+  core-testlib-default
+  ydb-core-tx
+  udf-service-exception_policy
+  public-lib-yson_value
+  cpp-client-ydb_result
+)
+target_sources(ydb-core-tx-datashard-ut_trace PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_trace.cpp
+)
+set_property(
+  TARGET
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  SPLIT_FACTOR
+  5
+)
+add_yunittest(
+  NAME
+  ydb-core-tx-datashard-ut_trace
+  TEST_TARGET
+  ydb-core-tx-datashard-ut_trace
+  TEST_ARG
+  --print-before-suite
+  --print-before-test
+  --fork-tests
+  --print-times
+  --show-fails
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  LABELS
+  MEDIUM
+  $FILTER_ONLY_TEST_TAGS
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  PROCESSORS
+  1
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-datashard-ut_trace
+  PROPERTY
+  TIMEOUT
+  600
+)
+target_allocator(ydb-core-tx-datashard-ut_trace
+  system_allocator
+)
+vcs_info(ydb-core-tx-datashard-ut_trace)
diff --git a/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.darwin-arm64.txt
index fe372e84dac5..77aa6aaefcbf 100644
--- a/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_upload_rows PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_upload_rows PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_upload_rows.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.darwin-x86_64.txt
index 907193f87e38..165879d4b62b 100644
--- a/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_upload_rows PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_upload_rows PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_upload_rows.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.linux-aarch64.txt
index 17111c30cfac..4868f639d46c 100644
--- a/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_upload_rows PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_upload_rows PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_upload_rows.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.linux-x86_64.txt
index 67a5f56d2b69..7ecaf7055591 100644
--- a/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_upload_rows PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_upload_rows PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_upload_rows.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.windows-x86_64.txt
index c832ae074d79..afd14f4b6573 100644
--- a/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_upload_rows/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_volatile/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_volatile/CMakeLists.darwin-arm64.txt
index 95f34fced989..0fa19795dc9a 100644
--- a/ydb/core/tx/datashard/ut_volatile/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_volatile/CMakeLists.darwin-arm64.txt
@@ -34,10 +34,9 @@ target_link_options(ydb-core-tx-datashard-ut_volatile PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_volatile PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_common_pq.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_common_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_volatile.cpp
 )
@@ -66,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_volatile/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_volatile/CMakeLists.darwin-x86_64.txt
index 83abe519325a..f755ee63d0a1 100644
--- a/ydb/core/tx/datashard/ut_volatile/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_volatile/CMakeLists.darwin-x86_64.txt
@@ -35,10 +35,9 @@ target_link_options(ydb-core-tx-datashard-ut_volatile PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_volatile PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_common_pq.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_common_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_volatile.cpp
 )
@@ -67,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_volatile/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_volatile/CMakeLists.linux-aarch64.txt
index bbc6ee61f138..881ce28e4e0d 100644
--- a/ydb/core/tx/datashard/ut_volatile/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_volatile/CMakeLists.linux-aarch64.txt
@@ -37,11 +37,9 @@ target_link_options(ydb-core-tx-datashard-ut_volatile PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_volatile PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_common_pq.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_common_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_volatile.cpp
 )
@@ -70,6 +68,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_volatile/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_volatile/CMakeLists.linux-x86_64.txt
index 1d28bccb6c20..ca5628fb8672 100644
--- a/ydb/core/tx/datashard/ut_volatile/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_volatile/CMakeLists.linux-x86_64.txt
@@ -38,11 +38,9 @@ target_link_options(ydb-core-tx-datashard-ut_volatile PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_volatile PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_common_pq.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_common_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_volatile.cpp
 )
@@ -71,6 +69,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_volatile/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_volatile/CMakeLists.windows-x86_64.txt
index 6943b540b636..6c302be7f261 100644
--- a/ydb/core/tx/datashard/ut_volatile/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_volatile/CMakeLists.windows-x86_64.txt
@@ -32,6 +32,7 @@ target_link_libraries(ydb-core-tx-datashard-ut_volatile PUBLIC
   cpp-client-ydb_result
 )
 target_sources(ydb-core-tx-datashard-ut_volatile PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_common_pq.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_common_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_volatile.cpp
 )
@@ -60,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_write/CMakeLists.darwin-arm64.txt b/ydb/core/tx/datashard/ut_write/CMakeLists.darwin-arm64.txt
index ac06a0c7e13a..a48afff5efea 100644
--- a/ydb/core/tx/datashard/ut_write/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/datashard/ut_write/CMakeLists.darwin-arm64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-datashard-ut_write PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_write PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_write.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_write/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/datashard/ut_write/CMakeLists.darwin-x86_64.txt
index c4ef06969424..649dcbe8df7e 100644
--- a/ydb/core/tx/datashard/ut_write/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_write/CMakeLists.darwin-x86_64.txt
@@ -35,8 +35,6 @@ target_link_options(ydb-core-tx-datashard-ut_write PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-datashard-ut_write PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_write.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_write/CMakeLists.linux-aarch64.txt b/ydb/core/tx/datashard/ut_write/CMakeLists.linux-aarch64.txt
index 17b75fce13fc..089fd445796b 100644
--- a/ydb/core/tx/datashard/ut_write/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/datashard/ut_write/CMakeLists.linux-aarch64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-datashard-ut_write PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_write PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_write.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_write/CMakeLists.linux-x86_64.txt b/ydb/core/tx/datashard/ut_write/CMakeLists.linux-x86_64.txt
index 45c988267d82..72962dbd1f7e 100644
--- a/ydb/core/tx/datashard/ut_write/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_write/CMakeLists.linux-x86_64.txt
@@ -38,9 +38,6 @@ target_link_options(ydb-core-tx-datashard-ut_write PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-datashard-ut_write PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/datashard/datashard_ut_write.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/ut_write/CMakeLists.windows-x86_64.txt b/ydb/core/tx/datashard/ut_write/CMakeLists.windows-x86_64.txt
index 99c673895213..193413ab5a46 100644
--- a/ydb/core/tx/datashard/ut_write/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/datashard/ut_write/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/datashard/volatile_tx.cpp b/ydb/core/tx/datashard/volatile_tx.cpp
index edd5ca149d69..1a72b7c10783 100644
--- a/ydb/core/tx/datashard/volatile_tx.cpp
+++ b/ydb/core/tx/datashard/volatile_tx.cpp
@@ -151,6 +151,25 @@ namespace NKikimr::NDataShard {
                 }
             }
 
+            if (!info->ArbiterReadSets.empty()) {
+                NKikimrTx::TReadSetData data;
+                data.SetDecision(NKikimrTx::TReadSetData::DECISION_ABORT);
+
+                TString bodyStr;
+                bool ok = data.SerializeToString(&bodyStr);
+                Y_ABORT_UNLESS(ok, "Failed to serialize an abort decision readset");
+
+                NIceDb::TNiceDb db(txc.DB);
+                for (ui64 seqNo : info->ArbiterReadSets) {
+                    auto rsInfo = Self->OutReadSets.ReplaceReadSet(db, seqNo, bodyStr);
+                    if (Y_LIKELY(rsInfo.TxId == TxId)) {
+                        auto msg = Self->PrepareReadSet(rsInfo.Step, rsInfo.TxId, rsInfo.From, rsInfo.To, bodyStr, seqNo);
+                        ReadSets.push_back(std::move(msg));
+                    }
+                }
+                info->ArbiterReadSets.clear();
+            }
+
             Self->VolatileTxManager.PersistRemoveVolatileTx(TxId, txc);
             return true;
         }
@@ -169,6 +188,11 @@ namespace NKikimr::NDataShard {
             }
             info->DelayedAcks.clear();
 
+            // Arbiter notifies other shards on abort
+            if (!ReadSets.empty()) {
+                Self->SendReadSets(ctx, std::move(ReadSets));
+            }
+
             // Make a copy since it will disappear soon
             auto commitTxIds = info->CommitTxIds;
 
@@ -191,6 +215,7 @@ namespace NKikimr::NDataShard {
 
     private:
         ui64 TxId;
+        TVector> ReadSets;
     };
 
     void TVolatileTxManager::TTxMap::Add(ui64 txId, TRowVersion version) {
@@ -307,6 +332,7 @@ namespace NKikimr::NDataShard {
             info->AddCommitted = true; // we loaded it from local db, so it is committed
             info->CommitOrder = details.GetCommitOrder();
             info->CommitOrdered = details.GetCommitOrdered();
+            info->IsArbiter = details.GetIsArbiter();
 
             maxCommitOrder = Max(maxCommitOrder, info->CommitOrder);
 
@@ -443,6 +469,7 @@ namespace NKikimr::NDataShard {
             TConstArrayRef participants,
             std::optional changeGroup,
             bool commitOrdered,
+            bool isArbiter,
             TTransactionContext& txc)
     {
         using Schema = TDataShard::Schema;
@@ -464,6 +491,7 @@ namespace NKikimr::NDataShard {
         info->ChangeGroup = changeGroup;
         info->CommitOrder = NextCommitOrder++;
         info->CommitOrdered = commitOrdered;
+        info->IsArbiter = isArbiter;
 
         if (info->Participants.empty()) {
             // Transaction is committed when we don't have to wait for other participants
@@ -518,6 +546,9 @@ namespace NKikimr::NDataShard {
         if (info->CommitOrdered) {
             details.SetCommitOrdered(true);
         }
+        if (info->IsArbiter) {
+            details.SetIsArbiter(true);
+        }
 
         db.Table().Key(info->TxId).Update(
             NIceDb::TUpdate(info->State),
@@ -824,7 +855,7 @@ namespace NKikimr::NDataShard {
             }
             info->DelayedConfirmations.clear();
 
-            // Send delayed acks on commit
+            // Send delayed acks when changes are persisted
             // TODO: maybe move it into a parameter?
             struct TDelayedAcksState : public TThrRefBase {
                 TVector> DelayedAcks;
@@ -833,7 +864,7 @@ namespace NKikimr::NDataShard {
                     : DelayedAcks(std::move(info->DelayedAcks))
                 {}
             };
-            txc.DB.OnCommit([state = MakeIntrusive(info)]() {
+            txc.DB.OnPersistent([state = MakeIntrusive(info)]() {
                 for (auto& ev : state->DelayedAcks) {
                     TActivationContext::Send(ev.Release());
                 }
@@ -853,6 +884,12 @@ namespace NKikimr::NDataShard {
     }
 
     void TVolatileTxManager::RunCommitCallbacks(TVolatileTxInfo* info) {
+        if (info->IsArbiterOnHold && !info->ArbiterReadSets.empty()) {
+            Self->OutReadSets.ReleaseOnHoldReadSets(info->ArbiterReadSets,
+                TActivationContext::ActorContextFor(Self->SelfId()));
+            info->ArbiterReadSets.clear();
+        }
+
         auto callbacks = std::move(info->Callbacks);
         info->Callbacks.clear();
         for (auto& callback : callbacks) {
diff --git a/ydb/core/tx/datashard/volatile_tx.h b/ydb/core/tx/datashard/volatile_tx.h
index ab7533038e1c..a7f40b3178bf 100644
--- a/ydb/core/tx/datashard/volatile_tx.h
+++ b/ydb/core/tx/datashard/volatile_tx.h
@@ -55,6 +55,8 @@ namespace NKikimr::NDataShard {
         EVolatileTxState State = EVolatileTxState::Waiting;
         bool AddCommitted = false;
         bool CommitOrdered = false;
+        bool IsArbiter = false;
+        bool IsArbiterOnHold = false;
         TRowVersion Version;
         absl::flat_hash_set CommitTxIds;
         absl::flat_hash_set Dependencies;
@@ -68,6 +70,11 @@ namespace NKikimr::NDataShard {
         TVector> DelayedAcks;
         absl::flat_hash_set DelayedConfirmations;
 
+        // A list of readset sequence numbers that are on hold until arbiter
+        // transaction is decided. These readsets will be replaced with a
+        // DECISION_ABORT on abort.
+        std::vector ArbiterReadSets;
+
         template
         bool IsInList() const {
             using TItem = TIntrusiveListItem;
@@ -212,6 +219,7 @@ namespace NKikimr::NDataShard {
             TConstArrayRef participants,
             std::optional changeGroup,
             bool commitOrdered,
+            bool isArbiter,
             TTransactionContext& txc);
 
         bool AttachVolatileTxCallback(
diff --git a/ydb/core/tx/datashard/write_unit.cpp b/ydb/core/tx/datashard/write_unit.cpp
index 15d4065b279c..c2fd1d0c174a 100644
--- a/ydb/core/tx/datashard/write_unit.cpp
+++ b/ydb/core/tx/datashard/write_unit.cpp
@@ -97,7 +97,7 @@ class TWriteUnit : public TExecutionUnit {
         self->IncCounter(COUNTER_WRITE_ROWS, matrix.GetRowCount());
         self->IncCounter(COUNTER_WRITE_BYTES, matrix.GetBuffer().size());
 
-        writeOp->SetWriteResult(NEvents::TDataEvents::TEvWriteResult::BuildCommited(self->TabletID(), writeOp->GetTxId()));
+        writeOp->SetWriteResult(NEvents::TDataEvents::TEvWriteResult::BuildCompleted(self->TabletID(), writeOp->GetTxId()));
 
         LOG_DEBUG_S(ctx, NKikimrServices::TX_DATASHARD, "Executed write operation for " << *writeOp << " at " << self->TabletID());
     }
diff --git a/ydb/core/tx/datashard/ya.make b/ydb/core/tx/datashard/ya.make
index 49541b974798..7ed4a725816c 100644
--- a/ydb/core/tx/datashard/ya.make
+++ b/ydb/core/tx/datashard/ya.make
@@ -185,6 +185,7 @@ SRCS(
     remove_lock_change_records.cpp
     remove_locks.cpp
     range_avl_tree.cpp
+    remove_schema_snapshots.cpp
     range_ops.cpp
     range_treap.cpp
     read_iterator.h
diff --git a/ydb/core/tx/limiter/service/service.cpp b/ydb/core/tx/limiter/service/service.cpp
new file mode 100644
index 000000000000..e31ea0f253c7
--- /dev/null
+++ b/ydb/core/tx/limiter/service/service.cpp
@@ -0,0 +1,63 @@
+#include "service.h"
+
+namespace NKikimr::NLimiter {
+
+TLimiterActor::TLimiterActor(const TConfig& config, const TString& limiterName, TIntrusivePtr<::NMonitoring::TDynamicCounters> baseCounters)
+    : LimiterName(limiterName)
+    , Config(config)
+    , Counters(LimiterName, baseCounters)
+{
+    Counters.InProgressLimit->Set(Config.GetLimit());
+}
+
+void TLimiterActor::HandleMain(TEvExternal::TEvAskResource::TPtr& ev) {
+    const auto now = TMonotonic::Now();
+    if (RequestsInFlight.empty() || (RequestsQueue.empty() && VolumeInFlight + ev->Get()->GetRequest()->GetVolume() <= Config.GetLimit())) {
+        VolumeInFlight += ev->Get()->GetRequest()->GetVolume();
+        RequestsInFlight.emplace_back(now, ev->Get()->GetRequest()->GetVolume());
+        if (RequestsInFlight.size() == 1) {
+            Schedule(now + Config.GetPeriod(), new NActors::TEvents::TEvWakeup());
+        }
+        ev->Get()->GetRequest()->OnResourceAllocated();
+        Counters.InProgressStart->Inc();
+    } else {
+        RequestsQueue.emplace_back(now, ev->Get()->GetRequest());
+        VolumeInWaiting += ev->Get()->GetRequest()->GetVolume();
+    }
+    Counters.InProgressCount->Set(RequestsInFlight.size());
+    Counters.InProgressVolume->Set(VolumeInFlight);
+    Counters.WaitingQueueCount->Set(RequestsQueue.size());
+    Counters.WaitingQueueVolume->Set(VolumeInWaiting);
+}
+
+void TLimiterActor::HandleMain(NActors::TEvents::TEvWakeup::TPtr& /*ev*/) {
+    const auto now = TMonotonic::Now();
+    AFL_VERIFY(RequestsInFlight.size());
+    while (RequestsInFlight.size() && RequestsInFlight.front().GetInstant() + Config.GetPeriod() <= now) {
+        AFL_VERIFY(RequestsInFlight.front().GetVolume() <= VolumeInFlight);
+        VolumeInFlight = VolumeInFlight - RequestsInFlight.front().GetVolume();
+        RequestsInFlight.pop_front();
+    }
+    if (RequestsInFlight.empty()) {
+        AFL_VERIFY(!VolumeInFlight);
+    }
+    while (RequestsQueue.size() && (RequestsInFlight.empty() || VolumeInFlight + RequestsQueue.front().GetRequest()->GetVolume() <= Config.GetLimit())) {
+        Counters.WaitingHistogram->Collect((i64)(now - RequestsQueue.front().GetInstant()).MilliSeconds(), 1);
+        VolumeInFlight += RequestsQueue.front().GetRequest()->GetVolume();
+        RequestsInFlight.emplace_back(now, RequestsQueue.front().GetRequest()->GetVolume());
+        RequestsQueue.front().GetRequest()->OnResourceAllocated();
+        AFL_VERIFY(VolumeInWaiting >= RequestsQueue.front().GetRequest()->GetVolume());
+        VolumeInWaiting -= RequestsQueue.front().GetRequest()->GetVolume();
+        RequestsQueue.pop_front();
+        Counters.InProgressStart->Inc();
+    }
+    if (RequestsInFlight.size()) {
+        Schedule(RequestsInFlight.front().GetInstant() + Config.GetPeriod(), new NActors::TEvents::TEvWakeup());
+    }
+    Counters.InProgressCount->Set(RequestsInFlight.size());
+    Counters.InProgressVolume->Set(VolumeInFlight);
+    Counters.WaitingQueueCount->Set(RequestsQueue.size());
+    Counters.WaitingQueueVolume->Set(VolumeInWaiting);
+}
+
+}
diff --git a/ydb/core/tx/limiter/service/service.h b/ydb/core/tx/limiter/service/service.h
new file mode 100644
index 000000000000..32e9c45faca5
--- /dev/null
+++ b/ydb/core/tx/limiter/service/service.h
@@ -0,0 +1,101 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+#include 
+
+#include 
+
+#include 
+
+namespace NKikimr::NLimiter {
+
+class TCounters: public NColumnShard::TCommonCountersOwner {
+private:
+    using TBase = NColumnShard::TCommonCountersOwner;
+public:
+    const ::NMonitoring::TDynamicCounters::TCounterPtr WaitingQueueCount;
+    const ::NMonitoring::TDynamicCounters::TCounterPtr WaitingQueueVolume;
+    const ::NMonitoring::TDynamicCounters::TCounterPtr InProgressLimit;
+
+    const ::NMonitoring::TDynamicCounters::TCounterPtr InProgressCount;
+    const ::NMonitoring::TDynamicCounters::TCounterPtr InProgressVolume;
+
+    const ::NMonitoring::TDynamicCounters::TCounterPtr InProgressStart;
+
+    const ::NMonitoring::THistogramPtr WaitingHistogram;
+
+    TCounters(const TString& limiterName, TIntrusivePtr<::NMonitoring::TDynamicCounters> baseSignals)
+        : TBase("Limiter/" + limiterName, baseSignals)
+        , WaitingQueueCount(TBase::GetValue("WaitingQueue/Count"))
+        , WaitingQueueVolume(TBase::GetValue("WaitingQueue/Volume"))
+        , InProgressLimit(TBase::GetValue("InProgress/Limit/Volume"))
+        , InProgressCount(TBase::GetValue("InProgress/Count"))
+        , InProgressVolume(TBase::GetValue("InProgress/Volume"))
+        , InProgressStart(TBase::GetDeriviative("InProgress"))
+        , WaitingHistogram(TBase::GetHistogram("Waiting", NMonitoring::ExponentialHistogram(20, 2))) {
+    }
+};
+
+class TLimiterActor: public NActors::TActorBootstrapped {
+private:
+    const TString LimiterName;
+    const TConfig Config;
+    TCounters Counters;
+    class TResourceRequest {
+    private:
+        YDB_READONLY(TMonotonic, Instant, TMonotonic::Zero());
+        YDB_READONLY_DEF(std::shared_ptr, Request);
+    public:
+        TResourceRequest(const TMonotonic instant, const std::shared_ptr& req)
+            : Instant(instant)
+            , Request(req) {
+
+        }
+    };
+
+    class TResourceRequestInFlight {
+    private:
+        YDB_READONLY(TMonotonic, Instant, TMonotonic::Zero());
+        YDB_READONLY(ui64, Volume, 0);
+    public:
+        TResourceRequestInFlight(const TMonotonic instant, const ui64 volume)
+            : Instant(instant)
+            , Volume(volume) {
+
+        }
+    };
+
+    ui64 VolumeInFlight = 0;
+    ui64 VolumeInWaiting = 0;
+    std::deque RequestsQueue;
+    std::deque RequestsInFlight;
+
+    void HandleMain(TEvExternal::TEvAskResource::TPtr& ev);
+    void HandleMain(NActors::TEvents::TEvWakeup::TPtr& ev);
+
+public:
+
+    STATEFN(StateMain) {
+        switch (ev->GetTypeRewrite()) {
+            hFunc(TEvExternal::TEvAskResource, HandleMain);
+            hFunc(NActors::TEvents::TEvWakeup, HandleMain);
+        default:
+            AFL_ERROR(NKikimrServices::TX_LIMITER)("limiter", LimiterName)("problem", "unexpected event")("type", ev->GetTypeRewrite());
+            AFL_VERIFY_DEBUG(false)("type", ev->GetTypeRewrite());
+            break;
+        }
+    }
+
+    TLimiterActor(const TConfig& config, const TString& limiterName, TIntrusivePtr<::NMonitoring::TDynamicCounters> baseCounters);
+
+    void Bootstrap() {
+        Become(&TLimiterActor::StateMain);
+    }
+};
+
+}
diff --git a/ydb/core/tx/limiter/service/ya.make b/ydb/core/tx/limiter/service/ya.make
new file mode 100644
index 000000000000..5560098a6b5a
--- /dev/null
+++ b/ydb/core/tx/limiter/service/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+    service.cpp
+)
+
+PEERDIR(
+    ydb/core/tx/limiter/usage
+    ydb/core/protos
+)
+
+END()
diff --git a/ydb/core/tx/limiter/usage/abstract.cpp b/ydb/core/tx/limiter/usage/abstract.cpp
new file mode 100644
index 000000000000..724f95db7f2f
--- /dev/null
+++ b/ydb/core/tx/limiter/usage/abstract.cpp
@@ -0,0 +1,5 @@
+#include "abstract.h"
+
+namespace NKikimr::NLimiter {
+
+}
diff --git a/ydb/core/tx/limiter/usage/abstract.h b/ydb/core/tx/limiter/usage/abstract.h
new file mode 100644
index 000000000000..ff3e460a771c
--- /dev/null
+++ b/ydb/core/tx/limiter/usage/abstract.h
@@ -0,0 +1,24 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NLimiter {
+class IResourceRequest {
+private:
+    YDB_READONLY(ui64, Volume, 0);
+    virtual void DoOnResourceAllocated() = 0;
+public:
+    void OnResourceAllocated() {
+        return DoOnResourceAllocated();
+    }
+
+    virtual ~IResourceRequest() = default;
+
+    IResourceRequest(const ui64 volume)
+        : Volume(volume)
+    {
+
+    }
+};
+
+}
diff --git a/ydb/core/tx/limiter/usage/config.cpp b/ydb/core/tx/limiter/usage/config.cpp
new file mode 100644
index 000000000000..a4448ea10320
--- /dev/null
+++ b/ydb/core/tx/limiter/usage/config.cpp
@@ -0,0 +1,12 @@
+#include "config.h"
+#include 
+
+namespace NKikimr::NLimiter {
+
+TString TConfig::DebugString() const {
+    TStringBuilder sb;
+    sb << "Period=" << Period << ";Limit=" << Limit << ";Enabled=" << EnabledFlag << ";";
+    return sb;
+}
+
+}
diff --git a/ydb/core/tx/limiter/usage/config.h b/ydb/core/tx/limiter/usage/config.h
new file mode 100644
index 000000000000..434f66f2d485
--- /dev/null
+++ b/ydb/core/tx/limiter/usage/config.h
@@ -0,0 +1,37 @@
+#pragma once
+#include 
+#include 
+#include 
+
+namespace NKikimr::NLimiter {
+
+class TConfig {
+private:
+    YDB_READONLY(TDuration, Period, TDuration::Seconds(1));
+    YDB_READONLY(ui64, Limit, 0);
+    YDB_READONLY_FLAG(Enabled, true);
+public:
+    template 
+    bool DeserializeFromProto(const NKikimrConfig::TLimiterConfig& config) {
+        if (config.HasPeriodMilliSeconds()) {
+            Period = TDuration::MilliSeconds(config.GetPeriodMilliSeconds());
+        } else {
+            Period = TPolicy::DefaultPeriod;
+        }
+        if (config.HasLimit()) {
+            Limit = config.GetLimit();
+        } else {
+            Limit = TPolicy::DefaultLimit;
+        }
+        if (config.HasEnabled()) {
+            EnabledFlag = config.GetEnabled();
+        } else {
+            EnabledFlag = TPolicy::DefaultEnabled;
+        }
+        return true;
+    }
+
+    TString DebugString() const;
+};
+
+}
diff --git a/ydb/core/tx/limiter/usage/events.cpp b/ydb/core/tx/limiter/usage/events.cpp
new file mode 100644
index 000000000000..bf9582f2b302
--- /dev/null
+++ b/ydb/core/tx/limiter/usage/events.cpp
@@ -0,0 +1,5 @@
+#include "events.h"
+
+namespace NKikimr::NLimiter {
+
+}
diff --git a/ydb/core/tx/limiter/usage/events.h b/ydb/core/tx/limiter/usage/events.h
new file mode 100644
index 000000000000..8b5b3a248e65
--- /dev/null
+++ b/ydb/core/tx/limiter/usage/events.h
@@ -0,0 +1,30 @@
+#pragma once
+#include "abstract.h"
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NLimiter {
+
+struct TEvExternal {
+    enum EEv {
+        EvAskResource = EventSpaceBegin(TKikimrEvents::ES_LIMITER),
+        EvEnd
+    };
+
+    static_assert(EvEnd < EventSpaceEnd(TKikimrEvents::ES_LIMITER), "expected EvEnd < EventSpaceEnd");
+
+    class TEvAskResource: public NActors::TEventLocal {
+    private:
+        YDB_READONLY_DEF(std::shared_ptr, Request);
+    public:
+        TEvAskResource() = default;
+
+        explicit TEvAskResource(const std::shared_ptr& request)
+            : Request(request) {
+        }
+    };
+};
+
+}
diff --git a/ydb/core/tx/limiter/usage/service.cpp b/ydb/core/tx/limiter/usage/service.cpp
new file mode 100644
index 000000000000..c4e435d65f40
--- /dev/null
+++ b/ydb/core/tx/limiter/usage/service.cpp
@@ -0,0 +1,5 @@
+#include "service.h"
+
+namespace NKikimr::NConveyor {
+
+}
diff --git a/ydb/core/tx/limiter/usage/service.h b/ydb/core/tx/limiter/usage/service.h
new file mode 100644
index 000000000000..b0b435fa802f
--- /dev/null
+++ b/ydb/core/tx/limiter/usage/service.h
@@ -0,0 +1,58 @@
+#pragma once
+#include "config.h"
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NLimiter {
+
+template 
+class TServiceOperatorImpl {
+private:
+    using TSelf = TServiceOperatorImpl;
+    std::atomic IsEnabledFlag = false;
+    static void Register(const TConfig& serviceConfig) {
+        Singleton()->IsEnabledFlag = serviceConfig.IsEnabled() && serviceConfig.GetLimit();
+    }
+    static const TString& GetLimiterName() {
+        Y_ABORT_UNLESS(TLimiterPolicy::Name.size() == 4);
+        return TLimiterPolicy::Name;
+    }
+public:
+    static bool AskResource(const std::shared_ptr& request) {
+        AFL_VERIFY(!!request);
+        auto& context = NActors::TActorContext::AsActorContext();
+        const NActors::TActorId& selfId = context.SelfID;
+        if (TSelf::IsEnabled()) {
+            context.Send(MakeServiceId(selfId.NodeId()), new TEvExternal::TEvAskResource(request));
+            return true;
+        } else {
+            request->OnResourceAllocated();
+            return false;
+        }
+    }
+    static bool IsEnabled() {
+        return Singleton()->IsEnabledFlag;
+    }
+    static NActors::TActorId MakeServiceId(const ui32 nodeId) {
+        return NActors::TActorId(nodeId, "SrvcLimt" + GetLimiterName());
+    }
+    static NActors::IActor* CreateService(const TConfig& config, TIntrusivePtr<::NMonitoring::TDynamicCounters> baseSignals) {
+        Register(config);
+        return new TLimiterActor(config, GetLimiterName(), baseSignals);
+    }
+
+};
+
+class TCompDiskLimiterPolicy {
+public:
+    static const inline TString Name = "CMPD";
+    static const inline TDuration DefaultPeriod = TDuration::Seconds(1);
+    static const inline ui64 DefaultLimit = (ui64)256 * 1024 * 1024;
+    static const inline bool DefaultEnabled = true;
+};
+
+using TCompDiskOperator = TServiceOperatorImpl;
+
+}
diff --git a/ydb/core/tx/limiter/usage/ya.make b/ydb/core/tx/limiter/usage/ya.make
new file mode 100644
index 000000000000..28d0c6f8eead
--- /dev/null
+++ b/ydb/core/tx/limiter/usage/ya.make
@@ -0,0 +1,15 @@
+LIBRARY()
+
+SRCS(
+    events.cpp
+    config.cpp
+    abstract.cpp
+    service.cpp
+)
+
+PEERDIR(
+    ydb/library/actors/core
+    ydb/services/metadata/request
+)
+
+END()
diff --git a/ydb/core/tx/long_tx_service/public/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/long_tx_service/public/ut/CMakeLists.darwin-arm64.txt
index 0af02ff7233e..dcdd40912348 100644
--- a/ydb/core/tx/long_tx_service/public/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/long_tx_service/public/ut/CMakeLists.darwin-arm64.txt
@@ -25,8 +25,6 @@ target_link_options(ydb-core-tx-long_tx_service-public-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-long_tx_service-public-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/public/types_ut.cpp
@@ -56,6 +54,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/long_tx_service/public/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/long_tx_service/public/ut/CMakeLists.darwin-x86_64.txt
index ca2308a9cd14..40d3ac86a3bd 100644
--- a/ydb/core/tx/long_tx_service/public/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/long_tx_service/public/ut/CMakeLists.darwin-x86_64.txt
@@ -26,8 +26,6 @@ target_link_options(ydb-core-tx-long_tx_service-public-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-long_tx_service-public-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/public/types_ut.cpp
@@ -57,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/long_tx_service/public/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tx/long_tx_service/public/ut/CMakeLists.linux-aarch64.txt
index 6f91fee077f1..92fdb8e25677 100644
--- a/ydb/core/tx/long_tx_service/public/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/long_tx_service/public/ut/CMakeLists.linux-aarch64.txt
@@ -28,9 +28,6 @@ target_link_options(ydb-core-tx-long_tx_service-public-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-long_tx_service-public-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/public/types_ut.cpp
@@ -60,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/long_tx_service/public/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tx/long_tx_service/public/ut/CMakeLists.linux-x86_64.txt
index 95878b8443e8..3041fe4c94d2 100644
--- a/ydb/core/tx/long_tx_service/public/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/long_tx_service/public/ut/CMakeLists.linux-x86_64.txt
@@ -29,9 +29,6 @@ target_link_options(ydb-core-tx-long_tx_service-public-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-long_tx_service-public-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/public/types_ut.cpp
@@ -61,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/long_tx_service/public/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tx/long_tx_service/public/ut/CMakeLists.windows-x86_64.txt
index e801bef6eb11..7a02b8b5aa51 100644
--- a/ydb/core/tx/long_tx_service/public/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/long_tx_service/public/ut/CMakeLists.windows-x86_64.txt
@@ -50,6 +50,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/long_tx_service/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/long_tx_service/ut/CMakeLists.darwin-arm64.txt
index 96a7425ee238..1f953f66ddd4 100644
--- a/ydb/core/tx/long_tx_service/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/long_tx_service/ut/CMakeLists.darwin-arm64.txt
@@ -25,8 +25,6 @@ target_link_options(ydb-core-tx-long_tx_service-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-long_tx_service-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/long_tx_service_ut.cpp
@@ -56,6 +54,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/long_tx_service/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/long_tx_service/ut/CMakeLists.darwin-x86_64.txt
index 479349979f22..6a93bb59ac46 100644
--- a/ydb/core/tx/long_tx_service/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/long_tx_service/ut/CMakeLists.darwin-x86_64.txt
@@ -26,8 +26,6 @@ target_link_options(ydb-core-tx-long_tx_service-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-long_tx_service-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/long_tx_service_ut.cpp
@@ -57,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/long_tx_service/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tx/long_tx_service/ut/CMakeLists.linux-aarch64.txt
index a09594447c22..9c4c3f24c996 100644
--- a/ydb/core/tx/long_tx_service/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/long_tx_service/ut/CMakeLists.linux-aarch64.txt
@@ -28,9 +28,6 @@ target_link_options(ydb-core-tx-long_tx_service-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-long_tx_service-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/long_tx_service_ut.cpp
@@ -60,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/long_tx_service/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tx/long_tx_service/ut/CMakeLists.linux-x86_64.txt
index cf03210ac12a..562301a24f4a 100644
--- a/ydb/core/tx/long_tx_service/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/long_tx_service/ut/CMakeLists.linux-x86_64.txt
@@ -29,9 +29,6 @@ target_link_options(ydb-core-tx-long_tx_service-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-long_tx_service-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/long_tx_service/long_tx_service_ut.cpp
@@ -61,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/long_tx_service/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tx/long_tx_service/ut/CMakeLists.windows-x86_64.txt
index cda3f3a7887c..5083f999e6e1 100644
--- a/ydb/core/tx/long_tx_service/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/long_tx_service/ut/CMakeLists.windows-x86_64.txt
@@ -50,6 +50,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/program/CMakeLists.darwin-arm64.txt b/ydb/core/tx/program/CMakeLists.darwin-arm64.txt
index 89a5ca7f537b..fafdeeeab2ac 100644
--- a/ydb/core/tx/program/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/program/CMakeLists.darwin-arm64.txt
@@ -17,7 +17,7 @@ target_link_libraries(core-tx-program PUBLIC
   core-formats-arrow
   ydb-core-protos
   ydb-core-tablet_flat
-  minikql-comp_nodes-llvm
+  yql-minikql-comp_nodes
   core-arrow_kernels-registry
 )
 target_sources(core-tx-program PRIVATE
diff --git a/ydb/core/tx/program/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/program/CMakeLists.darwin-x86_64.txt
index 89a5ca7f537b..fafdeeeab2ac 100644
--- a/ydb/core/tx/program/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/program/CMakeLists.darwin-x86_64.txt
@@ -17,7 +17,7 @@ target_link_libraries(core-tx-program PUBLIC
   core-formats-arrow
   ydb-core-protos
   ydb-core-tablet_flat
-  minikql-comp_nodes-llvm
+  yql-minikql-comp_nodes
   core-arrow_kernels-registry
 )
 target_sources(core-tx-program PRIVATE
diff --git a/ydb/core/tx/program/CMakeLists.linux-aarch64.txt b/ydb/core/tx/program/CMakeLists.linux-aarch64.txt
index 1d4916663bb2..8f015ab56ea7 100644
--- a/ydb/core/tx/program/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/program/CMakeLists.linux-aarch64.txt
@@ -18,7 +18,7 @@ target_link_libraries(core-tx-program PUBLIC
   core-formats-arrow
   ydb-core-protos
   ydb-core-tablet_flat
-  minikql-comp_nodes-llvm
+  yql-minikql-comp_nodes
   core-arrow_kernels-registry
 )
 target_sources(core-tx-program PRIVATE
diff --git a/ydb/core/tx/program/CMakeLists.linux-x86_64.txt b/ydb/core/tx/program/CMakeLists.linux-x86_64.txt
index 1d4916663bb2..8f015ab56ea7 100644
--- a/ydb/core/tx/program/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/program/CMakeLists.linux-x86_64.txt
@@ -18,7 +18,7 @@ target_link_libraries(core-tx-program PUBLIC
   core-formats-arrow
   ydb-core-protos
   ydb-core-tablet_flat
-  minikql-comp_nodes-llvm
+  yql-minikql-comp_nodes
   core-arrow_kernels-registry
 )
 target_sources(core-tx-program PRIVATE
diff --git a/ydb/core/tx/program/CMakeLists.windows-x86_64.txt b/ydb/core/tx/program/CMakeLists.windows-x86_64.txt
index 89a5ca7f537b..fafdeeeab2ac 100644
--- a/ydb/core/tx/program/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/program/CMakeLists.windows-x86_64.txt
@@ -17,7 +17,7 @@ target_link_libraries(core-tx-program PUBLIC
   core-formats-arrow
   ydb-core-protos
   ydb-core-tablet_flat
-  minikql-comp_nodes-llvm
+  yql-minikql-comp_nodes
   core-arrow_kernels-registry
 )
 target_sources(core-tx-program PRIVATE
diff --git a/ydb/core/tx/program/program.h b/ydb/core/tx/program/program.h
index dae9ae4d94a4..dfeb714a1481 100644
--- a/ydb/core/tx/program/program.h
+++ b/ydb/core/tx/program/program.h
@@ -90,15 +90,8 @@ class TProgramContainer {
         }
     }
 
-    std::shared_ptr ApplyEarlyFilter(std::shared_ptr& batch, const bool useFilter) const {
-        if (Program) {
-            return Program->ApplyEarlyFilter(batch, useFilter);
-        } else {
-            return nullptr;
-        }
-    }
-
-    inline arrow::Status ApplyProgram(std::shared_ptr& batch) const {
+    template 
+    inline arrow::Status ApplyProgram(std::shared_ptr& batch) const {
         if (Program) {
             return Program->ApplyTo(batch, NArrow::GetCustomExecContext());
         } else if (OverrideProcessingColumnsVector) {
diff --git a/ydb/core/tx/replication/CMakeLists.txt b/ydb/core/tx/replication/CMakeLists.txt
index e8a77d31b80a..3e0e27658ccf 100644
--- a/ydb/core/tx/replication/CMakeLists.txt
+++ b/ydb/core/tx/replication/CMakeLists.txt
@@ -8,4 +8,5 @@
 
 add_subdirectory(controller)
 add_subdirectory(service)
+add_subdirectory(ut_helpers)
 add_subdirectory(ydb_proxy)
diff --git a/ydb/core/tx/replication/service/CMakeLists.darwin-arm64.txt b/ydb/core/tx/replication/service/CMakeLists.darwin-arm64.txt
index ce070b006e1f..4fa535b4626b 100644
--- a/ydb/core/tx/replication/service/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/replication/service/CMakeLists.darwin-arm64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(ut_topic_reader)
 
 add_library(tx-replication-service)
 target_compile_options(tx-replication-service PRIVATE
@@ -15,7 +16,21 @@ target_link_libraries(tx-replication-service PUBLIC
   contrib-libs-cxxsupp
   yutil
   ydb-core-base
+  ydb-core-change_exchange
+  ydb-core-protos
+  ydb-core-scheme
+  ydb-core-scheme_types
+  ydb-core-tablet_flat
+  core-io_formats-cell_maker
+  tx-replication-ydb_proxy
+  library-actors-core
+  ydb-library-services
+  library-cpp-json
 )
 target_sources(tx-replication-service PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/json_change_record.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/service.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/table_writer.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/topic_reader.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/worker.cpp
 )
diff --git a/ydb/core/tx/replication/service/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/replication/service/CMakeLists.darwin-x86_64.txt
index ce070b006e1f..4fa535b4626b 100644
--- a/ydb/core/tx/replication/service/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/replication/service/CMakeLists.darwin-x86_64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(ut_topic_reader)
 
 add_library(tx-replication-service)
 target_compile_options(tx-replication-service PRIVATE
@@ -15,7 +16,21 @@ target_link_libraries(tx-replication-service PUBLIC
   contrib-libs-cxxsupp
   yutil
   ydb-core-base
+  ydb-core-change_exchange
+  ydb-core-protos
+  ydb-core-scheme
+  ydb-core-scheme_types
+  ydb-core-tablet_flat
+  core-io_formats-cell_maker
+  tx-replication-ydb_proxy
+  library-actors-core
+  ydb-library-services
+  library-cpp-json
 )
 target_sources(tx-replication-service PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/json_change_record.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/service.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/table_writer.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/topic_reader.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/worker.cpp
 )
diff --git a/ydb/core/tx/replication/service/CMakeLists.linux-aarch64.txt b/ydb/core/tx/replication/service/CMakeLists.linux-aarch64.txt
index 68c0eddf13db..003848c34ae9 100644
--- a/ydb/core/tx/replication/service/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/replication/service/CMakeLists.linux-aarch64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(ut_topic_reader)
 
 add_library(tx-replication-service)
 target_compile_options(tx-replication-service PRIVATE
@@ -16,7 +17,21 @@ target_link_libraries(tx-replication-service PUBLIC
   contrib-libs-cxxsupp
   yutil
   ydb-core-base
+  ydb-core-change_exchange
+  ydb-core-protos
+  ydb-core-scheme
+  ydb-core-scheme_types
+  ydb-core-tablet_flat
+  core-io_formats-cell_maker
+  tx-replication-ydb_proxy
+  library-actors-core
+  ydb-library-services
+  library-cpp-json
 )
 target_sources(tx-replication-service PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/json_change_record.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/service.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/table_writer.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/topic_reader.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/worker.cpp
 )
diff --git a/ydb/core/tx/replication/service/CMakeLists.linux-x86_64.txt b/ydb/core/tx/replication/service/CMakeLists.linux-x86_64.txt
index 68c0eddf13db..003848c34ae9 100644
--- a/ydb/core/tx/replication/service/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/replication/service/CMakeLists.linux-x86_64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(ut_topic_reader)
 
 add_library(tx-replication-service)
 target_compile_options(tx-replication-service PRIVATE
@@ -16,7 +17,21 @@ target_link_libraries(tx-replication-service PUBLIC
   contrib-libs-cxxsupp
   yutil
   ydb-core-base
+  ydb-core-change_exchange
+  ydb-core-protos
+  ydb-core-scheme
+  ydb-core-scheme_types
+  ydb-core-tablet_flat
+  core-io_formats-cell_maker
+  tx-replication-ydb_proxy
+  library-actors-core
+  ydb-library-services
+  library-cpp-json
 )
 target_sources(tx-replication-service PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/json_change_record.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/service.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/table_writer.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/topic_reader.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/worker.cpp
 )
diff --git a/ydb/core/tx/replication/service/CMakeLists.windows-x86_64.txt b/ydb/core/tx/replication/service/CMakeLists.windows-x86_64.txt
index ce070b006e1f..4fa535b4626b 100644
--- a/ydb/core/tx/replication/service/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/replication/service/CMakeLists.windows-x86_64.txt
@@ -6,6 +6,7 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(ut_topic_reader)
 
 add_library(tx-replication-service)
 target_compile_options(tx-replication-service PRIVATE
@@ -15,7 +16,21 @@ target_link_libraries(tx-replication-service PUBLIC
   contrib-libs-cxxsupp
   yutil
   ydb-core-base
+  ydb-core-change_exchange
+  ydb-core-protos
+  ydb-core-scheme
+  ydb-core-scheme_types
+  ydb-core-tablet_flat
+  core-io_formats-cell_maker
+  tx-replication-ydb_proxy
+  library-actors-core
+  ydb-library-services
+  library-cpp-json
 )
 target_sources(tx-replication-service PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/json_change_record.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/service.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/table_writer.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/topic_reader.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/worker.cpp
 )
diff --git a/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.darwin-arm64.txt b/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..f3085f78bcbd
--- /dev/null
+++ b/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.darwin-arm64.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-core-tx-replication-service-ut_topic_reader)
+target_compile_options(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service
+)
+target_link_libraries(ydb-core-tx-replication-service-ut_topic_reader PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  cpp-testing-unittest_main
+  tx-replication-service
+  tx-replication-ut_helpers
+  tx-replication-ydb_proxy
+  cpp-client-ydb_topic
+  cpp-testing-unittest
+)
+target_link_options(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  -Wl,-platform_version,macos,11.0,11.0
+  -fPIC
+  -fPIC
+)
+target_sources(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/topic_reader_ut.cpp
+)
+set_property(
+  TARGET
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  SPLIT_FACTOR
+  10
+)
+add_yunittest(
+  NAME
+  ydb-core-tx-replication-service-ut_topic_reader
+  TEST_TARGET
+  ydb-core-tx-replication-service-ut_topic_reader
+  TEST_ARG
+  --print-before-suite
+  --print-before-test
+  --fork-tests
+  --print-times
+  --show-fails
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  LABELS
+  MEDIUM
+  $FILTER_ONLY_TEST_TAGS
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  PROCESSORS
+  1
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  TIMEOUT
+  600
+)
+target_allocator(ydb-core-tx-replication-service-ut_topic_reader
+  system_allocator
+)
+vcs_info(ydb-core-tx-replication-service-ut_topic_reader)
diff --git a/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..ed0f9b741634
--- /dev/null
+++ b/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.darwin-x86_64.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-core-tx-replication-service-ut_topic_reader)
+target_compile_options(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service
+)
+target_link_libraries(ydb-core-tx-replication-service-ut_topic_reader PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  library-cpp-cpuid_check
+  cpp-testing-unittest_main
+  tx-replication-service
+  tx-replication-ut_helpers
+  tx-replication-ydb_proxy
+  cpp-client-ydb_topic
+  cpp-testing-unittest
+)
+target_link_options(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  -Wl,-platform_version,macos,11.0,11.0
+  -fPIC
+  -fPIC
+)
+target_sources(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/topic_reader_ut.cpp
+)
+set_property(
+  TARGET
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  SPLIT_FACTOR
+  10
+)
+add_yunittest(
+  NAME
+  ydb-core-tx-replication-service-ut_topic_reader
+  TEST_TARGET
+  ydb-core-tx-replication-service-ut_topic_reader
+  TEST_ARG
+  --print-before-suite
+  --print-before-test
+  --fork-tests
+  --print-times
+  --show-fails
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  LABELS
+  MEDIUM
+  $FILTER_ONLY_TEST_TAGS
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  PROCESSORS
+  1
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  TIMEOUT
+  600
+)
+target_allocator(ydb-core-tx-replication-service-ut_topic_reader
+  system_allocator
+)
+vcs_info(ydb-core-tx-replication-service-ut_topic_reader)
diff --git a/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.linux-aarch64.txt b/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..d7c68ad220ad
--- /dev/null
+++ b/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.linux-aarch64.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-core-tx-replication-service-ut_topic_reader)
+target_compile_options(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service
+)
+target_link_libraries(ydb-core-tx-replication-service-ut_topic_reader PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  cpp-testing-unittest_main
+  tx-replication-service
+  tx-replication-ut_helpers
+  tx-replication-ydb_proxy
+  cpp-client-ydb_topic
+  cpp-testing-unittest
+)
+target_link_options(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  -ldl
+  -lrt
+  -Wl,--no-as-needed
+  -fPIC
+  -fPIC
+)
+target_sources(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/topic_reader_ut.cpp
+)
+set_property(
+  TARGET
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  SPLIT_FACTOR
+  10
+)
+add_yunittest(
+  NAME
+  ydb-core-tx-replication-service-ut_topic_reader
+  TEST_TARGET
+  ydb-core-tx-replication-service-ut_topic_reader
+  TEST_ARG
+  --print-before-suite
+  --print-before-test
+  --fork-tests
+  --print-times
+  --show-fails
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  LABELS
+  MEDIUM
+  $FILTER_ONLY_TEST_TAGS
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  PROCESSORS
+  1
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  TIMEOUT
+  600
+)
+target_allocator(ydb-core-tx-replication-service-ut_topic_reader
+  cpp-malloc-jemalloc
+)
+vcs_info(ydb-core-tx-replication-service-ut_topic_reader)
diff --git a/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.linux-x86_64.txt b/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..e34304aab046
--- /dev/null
+++ b/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,84 @@
+
+# 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-core-tx-replication-service-ut_topic_reader)
+target_compile_options(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service
+)
+target_link_libraries(ydb-core-tx-replication-service-ut_topic_reader PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  library-cpp-cpuid_check
+  cpp-testing-unittest_main
+  tx-replication-service
+  tx-replication-ut_helpers
+  tx-replication-ydb_proxy
+  cpp-client-ydb_topic
+  cpp-testing-unittest
+)
+target_link_options(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  -ldl
+  -lrt
+  -Wl,--no-as-needed
+  -fPIC
+  -fPIC
+)
+target_sources(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/topic_reader_ut.cpp
+)
+set_property(
+  TARGET
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  SPLIT_FACTOR
+  10
+)
+add_yunittest(
+  NAME
+  ydb-core-tx-replication-service-ut_topic_reader
+  TEST_TARGET
+  ydb-core-tx-replication-service-ut_topic_reader
+  TEST_ARG
+  --print-before-suite
+  --print-before-test
+  --fork-tests
+  --print-times
+  --show-fails
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  LABELS
+  MEDIUM
+  $FILTER_ONLY_TEST_TAGS
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  PROCESSORS
+  1
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  TIMEOUT
+  600
+)
+target_allocator(ydb-core-tx-replication-service-ut_topic_reader
+  cpp-malloc-tcmalloc
+  libs-tcmalloc-no_percpu_cache
+)
+vcs_info(ydb-core-tx-replication-service-ut_topic_reader)
diff --git a/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.txt b/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.windows-x86_64.txt b/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..0499634bd6f5
--- /dev/null
+++ b/ydb/core/tx/replication/service/ut_topic_reader/CMakeLists.windows-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-core-tx-replication-service-ut_topic_reader)
+target_compile_options(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service
+)
+target_link_libraries(ydb-core-tx-replication-service-ut_topic_reader PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  library-cpp-cpuid_check
+  cpp-testing-unittest_main
+  tx-replication-service
+  tx-replication-ut_helpers
+  tx-replication-ydb_proxy
+  cpp-client-ydb_topic
+  cpp-testing-unittest
+)
+target_sources(ydb-core-tx-replication-service-ut_topic_reader PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/service/topic_reader_ut.cpp
+)
+set_property(
+  TARGET
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  SPLIT_FACTOR
+  10
+)
+add_yunittest(
+  NAME
+  ydb-core-tx-replication-service-ut_topic_reader
+  TEST_TARGET
+  ydb-core-tx-replication-service-ut_topic_reader
+  TEST_ARG
+  --print-before-suite
+  --print-before-test
+  --fork-tests
+  --print-times
+  --show-fails
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  LABELS
+  MEDIUM
+  $FILTER_ONLY_TEST_TAGS
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  PROCESSORS
+  1
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-replication-service-ut_topic_reader
+  PROPERTY
+  TIMEOUT
+  600
+)
+target_allocator(ydb-core-tx-replication-service-ut_topic_reader
+  system_allocator
+)
+vcs_info(ydb-core-tx-replication-service-ut_topic_reader)
diff --git a/ydb/core/tx/replication/ut_helpers/CMakeLists.darwin-arm64.txt b/ydb/core/tx/replication/ut_helpers/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..71ca50befe61
--- /dev/null
+++ b/ydb/core/tx/replication/ut_helpers/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# 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(tx-replication-ut_helpers INTERFACE)
+target_link_libraries(tx-replication-ut_helpers INTERFACE
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-base
+  ydb-core-protos
+  core-testlib-default
+  tx-replication-ydb_proxy
+  cpp-client-ydb_topic
+  cpp-testing-unittest
+)
+target_sources(tx-replication-ut_helpers INTERFACE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ut_helpers/test_env.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ut_helpers/write_topic.h
+)
diff --git a/ydb/core/tx/replication/ut_helpers/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/replication/ut_helpers/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..71ca50befe61
--- /dev/null
+++ b/ydb/core/tx/replication/ut_helpers/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,24 @@
+
+# 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(tx-replication-ut_helpers INTERFACE)
+target_link_libraries(tx-replication-ut_helpers INTERFACE
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-base
+  ydb-core-protos
+  core-testlib-default
+  tx-replication-ydb_proxy
+  cpp-client-ydb_topic
+  cpp-testing-unittest
+)
+target_sources(tx-replication-ut_helpers INTERFACE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ut_helpers/test_env.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ut_helpers/write_topic.h
+)
diff --git a/ydb/core/tx/replication/ut_helpers/CMakeLists.linux-aarch64.txt b/ydb/core/tx/replication/ut_helpers/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..df63b6f0514a
--- /dev/null
+++ b/ydb/core/tx/replication/ut_helpers/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,25 @@
+
+# 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(tx-replication-ut_helpers INTERFACE)
+target_link_libraries(tx-replication-ut_helpers INTERFACE
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-base
+  ydb-core-protos
+  core-testlib-default
+  tx-replication-ydb_proxy
+  cpp-client-ydb_topic
+  cpp-testing-unittest
+)
+target_sources(tx-replication-ut_helpers INTERFACE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ut_helpers/test_env.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ut_helpers/write_topic.h
+)
diff --git a/ydb/core/tx/replication/ut_helpers/CMakeLists.linux-x86_64.txt b/ydb/core/tx/replication/ut_helpers/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..df63b6f0514a
--- /dev/null
+++ b/ydb/core/tx/replication/ut_helpers/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,25 @@
+
+# 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(tx-replication-ut_helpers INTERFACE)
+target_link_libraries(tx-replication-ut_helpers INTERFACE
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-base
+  ydb-core-protos
+  core-testlib-default
+  tx-replication-ydb_proxy
+  cpp-client-ydb_topic
+  cpp-testing-unittest
+)
+target_sources(tx-replication-ut_helpers INTERFACE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ut_helpers/test_env.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ut_helpers/write_topic.h
+)
diff --git a/ydb/core/tx/replication/ut_helpers/CMakeLists.txt b/ydb/core/tx/replication/ut_helpers/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/replication/ut_helpers/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/replication/ut_helpers/CMakeLists.windows-x86_64.txt b/ydb/core/tx/replication/ut_helpers/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..71ca50befe61
--- /dev/null
+++ b/ydb/core/tx/replication/ut_helpers/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,24 @@
+
+# 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(tx-replication-ut_helpers INTERFACE)
+target_link_libraries(tx-replication-ut_helpers INTERFACE
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-base
+  ydb-core-protos
+  core-testlib-default
+  tx-replication-ydb_proxy
+  cpp-client-ydb_topic
+  cpp-testing-unittest
+)
+target_sources(tx-replication-ut_helpers INTERFACE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ut_helpers/test_env.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ut_helpers/write_topic.h
+)
diff --git a/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.darwin-arm64.txt
index 816747bdf68d..02eafccb8f1c 100644
--- a/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.darwin-arm64.txt
@@ -19,16 +19,14 @@ target_link_libraries(ydb-core-tx-replication-ydb_proxy-ut PUBLIC
   yutil
   cpp-testing-unittest_main
   tx-replication-ydb_proxy
-  cpp-testing-unittest
-  core-testlib-default
+  tx-replication-ut_helpers
   cpp-client-ydb_topic
+  cpp-testing-unittest
 )
 target_link_options(ydb-core-tx-replication-ydb_proxy-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-replication-ydb_proxy-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ydb_proxy/ydb_proxy_ut.cpp
@@ -58,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.darwin-x86_64.txt
index e24e8be7605d..2a7ef0d883e5 100644
--- a/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.darwin-x86_64.txt
@@ -20,16 +20,14 @@ target_link_libraries(ydb-core-tx-replication-ydb_proxy-ut PUBLIC
   library-cpp-cpuid_check
   cpp-testing-unittest_main
   tx-replication-ydb_proxy
-  cpp-testing-unittest
-  core-testlib-default
+  tx-replication-ut_helpers
   cpp-client-ydb_topic
+  cpp-testing-unittest
 )
 target_link_options(ydb-core-tx-replication-ydb_proxy-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-replication-ydb_proxy-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ydb_proxy/ydb_proxy_ut.cpp
@@ -59,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.linux-aarch64.txt
index 33fd1e9dd6a9..d4c24fb7442c 100644
--- a/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.linux-aarch64.txt
@@ -20,9 +20,9 @@ target_link_libraries(ydb-core-tx-replication-ydb_proxy-ut PUBLIC
   yutil
   cpp-testing-unittest_main
   tx-replication-ydb_proxy
-  cpp-testing-unittest
-  core-testlib-default
+  tx-replication-ut_helpers
   cpp-client-ydb_topic
+  cpp-testing-unittest
 )
 target_link_options(ydb-core-tx-replication-ydb_proxy-ut PRIVATE
   -ldl
@@ -30,9 +30,6 @@ target_link_options(ydb-core-tx-replication-ydb_proxy-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-replication-ydb_proxy-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ydb_proxy/ydb_proxy_ut.cpp
@@ -62,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.linux-x86_64.txt
index e3ad8ee89c06..df7cfceecf1e 100644
--- a/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.linux-x86_64.txt
@@ -21,9 +21,9 @@ target_link_libraries(ydb-core-tx-replication-ydb_proxy-ut PUBLIC
   library-cpp-cpuid_check
   cpp-testing-unittest_main
   tx-replication-ydb_proxy
-  cpp-testing-unittest
-  core-testlib-default
+  tx-replication-ut_helpers
   cpp-client-ydb_topic
+  cpp-testing-unittest
 )
 target_link_options(ydb-core-tx-replication-ydb_proxy-ut PRIVATE
   -ldl
@@ -31,9 +31,6 @@ target_link_options(ydb-core-tx-replication-ydb_proxy-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-replication-ydb_proxy-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ydb_proxy/ydb_proxy_ut.cpp
@@ -63,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.windows-x86_64.txt
index a231dd3d2263..5ae32cefac60 100644
--- a/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/replication/ydb_proxy/ut/CMakeLists.windows-x86_64.txt
@@ -20,9 +20,9 @@ target_link_libraries(ydb-core-tx-replication-ydb_proxy-ut PUBLIC
   library-cpp-cpuid_check
   cpp-testing-unittest_main
   tx-replication-ydb_proxy
-  cpp-testing-unittest
-  core-testlib-default
+  tx-replication-ut_helpers
   cpp-client-ydb_topic
+  cpp-testing-unittest
 )
 target_sources(ydb-core-tx-replication-ydb_proxy-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/replication/ydb_proxy/ydb_proxy_ut.cpp
@@ -52,6 +52,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/CMakeLists.darwin-arm64.txt b/ydb/core/tx/scheme_board/CMakeLists.darwin-arm64.txt
index 65a6b9453ca1..1a1f1257a6a5 100644
--- a/ydb/core/tx/scheme_board/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/scheme_board/CMakeLists.darwin-arm64.txt
@@ -35,6 +35,7 @@ target_link_libraries(core-tx-scheme_board PUBLIC
 )
 target_sources(core-tx-scheme_board PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/cache.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/events.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/helpers.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/load_test.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/monitoring.cpp
@@ -42,6 +43,7 @@ target_sources(core-tx-scheme_board PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/replica.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/two_part_description.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/opaque_path_description.cpp
 )
 generate_enum_serilization(core-tx-scheme_board
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber.h
diff --git a/ydb/core/tx/scheme_board/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/scheme_board/CMakeLists.darwin-x86_64.txt
index 65a6b9453ca1..1a1f1257a6a5 100644
--- a/ydb/core/tx/scheme_board/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/scheme_board/CMakeLists.darwin-x86_64.txt
@@ -35,6 +35,7 @@ target_link_libraries(core-tx-scheme_board PUBLIC
 )
 target_sources(core-tx-scheme_board PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/cache.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/events.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/helpers.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/load_test.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/monitoring.cpp
@@ -42,6 +43,7 @@ target_sources(core-tx-scheme_board PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/replica.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/two_part_description.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/opaque_path_description.cpp
 )
 generate_enum_serilization(core-tx-scheme_board
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber.h
diff --git a/ydb/core/tx/scheme_board/CMakeLists.linux-aarch64.txt b/ydb/core/tx/scheme_board/CMakeLists.linux-aarch64.txt
index ec77757c3e0f..b3b223597a8d 100644
--- a/ydb/core/tx/scheme_board/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/scheme_board/CMakeLists.linux-aarch64.txt
@@ -36,6 +36,7 @@ target_link_libraries(core-tx-scheme_board PUBLIC
 )
 target_sources(core-tx-scheme_board PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/cache.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/events.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/helpers.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/load_test.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/monitoring.cpp
@@ -43,6 +44,7 @@ target_sources(core-tx-scheme_board PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/replica.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/two_part_description.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/opaque_path_description.cpp
 )
 generate_enum_serilization(core-tx-scheme_board
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber.h
diff --git a/ydb/core/tx/scheme_board/CMakeLists.linux-x86_64.txt b/ydb/core/tx/scheme_board/CMakeLists.linux-x86_64.txt
index ec77757c3e0f..b3b223597a8d 100644
--- a/ydb/core/tx/scheme_board/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/scheme_board/CMakeLists.linux-x86_64.txt
@@ -36,6 +36,7 @@ target_link_libraries(core-tx-scheme_board PUBLIC
 )
 target_sources(core-tx-scheme_board PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/cache.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/events.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/helpers.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/load_test.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/monitoring.cpp
@@ -43,6 +44,7 @@ target_sources(core-tx-scheme_board PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/replica.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/two_part_description.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/opaque_path_description.cpp
 )
 generate_enum_serilization(core-tx-scheme_board
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber.h
diff --git a/ydb/core/tx/scheme_board/CMakeLists.windows-x86_64.txt b/ydb/core/tx/scheme_board/CMakeLists.windows-x86_64.txt
index 65a6b9453ca1..1a1f1257a6a5 100644
--- a/ydb/core/tx/scheme_board/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/scheme_board/CMakeLists.windows-x86_64.txt
@@ -35,6 +35,7 @@ target_link_libraries(core-tx-scheme_board PUBLIC
 )
 target_sources(core-tx-scheme_board PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/cache.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/events.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/helpers.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/load_test.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/monitoring.cpp
@@ -42,6 +43,7 @@ target_sources(core-tx-scheme_board PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/replica.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/two_part_description.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/opaque_path_description.cpp
 )
 generate_enum_serilization(core-tx-scheme_board
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber.h
diff --git a/ydb/core/tx/scheme_board/cache.cpp b/ydb/core/tx/scheme_board/cache.cpp
index c02f74e8f567..89f0796b905a 100644
--- a/ydb/core/tx/scheme_board/cache.cpp
+++ b/ydb/core/tx/scheme_board/cache.cpp
@@ -188,8 +188,8 @@ namespace {
             return entry.KeyDescription->SecurityObject;
         }
 
-        static ui32 GetAccess(const TNavigate::TEntry&) {
-            return NACLib::EAccessRights::DescribeSchema;
+        static ui32 GetAccess(const TNavigate::TEntry& entry) {
+            return entry.Access;
         }
 
         static ui32 GetAccess(const TResolve::TEntry& entry) {
@@ -774,6 +774,7 @@ class TSchemeCache: public TMonitorableActor {
                     columnDesc.HasTypeInfo() ? &columnDesc.GetTypeInfo() : nullptr);
                 column.PType = typeInfoMod.TypeInfo;
                 column.PTypeMod = typeInfoMod.TypeMod;
+                column.IsBuildInProgress = columnDesc.GetIsBuildInProgress();
 
                 if (columnDesc.HasDefaultFromSequence()) {
                     column.SetDefaultFromSequence();
@@ -784,6 +785,7 @@ class TSchemeCache: public TMonitorableActor {
                 }
 
                 if (columnDesc.GetNotNull()) {
+                    column.IsNotNullColumn = true;
                     NotNullColumns.insert(columnDesc.GetName());
                 }
             }
diff --git a/ydb/core/tx/scheme_board/cache_ut.cpp b/ydb/core/tx/scheme_board/cache_ut.cpp
index 745fdf839b2a..7fc37dffbcb9 100644
--- a/ydb/core/tx/scheme_board/cache_ut.cpp
+++ b/ydb/core/tx/scheme_board/cache_ut.cpp
@@ -37,6 +37,11 @@ class TCacheTest: public TTestWithSchemeshard {
                              "  Kind: \"pool-kind-1\" "
                              "} "
                              " Name: \"Root\" ");
+
+        // Context->SetLogPriority(NKikimrServices::SCHEME_BOARD_REPLICA, NLog::PRI_DEBUG);
+        // Context->SetLogPriority(NKikimrServices::SCHEME_BOARD_SUBSCRIBER, NLog::PRI_DEBUG);
+        // Context->SetLogPriority(NKikimrServices::TX_PROXY_SCHEME_CACHE, NLog::PRI_DEBUG);
+        // Context->SetLogPriority(NKikimrServices::FLAT_TX_SCHEMESHARD, NLog::PRI_DEBUG);
     }
 
     UNIT_TEST_SUITE(TCacheTest);
diff --git a/ydb/core/tx/scheme_board/events.cpp b/ydb/core/tx/scheme_board/events.cpp
new file mode 100644
index 000000000000..ba721e3790b6
--- /dev/null
+++ b/ydb/core/tx/scheme_board/events.cpp
@@ -0,0 +1,152 @@
+#include 
+
+#include "helpers.h"
+#include "opaque_path_description.h"
+#include "events.h"
+
+
+namespace NKikimr {
+
+using namespace NSchemeBoard;
+
+namespace {
+
+//NOTE: MakeOpaquePathDescription moves out DescribeSchemeResultSerialized from TEvUpdate message.
+// It cannot be used twice on the same message.
+//
+// This code would be much simpler without backward compatibility support.
+// Consider removing compatibility support at version stable-25-1.
+TOpaquePathDescription MakeOpaquePathDescription(NKikimrSchemeBoard::TEvUpdate& update) {
+    // PathSubdomainPathId's absence is a marker that input message was sent
+    // from the older populator implementation
+
+    // Move out elements out of the repeated field.
+    // Mark field as empty to prevent subsequent extraction attempts
+    TString data;
+    auto* field = update.MutableDescribeSchemeResultSerialized();
+    if (field->size() == 1) {
+        data = std::move(*field->begin());
+    } else {
+        data = JoinRange("", field->begin(), field->end());
+    }
+    field->Clear();
+
+    if (update.HasPathSubdomainPathId()) {
+        return TOpaquePathDescription{
+            .DescribeSchemeResultSerialized = std::move(data),
+            //NOTE: unsuccessful describe results cannot be here, by design
+            .Status = NKikimrScheme::StatusSuccess,
+            .PathId = TPathId(update.GetPathOwnerId(), update.GetLocalPathId()),
+            .Path = update.GetPath(),
+            .PathVersion = update.GetPathDirEntryPathVersion(),
+            .SubdomainPathId = PathIdFromPathId(update.GetPathSubdomainPathId()),
+            .PathAbandonedTenantsSchemeShards = TSet(
+                update.GetPathAbandonedTenantsSchemeShards().begin(),
+                update.GetPathAbandonedTenantsSchemeShards().end()
+            )
+        };
+
+    } else {
+        google::protobuf::Arena arena;
+        const auto* proto = DeserializeDescribeSchemeResult(data, &arena);
+
+        return TOpaquePathDescription{
+            .DescribeSchemeResultSerialized = std::move(data),
+            //NOTE: unsuccessful describe results cannot be here, by design
+            .Status = NKikimrScheme::StatusSuccess,
+            .PathId = NSchemeBoard::GetPathId(*proto),
+            .Path = proto->GetPath(),
+            .PathVersion = NSchemeBoard::GetPathVersion(*proto),
+            .SubdomainPathId = NSchemeBoard::GetDomainId(*proto),
+            .PathAbandonedTenantsSchemeShards = NSchemeBoard::GetAbandonedSchemeShardIds(*proto)
+        };
+    }
+}
+
+}  // anonymous namespace
+
+// TSchemeBoardEvents::TEvUpdate
+//
+
+TOpaquePathDescription TSchemeBoardEvents::TEvUpdate::ExtractPathDescription() {
+    return MakeOpaquePathDescription(Record);
+}
+
+// TSchemeBoardEvents::TEvUpdateBuilder
+//
+
+TSchemeBoardEvents::TEvUpdateBuilder::TEvUpdateBuilder(const ui64 owner, const ui64 generation) {
+    Record.SetOwner(owner);
+    Record.SetGeneration(generation);
+}
+
+TSchemeBoardEvents::TEvUpdateBuilder::TEvUpdateBuilder(const ui64 owner, const ui64 generation, const TPathId& pathId) {
+    Record.SetOwner(owner);
+    Record.SetGeneration(generation);
+    Record.SetPathOwnerId(pathId.OwnerId);
+    Record.SetLocalPathId(pathId.LocalPathId);
+    Record.SetIsDeletion(true);
+}
+
+TSchemeBoardEvents::TEvUpdateBuilder::TEvUpdateBuilder(
+    const ui64 owner,
+    const ui64 generation,
+    const TOpaquePathDescription& pathDescription,
+    const bool isDeletion
+) {
+    Record.SetOwner(owner);
+    Record.SetGeneration(generation);
+    Record.SetIsDeletion(isDeletion);
+
+    Record.SetPath(pathDescription.Path);
+    Record.SetPathOwnerId(pathDescription.PathId.OwnerId);
+    Record.SetLocalPathId(pathDescription.PathId.LocalPathId);
+
+    Record.SetPathDirEntryPathVersion(pathDescription.PathVersion);
+    PathIdFromPathId(pathDescription.SubdomainPathId, Record.MutablePathSubdomainPathId());
+
+    Record.MutablePathAbandonedTenantsSchemeShards()->Assign(
+        pathDescription.PathAbandonedTenantsSchemeShards.begin(),
+        pathDescription.PathAbandonedTenantsSchemeShards.end()
+    );
+}
+
+void TSchemeBoardEvents::TEvUpdateBuilder::SetDescribeSchemeResultSerialized(const TString& serialized) {
+    Record.AddDescribeSchemeResultSerialized(serialized);
+}
+
+void TSchemeBoardEvents::TEvUpdateBuilder::SetDescribeSchemeResultSerialized(TString&& serialized) {
+    Record.AddDescribeSchemeResultSerialized(std::move(serialized));
+}
+
+// TSchemeBoardEvents::TEvNotifyBuilder
+//
+
+TSchemeBoardEvents::TEvNotifyBuilder::TEvNotifyBuilder(const TString& path, const bool isDeletion /*= false*/) {
+    Record.SetPath(path);
+    Record.SetIsDeletion(isDeletion);
+}
+
+TSchemeBoardEvents::TEvNotifyBuilder::TEvNotifyBuilder(const TPathId& pathId, const bool isDeletion /*= false*/) {
+    Record.SetPathOwnerId(pathId.OwnerId);
+    Record.SetLocalPathId(pathId.LocalPathId);
+    Record.SetIsDeletion(isDeletion);
+}
+
+TSchemeBoardEvents::TEvNotifyBuilder::TEvNotifyBuilder(const TString& path, const TPathId& pathId, const bool isDeletion /*= false*/) {
+    Record.SetPath(path);
+    Record.SetPathOwnerId(pathId.OwnerId);
+    Record.SetLocalPathId(pathId.LocalPathId);
+    Record.SetIsDeletion(isDeletion);
+}
+
+void TSchemeBoardEvents::TEvNotifyBuilder::SetPathDescription(const TOpaquePathDescription& pathDescription) {
+    Record.SetDescribeSchemeResultSerialized(pathDescription.DescribeSchemeResultSerialized);
+    PathIdFromPathId(pathDescription.SubdomainPathId, Record.MutablePathSubdomainPathId());
+    Record.MutablePathAbandonedTenantsSchemeShards()->Assign(
+        pathDescription.PathAbandonedTenantsSchemeShards.begin(),
+        pathDescription.PathAbandonedTenantsSchemeShards.end()
+    );
+}
+
+} // NKikimr
diff --git a/ydb/core/tx/scheme_board/events.h b/ydb/core/tx/scheme_board/events.h
index 8e686e8b92d3..0c00d939b0da 100644
--- a/ydb/core/tx/scheme_board/events.h
+++ b/ydb/core/tx/scheme_board/events.h
@@ -2,7 +2,7 @@
 
 #include "defs.h"
 #include "helpers.h"
-#include "two_part_description.h"
+#include "opaque_path_description.h"
 
 #include 
 #include 
@@ -14,6 +14,8 @@
 
 namespace NKikimr {
 
+using namespace NSchemeBoard;
+
 struct TSchemeBoardEvents {
     using TDescribeSchemeResult = NKikimrScheme::TEvDescribeSchemeResult;
 
@@ -114,7 +116,7 @@ struct TSchemeBoardEvents {
         const TLocalPathId DeletedPathBegin = 0; // The points are inclusive
         const TLocalPathId DeletedPathEnd = 0; // [DeletedPathBegin; DeletedPathEnd]
         const TLocalPathId MigratedPathId = InvalidLocalPathId;
-        NSchemeBoard::TTwoPartDescription Description;
+        TOpaquePathDescription Description;
 
         TEvDescribeResult() = default;
 
@@ -132,7 +134,7 @@ struct TSchemeBoardEvents {
 
         explicit TEvDescribeResult(
                 TLocalPathId deletedPathBegin, TLocalPathId deletedPathEnd,
-                const NSchemeBoard::TTwoPartDescription& description)
+                const TOpaquePathDescription& description)
             : Commit(false)
             , DeletedPathBegin(deletedPathBegin)
             , DeletedPathEnd(deletedPathEnd)
@@ -159,16 +161,24 @@ struct TSchemeBoardEvents {
         }
 
         bool HasDescription() const {
-            return Description;
+            return !Description.IsEmpty();
         }
 
         TString ToString() const override {
-            return TStringBuilder() << ToStringHeader() << " {"
+            auto builder = TStringBuilder() << ToStringHeader() << " {"
                 << " Commit: " << (Commit ? "true" : "false")
                 << " DeletedPathBegin: " << DeletedPathBegin
                 << " DeletedPathEnd: " << DeletedPathEnd
-                << " msg: " << Description.Record.ShortDebugString()
-            << " }";
+            ;
+            if (HasDescription()) {
+                builder << " { Path: " << Description.Path
+                    << " PathId: " << Description.PathId
+                    << " PathVersion: " << Description.PathVersion
+                    << " }"
+                ;
+            }
+            builder << " }";
+            return builder;
         }
     };
 
@@ -219,6 +229,9 @@ struct TSchemeBoardEvents {
     struct TEvUpdate: public TEventPreSerializedPB {
         TEvUpdate() = default;
 
+        TString GetPath() const {
+            return Record.GetPath();
+        }
         TPathId GetPathId() const {
             if (!Record.HasLocalPathId()) {
                 return TPathId();
@@ -230,6 +243,8 @@ struct TSchemeBoardEvents {
             );
         }
 
+        TOpaquePathDescription ExtractPathDescription();
+
         TString ToString() const override {
             return PrintOwnerGeneration(this, Record);
         }
@@ -240,58 +255,17 @@ struct TSchemeBoardEvents {
 
         TEvUpdateBuilder() = default;
 
-        explicit TEvUpdateBuilder(const ui64 owner, const ui64 generation) {
-            Record.SetOwner(owner);
-            Record.SetGeneration(generation);
-        }
-
-        explicit TEvUpdateBuilder(const ui64 owner, const ui64 generation, const TPathId& pathId) {
-            Record.SetOwner(owner);
-            Record.SetGeneration(generation);
-            Record.SetPathOwnerId(pathId.OwnerId);
-            Record.SetLocalPathId(pathId.LocalPathId);
-            Record.SetIsDeletion(true);
-        }
-
+        explicit TEvUpdateBuilder(const ui64 owner, const ui64 generation);
+        explicit TEvUpdateBuilder(const ui64 owner, const ui64 generation, const TPathId& pathId);
         explicit TEvUpdateBuilder(
             const ui64 owner,
             const ui64 generation,
-            const TDescribeSchemeResult& describeSchemeResult,
+            const TOpaquePathDescription& pathDescription,
             const bool isDeletion = false
-        ) {
-            Record.SetOwner(owner);
-            Record.SetGeneration(generation);
-            if (describeSchemeResult.HasPath()) {
-                Record.SetPath(describeSchemeResult.GetPath());
-            }
-            if (describeSchemeResult.HasPathDescription()
-                && describeSchemeResult.GetPathDescription().HasSelf()) {
-                Record.SetPathOwnerId(describeSchemeResult.GetPathDescription().GetSelf().GetSchemeshardId());
-            }
-            Record.SetLocalPathId(describeSchemeResult.GetPathId());
-            if (describeSchemeResult.HasPathOwnerId()) {
-                Record.SetPathOwnerId(describeSchemeResult.GetPathOwnerId());
-            }
-            Record.SetIsDeletion(isDeletion);
-        }
-
-        void SetDescribeSchemeResult(TString preSerialized) {
-            PreSerializedData = NSchemeBoard::PreSerializedProtoField(
-                std::move(preSerialized), Record.kDescribeSchemeResultFieldNumber);
-        }
+        );
 
-        void SetDescribeSchemeResult(TDescribeSchemeResult describeSchemeResult) {
-            *Record.MutableDescribeSchemeResult() = std::move(describeSchemeResult);
-        }
-
-        void SetDescribeSchemeResult(TString preSerialized, TDescribeSchemeResult describeSchemeResult) {
-            SetDescribeSchemeResult(std::move(preSerialized));
-            SetDescribeSchemeResult(std::move(describeSchemeResult));
-        }
-
-        void SetDescribeSchemeResult(NSchemeBoard::TTwoPartDescription twoPart) {
-            SetDescribeSchemeResult(std::move(twoPart.PreSerialized), std::move(twoPart.Record));
-        }
+        void SetDescribeSchemeResultSerialized(const TString& serialized);
+        void SetDescribeSchemeResultSerialized(TString&& serialized);
     };
 
     struct TEvUpdateAck: public TEventPB {
@@ -398,6 +372,21 @@ struct TSchemeBoardEvents {
         }
     };
 
+    template 
+    static TStringBuilder& PrintPathVersion(TStringBuilder& out, const T& record) {
+        return out
+            << " Version: " << NSchemeBoard::GetPathVersion(record)
+        ;
+    }
+
+    template <>
+    TString PrintPath(const IEventBase* ev, const NKikimrSchemeBoard::TEvNotify& record) {
+        auto out = TStringBuilder() << ev->ToStringHeader() << " {";
+        PrintPath(out, record);
+        PrintPathVersion(out, record);
+        return out << " }";
+    }
+
     struct TEvNotify: public TEventPreSerializedPB {
         TEvNotify() = default;
 
@@ -411,32 +400,11 @@ struct TSchemeBoardEvents {
 
         TEvNotifyBuilder() = default;
 
-        explicit TEvNotifyBuilder(const TString& path, const bool isDeletion = false) {
-            Record.SetPath(path);
-            Record.SetIsDeletion(isDeletion);
-        }
+        explicit TEvNotifyBuilder(const TString& path, const bool isDeletion = false);
+        explicit TEvNotifyBuilder(const TPathId& pathId, const bool isDeletion = false);
+        explicit TEvNotifyBuilder(const TString& path, const TPathId& pathId, const bool isDeletion = false);
 
-        explicit TEvNotifyBuilder(const TPathId& pathId, const bool isDeletion = false) {
-            Record.SetPathOwnerId(pathId.OwnerId);
-            Record.SetLocalPathId(pathId.LocalPathId);
-            Record.SetIsDeletion(isDeletion);
-        }
-
-        explicit TEvNotifyBuilder(
-            const TString& path,
-            const TPathId& pathId,
-            const bool isDeletion = false
-        ) {
-            Record.SetPath(path);
-            Record.SetPathOwnerId(pathId.OwnerId);
-            Record.SetLocalPathId(pathId.LocalPathId);
-            Record.SetIsDeletion(isDeletion);
-        }
-
-        void SetDescribeSchemeResult(const TString& preSerialized) {
-            PreSerializedData = NSchemeBoard::PreSerializedProtoField(
-                preSerialized, Record.kDescribeSchemeResultFieldNumber);
-        }
+        void SetPathDescription(const TOpaquePathDescription& pathDescription);
     };
 
     struct TEvNotifyAck: public TEventPB {
diff --git a/ydb/core/tx/scheme_board/helpers.cpp b/ydb/core/tx/scheme_board/helpers.cpp
index 7505f1c39f28..89cbaf614cc2 100644
--- a/ydb/core/tx/scheme_board/helpers.cpp
+++ b/ydb/core/tx/scheme_board/helpers.cpp
@@ -1,13 +1,10 @@
 #include "helpers.h"
 
-#include 
-#include 
-#include 
+#include 
 
-#include 
-#include 
+#include 
 
-#include 
+#include 
 
 namespace NKikimr {
 namespace NSchemeBoard {
@@ -16,6 +13,9 @@ TActorId MakeInterconnectProxyId(const ui32 nodeId) {
     return TActivationContext::InterconnectProxy(nodeId);
 }
 
+// NKikimrScheme::TEvDescribeSchemeResult
+//
+
 ui64 GetPathVersion(const NKikimrScheme::TEvDescribeSchemeResult& record) {
     if (!record.HasPathDescription()) {
         return 0;
@@ -34,6 +34,10 @@ ui64 GetPathVersion(const NKikimrScheme::TEvDescribeSchemeResult& record) {
     return self.GetPathVersion();
 }
 
+// Object path-id is determined from TDescribeSchemeResult with backward compatibility support.
+// DescribeSchemeResult.PathOwnerId should be used.
+// DescribeSchemeResult.PathDescription.Self.SchemeshardId is deprecated.
+// DescribeSchemeResult.PathOwnerId takes preference.
 TPathId GetPathId(const NKikimrScheme::TEvDescribeSchemeResult &record) {
     if (record.HasPathId() && record.HasPathOwnerId()) {
         return TPathId(record.GetPathOwnerId(), record.GetPathId());
@@ -81,6 +85,40 @@ TSet GetAbandonedSchemeShardIds(const NKikimrScheme::TEvDescribeSchemeResu
     );
 }
 
+// NKikimrSchemeBoard::TEvUpdate
+//
+
+ui64 GetPathVersion(const NKikimrSchemeBoard::TEvUpdate& record) {
+    return record.GetPathDirEntryPathVersion();
+}
+
+TSet GetAbandonedSchemeShardIds(const NKikimrSchemeBoard::TEvUpdate& record) {
+    return TSet(
+        record.GetPathAbandonedTenantsSchemeShards().begin(),
+        record.GetPathAbandonedTenantsSchemeShards().end()
+    );
+}
+
+// NKikimrSchemeBoard::TEvNotify
+//
+
+ui64 GetPathVersion(const NKikimrSchemeBoard::TEvNotify& record) {
+    return record.GetVersion();
+}
+
+NSchemeBoard::TDomainId GetDomainId(const NKikimrSchemeBoard::TEvNotify& record) {
+    return PathIdFromPathId(record.GetPathSubdomainPathId());
+}
+
+TSet GetAbandonedSchemeShardIds(const NKikimrSchemeBoard::TEvNotify& record) {
+    return TSet(
+        record.GetPathAbandonedTenantsSchemeShards().begin(),
+        record.GetPathAbandonedTenantsSchemeShards().end()
+    );
+}
+
+// Assorted methods
+//
 TIntrusivePtr SerializeEvent(IEventBase* ev) {
     TAllocChunkSerializer serializer;
     Y_ABORT_UNLESS(ev->SerializeToArcadiaStream(&serializer));
@@ -96,21 +134,44 @@ void MultiSend(const TVector& recipients, const TActorId& sende
     }
 }
 
-TString PreSerializedProtoField(TString data, int fieldNo) {
-    using CodedOutputStream = google::protobuf::io::CodedOutputStream;
-    using StringOutputStream = google::protobuf::io::StringOutputStream;
-    using WireFormat = google::protobuf::internal::WireFormatLite;
+// Work with TEvDescribeSchemeResult and its parts
+//
 
-    TString key;
-    {
-        StringOutputStream stream(&key);
-        CodedOutputStream output(&stream);
-        WireFormat::WriteTag(fieldNo, WireFormat::WireType::WIRETYPE_LENGTH_DELIMITED, &output);
-        output.WriteVarint32(data.size());
-    }
+TString SerializeDescribeSchemeResult(const NKikimrScheme::TEvDescribeSchemeResult& proto) {
+    TString serialized;
+    Y_PROTOBUF_SUPPRESS_NODISCARD proto.SerializeToString(&serialized);
+    return serialized;
+}
+
+TString SerializeDescribeSchemeResult(const TString& preSerializedPart, const NKikimrScheme::TEvDescribeSchemeResult& protoPart) {
+    return Join("", preSerializedPart, SerializeDescribeSchemeResult(protoPart));
+}
+
+NKikimrScheme::TEvDescribeSchemeResult DeserializeDescribeSchemeResult(const TString& serialized) {
+    NKikimrScheme::TEvDescribeSchemeResult result;
+    Y_ABORT_UNLESS(ParseFromStringNoSizeLimit(result, serialized));
+    return result;
+}
+
+NKikimrScheme::TEvDescribeSchemeResult* DeserializeDescribeSchemeResult(const TString& serialized, google::protobuf::Arena* arena) {
+    auto* proto = google::protobuf::Arena::CreateMessage(arena);
+    Y_ABORT_UNLESS(ParseFromStringNoSizeLimit(*proto, serialized));
+    return proto;
+}
+
+TString JsonFromDescribeSchemeResult(const TString& serialized) {
+    using namespace google::protobuf::util;
+
+    google::protobuf::Arena arena;
+    const auto* proto = DeserializeDescribeSchemeResult(serialized, &arena);
+
+    JsonPrintOptions opts;
+    opts.preserve_proto_field_names = true;
+
+    TString json;
+    MessageToJsonString(*proto, &json, opts);
 
-    data.prepend(key);
-    return data;
+    return json;
 }
 
 } // NSchemeBoard
diff --git a/ydb/core/tx/scheme_board/helpers.h b/ydb/core/tx/scheme_board/helpers.h
index f9c5e9c378b1..a00fb1f44354 100644
--- a/ydb/core/tx/scheme_board/helpers.h
+++ b/ydb/core/tx/scheme_board/helpers.h
@@ -4,6 +4,7 @@
 #include 
 
 #include 
+#include 
 
 #include 
 
@@ -34,12 +35,20 @@ namespace NSchemeBoard {
 using TDomainId = TPathId;
 
 TActorId MakeInterconnectProxyId(const ui32 nodeId);
+
+// Extract metainfo directly from DescribeSchemeResult message
 ui64 GetPathVersion(const NKikimrScheme::TEvDescribeSchemeResult& record);
 TPathId GetPathId(const NKikimrScheme::TEvDescribeSchemeResult& record);
 TDomainId GetDomainId(const NKikimrScheme::TEvDescribeSchemeResult& record);
-TSet GetAbandonedSchemeShardIds(const NKikimrScheme::TEvDescribeSchemeResult &record);
+TSet GetAbandonedSchemeShardIds(const NKikimrScheme::TEvDescribeSchemeResult& record);
+
+// Extract metainfo from TEvUpdate message
+ui64 GetPathVersion(const NKikimrSchemeBoard::TEvUpdate& record);
 
-TIntrusivePtr SerializeEvent(IEventBase* ev);
+// Extract metainfo from TEvNotify message
+ui64 GetPathVersion(const NKikimrSchemeBoard::TEvNotify& record);
+NSchemeBoard::TDomainId GetDomainId(const NKikimrSchemeBoard::TEvNotify& record);
+TSet GetAbandonedSchemeShardIds(const NKikimrSchemeBoard::TEvNotify& record);
 
 void MultiSend(const TVector& recipients, const TActorId& sender, TAutoPtr ev, ui32 flags = 0, ui64 cookie = 0);
 
@@ -48,8 +57,12 @@ void MultiSend(const TVector& recipients, const TActorId& sende
     MultiSend(recipients, sender, static_cast(ev.Release()), flags, cookie);
 }
 
-// Only string or embed message fields are supported (it used wire type = 2 internally)
-TString PreSerializedProtoField(TString data, int fieldNo);
+// Work with TEvDescribeSchemeResult and its parts
+TString SerializeDescribeSchemeResult(const NKikimrScheme::TEvDescribeSchemeResult& proto);
+TString SerializeDescribeSchemeResult(const TString& preSerializedPart, const NKikimrScheme::TEvDescribeSchemeResult& protoPart);
+NKikimrScheme::TEvDescribeSchemeResult DeserializeDescribeSchemeResult(const TString& serialized);
+NKikimrScheme::TEvDescribeSchemeResult* DeserializeDescribeSchemeResult(const TString& serialized, google::protobuf::Arena* arena);
+TString JsonFromDescribeSchemeResult(const TString& serialized);
 
 } // NSchemeBoard
 } // NKikimr
diff --git a/ydb/core/tx/scheme_board/load_test.cpp b/ydb/core/tx/scheme_board/load_test.cpp
index 1e2b0f6a88f3..48f3999cc7c4 100644
--- a/ydb/core/tx/scheme_board/load_test.cpp
+++ b/ydb/core/tx/scheme_board/load_test.cpp
@@ -57,14 +57,14 @@ class TLoadProducer: public TActorBootstrapped {
             TDescription& dirDesc = dirDescTwoPart.Record;
 
             dirDesc.SetStatus(NKikimrScheme::StatusSuccess);
-            dirDesc.SetPathOwner(owner);
+            dirDesc.SetPathOwnerId(owner);
             dirDesc.SetPathId(nextPathId++);
             dirDesc.SetPath(dirPath);
 
             auto& dirSelf = *dirDesc.MutablePathDescription()->MutableSelf();
             dirSelf.SetName(dirName);
             dirSelf.SetPathId(dirDesc.GetPathId());
-            dirSelf.SetSchemeshardId(dirDesc.GetPathOwner());
+            dirSelf.SetSchemeshardId(dirDesc.GetPathOwnerId());
             dirSelf.SetPathType(NKikimrSchemeOp::EPathTypeDir);
             dirSelf.SetCreateFinished(true);
             dirSelf.SetCreateTxId(1);
@@ -84,7 +84,7 @@ class TLoadProducer: public TActorBootstrapped {
                 TDescription& objDesc = objDescTwoPart.Record;
 
                 objDesc.SetStatus(NKikimrScheme::StatusSuccess);
-                objDesc.SetPathOwner(owner);
+                objDesc.SetPathOwnerId(owner);
                 objDesc.SetPathId(nextPathId++);
                 objDesc.SetPath(objPath);
 
@@ -94,7 +94,7 @@ class TLoadProducer: public TActorBootstrapped {
                 dirChildren.Add()->CopyFrom(objSelf);
 
                 objSelf.SetPathId(objDesc.GetPathId());
-                objSelf.SetSchemeshardId(objDesc.GetPathOwner());
+                objSelf.SetSchemeshardId(objDesc.GetPathOwnerId());
                 objSelf.SetCreateFinished(true);
                 objSelf.SetCreateTxId(1);
                 objSelf.SetCreateStep(1);
@@ -194,7 +194,7 @@ class TLoadProducer: public TActorBootstrapped {
 
         Descriptions = GenerateDescriptions(Owner, Config, NextPathId);
         Populator = Register(CreateSchemeBoardPopulator(
-            Owner, Max(), ssId, Descriptions, NextPathId
+            Owner, Max(), ssId, std::vector>(Descriptions.begin(), Descriptions.end()), NextPathId
         ));
 
         TPathId pathId(Owner, NextPathId - 1);
@@ -236,7 +236,7 @@ class TLoadProducer: public TActorBootstrapped {
         Send(Subscriber, new TEvents::TEvPoisonPill());
         Subscriber = TActorId();
 
-        const TInstant ts = TInstant::FromValue(GetPathVersion(msg->DescribeSchemeResult));
+        const TInstant ts = TInstant::FromValue(NSchemeBoard::GetPathVersion(msg->DescribeSchemeResult));
         *SyncDuration = (TlsActivationContext->Now() - ts).MilliSeconds();
 
         Test();
@@ -352,7 +352,7 @@ class TLoadConsumer: public TActorBootstrapped {
     void Handle(TSchemeBoardEvents::TEvNotifyUpdate::TPtr& ev) {
         const auto* msg = ev->Get();
 
-        const TInstant ts = TInstant::FromValue(GetPathVersion(msg->DescribeSchemeResult));
+        const TInstant ts = TInstant::FromValue(NSchemeBoard::GetPathVersion(msg->DescribeSchemeResult));
         if (IsDir(msg->DescribeSchemeResult)) {
             LatencyDir->Collect((TlsActivationContext->Now() - ts).MilliSeconds());
         } else {
diff --git a/ydb/core/tx/scheme_board/opaque_path_description.cpp b/ydb/core/tx/scheme_board/opaque_path_description.cpp
new file mode 100644
index 000000000000..a78a0dc58877
--- /dev/null
+++ b/ydb/core/tx/scheme_board/opaque_path_description.cpp
@@ -0,0 +1,41 @@
+#include "helpers.h"
+#include "two_part_description.h"
+#include "opaque_path_description.h"
+
+namespace NKikimr::NSchemeBoard {
+
+bool TOpaquePathDescription::IsEmpty() const {
+    return DescribeSchemeResultSerialized.empty();
+}
+
+TString TOpaquePathDescription::ToString() const {
+    // fields are reordered to be more useful to people reading logs
+    return TStringBuilder() << "{"
+        << "Status " << Status
+        << ", Path " << Path
+        << ", PathId " << PathId
+        << ", PathVersion " << PathVersion
+        << ", SubdomainPathId " << SubdomainPathId
+        << ", PathAbandonedTenantsSchemeShards size " << PathAbandonedTenantsSchemeShards.size()
+        << ", DescribeSchemeResultSerialized size " << DescribeSchemeResultSerialized.size()
+        << "}"
+    ;
+}
+
+TOpaquePathDescription MakeOpaquePathDescription(const TString& preSerializedPart, const NKikimrScheme::TEvDescribeSchemeResult& protoPart) {
+    return TOpaquePathDescription{
+        .DescribeSchemeResultSerialized = SerializeDescribeSchemeResult(preSerializedPart, protoPart),
+        .Status = protoPart.GetStatus(),
+        .PathId = GetPathId(protoPart),
+        .Path = protoPart.GetPath(),
+        .PathVersion = GetPathVersion(protoPart),
+        .SubdomainPathId = GetDomainId(protoPart),
+        .PathAbandonedTenantsSchemeShards = GetAbandonedSchemeShardIds(protoPart),
+    };
+}
+
+TOpaquePathDescription MakeOpaquePathDescription(const TTwoPartDescription& twoPartDescription) {
+    return MakeOpaquePathDescription(twoPartDescription.PreSerialized, twoPartDescription.Record);
+}
+
+}  // NKikimr::NSchemeBoard
diff --git a/ydb/core/tx/scheme_board/opaque_path_description.h b/ydb/core/tx/scheme_board/opaque_path_description.h
new file mode 100644
index 000000000000..384d7c2ac25e
--- /dev/null
+++ b/ydb/core/tx/scheme_board/opaque_path_description.h
@@ -0,0 +1,46 @@
+#pragma once
+
+#include 
+#include 
+
+#include 
+#include 
+
+
+namespace NKikimr::NSchemeBoard {
+
+struct TOpaquePathDescription {
+    // Serialized TEvDescribeSchemeResult
+    TString DescribeSchemeResultSerialized;
+
+    // Explicit values extracted from original TEvDescribeSchemeResult
+
+    //  TEvDescribeSchemeResult.Status, invalid status value by default
+    NKikimrScheme::EStatus Status = NKikimrScheme::EStatus_MAX;
+
+    //  TEvDescribeSchemeResult.(PathOwnerId,PathId) or TEvDescribeSchemeResult.PathDescription.Self.(SchemeshardId,PathId) in order of presence
+    TPathId PathId;
+
+    //  TEvDescribeSchemeResult.Path
+    TString Path;
+
+    //  TEvDescribeSchemeResult.PathDescription.Self.PathVersion
+    ui64 PathVersion = 0;
+
+    //  TEvDescribeSchemeResult.PathDescription.DomainDescription.DomainKey
+    TPathId SubdomainPathId;
+
+    //  TEvDescribeSchemeResult.PathDescription.AbandonedTenantsSchemeShards
+    TSet PathAbandonedTenantsSchemeShards;
+
+    bool IsEmpty() const;
+
+    TString ToString() const;
+};
+
+struct TTwoPartDescription;
+
+TOpaquePathDescription MakeOpaquePathDescription(const TString& preSerializedPart, const NKikimrScheme::TEvDescribeSchemeResult& protoPart);
+TOpaquePathDescription MakeOpaquePathDescription(const TTwoPartDescription& twoPartDescription);
+
+}  // NKikimr::NSchemeBoard
diff --git a/ydb/core/tx/scheme_board/populator.cpp b/ydb/core/tx/scheme_board/populator.cpp
index c0a25fc039dc..28c305aaee09 100644
--- a/ydb/core/tx/scheme_board/populator.cpp
+++ b/ydb/core/tx/scheme_board/populator.cpp
@@ -1,10 +1,9 @@
 #include "events.h"
 #include "helpers.h"
 #include "monitorable_actor.h"
+#include "opaque_path_description.h"
 #include "populator.h"
 
-#include 
-
 #include 
 #include 
 #include 
@@ -64,7 +63,7 @@ class TReplicaPopulator: public TMonitorableActor {
         }
 
         auto update = msg->HasDescription()
-            ? MakeHolder(Owner, Generation, msg->Description.Record)
+            ? MakeHolder(Owner, Generation, msg->Description)
             : MakeHolder(Owner, Generation);
 
         if (msg->HasDeletedLocalPathIds()) {
@@ -77,17 +76,11 @@ class TReplicaPopulator: public TMonitorableActor {
         }
 
         if (msg->HasDescription()) {
-            auto& record = msg->Description.Record;
-
-            if (!record.HasStatus()) {
-                SBP_LOG_E("Ignore description without status");
-            } else if (record.GetStatus() != NKikimrScheme::StatusSuccess) {
-                SBP_LOG_E("Ignore description"
-                    << ": status# " << record.GetStatus()
-                    << ", msg# " << record.ShortDebugString());
+            if (msg->Description.Status != NKikimrScheme::StatusSuccess) {
+                SBP_LOG_E("Ignore description: " << msg->Description.ToString());
             } else {
-                CurPathId = GetPathId(record);
-                update->SetDescribeSchemeResult(std::move(msg->Description));
+                CurPathId = msg->Description.PathId;
+                update->SetDescribeSchemeResultSerialized(std::move(msg->Description.DescribeSchemeResultSerialized));
             }
         }
 
@@ -121,7 +114,7 @@ class TReplicaPopulator: public TMonitorableActor {
     void EnqueueUpdate(TSchemeBoardEvents::TEvUpdate::TPtr& ev, bool canSend = false) {
         const TPathId pathId = ev->Get()->GetPathId();
         const auto& record = (static_cast(ev->Get()))->Record;
-        const ui64 version = record.GetIsDeletion() ? Max() : GetPathVersion(record.GetDescribeSchemeResult());
+        const ui64 version = record.GetIsDeletion() ? Max() : NSchemeBoard::GetPathVersion(record);
 
         if (canSend && UpdatesInFlight.size() < BatchSizeLimit) {
             bool needSend = true;
@@ -509,16 +502,16 @@ class TPopulator: public TMonitorableActor {
         auto it = Descriptions.find(pathId);
         Y_ABORT_UNLESS(it != Descriptions.end());
 
-        const auto& record = it->second.Record;
+        const TOpaquePathDescription& desc = it->second;
 
-        TConstArrayRef replicas = SelectReplicas(pathId, record.GetPath());
+        TConstArrayRef replicas = SelectReplicas(pathId, desc.Path);
         for (const auto& replica : replicas) {
             const TActorId* replicaPopulator = ReplicaToReplicaPopulator.FindPtr(replica);
             Y_ABORT_UNLESS(replicaPopulator != nullptr);
 
-            auto update = MakeHolder(Owner, Generation, record, isDeletion);
+            auto update = MakeHolder(Owner, Generation, desc, isDeletion);
             if (!isDeletion) {
-                update->SetDescribeSchemeResult(it->second);
+                update->SetDescribeSchemeResultSerialized(desc.DescribeSchemeResultSerialized);
             }
             update->Record.SetNeedAck(true);
 
@@ -557,7 +550,8 @@ class TPopulator: public TMonitorableActor {
         }
 
         while (it != Descriptions.end()) { // skip irrelevant to the replica
-            if (it->second.Record.GetStatus() == NKikimrScheme::StatusPathDoesNotExist) {
+            const auto& desc = it->second;
+            if (desc.Status == NKikimrScheme::StatusPathDoesNotExist) {
                 // KIKIMR-13173
                 // it is assumed that not deleted pathes present in Descriptions
                 // but it might be, since we have the difference at path description and init population
@@ -568,8 +562,7 @@ class TPopulator: public TMonitorableActor {
                 continue;
             }
 
-            TPathId pathId(it->second.Record.GetPathOwnerId(), it->second.Record.GetPathId());
-            TConstArrayRef replicas = SelectReplicas(pathId, it->second.Record.GetPath());
+            TConstArrayRef replicas = SelectReplicas(desc.PathId, desc.Path);
             if (Find(replicas, replica) != replicas.end()) {
                 break;
             }
@@ -591,17 +584,15 @@ class TPopulator: public TMonitorableActor {
         }
 
         const auto& description = it->second;
-        const auto& record = description.Record;
-        auto pathId = TPathId(it->second.Record.GetPathOwnerId(), it->second.Record.GetPathId());
 
-        if (pathId.OwnerId != Owner) {
+        if (description.PathId.OwnerId != Owner) {
             // this is an alien migrated migrated path from another owner, push it as a dot
             Send(replicaPopulator, new TSchemeBoardEvents::TEvDescribeResult(0, 0, description));
             return;
         }
 
         TLocalPathId deletedBegin = startPathId.LocalPathId;
-        TLocalPathId deletedEnd = record.GetPathId() - 1;
+        TLocalPathId deletedEnd = description.PathId.LocalPathId - 1;
 
         if (startPathId.OwnerId != Owner) {
             deletedBegin = 1;
@@ -613,7 +604,7 @@ class TPopulator: public TMonitorableActor {
             deletedEnd = 0;
         }
 
-        if (record.GetStatus() == NKikimrScheme::EStatus::StatusRedirectDomain) {
+        if (description.Status == NKikimrScheme::EStatus::StatusRedirectDomain) {
             // this path has been migrated to another owner
             Send(replicaPopulator, new TSchemeBoardEvents::TEvDescribeResult(deletedBegin, deletedEnd, it->first.LocalPathId));
             return;
@@ -633,11 +624,12 @@ class TPopulator: public TMonitorableActor {
         if (it == Descriptions.end()) {
             update = MakeHolder(Owner, Generation, pathId);
         } else {
-            update = MakeHolder(Owner, Generation, it->second.Record);
-            update->SetDescribeSchemeResult(it->second);
+            const auto& desc = it->second;
+            update = MakeHolder(Owner, Generation, desc);
+            update->SetDescribeSchemeResultSerialized(desc.DescribeSchemeResultSerialized);
         }
-
         update->Record.SetNeedAck(true);
+
         Send(ev->Sender, std::move(update));
     }
 
@@ -650,13 +642,19 @@ class TPopulator: public TMonitorableActor {
     }
 
     void Handle(NSchemeShard::TEvSchemeShard::TEvDescribeSchemeResult::TPtr& ev) {
-        SBP_LOG_D("Handle " << ev->Get()->ToString()
-            << ": sender# " << ev->Sender
-            << ", cookie# " << ev->Cookie);
-
+        //NOTE: avoid using TEventPreSerializedPB::GetRecord() or TEventPreSerializedPB::ToString()
+        // that will cause full reconstruction of TEvDescribeSchemeResult from base stab
+        // and PreSerializedData
         auto* msg = static_cast(ev->Get());
         auto& record = msg->Record;
 
+        SBP_LOG_D("Handle TEvSchemeShard::TEvDescribeSchemeResult { " << record.ShortDebugString() << " }"
+            << ": sender# " << ev->Sender
+            << ", cookie# " << ev->Cookie
+            << ", event size# " << msg->GetCachedByteSize()
+            << ", preserialized size# " << msg->PreSerializedData.size()
+        );
+
         if (!record.HasStatus()) {
             SBP_LOG_E("Description without status");
             return;
@@ -664,13 +662,15 @@ class TPopulator: public TMonitorableActor {
 
         const TPathId pathId = GetPathId(record);
         const bool isDeletion = record.GetStatus() == NKikimrScheme::StatusPathDoesNotExist;
-        const ui64 version = isDeletion ? Max() : GetPathVersion(record);
+        const ui64 version = isDeletion ? Max() : NSchemeBoard::GetPathVersion(record);
 
         SBP_LOG_N("Update description"
             << ": owner# " << Owner
             << ", pathId# " << pathId
             << ", cookie# " << ev->Cookie
-            << ", is deletion# " << (isDeletion ? "true" : "false"));
+            << ", is deletion# " << (isDeletion ? "true" : "false")
+            << ", version: " << (isDeletion ? 0 : version)
+        );
 
         if (isDeletion) {
             if (!Descriptions.contains(pathId)) {
@@ -684,7 +684,7 @@ class TPopulator: public TMonitorableActor {
                 return;
             }
         } else {
-            Descriptions[pathId] = TTwoPartDescription(std::move(msg->PreSerializedData), std::move(record));
+            Descriptions[pathId] = MakeOpaquePathDescription(msg->PreSerializedData, record);
             MaxPathId = Max(MaxPathId, pathId.NextId());
         }
 
@@ -819,22 +819,14 @@ class TPopulator: public TMonitorableActor {
     void Handle(TSchemeBoardMonEvents::TEvDescribeRequest::TPtr& ev) {
         const auto& record = ev->Get()->Record;
 
-        TTwoPartDescription* desc = nullptr;
+        TOpaquePathDescription* desc = nullptr;
         if (record.HasPathId()) {
             desc = Descriptions.FindPtr(TPathId(record.GetPathId().GetOwnerId(), record.GetPathId().GetLocalPathId()));
         }
 
         TString json;
         if (desc) {
-            NKikimrScheme::TEvDescribeSchemeResult fullProto;
-            Y_PROTOBUF_SUPPRESS_NODISCARD fullProto.ParseFromString(desc->PreSerialized);
-            fullProto.MergeFrom(desc->Record);
-
-            using namespace google::protobuf::util;
-
-            JsonPrintOptions opts;
-            opts.preserve_proto_field_names = true;
-            MessageToJsonString(fullProto, &json, opts);
+            json = JsonFromDescribeSchemeResult(desc->DescribeSchemeResultSerialized);
         } else {
             json = "{}";
         }
@@ -872,14 +864,16 @@ class TPopulator: public TMonitorableActor {
             const ui64 owner,
             const ui64 generation,
             const ui32 ssId,
-            TMap descriptions,
+            std::vector>&& twoPartDescriptions,
             const ui64 maxPathId)
         : Owner(owner)
         , Generation(generation)
         , StateStorageGroup(ssId)
-        , Descriptions(std::move(descriptions))
         , MaxPathId(TPathId(owner, maxPathId))
     {
+        for (const auto& [pathId, twoPart] : twoPartDescriptions) {
+            Descriptions.emplace(pathId, MakeOpaquePathDescription(twoPart));
+        }
     }
 
     void Bootstrap() {
@@ -933,7 +927,7 @@ class TPopulator: public TMonitorableActor {
     const ui64 Generation;
     const ui64 StateStorageGroup;
 
-    TMap Descriptions;
+    TMap Descriptions;
     TPathId MaxPathId;
 
     TDelayedUpdates DelayedUpdates;
@@ -958,10 +952,10 @@ IActor* CreateSchemeBoardPopulator(
     const ui64 owner,
     const ui64 generation,
     const ui32 ssId,
-    TMap descriptions,
+    std::vector>&& twoPartDescriptions,
     const ui64 maxPathId
 ) {
-    return new NSchemeBoard::TPopulator(owner, generation, ssId, std::move(descriptions), maxPathId);
+    return new NSchemeBoard::TPopulator(owner, generation, ssId, std::move(twoPartDescriptions), maxPathId);
 }
 
 } // NKikimr
diff --git a/ydb/core/tx/scheme_board/populator.h b/ydb/core/tx/scheme_board/populator.h
index ff0b4cead4b0..d1b5cb9f7cae 100644
--- a/ydb/core/tx/scheme_board/populator.h
+++ b/ydb/core/tx/scheme_board/populator.h
@@ -13,7 +13,7 @@ IActor* CreateSchemeBoardPopulator(
     const ui64 owner,
     const ui64 generation,
     const ui32 schemeBoardSSId,
-    TMap descriptions,
+    std::vector>&& twoPartDescriptions,
     const ui64 maxPathId
 );
 
diff --git a/ydb/core/tx/scheme_board/replica.cpp b/ydb/core/tx/scheme_board/replica.cpp
index 07b81862fc29..cb5ddd2e923f 100644
--- a/ydb/core/tx/scheme_board/replica.cpp
+++ b/ydb/core/tx/scheme_board/replica.cpp
@@ -2,11 +2,11 @@
 #include "events.h"
 #include "helpers.h"
 #include "monitorable_actor.h"
+#include "opaque_path_description.h"
 #include "replica.h"
 
-#include 
+#include 
 
-#include 
 #include 
 #include 
 
@@ -192,24 +192,16 @@ class TReplica: public TMonitorableActor {
             MultiSend(subscribers, Owner->SelfId(), std::move(notify));
         }
 
-        void CalculateResultSize() {
-            ResultSize = DescribeSchemeResult.ByteSizeLong();
-        }
-
-        size_t FullSize() const {
-            size_t size = ResultSize;
-            if (PreSerializedDescribeSchemeResult) {
-                size += PreSerializedDescribeSchemeResult->size();
-            }
-            return size;
-        }
-
         void TrackMemory() const {
-            NActors::NMemory::TLabel::Add(FullSize());
+            NActors::NMemory::TLabel::Add(
+                PathDescription.DescribeSchemeResultSerialized.size()
+            );
         }
 
         void UntrackMemory() const {
-            NActors::NMemory::TLabel::Sub(FullSize());
+            NActors::NMemory::TLabel::Sub(
+                PathDescription.DescribeSchemeResultSerialized.size()
+            );
         }
 
         void Move(TDescription&& other) {
@@ -219,13 +211,10 @@ class TReplica: public TMonitorableActor {
             Owner = other.Owner;
             Path = std::move(other.Path);
             PathId = std::move(other.PathId);
-            DescribeSchemeResult = std::move(other.DescribeSchemeResult);
-            PreSerializedDescribeSchemeResult = std::move(other.PreSerializedDescribeSchemeResult);
+            PathDescription = std::move(other.PathDescription);
             ExplicitlyDeleted = other.ExplicitlyDeleted;
             Subscribers = std::move(other.Subscribers);
 
-            ResultSize = other.ResultSize;
-            other.ResultSize = 0;
             TrackNotify = other.TrackNotify;
 
             TrackMemory();
@@ -259,29 +248,16 @@ class TReplica: public TMonitorableActor {
             TrackMemory();
         }
 
-        explicit TDescription(
-                TReplica* owner,
-                const TPathId& pathId,
-                TDescribeSchemeResult&& describeSchemeResult)
-            : Owner(owner)
-            , PathId(pathId)
-            , DescribeSchemeResult(std::move(describeSchemeResult))
-        {
-            CalculateResultSize();
-            TrackMemory();
-        }
-
         explicit TDescription(
                 TReplica* owner,
                 const TString& path,
                 const TPathId& pathId,
-                TDescribeSchemeResult&& describeSchemeResult)
+                TOpaquePathDescription&& pathDescription)
             : Owner(owner)
             , Path(path)
             , PathId(pathId)
-            , DescribeSchemeResult(std::move(describeSchemeResult))
+            , PathDescription(std::move(pathDescription))
         {
-            CalculateResultSize();
             TrackMemory();
         }
 
@@ -339,22 +315,18 @@ class TReplica: public TMonitorableActor {
             other.TrackNotify = false;
 
             if (*this > other) {
-                other.DescribeSchemeResult.Swap(&DescribeSchemeResult);
-                other.PreSerializedDescribeSchemeResult.Clear();
+                // this desc is newer then the other
+                std::swap(other.PathDescription, PathDescription);
                 other.ExplicitlyDeleted = ExplicitlyDeleted;
                 other.Notify();
-                DescribeSchemeResult.Swap(&other.DescribeSchemeResult);
-                other.PreSerializedDescribeSchemeResult.Clear();
+                std::swap(PathDescription, other.PathDescription);
             } else if (*this < other) {
-                DescribeSchemeResult = std::move(other.DescribeSchemeResult);
-                PreSerializedDescribeSchemeResult.Clear();
+                // this desc is older then the other
+                PathDescription = std::move(other.PathDescription);
                 ExplicitlyDeleted = other.ExplicitlyDeleted;
                 Notify();
             }
 
-            CalculateResultSize();
-            other.CalculateResultSize();
-
             TrackNotify = true;
             other.TrackNotify = true;
             TrackMemory();
@@ -365,15 +337,15 @@ class TReplica: public TMonitorableActor {
             return *this;
         }
 
-        const TDescribeSchemeResult& GetProto() const {
-            return DescribeSchemeResult;
+        TString GetDescribeSchemeResultSerialized() const {
+            return PathDescription.DescribeSchemeResultSerialized;
         }
 
         TString ToString() const {
             return TStringBuilder() << "{"
                 << " Path# " << Path
                 << " PathId# " << PathId
-                << " DescribeSchemeResult# " << DescribeSchemeResult.ShortDebugString()
+                << " PathDescription# " << PathDescription.ToString()
                 << " ExplicitlyDeleted# " << (ExplicitlyDeleted ? "true" : "false")
             << " }";
         }
@@ -403,28 +375,34 @@ class TReplica: public TMonitorableActor {
             if (ExplicitlyDeleted) {
                 return Max();
             }
-
-            return ::NKikimr::NSchemeBoard::GetPathVersion(DescribeSchemeResult);
+            return PathDescription.PathVersion;
         }
 
         TDomainId GetDomainId() const {
-            return IsFilled() ? ::NKikimr::NSchemeBoard::GetDomainId(DescribeSchemeResult) : TDomainId();
+            if (IsEmpty()) {
+                return TDomainId();
+            }
+            return PathDescription.SubdomainPathId;
         }
 
         TSet GetAbandonedSchemeShardIds() const {
-            return IsFilled() ? ::NKikimr::NSchemeBoard::GetAbandonedSchemeShardIds(DescribeSchemeResult) : TSet();
+            if (IsEmpty()) {
+                return TSet();
+            }
+            return PathDescription.PathAbandonedTenantsSchemeShards;
         }
 
-        bool IsFilled() const {
-            return DescribeSchemeResult.ByteSizeLong();
+        bool IsEmpty() const {
+            return PathDescription.IsEmpty();
         }
 
         void Clear() {
             ExplicitlyDeleted = true;
             UntrackMemory();
-            TDescribeSchemeResult().Swap(&DescribeSchemeResult);
-            PreSerializedDescribeSchemeResult.Clear();
-            ResultSize = 0;
+            {
+                TOpaquePathDescription empty;
+                std::swap(PathDescription, empty);
+            }
             TrackMemory();
             Notify();
         }
@@ -432,7 +410,7 @@ class TReplica: public TMonitorableActor {
         THolder BuildNotify(bool forceStrong = false) const {
             THolder notify;
 
-            const bool isDeletion = !IsFilled();
+            const bool isDeletion = IsEmpty();
 
             if (!PathId) {
                 Y_ABORT_UNLESS(isDeletion);
@@ -445,23 +423,15 @@ class TReplica: public TMonitorableActor {
             }
 
             if (!isDeletion) {
-                if (!PreSerializedDescribeSchemeResult) {
-                    TString serialized;
-                    Y_PROTOBUF_SUPPRESS_NODISCARD DescribeSchemeResult.SerializeToString(&serialized);
-                    if (TrackNotify) {
-                        UntrackMemory();
-                    }
-                    PreSerializedDescribeSchemeResult = std::move(serialized);
-                    if (TrackNotify) {
-                        TrackMemory();
-                    }
+                notify->SetPathDescription(PathDescription);
+                if (TrackNotify) {
+                    TrackMemory();
                 }
-
-                notify->SetDescribeSchemeResult(*PreSerializedDescribeSchemeResult);
             }
 
             notify->Record.SetVersion(GetVersion());
-            if (IsFilled() || IsExplicitlyDeleted() || forceStrong) {
+
+            if (!IsEmpty() || IsExplicitlyDeleted() || forceStrong) {
                 notify->Record.SetStrong(true);
             }
 
@@ -505,15 +475,14 @@ class TReplica: public TMonitorableActor {
         // data
         TString Path;
         TPathId PathId;
-        TDescribeSchemeResult DescribeSchemeResult;
-        mutable TMaybe PreSerializedDescribeSchemeResult;
+        TOpaquePathDescription PathDescription;
+
         bool ExplicitlyDeleted = false;
 
         // subscribers
         THashMap Subscribers;
 
         // memory tracking
-        size_t ResultSize = 0;
         bool TrackNotify = true;
 
     }; // TDescription
@@ -541,6 +510,7 @@ class TReplica: public TMonitorableActor {
         return false;
     }
 
+    // register empty entry by path OR pathId
     template 
     TDescription& UpsertDescription(const TPath& path) {
         SBR_LOG_I("Upsert description"
@@ -549,6 +519,7 @@ class TReplica: public TMonitorableActor {
         return Descriptions.Upsert(path, TDescription(this, path));
     }
 
+    // register empty entry by path AND pathId both
     TDescription& UpsertDescription(const TString& path, const TPathId& pathId) {
         SBR_LOG_I("Upsert description"
             << ": path# " << path
@@ -557,25 +528,25 @@ class TReplica: public TMonitorableActor {
         return Descriptions.Upsert(path, pathId, TDescription(this, path, pathId));
     }
 
-    template 
-    TDescription& UpsertDescription(const TPath& path, TDescription&& description) {
+    // upsert description only by pathId
+    TDescription& UpsertDescriptionByPathId(const TString& path, const TPathId& pathId, TOpaquePathDescription&& pathDescription) {
         SBR_LOG_I("Upsert description"
-            << ": path# " << path
-            << ", desc# " << description.ToLogString());
+            << ": pathId# " << pathId
+            << ", pathDescription# " << pathDescription.ToString()
+        );
 
-        return Descriptions.Upsert(path, std::move(description));
+        return Descriptions.Upsert(pathId, TDescription(this, path, pathId, std::move(pathDescription)));
     }
 
-    TDescription& UpsertDescription(
-        const TString& path,
-        const TPathId& pathId,
-        TDescribeSchemeResult&& describeSchemeResult
-    ) {
+    // upsert description by path AND pathId both
+    TDescription& UpsertDescription(const TString& path, const TPathId& pathId, TOpaquePathDescription&& pathDescription) {
         SBR_LOG_I("Upsert description"
             << ": path# " << path
-            << ", pathId# " << pathId);
+            << ", pathId# " << pathId
+            << ", pathDescription# " << pathDescription.ToString()
+        );
 
-        return Descriptions.Upsert(path, pathId, TDescription(this, path, pathId, std::move(describeSchemeResult)));
+        return Descriptions.Upsert(path, pathId, TDescription(this, path, pathId, std::move(pathDescription)));
     }
 
     void SoftDeleteDescription(const TPathId& pathId, bool createIfNotExists = false) {
@@ -590,7 +561,7 @@ class TReplica: public TMonitorableActor {
             return;
         }
 
-        if (!desc->IsFilled()) {
+        if (desc->IsEmpty()) {
             return;
         }
 
@@ -601,7 +572,7 @@ class TReplica: public TMonitorableActor {
             << ", pathId# " << pathId);
 
         if (TDescription* descByPath = Descriptions.FindPtr(path)) {
-            if (descByPath != desc && descByPath->IsFilled()) {
+            if (descByPath != desc && !descByPath->IsEmpty()) {
                 if (descByPath->GetPathId().OwnerId != pathId.OwnerId) {
                     auto curPathId = descByPath->GetPathId();
                     auto curDomainId = descByPath->GetDomainId();
@@ -803,51 +774,55 @@ class TReplica: public TMonitorableActor {
     void Handle(TSchemeBoardEvents::TEvUpdate::TPtr& ev) {
         SBR_LOG_D("Handle " << ev->Get()->ToString()
             << ": sender# " << ev->Sender
-            << ", cookie# " << ev->Cookie);
-
-        auto& record = *ev->Get()->MutableRecord();
-        const ui64 owner = record.GetOwner();
-        const ui64 generation = record.GetGeneration();
-
-        const auto populatorIt = Populators.find(owner);
-        if (populatorIt == Populators.end()) {
-            SBR_LOG_E("Reject update from unknown populator"
-                << ": sender# " << ev->Sender
-                << ", owner# " << owner
-                << ", generation# " << generation);
-            return;
-        }
-        if (generation != populatorIt->second.PendingGeneration) {
-            SBR_LOG_E("Reject update from stale populator"
-                << ": sender# " << ev->Sender
-                << ", owner# " << owner
-                << ", generation# " << generation
-                << ", pending generation# " << populatorIt->second.PendingGeneration);
-            return;
-        }
-
-        if (record.HasDeletedLocalPathIds()) {
-            const TPathId begin(owner, record.GetDeletedLocalPathIds().GetBegin());
-            const TPathId end(owner, record.GetDeletedLocalPathIds().GetEnd());
-            SoftDeleteDescriptions(begin, end);
-        }
+            << ", cookie# " << ev->Cookie
+            << ", event size# " << ev->Get()->GetCachedByteSize()
+        );
+
+        const TString& path = ev->Get()->GetPath();
+        const TPathId& pathId = ev->Get()->GetPathId();
+
+       {
+            auto& record = *ev->Get()->MutableRecord();
+            const ui64 owner = record.GetOwner();
+            const ui64 generation = record.GetGeneration();
+
+            const auto populatorIt = Populators.find(owner);
+            if (populatorIt == Populators.end()) {
+                SBR_LOG_E("Reject update from unknown populator"
+                    << ": sender# " << ev->Sender
+                    << ", owner# " << owner
+                    << ", generation# " << generation);
+                return;
+            }
+            if (generation != populatorIt->second.PendingGeneration) {
+                SBR_LOG_E("Reject update from stale populator"
+                    << ": sender# " << ev->Sender
+                    << ", owner# " << owner
+                    << ", generation# " << generation
+                    << ", pending generation# " << populatorIt->second.PendingGeneration);
+                return;
+            }
 
-        if (!record.HasLocalPathId()) {
-            return AckUpdate(ev);
-        }
+            if (record.HasDeletedLocalPathIds()) {
+                const TPathId begin(owner, record.GetDeletedLocalPathIds().GetBegin());
+                const TPathId end(owner, record.GetDeletedLocalPathIds().GetEnd());
+                SoftDeleteDescriptions(begin, end);
+            }
 
-        const TString& path = record.GetPath();
-        const TPathId pathId = ev->Get()->GetPathId();
+            if (!record.HasLocalPathId()) {
+                return AckUpdate(ev);
+            }
 
-        SBR_LOG_N("Update description"
-            << ": path# " << path
-            << ", pathId# " << pathId
-            << ", deletion# " << (record.GetIsDeletion() ? "true" : "false"));
+            SBR_LOG_N("Update description"
+                << ": path# " << path
+                << ", pathId# " << pathId
+                << ", deletion# " << (record.GetIsDeletion() ? "true" : "false"));
 
-        if (record.GetIsDeletion()) {
-            SoftDeleteDescription(pathId, true);
-            return AckUpdate(ev);
-        }
+            if (record.GetIsDeletion()) {
+                SoftDeleteDescription(pathId, true);
+                return AckUpdate(ev);
+            }
+       }
 
         if (TDescription* desc = Descriptions.FindPtr(pathId)) {
             if (desc->IsExplicitlyDeleted()) {
@@ -859,20 +834,24 @@ class TReplica: public TMonitorableActor {
             }
         }
 
+        // TEvUpdate is partially consumed here, with DescribeSchemeResult blob being moved out.
+        // AckUpdate(ev) calls below are ok, AckUpdate() doesn't use DescribeSchemeResult.
+        TOpaquePathDescription pathDescription = ev->Get()->ExtractPathDescription();
+
         TDescription* desc = Descriptions.FindPtr(path);
         if (!desc) {
-            UpsertDescription(path, pathId, std::move(*record.MutableDescribeSchemeResult()));
+            UpsertDescription(path, pathId, std::move(pathDescription));
             return AckUpdate(ev);
         }
 
         if (!desc->GetPathId()) {
-            UpsertDescription(path, pathId, std::move(*record.MutableDescribeSchemeResult()));
+            UpsertDescription(path, pathId, std::move(pathDescription));
             return AckUpdate(ev);
         }
 
         auto curPathId = desc->GetPathId();
 
-        if (curPathId.OwnerId == pathId.OwnerId || !desc->IsFilled()) {
+        if (curPathId.OwnerId == pathId.OwnerId || desc->IsEmpty()) {
             if (curPathId > pathId) {
                 return AckUpdate(ev);
             }
@@ -883,15 +862,15 @@ class TReplica: public TMonitorableActor {
                 RelinkSubscribers(desc, path);
             }
 
-            UpsertDescription(path, pathId, std::move(*record.MutableDescribeSchemeResult()));
+            UpsertDescription(path, pathId, std::move(pathDescription));
             return AckUpdate(ev);
         }
 
-        Y_VERIFY_S(desc->IsFilled(), "Description is not filled"
+        Y_VERIFY_S(!desc->IsEmpty(), "Description is not filled"
             << ": desc# " << desc->ToLogString());
 
         auto curDomainId = desc->GetDomainId();
-        auto domainId = GetDomainId(record.GetDescribeSchemeResult());
+        const auto& domainId = pathDescription.SubdomainPathId;
 
         auto log = [&](const TString& message) {
             SBR_LOG_N("" << message
@@ -904,36 +883,36 @@ class TReplica: public TMonitorableActor {
 
         if (curPathId == domainId) { // Update from TSS, GSS->TSS
             // it is only because we need to manage undo of upgrade subdomain, finally remove it
-            auto abandonedSchemeShards = desc->GetAbandonedSchemeShardIds();
+            const auto& abandonedSchemeShards = desc->GetAbandonedSchemeShardIds();
             if (abandonedSchemeShards.contains(pathId.OwnerId)) { // TSS is ignored, present GSS reverted it
                 log("Replace GSS by TSS description is rejected, GSS implicitly knows that TSS has been reverted"
                     ", but still inject description only by pathId for safe");
-                UpsertDescription(pathId, TDescription(this, path, pathId, std::move(*record.MutableDescribeSchemeResult())));
+                UpsertDescriptionByPathId(path, pathId, std::move(pathDescription));
                 return AckUpdate(ev);
             }
 
             log("Replace GSS by TSS description");
-            // unlick GSS desc by path
+            // unlink GSS desc by path
             Descriptions.DeleteIndex(path);
             RelinkSubscribers(desc, path);
-            UpsertDescription(path, pathId, std::move(*record.MutableDescribeSchemeResult()));
+            UpsertDescription(path, pathId, std::move(pathDescription));
             return AckUpdate(ev);
         }
 
         if (curDomainId == pathId) { // Update from GSS, TSS->GSS
             // it is only because we need to manage undo of upgrade subdomain, finally remove it
-            auto abandonedSchemeShards = GetAbandonedSchemeShardIds(record.GetDescribeSchemeResult());
+            const auto& abandonedSchemeShards = pathDescription.PathAbandonedTenantsSchemeShards;
             if (abandonedSchemeShards.contains(curPathId.OwnerId)) { // GSS reverts TSS
                 log("Replace TSS by GSS description, TSS was implicitly reverted by GSS");
-                // unlick TSS desc by path
+                // unlink TSS desc by path
                 Descriptions.DeleteIndex(path);
                 RelinkSubscribers(desc, path);
-                UpsertDescription(path, pathId, std::move(*record.MutableDescribeSchemeResult()));
+                UpsertDescription(path, pathId, std::move(pathDescription));
                 return AckUpdate(ev);
             }
 
             log("Inject description only by pathId, it is update from GSS");
-            UpsertDescription(pathId, TDescription(this, path, pathId, std::move(*record.MutableDescribeSchemeResult())));
+            UpsertDescriptionByPathId(path, pathId, std::move(pathDescription));
             return AckUpdate(ev);
         }
 
@@ -950,13 +929,13 @@ class TReplica: public TMonitorableActor {
                 RelinkSubscribers(desc, path);
             }
 
-            UpsertDescription(path, pathId, std::move(*record.MutableDescribeSchemeResult()));
+            UpsertDescription(path, pathId, std::move(pathDescription));
             return AckUpdate(ev);
         } else if (curDomainId < domainId) {
             log("Update description by newest path with newer domainId");
             Descriptions.DeleteIndex(path);
             RelinkSubscribers(desc, path);
-            UpsertDescription(path, pathId, std::move(*record.MutableDescribeSchemeResult()));
+            UpsertDescription(path, pathId, std::move(pathDescription));
             return AckUpdate(ev);
         } else {
             log("Totally ignore description, path with obsolete domainId");
@@ -1147,7 +1126,7 @@ class TReplica: public TMonitorableActor {
 
         auto it = Subscribers.find(ev->Sender);
         if (it == Subscribers.end()) {
-            // for backward compatability
+            // for backward compatibility
             ui64 version = 0;
 
             if (record.HasPath()) {
@@ -1237,11 +1216,7 @@ class TReplica: public TMonitorableActor {
 
         TString json;
         if (desc) {
-            using namespace google::protobuf::util;
-
-            JsonPrintOptions opts;
-            opts.preserve_proto_field_names = true;
-            MessageToJsonString(desc->GetProto(), &json, opts);
+            json = JsonFromDescribeSchemeResult(desc->GetDescribeSchemeResultSerialized());
         } else {
             json = "{}";
         }
diff --git a/ydb/core/tx/scheme_board/replica_ut.cpp b/ydb/core/tx/scheme_board/replica_ut.cpp
index 44dead06581c..2a91c719ed86 100644
--- a/ydb/core/tx/scheme_board/replica_ut.cpp
+++ b/ydb/core/tx/scheme_board/replica_ut.cpp
@@ -678,13 +678,11 @@ void TReplicaCombinationTest::UpdatesCombinationsDomainRoot() {
                 UNIT_ASSERT_VALUES_EQUAL(std::get<2>(winId), TPathId(ev->Get()->GetRecord().GetPathOwnerId(), ev->Get()->GetRecord().GetLocalPathId()));
                 UNIT_ASSERT_VALUES_EQUAL(std::get<3>(winId), ev->Get()->GetRecord().GetVersion());
 
-                UNIT_ASSERT(ev->Get()->GetRecord().HasDescribeSchemeResult());
-                const NKikimrScheme::TEvDescribeSchemeResult& descr = ev->Get()->GetRecord().GetDescribeSchemeResult();
-                auto& domainKey = descr.GetPathDescription().GetDomainDescription().GetDomainKey();
-                UNIT_ASSERT_VALUES_EQUAL(std::get<0>(winId), TDomainId(domainKey.GetSchemeShard(), domainKey.GetPathId()));
-            }
-
+                UNIT_ASSERT(ev->Get()->GetRecord().HasDescribeSchemeResultSerialized());
+                UNIT_ASSERT(ev->Get()->GetRecord().HasPathSubdomainPathId());
 
+                UNIT_ASSERT_VALUES_EQUAL(std::get<0>(winId), PathIdFromPathId(ev->Get()->GetRecord().GetPathSubdomainPathId()));
+            }
         }
     }
 }
@@ -731,7 +729,7 @@ void TReplicaCombinationTest::MigratedPathRecreation() {
          << " DomainId: " << std::get<0>(winId)
          << " IsDeletion: " << std::get<1>(winId)
          << " PathId: " << std::get<2>(winId)
-         << " Verions: " << std::get<3>(winId)
+         << " Versions: " << std::get<3>(winId)
          << Endl;
 
     UNIT_ASSERT_VALUES_EQUAL("/root/db/dir_inside", ev->Get()->GetRecord().GetPath());
@@ -740,10 +738,10 @@ void TReplicaCombinationTest::MigratedPathRecreation() {
     UNIT_ASSERT_VALUES_EQUAL(std::get<2>(winId), TPathId(ev->Get()->GetRecord().GetPathOwnerId(), ev->Get()->GetRecord().GetLocalPathId()));
     UNIT_ASSERT_VALUES_EQUAL(std::get<3>(winId), ev->Get()->GetRecord().GetVersion());
 
-    UNIT_ASSERT(ev->Get()->GetRecord().HasDescribeSchemeResult());
-    const NKikimrScheme::TEvDescribeSchemeResult& descr = ev->Get()->GetRecord().GetDescribeSchemeResult();
-    auto& domainKey = descr.GetPathDescription().GetDomainDescription().GetDomainKey();
-    UNIT_ASSERT_VALUES_EQUAL(std::get<0>(winId), TDomainId(domainKey.GetSchemeShard(), domainKey.GetPathId()));
+    UNIT_ASSERT(ev->Get()->GetRecord().HasDescribeSchemeResultSerialized());
+    UNIT_ASSERT(ev->Get()->GetRecord().HasPathSubdomainPathId());
+
+    UNIT_ASSERT_VALUES_EQUAL(std::get<0>(winId), PathIdFromPathId(ev->Get()->GetRecord().GetPathSubdomainPathId()));
 }
 
 void TReplicaCombinationTest::UpdatesCombinationsMigratedPath() {
@@ -776,9 +774,6 @@ void TReplicaCombinationTest::UpdatesCombinationsMigratedPath() {
             auto finalSubscriber = Context->AllocateEdgeActor();
             auto ev = Context->SubscribeReplica(replica, finalSubscriber, "/Root/Tenant/table_inside");
 
-            const NKikimrScheme::TEvDescribeSchemeResult& descr = ev->Get()->GetRecord().GetDescribeSchemeResult();
-            auto& domainKey = descr.GetPathDescription().GetDomainDescription().GetDomainKey();
-
             Cerr << "=========== Left ==" << argsLeft.GenerateDescribe().ShortDebugString()
                  << "\n=========== Right ==" << argsRight.GenerateDescribe().ShortDebugString()
                  << "\n=========== super id =="
@@ -792,7 +787,7 @@ void TReplicaCombinationTest::UpdatesCombinationsMigratedPath() {
                  << " PathID: " <<  TPathId(ev->Get()->GetRecord().GetPathOwnerId(), ev->Get()->GetRecord().GetLocalPathId())
                  << " deleted: " <<  ev->Get()->GetRecord().GetIsDeletion()
                  << " version: " << ev->Get()->GetRecord().GetVersion()
-                 << " domainId: " <<  TDomainId(domainKey.GetSchemeShard(), domainKey.GetPathId())
+                 << " domainId: " << PathIdFromPathId(ev->Get()->GetRecord().GetPathSubdomainPathId())
                  << Endl;
 
             if (argsLeft.PathId == TPathId(gssID, gssLocalId) && !argsLeft.IsDeletion && argsLeft.DomainId == TPathId(gssID, 2)
@@ -813,10 +808,10 @@ void TReplicaCombinationTest::UpdatesCombinationsMigratedPath() {
                 UNIT_ASSERT_VALUES_EQUAL(std::get<2>(argsRight.GetSuperId()), TPathId(ev->Get()->GetRecord().GetPathOwnerId(), ev->Get()->GetRecord().GetLocalPathId()));
                 UNIT_ASSERT_VALUES_EQUAL(std::get<3>(argsRight.GetSuperId()), ev->Get()->GetRecord().GetVersion());
 
-                UNIT_ASSERT(ev->Get()->GetRecord().HasDescribeSchemeResult());
-                const NKikimrScheme::TEvDescribeSchemeResult& descr = ev->Get()->GetRecord().GetDescribeSchemeResult();
-                auto& domainKey = descr.GetPathDescription().GetDomainDescription().GetDomainKey();
-                UNIT_ASSERT_VALUES_EQUAL(std::get<0>(argsRight.GetSuperId()), TDomainId(domainKey.GetSchemeShard(), domainKey.GetPathId()));
+                UNIT_ASSERT(ev->Get()->GetRecord().HasDescribeSchemeResultSerialized());
+                UNIT_ASSERT(ev->Get()->GetRecord().HasPathSubdomainPathId());
+
+                UNIT_ASSERT_VALUES_EQUAL(std::get<0>(argsRight.GetSuperId()), PathIdFromPathId(ev->Get()->GetRecord().GetPathSubdomainPathId()));
 
                 continue;
             }
@@ -832,10 +827,10 @@ void TReplicaCombinationTest::UpdatesCombinationsMigratedPath() {
                 UNIT_ASSERT_VALUES_EQUAL(std::get<2>(argsLeft.GetSuperId()), TPathId(ev->Get()->GetRecord().GetPathOwnerId(), ev->Get()->GetRecord().GetLocalPathId()));
                 UNIT_ASSERT_VALUES_EQUAL(std::get<3>(argsLeft.GetSuperId()), ev->Get()->GetRecord().GetVersion());
 
-                UNIT_ASSERT(ev->Get()->GetRecord().HasDescribeSchemeResult());
-                const NKikimrScheme::TEvDescribeSchemeResult& descr = ev->Get()->GetRecord().GetDescribeSchemeResult();
-                auto& domainKey = descr.GetPathDescription().GetDomainDescription().GetDomainKey();
-                UNIT_ASSERT_VALUES_EQUAL(std::get<0>(argsLeft.GetSuperId()), TDomainId(domainKey.GetSchemeShard(), domainKey.GetPathId()));
+                UNIT_ASSERT(ev->Get()->GetRecord().HasDescribeSchemeResultSerialized());
+                UNIT_ASSERT(ev->Get()->GetRecord().HasPathSubdomainPathId());
+
+                UNIT_ASSERT_VALUES_EQUAL(std::get<0>(argsLeft.GetSuperId()), PathIdFromPathId(ev->Get()->GetRecord().GetPathSubdomainPathId()));
 
                 continue;
             }
@@ -882,10 +877,10 @@ void TReplicaCombinationTest::UpdatesCombinationsMigratedPath() {
                 UNIT_ASSERT_VALUES_EQUAL(std::get<2>(winId), TPathId(ev->Get()->GetRecord().GetPathOwnerId(), ev->Get()->GetRecord().GetLocalPathId()));
                 UNIT_ASSERT_VALUES_EQUAL(std::get<3>(winId), ev->Get()->GetRecord().GetVersion());
 
-                UNIT_ASSERT(ev->Get()->GetRecord().HasDescribeSchemeResult());
-                const NKikimrScheme::TEvDescribeSchemeResult& descr = ev->Get()->GetRecord().GetDescribeSchemeResult();
-                auto& domainKey = descr.GetPathDescription().GetDomainDescription().GetDomainKey();
-                UNIT_ASSERT_VALUES_EQUAL(std::get<0>(winId), TDomainId(domainKey.GetSchemeShard(), domainKey.GetPathId()));
+                UNIT_ASSERT(ev->Get()->GetRecord().HasDescribeSchemeResultSerialized());
+                UNIT_ASSERT(ev->Get()->GetRecord().HasPathSubdomainPathId());
+
+                UNIT_ASSERT_VALUES_EQUAL(std::get<0>(winId), PathIdFromPathId(ev->Get()->GetRecord().GetPathSubdomainPathId()));
             }
         }
     }
diff --git a/ydb/core/tx/scheme_board/subscriber.cpp b/ydb/core/tx/scheme_board/subscriber.cpp
index 76264b385a60..4fdeb8479ecc 100644
--- a/ydb/core/tx/scheme_board/subscriber.cpp
+++ b/ydb/core/tx/scheme_board/subscriber.cpp
@@ -127,6 +127,67 @@ namespace {
         }
     };
 
+    // TNotifyResponse isolates changes of how NKikimrSchemeBoard::TEvNotify is filled
+    // by previous and recent replica implementation.
+    //
+    // TNotifyResponse wouldn't be even needed if not for backward compatibility support.
+    // Consider removing compatibility support at version stable-25-1.
+    struct TNotifyResponse {
+        NKikimrSchemeBoard::TEvNotify Notify;
+        TPathId SubdomainPathId;
+        TSet PathAbandonedTenantsSchemeShards;
+        TMaybe DescribeSchemeResult;
+
+        static TNotifyResponse FromNotify(NKikimrSchemeBoard::TEvNotify&& record) {
+            // PathSubdomainPathId's absence is a marker that input message was sent
+            // from the older replica implementation
+
+            if (record.HasPathSubdomainPathId()) {
+                // Sender implementation is as recent as ours.
+                // Just copy two fields from the notify message (this branch is practically a stub)
+
+                auto subdomainPathId = PathIdFromPathId(record.GetPathSubdomainPathId());
+                auto pathAbandonedTenantsSchemeShards = TSet(
+                    record.GetPathAbandonedTenantsSchemeShards().begin(),
+                    record.GetPathAbandonedTenantsSchemeShards().end()
+                );
+                return TNotifyResponse{
+                    .Notify = std::move(record),
+                    .SubdomainPathId = std::move(subdomainPathId),
+                    .PathAbandonedTenantsSchemeShards = std::move(pathAbandonedTenantsSchemeShards),
+                };
+
+            } else {
+                // Sender implementation is older then ours.
+                // Extract two essential fields from the payload, hold deserialized proto,
+                // drop original payload to save on memory
+
+                // Move DescribeSchemeResult blob out of the input message.
+                auto data = std::move(*record.MutableDescribeSchemeResultSerialized());
+                record.ClearDescribeSchemeResultSerialized();
+
+                // it's inconvenient to use arena here
+                auto proto = DeserializeDescribeSchemeResult(data);
+
+                return TNotifyResponse{
+                    .Notify = std::move(record),
+                    .SubdomainPathId = NSchemeBoard::GetDomainId(proto),
+                    .PathAbandonedTenantsSchemeShards = NSchemeBoard::GetAbandonedSchemeShardIds(proto),
+                    .DescribeSchemeResult = std::move(proto),
+                };
+            }
+        }
+
+        NKikimrScheme::TEvDescribeSchemeResult GetDescribeSchemeResult() {
+            if (DescribeSchemeResult) {
+                return *DescribeSchemeResult;
+            } else {
+                // it's inconvenient to use arena here
+                return DeserializeDescribeSchemeResult(Notify.GetDescribeSchemeResultSerialized());
+            }
+        }
+    };
+
     struct TState {
         bool Deleted = false;
         bool Strong = false;
@@ -154,15 +215,17 @@ namespace {
         }
 
     public:
-        static TState FromNotify(const NKikimrSchemeBoard::TEvNotify& record) {
+        static TState FromNotify(const TNotifyResponse& notifyResponse) {
+            const auto& record = notifyResponse.Notify;
+            const TPathVersion& pathVersion = TPathVersion::FromNotify(record);
             if (!record.GetIsDeletion()) {
                 return TState(
-                    TPathVersion::FromNotify(record),
-                    GetDomainId(record.GetDescribeSchemeResult()),
-                    GetAbandonedSchemeShardIds(record.GetDescribeSchemeResult())
+                    pathVersion,
+                    notifyResponse.SubdomainPathId,
+                    notifyResponse.PathAbandonedTenantsSchemeShards
                 );
             } else {
-                return TState(record.GetStrong(), TPathVersion::FromNotify(record));
+                return TState(record.GetStrong(), pathVersion);
             }
         }
 
@@ -229,7 +292,7 @@ namespace {
 
             if (Version.PathId == other.DomainId) { // Update from TSS, GSS->TSS
                 if (AbandonedSchemeShards.contains(other.Version.PathId.OwnerId)) { // TSS is ignored, present GSS reverted that TSS
-                    reason = "Update was ignored, GSS implisytly banned that TSS";
+                    reason = "Update was ignored, GSS implicitly banned that TSS";
                     return false;
                 }
 
@@ -685,7 +748,7 @@ class TSubscriber: public TMonitorableActor {
         return it->second;
     }
 
-    NKikimrSchemeBoard::TEvNotify& SelectResponse() {
+    TNotifyResponse* SelectResponse() {
         Y_ABORT_UNLESS(IsMajorityReached());
 
         auto newest = SelectStateImpl();
@@ -694,7 +757,7 @@ class TSubscriber: public TMonitorableActor {
         auto it = InitialResponses.find(newest->first);
         Y_ABORT_UNLESS(it != InitialResponses.end());
 
-        return it->second;
+        return &it->second;
     }
 
     bool IsMajorityReached() const {
@@ -723,23 +786,25 @@ class TSubscriber: public TMonitorableActor {
     }
 
     void Handle(TSchemeBoardEvents::TEvNotify::TPtr& ev) {
-        auto& record = *ev->Get()->MutableRecord();
-
         SBS_LOG_D("Handle " << ev->Get()->ToString()
             << ": sender# " << ev->Sender);
 
-        if (!IsValidNotification(Path, record)) {
+        if (!IsValidNotification(Path, ev->Get()->GetRecord())) {
             SBS_LOG_E("Suspicious " << ev->Get()->ToString()
                 << ": sender# " << ev->Sender);
             return;
         }
 
-        States[ev->Sender] = TState::FromNotify(record);
+        // TEvNotify message is consumed here, can't be used after this point
+        TNotifyResponse notifyResponse = TNotifyResponse::FromNotify(std::move(*ev->Get()->MutableRecord()));
+        TNotifyResponse* selectedNotify = ¬ifyResponse;
+
+        States[ev->Sender] = TState::FromNotify(notifyResponse);
         if (!IsMajorityReached()) {
-            InitialResponses[ev->Sender] = std::move(record);
+            InitialResponses[ev->Sender] = std::move(notifyResponse);
             if (IsMajorityReached()) {
                 MaybeRunVersionSync();
-                record = SelectResponse();
+                selectedNotify = SelectResponse();
             } else {
                 return;
             }
@@ -773,8 +838,11 @@ class TSubscriber: public TMonitorableActor {
             return;
         }
 
+        const auto& record = selectedNotify->Notify;
+
         if (!record.GetIsDeletion()) {
-            this->Send(Owner, BuildNotify(record, std::move(*record.MutableDescribeSchemeResult())));
+            NKikimrScheme::TEvDescribeSchemeResult proto = selectedNotify->GetDescribeSchemeResult();
+            this->Send(Owner, BuildNotify(record, std::move(proto)));
         } else {
             this->Send(Owner, BuildNotify(record, record.GetStrong()));
         }
@@ -1032,7 +1100,7 @@ class TSubscriber: public TMonitorableActor {
 
     TSet Proxies;
     TMap States;
-    TMap InitialResponses;
+    TMap InitialResponses;
     TMaybe State;
 
     ui64 DelayedSyncRequest;
diff --git a/ydb/core/tx/scheme_board/subscriber_ut.cpp b/ydb/core/tx/scheme_board/subscriber_ut.cpp
index 4a33a9f5ab00..ffaaf856ebd4 100644
--- a/ydb/core/tx/scheme_board/subscriber_ut.cpp
+++ b/ydb/core/tx/scheme_board/subscriber_ut.cpp
@@ -152,7 +152,7 @@ void TSubscriberTest::InvalidNotification() {
 
     // send notification directly to subscriber
     auto* notify = new TSchemeBoardEvents::TEvNotifyBuilder(TPathId(1, 1));
-    notify->Record.MutableDescribeSchemeResult()->CopyFrom(GenerateDescribe("another/path", TPathId(1, 1)));
+    notify->SetPathDescription(MakeOpaquePathDescription("", GenerateDescribe("another/path", TPathId(1, 1))));
     Context->Send(subscriber, edge, notify);
 
     size_t counter = Context->CountEdgeEvents();
diff --git a/ydb/core/tx/scheme_board/ut_cache/CMakeLists.darwin-arm64.txt b/ydb/core/tx/scheme_board/ut_cache/CMakeLists.darwin-arm64.txt
index 0a2718840e49..4a0ce51f436a 100644
--- a/ydb/core/tx/scheme_board/ut_cache/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/scheme_board/ut_cache/CMakeLists.darwin-arm64.txt
@@ -28,8 +28,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_cache PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-scheme_board-ut_cache PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/cache_ut.cpp
@@ -60,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_cache/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/scheme_board/ut_cache/CMakeLists.darwin-x86_64.txt
index f79a62dc2d41..ed39a75f9086 100644
--- a/ydb/core/tx/scheme_board/ut_cache/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_cache/CMakeLists.darwin-x86_64.txt
@@ -29,8 +29,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_cache PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-scheme_board-ut_cache PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/cache_ut.cpp
@@ -61,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_cache/CMakeLists.linux-aarch64.txt b/ydb/core/tx/scheme_board/ut_cache/CMakeLists.linux-aarch64.txt
index 6a0fb344befb..3a293ccd403b 100644
--- a/ydb/core/tx/scheme_board/ut_cache/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/scheme_board/ut_cache/CMakeLists.linux-aarch64.txt
@@ -31,9 +31,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_cache PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-scheme_board-ut_cache PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/cache_ut.cpp
@@ -64,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_cache/CMakeLists.linux-x86_64.txt b/ydb/core/tx/scheme_board/ut_cache/CMakeLists.linux-x86_64.txt
index e95f35346e28..b183a154f071 100644
--- a/ydb/core/tx/scheme_board/ut_cache/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_cache/CMakeLists.linux-x86_64.txt
@@ -32,9 +32,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_cache PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-scheme_board-ut_cache PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/cache_ut.cpp
@@ -65,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_cache/CMakeLists.windows-x86_64.txt b/ydb/core/tx/scheme_board/ut_cache/CMakeLists.windows-x86_64.txt
index cfa76751d7f2..22eef0cf93f7 100644
--- a/ydb/core/tx/scheme_board/ut_cache/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_cache/CMakeLists.windows-x86_64.txt
@@ -54,6 +54,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.darwin-arm64.txt b/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.darwin-arm64.txt
index 71bb08aa2256..40c9cbbbe0cd 100644
--- a/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.darwin-arm64.txt
@@ -24,8 +24,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_double_indexed PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-scheme_board-ut_double_indexed PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/double_indexed_ut.cpp
@@ -55,6 +53,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.darwin-x86_64.txt
index 7dc173161a35..1d857fdb8aa9 100644
--- a/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.darwin-x86_64.txt
@@ -25,8 +25,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_double_indexed PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-scheme_board-ut_double_indexed PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/double_indexed_ut.cpp
@@ -56,6 +54,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.linux-aarch64.txt b/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.linux-aarch64.txt
index 5ca6b2c14915..eabed24e232c 100644
--- a/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.linux-aarch64.txt
@@ -27,9 +27,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_double_indexed PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-scheme_board-ut_double_indexed PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/double_indexed_ut.cpp
@@ -59,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.linux-x86_64.txt b/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.linux-x86_64.txt
index f935b441ae49..a13eedb65281 100644
--- a/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.linux-x86_64.txt
@@ -28,9 +28,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_double_indexed PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-scheme_board-ut_double_indexed PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/double_indexed_ut.cpp
@@ -60,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.windows-x86_64.txt b/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.windows-x86_64.txt
index 6b12030ffb69..76582f715144 100644
--- a/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_double_indexed/CMakeLists.windows-x86_64.txt
@@ -49,6 +49,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_helpers.cpp b/ydb/core/tx/scheme_board/ut_helpers.cpp
index 762d8ddea12f..63bdd22c7174 100644
--- a/ydb/core/tx/scheme_board/ut_helpers.cpp
+++ b/ydb/core/tx/scheme_board/ut_helpers.cpp
@@ -31,10 +31,11 @@ TSchemeBoardEvents::TEvUpdate* GenerateUpdate(
     ui64 generation,
     bool isDeletion
 ) {
-    auto* update = new TSchemeBoardEvents::TEvUpdateBuilder(owner, generation, describe, isDeletion);
+    const auto& pathDescription = MakeOpaquePathDescription("", describe);
+    auto* update = new TSchemeBoardEvents::TEvUpdateBuilder(owner, generation, pathDescription, isDeletion);
 
     if (!isDeletion) {
-        update->SetDescribeSchemeResult(describe);
+        update->SetDescribeSchemeResultSerialized(std::move(pathDescription.DescribeSchemeResultSerialized));
     }
 
     return update;
diff --git a/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.darwin-arm64.txt b/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.darwin-arm64.txt
index 235fefbbabeb..3cd1d6322fcd 100644
--- a/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.darwin-arm64.txt
@@ -22,13 +22,12 @@ target_link_libraries(ydb-core-tx-scheme_board-ut_monitoring PUBLIC
   library-actors-core
   cpp-testing-unittest
   testlib-basics-default
+  minikql-comp_nodes-llvm14
 )
 target_link_options(ydb-core-tx-scheme_board-ut_monitoring PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-scheme_board-ut_monitoring PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/monitoring_ut.cpp
@@ -59,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.darwin-x86_64.txt
index 3eed54a7e0a4..461d04c39e76 100644
--- a/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.darwin-x86_64.txt
@@ -23,13 +23,12 @@ target_link_libraries(ydb-core-tx-scheme_board-ut_monitoring PUBLIC
   library-actors-core
   cpp-testing-unittest
   testlib-basics-default
+  minikql-comp_nodes-llvm14
 )
 target_link_options(ydb-core-tx-scheme_board-ut_monitoring PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-scheme_board-ut_monitoring PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/monitoring_ut.cpp
@@ -60,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.linux-aarch64.txt b/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.linux-aarch64.txt
index 2d6453716c6b..7d42d9276db2 100644
--- a/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.linux-aarch64.txt
@@ -23,6 +23,7 @@ target_link_libraries(ydb-core-tx-scheme_board-ut_monitoring PUBLIC
   library-actors-core
   cpp-testing-unittest
   testlib-basics-default
+  minikql-comp_nodes-llvm14
 )
 target_link_options(ydb-core-tx-scheme_board-ut_monitoring PRIVATE
   -ldl
@@ -30,9 +31,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_monitoring PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-scheme_board-ut_monitoring PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/monitoring_ut.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.linux-x86_64.txt b/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.linux-x86_64.txt
index e29a4ef5ac27..138391ef50d4 100644
--- a/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.linux-x86_64.txt
@@ -24,6 +24,7 @@ target_link_libraries(ydb-core-tx-scheme_board-ut_monitoring PUBLIC
   library-actors-core
   cpp-testing-unittest
   testlib-basics-default
+  minikql-comp_nodes-llvm14
 )
 target_link_options(ydb-core-tx-scheme_board-ut_monitoring PRIVATE
   -ldl
@@ -31,9 +32,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_monitoring PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-scheme_board-ut_monitoring PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/monitoring_ut.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.windows-x86_64.txt b/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.windows-x86_64.txt
index 926a0abb569b..5404a8404204 100644
--- a/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_monitoring/CMakeLists.windows-x86_64.txt
@@ -23,6 +23,7 @@ target_link_libraries(ydb-core-tx-scheme_board-ut_monitoring PUBLIC
   library-actors-core
   cpp-testing-unittest
   testlib-basics-default
+  minikql-comp_nodes-llvm14
 )
 target_sources(ydb-core-tx-scheme_board-ut_monitoring PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/monitoring_ut.cpp
@@ -53,6 +54,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_populator/CMakeLists.darwin-arm64.txt b/ydb/core/tx/scheme_board/ut_populator/CMakeLists.darwin-arm64.txt
index 57814d52fbf1..d638f89c7aec 100644
--- a/ydb/core/tx/scheme_board/ut_populator/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/scheme_board/ut_populator/CMakeLists.darwin-arm64.txt
@@ -29,8 +29,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_populator PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-scheme_board-ut_populator PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/populator_ut.cpp
@@ -61,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_populator/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/scheme_board/ut_populator/CMakeLists.darwin-x86_64.txt
index 3173958e67f0..51885e2d5109 100644
--- a/ydb/core/tx/scheme_board/ut_populator/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_populator/CMakeLists.darwin-x86_64.txt
@@ -30,8 +30,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_populator PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-scheme_board-ut_populator PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/populator_ut.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_populator/CMakeLists.linux-aarch64.txt b/ydb/core/tx/scheme_board/ut_populator/CMakeLists.linux-aarch64.txt
index 067f78030b70..984f6a5f5e0a 100644
--- a/ydb/core/tx/scheme_board/ut_populator/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/scheme_board/ut_populator/CMakeLists.linux-aarch64.txt
@@ -32,9 +32,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_populator PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-scheme_board-ut_populator PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/populator_ut.cpp
@@ -65,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_populator/CMakeLists.linux-x86_64.txt b/ydb/core/tx/scheme_board/ut_populator/CMakeLists.linux-x86_64.txt
index 42561a3ca002..66a36bb74ec0 100644
--- a/ydb/core/tx/scheme_board/ut_populator/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_populator/CMakeLists.linux-x86_64.txt
@@ -33,9 +33,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_populator PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-scheme_board-ut_populator PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/populator_ut.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_populator/CMakeLists.windows-x86_64.txt b/ydb/core/tx/scheme_board/ut_populator/CMakeLists.windows-x86_64.txt
index 5aa756da24f0..fdef9400d9d6 100644
--- a/ydb/core/tx/scheme_board/ut_populator/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_populator/CMakeLists.windows-x86_64.txt
@@ -55,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_replica/CMakeLists.darwin-arm64.txt b/ydb/core/tx/scheme_board/ut_replica/CMakeLists.darwin-arm64.txt
index efb45bac82f5..36db22a0c8cb 100644
--- a/ydb/core/tx/scheme_board/ut_replica/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/scheme_board/ut_replica/CMakeLists.darwin-arm64.txt
@@ -20,14 +20,13 @@ target_link_libraries(ydb-core-tx-scheme_board-ut_replica PUBLIC
   cpp-testing-unittest_main
   core-tx-scheme_board
   cpp-testing-unittest
+  minikql-comp_nodes-llvm14
   testlib-basics-default
 )
 target_link_options(ydb-core-tx-scheme_board-ut_replica PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-scheme_board-ut_replica PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/replica_ut.cpp
@@ -58,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_replica/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/scheme_board/ut_replica/CMakeLists.darwin-x86_64.txt
index 603831ede7ac..ac9619ccb632 100644
--- a/ydb/core/tx/scheme_board/ut_replica/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_replica/CMakeLists.darwin-x86_64.txt
@@ -21,14 +21,13 @@ target_link_libraries(ydb-core-tx-scheme_board-ut_replica PUBLIC
   cpp-testing-unittest_main
   core-tx-scheme_board
   cpp-testing-unittest
+  minikql-comp_nodes-llvm14
   testlib-basics-default
 )
 target_link_options(ydb-core-tx-scheme_board-ut_replica PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-scheme_board-ut_replica PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/replica_ut.cpp
@@ -59,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_replica/CMakeLists.linux-aarch64.txt b/ydb/core/tx/scheme_board/ut_replica/CMakeLists.linux-aarch64.txt
index d732dc234578..747851de5fa8 100644
--- a/ydb/core/tx/scheme_board/ut_replica/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/scheme_board/ut_replica/CMakeLists.linux-aarch64.txt
@@ -21,6 +21,7 @@ target_link_libraries(ydb-core-tx-scheme_board-ut_replica PUBLIC
   cpp-testing-unittest_main
   core-tx-scheme_board
   cpp-testing-unittest
+  minikql-comp_nodes-llvm14
   testlib-basics-default
 )
 target_link_options(ydb-core-tx-scheme_board-ut_replica PRIVATE
@@ -29,9 +30,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_replica PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-scheme_board-ut_replica PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/replica_ut.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_replica/CMakeLists.linux-x86_64.txt b/ydb/core/tx/scheme_board/ut_replica/CMakeLists.linux-x86_64.txt
index 0072087b8b6b..2c210740ed42 100644
--- a/ydb/core/tx/scheme_board/ut_replica/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_replica/CMakeLists.linux-x86_64.txt
@@ -22,6 +22,7 @@ target_link_libraries(ydb-core-tx-scheme_board-ut_replica PUBLIC
   cpp-testing-unittest_main
   core-tx-scheme_board
   cpp-testing-unittest
+  minikql-comp_nodes-llvm14
   testlib-basics-default
 )
 target_link_options(ydb-core-tx-scheme_board-ut_replica PRIVATE
@@ -30,9 +31,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_replica PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-scheme_board-ut_replica PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/replica_ut.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_replica/CMakeLists.windows-x86_64.txt b/ydb/core/tx/scheme_board/ut_replica/CMakeLists.windows-x86_64.txt
index 307a52d7fa12..74579ebfec57 100644
--- a/ydb/core/tx/scheme_board/ut_replica/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_replica/CMakeLists.windows-x86_64.txt
@@ -21,6 +21,7 @@ target_link_libraries(ydb-core-tx-scheme_board-ut_replica PUBLIC
   cpp-testing-unittest_main
   core-tx-scheme_board
   cpp-testing-unittest
+  minikql-comp_nodes-llvm14
   testlib-basics-default
 )
 target_sources(ydb-core-tx-scheme_board-ut_replica PRIVATE
@@ -52,6 +53,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.darwin-arm64.txt b/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.darwin-arm64.txt
index 795ba979ad14..b7f8a0af4a68 100644
--- a/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.darwin-arm64.txt
@@ -22,13 +22,12 @@ target_link_libraries(ydb-core-tx-scheme_board-ut_subscriber PUBLIC
   library-actors-interconnect
   cpp-testing-unittest
   testlib-basics-default
+  minikql-comp_nodes-llvm14
 )
 target_link_options(ydb-core-tx-scheme_board-ut_subscriber PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-scheme_board-ut_subscriber PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber_ut.cpp
@@ -59,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.darwin-x86_64.txt
index b766c09e7a2b..875cd002eb29 100644
--- a/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.darwin-x86_64.txt
@@ -23,13 +23,12 @@ target_link_libraries(ydb-core-tx-scheme_board-ut_subscriber PUBLIC
   library-actors-interconnect
   cpp-testing-unittest
   testlib-basics-default
+  minikql-comp_nodes-llvm14
 )
 target_link_options(ydb-core-tx-scheme_board-ut_subscriber PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-scheme_board-ut_subscriber PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber_ut.cpp
@@ -60,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.linux-aarch64.txt b/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.linux-aarch64.txt
index 300f8b4808f9..000db2280abd 100644
--- a/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.linux-aarch64.txt
@@ -23,6 +23,7 @@ target_link_libraries(ydb-core-tx-scheme_board-ut_subscriber PUBLIC
   library-actors-interconnect
   cpp-testing-unittest
   testlib-basics-default
+  minikql-comp_nodes-llvm14
 )
 target_link_options(ydb-core-tx-scheme_board-ut_subscriber PRIVATE
   -ldl
@@ -30,9 +31,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_subscriber PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-scheme_board-ut_subscriber PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber_ut.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.linux-x86_64.txt b/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.linux-x86_64.txt
index f59caa182079..42477466e0e6 100644
--- a/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.linux-x86_64.txt
@@ -24,6 +24,7 @@ target_link_libraries(ydb-core-tx-scheme_board-ut_subscriber PUBLIC
   library-actors-interconnect
   cpp-testing-unittest
   testlib-basics-default
+  minikql-comp_nodes-llvm14
 )
 target_link_options(ydb-core-tx-scheme_board-ut_subscriber PRIVATE
   -ldl
@@ -31,9 +32,6 @@ target_link_options(ydb-core-tx-scheme_board-ut_subscriber PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-scheme_board-ut_subscriber PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber_ut.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.windows-x86_64.txt b/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.windows-x86_64.txt
index 9e74a6092ea6..3b97217c2d65 100644
--- a/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/scheme_board/ut_subscriber/CMakeLists.windows-x86_64.txt
@@ -23,6 +23,7 @@ target_link_libraries(ydb-core-tx-scheme_board-ut_subscriber PUBLIC
   library-actors-interconnect
   cpp-testing-unittest
   testlib-basics-default
+  minikql-comp_nodes-llvm14
 )
 target_sources(ydb-core-tx-scheme_board-ut_subscriber PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/scheme_board/subscriber_ut.cpp
@@ -53,6 +54,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/scheme_board/ya.make b/ydb/core/tx/scheme_board/ya.make
index a04c3b5c32bd..22f66c217f09 100644
--- a/ydb/core/tx/scheme_board/ya.make
+++ b/ydb/core/tx/scheme_board/ya.make
@@ -13,6 +13,7 @@ PEERDIR(
 
 SRCS(
     cache.cpp
+    events.cpp
     helpers.cpp
     load_test.cpp
     monitoring.cpp
@@ -20,6 +21,7 @@ SRCS(
     replica.cpp
     subscriber.cpp
     two_part_description.cpp
+    opaque_path_description.cpp
 )
 
 GENERATE_ENUM_SERIALIZATION(subscriber.h)
diff --git a/ydb/core/tx/scheme_cache/scheme_cache.h b/ydb/core/tx/scheme_cache/scheme_cache.h
index 5ccea3f421a1..040a6bdfd782 100644
--- a/ydb/core/tx/scheme_cache/scheme_cache.h
+++ b/ydb/core/tx/scheme_cache/scheme_cache.h
@@ -258,6 +258,7 @@ struct TSchemeCacheNavigate {
 
         // in
         TVector Path;
+        ui32 Access = NACLib::DescribeSchema;
         TTableId TableId;
         ERequestType RequestType = ERequestType::ByPath;
         EOp Operation = OpUnknown;
diff --git a/ydb/core/tx/schemeshard/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/CMakeLists.darwin-arm64.txt
index 591fa2ff4f24..30ebb7cf513b 100644
--- a/ydb/core/tx/schemeshard/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/CMakeLists.darwin-arm64.txt
@@ -6,7 +6,9 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(olap)
 add_subdirectory(ut_auditsettings)
+add_subdirectory(ut_background_cleaning)
 add_subdirectory(ut_backup)
 add_subdirectory(ut_base)
 add_subdirectory(ut_base_reboots)
@@ -96,7 +98,6 @@ target_link_libraries(core-tx-schemeshard PUBLIC
   core-engine-minikql
   ydb-core-external_sources
   core-filestore-core
-  formats-arrow-compression
   core-kesus-tablet
   ydb-core-metering
   ydb-core-persqueue
@@ -111,6 +112,7 @@ target_link_libraries(core-tx-schemeshard PUBLIC
   ydb-core-tablet_flat
   ydb-core-tx
   core-tx-datashard
+  tx-schemeshard-olap
   core-tx-scheme_board
   core-tx-tx_allocator_client
   ydb-core-util
@@ -124,7 +126,27 @@ target_link_libraries(core-tx-schemeshard PUBLIC
   ydb-services-bg_tasks
 )
 target_sources(core-tx-schemeshard PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_side_effects.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common_subdomain.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_part.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_domain_links.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_effective_acl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_info_types.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_element.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_schema.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_svp_migration.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_tx_infly.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_types.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_user_attr_limits.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_utils.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/operation_queue_timer.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__background_cleaning.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__borrowed_compaction.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__compaction.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__clean_pathes.cpp
@@ -148,13 +170,13 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_memory_changes.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_db_changes.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_bsv.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_external_data_source.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_external_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_extsubdomain.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_fs.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_index.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_kesus.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_login.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_olap_store.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_olap_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_solomon.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_subdomain.cpp
@@ -163,6 +185,8 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_assign_bsv.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_cancel_tx.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common_external_data_source.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common_external_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_consistent_copy_tables.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_copy_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_backup.cpp
@@ -175,8 +199,6 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_indexed_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_kesus.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_lock.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_olap_store.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_olap_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_replication.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_restore.cpp
@@ -194,8 +216,6 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_indexed_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_kesus.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_lock.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_olap_store.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_olap_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_replication.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_sequence.cpp
@@ -243,7 +263,6 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_effective_acl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_identificators.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_info_types.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_olap_types.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_describer.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_element.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path.cpp
diff --git a/ydb/core/tx/schemeshard/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/CMakeLists.darwin-x86_64.txt
index 591fa2ff4f24..30ebb7cf513b 100644
--- a/ydb/core/tx/schemeshard/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/CMakeLists.darwin-x86_64.txt
@@ -6,7 +6,9 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(olap)
 add_subdirectory(ut_auditsettings)
+add_subdirectory(ut_background_cleaning)
 add_subdirectory(ut_backup)
 add_subdirectory(ut_base)
 add_subdirectory(ut_base_reboots)
@@ -96,7 +98,6 @@ target_link_libraries(core-tx-schemeshard PUBLIC
   core-engine-minikql
   ydb-core-external_sources
   core-filestore-core
-  formats-arrow-compression
   core-kesus-tablet
   ydb-core-metering
   ydb-core-persqueue
@@ -111,6 +112,7 @@ target_link_libraries(core-tx-schemeshard PUBLIC
   ydb-core-tablet_flat
   ydb-core-tx
   core-tx-datashard
+  tx-schemeshard-olap
   core-tx-scheme_board
   core-tx-tx_allocator_client
   ydb-core-util
@@ -124,7 +126,27 @@ target_link_libraries(core-tx-schemeshard PUBLIC
   ydb-services-bg_tasks
 )
 target_sources(core-tx-schemeshard PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_side_effects.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common_subdomain.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_part.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_domain_links.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_effective_acl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_info_types.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_element.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_schema.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_svp_migration.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_tx_infly.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_types.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_user_attr_limits.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_utils.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/operation_queue_timer.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__background_cleaning.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__borrowed_compaction.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__compaction.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__clean_pathes.cpp
@@ -148,13 +170,13 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_memory_changes.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_db_changes.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_bsv.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_external_data_source.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_external_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_extsubdomain.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_fs.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_index.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_kesus.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_login.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_olap_store.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_olap_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_solomon.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_subdomain.cpp
@@ -163,6 +185,8 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_assign_bsv.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_cancel_tx.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common_external_data_source.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common_external_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_consistent_copy_tables.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_copy_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_backup.cpp
@@ -175,8 +199,6 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_indexed_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_kesus.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_lock.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_olap_store.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_olap_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_replication.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_restore.cpp
@@ -194,8 +216,6 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_indexed_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_kesus.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_lock.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_olap_store.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_olap_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_replication.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_sequence.cpp
@@ -243,7 +263,6 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_effective_acl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_identificators.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_info_types.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_olap_types.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_describer.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_element.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path.cpp
diff --git a/ydb/core/tx/schemeshard/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/CMakeLists.linux-aarch64.txt
index 72a0c87e54ce..bf4d6101bfb0 100644
--- a/ydb/core/tx/schemeshard/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/CMakeLists.linux-aarch64.txt
@@ -6,7 +6,9 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(olap)
 add_subdirectory(ut_auditsettings)
+add_subdirectory(ut_background_cleaning)
 add_subdirectory(ut_backup)
 add_subdirectory(ut_base)
 add_subdirectory(ut_base_reboots)
@@ -97,7 +99,6 @@ target_link_libraries(core-tx-schemeshard PUBLIC
   core-engine-minikql
   ydb-core-external_sources
   core-filestore-core
-  formats-arrow-compression
   core-kesus-tablet
   ydb-core-metering
   ydb-core-persqueue
@@ -112,6 +113,7 @@ target_link_libraries(core-tx-schemeshard PUBLIC
   ydb-core-tablet_flat
   ydb-core-tx
   core-tx-datashard
+  tx-schemeshard-olap
   core-tx-scheme_board
   core-tx-tx_allocator_client
   ydb-core-util
@@ -125,7 +127,27 @@ target_link_libraries(core-tx-schemeshard PUBLIC
   ydb-services-bg_tasks
 )
 target_sources(core-tx-schemeshard PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_side_effects.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common_subdomain.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_part.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_domain_links.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_effective_acl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_info_types.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_element.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_schema.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_svp_migration.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_tx_infly.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_types.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_user_attr_limits.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_utils.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/operation_queue_timer.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__background_cleaning.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__borrowed_compaction.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__compaction.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__clean_pathes.cpp
@@ -149,13 +171,13 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_memory_changes.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_db_changes.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_bsv.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_external_data_source.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_external_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_extsubdomain.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_fs.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_index.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_kesus.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_login.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_olap_store.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_olap_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_solomon.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_subdomain.cpp
@@ -164,6 +186,8 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_assign_bsv.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_cancel_tx.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common_external_data_source.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common_external_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_consistent_copy_tables.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_copy_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_backup.cpp
@@ -176,8 +200,6 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_indexed_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_kesus.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_lock.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_olap_store.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_olap_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_replication.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_restore.cpp
@@ -195,8 +217,6 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_indexed_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_kesus.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_lock.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_olap_store.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_olap_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_replication.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_sequence.cpp
@@ -244,7 +264,6 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_effective_acl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_identificators.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_info_types.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_olap_types.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_describer.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_element.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path.cpp
diff --git a/ydb/core/tx/schemeshard/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/CMakeLists.linux-x86_64.txt
index 72a0c87e54ce..bf4d6101bfb0 100644
--- a/ydb/core/tx/schemeshard/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/CMakeLists.linux-x86_64.txt
@@ -6,7 +6,9 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(olap)
 add_subdirectory(ut_auditsettings)
+add_subdirectory(ut_background_cleaning)
 add_subdirectory(ut_backup)
 add_subdirectory(ut_base)
 add_subdirectory(ut_base_reboots)
@@ -97,7 +99,6 @@ target_link_libraries(core-tx-schemeshard PUBLIC
   core-engine-minikql
   ydb-core-external_sources
   core-filestore-core
-  formats-arrow-compression
   core-kesus-tablet
   ydb-core-metering
   ydb-core-persqueue
@@ -112,6 +113,7 @@ target_link_libraries(core-tx-schemeshard PUBLIC
   ydb-core-tablet_flat
   ydb-core-tx
   core-tx-datashard
+  tx-schemeshard-olap
   core-tx-scheme_board
   core-tx-tx_allocator_client
   ydb-core-util
@@ -125,7 +127,27 @@ target_link_libraries(core-tx-schemeshard PUBLIC
   ydb-services-bg_tasks
 )
 target_sources(core-tx-schemeshard PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_side_effects.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common_subdomain.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_part.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_domain_links.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_effective_acl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_info_types.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_element.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_schema.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_svp_migration.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_tx_infly.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_types.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_user_attr_limits.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_utils.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/operation_queue_timer.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__background_cleaning.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__borrowed_compaction.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__compaction.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__clean_pathes.cpp
@@ -149,13 +171,13 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_memory_changes.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_db_changes.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_bsv.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_external_data_source.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_external_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_extsubdomain.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_fs.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_index.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_kesus.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_login.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_olap_store.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_olap_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_solomon.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_subdomain.cpp
@@ -164,6 +186,8 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_assign_bsv.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_cancel_tx.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common_external_data_source.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common_external_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_consistent_copy_tables.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_copy_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_backup.cpp
@@ -176,8 +200,6 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_indexed_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_kesus.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_lock.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_olap_store.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_olap_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_replication.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_restore.cpp
@@ -195,8 +217,6 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_indexed_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_kesus.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_lock.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_olap_store.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_olap_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_replication.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_sequence.cpp
@@ -244,7 +264,6 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_effective_acl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_identificators.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_info_types.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_olap_types.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_describer.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_element.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path.cpp
diff --git a/ydb/core/tx/schemeshard/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/CMakeLists.windows-x86_64.txt
index 9030a1fb941f..d29f7605ede9 100644
--- a/ydb/core/tx/schemeshard/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/CMakeLists.windows-x86_64.txt
@@ -6,7 +6,9 @@
 # original buildsystem will not be accepted.
 
 
+add_subdirectory(olap)
 add_subdirectory(ut_auditsettings)
+add_subdirectory(ut_background_cleaning)
 add_subdirectory(ut_backup)
 add_subdirectory(ut_base)
 add_subdirectory(ut_base_reboots)
@@ -96,7 +98,6 @@ target_link_libraries(core-tx-schemeshard PUBLIC
   core-engine-minikql
   ydb-core-external_sources
   core-filestore-core
-  formats-arrow-compression
   core-kesus-tablet
   ydb-core-metering
   ydb-core-persqueue
@@ -111,6 +112,7 @@ target_link_libraries(core-tx-schemeshard PUBLIC
   ydb-core-tablet_flat
   ydb-core-tx
   core-tx-datashard
+  tx-schemeshard-olap
   core-tx-scheme_board
   core-tx-tx_allocator_client
   ydb-core-util
@@ -124,7 +126,27 @@ target_link_libraries(core-tx-schemeshard PUBLIC
   ydb-services-bg_tasks
 )
 target_sources(core-tx-schemeshard PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/defs.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_side_effects.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common_subdomain.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_part.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_impl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_domain_links.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_effective_acl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_info_types.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_element.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_schema.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_svp_migration.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_tx_infly.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_types.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_user_attr_limits.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_utils.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/operation_queue_timer.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__background_cleaning.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__borrowed_compaction.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__compaction.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__clean_pathes.cpp
@@ -148,13 +170,13 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_memory_changes.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_db_changes.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_bsv.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_external_data_source.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_external_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_extsubdomain.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_fs.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_index.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_kesus.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_login.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_olap_store.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_olap_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_solomon.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_alter_subdomain.cpp
@@ -163,6 +185,8 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_assign_bsv.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_cancel_tx.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common_external_data_source.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_common_external_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_consistent_copy_tables.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_copy_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_backup.cpp
@@ -175,8 +199,6 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_indexed_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_kesus.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_lock.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_olap_store.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_olap_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_replication.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_create_restore.cpp
@@ -194,8 +216,6 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_indexed_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_kesus.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_lock.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_olap_store.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_olap_table.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_pq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_replication.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard__operation_drop_sequence.cpp
@@ -243,7 +263,6 @@ target_sources(core-tx-schemeshard PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_effective_acl.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_identificators.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_info_types.cpp
-  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_olap_types.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_describer.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path_element.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/schemeshard_path.cpp
diff --git a/ydb/core/tx/schemeshard/common/validation.cpp b/ydb/core/tx/schemeshard/common/validation.cpp
new file mode 100644
index 000000000000..51615e4e1119
--- /dev/null
+++ b/ydb/core/tx/schemeshard/common/validation.cpp
@@ -0,0 +1,30 @@
+#include "validation.h"
+
+namespace NKikimr::NSchemeShard::NValidation {
+
+bool TTTLValidator::ValidateUnit(const NScheme::TTypeId columnType, NKikimrSchemeOp::TTTLSettings::EUnit unit, TString& errStr) {
+    switch (columnType) {
+        case NScheme::NTypeIds::Date:
+        case NScheme::NTypeIds::Datetime:
+        case NScheme::NTypeIds::Timestamp:
+            if (unit != NKikimrSchemeOp::TTTLSettings::UNIT_AUTO) {
+                errStr = "To enable TTL on date type column 'DateTypeColumnModeSettings' should be specified";
+                return false;
+            }
+            break;
+        case NScheme::NTypeIds::Uint32:
+        case NScheme::NTypeIds::Uint64:
+        case NScheme::NTypeIds::DyNumber:
+            if (unit == NKikimrSchemeOp::TTTLSettings::UNIT_AUTO) {
+                errStr = "To enable TTL on integral type column 'ValueSinceUnixEpochModeSettings' should be specified";
+                return false;
+            }
+            break;
+        default:
+            errStr = "Unsupported column type";
+            return false;
+    }
+    return true;
+}
+
+}
\ No newline at end of file
diff --git a/ydb/core/tx/schemeshard/common/validation.h b/ydb/core/tx/schemeshard/common/validation.h
new file mode 100644
index 000000000000..12d1e801e2ad
--- /dev/null
+++ b/ydb/core/tx/schemeshard/common/validation.h
@@ -0,0 +1,13 @@
+#pragma once
+#include 
+#include 
+
+#include 
+
+namespace NKikimr::NSchemeShard::NValidation {
+
+class TTTLValidator {
+public:
+    static bool ValidateUnit(const NScheme::TTypeId columnType, NKikimrSchemeOp::TTTLSettings::EUnit unit, TString& errStr);
+};
+}
\ No newline at end of file
diff --git a/ydb/core/tx/schemeshard/common/ya.make b/ydb/core/tx/schemeshard/common/ya.make
new file mode 100644
index 000000000000..179f7adf4b9a
--- /dev/null
+++ b/ydb/core/tx/schemeshard/common/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+    validation.cpp
+)
+
+PEERDIR(
+    ydb/core/protos
+    ydb/public/lib/scheme_types
+)
+
+END()
diff --git a/ydb/core/tx/schemeshard/olap/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/olap/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..1e38f462ca9a
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,24 @@
+
+# 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(columns)
+add_subdirectory(common)
+add_subdirectory(indexes)
+add_subdirectory(operations)
+add_subdirectory(schema)
+
+add_library(tx-schemeshard-olap INTERFACE)
+target_link_libraries(tx-schemeshard-olap INTERFACE
+  contrib-libs-cxxsupp
+  yutil
+  schemeshard-olap-columns
+  schemeshard-olap-indexes
+  schemeshard-olap-schema
+  schemeshard-olap-common
+  schemeshard-olap-operations
+)
diff --git a/ydb/core/tx/schemeshard/olap/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/olap/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..1e38f462ca9a
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,24 @@
+
+# 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(columns)
+add_subdirectory(common)
+add_subdirectory(indexes)
+add_subdirectory(operations)
+add_subdirectory(schema)
+
+add_library(tx-schemeshard-olap INTERFACE)
+target_link_libraries(tx-schemeshard-olap INTERFACE
+  contrib-libs-cxxsupp
+  yutil
+  schemeshard-olap-columns
+  schemeshard-olap-indexes
+  schemeshard-olap-schema
+  schemeshard-olap-common
+  schemeshard-olap-operations
+)
diff --git a/ydb/core/tx/schemeshard/olap/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/olap/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..74efd072c757
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,25 @@
+
+# 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(columns)
+add_subdirectory(common)
+add_subdirectory(indexes)
+add_subdirectory(operations)
+add_subdirectory(schema)
+
+add_library(tx-schemeshard-olap INTERFACE)
+target_link_libraries(tx-schemeshard-olap INTERFACE
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  schemeshard-olap-columns
+  schemeshard-olap-indexes
+  schemeshard-olap-schema
+  schemeshard-olap-common
+  schemeshard-olap-operations
+)
diff --git a/ydb/core/tx/schemeshard/olap/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/olap/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..74efd072c757
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,25 @@
+
+# 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(columns)
+add_subdirectory(common)
+add_subdirectory(indexes)
+add_subdirectory(operations)
+add_subdirectory(schema)
+
+add_library(tx-schemeshard-olap INTERFACE)
+target_link_libraries(tx-schemeshard-olap INTERFACE
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  schemeshard-olap-columns
+  schemeshard-olap-indexes
+  schemeshard-olap-schema
+  schemeshard-olap-common
+  schemeshard-olap-operations
+)
diff --git a/ydb/core/tx/schemeshard/olap/CMakeLists.txt b/ydb/core/tx/schemeshard/olap/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/schemeshard/olap/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/olap/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..1e38f462ca9a
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,24 @@
+
+# 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(columns)
+add_subdirectory(common)
+add_subdirectory(indexes)
+add_subdirectory(operations)
+add_subdirectory(schema)
+
+add_library(tx-schemeshard-olap INTERFACE)
+target_link_libraries(tx-schemeshard-olap INTERFACE
+  contrib-libs-cxxsupp
+  yutil
+  schemeshard-olap-columns
+  schemeshard-olap-indexes
+  schemeshard-olap-schema
+  schemeshard-olap-common
+  schemeshard-olap-operations
+)
diff --git a/ydb/core/tx/schemeshard/olap/columns/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/olap/columns/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..fe9aca43452d
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/columns/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,25 @@
+
+# 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(schemeshard-olap-columns)
+target_compile_options(schemeshard-olap-columns PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(schemeshard-olap-columns PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  formats-arrow-dictionary
+  formats-arrow-serializer
+  schemeshard-olap-common
+)
+target_sources(schemeshard-olap-columns PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/columns/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/columns/update.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/columns/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/olap/columns/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..fe9aca43452d
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/columns/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,25 @@
+
+# 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(schemeshard-olap-columns)
+target_compile_options(schemeshard-olap-columns PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(schemeshard-olap-columns PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  formats-arrow-dictionary
+  formats-arrow-serializer
+  schemeshard-olap-common
+)
+target_sources(schemeshard-olap-columns PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/columns/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/columns/update.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/columns/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/olap/columns/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..80ab9c911616
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/columns/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,26 @@
+
+# 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(schemeshard-olap-columns)
+target_compile_options(schemeshard-olap-columns PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(schemeshard-olap-columns PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  formats-arrow-dictionary
+  formats-arrow-serializer
+  schemeshard-olap-common
+)
+target_sources(schemeshard-olap-columns PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/columns/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/columns/update.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/columns/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/olap/columns/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..80ab9c911616
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/columns/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,26 @@
+
+# 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(schemeshard-olap-columns)
+target_compile_options(schemeshard-olap-columns PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(schemeshard-olap-columns PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  formats-arrow-dictionary
+  formats-arrow-serializer
+  schemeshard-olap-common
+)
+target_sources(schemeshard-olap-columns PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/columns/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/columns/update.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/columns/CMakeLists.txt b/ydb/core/tx/schemeshard/olap/columns/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/columns/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/schemeshard/olap/columns/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/olap/columns/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..fe9aca43452d
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/columns/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,25 @@
+
+# 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(schemeshard-olap-columns)
+target_compile_options(schemeshard-olap-columns PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(schemeshard-olap-columns PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-core-protos
+  formats-arrow-dictionary
+  formats-arrow-serializer
+  schemeshard-olap-common
+)
+target_sources(schemeshard-olap-columns PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/columns/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/columns/update.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/columns/update.cpp b/ydb/core/tx/schemeshard/olap/columns/update.cpp
index a6d602b5fa4b..16d2bd448b66 100644
--- a/ydb/core/tx/schemeshard/olap/columns/update.cpp
+++ b/ydb/core/tx/schemeshard/olap/columns/update.cpp
@@ -2,6 +2,8 @@
 #include 
 #include 
 #include 
+#include 
+#include 
 
 namespace NKikimr::NSchemeShard {
 
@@ -13,13 +15,14 @@ namespace NKikimr::NSchemeShard {
         Name = columnSchema.GetName();
         NotNullFlag = columnSchema.GetNotNull();
         TypeName = columnSchema.GetType();
-        if (columnSchema.HasCompression()) {
-            auto compression = NArrow::TCompression::BuildFromProto(columnSchema.GetCompression());
-            if (!compression) {
-                errors.AddError("Cannot parse compression info: " + compression.GetErrorMessage());
+        StorageId = columnSchema.GetStorageId();
+        if (columnSchema.HasSerializer()) {
+            NArrow::NSerialization::TSerializerContainer serializer;
+            if (!serializer.DeserializeFromProto(columnSchema.GetSerializer())) {
+                errors.AddError("Cannot parse serializer info");
                 return false;
             }
-            Compression = *compression;
+            Serializer = serializer;
         }
         if (columnSchema.HasDictionaryEncoding()) {
             auto settings = NArrow::NDictionary::TEncodingSettings::BuildFromProto(columnSchema.GetDictionaryEncoding());
@@ -40,20 +43,33 @@ namespace NKikimr::NSchemeShard {
             return false;
         }
 
-        auto typeName = NMiniKQL::AdaptLegacyYqlType(TypeName);
-        Y_ABORT_UNLESS(AppData()->TypeRegistry);
-        const NScheme::IType* type = AppData()->TypeRegistry->GetType(typeName);
-        if (!type) {
-            errors.AddError(TStringBuilder() << "Type '" << typeName << "' specified for column '" << Name << "' is not supported");
-            return false;
-        }
-        if (!NScheme::NTypeIds::IsYqlType(type->GetTypeId())) {
-            errors.AddError(TStringBuilder() << "Type '" << typeName << "' specified for column '" << Name << "' is not supported");
-            return false;;
+        if (const auto& typeName = NMiniKQL::AdaptLegacyYqlType(TypeName); typeName.StartsWith("pg")) {
+            const auto typeDesc = NPg::TypeDescFromPgTypeName(typeName);
+            if (!(typeDesc && TOlapColumnAdd::IsAllowedPgType(NPg::PgTypeIdFromTypeDesc(typeDesc)))) {
+                errors.AddError(TStringBuilder() << "Type '" << typeName << "' specified for column '" << Name << "' is not supported");
+                return false;
+            }
+            Type = NScheme::TTypeInfo(NScheme::NTypeIds::Pg, typeDesc);
+        } else {
+            Y_ABORT_UNLESS(AppData()->TypeRegistry);
+            const NScheme::IType* type = AppData()->TypeRegistry->GetType(typeName);
+            if (!type) {
+                errors.AddError(TStringBuilder() << "Type '" << typeName << "' specified for column '" << Name << "' is not supported");
+                return false;
+            }
+            if (!NScheme::NTypeIds::IsYqlType(type->GetTypeId())) {
+                errors.AddError(TStringBuilder() << "Type '" << typeName << "' specified for column '" << Name << "' is not supported");
+                return false;;
+            }
+            Type = NScheme::TTypeInfo(type->GetTypeId());
+            if (!IsAllowedType(type->GetTypeId())){
+                errors.AddError(TStringBuilder() << "Type '" << typeName << "' specified for column '" << Name << "' is not supported");
+                return false;
+            }
         }
-        Type = NScheme::TTypeInfo(type->GetTypeId());
-        if (!IsAllowedType(type->GetTypeId())){
-            errors.AddError(TStringBuilder() << "Type '" << typeName << "' specified for column '" << Name << "' is not supported");
+        const auto arrowTypeStatus = NArrow::GetArrowType(Type).status();
+        if (!arrowTypeStatus.ok()) {
+            errors.AddError(TStringBuilder() << "Column '" << Name << "': " << arrowTypeStatus.ToString());
             return false;
         }
         return true;
@@ -62,6 +78,7 @@ namespace NKikimr::NSchemeShard {
     void TOlapColumnAdd::ParseFromLocalDB(const NKikimrSchemeOp::TOlapColumnDescription& columnSchema) {
         Name = columnSchema.GetName();
         TypeName = columnSchema.GetType();
+        StorageId = columnSchema.GetStorageId();
 
         if (columnSchema.HasTypeInfo()) {
             Type = NScheme::TypeInfoModFromProtoColumnType(
@@ -72,10 +89,14 @@ namespace NKikimr::NSchemeShard {
                 columnSchema.GetTypeId(), nullptr)
                 .TypeInfo;
         }
-        if (columnSchema.HasCompression()) {
-            auto compression = NArrow::TCompression::BuildFromProto(columnSchema.GetCompression());
-            Y_ABORT_UNLESS(compression.IsSuccess(), "%s", compression.GetErrorMessage().data());
-            Compression = *compression;
+        if (columnSchema.HasSerializer()) {
+            NArrow::NSerialization::TSerializerContainer serializer;
+            AFL_VERIFY(serializer.DeserializeFromProto(columnSchema.GetSerializer()));
+            Serializer = serializer;
+        } else if (columnSchema.HasCompression()) {
+            NArrow::NSerialization::TSerializerContainer serializer;
+            serializer.DeserializeFromProto(columnSchema.GetCompression()).Validate();
+            Serializer = serializer;
         }
         if (columnSchema.HasDictionaryEncoding()) {
             auto settings = NArrow::NDictionary::TEncodingSettings::BuildFromProto(columnSchema.GetDictionaryEncoding());
@@ -85,12 +106,17 @@ namespace NKikimr::NSchemeShard {
         NotNullFlag = columnSchema.GetNotNull();
     }
 
+    bool TOlapColumnAdd::IsAllowedPgType(ui32 /*pgTypeId*/) {
+        return false;
+    }
+
     void TOlapColumnAdd::Serialize(NKikimrSchemeOp::TOlapColumnDescription& columnSchema) const {
         columnSchema.SetName(Name);
         columnSchema.SetType(TypeName);
         columnSchema.SetNotNull(NotNullFlag);
-        if (Compression) {
-            *columnSchema.MutableCompression() = Compression->SerializeToProto();
+        columnSchema.SetStorageId(StorageId);
+        if (Serializer) {
+            Serializer->SerializeToProto(*columnSchema.MutableSerializer());
         }
         if (DictionaryEncoding) {
             *columnSchema.MutableDictionaryEncoding() = DictionaryEncoding->SerializeToProto();
@@ -105,12 +131,11 @@ namespace NKikimr::NSchemeShard {
 
     bool TOlapColumnAdd::ApplyDiff(const TOlapColumnDiff& diffColumn, IErrorCollector& errors) {
         Y_ABORT_UNLESS(GetName() == diffColumn.GetName());
-        {
-            auto result = diffColumn.GetCompression().Apply(Compression);
-            if (!result) {
-                errors.AddError("Cannot merge compression info: " + result.GetErrorMessage());
-                return false;
-            }
+        if (diffColumn.GetStorageId()) {
+            StorageId = *diffColumn.GetStorageId();
+        }
+        if (diffColumn.GetSerializer()) {
+            Serializer = diffColumn.GetSerializer();
         }
         {
             auto result = diffColumn.GetDictionaryEncoding().Apply(DictionaryEncoding);
@@ -130,7 +155,6 @@ namespace NKikimr::NSchemeShard {
         switch (typeId) {
             case NYql::NProto::Bool:
             case NYql::NProto::Interval:
-            case NYql::NProto::Decimal:
             case NYql::NProto::DyNumber:
                 return false;
             default:
@@ -139,9 +163,12 @@ namespace NKikimr::NSchemeShard {
         return true;
     }
 
-    bool TOlapColumnAdd::IsAllowedFirstPkType(ui32 typeId) {
+    bool TOlapColumnAdd::IsAllowedPkType(ui32 typeId) {
         switch (typeId) {
+            case NYql::NProto::Int8:
             case NYql::NProto::Uint8: // Byte
+            case NYql::NProto::Int16:
+            case NYql::NProto::Uint16:
             case NYql::NProto::Int32:
             case NYql::NProto::Uint32:
             case NYql::NProto::Int64:
@@ -151,21 +178,11 @@ namespace NKikimr::NSchemeShard {
             case NYql::NProto::Date:
             case NYql::NProto::Datetime:
             case NYql::NProto::Timestamp:
-                return true;
-            case NYql::NProto::Interval:
             case NYql::NProto::Decimal:
-            case NYql::NProto::DyNumber:
-            case NYql::NProto::Yson:
-            case NYql::NProto::Json:
-            case NYql::NProto::JsonDocument:
-            case NYql::NProto::Float:
-            case NYql::NProto::Double:
-            case NYql::NProto::Bool:
-                return false;
+                return true;
             default:
-                break;
+                return false;
         }
-        return false;
     }
 
     bool TOlapColumnsUpdate::Parse(const NKikimrSchemeOp::TAlterColumnTableSchema& alterRequest, IErrorCollector& errors) {
@@ -232,11 +249,11 @@ namespace NKikimr::NSchemeShard {
             if (!column.ParseFromRequest(columnSchema, errors)) {
                 return false;
             }
-            if (column.GetKeyOrder() && *column.GetKeyOrder() == 0) {
-                if (!TOlapColumnAdd::IsAllowedFirstPkType(column.GetType().GetTypeId())) {
+            if (column.IsKeyColumn()) {
+                if (!TOlapColumnAdd::IsAllowedPkType(column.GetType().GetTypeId())) {
                     errors.AddError(NKikimrScheme::StatusSchemeError, TStringBuilder()
-                        << "Type '" << column.GetType().GetTypeId() << "' specified for column '" << column.GetName()
-                        << "' is not supported in first PK position");
+                        << "Type '" << column.GetTypeName() << "' specified for column '" << column.GetName()
+                        << "' is not supported as primary key");
                     return false;
                 }
             }
diff --git a/ydb/core/tx/schemeshard/olap/columns/update.h b/ydb/core/tx/schemeshard/olap/columns/update.h
index 45fce0c99094..1a29d648788e 100644
--- a/ydb/core/tx/schemeshard/olap/columns/update.h
+++ b/ydb/core/tx/schemeshard/olap/columns/update.h
@@ -1,30 +1,35 @@
 #pragma once
-#include 
 #include 
 #include 
 #include 
 #include 
 #include 
-#include 
 #include 
+#include 
 
 namespace NKikimr::NSchemeShard {
 
 class TOlapColumnDiff {
 private:
     YDB_READONLY_DEF(TString, Name);
-    YDB_READONLY_DEF(NArrow::TCompressionDiff, Compression);
+    YDB_READONLY_DEF(NArrow::NSerialization::TSerializerContainer, Serializer);
     YDB_READONLY_DEF(NArrow::NDictionary::TEncodingDiff, DictionaryEncoding);
+    YDB_READONLY_DEF(std::optional, StorageId);
 public:
     bool ParseFromRequest(const NKikimrSchemeOp::TOlapColumnDiff& columnSchema, IErrorCollector& errors) {
         Name = columnSchema.GetName();
+        if (!!columnSchema.GetStorageId()) {
+            StorageId = columnSchema.GetStorageId();
+        }
         if (!Name) {
             errors.AddError("empty field name");
             return false;
         }
-        if (!Compression.DeserializeFromProto(columnSchema.GetCompression())) {
-            errors.AddError("cannot parse compression diff from proto");
-            return false;
+        if (columnSchema.HasSerializer()) {
+            if (!Serializer.DeserializeFromProto(columnSchema.GetSerializer())) {
+                errors.AddError("cannot parse serializer diff from proto");
+                return false;
+            }
         }
         if (!DictionaryEncoding.DeserializeFromProto(columnSchema.GetDictionaryEncoding())) {
             errors.AddError("cannot parse dictionary encoding diff from proto");
@@ -40,8 +45,9 @@ class TOlapColumnAdd {
     YDB_READONLY_DEF(TString, Name);
     YDB_READONLY_DEF(TString, TypeName);
     YDB_READONLY_DEF(NScheme::TTypeInfo, Type);
+    YDB_READONLY_DEF(TString, StorageId);
     YDB_FLAG_ACCESSOR(NotNull, false);
-    YDB_READONLY_DEF(std::optional, Compression);
+    YDB_READONLY_DEF(std::optional, Serializer);
     YDB_READONLY_DEF(std::optional, DictionaryEncoding);
 public:
     TOlapColumnAdd(const std::optional& keyOrder)
@@ -56,7 +62,8 @@ class TOlapColumnAdd {
         return !!KeyOrder;
     }
     static bool IsAllowedType(ui32 typeId);
-    static bool IsAllowedFirstPkType(ui32 typeId);
+    static bool IsAllowedPkType(ui32 typeId);
+    static bool IsAllowedPgType(ui32 pgTypeId);
 };
 
 class TOlapColumnsUpdate {
diff --git a/ydb/core/tx/schemeshard/olap/columns/ya.make b/ydb/core/tx/schemeshard/olap/columns/ya.make
index 44971d7eeb22..94c1c4c0febe 100644
--- a/ydb/core/tx/schemeshard/olap/columns/ya.make
+++ b/ydb/core/tx/schemeshard/olap/columns/ya.make
@@ -8,7 +8,8 @@ SRCS(
 PEERDIR(
     ydb/core/protos
     ydb/core/formats/arrow/dictionary
-    ydb/core/formats/arrow/compression
+    ydb/core/formats/arrow/serializer
+    ydb/core/tx/schemeshard/olap/common
 )
 
 YQL_LAST_ABI_VERSION()
diff --git a/ydb/core/tx/schemeshard/olap/common/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/olap/common/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..109c6cb8cb2b
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/common/CMakeLists.darwin-arm64.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(schemeshard-olap-common)
+target_link_libraries(schemeshard-olap-common PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-library-ydb_issue
+  ydb-core-base
+  ydb-library-aclib
+)
+target_sources(schemeshard-olap-common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/common/common.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/common/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/olap/common/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..109c6cb8cb2b
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/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(schemeshard-olap-common)
+target_link_libraries(schemeshard-olap-common PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-library-ydb_issue
+  ydb-core-base
+  ydb-library-aclib
+)
+target_sources(schemeshard-olap-common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/common/common.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/common/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/olap/common/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..c6e82a20d090
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/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(schemeshard-olap-common)
+target_link_libraries(schemeshard-olap-common PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-library-ydb_issue
+  ydb-core-base
+  ydb-library-aclib
+)
+target_sources(schemeshard-olap-common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/common/common.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/common/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/olap/common/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..c6e82a20d090
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/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(schemeshard-olap-common)
+target_link_libraries(schemeshard-olap-common PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  ydb-library-ydb_issue
+  ydb-core-base
+  ydb-library-aclib
+)
+target_sources(schemeshard-olap-common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/common/common.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/common/CMakeLists.txt b/ydb/core/tx/schemeshard/olap/common/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/common/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/schemeshard/olap/common/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/olap/common/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..109c6cb8cb2b
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/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(schemeshard-olap-common)
+target_link_libraries(schemeshard-olap-common PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  ydb-library-ydb_issue
+  ydb-core-base
+  ydb-library-aclib
+)
+target_sources(schemeshard-olap-common PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/common/common.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/common/ya.make b/ydb/core/tx/schemeshard/olap/common/ya.make
index 58bbf1cb442a..aea04768253b 100644
--- a/ydb/core/tx/schemeshard/olap/common/ya.make
+++ b/ydb/core/tx/schemeshard/olap/common/ya.make
@@ -7,6 +7,7 @@ SRCS(
 PEERDIR(
     ydb/library/ydb_issue
     ydb/core/base
+    ydb/library/aclib
 )
 
 END()
diff --git a/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..0a16697caea7
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,19 @@
+
+# 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(schemeshard-olap-indexes)
+target_link_libraries(schemeshard-olap-indexes PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  services-bg_tasks-abstract
+)
+target_sources(schemeshard-olap-indexes PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/indexes/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/indexes/update.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..0a16697caea7
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,19 @@
+
+# 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(schemeshard-olap-indexes)
+target_link_libraries(schemeshard-olap-indexes PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  services-bg_tasks-abstract
+)
+target_sources(schemeshard-olap-indexes PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/indexes/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/indexes/update.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..269cb67d4bcf
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.linux-aarch64.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(schemeshard-olap-indexes)
+target_link_libraries(schemeshard-olap-indexes PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  services-bg_tasks-abstract
+)
+target_sources(schemeshard-olap-indexes PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/indexes/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/indexes/update.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..269cb67d4bcf
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.linux-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(schemeshard-olap-indexes)
+target_link_libraries(schemeshard-olap-indexes PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  services-bg_tasks-abstract
+)
+target_sources(schemeshard-olap-indexes PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/indexes/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/indexes/update.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.txt b/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..0a16697caea7
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/indexes/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,19 @@
+
+# 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(schemeshard-olap-indexes)
+target_link_libraries(schemeshard-olap-indexes PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  services-bg_tasks-abstract
+)
+target_sources(schemeshard-olap-indexes PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/indexes/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/indexes/update.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/indexes/schema.cpp b/ydb/core/tx/schemeshard/olap/indexes/schema.cpp
index 4275e883711d..0f31bf0e2ede 100644
--- a/ydb/core/tx/schemeshard/olap/indexes/schema.cpp
+++ b/ydb/core/tx/schemeshard/olap/indexes/schema.cpp
@@ -6,12 +6,14 @@ namespace NKikimr::NSchemeShard {
 void TOlapIndexSchema::SerializeToProto(NKikimrSchemeOp::TOlapIndexDescription& indexSchema) const {
     indexSchema.SetId(Id);
     indexSchema.SetName(Name);
+    indexSchema.SetStorageId(StorageId);
     IndexMeta.SerializeToProto(indexSchema);
 }
 
 void TOlapIndexSchema::DeserializeFromProto(const NKikimrSchemeOp::TOlapIndexDescription& indexSchema) {
     Id = indexSchema.GetId();
     Name = indexSchema.GetName();
+    StorageId = indexSchema.GetStorageId();
     AFL_VERIFY(IndexMeta.DeserializeFromProto(indexSchema))("incorrect_proto", indexSchema.DebugString());
 }
 
@@ -22,6 +24,9 @@ bool TOlapIndexSchema::ApplyUpdate(const TOlapSchema& currentSchema, const TOlap
         errors.AddError("different index classes: " + upsert.GetIndexConstructor().GetClassName() + " vs " + IndexMeta.GetClassName());
         return false;
     }
+    if (upsert.GetStorageId()) {
+        StorageId = *upsert.GetStorageId();
+    }
     auto object = upsert.GetIndexConstructor()->CreateIndexMeta(GetId(), GetName(), currentSchema, errors);
     if (!object) {
         return false;
diff --git a/ydb/core/tx/schemeshard/olap/indexes/schema.h b/ydb/core/tx/schemeshard/olap/indexes/schema.h
index 630016fe96a5..1aa302ecb826 100644
--- a/ydb/core/tx/schemeshard/olap/indexes/schema.h
+++ b/ydb/core/tx/schemeshard/olap/indexes/schema.h
@@ -10,6 +10,7 @@ class TOlapIndexSchema {
     using TBase = TOlapIndexUpsert;
     YDB_READONLY(ui32, Id, Max());
     YDB_READONLY_DEF(TString, Name);
+    YDB_READONLY_DEF(TString, StorageId);
     YDB_READONLY_DEF(NBackgroundTasks::TInterfaceProtoContainer, IndexMeta);
 public:
     TOlapIndexSchema() = default;
diff --git a/ydb/core/tx/schemeshard/olap/indexes/update.cpp b/ydb/core/tx/schemeshard/olap/indexes/update.cpp
index 596cba4b835c..727a21e7fae8 100644
--- a/ydb/core/tx/schemeshard/olap/indexes/update.cpp
+++ b/ydb/core/tx/schemeshard/olap/indexes/update.cpp
@@ -4,12 +4,19 @@ namespace NKikimr::NSchemeShard {
 
 void TOlapIndexUpsert::SerializeToProto(NKikimrSchemeOp::TOlapIndexRequested& requestedProto) const {
     requestedProto.SetName(Name);
+    if (StorageId && !!*StorageId) {
+        requestedProto.SetStorageId(*StorageId);
+    }
     IndexConstructor.SerializeToProto(requestedProto);
 }
 
-void TOlapIndexUpsert::DeserializeFromProto(const NKikimrSchemeOp::TOlapIndexRequested& indexSchema) {
+bool TOlapIndexUpsert::DeserializeFromProto(const NKikimrSchemeOp::TOlapIndexRequested& indexSchema) {
     Name = indexSchema.GetName();
+    if (!!indexSchema.GetStorageId()) {
+        StorageId = indexSchema.GetStorageId();
+    }
     AFL_VERIFY(IndexConstructor.DeserializeFromProto(indexSchema))("incorrect_proto", indexSchema.DebugString());
+    return true;
 }
 
 bool TOlapIndexesUpdate::Parse(const NKikimrSchemeOp::TAlterColumnTableSchema& alterRequest, IErrorCollector& errors) {
@@ -22,7 +29,7 @@ bool TOlapIndexesUpdate::Parse(const NKikimrSchemeOp::TAlterColumnTableSchema& a
     TSet upsertIndexNames;
     for (auto& indexSchema : alterRequest.GetUpsertIndexes()) {
         TOlapIndexUpsert index;
-        index.DeserializeFromProto(indexSchema);
+        AFL_VERIFY(index.DeserializeFromProto(indexSchema));
         if (!upsertIndexNames.emplace(index.GetName()).second) {
             errors.AddError(NKikimrScheme::StatusAlreadyExists, TStringBuilder() << "index '" << index.GetName() << "' duplication for add");
             return false;
diff --git a/ydb/core/tx/schemeshard/olap/indexes/update.h b/ydb/core/tx/schemeshard/olap/indexes/update.h
index f6d0f88fa312..4350c175b306 100644
--- a/ydb/core/tx/schemeshard/olap/indexes/update.h
+++ b/ydb/core/tx/schemeshard/olap/indexes/update.h
@@ -11,6 +11,7 @@ namespace NKikimr::NSchemeShard {
     private:
         YDB_READONLY_DEF(TString, Name);
         YDB_READONLY_DEF(TString, TypeName);
+        YDB_READONLY_DEF(std::optional, StorageId);
     protected:
         NBackgroundTasks::TInterfaceProtoContainer IndexConstructor;
     public:
@@ -20,7 +21,7 @@ namespace NKikimr::NSchemeShard {
             return IndexConstructor;
         }
 
-        void DeserializeFromProto(const NKikimrSchemeOp::TOlapIndexRequested& requestedProto);
+        bool DeserializeFromProto(const NKikimrSchemeOp::TOlapIndexRequested& requestedProto);
         void SerializeToProto(NKikimrSchemeOp::TOlapIndexRequested& requestedProto) const;
     };
 
diff --git a/ydb/core/tx/schemeshard/olap/operations/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/olap/operations/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..8f53c31cd6e2
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/operations/CMakeLists.darwin-arm64.txt
@@ -0,0 +1,27 @@
+
+# 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(schemeshard-olap-operations)
+target_compile_options(schemeshard-olap-operations PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(schemeshard-olap-operations PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  core-mind-hive
+  ydb-services-bg_tasks
+)
+target_sources(schemeshard-olap-operations PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/create_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/drop_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/alter_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/create_store.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/drop_store.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/alter_store.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/operations/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/olap/operations/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..8f53c31cd6e2
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/operations/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,27 @@
+
+# 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(schemeshard-olap-operations)
+target_compile_options(schemeshard-olap-operations PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(schemeshard-olap-operations PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  core-mind-hive
+  ydb-services-bg_tasks
+)
+target_sources(schemeshard-olap-operations PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/create_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/drop_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/alter_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/create_store.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/drop_store.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/alter_store.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/operations/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/olap/operations/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..8e8e3067b101
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/operations/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,28 @@
+
+# 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(schemeshard-olap-operations)
+target_compile_options(schemeshard-olap-operations PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(schemeshard-olap-operations PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  core-mind-hive
+  ydb-services-bg_tasks
+)
+target_sources(schemeshard-olap-operations PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/create_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/drop_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/alter_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/create_store.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/drop_store.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/alter_store.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/operations/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/olap/operations/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..8e8e3067b101
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/operations/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,28 @@
+
+# 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(schemeshard-olap-operations)
+target_compile_options(schemeshard-olap-operations PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(schemeshard-olap-operations PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  core-mind-hive
+  ydb-services-bg_tasks
+)
+target_sources(schemeshard-olap-operations PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/create_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/drop_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/alter_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/create_store.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/drop_store.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/alter_store.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/operations/CMakeLists.txt b/ydb/core/tx/schemeshard/olap/operations/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/operations/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/schemeshard/olap/operations/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/olap/operations/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..8f53c31cd6e2
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/operations/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,27 @@
+
+# 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(schemeshard-olap-operations)
+target_compile_options(schemeshard-olap-operations PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_link_libraries(schemeshard-olap-operations PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  core-mind-hive
+  ydb-services-bg_tasks
+)
+target_sources(schemeshard-olap-operations PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/create_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/drop_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/alter_table.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/create_store.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/drop_store.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/operations/alter_store.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/options/schema.cpp b/ydb/core/tx/schemeshard/olap/options/schema.cpp
new file mode 100644
index 000000000000..f9bb47cdce0f
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/options/schema.cpp
@@ -0,0 +1,22 @@
+#include "schema.h"
+
+namespace NKikimr::NSchemeShard {
+
+bool TOlapOptionsDescription::ApplyUpdate(const TOlapOptionsUpdate& schemaUpdate, IErrorCollector& /*errors*/) {
+    SchemeNeedActualization = schemaUpdate.GetSchemeNeedActualization();
+    return true;
+}
+
+void TOlapOptionsDescription::Parse(const NKikimrSchemeOp::TColumnTableSchema& tableSchema) {
+    SchemeNeedActualization = tableSchema.GetOptions().GetSchemeNeedActualization();
+}
+
+void TOlapOptionsDescription::Serialize(NKikimrSchemeOp::TColumnTableSchema& tableSchema) const {
+    tableSchema.MutableOptions()->SetSchemeNeedActualization(SchemeNeedActualization);
+}
+
+bool TOlapOptionsDescription::Validate(const NKikimrSchemeOp::TColumnTableSchema& /*opSchema*/, IErrorCollector& /*errors*/) const {
+    return true;
+}
+
+}
diff --git a/ydb/core/tx/schemeshard/olap/options/schema.h b/ydb/core/tx/schemeshard/olap/options/schema.h
new file mode 100644
index 000000000000..ecaa79f69577
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/options/schema.h
@@ -0,0 +1,18 @@
+#pragma once
+#include "update.h"
+
+namespace NKikimr::NSchemeShard {
+
+class TOlapSchema;
+
+class TOlapOptionsDescription {
+private:
+    YDB_READONLY(bool, SchemeNeedActualization, false);
+public:
+    bool ApplyUpdate(const TOlapOptionsUpdate& schemaUpdate, IErrorCollector& errors);
+
+    void Parse(const NKikimrSchemeOp::TColumnTableSchema& tableSchema);
+    void Serialize(NKikimrSchemeOp::TColumnTableSchema& tableSchema) const;
+    bool Validate(const NKikimrSchemeOp::TColumnTableSchema& opSchema, IErrorCollector& errors) const;
+};
+}
diff --git a/ydb/core/tx/schemeshard/olap/options/update.cpp b/ydb/core/tx/schemeshard/olap/options/update.cpp
new file mode 100644
index 000000000000..1080546ffcc0
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/options/update.cpp
@@ -0,0 +1,5 @@
+#include "update.h"
+
+namespace NKikimr::NSchemeShard {
+
+}
diff --git a/ydb/core/tx/schemeshard/olap/options/update.h b/ydb/core/tx/schemeshard/olap/options/update.h
new file mode 100644
index 000000000000..8e8afcf27359
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/options/update.h
@@ -0,0 +1,22 @@
+#pragma once
+#include 
+
+#include 
+
+#include 
+
+namespace NKikimr::NSchemeShard {
+
+    class TOlapOptionsUpdate {
+    private:
+        YDB_ACCESSOR(bool, SchemeNeedActualization, false);
+    public:
+        bool Parse(const NKikimrSchemeOp::TAlterColumnTableSchema& alterRequest, IErrorCollector& /*errors*/) {
+            SchemeNeedActualization = alterRequest.GetOptions().GetSchemeNeedActualization();
+            return true;
+        }
+        void SerializeToProto(NKikimrSchemeOp::TAlterColumnTableSchema& alterRequest) const {
+            alterRequest.MutableOptions()->SetSchemeNeedActualization(SchemeNeedActualization);
+        }
+    };
+}
diff --git a/ydb/core/tx/schemeshard/olap/options/ya.make b/ydb/core/tx/schemeshard/olap/options/ya.make
new file mode 100644
index 000000000000..0303a9692f52
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/options/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+    schema.cpp
+    update.cpp
+)
+
+PEERDIR(
+    ydb/services/bg_tasks/abstract
+)
+
+END()
diff --git a/ydb/core/tx/schemeshard/olap/schema/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/olap/schema/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..66983fce5a67
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/schema/CMakeLists.darwin-arm64.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(schemeshard-olap-schema)
+target_link_libraries(schemeshard-olap-schema PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  schemeshard-olap-columns
+  schemeshard-olap-indexes
+)
+target_sources(schemeshard-olap-schema PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/schema/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/schema/update.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/schema/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/olap/schema/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..66983fce5a67
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/schema/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(schemeshard-olap-schema)
+target_link_libraries(schemeshard-olap-schema PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  schemeshard-olap-columns
+  schemeshard-olap-indexes
+)
+target_sources(schemeshard-olap-schema PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/schema/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/schema/update.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/schema/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/olap/schema/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..286ee995be67
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/schema/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(schemeshard-olap-schema)
+target_link_libraries(schemeshard-olap-schema PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  schemeshard-olap-columns
+  schemeshard-olap-indexes
+)
+target_sources(schemeshard-olap-schema PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/schema/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/schema/update.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/schema/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/olap/schema/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..286ee995be67
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/schema/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(schemeshard-olap-schema)
+target_link_libraries(schemeshard-olap-schema PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  schemeshard-olap-columns
+  schemeshard-olap-indexes
+)
+target_sources(schemeshard-olap-schema PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/schema/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/schema/update.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/schema/CMakeLists.txt b/ydb/core/tx/schemeshard/olap/schema/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/schema/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/schemeshard/olap/schema/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/olap/schema/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..66983fce5a67
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/schema/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(schemeshard-olap-schema)
+target_link_libraries(schemeshard-olap-schema PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  schemeshard-olap-columns
+  schemeshard-olap-indexes
+)
+target_sources(schemeshard-olap-schema PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/schema/schema.cpp
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/olap/schema/update.cpp
+)
diff --git a/ydb/core/tx/schemeshard/olap/schema/schema.cpp b/ydb/core/tx/schemeshard/olap/schema/schema.cpp
index ff7ba1bbe4ca..48a2f4ed6d29 100644
--- a/ydb/core/tx/schemeshard/olap/schema/schema.cpp
+++ b/ydb/core/tx/schemeshard/olap/schema/schema.cpp
@@ -1,93 +1,212 @@
 #include "schema.h"
+#include 
+#include 
 
 namespace NKikimr::NSchemeShard {
 
-    bool TOlapSchema::Update(const TOlapSchemaUpdate& schemaUpdate, IErrorCollector& errors) {
-        if (!Columns.ApplyUpdate(schemaUpdate.GetColumns(), errors, NextColumnId)) {
-            return false;
-        }
+namespace {
+static inline bool IsDropped(const TOlapColumnsDescription::TColumn& col) {
+    Y_UNUSED(col);
+    return false;
+}
+
+static inline ui32 GetType(const TOlapColumnsDescription::TColumn& col) {
+    Y_ABORT_UNLESS(col.GetType().GetTypeId() != NScheme::NTypeIds::Pg, "pg types are not supported");
+    return col.GetType().GetTypeId();
+}
+
+}
+
+static bool ValidateColumnTableTtl(const NKikimrSchemeOp::TColumnDataLifeCycle::TTtl& ttl,
+    const THashMap& sourceColumns,
+    const THashMap& alterColumns,
+    const THashMap& colName2Id,
+    IErrorCollector& errors) {
+    const TString colName = ttl.GetColumnName();
+
+    auto it = colName2Id.find(colName);
+    if (it == colName2Id.end()) {
+        errors.AddError(Sprintf("Cannot enable TTL on unknown column: '%s'", colName.data()));
+        return false;
+    }
+
+    const TOlapColumnsDescription::TColumn* column = nullptr;
+    const ui32 colId = it->second;
+    if (alterColumns.contains(colId)) {
+        column = &alterColumns.at(colId);
+    } else if (sourceColumns.contains(colId)) {
+        column = &sourceColumns.at(colId);
+    } else {
+        Y_ABORT_UNLESS("Unknown column");
+    }
+
+    if (IsDropped(*column)) {
+        errors.AddError(Sprintf("Cannot enable TTL on dropped column: '%s'", colName.data()));
+        return false;
+    }
+
+    if (ttl.HasExpireAfterBytes()) {
+        errors.AddError("TTL with eviction by size is not supported yet");
+        return false;
+    }
+
+    if (!ttl.HasExpireAfterSeconds()) {
+        errors.AddError("TTL without eviction time");
+        return false;
+    }
+
+    auto unit = ttl.GetColumnUnit();
 
-        if (!Indexes.ApplyUpdate(*this, schemaUpdate.GetIndexes(), errors, NextColumnId)) {
+    switch (GetType(*column)) {
+        case NScheme::NTypeIds::DyNumber:
+            errors.AddError("Unsupported column type for TTL in column tables");
             return false;
-        }
+        default:
+            break;
+    }
+
+    TString errStr;
+    if (!NValidation::TTTLValidator::ValidateUnit(GetType(*column), unit, errStr)) {
+        errors.AddError(errStr);
+        return false;
+    }
+    return true;
+}
 
-        if (!HasEngine()) {
-            Engine = schemaUpdate.GetEngineDef(NKikimrSchemeOp::COLUMN_ENGINE_REPLACING_TIMESERIES);
-        } else {
-            if (schemaUpdate.HasEngine()) {
-                errors.AddError(NKikimrScheme::StatusSchemeError, "No engine updates supported");
+bool TOlapSchema::ValidateTtlSettings(const NKikimrSchemeOp::TColumnDataLifeCycle& ttl, IErrorCollector& errors) const {
+    using TTtlProto = NKikimrSchemeOp::TColumnDataLifeCycle;
+    switch (ttl.GetStatusCase()) {
+        case TTtlProto::kEnabled:
+        {
+            const auto* column = Columns.GetByName(ttl.GetEnabled().GetColumnName());
+            if (!column) {
+                errors.AddError("Incorrect ttl column - not found in scheme");
                 return false;
             }
+            if (!Statistics.GetByIdOptional(NOlap::NStatistics::EType::Max, {column->GetId()})) {
+                TOlapStatisticsModification modification;
+                NOlap::NStatistics::TConstructorContainer container(std::make_shared(column->GetName()));
+                modification.AddUpsert("__TTL_PROVIDER::" + TGUID::CreateTimebased().AsUuidString(), container);
+                if (!Statistics.ApplyUpdate(*this, modification, errors)) {
+                    return false;
+                }
+            }
+            return ValidateColumnTableTtl(ttl.GetEnabled(), {}, Columns.GetColumns(), Columns.GetColumnsByName(), errors);
         }
-
-        ++Version;
-        return true;
+        case TTtlProto::kDisabled:
+        default:
+            break;
     }
 
-    void TOlapSchema::ParseFromLocalDB(const NKikimrSchemeOp::TColumnTableSchema& tableSchema) {
-        NextColumnId = tableSchema.GetNextColumnId();
-        Version = tableSchema.GetVersion();
-        Y_ABORT_UNLESS(tableSchema.HasEngine());
-        Engine = tableSchema.GetEngine();
-        CompositeMarksFlag = tableSchema.GetCompositeMarks();
+    return true;
+}
 
-        Columns.Parse(tableSchema);
-        Indexes.Parse(tableSchema);
+bool TOlapSchema::Update(const TOlapSchemaUpdate& schemaUpdate, IErrorCollector& errors) {
+    if (!Columns.ApplyUpdate(schemaUpdate.GetColumns(), errors, NextColumnId)) {
+        return false;
     }
 
-    void TOlapSchema::Serialize(NKikimrSchemeOp::TColumnTableSchema& tableSchema) const {
-        tableSchema.SetNextColumnId(NextColumnId);
-        tableSchema.SetVersion(Version);
-        tableSchema.SetCompositeMarks(CompositeMarksFlag);
+    if (!Indexes.ApplyUpdate(*this, schemaUpdate.GetIndexes(), errors, NextColumnId)) {
+        return false;
+    }
 
-        Y_ABORT_UNLESS(HasEngine());
-        tableSchema.SetEngine(GetEngineUnsafe());
+    if (!Statistics.ApplyUpdate(*this, schemaUpdate.GetStatistics(), errors)) {
+        return false;
+    }
 
-        Columns.Serialize(tableSchema);
-        Indexes.Serialize(tableSchema);
+    if (!Options.ApplyUpdate(schemaUpdate.GetOptions(), errors)) {
+        return false;
     }
 
-    bool TOlapSchema::Validate(const NKikimrSchemeOp::TColumnTableSchema& opSchema, IErrorCollector& errors) const {
-        if (!Columns.Validate(opSchema, errors)) {
+    if (!HasEngine()) {
+        Engine = schemaUpdate.GetEngineDef(NKikimrSchemeOp::COLUMN_ENGINE_REPLACING_TIMESERIES);
+    } else {
+        if (schemaUpdate.HasEngine()) {
+            errors.AddError(NKikimrScheme::StatusSchemeError, "No engine updates supported");
             return false;
         }
+    }
 
-        if (!Indexes.Validate(opSchema, errors)) {
-            return false;
-        }
+    ++Version;
+    return true;
+}
 
-        if (opSchema.GetEngine() != Engine) {
-            errors.AddError("Specified schema engine does not match schema preset");
-            return false;
-        }
-        return true;
+void TOlapSchema::ParseFromLocalDB(const NKikimrSchemeOp::TColumnTableSchema& tableSchema) {
+    NextColumnId = tableSchema.GetNextColumnId();
+    Version = tableSchema.GetVersion();
+    Y_ABORT_UNLESS(tableSchema.HasEngine());
+    Engine = tableSchema.GetEngine();
+    CompositeMarksFlag = tableSchema.GetCompositeMarks();
+
+    Columns.Parse(tableSchema);
+    Indexes.Parse(tableSchema);
+    Options.Parse(tableSchema);
+    Statistics.Parse(tableSchema);
+}
+
+void TOlapSchema::Serialize(NKikimrSchemeOp::TColumnTableSchema& tableSchema) const {
+    tableSchema.SetNextColumnId(NextColumnId);
+    tableSchema.SetVersion(Version);
+    tableSchema.SetCompositeMarks(CompositeMarksFlag);
+
+    Y_ABORT_UNLESS(HasEngine());
+    tableSchema.SetEngine(GetEngineUnsafe());
+
+    Columns.Serialize(tableSchema);
+    Indexes.Serialize(tableSchema);
+    Options.Serialize(tableSchema);
+    Statistics.Serialize(tableSchema);
+}
+
+bool TOlapSchema::Validate(const NKikimrSchemeOp::TColumnTableSchema& opSchema, IErrorCollector& errors) const {
+    if (!Columns.Validate(opSchema, errors)) {
+        return false;
     }
 
-    void TOlapStoreSchemaPreset::ParseFromLocalDB(const NKikimrSchemeOp::TColumnTableSchemaPreset& presetProto) {
-        Y_ABORT_UNLESS(presetProto.HasId());
-        Y_ABORT_UNLESS(presetProto.HasName());
-        Y_ABORT_UNLESS(presetProto.HasSchema());
-        Id = presetProto.GetId();
-        Name = presetProto.GetName();
-        TOlapSchema::ParseFromLocalDB(presetProto.GetSchema());
+    if (!Indexes.Validate(opSchema, errors)) {
+        return false;
     }
 
-    void TOlapStoreSchemaPreset::Serialize(NKikimrSchemeOp::TColumnTableSchemaPreset& presetProto) const {
-        presetProto.SetId(Id);
-        presetProto.SetName(Name);
-        TOlapSchema::Serialize(*presetProto.MutableSchema());
+    if (!Options.Validate(opSchema, errors)) {
+        return false;
     }
 
-    bool TOlapStoreSchemaPreset::ParseFromRequest(const NKikimrSchemeOp::TColumnTableSchemaPreset& presetProto, IErrorCollector& errors) {
-        if (presetProto.HasId()) {
-            errors.AddError("Schema preset id cannot be specified explicitly");
-            return false;
-        }
-        if (!presetProto.GetName()) {
-            errors.AddError("Schema preset name cannot be empty");
-            return false;
-        }
-        Name = presetProto.GetName();
-        return true;
+    if (!Statistics.Validate(opSchema, errors)) {
+        return false;
+    }
+
+    if (opSchema.GetEngine() != Engine) {
+        errors.AddError("Specified schema engine does not match schema preset");
+        return false;
     }
+    return true;
+}
+
+void TOlapStoreSchemaPreset::ParseFromLocalDB(const NKikimrSchemeOp::TColumnTableSchemaPreset& presetProto) {
+    Y_ABORT_UNLESS(presetProto.HasId());
+    Y_ABORT_UNLESS(presetProto.HasName());
+    Y_ABORT_UNLESS(presetProto.HasSchema());
+    Id = presetProto.GetId();
+    Name = presetProto.GetName();
+    TOlapSchema::ParseFromLocalDB(presetProto.GetSchema());
+}
+
+void TOlapStoreSchemaPreset::Serialize(NKikimrSchemeOp::TColumnTableSchemaPreset& presetProto) const {
+    presetProto.SetId(Id);
+    presetProto.SetName(Name);
+    TOlapSchema::Serialize(*presetProto.MutableSchema());
+}
+
+bool TOlapStoreSchemaPreset::ParseFromRequest(const NKikimrSchemeOp::TColumnTableSchemaPreset& presetProto, IErrorCollector& errors) {
+    if (presetProto.HasId()) {
+        errors.AddError("Schema preset id cannot be specified explicitly");
+        return false;
+    }
+    if (!presetProto.GetName()) {
+        errors.AddError("Schema preset name cannot be empty");
+        return false;
+    }
+    Name = presetProto.GetName();
+    return true;
+}
 }
diff --git a/ydb/core/tx/schemeshard/olap/schema/schema.h b/ydb/core/tx/schemeshard/olap/schema/schema.h
index ca9e8b14c64b..5cedea25de31 100644
--- a/ydb/core/tx/schemeshard/olap/schema/schema.h
+++ b/ydb/core/tx/schemeshard/olap/schema/schema.h
@@ -1,8 +1,11 @@
 #pragma once
 #include 
 #include 
+#include 
 #include 
 #include 
+#include 
+#include 
 #include "update.h"
 
 namespace NKikimr::NSchemeShard {
@@ -12,12 +15,18 @@ namespace NKikimr::NSchemeShard {
         YDB_READONLY_OPT(NKikimrSchemeOp::EColumnTableEngine, Engine);
         YDB_READONLY_DEF(TOlapColumnsDescription, Columns);
         YDB_READONLY_DEF(TOlapIndexesDescription, Indexes);
+        YDB_READONLY_DEF(TOlapOptionsDescription, Options);
+        mutable TOlapStatisticsDescription Statistics;
 
         YDB_READONLY(ui32, NextColumnId, 1);
         YDB_READONLY(ui32, Version, 0);
         YDB_READONLY_FLAG(CompositeMarks, true);
 
     public:
+        const TOlapStatisticsDescription& GetStatistics() const {
+            return Statistics;
+        }
+
         bool Update(const TOlapSchemaUpdate& schemaUpdate, IErrorCollector& errors);
 
         void ParseFromLocalDB(const NKikimrSchemeOp::TColumnTableSchema& tableSchema);
@@ -26,7 +35,7 @@ namespace NKikimr::NSchemeShard {
         bool ValidateTtlSettings(const NKikimrSchemeOp::TColumnDataLifeCycle& ttlSettings, IErrorCollector& errors) const;
     };
 
-    class TOlapStoreSchemaPreset : public TOlapSchema {
+    class TOlapStoreSchemaPreset: public TOlapSchema {
     private:
         using TBase = TOlapSchema;
         YDB_ACCESSOR_DEF(TString, Name);
diff --git a/ydb/core/tx/schemeshard/olap/schema/update.cpp b/ydb/core/tx/schemeshard/olap/schema/update.cpp
index 92d7d9038fb8..b78161394b78 100644
--- a/ydb/core/tx/schemeshard/olap/schema/update.cpp
+++ b/ydb/core/tx/schemeshard/olap/schema/update.cpp
@@ -23,6 +23,14 @@ namespace NKikimr::NSchemeShard {
             return false;
         }
 
+        if (!Statistics.Parse(alterRequest, errors)) {
+            return false;
+        }
+
+        if (!Options.Parse(alterRequest, errors)) {
+            return false;
+        }
+
         return true;
     }
 }
diff --git a/ydb/core/tx/schemeshard/olap/schema/update.h b/ydb/core/tx/schemeshard/olap/schema/update.h
index bb4173433f30..d61b97749a5d 100644
--- a/ydb/core/tx/schemeshard/olap/schema/update.h
+++ b/ydb/core/tx/schemeshard/olap/schema/update.h
@@ -1,10 +1,17 @@
 #pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
 
 namespace NKikimr::NSchemeShard {
 
     class TOlapSchemaUpdate {
         YDB_READONLY_DEF(TOlapColumnsUpdate, Columns);
         YDB_READONLY_DEF(TOlapIndexesUpdate, Indexes);
+        YDB_READONLY_DEF(TOlapOptionsUpdate, Options);
+        YDB_READONLY_DEF(TOlapStatisticsModification, Statistics);
         YDB_READONLY_OPT(NKikimrSchemeOp::EColumnTableEngine, Engine);
     public:
         bool Parse(const NKikimrSchemeOp::TColumnTableSchema& tableSchema, IErrorCollector& errors, bool allowNullKeys = false);
diff --git a/ydb/core/tx/schemeshard/olap/schema/ya.make b/ydb/core/tx/schemeshard/olap/schema/ya.make
index 9c21a43bbbb7..76b2d2d1c801 100644
--- a/ydb/core/tx/schemeshard/olap/schema/ya.make
+++ b/ydb/core/tx/schemeshard/olap/schema/ya.make
@@ -8,6 +8,8 @@ SRCS(
 PEERDIR(
     ydb/core/tx/schemeshard/olap/columns
     ydb/core/tx/schemeshard/olap/indexes
+    ydb/core/tx/schemeshard/olap/options
+    ydb/core/tx/schemeshard/common
 )
 
 END()
diff --git a/ydb/core/tx/schemeshard/olap/statistics/schema.cpp b/ydb/core/tx/schemeshard/olap/statistics/schema.cpp
new file mode 100644
index 000000000000..af6f9e711d05
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/statistics/schema.cpp
@@ -0,0 +1,92 @@
+#include "schema.h"
+#include 
+
+namespace NKikimr::NSchemeShard {
+
+void TOlapStatisticsSchema::SerializeToProto(NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) const {
+    Operator.SerializeToProto(proto);
+}
+
+bool TOlapStatisticsSchema::DeserializeFromProto(const NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) {
+    AFL_VERIFY(Operator.DeserializeFromProto(proto))("incorrect_proto", proto.DebugString());
+    return true;
+}
+
+bool TOlapStatisticsSchema::ApplyUpdate(const TOlapSchema& /*currentSchema*/, const TOlapStatisticsUpsert& upsert, IErrorCollector& errors) {
+    AFL_VERIFY(upsert.GetName() == Operator.GetName());
+    AFL_VERIFY(!!upsert.GetConstructor());
+    if (upsert.GetConstructor().GetClassName() != Operator.GetClassName()) {
+        errors.AddError("different index classes: " + upsert.GetConstructor().GetClassName() + " vs " + Operator.GetClassName());
+        return false;
+    }
+    errors.AddError("cannot modify statistics calculation for " + Operator.GetName() + ". not implemented currently.");
+    return false;
+}
+
+bool TOlapStatisticsDescription::ApplyUpdate(const TOlapSchema& currentSchema, const TOlapStatisticsModification& schemaUpdate, IErrorCollector& errors) {
+    for (auto&& stat : schemaUpdate.GetUpsert()) {
+        auto* current = MutableByNameOptional(stat.GetName());
+        if (current) {
+            if (!current->ApplyUpdate(currentSchema, stat, errors)) {
+                return false;
+            }
+        } else {
+            auto meta = stat.GetConstructor()->CreateOperator(stat.GetName(), currentSchema);
+            if (!meta) {
+                errors.AddError(meta.GetErrorMessage());
+                return false;
+            }
+            TOlapStatisticsSchema object(meta.DetachResult());
+            Y_ABORT_UNLESS(ObjectsByName.emplace(stat.GetName(), std::move(object)).second);
+        }
+    }
+
+    for (const auto& name : schemaUpdate.GetDrop()) {
+        auto info = GetByNameOptional(name);
+        if (!info) {
+            errors.AddError(NKikimrScheme::StatusSchemeError, TStringBuilder() << "Unknown stat for drop: " << name);
+            return false;
+        }
+        AFL_VERIFY(ObjectsByName.erase(name));
+    }
+
+    return true;
+}
+
+void TOlapStatisticsDescription::Parse(const NKikimrSchemeOp::TColumnTableSchema& tableSchema) {
+    for (const auto& proto : tableSchema.GetStatistics()) {
+        TOlapStatisticsSchema object;
+        AFL_VERIFY(object.DeserializeFromProto(proto));
+        AFL_VERIFY(ObjectsByName.emplace(proto.GetName(), std::move(object)).second);
+    }
+}
+
+void TOlapStatisticsDescription::Serialize(NKikimrSchemeOp::TColumnTableSchema& tableSchema) const {
+    for (const auto& object : ObjectsByName) {
+        object.second.SerializeToProto(*tableSchema.AddStatistics());
+    }
+}
+
+bool TOlapStatisticsDescription::Validate(const NKikimrSchemeOp::TColumnTableSchema& opSchema, IErrorCollector& errors) const {
+    THashSet usedObjects;
+    for (const auto& proto : opSchema.GetStatistics()) {
+        if (proto.GetName().empty()) {
+            errors.AddError("Statistic cannot have an empty name");
+            return false;
+        }
+
+        const TString& name = proto.GetName();
+        if (!GetByNameOptional(name)) {
+            errors.AddError("Stat '" + name + "' does not match schema preset");
+            return false;
+        }
+
+        if (!usedObjects.emplace(proto.GetName()).second) {
+            errors.AddError("Column '" + name + "' is specified multiple times");
+            return false;
+        }
+    }
+    return true;
+}
+
+}
diff --git a/ydb/core/tx/schemeshard/olap/statistics/schema.h b/ydb/core/tx/schemeshard/olap/statistics/schema.h
new file mode 100644
index 000000000000..37a79fc17fdd
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/statistics/schema.h
@@ -0,0 +1,80 @@
+#pragma once
+#include "update.h"
+
+namespace NKikimr::NSchemeShard {
+
+class TOlapSchema;
+
+class TOlapStatisticsSchema {
+private:
+    YDB_READONLY_DEF(NOlap::NStatistics::TOperatorContainer, Operator);
+public:
+    TOlapStatisticsSchema() = default;
+
+    TOlapStatisticsSchema(const NOlap::NStatistics::TOperatorContainer& container)
+        : Operator(container)
+    {
+        AFL_VERIFY(container.GetName());
+    }
+
+    bool ApplyUpdate(const TOlapSchema& currentSchema, const TOlapStatisticsUpsert& upsert, IErrorCollector& errors);
+
+    void SerializeToProto(NKikimrColumnShardStatisticsProto::TOperatorContainer& proto) const;
+    bool DeserializeFromProto(const NKikimrColumnShardStatisticsProto::TOperatorContainer& proto);
+};
+
+class TOlapStatisticsDescription {
+public:
+    using TObjectsByName = THashMap;
+
+private:
+    YDB_READONLY_DEF(TObjectsByName, ObjectsByName);
+public:
+    const TOlapStatisticsSchema* GetByIdOptional(const NOlap::NStatistics::EType type, const std::vector& entityIds) const noexcept {
+        for (auto&& i : ObjectsByName) {
+            if (!i.second.GetOperator()) {
+                continue;
+            }
+            if (i.second.GetOperator()->GetIdentifier() != NOlap::NStatistics::TIdentifier(type, entityIds)) {
+                continue;
+            }
+            return &i.second;
+        }
+        return nullptr;
+    }
+
+    const TOlapStatisticsSchema* GetByNameOptional(const TString& name) const noexcept {
+        auto it = ObjectsByName.find(name);
+        if (it != ObjectsByName.end()) {
+            return &it->second;
+        }
+        return nullptr;
+    }
+
+    const TOlapStatisticsSchema& GetByNameVerified(const TString& name) const noexcept {
+        auto object = GetByNameOptional(name);
+        AFL_VERIFY(object);
+        return *object;
+    }
+
+    TOlapStatisticsSchema* MutableByNameOptional(const TString& name) noexcept {
+        auto it = ObjectsByName.find(name);
+        if (it != ObjectsByName.end()) {
+            return &it->second;
+        }
+        return nullptr;
+    }
+
+    TOlapStatisticsSchema& MutableByNameVerified(const TString& name) noexcept {
+        auto* object = MutableByNameOptional(name);
+        AFL_VERIFY(object);
+        return *object;
+    }
+
+    bool ApplyUpdate(const TOlapSchema& currentSchema, const TOlapStatisticsModification& schemaUpdate, IErrorCollector& errors);
+
+    void Parse(const NKikimrSchemeOp::TColumnTableSchema& tableSchema);
+    void Serialize(NKikimrSchemeOp::TColumnTableSchema& tableSchema) const;
+    bool Validate(const NKikimrSchemeOp::TColumnTableSchema& opSchema, IErrorCollector& errors) const;
+};
+}
diff --git a/ydb/core/tx/schemeshard/olap/statistics/update.cpp b/ydb/core/tx/schemeshard/olap/statistics/update.cpp
new file mode 100644
index 000000000000..1c82c07c300c
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/statistics/update.cpp
@@ -0,0 +1,35 @@
+#include "update.h"
+
+namespace NKikimr::NSchemeShard {
+
+void TOlapStatisticsUpsert::SerializeToProto(NKikimrColumnShardStatisticsProto::TConstructorContainer& requestedProto) const {
+    requestedProto.SetName(Name);
+    Constructor.SerializeToProto(requestedProto);
+}
+
+bool TOlapStatisticsUpsert::DeserializeFromProto(const NKikimrColumnShardStatisticsProto::TConstructorContainer& proto) {
+    Name = proto.GetName();
+    AFL_VERIFY(Constructor.DeserializeFromProto(proto))("incorrect_proto", proto.DebugString());
+    return true;
+}
+
+bool TOlapStatisticsModification::Parse(const NKikimrSchemeOp::TAlterColumnTableSchema& alterRequest, IErrorCollector& errors) {
+    for (const auto& name : alterRequest.GetDropStatistics()) {
+        if (!Drop.emplace(name).second) {
+            errors.AddError(NKikimrScheme::StatusInvalidParameter, "Duplicated statistics for drop");
+            return false;
+        }
+    }
+    TSet upsertNames;
+    for (auto& schema : alterRequest.GetUpsertStatistics()) {
+        TOlapStatisticsUpsert stat;
+        AFL_VERIFY(stat.DeserializeFromProto(schema));
+        if (!upsertNames.emplace(stat.GetName()).second) {
+            errors.AddError(NKikimrScheme::StatusAlreadyExists, TStringBuilder() << "stat '" << stat.GetName() << "' duplication for add");
+            return false;
+        }
+        Upsert.emplace_back(std::move(stat));
+    }
+    return true;
+}
+}
diff --git a/ydb/core/tx/schemeshard/olap/statistics/update.h b/ydb/core/tx/schemeshard/olap/statistics/update.h
new file mode 100644
index 000000000000..96558928acf3
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/statistics/update.h
@@ -0,0 +1,43 @@
+#pragma once
+#include 
+#include 
+#include 
+#include 
+#include 
+
+namespace NKikimr::NSchemeShard {
+
+    class TOlapStatisticsUpsert {
+    private:
+        YDB_READONLY_DEF(TString, Name);
+    protected:
+        NOlap::NStatistics::TConstructorContainer Constructor;
+    public:
+        TOlapStatisticsUpsert() = default;
+        TOlapStatisticsUpsert(const TString& name, const NOlap::NStatistics::TConstructorContainer& constructor)
+            : Name(name)
+            , Constructor(constructor)
+        {
+
+        }
+
+        const NOlap::NStatistics::TConstructorContainer& GetConstructor() const {
+            return Constructor;
+        }
+
+        bool DeserializeFromProto(const NKikimrColumnShardStatisticsProto::TConstructorContainer& requestedProto);
+        void SerializeToProto(NKikimrColumnShardStatisticsProto::TConstructorContainer& requestedProto) const;
+    };
+
+    class TOlapStatisticsModification {
+    private:
+        YDB_READONLY_DEF(TVector, Upsert);
+        YDB_READONLY_DEF(TSet, Drop);
+    public:
+        void AddUpsert(const TString& name, const NOlap::NStatistics::TConstructorContainer container) {
+            Upsert.emplace_back(TOlapStatisticsUpsert(name, container));
+        }
+
+        bool Parse(const NKikimrSchemeOp::TAlterColumnTableSchema& alterRequest, IErrorCollector& errors);
+    };
+}
diff --git a/ydb/core/tx/schemeshard/olap/statistics/ya.make b/ydb/core/tx/schemeshard/olap/statistics/ya.make
new file mode 100644
index 000000000000..0303a9692f52
--- /dev/null
+++ b/ydb/core/tx/schemeshard/olap/statistics/ya.make
@@ -0,0 +1,12 @@
+LIBRARY()
+
+SRCS(
+    schema.cpp
+    update.cpp
+)
+
+PEERDIR(
+    ydb/services/bg_tasks/abstract
+)
+
+END()
diff --git a/ydb/core/tx/schemeshard/olap/ya.make b/ydb/core/tx/schemeshard/olap/ya.make
index 63e509c2630f..224d54e7e4cd 100644
--- a/ydb/core/tx/schemeshard/olap/ya.make
+++ b/ydb/core/tx/schemeshard/olap/ya.make
@@ -6,6 +6,8 @@ PEERDIR(
     ydb/core/tx/schemeshard/olap/schema
     ydb/core/tx/schemeshard/olap/common
     ydb/core/tx/schemeshard/olap/operations
+    ydb/core/tx/schemeshard/olap/statistics
+    ydb/core/tx/schemeshard/olap/options
 )
 
 END()
diff --git a/ydb/core/tx/schemeshard/schemeshard.h b/ydb/core/tx/schemeshard/schemeshard.h
index d86d17ffe9ad..f8aeb16ea5bf 100644
--- a/ydb/core/tx/schemeshard/schemeshard.h
+++ b/ydb/core/tx/schemeshard/schemeshard.h
@@ -331,10 +331,9 @@ struct TEvSchemeShard {
                                                                   EvDescribeSchemeResult> {
         TEvDescribeSchemeResult() = default;
 
-        TEvDescribeSchemeResult(const TString& path, ui64 pathOwner, TPathId pathId)
+        TEvDescribeSchemeResult(const TString& path, TPathId pathId)
         {
             Record.SetPath(path);
-            Record.SetPathOwner(pathOwner);
             Record.SetPathId(pathId.LocalPathId);
             Record.SetPathOwnerId(pathId.OwnerId);
         }
@@ -345,8 +344,8 @@ struct TEvSchemeShard {
 
         TEvDescribeSchemeResultBuilder() = default;
 
-        TEvDescribeSchemeResultBuilder(const TString& path, ui64 pathOwner, TPathId pathId)
-            : TEvDescribeSchemeResult(path, pathOwner, pathId)
+        TEvDescribeSchemeResultBuilder(const TString& path, TPathId pathId)
+            : TEvDescribeSchemeResult(path, pathId)
         {
         }
     };
diff --git a/ydb/core/tx/schemeshard/schemeshard__borrowed_compaction.cpp b/ydb/core/tx/schemeshard/schemeshard__borrowed_compaction.cpp
index 90bf3c974fd1..1cb9a8048c72 100644
--- a/ydb/core/tx/schemeshard/schemeshard__borrowed_compaction.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__borrowed_compaction.cpp
@@ -95,11 +95,11 @@ void TSchemeShard::EnqueueBorrowedCompaction(const TShardIdx& shardIdx) {
 
     auto ctx = ActorContext();
 
-    LOG_TRACE_S(ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
-        "borrowed compaction enqueue shard# " << shardIdx << " at schemeshard " << TabletID());
-
-    BorrowedCompactionQueue->Enqueue(shardIdx);
-    UpdateBorrowedCompactionQueueMetrics();
+    if (BorrowedCompactionQueue->Enqueue(shardIdx)) {
+        LOG_TRACE_S(ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+            "Borrowed compaction enqueued shard# " << shardIdx << " at schemeshard " << TabletID());
+        UpdateBorrowedCompactionQueueMetrics();
+    }
 }
 
 void TSchemeShard::RemoveBorrowedCompaction(const TShardIdx& shardIdx) {
diff --git a/ydb/core/tx/schemeshard/schemeshard__compaction.cpp b/ydb/core/tx/schemeshard/schemeshard__compaction.cpp
index 02a84338a6c4..769b54eeb5ca 100644
--- a/ydb/core/tx/schemeshard/schemeshard__compaction.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__compaction.cpp
@@ -182,18 +182,20 @@ void TSchemeShard::UpdateBackgroundCompaction(
     auto ctx = ActorContext();
 
     if (newStats.HasBorrowedData) {
-        LOG_TRACE_S(ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
-            "background compaction update removed shard# " << shardIdx
-            << " with borrowed parts at schemeshard " << TabletID());
-        RemoveBackgroundCompaction(shardIdx);
+        if (RemoveBackgroundCompaction(shardIdx)) {
+            LOG_TRACE_S(ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                "background compaction update removed shard# " << shardIdx
+                << " with borrowed parts at schemeshard " << TabletID());
+        }
         return;
     }
 
     if (newStats.HasLoanedData) {
-        LOG_TRACE_S(ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
-            "background compaction update removed shard# " << shardIdx
-            << " with loaned parts at schemeshard " << TabletID());
-        RemoveBackgroundCompaction(shardIdx);
+        if (RemoveBackgroundCompaction(shardIdx)) {
+            LOG_TRACE_S(ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                "background compaction update removed shard# " << shardIdx
+                << " with loaned parts at schemeshard " << TabletID());
+        }
         return;
     }
 
@@ -206,17 +208,22 @@ void TSchemeShard::UpdateBackgroundCompaction(
         << " at schemeshard " << TabletID());
 
     TShardCompactionInfo info(shardIdx, newStats);
-    if (!CompactionQueue->Update(info))
+    if (!CompactionQueue->Update(info)) {
         CompactionQueue->Enqueue(std::move(info));
+    }
     UpdateBackgroundCompactionQueueMetrics();
 }
 
-void TSchemeShard::RemoveBackgroundCompaction(const TShardIdx& shardIdx) {
+bool TSchemeShard::RemoveBackgroundCompaction(const TShardIdx& shardIdx) {
     if (!CompactionQueue)
-        return;
+        return false;
 
-    CompactionQueue->Remove(TShardCompactionInfo(shardIdx));
-    UpdateBackgroundCompactionQueueMetrics();
+    if (CompactionQueue->Remove(TShardCompactionInfo(shardIdx))) {
+        UpdateBackgroundCompactionQueueMetrics();
+        return true;
+    }
+
+    return false;
 }
 
 void TSchemeShard::ShardRemoved(const TShardIdx& shardIdx) {
diff --git a/ydb/core/tx/schemeshard/schemeshard__conditional_erase.cpp b/ydb/core/tx/schemeshard/schemeshard__conditional_erase.cpp
index 14e70249c6a2..087853fb7786 100644
--- a/ydb/core/tx/schemeshard/schemeshard__conditional_erase.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__conditional_erase.cpp
@@ -193,7 +193,6 @@ struct TSchemeShard::TTxRunConditionalErase: public TSchemeShard::TRwTxBase {
             auto& inFlight = tableInfo->GetInFlightCondErase();
             auto it = inFlight.find(shardIdx);
             if (it == inFlight.end()) {
-                Y_DEBUG_ABORT_UNLESS(false, "Unreachable");
                 continue;
             }
 
diff --git a/ydb/core/tx/schemeshard/schemeshard__init.cpp b/ydb/core/tx/schemeshard/schemeshard__init.cpp
index df556221b43d..6e499e0676a0 100644
--- a/ydb/core/tx/schemeshard/schemeshard__init.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__init.cpp
@@ -358,7 +358,7 @@ struct TSchemeShard::TTxInit : public TTransactionBase {
         return true;
     }
 
-    typedef std::tuple TColumnRec;
+    typedef std::tuple TColumnRec;
     typedef TDeque TColumnRows;
 
     template 
@@ -385,7 +385,8 @@ struct TSchemeShard::TTxInit : public TTransactionBase {
             rowSet.template GetValueOrDefault(0),
             rowSet.template GetValue(),
             rowSet.template GetValue(),
-            rowSet.template GetValueOrDefault(false)
+            rowSet.template GetValueOrDefault(false),
+            rowSet.template GetValueOrDefault(false)
         );
     }
 
@@ -1934,6 +1935,7 @@ struct TSchemeShard::TTxInit : public TTransactionBase {
                 auto defaultKind = std::get<9>(rec);
                 auto defaultValue = std::get<10>(rec);
                 auto notNull = std::get<11>(rec);
+                auto isBuildInProgress = std::get<12>(rec);
 
                 Y_VERIFY_S(Self->PathsById.contains(pathId), "Path doesn't exist, pathId: " << pathId);
                 Y_VERIFY_S(Self->PathsById.at(pathId)->IsTable() || Self->PathsById.at(pathId)->IsExternalTable(), "Path is not a table or external table, pathId: " << pathId);
@@ -1947,6 +1949,7 @@ struct TSchemeShard::TTxInit : public TTransactionBase {
                 colInfo.DefaultKind = defaultKind;
                 colInfo.DefaultValue = defaultValue;
                 colInfo.NotNull = notNull;
+                colInfo.IsBuildInProgress = isBuildInProgress;
 
                 if (auto it = Self->Tables.find(pathId); it != Self->Tables.end()) {
                     TTableInfo::TPtr tableInfo = it->second;
@@ -1992,6 +1995,7 @@ struct TSchemeShard::TTxInit : public TTransactionBase {
                 auto defaultKind = std::get<9>(rec);
                 auto defaultValue = std::get<10>(rec);
                 auto notNull = std::get<11>(rec);
+                auto isBuildInProgress = std::get<12>(rec);
 
                 Y_VERIFY_S(Self->PathsById.contains(pathId), "Path doesn't exist, pathId: " << pathId);
                 Y_VERIFY_S(Self->PathsById.at(pathId)->IsTable(), "Path is not a table, pathId: " << pathId);
@@ -2012,6 +2016,7 @@ struct TSchemeShard::TTxInit : public TTransactionBase {
                 colInfo.DefaultKind = defaultKind;
                 colInfo.DefaultValue = defaultValue;
                 colInfo.NotNull = notNull;
+                colInfo.IsBuildInProgress = isBuildInProgress;
                 tableInfo->AlterData->Columns[colId] = colInfo;
             }
         }
diff --git a/ydb/core/tx/schemeshard/schemeshard__init_populator.cpp b/ydb/core/tx/schemeshard/schemeshard__init_populator.cpp
index aeda8d0aa0cf..9824caa2f528 100644
--- a/ydb/core/tx/schemeshard/schemeshard__init_populator.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__init_populator.cpp
@@ -13,7 +13,7 @@ using namespace NTabletFlatExecutor;
 struct TSchemeShard::TTxInitPopulator : public TTransactionBase {
     using TDescription = NSchemeBoard::TTwoPartDescription;
 
-    TMap Descriptions;
+    std::vector> Descriptions;
     TSideEffects::TPublications DelayedPublications;
 
     explicit TTxInitPopulator(TSelf *self, TSideEffects::TPublications&& publications)
@@ -49,7 +49,7 @@ struct TSchemeShard::TTxInitPopulator : public TTransactionBase {
 
             auto result = DescribePath(Self, ctx, pathId);
             TDescription description(std::move(result->PreSerializedData), std::move(result->Record));
-            Descriptions.emplace(pathId, std::move(description));
+            Descriptions.emplace_back(pathId, std::move(description));
         }
 
         return true;
diff --git a/ydb/core/tx/schemeshard/schemeshard__init_root.cpp b/ydb/core/tx/schemeshard/schemeshard__init_root.cpp
index 908784e3f2c7..2575fb98ec5a 100644
--- a/ydb/core/tx/schemeshard/schemeshard__init_root.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__init_root.cpp
@@ -706,7 +706,8 @@ struct TSchemeShard::TTxMigrate : public TSchemeShard::TRwTxBase {
                     NIceDb::TUpdate(colDescr.GetFamily()),
                     NIceDb::TUpdate(ETableColumnDefaultKind(colDescr.GetDefaultKind())),
                     NIceDb::TUpdate(colDescr.GetDefaultValue()),
-                    NIceDb::TUpdate(colDescr.GetNotNull()));
+                    NIceDb::TUpdate(colDescr.GetNotNull()),
+                    NIceDb::TUpdate(colDescr.GetIsBuildInProgress()));
             }
 
             for (const NKikimrScheme::TMigratePartition& partDescr: tableDescr.GetPartitions()) {
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation.cpp b/ydb/core/tx/schemeshard/schemeshard__operation.cpp
index 676771621098..4c650607cbde 100644
--- a/ydb/core/tx/schemeshard/schemeshard__operation.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__operation.cpp
@@ -12,6 +12,8 @@
 #include 
 #include 
 
+#include 
+
 #include 
 
 namespace NKikimr::NSchemeShard {
@@ -85,6 +87,14 @@ NKikimrScheme::TEvModifySchemeTransaction GetRecordForPrint(const NKikimrScheme:
     return recordForPrint;
 }
 
+TString PrintSecurely(const NKikimrScheme::TEvModifySchemeTransaction& record) {
+    TSecurityTextFormatPrinter printer;
+    printer.SetSingleLineMode(true);
+    TString string;
+    printer.PrintToString(record, &string);
+    return string;
+}
+
 THolder TSchemeShard::IgniteOperation(TProposeRequest& request, TOperationContext& context) {
     THolder response = nullptr;
 
@@ -183,7 +193,7 @@ THolder TSchemeShard::IgniteOperation(TProposeRequest& request
                                     << ", already accepted parts: " << operation->Parts.size()
                                     << ", propose result status: " << NKikimrScheme::EStatus_Name(response->Record.GetStatus())
                                     << ", with reason: " << response->Record.GetReason()
-                                    << ", tx message: " << GetRecordForPrint(record).ShortDebugString());
+                                    << ", tx message: " << PrintSecurely(record));
                 }
 
                 Y_VERIFY_S(context.IsUndoChangesSafe(),
@@ -194,7 +204,7 @@ THolder TSchemeShard::IgniteOperation(TProposeRequest& request
                                << ", already accepted parts: " << operation->Parts.size()
                                << ", propose result status: " << NKikimrScheme::EStatus_Name(response->Record.GetStatus())
                                << ", with reason: " << response->Record.GetReason()
-                               << ", tx message: " << GetRecordForPrint(record).ShortDebugString());
+                               << ", tx message: " << PrintSecurely(record));
 
                 context.OnComplete = {}; // recreate
                 context.DbChanges = {};
@@ -237,7 +247,7 @@ struct TSchemeShard::TTxOperationPropose: public NTabletFlatExecutor::TTransacti
 
         LOG_DEBUG_S(ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
                     "TTxOperationPropose Execute"
-                        << ", message: " << GetRecordForPrint(Request->Get()->Record).ShortDebugString()
+                        << ", message: " << PrintSecurely(Request->Get()->Record)
                         << ", at schemeshard: " << selfId);
 
         txc.DB.NoMoreReadsForTx();
@@ -1033,6 +1043,8 @@ ISubOperation::TPtr TOperation::RestorePart(TTxState::ETxType txType, TTxState::
         Y_ABORT("TODO: implement");
     case TTxState::ETxType::TxDropSequence:
         return CreateDropSequence(NextPartId(), txState);
+    case TTxState::ETxType::TxCopySequence:
+        return CreateCopySequence(NextPartId(), txState);
 
     case TTxState::ETxType::TxFillIndex:
         Y_ABORT("deprecated");
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_backup_restore_common.h b/ydb/core/tx/schemeshard/schemeshard__operation_backup_restore_common.h
index eb4ef7a61dfc..42667ec26505 100644
--- a/ydb/core/tx/schemeshard/schemeshard__operation_backup_restore_common.h
+++ b/ydb/core/tx/schemeshard/schemeshard__operation_backup_restore_common.h
@@ -619,7 +619,7 @@ class TBackupRestoreOperationBase: public TSubOperation {
                 .NotAsyncReplicaTable()
                 .NotUnderOperation()
                 .IsCommonSensePath() //forbid alter impl index tables
-                .NotChildren(); //forbid backup table with indexes
+                .CanBackupTable(); //forbid backup table with indexes
 
             if (!checks) {
                 result->SetError(checks.GetStatus(), checks.GetError());
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_common.h b/ydb/core/tx/schemeshard/schemeshard__operation_common.h
index 1910df417b58..8816ee761c78 100644
--- a/ydb/core/tx/schemeshard/schemeshard__operation_common.h
+++ b/ydb/core/tx/schemeshard/schemeshard__operation_common.h
@@ -43,6 +43,7 @@ void UpdatePartitioningForCopyTable(TOperationId operationId, TTxState& txState,
 class TProposedWaitParts: public TSubOperationState {
 private:
     TOperationId OperationId;
+    const TTxState::ETxState NextState;
 
     TString DebugHint() const override {
         return TStringBuilder()
@@ -51,8 +52,9 @@ class TProposedWaitParts: public TSubOperationState {
     }
 
 public:
-    TProposedWaitParts(TOperationId id)
+    TProposedWaitParts(TOperationId id, TTxState::ETxState nextState = TTxState::Done)
         : OperationId(id)
+        , NextState(nextState)
     {
         IgnoreMessages(DebugHint(),
             { TEvHive::TEvCreateTabletReply::EventType
@@ -124,7 +126,7 @@ class TProposedWaitParts: public TSubOperationState {
         // Got notifications from all datashards?
         if (txState->ShardsInProgress.empty()) {
             NTableState::AckAllSchemaChanges(OperationId, *txState, context);
-            context.SS->ChangeTxState(db, OperationId, TTxState::Done);
+            context.SS->ChangeTxState(db, OperationId, NextState);
             return true;
         }
 
@@ -968,7 +970,7 @@ class TPropose: public TSubOperationState {
         TTxState* txState = context.SS->FindTx(OperationId);
         Y_ABORT_UNLESS(txState);
         Y_ABORT_UNLESS(txState->TxType == TTxState::TxCreatePQGroup || txState->TxType == TTxState::TxAlterPQGroup || txState->TxType == TTxState::TxAllocatePQ);
- 
+
         TPathId pathId = txState->TargetPathId;
         TPathElement::TPtr path = context.SS->PathsById.at(pathId);
 
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_consistent_copy_tables.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_consistent_copy_tables.cpp
index bb715ab8b955..c9b3a1ab0ca4 100644
--- a/ydb/core/tx/schemeshard/schemeshard__operation_consistent_copy_tables.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__operation_consistent_copy_tables.cpp
@@ -115,13 +115,29 @@ TVector CreateConsistentCopyTables(TOperationId nextId, con
         TPath dstPath = TPath::Resolve(dstStr, context.SS);
         TPath dstParentPath = dstPath.Parent();
 
-        result.push_back(CreateCopyTable(NextPartId(nextId, result),
-            CopyTableTask(srcPath, dstPath, descr.GetOmitFollowers(), descr.GetIsBackup())));
+        THashSet sequences;
+        for (const auto& child: srcPath.Base()->GetChildren()) {
+            auto name = child.first;
+            auto pathId = child.second;
+
+            TPath childPath = srcPath.Child(name);
+            if (!childPath.IsSequence() || childPath.IsDeleted()) {
+                continue;
+            }
 
-        if (descr.GetOmitIndexes()) {
-            continue;
+            Y_ABORT_UNLESS(childPath.Base()->PathId == pathId);
+
+            TSequenceInfo::TPtr sequenceInfo = context.SS->Sequences.at(pathId);
+            const auto& sequenceDesc = sequenceInfo->Description;
+            const auto& sequenceName = sequenceDesc.GetName();
+
+            sequences.emplace(sequenceName);
         }
 
+        result.push_back(CreateCopyTable(NextPartId(nextId, result),
+            CopyTableTask(srcPath, dstPath, descr.GetOmitFollowers(), descr.GetIsBackup()), sequences));
+
+        TVector sequenceDescriptions;
         for (const auto& child: srcPath.Base()->GetChildren()) {
             const auto& name = child.first;
             const auto& pathId = child.second;
@@ -133,6 +149,17 @@ TVector CreateConsistentCopyTables(TOperationId nextId, con
                 continue;
             }
 
+            if (srcIndexPath.IsSequence()) {
+                TSequenceInfo::TPtr sequenceInfo = context.SS->Sequences.at(pathId);
+                const auto& sequenceDesc = sequenceInfo->Description;
+                sequenceDescriptions.push_back(sequenceDesc);
+                continue;
+            }
+
+            if (descr.GetOmitIndexes()) {
+                continue;
+            }
+
             if (!srcIndexPath.IsTableIndex()) {
                 continue;
             }
@@ -151,6 +178,19 @@ TVector CreateConsistentCopyTables(TOperationId nextId, con
             result.push_back(CreateCopyTable(NextPartId(nextId, result),
                 CopyTableTask(srcImplTable, dstImplTable, descr.GetOmitFollowers(), descr.GetIsBackup())));
         }
+
+        for (auto&& sequenceDescription : sequenceDescriptions) {
+            auto scheme = TransactionTemplate(
+                dstPath.PathString(),
+                NKikimrSchemeOp::EOperationType::ESchemeOpCreateSequence);
+            scheme.SetFailOnExist(true);
+
+            auto* copySequence = scheme.MutableCopySequence();
+            copySequence->SetCopyFrom(srcPath.PathString() + "/" + sequenceDescription.GetName());
+            *scheme.MutableSequence() = std::move(sequenceDescription);
+
+            result.push_back(CreateCopySequence(NextPartId(nextId, result), scheme));
+        }
     }
 
     return result;
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_copy_sequence.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_copy_sequence.cpp
new file mode 100644
index 000000000000..b1232aa0d6a8
--- /dev/null
+++ b/ydb/core/tx/schemeshard/schemeshard__operation_copy_sequence.cpp
@@ -0,0 +1,763 @@
+#include "schemeshard__operation_part.h"
+#include "schemeshard__operation_common.h"
+#include "schemeshard_impl.h"
+
+#include 
+#include 
+#include 
+
+
+namespace {
+
+using namespace NKikimr;
+using namespace NSchemeShard;
+
+class TConfigureParts : public TSubOperationState {
+private:
+    TOperationId OperationId;
+
+    TString DebugHint() const override {
+        return TStringBuilder()
+                << "TCopySequence TConfigureParts"
+                << " operationId#" << OperationId;
+    }
+
+public:
+    TConfigureParts(TOperationId id)
+        : OperationId(id)
+    {
+        IgnoreMessages(DebugHint(), {
+            TEvHive::TEvCreateTabletReply::EventType,
+        });
+    }
+
+    bool HandleReply(NSequenceShard::TEvSequenceShard::TEvCreateSequenceResult::TPtr& ev, TOperationContext& context) override {
+        auto ssId = context.SS->SelfTabletId();
+        auto tabletId = TTabletId(ev->Get()->Record.GetOrigin());
+        auto status = ev->Get()->Record.GetStatus();
+
+        LOG_DEBUG_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                    "TCopySequence TConfigureParts HandleReply TEvCreateSequenceResult"
+                    << " shardId# " << tabletId
+                    << " status# " << status
+                    << " operationId# " << OperationId
+                    << " at tablet " << ssId);
+
+        switch (status) {
+            case NKikimrTxSequenceShard::TEvCreateSequenceResult::SUCCESS:
+            case NKikimrTxSequenceShard::TEvCreateSequenceResult::SEQUENCE_ALREADY_EXISTS:
+                // Treat expected status as success
+                break;
+
+            default:
+                // Treat all other replies as unexpected and spurious
+                LOG_WARN_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                    "TCopySequence TConfigureParts HandleReply ignoring unexpected TEvCreateSequenceResult"
+                    << " shardId# " << tabletId
+                    << " status# " << status
+                    << " operationId# " << OperationId
+                    << " at tablet " << ssId);
+                return false;
+        }
+
+        TTxState* txState = context.SS->FindTx(OperationId);
+        Y_ABORT_UNLESS(txState);
+        Y_ABORT_UNLESS(txState->TxType == TTxState::TxCopySequence);
+        Y_ABORT_UNLESS(txState->State == TTxState::ConfigureParts);
+
+        auto shardIdx = context.SS->MustGetShardIdx(tabletId);
+        if (!txState->ShardsInProgress.erase(shardIdx)) {
+            LOG_WARN_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                "TCreateSequence TConfigureParts HandleReply ignoring duplicate TEvCreateSequenceResult"
+                << " shardId# " << tabletId
+                << " status# " << status
+                << " operationId# " << OperationId
+                << " at tablet " << ssId);
+            return false;
+        }
+
+        context.OnComplete.UnbindMsgFromPipe(OperationId, tabletId, txState->TargetPathId);
+
+        if (txState->ShardsInProgress.empty()) {
+            NIceDb::TNiceDb db(context.GetDB());
+            context.SS->ChangeTxState(db, OperationId, TTxState::Propose);
+            context.OnComplete.ActivateTx(OperationId);
+            return true;
+        }
+
+        return false;
+    }
+
+    bool ProgressState(TOperationContext& context) override {
+        auto ssId = context.SS->SelfTabletId();
+        LOG_DEBUG_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                    "TCopySequence TConfigureParts ProgressState"
+                    << " operationId# " << OperationId
+                    << " at tablet " << ssId);
+
+        TTxState* txState = context.SS->FindTx(OperationId);
+        Y_ABORT_UNLESS(txState);
+        Y_ABORT_UNLESS(txState->TxType == TTxState::TxCopySequence);
+        Y_ABORT_UNLESS(!txState->Shards.empty());
+
+        txState->ClearShardsInProgress();
+
+        Y_ABORT_UNLESS(txState->Shards.size() == 1);
+        for (auto shard : txState->Shards) {
+            auto shardIdx = shard.Idx;
+            auto tabletId = context.SS->ShardInfos.at(shardIdx).TabletID;
+            Y_ABORT_UNLESS(shard.TabletType == ETabletType::SequenceShard);
+            Y_ABORT_UNLESS(tabletId != InvalidTabletId);
+
+            auto event = MakeHolder(txState->TargetPathId);
+            event->Record.SetTxId(ui64(OperationId.GetTxId()));
+            event->Record.SetTxPartId(OperationId.GetSubTxId());
+            event->Record.SetFrozen(true);
+
+            LOG_DEBUG_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                        "TCopySequence TConfigureParts ProgressState"
+                        << " sending TEvCreateSequence to tablet " << tabletId
+                        << " operationId# " << OperationId
+                        << " at tablet " << ssId);
+
+            context.OnComplete.BindMsgToPipe(OperationId, tabletId, txState->TargetPathId, event.Release());
+
+            // Wait for results from this shard
+            txState->ShardsInProgress.insert(shardIdx);
+        }
+
+        return false;
+    }
+};
+
+
+class TPropose: public TSubOperationState {
+private:
+    TOperationId OperationId;
+
+    TString DebugHint() const override {
+        return TStringBuilder()
+            << "TCopySequence TPropose"
+            << " operationId#" << OperationId;
+    }
+
+public:
+    TPropose(TOperationId id)
+        : OperationId(id)
+    {
+        IgnoreMessages(DebugHint(), {
+            NSequenceShard::TEvSequenceShard::TEvCreateSequenceResult::EventType,
+        });
+    }
+
+    bool HandleReply(TEvPrivate::TEvOperationPlan::TPtr& ev, TOperationContext& context) override {
+        auto step = TStepId(ev->Get()->StepId);
+        auto ssId = context.SS->SelfTabletId();
+
+        LOG_INFO_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                   DebugHint() << " HandleReply TEvOperationPlan"
+                               << ", at schemeshard: " << ssId);
+
+        TTxState* txState = context.SS->FindTx(OperationId);
+        if (!txState) {
+            return false;
+        }
+        Y_ABORT_UNLESS(txState->TxType == TTxState::TxCopySequence);
+
+        TPathId pathId = txState->TargetPathId;
+        TPathElement::TPtr path = context.SS->PathsById.at(pathId);
+
+        Y_VERIFY_S(context.SS->Sequences.contains(pathId), "Sequence not found. PathId: " << pathId);
+        TSequenceInfo::TPtr sequenceInfo = context.SS->Sequences.at(pathId);
+        Y_ABORT_UNLESS(sequenceInfo);
+        TSequenceInfo::TPtr alterData = sequenceInfo->AlterData;
+        Y_ABORT_UNLESS(alterData);
+
+        NIceDb::TNiceDb db(context.GetDB());
+
+        path->StepCreated = step;
+        context.SS->PersistCreateStep(db, pathId, step);
+
+        context.SS->Sequences[pathId] = alterData;
+        context.SS->PersistSequenceAlterRemove(db, pathId);
+        context.SS->PersistSequence(db, pathId, *alterData);
+
+        auto parentDir = context.SS->PathsById.at(path->ParentPathId);
+        if (parentDir->IsLikeDirectory()) {
+            ++parentDir->DirAlterVersion;
+            context.SS->PersistPathDirAlterVersion(db, parentDir);
+        }
+        context.SS->ClearDescribePathCaches(parentDir);
+        context.OnComplete.PublishToSchemeBoard(OperationId, parentDir->PathId);
+
+        context.SS->ClearDescribePathCaches(path);
+        context.OnComplete.PublishToSchemeBoard(OperationId, pathId);
+
+        context.SS->ChangeTxState(db, OperationId, TTxState::CopyTableBarrier);
+        return true;
+    }
+
+    bool ProgressState(TOperationContext& context) override {
+        TTabletId ssId = context.SS->SelfTabletId();
+
+        LOG_INFO_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                   DebugHint() << " ProgressState"
+                               << ", at schemeshard: " << ssId);
+
+        TTxState* txState = context.SS->FindTx(OperationId);
+        Y_ABORT_UNLESS(txState);
+        Y_ABORT_UNLESS(txState->TxType == TTxState::TxCopySequence);
+
+        context.OnComplete.ProposeToCoordinator(OperationId, txState->TargetPathId, TStepId(0));
+        return false;
+    }
+};
+
+class TCopyTableBarrier: public TSubOperationState {
+private:
+    TOperationId OperationId;
+
+    TString DebugHint() const override {
+        return TStringBuilder()
+                << "TCopySequence TCopyTableBarrier"
+                << " operationId: " << OperationId;
+    }
+
+public:
+    TCopyTableBarrier(TOperationId id)
+        : OperationId(id)
+    {
+        IgnoreMessages(DebugHint(), {
+            TEvPrivate::TEvOperationPlan::EventType,
+            NSequenceShard::TEvSequenceShard::TEvCreateSequenceResult::EventType,
+        });
+    }
+
+    bool HandleReply(TEvPrivate::TEvCompleteBarrier::TPtr& ev, TOperationContext& context) override {
+        TTabletId ssId = context.SS->SelfTabletId();
+
+        LOG_INFO_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                   DebugHint() << " HandleReply TEvPrivate::TEvCompleteBarrier"
+                               << ", msg: " << ev->Get()->ToString()
+                               << ", at tablet" << ssId);
+
+        NIceDb::TNiceDb db(context.GetDB());
+
+        TTxState* txState = context.SS->FindTx(OperationId);
+        Y_ABORT_UNLESS(txState);
+
+        context.SS->ChangeTxState(db, OperationId, TTxState::ProposedCopySequence);
+        return true;
+    }
+
+    bool ProgressState(TOperationContext& context) override {
+        TTxState* txState = context.SS->FindTx(OperationId);
+        Y_ABORT_UNLESS(txState);
+
+        LOG_INFO_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                DebugHint() << "ProgressState, operation type "
+                            << TTxState::TypeName(txState->TxType));
+
+        context.OnComplete.Barrier(OperationId, "CopyTableBarrier");
+        return false;
+    }
+};
+
+class TProposedCopySequence : public TSubOperationState {
+private:
+    TOperationId OperationId;
+    NKikimrTxSequenceShard::TEvGetSequenceResult GetSequenceResult;
+
+    TString DebugHint() const override {
+        return TStringBuilder()
+                << "TCopySequence TProposedCopySequence"
+                << " operationId#" << OperationId;
+    }
+
+    void UpdateSequenceDescription(NKikimrSchemeOp::TSequenceDescription& descr) {
+        descr.SetStartValue(GetSequenceResult.GetStartValue());
+        descr.SetMinValue(GetSequenceResult.GetMinValue());
+        descr.SetMaxValue(GetSequenceResult.GetMaxValue());
+        descr.SetCache(GetSequenceResult.GetCache());
+        descr.SetIncrement(GetSequenceResult.GetIncrement());
+        descr.SetCycle(GetSequenceResult.GetCycle());
+        auto* setValMsg = descr.MutableSetVal();
+        setValMsg->SetNextValue(GetSequenceResult.GetNextValue());
+        setValMsg->SetNextUsed(GetSequenceResult.GetNextUsed());
+    }
+
+public:
+    TProposedCopySequence(TOperationId id)
+        : OperationId(id)
+    {
+        IgnoreMessages(DebugHint(), {
+            TEvPrivate::TEvOperationPlan::EventType,
+            TEvPrivate::TEvCompleteBarrier::EventType,
+            NSequenceShard::TEvSequenceShard::TEvCreateSequenceResult::EventType,
+        });
+    }
+
+    bool HandleReply(NSequenceShard::TEvSequenceShard::TEvRestoreSequenceResult::TPtr& ev, TOperationContext& context) override {
+        auto ssId = context.SS->SelfTabletId();
+        auto tabletId = TTabletId(ev->Get()->Record.GetOrigin());
+        auto status = ev->Get()->Record.GetStatus();
+
+        LOG_DEBUG_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                    "TCopySequence TProposedCopySequence HandleReply TEvRestoreSequenceResult"
+                    << " shardId# " << tabletId
+                    << " status# " << status
+                    << " operationId# " << OperationId
+                    << " at tablet " << ssId);
+
+        switch (status) {
+            case NKikimrTxSequenceShard::TEvRestoreSequenceResult::SUCCESS:
+            case NKikimrTxSequenceShard::TEvRestoreSequenceResult::SEQUENCE_ALREADY_ACTIVE: break;
+            default:
+                // Treat all other replies as unexpected and spurious
+                LOG_WARN_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                    "TCopySequence TProposedCopySequence HandleReply ignoring unexpected TEvRestoreSequenceResult"
+                    << " shardId# " << tabletId
+                    << " status# " << status
+                    << " operationId# " << OperationId
+                    << " at tablet " << ssId);
+                return false;
+        }
+
+        TTxState* txState = context.SS->FindTx(OperationId);
+        context.OnComplete.UnbindMsgFromPipe(OperationId, tabletId, txState->TargetPathId);
+
+        Y_ABORT_UNLESS(txState);
+        Y_ABORT_UNLESS(txState->TxType == TTxState::TxCopySequence);
+        Y_ABORT_UNLESS(txState->State == TTxState::ProposedCopySequence);
+
+        auto shardIdx = context.SS->MustGetShardIdx(tabletId);
+        if (!txState->ShardsInProgress.erase(shardIdx)) {
+            LOG_WARN_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                "TCopySequence TProposedCopySequence HandleReply ignoring duplicate TEvRestoreSequenceResult"
+                << " shardId# " << tabletId
+                << " status# " << status
+                << " operationId# " << OperationId
+                << " at tablet " << ssId);
+            return false;
+        }
+
+        if (!txState->ShardsInProgress.empty()) {
+            return false;
+        }
+
+        TPathId pathId = txState->TargetPathId;
+
+        NIceDb::TNiceDb db(context.GetDB());
+
+        auto sequenceInfo = context.SS->Sequences.at(pathId);
+        UpdateSequenceDescription(sequenceInfo->Description);
+
+        context.SS->PersistSequence(db, pathId, *sequenceInfo);
+
+        context.SS->ChangeTxState(db, OperationId, TTxState::Done);
+        context.OnComplete.ActivateTx(OperationId);
+        return true;
+    }
+
+    bool HandleReply(NSequenceShard::TEvSequenceShard::TEvGetSequenceResult::TPtr& ev, TOperationContext& context) override {
+        auto ssId = context.SS->SelfTabletId();
+        auto tabletId = TTabletId(ev->Get()->Record.GetOrigin());
+        auto status = ev->Get()->Record.GetStatus();
+
+        LOG_DEBUG_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                    "TCopySequence TProposedCopySequence HandleReply TEvGetSequenceResult"
+                    << " shardId# " << tabletId
+                    << " status# " << status
+                    << " operationId# " << OperationId
+                    << " at tablet " << ssId);
+
+        switch (status) {
+            case NKikimrTxSequenceShard::TEvGetSequenceResult::SUCCESS: break;
+            default:
+                // Treat all other replies as unexpected and spurious
+                LOG_WARN_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                    "TCopySequence TProposedCopySequence HandleReply ignoring unexpected TEvGetSequenceResult"
+                    << " shardId# " << tabletId
+                    << " status# " << status
+                    << " operationId# " << OperationId
+                    << " at tablet " << ssId);
+                return false;
+        }
+
+        TTxState* txState = context.SS->FindTx(OperationId);
+        Y_ABORT_UNLESS(txState);
+        Y_ABORT_UNLESS(txState->TxType == TTxState::TxCopySequence);
+        Y_ABORT_UNLESS(txState->State == TTxState::ProposedCopySequence);
+
+        auto shardIdx = context.SS->MustGetShardIdx(tabletId);
+
+        context.OnComplete.UnbindMsgFromPipe(OperationId, tabletId, txState->SourcePathId);
+
+        if (!txState->ShardsInProgress.erase(shardIdx)) {
+            LOG_WARN_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                "TCopySequence TProposedCopySequence HandleReply ignoring duplicate TEvGetSequenceResult"
+                << " shardId# " << tabletId
+                << " status# " << status
+                << " operationId# " << OperationId
+                << " at tablet " << ssId);
+            return false;
+        }
+
+        if (!txState->ShardsInProgress.empty()) {
+            return false;
+        }
+
+        GetSequenceResult = ev->Get()->Record;
+
+        Y_ABORT_UNLESS(txState->Shards.size() == 1);
+        for (auto shard : txState->Shards) {
+            auto shardIdx = shard.Idx;
+            auto currentTabletId = context.SS->ShardInfos.at(shardIdx).TabletID;
+
+            Y_ABORT_UNLESS(currentTabletId != InvalidTabletId);
+
+            auto event = MakeHolder(
+                txState->TargetPathId, GetSequenceResult);
+
+            event->Record.SetTxId(ui64(OperationId.GetTxId()));
+            event->Record.SetTxPartId(OperationId.GetSubTxId());
+
+            LOG_DEBUG_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                        "TCopySequence TProposedCopySequence ProgressState"
+                        << " sending TEvRestoreSequence to tablet " << currentTabletId
+                        << " operationId# " << OperationId
+                        << " at tablet " << ssId);
+
+            context.OnComplete.BindMsgToPipe(OperationId, currentTabletId, txState->TargetPathId, event.Release());
+
+            // Wait for results from this shard
+            txState->ShardsInProgress.insert(shardIdx);
+        }
+
+        return false;
+    }
+
+    bool ProgressState(TOperationContext& context) override {
+        auto ssId = context.SS->SelfTabletId();
+        LOG_DEBUG_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                    "TCopySequence TProposedCopySequence ProgressState"
+                    << " operationId# " << OperationId
+                    << " at tablet " << ssId);
+
+        TTxState* txState = context.SS->FindTx(OperationId);
+        Y_ABORT_UNLESS(txState);
+        Y_ABORT_UNLESS(txState->TxType == TTxState::TxCopySequence);
+        Y_ABORT_UNLESS(!txState->Shards.empty());
+        Y_ABORT_UNLESS(txState->SourcePathId != InvalidPathId);
+
+        Y_ABORT_UNLESS(txState->Shards.size() == 1);
+        for (auto shard : txState->Shards) {
+            auto shardIdx = shard.Idx;
+            auto tabletId = context.SS->ShardInfos.at(shardIdx).TabletID;
+
+            auto event = MakeHolder(txState->SourcePathId);
+            event->Record.SetTxId(ui64(OperationId.GetTxId()));
+            event->Record.SetTxPartId(OperationId.GetSubTxId());
+
+            LOG_DEBUG_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                        "TCopySequence TProposedCopySequence ProgressState"
+                        << " sending TEvGetSequence to tablet " << tabletId
+                        << " operationId# " << OperationId
+                        << " at tablet " << ssId);
+
+            context.OnComplete.BindMsgToPipe(OperationId, tabletId, txState->SourcePathId, event.Release());
+
+            txState->ShardsInProgress.insert(shardIdx);
+        }
+
+        return false;
+    }
+};
+
+class TCopySequence: public TSubOperation {
+
+    static TTxState::ETxState NextState() {
+        return TTxState::CreateParts;
+    }
+
+    TTxState::ETxState NextState(TTxState::ETxState state) const override {
+        switch (state) {
+        case TTxState::Waiting:
+        case TTxState::CreateParts:
+            return TTxState::ConfigureParts;
+        case TTxState::ConfigureParts:
+            return TTxState::Propose;
+        case TTxState::Propose:
+            return TTxState::CopyTableBarrier;
+        case TTxState::CopyTableBarrier:
+            return TTxState::ProposedCopySequence;
+        case TTxState::ProposedCopySequence:
+            return TTxState::Done;
+        default:
+            return TTxState::Invalid;
+        }
+        return TTxState::Invalid;
+    }
+
+    TSubOperationState::TPtr SelectStateFunc(TTxState::ETxState state) override {
+        using TPtr = TSubOperationState::TPtr;
+
+        switch (state) {
+        case TTxState::Waiting:
+        case TTxState::CreateParts:
+            return TPtr(new TCreateParts(OperationId));
+        case TTxState::ConfigureParts:
+            return TPtr(new TConfigureParts(OperationId));
+        case TTxState::Propose:
+            return TPtr(new TPropose(OperationId));
+        case TTxState::CopyTableBarrier:
+            return TPtr(new TCopyTableBarrier(OperationId));
+        case TTxState::ProposedCopySequence:
+            return TPtr(new TProposedCopySequence(OperationId));
+        case TTxState::Done:
+            return TPtr(new TDone(OperationId));
+        default:
+            return nullptr;
+        }
+    }
+
+public:
+    using TSubOperation::TSubOperation;
+
+    THolder Propose(const TString& owner, TOperationContext& context) override {
+        const TTabletId ssId = context.SS->SelfTabletId();
+
+        const auto acceptExisted = !Transaction.GetFailOnExist();
+        const TString& parentPathStr = Transaction.GetWorkingDir();
+        auto& copySequence = Transaction.GetCopySequence();
+        auto& descr = Transaction.GetSequence();
+        const TString& name = descr.GetName();
+
+        LOG_NOTICE_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                     "TCopySequence Propose"
+                        << ", path: " << parentPathStr << "/" << name
+                        << ", opId: " << OperationId
+                        << ", at schemeshard: " << ssId);
+
+        TEvSchemeShard::EStatus status = NKikimrScheme::StatusAccepted;
+        auto result = MakeHolder(status, ui64(OperationId.GetTxId()), ui64(ssId));
+
+        NSchemeShard::TPath parentPath = NSchemeShard::TPath::Resolve(parentPathStr, context.SS);
+        {
+            NSchemeShard::TPath::TChecker checks = parentPath.Check();
+            checks
+                .NotUnderDomainUpgrade()
+                .IsAtLocalSchemeShard()
+                .IsResolved()
+                .NotDeleted()
+                .NotUnderDeleting()
+                .IsCommonSensePath();
+
+            if (checks) {
+                if (parentPath->IsTable()) {
+                    // allow immediately inside a normal table
+                    if (parentPath.IsUnderOperation()) {
+                        checks.IsUnderTheSameOperation(OperationId.GetTxId()); // allowed only as part of consistent operations
+                    }
+                } else {
+                    // otherwise don't allow unexpected object types
+                    checks.IsLikeDirectory();
+                }
+            }
+
+            if (!checks) {
+                result->SetError(checks.GetStatus(), checks.GetError());
+                return result;
+            }
+        }
+
+        TPath srcPath = TPath::Resolve(copySequence.GetCopyFrom(), context.SS);
+        {
+            TPath::TChecker checks = srcPath.Check();
+            checks
+                .NotEmpty()
+                .IsResolved()
+                .NotDeleted()
+                .NotUnderDeleting()
+                .IsSequence()
+                .NotUnderTheSameOperation(OperationId.GetTxId())
+                .NotUnderOperation();
+
+            if (checks) {
+                if (!parentPath->IsTable()) {
+                    // otherwise don't allow unexpected object types
+                    checks.IsLikeDirectory();
+                }
+            }
+
+            if (!checks) {
+                result->SetError(checks.GetStatus(), checks.GetError());
+                return result;
+            }
+        }
+
+        auto domainPathId = parentPath.GetPathIdForDomain();
+        auto domainInfo = parentPath.DomainInfo();
+
+        Y_ABORT_UNLESS(context.SS->Sequences.contains(srcPath.Base()->PathId));
+        TSequenceInfo::TPtr srcSequence = context.SS->Sequences.at(srcPath.Base()->PathId);
+        Y_ABORT_UNLESS(!srcSequence->Sharding.GetSequenceShards().empty());
+
+        const auto& protoSequenceShard = *srcSequence->Sharding.GetSequenceShards().rbegin();
+        TShardIdx sequenceShard = FromProto(protoSequenceShard);
+
+        const TString acl = Transaction.GetModifyACL().GetDiffACL();
+
+        NSchemeShard::TPath dstPath = parentPath.Child(name);
+        {
+            NSchemeShard::TPath::TChecker checks = dstPath.Check();
+            checks.IsAtLocalSchemeShard();
+            if (dstPath.IsResolved()) {
+                checks
+                    .IsResolved()
+                    .NotUnderDeleting()
+                    .FailOnExist(TPathElement::EPathType::EPathTypeSequence, acceptExisted);
+            } else {
+                checks
+                    .NotEmpty()
+                    .NotResolved();
+            }
+
+            if (checks) {
+                checks.IsValidLeafName();
+
+                if (!parentPath->IsTable()) {
+                    checks.DepthLimit();
+                }
+
+                checks
+                    .PathsLimit()
+                    .DirChildrenLimit()
+                    .IsTheSameDomain(srcPath)
+                    .IsValidACL(acl);
+            }
+
+            if (!checks) {
+                result->SetError(checks.GetStatus(), checks.GetError());
+                if (dstPath.IsResolved()) {
+                    result->SetPathCreateTxId(ui64(dstPath->CreateTxId));
+                    result->SetPathId(dstPath->PathId.LocalPathId);
+                }
+                return result;
+            }
+        }
+
+        TString errStr;
+
+        if (!TSequenceInfo::ValidateCreate(descr, errStr)) {
+            result->SetError(NKikimrScheme::StatusSchemeError, errStr);
+            return result;
+        }
+
+        if (!context.SS->CheckApplyIf(Transaction, errStr)) {
+            result->SetError(NKikimrScheme::StatusPreconditionFailed, errStr);
+            return result;
+        }
+
+        dstPath.MaterializeLeaf(owner);
+        result->SetPathId(dstPath->PathId.LocalPathId);
+        context.SS->TabletCounters->Simple()[COUNTER_SEQUENCE_COUNT].Add(1);
+
+        srcPath.Base()->PathState = TPathElement::EPathState::EPathStateCopying;
+        srcPath.Base()->LastTxId = OperationId.GetTxId();
+
+        TPathId pathId = dstPath->PathId;
+        dstPath->CreateTxId = OperationId.GetTxId();
+        dstPath->LastTxId = OperationId.GetTxId();
+        dstPath->PathState = TPathElement::EPathState::EPathStateCreate;
+        dstPath->PathType = TPathElement::EPathType::EPathTypeSequence;
+
+        if (parentPath->HasActiveChanges()) {
+            TTxId parentTxId = parentPath->PlannedToCreate() ? parentPath->CreateTxId : parentPath->LastTxId;
+            context.OnComplete.Dependence(parentTxId, OperationId.GetTxId());
+        }
+
+        TTxState& txState =
+            context.SS->CreateTx(OperationId, TTxState::TxCopySequence, pathId, srcPath.Base()->PathId);
+        txState.State = TTxState::Propose;
+
+        TSequenceInfo::TPtr sequenceInfo = new TSequenceInfo(0);
+        TSequenceInfo::TPtr alterData = sequenceInfo->CreateNextVersion();
+        alterData->Description = descr;
+
+        txState.Shards.emplace_back(sequenceShard, ETabletType::SequenceShard, TTxState::ConfigureParts);
+        auto& shardInfo = context.SS->ShardInfos.at(sequenceShard);
+        if (shardInfo.CurrentTxId != OperationId.GetTxId()) {
+            context.OnComplete.Dependence(shardInfo.CurrentTxId, OperationId.GetTxId());
+        }
+
+        {
+            auto* p = alterData->Sharding.AddSequenceShards();
+            p->SetOwnerId(sequenceShard.GetOwnerId());
+            p->SetLocalId(ui64(sequenceShard.GetLocalId()));
+        }
+
+        NIceDb::TNiceDb db(context.GetDB());
+
+        context.SS->ChangeTxState(db, OperationId, txState.State);
+        context.OnComplete.ActivateTx(OperationId);
+
+        context.SS->PersistPath(db, dstPath->PathId);
+        if (!acl.empty()) {
+            dstPath->ApplyACL(acl);
+            context.SS->PersistACL(db, dstPath.Base());
+        }
+
+        context.SS->Sequences[pathId] = sequenceInfo;
+        context.SS->PersistSequence(db, pathId, *sequenceInfo);
+        context.SS->PersistSequenceAlter(db, pathId, *alterData);
+        context.SS->IncrementPathDbRefCount(pathId);
+
+        context.SS->PersistTxState(db, OperationId);
+        context.SS->PersistUpdateNextPathId(db);
+
+        for (auto shard : txState.Shards) {
+            if (shard.Operation == TTxState::CreateParts) {
+                context.SS->PersistChannelsBinding(db, shard.Idx, context.SS->ShardInfos.at(shard.Idx).BindedChannels);
+                context.SS->PersistShardMapping(db, shard.Idx, InvalidTabletId, domainPathId, OperationId.GetTxId(), shard.TabletType);
+            }
+        }
+
+        ++parentPath->DirAlterVersion;
+        context.SS->PersistPathDirAlterVersion(db, parentPath.Base());
+        context.SS->ClearDescribePathCaches(parentPath.Base());
+        context.OnComplete.PublishToSchemeBoard(OperationId, parentPath->PathId);
+
+        context.SS->ClearDescribePathCaches(dstPath.Base());
+        context.OnComplete.PublishToSchemeBoard(OperationId, dstPath->PathId);
+
+        domainInfo->IncPathsInside();
+        parentPath->IncAliveChildren();
+
+        SetState(NextState());
+        return result;
+    }
+
+    void AbortPropose(TOperationContext&) override {
+        Y_ABORT("no AbortPropose for TCopySequence");
+    }
+
+    void AbortUnsafe(TTxId, TOperationContext&) override {
+        Y_ABORT("no AbortUnsafe for TCopySequence");
+    }
+};
+
+}
+
+namespace NKikimr::NSchemeShard {
+
+ISubOperation::TPtr CreateCopySequence(TOperationId id, const TTxTransaction& tx)
+{
+    return MakeSubOperation(id, tx);
+}
+
+ISubOperation::TPtr CreateCopySequence(TOperationId id, TTxState::ETxState state) {
+    return MakeSubOperation(id, state);
+}
+
+}
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_copy_table.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_copy_table.cpp
index d67b2bf91a00..a69fb2956a37 100644
--- a/ydb/core/tx/schemeshard/schemeshard__operation_copy_table.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__operation_copy_table.cpp
@@ -1,6 +1,7 @@
 #include "schemeshard__operation_part.h"
 #include "schemeshard__operation_common.h"
 #include "schemeshard_impl.h"
+#include "schemeshard_tx_infly.h"
 
 #include 
 
@@ -225,7 +226,62 @@ class TPropose: public TSubOperationState {
     }
 };
 
+class TCopyTableBarrier: public TSubOperationState {
+private:
+    TOperationId OperationId;
+
+    TString DebugHint() const override {
+        return TStringBuilder()
+                << "TCopyTable TCopyTableBarrier"
+                << " operationId: " << OperationId;
+    }
+
+public:
+    TCopyTableBarrier(TOperationId id)
+        : OperationId(id)
+    {
+        IgnoreMessages(DebugHint(),
+            { TEvHive::TEvCreateTabletReply::EventType
+            , TEvDataShard::TEvProposeTransactionResult::EventType
+            , TEvPrivate::TEvOperationPlan::EventType
+            , TEvDataShard::TEvSchemaChanged::EventType }
+        );
+    }
+
+    bool HandleReply(TEvPrivate::TEvCompleteBarrier::TPtr& ev, TOperationContext& context) override {
+        TTabletId ssId = context.SS->SelfTabletId();
+
+        LOG_INFO_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                   DebugHint() << " HandleReply TEvPrivate::TEvCompleteBarrier"
+                               << ", msg: " << ev->Get()->ToString()
+                               << ", at tablet" << ssId);
+
+        NIceDb::TNiceDb db(context.GetDB());
+
+        TTxState* txState = context.SS->FindTx(OperationId);
+        Y_ABORT_UNLESS(txState);
+
+        context.SS->ChangeTxState(db, OperationId, TTxState::Done);
+        return true;
+    }
+
+    bool ProgressState(TOperationContext& context) override {
+        TTxState* txState = context.SS->FindTx(OperationId);
+        Y_ABORT_UNLESS(txState);
+
+        LOG_INFO_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                DebugHint() << "ProgressState, operation type "
+                            << TTxState::TypeName(txState->TxType));
+
+        context.OnComplete.Barrier(OperationId, "CopyTableBarrier");
+        return false;
+    }
+};
+
 class TCopyTable: public TSubOperation {
+
+    THashSet LocalSequences;
+
     static TTxState::ETxState NextState() {
         return TTxState::CreateParts;
     }
@@ -240,6 +296,8 @@ class TCopyTable: public TSubOperation {
         case TTxState::Propose:
             return TTxState::ProposedWaitParts;
         case TTxState::ProposedWaitParts:
+            return TTxState::CopyTableBarrier;
+        case TTxState::CopyTableBarrier:
             return TTxState::Done;
         default:
             return TTxState::Invalid;
@@ -256,7 +314,9 @@ class TCopyTable: public TSubOperation {
         case TTxState::Propose:
             return MakeHolder(OperationId);
         case TTxState::ProposedWaitParts:
-            return MakeHolder(OperationId);
+            return MakeHolder(OperationId, TTxState::ETxState::CopyTableBarrier);
+        case TTxState::CopyTableBarrier:
+            return MakeHolder(OperationId);
         case TTxState::Done:
             return MakeHolder(OperationId);
         default:
@@ -267,6 +327,12 @@ class TCopyTable: public TSubOperation {
 public:
     using TSubOperation::TSubOperation;
 
+    explicit TCopyTable(const TOperationId& id, const TTxTransaction& tx, const THashSet& localSequences)
+        : TSubOperation(id, tx)
+        , LocalSequences(localSequences)
+    {
+    }
+
     bool IsShadowDataAllowed() const {
         return AppData()->AllowShadowDataInSchemeShardForTests;
     }
@@ -459,7 +525,8 @@ class TCopyTable: public TSubOperation {
 
         const NScheme::TTypeRegistry* typeRegistry = AppData()->TypeRegistry;
         const TSchemeLimits& limits = domainInfo->GetSchemeLimits();
-        TTableInfo::TAlterDataPtr alterData = TTableInfo::CreateAlterData(nullptr, schema, *typeRegistry, limits, *domainInfo, context.SS->EnableTablePgTypes, errStr);
+        TTableInfo::TAlterDataPtr alterData = TTableInfo::CreateAlterData(nullptr, schema, *typeRegistry,
+            limits, *domainInfo, context.SS->EnableTablePgTypes, errStr, LocalSequences);
         if (!alterData.Get()) {
             result->SetError(NKikimrScheme::StatusSchemeError, errStr);
             return result;
@@ -626,8 +693,9 @@ class TCopyTable: public TSubOperation {
 
 namespace NKikimr::NSchemeShard {
 
-ISubOperation::TPtr CreateCopyTable(TOperationId id, const TTxTransaction& tx) {
-    return MakeSubOperation(id, tx);
+ISubOperation::TPtr CreateCopyTable(TOperationId id, const TTxTransaction& tx, const THashSet& localSequences)
+{
+    return MakeSubOperation(id, tx, localSequences);
 }
 
 ISubOperation::TPtr CreateCopyTable(TOperationId id, TTxState::ETxState state) {
@@ -659,6 +727,25 @@ TVector CreateCopyTable(TOperationId nextId, const TTxTrans
         }
     }
 
+    THashSet sequences;
+    for (auto& child: srcPath.Base()->GetChildren()) {
+        auto name = child.first;
+        auto pathId = child.second;
+
+        TPath childPath = srcPath.Child(name);
+        if (!childPath.IsSequence() || childPath.IsDeleted()) {
+            continue;
+        }
+
+        Y_ABORT_UNLESS(childPath.Base()->PathId == pathId);
+
+        TSequenceInfo::TPtr sequenceInfo = context.SS->Sequences.at(pathId);
+        const auto& sequenceDesc = sequenceInfo->Description;
+        const auto& sequenceName = sequenceDesc.GetName();
+
+        sequences.emplace(sequenceName);
+    }
+
     TPath workDir = TPath::Resolve(tx.GetWorkingDir(), context.SS);
     TPath dstPath = workDir.Child(copying.GetName());
 
@@ -674,15 +761,27 @@ TVector CreateCopyTable(TOperationId nextId, const TTxTrans
         operation->SetIsBackup(copying.GetIsBackup());
         operation->MutablePartitionConfig()->CopyFrom(copying.GetPartitionConfig());
 
-        result.push_back(CreateCopyTable(NextPartId(nextId, result), schema));
+        result.push_back(CreateCopyTable(NextPartId(nextId, result), schema, sequences));
     }
 
+    TVector sequenceDescriptions;
     for (auto& child: srcPath.Base()->GetChildren()) {
         auto name = child.first;
         auto pathId = child.second;
 
         TPath childPath = srcPath.Child(name);
-        if (!childPath.IsTableIndex() || childPath.IsDeleted()) {
+        if (childPath.IsDeleted()) {
+            continue;
+        }
+
+        if (childPath.IsSequence()) {
+            TSequenceInfo::TPtr sequenceInfo = context.SS->Sequences.at(pathId);
+            const auto& sequenceDesc = sequenceInfo->Description;
+            sequenceDescriptions.push_back(sequenceDesc);
+            continue;
+        }
+
+        if (!childPath.IsTableIndex()) {
             continue;
         }
 
@@ -727,6 +826,18 @@ TVector CreateCopyTable(TOperationId nextId, const TTxTrans
         }
     }
 
+    for (auto&& sequenceDescription : sequenceDescriptions) {
+        auto scheme = TransactionTemplate(
+            tx.GetWorkingDir() + "/" + copying.GetName(),
+            NKikimrSchemeOp::EOperationType::ESchemeOpCreateSequence);
+        scheme.SetFailOnExist(tx.GetFailOnExist());
+
+        auto* copySequence = scheme.MutableCopySequence();
+        copySequence->SetCopyFrom(copying.GetCopyFromTable() + "/" + sequenceDescription.GetName());
+        *scheme.MutableSequence() = std::move(sequenceDescription);
+
+        result.push_back(CreateCopySequence(NextPartId(nextId, result), scheme));
+    }
     return result;
 }
 
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_create_pq.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_create_pq.cpp
index f22f6e8dbc0d..c0ba68e372c3 100644
--- a/ydb/core/tx/schemeshard/schemeshard__operation_create_pq.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__operation_create_pq.cpp
@@ -122,8 +122,8 @@ TTopicInfo::TPtr CreatePersQueueGroup(TOperationContext& context,
                     TVector cells;
                     TString error;
                     TVector memoryOwner;
-                    if (!NMiniKQL::CellsFromTuple(nullptr, op.GetPartitionBoundaries(i), pqGroupInfo->KeySchema, false,
-                                                  cells, error, memoryOwner)) {
+                    if (!NMiniKQL::CellsFromTuple(nullptr, op.GetPartitionBoundaries(i), pqGroupInfo->KeySchema, {},
+                                                  false, cells, error, memoryOwner)) {
                         status = NKikimrScheme::StatusSchemeError;
                         errStr = Sprintf("Invalid partition boundary at position: %u, error: %s", i, error.data());
                         return nullptr;
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_create_sequence.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_create_sequence.cpp
index 6c2a700a8a7f..8745837bd96a 100644
--- a/ydb/core/tx/schemeshard/schemeshard__operation_create_sequence.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__operation_create_sequence.cpp
@@ -142,6 +142,10 @@ class TConfigureParts : public TSubOperationState {
             if (alterData->Description.HasCycle()) {
                 event->Record.SetCycle(alterData->Description.GetCycle());
             }
+            if (alterData->Description.HasSetVal()) {
+                event->Record.MutableSetVal()->SetNextValue(alterData->Description.GetSetVal().GetNextValue());
+                event->Record.MutableSetVal()->SetNextUsed(alterData->Description.GetSetVal().GetNextUsed());
+            }
 
             LOG_DEBUG_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
                         "TCreateSequence TConfigureParts ProgressState"
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_finalize_build_index.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_finalize_build_index.cpp
index d14760f29d93..df9e154bf648 100644
--- a/ydb/core/tx/schemeshard/schemeshard__operation_finalize_build_index.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__operation_finalize_build_index.cpp
@@ -156,6 +156,24 @@ class TPropose: public TSubOperationState {
 
         const TTableInfo::TPtr tableInfo = context.SS->Tables.at(txState->TargetPathId);
         tableInfo->AlterVersion += 1;
+
+        for(auto& column: tableInfo->Columns) {
+            if (column.second.IsDropped())
+                continue;
+
+            if (!column.second.IsBuildInProgress)
+                continue;
+
+            LOG_INFO_S(context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                       DebugHint() << " HandleReply ProgressState"
+                                   << " at tablet: " << ssId
+                                   << " terminating build column process at column "
+                                   << column.second.Name);
+
+            column.second.IsBuildInProgress = false;
+            context.SS->PersistTableFinishColumnBuilding(db, txState->TargetPathId, tableInfo, column.first);
+        }
+
         context.SS->PersistTableAlterVersion(db, txState->TargetPathId, tableInfo);
 
         context.SS->TabletCounters->Simple()[COUNTER_SNAPSHOTS_COUNT].Sub(1);
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_part.h b/ydb/core/tx/schemeshard/schemeshard__operation_part.h
index 0a9cf8b6b8b3..1dadd2059f44 100644
--- a/ydb/core/tx/schemeshard/schemeshard__operation_part.h
+++ b/ydb/core/tx/schemeshard/schemeshard__operation_part.h
@@ -50,6 +50,7 @@
     action(NSequenceShard::TEvSequenceShard::TEvFreezeSequenceResult,   NSchemeShard::TXTYPE_SEQUENCESHARD_FREEZE_SEQUENCE_RESULT)   \
     action(NSequenceShard::TEvSequenceShard::TEvRestoreSequenceResult,  NSchemeShard::TXTYPE_SEQUENCESHARD_RESTORE_SEQUENCE_RESULT)  \
     action(NSequenceShard::TEvSequenceShard::TEvRedirectSequenceResult, NSchemeShard::TXTYPE_SEQUENCESHARD_REDIRECT_SEQUENCE_RESULT) \
+    action(NSequenceShard::TEvSequenceShard::TEvGetSequenceResult, NSchemeShard::TXTYPE_SEQUENCESHARD_GET_SEQUENCE_RESULT) \
 \
     action(NReplication::TEvController::TEvCreateReplicationResult, NSchemeShard::TXTYPE_CREATE_REPLICATION_RESULT) \
     action(NReplication::TEvController::TEvDropReplicationResult,   NSchemeShard::TXTYPE_DROP_REPLICATION_RESULT)   \
@@ -340,7 +341,8 @@ ISubOperation::TPtr CreateForceDropUnsafe(TOperationId id, TTxState::ETxState st
 ISubOperation::TPtr CreateNewTable(TOperationId id, const TTxTransaction& tx, const THashSet& localSequences = { });
 ISubOperation::TPtr CreateNewTable(TOperationId id, TTxState::ETxState state);
 
-ISubOperation::TPtr CreateCopyTable(TOperationId id, const TTxTransaction& tx);
+ISubOperation::TPtr CreateCopyTable(TOperationId id, const TTxTransaction& tx,
+    const THashSet& localSequences = { });
 ISubOperation::TPtr CreateCopyTable(TOperationId id, TTxState::ETxState state);
 TVector CreateCopyTable(TOperationId nextId, const TTxTransaction& tx, TOperationContext& context);
 
@@ -583,6 +585,8 @@ ISubOperation::TPtr CreateNewSequence(TOperationId id, const TTxTransaction& tx)
 ISubOperation::TPtr CreateNewSequence(TOperationId id, TTxState::ETxState state);
 ISubOperation::TPtr CreateDropSequence(TOperationId id, const TTxTransaction& tx);
 ISubOperation::TPtr CreateDropSequence(TOperationId id, TTxState::ETxState state);
+ISubOperation::TPtr CreateCopySequence(TOperationId id, const TTxTransaction& tx);
+ISubOperation::TPtr CreateCopySequence(TOperationId id, TTxState::ETxState state);
 
 ISubOperation::TPtr CreateNewReplication(TOperationId id, const TTxTransaction& tx);
 ISubOperation::TPtr CreateNewReplication(TOperationId id, TTxState::ETxState state);
diff --git a/ydb/core/tx/schemeshard/schemeshard__operation_upgrade_subdomain.cpp b/ydb/core/tx/schemeshard/schemeshard__operation_upgrade_subdomain.cpp
index 5a1a466e020a..0f958b237e8a 100644
--- a/ydb/core/tx/schemeshard/schemeshard__operation_upgrade_subdomain.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__operation_upgrade_subdomain.cpp
@@ -230,6 +230,7 @@ class TConfigure: public TSubOperationState {
             colDescr->SetDeleteVersion(column.DeleteVersion);
             colDescr->SetFamily(column.Family);
             colDescr->SetNotNull(column.NotNull);
+            colDescr->SetIsBuildInProgress(column.IsBuildInProgress);
             if (column.DefaultKind != ETableColumnDefaultKind::None) {
                 colDescr->SetDefaultKind(ui32(column.DefaultKind));
                 colDescr->SetDefaultValue(column.DefaultValue);
diff --git a/ydb/core/tx/schemeshard/schemeshard__table_stats.cpp b/ydb/core/tx/schemeshard/schemeshard__table_stats.cpp
index 0434df8d07cf..4fdc10c68740 100644
--- a/ydb/core/tx/schemeshard/schemeshard__table_stats.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard__table_stats.cpp
@@ -215,9 +215,11 @@ bool TTxStoreTableStats::PersistSingleStats(const TPathId& pathId,
     const TPartitionStats newStats = PrepareStats(ctx, rec);
 
     LOG_INFO_S(ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
-               "Add stats from shard with datashardId(TabletID)=" << datashardId << ", pathId " << pathId.LocalPathId
-                                                                  << ": RowCount " << newStats.RowCount << ", DataSize "
-                                                                  << newStats.DataSize);
+               "Add stats from shard with datashardId(TabletID)=" << datashardId 
+                    << ", pathId " << pathId.LocalPathId
+                    << ": RowCount " << newStats.RowCount 
+                    << ", DataSize " << newStats.DataSize
+                    << (newStats.HasBorrowedData ? ", with borrowed parts" : ""));
 
     NIceDb::TNiceDb db(txc.DB);
 
@@ -334,8 +336,6 @@ bool TTxStoreTableStats::PersistSingleStats(const TPathId& pathId,
 
         if (lag) {
             Self->TabletCounters->Percentile()[COUNTER_NUM_SHARDS_BY_TTL_LAG].DecrementFor(lag->Seconds());
-        } else {
-            Y_DEBUG_ABORT_UNLESS(false);
         }
 
         const auto now = ctx.Now();
diff --git a/ydb/core/tx/schemeshard/schemeshard_build_index__progress.cpp b/ydb/core/tx/schemeshard/schemeshard_build_index__progress.cpp
index 37c0a91e8cfa..08dbd2b9c593 100644
--- a/ydb/core/tx/schemeshard/schemeshard_build_index__progress.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard_build_index__progress.cpp
@@ -98,6 +98,7 @@ THolder AlterMainTablePropose(
             col->SetType(NScheme::TypeName(typeInfo, typeMod));
             col->SetName(colInfo.ColumnName);
             col->MutableDefaultFromLiteral()->CopyFrom(colInfo.DefaultFromLiteral);
+            col->SetIsBuildInProgress(true);
 
             if (!colInfo.FamilyName.empty()) {
                 col->SetFamilyName(colInfo.FamilyName);
@@ -1057,7 +1058,7 @@ struct TSchemeShard::TIndexBuilder::TTxReply: public TSchemeShard::TIndexBuilder
             }
 
             ReplyOnCreation(buildInfo, statusCode);
-            break;            
+            break;
         }
 
         case TIndexBuildInfo::EState::Locking:
@@ -1296,7 +1297,7 @@ struct TSchemeShard::TIndexBuilder::TTxReply: public TSchemeShard::TIndexBuilder
                 buildInfo->AlterMainTableTxId = txId;
                 NIceDb::TNiceDb db(txc.DB);
                 Self->PersistBuildIndexAlterMainTableTxId(db, buildInfo);
-        
+
             }
             break;
 
diff --git a/ydb/core/tx/schemeshard/schemeshard_cdc_stream_scan.cpp b/ydb/core/tx/schemeshard/schemeshard_cdc_stream_scan.cpp
index 59e88b007442..5515bfbef022 100644
--- a/ydb/core/tx/schemeshard/schemeshard_cdc_stream_scan.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard_cdc_stream_scan.cpp
@@ -172,7 +172,7 @@ struct TSchemeShard::TCdcStreamScan::TTxProgress: public TTransactionBasePendingShards.empty()) {
-            if (streamInfo->InProgressShards.size() >= streamInfo->MaxInProgressShards) {
+            if (streamInfo->InProgressShards.size() >= Self->MaxCdcInitialScanShardsInFlight) {
                 break;
             }
 
diff --git a/ydb/core/tx/schemeshard/schemeshard_export__create.cpp b/ydb/core/tx/schemeshard/schemeshard_export__create.cpp
index 8c7fb7cd995e..cc630e8d2043 100644
--- a/ydb/core/tx/schemeshard/schemeshard_export__create.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard_export__create.cpp
@@ -51,12 +51,19 @@ struct TSchemeShard::TExport::TTxCreate: public TSchemeShard::TXxport::TTxBase {
         }
 
         const TString& uid = GetUid(request.GetRequest().GetOperationParams().labels());
-        if (uid && Self->ExportsByUid.contains(uid)) {
-            return Reply(
-                std::move(response),
-                Ydb::StatusIds::ALREADY_EXISTS,
-                TStringBuilder() << "Export with uid '" << uid << "' already exists"
-            );
+        if (uid) {
+            if (auto it = Self->ExportsByUid.find(uid); it != Self->ExportsByUid.end()) {
+                if (IsSameDomain(it->second, request.GetDatabaseName())) {
+                    Self->FromXxportInfo(*response->Record.MutableResponse()->MutableEntry(), it->second);
+                    return Reply(std::move(response));
+                } else {
+                    return Reply(
+                        std::move(response),
+                        Ydb::StatusIds::ALREADY_EXISTS,
+                        TStringBuilder() << "Export with uid '" << uid << "' already exists"
+                    );
+                }
+            }
         }
 
         const TPath domainPath = TPath::Resolve(request.GetDatabaseName(), Self);
diff --git a/ydb/core/tx/schemeshard/schemeshard_export_flow_proposals.cpp b/ydb/core/tx/schemeshard/schemeshard_export_flow_proposals.cpp
index c4514bec9002..92f5d532f37c 100644
--- a/ydb/core/tx/schemeshard/schemeshard_export_flow_proposals.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard_export_flow_proposals.cpp
@@ -82,6 +82,30 @@ static NKikimrSchemeOp::TPathDescription GetTableDescription(TSchemeShard* ss, c
     return record.GetPathDescription();
 }
 
+void FillSetValForSequences(TSchemeShard* ss, NKikimrSchemeOp::TTableDescription& description,
+        const TPathId& exportItemPathId) {
+    NKikimrSchemeOp::TDescribeOptions opts;
+    opts.SetReturnSetVal(true);
+
+    auto pathDescription = DescribePath(ss, TlsActivationContext->AsActorContext(), exportItemPathId, opts);
+    auto tableDescription = pathDescription->GetRecord().GetPathDescription().GetTable();
+
+    THashMap setValForSequences;
+
+    for (const auto& sequenceDescription : tableDescription.GetSequences()) {
+        if (sequenceDescription.HasSetVal()) {
+            setValForSequences[sequenceDescription.GetName()] = sequenceDescription.GetSetVal();
+        }
+    }
+
+    for (auto& sequenceDescription : *description.MutableSequences()) {
+        auto it = setValForSequences.find(sequenceDescription.GetName());
+        if (it != setValForSequences.end()) {
+            *sequenceDescription.MutableSetVal() = it->second;
+        }
+    }
+}
+
 THolder BackupPropose(
     TSchemeShard* ss,
     TTxId txId,
@@ -105,8 +129,14 @@ THolder BackupPropose(
     task.SetNeedToBill(!exportInfo->UserSID || !ss->SystemBackupSIDs.contains(*exportInfo->UserSID));
 
     const TPath sourcePath = TPath::Init(exportInfo->Items[itemIdx].SourcePathId, ss);
-    if (sourcePath.IsResolved()) {
-        task.MutableTable()->CopyFrom(GetTableDescription(ss, sourcePath.Base()->PathId));
+    const TPath exportItemPath = exportPath.Child(ToString(itemIdx));
+    if (sourcePath.IsResolved() && exportItemPath.IsResolved()) {
+        auto sourceDescription = GetTableDescription(ss, sourcePath.Base()->PathId);
+        if (sourceDescription.HasTable()) {
+            FillSetValForSequences(
+                ss, *sourceDescription.MutableTable(), exportItemPath.Base()->PathId);
+        }
+        task.MutableTable()->CopyFrom(sourceDescription);
     }
 
     task.SetSnapshotStep(exportInfo->SnapshotStep);
diff --git a/ydb/core/tx/schemeshard/schemeshard_impl.cpp b/ydb/core/tx/schemeshard/schemeshard_impl.cpp
index c55bca5942fe..71633c3a992b 100644
--- a/ydb/core/tx/schemeshard/schemeshard_impl.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard_impl.cpp
@@ -142,7 +142,7 @@ void TSchemeShard::InitializeTabletMigrations() {
         }
 
         if (EnableStatistics &&
-            !IsServerlessDomain(subdomain) &&
+            !IsServerlessDomainGlobal(pathId, subdomain) &&
             subdomain->GetTenantStatisticsAggregatorID() == InvalidTabletId)
         {
             createSA = true;
@@ -1433,6 +1433,7 @@ TPathElement::EPathState TSchemeShard::CalcPathState(TTxState::ETxType txType, T
     case TTxState::TxCreateColumnTable:
     case TTxState::TxCreateCdcStream:
     case TTxState::TxCreateSequence:
+    case TTxState::TxCopySequence:
     case TTxState::TxCreateReplication:
     case TTxState::TxCreateBlobDepot:
     case TTxState::TxCreateExternalTable:
@@ -2504,6 +2505,18 @@ void TSchemeShard::PersistTableAlterVersion(NIceDb::TNiceDb& db, const TPathId p
     }
 }
 
+void TSchemeShard::PersistTableFinishColumnBuilding(NIceDb::TNiceDb& db, const TPathId pathId, const TTableInfo::TPtr tableInfo, ui64 colId) {
+    const auto& cinfo = tableInfo->Columns.at(colId);
+    if (pathId.OwnerId == TabletID()) {
+        db.Table().Key(pathId.LocalPathId, colId).Update(
+            NIceDb::TUpdate(cinfo.IsBuildInProgress));
+
+    } else {
+        db.Table().Key(pathId.OwnerId, pathId.LocalPathId, colId).Update(
+            NIceDb::TUpdate(cinfo.IsBuildInProgress));
+    }
+}
+
 void TSchemeShard::PersistTableAltered(NIceDb::TNiceDb& db, const TPathId pathId, const TTableInfo::TPtr tableInfo) {
     TString partitionConfig;
     Y_PROTOBUF_SUPPRESS_NODISCARD tableInfo->PartitionConfig().SerializeToString(&partitionConfig);
@@ -2562,7 +2575,8 @@ void TSchemeShard::PersistTableAltered(NIceDb::TNiceDb& db, const TPathId pathId
                 NIceDb::TUpdate(cinfo.Family),
                 NIceDb::TUpdate(cinfo.DefaultKind),
                 NIceDb::TUpdate(cinfo.DefaultValue),
-                NIceDb::TUpdate(cinfo.NotNull));
+                NIceDb::TUpdate(cinfo.NotNull),
+                NIceDb::TUpdate(cinfo.IsBuildInProgress));
 
             db.Table().Key(pathId.LocalPathId, colId).Delete();
         } else {
@@ -2576,7 +2590,8 @@ void TSchemeShard::PersistTableAltered(NIceDb::TNiceDb& db, const TPathId pathId
                 NIceDb::TUpdate(cinfo.Family),
                 NIceDb::TUpdate(cinfo.DefaultKind),
                 NIceDb::TUpdate(cinfo.DefaultValue),
-                NIceDb::TUpdate(cinfo.NotNull));
+                NIceDb::TUpdate(cinfo.NotNull),
+                NIceDb::TUpdate(cinfo.IsBuildInProgress));
         }
         db.Table().Key(pathId.OwnerId, pathId.LocalPathId, colId).Delete();
     }
@@ -2620,7 +2635,8 @@ void TSchemeShard::PersistAddAlterTable(NIceDb::TNiceDb& db, TPathId pathId, con
                 NIceDb::TUpdate(cinfo.Family),
                 NIceDb::TUpdate(cinfo.DefaultKind),
                 NIceDb::TUpdate(cinfo.DefaultValue),
-                NIceDb::TUpdate(cinfo.NotNull));
+                NIceDb::TUpdate(cinfo.NotNull),
+                NIceDb::TUpdate(cinfo.IsBuildInProgress));
         } else {
             db.Table().Key(pathId.OwnerId, pathId.LocalPathId, colId).Update(
                 NIceDb::TUpdate(cinfo.Name),
@@ -2632,7 +2648,8 @@ void TSchemeShard::PersistAddAlterTable(NIceDb::TNiceDb& db, TPathId pathId, con
                 NIceDb::TUpdate(cinfo.Family),
                 NIceDb::TUpdate(cinfo.DefaultKind),
                 NIceDb::TUpdate(cinfo.DefaultValue),
-                NIceDb::TUpdate(cinfo.NotNull));
+                NIceDb::TUpdate(cinfo.NotNull),
+                NIceDb::TUpdate(cinfo.IsBuildInProgress));
         }
     }
 }
@@ -2771,7 +2788,8 @@ void TSchemeShard::PersistExternalTable(NIceDb::TNiceDb &db, TPathId pathId, con
             NIceDb::TUpdate(cinfo.Family),
             NIceDb::TUpdate(cinfo.DefaultKind),
             NIceDb::TUpdate(cinfo.DefaultValue),
-            NIceDb::TUpdate(cinfo.NotNull));
+            NIceDb::TUpdate(cinfo.NotNull),
+            NIceDb::TUpdate(cinfo.IsBuildInProgress));
     }
 }
 
@@ -4328,6 +4346,7 @@ void TSchemeShard::OnActivateExecutor(const TActorContext &ctx) {
     ConfigureCompactionQueues(appData->CompactionConfig, ctx);
     ConfigureStatsBatching(appData->SchemeShardConfig, ctx);
     ConfigureStatsOperations(appData->SchemeShardConfig, ctx);
+    MaxCdcInitialScanShardsInFlight = appData->SchemeShardConfig.GetMaxCdcInitialScanShardsInFlight();
 
     ConfigureBackgroundCleaningQueue(appData->BackgroundCleaningConfig, ctx);
 
@@ -4489,6 +4508,7 @@ void TSchemeShard::StateWork(STFUNC_SIG) {
         HFuncTraced(NSequenceShard::TEvSequenceShard::TEvFreezeSequenceResult, Handle);
         HFuncTraced(NSequenceShard::TEvSequenceShard::TEvRestoreSequenceResult, Handle);
         HFuncTraced(NSequenceShard::TEvSequenceShard::TEvRedirectSequenceResult, Handle);
+        HFuncTraced(NSequenceShard::TEvSequenceShard::TEvGetSequenceResult, Handle);
 
         // replication
         HFuncTraced(NReplication::TEvController::TEvCreateReplicationResult, Handle);
@@ -5770,6 +5790,17 @@ void TSchemeShard::Handle(NSequenceShard::TEvSequenceShard::TEvRedirectSequenceR
     Execute(CreateTxOperationReply(TOperationId(txId, partId), ev), ctx);
 }
 
+void TSchemeShard::Handle(NSequenceShard::TEvSequenceShard::TEvGetSequenceResult::TPtr &ev, const TActorContext &ctx) {
+    LOG_DEBUG_S(ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
+                "Handle TEvGetSequenceResult"
+                << ", at schemeshard: " << TabletID()
+                << ", message: " << ev->Get()->Record.ShortDebugString());
+
+    TTxId txId = TTxId(ev->Get()->Record.GetTxId());
+    TSubTxId partId = TSubTxId(ev->Get()->Record.GetTxPartId());
+    Execute(CreateTxOperationReply(TOperationId(txId, partId), ev), ctx);
+}
+
 void TSchemeShard::Handle(NReplication::TEvController::TEvCreateReplicationResult::TPtr &ev, const TActorContext &ctx) {
     LOG_DEBUG_S(ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
                 "Handle TEvCreateReplicationResult"
@@ -6413,7 +6444,7 @@ bool TSchemeShard::FillSplitPartitioning(TVector& rangeEnds, const TCon
         if (boundary.HasSerializedKeyPrefix()) {
             prefix.Parse(boundary.GetSerializedKeyPrefix());
             rangeEnd = TVector(prefix.GetCells().begin(), prefix.GetCells().end());
-        } else if (!NMiniKQL::CellsFromTuple(nullptr, boundary.GetKeyPrefix(), keyColTypes, false, rangeEnd, errStr, memoryOwner)) {
+        } else if (!NMiniKQL::CellsFromTuple(nullptr, boundary.GetKeyPrefix(), keyColTypes, {}, false, rangeEnd, errStr, memoryOwner)) {
             errStr = Sprintf("Error at split boundary %d: %s", i, errStr.data());
             return false;
         }
@@ -6805,6 +6836,7 @@ void TSchemeShard::ApplyConsoleConfigs(const NKikimrConfig::TAppConfig& appConfi
         const auto& schemeShardConfig = appConfig.GetSchemeShardConfig();
         ConfigureStatsBatching(schemeShardConfig, ctx);
         ConfigureStatsOperations(schemeShardConfig, ctx);
+        MaxCdcInitialScanShardsInFlight = schemeShardConfig.GetMaxCdcInitialScanShardsInFlight();
     }
 
     if (appConfig.HasTableProfilesConfig()) {
diff --git a/ydb/core/tx/schemeshard/schemeshard_impl.h b/ydb/core/tx/schemeshard/schemeshard_impl.h
index 2c1a2e6db0b8..d24671b5524d 100644
--- a/ydb/core/tx/schemeshard/schemeshard_impl.h
+++ b/ydb/core/tx/schemeshard/schemeshard_impl.h
@@ -318,7 +318,9 @@ class TSchemeShard
     TActorId SysPartitionStatsCollector;
 
     TActorId TabletMigrator;
+
     TActorId CdcStreamScanFinalizer;
+    ui32 MaxCdcInitialScanShardsInFlight = 10;
 
     TDuration StatsMaxExecuteTime;
     TDuration StatsBatchTimeout;
@@ -649,6 +651,7 @@ class TSchemeShard
     void PersistTablePartitionStats(NIceDb::TNiceDb& db, const TPathId& tableId, const TTableInfo::TPtr tableInfo);
     void PersistTableCreated(NIceDb::TNiceDb& db, const TPathId tableId);
     void PersistTableAlterVersion(NIceDb::TNiceDb &db, const TPathId pathId, const TTableInfo::TPtr tableInfo);
+    void PersistTableFinishColumnBuilding(NIceDb::TNiceDb& db, const TPathId pathId, const TTableInfo::TPtr tableInfo, ui64 colId);
     void PersistTableAltered(NIceDb::TNiceDb &db, const TPathId pathId, const TTableInfo::TPtr tableInfo);
     void PersistAddAlterTable(NIceDb::TNiceDb& db, TPathId pathId, const TTableInfo::TAlterDataPtr alter);
     void PersistPersQueueGroup(NIceDb::TNiceDb &db, TPathId pathId, const TTopicInfo::TPtr);
@@ -852,7 +855,7 @@ class TSchemeShard
 
     void EnqueueBackgroundCompaction(const TShardIdx& shardIdx, const TPartitionStats& stats);
     void UpdateBackgroundCompaction(const TShardIdx& shardIdx, const TPartitionStats& stats);
-    void RemoveBackgroundCompaction(const TShardIdx& shardIdx);
+    bool RemoveBackgroundCompaction(const TShardIdx& shardIdx);
 
     void EnqueueBorrowedCompaction(const TShardIdx& shardIdx);
     void RemoveBorrowedCompaction(const TShardIdx& shardIdx);
@@ -991,8 +994,10 @@ class TSchemeShard
     void DescribeTableIndex(const TPathId& pathId, const TString& name, TTableIndexInfo::TPtr indexInfo, NKikimrSchemeOp::TIndexDescription& entry);
     void DescribeCdcStream(const TPathId& pathId, const TString& name, NKikimrSchemeOp::TCdcStreamDescription& desc);
     void DescribeCdcStream(const TPathId& pathId, const TString& name, TCdcStreamInfo::TPtr info, NKikimrSchemeOp::TCdcStreamDescription& desc);
-    void DescribeSequence(const TPathId& pathId, const TString& name, NKikimrSchemeOp::TSequenceDescription& desc);
-    void DescribeSequence(const TPathId& pathId, const TString& name, TSequenceInfo::TPtr info, NKikimrSchemeOp::TSequenceDescription& desc);
+    void DescribeSequence(const TPathId& pathId, const TString& name,
+        NKikimrSchemeOp::TSequenceDescription& desc, bool fillSetVal = false);
+    void DescribeSequence(const TPathId& pathId, const TString& name, TSequenceInfo::TPtr info,
+        NKikimrSchemeOp::TSequenceDescription& desc, bool fillSetVal = false);
     void DescribeReplication(const TPathId& pathId, const TString& name, NKikimrSchemeOp::TReplicationDescription& desc);
     void DescribeReplication(const TPathId& pathId, const TString& name, TReplicationInfo::TPtr info, NKikimrSchemeOp::TReplicationDescription& desc);
     void DescribeBlobDepot(const TPathId& pathId, const TString& name, NKikimrSchemeOp::TBlobDepotDescription& desc);
@@ -1033,6 +1038,7 @@ class TSchemeShard
     void Handle(NSequenceShard::TEvSequenceShard::TEvFreezeSequenceResult::TPtr &ev, const TActorContext &ctx);
     void Handle(NSequenceShard::TEvSequenceShard::TEvRestoreSequenceResult::TPtr &ev, const TActorContext &ctx);
     void Handle(NSequenceShard::TEvSequenceShard::TEvRedirectSequenceResult::TPtr &ev, const TActorContext &ctx);
+    void Handle(NSequenceShard::TEvSequenceShard::TEvGetSequenceResult::TPtr &ev, const TActorContext &ctx);
     void Handle(NReplication::TEvController::TEvCreateReplicationResult::TPtr &ev, const TActorContext &ctx);
     void Handle(NReplication::TEvController::TEvDropReplicationResult::TPtr &ev, const TActorContext &ctx);
     void Handle(TEvDataShard::TEvProposeTransactionResult::TPtr &ev, const TActorContext &ctx);
diff --git a/ydb/core/tx/schemeshard/schemeshard_import__create.cpp b/ydb/core/tx/schemeshard/schemeshard_import__create.cpp
index d20e9f9ab317..1f4336fac255 100644
--- a/ydb/core/tx/schemeshard/schemeshard_import__create.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard_import__create.cpp
@@ -53,12 +53,19 @@ struct TSchemeShard::TImport::TTxCreate: public TSchemeShard::TXxport::TTxBase {
         }
 
         const TString& uid = GetUid(request.GetRequest().GetOperationParams().labels());
-        if (uid && Self->ImportsByUid.contains(uid)) {
-            return Reply(
-                std::move(response),
-                Ydb::StatusIds::ALREADY_EXISTS,
-                TStringBuilder() << "Import with uid '" << uid << "' already exists"
-            );
+        if (uid) {
+            if (auto it = Self->ImportsByUid.find(uid); it != Self->ImportsByUid.end()) {
+                if (IsSameDomain(it->second, request.GetDatabaseName())) {
+                    Self->FromXxportInfo(*response->Record.MutableResponse()->MutableEntry(), it->second);
+                    return Reply(std::move(response));
+                } else {
+                    return Reply(
+                        std::move(response),
+                        Ydb::StatusIds::ALREADY_EXISTS,
+                        TStringBuilder() << "Import with uid '" << uid << "' already exists"
+                    );
+                }
+            }
         }
 
         const TPath domainPath = TPath::Resolve(request.GetDatabaseName(), Self);
@@ -843,7 +850,10 @@ struct TSchemeShard::TImport::TTxProgress: public TSchemeShard::TXxport::TTxBase
         }
 
         if (item.State == EState::CreateTable) {
-            item.DstPathId = Self->MakeLocalId(TLocalPathId(record.GetPathId()));
+            auto createPath = TPath::Resolve(item.DstPathName, Self);
+            Y_ABORT_UNLESS(createPath);
+
+            item.DstPathId = createPath.Base()->PathId;
             Self->PersistImportItemDstPathId(db, importInfo, itemIdx);
         }
 
diff --git a/ydb/core/tx/schemeshard/schemeshard_import_flow_proposals.cpp b/ydb/core/tx/schemeshard/schemeshard_import_flow_proposals.cpp
index 7d81246bd758..bed9631994bb 100644
--- a/ydb/core/tx/schemeshard/schemeshard_import_flow_proposals.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard_import_flow_proposals.cpp
@@ -25,7 +25,7 @@ THolder CreateTablePropose(
     }
 
     auto& modifyScheme = *record.AddTransaction();
-    modifyScheme.SetOperationType(NKikimrSchemeOp::ESchemeOpCreateTable);
+    modifyScheme.SetOperationType(NKikimrSchemeOp::ESchemeOpCreateIndexedTable);
     modifyScheme.SetInternal(true);
 
     const TPath domainPath = TPath::Init(importInfo->DomainPathId, ss);
@@ -37,15 +37,56 @@ THolder CreateTablePropose(
 
     modifyScheme.SetWorkingDir(wdAndPath.first);
 
-    auto& tableDesc = *modifyScheme.MutableCreateTable();
+    auto* indexedTable = modifyScheme.MutableCreateIndexedTable();
+    auto& tableDesc = *(indexedTable->MutableTableDescription());
     tableDesc.SetName(wdAndPath.second);
 
     Y_ABORT_UNLESS(ss->TableProfilesLoaded);
     Ydb::StatusIds::StatusCode status;
-    if (!FillTableDescription(modifyScheme, item.Scheme, ss->TableProfiles, status, error)) {
+    if (!FillTableDescription(modifyScheme, item.Scheme, ss->TableProfiles, status, error, true)) {
         return nullptr;
     }
 
+    for(const auto& column: item.Scheme.columns()) {
+        switch (column.default_value_case()) {
+            case Ydb::Table::ColumnMeta::kFromSequence: {
+                const auto& fromSequence = column.from_sequence();
+
+                auto seqDesc = indexedTable->MutableSequenceDescription()->Add();
+                seqDesc->SetName(fromSequence.name());
+                if (fromSequence.has_min_value()) {
+                    seqDesc->SetMinValue(fromSequence.min_value());
+                }
+                if (fromSequence.has_max_value()) {
+                    seqDesc->SetMaxValue(fromSequence.max_value());
+                }
+                if (fromSequence.has_start_value()) {
+                    seqDesc->SetStartValue(fromSequence.start_value());
+                }
+                if (fromSequence.has_cache()) {
+                    seqDesc->SetCache(fromSequence.cache());
+                }
+                if (fromSequence.has_increment()) {
+                    seqDesc->SetIncrement(fromSequence.increment());
+                }
+                if (fromSequence.has_cycle()) {
+                    seqDesc->SetCycle(fromSequence.cycle());
+                }
+                if (fromSequence.has_set_val()) {
+                    auto* setVal = seqDesc->MutableSetVal();
+                    setVal->SetNextUsed(fromSequence.set_val().next_used());
+                    setVal->SetNextValue(fromSequence.set_val().next_value());
+                }
+
+                break;
+            }
+            case Ydb::Table::ColumnMeta::kFromLiteral: {
+                break;
+            }
+            default: break;
+        }
+    }
+
     return propose;
 }
 
diff --git a/ydb/core/tx/schemeshard/schemeshard_info_types.cpp b/ydb/core/tx/schemeshard/schemeshard_info_types.cpp
index 830b726d913a..c138d4c781ed 100644
--- a/ydb/core/tx/schemeshard/schemeshard_info_types.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard_info_types.cpp
@@ -190,6 +190,7 @@ TTableInfo::TAlterDataPtr TTableInfo::CreateAlterData(
             TTableInfo::TColumn& column = alterData->Columns[colId];
             column = TTableInfo::TColumn(colName, colId, typeInfo, typeMod, col.GetNotNull());
             column.Family = columnFamily ? columnFamily->GetId() : 0;
+            column.IsBuildInProgress = col.GetIsBuildInProgress();
             if (source)
                 column.CreateVersion = alterData->AlterVersion;
             if (col.HasDefaultFromSequence()) {
@@ -2251,7 +2252,7 @@ bool TOlapStoreInfo::ParseFromRequest(const NKikimrSchemeOp::TColumnStoreDescrip
         preset.SetProtoIndex(protoIndex++);
 
         TOlapSchemaUpdate schemaDiff;
-        if (!schemaDiff.Parse(presetProto.GetSchema(), errors, true)) {
+        if (!schemaDiff.Parse(presetProto.GetSchema(), errors)) {
             return false;
         }
 
diff --git a/ydb/core/tx/schemeshard/schemeshard_info_types.h b/ydb/core/tx/schemeshard/schemeshard_info_types.h
index 265d620a8201..c2719592caa5 100644
--- a/ydb/core/tx/schemeshard/schemeshard_info_types.h
+++ b/ydb/core/tx/schemeshard/schemeshard_info_types.h
@@ -321,6 +321,7 @@ struct TTableInfo : public TSimpleRefCount {
         ui64 DeleteVersion;
         ETableColumnDefaultKind DefaultKind = ETableColumnDefaultKind::None;
         TString DefaultValue;
+        bool IsBuildInProgress = false;
 
         TColumn(const TString& name, ui32 id, NScheme::TTypeInfo type, const TString& typeMod, bool notNull)
             : NTable::TScheme::TColumn(name, id, type, typeMod, notNull)
@@ -2546,8 +2547,6 @@ struct TCdcStreamInfo : public TSimpleRefCount {
         {}
     };
 
-    static constexpr ui32 MaxInProgressShards = 10;
-
     TCdcStreamInfo(ui64 version, EMode mode, EFormat format, bool vt, const TDuration& rt, const TString& awsRegion, EState state)
         : AlterVersion(version)
         , Mode(mode)
diff --git a/ydb/core/tx/schemeshard/schemeshard_path.cpp b/ydb/core/tx/schemeshard/schemeshard_path.cpp
index cf5674c4ad1e..65c69d043ff4 100644
--- a/ydb/core/tx/schemeshard/schemeshard_path.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard_path.cpp
@@ -923,6 +923,23 @@ const TPath::TChecker& TPath::TChecker::NotChildren(EStatus status) const {
         << ", children: " << childrenCount);
 }
 
+const TPath::TChecker& TPath::TChecker::CanBackupTable(EStatus status) const {
+    if (Failed) {
+        return *this;
+    }
+
+    for (const auto& child: Path.Base()->GetChildren()) {
+        auto name = child.first;
+
+        TPath childPath = Path.Child(name);
+        if (childPath->IsTableIndex()) {
+            return Fail(status, TStringBuilder() << "path has indexes, request doesn't accept it");
+        }
+    }
+
+    return *this;
+}
+
 const TPath::TChecker& TPath::TChecker::NotDeleted(EStatus status) const {
     if (Failed) {
         return *this;
diff --git a/ydb/core/tx/schemeshard/schemeshard_path.h b/ydb/core/tx/schemeshard/schemeshard_path.h
index 2087a853f06e..cc6e9cffd7b0 100644
--- a/ydb/core/tx/schemeshard/schemeshard_path.h
+++ b/ydb/core/tx/schemeshard/schemeshard_path.h
@@ -86,6 +86,7 @@ class TPath {
         const TChecker& ShardsLimit(ui64 delta = 1, EStatus status = EStatus::StatusResourceExhausted) const;
         const TChecker& PathShardsLimit(ui64 delta = 1, EStatus status = EStatus::StatusResourceExhausted) const;
         const TChecker& NotChildren(EStatus status = EStatus::StatusInvalidParameter) const;
+        const TChecker& CanBackupTable(EStatus status = EStatus::StatusInvalidParameter) const;
         const TChecker& IsValidACL(const TString& acl, EStatus status = EStatus::StatusInvalidParameter) const;
         const TChecker& PQPartitionsLimit(ui64 delta = 1, EStatus status = EStatus::StatusResourceExhausted) const;
         const TChecker& PQReservedStorageLimit(ui64 delta = 1, EStatus status = EStatus::StatusResourceExhausted) const;
diff --git a/ydb/core/tx/schemeshard/schemeshard_path_describer.cpp b/ydb/core/tx/schemeshard/schemeshard_path_describer.cpp
index 876fe8a7296b..f919818253e4 100644
--- a/ydb/core/tx/schemeshard/schemeshard_path_describer.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard_path_describer.cpp
@@ -210,6 +210,7 @@ void TPathDescriber::DescribeTable(const TActorContext& ctx, TPathId pathId, TPa
     bool returnBackupInfo = Params.GetBackupInfo();
     bool returnBoundaries = false;
     bool returnRangeKey = true;
+    bool returnSetVal = Params.GetOptions().GetReturnSetVal();
     if (Params.HasOptions()) {
         returnConfig = Params.GetOptions().GetReturnPartitionConfig();
         returnPartitioning = Params.GetOptions().GetReturnPartitioningInfo();
@@ -360,7 +361,7 @@ void TPathDescriber::DescribeTable(const TActorContext& ctx, TPathId pathId, TPa
             Self->DescribeCdcStream(childPathId, childName, *entry->AddCdcStreams());
             break;
         case NKikimrSchemeOp::EPathTypeSequence:
-            Self->DescribeSequence(childPathId, childName, *entry->AddSequences());
+            Self->DescribeSequence(childPathId, childName, *entry->AddSequences(), returnSetVal);
             break;
         default:
             Y_FAIL_S("Unexpected table's child"
@@ -725,7 +726,7 @@ void TPathDescriber::DescribeDomainRoot(TPathElement::TPtr pathEl) {
     if (const auto& serverlessComputeResourcesMode = subDomainInfo->GetServerlessComputeResourcesMode()) {
         entry->SetServerlessComputeResourcesMode(*serverlessComputeResourcesMode);
     }
-    
+
     if (TTabletId sharedHive = subDomainInfo->GetSharedHive()) {
         entry->SetSharedHive(sharedHive.GetValue());
     }
@@ -944,11 +945,7 @@ THolder TPathDescriber::Describe
                 pathStr = path.PathString();
             }
 
-            Result.Reset(new TEvSchemeShard::TEvDescribeSchemeResultBuilder(
-                pathStr,
-                Self->TabletID(),
-                pathId
-                ));
+            Result.Reset(new TEvSchemeShard::TEvDescribeSchemeResultBuilder(pathStr, pathId));
             Result->Record.SetStatus(checks.GetStatus());
             Result->Record.SetReason(checks.GetError());
 
@@ -963,7 +960,7 @@ THolder TPathDescriber::Describe
         }
     }
 
-    Result = MakeHolder(pathStr, Self->TabletID(), pathId);
+    Result = MakeHolder(pathStr, pathId);
 
     auto descr = Result->Record.MutablePathDescription()->MutableSelf();
     FillPathDescr(descr, path);
@@ -1119,6 +1116,8 @@ void TSchemeShard::DescribeTable(const TTableInfo::TPtr tableInfo, const NScheme
             }
         }
 
+        colDescr->SetIsBuildInProgress(cinfo.IsBuildInProgress);
+
         switch (cinfo.DefaultKind) {
             case ETableColumnDefaultKind::None:
                 break;
@@ -1242,17 +1241,17 @@ void TSchemeShard::DescribeCdcStream(const TPathId& pathId, const TString& name,
 }
 
 void TSchemeShard::DescribeSequence(const TPathId& pathId, const TString& name,
-        NKikimrSchemeOp::TSequenceDescription& desc)
+        NKikimrSchemeOp::TSequenceDescription& desc, bool fillSetVal)
 {
     auto it = Sequences.find(pathId);
     Y_VERIFY_S(it != Sequences.end(), "Sequence not found"
         << " pathId# " << pathId
         << " name# " << name);
-    DescribeSequence(pathId, name, it->second, desc);
+    DescribeSequence(pathId, name, it->second, desc, fillSetVal);
 }
 
 void TSchemeShard::DescribeSequence(const TPathId& pathId, const TString& name, TSequenceInfo::TPtr info,
-        NKikimrSchemeOp::TSequenceDescription& desc)
+        NKikimrSchemeOp::TSequenceDescription& desc, bool fillSetVal)
 {
     Y_VERIFY_S(info, "Empty sequence info"
         << " pathId# " << pathId
@@ -1260,6 +1259,10 @@ void TSchemeShard::DescribeSequence(const TPathId& pathId, const TString& name,
 
     desc = info->Description;
 
+    if (!fillSetVal) {
+        desc.ClearSetVal();
+    }
+
     desc.SetName(name);
     PathIdFromPathId(pathId, desc.MutablePathId());
     desc.SetVersion(info->AlterVersion);
diff --git a/ydb/core/tx/schemeshard/schemeshard_schema.h b/ydb/core/tx/schemeshard/schemeshard_schema.h
index 929f8a4e07ae..8f6c4ef6281b 100644
--- a/ydb/core/tx/schemeshard/schemeshard_schema.h
+++ b/ydb/core/tx/schemeshard/schemeshard_schema.h
@@ -185,10 +185,11 @@ struct Schema : NIceDb::Schema {
         struct DefaultKind :    Column<9, NScheme::NTypeIds::Uint32> { using Type = ETableColumnDefaultKind; static constexpr Type Default = Type::None; };
         struct DefaultValue :   Column<10, NScheme::NTypeIds::String> {};
         struct NotNull :        Column<11, NScheme::NTypeIds::Bool> {};
+        struct IsBuildInProgress :  Column<13, NScheme::NTypeIds::Bool> {};
 
         using TKey = TableKey;
         using TColumns = TableColumns;
+            CreateVersion, DeleteVersion, Family, DefaultKind, DefaultValue, NotNull, ColTypeData, IsBuildInProgress>;
     };
 
     struct MigratedColumns : Table<55> {
@@ -206,10 +207,11 @@ struct Schema : NIceDb::Schema {
         struct DefaultKind :    Column<10, NScheme::NTypeIds::Uint32> { using Type = ETableColumnDefaultKind; static constexpr Type Default = Type::None; };
         struct DefaultValue :   Column<11, NScheme::NTypeIds::String> {};
         struct NotNull :        Column<12, NScheme::NTypeIds::Bool> {};
+        struct IsBuildInProgress :  Column<14, NScheme::NTypeIds::Bool> {};
 
         using TKey = TableKey;
         using TColumns = TableColumns;
+            CreateVersion, DeleteVersion, Family, DefaultKind, DefaultValue, NotNull, ColTypeData, IsBuildInProgress>;
     };
 
     struct ColumnAlters : Table<13> {
@@ -225,10 +227,11 @@ struct Schema : NIceDb::Schema {
         struct DefaultKind :    Column<9, NScheme::NTypeIds::Uint32> { using Type = ETableColumnDefaultKind; static constexpr Type Default = Type::None; };
         struct DefaultValue :   Column<10, NScheme::NTypeIds::String> {};
         struct NotNull :        Column<11, NScheme::NTypeIds::Bool> {};
+        struct IsBuildInProgress :  Column<13, NScheme::NTypeIds::Bool> {};
 
         using TKey = TableKey;
         using TColumns = TableColumns;
+            CreateVersion, DeleteVersion, Family, DefaultKind, DefaultValue, NotNull, ColTypeData, IsBuildInProgress>;
     };
 
     struct MigratedColumnAlters : Table<63> {
@@ -246,10 +249,11 @@ struct Schema : NIceDb::Schema {
         struct DefaultKind :    Column<10, NScheme::NTypeIds::Uint32> { using Type = ETableColumnDefaultKind; static constexpr Type Default = Type::None; };
         struct DefaultValue :   Column<11, NScheme::NTypeIds::String> {};
         struct NotNull :        Column<12, NScheme::NTypeIds::Bool> {};
+        struct IsBuildInProgress :  Column<14, NScheme::NTypeIds::Bool> {};
 
         using TKey = TableKey;
         using TColumns = TableColumns;
+            CreateVersion, DeleteVersion, Family, DefaultKind, DefaultValue, NotNull, ColTypeData, IsBuildInProgress>;
     };
 
     struct Shards : Table<7> {
diff --git a/ydb/core/tx/schemeshard/schemeshard_tx_infly.h b/ydb/core/tx/schemeshard/schemeshard_tx_infly.h
index 849f91a9dee0..70c2728a5371 100644
--- a/ydb/core/tx/schemeshard/schemeshard_tx_infly.h
+++ b/ydb/core/tx/schemeshard/schemeshard_tx_infly.h
@@ -129,6 +129,7 @@ struct TTxState {
         item(TxCreateView, 83) \
         item(TxAlterView, 84) \
         item(TxDropView, 85) \
+        item(TxCopySequence, 86) \
 
     // TX_STATE_TYPE_ENUM
 
@@ -193,6 +194,8 @@ struct TTxState {
         item(WaitShadowPathPublication, 136, "") \
         item(DeletePathBarrier, 137, "") \
         item(SyncHive, 138, "") \
+        item(CopyTableBarrier, 139, "") \
+        item(ProposedCopySequence, 140, "") \
         item(Done, 240, "") \
         item(Aborted, 250, "")
 
@@ -342,6 +345,7 @@ struct TTxState {
         case TxCreateExternalTable:
         case TxCreateExternalDataSource:
         case TxCreateView:
+        case TxCopySequence:
             return true;
         case TxInitializeBuildIndex: //this is more like alter
         case TxCreateCdcStreamAtTable:
@@ -472,6 +476,7 @@ struct TTxState {
         case TxCreateExternalTable:
         case TxCreateExternalDataSource:
         case TxCreateView:
+        case TxCopySequence:
             return false;
         case TxAlterPQGroup:
         case TxAlterTable:
@@ -559,6 +564,7 @@ struct TTxState {
         case TxCreateCdcStreamAtTable:
         case TxCreateCdcStreamAtTableWithInitialScan:
         case TxCreateSequence:
+        case TxCopySequence:
         case TxCreateReplication:
         case TxCreateBlobDepot:
         case TxInitializeBuildIndex:
diff --git a/ydb/core/tx/schemeshard/schemeshard_validate_ttl.cpp b/ydb/core/tx/schemeshard/schemeshard_validate_ttl.cpp
index 40a792d0f484..cc447f07015b 100644
--- a/ydb/core/tx/schemeshard/schemeshard_validate_ttl.cpp
+++ b/ydb/core/tx/schemeshard/schemeshard_validate_ttl.cpp
@@ -1,60 +1,23 @@
 #include "schemeshard_info_types.h"
+
+#include "common/validation.h"
 #include "olap/columns/schema.h"
+
 #include 
 
 namespace NKikimr {
 namespace NSchemeShard {
 
-// Helper accessors for OLTP and OLAP tables that use different TColumn's
 namespace {
-    inline
-    bool IsDropped(const TOlapColumnsDescription::TColumn& col) {
-        Y_UNUSED(col);
-        return false;
-    }
-
-    inline
-    ui32 GetType(const TOlapColumnsDescription::TColumn& col) {
-        Y_ABORT_UNLESS(col.GetType().GetTypeId() != NScheme::NTypeIds::Pg, "pg types are not supported");
-        return col.GetType().GetTypeId();
-    }
-
-    inline
-    bool IsDropped(const TTableInfo::TColumn& col) {
-        return col.IsDropped();
-    }
+static inline bool IsDropped(const TTableInfo::TColumn& col) {
+    return col.IsDropped();
+}
 
-    inline
-    ui32 GetType(const TTableInfo::TColumn& col) {
-        Y_ABORT_UNLESS(col.PType.GetTypeId() != NScheme::NTypeIds::Pg, "pg types are not supported");
-        return col.PType.GetTypeId();
-    }
+static inline ui32 GetType(const TTableInfo::TColumn& col) {
+    Y_ABORT_UNLESS(col.PType.GetTypeId() != NScheme::NTypeIds::Pg, "pg types are not supported");
+    return col.PType.GetTypeId();
 }
 
-template 
-bool ValidateUnit(const TColumn& column, NKikimrSchemeOp::TTTLSettings::EUnit unit, TString& errStr) {
-    switch (GetType(column)) {
-    case NScheme::NTypeIds::Date:
-    case NScheme::NTypeIds::Datetime:
-    case NScheme::NTypeIds::Timestamp:
-        if (unit != NKikimrSchemeOp::TTTLSettings::UNIT_AUTO) {
-            errStr = "To enable TTL on date type column 'DateTypeColumnModeSettings' should be specified";
-            return false;
-        }
-        break;
-    case NScheme::NTypeIds::Uint32:
-    case NScheme::NTypeIds::Uint64:
-    case NScheme::NTypeIds::DyNumber:
-        if (unit == NKikimrSchemeOp::TTTLSettings::UNIT_AUTO) {
-            errStr = "To enable TTL on integral type column 'ValueSinceUnixEpochModeSettings' should be specified";
-            return false;
-        }
-        break;
-    default:
-        errStr = "Unsupported column type";
-        return false;
-    }
-    return true;
 }
 
 bool ValidateTtlSettings(const NKikimrSchemeOp::TTTLSettings& ttl,
@@ -92,7 +55,7 @@ bool ValidateTtlSettings(const NKikimrSchemeOp::TTTLSettings& ttl,
         }
 
         const auto unit = enabled.GetColumnUnit();
-        if (!ValidateUnit(*column, unit, errStr)) {
+        if (!NValidation::TTTLValidator::ValidateUnit(GetType(*column), unit, errStr)) {
             return false;
         }
 
@@ -117,75 +80,4 @@ bool ValidateTtlSettings(const NKikimrSchemeOp::TTTLSettings& ttl,
     return true;
 }
 
-static bool ValidateColumnTableTtl(const NKikimrSchemeOp::TColumnDataLifeCycle::TTtl& ttl,
-    const THashMap& sourceColumns,
-    const THashMap& alterColumns,
-    const THashMap& colName2Id,
-    IErrorCollector& errors)
-{
-    const TString colName = ttl.GetColumnName();
-
-    auto it = colName2Id.find(colName);
-    if (it == colName2Id.end()) {
-        errors.AddError(Sprintf("Cannot enable TTL on unknown column: '%s'", colName.data()));
-        return false;
-    }
-
-    const TOlapColumnsDescription::TColumn* column = nullptr;
-    const ui32 colId = it->second;
-    if (alterColumns.contains(colId)) {
-        column = &alterColumns.at(colId);
-    } else if (sourceColumns.contains(colId)) {
-        column = &sourceColumns.at(colId);
-    } else {
-        Y_ABORT_UNLESS("Unknown column");
-    }
-
-    if (IsDropped(*column)) {
-        errors.AddError(Sprintf("Cannot enable TTL on dropped column: '%s'", colName.data()));
-        return false;
-    }
-
-    if (ttl.HasExpireAfterBytes()) {
-        errors.AddError("TTL with eviction by size is not supported yet");
-        return false;
-    }
-
-    if (!ttl.HasExpireAfterSeconds()) {
-        errors.AddError("TTL without eviction time");
-        return false;
-    }
-
-    auto unit = ttl.GetColumnUnit();
-
-    switch (GetType(*column)) {
-        case NScheme::NTypeIds::DyNumber:
-            errors.AddError("Unsupported column type for TTL in column tables");
-            return false;
-        default:
-            break;
-    }
-
-    TString errStr;
-    if (!ValidateUnit(*column, unit, errStr)) {
-        errors.AddError(errStr);
-        return false;
-    }
-    return true;
-}
-
-bool TOlapSchema::ValidateTtlSettings(const NKikimrSchemeOp::TColumnDataLifeCycle& ttl, IErrorCollector& errors) const {
-    using TTtlProto = NKikimrSchemeOp::TColumnDataLifeCycle;
-
-    switch (ttl.GetStatusCase()) {
-        case TTtlProto::kEnabled:
-            return ValidateColumnTableTtl(ttl.GetEnabled(), {}, Columns.GetColumns(), Columns.GetColumnsByName(), errors);
-        case TTtlProto::kDisabled:
-        default:
-            break;
-    }
-
-    return true;
-}
-
 }}
diff --git a/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.darwin-arm64.txt
index eea28d51c324..0c0949ef886f 100644
--- a/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.darwin-arm64.txt
@@ -30,8 +30,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_auditsettings PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_auditsettings PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_auditsettings/ut_auditsettings.cpp
@@ -61,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.darwin-x86_64.txt
index d6cb0d84152b..0eb8a4d7985d 100644
--- a/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.darwin-x86_64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_auditsettings PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_auditsettings PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_auditsettings/ut_auditsettings.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.linux-aarch64.txt
index d89d67228255..fd285a877183 100644
--- a/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.linux-aarch64.txt
@@ -33,9 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_auditsettings PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_auditsettings PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_auditsettings/ut_auditsettings.cpp
@@ -65,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.linux-x86_64.txt
index b152b4143daa..d2cce26df866 100644
--- a/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.linux-x86_64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_auditsettings PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_auditsettings PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_auditsettings/ut_auditsettings.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.windows-x86_64.txt
index deae92b8dddc..b7830941e110 100644
--- a/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_auditsettings/CMakeLists.windows-x86_64.txt
@@ -55,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.darwin-arm64.txt
new file mode 100644
index 000000000000..6b3d24565107
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.darwin-arm64.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-core-tx-schemeshard-ut_background_cleaning)
+target_compile_options(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_background_cleaning PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  cpp-testing-unittest_main
+  core-tx-schemeshard
+  library-cpp-getopt
+  cpp-regex-pcre
+  core-testlib-default
+  ydb-core-tx
+  tx-schemeshard-ut_helpers
+  core-wrappers-ut_helpers
+  ydb-core-base
+)
+target_link_options(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  -Wl,-platform_version,macos,11.0,11.0
+  -fPIC
+  -fPIC
+)
+target_sources(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_background_cleaning/ut_background_cleaning.cpp
+)
+set_property(
+  TARGET
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  SPLIT_FACTOR
+  3
+)
+add_yunittest(
+  NAME
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  TEST_TARGET
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  TEST_ARG
+  --print-before-suite
+  --print-before-test
+  --fork-tests
+  --print-times
+  --show-fails
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  LABELS
+  MEDIUM
+  $FILTER_ONLY_TEST_TAGS
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  PROCESSORS
+  1
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  TIMEOUT
+  600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_background_cleaning
+  system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_background_cleaning)
diff --git a/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 000000000000..61de724ca733
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,83 @@
+
+# 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-core-tx-schemeshard-ut_background_cleaning)
+target_compile_options(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_background_cleaning PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  library-cpp-cpuid_check
+  cpp-testing-unittest_main
+  core-tx-schemeshard
+  library-cpp-getopt
+  cpp-regex-pcre
+  core-testlib-default
+  ydb-core-tx
+  tx-schemeshard-ut_helpers
+  core-wrappers-ut_helpers
+  ydb-core-base
+)
+target_link_options(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  -Wl,-platform_version,macos,11.0,11.0
+  -fPIC
+  -fPIC
+)
+target_sources(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_background_cleaning/ut_background_cleaning.cpp
+)
+set_property(
+  TARGET
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  SPLIT_FACTOR
+  3
+)
+add_yunittest(
+  NAME
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  TEST_TARGET
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  TEST_ARG
+  --print-before-suite
+  --print-before-test
+  --fork-tests
+  --print-times
+  --show-fails
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  LABELS
+  MEDIUM
+  $FILTER_ONLY_TEST_TAGS
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  PROCESSORS
+  1
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  TIMEOUT
+  600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_background_cleaning
+  system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_background_cleaning)
diff --git a/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.linux-aarch64.txt
new file mode 100644
index 000000000000..3f65843d279b
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,85 @@
+
+# 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-core-tx-schemeshard-ut_background_cleaning)
+target_compile_options(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_background_cleaning PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  cpp-testing-unittest_main
+  core-tx-schemeshard
+  library-cpp-getopt
+  cpp-regex-pcre
+  core-testlib-default
+  ydb-core-tx
+  tx-schemeshard-ut_helpers
+  core-wrappers-ut_helpers
+  ydb-core-base
+)
+target_link_options(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  -ldl
+  -lrt
+  -Wl,--no-as-needed
+  -fPIC
+  -fPIC
+)
+target_sources(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_background_cleaning/ut_background_cleaning.cpp
+)
+set_property(
+  TARGET
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  SPLIT_FACTOR
+  3
+)
+add_yunittest(
+  NAME
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  TEST_TARGET
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  TEST_ARG
+  --print-before-suite
+  --print-before-test
+  --fork-tests
+  --print-times
+  --show-fails
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  LABELS
+  MEDIUM
+  $FILTER_ONLY_TEST_TAGS
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  PROCESSORS
+  1
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  TIMEOUT
+  600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_background_cleaning
+  cpp-malloc-jemalloc
+)
+vcs_info(ydb-core-tx-schemeshard-ut_background_cleaning)
diff --git a/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.linux-x86_64.txt
new file mode 100644
index 000000000000..a826fa852bf2
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,87 @@
+
+# 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-core-tx-schemeshard-ut_background_cleaning)
+target_compile_options(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_background_cleaning PUBLIC
+  contrib-libs-linux-headers
+  contrib-libs-cxxsupp
+  yutil
+  library-cpp-cpuid_check
+  cpp-testing-unittest_main
+  core-tx-schemeshard
+  library-cpp-getopt
+  cpp-regex-pcre
+  core-testlib-default
+  ydb-core-tx
+  tx-schemeshard-ut_helpers
+  core-wrappers-ut_helpers
+  ydb-core-base
+)
+target_link_options(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  -ldl
+  -lrt
+  -Wl,--no-as-needed
+  -fPIC
+  -fPIC
+)
+target_sources(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_background_cleaning/ut_background_cleaning.cpp
+)
+set_property(
+  TARGET
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  SPLIT_FACTOR
+  3
+)
+add_yunittest(
+  NAME
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  TEST_TARGET
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  TEST_ARG
+  --print-before-suite
+  --print-before-test
+  --fork-tests
+  --print-times
+  --show-fails
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  LABELS
+  MEDIUM
+  $FILTER_ONLY_TEST_TAGS
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  PROCESSORS
+  1
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  TIMEOUT
+  600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_background_cleaning
+  cpp-malloc-tcmalloc
+  libs-tcmalloc-no_percpu_cache
+)
+vcs_info(ydb-core-tx-schemeshard-ut_background_cleaning)
diff --git a/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.txt b/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.txt
new file mode 100644
index 000000000000..d863ebd18067
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+# 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 "x86_64" AND NOT HAVE_CUDA)
+  include(CMakeLists.linux-x86_64.txt)
+elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
+  include(CMakeLists.darwin-arm64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+  include(CMakeLists.windows-x86_64.txt)
+endif()
diff --git a/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.windows-x86_64.txt
new file mode 100644
index 000000000000..b6eda18277f3
--- /dev/null
+++ b/ydb/core/tx/schemeshard/ut_background_cleaning/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,78 @@
+
+# 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-core-tx-schemeshard-ut_background_cleaning)
+target_compile_options(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  -DUSE_CURRENT_UDF_ABI_VERSION
+)
+target_include_directories(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard
+)
+target_link_libraries(ydb-core-tx-schemeshard-ut_background_cleaning PUBLIC
+  contrib-libs-cxxsupp
+  yutil
+  library-cpp-cpuid_check
+  cpp-testing-unittest_main
+  core-tx-schemeshard
+  library-cpp-getopt
+  cpp-regex-pcre
+  core-testlib-default
+  ydb-core-tx
+  tx-schemeshard-ut_helpers
+  core-wrappers-ut_helpers
+  ydb-core-base
+)
+target_sources(ydb-core-tx-schemeshard-ut_background_cleaning PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_background_cleaning/ut_background_cleaning.cpp
+)
+set_property(
+  TARGET
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  SPLIT_FACTOR
+  3
+)
+add_yunittest(
+  NAME
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  TEST_TARGET
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  TEST_ARG
+  --print-before-suite
+  --print-before-test
+  --fork-tests
+  --print-times
+  --show-fails
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  LABELS
+  MEDIUM
+  $FILTER_ONLY_TEST_TAGS
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  PROCESSORS
+  1
+)
+set_yunittest_property(
+  TEST
+  ydb-core-tx-schemeshard-ut_background_cleaning
+  PROPERTY
+  TIMEOUT
+  600
+)
+target_allocator(ydb-core-tx-schemeshard-ut_background_cleaning
+  system_allocator
+)
+vcs_info(ydb-core-tx-schemeshard-ut_background_cleaning)
diff --git a/ydb/core/tx/schemeshard/ut_backup/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_backup/CMakeLists.darwin-arm64.txt
index 10a744410ce2..4e4c55a86cda 100644
--- a/ydb/core/tx/schemeshard/ut_backup/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_backup/CMakeLists.darwin-arm64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_backup PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_backup PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_backup/ut_backup.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_backup/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_backup/CMakeLists.darwin-x86_64.txt
index c0e416f9e259..e19a937d7807 100644
--- a/ydb/core/tx/schemeshard/ut_backup/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_backup/CMakeLists.darwin-x86_64.txt
@@ -33,8 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_backup PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_backup PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_backup/ut_backup.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_backup/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_backup/CMakeLists.linux-aarch64.txt
index cfd13a84a12f..a82fe047d045 100644
--- a/ydb/core/tx/schemeshard/ut_backup/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_backup/CMakeLists.linux-aarch64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_backup PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_backup PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_backup/ut_backup.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_backup/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_backup/CMakeLists.linux-x86_64.txt
index cb86ed4385aa..35110403cd9d 100644
--- a/ydb/core/tx/schemeshard/ut_backup/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_backup/CMakeLists.linux-x86_64.txt
@@ -36,9 +36,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_backup PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_backup PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_backup/ut_backup.cpp
@@ -68,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_backup/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_backup/CMakeLists.windows-x86_64.txt
index ddc5251d828d..167e38b1e535 100644
--- a/ydb/core/tx/schemeshard/ut_backup/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_backup/CMakeLists.windows-x86_64.txt
@@ -46,6 +46,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_backup/ut_backup.cpp b/ydb/core/tx/schemeshard/ut_backup/ut_backup.cpp
index 0327648b86d3..1338f2d8f42d 100644
--- a/ydb/core/tx/schemeshard/ut_backup/ut_backup.cpp
+++ b/ydb/core/tx/schemeshard/ut_backup/ut_backup.cpp
@@ -100,6 +100,30 @@ Y_UNIT_TEST_SUITE(TBackupTests) {
         });
     }
 
+    Y_UNIT_TEST_WITH_COMPRESSION(BackupUuidColumn) {
+        TTestBasicRuntime runtime;
+
+        Backup(runtime, ToString(Codec), R"(
+            Name: "Table"
+            Columns { Name: "key" Type: "Uint32" }
+            Columns { Name: "value" Type: "Uuid" }
+            KeyColumnNames: ["key"]
+        )", [](TTestBasicRuntime& runtime) {
+            NKikimrMiniKQL::TResult result;
+            TString error;
+            NKikimrProto::EReplyStatus status = LocalMiniKQL(runtime, TTestTxConfig::FakeHiveTablets, Sprintf(R"(
+                (
+                    (let key '( '('key (Uint32 '%d) ) ) )
+                    (let row '( '('value (Uuid '"%s") ) ) )
+                    (return (AsList (UpdateRow '__user__%s key row) ))
+                )
+            )", 1, "0000111122223333", "Table"), result, error);
+
+            UNIT_ASSERT_VALUES_EQUAL_C(status, NKikimrProto::EReplyStatus::OK, error);
+            UNIT_ASSERT_VALUES_EQUAL(error, "");
+        });
+    }
+
     template
     void ShouldSucceedOnLargeData(ui32 minWriteBatchSize, const std::pair& expectedResult) {
         TTestBasicRuntime runtime;
diff --git a/ydb/core/tx/schemeshard/ut_base/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_base/CMakeLists.darwin-arm64.txt
index 7dab7ff10e53..7c214de06136 100644
--- a/ydb/core/tx/schemeshard/ut_base/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_base/CMakeLists.darwin-arm64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_base PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_base PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_base/ut_base.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_base/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_base/CMakeLists.darwin-x86_64.txt
index 5f7f530d9039..185c6f616b60 100644
--- a/ydb/core/tx/schemeshard/ut_base/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_base/CMakeLists.darwin-x86_64.txt
@@ -33,8 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_base PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_base PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_base/ut_base.cpp
@@ -67,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_base/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_base/CMakeLists.linux-aarch64.txt
index 8e895f64fc79..a197341e90c6 100644
--- a/ydb/core/tx/schemeshard/ut_base/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_base/CMakeLists.linux-aarch64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_base PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_base PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_base/ut_base.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_base/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_base/CMakeLists.linux-x86_64.txt
index 321ed8352ef9..3083bd62524d 100644
--- a/ydb/core/tx/schemeshard/ut_base/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_base/CMakeLists.linux-x86_64.txt
@@ -36,9 +36,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_base PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_base PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_base/ut_base.cpp
@@ -71,6 +68,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_base/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_base/CMakeLists.windows-x86_64.txt
index 88db1730ccd7..160da0dd8214 100644
--- a/ydb/core/tx/schemeshard/ut_base/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_base/CMakeLists.windows-x86_64.txt
@@ -60,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.darwin-arm64.txt
index cbfec446cb82..abfff533c0d8 100644
--- a/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_base_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_base_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_base_reboots/ut_base_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.darwin-x86_64.txt
index b2b2b95f9183..e5b4d7615502 100644
--- a/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_base_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_base_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_base_reboots/ut_base_reboots.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.linux-aarch64.txt
index 1d3fa15ed159..c38ea608e67b 100644
--- a/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_base_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_base_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_base_reboots/ut_base_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.linux-x86_64.txt
index 96c7a12d54cb..6080d173ddef 100644
--- a/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_base_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_base_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_base_reboots/ut_base_reboots.cpp
@@ -68,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.windows-x86_64.txt
index 4280ac7a17a7..2f748c4ad932 100644
--- a/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_base_reboots/CMakeLists.windows-x86_64.txt
@@ -57,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.darwin-arm64.txt
index 5182c7ddf7b8..118eb24c2968 100644
--- a/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_bsvolume PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_bsvolume PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_bsvolume/ut_bsvolume.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.darwin-x86_64.txt
index e977234deadc..4b88124aed6f 100644
--- a/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_bsvolume PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_bsvolume PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_bsvolume/ut_bsvolume.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.linux-aarch64.txt
index 03f4a2753ed4..4331151222ef 100644
--- a/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_bsvolume PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_bsvolume PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_bsvolume/ut_bsvolume.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.linux-x86_64.txt
index 8fa4eaba593f..f5b2dd03ba48 100644
--- a/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_bsvolume PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_bsvolume PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_bsvolume/ut_bsvolume.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.windows-x86_64.txt
index 3e057cdb9139..9dceb899b8a2 100644
--- a/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_bsvolume/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.darwin-arm64.txt
index f789a7200e3e..463fd0af688c 100644
--- a/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_bsvolume_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_bsvolume_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_bsvolume_reboots/ut_bsvolume_reboots.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.darwin-x86_64.txt
index 0e2f73a0462d..de0f2e1fe9a6 100644
--- a/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_bsvolume_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_bsvolume_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_bsvolume_reboots/ut_bsvolume_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.linux-aarch64.txt
index e9af99390155..f9c419a4c924 100644
--- a/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_bsvolume_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_bsvolume_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_bsvolume_reboots/ut_bsvolume_reboots.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.linux-x86_64.txt
index 3c6eb5007188..2f9ac70daa4c 100644
--- a/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_bsvolume_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_bsvolume_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_bsvolume_reboots/ut_bsvolume_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.windows-x86_64.txt
index 72b6ce4e08ab..f1a80929c2b1 100644
--- a/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_bsvolume_reboots/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.darwin-arm64.txt
index 7c52b7fe73c9..79efcc7a410f 100644
--- a/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.darwin-arm64.txt
@@ -27,8 +27,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_cdc_stream PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_cdc_stream PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_cdc_stream/ut_cdc_stream.cpp
@@ -58,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.darwin-x86_64.txt
index 5dda4e327e93..77e83655a15e 100644
--- a/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.darwin-x86_64.txt
@@ -28,8 +28,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_cdc_stream PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_cdc_stream PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_cdc_stream/ut_cdc_stream.cpp
@@ -59,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.linux-aarch64.txt
index d5b175938ae7..39d786783182 100644
--- a/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.linux-aarch64.txt
@@ -30,9 +30,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_cdc_stream PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_cdc_stream PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_cdc_stream/ut_cdc_stream.cpp
@@ -62,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.linux-x86_64.txt
index 02d285d75780..c9a3a90dde7a 100644
--- a/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.linux-x86_64.txt
@@ -31,9 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_cdc_stream PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_cdc_stream PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_cdc_stream/ut_cdc_stream.cpp
@@ -63,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.windows-x86_64.txt
index 6d5148f44614..224dfdc0870b 100644
--- a/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_cdc_stream/CMakeLists.windows-x86_64.txt
@@ -52,6 +52,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.darwin-arm64.txt
index b7e2d76dcd34..510b86e08521 100644
--- a/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.darwin-arm64.txt
@@ -27,8 +27,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_cdc_stream_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_cdc_stream_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/ut_cdc_stream_reboots.cpp
@@ -58,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.darwin-x86_64.txt
index a6a0ffefaf9e..04ee484e865a 100644
--- a/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.darwin-x86_64.txt
@@ -28,8 +28,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_cdc_stream_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_cdc_stream_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/ut_cdc_stream_reboots.cpp
@@ -59,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.linux-aarch64.txt
index 0bd0ddcee68d..3cb9e06a643e 100644
--- a/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.linux-aarch64.txt
@@ -30,9 +30,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_cdc_stream_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_cdc_stream_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/ut_cdc_stream_reboots.cpp
@@ -62,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.linux-x86_64.txt
index 5d8315b40829..689ce7022f71 100644
--- a/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.linux-x86_64.txt
@@ -31,9 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_cdc_stream_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_cdc_stream_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/ut_cdc_stream_reboots.cpp
@@ -63,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.windows-x86_64.txt
index e34c578449db..02fdaaaa766c 100644
--- a/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/CMakeLists.windows-x86_64.txt
@@ -52,6 +52,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/ut_cdc_stream_reboots.cpp b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/ut_cdc_stream_reboots.cpp
index 7310f0baeef1..6bf632ed83c8 100644
--- a/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/ut_cdc_stream_reboots.cpp
+++ b/ydb/core/tx/schemeshard/ut_cdc_stream_reboots/ut_cdc_stream_reboots.cpp
@@ -518,68 +518,77 @@ Y_UNIT_TEST_SUITE(TCdcStreamWithRebootsTests) {
         });
     }
 
+    bool CheckRegistrations(TTestActorRuntime& runtime, NKikimrPQ::TMessageGroupInfo::EState expectedState,
+            const google::protobuf::RepeatedPtrField& tablePartitions,
+            const google::protobuf::RepeatedPtrField& topicPartitions)
+    {
+        for (const auto& topicPartition : topicPartitions) {
+            auto request = MakeHolder();
+            {
+                auto& record = *request->Record.MutablePartitionRequest();
+                record.SetPartition(topicPartition.GetPartitionId());
+                auto& cmd = *record.MutableCmdGetMaxSeqNo();
+                for (const auto& tablePartition : tablePartitions) {
+                    cmd.AddSourceId(NPQ::NSourceIdEncoding::EncodeSimple(ToString(tablePartition.GetDatashardId())));
+                }
+            }
+
+            const auto& sender = runtime.AllocateEdgeActor();
+            ForwardToTablet(runtime, topicPartition.GetTabletId(), sender, request.Release());
+
+            auto response = runtime.GrabEdgeEvent(sender);
+            {
+                const auto& record = response->Get()->Record.GetPartitionResponse();
+                const auto& result = record.GetCmdGetMaxSeqNoResult().GetSourceIdInfo();
+
+                UNIT_ASSERT_VALUES_EQUAL(result.size(), tablePartitions.size());
+                for (const auto& item: result) {
+                    if (item.GetState() != expectedState) {
+                        return false;
+                    }
+                }
+            }
+        }
+
+        return true;
+    }
+
     struct TItem {
         TString Path;
-        ui32 nPartitions;
+        ui32 ExpectedPartitionCount;
     };
 
-    void CheckRegistrations(TTestActorRuntime& runtime, const TItem& table, const TItem& topic) {
+    void CheckRegistrations(TTestActorRuntime& runtime, const TItem& table, const TItem& topic,
+            const google::protobuf::RepeatedPtrField* initialTablePartitions = nullptr)
+    {
         auto tableDesc = DescribePath(runtime, table.Path, true, true);
         const auto& tablePartitions = tableDesc.GetPathDescription().GetTablePartitions();
-        UNIT_ASSERT_VALUES_EQUAL(tablePartitions.size(), table.nPartitions);
+        UNIT_ASSERT_VALUES_EQUAL(tablePartitions.size(), table.ExpectedPartitionCount);
 
         auto topicDesc = DescribePrivatePath(runtime, topic.Path);
         const auto& topicPartitions = topicDesc.GetPathDescription().GetPersQueueGroup().GetPartitions();
-        UNIT_ASSERT_VALUES_EQUAL(topicPartitions.size(), topic.nPartitions);
+        UNIT_ASSERT_VALUES_EQUAL(topicPartitions.size(), topic.ExpectedPartitionCount);
 
         while (true) {
             runtime.SimulateSleep(TDuration::Seconds(1));
-            bool done = true;
-
-            for (ui32 i = 0; i < topic.nPartitions; ++i) {
-                auto request = MakeHolder();
-                {
-                    auto& record = *request->Record.MutablePartitionRequest();
-                    record.SetPartition(topicPartitions[i].GetPartitionId());
-                    auto& cmd = *record.MutableCmdGetMaxSeqNo();
-                    for (const auto& tablePartition : tablePartitions) {
-                        cmd.AddSourceId(NPQ::NSourceIdEncoding::EncodeSimple(ToString(tablePartition.GetDatashardId())));
-                    }
-                }
-
-                const auto& sender = runtime.AllocateEdgeActor();
-                ForwardToTablet(runtime, topicPartitions[i].GetTabletId(), sender, request.Release());
-
-                auto response = runtime.GrabEdgeEvent(sender);
-                {
-                    const auto& record = response->Get()->Record.GetPartitionResponse();
-                    const auto& result = record.GetCmdGetMaxSeqNoResult().GetSourceIdInfo();
-
-                    UNIT_ASSERT_VALUES_EQUAL(result.size(), table.nPartitions);
-                    for (const auto& item: result) {
-                        done &= item.GetState() == NKikimrPQ::TMessageGroupInfo::STATE_REGISTERED;
-                        if (!done) {
-                            break;
-                        }
-                    }
-                }
-
-                if (!done) {
-                    break;
-                }
-            }
-
-            if (done) {
+            if (CheckRegistrations(runtime, NKikimrPQ::TMessageGroupInfo::STATE_REGISTERED, tablePartitions, topicPartitions)) {
                 break;
             }
         }
+
+        if (initialTablePartitions) {
+            UNIT_ASSERT(CheckRegistrations(runtime, NKikimrPQ::TMessageGroupInfo::STATE_UNKNOWN, *initialTablePartitions, topicPartitions));
+        }
     }
 
-    Y_UNIT_TEST_WITH_REBOOTS(SplitTable) {
+    template 
+    void SplitTable(const TString& cdcStreamDesc) {
         T t;
         t.Run([&](TTestActorRuntime& runtime, bool& activeZone) {
+            NKikimrScheme::TEvDescribeSchemeResult initialTableDesc;
             {
                 TInactiveZone inactive(activeZone);
+
                 TestCreateTable(runtime, ++t.TxId, "/MyRoot", R"(
                     Name: "Table"
                     Columns { Name: "key" Type: "Uint32" }
@@ -587,15 +596,9 @@ Y_UNIT_TEST_SUITE(TCdcStreamWithRebootsTests) {
                     KeyColumnNames: ["key"]
                 )");
                 t.TestEnv->TestWaitNotification(runtime, t.TxId);
+                initialTableDesc = DescribePath(runtime, "/MyRoot/Table", true, true);
 
-                TestCreateCdcStream(runtime, ++t.TxId, "/MyRoot", R"(
-                    TableName: "Table"
-                    StreamDescription {
-                      Name: "Stream"
-                      Mode: ECdcStreamModeKeysOnly
-                      Format: ECdcStreamFormatProto
-                    }
-                )");
+                TestCreateCdcStream(runtime, ++t.TxId, "/MyRoot", cdcStreamDesc);
                 t.TestEnv->TestWaitNotification(runtime, t.TxId);
             }
 
@@ -613,16 +616,43 @@ Y_UNIT_TEST_SUITE(TCdcStreamWithRebootsTests) {
                 TInactiveZone inactive(activeZone);
                 UploadRows(runtime, "/MyRoot/Table", 0, {1}, {2}, {1});
                 UploadRows(runtime, "/MyRoot/Table", 1, {1}, {2}, {Max()});
-                CheckRegistrations(runtime, {"/MyRoot/Table", 2}, {"/MyRoot/Table/Stream/streamImpl", 1});
+                CheckRegistrations(runtime, {"/MyRoot/Table", 2}, {"/MyRoot/Table/Stream/streamImpl", 1},
+                    &initialTableDesc.GetPathDescription().GetTablePartitions());
             }
         });
     }
 
-    Y_UNIT_TEST_WITH_REBOOTS(MergeTable) {
+    Y_UNIT_TEST_WITH_REBOOTS(SplitTable) {
+        SplitTable(R"(
+            TableName: "Table"
+            StreamDescription {
+              Name: "Stream"
+              Mode: ECdcStreamModeKeysOnly
+              Format: ECdcStreamFormatProto
+            }
+        )");
+    }
+
+    Y_UNIT_TEST_WITH_REBOOTS(SplitTableResolvedTimestamps) {
+        SplitTable(R"(
+            TableName: "Table"
+            StreamDescription {
+              Name: "Stream"
+              Mode: ECdcStreamModeKeysOnly
+              Format: ECdcStreamFormatProto
+              ResolvedTimestampsIntervalMs: 1000
+            }
+        )");
+    }
+
+    template 
+    void MergeTable(const TString& cdcStreamDesc) {
         T t;
         t.Run([&](TTestActorRuntime& runtime, bool& activeZone) {
+            NKikimrScheme::TEvDescribeSchemeResult initialTableDesc;
             {
                 TInactiveZone inactive(activeZone);
+
                 TestCreateTable(runtime, ++t.TxId, "/MyRoot", R"(
                     Name: "Table"
                     Columns { Name: "key" Type: "Uint32" }
@@ -636,15 +666,9 @@ Y_UNIT_TEST_SUITE(TCdcStreamWithRebootsTests) {
                     }
                 )");
                 t.TestEnv->TestWaitNotification(runtime, t.TxId);
+                initialTableDesc = DescribePath(runtime, "/MyRoot/Table", true, true);
 
-                TestCreateCdcStream(runtime, ++t.TxId, "/MyRoot", R"(
-                    TableName: "Table"
-                    StreamDescription {
-                      Name: "Stream"
-                      Mode: ECdcStreamModeKeysOnly
-                      Format: ECdcStreamFormatProto
-                    }
-                )");
+                TestCreateCdcStream(runtime, ++t.TxId, "/MyRoot", cdcStreamDesc);
                 t.TestEnv->TestWaitNotification(runtime, t.TxId);
             }
 
@@ -657,11 +681,35 @@ Y_UNIT_TEST_SUITE(TCdcStreamWithRebootsTests) {
             {
                 TInactiveZone inactive(activeZone);
                 UploadRows(runtime, "/MyRoot/Table", 0, {1}, {2}, {1, Max()});
-                CheckRegistrations(runtime, {"/MyRoot/Table", 1}, {"/MyRoot/Table/Stream/streamImpl", 2});
+                CheckRegistrations(runtime, {"/MyRoot/Table", 1}, {"/MyRoot/Table/Stream/streamImpl", 2},
+                    &initialTableDesc.GetPathDescription().GetTablePartitions());
             }
         });
     }
 
+    Y_UNIT_TEST_WITH_REBOOTS(MergeTable) {
+        MergeTable(R"(
+            TableName: "Table"
+            StreamDescription {
+              Name: "Stream"
+              Mode: ECdcStreamModeKeysOnly
+              Format: ECdcStreamFormatProto
+            }
+        )");
+    }
+
+    Y_UNIT_TEST_WITH_REBOOTS(MergeTableResolvedTimestamps) {
+        MergeTable(R"(
+            TableName: "Table"
+            StreamDescription {
+              Name: "Stream"
+              Mode: ECdcStreamModeKeysOnly
+              Format: ECdcStreamFormatProto
+              ResolvedTimestampsIntervalMs: 1000
+            }
+        )");
+    }
+
     Y_UNIT_TEST_WITH_REBOOTS(RacySplitTableAndCreateStream) {
         T t;
         t.Run([&](TTestActorRuntime& runtime, bool& activeZone) {
diff --git a/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.darwin-arm64.txt
index 704be592363f..6f3487abfb65 100644
--- a/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_column_build PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_column_build PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_column_build/ut_column_build.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.darwin-x86_64.txt
index cbb1cb24fe7d..9249f206a56f 100644
--- a/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_column_build PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_column_build PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_column_build/ut_column_build.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.linux-aarch64.txt
index 557f2dcbbb2f..7ba4919b92b7 100644
--- a/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_column_build PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_column_build PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_column_build/ut_column_build.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.linux-x86_64.txt
index 33c7cbbf2ae5..132dbd35ff22 100644
--- a/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_column_build PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_column_build PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_column_build/ut_column_build.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.windows-x86_64.txt
index 8c045b2320e5..8f08f75fef64 100644
--- a/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_column_build/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.darwin-arm64.txt
index ac5b00d7bb57..3828c88e68f7 100644
--- a/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_compaction PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_compaction PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_compaction/ut_compaction.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.darwin-x86_64.txt
index 3311baf5b09e..4f219b90693f 100644
--- a/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_compaction PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_compaction PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_compaction/ut_compaction.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.linux-aarch64.txt
index 1465ace9df9a..9b1bdb5b0ca4 100644
--- a/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_compaction PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_compaction PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_compaction/ut_compaction.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.linux-x86_64.txt
index 27806492c1b6..4fd1efb3cfab 100644
--- a/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_compaction PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_compaction PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_compaction/ut_compaction.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.windows-x86_64.txt
index ccdea764942a..804aacbeda07 100644
--- a/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_compaction/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_export/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_export/CMakeLists.darwin-arm64.txt
index acf8dd9196ec..4e0740d4fe3f 100644
--- a/ydb/core/tx/schemeshard/ut_export/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_export/CMakeLists.darwin-arm64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_export PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_export PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_export/ut_export.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_export/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_export/CMakeLists.darwin-x86_64.txt
index de70c7f29eac..f2dd708769bc 100644
--- a/ydb/core/tx/schemeshard/ut_export/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_export/CMakeLists.darwin-x86_64.txt
@@ -33,8 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_export PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_export PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_export/ut_export.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_export/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_export/CMakeLists.linux-aarch64.txt
index 7eb20adaf78d..9d3122eba35d 100644
--- a/ydb/core/tx/schemeshard/ut_export/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_export/CMakeLists.linux-aarch64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_export PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_export PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_export/ut_export.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_export/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_export/CMakeLists.linux-x86_64.txt
index 6add7105d78e..d39f4e5ac31a 100644
--- a/ydb/core/tx/schemeshard/ut_export/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_export/CMakeLists.linux-x86_64.txt
@@ -36,9 +36,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_export PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_export PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_export/ut_export.cpp
@@ -68,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_export/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_export/CMakeLists.windows-x86_64.txt
index 91ceb9a79237..daf953e8b6a0 100644
--- a/ydb/core/tx/schemeshard/ut_export/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_export/CMakeLists.windows-x86_64.txt
@@ -46,6 +46,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_export/ut_export.cpp b/ydb/core/tx/schemeshard/ut_export/ut_export.cpp
index 4a8ad8b32170..936010729a87 100644
--- a/ydb/core/tx/schemeshard/ut_export/ut_export.cpp
+++ b/ydb/core/tx/schemeshard/ut_export/ut_export.cpp
@@ -281,8 +281,42 @@ Y_UNIT_TEST_SUITE(TExportToS3Tests) {
 
         const TVector tables = {R"(
             Name: "Table"
-            Columns { Name: "key" Type: "Utf8" }
-            Columns { Name: "value" Type: "Utf8" }
+            Columns {
+                Name: "key"
+                Type: "Utf8"
+                DefaultFromLiteral {
+                    type {
+                        optional_type {
+                            item {
+                                type_id: UTF8
+                            }
+                        }
+                    }
+                    value {
+                        items {
+                            text_value: "b"
+                        }
+                    }
+                }
+            }
+            Columns {
+                Name: "value"
+                Type: "Utf8"
+                DefaultFromLiteral {
+                    type {
+                        optional_type {
+                            item {
+                                type_id: UTF8
+                            }
+                        }
+                    }
+                    value {
+                        items {
+                            text_value: "a"
+                        }
+                    }
+                }
+            }
             KeyColumnNames: ["key"]
             PartitionConfig {
               ColumnFamilies {
@@ -330,7 +364,20 @@ Y_UNIT_TEST_SUITE(TExportToS3Tests) {
       }
     }
   }
-  not_null: false
+  from_literal {
+    type {
+      optional_type {
+        item {
+          type_id: UTF8
+        }
+      }
+    }
+    value {
+      items {
+        text_value: "b"
+      }
+    }
+  }
 }
 columns {
   name: "value"
@@ -341,7 +388,20 @@ columns {
       }
     }
   }
-  not_null: false
+  from_literal {
+    type {
+      optional_type {
+        item {
+          type_id: UTF8
+        }
+      }
+    }
+    value {
+      items {
+        text_value: "a"
+      }
+    }
+  }
 }
 primary_key: "key"
 storage_settings {
@@ -1394,4 +1454,52 @@ partitioning_settings {
 
         TestGetExport(runtime, txId, "/MyRoot", Ydb::StatusIds::CANCELLED);
     }
+
+    Y_UNIT_TEST(UidAsIdempotencyKey) {
+        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);
+
+        TPortManager portManager;
+        const ui16 port = portManager.GetPort();
+
+        TS3Mock s3Mock({}, TS3Mock::TSettings(port));
+        UNIT_ASSERT(s3Mock.Start());
+
+        const auto request = Sprintf(R"(
+            OperationParams {
+              labels {
+                key: "uid"
+                value: "foo"
+              }
+            }
+            ExportToS3Settings {
+              endpoint: "localhost:%d"
+              scheme: HTTP
+              items {
+                source_path: "/MyRoot/Table"
+                destination_prefix: ""
+              }
+            }
+        )", port);
+
+        // create operation
+        TestExport(runtime, ++txId, "/MyRoot", request);
+        const ui64 exportId = txId;
+        // create operation again with same uid
+        TestExport(runtime, ++txId, "/MyRoot", request);
+        // new operation was not created
+        TestGetExport(runtime, txId, "/MyRoot", Ydb::StatusIds::NOT_FOUND);
+        // check previous operation
+        TestGetExport(runtime, exportId, "/MyRoot");
+        env.TestWaitNotification(runtime, exportId);
+    }
 }
diff --git a/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.darwin-arm64.txt
index 2eaf6913cb13..5bf9e792d697 100644
--- a/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.darwin-arm64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_export_reboots_s3 PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_export_reboots_s3 PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_export_reboots_s3/ut_export_reboots_s3.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.darwin-x86_64.txt
index e1bcfec7030d..dfb423bf3894 100644
--- a/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.darwin-x86_64.txt
@@ -33,8 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_export_reboots_s3 PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_export_reboots_s3 PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_export_reboots_s3/ut_export_reboots_s3.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.linux-aarch64.txt
index 0e62fec24ddc..383aeffdd82f 100644
--- a/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.linux-aarch64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_export_reboots_s3 PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_export_reboots_s3 PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_export_reboots_s3/ut_export_reboots_s3.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.linux-x86_64.txt
index 9c1e5843669c..357336099db4 100644
--- a/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.linux-x86_64.txt
@@ -36,9 +36,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_export_reboots_s3 PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_export_reboots_s3 PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_export_reboots_s3/ut_export_reboots_s3.cpp
@@ -68,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.windows-x86_64.txt
index ae2ef497ce89..ec3c0557e159 100644
--- a/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_export_reboots_s3/CMakeLists.windows-x86_64.txt
@@ -57,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.darwin-arm64.txt
index 4883ce1ba759..a2e835b91b17 100644
--- a/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_external_data_source PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_external_data_source PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_data_source/ut_external_data_source.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.darwin-x86_64.txt
index efaffb803927..2f146c2dd53b 100644
--- a/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_external_data_source PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_external_data_source PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_data_source/ut_external_data_source.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.linux-aarch64.txt
index 6fc88cf0ac32..c1b1339438c2 100644
--- a/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_external_data_source PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_external_data_source PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_data_source/ut_external_data_source.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.linux-x86_64.txt
index e26cf8c14178..85553e8bd334 100644
--- a/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_external_data_source PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_external_data_source PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_data_source/ut_external_data_source.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.windows-x86_64.txt
index d0d5b6077142..21af3d0a0051 100644
--- a/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_data_source/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.darwin-arm64.txt
index 5e764990fe10..1de7eb1a35fc 100644
--- a/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(schemeshard-ut_external_data_source_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(schemeshard-ut_external_data_source_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_data_source_reboots/ut_external_data_source_reboots.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.darwin-x86_64.txt
index a5dd89e6b5a8..cbd5912045b5 100644
--- a/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(schemeshard-ut_external_data_source_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(schemeshard-ut_external_data_source_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_data_source_reboots/ut_external_data_source_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.linux-aarch64.txt
index 4df53a8214fd..43aa2c9e6518 100644
--- a/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(schemeshard-ut_external_data_source_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(schemeshard-ut_external_data_source_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_data_source_reboots/ut_external_data_source_reboots.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.linux-x86_64.txt
index 2580674124a0..daa96db0e753 100644
--- a/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(schemeshard-ut_external_data_source_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(schemeshard-ut_external_data_source_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_data_source_reboots/ut_external_data_source_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.windows-x86_64.txt
index 828c7c0bd1e9..d79a7aeaac3c 100644
--- a/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_data_source_reboots/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.darwin-arm64.txt
index bee4fca124b5..81e49b606d9e 100644
--- a/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_external_table PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_external_table PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_table/ut_external_table.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.darwin-x86_64.txt
index 87394ae85008..191c36d0c6c7 100644
--- a/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_external_table PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_external_table PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_table/ut_external_table.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.linux-aarch64.txt
index a45d238f54e8..70eab607ec32 100644
--- a/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_external_table PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_external_table PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_table/ut_external_table.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.linux-x86_64.txt
index 5e2acf0f5af1..23d097870de2 100644
--- a/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_external_table PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_external_table PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_table/ut_external_table.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.windows-x86_64.txt
index 586578d76ba5..45643bbc20b1 100644
--- a/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_table/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.darwin-arm64.txt
index fdae871723d2..aabe54e9c667 100644
--- a/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_external_table_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_external_table_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_table_reboots/ut_external_table_reboots.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.darwin-x86_64.txt
index 00871644449f..419f84f26c6a 100644
--- a/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_external_table_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_external_table_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_table_reboots/ut_external_table_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.linux-aarch64.txt
index a02e1c0fee35..d437ae9ca2b5 100644
--- a/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_external_table_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_external_table_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_table_reboots/ut_external_table_reboots.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.linux-x86_64.txt
index 073cdcddb386..540fd6f074d7 100644
--- a/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_external_table_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_external_table_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_external_table_reboots/ut_external_table_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.windows-x86_64.txt
index 494349edca90..3fc43ac5a0bc 100644
--- a/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_external_table_reboots/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.darwin-arm64.txt
index 97f0bd3f25aa..470a97f9c857 100644
--- a/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_extsubdomain PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_extsubdomain PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_extsubdomain/ut_extsubdomain.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.darwin-x86_64.txt
index e6f9907b62c7..4ac31768ae17 100644
--- a/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_extsubdomain PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_extsubdomain PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_extsubdomain/ut_extsubdomain.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.linux-aarch64.txt
index c16d168c926e..76e6b7573277 100644
--- a/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_extsubdomain PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_extsubdomain PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_extsubdomain/ut_extsubdomain.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.linux-x86_64.txt
index d418989d9955..cf64cc9cdcaa 100644
--- a/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_extsubdomain PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_extsubdomain PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_extsubdomain/ut_extsubdomain.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.windows-x86_64.txt
index 2bb0a7846e5b..3cffe0917b50 100644
--- a/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_extsubdomain/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.darwin-arm64.txt
index faf66f6902da..00625a4ecf88 100644
--- a/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_extsubdomain_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_extsubdomain_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/ut_extsubdomain_reboots.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.darwin-x86_64.txt
index 3473d8c04535..66c788aa1552 100644
--- a/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_extsubdomain_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_extsubdomain_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/ut_extsubdomain_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.linux-aarch64.txt
index 2b0286251ed3..6a039440c22f 100644
--- a/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_extsubdomain_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_extsubdomain_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/ut_extsubdomain_reboots.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.linux-x86_64.txt
index 804834ccc030..9a7967a2f484 100644
--- a/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_extsubdomain_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_extsubdomain_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/ut_extsubdomain_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.windows-x86_64.txt
index e00734e21bbf..e04b45076a7c 100644
--- a/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_extsubdomain_reboots/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.darwin-arm64.txt
index 3381a4c27ebd..415f67db3afc 100644
--- a/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_filestore_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_filestore_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_filestore_reboots/ut_filestore_reboots.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.darwin-x86_64.txt
index 60f76fb012c3..2035eb21dec1 100644
--- a/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_filestore_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_filestore_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_filestore_reboots/ut_filestore_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.linux-aarch64.txt
index e1ae38fab840..2434f6d3f4f8 100644
--- a/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_filestore_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_filestore_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_filestore_reboots/ut_filestore_reboots.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.linux-x86_64.txt
index 1b9e37497536..f7e970d7c833 100644
--- a/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_filestore_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_filestore_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_filestore_reboots/ut_filestore_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.windows-x86_64.txt
index a3aeefb475ce..b4c3f25902bd 100644
--- a/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_filestore_reboots/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.darwin-arm64.txt
index 38616cf23871..5cd277b09def 100644
--- a/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.darwin-arm64.txt
@@ -37,6 +37,10 @@ target_link_libraries(tx-schemeshard-ut_helpers PUBLIC
   cpp-client-ydb_driver
 )
 target_sources(tx-schemeshard-ut_helpers PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/helpers.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/ls_checks.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/test_env.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/test_with_reboots.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/export_reboots_common.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/failing_mtpq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/helpers.cpp
diff --git a/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.darwin-x86_64.txt
index 38616cf23871..5cd277b09def 100644
--- a/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.darwin-x86_64.txt
@@ -37,6 +37,10 @@ target_link_libraries(tx-schemeshard-ut_helpers PUBLIC
   cpp-client-ydb_driver
 )
 target_sources(tx-schemeshard-ut_helpers PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/helpers.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/ls_checks.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/test_env.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/test_with_reboots.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/export_reboots_common.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/failing_mtpq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/helpers.cpp
diff --git a/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.linux-aarch64.txt
index 44d0922fc3b9..217dd4a2ea04 100644
--- a/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.linux-aarch64.txt
@@ -38,6 +38,10 @@ target_link_libraries(tx-schemeshard-ut_helpers PUBLIC
   cpp-client-ydb_driver
 )
 target_sources(tx-schemeshard-ut_helpers PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/helpers.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/ls_checks.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/test_env.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/test_with_reboots.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/export_reboots_common.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/failing_mtpq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/helpers.cpp
diff --git a/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.linux-x86_64.txt
index 44d0922fc3b9..217dd4a2ea04 100644
--- a/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.linux-x86_64.txt
@@ -38,6 +38,10 @@ target_link_libraries(tx-schemeshard-ut_helpers PUBLIC
   cpp-client-ydb_driver
 )
 target_sources(tx-schemeshard-ut_helpers PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/helpers.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/ls_checks.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/test_env.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/test_with_reboots.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/export_reboots_common.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/failing_mtpq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/helpers.cpp
diff --git a/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.windows-x86_64.txt
index 38616cf23871..5cd277b09def 100644
--- a/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_helpers/CMakeLists.windows-x86_64.txt
@@ -37,6 +37,10 @@ target_link_libraries(tx-schemeshard-ut_helpers PUBLIC
   cpp-client-ydb_driver
 )
 target_sources(tx-schemeshard-ut_helpers PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/helpers.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/ls_checks.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/test_env.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/test_with_reboots.h
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/export_reboots_common.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/failing_mtpq.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_helpers/helpers.cpp
diff --git a/ydb/core/tx/schemeshard/ut_helpers/helpers.cpp b/ydb/core/tx/schemeshard/ut_helpers/helpers.cpp
index db27c43c06fc..870c43429785 100644
--- a/ydb/core/tx/schemeshard/ut_helpers/helpers.cpp
+++ b/ydb/core/tx/schemeshard/ut_helpers/helpers.cpp
@@ -5,6 +5,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -2344,7 +2345,7 @@ namespace NSchemeShardUT_Private {
         TSerializedCellMatrix matrix(cells, 1, 2);
 
         auto evWrite = std::make_unique(txId, NKikimrDataEvents::TEvWrite::MODE_IMMEDIATE);
-        ui64 payloadIndex = NKikimr::NEvWrite::TPayloadHelper(*evWrite).AddDataToPayload(std::move(matrix.ReleaseBuffer()));
+        ui64 payloadIndex = NKikimr::NEvWrite::TPayloadWriter(*evWrite).AddDataToPayload(std::move(matrix.ReleaseBuffer()));
         evWrite->AddOperation(NKikimrDataEvents::TEvWrite::TOperation::OPERATION_UPSERT, tableId, columnIds, payloadIndex, NKikimrDataEvents::FORMAT_CELLVEC);
 
         ForwardToTablet(runtime, datashardTabletId, sender, evWrite.release());
@@ -2354,4 +2355,23 @@ namespace NSchemeShardUT_Private {
 
         UNIT_ASSERT_C(successIsExpected == (status == NKikimrDataEvents::TEvWriteResult::STATUS_COMPLETED), "Status: " << ev->Get()->Record.GetStatus() << " Issues: " << ev->Get()->Record.GetIssues());
     }
+
+    void SendNextValRequest(TTestActorRuntime& runtime, const TActorId& sender, const TString& path) {
+        auto request = MakeHolder(path);
+        runtime.Send(new IEventHandle(NSequenceProxy::MakeSequenceProxyServiceID(), sender, request.Release()));
+    }
+
+    i64 WaitNextValResult(
+            TTestActorRuntime& runtime, const TActorId& sender, Ydb::StatusIds::StatusCode expectedStatus) {
+        auto ev = runtime.GrabEdgeEventRethrow(sender);
+        auto* msg = ev->Get();
+        UNIT_ASSERT_VALUES_EQUAL(msg->Status, expectedStatus);
+        return msg->Value;
+    }
+
+    i64 DoNextVal(TTestActorRuntime& runtime, const TString& path, Ydb::StatusIds::StatusCode expectedStatus) {
+        auto sender = runtime.AllocateEdgeActor(0);
+        SendNextValRequest(runtime, sender, path);
+        return WaitNextValResult(runtime, sender, expectedStatus);
+    }
 }
diff --git a/ydb/core/tx/schemeshard/ut_helpers/helpers.h b/ydb/core/tx/schemeshard/ut_helpers/helpers.h
index ddd1153e6c3f..d3c79c0e6946 100644
--- a/ydb/core/tx/schemeshard/ut_helpers/helpers.h
+++ b/ydb/core/tx/schemeshard/ut_helpers/helpers.h
@@ -552,4 +552,12 @@ namespace NSchemeShardUT_Private {
     void UploadRows(TTestActorRuntime& runtime, const TString& tablePath, int partitionIdx, const TVector& keyTags, const TVector& valueTags, const TVector& recordIds);
     void WriteRow(TTestActorRuntime& runtime, const ui64 txId, const TString& tablePath, int partitionIdx, const ui32 key, const TString& value, bool successIsExpected = true);
 
+    void SendNextValRequest(TTestActorRuntime& runtime, const TActorId& sender, const TString& path);
+    i64 WaitNextValResult(
+        TTestActorRuntime& runtime, const TActorId& sender,
+        Ydb::StatusIds::StatusCode expectedStatus = Ydb::StatusIds::SUCCESS);
+    i64 DoNextVal(
+        TTestActorRuntime& runtime, const TString& path,
+        Ydb::StatusIds::StatusCode expectedStatus = Ydb::StatusIds::SUCCESS);
+
 } //NSchemeShardUT_Private
diff --git a/ydb/core/tx/schemeshard/ut_helpers/ls_checks.cpp b/ydb/core/tx/schemeshard/ut_helpers/ls_checks.cpp
index 90cc00f16cd8..bd7706cf0056 100644
--- a/ydb/core/tx/schemeshard/ut_helpers/ls_checks.cpp
+++ b/ydb/core/tx/schemeshard/ut_helpers/ls_checks.cpp
@@ -508,7 +508,7 @@ void CheckBoundaries(const NKikimrScheme::TEvDescribeSchemeResult &record) {
         const auto& b = descr.GetTable().GetSplitBoundary(i);
         TVector cells;
         TVector memoryOwner;
-        NMiniKQL::CellsFromTuple(nullptr, b.GetKeyPrefix(), keyColTypes, false, cells, errStr, memoryOwner);
+        NMiniKQL::CellsFromTuple(nullptr, b.GetKeyPrefix(), keyColTypes, {}, false, cells, errStr, memoryOwner);
         UNIT_ASSERT_VALUES_EQUAL(errStr, "");
 
         TString serialized = TSerializedCellVec::Serialize(cells);
diff --git a/ydb/core/tx/schemeshard/ut_helpers/test_env.cpp b/ydb/core/tx/schemeshard/ut_helpers/test_env.cpp
index 1247239013b4..108fde82fd1a 100644
--- a/ydb/core/tx/schemeshard/ut_helpers/test_env.cpp
+++ b/ydb/core/tx/schemeshard/ut_helpers/test_env.cpp
@@ -8,6 +8,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -591,6 +592,13 @@ NSchemeShardUT_Private::TTestEnv::TTestEnv(TTestActorRuntime& runtime, const TTe
         runtime.RegisterService(MakeTxProxyID(), txProxyId, node);
     }
 
+    // Create sequence proxies
+    for (size_t i = 0; i < runtime.GetNodeCount(); ++i) {
+        IActor* sequenceProxy = NSequenceProxy::CreateSequenceProxy();
+        TActorId sequenceProxyId = runtime.Register(sequenceProxy, i);
+        runtime.RegisterService(NSequenceProxy::MakeSequenceProxyServiceID(), sequenceProxyId, i);
+    }
+
     //SetupBoxAndStoragePool(runtime, sender, TTestTxConfig::DomainUid);
 
     TxReliablePropose = runtime.Register(new TTxReliablePropose(schemeRoot));
diff --git a/ydb/core/tx/schemeshard/ut_index/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_index/CMakeLists.darwin-arm64.txt
index db8d953141ba..b464cffb9e80 100644
--- a/ydb/core/tx/schemeshard/ut_index/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_index/CMakeLists.darwin-arm64.txt
@@ -29,8 +29,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_index PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_index PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index/ut_async_index.cpp
@@ -61,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_index/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_index/CMakeLists.darwin-x86_64.txt
index 25dd3208e6ae..f8338d32686c 100644
--- a/ydb/core/tx/schemeshard/ut_index/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_index/CMakeLists.darwin-x86_64.txt
@@ -30,8 +30,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_index PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_index PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index/ut_async_index.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_index/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_index/CMakeLists.linux-aarch64.txt
index 82f6e361e3fd..895f526d9ba7 100644
--- a/ydb/core/tx/schemeshard/ut_index/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_index/CMakeLists.linux-aarch64.txt
@@ -32,9 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_index PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_index PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index/ut_async_index.cpp
@@ -65,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_index/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_index/CMakeLists.linux-x86_64.txt
index c6109f3e8700..7303e178a074 100644
--- a/ydb/core/tx/schemeshard/ut_index/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_index/CMakeLists.linux-x86_64.txt
@@ -33,9 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_index PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_index PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index/ut_async_index.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_index/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_index/CMakeLists.windows-x86_64.txt
index 18569c8744ac..74520764ca3b 100644
--- a/ydb/core/tx/schemeshard/ut_index/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_index/CMakeLists.windows-x86_64.txt
@@ -55,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.darwin-arm64.txt
index dd28b658eeae..8f283086a5c4 100644
--- a/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_index_build PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_index_build PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index_build/ut_index_build.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.darwin-x86_64.txt
index 6d6687904c24..9db005e979b1 100644
--- a/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_index_build PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_index_build PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index_build/ut_index_build.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.linux-aarch64.txt
index 264dd7455b33..a6f667991212 100644
--- a/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_index_build PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_index_build PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index_build/ut_index_build.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.linux-x86_64.txt
index 3ff2eba8f5b6..45af51a82500 100644
--- a/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_index_build PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_index_build PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index_build/ut_index_build.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.windows-x86_64.txt
index 39683caa7113..2dad6e89c7b8 100644
--- a/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_index_build/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.darwin-arm64.txt
index b796c1745b4b..51cfad95747d 100644
--- a/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.darwin-arm64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_index_build_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_index_build_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index_build_reboots/ut_index_build_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.darwin-x86_64.txt
index 06448129123e..82897449e5de 100644
--- a/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.darwin-x86_64.txt
@@ -33,8 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_index_build_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_index_build_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index_build_reboots/ut_index_build_reboots.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.linux-aarch64.txt
index 0efe88590476..09596cf73a1f 100644
--- a/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.linux-aarch64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_index_build_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_index_build_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index_build_reboots/ut_index_build_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.linux-x86_64.txt
index b53d2c3424ba..9d7f9b0eb6e9 100644
--- a/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.linux-x86_64.txt
@@ -36,9 +36,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_index_build_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_index_build_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_index_build_reboots/ut_index_build_reboots.cpp
@@ -68,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.windows-x86_64.txt
index eff4241561a5..d5823e855daa 100644
--- a/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_index_build_reboots/CMakeLists.windows-x86_64.txt
@@ -57,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_login/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_login/CMakeLists.darwin-arm64.txt
index 148554edd5a2..a6ea932a6ac6 100644
--- a/ydb/core/tx/schemeshard/ut_login/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_login/CMakeLists.darwin-arm64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_login PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_login PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_login/ut_login.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_login/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_login/CMakeLists.darwin-x86_64.txt
index c8c7106917dd..8932faa4eb38 100644
--- a/ydb/core/tx/schemeshard/ut_login/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_login/CMakeLists.darwin-x86_64.txt
@@ -33,8 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_login PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_login PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_login/ut_login.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_login/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_login/CMakeLists.linux-aarch64.txt
index 6356a995163b..48ea23e250f1 100644
--- a/ydb/core/tx/schemeshard/ut_login/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_login/CMakeLists.linux-aarch64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_login PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_login PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_login/ut_login.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_login/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_login/CMakeLists.linux-x86_64.txt
index d4796fdb4e25..81e697072873 100644
--- a/ydb/core/tx/schemeshard/ut_login/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_login/CMakeLists.linux-x86_64.txt
@@ -36,9 +36,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_login PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_login PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_login/ut_login.cpp
@@ -68,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_login/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_login/CMakeLists.windows-x86_64.txt
index ff885b8fb774..14057ef0d479 100644
--- a/ydb/core/tx/schemeshard/ut_login/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_login/CMakeLists.windows-x86_64.txt
@@ -57,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_move/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_move/CMakeLists.darwin-arm64.txt
index ea64b6828650..4bd8a4d1192e 100644
--- a/ydb/core/tx/schemeshard/ut_move/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_move/CMakeLists.darwin-arm64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_move PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_move PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_move/ut_move.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_move/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_move/CMakeLists.darwin-x86_64.txt
index b4da03e27aaa..235fee279446 100644
--- a/ydb/core/tx/schemeshard/ut_move/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_move/CMakeLists.darwin-x86_64.txt
@@ -33,8 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_move PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_move PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_move/ut_move.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_move/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_move/CMakeLists.linux-aarch64.txt
index 825a07b2d320..7620bb6ab26e 100644
--- a/ydb/core/tx/schemeshard/ut_move/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_move/CMakeLists.linux-aarch64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_move PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_move PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_move/ut_move.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_move/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_move/CMakeLists.linux-x86_64.txt
index c21e17328780..92d6e88d89a6 100644
--- a/ydb/core/tx/schemeshard/ut_move/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_move/CMakeLists.linux-x86_64.txt
@@ -36,9 +36,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_move PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_move PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_move/ut_move.cpp
@@ -68,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_move/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_move/CMakeLists.windows-x86_64.txt
index 62a6648ddba2..369c417dbd32 100644
--- a/ydb/core/tx/schemeshard/ut_move/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_move/CMakeLists.windows-x86_64.txt
@@ -57,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.darwin-arm64.txt
index f2e20f58aa5d..436c41a94185 100644
--- a/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_move_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_move_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_move_reboots/ut_move_reboots.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   LARGE
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.darwin-x86_64.txt
index 25b954f36f7b..90ee258e14ec 100644
--- a/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_move_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_move_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_move_reboots/ut_move_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   LARGE
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.linux-aarch64.txt
index 1c678b692cca..d30bbf0b199a 100644
--- a/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_move_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_move_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_move_reboots/ut_move_reboots.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   LARGE
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.linux-x86_64.txt
index ec4f146e2a42..2a4a25b2b4fc 100644
--- a/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_move_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_move_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_move_reboots/ut_move_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   LARGE
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.windows-x86_64.txt
index e40377a5a626..ea866f445347 100644
--- a/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_move_reboots/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   LARGE
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_olap/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_olap/CMakeLists.darwin-arm64.txt
index 6041abae61cd..de583a7225cf 100644
--- a/ydb/core/tx/schemeshard/ut_olap/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_olap/CMakeLists.darwin-arm64.txt
@@ -33,8 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_olap PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_olap PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_olap/ut_olap.cpp
@@ -65,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_olap/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_olap/CMakeLists.darwin-x86_64.txt
index e65df2b0e91c..59b0f4da89ca 100644
--- a/ydb/core/tx/schemeshard/ut_olap/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_olap/CMakeLists.darwin-x86_64.txt
@@ -34,8 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_olap PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_olap PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_olap/ut_olap.cpp
@@ -66,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_olap/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_olap/CMakeLists.linux-aarch64.txt
index c55935dc5916..ce8068e254db 100644
--- a/ydb/core/tx/schemeshard/ut_olap/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_olap/CMakeLists.linux-aarch64.txt
@@ -36,9 +36,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_olap PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_olap PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_olap/ut_olap.cpp
@@ -69,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_olap/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_olap/CMakeLists.linux-x86_64.txt
index 03a4ed5f2bcf..8572460e3df7 100644
--- a/ydb/core/tx/schemeshard/ut_olap/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_olap/CMakeLists.linux-x86_64.txt
@@ -37,9 +37,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_olap PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_olap PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_olap/ut_olap.cpp
@@ -70,6 +67,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_olap/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_olap/CMakeLists.windows-x86_64.txt
index 026b3548b525..3a0b115039e0 100644
--- a/ydb/core/tx/schemeshard/ut_olap/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_olap/CMakeLists.windows-x86_64.txt
@@ -59,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_olap/ut_olap.cpp b/ydb/core/tx/schemeshard/ut_olap/ut_olap.cpp
index 06c25b6bdd61..31022e755581 100644
--- a/ydb/core/tx/schemeshard/ut_olap/ut_olap.cpp
+++ b/ydb/core/tx/schemeshard/ut_olap/ut_olap.cpp
@@ -38,9 +38,9 @@ static const TString defaultTableSchema = R"(
     }
 )";
 
-static const TVector> defaultYdbSchema = {
-    {"timestamp", TTypeInfo(NTypeIds::Timestamp) },
-    {"data", TTypeInfo(NTypeIds::Utf8) }
+static const TVector defaultYdbSchema = {
+    NArrow::NTest::TTestColumn("timestamp", TTypeInfo(NTypeIds::Timestamp) ),
+    NArrow::NTest::TTestColumn("data", TTypeInfo(NTypeIds::Utf8) )
 };
 
 }}
@@ -65,7 +65,7 @@ Y_UNIT_TEST_SUITE(TOlap) {
             SchemaPresets {
                 Name: "default"
                 Schema {
-                    Columns { Name: "timestamp" Type: "Timestamp" }
+                    Columns { Name: "timestamp" Type: "Timestamp" NotNull: true }
                     Columns { Name: "data" Type: "Utf8" }
                     KeyColumnNames: "timestamp"
                     Engine: COLUMN_ENGINE_REPLACING_TIMESERIES
@@ -87,7 +87,7 @@ Y_UNIT_TEST_SUITE(TOlap) {
             SchemaPresets {
                 Name: "default"
                 Schema {
-                    Columns { Name: "timestamp" Type: "Timestamp" }
+                    Columns { Name: "timestamp" Type: "Timestamp" NotNull: true }
                     Columns { Name: "data" Type: "Utf8" }
                     KeyColumnNames: "timestamp"
                     Engine: COLUMN_ENGINE_REPLACING_TIMESERIES
diff --git a/ydb/core/tx/schemeshard/ut_olap/ya.make b/ydb/core/tx/schemeshard/ut_olap/ya.make
index 8bf46e35dc57..231ca8a779b2 100644
--- a/ydb/core/tx/schemeshard/ut_olap/ya.make
+++ b/ydb/core/tx/schemeshard/ut_olap/ya.make
@@ -21,6 +21,8 @@ PEERDIR(
     ydb/core/formats
     ydb/core/tx
     ydb/core/tx/columnshard
+    ydb/core/tx/columnshard/test_helper
+    ydb/core/tx/columnshard/hooks/testing
     ydb/core/tx/schemeshard/ut_helpers
     ydb/library/yql/public/udf/service/exception_policy
 )
diff --git a/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.darwin-arm64.txt
index f0d7a0b5043c..ee697b9a3877 100644
--- a/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.darwin-arm64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_olap_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_olap_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_olap_reboots/ut_olap_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.darwin-x86_64.txt
index 5aec8a43a858..52e95b1329ef 100644
--- a/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.darwin-x86_64.txt
@@ -33,8 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_olap_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_olap_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_olap_reboots/ut_olap_reboots.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.linux-aarch64.txt
index bb5fd4d6b5d8..176e9e8ea0b5 100644
--- a/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.linux-aarch64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_olap_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_olap_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_olap_reboots/ut_olap_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.linux-x86_64.txt
index 3d20c735c685..74cfe254dee0 100644
--- a/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.linux-x86_64.txt
@@ -36,9 +36,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_olap_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_olap_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_olap_reboots/ut_olap_reboots.cpp
@@ -68,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.windows-x86_64.txt
index 10032ad387bd..1036d26d78da 100644
--- a/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_olap_reboots/CMakeLists.windows-x86_64.txt
@@ -57,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.darwin-arm64.txt
index 36486be38b70..a09cf3539642 100644
--- a/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_pq_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_pq_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_pq_reboots/ut_pq_reboots.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   LARGE
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.darwin-x86_64.txt
index e31b79f06e5e..ce6615ebb388 100644
--- a/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_pq_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_pq_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_pq_reboots/ut_pq_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   LARGE
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.linux-aarch64.txt
index 809b286497ee..ba50c70526fd 100644
--- a/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_pq_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_pq_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_pq_reboots/ut_pq_reboots.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   LARGE
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.linux-x86_64.txt
index e55199b0dc96..87aba9212bf6 100644
--- a/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_pq_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_pq_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_pq_reboots/ut_pq_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   LARGE
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.windows-x86_64.txt
index b2e0f721256c..9a36bfce4547 100644
--- a/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_pq_reboots/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   LARGE
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.darwin-arm64.txt
index d5433330cf50..7ba7e3b57407 100644
--- a/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_reboots/ut_reboots.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.darwin-x86_64.txt
index 6a2226b4a381..110caed64bc1 100644
--- a/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_reboots/ut_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.linux-aarch64.txt
index f9b214bb756c..bb7ffff40428 100644
--- a/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_reboots/ut_reboots.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.linux-x86_64.txt
index 39d66fd17ca4..f9aab3e2a573 100644
--- a/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_reboots/ut_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.windows-x86_64.txt
index 394383cb205b..877c76846b23 100644
--- a/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_reboots/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_replication/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_replication/CMakeLists.darwin-arm64.txt
index 6e9bc137e7b8..fc9178e17e0e 100644
--- a/ydb/core/tx/schemeshard/ut_replication/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_replication/CMakeLists.darwin-arm64.txt
@@ -26,8 +26,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_replication PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_replication PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_replication/ut_replication.cpp
@@ -57,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_replication/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_replication/CMakeLists.darwin-x86_64.txt
index 4573bcfc8aa8..52798b3f6996 100644
--- a/ydb/core/tx/schemeshard/ut_replication/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_replication/CMakeLists.darwin-x86_64.txt
@@ -27,8 +27,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_replication PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_replication PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_replication/ut_replication.cpp
@@ -58,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_replication/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_replication/CMakeLists.linux-aarch64.txt
index 379bf52b2387..02ea0831aeb2 100644
--- a/ydb/core/tx/schemeshard/ut_replication/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_replication/CMakeLists.linux-aarch64.txt
@@ -29,9 +29,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_replication PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_replication PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_replication/ut_replication.cpp
@@ -61,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_replication/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_replication/CMakeLists.linux-x86_64.txt
index 12396fd1b62f..2c7f2b01052c 100644
--- a/ydb/core/tx/schemeshard/ut_replication/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_replication/CMakeLists.linux-x86_64.txt
@@ -30,9 +30,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_replication PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_replication PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_replication/ut_replication.cpp
@@ -62,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_replication/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_replication/CMakeLists.windows-x86_64.txt
index a4d35444a609..c4c09dd22481 100644
--- a/ydb/core/tx/schemeshard/ut_replication/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_replication/CMakeLists.windows-x86_64.txt
@@ -51,6 +51,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.darwin-arm64.txt
index 3b40c0b46586..442f9f5efe29 100644
--- a/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.darwin-arm64.txt
@@ -26,8 +26,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_replication_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_replication_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_replication_reboots/ut_replication_reboots.cpp
@@ -57,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.darwin-x86_64.txt
index b2fc233d151d..9c18d9eac35c 100644
--- a/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.darwin-x86_64.txt
@@ -27,8 +27,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_replication_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_replication_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_replication_reboots/ut_replication_reboots.cpp
@@ -58,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.linux-aarch64.txt
index e54922c36c3e..4de324dd4350 100644
--- a/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.linux-aarch64.txt
@@ -29,9 +29,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_replication_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_replication_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_replication_reboots/ut_replication_reboots.cpp
@@ -61,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.linux-x86_64.txt
index d69748bcf754..7bb69f7c1999 100644
--- a/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.linux-x86_64.txt
@@ -30,9 +30,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_replication_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_replication_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_replication_reboots/ut_replication_reboots.cpp
@@ -62,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.windows-x86_64.txt
index 8b938ee2e13a..0c54f561cb0b 100644
--- a/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_replication_reboots/CMakeLists.windows-x86_64.txt
@@ -51,6 +51,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_restore/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_restore/CMakeLists.darwin-arm64.txt
index a4ca5be662dd..601981a1983d 100644
--- a/ydb/core/tx/schemeshard/ut_restore/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_restore/CMakeLists.darwin-arm64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_restore PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_restore PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_restore/ut_restore.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_restore/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_restore/CMakeLists.darwin-x86_64.txt
index 135c2b299b4c..790f4aa275f1 100644
--- a/ydb/core/tx/schemeshard/ut_restore/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_restore/CMakeLists.darwin-x86_64.txt
@@ -33,8 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_restore PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_restore PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_restore/ut_restore.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_restore/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_restore/CMakeLists.linux-aarch64.txt
index 965050bb1145..a9e20b670d04 100644
--- a/ydb/core/tx/schemeshard/ut_restore/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_restore/CMakeLists.linux-aarch64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_restore PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_restore PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_restore/ut_restore.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_restore/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_restore/CMakeLists.linux-x86_64.txt
index 41f372da7a6c..a1cbb8c372d3 100644
--- a/ydb/core/tx/schemeshard/ut_restore/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_restore/CMakeLists.linux-x86_64.txt
@@ -36,9 +36,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_restore PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_restore PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_restore/ut_restore.cpp
@@ -68,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_restore/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_restore/CMakeLists.windows-x86_64.txt
index a4e53b2a9855..231a7e1c8e20 100644
--- a/ydb/core/tx/schemeshard/ut_restore/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_restore/CMakeLists.windows-x86_64.txt
@@ -57,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_restore/ut_restore.cpp b/ydb/core/tx/schemeshard/ut_restore/ut_restore.cpp
index 19b00dba18d3..df9df758e647 100644
--- a/ydb/core/tx/schemeshard/ut_restore/ut_restore.cpp
+++ b/ydb/core/tx/schemeshard/ut_restore/ut_restore.cpp
@@ -373,6 +373,95 @@ Y_UNIT_TEST_SUITE(TRestoreTests) {
         NKqp::CompareYson(data.YsonStr, content);
     }
 
+    bool CheckDefaultFromSequence(const NKikimrSchemeOp::TTableDescription& desc) {
+        for (const auto& column: desc.GetColumns()) {
+            if (column.GetName() == "key") {
+                switch (column.GetDefaultValueCase()) {
+                    case NKikimrSchemeOp::TColumnDescription::kDefaultFromSequence: {
+                        const auto& fromSequence = column.GetDefaultFromSequence();
+                        return fromSequence == "myseq";
+                    }
+                    default: break;
+                }
+                break;
+            }
+        }
+        return false;
+    }
+
+    bool CheckDefaultFromLiteral(const NKikimrSchemeOp::TTableDescription& desc) {
+        for (const auto& column: desc.GetColumns()) {
+            if (column.GetName() == "value") {
+                switch (column.GetDefaultValueCase()) {
+                    case NKikimrSchemeOp::TColumnDescription::kDefaultFromLiteral: {
+                        const auto& fromLiteral = column.GetDefaultFromLiteral();
+
+                        TString str;
+                        google::protobuf::TextFormat::PrintToString(fromLiteral, &str);
+
+                        TString result = R"(type {
+  optional_type {
+    item {
+      type_id: UTF8
+    }
+  }
+}
+value {
+  items {
+    text_value: "value1"
+  }
+}
+)";
+                        return str == result;
+                    }
+                    default: break;
+                }
+                break;
+            }
+        }
+        return false;
+    }
+
+    Y_UNIT_TEST_WITH_COMPRESSION(ShouldSucceedWithDefaultFromLiteral) {
+        TTestBasicRuntime runtime;
+
+        const auto data = GenerateTestData(Codec, "a", 1);
+
+        Restore(runtime, R"(
+            Name: "Table"
+            Columns { Name: "key" Type: "Utf8" }
+            Columns {
+                Name: "value"
+                Type: "Utf8"
+                DefaultFromLiteral {
+                    type {
+                        optional_type {
+                            item {
+                                type_id: UTF8
+                            }
+                        }
+                    }
+                    value {
+                        items {
+                            text_value: "value1"
+                        }
+                    }
+                }
+            }
+            KeyColumnNames: ["key"]
+        )", {data});
+
+        auto content = ReadTable(runtime, TTestTxConfig::FakeHiveTablets);
+        NKqp::CompareYson(data.YsonStr, content);
+
+        const auto desc = DescribePath(runtime, "/MyRoot/Table", true, true);
+        UNIT_ASSERT_VALUES_EQUAL(desc.GetStatus(), NKikimrScheme::StatusSuccess);
+
+        const auto& table = desc.GetPathDescription().GetTable();
+
+        UNIT_ASSERT_C(CheckDefaultFromLiteral(table), "Invalid default value");
+    }
+
     Y_UNIT_TEST_WITH_COMPRESSION(ShouldSucceedOnMultiShardTable) {
         TTestBasicRuntime runtime;
 
@@ -729,6 +818,289 @@ Y_UNIT_TEST_SUITE(TRestoreTests) {
         TestGetImport(runtime, txId, "/MyRoot");
     }
 
+    Y_UNIT_TEST(ShouldRestoreDefaultValuesFromLiteral) {
+        TPortManager portManager;
+        const ui16 port = portManager.GetPort();
+
+        TS3Mock s3Mock({}, TS3Mock::TSettings(port));
+        UNIT_ASSERT(s3Mock.Start());
+
+        TTestBasicRuntime runtime;
+        TTestEnv env(runtime);
+        ui64 txId = 100;
+
+        runtime.SetLogPriority(NKikimrServices::DATASHARD_BACKUP, NActors::NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::DATASHARD_RESTORE, NActors::NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::EXPORT, NActors::NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::IMPORT, NActors::NLog::PRI_TRACE);
+
+        TestCreateTable(runtime, ++txId, "/MyRoot", R"(
+            Name: "Original"
+            Columns { Name: "key" Type: "Utf8" }
+            Columns {
+                Name: "value"
+                Type: "Utf8"
+                DefaultFromLiteral {
+                    type {
+                        optional_type {
+                            item {
+                                type_id: UTF8
+                            }
+                        }
+                    }
+                    value {
+                        items {
+                            text_value: "value1"
+                        }
+                    }
+                }
+            }
+            KeyColumnNames: ["key"]
+        )");
+        env.TestWaitNotification(runtime, txId);
+
+        TestExport(runtime, ++txId, "/MyRoot", Sprintf(R"(
+            ExportToS3Settings {
+              endpoint: "localhost:%d"
+              scheme: HTTP
+              items {
+                source_path: "/MyRoot/Original"
+                destination_prefix: ""
+              }
+            }
+        )", port));
+        env.TestWaitNotification(runtime, txId);
+        TestGetExport(runtime, txId, "/MyRoot");
+
+        TestImport(runtime, ++txId, "/MyRoot", Sprintf(R"(
+            ImportFromS3Settings {
+              endpoint: "localhost:%d"
+              scheme: HTTP
+              items {
+                source_prefix: ""
+                destination_path: "/MyRoot/Restored"
+              }
+            }
+        )", port));
+        env.TestWaitNotification(runtime, txId);
+        TestGetImport(runtime, txId, "/MyRoot");
+
+        const auto desc = DescribePath(runtime, "/MyRoot/Restored", true, true);
+        UNIT_ASSERT_VALUES_EQUAL(desc.GetStatus(), NKikimrScheme::StatusSuccess);
+
+        const auto& table = desc.GetPathDescription().GetTable();
+
+        UNIT_ASSERT_C(CheckDefaultFromLiteral(table), "Invalid default value");
+    }
+
+    Y_UNIT_TEST(ShouldRestoreDefaultValuesFromSequence) {
+        TPortManager portManager;
+        const ui16 port = portManager.GetPort();
+
+        TS3Mock s3Mock({}, TS3Mock::TSettings(port));
+        UNIT_ASSERT(s3Mock.Start());
+
+        TTestBasicRuntime runtime;
+        TTestEnv env(runtime);
+        ui64 txId = 100;
+
+        runtime.SetLogPriority(NKikimrServices::DATASHARD_BACKUP, NActors::NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::DATASHARD_RESTORE, NActors::NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::EXPORT, NActors::NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::IMPORT, NActors::NLog::PRI_TRACE);
+
+        TestCreateIndexedTable(runtime, ++txId, "/MyRoot", R"(
+            TableDescription {
+                Name: "Original"
+                Columns { Name: "key" Type: "Uint64" DefaultFromSequence: "myseq" }
+                Columns { Name: "value" Type: "Uint64" }
+                KeyColumnNames: ["key"]
+            }
+            SequenceDescription {
+                Name: "myseq"
+            }
+        )");
+
+        TestExport(runtime, ++txId, "/MyRoot", Sprintf(R"(
+            ExportToS3Settings {
+              endpoint: "localhost:%d"
+              scheme: HTTP
+              items {
+                source_path: "/MyRoot/Original"
+                destination_prefix: ""
+              }
+            }
+        )", port));
+        env.TestWaitNotification(runtime, txId);
+        TestGetExport(runtime, txId, "/MyRoot");
+
+        TestImport(runtime, ++txId, "/MyRoot", Sprintf(R"(
+            ImportFromS3Settings {
+              endpoint: "localhost:%d"
+              scheme: HTTP
+              items {
+                source_prefix: ""
+                destination_path: "/MyRoot/Restored"
+              }
+            }
+        )", port));
+        env.TestWaitNotification(runtime, txId);
+        TestGetImport(runtime, txId, "/MyRoot");
+
+        const auto desc = DescribePath(runtime, "/MyRoot/Restored", true, true);
+        UNIT_ASSERT_VALUES_EQUAL(desc.GetStatus(), NKikimrScheme::StatusSuccess);
+
+        const auto& table = desc.GetPathDescription().GetTable();
+
+        UNIT_ASSERT_C(CheckDefaultFromSequence(table), "Invalid default value");
+    }
+
+    Y_UNIT_TEST(ShouldRestoreSequence) {
+        TPortManager portManager;
+        const ui16 port = portManager.GetPort();
+
+        TS3Mock s3Mock({}, TS3Mock::TSettings(port));
+        UNIT_ASSERT(s3Mock.Start());
+
+        TTestBasicRuntime runtime;
+        TTestEnv env(runtime);
+
+        ui64 txId = 100;
+
+        runtime.SetLogPriority(NKikimrServices::DATASHARD_BACKUP, NActors::NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::DATASHARD_RESTORE, NActors::NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::EXPORT, NActors::NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::IMPORT, NActors::NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::SEQUENCEPROXY, NActors::NLog::PRI_TRACE);
+
+        TestCreateIndexedTable(runtime, ++txId, "/MyRoot", R"(
+            TableDescription {
+                Name: "Original"
+                Columns { Name: "key" Type: "Uint64" DefaultFromSequence: "myseq" }
+                Columns { Name: "value" Type: "Uint64" }
+                KeyColumnNames: ["key"]
+            }
+            SequenceDescription {
+                Name: "myseq"
+            }
+        )");
+        env.TestWaitNotification(runtime, txId);
+
+        i64 value = DoNextVal(runtime, "/MyRoot/Original/myseq");
+        UNIT_ASSERT_VALUES_EQUAL(value, 1);
+
+        TestExport(runtime, ++txId, "/MyRoot", Sprintf(R"(
+            ExportToS3Settings {
+              endpoint: "localhost:%d"
+              scheme: HTTP
+              items {
+                source_path: "/MyRoot/Original"
+                destination_prefix: ""
+              }
+            }
+        )", port));
+        env.TestWaitNotification(runtime, txId);
+        TestGetExport(runtime, txId, "/MyRoot");
+
+        TestImport(runtime, ++txId, "/MyRoot", Sprintf(R"(
+            ImportFromS3Settings {
+              endpoint: "localhost:%d"
+              scheme: HTTP
+              items {
+                source_prefix: ""
+                destination_path: "/MyRoot/Restored"
+              }
+            }
+        )", port));
+        env.TestWaitNotification(runtime, txId);
+        TestGetImport(runtime, txId, "/MyRoot");
+
+        const auto desc = DescribePath(runtime, "/MyRoot/Restored", true, true);
+        UNIT_ASSERT_VALUES_EQUAL(desc.GetStatus(), NKikimrScheme::StatusSuccess);
+
+        const auto& table = desc.GetPathDescription().GetTable();
+
+        value = DoNextVal(runtime, "/MyRoot/Restored/myseq");
+        UNIT_ASSERT_VALUES_EQUAL(value, 2);
+
+        UNIT_ASSERT_C(CheckDefaultFromSequence(table), "Invalid default value");
+    }
+
+    Y_UNIT_TEST(ShouldRestoreSequenceWithOverflow) {
+        TPortManager portManager;
+        const ui16 port = portManager.GetPort();
+
+        TS3Mock s3Mock({}, TS3Mock::TSettings(port));
+        UNIT_ASSERT(s3Mock.Start());
+
+        TTestBasicRuntime runtime;
+        TTestEnv env(runtime);
+
+        ui64 txId = 100;
+
+        runtime.SetLogPriority(NKikimrServices::DATASHARD_BACKUP, NActors::NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::DATASHARD_RESTORE, NActors::NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::EXPORT, NActors::NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::IMPORT, NActors::NLog::PRI_TRACE);
+        runtime.SetLogPriority(NKikimrServices::SEQUENCEPROXY, NActors::NLog::PRI_TRACE);
+
+        TestCreateIndexedTable(runtime, ++txId, "/MyRoot", R"(
+            TableDescription {
+                Name: "Original"
+                Columns { Name: "key" Type: "Uint64" DefaultFromSequence: "myseq" }
+                Columns { Name: "value" Type: "Uint64" }
+                KeyColumnNames: ["key"]
+            }
+            SequenceDescription {
+                Name: "myseq"
+                MinValue: 1
+                MaxValue: 2
+            }
+        )");
+        env.TestWaitNotification(runtime, txId);
+
+        i64 value = DoNextVal(runtime, "/MyRoot/Original/myseq");
+        UNIT_ASSERT_VALUES_EQUAL(value, 1);
+
+        value = DoNextVal(runtime, "/MyRoot/Original/myseq");
+        UNIT_ASSERT_VALUES_EQUAL(value, 2);
+
+        TestExport(runtime, ++txId, "/MyRoot", Sprintf(R"(
+            ExportToS3Settings {
+              endpoint: "localhost:%d"
+              scheme: HTTP
+              items {
+                source_path: "/MyRoot/Original"
+                destination_prefix: ""
+              }
+            }
+        )", port));
+        env.TestWaitNotification(runtime, txId);
+        TestGetExport(runtime, txId, "/MyRoot");
+
+        TestImport(runtime, ++txId, "/MyRoot", Sprintf(R"(
+            ImportFromS3Settings {
+              endpoint: "localhost:%d"
+              scheme: HTTP
+              items {
+                source_prefix: ""
+                destination_path: "/MyRoot/Restored"
+              }
+            }
+        )", port));
+        env.TestWaitNotification(runtime, txId);
+        TestGetImport(runtime, txId, "/MyRoot");
+
+        const auto desc = DescribePath(runtime, "/MyRoot/Restored", true, true);
+        UNIT_ASSERT_VALUES_EQUAL(desc.GetStatus(), NKikimrScheme::StatusSuccess);
+
+        const auto& table = desc.GetPathDescription().GetTable();
+
+        value = DoNextVal(runtime, "/MyRoot/Restored/myseq", Ydb::StatusIds::SCHEME_ERROR);
+
+        UNIT_ASSERT_C(CheckDefaultFromSequence(table), "Invalid default value");
+    }
+
     Y_UNIT_TEST(ExportImportPg) {
         TTestBasicRuntime runtime;
         TTestEnv env(runtime, TTestEnvOptions().EnableTablePgTypes(true));
@@ -763,7 +1135,76 @@ Y_UNIT_TEST_SUITE(TRestoreTests) {
         env.TestWaitNotification(runtime, txId);
         TestGetExport(runtime, txId, "/MyRoot");
 
-        TestImport(runtime, txId, "/MyRoot", Sprintf(R"(
+        TestImport(runtime, ++txId, "/MyRoot", Sprintf(R"(
+            ImportFromS3Settings {
+              endpoint: "localhost:%d"
+              scheme: HTTP
+              items {
+                source_prefix: "Backup1"
+                destination_path: "/MyRoot/Restored"
+              }
+            }
+        )", port));
+        env.TestWaitNotification(runtime, txId);
+        TestGetImport(runtime, txId, "/MyRoot");
+    }
+
+    Y_UNIT_TEST(ExportImportUuid) {
+        TTestBasicRuntime runtime;
+        TTestEnv env(runtime, TTestEnvOptions().EnableTablePgTypes(true));
+        ui64 txId = 100;
+
+        TestCreateTable(runtime, ++txId, "/MyRoot", R"(
+            Name: "Table"
+            Columns { Name: "key" Type: "Uint32" }
+            Columns { Name: "value" Type: "Uuid" }
+            KeyColumnNames: ["key"]
+        )");
+        env.TestWaitNotification(runtime, txId);
+
+        {
+            TString tablePath = "/MyRoot/Table";
+            int partitionIdx = 0;
+
+            auto tableDesc = DescribePath(runtime, tablePath, true, true);
+            const auto& tablePartitions = tableDesc.GetPathDescription().GetTablePartitions();
+            UNIT_ASSERT(partitionIdx < tablePartitions.size());
+            const ui64 datashardTabletId = tablePartitions[partitionIdx].GetDatashardId();
+
+            NKikimrMiniKQL::TResult result;
+            TString error;
+            NKikimrProto::EReplyStatus status = LocalMiniKQL(runtime, datashardTabletId, Sprintf(R"(
+                (
+                    (let key '( '('key (Uint32 '%d) ) ) )
+                    (let row '( '('value (Uuid '"%s") ) ) )
+                    (return (AsList (UpdateRow '__user__%s key row) ))
+                )
+            )", 1, "0123456789012345", "Table"), result, error);
+
+            UNIT_ASSERT_VALUES_EQUAL_C(status, NKikimrProto::EReplyStatus::OK, error);
+            UNIT_ASSERT_VALUES_EQUAL(error, "");
+        }
+
+        TPortManager portManager;
+        const ui16 port = portManager.GetPort();
+
+        TS3Mock s3Mock({}, TS3Mock::TSettings(port));
+        UNIT_ASSERT(s3Mock.Start());
+
+        TestExport(runtime, ++txId, "/MyRoot", Sprintf(R"(
+            ExportToS3Settings {
+              endpoint: "localhost:%d"
+              scheme: HTTP
+              items {
+                source_path: "/MyRoot/Table"
+                destination_prefix: "Backup1"
+              }
+            }
+        )", port));
+        env.TestWaitNotification(runtime, txId);
+        TestGetExport(runtime, txId, "/MyRoot");
+
+        TestImport(runtime, ++txId, "/MyRoot", Sprintf(R"(
             ImportFromS3Settings {
               endpoint: "localhost:%d"
               scheme: HTTP
@@ -2390,7 +2831,7 @@ Y_UNIT_TEST_SUITE(TImportTests) {
             }
 
             return ev->Get()->Record
-                .GetTransaction(0).GetOperationType() == NKikimrSchemeOp::ESchemeOpCreateTable;
+                .GetTransaction(0).GetOperationType() == NKikimrSchemeOp::ESchemeOpCreateIndexedTable;
         });
     }
 
@@ -2451,6 +2892,59 @@ Y_UNIT_TEST_SUITE(TImportTests) {
         Run(runtime, env, ConvertTestData(data), request, Ydb::StatusIds::PRECONDITION_FAILED);
         Run(runtime, env, ConvertTestData(data), request, Ydb::StatusIds::SUCCESS, "/MyRoot", false, userSID);
     }
+
+    Y_UNIT_TEST(UidAsIdempotencyKey) {
+        TTestBasicRuntime runtime;
+        TTestEnv env(runtime, TTestEnvOptions());
+        ui64 txId = 100;
+
+        const auto data = GenerateTestData(R"(
+            columns {
+              name: "key"
+              type { optional_type { item { type_id: UTF8 } } }
+            }
+            columns {
+              name: "value"
+              type { optional_type { item { type_id: UTF8 } } }
+            }
+            primary_key: "key"
+        )", {{"a", 1}});
+
+        TPortManager portManager;
+        const ui16 port = portManager.GetPort();
+
+        TS3Mock s3Mock(ConvertTestData(data), TS3Mock::TSettings(port));
+        UNIT_ASSERT(s3Mock.Start());
+
+        const auto request = Sprintf(R"(
+            OperationParams {
+              labels {
+                key: "uid"
+                value: "foo"
+              }
+            }
+            ImportFromS3Settings {
+              endpoint: "localhost:%d"
+              scheme: HTTP
+              items {
+                source_prefix: ""
+                destination_path: "/MyRoot/Table"
+              }
+            }
+        )", port);
+
+        // create operation
+        TestImport(runtime, ++txId, "/MyRoot", request);
+        const ui64 importId = txId;
+        // create operation again with same uid
+        TestImport(runtime, ++txId, "/MyRoot", request);
+        // new operation was not created
+        TestGetImport(runtime, txId, "/MyRoot", Ydb::StatusIds::NOT_FOUND);
+        // check previous operation
+        TestGetImport(runtime, importId, "/MyRoot");
+        env.TestWaitNotification(runtime, importId);
+    }
+
 }
 
 Y_UNIT_TEST_SUITE(TImportWithRebootsTests) {
diff --git a/ydb/core/tx/schemeshard/ut_restore/ya.make b/ydb/core/tx/schemeshard/ut_restore/ya.make
index 308dd73133fa..7044d4283b5e 100644
--- a/ydb/core/tx/schemeshard/ut_restore/ya.make
+++ b/ydb/core/tx/schemeshard/ut_restore/ya.make
@@ -21,7 +21,7 @@ PEERDIR(
     ydb/core/wrappers/ut_helpers
     ydb/core/ydb_convert
     ydb/library/yql/sql/pg
-    ydb/library/yql/parser/pg_wrapper    
+    ydb/library/yql/parser/pg_wrapper
 )
 
 SRCS(
diff --git a/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.darwin-arm64.txt
index 1cec7b5f2c44..61f0412b1d9d 100644
--- a/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_rtmr PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_rtmr PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_rtmr/ut_rtmr.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.darwin-x86_64.txt
index 48c9fa3fb264..67397097ad83 100644
--- a/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_rtmr PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_rtmr PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_rtmr/ut_rtmr.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.linux-aarch64.txt
index ec8187234499..f28225aaf333 100644
--- a/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_rtmr PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_rtmr PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_rtmr/ut_rtmr.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.linux-x86_64.txt
index 8a6237c2aa0d..cffdfeff718a 100644
--- a/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_rtmr PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_rtmr PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_rtmr/ut_rtmr.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.windows-x86_64.txt
index 37cc2af750ac..4979fd434435 100644
--- a/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_rtmr/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.darwin-arm64.txt
index aa816b856de6..104d15c80a96 100644
--- a/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_rtmr_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_rtmr_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_rtmr_reboots/ut_rtmr_reboots.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.darwin-x86_64.txt
index 2f1c7933bf7f..0b8bb1a0c9f1 100644
--- a/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_rtmr_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_rtmr_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_rtmr_reboots/ut_rtmr_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.linux-aarch64.txt
index 025790101990..ead1400b2d0f 100644
--- a/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_rtmr_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_rtmr_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_rtmr_reboots/ut_rtmr_reboots.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.linux-x86_64.txt
index 12373ee41661..117297669691 100644
--- a/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_rtmr_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_rtmr_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_rtmr_reboots/ut_rtmr_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.windows-x86_64.txt
index 49112db67440..77107e26ad22 100644
--- a/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_rtmr_reboots/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.darwin-arm64.txt
index 228c3cc0ec32..8591fcb8a7f0 100644
--- a/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.darwin-arm64.txt
@@ -29,8 +29,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_ru_calculator PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_ru_calculator PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_ru_calculator/ut_ru_calculator.cpp
@@ -60,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.darwin-x86_64.txt
index 962a30d4cb36..3b499e283b2b 100644
--- a/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.darwin-x86_64.txt
@@ -30,8 +30,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_ru_calculator PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_ru_calculator PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_ru_calculator/ut_ru_calculator.cpp
@@ -61,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.linux-aarch64.txt
index 468c66ff4b14..12eed342e444 100644
--- a/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.linux-aarch64.txt
@@ -32,9 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_ru_calculator PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_ru_calculator PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_ru_calculator/ut_ru_calculator.cpp
@@ -64,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.linux-x86_64.txt
index 02e0aa735bba..f1464aa51c6b 100644
--- a/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.linux-x86_64.txt
@@ -33,9 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_ru_calculator PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_ru_calculator PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_ru_calculator/ut_ru_calculator.cpp
@@ -65,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.windows-x86_64.txt
index 0df1b1a95625..174ab11898c1 100644
--- a/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_ru_calculator/CMakeLists.windows-x86_64.txt
@@ -54,6 +54,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.darwin-arm64.txt
index 98bcb28af9df..2a66a50354de 100644
--- a/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.darwin-arm64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_sequence PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_sequence PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_sequence/ut_sequence.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.darwin-x86_64.txt
index bdaab8f0698f..f1c0ae1d6003 100644
--- a/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.darwin-x86_64.txt
@@ -33,8 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_sequence PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_sequence PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_sequence/ut_sequence.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.linux-aarch64.txt
index 4aef4b35684d..35c531f001e0 100644
--- a/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.linux-aarch64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_sequence PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_sequence PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_sequence/ut_sequence.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.linux-x86_64.txt
index 5d0c03b6dae3..708503284f87 100644
--- a/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.linux-x86_64.txt
@@ -36,9 +36,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_sequence PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_sequence PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_sequence/ut_sequence.cpp
@@ -68,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.windows-x86_64.txt
index d0e31d6a0dd6..68cb9c89b879 100644
--- a/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_sequence/CMakeLists.windows-x86_64.txt
@@ -57,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_sequence/ut_sequence.cpp b/ydb/core/tx/schemeshard/ut_sequence/ut_sequence.cpp
index 2056b24ff823..d7ddeee9f041 100644
--- a/ydb/core/tx/schemeshard/ut_sequence/ut_sequence.cpp
+++ b/ydb/core/tx/schemeshard/ut_sequence/ut_sequence.cpp
@@ -1,3 +1,4 @@
+#include 
 #include 
 
 using namespace NKikimr::NSchemeShard;
@@ -336,4 +337,37 @@ Y_UNIT_TEST_SUITE(TSequence) {
         TestLs(runtime, "/MyRoot/Table", false, NLs::PathNotExist);
     }
 
+    Y_UNIT_TEST(CopyTableWithSequence) {
+        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);
+
+        TestCopyTable(runtime, ++txId, "/MyRoot", "copy", "/MyRoot/Table");
+        env.TestWaitNotification(runtime, txId);
+
+        TestLs(runtime, "/MyRoot/copy/myseq", TDescribeOptionsBuilder().SetShowPrivateTable(true), NLs::PathExist);
+        env.TestWaitNotification(runtime, txId);
+    }
+
 } // Y_UNIT_TEST_SUITE(TSequence)
diff --git a/ydb/core/tx/schemeshard/ut_sequence/ya.make b/ydb/core/tx/schemeshard/ut_sequence/ya.make
index d6ba601923dd..d48d9e399ec9 100644
--- a/ydb/core/tx/schemeshard/ut_sequence/ya.make
+++ b/ydb/core/tx/schemeshard/ut_sequence/ya.make
@@ -20,6 +20,7 @@ PEERDIR(
     ydb/core/testlib/default
     ydb/core/tx
     ydb/core/tx/columnshard
+    ydb/core/tx/datashard
     ydb/core/tx/schemeshard/ut_helpers
     ydb/library/yql/public/udf/service/exception_policy
 )
diff --git a/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.darwin-arm64.txt
index 8f2d82f09f71..c2a11a4c854f 100644
--- a/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.darwin-arm64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_sequence_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_sequence_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_sequence_reboots/ut_sequence_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.darwin-x86_64.txt
index dbe3e93e3139..d02ce964c083 100644
--- a/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.darwin-x86_64.txt
@@ -33,8 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_sequence_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_sequence_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_sequence_reboots/ut_sequence_reboots.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.linux-aarch64.txt
index 59bd5e3162d0..15684a727349 100644
--- a/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.linux-aarch64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_sequence_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_sequence_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_sequence_reboots/ut_sequence_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.linux-x86_64.txt
index 9546d23b22d9..dd2c8f08d4c3 100644
--- a/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.linux-x86_64.txt
@@ -36,9 +36,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_sequence_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_sequence_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_sequence_reboots/ut_sequence_reboots.cpp
@@ -68,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.windows-x86_64.txt
index 16638ec57c4a..48a947f393f4 100644
--- a/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_sequence_reboots/CMakeLists.windows-x86_64.txt
@@ -57,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_sequence_reboots/ut_sequence_reboots.cpp b/ydb/core/tx/schemeshard/ut_sequence_reboots/ut_sequence_reboots.cpp
index d0553d6ad40e..b6fa29f79618 100644
--- a/ydb/core/tx/schemeshard/ut_sequence_reboots/ut_sequence_reboots.cpp
+++ b/ydb/core/tx/schemeshard/ut_sequence_reboots/ut_sequence_reboots.cpp
@@ -23,11 +23,9 @@ Y_UNIT_TEST_SUITE(TSequenceReboots) {
             )");
             t.TestEnv->TestWaitNotification(runtime, t.TxId);
 
-            TestLs(runtime, "/MyRoot/seq", false, NLs::PathExist);
-
             {
                 TInactiveZone inactive(activeZone);
-                // no inactive finalization
+                TestLs(runtime, "/MyRoot/seq", false, NLs::PathExist);
             }
         });
     }
@@ -105,14 +103,20 @@ Y_UNIT_TEST_SUITE(TSequenceReboots) {
                 {NKikimrScheme::StatusAccepted, NKikimrScheme::StatusAlreadyExists, NKikimrScheme::StatusMultipleModifications});
             t.TestEnv->TestWaitNotification(runtime, t.TxId);
 
-            TestLs(runtime, "/MyRoot/seq", false, NLs::PathExist);
+            {
+                TInactiveZone inactive(activeZone);
+                TestLs(runtime, "/MyRoot/seq", false, NLs::PathExist);
+            }
 
             t.TestEnv->ReliablePropose(runtime,
                 DropSequenceRequest(++t.TxId, "/MyRoot", "seq"),
                 {NKikimrScheme::StatusAccepted, NKikimrScheme::StatusMultipleModifications});
             t.TestEnv->TestWaitNotification(runtime, t.TxId);
 
-            TestLs(runtime, "/MyRoot/seq", false, NLs::PathNotExist);
+            {
+                TInactiveZone inactive(activeZone);
+                TestLs(runtime, "/MyRoot/seq", false, NLs::PathNotExist);
+            }
 
             t.TestEnv->ReliablePropose(runtime,
                 CreateSequenceRequest(++t.TxId, "/MyRoot", R"(
@@ -121,11 +125,9 @@ Y_UNIT_TEST_SUITE(TSequenceReboots) {
                 {NKikimrScheme::StatusAccepted, NKikimrScheme::StatusAlreadyExists, NKikimrScheme::StatusMultipleModifications});
             t.TestEnv->TestWaitNotification(runtime, t.TxId);
 
-            TestLs(runtime, "/MyRoot/seq", false, NLs::PathExist);
-
             {
                 TInactiveZone inactive(activeZone);
-                // no inactive finalization
+                TestLs(runtime, "/MyRoot/seq", false, NLs::PathExist);
             }
         });
     }
@@ -163,19 +165,69 @@ Y_UNIT_TEST_SUITE(TSequenceReboots) {
                 {NKikimrScheme::StatusAccepted, NKikimrScheme::StatusAlreadyExists, NKikimrScheme::StatusMultipleModifications});
             t.TestEnv->TestWaitNotification(runtime, t.TxId);
 
-            TestLs(runtime, "/MyRoot/Table/seq1", TDescribeOptionsBuilder().SetShowPrivateTable(true), NLs::PathExist);
-            TestLs(runtime, "/MyRoot/Table/seq2", TDescribeOptionsBuilder().SetShowPrivateTable(true), NLs::PathExist);
+            {
+                TInactiveZone inactive(activeZone);
+                TestLs(
+                    runtime, "/MyRoot/Table/seq1", TDescribeOptionsBuilder().SetShowPrivateTable(true), NLs::PathExist);
+                TestLs(
+                    runtime, "/MyRoot/Table/seq2", TDescribeOptionsBuilder().SetShowPrivateTable(true), NLs::PathExist);
+
+            }
 
             t.TestEnv->ReliablePropose(runtime,
                 DropTableRequest(++t.TxId, "/MyRoot", "Table"),
                 {NKikimrScheme::StatusAccepted, NKikimrScheme::StatusPathDoesNotExist, NKikimrScheme::StatusMultipleModifications});
             t.TestEnv->TestWaitNotification(runtime, t.TxId);
 
-            TestLs(runtime, "/MyRoot/Table", false, NLs::PathNotExist);
+            {
+                TInactiveZone inactive(activeZone);
+                TestLs(runtime, "/MyRoot/Table", false, NLs::PathNotExist);
+            }
+        });
+    }
+
+    Y_UNIT_TEST(CopyTableWithSequence) {
+        TTestWithReboots t(false);
+        t.Run([&](TTestActorRuntime& runtime, bool& activeZone) {
+            runtime.SetLogPriority(NKikimrServices::FLAT_TX_SCHEMESHARD, NActors::NLog::PRI_TRACE);
+            runtime.SetLogPriority(NKikimrServices::SEQUENCESHARD, NActors::NLog::PRI_TRACE);
+
+            {
+                TInactiveZone inactive(activeZone);
+                TestCreateIndexedTable(runtime, ++t.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"
+                    }
+                )");
+                t.TestEnv->TestWaitNotification(runtime, t.TxId);
+
+                i64 value = DoNextVal(runtime, "/MyRoot/Table/myseq");
+                UNIT_ASSERT_VALUES_EQUAL(value, 1);
+            }
+
+            t.TestEnv->ReliablePropose(runtime, CopyTableRequest(++t.TxId, "/MyRoot", "copy", "/MyRoot/Table"),
+                {NKikimrScheme::StatusAccepted, NKikimrScheme::StatusAlreadyExists,
+                NKikimrScheme::StatusMultipleModifications});
+            t.TestEnv->TestWaitNotification(runtime, t.TxId);
 
             {
                 TInactiveZone inactive(activeZone);
-                // no inactive finalization
+
+                TestLs(
+                    runtime, "/MyRoot/copy/myseq", TDescribeOptionsBuilder().SetShowPrivateTable(true), NLs::PathExist);
+
+                i64 value = DoNextVal(runtime, "/MyRoot/copy/myseq");
+                UNIT_ASSERT_VALUES_EQUAL(value, 2);
             }
         });
     }
diff --git a/ydb/core/tx/schemeshard/ut_sequence_reboots/ya.make b/ydb/core/tx/schemeshard/ut_sequence_reboots/ya.make
index d431a016bb5d..8e9c98748570 100644
--- a/ydb/core/tx/schemeshard/ut_sequence_reboots/ya.make
+++ b/ydb/core/tx/schemeshard/ut_sequence_reboots/ya.make
@@ -2,7 +2,7 @@ UNITTEST_FOR(ydb/core/tx/schemeshard)
 
 FORK_SUBTESTS()
 
-SPLIT_FACTOR(2)
+SPLIT_FACTOR(6)
 
 IF (SANITIZER_TYPE == "thread" OR WITH_VALGRIND)
     TIMEOUT(3600)
diff --git a/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.darwin-arm64.txt
index d44a06573451..44ab7b5d9602 100644
--- a/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_serverless PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_serverless PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_serverless/ut_serverless.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.darwin-x86_64.txt
index ad19c0800c2b..d83bd545d965 100644
--- a/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_serverless PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_serverless PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_serverless/ut_serverless.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.linux-aarch64.txt
index 8b8631e4f378..7d8edc4c7254 100644
--- a/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_serverless PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_serverless PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_serverless/ut_serverless.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.linux-x86_64.txt
index 86a42c0d8cbf..85cdc8102e92 100644
--- a/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_serverless PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_serverless PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_serverless/ut_serverless.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.windows-x86_64.txt
index 1bef091afb8d..803cb79d33cf 100644
--- a/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_serverless/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.darwin-arm64.txt
index 7fa8a9462f2c..c11ba802b7fc 100644
--- a/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_serverless_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_serverless_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_serverless_reboots/ut_serverless_reboots.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.darwin-x86_64.txt
index 6862513ea34e..867c90d7096f 100644
--- a/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_serverless_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_serverless_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_serverless_reboots/ut_serverless_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.linux-aarch64.txt
index 36858a5a8a42..4288bde7067d 100644
--- a/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_serverless_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_serverless_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_serverless_reboots/ut_serverless_reboots.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.linux-x86_64.txt
index cfaa780864cc..457f940e71b3 100644
--- a/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_serverless_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_serverless_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_serverless_reboots/ut_serverless_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.windows-x86_64.txt
index 9836cd321f7c..740ef0f6ceec 100644
--- a/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_serverless_reboots/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.darwin-arm64.txt
index d12ed5a3f1d0..e5f68882ddf6 100644
--- a/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_split_merge PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_split_merge PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_split_merge/ut_split_merge.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.darwin-x86_64.txt
index 3da13e83de40..121cd0cb9c88 100644
--- a/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_split_merge PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_split_merge PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_split_merge/ut_split_merge.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.linux-aarch64.txt
index fdd8b41a6ae0..f43f6389ceec 100644
--- a/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_split_merge PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_split_merge PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_split_merge/ut_split_merge.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.linux-x86_64.txt
index 0239c347c65d..879146961b6a 100644
--- a/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_split_merge PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_split_merge PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_split_merge/ut_split_merge.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.windows-x86_64.txt
index e8f8600bb9c4..95ec2d37ab21 100644
--- a/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_split_merge/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.darwin-arm64.txt
index 64d703acd816..e8bb29c83171 100644
--- a/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_split_merge_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_split_merge_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_split_merge_reboots/ut_split_merge_reboots.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   LARGE
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.darwin-x86_64.txt
index 919b33e94a1a..a90037c36ca2 100644
--- a/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_split_merge_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_split_merge_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_split_merge_reboots/ut_split_merge_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   LARGE
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.linux-aarch64.txt
index 677a817d31e9..f2bf291b3f85 100644
--- a/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_split_merge_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_split_merge_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_split_merge_reboots/ut_split_merge_reboots.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   LARGE
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.linux-x86_64.txt
index b882f857f836..a716284f0121 100644
--- a/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_split_merge_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_split_merge_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_split_merge_reboots/ut_split_merge_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   LARGE
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.windows-x86_64.txt
index ccc2b392580f..dfd9be10d729 100644
--- a/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_split_merge_reboots/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   LARGE
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_stats/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_stats/CMakeLists.darwin-arm64.txt
index 7c10e2e61803..ecb644b9b3c8 100644
--- a/ydb/core/tx/schemeshard/ut_stats/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_stats/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_stats PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_stats PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_stats/ut_stats.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_stats/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_stats/CMakeLists.darwin-x86_64.txt
index c9884411ddd5..b21608ca5635 100644
--- a/ydb/core/tx/schemeshard/ut_stats/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_stats/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_stats PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_stats PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_stats/ut_stats.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_stats/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_stats/CMakeLists.linux-aarch64.txt
index d6bbf763a3df..85e3234b05ea 100644
--- a/ydb/core/tx/schemeshard/ut_stats/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_stats/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_stats PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_stats PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_stats/ut_stats.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_stats/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_stats/CMakeLists.linux-x86_64.txt
index 65fe40cc98d6..4274567e8864 100644
--- a/ydb/core/tx/schemeshard/ut_stats/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_stats/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_stats PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_stats PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_stats/ut_stats.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_stats/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_stats/CMakeLists.windows-x86_64.txt
index faa6d3e7d4f9..14150068c5b2 100644
--- a/ydb/core/tx/schemeshard/ut_stats/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_stats/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.darwin-arm64.txt
index 85f9adc3b92e..65435cd266d8 100644
--- a/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_subdomain PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_subdomain PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_subdomain/ut_subdomain.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.darwin-x86_64.txt
index 49cf2eba94e4..001f772345d0 100644
--- a/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_subdomain PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_subdomain PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_subdomain/ut_subdomain.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.linux-aarch64.txt
index 5b24ec33e77e..cfc1a5506a33 100644
--- a/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_subdomain PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_subdomain PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_subdomain/ut_subdomain.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.linux-x86_64.txt
index db0f79f48b1c..368505fe3a39 100644
--- a/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_subdomain PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_subdomain PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_subdomain/ut_subdomain.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.windows-x86_64.txt
index 944e7a94c5a1..d90adddd0d14 100644
--- a/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_subdomain/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.darwin-arm64.txt
index 114c72c5b6ae..522fa9174e60 100644
--- a/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_subdomain_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_subdomain_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_subdomain_reboots/ut_subdomain_reboots.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.darwin-x86_64.txt
index 1b55bd6d4e07..1b6cfcb223c2 100644
--- a/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_subdomain_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_subdomain_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_subdomain_reboots/ut_subdomain_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.linux-aarch64.txt
index 92edcc81bb99..2afef50cb88b 100644
--- a/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_subdomain_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_subdomain_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_subdomain_reboots/ut_subdomain_reboots.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.linux-x86_64.txt
index c434e147977a..19d0c4a04ea5 100644
--- a/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_subdomain_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_subdomain_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_subdomain_reboots/ut_subdomain_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.windows-x86_64.txt
index b35a20cff7c7..7ecea8f233c0 100644
--- a/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_subdomain_reboots/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.darwin-arm64.txt
index 329bbba1cccf..940619e9f305 100644
--- a/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.darwin-arm64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_topic_splitmerge PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_topic_splitmerge PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_topic_splitmerge/ut_topic_splitmerge.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.darwin-x86_64.txt
index a73fe9a8a5cc..18866ae1bb90 100644
--- a/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.darwin-x86_64.txt
@@ -33,8 +33,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_topic_splitmerge PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_topic_splitmerge PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_topic_splitmerge/ut_topic_splitmerge.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.linux-aarch64.txt
index 24cc09d92f41..0f666a99ff32 100644
--- a/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.linux-aarch64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_topic_splitmerge PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_topic_splitmerge PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_topic_splitmerge/ut_topic_splitmerge.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.linux-x86_64.txt
index d546519beae0..9f8ba6b111e1 100644
--- a/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.linux-x86_64.txt
@@ -36,9 +36,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_topic_splitmerge PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_topic_splitmerge PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_topic_splitmerge/ut_topic_splitmerge.cpp
@@ -68,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.windows-x86_64.txt
index c0d3bd8cdc0a..89e640111306 100644
--- a/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_topic_splitmerge/CMakeLists.windows-x86_64.txt
@@ -57,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.darwin-arm64.txt
index 8e602bf9939a..62ff983b0bc7 100644
--- a/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.darwin-arm64.txt
@@ -27,8 +27,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_ttl PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_ttl PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_ttl/ut_ttl.cpp
@@ -58,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.darwin-x86_64.txt
index e9e69878f2dc..c0fbf5c314b4 100644
--- a/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.darwin-x86_64.txt
@@ -28,8 +28,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_ttl PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_ttl PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_ttl/ut_ttl.cpp
@@ -59,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.linux-aarch64.txt
index c7e7c5a263c9..0deea1701683 100644
--- a/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.linux-aarch64.txt
@@ -30,9 +30,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_ttl PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_ttl PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_ttl/ut_ttl.cpp
@@ -62,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.linux-x86_64.txt
index 0de2d74b9a5d..31be7de334e6 100644
--- a/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.linux-x86_64.txt
@@ -31,9 +31,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_ttl PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_ttl PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_ttl/ut_ttl.cpp
@@ -63,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.windows-x86_64.txt
index 72e26c488adc..2631ef61dd5a 100644
--- a/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_ttl/CMakeLists.windows-x86_64.txt
@@ -52,6 +52,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.darwin-arm64.txt
index 70e47bf17c57..d1e72288323f 100644
--- a/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.darwin-arm64.txt
@@ -41,8 +41,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_user_attributes PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_user_attributes PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_user_attributes/ut_user_attributes.cpp
@@ -72,6 +70,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.darwin-x86_64.txt
index 97ac58c11299..f4c115071a5f 100644
--- a/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.darwin-x86_64.txt
@@ -42,8 +42,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_user_attributes PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_user_attributes PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_user_attributes/ut_user_attributes.cpp
@@ -73,6 +71,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.linux-aarch64.txt
index 78ea6fce040b..6a6f046a2af5 100644
--- a/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.linux-aarch64.txt
@@ -44,9 +44,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_user_attributes PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_user_attributes PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_user_attributes/ut_user_attributes.cpp
@@ -76,6 +73,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.linux-x86_64.txt
index 293b90ebdbb6..682429197fa9 100644
--- a/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.linux-x86_64.txt
@@ -45,9 +45,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_user_attributes PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_user_attributes PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_user_attributes/ut_user_attributes.cpp
@@ -77,6 +74,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.windows-x86_64.txt
index 5277810f948c..8e6ed3d7b404 100644
--- a/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_user_attributes/CMakeLists.windows-x86_64.txt
@@ -66,6 +66,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.darwin-arm64.txt
index 5b711530d9b8..cfdb829cbb10 100644
--- a/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.darwin-arm64.txt
@@ -31,8 +31,6 @@ target_link_options(core-tx-schemeshard-ut_user_attributes_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(core-tx-schemeshard-ut_user_attributes_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_user_attributes_reboots/ut_user_attributes_reboots.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.darwin-x86_64.txt
index b8c626c2cf47..424d9c1089a7 100644
--- a/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.darwin-x86_64.txt
@@ -32,8 +32,6 @@ target_link_options(core-tx-schemeshard-ut_user_attributes_reboots PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(core-tx-schemeshard-ut_user_attributes_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_user_attributes_reboots/ut_user_attributes_reboots.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.linux-aarch64.txt
index 4cd905e56ca3..17bf4b5cf719 100644
--- a/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.linux-aarch64.txt
@@ -34,9 +34,6 @@ target_link_options(core-tx-schemeshard-ut_user_attributes_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(core-tx-schemeshard-ut_user_attributes_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_user_attributes_reboots/ut_user_attributes_reboots.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.linux-x86_64.txt
index 84ac775ea0c0..e72ba8d10d86 100644
--- a/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.linux-x86_64.txt
@@ -35,9 +35,6 @@ target_link_options(core-tx-schemeshard-ut_user_attributes_reboots PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(core-tx-schemeshard-ut_user_attributes_reboots PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_user_attributes_reboots/ut_user_attributes_reboots.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.windows-x86_64.txt
index d9ff9652ae1a..69a835d2826d 100644
--- a/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_user_attributes_reboots/CMakeLists.windows-x86_64.txt
@@ -56,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_view/CMakeLists.darwin-arm64.txt b/ydb/core/tx/schemeshard/ut_view/CMakeLists.darwin-arm64.txt
index 7e06068f4131..b117715359f9 100644
--- a/ydb/core/tx/schemeshard/ut_view/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/schemeshard/ut_view/CMakeLists.darwin-arm64.txt
@@ -26,8 +26,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_view PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_view PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_view/ut_view.cpp
@@ -57,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_view/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/schemeshard/ut_view/CMakeLists.darwin-x86_64.txt
index 8eb92da86e6f..d17431bafebc 100644
--- a/ydb/core/tx/schemeshard/ut_view/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_view/CMakeLists.darwin-x86_64.txt
@@ -27,8 +27,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_view PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-schemeshard-ut_view PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_view/ut_view.cpp
@@ -58,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_view/CMakeLists.linux-aarch64.txt b/ydb/core/tx/schemeshard/ut_view/CMakeLists.linux-aarch64.txt
index b9b34dd82d26..f1f75f02a73c 100644
--- a/ydb/core/tx/schemeshard/ut_view/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/schemeshard/ut_view/CMakeLists.linux-aarch64.txt
@@ -29,9 +29,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_view PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_view PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_view/ut_view.cpp
@@ -61,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_view/CMakeLists.linux-x86_64.txt b/ydb/core/tx/schemeshard/ut_view/CMakeLists.linux-x86_64.txt
index 95c47a1a51f5..83ff4f4c818e 100644
--- a/ydb/core/tx/schemeshard/ut_view/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_view/CMakeLists.linux-x86_64.txt
@@ -30,9 +30,6 @@ target_link_options(ydb-core-tx-schemeshard-ut_view PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-schemeshard-ut_view PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/schemeshard/ut_view/ut_view.cpp
@@ -62,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ut_view/CMakeLists.windows-x86_64.txt b/ydb/core/tx/schemeshard/ut_view/CMakeLists.windows-x86_64.txt
index 7ffd4960f538..b4d55beb8bc5 100644
--- a/ydb/core/tx/schemeshard/ut_view/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/schemeshard/ut_view/CMakeLists.windows-x86_64.txt
@@ -51,6 +51,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/schemeshard/ya.make b/ydb/core/tx/schemeshard/ya.make
index f049575c2c9c..8658486694a8 100644
--- a/ydb/core/tx/schemeshard/ya.make
+++ b/ydb/core/tx/schemeshard/ya.make
@@ -102,6 +102,7 @@ SRCS(
     schemeshard__operation_common_external_table.cpp
     schemeshard__operation_common_subdomain.h
     schemeshard__operation_consistent_copy_tables.cpp
+    schemeshard__operation_copy_sequence.cpp
     schemeshard__operation_copy_table.cpp
     schemeshard__operation_create_backup.cpp
     schemeshard__operation_create_bsv.cpp
@@ -244,7 +245,6 @@ PEERDIR(
     ydb/core/engine/minikql
     ydb/core/external_sources
     ydb/core/filestore/core
-    ydb/core/formats/arrow/compression
     ydb/core/kesus/tablet
     ydb/core/metering
     ydb/core/persqueue
@@ -259,6 +259,7 @@ PEERDIR(
     ydb/core/tablet_flat
     ydb/core/tx
     ydb/core/tx/datashard
+    ydb/core/tx/schemeshard/common
     ydb/core/tx/schemeshard/olap
     ydb/core/tx/scheme_board
     ydb/core/tx/tx_allocator_client
@@ -269,6 +270,7 @@ PEERDIR(
     ydb/library/aclib/protos
     ydb/library/login
     ydb/library/login/protos
+    ydb/library/protobuf_printer
     ydb/library/yql/minikql
     ydb/services/bg_tasks
 )
diff --git a/ydb/core/tx/sequenceproxy/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/sequenceproxy/ut/CMakeLists.darwin-arm64.txt
index 21d825c2885a..f1c7f8a1f51f 100644
--- a/ydb/core/tx/sequenceproxy/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/sequenceproxy/ut/CMakeLists.darwin-arm64.txt
@@ -25,8 +25,6 @@ target_link_options(ydb-core-tx-sequenceproxy-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-sequenceproxy-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceproxy/sequenceproxy_ut.cpp
@@ -56,6 +54,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sequenceproxy/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/sequenceproxy/ut/CMakeLists.darwin-x86_64.txt
index 9c2ea8246b9c..a8b211b92577 100644
--- a/ydb/core/tx/sequenceproxy/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/sequenceproxy/ut/CMakeLists.darwin-x86_64.txt
@@ -26,8 +26,6 @@ target_link_options(ydb-core-tx-sequenceproxy-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-sequenceproxy-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceproxy/sequenceproxy_ut.cpp
@@ -57,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sequenceproxy/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tx/sequenceproxy/ut/CMakeLists.linux-aarch64.txt
index 81e438ff5b5b..cfff8a1bdd6c 100644
--- a/ydb/core/tx/sequenceproxy/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/sequenceproxy/ut/CMakeLists.linux-aarch64.txt
@@ -28,9 +28,6 @@ target_link_options(ydb-core-tx-sequenceproxy-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-sequenceproxy-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceproxy/sequenceproxy_ut.cpp
@@ -60,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sequenceproxy/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tx/sequenceproxy/ut/CMakeLists.linux-x86_64.txt
index 7e4b25d89754..3e9108248846 100644
--- a/ydb/core/tx/sequenceproxy/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/sequenceproxy/ut/CMakeLists.linux-x86_64.txt
@@ -29,9 +29,6 @@ target_link_options(ydb-core-tx-sequenceproxy-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-sequenceproxy-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceproxy/sequenceproxy_ut.cpp
@@ -61,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sequenceproxy/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tx/sequenceproxy/ut/CMakeLists.windows-x86_64.txt
index c932a83084c6..164d1320add9 100644
--- a/ydb/core/tx/sequenceproxy/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/sequenceproxy/ut/CMakeLists.windows-x86_64.txt
@@ -50,6 +50,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sequenceshard/public/events.h b/ydb/core/tx/sequenceshard/public/events.h
index 599bd718c180..62187515d291 100644
--- a/ydb/core/tx/sequenceshard/public/events.h
+++ b/ydb/core/tx/sequenceshard/public/events.h
@@ -24,6 +24,8 @@ namespace NSequenceShard {
             EvRestoreSequenceResult,
             EvRedirectSequence,
             EvRedirectSequenceResult,
+            EvGetSequence,
+            EvGetSequenceResult,
             EvEnd,
         };
 
@@ -97,6 +99,11 @@ namespace NSequenceShard {
                     return std::move(*this);
                 }
 
+                TBuilder&& SetFrozen(bool frozen) && {
+                    Msg->Record.SetFrozen(frozen);
+                    return std::move(*this);
+                }
+
                 THolder Done() && {
                     return std::move(Msg);
                 }
@@ -323,6 +330,11 @@ namespace NSequenceShard {
                 InitFrom(record);
             }
 
+            TEvRestoreSequence(const TPathId& pathId, const NKikimrTxSequenceShard::TEvGetSequenceResult& record) {
+                SetPathId(pathId);
+                InitFrom(record);
+            }
+
             void SetPathId(const TPathId& pathId) {
                 auto* p = Record.MutablePathId();
                 p->SetOwnerId(pathId.OwnerId);
@@ -344,6 +356,17 @@ namespace NSequenceShard {
                 Record.SetIncrement(record.GetIncrement());
                 Record.SetCycle(record.GetCycle());
             }
+
+            void InitFrom(const NKikimrTxSequenceShard::TEvGetSequenceResult& record) {
+                Record.SetMinValue(record.GetMinValue());
+                Record.SetMaxValue(record.GetMaxValue());
+                Record.SetStartValue(record.GetStartValue());
+                Record.SetNextValue(record.GetNextValue());
+                Record.SetNextUsed(record.GetNextUsed());
+                Record.SetCache(record.GetCache());
+                Record.SetIncrement(record.GetIncrement());
+                Record.SetCycle(record.GetCycle());
+            }
         };
 
         struct TEvRestoreSequenceResult
@@ -394,6 +417,40 @@ namespace NSequenceShard {
             }
         };
 
+        struct TEvGetSequence
+            : public TEventPB
+        {
+            TEvGetSequence() = default;
+
+            explicit TEvGetSequence(const TPathId& pathId) {
+                SetPathId(pathId);
+            }
+
+            void SetPathId(const TPathId& pathId) {
+                auto* p = Record.MutablePathId();
+                p->SetOwnerId(pathId.OwnerId);
+                p->SetLocalId(pathId.LocalPathId);
+            }
+
+            TPathId GetPathId() const {
+                const auto& p = Record.GetPathId();
+                return TPathId(p.GetOwnerId(), p.GetLocalId());
+            }
+        };
+
+        struct TEvGetSequenceResult
+            : public TEventPB
+        {
+            using EStatus = NKikimrTxSequenceShard::TEvGetSequenceResult::EStatus;
+
+            TEvGetSequenceResult() = default;
+
+            TEvGetSequenceResult(EStatus status, ui64 origin) {
+                Record.SetStatus(status);
+                Record.SetOrigin(origin);
+            }
+        };
+
     };
 
 } // namespace NSequenceShard
diff --git a/ydb/core/tx/sequenceshard/public/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/sequenceshard/public/ut/CMakeLists.darwin-arm64.txt
index 0dd66cbcf6bb..a5ece63d3a7d 100644
--- a/ydb/core/tx/sequenceshard/public/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/sequenceshard/public/ut/CMakeLists.darwin-arm64.txt
@@ -24,8 +24,6 @@ target_link_options(ydb-core-tx-sequenceshard-public-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 set_property(
   TARGET
@@ -52,6 +50,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sequenceshard/public/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/sequenceshard/public/ut/CMakeLists.darwin-x86_64.txt
index cb1e814151df..4552f627981a 100644
--- a/ydb/core/tx/sequenceshard/public/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/sequenceshard/public/ut/CMakeLists.darwin-x86_64.txt
@@ -25,8 +25,6 @@ target_link_options(ydb-core-tx-sequenceshard-public-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 set_property(
   TARGET
@@ -53,6 +51,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sequenceshard/public/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tx/sequenceshard/public/ut/CMakeLists.linux-aarch64.txt
index d85d286e150f..bd2102359563 100644
--- a/ydb/core/tx/sequenceshard/public/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/sequenceshard/public/ut/CMakeLists.linux-aarch64.txt
@@ -27,9 +27,6 @@ target_link_options(ydb-core-tx-sequenceshard-public-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 set_property(
   TARGET
@@ -56,6 +53,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sequenceshard/public/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tx/sequenceshard/public/ut/CMakeLists.linux-x86_64.txt
index 84972832d829..88b0d6cc521c 100644
--- a/ydb/core/tx/sequenceshard/public/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/sequenceshard/public/ut/CMakeLists.linux-x86_64.txt
@@ -28,9 +28,6 @@ target_link_options(ydb-core-tx-sequenceshard-public-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 set_property(
   TARGET
@@ -57,6 +54,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sequenceshard/public/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tx/sequenceshard/public/ut/CMakeLists.windows-x86_64.txt
index f8365a617512..101ff6d76edd 100644
--- a/ydb/core/tx/sequenceshard/public/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/sequenceshard/public/ut/CMakeLists.windows-x86_64.txt
@@ -46,6 +46,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sequenceshard/sequenceshard_impl.cpp b/ydb/core/tx/sequenceshard/sequenceshard_impl.cpp
index c23602e643c8..ed88fcbd4233 100644
--- a/ydb/core/tx/sequenceshard/sequenceshard_impl.cpp
+++ b/ydb/core/tx/sequenceshard/sequenceshard_impl.cpp
@@ -91,6 +91,7 @@ namespace NSequenceShard {
             HFunc(TEvSequenceShard::TEvFreezeSequence, Handle);
             HFunc(TEvSequenceShard::TEvRestoreSequence, Handle);
             HFunc(TEvSequenceShard::TEvRedirectSequence, Handle);
+            HFunc(TEvSequenceShard::TEvGetSequence, Handle);
 
             default:
                 if (!HandleDefaultEvents(ev, SelfId())) {
diff --git a/ydb/core/tx/sequenceshard/sequenceshard_impl.h b/ydb/core/tx/sequenceshard/sequenceshard_impl.h
index c1da07235f53..b0bd3cd98e75 100644
--- a/ydb/core/tx/sequenceshard/sequenceshard_impl.h
+++ b/ydb/core/tx/sequenceshard/sequenceshard_impl.h
@@ -73,6 +73,7 @@ namespace NSequenceShard {
         struct TTxFreezeSequence;
         struct TTxRestoreSequence;
         struct TTxRedirectSequence;
+        struct TTxGetSequence;
 
         void RunTxInitSchema(const TActorContext& ctx);
         void RunTxInit(const TActorContext& ctx);
@@ -99,6 +100,7 @@ namespace NSequenceShard {
         void Handle(TEvSequenceShard::TEvFreezeSequence::TPtr& ev, const TActorContext& ctx);
         void Handle(TEvSequenceShard::TEvRestoreSequence::TPtr& ev, const TActorContext& ctx);
         void Handle(TEvSequenceShard::TEvRedirectSequence::TPtr& ev, const TActorContext& ctx);
+        void Handle(TEvSequenceShard::TEvGetSequence::TPtr& ev, const TActorContext& ctx);
 
     private:
         struct TPipeInfo {
diff --git a/ydb/core/tx/sequenceshard/tx_create_sequence.cpp b/ydb/core/tx/sequenceshard/tx_create_sequence.cpp
index e362cda7beaa..8df1e6092ed3 100644
--- a/ydb/core/tx/sequenceshard/tx_create_sequence.cpp
+++ b/ydb/core/tx/sequenceshard/tx_create_sequence.cpp
@@ -64,8 +64,25 @@ namespace NSequenceShard {
                     sequence.StartValue = sequence.MaxValue;
                 }
             }
-            sequence.NextValue = sequence.StartValue;
-            sequence.NextUsed = false;
+
+            bool frozen = msg->Record.GetFrozen();
+            if (frozen) {
+                sequence.State = Schema::ESequenceState::Frozen;
+            }
+
+            if (msg->Record.OptionalCycle_case() == NKikimrTxSequenceShard::TEvCreateSequence::kCycle) {
+                sequence.Cycle = msg->Record.GetCycle();
+            }
+
+
+            if (msg->Record.HasSetVal()) {
+                sequence.NextValue = msg->Record.GetSetVal().GetNextValue();
+                sequence.NextUsed = msg->Record.GetSetVal().GetNextUsed();
+            } else {
+                sequence.NextUsed = false;
+                sequence.NextValue = sequence.StartValue;
+            }
+
             if (msg->Record.OptionalCache_case() == NKikimrTxSequenceShard::TEvCreateSequence::kCache) {
                 sequence.Cache = msg->Record.GetCache();
                 if (sequence.Cache < 1) {
@@ -82,7 +99,8 @@ namespace NSequenceShard {
                 NIceDb::TUpdate(sequence.NextUsed),
                 NIceDb::TUpdate(sequence.Cache),
                 NIceDb::TUpdate(sequence.Increment),
-                NIceDb::TUpdate(sequence.Cycle));
+                NIceDb::TUpdate(sequence.Cycle),
+                NIceDb::TUpdate(sequence.State));
             SetResult(NKikimrTxSequenceShard::TEvCreateSequenceResult::SUCCESS);
             SLOG_N("TTxCreateSequence.Execute SUCCESS"
                 << " PathId# " << pathId
@@ -91,7 +109,8 @@ namespace NSequenceShard {
                 << " StartValue# " << sequence.StartValue
                 << " Cache# " << sequence.Cache
                 << " Increment# " << sequence.Increment
-                << " Cycle# " << (sequence.Cycle ? "true" : "false"));
+                << " Cycle# " << (sequence.Cycle ? "true" : "false")
+                << " State# " << (frozen ? "Frozen" : "Active"));
             return true;
         }
 
diff --git a/ydb/core/tx/sequenceshard/tx_get_sequence.cpp b/ydb/core/tx/sequenceshard/tx_get_sequence.cpp
new file mode 100644
index 000000000000..53a95cb8b017
--- /dev/null
+++ b/ydb/core/tx/sequenceshard/tx_get_sequence.cpp
@@ -0,0 +1,93 @@
+#include "sequenceshard_impl.h"
+
+namespace NKikimr {
+namespace NSequenceShard {
+
+    struct TSequenceShard::TTxGetSequence : public TTxBase {
+        explicit TTxGetSequence(TSelf* self, TEvSequenceShard::TEvGetSequence::TPtr&& ev)
+            : TTxBase(self)
+            , Ev(std::move(ev))
+        { }
+
+        TTxType GetTxType() const override { return TXTYPE_GET_SEQUENCE; }
+
+        bool Execute(TTransactionContext& txc, const TActorContext&) override {
+            Y_UNUSED(txc);
+
+            const auto* msg = Ev->Get();
+
+            auto pathId = msg->GetPathId();
+
+            SLOG_T("TTxGetSequence.Execute"
+                << " PathId# " << pathId);
+
+            if (!Self->CheckPipeRequest(Ev->Recipient)) {
+                SetResult(NKikimrTxSequenceShard::TEvGetSequenceResult::PIPE_OUTDATED);
+                SLOG_T("TTxGetSequence.Execute PIPE_OUTDATED"
+                    << " PathId# " << pathId);
+                return true;
+            }
+
+            auto it = Self->Sequences.find(pathId);
+            if (it == Self->Sequences.end()) {
+                SetResult(NKikimrTxSequenceShard::TEvGetSequenceResult::SEQUENCE_NOT_FOUND);
+                SLOG_T("TTxGetSequence.Execute SEQUENCE_NOT_FOUND"
+                    << " PathId# " << pathId);
+                return true;
+            }
+
+            auto& sequence = it->second;
+            switch (sequence.State) {
+                case Schema::ESequenceState::Active:
+                    break;
+                case Schema::ESequenceState::Frozen:
+                    break;
+                case Schema::ESequenceState::Moved: {
+                    SetResult(NKikimrTxSequenceShard::TEvGetSequenceResult::SEQUENCE_MOVED);
+                    Result->Record.SetMovedTo(sequence.MovedTo);
+                    SLOG_T("TTxGetSequence.Execute SEQUENCE_MOVED"
+                        << " PathId# " << pathId
+                        << " MovedTo# " << sequence.MovedTo);
+                    return true;
+                }
+            }
+
+            SetResult(NKikimrTxSequenceShard::TEvGetSequenceResult::SUCCESS);
+            Result->Record.SetMinValue(sequence.MinValue);
+            Result->Record.SetMaxValue(sequence.MaxValue);
+            Result->Record.SetStartValue(sequence.StartValue);
+            Result->Record.SetNextValue(sequence.NextValue);
+            Result->Record.SetNextUsed(sequence.NextUsed);
+            Result->Record.SetCache(sequence.Cache);
+            Result->Record.SetIncrement(sequence.Increment);
+            Result->Record.SetCycle(sequence.Cycle);
+            SLOG_N("TTxGetSequence.Execute SUCCESS"
+                << " PathId# " << pathId);
+            return true;
+        }
+
+        void Complete(const TActorContext& ctx) override {
+            SLOG_T("TTxGetSequence.Complete");
+
+            if (Result) {
+                ctx.Send(Ev->Sender, Result.Release(), 0, Ev->Cookie);
+            }
+        }
+
+        void SetResult(NKikimrTxSequenceShard::TEvGetSequenceResult::EStatus status) {
+            Result.Reset(new TEvSequenceShard::TEvGetSequenceResult(status, Self->TabletID()));
+            Result->Record.SetTxId(Ev->Get()->Record.GetTxId());
+            Result->Record.SetTxPartId(Ev->Get()->Record.GetTxPartId());
+        }
+
+        TEvSequenceShard::TEvGetSequence::TPtr Ev;
+        THolder Result;
+    };
+
+
+    void TSequenceShard::Handle(TEvSequenceShard::TEvGetSequence::TPtr& ev, const TActorContext& ctx) {
+        Execute(new TTxGetSequence(this, std::move(ev)), ctx);
+    }
+
+} // namespace NSequenceShard
+} // namespace NKikimr
diff --git a/ydb/core/tx/sequenceshard/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/sequenceshard/ut/CMakeLists.darwin-arm64.txt
index b5fd8462d863..7db37a9816c3 100644
--- a/ydb/core/tx/sequenceshard/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/sequenceshard/ut/CMakeLists.darwin-arm64.txt
@@ -25,8 +25,6 @@ target_link_options(ydb-core-tx-sequenceshard-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-sequenceshard-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/ut_helpers.cpp
@@ -57,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sequenceshard/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/sequenceshard/ut/CMakeLists.darwin-x86_64.txt
index c79a0a012033..fb4f6a437056 100644
--- a/ydb/core/tx/sequenceshard/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/sequenceshard/ut/CMakeLists.darwin-x86_64.txt
@@ -26,8 +26,6 @@ target_link_options(ydb-core-tx-sequenceshard-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-sequenceshard-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/ut_helpers.cpp
@@ -58,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sequenceshard/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tx/sequenceshard/ut/CMakeLists.linux-aarch64.txt
index e71b14634544..14a637bc58ee 100644
--- a/ydb/core/tx/sequenceshard/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/sequenceshard/ut/CMakeLists.linux-aarch64.txt
@@ -28,9 +28,6 @@ target_link_options(ydb-core-tx-sequenceshard-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-sequenceshard-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/ut_helpers.cpp
@@ -61,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sequenceshard/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tx/sequenceshard/ut/CMakeLists.linux-x86_64.txt
index 8aa707b6fdc1..3bba81bb9e84 100644
--- a/ydb/core/tx/sequenceshard/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/sequenceshard/ut/CMakeLists.linux-x86_64.txt
@@ -29,9 +29,6 @@ target_link_options(ydb-core-tx-sequenceshard-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-sequenceshard-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/sequenceshard/ut_helpers.cpp
@@ -62,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sequenceshard/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tx/sequenceshard/ut/CMakeLists.windows-x86_64.txt
index 94123b62e85c..9b326f2cb1c8 100644
--- a/ydb/core/tx/sequenceshard/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/sequenceshard/ut/CMakeLists.windows-x86_64.txt
@@ -51,6 +51,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   SMALL
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sequenceshard/ut_helpers.cpp b/ydb/core/tx/sequenceshard/ut_helpers.cpp
index 8736616f2704..a73622975575 100644
--- a/ydb/core/tx/sequenceshard/ut_helpers.cpp
+++ b/ydb/core/tx/sequenceshard/ut_helpers.cpp
@@ -268,5 +268,30 @@ namespace NSequenceShard {
         return NextRedirectSequenceResult(cookie, edge);
     }
 
+    void TTestContext::SendGetSequence(ui64 cookie, const TActorId& edge, const TPathId& pathId)
+    {
+        SendFromEdge(
+            edge,
+            new TEvSequenceShard::TEvGetSequence(pathId),
+            cookie);
+    }
+
+    THolder TTestContext::NextGetSequenceResult(
+        ui64 cookie, const TActorId& edge)
+    {
+        auto result = ExpectEdgeEvent(edge, cookie);
+        UNIT_ASSERT_VALUES_EQUAL(result->Record.GetOrigin(), TabletId);
+        return result;
+    }
+
+    THolder TTestContext::GetSequence(
+        const TPathId& pathId)
+    {
+        ui64 cookie = RandomNumber();
+        auto edge = Runtime->AllocateEdgeActor();
+        SendGetSequence(cookie, edge, pathId);
+        return NextGetSequenceResult(cookie, edge);
+    }
+
 } // namespace NSequenceShard
 } // namespace NKikimr
diff --git a/ydb/core/tx/sequenceshard/ut_helpers.h b/ydb/core/tx/sequenceshard/ut_helpers.h
index f0274f2309e9..add323febe7a 100644
--- a/ydb/core/tx/sequenceshard/ut_helpers.h
+++ b/ydb/core/tx/sequenceshard/ut_helpers.h
@@ -101,6 +101,10 @@ namespace NSequenceShard {
             ui64 cookie, const TActorId& edge);
         THolder RedirectSequence(
             const TPathId& pathId, ui64 redirectTo);
+
+        void SendGetSequence(ui64 cookie, const TActorId& edge, const TPathId& pathId);
+        THolder NextGetSequenceResult(ui64 cookie, const TActorId& edge);
+        THolder GetSequence(const TPathId& pathId);
     };
 
 } // namespace NSequenceShard
diff --git a/ydb/core/tx/sequenceshard/ut_sequenceshard.cpp b/ydb/core/tx/sequenceshard/ut_sequenceshard.cpp
index 9e082db7c6dc..1aa67fb78f4a 100644
--- a/ydb/core/tx/sequenceshard/ut_sequenceshard.cpp
+++ b/ydb/core/tx/sequenceshard/ut_sequenceshard.cpp
@@ -165,6 +165,15 @@ namespace NSequenceShard {
                 UNIT_ASSERT_VALUES_EQUAL(allocateResult->Record.GetAllocationStart(), 200011);
                 UNIT_ASSERT_VALUES_EQUAL(allocateResult->Record.GetAllocationCount(), 5u);
             }
+
+            // get sequence
+            {
+                auto getResult = ctx.GetSequence(TPathId(123, 51));
+                UNIT_ASSERT_VALUES_EQUAL(getResult->Record.GetStatus(),
+                    NKikimrTxSequenceShard::TEvGetSequenceResult::SUCCESS);
+                UNIT_ASSERT_VALUES_EQUAL(getResult->Record.GetNextValue(), 200016);
+                UNIT_ASSERT_VALUES_EQUAL(getResult->Record.GetCache(), 5u);
+            }
         }
 
         Y_UNIT_TEST(MarkedPipeRetries) {
diff --git a/ydb/core/tx/sequenceshard/ya.make b/ydb/core/tx/sequenceshard/ya.make
index b47e4534140e..b4befe185615 100644
--- a/ydb/core/tx/sequenceshard/ya.make
+++ b/ydb/core/tx/sequenceshard/ya.make
@@ -17,6 +17,7 @@ SRCS(
     tx_create_sequence.cpp
     tx_drop_sequence.cpp
     tx_freeze_sequence.cpp
+    tx_get_sequence.cpp
     tx_init.cpp
     tx_init_schema.cpp
     tx_mark_schemeshard_pipe.cpp
diff --git a/ydb/core/tx/sharding/unboxed_reader.h b/ydb/core/tx/sharding/unboxed_reader.h
index e6c59a58db5d..fed3e972e2b9 100644
--- a/ydb/core/tx/sharding/unboxed_reader.h
+++ b/ydb/core/tx/sharding/unboxed_reader.h
@@ -17,6 +17,7 @@ struct TExternalTableColumn {
     NScheme::TTypeInfo Type;
     TString TypeMod;
     bool NotNull;
+    bool IsBuildInProgress = false;
 };
 
 struct TColumnUnboxedPlaceInfo: public TExternalTableColumn {
diff --git a/ydb/core/tx/sharding/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/sharding/ut/CMakeLists.darwin-arm64.txt
index 046aac03ce16..1421b16a01cd 100644
--- a/ydb/core/tx/sharding/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/sharding/ut/CMakeLists.darwin-arm64.txt
@@ -30,8 +30,6 @@ target_link_options(ydb-core-tx-sharding-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-sharding-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/sharding/ut/ut_sharding.cpp
@@ -61,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sharding/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/sharding/ut/CMakeLists.darwin-x86_64.txt
index b8c1bfbc1a71..4bb02638bc17 100644
--- a/ydb/core/tx/sharding/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/sharding/ut/CMakeLists.darwin-x86_64.txt
@@ -31,8 +31,6 @@ target_link_options(ydb-core-tx-sharding-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-sharding-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/sharding/ut/ut_sharding.cpp
@@ -62,6 +60,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sharding/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tx/sharding/ut/CMakeLists.linux-aarch64.txt
index 9a364474c2f8..bd5d4b196a0e 100644
--- a/ydb/core/tx/sharding/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/sharding/ut/CMakeLists.linux-aarch64.txt
@@ -33,9 +33,6 @@ target_link_options(ydb-core-tx-sharding-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-sharding-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/sharding/ut/ut_sharding.cpp
@@ -65,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sharding/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tx/sharding/ut/CMakeLists.linux-x86_64.txt
index 7c58afe940ae..cbb9f9d83a97 100644
--- a/ydb/core/tx/sharding/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/sharding/ut/CMakeLists.linux-x86_64.txt
@@ -34,9 +34,6 @@ target_link_options(ydb-core-tx-sharding-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-sharding-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/sharding/ut/ut_sharding.cpp
@@ -66,6 +63,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/sharding/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tx/sharding/ut/CMakeLists.windows-x86_64.txt
index 8f1ac9b3ef08..c818d2578202 100644
--- a/ydb/core/tx/sharding/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/sharding/ut/CMakeLists.windows-x86_64.txt
@@ -55,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tiering/abstract/manager.cpp b/ydb/core/tx/tiering/abstract/manager.cpp
new file mode 100644
index 000000000000..dc6f9c16cd1e
--- /dev/null
+++ b/ydb/core/tx/tiering/abstract/manager.cpp
@@ -0,0 +1,12 @@
+#include "manager.h"
+#include 
+
+namespace NKikimr::NColumnShard {
+
+const NTiers::TManager& ITiersManager::GetManagerVerified(const TString& tierId) const {
+    auto* result = GetManagerOptional(tierId);
+    AFL_VERIFY(result)("tier_id", tierId);
+    return *result;
+}
+
+}
diff --git a/ydb/core/tx/tiering/abstract/manager.h b/ydb/core/tx/tiering/abstract/manager.h
new file mode 100644
index 000000000000..994ecbfa6b4e
--- /dev/null
+++ b/ydb/core/tx/tiering/abstract/manager.h
@@ -0,0 +1,18 @@
+#pragma once
+#include 
+#include 
+
+namespace NKikimr::NColumnShard {
+namespace NTiers {
+class TManager;
+}
+
+class ITiersManager {
+public:
+    const NTiers::TManager& GetManagerVerified(const TString& tierId) const;
+    virtual const NTiers::TManager* GetManagerOptional(const TString& tierId) const = 0;
+    virtual const std::map& GetManagers() const = 0;
+    virtual ~ITiersManager() = default;
+};
+
+}
diff --git a/ydb/core/tx/tiering/abstract/ya.make b/ydb/core/tx/tiering/abstract/ya.make
new file mode 100644
index 000000000000..cd240f0f8cd6
--- /dev/null
+++ b/ydb/core/tx/tiering/abstract/ya.make
@@ -0,0 +1,11 @@
+LIBRARY()
+
+SRCS(
+    manager.cpp
+)
+
+PEERDIR(
+    ydb/library/actors/core
+)
+
+END()
diff --git a/ydb/core/tx/tiering/manager.cpp b/ydb/core/tx/tiering/manager.cpp
index 583d06149fa9..85dd6d60c10b 100644
--- a/ydb/core/tx/tiering/manager.cpp
+++ b/ydb/core/tx/tiering/manager.cpp
@@ -24,7 +24,7 @@ class TTiersManager::TActor: public TActorBootstrapped {
 
     }
     ~TActor() {
-        Owner->Stop();
+        Owner->Stop(false);
     }
 
     STATEFN(StateMain) {
@@ -106,10 +106,16 @@ TManager::TManager(const ui64 tabletId, const NActors::TActorId& tabletActorId,
 {
 }
 
-NArrow::TCompression ConvertCompression(const NKikimrSchemeOp::TCompressionOptions& compression) {
-    auto out = NArrow::TCompression::BuildFromProto(compression);
-    Y_ABORT_UNLESS(out, "%s", out.GetErrorMessage().data());
-    return *out;
+NArrow::NSerialization::TSerializerContainer ConvertCompression(const NKikimrSchemeOp::TCompressionOptions& compressionProto) {
+    NArrow::NSerialization::TSerializerContainer container;
+    container.DeserializeFromProto(compressionProto).Validate();
+    return container;
+}
+
+NArrow::NSerialization::TSerializerContainer ConvertCompression(const NKikimrSchemeOp::TOlapColumn::TSerializer& serializerProto) {
+    NArrow::NSerialization::TSerializerContainer container;
+    AFL_VERIFY(container.DeserializeFromProto(serializerProto));
+    return container;
 }
 }
 
@@ -156,11 +162,11 @@ TTiersManager& TTiersManager::Start(std::shared_ptr ownerPtr) {
     return *this;
 }
 
-TTiersManager& TTiersManager::Stop() {
+TTiersManager& TTiersManager::Stop(const bool needStopActor) {
     if (!Actor) {
         return *this;
     }
-    if (TlsActivationContext) {
+    if (TlsActivationContext && needStopActor) {
         TActivationContext::AsActorContext().Send(Actor->SelfId(), new NActors::TEvents::TEvPoison);
     }
     Actor = nullptr;
@@ -170,12 +176,6 @@ TTiersManager& TTiersManager::Stop() {
     return *this;
 }
 
-const NTiers::TManager& TTiersManager::GetManagerVerified(const TString& tierId) const {
-    auto it = Managers.find(tierId);
-    Y_ABORT_UNLESS(it != Managers.end());
-    return it->second;
-}
-
 const NTiers::TManager* TTiersManager::GetManagerOptional(const TString& tierId) const {
     auto it = Managers.find(tierId);
     if (it != Managers.end()) {
@@ -194,24 +194,26 @@ NMetadata::NFetcher::ISnapshotsFetcher::TPtr TTiersManager::GetExternalDataManip
 
 THashMap TTiersManager::GetTiering() const {
     THashMap result;
-    if (!IsReady()) {
-        return result;
-    }
+    AFL_VERIFY(IsReady());
     auto snapshotPtr = std::dynamic_pointer_cast(Snapshot);
     Y_ABORT_UNLESS(snapshotPtr);
     auto& tierConfigs = snapshotPtr->GetTierConfigs();
     for (auto&& i : PathIdTiering) {
         auto* tiering = snapshotPtr->GetTieringById(i.second);
         if (tiering) {
+            AFL_DEBUG(NKikimrServices::TX_COLUMNSHARD)("path_id", i.first)("tiering_name", i.second)("event", "activation");
             result.emplace(i.first, tiering->BuildOlapTiers());
             for (auto& [pathId, pathTiering] : result) {
                 for (auto& [name, tier] : pathTiering.GetTierByName()) {
+                    AFL_VERIFY(name != NOlap::NTiering::NCommon::DeleteTierName);
                     auto it = tierConfigs.find(name);
                     if (it != tierConfigs.end()) {
-                        tier->SetCompression(NTiers::ConvertCompression(it->second.GetCompression()));
+                        tier->SetSerializer(NTiers::ConvertCompression(it->second.GetCompression()));
                     }
                 }
             }
+        } else {
+            AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("path_id", i.first)("tiering_name", i.second)("event", "not_found");
         }
     }
     return result;
diff --git a/ydb/core/tx/tiering/manager.h b/ydb/core/tx/tiering/manager.h
index 6bb6c6194391..147ee27f54f8 100644
--- a/ydb/core/tx/tiering/manager.h
+++ b/ydb/core/tx/tiering/manager.h
@@ -1,7 +1,7 @@
 #pragma once
 #include "external_data.h"
 
-#include 
+#include "abstract/manager.h"
 
 #include 
 #include 
@@ -12,10 +12,13 @@
 
 #include 
 
+#include 
+
 namespace NKikimr::NColumnShard {
 namespace NTiers {
 
-NArrow::TCompression ConvertCompression(const NKikimrSchemeOp::TCompressionOptions& compression);
+NArrow::NSerialization::TSerializerContainer ConvertCompression(const NKikimrSchemeOp::TOlapColumn::TSerializer& serializerProto);
+NArrow::NSerialization::TSerializerContainer ConvertCompression(const NKikimrSchemeOp::TCompressionOptions& compressionProto);
 
 class TManager {
 private:
@@ -42,16 +45,16 @@ class TManager {
 };
 }
 
-class TTiersManager {
+class TTiersManager: public ITiersManager {
 private:
     class TActor;
-    using TManagers = std::unordered_map;
+    using TManagers = std::map;
     ui64 TabletId = 0;
     const TActorId TabletActorId;
     std::function ShardCallback;
     TActor* Actor = nullptr;
     std::unordered_map PathIdTiering;
-    YDB_READONLY_DEF(TManagers, Managers);
+    TManagers Managers;
 
     std::shared_ptr Secrets;
     NMetadata::NFetcher::ISnapshot::TPtr Snapshot;
@@ -80,18 +83,14 @@ class TTiersManager {
     }
 
     TTiersManager& Start(std::shared_ptr ownerPtr);
-    TTiersManager& Stop();
-    const NTiers::TManager& GetManagerVerified(const TString& tierId) const;
-    const NTiers::TManager* GetManagerOptional(const TString& tierId) const;
-    NMetadata::NFetcher::ISnapshotsFetcher::TPtr GetExternalDataManipulation() const;
-
-    TManagers::const_iterator begin() const {
-        return Managers.begin();
+    TTiersManager& Stop(const bool needStopActor);
+    virtual const std::map& GetManagers() const override {
+        AFL_VERIFY(IsReady());
+        return Managers;
     }
+    virtual const NTiers::TManager* GetManagerOptional(const TString& tierId) const override;
+    NMetadata::NFetcher::ISnapshotsFetcher::TPtr GetExternalDataManipulation() const;
 
-    TManagers::const_iterator end() const {
-        return Managers.end();
-    }
 };
 
 }
diff --git a/ydb/core/tx/tiering/rule/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tiering/rule/CMakeLists.darwin-arm64.txt
index 9cf06ee67b10..f4e44e5127b2 100644
--- a/ydb/core/tx/tiering/rule/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/tiering/rule/CMakeLists.darwin-arm64.txt
@@ -17,6 +17,7 @@ target_link_libraries(tx-tiering-rule PUBLIC
   services-metadata-abstract
   services-metadata-common
   services-metadata-initializer
+  services-metadata-manager
   services-bg_tasks-abstract
   core-tx-schemeshard
 )
@@ -38,6 +39,7 @@ target_link_libraries(tx-tiering-rule.global PUBLIC
   services-metadata-abstract
   services-metadata-common
   services-metadata-initializer
+  services-metadata-manager
   services-bg_tasks-abstract
   core-tx-schemeshard
 )
diff --git a/ydb/core/tx/tiering/rule/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/tiering/rule/CMakeLists.darwin-x86_64.txt
index 9cf06ee67b10..f4e44e5127b2 100644
--- a/ydb/core/tx/tiering/rule/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/tiering/rule/CMakeLists.darwin-x86_64.txt
@@ -17,6 +17,7 @@ target_link_libraries(tx-tiering-rule PUBLIC
   services-metadata-abstract
   services-metadata-common
   services-metadata-initializer
+  services-metadata-manager
   services-bg_tasks-abstract
   core-tx-schemeshard
 )
@@ -38,6 +39,7 @@ target_link_libraries(tx-tiering-rule.global PUBLIC
   services-metadata-abstract
   services-metadata-common
   services-metadata-initializer
+  services-metadata-manager
   services-bg_tasks-abstract
   core-tx-schemeshard
 )
diff --git a/ydb/core/tx/tiering/rule/CMakeLists.linux-aarch64.txt b/ydb/core/tx/tiering/rule/CMakeLists.linux-aarch64.txt
index 38d5d642b6b3..8eecdb2c6855 100644
--- a/ydb/core/tx/tiering/rule/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/tiering/rule/CMakeLists.linux-aarch64.txt
@@ -18,6 +18,7 @@ target_link_libraries(tx-tiering-rule PUBLIC
   services-metadata-abstract
   services-metadata-common
   services-metadata-initializer
+  services-metadata-manager
   services-bg_tasks-abstract
   core-tx-schemeshard
 )
@@ -40,6 +41,7 @@ target_link_libraries(tx-tiering-rule.global PUBLIC
   services-metadata-abstract
   services-metadata-common
   services-metadata-initializer
+  services-metadata-manager
   services-bg_tasks-abstract
   core-tx-schemeshard
 )
diff --git a/ydb/core/tx/tiering/rule/CMakeLists.linux-x86_64.txt b/ydb/core/tx/tiering/rule/CMakeLists.linux-x86_64.txt
index 38d5d642b6b3..8eecdb2c6855 100644
--- a/ydb/core/tx/tiering/rule/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/tiering/rule/CMakeLists.linux-x86_64.txt
@@ -18,6 +18,7 @@ target_link_libraries(tx-tiering-rule PUBLIC
   services-metadata-abstract
   services-metadata-common
   services-metadata-initializer
+  services-metadata-manager
   services-bg_tasks-abstract
   core-tx-schemeshard
 )
@@ -40,6 +41,7 @@ target_link_libraries(tx-tiering-rule.global PUBLIC
   services-metadata-abstract
   services-metadata-common
   services-metadata-initializer
+  services-metadata-manager
   services-bg_tasks-abstract
   core-tx-schemeshard
 )
diff --git a/ydb/core/tx/tiering/rule/CMakeLists.windows-x86_64.txt b/ydb/core/tx/tiering/rule/CMakeLists.windows-x86_64.txt
index 9cf06ee67b10..f4e44e5127b2 100644
--- a/ydb/core/tx/tiering/rule/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/tiering/rule/CMakeLists.windows-x86_64.txt
@@ -17,6 +17,7 @@ target_link_libraries(tx-tiering-rule PUBLIC
   services-metadata-abstract
   services-metadata-common
   services-metadata-initializer
+  services-metadata-manager
   services-bg_tasks-abstract
   core-tx-schemeshard
 )
@@ -38,6 +39,7 @@ target_link_libraries(tx-tiering-rule.global PUBLIC
   services-metadata-abstract
   services-metadata-common
   services-metadata-initializer
+  services-metadata-manager
   services-bg_tasks-abstract
   core-tx-schemeshard
 )
diff --git a/ydb/core/tx/tiering/rule/manager.cpp b/ydb/core/tx/tiering/rule/manager.cpp
index bdcfac875c64..c6ea9e9f6130 100644
--- a/ydb/core/tx/tiering/rule/manager.cpp
+++ b/ydb/core/tx/tiering/rule/manager.cpp
@@ -15,6 +15,9 @@ NMetadata::NModifications::TOperationParsingResult TTieringRulesManager::DoBuild
     TInternalModificationContext& /*context*/) const {
     NMetadata::NInternal::TTableRecord result;
     result.SetColumn(TTieringRule::TDecoder::TieringRuleId, NMetadata::NInternal::TYDBValue::Utf8(settings.GetObjectId()));
+    if (settings.GetObjectId().StartsWith("$") || settings.GetObjectId().StartsWith("_")) {
+        return TConclusionStatus::Fail("tiering rule cannot start with '$', '_' characters");
+    }
     {
         auto fValue = settings.GetFeaturesExtractor().Extract(TTieringRule::TDecoder::DefaultColumn);
         if (fValue) {
diff --git a/ydb/core/tx/tiering/rule/object.cpp b/ydb/core/tx/tiering/rule/object.cpp
index 64aa4ba58673..59d42bdb4c8e 100644
--- a/ydb/core/tx/tiering/rule/object.cpp
+++ b/ydb/core/tx/tiering/rule/object.cpp
@@ -25,7 +25,7 @@ NJson::TJsonValue TTieringRule::SerializeDescriptionToJson() const {
     return result;
 }
 
-bool TTieringRule::DeserializeDescriptionFromJson(const NJson::TJsonValue & jsonInfo) {
+bool TTieringRule::DeserializeDescriptionFromJson(const NJson::TJsonValue& jsonInfo) {
     const NJson::TJsonValue::TArray* rules;
     if (!jsonInfo["rules"].GetArrayPointer(&rules)) {
         return false;
@@ -74,7 +74,7 @@ bool TTieringRule::DeserializeFromRecord(const TDecoder& decoder, const Ydb::Val
 NKikimr::NOlap::TTiering TTieringRule::BuildOlapTiers() const {
     NOlap::TTiering result;
     for (auto&& r : Intervals) {
-        result.Add(std::make_shared(r.GetTierName(), r.GetDurationForEvict(), GetDefaultColumn()));
+        AFL_VERIFY(result.Add(std::make_shared(r.GetTierName(), r.GetDurationForEvict(), GetDefaultColumn())));
     }
     return result;
 }
diff --git a/ydb/core/tx/tiering/rule/object.h b/ydb/core/tx/tiering/rule/object.h
index a597d6204cea..566f10e5efc8 100644
--- a/ydb/core/tx/tiering/rule/object.h
+++ b/ydb/core/tx/tiering/rule/object.h
@@ -1,6 +1,7 @@
 #pragma once
 #include 
-#include 
+#include 
+
 #include 
 #include 
 #include 
diff --git a/ydb/core/tx/tiering/rule/ya.make b/ydb/core/tx/tiering/rule/ya.make
index 70f2715e6409..80b625857c1f 100644
--- a/ydb/core/tx/tiering/rule/ya.make
+++ b/ydb/core/tx/tiering/rule/ya.make
@@ -14,6 +14,7 @@ PEERDIR(
     ydb/services/metadata/abstract
     ydb/services/metadata/common
     ydb/services/metadata/initializer
+    ydb/services/metadata/manager
     ydb/services/bg_tasks/abstract
     ydb/core/tx/schemeshard
 )
diff --git a/ydb/core/tx/tiering/tier/manager.cpp b/ydb/core/tx/tiering/tier/manager.cpp
index d9e9834f974f..a64d2a7603ab 100644
--- a/ydb/core/tx/tiering/tier/manager.cpp
+++ b/ydb/core/tx/tiering/tier/manager.cpp
@@ -10,6 +10,9 @@ NMetadata::NModifications::TOperationParsingResult TTiersManager::DoBuildPatchFr
 {
     NMetadata::NInternal::TTableRecord result;
     result.SetColumn(TTierConfig::TDecoder::TierName, NMetadata::NInternal::TYDBValue::Utf8(settings.GetObjectId()));
+    if (settings.GetObjectId().StartsWith("$") || settings.GetObjectId().StartsWith("_")) {
+        return TConclusionStatus::Fail("tier name cannot start with '$', '_' characters");
+    }
     {
         auto fConfig = settings.GetFeaturesExtractor().Extract(TTierConfig::TDecoder::TierConfig);
         if (fConfig) {
diff --git a/ydb/core/tx/tiering/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tiering/ut/CMakeLists.darwin-arm64.txt
index 62f730fdbb1f..a28c6388b196 100644
--- a/ydb/core/tx/tiering/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/tiering/ut/CMakeLists.darwin-arm64.txt
@@ -32,8 +32,6 @@ target_link_options(ydb-core-tx-tiering-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-tiering-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/ut/ut_tiers.cpp
@@ -63,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tiering/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/tiering/ut/CMakeLists.darwin-x86_64.txt
index b356a3f7fff3..ad87af702af5 100644
--- a/ydb/core/tx/tiering/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/tiering/ut/CMakeLists.darwin-x86_64.txt
@@ -33,8 +33,6 @@ target_link_options(ydb-core-tx-tiering-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-tiering-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/ut/ut_tiers.cpp
@@ -64,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tiering/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tx/tiering/ut/CMakeLists.linux-aarch64.txt
index 13efb9449aac..8fba1b49f346 100644
--- a/ydb/core/tx/tiering/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/tiering/ut/CMakeLists.linux-aarch64.txt
@@ -35,9 +35,6 @@ target_link_options(ydb-core-tx-tiering-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-tiering-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/ut/ut_tiers.cpp
@@ -67,6 +64,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tiering/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tx/tiering/ut/CMakeLists.linux-x86_64.txt
index 7585efb53af0..372f97a21143 100644
--- a/ydb/core/tx/tiering/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/tiering/ut/CMakeLists.linux-x86_64.txt
@@ -36,9 +36,6 @@ target_link_options(ydb-core-tx-tiering-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-tiering-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tiering/ut/ut_tiers.cpp
@@ -68,6 +65,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tiering/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tx/tiering/ut/CMakeLists.windows-x86_64.txt
index fef0d0a3a070..3add3dd0a5a6 100644
--- a/ydb/core/tx/tiering/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/tiering/ut/CMakeLists.windows-x86_64.txt
@@ -57,6 +57,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tiering/ut/ut_tiers.cpp b/ydb/core/tx/tiering/ut/ut_tiers.cpp
index a398f00edd0a..e677b99c314d 100644
--- a/ydb/core/tx/tiering/ut/ut_tiers.cpp
+++ b/ydb/core/tx/tiering/ut/ut_tiers.cpp
@@ -8,6 +8,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -28,6 +29,18 @@ using namespace NColumnShard;
 
 class TFastTTLCompactionController: public NKikimr::NYDBTest::ICSController {
 public:
+    virtual bool NeedForceCompactionBacketsConstruction() const override {
+        return true;
+    }
+    virtual ui64 GetSmallPortionSizeDetector(const ui64 /*def*/) const override {
+        return 0;
+    }
+    virtual TDuration GetOptimizerFreshnessCheckDuration(const TDuration /*defaultValue*/) const override {
+        return TDuration::Zero();
+    }
+    virtual TDuration GetLagForCompactionBeforeTierings(const TDuration /*def*/) const override {
+        return TDuration::Zero();
+    }
     virtual TDuration GetTTLDefaultWaitingDuration(const TDuration /*defaultValue*/) const override {
         return TDuration::Seconds(1);
     }
@@ -548,7 +561,7 @@ Y_UNIT_TEST_SUITE(ColumnShardTiers) {
         Tests::TServer::TPtr server = new Tests::TServer(serverSettings);
         server->EnableGRpc(grpcPort);
         Tests::TClient client(serverSettings);
-        Tests::NCommon::TLoggerInit(server->GetRuntime()).SetComponents({ NKikimrServices::TX_COLUMNSHARD }).Initialize();
+        Tests::NCommon::TLoggerInit(server->GetRuntime()).Clear().SetComponents({ NKikimrServices::TX_COLUMNSHARD }, "CS").Initialize();
 
         auto& runtime = *server->GetRuntime();
 //        runtime.SetLogPriority(NKikimrServices::TX_PROXY, NLog::PRI_TRACE);
@@ -563,11 +576,12 @@ Y_UNIT_TEST_SUITE(ColumnShardTiers) {
         //        runtime.SetLogPriority(NKikimrServices::TX_PROXY_SCHEME_CACHE, NLog::PRI_DEBUG);
 
         TLocalHelper lHelper(*server);
+        lHelper.SetOptionalStorageId("__DEFAULT");
         lHelper.StartSchemaRequest("CREATE OBJECT secretAccessKey ( "
             "TYPE SECRET) WITH (value = ak)");
         lHelper.StartSchemaRequest("CREATE OBJECT secretSecretKey ( "
-            "TYPE SECRET) WITH (value = sk)");
-        Singleton()->SetSecretKey("sk");
+            "TYPE SECRET) WITH (value = fakeSecret)");
+        Singleton()->SetSecretKey("fakeSecret");
 
         lHelper.StartSchemaRequest("CREATE OBJECT tier1 ( "
             "TYPE TIER) WITH (tierConfig = `" + TierConfigProtoStr + "`)");
@@ -626,9 +640,7 @@ Y_UNIT_TEST_SUITE(ColumnShardTiers) {
             }
             UNIT_ASSERT(check);
         }
-#ifdef S3_TEST_USAGE
         Cerr << "storage initialized..." << Endl;
-#endif
 /*
         lHelper.DropTable("/Root/olapStore/olapTable");
         lHelper.StartDataRequest("DELETE FROM `/Root/olapStore/olapTable`");
@@ -853,6 +865,8 @@ Y_UNIT_TEST_SUITE(ColumnShardTiers) {
             .SetEnableBackgroundTasks(true)
             .SetForceColumnTablesCompositeMarks(true);
         ;
+        auto csControllerGuard = NKikimr::NYDBTest::TControllers::RegisterCSControllerGuard();
+        csControllerGuard->SetCompactionsLimit(5);
 
         Tests::TServer::TPtr server = new Tests::TServer(serverSettings);
         server->EnableGRpc(grpcPort);
@@ -919,6 +933,8 @@ Y_UNIT_TEST_SUITE(ColumnShardTiers) {
         runtime.SetEventFilter(captureEvents);
 
         lHelper.SendDataViaActorSystem("/Root/olapStore/olapTable", batch);
+        Cerr << "Data loading FINISHED" << Endl;
+        runtime.SimulateSleep(TDuration::Seconds(200));
 
         {
             TVector> result;
diff --git a/ydb/core/tx/tiering/ut/ya.make b/ydb/core/tx/tiering/ut/ya.make
index 47003ede985c..7a635567a98a 100644
--- a/ydb/core/tx/tiering/ut/ya.make
+++ b/ydb/core/tx/tiering/ut/ya.make
@@ -22,6 +22,7 @@ PEERDIR(
     ydb/services/metadata
     ydb/core/tx
     ydb/core/tx/columnshard
+    ydb/core/tx/columnshard/hooks/testing
     ydb/public/lib/yson_value
 )
 
diff --git a/ydb/core/tx/time_cast/time_cast.cpp b/ydb/core/tx/time_cast/time_cast.cpp
index b4703e9f52bb..3348711bcea9 100644
--- a/ydb/core/tx/time_cast/time_cast.cpp
+++ b/ydb/core/tx/time_cast/time_cast.cpp
@@ -30,7 +30,10 @@ void TMediatorTimecastEntry::Update(ui64 step, ui64 *exemption, ui64 exsz) {
     Y_UNUSED(exemption);
     Y_UNUSED(exsz);
 
-    AtomicSet(Step, step);
+    // Mediator time shouldn't go back while shards are running
+    if (Get(0) < step) {
+        AtomicSet(Step, step);
+    }
 }
 
 class TMediatorTimecastProxy : public TActor {
diff --git a/ydb/core/tx/time_cast/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/time_cast/ut/CMakeLists.darwin-arm64.txt
index 07e19102ac63..5860973cbd66 100644
--- a/ydb/core/tx/time_cast/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/time_cast/ut/CMakeLists.darwin-arm64.txt
@@ -26,8 +26,6 @@ target_link_options(ydb-core-tx-time_cast-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-time_cast-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/time_cast/time_cast_ut.cpp
@@ -57,6 +55,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/time_cast/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/time_cast/ut/CMakeLists.darwin-x86_64.txt
index 3ed229a30efa..fea26f9d0df7 100644
--- a/ydb/core/tx/time_cast/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/time_cast/ut/CMakeLists.darwin-x86_64.txt
@@ -27,8 +27,6 @@ target_link_options(ydb-core-tx-time_cast-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-time_cast-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/time_cast/time_cast_ut.cpp
@@ -58,6 +56,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/time_cast/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tx/time_cast/ut/CMakeLists.linux-aarch64.txt
index 9193473d1f50..e8a9f4807a63 100644
--- a/ydb/core/tx/time_cast/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/time_cast/ut/CMakeLists.linux-aarch64.txt
@@ -29,9 +29,6 @@ target_link_options(ydb-core-tx-time_cast-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-time_cast-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/time_cast/time_cast_ut.cpp
@@ -61,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/time_cast/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tx/time_cast/ut/CMakeLists.linux-x86_64.txt
index 87fcf99ca4aa..0430e18fd662 100644
--- a/ydb/core/tx/time_cast/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/time_cast/ut/CMakeLists.linux-x86_64.txt
@@ -30,9 +30,6 @@ target_link_options(ydb-core-tx-time_cast-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-time_cast-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/time_cast/time_cast_ut.cpp
@@ -62,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/time_cast/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tx/time_cast/ut/CMakeLists.windows-x86_64.txt
index f188fcc8f6f7..783a05e86af4 100644
--- a/ydb/core/tx/time_cast/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/time_cast/ut/CMakeLists.windows-x86_64.txt
@@ -51,6 +51,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tx_allocator/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tx_allocator/ut/CMakeLists.darwin-arm64.txt
index c42d2076a35a..8c848ef2242f 100644
--- a/ydb/core/tx/tx_allocator/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/tx_allocator/ut/CMakeLists.darwin-arm64.txt
@@ -28,8 +28,6 @@ target_link_options(ydb-core-tx-tx_allocator-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-tx_allocator-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator/txallocator_ut.cpp
@@ -60,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tx_allocator/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/tx_allocator/ut/CMakeLists.darwin-x86_64.txt
index 39de8b58662a..cc9e8ad7ad2f 100644
--- a/ydb/core/tx/tx_allocator/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/tx_allocator/ut/CMakeLists.darwin-x86_64.txt
@@ -29,8 +29,6 @@ target_link_options(ydb-core-tx-tx_allocator-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-tx_allocator-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator/txallocator_ut.cpp
@@ -61,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tx_allocator/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tx/tx_allocator/ut/CMakeLists.linux-aarch64.txt
index 5f59430cc042..8a7893abf760 100644
--- a/ydb/core/tx/tx_allocator/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/tx_allocator/ut/CMakeLists.linux-aarch64.txt
@@ -31,9 +31,6 @@ target_link_options(ydb-core-tx-tx_allocator-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-tx_allocator-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator/txallocator_ut.cpp
@@ -64,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tx_allocator/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tx/tx_allocator/ut/CMakeLists.linux-x86_64.txt
index 26453439db74..563751174c4b 100644
--- a/ydb/core/tx/tx_allocator/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/tx_allocator/ut/CMakeLists.linux-x86_64.txt
@@ -32,9 +32,6 @@ target_link_options(ydb-core-tx-tx_allocator-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-tx_allocator-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator/txallocator_ut.cpp
@@ -65,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tx_allocator/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tx/tx_allocator/ut/CMakeLists.windows-x86_64.txt
index e7626912192b..f0ba02c01f4d 100644
--- a/ydb/core/tx/tx_allocator/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/tx_allocator/ut/CMakeLists.windows-x86_64.txt
@@ -54,6 +54,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tx_allocator_client/ut/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tx_allocator_client/ut/CMakeLists.darwin-arm64.txt
index 1a8e04b2e070..c56f1e063feb 100644
--- a/ydb/core/tx/tx_allocator_client/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/tx_allocator_client/ut/CMakeLists.darwin-arm64.txt
@@ -28,8 +28,6 @@ target_link_options(ydb-core-tx-tx_allocator_client-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-tx_allocator_client-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator_client/actor_client_ut.cpp
@@ -60,6 +58,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tx_allocator_client/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/tx_allocator_client/ut/CMakeLists.darwin-x86_64.txt
index b7f2bdc5bd7b..27748f9746f4 100644
--- a/ydb/core/tx/tx_allocator_client/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/tx_allocator_client/ut/CMakeLists.darwin-x86_64.txt
@@ -29,8 +29,6 @@ target_link_options(ydb-core-tx-tx_allocator_client-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-tx-tx_allocator_client-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator_client/actor_client_ut.cpp
@@ -61,6 +59,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tx_allocator_client/ut/CMakeLists.linux-aarch64.txt b/ydb/core/tx/tx_allocator_client/ut/CMakeLists.linux-aarch64.txt
index 7d07dd295f1b..7aba602acde7 100644
--- a/ydb/core/tx/tx_allocator_client/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/tx_allocator_client/ut/CMakeLists.linux-aarch64.txt
@@ -31,9 +31,6 @@ target_link_options(ydb-core-tx-tx_allocator_client-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-tx_allocator_client-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator_client/actor_client_ut.cpp
@@ -64,6 +61,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tx_allocator_client/ut/CMakeLists.linux-x86_64.txt b/ydb/core/tx/tx_allocator_client/ut/CMakeLists.linux-x86_64.txt
index 3d37c35895ec..4785f9b2dfa9 100644
--- a/ydb/core/tx/tx_allocator_client/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/tx_allocator_client/ut/CMakeLists.linux-x86_64.txt
@@ -32,9 +32,6 @@ target_link_options(ydb-core-tx-tx_allocator_client-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-tx-tx_allocator_client-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/tx/tx_allocator_client/actor_client_ut.cpp
@@ -65,6 +62,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tx_allocator_client/ut/CMakeLists.windows-x86_64.txt b/ydb/core/tx/tx_allocator_client/ut/CMakeLists.windows-x86_64.txt
index e92d0283780f..21d0691858c4 100644
--- a/ydb/core/tx/tx_allocator_client/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/tx_allocator_client/ut/CMakeLists.windows-x86_64.txt
@@ -54,6 +54,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/tx/tx_proxy/CMakeLists.darwin-arm64.txt b/ydb/core/tx/tx_proxy/CMakeLists.darwin-arm64.txt
index d9bbec6ac45e..af20842557bc 100644
--- a/ydb/core/tx/tx_proxy/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/tx/tx_proxy/CMakeLists.darwin-arm64.txt
@@ -36,7 +36,7 @@ target_link_libraries(core-tx-tx_proxy PUBLIC
   ydb-core-engine
   ydb-core-formats
   ydb-core-grpc_services
-  ydb-core-io_formats
+  core-io_formats-arrow
   ydb-core-protos
   ydb-core-scheme
   core-sys_view-common
diff --git a/ydb/core/tx/tx_proxy/CMakeLists.darwin-x86_64.txt b/ydb/core/tx/tx_proxy/CMakeLists.darwin-x86_64.txt
index d9bbec6ac45e..af20842557bc 100644
--- a/ydb/core/tx/tx_proxy/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/tx/tx_proxy/CMakeLists.darwin-x86_64.txt
@@ -36,7 +36,7 @@ target_link_libraries(core-tx-tx_proxy PUBLIC
   ydb-core-engine
   ydb-core-formats
   ydb-core-grpc_services
-  ydb-core-io_formats
+  core-io_formats-arrow
   ydb-core-protos
   ydb-core-scheme
   core-sys_view-common
diff --git a/ydb/core/tx/tx_proxy/CMakeLists.linux-aarch64.txt b/ydb/core/tx/tx_proxy/CMakeLists.linux-aarch64.txt
index 341b92e2bfbc..4069d9761c2b 100644
--- a/ydb/core/tx/tx_proxy/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/tx/tx_proxy/CMakeLists.linux-aarch64.txt
@@ -37,7 +37,7 @@ target_link_libraries(core-tx-tx_proxy PUBLIC
   ydb-core-engine
   ydb-core-formats
   ydb-core-grpc_services
-  ydb-core-io_formats
+  core-io_formats-arrow
   ydb-core-protos
   ydb-core-scheme
   core-sys_view-common
diff --git a/ydb/core/tx/tx_proxy/CMakeLists.linux-x86_64.txt b/ydb/core/tx/tx_proxy/CMakeLists.linux-x86_64.txt
index 341b92e2bfbc..4069d9761c2b 100644
--- a/ydb/core/tx/tx_proxy/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/tx/tx_proxy/CMakeLists.linux-x86_64.txt
@@ -37,7 +37,7 @@ target_link_libraries(core-tx-tx_proxy PUBLIC
   ydb-core-engine
   ydb-core-formats
   ydb-core-grpc_services
-  ydb-core-io_formats
+  core-io_formats-arrow
   ydb-core-protos
   ydb-core-scheme
   core-sys_view-common
diff --git a/ydb/core/tx/tx_proxy/CMakeLists.windows-x86_64.txt b/ydb/core/tx/tx_proxy/CMakeLists.windows-x86_64.txt
index d9bbec6ac45e..af20842557bc 100644
--- a/ydb/core/tx/tx_proxy/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/tx/tx_proxy/CMakeLists.windows-x86_64.txt
@@ -36,7 +36,7 @@ target_link_libraries(core-tx-tx_proxy PUBLIC
   ydb-core-engine
   ydb-core-formats
   ydb-core-grpc_services
-  ydb-core-io_formats
+  core-io_formats-arrow
   ydb-core-protos
   ydb-core-scheme
   core-sys_view-common
diff --git a/ydb/core/tx/tx_proxy/datareq.cpp b/ydb/core/tx/tx_proxy/datareq.cpp
index d5c66d3f6ab4..17d975648976 100644
--- a/ydb/core/tx/tx_proxy/datareq.cpp
+++ b/ydb/core/tx/tx_proxy/datareq.cpp
@@ -1564,6 +1564,7 @@ void TDataReq::Handle(TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr &ev,
             toExpand = toInclusive ? EParseRangeKeyExp::NONE : EParseRangeKeyExp::TO_NULL;
         }
     }
+
     if (!ParseRangeKey(ReadTableRequest->Range.GetFrom(), keyTypes,
                        ReadTableRequest->FromValues, fromExpand)
         || !ParseRangeKey(ReadTableRequest->Range.GetTo(), keyTypes,
@@ -3033,7 +3034,7 @@ bool TDataReq::ParseRangeKey(const NKikimrMiniKQL::TParams &proto,
         auto& value = proto.GetValue();
         auto& type = proto.GetType();
         TString errStr;
-        bool res = NMiniKQL::CellsFromTuple(&type, value, keyType, true, key, errStr, memoryOwner);
+        bool res = NMiniKQL::CellsFromTuple(&type, value, keyType, {}, true, key, errStr, memoryOwner);
         if (!res) {
             UnresolvedKeys.push_back("Failed to parse range key tuple: " + errStr);
             return false;
diff --git a/ydb/core/tx/tx_proxy/describe.cpp b/ydb/core/tx/tx_proxy/describe.cpp
index aed5e9c91d8c..980cebb18c8c 100644
--- a/ydb/core/tx/tx_proxy/describe.cpp
+++ b/ydb/core/tx/tx_proxy/describe.cpp
@@ -83,7 +83,7 @@ class TDescribeReq : public TActor {
         auto schemeShardId = entry.DomainInfo->DomainKey.OwnerId;
 
         auto result = MakeHolder(
-            path, schemeShardId, TPathId());
+            path, TPathId());
 
         auto* pathDescription = result->Record.MutablePathDescription();
         auto* self = pathDescription->MutableSelf();
@@ -151,7 +151,7 @@ class TDescribeReq : public TActor {
         auto schemeShardId = entry.DomainInfo->DomainKey.OwnerId;
 
         auto result = MakeHolder(
-            path, schemeShardId, TPathId());
+            path, TPathId());
 
         auto* pathDescription = result->Record.MutablePathDescription();
         auto* self = pathDescription->MutableSelf();
@@ -237,7 +237,7 @@ void TDescribeReq::Handle(TEvTxProxyReq::TEvNavigateScheme::TPtr &ev, const TAct
         if (record.GetDescribePath().GetPath() == "/") {
             // Special handling for enumerating roots
             TAutoPtr result =
-                new NSchemeShard::TEvSchemeShard::TEvDescribeSchemeResultBuilder("/", NSchemeShard::RootSchemeShardId, TPathId(NSchemeShard::RootSchemeShardId, NSchemeShard::RootPathId));
+                new NSchemeShard::TEvSchemeShard::TEvDescribeSchemeResultBuilder("/", TPathId(NSchemeShard::RootSchemeShardId, NSchemeShard::RootPathId));
             auto descr = result->Record.MutablePathDescription();
             FillRootDescr(descr->MutableSelf(), "/", NSchemeShard::RootSchemeShardId);
             for (const auto& domain : domainsInfo->Domains) {
diff --git a/ydb/core/tx/tx_proxy/read_table.h b/ydb/core/tx/tx_proxy/read_table.h
index 8b5af2316989..66d9f433b889 100644
--- a/ydb/core/tx/tx_proxy/read_table.h
+++ b/ydb/core/tx/tx_proxy/read_table.h
@@ -11,6 +11,7 @@ namespace NTxProxy {
     enum class EReadTableFormat {
         OldResultSet,
         YdbResultSet,
+        YdbResultSetWithNotNullSupport
     };
 
     struct TReadTableSettings {
diff --git a/ydb/core/tx/tx_proxy/read_table_impl.cpp b/ydb/core/tx/tx_proxy/read_table_impl.cpp
index f8d9dcb56038..ba8f20f990c4 100644
--- a/ydb/core/tx/tx_proxy/read_table_impl.cpp
+++ b/ydb/core/tx/tx_proxy/read_table_impl.cpp
@@ -93,6 +93,7 @@ namespace {
     bool ParseRangeKey(
             const NKikimrMiniKQL::TParams& proto,
             TConstArrayRef keyTypes,
+            const TVector& notNullTypes,
             TSerializedCellVec& buf,
             EParseRangeKeyExp exp,
             TVector& unresolvedKeys)
@@ -108,7 +109,7 @@ namespace {
             auto& value = proto.GetValue();
             auto& type = proto.GetType();
             TString errStr;
-            bool res = NMiniKQL::CellsFromTuple(&type, value, keyTypes, true, key, errStr, memoryOwner);
+            bool res = NMiniKQL::CellsFromTuple(&type, value, keyTypes, notNullTypes, true, key, errStr, memoryOwner);
             if (!res) {
                 unresolvedKeys.push_back("Failed to parse range key tuple: " + errStr);
                 return false;
@@ -534,6 +535,7 @@ class TReadTableWorker : public TActorBootstrapped {
         }
 
         TVector keyTypes(res.Columns.size());
+        TVector notNullKeys(res.Columns.size());
         TVector columns(res.Columns.size());
         {
             size_t no = 0;
@@ -544,6 +546,7 @@ class TReadTableWorker : public TActorBootstrapped {
 
                 if (col.KeyOrder != -1) {
                     keyTypes[col.KeyOrder] = col.PType;
+                    notNullKeys[col.KeyOrder] = col.IsNotNullColumn;
                     ++keys;
                 }
 
@@ -564,6 +567,7 @@ class TReadTableWorker : public TActorBootstrapped {
             }
 
             keyTypes.resize(keys);
+            notNullKeys.resize(keys);
         }
 
         if (!colNameToPos.empty()) {
@@ -595,9 +599,9 @@ class TReadTableWorker : public TActorBootstrapped {
                 ? (toInclusive ? EParseRangeKeyExp::NONE : EParseRangeKeyExp::TO_NULL)
                 : EParseRangeKeyExp::NONE);
 
-        if (!ParseRangeKey(Settings.KeyRange.GetFrom(), keyTypes,
+        if (!ParseRangeKey(Settings.KeyRange.GetFrom(), keyTypes, notNullKeys,
                         KeyFromValues, fromExpand, UnresolvedKeys) ||
-            !ParseRangeKey(Settings.KeyRange.GetTo(), keyTypes,
+            !ParseRangeKey(Settings.KeyRange.GetTo(), keyTypes, notNullKeys,
                         KeyToValues, toExpand, UnresolvedKeys))
         {
             TxProxyMon->ResolveKeySetWrongRequest->Inc();
@@ -1443,6 +1447,9 @@ class TReadTableWorker : public TActorBootstrapped {
             case EReadTableFormat::YdbResultSet:
                 tx.SetApiVersion(NKikimrTxUserProxy::TReadTableTransaction::YDB_V1);
                 break;
+            case EReadTableFormat::YdbResultSetWithNotNullSupport:
+                tx.SetApiVersion(NKikimrTxUserProxy::TReadTableTransaction::YDB_V2);
+                break;
         }
 
         for (auto &col : Columns) {
@@ -1454,6 +1461,7 @@ class TReadTableWorker : public TActorBootstrapped {
             if (columnType.TypeInfo) {
                 *c.MutableTypeInfo() = *columnType.TypeInfo;
             }
+            c.SetNotNull(col.IsNotNullColumn);
         }
 
         auto& txRange = *tx.MutableRange();
@@ -1735,15 +1743,19 @@ class TReadTableWorker : public TActorBootstrapped {
     void SendEmptyResponseData(const TActorContext& ctx) {
         TString data;
         ui32 apiVersion = 0;
+        bool allowNotNull = false;
 
         switch (Settings.DataFormat) {
             case EReadTableFormat::OldResultSet:
                 // we don't support empty result sets
                 return;
 
+            case EReadTableFormat::YdbResultSetWithNotNullSupport:
+                allowNotNull = true;
             case EReadTableFormat::YdbResultSet: {
                 Ydb::ResultSet res;
                 for (auto& col : Columns) {
+                    bool notNullResp = allowNotNull && col.IsNotNullColumn;
                     auto* meta = res.add_columns();
                     meta->set_name(col.Name);
 
@@ -1753,16 +1765,15 @@ class TReadTableWorker : public TActorBootstrapped {
                         pg->set_type_name(NPg::PgTypeNameFromTypeDesc(typeDesc));
                         pg->set_oid(NPg::PgTypeIdFromTypeDesc(typeDesc));
                     } else {
+                        auto xType = notNullResp ? meta->mutable_type() : meta->mutable_type()->mutable_optional_type()->mutable_item();
                         auto id = static_cast(col.PType.GetTypeId());
                         if (id == NYql::NProto::Decimal) {
-                            auto decimalType = meta->mutable_type()->mutable_optional_type()->mutable_item()
-                                ->mutable_decimal_type();
+                            auto decimalType = xType->mutable_decimal_type();
                             //TODO: Pass decimal params here
                             decimalType->set_precision(22);
                             decimalType->set_scale(9);
                         } else {
-                            meta->mutable_type()->mutable_optional_type()->mutable_item()
-                                ->set_type_id(static_cast(id));
+                            xType->set_type_id(static_cast(id));
                         }
                     }
                 }
diff --git a/ydb/core/tx/tx_proxy/resolvereq.cpp b/ydb/core/tx/tx_proxy/resolvereq.cpp
index b1e3dbcb0f3c..399466137d16 100644
--- a/ydb/core/tx/tx_proxy/resolvereq.cpp
+++ b/ydb/core/tx/tx_proxy/resolvereq.cpp
@@ -35,7 +35,7 @@ namespace {
             auto& value = proto.GetValue();
             auto& type = proto.GetType();
             TString errStr;
-            bool res = NMiniKQL::CellsFromTuple(&type, value, keyTypes, true, key, errStr, memoryOwner);
+            bool res = NMiniKQL::CellsFromTuple(&type, value, keyTypes, {}, true, key, errStr, memoryOwner);
             if (!res) {
                 unresolvedKeys.push_back("Failed to parse range key tuple: " + errStr);
                 return false;
diff --git a/ydb/core/tx/tx_proxy/upload_rows_common_impl.cpp b/ydb/core/tx/tx_proxy/upload_rows_common_impl.cpp
index 865bade5eb22..6d487a26016b 100644
--- a/ydb/core/tx/tx_proxy/upload_rows_common_impl.cpp
+++ b/ydb/core/tx/tx_proxy/upload_rows_common_impl.cpp
@@ -7,10 +7,24 @@ namespace NKikimr {
         : TBase("BulkUpsert")
     {
         RequestsCount = TBase::GetDeriviative("Requests/Count");
-        RepliesCount = TBase::GetDeriviative("Replies/Count");
         ReplyDuration = TBase::GetHistogram("Replies/Duration", NMonitoring::ExponentialHistogram(15, 2, 1));
 
         RowsCount = TBase::GetDeriviative("Rows/Count");
         PackageSize = TBase::GetHistogram("Rows/PackageSize", NMonitoring::ExponentialHistogram(15, 2, 10));
+
+        const google::protobuf::EnumDescriptor* descriptor = ::Ydb::StatusIds::StatusCode_descriptor();
+        for (ui32 i = 0; i < (ui32)descriptor->value_count(); ++i) {
+            auto vDescription = descriptor->value(i);
+            CodesCount.emplace(vDescription->name(), CreateSubGroup("reply_code", vDescription->name()).GetDeriviative("Replies/Count"));
+        }
+    }
+
+    void TUploadCounters::OnReply(const TDuration d, const ::Ydb::StatusIds::StatusCode code) const {
+        const TString name = ::Ydb::StatusIds::StatusCode_Name(code);
+        auto it = CodesCount.find(name);
+        Y_ABORT_UNLESS(it != CodesCount.end());
+        it->second->Add(1);
+        ReplyDuration->Collect(d.MilliSeconds());
     }
+
 }
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 16f4964299b5..5b79cb5657d5 100644
--- a/ydb/core/tx/tx_proxy/upload_rows_common_impl.h
+++ b/ydb/core/tx/tx_proxy/upload_rows_common_impl.h
@@ -9,7 +9,6 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 
@@ -29,6 +28,8 @@
 #undef INCLUDE_YDB_INTERNAL_H
 
 #include 
+#include 
+#include 
 
 #include 
 #include 
@@ -40,15 +41,12 @@ class TUploadCounters: public NColumnShard::TCommonCountersOwner {
 private:
     using TBase = NColumnShard::TCommonCountersOwner;
     NMonitoring::TDynamicCounters::TCounterPtr RequestsCount;
-    NMonitoring::TDynamicCounters::TCounterPtr RepliesCount;
     NMonitoring::THistogramPtr ReplyDuration;
 
     NMonitoring::TDynamicCounters::TCounterPtr RowsCount;
     NMonitoring::THistogramPtr PackageSize;
 
-    NMonitoring::TDynamicCounters::TCounterPtr FailsCount;
-    NMonitoring::THistogramPtr FailDuration;
-
+    THashMap CodesCount;
 public:
     TUploadCounters();
 
@@ -58,15 +56,7 @@ class TUploadCounters: public NColumnShard::TCommonCountersOwner {
         PackageSize->Collect(rowsCount);
     }
 
-    void OnReply( const TDuration d) const {
-        RepliesCount->Add(1);
-        ReplyDuration->Collect(d.MilliSeconds());
-    }
-
-    void OnFail(const TDuration d) const {
-        FailsCount->Add(1);
-        FailDuration->Collect(d.MilliSeconds());
-    }
+    void OnReply(const TDuration d, const ::Ydb::StatusIds::StatusCode code) const;
 };
 
 
@@ -208,18 +198,21 @@ class TUploadRowsBase : public TActorBootstrapped Batch;
     float RuCost = 0.0;
 
+    NWilson::TSpan Span;
+
 public:
     static constexpr NKikimrServices::TActivity::EType ActorActivityType() {
         return DerivedActivityType;
     }
 
-    explicit TUploadRowsBase(TDuration timeout = TDuration::Max(), bool diskQuotaExceeded = false)
+    explicit TUploadRowsBase(TDuration timeout = TDuration::Max(), bool diskQuotaExceeded = false, NWilson::TSpan span = {})
         : TBase()
         , SchemeCache(MakeSchemeCacheID())
         , LeaderPipeCache(MakePipePeNodeCacheID(false))
         , Timeout((timeout && timeout <= DEFAULT_TIMEOUT) ? timeout : DEFAULT_TIMEOUT)
         , Status(Ydb::StatusIds::SUCCESS)
         , DiskQuotaExceeded(diskQuotaExceeded)
+        , Span(std::move(span))
     {}
 
     void Bootstrap(const NActors::TActorContext& ctx) {
@@ -232,10 +225,10 @@ class TUploadRowsBase : public TActorBootstrappedid() == NArrow::GetArrowType(type2)->id());
+            auto arrowType1 = NArrow::GetArrowType(type1);
+            auto arrowType2 = NArrow::GetArrowType(type2);
+            if (arrowType1.ok() && arrowType2.ok()) {
+                res = (arrowType1.ValueUnsafe()->id() == arrowType2.ValueUnsafe()->id());
+            }
         }
         return res;
     }
@@ -595,7 +594,7 @@ class TUploadRowsBase : public TActorBootstrappedResultSet.emplace_back(entry);
-        ctx.Send(SchemeCache, new TEvTxProxySchemeCache::TEvNavigateKeySet(request));
+        ctx.Send(SchemeCache, new TEvTxProxySchemeCache::TEvNavigateKeySet(request), 0, 0, Span.GetTraceId());
 
         TimeoutTimerActorId = CreateLongTimer(ctx, Timeout,
             new IEventHandle(ctx.SelfID, ctx.SelfID, new TEvents::TEvWakeup()));
@@ -683,15 +682,19 @@ class TUploadRowsBase : public TActorBootstrappedResultSet.emplace_back(std::move(keyRange));
 
         TAutoPtr resolveReq(new TEvTxProxySchemeCache::TEvResolveKeySet(request));
-        ctx.Send(SchemeCache, resolveReq.Release());
+        ctx.Send(SchemeCache, resolveReq.Release(), 0, 0, Span.GetTraceId());
 
         TBase::Become(&TThis::StateWaitResolveShards);
     }
@@ -1027,7 +1030,7 @@ class TUploadRowsBase : public TActorBootstrappedRecord.SetOverloadSubscribe(seqNo);
         state->SentOverloadSeqNo = seqNo;
 
-        ctx.Send(LeaderPipeCache, new TEvPipeCache::TEvForward(ev.release(), shardId, true), IEventHandle::FlagTrackDelivery);
+        ctx.Send(LeaderPipeCache, new TEvPipeCache::TEvForward(ev.release(), shardId, true), IEventHandle::FlagTrackDelivery, 0, Span.GetTraceId());
     }
 
     void MakeShardRequests(const NActors::TActorContext& ctx) {
@@ -1109,7 +1112,7 @@ class TUploadRowsBase : public TActorBootstrappedRecord.SetOverloadSubscribe(seqNo);
             uploadRetryStates[idx]->SentOverloadSeqNo = seqNo;
 
-            ctx.Send(LeaderPipeCache, new TEvPipeCache::TEvForward(ev.release(), shardId, true), IEventHandle::FlagTrackDelivery);
+            ctx.Send(LeaderPipeCache, new TEvPipeCache::TEvForward(ev.release(), shardId, true), IEventHandle::FlagTrackDelivery, 0, Span.GetTraceId());
 
             auto res = ShardRepliesLeft.insert(shardId);
             if (!res.second) {
@@ -1120,7 +1123,7 @@ class TUploadRowsBase : public TActorBootstrappedTableId, TActorId()));
+        ctx.Send(SchemeCache, new TEvTxProxySchemeCache::TEvInvalidateTable(GetKeyRange()->TableId, TActorId()), 0, 0, Span.GetTraceId());
 
         SetError(Ydb::StatusIds::UNAVAILABLE, Sprintf("Failed to connect to shard %" PRIu64, ev->Get()->TabletId));
         ShardRepliesLeft.erase(ev->Get()->TabletId);
 
-        ReplyIfDone(ctx);
+        return ReplyIfDone(ctx);
     }
 
     STFUNC(StateWaitResults) {
@@ -1170,7 +1173,7 @@ class TUploadRowsBase : public TActorBootstrappedTableId, TActorId()));
+                ctx.Send(SchemeCache, new TEvTxProxySchemeCache::TEvInvalidateTable(GetKeyRange()->TableId, TActorId()), 0, 0, Span.GetTraceId());
                 status = Ydb::StatusIds::OVERLOADED;
                 break;
             case NKikimrTxDataShard::TError::DISK_SPACE_EXHAUSTED:
@@ -1203,12 +1206,12 @@ class TUploadRowsBase : public TActorBootstrappedNow() - StartTime);
+        UploadCounters.OnReply(TAppData::TimeProvider->Now() - StartTime, status);
         SendResult(ctx, status);
 
         LOG_DEBUG_S(ctx, NKikimrServices::RPC_REQUEST, LogPrefix() << "completed with status " << status);
@@ -1266,6 +1269,7 @@ class TUploadRowsBase : public TActorBootstrapped
+#include 
+
+namespace NKikimr {
+
+inline NHPTimer::STime HPNow() {
+    NHPTimer::STime ret;
+    GetTimeFast(&ret);
+    return ret;
+}
+
+inline double HPSecondsFloat(i64 cycles) {
+    if (cycles > 0) {
+        return double(cycles) / NHPTimer::GetClockRate();
+    } else {
+        return 0.0;
+    }
+}
+
+inline double HPMilliSecondsFloat(i64 cycles) {
+    if (cycles > 0) {
+        return double(cycles) * 1000.0 / NHPTimer::GetClockRate();
+    } else {
+        return 0;
+    }
+}
+
+inline ui64 HPMilliSeconds(i64 cycles) {
+    return (ui64)HPMilliSecondsFloat(cycles);
+}
+
+inline ui64 HPMicroSecondsFloat(i64 cycles) {
+    if (cycles > 0) {
+        return double(cycles) * 1000000.0 / NHPTimer::GetClockRate();
+    } else {
+        return 0;
+    }
+}
+
+inline ui64 HPMicroSeconds(i64 cycles) {
+    return (ui64)HPMicroSecondsFloat(cycles);
+}
+
+inline ui64 HPNanoSeconds(i64 cycles) {
+    if (cycles > 0) {
+        return ui64(double(cycles) * 1000000000.0 / NHPTimer::GetClockRate());
+    } else {
+        return 0;
+    }
+}
+
+inline ui64 HPCyclesNs(ui64 ns) {
+    return ui64(NHPTimer::GetClockRate() * double(ns) / 1000000000.0);
+}
+
+inline ui64 HPCyclesUs(ui64 us) {
+    return ui64(NHPTimer::GetClockRate() * double(us) / 1000000.0);
+}
+
+inline ui64 HPCyclesMs(ui64 ms) {
+    return ui64(NHPTimer::GetClockRate() * double(ms) / 1000.0);
+}
+
+} // namespace NKikimr
diff --git a/ydb/core/util/light.h b/ydb/core/util/light.h
new file mode 100644
index 000000000000..10a698a45e9f
--- /dev/null
+++ b/ydb/core/util/light.h
@@ -0,0 +1,213 @@
+#include 
+
+#include "hp_timer_helpers.h"
+
+namespace NKikimr {
+
+class TLightBase {
+protected:
+    TString Name;
+    ::NMonitoring::TDynamicCounters::TCounterPtr State; // Current state (0=OFF=green, 1=ON=red)
+    ::NMonitoring::TDynamicCounters::TCounterPtr Count; // Number of switches to ON state
+    ::NMonitoring::TDynamicCounters::TCounterPtr RedMs; // Time elapsed in ON state
+    ::NMonitoring::TDynamicCounters::TCounterPtr GreenMs; // Time elapsed in OFF state
+private:
+    ui64 RedCycles = 0;
+    ui64 GreenCycles = 0;
+    NHPTimer::STime AdvancedTill = 0;
+    NHPTimer::STime LastNow = 0;
+    ui64 UpdateThreshold = 0;
+public:
+    void Initialize(TIntrusivePtr<::NMonitoring::TDynamicCounters>& counters, const TString& name) {
+        Name = name;
+        State = counters->GetCounter(name + "_state");
+        Count = counters->GetCounter(name + "_count", true);
+        RedMs = counters->GetCounter(name + "_redMs", true);
+        GreenMs = counters->GetCounter(name + "_greenMs", true);
+        UpdateThreshold = HPCyclesMs(100);
+        AdvancedTill = Now();
+    }
+
+    void Initialize(TIntrusivePtr<::NMonitoring::TDynamicCounters>& counters, const TString& countName,
+            const TString& redMsName,const TString& greenMsName) {
+        Count = counters->GetCounter(countName, true);
+        RedMs = counters->GetCounter(redMsName, true);
+        GreenMs = counters->GetCounter(greenMsName, true);
+        UpdateThreshold = HPCyclesMs(100);
+        AdvancedTill = Now();
+    }
+
+    ui64 GetCount() const {
+        return *Count;
+    }
+
+    ui64 GetRedMs() const {
+        return *RedMs;
+    }
+
+    ui64 GetGreenMs() const {
+        return *GreenMs;
+    }
+protected:
+    void Modify(bool state, bool prevState) {
+        if (state && !prevState) { // Switched to ON state
+            if (State) {
+                *State = true;
+            }
+            (*Count)++;
+            return;
+        }
+        if (!state && prevState) { // Switched to OFF state
+            if (State) {
+                *State = false;
+            }
+            return;
+        }
+    }
+
+    void Advance(bool state, NHPTimer::STime now) {
+        if (now == AdvancedTill) {
+            return;
+        }
+        Elapsed(state, now - AdvancedTill);
+        if (RedCycles > UpdateThreshold) {
+            *RedMs += CutMs(RedCycles);
+        }
+        if (GreenCycles > UpdateThreshold) {
+            *GreenMs += CutMs(GreenCycles);
+        }
+        AdvancedTill = now;
+    }
+
+    NHPTimer::STime Now() {
+        // Avoid time going backwards
+        NHPTimer::STime now = HPNow();
+        if (now < LastNow) {
+            now = LastNow;
+        }
+        LastNow = now;
+        return now;
+    }
+private:
+    void Elapsed(bool state, ui64 cycles) {
+        if (state) {
+            RedCycles += cycles;
+        } else {
+            GreenCycles += cycles;
+        }
+    }
+
+    ui64 CutMs(ui64& src) {
+        ui64 ms = HPMilliSeconds(src);
+        ui64 cycles = HPCyclesMs(ms);
+        src -= cycles;
+        return ms;
+    }
+};
+
+// Thread-safe light
+class TLight : public TLightBase {
+private:
+    struct TItem {
+        bool State;
+        bool Filled;
+        TItem(bool state = false, bool filled = false)
+            : State(state)
+            , Filled(filled)
+        {}
+    };
+
+    // Cyclic buffer to enforce event ordering by seqno
+    TSpinLock Lock;
+    size_t HeadIdx = 0; // Index of current state
+    size_t FilledCount = 0;
+    ui16 Seqno = 0; // Current seqno
+    TStackVec Data; // In theory should have not more than thread count items
+public:
+    TLight() {
+        InitData();
+    }
+
+    void Set(bool state, ui16 seqno) {
+        TGuard g(Lock);
+        Push(state, seqno);
+        bool prevState;
+        // Note that 'state' variable is being reused
+        NHPTimer::STime now = Now();
+        while (Pop(state, prevState)) {
+            Modify(state, prevState);
+            Advance(prevState, now);
+        }
+    }
+
+    void Update() {
+        TGuard g(Lock);
+        Advance(Data[HeadIdx].State, Now());
+    }
+
+private:
+    void InitData(bool state = false, bool filled = false) {
+        Data.clear();
+        Data.emplace_back(state, filled);
+        Data.resize(32);
+        HeadIdx = 0;
+    }
+
+    void Push(bool state, ui16 seqno) {
+        FilledCount++;
+        if (FilledCount == 1) { // First event must initialize seqno
+            Seqno = seqno;
+            InitData(state, true);
+            if (state) {
+                Modify(true, false);
+            }
+            return;
+        }
+        Y_ABORT_UNLESS(seqno != Seqno, "ordering overflow or duplicate event headSeqno# %d seqno# %d state# %d filled# %d",
+                 (int)Seqno, (int)seqno, (int)state, (int)CountFilled());
+        ui16 diff = seqno;
+        diff -= Seqno; // Underflow is fine
+        size_t size = Data.size();
+        if (size <= diff) { // Buffer is full -- extend and move wrapped part
+            Data.resize(size * 2);
+            for (size_t i = 0; i < HeadIdx; i++) {
+                Data[size + i] = Data[i];
+                Data[i].Filled = false;
+            }
+        }
+        TItem& item = Data[(HeadIdx + diff) % Data.size()];
+        Y_ABORT_UNLESS(!item.Filled, "ordering overflow or duplicate event headSeqno# %d seqno# %d state# %d filled# %d",
+                 (int)Seqno, (int)seqno, (int)state, (int)CountFilled());
+        item.Filled = true;
+        item.State = state;
+    }
+
+    bool Pop(bool& state, bool& prevState) {
+        size_t nextIdx = (HeadIdx + 1) % Data.size();
+        TItem& head = Data[HeadIdx];
+        TItem& next = Data[nextIdx];
+        if (!head.Filled || !next.Filled) {
+            return false;
+        }
+        state = next.State;
+        prevState = head.State;
+        head.Filled = false;
+        HeadIdx = nextIdx;
+        Seqno++; // Overflow is fine
+        FilledCount--;
+        if (FilledCount == 1 && Data.size() > 32) {
+            InitData(state, true);
+        }
+        return true;
+    }
+
+    size_t CountFilled() const {
+        size_t ret = 0;
+        for (const TItem& item : Data) {
+            ret += item.Filled;
+        }
+        return ret;
+    }
+};
+
+} // namespace NKikimr
diff --git a/ydb/core/util/metrics.h b/ydb/core/util/metrics.h
index cae931733faf..d726e40555da 100644
--- a/ydb/core/util/metrics.h
+++ b/ydb/core/util/metrics.h
@@ -395,6 +395,9 @@ class TMaximumValueVariableWindowUI64 : public NKikimrMetricsProto::TMaximumValu
     using TProto = NKikimrMetricsProto::TMaximumValueUI64;
 
     void SetValue(TType value, TInstant now = TInstant::Now()) {
+        if (TProto::GetAllTimeMaximum() > 0 || MaximumValue > 0) { // ignoring initial value
+            TProto::SetAllTimeMaximum(std::max(value, TProto::GetAllTimeMaximum()));
+        }
         TDuration elapsedCurrentBucket = now - TInstant::MilliSeconds(TProto::GetLastBucketStartTime());
         if (TProto::ValuesSize() == 0 || elapsedCurrentBucket >= BucketDuration) {
             size_t bucketsPassed = 0;
@@ -436,6 +439,15 @@ class TMaximumValueVariableWindowUI64 : public NKikimrMetricsProto::TMaximumValu
         }
     }
 
+    void AdvanceTime(TInstant now) {
+        // Nothing changed, last value is stiil relevant
+        TType lastValue = {};
+        if (!TProto::GetValues().empty()) {
+            lastValue = *std::prev(TProto::MutableValues()->end());
+        }
+        SetValue(lastValue, now);
+    }
+
     TType GetValue() const {
         return MaximumValue;
     }
diff --git a/ydb/core/util/operation_queue.h b/ydb/core/util/operation_queue.h
index 74d2a3e76349..8628c2266fdb 100644
--- a/ydb/core/util/operation_queue.h
+++ b/ydb/core/util/operation_queue.h
@@ -488,7 +488,7 @@ bool TOperationQueue::Remove(const T& item) {
         StartOperations();
     }
 
-    removed = WaitingItems.Remove(TItemWithTs(item)) || removed;
+    removed |= WaitingItems.Remove(TItemWithTs(item));
 
     if (ItemsToShuffle) {
         auto it = Find(ItemsToShuffle.begin(), ItemsToShuffle.end(), item);
diff --git a/ydb/core/util/ut/CMakeLists.darwin-arm64.txt b/ydb/core/util/ut/CMakeLists.darwin-arm64.txt
index c7cd3e7dc653..1c49731bb155 100644
--- a/ydb/core/util/ut/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/util/ut/CMakeLists.darwin-arm64.txt
@@ -24,8 +24,6 @@ target_link_options(ydb-core-util-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-util-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/util/address_classifier_ut.cpp
@@ -86,6 +84,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/util/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/util/ut/CMakeLists.darwin-x86_64.txt
index c7fa9985f51b..f16b3f84e729 100644
--- a/ydb/core/util/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/util/ut/CMakeLists.darwin-x86_64.txt
@@ -25,8 +25,6 @@ target_link_options(ydb-core-util-ut PRIVATE
   -Wl,-platform_version,macos,11.0,11.0
   -fPIC
   -fPIC
-  -framework
-  CoreFoundation
 )
 target_sources(ydb-core-util-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/util/address_classifier_ut.cpp
@@ -87,6 +85,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/util/ut/CMakeLists.linux-aarch64.txt b/ydb/core/util/ut/CMakeLists.linux-aarch64.txt
index cbebb39f6ab4..c878a31c745f 100644
--- a/ydb/core/util/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/util/ut/CMakeLists.linux-aarch64.txt
@@ -27,9 +27,6 @@ target_link_options(ydb-core-util-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-util-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/util/address_classifier_ut.cpp
@@ -90,6 +87,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/util/ut/CMakeLists.linux-x86_64.txt b/ydb/core/util/ut/CMakeLists.linux-x86_64.txt
index daf463609d0f..c4cc83ed0b0c 100644
--- a/ydb/core/util/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/util/ut/CMakeLists.linux-x86_64.txt
@@ -28,9 +28,6 @@ target_link_options(ydb-core-util-ut PRIVATE
   -Wl,--no-as-needed
   -fPIC
   -fPIC
-  -lpthread
-  -lrt
-  -ldl
 )
 target_sources(ydb-core-util-ut PRIVATE
   ${CMAKE_SOURCE_DIR}/ydb/core/util/address_classifier_ut.cpp
@@ -91,6 +88,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/util/ut/CMakeLists.windows-x86_64.txt b/ydb/core/util/ut/CMakeLists.windows-x86_64.txt
index 500f855b30ff..91f72d7ccb52 100644
--- a/ydb/core/util/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/util/ut/CMakeLists.windows-x86_64.txt
@@ -80,6 +80,7 @@ set_yunittest_property(
   PROPERTY
   LABELS
   MEDIUM
+  $FILTER_ONLY_TEST_TAGS
 )
 set_yunittest_property(
   TEST
diff --git a/ydb/core/util/wilson.h b/ydb/core/util/wilson.h
new file mode 100644
index 000000000000..1fbf9c4d51d7
--- /dev/null
+++ b/ydb/core/util/wilson.h
@@ -0,0 +1,14 @@
+#include 
+#include 
+
+namespace NWilson {
+
+inline void EndSpanWithStatus(NWilson::TSpan& span, Ydb::StatusIds::StatusCode statusCode) {
+    if (statusCode == Ydb::StatusIds::SUCCESS) {
+        span.EndOk();
+    } else {
+        span.EndError(Ydb::StatusIds_StatusCode_Name(statusCode));
+    }
+}
+
+} // namespace NWilson
diff --git a/ydb/core/util/ya.make b/ydb/core/util/ya.make
index b321355669a9..abcd51fb3586 100644
--- a/ydb/core/util/ya.make
+++ b/ydb/core/util/ya.make
@@ -60,12 +60,14 @@ SRCS(
     ui64id.cpp
     ui64id.h
     wildcard.h
+    wilson.h
 )
 
 PEERDIR(
     ydb/library/actors/core
     ydb/library/actors/interconnect/mock
     ydb/library/actors/util
+    ydb/library/actors/wilson
     library/cpp/containers/stack_vector
     library/cpp/html/escape
     library/cpp/ipmath
diff --git a/ydb/core/viewer/CMakeLists.darwin-arm64.txt b/ydb/core/viewer/CMakeLists.darwin-arm64.txt
index 98e7e67ed639..67ded5fa00b9 100644
--- a/ydb/core/viewer/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/viewer/CMakeLists.darwin-arm64.txt
@@ -33,6 +33,7 @@ target_link_libraries(ydb-core-viewer PUBLIC
   core-blobstorage-base
   blobstorage-vdisk-common
   core-client-server
+  core-graph-api
   ydb-core-grpc_services
   core-grpc_services-local_rpc
   ydb-core-health_check
@@ -52,6 +53,56 @@ target_link_libraries(ydb-core-viewer PUBLIC
   cpp-client-ydb_types
 )
 target_sources(ydb-core-viewer PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/browse_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/browse_pq.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/browse.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/counters_hosts.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_acl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_blobindexstat.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_browse.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_bscontrollerinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_bsgroupinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_cluster.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_compute.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_config.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_content.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_describe.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_local_rpc.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_getblob.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_graph.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_healthcheck.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_hiveinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_hotkeys.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_labeledcounters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_metainfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_netinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_nodeinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_nodelist.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_nodes.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_pdiskinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_query.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_render.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_storage.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_sysinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tabletcounters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tabletinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tenants.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tenantinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_topicinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_pqconsumerinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_vdisk_req.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_vdiskinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_vdiskstat.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_wb_req.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_whoami.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/log.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_request.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_aggregate.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_filter.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_group.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_merge.h
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_handlers_vdisk.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_handlers_viewer.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_request.cpp
@@ -79,6 +130,7 @@ target_link_libraries(ydb-core-viewer.global PUBLIC
   core-blobstorage-base
   blobstorage-vdisk-common
   core-client-server
+  core-graph-api
   ydb-core-grpc_services
   core-grpc_services-local_rpc
   ydb-core-health_check
diff --git a/ydb/core/viewer/CMakeLists.darwin-x86_64.txt b/ydb/core/viewer/CMakeLists.darwin-x86_64.txt
index 98e7e67ed639..67ded5fa00b9 100644
--- a/ydb/core/viewer/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/viewer/CMakeLists.darwin-x86_64.txt
@@ -33,6 +33,7 @@ target_link_libraries(ydb-core-viewer PUBLIC
   core-blobstorage-base
   blobstorage-vdisk-common
   core-client-server
+  core-graph-api
   ydb-core-grpc_services
   core-grpc_services-local_rpc
   ydb-core-health_check
@@ -52,6 +53,56 @@ target_link_libraries(ydb-core-viewer PUBLIC
   cpp-client-ydb_types
 )
 target_sources(ydb-core-viewer PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/browse_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/browse_pq.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/browse.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/counters_hosts.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_acl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_blobindexstat.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_browse.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_bscontrollerinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_bsgroupinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_cluster.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_compute.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_config.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_content.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_describe.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_local_rpc.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_getblob.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_graph.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_healthcheck.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_hiveinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_hotkeys.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_labeledcounters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_metainfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_netinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_nodeinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_nodelist.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_nodes.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_pdiskinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_query.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_render.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_storage.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_sysinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tabletcounters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tabletinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tenants.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tenantinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_topicinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_pqconsumerinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_vdisk_req.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_vdiskinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_vdiskstat.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_wb_req.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_whoami.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/log.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_request.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_aggregate.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_filter.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_group.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_merge.h
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_handlers_vdisk.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_handlers_viewer.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_request.cpp
@@ -79,6 +130,7 @@ target_link_libraries(ydb-core-viewer.global PUBLIC
   core-blobstorage-base
   blobstorage-vdisk-common
   core-client-server
+  core-graph-api
   ydb-core-grpc_services
   core-grpc_services-local_rpc
   ydb-core-health_check
diff --git a/ydb/core/viewer/CMakeLists.linux-aarch64.txt b/ydb/core/viewer/CMakeLists.linux-aarch64.txt
index d55b6b86b858..2ce409ce05eb 100644
--- a/ydb/core/viewer/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/viewer/CMakeLists.linux-aarch64.txt
@@ -34,6 +34,7 @@ target_link_libraries(ydb-core-viewer PUBLIC
   core-blobstorage-base
   blobstorage-vdisk-common
   core-client-server
+  core-graph-api
   ydb-core-grpc_services
   core-grpc_services-local_rpc
   ydb-core-health_check
@@ -53,6 +54,56 @@ target_link_libraries(ydb-core-viewer PUBLIC
   cpp-client-ydb_types
 )
 target_sources(ydb-core-viewer PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/browse_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/browse_pq.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/browse.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/counters_hosts.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_acl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_blobindexstat.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_browse.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_bscontrollerinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_bsgroupinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_cluster.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_compute.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_config.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_content.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_describe.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_local_rpc.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_getblob.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_graph.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_healthcheck.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_hiveinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_hotkeys.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_labeledcounters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_metainfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_netinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_nodeinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_nodelist.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_nodes.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_pdiskinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_query.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_render.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_storage.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_sysinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tabletcounters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tabletinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tenants.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tenantinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_topicinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_pqconsumerinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_vdisk_req.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_vdiskinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_vdiskstat.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_wb_req.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_whoami.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/log.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_request.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_aggregate.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_filter.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_group.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_merge.h
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_handlers_vdisk.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_handlers_viewer.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_request.cpp
@@ -81,6 +132,7 @@ target_link_libraries(ydb-core-viewer.global PUBLIC
   core-blobstorage-base
   blobstorage-vdisk-common
   core-client-server
+  core-graph-api
   ydb-core-grpc_services
   core-grpc_services-local_rpc
   ydb-core-health_check
diff --git a/ydb/core/viewer/CMakeLists.linux-x86_64.txt b/ydb/core/viewer/CMakeLists.linux-x86_64.txt
index d55b6b86b858..2ce409ce05eb 100644
--- a/ydb/core/viewer/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/viewer/CMakeLists.linux-x86_64.txt
@@ -34,6 +34,7 @@ target_link_libraries(ydb-core-viewer PUBLIC
   core-blobstorage-base
   blobstorage-vdisk-common
   core-client-server
+  core-graph-api
   ydb-core-grpc_services
   core-grpc_services-local_rpc
   ydb-core-health_check
@@ -53,6 +54,56 @@ target_link_libraries(ydb-core-viewer PUBLIC
   cpp-client-ydb_types
 )
 target_sources(ydb-core-viewer PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/browse_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/browse_pq.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/browse.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/counters_hosts.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_acl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_blobindexstat.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_browse.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_bscontrollerinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_bsgroupinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_cluster.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_compute.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_config.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_content.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_describe.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_local_rpc.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_getblob.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_graph.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_healthcheck.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_hiveinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_hotkeys.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_labeledcounters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_metainfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_netinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_nodeinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_nodelist.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_nodes.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_pdiskinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_query.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_render.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_storage.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_sysinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tabletcounters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tabletinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tenants.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tenantinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_topicinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_pqconsumerinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_vdisk_req.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_vdiskinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_vdiskstat.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_wb_req.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_whoami.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/log.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_request.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_aggregate.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_filter.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_group.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_merge.h
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_handlers_vdisk.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_handlers_viewer.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_request.cpp
@@ -81,6 +132,7 @@ target_link_libraries(ydb-core-viewer.global PUBLIC
   core-blobstorage-base
   blobstorage-vdisk-common
   core-client-server
+  core-graph-api
   ydb-core-grpc_services
   core-grpc_services-local_rpc
   ydb-core-health_check
diff --git a/ydb/core/viewer/CMakeLists.windows-x86_64.txt b/ydb/core/viewer/CMakeLists.windows-x86_64.txt
index 98e7e67ed639..67ded5fa00b9 100644
--- a/ydb/core/viewer/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/viewer/CMakeLists.windows-x86_64.txt
@@ -33,6 +33,7 @@ target_link_libraries(ydb-core-viewer PUBLIC
   core-blobstorage-base
   blobstorage-vdisk-common
   core-client-server
+  core-graph-api
   ydb-core-grpc_services
   core-grpc_services-local_rpc
   ydb-core-health_check
@@ -52,6 +53,56 @@ target_link_libraries(ydb-core-viewer PUBLIC
   cpp-client-ydb_types
 )
 target_sources(ydb-core-viewer PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/browse_db.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/browse_pq.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/browse.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/counters_hosts.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_acl.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_blobindexstat.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_browse.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_bscontrollerinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_bsgroupinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_cluster.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_compute.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_config.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_content.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_counters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_describe.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_local_rpc.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_getblob.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_graph.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_healthcheck.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_hiveinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_hotkeys.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_labeledcounters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_metainfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_netinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_nodeinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_nodelist.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_nodes.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_pdiskinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_query.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_render.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_storage.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_sysinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tabletcounters.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tabletinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tenants.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_tenantinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_topicinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_pqconsumerinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_vdisk_req.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_vdiskinfo.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_vdiskstat.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_wb_req.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_whoami.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/log.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_request.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_aggregate.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_filter.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_group.h
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/wb_merge.h
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_handlers_vdisk.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json_handlers_viewer.cpp
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_request.cpp
@@ -79,6 +130,7 @@ target_link_libraries(ydb-core-viewer.global PUBLIC
   core-blobstorage-base
   blobstorage-vdisk-common
   core-client-server
+  core-graph-api
   ydb-core-grpc_services
   core-grpc_services-local_rpc
   ydb-core-health_check
diff --git a/ydb/core/viewer/content/v2/storage.js b/ydb/core/viewer/content/v2/storage.js
index f9c717071329..a527233cd278 100644
--- a/ydb/core/viewer/content/v2/storage.js
+++ b/ydb/core/viewer/content/v2/storage.js
@@ -140,10 +140,14 @@ Storage.prototype.appear = function() {
         } else if (!this.BlobDepotId) {
             erasureElem = $('', {text: 'BlobDepot (error)'});
         } else {
+            label = 'BlobDepot';
+            if (this.BlobDepotOnlineTime === undefined || getTime() - this.BlobDepotOnlineTime >= 15000) {
+                label = 'BlobDepot (error)';
+            }
             erasureElem = $('');
             var link = $('', {
                 'href': '../../../tablets/app?TabletID=' + this.BlobDepotId,
-                'text': 'BlobDepot',
+                'text': label,
                 'title': this.BlobDepotId
             });
             erasureElem.html(link);
@@ -372,6 +376,14 @@ Storage.prototype.updateFromStorage = function(update) {
         //console.log(this);
         break;
     }
+
+    var blobDepotError = false;
+    if (this.BlobDepotId !== undefined && (!this.BlobDepotId || this.BlobDepotOnlineTime === undefined ||
+            getTime() - this.BlobDepotOnlineTime >= 15000)) {
+        this.color = red; // blob depot is ought to be working, but it does not
+        blobDepotError = true;
+    }
+
     var usage = 0;
     var missingDisks = 0;
     for (var numDisk in this.VDisks) {
@@ -412,6 +424,9 @@ Storage.prototype.updateFromStorage = function(update) {
         }
     }
     this.usage = usage;
+    if (blobDepotError) {
+        missingDisks = -1;
+    }
     this.missingDisks = missingDisks;
     if (this.visible) {
         this.update();
diff --git a/ydb/core/viewer/content/v2/viewer.js b/ydb/core/viewer/content/v2/viewer.js
index 74686cbdbf99..eb96fddcb633 100644
--- a/ydb/core/viewer/content/v2/viewer.js
+++ b/ydb/core/viewer/content/v2/viewer.js
@@ -467,7 +467,10 @@ ViewerStorage.prototype.onStorageGroupChange = function(obj) {
         this.storageView.groupOrder = function(prev, next) { return Number(prev.substring(0, prev.length - 1)) > Number(next.substring(0, next.length - 1)); }
         break;
     case 'missing':
-        this.storageView.getStorageGroupName = function(storage) { var md = storage.getMissingDisks(); return md === 0 ? "Complete" : '-' + md; }
+        this.storageView.getStorageGroupName = function(storage) {
+            var md = storage.getMissingDisks();
+            return md === -1 ? "BlobDepot error" : md === 0 ? "Complete" : '-' + md;
+        }
         this.storageView.getStorageGroupHeader = function(storageGroup) { return storageGroup.storageTotal + ' groups'; }
         this.storageView.groupOrder = function(prev, next) { return prev < next; }
         break;
diff --git a/ydb/core/viewer/counters_hosts.h b/ydb/core/viewer/counters_hosts.h
index 55a2cc89a78b..2232f16b00ba 100644
--- a/ydb/core/viewer/counters_hosts.h
+++ b/ydb/core/viewer/counters_hosts.h
@@ -16,9 +16,13 @@ using namespace NActors;
 using namespace NNodeWhiteboard;
 
 class TCountersHostsList : public TActorBootstrapped {
+    using TBase = TActorBootstrapped;
+
+    IViewer* Viewer;
     NMon::TEvHttpInfo::TPtr Event;
     THolder NodesInfo;
     TMap> NodesResponses;
+    THashSet TcpProxies;
     ui32 NodesRequested = 0;
     ui32 NodesReceived = 0;
     bool StaticNodesOnly = false;
@@ -29,51 +33,53 @@ class TCountersHostsList : public TActorBootstrapped {
         return NKikimrServices::TActivity::VIEWER_HANDLER;
     }
 
-    TCountersHostsList(IViewer*, NMon::TEvHttpInfo::TPtr& ev)
-        : Event(ev)
+    TCountersHostsList(IViewer* viewer, NMon::TEvHttpInfo::TPtr& ev)
+        : Viewer(viewer)
+        , Event(ev)
     {}
 
-    void Bootstrap(const TActorContext& ctx) {
+    void Bootstrap() {
         const auto& params(Event->Get()->Request.GetParams());
         StaticNodesOnly = FromStringWithDefault(params.Get("static_only"), StaticNodesOnly);
         DynamicNodesOnly = FromStringWithDefault(params.Get("dynamic_only"), DynamicNodesOnly);
         const TActorId nameserviceId = GetNameserviceActorId();
-        ctx.Send(nameserviceId, new TEvInterconnect::TEvListNodes());
-        ctx.Schedule(TDuration::Seconds(10), new TEvents::TEvWakeup());
+        Send(nameserviceId, new TEvInterconnect::TEvListNodes());
+        Schedule(TDuration::Seconds(10), new TEvents::TEvWakeup());
         Become(&TThis::StateRequestedList);
     }
 
     STFUNC(StateRequestedList) {
         switch (ev->GetTypeRewrite()) {
-            HFunc(TEvInterconnect::TEvNodesInfo, Handle);
-            CFunc(TEvents::TSystem::Wakeup, Timeout);
+            hFunc(TEvInterconnect::TEvNodesInfo, Handle);
+            cFunc(TEvents::TSystem::Wakeup, Timeout);
         }
     }
 
     STFUNC(StateRequestedSysInfo) {
         switch (ev->GetTypeRewrite()) {
-            HFunc(TEvWhiteboard::TEvSystemStateResponse, Handle);
-            HFunc(TEvents::TEvUndelivered, Undelivered);
-            HFunc(TEvInterconnect::TEvNodeDisconnected, Disconnected);
-            CFunc(TEvents::TSystem::Wakeup, Timeout);
+            hFunc(TEvWhiteboard::TEvSystemStateResponse, Handle);
+            hFunc(TEvents::TEvUndelivered, Undelivered);
+            hFunc(TEvInterconnect::TEvNodeDisconnected, Disconnected);
+            hFunc(TEvInterconnect::TEvNodeConnected, Connected);
+            cFunc(TEvents::TSystem::Wakeup, Timeout);
         }
     }
 
-    void SendRequest(ui32 nodeId, const TActorContext& ctx) {
+    void SendRequest(ui32 nodeId) {
         TActorId whiteboardServiceId = MakeNodeWhiteboardServiceId(nodeId);
         THolder request = MakeHolder();
-        ctx.Send(whiteboardServiceId, request.Release(), IEventHandle::FlagTrackDelivery | IEventHandle::FlagSubscribeOnSession, nodeId);
-        ++NodesRequested;
+        Send(whiteboardServiceId, request.Release(), IEventHandle::FlagTrackDelivery | IEventHandle::FlagSubscribeOnSession, nodeId);
+        NodesRequested++;
     }
 
-    void NodeStateInfoReceived(const TActorContext& ctx) {
+    void NodeStateInfoReceived() {
         ++NodesReceived;
         if (NodesRequested == NodesReceived) {
-            ReplyAndDie(ctx);
+            ReplyAndDie();
         }
     }
 
-    void Handle(TEvInterconnect::TEvNodesInfo::TPtr& ev, const TActorContext& ctx) {
+    void Handle(TEvInterconnect::TEvNodesInfo::TPtr& ev) {
         NodesInfo = ev->Release();
         ui32 minAllowedNodeId = std::numeric_limits::min();
         ui32 maxAllowedNodeId = std::numeric_limits::max();
@@ -88,33 +94,38 @@ class TCountersHostsList : public TActorBootstrapped {
         }
         for (const auto& nodeInfo : NodesInfo->Nodes) {
             if (nodeInfo.NodeId >= minAllowedNodeId && nodeInfo.NodeId <= maxAllowedNodeId) {
-                SendRequest(nodeInfo.NodeId, ctx);
+                SendRequest(nodeInfo.NodeId);
             }
         }
         Become(&TThis::StateRequestedSysInfo);
     }
 
-    void Handle(TEvWhiteboard::TEvSystemStateResponse::TPtr& ev, const TActorContext& ctx) {
+    void Handle(TEvWhiteboard::TEvSystemStateResponse::TPtr& ev) {
         ui64 nodeId = ev.Get()->Cookie;
         NodesResponses[nodeId] = ev->Release();
-        NodeStateInfoReceived(ctx);
+        NodeStateInfoReceived();
     }
 
-    void Undelivered(TEvents::TEvUndelivered::TPtr& ev, const TActorContext& ctx) {
+    void Undelivered(TEvents::TEvUndelivered::TPtr& ev) {
         ui32 nodeId = ev.Get()->Cookie;
         if (NodesResponses.emplace(nodeId, nullptr).second) {
-            NodeStateInfoReceived(ctx);
+            NodeStateInfoReceived();
         }
     }
 
-    void Disconnected(TEvInterconnect::TEvNodeDisconnected::TPtr& ev, const TActorContext& ctx) {
+    void Disconnected(TEvInterconnect::TEvNodeDisconnected::TPtr& ev) {
         ui32 nodeId = ev->Get()->NodeId;
+        TcpProxies.erase(ev->Sender);
         if (NodesResponses.emplace(nodeId, nullptr).second) {
-            NodeStateInfoReceived(ctx);
+            NodeStateInfoReceived();
         }
     }
 
-    void ReplyAndDie(const TActorContext& ctx) {
+    void Connected(TEvInterconnect::TEvNodeConnected::TPtr& ev) {
+        TcpProxies.insert(ev->Sender);
+    }
+
+    void ReplyAndDie() {
         TStringStream text;
         for (const auto& [nodeId, sysInfo] : NodesResponses) {
             if (sysInfo) {
@@ -145,12 +156,19 @@ class TCountersHostsList : public TActorBootstrapped {
                 }
             }
         }
-        ctx.Send(Event->Sender, new NMon::TEvHttpInfoRes(HTTPOKTEXT + text.Str(), 0, NMon::IEvHttpInfoRes::EContentType::Custom));
-        Die(ctx);
+        Send(Event->Sender, new NMon::TEvHttpInfoRes(Viewer->GetHTTPOKTEXT(Event->Get()) + text.Str(), 0, NMon::IEvHttpInfoRes::EContentType::Custom));
+        PassAway();
+    }
+
+    void PassAway() {
+        for (auto &tcpPorxy: TcpProxies) {
+            Send(tcpPorxy, new TEvents::TEvUnsubscribe);
+        }
+        TBase::PassAway();
     }
 
-    void Timeout(const TActorContext &ctx) {
-        ReplyAndDie(ctx);
+    void Timeout() {
+        ReplyAndDie();
     }
 };
 
diff --git a/ydb/core/viewer/json/CMakeLists.darwin-arm64.txt b/ydb/core/viewer/json/CMakeLists.darwin-arm64.txt
index 6c8ae852b499..b4f48a0702da 100644
--- a/ydb/core/viewer/json/CMakeLists.darwin-arm64.txt
+++ b/ydb/core/viewer/json/CMakeLists.darwin-arm64.txt
@@ -16,5 +16,6 @@ target_link_libraries(core-viewer-json PUBLIC
   core-viewer-protos
 )
 target_sources(core-viewer-json PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json/json.h
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json/json.cpp
 )
diff --git a/ydb/core/viewer/json/CMakeLists.darwin-x86_64.txt b/ydb/core/viewer/json/CMakeLists.darwin-x86_64.txt
index 6c8ae852b499..b4f48a0702da 100644
--- a/ydb/core/viewer/json/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/viewer/json/CMakeLists.darwin-x86_64.txt
@@ -16,5 +16,6 @@ target_link_libraries(core-viewer-json PUBLIC
   core-viewer-protos
 )
 target_sources(core-viewer-json PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json/json.h
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json/json.cpp
 )
diff --git a/ydb/core/viewer/json/CMakeLists.linux-aarch64.txt b/ydb/core/viewer/json/CMakeLists.linux-aarch64.txt
index d9c7f4535953..e4b8fdea691c 100644
--- a/ydb/core/viewer/json/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/viewer/json/CMakeLists.linux-aarch64.txt
@@ -17,5 +17,6 @@ target_link_libraries(core-viewer-json PUBLIC
   core-viewer-protos
 )
 target_sources(core-viewer-json PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json/json.h
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json/json.cpp
 )
diff --git a/ydb/core/viewer/json/CMakeLists.linux-x86_64.txt b/ydb/core/viewer/json/CMakeLists.linux-x86_64.txt
index d9c7f4535953..e4b8fdea691c 100644
--- a/ydb/core/viewer/json/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/viewer/json/CMakeLists.linux-x86_64.txt
@@ -17,5 +17,6 @@ target_link_libraries(core-viewer-json PUBLIC
   core-viewer-protos
 )
 target_sources(core-viewer-json PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json/json.h
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json/json.cpp
 )
diff --git a/ydb/core/viewer/json/CMakeLists.windows-x86_64.txt b/ydb/core/viewer/json/CMakeLists.windows-x86_64.txt
index 6c8ae852b499..b4f48a0702da 100644
--- a/ydb/core/viewer/json/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/viewer/json/CMakeLists.windows-x86_64.txt
@@ -16,5 +16,6 @@ target_link_libraries(core-viewer-json PUBLIC
   core-viewer-protos
 )
 target_sources(core-viewer-json PRIVATE
+  ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json/json.h
   ${CMAKE_SOURCE_DIR}/ydb/core/viewer/json/json.cpp
 )
diff --git a/ydb/core/viewer/json_acl.h b/ydb/core/viewer/json_acl.h
index d12df854f2f8..c18aff601294 100644
--- a/ydb/core/viewer/json_acl.h
+++ b/ydb/core/viewer/json_acl.h
@@ -155,7 +155,7 @@ class TJsonACL : public TViewerPipeClient {
 
             switch (DescribeResult->GetRecord().GetStatus()) {
             case NKikimrScheme::StatusAccessDenied:
-                headers = HTTPFORBIDDENJSON;
+                headers = Viewer->GetHTTPFORBIDDEN(Event->Get());
                 break;
             default:
                 break;
diff --git a/ydb/core/viewer/json_describe.h b/ydb/core/viewer/json_describe.h
index 36a03a8daca4..8d4958295c5a 100644
--- a/ydb/core/viewer/json_describe.h
+++ b/ydb/core/viewer/json_describe.h
@@ -187,7 +187,6 @@ class TJsonDescribe : public TViewerPipeClient {
         result->SetReason(record.GetReason());
         result->SetPath(record.GetPath());
         result->MutablePathDescription()->CopyFrom(record.GetPathDescription());
-        result->SetPathOwner(record.GetPathOwner());
         result->SetPathId(record.GetPathId());
         result->SetLastExistedPrefixPath(record.GetLastExistedPrefixPath());
         result->SetLastExistedPrefixPathId(record.GetLastExistedPrefixPathId());
@@ -206,7 +205,6 @@ class TJsonDescribe : public TViewerPipeClient {
 
         TAutoPtr result(new NKikimrViewer::TEvDescribeSchemeInfo());
         result->SetPath(path);
-        result->SetPathOwner(schemeShardId);
         result->SetPathId(pathId.LocalPathId);
         result->SetPathOwnerId(pathId.OwnerId);
 
@@ -265,7 +263,7 @@ class TJsonDescribe : public TViewerPipeClient {
             const auto *descriptor = NKikimrScheme::EStatus_descriptor();
             auto accessDeniedStatus = descriptor->FindValueByNumber(NKikimrScheme::StatusAccessDenied)->name();
             if (DescribeResult->GetStatus() == accessDeniedStatus) {
-                headers = HTTPFORBIDDENJSON;
+                headers = Viewer->GetHTTPFORBIDDEN(Event->Get());
             }
             TProtoToJson::ProtoToJson(json, *DescribeResult, JsonSettings);
         } else {
diff --git a/ydb/core/viewer/json_healthcheck.h b/ydb/core/viewer/json_healthcheck.h
index fd55e460f620..67c62469cfae 100644
--- a/ydb/core/viewer/json_healthcheck.h
+++ b/ydb/core/viewer/json_healthcheck.h
@@ -24,6 +24,7 @@ enum HealthCheckResponseFormat {
 };
 
 class TJsonHealthCheck : public TActorBootstrapped {
+    IViewer* Viewer;
     static const bool WithRetry = false;
     NMon::TEvHttpInfo::TPtr Event;
     TJsonSettings JsonSettings;
@@ -36,8 +37,9 @@ class TJsonHealthCheck : public TActorBootstrapped {
         return NKikimrServices::TActivity::VIEWER_HANDLER;
     }
 
-    TJsonHealthCheck(IViewer*, NMon::TEvHttpInfo::TPtr& ev)
-        : Event(ev)
+    TJsonHealthCheck(IViewer* viewer, NMon::TEvHttpInfo::TPtr& ev)
+        : Viewer(viewer)
+        , Event(ev)
     {}
 
     void Bootstrap(const TActorContext& ctx) {
@@ -78,7 +80,7 @@ class TJsonHealthCheck : public TActorBootstrapped {
             if (Ydb::Monitoring::StatusFlag_Status_Parse(params.Get("min_status"), &minStatus)) {
                 request->Request.set_minimum_status(minStatus);
             } else {
-                Send(Event->Sender, new NMon::TEvHttpInfoRes(HTTPBADREQUEST, 0, NMon::IEvHttpInfoRes::EContentType::Custom));
+                Send(Event->Sender, new NMon::TEvHttpInfoRes(Viewer->GetHTTPBADREQUEST(Event->Get()), 0, NMon::IEvHttpInfoRes::EContentType::Custom));
                 return PassAway();
             }
         }
@@ -104,7 +106,7 @@ class TJsonHealthCheck : public TActorBootstrapped {
         THashMap recordCounters;
         for (auto& log : ev->Get()->Result.issue_log()) {
             TMetricRecord record {
-                .Database = log.location().database().name(), 
+                .Database = log.location().database().name(),
                 .Message = log.message(),
                 .Status = descriptor->FindValueByNumber(log.status())->name(),
                 .Type = log.type()
@@ -124,7 +126,7 @@ class TJsonHealthCheck : public TActorBootstrapped {
     void HandleJSON(NHealthCheck::TEvSelfCheckResult::TPtr& ev, const TActorContext &ctx) {
         TStringStream json;
         TProtoToJson::ProtoToJson(json, ev->Get()->Result, JsonSettings);
-        ctx.Send(Event->Sender, new NMon::TEvHttpInfoRes(HTTPOKJSON + json.Str(), 0, NMon::IEvHttpInfoRes::EContentType::Custom));
+        ctx.Send(Event->Sender, new NMon::TEvHttpInfoRes(Viewer->GetHTTPOKJSON(Event->Get()) + json.Str(), 0, NMon::IEvHttpInfoRes::EContentType::Custom));
         Die(ctx);
     }
 
@@ -134,7 +136,7 @@ class TJsonHealthCheck : public TActorBootstrapped {
         TStringStream ss;
         IMetricEncoderPtr encoder = EncoderPrometheus(&ss);
         IMetricEncoder* e = encoder.Get();
-        
+
         TIntrusivePtr domains = AppData()->DomainsInfo;
         TIntrusivePtr domain = domains->Domains.begin()->second;
         auto filterDatabase = Database ? Database : "/" + domain->Name;
@@ -173,7 +175,7 @@ class TJsonHealthCheck : public TActorBootstrapped {
         e->OnMetricEnd();
         e->OnStreamEnd();
 
-        ctx.Send(Event->Sender, new NMon::TEvHttpInfoRes(HTTPOKTEXT + ss.Str(), 0, NMon::IEvHttpInfoRes::EContentType::Custom));
+        ctx.Send(Event->Sender, new NMon::TEvHttpInfoRes(Viewer->GetHTTPOKTEXT(Event->Get()) + ss.Str(), 0, NMon::IEvHttpInfoRes::EContentType::Custom));
         Die(ctx);
     }
 
@@ -186,7 +188,7 @@ class TJsonHealthCheck : public TActorBootstrapped {
     }
 
     void HandleTimeout(const TActorContext &ctx) {
-        Send(Event->Sender, new NMon::TEvHttpInfoRes(HTTPGATEWAYTIMEOUT, 0, NMon::IEvHttpInfoRes::EContentType::Custom));
+        Send(Event->Sender, new NMon::TEvHttpInfoRes(Viewer->GetHTTPGATEWAYTIMEOUT(Event->Get()), 0, NMon::IEvHttpInfoRes::EContentType::Custom));
         Die(ctx);
     }
 };
diff --git a/ydb/core/viewer/json_hotkeys.h b/ydb/core/viewer/json_hotkeys.h
index 0aad63c9ed44..92e4b7e2a7ce 100644
--- a/ydb/core/viewer/json_hotkeys.h
+++ b/ydb/core/viewer/json_hotkeys.h
@@ -143,7 +143,7 @@ class TJsonHotkeys : public TViewerPipeClient {
         if (DescribeResult != nullptr) {
             switch (DescribeResult->GetRecord().GetStatus()) {
             case NKikimrScheme::StatusAccessDenied:
-                headers = HTTPFORBIDDENJSON;
+                headers = Viewer->GetHTTPFORBIDDEN(Event->Get());
                 break;
             default:
                 break;
diff --git a/ydb/core/viewer/json_local_rpc.h b/ydb/core/viewer/json_local_rpc.h
index 6e3c54e4c516..b15a3ce88501 100644
--- a/ydb/core/viewer/json_local_rpc.h
+++ b/ydb/core/viewer/json_local_rpc.h
@@ -131,7 +131,7 @@ class TJsonLocalRpc : public TActorBootstrappedSender, new NMon::TEvHttpInfoRes(HTTPBADREQUEST, 0, NMon::IEvHttpInfoRes::EContentType::Custom));
+                Send(Event->Sender, new NMon::TEvHttpInfoRes(Viewer->GetHTTPBADREQUEST(Event->Get(), {}, "Bad Request"), 0, NMon::IEvHttpInfoRes::EContentType::Custom));
                 PassAway();
             }
         } else {
@@ -195,9 +195,9 @@ class TJsonLocalRpc : public TActorBootstrappedGetHTTPOKJSON(Event->Get());
         if (DescribeResult) {
             if (!DescribeResult->Status->IsSuccess()) {
-                headers = HTTPBADREQUEST;
+                headers = Viewer->GetHTTPBADREQUEST(Event->Get(), {}, "Bad Request");
                 if (DescribeResult->Status->GetStatus() == NYdb::EStatus::UNAUTHORIZED) {
-                    headers = HTTPFORBIDDENJSON;
+                    headers = Viewer->GetHTTPFORBIDDEN(Event->Get());
                 }
             } else {
                 TProtoToJson::ProtoToJson(json, *(DescribeResult->Message), JsonSettings);
diff --git a/ydb/core/viewer/json_nodes.h b/ydb/core/viewer/json_nodes.h
index f663e38a3ad4..d5d0cadddada 100644
--- a/ydb/core/viewer/json_nodes.h
+++ b/ydb/core/viewer/json_nodes.h
@@ -37,6 +37,7 @@ class TJsonNodes : public TViewerPipeClient {
     std::unique_ptr BaseConfig;
     std::unordered_map BaseConfigGroupIndex;
     std::unordered_map DisconnectTime;
+    std::unordered_map NodeName;
     TJsonSettings JsonSettings;
     ui32 Timeout = 0;
     TString FilterTenant;
@@ -411,27 +412,25 @@ class TJsonNodes : public TViewerPipeClient {
                     const auto localPathId = entry.DomainInfo->DomainKey.LocalPathId;
                     FilterSubDomainKey = TSubDomainKey(ownerId, localPathId);
                 }
+
+                if (FilterTenant.empty()) {
+                    RequestForTenant(path);
+                }
+                
                 if (entry.DomainInfo->ResourcesDomainKey && entry.DomainInfo->DomainKey != entry.DomainInfo->ResourcesDomainKey) {
                     TPathId resourceDomainKey(entry.DomainInfo->ResourcesDomainKey);
                     BLOG_TRACE("Requesting navigate for resource domain " << resourceDomainKey);
                     RequestSchemeCacheNavigate(resourceDomainKey);
                     ++RequestsBeforeNodeList;
-                } else {
-                    if (FilterTenant.empty()) {
-                        RequestForTenant(path);
-                    }
-                    if (Storage) {
-                        if (entry.DomainDescription) {
-                            for (const auto& storagePool : entry.DomainDescription->Description.GetStoragePools()) {
-                                TString storagePoolName = storagePool.GetName();
-                                THolder request = MakeHolder();
-                                request->Record.SetReturnAllMatchingGroups(true);
-                                request->Record.AddGroupParameters()->MutableStoragePoolSpecifier()->SetName(storagePoolName);
-                                BLOG_TRACE("Requesting BSControllerSelectGroups for " << storagePoolName);
-                                RequestBSControllerSelectGroups(std::move(request));
-                                ++RequestsBeforeNodeList;
-                            }
-                        }
+                } else if (Storage && entry.DomainDescription) {
+                    for (const auto& storagePool : entry.DomainDescription->Description.GetStoragePools()) {
+                        TString storagePoolName = storagePool.GetName();
+                        THolder request = MakeHolder();
+                        request->Record.SetReturnAllMatchingGroups(true);
+                        request->Record.AddGroupParameters()->MutableStoragePoolSpecifier()->SetName(storagePoolName);
+                        BLOG_TRACE("Requesting BSControllerSelectGroups for " << storagePoolName);
+                        RequestBSControllerSelectGroups(std::move(request));
+                        ++RequestsBeforeNodeList;
                     }
                 }
             } else {
@@ -483,6 +482,9 @@ class TJsonNodes : public TViewerPipeClient {
             BLOG_TRACE("HiveNodeStats filter node by " << nodeId);
             FilterNodeIds.insert(nodeId);
             DisconnectTime[nodeId] = nodeStats.GetLastAliveTimestamp();
+            if (nodeStats.HasNodeName()) {
+                NodeName[nodeId] = nodeStats.GetNodeName();
+            }
         }
         if (--RequestsBeforeNodeList == 0) {
             ProcessNodeIds();
@@ -754,6 +756,10 @@ class TJsonNodes : public TViewerPipeClient {
                 if (itDisconnectTime != DisconnectTime.end()) {
                     nodeInfo.MutableSystemState()->SetDisconnectTime(itDisconnectTime->second);
                 }
+                auto itNodeName = NodeName.find(nodeId);
+                if (itNodeName != NodeName.end()) {
+                    nodeInfo.MutableSystemState()->SetNodeName(itNodeName->second);
+                }
             }
             if (Storage) {
                 auto itPDiskState = PDiskInfo.find(nodeId);
diff --git a/ydb/core/viewer/json_query.h b/ydb/core/viewer/json_query.h
index 70ee72849501..42545a7a2fc3 100644
--- a/ydb/core/viewer/json_query.h
+++ b/ydb/core/viewer/json_query.h
@@ -1,6 +1,5 @@
 #pragma once
 #include "viewer.h"
-#include 
 #include 
 #include 
 #include 
@@ -12,7 +11,6 @@
 #include 
 #include 
 #include 
-//#include 
 #include 
 #include 
 #include "json_pipe_req.h"
@@ -41,6 +39,7 @@ class TJsonQuery : public TViewerPipeClient {
     TString Syntax;
     TString UserToken;
     bool IsBase64Encode;
+    TString TransactionMode;
 
     enum ESchemaType {
         Classic,
@@ -85,6 +84,7 @@ class TJsonQuery : public TViewerPipeClient {
         TString schemaStr = params.Get("schema");
         Schema = StringToSchemaType(schemaStr);
         Syntax = params.Get("syntax");
+        TransactionMode = params.Get("transaction_mode");
         Direct = FromStringWithDefault(params.Get("direct"), Direct);
         IsBase64Encode = FromStringWithDefault(params.Get("base64"), true);
     }
@@ -99,20 +99,12 @@ class TJsonQuery : public TViewerPipeClient {
             Stats = Stats.empty() ? requestData["stats"].GetStringSafe({}) : Stats;
             Action = Action.empty() ? requestData["action"].GetStringSafe({}) : Action;
             Syntax = Syntax.empty() ? requestData["syntax"].GetStringSafe({}) : Syntax;
+            TransactionMode = TransactionMode.empty() ? requestData["transaction_mode"].GetStringSafe({}) : TransactionMode;
         }
     }
 
-    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;
+    bool IsPostContent() const {
+        return NViewer::IsPostContent(Event);
     }
 
     TJsonQuery(IViewer* viewer, NMon::TEvHttpInfo::TPtr& ev)
@@ -172,6 +164,22 @@ class TJsonQuery : public TViewerPipeClient {
         }
     }
 
+    void SetTransactionMode(NKikimrKqp::TQueryRequest& request) {
+        if (TransactionMode == "serializable-read-write") {
+            request.mutable_txcontrol()->mutable_begin_tx()->mutable_serializable_read_write();
+            request.mutable_txcontrol()->set_commit_tx(true);
+        } else if (TransactionMode == "online-read-only") {
+            request.mutable_txcontrol()->mutable_begin_tx()->mutable_online_read_only();
+            request.mutable_txcontrol()->set_commit_tx(true);
+        } else if (TransactionMode == "stale-read-only") {
+            request.mutable_txcontrol()->mutable_begin_tx()->mutable_stale_read_only();
+            request.mutable_txcontrol()->set_commit_tx(true);
+        } else if (TransactionMode == "snapshot-read-only") {
+            request.mutable_txcontrol()->mutable_begin_tx()->mutable_snapshot_read_only();
+            request.mutable_txcontrol()->set_commit_tx(true);
+        }
+    }
+
     void SendKpqProxyRequest() {
         if (MadeKqpProxyRequest) {
             return;
@@ -187,8 +195,8 @@ class TJsonQuery : public TViewerPipeClient {
         } else if (Action == "execute-query") {
             request.SetAction(NKikimrKqp::QUERY_ACTION_EXECUTE);
             request.SetType(NKikimrKqp::QUERY_TYPE_SQL_GENERIC_QUERY);
-            request.mutable_txcontrol()->mutable_begin_tx()->mutable_serializable_read_write();
             request.SetKeepSession(false);
+            SetTransactionMode(request);
         } else if (Action == "explain-query") {
             request.SetAction(NKikimrKqp::QUERY_ACTION_EXPLAIN);
             request.SetType(NKikimrKqp::QUERY_TYPE_SQL_GENERIC_QUERY);
@@ -200,8 +208,8 @@ class TJsonQuery : public TViewerPipeClient {
         } else if (Action == "execute-data") {
             request.SetAction(NKikimrKqp::QUERY_ACTION_EXECUTE);
             request.SetType(NKikimrKqp::QUERY_TYPE_SQL_DML);
-            request.mutable_txcontrol()->mutable_begin_tx()->mutable_serializable_read_write();
             request.SetKeepSession(false);
+            SetTransactionMode(request);
         } else if (Action == "explain" || Action == "explain-ast" || Action == "explain-data") {
             request.SetAction(NKikimrKqp::QUERY_ACTION_EXPLAIN);
             request.SetType(NKikimrKqp::QUERY_TYPE_SQL_DML);
@@ -215,6 +223,9 @@ class TJsonQuery : public TViewerPipeClient {
         if (Stats == "profile") {
             request.SetStatsMode(NYql::NDqProto::DQ_STATS_MODE_PROFILE);
             request.SetCollectStats(Ydb::Table::QueryStatsCollection::STATS_COLLECTION_PROFILE);
+        } else if (Stats == "full") {
+            request.SetStatsMode(NYql::NDqProto::DQ_STATS_MODE_FULL);
+            request.SetCollectStats(Ydb::Table::QueryStatsCollection::STATS_COLLECTION_FULL);
         }
         if (Database) {
             request.SetDatabase(Database);
@@ -427,7 +438,12 @@ class TJsonQuery : public TViewerPipeClient {
     }
 
     void HandleReply(TEvViewer::TEvViewerResponse::TPtr& ev) {
-        Handle(*(ev.Get()->Get()->Record.MutableQueryResponse()));
+        auto& record = ev.Get()->Get()->Record;
+        if (record.HasQueryResponse()) {
+            Handle(*(ev.Get()->Get()->Record.MutableQueryResponse()));
+        } else {
+            SendKpqProxyRequest(); // fallback
+        }
     }
 
     void HandleReply(NKqp::TEvKqp::TEvAbortExecution::TPtr& ev) {
@@ -633,8 +649,9 @@ struct TJsonRequestParameters {
                       {"name":"syntax","in":"query","description":"query syntax (yql_v1, pg)","required":false,"type":"string"},
                       {"name":"database","in":"query","description":"database name","required":false,"type":"string"},
                       {"name":"schema","in":"query","description":"result format schema (classic, modern, ydb, multi)","required":false,"type":"string"},
-                      {"name":"stats","in":"query","description":"return stats (profile)","required":false,"type":"string"},
+                      {"name":"stats","in":"query","description":"return stats (profile, full)","required":false,"type":"string"},
                       {"name":"action","in":"query","description":"execute method (execute-scan, execute-script, execute-query, execute-data,explain-ast, explain-scan, explain-script, explain-query, explain-data)","required":false,"type":"string"},
+                      {"name":"transaction_mode","in":"query","description":"transaction mode (serializable-read-write, online-read-only, stale-read-only, snapshot-read-only)","required":false,"type":"string"},
                       {"name":"base64","in":"query","description":"return strings using base64 encoding","required":false,"type":"string"},
                       {"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 d507ff2a8b2f..dc63594f58bf 100644
--- a/ydb/core/viewer/json_tenantinfo.h
+++ b/ydb/core/viewer/json_tenantinfo.h
@@ -436,16 +436,17 @@ class TJsonTenantInfo : public TViewerPipeClient {
     }
 
     void Disconnected(TEvInterconnect::TEvNodeDisconnected::TPtr &ev) {
-        ui32 nodeId = ev->Get()->NodeId;
+        TNodeId nodeId = ev->Get()->NodeId;
+        TString& tenantId = NodeIdsToTenant[nodeId];
         BLOG_TRACE("NodeDisconnected for node " << nodeId);
-        if (NodeSysInfo.emplace(nodeId, NKikimrWhiteboard::TEvSystemStateResponse{}).second) {
-            RequestDone();
-        }
-        auto tenantId = NodeIdsToTenant[nodeId];
-        if (TenantNodeTabletInfo[tenantId].emplace(nodeId, NKikimrWhiteboard::TEvTabletStateResponse{}).second) {
-            RequestDone();
-        }
-        if (!TenantNodes[tenantId].empty()) {
+        if (!OffloadMerge) {
+            if (NodeSysInfo.emplace(nodeId, NKikimrWhiteboard::TEvSystemStateResponse{}).second) {
+                RequestDone();
+            }
+            if (Tablets && TenantNodeTabletInfo[tenantId].emplace(nodeId, NKikimrWhiteboard::TEvTabletStateResponse{}).second) {
+                RequestDone();
+            }
+        } else if (!TenantNodes[tenantId].empty()) {
             if (Tablets) {
                 SendViewerTabletRequest(tenantId);
                 RequestDone();
diff --git a/ydb/core/viewer/json_vdisk_req.h b/ydb/core/viewer/json_vdisk_req.h
index 61b805d9a498..28459d510b56 100644
--- a/ydb/core/viewer/json_vdisk_req.h
+++ b/ydb/core/viewer/json_vdisk_req.h
@@ -60,6 +60,8 @@ class TJsonVDiskRequest : public TViewerPipeClient TcpProxyId;
+
 public:
     static constexpr NKikimrServices::TActivity::EType ActorActivityType() {
         return NKikimrServices::TActivity::VIEWER_HANDLER;
@@ -111,6 +113,7 @@ class TJsonVDiskRequest : public TViewerPipeClientSender;
+    }
+
     void Disconnected() {
+        TcpProxyId = {};
         if (!RetryRequest()) {
             TBase::RequestDone();
         }
@@ -170,6 +178,13 @@ class TJsonVDiskRequest : public TViewerPipeClientSend(*TcpProxyId, new TEvents::TEvUnsubscribe);
+        }
+        TBase::PassAway();
+    }
+
     void ReplyAndPassAway(const TString &error = "") {
         try {
             TStringStream json;
@@ -182,10 +197,8 @@ class TJsonVDiskRequest : public TViewerPipeClient
diff --git a/ydb/core/viewer/monitoring/asset-manifest.json b/ydb/core/viewer/monitoring/asset-manifest.json
new file mode 100644
index 000000000000..bac25a42dd95
--- /dev/null
+++ b/ydb/core/viewer/monitoring/asset-manifest.json
@@ -0,0 +1,261 @@
+{
+  "files": {
+    "main.css": "./static/css/main.c8ce3bba.css",
+    "main.js": "./static/js/main.62a60ecb.js",
+    "static/js/3457.b193afe6.chunk.js": "./static/js/3457.b193afe6.chunk.js",
+    "static/js/6876.867b698c.chunk.js": "./static/js/6876.867b698c.chunk.js",
+    "static/js/2435.092e8d7f.chunk.js": "./static/js/2435.092e8d7f.chunk.js",
+    "static/js/7409.4408962b.chunk.js": "./static/js/7409.4408962b.chunk.js",
+    "static/js/8622.49f3054c.chunk.js": "./static/js/8622.49f3054c.chunk.js",
+    "static/js/598.243fd68d.chunk.js": "./static/js/598.243fd68d.chunk.js",
+    "static/js/6392.134ee5e4.chunk.js": "./static/js/6392.134ee5e4.chunk.js",
+    "static/js/4618.131d9563.chunk.js": "./static/js/4618.131d9563.chunk.js",
+    "static/js/704.45771d88.chunk.js": "./static/js/704.45771d88.chunk.js",
+    "static/js/515.cd9a8a90.chunk.js": "./static/js/515.cd9a8a90.chunk.js",
+    "static/js/8858.cd9d49a5.chunk.js": "./static/js/8858.cd9d49a5.chunk.js",
+    "static/js/6887.0855fd66.chunk.js": "./static/js/6887.0855fd66.chunk.js",
+    "static/js/4848.64f47dc3.chunk.js": "./static/js/4848.64f47dc3.chunk.js",
+    "static/js/4198.d0671061.chunk.js": "./static/js/4198.d0671061.chunk.js",
+    "static/js/620.7aea5425.chunk.js": "./static/js/620.7aea5425.chunk.js",
+    "static/js/9204.77418f94.chunk.js": "./static/js/9204.77418f94.chunk.js",
+    "static/js/1736.9f4a6b02.chunk.js": "./static/js/1736.9f4a6b02.chunk.js",
+    "static/js/8747.baf63d86.chunk.js": "./static/js/8747.baf63d86.chunk.js",
+    "static/js/1528.2a39d066.chunk.js": "./static/js/1528.2a39d066.chunk.js",
+    "static/js/6877.d2d51d98.chunk.js": "./static/js/6877.d2d51d98.chunk.js",
+    "static/js/4814.11309069.chunk.js": "./static/js/4814.11309069.chunk.js",
+    "static/js/202.52f13cd5.chunk.js": "./static/js/202.52f13cd5.chunk.js",
+    "static/js/9280.40cff028.chunk.js": "./static/js/9280.40cff028.chunk.js",
+    "static/js/5863.e2cd2452.chunk.js": "./static/js/5863.e2cd2452.chunk.js",
+    "static/js/6058.7f474f92.chunk.js": "./static/js/6058.7f474f92.chunk.js",
+    "static/js/632.b6c03857.chunk.js": "./static/js/632.b6c03857.chunk.js",
+    "static/js/7202.fefd43ee.chunk.js": "./static/js/7202.fefd43ee.chunk.js",
+    "static/js/7999.bdf4fe79.chunk.js": "./static/js/7999.bdf4fe79.chunk.js",
+    "static/js/2367.052e678b.chunk.js": "./static/js/2367.052e678b.chunk.js",
+    "static/js/5373.90c95a6e.chunk.js": "./static/js/5373.90c95a6e.chunk.js",
+    "static/js/6393.b0de2d9e.chunk.js": "./static/js/6393.b0de2d9e.chunk.js",
+    "static/js/5448.cef3c129.chunk.js": "./static/js/5448.cef3c129.chunk.js",
+    "static/js/6679.6e0a87d5.chunk.js": "./static/js/6679.6e0a87d5.chunk.js",
+    "static/js/4132.04be158e.chunk.js": "./static/js/4132.04be158e.chunk.js",
+    "static/js/9219.24a20881.chunk.js": "./static/js/9219.24a20881.chunk.js",
+    "static/js/556.55f00ac6.chunk.js": "./static/js/556.55f00ac6.chunk.js",
+    "static/js/8850.97635389.chunk.js": "./static/js/8850.97635389.chunk.js",
+    "static/js/9297.eadc4dba.chunk.js": "./static/js/9297.eadc4dba.chunk.js",
+    "static/js/3630.8eda2d3f.chunk.js": "./static/js/3630.8eda2d3f.chunk.js",
+    "static/js/3231.65396654.chunk.js": "./static/js/3231.65396654.chunk.js",
+    "static/js/6815.672badd5.chunk.js": "./static/js/6815.672badd5.chunk.js",
+    "static/js/2620.8e5c52fb.chunk.js": "./static/js/2620.8e5c52fb.chunk.js",
+    "static/js/6961.f4888ae1.chunk.js": "./static/js/6961.f4888ae1.chunk.js",
+    "static/js/7257.8ce0d045.chunk.js": "./static/js/7257.8ce0d045.chunk.js",
+    "static/js/8702.69a3e0d5.chunk.js": "./static/js/8702.69a3e0d5.chunk.js",
+    "static/js/3304.f5897a96.chunk.js": "./static/js/3304.f5897a96.chunk.js",
+    "static/js/1508.f0158935.chunk.js": "./static/js/1508.f0158935.chunk.js",
+    "static/js/3271.7b005742.chunk.js": "./static/js/3271.7b005742.chunk.js",
+    "static/js/30.b097cbb4.chunk.js": "./static/js/30.b097cbb4.chunk.js",
+    "static/js/5117.896f7ffb.chunk.js": "./static/js/5117.896f7ffb.chunk.js",
+    "static/js/5387.8af1d694.chunk.js": "./static/js/5387.8af1d694.chunk.js",
+    "static/js/5670.5c30cef1.chunk.js": "./static/js/5670.5c30cef1.chunk.js",
+    "static/js/7388.9f447514.chunk.js": "./static/js/7388.9f447514.chunk.js",
+    "static/js/3333.ceb196e6.chunk.js": "./static/js/3333.ceb196e6.chunk.js",
+    "static/js/1278.c0717a20.chunk.js": "./static/js/1278.c0717a20.chunk.js",
+    "static/js/178.e0df04cc.chunk.js": "./static/js/178.e0df04cc.chunk.js",
+    "static/js/6892.2c3c2bcb.chunk.js": "./static/js/6892.2c3c2bcb.chunk.js",
+    "static/js/2229.6687fc46.chunk.js": "./static/js/2229.6687fc46.chunk.js",
+    "static/js/4326.d5c34c54.chunk.js": "./static/js/4326.d5c34c54.chunk.js",
+    "static/js/7276.47f377a4.chunk.js": "./static/js/7276.47f377a4.chunk.js",
+    "static/js/7803.a56cfca6.chunk.js": "./static/js/7803.a56cfca6.chunk.js",
+    "static/js/5720.39a954f1.chunk.js": "./static/js/5720.39a954f1.chunk.js",
+    "static/js/6954.e18be130.chunk.js": "./static/js/6954.e18be130.chunk.js",
+    "static/js/9413.b2921c36.chunk.js": "./static/js/9413.b2921c36.chunk.js",
+    "static/js/3945.054c871d.chunk.js": "./static/js/3945.054c871d.chunk.js",
+    "static/js/2981.6d027811.chunk.js": "./static/js/2981.6d027811.chunk.js",
+    "static/js/1150.2b47004d.chunk.js": "./static/js/1150.2b47004d.chunk.js",
+    "static/js/3926.8f2c9741.chunk.js": "./static/js/3926.8f2c9741.chunk.js",
+    "static/js/5643.00957838.chunk.js": "./static/js/5643.00957838.chunk.js",
+    "static/js/5161.45b4f520.chunk.js": "./static/js/5161.45b4f520.chunk.js",
+    "static/js/2238.3cf88b79.chunk.js": "./static/js/2238.3cf88b79.chunk.js",
+    "static/js/8133.2afc4db4.chunk.js": "./static/js/8133.2afc4db4.chunk.js",
+    "static/js/4949.6bf46e71.chunk.js": "./static/js/4949.6bf46e71.chunk.js",
+    "static/js/383.4faec08b.chunk.js": "./static/js/383.4faec08b.chunk.js",
+    "static/js/2701.86912840.chunk.js": "./static/js/2701.86912840.chunk.js",
+    "static/js/3645.bdd20200.chunk.js": "./static/js/3645.bdd20200.chunk.js",
+    "static/js/2677.3d7ea3fc.chunk.js": "./static/js/2677.3d7ea3fc.chunk.js",
+    "static/js/2477.e6121bfd.chunk.js": "./static/js/2477.e6121bfd.chunk.js",
+    "static/js/5399.f9398084.chunk.js": "./static/js/5399.f9398084.chunk.js",
+    "static/js/4985.991de003.chunk.js": "./static/js/4985.991de003.chunk.js",
+    "static/js/674.e6536250.chunk.js": "./static/js/674.e6536250.chunk.js",
+    "static/js/9207.5881b206.chunk.js": "./static/js/9207.5881b206.chunk.js",
+    "static/js/7779.9d9b07ae.chunk.js": "./static/js/7779.9d9b07ae.chunk.js",
+    "static/js/1148.3c629236.chunk.js": "./static/js/1148.3c629236.chunk.js",
+    "static/js/8011.4fed4307.chunk.js": "./static/js/8011.4fed4307.chunk.js",
+    "static/js/96.6e1bf3f4.chunk.js": "./static/js/96.6e1bf3f4.chunk.js",
+    "static/js/8167.b9a90da5.chunk.js": "./static/js/8167.b9a90da5.chunk.js",
+    "static/js/4347.adf03999.chunk.js": "./static/js/4347.adf03999.chunk.js",
+    "static/js/2223.63ae5a05.chunk.js": "./static/js/2223.63ae5a05.chunk.js",
+    "static/js/2033.5c6dfca9.chunk.js": "./static/js/2033.5c6dfca9.chunk.js",
+    "static/js/8695.f17f8853.chunk.js": "./static/js/8695.f17f8853.chunk.js",
+    "static/js/8140.8d8e9309.chunk.js": "./static/js/8140.8d8e9309.chunk.js",
+    "static/js/6227.fc562bbf.chunk.js": "./static/js/6227.fc562bbf.chunk.js",
+    "static/js/148.b60f0e5e.chunk.js": "./static/js/148.b60f0e5e.chunk.js",
+    "static/js/9572.9f83f004.chunk.js": "./static/js/9572.9f83f004.chunk.js",
+    "static/js/1179.15d7ac65.chunk.js": "./static/js/1179.15d7ac65.chunk.js",
+    "static/js/1746.a8ba5c62.chunk.js": "./static/js/1746.a8ba5c62.chunk.js",
+    "static/js/3466.98f036ac.chunk.js": "./static/js/3466.98f036ac.chunk.js",
+    "static/js/4684.27f737c4.chunk.js": "./static/js/4684.27f737c4.chunk.js",
+    "static/js/5226.675d55fb.chunk.js": "./static/js/5226.675d55fb.chunk.js",
+    "static/js/115.2c4de87e.chunk.js": "./static/js/115.2c4de87e.chunk.js",
+    "static/js/4964.c7c75eb0.chunk.js": "./static/js/4964.c7c75eb0.chunk.js",
+    "static/js/1869.d6661a03.chunk.js": "./static/js/1869.d6661a03.chunk.js",
+    "static/js/9917.67d792e3.chunk.js": "./static/js/9917.67d792e3.chunk.js",
+    "static/js/163.eea01641.chunk.js": "./static/js/163.eea01641.chunk.js",
+    "static/js/3025.7e536c57.chunk.js": "./static/js/3025.7e536c57.chunk.js",
+    "static/js/6156.0c562627.chunk.js": "./static/js/6156.0c562627.chunk.js",
+    "static/js/6361.a9f11e7a.chunk.js": "./static/js/6361.a9f11e7a.chunk.js",
+    "static/js/4663.b893c670.chunk.js": "./static/js/4663.b893c670.chunk.js",
+    "static/js/7992.20690745.chunk.js": "./static/js/7992.20690745.chunk.js",
+    "static/js/3756.67bd6b00.chunk.js": "./static/js/3756.67bd6b00.chunk.js",
+    "static/js/678.b73063ff.chunk.js": "./static/js/678.b73063ff.chunk.js",
+    "static/js/436.564ff0f8.chunk.js": "./static/js/436.564ff0f8.chunk.js",
+    "static/js/5112.6189bbe0.chunk.js": "./static/js/5112.6189bbe0.chunk.js",
+    "static/js/9555.c9b5ee61.chunk.js": "./static/js/9555.c9b5ee61.chunk.js",
+    "static/js/5809.d78ebebb.chunk.js": "./static/js/5809.d78ebebb.chunk.js",
+    "static/js/5450.f0dcfc15.chunk.js": "./static/js/5450.f0dcfc15.chunk.js",
+    "static/js/5491.a460479e.chunk.js": "./static/js/5491.a460479e.chunk.js",
+    "static/js/8591.93172fe9.chunk.js": "./static/js/8591.93172fe9.chunk.js",
+    "static/js/7016.4a34a027.chunk.js": "./static/js/7016.4a34a027.chunk.js",
+    "static/js/9308.c72b8585.chunk.js": "./static/js/9308.c72b8585.chunk.js",
+    "static/js/9411.96fb3e2f.chunk.js": "./static/js/9411.96fb3e2f.chunk.js",
+    "static/js/6521.371403ec.chunk.js": "./static/js/6521.371403ec.chunk.js",
+    "static/js/4159.5e0cfd91.chunk.js": "./static/js/4159.5e0cfd91.chunk.js",
+    "static/js/9528.9991c023.chunk.js": "./static/js/9528.9991c023.chunk.js",
+    "static/js/4826.d2723706.chunk.js": "./static/js/4826.d2723706.chunk.js",
+    "static/js/5352.3d3187b7.chunk.js": "./static/js/5352.3d3187b7.chunk.js",
+    "static/js/9292.91ed23f7.chunk.js": "./static/js/9292.91ed23f7.chunk.js",
+    "static/js/7684.a3920b72.chunk.js": "./static/js/7684.a3920b72.chunk.js",
+    "static/js/9212.870f16f0.chunk.js": "./static/js/9212.870f16f0.chunk.js",
+    "static/js/6065.b08e9640.chunk.js": "./static/js/6065.b08e9640.chunk.js",
+    "static/js/5341.2c19c723.chunk.js": "./static/js/5341.2c19c723.chunk.js",
+    "static/js/4583.1682cf86.chunk.js": "./static/js/4583.1682cf86.chunk.js",
+    "static/js/3920.11b8c9d7.chunk.js": "./static/js/3920.11b8c9d7.chunk.js",
+    "static/js/7119.e94f8dac.chunk.js": "./static/js/7119.e94f8dac.chunk.js",
+    "static/js/6144.e1568f26.chunk.js": "./static/js/6144.e1568f26.chunk.js",
+    "static/js/1350.21b6a9ef.chunk.js": "./static/js/1350.21b6a9ef.chunk.js",
+    "static/js/2590.75b6626e.chunk.js": "./static/js/2590.75b6626e.chunk.js",
+    "static/js/6291.e7cdf7f2.chunk.js": "./static/js/6291.e7cdf7f2.chunk.js",
+    "static/js/3397.9c0005a3.chunk.js": "./static/js/3397.9c0005a3.chunk.js",
+    "static/js/1168.91d9e2c2.chunk.js": "./static/js/1168.91d9e2c2.chunk.js",
+    "static/js/8853.c8f9e9d6.chunk.js": "./static/js/8853.c8f9e9d6.chunk.js",
+    "static/js/4535.5d1c8322.chunk.js": "./static/js/4535.5d1c8322.chunk.js",
+    "static/js/9101.ce051539.chunk.js": "./static/js/9101.ce051539.chunk.js",
+    "static/js/2986.2100fcad.chunk.js": "./static/js/2986.2100fcad.chunk.js",
+    "static/js/4080.07be3744.chunk.js": "./static/js/4080.07be3744.chunk.js",
+    "static/js/3898.1fec42e6.chunk.js": "./static/js/3898.1fec42e6.chunk.js",
+    "static/js/1616.8a217b93.chunk.js": "./static/js/1616.8a217b93.chunk.js",
+    "static/js/7522.1a0f9c02.chunk.js": "./static/js/7522.1a0f9c02.chunk.js",
+    "static/js/6531.7eac62d1.chunk.js": "./static/js/6531.7eac62d1.chunk.js",
+    "static/css/4983.5c3e5de4.chunk.css": "./static/css/4983.5c3e5de4.chunk.css",
+    "static/js/3757.7c534899.chunk.js": "./static/js/3757.7c534899.chunk.js",
+    "static/js/4842.57182d38.chunk.js": "./static/js/4842.57182d38.chunk.js",
+    "static/css/328.c0ade9c1.chunk.css": "./static/css/328.c0ade9c1.chunk.css",
+    "static/js/328.f24db8bf.chunk.js": "./static/js/328.f24db8bf.chunk.js",
+    "static/js/599.c58caf58.chunk.js": "./static/js/599.c58caf58.chunk.js",
+    "static/js/1155.4fce1854.chunk.js": "./static/js/1155.4fce1854.chunk.js",
+    "static/js/6230.8e64216a.chunk.js": "./static/js/6230.8e64216a.chunk.js",
+    "static/js/337.b6fc715e.chunk.js": "./static/js/337.b6fc715e.chunk.js",
+    "static/js/451.3b449e79.chunk.js": "./static/js/451.3b449e79.chunk.js",
+    "static/js/2322.29255c22.chunk.js": "./static/js/2322.29255c22.chunk.js",
+    "static/js/4123.64882a16.chunk.js": "./static/js/4123.64882a16.chunk.js",
+    "static/js/6289.51f8741e.chunk.js": "./static/js/6289.51f8741e.chunk.js",
+    "static/js/4635.ffa9b6b7.chunk.js": "./static/js/4635.ffa9b6b7.chunk.js",
+    "static/js/4345.9238776d.chunk.js": "./static/js/4345.9238776d.chunk.js",
+    "static/js/9319.40f9e46a.chunk.js": "./static/js/9319.40f9e46a.chunk.js",
+    "static/js/924.382f18b1.chunk.js": "./static/js/924.382f18b1.chunk.js",
+    "static/js/6795.5ec0c96a.chunk.js": "./static/js/6795.5ec0c96a.chunk.js",
+    "static/js/2302.7e7a2fb4.chunk.js": "./static/js/2302.7e7a2fb4.chunk.js",
+    "static/js/4388.edb51304.chunk.js": "./static/js/4388.edb51304.chunk.js",
+    "static/js/4046.5dac72a9.chunk.js": "./static/js/4046.5dac72a9.chunk.js",
+    "static/js/2190.27f354f5.chunk.js": "./static/js/2190.27f354f5.chunk.js",
+    "static/js/3358.c777fe1f.chunk.js": "./static/js/3358.c777fe1f.chunk.js",
+    "static/js/6142.b2452554.chunk.js": "./static/js/6142.b2452554.chunk.js",
+    "static/js/2962.66e01691.chunk.js": "./static/js/2962.66e01691.chunk.js",
+    "static/js/214.99a17949.chunk.js": "./static/js/214.99a17949.chunk.js",
+    "static/js/8791.b209de42.chunk.js": "./static/js/8791.b209de42.chunk.js",
+    "static/js/6898.5580b941.chunk.js": "./static/js/6898.5580b941.chunk.js",
+    "static/js/9173.71d773f2.chunk.js": "./static/js/9173.71d773f2.chunk.js",
+    "static/js/2532.30bb087d.chunk.js": "./static/js/2532.30bb087d.chunk.js",
+    "static/js/6329.d78c1432.chunk.js": "./static/js/6329.d78c1432.chunk.js",
+    "static/js/2840.b69eb597.chunk.js": "./static/js/2840.b69eb597.chunk.js",
+    "static/js/5311.a500a1ea.chunk.js": "./static/js/5311.a500a1ea.chunk.js",
+    "static/js/2403.82cd0025.chunk.js": "./static/js/2403.82cd0025.chunk.js",
+    "static/js/1747.b4331799.chunk.js": "./static/js/1747.b4331799.chunk.js",
+    "static/js/3498.c7d39060.chunk.js": "./static/js/3498.c7d39060.chunk.js",
+    "static/js/185.7d51fcfa.chunk.js": "./static/js/185.7d51fcfa.chunk.js",
+    "static/js/8450.baf3a89d.chunk.js": "./static/js/8450.baf3a89d.chunk.js",
+    "static/js/3771.764124c3.chunk.js": "./static/js/3771.764124c3.chunk.js",
+    "static/js/7529.ddf87a9a.chunk.js": "./static/js/7529.ddf87a9a.chunk.js",
+    "static/js/785.d2eae69c.chunk.js": "./static/js/785.d2eae69c.chunk.js",
+    "static/js/5107.8cac6a03.chunk.js": "./static/js/5107.8cac6a03.chunk.js",
+    "static/js/6919.84ed9ccc.chunk.js": "./static/js/6919.84ed9ccc.chunk.js",
+    "static/js/2104.4f22ecac.chunk.js": "./static/js/2104.4f22ecac.chunk.js",
+    "static/js/9433.7ce648d0.chunk.js": "./static/js/9433.7ce648d0.chunk.js",
+    "static/js/1956.0205a5bb.chunk.js": "./static/js/1956.0205a5bb.chunk.js",
+    "static/js/6619.9e1de7a6.chunk.js": "./static/js/6619.9e1de7a6.chunk.js",
+    "static/js/2492.64b7d727.chunk.js": "./static/js/2492.64b7d727.chunk.js",
+    "static/js/2194.38bafdfc.chunk.js": "./static/js/2194.38bafdfc.chunk.js",
+    "static/js/9526.10bb1684.chunk.js": "./static/js/9526.10bb1684.chunk.js",
+    "static/js/5790.e3d88e2c.chunk.js": "./static/js/5790.e3d88e2c.chunk.js",
+    "static/js/8905.b8a9fd91.chunk.js": "./static/js/8905.b8a9fd91.chunk.js",
+    "static/js/5168.6fb23f08.chunk.js": "./static/js/5168.6fb23f08.chunk.js",
+    "static/js/619.f27ddcbd.chunk.js": "./static/js/619.f27ddcbd.chunk.js",
+    "static/js/4550.2e04d705.chunk.js": "./static/js/4550.2e04d705.chunk.js",
+    "static/js/3644.aeda46ca.chunk.js": "./static/js/3644.aeda46ca.chunk.js",
+    "static/js/8797.f8f0ce13.chunk.js": "./static/js/8797.f8f0ce13.chunk.js",
+    "static/js/2521.21bdfab9.chunk.js": "./static/js/2521.21bdfab9.chunk.js",
+    "static/js/1478.5044be66.chunk.js": "./static/js/1478.5044be66.chunk.js",
+    "static/js/6300.dca75d45.chunk.js": "./static/js/6300.dca75d45.chunk.js",
+    "static/js/3074.bbb8aaef.chunk.js": "./static/js/3074.bbb8aaef.chunk.js",
+    "static/js/9371.b42befbc.chunk.js": "./static/js/9371.b42befbc.chunk.js",
+    "static/js/9923.270f0a19.chunk.js": "./static/js/9923.270f0a19.chunk.js",
+    "static/js/358.d6300019.chunk.js": "./static/js/358.d6300019.chunk.js",
+    "static/js/86.ad271bdc.chunk.js": "./static/js/86.ad271bdc.chunk.js",
+    "static/js/5661.c83a4eb0.chunk.js": "./static/js/5661.c83a4eb0.chunk.js",
+    "static/js/3621.9b6c61ab.chunk.js": "./static/js/3621.9b6c61ab.chunk.js",
+    "static/js/2994.e6c77407.chunk.js": "./static/js/2994.e6c77407.chunk.js",
+    "static/js/4812.73af8448.chunk.js": "./static/js/4812.73af8448.chunk.js",
+    "static/js/9621.48073631.chunk.js": "./static/js/9621.48073631.chunk.js",
+    "static/js/7554.28f3da22.chunk.js": "./static/js/7554.28f3da22.chunk.js",
+    "static/js/425.c6dd581a.chunk.js": "./static/js/425.c6dd581a.chunk.js",
+    "static/js/6044.2de9962d.chunk.js": "./static/js/6044.2de9962d.chunk.js",
+    "static/js/2141.26c930aa.chunk.js": "./static/js/2141.26c930aa.chunk.js",
+    "static/js/919.53e04507.chunk.js": "./static/js/919.53e04507.chunk.js",
+    "static/js/6692.9322b59d.chunk.js": "./static/js/6692.9322b59d.chunk.js",
+    "static/js/6321.aa3e44de.chunk.js": "./static/js/6321.aa3e44de.chunk.js",
+    "static/js/2931.3ade3bc3.chunk.js": "./static/js/2931.3ade3bc3.chunk.js",
+    "static/js/2876.afe7e47f.chunk.js": "./static/js/2876.afe7e47f.chunk.js",
+    "static/js/5868.be04313a.chunk.js": "./static/js/5868.be04313a.chunk.js",
+    "static/js/2553.5faabf5a.chunk.js": "./static/js/2553.5faabf5a.chunk.js",
+    "static/js/9876.b336d1f5.chunk.js": "./static/js/9876.b336d1f5.chunk.js",
+    "static/js/5378.86805fba.chunk.js": "./static/js/5378.86805fba.chunk.js",
+    "static/js/2183.e2318c37.chunk.js": "./static/js/2183.e2318c37.chunk.js",
+    "static/js/7543.3fcfd3ba.chunk.js": "./static/js/7543.3fcfd3ba.chunk.js",
+    "static/js/6390.497d0ec8.chunk.js": "./static/js/6390.497d0ec8.chunk.js",
+    "static/js/2118.bc169874.chunk.js": "./static/js/2118.bc169874.chunk.js",
+    "static/js/8065.666ef449.chunk.js": "./static/js/8065.666ef449.chunk.js",
+    "static/js/7520.d245d6ac.chunk.js": "./static/js/7520.d245d6ac.chunk.js",
+    "static/js/4789.d52069de.chunk.js": "./static/js/4789.d52069de.chunk.js",
+    "static/js/8607.1e377882.chunk.js": "./static/js/8607.1e377882.chunk.js",
+    "static/css/1551.d5e5efc2.chunk.css": "./static/css/1551.d5e5efc2.chunk.css",
+    "static/js/1551.2e8e3e50.chunk.js": "./static/js/1551.2e8e3e50.chunk.js",
+    "static/css/8424.308a04db.chunk.css": "./static/css/8424.308a04db.chunk.css",
+    "static/js/8424.5b5c42b5.chunk.js": "./static/js/8424.5b5c42b5.chunk.js",
+    "static/js/7645.6565454c.chunk.js": "./static/js/7645.6565454c.chunk.js",
+    "static/media/codicon.ttf": "./static/media/codicon.762fced46d6cddbda272.ttf",
+    "static/media/thumbsUp.svg": "./static/media/thumbsUp.d4a03fbaa64ce85a0045bf8ba77f8e2b.svg",
+    "static/media/error.svg": "./static/media/error.ca9e31d5d3dc34da07e11a00f7af0842.svg",
+    "static/media/403.svg": "./static/media/403.6367e52f9464706633f52a2488a41958.svg",
+    "index.html": "./index.html"
+  },
+  "entrypoints": [
+    "static/css/main.c8ce3bba.css",
+    "static/js/main.62a60ecb.js"
+  ]
+}
\ No newline at end of file
diff --git a/ydb/core/viewer/monitoring/index.html b/ydb/core/viewer/monitoring/index.html
index a10b24d34b9d..f2f7bcf03654 100644
--- a/ydb/core/viewer/monitoring/index.html
+++ b/ydb/core/viewer/monitoring/index.html
@@ -1 +1 @@
-YDB Monitoring
\ No newline at end of file +YDB Monitoring
\ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/css/1551.d5e5efc2.chunk.css b/ydb/core/viewer/monitoring/static/css/1551.d5e5efc2.chunk.css new file mode 100644 index 000000000000..8b23ee068231 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/css/1551.d5e5efc2.chunk.css @@ -0,0 +1,3 @@ +.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.hc-light .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;top:0;width:1px}.monaco-diff-editor .synthetic-focus,.monaco-diff-editor [tabindex="-1"]:focus,.monaco-diff-editor [tabindex="0"]:focus,.monaco-diff-editor button:focus,.monaco-diff-editor input[type=button]:focus,.monaco-diff-editor input[type=checkbox]:focus,.monaco-diff-editor input[type=search]:focus,.monaco-diff-editor input[type=text]:focus,.monaco-diff-editor select:focus,.monaco-diff-editor textarea:focus,.monaco-editor{opacity:1;outline-color:var(--vscode-focusBorder);outline-offset:-1px;outline-style:solid;outline-width:1px}.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%;color:var(--vscode-editor-foreground);overflow:visible;position:relative}.monaco-editor,.monaco-editor-background{background-color:var(--vscode-editor-background)}.monaco-editor .rangeHighlight{background-color:var(--vscode-editor-rangeHighlightBackground);border:1px solid var(--vscode-editor-rangeHighlightBorder);box-sizing:border-box}.monaco-editor.hc-black .rangeHighlight,.monaco-editor.hc-light .rangeHighlight{border-style:dotted}.monaco-editor .symbolHighlight{background-color:var(--vscode-editor-symbolHighlightBackground);border:1px solid var(--vscode-editor-symbolHighlightBorder);box-sizing:border-box}.monaco-editor.hc-black .symbolHighlight,.monaco-editor.hc-light .symbolHighlight{border-style:dotted}.monaco-editor .overflow-guard{overflow:hidden;position:relative}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .margin-view-overlays>div,.monaco-editor .view-overlays>div{position:absolute;width:100%}.monaco-editor .margin-view-overlays>div>div,.monaco-editor .view-overlays>div>div{bottom:0}.monaco-editor .squiggly-error{border-bottom:4px double var(--vscode-editorError-border)}.monaco-editor .squiggly-error:before{background:var(--vscode-editorError-background);content:"";display:block;height:100%;width:100%}.monaco-editor .squiggly-warning{border-bottom:4px double var(--vscode-editorWarning-border)}.monaco-editor .squiggly-warning:before{background:var(--vscode-editorWarning-background);content:"";display:block;height:100%;width:100%}.monaco-editor .squiggly-info{border-bottom:4px double var(--vscode-editorInfo-border)}.monaco-editor .squiggly-info:before{background:var(--vscode-editorInfo-background);content:"";display:block;height:100%;width:100%}.monaco-editor .squiggly-hint{border-bottom:2px dotted var(--vscode-editorHint-border)}.monaco-editor.showUnused .squiggly-unnecessary{border-bottom:2px dashed var(--vscode-editorUnnecessaryCode-border)}.monaco-editor.showDeprecated .squiggly-inline-deprecated{text-decoration:line-through;text-decoration-color:inherit;text-decoration-color:var(--vscode-editor-foreground,inherit)}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{background:#0000;opacity:1;transition:opacity .1s linear;z-index:11}.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:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;display:block;height:3px;left:3px;top:0;width:100%}.monaco-scrollable-element>.shadow.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset;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:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.scrollbar>.slider{background:var(--vscode-scrollbarSlider-background)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-scrollable-element>.scrollbar>.slider.active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .inputarea{background-color:initial;border:none;color:#0000;margin:0;min-height:0;min-width:0;outline:none!important;overflow:hidden;padding:0;position:absolute;resize:none;z-index:-10}.monaco-editor .inputarea.ime-input{caret-color:var(--vscode-editorCursor-foreground);color:var(--vscode-editor-foreground);z-index:10}.monaco-editor .margin-view-overlays .line-numbers{font-feature-settings:"tnum";bottom:0;box-sizing:border-box;cursor:default;display:inline-block;font-variant-numeric:tabular-nums;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-editor .line-numbers{color:var(--vscode-editorLineNumber-foreground)}.monaco-editor .line-numbers.active-line-number{color:var(--vscode-editorLineNumber-activeForeground)}.monaco-editor .margin{background-color:var(--vscode-editorGutter-background)}.monaco-mouse-cursor-text{cursor:text}.monaco-editor .blockDecorations-container{pointer-events:none;position:absolute;top:0}.monaco-editor .blockDecorations-block{box-sizing:border-box;position:absolute}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{box-sizing:border-box;display:block;height:100%;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{height:100%;position:absolute}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .glyph-margin-widgets .cgmr{align-items:center;display:flex;justify-content:center;position:absolute}.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin:before{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.monaco-editor .lines-content .core-guide{box-sizing:border-box;height:100%;position:absolute}.mtkcontrol{background:#960000!important;color:#fff!important}.mtkoverflow{background-color:var(--vscode-editor-background);background-color:var(--vscode-button-background,var(--vscode-editor-background));border-color:var(--vscode-contrastBorder);border-radius:2px;border-style:solid;border-width:1px;color:var(--vscode-editor-foreground);color:var(--vscode-button-foreground,var(--vscode-editor-foreground));cursor:pointer;padding:4px}.mtkoverflow:hover{background-color:var(--vscode-button-hoverBackground)}.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}.monaco-editor.mac .lines-content:hover,.monaco-editor.mac .view-line:hover,.monaco-editor.mac .view-lines:hover{user-select:text;-webkit-user-select:text;-ms-user-select:text}.monaco-editor.enable-user-select{user-select:auto;-webkit-user-select:initial}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .lines-content>.view-lines>.view-line>span{bottom:0;position:absolute;top:0}.monaco-editor .mtkw,.monaco-editor .mtkz{color:var(--vscode-editorWhitespace-foreground)!important}.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-slider .minimap-slider-horizontal{background:var(--vscode-minimapSlider-background)}.monaco-editor .minimap-slider:hover .minimap-slider-horizontal{background:var(--vscode-minimapSlider-hoverBackground)}.monaco-editor .minimap-slider.active .minimap-slider-horizontal{background:var(--vscode-minimapSlider-activeBackground)}.monaco-editor .minimap-shadow-visible{box-shadow:var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset}.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}.minimap.autohide{opacity:0;transition:opacity .5s}.minimap.autohide:hover{opacity:1}.monaco-editor .minimap{z-index:5}.monaco-editor .overlayWidgets{left:0;position:absolute;top:0}.monaco-editor .view-ruler{box-shadow:1px 0 0 0 var(--vscode-editorRuler-foreground) inset;position:absolute;top:0}.monaco-editor .scroll-decoration{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;height:6px;left:0;position:absolute;top:0}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.monaco-editor .selected-text{background-color:var(--vscode-editor-inactiveSelectionBackground)}.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.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{box-sizing:border-box;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:#0000!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{background:#0000!important;border-bottom-style:solid;border-bottom-width:2px}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{background:#0000!important;border-bottom-style:solid;border-bottom-width:1px}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-editor .mwh{color:var(--vscode-editorWhitespace-foreground)!important;position:absolute}.monaco-workbench .workbench-hover{background:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;box-shadow:0 2px 8px var(--vscode-widget-shadow);color:var(--vscode-editorHoverWidget-foreground);font-size:13px;line-height:19px;max-width:700px;overflow:hidden;position:relative;z-index:40}.monaco-workbench .workbench-hover hr{border-bottom:none}.monaco-workbench .workbench-hover:not(.skip-fade-in){animation:fadein .1s linear}.monaco-workbench .workbench-hover.compact{font-size:12px}.monaco-workbench .workbench-hover.compact .hover-contents{padding:2px 8px}.monaco-workbench .workbench-hover-container.locked .workbench-hover{outline:1px solid var(--vscode-editorHoverWidget-border)}.monaco-workbench .workbench-hover-container.locked .workbench-hover:focus,.monaco-workbench .workbench-hover-lock:focus{outline:1px solid var(--vscode-focusBorder)}.monaco-workbench .workbench-hover-container.locked .workbench-hover-lock:hover{background:var(--vscode-toolbar-hoverBackground)}.monaco-workbench .workbench-hover-pointer{pointer-events:none;position:absolute;z-index:41}.monaco-workbench .workbench-hover-pointer:after{background-color:var(--vscode-editorHoverWidget-background);border-bottom:1px solid var(--vscode-editorHoverWidget-border);border-right:1px solid var(--vscode-editorHoverWidget-border);content:"";height:5px;position:absolute;width:5px}.monaco-workbench .locked .workbench-hover-pointer:after{border-bottom-width:2px;border-right-width:2px;height:4px;width:4px}.monaco-workbench .workbench-hover-pointer.left{left:-3px}.monaco-workbench .workbench-hover-pointer.right{right:3px}.monaco-workbench .workbench-hover-pointer.top{top:-3px}.monaco-workbench .workbench-hover-pointer.bottom{bottom:3px}.monaco-workbench .workbench-hover-pointer.left:after{transform:rotate(135deg)}.monaco-workbench .workbench-hover-pointer.right:after{transform:rotate(315deg)}.monaco-workbench .workbench-hover-pointer.top:after{transform:rotate(225deg)}.monaco-workbench .workbench-hover-pointer.bottom:after{transform:rotate(45deg)}.monaco-workbench .workbench-hover a{color:var(--vscode-textLink-foreground)}.monaco-workbench .workbench-hover a:focus{outline:1px solid;outline-color:var(--vscode-focusBorder);outline-offset:-1px;text-decoration:underline}.monaco-workbench .workbench-hover a:active,.monaco-workbench .workbench-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-workbench .workbench-hover code{background:var(--vscode-textCodeBlock-background)}.monaco-workbench .workbench-hover .hover-row .actions{background:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-workbench .workbench-hover.right-aligned{left:1px}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions{flex-direction:row-reverse}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions .action-container{margin-left:16px;margin-right:0}.monaco-hover{animation:fadein .1s linear;box-sizing:border-box;cursor:default;line-height:1.5em;overflow:hidden;position:absolute;user-select:text;-webkit-user-select:text;white-space:normal;white-space:var(--vscode-hover-whiteSpace,normal)}.monaco-hover.hidden{display:none}.monaco-hover a:hover:not(.disabled){cursor:pointer}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){word-wrap:break-word;max-width:500px;max-width:var(--vscode-hover-maxWidth,500px)}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover .code,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6,.monaco-hover p,.monaco-hover ul{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.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;white-space:var(--vscode-hover-sourceWhiteSpace,pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.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,.monaco-hover .hover-contents a.code-link:hover{color:inherit}.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>span{border-bottom:1px solid #0000;color:var(--vscode-textLink-foreground);text-decoration:underline;text-underline-position:under}.monaco-hover .hover-contents a.code-link>span:hover{color:var(--vscode-textLink-activeForeground)}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{display:inline-block;margin-bottom:4px}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{cursor:default;opacity:.4;pointer-events:none}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);border-radius:3px;border-style:solid;border-width:1px;box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);color:var(--vscode-keybindingLabel-foreground);padding:1px 3px;vertical-align:middle}.rendered-markdown li:has(input[type=checkbox]){list-style-type:none}.context-view{position:absolute}.context-view.fixed{clip:auto;all:initial;animation:none 0s ease 0s 1 normal none running;-webkit-backface-visibility:visible;backface-visibility:visible;background:#0000 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;column-fill:balance;column-gap:normal;column-rule:medium none currentColor;column-span:1;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;perspective:none;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;transform:none;transform-origin:initial;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}.monaco-list{height:100%;position:relative;white-space:nowrap;width:100%}.monaco-list.mouse-support{user-select:none;-webkit-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 .monaco-scrollable-element>.scrollbar.vertical,.monaco-pane-view>.monaco-split-view2.vertical>.monaco-scrollable-element>.scrollbar.vertical{z-index:14}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-drag-image{border-radius:10px;display:inline-block;font-size:12px;padding:1px 7px;position:absolute;z-index:1000}.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-select-box-dropdown-padding{--dropdown-padding-top:1px;--dropdown-padding-bottom:1px}.hc-black .monaco-select-box-dropdown-padding,.hc-light .monaco-select-box-dropdown-padding{--dropdown-padding-top:3px;--dropdown-padding-bottom:4px}.monaco-select-box-dropdown-container{box-sizing:border-box;display:none}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown *{margin:0}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown a:focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown code{font-family:var(--monaco-monospace-font);line-height:15px}.monaco-select-box-dropdown-container.visible{border-bottom-left-radius:3px;border-bottom-right-radius:3px;display:flex;flex-direction:column;overflow:hidden;text-align:left;width:1px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{align-self:flex-start;box-sizing:border-box;flex:0 0 auto;overflow:hidden;padding-bottom:var(--dropdown-padding-bottom);padding-left:1px;padding-right:1px;padding-top:var(--dropdown-padding-top);width:100%}.monaco-select-box-dropdown-container>.select-box-details-pane{padding:5px}.hc-black .monaco-select-box-dropdown-container>.select-box-dropdown-list-container{padding-bottom:var(--dropdown-padding-bottom);padding-top:var(--dropdown-padding-top)}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row{cursor:pointer}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-text{float:left;overflow:hidden;padding-left:3.5px;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-detail{float:left;opacity:.7;overflow:hidden;padding-left:3.5px;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-decorator-right{float:right;overflow:hidden;padding-right:10px;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.visually-hidden{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control{align-self:flex-start;flex:1 1 auto;opacity:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div{max-height:0;overflow:hidden}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div>.option-text-width-control{padding-left:4px;padding-right:8px;white-space:nowrap}.monaco-select-box{border-radius:2px;cursor:pointer;width:100%}.monaco-select-box-dropdown-container{font-size:13px;font-weight:400;text-transform:none}.monaco-action-bar .action-item.select-container{cursor:default}.monaco-action-bar .action-item .monaco-select-box{cursor:pointer;min-height:18px;min-width:100px;padding:2px 23px 2px 8px}.mac .monaco-action-bar .action-item .monaco-select-box{border-radius:5px;font-size:11px}.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;display:flex;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{color:var(--vscode-disabledForeground)}.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}.monaco-action-bar .action-item .action-label.separator{background-color:#bbb;cursor:default;height:16px;margin:5px 4px!important;min-width:1px;padding:0;width: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-dropdown-item-separator{align-items:center;cursor:default;display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator>div{width:1px}.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:-3px;padding-left:0;padding-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{background-position:50%;background-repeat:no-repeat;background-size:16px;display:block}.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-dropdown-with-default{border-radius:5px;display:flex!important;flex-direction:row}.monaco-dropdown-with-default>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{background-position:50%;background-repeat:no-repeat;background-size:16px;height:16px;width:16px}.monaco-dropdown-with-default:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;line-height:16px;margin-left:-3px;padding-left:0;padding-right:0}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{background-position:50%;background-repeat:no-repeat;background-size:16px;display:block}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:#ddd6;border:1px solid;border-color:#ccc6 #ccc6 #bbb6;box-shadow:inset 0 -1px 0 #bbb6;color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:initial;border:1px solid #6fc3df;box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:initial;border:1px solid #0f4a85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:#8080802b;border:1px solid;border-color:#3339 #3339 #4449;box-shadow:inset 0 -1px 0 #4449;color:#ccc}.monaco-custom-toggle{border:1px solid #0000;border-radius:3px;box-sizing:border-box;cursor:pointer;float:left;height:20px;margin-left:2px;overflow:hidden;padding:1px;user-select:none;-webkit-user-select:none;width:20px}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.hc-black .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle,.hc-light .monaco-custom-toggle:hover{background:none}.monaco-custom-toggle.monaco-checkbox{background-size:16px!important;border:1px solid #0000;border-radius:3px;height:18px;margin-left:0;margin-right:9px;opacity:1;padding:0;width:18px}.monaco-action-bar .checkbox-action-item{align-items:center;display:flex}.monaco-action-bar .checkbox-action-item>.monaco-custom-toggle.monaco-checkbox{margin-right:4px}.monaco-action-bar .checkbox-action-item>.checkbox-label{font-size:12px}.monaco-custom-toggle.monaco-checkbox:not(.checked):before{visibility:hidden}.quick-input-widget{-webkit-app-region:no-drag;border-radius:6px;left:50%;margin-left:-300px;position:absolute;width:600px;z-index:2550}.quick-input-titlebar{align-items:center;border-radius:inherit;display:flex}.quick-input-left-action-bar{display:flex;flex:1 1;margin-left:4px}.quick-input-title{overflow:hidden;padding:3px 0;text-align:center;text-overflow:ellipsis}.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 6px 6px 11px}.quick-input-header .quick-input-description{flex:1 1;margin:4px 2px}.quick-input-header{display:flex;padding:8px 6px 2px}.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;min-width:0;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:25px;padding:0 6px}.quick-input-message{margin-top:-1px;overflow-wrap:break-word;padding:5px}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-message a{color:inherit}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{max-height:440px;overflow:hidden;padding-bottom:5px}.quick-input-list .monaco-scrollable-element{padding:0 5px}.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{border-radius:3px}.quick-input-list .monaco-list-row[data-index="0"] .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-icon{align-items:center;background-position:0;background-repeat:no-repeat;background-size:16px;display:flex;height:22px;justify-content:center;padding-right:6px;width:16px}.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:text-bottom}.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-list .monaco-list-row .monaco-highlighted-label .highlight{background-color:initial;color:var(--vscode-list-highlightForeground)!important;font-weight:700}.quick-input-list .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight{color:var(--vscode-list-focusHighlightForeground)!important}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:4px}.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:0 2px 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 .monaco-list-row.passive-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.focus-inside .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label{display:flex}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.quick-input-list .quick-input-list-separator-as-item{font-size:12px;padding:4px 6px}.quick-input-list .quick-input-list-separator-as-item .label-name{font-weight:600}.quick-input-list .quick-input-list-separator-as-item .label-description{opacity:1!important}.quick-input-list .monaco-tree-sticky-row .quick-input-list-entry.quick-input-list-separator-as-item.quick-input-list-separator-border{border-top-style:none}.quick-input-list .monaco-tree-sticky-row{padding:0 5px}.quick-input-list .monaco-tl-twistie{display:none!important}:root{--vscode-sash-size:4px;--vscode-sash-hover-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(--vscode-sash-size)}.monaco-sash.horizontal{cursor:ns-resize;height:4px;height:var(--vscode-sash-size);left:0;width:100%}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";cursor:all-scroll;display:block;height:8px;height:calc(var(--vscode-sash-size)*2);position:absolute;width:8px;width:calc(var(--vscode-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(--vscode-sash-size)*-.5);top:-4px;top:calc(var(--vscode-sash-size)*-1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{bottom:-4px;bottom:calc(var(--vscode-sash-size)*-1);left:-2px;left:calc(var(--vscode-sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{left:-4px;left:calc(var(--vscode-sash-size)*-1);top:-2px;top:calc(var(--vscode-sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{right:-4px;right:calc(var(--vscode-sash-size)*-1);top:-2px;top:calc(var(--vscode-sash-size)*-.5)}.monaco-sash:before{background:#0000;content:"";height:100%;pointer-events:none;position:absolute;width:100%}.monaco-workbench:not(.reduce-motion) .monaco-sash:before{transition:background-color .1s ease-out}.monaco-sash.active:before,.monaco-sash.hover:before{background:var(--vscode-sash-hoverBorder)}.monaco-sash.vertical:before{left:calc(50% - 2px);left:calc(50% - var(--vscode-sash-hover-size)/2);width:4px;width:var(--vscode-sash-hover-size)}.monaco-sash.horizontal:before{height:4px;height:var(--vscode-sash-hover-size);top:calc(50% - 2px);top:calc(50% - var(--vscode-sash-hover-size)/2)}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:cyan}.monaco-sash.debug.disabled{background:#0ff3}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.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%}.monaco-table{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative;white-space:nowrap;width:100%}.monaco-table>.monaco-split-view2{border-bottom:1px solid #0000}.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 #0000;content:"";left:calc(var(--vscode-sash-size)/2);position:absolute;width:0}.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2,.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-inputbox{border-radius:2px;box-sizing:border-box;display:block;font-size:inherit;padding:0;position:relative}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px 6px}.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{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-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}.hc-light .monaco-findInput.highlight-0 .controls,.monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 .1s linear 0s}.hc-light .monaco-findInput.highlight-1 .controls,.monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:#fdff00cc}to{background:#0000}}@keyframes monaco-findInput-highlight-1{0%{background:#fdff00cc}99%{background:#0000}}@keyframes monaco-findInput-highlight-dark-0{0%{background:#ffffff70}to{background:#0000}}@keyframes monaco-findInput-highlight-dark-1{0%{background:#ffffff70}99%{background:#0000}}.monaco-tl-row{align-items:center;display:flex;height:100%;position:relative}.monaco-tl-row.disabled{cursor:default}.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 #0000;box-sizing:border-box;display:inline-block;height:100%}.monaco-workbench:not(.reduce-motion) .monaco-tl-indent>.indent-guide{transition:border-color .1s linear}.monaco-tl-contents,.monaco-tl-twistie{height:100%}.monaco-tl-twistie{align-items:center;display:flex!important;flex-shrink:0;font-size:10px;justify-content:center;padding-right:6px;text-align:right;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{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:codicon-spin 1.25s steps(30) infinite}.monaco-tree-type-filter{border:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px;display:flex;margin:0 6px;max-width:200px;padding:3px;position:absolute;top:0;z-index:100}.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter{transition:top .3s}.monaco-tree-type-filter.disabled{top:-40px!important}.monaco-tree-type-filter-grab{align-items:center;cursor:grab;display:flex!important;justify-content:center;margin-right:2px}.monaco-tree-type-filter-grab.grabbing{cursor:grabbing}.monaco-tree-type-filter-input{flex:1 1}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror{padding:2px 4px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar{margin-left:4px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{background-color:var(--vscode-sideBar-background);height:0;left:0;position:absolute;top:0;width:100%;z-index:13}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{background-color:var(--vscode-sideBar-background);opacity:1!important;overflow:hidden;position:absolute;width:100%}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{background-color:var(--vscode-list-hoverBackground)!important;cursor:pointer}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty,.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty .monaco-tree-sticky-container-shadow{display:none}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow{bottom:-3px;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;height:3px;left:0;position:absolute;width:100%}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container[tabindex="0"]:focus{outline:none}.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-container.disabled{color:var(--vscode-disabledForeground)}.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-suffix-container>.label-suffix{opacity:.7;white-space:pre}.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;margin:auto 16px 0 5px;opacity:.75;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-text-button{align-items:center;border:1px solid #0000;border:1px solid var(--vscode-button-border,#0000);border-radius:2px;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;line-height:18px;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-text-button.monaco-text-button-with-short-label{flex-direction:row;flex-wrap:wrap;height:28px;overflow:hidden;padding:0 4px}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label{flex-basis:100%}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{flex-grow:1;overflow:hidden;width:0}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label,.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{align-items:center;display:flex;font-style:inherit;font-weight:400;justify-content:center;padding:4px 0}.monaco-button-dropdown{cursor:pointer;display:flex}.monaco-button-dropdown.disabled{cursor:default}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator,.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus{opacity:.4!important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{cursor:default;padding:4px 0}.monaco-button-dropdown .monaco-button-dropdown-separator>div{height:100%;width:1px}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{align-items:center;border:1px solid #0000;border:1px solid var(--vscode-button-border,#0000);border-left-width:0!important;border-radius:0 2px 2px 0;display:flex}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-radius:2px 0 0 2px}.monaco-description-button{align-items:center;display:flex;flex-direction:column;margin:4px 5px}.monaco-description-button .monaco-button-description{font-size:11px;font-style:italic;padding:4px 20px}.monaco-description-button .monaco-button-description,.monaco-description-button .monaco-button-label{align-items:center;display:flex;justify-content:center}.monaco-description-button .monaco-button-description>.codicon,.monaco-description-button .monaco-button-label>.codicon{color:inherit!important;margin:0 .2em}.monaco-button-dropdown.default-colors>.monaco-button,.monaco-button.default-colors{background-color:var(--vscode-button-background);color:var(--vscode-button-foreground)}.monaco-button-dropdown.default-colors>.monaco-button:hover,.monaco-button.default-colors:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary,.monaco-button.default-colors.secondary{background-color:var(--vscode-button-secondaryBackground);color:var(--vscode-button-secondaryForeground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary:hover,.monaco-button.default-colors.secondary:hover{background-color:var(--vscode-button-secondaryHoverBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator{background-color:var(--vscode-button-background);border-bottom:1px solid var(--vscode-button-border);border-top:1px solid var(--vscode-button-border)}.monaco-button-dropdown.default-colors .monaco-button.secondary+.monaco-button-dropdown-separator{background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator>div{background-color:var(--vscode-button-separator)}.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:2px;overflow:hidden;width:100%}.monaco-progress-container .progress-bit{display:none;height:2px;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{animation-duration:4s;animation-iteration-count:infinite;animation-name:progress;animation-timing-function:linear;transform:translateZ(0)}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes progress{0%{transform:translateX(0) scaleX(1)}50%{transform:translateX(2500%) scaleX(3)}to{transform:translateX(4900%) scaleX(1)}}.monaco-editor .diff-hidden-lines-widget{width:100%}.monaco-editor .diff-hidden-lines{font-size:13px;height:0;line-height:14px;transform:translateY(-10px)}.monaco-editor .diff-hidden-lines .bottom.dragging,.monaco-editor .diff-hidden-lines .top.dragging,.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover{background-color:var(--vscode-focusBorder)}.monaco-editor .diff-hidden-lines .bottom,.monaco-editor .diff-hidden-lines .top{background-clip:padding-box;background-color:initial;border-bottom:2px solid #0000;border-top:4px solid #0000;height:4px;transition:background-color .1s ease-out}.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom),.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *{cursor:n-resize!important}.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom,.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *{cursor:s-resize!important}.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom,.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *{cursor:ns-resize!important}.monaco-editor .diff-hidden-lines .top{transform:translateY(4px)}.monaco-editor .diff-hidden-lines .bottom{transform:translateY(-6px)}.monaco-editor .diff-unchanged-lines{background:var(--vscode-diffEditor-unchangedCodeBackground)}.monaco-editor .noModificationsOverlay{align-items:center;background:var(--vscode-editor-background);display:flex;justify-content:center;z-index:1}.monaco-editor .diff-hidden-lines .center{background:var(--vscode-diffEditor-unchangedRegionBackground);box-shadow:inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow),inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow);color:var(--vscode-diffEditor-unchangedRegionForeground);display:block;height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .diff-hidden-lines .center span.codicon{vertical-align:middle}.monaco-editor .diff-hidden-lines .center a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important;cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item{cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover{color:var(--vscode-editorLink-activeForeground)}.monaco-editor .movedModified,.monaco-editor .movedOriginal{border:2px solid var(--vscode-diffEditor-move-border)}.monaco-editor .movedModified.currentMove,.monaco-editor .movedOriginal.currentMove{border:2px solid var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path.currentMove{stroke:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path{pointer-events:visiblestroke}.monaco-diff-editor .moved-blocks-lines .arrow{fill:var(--vscode-diffEditor-move-border)}.monaco-diff-editor .moved-blocks-lines .arrow.currentMove{fill:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines .arrow-rectangle{fill:var(--vscode-editor-background)}.monaco-diff-editor .moved-blocks-lines{pointer-events:none;position:absolute}.monaco-diff-editor .moved-blocks-lines path{fill:none;stroke:var(--vscode-diffEditor-move-border);stroke-width:2}.monaco-editor .char-delete.diff-range-empty{border-left:3px solid var(--vscode-diffEditor-removedTextBackground);margin-left:-1px}.monaco-editor .char-insert.diff-range-empty{border-left:3px solid var(--vscode-diffEditor-insertedTextBackground)}.monaco-editor .fold-unchanged{cursor:pointer}.monaco-diff-editor .diff-moved-code-block{display:flex;justify-content:flex-end;margin-top:-4px}.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon{font-size:12px;height:12px;width:12px}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:#00000008}.monaco-diff-editor.vs-dark .diffOverview{background:#ffffff03}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:#0000}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:#ababab66}.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .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-diff-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-editor.hc-light .insert-sign{opacity:1}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone{text-align:right}.monaco-editor .arrow-revert-change{position:absolute;z-index:10}.monaco-editor .arrow-revert-change:hover{cursor:pointer}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-diff-editor .char-insert,.monaco-diff-editor .line-insert,.monaco-editor .char-insert,.monaco-editor .line-insert{background-color:var(--vscode-diffEditor-insertedTextBackground)}.monaco-diff-editor .line-insert,.monaco-editor .line-insert{background-color:var(--vscode-diffEditor-insertedLineBackground,var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .char-insert,.monaco-editor .line-insert{border:1px solid var(--vscode-diffEditor-insertedTextBorder);box-sizing:border-box}.monaco-editor.hc-black .char-insert,.monaco-editor.hc-black .line-insert,.monaco-editor.hc-light .char-insert,.monaco-editor.hc-light .line-insert{border-style:dashed}.monaco-editor .char-delete,.monaco-editor .line-delete{border:1px solid var(--vscode-diffEditor-removedTextBorder);box-sizing:border-box}.monaco-editor.hc-black .char-delete,.monaco-editor.hc-black .line-delete,.monaco-editor.hc-light .char-delete,.monaco-editor.hc-light .line-delete{border-style:dashed}.monaco-diff-editor .gutter-insert,.monaco-editor .gutter-insert,.monaco-editor .inline-added-margin-view-zone{background-color:var(--vscode-diffEditor-insertedLineBackground),var(--vscode-diffEditor-insertedTextBackground);background-color:var(--vscode-diffEditorGutter-insertedLineBackground,var(--vscode-diffEditor-insertedLineBackground),var(--vscode-diffEditor-insertedTextBackground))}.monaco-diff-editor .char-delete,.monaco-diff-editor .line-delete,.monaco-editor .char-delete,.monaco-editor .line-delete{background-color:var(--vscode-diffEditor-removedTextBackground)}.monaco-diff-editor .line-delete,.monaco-editor .line-delete{background-color:var(--vscode-diffEditor-removedLineBackground,var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor .gutter-delete,.monaco-editor .gutter-delete,.monaco-editor .inline-deleted-margin-view-zone{background-color:var(--vscode-diffEditor-removedLineBackground),var(--vscode-diffEditor-removedTextBackground);background-color:var(--vscode-diffEditorGutter-removedLineBackground,var(--vscode-diffEditor-removedLineBackground),var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor.side-by-side .editor.modified{border-left:1px solid var(--vscode-diffEditor-border);box-shadow:-6px 0 5px -5px var(--vscode-scrollbar-shadow)}.monaco-diff-editor.side-by-side .editor.original{border-right:1px solid var(--vscode-diffEditor-border);box-shadow:6px 0 5px -5px var(--vscode-scrollbar-shadow)}.monaco-diff-editor .diffViewport{background:var(--vscode-scrollbarSlider-background)}.monaco-diff-editor .diffViewport:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-diff-editor .diffViewport:active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .diagonal-fill{background-image:linear-gradient(-45deg,var(--vscode-diffEditor-diagonalFill) 12.5%,#0000 12.5%,#0000 50%,var(--vscode-diffEditor-diagonalFill) 50%,var(--vscode-diffEditor-diagonalFill) 62.5%,#0000 62.5%,#0000 100%);background-size:8px 8px}.monaco-diff-editor .gutter{flex-grow:0;flex-shrink:0;overflow:hidden;position:relative;.gutterItem{opacity:0;transition:opacity .7s;&.showAlways{opacity:1}&.noTransition,&.showAlways{transition:none}}&:hover .gutterItem{opacity:1;transition:opacity .1s ease-in-out}.gutterItem{.background{border-left:2px solid var(--vscode-menu-border);height:100%;left:50%;position:absolute;width:1px}.buttons{align-items:center;display:flex;justify-content:center;position:absolute;width:100%;.monaco-toolbar{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;.monaco-action-bar{line-height:1;.actions-container{background:var(--vscode-editor-background);border:1px solid var(--vscode-menu-border);border-radius:4px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;.action-item{&:hover{background:var(--vscode-toolbar-hoverBackground)}.action-label{padding:.5px 1px}}}}}}}}.monaco-component.diff-review{user-select:none;-webkit-user-select:none;z-index:99}.monaco-diff-editor .diff-review{position:absolute}.monaco-component.diff-review .diff-review-line-number{color:var(--vscode-editorLineNumber-foreground);display:inline-block;text-align:right}.monaco-component.diff-review .diff-review-summary{padding-left:10px}.monaco-component.diff-review .diff-review-shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset;position:absolute}.monaco-component.diff-review .diff-review-row{white-space:pre}.monaco-component.diff-review .diff-review-table{display:table;min-width:100%}.monaco-component.diff-review .diff-review-row{display:table-row;width:100%}.monaco-component.diff-review .diff-review-spacer{display:inline-block;vertical-align:middle;width:10px}.monaco-component.diff-review .diff-review-spacer>.codicon{font-size:9px!important}.monaco-component.diff-review .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.monaco-component.diff-review .diff-review-actions .action-label{height:16px;margin:2px 0;width:16px}.monaco-component.diff-review .revertButton{cursor:pointer}.monaco-toolbar{height:100%}.monaco-toolbar .toolbar-toggle-more{display:inline-block;padding:0}.monaco-component.multiDiffEditor{background:var(--vscode-multiDiffEditor-background);overflow-y:hidden;.focused{--vscode-multiDiffEditor-border:var(--vscode-focusBorder)}.multiDiffEntry{display:flex;flex:1 1;flex-direction:column;overflow:hidden;.collapse-button{cursor:pointer;margin:0 5px;a{display:block}}.header{background:var(--vscode-editor-background);z-index:1000;&:not(.collapsed) .header-content{border-bottom:1px solid var(--vscode-sideBarSectionHeader-border)}.header-content{align-items:center;background:var(--vscode-multiDiffEditor-headerBackground);border-left:1px solid var(--vscode-multiDiffEditor-border);border-right:1px solid var(--vscode-multiDiffEditor-border);border-top:1px solid var(--vscode-multiDiffEditor-border);border-top-left-radius:2px;border-top-right-radius:2px;color:var(--vscode-foreground);display:flex;margin:8px 8px 0;padding:4px 5px;&.shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px}.file-path{display:flex;flex:1 1;min-width:0;.title{font-size:14px;line-height:22px;&.original{flex:1 1;min-width:0;text-overflow:ellipsis}}.status{font-weight:600;line-height:22px;margin:0 10px;opacity:.75}}.actions{padding:0 8px}}}.editorParent{border-bottom:1px solid var(--vscode-multiDiffEditor-border);border-left:1px solid var(--vscode-multiDiffEditor-border);border-radius:2px;border-right:1px solid var(--vscode-multiDiffEditor-border);display:flex;flex:1 1;flex-direction:column;margin-left:8px;margin-right:8px;overflow:hidden}.editorContainer{flex:1 1}}} \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/css/328.c0ade9c1.chunk.css b/ydb/core/viewer/monitoring/static/css/328.c0ade9c1.chunk.css new file mode 100644 index 000000000000..378e7a1e4c4c --- /dev/null +++ b/ydb/core/viewer/monitoring/static/css/328.c0ade9c1.chunk.css @@ -0,0 +1 @@ +.g-alert_corners_square{--g-card-border-radius:0}.g-alert__text-content{width:100%}.g-alert__actions_minContent{width:-webkit-min-content;width:min-content}.g-alert__close-btn{flex-shrink:0} \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/css/4983.5c3e5de4.chunk.css b/ydb/core/viewer/monitoring/static/css/4983.5c3e5de4.chunk.css new file mode 100644 index 000000000000..1d6b529ea392 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/css/4983.5c3e5de4.chunk.css @@ -0,0 +1 @@ +.yagr{--yagr-font-family:"Roboto","Helvetica Neue","Helvetica",Arial,sans-serif}.yagr_theme_light,.yagr_theme_light-hc{--yagr-title-color:#333;--yagr-legend-item:#00000080;--yagr-legend-item-hover:#000;--yagr-legend-item-hidden:#0000004d;--yagr-background:#fff;--yagr-grid:rgba(0,0,0,.105);--yagr-axis-stroke:#00000080}.yagr_theme_dark,.yagr_theme_dark-hc{--yagr-title-color:#ffffff59;--yagr-legend-item:#ffffff80;--yagr-legend-item-hover:#a09fa3;--yagr-legend-item-hidden:#ffffff2b;--yagr-background:#2d2c33;--yagr-grid:#ffffff3b;--yagr-axis-stroke:#ffffff80}.yagr_theme_dark-hc{--yagr-background:#222326}.yagr{background-color:var(--yagr-background);height:100%;overflow:hidden}.yagr,.yagr .uplot{font-family:var(--yagr-font-family);width:100%}.yagr .u-title{color:var(--yagr-title-color);font-size:14px;font-weight:700;line-height:14px;margin-top:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yagr .u-select{background:#335cad40}.uplot,.uplot *,.uplot :after,.uplot :before{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;width:-webkit-min-content;width:min-content}.u-title{font-size:18px;font-weight:700;text-align:center}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;height:100%;position:relative;width:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{display:inline-block;vertical-align:middle}.u-legend .u-marker{background-clip:padding-box!important;height:1em;margin-right:4px;width:1em}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012}.u-cursor-x,.u-cursor-y,.u-select{pointer-events:none;position:absolute}.u-cursor-x,.u-cursor-y{left:0;top:0;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{background-clip:padding-box!important;border:0 solid;border-radius:50%;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.u-axis.u-off,.u-cursor-pt.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-select.u-off{display:none}.yagr-tooltip{--yagr-tooltip-font-family:"Lucida Grande","Lucida Sans Unicode",Arial,Helvetica,sans-serif;background-color:#fff;border-radius:4px;font-family:var(--yagr-tooltip-font-family);overflow:hidden;pointer-events:none;position:absolute;z-index:1000}.yagr-tooltip__item{align-items:center;display:flex;flex-direction:row;justify-content:left;white-space:nowrap}.yagr-tooltip__item._active{font-weight:700}.yagr-tooltip_default{box-shadow:2px 0 3px #0000001a;font-size:12px;padding:4px 12px}.yagr-tooltip_default .__title{font-size:14px;font-weight:700;margin-bottom:4px}.yagr-tooltip_default .__section{margin-bottom:4px}.yagr-tooltip_default .__section:last-child{margin:0}.yagr-tooltip_default .__section_title{font-size:14px;font-weight:700;margin-bottom:2px}.yagr-tooltip_default .__section_scale{background-color:#eee;margin-bottom:2px;padding:2px}.yagr-tooltip_default .yagr-tooltip__mark{border-radius:50%;display:block;height:10px;margin-right:8px;width:10px}.yagr-tooltip_pinned{pointer-events:all}.yagr-tooltip_pinned ._tooltip-list{max-height:320px}.yagr-tooltip ._hidden-rows-number{white-space:nowrap}.yagr-tooltip__idx{max-width:25px;overflow:hidden;white-space:nowrap;width:25px}.yagr-tooltip__tf{margin-left:4px}.yagr-point{left:0;pointer-events:none;position:absolute;top:0;will-change:transform;z-index:100}.yagr-point span{border:1px solid #fff;border-radius:50%;box-shadow:0 1px 1px -1px #fff;display:block;height:100%;width:100%}.yagr-legend{display:block;max-width:100%;padding:8px 24px 12px;width:100%}.yagr-legend__top{padding:8px 24px 0}.yagr-legend__container{height:100%;overflow:hidden;width:100%}.yagr-legend__items{display:flex;flex-flow:row wrap;padding-left:16px}.yagr-legend__item{color:var(--yagr-legend-item);cursor:pointer;font-size:12px;font-weight:400;line-height:14px;margin-right:16px;max-height:14px;max-width:350px;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.yagr-legend__item:last-child{margin-right:0}.yagr-legend__item:hover{color:var(--yagr-legend-item-hover)}.yagr-legend__item_hidden{color:var(--yagr-legend-item-hidden)}.yagr-legend__item_hidden .yagr-legend__icon{background-color:var(--yagr-legend-item-hidden)!important}.yagr-legend__icon{display:inline-block;margin-right:4px;position:relative;width:12px}.yagr-legend__icon_area,.yagr-legend__icon_column,.yagr-legend__icon_dots{border-radius:50%;height:12px;top:2px}.yagr-legend__icon_line{height:3px;top:-2px}.yagr-legend__pagination{align-items:center;display:flex;justify-content:flex-start;padding-left:14px}.yagr-legend__pagination-text{color:var(--yagr-legend-item-hover);font-size:12px;-webkit-user-select:none;user-select:none}.yagr-legend__icon-up{border-color:#0000 #0000 #039;border-style:solid;border-width:0 6px 12px;cursor:pointer;height:0;width:0}.yagr-legend__icon-up_disabled{border-color:#0000 #0000 #ccc;cursor:auto}.yagr-legend__icon-down{border-color:#039 #0000 #0000;border-style:solid;border-width:12px 6px 0;cursor:pointer;height:0;width:0}.yagr-legend__icon-down_disabled{border-color:#ccc #0000 #0000;cursor:auto}.yagr-tooltip{background-color:var(--g-color-infographics-tooltip-bg);box-shadow:0 2px 12px #00000026}.chartkit-highcharts-tooltip-container_type_timeline{height:100%;width:100%}.chartkit-highcharts-tooltip-container._tooltip-with-scroll ._tooltip-footer td:last-child,.chartkit-highcharts-tooltip-container._tooltip-with-scroll ._tooltip-header td:last-child,.chartkit-highcharts-tooltip-container._tooltip-with-scroll-in-safari ._tooltip-row td:last-child,.chartkit-highcharts-tooltip-container._tooltip-with-scroll-in-safari ._tooltip-rows__summ-tr td:last-child{padding-right:33px;padding-right:calc(18px + var(--g-scrollbar-width, 15px))}._tooltip{background:var(--g-color-infographics-tooltip-bg);background-color:var(--g-color-infographics-tooltip-bg);border-radius:5px;box-shadow:0 2px 12px #00000026;box-sizing:border-box;color:var(--g-color-text-primary);font-size:12px;overflow:hidden}._tooltip_split-tooltip{border:none;border-radius:0;box-shadow:none;padding-bottom:12px}._tooltip_split-tooltip table{table-layout:fixed}._tooltip_split-tooltip ._tooltip-rows__table tbody{display:table-row-group}@supports (padding:max(0px)){._tooltip_split-tooltip{padding-bottom:max(12px,env(safe-area-inset-bottom))}}._tooltip table{width:100%}._tooltip table td{box-sizing:border-box}._tooltip table td:last-child{text-align:right}._tooltip-fake-row{height:5px}._tooltip-fake-row-heightless{height:0}._tooltip-fake-row-heightless td{padding:0}._tooltip-fake-row td:first-child{width:28px}._tooltip-row{width:100%}._tooltip-row td:first-child{padding-left:14px}._tooltip-row td:last-child{padding-right:18px}._tooltip-row td{padding:2px 4px}._tooltip-row td._tooltip-rows__diff-td,._tooltip-row td._tooltip-rows__value-td{padding-bottom:1px}._tooltip-selected-row{font-weight:600}._tooltip-comment-row td:last-child{padding-right:18px}._tooltip-right__td{padding-right:14px}._tooltip-right__td_with-split-tooltip{border:none}._tooltip-date{font-size:13px;font-weight:700;max-width:450px;overflow:hidden;padding:10px 14px 4px;text-overflow:ellipsis;white-space:nowrap}._tooltip-date-dayofweek{display:inline-block}._tooltip-date-dayofweek_weekend{color:red}._tooltip-rows__table{border-spacing:0;width:10px}._tooltip-rows__table thead,._tooltip-rows__table-footer{display:table;width:100%}._tooltip-rows__table thead._tooltip-header tr:not(._tooltip-fake-row):first-child td{border-bottom:1px solid var(--g-color-line-generic);padding-bottom:6px;padding-top:6px}._tooltip-rows__table tbody{display:block;overflow:hidden auto}._tooltip-rows__table tbody._tooltip-footer{display:table;width:100%}._tooltip-rows__table tbody._tooltip-list{overflow-x:hidden}._tooltip-rows__table tbody ._hidden-rows-sum._hidden-rows-sum-dark-bg,._tooltip-rows__table tbody._tooltip-list ._tooltip-row-dark-bg{background-color:var(--g-color-base-generic)}._tooltip-rows__table tbody ._hidden-rows-sum td{padding-bottom:2px;padding-top:2px}._tooltip-rows__table tbody td._hidden-rows-number{padding-right:20px;text-align:left}._tooltip-rows__table tbody td._hidden-rows-value{font-family:Consolas,Menlo,Ubuntu Mono,monospace;word-spacing:-3px}._tooltip-rows__bubble-div{border-radius:1px;display:inline-block;height:6px;margin-bottom:1px;margin-left:1px;width:12px}._tooltip-rows__shape-div{align-items:center;display:flex;height:100%;width:38px}._tooltip-rows__shape-td{height:20px}._tooltip-rows__percent-td{padding-left:12px}._tooltip-rows__diff-td,._tooltip-rows__percent-td{font-family:Consolas,Menlo,Ubuntu Mono,monospace;white-space:nowrap;word-spacing:-3px}._tooltip-rows__diff-td{padding-left:3px;padding-right:3px}._tooltip-rows__comment-left-td{position:relative}._tooltip-rows__comment-left-div{bottom:6px;left:2px;position:absolute;top:-7px;width:10px}._tooltip-rows__comment-div{color:#aaa;font-size:10px;font-weight:400;letter-spacing:.2px;line-height:1.3;padding-left:14px;position:relative;text-align:left;white-space:normal;width:auto}._tooltip-rows__bubble-td{width:28px}._tooltip-rows__value-td{font-family:Consolas,Menlo,Ubuntu Mono,monospace;padding-left:12px;white-space:nowrap;word-spacing:-3px}._tooltip-rows__value-td_selected{text-decoration:underline}._tooltip-rows__name-td{max-width:400px;overflow:hidden;padding-left:10px;text-align:left;text-overflow:ellipsis;white-space:nowrap}._tooltip-rows__name-td_selected{text-decoration:underline}._tooltip-rows__summ-td{border-top:1px solid var(--g-color-line-generic);color:var(--g-color-text-secondary);font-size:12px;padding:6px 0 6px 3px}._tooltip-rows__summ-td-value{font-family:Consolas,Menlo,Ubuntu Mono,monospace;word-spacing:-3px}._tooltip-rows__summ-td:first-child{padding-left:15px;text-align:left}._tooltip-rows__summ-td:last-child{padding-right:18px;text-align:right}._tooltip-left__td{vertical-align:top}._tooltip-right__td{border-left:1px solid var(--g-color-line-generic);font-size:8pt;max-width:150px;min-width:120px;opacity:.9;padding-left:10px;position:relative;vertical-align:top;white-space:normal}._tooltip-right__holiday-div{align-items:center;display:flex;padding-bottom:5px;text-align:left}._tooltip-right__holiday-emoji{font-size:20px}._tooltip-right__holiday-region{color:#fff;display:inline-block;letter-spacing:1px;padding-left:5px}._tooltip-right__traf-div{border-top:3px solid;font-size:10px;line-height:1.3;margin-top:9px;padding-bottom:10px;padding-top:3px;text-align:left;white-space:pre-line;word-break:break-word}._tooltip-right__traf-div_for-split-tooltip{border-left:2px solid;border-top:none;color:var(--g-color-text-secondary);margin-bottom:5px;margin-left:6px;margin-top:0;padding-bottom:0;padding-left:8px;padding-top:0}._tooltip-right__traf-div:not(:first-child){margin-top:7px}._tooltip-right__margin-bot{margin-bottom:7px} \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/css/8424.308a04db.chunk.css b/ydb/core/viewer/monitoring/static/css/8424.308a04db.chunk.css new file mode 100644 index 000000000000..7ba7f8a2bc9e --- /dev/null +++ b/ydb/core/viewer/monitoring/static/css/8424.308a04db.chunk.css @@ -0,0 +1 @@ +.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{background-color:var(--vscode-editorBracketMatch-background);border:1px solid var(--vscode-editorBracketMatch-border);box-sizing:border-box}.inline-editor-progress-decoration{display:inline-block;height:1em;width:1em}.inline-progress-widget{align-items:center;display:flex!important;justify-content:center}.inline-progress-widget .icon{font-size:80%!important}.inline-progress-widget:hover .icon{animation:none;font-size:90%!important}.inline-progress-widget:hover .icon:before{content:"\ea76"}.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}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:fadeIn .15s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-inputValidation-infoBorder);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground);padding:2px 4px}.monaco-editor .monaco-editor-overlaymessage .message p{margin-block:0}.monaco-editor .monaco-editor-overlaymessage .message a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-editor-overlaymessage .message a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .monaco-editor-overlaymessage .message{border-width:2px}.monaco-editor .monaco-editor-overlaymessage .anchor{border:8px solid #0000;height:0!important;left:2px;position:absolute;width:0!important;z-index:1000}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.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}.post-edit-widget{background-color:var(--vscode-editorWidget-background);border:1px solid #0000;border:1px solid var(--vscode-widget-border,#0000);border-radius:4px;box-shadow:0 0 8px 2px var(--vscode-widget-shadow);overflow:hidden}.post-edit-widget .monaco-button{border:none;border-radius:0;padding:2px}.post-edit-widget .monaco-button:hover{background-color:var(--vscode-button-secondaryHoverBackground)!important}.post-edit-widget .monaco-button .codicon{margin:0}@font-face{font-display:block;font-family:codicon;src:url(../../static/media/codicon.762fced46d6cddbda272.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;text-transform:none;user-select:none;-webkit-user-select:none}.codicon-wrench-subaction{opacity:.5}@keyframes codicon-spin{to{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{animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.monaco-editor .codicon.codicon-symbol-array,.monaco-workbench .codicon.codicon-symbol-array{color:var(--vscode-symbolIcon-arrayForeground)}.monaco-editor .codicon.codicon-symbol-boolean,.monaco-workbench .codicon.codicon-symbol-boolean{color:var(--vscode-symbolIcon-booleanForeground)}.monaco-editor .codicon.codicon-symbol-class,.monaco-workbench .codicon.codicon-symbol-class{color:var(--vscode-symbolIcon-classForeground)}.monaco-editor .codicon.codicon-symbol-method,.monaco-workbench .codicon.codicon-symbol-method{color:var(--vscode-symbolIcon-methodForeground)}.monaco-editor .codicon.codicon-symbol-color,.monaco-workbench .codicon.codicon-symbol-color{color:var(--vscode-symbolIcon-colorForeground)}.monaco-editor .codicon.codicon-symbol-constant,.monaco-workbench .codicon.codicon-symbol-constant{color:var(--vscode-symbolIcon-constantForeground)}.monaco-editor .codicon.codicon-symbol-constructor,.monaco-workbench .codicon.codicon-symbol-constructor{color:var(--vscode-symbolIcon-constructorForeground)}.monaco-editor .codicon.codicon-symbol-enum,.monaco-editor .codicon.codicon-symbol-value,.monaco-workbench .codicon.codicon-symbol-enum,.monaco-workbench .codicon.codicon-symbol-value{color:var(--vscode-symbolIcon-enumeratorForeground)}.monaco-editor .codicon.codicon-symbol-enum-member,.monaco-workbench .codicon.codicon-symbol-enum-member{color:var(--vscode-symbolIcon-enumeratorMemberForeground)}.monaco-editor .codicon.codicon-symbol-event,.monaco-workbench .codicon.codicon-symbol-event{color:var(--vscode-symbolIcon-eventForeground)}.monaco-editor .codicon.codicon-symbol-field,.monaco-workbench .codicon.codicon-symbol-field{color:var(--vscode-symbolIcon-fieldForeground)}.monaco-editor .codicon.codicon-symbol-file,.monaco-workbench .codicon.codicon-symbol-file{color:var(--vscode-symbolIcon-fileForeground)}.monaco-editor .codicon.codicon-symbol-folder,.monaco-workbench .codicon.codicon-symbol-folder{color:var(--vscode-symbolIcon-folderForeground)}.monaco-editor .codicon.codicon-symbol-function,.monaco-workbench .codicon.codicon-symbol-function{color:var(--vscode-symbolIcon-functionForeground)}.monaco-editor .codicon.codicon-symbol-interface,.monaco-workbench .codicon.codicon-symbol-interface{color:var(--vscode-symbolIcon-interfaceForeground)}.monaco-editor .codicon.codicon-symbol-key,.monaco-workbench .codicon.codicon-symbol-key{color:var(--vscode-symbolIcon-keyForeground)}.monaco-editor .codicon.codicon-symbol-keyword,.monaco-workbench .codicon.codicon-symbol-keyword{color:var(--vscode-symbolIcon-keywordForeground)}.monaco-editor .codicon.codicon-symbol-module,.monaco-workbench .codicon.codicon-symbol-module{color:var(--vscode-symbolIcon-moduleForeground)}.monaco-editor .codicon.codicon-symbol-namespace,.monaco-workbench .codicon.codicon-symbol-namespace{color:var(--vscode-symbolIcon-namespaceForeground)}.monaco-editor .codicon.codicon-symbol-null,.monaco-workbench .codicon.codicon-symbol-null{color:var(--vscode-symbolIcon-nullForeground)}.monaco-editor .codicon.codicon-symbol-number,.monaco-workbench .codicon.codicon-symbol-number{color:var(--vscode-symbolIcon-numberForeground)}.monaco-editor .codicon.codicon-symbol-object,.monaco-workbench .codicon.codicon-symbol-object{color:var(--vscode-symbolIcon-objectForeground)}.monaco-editor .codicon.codicon-symbol-operator,.monaco-workbench .codicon.codicon-symbol-operator{color:var(--vscode-symbolIcon-operatorForeground)}.monaco-editor .codicon.codicon-symbol-package,.monaco-workbench .codicon.codicon-symbol-package{color:var(--vscode-symbolIcon-packageForeground)}.monaco-editor .codicon.codicon-symbol-property,.monaco-workbench .codicon.codicon-symbol-property{color:var(--vscode-symbolIcon-propertyForeground)}.monaco-editor .codicon.codicon-symbol-reference,.monaco-workbench .codicon.codicon-symbol-reference{color:var(--vscode-symbolIcon-referenceForeground)}.monaco-editor .codicon.codicon-symbol-snippet,.monaco-workbench .codicon.codicon-symbol-snippet{color:var(--vscode-symbolIcon-snippetForeground)}.monaco-editor .codicon.codicon-symbol-string,.monaco-workbench .codicon.codicon-symbol-string{color:var(--vscode-symbolIcon-stringForeground)}.monaco-editor .codicon.codicon-symbol-struct,.monaco-workbench .codicon.codicon-symbol-struct{color:var(--vscode-symbolIcon-structForeground)}.monaco-editor .codicon.codicon-symbol-text,.monaco-workbench .codicon.codicon-symbol-text{color:var(--vscode-symbolIcon-textForeground)}.monaco-editor .codicon.codicon-symbol-type-parameter,.monaco-workbench .codicon.codicon-symbol-type-parameter{color:var(--vscode-symbolIcon-typeParameterForeground)}.monaco-editor .codicon.codicon-symbol-unit,.monaco-workbench .codicon.codicon-symbol-unit{color:var(--vscode-symbolIcon-unitForeground)}.monaco-editor .codicon.codicon-symbol-variable,.monaco-workbench .codicon.codicon-symbol-variable{color:var(--vscode-symbolIcon-variableForeground)}.monaco-editor .lightBulbWidget{align-items:center;display:flex;justify-content:center}.monaco-editor .lightBulbWidget:hover{cursor:pointer}.monaco-editor .lightBulbWidget.codicon-light-bulb,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix{color:var(--vscode-editorLightBulb-foreground);color:var(--vscode-editorLightBulbAutoFix-foreground,var(--vscode-editorLightBulb-foreground))}.monaco-editor .lightBulbWidget.codicon-sparkle-filled{color:var(--vscode-icon-foreground);color:var(--vscode-editorLightBulbAi-foreground,var(--vscode-icon-foreground))}.monaco-editor .lightBulbWidget:before{position:relative;z-index:2}.monaco-editor .lightBulbWidget:after{background-color:var(--vscode-editor-background);content:"";display:block;height:100%;left:0;opacity:.3;position:absolute;top:0;width:100%;z-index:1}.action-widget{background-color:var(--vscode-editorWidget-background);border:1px solid var(--vscode-editorWidget-border)!important;border-radius:0;border-radius:2px;color:var(--vscode-editorWidget-foreground);display:block;font-size:13px;max-width:80vw;min-width:160px;width:100%;z-index:40}.context-view-block{z-index:-1}.context-view-block,.context-view-pointerBlock{cursor:auto;height:100%;left:0;position:fixed;top:0;width:100%}.context-view-pointerBlock{z-index:2}.action-widget .monaco-list{border:0!important;user-select:none;-webkit-user-select:none}.action-widget .monaco-list:focus:before{outline:0!important}.action-widget .monaco-list .monaco-scrollable-element{overflow:visible}.action-widget .monaco-list .monaco-list-row{cursor:pointer;padding:0 10px;touch-action:none;white-space:nowrap;width:100%}.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled){background-color:var(--vscode-quickInputList-focusBackground)!important;color:var(--vscode-quickInputList-focusForeground);outline:1px solid #0000;outline:1px solid var(--vscode-menu-selectionBorder,#0000);outline-offset:-1px}.action-widget .monaco-list-row.group-header{color:var(--vscode-descriptionForeground)!important;font-weight:600}.action-widget .monaco-list .group-header,.action-widget .monaco-list .option-disabled,.action-widget .monaco-list .option-disabled .focused,.action-widget .monaco-list .option-disabled .focused:before,.action-widget .monaco-list .option-disabled:before{-webkit-touch-callout:none;background-color:initial!important;cursor:default!important;outline:0 solid!important;-webkit-user-select:none;user-select:none}.action-widget .monaco-list-row.action{align-items:center;display:flex;gap:6px}.action-widget .monaco-list-row.action.option-disabled,.action-widget .monaco-list-row.action.option-disabled .codicon,.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled{color:var(--vscode-disabledForeground)}.action-widget .monaco-list-row.action:not(.option-disabled) .codicon{color:inherit}.action-widget .monaco-list-row.action .title{flex:1 1;overflow:hidden;text-overflow:ellipsis}.action-widget .monaco-list-row.action .monaco-keybinding>.monaco-keybinding-key{background-color:var(--vscode-keybindingLabel-background);border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);border-radius:3px;border-style:solid;border-width:1px;box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);color:var(--vscode-keybindingLabel-foreground)}.action-widget .action-widget-action-bar{background-color:var(--vscode-editorHoverWidget-statusBarBackground);border-top:1px solid var(--vscode-editorHoverWidget-border)}.action-widget .action-widget-action-bar:before{content:"";display:block;width:100%}.action-widget .action-widget-action-bar .actions-container{padding:0 8px}.action-widget-action-bar .action-label{color:var(--vscode-textLink-activeForeground);font-size:12px;line-height:22px;padding:0;pointer-events:all}.action-widget-action-bar .action-item{margin-right:16px;pointer-events:none}.action-widget-action-bar .action-label:hover{background-color:initial!important}.monaco-action-bar .actions-container.highlight-toggled .action-label.checked{background:var(--vscode-actionBar-toggledBackground)!important}.monaco-editor .codelens-decoration{font-feature-settings:var(--vscode-editorCodeLens-fontFeatureSettings);color:var(--vscode-editorCodeLens-foreground);display:inline-block;font-family:var(--vscode-editorCodeLens-fontFamily),var(--vscode-editorCodeLens-fontFamilyDefault);font-size:var(--vscode-editorCodeLens-fontSize);line-height:var(--vscode-editorCodeLens-lineHeight);overflow:hidden;padding-right:calc(var(--vscode-editorCodeLens-fontSize)*.5);text-overflow:ellipsis;white-space:nowrap}.monaco-editor .codelens-decoration>a,.monaco-editor .codelens-decoration>span{user-select:none;-webkit-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>a:hover,.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon{color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);font-size:var(--vscode-editorCodeLens-fontSize);line-height:var(--vscode-editorCodeLens-lineHeight);vertical-align:middle}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:fadein .1s linear}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:.1em solid #000;box-sizing:border-box;cursor:pointer;display:inline-block;height:.8em;line-height:.8em;margin:.1em .2em 0;width:.8em}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:.1em solid #eee}.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{align-items:center;color:#fff;cursor:pointer;display:flex;flex:1 1;justify-content:center;line-height:24px;overflow:hidden;white-space:nowrap;width:240px}.colorpicker-header .picked-color .picked-color-presentation{margin-left:5px;margin-right:5px;white-space:nowrap}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{cursor:pointer;width:74px;z-index:inherit}.standalone-colorpicker{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground)}.colorpicker-header.standalone-colorpicker{border-bottom:none}.colorpicker-header .close-button{background-color:var(--vscode-editorHoverWidget-background);border-left:1px solid var(--vscode-editorHoverWidget-border);cursor:pointer}.colorpicker-header .close-button-inner-div{height:100%;text-align:center;width:100%}.colorpicker-header .close-button-inner-div:hover{background-color:var(--vscode-toolbar-hoverBackground)}.colorpicker-header .close-icon{padding:3px}.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 #000c;height:9px;margin:-5px 0 0 -5px;position:absolute;width:9px}.colorpicker-body .strip{height:150px;width:25px}.colorpicker-body .standalone-strip{height:122px;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 #ffffffb5;box-shadow:0 0 1px #000000d9;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}.colorpicker-body .standalone-strip .standalone-overlay{height:122px;pointer-events:none}.standalone-colorpicker-body{border:1px solid #0000;border-bottom:1px solid var(--vscode-editorHoverWidget-border);display:block;overflow:hidden}.colorpicker-body .insert-button{background:var(--vscode-button-background);border:none;border-radius:2px;bottom:8px;color:var(--vscode-button-foreground);cursor:pointer;height:20px;padding:0;position:absolute;right:8px;width:58px}.colorpicker-body .insert-button:hover{background:var(--vscode-button-hoverBackground)}.monaco-editor .goto-definition-link{color:var(--vscode-editorLink-activeForeground)!important;cursor:pointer;text-decoration:underline}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;flex-wrap:nowrap;justify-content:space-between}.monaco-editor .peekview-widget .head .peekview-title{align-items:baseline;display:flex;font-size:13px;margin-left:20px;min-width:0;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title.clickable{cursor:pointer}.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 .filename,.monaco-editor .peekview-widget .head .peekview-title .meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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{align-self:center;margin-right:4px}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon{color:inherit!important}.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-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{background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground);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{color:var(--vscode-peekViewResult-fileForeground);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 .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-left:auto;margin-right:12px}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input,.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted #0000;border:1px dotted var(--vscode-contrastActiveBorder,#0000);box-sizing:border-box}.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;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 #0000;color:var(--vscode-textLink-activeForeground);text-decoration:underline;text-underline-position:under}.monaco-editor .marker-widget .descriptioncontainer .filename{color:var(--vscode-textLink-activeForeground);cursor:pointer}.extension-editor .codicon.codicon-error,.extensions-viewlet>.extensions .codicon.codicon-error,.markers-panel .marker-icon .codicon.codicon-error,.markers-panel .marker-icon.error,.monaco-editor .zone-widget .codicon.codicon-error,.preferences-editor .codicon.codicon-error,.text-search-provider-messages .providerMessage .codicon.codicon-error{color:var(--vscode-problemsErrorIcon-foreground)}.extension-editor .codicon.codicon-warning,.extensions-viewlet>.extensions .codicon.codicon-warning,.markers-panel .marker-icon .codicon.codicon-warning,.markers-panel .marker-icon.warning,.monaco-editor .zone-widget .codicon.codicon-warning,.preferences-editor .codicon.codicon-warning,.text-search-provider-messages .providerMessage .codicon.codicon-warning{color:var(--vscode-problemsWarningIcon-foreground)}.extension-editor .codicon.codicon-info,.extensions-viewlet>.extensions .codicon.codicon-info,.markers-panel .marker-icon .codicon.codicon-info,.markers-panel .marker-icon.info,.monaco-editor .zone-widget .codicon.codicon-info,.preferences-editor .codicon.codicon-info,.text-search-provider-messages .providerMessage .codicon.codicon-info{color:var(--vscode-problemsInfoIcon-foreground)}.monaco-editor .inlineSuggestionsHints.withBorder{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);z-index:39}.monaco-editor .inlineSuggestionsHints a,.monaco-editor .inlineSuggestionsHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineSuggestionsHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a{display:flex;justify-content:center;min-width:19px}.monaco-editor .inlineSuggestionStatusBarItemLabel{margin-right:2px}.monaco-editor .hoverHighlight{background-color:var(--vscode-editor-hoverHighlightBackground)}.monaco-editor .monaco-hover{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground)}.monaco-editor .monaco-hover a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .monaco-hover .hover-row .actions{background-color:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-editor .monaco-hover code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor.hc-light .dnd-target,.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.hc-light.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.hc-light.mac.mouse-copy .view-lines,.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines{cursor:copy}.monaco-editor .findOptionsWidget{border:2px solid var(--vscode-contrastBorder)}.monaco-editor .find-widget,.monaco-editor .findOptionsWidget{background-color:var(--vscode-editorWidget-background);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);color:var(--vscode-editorWidget-foreground)}.monaco-editor .find-widget{border-bottom:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-left:1px solid var(--vscode-widget-border);border-right:1px solid var(--vscode-widget-border);box-sizing:border-box;height:33px;line-height:19px;overflow:hidden;padding:0 4px;position:absolute;transform:translateY(calc(-100% - 10px));transition:transform .2s linear;z-index:35}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.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{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-color:var(--vscode-focusBorder);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:3px 25px 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;border-radius:5px;cursor:pointer;display:flex;flex:initial;height:16px;justify-content:center;margin-left:3px;padding:3px;width:16px}.monaco-editor .find-widget .codicon-find-selection{border-radius:5px;height:22px;padding:3px;width:22px}.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{border-radius:0;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{color:var(--vscode-disabledForeground);cursor:default}.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 .find-widget.no-results .matchesCount{color:var(--vscode-errorForeground)}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important;background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor .currentFindMatch{background-color:var(--vscode-editor-findMatchBackground);border:2px solid var(--vscode-editor-findMatchBorder);box-sizing:border-box;padding:1px}.monaco-editor .findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor .find-widget .monaco-sash{background-color:var(--vscode-editorWidget-border);background-color:var(--vscode-editorWidget-resizeBorder,var(--vscode-editorWidget-border));left:0!important}.monaco-editor.hc-black .find-widget .button:before{left:2px;position:relative;top:1px}.monaco-editor .find-widget .button:not(.disabled):hover,.monaco-editor .find-widget .codicon-find-selection:hover{background-color:var(--vscode-toolbar-hoverBackground)!important}.monaco-editor.findMatch{background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor.currentFindMatch{background-color:var(--vscode-editor-findMatchBackground)}.monaco-editor.findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor.findMatch{background-color:var(--vscode-editorWidget-background)}.monaco-editor .find-widget>.button.codicon-widget-close{position:absolute;right:4px;top:5px}.monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{align-items:center;cursor:pointer;display:flex;font-size:140%;justify-content:center;margin-left:2px;opacity:0;transition:opacity .5s}.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{transition:none 0s ease 0s;transition:initial}.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays:hover .codicon{opacity:1}.monaco-editor .inline-folded:after{color:grey;content:"\22EF";cursor:pointer;display:inline;line-height:1em;margin:.1em .2em 0}.monaco-editor .folded-background{background-color:var(--vscode-editor-foldBackground)}.monaco-editor .cldr.codicon.codicon-folding-collapsed,.monaco-editor .cldr.codicon.codicon-folding-expanded,.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed,.monaco-editor .cldr.codicon.codicon-folding-manual-expanded{color:var(--vscode-editorGutter-foldingControlForeground)!important}.monaco-editor .suggest-preview-additional-widget{white-space:nowrap}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:#0000;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{cursor:pointer;display:inline-block;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden{font-size:0;opacity:0}.monaco-editor .ghost-text-decoration,.monaco-editor .suggest-preview-text .ghost-text{font-style:italic}.monaco-editor .ghost-text-decoration,.monaco-editor .ghost-text-decoration-preview,.monaco-editor .suggest-preview-text .ghost-text{background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border);color:var(--vscode-editorGhostText-foreground)!important}.monaco-editor .snippet-placeholder{background-color:initial;background-color:var(--vscode-editor-snippetTabstopHighlightBackground,#0000);min-width:2px;outline-color:#0000;outline-color:var(--vscode-editor-snippetTabstopHighlightBorder,#0000);outline-style:solid;outline-width:1px}.monaco-editor .finish-snippet-placeholder{background-color:initial;background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground,#0000);outline-color:#0000;outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder,#0000);outline-style:solid;outline-width:1px}.monaco-editor .suggest-widget{border-radius:3px;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{background-color:var(--vscode-editorSuggestWidget-background);border-color:var(--vscode-editorSuggestWidget-border);border-style:solid;border-width:1px;flex:0 1 auto;width:100%}.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-light .suggest-details,.monaco-editor.hc-light .suggest-widget{border-width:2px}.monaco-editor .suggest-widget .suggest-status-bar{border-top:1px solid var(--vscode-editorSuggestWidget-border);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:var(--vscode-editorSuggestWidgetStatus-foreground)}.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}.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.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.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 .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.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>.right>.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{opacity:.6;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{align-self:center;font-size:85%;line-height:normal;margin-left:12px;opacity:.4;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;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.focused: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-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 .monaco-list .monaco-list-row.focused: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{color:var(--vscode-editorSuggestWidget-foreground);cursor:default;display:flex;flex-direction:column}.monaco-editor .suggest-details.focused{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details a{color:var(--vscode-textLink-foreground)}.monaco-editor .suggest-details a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background)}.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;overflow:hidden}.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.markdown-docs .monaco-tokenized-source{white-space:pre}.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.vs .valueSetReplacement{outline:solid 2px var(--vscode-editorBracketMatch-border)}.monaco-editor .linked-editing-decoration{background-color:var(--vscode-editor-linkedEditingBackground);min-width:1px}.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{color:var(--vscode-editorLink-activeForeground)!important;cursor:pointer}.monaco-editor .focused .selectionHighlight{background-color:var(--vscode-editor-selectionHighlightBackground);border:1px solid var(--vscode-editor-selectionHighlightBorder);box-sizing:border-box}.monaco-editor.hc-black .focused .selectionHighlight,.monaco-editor.hc-light .focused .selectionHighlight{border-style:dotted}.monaco-editor .wordHighlight{background-color:var(--vscode-editor-wordHighlightBackground);border:1px solid var(--vscode-editor-wordHighlightBorder);box-sizing:border-box}.monaco-editor.hc-black .wordHighlight,.monaco-editor.hc-light .wordHighlight{border-style:dotted}.monaco-editor .wordHighlightStrong{background-color:var(--vscode-editor-wordHighlightStrongBackground);border:1px solid var(--vscode-editor-wordHighlightStrongBorder);box-sizing:border-box}.monaco-editor.hc-black .wordHighlightStrong,.monaco-editor.hc-light .wordHighlightStrong{border-style:dotted}.monaco-editor .wordHighlightText{background-color:var(--vscode-editor-wordHighlightTextBackground);border:1px solid var(--vscode-editor-wordHighlightTextBorder);box-sizing:border-box}.monaco-editor.hc-black .wordHighlightText,.monaco-editor.hc-light .wordHighlightText{border-style:dotted}.monaco-editor .inline-edit-remove{background-color:var(--vscode-editorGhostText-background);font-style:italic;text-decoration:line-through}.monaco-editor .inline-edit-remove.backgroundColoring{background-color:var(--vscode-diffEditor-removedLineBackground)}.monaco-editor .inline-edit-hidden{font-size:0;opacity:0}.monaco-editor .inline-edit-decoration,.monaco-editor .suggest-preview-text .inline-edit{font-style:italic}.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .inline-edit-decoration,.monaco-editor .inline-edit-decoration-preview,.monaco-editor .suggest-preview-text .inline-edit{background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border);color:var(--vscode-editorGhostText-foreground)!important}.monaco-editor .inlineEditHints.withBorder{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);z-index:39}.monaco-editor .inlineEditHints a,.monaco-editor .inlineEditHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineEditHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineEditHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineEditStatusBarItemLabel{margin-right:2px}.monaco-editor .parameter-hints-widget{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);cursor:default;display:flex;flex-direction:column;line-height:1.5em;z-index:39}.hc-black .monaco-editor .parameter-hints-widget,.hc-light .monaco-editor .parameter-hints-widget{border-width:2px}.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.multiple .body:before{border-left:1px solid var(--vscode-editorHoverWidget-border);content:"";display:block;height:100%;opacity:.5;position:absolute}.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;position:relative}.monaco-editor .parameter-hints-widget .signature.has-docs:after{border-bottom:1px solid var(--vscode-editorHoverWidget-border);content:"";display:block;left:0;opacity:.5;padding-top:4px;position:absolute;width:100%}.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 a{color:var(--vscode-textLink-foreground)}.monaco-editor .parameter-hints-widget .docs a:hover{color:var(--vscode-textLink-activeForeground);cursor:pointer}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:normal}.monaco-editor .parameter-hints-widget .docs code{background-color:var(--vscode-textCodeBlock-background);border-radius:3px;font-family:var(--monaco-monospace-font);padding:0 .4em}.monaco-editor .parameter-hints-widget .docs .code,.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source{white-space:pre-wrap}.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;text-align:center}.monaco-editor .parameter-hints-widget .signature .parameter.active{color:var(--vscode-editorHoverWidget-highlightForeground);font-weight:700}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .rename-box{border-radius:4px;color:inherit;z-index:100}.monaco-editor .rename-box.preview{padding:4px 4px 0}.monaco-editor .rename-box .rename-input{border-radius:2px;padding:3px;width:calc(100% - 8px)}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .sticky-widget{overflow:hidden}.monaco-editor .sticky-widget-line-numbers{background-color:inherit;float:left}.monaco-editor .sticky-widget-lines-scrollable{background-color:inherit;display:inline-block;overflow:hidden;position:absolute;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-widget-lines{background-color:inherit;position:absolute}.monaco-editor .sticky-line-content,.monaco-editor .sticky-line-number{background-color:inherit;color:var(--vscode-editorLineNumber-foreground);display:inline-block;position:absolute;white-space:nowrap}.monaco-editor .sticky-line-number .codicon-folding-collapsed,.monaco-editor .sticky-line-number .codicon-folding-expanded{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{background-color:inherit;white-space:nowrap;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor .sticky-widget{border-bottom:1px solid var(--vscode-editorStickyScroll-border)}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget{background-color:var(--vscode-editorStickyScroll-background);box-shadow:var(--vscode-editorStickyScroll-shadow) 0 3px 2px -2px;width:100%;z-index:4}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}.monaco-editor .unicode-highlight{background-color:var(--vscode-editorUnicodeHighlight-background);border:1px solid var(--vscode-editorUnicodeHighlight-border);box-sizing:border-box}.editor-banner{background:var(--vscode-banner-background);box-sizing:border-box;cursor:default;display:flex;font-size:12px;height:26px;overflow:visible;width:100%}.editor-banner .icon-container{align-items:center;display:flex;flex-shrink:0;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-position:50%;background-repeat:no-repeat;background-size:16px;margin:0 6px 0 10px;padding:0;width:16px}.editor-banner .message-container{align-items:center;display:flex;line-height:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-banner .message-container p{margin-block-end:0;margin-block-start:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{margin:2px 8px;padding:0 12px;width:inherit}.editor-banner .message-actions-container a{margin-left:12px;padding:3px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner{background-color:var(--vscode-banner-background)}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-link{color:var(--vscode-textLink-foreground)}.monaco-link:hover{color:var(--vscode-textLink-activeForeground)}.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{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);padding:10px;user-select:text;-webkit-user-select:text;z-index:50}.monaco-editor.hc-black .tokens-inspect-widget,.monaco-editor.hc-light .tokens-inspect-widget{border-width:2px}.monaco-editor .tokens-inspect-widget .tokens-inspect-separator{background-color:var(--vscode-editorHoverWidget-border);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)} \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/css/8546.65946fb2.chunk.css b/ydb/core/viewer/monitoring/static/css/8546.65946fb2.chunk.css deleted file mode 100644 index d9274e2adca3..000000000000 --- a/ydb/core/viewer/monitoring/static/css/8546.65946fb2.chunk.css +++ /dev/null @@ -1,2 +0,0 @@ -.yc-card{--yc-card-box-shadow:none;--yc-card-border-radius:8px;background-color:initial;border-radius:var(--yc-card-border-radius);box-shadow:var(--yc-card-box-shadow);box-sizing:border-box;outline:none}.yc-card_type_action{--yc-card-box-shadow:0px 1px 5px var(--g-color-sfx-shadow);background-color:var(--g-color-base-float)}.yc-card_type_action:after{border-radius:var(--yc-card-border-radius);bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.yc-card_type_action.yc-card_clickable{cursor:pointer;position:relative}.yc-card_type_action.yc-card_clickable:hover{--yc-card-box-shadow:0px 3px 10px var(--g-color-sfx-shadow)}.yc-card_type_action.yc-card_clickable:focus:after{box-shadow:0 0 0 2px var(--g-color-line-focus);content:""}.yc-card_type_action.yc-card_clickable:focus:not(:focus-visible):after{box-shadow:none}.yc-card_type_selection{border:1px solid var(--g-color-line-generic);position:relative}.yc-card_type_selection:before{bottom:-1px;left:-1px;right:-1px;top:-1px}.yc-card_type_selection:after,.yc-card_type_selection:before{border-radius:var(--yc-card-border-radius);pointer-events:none;position:absolute}.yc-card_type_selection:after{bottom:0;left:0;right:0;top:0}.yc-card_type_selection.yc-card_clickable{cursor:pointer}.yc-card_type_selection.yc-card_clickable:hover{border-color:transparent}.yc-card_type_selection.yc-card_clickable:hover:before{border:2px solid var(--g-color-line-brand);content:"";opacity:.5}.yc-card_type_selection.yc-card_clickable:hover:focus-visible:before{border-color:transparent}.yc-card_type_selection.yc-card_clickable:focus:after{box-shadow:0 0 0 2px var(--g-color-line-focus);content:""}.yc-card_type_selection.yc-card_clickable:focus:not(:focus-visible):after{box-shadow:none}.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(--g-color-line-brand);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(--g-color-line-generic)}.yc-card_type_container.yc-card_theme_normal.yc-card_view_filled{background-color:var(--g-color-base-generic)}.yc-card_type_container.yc-card_theme_info.yc-card_view_outlined{border:1px solid var(--g-color-line-info)}.yc-card_type_container.yc-card_theme_info.yc-card_view_filled{background-color:var(--g-color-base-info-light)}.yc-card_type_container.yc-card_theme_positive.yc-card_view_outlined,.yc-card_type_container.yc-card_theme_success.yc-card_view_outlined{border:1px solid var(--g-color-line-positive)}.yc-card_type_container.yc-card_theme_positive.yc-card_view_filled,.yc-card_type_container.yc-card_theme_success.yc-card_view_filled{background-color:var(--g-color-base-positive-light)}.yc-card_type_container.yc-card_theme_warning.yc-card_view_outlined{border:1px solid var(--g-color-line-warning)}.yc-card_type_container.yc-card_theme_warning.yc-card_view_filled{background-color:var(--g-color-base-warning-light)}.yc-card_type_container.yc-card_theme_danger.yc-card_view_outlined{border:1px solid var(--g-color-line-danger)}.yc-card_type_container.yc-card_theme_danger.yc-card_view_filled{background-color:var(--g-color-base-danger-light)}.yc-card_type_container.yc-card_theme_utility.yc-card_view_outlined{border:1px solid var(--g-color-line-utility)}.yc-card_type_container.yc-card_theme_utility.yc-card_view_filled{background-color:var(--g-color-base-utility-light)}.yc-card_type_container.yc-card_view_raised{background-color:var(--g-color-base-float)}.yc-card_type_container.yc-card_view_raised.yc-card_size_m{--yc-card-box-shadow:0px 1px 5px var(--g-color-sfx-shadow)}.yc-card_type_container.yc-card_view_raised.yc-card_size_l{--yc-card-box-shadow:0px 1px 6px var(--g-color-sfx-shadow-light),1px 3px 13px var(--g-color-sfx-shadow-light)}.yc-card_size_m{--yc-card-border-radius:8px}.yc-card_size_l{--yc-card-border-radius:16px}.yc-alert{--yc-alert-border-radius:var(--yc-card-border-radius,8px);border-radius:var(--yc-alert-border-radius)}.yc-alert_corners_square{--yc-alert-border-radius:0px}.yc-alert__text-content{width:100%}.yc-alert__actions_minContent{width:-webkit-min-content;width:min-content}.yc-s__m_0{margin:var(--g-spacing-0)}.yc-s__mr_0{margin-right:var(--g-spacing-0)}.yc-s__ml_0{margin-left:var(--g-spacing-0)}.yc-s__mt_0{margin-top:var(--g-spacing-0)}.yc-s__mb_0{margin-bottom:var(--g-spacing-0)}.yc-s__mx_0{margin-left:var(--g-spacing-0);margin-right:var(--g-spacing-0)}.yc-s__my_0{margin-bottom:var(--g-spacing-0);margin-top:var(--g-spacing-0)}.yc-s__p_0{padding:var(--g-spacing-0)}.yc-s__pl_0{padding-left:var(--g-spacing-0)}.yc-s__pr_0{padding-right:var(--g-spacing-0)}.yc-s__pb_0{padding-bottom:var(--g-spacing-0)}.yc-s__pt_0,.yc-s__py_0{padding-top:var(--g-spacing-0)}.yc-s__py_0{padding-bottom:var(--g-spacing-0)}.yc-s__px_0{padding-left:var(--g-spacing-0);padding-right:var(--g-spacing-0)}.yc-s__m_half{margin:var(--g-spacing-half)}.yc-s__mr_half{margin-right:var(--g-spacing-half)}.yc-s__ml_half{margin-left:var(--g-spacing-half)}.yc-s__mt_half{margin-top:var(--g-spacing-half)}.yc-s__mb_half{margin-bottom:var(--g-spacing-half)}.yc-s__mx_half{margin-left:var(--g-spacing-half);margin-right:var(--g-spacing-half)}.yc-s__my_half{margin-bottom:var(--g-spacing-half);margin-top:var(--g-spacing-half)}.yc-s__p_half{padding:var(--g-spacing-half)}.yc-s__pl_half{padding-left:var(--g-spacing-half)}.yc-s__pr_half{padding-right:var(--g-spacing-half)}.yc-s__pb_half{padding-bottom:var(--g-spacing-half)}.yc-s__pt_half,.yc-s__py_half{padding-top:var(--g-spacing-half)}.yc-s__py_half{padding-bottom:var(--g-spacing-half)}.yc-s__px_half{padding-left:var(--g-spacing-half);padding-right:var(--g-spacing-half)}.yc-s__m_1{margin:var(--g-spacing-1)}.yc-s__mr_1{margin-right:var(--g-spacing-1)}.yc-s__ml_1{margin-left:var(--g-spacing-1)}.yc-s__mt_1{margin-top:var(--g-spacing-1)}.yc-s__mb_1{margin-bottom:var(--g-spacing-1)}.yc-s__mx_1{margin-left:var(--g-spacing-1);margin-right:var(--g-spacing-1)}.yc-s__my_1{margin-bottom:var(--g-spacing-1);margin-top:var(--g-spacing-1)}.yc-s__p_1{padding:var(--g-spacing-1)}.yc-s__pl_1{padding-left:var(--g-spacing-1)}.yc-s__pr_1{padding-right:var(--g-spacing-1)}.yc-s__pb_1{padding-bottom:var(--g-spacing-1)}.yc-s__pt_1,.yc-s__py_1{padding-top:var(--g-spacing-1)}.yc-s__py_1{padding-bottom:var(--g-spacing-1)}.yc-s__px_1{padding-left:var(--g-spacing-1);padding-right:var(--g-spacing-1)}.yc-s__m_2{margin:var(--g-spacing-2)}.yc-s__mr_2{margin-right:var(--g-spacing-2)}.yc-s__ml_2{margin-left:var(--g-spacing-2)}.yc-s__mt_2{margin-top:var(--g-spacing-2)}.yc-s__mb_2{margin-bottom:var(--g-spacing-2)}.yc-s__mx_2{margin-left:var(--g-spacing-2);margin-right:var(--g-spacing-2)}.yc-s__my_2{margin-bottom:var(--g-spacing-2);margin-top:var(--g-spacing-2)}.yc-s__p_2{padding:var(--g-spacing-2)}.yc-s__pl_2{padding-left:var(--g-spacing-2)}.yc-s__pr_2{padding-right:var(--g-spacing-2)}.yc-s__pb_2{padding-bottom:var(--g-spacing-2)}.yc-s__pt_2,.yc-s__py_2{padding-top:var(--g-spacing-2)}.yc-s__py_2{padding-bottom:var(--g-spacing-2)}.yc-s__px_2{padding-left:var(--g-spacing-2);padding-right:var(--g-spacing-2)}.yc-s__m_3{margin:var(--g-spacing-3)}.yc-s__mr_3{margin-right:var(--g-spacing-3)}.yc-s__ml_3{margin-left:var(--g-spacing-3)}.yc-s__mt_3{margin-top:var(--g-spacing-3)}.yc-s__mb_3{margin-bottom:var(--g-spacing-3)}.yc-s__mx_3{margin-left:var(--g-spacing-3);margin-right:var(--g-spacing-3)}.yc-s__my_3{margin-bottom:var(--g-spacing-3);margin-top:var(--g-spacing-3)}.yc-s__p_3{padding:var(--g-spacing-3)}.yc-s__pl_3{padding-left:var(--g-spacing-3)}.yc-s__pr_3{padding-right:var(--g-spacing-3)}.yc-s__pb_3{padding-bottom:var(--g-spacing-3)}.yc-s__pt_3,.yc-s__py_3{padding-top:var(--g-spacing-3)}.yc-s__py_3{padding-bottom:var(--g-spacing-3)}.yc-s__px_3{padding-left:var(--g-spacing-3);padding-right:var(--g-spacing-3)}.yc-s__m_4{margin:var(--g-spacing-4)}.yc-s__mr_4{margin-right:var(--g-spacing-4)}.yc-s__ml_4{margin-left:var(--g-spacing-4)}.yc-s__mt_4{margin-top:var(--g-spacing-4)}.yc-s__mb_4{margin-bottom:var(--g-spacing-4)}.yc-s__mx_4{margin-left:var(--g-spacing-4);margin-right:var(--g-spacing-4)}.yc-s__my_4{margin-bottom:var(--g-spacing-4);margin-top:var(--g-spacing-4)}.yc-s__p_4{padding:var(--g-spacing-4)}.yc-s__pl_4{padding-left:var(--g-spacing-4)}.yc-s__pr_4{padding-right:var(--g-spacing-4)}.yc-s__pb_4{padding-bottom:var(--g-spacing-4)}.yc-s__pt_4,.yc-s__py_4{padding-top:var(--g-spacing-4)}.yc-s__py_4{padding-bottom:var(--g-spacing-4)}.yc-s__px_4{padding-left:var(--g-spacing-4);padding-right:var(--g-spacing-4)}.yc-s__m_5{margin:var(--g-spacing-5)}.yc-s__mr_5{margin-right:var(--g-spacing-5)}.yc-s__ml_5{margin-left:var(--g-spacing-5)}.yc-s__mt_5{margin-top:var(--g-spacing-5)}.yc-s__mb_5{margin-bottom:var(--g-spacing-5)}.yc-s__mx_5{margin-left:var(--g-spacing-5);margin-right:var(--g-spacing-5)}.yc-s__my_5{margin-bottom:var(--g-spacing-5);margin-top:var(--g-spacing-5)}.yc-s__p_5{padding:var(--g-spacing-5)}.yc-s__pl_5{padding-left:var(--g-spacing-5)}.yc-s__pr_5{padding-right:var(--g-spacing-5)}.yc-s__pb_5{padding-bottom:var(--g-spacing-5)}.yc-s__pt_5,.yc-s__py_5{padding-top:var(--g-spacing-5)}.yc-s__py_5{padding-bottom:var(--g-spacing-5)}.yc-s__px_5{padding-left:var(--g-spacing-5);padding-right:var(--g-spacing-5)}.yc-s__m_6{margin:var(--g-spacing-6)}.yc-s__mr_6{margin-right:var(--g-spacing-6)}.yc-s__ml_6{margin-left:var(--g-spacing-6)}.yc-s__mt_6{margin-top:var(--g-spacing-6)}.yc-s__mb_6{margin-bottom:var(--g-spacing-6)}.yc-s__mx_6{margin-left:var(--g-spacing-6);margin-right:var(--g-spacing-6)}.yc-s__my_6{margin-bottom:var(--g-spacing-6);margin-top:var(--g-spacing-6)}.yc-s__p_6{padding:var(--g-spacing-6)}.yc-s__pl_6{padding-left:var(--g-spacing-6)}.yc-s__pr_6{padding-right:var(--g-spacing-6)}.yc-s__pb_6{padding-bottom:var(--g-spacing-6)}.yc-s__pt_6,.yc-s__py_6{padding-top:var(--g-spacing-6)}.yc-s__py_6{padding-bottom:var(--g-spacing-6)}.yc-s__px_6{padding-left:var(--g-spacing-6);padding-right:var(--g-spacing-6)}.yc-s__m_7{margin:var(--g-spacing-7)}.yc-s__mr_7{margin-right:var(--g-spacing-7)}.yc-s__ml_7{margin-left:var(--g-spacing-7)}.yc-s__mt_7{margin-top:var(--g-spacing-7)}.yc-s__mb_7{margin-bottom:var(--g-spacing-7)}.yc-s__mx_7{margin-left:var(--g-spacing-7);margin-right:var(--g-spacing-7)}.yc-s__my_7{margin-bottom:var(--g-spacing-7);margin-top:var(--g-spacing-7)}.yc-s__p_7{padding:var(--g-spacing-7)}.yc-s__pl_7{padding-left:var(--g-spacing-7)}.yc-s__pr_7{padding-right:var(--g-spacing-7)}.yc-s__pb_7{padding-bottom:var(--g-spacing-7)}.yc-s__pt_7,.yc-s__py_7{padding-top:var(--g-spacing-7)}.yc-s__py_7{padding-bottom:var(--g-spacing-7)}.yc-s__px_7{padding-left:var(--g-spacing-7);padding-right:var(--g-spacing-7)}.yc-s__m_8{margin:var(--g-spacing-8)}.yc-s__mr_8{margin-right:var(--g-spacing-8)}.yc-s__ml_8{margin-left:var(--g-spacing-8)}.yc-s__mt_8{margin-top:var(--g-spacing-8)}.yc-s__mb_8{margin-bottom:var(--g-spacing-8)}.yc-s__mx_8{margin-left:var(--g-spacing-8);margin-right:var(--g-spacing-8)}.yc-s__my_8{margin-bottom:var(--g-spacing-8);margin-top:var(--g-spacing-8)}.yc-s__p_8{padding:var(--g-spacing-8)}.yc-s__pl_8{padding-left:var(--g-spacing-8)}.yc-s__pr_8{padding-right:var(--g-spacing-8)}.yc-s__pb_8{padding-bottom:var(--g-spacing-8)}.yc-s__pt_8,.yc-s__py_8{padding-top:var(--g-spacing-8)}.yc-s__py_8{padding-bottom:var(--g-spacing-8)}.yc-s__px_8{padding-left:var(--g-spacing-8);padding-right:var(--g-spacing-8)}.yc-s__m_9{margin:var(--g-spacing-9)}.yc-s__mr_9{margin-right:var(--g-spacing-9)}.yc-s__ml_9{margin-left:var(--g-spacing-9)}.yc-s__mt_9{margin-top:var(--g-spacing-9)}.yc-s__mb_9{margin-bottom:var(--g-spacing-9)}.yc-s__mx_9{margin-left:var(--g-spacing-9);margin-right:var(--g-spacing-9)}.yc-s__my_9{margin-bottom:var(--g-spacing-9);margin-top:var(--g-spacing-9)}.yc-s__p_9{padding:var(--g-spacing-9)}.yc-s__pl_9{padding-left:var(--g-spacing-9)}.yc-s__pr_9{padding-right:var(--g-spacing-9)}.yc-s__pb_9{padding-bottom:var(--g-spacing-9)}.yc-s__pt_9,.yc-s__py_9{padding-top:var(--g-spacing-9)}.yc-s__py_9{padding-bottom:var(--g-spacing-9)}.yc-s__px_9{padding-left:var(--g-spacing-9);padding-right:var(--g-spacing-9)}.yc-s__m_10{margin:var(--g-spacing-10)}.yc-s__mr_10{margin-right:var(--g-spacing-10)}.yc-s__ml_10{margin-left:var(--g-spacing-10)}.yc-s__mt_10{margin-top:var(--g-spacing-10)}.yc-s__mb_10{margin-bottom:var(--g-spacing-10)}.yc-s__mx_10{margin-left:var(--g-spacing-10);margin-right:var(--g-spacing-10)}.yc-s__my_10{margin-bottom:var(--g-spacing-10);margin-top:var(--g-spacing-10)}.yc-s__p_10{padding:var(--g-spacing-10)}.yc-s__pl_10{padding-left:var(--g-spacing-10)}.yc-s__pr_10{padding-right:var(--g-spacing-10)}.yc-s__pb_10{padding-bottom:var(--g-spacing-10)}.yc-s__pt_10,.yc-s__py_10{padding-top:var(--g-spacing-10)}.yc-s__py_10{padding-bottom:var(--g-spacing-10)}.yc-s__px_10{padding-left:var(--g-spacing-10);padding-right:var(--g-spacing-10)} -/*# sourceMappingURL=8546.65946fb2.chunk.css.map*/ \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/css/main.a322fb8b.css b/ydb/core/viewer/monitoring/static/css/main.a322fb8b.css deleted file mode 100644 index f41dc52d754f..000000000000 --- a/ydb/core/viewer/monitoring/static/css/main.a322fb8b.css +++ /dev/null @@ -1,2 +0,0 @@ -@charset "UTF-8";@import url(https://fonts.googleapis.com/css2?family=Rubik&display=swap);.g-root{--g-font-family-sans:"Inter","Helvetica Neue","Helvetica","Arial",sans-serif;--g-font-family-monospace:"Menlo","Monaco","Consolas","Ubuntu Mono","Liberation Mono","DejaVu Sans Mono","Courier New","Courier",monospace;--g-text-body-font-family:var(--g-font-family-sans);--g-text-caption-font-family:var(--g-font-family-sans);--g-text-header-font-family:var(--g-font-family-sans);--g-text-subheader-font-family:var(--g-font-family-sans);--g-text-display-font-family:var(--g-font-family-sans);--g-text-code-font-family:var(--g-font-family-monospace);--g-text-body-font-weight:400;--g-text-caption-font-weight:400;--g-text-header-font-weight:600;--g-text-subheader-font-weight:600;--g-text-display-font-weight:600;--g-text-code-font-weight:400;--g-text-accent-font-weight:600;--g-text-body-1-font-size:13px;--g-text-body-1-line-height:18px;--g-text-body-2-font-size:15px;--g-text-body-2-line-height:20px;--g-text-body-3-font-size:17px;--g-text-body-3-line-height:24px;--g-text-body-short-font-size:13px;--g-text-body-short-line-height:16px;--g-text-caption-1-font-size:9px;--g-text-caption-1-line-height:12px;--g-text-caption-2-font-size:11px;--g-text-caption-2-line-height:16px;--g-text-header-1-font-size:20px;--g-text-header-1-line-height:24px;--g-text-header-2-font-size:24px;--g-text-header-2-line-height:28px;--g-text-subheader-1-font-size:13px;--g-text-subheader-1-line-height:18px;--g-text-subheader-2-font-size:15px;--g-text-subheader-2-line-height:20px;--g-text-subheader-3-font-size:17px;--g-text-subheader-3-line-height:24px;--g-text-display-1-font-size:28px;--g-text-display-1-line-height:36px;--g-text-display-2-font-size:32px;--g-text-display-2-line-height:40px;--g-text-display-3-font-size:40px;--g-text-display-3-line-height:48px;--g-text-display-4-font-size:48px;--g-text-display-4-line-height:52px;--g-text-code-1-font-size:12px;--g-text-code-1-line-height:18px;--g-text-code-2-font-size:14px;--g-text-code-2-line-height:20px;--g-text-code-3-font-size:16px;--g-text-code-3-line-height:24px;--g-text-code-inline-1-font-size:12px;--g-text-code-inline-1-line-height:14px;--g-text-code-inline-2-font-size:14px;--g-text-code-inline-2-line-height:16px;--g-text-code-inline-3-font-size:16px;--g-text-code-inline-3-line-height:20px;--g-spacing-base:4px;--g-spacing-0:calc(var(--g-spacing-base)*0);--g-spacing-half:calc(var(--g-spacing-base)*0.5);--g-spacing-1:var(--g-spacing-base);--g-spacing-2:calc(var(--g-spacing-base)*2);--g-spacing-3:calc(var(--g-spacing-base)*3);--g-spacing-4:calc(var(--g-spacing-base)*4);--g-spacing-5:calc(var(--g-spacing-base)*5);--g-spacing-6:calc(var(--g-spacing-base)*6);--g-spacing-7:calc(var(--g-spacing-base)*7);--g-spacing-8:calc(var(--g-spacing-base)*8);--g-spacing-9:calc(var(--g-spacing-base)*9);--g-spacing-10:calc(var(--g-spacing-base)*10);--g-scrollbar-width:12px;--g-border-radius-xs:3px;--g-border-radius-s:5px;--g-border-radius-m:6px;--g-border-radius-l:8px;--g-border-radius-xl:10px;--g-focus-border-radius:2px;--yc-font-family-sans:var(--g-font-family-sans);--yc-font-family-monospace:var(--g-font-family-monospace);--yc-text-body-font-family:var(--g-text-body-font-family);--yc-text-code-font-family:var(--g-text-code-font-family);--yc-text-header-font-weight:var(--g-text-header-font-weight);--yc-text-subheader-font-weight:var(--g-text-subheader-font-weight);--yc-text-display-font-weight:var(--g-text-display-font-weight);--yc-text-code-font-weight:var(--g-text-code-font-weight);--yc-text-body-font-weight:var(--g-text-body-font-weight);--yc-text-caption-font-weight:var(--g-text-caption-font-weight);--yc-text-accent-font-weight:var(--g-text-accent-font-weight);--yc-text-body-1-font-size:var(--g-text-body-1-font-size);--yc-text-body-1-line-height:var(--g-text-body-1-line-height);--yc-text-body-2-font-size:var(--g-text-body-2-font-size);--yc-text-body-2-line-height:var(--g-text-body-2-line-height);--yc-text-body-3-font-size:var(--g-text-body-3-font-size);--yc-text-body-3-line-height:var(--g-text-body-3-line-height);--yc-text-body-short-font-size:var(--g-text-body-short-font-size);--yc-text-body-short-line-height:var(--g-text-body-short-line-height);--yc-text-caption-1-font-size:var(--g-text-caption-1-font-size);--yc-text-caption-1-line-height:var(--g-text-caption-1-line-height);--yc-text-caption-2-font-size:var(--g-text-caption-2-font-size);--yc-text-caption-2-line-height:var(--g-text-caption-2-line-height);--yc-text-header-1-font-size:var(--g-text-header-1-font-size);--yc-text-header-1-line-height:var(--g-text-header-1-line-height);--yc-text-header-2-font-size:var(--g-text-header-2-font-size);--yc-text-header-2-line-height:var(--g-text-header-2-line-height);--yc-text-subheader-1-font-size:var(--g-text-subheader-1-font-size);--yc-text-subheader-1-line-height:var(--g-text-subheader-1-line-height);--yc-text-subheader-2-font-size:var(--g-text-subheader-2-font-size);--yc-text-subheader-2-line-height:var(--g-text-subheader-2-line-height);--yc-text-subheader-3-font-size:var(--g-text-subheader-3-font-size);--yc-text-subheader-3-line-height:var(--g-text-subheader-3-line-height);--yc-text-display-1-font-size:var(--g-text-display-1-font-size);--yc-text-display-1-line-height:var(--g-text-display-1-line-height);--yc-text-display-2-font-size:var(--g-text-display-2-font-size);--yc-text-display-2-line-height:var(--g-text-display-2-line-height);--yc-text-display-3-font-size:var(--g-text-display-3-font-size);--yc-text-display-3-line-height:var(--g-text-display-3-line-height);--yc-text-display-4-font-size:var(--g-text-display-4-font-size);--yc-text-display-4-line-height:var(--g-text-display-4-line-height);--yc-text-code-1-font-size:var(--g-text-code-1-font-size);--yc-text-code-1-line-height:var(--g-text-code-1-line-height);--yc-text-code-2-font-size:var(--g-text-code-2-font-size);--yc-text-code-2-line-height:var(--g-text-code-2-line-height);--yc-text-code-3-font-size:var(--g-text-code-3-font-size);--yc-text-code-3-line-height:var(--g-text-code-3-line-height);--yc-text-code-inline-1-font-size:var(--g-text-code-inline-1-font-size);--yc-text-code-inline-1-line-height:var(--g-text-code-inline-1-line-height);--yc-text-code-inline-2-font-size:var(--g-text-code-inline-2-font-size);--yc-text-code-inline-2-line-height:var(--g-text-code-inline-2-line-height);--yc-text-code-inline-3-font-size:var(--g-text-code-inline-3-font-size);--yc-text-code-inline-3-line-height:var(--g-text-code-inline-3-line-height);--yc-spacing-base:var(--g-spacing-base);--yc-space-base:var(--yc-spacing-base);--yc-spacing-0:var(--g-spacing-0);--yc-spacing-half:var(--g-spacing-half);--yc-spacing-1:var(--g-spacing-1);--yc-spacing-2:var(--g-spacing-2);--yc-spacing-3:var(--g-spacing-3);--yc-spacing-4:var(--g-spacing-4);--yc-spacing-5:var(--g-spacing-5);--yc-spacing-6:var(--g-spacing-6);--yc-spacing-7:var(--g-spacing-7);--yc-spacing-8:var(--g-spacing-8);--yc-spacing-9:var(--g-spacing-9);--yc-spacing-10:var(--g-spacing-10);--yc-color-base-background:var(--g-color-base-background);--yc-color-base-generic:var(--g-color-base-generic);--yc-color-base-generic-hover:var(--g-color-base-generic-hover);--yc-color-base-generic-medium:var(--g-color-base-generic-medium);--yc-color-base-generic-medium-hover:var(--g-color-base-generic-medium-hover);--yc-color-base-generic-accent:var(--g-color-base-generic-accent);--yc-color-base-generic-accent-disabled:var(--g-color-base-generic-accent-disabled);--yc-color-base-generic-ultralight:var(--g-color-base-generic-ultralight);--yc-color-base-simple-hover:var(--g-color-base-simple-hover);--yc-color-base-simple-hover-solid:var(--g-color-base-simple-hover-solid);--yc-color-base-selection:var(--g-color-base-selection);--yc-color-base-selection-hover:var(--g-color-base-selection-hover);--yc-color-base-special:var(--g-color-base-brand);--yc-color-base-special-hover:var(--g-color-base-brand-hover);--yc-color-base-action:var(--g-color-base-brand);--yc-color-base-action-hover:var(--g-color-base-brand-hover);--yc-color-base-info:var(--g-color-base-info-light);--yc-color-base-info-hover:var(--g-color-base-info-light-hover);--yc-color-base-positive:var(--g-color-base-positive-light);--yc-color-base-positive-hover:var(--g-color-base-positive-light-hover);--yc-color-base-warning:var(--g-color-base-warning-light);--yc-color-base-warning-hover:var(--g-color-base-warning-light-hover);--yc-color-base-danger:var(--g-color-base-danger-light);--yc-color-base-danger-hover:var(--g-color-base-danger-light-hover);--yc-color-base-misc:var(--g-color-base-misc-light);--yc-color-base-misc-hover:var(--g-color-base-misc-light-hover);--yc-color-base-neutral:var(--g-color-base-neutral-light);--yc-color-base-neutral-hover:var(--g-color-base-neutral-light-hover);--yc-color-base-positive-medium:var(--g-color-base-positive-medium);--yc-color-base-positive-medium-hover:var(--g-color-base-positive-medium-hover);--yc-color-base-info-heavy:var(--g-color-base-info-heavy);--yc-color-base-positive-heavy:var(--g-color-base-positive-heavy);--yc-color-base-warning-heavy:var(--g-color-base-warning-heavy);--yc-color-base-warning-heavy-hover:var(--g-color-base-warning-heavy-hover);--yc-color-base-danger-heavy:var(--g-color-base-danger-heavy);--yc-color-base-danger-heavy-hover:var(--g-color-base-danger-heavy-hover);--yc-color-base-misc-heavy:var(--g-color-base-misc-heavy);--yc-color-base-misc-heavy-hover:var(--g-color-base-misc-heavy-hover);--yc-color-base-light:var(--g-color-base-light);--yc-color-base-light-hover:var(--g-color-base-light-hover);--yc-color-base-light-simple-hover:var(--g-color-base-light-simple-hover);--yc-color-base-light-disabled:var(--g-color-base-light-disabled);--yc-color-base-light-accent-disabled:var(--g-color-base-light-accent-disabled);--yc-color-base-float:var(--g-color-base-float);--yc-color-base-float-hover:var(--g-color-base-float-hover);--yc-color-base-float-heavy:var(--g-color-base-float-heavy);--yc-color-base-float-accent:var(--g-color-base-float-accent);--yc-color-base-float-accent-hover:var(--g-color-base-float-accent-hover);--yc-color-base-float-announcement:var(--g-color-base-float-announcement);--yc-color-base-modal:var(--g-color-base-modal);--yc-color-line-generic:var(--g-color-line-generic);--yc-color-line-generic-hover:var(--g-color-line-generic-hover);--yc-color-line-generic-active:var(--g-color-line-generic-active);--yc-color-line-generic-accent:var(--g-color-line-generic-accent);--yc-color-line-generic-accent-hover:var(--g-color-line-generic-accent-hover);--yc-color-line-solid:var(--g-color-line-generic-solid);--yc-color-line-selection-hover:var(--g-color-private-blue-300);--yc-color-line-selection-active:var(--g-color-line-brand);--yc-color-line-link:var(--g-color-line-brand);--yc-color-line-info:var(--g-color-line-info);--yc-color-line-positive:var(--g-color-line-positive);--yc-color-line-warning:var(--g-color-line-warning);--yc-color-line-danger:var(--g-color-line-danger);--yc-color-line-misc:var(--g-color-line-misc);--yc-color-line-hint:var(--g-color-line-brand);--yc-color-line-light:var(--g-color-line-light);--yc-color-sfx-veil:var(--g-color-sfx-veil);--yc-color-sfx-shadow:var(--g-color-sfx-shadow);--yc-color-sfx-shadow-heavy:var(--g-color-sfx-shadow-heavy);--yc-color-sfx-shadow-light:var(--g-color-sfx-shadow-light);--yc-color-sfx-fade:var(--g-color-sfx-fade);--yc-color-scroll-track:var(--g-color-scroll-track);--yc-color-scroll-handle:var(--g-color-scroll-handle);--yc-color-scroll-handle-hover:var(--g-color-scroll-handle-hover);--yc-color-scroll-corner:var(--g-color-scroll-corner);--yc-color-text-primary:var(--g-color-text-primary);--yc-color-text-complementary:var(--g-color-text-complementary);--yc-color-text-secondary:var(--g-color-text-secondary);--yc-color-text-hint:var(--g-color-text-hint);--yc-color-text-info:var(--g-color-text-info);--yc-color-text-positive:var(--g-color-text-positive);--yc-color-text-warning:var(--g-color-text-warning);--yc-color-text-danger:var(--g-color-text-danger);--yc-color-text-utility:var(--g-color-text-utility);--yc-color-text-misc:var(--g-color-text-misc);--yc-color-text-info-heavy:var(--g-color-text-info-heavy);--yc-color-text-positive-heavy:var(--g-color-text-positive-heavy);--yc-color-text-warning-heavy:var(--g-color-text-warning-heavy);--yc-color-text-danger-heavy:var(--g-color-text-danger-heavy);--yc-color-text-utility-heavy:var(--g-color-text-utility-heavy);--yc-color-text-misc-heavy:var(--g-color-text-misc-heavy);--yc-color-text-special:var(--g-color-text-brand);--yc-color-text-link:var(--g-color-text-link);--yc-color-text-link-hover:var(--g-color-text-link-hover);--yc-color-text-link-visited:var(--g-color-text-link-visited);--yc-color-text-link-visited-hover:var(--g-color-text-link-visited-hover);--yc-color-text-yandex-red:var(--g-color-private-red-550-solid);--yc-color-text-dark-primary:var(--g-color-text-dark-primary);--yc-color-text-dark-complementary:var(--g-color-text-dark-complementary);--yc-color-text-dark-secondary:var(--g-color-text-dark-secondary);--yc-color-text-light-primary:var(--g-color-text-light-primary);--yc-color-text-light-complementary:var(--g-color-text-light-complementary);--yc-color-text-light-secondary:var(--g-color-text-light-secondary);--yc-color-text-light-hint:var(--g-color-text-light-hint);--yc-color-text-inverted-primary:var(--g-color-text-inverted-primary);--yc-color-text-inverted-complementary:var(--g-color-text-inverted-complementary);--yc-color-text-inverted-secondary:var(--g-color-text-inverted-secondary);--yc-color-text-inverted-hint:var(--g-color-text-inverted-hint);--yc-color-infographics-info-light:var(--g-color-base-info-light);--yc-color-infographics-positive-light:var(--g-color-base-positive-light);--yc-color-infographics-warning-light:var(--g-color-base-warning-light);--yc-color-infographics-danger-light:var(--g-color-base-danger-light);--yc-color-infographics-misc-light:var(--g-color-base-misc-light);--yc-color-infographics-neutral-light:var(--g-color-base-neutral-light);--yc-color-infographics-info-medium:var(--g-color-base-info-medium);--yc-color-infographics-positive-medium:var(--g-color-base-positive-medium);--yc-color-infographics-warning-medium:var(--g-color-base-warning-medium);--yc-color-infographics-danger-medium:var(--g-color-base-danger-medium);--yc-color-infographics-misc-medium:var(--g-color-base-misc-medium);--yc-color-infographics-neutral-medium:var(--g-color-base-neutral-medium);--yc-color-infographics-info-heavy:var(--g-color-base-info-heavy);--yc-color-infographics-positive-heavy:var(--g-color-base-positive-heavy);--yc-color-infographics-warning-heavy:var(--g-color-base-warning-heavy);--yc-color-infographics-danger-heavy:var(--g-color-base-danger-heavy);--yc-color-infographics-misc-heavy:var(--g-color-base-misc-heavy);--yc-color-infographics-neutral-heavy:var(--g-color-base-neutral-heavy);--yc-color-infographics-axis:var(--g-color-infographics-axis);--yc-color-infographics-tooltip-bg:var(--g-color-infographics-tooltip-bg);background:var(--g-color-base-background);color:var(--g-color-text-primary);font-family:var(--g-font-family-sans);font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height)}.g-root_theme_light{--g-color-private-blue-50:rgba(54,151,241,.1);--g-color-private-blue-100:rgba(54,151,241,.15);--g-color-private-blue-150:rgba(54,151,241,.2);--g-color-private-blue-200:rgba(54,151,241,.3);--g-color-private-blue-250:rgba(54,151,241,.4);--g-color-private-blue-300:rgba(54,151,241,.5);--g-color-private-blue-350:rgba(54,151,241,.6);--g-color-private-blue-400:rgba(54,151,241,.7);--g-color-private-blue-450:rgba(54,151,241,.8);--g-color-private-blue-500:rgba(54,151,241,.9);--g-color-private-blue-50-solid:#ebf5fe;--g-color-private-blue-100-solid:#e1effd;--g-color-private-blue-150-solid:#d7eafc;--g-color-private-blue-200-solid:#c3e0fb;--g-color-private-blue-250-solid:#afd5f9;--g-color-private-blue-300-solid:#9bcbf8;--g-color-private-blue-350-solid:#86c1f7;--g-color-private-blue-400-solid:#72b6f5;--g-color-private-blue-450-solid:#5eacf4;--g-color-private-blue-500-solid:#4aa1f2;--g-color-private-blue-550-solid:#3697f1;--g-color-private-blue-600-solid:#348bdc;--g-color-private-blue-650-solid:#327fc8;--g-color-private-blue-700-solid:#3072b3;--g-color-private-blue-750-solid:#2e669e;--g-color-private-blue-800-solid:#2c5a8a;--g-color-private-blue-850-solid:#2a4e75;--g-color-private-blue-900-solid:#284260;--g-color-private-blue-950-solid:#26354b;--g-color-private-blue-1000-solid:#252f41;--g-color-private-green-50:rgba(50,186,118,.1);--g-color-private-green-100:rgba(50,186,118,.15);--g-color-private-green-150:rgba(50,186,118,.2);--g-color-private-green-200:rgba(50,186,118,.3);--g-color-private-green-250:rgba(50,186,118,.4);--g-color-private-green-300:rgba(50,186,118,.5);--g-color-private-green-350:rgba(50,186,118,.6);--g-color-private-green-400:rgba(50,186,118,.7);--g-color-private-green-450:rgba(50,186,118,.8);--g-color-private-green-500:rgba(50,186,118,.9);--g-color-private-green-50-solid:#ebf8f1;--g-color-private-green-100-solid:#e0f5ea;--g-color-private-green-150-solid:#d6f1e4;--g-color-private-green-200-solid:#c2ead6;--g-color-private-green-250-solid:#ade3c8;--g-color-private-green-300-solid:#9db;--g-color-private-green-350-solid:#84d6ad;--g-color-private-green-400-solid:#70cf9f;--g-color-private-green-450-solid:#5bc891;--g-color-private-green-500-solid:#47c184;--g-color-private-green-550-solid:#32ba76;--g-color-private-green-600-solid:#30aa6e;--g-color-private-green-650-solid:#2f9b65;--g-color-private-green-700-solid:#2d8b5d;--g-color-private-green-750-solid:#2c7b54;--g-color-private-green-800-solid:#2a6c4c;--g-color-private-green-850-solid:#285c44;--g-color-private-green-900-solid:#274c3b;--g-color-private-green-950-solid:#253c33;--g-color-private-green-1000-solid:#24352f;--g-color-private-yellow-50:rgba(255,190,92,.1);--g-color-private-yellow-100:rgba(255,190,92,.15);--g-color-private-yellow-150:rgba(255,190,92,.2);--g-color-private-yellow-200:rgba(255,190,92,.3);--g-color-private-yellow-250:rgba(255,190,92,.4);--g-color-private-yellow-300:rgba(255,190,92,.5);--g-color-private-yellow-350:rgba(255,190,92,.6);--g-color-private-yellow-400:rgba(255,190,92,.7);--g-color-private-yellow-450:rgba(255,190,92,.8);--g-color-private-yellow-500:rgba(255,190,92,.9);--g-color-private-yellow-50-solid:#fff9ef;--g-color-private-yellow-100-solid:#fff5e7;--g-color-private-yellow-150-solid:#fff2de;--g-color-private-yellow-200-solid:#ffecce;--g-color-private-yellow-250-solid:#ffe5be;--g-color-private-yellow-300-solid:#ffdfae;--g-color-private-yellow-350-solid:#ffd89d;--g-color-private-yellow-400-solid:#ffd28d;--g-color-private-yellow-450-solid:#ffcb7d;--g-color-private-yellow-500-solid:#ffc56c;--g-color-private-yellow-550-solid:#ffbe5c;--g-color-private-yellow-600-solid:#e9ae56;--g-color-private-yellow-650-solid:#d39e50;--g-color-private-yellow-700-solid:#bd8e4b;--g-color-private-yellow-750-solid:#a77e45;--g-color-private-yellow-800-solid:#916e3f;--g-color-private-yellow-850-solid:#7a5d39;--g-color-private-yellow-900-solid:#644d33;--g-color-private-yellow-950-solid:#4e3d2e;--g-color-private-yellow-1000-solid:#43352b;--g-color-private-orange-400-solid:#ffa04d;--g-color-private-orange-500-solid:#ff8519;--g-color-private-orange-600-solid:#e96e03;--g-color-private-orange-650-solid:#d36507;--g-color-private-orange-700-solid:#bd5c0a;--g-color-private-orange-750-solid:#a7530e;--g-color-private-orange-800-solid:#914a11;--g-color-private-orange-850-solid:#7a4114;--g-color-private-orange-900-solid:#643818;--g-color-private-orange-950-solid:#4e2f1b;--g-color-private-orange-1000-solid:#432b1d;--g-color-private-red-50:rgba(255,0,61,.1);--g-color-private-red-100:rgba(255,0,61,.15);--g-color-private-red-150:rgba(255,0,61,.2);--g-color-private-red-200:rgba(255,0,61,.3);--g-color-private-red-250:rgba(255,0,61,.4);--g-color-private-red-300:rgba(255,0,61,.5);--g-color-private-red-350:rgba(255,0,61,.6);--g-color-private-red-400:rgba(255,0,61,.7);--g-color-private-red-450:rgba(255,0,61,.8);--g-color-private-red-500:rgba(255,0,61,.9);--g-color-private-red-50-solid:#ffe6ec;--g-color-private-red-100-solid:#ffd9e2;--g-color-private-red-150-solid:#ffccd8;--g-color-private-red-200-solid:#ffb3c5;--g-color-private-red-250-solid:#ff99b1;--g-color-private-red-300-solid:#ff809e;--g-color-private-red-350-solid:#ff668b;--g-color-private-red-400-solid:#ff4d77;--g-color-private-red-450-solid:#ff3364;--g-color-private-red-500-solid:#ff1950;--g-color-private-red-550-solid:#ff003d;--g-color-private-red-600-solid:#e9033a;--g-color-private-red-650-solid:#d30638;--g-color-private-red-700-solid:#bd0935;--g-color-private-red-750-solid:#a70c32;--g-color-private-red-800-solid:#910f30;--g-color-private-red-850-solid:#7a112d;--g-color-private-red-900-solid:#64142a;--g-color-private-red-950-solid:#4e1727;--g-color-private-red-1000-solid:#431926;--g-color-private-purple-600-solid:#844dbb;--g-color-private-purple-650-solid:#7947aa;--g-color-private-purple-700-solid:#6e4299;--g-color-private-purple-750-solid:#633d88;--g-color-private-purple-800-solid:#593877;--g-color-private-purple-850-solid:#4e3266;--g-color-private-purple-900-solid:#432d55;--g-color-private-purple-950-solid:#382844;--g-color-private-purple-1000-solid:#32253c;--g-color-private-cool-grey-300-solid:#b5c2cc;--g-color-private-cool-grey-600-solid:#647a8d;--g-color-private-cool-grey-650-solid:#5c6f81;--g-color-private-cool-grey-700-solid:#556575;--g-color-private-cool-grey-750-solid:#4e5b69;--g-color-private-cool-grey-800-solid:#47515e;--g-color-private-cool-grey-850-solid:#3f4652;--g-color-private-cool-grey-900-solid:#383c46;--g-color-private-cool-grey-950-solid:#31323a;--g-color-private-cool-grey-1000-solid:#2d2c34;--g-color-text-primary:var(--g-color-text-dark-primary);--g-color-text-complementary:var(--g-color-text-dark-complementary);--g-color-text-secondary:var(--g-color-text-dark-secondary);--g-color-text-hint:var(--g-color-text-dark-hint);--g-color-text-info:var(--g-color-private-blue-600-solid);--g-color-text-positive:var(--g-color-private-green-600-solid);--g-color-text-warning:var(--g-color-private-yellow-700-solid);--g-color-text-danger:var(--g-color-private-red-600-solid);--g-color-text-utility:var(--g-color-private-purple-600-solid);--g-color-text-misc:var(--g-color-private-cool-grey-600-solid);--g-color-text-info-heavy:var(--g-color-private-blue-700-solid);--g-color-text-positive-heavy:var(--g-color-private-green-700-solid);--g-color-text-warning-heavy:var(--g-color-private-orange-700-solid);--g-color-text-danger-heavy:var(--g-color-private-red-700-solid);--g-color-text-utility-heavy:var(--g-color-private-purple-700-solid);--g-color-text-misc-heavy:var(--g-color-private-cool-grey-700-solid);--g-color-text-brand:var(--g-color-private-yellow-700-solid);--g-color-text-brand-heavy:var(--g-color-private-orange-700-solid);--g-color-text-brand-contrast:var(--g-color-text-dark-primary);--g-color-text-link:var(--g-color-private-yellow-650-solid);--g-color-text-link-hover:var(--g-color-private-orange-650-solid);--g-color-text-link-visited:var(--g-color-private-purple-550-solid);--g-color-text-link-visited-hover:var(--g-color-private-purple-800-solid);--g-color-text-dark-primary:var(--g-color-private-black-850);--g-color-text-dark-complementary:var(--g-color-private-black-700);--g-color-text-dark-secondary:var(--g-color-private-black-500);--g-color-text-dark-hint:var(--g-color-private-black-300);--g-color-text-light-primary:var(--g-color-private-white-1000-solid);--g-color-text-light-complementary:var(--g-color-private-white-850);--g-color-text-light-secondary:var(--g-color-private-white-700);--g-color-text-light-hint:var(--g-color-private-white-500);--g-color-text-inverted-primary:var(--g-color-text-light-primary);--g-color-text-inverted-complementary:var(--g-color-text-light-complementary);--g-color-text-inverted-secondary:var(--g-color-text-light-secondary);--g-color-text-inverted-hint:var(--g-color-text-light-hint);--g-color-base-background:var(--g-color-private-white-1000-solid);--g-color-base-generic:var(--g-color-private-black-50);--g-color-base-generic-hover:var(--g-color-private-black-150);--g-color-base-generic-medium:var(--g-color-private-black-150);--g-color-base-generic-medium-hover:var(--g-color-private-black-250);--g-color-base-generic-accent:var(--g-color-private-black-150);--g-color-base-generic-accent-disabled:var(--g-color-private-black-70);--g-color-base-generic-ultralight:var(--g-color-private-black-20-solid);--g-color-base-simple-hover:var(--g-color-private-black-50);--g-color-base-simple-hover-solid:var(--g-color-private-black-50-solid);--g-color-base-brand:var(--g-color-private-yellow-550-solid);--g-color-base-brand-hover:var(--g-color-private-yellow-600-solid);--g-color-base-selection:var(--g-color-private-yellow-200);--g-color-base-selection-hover:var(--g-color-private-yellow-300);--g-color-base-info-light:var(--g-color-private-blue-100);--g-color-base-info-light-hover:var(--g-color-private-blue-200);--g-color-base-info-medium:var(--g-color-private-blue-200);--g-color-base-info-medium-hover:var(--g-color-private-blue-300);--g-color-base-info-heavy:var(--g-color-private-blue-600-solid);--g-color-base-info-heavy-hover:var(--g-color-private-blue-700-solid);--g-color-base-positive-light:var(--g-color-private-green-100);--g-color-base-positive-light-hover:var(--g-color-private-green-200);--g-color-base-positive-medium:var(--g-color-private-green-200);--g-color-base-positive-medium-hover:var(--g-color-private-green-300);--g-color-base-positive-heavy:var(--g-color-private-green-600-solid);--g-color-base-positive-heavy-hover:var(--g-color-private-green-700-solid);--g-color-base-warning-light:var(--g-color-private-yellow-200);--g-color-base-warning-light-hover:var(--g-color-private-yellow-300);--g-color-base-warning-medium:var(--g-color-private-yellow-400);--g-color-base-warning-medium-hover:var(--g-color-private-yellow-500);--g-color-base-warning-heavy:var(--g-color-private-yellow-550-solid);--g-color-base-warning-heavy-hover:var(--g-color-private-yellow-650-solid);--g-color-base-danger-light:var(--g-color-private-red-100);--g-color-base-danger-light-hover:var(--g-color-private-red-200);--g-color-base-danger-medium:var(--g-color-private-red-200);--g-color-base-danger-medium-hover:var(--g-color-private-red-300);--g-color-base-danger-heavy:var(--g-color-private-red-600-solid);--g-color-base-danger-heavy-hover:var(--g-color-private-red-700-solid);--g-color-base-utility-light:var(--g-color-private-purple-100);--g-color-base-utility-light-hover:var(--g-color-private-purple-200);--g-color-base-utility-medium:var(--g-color-private-purple-200);--g-color-base-utility-medium-hover:var(--g-color-private-purple-300);--g-color-base-utility-heavy:var(--g-color-private-purple-600-solid);--g-color-base-utility-heavy-hover:var(--g-color-private-purple-700-solid);--g-color-base-neutral-light:var(--g-color-private-black-50);--g-color-base-neutral-light-hover:var(--g-color-private-black-100);--g-color-base-neutral-medium:var(--g-color-private-black-200);--g-color-base-neutral-medium-hover:var(--g-color-private-black-250);--g-color-base-neutral-heavy:var(--g-color-private-black-450);--g-color-base-neutral-heavy-hover:var(--g-color-private-black-550);--g-color-base-misc-light:var(--g-color-private-cool-grey-100);--g-color-base-misc-light-hover:var(--g-color-private-cool-grey-200);--g-color-base-misc-medium:var(--g-color-private-cool-grey-200);--g-color-base-misc-medium-hover:var(--g-color-private-cool-grey-300);--g-color-base-misc-heavy:var(--g-color-private-cool-grey-600-solid);--g-color-base-misc-heavy-hover:var(--g-color-private-cool-grey-700-solid);--g-color-base-light:var(--g-color-private-white-1000-solid);--g-color-base-light-hover:var(--g-color-private-white-850);--g-color-base-light-simple-hover:var(--g-color-private-white-150);--g-color-base-light-disabled:var(--g-color-private-white-150);--g-color-base-light-accent-disabled:var(--g-color-private-white-300);--g-color-base-float:var(--g-color-private-white-1000-solid);--g-color-base-float-hover:var(--g-color-private-black-50-solid);--g-color-base-float-heavy:var(--g-color-private-black-700-solid);--g-color-base-float-accent:var(--g-color-private-white-1000-solid);--g-color-base-float-accent-hover:var(--g-color-private-white-850);--g-color-base-float-announcement:var(--g-color-private-cool-grey-50-solid);--g-color-base-modal:var(--g-color-base-background);--g-color-line-generic:var(--g-color-private-black-100);--g-color-line-generic-hover:var(--g-color-private-black-150);--g-color-line-generic-active:var(--g-color-private-black-300);--g-color-line-generic-accent:var(--g-color-private-black-150);--g-color-line-generic-accent-hover:var(--g-color-private-black-300);--g-color-line-generic-solid:var(--g-color-private-black-100-solid);--g-color-line-brand:var(--g-color-private-yellow-600-solid);--g-color-line-focus:var(--g-color-private-cool-grey-450);--g-color-line-light:var(--g-color-private-white-500);--g-color-line-info:var(--g-color-private-blue-450);--g-color-line-positive:var(--g-color-private-green-450);--g-color-line-warning:var(--g-color-private-yellow-600-solid);--g-color-line-danger:var(--g-color-private-red-450);--g-color-line-utility:var(--g-color-private-purple-450);--g-color-line-misc:var(--g-color-private-cool-grey-450);--g-color-sfx-veil:var(--g-color-private-black-250);--g-color-sfx-shadow:var(--g-color-private-black-150);--g-color-sfx-shadow-heavy:var(--g-color-private-black-500);--g-color-sfx-shadow-light:var(--g-color-private-black-50);--g-color-sfx-fade:var(--g-color-private-white-300);--g-color-scroll-track:var(--g-color-base-background);--g-color-scroll-handle:var(--g-color-private-black-100);--g-color-scroll-handle-hover:var(--g-color-private-black-150);--g-color-scroll-corner:var(--g-color-private-black-100);--g-color-infographics-axis:var(--g-color-private-black-150-solid);--g-color-infographics-tooltip-bg:var(--g-color-private-white-950)}.g-root_theme_dark{--g-color-private-white-50-solid:#2d282d;--g-color-private-white-70-solid:#312d31;--g-color-private-white-100-solid:#383438;--g-color-private-white-150-solid:#433f43;--g-color-private-white-200-solid:#4e4a4e;--g-color-private-white-250-solid:#595559;--g-color-private-white-300-solid:#646164;--g-color-private-white-350-solid:#6f6c6f;--g-color-private-white-400-solid:#7a777a;--g-color-private-white-450-solid:#858385;--g-color-private-white-500-solid:#908e90;--g-color-private-white-550-solid:#9c999c;--g-color-private-white-600-solid:#a7a5a7;--g-color-private-white-650-solid:#b2b0b2;--g-color-private-white-700-solid:#bdbbbd;--g-color-private-white-750-solid:#c8c6c8;--g-color-private-white-800-solid:#d3d2d3;--g-color-private-white-850-solid:#deddde;--g-color-private-white-900-solid:#e9e8e9;--g-color-private-white-950-solid:#f4f4f4;--g-color-private-blue-50:rgba(54,151,241,.1);--g-color-private-blue-100:rgba(54,151,241,.15);--g-color-private-blue-150:rgba(54,151,241,.2);--g-color-private-blue-200:rgba(54,151,241,.3);--g-color-private-blue-250:rgba(54,151,241,.4);--g-color-private-blue-300:rgba(54,151,241,.5);--g-color-private-blue-350:rgba(54,151,241,.6);--g-color-private-blue-400:rgba(54,151,241,.7);--g-color-private-blue-450:rgba(54,151,241,.8);--g-color-private-blue-500:rgba(54,151,241,.9);--g-color-private-blue-50-solid:#242937;--g-color-private-blue-100-solid:#252f41;--g-color-private-blue-150-solid:#26354b;--g-color-private-blue-200-solid:#284260;--g-color-private-blue-250-solid:#2a4e75;--g-color-private-blue-300-solid:#2c5a8a;--g-color-private-blue-350-solid:#2e669e;--g-color-private-blue-400-solid:#3072b3;--g-color-private-blue-450-solid:#327fc8;--g-color-private-blue-500-solid:#348bdc;--g-color-private-blue-550-solid:#3697f1;--g-color-private-blue-600-solid:#4aa1f2;--g-color-private-blue-650-solid:#5eacf4;--g-color-private-blue-700-solid:#72b6f5;--g-color-private-blue-750-solid:#86c1f7;--g-color-private-blue-800-solid:#9bcbf8;--g-color-private-blue-850-solid:#afd5f9;--g-color-private-blue-900-solid:#c3e0fb;--g-color-private-blue-950-solid:#d7eafc;--g-color-private-blue-1000-solid:#e1effd;--g-color-private-green-50:rgba(77,176,155,.1);--g-color-private-green-100:rgba(77,176,155,.15);--g-color-private-green-150:rgba(77,176,155,.2);--g-color-private-green-200:rgba(77,176,155,.3);--g-color-private-green-250:rgba(77,176,155,.4);--g-color-private-green-300:rgba(77,176,155,.5);--g-color-private-green-350:rgba(77,176,155,.6);--g-color-private-green-400:rgba(77,176,155,.7);--g-color-private-green-450:rgba(77,176,155,.8);--g-color-private-green-500:rgba(77,176,155,.9);--g-color-private-green-50-solid:#262c2e;--g-color-private-green-100-solid:#283334;--g-color-private-green-150-solid:#2b3a3a;--g-color-private-green-200-solid:#2f4946;--g-color-private-green-250-solid:#335852;--g-color-private-green-300-solid:#38675f;--g-color-private-green-350-solid:#3c756b;--g-color-private-green-400-solid:#408477;--g-color-private-green-450-solid:#449383;--g-color-private-green-500-solid:#49a18f;--g-color-private-green-550-solid:#4db09b;--g-color-private-green-600-solid:#5fb8a5;--g-color-private-green-650-solid:#71c0af;--g-color-private-green-700-solid:#82c8b9;--g-color-private-green-750-solid:#94d0c3;--g-color-private-green-800-solid:#a6d8cd;--g-color-private-green-850-solid:#b8dfd7;--g-color-private-green-900-solid:#cae7e1;--g-color-private-green-950-solid:#dbefeb;--g-color-private-green-1000-solid:#e4f3f0;--g-color-private-yellow-50:rgba(255,190,92,.1);--g-color-private-yellow-100:rgba(255,190,92,.15);--g-color-private-yellow-150:rgba(255,190,92,.2);--g-color-private-yellow-200:rgba(255,190,92,.3);--g-color-private-yellow-250:rgba(255,190,92,.4);--g-color-private-yellow-300:rgba(255,190,92,.5);--g-color-private-yellow-350:rgba(255,190,92,.6);--g-color-private-yellow-400:rgba(255,190,92,.7);--g-color-private-yellow-450:rgba(255,190,92,.8);--g-color-private-yellow-500:rgba(255,190,92,.9);--g-color-private-yellow-50-solid:#382d28;--g-color-private-yellow-100-solid:#43352b;--g-color-private-yellow-150-solid:#4e3d2e;--g-color-private-yellow-200-solid:#644d33;--g-color-private-yellow-250-solid:#7a5d39;--g-color-private-yellow-300-solid:#916e3f;--g-color-private-yellow-350-solid:#a77e45;--g-color-private-yellow-400-solid:#bd8e4b;--g-color-private-yellow-450-solid:#d39e50;--g-color-private-yellow-500-solid:#e9ae56;--g-color-private-yellow-550-solid:#ffbe5c;--g-color-private-yellow-600-solid:#ffc56c;--g-color-private-yellow-650-solid:#ffcb7d;--g-color-private-yellow-700-solid:#ffd28d;--g-color-private-yellow-750-solid:#ffd89d;--g-color-private-yellow-800-solid:#ffdfae;--g-color-private-yellow-850-solid:#ffe5be;--g-color-private-yellow-900-solid:#ffecce;--g-color-private-yellow-950-solid:#fff2de;--g-color-private-yellow-1000-solid:#fff5e7;--g-color-private-orange-50-solid:#332420;--g-color-private-orange-100-solid:#3b281f;--g-color-private-orange-150-solid:#432b1e;--g-color-private-orange-200-solid:#54321b;--g-color-private-orange-250-solid:#643919;--g-color-private-orange-300-solid:#754017;--g-color-private-orange-350-solid:#864715;--g-color-private-orange-400-solid:#964e13;--g-color-private-orange-450-solid:#a75510;--g-color-private-orange-500-solid:#b75c0e;--g-color-private-orange-700-solid:#d99255;--g-color-private-orange-800-solid:#e4b186;--g-color-private-red-50:rgba(229,50,93,.1);--g-color-private-red-100:rgba(229,50,93,.15);--g-color-private-red-150:rgba(229,50,93,.2);--g-color-private-red-200:rgba(229,50,93,.3);--g-color-private-red-250:rgba(229,50,93,.4);--g-color-private-red-300:rgba(229,50,93,.5);--g-color-private-red-350:rgba(229,50,93,.6);--g-color-private-red-400:rgba(229,50,93,.7);--g-color-private-red-450:rgba(229,50,93,.8);--g-color-private-red-500:rgba(229,50,93,.9);--g-color-private-red-50-solid:#361f28;--g-color-private-red-100-solid:#3f202b;--g-color-private-red-150-solid:#49212e;--g-color-private-red-200-solid:#5d2334;--g-color-private-red-250-solid:#70253a;--g-color-private-red-300-solid:#842840;--g-color-private-red-350-solid:#972a45;--g-color-private-red-400-solid:#ab2c4b;--g-color-private-red-450-solid:#be2e51;--g-color-private-red-500-solid:#d23057;--g-color-private-red-550-solid:#e5325d;--g-color-private-red-600-solid:#e8476d;--g-color-private-red-650-solid:#ea5b7d;--g-color-private-red-700-solid:#ed708e;--g-color-private-red-750-solid:#ef849e;--g-color-private-red-800-solid:#f299ae;--g-color-private-red-850-solid:#f5adbe;--g-color-private-red-900-solid:#f7c2ce;--g-color-private-red-950-solid:#fad6df;--g-color-private-red-1000-solid:#fbe0e7;--g-color-private-purple-50-solid:#2d2233;--g-color-private-purple-100-solid:#32253c;--g-color-private-purple-150-solid:#382844;--g-color-private-purple-200-solid:#432d55;--g-color-private-purple-250-solid:#4e3266;--g-color-private-purple-300-solid:#593877;--g-color-private-purple-350-solid:#633d88;--g-color-private-purple-400-solid:#6e4299;--g-color-private-purple-450-solid:#7947aa;--g-color-private-purple-500-solid:#844dbb;--g-color-private-cool-grey-50-solid:#28272e;--g-color-private-cool-grey-100-solid:#2b2c34;--g-color-private-cool-grey-150-solid:#2e313a;--g-color-private-cool-grey-200-solid:#353b47;--g-color-private-cool-grey-250-solid:#3b4553;--g-color-private-cool-grey-300-solid:#414f5f;--g-color-private-cool-grey-350-solid:#47586b;--g-color-private-cool-grey-400-solid:#4d6277;--g-color-private-cool-grey-450-solid:#546c84;--g-color-private-cool-grey-500-solid:#5a7690;--g-color-private-cool-grey-750-solid:#a0b3c4;--g-color-private-cool-grey-800-solid:#b0c0ce;--g-color-text-primary:var(--g-color-text-light-primary);--g-color-text-complementary:var(--g-color-text-light-complementary);--g-color-text-secondary:var(--g-color-text-light-secondary);--g-color-text-hint:var(--g-color-text-light-hint);--g-color-text-info:var(--g-color-private-blue-550-solid);--g-color-text-positive:var(--g-color-private-green-550-solid);--g-color-text-warning:var(--g-color-private-yellow-550-solid);--g-color-text-danger:var(--g-color-private-red-550-solid);--g-color-text-utility:var(--g-color-private-purple-600-solid);--g-color-text-misc:var(--g-color-private-cool-grey-600-solid);--g-color-text-info-heavy:var(--g-color-private-blue-600-solid);--g-color-text-positive-heavy:var(--g-color-private-green-600-solid);--g-color-text-warning-heavy:var(--g-color-private-yellow-600-solid);--g-color-text-danger-heavy:var(--g-color-private-red-600-solid);--g-color-text-utility-heavy:var(--g-color-private-purple-650-solid);--g-color-text-misc-heavy:var(--g-color-private-cool-grey-650-solid);--g-color-text-brand:var(--g-color-private-yellow-600-solid);--g-color-text-brand-heavy:var(--g-color-private-yellow-700-solid);--g-color-text-brand-contrast:var(--g-color-text-dark-primary);--g-color-text-link:var(--g-color-private-yellow-550-solid);--g-color-text-link-hover:var(--g-color-private-orange-550-solid);--g-color-text-link-visited:var(--g-color-private-purple-600-solid);--g-color-text-link-visited-hover:var(--g-color-private-purple-750-solid);--g-color-text-dark-primary:var(--g-color-private-black-900);--g-color-text-dark-complementary:var(--g-color-private-black-700);--g-color-text-dark-secondary:var(--g-color-private-black-500);--g-color-text-dark-hint:var(--g-color-private-black-300);--g-color-text-light-primary:var(--g-color-private-white-850);--g-color-text-light-complementary:var(--g-color-private-white-700);--g-color-text-light-secondary:var(--g-color-private-white-500);--g-color-text-light-hint:var(--g-color-private-white-300);--g-color-text-inverted-primary:var(--g-color-text-dark-primary);--g-color-text-inverted-complementary:var(--g-color-text-dark-complementary);--g-color-text-inverted-secondary:var(--g-color-text-dark-secondary);--g-color-text-inverted-hint:var(--g-color-text-dark-hint);--g-color-base-background:#221d22;--g-color-base-generic:var(--g-color-private-white-100);--g-color-base-generic-hover:var(--g-color-private-white-150);--g-color-base-generic-medium:var(--g-color-private-white-250);--g-color-base-generic-medium-hover:var(--g-color-private-white-300);--g-color-base-generic-accent:var(--g-color-private-white-150);--g-color-base-generic-accent-disabled:var(--g-color-private-white-70);--g-color-base-generic-ultralight:var(--g-color-private-white-20-solid);--g-color-base-simple-hover:var(--g-color-private-white-100);--g-color-base-simple-hover-solid:var(--g-color-private-white-100-solid);--g-color-base-brand:var(--g-color-private-yellow-550-solid);--g-color-base-brand-hover:var(--g-color-private-yellow-650-solid);--g-color-base-selection:var(--g-color-private-yellow-150);--g-color-base-selection-hover:var(--g-color-private-yellow-200);--g-color-base-info-light:var(--g-color-private-blue-150);--g-color-base-info-light-hover:var(--g-color-private-blue-200);--g-color-base-info-medium:var(--g-color-private-blue-300);--g-color-base-info-medium-hover:var(--g-color-private-blue-400);--g-color-base-info-heavy:var(--g-color-private-blue-600-solid);--g-color-base-info-heavy-hover:var(--g-color-private-blue-700-solid);--g-color-base-positive-light:var(--g-color-private-green-150);--g-color-base-positive-light-hover:var(--g-color-private-green-200);--g-color-base-positive-medium:var(--g-color-private-green-300);--g-color-base-positive-medium-hover:var(--g-color-private-green-400);--g-color-base-positive-heavy:var(--g-color-private-green-600-solid);--g-color-base-positive-heavy-hover:var(--g-color-private-green-700-solid);--g-color-base-warning-light:var(--g-color-private-yellow-150);--g-color-base-warning-light-hover:var(--g-color-private-yellow-200);--g-color-base-warning-medium:var(--g-color-private-yellow-300);--g-color-base-warning-medium-hover:var(--g-color-private-yellow-400);--g-color-base-warning-heavy:var(--g-color-private-yellow-600-solid);--g-color-base-warning-heavy-hover:var(--g-color-private-yellow-700-solid);--g-color-base-danger-light:var(--g-color-private-red-150);--g-color-base-danger-light-hover:var(--g-color-private-red-200);--g-color-base-danger-medium:var(--g-color-private-red-300);--g-color-base-danger-medium-hover:var(--g-color-private-red-400);--g-color-base-danger-heavy:var(--g-color-private-red-600-solid);--g-color-base-danger-heavy-hover:var(--g-color-private-red-700-solid);--g-color-base-utility-light:var(--g-color-private-purple-150);--g-color-base-utility-light-hover:var(--g-color-private-purple-250);--g-color-base-utility-medium:var(--g-color-private-purple-300);--g-color-base-utility-medium-hover:var(--g-color-private-purple-400);--g-color-base-utility-heavy:var(--g-color-private-purple-600-solid);--g-color-base-utility-heavy-hover:var(--g-color-private-purple-700-solid);--g-color-base-neutral-light:var(--g-color-private-white-100);--g-color-base-neutral-light-hover:var(--g-color-private-white-150);--g-color-base-neutral-medium:var(--g-color-private-white-250);--g-color-base-neutral-medium-hover:var(--g-color-private-white-350);--g-color-base-neutral-heavy:var(--g-color-private-white-550);--g-color-base-neutral-heavy-hover:var(--g-color-private-white-650);--g-color-base-misc-light:var(--g-color-private-cool-grey-150);--g-color-base-misc-light-hover:var(--g-color-private-cool-grey-200);--g-color-base-misc-medium:var(--g-color-private-cool-grey-300);--g-color-base-misc-medium-hover:var(--g-color-private-cool-grey-400);--g-color-base-misc-heavy:var(--g-color-private-cool-grey-600-solid);--g-color-base-misc-heavy-hover:var(--g-color-private-cool-grey-700-solid);--g-color-base-light:var(--g-color-private-white-850);--g-color-base-light-hover:var(--g-color-private-white-700);--g-color-base-light-simple-hover:var(--g-color-private-white-150);--g-color-base-light-disabled:var(--g-color-private-white-150);--g-color-base-light-accent-disabled:var(--g-color-private-white-300);--g-color-base-float:var(--g-color-private-white-100-solid);--g-color-base-float-hover:var(--g-color-private-white-150-solid);--g-color-base-float-heavy:var(--g-color-private-white-250-solid);--g-color-base-float-accent:var(--g-color-private-white-150-solid);--g-color-base-float-accent-hover:var(--g-color-private-white-200-solid);--g-color-base-float-announcement:var(--g-color-private-white-150-solid);--g-color-base-modal:var(--g-color-base-background);--g-color-line-generic:var(--g-color-private-white-150);--g-color-line-generic-hover:var(--g-color-private-white-250);--g-color-line-generic-active:var(--g-color-private-white-300);--g-color-line-generic-accent:var(--g-color-private-white-150);--g-color-line-generic-accent-hover:var(--g-color-private-white-300);--g-color-line-generic-solid:var(--g-color-private-white-150-solid);--g-color-line-brand:var(--g-color-private-yellow-600-solid);--g-color-line-focus:var(--g-color-private-cool-grey-450);--g-color-line-light:var(--g-color-private-white-500);--g-color-line-info:var(--g-color-private-blue-450);--g-color-line-positive:var(--g-color-private-green-450);--g-color-line-warning:var(--g-color-private-yellow-450);--g-color-line-danger:var(--g-color-private-red-450);--g-color-line-utility:var(--g-color-private-purple-450);--g-color-line-misc:var(--g-color-private-cool-grey-450);--g-color-sfx-veil:var(--g-color-private-black-600);--g-color-sfx-shadow:var(--g-color-private-black-200);--g-color-sfx-shadow-heavy:var(--g-color-private-black-500);--g-color-sfx-shadow-light:var(--g-color-private-black-200);--g-color-sfx-fade:var(--g-color-private-white-250);--g-color-scroll-track:var(--g-color-base-background);--g-color-scroll-handle:var(--g-color-private-white-150);--g-color-scroll-handle-hover:var(--g-color-private-white-250);--g-color-scroll-corner:var(--g-color-private-white-150);--g-color-infographics-axis:var(--g-color-private-white-150-solid);--g-color-infographics-tooltip-bg:var(--g-color-private-white-opaque-150)}.g-root_theme_light-hc{--g-color-private-blue-50:rgba(54,151,241,.1);--g-color-private-blue-100:rgba(54,151,241,.15);--g-color-private-blue-150:rgba(54,151,241,.2);--g-color-private-blue-200:rgba(54,151,241,.3);--g-color-private-blue-250:rgba(54,151,241,.4);--g-color-private-blue-300:rgba(54,151,241,.5);--g-color-private-blue-350:rgba(54,151,241,.6);--g-color-private-blue-400:rgba(54,151,241,.7);--g-color-private-blue-450:rgba(54,151,241,.8);--g-color-private-blue-500:rgba(54,151,241,.9);--g-color-private-blue-50-solid:#ebf5fe;--g-color-private-blue-100-solid:#e1effd;--g-color-private-blue-150-solid:#d7eafc;--g-color-private-blue-200-solid:#c3e0fb;--g-color-private-blue-250-solid:#afd5f9;--g-color-private-blue-300-solid:#9bcbf8;--g-color-private-blue-350-solid:#86c1f7;--g-color-private-blue-400-solid:#72b6f5;--g-color-private-blue-450-solid:#5eacf4;--g-color-private-blue-500-solid:#4aa1f2;--g-color-private-blue-550-solid:#3697f1;--g-color-private-blue-600-solid:#328adb;--g-color-private-blue-650-solid:#2f7cc4;--g-color-private-blue-700-solid:#2b6fae;--g-color-private-blue-750-solid:#286198;--g-color-private-blue-800-solid:#245482;--g-color-private-blue-850-solid:#20476b;--g-color-private-blue-900-solid:#1d3955;--g-color-private-blue-950-solid:#192c3f;--g-color-private-blue-1000-solid:#172533;--g-color-private-green-50:rgba(50,186,118,.1);--g-color-private-green-100:rgba(50,186,118,.15);--g-color-private-green-150:rgba(50,186,118,.2);--g-color-private-green-200:rgba(50,186,118,.3);--g-color-private-green-250:rgba(50,186,118,.4);--g-color-private-green-300:rgba(50,186,118,.5);--g-color-private-green-350:rgba(50,186,118,.6);--g-color-private-green-400:rgba(50,186,118,.7);--g-color-private-green-450:rgba(50,186,118,.8);--g-color-private-green-500:rgba(50,186,118,.9);--g-color-private-green-50-solid:#ebf8f1;--g-color-private-green-100-solid:#e0f5ea;--g-color-private-green-150-solid:#d6f1e4;--g-color-private-green-200-solid:#c2ead6;--g-color-private-green-250-solid:#ade3c8;--g-color-private-green-300-solid:#9db;--g-color-private-green-350-solid:#84d6ad;--g-color-private-green-400-solid:#70cf9f;--g-color-private-green-450-solid:#5bc891;--g-color-private-green-500-solid:#47c184;--g-color-private-green-550-solid:#32ba76;--g-color-private-green-600-solid:#2fa96c;--g-color-private-green-650-solid:#2c9862;--g-color-private-green-700-solid:#288758;--g-color-private-green-750-solid:#25764e;--g-color-private-green-800-solid:#264;--g-color-private-green-850-solid:#1f553a;--g-color-private-green-900-solid:#1c4430;--g-color-private-green-950-solid:#183326;--g-color-private-green-1000-solid:#172a21;--g-color-private-yellow-50:rgba(255,190,92,.1);--g-color-private-yellow-100:rgba(255,190,92,.15);--g-color-private-yellow-150:rgba(255,190,92,.2);--g-color-private-yellow-200:rgba(255,190,92,.3);--g-color-private-yellow-250:rgba(255,190,92,.4);--g-color-private-yellow-300:rgba(255,190,92,.5);--g-color-private-yellow-350:rgba(255,190,92,.6);--g-color-private-yellow-400:rgba(255,190,92,.7);--g-color-private-yellow-450:rgba(255,190,92,.8);--g-color-private-yellow-500:rgba(255,190,92,.9);--g-color-private-yellow-50-solid:#fff9ef;--g-color-private-yellow-100-solid:#fff5e7;--g-color-private-yellow-150-solid:#fff2de;--g-color-private-yellow-200-solid:#ffecce;--g-color-private-yellow-250-solid:#ffe5be;--g-color-private-yellow-300-solid:#ffdfae;--g-color-private-yellow-350-solid:#ffd89d;--g-color-private-yellow-400-solid:#ffd28d;--g-color-private-yellow-450-solid:#ffcb7d;--g-color-private-yellow-500-solid:#ffc56c;--g-color-private-yellow-550-solid:#ffbe5c;--g-color-private-yellow-600-solid:#e7ad55;--g-color-private-yellow-650-solid:#d09b4d;--g-color-private-yellow-700-solid:#b88a46;--g-color-private-yellow-750-solid:#a0793e;--g-color-private-yellow-800-solid:#896837;--g-color-private-yellow-850-solid:#715630;--g-color-private-yellow-900-solid:#594528;--g-color-private-yellow-950-solid:#413421;--g-color-private-yellow-1000-solid:#362b1d;--g-color-private-orange-400-solid:#ffa04d;--g-color-private-orange-500-solid:#ff8519;--g-color-private-orange-600-solid:#e76d02;--g-color-private-orange-650-solid:#d06304;--g-color-private-orange-700-solid:#b85805;--g-color-private-orange-750-solid:#a04e07;--g-color-private-orange-800-solid:#894409;--g-color-private-orange-850-solid:#713a0b;--g-color-private-orange-900-solid:#59300d;--g-color-private-orange-950-solid:#41250e;--g-color-private-orange-1000-solid:#36200f;--g-color-private-red-50:rgba(255,0,61,.1);--g-color-private-red-100:rgba(255,0,61,.15);--g-color-private-red-150:rgba(255,0,61,.2);--g-color-private-red-200:rgba(255,0,61,.3);--g-color-private-red-250:rgba(255,0,61,.4);--g-color-private-red-300:rgba(255,0,61,.5);--g-color-private-red-350:rgba(255,0,61,.6);--g-color-private-red-400:rgba(255,0,61,.7);--g-color-private-red-450:rgba(255,0,61,.8);--g-color-private-red-500:rgba(255,0,61,.9);--g-color-private-red-50-solid:#ffe6ec;--g-color-private-red-100-solid:#ffd9e2;--g-color-private-red-150-solid:#ffccd8;--g-color-private-red-200-solid:#ffb3c5;--g-color-private-red-250-solid:#ff99b1;--g-color-private-red-300-solid:#ff809e;--g-color-private-red-350-solid:#ff668b;--g-color-private-red-400-solid:#ff4d77;--g-color-private-red-450-solid:#ff3364;--g-color-private-red-500-solid:#ff1950;--g-color-private-red-550-solid:#ff003d;--g-color-private-red-600-solid:#e70239;--g-color-private-red-650-solid:#d00334;--g-color-private-red-700-solid:#b80530;--g-color-private-red-750-solid:#a0072c;--g-color-private-red-800-solid:#890928;--g-color-private-red-850-solid:#710a23;--g-color-private-red-900-solid:#590c1f;--g-color-private-red-950-solid:#410e1b;--g-color-private-red-1000-solid:#360e18;--g-color-private-purple-600-solid:#834cb9;--g-color-private-purple-650-solid:#7645a7;--g-color-private-purple-700-solid:#6a3f94;--g-color-private-purple-750-solid:#5d3882;--g-color-private-purple-800-solid:#51326f;--g-color-private-purple-850-solid:#442b5c;--g-color-private-purple-900-solid:#38254a;--g-color-private-purple-950-solid:#2b1e37;--g-color-private-purple-1000-solid:#251b2e;--g-color-private-cool-grey-300-solid:#b5c2cc;--g-color-private-cool-grey-600-solid:#62798c;--g-color-private-cool-grey-650-solid:#596d7e;--g-color-private-cool-grey-700-solid:#506271;--g-color-private-cool-grey-750-solid:#475663;--g-color-private-cool-grey-800-solid:#3f4b56;--g-color-private-cool-grey-850-solid:#363f48;--g-color-private-cool-grey-900-solid:#2d343b;--g-color-private-cool-grey-950-solid:#24282d;--g-color-private-cool-grey-1000-solid:#1f2226;--g-color-text-primary:var(--g-color-text-dark-primary);--g-color-text-complementary:var(--g-color-text-dark-complementary);--g-color-text-secondary:var(--g-color-text-dark-secondary);--g-color-text-hint:var(--g-color-text-dark-hint);--g-color-text-info:var(--g-color-private-blue-650-solid);--g-color-text-positive:var(--g-color-private-green-650-solid);--g-color-text-warning:var(--g-color-private-yellow-700-solid);--g-color-text-danger:var(--g-color-private-red-650-solid);--g-color-text-utility:var(--g-color-private-purple-650-solid);--g-color-text-misc:var(--g-color-private-cool-grey-650-solid);--g-color-text-info-heavy:var(--g-color-private-blue-900-solid);--g-color-text-positive-heavy:var(--g-color-private-green-900-solid);--g-color-text-warning-heavy:var(--g-color-private-orange-900-solid);--g-color-text-danger-heavy:var(--g-color-private-red-900-solid);--g-color-text-utility-heavy:var(--g-color-private-purple-900-solid);--g-color-text-misc-heavy:var(--g-color-private-cool-grey-900-solid);--g-color-text-brand:var(--g-color-private-yellow-700-solid);--g-color-text-brand-heavy:var(--g-color-private-orange-900-solid);--g-color-text-brand-contrast:var(--g-color-text-dark-primary);--g-color-text-link:var(--g-color-private-yellow-700-solid);--g-color-text-link-hover:var(--g-color-private-orange-700-solid);--g-color-text-link-visited:var(--g-color-private-purple-600-solid);--g-color-text-link-visited-hover:var(--g-color-private-purple-850-solid);--g-color-text-dark-primary:var(--g-color-private-black-1000-solid);--g-color-text-dark-complementary:var(--g-color-private-black-850);--g-color-text-dark-secondary:var(--g-color-private-black-700);--g-color-text-dark-hint:var(--g-color-private-black-500);--g-color-text-light-primary:var(--g-color-private-white-1000-solid);--g-color-text-light-complementary:var(--g-color-private-white-850);--g-color-text-light-secondary:var(--g-color-private-white-700);--g-color-text-light-hint:var(--g-color-private-white-500);--g-color-text-inverted-primary:var(--g-color-text-light-primary);--g-color-text-inverted-complementary:var(--g-color-text-light-complementary);--g-color-text-inverted-secondary:var(--g-color-text-light-secondary);--g-color-text-inverted-hint:var(--g-color-text-light-hint);--g-color-base-background:var(--g-color-private-white-1000-solid);--g-color-base-generic:var(--g-color-private-black-150);--g-color-base-generic-hover:var(--g-color-private-black-300);--g-color-base-generic-medium:var(--g-color-private-black-250);--g-color-base-generic-medium-hover:var(--g-color-private-black-350);--g-color-base-generic-accent:var(--g-color-private-black-250);--g-color-base-generic-accent-disabled:var(--g-color-private-black-150);--g-color-base-generic-ultralight:var(--g-color-private-black-50-solid);--g-color-base-simple-hover:var(--g-color-private-black-150);--g-color-base-simple-hover-solid:var(--g-color-private-black-150-solid);--g-color-base-brand:var(--g-color-private-yellow-550-solid);--g-color-base-brand-hover:var(--g-color-private-yellow-650-solid);--g-color-base-selection:var(--g-color-private-yellow-300);--g-color-base-selection-hover:var(--g-color-private-yellow-400);--g-color-base-info-light:var(--g-color-private-blue-250);--g-color-base-info-light-hover:var(--g-color-private-blue-350);--g-color-base-info-medium:var(--g-color-private-blue-400);--g-color-base-info-medium-hover:var(--g-color-private-blue-500);--g-color-base-info-heavy:var(--g-color-private-blue-700-solid);--g-color-base-info-heavy-hover:var(--g-color-private-blue-850-solid);--g-color-base-positive-light:var(--g-color-private-green-250);--g-color-base-positive-light-hover:var(--g-color-private-green-350);--g-color-base-positive-medium:var(--g-color-private-green-400);--g-color-base-positive-medium-hover:var(--g-color-private-green-500);--g-color-base-positive-heavy:var(--g-color-private-green-700-solid);--g-color-base-positive-heavy-hover:var(--g-color-private-green-800-solid);--g-color-base-warning-light:var(--g-color-private-yellow-300);--g-color-base-warning-light-hover:var(--g-color-private-yellow-400);--g-color-base-warning-medium:var(--g-color-private-yellow-400);--g-color-base-warning-medium-hover:var(--g-color-private-yellow-550-solid);--g-color-base-warning-heavy:var(--g-color-private-yellow-600-solid);--g-color-base-warning-heavy-hover:var(--g-color-private-yellow-700-solid);--g-color-base-danger-light:var(--g-color-private-red-250);--g-color-base-danger-light-hover:var(--g-color-private-red-350);--g-color-base-danger-medium:var(--g-color-private-red-400);--g-color-base-danger-medium-hover:var(--g-color-private-red-500);--g-color-base-danger-heavy:var(--g-color-private-red-700-solid);--g-color-base-danger-heavy-hover:var(--g-color-private-red-800-solid);--g-color-base-utility-light:var(--g-color-private-purple-250);--g-color-base-utility-light-hover:var(--g-color-private-purple-350);--g-color-base-utility-medium:var(--g-color-private-purple-400);--g-color-base-utility-medium-hover:var(--g-color-private-purple-500);--g-color-base-utility-heavy:var(--g-color-private-purple-700-solid);--g-color-base-utility-heavy-hover:var(--g-color-private-purple-800-solid);--g-color-base-neutral-light:var(--g-color-private-black-150);--g-color-base-neutral-light-hover:var(--g-color-private-black-250);--g-color-base-neutral-medium:var(--g-color-private-black-300);--g-color-base-neutral-medium-hover:var(--g-color-private-black-400);--g-color-base-neutral-heavy:var(--g-color-private-black-550);--g-color-base-neutral-heavy-hover:var(--g-color-private-black-650);--g-color-base-misc-light:var(--g-color-private-cool-grey-250);--g-color-base-misc-light-hover:var(--g-color-private-cool-grey-350);--g-color-base-misc-medium:var(--g-color-private-cool-grey-400);--g-color-base-misc-medium-hover:var(--g-color-private-cool-grey-500);--g-color-base-misc-heavy:var(--g-color-private-cool-grey-700-solid);--g-color-base-misc-heavy-hover:var(--g-color-private-cool-grey-800-solid);--g-color-base-light:var(--g-color-private-white-1000-solid);--g-color-base-light-hover:var(--g-color-private-white-850);--g-color-base-light-simple-hover:var(--g-color-private-white-300);--g-color-base-light-disabled:var(--g-color-private-white-150);--g-color-base-light-accent-disabled:var(--g-color-private-white-300);--g-color-base-float:var(--g-color-private-white-1000-solid);--g-color-base-float-hover:var(--g-color-private-black-150-solid);--g-color-base-float-heavy:var(--g-color-private-black-700-solid);--g-color-base-float-accent:var(--g-color-private-white-1000-solid);--g-color-base-float-accent-hover:var(--g-color-private-white-850);--g-color-base-float-announcement:var(--g-color-private-cool-grey-150-solid);--g-color-base-modal:var(--g-color-base-background);--g-color-line-generic:var(--g-color-private-black-200);--g-color-line-generic-hover:var(--g-color-private-black-400);--g-color-line-generic-active:var(--g-color-private-black-700);--g-color-line-generic-accent:var(--g-color-private-black-300);--g-color-line-generic-accent-hover:var(--g-color-private-black-700);--g-color-line-generic-solid:var(--g-color-private-black-200-solid);--g-color-line-brand:var(--g-color-private-yellow-600-solid);--g-color-line-focus:var(--g-color-private-cool-grey-450);--g-color-line-light:var(--g-color-private-white-500);--g-color-line-info:var(--g-color-private-blue-450);--g-color-line-positive:var(--g-color-private-green-450);--g-color-line-warning:var(--g-color-private-yellow-600-solid);--g-color-line-danger:var(--g-color-private-red-450);--g-color-line-utility:var(--g-color-private-purple-450);--g-color-line-misc:var(--g-color-private-cool-grey-450);--g-color-sfx-veil:var(--g-color-private-black-450);--g-color-sfx-shadow:var(--g-color-private-black-300);--g-color-sfx-shadow-heavy:var(--g-color-private-black-600);--g-color-sfx-shadow-light:var(--g-color-private-black-100);--g-color-sfx-fade:var(--g-color-private-white-300);--g-color-scroll-track:var(--g-color-base-background);--g-color-scroll-handle:var(--g-color-private-black-100);--g-color-scroll-handle-hover:var(--g-color-private-black-150);--g-color-scroll-corner:var(--g-color-private-black-100);--g-color-infographics-axis:var(--g-color-private-black-150-solid);--g-color-infographics-tooltip-bg:var(--g-color-private-white-950)}.g-root_theme_dark-hc{--g-color-private-white-50-solid:#1e1d1e;--g-color-private-white-70-solid:#232223;--g-color-private-white-100-solid:#2a292a;--g-color-private-white-150-solid:#363536;--g-color-private-white-200-solid:#414141;--g-color-private-white-250-solid:#4d4d4d;--g-color-private-white-300-solid:#595859;--g-color-private-white-350-solid:#656465;--g-color-private-white-400-solid:#717071;--g-color-private-white-450-solid:#7d7c7d;--g-color-private-white-500-solid:#888;--g-color-private-white-550-solid:#949494;--g-color-private-white-600-solid:#a0a0a0;--g-color-private-white-650-solid:#acacac;--g-color-private-white-700-solid:#b8b8b8;--g-color-private-white-750-solid:#c4c3c4;--g-color-private-white-800-solid:#d0cfd0;--g-color-private-white-850-solid:#d0cfd0;--g-color-private-white-900-solid:#e7e7e7;--g-color-private-white-950-solid:#f3f3f3;--g-color-private-blue-50:rgba(54,151,241,.1);--g-color-private-blue-100:rgba(54,151,241,.15);--g-color-private-blue-150:rgba(54,151,241,.2);--g-color-private-blue-200:rgba(54,151,241,.3);--g-color-private-blue-250:rgba(54,151,241,.4);--g-color-private-blue-300:rgba(54,151,241,.5);--g-color-private-blue-350:rgba(54,151,241,.6);--g-color-private-blue-400:rgba(54,151,241,.7);--g-color-private-blue-450:rgba(54,151,241,.8);--g-color-private-blue-500:rgba(54,151,241,.9);--g-color-private-blue-50-solid:#161e28;--g-color-private-blue-100-solid:#172533;--g-color-private-blue-150-solid:#192c3f;--g-color-private-blue-200-solid:#1d3955;--g-color-private-blue-250-solid:#20476b;--g-color-private-blue-300-solid:#245482;--g-color-private-blue-350-solid:#286198;--g-color-private-blue-400-solid:#2b6fae;--g-color-private-blue-450-solid:#2f7cc4;--g-color-private-blue-500-solid:#328adb;--g-color-private-blue-550-solid:#3697f1;--g-color-private-blue-600-solid:#4aa1f2;--g-color-private-blue-650-solid:#5eacf4;--g-color-private-blue-700-solid:#72b6f5;--g-color-private-blue-750-solid:#86c1f7;--g-color-private-blue-800-solid:#9bcbf8;--g-color-private-blue-850-solid:#afd5f9;--g-color-private-blue-900-solid:#c3e0fb;--g-color-private-blue-950-solid:#d7eafc;--g-color-private-blue-1000-solid:#e1effd;--g-color-private-green-50:rgba(77,176,155,.1);--g-color-private-green-100:rgba(77,176,155,.15);--g-color-private-green-150:rgba(77,176,155,.2);--g-color-private-green-200:rgba(77,176,155,.3);--g-color-private-green-250:rgba(77,176,155,.4);--g-color-private-green-300:rgba(77,176,155,.5);--g-color-private-green-350:rgba(77,176,155,.6);--g-color-private-green-400:rgba(77,176,155,.7);--g-color-private-green-450:rgba(77,176,155,.8);--g-color-private-green-500:rgba(77,176,155,.9);--g-color-private-green-50-solid:#182120;--g-color-private-green-100-solid:#1b2927;--g-color-private-green-150-solid:#1e312d;--g-color-private-green-200-solid:#24413b;--g-color-private-green-250-solid:#2a5149;--g-color-private-green-300-solid:#306157;--g-color-private-green-350-solid:#357064;--g-color-private-green-400-solid:#3b8072;--g-color-private-green-450-solid:#419080;--g-color-private-green-500-solid:#47a08d;--g-color-private-green-550-solid:#4db09b;--g-color-private-green-600-solid:#5fb8a5;--g-color-private-green-650-solid:#71c0af;--g-color-private-green-700-solid:#82c8b9;--g-color-private-green-750-solid:#94d0c3;--g-color-private-green-800-solid:#a6d8cd;--g-color-private-green-850-solid:#b8dfd7;--g-color-private-green-900-solid:#cae7e1;--g-color-private-green-950-solid:#dbefeb;--g-color-private-green-1000-solid:#e4f3f0;--g-color-private-yellow-50:rgba(255,190,92,.1);--g-color-private-yellow-100:rgba(255,190,92,.15);--g-color-private-yellow-150:rgba(255,190,92,.2);--g-color-private-yellow-200:rgba(255,190,92,.3);--g-color-private-yellow-250:rgba(255,190,92,.4);--g-color-private-yellow-300:rgba(255,190,92,.5);--g-color-private-yellow-350:rgba(255,190,92,.6);--g-color-private-yellow-400:rgba(255,190,92,.7);--g-color-private-yellow-450:rgba(255,190,92,.8);--g-color-private-yellow-500:rgba(255,190,92,.9);--g-color-private-yellow-50-solid:#2a2219;--g-color-private-yellow-100-solid:#362b1d;--g-color-private-yellow-150-solid:#413421;--g-color-private-yellow-200-solid:#594528;--g-color-private-yellow-250-solid:#715630;--g-color-private-yellow-300-solid:#896837;--g-color-private-yellow-350-solid:#a0793e;--g-color-private-yellow-400-solid:#b88a46;--g-color-private-yellow-450-solid:#d09b4d;--g-color-private-yellow-500-solid:#e7ad55;--g-color-private-yellow-550-solid:#ffbe5c;--g-color-private-yellow-600-solid:#ffc56c;--g-color-private-yellow-650-solid:#ffcb7d;--g-color-private-yellow-700-solid:#ffd28d;--g-color-private-yellow-750-solid:#ffd89d;--g-color-private-yellow-800-solid:#ffdfae;--g-color-private-yellow-850-solid:#ffe5be;--g-color-private-yellow-900-solid:#ffecce;--g-color-private-yellow-950-solid:#fff2de;--g-color-private-yellow-1000-solid:#fff5e7;--g-color-private-orange-50-solid:#241911;--g-color-private-orange-100-solid:#2d1d11;--g-color-private-orange-150-solid:#362111;--g-color-private-orange-200-solid:#492a10;--g-color-private-orange-250-solid:#5b3210;--g-color-private-orange-300-solid:#6d3a0f;--g-color-private-orange-350-solid:#7f420e;--g-color-private-orange-400-solid:#914a0e;--g-color-private-orange-450-solid:#a4530d;--g-color-private-orange-500-solid:#b65b0d;--g-color-private-orange-700-solid:#d99255;--g-color-private-orange-800-solid:#e4b186;--g-color-private-red-50:rgba(229,50,93,.1);--g-color-private-red-100:rgba(229,50,93,.15);--g-color-private-red-150:rgba(229,50,93,.2);--g-color-private-red-200:rgba(229,50,93,.3);--g-color-private-red-250:rgba(229,50,93,.4);--g-color-private-red-300:rgba(229,50,93,.5);--g-color-private-red-350:rgba(229,50,93,.6);--g-color-private-red-400:rgba(229,50,93,.7);--g-color-private-red-450:rgba(229,50,93,.8);--g-color-private-red-500:rgba(229,50,93,.9);--g-color-private-red-50-solid:#27141a;--g-color-private-red-100-solid:#32161d;--g-color-private-red-150-solid:#3c1821;--g-color-private-red-200-solid:#511b29;--g-color-private-red-250-solid:#661e30;--g-color-private-red-300-solid:#7c2238;--g-color-private-red-350-solid:#91253f;--g-color-private-red-400-solid:#a62847;--g-color-private-red-450-solid:#bb2b4e;--g-color-private-red-500-solid:#d02f56;--g-color-private-red-550-solid:#e5325d;--g-color-private-red-600-solid:#e8476d;--g-color-private-red-650-solid:#ea5b7d;--g-color-private-red-700-solid:#ed708e;--g-color-private-red-750-solid:#ef849e;--g-color-private-red-800-solid:#f299ae;--g-color-private-red-850-solid:#f5adbe;--g-color-private-red-900-solid:#f7c2ce;--g-color-private-red-950-solid:#fad6df;--g-color-private-red-1000-solid:#fbe0e7;--g-color-private-purple-50-solid:#1f1825;--g-color-private-purple-100-solid:#251b2e;--g-color-private-purple-150-solid:#2b1e37;--g-color-private-purple-200-solid:#38254a;--g-color-private-purple-250-solid:#442b5c;--g-color-private-purple-300-solid:#51326f;--g-color-private-purple-350-solid:#5d3882;--g-color-private-purple-400-solid:#6a3f94;--g-color-private-purple-450-solid:#7645a7;--g-color-private-purple-500-solid:#834cb9;--g-color-private-cool-grey-50-solid:#1a1c20;--g-color-private-cool-grey-100-solid:#1e2227;--g-color-private-cool-grey-150-solid:#22272e;--g-color-private-cool-grey-200-solid:#29323b;--g-color-private-cool-grey-250-solid:#313d49;--g-color-private-cool-grey-300-solid:#394957;--g-color-private-cool-grey-350-solid:#415465;--g-color-private-cool-grey-400-solid:#495f73;--g-color-private-cool-grey-450-solid:#506a80;--g-color-private-cool-grey-500-solid:#58758e;--g-color-private-cool-grey-750-solid:#a0b3c4;--g-color-private-cool-grey-800-solid:#b0c0ce;--g-color-text-primary:var(--g-color-text-light-primary);--g-color-text-complementary:var(--g-color-text-light-complementary);--g-color-text-secondary:var(--g-color-text-light-secondary);--g-color-text-hint:var(--g-color-text-light-hint);--g-color-text-info:var(--g-color-private-blue-650-solid);--g-color-text-positive:var(--g-color-private-green-650-solid);--g-color-text-warning:var(--g-color-private-yellow-650-solid);--g-color-text-danger:var(--g-color-private-red-650-solid);--g-color-text-utility:var(--g-color-private-purple-650-solid);--g-color-text-misc:var(--g-color-private-cool-grey-650-solid);--g-color-text-info-heavy:var(--g-color-private-blue-850-solid);--g-color-text-positive-heavy:var(--g-color-private-green-850-solid);--g-color-text-warning-heavy:var(--g-color-private-yellow-850-solid);--g-color-text-danger-heavy:var(--g-color-private-red-850-solid);--g-color-text-utility-heavy:var(--g-color-private-purple-850-solid);--g-color-text-misc-heavy:var(--g-color-private-cool-grey-850-solid);--g-color-text-brand:var(--g-color-private-yellow-600-solid);--g-color-text-brand-heavy:var(--g-color-private-yellow-700-solid);--g-color-text-brand-contrast:var(--g-color-text-dark-primary);--g-color-text-link:var(--g-color-private-yellow-550-solid);--g-color-text-link-hover:var(--g-color-private-orange-550-solid);--g-color-text-link-visited:var(--g-color-private-purple-650-solid);--g-color-text-link-visited-hover:var(--g-color-private-purple-800-solid);--g-color-text-dark-primary:var(--g-color-private-black-1000-solid);--g-color-text-dark-complementary:var(--g-color-private-black-800);--g-color-text-dark-secondary:var(--g-color-private-black-600);--g-color-text-dark-hint:var(--g-color-private-black-400);--g-color-text-light-primary:var(--g-color-private-white-1000-solid);--g-color-text-light-complementary:var(--g-color-private-white-800);--g-color-text-light-secondary:var(--g-color-private-white-600);--g-color-text-light-hint:var(--g-color-private-white-400);--g-color-text-inverted-primary:var(--g-color-text-dark-primary);--g-color-text-inverted-complementary:var(--g-color-text-dark-complementary);--g-color-text-inverted-secondary:var(--g-color-text-dark-secondary);--g-color-text-inverted-hint:var(--g-color-text-dark-hint);--g-color-base-background:#121112;--g-color-base-generic:var(--g-color-private-white-100);--g-color-base-generic-hover:var(--g-color-private-white-250);--g-color-base-generic-medium:var(--g-color-private-white-250);--g-color-base-generic-medium-hover:var(--g-color-private-white-400);--g-color-base-generic-accent:var(--g-color-private-white-200);--g-color-base-generic-accent-disabled:var(--g-color-private-white-150);--g-color-base-generic-ultralight:var(--g-color-private-white-50);--g-color-base-simple-hover:var(--g-color-private-white-250);--g-color-base-simple-hover-solid:var(--g-color-private-white-250-solid);--g-color-base-brand:var(--g-color-private-yellow-550-solid);--g-color-base-brand-hover:var(--g-color-private-yellow-700-solid);--g-color-base-selection:var(--g-color-private-yellow-250);--g-color-base-selection-hover:var(--g-color-private-yellow-400);--g-color-base-info-light:var(--g-color-private-blue-250);--g-color-base-info-light-hover:var(--g-color-private-blue-400);--g-color-base-info-medium:var(--g-color-private-blue-450);--g-color-base-info-medium-hover:var(--g-color-private-blue-600-solid);--g-color-base-info-heavy:var(--g-color-private-blue-700-solid);--g-color-base-info-heavy-hover:var(--g-color-private-blue-850-solid);--g-color-base-positive-light:var(--g-color-private-green-250);--g-color-base-positive-light-hover:var(--g-color-private-green-400);--g-color-base-positive-medium:var(--g-color-private-green-450);--g-color-base-positive-medium-hover:var(--g-color-private-green-600-solid);--g-color-base-positive-heavy:var(--g-color-private-green-700-solid);--g-color-base-positive-heavy-hover:var(--g-color-private-green-850-solid);--g-color-base-warning-light:var(--g-color-private-yellow-250);--g-color-base-warning-light-hover:var(--g-color-private-yellow-400);--g-color-base-warning-medium:var(--g-color-private-yellow-450);--g-color-base-warning-medium-hover:var(--g-color-private-yellow-600-solid);--g-color-base-warning-heavy:var(--g-color-private-yellow-700-solid);--g-color-base-warning-heavy-hover:var(--g-color-private-yellow-850-solid);--g-color-base-danger-light:var(--g-color-private-red-250);--g-color-base-danger-light-hover:var(--g-color-private-red-400);--g-color-base-danger-medium:var(--g-color-private-red-450);--g-color-base-danger-medium-hover:var(--g-color-private-red-600-solid);--g-color-base-danger-heavy:var(--g-color-private-red-700-solid);--g-color-base-danger-heavy-hover:var(--g-color-private-red-850-solid);--g-color-base-utility-light:var(--g-color-private-purple-250);--g-color-base-utility-light-hover:var(--g-color-private-purple-400);--g-color-base-utility-medium:var(--g-color-private-purple-450);--g-color-base-utility-medium-hover:var(--g-color-private-purple-600-solid);--g-color-base-utility-heavy:var(--g-color-private-purple-700-solid);--g-color-base-utility-heavy-hover:var(--g-color-private-purple-850-solid);--g-color-base-neutral-light:var(--g-color-private-white-200);--g-color-base-neutral-light-hover:var(--g-color-private-white-350);--g-color-base-neutral-medium:var(--g-color-private-white-400);--g-color-base-neutral-medium-hover:var(--g-color-private-white-550);--g-color-base-neutral-heavy:var(--g-color-private-white-650);--g-color-base-neutral-heavy-hover:var(--g-color-private-white-750);--g-color-base-misc-light:var(--g-color-private-cool-grey-250);--g-color-base-misc-light-hover:var(--g-color-private-cool-grey-400);--g-color-base-misc-medium:var(--g-color-private-cool-grey-450);--g-color-base-misc-medium-hover:var(--g-color-private-cool-grey-600-solid);--g-color-base-misc-heavy:var(--g-color-private-cool-grey-700-solid);--g-color-base-misc-heavy-hover:var(--g-color-private-cool-grey-850-solid);--g-color-base-light:var(--g-color-private-white-850);--g-color-base-light-hover:var(--g-color-private-white-700);--g-color-base-light-simple-hover:var(--g-color-private-white-150);--g-color-base-light-disabled:var(--g-color-private-white-150);--g-color-base-light-accent-disabled:var(--g-color-private-white-300);--g-color-base-float:var(--g-color-private-white-100-solid);--g-color-base-float-hover:var(--g-color-private-white-200-solid);--g-color-base-float-heavy:var(--g-color-private-white-300-solid);--g-color-base-float-accent:var(--g-color-private-white-300-solid);--g-color-base-float-accent-hover:var(--g-color-private-white-400-solid);--g-color-base-float-announcement:var(--g-color-private-white-200-solid);--g-color-base-modal:var(--g-color-base-background);--g-color-line-generic:var(--g-color-private-white-150);--g-color-line-generic-hover:var(--g-color-private-white-250);--g-color-line-generic-active:var(--g-color-private-white-600);--g-color-line-generic-accent:var(--g-color-private-white-350);--g-color-line-generic-accent-hover:var(--g-color-private-white-800);--g-color-line-generic-solid:var(--g-color-private-white-150-solid);--g-color-line-brand:var(--g-color-private-yellow-600-solid);--g-color-line-focus:var(--g-color-private-cool-grey-550-solid);--g-color-line-light:var(--g-color-private-white-500);--g-color-line-info:var(--g-color-private-blue-550-solid);--g-color-line-positive:var(--g-color-private-green-550-solid);--g-color-line-warning:var(--g-color-private-yellow-550-solid);--g-color-line-danger:var(--g-color-private-red-550-solid);--g-color-line-utility:var(--g-color-private-purple-550-solid);--g-color-line-misc:var(--g-color-private-cool-grey-550-solid);--g-color-sfx-veil:var(--g-color-private-black-700);--g-color-sfx-shadow:var(--g-color-private-black-200);--g-color-sfx-shadow-heavy:var(--g-color-private-black-400);--g-color-sfx-shadow-light:var(--g-color-private-black-200);--g-color-sfx-fade:var(--g-color-private-white-250);--g-color-scroll-track:var(--g-color-base-background);--g-color-scroll-handle:var(--g-color-private-white-150);--g-color-scroll-handle-hover:var(--g-color-private-white-250);--g-color-scroll-corner:var(--g-color-private-white-150);--g-color-infographics-axis:var(--g-color-private-white-150-solid);--g-color-infographics-tooltip-bg:var(--g-color-private-white-opaque-150)}body.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar){scrollbar-color:var(--g-color-scroll-handle) var(--g-color-scroll-track);scrollbar-width:var(--g-scrollbar-width)}body.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar) ::-webkit-scrollbar,body.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar)::-webkit-scrollbar{background:var(--g-color-scroll-track);height:var(--g-scrollbar-width);width:var(--g-scrollbar-width)}body.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar) ::-webkit-scrollbar-track,body.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar)::-webkit-scrollbar-track{background:var(--g-color-scroll-track)}body.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar) ::-webkit-scrollbar-corner,body.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar)::-webkit-scrollbar-corner{background:var(--g-color-scroll-corner)}body.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar) ::-webkit-scrollbar-thumb,body.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar)::-webkit-scrollbar-thumb{background:var(--g-color-scroll-handle)}body.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar) ::-webkit-scrollbar-thumb:hover,body.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar)::-webkit-scrollbar-thumb:hover{background:var(--g-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}}: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-toast-animation-mobile_enter{opacity:0;position:absolute}.yc-toast-animation-mobile_enter_active{-webkit-animation:yc-toast-enter-mobile .6s ease-out forwards;animation:yc-toast-enter-mobile .6s ease-out forwards;position:relative}.yc-toast-animation-mobile_exit_active{-webkit-animation:yc-toast-exit-mobile .6s ease-in forwards;animation:yc-toast-exit-mobile .6s ease-in forwards}@-webkit-keyframes yc-toast-enter-mobile{0%{height:0;margin-bottom:0;opacity:0;padding:0;-webkit-transform:translateY(10px);transform:translateY(10px)}50%{height:var(--yc-toast-height);margin-bottom:var(--yc-toaster-margin);opacity:0;padding:var(--yc-toaster-padding);-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes yc-toast-enter-mobile{0%{height:0;margin-bottom:0;opacity:0;padding:0;-webkit-transform:translateY(10px);transform:translateY(10px)}50%{height:var(--yc-toast-height);margin-bottom:var(--yc-toaster-margin);opacity:0;padding:var(--yc-toaster-padding);-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes yc-toast-exit-mobile{0%{height:var(--yc-toast-height);margin-bottom:var(--yc-toaster-margin);opacity:1;padding:var(--yc-toaster-padding);-webkit-transform:translateX(0);transform:translateX(0)}50%{height:var(--yc-toast-height);margin-bottom:var(--yc-toaster-margin);opacity:0;padding:var(--yc-toaster-padding);-webkit-transform:translateY(10px);transform:translateY(10px)}to{height:0;margin-bottom:0;opacity:0;padding:0;-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes yc-toast-exit-mobile{0%{height:var(--yc-toast-height);margin-bottom:var(--yc-toaster-margin);opacity:1;padding:var(--yc-toaster-padding);-webkit-transform:translateX(0);transform:translateX(0)}50%{height:var(--yc-toast-height);margin-bottom:var(--yc-toaster-margin);opacity:0;padding:var(--yc-toaster-padding);-webkit-transform:translateY(10px);transform:translateY(10px)}to{height:0;margin-bottom:0;opacity:0;padding:0;-webkit-transform:translateY(10px);transform:translateY(10px)}}.yc-toast-animation-desktop_enter{opacity:0;position:absolute}.yc-toast-animation-desktop_enter_active{-webkit-animation:yc-toast-enter-desktop .6s ease-out forwards;animation:yc-toast-enter-desktop .6s ease-out forwards;position:relative}.yc-toast-animation-desktop_exit_active{-webkit-animation:yc-toast-exit-desktop .6s ease-in forwards;animation:yc-toast-exit-desktop .6s ease-in forwards}@-webkit-keyframes yc-toast-enter-desktop{0%{height:0;margin-bottom:0;opacity:0;padding:0;-webkit-transform:translateX(10px);transform:translateX(10px)}50%{height:var(--yc-toast-height);margin-bottom:var(--yc-toaster-margin);opacity:0;padding:var(--yc-toaster-padding);-webkit-transform:translateX(10px);transform:translateX(10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes yc-toast-enter-desktop{0%{height:0;margin-bottom:0;opacity:0;padding:0;-webkit-transform:translateX(10px);transform:translateX(10px)}50%{height:var(--yc-toast-height);margin-bottom:var(--yc-toaster-margin);opacity:0;padding:var(--yc-toaster-padding);-webkit-transform:translateX(10px);transform:translateX(10px)}to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes yc-toast-exit-desktop{0%{height:var(--yc-toast-height);margin-bottom:var(--yc-toaster-margin);opacity:1;padding:var(--yc-toaster-padding);-webkit-transform:translateX(0);transform:translateX(0)}50%{height:var(--yc-toast-height);margin-bottom:var(--yc-toaster-margin);opacity:0;padding:var(--yc-toaster-padding);-webkit-transform:translateX(10px);transform:translateX(10px)}to{height:0;margin-bottom:0;opacity:0;padding:0;-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes yc-toast-exit-desktop{0%{height:var(--yc-toast-height);margin-bottom:var(--yc-toaster-margin);opacity:1;padding:var(--yc-toaster-padding);-webkit-transform:translateX(0);transform:translateX(0)}50%{height:var(--yc-toast-height);margin-bottom:var(--yc-toaster-margin);opacity:0;padding:var(--yc-toaster-padding);-webkit-transform:translateX(10px);transform:translateX(10px)}to{height:0;margin-bottom:0;opacity:0;padding:0;-webkit-transform:translateX(10px);transform:translateX(10px)}}.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)}.g-root{--yc-toaster-desktop-width:312px}.yc-toast{--yc-toaster-margin:10px;--yc-toaster-padding:16px;background-color:var(--g-color-base-background);border-radius:8px;box-shadow:0 0 15px var(--g-color-sfx-shadow);box-sizing:border-box;display:flex;font-size:var(--g-text-body-2-font-size);margin-bottom:var(--yc-toaster-margin);overflow:hidden;padding:var(--yc-toaster-padding);position:relative;width:inherit;z-index:0}.yc-toast_mobile{width:100%}.yc-toast_default{background-color:var(--g-color-base-float)}.yc-toast_info .yc-toast__container:before{background-color:var(--g-color-base-info-light)}.yc-toast_info .yc-toast__icon{color:var(--g-color-text-info-heavy)}.yc-toast_success .yc-toast__container:before{background-color:var(--g-color-base-positive-light)}.yc-toast_success .yc-toast__icon{color:var(--g-color-text-positive-heavy)}.yc-toast_warning .yc-toast__container:before{background-color:var(--g-color-base-warning-light)}.yc-toast_warning .yc-toast__icon{color:var(--g-color-text-warning-heavy)}.yc-toast_error .yc-toast__container:before{background-color:var(--g-color-base-danger-light)}.yc-toast_error .yc-toast__icon{color:var(--g-color-text-danger-heavy)}.yc-toast_utility .yc-toast__container:before{background-color:var(--g-color-base-utility-light)}.yc-toast_utility .yc-toast__icon{color:var(--g-color-text-utility-heavy)}.yc-toast .yc-toast__container{grid-row-gap:8px;display:grid;flex:1 1 auto;grid-template-columns:100%;height:100%;min-height:var(--g-text-body-2-line-height);min-width:0;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;padding-top:2px}.yc-toast__title{font-size:var(--g-text-subheader-3-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-3-line-height);margin:0}.yc-toast__content_without-title,.yc-toast__title{padding-right:32px}.yc-toast__action{margin-right:8px}.yc-toast .yc-toast__btn-close{position:absolute;right:16px;top:16px}.yc-button{--yc-button-background-color:transparent;--yc-button-background-color-hover:var(--g-color-base-simple-hover);--yc-button-outline-color:var(--g-color-line-focus);--yc-button-icon-space:calc(var(--yc-button-padding) + var(--yc-button-icon-size) + var(--yc-button-icon-offset));--yc-button-icon-position:calc(var(--yc-button-padding) - (var(--yc-button-height) - var(--yc-button-icon-size))/2);--yc-button-font-size:var(--g-text-body-1-font-size);-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(--g-text-body-font-family);font-size:inherit;font-size:var(--yc-button-font-size);font-weight:var(--g-text-body-font-weight);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{outline:2px solid var(--yc-button-outline-color)}.yc-button:focus:not(:focus-visible):before{outline: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_xs{--yc-button-height:20px;--yc-button-border-radius:var(--g-border-radius-xs);--yc-button-padding:6px;--yc-button-icon-size:12px;--yc-button-icon-offset:4px}.yc-button_size_s{--yc-button-height:24px;--yc-button-border-radius:var(--g-border-radius-s);--yc-button-padding:8px;--yc-button-icon-size:16px;--yc-button-icon-offset:4px}.yc-button_size_m{--yc-button-height:28px;--yc-button-border-radius:var(--g-border-radius-m);--yc-button-padding:12px;--yc-button-icon-size:16px;--yc-button-icon-offset:8px}.yc-button_size_l{--yc-button-height:36px;--yc-button-border-radius:var(--g-border-radius-l);--yc-button-padding:16px;--yc-button-icon-size:16px;--yc-button-icon-offset:8px}.yc-button_size_xl{--yc-button-height:44px;--yc-button-border-radius:var(--g-border-radius-xl);--yc-button-padding:24px;--yc-button-icon-size:20px;--yc-button-icon-offset:12px;--yc-button-font-size:var(--g-text-body-2-font-size)}.yc-button_view_normal{--yc-button-background-color:var(--g-color-base-generic);--yc-button-background-color-hover:var(--g-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(--g-color-text-primary)}.yc-button_view_action{--yc-button-background-color:var(--g-color-base-brand);--yc-button-background-color-hover:var(--g-color-base-brand-hover);--yc-button-outline-color:var(--g-color-base-brand)}.yc-button_view_action:focus:before{outline-offset:1px}.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(--g-color-text-brand-contrast)}.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(--g-color-text-primary)}.yc-button_view_outlined:before{border:1px solid var(--g-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(--g-color-text-info)}.yc-button_view_outlined-info:before{border:1px solid var(--g-color-line-info)}.yc-button_view_outlined-success,.yc-button_view_outlined-success:active,.yc-button_view_outlined-success:focus,.yc-button_view_outlined-success:hover,.yc-button_view_outlined-success:link,.yc-button_view_outlined-success:visited{color:var(--g-color-text-positive)}.yc-button_view_outlined-success:before{border:1px solid var(--g-color-line-positive)}.yc-button_view_outlined-warning,.yc-button_view_outlined-warning:active,.yc-button_view_outlined-warning:focus,.yc-button_view_outlined-warning:hover,.yc-button_view_outlined-warning:link,.yc-button_view_outlined-warning:visited{color:var(--g-color-text-warning)}.yc-button_view_outlined-warning:before{border:1px solid var(--g-color-line-warning)}.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(--g-color-text-danger)}.yc-button_view_outlined-danger:before{border:1px solid var(--g-color-line-danger)}.yc-button_view_outlined-utility,.yc-button_view_outlined-utility:active,.yc-button_view_outlined-utility:focus,.yc-button_view_outlined-utility:hover,.yc-button_view_outlined-utility:link,.yc-button_view_outlined-utility:visited{color:var(--g-color-text-utility)}.yc-button_view_outlined-utility:before{border:1px solid var(--g-color-line-utility)}.yc-button_view_outlined-action,.yc-button_view_outlined-action:active,.yc-button_view_outlined-action:focus,.yc-button_view_outlined-action:hover,.yc-button_view_outlined-action:link,.yc-button_view_outlined-action:visited{color:var(--g-color-text-brand)}.yc-button_view_outlined-action:before{border:1px solid var(--g-color-line-brand)}.yc-button_view_raised{--yc-button-background-color:var(--g-color-base-float);--yc-button-background-color-hover:var(--g-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(--g-color-text-primary)}.yc-button_view_raised:before{box-shadow:0 3px 5px var(--g-color-sfx-shadow)}.yc-button_view_raised:active:before{box-shadow:0 1px 2px var(--g-color-sfx-shadow)}.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(--g-color-text-primary)}.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(--g-color-text-secondary)}.yc-button_view_flat-secondary:hover{color:var(--g-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(--g-color-text-info)}.yc-button_view_flat-success,.yc-button_view_flat-success:active,.yc-button_view_flat-success:focus,.yc-button_view_flat-success:hover,.yc-button_view_flat-success:link,.yc-button_view_flat-success:visited{color:var(--g-color-text-positive)}.yc-button_view_flat-warning,.yc-button_view_flat-warning:active,.yc-button_view_flat-warning:focus,.yc-button_view_flat-warning:hover,.yc-button_view_flat-warning:link,.yc-button_view_flat-warning:visited{color:var(--g-color-text-warning)}.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(--g-color-text-danger)}.yc-button_view_flat-utility,.yc-button_view_flat-utility:active,.yc-button_view_flat-utility:focus,.yc-button_view_flat-utility:hover,.yc-button_view_flat-utility:link,.yc-button_view_flat-utility:visited{color:var(--g-color-text-utility)}.yc-button_view_flat-action,.yc-button_view_flat-action:active,.yc-button_view_flat-action:focus,.yc-button_view_flat-action:hover,.yc-button_view_flat-action:link,.yc-button_view_flat-action:visited{color:var(--g-color-text-brand)}.yc-button_view_normal-contrast{--yc-button-background-color:var(--g-color-base-light);--yc-button-background-color-hover:var(--g-color-base-light-hover);--yc-button-outline-color:var(--g-color-line-light)}.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(--g-color-text-dark-primary)}.yc-button_view_outlined-contrast{--yc-button-background-color:transparent;--yc-button-background-color-hover:var(--g-color-base-light-simple-hover);--yc-button-outline-color:var(--g-color-line-light)}.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(--g-color-text-light-primary)}.yc-button_view_outlined-contrast:before{border:1px solid var(--g-color-line-light)}.yc-button_view_flat-contrast{--yc-button-background-color:transparent;--yc-button-background-color-hover:var(--g-color-base-light-simple-hover);--yc-button-outline-color:var(--g-color-line-light)}.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(--g-color-text-light-primary)}.yc-button_view_flat-action.yc-button_disabled:not(.yc-button_loading),.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-secondary.yc-button_disabled:not(.yc-button_loading),.yc-button_view_flat-success.yc-button_disabled:not(.yc-button_loading),.yc-button_view_flat-utility.yc-button_disabled:not(.yc-button_loading),.yc-button_view_flat-warning.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(--g-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(--g-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(--g-color-base-light-disabled);--yc-button-background-color-hover:var(--g-color-base-light-disabled);color:var(--g-color-text-light-secondary)}.yc-button_view_action.yc-button_selected,.yc-button_view_flat-action.yc-button_selected,.yc-button_view_flat-secondary.yc-button_selected,.yc-button_view_flat.yc-button_selected,.yc-button_view_normal.yc-button_selected,.yc-button_view_outlined-action.yc-button_selected,.yc-button_view_outlined.yc-button_selected,.yc-button_view_raised.yc-button_selected{--yc-button-background-color:var(--g-color-base-selection);--yc-button-background-color-hover:var(--g-color-base-selection-hover)}.yc-button_view_action.yc-button_selected,.yc-button_view_action.yc-button_selected:active,.yc-button_view_action.yc-button_selected:focus,.yc-button_view_action.yc-button_selected:hover,.yc-button_view_action.yc-button_selected:link,.yc-button_view_action.yc-button_selected:visited,.yc-button_view_flat-action.yc-button_selected,.yc-button_view_flat-action.yc-button_selected:active,.yc-button_view_flat-action.yc-button_selected:focus,.yc-button_view_flat-action.yc-button_selected:hover,.yc-button_view_flat-action.yc-button_selected:link,.yc-button_view_flat-action.yc-button_selected:visited,.yc-button_view_flat-secondary.yc-button_selected,.yc-button_view_flat-secondary.yc-button_selected:active,.yc-button_view_flat-secondary.yc-button_selected:focus,.yc-button_view_flat-secondary.yc-button_selected:hover,.yc-button_view_flat-secondary.yc-button_selected:link,.yc-button_view_flat-secondary.yc-button_selected:visited,.yc-button_view_flat.yc-button_selected,.yc-button_view_flat.yc-button_selected:active,.yc-button_view_flat.yc-button_selected:focus,.yc-button_view_flat.yc-button_selected:hover,.yc-button_view_flat.yc-button_selected:link,.yc-button_view_flat.yc-button_selected:visited,.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,.yc-button_view_outlined-action.yc-button_selected,.yc-button_view_outlined-action.yc-button_selected:active,.yc-button_view_outlined-action.yc-button_selected:focus,.yc-button_view_outlined-action.yc-button_selected:hover,.yc-button_view_outlined-action.yc-button_selected:link,.yc-button_view_outlined-action.yc-button_selected:visited,.yc-button_view_outlined.yc-button_selected,.yc-button_view_outlined.yc-button_selected:active,.yc-button_view_outlined.yc-button_selected:focus,.yc-button_view_outlined.yc-button_selected:hover,.yc-button_view_outlined.yc-button_selected:link,.yc-button_view_outlined.yc-button_selected:visited,.yc-button_view_raised.yc-button_selected,.yc-button_view_raised.yc-button_selected:active,.yc-button_view_raised.yc-button_selected:focus,.yc-button_view_raised.yc-button_selected:hover,.yc-button_view_raised.yc-button_selected:link,.yc-button_view_raised.yc-button_selected:visited{color:var(--g-color-text-brand-heavy)}.yc-button_view_action.yc-button_selected:before,.yc-button_view_flat-action.yc-button_selected:before,.yc-button_view_flat-secondary.yc-button_selected:before,.yc-button_view_flat.yc-button_selected:before,.yc-button_view_normal.yc-button_selected:before,.yc-button_view_outlined-action.yc-button_selected:before,.yc-button_view_outlined.yc-button_selected:before,.yc-button_view_raised.yc-button_selected:before{border:none}.yc-button_view_flat-info.yc-button_selected,.yc-button_view_outlined-info.yc-button_selected{--yc-button-background-color:var(--g-color-base-info-light);--yc-button-background-color-hover:var(--g-color-base-info-light-hover)}.yc-button_view_flat-info.yc-button_selected,.yc-button_view_flat-info.yc-button_selected:active,.yc-button_view_flat-info.yc-button_selected:focus,.yc-button_view_flat-info.yc-button_selected:hover,.yc-button_view_flat-info.yc-button_selected:link,.yc-button_view_flat-info.yc-button_selected:visited,.yc-button_view_outlined-info.yc-button_selected,.yc-button_view_outlined-info.yc-button_selected:active,.yc-button_view_outlined-info.yc-button_selected:focus,.yc-button_view_outlined-info.yc-button_selected:hover,.yc-button_view_outlined-info.yc-button_selected:link,.yc-button_view_outlined-info.yc-button_selected:visited{color:var(--g-color-text-info-heavy)}.yc-button_view_flat-info.yc-button_selected:before,.yc-button_view_outlined-info.yc-button_selected:before{border:none}.yc-button_view_flat-success.yc-button_selected,.yc-button_view_outlined-success.yc-button_selected{--yc-button-background-color:var(--g-color-base-positive-light);--yc-button-background-color-hover:var(--g-color-base-positive-light-hover)}.yc-button_view_flat-success.yc-button_selected,.yc-button_view_flat-success.yc-button_selected:active,.yc-button_view_flat-success.yc-button_selected:focus,.yc-button_view_flat-success.yc-button_selected:hover,.yc-button_view_flat-success.yc-button_selected:link,.yc-button_view_flat-success.yc-button_selected:visited,.yc-button_view_outlined-success.yc-button_selected,.yc-button_view_outlined-success.yc-button_selected:active,.yc-button_view_outlined-success.yc-button_selected:focus,.yc-button_view_outlined-success.yc-button_selected:hover,.yc-button_view_outlined-success.yc-button_selected:link,.yc-button_view_outlined-success.yc-button_selected:visited{color:var(--g-color-text-positive-heavy)}.yc-button_view_flat-success.yc-button_selected:before,.yc-button_view_outlined-success.yc-button_selected:before{border:none}.yc-button_view_flat-warning.yc-button_selected,.yc-button_view_outlined-warning.yc-button_selected{--yc-button-background-color:var(--g-color-base-warning-light);--yc-button-background-color-hover:var(--g-color-base-warning-light-hover)}.yc-button_view_flat-warning.yc-button_selected,.yc-button_view_flat-warning.yc-button_selected:active,.yc-button_view_flat-warning.yc-button_selected:focus,.yc-button_view_flat-warning.yc-button_selected:hover,.yc-button_view_flat-warning.yc-button_selected:link,.yc-button_view_flat-warning.yc-button_selected:visited,.yc-button_view_outlined-warning.yc-button_selected,.yc-button_view_outlined-warning.yc-button_selected:active,.yc-button_view_outlined-warning.yc-button_selected:focus,.yc-button_view_outlined-warning.yc-button_selected:hover,.yc-button_view_outlined-warning.yc-button_selected:link,.yc-button_view_outlined-warning.yc-button_selected:visited{color:var(--g-color-text-warning-heavy)}.yc-button_view_flat-warning.yc-button_selected:before,.yc-button_view_outlined-warning.yc-button_selected:before{border:none}.yc-button_view_flat-danger.yc-button_selected,.yc-button_view_outlined-danger.yc-button_selected{--yc-button-background-color:var(--g-color-base-danger-light);--yc-button-background-color-hover:var(--g-color-base-danger-light-hover)}.yc-button_view_flat-danger.yc-button_selected,.yc-button_view_flat-danger.yc-button_selected:active,.yc-button_view_flat-danger.yc-button_selected:focus,.yc-button_view_flat-danger.yc-button_selected:hover,.yc-button_view_flat-danger.yc-button_selected:link,.yc-button_view_flat-danger.yc-button_selected:visited,.yc-button_view_outlined-danger.yc-button_selected,.yc-button_view_outlined-danger.yc-button_selected:active,.yc-button_view_outlined-danger.yc-button_selected:focus,.yc-button_view_outlined-danger.yc-button_selected:hover,.yc-button_view_outlined-danger.yc-button_selected:link,.yc-button_view_outlined-danger.yc-button_selected:visited{color:var(--g-color-text-danger-heavy)}.yc-button_view_flat-danger.yc-button_selected:before,.yc-button_view_outlined-danger.yc-button_selected:before{border:none}.yc-button_view_flat-utility.yc-button_selected,.yc-button_view_outlined-utility.yc-button_selected{--yc-button-background-color:var(--g-color-base-utility-light);--yc-button-background-color-hover:var(--g-color-base-utility-light-hover)}.yc-button_view_flat-utility.yc-button_selected,.yc-button_view_flat-utility.yc-button_selected:active,.yc-button_view_flat-utility.yc-button_selected:focus,.yc-button_view_flat-utility.yc-button_selected:hover,.yc-button_view_flat-utility.yc-button_selected:link,.yc-button_view_flat-utility.yc-button_selected:visited,.yc-button_view_outlined-utility.yc-button_selected,.yc-button_view_outlined-utility.yc-button_selected:active,.yc-button_view_outlined-utility.yc-button_selected:focus,.yc-button_view_outlined-utility.yc-button_selected:hover,.yc-button_view_outlined-utility.yc-button_selected:link,.yc-button_view_outlined-utility.yc-button_selected:visited{color:var(--g-color-text-utility-heavy)}.yc-button_view_flat-utility.yc-button_selected:before,.yc-button_view_outlined-utility.yc-button_selected:before{border:none}.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;padding:0 var(--yc-button-padding);white-space:nowrap}.yc-button__icon{display:inline-block;height:var(--yc-button-height);pointer-events:none;position:relative;width:var(--yc-button-height)}.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:var(--yc-button-icon-position)}.yc-button__icon_side_left~.yc-button__text{padding-left:var(--yc-button-icon-space)}.yc-button__icon_side_right{right:var(--yc-button-icon-position)}.yc-button__icon_side_right~.yc-button__text{padding-right:var(--yc-button-icon-space)}.yc-button:has(.yc-button__icon:only-child){--yc-button-padding:0}.yc-button:has(.yc-button__icon:only-child):not(.yc-button_width_max){width:var(--yc-button-height)}.yc-button_disabled{cursor:default;pointer-events:none}.yc-button_disabled:not(.yc-button_loading){--yc-button-background-color:var(--g-color-base-generic-accent-disabled);--yc-button-background-color-hover:var(--g-color-base-generic-accent-disabled);color:var(--g-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}.info-viewer{--ydb-info-viewer-font-size:var(--g-text-body-2-font-size);--ydb-info-viewer-line-height:var(--g-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(--g-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(--g-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(--g-text-body-1-font-size);--ydb-info-viewer-line-height:var(--g-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}.yc-tooltip[class]{--yc-popup-border-width:0;--yc-popup-background-color:var(--g-color-base-float-heavy)}.yc-tooltip__popup-content{pointer-events:none}.yc-tooltip__content{color:var(--g-color-text-light-primary);padding:6px 12px}.yc-popup{--yc-popup-background-color:var(--g-color-base-float);--yc-popup-border-color:var(--g-color-line-generic-solid);--yc-popup-border-width:1px;visibility:hidden;z-index:1000}.yc-popup_exit_active,.yc-popup_open{visibility:visible}.yc-popup_exit_active[data-popper-placement*=bottom] .yc-popup__content{-webkit-animation-name:yc-popup-bottom;animation-name:yc-popup-bottom}.yc-popup_exit_active[data-popper-placement*=top] .yc-popup__content{-webkit-animation-name:yc-popup-top;animation-name:yc-popup-top}.yc-popup_exit_active[data-popper-placement*=left] .yc-popup__content{-webkit-animation-name:yc-popup-left;animation-name:yc-popup-left}.yc-popup_exit_active[data-popper-placement*=right] .yc-popup__content{-webkit-animation-name:yc-popup-right;animation-name:yc-popup-right}.yc-popup_appear_active[data-popper-placement*=bottom] .yc-popup__content,.yc-popup_enter_active[data-popper-placement*=bottom] .yc-popup__content{-webkit-animation-name:yc-popup-bottom-open;animation-name:yc-popup-bottom-open}.yc-popup_appear_active[data-popper-placement*=top] .yc-popup__content,.yc-popup_enter_active[data-popper-placement*=top] .yc-popup__content{-webkit-animation-name:yc-popup-top-open;animation-name:yc-popup-top-open}.yc-popup_appear_active[data-popper-placement*=left] .yc-popup__content,.yc-popup_enter_active[data-popper-placement*=left] .yc-popup__content{-webkit-animation-name:yc-popup-left-open;animation-name:yc-popup-left-open}.yc-popup_appear_active[data-popper-placement*=right] .yc-popup__content,.yc-popup_enter_active[data-popper-placement*=right] .yc-popup__content{-webkit-animation-name:yc-popup-right-open;animation-name:yc-popup-right-open}.yc-popup[data-popper-placement*=bottom] .yc-popup__arrow{top:-9px}.yc-popup[data-popper-placement*=top] .yc-popup__arrow{bottom:-9px}.yc-popup[data-popper-placement*=top] .yc-popup__arrow-content{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.yc-popup[data-popper-placement*=left] .yc-popup__arrow{right:-9px}.yc-popup[data-popper-placement*=left] .yc-popup__arrow-content{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.yc-popup[data-popper-placement*=right] .yc-popup__arrow{left:-9px}.yc-popup[data-popper-placement*=right] .yc-popup__arrow-content{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.yc-popup__content{-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(--g-color-sfx-shadow);outline:none;position:relative}.yc-popup__content>.yc-popup__arrow+*,.yc-popup__content>:first-child:not(.yc-popup__arrow){border-top-left-radius:inherit;border-top-right-radius:inherit}.yc-popup__content>: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}@-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-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}}.entity-status{align-items:center;display:inline-flex;font-size:var(--g-text-body-2-font-size);height:100%;line-height:var(--g-text-body-2-line-height);max-width:100%}.entity-status__clipboard-button{color:var(--yc-color-text-secondary);margin-left:8px;visibility:hidden}.entity-status__clipboard-button_visible{visibility:visible}.entity-status a{color:var(--g-color-text-link);text-decoration:none}.entity-status a:hover{color:var(--g-color-text-link-hover)}.entity-status__label{color:var(--g-color-text-complementary);font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height);margin-right:2px}.entity-status__label_size_l{font-size:var(--g-text-header-2-font-size)}.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_size_l,.entity-status__status-icon_size_l{height:27px;width:27px}.entity-status__status-color_state_green,.entity-status__status-color_state_running{background-color:var(--ydb-color-status-green)}.entity-status__status-color_state_yellow{background-color:var(--ydb-color-status-yellow)}.entity-status__status-color_state_blue{background-color:var(--ydb-color-status-blue)}.entity-status__status-color_state_red{background-color:var(--ydb-color-status-red)}.entity-status__status-color_state_gray,.entity-status__status-color_state_grey{background-color:var(--ydb-color-status-grey)}.entity-status__status-color_state_orange{background-color:var(--ydb-color-status-orange)}.entity-status__label_state_blue,.entity-status__status-icon_state_blue{color:var(--ydb-color-status-blue)}.entity-status__label_state_yellow,.entity-status__status-icon_state_yellow{color:var(--ydb-color-status-yellow)}.entity-status__label_state_orange,.entity-status__status-icon_state_orange{color:var(--ydb-color-status-orange)}.entity-status__label_state_red,.entity-status__status-icon_state_red{color:var(--ydb-color-status-red)}.yc-link{-webkit-tap-highlight-color:rgba(0,0,0,0);border-radius:var(--g-focus-border-radius);cursor:pointer;text-decoration:none;touch-action:manipulation}.yc-link:focus{outline:2px solid var(--g-color-line-focus)}.yc-link:focus:not(:focus-visible){outline:0}.yc-link_view_normal,.yc-link_view_normal-visitable{color:var(--g-color-text-link)}.yc-link_view_primary{color:var(--g-color-text-primary)}.yc-link_view_secondary{color:var(--g-color-text-secondary)}.yc-link_view_normal:hover,.yc-link_view_primary:hover,.yc-link_view_secondary:hover{color:var(--g-color-text-link-hover)}.yc-link_view_normal-visitable:visited,.yc-link_visitable:visited{color:var(--g-color-text-link-visited)}.yc-link_view_normal-visitable:visited:hover,.yc-link_visitable:visited:hover{color:var(--g-color-text-link-visited-hover)}.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(--ydb-color-status-green)}.ydb-pool-bar_type_warning{border-color:var(--ydb-color-status-yellow)}.ydb-pool-bar_type_danger{border-color:var(--ydb-color-status-red)}.ydb-pool-bar__value{bottom:0;min-height:1px;position:absolute;width:100%}.ydb-pool-bar__value_type_normal{background-color:var(--ydb-color-status-green)}.ydb-pool-bar__value_type_warning{background-color:var(--ydb-color-status-yellow)}.ydb-pool-bar__value_type_danger{background-color:var(--ydb-color-status-red)}.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(--g-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(--g-color-base-positive-light);color:var(--g-color-text-positive)}.tablets-statistic__tablet_state_yellow{background-color:var(--g-color-base-warning-light);color:var(--g-color-text-warning)}.tablets-statistic__tablet_state_blue{background-color:var(--g-color-base-info-light);color:var(--g-color-text-info)}.tablets-statistic__tablet_state_orange{background-color:var(--g-color-base-warning-light);color:var(--g-color-text-warning-heavy)}.tablets-statistic__tablet_state_red{background:var(--g-color-base-danger-light);color:var(--g-color-text-danger)}.tablets-statistic__tablet_state_gray{border:1px solid var(--g-color-line-generic-hover);color:var(--g-color-text-secondary)}.yc-radio-button{--yc-radio-button-inner-border-radius:calc(var(--yc-radio-button-border-radius) - 3px);background-color:var(--g-color-base-generic);border-radius:var(--yc-radio-button-border-radius);box-sizing:border-box;display:inline-flex;flex-direction:row;font-family:var(--g-text-body-font-family);font-weight:var(--g-text-body-font-weight);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;font-size:var(--g-text-body-1-font-size);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(--g-color-line-focus)}.yc-radio-button__option-control:focus:not(:focus-visible)+.yc-radio-button__option-outline{box-shadow:none}.yc-radio-button__option-text{color:var(--g-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(--g-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(--g-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(--g-color-base-background);content:""}.yc-radio-button_size_s{--yc-radio-button-border-radius:var(--g-border-radius-s)}.yc-radio-button_size_s .yc-radio-button__option{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(--g-border-radius-m)}.yc-radio-button_size_m .yc-radio-button__option{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(--g-border-radius-l)}.yc-radio-button_size_l .yc-radio-button__option{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(--g-border-radius-xl)}.yc-radio-button_size_xl .yc-radio-button__option{font-size:var(--g-text-body-2-font-size);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}.ydb-search{min-width:100px}.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(--g-color-text-primary);display:inline-block;flex-grow:1;font-family:var(--g-text-body-font-family);font-weight:var(--g-text-body-font-weight);margin:0;padding:0;position:relative;vertical-align:top;width:100%}.yc-text-input__control::-webkit-input-placeholder{color:var(--g-color-text-hint);overflow:hidden;white-space:nowrap}.yc-text-input__control::placeholder{color:var(--g-color-text-hint);overflow:hidden;white-space:nowrap}.yc-text-input__control:focus{outline:none}.yc-text-input__control[type=number]{-webkit-appearance:textfield;appearance:textfield}.yc-text-input__label{box-sizing:border-box;overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap;z-index:1}.yc-text-input__clear{flex-shrink:0}.yc-text-input__error-icon{box-sizing:initial;color:var(--g-color-text-danger);padding:var(--_--text-input-error-icon-padding)}.yc-text-input__additional-content{align-items:center;display:flex}.yc-text-input_size_s{--_--text-input-error-icon-padding:5px 5px 5px 0;--_--text-input-border-radius:var(--g-border-radius-s)}.yc-text-input_size_s .yc-text-input__control{height:22px;padding:3px 8px}.yc-text-input_size_s .yc-text-input__control,.yc-text-input_size_s .yc-text-input__label{font-size:var(--g-text-body-short-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-short-line-height)}.yc-text-input_size_s .yc-text-input__label{font-weight:var(--g-text-accent-font-weight);line-height:22px;padding:0 4px 0 8px}.yc-text-input_size_s.yc-text-input_has-left-content .yc-text-input__label{padding-left:2px}.yc-text-input_size_s .yc-text-input__additional-content{height:22px}.yc-text-input_size_s .yc-text-input__additional-content_placement_left{padding-left:1px}.yc-text-input_size_s .yc-text-input__additional-content_placement_right{padding-right:1px}.yc-text-input_size_m{--_--text-input-error-icon-padding:5px 5px 5px 0;--_--text-input-border-radius:var(--g-border-radius-m)}.yc-text-input_size_m .yc-text-input__control{height:26px;padding:5px 8px}.yc-text-input_size_m .yc-text-input__control,.yc-text-input_size_m .yc-text-input__label{font-size:var(--g-text-body-short-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-short-line-height)}.yc-text-input_size_m .yc-text-input__label{font-weight:var(--g-text-accent-font-weight);line-height:26px;padding:0 4px 0 8px}.yc-text-input_size_m.yc-text-input_has-left-content .yc-text-input__label{padding-left:2px}.yc-text-input_size_m .yc-text-input__additional-content{height:26px}.yc-text-input_size_m .yc-text-input__additional-content_placement_left{padding-left:1px}.yc-text-input_size_m .yc-text-input__additional-content_placement_right{padding-right:1px}.yc-text-input_size_l{--_--text-input-error-icon-padding:9px 9px 9px 0;--_--text-input-border-radius:var(--g-border-radius-l)}.yc-text-input_size_l .yc-text-input__control{height:34px;padding:9px 12px}.yc-text-input_size_l .yc-text-input__control,.yc-text-input_size_l .yc-text-input__label{font-size:var(--g-text-body-short-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-short-line-height)}.yc-text-input_size_l .yc-text-input__label{font-weight:var(--g-text-accent-font-weight);line-height:34px;padding:0 4px 0 12px}.yc-text-input_size_l.yc-text-input_has-left-content .yc-text-input__label{padding-left:3px}.yc-text-input_size_l .yc-text-input__additional-content{height:34px}.yc-text-input_size_l .yc-text-input__additional-content_placement_left{padding-left:3px}.yc-text-input_size_l .yc-text-input__additional-content_placement_right{padding-right:3px}.yc-text-input_size_xl{--_--text-input-error-icon-padding:13px 13px 13px 0;--_--text-input-border-radius:var(--g-border-radius-xl)}.yc-text-input_size_xl .yc-text-input__control{height:42px;padding:11px 12px}.yc-text-input_size_xl .yc-text-input__control,.yc-text-input_size_xl .yc-text-input__label{font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height)}.yc-text-input_size_xl .yc-text-input__label{font-weight:var(--g-text-accent-font-weight);line-height:42px;padding:0 4px 0 12px}.yc-text-input_size_xl.yc-text-input_has-left-content .yc-text-input__label{padding-left:3px}.yc-text-input_size_xl .yc-text-input__additional-content{height:42px}.yc-text-input_size_xl .yc-text-input__additional-content_placement_left{padding-left:3px}.yc-text-input_size_xl .yc-text-input__additional-content_placement_right{padding-right:3px}.yc-text-input_view_normal .yc-text-input__content{border:1px solid var(--g-color-line-generic)}.yc-text-input_view_normal .yc-text-input__content:hover{border-color:var(--g-color-line-generic-hover)}.yc-text-input_view_normal .yc-text-input__content:focus-within{border-color:var(--g-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(--_--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(--_--text-input-border-radius) 0 0 var(--_--text-input-border-radius)}.yc-text-input.yc-text-input_pin_brick-round .yc-text-input__content{border-radius:0 var(--_--text-input-border-radius) var(--_--text-input-border-radius) 0}.yc-text-input.yc-text-input_pin_round-clear .yc-text-input__content{border-radius:var(--_--text-input-border-radius) 0 0 var(--_--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(--_--text-input-border-radius) var(--_--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(--g-color-base-generic-accent-disabled);border-color:transparent;color:var(--g-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(--g-color-text-hint)}.yc-text-input_has-scrollbar .yc-text-input__clear{right:var(--g-scrollbar-width)}.yc-text-input_has-left-content .yc-text-input__control{padding-left:2px}.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(--g-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(--g-color-line-danger)}.yc-text-input_state_error.yc-text-input_view_clear .yc-text-input__content{border-bottom:1px solid var(--g-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(--g-color-line-danger)}.g-root .g-clear-button{--yc-button-background-color:transparent;--yc-button-background-color-hover:transparent;color:var(--g-color-text-hint);margin:auto 0}.g-root .g-clear-button:hover{color:var(--g-color-text-primary)}.yc-popover{display:inline-block;position:relative}.yc-popover:not(.yc-popover_disabled){cursor:pointer}.yc-popover__handler{display:inline-block}.yc-popover__tooltip{--yc-popover-padding:16px;--yc-popover-close-margin:8px;--yc-popover-close-size:24px}.yc-popover__tooltip-popup-content{box-sizing:border-box;cursor:default;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(--g-text-subheader-3-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-3-line-height);margin:0 0 12px}.yc-popover__tooltip-buttons{display:flex;flex-wrap:wrap;margin:15px -5px -5px}.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(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-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(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-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(--g-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(--g-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(--g-color-text-link-hover)}.yc-popover__tooltip_theme_announcement.yc-popover__tooltip_theme_announcement{--yc-popup-background-color:var(--g-color-base-simple-hover-solid);--yc-popup-border-color:var(--g-color-base-simple-hover-solid)}.yc-popover__tooltip_theme_special.yc-popover__tooltip_theme_special{--yc-popup-background-color:var(--g-color-base-brand);--yc-popup-border-color:var(--g-color-base-brand);color:var(--g-color-text-light-primary)}.yc-popover__tooltip_theme_special .yc-popover__tooltip-content a:not(.yc-button){color:var(--g-color-text-light-primary);font-weight:var(--g-text-accent-font-weight)}.yc-popover__tooltip_theme_special .yc-popover__tooltip-content a:not(.yc-button):hover{color:var(--g-color-text-light-secondary)}.yc-popover__tooltip_theme_special .yc-link{color:var(--g-color-text-light-primary)}.yc-popover__tooltip_theme_special .yc-link:hover{color:var(--g-color-text-light-secondary)}.yc-popover__tooltip_size_l{--yc-popover-padding:24px}.yc-popover__tooltip_size_l .yc-popover__tooltip-title{font-size:var(--g-text-header-1-font-size);font-weight:var(--g-text-header-font-weight);line-height:var(--g-text-header-1-line-height)}.yc-popover__tooltip_size_l .yc-popover__tooltip-content{font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-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))}.g-root{--yc-popover-max-width:300px}.yc-outer-additional-content{display:flex;justify-content:space-between;vertical-align:top}.yc-outer-additional-content__error,.yc-outer-additional-content__note{margin-top:2px}.yc-outer-additional-content__error{color:var(--g-color-text-danger);font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height)}.yc-outer-additional-content__error:not(:last-child){margin-right:var(--g-spacing-2)}.yc-outer-additional-content__note{margin-left:auto}.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(--g-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(--g-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(--g-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(--g-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 .ydb-virtual-table__head{top:62px}.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__table .data-table__box_sticky-head_fixed{overflow:visible;overflow:initial}.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;width:800px}.empty-state__wrapper_position_center{margin:0 auto;position:relative}.empty-state__image{color:var(--g-color-base-info-light-hover);grid-area:image;justify-self:end;margin-right:60px}.g-root_theme_dark .empty-state__image{color:var(--g-color-base-generic)}.empty-state__title{align-self:center;font-weight:500;grid-area:title}.empty-state__title_size_s{font-size:var(--g-text-subheader-3-font-size);line-height:var(--g-text-subheader-3-line-height)}.empty-state__title_size_m{font-size:var(--g-text-header-2-font-size);line-height:var(--g-text-header-2-line-height)}.empty-state__description{font-size:var(--g-text-body-2-font-size);grid-area:description;line-height:var(--g-text-body-2-line-height)}.empty-state__actions{grid-area:actions}.empty-state__actions>*{margin-right:8px}.yc-label{--border-size:0px;--_-bg-color:none;--_-bg-hover-color:none;--_-text-color:none;align-items:center;background-color:var(--_-bg-color);box-sizing:border-box;color:var(--_-text-color);display:inline-flex;position:relative;transition-duration:.15s;transition-property:opacity,color,background-color;transition-timing-function:ease-in-out}.yc-label__text{align-items:baseline;display:flex;font-size:var(--g-text-body-1-font-size);overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.yc-label__value{display:flex;opacity:.7}.yc-label__separator{margin:0 4px}.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:.15s;transition-timing-function:ease-in-out}.yc-label_size_xs{border-radius:var(--g-border-radius-xs);height:20px}.yc-label_size_xs .yc-label__text{line-height:20px;margin:0 8px}.yc-label_size_xs .yc-label__addon{--addon-size:calc(20px - var(--border-size)*2);height:var(--addon-size);width:var(--addon-size)}.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_s{border-radius:var(--g-border-radius-s);height:24px}.yc-label_size_s .yc-label__text{line-height:24px;margin:0 10px}.yc-label_size_s .yc-label__addon{--addon-size:calc(24px - var(--border-size)*2);height:var(--addon-size);width:var(--addon-size)}.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_m{border-radius:var(--g-border-radius-m);height:28px}.yc-label_size_m .yc-label__text{line-height:28px;margin:0 12px}.yc-label_size_m .yc-label__addon{--addon-size:calc(28px - var(--border-size)*2);height:var(--addon-size);width:var(--addon-size)}.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_disabled{opacity:.7;pointer-events:none}.yc-label_is-interactive{cursor:pointer;outline:none}.yc-label_is-interactive:focus-visible{outline:2px solid var(--g-color-line-focus)}.yc-label_theme_normal{--_-bg-color:var(--g-color-base-misc-light);--_-bg-hover-color:var(--g-color-base-misc-light-hover);--_-text-color:var(--g-color-text-misc-heavy)}.yc-label_theme_success{--_-bg-color:var(--g-color-base-positive-light);--_-bg-hover-color:var(--g-color-base-positive-light-hover);--_-text-color:var(--g-color-text-positive-heavy)}.yc-label_theme_info{--_-bg-color:var(--g-color-base-info-light);--_-bg-hover-color:var(--g-color-base-info-light-hover);--_-text-color:var(--g-color-text-info-heavy)}.yc-label_theme_warning{--_-bg-color:var(--g-color-base-warning-light);--_-bg-hover-color:var(--g-color-base-warning-light-hover);--_-text-color:var(--g-color-text-warning-heavy)}.yc-label_theme_danger{--_-bg-color:var(--g-color-base-danger-light);--_-bg-hover-color:var(--g-color-base-danger-light-hover);--_-text-color:var(--g-color-text-danger-heavy)}.yc-label_theme_utility{--_-bg-color:var(--g-color-base-utility-light);--_-bg-hover-color:var(--g-color-base-utility-light-hover);--_-text-color:var(--g-color-text-utility-heavy)}.yc-label_theme_unknown{--_-bg-color:var(--g-color-base-neutral-light);--_-bg-hover-color:var(--g-color-base-neutral-light-hover);--_-text-color:var(--g-color-text-complementary)}.yc-label_theme_clear{--_-bg-color:transparent;--_-bg-hover-color:var(--g-color-base-simple-hover-solid);--_-text-color:var(--g-color-text-complementary);--border-size:1px;border:var(--border-size) solid var(--g-color-line-generic)}.yc-label_is-interactive:hover:not(:has(.yc-label__addon_interactive:hover)){background-color:var(--_-bg-hover-color)}.yc-label:not(.yc-label_disabled) .yc-label__addon_interactive{--yc-button-background-color-hover:var(--_-bg-hover-color)}.yc-label:not(.yc-label_disabled) .yc-label__addon_interactive:active,.yc-label:not(.yc-label_disabled) .yc-label__addon_interactive:focus,.yc-label:not(.yc-label_disabled) .yc-label__addon_interactive:hover{color:var(--_-text-color)}.storage-disk-progress-bar{background-color:var(--g-color-base-misc-light);border:1px solid var(--g-color-base-misc-heavy);border-radius:4px;color:var(--g-color-text-primary);display:block;height:var(--g-text-body-3-line-height);min-width:50px;position:relative;text-align:center;z-index:0}.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(--g-color-base-misc-medium)}.storage-disk-progress-bar_green{background-color:var(--g-color-base-positive-light);border-color:var(--g-color-base-positive-heavy)}.storage-disk-progress-bar_green .storage-disk-progress-bar__filled{background-color:var(--g-color-base-positive-medium)}.g-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(--g-color-base-info-light);border-color:var(--g-color-base-info-heavy)}.storage-disk-progress-bar_blue .storage-disk-progress-bar__filled{background-color:var(--g-color-base-info-medium)}.storage-disk-progress-bar_yellow{background-color:var(--g-color-base-yellow-light);border-color:var(--g-color-base-warning-heavy)}.storage-disk-progress-bar_yellow .storage-disk-progress-bar__filled{background-color:var(--g-color-base-yellow-medium)}.storage-disk-progress-bar_orange{background-color:var(--g-color-base-warning-light);border-color:var(--ydb-color-status-orange)}.storage-disk-progress-bar_orange .storage-disk-progress-bar__filled{background-color:var(--g-color-base-warning-medium)}.storage-disk-progress-bar_red{background-color:var(--g-color-base-danger-light);border-color:var(--g-color-base-danger-heavy)}.storage-disk-progress-bar_red .storage-disk-progress-bar__filled{background-color:var(--g-color-base-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(--g-text-body-1-font-size);line-height:calc(var(--g-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(--g-text-body-1-font-size);height:var(--g-text-body-1-line-height);line-height:var(--g-text-body-1-line-height)}.usage-filter__option-meta{border-radius:3px;font-size:var(--g-text-caption-2-font-size);line-height:var(--g-text-caption-2-line-height);padding:0 5px;position:relative;z-index:0}.usage-filter__option-bar{background-color:var(--g-color-base-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{align-items:center;background:none;border:none;box-sizing:border-box;color:inherit;cursor:pointer;display:inline-flex;font-family:var(--g-text-body-font-family);font-size:inherit;font-weight:var(--g-text-body-font-weight);margin:0;outline:none;padding:0;position:relative;transition:-webkit-transform .1s ease-out;transition:transform .1s ease-out;transition:transform .1s ease-out,-webkit-transform .1s ease-out;width:100%;z-index:0}.g-select-control_disabled{cursor:default}.g-select-control_size_s{--_--select-options-text-right-padding:8px;--_--select-border-radius:var(--g-border-radius-s);height:24px;padding:4px calc(var(--_--select-options-text-right-padding) + 1px)}.g-select-control_size_m{--_--select-options-text-right-padding:8px;--_--select-border-radius:var(--g-border-radius-m);height:28px;padding:6px calc(var(--_--select-options-text-right-padding) + 1px)}.g-select-control_size_l{--_--select-options-text-right-padding:12px;--_--select-border-radius:var(--g-border-radius-l);height:36px;padding:10px calc(var(--_--select-options-text-right-padding) + 1px)}.g-select-control_size_xl{--_--select-options-text-right-padding:12px;--_--select-border-radius:var(--g-border-radius-xl);height:44px;padding:12px calc(var(--_--select-options-text-right-padding) + 1px)}.g-select-control__button{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;font-family:var(--g-text-body-font-family);font-size:inherit;font-weight:var(--g-text-body-font-weight);height:100%;margin:0;outline:none;overflow:hidden;padding:0;transition:color .15s linear,background-color .15s linear;width:100%}.g-select-control__button.g-select-control__button_pin_round-round:before{border-radius:var(--_--select-border-radius)}.g-select-control__button.g-select-control__button_pin_brick-brick:before{border-radius:0}.g-select-control__button.g-select-control__button_pin_clear-clear:before{border-left:0;border-radius:0;border-right:0}.g-select-control__button.g-select-control__button_pin_circle-circle:before{border-radius:100px}.g-select-control__button.g-select-control__button_pin_round-brick:before{border-radius:var(--_--select-border-radius) 0 0 var(--_--select-border-radius)}.g-select-control__button.g-select-control__button_pin_brick-round:before{border-radius:0 var(--_--select-border-radius) var(--_--select-border-radius) 0}.g-select-control__button.g-select-control__button_pin_round-clear:before{border-radius:var(--_--select-border-radius) 0 0 var(--_--select-border-radius);border-right:0}.g-select-control__button.g-select-control__button_pin_clear-round:before{border-left:0;border-radius:0 var(--_--select-border-radius) var(--_--select-border-radius) 0}.g-select-control__button.g-select-control__button_pin_brick-clear:before{border-radius:0;border-right:0}.g-select-control__button.g-select-control__button_pin_clear-brick:before{border-left:0;border-radius:0}.g-select-control__button.g-select-control__button_pin_circle-brick:before{border-radius:100px 0 0 100px}.g-select-control__button.g-select-control__button_pin_brick-circle:before{border-radius:0 100px 100px 0}.g-select-control__button.g-select-control__button_pin_circle-clear:before{border-radius:100px 0 0 100px;border-right:0}.g-select-control__button.g-select-control__button_pin_clear-circle:before{border-left:0;border-radius:0 100px 100px 0}.g-select-control__button.g-select-control__button_pin_round-round:after{border-radius:var(--_--select-border-radius)}.g-select-control__button.g-select-control__button_pin_brick-brick:after{border-radius:0}.g-select-control__button.g-select-control__button_pin_clear-clear:after{border-left:0;border-radius:0;border-right:0}.g-select-control__button.g-select-control__button_pin_circle-circle:after{border-radius:100px}.g-select-control__button.g-select-control__button_pin_round-brick:after{border-radius:var(--_--select-border-radius) 0 0 var(--_--select-border-radius)}.g-select-control__button.g-select-control__button_pin_brick-round:after{border-radius:0 var(--_--select-border-radius) var(--_--select-border-radius) 0}.g-select-control__button.g-select-control__button_pin_round-clear:after{border-radius:var(--_--select-border-radius) 0 0 var(--_--select-border-radius);border-right:0}.g-select-control__button.g-select-control__button_pin_clear-round:after{border-left:0;border-radius:0 var(--_--select-border-radius) var(--_--select-border-radius) 0}.g-select-control__button.g-select-control__button_pin_brick-clear:after{border-radius:0;border-right:0}.g-select-control__button.g-select-control__button_pin_clear-brick:after{border-left:0;border-radius:0}.g-select-control__button.g-select-control__button_pin_circle-brick:after{border-radius:100px 0 0 100px}.g-select-control__button.g-select-control__button_pin_brick-circle:after{border-radius:0 100px 100px 0}.g-select-control__button.g-select-control__button_pin_circle-clear:after{border-radius:100px 0 0 100px;border-right:0}.g-select-control__button.g-select-control__button_pin_clear-circle:after{border-left:0;border-radius:0 100px 100px 0}.g-select-control__button:before{border:1px solid var(--g-color-line-generic);border-radius:var(--_--select-border-radius);content:"";inset:0;position:absolute}.g-select-control__button:after{content:"";inset:0;position:absolute;z-index:-1}.g-select-control__button_view_clear{border-color:transparent}.g-select-control__button_size_l,.g-select-control__button_size_m,.g-select-control__button_size_s{font-size:var(--g-text-body-short-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-short-line-height)}.g-select-control__button_size_xl{font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height)}.g-select-control__button_error:before{border-color:var(--g-color-line-danger)}.g-select-control__button:hover:after{background-color:var(--g-color-base-simple-hover)}.g-select-control__button_disabled{color:var(--g-color-text-hint);pointer-events:none}.g-select-control__button_disabled:after{background-color:var(--g-color-base-generic-accent-disabled)}.g-select-control__button_disabled:before{border-color:transparent}.g-select-control__button:not(.g-select-control__button_error):not(.g-select-control__button_disabled):hover:before{border-color:var(--g-color-line-generic-hover)}.g-select-control__button:not(.g-select-control__button_error):focus-visible:before,.g-select-control__button_open:not(.g-select-control__button_error):before{border-color:var(--g-color-line-generic-active)}.g-select-control:not(.g-select-control_disabled):not(.g-select-control_no-active):active{-webkit-transform:scale(.96);transform:scale(.96)}.g-select-control__label{flex-shrink:0;font-weight:var(--g-text-accent-font-weight);margin-right:4px;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.g-select-control__option-text,.g-select-control__placeholder{overflow:hidden;padding-right:var(--_--select-options-text-right-padding);text-overflow:ellipsis;white-space:nowrap}.g-select-control_has-clear.g-select-control_size_s .g-select-control__button_disabled .g-select-control__option-text,.g-select-control_has-clear.g-select-control_size_s .g-select-control__button_disabled .g-select-control__placeholder{padding-right:calc(24px + var(--_--select-options-text-right-padding))}.g-select-control_has-clear.g-select-control_size_m .g-select-control__button_disabled .g-select-control__option-text,.g-select-control_has-clear.g-select-control_size_m .g-select-control__button_disabled .g-select-control__placeholder{padding-right:calc(28px + var(--_--select-options-text-right-padding))}.g-select-control_has-clear.g-select-control_size_l .g-select-control__button_disabled .g-select-control__option-text,.g-select-control_has-clear.g-select-control_size_l .g-select-control__button_disabled .g-select-control__placeholder{padding-right:calc(36px + var(--_--select-options-text-right-padding))}.g-select-control_has-clear.g-select-control_size_xl .g-select-control__button_disabled .g-select-control__option-text,.g-select-control_has-clear.g-select-control_size_xl .g-select-control__button_disabled .g-select-control__placeholder{padding-right:calc(44px + var(--_--select-options-text-right-padding))}.g-select-control__placeholder{color:var(--g-color-text-hint)}.g-select-control_has-clear:not(.g-select-control_has-value).g-select-control_size_s .g-select-control__button:not(.g-select-control__button_disabled) .g-select-control__placeholder{padding-right:calc(24px + var(--_--select-options-text-right-padding))}.g-select-control_has-clear:not(.g-select-control_has-value).g-select-control_size_m .g-select-control__button:not(.g-select-control__button_disabled) .g-select-control__placeholder{padding-right:calc(28px + var(--_--select-options-text-right-padding))}.g-select-control_has-clear:not(.g-select-control_has-value).g-select-control_size_l .g-select-control__button:not(.g-select-control__button_disabled) .g-select-control__placeholder{padding-right:calc(36px + var(--_--select-options-text-right-padding))}.g-select-control_has-clear:not(.g-select-control_has-value).g-select-control_size_xl .g-select-control__button:not(.g-select-control__button_disabled) .g-select-control__placeholder{padding-right:calc(44px + var(--_--select-options-text-right-padding))}.g-select-control__chevron-icon{color:var(--g-color-text-secondary);flex:0 0 16px;margin-left:auto}.g-select-control__chevron-icon_disabled{color:var(--g-color-text-hint)}.g-select-clear+.g-select-control__chevron-icon{margin-left:0}.g-select-control__error{color:var(--g-color-text-danger);font-size:var(--g-text-body-1-font-size);line-height:var(--g-text-body-1-line-height);margin-top:2px}.g-select-clear,.g-select-control__error{font-weight:var(--g-text-body-font-weight)}.g-select-clear{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;font-family:var(--g-text-body-font-family);font-size:inherit;justify-content:center;margin:0 0 0 auto;outline:none;padding:0;z-index:1}.g-select-clear:focus-visible{border:1px solid var(--g-color-line-generic-active)}.g-select-clear_size_s{border-radius:var(--yc-border-radius-s);height:24px;width:24px}.g-select-clear_size_m{border-radius:var(--yc-border-radius-m);height:28px;width:28px}.g-select-clear_size_l{border-radius:var(--yc-border-radius-l);height:36px;width:36px}.g-select-clear_size_xl{border-radius:var(--yc-border-radius-xl);height:44px;width:44px}.g-select-clear__clear{--yc-button-background-color:transparent;--yc-button-background-color-hover:transparent;color:var(--g-color-text-secondary)}.g-select-clear:hover .g-select-clear__clear{color:var(--g-color-text-primary)}.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(--g-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(--g-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(--g-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(--g-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(--g-text-body-2-font-size);line-height:28px;overflow:hidden;padding-bottom:8px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.g-root{--yc-sheet-content-paddings:0 10px;--yc-sheet-transition-duration:0.3s}.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(--g-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,.g-select-list__group-label-custom{box-sizing:border-box;height:auto;padding:0;position:relative;width:100%}.g-select-list__group-label{font-size:var(--g-text-body-1-font-size)}.g-select-list_size_s .g-select-list__group-label:not(.g-select-list__group-label_empty){height:24px;padding:8px 8px 4px}.g-select-list_size_m .g-select-list__group-label:not(.g-select-list__group-label_empty){height:28px;padding:8px 8px 4px}.g-select-list_size_l .g-select-list__group-label:not(.g-select-list__group-label_empty){height:36px;padding:10px 12px 6px}.g-select-list_size_xl .g-select-list__group-label:not(.g-select-list__group-label_empty){font-size:var(--g-text-body-2-font-size);height:44px;padding:12px 12px 8px}.g-select-list_mobile .g-select-list__group-label:not(.g-select-list__group-label_empty){font-size:var(--g-text-body-2-font-size);height:36px;padding:12px 12px 8px}.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(--g-color-line-generic);content:"";height:1px;left:0;position:absolute;top:-3px;width:100%}.g-select-list__group-label-content{font-weight:var(--g-text-accent-font-weight);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.g-select-list__item.yc-list__item_selected{background:none}.g-select-list__item.yc-list__item_active,.g-select-list__item.yc-list__item_selected:hover{background:var(--g-color-base-simple-hover)}.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{--_--select-tick-icon-padding-right:4px;padding:0 8px}.g-select-list_size_s .g-select-list__option .g-select-list__option-default-label{height:24px;line-height:24px}.g-select-list_size_m .g-select-list__option{--_--select-tick-icon-padding-right:4px;padding:0 8px}.g-select-list_size_m .g-select-list__option .g-select-list__option-default-label{height:28px;line-height:28px}.g-select-list_size_l .g-select-list__option{--_--select-tick-icon-padding-right:6px;padding:0 12px}.g-select-list_size_l .g-select-list__option .g-select-list__option-default-label{height:36px;line-height:36px}.g-select-list_size_xl .g-select-list__option{--_--select-tick-icon-padding-right:6px;padding:0 12px}.g-select-list_size_xl .g-select-list__option .g-select-list__option-default-label{font-size:var(--g-text-body-2-font-size);height:44px;line-height:44px}.g-select-list_mobile .g-select-list__option{padding:0 12px}.g-select-list_mobile .g-select-list__option .g-select-list__option-default-label{font-size:var(--g-text-body-2-font-size);height:36px;line-height:36px}.g-select-list_mobile .g-select-list__option .g-select-list__tick-icon{padding-right:6px}.g-select-list__option_colored{background-color:var(--g-color-base-selection)}.g-select-list__option_disabled{cursor:default}.g-select-list__option-default-label{font-size:var(--g-text-body-1-font-size);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.g-select-list__option-default-label_disabled{color:var(--g-color-text-secondary)}.g-select-list__tick-icon{box-sizing:initial;color:var(--g-color-text-info);flex:0 0 16px;padding-right:var(--_--select-tick-icon-padding-right);visibility:hidden}.g-select-list__tick-icon_shown{visibility:visible}.g-select-list__loading-indicator{align-items:center;display:flex;justify-content:center;width: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(--g-color-base-brand)}.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-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_active{background:var(--g-color-base-simple-hover)}.yc-list__item_selected{background:var(--g-color-base-selection)}.yc-list__item_selected:hover{background:var(--g-color-base-selection-hover)}.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__item_sortable[data-rbd-drag-handle-context-id]:active{cursor:grabbing}.yc-list__item_dragging{background:var(--g-color-base-simple-hover-solid);z-index:100001}.yc-list__empty-placeholder{box-sizing:border-box;color:var(--g-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(--g-color-text-hint);display:flex;flex:0 0 auto;margin-right:4px;width:12px}.yc-list__loading-indicator{align-items:center;display:flex;justify-content:center;width:100%}.g-select-empty-placeholder{color:var(--g-color-text-hint);margin:4px}.g-select-empty-placeholder_empty{margin-top:0}.ydb-virtual-table{--virtual-table-cell-vertical-padding:5px;--virtual-table-cell-horizontal-padding:10px;--virtual-table-sort-icon-space:18px;--virtual-table-border-color:var(--g-color-base-generic-hover);--virtual-table-hover-color:var(--g-color-base-float-hover);font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height);width:100%}.ydb-virtual-table__table{border-collapse:initial;border-spacing:0;max-width:100%;table-layout:fixed;width:-webkit-max-content;width:max-content}.ydb-virtual-table__row:hover{background:var(--virtual-table-hover-color)}.ydb-virtual-table__row_empty:hover{background-color:initial}.ydb-virtual-table__head{background-color:var(--g-color-base-background);left:0;position:-webkit-sticky;position:sticky;top:0;z-index:1}.ydb-virtual-table__th{border-bottom:1px solid var(--virtual-table-border-color);cursor:default;font-weight:700;padding:var(--virtual-table-cell-vertical-padding) var(--virtual-table-cell-horizontal-padding);position:relative;text-align:left}.ydb-virtual-table__th_sortable{cursor:pointer}.ydb-virtual-table__th_sortable .ydb-virtual-table__head-cell{padding-right:var(--virtual-table-sort-icon-space)}.ydb-virtual-table__th_sortable.ydb-virtual-table__th_align_right .ydb-virtual-table__head-cell{padding-left:var(--virtual-table-sort-icon-space);padding-right:0}.ydb-virtual-table__th_sortable.ydb-virtual-table__th_align_right .ydb-virtual-table__sort-icon{left:0;right:auto;-webkit-transform:translateY(-50%) scaleX(-1);transform:translateY(-50%) scaleX(-1)}.ydb-virtual-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}.ydb-virtual-table__sort-icon{color:inherit;display:inline-flex;position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.ydb-virtual-table__sort-icon_shadow{opacity:.15}.ydb-virtual-table__icon{vertical-align:top}.ydb-virtual-table__icon_desc{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.ydb-virtual-table__td{border-bottom:1px solid var(--virtual-table-border-color);overflow:hidden;padding:var(--virtual-table-cell-vertical-padding) var(--virtual-table-cell-horizontal-padding);text-overflow:ellipsis;white-space:nowrap}.ydb-virtual-table__td,.ydb-virtual-table__th{height:40px;vertical-align:middle}.ydb-virtual-table__td_align_left,.ydb-virtual-table__th_align_left{text-align:left}.ydb-virtual-table__td_align_center,.ydb-virtual-table__th_align_center{text-align:center}.ydb-virtual-table__td_align_right,.ydb-virtual-table__th_align_right{text-align:right}.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)))}.ydb-cell-with-popover{display:flex}.ydb-cell-with-popover__popover{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ydb-usage-label_overload{background-color:var(--ydb-color-status-red);color:var(--g-color-text-light-primary)}.pdisk-storage-popup,.vdisk-storage-popup{padding:12px}.vdisk-storage-popup .info-viewer+.info-viewer{border-top:1px solid var(--g-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(--g-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{width:230px}.global-storage-groups__group-id{font-weight:500}.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,.ydb-virtual-table__row:hover .ydb-node-host-wrapper__external-button{display:inline-flex}.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(--g-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(--g-color-text-secondary);font-size:var(--g-text-body-1-font-size);line-height:var(--g-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}.global-storage__search{width:238px}.global-storage__table .yc-tooltip{height:var(--g-text-body-2-line-height)!important}.global-storage__table table{min-width:100%}.global-storage .entity-status,.progress-viewer{justify-content:center}.progress-viewer{align-items:center;background:var(--g-color-base-generic);border-radius:2px;color:var(--g-color-text-light-primary);display:flex;font-size:var(--g-text-body-2-font-size);height:23px;min-width:120px;overflow:hidden;padding:0 4px;position:relative;white-space:nowrap;z-index:0}.progress-viewer__line{height:100%;left:0;position:absolute;top:0}.progress-viewer__line_bg_scarlet{background:var(--ydb-color-status-red)}.progress-viewer__line_bg_apple{background:var(--ydb-color-status-green)}.progress-viewer__line_bg_saffron{background:var(--ydb-color-status-yellow)}.progress-viewer__text{position:relative;z-index:1}.progress-viewer__text_text_contrast0{color:var(--g-color-text-light-primary)}.progress-viewer__text_text_contrast70{color:var(--g-color-text-complementary)}.progress-viewer_size_xs{font-size:var(--g-text-body-2-font-size);height:20px;line-height:var(--g-text-body-2-line-height)}.progress-viewer_size_s{font-size:var(--g-text-body-1-font-size);height:28px;line-height:28px}.progress-viewer_size_m{font-size:var(--g-text-body-2-font-size);height:32px;line-height:32px}.progress-viewer_size_ns{font-size:13px;height:24px;line-height:var(--g-text-subheader-3-line-height)}.progress-viewer_size_n{font-size:var(--g-text-body-1-font-size);height:36px;line-height:36px}.progress-viewer_size_l{font-size:var(--g-text-subheader-3-font-size);height:38px;line-height:38px}.progress-viewer_size_head{font-size:var(--g-text-body-1-font-size);line-height:36px}.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__box_sticky-head_fixed{overflow:visible;overflow:initial}.ydb-nodes__table .data-table__th{height:auto}.ydb-nodes__table{padding-bottom:20px}.ydb-nodes__node_unavailable{opacity:.6}.ydb-loader{align-items:center;display:flex;flex:1 1 auto;height:100%;justify-content:center}.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(--g-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}.ydb-versions-nodes-tree-title__overview-title{align-items:center;display:flex}.ydb-versions-nodes-tree-title__clipboard-button{color:var(--yc-color-text-secondary);margin-left:8px;visibility:hidden}.yc-progress{background-color:var(--g-color-base-generic);border-radius:3px;margin:0 auto;overflow:hidden;position:relative;text-align:center}.yc-progress__text{position:relative}.yc-progress__text,.yc-progress__text-inner{box-sizing:border-box;color:var(--g-color-text-primary);font-family:var(--g-text-body-font-family);font-size:var(--g-text-body-short-font-size);font-weight:var(--g-text-body-font-weight);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{float:left;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(--g-color-base-neutral-medium)}.yc-progress__item_theme_success{background-color:var(--g-color-base-positive-medium)}.yc-progress__item_theme_warning{background-color:var(--g-color-base-warning-medium)}.yc-progress__item_theme_danger{background-color:var(--g-color-base-danger-medium)}.yc-progress__item_theme_info{background-color:var(--g-color-base-info-medium)}.yc-progress__item_theme_misc{background-color:var(--g-color-base-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(--g-color-text-light-primary);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_size_m,.yc-progress_size_m .yc-progress__stack{height:20px;line-height:20px}.yc-progress_size_m .yc-progress__text{height:20px;margin-bottom:-20px}.yc-progress_size_s,.yc-progress_size_s .yc-progress__stack{height:10px;line-height:10px}.yc-progress_size_xs,.yc-progress_size_xs .yc-progress__stack{height:4px;line-height:4px}.yc-progress_size_s .yc-progress__text,.yc-progress_size_s .yc-progress__text-inner,.yc-progress_size_xs .yc-progress__text,.yc-progress_size_xs .yc-progress__text-inner{display:none}.ydb-versions-grouped-node-tree_first-level{border:1px solid var(--g-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(--g-color-base-background);border-right:1px solid var(--g-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(--g-color-base-background);border-right:1px solid var(--g-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__dt-wrapper .data-table__box_sticky-head_fixed{overflow:visible;overflow:initial}.ydb-versions-grouped-node-tree .ydb-tree-view{font-size:var(--g-text-body-2-font-size);line-height:var(--g-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-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(--g-color-line-generic-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(--g-color-base-simple-hover)}.ydb-tree-view__item:hover .ydb-tree-view__actions{display:flex}.ydb-tree-view__item_active{background-color:var(--g-color-base-selection);font-weight:700}.ydb-tree-view__item_active:hover{background-color:var(--g-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(--g-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{align-items:center;display:none;margin-left:6px}.ydb-tree-view__arrow{background:url('data:image/svg+xml;utf8,') no-repeat 50%;border:none;cursor:pointer;flex-shrink:0;height:24px;padding:0;width:24px}.g-root_theme_dark .ydb-tree-view__arrow{background:url('data:image/svg+xml;utf8,') no-repeat 50%}.ydb-tree-view__arrow:focus-visible{outline:2px solid var(--g-color-line-focus)}.ydb-tree-view__arrow:not(.ydb-tree-view__arrow_collapsed){-webkit-transform:rotate(90deg);transform:rotate(90deg)}.ydb-tree-view__arrow_hidden{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}.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(--g-color-line-generic-solid);margin:.5em 0;pointer-events:none}.yc-dropdown-menu__sub-menu-arrow{position:relative;right:-4px}.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(--g-color-base-float);box-sizing:border-box;color:var(--g-color-text-primary);display:block;font-size:var(--g-text-body-1-font-size);list-style:none;margin:0;outline:none;overflow-x:hidden;overflow-y:auto;padding:0;-webkit-user-select:none;user-select:none}.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(--g-color-line-generic)}.yc-menu__item{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;color:var(--g-color-text-primary);cursor:pointer;display:flex;outline:none;text-decoration:none;touch-action:manipulation}.yc-menu__item-icon{display:flex}.yc-menu__item-icon-end{display:flex;margin-right:0}.yc-menu__item-content{flex-grow:1;min-width:0}.yc-menu__item:focus,.yc-menu__item:hover,.yc-menu__item_selected{background-color:var(--g-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(--g-color-text-secondary);cursor:default;pointer-events:none}.yc-menu__item_disabled:hover{background-color:initial}.yc-menu__item_active{background-color:var(--g-color-base-selection);cursor:default}.yc-menu__item_active:focus,.yc-menu__item_active:hover{background-color:var(--g-color-base-selection-hover)}.yc-menu__item_theme_danger:not(.yc-menu__item_disabled){color:var(--g-color-text-danger)}.yc-menu__group-label{color:var(--g-color-text-hint);font-weight:var(--g-text-accent-font-weight)}.yc-menu__group-list{list-style:none;margin:0;padding:0}.yc-menu_size_s{line-height:24px;padding:3px 0}.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__item-icon-end{margin-left: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{line-height:24px;padding:4px 0}.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__item-icon-end{margin-left: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{line-height:28px;padding:5px 0}.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__item-icon-end{margin-left: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:var(--g-text-body-2-font-size);line-height:36px;padding:6px 0}.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__item-icon-end{margin-left: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-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(--g-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(--g-color-line-focus)}.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(--g-color-line-generic-accent-hover)}.yc-checkbox_checked .yc-checkbox__indicator:before,.yc-checkbox_indeterminate .yc-checkbox__indicator:before{background-color:var(--g-color-base-brand);border:transparent}.yc-checkbox_checked .yc-checkbox__icon,.yc-checkbox_indeterminate .yc-checkbox__icon{color:var(--g-color-text-brand-contrast);-webkit-transform:translateX(0);transform:translateX(0);visibility:visible}.yc-checkbox_disabled .yc-checkbox__indicator:before{background-color:var(--g-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(--g-color-base-brand);opacity:.5}.yc-control-label{-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--g-color-text-primary);cursor:pointer;display:inline-flex;font-family:var(--g-text-body-font-family);font-weight:var(--g-text-body-font-weight);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:var(--g-text-body-1-font-size);line-height:15px}.yc-control-label_size_l{font-size:var(--g-text-body-2-font-size);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(--g-color-base-generic);border-radius:3px;color:var(--g-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(--g-color-celestial-thunder)}.tags{align-items:center;display:flex;flex-wrap:wrap}.tablet-icon{border:1px solid;border-radius:4px;display:flex;font-size:10px;height:16px;justify-content:center;text-transform:uppercase;width:23px}.tablet-icon__type{line-height:14px}.tablet{border-color:var(--g-color-base-generic-medium-hover);color:var(--g-color-text-complementary);cursor:pointer}.tablet__wrapper{margin-bottom:2px;margin-right:2px}.tablet__wrapper:last-child{margin-right:0}.tablet__popup-content{padding:10px}.tablet_status_gray{background-color:var(--ydb-color-status-grey)}.tablet_status_yellow{background-color:var(--ydb-color-status-yellow)}.tablet_status_orange{background-color:var(--ydb-color-status-orange)}.tablet_status_red{background-color:var(--ydb-color-status-red)}.tablet_status_green{background-color:var(--ydb-color-status-green)}.tablet_status_blue{background-color:var(--ydb-color-status-blue)}.tablet_status_black{background-color:var(--ydb-color-status-black)}.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(--g-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(--g-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(--g-text-header-1-font-size);font-weight:var(--g-text-header-font-weight);line-height:var(--g-text-header-1-line-height)}.cluster-info__title-skeleton{height:var(--g-text-header-1-line-height);min-width:200px;width:20%}.cluster-info__error{font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height)}.cluster-info__info{margin-bottom:20px}.cluster-info__info_hidden{display:none}.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__storage-groups-stats{display:flex;flex-direction:column;gap:11px}.cluster-info__groups-stats-bar{cursor:pointer}.cluster-info__groups-stats-popup-content{padding: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(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-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(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-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(--g-text-subheader-3-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-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;border-radius:var(--g-focus-border-radius);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__item:focus .yc-tabs__item-content{outline:2px solid var(--g-color-line-focus);outline-offset:-2px}.yc-tabs__item:focus:not(:focus-visible) .yc-tabs__item-content{outline:0}.yc-tabs_direction_horizontal{align-items:flex-end;box-shadow:inset 0 -1px 0 0 var(--g-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(--g-color-text-secondary)}.yc-tabs_direction_horizontal .yc-tabs__item-counter,.yc-tabs_direction_horizontal .yc-tabs__item-icon{color:var(--g-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(--g-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(--g-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(--g-color-line-brand)}.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(--g-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(--g-color-text-primary);line-height:var(--yc-tab-item-vertical-height)}.yc-tabs_direction_vertical .yc-tabs__item-meta{color:var(--g-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(--g-color-text-secondary)}.yc-tabs_direction_vertical .yc-tabs__item:focus,.yc-tabs_direction_vertical .yc-tabs__item:hover{background-color:var(--g-color-base-generic-hover)}.yc-tabs_direction_vertical .yc-tabs__item_active{background-color:var(--g-color-base-selection)}.yc-tabs_direction_vertical .yc-tabs__item_active:focus,.yc-tabs_direction_vertical .yc-tabs__item_active:hover{background-color:var(--g-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(--g-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(--g-color-base-background);position:relative;z-index:10}.kv-split .gutter:after{background-color:var(--g-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(--g-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(--g-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(--g-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}.ydb-acl{display:flex;flex-grow:1;overflow:auto;padding:0 12px 16px}.ydb-acl .data-table__table{border-collapse:initial;border-spacing:0}.ydb-acl .data-table__td,.ydb-acl .data-table__th{vertical-align:middle}.ydb-acl .data-table__box .data-table__table-wrapper{padding-bottom:20px}.ydb-acl .data-table__row,.ydb-acl .data-table__sticky th{height:40px}.ydb-acl .data-table__th{box-shadow:inset 0 -1px 0 0 var(--g-tabs-color-divider)}.ydb-acl__result{align-self:flex-start}.ydb-acl__message-container{padding:0 12px 16px}.ydb-acl__owner-container{background-color:var(--g-color-base-background);padding-bottom:16px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.ydb-external-data-source-info__location,.ydb-external-table-info__location{max-width:var(--tenant-object-info-max-value-width)}.ydb-navigation-tree-view-loader{align-items:center;display:flex;height:24px;justify-content:center;width:20px}.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(--g-color-line-brand);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)}}.ydb-navigation-tree-view-error{color:var(--g-color-text-danger)}.ydb-navigation-tree-view-empty{color:var(--g-color-text-secondary);font-style:italic}.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(--g-color-base-background);position:absolute;right:5px;top:19px}.object-summary__action-button_hidden{visibility:hidden}.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(--g-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(--g-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(--g-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(--g-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}.gc-help-popover__button{background:none;border:none;color:inherit;cursor:pointer;font-family:var(--g-text-body-font-family);font-size:inherit;font-weight:var(--g-text-body-font-weight);margin:0;outline:none;padding:0}.gc-help-popover__button:focus-visible{border-radius:50%;outline:2px solid var(--g-color-line-focus)}.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(--g-color-text-secondary)}.kv-truncated-query__popover-content{max-width:600px;overflow:hidden;white-space:pre}.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 .data-table__box_sticky-head_fixed{overflow:visible;overflow:initial}.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(--g-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(--g-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(--g-color-text-danger);padding:10px}.yc-dialog-header{align-items:center;color:var(--g-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(--g-text-subheader-3-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-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(--g-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 .data-table__box_sticky-head_fixed{overflow:visible;overflow:initial}.ydb-queries-history__table-row{cursor:pointer}.ydb-queries-history__query{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}.kv-fullscreen{background-color:var(--g-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}.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-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(--g-tabs-color-divider)}.kv-preview__header{align-items:center;background-color:var(--g-color-base-background);border-bottom:1px solid var(--g-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(--g-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(--g-color-line-generic);height:100%;margin:0 4px;width:1px}.kv-query-execution-status{align-items:center;color:var(--g-color-text-complementary);display:flex;gap:4px}.kv-query-execution-status__result-status-icon{color:var(--g-color-text-positive)}.kv-query-execution-status__result-status-icon_error{color:var(--g-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(--g-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(--g-color-text-secondary);display:inline-block;padding-right:10px;text-align:left}.kv-issue__message{display:flex;font-family:var(--g-font-family-monospace);font-size:var(--g-text-code-2-font-size);line-height:var(--g-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(--g-color-text-complementary);flex:0 0 auto;font-size:12px;margin-left:1.5em;padding:3px 0}.kv-issue__arrow-toggle{margin-right: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(--g-color-text-danger)}.yql-issue-severity_severity_warning .yql-issue-severity__icon{color:var(--g-color-text-warning)}.yql-issue-severity_severity_info .yql-issue-severity__icon{color:var(--g-color-text-info)}.yql-issue-severity__title{color:var(--g-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(--g-color-text-complementary);display:flex;margin-left:10px}.ydb-query-duration__item-with-popover{white-space:nowrap}.ydb-query-duration__popover{max-width:300px}.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(--g-tabs-color-divider)}.ydb-query-execute-result__result .data-table__table-wrapper{padding-bottom:0}.ydb-query-execute-result__result-fullscreen-wrapper{display:flex;flex-direction:column;margin-top:10px;padding:0 10px 10px;width:100%}.ydb-query-execute-result__result-tabs{padding-left:10px}.ydb-query-execute-result__error{padding:15px 10px}.ydb-query-execute-result__controls{align-items:center;background-color:var(--g-color-base-background);border-bottom:1px solid var(--g-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__inspector{font-family:var(--g-font-family-monospace)!important;font-size:var(--g-text-code-1-font-size)!important;line-height:var(--g-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(--g-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(--g-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(--g-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(--g-color-text-primary);font-family:var(--g-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(--g-color-text-secondary)}.ydb-query-execute-result__inspector .json-inspector__line:hover:after{background:var(--g-color-base-simple-hover)}.ydb-query-execute-result__inspector .json-inspector__show-original:before{color:var(--g-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(--g-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(--g-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 .data-table__box_sticky-head_fixed{overflow:visible;overflow:initial}.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(--g-color-base-background);border-bottom:1px solid var(--g-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__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(--g-font-family-monospace)!important;font-size:var(--g-text-code-1-font-size)!important;line-height:var(--g-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(--g-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(--g-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(--g-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(--g-color-text-primary);font-family:var(--g-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(--g-color-text-secondary)}.ydb-query-explain-result__inspector .json-inspector__line:hover:after{background:var(--g-color-base-simple-hover)}.ydb-query-explain-result__inspector .json-inspector__show-original:before{color:var(--g-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(--g-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(--g-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(--g-color-text-danger);content:"*"}.kv-save-query__control-wrapper{display:flex;flex-direction:column;flex-grow:1}.kv-save-query__error{color:var(--g-color-text-danger);display:inline-block;height:17px}.kv-save-query__embedded-tooltip{align-items:center;color:var(--g-color-text-secondary);display:flex;height:100%;margin-left:-10px}.kv-save-query__embedded-tooltip:hover{color:var(--g-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}.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__mode-selector__button{margin-left:2px;width:241px}.ydb-query-editor-controls__mode-selector__button-content{align-items:center;display:flex;justify-content:space-between;width:215px}.ydb-query-editor-controls__mode-selector__popup{width:241px}.ydb-query-editor-controls__item-with-popover{align-items:center;display:flex;height:24px;line-height:normal}.ydb-query-editor-controls__popover{max-width:420px;white-space:pre-wrap}.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(--g-tabs-color-divider)}.query-editor__monaco{border:1px solid var(--g-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(--g-color-base-background);display:flex;flex-direction:column;z-index:2}.query-editor__pane-wrapper_top{border-bottom:1px solid var(--g-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(--g-color-base-generic);border-left:1px solid var(--g-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(--g-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(--g-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(--g-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(--g-text-body-2-font-size);font-weight:500;line-height:var(--g-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(--g-font-family-monospace)!important;font-size:var(--g-text-code-1-font-size)!important;line-height:var(--g-text-code-1-line-height)!important}.kv-describe__tree .json-inspector__leaf_composite:before{color:var(--g-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(--g-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(--g-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(--g-color-text-primary);font-family:var(--g-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(--g-color-text-secondary)}.kv-describe__tree .json-inspector__line:hover:after{background:var(--g-color-base-simple-hover)}.kv-describe__tree .json-inspector__show-original:before{color:var(--g-color-text-secondary)}.kv-describe__tree .json-inspector__show-original:hover:after,.kv-describe__tree .json-inspector__show-original:hover:before{color:var(--g-color-text-primary)}.hot-keys{align-items:flex-start;background-color:var(--g-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(--g-color-base-background);border-right:1px solid var(--g-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(--g-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(--g-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(--ydb-color-status-grey)}.node-network_black{background-color:var(--ydb-color-status-black);color:var(--g-color-text-light-primary)}.node-network_green{background-color:var(--ydb-color-status-green)}.node-network_yellow{background-color:var(--ydb-color-status-yellow)}.node-network_red{background-color:var(--ydb-color-status-red)}.node-network:hover{border:1px solid var(--g-color-text-primary)}.network{font-size:var(--g-text-body-2-font-size);justify-content:space-between;line-height:var(--g-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(--g-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(--g-color-base-generic-accent);color:var(--g-color-text-secondary);font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height);margin:0 0 15px}.network__link{color:var(--g-color-base-brand);text-decoration:none}.network__title{font-size:var(--g-text-body-1-font-size);font-weight:500;line-height:var(--g-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(--g-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(--g-color-base-brand)}.yc-table-column-setup__lock-wrap{color:var(--g-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(--g-color-line-generic)}.speed-multimeter__bar{height:100%;min-width:2px}.speed-multimeter__bar_color_light{background:var(--g-color-base-info-medium)}.speed-multimeter__bar_color_dark{background:var(--g-color-base-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(--g-color-text-primary)}.speed-multimeter__popover-row_color_secondary{color:var(--g-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(--g-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-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(--g-color-base-background);border-right:1px solid var(--g-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(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height)}.ydb-diagnostics-consumers-topic-stats__wrapper{border-left:1px solid var(--g-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(--g-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-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(--g-color-base-background);border-right:1px solid var(--g-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(--g-color-line-generic);border-radius:var(--g-border-radius-m);color:var(--g-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(--g-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(--g-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(--g-text-body-2-font-size);font-weight:600;line-height:var(--g-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(--g-text-body-2-font-size);font-weight:600;line-height:var(--g-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(--g-color-text-link);cursor:pointer;width:-webkit-max-content;width:max-content}.issue-tree-item__field_additional:hover{color:var(--g-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(--g-color-text-secondary)}.issue-tree{display:flex}.issue-tree__block{width:100%}.issue-tree__checkbox{margin:5px 0 10px}.issue-tree__info-panel{background:var(--g-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(--g-font-family-monospace)!important;font-size:var(--g-text-code-1-font-size)!important;line-height:var(--g-text-code-1-line-height)!important}.issue-tree__inspector .json-inspector__leaf_composite:before{color:var(--g-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(--g-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(--g-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(--g-color-text-primary);font-family:var(--g-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(--g-color-text-secondary)}.issue-tree__inspector .json-inspector__line:hover:after{background:var(--g-color-base-simple-hover)}.issue-tree__inspector .json-inspector__show-original:before{color:var(--g-color-text-secondary)}.issue-tree__inspector .json-inspector__show-original:hover:after,.issue-tree__inspector .json-inspector__show-original:hover:before{color:var(--g-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{display:flex}.healthcheck_expanded{min-width:885px}.healthcheck__issue-preview{margin-bottom:15px}.healthcheck__message-container{padding:15px 0}.healthcheck__details{width:872px}.healthcheck__details-content-wrapper{overflow-x:hidden}.healthcheck__preview{height:100%}.healthcheck__preview-header{gap:8px;margin-bottom:var(--diagnostics-section-title-margin)}.healthcheck__preview-title{font-size:var(--g-text-subheader-3-font-size);font-weight:600;line-height:var(--g-text-subheader-3-line-height)}.healthcheck__preview-content{line-height:24px}.healthcheck__preview-title-wrapper{align-items:center;display:flex;gap:8px;margin-bottom:4px}.healthcheck__issues-statistics{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}.healthcheck__self-check-status-indicator{border-radius:4px;display:inline-block;font-size:13px;line-height:24px;padding:0 8px}.healthcheck__self-check-status-indicator_good,.healthcheck__self-check-status-indicator_green{background-color:var(--g-color-base-positive-light);color:var(--g-color-text-positive)}.healthcheck__self-check-status-indicator_degraded,.healthcheck__self-check-status-indicator_yellow{background-color:var(--g-color-base-warning-light);color:var(--g-color-text-warning)}.healthcheck__self-check-status-indicator_blue{background-color:var(--g-color-base-info-light);color:var(--g-color-text-info)}.healthcheck__self-check-status-indicator_emergency,.healthcheck__self-check-status-indicator_red{background-color:var(--g-color-base-danger-light);color:var(--g-color-text-danger)}.healthcheck__self-check-status-indicator_gray,.healthcheck__self-check-status-indicator_grey,.healthcheck__self-check-status-indicator_unspecified{background-color:var(--g-color-base-misc-light);color:var(--g-color-text-misc)}.healthcheck__self-check-status-indicator_maintenance_required,.healthcheck__self-check-status-indicator_orange{background-color:var(--g-color-base-warning-light);color:var(--g-color-text-warning-heavy)}.ydb-diagnostic-card{background-color:initial;border:1px solid var(--g-color-line-generic);border-radius:8px;flex-shrink:0;padding:16px 16px 28px;width:206px}.ydb-diagnostic-card_active{background-color:var(--g-color-base-selection);border-color:var(--g-color-base-info-medium)}.ydb-diagnostic-card:hover{box-shadow:0 1px 5px var(--g-color-sfx-shadow);cursor:pointer}.ydb-circular-progress-bar{display:block;max-width:100%;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.ydb-circular-progress-bar__wrapper{position:relative}.ydb-circular-progress-bar__content{left:50%;max-width:100%;overflow:hidden;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ydb-circular-progress-bar__circle-bg{stroke:var(--g-color-base-simple-hover);fill:none}.ydb-circular-progress-bar__circle{fill:none}.ydb-circular-progress-bar__circle_status_good{stroke:var(--ydb-color-status-green)}.ydb-circular-progress-bar__circle_status_warning{stroke:var(--ydb-color-status-yellow)}.ydb-circular-progress-bar__circle_status_danger{stroke:var(--ydb-color-status-red)}.ydb-metrics-card__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.ydb-metrics-card__label{font-size:var(--g-text-subheader-3-font-size);font-weight:600;line-height:var(--g-text-subheader-3-line-height)}.ydb-metrics-card__content{align-items:center;color:var(--g-color-text-secondary);display:flex;flex-direction:column;font-size:var(--g-text-header-1-font-size);line-height:var(--g-text-header-1-line-height);text-align:center}.ydb-metrics-card__progress{font-size:36px;font-weight:500;line-height:40px;text-align:center}.ydb-metrics-card__resources{color:var(--g-color-text-secondary);font-size:var(--g-text-body-1-font-size)}.ydb-metrics-card_active .ydb-metrics-card__content{color:var(--g-color-text-complementary)}.ydb-metrics-card_active .ydb-metrics-card__progress-bar-circle-bg{stroke:var(--g-color-base-float)}.metrics-cards{display:flex;gap:16px;margin-bottom:32px}.metrics-cards__tab{color:inherit;text-decoration:none}.tenant-overview{height:100%;overflow:auto;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:var(--diagnostics-section-title-margin)}.tenant-overview__info{left:0;position:-webkit-sticky;position:sticky;width:-webkit-max-content;width:max-content}.tenant-overview__title{font-size:var(--g-text-body-2-font-size);font-weight:700;line-height:var(--g-text-body-2-line-height);margin-bottom:10px}.tenant-overview__table{width:var(--diagnostics-section-table-width)}.tenant-overview__table .data-table__table{width:100%}.tenant-overview__table .data-table__row,.tenant-overview__table .data-table__sticky th{height:40px}.tenant-overview__table .data-table__box .data-table__table-wrapper{padding-bottom:20px}.tenant-overview__table .data-table__box_sticky-head_fixed{overflow:visible;overflow:initial}.tenant-overview__table:not(:last-child){margin-bottom:var(--diagnostics-section-margin)}.tenant-overview__table th{height:40px;vertical-align:middle}.tenant-overview__table_top-queries tr{cursor:pointer}.tenant-overview__storage-info{margin-bottom:36px}.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:1;flex-shrink:0;min-width:300px}.kv-detailed-overview__modal .yc-modal__content{position:relative}.kv-detailed-overview__close-modal-button{position:absolute;right:13px;top:23px}.kv-tenant-diagnostics{display:flex;flex-direction:column;height:100%;overflow:hidden}.kv-tenant-diagnostics__header-wrapper{background-color:var(--g-color-base-background);padding:13px 20px 16px}.kv-tenant-diagnostics__tabs{align-items:center;box-shadow:inset 0 -1px 0 0 var(--g-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(--g-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(--g-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(--g-color-line-focus)}.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(--g-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(--g-color-base-brand)}.yc-switch_disabled .yc-switch__indicator:before{background-color:var(--g-color-base-generic-accent-disabled)}.yc-switch_disabled.yc-switch_checked .yc-switch__indicator:before{background-color:var(--g-color-base-brand);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(--g-text-body-2-font-size);line-height:var(--g-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(--g-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(--g-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(--g-color-base-brand);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;max-width:none;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(--g-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_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(--g-text-body-2-font-size);font-weight:500;line-height:var(--g-text-body-2-line-height);margin-right:16px;text-transform:uppercase}@-webkit-keyframes onSelectedVdiskAnimation{0%{background-color:var(--g-color-base-info-light-hover)}}@keyframes onSelectedVdiskAnimation{0%{background-color:var(--g-color-base-info-light-hover)}}.basic-node-viewer__link,.link{color:var(--g-color-text-link);text-decoration:none}.basic-node-viewer__link:hover,.link:hover{color:var(--g-color-text-link-hover)}.basic-node-viewer{align-items:center;display:flex;font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height);margin:15px 0}.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{color:var(--g-color-text-hint);line-height:18px;margin-right:10px;white-space:nowrap}.basic-node-viewer__link{margin-left:5px}.ydb-pool-usage{font-size:var(--g-text-body-2-font-size);line-height:var(--g-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(--g-color-text-primary)}.ydb-pool-usage__value{align-items:center;display:flex}.ydb-pool-usage__threads{color:var(--g-color-text-hint);font-size:var(--g-text-body-1-font-size)}.ydb-pool-usage__percents{color:var(--g-color-text-primary);font-size:var(--g-text-body-1-font-size);margin-right:2px}.ydb-pool-usage__visual{align-items:center;background-color:var(--g-color-base-generic-accent);border-radius:4px;display:flex;font-size:var(--g-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(--ydb-color-status-green)}.ydb-pool-usage__usage-line_type_blue{background-color:var(--ydb-color-status-blue)}.ydb-pool-usage__usage-line_type_yellow{background-color:var(--ydb-color-status-yellow)}.ydb-pool-usage__usage-line_type_red{background-color:var(--ydb-color-status-red)}.full-node-viewer{font-size:var(--g-text-body-2-font-size);line-height:var(--g-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:100px}.full-node-viewer__section-title{font-weight:600;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(--g-color-text-link);text-decoration:none}.link:hover,.tablet-page__link:hover{color:var(--g-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(--g-text-body-2-font-size);line-height:var(--g-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(--g-text-body-2-font-size);font-weight:500;line-height:var(--g-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(--g-text-body-2-font-size);font-weight:500;line-height:var(--g-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(--g-text-body-1-font-size);line-height:var(--g-text-body-1-line-height);overflow:hidden}.tablets-filters__node-meta{color:var(--g-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,.tabletsOverall-tooltip{padding:10px}.histogram-tooltip__label,.node-tootltip__label,.tabletsOverall-tooltip__label{color:var(--g-color-text-secondary);padding-right:15px}.json-tooltip{padding:20px 20px 20px 0}.json-tooltip__inspector{font-family:var(--g-font-family-monospace)!important;font-size:var(--g-text-code-1-font-size)!important;line-height:var(--g-text-code-1-line-height)!important}.json-tooltip__inspector .json-inspector__leaf_composite:before{color:var(--g-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(--g-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(--g-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(--g-color-text-primary);font-family:var(--g-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(--g-color-text-secondary)}.json-tooltip__inspector .json-inspector__line:hover:after{background:var(--g-color-base-simple-hover)}.json-tooltip__inspector .json-inspector__show-original:before{color:var(--g-color-text-secondary)}.json-tooltip__inspector .json-inspector__show-original:hover:after,.json-tooltip__inspector .json-inspector__show-original:hover:before{color:var(--g-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}.header{border-bottom:1px solid var(--g-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{display:flex;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:focus{border-radius:calc(var(--g-focus-border-radius) + 4px);outline:2px solid var(--g-color-line-focus);outline-offset:-4px}.yc-breadcrumbs__item:focus:not(:focus-visible){outline:0}.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(--g-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{--g-color-base-yellow-light:rgba(255,199,0,.15);--g-color-base-yellow-medium:rgba(255,219,77,.4);--data-table-row-height:40px}.g-root{--ydb-data-table-color-hover:var(--g-color-base-float-hover);--ydb-color-status-grey:var(--g-color-base-neutral-heavy);--ydb-color-status-green:var(--g-color-base-positive-heavy);--ydb-color-status-yellow:var(--g-color-base-warning-heavy);--ydb-color-status-orange:#ff922e;--ydb-color-status-red:var(--g-color-base-danger-heavy);--ydb-color-status-blue:var(--g-color-base-info-heavy);--ydb-color-status-black:var(--g-color-base-misc-heavy)}:is(#tab,.yc-tabs-item_active .yc-tabs-item__title){color:var(--g-color-text-primary)!important}:is(#tab,.yc-tabs-item__title){color:var(--g-color-text-secondary)}.gn-aside-header__pane-container{height:100%}.gn-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(--g-text-body-2-font-size);line-height:var(--g-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}.error{color:var(--g-color-text-danger)}.data-table__row:focus-within .clipboard-button,.data-table__row:hover .clipboard-button,.ydb-tree-view__item:focus-within .clipboard-button,.ydb-tree-view__item:hover .clipboard-button,.ydb-virtual-table__row:focus-within .clipboard-button,.ydb-virtual-table__row:hover .clipboard-button{visibility:visible}.g-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}.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(--g-text-body-1-font-size);justify-content:space-between;line-height:var(--g-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(--g-text-header-2-font-size);font-weight:600;line-height:var(--g-text-header-2-line-height);margin:34px 0 16px}.authentication__form-wrapper{align-items:center;background-color:var(--g-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-flex{display:flex}.yc-flex_inline{display:inline-flex}.yc-flex_s_0{margin-left:calc(var(--g-spacing-0)*-1)!important;margin-top:calc(var(--g-spacing-0)*-1)!important}.yc-flex_s_0>*{padding-left:var(--g-spacing-0)!important;padding-top:var(--g-spacing-0)!important}.yc-flex_s_half{margin-left:calc(var(--g-spacing-half)*-1)!important;margin-top:calc(var(--g-spacing-half)*-1)!important}.yc-flex_s_half>*{padding-left:var(--g-spacing-half)!important;padding-top:var(--g-spacing-half)!important}.yc-flex_s_1{margin-left:calc(var(--g-spacing-1)*-1)!important;margin-top:calc(var(--g-spacing-1)*-1)!important}.yc-flex_s_1>*{padding-left:var(--g-spacing-1)!important;padding-top:var(--g-spacing-1)!important}.yc-flex_s_2{margin-left:calc(var(--g-spacing-2)*-1)!important;margin-top:calc(var(--g-spacing-2)*-1)!important}.yc-flex_s_2>*{padding-left:var(--g-spacing-2)!important;padding-top:var(--g-spacing-2)!important}.yc-flex_s_3{margin-left:calc(var(--g-spacing-3)*-1)!important;margin-top:calc(var(--g-spacing-3)*-1)!important}.yc-flex_s_3>*{padding-left:var(--g-spacing-3)!important;padding-top:var(--g-spacing-3)!important}.yc-flex_s_4{margin-left:calc(var(--g-spacing-4)*-1)!important;margin-top:calc(var(--g-spacing-4)*-1)!important}.yc-flex_s_4>*{padding-left:var(--g-spacing-4)!important;padding-top:var(--g-spacing-4)!important}.yc-flex_s_5{margin-left:calc(var(--g-spacing-5)*-1)!important;margin-top:calc(var(--g-spacing-5)*-1)!important}.yc-flex_s_5>*{padding-left:var(--g-spacing-5)!important;padding-top:var(--g-spacing-5)!important}.yc-flex_s_6{margin-left:calc(var(--g-spacing-6)*-1)!important;margin-top:calc(var(--g-spacing-6)*-1)!important}.yc-flex_s_6>*{padding-left:var(--g-spacing-6)!important;padding-top:var(--g-spacing-6)!important}.yc-flex_s_7{margin-left:calc(var(--g-spacing-7)*-1)!important;margin-top:calc(var(--g-spacing-7)*-1)!important}.yc-flex_s_7>*{padding-left:var(--g-spacing-7)!important;padding-top:var(--g-spacing-7)!important}.yc-flex_s_8{margin-left:calc(var(--g-spacing-8)*-1)!important;margin-top:calc(var(--g-spacing-8)*-1)!important}.yc-flex_s_8>*{padding-left:var(--g-spacing-8)!important;padding-top:var(--g-spacing-8)!important}.yc-flex_s_9{margin-left:calc(var(--g-spacing-9)*-1)!important;margin-top:calc(var(--g-spacing-9)*-1)!important}.yc-flex_s_9>*{padding-left:var(--g-spacing-9)!important;padding-top:var(--g-spacing-9)!important}.yc-flex_s_10{margin-left:calc(var(--g-spacing-10)*-1)!important;margin-top:calc(var(--g-spacing-10)*-1)!important}.yc-flex_s_10>*{padding-left:var(--g-spacing-10)!important;padding-top:var(--g-spacing-10)!important}.yc-text_variant_display-1{font-size:var(--g-text-display-1-font-size);font-weight:var(--g-text-display-font-weight);line-height:var(--g-text-display-1-line-height)}.yc-text_variant_display-2{font-size:var(--g-text-display-2-font-size);font-weight:var(--g-text-display-font-weight);line-height:var(--g-text-display-2-line-height)}.yc-text_variant_display-3{font-size:var(--g-text-display-3-font-size);font-weight:var(--g-text-display-font-weight);line-height:var(--g-text-display-3-line-height)}.yc-text_variant_display-4{font-size:var(--g-text-display-4-font-size);font-weight:var(--g-text-display-font-weight);line-height:var(--g-text-display-4-line-height)}.yc-text_variant_code-1{font-size:var(--g-text-code-1-font-size);line-height:var(--g-text-code-1-line-height)}.yc-text_variant_code-1,.yc-text_variant_code-2{font-family:var(--g-font-family-monospace);font-weight:var(--g-text-code-font-weight)}.yc-text_variant_code-2{font-size:var(--g-text-code-2-font-size);line-height:var(--g-text-code-2-line-height)}.yc-text_variant_code-3{font-size:var(--g-text-code-3-font-size);line-height:var(--g-text-code-3-line-height)}.yc-text_variant_code-3,.yc-text_variant_code-inline-1{font-family:var(--g-font-family-monospace);font-weight:var(--g-text-code-font-weight)}.yc-text_variant_code-inline-1{font-size:var(--g-text-code-inline-1-font-size);line-height:var(--g-text-code-inline-1-line-height)}.yc-text_variant_code-inline-2{font-size:var(--g-text-code-inline-2-font-size);line-height:var(--g-text-code-inline-2-line-height)}.yc-text_variant_code-inline-2,.yc-text_variant_code-inline-3{font-family:var(--g-font-family-monospace);font-weight:var(--g-text-code-font-weight)}.yc-text_variant_code-inline-3{font-size:var(--g-text-code-inline-3-font-size);line-height:var(--g-text-code-inline-3-line-height)}.yc-text_variant_body-1{font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height)}.yc-text_variant_body-2{font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height)}.yc-text_variant_body-3{font-size:var(--g-text-body-3-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-3-line-height)}.yc-text_variant_body-short{font-size:var(--g-text-body-short-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-short-line-height)}.yc-text_variant_caption-1{font-size:var(--g-text-caption-1-font-size);font-weight:var(--g-text-caption-font-weight);line-height:var(--g-text-caption-1-line-height)}.yc-text_variant_caption-2{font-size:var(--g-text-caption-2-font-size);font-weight:var(--g-text-caption-font-weight);line-height:var(--g-text-caption-2-line-height)}.yc-text_variant_header-1{font-size:var(--g-text-header-1-font-size);font-weight:var(--g-text-header-font-weight);line-height:var(--g-text-header-1-line-height)}.yc-text_variant_header-2{font-size:var(--g-text-header-2-font-size);font-weight:var(--g-text-header-font-weight);line-height:var(--g-text-header-2-line-height)}.yc-text_variant_subheader-1{font-size:var(--g-text-subheader-1-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-1-line-height)}.yc-text_variant_subheader-2{font-size:var(--g-text-subheader-2-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-2-line-height)}.yc-text_variant_subheader-3{font-size:var(--g-text-subheader-3-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-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(--g-color-text-primary)}.yc-color-text_color_complementary{color:var(--g-color-text-complementary)}.yc-color-text_color_secondary{color:var(--g-color-text-secondary)}.yc-color-text_color_hint{color:var(--g-color-text-hint)}.yc-color-text_color_info{color:var(--g-color-text-info)}.yc-color-text_color_info-heavy{color:var(--g-color-text-info-heavy)}.yc-color-text_color_positive{color:var(--g-color-text-positive)}.yc-color-text_color_positive-heavy{color:var(--g-color-text-positive-heavy)}.yc-color-text_color_warning{color:var(--g-color-text-warning)}.yc-color-text_color_warning-heavy{color:var(--g-color-text-warning-heavy)}.yc-color-text_color_danger{color:var(--g-color-text-danger)}.yc-color-text_color_danger-heavy{color:var(--g-color-text-danger-heavy)}.yc-color-text_color_utility{color:var(--g-color-text-utility)}.yc-color-text_color_utility-heavy{color:var(--g-color-text-utility-heavy)}.yc-color-text_color_misc{color:var(--g-color-text-misc)}.yc-color-text_color_misc-heavy{color:var(--g-color-text-misc-heavy)}.yc-color-text_color_brand{color:var(--g-color-text-brand)}.yc-color-text_color_link{color:var(--g-color-text-link)}.yc-color-text_color_link-hover{color:var(--g-color-text-link-hover)}.yc-color-text_color_link-visited{color:var(--g-color-text-link-visited)}.yc-color-text_color_link-visited-hover{color:var(--g-color-text-link-visited-hover)}.yc-color-text_color_dark-primary{color:var(--g-color-text-dark-primary)}.yc-color-text_color_dark-complementary{color:var(--g-color-text-dark-complementary)}.yc-color-text_color_dark-secondary{color:var(--g-color-text-dark-secondary)}.yc-color-text_color_light-primary{color:var(--g-color-text-light-primary)}.yc-color-text_color_light-complementary{color:var(--g-color-text-light-complementary)}.yc-color-text_color_light-secondary{color:var(--g-color-text-light-secondary)}.yc-color-text_color_light-hint{color:var(--g-color-text-light-hint)}.yc-color-text_color_inverted-primary{color:var(--g-color-text-inverted-primary)}.yc-color-text_color_inverted-complementary{color:var(--g-color-text-inverted-complementary)}.yc-color-text_color_inverted-secondary{color:var(--g-color-text-inverted-secondary)}.yc-color-text_color_inverted-hint{color:var(--g-color-text-inverted-hint)}.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(--g-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__ydb-user-wrapper{padding:10px;width:300px}.link{color:var(--g-color-text-link);text-decoration:none}.link_external{margin-right:10px}.link:hover{color:var(--g-color-text-link-hover)}.ydb-error-boundary{align-items:flex-start;display:flex;flex-direction:row;font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height);padding:20px}.ydb-error-boundary__illustration{height:230px;margin-right:20px;width:230px}.ydb-error-boundary__error-title{font-size:var(--g-text-subheader-3-font-size);line-height:var(--g-text-subheader-3-line-height);margin-top:44px}.ydb-error-boundary__error-description{margin-top:12px}.ydb-error-boundary__show-details{margin-top:8px}.ydb-error-boundary__error-details{background-color:var(--g-color-base-generic-ultralight);border:1px solid var(--g-color-line-generic);padding:13px 18px}.ydb-error-boundary__actions{display:flex;flex-direction:row;gap:10px;margin-top:20px}.g-disclosure_size_m{font-size:var(--g-text-body-1-font-size);line-height:var(--g-text-body-1-line-height)}.g-disclosure_size_l,.g-disclosure_size_m{font-weight:var(--g-text-body-font-weight)}.g-disclosure_size_l{font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height)}.g-disclosure_size_xl{font-size:var(--g-text-subheader-3-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-3-line-height)}.g-disclosure__trigger{align-items:center;background:none;border:none;border-radius:var(--g-focus-border-radius);color:inherit;cursor:pointer;display:flex;flex-flow:row nowrap;flex-shrink:0;font-family:var(--g-text-body-font-family);font-size:inherit;font-weight:var(--g-text-body-font-weight);font-weight:inherit;gap:8px;line-height:inherit;margin:0;outline:none;padding:0}.g-disclosure__trigger:focus{outline:2px solid var(--g-color-line-focus)}.g-disclosure__trigger:focus:not(:focus-visible){outline:0}.g-disclosure__trigger_arrow-right{flex-direction:row-reverse}.g-disclosure__trigger_disabled{color:var(--g-color-text-secondary);cursor:auto}.g-disclosure__content{display:none}.g-disclosure__content_visible{display:block}.g-disclosure__content.g-disclosure_exit_active{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-name:yc-disclosure-collapsed;animation-name:yc-disclosure-collapsed;display:block;opacity:0}.g-disclosure__content.g-disclosure_enter_active{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:yc-disclosure-expanded;animation-name:yc-disclosure-expanded}@-webkit-keyframes yc-disclosure-expanded{0%{opacity:.4}to{opacity:1}}@keyframes yc-disclosure-expanded{0%{opacity:.4}to{opacity:1}}@-webkit-keyframes yc-disclosure-collapsed{0%{opacity:1}to{opacity:0}}@keyframes yc-disclosure-collapsed{0%{opacity:1}to{opacity:0}}.g-root{--g-text-header-font-weight:500;--g-text-subheader-font-weight:500;--g-text-display-font-weight:500;--g-text-accent-font-weight:500}.g-root_theme_light{--g-color-base-background:#fff;--g-color-base-brand:var(--g-color-private-blue-550-solid);--g-color-base-brand-hover:var(--g-color-private-blue-600-solid);--g-color-base-selection:var(--g-color-private-blue-100);--g-color-base-selection-hover:var(--g-color-private-blue-200);--g-color-line-brand:var(--g-color-private-blue-550-solid);--g-color-text-brand:var(--g-color-private-blue-600-solid);--g-color-text-brand-heavy:var(--g-color-private-blue-700-solid);--g-color-text-brand-contrast:var(--g-color-text-light-primary);--g-color-text-link:var(--g-color-private-blue-600-solid);--g-color-text-link-hover:var(--g-color-private-blue-800-solid);--g-color-private-white-50:hsla(0,0%,100%,.05);--g-color-private-white-70:hsla(0,0%,100%,.07);--g-color-private-white-100:hsla(0,0%,100%,.1);--g-color-private-white-150:hsla(0,0%,100%,.15);--g-color-private-white-200:hsla(0,0%,100%,.2);--g-color-private-white-250:hsla(0,0%,100%,.25);--g-color-private-white-300:hsla(0,0%,100%,.3);--g-color-private-white-350:hsla(0,0%,100%,.35);--g-color-private-white-400:hsla(0,0%,100%,.4);--g-color-private-white-450:hsla(0,0%,100%,.45);--g-color-private-white-500:hsla(0,0%,100%,.5);--g-color-private-white-550:hsla(0,0%,100%,.55);--g-color-private-white-600:hsla(0,0%,100%,.6);--g-color-private-white-650:hsla(0,0%,100%,.65);--g-color-private-white-700:hsla(0,0%,100%,.7);--g-color-private-white-750:hsla(0,0%,100%,.75);--g-color-private-white-800:hsla(0,0%,100%,.8);--g-color-private-white-850:hsla(0,0%,100%,.85);--g-color-private-white-900:hsla(0,0%,100%,.9);--g-color-private-white-950:hsla(0,0%,100%,.95);--g-color-private-white-1000-solid:#fff;--g-color-private-black-50:rgba(0,0,0,.05);--g-color-private-black-70:rgba(0,0,0,.07);--g-color-private-black-100:rgba(0,0,0,.1);--g-color-private-black-150:rgba(0,0,0,.15);--g-color-private-black-200:rgba(0,0,0,.2);--g-color-private-black-250:rgba(0,0,0,.25);--g-color-private-black-300:rgba(0,0,0,.3);--g-color-private-black-350:rgba(0,0,0,.35);--g-color-private-black-400:rgba(0,0,0,.4);--g-color-private-black-450:rgba(0,0,0,.45);--g-color-private-black-500:rgba(0,0,0,.5);--g-color-private-black-550:rgba(0,0,0,.55);--g-color-private-black-600:rgba(0,0,0,.6);--g-color-private-black-650:rgba(0,0,0,.65);--g-color-private-black-700:rgba(0,0,0,.7);--g-color-private-black-750:rgba(0,0,0,.75);--g-color-private-black-800:rgba(0,0,0,.8);--g-color-private-black-850:rgba(0,0,0,.85);--g-color-private-black-900:rgba(0,0,0,.9);--g-color-private-black-950:rgba(0,0,0,.95);--g-color-private-black-20-solid:#fafafa;--g-color-private-black-50-solid:#f2f2f2;--g-color-private-black-100-solid:#e5e5e5;--g-color-private-black-150-solid:#d9d9d9;--g-color-private-black-200-solid:#ccc;--g-color-private-black-250-solid:#bfbfbf;--g-color-private-black-300-solid:#b3b3b3;--g-color-private-black-350-solid:#a6a6a6;--g-color-private-black-400-solid:#999;--g-color-private-black-450-solid:#8c8c8c;--g-color-private-black-500-solid:grey;--g-color-private-black-550-solid:#737373;--g-color-private-black-600-solid:#666;--g-color-private-black-650-solid:#595959;--g-color-private-black-700-solid:#4c4c4c;--g-color-private-black-750-solid:#404040;--g-color-private-black-800-solid:#333;--g-color-private-black-850-solid:#262626;--g-color-private-black-900-solid:#1a1a1a;--g-color-private-black-950-solid:#0d0d0d;--g-color-private-black-1000-solid:#000;--g-color-private-blue-50:rgba(82,130,255,.1);--g-color-private-blue-100:rgba(82,130,255,.15);--g-color-private-blue-150:rgba(82,130,255,.2);--g-color-private-blue-200:rgba(82,130,255,.3);--g-color-private-blue-250:rgba(82,130,255,.4);--g-color-private-blue-300:rgba(82,130,255,.5);--g-color-private-blue-350:rgba(82,130,255,.6);--g-color-private-blue-400:rgba(82,130,255,.7);--g-color-private-blue-450:rgba(82,130,255,.8);--g-color-private-blue-500:rgba(82,130,255,.9);--g-color-private-blue-50-solid:#eef3ff;--g-color-private-blue-100-solid:#e5ecff;--g-color-private-blue-150-solid:#dce6ff;--g-color-private-blue-200-solid:#cbdaff;--g-color-private-blue-250-solid:#bacdff;--g-color-private-blue-300-solid:#a8c1ff;--g-color-private-blue-350-solid:#97b4ff;--g-color-private-blue-400-solid:#86a8ff;--g-color-private-blue-450-solid:#749bff;--g-color-private-blue-500-solid:#638fff;--g-color-private-blue-550-solid:#5282ff;--g-color-private-blue-600-solid:#4e79eb;--g-color-private-blue-650-solid:#4a71d6;--g-color-private-blue-700-solid:#4768c2;--g-color-private-blue-750-solid:#4360ad;--g-color-private-blue-800-solid:#3f5799;--g-color-private-blue-850-solid:#3c4f85;--g-color-private-blue-900-solid:#384670;--g-color-private-blue-950-solid:#343d5c;--g-color-private-blue-1000-solid:#333952;--g-color-private-green-50:rgba(59,201,53,.1);--g-color-private-green-100:rgba(59,201,53,.15);--g-color-private-green-150:rgba(59,201,53,.2);--g-color-private-green-200:rgba(59,201,53,.3);--g-color-private-green-250:rgba(59,201,53,.4);--g-color-private-green-300:rgba(59,201,53,.5);--g-color-private-green-350:rgba(59,201,53,.6);--g-color-private-green-400:rgba(59,201,53,.7);--g-color-private-green-450:rgba(59,201,53,.8);--g-color-private-green-500:rgba(59,201,53,.9);--g-color-private-green-50-solid:#ebfaeb;--g-color-private-green-100-solid:#e2f7e1;--g-color-private-green-150-solid:#d8f4d7;--g-color-private-green-200-solid:#c4efc2;--g-color-private-green-250-solid:#b1e9ae;--g-color-private-green-300-solid:#9de49a;--g-color-private-green-350-solid:#89df86;--g-color-private-green-400-solid:#76d972;--g-color-private-green-450-solid:#62d45d;--g-color-private-green-500-solid:#4fce49;--g-color-private-green-550-solid:#3bc935;--g-color-private-green-600-solid:#3ab935;--g-color-private-green-650-solid:#38aa35;--g-color-private-green-700-solid:#379a34;--g-color-private-green-750-solid:#358a34;--g-color-private-green-800-solid:#347b34;--g-color-private-green-850-solid:#336b34;--g-color-private-green-900-solid:#315b34;--g-color-private-green-950-solid:#304b33;--g-color-private-green-1000-solid:#2f4433;--g-color-private-yellow-50:rgba(255,219,77,.1);--g-color-private-yellow-100:rgba(255,219,77,.15);--g-color-private-yellow-150:rgba(255,219,77,.2);--g-color-private-yellow-200:rgba(255,219,77,.3);--g-color-private-yellow-250:rgba(255,219,77,.4);--g-color-private-yellow-300:rgba(255,219,77,.5);--g-color-private-yellow-350:rgba(255,219,77,.6);--g-color-private-yellow-400:rgba(255,219,77,.7);--g-color-private-yellow-450:rgba(255,219,77,.8);--g-color-private-yellow-500:rgba(255,219,77,.9);--g-color-private-yellow-50-solid:#fffbed;--g-color-private-yellow-100-solid:#fffae4;--g-color-private-yellow-150-solid:#fff8db;--g-color-private-yellow-200-solid:#fff4ca;--g-color-private-yellow-250-solid:#fff1b8;--g-color-private-yellow-300-solid:#ffeda6;--g-color-private-yellow-350-solid:#ffe994;--g-color-private-yellow-400-solid:#ffe682;--g-color-private-yellow-450-solid:#ffe271;--g-color-private-yellow-500-solid:#ffdf5f;--g-color-private-yellow-550-solid:#ffdb4d;--g-color-private-yellow-600-solid:#eac94a;--g-color-private-yellow-650-solid:#d5b848;--g-color-private-yellow-700-solid:#c0a645;--g-color-private-yellow-750-solid:#ab9543;--g-color-private-yellow-800-solid:#968340;--g-color-private-yellow-850-solid:#81723d;--g-color-private-yellow-900-solid:#6c603b;--g-color-private-yellow-950-solid:#574f38;--g-color-private-yellow-1000-solid:#4d4637;--g-color-private-orange-50:rgba(255,119,0,.1);--g-color-private-orange-100:rgba(255,119,0,.15);--g-color-private-orange-150:rgba(255,119,0,.2);--g-color-private-orange-200:rgba(255,119,0,.3);--g-color-private-orange-250:rgba(255,119,0,.4);--g-color-private-orange-300:rgba(255,119,0,.5);--g-color-private-orange-350:rgba(255,119,0,.6);--g-color-private-orange-400:rgba(255,119,0,.7);--g-color-private-orange-450:rgba(255,119,0,.8);--g-color-private-orange-500:rgba(255,119,0,.9);--g-color-private-orange-50-solid:#fff1e6;--g-color-private-orange-100-solid:#ffebd9;--g-color-private-orange-150-solid:#ffe4cc;--g-color-private-orange-200-solid:#ffd6b3;--g-color-private-orange-250-solid:#ffc999;--g-color-private-orange-300-solid:#ffbb80;--g-color-private-orange-350-solid:#ffad66;--g-color-private-orange-400-solid:#ffa04c;--g-color-private-orange-450-solid:#ff9233;--g-color-private-orange-500-solid:#ff851a;--g-color-private-orange-550-solid:#f70;--g-color-private-orange-600-solid:#ea7005;--g-color-private-orange-650-solid:#d5680a;--g-color-private-orange-700-solid:#c0600f;--g-color-private-orange-750-solid:#ab5914;--g-color-private-orange-800-solid:#965119;--g-color-private-orange-850-solid:#814a1f;--g-color-private-orange-900-solid:#6c4324;--g-color-private-orange-950-solid:#573b29;--g-color-private-orange-1000-solid:#4d372b;--g-color-private-red-50:rgba(255,4,0,.1);--g-color-private-red-100:rgba(255,4,0,.15);--g-color-private-red-150:rgba(255,4,0,.2);--g-color-private-red-200:rgba(255,4,0,.3);--g-color-private-red-250:rgba(255,4,0,.4);--g-color-private-red-300:rgba(255,4,0,.5);--g-color-private-red-350:rgba(255,4,0,.6);--g-color-private-red-400:rgba(255,4,0,.7);--g-color-private-red-450:rgba(255,4,0,.8);--g-color-private-red-500:rgba(255,4,0,.9);--g-color-private-red-50-solid:#ffe6e6;--g-color-private-red-100-solid:#ffd9d9;--g-color-private-red-150-solid:#ffcdcc;--g-color-private-red-200-solid:#ffb4b3;--g-color-private-red-250-solid:#ff9b99;--g-color-private-red-300-solid:#ff8280;--g-color-private-red-350-solid:#ff6966;--g-color-private-red-400-solid:#ff504c;--g-color-private-red-450-solid:#ff3733;--g-color-private-red-500-solid:#ff1e1a;--g-color-private-red-550-solid:#ff0400;--g-color-private-red-600-solid:#ea0805;--g-color-private-red-650-solid:#d50c0a;--g-color-private-red-700-solid:#c0100f;--g-color-private-red-750-solid:#ab1414;--g-color-private-red-800-solid:#961819;--g-color-private-red-850-solid:#811c1f;--g-color-private-red-900-solid:#6c2024;--g-color-private-red-950-solid:#572429;--g-color-private-red-1000-solid:#4d262b;--g-color-private-purple-50:rgba(143,82,204,.1);--g-color-private-purple-100:rgba(143,82,204,.15);--g-color-private-purple-150:rgba(143,82,204,.2);--g-color-private-purple-200:rgba(143,82,204,.3);--g-color-private-purple-250:rgba(143,82,204,.4);--g-color-private-purple-300:rgba(143,82,204,.5);--g-color-private-purple-350:rgba(143,82,204,.6);--g-color-private-purple-400:rgba(143,82,204,.7);--g-color-private-purple-450:rgba(143,82,204,.8);--g-color-private-purple-500:rgba(143,82,204,.9);--g-color-private-purple-50-solid:#f4eefa;--g-color-private-purple-100-solid:#eee5f7;--g-color-private-purple-150-solid:#e9dcf5;--g-color-private-purple-200-solid:#ddcbf0;--g-color-private-purple-250-solid:#d2baeb;--g-color-private-purple-300-solid:#c7a9e6;--g-color-private-purple-350-solid:#bc97e0;--g-color-private-purple-400-solid:#b186db;--g-color-private-purple-450-solid:#a575d6;--g-color-private-purple-500-solid:#9a63d1;--g-color-private-purple-550-solid:#8f52cc;--g-color-private-purple-600-solid:#854ebd;--g-color-private-purple-650-solid:#7b4aad;--g-color-private-purple-700-solid:#72479e;--g-color-private-purple-750-solid:#68438f;--g-color-private-purple-800-solid:#5e3f80;--g-color-private-purple-850-solid:#543b70;--g-color-private-purple-900-solid:#4a3761;--g-color-private-purple-950-solid:#413452;--g-color-private-purple-1000-solid:#3c324a;--g-color-private-cool-grey-50:rgba(107,132,153,.1);--g-color-private-cool-grey-100:rgba(107,132,153,.15);--g-color-private-cool-grey-150:rgba(107,132,153,.2);--g-color-private-cool-grey-200:rgba(107,132,153,.3);--g-color-private-cool-grey-250:rgba(107,132,153,.4);--g-color-private-cool-grey-300:rgba(107,132,153,.5);--g-color-private-cool-grey-350:rgba(107,132,153,.6);--g-color-private-cool-grey-400:rgba(107,132,153,.7);--g-color-private-cool-grey-450:rgba(107,132,153,.8);--g-color-private-cool-grey-500:rgba(107,132,153,.9);--g-color-private-cool-grey-50-solid:#f0f3f5;--g-color-private-cool-grey-100-solid:#e9edf0;--g-color-private-cool-grey-150-solid:#e1e6eb;--g-color-private-cool-grey-200-solid:#d3dae0;--g-color-private-cool-grey-250-solid:#c4ced6;--g-color-private-cool-grey-300-solid:#b5c1cc;--g-color-private-cool-grey-350-solid:#a6b5c2;--g-color-private-cool-grey-400-solid:#97a9b8;--g-color-private-cool-grey-450-solid:#899dad;--g-color-private-cool-grey-500-solid:#7a90a3;--g-color-private-cool-grey-550-solid:#6b8499;--g-color-private-cool-grey-600-solid:#657b8f;--g-color-private-cool-grey-650-solid:#5f7285;--g-color-private-cool-grey-700-solid:#586a7a;--g-color-private-cool-grey-750-solid:#526170;--g-color-private-cool-grey-800-solid:#4c5866;--g-color-private-cool-grey-850-solid:#464f5c;--g-color-private-cool-grey-900-solid:#404652;--g-color-private-cool-grey-950-solid:#393e47;--g-color-private-cool-grey-1000-solid:#363942}.g-root_theme_light-hc{--g-color-base-background:#fff;--g-color-base-brand:var(--g-color-private-blue-600-solid);--g-color-base-brand-hover:var(--g-color-private-blue-800-solid);--g-color-base-selection:var(--g-color-private-blue-250);--g-color-base-selection-hover:var(--g-color-private-blue-350);--g-color-line-brand:var(--g-color-private-blue-600-solid);--g-color-text-brand:var(--g-color-private-blue-650-solid);--g-color-text-brand-heavy:var(--g-color-private-blue-900-solid);--g-color-text-brand-contrast:var(--g-color-text-light-primary);--g-color-text-link:var(--g-color-private-blue-650-solid);--g-color-text-link-hover:var(--g-color-private-blue-850-solid);--g-color-private-white-50:hsla(0,0%,100%,.05);--g-color-private-white-70:hsla(0,0%,100%,.07);--g-color-private-white-100:hsla(0,0%,100%,.1);--g-color-private-white-150:hsla(0,0%,100%,.15);--g-color-private-white-200:hsla(0,0%,100%,.2);--g-color-private-white-250:hsla(0,0%,100%,.25);--g-color-private-white-300:hsla(0,0%,100%,.3);--g-color-private-white-350:hsla(0,0%,100%,.35);--g-color-private-white-400:hsla(0,0%,100%,.4);--g-color-private-white-450:hsla(0,0%,100%,.45);--g-color-private-white-500:hsla(0,0%,100%,.5);--g-color-private-white-550:hsla(0,0%,100%,.55);--g-color-private-white-600:hsla(0,0%,100%,.6);--g-color-private-white-650:hsla(0,0%,100%,.65);--g-color-private-white-700:hsla(0,0%,100%,.7);--g-color-private-white-750:hsla(0,0%,100%,.75);--g-color-private-white-800:hsla(0,0%,100%,.8);--g-color-private-white-850:hsla(0,0%,100%,.85);--g-color-private-white-900:hsla(0,0%,100%,.9);--g-color-private-white-950:hsla(0,0%,100%,.95);--g-color-private-white-1000-solid:#fff;--g-color-private-black-50:rgba(0,0,0,.05);--g-color-private-black-100:rgba(0,0,0,.1);--g-color-private-black-150:rgba(0,0,0,.15);--g-color-private-black-200:rgba(0,0,0,.2);--g-color-private-black-250:rgba(0,0,0,.25);--g-color-private-black-300:rgba(0,0,0,.3);--g-color-private-black-350:rgba(0,0,0,.35);--g-color-private-black-400:rgba(0,0,0,.4);--g-color-private-black-450:rgba(0,0,0,.45);--g-color-private-black-500:rgba(0,0,0,.5);--g-color-private-black-550:rgba(0,0,0,.55);--g-color-private-black-600:rgba(0,0,0,.6);--g-color-private-black-650:rgba(0,0,0,.65);--g-color-private-black-700:rgba(0,0,0,.7);--g-color-private-black-750:rgba(0,0,0,.75);--g-color-private-black-800:rgba(0,0,0,.8);--g-color-private-black-850:rgba(0,0,0,.85);--g-color-private-black-900:rgba(0,0,0,.9);--g-color-private-black-950:rgba(0,0,0,.95);--g-color-private-black-50-solid:#f2f2f2;--g-color-private-black-100-solid:#e5e5e5;--g-color-private-black-150-solid:#d9d9d9;--g-color-private-black-200-solid:#ccc;--g-color-private-black-250-solid:#bfbfbf;--g-color-private-black-300-solid:#b3b3b3;--g-color-private-black-350-solid:#a6a6a6;--g-color-private-black-400-solid:#999;--g-color-private-black-450-solid:#8c8c8c;--g-color-private-black-500-solid:grey;--g-color-private-black-550-solid:#737373;--g-color-private-black-600-solid:#666;--g-color-private-black-650-solid:#595959;--g-color-private-black-700-solid:#4c4c4c;--g-color-private-black-750-solid:#404040;--g-color-private-black-800-solid:#333;--g-color-private-black-850-solid:#262626;--g-color-private-black-900-solid:#1a1a1a;--g-color-private-black-950-solid:#0d0d0d;--g-color-private-black-1000-solid:#000;--g-color-private-blue-50:rgba(82,130,255,.1);--g-color-private-blue-100:rgba(82,130,255,.15);--g-color-private-blue-150:rgba(82,130,255,.2);--g-color-private-blue-200:rgba(82,130,255,.3);--g-color-private-blue-250:rgba(82,130,255,.4);--g-color-private-blue-300:rgba(82,130,255,.5);--g-color-private-blue-350:rgba(82,130,255,.6);--g-color-private-blue-400:rgba(82,130,255,.7);--g-color-private-blue-450:rgba(82,130,255,.8);--g-color-private-blue-500:rgba(82,130,255,.9);--g-color-private-blue-50-solid:#eef3ff;--g-color-private-blue-100-solid:#e5ecff;--g-color-private-blue-150-solid:#dce6ff;--g-color-private-blue-200-solid:#cbdaff;--g-color-private-blue-250-solid:#bacdff;--g-color-private-blue-300-solid:#a8c1ff;--g-color-private-blue-350-solid:#97b4ff;--g-color-private-blue-400-solid:#86a8ff;--g-color-private-blue-450-solid:#749bff;--g-color-private-blue-500-solid:#638fff;--g-color-private-blue-550-solid:#5282ff;--g-color-private-blue-600-solid:#4d79e9;--g-color-private-blue-650-solid:#486fd4;--g-color-private-blue-700-solid:#4366be;--g-color-private-blue-750-solid:#3f5ca8;--g-color-private-blue-800-solid:#3a5393;--g-color-private-blue-850-solid:#35497d;--g-color-private-blue-900-solid:#304067;--g-color-private-blue-950-solid:#2c3651;--g-color-private-blue-1000-solid:#293147;--g-color-private-green-50:rgba(59,201,53,.1);--g-color-private-green-100:rgba(59,201,53,.15);--g-color-private-green-150:rgba(59,201,53,.2);--g-color-private-green-200:rgba(59,201,53,.3);--g-color-private-green-250:rgba(59,201,53,.4);--g-color-private-green-300:rgba(59,201,53,.5);--g-color-private-green-350:rgba(59,201,53,.6);--g-color-private-green-400:rgba(59,201,53,.7);--g-color-private-green-450:rgba(59,201,53,.8);--g-color-private-green-500:rgba(59,201,53,.9);--g-color-private-green-50-solid:#ebfaeb;--g-color-private-green-100-solid:#e2f7e1;--g-color-private-green-150-solid:#d8f4d7;--g-color-private-green-200-solid:#c4efc2;--g-color-private-green-250-solid:#b1e9ae;--g-color-private-green-300-solid:#9de49a;--g-color-private-green-350-solid:#89df86;--g-color-private-green-400-solid:#76d972;--g-color-private-green-450-solid:#62d45d;--g-color-private-green-500-solid:#4fce49;--g-color-private-green-550-solid:#3bc935;--g-color-private-green-600-solid:#38b833;--g-color-private-green-650-solid:#36a832;--g-color-private-green-700-solid:#339730;--g-color-private-green-750-solid:#31872f;--g-color-private-green-800-solid:#2f762e;--g-color-private-green-850-solid:#2c652c;--g-color-private-green-900-solid:#29552b;--g-color-private-green-950-solid:#274429;--g-color-private-green-1000-solid:#263c28;--g-color-private-yellow-50:rgba(255,219,77,.1);--g-color-private-yellow-100:rgba(255,219,77,.15);--g-color-private-yellow-150:rgba(255,219,77,.2);--g-color-private-yellow-200:rgba(255,219,77,.3);--g-color-private-yellow-250:rgba(255,219,77,.4);--g-color-private-yellow-300:rgba(255,219,77,.5);--g-color-private-yellow-350:rgba(255,219,77,.6);--g-color-private-yellow-400:rgba(255,219,77,.7);--g-color-private-yellow-450:rgba(255,219,77,.8);--g-color-private-yellow-500:rgba(255,219,77,.9);--g-color-private-yellow-50-solid:#fffbed;--g-color-private-yellow-100-solid:#fffae4;--g-color-private-yellow-150-solid:#fff8db;--g-color-private-yellow-200-solid:#fff4ca;--g-color-private-yellow-250-solid:#fff1b8;--g-color-private-yellow-300-solid:#ffeda6;--g-color-private-yellow-350-solid:#ffe994;--g-color-private-yellow-400-solid:#ffe682;--g-color-private-yellow-450-solid:#ffe271;--g-color-private-yellow-500-solid:#ffdf5f;--g-color-private-yellow-550-solid:#ffdb4d;--g-color-private-yellow-600-solid:#e9c949;--g-color-private-yellow-650-solid:#d3b645;--g-color-private-yellow-700-solid:#bda441;--g-color-private-yellow-750-solid:#a7913d;--g-color-private-yellow-800-solid:#907f3a;--g-color-private-yellow-850-solid:#7a6d36;--g-color-private-yellow-900-solid:#645a32;--g-color-private-yellow-950-solid:#4e482e;--g-color-private-yellow-1000-solid:#433f2c;--g-color-private-orange-50:rgba(255,119,0,.1);--g-color-private-orange-100:rgba(255,119,0,.15);--g-color-private-orange-150:rgba(255,119,0,.2);--g-color-private-orange-200:rgba(255,119,0,.3);--g-color-private-orange-250:rgba(255,119,0,.4);--g-color-private-orange-300:rgba(255,119,0,.5);--g-color-private-orange-350:rgba(255,119,0,.6);--g-color-private-orange-400:rgba(255,119,0,.7);--g-color-private-orange-450:rgba(255,119,0,.8);--g-color-private-orange-500:rgba(255,119,0,.9);--g-color-private-orange-50-solid:#fff1e6;--g-color-private-orange-100-solid:#ffebd9;--g-color-private-orange-150-solid:#ffe4cc;--g-color-private-orange-200-solid:#ffd6b3;--g-color-private-orange-250-solid:#ffc999;--g-color-private-orange-300-solid:#ffbb80;--g-color-private-orange-350-solid:#ffad66;--g-color-private-orange-400-solid:#ffa04c;--g-color-private-orange-450-solid:#ff9233;--g-color-private-orange-500-solid:#ff851a;--g-color-private-orange-550-solid:#f70;--g-color-private-orange-600-solid:#e96f04;--g-color-private-orange-650-solid:#d36608;--g-color-private-orange-700-solid:#bd5e0b;--g-color-private-orange-750-solid:#a7550f;--g-color-private-orange-800-solid:#904d13;--g-color-private-orange-850-solid:#7a4517;--g-color-private-orange-900-solid:#643c1b;--g-color-private-orange-950-solid:#4e341e;--g-color-private-orange-1000-solid:#433020;--g-color-private-red-50:rgba(255,4,0,.1);--g-color-private-red-100:rgba(255,4,0,.15);--g-color-private-red-150:rgba(255,4,0,.2);--g-color-private-red-200:rgba(255,4,0,.3);--g-color-private-red-250:rgba(255,4,0,.4);--g-color-private-red-300:rgba(255,4,0,.5);--g-color-private-red-350:rgba(255,4,0,.6);--g-color-private-red-400:rgba(255,4,0,.7);--g-color-private-red-450:rgba(255,4,0,.8);--g-color-private-red-500:rgba(255,4,0,.9);--g-color-private-red-50-solid:#ffe6e6;--g-color-private-red-100-solid:#ffd9d9;--g-color-private-red-150-solid:#ffcdcc;--g-color-private-red-200-solid:#ffb4b3;--g-color-private-red-250-solid:#ff9b99;--g-color-private-red-300-solid:#ff8280;--g-color-private-red-350-solid:#ff6966;--g-color-private-red-400-solid:#ff504c;--g-color-private-red-450-solid:#ff3733;--g-color-private-red-500-solid:#ff1e1a;--g-color-private-red-550-solid:#ff0400;--g-color-private-red-600-solid:#e90804;--g-color-private-red-650-solid:#d30b08;--g-color-private-red-700-solid:#bd0e0b;--g-color-private-red-750-solid:#a6110f;--g-color-private-red-800-solid:#901413;--g-color-private-red-850-solid:#7a1717;--g-color-private-red-900-solid:#641a1b;--g-color-private-red-950-solid:#4e1d1e;--g-color-private-red-1000-solid:#431e20;--g-color-private-purple-50:rgba(143,82,204,.1);--g-color-private-purple-100:rgba(143,82,204,.15);--g-color-private-purple-150:rgba(143,82,204,.2);--g-color-private-purple-200:rgba(143,82,204,.3);--g-color-private-purple-250:rgba(143,82,204,.4);--g-color-private-purple-300:rgba(143,82,204,.5);--g-color-private-purple-350:rgba(143,82,204,.6);--g-color-private-purple-400:rgba(143,82,204,.7);--g-color-private-purple-450:rgba(143,82,204,.8);--g-color-private-purple-500:rgba(143,82,204,.9);--g-color-private-purple-50-solid:#f4eefa;--g-color-private-purple-100-solid:#eee5f7;--g-color-private-purple-150-solid:#e9dcf5;--g-color-private-purple-200-solid:#ddcbf0;--g-color-private-purple-250-solid:#d2baeb;--g-color-private-purple-300-solid:#c7a9e6;--g-color-private-purple-350-solid:#bc97e0;--g-color-private-purple-400-solid:#b186db;--g-color-private-purple-450-solid:#a575d6;--g-color-private-purple-500-solid:#9a63d1;--g-color-private-purple-550-solid:#8f52cc;--g-color-private-purple-600-solid:#844dbb;--g-color-private-purple-650-solid:#7949ab;--g-color-private-purple-700-solid:#6e449a;--g-color-private-purple-750-solid:#633f8a;--g-color-private-purple-800-solid:#593b79;--g-color-private-purple-850-solid:#4e3668;--g-color-private-purple-900-solid:#433158;--g-color-private-purple-950-solid:#382c47;--g-color-private-purple-1000-solid:#322a3f;--g-color-private-cool-grey-50:rgba(107,132,153,.1);--g-color-private-cool-grey-100:rgba(107,132,153,.15);--g-color-private-cool-grey-150:rgba(107,132,153,.2);--g-color-private-cool-grey-200:rgba(107,132,153,.3);--g-color-private-cool-grey-250:rgba(107,132,153,.4);--g-color-private-cool-grey-300:rgba(107,132,153,.5);--g-color-private-cool-grey-350:rgba(107,132,153,.6);--g-color-private-cool-grey-400:rgba(107,132,153,.7);--g-color-private-cool-grey-450:rgba(107,132,153,.8);--g-color-private-cool-grey-500:rgba(107,132,153,.9);--g-color-private-cool-grey-50-solid:#f0f3f5;--g-color-private-cool-grey-100-solid:#e9edf0;--g-color-private-cool-grey-150-solid:#e1e6eb;--g-color-private-cool-grey-200-solid:#d3dae0;--g-color-private-cool-grey-250-solid:#c4ced6;--g-color-private-cool-grey-300-solid:#b5c1cc;--g-color-private-cool-grey-350-solid:#a6b5c2;--g-color-private-cool-grey-400-solid:#97a9b8;--g-color-private-cool-grey-450-solid:#899dad;--g-color-private-cool-grey-500-solid:#7a90a3;--g-color-private-cool-grey-550-solid:#6b8499;--g-color-private-cool-grey-600-solid:#647a8e;--g-color-private-cool-grey-650-solid:#5c7182;--g-color-private-cool-grey-700-solid:#556776;--g-color-private-cool-grey-750-solid:#4e5d6b;--g-color-private-cool-grey-800-solid:#465360;--g-color-private-cool-grey-850-solid:#3f4a54;--g-color-private-cool-grey-900-solid:#384049;--g-color-private-cool-grey-950-solid:#31363d;--g-color-private-cool-grey-1000-solid:#2d3237}.g-root_theme_dark{--g-color-base-background:#2d2c33;--g-color-base-brand:var(--g-color-private-blue-450-solid);--g-color-base-brand-hover:var(--g-color-private-blue-600-solid);--g-color-base-selection:var(--g-color-private-blue-150);--g-color-base-selection-hover:var(--g-color-private-blue-200);--g-color-line-brand:var(--g-color-private-blue-550-solid);--g-color-text-brand:var(--g-color-private-blue-550-solid);--g-color-text-brand-heavy:var(--g-color-private-blue-600-solid);--g-color-text-brand-contrast:var(--g-color-text-light-primary);--g-color-text-link:var(--g-color-private-blue-550-solid);--g-color-text-link-hover:var(--g-color-private-blue-700-solid);--g-color-private-white-20:hsla(0,0%,100%,.02);--g-color-private-white-50:hsla(0,0%,100%,.05);--g-color-private-white-70:hsla(0,0%,100%,.07);--g-color-private-white-100:hsla(0,0%,100%,.1);--g-color-private-white-150:hsla(0,0%,100%,.15);--g-color-private-white-200:hsla(0,0%,100%,.2);--g-color-private-white-250:hsla(0,0%,100%,.25);--g-color-private-white-300:hsla(0,0%,100%,.3);--g-color-private-white-350:hsla(0,0%,100%,.35);--g-color-private-white-400:hsla(0,0%,100%,.4);--g-color-private-white-450:hsla(0,0%,100%,.45);--g-color-private-white-500:hsla(0,0%,100%,.5);--g-color-private-white-550:hsla(0,0%,100%,.55);--g-color-private-white-600:hsla(0,0%,100%,.6);--g-color-private-white-650:hsla(0,0%,100%,.65);--g-color-private-white-700:hsla(0,0%,100%,.7);--g-color-private-white-750:hsla(0,0%,100%,.75);--g-color-private-white-800:hsla(0,0%,100%,.8);--g-color-private-white-850:hsla(0,0%,100%,.85);--g-color-private-white-900:hsla(0,0%,100%,.9);--g-color-private-white-950:hsla(0,0%,100%,.95);--g-color-private-white-20-solid:#313037;--g-color-private-white-50-solid:#38373d;--g-color-private-white-70-solid:#3c3b41;--g-color-private-white-100-solid:#424147;--g-color-private-white-150-solid:#4d4c52;--g-color-private-white-200-solid:#57565c;--g-color-private-white-250-solid:#616166;--g-color-private-white-300-solid:#6c6b70;--g-color-private-white-350-solid:#77767a;--g-color-private-white-400-solid:#818085;--g-color-private-white-450-solid:#8b8b8f;--g-color-private-white-500-solid:#969699;--g-color-private-white-550-solid:#a0a0a3;--g-color-private-white-600-solid:#ababad;--g-color-private-white-650-solid:#b6b5b8;--g-color-private-white-700-solid:#c0c0c2;--g-color-private-white-750-solid:#cacacc;--g-color-private-white-800-solid:#d5d5d6;--g-color-private-white-850-solid:#dfdfe0;--g-color-private-white-900-solid:#eaeaeb;--g-color-private-white-950-solid:#f5f5f5;--g-color-private-white-1000-solid:#fff;--g-color-private-white-opaque-150:rgba(76,75,81,.95);--g-color-private-black-20:rgba(0,0,0,.02);--g-color-private-black-50:rgba(0,0,0,.05);--g-color-private-black-100:rgba(0,0,0,.1);--g-color-private-black-150:rgba(0,0,0,.15);--g-color-private-black-200:rgba(0,0,0,.2);--g-color-private-black-250:rgba(0,0,0,.25);--g-color-private-black-300:rgba(0,0,0,.3);--g-color-private-black-350:rgba(0,0,0,.35);--g-color-private-black-400:rgba(0,0,0,.4);--g-color-private-black-450:rgba(0,0,0,.45);--g-color-private-black-500:rgba(0,0,0,.5);--g-color-private-black-550:rgba(0,0,0,.55);--g-color-private-black-600:rgba(0,0,0,.6);--g-color-private-black-650:rgba(0,0,0,.65);--g-color-private-black-700:rgba(0,0,0,.7);--g-color-private-black-750:rgba(0,0,0,.75);--g-color-private-black-800:rgba(0,0,0,.8);--g-color-private-black-850:rgba(0,0,0,.85);--g-color-private-black-900:rgba(0,0,0,.9);--g-color-private-black-950:rgba(0,0,0,.95);--g-color-private-black-1000-solid:#000;--g-color-private-black-rock-850:#2d2c33;--g-color-private-blue-50:rgba(82,130,255,.1);--g-color-private-blue-100:rgba(82,130,255,.15);--g-color-private-blue-150:rgba(82,130,255,.2);--g-color-private-blue-200:rgba(82,130,255,.3);--g-color-private-blue-250:rgba(82,130,255,.4);--g-color-private-blue-300:rgba(82,130,255,.5);--g-color-private-blue-350:rgba(82,130,255,.6);--g-color-private-blue-400:rgba(82,130,255,.7);--g-color-private-blue-450:rgba(82,130,255,.8);--g-color-private-blue-500:rgba(82,130,255,.9);--g-color-private-blue-50-solid:#313547;--g-color-private-blue-100-solid:#333952;--g-color-private-blue-150-solid:#343d5c;--g-color-private-blue-200-solid:#384670;--g-color-private-blue-250-solid:#3c4e85;--g-color-private-blue-300-solid:#405799;--g-color-private-blue-350-solid:#4360ad;--g-color-private-blue-400-solid:#4768c2;--g-color-private-blue-450-solid:#4b71d6;--g-color-private-blue-500-solid:#4e79eb;--g-color-private-blue-550-solid:#5282ff;--g-color-private-blue-600-solid:#638fff;--g-color-private-blue-650-solid:#759bff;--g-color-private-blue-700-solid:#86a8ff;--g-color-private-blue-750-solid:#97b4ff;--g-color-private-blue-800-solid:#a9c1ff;--g-color-private-blue-850-solid:#bacdff;--g-color-private-blue-900-solid:#cbdaff;--g-color-private-blue-950-solid:#dce6ff;--g-color-private-blue-1000-solid:#e5ecff;--g-color-private-green-50:rgba(91,181,87,.1);--g-color-private-green-100:rgba(91,181,87,.15);--g-color-private-green-150:rgba(91,181,87,.2);--g-color-private-green-200:rgba(91,181,87,.3);--g-color-private-green-250:rgba(91,181,87,.4);--g-color-private-green-300:rgba(91,181,87,.5);--g-color-private-green-350:rgba(91,181,87,.6);--g-color-private-green-400:rgba(91,181,87,.7);--g-color-private-green-450:rgba(91,181,87,.8);--g-color-private-green-500:rgba(91,181,87,.9);--g-color-private-green-50-solid:#323a37;--g-color-private-green-100-solid:#344138;--g-color-private-green-150-solid:#36473a;--g-color-private-green-200-solid:#3b553e;--g-color-private-green-250-solid:#3f6341;--g-color-private-green-300-solid:#447145;--g-color-private-green-350-solid:#497e49;--g-color-private-green-400-solid:#4d8c4c;--g-color-private-green-450-solid:#529a50;--g-color-private-green-500-solid:#56a753;--g-color-private-green-550-solid:#5bb557;--g-color-private-green-600-solid:#6bbc68;--g-color-private-green-650-solid:#7cc479;--g-color-private-green-700-solid:#8ccb89;--g-color-private-green-750-solid:#9dd39a;--g-color-private-green-800-solid:#addaab;--g-color-private-green-850-solid:#bde1bc;--g-color-private-green-900-solid:#cee9cd;--g-color-private-green-950-solid:#def0dd;--g-color-private-green-1000-solid:#e6f4e6;--g-color-private-yellow-50:rgba(255,203,0,.1);--g-color-private-yellow-100:rgba(255,203,0,.15);--g-color-private-yellow-150:rgba(255,203,0,.2);--g-color-private-yellow-200:rgba(255,203,0,.3);--g-color-private-yellow-250:rgba(255,203,0,.4);--g-color-private-yellow-300:rgba(255,203,0,.5);--g-color-private-yellow-350:rgba(255,203,0,.6);--g-color-private-yellow-400:rgba(255,203,0,.7);--g-color-private-yellow-450:rgba(255,203,0,.8);--g-color-private-yellow-500:rgba(255,203,0,.9);--g-color-private-yellow-50-solid:#423c2e;--g-color-private-yellow-100-solid:#4d442b;--g-color-private-yellow-150-solid:#574c29;--g-color-private-yellow-200-solid:#6c5c24;--g-color-private-yellow-250-solid:#816c1f;--g-color-private-yellow-300-solid:#967c19;--g-color-private-yellow-350-solid:#ab8c14;--g-color-private-yellow-400-solid:#c09b0f;--g-color-private-yellow-450-solid:#d5ab0a;--g-color-private-yellow-500-solid:#e9ba04;--g-color-private-yellow-550-solid:#ffcb00;--g-color-private-yellow-600-solid:#ffd01a;--g-color-private-yellow-650-solid:#ffd533;--g-color-private-yellow-700-solid:#ffdb4c;--g-color-private-yellow-750-solid:#ffe066;--g-color-private-yellow-800-solid:#ffe580;--g-color-private-yellow-850-solid:#ffea99;--g-color-private-yellow-900-solid:#ffefb3;--g-color-private-yellow-950-solid:#fff5cc;--g-color-private-yellow-1000-solid:#fff7d9;--g-color-private-orange-50:rgba(200,99,12,.1);--g-color-private-orange-100:rgba(200,99,12,.15);--g-color-private-orange-150:rgba(200,99,12,.2);--g-color-private-orange-200:rgba(200,99,12,.3);--g-color-private-orange-250:rgba(200,99,12,.4);--g-color-private-orange-300:rgba(200,99,12,.5);--g-color-private-orange-350:rgba(200,99,12,.6);--g-color-private-orange-400:rgba(200,99,12,.7);--g-color-private-orange-450:rgba(200,99,12,.8);--g-color-private-orange-500:rgba(200,99,12,.9);--g-color-private-orange-50-solid:#3d322f;--g-color-private-orange-100-solid:#44342d;--g-color-private-orange-150-solid:#4c372b;--g-color-private-orange-200-solid:#5c3d27;--g-color-private-orange-250-solid:#6b4223;--g-color-private-orange-300-solid:#7b4720;--g-color-private-orange-350-solid:#8a4d1c;--g-color-private-orange-400-solid:#995218;--g-color-private-orange-450-solid:#a95814;--g-color-private-orange-500-solid:#b95e10;--g-color-private-orange-550-solid:#c8630c;--g-color-private-orange-600-solid:#ce7324;--g-color-private-orange-650-solid:#d3823d;--g-color-private-orange-700-solid:#d89255;--g-color-private-orange-750-solid:#dea16d;--g-color-private-orange-800-solid:#e3b185;--g-color-private-orange-850-solid:#e9c19e;--g-color-private-orange-900-solid:#efd0b6;--g-color-private-orange-950-solid:#f4e0ce;--g-color-private-orange-1000-solid:#f7e8db;--g-color-private-red-50:rgba(232,73,69,.1);--g-color-private-red-100:rgba(232,73,69,.15);--g-color-private-red-150:rgba(232,73,69,.2);--g-color-private-red-200:rgba(232,73,69,.3);--g-color-private-red-250:rgba(232,73,69,.4);--g-color-private-red-300:rgba(232,73,69,.5);--g-color-private-red-350:rgba(232,73,69,.6);--g-color-private-red-400:rgba(232,73,69,.7);--g-color-private-red-450:rgba(232,73,69,.8);--g-color-private-red-500:rgba(232,73,69,.9);--g-color-private-red-50-solid:#402f35;--g-color-private-red-100-solid:#493036;--g-color-private-red-150-solid:#523237;--g-color-private-red-200-solid:#653539;--g-color-private-red-250-solid:#78383a;--g-color-private-red-300-solid:#8a3a3c;--g-color-private-red-350-solid:#9d3d3e;--g-color-private-red-400-solid:#b04040;--g-color-private-red-450-solid:#c34341;--g-color-private-red-500-solid:#d54644;--g-color-private-red-550-solid:#e84945;--g-color-private-red-600-solid:#ea5b58;--g-color-private-red-650-solid:#ec6d6b;--g-color-private-red-700-solid:#ef7f7d;--g-color-private-red-750-solid:#f19290;--g-color-private-red-800-solid:#f3a4a2;--g-color-private-red-850-solid:#f6b6b5;--g-color-private-red-900-solid:#f8c8c7;--g-color-private-red-950-solid:#fadbda;--g-color-private-red-1000-solid:#fce4e3;--g-color-private-purple-50:rgba(143,82,204,.1);--g-color-private-purple-100:rgba(143,82,204,.15);--g-color-private-purple-150:rgba(143,82,204,.2);--g-color-private-purple-200:rgba(143,82,204,.3);--g-color-private-purple-250:rgba(143,82,204,.4);--g-color-private-purple-300:rgba(143,82,204,.5);--g-color-private-purple-350:rgba(143,82,204,.6);--g-color-private-purple-400:rgba(143,82,204,.7);--g-color-private-purple-450:rgba(143,82,204,.8);--g-color-private-purple-500:rgba(143,82,204,.9);--g-color-private-purple-50-solid:#373042;--g-color-private-purple-100-solid:#3c324a;--g-color-private-purple-150-solid:#413452;--g-color-private-purple-200-solid:#4a3761;--g-color-private-purple-250-solid:#543b70;--g-color-private-purple-300-solid:#5e3f80;--g-color-private-purple-350-solid:#68438f;--g-color-private-purple-400-solid:#72479e;--g-color-private-purple-450-solid:#7b4aad;--g-color-private-purple-500-solid:#854ebd;--g-color-private-purple-550-solid:#8f52cc;--g-color-private-purple-600-solid:#9a63d1;--g-color-private-purple-650-solid:#a575d6;--g-color-private-purple-700-solid:#b186db;--g-color-private-purple-750-solid:#bc97e0;--g-color-private-purple-800-solid:#c7a9e6;--g-color-private-purple-850-solid:#d2baeb;--g-color-private-purple-900-solid:#ddcbf0;--g-color-private-purple-950-solid:#e9dcf5;--g-color-private-purple-1000-solid:#eee5f7;--g-color-private-cool-grey-50:rgba(96,128,156,.1);--g-color-private-cool-grey-100:rgba(96,128,156,.15);--g-color-private-cool-grey-150:rgba(96,128,156,.2);--g-color-private-cool-grey-200:rgba(96,128,156,.3);--g-color-private-cool-grey-250:rgba(96,128,156,.4);--g-color-private-cool-grey-300:rgba(96,128,156,.5);--g-color-private-cool-grey-350:rgba(96,128,156,.6);--g-color-private-cool-grey-400:rgba(96,128,156,.7);--g-color-private-cool-grey-450:rgba(96,128,156,.8);--g-color-private-cool-grey-500:rgba(96,128,156,.9);--g-color-private-cool-grey-50-solid:#32343e;--g-color-private-cool-grey-100-solid:#353943;--g-color-private-cool-grey-150-solid:#373d48;--g-color-private-cool-grey-200-solid:#3c4552;--g-color-private-cool-grey-250-solid:#414e5d;--g-color-private-cool-grey-300-solid:#465667;--g-color-private-cool-grey-350-solid:#4c5e72;--g-color-private-cool-grey-400-solid:#51677d;--g-color-private-cool-grey-450-solid:#566f87;--g-color-private-cool-grey-500-solid:#5b7892;--g-color-private-cool-grey-550-solid:#60809c;--g-color-private-cool-grey-600-solid:#708da6;--g-color-private-cool-grey-650-solid:#8099b0;--g-color-private-cool-grey-700-solid:#90a6ba;--g-color-private-cool-grey-750-solid:#a0b3c3;--g-color-private-cool-grey-800-solid:#b0bfcd;--g-color-private-cool-grey-850-solid:#bfccd7;--g-color-private-cool-grey-900-solid:#cfd9e1;--g-color-private-cool-grey-950-solid:#dfe6eb;--g-color-private-cool-grey-1000-solid:#e7ecf0}.g-root_theme_dark-hc{--g-color-base-background:#222326;--g-color-base-brand:var(--g-color-private-blue-450-solid);--g-color-base-brand-hover:var(--g-color-private-blue-650-solid);--g-color-base-selection:var(--g-color-private-blue-250);--g-color-base-selection-hover:var(--g-color-private-blue-400);--g-color-line-brand:var(--g-color-private-blue-550-solid);--g-color-text-brand:var(--g-color-private-blue-650-solid);--g-color-text-brand-heavy:var(--g-color-private-blue-850-solid);--g-color-text-brand-contrast:var(--g-color-text-light-primary);--g-color-text-link:var(--g-color-private-blue-650-solid);--g-color-text-link-hover:var(--g-color-private-blue-800-solid);--g-color-private-white-50:hsla(0,0%,100%,.05);--g-color-private-white-70:hsla(0,0%,100%,.07);--g-color-private-white-100:hsla(0,0%,100%,.1);--g-color-private-white-150:hsla(0,0%,100%,.15);--g-color-private-white-200:hsla(0,0%,100%,.2);--g-color-private-white-250:hsla(0,0%,100%,.25);--g-color-private-white-300:hsla(0,0%,100%,.3);--g-color-private-white-350:hsla(0,0%,100%,.35);--g-color-private-white-400:hsla(0,0%,100%,.4);--g-color-private-white-450:hsla(0,0%,100%,.45);--g-color-private-white-500:hsla(0,0%,100%,.5);--g-color-private-white-550:hsla(0,0%,100%,.55);--g-color-private-white-600:hsla(0,0%,100%,.6);--g-color-private-white-650:hsla(0,0%,100%,.65);--g-color-private-white-700:hsla(0,0%,100%,.7);--g-color-private-white-750:hsla(0,0%,100%,.75);--g-color-private-white-800:hsla(0,0%,100%,.8);--g-color-private-white-850:hsla(0,0%,100%,.85);--g-color-private-white-900:hsla(0,0%,100%,.9);--g-color-private-white-950:hsla(0,0%,100%,.95);--g-color-private-white-50-solid:#2d2e31;--g-color-private-white-100-solid:#38393c;--g-color-private-white-150-solid:#434447;--g-color-private-white-200-solid:#4e4f51;--g-color-private-white-250-solid:#595a5c;--g-color-private-white-300-solid:#646567;--g-color-private-white-350-solid:#6f7072;--g-color-private-white-400-solid:#7a7b7d;--g-color-private-white-450-solid:#858688;--g-color-private-white-500-solid:#909193;--g-color-private-white-550-solid:#9c9c9d;--g-color-private-white-600-solid:#a7a7a8;--g-color-private-white-650-solid:#b2b2b3;--g-color-private-white-700-solid:#bdbdbe;--g-color-private-white-750-solid:#c8c8c9;--g-color-private-white-800-solid:#d3d3d4;--g-color-private-white-850-solid:#dededf;--g-color-private-white-900-solid:#e9e9e9;--g-color-private-white-950-solid:#f4f4f4;--g-color-private-white-1000-solid:#fff;--g-color-private-white-opaque-150:rgba(56,57,60,.97);--g-color-private-black-20:rgba(0,0,0,.02);--g-color-private-black-50:rgba(0,0,0,.05);--g-color-private-black-100:rgba(0,0,0,.1);--g-color-private-black-150:rgba(0,0,0,.15);--g-color-private-black-200:rgba(0,0,0,.2);--g-color-private-black-250:rgba(0,0,0,.25);--g-color-private-black-300:rgba(0,0,0,.3);--g-color-private-black-350:rgba(0,0,0,.35);--g-color-private-black-400:rgba(0,0,0,.4);--g-color-private-black-450:rgba(0,0,0,.45);--g-color-private-black-500:rgba(0,0,0,.5);--g-color-private-black-550:rgba(0,0,0,.55);--g-color-private-black-600:rgba(0,0,0,.6);--g-color-private-black-650:rgba(0,0,0,.65);--g-color-private-black-700:rgba(0,0,0,.7);--g-color-private-black-750:rgba(0,0,0,.75);--g-color-private-black-800:rgba(0,0,0,.8);--g-color-private-black-850:rgba(0,0,0,.85);--g-color-private-black-900:rgba(0,0,0,.9);--g-color-private-black-950:rgba(0,0,0,.95);--g-color-private-black-1000-solid:#000;--g-color-private-black-rock-850:#2d2c33;--g-color-private-black-rock-950:#222326;--g-color-private-blue-50:rgba(82,130,255,.1);--g-color-private-blue-100:rgba(82,130,255,.15);--g-color-private-blue-150:rgba(82,130,255,.2);--g-color-private-blue-200:rgba(82,130,255,.3);--g-color-private-blue-250:rgba(82,130,255,.4);--g-color-private-blue-300:rgba(82,130,255,.5);--g-color-private-blue-350:rgba(82,130,255,.6);--g-color-private-blue-400:rgba(82,130,255,.7);--g-color-private-blue-450:rgba(82,130,255,.8);--g-color-private-blue-500:rgba(82,130,255,.9);--g-color-private-blue-50-solid:#272d3c;--g-color-private-blue-100-solid:#293147;--g-color-private-blue-150-solid:#2c3651;--g-color-private-blue-200-solid:#304067;--g-color-private-blue-250-solid:#35497d;--g-color-private-blue-300-solid:#3a5393;--g-color-private-blue-350-solid:#3f5ca8;--g-color-private-blue-400-solid:#4466be;--g-color-private-blue-450-solid:#486fd4;--g-color-private-blue-500-solid:#4d79e9;--g-color-private-blue-550-solid:#5282ff;--g-color-private-blue-600-solid:#638fff;--g-color-private-blue-650-solid:#759bff;--g-color-private-blue-700-solid:#86a8ff;--g-color-private-blue-750-solid:#97b4ff;--g-color-private-blue-800-solid:#a9c1ff;--g-color-private-blue-850-solid:#bacdff;--g-color-private-blue-900-solid:#cbdaff;--g-color-private-blue-950-solid:#dce6ff;--g-color-private-blue-1000-solid:#e5ecff;--g-color-private-green-50:rgba(91,181,87,.1);--g-color-private-green-100:rgba(91,181,87,.15);--g-color-private-green-150:#000;--g-color-private-green-200:rgba(91,181,87,.3);--g-color-private-green-250:rgba(91,181,87,.4);--g-color-private-green-300:rgba(91,181,87,.5);--g-color-private-green-350:rgba(91,181,87,.6);--g-color-private-green-400:rgba(91,181,87,.7);--g-color-private-green-450:rgba(91,181,87,.8);--g-color-private-green-500:rgba(91,181,87,.9);--g-color-private-green-50-solid:#28322b;--g-color-private-green-100-solid:#2b392d;--g-color-private-green-150-solid:#2d4030;--g-color-private-green-200-solid:#334f35;--g-color-private-green-250-solid:#395d3a;--g-color-private-green-300-solid:#3f6c3f;--g-color-private-green-350-solid:#447b43;--g-color-private-green-400-solid:#4a8948;--g-color-private-green-450-solid:#50984d;--g-color-private-green-500-solid:#55a652;--g-color-private-green-550-solid:#5bb557;--g-color-private-green-600-solid:#6bbc68;--g-color-private-green-650-solid:#7cc479;--g-color-private-green-700-solid:#8ccb89;--g-color-private-green-750-solid:#9dd39a;--g-color-private-green-800-solid:#addaab;--g-color-private-green-850-solid:#bde1bc;--g-color-private-green-900-solid:#cee9cd;--g-color-private-green-950-solid:#def0dd;--g-color-private-green-1000-solid:#e6f4e6;--g-color-private-yellow-50:rgba(255,203,0,.1);--g-color-private-yellow-100:rgba(255,203,0,.15);--g-color-private-yellow-150:rgba(255,203,0,.2);--g-color-private-yellow-200:rgba(255,203,0,.3);--g-color-private-yellow-250:rgba(255,203,0,.4);--g-color-private-yellow-300:rgba(255,203,0,.5);--g-color-private-yellow-350:rgba(255,203,0,.6);--g-color-private-yellow-400:rgba(255,203,0,.7);--g-color-private-yellow-450:rgba(255,203,0,.8);--g-color-private-yellow-500:rgba(255,203,0,.9);--g-color-private-yellow-50-solid:#383422;--g-color-private-yellow-100-solid:#433c20;--g-color-private-yellow-150-solid:#4e451e;--g-color-private-yellow-200-solid:#64551b;--g-color-private-yellow-250-solid:#7a6617;--g-color-private-yellow-300-solid:#907713;--g-color-private-yellow-350-solid:#a7880f;--g-color-private-yellow-400-solid:#bd990b;--g-color-private-yellow-450-solid:#d3a908;--g-color-private-yellow-500-solid:#e9ba04;--g-color-private-yellow-550-solid:#ffcb00;--g-color-private-yellow-600-solid:#ffd01a;--g-color-private-yellow-650-solid:#ffd533;--g-color-private-yellow-700-solid:#ffdb4c;--g-color-private-yellow-750-solid:#ffe066;--g-color-private-yellow-800-solid:#ffe580;--g-color-private-yellow-850-solid:#ffea99;--g-color-private-yellow-900-solid:#ffefb3;--g-color-private-yellow-950-solid:#fff5cc;--g-color-private-yellow-1000-solid:#fff7d9;--g-color-private-orange-50:rgba(200,99,12,.1);--g-color-private-orange-100:rgba(200,99,12,.15);--g-color-private-orange-150:rgba(200,99,12,.2);--g-color-private-orange-200:rgba(200,99,12,.3);--g-color-private-orange-250:rgba(200,99,12,.4);--g-color-private-orange-300:rgba(200,99,12,.5);--g-color-private-orange-350:rgba(200,99,12,.6);--g-color-private-orange-400:rgba(200,99,12,.7);--g-color-private-orange-450:rgba(200,99,12,.8);--g-color-private-orange-500:rgba(200,99,12,.9);--g-color-private-orange-50-solid:#332923;--g-color-private-orange-100-solid:#3b2d22;--g-color-private-orange-150-solid:#433021;--g-color-private-orange-200-solid:#54361e;--g-color-private-orange-250-solid:#643d1c;--g-color-private-orange-300-solid:#754319;--g-color-private-orange-350-solid:#864916;--g-color-private-orange-400-solid:#965014;--g-color-private-orange-450-solid:#a75611;--g-color-private-orange-500-solid:#b75d0f;--g-color-private-orange-550-solid:#c8630c;--g-color-private-orange-600-solid:#ce7324;--g-color-private-orange-650-solid:#d3823d;--g-color-private-orange-700-solid:#d89255;--g-color-private-orange-750-solid:#dea16d;--g-color-private-orange-800-solid:#e3b185;--g-color-private-orange-850-solid:#e9c19e;--g-color-private-orange-900-solid:#efd0b6;--g-color-private-orange-950-solid:#f4e0ce;--g-color-private-orange-1000-solid:#f7e8db;--g-color-private-red-50:rgba(232,73,69,.1);--g-color-private-red-100:rgba(232,73,69,.15);--g-color-private-red-150:rgba(232,73,69,.2);--g-color-private-red-200:rgba(232,73,69,.3);--g-color-private-red-250:rgba(232,73,69,.4);--g-color-private-red-300:rgba(232,73,69,.5);--g-color-private-red-350:rgba(232,73,69,.6);--g-color-private-red-400:rgba(232,73,69,.7);--g-color-private-red-450:rgba(232,73,69,.8);--g-color-private-red-500:rgba(232,73,69,.9);--g-color-private-red-50-solid:#362729;--g-color-private-red-100-solid:#40292b;--g-color-private-red-150-solid:#4a2b2c;--g-color-private-red-200-solid:#5d2e2f;--g-color-private-red-250-solid:#713233;--g-color-private-red-300-solid:#853636;--g-color-private-red-350-solid:#993a39;--g-color-private-red-400-solid:#ac3d3c;--g-color-private-red-450-solid:#c0413f;--g-color-private-red-500-solid:#d44542;--g-color-private-red-550-solid:#e84945;--g-color-private-red-600-solid:#ea5b58;--g-color-private-red-650-solid:#ec6d6b;--g-color-private-red-700-solid:#ef7f7d;--g-color-private-red-750-solid:#f19290;--g-color-private-red-800-solid:#f3a4a2;--g-color-private-red-850-solid:#f6b6b5;--g-color-private-red-900-solid:#f8c8c7;--g-color-private-red-950-solid:#fadbda;--g-color-private-red-1000-solid:#fce4e3;--g-color-private-purple-50:rgba(143,82,204,.1);--g-color-private-purple-100:rgba(143,82,204,.15);--g-color-private-purple-150:rgba(143,82,204,.2);--g-color-private-purple-200:rgba(143,82,204,.3);--g-color-private-purple-250:rgba(143,82,204,.4);--g-color-private-purple-300:rgba(143,82,204,.5);--g-color-private-purple-350:rgba(143,82,204,.6);--g-color-private-purple-400:rgba(143,82,204,.7);--g-color-private-purple-450:rgba(143,82,204,.8);--g-color-private-purple-500:rgba(143,82,204,.9);--g-color-private-purple-50-solid:#2d2837;--g-color-private-purple-100-solid:#322a3f;--g-color-private-purple-150-solid:#382c47;--g-color-private-purple-200-solid:#433158;--g-color-private-purple-250-solid:#4e3668;--g-color-private-purple-300-solid:#593b79;--g-color-private-purple-350-solid:#633f8a;--g-color-private-purple-400-solid:#6e449a;--g-color-private-purple-450-solid:#7949ab;--g-color-private-purple-500-solid:#844dbb;--g-color-private-purple-550-solid:#8f52cc;--g-color-private-purple-600-solid:#9a63d1;--g-color-private-purple-650-solid:#a575d6;--g-color-private-purple-700-solid:#b186db;--g-color-private-purple-750-solid:#bc97e0;--g-color-private-purple-800-solid:#c7a9e6;--g-color-private-purple-850-solid:#d2baeb;--g-color-private-purple-900-solid:#ddcbf0;--g-color-private-purple-950-solid:#e9dcf5;--g-color-private-purple-1000-solid:#eee5f7;--g-color-private-cool-grey-50:rgba(96,128,156,.1);--g-color-private-cool-grey-100:rgba(96,128,156,.15);--g-color-private-cool-grey-150:rgba(96,128,156,.2);--g-color-private-cool-grey-200:rgba(96,128,156,.3);--g-color-private-cool-grey-250:rgba(96,128,156,.4);--g-color-private-cool-grey-300:rgba(96,128,156,.5);--g-color-private-cool-grey-350:rgba(96,128,156,.6);--g-color-private-cool-grey-400:rgba(96,128,156,.7);--g-color-private-cool-grey-450:rgba(96,128,156,.8);--g-color-private-cool-grey-500:rgba(96,128,156,.9);--g-color-private-cool-grey-50-solid:#282c32;--g-color-private-cool-grey-100-solid:#2b3138;--g-color-private-cool-grey-150-solid:#2e363e;--g-color-private-cool-grey-200-solid:#353f49;--g-color-private-cool-grey-250-solid:#3b4855;--g-color-private-cool-grey-300-solid:#415161;--g-color-private-cool-grey-350-solid:#475b6d;--g-color-private-cool-grey-400-solid:#4d6479;--g-color-private-cool-grey-450-solid:#546d84;--g-color-private-cool-grey-500-solid:#5a7790;--g-color-private-cool-grey-550-solid:#60809c;--g-color-private-cool-grey-600-solid:#708da6;--g-color-private-cool-grey-650-solid:#8099b0;--g-color-private-cool-grey-700-solid:#90a6ba;--g-color-private-cool-grey-750-solid:#a0b3c3;--g-color-private-cool-grey-800-solid:#b0bfcd;--g-color-private-cool-grey-850-solid:#bfccd7;--g-color-private-cool-grey-900-solid:#cfd9e1;--g-color-private-cool-grey-950-solid:#dfe6eb;--g-color-private-cool-grey-1000-solid:#e7ecf0}:root{--tenant-object-info-max-value-width:300px;--diagnostics-section-title-margin:20px;--diagnostics-section-margin:16px;--diagnostics-section-table-width:872px}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} -/*# sourceMappingURL=main.a322fb8b.css.map*/ \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/css/main.c8ce3bba.css b/ydb/core/viewer/monitoring/static/css/main.c8ce3bba.css new file mode 100644 index 000000000000..10e2ef01173a --- /dev/null +++ b/ydb/core/viewer/monitoring/static/css/main.c8ce3bba.css @@ -0,0 +1,9 @@ +@charset "UTF-8";@import url(https://fonts.googleapis.com/css2?family=Rubik&display=swap);.g-root{--g-font-family-sans:"Inter","Helvetica Neue","Helvetica","Arial",sans-serif;--g-font-family-monospace:"Menlo","Monaco","Consolas","Ubuntu Mono","Liberation Mono","DejaVu Sans Mono","Courier New","Courier",monospace;--g-text-body-font-family:var(--g-font-family-sans);--g-text-caption-font-family:var(--g-font-family-sans);--g-text-header-font-family:var(--g-font-family-sans);--g-text-subheader-font-family:var(--g-font-family-sans);--g-text-display-font-family:var(--g-font-family-sans);--g-text-code-font-family:var(--g-font-family-monospace);--g-text-body-font-weight:400;--g-text-caption-font-weight:400;--g-text-header-font-weight:600;--g-text-subheader-font-weight:600;--g-text-display-font-weight:600;--g-text-code-font-weight:400;--g-text-accent-font-weight:600;--g-text-body-1-font-size:13px;--g-text-body-1-line-height:18px;--g-text-body-2-font-size:15px;--g-text-body-2-line-height:20px;--g-text-body-3-font-size:17px;--g-text-body-3-line-height:24px;--g-text-body-short-font-size:13px;--g-text-body-short-line-height:16px;--g-text-caption-1-font-size:9px;--g-text-caption-1-line-height:12px;--g-text-caption-2-font-size:11px;--g-text-caption-2-line-height:16px;--g-text-header-1-font-size:20px;--g-text-header-1-line-height:24px;--g-text-header-2-font-size:24px;--g-text-header-2-line-height:28px;--g-text-subheader-1-font-size:13px;--g-text-subheader-1-line-height:18px;--g-text-subheader-2-font-size:15px;--g-text-subheader-2-line-height:20px;--g-text-subheader-3-font-size:17px;--g-text-subheader-3-line-height:24px;--g-text-display-1-font-size:28px;--g-text-display-1-line-height:36px;--g-text-display-2-font-size:32px;--g-text-display-2-line-height:40px;--g-text-display-3-font-size:40px;--g-text-display-3-line-height:48px;--g-text-display-4-font-size:48px;--g-text-display-4-line-height:52px;--g-text-code-1-font-size:12px;--g-text-code-1-line-height:18px;--g-text-code-2-font-size:14px;--g-text-code-2-line-height:20px;--g-text-code-3-font-size:16px;--g-text-code-3-line-height:24px;--g-text-code-inline-1-font-size:12px;--g-text-code-inline-1-line-height:14px;--g-text-code-inline-2-font-size:14px;--g-text-code-inline-2-line-height:16px;--g-text-code-inline-3-font-size:16px;--g-text-code-inline-3-line-height:20px;--g-spacing-base:4px;--g-spacing-0:calc(var(--g-spacing-base)*0);--g-spacing-half:calc(var(--g-spacing-base)*0.5);--g-spacing-1:var(--g-spacing-base);--g-spacing-2:calc(var(--g-spacing-base)*2);--g-spacing-3:calc(var(--g-spacing-base)*3);--g-spacing-4:calc(var(--g-spacing-base)*4);--g-spacing-5:calc(var(--g-spacing-base)*5);--g-spacing-6:calc(var(--g-spacing-base)*6);--g-spacing-7:calc(var(--g-spacing-base)*7);--g-spacing-8:calc(var(--g-spacing-base)*8);--g-spacing-9:calc(var(--g-spacing-base)*9);--g-spacing-10:calc(var(--g-spacing-base)*10);--g-scrollbar-width:12px;--g-border-radius-xs:3px;--g-border-radius-s:5px;--g-border-radius-m:6px;--g-border-radius-l:8px;--g-border-radius-xl:10px;--g-focus-border-radius:2px;background:var(--g-color-base-background);color:var(--g-color-text-primary);font-family:var(--g-font-family-sans);font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height)}.g-root[dir=ltr],body.g-root{--g-flow-direction:1;--g-flow-is-ltr:1;--g-flow-is-rtl:0}.g-root[dir=rtl]{--g-flow-direction:-1;--g-flow-is-ltr:0;--g-flow-is-rtl:1}.g-root_theme_light{--g-color-private-blue-50:#3697f11a;--g-color-private-blue-100:#3697f126;--g-color-private-blue-150:#3697f133;--g-color-private-blue-200:#3697f14d;--g-color-private-blue-250:#3697f166;--g-color-private-blue-300:#3697f180;--g-color-private-blue-350:#3697f199;--g-color-private-blue-400:#3697f1b3;--g-color-private-blue-450:#3697f1cc;--g-color-private-blue-500:#3697f1e6;--g-color-private-blue-50-solid:#ebf5fe;--g-color-private-blue-100-solid:#e1effd;--g-color-private-blue-150-solid:#d7eafc;--g-color-private-blue-200-solid:#c3e0fb;--g-color-private-blue-250-solid:#afd5f9;--g-color-private-blue-300-solid:#9bcbf8;--g-color-private-blue-350-solid:#86c1f7;--g-color-private-blue-400-solid:#72b6f5;--g-color-private-blue-450-solid:#5eacf4;--g-color-private-blue-500-solid:#4aa1f2;--g-color-private-blue-550-solid:#3697f1;--g-color-private-blue-600-solid:#348bdc;--g-color-private-blue-650-solid:#327fc8;--g-color-private-blue-700-solid:#3072b3;--g-color-private-blue-750-solid:#2e669e;--g-color-private-blue-800-solid:#2c5a8a;--g-color-private-blue-850-solid:#2a4e75;--g-color-private-blue-900-solid:#284260;--g-color-private-blue-950-solid:#26354b;--g-color-private-blue-1000-solid:#252f41;--g-color-private-green-50:#32ba761a;--g-color-private-green-100:#32ba7626;--g-color-private-green-150:#32ba7633;--g-color-private-green-200:#32ba764d;--g-color-private-green-250:#32ba7666;--g-color-private-green-300:#32ba7680;--g-color-private-green-350:#32ba7699;--g-color-private-green-400:#32ba76b3;--g-color-private-green-450:#32ba76cc;--g-color-private-green-500:#32ba76e6;--g-color-private-green-50-solid:#ebf8f1;--g-color-private-green-100-solid:#e0f5ea;--g-color-private-green-150-solid:#d6f1e4;--g-color-private-green-200-solid:#c2ead6;--g-color-private-green-250-solid:#ade3c8;--g-color-private-green-300-solid:#9db;--g-color-private-green-350-solid:#84d6ad;--g-color-private-green-400-solid:#70cf9f;--g-color-private-green-450-solid:#5bc891;--g-color-private-green-500-solid:#47c184;--g-color-private-green-550-solid:#32ba76;--g-color-private-green-600-solid:#30aa6e;--g-color-private-green-650-solid:#2f9b65;--g-color-private-green-700-solid:#2d8b5d;--g-color-private-green-750-solid:#2c7b54;--g-color-private-green-800-solid:#2a6c4c;--g-color-private-green-850-solid:#285c44;--g-color-private-green-900-solid:#274c3b;--g-color-private-green-950-solid:#253c33;--g-color-private-green-1000-solid:#24352f;--g-color-private-yellow-50:#ffbe5c1a;--g-color-private-yellow-100:#ffbe5c26;--g-color-private-yellow-150:#ffbe5c33;--g-color-private-yellow-200:#ffbe5c4d;--g-color-private-yellow-250:#ffbe5c66;--g-color-private-yellow-300:#ffbe5c80;--g-color-private-yellow-350:#ffbe5c99;--g-color-private-yellow-400:#ffbe5cb3;--g-color-private-yellow-450:#ffbe5ccc;--g-color-private-yellow-500:#ffbe5ce6;--g-color-private-yellow-50-solid:#fff9ef;--g-color-private-yellow-100-solid:#fff5e7;--g-color-private-yellow-150-solid:#fff2de;--g-color-private-yellow-200-solid:#ffecce;--g-color-private-yellow-250-solid:#ffe5be;--g-color-private-yellow-300-solid:#ffdfae;--g-color-private-yellow-350-solid:#ffd89d;--g-color-private-yellow-400-solid:#ffd28d;--g-color-private-yellow-450-solid:#ffcb7d;--g-color-private-yellow-500-solid:#ffc56c;--g-color-private-yellow-550-solid:#ffbe5c;--g-color-private-yellow-600-solid:#e9ae56;--g-color-private-yellow-650-solid:#d39e50;--g-color-private-yellow-700-solid:#bd8e4b;--g-color-private-yellow-750-solid:#a77e45;--g-color-private-yellow-800-solid:#916e3f;--g-color-private-yellow-850-solid:#7a5d39;--g-color-private-yellow-900-solid:#644d33;--g-color-private-yellow-950-solid:#4e3d2e;--g-color-private-yellow-1000-solid:#43352b;--g-color-private-orange-400-solid:#ffa04d;--g-color-private-orange-500-solid:#ff8519;--g-color-private-orange-600-solid:#e96e03;--g-color-private-orange-650-solid:#d36507;--g-color-private-orange-700-solid:#bd5c0a;--g-color-private-orange-750-solid:#a7530e;--g-color-private-orange-800-solid:#914a11;--g-color-private-orange-850-solid:#7a4114;--g-color-private-orange-900-solid:#643818;--g-color-private-orange-950-solid:#4e2f1b;--g-color-private-orange-1000-solid:#432b1d;--g-color-private-red-50:#ff003d1a;--g-color-private-red-100:#ff003d26;--g-color-private-red-150:#ff003d33;--g-color-private-red-200:#ff003d4d;--g-color-private-red-250:#ff003d66;--g-color-private-red-300:#ff003d80;--g-color-private-red-350:#ff003d99;--g-color-private-red-400:#ff003db3;--g-color-private-red-450:#ff003dcc;--g-color-private-red-500:#ff003de6;--g-color-private-red-50-solid:#ffe6ec;--g-color-private-red-100-solid:#ffd9e2;--g-color-private-red-150-solid:#ffccd8;--g-color-private-red-200-solid:#ffb3c5;--g-color-private-red-250-solid:#ff99b1;--g-color-private-red-300-solid:#ff809e;--g-color-private-red-350-solid:#ff668b;--g-color-private-red-400-solid:#ff4d77;--g-color-private-red-450-solid:#ff3364;--g-color-private-red-500-solid:#ff1950;--g-color-private-red-550-solid:#ff003d;--g-color-private-red-600-solid:#e9033a;--g-color-private-red-650-solid:#d30638;--g-color-private-red-700-solid:#bd0935;--g-color-private-red-750-solid:#a70c32;--g-color-private-red-800-solid:#910f30;--g-color-private-red-850-solid:#7a112d;--g-color-private-red-900-solid:#64142a;--g-color-private-red-950-solid:#4e1727;--g-color-private-red-1000-solid:#431926;--g-color-private-purple-600-solid:#844dbb;--g-color-private-purple-650-solid:#7947aa;--g-color-private-purple-700-solid:#6e4299;--g-color-private-purple-750-solid:#633d88;--g-color-private-purple-800-solid:#593877;--g-color-private-purple-850-solid:#4e3266;--g-color-private-purple-900-solid:#432d55;--g-color-private-purple-950-solid:#382844;--g-color-private-purple-1000-solid:#32253c;--g-color-private-cool-grey-300-solid:#b5c2cc;--g-color-private-cool-grey-600-solid:#647a8d;--g-color-private-cool-grey-650-solid:#5c6f81;--g-color-private-cool-grey-700-solid:#556575;--g-color-private-cool-grey-750-solid:#4e5b69;--g-color-private-cool-grey-800-solid:#47515e;--g-color-private-cool-grey-850-solid:#3f4652;--g-color-private-cool-grey-900-solid:#383c46;--g-color-private-cool-grey-950-solid:#31323a;--g-color-private-cool-grey-1000-solid:#2d2c34;--g-color-text-primary:var(--g-color-text-dark-primary);--g-color-text-complementary:var(--g-color-text-dark-complementary);--g-color-text-secondary:var(--g-color-text-dark-secondary);--g-color-text-hint:var(--g-color-text-dark-hint);--g-color-text-info:var(--g-color-private-blue-600-solid);--g-color-text-positive:var(--g-color-private-green-600-solid);--g-color-text-warning:var(--g-color-private-yellow-700-solid);--g-color-text-danger:var(--g-color-private-red-600-solid);--g-color-text-utility:var(--g-color-private-purple-600-solid);--g-color-text-misc:var(--g-color-private-cool-grey-600-solid);--g-color-text-info-heavy:var(--g-color-private-blue-700-solid);--g-color-text-positive-heavy:var(--g-color-private-green-700-solid);--g-color-text-warning-heavy:var(--g-color-private-orange-700-solid);--g-color-text-danger-heavy:var(--g-color-private-red-700-solid);--g-color-text-utility-heavy:var(--g-color-private-purple-700-solid);--g-color-text-misc-heavy:var(--g-color-private-cool-grey-700-solid);--g-color-text-brand:var(--g-color-private-yellow-700-solid);--g-color-text-brand-heavy:var(--g-color-private-orange-700-solid);--g-color-text-brand-contrast:var(--g-color-text-dark-primary);--g-color-text-link:var(--g-color-private-yellow-650-solid);--g-color-text-link-hover:var(--g-color-private-orange-650-solid);--g-color-text-link-visited:var(--g-color-private-purple-550-solid);--g-color-text-link-visited-hover:var(--g-color-private-purple-800-solid);--g-color-text-dark-primary:var(--g-color-private-black-850);--g-color-text-dark-complementary:var(--g-color-private-black-700);--g-color-text-dark-secondary:var(--g-color-private-black-500);--g-color-text-dark-hint:var(--g-color-private-black-300);--g-color-text-light-primary:var(--g-color-private-white-1000-solid);--g-color-text-light-complementary:var(--g-color-private-white-850);--g-color-text-light-secondary:var(--g-color-private-white-700);--g-color-text-light-hint:var(--g-color-private-white-500);--g-color-text-inverted-primary:var(--g-color-text-light-primary);--g-color-text-inverted-complementary:var(--g-color-text-light-complementary);--g-color-text-inverted-secondary:var(--g-color-text-light-secondary);--g-color-text-inverted-hint:var(--g-color-text-light-hint);--g-color-base-background:var(--g-color-private-white-1000-solid);--g-color-base-generic:var(--g-color-private-black-50);--g-color-base-generic-hover:var(--g-color-private-black-150);--g-color-base-generic-medium:var(--g-color-private-black-150);--g-color-base-generic-medium-hover:var(--g-color-private-black-250);--g-color-base-generic-accent:var(--g-color-private-black-150);--g-color-base-generic-accent-disabled:var(--g-color-private-black-70);--g-color-base-generic-ultralight:var(--g-color-private-black-20-solid);--g-color-base-simple-hover:var(--g-color-private-black-50);--g-color-base-simple-hover-solid:var(--g-color-private-black-50-solid);--g-color-base-brand:var(--g-color-private-yellow-550-solid);--g-color-base-brand-hover:var(--g-color-private-yellow-600-solid);--g-color-base-selection:var(--g-color-private-yellow-200);--g-color-base-selection-hover:var(--g-color-private-yellow-300);--g-color-base-info-light:var(--g-color-private-blue-100);--g-color-base-info-light-hover:var(--g-color-private-blue-200);--g-color-base-info-medium:var(--g-color-private-blue-200);--g-color-base-info-medium-hover:var(--g-color-private-blue-300);--g-color-base-info-heavy:var(--g-color-private-blue-600-solid);--g-color-base-info-heavy-hover:var(--g-color-private-blue-700-solid);--g-color-base-positive-light:var(--g-color-private-green-100);--g-color-base-positive-light-hover:var(--g-color-private-green-200);--g-color-base-positive-medium:var(--g-color-private-green-200);--g-color-base-positive-medium-hover:var(--g-color-private-green-300);--g-color-base-positive-heavy:var(--g-color-private-green-600-solid);--g-color-base-positive-heavy-hover:var(--g-color-private-green-700-solid);--g-color-base-warning-light:var(--g-color-private-yellow-200);--g-color-base-warning-light-hover:var(--g-color-private-yellow-300);--g-color-base-warning-medium:var(--g-color-private-yellow-400);--g-color-base-warning-medium-hover:var(--g-color-private-yellow-500);--g-color-base-warning-heavy:var(--g-color-private-yellow-550-solid);--g-color-base-warning-heavy-hover:var(--g-color-private-yellow-650-solid);--g-color-base-danger-light:var(--g-color-private-red-100);--g-color-base-danger-light-hover:var(--g-color-private-red-200);--g-color-base-danger-medium:var(--g-color-private-red-200);--g-color-base-danger-medium-hover:var(--g-color-private-red-300);--g-color-base-danger-heavy:var(--g-color-private-red-600-solid);--g-color-base-danger-heavy-hover:var(--g-color-private-red-700-solid);--g-color-base-utility-light:var(--g-color-private-purple-100);--g-color-base-utility-light-hover:var(--g-color-private-purple-200);--g-color-base-utility-medium:var(--g-color-private-purple-200);--g-color-base-utility-medium-hover:var(--g-color-private-purple-300);--g-color-base-utility-heavy:var(--g-color-private-purple-600-solid);--g-color-base-utility-heavy-hover:var(--g-color-private-purple-700-solid);--g-color-base-neutral-light:var(--g-color-private-black-50);--g-color-base-neutral-light-hover:var(--g-color-private-black-100);--g-color-base-neutral-medium:var(--g-color-private-black-200);--g-color-base-neutral-medium-hover:var(--g-color-private-black-250);--g-color-base-neutral-heavy:var(--g-color-private-black-450);--g-color-base-neutral-heavy-hover:var(--g-color-private-black-550);--g-color-base-misc-light:var(--g-color-private-cool-grey-100);--g-color-base-misc-light-hover:var(--g-color-private-cool-grey-200);--g-color-base-misc-medium:var(--g-color-private-cool-grey-200);--g-color-base-misc-medium-hover:var(--g-color-private-cool-grey-300);--g-color-base-misc-heavy:var(--g-color-private-cool-grey-600-solid);--g-color-base-misc-heavy-hover:var(--g-color-private-cool-grey-700-solid);--g-color-base-light:var(--g-color-private-white-1000-solid);--g-color-base-light-hover:var(--g-color-private-white-850);--g-color-base-light-simple-hover:var(--g-color-private-white-150);--g-color-base-light-disabled:var(--g-color-private-white-150);--g-color-base-light-accent-disabled:var(--g-color-private-white-300);--g-color-base-float:var(--g-color-private-white-1000-solid);--g-color-base-float-hover:var(--g-color-private-black-50-solid);--g-color-base-float-medium:var(--g-color-private-black-550-solid);--g-color-base-float-heavy:var(--g-color-private-black-700-solid);--g-color-base-float-accent:var(--g-color-private-white-1000-solid);--g-color-base-float-accent-hover:var(--g-color-private-white-850);--g-color-base-float-announcement:var(--g-color-private-cool-grey-50-solid);--g-color-base-modal:var(--g-color-base-background);--g-color-line-generic:var(--g-color-private-black-100);--g-color-line-generic-hover:var(--g-color-private-black-150);--g-color-line-generic-active:var(--g-color-private-black-300);--g-color-line-generic-accent:var(--g-color-private-black-150);--g-color-line-generic-accent-hover:var(--g-color-private-black-300);--g-color-line-generic-solid:var(--g-color-private-black-100-solid);--g-color-line-brand:var(--g-color-private-yellow-600-solid);--g-color-line-focus:var(--g-color-private-cool-grey-450);--g-color-line-light:var(--g-color-private-white-500);--g-color-line-info:var(--g-color-private-blue-450);--g-color-line-positive:var(--g-color-private-green-450);--g-color-line-warning:var(--g-color-private-yellow-600-solid);--g-color-line-danger:var(--g-color-private-red-450);--g-color-line-utility:var(--g-color-private-purple-450);--g-color-line-misc:var(--g-color-private-cool-grey-450);--g-color-sfx-veil:var(--g-color-private-black-250);--g-color-sfx-shadow:var(--g-color-private-black-150);--g-color-sfx-shadow-heavy:var(--g-color-private-black-500);--g-color-sfx-shadow-light:var(--g-color-private-black-50);--g-color-sfx-fade:var(--g-color-private-white-300);--g-color-scroll-track:var(--g-color-base-background);--g-color-scroll-handle:var(--g-color-private-black-100);--g-color-scroll-handle-hover:var(--g-color-private-black-150);--g-color-scroll-corner:var(--g-color-private-black-100);--g-color-infographics-axis:var(--g-color-private-black-150-solid);--g-color-infographics-tooltip-bg:var(--g-color-private-white-950)}.g-root_theme_dark{--g-color-private-white-20-solid:#262226;--g-color-private-white-50-solid:#2d282d;--g-color-private-white-70-solid:#312d31;--g-color-private-white-100-solid:#383438;--g-color-private-white-150-solid:#433f43;--g-color-private-white-200-solid:#4e4a4e;--g-color-private-white-250-solid:#595559;--g-color-private-white-300-solid:#646164;--g-color-private-white-350-solid:#6f6c6f;--g-color-private-white-400-solid:#7a777a;--g-color-private-white-450-solid:#858385;--g-color-private-white-500-solid:#908e90;--g-color-private-white-550-solid:#9c999c;--g-color-private-white-600-solid:#a7a5a7;--g-color-private-white-650-solid:#b2b0b2;--g-color-private-white-700-solid:#bdbbbd;--g-color-private-white-750-solid:#c8c6c8;--g-color-private-white-800-solid:#d3d2d3;--g-color-private-white-850-solid:#deddde;--g-color-private-white-900-solid:#e9e8e9;--g-color-private-white-950-solid:#f4f4f4;--g-color-private-blue-50:#3697f11a;--g-color-private-blue-100:#3697f126;--g-color-private-blue-150:#3697f133;--g-color-private-blue-200:#3697f14d;--g-color-private-blue-250:#3697f166;--g-color-private-blue-300:#3697f180;--g-color-private-blue-350:#3697f199;--g-color-private-blue-400:#3697f1b3;--g-color-private-blue-450:#3697f1cc;--g-color-private-blue-500:#3697f1e6;--g-color-private-blue-50-solid:#242937;--g-color-private-blue-100-solid:#252f41;--g-color-private-blue-150-solid:#26354b;--g-color-private-blue-200-solid:#284260;--g-color-private-blue-250-solid:#2a4e75;--g-color-private-blue-300-solid:#2c5a8a;--g-color-private-blue-350-solid:#2e669e;--g-color-private-blue-400-solid:#3072b3;--g-color-private-blue-450-solid:#327fc8;--g-color-private-blue-500-solid:#348bdc;--g-color-private-blue-550-solid:#3697f1;--g-color-private-blue-600-solid:#4aa1f2;--g-color-private-blue-650-solid:#5eacf4;--g-color-private-blue-700-solid:#72b6f5;--g-color-private-blue-750-solid:#86c1f7;--g-color-private-blue-800-solid:#9bcbf8;--g-color-private-blue-850-solid:#afd5f9;--g-color-private-blue-900-solid:#c3e0fb;--g-color-private-blue-950-solid:#d7eafc;--g-color-private-blue-1000-solid:#e1effd;--g-color-private-green-50:#4db09b1a;--g-color-private-green-100:#4db09b26;--g-color-private-green-150:#4db09b33;--g-color-private-green-200:#4db09b4d;--g-color-private-green-250:#4db09b66;--g-color-private-green-300:#4db09b80;--g-color-private-green-350:#4db09b99;--g-color-private-green-400:#4db09bb3;--g-color-private-green-450:#4db09bcc;--g-color-private-green-500:#4db09be6;--g-color-private-green-50-solid:#262c2e;--g-color-private-green-100-solid:#283334;--g-color-private-green-150-solid:#2b3a3a;--g-color-private-green-200-solid:#2f4946;--g-color-private-green-250-solid:#335852;--g-color-private-green-300-solid:#38675f;--g-color-private-green-350-solid:#3c756b;--g-color-private-green-400-solid:#408477;--g-color-private-green-450-solid:#449383;--g-color-private-green-500-solid:#49a18f;--g-color-private-green-550-solid:#4db09b;--g-color-private-green-600-solid:#5fb8a5;--g-color-private-green-650-solid:#71c0af;--g-color-private-green-700-solid:#82c8b9;--g-color-private-green-750-solid:#94d0c3;--g-color-private-green-800-solid:#a6d8cd;--g-color-private-green-850-solid:#b8dfd7;--g-color-private-green-900-solid:#cae7e1;--g-color-private-green-950-solid:#dbefeb;--g-color-private-green-1000-solid:#e4f3f0;--g-color-private-yellow-50:#ffbe5c1a;--g-color-private-yellow-100:#ffbe5c26;--g-color-private-yellow-150:#ffbe5c33;--g-color-private-yellow-200:#ffbe5c4d;--g-color-private-yellow-250:#ffbe5c66;--g-color-private-yellow-300:#ffbe5c80;--g-color-private-yellow-350:#ffbe5c99;--g-color-private-yellow-400:#ffbe5cb3;--g-color-private-yellow-450:#ffbe5ccc;--g-color-private-yellow-500:#ffbe5ce6;--g-color-private-yellow-50-solid:#382d28;--g-color-private-yellow-100-solid:#43352b;--g-color-private-yellow-150-solid:#4e3d2e;--g-color-private-yellow-200-solid:#644d33;--g-color-private-yellow-250-solid:#7a5d39;--g-color-private-yellow-300-solid:#916e3f;--g-color-private-yellow-350-solid:#a77e45;--g-color-private-yellow-400-solid:#bd8e4b;--g-color-private-yellow-450-solid:#d39e50;--g-color-private-yellow-500-solid:#e9ae56;--g-color-private-yellow-550-solid:#ffbe5c;--g-color-private-yellow-600-solid:#ffc56c;--g-color-private-yellow-650-solid:#ffcb7d;--g-color-private-yellow-700-solid:#ffd28d;--g-color-private-yellow-750-solid:#ffd89d;--g-color-private-yellow-800-solid:#ffdfae;--g-color-private-yellow-850-solid:#ffe5be;--g-color-private-yellow-900-solid:#ffecce;--g-color-private-yellow-950-solid:#fff2de;--g-color-private-yellow-1000-solid:#fff5e7;--g-color-private-orange-50-solid:#332420;--g-color-private-orange-100-solid:#3b281f;--g-color-private-orange-150-solid:#432b1e;--g-color-private-orange-200-solid:#54321b;--g-color-private-orange-250-solid:#643919;--g-color-private-orange-300-solid:#754017;--g-color-private-orange-350-solid:#864715;--g-color-private-orange-400-solid:#964e13;--g-color-private-orange-450-solid:#a75510;--g-color-private-orange-500-solid:#b75c0e;--g-color-private-orange-700-solid:#d99255;--g-color-private-orange-800-solid:#e4b186;--g-color-private-red-50:#e5325d1a;--g-color-private-red-100:#e5325d26;--g-color-private-red-150:#e5325d33;--g-color-private-red-200:#e5325d4d;--g-color-private-red-250:#e5325d66;--g-color-private-red-300:#e5325d80;--g-color-private-red-350:#e5325d99;--g-color-private-red-400:#e5325db3;--g-color-private-red-450:#e5325dcc;--g-color-private-red-500:#e5325de6;--g-color-private-red-50-solid:#361f28;--g-color-private-red-100-solid:#3f202b;--g-color-private-red-150-solid:#49212e;--g-color-private-red-200-solid:#5d2334;--g-color-private-red-250-solid:#70253a;--g-color-private-red-300-solid:#842840;--g-color-private-red-350-solid:#972a45;--g-color-private-red-400-solid:#ab2c4b;--g-color-private-red-450-solid:#be2e51;--g-color-private-red-500-solid:#d23057;--g-color-private-red-550-solid:#e5325d;--g-color-private-red-600-solid:#e8476d;--g-color-private-red-650-solid:#ea5b7d;--g-color-private-red-700-solid:#ed708e;--g-color-private-red-750-solid:#ef849e;--g-color-private-red-800-solid:#f299ae;--g-color-private-red-850-solid:#f5adbe;--g-color-private-red-900-solid:#f7c2ce;--g-color-private-red-950-solid:#fad6df;--g-color-private-red-1000-solid:#fbe0e7;--g-color-private-purple-50-solid:#2d2233;--g-color-private-purple-100-solid:#32253c;--g-color-private-purple-150-solid:#382844;--g-color-private-purple-200-solid:#432d55;--g-color-private-purple-250-solid:#4e3266;--g-color-private-purple-300-solid:#593877;--g-color-private-purple-350-solid:#633d88;--g-color-private-purple-400-solid:#6e4299;--g-color-private-purple-450-solid:#7947aa;--g-color-private-purple-500-solid:#844dbb;--g-color-private-cool-grey-50-solid:#28272e;--g-color-private-cool-grey-100-solid:#2b2c34;--g-color-private-cool-grey-150-solid:#2e313a;--g-color-private-cool-grey-200-solid:#353b47;--g-color-private-cool-grey-250-solid:#3b4553;--g-color-private-cool-grey-300-solid:#414f5f;--g-color-private-cool-grey-350-solid:#47586b;--g-color-private-cool-grey-400-solid:#4d6277;--g-color-private-cool-grey-450-solid:#546c84;--g-color-private-cool-grey-500-solid:#5a7690;--g-color-private-cool-grey-750-solid:#a0b3c4;--g-color-private-cool-grey-800-solid:#b0c0ce;--g-color-text-primary:var(--g-color-text-light-primary);--g-color-text-complementary:var(--g-color-text-light-complementary);--g-color-text-secondary:var(--g-color-text-light-secondary);--g-color-text-hint:var(--g-color-text-light-hint);--g-color-text-info:var(--g-color-private-blue-550-solid);--g-color-text-positive:var(--g-color-private-green-550-solid);--g-color-text-warning:var(--g-color-private-yellow-550-solid);--g-color-text-danger:var(--g-color-private-red-550-solid);--g-color-text-utility:var(--g-color-private-purple-600-solid);--g-color-text-misc:var(--g-color-private-cool-grey-600-solid);--g-color-text-info-heavy:var(--g-color-private-blue-600-solid);--g-color-text-positive-heavy:var(--g-color-private-green-600-solid);--g-color-text-warning-heavy:var(--g-color-private-yellow-600-solid);--g-color-text-danger-heavy:var(--g-color-private-red-600-solid);--g-color-text-utility-heavy:var(--g-color-private-purple-650-solid);--g-color-text-misc-heavy:var(--g-color-private-cool-grey-650-solid);--g-color-text-brand:var(--g-color-private-yellow-600-solid);--g-color-text-brand-heavy:var(--g-color-private-yellow-700-solid);--g-color-text-brand-contrast:var(--g-color-text-dark-primary);--g-color-text-link:var(--g-color-private-yellow-550-solid);--g-color-text-link-hover:var(--g-color-private-orange-550-solid);--g-color-text-link-visited:var(--g-color-private-purple-600-solid);--g-color-text-link-visited-hover:var(--g-color-private-purple-750-solid);--g-color-text-dark-primary:var(--g-color-private-black-900);--g-color-text-dark-complementary:var(--g-color-private-black-700);--g-color-text-dark-secondary:var(--g-color-private-black-500);--g-color-text-dark-hint:var(--g-color-private-black-300);--g-color-text-light-primary:var(--g-color-private-white-850);--g-color-text-light-complementary:var(--g-color-private-white-700);--g-color-text-light-secondary:var(--g-color-private-white-500);--g-color-text-light-hint:var(--g-color-private-white-300);--g-color-text-inverted-primary:var(--g-color-text-dark-primary);--g-color-text-inverted-complementary:var(--g-color-text-dark-complementary);--g-color-text-inverted-secondary:var(--g-color-text-dark-secondary);--g-color-text-inverted-hint:var(--g-color-text-dark-hint);--g-color-base-background:#221d22;--g-color-base-generic:var(--g-color-private-white-100);--g-color-base-generic-hover:var(--g-color-private-white-150);--g-color-base-generic-medium:var(--g-color-private-white-250);--g-color-base-generic-medium-hover:var(--g-color-private-white-300);--g-color-base-generic-accent:var(--g-color-private-white-150);--g-color-base-generic-accent-disabled:var(--g-color-private-white-70);--g-color-base-generic-ultralight:var(--g-color-private-white-20-solid);--g-color-base-simple-hover:var(--g-color-private-white-100);--g-color-base-simple-hover-solid:var(--g-color-private-white-100-solid);--g-color-base-brand:var(--g-color-private-yellow-550-solid);--g-color-base-brand-hover:var(--g-color-private-yellow-650-solid);--g-color-base-selection:var(--g-color-private-yellow-150);--g-color-base-selection-hover:var(--g-color-private-yellow-200);--g-color-base-info-light:var(--g-color-private-blue-150);--g-color-base-info-light-hover:var(--g-color-private-blue-200);--g-color-base-info-medium:var(--g-color-private-blue-300);--g-color-base-info-medium-hover:var(--g-color-private-blue-400);--g-color-base-info-heavy:var(--g-color-private-blue-600-solid);--g-color-base-info-heavy-hover:var(--g-color-private-blue-700-solid);--g-color-base-positive-light:var(--g-color-private-green-150);--g-color-base-positive-light-hover:var(--g-color-private-green-200);--g-color-base-positive-medium:var(--g-color-private-green-300);--g-color-base-positive-medium-hover:var(--g-color-private-green-400);--g-color-base-positive-heavy:var(--g-color-private-green-600-solid);--g-color-base-positive-heavy-hover:var(--g-color-private-green-700-solid);--g-color-base-warning-light:var(--g-color-private-yellow-150);--g-color-base-warning-light-hover:var(--g-color-private-yellow-200);--g-color-base-warning-medium:var(--g-color-private-yellow-300);--g-color-base-warning-medium-hover:var(--g-color-private-yellow-400);--g-color-base-warning-heavy:var(--g-color-private-yellow-600-solid);--g-color-base-warning-heavy-hover:var(--g-color-private-yellow-700-solid);--g-color-base-danger-light:var(--g-color-private-red-150);--g-color-base-danger-light-hover:var(--g-color-private-red-200);--g-color-base-danger-medium:var(--g-color-private-red-300);--g-color-base-danger-medium-hover:var(--g-color-private-red-400);--g-color-base-danger-heavy:var(--g-color-private-red-600-solid);--g-color-base-danger-heavy-hover:var(--g-color-private-red-700-solid);--g-color-base-utility-light:var(--g-color-private-purple-150);--g-color-base-utility-light-hover:var(--g-color-private-purple-250);--g-color-base-utility-medium:var(--g-color-private-purple-300);--g-color-base-utility-medium-hover:var(--g-color-private-purple-400);--g-color-base-utility-heavy:var(--g-color-private-purple-600-solid);--g-color-base-utility-heavy-hover:var(--g-color-private-purple-700-solid);--g-color-base-neutral-light:var(--g-color-private-white-100);--g-color-base-neutral-light-hover:var(--g-color-private-white-150);--g-color-base-neutral-medium:var(--g-color-private-white-250);--g-color-base-neutral-medium-hover:var(--g-color-private-white-350);--g-color-base-neutral-heavy:var(--g-color-private-white-550);--g-color-base-neutral-heavy-hover:var(--g-color-private-white-650);--g-color-base-misc-light:var(--g-color-private-cool-grey-150);--g-color-base-misc-light-hover:var(--g-color-private-cool-grey-200);--g-color-base-misc-medium:var(--g-color-private-cool-grey-300);--g-color-base-misc-medium-hover:var(--g-color-private-cool-grey-400);--g-color-base-misc-heavy:var(--g-color-private-cool-grey-600-solid);--g-color-base-misc-heavy-hover:var(--g-color-private-cool-grey-700-solid);--g-color-base-light:var(--g-color-private-white-850);--g-color-base-light-hover:var(--g-color-private-white-700);--g-color-base-light-simple-hover:var(--g-color-private-white-150);--g-color-base-light-disabled:var(--g-color-private-white-150);--g-color-base-light-accent-disabled:var(--g-color-private-white-300);--g-color-base-float:var(--g-color-private-white-100-solid);--g-color-base-float-hover:var(--g-color-private-white-150-solid);--g-color-base-float-medium:var(--g-color-private-white-150-solid);--g-color-base-float-heavy:var(--g-color-private-white-250-solid);--g-color-base-float-accent:var(--g-color-private-white-150-solid);--g-color-base-float-accent-hover:var(--g-color-private-white-200-solid);--g-color-base-float-announcement:var(--g-color-private-white-150-solid);--g-color-base-modal:var(--g-color-base-background);--g-color-line-generic:var(--g-color-private-white-150);--g-color-line-generic-hover:var(--g-color-private-white-250);--g-color-line-generic-active:var(--g-color-private-white-300);--g-color-line-generic-accent:var(--g-color-private-white-150);--g-color-line-generic-accent-hover:var(--g-color-private-white-300);--g-color-line-generic-solid:var(--g-color-private-white-150-solid);--g-color-line-brand:var(--g-color-private-yellow-600-solid);--g-color-line-focus:var(--g-color-private-cool-grey-450);--g-color-line-light:var(--g-color-private-white-500);--g-color-line-info:var(--g-color-private-blue-450);--g-color-line-positive:var(--g-color-private-green-450);--g-color-line-warning:var(--g-color-private-yellow-450);--g-color-line-danger:var(--g-color-private-red-450);--g-color-line-utility:var(--g-color-private-purple-450);--g-color-line-misc:var(--g-color-private-cool-grey-450);--g-color-sfx-veil:var(--g-color-private-black-600);--g-color-sfx-shadow:var(--g-color-private-black-200);--g-color-sfx-shadow-heavy:var(--g-color-private-black-500);--g-color-sfx-shadow-light:var(--g-color-private-black-200);--g-color-sfx-fade:var(--g-color-private-white-250);--g-color-scroll-track:var(--g-color-base-background);--g-color-scroll-handle:var(--g-color-private-white-150);--g-color-scroll-handle-hover:var(--g-color-private-white-250);--g-color-scroll-corner:var(--g-color-private-white-150);--g-color-infographics-axis:var(--g-color-private-white-150-solid);--g-color-infographics-tooltip-bg:var(--g-color-private-white-opaque-150)}.g-root_theme_light-hc{--g-color-private-blue-50:#3697f11a;--g-color-private-blue-100:#3697f126;--g-color-private-blue-150:#3697f133;--g-color-private-blue-200:#3697f14d;--g-color-private-blue-250:#3697f166;--g-color-private-blue-300:#3697f180;--g-color-private-blue-350:#3697f199;--g-color-private-blue-400:#3697f1b3;--g-color-private-blue-450:#3697f1cc;--g-color-private-blue-500:#3697f1e6;--g-color-private-blue-50-solid:#ebf5fe;--g-color-private-blue-100-solid:#e1effd;--g-color-private-blue-150-solid:#d7eafc;--g-color-private-blue-200-solid:#c3e0fb;--g-color-private-blue-250-solid:#afd5f9;--g-color-private-blue-300-solid:#9bcbf8;--g-color-private-blue-350-solid:#86c1f7;--g-color-private-blue-400-solid:#72b6f5;--g-color-private-blue-450-solid:#5eacf4;--g-color-private-blue-500-solid:#4aa1f2;--g-color-private-blue-550-solid:#3697f1;--g-color-private-blue-600-solid:#328adb;--g-color-private-blue-650-solid:#2f7cc4;--g-color-private-blue-700-solid:#2b6fae;--g-color-private-blue-750-solid:#286198;--g-color-private-blue-800-solid:#245482;--g-color-private-blue-850-solid:#20476b;--g-color-private-blue-900-solid:#1d3955;--g-color-private-blue-950-solid:#192c3f;--g-color-private-blue-1000-solid:#172533;--g-color-private-green-50:#32ba761a;--g-color-private-green-100:#32ba7626;--g-color-private-green-150:#32ba7633;--g-color-private-green-200:#32ba764d;--g-color-private-green-250:#32ba7666;--g-color-private-green-300:#32ba7680;--g-color-private-green-350:#32ba7699;--g-color-private-green-400:#32ba76b3;--g-color-private-green-450:#32ba76cc;--g-color-private-green-500:#32ba76e6;--g-color-private-green-50-solid:#ebf8f1;--g-color-private-green-100-solid:#e0f5ea;--g-color-private-green-150-solid:#d6f1e4;--g-color-private-green-200-solid:#c2ead6;--g-color-private-green-250-solid:#ade3c8;--g-color-private-green-300-solid:#9db;--g-color-private-green-350-solid:#84d6ad;--g-color-private-green-400-solid:#70cf9f;--g-color-private-green-450-solid:#5bc891;--g-color-private-green-500-solid:#47c184;--g-color-private-green-550-solid:#32ba76;--g-color-private-green-600-solid:#2fa96c;--g-color-private-green-650-solid:#2c9862;--g-color-private-green-700-solid:#288758;--g-color-private-green-750-solid:#25764e;--g-color-private-green-800-solid:#264;--g-color-private-green-850-solid:#1f553a;--g-color-private-green-900-solid:#1c4430;--g-color-private-green-950-solid:#183326;--g-color-private-green-1000-solid:#172a21;--g-color-private-yellow-50:#ffbe5c1a;--g-color-private-yellow-100:#ffbe5c26;--g-color-private-yellow-150:#ffbe5c33;--g-color-private-yellow-200:#ffbe5c4d;--g-color-private-yellow-250:#ffbe5c66;--g-color-private-yellow-300:#ffbe5c80;--g-color-private-yellow-350:#ffbe5c99;--g-color-private-yellow-400:#ffbe5cb3;--g-color-private-yellow-450:#ffbe5ccc;--g-color-private-yellow-500:#ffbe5ce6;--g-color-private-yellow-50-solid:#fff9ef;--g-color-private-yellow-100-solid:#fff5e7;--g-color-private-yellow-150-solid:#fff2de;--g-color-private-yellow-200-solid:#ffecce;--g-color-private-yellow-250-solid:#ffe5be;--g-color-private-yellow-300-solid:#ffdfae;--g-color-private-yellow-350-solid:#ffd89d;--g-color-private-yellow-400-solid:#ffd28d;--g-color-private-yellow-450-solid:#ffcb7d;--g-color-private-yellow-500-solid:#ffc56c;--g-color-private-yellow-550-solid:#ffbe5c;--g-color-private-yellow-600-solid:#e7ad55;--g-color-private-yellow-650-solid:#d09b4d;--g-color-private-yellow-700-solid:#b88a46;--g-color-private-yellow-750-solid:#a0793e;--g-color-private-yellow-800-solid:#896837;--g-color-private-yellow-850-solid:#715630;--g-color-private-yellow-900-solid:#594528;--g-color-private-yellow-950-solid:#413421;--g-color-private-yellow-1000-solid:#362b1d;--g-color-private-orange-400-solid:#ffa04d;--g-color-private-orange-500-solid:#ff8519;--g-color-private-orange-600-solid:#e76d02;--g-color-private-orange-650-solid:#d06304;--g-color-private-orange-700-solid:#b85805;--g-color-private-orange-750-solid:#a04e07;--g-color-private-orange-800-solid:#894409;--g-color-private-orange-850-solid:#713a0b;--g-color-private-orange-900-solid:#59300d;--g-color-private-orange-950-solid:#41250e;--g-color-private-orange-1000-solid:#36200f;--g-color-private-red-50:#ff003d1a;--g-color-private-red-100:#ff003d26;--g-color-private-red-150:#ff003d33;--g-color-private-red-200:#ff003d4d;--g-color-private-red-250:#ff003d66;--g-color-private-red-300:#ff003d80;--g-color-private-red-350:#ff003d99;--g-color-private-red-400:#ff003db3;--g-color-private-red-450:#ff003dcc;--g-color-private-red-500:#ff003de6;--g-color-private-red-50-solid:#ffe6ec;--g-color-private-red-100-solid:#ffd9e2;--g-color-private-red-150-solid:#ffccd8;--g-color-private-red-200-solid:#ffb3c5;--g-color-private-red-250-solid:#ff99b1;--g-color-private-red-300-solid:#ff809e;--g-color-private-red-350-solid:#ff668b;--g-color-private-red-400-solid:#ff4d77;--g-color-private-red-450-solid:#ff3364;--g-color-private-red-500-solid:#ff1950;--g-color-private-red-550-solid:#ff003d;--g-color-private-red-600-solid:#e70239;--g-color-private-red-650-solid:#d00334;--g-color-private-red-700-solid:#b80530;--g-color-private-red-750-solid:#a0072c;--g-color-private-red-800-solid:#890928;--g-color-private-red-850-solid:#710a23;--g-color-private-red-900-solid:#590c1f;--g-color-private-red-950-solid:#410e1b;--g-color-private-red-1000-solid:#360e18;--g-color-private-purple-600-solid:#834cb9;--g-color-private-purple-650-solid:#7645a7;--g-color-private-purple-700-solid:#6a3f94;--g-color-private-purple-750-solid:#5d3882;--g-color-private-purple-800-solid:#51326f;--g-color-private-purple-850-solid:#442b5c;--g-color-private-purple-900-solid:#38254a;--g-color-private-purple-950-solid:#2b1e37;--g-color-private-purple-1000-solid:#251b2e;--g-color-private-cool-grey-300-solid:#b5c2cc;--g-color-private-cool-grey-600-solid:#62798c;--g-color-private-cool-grey-650-solid:#596d7e;--g-color-private-cool-grey-700-solid:#506271;--g-color-private-cool-grey-750-solid:#475663;--g-color-private-cool-grey-800-solid:#3f4b56;--g-color-private-cool-grey-850-solid:#363f48;--g-color-private-cool-grey-900-solid:#2d343b;--g-color-private-cool-grey-950-solid:#24282d;--g-color-private-cool-grey-1000-solid:#1f2226;--g-color-text-primary:var(--g-color-text-dark-primary);--g-color-text-complementary:var(--g-color-text-dark-complementary);--g-color-text-secondary:var(--g-color-text-dark-secondary);--g-color-text-hint:var(--g-color-text-dark-hint);--g-color-text-info:var(--g-color-private-blue-650-solid);--g-color-text-positive:var(--g-color-private-green-650-solid);--g-color-text-warning:var(--g-color-private-yellow-700-solid);--g-color-text-danger:var(--g-color-private-red-650-solid);--g-color-text-utility:var(--g-color-private-purple-650-solid);--g-color-text-misc:var(--g-color-private-cool-grey-650-solid);--g-color-text-info-heavy:var(--g-color-private-blue-900-solid);--g-color-text-positive-heavy:var(--g-color-private-green-900-solid);--g-color-text-warning-heavy:var(--g-color-private-orange-900-solid);--g-color-text-danger-heavy:var(--g-color-private-red-900-solid);--g-color-text-utility-heavy:var(--g-color-private-purple-900-solid);--g-color-text-misc-heavy:var(--g-color-private-cool-grey-900-solid);--g-color-text-brand:var(--g-color-private-yellow-700-solid);--g-color-text-brand-heavy:var(--g-color-private-orange-900-solid);--g-color-text-brand-contrast:var(--g-color-text-dark-primary);--g-color-text-link:var(--g-color-private-yellow-700-solid);--g-color-text-link-hover:var(--g-color-private-orange-700-solid);--g-color-text-link-visited:var(--g-color-private-purple-600-solid);--g-color-text-link-visited-hover:var(--g-color-private-purple-850-solid);--g-color-text-dark-primary:var(--g-color-private-black-1000-solid);--g-color-text-dark-complementary:var(--g-color-private-black-850);--g-color-text-dark-secondary:var(--g-color-private-black-700);--g-color-text-dark-hint:var(--g-color-private-black-500);--g-color-text-light-primary:var(--g-color-private-white-1000-solid);--g-color-text-light-complementary:var(--g-color-private-white-850);--g-color-text-light-secondary:var(--g-color-private-white-700);--g-color-text-light-hint:var(--g-color-private-white-500);--g-color-text-inverted-primary:var(--g-color-text-light-primary);--g-color-text-inverted-complementary:var(--g-color-text-light-complementary);--g-color-text-inverted-secondary:var(--g-color-text-light-secondary);--g-color-text-inverted-hint:var(--g-color-text-light-hint);--g-color-base-background:var(--g-color-private-white-1000-solid);--g-color-base-generic:var(--g-color-private-black-150);--g-color-base-generic-hover:var(--g-color-private-black-300);--g-color-base-generic-medium:var(--g-color-private-black-250);--g-color-base-generic-medium-hover:var(--g-color-private-black-350);--g-color-base-generic-accent:var(--g-color-private-black-250);--g-color-base-generic-accent-disabled:var(--g-color-private-black-150);--g-color-base-generic-ultralight:var(--g-color-private-black-50-solid);--g-color-base-simple-hover:var(--g-color-private-black-150);--g-color-base-simple-hover-solid:var(--g-color-private-black-150-solid);--g-color-base-brand:var(--g-color-private-yellow-550-solid);--g-color-base-brand-hover:var(--g-color-private-yellow-650-solid);--g-color-base-selection:var(--g-color-private-yellow-300);--g-color-base-selection-hover:var(--g-color-private-yellow-400);--g-color-base-info-light:var(--g-color-private-blue-250);--g-color-base-info-light-hover:var(--g-color-private-blue-350);--g-color-base-info-medium:var(--g-color-private-blue-400);--g-color-base-info-medium-hover:var(--g-color-private-blue-500);--g-color-base-info-heavy:var(--g-color-private-blue-700-solid);--g-color-base-info-heavy-hover:var(--g-color-private-blue-850-solid);--g-color-base-positive-light:var(--g-color-private-green-250);--g-color-base-positive-light-hover:var(--g-color-private-green-350);--g-color-base-positive-medium:var(--g-color-private-green-400);--g-color-base-positive-medium-hover:var(--g-color-private-green-500);--g-color-base-positive-heavy:var(--g-color-private-green-700-solid);--g-color-base-positive-heavy-hover:var(--g-color-private-green-800-solid);--g-color-base-warning-light:var(--g-color-private-yellow-300);--g-color-base-warning-light-hover:var(--g-color-private-yellow-400);--g-color-base-warning-medium:var(--g-color-private-yellow-400);--g-color-base-warning-medium-hover:var(--g-color-private-yellow-550-solid);--g-color-base-warning-heavy:var(--g-color-private-yellow-600-solid);--g-color-base-warning-heavy-hover:var(--g-color-private-yellow-700-solid);--g-color-base-danger-light:var(--g-color-private-red-250);--g-color-base-danger-light-hover:var(--g-color-private-red-350);--g-color-base-danger-medium:var(--g-color-private-red-400);--g-color-base-danger-medium-hover:var(--g-color-private-red-500);--g-color-base-danger-heavy:var(--g-color-private-red-700-solid);--g-color-base-danger-heavy-hover:var(--g-color-private-red-800-solid);--g-color-base-utility-light:var(--g-color-private-purple-250);--g-color-base-utility-light-hover:var(--g-color-private-purple-350);--g-color-base-utility-medium:var(--g-color-private-purple-400);--g-color-base-utility-medium-hover:var(--g-color-private-purple-500);--g-color-base-utility-heavy:var(--g-color-private-purple-700-solid);--g-color-base-utility-heavy-hover:var(--g-color-private-purple-800-solid);--g-color-base-neutral-light:var(--g-color-private-black-150);--g-color-base-neutral-light-hover:var(--g-color-private-black-250);--g-color-base-neutral-medium:var(--g-color-private-black-300);--g-color-base-neutral-medium-hover:var(--g-color-private-black-400);--g-color-base-neutral-heavy:var(--g-color-private-black-550);--g-color-base-neutral-heavy-hover:var(--g-color-private-black-650);--g-color-base-misc-light:var(--g-color-private-cool-grey-250);--g-color-base-misc-light-hover:var(--g-color-private-cool-grey-350);--g-color-base-misc-medium:var(--g-color-private-cool-grey-400);--g-color-base-misc-medium-hover:var(--g-color-private-cool-grey-500);--g-color-base-misc-heavy:var(--g-color-private-cool-grey-700-solid);--g-color-base-misc-heavy-hover:var(--g-color-private-cool-grey-800-solid);--g-color-base-light:var(--g-color-private-white-1000-solid);--g-color-base-light-hover:var(--g-color-private-white-850);--g-color-base-light-simple-hover:var(--g-color-private-white-300);--g-color-base-light-disabled:var(--g-color-private-white-150);--g-color-base-light-accent-disabled:var(--g-color-private-white-300);--g-color-base-float:var(--g-color-private-white-1000-solid);--g-color-base-float-hover:var(--g-color-private-black-150-solid);--g-color-base-float-medium:var(--g-color-private-black-550-solid);--g-color-base-float-heavy:var(--g-color-private-black-700-solid);--g-color-base-float-accent:var(--g-color-private-white-1000-solid);--g-color-base-float-accent-hover:var(--g-color-private-white-850);--g-color-base-float-announcement:var(--g-color-private-cool-grey-150-solid);--g-color-base-modal:var(--g-color-base-background);--g-color-line-generic:var(--g-color-private-black-200);--g-color-line-generic-hover:var(--g-color-private-black-400);--g-color-line-generic-active:var(--g-color-private-black-700);--g-color-line-generic-accent:var(--g-color-private-black-300);--g-color-line-generic-accent-hover:var(--g-color-private-black-700);--g-color-line-generic-solid:var(--g-color-private-black-200-solid);--g-color-line-brand:var(--g-color-private-yellow-600-solid);--g-color-line-focus:var(--g-color-private-cool-grey-450);--g-color-line-light:var(--g-color-private-white-500);--g-color-line-info:var(--g-color-private-blue-450);--g-color-line-positive:var(--g-color-private-green-450);--g-color-line-warning:var(--g-color-private-yellow-600-solid);--g-color-line-danger:var(--g-color-private-red-450);--g-color-line-utility:var(--g-color-private-purple-450);--g-color-line-misc:var(--g-color-private-cool-grey-450);--g-color-sfx-veil:var(--g-color-private-black-450);--g-color-sfx-shadow:var(--g-color-private-black-300);--g-color-sfx-shadow-heavy:var(--g-color-private-black-600);--g-color-sfx-shadow-light:var(--g-color-private-black-100);--g-color-sfx-fade:var(--g-color-private-white-300);--g-color-scroll-track:var(--g-color-base-background);--g-color-scroll-handle:var(--g-color-private-black-100);--g-color-scroll-handle-hover:var(--g-color-private-black-150);--g-color-scroll-corner:var(--g-color-private-black-100);--g-color-infographics-axis:var(--g-color-private-black-150-solid);--g-color-infographics-tooltip-bg:var(--g-color-private-white-950)}.g-root_theme_dark-hc{--g-color-private-white-50-solid:#1e1d1e;--g-color-private-white-70-solid:#232223;--g-color-private-white-100-solid:#2a292a;--g-color-private-white-150-solid:#363536;--g-color-private-white-200-solid:#414141;--g-color-private-white-250-solid:#4d4d4d;--g-color-private-white-300-solid:#595859;--g-color-private-white-350-solid:#656465;--g-color-private-white-400-solid:#717071;--g-color-private-white-450-solid:#7d7c7d;--g-color-private-white-500-solid:#888;--g-color-private-white-550-solid:#949494;--g-color-private-white-600-solid:#a0a0a0;--g-color-private-white-650-solid:#acacac;--g-color-private-white-700-solid:#b8b8b8;--g-color-private-white-750-solid:#c4c3c4;--g-color-private-white-800-solid:#d0cfd0;--g-color-private-white-850-solid:#d0cfd0;--g-color-private-white-900-solid:#e7e7e7;--g-color-private-white-950-solid:#f3f3f3;--g-color-private-blue-50:#3697f11a;--g-color-private-blue-100:#3697f126;--g-color-private-blue-150:#3697f133;--g-color-private-blue-200:#3697f14d;--g-color-private-blue-250:#3697f166;--g-color-private-blue-300:#3697f180;--g-color-private-blue-350:#3697f199;--g-color-private-blue-400:#3697f1b3;--g-color-private-blue-450:#3697f1cc;--g-color-private-blue-500:#3697f1e6;--g-color-private-blue-50-solid:#161e28;--g-color-private-blue-100-solid:#172533;--g-color-private-blue-150-solid:#192c3f;--g-color-private-blue-200-solid:#1d3955;--g-color-private-blue-250-solid:#20476b;--g-color-private-blue-300-solid:#245482;--g-color-private-blue-350-solid:#286198;--g-color-private-blue-400-solid:#2b6fae;--g-color-private-blue-450-solid:#2f7cc4;--g-color-private-blue-500-solid:#328adb;--g-color-private-blue-550-solid:#3697f1;--g-color-private-blue-600-solid:#4aa1f2;--g-color-private-blue-650-solid:#5eacf4;--g-color-private-blue-700-solid:#72b6f5;--g-color-private-blue-750-solid:#86c1f7;--g-color-private-blue-800-solid:#9bcbf8;--g-color-private-blue-850-solid:#afd5f9;--g-color-private-blue-900-solid:#c3e0fb;--g-color-private-blue-950-solid:#d7eafc;--g-color-private-blue-1000-solid:#e1effd;--g-color-private-green-50:#4db09b1a;--g-color-private-green-100:#4db09b26;--g-color-private-green-150:#4db09b33;--g-color-private-green-200:#4db09b4d;--g-color-private-green-250:#4db09b66;--g-color-private-green-300:#4db09b80;--g-color-private-green-350:#4db09b99;--g-color-private-green-400:#4db09bb3;--g-color-private-green-450:#4db09bcc;--g-color-private-green-500:#4db09be6;--g-color-private-green-50-solid:#182120;--g-color-private-green-100-solid:#1b2927;--g-color-private-green-150-solid:#1e312d;--g-color-private-green-200-solid:#24413b;--g-color-private-green-250-solid:#2a5149;--g-color-private-green-300-solid:#306157;--g-color-private-green-350-solid:#357064;--g-color-private-green-400-solid:#3b8072;--g-color-private-green-450-solid:#419080;--g-color-private-green-500-solid:#47a08d;--g-color-private-green-550-solid:#4db09b;--g-color-private-green-600-solid:#5fb8a5;--g-color-private-green-650-solid:#71c0af;--g-color-private-green-700-solid:#82c8b9;--g-color-private-green-750-solid:#94d0c3;--g-color-private-green-800-solid:#a6d8cd;--g-color-private-green-850-solid:#b8dfd7;--g-color-private-green-900-solid:#cae7e1;--g-color-private-green-950-solid:#dbefeb;--g-color-private-green-1000-solid:#e4f3f0;--g-color-private-yellow-50:#ffbe5c1a;--g-color-private-yellow-100:#ffbe5c26;--g-color-private-yellow-150:#ffbe5c33;--g-color-private-yellow-200:#ffbe5c4d;--g-color-private-yellow-250:#ffbe5c66;--g-color-private-yellow-300:#ffbe5c80;--g-color-private-yellow-350:#ffbe5c99;--g-color-private-yellow-400:#ffbe5cb3;--g-color-private-yellow-450:#ffbe5ccc;--g-color-private-yellow-500:#ffbe5ce6;--g-color-private-yellow-50-solid:#2a2219;--g-color-private-yellow-100-solid:#362b1d;--g-color-private-yellow-150-solid:#413421;--g-color-private-yellow-200-solid:#594528;--g-color-private-yellow-250-solid:#715630;--g-color-private-yellow-300-solid:#896837;--g-color-private-yellow-350-solid:#a0793e;--g-color-private-yellow-400-solid:#b88a46;--g-color-private-yellow-450-solid:#d09b4d;--g-color-private-yellow-500-solid:#e7ad55;--g-color-private-yellow-550-solid:#ffbe5c;--g-color-private-yellow-600-solid:#ffc56c;--g-color-private-yellow-650-solid:#ffcb7d;--g-color-private-yellow-700-solid:#ffd28d;--g-color-private-yellow-750-solid:#ffd89d;--g-color-private-yellow-800-solid:#ffdfae;--g-color-private-yellow-850-solid:#ffe5be;--g-color-private-yellow-900-solid:#ffecce;--g-color-private-yellow-950-solid:#fff2de;--g-color-private-yellow-1000-solid:#fff5e7;--g-color-private-orange-50-solid:#241911;--g-color-private-orange-100-solid:#2d1d11;--g-color-private-orange-150-solid:#362111;--g-color-private-orange-200-solid:#492a10;--g-color-private-orange-250-solid:#5b3210;--g-color-private-orange-300-solid:#6d3a0f;--g-color-private-orange-350-solid:#7f420e;--g-color-private-orange-400-solid:#914a0e;--g-color-private-orange-450-solid:#a4530d;--g-color-private-orange-500-solid:#b65b0d;--g-color-private-orange-700-solid:#d99255;--g-color-private-orange-800-solid:#e4b186;--g-color-private-red-50:#e5325d1a;--g-color-private-red-100:#e5325d26;--g-color-private-red-150:#e5325d33;--g-color-private-red-200:#e5325d4d;--g-color-private-red-250:#e5325d66;--g-color-private-red-300:#e5325d80;--g-color-private-red-350:#e5325d99;--g-color-private-red-400:#e5325db3;--g-color-private-red-450:#e5325dcc;--g-color-private-red-500:#e5325de6;--g-color-private-red-50-solid:#27141a;--g-color-private-red-100-solid:#32161d;--g-color-private-red-150-solid:#3c1821;--g-color-private-red-200-solid:#511b29;--g-color-private-red-250-solid:#661e30;--g-color-private-red-300-solid:#7c2238;--g-color-private-red-350-solid:#91253f;--g-color-private-red-400-solid:#a62847;--g-color-private-red-450-solid:#bb2b4e;--g-color-private-red-500-solid:#d02f56;--g-color-private-red-550-solid:#e5325d;--g-color-private-red-600-solid:#e8476d;--g-color-private-red-650-solid:#ea5b7d;--g-color-private-red-700-solid:#ed708e;--g-color-private-red-750-solid:#ef849e;--g-color-private-red-800-solid:#f299ae;--g-color-private-red-850-solid:#f5adbe;--g-color-private-red-900-solid:#f7c2ce;--g-color-private-red-950-solid:#fad6df;--g-color-private-red-1000-solid:#fbe0e7;--g-color-private-purple-50-solid:#1f1825;--g-color-private-purple-100-solid:#251b2e;--g-color-private-purple-150-solid:#2b1e37;--g-color-private-purple-200-solid:#38254a;--g-color-private-purple-250-solid:#442b5c;--g-color-private-purple-300-solid:#51326f;--g-color-private-purple-350-solid:#5d3882;--g-color-private-purple-400-solid:#6a3f94;--g-color-private-purple-450-solid:#7645a7;--g-color-private-purple-500-solid:#834cb9;--g-color-private-cool-grey-50-solid:#1a1c20;--g-color-private-cool-grey-100-solid:#1e2227;--g-color-private-cool-grey-150-solid:#22272e;--g-color-private-cool-grey-200-solid:#29323b;--g-color-private-cool-grey-250-solid:#313d49;--g-color-private-cool-grey-300-solid:#394957;--g-color-private-cool-grey-350-solid:#415465;--g-color-private-cool-grey-400-solid:#495f73;--g-color-private-cool-grey-450-solid:#506a80;--g-color-private-cool-grey-500-solid:#58758e;--g-color-private-cool-grey-750-solid:#a0b3c4;--g-color-private-cool-grey-800-solid:#b0c0ce;--g-color-text-primary:var(--g-color-text-light-primary);--g-color-text-complementary:var(--g-color-text-light-complementary);--g-color-text-secondary:var(--g-color-text-light-secondary);--g-color-text-hint:var(--g-color-text-light-hint);--g-color-text-info:var(--g-color-private-blue-650-solid);--g-color-text-positive:var(--g-color-private-green-650-solid);--g-color-text-warning:var(--g-color-private-yellow-650-solid);--g-color-text-danger:var(--g-color-private-red-650-solid);--g-color-text-utility:var(--g-color-private-purple-650-solid);--g-color-text-misc:var(--g-color-private-cool-grey-650-solid);--g-color-text-info-heavy:var(--g-color-private-blue-850-solid);--g-color-text-positive-heavy:var(--g-color-private-green-850-solid);--g-color-text-warning-heavy:var(--g-color-private-yellow-850-solid);--g-color-text-danger-heavy:var(--g-color-private-red-850-solid);--g-color-text-utility-heavy:var(--g-color-private-purple-850-solid);--g-color-text-misc-heavy:var(--g-color-private-cool-grey-850-solid);--g-color-text-brand:var(--g-color-private-yellow-600-solid);--g-color-text-brand-heavy:var(--g-color-private-yellow-700-solid);--g-color-text-brand-contrast:var(--g-color-text-dark-primary);--g-color-text-link:var(--g-color-private-yellow-550-solid);--g-color-text-link-hover:var(--g-color-private-orange-550-solid);--g-color-text-link-visited:var(--g-color-private-purple-650-solid);--g-color-text-link-visited-hover:var(--g-color-private-purple-800-solid);--g-color-text-dark-primary:var(--g-color-private-black-1000-solid);--g-color-text-dark-complementary:var(--g-color-private-black-800);--g-color-text-dark-secondary:var(--g-color-private-black-600);--g-color-text-dark-hint:var(--g-color-private-black-400);--g-color-text-light-primary:var(--g-color-private-white-1000-solid);--g-color-text-light-complementary:var(--g-color-private-white-800);--g-color-text-light-secondary:var(--g-color-private-white-600);--g-color-text-light-hint:var(--g-color-private-white-400);--g-color-text-inverted-primary:var(--g-color-text-dark-primary);--g-color-text-inverted-complementary:var(--g-color-text-dark-complementary);--g-color-text-inverted-secondary:var(--g-color-text-dark-secondary);--g-color-text-inverted-hint:var(--g-color-text-dark-hint);--g-color-base-background:#121112;--g-color-base-generic:var(--g-color-private-white-100);--g-color-base-generic-hover:var(--g-color-private-white-250);--g-color-base-generic-medium:var(--g-color-private-white-250);--g-color-base-generic-medium-hover:var(--g-color-private-white-400);--g-color-base-generic-accent:var(--g-color-private-white-200);--g-color-base-generic-accent-disabled:var(--g-color-private-white-150);--g-color-base-generic-ultralight:var(--g-color-private-white-50);--g-color-base-simple-hover:var(--g-color-private-white-250);--g-color-base-simple-hover-solid:var(--g-color-private-white-250-solid);--g-color-base-brand:var(--g-color-private-yellow-550-solid);--g-color-base-brand-hover:var(--g-color-private-yellow-700-solid);--g-color-base-selection:var(--g-color-private-yellow-250);--g-color-base-selection-hover:var(--g-color-private-yellow-400);--g-color-base-info-light:var(--g-color-private-blue-250);--g-color-base-info-light-hover:var(--g-color-private-blue-400);--g-color-base-info-medium:var(--g-color-private-blue-450);--g-color-base-info-medium-hover:var(--g-color-private-blue-600-solid);--g-color-base-info-heavy:var(--g-color-private-blue-700-solid);--g-color-base-info-heavy-hover:var(--g-color-private-blue-850-solid);--g-color-base-positive-light:var(--g-color-private-green-250);--g-color-base-positive-light-hover:var(--g-color-private-green-400);--g-color-base-positive-medium:var(--g-color-private-green-450);--g-color-base-positive-medium-hover:var(--g-color-private-green-600-solid);--g-color-base-positive-heavy:var(--g-color-private-green-700-solid);--g-color-base-positive-heavy-hover:var(--g-color-private-green-850-solid);--g-color-base-warning-light:var(--g-color-private-yellow-250);--g-color-base-warning-light-hover:var(--g-color-private-yellow-400);--g-color-base-warning-medium:var(--g-color-private-yellow-450);--g-color-base-warning-medium-hover:var(--g-color-private-yellow-600-solid);--g-color-base-warning-heavy:var(--g-color-private-yellow-700-solid);--g-color-base-warning-heavy-hover:var(--g-color-private-yellow-850-solid);--g-color-base-danger-light:var(--g-color-private-red-250);--g-color-base-danger-light-hover:var(--g-color-private-red-400);--g-color-base-danger-medium:var(--g-color-private-red-450);--g-color-base-danger-medium-hover:var(--g-color-private-red-600-solid);--g-color-base-danger-heavy:var(--g-color-private-red-700-solid);--g-color-base-danger-heavy-hover:var(--g-color-private-red-850-solid);--g-color-base-utility-light:var(--g-color-private-purple-250);--g-color-base-utility-light-hover:var(--g-color-private-purple-400);--g-color-base-utility-medium:var(--g-color-private-purple-450);--g-color-base-utility-medium-hover:var(--g-color-private-purple-600-solid);--g-color-base-utility-heavy:var(--g-color-private-purple-700-solid);--g-color-base-utility-heavy-hover:var(--g-color-private-purple-850-solid);--g-color-base-neutral-light:var(--g-color-private-white-200);--g-color-base-neutral-light-hover:var(--g-color-private-white-350);--g-color-base-neutral-medium:var(--g-color-private-white-400);--g-color-base-neutral-medium-hover:var(--g-color-private-white-550);--g-color-base-neutral-heavy:var(--g-color-private-white-650);--g-color-base-neutral-heavy-hover:var(--g-color-private-white-750);--g-color-base-misc-light:var(--g-color-private-cool-grey-250);--g-color-base-misc-light-hover:var(--g-color-private-cool-grey-400);--g-color-base-misc-medium:var(--g-color-private-cool-grey-450);--g-color-base-misc-medium-hover:var(--g-color-private-cool-grey-600-solid);--g-color-base-misc-heavy:var(--g-color-private-cool-grey-700-solid);--g-color-base-misc-heavy-hover:var(--g-color-private-cool-grey-850-solid);--g-color-base-light:var(--g-color-private-white-850);--g-color-base-light-hover:var(--g-color-private-white-700);--g-color-base-light-simple-hover:var(--g-color-private-white-150);--g-color-base-light-disabled:var(--g-color-private-white-150);--g-color-base-light-accent-disabled:var(--g-color-private-white-300);--g-color-base-float:var(--g-color-private-white-100-solid);--g-color-base-float-hover:var(--g-color-private-white-200-solid);--g-color-base-float-medium:var(--g-color-private-white-200-solid);--g-color-base-float-heavy:var(--g-color-private-white-300-solid);--g-color-base-float-accent:var(--g-color-private-white-300-solid);--g-color-base-float-accent-hover:var(--g-color-private-white-400-solid);--g-color-base-float-announcement:var(--g-color-private-white-200-solid);--g-color-base-modal:var(--g-color-base-background);--g-color-line-generic:var(--g-color-private-white-150);--g-color-line-generic-hover:var(--g-color-private-white-250);--g-color-line-generic-active:var(--g-color-private-white-600);--g-color-line-generic-accent:var(--g-color-private-white-350);--g-color-line-generic-accent-hover:var(--g-color-private-white-800);--g-color-line-generic-solid:var(--g-color-private-white-150-solid);--g-color-line-brand:var(--g-color-private-yellow-600-solid);--g-color-line-focus:var(--g-color-private-cool-grey-550-solid);--g-color-line-light:var(--g-color-private-white-500);--g-color-line-info:var(--g-color-private-blue-550-solid);--g-color-line-positive:var(--g-color-private-green-550-solid);--g-color-line-warning:var(--g-color-private-yellow-550-solid);--g-color-line-danger:var(--g-color-private-red-550-solid);--g-color-line-utility:var(--g-color-private-purple-550-solid);--g-color-line-misc:var(--g-color-private-cool-grey-550-solid);--g-color-sfx-veil:var(--g-color-private-black-700);--g-color-sfx-shadow:var(--g-color-private-black-200);--g-color-sfx-shadow-heavy:var(--g-color-private-black-400);--g-color-sfx-shadow-light:var(--g-color-private-black-200);--g-color-sfx-fade:var(--g-color-private-white-250);--g-color-scroll-track:var(--g-color-base-background);--g-color-scroll-handle:var(--g-color-private-white-150);--g-color-scroll-handle-hover:var(--g-color-private-white-250);--g-color-scroll-corner:var(--g-color-private-white-150);--g-color-infographics-axis:var(--g-color-private-white-150-solid);--g-color-infographics-tooltip-bg:var(--g-color-private-white-opaque-150)}.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar){scrollbar-color:var(--g-color-scroll-handle) var(--g-color-scroll-track);scrollbar-width:var(--g-scrollbar-width)}.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar) ::-webkit-scrollbar,.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar)::-webkit-scrollbar{background:var(--g-color-scroll-track);height:var(--g-scrollbar-width);width:var(--g-scrollbar-width)}.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar) ::-webkit-scrollbar-track,.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar)::-webkit-scrollbar-track{background:var(--g-color-scroll-track)}.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar) ::-webkit-scrollbar-corner,.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar)::-webkit-scrollbar-corner{background:var(--g-color-scroll-corner)}.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar) ::-webkit-scrollbar-thumb,.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar)::-webkit-scrollbar-thumb{background:var(--g-color-scroll-handle)}.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar) ::-webkit-scrollbar-thumb:hover,.g-root:not(.g-root_mobile):not(.g-root_native-scrollbar)::-webkit-scrollbar-thumb:hover{background:var(--g-color-scroll-handle-hover)}@keyframes g-loading-animation{0%{background-position:-12px 0}to{background-position:0 0}}:root:has(body.g-root_theme_light),:root:has(body.g-root_theme_light-hc){color-scheme:light}:root:has(body.g-root_theme_dark),:root:has(body.g-root_theme_dark-hc){color-scheme:dark}: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);box-sizing:border-box;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;transform:translateY(-50%) scaleX(-1)}.data-table__td{border:1px solid var(--data-table-border-color);box-sizing:border-box;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%;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(--g-color-base-background,var(--yc-color-base-background));--data-table-color-stripe:var( --g-color-base-generic-ultralight,var(--yc-color-base-generic-ultralight) );--data-table-border-color:var( --g-color-base-generic-hover,var(--yc-color-base-generic-hover) );--data-table-color-hover-area:var( --g-color-base-simple-hover,var(--yc-color-base-simple-hover) );--data-table-color-footer-area:var(--data-table-color-base)}.data-table_theme_legacy{--data-table-color-base:#fff;--data-table-color-stripe:#00000008;--data-table-border-color:#ddd;--data-table-color-hover-area:#ffeba0;--data-table-color-footer-area:var(--data-table-color-base)}.data-table__resize-handler{background-color:var(--g-color-base-generic);cursor:col-resize;height:100%;position:absolute;right:0;top:0;visibility:hidden;width:6px}.data-table__resize-handler_resizing,.data-table__th:hover>.data-table__resize-handler{visibility:visible}.ydb-error-boundary{align-items:flex-start;display:flex;flex-direction:row;font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height);padding:20px}.ydb-error-boundary__illustration{height:230px;margin-right:20px;width:230px}.ydb-error-boundary__error-title{font-size:var(--g-text-subheader-3-font-size);line-height:var(--g-text-subheader-3-line-height);margin-top:44px}.ydb-error-boundary__error-description{margin-top:12px}.ydb-error-boundary__show-details{margin-top:8px}.ydb-error-boundary__error-details{background-color:var(--g-color-base-generic-ultralight);border:1px solid var(--g-color-line-generic);padding:13px 18px}.ydb-error-boundary__actions{display:flex;flex-direction:row;gap:10px;margin-top:20px}.g-disclosure_size_m .g-disclosure__trigger{font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height)}.g-disclosure_size_l .g-disclosure__trigger{font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height)}.g-disclosure_size_xl .g-disclosure__trigger{font-size:var(--g-text-subheader-3-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-3-line-height)}.g-disclosure__trigger{align-items:center;background:none;border:none;border-radius:var(--g-focus-border-radius);color:inherit;cursor:pointer;display:flex;flex-flow:row nowrap;flex-shrink:0;font-family:var(--g-text-body-font-family);font-size:inherit;font-weight:var(--g-text-body-font-weight);font-weight:inherit;gap:8px;line-height:inherit;outline:none;padding:0}.g-disclosure__trigger:focus-visible{outline:2px solid var(--g-color-line-focus)}.g-disclosure__trigger_arrow_end{flex-direction:row-reverse}.g-disclosure__trigger_disabled{color:var(--g-color-text-secondary);cursor:auto}.g-disclosure__content{display:none}.g-disclosure__content_visible{display:block}.g-disclosure__content.g-disclosure_exit_active{animation-duration:.1s;animation-name:g-disclosure-collapsed;display:block;opacity:0}.g-disclosure__content.g-disclosure_enter_active{animation-duration:.2s;animation-name:g-disclosure-expanded}@keyframes g-disclosure-expanded{0%{opacity:.4}to{opacity:1}}@keyframes g-disclosure-collapsed{0%{opacity:1}to{opacity:0}}.g-icon{color:inherit;line-height:0;vertical-align:top}.g-arrow-toggle{display:inline-block;transition:transform .1s ease-out;vertical-align:middle}.g-arrow-toggle_direction_bottom{transform:matrix(1,0,0,1,0,0)}.g-arrow-toggle_direction_left{transform:matrix(0,1,-1,0,0,0)}.g-arrow-toggle_direction_top{transform:matrix(-1,0,0,-1,0,0)}.g-arrow-toggle_direction_right{transform:matrix(0,-1,1,0,0,0)}.g-button{--_--text-color:var(--g-color-text-primary);--_--text-color-hover:var(--_--text-color);--_--background-color:#0000;--_--background-color-hover:var(--g-color-base-simple-hover);--_--border-width:0;--_--border-color:currentColor;--_--focus-outline-color:var(--g-color-line-focus);--_--focus-outline-offset:0;--_--font-size:var(--g-text-body-1-font-size);-webkit-tap-highlight-color:rgba(0,0,0,0);background:none;background:#0000;border:none;box-sizing:border-box;color:inherit;color:var(--_--text-color);color:var(--g-button-text-color,var(--_--text-color));cursor:pointer;display:inline-flex;font-family:var(--g-text-body-font-family);font-size:inherit;font-size:var(--_--font-size);font-size:var(--g-button-font-size,var(--_--font-size));font-weight:var(--g-text-body-font-weight);gap:var(--_--icon-offset);gap:var(--g-button-icon-offset,var(--_--icon-offset));height:var(--_--height);height:var(--g-button-height,var(--_--height));justify-content:center;line-height:var(--_--height);line-height:var(--g-button-height,var(--_--height));outline:none;overflow:visible;padding:0;padding:0 var(--g-button-padding,var(--_--padding));position:relative;text-align:center;text-decoration:none;touch-action:manipulation;transform:scale(1);transition:transform .1s ease-out,color .15s linear;-webkit-user-select:none;user-select:none;white-space:nowrap}.g-button:before{background-color:var(--_--background-color);background-color:var(--g-button-background-color,var(--_--background-color));border:var(--g-button-border-width,var(--_--border-width)) var(--g-button-border-style,solid) var(--g-button-border-color,var(--_--border-color));content:"";inset:0;position:absolute;transition:background-color .15s linear;z-index:-1}.g-button:hover{color:var(--_--text-color-hover);color:var(--g-button-text-color-hover,var(--_--text-color-hover))}.g-button:hover:before{background-color:var(--_--background-color-hover);background-color:var(--g-button-background-color-hover,var(--_--background-color-hover))}.g-button:focus-visible:before{outline:var(--_--focus-outline-color) solid 2px;outline:var(--g-button-focus-outline-color,var(--_--focus-outline-color)) var(--g-button-focus-outline-style,solid) var(--g-button-focus-outline-width,2px);outline-offset:var(--_--focus-outline-offset);outline-offset:var(--g-button-focus-outline-offset,var(--_--focus-outline-offset))}.g-button:after{content:"";inset:0;position:absolute;transform:scale(1);transition:none;z-index:-1}.g-button:active{transform:scale(.96);transition:none}.g-button:active:after{transform:scale(1.042)}.g-button_size_xs{--_--height:20px;--_--border-radius:var(--g-border-radius-xs);--_--padding:6px;--_--icon-size:12px;--_--icon-offset:4px}.g-button_size_s{--_--height:24px;--_--border-radius:var(--g-border-radius-s);--_--padding:8px;--_--icon-size:16px;--_--icon-offset:4px}.g-button_size_m{--_--height:28px;--_--border-radius:var(--g-border-radius-m);--_--padding:12px;--_--icon-size:16px;--_--icon-offset:8px}.g-button_size_l{--_--height:36px;--_--border-radius:var(--g-border-radius-l);--_--padding:16px;--_--icon-size:16px;--_--icon-offset:8px}.g-button_size_xl{--_--height:44px;--_--border-radius:var(--g-border-radius-xl);--_--padding:24px;--_--icon-size:20px;--_--icon-offset:12px;--_--font-size:var(--g-text-body-2-font-size)}.g-button_view_normal{--_--background-color:var(--g-color-base-generic);--_--background-color-hover:var(--g-color-base-generic-hover)}.g-button_view_action{--_--text-color:var(--g-color-text-brand-contrast);--_--background-color:var(--g-color-base-brand);--_--background-color-hover:var(--g-color-base-brand-hover);--_--focus-outline-color:var(--g-color-base-brand);--_--focus-outline-offset:1px}.g-button_view_outlined{--_--border-width:1px;--_--border-color:var(--g-color-line-generic)}.g-button_view_outlined-info{--_--text-color:var(--g-color-text-info);--_--border-width:1px;--_--border-color:var(--g-color-line-info)}.g-button_view_outlined-success{--_--text-color:var(--g-color-text-positive);--_--border-width:1px;--_--border-color:var(--g-color-line-positive)}.g-button_view_outlined-warning{--_--text-color:var(--g-color-text-warning);--_--border-width:1px;--_--border-color:var(--g-color-line-warning)}.g-button_view_outlined-danger{--_--text-color:var(--g-color-text-danger);--_--border-width:1px;--_--border-color:var(--g-color-line-danger)}.g-button_view_outlined-utility{--_--text-color:var(--g-color-text-utility);--_--border-width:1px;--_--border-color:var(--g-color-line-utility)}.g-button_view_outlined-action{--_--text-color:var(--g-color-text-brand);--_--border-width:1px;--_--border-color:var(--g-color-line-brand)}.g-button_view_raised{--_--background-color-hover:var(--g-color-base-float-hover);background:var(--g-color-base-float)}.g-button_view_raised:before{box-shadow:0 3px 5px var(--g-color-sfx-shadow)}.g-button_view_raised:active:before{box-shadow:0 1px 2px var(--g-color-sfx-shadow)}.g-button_view_flat-secondary{--_--text-color:var(--g-color-text-secondary);--_--text-color-hover:var(--g-color-text-primary)}.g-button_view_flat-info{--_--text-color:var(--g-color-text-info)}.g-button_view_flat-success{--_--text-color:var(--g-color-text-positive)}.g-button_view_flat-warning{--_--text-color:var(--g-color-text-warning)}.g-button_view_flat-danger{--_--text-color:var(--g-color-text-danger)}.g-button_view_flat-utility{--_--text-color:var(--g-color-text-utility)}.g-button_view_flat-action{--_--text-color:var(--g-color-text-brand)}.g-button_view_normal-contrast{--_--text-color:var(--g-color-text-dark-primary);--_--background-color:var(--g-color-base-light);--_--background-color-hover:var(--g-color-base-light-hover);--_--focus-outline-color:var(--g-color-line-light)}.g-button_view_outlined-contrast{--_--text-color:var(--g-color-text-light-primary);--_--background-color-hover:var(--g-color-base-light-simple-hover);--_--border-width:1px;--_--border-color:var(--g-color-line-light);--_--focus-outline-color:var(--g-color-line-light)}.g-button_view_flat-contrast{--_--text-color:var(--g-color-text-light-primary);--_--background-color-hover:var(--g-color-base-light-simple-hover);--_--focus-outline-color:var(--g-color-line-light)}.g-button.g-button_pin_round-round.g-button{border-radius:var(--_--border-radius);border-radius:var(--g-button-border-radius,var(--_--border-radius))}.g-button.g-button_pin_brick-brick.g-button{border-radius:0}.g-button.g-button_pin_clear-clear.g-button{border-inline:0;border-radius:0}.g-button.g-button_pin_circle-circle.g-button{border-radius:100px}.g-button.g-button_pin_round-brick.g-button{border-end-end-radius:0;border-end-start-radius:var(--_--border-radius);border-end-start-radius:var(--g-button-border-radius,var(--_--border-radius));border-start-end-radius:0;border-start-start-radius:var(--_--border-radius);border-start-start-radius:var(--g-button-border-radius,var(--_--border-radius))}.g-button.g-button_pin_brick-round.g-button{border-end-end-radius:var(--_--border-radius);border-end-end-radius:var(--g-button-border-radius,var(--_--border-radius));border-end-start-radius:0;border-start-end-radius:var(--_--border-radius);border-start-end-radius:var(--g-button-border-radius,var(--_--border-radius));border-start-start-radius:0}.g-button.g-button_pin_round-clear.g-button{border-end-end-radius:0;border-end-start-radius:var(--_--border-radius);border-end-start-radius:var(--g-button-border-radius,var(--_--border-radius));border-inline-end:0;border-start-end-radius:0;border-start-start-radius:var(--_--border-radius);border-start-start-radius:var(--g-button-border-radius,var(--_--border-radius))}.g-button.g-button_pin_clear-round.g-button{border-end-end-radius:var(--_--border-radius);border-end-end-radius:var(--g-button-border-radius,var(--_--border-radius));border-end-start-radius:0;border-inline-start:0;border-start-end-radius:var(--_--border-radius);border-start-end-radius:var(--g-button-border-radius,var(--_--border-radius));border-start-start-radius:0}.g-button.g-button_pin_brick-clear.g-button{border-inline-end:0;border-radius:0}.g-button.g-button_pin_clear-brick.g-button{border-inline-start:0;border-radius:0}.g-button.g-button_pin_circle-brick.g-button{border-end-end-radius:0;border-end-start-radius:100px;border-start-end-radius:0;border-start-start-radius:100px}.g-button.g-button_pin_brick-circle.g-button{border-end-end-radius:100px;border-end-start-radius:0;border-start-end-radius:100px;border-start-start-radius:0}.g-button.g-button_pin_circle-clear.g-button{border-end-end-radius:0;border-end-start-radius:100px;border-inline-end:0;border-start-end-radius:0;border-start-start-radius:100px}.g-button.g-button_pin_clear-circle.g-button{border-end-end-radius:100px;border-end-start-radius:0;border-inline-start:0;border-start-end-radius:100px;border-start-start-radius:0}.g-button.g-button_pin_round-round:before{border-radius:var(--_--border-radius);border-radius:var(--g-button-border-radius,var(--_--border-radius))}.g-button.g-button_pin_brick-brick:before{border-radius:0}.g-button.g-button_pin_clear-clear:before{border-inline:0;border-radius:0}.g-button.g-button_pin_circle-circle:before{border-radius:100px}.g-button.g-button_pin_round-brick:before{border-end-end-radius:0;border-end-start-radius:var(--_--border-radius);border-end-start-radius:var(--g-button-border-radius,var(--_--border-radius));border-start-end-radius:0;border-start-start-radius:var(--_--border-radius);border-start-start-radius:var(--g-button-border-radius,var(--_--border-radius))}.g-button.g-button_pin_brick-round:before{border-end-end-radius:var(--_--border-radius);border-end-end-radius:var(--g-button-border-radius,var(--_--border-radius));border-end-start-radius:0;border-start-end-radius:var(--_--border-radius);border-start-end-radius:var(--g-button-border-radius,var(--_--border-radius));border-start-start-radius:0}.g-button.g-button_pin_round-clear:before{border-end-end-radius:0;border-end-start-radius:var(--_--border-radius);border-end-start-radius:var(--g-button-border-radius,var(--_--border-radius));border-inline-end:0;border-start-end-radius:0;border-start-start-radius:var(--_--border-radius);border-start-start-radius:var(--g-button-border-radius,var(--_--border-radius))}.g-button.g-button_pin_clear-round:before{border-end-end-radius:var(--_--border-radius);border-end-end-radius:var(--g-button-border-radius,var(--_--border-radius));border-end-start-radius:0;border-inline-start:0;border-start-end-radius:var(--_--border-radius);border-start-end-radius:var(--g-button-border-radius,var(--_--border-radius));border-start-start-radius:0}.g-button.g-button_pin_brick-clear:before{border-inline-end:0;border-radius:0}.g-button.g-button_pin_clear-brick:before{border-inline-start:0;border-radius:0}.g-button.g-button_pin_circle-brick:before{border-end-end-radius:0;border-end-start-radius:100px;border-start-end-radius:0;border-start-start-radius:100px}.g-button.g-button_pin_brick-circle:before{border-end-end-radius:100px;border-end-start-radius:0;border-start-end-radius:100px;border-start-start-radius:0}.g-button.g-button_pin_circle-clear:before{border-end-end-radius:0;border-end-start-radius:100px;border-inline-end:0;border-start-end-radius:0;border-start-start-radius:100px}.g-button.g-button_pin_clear-circle:before{border-end-end-radius:100px;border-end-start-radius:0;border-inline-start:0;border-start-end-radius:100px;border-start-start-radius:0}.g-button.g-button_pin_round-round:after{border-radius:var(--_--border-radius);border-radius:var(--g-button-border-radius,var(--_--border-radius))}.g-button.g-button_pin_brick-brick:after{border-radius:0}.g-button.g-button_pin_clear-clear:after{border-inline:0;border-radius:0}.g-button.g-button_pin_circle-circle:after{border-radius:100px}.g-button.g-button_pin_round-brick:after{border-end-end-radius:0;border-end-start-radius:var(--_--border-radius);border-end-start-radius:var(--g-button-border-radius,var(--_--border-radius));border-start-end-radius:0;border-start-start-radius:var(--_--border-radius);border-start-start-radius:var(--g-button-border-radius,var(--_--border-radius))}.g-button.g-button_pin_brick-round:after{border-end-end-radius:var(--_--border-radius);border-end-end-radius:var(--g-button-border-radius,var(--_--border-radius));border-end-start-radius:0;border-start-end-radius:var(--_--border-radius);border-start-end-radius:var(--g-button-border-radius,var(--_--border-radius));border-start-start-radius:0}.g-button.g-button_pin_round-clear:after{border-end-end-radius:0;border-end-start-radius:var(--_--border-radius);border-end-start-radius:var(--g-button-border-radius,var(--_--border-radius));border-inline-end:0;border-start-end-radius:0;border-start-start-radius:var(--_--border-radius);border-start-start-radius:var(--g-button-border-radius,var(--_--border-radius))}.g-button.g-button_pin_clear-round:after{border-end-end-radius:var(--_--border-radius);border-end-end-radius:var(--g-button-border-radius,var(--_--border-radius));border-end-start-radius:0;border-inline-start:0;border-start-end-radius:var(--_--border-radius);border-start-end-radius:var(--g-button-border-radius,var(--_--border-radius));border-start-start-radius:0}.g-button.g-button_pin_brick-clear:after{border-inline-end:0;border-radius:0}.g-button.g-button_pin_clear-brick:after{border-inline-start:0;border-radius:0}.g-button.g-button_pin_circle-brick:after{border-end-end-radius:0;border-end-start-radius:100px;border-start-end-radius:0;border-start-start-radius:100px}.g-button.g-button_pin_brick-circle:after{border-end-end-radius:100px;border-end-start-radius:0;border-start-end-radius:100px;border-start-start-radius:0}.g-button.g-button_pin_circle-clear:after{border-end-end-radius:0;border-end-start-radius:100px;border-inline-end:0;border-start-end-radius:0;border-start-start-radius:100px}.g-button.g-button_pin_clear-circle:after{border-end-end-radius:100px;border-end-start-radius:0;border-inline-start:0;border-start-end-radius:100px;border-start-start-radius:0}.g-button__text{display:inline-block;white-space:nowrap}.g-button__icon{display:inline-block;height:var(--_--height);height:var(--g-button-height,var(--_--height));margin:0 calc((var(--g-button-height, var(--_--height)) - var(--g-button-icon-size, var(--_--icon-size)))/2*-1);pointer-events:none;position:relative;width:var(--_--height);width:var(--g-button-height,var(--_--height))}.g-button__icon:after{content:" ";visibility:hidden}.g-button__icon-inner{align-items:center;display:flex;inset:0;justify-content:center;position:absolute}.g-button__icon_side_start{order:-1}.g-button__icon_side_end{order:1}.g-button:has(.g-button__icon:only-child){--_--padding:0}.g-button:has(.g-button__icon:only-child):not(.g-button_width_max){width:var(--_--height);width:var(--g-button-height,var(--_--height))}.g-button_disabled{cursor:default;pointer-events:none}.g-button_disabled:not(.g-button_loading){--_--text-color:var(--g-color-text-hint);--_--background-color:var(--g-color-base-generic-accent-disabled);--_--background-color-hover:var(--g-color-base-generic-accent-disabled);--_--border-width:0}.g-button_disabled:not(.g-button_loading):is(.g-button_view_normal-contrast,.g-button_view_outlined-contrast){--_--text-color:var(--g-color-text-light-secondary);--_--background-color:var(--g-color-base-light-disabled);--_--background-color-hover:var(--g-color-base-light-disabled)}.g-button_disabled:not(.g-button_loading):is(.g-button_view_flat,.g-button_view_flat-secondary,.g-button_view_flat-info,.g-button_view_flat-success,.g-button_view_flat-warning,.g-button_view_flat-danger,.g-button_view_flat-utility,.g-button_view_flat-action,.g-button_view_flat-contrast){--_--text-color:var(--g-color-text-hint);--_--background-color:#0000;--_--background-color-hover:#0000}.g-button_disabled:not(.g-button_loading).g-button_view_flat-contrast{--_--text-color:var(--g-color-text-light-hint)}.g-button_disabled:active{transform:scale(1)}.g-button_selected:not(.g-button_view_outlined-contrast){--_--border-width:0}.g-button_selected:not(.g-button_view_normal-contrast,.g-button_view_flat-contrast,.g-button_view_outlined-contrast){--_--text-color:var(--g-color-text-brand-heavy);--_--background-color:var(--g-color-base-selection);--_--background-color-hover:var(--g-color-base-selection-hover)}.g-button_selected.g-button_view_flat-info,.g-button_selected.g-button_view_outlined-info{--_--text-color:var(--g-color-text-info-heavy);--_--background-color:var(--g-color-base-info-light);--_--background-color-hover:var(--g-color-base-info-light-hover)}.g-button_selected.g-button_view_flat-success,.g-button_selected.g-button_view_outlined-success{--_--text-color:var(--g-color-text-positive-heavy);--_--background-color:var(--g-color-base-positive-light);--_--background-color-hover:var(--g-color-base-positive-light-hover)}.g-button_selected.g-button_view_flat-warning,.g-button_selected.g-button_view_outlined-warning{--_--text-color:var(--g-color-text-warning-heavy);--_--background-color:var(--g-color-base-warning-light);--_--background-color-hover:var(--g-color-base-warning-light-hover)}.g-button_selected.g-button_view_flat-danger,.g-button_selected.g-button_view_outlined-danger{--_--text-color:var(--g-color-text-danger-heavy);--_--background-color:var(--g-color-base-danger-light);--_--background-color-hover:var(--g-color-base-danger-light-hover)}.g-button_selected.g-button_view_flat-utility,.g-button_selected.g-button_view_outlined-utility{--_--text-color:var(--g-color-text-utility-heavy);--_--background-color:var(--g-color-base-utility-light);--_--background-color-hover:var(--g-color-base-utility-light-hover)}.g-button_loading:before{animation:g-loading-animation .5s linear infinite;background-clip:padding-box;background-image:repeating-linear-gradient(-45deg,var(--_--background-color),var(--_--background-color) 4px,var(--_--background-color-hover) 4px,var(--_--background-color-hover) 8px);background-image:repeating-linear-gradient(-45deg,var(--g-button-background-color,var(--_--background-color)),var(--g-button-background-color,var(--_--background-color)) 4px,var(--g-button-background-color-hover,var(--_--background-color-hover)) 4px,var(--g-button-background-color-hover,var(--_--background-color-hover)) 8px);background-size:150%}.g-button_width_auto{max-width:100%}.g-button_width_max{width:100%}.g-button_width_auto .g-button__text,.g-button_width_max .g-button__text{display:block;overflow:hidden;text-overflow:ellipsis}.gc-help-popover__button{background:none;border:none;color:inherit;color:var(--g-color-text-hint);cursor:pointer;font-family:var(--g-text-body-font-family);font-size:inherit;font-weight:var(--g-text-body-font-weight);outline:none;padding:0}.gc-help-popover__button:focus-visible{border-radius:50%;outline:2px solid var(--g-color-line-focus)}.g-popover{display:inline-block;position:relative}.g-popover:not(.g-popover_disabled){cursor:pointer}.g-popover__handler{display:inline-block}.g-popover__tooltip{--_--padding:16px;--_--close-offset:8px;--_--close-size:24px}.g-popover__tooltip-popup-content{box-sizing:border-box;cursor:default;max-width:300px;max-width:var(--g-popover-max-width,300px);min-height:40px;padding:var(--g-popover-padding,var(--_--padding))}.g-popover__tooltip-title{display:inline-flex;font-size:var(--g-text-subheader-3-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-3-line-height);margin:0 0 12px}.g-popover__tooltip-buttons{display:flex;flex-wrap:wrap;gap:5px;margin-block-start:20px}.g-popover__tooltip-button{flex:1 1}.g-popover__tooltip-close{inset-block-start:var(--_--close-offset);inset-inline-end:var(--_--close-offset);position:absolute}.g-popover__tooltip-content{font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height);overflow-wrap:break-word}.g-popover__tooltip-content_secondary{opacity:.7}.g-popover__tooltip-links>*{margin-block-start:8px}.g-popover__tooltip-links>:first-child{margin-block-start:0}.g-popover__tooltip-content+.g-popover__tooltip-links>:first-child{margin-block-start:12px}.g-popover__tooltip-link{display:inline-block;font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height)}.g-popover__tooltip_theme_announcement .g-popover__tooltip_theme_announcement,.g-popover__tooltip_theme_announcement.g-popover__tooltip_theme_info,.g-popover__tooltip_theme_info .g-popover__tooltip_theme_announcement,.g-popover__tooltip_theme_info.g-popover__tooltip_theme_info{color:var(--g-color-text-primary)}.g-popover__tooltip_force-links-appearance.g-popover__tooltip_theme_info .g-popover__tooltip-content a:not(.g-button),.g-popover__tooltip_theme_announcement .g-popover__tooltip-content a:not(.g-button){color:var(--g-color-text-link);text-decoration:none}.g-popover__tooltip_force-links-appearance.g-popover__tooltip_theme_info .g-popover__tooltip-content a:not(.g-button):hover,.g-popover__tooltip_theme_announcement .g-popover__tooltip-content a:not(.g-button):hover{color:var(--g-color-text-link-hover)}.g-popover__tooltip_theme_announcement{--g-popup-background-color:var(--g-color-base-simple-hover-solid);--g-popup-border-color:var(--g-color-base-simple-hover-solid)}.g-popover__tooltip_theme_special{--g-popup-background-color:var(--g-color-base-brand);--g-popup-border-color:var(--g-color-base-brand);color:var(--g-color-text-light-primary)}.g-popover__tooltip_theme_special .g-popover__tooltip-content a:not(.g-button){color:var(--g-color-text-light-primary);font-weight:var(--g-text-accent-font-weight)}.g-popover__tooltip_theme_special .g-popover__tooltip-content a:not(.g-button):hover{color:var(--g-color-text-light-secondary)}.g-popover__tooltip_theme_special .g-link{color:var(--g-color-text-light-primary)}.g-popover__tooltip_theme_special .g-link:hover{color:var(--g-color-text-light-secondary)}.g-popover__tooltip_size_l{--_--padding:24px}.g-popover__tooltip_size_l .g-popover__tooltip-title{font-size:var(--g-text-header-1-font-size);font-weight:var(--g-text-header-font-weight);line-height:var(--g-text-header-1-line-height)}.g-popover__tooltip_size_l .g-popover__tooltip-content{font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height)}.g-popover__tooltip_with-close .g-popover__tooltip-content,.g-popover__tooltip_with-close .g-popover__tooltip-title{padding-inline-end:calc(var(--_--close-offset) + var(--_--close-size) - var(--_--padding))}.g-popup{--_--background-color:var(--g-popup-background-color,var(--g-color-base-float));--_--border-color:var(--g-popup-border-color,var(--g-color-line-generic-solid));--_--border-width:var(--g-popup-border-width,1px);visibility:hidden;z-index:1000}.g-popup_exit_active,.g-popup_open{visibility:visible}.g-popup_exit_active[data-popper-placement*=bottom] .g-popup__content{animation-name:g-popup-bottom}.g-popup_exit_active[data-popper-placement*=top] .g-popup__content{animation-name:g-popup-top}.g-popup_exit_active[data-popper-placement*=left] .g-popup__content{animation-name:g-popup-left}.g-popup_exit_active[data-popper-placement*=right] .g-popup__content{animation-name:g-popup-right}.g-popup_appear_active[data-popper-placement*=bottom] .g-popup__content,.g-popup_enter_active[data-popper-placement*=bottom] .g-popup__content{animation-name:g-popup-bottom-open}.g-popup_appear_active[data-popper-placement*=top] .g-popup__content,.g-popup_enter_active[data-popper-placement*=top] .g-popup__content{animation-name:g-popup-top-open}.g-popup_appear_active[data-popper-placement*=left] .g-popup__content,.g-popup_enter_active[data-popper-placement*=left] .g-popup__content{animation-name:g-popup-left-open}.g-popup_appear_active[data-popper-placement*=right] .g-popup__content,.g-popup_enter_active[data-popper-placement*=right] .g-popup__content{animation-name:g-popup-right-open}.g-popup[data-popper-placement*=bottom] .g-popup__arrow{inset-block-start:-9px}.g-popup[data-popper-placement*=top] .g-popup__arrow{inset-block-end:-9px}.g-popup[data-popper-placement*=top] .g-popup__arrow-content{transform:rotate(180deg)}.g-popup[data-popper-placement*=left] .g-popup__arrow{right:-9px}.g-popup[data-popper-placement*=left] .g-popup__arrow-content{transform:rotate(90deg)}.g-popup[data-popper-placement*=right] .g-popup__arrow{left:-9px}.g-popup[data-popper-placement*=right] .g-popup__arrow-content{transform:rotate(-90deg)}.g-popup__content{animation-duration:.1s;animation-fill-mode:forwards;animation-timing-function:ease-out;background-color:var(--_--background-color);border-radius:4px;box-shadow:0 0 0 var(--_--border-width) var(--_--border-color),0 8px 20px var(--_--border-width) var(--g-color-sfx-shadow);outline:none;position:relative}.g-popup__content>.g-popup__arrow+*,.g-popup__content>:first-child:not(.g-popup__arrow){border-start-end-radius:inherit;border-start-start-radius:inherit}.g-popup__content>:last-child{border-end-end-radius:inherit;border-end-start-radius:inherit}.g-popup__arrow-content{display:flex;height:18px;overflow:hidden;position:relative;width:18px}.g-popup__arrow-circle-wrapper{background-color:initial;height:9px;overflow:hidden;position:relative;width:9px}.g-popup__arrow-circle{border-radius:50%;box-shadow:inset 0 0 0 calc(5px - var(--_--border-width)) var(--_--background-color),inset 0 0 0 5px var(--_--border-color);box-sizing:border-box;height:30px;position:absolute;width:28px}.g-popup__arrow-circle_left{inset-block-end:-4px;inset-inline-end:-5px}.g-popup__arrow-circle_right{inset-block-end:-4px;inset-inline-start:-5px}@keyframes g-popup-bottom{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}@keyframes g-popup-bottom-open{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes g-popup-top{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}@keyframes g-popup-top-open{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes g-popup-left{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-10px)}}@keyframes g-popup-left-open{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}@keyframes g-popup-right{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(10px)}}@keyframes g-popup-right-open{0%{opacity:0;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}.g-portal__theme-wrapper{display:contents}.g-link{-webkit-tap-highlight-color:rgba(0,0,0,0);border-radius:var(--g-focus-border-radius);cursor:pointer;text-decoration:none;touch-action:manipulation}.g-link:focus-visible{outline:2px solid var(--g-color-line-focus)}.g-link_view_normal{color:var(--g-color-text-link)}.g-link_view_primary{color:var(--g-color-text-primary)}.g-link_view_secondary{color:var(--g-color-text-secondary)}.g-link_view_normal:hover,.g-link_view_primary:hover,.g-link_view_secondary:hover{color:var(--g-color-text-link-hover)}.g-link_visitable:visited{color:var(--g-color-text-link-visited)}.g-link_visitable:visited:hover{color:var(--g-color-text-link-visited-hover)}.g-toast-animation-mobile_enter{opacity:0;position:absolute}.g-toast-animation-mobile_enter_active{animation:g-toast-enter-mobile .6s ease-out forwards;position:relative}.g-toast-animation-mobile_exit_active{animation:g-toast-exit-mobile .6s ease-in forwards}@keyframes g-toast-enter-mobile{0%{height:0;margin-block-end:0;opacity:0;padding:0;transform:translateY(10px)}50%{height:var(--_--item-height);margin-block-end:var(--_--item-gap);margin-block-end:var(--g-toaster-item-gap,var(--_--item-gap));opacity:0;padding:var(--g-toaster-item-padding,var(--_--item-padding));transform:translateY(10px)}to{opacity:1;transform:translateX(0)}}@keyframes g-toast-exit-mobile{0%{height:var(--_--item-height);margin-block-end:var(--_--item-gap);margin-block-end:var(--g-toaster-item-gap,var(--_--item-gap));opacity:1;padding:var(--g-toaster-item-padding,var(--_--item-padding));transform:translateX(0)}50%{height:var(--_--item-height);margin-block-end:var(--_--item-gap);margin-block-end:var(--g-toaster-item-gap,var(--_--item-gap));opacity:0;padding:var(--g-toaster-item-padding,var(--_--item-padding));transform:translateY(10px)}to{height:0;margin-block-end:0;opacity:0;padding:0;transform:translateY(10px)}}.g-toast-animation-desktop_enter{opacity:0;position:absolute}.g-toast-animation-desktop_enter_active{animation:g-toast-enter-desktop .6s ease-out forwards;position:relative}.g-toast-animation-desktop_exit_active{animation:g-toast-exit-desktop .6s ease-in forwards}@keyframes g-toast-enter-desktop{0%{height:0;margin-block-end:0;opacity:0;padding:0;transform:translateX(calc(var(--g-flow-direction)*10px))}50%{height:var(--_--item-height);margin-block-end:var(--_--item-gap);margin-block-end:var(--g-toaster-item-gap,var(--_--item-gap));opacity:0;padding:var(--g-toaster-item-padding,var(--_--item-padding));transform:translateX(calc(var(--g-flow-direction)*10px))}to{opacity:1;transform:translateX(0)}}@keyframes g-toast-exit-desktop{0%{height:var(--_--item-height);margin-block-end:var(--_--item-gap);margin-block-end:var(--g-toaster-item-gap,var(--_--item-gap));opacity:1;padding:var(--g-toaster-item-padding,var(--_--item-padding));transform:translateX(0)}50%{height:var(--_--item-height);margin-block-end:var(--_--item-gap);margin-block-end:var(--g-toaster-item-gap,var(--_--item-gap));opacity:0;padding:var(--g-toaster-item-padding,var(--_--item-padding));transform:translateX(calc(var(--g-flow-direction)*10px))}to{height:0;margin-block-end:0;opacity:0;padding:0;transform:translateX(calc(var(--g-flow-direction)*10px))}}.g-toaster{--_--width:312px;align-items:flex-end;display:flex;flex-direction:column;inset-block-end:0;inset-inline-end:10px;position:fixed;width:var(--_--width);width:var(--g-toaster-width,var(--_--width));z-index:100000}.g-toaster_mobile{--_--width:calc(100% - 20px);inset-inline-start:50%;transform:translate(-50%)}.g-toast{--_--item-gap:10px;--_--item-padding:16px;--_--background-color:var(--g-color-base-background);background-color:var(--_--background-color);border-radius:8px;box-shadow:0 0 15px var(--g-color-sfx-shadow);box-sizing:border-box;display:flex;font-size:var(--g-text-body-2-font-size);margin-block-end:var(--_--item-gap);margin-block-end:var(--g-toaster-item-gap,var(--_--item-gap));overflow:hidden;padding:var(--g-toaster-item-padding,var(--_--item-padding));position:relative;width:inherit;z-index:0}.g-toast_mobile{width:100%}.g-toast_theme_normal{--_--background-color:var(--g-color-base-float)}.g-toast_theme_info{--_--container-background-color:var(--g-color-base-info-light);--_--icon-color:var(--g-color-text-info-heavy)}.g-toast_theme_success{--_--container-background-color:var(--g-color-base-positive-light);--_--icon-color:var(--g-color-text-positive-heavy)}.g-toast_theme_warning{--_--container-background-color:var(--g-color-base-warning-light);--_--icon-color:var(--g-color-text-warning-heavy)}.g-toast_theme_danger{--_--container-background-color:var(--g-color-base-danger-light);--_--icon-color:var(--g-color-text-danger-heavy)}.g-toast_theme_utility{--_--container-background-color:var(--g-color-base-utility-light);--_--icon-color:var(--g-color-text-utility-heavy)}.g-toast__container{grid-row-gap:8px;display:grid;flex:1 1 auto;grid-template-columns:100%;height:100%;min-height:var(--g-text-body-2-line-height);min-width:0;row-gap:8px;width:100%}.g-toast__container:before{background-color:var(--_--container-background-color);content:"";height:100%;inset-block-start:0;inset-inline-start:0;pointer-events:none;position:absolute;width:100%;z-index:-1}.g-toast__icon-container{color:var(--_--icon-color);flex:0 0 auto;padding-block-start:2px;padding-inline-end:8px}.g-toast__title{font-size:var(--g-text-subheader-3-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-3-line-height);margin:0}.g-toast__content_without-title,.g-toast__title{padding-inline-end:32px}.g-toast__action{margin-inline-end:8px}.g-toast .g-toast__btn-close{inset-block-start:16px;inset-inline-end:16px;position:absolute}.g-switch{position:relative}.g-switch__control{cursor:pointer;opacity:0}.g-switch__indicator{display:inline-block;position:relative}.g-switch__indicator:before{background-color:var(--g-color-base-generic-medium);content:"";inset:0;position:absolute;transition:background .1s linear}.g-switch__indicator:after{content:" ";visibility:hidden}.g-switch__slider{background-color:var(--g-color-base-background);border-radius:50%;content:"";position:absolute;transition:transform .15s ease-out}.g-switch__outline{background:none;height:100%;inset-block-start:0;inset-inline-start:0;pointer-events:none;position:absolute;width:100%}.g-switch__control:focus-visible+.g-switch__outline{outline:2px solid var(--g-color-line-focus)}.g-switch_size_m .g-switch__indicator,.g-switch_size_m .g-switch__indicator:before,.g-switch_size_m .g-switch__outline{border-radius:10px;height:20px;width:36px}.g-switch_size_m .g-switch__slider{height:16px;inset-block-start:2px;inset-inline-start:2px;width:16px}.g-switch_size_m .g-switch__text{margin-block-start:3px}.g-switch_size_l .g-switch__indicator,.g-switch_size_l .g-switch__indicator:before,.g-switch_size_l .g-switch__outline{border-radius:12px;height:24px;width:42px}.g-switch_size_l .g-switch__slider{height:18px;inset-block-start:3px;inset-inline-start:3px;width:18px}.g-switch_size_l .g-switch__text{margin-block-start:4px}.g-switch:hover .g-switch__indicator:before{background-color:var(--g-color-base-generic-medium-hover)}.g-switch_checked .g-switch__slider{--_--translate-x:calc(100%*var(--g-flow-direction));transform:translateX(var(--_--translate-x))}.g-switch_checked .g-switch__indicator:before,.g-switch_checked:hover .g-switch__indicator:before{background-color:var(--g-color-base-brand)}.g-switch_disabled .g-switch__indicator:before{background-color:var(--g-color-base-generic-accent-disabled)}.g-switch_disabled.g-switch_checked .g-switch__indicator:before{background-color:var(--g-color-base-brand);opacity:.5}.g-control-label{-webkit-tap-highlight-color:rgba(0,0,0,0);color:var(--g-color-text-primary);cursor:pointer;display:inline-flex;font-family:var(--g-text-body-font-family);font-weight:var(--g-text-body-font-weight);touch-action:manipulation;-webkit-user-select:none;user-select:none}.g-control-label_disabled{cursor:default;pointer-events:none}.g-control-label_size_m{font-size:var(--g-text-body-1-font-size);line-height:15px}.g-control-label_size_l{font-size:var(--g-text-body-2-font-size);line-height:18px}.g-control-label__indicator{flex-shrink:0}.g-control-label__text{flex-grow:1;white-space:normal}.g-control-label_disabled .g-control-label__text{opacity:.6}.g-control-label_size_m .g-control-label__text{margin-inline-start:5px}.g-control-label_size_l .g-control-label__text{margin-inline-start:7px}.g-radio-button{--_--border-radius-inner:calc(var(--_--border-radius) - 3px);background-color:var(--g-color-base-generic);border-radius:var(--_--border-radius);box-sizing:border-box;display:inline-flex;flex-direction:row;font-family:var(--g-text-body-font-family);font-weight:var(--g-text-body-font-weight);position:relative}.g-radio-button__plate{inset-block:0;position:absolute;transition:left .2s,width .2s}.g-radio-button__plate[hidden]{display:none}.g-radio-button__option{border-radius:var(--_--border-radius-inner);cursor:pointer;flex:1 1 auto;font-size:var(--g-text-body-1-font-size);text-align:center;transform:scale(1);transition:color .15s linear;-webkit-user-select:none;user-select:none}.g-radio-button__option-outline{border-radius:var(--_--border-radius-inner);content:"";inset:3px;position:absolute;z-index:-1}.g-radio-button__option-control{border:none;cursor:inherit;height:100%;inset-block-start:0;inset-inline-start:0;margin:0;opacity:0;outline:none;padding:0;position:absolute;width:100%}.g-radio-button__option-control:focus-visible+.g-radio-button__option-outline{outline:2px solid var(--g-color-line-focus)}.g-radio-button__option-text{color:var(--g-color-text-complementary);display:inline-block;white-space:nowrap}.g-radio-button__option-text_icon{align-items:center;display:flex;height:100%}.g-radio-button__option:hover .g-radio-button__option-text,.g-radio-button__option_checked .g-radio-button__option-text{color:var(--g-color-text-primary)}.g-radio-button__option_checked{cursor:default}.g-radio-button__option_disabled{cursor:default;pointer-events:none}.g-radio-button__option_disabled .g-radio-button__option-text{color:var(--g-color-text-hint)}.g-radio-button__option:before,.g-radio-button__plate:before{border-radius:var(--_--border-radius-inner);inset:3px;position:absolute}.g-radio-button__option:before{z-index:-1}.g-radio-button__plate:before,.g-radio-button__plate[hidden]~.g-radio-button__option_checked:before{background-color:var(--g-color-base-background);content:""}.g-radio-button_size_s{--_--border-radius:var(--g-border-radius-s)}.g-radio-button_size_s .g-radio-button__option{height:24px;line-height:24px}.g-radio-button_size_s .g-radio-button__option-text{margin:0 10px}.g-radio-button_size_m{--_--border-radius:var(--g-border-radius-m)}.g-radio-button_size_m .g-radio-button__option{height:28px;line-height:28px}.g-radio-button_size_m .g-radio-button__option-text{margin:0 13px}.g-radio-button_size_l{--_--border-radius:var(--g-border-radius-l)}.g-radio-button_size_l .g-radio-button__option{height:36px;line-height:36px}.g-radio-button_size_l .g-radio-button__option-text{margin:0 18px}.g-radio-button_size_xl{--_--border-radius:var(--g-border-radius-xl)}.g-radio-button_size_xl .g-radio-button__option{font-size:var(--g-text-body-2-font-size);height:44px;line-height:44px}.g-radio-button_size_xl .g-radio-button__option-text{margin:0 25px}.g-radio-button_width_auto{max-width:100%}.g-radio-button_width_max{width:100%}.g-radio-button_width_auto .g-radio-button__option,.g-radio-button_width_max .g-radio-button__option{overflow:hidden}.g-radio-button_width_auto .g-radio-button__option-text,.g-radio-button_width_max .g-radio-button__option-text{display:block;overflow:hidden;text-overflow:ellipsis}.g-tabs{--_--vertical-item-padding:var(--g-tabs-vertical-item-padding,6px 20px);--_--vertical-item-height:var(--g-tabs-vertical-item-height,18px)}.g-tabs_size_m{--_--item-height:36px;--_--item-gap:24px;--_--item-border-width:2px}.g-tabs_size_m .g-tabs__item-counter,.g-tabs_size_m .g-tabs__item-title{font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height)}.g-tabs_size_l{--_--item-height:40px;--_--item-gap:28px;--_--item-border-width:2px}.g-tabs_size_l .g-tabs__item-counter,.g-tabs_size_l .g-tabs__item-title{font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height)}.g-tabs_size_xl{--_--item-height:44px;--_--item-gap:32px;--_--item-border-width:3px}.g-tabs_size_xl .g-tabs__item-counter,.g-tabs_size_xl .g-tabs__item-title{font-size:var(--g-text-subheader-3-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-3-line-height)}.g-tabs__item{cursor:pointer;outline:none;-webkit-user-select:none;user-select:none}.g-tabs__item-content{align-items:center;border-radius:var(--g-focus-border-radius);display:flex}.g-tabs__item_overflow .g-tabs__item-content{min-width:0}.g-tabs__item-icon{margin-inline-end:8px}.g-tabs__item-title{white-space:nowrap}.g-tabs__item_overflow .g-tabs__item-title{overflow:hidden;text-overflow:ellipsis}.g-tabs__item-counter,.g-tabs__item-label{margin-inline-start:8px}.g-tabs__item-icon>svg{display:block}.g-tabs_direction_horizontal{align-items:flex-end;box-shadow:inset 0 -1px 0 0 var(--g-color-line-generic);box-shadow:inset 0 calc(var(--g-tabs-border-width, 1px)*-1) 0 0 var(--g-color-line-generic);display:flex;flex-wrap:wrap;overflow:hidden}.g-tabs_direction_horizontal .g-tabs__item{align-items:center;border-block-end:var(--_--item-border-width) solid #0000;border-block-end:var(--g-tabs-item-border-width,var(--_--item-border-width)) solid #0000;box-sizing:border-box;display:flex;height:var(--_--item-height);height:var(--g-tabs-item-height,var(--_--item-height));padding-block-start:var(--_--item-border-width)}.g-tabs_direction_horizontal .g-tabs__item:focus-visible .g-tabs__item-content{outline:2px solid var(--g-color-line-focus);outline-offset:-2px}.g-tabs_direction_horizontal .g-tabs__item-meta{display:none}.g-tabs_direction_horizontal .g-tabs__item-title{color:var(--g-color-text-secondary)}.g-tabs_direction_horizontal .g-tabs__item-counter,.g-tabs_direction_horizontal .g-tabs__item-icon{color:var(--g-color-text-hint)}.g-tabs_direction_horizontal .g-tabs__item:focus-visible .g-tabs__item-title,.g-tabs_direction_horizontal .g-tabs__item:hover .g-tabs__item-title,.g-tabs_direction_horizontal .g-tabs__item_active .g-tabs__item-title{color:var(--g-color-text-primary)}.g-tabs_direction_horizontal .g-tabs__item:focus-visible .g-tabs__item-counter,.g-tabs_direction_horizontal .g-tabs__item:focus-visible .g-tabs__item-icon,.g-tabs_direction_horizontal .g-tabs__item:hover .g-tabs__item-counter,.g-tabs_direction_horizontal .g-tabs__item:hover .g-tabs__item-icon,.g-tabs_direction_horizontal .g-tabs__item_active .g-tabs__item-counter,.g-tabs_direction_horizontal .g-tabs__item_active .g-tabs__item-icon{color:var(--g-color-text-secondary)}.g-tabs_direction_horizontal .g-tabs__item_active,.g-tabs_direction_horizontal .g-tabs__item_active:focus-visible,.g-tabs_direction_horizontal .g-tabs__item_active:hover{border-color:var(--g-color-line-brand)}.g-tabs_direction_horizontal .g-tabs__item_disabled{pointer-events:none}.g-tabs_direction_horizontal .g-tabs__item_disabled .g-tabs__item-title{color:var(--g-color-text-hint)}.g-tabs_direction_horizontal>:not(:last-child){margin-inline-end:var(--_--item-gap);margin-inline-end:var(--g-tabs-item-gap,var(--_--item-gap))}.g-tabs_direction_vertical{display:flex;flex-direction:column}.g-tabs_direction_vertical .g-tabs__item{padding:var(--_--vertical-item-padding)}.g-tabs_direction_vertical .g-tabs__item-title{color:var(--g-color-text-primary);line-height:var(--_--vertical-item-height)}.g-tabs_direction_vertical .g-tabs__item-meta{color:var(--g-color-text-secondary);line-height:var(--_--vertical-item-height)}.g-tabs_direction_vertical .g-tabs__item-counter,.g-tabs_direction_vertical .g-tabs__item-icon{color:var(--g-color-text-secondary)}.g-tabs_direction_vertical .g-tabs__item:focus-visible,.g-tabs_direction_vertical .g-tabs__item:hover{background-color:var(--g-color-base-generic-hover)}.g-tabs_direction_vertical .g-tabs__item_active{background-color:var(--g-color-base-selection)}.g-tabs_direction_vertical .g-tabs__item_active:focus-visible,.g-tabs_direction_vertical .g-tabs__item_active:hover{background-color:var(--g-color-base-selection-hover)}.g-tabs_direction_vertical .g-tabs__item_disabled{pointer-events:none}.g-tabs_direction_vertical .g-tabs__item_disabled .g-tabs__item-title{color:var(--g-color-text-secondary)}.g-label{--border-size:0px;--_-bg-color:none;--_-bg-hover-color:none;--_-text-color:none;align-items:center;background-color:var(--_-bg-color);box-sizing:border-box;color:var(--_-text-color);display:inline-flex;isolation:isolate;position:relative;transition-duration:.15s;transition-property:opacity,color,background-color;transition-timing-function:ease-in-out}.g-label__text{align-items:baseline;display:flex;font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height);overflow:hidden;text-align:center;white-space:nowrap;width:100%}.g-label__content,.g-label__key{overflow:hidden;text-overflow:ellipsis}.g-label__value{display:flex;opacity:.7;overflow:hidden}.g-label__separator{margin:0 4px}.g-label__action-button{background:none;border:none;border-radius:inherit;color:inherit;cursor:pointer;font-family:var(--g-text-body-font-family);font-size:inherit;font-weight:var(--g-text-body-font-weight);outline:none;padding:0;z-index:1}.g-label__action-button:focus-visible{outline:2px solid var(--g-color-line-focus)}.g-label__action-button:empty{inset:0;position:absolute}.g-label .g-label__addon{align-items:center;display:flex;justify-content:center}.g-label .g-label__addon_side_left,.g-label .g-label__addon_side_right{inset-block-start:0;position:absolute}.g-label .g-label__addon_side_left{inset-inline-start:2px}.g-label .g-label__addon_side_right{inset-inline-end:0;z-index:2}.g-label .g-label__addon_interactive{--g-button-background-color:#0000;color:inherit;cursor:pointer;transition:color,background-color;transition-duration:.15s;transition-timing-function:ease-in-out}.g-label_size_xs{border-radius:var(--g-border-radius-xs);height:20px}.g-label_size_xs .g-label__text{line-height:20px;margin:0 8px}.g-label_size_xs .g-label__addon{--addon-size:calc(20px - var(--border-size)*2);height:var(--addon-size);width:var(--addon-size)}.g-label_size_xs.g-label_has-right-addon .g-label__text{margin-inline-end:22px}.g-label_size_xs.g-label_has-left-addon .g-label__text{margin-inline-start:24px}.g-label_size_s{border-radius:var(--g-border-radius-s);height:24px}.g-label_size_s .g-label__text{line-height:24px;margin:0 10px}.g-label_size_s .g-label__addon{--addon-size:calc(24px - var(--border-size)*2);height:var(--addon-size);width:var(--addon-size)}.g-label_size_s.g-label_has-right-addon .g-label__text{margin-inline-end:26px}.g-label_size_s.g-label_has-left-addon .g-label__text{margin-inline-start:28px}.g-label_size_m{border-radius:var(--g-border-radius-m);height:28px}.g-label_size_m .g-label__text{line-height:28px;margin:0 12px}.g-label_size_m .g-label__addon{--addon-size:calc(28px - var(--border-size)*2);height:var(--addon-size);width:var(--addon-size)}.g-label_size_m.g-label_has-right-addon .g-label__text{margin-inline-end:32px}.g-label_size_m.g-label_has-left-addon .g-label__text{margin-inline-start:32px}.g-label_disabled{opacity:.7;pointer-events:none}.g-label_is-interactive{cursor:pointer}.g-label_theme_normal{--_-bg-color:var(--g-color-base-misc-light);--_-bg-hover-color:var(--g-color-base-misc-light-hover);--_-text-color:var(--g-color-text-misc-heavy)}.g-label_theme_success{--_-bg-color:var(--g-color-base-positive-light);--_-bg-hover-color:var(--g-color-base-positive-light-hover);--_-text-color:var(--g-color-text-positive-heavy)}.g-label_theme_info{--_-bg-color:var(--g-color-base-info-light);--_-bg-hover-color:var(--g-color-base-info-light-hover);--_-text-color:var(--g-color-text-info-heavy)}.g-label_theme_warning{--_-bg-color:var(--g-color-base-warning-light);--_-bg-hover-color:var(--g-color-base-warning-light-hover);--_-text-color:var(--g-color-text-warning-heavy)}.g-label_theme_danger{--_-bg-color:var(--g-color-base-danger-light);--_-bg-hover-color:var(--g-color-base-danger-light-hover);--_-text-color:var(--g-color-text-danger-heavy)}.g-label_theme_utility{--_-bg-color:var(--g-color-base-utility-light);--_-bg-hover-color:var(--g-color-base-utility-light-hover);--_-text-color:var(--g-color-text-utility-heavy)}.g-label_theme_unknown{--_-bg-color:var(--g-color-base-neutral-light);--_-bg-hover-color:var(--g-color-base-neutral-light-hover);--_-text-color:var(--g-color-text-complementary)}.g-label_theme_clear{--_-bg-color:#0000;--_-bg-hover-color:var(--g-color-base-simple-hover-solid);--_-text-color:var(--g-color-text-complementary);--border-size:1px;border:var(--border-size) solid var(--g-color-line-generic)}.g-label_is-interactive:hover:not(:has(.g-label__addon_interactive:hover)){background-color:var(--_-bg-hover-color)}.g-label:not(.g-label_disabled) .g-label__addon_interactive{--g-button-background-color-hover:var(--_-bg-hover-color)}.g-label:not(.g-label_disabled) .g-label__addon_interactive:active,.g-label:not(.g-label_disabled) .g-label__addon_interactive:focus,.g-label:not(.g-label_disabled) .g-label__addon_interactive:hover{color:var(--_-text-color)}.g-text-input{--_--text-color:var(--g-color-text-primary);--_--label-color:inherit;--_--placeholder-color:var(--g-color-text-hint);--_--background-color:#0000;--_--border-width:1px;--_--focus-outline-color:var(--g-text-input-focus-outline-color);display:inline-block;position:relative;width:100%}.g-text-input__content{background-color:var(--_--background-color);background-color:var(--g-text-input-background-color,var(--_--background-color));border-color:var(--g-text-input-border-color,var(--_--border-color));border-style:solid;border-width:var(--g-text-input-border-width,var(--_--border-width));box-sizing:border-box;color:var(--_--text-color);color:var(--g-text-input-text-color,var(--_--text-color));display:flex;overflow:hidden;width:100%}.g-text-input__content:hover{border-color:var(--g-text-input-border-color-hover,var(--_--border-color-hover))}.g-text-input__content:focus-within{border-color:var(--g-text-input-border-color-active,var(--_--border-color-active));outline:2px solid var(--_--focus-outline-color);outline:2px solid var(--g-text-input-focus-outline-color,var(--_--focus-outline-color));outline-offset:-1px}.g-text-input__control{background-color:initial;border:none;box-sizing:border-box;color:inherit;display:inline-block;flex-grow:1;font-family:var(--g-text-body-font-family);font-weight:var(--g-text-body-font-weight);height:var(--g-text-input-height);margin:0;padding:0;position:relative;vertical-align:top;width:100%}.g-text-input__control::placeholder{color:var(--_--placeholder-color);color:var(--g-text-input-placeholder-color,var(--_--placeholder-color));overflow:hidden;white-space:nowrap}.g-text-input__control:focus{outline:none}.g-text-input__control[type=number]{-webkit-appearance:textfield;appearance:textfield}.g-text-input__label{box-sizing:border-box;color:var(--_--label-color);color:var(--g-text-input-label-color,var(--_--label-color));overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap;z-index:1}.g-text-input__clear{flex-shrink:0;margin:auto 0}.g-text-input__clear_size_m,.g-text-input__clear_size_s{margin-inline-end:1px}.g-text-input__clear_size_l,.g-text-input__clear_size_xl{margin-inline-end:2px}.g-text-input__error-icon{box-sizing:initial;color:var(--g-color-text-danger);padding-block:var(--_--error-icon-padding-block);padding-inline:var(--_--error-icon-padding-inline)}.g-text-input__additional-content{align-items:center;display:flex}.g-text-input_size_s{--_--error-icon-padding-block:5px;--_--error-icon-padding-inline:0 5px;--_--border-radius:var(--g-border-radius-s)}.g-text-input_size_s .g-text-input__control{--_--input-control-border-width:var( + --g-text-input-border-width,var(--g-text-area-border-width,1px) + );height:calc(24px - var(--_--input-control-border-width)*2);padding:3px 8px}.g-text-input_size_s .g-text-input__control,.g-text-input_size_s .g-text-input__label{font-size:var(--g-text-body-short-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-short-line-height)}.g-text-input_size_s .g-text-input__label{font-weight:var(--g-text-accent-font-weight);padding-block:3px;padding-inline:8px 4px}.g-text-input_size_s.g-text-input_has-start-content .g-text-input__label{padding-inline-start:2px}.g-text-input_size_s .g-text-input__additional-content{height:22px}.g-text-input_size_s .g-text-input__additional-content_placement_start{padding-inline-start:1px}.g-text-input_size_s .g-text-input__additional-content_placement_end{padding-inline-end:1px}.g-text-input_size_m{--_--error-icon-padding-block:5px;--_--error-icon-padding-inline:0 5px;--_--border-radius:var(--g-border-radius-m)}.g-text-input_size_m .g-text-input__control{--_--input-control-border-width:var( + --g-text-input-border-width,var(--g-text-area-border-width,1px) + );height:calc(28px - var(--_--input-control-border-width)*2);padding:5px 8px}.g-text-input_size_m .g-text-input__control,.g-text-input_size_m .g-text-input__label{font-size:var(--g-text-body-short-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-short-line-height)}.g-text-input_size_m .g-text-input__label{font-weight:var(--g-text-accent-font-weight);padding-block:5px;padding-inline:8px 4px}.g-text-input_size_m.g-text-input_has-start-content .g-text-input__label{padding-inline-start:2px}.g-text-input_size_m .g-text-input__additional-content{height:26px}.g-text-input_size_m .g-text-input__additional-content_placement_start{padding-inline-start:1px}.g-text-input_size_m .g-text-input__additional-content_placement_end{padding-inline-end:1px}.g-text-input_size_l{--_--error-icon-padding-block:9px;--_--error-icon-padding-inline:0 9px;--_--border-radius:var(--g-border-radius-l)}.g-text-input_size_l .g-text-input__control{--_--input-control-border-width:var( + --g-text-input-border-width,var(--g-text-area-border-width,1px) + );height:calc(36px - var(--_--input-control-border-width)*2);padding:9px 12px}.g-text-input_size_l .g-text-input__control,.g-text-input_size_l .g-text-input__label{font-size:var(--g-text-body-short-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-short-line-height)}.g-text-input_size_l .g-text-input__label{font-weight:var(--g-text-accent-font-weight);padding-block:9px;padding-inline:12px 4px}.g-text-input_size_l.g-text-input_has-start-content .g-text-input__label{padding-inline-start:3px}.g-text-input_size_l .g-text-input__additional-content{height:34px}.g-text-input_size_l .g-text-input__additional-content_placement_start{padding-inline-start:3px}.g-text-input_size_l .g-text-input__additional-content_placement_end{padding-inline-end:3px}.g-text-input_size_xl{--_--error-icon-padding-block:13px;--_--error-icon-padding-inline:0 13px;--_--border-radius:var(--g-border-radius-xl)}.g-text-input_size_xl .g-text-input__control{--_--input-control-border-width:var( + --g-text-input-border-width,var(--g-text-area-border-width,1px) + );height:calc(44px - var(--_--input-control-border-width)*2);padding:11px 12px}.g-text-input_size_xl .g-text-input__control,.g-text-input_size_xl .g-text-input__label{font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height)}.g-text-input_size_xl .g-text-input__label{font-weight:var(--g-text-accent-font-weight);padding-block:11px;padding-inline:12px 4px}.g-text-input_size_xl.g-text-input_has-start-content .g-text-input__label{padding-inline-start:3px}.g-text-input_size_xl .g-text-input__additional-content{height:42px}.g-text-input_size_xl .g-text-input__additional-content_placement_start{padding-inline-start:3px}.g-text-input_size_xl .g-text-input__additional-content_placement_end{padding-inline-end:3px}.g-text-input_view_normal{--_--border-color:var(--g-color-line-generic);--_--border-color-hover:var(--g-color-line-generic-hover);--_--border-color-active:var(--g-color-line-generic-active)}.g-text-input_view_clear{--_--border-color:#0000;--_--border-color-hover:#0000;--_--border-color-active:#0000;--_--border-radius:0}.g-text-input_view_clear .g-text-input__content{border-inline:0}.g-text-input_view_clear .g-text-input__control{padding-inline:0}.g-text-input.g-text-input_pin_round-round .g-text-input__content{border-radius:var(--_--border-radius);border-radius:var(--g-text-input-border-radius,var(--_--border-radius))}.g-text-input.g-text-input_pin_brick-brick .g-text-input__content{border-radius:0}.g-text-input.g-text-input_pin_clear-clear .g-text-input__content{border-inline:0;border-radius:0}.g-text-input.g-text-input_pin_circle-circle .g-text-input__content{border-radius:100px}.g-text-input.g-text-input_pin_round-brick .g-text-input__content{border-end-end-radius:0;border-end-start-radius:var(--_--border-radius);border-end-start-radius:var(--g-text-input-border-radius,var(--_--border-radius));border-start-end-radius:0;border-start-start-radius:var(--_--border-radius);border-start-start-radius:var(--g-text-input-border-radius,var(--_--border-radius))}.g-text-input.g-text-input_pin_brick-round .g-text-input__content{border-end-end-radius:var(--_--border-radius);border-end-end-radius:var(--g-text-input-border-radius,var(--_--border-radius));border-end-start-radius:0;border-start-end-radius:var(--_--border-radius);border-start-end-radius:var(--g-text-input-border-radius,var(--_--border-radius));border-start-start-radius:0}.g-text-input.g-text-input_pin_round-clear .g-text-input__content{border-end-end-radius:0;border-end-start-radius:var(--_--border-radius);border-end-start-radius:var(--g-text-input-border-radius,var(--_--border-radius));border-inline-end:0;border-start-end-radius:0;border-start-start-radius:var(--_--border-radius);border-start-start-radius:var(--g-text-input-border-radius,var(--_--border-radius))}.g-text-input.g-text-input_pin_clear-round .g-text-input__content{border-end-end-radius:var(--_--border-radius);border-end-end-radius:var(--g-text-input-border-radius,var(--_--border-radius));border-end-start-radius:0;border-inline-start:0;border-start-end-radius:var(--_--border-radius);border-start-end-radius:var(--g-text-input-border-radius,var(--_--border-radius));border-start-start-radius:0}.g-text-input.g-text-input_pin_brick-clear .g-text-input__content{border-inline-end:0;border-radius:0}.g-text-input.g-text-input_pin_clear-brick .g-text-input__content{border-inline-start:0;border-radius:0}.g-text-input.g-text-input_pin_circle-brick .g-text-input__content{border-end-end-radius:0;border-end-start-radius:100px;border-start-end-radius:0;border-start-start-radius:100px}.g-text-input.g-text-input_pin_brick-circle .g-text-input__content{border-end-end-radius:100px;border-end-start-radius:0;border-start-end-radius:100px;border-start-start-radius:0}.g-text-input.g-text-input_pin_circle-clear .g-text-input__content{border-end-end-radius:0;border-end-start-radius:100px;border-inline-end:0;border-start-end-radius:0;border-start-start-radius:100px}.g-text-input.g-text-input_pin_clear-circle .g-text-input__content{border-end-end-radius:100px;border-end-start-radius:0;border-inline-start:0;border-start-end-radius:100px;border-start-start-radius:0}.g-text-input_disabled{--_--text-color:var(--g-color-text-hint);--_--background-color:var(--g-color-base-generic-accent-disabled);--_--border-color:#0000;--_--border-color-hover:#0000;--_--border-color-active:#0000}.g-text-input_has-scrollbar .g-text-input__clear{inset-inline-end:var(--g-scrollbar-width)}.g-text-input_has-start-content .g-text-input__control{padding-inline-start:2px}.g-text-input_has-end-content .g-text-input__control{padding-inline-end:2px}.g-text-input_state_error.g-text-input_view_normal .g-text-input__content,.g-text-input_state_error.g-text-input_view_normal .g-text-input__content:focus-within,.g-text-input_state_error.g-text-input_view_normal .g-text-input__content:hover{border-color:var(--g-color-line-danger)}.g-text-input_state_error.g-text-input_view_normal .g-text-input__content:focus-within{--_--focus-outline-color:var(--g-color-line-danger)}.g-text-input_state_error.g-text-input_view_clear .g-text-input__content,.g-text-input_state_error.g-text-input_view_clear .g-text-input__content:focus-within,.g-text-input_state_error.g-text-input_view_clear .g-text-input__content:hover{border-block-end:1px solid var(--g-color-line-danger)}.g-text-input_state_error.g-text-input_view_clear .g-text-input__content:focus-within{--_--focus-outline-color:var(--g-color-line-danger)}.g-clear-button{--g-button-text-color:var(--g-color-text-hint);--g-button-text-color-hover:var(--g-color-text-primary);--g-button-background-color:#0000;--g-button-background-color-hover:#0000}.g-outer-additional-content{display:flex;justify-content:space-between;vertical-align:top}.g-outer-additional-content__error,.g-outer-additional-content__note{margin-block-start:2px}.g-outer-additional-content__error{color:var(--g-color-text-danger);font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height)}.g-outer-additional-content__error:not(:last-child){margin-inline-end:var(--g-spacing-2)}.g-outer-additional-content__note{margin-inline-start:auto}@keyframes g-pulse{50%{opacity:15%}}.g-loader{align-items:center;display:inline-flex}.g-loader__center,.g-loader__left,.g-loader__right{animation:g-pulse .8s ease infinite;background:var(--g-color-base-brand)}.g-loader__left{animation-delay:.2s}.g-loader__center{animation-delay:.4s}.g-loader__right{animation-delay:.6s}.g-loader_size_s .g-loader__left{height:13.33333px;width:5px}.g-loader_size_s .g-loader__center{height:20px;margin-inline-start:5px;width:5px}.g-loader_size_s .g-loader__right{height:13.33333px;margin-inline-start:5px;width:5px}.g-loader_size_m .g-loader__left{height:18.66667px;width:7px}.g-loader_size_m .g-loader__center{height:28px;margin-inline-start:7px;width:7px}.g-loader_size_m .g-loader__right{height:18.66667px;margin-inline-start:7px;width:7px}.g-loader_size_l .g-loader__left{height:24px;width:9px}.g-loader_size_l .g-loader__center{height:36px;margin-inline-start:9px;width:9px}.g-loader_size_l .g-loader__right{height:24px;margin-inline-start:9px;width:9px}.g-flex{display:flex}.g-flex_inline{display:inline-flex}.g-flex_center-content{align-items:center;justify-content:center}.g-flex_s_0{margin-block-start:calc(var(--g-spacing-0)*-1)!important;margin-inline-start:calc(var(--g-spacing-0)*-1)!important}.g-flex_s_0>*{padding-block-start:var(--g-spacing-0)!important;padding-inline-start:var(--g-spacing-0)!important}.g-flex_s_half{margin-block-start:calc(var(--g-spacing-half)*-1)!important;margin-inline-start:calc(var(--g-spacing-half)*-1)!important}.g-flex_s_half>*{padding-block-start:var(--g-spacing-half)!important;padding-inline-start:var(--g-spacing-half)!important}.g-flex_s_1{margin-block-start:calc(var(--g-spacing-1)*-1)!important;margin-inline-start:calc(var(--g-spacing-1)*-1)!important}.g-flex_s_1>*{padding-block-start:var(--g-spacing-1)!important;padding-inline-start:var(--g-spacing-1)!important}.g-flex_s_2{margin-block-start:calc(var(--g-spacing-2)*-1)!important;margin-inline-start:calc(var(--g-spacing-2)*-1)!important}.g-flex_s_2>*{padding-block-start:var(--g-spacing-2)!important;padding-inline-start:var(--g-spacing-2)!important}.g-flex_s_3{margin-block-start:calc(var(--g-spacing-3)*-1)!important;margin-inline-start:calc(var(--g-spacing-3)*-1)!important}.g-flex_s_3>*{padding-block-start:var(--g-spacing-3)!important;padding-inline-start:var(--g-spacing-3)!important}.g-flex_s_4{margin-block-start:calc(var(--g-spacing-4)*-1)!important;margin-inline-start:calc(var(--g-spacing-4)*-1)!important}.g-flex_s_4>*{padding-block-start:var(--g-spacing-4)!important;padding-inline-start:var(--g-spacing-4)!important}.g-flex_s_5{margin-block-start:calc(var(--g-spacing-5)*-1)!important;margin-inline-start:calc(var(--g-spacing-5)*-1)!important}.g-flex_s_5>*{padding-block-start:var(--g-spacing-5)!important;padding-inline-start:var(--g-spacing-5)!important}.g-flex_s_6{margin-block-start:calc(var(--g-spacing-6)*-1)!important;margin-inline-start:calc(var(--g-spacing-6)*-1)!important}.g-flex_s_6>*{padding-block-start:var(--g-spacing-6)!important;padding-inline-start:var(--g-spacing-6)!important}.g-flex_s_7{margin-block-start:calc(var(--g-spacing-7)*-1)!important;margin-inline-start:calc(var(--g-spacing-7)*-1)!important}.g-flex_s_7>*{padding-block-start:var(--g-spacing-7)!important;padding-inline-start:var(--g-spacing-7)!important}.g-flex_s_8{margin-block-start:calc(var(--g-spacing-8)*-1)!important;margin-inline-start:calc(var(--g-spacing-8)*-1)!important}.g-flex_s_8>*{padding-block-start:var(--g-spacing-8)!important;padding-inline-start:var(--g-spacing-8)!important}.g-flex_s_9{margin-block-start:calc(var(--g-spacing-9)*-1)!important;margin-inline-start:calc(var(--g-spacing-9)*-1)!important}.g-flex_s_9>*{padding-block-start:var(--g-spacing-9)!important;padding-inline-start:var(--g-spacing-9)!important}.g-flex_s_10{margin-block-start:calc(var(--g-spacing-10)*-1)!important;margin-inline-start:calc(var(--g-spacing-10)*-1)!important}.g-flex_s_10>*{padding-block-start:var(--g-spacing-10)!important;padding-inline-start:var(--g-spacing-10)!important}.g-box{box-sizing:border-box}.g-box_overflow_hidden{overflow:hidden}.g-box_overflow_auto{overflow:auto}.g-box_overflow_x{overflow:hidden auto}.g-box_overflow_y{overflow:auto hidden}.g-s__m_0{margin:var(--g-spacing-0)}.g-s__mr_0{margin-inline-end:var(--g-spacing-0)}.g-s__ml_0{margin-inline-start:var(--g-spacing-0)}.g-s__mt_0{margin-block-start:var(--g-spacing-0)}.g-s__mb_0{margin-block-end:var(--g-spacing-0)}.g-s__mx_0{margin-inline:var(--g-spacing-0)}.g-s__my_0{margin-block:var(--g-spacing-0)}.g-s__p_0{padding:var(--g-spacing-0)}.g-s__pl_0{padding-inline-start:var(--g-spacing-0)}.g-s__pr_0{padding-inline-end:var(--g-spacing-0)}.g-s__pb_0{padding-block-end:var(--g-spacing-0)}.g-s__pt_0{padding-block-start:var(--g-spacing-0)}.g-s__py_0{padding-block:var(--g-spacing-0)}.g-s__px_0{padding-inline:var(--g-spacing-0)}.g-s__m_half{margin:var(--g-spacing-half)}.g-s__mr_half{margin-inline-end:var(--g-spacing-half)}.g-s__ml_half{margin-inline-start:var(--g-spacing-half)}.g-s__mt_half{margin-block-start:var(--g-spacing-half)}.g-s__mb_half{margin-block-end:var(--g-spacing-half)}.g-s__mx_half{margin-inline:var(--g-spacing-half)}.g-s__my_half{margin-block:var(--g-spacing-half)}.g-s__p_half{padding:var(--g-spacing-half)}.g-s__pl_half{padding-inline-start:var(--g-spacing-half)}.g-s__pr_half{padding-inline-end:var(--g-spacing-half)}.g-s__pb_half{padding-block-end:var(--g-spacing-half)}.g-s__pt_half{padding-block-start:var(--g-spacing-half)}.g-s__py_half{padding-block:var(--g-spacing-half)}.g-s__px_half{padding-inline:var(--g-spacing-half)}.g-s__m_1{margin:var(--g-spacing-1)}.g-s__mr_1{margin-inline-end:var(--g-spacing-1)}.g-s__ml_1{margin-inline-start:var(--g-spacing-1)}.g-s__mt_1{margin-block-start:var(--g-spacing-1)}.g-s__mb_1{margin-block-end:var(--g-spacing-1)}.g-s__mx_1{margin-inline:var(--g-spacing-1)}.g-s__my_1{margin-block:var(--g-spacing-1)}.g-s__p_1{padding:var(--g-spacing-1)}.g-s__pl_1{padding-inline-start:var(--g-spacing-1)}.g-s__pr_1{padding-inline-end:var(--g-spacing-1)}.g-s__pb_1{padding-block-end:var(--g-spacing-1)}.g-s__pt_1{padding-block-start:var(--g-spacing-1)}.g-s__py_1{padding-block:var(--g-spacing-1)}.g-s__px_1{padding-inline:var(--g-spacing-1)}.g-s__m_2{margin:var(--g-spacing-2)}.g-s__mr_2{margin-inline-end:var(--g-spacing-2)}.g-s__ml_2{margin-inline-start:var(--g-spacing-2)}.g-s__mt_2{margin-block-start:var(--g-spacing-2)}.g-s__mb_2{margin-block-end:var(--g-spacing-2)}.g-s__mx_2{margin-inline:var(--g-spacing-2)}.g-s__my_2{margin-block:var(--g-spacing-2)}.g-s__p_2{padding:var(--g-spacing-2)}.g-s__pl_2{padding-inline-start:var(--g-spacing-2)}.g-s__pr_2{padding-inline-end:var(--g-spacing-2)}.g-s__pb_2{padding-block-end:var(--g-spacing-2)}.g-s__pt_2{padding-block-start:var(--g-spacing-2)}.g-s__py_2{padding-block:var(--g-spacing-2)}.g-s__px_2{padding-inline:var(--g-spacing-2)}.g-s__m_3{margin:var(--g-spacing-3)}.g-s__mr_3{margin-inline-end:var(--g-spacing-3)}.g-s__ml_3{margin-inline-start:var(--g-spacing-3)}.g-s__mt_3{margin-block-start:var(--g-spacing-3)}.g-s__mb_3{margin-block-end:var(--g-spacing-3)}.g-s__mx_3{margin-inline:var(--g-spacing-3)}.g-s__my_3{margin-block:var(--g-spacing-3)}.g-s__p_3{padding:var(--g-spacing-3)}.g-s__pl_3{padding-inline-start:var(--g-spacing-3)}.g-s__pr_3{padding-inline-end:var(--g-spacing-3)}.g-s__pb_3{padding-block-end:var(--g-spacing-3)}.g-s__pt_3{padding-block-start:var(--g-spacing-3)}.g-s__py_3{padding-block:var(--g-spacing-3)}.g-s__px_3{padding-inline:var(--g-spacing-3)}.g-s__m_4{margin:var(--g-spacing-4)}.g-s__mr_4{margin-inline-end:var(--g-spacing-4)}.g-s__ml_4{margin-inline-start:var(--g-spacing-4)}.g-s__mt_4{margin-block-start:var(--g-spacing-4)}.g-s__mb_4{margin-block-end:var(--g-spacing-4)}.g-s__mx_4{margin-inline:var(--g-spacing-4)}.g-s__my_4{margin-block:var(--g-spacing-4)}.g-s__p_4{padding:var(--g-spacing-4)}.g-s__pl_4{padding-inline-start:var(--g-spacing-4)}.g-s__pr_4{padding-inline-end:var(--g-spacing-4)}.g-s__pb_4{padding-block-end:var(--g-spacing-4)}.g-s__pt_4{padding-block-start:var(--g-spacing-4)}.g-s__py_4{padding-block:var(--g-spacing-4)}.g-s__px_4{padding-inline:var(--g-spacing-4)}.g-s__m_5{margin:var(--g-spacing-5)}.g-s__mr_5{margin-inline-end:var(--g-spacing-5)}.g-s__ml_5{margin-inline-start:var(--g-spacing-5)}.g-s__mt_5{margin-block-start:var(--g-spacing-5)}.g-s__mb_5{margin-block-end:var(--g-spacing-5)}.g-s__mx_5{margin-inline:var(--g-spacing-5)}.g-s__my_5{margin-block:var(--g-spacing-5)}.g-s__p_5{padding:var(--g-spacing-5)}.g-s__pl_5{padding-inline-start:var(--g-spacing-5)}.g-s__pr_5{padding-inline-end:var(--g-spacing-5)}.g-s__pb_5{padding-block-end:var(--g-spacing-5)}.g-s__pt_5{padding-block-start:var(--g-spacing-5)}.g-s__py_5{padding-block:var(--g-spacing-5)}.g-s__px_5{padding-inline:var(--g-spacing-5)}.g-s__m_6{margin:var(--g-spacing-6)}.g-s__mr_6{margin-inline-end:var(--g-spacing-6)}.g-s__ml_6{margin-inline-start:var(--g-spacing-6)}.g-s__mt_6{margin-block-start:var(--g-spacing-6)}.g-s__mb_6{margin-block-end:var(--g-spacing-6)}.g-s__mx_6{margin-inline:var(--g-spacing-6)}.g-s__my_6{margin-block:var(--g-spacing-6)}.g-s__p_6{padding:var(--g-spacing-6)}.g-s__pl_6{padding-inline-start:var(--g-spacing-6)}.g-s__pr_6{padding-inline-end:var(--g-spacing-6)}.g-s__pb_6{padding-block-end:var(--g-spacing-6)}.g-s__pt_6{padding-block-start:var(--g-spacing-6)}.g-s__py_6{padding-block:var(--g-spacing-6)}.g-s__px_6{padding-inline:var(--g-spacing-6)}.g-s__m_7{margin:var(--g-spacing-7)}.g-s__mr_7{margin-inline-end:var(--g-spacing-7)}.g-s__ml_7{margin-inline-start:var(--g-spacing-7)}.g-s__mt_7{margin-block-start:var(--g-spacing-7)}.g-s__mb_7{margin-block-end:var(--g-spacing-7)}.g-s__mx_7{margin-inline:var(--g-spacing-7)}.g-s__my_7{margin-block:var(--g-spacing-7)}.g-s__p_7{padding:var(--g-spacing-7)}.g-s__pl_7{padding-inline-start:var(--g-spacing-7)}.g-s__pr_7{padding-inline-end:var(--g-spacing-7)}.g-s__pb_7{padding-block-end:var(--g-spacing-7)}.g-s__pt_7{padding-block-start:var(--g-spacing-7)}.g-s__py_7{padding-block:var(--g-spacing-7)}.g-s__px_7{padding-inline:var(--g-spacing-7)}.g-s__m_8{margin:var(--g-spacing-8)}.g-s__mr_8{margin-inline-end:var(--g-spacing-8)}.g-s__ml_8{margin-inline-start:var(--g-spacing-8)}.g-s__mt_8{margin-block-start:var(--g-spacing-8)}.g-s__mb_8{margin-block-end:var(--g-spacing-8)}.g-s__mx_8{margin-inline:var(--g-spacing-8)}.g-s__my_8{margin-block:var(--g-spacing-8)}.g-s__p_8{padding:var(--g-spacing-8)}.g-s__pl_8{padding-inline-start:var(--g-spacing-8)}.g-s__pr_8{padding-inline-end:var(--g-spacing-8)}.g-s__pb_8{padding-block-end:var(--g-spacing-8)}.g-s__pt_8{padding-block-start:var(--g-spacing-8)}.g-s__py_8{padding-block:var(--g-spacing-8)}.g-s__px_8{padding-inline:var(--g-spacing-8)}.g-s__m_9{margin:var(--g-spacing-9)}.g-s__mr_9{margin-inline-end:var(--g-spacing-9)}.g-s__ml_9{margin-inline-start:var(--g-spacing-9)}.g-s__mt_9{margin-block-start:var(--g-spacing-9)}.g-s__mb_9{margin-block-end:var(--g-spacing-9)}.g-s__mx_9{margin-inline:var(--g-spacing-9)}.g-s__my_9{margin-block:var(--g-spacing-9)}.g-s__p_9{padding:var(--g-spacing-9)}.g-s__pl_9{padding-inline-start:var(--g-spacing-9)}.g-s__pr_9{padding-inline-end:var(--g-spacing-9)}.g-s__pb_9{padding-block-end:var(--g-spacing-9)}.g-s__pt_9{padding-block-start:var(--g-spacing-9)}.g-s__py_9{padding-block:var(--g-spacing-9)}.g-s__px_9{padding-inline:var(--g-spacing-9)}.g-s__m_10{margin:var(--g-spacing-10)}.g-s__mr_10{margin-inline-end:var(--g-spacing-10)}.g-s__ml_10{margin-inline-start:var(--g-spacing-10)}.g-s__mt_10{margin-block-start:var(--g-spacing-10)}.g-s__mb_10{margin-block-end:var(--g-spacing-10)}.g-s__mx_10{margin-inline:var(--g-spacing-10)}.g-s__my_10{margin-block:var(--g-spacing-10)}.g-s__p_10{padding:var(--g-spacing-10)}.g-s__pl_10{padding-inline-start:var(--g-spacing-10)}.g-s__pr_10{padding-inline-end:var(--g-spacing-10)}.g-s__pb_10{padding-block-end:var(--g-spacing-10)}.g-s__pt_10{padding-block-start:var(--g-spacing-10)}.g-s__py_10{padding-block:var(--g-spacing-10)}.g-s__px_10{padding-inline:var(--g-spacing-10)}.g-text_variant_display-1{font-size:var(--g-text-display-1-font-size);font-weight:var(--g-text-display-font-weight);line-height:var(--g-text-display-1-line-height)}.g-text_variant_display-2{font-size:var(--g-text-display-2-font-size);font-weight:var(--g-text-display-font-weight);line-height:var(--g-text-display-2-line-height)}.g-text_variant_display-3{font-size:var(--g-text-display-3-font-size);font-weight:var(--g-text-display-font-weight);line-height:var(--g-text-display-3-line-height)}.g-text_variant_display-4{font-size:var(--g-text-display-4-font-size);font-weight:var(--g-text-display-font-weight);line-height:var(--g-text-display-4-line-height)}.g-text_variant_code-1{font-size:var(--g-text-code-1-font-size);line-height:var(--g-text-code-1-line-height)}.g-text_variant_code-1,.g-text_variant_code-2{font-family:var(--g-font-family-monospace);font-weight:var(--g-text-code-font-weight)}.g-text_variant_code-2{font-size:var(--g-text-code-2-font-size);line-height:var(--g-text-code-2-line-height)}.g-text_variant_code-3{font-size:var(--g-text-code-3-font-size);line-height:var(--g-text-code-3-line-height)}.g-text_variant_code-3,.g-text_variant_code-inline-1{font-family:var(--g-font-family-monospace);font-weight:var(--g-text-code-font-weight)}.g-text_variant_code-inline-1{font-size:var(--g-text-code-inline-1-font-size);line-height:var(--g-text-code-inline-1-line-height)}.g-text_variant_code-inline-2{font-size:var(--g-text-code-inline-2-font-size);line-height:var(--g-text-code-inline-2-line-height)}.g-text_variant_code-inline-2,.g-text_variant_code-inline-3{font-family:var(--g-font-family-monospace);font-weight:var(--g-text-code-font-weight)}.g-text_variant_code-inline-3{font-size:var(--g-text-code-inline-3-font-size);line-height:var(--g-text-code-inline-3-line-height)}.g-text_variant_body-1{font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height)}.g-text_variant_body-2{font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height)}.g-text_variant_body-3{font-size:var(--g-text-body-3-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-3-line-height)}.g-text_variant_body-short{font-size:var(--g-text-body-short-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-short-line-height)}.g-text_variant_caption-1{font-size:var(--g-text-caption-1-font-size);font-weight:var(--g-text-caption-font-weight);line-height:var(--g-text-caption-1-line-height)}.g-text_variant_caption-2{font-size:var(--g-text-caption-2-font-size);font-weight:var(--g-text-caption-font-weight);line-height:var(--g-text-caption-2-line-height)}.g-text_variant_header-1{font-size:var(--g-text-header-1-font-size);font-weight:var(--g-text-header-font-weight);line-height:var(--g-text-header-1-line-height)}.g-text_variant_header-2{font-size:var(--g-text-header-2-font-size);font-weight:var(--g-text-header-font-weight);line-height:var(--g-text-header-2-line-height)}.g-text_variant_subheader-1{font-size:var(--g-text-subheader-1-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-1-line-height)}.g-text_variant_subheader-2{font-size:var(--g-text-subheader-2-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-2-line-height)}.g-text_variant_subheader-3{font-size:var(--g-text-subheader-3-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-3-line-height)}.g-text_ellipsis{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.g-text_ellipsis-lines{-webkit-box-orient:vertical;-webkit-line-clamp:2;align-self:center;display:-webkit-box;overflow:hidden;white-space:normal}.g-text_ws_nowrap{white-space:nowrap}.g-text_ws_break-spaces{white-space:break-spaces}.g-text_wb_break-all{word-break:break-all}.g-text_wb_break-word{word-break:break-word}.g-color-text_color_primary{color:var(--g-color-text-primary)}.g-color-text_color_complementary{color:var(--g-color-text-complementary)}.g-color-text_color_secondary{color:var(--g-color-text-secondary)}.g-color-text_color_hint{color:var(--g-color-text-hint)}.g-color-text_color_info{color:var(--g-color-text-info)}.g-color-text_color_info-heavy{color:var(--g-color-text-info-heavy)}.g-color-text_color_positive{color:var(--g-color-text-positive)}.g-color-text_color_positive-heavy{color:var(--g-color-text-positive-heavy)}.g-color-text_color_warning{color:var(--g-color-text-warning)}.g-color-text_color_warning-heavy{color:var(--g-color-text-warning-heavy)}.g-color-text_color_danger{color:var(--g-color-text-danger)}.g-color-text_color_danger-heavy{color:var(--g-color-text-danger-heavy)}.g-color-text_color_utility{color:var(--g-color-text-utility)}.g-color-text_color_utility-heavy{color:var(--g-color-text-utility-heavy)}.g-color-text_color_misc{color:var(--g-color-text-misc)}.g-color-text_color_misc-heavy{color:var(--g-color-text-misc-heavy)}.g-color-text_color_brand{color:var(--g-color-text-brand)}.g-color-text_color_link{color:var(--g-color-text-link)}.g-color-text_color_link-hover{color:var(--g-color-text-link-hover)}.g-color-text_color_link-visited{color:var(--g-color-text-link-visited)}.g-color-text_color_link-visited-hover{color:var(--g-color-text-link-visited-hover)}.g-color-text_color_dark-primary{color:var(--g-color-text-dark-primary)}.g-color-text_color_dark-complementary{color:var(--g-color-text-dark-complementary)}.g-color-text_color_dark-secondary{color:var(--g-color-text-dark-secondary)}.g-color-text_color_light-primary{color:var(--g-color-text-light-primary)}.g-color-text_color_light-complementary{color:var(--g-color-text-light-complementary)}.g-color-text_color_light-secondary{color:var(--g-color-text-light-secondary)}.g-color-text_color_light-hint{color:var(--g-color-text-light-hint)}.g-color-text_color_inverted-primary{color:var(--g-color-text-inverted-primary)}.g-color-text_color_inverted-complementary{color:var(--g-color-text-inverted-complementary)}.g-color-text_color_inverted-secondary{color:var(--g-color-text-inverted-secondary)}.g-color-text_color_inverted-hint{color:var(--g-color-text-inverted-hint)}.ydb-user-settings__item-with-popup{max-width:180px}.ydb-user-settings__popup{max-width:370px}.kv-ydb-internal-user{align-items:center;display:flex;flex-grow:1;justify-content:space-between;line-height:var(--g-text-body-2-line-height);margin-left:16px}.kv-ydb-internal-user__user-info-wrapper{display:flex;flex-direction:column}.kv-ydb-internal-user__ydb-internal-user-title{font-weight:500}.kv-ydb-internal-user__ydb-user-wrapper{padding:10px;width:300px}.info-viewer{--ydb-info-viewer-font-size:var(--g-text-body-2-font-size);--ydb-info-viewer-line-height:var(--g-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(--g-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(--g-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(--g-text-body-1-font-size);--ydb-info-viewer-line-height:var(--g-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}.popup2{animation:none!important;max-width:300px}.histogram-tooltip,.node-tootltip,.tabletsOverall-tooltip{padding:10px}.histogram-tooltip__label,.node-tootltip__label,.tabletsOverall-tooltip__label{color:var(--g-color-text-secondary);padding-right:15px}.json-tooltip{padding:20px 20px 20px 0}.json-tooltip__inspector{font-family:var(--g-font-family-monospace)!important;font-size:var(--g-text-code-1-font-size)!important;line-height:var(--g-text-code-1-line-height)!important}.json-tooltip__inspector .json-inspector__leaf_composite:before{color:var(--g-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(--g-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(--g-color-line-generic);border-radius:4px;margin-bottom:10px;width:300px}.json-tooltip__inspector .json-inspector__search{background:none;border:0 solid #0000;border-width:0 22px 0 8px;box-sizing:border-box;color:var(--g-color-text-primary);font-family:var(--g-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(--g-color-text-secondary)}.json-tooltip__inspector .json-inspector__line:hover:after{background:var(--g-color-base-simple-hover)}.json-tooltip__inspector .json-inspector__show-original:before{color:var(--g-color-text-secondary)}.json-tooltip__inspector .json-inspector__show-original:hover:after,.json-tooltip__inspector .json-inspector__show-original:hover:before{color:var(--g-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:#0000}.json-tooltip__inspector .json-inspector__show-original:hover:after,.json-tooltip__inspector .json-inspector__show-original:hover:before{color:#0000}.json-tooltip__inspector .json-inspector__value_helper{display:none}.cell-tooltip{padding:10px;word-break:break-word}.authentication{align-items:center;background-blend-mode:normal;background-color:#b8d4fd1a;background-image:radial-gradient(at 0 100%,#0066ff26 20%,#f7f7f700 40%),radial-gradient(at 55% 0,#0066ff26 20%,#f7f7f700 40%),radial-gradient(at 110% 100%,#0066ff26 20%,#f7f7f700 40%);display:flex;height:100%;justify-content:center}.authentication .g-text-input{display:flex}.authentication__header{align-items:center;display:flex;font-size:var(--g-text-body-1-font-size);justify-content:space-between;line-height:var(--g-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(--g-text-header-2-font-size);font-weight:600;line-height:var(--g-text-header-2-line-height);margin:34px 0 16px}.authentication__form-wrapper{align-items:center;background-color:var(--g-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 .g-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}.g-tooltip[class]{--g-popup-border-width:0}.g-tooltip[class]>div{animation-duration:.001ms;box-shadow:0 1px 5px 0 #00000026;box-sizing:border-box;max-width:360px;padding:4px 8px}.g-tooltip__content{-webkit-box-orient:vertical;-ms-box-orient:vertical;-webkit-line-clamp:20;-moz-line-clamp:20;-ms-line-clamp:20;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.ydb-status-icon__status-color_state_green{background-color:var(--ydb-color-status-green)}.ydb-status-icon__status-color_state_yellow{background-color:var(--ydb-color-status-yellow)}.ydb-status-icon__status-color_state_blue{background-color:var(--ydb-color-status-blue)}.ydb-status-icon__status-color_state_red{background-color:var(--ydb-color-status-red)}.ydb-status-icon__status-color_state_grey{background-color:var(--ydb-color-status-grey)}.ydb-status-icon__status-color_state_orange{background-color:var(--ydb-color-status-orange)}.ydb-status-icon__status-icon_state_blue{color:var(--ydb-color-status-blue)}.ydb-status-icon__status-icon_state_yellow{color:var(--ydb-color-status-yellow)}.ydb-status-icon__status-icon_state_orange{color:var(--ydb-color-status-orange)}.ydb-status-icon__status-icon_state_red{color:var(--ydb-color-status-red)}.ydb-status-icon__status-color,.ydb-status-icon__status-icon{border-radius:3px;flex-shrink:0}.ydb-status-icon__status-color_size_xs,.ydb-status-icon__status-icon_size_xs{aspect-ratio:1;height:12px;width:12px}.ydb-status-icon__status-color_size_s,.ydb-status-icon__status-icon_size_s{aspect-ratio:1;height:16px;width:16px}.ydb-status-icon__status-color_size_m,.ydb-status-icon__status-icon_size_m{aspect-ratio:1;height:18px;width:18px}.ydb-status-icon__status-color_size_l,.ydb-status-icon__status-icon_size_l{height:24px;width:24px}.entity-status{align-items:center;display:inline-flex;font-size:var(--g-text-body-2-font-size);height:100%;line-height:var(--g-text-body-2-line-height);max-width:100%}.entity-status__icon{margin-right:8px}.entity-status__clipboard-button{color:var(--g-color-text-secondary);display:flex;flex-shrink:0;margin-left:8px;opacity:0}.entity-status__clipboard-button:focus-visible,.entity-status__clipboard-button_visible{opacity:1}.entity-status__label{color:var(--g-color-text-complementary);font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height);margin-right:2px}.entity-status__label_size_l{font-size:var(--g-text-header-2-font-size)}.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__label_state_blue{color:var(--ydb-color-status-blue)}.entity-status__label_state_yellow{color:var(--ydb-color-status-yellow)}.entity-status__label_state_orange{color:var(--ydb-color-status-orange)}.entity-status__label_state_red{color:var(--ydb-color-status-red)}.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;width:800px}.empty-state__wrapper_position_center{margin:0 auto;position:relative}.empty-state__image{color:var(--g-color-base-info-light-hover);grid-area:image;justify-self:end;margin-right:60px}.g-root_theme_dark .empty-state__image{color:var(--g-color-base-generic)}.empty-state__title{align-self:center;font-weight:500;grid-area:title}.empty-state__title_size_s{font-size:var(--g-text-subheader-3-font-size);line-height:var(--g-text-subheader-3-line-height)}.empty-state__title_size_m{font-size:var(--g-text-header-2-font-size);line-height:var(--g-text-header-2-line-height)}.empty-state__description{font-size:var(--g-text-body-2-font-size);grid-area:description;line-height:var(--g-text-body-2-line-height)}.empty-state__actions{grid-area:actions}.empty-state__actions>*{margin-right:8px}.ydb-resizeable-data-table{display:flex;padding-right:20px;width:-webkit-max-content;width:max-content}.ydb-search{min-width:100px}.table-skeleton{width:100%}.table-skeleton__row{align-items:center;display:flex;height:var(--data-table-row-height)}.table-skeleton__row .g-skeleton{height:var(--g-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%}.g-skeleton{--_--animation-from:calc(-100%*var(--g-flow-direction));--_--animation-to:calc(100%*var(--g-flow-direction));--_--gradient-deg:calc(90deg*var(--g-flow-direction));background-color:var(--g-color-base-generic);border-radius:5px;display:inline-block;overflow:hidden;position:relative;width:100%;z-index:0}.g-skeleton:after{animation:g-skeleton 1.2s ease-out infinite;background-image:linear-gradient(var(--_--gradient-deg),#0000,var(--g-color-base-generic));content:"";inset:0;position:absolute}@keyframes g-skeleton{0%{transform:translateX(var(--_--animation-from))}to{transform:translateX(var(--_--animation-to))}}.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(--g-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 .ydb-virtual-table__head{top:62px}.ydb-table-with-controls-layout .data-table__sticky_moving{top:62px!important}.ydb-cell-with-popover{display:flex;max-width:100%}.ydb-cell-with-popover__popover{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.ydb-cell-with-popover__popover .g-popover__handler{display:inline}.ydb-node-host-wrapper__external-button{display:none;flex-shrink:0;margin-left:4px}.data-table__row:hover .ydb-node-host-wrapper__external-button,.ydb-virtual-table__row:hover .ydb-node-host-wrapper__external-button{display:inline-flex}.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(--ydb-color-status-green)}.ydb-pool-bar_type_warning{border-color:var(--ydb-color-status-yellow)}.ydb-pool-bar_type_danger{border-color:var(--ydb-color-status-red)}.ydb-pool-bar__value{bottom:0;min-height:1px;position:absolute;width:100%}.ydb-pool-bar__value_type_normal{background-color:var(--ydb-color-status-green)}.ydb-pool-bar__value_type_warning{background-color:var(--ydb-color-status-yellow)}.ydb-pool-bar__value_type_danger{background-color:var(--ydb-color-status-red)}.ydb-pools-graph{display:flex}.progress-viewer{align-items:center;background:var(--g-color-base-generic);border-radius:2px;color:var(--g-color-text-complementary);display:flex;font-size:var(--g-text-body-2-font-size);height:23px;justify-content:center;min-width:120px;overflow:hidden;padding:0 4px;position:relative;white-space:nowrap;z-index:0}.progress-viewer_theme_dark{color:var(--g-color-text-light-primary)}.progress-viewer_theme_dark .progress-viewer__line{opacity:.75}.progress-viewer_status_good{background-color:var(--g-color-base-positive-light)}.progress-viewer_status_good .progress-viewer__line{background-color:var(--ydb-color-status-green)}.progress-viewer_status_warning{background-color:var(--g-color-base-yellow-light)}.progress-viewer_status_warning .progress-viewer__line{background-color:var(--ydb-color-status-yellow)}.progress-viewer_status_danger{background-color:var(--g-color-base-danger-light)}.progress-viewer_status_danger .progress-viewer__line{background-color:var(--ydb-color-status-red)}.progress-viewer__line{height:100%;left:0;position:absolute;top:0}.progress-viewer__text{position:relative;z-index:1}.progress-viewer_size_xs{font-size:var(--g-text-body-2-font-size);height:20px;line-height:var(--g-text-body-2-line-height)}.progress-viewer_size_s{font-size:var(--g-text-body-1-font-size);height:28px;line-height:28px}.progress-viewer_size_m{font-size:var(--g-text-body-2-font-size);height:32px;line-height:32px}.progress-viewer_size_ns{font-size:13px;height:24px;line-height:var(--g-text-subheader-3-line-height)}.progress-viewer_size_n{font-size:var(--g-text-body-1-font-size);height:36px;line-height:36px}.progress-viewer_size_l{font-size:var(--g-text-subheader-3-font-size);height:38px;line-height:38px}.progress-viewer_size_head{font-size:var(--g-text-body-1-font-size);line-height:36px}.tablets-statistic{align-items:center;display:flex;gap:2px}.tablets-statistic__tablet{border:1px solid;border-radius:2px;color:var(--g-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(--g-color-base-positive-light);color:var(--g-color-text-positive)}.tablets-statistic__tablet_state_yellow{background-color:var(--g-color-base-warning-light);color:var(--g-color-text-warning)}.tablets-statistic__tablet_state_blue{background-color:var(--g-color-base-info-light);color:var(--g-color-text-info)}.tablets-statistic__tablet_state_orange{background-color:var(--g-color-base-warning-light);color:var(--g-color-text-warning-heavy)}.tablets-statistic__tablet_state_red{background:var(--g-color-base-danger-light);color:var(--g-color-text-danger)}.tablets-statistic__tablet_state_grey{border:1px solid var(--g-color-line-generic-hover);color:var(--g-color-text-secondary)}.ydb-usage-label_overload{background-color:var(--ydb-color-status-red);color:var(--g-color-text-light-primary)}.ydb-nodes__search{width:238px}.ydb-nodes__show-all-wrapper{left:0;margin-bottom:15px;position:-webkit-sticky;position:sticky}.ydb-nodes__node_unavailable{opacity:.6}.ydb-virtual-table{--virtual-table-cell-vertical-padding:5px;--virtual-table-cell-horizontal-padding:10px;--virtual-table-border-color:var(--g-color-base-generic-hover);--virtual-table-hover-color:var(--g-color-base-float-hover);font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height);width:100%}.ydb-virtual-table__table{border-collapse:initial;border-spacing:0;max-width:100%;table-layout:fixed;width:-webkit-max-content;width:max-content}.ydb-virtual-table__table th{padding:0}.ydb-virtual-table__row:hover{background:var(--virtual-table-hover-color)}.ydb-virtual-table__row_empty:hover{background-color:initial}.ydb-virtual-table__head{background-color:var(--g-color-base-background);left:0;position:-webkit-sticky;position:sticky;top:0;z-index:1}.ydb-virtual-table__sort-icon-container{color:inherit;display:flex;justify-content:center}.ydb-virtual-table__sort-icon-container_shadow{opacity:.15}.ydb-virtual-table__sort-icon_desc{transform:rotate(180deg)}.ydb-virtual-table__head-cell-wrapper{border-bottom:1px solid var(--virtual-table-border-color);display:flex;overflow-x:hidden;position:relative}.ydb-virtual-table__head-cell{align-items:center;display:flex;flex-direction:row;max-width:100%;padding:var(--virtual-table-cell-vertical-padding) var(--virtual-table-cell-horizontal-padding);width:100%}.ydb-virtual-table__head-cell_align_left{justify-content:left}.ydb-virtual-table__head-cell_align_center{justify-content:center}.ydb-virtual-table__head-cell_align_right{justify-content:right}.ydb-virtual-table__head-cell{cursor:default;font-weight:700;gap:8px}.ydb-virtual-table__head-cell_sortable{cursor:pointer}.ydb-virtual-table__head-cell_sortable.ydb-virtual-table__head-cell_align_right{flex-direction:row-reverse}.ydb-virtual-table__head-cell-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:-webkit-min-content;width:min-content}.ydb-virtual-table__row-cell{border-bottom:1px solid var(--virtual-table-border-color);display:table-cell;max-width:100%;overflow-x:hidden;padding:var(--virtual-table-cell-vertical-padding) var(--virtual-table-cell-horizontal-padding);text-overflow:ellipsis;vertical-align:middle;white-space:nowrap;width:100%}.ydb-virtual-table__row-cell_align_left{text-align:left}.ydb-virtual-table__row-cell_align_center{text-align:center}.ydb-virtual-table__row-cell_align_right{text-align:right}.ydb-virtual-table__resize-handler{background-color:var(--g-color-base-generic);cursor:col-resize;height:100%;position:absolute;right:0;top:0;visibility:hidden;width:6px}.ydb-virtual-table__head-cell-wrapper:hover>.ydb-virtual-table__resize-handler,.ydb-virtual-table__resize-handler_resizing{visibility:visible}.usage-filter{min-width:100px}.usage-filter__option{flex-grow:1}.usage-filter__option-title{font-size:var(--g-text-body-1-font-size);height:var(--g-text-body-1-line-height);line-height:var(--g-text-body-1-line-height)}.usage-filter__option-meta{border-radius:3px;font-size:var(--g-text-caption-2-font-size);line-height:var(--g-text-caption-2-line-height);padding:0 5px;position:relative;z-index:0}.usage-filter__option-bar{background-color:var(--g-color-base-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-list,.g-select_width_max{width:100%}.g-list{--_--item-padding:var(--g-list-item-padding,0);display:flex;flex:1 1 auto;flex-direction:column;outline:none}.g-list__filter{flex:0 0 auto;margin-block-end:8px;padding:var(--_--item-padding)}.g-list__items{flex:1 1 auto}.g-list__empty-placeholder,.g-list__item{align-items:center;box-sizing:border-box;display:flex;overflow:hidden;padding:var(--_--item-padding);-webkit-user-select:none;user-select:none}.g-list__item_active{background:var(--g-color-base-simple-hover)}.g-list__item_selected{background:var(--g-color-base-selection)}.g-list__item_selected:hover{background:var(--g-color-base-selection-hover)}.g-list__item_sort-handle-align_right{flex-direction:row-reverse}.g-list__item_sort-handle-align_right .g-list__item-sort-icon{margin-inline:10px 0}.g-list__item_sortable[data-rbd-drag-handle-context-id]:active{cursor:grabbing}.g-list__item_dragging{background:var(--g-color-base-simple-hover-solid);z-index:100001}.g-list__empty-placeholder{box-sizing:border-box;color:var(--g-color-text-hint);min-height:36px;padding-block:8px}.g-list__item-content{align-items:center;display:flex;flex:1 1 auto;height:100%;overflow:hidden;text-overflow:ellipsis}.g-list__item-sort-icon{align-items:center;color:var(--g-color-text-hint);display:flex;flex:0 0 auto;margin-inline-end:4px;width:12px}.g-list__loading-indicator{align-items:center;display:flex;justify-content:center;width:100%}.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(--g-color-line-generic-active)}.g-select-list{display:flex;margin:4px 0;overflow:hidden}.g-popup .g-select-list:first-child,.g-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,.g-select-list__group-label-custom{box-sizing:border-box;height:auto;padding:0;position:relative;width:100%}.g-select-list__group-label{font-size:var(--g-text-body-1-font-size)}.g-select-list_size_s .g-select-list__group-label:not(.g-select-list__group-label_empty){height:24px;padding:8px 8px 4px}.g-select-list_size_m .g-select-list__group-label:not(.g-select-list__group-label_empty){height:28px;padding:8px 8px 4px}.g-select-list_size_l .g-select-list__group-label:not(.g-select-list__group-label_empty){height:36px;padding:10px 12px 6px}.g-select-list_size_xl .g-select-list__group-label:not(.g-select-list__group-label_empty){font-size:var(--g-text-body-2-font-size);height:44px;padding:12px 12px 8px}.g-select-list_mobile .g-select-list__group-label:not(.g-select-list__group-label_empty){font-size:var(--g-text-body-2-font-size);height:36px;padding:12px 12px 8px}.g-select-list__item:not(:first-child) .g-select-list__group-label{margin-block-start:5px}.g-select-list__item:not(:first-child) .g-select-list__group-label:before{background-color:var(--g-color-line-generic);content:"";height:1px;inset-block-start:-3px;inset-inline-start:0;position:absolute;width:100%}.g-select-list__group-label-content{font-weight:var(--g-text-accent-font-weight);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.g-select-list__item.g-list__item_selected{background:none}.g-select-list__item.g-list__item_active,.g-select-list__item.g-list__item_selected:hover{background:var(--g-color-base-simple-hover)}.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{--_--select-tick-icon-padding-right:4px;padding:0 8px}.g-select-list_size_s .g-select-list__option .g-select-list__option-default-label{height:24px;line-height:24px}.g-select-list_size_m .g-select-list__option{--_--select-tick-icon-padding-right:4px;padding:0 8px}.g-select-list_size_m .g-select-list__option .g-select-list__option-default-label{height:28px;line-height:28px}.g-select-list_size_l .g-select-list__option{--_--select-tick-icon-padding-right:6px;padding:0 12px}.g-select-list_size_l .g-select-list__option .g-select-list__option-default-label{height:36px;line-height:36px}.g-select-list_size_xl .g-select-list__option{--_--select-tick-icon-padding-right:6px;padding:0 12px}.g-select-list_size_xl .g-select-list__option .g-select-list__option-default-label{font-size:var(--g-text-body-2-font-size);height:44px;line-height:44px}.g-select-list_mobile .g-select-list__option{padding:0 12px}.g-select-list_mobile .g-select-list__option .g-select-list__option-default-label{font-size:var(--g-text-body-2-font-size);height:36px;line-height:36px}.g-select-list_mobile .g-select-list__option .g-select-list__tick-icon{padding-inline-end:6px}.g-select-list__option_colored{background-color:var(--g-color-base-selection)}.g-select-list__option_disabled{cursor:default}.g-select-list__option-default-label{font-size:var(--g-text-body-1-font-size);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.g-select-list__option-default-label_disabled{color:var(--g-color-text-secondary)}.g-select-list__tick-icon{box-sizing:initial;color:var(--g-color-text-info);flex:0 0 16px;padding-inline-end:var(--_--select-tick-icon-padding-right);visibility:hidden}.g-select-list__tick-icon_shown{visibility:visible}.g-select-list__loading-indicator{align-items:center;display:flex;justify-content:center;width:100%}.g-select-empty-placeholder{color:var(--g-color-text-hint);margin:4px}.g-select-empty-placeholder_empty{margin-block-start:0}.g-select-control{--_--focus-outline-color:var(--g-select-focus-outline-color);align-items:center;background:none;border:none;box-sizing:border-box;color:inherit;cursor:pointer;display:inline-flex;font-family:var(--g-text-body-font-family);font-size:inherit;font-weight:var(--g-text-body-font-weight);outline:none;padding:0;position:relative;transition:transform .1s ease-out;width:100%;z-index:0}.g-select-control_disabled{cursor:default}.g-select-control_size_s{--_--text-right-padding:8px;--_--border-radius:var(--g-border-radius-s);height:24px;padding:4px calc(var(--_--text-right-padding) + 1px)}.g-select-control_size_m{--_--text-right-padding:8px;--_--border-radius:var(--g-border-radius-m);height:28px;padding:6px calc(var(--_--text-right-padding) + 1px)}.g-select-control_size_l{--_--text-right-padding:12px;--_--border-radius:var(--g-border-radius-l);height:36px;padding:10px calc(var(--_--text-right-padding) + 1px)}.g-select-control_size_xl{--_--text-right-padding:12px;--_--border-radius:var(--g-border-radius-xl);height:44px;padding:12px calc(var(--_--text-right-padding) + 1px)}.g-select-control__button{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;font-family:var(--g-text-body-font-family);font-size:inherit;font-weight:var(--g-text-body-font-weight);height:100%;outline:none;overflow:hidden;padding:0;transition:color .15s linear,background-color .15s linear;width:100%}.g-select-control__button.g-select-control__button_pin_round-round:before{border-radius:var(--_--border-radius)}.g-select-control__button.g-select-control__button_pin_brick-brick:before{border-radius:0}.g-select-control__button.g-select-control__button_pin_clear-clear:before{border-inline:0;border-radius:0}.g-select-control__button.g-select-control__button_pin_circle-circle:before{border-radius:100px}.g-select-control__button.g-select-control__button_pin_round-brick:before{border-end-end-radius:0;border-end-start-radius:var(--_--border-radius);border-start-end-radius:0;border-start-start-radius:var(--_--border-radius)}.g-select-control__button.g-select-control__button_pin_brick-round:before{border-end-end-radius:var(--_--border-radius);border-end-start-radius:0;border-start-end-radius:var(--_--border-radius);border-start-start-radius:0}.g-select-control__button.g-select-control__button_pin_round-clear:before{border-end-end-radius:0;border-end-start-radius:var(--_--border-radius);border-inline-end:0;border-start-end-radius:0;border-start-start-radius:var(--_--border-radius)}.g-select-control__button.g-select-control__button_pin_clear-round:before{border-end-end-radius:var(--_--border-radius);border-end-start-radius:0;border-inline-start:0;border-start-end-radius:var(--_--border-radius);border-start-start-radius:0}.g-select-control__button.g-select-control__button_pin_brick-clear:before{border-inline-end:0;border-radius:0}.g-select-control__button.g-select-control__button_pin_clear-brick:before{border-inline-start:0;border-radius:0}.g-select-control__button.g-select-control__button_pin_circle-brick:before{border-end-end-radius:0;border-end-start-radius:100px;border-start-end-radius:0;border-start-start-radius:100px}.g-select-control__button.g-select-control__button_pin_brick-circle:before{border-end-end-radius:100px;border-end-start-radius:0;border-start-end-radius:100px;border-start-start-radius:0}.g-select-control__button.g-select-control__button_pin_circle-clear:before{border-end-end-radius:0;border-end-start-radius:100px;border-inline-end:0;border-start-end-radius:0;border-start-start-radius:100px}.g-select-control__button.g-select-control__button_pin_clear-circle:before{border-end-end-radius:100px;border-end-start-radius:0;border-inline-start:0;border-start-end-radius:100px;border-start-start-radius:0}.g-select-control__button.g-select-control__button_pin_round-round:after{border-radius:var(--_--border-radius)}.g-select-control__button.g-select-control__button_pin_brick-brick:after{border-radius:0}.g-select-control__button.g-select-control__button_pin_clear-clear:after{border-inline:0;border-radius:0}.g-select-control__button.g-select-control__button_pin_circle-circle:after{border-radius:100px}.g-select-control__button.g-select-control__button_pin_round-brick:after{border-end-end-radius:0;border-end-start-radius:var(--_--border-radius);border-start-end-radius:0;border-start-start-radius:var(--_--border-radius)}.g-select-control__button.g-select-control__button_pin_brick-round:after{border-end-end-radius:var(--_--border-radius);border-end-start-radius:0;border-start-end-radius:var(--_--border-radius);border-start-start-radius:0}.g-select-control__button.g-select-control__button_pin_round-clear:after{border-end-end-radius:0;border-end-start-radius:var(--_--border-radius);border-inline-end:0;border-start-end-radius:0;border-start-start-radius:var(--_--border-radius)}.g-select-control__button.g-select-control__button_pin_clear-round:after{border-end-end-radius:var(--_--border-radius);border-end-start-radius:0;border-inline-start:0;border-start-end-radius:var(--_--border-radius);border-start-start-radius:0}.g-select-control__button.g-select-control__button_pin_brick-clear:after{border-inline-end:0;border-radius:0}.g-select-control__button.g-select-control__button_pin_clear-brick:after{border-inline-start:0;border-radius:0}.g-select-control__button.g-select-control__button_pin_circle-brick:after{border-end-end-radius:0;border-end-start-radius:100px;border-start-end-radius:0;border-start-start-radius:100px}.g-select-control__button.g-select-control__button_pin_brick-circle:after{border-end-end-radius:100px;border-end-start-radius:0;border-start-end-radius:100px;border-start-start-radius:0}.g-select-control__button.g-select-control__button_pin_circle-clear:after{border-end-end-radius:0;border-end-start-radius:100px;border-inline-end:0;border-start-end-radius:0;border-start-start-radius:100px}.g-select-control__button.g-select-control__button_pin_clear-circle:after{border-end-end-radius:100px;border-end-start-radius:0;border-inline-start:0;border-start-end-radius:100px;border-start-start-radius:0}.g-select-control__button:before{border:1px solid var(--g-color-line-generic);border-radius:var(--_--border-radius);content:"";inset:0;position:absolute}.g-select-control__button:after{content:"";inset:0;position:absolute;z-index:-1}.g-select-control__button_view_clear,.g-select-control__button_view_clear:after,.g-select-control__button_view_clear:before{border-color:#0000}.g-select-control__button_size_l,.g-select-control__button_size_m,.g-select-control__button_size_s{font-size:var(--g-text-body-short-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-short-line-height)}.g-select-control__button_size_xl{font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height)}.g-select-control__button_error:before{--_--focus-outline-color:var(--g-color-line-danger);border-color:var(--g-color-line-danger)}.g-select-control__button:hover:after{background-color:var(--g-color-base-simple-hover)}.g-select-control__button_disabled{color:var(--g-color-text-hint);pointer-events:none}.g-select-control__button_disabled:after{background-color:var(--g-color-base-generic-accent-disabled)}.g-select-control__button_disabled:before{border-color:#0000}.g-select-control__button:not(.g-select-control__button_error):not(.g-select-control__button_disabled):not(.g-select-control__button_view_clear):hover:before{border-color:var(--g-color-line-generic-hover)}.g-select-control__button:not(.g-select-control__button_error):not(.g-select-control__button_view_clear):focus-visible:before,.g-select-control__button_open:not(.g-select-control__button_error):not(.g-select-control__button_view_clear):before{border-color:var(--g-color-line-generic-active)}.g-select-control__button:focus-visible:before{outline:2px solid var(--_--focus-outline-color);outline:2px solid var(--g-select-focus-outline-color,var(--_--focus-outline-color));outline-offset:-1px}.g-select-control:not(.g-select-control_disabled):not(.g-select-control_no-active):active{transform:scale(.96)}.g-select-control__label{flex-shrink:0;font-weight:var(--g-text-accent-font-weight);margin-inline-end:4px;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.g-select-control__option-text,.g-select-control__placeholder{overflow:hidden;padding-inline-end:var(--_--text-right-padding);text-overflow:ellipsis;white-space:nowrap}.g-select-control_has-clear.g-select-control_size_s .g-select-control__button_disabled .g-select-control__option-text,.g-select-control_has-clear.g-select-control_size_s .g-select-control__button_disabled .g-select-control__placeholder{padding-inline-end:calc(24px + var(--_--text-right-padding))}.g-select-control_has-clear.g-select-control_size_m .g-select-control__button_disabled .g-select-control__option-text,.g-select-control_has-clear.g-select-control_size_m .g-select-control__button_disabled .g-select-control__placeholder{padding-inline-end:calc(28px + var(--_--text-right-padding))}.g-select-control_has-clear.g-select-control_size_l .g-select-control__button_disabled .g-select-control__option-text,.g-select-control_has-clear.g-select-control_size_l .g-select-control__button_disabled .g-select-control__placeholder{padding-inline-end:calc(36px + var(--_--text-right-padding))}.g-select-control_has-clear.g-select-control_size_xl .g-select-control__button_disabled .g-select-control__option-text,.g-select-control_has-clear.g-select-control_size_xl .g-select-control__button_disabled .g-select-control__placeholder{padding-inline-end:calc(44px + var(--_--text-right-padding))}.g-select-control__placeholder{color:var(--g-color-text-hint)}.g-select-control_has-clear:not(.g-select-control_has-value).g-select-control_size_s .g-select-control__button:not(.g-select-control__button_disabled) .g-select-control__placeholder{padding-inline-end:calc(24px + var(--_--text-right-padding))}.g-select-control_has-clear:not(.g-select-control_has-value).g-select-control_size_m .g-select-control__button:not(.g-select-control__button_disabled) .g-select-control__placeholder{padding-inline-end:calc(28px + var(--_--text-right-padding))}.g-select-control_has-clear:not(.g-select-control_has-value).g-select-control_size_l .g-select-control__button:not(.g-select-control__button_disabled) .g-select-control__placeholder{padding-inline-end:calc(36px + var(--_--text-right-padding))}.g-select-control_has-clear:not(.g-select-control_has-value).g-select-control_size_xl .g-select-control__button:not(.g-select-control__button_disabled) .g-select-control__placeholder{padding-inline-end:calc(44px + var(--_--text-right-padding))}.g-select-control__chevron-icon{color:var(--g-color-text-secondary);flex:0 0 16px;margin-inline-start:auto}.g-select-control__chevron-icon_disabled{color:var(--g-color-text-hint)}.g-select-clear+.g-select-control__chevron-icon{margin-inline-start:0}.g-select-control__error-icon{background:none;border:none;border-radius:var(--g-focus-border-radius);box-sizing:initial;color:inherit;color:var(--g-color-text-danger);cursor:pointer;font-family:var(--g-text-body-font-family);font-size:inherit;font-weight:var(--g-text-body-font-weight);outline:none;padding:0;padding:var(--_--text-input-error-icon-padding)}.g-select-control__error-icon:focus{outline:2px solid var(--g-color-line-focus)}.g-select-control__error-icon:focus:not(:focus-visible){outline:0}.g-select-counter{align-items:center;background-color:var(--g-color-base-generic);display:flex;justify-content:center;margin-inline:4px}.g-select-counter__text{flex-grow:1;margin-inline:4px;text-align:center}.g-select-counter_size_xl .g-select-counter__text{margin-inline:6px}.g-select-counter_size_s{border-radius:var(--g-border-radius-xs);height:20px;min-width:20px}.g-select-counter_size_m{border-radius:var(--g-border-radius-s);height:24px;min-width:24px}.g-select-counter_size_l{border-radius:var(--g-border-radius-m);height:28px;min-width:28px}.g-select-counter_size_xl{border-radius:var(--g-border-radius-l);height:36px;margin-inline:4px;min-width:36px}.g-select-clear{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;font-family:var(--g-text-body-font-family);font-size:inherit;font-weight:var(--g-text-body-font-weight);justify-content:center;margin-inline-start:auto;outline:none;padding:0;z-index:1}.g-select-clear:focus-visible{border:1px solid var(--g-color-line-generic-active)}.g-select-clear_size_s{border-radius:var(--g-border-radius-s);height:24px;width:24px}.g-select-clear_size_m{border-radius:var(--g-border-radius-m);height:28px;width:28px}.g-select-clear_size_l{border-radius:var(--g-border-radius-l);height:36px;width:36px}.g-select-clear_size_xl{border-radius:var(--g-border-radius-xl);height:44px;width:44px}.g-select-clear__clear{color:var(--g-color-text-secondary)}.g-select-clear:hover .g-select-clear__clear{color:var(--g-color-text-primary)}.g-select-popup{display:flex;flex-direction:column;max-height:90vh}.g-sheet{position:fixed;z-index:100000}.g-sheet,.g-sheet__veil{height:100%;inset-block-start:0;inset-inline-start:0;width:100%}.g-sheet__veil{background-color:var(--g-color-sfx-veil);opacity:0;position:absolute;will-change:opacity}.g-sheet__veil_with-transition{transition:opacity .3s ease}.g-sheet__sheet{inset-block-start:100%;inset-inline-start:0;max-height:90%;position:absolute;width:100%;will-change:transform}.g-sheet__sheet_with-transition{transition:transform .3s ease}.g-sheet__sheet-swipe-area{height:40px;inset-block-start:-20px;inset-inline-start:0;position:absolute;width:100%;z-index:1}.g-sheet__sheet-top{background-color:var(--g-color-base-float);border-start-end-radius:20px;border-start-start-radius:20px;height:20px;position:relative}.g-sheet__sheet-top-resizer{--_--translate-x:calc(-50%*var(--g-flow-direction));background-color:var(--g-color-line-generic);border-radius:4px;height:4px;inset-block-start:50%;inset-inline-start:50%;position:absolute;transform:translateX(var(--_--translate-x)) translateY(-50%);width:40px}.g-sheet__sheet-content{background-color:var(--g-color-base-float);box-sizing:border-box;max-height:calc(90% - 20px);overflow:hidden auto;overscroll-behavior-y:contain;padding:0 10px;padding:var(--g-sheet-content-padding,0 10px);transition:height .3s ease;width:100%}.g-sheet__sheet-content_without-scroll{overflow:hidden}.g-sheet__sheet-content-title{font-size:var(--g-text-body-2-font-size);line-height:28px;overflow:hidden;padding-block-end:8px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.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{background:var(--g-color-base-background);transition: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;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{transform:translate(calc(var(--ydb-stack-offset-x-hover)*-1),calc(var(--ydb-stack-offset-y-hover)*-1))}.stack:hover .stack__layer+.stack__layer{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(--g-color-base-misc-light);border:1px solid var(--g-color-base-misc-heavy);border-radius:4px;color:var(--g-color-text-primary);display:block;height:var(--g-text-body-3-line-height);min-width:50px;position:relative;text-align:center;z-index:0}.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(--g-color-base-misc-medium)}.storage-disk-progress-bar_green{background-color:var(--g-color-base-positive-light);border-color:var(--g-color-base-positive-heavy)}.storage-disk-progress-bar_green .storage-disk-progress-bar__filled{background-color:var(--g-color-base-positive-medium)}.g-root_theme_dark .storage-disk-progress-bar_green .storage-disk-progress-bar__filled{background-color:#7ce37966}.storage-disk-progress-bar_blue{background-color:var(--g-color-base-info-light);border-color:var(--g-color-base-info-heavy)}.storage-disk-progress-bar_blue .storage-disk-progress-bar__filled{background-color:var(--g-color-base-info-medium)}.storage-disk-progress-bar_yellow{background-color:var(--g-color-base-yellow-light);border-color:var(--g-color-base-warning-heavy)}.storage-disk-progress-bar_yellow .storage-disk-progress-bar__filled{background-color:var(--g-color-base-yellow-medium)}.storage-disk-progress-bar_orange{background-color:var(--g-color-base-warning-light);border-color:var(--ydb-color-status-orange)}.storage-disk-progress-bar_orange .storage-disk-progress-bar__filled{background-color:var(--g-color-base-warning-medium)}.storage-disk-progress-bar_red{background-color:var(--g-color-base-danger-light);border-color:var(--g-color-base-danger-heavy)}.storage-disk-progress-bar_red .storage-disk-progress-bar__filled{background-color:var(--g-color-base-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(--g-text-body-1-font-size);line-height:calc(var(--g-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(--g-color-line-generic);margin-top:8px;padding-top:8px}.vdisk-storage-popup__donor-label{margin-bottom:8px}.ydb-vdisk-component,.ydb-vdisk-component__content{border-radius:4px}.global-storage-groups__vdisks-column{overflow:visible}.global-storage-groups__vdisks-wrapper{display:flex;gap:10px;justify-content:center;min-width:500px}.global-storage-groups__vdisks-item{flex-grow:1;max-width:200px}.data-table__row:hover .global-storage-groups__vdisks-item .stack__layer{background:var(--ydb-data-table-color-hover)}.global-storage-groups__pool-name-wrapper{width:230px}.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}.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(--g-color-text-secondary);font-size:var(--g-text-body-1-font-size);line-height:var(--g-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}.global-storage__search{width:238px}.global-storage__table .g-tooltip{height:var(--g-text-body-2-line-height)!important}.global-storage .entity-status{justify-content:center}.tenants__format-label{margin-right:15px}.tenants__title{text-align:center}.tenants__tooltip{animation:none!important}.tenants__search{width:238px}.tenants__tablets{padding:0!important}.tenants__tablets .tablets-viewer__grid{grid-gap:20px}.tenants__type{align-items:center;display:flex;flex-direction:row;gap:10px}.tenants__type-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:-webkit-min-content;width:min-content}.tenants__type-button{display:none}.data-table__row:hover .tenants__type-button{display:block}.tenants__monitoring-button{margin-left:4px}.tenants__name{overflow:hidden}.ydb-loader{align-items:center;display:flex;flex:1 1 auto;height:100%;justify-content:center}.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(--g-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 .g-progress{width:200px}.ydb-versions-nodes-tree-title__overview-title{align-items:center;display:flex}.ydb-versions-nodes-tree-title__clipboard-button{color:var(--g-color-text-secondary);margin-left:8px;visibility:hidden}.g-progress{--_--empty-background-color:var(--g-color-base-generic);--_--empty-text-color:var(--g-color-text-primary);--_--filled-text-color:var(--g-color-text-primary);--_--filled-background-color:var(--g-color-base-neutral-medium);background-color:var(--_--empty-background-color);background-color:var(--g-progress-empty-background-color,var(--_--empty-background-color));border-radius:3px;margin:0 auto;overflow:hidden;position:relative;text-align:center}.g-progress__text{color:var(--_--empty-text-color);color:var(--g-progress-empty-text-color,var(--_--empty-text-color));position:relative}.g-progress__text,.g-progress__text-inner{box-sizing:border-box;font-family:var(--g-text-body-font-family);font-size:var(--g-text-body-short-font-size);font-weight:var(--g-text-body-font-weight);padding:0 10px}.g-progress__text-inner{color:var(--_--empty-text-color);color:var(--g-progress-filled-text-color,var(--_--empty-text-color));height:100%;position:absolute;transition:transform .6s ease;width:100%}.g-progress__item{background-color:var(--_--filled-background-color);background-color:var(--g-progress-filled-background-color,var(--_--filled-background-color));float:left;height:100%;overflow:hidden;position:relative;transition:transform .6s ease,width .6s ease,background-color .6s ease;width:100%}[dir=rtl] .g-progress__item{float:right}.g-progress__item_theme_default{--_--filled-background-color:var(--g-color-base-neutral-medium)}.g-progress__item_theme_success{--_--filled-background-color:var(--g-color-base-positive-medium)}.g-progress__item_theme_warning{--_--filled-background-color:var(--g-color-base-warning-medium)}.g-progress__item_theme_danger{--_--filled-background-color:var(--g-color-base-danger-medium)}.g-progress__item_theme_info{--_--filled-background-color:var(--g-color-base-info-medium)}.g-progress__item_theme_misc{--_--filled-background-color:var(--g-color-base-misc-medium)}.g-progress__item_loading{animation:g-loading-animation .5s linear infinite;background-clip:padding-box;background-image:repeating-linear-gradient(-45deg,#ffffff4d,#ffffff4d 4px,#0000 0,#0000 8px);background-size:150%}.g-progress__stack{color:var(--g-color-text-light-primary);margin:0 auto;overflow:hidden;position:relative;transition:transform .6s ease;width:100%}.g-progress_size_m,.g-progress_size_m .g-progress__stack{height:20px;line-height:20px}.g-progress_size_m .g-progress__text{height:20px;margin-block-end:-20px}.g-progress_size_s,.g-progress_size_s .g-progress__stack{height:10px;line-height:10px}.g-progress_size_xs,.g-progress_size_xs .g-progress__stack{height:4px;line-height:4px}.g-progress_size_s .g-progress__text,.g-progress_size_s .g-progress__text-inner,.g-progress_size_xs .g-progress__text,.g-progress_size_xs .g-progress__text-inner{display:none}.ydb-versions-grouped-node-tree_first-level{border:1px solid var(--g-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:auto 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(--g-color-base-background);border-right:1px solid var(--g-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(--g-color-base-background);border-right:1px solid var(--g-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 .ydb-tree-view{font-size:var(--g-text-body-2-font-size);line-height:var(--g-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 .g-progress__stack{cursor:pointer}.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(--g-color-line-generic-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(--g-color-base-simple-hover)}.ydb-tree-view__item:hover .ydb-tree-view__actions{display:flex}.ydb-tree-view__item_active{background-color:var(--g-color-base-selection);font-weight:700}.ydb-tree-view__item_active:hover{background-color:var(--g-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(--g-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{align-items:center;display:none;margin-left:6px}.ydb-tree-view__arrow{background:url('data:image/svg+xml;utf8,') no-repeat 50%;border:none;cursor:pointer;flex-shrink:0;height:24px;padding:0;width:24px}.g-root_theme_dark .ydb-tree-view__arrow{background:url('data:image/svg+xml;utf8,') no-repeat 50%}.ydb-tree-view__arrow:focus-visible{outline:2px solid var(--g-color-line-focus)}.ydb-tree-view__arrow:not(.ydb-tree-view__arrow_collapsed){transform:rotate(90deg)}.ydb-tree-view__arrow_hidden{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}.g-dropdown-menu__switcher-wrapper{display:inline-block}.g-dropdown-menu__switcher-button{display:flex}.g-dropdown-menu__menu-item_separator{border-block-start:1px solid var(--g-color-line-generic-solid);margin:.5em 0;pointer-events:none}.g-dropdown-menu__sub-menu-arrow{inset-inline-end:-4px;position:relative}.g-dropdown-menu__sub-menu{position:relative}.g-dropdown-menu__sub-menu .g-dropdown-menu__menu:after,.g-dropdown-menu__sub-menu .g-dropdown-menu__menu:before{content:"";height:100%;inset-block-start:0;position:absolute;width:10px}.g-dropdown-menu__sub-menu .g-dropdown-menu__menu:before{inset-inline-start:-10px}.g-dropdown-menu__sub-menu .g-dropdown-menu__menu:after{inset-inline-end:-10px}.g-menu{background-color:var(--g-color-base-float);box-sizing:border-box;color:var(--g-color-text-primary);display:block;font-size:var(--g-text-body-1-font-size);list-style:none;margin:0;outline:none;overflow:hidden auto;padding:0;-webkit-user-select:none;user-select:none}.g-menu__list-group-item+.g-menu__list-group-item,.g-menu__list-group-item+.g-menu__list-item,.g-menu__list-item+.g-menu__list-group-item{border-block-start:1px solid var(--g-color-line-generic)}.g-menu__item{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;color:var(--g-color-text-primary);display:flex;outline:none;text-decoration:none;touch-action:manipulation}.g-menu__item-icon{display:flex}.g-menu__item-icon-end{display:flex;margin-inline-end:0}.g-menu__item-content{flex-grow:1;min-width:0}.g-menu__item_interactive{cursor:pointer}.g-menu__item_interactive:focus-visible,.g-menu__item_interactive:hover{background-color:var(--g-color-base-simple-hover)}.g-menu__item_selected{background-color:var(--g-color-base-simple-hover)}.g-menu__item_disabled{color:var(--g-color-text-secondary);cursor:default;pointer-events:none}.g-menu__item_disabled:hover{background-color:initial}.g-menu__item_active{background-color:var(--g-color-base-selection);cursor:default}.g-menu__item_active:focus-visible,.g-menu__item_active:hover{background-color:var(--g-color-base-selection-hover)}.g-menu__item_theme_danger:not(.g-menu__item_disabled){color:var(--g-color-text-danger)}.g-menu__group-label{color:var(--g-color-text-hint);font-weight:var(--g-text-accent-font-weight)}.g-menu__group-list{list-style:none;margin:0;padding:0}.g-menu_size_s{line-height:24px;padding:3px 0}.g-menu_size_s .g-menu__group-label,.g-menu_size_s .g-menu__item{padding:0 10px}.g-menu_size_s .g-menu__item-icon{margin-inline-end:3px}.g-menu_size_s .g-menu__item-icon-end{margin-inline-start:3px}.g-menu_size_s .g-menu__list-group-item+.g-menu__list-group-item,.g-menu_size_s .g-menu__list-group-item+.g-menu__list-item,.g-menu_size_s .g-menu__list-item+.g-menu__list-group-item{margin-block-start:3px;padding-block-start:3px}.g-menu_size_m{line-height:24px;padding:4px 0}.g-menu_size_m .g-menu__group-label,.g-menu_size_m .g-menu__item{padding:0 13px}.g-menu_size_m .g-menu__item-icon{margin-inline-end:4px}.g-menu_size_m .g-menu__item-icon-end{margin-inline-start:4px}.g-menu_size_m .g-menu__list-group-item+.g-menu__list-group-item,.g-menu_size_m .g-menu__list-group-item+.g-menu__list-item,.g-menu_size_m .g-menu__list-item+.g-menu__list-group-item{margin-block-start:4px;padding-block-start:4px}.g-menu_size_l{line-height:28px;padding:5px 0}.g-menu_size_l .g-menu__group-label,.g-menu_size_l .g-menu__item{padding:0 15px}.g-menu_size_l .g-menu__item-icon{margin-inline-end:5px}.g-menu_size_l .g-menu__item-icon-end{margin-inline-start:5px}.g-menu_size_l .g-menu__list-group-item+.g-menu__list-group-item,.g-menu_size_l .g-menu__list-group-item+.g-menu__list-item,.g-menu_size_l .g-menu__list-item+.g-menu__list-group-item{margin-block-start:5px;padding-block-start:5px}.g-menu_size_xl{font-size:var(--g-text-body-2-font-size);line-height:36px;padding:6px 0}.g-menu_size_xl .g-menu__group-label,.g-menu_size_xl .g-menu__item{padding:0 15px}.g-menu_size_xl .g-menu__item-icon{margin-inline-end:6px}.g-menu_size_xl .g-menu__item-icon-end{margin-inline-start:6px}.g-menu_size_xl .g-menu__list-group-item:not(:first-child){margin-block-start:6px;padding-block-start:6px}.g-menu_size_xl .g-menu__list-group-item:not(:last-child){margin-block-end:6px;padding-block-end:6px}.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}.g-checkbox__indicator{cursor:inherit;display:inline-block;position:relative}.g-checkbox__indicator:before{background-color:initial;border:1px solid var(--g-color-line-generic-accent);border-radius:4px;content:"";inset:0;position:absolute;transition:background .1s linear}.g-checkbox__indicator:after{content:" ";visibility:hidden}.g-checkbox__icon{align-items:center;color:#0000;display:flex;inset:0;justify-content:center;pointer-events:none;position:absolute;transform:translateY(-5px);transition:color .1s,transform .2s;visibility:hidden}.g-checkbox__control{border:none;cursor:inherit;margin:0;opacity:0;outline:none;padding:0}.g-checkbox__control,.g-checkbox__outline{background:none;height:100%;inset-block-start:0;inset-inline-start:0;position:absolute;width:100%}.g-checkbox__outline{border-radius:4px;pointer-events:none}.g-checkbox__control:focus-visible+.g-checkbox__outline{outline:2px solid var(--g-color-line-focus)}.g-checkbox_size_m .g-checkbox__icon-svg_type_tick{height:10px;width:8px}.g-checkbox_size_m .g-checkbox__icon-svg_type_dash{height:12px;width:12px}.g-checkbox_size_m .g-checkbox__indicator{height:14px;width:14px}.g-checkbox_size_l .g-checkbox__icon-svg_type_tick{height:9px;width:11px}.g-checkbox_size_l .g-checkbox__icon-svg_type_dash{height:15px;width:15px}.g-checkbox_size_l .g-checkbox__indicator{height:17px;width:17px}.g-checkbox:hover .g-checkbox__indicator:before{border-color:var(--g-color-line-generic-accent-hover)}.g-checkbox_checked .g-checkbox__indicator:before,.g-checkbox_indeterminate .g-checkbox__indicator:before{background-color:var(--g-color-base-brand);border:#0000}.g-checkbox_checked .g-checkbox__icon,.g-checkbox_indeterminate .g-checkbox__icon{color:var(--g-color-text-brand-contrast);transform:translateX(0);visibility:visible}.g-checkbox_disabled .g-checkbox__indicator:before{background-color:var(--g-color-base-generic-accent-disabled);border:#0000}.g-checkbox_disabled.g-checkbox_checked .g-checkbox__indicator:before,.g-checkbox_disabled.g-checkbox_indeterminate .g-checkbox__indicator:before{background-color:var(--g-color-base-brand);opacity:.5}.ydb-info-viewer-skeleton{display:flex;flex-direction:column;gap:16px}.ydb-info-viewer-skeleton__row{align-items:flex-start;display:flex}.ydb-info-viewer-skeleton__row,.ydb-info-viewer-skeleton__row .g-skeleton{min-height:var(--g-text-body-2-font-size)}.ydb-info-viewer-skeleton__label{align-items:baseline;display:flex;flex:0 1 auto;width:200px}.ydb-info-viewer-skeleton__label__text{width:100px}.ydb-info-viewer-skeleton__label__dots{border-bottom:1px dotted var(--g-color-text-secondary);margin:0 2px;width:100px}.ydb-info-viewer-skeleton__value{max-width:20%;min-width:200px}.ydb-link-with-icon{align-items:center;display:flex;flex-wrap:nowrap;white-space:nowrap}.tablet-icon{border:1px solid;border-radius:4px;display:flex;font-size:10px;height:16px;justify-content:center;text-transform:uppercase;width:23px}.tablet-icon__type{line-height:14px}.tablet{border-color:var(--g-color-base-generic-medium-hover);color:var(--g-color-text-complementary);cursor:pointer}.tablet__wrapper{margin-bottom:2px;margin-right:2px}.tablet__wrapper:last-child{margin-right:0}.tablet__popup-content{padding:10px}.tablet_status_grey{background-color:var(--ydb-color-status-grey)}.tablet_status_yellow{background-color:var(--ydb-color-status-yellow)}.tablet_status_orange{background-color:var(--ydb-color-status-orange)}.tablet_status_red{background-color:var(--ydb-color-status-red)}.tablet_status_green{background-color:var(--ydb-color-status-green)}.tablet_status_blue{background-color:var(--ydb-color-status-blue)}.tablet_status_black{background-color:var(--ydb-color-status-black)}.tag{background:var(--g-color-base-generic);border-radius:3px;color:var(--g-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(--g-color-celestial-thunder)}.tags{align-items:center;display:flex;flex-wrap:wrap}.ydb-cluster-versions-bar{display:flex;flex-direction:column;width:600px}.ydb-cluster-versions-bar .g-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 .g-progress__stack{cursor:pointer}.cluster-info{padding-top:20px}.cluster-info__skeleton{margin-top:5px}.cluster-info__error{font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height)}.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__storage-groups-stats{display:flex;flex-direction:column;gap:11px}.cluster-info__groups-stats-bar{cursor:pointer}.cluster-info__groups-stats-popup-content{padding: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__header{left:0;padding:20px 0;position:-webkit-sticky;position:sticky}.cluster__title{font-size:var(--g-text-header-1-font-size);font-weight:var(--g-text-header-font-weight);line-height:var(--g-text-header-1-line-height)}.cluster__title-skeleton{height:var(--g-text-header-1-line-height);min-width:200px;width:20%}.cluster__tabs{left:0;position:-webkit-sticky;position:sticky}.kv-user{color:var(--g-color-text-primary);font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height)}.kv-user,.kv-user__name{display:inline-block}.kv-user__name:first-letter{color:var(--g-color-text-danger)}.g-action-tooltip{--g-popup-border-width:0;--g-popup-background-color:var(--g-color-base-float-heavy)}.g-action-tooltip__content{box-sizing:border-box;color:var(--g-color-text-light-primary);max-width:300px;padding:6px 12px}.g-action-tooltip__heading{align-items:baseline;display:flex;justify-content:space-between}.g-action-tooltip__title{color:var(--g-color-text-light-primary)}.g-action-tooltip__hotkey{margin-inline-start:8px}.g-action-tooltip__description{color:var(--g-color-text-light-secondary);margin-block-start:4px}.g-hotkey{border-radius:4px;padding:1px 5px}.g-hotkey,.g-hotkey kbd{font-family:var(--g-font-family-sans);font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height)}.g-hotkey_view_light{background-color:var(--g-color-base-generic)}.g-hotkey_view_light .g-hotkey__plus{color:var(--g-color-text-hint)}.g-hotkey_view_dark{background-color:var(--g-color-base-light-simple-hover);color:var(--g-color-text-light-complementary)}.g-hotkey_view_dark .g-hotkey__plus{color:var(--g-color-text-light-hint)}.clusters{display:flex;flex:1 1 auto;flex-direction:column;font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height);overflow:auto;padding-top:15px}.clusters__cluster{align-items:center;display:flex}.clusters__cluster-status{border-radius:3px;height:18px;margin-right:8px;width:18px}.clusters__cluster-status span{align-items:center;display:flex}.clusters__cluster-status_type_green{background-color:var(--ydb-color-status-green)}.clusters__cluster-status_type_yellow{background-color:var(--ydb-color-status-yellow)}.clusters__cluster-status_type_blue{background-color:var(--ydb-color-status-blue)}.clusters__cluster-status_type_red{background:var(--ydb-color-status-red)}.clusters__cluster-status_type_grey{background:var(--ydb-color-status-grey)}.clusters__cluster-status_type_orange{background:var(--ydb-color-status-orange)}.clusters__cluster-name{color:var(--g-color-text-link);text-decoration:none;white-space:normal}.clusters__cluster-versions{text-decoration:none}.clusters__cluster-version{overflow:hidden;text-overflow:ellipsis}.clusters__cluster-dc{white-space:normal}.clusters__controls{display:flex;margin-bottom:20px}.clusters__control{margin-right:15px;width:200px}.clusters__control_wide{width:300px}.clusters__empty-cell{color:var(--g-color-text-secondary)}.clusters__tooltip-content{word-break:break-all}.clusters .g-progress__item{transition:none}.clusters__aggregation,.clusters__controls{margin-left:15px}.clusters__aggregation{align-items:center;background:var(--g-color-base-generic-ultralight);border:1px solid var(--g-color-line-generic);border-radius:10px;display:flex;height:46px;margin-bottom:20px;padding:10px 20px;width:-webkit-max-content;width:max-content}.clusters__aggregation-value-container{align-items:center;display:flex;font-size:var(--g-text-subheader-3-font-size);line-height:var(--g-text-subheader-3-line-height);max-width:200px}.clusters__aggregation-value-container:not(:last-child){margin-right:30px}.clusters__aggregation-label{color:var(--g-color-text-complementary);font-weight:200;margin-right:8px}.clusters__text{color:var(--g-color-text-primary);font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height)}.clusters__text:first-letter{color:var(--g-color-text-danger)}.clusters__description{max-width:200px;white-space:pre-wrap}.clusters__table-wrapper{display:flex;flex:1 1 auto;flex-direction:column;overflow:auto;padding-left:5px}.clusters__table-content{height:100%;overflow:auto}.clusters__table .data-table__head-row:first-child .data-table__th:first-child,.clusters__table .data-table__td:first-child{background-color:var(--g-color-base-background);border-right:1px solid var(--g-color-line-generic);left:0;position:-webkit-sticky;position:sticky;z-index:2000}.clusters__table .data-table__row:hover .data-table__td:first-child{background-color:var(--ydb-data-table-color-hover)!important}.clusters__table .data-table__head-row:first-child .data-table__th:nth-child(0),.clusters__table .data-table__td:nth-child(0){border-right:initial;box-shadow:none}.clusters__table .data-table__head-row:first-child .data-table__th:first-child,.clusters__table .data-table__td:first-child{box-shadow:none}.clusters__balancer-cell{align-items:center;display:flex;flex-direction:row}.clusters__balancer-text{display:inline-block;margin-right:5px;max-width:92%;overflow:hidden;overflow-wrap:break-word!important;text-overflow:ellipsis}.clusters__balancer-icon{align-items:center;display:flex}.clusters__error{font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height);margin-left:15px}.g-table-column-setup__status{color:var(--g-color-text-secondary);margin-inline-start:5px}.g-inner-table-column-setup{display:inline-block}.g-inner-table-column-setup__controls{margin:var(--g-spacing-1) var(--g-spacing-1) 0}.g-list-container-view{box-sizing:border-box;outline:none;width:100%}.g-list-container-view_fixed-height{height:300px;height:var(--g-list-container-height,300px)}.g-list-container-view:not(.g-list-container-view_fixed-height){overflow:auto}.g-list-item-view{flex-shrink:0}.g-list-item-view__main-content{grid-gap:2px;grid-gap:var(--g-spacing-half,2px);display:grid;gap:2px;gap:var(--g-spacing-half,2px);width:100%}.g-list-item-view:hover.g-list-item-view_activeOnHover,.g-list-item-view_active{background:var(--g-color-base-simple-hover)}.g-list-item-view_clickable{cursor:pointer}.g-list-item-view_selected,.g-list-item-view_selected.g-list-item-view_active,.g-list-item-view_selected:hover.g-list-item-view_activeOnHover{background:var(--g-color-base-selection)}.g-list-item-view_dragging,.g-list-item-view_dragging.g-list-item-view_active,.g-list-item-view_dragging.g-list-item-view_selected{background:var(--g-color-base-simple-hover-solid)}.g-list-item-view_radius_s{border-radius:3px;border-radius:var(--g-list-item-border-radius,3px)}.g-list-item-view_radius_m{border-radius:5px;border-radius:var(--g-list-item-border-radius,5px)}.g-list-item-view_radius_l{border-radius:6px;border-radius:var(--g-list-item-border-radius,6px)}.g-list-item-view_radius_xl{border-radius:8px;border-radius:var(--g-list-item-border-radius,8px)}.g-list-item-view__icon,.g-list-item-view__slot{flex-shrink:0}.g-tree-select{max-width:100%}.g-tree-select_width_max{width:100%}.g-tree-select__popup{overflow:hidden;padding:4px 0}.g-tree-select__popup_size_s{border-radius:5px;border-radius:var(--g-list-container-border-radius,5px)}.g-tree-select__popup_size_m{border-radius:6px;border-radius:var(--g-list-container-border-radius,6px)}.g-tree-select__popup_size_l{border-radius:8px;border-radius:var(--g-list-container-border-radius,8px)}.g-tree-select__popup_size_xl{border-radius:10px;border-radius:var(--g-list-container-border-radius,10px)}.g-tree-select__list{padding:0 4px}.g-list-recursive-renderer{margin:0;padding:0}.header{border-bottom:1px solid var(--g-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{display:flex;margin-right:3px}.g-breadcrumbs__inner{align-items:center;display:inline-flex;gap:4px;min-height:24px;overflow:hidden;width:100%}.g-breadcrumbs__switcher{background:none;border:none;color:inherit;color:var(--g-color-text-secondary);cursor:pointer;font-family:var(--g-text-body-font-family);font-size:inherit;font-weight:var(--g-text-body-font-weight);outline:none;padding:0}.g-breadcrumbs__switcher:focus-visible{outline:2px solid var(--g-color-line-focus)}.g-breadcrumbs__item,.g-breadcrumbs__switcher{display:inline-block;flex-shrink:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.g-breadcrumbs__item:focus-visible,.g-breadcrumbs__switcher:focus-visible{border-radius:var(--g-focus-border-radius);outline:2px solid var(--g-color-line-focus)}.g-breadcrumbs_calculated_no .g-breadcrumbs__item{overflow:visible}.g-breadcrumbs__divider{align-items:center;color:var(--g-color-text-secondary);display:flex}.g-breadcrumbs__popup_staircase .g-menu .g-menu__list-item .g-menu__item{padding-inline-start:80px!important}.g-breadcrumbs__popup_staircase .g-menu .g-menu__list-item:nth-child(0) .g-menu__item{padding-inline-start:0!important}.g-breadcrumbs__popup_staircase .g-menu .g-menu__list-item:first-child .g-menu__item{padding-inline-start:8px!important}.g-breadcrumbs__popup_staircase .g-menu .g-menu__list-item:nth-child(2) .g-menu__item{padding-inline-start:16px!important}.g-breadcrumbs__popup_staircase .g-menu .g-menu__list-item:nth-child(3) .g-menu__item{padding-inline-start:24px!important}.g-breadcrumbs__popup_staircase .g-menu .g-menu__list-item:nth-child(4) .g-menu__item{padding-inline-start:32px!important}.g-breadcrumbs__popup_staircase .g-menu .g-menu__list-item:nth-child(5) .g-menu__item{padding-inline-start:40px!important}.g-breadcrumbs__popup_staircase .g-menu .g-menu__list-item:nth-child(6) .g-menu__item{padding-inline-start:48px!important}.g-breadcrumbs__popup_staircase .g-menu .g-menu__list-item:nth-child(7) .g-menu__item{padding-inline-start:56px!important}.g-breadcrumbs__popup_staircase .g-menu .g-menu__list-item:nth-child(8) .g-menu__item{padding-inline-start:64px!important}.g-breadcrumbs__popup_staircase .g-menu .g-menu__list-item:nth-child(9) .g-menu__item{padding-inline-start:72px!important}.g-breadcrumbs__popup_staircase .g-menu .g-menu__list-item:nth-child(10) .g-menu__item{padding-inline-start:80px!important}.basic-node-viewer__link,.link{color:var(--g-color-text-link);text-decoration:none}.basic-node-viewer__link:hover,.link:hover{color:var(--g-color-text-link-hover)}.basic-node-viewer{align-items:center;display:flex;font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height);margin:15px 0}.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{color:var(--g-color-text-hint);line-height:18px;margin-right:10px;white-space:nowrap}.basic-node-viewer__link{margin-left:5px}.ydb-pool-usage{font-size:var(--g-text-body-2-font-size);line-height:var(--g-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(--g-color-text-primary)}.ydb-pool-usage__value{align-items:center;display:flex}.ydb-pool-usage__threads{color:var(--g-color-text-hint);font-size:var(--g-text-body-1-font-size)}.ydb-pool-usage__percents{color:var(--g-color-text-primary);font-size:var(--g-text-body-1-font-size);margin-right:2px}.ydb-pool-usage__visual{align-items:center;background-color:var(--g-color-base-generic-accent);border-radius:4px;display:flex;font-size:var(--g-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(--ydb-color-status-green)}.ydb-pool-usage__usage-line_type_blue{background-color:var(--ydb-color-status-blue)}.ydb-pool-usage__usage-line_type_yellow{background-color:var(--ydb-color-status-yellow)}.ydb-pool-usage__usage-line_type_red{background-color:var(--ydb-color-status-red)}.full-node-viewer{font-size:var(--g-text-body-2-font-size);line-height:var(--g-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:100px}.full-node-viewer__section-title{font-weight:600;margin:15px 0 10px}.ydb-critical-dialog{width:400px}.ydb-critical-dialog__warning-icon{color:var(--ydb-color-status-yellow);margin-right:16px}.ydb-critical-dialog__error-icon{color:var(--ydb-color-status-red);height:24px;margin-right:16px}.ydb-critical-dialog__body{align-items:center;display:flex}.g-dialog{--_--side-padding:32px;--_--close-button-space:0px;display:flex;flex-direction:column;position:relative;width:var(--_--width);width:var(--g-dialog-width,var(--_--width))}.g-dialog_has-scroll{max-height:calc(100vh - 40px);max-height:calc(100vh - var(--g-modal-margin, 20px)*2);overflow-y:auto}.g-dialog_size_s{--_--width:480px}.g-dialog_size_m{--_--width:720px}.g-dialog_size_l{--_--width:900px}.g-dialog_has-close{--_--close-button-space:24px}.g-modal{-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:var(--g-color-sfx-veil);display:none;inset:0;margin:-9999px 0 0 -9999px;overflow:auto;position:fixed;visibility:hidden;z-index:1000}.g-modal__content-aligner{align-items:center;display:inline-flex;justify-content:center;min-height:100%;min-width:100%}.g-modal__content-wrapper{margin:20px;margin:var(--g-modal-margin,20px);overflow-x:hidden}.g-modal__content,.g-modal__content-wrapper{border-radius:5px;border-radius:var(--g-modal-border-radius,5px)}.g-modal__content{background-color:var(--g-color-base-modal)}.g-modal__content_has-scroll{max-height:calc(100vh - 40px);max-height:calc(100vh - var(--g-modal-margin, 20px)*2);overflow-y:auto}.g-modal,.g-modal__content{animation-fill-mode:forwards;animation-timing-function:ease-out;outline:none}.g-modal_exit_active,.g-modal_open{display:block;margin:0;visibility:visible}.g-modal_appear_active,.g-modal_enter_active{animation-duration:.15s;animation-name:g-modal-open}.g-modal_appear_active .g-modal__content,.g-modal_enter_active .g-modal__content{animation-duration:.15s;animation-name:g-modal-content-open}.g-modal_exit_active{animation-duration:.2s;animation-name:g-modal}@keyframes g-modal{0%{opacity:1}to{opacity:0}}@keyframes g-modal-open{0%{opacity:0}to{opacity:1}}@keyframes g-modal-content-open{0%{transform:scale(.75)}to{transform:scale(1)}}.g-dialog-btn-close{inset-block-start:14px;inset-inline-end:14px;position:absolute;z-index:1}.g-dialog-footer{align-items:center;display:flex;padding:28px var(--_--side-padding)}.g-dialog-footer__bts-wrapper{display:flex;gap:10px}.g-dialog-footer__children{align-items:center;display:flex;flex-grow:1;height:100%}.g-dialog-footer__button{min-width:128px;position:relative}.g-dialog-footer__error{color:var(--g-color-text-danger);padding:10px}.g-dialog-header{align-items:center;color:var(--g-color-text-primary);display:flex;justify-content:flex-start;line-height:24px;padding-block:20px 10px;padding-inline:var(--_--side-padding) calc(var(--_--side-padding) + var(--_--close-button-space)*var(--g-flow-is-ltr) + var(--_--close-button-space)*var(--g-flow-is-rtl))}.g-dialog-header__caption{font-size:var(--g-text-subheader-3-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-3-line-height)}.g-dialog-body{flex:1 1 auto;overflow-y:auto;padding:10px var(--_--side-padding)}.g-dialog-body_has-borders{border-block-end:1px solid var(--g-color-line-generic)}.g-dialog-body_has-borders,.g-dialog-divider{border-block-start:1px solid var(--g-color-line-generic)}.g-dialog-divider{margin:0 calc(var(--_--side-padding)*-1)}.ydb-pdisk-info__links,.ydb-vdisk-info__links{display:flex;flex-flow:row wrap;gap:12px}.kv-node-structure{display:flex;flex-shrink:0;flex:1 1 auto;flex-direction:column;font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height);overflow:auto;position:relative}.kv-node-structure__pdisk{border:1px solid var(--g-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(--g-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(--g-color-base-brand);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;max-width:none;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(--g-color-text-info)}.kv-node-structure__external-button{align-items:center;display:inline-flex;margin-left:4px;transform:translateY(-1px)}.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{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(--g-text-body-2-font-size);font-weight:500;line-height:var(--g-text-body-2-line-height);margin-right:16px;text-transform:uppercase}@keyframes onSelectedVdiskAnimation{0%{background-color:var(--g-color-base-info-light-hover)}}.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-disk-page-title{text-wrap:nowrap;align-items:baseline;display:flex;flex-flow:row nowrap;font-size:var(--g-text-header-2-font-size);line-height:var(--g-text-header-2-line-height)}.ydb-disk-page-title__prefix{color:var(--g-color-text-secondary);margin-right:6px}.ydb-disk-page-title__icon{margin-right:8px}.ydb-page-meta{text-wrap:nowrap;color:var(--g-color-text-primary);display:flex;flex-flow:row nowrap;font-size:var(--g-text-body-2-font-size);height:var(--g-text-body-2-line-height);line-height:var(--g-text-body-2-line-height)}.ydb-page-meta__skeleton{height:80%;width:80%}.ydb-pdisk-page{display:flex;flex-direction:column;gap:20px;height:100%;overflow:auto;padding-left:20px;padding-top:20px;position:relative}.ydb-pdisk-page__controls,.ydb-pdisk-page__groups-title,.ydb-pdisk-page__info,.ydb-pdisk-page__meta,.ydb-pdisk-page__title{left:0;position:-webkit-sticky;position:sticky}.ydb-pdisk-page__groups-title{font-size:var(--g-text-header-1-font-size);line-height:var(--g-text-header-1-line-height)}.link,.tablet-page__link{color:var(--g-color-text-link);text-decoration:none}.link:hover,.tablet-page__link:hover{color:var(--g-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(--g-text-body-2-font-size);line-height:var(--g-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(--g-text-body-2-font-size);font-weight:500;line-height:var(--g-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(--g-text-body-2-font-size);font-weight:500;line-height:var(--g-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(--g-text-body-1-font-size);line-height:var(--g-text-body-1-line-height);overflow:hidden}.tablets-filters__node-meta{color:var(--g-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}.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(--g-color-base-background);position:relative;z-index:10}.kv-split .gutter:after{background-color:var(--g-color-base-generic-ultralight);content:"";inset:0;position:absolute}.kv-split .gutter.active:after,.kv-split .gutter:hover:after{background-color:var(--g-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(--g-color-base-generic-hover);border-style:solid;border-width:1px 0;content:"";height:4px;left:50%;position:absolute;top: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(--g-color-base-generic-hover);border-style:solid;border-width:0 1px;content:"";height:16px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:4px}.histogram{display:flex;flex:1 1 auto}.histogram__chart{align-items:baseline;border-bottom:1px solid var(--g-color-base-generic);border-left:1px solid var(--g-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(--g-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(--g-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(--g-color-text-secondary);margin-right:5px}.heatmap__row{align-items:center}.heatmap__row_overall{margin:15px 20px}.heatmap__row_overall .g-progress{margin:0;width:300px}.heatmap__label{font-size:var(--g-text-body-2-font-size);font-weight:500;line-height:var(--g-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}.autorefresh-control,.schema-viewer__key-icon{align-items:center;display:flex}.autorefresh-control{gap:var(--g-spacing-1)}.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(--g-color-line-generic)}.speed-multimeter__bar{height:100%;min-width:2px}.speed-multimeter__bar_color_light{background:var(--g-color-base-info-medium)}.speed-multimeter__bar_color_dark{background:var(--g-color-base-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(--g-color-text-primary)}.speed-multimeter__popover-row_color_secondary{color:var(--g-color-text-secondary)}.ydb-diagnostics-consumers-topic-stats{font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height)}.ydb-diagnostics-consumers-topic-stats__wrapper{border-left:1px solid var(--g-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(--g-color-text-secondary);margin-bottom:4px}.ydb-diagnostics-consumers-topic-stats__value{align-items:center;display:flex;height:30px;justify-content:flex-start}.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-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-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 .data-table__head-row:first-child .data-table__th:first-child,.ydb-diagnostics-consumers__table .data-table__td:first-child{background-color:var(--g-color-base-background);border-right:1px solid var(--g-color-line-generic);left:0;position:-webkit-sticky;position:sticky;z-index:2000}.ydb-diagnostics-consumers__table .data-table__row:hover .data-table__td:first-child{background-color:var(--ydb-data-table-color-hover)!important}.ydb-diagnostics-consumers__table .data-table__head-row:first-child .data-table__th:nth-child(0),.ydb-diagnostics-consumers__table .data-table__td:nth-child(0){border-right:initial;box-shadow:none}.ydb-diagnostics-consumers__table .data-table__head-row:first-child .data-table__th:first-child,.ydb-diagnostics-consumers__table .data-table__td:first-child{box-shadow:none}.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(--g-font-family-monospace)!important;font-size:var(--g-text-code-1-font-size)!important;line-height:var(--g-text-code-1-line-height)!important}.kv-describe__tree .json-inspector__leaf_composite:before{color:var(--g-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(--g-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(--g-color-line-generic);border-radius:4px;margin-bottom:10px;width:300px}.kv-describe__tree .json-inspector__search{background:none;border:0 solid #0000;border-width:0 22px 0 8px;box-sizing:border-box;color:var(--g-color-text-primary);font-family:var(--g-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(--g-color-text-secondary)}.kv-describe__tree .json-inspector__line:hover:after{background:var(--g-color-base-simple-hover)}.kv-describe__tree .json-inspector__show-original:before{color:var(--g-color-text-secondary)}.kv-describe__tree .json-inspector__show-original:hover:after,.kv-describe__tree .json-inspector__show-original:hover:before{color:var(--g-color-text-primary)}.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:#0000000f}.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"}.ydb-external-data-source-info__location,.ydb-external-table-info__location{max-width:var(--tenant-object-info-max-value-width)}.ydb-async-replication-paths__title,.ydb-overview-topic-stats__title{font-size:var(--g-text-body-2-font-size);font-weight:600;line-height:var(--g-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(--g-text-body-2-font-size);font-weight:600;line-height:var(--g-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)}.ydb-metric-chart{border:1px solid var(--g-color-line-generic);border-radius:8px;display:flex;flex-direction:column;padding:16px 16px 8px}.ydb-metric-chart__title{margin-bottom:10px}.ydb-metric-chart__chart{display:flex;height:100%;overflow:hidden;position:relative;width:100%}.ydb-metric-chart__error{left:50%;position:absolute;text-align:center;top:10%;transform:translateX(-50%);z-index:1}.chartkit{height:100%;width:100%}.chartkit_mobile .chartkit-scrollable-node{max-height:3000px}.chartkit-theme_common{--highcarts-navigator-border:var(--g-color-line-generic);--highcarts-navigator-track:var(--g-color-base-generic);--highcarts-navigator-body:var(--g-color-scroll-handle);--highcharts-series-border:var(--g-color-base-background);--highcharts-grid-line:var(--g-color-line-generic);--highcharts-axis-line:var(--g-color-line-generic);--highcharts-tick:var(--g-color-line-generic);--highcharts-title:var(--g-color-text-primary);--highcharts-axis-labels:var(--g-color-text-secondary);--highcharts-data-labels:var(--g-color-text-secondary);--highcharts-plot-line-label:var(--g-color-text-secondary);--highcharts-legend-item:var(--g-color-text-secondary);--highcharts-legend-item-hover:var(--g-color-text-primary);--highcharts-legend-item-hidden:var(--g-color-text-hint);--highcharts-floating-bg:var(--g-color-infographics-tooltip-bg);--highcharts-tooltip-text:var(--g-color-text-primary);--highcharts-tooltip-bg:var(--highcharts-floating-bg);--highcharts-tooltip-alternate-bg:var(--g-color-base-generic);--highcharts-tooltip-text-complementary:var(--g-color-text-secondary);--highcharts-holiday-band:var(--g-color-base-generic);--d3-data-labels:var(--g-color-text-secondary)}.chartkit-loader{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.ydb-timeframe-selector{display:flex;gap:2px}.ydb-tenant-dashboard{margin-bottom:var(--diagnostics-section-margin);width:var(--diagnostics-section-table-width)}.ydb-tenant-dashboard__controls{margin-bottom:10px}.ydb-tenant-dashboard__charts{display:flex;flex-flow:row wrap;gap:16px}.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(--g-color-text-link);cursor:pointer;width:-webkit-max-content;width:max-content}.issue-tree-item__field_additional:hover{color:var(--g-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(--g-color-text-secondary)}.issue-tree{display:flex}.issue-tree__block{width:100%}.issue-tree__checkbox{margin:5px 0 10px}.issue-tree__info-panel{background:var(--g-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(--g-font-family-monospace)!important;font-size:var(--g-text-code-1-font-size)!important;line-height:var(--g-text-code-1-line-height)!important}.issue-tree__inspector .json-inspector__leaf_composite:before{color:var(--g-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(--g-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(--g-color-line-generic);border-radius:4px;margin-bottom:10px;width:300px}.issue-tree__inspector .json-inspector__search{background:none;border:0 solid #0000;border-width:0 22px 0 8px;box-sizing:border-box;color:var(--g-color-text-primary);font-family:var(--g-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(--g-color-text-secondary)}.issue-tree__inspector .json-inspector__line:hover:after{background:var(--g-color-base-simple-hover)}.issue-tree__inspector .json-inspector__show-original:before{color:var(--g-color-text-secondary)}.issue-tree__inspector .json-inspector__show-original:hover:after,.issue-tree__inspector .json-inspector__show-original:hover:before{color:var(--g-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:#0000}.issue-tree__inspector .json-inspector__show-original:hover:after,.issue-tree__inspector .json-inspector__show-original:hover:before{color:#0000}.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{display:flex}.healthcheck_expanded{min-width:885px}.healthcheck__issue-preview{margin-bottom:15px}.healthcheck__message-container{padding:15px 0}.healthcheck__details{width:872px}.healthcheck__details-content-wrapper{overflow-x:hidden}.healthcheck__preview{height:100%}.healthcheck__preview-header{gap:8px;margin-bottom:var(--diagnostics-section-title-margin)}.healthcheck__preview-title{color:var(--g-color-text-link);font-size:var(--g-text-subheader-3-font-size);font-weight:600;line-height:var(--g-text-subheader-3-line-height)}.healthcheck__preview-content{line-height:24px}.healthcheck__preview-title-wrapper{align-items:center;display:flex;gap:8px;margin-bottom:4px}.healthcheck__issues-statistics{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}.healthcheck__self-check-status-indicator{border-radius:4px;display:inline-block;font-size:13px;line-height:24px;padding:0 8px}.healthcheck__self-check-status-indicator_good,.healthcheck__self-check-status-indicator_green{background-color:var(--g-color-base-positive-light);color:var(--g-color-text-positive)}.healthcheck__self-check-status-indicator_degraded,.healthcheck__self-check-status-indicator_yellow{background-color:var(--g-color-base-warning-light);color:var(--g-color-text-warning)}.healthcheck__self-check-status-indicator_blue{background-color:var(--g-color-base-info-light);color:var(--g-color-text-info)}.healthcheck__self-check-status-indicator_emergency,.healthcheck__self-check-status-indicator_red{background-color:var(--g-color-base-danger-light);color:var(--g-color-text-danger)}.healthcheck__self-check-status-indicator_grey,.healthcheck__self-check-status-indicator_unspecified{background-color:var(--g-color-base-misc-light);color:var(--g-color-text-misc)}.healthcheck__self-check-status-indicator_maintenance_required,.healthcheck__self-check-status-indicator_orange{background-color:var(--g-color-base-warning-light);color:var(--g-color-text-warning-heavy)}.ydb-diagnostic-card{background-color:#0000;border:1px solid var(--g-color-line-generic);border-radius:8px;flex-shrink:0;padding:16px 16px 28px;width:206px}.ydb-diagnostic-card_active{background-color:var(--g-color-base-selection);border-color:var(--g-color-base-info-medium)}.ydb-diagnostic-card:hover{box-shadow:0 1px 5px var(--g-color-sfx-shadow);cursor:pointer}.ydb-metrics-card{min-height:252px}.ydb-metrics-card__header{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:10px}.ydb-metrics-card__label{color:var(--g-color-text-link);font-size:var(--g-text-subheader-3-font-size);font-weight:600;line-height:var(--g-text-subheader-3-line-height)}.ydb-metrics-card__content{color:var(--g-color-text-secondary);display:flex;flex-direction:column;gap:10px}.ydb-metrics-card__metric-title{height:var(--g-text-body-2-line-height)}.ydb-metrics-card_active .ydb-metrics-card__content{color:var(--g-color-text-complementary)}.metrics-cards{display:flex;gap:16px;margin-bottom:32px}.metrics-cards__tab{color:inherit;text-decoration:none}.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(--g-color-text-secondary)}.kv-truncated-query__popover-content{max-width:600px;overflow:hidden;white-space:pre}.kv-top-queries{display:flex;flex-direction:column;height:100%}.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__th{box-shadow:inset 0 -1px 0 0 var(--g-tabs-color-divider)}.kv-top-queries__search{width:238px}.kv-top-queries__row{cursor:pointer}.kv-top-queries__query{overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:pre-wrap;word-break:break-word}.kv-top-queries__user-sid{max-width:200px;overflow:hidden;text-overflow:ellipsis}.tenant-overview{height:100%;overflow:auto;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;gap:4px;line-height:24px;margin-bottom:10px}.tenant-overview__top-label{font-weight:600;gap:10px;line-height:24px;margin-bottom:var(--diagnostics-section-title-margin)}.tenant-overview__info{left:0;position:-webkit-sticky;position:sticky;width:-webkit-max-content;width:max-content}.tenant-overview__title{font-size:var(--g-text-body-2-font-size);font-weight:700;line-height:var(--g-text-body-2-line-height);margin-bottom:10px}.tenant-overview__table:not(:last-child){margin-bottom:var(--diagnostics-section-margin)}.tenant-overview__table th{height:40px;vertical-align:middle}.tenant-overview__top-queries-row{cursor:pointer}.tenant-overview__storage-info{margin-bottom:36px}.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:1;flex-shrink:0;min-width:300px}.kv-detailed-overview__modal .g-modal__content{position:relative}.kv-detailed-overview__close-modal-button{position:absolute;right:13px;top:23px}.ydb-hot-keys__primary-key-column{align-items:center;display:flex;gap:5px}.ydb-hot-keys__help-card{left:0;margin-bottom:20px;padding:20px 40px 20px 20px;position:-webkit-sticky;position:sticky}.ydb-hot-keys__help-card__close-button{position:absolute;right:5px;top:5px}.g-card{--_--background-color:#0000;--_--border-color:#0000;--_--border-width:0;--_--box-shadow:none;background-color:var(--_--background-color);background-color:var(--g-card-background-color,var(--_--background-color));border:var(--g-card-border-width,var(--_--border-width)) solid var(--g-card-border-color,var(--_--border-color));border-radius:var(--_--border-radius);border-radius:var(--g-card-border-radius,var(--_--border-radius));box-shadow:var(--_--box-shadow);box-shadow:var(--g-card-box-shadow,var(--_--box-shadow));box-sizing:border-box;outline:none}.g-card_theme_normal{--_--border-color:var(--g-color-line-generic);--_--background-color:var(--g-color-base-generic)}.g-card_theme_info{--_--border-color:var(--g-color-line-info);--_--background-color:var(--g-color-base-info-light)}.g-card_theme_success{--_--border-color:var(--g-color-line-positive);--_--background-color:var(--g-color-base-positive-light)}.g-card_theme_warning{--_--border-color:var(--g-color-line-warning);--_--background-color:var(--g-color-base-warning-light)}.g-card_theme_danger{--_--border-color:var(--g-color-line-danger);--_--background-color:var(--g-color-base-danger-light)}.g-card_theme_utility{--_--border-color:var(--g-color-line-utility);--_--background-color:var(--g-color-base-utility-light)}.g-card_view_clear,.g-card_view_outlined{--_--background-color:#0000}.g-card_view_outlined{--_--border-width:1px}.g-card_type_action{--_--background-color:var(--g-color-base-float);--_--box-shadow:0px 1px 5px var(--g-color-sfx-shadow)}.g-card_type_action:after{border-radius:var(--_--border-radius);border-radius:var(--g-card-border-radius,var(--_--border-radius));inset:0;pointer-events:none;position:absolute}.g-card_type_action.g-card_clickable{cursor:pointer;position:relative}.g-card_type_action.g-card_clickable:hover{--_--box-shadow:0px 3px 10px var(--g-color-sfx-shadow)}.g-card_type_action.g-card_clickable:focus-visible:after{content:"";outline:2px solid var(--g-color-line-focus)}.g-card_type_selection{--_--border-width:1px;--_--border-color:var(--g-color-line-generic);position:relative}.g-card_type_selection:before{inset:-1px}.g-card_type_selection:after,.g-card_type_selection:before{border-radius:var(--_--border-radius);border-radius:var(--g-card-border-radius,var(--_--border-radius));pointer-events:none;position:absolute}.g-card_type_selection:after{inset:0}.g-card_type_selection.g-card_clickable{cursor:pointer}.g-card_type_selection.g-card_clickable:hover{--_--border-color:#0000}.g-card_type_selection.g-card_clickable:hover:before{border:2px solid var(--g-color-line-brand);content:"";opacity:.5}.g-card_type_selection.g-card_clickable:hover:focus-visible:before{border-color:#0000}.g-card_type_selection.g-card_clickable:focus-visible:after{content:"";outline:2px solid var(--g-color-line-focus)}.g-card_type_selection.g-card_selected:not(.g-card_disabled){--_--border-color:#0000}.g-card_type_selection.g-card_selected:not(.g-card_disabled):before{border:2px solid var(--g-color-line-brand);content:""}.g-card_type_selection.g-card_view_clear{--_--border-color:#0000}.g-card_type_container.g-card_view_raised{--_--background-color:var(--g-color-base-float)}.g-card_type_container.g-card_view_raised.g-card_size_m{--_--box-shadow:0px 1px 5px var(--g-color-sfx-shadow)}.g-card_type_container.g-card_view_raised.g-card_size_l{--_--box-shadow:0px 1px 6px var(--g-color-sfx-shadow-light),1px 3px 13px var(--g-color-sfx-shadow-light)}.g-card_size_m{--_--border-radius:8px}.g-card_size_l{--_--border-radius:16px}.node-network{border:1px solid #0000;border-radius:4px;box-sizing:border-box;color:var(--g-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_grey{background:var(--ydb-color-status-grey)}.node-network_black{background-color:var(--ydb-color-status-black);color:var(--g-color-text-light-primary)}.node-network_green{background-color:var(--ydb-color-status-green)}.node-network_yellow{background-color:var(--ydb-color-status-yellow)}.node-network_red{background-color:var(--ydb-color-status-red)}.node-network:hover{border:1px solid var(--g-color-text-primary)}.network{font-size:var(--g-text-body-2-font-size);justify-content:space-between;line-height:var(--g-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(--g-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:#0000}.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(--g-color-base-generic-accent);color:var(--g-color-text-secondary);font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height);margin:0 0 15px}.network__link{color:var(--g-color-base-brand);text-decoration:none}.network__title{font-size:var(--g-text-body-1-font-size);font-weight:500;line-height:var(--g-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:#00000012;border-radius:4px;display:flex;flex-direction:column;margin-bottom:5px;margin-right:5px;padding:2px}.network__rack-column .node-network{margin-right:0}.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{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(--g-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-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 .data-table__head-row:first-child .data-table__th:first-child,.ydb-diagnostics-partitions__table .data-table__td:first-child{background-color:var(--g-color-base-background);border-right:1px solid var(--g-color-line-generic);left:0;position:-webkit-sticky;position:sticky;z-index:2000}.ydb-diagnostics-partitions__table .data-table__row:hover .data-table__td:first-child{background-color:var(--ydb-data-table-color-hover)!important}.ydb-diagnostics-partitions__table .data-table__head-row:first-child .data-table__th:nth-child(0),.ydb-diagnostics-partitions__table .data-table__td:nth-child(0){border-right:initial;box-shadow:none}.ydb-diagnostics-partitions__table .data-table__head-row:first-child .data-table__th:first-child,.ydb-diagnostics-partitions__table .data-table__td:first-child{box-shadow:none}.date-range__input{background:#0000;border:1px solid var(--g-color-line-generic);border-radius:var(--g-border-radius-m);color:var(--g-color-text-primary);height:28px;min-width:190px;outline:none;padding:5px 8px}.date-range__input:focus,.date-range__input:focus-visible{border:1px solid var(--g-color-line-generic-hover)}.top-shards__hint{left:0;position:-webkit-sticky;position:sticky;width:-webkit-max-content;width:max-content}.kv-tenant-diagnostics{display:flex;flex-direction:column;height:100%;overflow:hidden}.kv-tenant-diagnostics__header-wrapper{background-color:var(--g-color-base-background);padding:13px 20px 16px}.kv-tenant-diagnostics__tabs{align-items:center;box-shadow:inset 0 -1px 0 0 var(--g-color-line-generic);display:flex;justify-content:space-between}.kv-tenant-diagnostics__tabs .g-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,.kv-tenant-diagnostics__page-wrapper .ydb-table-with-controls-layout .ydb-virtual-table__head{top:46px!important}.ydb-queries-history{display:flex;flex:1 1 auto;flex-direction:column;height:100%;overflow:auto;padding:0 16px}.ydb-queries-history__table-row{cursor:pointer}.ydb-queries-history__query{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:pre}.kv-pane-visibility-button_hidden{display:none}.kv-pane-visibility-button_bottom{transform:rotate(180deg)}.kv-pane-visibility-button_bottom.rotate{transform:rotate(0)}.kv-pane-visibility-button_left{transform:rotate(-90deg)}.kv-pane-visibility-button_left.rotate{transform:rotate(90deg)}.kv-pane-visibility-button_top.rotate{transform:rotate(180deg)}.kv-divider{background-color:var(--g-color-line-generic);height:100%;margin:0 4px;width:1px}.kv-fullscreen{background-color:var(--g-color-base-background);display:flex;flex-grow:1;inset:0;overflow:hidden;position:absolute;z-index:10}.kv-fullscreen__close-button{position:fixed;right:20px;top:8px;z-index:11}.kv-query-execution-status{align-items:center;color:var(--g-color-text-complementary);display:flex;gap:4px}.kv-query-execution-status__result-status-icon{color:var(--g-color-text-positive)}.kv-query-execution-status__result-status-icon_error{color:var(--g-color-text-danger)}.ydb-query-result-table__cell{cursor:pointer;display:inline-block;max-width:600px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.ydb-query-result-table__message{padding:15px 10px}.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(--g-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(--g-color-text-secondary);display:inline-block;padding-right:10px;text-align:left}.kv-issue__message{display:flex;font-family:var(--g-font-family-monospace);font-size:var(--g-text-code-2-font-size);line-height:var(--g-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(--g-color-text-complementary);flex:0 0 auto;font-size:12px;margin-left:1.5em;padding:3px 0}.kv-issue__arrow-toggle{margin-right: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(--g-color-text-danger)}.yql-issue-severity_severity_warning .yql-issue-severity__icon{color:var(--g-color-text-warning)}.yql-issue-severity_severity_info .yql-issue-severity__icon{color:var(--g-color-text-info)}.yql-issue-severity__title{color:var(--g-color-text-complementary);margin-left:4px;text-transform:capitalize}.ydb-query-duration{align-items:center;color:var(--g-color-text-complementary);display:flex;margin-left:10px}.ydb-query-duration__item-with-popover{white-space:nowrap}.ydb-query-duration__popover{max-width:300px}.ydb-query-execute-result__result{display:flex;flex-direction:column;flex-grow:1;overflow:auto;padding-left:10px}.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__th{box-shadow:inset 0 -1px 0 0 var(--g-tabs-color-divider)}.ydb-query-execute-result__result .data-table__table-wrapper{padding-bottom:0}.ydb-query-execute-result__result-fullscreen-wrapper{display:flex;flex-direction:column;width:100%}.ydb-query-execute-result__result-tabs{padding-left:10px}.ydb-query-execute-result__error{padding:15px 10px}.ydb-query-execute-result__controls{align-items:center;background-color:var(--g-color-base-background);border-bottom:1px solid var(--g-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__inspector{font-family:var(--g-font-family-monospace)!important;font-size:var(--g-text-code-1-font-size)!important;line-height:var(--g-text-code-1-line-height)!important;padding:15px 10px}.ydb-query-execute-result__inspector .json-inspector__leaf_composite:before{color:var(--g-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(--g-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(--g-color-line-generic);border-radius:4px;margin-bottom:10px;width:300px}.ydb-query-execute-result__inspector .json-inspector__search{background:none;border:0 solid #0000;border-width:0 22px 0 8px;box-sizing:border-box;color:var(--g-color-text-primary);font-family:var(--g-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(--g-color-text-secondary)}.ydb-query-execute-result__inspector .json-inspector__line:hover:after{background:var(--g-color-base-simple-hover)}.ydb-query-execute-result__inspector .json-inspector__show-original:before{color:var(--g-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(--g-color-text-primary)}.ydb-query-execute-result__inspector_fullscreen{height:100%;overflow:auto;padding:10px;width:100%}.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(--g-color-base-background);border-bottom:1px solid var(--g-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__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(--g-font-family-monospace)!important;font-size:var(--g-text-code-1-font-size)!important;line-height:var(--g-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(--g-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(--g-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(--g-color-line-generic);border-radius:4px;margin-bottom:10px;width:300px}.ydb-query-explain-result__inspector .json-inspector__search{background:none;border:0 solid #0000;border-width:0 22px 0 8px;box-sizing:border-box;color:var(--g-color-text-primary);font-family:var(--g-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(--g-color-text-secondary)}.ydb-query-explain-result__inspector .json-inspector__line:hover:after{background:var(--g-color-base-simple-hover)}.ydb-query-explain-result__inspector .json-inspector__show-original:before{color:var(--g-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(--g-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-preview{display:flex;flex:1 1 auto;flex-direction:column;height:100%}.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__th{box-shadow:inset 0 -1px 0 0 var(--g-tabs-color-divider)}.kv-preview__header{align-items:center;background-color:var(--g-color-base-background);border-bottom:1px solid var(--g-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(--g-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-left:10px;width:100%}.kv-fullscreen .kv-preview__result{height: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(--g-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(--g-color-text-danger);content:"*"}.kv-save-query__control-wrapper{display:flex;flex-direction:column;flex-grow:1}.kv-save-query__error{color:var(--g-color-text-danger);display:inline-block;height:17px}.kv-save-query__embedded-tooltip{align-items:center;color:var(--g-color-text-secondary);display:flex;height:100%;margin-left:-10px}.kv-save-query__embedded-tooltip:hover{color:var(--g-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}.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__mode-selector__button{margin-left:2px;width:241px}.ydb-query-editor-controls__mode-selector__button-content{align-items:center;display:flex;justify-content:space-between;width:215px}.ydb-query-editor-controls__mode-selector__popup{width:241px}.ydb-query-editor-controls__item-with-popover{align-items:center;display:flex;height:24px;line-height:normal}.ydb-query-editor-controls__popover{max-width:420px;white-space:pre-wrap}.query-editor{display:flex;flex:1 1 auto;flex-direction:column;height:100%;position:relative}.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__th{box-shadow:inset 0 -1px 0 0 var(--g-tabs-color-divider)}.query-editor__monaco{border:1px solid var(--g-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(--g-color-base-background);display:flex;flex-direction:column;z-index:2}.query-editor__pane-wrapper_top{border-bottom:1px solid var(--g-color-line-generic);padding:0 16px}.ydb-saved-queries{display:flex;flex:1 1 auto;flex-direction:column;height:100%;overflow:auto;padding:0 16px}.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}.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}.object-general{display:flex;flex-direction:column;flex-grow:1;height:100%;max-height:100%;width:100%}.object-general__loader{display:flex}.ydb-acl__result{align-self:flex-start}.ydb-acl__owner-container{background-color:var(--g-color-base-background);padding-bottom:16px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.ydb-navigation-tree-view-loader{align-items:center;display:flex;height:24px;justify-content:center;width:20px}.g-spin{animation:g-spin 1s linear infinite;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:inline-block}.g-spin__inner{border:2px solid var(--g-color-line-brand);border-end-end-radius:25px;border-inline-start:none;border-start-end-radius:25px;box-sizing:border-box;height:100%;margin-inline-start:50%;width:50%}.g-spin_size_xs{height:16px;width:16px}.g-spin_size_s{height:24px;width:24px}.g-spin_size_m{height:28px;width:28px}.g-spin_size_l{height:32px;width:32px}.g-spin_size_xl{height:36px;width:36px}@keyframes g-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ydb-navigation-tree-view-error{color:var(--g-color-text-danger)}.ydb-navigation-tree-view-empty{color:var(--g-color-text-secondary);font-style:italic}.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(--g-color-base-background);position:absolute;right:5px;top:19px}.object-summary__action-button_hidden{visibility:hidden}.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(--g-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__info-controls{display:flex;gap:4px}.object-summary__info-action-button{background-color:var(--g-color-base-background)}.object-summary__info-action-button_hidden{display:none}.object-summary__rotated90{transform:rotate(-90deg)}.object-summary__rotated180{transform:rotate(180deg)}.object-summary__rotated270{transform:rotate(90deg)}.object-summary__info-header{align-items:center;border-bottom:1px solid var(--g-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(--g-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:#0000;padding:3px 0}.tenant-page{flex:1 1 auto;font-size:var(--g-text-body-2-font-size);line-height:var(--g-text-body-2-line-height);overflow:hidden}.tenant-page,.ydb-vdisk-page{display:flex;flex-direction:column}.ydb-vdisk-page{gap:20px;height:100%;overflow:auto;padding-left:20px;padding-top:20px;position:relative}.ydb-vdisk-page__group-title{font-size:var(--g-text-header-1-font-size);line-height:var(--g-text-header-1-line-height)}.ydb-vdisk-page__group-disks{display:flex;flex-flow:row wrap;flex-grow:1;gap:10px;margin-top:20px}.ydb-vdisk-page__group-disk{width:150px}.link{color:var(--g-color-text-link);text-decoration:none}.link_external{margin-right:10px}.link:hover{color:var(--g-color-text-link-hover)}*{font-feature-settings:"tnum";box-sizing:border-box;font-variant-numeric:tabular-nums}.g-select-popup__tick-icon{box-sizing:initial}#root,body,html{box-sizing:border-box;height:100%;margin:0;overflow:auto;padding:0}:root{--g-color-base-yellow-light:#ffc70026;--g-color-base-yellow-medium:#ffdb4d66;--data-table-row-height:40px}.g-root{--ydb-data-table-color-hover:var(--g-color-base-float-hover);--ydb-color-status-grey:var(--g-color-base-neutral-heavy);--ydb-color-status-green:var(--g-color-base-positive-heavy);--ydb-color-status-yellow:var(--g-color-base-warning-heavy);--ydb-color-status-orange:#ff922e;--ydb-color-status-red:var(--g-color-base-danger-heavy);--ydb-color-status-blue:var(--g-color-base-info-heavy);--ydb-color-status-black:var(--g-color-base-misc-heavy)}:is(#tab,.g-tabs-item_active .g-tabs-item__title){color:var(--g-color-text-primary)!important}:is(#tab,.g-tabs-item__title){color:var(--g-color-text-secondary)}.gn-aside-header__pane-container{height:100%}.gn-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(--g-text-body-2-font-size);line-height:var(--g-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}.error{color:var(--g-color-text-danger)}.data-table__row:hover .clipboard-button,.ydb-tree-view__item:hover .clipboard-button,.ydb-virtual-table__row:hover .clipboard-button{opacity:1}.g-root .data-table_highlight-rows .data-table__row:hover{background:var(--ydb-data-table-color-hover)}.g-table-column-setup__item{cursor:pointer!important;padding:0 8px 0 32px!important}.app_embedded{font-family:Rubik,sans-serif}.g-popup{max-width:500px}.kv-navigation__internal-user{align-items:center;display:flex;justify-content:space-between;line-height:var(--g-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__ydb-user-wrapper{padding:10px;width:300px}.kv-monitoring-button{display:none}.data-table__row:hover .kv-monitoring-button,.kv-monitoring-button_visible{display:inline-block}.extended-cluster{display:flex;height:100%}.extended-cluster__balancer{align-items:center;display:flex;flex-direction:row}.extended-cluster__clipboard-button{margin-left:5px}.g-root{--g-text-header-font-weight:500;--g-text-subheader-font-weight:500;--g-text-display-font-weight:500;--g-text-accent-font-weight:500}.g-root_theme_light{--g-color-base-background:#fff;--g-color-base-brand:var(--g-color-private-blue-550-solid);--g-color-base-brand-hover:var(--g-color-private-blue-600-solid);--g-color-base-selection:var(--g-color-private-blue-100);--g-color-base-selection-hover:var(--g-color-private-blue-200);--g-color-line-brand:var(--g-color-private-blue-550-solid);--g-color-text-brand:var(--g-color-private-blue-600-solid);--g-color-text-brand-heavy:var(--g-color-private-blue-700-solid);--g-color-text-brand-contrast:var(--g-color-text-light-primary);--g-color-text-link:var(--g-color-private-blue-600-solid);--g-color-text-link-hover:var(--g-color-private-blue-800-solid);--g-color-private-white-50:#ffffff0d;--g-color-private-white-70:#ffffff12;--g-color-private-white-100:#ffffff1a;--g-color-private-white-150:#ffffff26;--g-color-private-white-200:#fff3;--g-color-private-white-250:#ffffff40;--g-color-private-white-300:#ffffff4d;--g-color-private-white-350:#ffffff59;--g-color-private-white-400:#fff6;--g-color-private-white-450:#ffffff73;--g-color-private-white-500:#ffffff80;--g-color-private-white-550:#ffffff8c;--g-color-private-white-600:#fff9;--g-color-private-white-650:#ffffffa6;--g-color-private-white-700:#ffffffb3;--g-color-private-white-750:#ffffffbf;--g-color-private-white-800:#fffc;--g-color-private-white-850:#ffffffd9;--g-color-private-white-900:#ffffffe6;--g-color-private-white-950:#fffffff2;--g-color-private-white-1000-solid:#fff;--g-color-private-black-50:#0000000d;--g-color-private-black-70:#00000012;--g-color-private-black-100:#0000001a;--g-color-private-black-150:#00000026;--g-color-private-black-200:#0003;--g-color-private-black-250:#00000040;--g-color-private-black-300:#0000004d;--g-color-private-black-350:#00000059;--g-color-private-black-400:#0006;--g-color-private-black-450:#00000073;--g-color-private-black-500:#00000080;--g-color-private-black-550:#0000008c;--g-color-private-black-600:#0009;--g-color-private-black-650:#000000a6;--g-color-private-black-700:#000000b3;--g-color-private-black-750:#000000bf;--g-color-private-black-800:#000c;--g-color-private-black-850:#000000d9;--g-color-private-black-900:#000000e6;--g-color-private-black-950:#000000f2;--g-color-private-black-20-solid:#fafafa;--g-color-private-black-50-solid:#f2f2f2;--g-color-private-black-100-solid:#e5e5e5;--g-color-private-black-150-solid:#d9d9d9;--g-color-private-black-200-solid:#ccc;--g-color-private-black-250-solid:#bfbfbf;--g-color-private-black-300-solid:#b3b3b3;--g-color-private-black-350-solid:#a6a6a6;--g-color-private-black-400-solid:#999;--g-color-private-black-450-solid:#8c8c8c;--g-color-private-black-500-solid:grey;--g-color-private-black-550-solid:#737373;--g-color-private-black-600-solid:#666;--g-color-private-black-650-solid:#595959;--g-color-private-black-700-solid:#4c4c4c;--g-color-private-black-750-solid:#404040;--g-color-private-black-800-solid:#333;--g-color-private-black-850-solid:#262626;--g-color-private-black-900-solid:#1a1a1a;--g-color-private-black-950-solid:#0d0d0d;--g-color-private-black-1000-solid:#000;--g-color-private-blue-50:#5282ff1a;--g-color-private-blue-100:#5282ff26;--g-color-private-blue-150:#5282ff33;--g-color-private-blue-200:#5282ff4d;--g-color-private-blue-250:#5282ff66;--g-color-private-blue-300:#5282ff80;--g-color-private-blue-350:#5282ff99;--g-color-private-blue-400:#5282ffb3;--g-color-private-blue-450:#5282ffcc;--g-color-private-blue-500:#5282ffe6;--g-color-private-blue-50-solid:#eef3ff;--g-color-private-blue-100-solid:#e5ecff;--g-color-private-blue-150-solid:#dce6ff;--g-color-private-blue-200-solid:#cbdaff;--g-color-private-blue-250-solid:#bacdff;--g-color-private-blue-300-solid:#a8c1ff;--g-color-private-blue-350-solid:#97b4ff;--g-color-private-blue-400-solid:#86a8ff;--g-color-private-blue-450-solid:#749bff;--g-color-private-blue-500-solid:#638fff;--g-color-private-blue-550-solid:#5282ff;--g-color-private-blue-600-solid:#4e79eb;--g-color-private-blue-650-solid:#4a71d6;--g-color-private-blue-700-solid:#4768c2;--g-color-private-blue-750-solid:#4360ad;--g-color-private-blue-800-solid:#3f5799;--g-color-private-blue-850-solid:#3c4f85;--g-color-private-blue-900-solid:#384670;--g-color-private-blue-950-solid:#343d5c;--g-color-private-blue-1000-solid:#333952;--g-color-private-green-50:#3bc9351a;--g-color-private-green-100:#3bc93526;--g-color-private-green-150:#3bc93533;--g-color-private-green-200:#3bc9354d;--g-color-private-green-250:#3bc93566;--g-color-private-green-300:#3bc93580;--g-color-private-green-350:#3bc93599;--g-color-private-green-400:#3bc935b3;--g-color-private-green-450:#3bc935cc;--g-color-private-green-500:#3bc935e6;--g-color-private-green-50-solid:#ebfaeb;--g-color-private-green-100-solid:#e2f7e1;--g-color-private-green-150-solid:#d8f4d7;--g-color-private-green-200-solid:#c4efc2;--g-color-private-green-250-solid:#b1e9ae;--g-color-private-green-300-solid:#9de49a;--g-color-private-green-350-solid:#89df86;--g-color-private-green-400-solid:#76d972;--g-color-private-green-450-solid:#62d45d;--g-color-private-green-500-solid:#4fce49;--g-color-private-green-550-solid:#3bc935;--g-color-private-green-600-solid:#3ab935;--g-color-private-green-650-solid:#38aa35;--g-color-private-green-700-solid:#379a34;--g-color-private-green-750-solid:#358a34;--g-color-private-green-800-solid:#347b34;--g-color-private-green-850-solid:#336b34;--g-color-private-green-900-solid:#315b34;--g-color-private-green-950-solid:#304b33;--g-color-private-green-1000-solid:#2f4433;--g-color-private-yellow-50:#ffdb4d1a;--g-color-private-yellow-100:#ffdb4d26;--g-color-private-yellow-150:#ffdb4d33;--g-color-private-yellow-200:#ffdb4d4d;--g-color-private-yellow-250:#ffdb4d66;--g-color-private-yellow-300:#ffdb4d80;--g-color-private-yellow-350:#ffdb4d99;--g-color-private-yellow-400:#ffdb4db3;--g-color-private-yellow-450:#ffdb4dcc;--g-color-private-yellow-500:#ffdb4de6;--g-color-private-yellow-50-solid:#fffbed;--g-color-private-yellow-100-solid:#fffae4;--g-color-private-yellow-150-solid:#fff8db;--g-color-private-yellow-200-solid:#fff4ca;--g-color-private-yellow-250-solid:#fff1b8;--g-color-private-yellow-300-solid:#ffeda6;--g-color-private-yellow-350-solid:#ffe994;--g-color-private-yellow-400-solid:#ffe682;--g-color-private-yellow-450-solid:#ffe271;--g-color-private-yellow-500-solid:#ffdf5f;--g-color-private-yellow-550-solid:#ffdb4d;--g-color-private-yellow-600-solid:#eac94a;--g-color-private-yellow-650-solid:#d5b848;--g-color-private-yellow-700-solid:#c0a645;--g-color-private-yellow-750-solid:#ab9543;--g-color-private-yellow-800-solid:#968340;--g-color-private-yellow-850-solid:#81723d;--g-color-private-yellow-900-solid:#6c603b;--g-color-private-yellow-950-solid:#574f38;--g-color-private-yellow-1000-solid:#4d4637;--g-color-private-orange-50:#ff77001a;--g-color-private-orange-100:#ff770026;--g-color-private-orange-150:#f703;--g-color-private-orange-200:#ff77004d;--g-color-private-orange-250:#f706;--g-color-private-orange-300:#ff770080;--g-color-private-orange-350:#f709;--g-color-private-orange-400:#ff7700b3;--g-color-private-orange-450:#f70c;--g-color-private-orange-500:#ff7700e6;--g-color-private-orange-50-solid:#fff1e6;--g-color-private-orange-100-solid:#ffebd9;--g-color-private-orange-150-solid:#ffe4cc;--g-color-private-orange-200-solid:#ffd6b3;--g-color-private-orange-250-solid:#ffc999;--g-color-private-orange-300-solid:#ffbb80;--g-color-private-orange-350-solid:#ffad66;--g-color-private-orange-400-solid:#ffa04c;--g-color-private-orange-450-solid:#ff9233;--g-color-private-orange-500-solid:#ff851a;--g-color-private-orange-550-solid:#f70;--g-color-private-orange-600-solid:#ea7005;--g-color-private-orange-650-solid:#d5680a;--g-color-private-orange-700-solid:#c0600f;--g-color-private-orange-750-solid:#ab5914;--g-color-private-orange-800-solid:#965119;--g-color-private-orange-850-solid:#814a1f;--g-color-private-orange-900-solid:#6c4324;--g-color-private-orange-950-solid:#573b29;--g-color-private-orange-1000-solid:#4d372b;--g-color-private-red-50:#ff04001a;--g-color-private-red-100:#ff040026;--g-color-private-red-150:#ff040033;--g-color-private-red-200:#ff04004d;--g-color-private-red-250:#ff040066;--g-color-private-red-300:#ff040080;--g-color-private-red-350:#ff040099;--g-color-private-red-400:#ff0400b3;--g-color-private-red-450:#ff0400cc;--g-color-private-red-500:#ff0400e6;--g-color-private-red-50-solid:#ffe6e6;--g-color-private-red-100-solid:#ffd9d9;--g-color-private-red-150-solid:#ffcdcc;--g-color-private-red-200-solid:#ffb4b3;--g-color-private-red-250-solid:#ff9b99;--g-color-private-red-300-solid:#ff8280;--g-color-private-red-350-solid:#ff6966;--g-color-private-red-400-solid:#ff504c;--g-color-private-red-450-solid:#ff3733;--g-color-private-red-500-solid:#ff1e1a;--g-color-private-red-550-solid:#ff0400;--g-color-private-red-600-solid:#ea0805;--g-color-private-red-650-solid:#d50c0a;--g-color-private-red-700-solid:#c0100f;--g-color-private-red-750-solid:#ab1414;--g-color-private-red-800-solid:#961819;--g-color-private-red-850-solid:#811c1f;--g-color-private-red-900-solid:#6c2024;--g-color-private-red-950-solid:#572429;--g-color-private-red-1000-solid:#4d262b;--g-color-private-purple-50:#8f52cc1a;--g-color-private-purple-100:#8f52cc26;--g-color-private-purple-150:#8f52cc33;--g-color-private-purple-200:#8f52cc4d;--g-color-private-purple-250:#8f52cc66;--g-color-private-purple-300:#8f52cc80;--g-color-private-purple-350:#8f52cc99;--g-color-private-purple-400:#8f52ccb3;--g-color-private-purple-450:#8f52cccc;--g-color-private-purple-500:#8f52cce6;--g-color-private-purple-50-solid:#f4eefa;--g-color-private-purple-100-solid:#eee5f7;--g-color-private-purple-150-solid:#e9dcf5;--g-color-private-purple-200-solid:#ddcbf0;--g-color-private-purple-250-solid:#d2baeb;--g-color-private-purple-300-solid:#c7a9e6;--g-color-private-purple-350-solid:#bc97e0;--g-color-private-purple-400-solid:#b186db;--g-color-private-purple-450-solid:#a575d6;--g-color-private-purple-500-solid:#9a63d1;--g-color-private-purple-550-solid:#8f52cc;--g-color-private-purple-600-solid:#854ebd;--g-color-private-purple-650-solid:#7b4aad;--g-color-private-purple-700-solid:#72479e;--g-color-private-purple-750-solid:#68438f;--g-color-private-purple-800-solid:#5e3f80;--g-color-private-purple-850-solid:#543b70;--g-color-private-purple-900-solid:#4a3761;--g-color-private-purple-950-solid:#413452;--g-color-private-purple-1000-solid:#3c324a;--g-color-private-cool-grey-50:#6b84991a;--g-color-private-cool-grey-100:#6b849926;--g-color-private-cool-grey-150:#6b849933;--g-color-private-cool-grey-200:#6b84994d;--g-color-private-cool-grey-250:#6b849966;--g-color-private-cool-grey-300:#6b849980;--g-color-private-cool-grey-350:#6b849999;--g-color-private-cool-grey-400:#6b8499b3;--g-color-private-cool-grey-450:#6b8499cc;--g-color-private-cool-grey-500:#6b8499e6;--g-color-private-cool-grey-50-solid:#f0f3f5;--g-color-private-cool-grey-100-solid:#e9edf0;--g-color-private-cool-grey-150-solid:#e1e6eb;--g-color-private-cool-grey-200-solid:#d3dae0;--g-color-private-cool-grey-250-solid:#c4ced6;--g-color-private-cool-grey-300-solid:#b5c1cc;--g-color-private-cool-grey-350-solid:#a6b5c2;--g-color-private-cool-grey-400-solid:#97a9b8;--g-color-private-cool-grey-450-solid:#899dad;--g-color-private-cool-grey-500-solid:#7a90a3;--g-color-private-cool-grey-550-solid:#6b8499;--g-color-private-cool-grey-600-solid:#657b8f;--g-color-private-cool-grey-650-solid:#5f7285;--g-color-private-cool-grey-700-solid:#586a7a;--g-color-private-cool-grey-750-solid:#526170;--g-color-private-cool-grey-800-solid:#4c5866;--g-color-private-cool-grey-850-solid:#464f5c;--g-color-private-cool-grey-900-solid:#404652;--g-color-private-cool-grey-950-solid:#393e47;--g-color-private-cool-grey-1000-solid:#363942}.g-root_theme_light-hc{--g-color-base-background:#fff;--g-color-base-brand:var(--g-color-private-blue-600-solid);--g-color-base-brand-hover:var(--g-color-private-blue-800-solid);--g-color-base-selection:var(--g-color-private-blue-250);--g-color-base-selection-hover:var(--g-color-private-blue-350);--g-color-line-brand:var(--g-color-private-blue-600-solid);--g-color-text-brand:var(--g-color-private-blue-650-solid);--g-color-text-brand-heavy:var(--g-color-private-blue-900-solid);--g-color-text-brand-contrast:var(--g-color-text-light-primary);--g-color-text-link:var(--g-color-private-blue-650-solid);--g-color-text-link-hover:var(--g-color-private-blue-850-solid);--g-color-private-white-50:#ffffff0d;--g-color-private-white-70:#ffffff12;--g-color-private-white-100:#ffffff1a;--g-color-private-white-150:#ffffff26;--g-color-private-white-200:#fff3;--g-color-private-white-250:#ffffff40;--g-color-private-white-300:#ffffff4d;--g-color-private-white-350:#ffffff59;--g-color-private-white-400:#fff6;--g-color-private-white-450:#ffffff73;--g-color-private-white-500:#ffffff80;--g-color-private-white-550:#ffffff8c;--g-color-private-white-600:#fff9;--g-color-private-white-650:#ffffffa6;--g-color-private-white-700:#ffffffb3;--g-color-private-white-750:#ffffffbf;--g-color-private-white-800:#fffc;--g-color-private-white-850:#ffffffd9;--g-color-private-white-900:#ffffffe6;--g-color-private-white-950:#fffffff2;--g-color-private-white-1000-solid:#fff;--g-color-private-black-50:#0000000d;--g-color-private-black-100:#0000001a;--g-color-private-black-150:#00000026;--g-color-private-black-200:#0003;--g-color-private-black-250:#00000040;--g-color-private-black-300:#0000004d;--g-color-private-black-350:#00000059;--g-color-private-black-400:#0006;--g-color-private-black-450:#00000073;--g-color-private-black-500:#00000080;--g-color-private-black-550:#0000008c;--g-color-private-black-600:#0009;--g-color-private-black-650:#000000a6;--g-color-private-black-700:#000000b3;--g-color-private-black-750:#000000bf;--g-color-private-black-800:#000c;--g-color-private-black-850:#000000d9;--g-color-private-black-900:#000000e6;--g-color-private-black-950:#000000f2;--g-color-private-black-50-solid:#f2f2f2;--g-color-private-black-100-solid:#e5e5e5;--g-color-private-black-150-solid:#d9d9d9;--g-color-private-black-200-solid:#ccc;--g-color-private-black-250-solid:#bfbfbf;--g-color-private-black-300-solid:#b3b3b3;--g-color-private-black-350-solid:#a6a6a6;--g-color-private-black-400-solid:#999;--g-color-private-black-450-solid:#8c8c8c;--g-color-private-black-500-solid:grey;--g-color-private-black-550-solid:#737373;--g-color-private-black-600-solid:#666;--g-color-private-black-650-solid:#595959;--g-color-private-black-700-solid:#4c4c4c;--g-color-private-black-750-solid:#404040;--g-color-private-black-800-solid:#333;--g-color-private-black-850-solid:#262626;--g-color-private-black-900-solid:#1a1a1a;--g-color-private-black-950-solid:#0d0d0d;--g-color-private-black-1000-solid:#000;--g-color-private-blue-50:#5282ff1a;--g-color-private-blue-100:#5282ff26;--g-color-private-blue-150:#5282ff33;--g-color-private-blue-200:#5282ff4d;--g-color-private-blue-250:#5282ff66;--g-color-private-blue-300:#5282ff80;--g-color-private-blue-350:#5282ff99;--g-color-private-blue-400:#5282ffb3;--g-color-private-blue-450:#5282ffcc;--g-color-private-blue-500:#5282ffe6;--g-color-private-blue-50-solid:#eef3ff;--g-color-private-blue-100-solid:#e5ecff;--g-color-private-blue-150-solid:#dce6ff;--g-color-private-blue-200-solid:#cbdaff;--g-color-private-blue-250-solid:#bacdff;--g-color-private-blue-300-solid:#a8c1ff;--g-color-private-blue-350-solid:#97b4ff;--g-color-private-blue-400-solid:#86a8ff;--g-color-private-blue-450-solid:#749bff;--g-color-private-blue-500-solid:#638fff;--g-color-private-blue-550-solid:#5282ff;--g-color-private-blue-600-solid:#4d79e9;--g-color-private-blue-650-solid:#486fd4;--g-color-private-blue-700-solid:#4366be;--g-color-private-blue-750-solid:#3f5ca8;--g-color-private-blue-800-solid:#3a5393;--g-color-private-blue-850-solid:#35497d;--g-color-private-blue-900-solid:#304067;--g-color-private-blue-950-solid:#2c3651;--g-color-private-blue-1000-solid:#293147;--g-color-private-green-50:#3bc9351a;--g-color-private-green-100:#3bc93526;--g-color-private-green-150:#3bc93533;--g-color-private-green-200:#3bc9354d;--g-color-private-green-250:#3bc93566;--g-color-private-green-300:#3bc93580;--g-color-private-green-350:#3bc93599;--g-color-private-green-400:#3bc935b3;--g-color-private-green-450:#3bc935cc;--g-color-private-green-500:#3bc935e6;--g-color-private-green-50-solid:#ebfaeb;--g-color-private-green-100-solid:#e2f7e1;--g-color-private-green-150-solid:#d8f4d7;--g-color-private-green-200-solid:#c4efc2;--g-color-private-green-250-solid:#b1e9ae;--g-color-private-green-300-solid:#9de49a;--g-color-private-green-350-solid:#89df86;--g-color-private-green-400-solid:#76d972;--g-color-private-green-450-solid:#62d45d;--g-color-private-green-500-solid:#4fce49;--g-color-private-green-550-solid:#3bc935;--g-color-private-green-600-solid:#38b833;--g-color-private-green-650-solid:#36a832;--g-color-private-green-700-solid:#339730;--g-color-private-green-750-solid:#31872f;--g-color-private-green-800-solid:#2f762e;--g-color-private-green-850-solid:#2c652c;--g-color-private-green-900-solid:#29552b;--g-color-private-green-950-solid:#274429;--g-color-private-green-1000-solid:#263c28;--g-color-private-yellow-50:#ffdb4d1a;--g-color-private-yellow-100:#ffdb4d26;--g-color-private-yellow-150:#ffdb4d33;--g-color-private-yellow-200:#ffdb4d4d;--g-color-private-yellow-250:#ffdb4d66;--g-color-private-yellow-300:#ffdb4d80;--g-color-private-yellow-350:#ffdb4d99;--g-color-private-yellow-400:#ffdb4db3;--g-color-private-yellow-450:#ffdb4dcc;--g-color-private-yellow-500:#ffdb4de6;--g-color-private-yellow-50-solid:#fffbed;--g-color-private-yellow-100-solid:#fffae4;--g-color-private-yellow-150-solid:#fff8db;--g-color-private-yellow-200-solid:#fff4ca;--g-color-private-yellow-250-solid:#fff1b8;--g-color-private-yellow-300-solid:#ffeda6;--g-color-private-yellow-350-solid:#ffe994;--g-color-private-yellow-400-solid:#ffe682;--g-color-private-yellow-450-solid:#ffe271;--g-color-private-yellow-500-solid:#ffdf5f;--g-color-private-yellow-550-solid:#ffdb4d;--g-color-private-yellow-600-solid:#e9c949;--g-color-private-yellow-650-solid:#d3b645;--g-color-private-yellow-700-solid:#bda441;--g-color-private-yellow-750-solid:#a7913d;--g-color-private-yellow-800-solid:#907f3a;--g-color-private-yellow-850-solid:#7a6d36;--g-color-private-yellow-900-solid:#645a32;--g-color-private-yellow-950-solid:#4e482e;--g-color-private-yellow-1000-solid:#433f2c;--g-color-private-orange-50:#ff77001a;--g-color-private-orange-100:#ff770026;--g-color-private-orange-150:#f703;--g-color-private-orange-200:#ff77004d;--g-color-private-orange-250:#f706;--g-color-private-orange-300:#ff770080;--g-color-private-orange-350:#f709;--g-color-private-orange-400:#ff7700b3;--g-color-private-orange-450:#f70c;--g-color-private-orange-500:#ff7700e6;--g-color-private-orange-50-solid:#fff1e6;--g-color-private-orange-100-solid:#ffebd9;--g-color-private-orange-150-solid:#ffe4cc;--g-color-private-orange-200-solid:#ffd6b3;--g-color-private-orange-250-solid:#ffc999;--g-color-private-orange-300-solid:#ffbb80;--g-color-private-orange-350-solid:#ffad66;--g-color-private-orange-400-solid:#ffa04c;--g-color-private-orange-450-solid:#ff9233;--g-color-private-orange-500-solid:#ff851a;--g-color-private-orange-550-solid:#f70;--g-color-private-orange-600-solid:#e96f04;--g-color-private-orange-650-solid:#d36608;--g-color-private-orange-700-solid:#bd5e0b;--g-color-private-orange-750-solid:#a7550f;--g-color-private-orange-800-solid:#904d13;--g-color-private-orange-850-solid:#7a4517;--g-color-private-orange-900-solid:#643c1b;--g-color-private-orange-950-solid:#4e341e;--g-color-private-orange-1000-solid:#433020;--g-color-private-red-50:#ff04001a;--g-color-private-red-100:#ff040026;--g-color-private-red-150:#ff040033;--g-color-private-red-200:#ff04004d;--g-color-private-red-250:#ff040066;--g-color-private-red-300:#ff040080;--g-color-private-red-350:#ff040099;--g-color-private-red-400:#ff0400b3;--g-color-private-red-450:#ff0400cc;--g-color-private-red-500:#ff0400e6;--g-color-private-red-50-solid:#ffe6e6;--g-color-private-red-100-solid:#ffd9d9;--g-color-private-red-150-solid:#ffcdcc;--g-color-private-red-200-solid:#ffb4b3;--g-color-private-red-250-solid:#ff9b99;--g-color-private-red-300-solid:#ff8280;--g-color-private-red-350-solid:#ff6966;--g-color-private-red-400-solid:#ff504c;--g-color-private-red-450-solid:#ff3733;--g-color-private-red-500-solid:#ff1e1a;--g-color-private-red-550-solid:#ff0400;--g-color-private-red-600-solid:#e90804;--g-color-private-red-650-solid:#d30b08;--g-color-private-red-700-solid:#bd0e0b;--g-color-private-red-750-solid:#a6110f;--g-color-private-red-800-solid:#901413;--g-color-private-red-850-solid:#7a1717;--g-color-private-red-900-solid:#641a1b;--g-color-private-red-950-solid:#4e1d1e;--g-color-private-red-1000-solid:#431e20;--g-color-private-purple-50:#8f52cc1a;--g-color-private-purple-100:#8f52cc26;--g-color-private-purple-150:#8f52cc33;--g-color-private-purple-200:#8f52cc4d;--g-color-private-purple-250:#8f52cc66;--g-color-private-purple-300:#8f52cc80;--g-color-private-purple-350:#8f52cc99;--g-color-private-purple-400:#8f52ccb3;--g-color-private-purple-450:#8f52cccc;--g-color-private-purple-500:#8f52cce6;--g-color-private-purple-50-solid:#f4eefa;--g-color-private-purple-100-solid:#eee5f7;--g-color-private-purple-150-solid:#e9dcf5;--g-color-private-purple-200-solid:#ddcbf0;--g-color-private-purple-250-solid:#d2baeb;--g-color-private-purple-300-solid:#c7a9e6;--g-color-private-purple-350-solid:#bc97e0;--g-color-private-purple-400-solid:#b186db;--g-color-private-purple-450-solid:#a575d6;--g-color-private-purple-500-solid:#9a63d1;--g-color-private-purple-550-solid:#8f52cc;--g-color-private-purple-600-solid:#844dbb;--g-color-private-purple-650-solid:#7949ab;--g-color-private-purple-700-solid:#6e449a;--g-color-private-purple-750-solid:#633f8a;--g-color-private-purple-800-solid:#593b79;--g-color-private-purple-850-solid:#4e3668;--g-color-private-purple-900-solid:#433158;--g-color-private-purple-950-solid:#382c47;--g-color-private-purple-1000-solid:#322a3f;--g-color-private-cool-grey-50:#6b84991a;--g-color-private-cool-grey-100:#6b849926;--g-color-private-cool-grey-150:#6b849933;--g-color-private-cool-grey-200:#6b84994d;--g-color-private-cool-grey-250:#6b849966;--g-color-private-cool-grey-300:#6b849980;--g-color-private-cool-grey-350:#6b849999;--g-color-private-cool-grey-400:#6b8499b3;--g-color-private-cool-grey-450:#6b8499cc;--g-color-private-cool-grey-500:#6b8499e6;--g-color-private-cool-grey-50-solid:#f0f3f5;--g-color-private-cool-grey-100-solid:#e9edf0;--g-color-private-cool-grey-150-solid:#e1e6eb;--g-color-private-cool-grey-200-solid:#d3dae0;--g-color-private-cool-grey-250-solid:#c4ced6;--g-color-private-cool-grey-300-solid:#b5c1cc;--g-color-private-cool-grey-350-solid:#a6b5c2;--g-color-private-cool-grey-400-solid:#97a9b8;--g-color-private-cool-grey-450-solid:#899dad;--g-color-private-cool-grey-500-solid:#7a90a3;--g-color-private-cool-grey-550-solid:#6b8499;--g-color-private-cool-grey-600-solid:#647a8e;--g-color-private-cool-grey-650-solid:#5c7182;--g-color-private-cool-grey-700-solid:#556776;--g-color-private-cool-grey-750-solid:#4e5d6b;--g-color-private-cool-grey-800-solid:#465360;--g-color-private-cool-grey-850-solid:#3f4a54;--g-color-private-cool-grey-900-solid:#384049;--g-color-private-cool-grey-950-solid:#31363d;--g-color-private-cool-grey-1000-solid:#2d3237}.g-root_theme_dark{--g-color-base-background:#2d2c33;--g-color-base-brand:var(--g-color-private-blue-450-solid);--g-color-base-brand-hover:var(--g-color-private-blue-600-solid);--g-color-base-selection:var(--g-color-private-blue-150);--g-color-base-selection-hover:var(--g-color-private-blue-200);--g-color-line-brand:var(--g-color-private-blue-550-solid);--g-color-text-brand:var(--g-color-private-blue-550-solid);--g-color-text-brand-heavy:var(--g-color-private-blue-600-solid);--g-color-text-brand-contrast:var(--g-color-text-light-primary);--g-color-text-link:var(--g-color-private-blue-550-solid);--g-color-text-link-hover:var(--g-color-private-blue-700-solid);--g-color-private-white-20:#ffffff05;--g-color-private-white-50:#ffffff0d;--g-color-private-white-70:#ffffff12;--g-color-private-white-100:#ffffff1a;--g-color-private-white-150:#ffffff26;--g-color-private-white-200:#fff3;--g-color-private-white-250:#ffffff40;--g-color-private-white-300:#ffffff4d;--g-color-private-white-350:#ffffff59;--g-color-private-white-400:#fff6;--g-color-private-white-450:#ffffff73;--g-color-private-white-500:#ffffff80;--g-color-private-white-550:#ffffff8c;--g-color-private-white-600:#fff9;--g-color-private-white-650:#ffffffa6;--g-color-private-white-700:#ffffffb3;--g-color-private-white-750:#ffffffbf;--g-color-private-white-800:#fffc;--g-color-private-white-850:#ffffffd9;--g-color-private-white-900:#ffffffe6;--g-color-private-white-950:#fffffff2;--g-color-private-white-20-solid:#313037;--g-color-private-white-50-solid:#38373d;--g-color-private-white-70-solid:#3c3b41;--g-color-private-white-100-solid:#424147;--g-color-private-white-150-solid:#4d4c52;--g-color-private-white-200-solid:#57565c;--g-color-private-white-250-solid:#616166;--g-color-private-white-300-solid:#6c6b70;--g-color-private-white-350-solid:#77767a;--g-color-private-white-400-solid:#818085;--g-color-private-white-450-solid:#8b8b8f;--g-color-private-white-500-solid:#969699;--g-color-private-white-550-solid:#a0a0a3;--g-color-private-white-600-solid:#ababad;--g-color-private-white-650-solid:#b6b5b8;--g-color-private-white-700-solid:#c0c0c2;--g-color-private-white-750-solid:#cacacc;--g-color-private-white-800-solid:#d5d5d6;--g-color-private-white-850-solid:#dfdfe0;--g-color-private-white-900-solid:#eaeaeb;--g-color-private-white-950-solid:#f5f5f5;--g-color-private-white-1000-solid:#fff;--g-color-private-white-opaque-150:#4c4b51f2;--g-color-private-black-20:#00000005;--g-color-private-black-50:#0000000d;--g-color-private-black-100:#0000001a;--g-color-private-black-150:#00000026;--g-color-private-black-200:#0003;--g-color-private-black-250:#00000040;--g-color-private-black-300:#0000004d;--g-color-private-black-350:#00000059;--g-color-private-black-400:#0006;--g-color-private-black-450:#00000073;--g-color-private-black-500:#00000080;--g-color-private-black-550:#0000008c;--g-color-private-black-600:#0009;--g-color-private-black-650:#000000a6;--g-color-private-black-700:#000000b3;--g-color-private-black-750:#000000bf;--g-color-private-black-800:#000c;--g-color-private-black-850:#000000d9;--g-color-private-black-900:#000000e6;--g-color-private-black-950:#000000f2;--g-color-private-black-1000-solid:#000;--g-color-private-black-rock-850:#2d2c33;--g-color-private-blue-50:#5282ff1a;--g-color-private-blue-100:#5282ff26;--g-color-private-blue-150:#5282ff33;--g-color-private-blue-200:#5282ff4d;--g-color-private-blue-250:#5282ff66;--g-color-private-blue-300:#5282ff80;--g-color-private-blue-350:#5282ff99;--g-color-private-blue-400:#5282ffb3;--g-color-private-blue-450:#5282ffcc;--g-color-private-blue-500:#5282ffe6;--g-color-private-blue-50-solid:#313547;--g-color-private-blue-100-solid:#333952;--g-color-private-blue-150-solid:#343d5c;--g-color-private-blue-200-solid:#384670;--g-color-private-blue-250-solid:#3c4e85;--g-color-private-blue-300-solid:#405799;--g-color-private-blue-350-solid:#4360ad;--g-color-private-blue-400-solid:#4768c2;--g-color-private-blue-450-solid:#4b71d6;--g-color-private-blue-500-solid:#4e79eb;--g-color-private-blue-550-solid:#5282ff;--g-color-private-blue-600-solid:#638fff;--g-color-private-blue-650-solid:#759bff;--g-color-private-blue-700-solid:#86a8ff;--g-color-private-blue-750-solid:#97b4ff;--g-color-private-blue-800-solid:#a9c1ff;--g-color-private-blue-850-solid:#bacdff;--g-color-private-blue-900-solid:#cbdaff;--g-color-private-blue-950-solid:#dce6ff;--g-color-private-blue-1000-solid:#e5ecff;--g-color-private-green-50:#5bb5571a;--g-color-private-green-100:#5bb55726;--g-color-private-green-150:#5bb55733;--g-color-private-green-200:#5bb5574d;--g-color-private-green-250:#5bb55766;--g-color-private-green-300:#5bb55780;--g-color-private-green-350:#5bb55799;--g-color-private-green-400:#5bb557b3;--g-color-private-green-450:#5bb557cc;--g-color-private-green-500:#5bb557e6;--g-color-private-green-50-solid:#323a37;--g-color-private-green-100-solid:#344138;--g-color-private-green-150-solid:#36473a;--g-color-private-green-200-solid:#3b553e;--g-color-private-green-250-solid:#3f6341;--g-color-private-green-300-solid:#447145;--g-color-private-green-350-solid:#497e49;--g-color-private-green-400-solid:#4d8c4c;--g-color-private-green-450-solid:#529a50;--g-color-private-green-500-solid:#56a753;--g-color-private-green-550-solid:#5bb557;--g-color-private-green-600-solid:#6bbc68;--g-color-private-green-650-solid:#7cc479;--g-color-private-green-700-solid:#8ccb89;--g-color-private-green-750-solid:#9dd39a;--g-color-private-green-800-solid:#addaab;--g-color-private-green-850-solid:#bde1bc;--g-color-private-green-900-solid:#cee9cd;--g-color-private-green-950-solid:#def0dd;--g-color-private-green-1000-solid:#e6f4e6;--g-color-private-yellow-50:#ffcb001a;--g-color-private-yellow-100:#ffcb0026;--g-color-private-yellow-150:#ffcb0033;--g-color-private-yellow-200:#ffcb004d;--g-color-private-yellow-250:#ffcb0066;--g-color-private-yellow-300:#ffcb0080;--g-color-private-yellow-350:#ffcb0099;--g-color-private-yellow-400:#ffcb00b3;--g-color-private-yellow-450:#ffcb00cc;--g-color-private-yellow-500:#ffcb00e6;--g-color-private-yellow-50-solid:#423c2e;--g-color-private-yellow-100-solid:#4d442b;--g-color-private-yellow-150-solid:#574c29;--g-color-private-yellow-200-solid:#6c5c24;--g-color-private-yellow-250-solid:#816c1f;--g-color-private-yellow-300-solid:#967c19;--g-color-private-yellow-350-solid:#ab8c14;--g-color-private-yellow-400-solid:#c09b0f;--g-color-private-yellow-450-solid:#d5ab0a;--g-color-private-yellow-500-solid:#e9ba04;--g-color-private-yellow-550-solid:#ffcb00;--g-color-private-yellow-600-solid:#ffd01a;--g-color-private-yellow-650-solid:#ffd533;--g-color-private-yellow-700-solid:#ffdb4c;--g-color-private-yellow-750-solid:#ffe066;--g-color-private-yellow-800-solid:#ffe580;--g-color-private-yellow-850-solid:#ffea99;--g-color-private-yellow-900-solid:#ffefb3;--g-color-private-yellow-950-solid:#fff5cc;--g-color-private-yellow-1000-solid:#fff7d9;--g-color-private-orange-50:#c8630c1a;--g-color-private-orange-100:#c8630c26;--g-color-private-orange-150:#c8630c33;--g-color-private-orange-200:#c8630c4d;--g-color-private-orange-250:#c8630c66;--g-color-private-orange-300:#c8630c80;--g-color-private-orange-350:#c8630c99;--g-color-private-orange-400:#c8630cb3;--g-color-private-orange-450:#c8630ccc;--g-color-private-orange-500:#c8630ce6;--g-color-private-orange-50-solid:#3d322f;--g-color-private-orange-100-solid:#44342d;--g-color-private-orange-150-solid:#4c372b;--g-color-private-orange-200-solid:#5c3d27;--g-color-private-orange-250-solid:#6b4223;--g-color-private-orange-300-solid:#7b4720;--g-color-private-orange-350-solid:#8a4d1c;--g-color-private-orange-400-solid:#995218;--g-color-private-orange-450-solid:#a95814;--g-color-private-orange-500-solid:#b95e10;--g-color-private-orange-550-solid:#c8630c;--g-color-private-orange-600-solid:#ce7324;--g-color-private-orange-650-solid:#d3823d;--g-color-private-orange-700-solid:#d89255;--g-color-private-orange-750-solid:#dea16d;--g-color-private-orange-800-solid:#e3b185;--g-color-private-orange-850-solid:#e9c19e;--g-color-private-orange-900-solid:#efd0b6;--g-color-private-orange-950-solid:#f4e0ce;--g-color-private-orange-1000-solid:#f7e8db;--g-color-private-red-50:#e849451a;--g-color-private-red-100:#e8494526;--g-color-private-red-150:#e8494533;--g-color-private-red-200:#e849454d;--g-color-private-red-250:#e8494566;--g-color-private-red-300:#e8494580;--g-color-private-red-350:#e8494599;--g-color-private-red-400:#e84945b3;--g-color-private-red-450:#e84945cc;--g-color-private-red-500:#e84945e6;--g-color-private-red-50-solid:#402f35;--g-color-private-red-100-solid:#493036;--g-color-private-red-150-solid:#523237;--g-color-private-red-200-solid:#653539;--g-color-private-red-250-solid:#78383a;--g-color-private-red-300-solid:#8a3a3c;--g-color-private-red-350-solid:#9d3d3e;--g-color-private-red-400-solid:#b04040;--g-color-private-red-450-solid:#c34341;--g-color-private-red-500-solid:#d54644;--g-color-private-red-550-solid:#e84945;--g-color-private-red-600-solid:#ea5b58;--g-color-private-red-650-solid:#ec6d6b;--g-color-private-red-700-solid:#ef7f7d;--g-color-private-red-750-solid:#f19290;--g-color-private-red-800-solid:#f3a4a2;--g-color-private-red-850-solid:#f6b6b5;--g-color-private-red-900-solid:#f8c8c7;--g-color-private-red-950-solid:#fadbda;--g-color-private-red-1000-solid:#fce4e3;--g-color-private-purple-50:#8f52cc1a;--g-color-private-purple-100:#8f52cc26;--g-color-private-purple-150:#8f52cc33;--g-color-private-purple-200:#8f52cc4d;--g-color-private-purple-250:#8f52cc66;--g-color-private-purple-300:#8f52cc80;--g-color-private-purple-350:#8f52cc99;--g-color-private-purple-400:#8f52ccb3;--g-color-private-purple-450:#8f52cccc;--g-color-private-purple-500:#8f52cce6;--g-color-private-purple-50-solid:#373042;--g-color-private-purple-100-solid:#3c324a;--g-color-private-purple-150-solid:#413452;--g-color-private-purple-200-solid:#4a3761;--g-color-private-purple-250-solid:#543b70;--g-color-private-purple-300-solid:#5e3f80;--g-color-private-purple-350-solid:#68438f;--g-color-private-purple-400-solid:#72479e;--g-color-private-purple-450-solid:#7b4aad;--g-color-private-purple-500-solid:#854ebd;--g-color-private-purple-550-solid:#8f52cc;--g-color-private-purple-600-solid:#9a63d1;--g-color-private-purple-650-solid:#a575d6;--g-color-private-purple-700-solid:#b186db;--g-color-private-purple-750-solid:#bc97e0;--g-color-private-purple-800-solid:#c7a9e6;--g-color-private-purple-850-solid:#d2baeb;--g-color-private-purple-900-solid:#ddcbf0;--g-color-private-purple-950-solid:#e9dcf5;--g-color-private-purple-1000-solid:#eee5f7;--g-color-private-cool-grey-50:#60809c1a;--g-color-private-cool-grey-100:#60809c26;--g-color-private-cool-grey-150:#60809c33;--g-color-private-cool-grey-200:#60809c4d;--g-color-private-cool-grey-250:#60809c66;--g-color-private-cool-grey-300:#60809c80;--g-color-private-cool-grey-350:#60809c99;--g-color-private-cool-grey-400:#60809cb3;--g-color-private-cool-grey-450:#60809ccc;--g-color-private-cool-grey-500:#60809ce6;--g-color-private-cool-grey-50-solid:#32343e;--g-color-private-cool-grey-100-solid:#353943;--g-color-private-cool-grey-150-solid:#373d48;--g-color-private-cool-grey-200-solid:#3c4552;--g-color-private-cool-grey-250-solid:#414e5d;--g-color-private-cool-grey-300-solid:#465667;--g-color-private-cool-grey-350-solid:#4c5e72;--g-color-private-cool-grey-400-solid:#51677d;--g-color-private-cool-grey-450-solid:#566f87;--g-color-private-cool-grey-500-solid:#5b7892;--g-color-private-cool-grey-550-solid:#60809c;--g-color-private-cool-grey-600-solid:#708da6;--g-color-private-cool-grey-650-solid:#8099b0;--g-color-private-cool-grey-700-solid:#90a6ba;--g-color-private-cool-grey-750-solid:#a0b3c3;--g-color-private-cool-grey-800-solid:#b0bfcd;--g-color-private-cool-grey-850-solid:#bfccd7;--g-color-private-cool-grey-900-solid:#cfd9e1;--g-color-private-cool-grey-950-solid:#dfe6eb;--g-color-private-cool-grey-1000-solid:#e7ecf0}.g-root_theme_dark-hc{--g-color-base-background:#222326;--g-color-base-brand:var(--g-color-private-blue-450-solid);--g-color-base-brand-hover:var(--g-color-private-blue-650-solid);--g-color-base-selection:var(--g-color-private-blue-250);--g-color-base-selection-hover:var(--g-color-private-blue-400);--g-color-line-brand:var(--g-color-private-blue-550-solid);--g-color-text-brand:var(--g-color-private-blue-650-solid);--g-color-text-brand-heavy:var(--g-color-private-blue-850-solid);--g-color-text-brand-contrast:var(--g-color-text-light-primary);--g-color-text-link:var(--g-color-private-blue-650-solid);--g-color-text-link-hover:var(--g-color-private-blue-800-solid);--g-color-private-white-50:#ffffff0d;--g-color-private-white-70:#ffffff12;--g-color-private-white-100:#ffffff1a;--g-color-private-white-150:#ffffff26;--g-color-private-white-200:#fff3;--g-color-private-white-250:#ffffff40;--g-color-private-white-300:#ffffff4d;--g-color-private-white-350:#ffffff59;--g-color-private-white-400:#fff6;--g-color-private-white-450:#ffffff73;--g-color-private-white-500:#ffffff80;--g-color-private-white-550:#ffffff8c;--g-color-private-white-600:#fff9;--g-color-private-white-650:#ffffffa6;--g-color-private-white-700:#ffffffb3;--g-color-private-white-750:#ffffffbf;--g-color-private-white-800:#fffc;--g-color-private-white-850:#ffffffd9;--g-color-private-white-900:#ffffffe6;--g-color-private-white-950:#fffffff2;--g-color-private-white-50-solid:#2d2e31;--g-color-private-white-100-solid:#38393c;--g-color-private-white-150-solid:#434447;--g-color-private-white-200-solid:#4e4f51;--g-color-private-white-250-solid:#595a5c;--g-color-private-white-300-solid:#646567;--g-color-private-white-350-solid:#6f7072;--g-color-private-white-400-solid:#7a7b7d;--g-color-private-white-450-solid:#858688;--g-color-private-white-500-solid:#909193;--g-color-private-white-550-solid:#9c9c9d;--g-color-private-white-600-solid:#a7a7a8;--g-color-private-white-650-solid:#b2b2b3;--g-color-private-white-700-solid:#bdbdbe;--g-color-private-white-750-solid:#c8c8c9;--g-color-private-white-800-solid:#d3d3d4;--g-color-private-white-850-solid:#dededf;--g-color-private-white-900-solid:#e9e9e9;--g-color-private-white-950-solid:#f4f4f4;--g-color-private-white-1000-solid:#fff;--g-color-private-white-opaque-150:#38393cf7;--g-color-private-black-20:#00000005;--g-color-private-black-50:#0000000d;--g-color-private-black-100:#0000001a;--g-color-private-black-150:#00000026;--g-color-private-black-200:#0003;--g-color-private-black-250:#00000040;--g-color-private-black-300:#0000004d;--g-color-private-black-350:#00000059;--g-color-private-black-400:#0006;--g-color-private-black-450:#00000073;--g-color-private-black-500:#00000080;--g-color-private-black-550:#0000008c;--g-color-private-black-600:#0009;--g-color-private-black-650:#000000a6;--g-color-private-black-700:#000000b3;--g-color-private-black-750:#000000bf;--g-color-private-black-800:#000c;--g-color-private-black-850:#000000d9;--g-color-private-black-900:#000000e6;--g-color-private-black-950:#000000f2;--g-color-private-black-1000-solid:#000;--g-color-private-black-rock-850:#2d2c33;--g-color-private-black-rock-950:#222326;--g-color-private-blue-50:#5282ff1a;--g-color-private-blue-100:#5282ff26;--g-color-private-blue-150:#5282ff33;--g-color-private-blue-200:#5282ff4d;--g-color-private-blue-250:#5282ff66;--g-color-private-blue-300:#5282ff80;--g-color-private-blue-350:#5282ff99;--g-color-private-blue-400:#5282ffb3;--g-color-private-blue-450:#5282ffcc;--g-color-private-blue-500:#5282ffe6;--g-color-private-blue-50-solid:#272d3c;--g-color-private-blue-100-solid:#293147;--g-color-private-blue-150-solid:#2c3651;--g-color-private-blue-200-solid:#304067;--g-color-private-blue-250-solid:#35497d;--g-color-private-blue-300-solid:#3a5393;--g-color-private-blue-350-solid:#3f5ca8;--g-color-private-blue-400-solid:#4466be;--g-color-private-blue-450-solid:#486fd4;--g-color-private-blue-500-solid:#4d79e9;--g-color-private-blue-550-solid:#5282ff;--g-color-private-blue-600-solid:#638fff;--g-color-private-blue-650-solid:#759bff;--g-color-private-blue-700-solid:#86a8ff;--g-color-private-blue-750-solid:#97b4ff;--g-color-private-blue-800-solid:#a9c1ff;--g-color-private-blue-850-solid:#bacdff;--g-color-private-blue-900-solid:#cbdaff;--g-color-private-blue-950-solid:#dce6ff;--g-color-private-blue-1000-solid:#e5ecff;--g-color-private-green-50:#5bb5571a;--g-color-private-green-100:#5bb55726;--g-color-private-green-150:#000;--g-color-private-green-200:#5bb5574d;--g-color-private-green-250:#5bb55766;--g-color-private-green-300:#5bb55780;--g-color-private-green-350:#5bb55799;--g-color-private-green-400:#5bb557b3;--g-color-private-green-450:#5bb557cc;--g-color-private-green-500:#5bb557e6;--g-color-private-green-50-solid:#28322b;--g-color-private-green-100-solid:#2b392d;--g-color-private-green-150-solid:#2d4030;--g-color-private-green-200-solid:#334f35;--g-color-private-green-250-solid:#395d3a;--g-color-private-green-300-solid:#3f6c3f;--g-color-private-green-350-solid:#447b43;--g-color-private-green-400-solid:#4a8948;--g-color-private-green-450-solid:#50984d;--g-color-private-green-500-solid:#55a652;--g-color-private-green-550-solid:#5bb557;--g-color-private-green-600-solid:#6bbc68;--g-color-private-green-650-solid:#7cc479;--g-color-private-green-700-solid:#8ccb89;--g-color-private-green-750-solid:#9dd39a;--g-color-private-green-800-solid:#addaab;--g-color-private-green-850-solid:#bde1bc;--g-color-private-green-900-solid:#cee9cd;--g-color-private-green-950-solid:#def0dd;--g-color-private-green-1000-solid:#e6f4e6;--g-color-private-yellow-50:#ffcb001a;--g-color-private-yellow-100:#ffcb0026;--g-color-private-yellow-150:#ffcb0033;--g-color-private-yellow-200:#ffcb004d;--g-color-private-yellow-250:#ffcb0066;--g-color-private-yellow-300:#ffcb0080;--g-color-private-yellow-350:#ffcb0099;--g-color-private-yellow-400:#ffcb00b3;--g-color-private-yellow-450:#ffcb00cc;--g-color-private-yellow-500:#ffcb00e6;--g-color-private-yellow-50-solid:#383422;--g-color-private-yellow-100-solid:#433c20;--g-color-private-yellow-150-solid:#4e451e;--g-color-private-yellow-200-solid:#64551b;--g-color-private-yellow-250-solid:#7a6617;--g-color-private-yellow-300-solid:#907713;--g-color-private-yellow-350-solid:#a7880f;--g-color-private-yellow-400-solid:#bd990b;--g-color-private-yellow-450-solid:#d3a908;--g-color-private-yellow-500-solid:#e9ba04;--g-color-private-yellow-550-solid:#ffcb00;--g-color-private-yellow-600-solid:#ffd01a;--g-color-private-yellow-650-solid:#ffd533;--g-color-private-yellow-700-solid:#ffdb4c;--g-color-private-yellow-750-solid:#ffe066;--g-color-private-yellow-800-solid:#ffe580;--g-color-private-yellow-850-solid:#ffea99;--g-color-private-yellow-900-solid:#ffefb3;--g-color-private-yellow-950-solid:#fff5cc;--g-color-private-yellow-1000-solid:#fff7d9;--g-color-private-orange-50:#c8630c1a;--g-color-private-orange-100:#c8630c26;--g-color-private-orange-150:#c8630c33;--g-color-private-orange-200:#c8630c4d;--g-color-private-orange-250:#c8630c66;--g-color-private-orange-300:#c8630c80;--g-color-private-orange-350:#c8630c99;--g-color-private-orange-400:#c8630cb3;--g-color-private-orange-450:#c8630ccc;--g-color-private-orange-500:#c8630ce6;--g-color-private-orange-50-solid:#332923;--g-color-private-orange-100-solid:#3b2d22;--g-color-private-orange-150-solid:#433021;--g-color-private-orange-200-solid:#54361e;--g-color-private-orange-250-solid:#643d1c;--g-color-private-orange-300-solid:#754319;--g-color-private-orange-350-solid:#864916;--g-color-private-orange-400-solid:#965014;--g-color-private-orange-450-solid:#a75611;--g-color-private-orange-500-solid:#b75d0f;--g-color-private-orange-550-solid:#c8630c;--g-color-private-orange-600-solid:#ce7324;--g-color-private-orange-650-solid:#d3823d;--g-color-private-orange-700-solid:#d89255;--g-color-private-orange-750-solid:#dea16d;--g-color-private-orange-800-solid:#e3b185;--g-color-private-orange-850-solid:#e9c19e;--g-color-private-orange-900-solid:#efd0b6;--g-color-private-orange-950-solid:#f4e0ce;--g-color-private-orange-1000-solid:#f7e8db;--g-color-private-red-50:#e849451a;--g-color-private-red-100:#e8494526;--g-color-private-red-150:#e8494533;--g-color-private-red-200:#e849454d;--g-color-private-red-250:#e8494566;--g-color-private-red-300:#e8494580;--g-color-private-red-350:#e8494599;--g-color-private-red-400:#e84945b3;--g-color-private-red-450:#e84945cc;--g-color-private-red-500:#e84945e6;--g-color-private-red-50-solid:#362729;--g-color-private-red-100-solid:#40292b;--g-color-private-red-150-solid:#4a2b2c;--g-color-private-red-200-solid:#5d2e2f;--g-color-private-red-250-solid:#713233;--g-color-private-red-300-solid:#853636;--g-color-private-red-350-solid:#993a39;--g-color-private-red-400-solid:#ac3d3c;--g-color-private-red-450-solid:#c0413f;--g-color-private-red-500-solid:#d44542;--g-color-private-red-550-solid:#e84945;--g-color-private-red-600-solid:#ea5b58;--g-color-private-red-650-solid:#ec6d6b;--g-color-private-red-700-solid:#ef7f7d;--g-color-private-red-750-solid:#f19290;--g-color-private-red-800-solid:#f3a4a2;--g-color-private-red-850-solid:#f6b6b5;--g-color-private-red-900-solid:#f8c8c7;--g-color-private-red-950-solid:#fadbda;--g-color-private-red-1000-solid:#fce4e3;--g-color-private-purple-50:#8f52cc1a;--g-color-private-purple-100:#8f52cc26;--g-color-private-purple-150:#8f52cc33;--g-color-private-purple-200:#8f52cc4d;--g-color-private-purple-250:#8f52cc66;--g-color-private-purple-300:#8f52cc80;--g-color-private-purple-350:#8f52cc99;--g-color-private-purple-400:#8f52ccb3;--g-color-private-purple-450:#8f52cccc;--g-color-private-purple-500:#8f52cce6;--g-color-private-purple-50-solid:#2d2837;--g-color-private-purple-100-solid:#322a3f;--g-color-private-purple-150-solid:#382c47;--g-color-private-purple-200-solid:#433158;--g-color-private-purple-250-solid:#4e3668;--g-color-private-purple-300-solid:#593b79;--g-color-private-purple-350-solid:#633f8a;--g-color-private-purple-400-solid:#6e449a;--g-color-private-purple-450-solid:#7949ab;--g-color-private-purple-500-solid:#844dbb;--g-color-private-purple-550-solid:#8f52cc;--g-color-private-purple-600-solid:#9a63d1;--g-color-private-purple-650-solid:#a575d6;--g-color-private-purple-700-solid:#b186db;--g-color-private-purple-750-solid:#bc97e0;--g-color-private-purple-800-solid:#c7a9e6;--g-color-private-purple-850-solid:#d2baeb;--g-color-private-purple-900-solid:#ddcbf0;--g-color-private-purple-950-solid:#e9dcf5;--g-color-private-purple-1000-solid:#eee5f7;--g-color-private-cool-grey-50:#60809c1a;--g-color-private-cool-grey-100:#60809c26;--g-color-private-cool-grey-150:#60809c33;--g-color-private-cool-grey-200:#60809c4d;--g-color-private-cool-grey-250:#60809c66;--g-color-private-cool-grey-300:#60809c80;--g-color-private-cool-grey-350:#60809c99;--g-color-private-cool-grey-400:#60809cb3;--g-color-private-cool-grey-450:#60809ccc;--g-color-private-cool-grey-500:#60809ce6;--g-color-private-cool-grey-50-solid:#282c32;--g-color-private-cool-grey-100-solid:#2b3138;--g-color-private-cool-grey-150-solid:#2e363e;--g-color-private-cool-grey-200-solid:#353f49;--g-color-private-cool-grey-250-solid:#3b4855;--g-color-private-cool-grey-300-solid:#415161;--g-color-private-cool-grey-350-solid:#475b6d;--g-color-private-cool-grey-400-solid:#4d6479;--g-color-private-cool-grey-450-solid:#546d84;--g-color-private-cool-grey-500-solid:#5a7790;--g-color-private-cool-grey-550-solid:#60809c;--g-color-private-cool-grey-600-solid:#708da6;--g-color-private-cool-grey-650-solid:#8099b0;--g-color-private-cool-grey-700-solid:#90a6ba;--g-color-private-cool-grey-750-solid:#a0b3c3;--g-color-private-cool-grey-800-solid:#b0bfcd;--g-color-private-cool-grey-850-solid:#bfccd7;--g-color-private-cool-grey-900-solid:#cfd9e1;--g-color-private-cool-grey-950-solid:#dfe6eb;--g-color-private-cool-grey-1000-solid:#e7ecf0}:root{--tenant-object-info-max-value-width:300px;--diagnostics-section-title-margin:20px;--diagnostics-section-margin:16px;--diagnostics-section-table-width:872px}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} \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/1058.3df06184.chunk.js b/ydb/core/viewer/monitoring/static/js/1058.3df06184.chunk.js deleted file mode 100644 index 8c45894167c1..000000000000 --- a/ydb/core/viewer/monitoring/static/js/1058.3df06184.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[1058],{11058:function(e,t,l){l.r(t),l.d(t,{ReactComponent:function(){return M}});var c,a,n,r,v,h,m,i,d,z,f,o,p,s=l(4519),u=["title","titleId"];function E(){return E=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(a[l]=e[l]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(c=0;c=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(a[l]=e[l])}return a}function y(e,t){var l=e.title,y=e.titleId,M=b(e,u);return s.createElement("svg",E({width:349,height:357,fill:"none",xmlns:"http://www.w3.org/2000/svg",ref:t,"aria-labelledby":y},M),l?s.createElement("title",{id:y},l):null,c||(c=s.createElement("path",{d:"M275.033 85.83c0 24.7-9.9 83.9-9.9 117.1 0 33.2 0 106.3-27.8 134.1-27.8 27.8-61.9 16.1-61.9 16.1s-46.7 13-76.3-14.8c-29.6-27.8-60.1-83.5-69.1-115.3-9.9-35-26.5-49.3-27.8-56.5-1.3-7.2 3.6-12.1 12.1-12.6 8.5-.4 22.9 4 34.5 22 11.6 18 17.5 26 23.8 35.9 6.3 9.9 20.6 23.3 20.6 23.3s.4-44.9 1.3-64.1c.9-19.3-1.8-111.7 1.8-132.3 3.6-20.6 26.5-20.2 28.7-4 2.2 16.1 8.8 66.8 9.8 79.8s3.7 44.4 3.7 44.4l7.6-2.7s-.9-105.8-.9-132.9c0-29.2 28.7-29.2 32.3-4 3.6 25.2 6.7 142.8 6.7 142.8l6.7 2.7s2.2-111.7 5.8-129.6c3.6-17.9 26.5-17.5 30.1 4.9 3.6 22.4 1.3 72.2.9 94.2s-.9 43.5-.9 43.5l5.4 4s11-73.3 14.4-99.1c3.7-27.8 28.4-21.5 28.4 3.1z",fill:"#ECF2F9"})),a||(a=s.createElement("path",{d:"M279.233 267.33l-216.9 12c-7.3.4-13.3-5.2-13.3-12.5V99.43c0-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:"#FF4645"})),n||(n=s.createElement("path",{d:"M191.333 140.128l-32.3-1.4c-1.9-.1-3.8.6-5.2 1.9l-24.3 22.8c-1.4 1.3-2.2 3.2-2.2 5.2v33.7c0 2 .8 3.8 2.2 5.2l24.3 22.8c1.4 1.3 3.3 2 5.2 1.9l32.3-1.4c1.8-.1 3.6-.9 4.9-2.2l21.5-22.8c1.2-1.3 1.9-3.1 1.9-4.9v-31c0-1.8-.7-3.6-1.9-4.9l-21.5-22.8c-1.3-1.3-3.1-2.1-4.9-2.1z",fill:"#fff"})),r||(r=s.createElement("path",{d:"M203.433 196.428l-58.1.6c-1.6 0-3-1.3-3-3v-17.2c0-1.6 1.3-3 3-3l58.1.6c1.6 0 2.9 1.3 2.9 3v16c0 1.7-1.3 3-2.9 3z",fill:"#FF4645"})),v||(v=s.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M74.733 104.63c0 3.4-2.7 6-6.1 5.8-3.4-.1-6.1-3-6.1-6.4 0-3.4 2.8-6 6.1-5.8 3.4.2 6.1 3 6.1 6.4zm19.7.9c0 3.3-2.7 5.9-6 5.8-3.3-.1-6-3-6-6.3s2.7-5.9 6-5.8c3.3.1 6 2.9 6 6.3zm13.4 6.498c3.2.2 5.8-2.4 5.8-5.7 0-3.3-2.6-6.1-5.8-6.2-3.3-.2-5.9 2.4-5.9 5.7 0 3.3 2.7 6.1 5.9 6.2z",fill:"#fff"})),h||(h=s.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M248.733 248.231h84.6v-62c0-22.5-18.3-40.7-40.7-40.7h-3.2c-22.5 0-40.7 18.3-40.7 40.7v62zm70.2-14.3h-56v-47.7c0-14.6 11.9-26.4 26.4-26.4h3.2c14.6 0 26.4 11.9 26.4 26.4v47.7z",fill:"#DEB700"})),m||(m=s.createElement("path",{d:"M340.533 206.43s-16.3-2.7-17.3-2.7l-78.6 1.1c-7 .1-13.7 6.5-13.7 13.1v58.6c0 4.7 2.9 8.5 7 10.1 1.5.6 3.1.9 4.8.9l12.5 2.3 7.6-3.7 60.4-4.3c6.2-.4 11.2-5.8 11.2-11.9v-43.3l6.1-20.2z",fill:"#DEB700"})),i||(i=s.createElement("path",{d:"M337.633 284.332l-79.6 5.7c-7 .5-12.7-4.4-12.7-11v-59.6c0-6.6 5.7-12 12.7-12.1l79.6-1.1c6.2-.1 11.2 4.8 11.2 10.9v55.4c-.1 6-5 11.3-11.2 11.8z",fill:"#FBC900"})),d||(d=s.createElement("path",{d:"M313.033 236.931c0-6.3-5.2-11.4-11.7-11.4-6.7 0-12.3 5.4-12.3 12 0 5 3.2 9.1 7.6 10.7v15.5c0 2.5 2.1 4.4 4.7 4.2 2.6-.2 4.6-2.5 4.6-4.9v-15.1c4.3-2.1 7.1-6.3 7.1-11z",fill:"#00236B"})),z||(z=s.createElement("path",{d:"M308.333 236.93c0-5.5-4-10.1-9.3-11.2-5.6 1.1-10 6-10 11.8 0 5 3.2 9.1 7.6 10.7v15.5c0 1.5.8 2.8 2 3.5 1.6-.9 2.6-2.5 2.6-4.3v-15.1c4.2-2 7.1-6.2 7.1-10.9z",fill:"#18123D"})),f||(f=s.createElement("path",{d:"M21.733 41.629a2 2 0 0 0-4 0h4zm-4 8.2a2 2 0 1 0 4 0h-4zm4 17.198a2 2 0 0 0-4 0h4zm-4 8.9a2 2 0 1 0 4 0h-4zm19.2-15.197a2 2 0 0 0 0-4v4zm-8.3-4a2 2 0 1 0 0 4v-4zm-17.8 4a2 2 0 0 0 0-4v4zm-8.3-4a2 2 0 1 0 0 4v-4zm15.2-15.101v8.2h4v-8.2h-4zm0 25.398v8.9h4v-8.9h-4zm19.2-10.297h-8.3v4h8.3v-4zm-26.1 0h-8.3v4h8.3v-4zm284.2 259.098a2 2 0 0 0-4 0h4zm-4 6.2a2 2 0 1 0 4 0h-4zm4 13.1a2 2 0 0 0-4 0h4zm-4 6.8a2 2 0 1 0 4 0h-4zm15-11.1a2 2 0 0 0 0-4v4zm-6.2-4a2 2 0 0 0 0 4v-4zm-13.6 4a2 2 0 0 0 0-4v4zm-6.3-4a2 2 0 0 0 0 4v-4zm11.1-11v6.2h4v-6.2h-4zm0 19.3v6.8h4v-6.8h-4zm15-8.3h-6.2v4h6.2v-4zm-19.8 0h-6.3v4h6.3v-4z",fill:"#2EE5C0"})),o||(o=s.createElement("path",{clipRule:"evenodd",d:"M15.233 326.328c7.18 0 13-5.82 13-13s-5.82-13-13-13-13 5.82-13 13 5.82 13 13 13z",stroke:"#2EE5C0",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round"})),p||(p=s.createElement("path",{d:"M28.233 311.328a2 2 0 0 0 0 4v-4zm35.2 2h2a2 2 0 0 0-2-2v2zm-2 12.2a2 2 0 1 0 4 0h-4zm-17.1 0a2 2 0 1 0 4 0h-4zm4-12.2a2 2 0 0 0-4 0h4zm-20.1 2h35.2v-4h-35.2v4zm33.2-2v12.2h4v-12.2h-4zm-13.1 12.2v-12.2h-4v12.2h4z",fill:"#2EE5C0"})))}var M=s.forwardRef(y);t.default=l.p+"static/media/403.6367e52f9464706633f52a2488a41958.svg"}}]); -//# sourceMappingURL=1058.3df06184.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/1115.1e053b1d.chunk.js b/ydb/core/viewer/monitoring/static/js/1115.1e053b1d.chunk.js deleted file mode 100644 index d8d72f7a39f3..000000000000 --- a/ydb/core/viewer/monitoring/static/js/1115.1e053b1d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[1115],{1115:function(e,t,n){n.r(t),n.d(t,{conf:function(){return o},language:function(){return a}});var o={comments:{lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}],folding:{offSide:!0}},a={defaultToken:"",tokenPostfix:".pug",ignoreCase:!0,brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],keywords:["append","block","case","default","doctype","each","else","extends","for","if","in","include","mixin","typeof","unless","var","when"],tags:["a","abbr","acronym","address","area","article","aside","audio","b","base","basefont","bdi","bdo","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","command","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","keygen","kbd","label","li","link","map","mark","menu","meta","meter","nav","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strike","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","tracks","tt","u","ul","video","wbr"],symbols:/[\+\-\*\%\&\|\!\=\/\.\,\:]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\s*)([a-zA-Z_-][\w-]*)/,{cases:{"$2@tags":{cases:{"@eos":["","tag"],"@default":["",{token:"tag",next:"@tag.$1"}]}},"$2@keywords":["",{token:"keyword.$2"}],"@default":["",""]}}],[/^(\s*)(#[a-zA-Z_-][\w-]*)/,{cases:{"@eos":["","tag.id"],"@default":["",{token:"tag.id",next:"@tag.$1"}]}}],[/^(\s*)(\.[a-zA-Z_-][\w-]*)/,{cases:{"@eos":["","tag.class"],"@default":["",{token:"tag.class",next:"@tag.$1"}]}}],[/^(\s*)(\|.*)$/,""],{include:"@whitespace"},[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":""}}],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d+\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\d+/,"number"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],tag:[[/(\.)(\s*$)/,[{token:"delimiter",next:"@blockText.$S2."},""]],[/\s+/,{token:"",next:"@simpleText"}],[/#[a-zA-Z_-][\w-]*/,{cases:{"@eos":{token:"tag.id",next:"@pop"},"@default":"tag.id"}}],[/\.[a-zA-Z_-][\w-]*/,{cases:{"@eos":{token:"tag.class",next:"@pop"},"@default":"tag.class"}}],[/\(/,{token:"delimiter.parenthesis",next:"@attributeList"}]],simpleText:[[/[^#]+$/,{token:"",next:"@popall"}],[/[^#]+/,{token:""}],[/(#{)([^}]*)(})/,{cases:{"@eos":["interpolation.delimiter","interpolation",{token:"interpolation.delimiter",next:"@popall"}],"@default":["interpolation.delimiter","interpolation","interpolation.delimiter"]}}],[/#$/,{token:"",next:"@popall"}],[/#/,""]],attributeList:[[/\s+/,""],[/(\w+)(\s*=\s*)("|')/,["attribute.name","delimiter",{token:"attribute.value",next:"@value.$3"}]],[/\w+/,"attribute.name"],[/,/,{cases:{"@eos":{token:"attribute.delimiter",next:"@popall"},"@default":"attribute.delimiter"}}],[/\)$/,{token:"delimiter.parenthesis",next:"@popall"}],[/\)/,{token:"delimiter.parenthesis",next:"@pop"}]],whitespace:[[/^(\s*)(\/\/.*)$/,{token:"comment",next:"@blockText.$1.comment"}],[/[ \t\r\n]+/,""],[//,{token:"comment",next:"@pop"}],[/|$)/,T.html=f(T.html,"i").replace("comment",T._comment).replace("tag",T._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),T.paragraph=f(T._paragraph).replace("hr",T.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",T._tag).getRegex(),T.blockquote=f(T.blockquote).replace("paragraph",T.paragraph).getRegex(),T.normal=L({},T),T.gfm=L({},T.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),T.gfm.table=f(T.gfm.table).replace("hr",T.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",")|<(?:script|pre|style|textarea|!--)").replace("tag",T._tag).getRegex(),T.gfm.paragraph=f(T._paragraph).replace("hr",T.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",T.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",T._tag).getRegex(),T.pedantic=L({},T.normal,{html:f("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",T._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:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:S,paragraph:f(T.normal._paragraph).replace("hr",T.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",T.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var M={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:S,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,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:S,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(i="x"+i.toString(16)),n+="&#"+i+";";return n}M._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",M.punctuation=f(M.punctuation).replace(/punctuation/g,M._punctuation).getRegex(),M.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,M.escapedEmSt=/\\\*|\\_/g,M._comment=f(T._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),M.emStrong.lDelim=f(M.emStrong.lDelim).replace(/punct/g,M._punctuation).getRegex(),M.emStrong.rDelimAst=f(M.emStrong.rDelimAst,"g").replace(/punct/g,M._punctuation).getRegex(),M.emStrong.rDelimUnd=f(M.emStrong.rDelimUnd,"g").replace(/punct/g,M._punctuation).getRegex(),M._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,M._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,M._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])?)+(?![-_])/,M.autolink=f(M.autolink).replace("scheme",M._scheme).replace("email",M._email).getRegex(),M._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,M.tag=f(M.tag).replace("comment",M._comment).replace("attribute",M._attribute).getRegex(),M._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,M._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,M._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,M.link=f(M.link).replace("label",M._label).replace("href",M._href).replace("title",M._title).getRegex(),M.reflink=f(M.reflink).replace("label",M._label).replace("ref",T._label).getRegex(),M.nolink=f(M.nolink).replace("ref",T._label).getRegex(),M.reflinkSearch=f(M.reflinkSearch,"g").replace("reflink",M.reflink).replace("nolink",M.nolink).getRegex(),M.normal=L({},M),M.pedantic=L({},M.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:f(/^!?\[(label)\]\((.*?)\)/).replace("label",M._label).getRegex(),reflink:f(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",M._label).getRegex()}),M.gfm=L({},M.normal,{escape:f(M.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)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\0?t[t.length-1].raw+="\n":t.push(i);else if(i=this.tokenizer.code(e))e=e.substring(i.raw.length),!(n=t[t.length-1])||"paragraph"!==n.type&&"text"!==n.type?t.push(i):(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue[this.inlineQueue.length-1].src=n.text);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.hr(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.blockquote(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.list(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.html(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.def(e))e=e.substring(i.raw.length),!(n=t[t.length-1])||"paragraph"!==n.type&&"text"!==n.type?this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title}):(n.raw+="\n"+i.raw,n.text+="\n"+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=n.text);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(o=e,this.options.extensions&&this.options.extensions.startBlock&&function(){var t=1/0,i=e.slice(1),n=void 0;r.options.extensions.startBlock.forEach((function(e){"number"===typeof(n=e.call({lexer:this},i))&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(o=e.substring(0,t+1))}(),this.state.top&&(i=this.tokenizer.paragraph(o)))n=t[t.length-1],s&&"paragraph"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(i),s=o.length!==e.length,e=e.substring(i.raw.length);else if(i=this.tokenizer.text(e))e=e.substring(i.raw.length),(n=t[t.length-1])&&"text"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(i);else if(e){var a="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(a);break}throw new Error(a)}return this.state.top=!0,t},r.inline=function(e,t){return void 0===t&&(t=[]),this.inlineQueue.push({src:e,tokens:t}),t},r.inlineTokens=function(e,t){var i,n,o,s=this;void 0===t&&(t=[]);var r,a,l,h=e;if(this.tokens.links){var d=Object.keys(this.tokens.links);if(d.length>0)for(;null!=(r=this.tokenizer.rules.inline.reflinkSearch.exec(h));)d.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(h=h.slice(0,r.index)+"["+x("a",r[0].length-2)+"]"+h.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(r=this.tokenizer.rules.inline.blockSkip.exec(h));)h=h.slice(0,r.index)+"["+x("a",r[0].length-2)+"]"+h.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(r=this.tokenizer.rules.inline.escapedEmSt.exec(h));)h=h.slice(0,r.index)+"++"+h.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(a||(l=""),a=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((function(n){return!!(i=n.call({lexer:s},e,t))&&(e=e.substring(i.raw.length),t.push(i),!0)}))))if(i=this.tokenizer.escape(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.tag(e))e=e.substring(i.raw.length),(n=t[t.length-1])&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(i=this.tokenizer.link(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(i.raw.length),(n=t[t.length-1])&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(i=this.tokenizer.emStrong(e,h,l))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.codespan(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.br(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.del(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.autolink(e,R))e=e.substring(i.raw.length),t.push(i);else if(this.state.inLink||!(i=this.tokenizer.url(e,R))){if(o=e,this.options.extensions&&this.options.extensions.startInline&&function(){var t=1/0,i=e.slice(1),n=void 0;s.options.extensions.startInline.forEach((function(e){"number"===typeof(n=e.call({lexer:this},i))&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(o=e.substring(0,t+1))}(),i=this.tokenizer.inlineText(o,A))e=e.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(l=i.raw.slice(-1)),a=!0,(n=t[t.length-1])&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(e){var c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}throw new Error(c)}}else e=e.substring(i.raw.length),t.push(i);return t},n=i,s=[{key:"rules",get:function(){return{block:T,inline:M}}}],(o=null)&&t(n.prototype,o),s&&t(n,s),Object.defineProperty(n,"prototype",{writable:!1}),i}(),P=function(){function t(t){this.options=t||e.defaults}var i=t.prototype;return i.code=function(e,t,i){var n=(t||"").match(/\S*/)[0];if(this.options.highlight){var o=this.options.highlight(e,n);null!=o&&o!==e&&(i=!0,e=o)}return e=e.replace(/\n$/,"")+"\n",n?'
'+(i?e:c(e,!0))+"
\n":"
"+(i?e:c(e,!0))+"
\n"},i.blockquote=function(e){return"
\n"+e+"
\n"},i.html=function(e){return e},i.heading=function(e,t,i,n){return this.options.headerIds?"'+e+"\n":""+e+"\n"},i.hr=function(){return this.options.xhtml?"
\n":"
\n"},i.list=function(e,t,i){var n=t?"ol":"ul";return"<"+n+(t&&1!==i?' start="'+i+'"':"")+">\n"+e+"\n"},i.listitem=function(e){return"
  • "+e+"
  • \n"},i.checkbox=function(e){return" "},i.paragraph=function(e){return"

    "+e+"

    \n"},i.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"},i.tablerow=function(e){return"\n"+e+"\n"},i.tablecell=function(e,t){var i=t.header?"th":"td";return(t.align?"<"+i+' align="'+t.align+'">':"<"+i+">")+e+"\n"},i.strong=function(e){return""+e+""},i.em=function(e){return""+e+""},i.codespan=function(e){return""+e+""},i.br=function(){return this.options.xhtml?"
    ":"
    "},i.del=function(e){return""+e+""},i.link=function(e,t,i){if(null===(e=v(this.options.sanitize,this.options.baseUrl,e)))return i;var n='
    "},i.image=function(e,t,i){if(null===(e=v(this.options.sanitize,this.options.baseUrl,e)))return i;var n=''+i+'":">"},i.text=function(e){return e},t}(),F=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,i){return""+i},t.image=function(e,t,i){return""+i},t.br=function(){return""},e}(),B=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 i=e,n=0;if(this.seen.hasOwnProperty(i)){n=this.seen[e];do{i=e+"-"+ ++n}while(this.seen.hasOwnProperty(i))}return t||(this.seen[e]=n,this.seen[i]=0),i},t.slug=function(e,t){void 0===t&&(t={});var i=this.serialize(e);return this.getNextSafeSlug(i,t.dryrun)},e}(),z=function(){function t(t){this.options=t||e.defaults,this.options.renderer=this.options.renderer||new P,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new F,this.slugger=new B}t.parse=function(e,i){return new t(i).parse(e)},t.parseInline=function(e,i){return new t(i).parseInline(e)};var i=t.prototype;return i.parse=function(e,t){void 0===t&&(t=!0);var i,n,o,s,r,a,l,h,d,c,u,m,f,p,_,v,b,C,w,y="",S=e.length;for(i=0;i0&&"paragraph"===_.tokens[0].type?(_.tokens[0].text=C+" "+_.tokens[0].text,_.tokens[0].tokens&&_.tokens[0].tokens.length>0&&"text"===_.tokens[0].tokens[0].type&&(_.tokens[0].tokens[0].text=C+" "+_.tokens[0].tokens[0].text)):_.tokens.unshift({type:"text",text:C}):p+=C),p+=this.parse(_.tokens,f),d+=this.renderer.listitem(p,b,v);y+=this.renderer.list(d,u,m);continue;case"html":y+=this.renderer.html(c.text);continue;case"paragraph":y+=this.renderer.paragraph(this.parseInline(c.tokens));continue;case"text":for(d=c.tokens?this.parseInline(c.tokens):c.text;i+1An error occurred:

    "+c(e.message+"",!0)+"
    ";throw e}try{var l=O.lex(e,t);if(t.walkTokens){if(t.async)return Promise.all(V.walkTokens(l,t.walkTokens)).then((function(){return z.parse(l,t)})).catch(a);V.walkTokens(l,t.walkTokens)}return z.parse(l,t)}catch(h){a(h)}}V.options=V.setOptions=function(t){var i;return L(V.defaults,t),i=V.defaults,e.defaults=i,V},V.getDefaults=o,V.defaults=e.defaults,V.use=function(){for(var e=arguments.length,t=new Array(e),i=0;iAn error occurred:

    "+c(n.message+"",!0)+"
    ";throw n}},V.Parser=z,V.parser=z.parse,V.Renderer=P,V.TextRenderer=F,V.Lexer=O,V.lexer=O.lex,V.Tokenizer=I,V.Slugger=B,V.parse=V;var W=V.options,H=V.setOptions,K=V.use,U=V.walkTokens,j=V.parseInline,q=V,G=z.parse,Q=O.lex;e.Lexer=O,e.Parser=z,e.Renderer=P,e.Slugger=B,e.TextRenderer=F,e.Tokenizer=I,e.getDefaults=o,e.lexer=Q,e.marked=V,e.options=W,e.parse=q,e.parseInline=j,e.parser=G,e.setOptions=H,e.use=K,e.walkTokens=U,Object.defineProperty(e,"__esModule",{value:!0})},e.amd?e(0,i):"object"===typeof exports?i(exports):i((t="undefined"!==typeof globalThis?globalThis:t||self).marked={})}();_.Lexer||exports.Lexer,_.Parser||exports.Parser,_.Renderer||exports.Renderer,_.Slugger||exports.Slugger,_.TextRenderer||exports.TextRenderer,_.Tokenizer||exports.Tokenizer,_.getDefaults||exports.getDefaults,_.lexer||exports.lexer;var v=_.marked||exports.marked,b=(_.options||exports.options,_.parse||exports.parse,_.parseInline||exports.parseInline,_.parser||exports.parser,_.setOptions||exports.setOptions,_.use||exports.use,_.walkTokens||exports.walkTokens,i(61423)),C=i(33211),w=i(10451),y=i(55694),S=i(25085),L=i(82682);const k=Object.freeze({image:(e,t,i)=>{let n=[],o=[];return e&&(({href:e,dimensions:n}=(0,u.v1)(e)),o.push('src="'.concat((0,u.d9)(e),'"'))),i&&o.push('alt="'.concat((0,u.d9)(i),'"')),t&&o.push('title="'.concat((0,u.d9)(t),'"')),n.length&&(o=o.concat(n)),""},paragraph:e=>"

    ".concat(e,"

    "),link:(e,t,i)=>"string"!==typeof e?"":(e===i&&(i=(0,u.oR)(i)),t="string"===typeof t?(0,u.d9)((0,u.oR)(t)):"",e=(e=(0,u.oR)(e)).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),'
    ').concat(i,""))});function D(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};var o,u;const f=new p.SL;let _=!1;const y=(0,r.az)(t),D=function(t){let i;try{i=(0,b.Qc)(decodeURIComponent(t))}catch(n){}return i?(i=(0,w.rs)(i,(t=>e.uris&&e.uris[t]?L.o.revive(e.uris[t]):void 0)),encodeURIComponent(JSON.stringify(i))):t},I=function(t,i){const n=e.uris&&e.uris[t];let o=L.o.revive(n);return i?t.startsWith(C.lg.data+":")?t:(o||(o=L.o.parse(t)),C.Gi.uriToBrowserUri(o).toString(!0)):o?L.o.parse(t).toString()===o.toString()?t:(o.query&&(o=o.with({query:D(o.query)})),o.toString()):t},T=new v.Renderer;T.image=k.image,T.link=k.link,T.paragraph=k.paragraph;const M=[],A=[];if(t.codeBlockRendererSync?T.code=(e,i)=>{const n=m.a.nextId(),o=t.codeBlockRendererSync(N(i),e);return A.push([n,o]),'
    ').concat((0,S.YU)(e),"
    ")}:t.codeBlockRenderer&&(T.code=(e,i)=>{const n=m.a.nextId(),o=t.codeBlockRenderer(N(i),e);return M.push(o.then((e=>[n,e]))),'
    ').concat((0,S.YU)(e),"
    ")}),t.actionHandler){const i=function(i){let n=i.target;if("A"===n.tagName||(n=n.parentElement,n&&"A"===n.tagName))try{let o=n.dataset.href;o&&(e.baseUri&&(o=x(L.o.from(e.baseUri),o)),t.actionHandler.callback(o,i))}catch(o){(0,d.dL)(o)}finally{i.preventDefault()}},o=t.actionHandler.disposables.add(new s.Y(y,"click")),r=t.actionHandler.disposables.add(new s.Y(y,"auxclick"));t.actionHandler.disposables.add(c.ju.any(o.event,r.event)((e=>{const t=new l.n(n.Jj(y),e);(t.leftButton||t.middleButton)&&i(t)}))),t.actionHandler.disposables.add(n.nm(y,"keydown",(e=>{const t=new a.y(e);(t.equals(10)||t.equals(3))&&i(t)})))}e.supportHtml||(i.sanitizer=t=>(e.isTrusted?t.match(/^(]+>)|(<\/\s*span>)$/):void 0)?t:"",i.sanitize=!0,i.silent=!0),i.renderer=T;let R,P=null!==(o=e.value)&&void 0!==o?o:"";if(P.length>1e5&&(P="".concat(P.substr(0,1e5),"\u2026")),e.supportThemeIcons&&(P=(0,g.f$)(P)),t.fillInIncompleteTokens){const e={...v.defaults,...i},t=function(e){let t,i;for(t=0;t"string"===typeof e?e:e.outerHTML)).join("")}const B=(new DOMParser).parseFromString(E(e,R),"text/html");if(B.body.querySelectorAll("img").forEach((t=>{const i=t.getAttribute("src");if(i){let o=i;try{e.baseUri&&(o=x(L.o.from(e.baseUri),o))}catch(n){}t.src=I(o,!0)}})),B.body.querySelectorAll("a").forEach((t=>{const i=t.getAttribute("href");if(t.setAttribute("href",""),!i||/^data:|javascript:/i.test(i)||/^command:/i.test(i)&&!e.isTrusted||/^command:(\/\/\/)?_workbench\.downloadResource/i.test(i))t.replaceWith(...t.childNodes);else{let n=I(i,!1);e.baseUri&&(n=x(L.o.from(e.baseUri),i)),t.dataset.href=n}})),y.innerHTML=E(e,B.body.innerHTML),M.length>0)Promise.all(M).then((e=>{var i,o;if(_)return;const s=new Map(e),r=y.querySelectorAll("div[data-code]");for(const t of r){const e=s.get(null!==(i=t.dataset.code)&&void 0!==i?i:"");e&&n.mc(t,e)}null===(o=t.asyncRenderCallback)||void 0===o||o.call(t)}));else if(A.length>0){const e=new Map(A),t=y.querySelectorAll("div[data-code]");for(const i of t){const t=e.get(null!==(u=i.dataset.code)&&void 0!==u?u:"");t&&n.mc(i,t)}}if(t.asyncRenderCallback)for(const s of y.getElementsByTagName("img")){const e=f.add(n.nm(s,"load",(()=>{e.dispose(),t.asyncRenderCallback()})))}return{element:y,dispose:()=>{_=!0,f.dispose()}}}function N(e){if(!e)return"";const t=e.split(/[\s+|:|,|\{|\?]/,1);return t.length?t[0]:e}function x(e,t){return/^\w[\w\d+.-]*:/.test(t)?t:e.path.endsWith("/")?(0,y.i3)(e,t).toString():(0,y.i3)((0,y.XX)(e),t).toString()}function E(e,t){const{config:i,allowedSchemes:s}=function(e){const t=[C.lg.http,C.lg.https,C.lg.mailto,C.lg.data,C.lg.file,C.lg.vscodeFileResource,C.lg.vscodeRemote,C.lg.vscodeRemoteResource];e.isTrusted&&t.push(C.lg.command);return{config:{ALLOWED_TAGS:[...n.sQ],ALLOWED_ATTR:I,ALLOW_UNKNOWN_PROTOCOLS:!0},allowedSchemes:t}}(e);o.v5("uponSanitizeAttribute",((e,t)=>{var i;if("style"!==t.attrName&&"class"!==t.attrName){if("INPUT"===e.tagName&&"checkbox"===(null===(i=e.attributes.getNamedItem("type"))||void 0===i?void 0:i.value)){if("type"===t.attrName&&"checkbox"===t.attrValue||"disabled"===t.attrName||"checked"===t.attrName)return void(t.keepAttr=!0);t.keepAttr=!1}}else{if("SPAN"===e.tagName){if("style"===t.attrName)return void(t.keepAttr=/^(color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?(background-color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?$/.test(t.attrValue));if("class"===t.attrName)return void(t.keepAttr=/^codicon codicon-[a-z\-]+( codicon-modifier-[a-z\-]+)?$/.test(t.attrValue))}t.keepAttr=!1}})),o.v5("uponSanitizeElement",((e,t)=>{var i,n;"input"===t.tagName&&("checkbox"===(null===(i=e.attributes.getNamedItem("type"))||void 0===i?void 0:i.value)?e.setAttribute("disabled",""):null===(n=e.parentElement)||void 0===n||n.removeChild(e))}));const r=n._F(s);try{return o.Nw(t,{...i,RETURN_TRUSTED_TYPE:!0})}finally{o.ok("uponSanitizeAttribute"),r.dispose()}}const I=["align","autoplay","alt","checked","class","controls","data-code","data-href","disabled","draggable","height","href","loop","muted","playsinline","poster","src","style","target","title","type","width","start"];function T(e){return"string"===typeof e?e:function(e){var t;let i=null!==(t=e.value)&&void 0!==t?t:"";i.length>1e5&&(i="".concat(i.substr(0,1e5),"\u2026"));return E({isTrusted:!1},v.parse(i,{renderer:A.value}).replace(/&(#\d+|[a-zA-Z]+);/g,(e=>{var t;return null!==(t=M.get(e))&&void 0!==t?t:e}))).toString()}(e)}const M=new Map([[""",'"'],[" "," "],["&","&"],["'","'"],["<","<"],[">",">"]]),A=new f.o((()=>{const e=new v.Renderer;return e.code=e=>e,e.blockquote=e=>e,e.html=e=>"",e.heading=(e,t,i)=>e+"\n",e.hr=()=>"",e.list=(e,t)=>e,e.listitem=e=>e+"\n",e.paragraph=e=>e+"\n",e.table=(e,t)=>e+t+"\n",e.tablerow=e=>e,e.tablecell=(e,t)=>e+" ",e.strong=e=>e,e.em=e=>e,e.codespan=e=>e,e.br=()=>"\n",e.del=e=>e,e.image=(e,t,i)=>"",e.text=e=>e,e.link=(e,t,i)=>i,e}));function R(e){let t="";return e.forEach((e=>{t+=e.raw})),t}function O(e){var t,i;for(let n=0;nP(e.raw))))return K(e)}}}function P(e){return!!e.match(/^[^\[]*\]\([^\)]*$/)}function F(e,t){const i=R(e);return v.lexer(i+"\n".concat(t))}function B(e){return j(e,"`")}function z(e){return j(e,"*")}function V(e){return j(e,"_")}function W(e){return j(e,")")}function H(e){return j(e,'")')}function K(e){return j(e,"](about:blank)")}function U(e){return j(e,"__")}function j(e,t){const i=R(Array.isArray(e)?e:[e]);return v.lexer(i+t)[0]}function q(e){const t=R(e),i=t.split("\n");let n,o=!1;for(let s=0;s0){const e=o?i.slice(0,-1).join("\n"):t,s=!!e.match(/\|\s*$/),r=e+(s?"":"|")+"\n|".concat(" --- |".repeat(n));return v.lexer(r)}}},21494:(e,t,i)=>{i.d(t,{n:()=>l,q:()=>h});var n=i(42606);const o=new WeakMap;function s(e){if(!e.parent||e.parent===e)return null;try{const t=e.location,i=e.parent.location;if("null"!==t.origin&&"null"!==i.origin&&t.origin!==i.origin)return null}catch(t){return null}return e.parent}class r{static getSameOriginWindowChain(e){let t=o.get(e);if(!t){t=[],o.set(e,t);let i,n=e;do{i=s(n),i?t.push({window:new WeakRef(n),iframeElement:n.frameElement||null}):t.push({window:new WeakRef(n),iframeElement:null}),n=i}while(n)}return t.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(e,t){var i,n;if(!t||e===t)return{top:0,left:0};let o=0,s=0;const r=this.getSameOriginWindowChain(e);for(const a of r){const e=a.window.deref();if(o+=null!==(i=null===e||void 0===e?void 0:e.scrollY)&&void 0!==i?i:0,s+=null!==(n=null===e||void 0===e?void 0:e.scrollX)&&void 0!==n?n:0,e===t)break;if(!a.iframeElement)break;const r=a.iframeElement.getBoundingClientRect();o+=r.top,s+=r.left}return{top:o,left:s}}}var a=i(21511);class l{constructor(e,t){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+this.target.ownerDocument.body.scrollLeft+this.target.ownerDocument.documentElement.scrollLeft,this.posy=t.clientY+this.target.ownerDocument.body.scrollTop+this.target.ownerDocument.documentElement.scrollTop);const i=r.getPositionOfChildWindowRelativeToAncestorWindow(e,t.view);this.posx-=i.left,this.posy-=i.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}}class h{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;var o;this.browserEvent=e||null,this.target=e?e.target||e.targetNode||e.srcElement:null,this.deltaY=i,this.deltaX=t;let s=!1;if(n.i7){const e=navigator.userAgent.match(/Chrome\/(\d+)/);s=(e?parseInt(e[1]):123)<=122}if(e){const t=e,i=e,r=(null===(o=e.view)||void 0===o?void 0:o.devicePixelRatio)||1;if("undefined"!==typeof t.wheelDeltaY)this.deltaY=s?t.wheelDeltaY/(120*r):t.wheelDeltaY/120;else if("undefined"!==typeof i.VERTICAL_AXIS&&i.axis===i.VERTICAL_AXIS)this.deltaY=-i.detail/3;else if("wheel"===e.type){const t=e;t.deltaMode===t.DOM_DELTA_LINE?n.vU&&!a.dz?this.deltaY=-e.deltaY/3:this.deltaY=-e.deltaY:this.deltaY=-e.deltaY/40}if("undefined"!==typeof t.wheelDeltaX)n.G6&&a.ED?this.deltaX=-t.wheelDeltaX/120:this.deltaX=s?t.wheelDeltaX/(120*r):t.wheelDeltaX/120;else if("undefined"!==typeof i.HORIZONTAL_AXIS&&i.axis===i.HORIZONTAL_AXIS)this.deltaX=-e.detail/3;else if("wheel"===e.type){const t=e;t.deltaMode===t.DOM_DELTA_LINE?n.vU&&!a.dz?this.deltaX=-e.deltaX/3:this.deltaX=-e.deltaX:this.deltaX=-e.deltaX/40}0===this.deltaY&&0===this.deltaX&&e.wheelDelta&&(this.deltaY=s?e.wheelDelta/(120*r):e.wheelDelta/120)}}preventDefault(){var e;null===(e=this.browserEvent)||void 0===e||e.preventDefault()}stopPropagation(){var e;null===(e=this.browserEvent)||void 0===e||e.stopPropagation()}}},10115:(e,t,i)=>{var n;i.d(t,{B:()=>n}),function(e){const t={total:0,min:Number.MAX_VALUE,max:0},i={...t},n={...t},o={...t};let s=0;const r={keydown:0,input:0,render:0};function a(){1===r.keydown&&(performance.mark("keydown/end"),r.keydown=2)}function l(){performance.mark("input/start"),r.input=1,c()}function h(){1===r.input&&(performance.mark("input/end"),r.input=2)}function d(){1===r.render&&(performance.mark("render/end"),r.render=2)}function c(){setTimeout(u)}function u(){2===r.keydown&&2===r.input&&2===r.render&&(performance.mark("inputlatency/end"),performance.measure("keydown","keydown/start","keydown/end"),performance.measure("input","input/start","input/end"),performance.measure("render","render/start","render/end"),performance.measure("inputlatency","inputlatency/start","inputlatency/end"),g("keydown",t),g("input",i),g("render",n),g("inputlatency",o),s++,performance.clearMarks("keydown/start"),performance.clearMarks("keydown/end"),performance.clearMarks("input/start"),performance.clearMarks("input/end"),performance.clearMarks("render/start"),performance.clearMarks("render/end"),performance.clearMarks("inputlatency/start"),performance.clearMarks("inputlatency/end"),performance.clearMeasures("keydown"),performance.clearMeasures("input"),performance.clearMeasures("render"),performance.clearMeasures("inputlatency"),r.keydown=0,r.input=0,r.render=0)}function g(e,t){const i=performance.getEntriesByName(e)[0].duration;t.total+=i,t.min=Math.min(t.min,i),t.max=Math.max(t.max,i)}function m(e){return{average:e.total/s,max:e.max,min:e.min}}function f(e){e.total=0,e.min=Number.MAX_VALUE,e.max=0}e.onKeyDown=function(){u(),performance.mark("inputlatency/start"),performance.mark("keydown/start"),r.keydown=1,queueMicrotask(a)},e.onBeforeInput=l,e.onInput=function(){0===r.input&&l(),queueMicrotask(h)},e.onKeyUp=function(){u()},e.onSelectionChange=function(){u()},e.onRenderStart=function(){2===r.keydown&&2===r.input&&0===r.render&&(performance.mark("render/start"),r.render=1,queueMicrotask(d),c())},e.getAndClearMeasurements=function(){if(0===s)return;const e={keydown:m(t),input:m(i),render:m(n),total:m(o),sampleCount:s};return f(t),f(i),f(n),f(o),s=0,e}}(n||(n={}))},39830:(e,t,i)=>{i.d(t,{T:()=>l});var n=i(85714),o=i(24219),s=i(89599);class r extends s.JT{constructor(e){super(),this._onDidChange=this._register(new o.Q5),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(e,!0),this._mediaQueryList=null,this._handleChange(e,!1)}_handleChange(e,t){var i;null===(i=this._mediaQueryList)||void 0===i||i.removeEventListener("change",this._listener),this._mediaQueryList=e.matchMedia("(resolution: ".concat(e.devicePixelRatio,"dppx)")),this._mediaQueryList.addEventListener("change",this._listener),t&&this._onDidChange.fire()}}class a extends s.JT{get value(){return this._value}constructor(e){super(),this._onDidChange=this._register(new o.Q5),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio(e);const t=this._register(new r(e));this._register(t.onDidChange((()=>{this._value=this._getPixelRatio(e),this._onDidChange.fire(this._value)})))}_getPixelRatio(e){const t=document.createElement("canvas").getContext("2d");return(e.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)}}const l=new class{constructor(){this.mapWindowIdToPixelRatioMonitor=new Map}_getOrCreatePixelRatioMonitor(e){const t=(0,n.ZY)(e);let i=this.mapWindowIdToPixelRatioMonitor.get(t);return i||(i=(0,s.dk)(new a(e)),this.mapWindowIdToPixelRatioMonitor.set(t,i),(0,s.dk)(o.ju.once(n.ey)((e=>{let{vscodeWindowId:n}=e;n===t&&(null===i||void 0===i||i.dispose(),this.mapWindowIdToPixelRatioMonitor.delete(t))})))),i}getInstance(e){return this._getOrCreatePixelRatioMonitor(e)}}},48688:(e,t,i)=>{i.d(t,{o:()=>u,t:()=>n});var n,o=i(85714),s=i(29880),r=i(75629),a=i(30333),l=i(24219),h=i(89599),d=i(44713),c=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r};!function(e){e.Tap="-monaco-gesturetap",e.Change="-monaco-gesturechange",e.Start="-monaco-gesturestart",e.End="-monaco-gesturesend",e.Contextmenu="-monaco-gesturecontextmenu"}(n||(n={}));class u extends h.JT{constructor(){super(),this.dispatched=!1,this.targets=new d.S,this.ignoreTargets=new d.S,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(l.ju.runAndSubscribe(o.Xo,(e=>{let{window:t,disposables:i}=e;i.add(o.nm(t.document,"touchstart",(e=>this.onTouchStart(e)),{passive:!1})),i.add(o.nm(t.document,"touchend",(e=>this.onTouchEnd(t,e)))),i.add(o.nm(t.document,"touchmove",(e=>this.onTouchMove(e)),{passive:!1}))}),{window:s.E,disposables:this._store}))}static addTarget(e){if(!u.isTouchDevice())return h.JT.None;u.INSTANCE||(u.INSTANCE=(0,h.dk)(new u));const t=u.INSTANCE.targets.push(e);return(0,h.OF)(t)}static ignoreTarget(e){if(!u.isTouchDevice())return h.JT.None;u.INSTANCE||(u.INSTANCE=(0,h.dk)(new u));const t=u.INSTANCE.ignoreTargets.push(e);return(0,h.OF)(t)}static isTouchDevice(){return"ontouchstart"in s.E||navigator.maxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(e){const t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let i=0,o=e.targetTouches.length;i=u.HOLD_DELAY&&Math.abs(l.initialPageX-r.Gb(l.rollingPageX))<30&&Math.abs(l.initialPageY-r.Gb(l.rollingPageY))<30){const e=this.newGestureEvent(n.Contextmenu,l.initialTarget);e.pageX=r.Gb(l.rollingPageX),e.pageY=r.Gb(l.rollingPageY),this.dispatchEvent(e)}else if(1===o){const t=r.Gb(l.rollingPageX),n=r.Gb(l.rollingPageY),o=r.Gb(l.rollingTimestamps)-l.rollingTimestamps[0],s=t-l.rollingPageX[0],a=n-l.rollingPageY[0],h=[...this.targets].filter((e=>l.initialTarget instanceof Node&&e.contains(l.initialTarget)));this.inertia(e,h,i,Math.abs(s)/o,s>0?1:-1,t,Math.abs(a)/o,a>0?1:-1,n)}this.dispatchEvent(this.newGestureEvent(n.End,l.initialTarget)),delete this.activeTouches[a.identifier]}this.dispatched&&(t.preventDefault(),t.stopPropagation(),this.dispatched=!1)}newGestureEvent(e,t){const i=document.createEvent("CustomEvent");return i.initEvent(e,!1,!0),i.initialTarget=t,i.tapCount=0,i}dispatchEvent(e){if(e.type===n.Tap){const t=(new Date).getTime();let i=0;i=t-this._lastSetTapCountTime>u.CLEAR_TAP_COUNT_TIME?1:2,this._lastSetTapCountTime=t,e.tapCount=i}else e.type!==n.Change&&e.type!==n.Contextmenu||(this._lastSetTapCountTime=0);if(e.initialTarget instanceof Node){for(const i of this.ignoreTargets)if(i.contains(e.initialTarget))return;const t=[];for(const i of this.targets)if(i.contains(e.initialTarget)){let n=0,o=e.initialTarget;for(;o&&o!==i;)n++,o=o.parentElement;t.push([n,i])}t.sort(((e,t)=>e[0]-t[0]));for(const[i,n]of t)n.dispatchEvent(e),this.dispatched=!0}}inertia(e,t,i,s,r,a,l,h,d){this.handle=o.jL(e,(()=>{const o=Date.now(),c=o-i;let g=0,m=0,f=!0;s+=u.SCROLL_FRICTION*c,l+=u.SCROLL_FRICTION*c,s>0&&(f=!1,g=r*s*c),l>0&&(f=!1,m=h*l*c);const p=this.newGestureEvent(n.Change);p.translationX=g,p.translationY=m,t.forEach((e=>e.dispatchEvent(p))),f||this.inertia(e,t,o,s,r,a+g,l,h,d+m)}))}onTouchMove(e){const t=Date.now();for(let i=0,o=e.changedTouches.length;i3&&(s.rollingPageX.shift(),s.rollingPageY.shift(),s.rollingTimestamps.shift()),s.rollingPageX.push(o.pageX),s.rollingPageY.push(o.pageY),s.rollingTimestamps.push(t)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}}u.SCROLL_FRICTION=-.005,u.HOLD_DELAY=700,u.CLEAR_TAP_COUNT_TIME=400,c([a.H],u,"isTouchDevice",null)},52047:(e,t,i)=>{i.d(t,{Z:()=>s});var n=i(29880),o=i(85108);function s(e,t){var i;const s=globalThis.MonacoEnvironment;if(null===s||void 0===s?void 0:s.createTrustedTypesPolicy)try{return s.createTrustedTypesPolicy(e,t)}catch(r){return void(0,o.dL)(r)}try{return null===(i=n.E.trustedTypes)||void 0===i?void 0:i.createPolicy(e,t)}catch(r){return void(0,o.dL)(r)}}},66193:(e,t,i)=>{i.d(t,{gU:()=>E,YH:()=>x,Lc:()=>I});var n=i(42606),o=i(86487),s=i(85714),r=i(48688),a=i(14561),l=i(34392),h=i(3640),d=i(39341),c=i(21687),u=i(53430),g=i(75629),m=i(24219),f=i(67925),p=i(89599),_=i(21511),v=i(71721);const b=s.$,C="selectOption.entry.template";class w{get templateId(){return C}renderTemplate(e){const t=Object.create(null);return t.root=e,t.text=s.R3(e,b(".option-text")),t.detail=s.R3(e,b(".option-detail")),t.decoratorRight=s.R3(e,b(".option-decorator-right")),t}renderElement(e,t,i){const n=i,o=e.text,s=e.detail,r=e.decoratorRight,a=e.isDisabled;n.text.textContent=o,n.detail.textContent=s||"",n.decoratorRight.innerText=r||"",a?n.root.classList.add("option-disabled"):n.root.classList.remove("option-disabled")}disposeTemplate(e){}}class y extends p.JT{constructor(e,t,i,n,o){super(),this.options=[],this._currentSelection=0,this._hasDetails=!1,this._skipLayout=!1,this._sticky=!1,this._isVisible=!1,this.styles=n,this.selectBoxOptions=o||Object.create(null),"number"!==typeof this.selectBoxOptions.minBottomMargin?this.selectBoxOptions.minBottomMargin=y.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN:this.selectBoxOptions.minBottomMargin<0&&(this.selectBoxOptions.minBottomMargin=0),this.selectElement=document.createElement("select"),this.selectElement.className="monaco-select-box monaco-select-box-dropdown-padding","string"===typeof this.selectBoxOptions.ariaLabel&&this.selectElement.setAttribute("aria-label",this.selectBoxOptions.ariaLabel),"string"===typeof this.selectBoxOptions.ariaDescription&&this.selectElement.setAttribute("aria-description",this.selectBoxOptions.ariaDescription),this._onDidSelect=new m.Q5,this._register(this._onDidSelect),this.registerListeners(),this.constructSelectDropDown(i),this.selected=t||0,e&&this.setOptions(e,t),this.initStyleSheet()}setTitle(e){!this._hover&&e?this._hover=this._register((0,l.g)((0,a.tM)("mouse"),this.selectElement,e)):this._hover&&this._hover.update(e)}getHeight(){return 22}getTemplateId(){return C}constructSelectDropDown(e){this.contextViewProvider=e,this.selectDropDownContainer=s.$(".monaco-select-box-dropdown-container"),this.selectDropDownContainer.classList.add("monaco-select-box-dropdown-padding"),this.selectionDetailsPane=s.R3(this.selectDropDownContainer,b(".select-box-details-pane"));const t=s.R3(this.selectDropDownContainer,b(".select-box-dropdown-container-width-control")),i=s.R3(t,b(".width-control-div"));this.widthControlElement=document.createElement("span"),this.widthControlElement.className="option-text-width-control",s.R3(i,this.widthControlElement),this._dropDownPosition=0,this.styleElement=s.dS(this.selectDropDownContainer),this.selectDropDownContainer.setAttribute("draggable","true"),this._register(s.nm(this.selectDropDownContainer,s.tw.DRAG_START,(e=>{s.zB.stop(e,!0)})))}registerListeners(){let e;this._register(s.mu(this.selectElement,"change",(e=>{this.selected=e.target.selectedIndex,this._onDidSelect.fire({index:e.target.selectedIndex,selected:e.target.value}),this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)}))),this._register(s.nm(this.selectElement,s.tw.CLICK,(e=>{s.zB.stop(e),this._isVisible?this.hideSelectDropDown(!0):this.showSelectDropDown()}))),this._register(s.nm(this.selectElement,s.tw.MOUSE_DOWN,(e=>{s.zB.stop(e)}))),this._register(s.nm(this.selectElement,"touchstart",(t=>{e=this._isVisible}))),this._register(s.nm(this.selectElement,"touchend",(t=>{s.zB.stop(t),e?this.hideSelectDropDown(!0):this.showSelectDropDown()}))),this._register(s.nm(this.selectElement,s.tw.KEY_DOWN,(e=>{const t=new d.y(e);let i=!1;_.dz?18!==t.keyCode&&16!==t.keyCode&&10!==t.keyCode&&3!==t.keyCode||(i=!0):(18===t.keyCode&&t.altKey||16===t.keyCode&&t.altKey||10===t.keyCode||3===t.keyCode)&&(i=!0),i&&(this.showSelectDropDown(),s.zB.stop(e,!0))})))}get onDidSelect(){return this._onDidSelect.event}setOptions(e,t){g.fS(this.options,e)||(this.options=e,this.selectElement.options.length=0,this._hasDetails=!1,this._cachedMaxDetailsHeight=void 0,this.options.forEach(((e,t)=>{this.selectElement.add(this.createOption(e.text,t,e.isDisabled)),"string"===typeof e.description&&(this._hasDetails=!0)}))),void 0!==t&&(this.select(t),this._currentSelection=this.selected)}setOptionsList(){var e;null===(e=this.selectList)||void 0===e||e.splice(0,this.selectList.length,this.options)}select(e){e>=0&&ethis.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)}focus(){this.selectElement&&(this.selectElement.tabIndex=0,this.selectElement.focus())}blur(){this.selectElement&&(this.selectElement.tabIndex=-1,this.selectElement.blur())}setFocusable(e){this.selectElement.tabIndex=e?0:-1}render(e){this.container=e,e.classList.add("select-container"),e.appendChild(this.selectElement),this.styleSelectElement()}initStyleSheet(){const e=[];this.styles.listFocusBackground&&e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { background-color: ".concat(this.styles.listFocusBackground," !important; }")),this.styles.listFocusForeground&&e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { color: ".concat(this.styles.listFocusForeground," !important; }")),this.styles.decoratorRightForeground&&e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.focused) .option-decorator-right { color: ".concat(this.styles.decoratorRightForeground,"; }")),this.styles.selectBackground&&this.styles.selectBorder&&this.styles.selectBorder!==this.styles.selectBackground?(e.push(".monaco-select-box-dropdown-container { border: 1px solid ".concat(this.styles.selectBorder," } ")),e.push(".monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ".concat(this.styles.selectBorder," } ")),e.push(".monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ".concat(this.styles.selectBorder," } "))):this.styles.selectListBorder&&(e.push(".monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ".concat(this.styles.selectListBorder," } ")),e.push(".monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ".concat(this.styles.selectListBorder," } "))),this.styles.listHoverForeground&&e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { color: ".concat(this.styles.listHoverForeground," !important; }")),this.styles.listHoverBackground&&e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { background-color: ".concat(this.styles.listHoverBackground," !important; }")),this.styles.listFocusOutline&&e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { outline: 1.6px dotted ".concat(this.styles.listFocusOutline," !important; outline-offset: -1.6px !important; }")),this.styles.listHoverOutline&&e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { outline: 1.6px dashed ".concat(this.styles.listHoverOutline," !important; outline-offset: -1.6px !important; }")),e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled.focused { background-color: transparent !important; color: inherit !important; outline: none !important; }"),e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled:hover { background-color: transparent !important; color: inherit !important; outline: none !important; }"),this.styleElement.textContent=e.join("\n")}styleSelectElement(){var e,t,i;const n=null!==(e=this.styles.selectBackground)&&void 0!==e?e:"",o=null!==(t=this.styles.selectForeground)&&void 0!==t?t:"",s=null!==(i=this.styles.selectBorder)&&void 0!==i?i:"";this.selectElement.style.backgroundColor=n,this.selectElement.style.color=o,this.selectElement.style.borderColor=s}styleList(){var e,t;const i=null!==(e=this.styles.selectBackground)&&void 0!==e?e:"",n=s.XT(this.styles.selectListBackground,i);this.selectDropDownListContainer.style.backgroundColor=n,this.selectionDetailsPane.style.backgroundColor=n;const o=null!==(t=this.styles.focusBorder)&&void 0!==t?t:"";this.selectDropDownContainer.style.outlineColor=o,this.selectDropDownContainer.style.outlineOffset="-1px",this.selectList.style(this.styles)}createOption(e,t,i){const n=document.createElement("option");return n.value=e,n.text=e,n.disabled=!!i,n}showSelectDropDown(){this.selectionDetailsPane.innerText="",this.contextViewProvider&&!this._isVisible&&(this.createSelectList(this.selectDropDownContainer),this.setOptionsList(),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:e=>this.renderSelectDropDown(e,!0),layout:()=>{this.layoutSelectDropDown()},onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._isVisible=!0,this.hideSelectDropDown(!1),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:e=>this.renderSelectDropDown(e),layout:()=>this.layoutSelectDropDown(),onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._currentSelection=this.selected,this._isVisible=!0,this.selectElement.setAttribute("aria-expanded","true"))}hideSelectDropDown(e){this.contextViewProvider&&this._isVisible&&(this._isVisible=!1,this.selectElement.setAttribute("aria-expanded","false"),e&&this.selectElement.focus(),this.contextViewProvider.hideContextView())}renderSelectDropDown(e,t){return e.appendChild(this.selectDropDownContainer),this.layoutSelectDropDown(t),{dispose:()=>{try{e.removeChild(this.selectDropDownContainer)}catch(t){}}}}measureMaxDetailsHeight(){let e=0;return this.options.forEach(((t,i)=>{this.updateDetail(i),this.selectionDetailsPane.offsetHeight>e&&(e=this.selectionDetailsPane.offsetHeight)})),e}layoutSelectDropDown(e){if(this._skipLayout)return!1;if(this.selectList){this.selectDropDownContainer.classList.add("visible");const t=s.Jj(this.selectElement),i=s.i(this.selectElement),n=s.Jj(this.selectElement).getComputedStyle(this.selectElement),o=parseFloat(n.getPropertyValue("--dropdown-padding-top"))+parseFloat(n.getPropertyValue("--dropdown-padding-bottom")),r=t.innerHeight-i.top-i.height-(this.selectBoxOptions.minBottomMargin||0),a=i.top-y.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN,l=this.selectElement.offsetWidth,h=this.setWidthControlElement(this.widthControlElement),d=Math.max(h,Math.round(l)).toString()+"px";this.selectDropDownContainer.style.width=d,this.selectList.getHTMLElement().style.height="",this.selectList.layout();let c=this.selectList.contentHeight;this._hasDetails&&void 0===this._cachedMaxDetailsHeight&&(this._cachedMaxDetailsHeight=this.measureMaxDetailsHeight());const u=this._hasDetails?this._cachedMaxDetailsHeight:0,g=c+o+u,m=Math.floor((r-o-u)/this.getHeight()),f=Math.floor((a-o-u)/this.getHeight());if(e)return!(i.top+i.height>t.innerHeight-22||i.topm&&this.options.length>m?(this._dropDownPosition=1,this.selectDropDownContainer.removeChild(this.selectDropDownListContainer),this.selectDropDownContainer.removeChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectionDetailsPane.classList.remove("border-top"),this.selectionDetailsPane.classList.add("border-bottom")):(this._dropDownPosition=0,this.selectDropDownContainer.removeChild(this.selectDropDownListContainer),this.selectDropDownContainer.removeChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectionDetailsPane.classList.remove("border-bottom"),this.selectionDetailsPane.classList.add("border-top")),!0);if(i.top+i.height>t.innerHeight-22||i.topr&&(c=m*this.getHeight())}else g>a&&(c=f*this.getHeight());return this.selectList.layout(c),this.selectList.domFocus(),this.selectList.length>0&&(this.selectList.setFocus([this.selected||0]),this.selectList.reveal(this.selectList.getFocus()[0]||0)),this._hasDetails?(this.selectList.getHTMLElement().style.height=c+o+"px",this.selectDropDownContainer.style.height=""):this.selectDropDownContainer.style.height=c+o+"px",this.updateDetail(this.selected),this.selectDropDownContainer.style.width=d,this.selectDropDownListContainer.setAttribute("tabindex","0"),this.selectElement.classList.add("synthetic-focus"),this.selectDropDownContainer.classList.add("synthetic-focus"),!0}return!1}setWidthControlElement(e){let t=0;if(e){let i=0,n=0;this.options.forEach(((e,t)=>{const o=e.detail?e.detail.length:0,s=e.decoratorRight?e.decoratorRight.length:0,r=e.text.length+o+s;r>n&&(i=t,n=r)})),e.textContent=this.options[i].text+(this.options[i].decoratorRight?this.options[i].decoratorRight+" ":""),t=s.w(e)}return t}createSelectList(e){if(this.selectList)return;this.selectDropDownListContainer=s.R3(e,b(".select-box-dropdown-list-container")),this.listRenderer=new w,this.selectList=new u.aV("SelectBoxCustom",this.selectDropDownListContainer,this,[this.listRenderer],{useShadows:!1,verticalScrollMode:3,keyboardSupport:!1,mouseSupport:!1,accessibilityProvider:{getAriaLabel:e=>{let t=e.text;return e.detail&&(t+=". ".concat(e.detail)),e.decoratorRight&&(t+=". ".concat(e.decoratorRight)),e.description&&(t+=". ".concat(e.description)),t},getWidgetAriaLabel:()=>(0,v.NC)({key:"selectBox",comment:["Behave like native select dropdown element."]},"Select Box"),getRole:()=>_.dz?"":"option",getWidgetRole:()=>"listbox"}}),this.selectBoxOptions.ariaLabel&&(this.selectList.ariaLabel=this.selectBoxOptions.ariaLabel);const t=this._register(new h.Y(this.selectDropDownListContainer,"keydown")),i=m.ju.chain(t.event,(e=>e.filter((()=>this.selectList.length>0)).map((e=>new d.y(e)))));this._register(m.ju.chain(i,(e=>e.filter((e=>3===e.keyCode))))(this.onEnter,this)),this._register(m.ju.chain(i,(e=>e.filter((e=>2===e.keyCode))))(this.onEnter,this)),this._register(m.ju.chain(i,(e=>e.filter((e=>9===e.keyCode))))(this.onEscape,this)),this._register(m.ju.chain(i,(e=>e.filter((e=>16===e.keyCode))))(this.onUpArrow,this)),this._register(m.ju.chain(i,(e=>e.filter((e=>18===e.keyCode))))(this.onDownArrow,this)),this._register(m.ju.chain(i,(e=>e.filter((e=>12===e.keyCode))))(this.onPageDown,this)),this._register(m.ju.chain(i,(e=>e.filter((e=>11===e.keyCode))))(this.onPageUp,this)),this._register(m.ju.chain(i,(e=>e.filter((e=>14===e.keyCode))))(this.onHome,this)),this._register(m.ju.chain(i,(e=>e.filter((e=>13===e.keyCode))))(this.onEnd,this)),this._register(m.ju.chain(i,(e=>e.filter((e=>e.keyCode>=21&&e.keyCode<=56||e.keyCode>=85&&e.keyCode<=113))))(this.onCharacter,this)),this._register(s.nm(this.selectList.getHTMLElement(),s.tw.POINTER_UP,(e=>this.onPointerUp(e)))),this._register(this.selectList.onMouseOver((e=>"undefined"!==typeof e.index&&this.selectList.setFocus([e.index])))),this._register(this.selectList.onDidChangeFocus((e=>this.onListFocus(e)))),this._register(s.nm(this.selectDropDownContainer,s.tw.FOCUS_OUT,(e=>{this._isVisible&&!s.jg(e.relatedTarget,this.selectDropDownContainer)&&this.onListBlur()}))),this.selectList.getHTMLElement().setAttribute("aria-label",this.selectBoxOptions.ariaLabel||""),this.selectList.getHTMLElement().setAttribute("aria-expanded","true"),this.styleList()}onPointerUp(e){if(!this.selectList.length)return;s.zB.stop(e);const t=e.target;if(!t)return;if(t.classList.contains("slider"))return;const i=t.closest(".monaco-list-row");if(!i)return;const n=Number(i.getAttribute("data-index")),o=i.classList.contains("option-disabled");n>=0&&n{for(let t=0;tthis.selected+2)this.selected+=2;else{if(t)return;this.selected++}this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0])}}onUpArrow(e){if(this.selected>0){s.zB.stop(e,!0);this.options[this.selected-1].isDisabled&&this.selected>1?this.selected-=2:this.selected--,this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0])}}onPageUp(e){s.zB.stop(e),this.selectList.focusPreviousPage(),setTimeout((()=>{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected>0&&(this.selected--,this.selectList.setFocus([this.selected])),this.selectList.reveal(this.selected),this.select(this.selected)}),1)}onHome(e){s.zB.stop(e),this.options.length<2||(this.selected=0,this.options[this.selected].isDisabled&&this.selected>1&&this.selected++,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onEnd(e){s.zB.stop(e),this.options.length<2||(this.selected=this.options.length-1,this.options[this.selected].isDisabled&&this.selected>1&&this.selected--,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onCharacter(e){const t=f.kL.toString(e.keyCode);let i=-1;for(let n=0;n{this._register(s.nm(this.selectElement,e,(e=>{this.selectElement.focus()})))})),this._register(s.mu(this.selectElement,"click",(e=>{s.zB.stop(e,!0)}))),this._register(s.mu(this.selectElement,"change",(e=>{this.selectElement.title=e.target.value,this._onDidSelect.fire({index:e.target.selectedIndex,selected:e.target.value})}))),this._register(s.mu(this.selectElement,"keydown",(e=>{let t=!1;_.dz?18!==e.keyCode&&16!==e.keyCode&&10!==e.keyCode||(t=!0):(18===e.keyCode&&e.altKey||10===e.keyCode||3===e.keyCode)&&(t=!0),t&&e.stopPropagation()})))}get onDidSelect(){return this._onDidSelect.event}setOptions(e,t){this.options&&g.fS(this.options,e)||(this.options=e,this.selectElement.options.length=0,this.options.forEach(((e,t)=>{this.selectElement.add(this.createOption(e.text,t,e.isDisabled))}))),void 0!==t&&this.select(t)}select(e){0===this.options.length?this.selected=0:e>=0&&ethis.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.selected2&&void 0!==arguments[2]?arguments[2]:{};super(),this.options=i,this._context=e||this,this._action=t,t instanceof D.aU&&this._register(t.onDidChange((e=>{this.element&&this.handleActionChangeEvent(e)})))}handleActionChangeEvent(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()}get actionRunner(){return this._actionRunner||(this._actionRunner=this._register(new D.Wi)),this._actionRunner}set actionRunner(e){this._actionRunner=e}isEnabled(){return this._action.enabled}setActionContext(e){this._context=e}render(e){const t=this.element=e;this._register(r.o.addTarget(e));const i=this.options&&this.options.draggable;i&&(e.draggable=!0,n.vU&&this._register((0,s.nm)(e,s.tw.DRAG_START,(e=>{var t;return null===(t=e.dataTransfer)||void 0===t?void 0:t.setData(o.g.TEXT,this._action.label)})))),this._register((0,s.nm)(t,r.t.Tap,(e=>this.onClick(e,!0)))),this._register((0,s.nm)(t,s.tw.MOUSE_DOWN,(e=>{i||s.zB.stop(e,!0),this._action.enabled&&0===e.button&&t.classList.add("active")}))),_.dz&&this._register((0,s.nm)(t,s.tw.CONTEXT_MENU,(e=>{0===e.button&&!0===e.ctrlKey&&this.onClick(e)}))),this._register((0,s.nm)(t,s.tw.CLICK,(e=>{s.zB.stop(e,!0),this.options&&this.options.isMenu||this.onClick(e)}))),this._register((0,s.nm)(t,s.tw.DBLCLICK,(e=>{s.zB.stop(e,!0)}))),[s.tw.MOUSE_UP,s.tw.MOUSE_OUT].forEach((e=>{this._register((0,s.nm)(t,e,(e=>{s.zB.stop(e),t.classList.remove("active")})))}))}onClick(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];var i;s.zB.stop(e,!0);const n=N.Jp(this._context)?(null===(i=this.options)||void 0===i?void 0:i.useEventAsContext)?e:{preserveFocus:t}:this._context;this.actionRunner.run(this._action,n)}focus(){this.element&&(this.element.tabIndex=0,this.element.focus(),this.element.classList.add("focused"))}blur(){this.element&&(this.element.blur(),this.element.tabIndex=-1,this.element.classList.remove("focused"))}setFocusable(e){this.element&&(this.element.tabIndex=e?0:-1)}get trapsArrowNavigation(){return!1}updateEnabled(){}updateLabel(){}getClass(){return this.action.class}getTooltip(){return this.action.tooltip}updateTooltip(){var e,t,i;if(!this.element)return;const n=null!==(e=this.getTooltip())&&void 0!==e?e:"";if(this.updateAriaLabel(),null===(t=this.options.hoverDelegate)||void 0===t?void 0:t.showNativeHover)this.element.title=n;else if(this.customHover||""===n)this.customHover&&this.customHover.update(n);else{const e=null!==(i=this.options.hoverDelegate)&&void 0!==i?i:(0,a.tM)("element");this.customHover=this._store.add((0,l.g)(e,this.element,n))}}updateAriaLabel(){var e;if(this.element){const t=null!==(e=this.getTooltip())&&void 0!==e?e:"";this.element.setAttribute("aria-label",t)}}updateClass(){}updateChecked(){}dispose(){this.element&&(this.element.remove(),this.element=void 0),this._context=void 0,super.dispose()}}class E extends x{constructor(e,t,i){super(e,t,i),this.options=i,this.options.icon=void 0!==i.icon&&i.icon,this.options.label=void 0===i.label||i.label,this.cssClass=""}render(e){super.render(e),N.p_(this.element);const t=document.createElement("a");if(t.classList.add("action-label"),t.setAttribute("role",this.getDefaultAriaRole()),this.label=t,this.element.appendChild(t),this.options.label&&this.options.keybinding){const e=document.createElement("span");e.classList.add("keybinding"),e.textContent=this.options.keybinding,this.element.appendChild(e)}this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}getDefaultAriaRole(){return this._action.id===D.Z0.ID?"presentation":this.options.isMenu?"menuitem":"button"}focus(){this.label&&(this.label.tabIndex=0,this.label.focus())}blur(){this.label&&(this.label.tabIndex=-1)}setFocusable(e){this.label&&(this.label.tabIndex=e?0:-1)}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this.action.label)}getTooltip(){let e=null;return this.action.tooltip?e=this.action.tooltip:!this.options.label&&this.action.label&&this.options.icon&&(e=this.action.label,this.options.keybinding&&(e=v.NC({key:"titleLabel",comment:["action title","action keybinding"]},"{0} ({1})",e,this.options.keybinding))),null!==e&&void 0!==e?e:void 0}updateClass(){var e;this.cssClass&&this.label&&this.label.classList.remove(...this.cssClass.split(" ")),this.options.icon?(this.cssClass=this.getClass(),this.label&&(this.label.classList.add("codicon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" "))),this.updateEnabled()):null===(e=this.label)||void 0===e||e.classList.remove("codicon")}updateEnabled(){var e,t;this.action.enabled?(this.label&&(this.label.removeAttribute("aria-disabled"),this.label.classList.remove("disabled")),null===(e=this.element)||void 0===e||e.classList.remove("disabled")):(this.label&&(this.label.setAttribute("aria-disabled","true"),this.label.classList.add("disabled")),null===(t=this.element)||void 0===t||t.classList.add("disabled"))}updateAriaLabel(){var e;if(this.label){const t=null!==(e=this.getTooltip())&&void 0!==e?e:"";this.label.setAttribute("aria-label",t)}}updateChecked(){this.label&&(void 0!==this.action.checked?(this.label.classList.toggle("checked",this.action.checked),this.label.setAttribute("aria-checked",this.action.checked?"true":"false"),this.label.setAttribute("role","checkbox")):(this.label.classList.remove("checked"),this.label.removeAttribute("aria-checked"),this.label.setAttribute("role",this.getDefaultAriaRole())))}}class I extends x{constructor(e,t,i,n,o,s,r){super(e,t),this.selectBox=new k(i,n,o,s,r),this.selectBox.setFocusable(!1),this._register(this.selectBox),this.registerListeners()}select(e){this.selectBox.select(e)}registerListeners(){this._register(this.selectBox.onDidSelect((e=>this.runAction(e.selected,e.index))))}runAction(e,t){this.actionRunner.run(this._action,this.getActionContext(e,t))}getActionContext(e,t){return e}setFocusable(e){this.selectBox.setFocusable(e)}focus(){var e;null===(e=this.selectBox)||void 0===e||e.focus()}blur(){var e;null===(e=this.selectBox)||void 0===e||e.blur()}render(e){this.selectBox.render(e)}}},65122:(e,t,i)=>{i.d(t,{o:()=>c});var n=i(85714),o=i(39341),s=i(66193),r=i(14561),a=i(22337),l=i(24219),h=i(89599),d=i(63686);i(11316);class c extends h.JT{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var i,d,c,u,g,m,f;let p,_;switch(super(),this._actionRunnerDisposables=this._register(new h.SL),this.viewItemDisposables=this._register(new h.b2),this.triggerKeyDown=!1,this.focusable=!0,this._onDidBlur=this._register(new l.Q5),this.onDidBlur=this._onDidBlur.event,this._onDidCancel=this._register(new l.Q5({onWillAddFirstListener:()=>this.cancelHasListener=!0})),this.onDidCancel=this._onDidCancel.event,this.cancelHasListener=!1,this._onDidRun=this._register(new l.Q5),this.onDidRun=this._onDidRun.event,this._onWillRun=this._register(new l.Q5),this.onWillRun=this._onWillRun.event,this.options=t,this._context=null!==(i=t.context)&&void 0!==i?i:null,this._orientation=null!==(d=this.options.orientation)&&void 0!==d?d:0,this._triggerKeys={keyDown:null!==(u=null===(c=this.options.triggerKeys)||void 0===c?void 0:c.keyDown)&&void 0!==u&&u,keys:null!==(m=null===(g=this.options.triggerKeys)||void 0===g?void 0:g.keys)&&void 0!==m?m:[3,10]},this._hoverDelegate=null!==(f=t.hoverDelegate)&&void 0!==f?f:this._register((0,r.p0)()),this.options.actionRunner?this._actionRunner=this.options.actionRunner:(this._actionRunner=new a.Wi,this._actionRunnerDisposables.add(this._actionRunner)),this._actionRunnerDisposables.add(this._actionRunner.onDidRun((e=>this._onDidRun.fire(e)))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun((e=>this._onWillRun.fire(e)))),this.viewItems=[],this.focusedItem=void 0,this.domNode=document.createElement("div"),this.domNode.className="monaco-action-bar",this._orientation){case 0:p=[15],_=[17];break;case 1:p=[16],_=[18],this.domNode.className+=" vertical"}this._register(n.nm(this.domNode,n.tw.KEY_DOWN,(e=>{const t=new o.y(e);let i=!0;const n="number"===typeof this.focusedItem?this.viewItems[this.focusedItem]:void 0;p&&(t.equals(p[0])||t.equals(p[1]))?i=this.focusPrevious():_&&(t.equals(_[0])||t.equals(_[1]))?i=this.focusNext():t.equals(9)&&this.cancelHasListener?this._onDidCancel.fire():t.equals(14)?i=this.focusFirst():t.equals(13)?i=this.focusLast():t.equals(2)&&n instanceof s.YH&&n.trapsArrowNavigation?i=this.focusNext():this.isTriggerKeyEvent(t)?this._triggerKeys.keyDown?this.doTrigger(t):this.triggerKeyDown=!0:i=!1,i&&(t.preventDefault(),t.stopPropagation())}))),this._register(n.nm(this.domNode,n.tw.KEY_UP,(e=>{const t=new o.y(e);this.isTriggerKeyEvent(t)?(!this._triggerKeys.keyDown&&this.triggerKeyDown&&(this.triggerKeyDown=!1,this.doTrigger(t)),t.preventDefault(),t.stopPropagation()):(t.equals(2)||t.equals(1026)||t.equals(16)||t.equals(18)||t.equals(15)||t.equals(17))&&this.updateFocusedItem()}))),this.focusTracker=this._register(n.go(this.domNode)),this._register(this.focusTracker.onDidBlur((()=>{n.vY()!==this.domNode&&n.jg(n.vY(),this.domNode)||(this._onDidBlur.fire(),this.previouslyFocusedItem=this.focusedItem,this.focusedItem=void 0,this.triggerKeyDown=!1)}))),this._register(this.focusTracker.onDidFocus((()=>this.updateFocusedItem()))),this.actionsList=document.createElement("ul"),this.actionsList.className="actions-container",this.options.highlightToggledItems&&this.actionsList.classList.add("highlight-toggled"),this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"),this.options.ariaLabel&&this.actionsList.setAttribute("aria-label",this.options.ariaLabel),this.domNode.appendChild(this.actionsList),e.appendChild(this.domNode)}refreshRole(){this.length()>=1?this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"):this.actionsList.setAttribute("role","presentation")}setFocusable(e){if(this.focusable=e,this.focusable){const e=this.viewItems.find((e=>e instanceof s.YH&&e.isEnabled()));e instanceof s.YH&&e.setFocusable(!0)}else this.viewItems.forEach((e=>{e instanceof s.YH&&e.setFocusable(!1)}))}isTriggerKeyEvent(e){let t=!1;return this._triggerKeys.keys.forEach((i=>{t=t||e.equals(i)})),t}updateFocusedItem(){var e,t;for(let i=0;it.setActionContext(e)))}get actionRunner(){return this._actionRunner}set actionRunner(e){this._actionRunner=e,this._actionRunnerDisposables.clear(),this._actionRunnerDisposables.add(this._actionRunner.onDidRun((e=>this._onDidRun.fire(e)))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun((e=>this._onWillRun.fire(e)))),this.viewItems.forEach((t=>t.actionRunner=e))}getContainer(){return this.domNode}getAction(e){var t;if("number"===typeof e)return null===(t=this.viewItems[e])||void 0===t?void 0:t.action;if(e instanceof HTMLElement){for(;e.parentElement!==this.actionsList;){if(!e.parentElement)return;e=e.parentElement}for(let t=0;t1&&void 0!==arguments[1]?arguments[1]:{};const i=Array.isArray(e)?e:[e];let o=d.hj(t.index)?t.index:null;i.forEach((e=>{const i=document.createElement("li");let r;i.className="action-item",i.setAttribute("role","presentation");const a={hoverDelegate:this._hoverDelegate,...t};this.options.actionViewItemProvider&&(r=this.options.actionViewItemProvider(e,a)),r||(r=new s.gU(this.context,e,a)),this.options.allowContextMenu||this.viewItemDisposables.set(r,n.nm(i,n.tw.CONTEXT_MENU,(e=>{n.zB.stop(e,!0)}))),r.actionRunner=this._actionRunner,r.setActionContext(this.context),r.render(i),this.focusable&&r instanceof s.YH&&0===this.viewItems.length&&r.setFocusable(!0),null===o||o<0||o>=this.actionsList.children.length?(this.actionsList.appendChild(i),this.viewItems.push(r)):(this.actionsList.insertBefore(i,this.actionsList.children[o]),this.viewItems.splice(o,0,r),o++)})),"number"===typeof this.focusedItem&&this.focus(this.focusedItem),this.refreshRole()}clear(){this.isEmpty()||(this.viewItems=(0,h.B9)(this.viewItems),this.viewItemDisposables.clearAndDisposeAll(),n.PO(this.actionsList),this.refreshRole())}length(){return this.viewItems.length}isEmpty(){return 0===this.viewItems.length}focus(e){let t,i=!1;if(void 0===e?i=!0:"number"===typeof e?t=e:"boolean"===typeof e&&(i=e),i&&"undefined"===typeof this.focusedItem){const e=this.viewItems.findIndex((e=>e.isEnabled()));this.focusedItem=-1===e?void 0:e,this.updateFocus(void 0,void 0,!0)}else void 0!==t&&(this.focusedItem=t),this.updateFocus(void 0,void 0,!0)}focusFirst(){return this.focusedItem=this.length()-1,this.focusNext(!0)}focusLast(){return this.focusedItem=0,this.focusPrevious(!0)}focusNext(e){if("undefined"===typeof this.focusedItem)this.focusedItem=this.viewItems.length-1;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(!e&&this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=t,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===a.Z0.ID));return this.updateFocus(),!0}focusPrevious(e){if("undefined"===typeof this.focusedItem)this.focusedItem=0;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(this.focusedItem=this.focusedItem-1,this.focusedItem<0){if(!e&&this.options.preventLoopNavigation)return this.focusedItem=t,!1;this.focusedItem=this.viewItems.length-1}i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===a.Z0.ID));return this.updateFocus(!0),!0}updateFocus(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];var n,o;"undefined"===typeof this.focusedItem&&this.actionsList.focus({preventScroll:t}),void 0!==this.previouslyFocusedItem&&this.previouslyFocusedItem!==this.focusedItem&&(null===(n=this.viewItems[this.previouslyFocusedItem])||void 0===n||n.blur());const s=void 0!==this.focusedItem?this.viewItems[this.focusedItem]:void 0;if(s){let n=!0;d.mf(s.focus)||(n=!1),this.options.focusOnlyEnabledItems&&d.mf(s.isEnabled)&&!s.isEnabled()&&(n=!1),s.action.id===a.Z0.ID&&(n=!1),n?(i||this.previouslyFocusedItem!==this.focusedItem)&&(s.focus(e),this.previouslyFocusedItem=this.focusedItem):(this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem=void 0),n&&(null===(o=s.showHover)||void 0===o||o.call(s))}}doTrigger(e){if("undefined"===typeof this.focusedItem)return;const t=this.viewItems[this.focusedItem];if(t instanceof s.YH){const i=null===t._context||void 0===t._context?e:t._context;this.run(t._action,i)}}async run(e,t){await this._actionRunner.run(e,t)}dispose(){this._context=void 0,this.viewItems=(0,h.B9)(this.viewItems),this.getContainer().remove(),super.dispose()}}},70036:(e,t,i)=>{i.d(t,{Z9:()=>c,wW:()=>d,i7:()=>u});var n=i(85714);const o=2e4;let s,r,a,l,h;function d(e){s=document.createElement("div"),s.className="monaco-aria-container";const t=()=>{const e=document.createElement("div");return e.className="monaco-alert",e.setAttribute("role","alert"),e.setAttribute("aria-atomic","true"),s.appendChild(e),e};r=t(),a=t();const i=()=>{const e=document.createElement("div");return e.className="monaco-status",e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),s.appendChild(e),e};l=i(),h=i(),e.appendChild(s)}function c(e){s&&(r.textContent!==e?(n.PO(a),g(r,e)):(n.PO(r),g(a,e)))}function u(e){s&&(l.textContent!==e?(n.PO(h),g(l,e)):(n.PO(l),g(h,e)))}function g(e,t){n.PO(e),t.length>o&&(t=t.substr(0,o)),e.textContent=t,e.style.visibility="hidden",e.style.visibility="visible"}},56925:(e,t,i)=>{i.d(t,{z:()=>p});var n=i(85714),o=i(33960),s=i(39341),r=i(21687),a=i(48688),l=i(14561),h=i(34392),d=i(76272),c=i(89652),u=i(24219),g=i(32936),m=i(89599),f=i(62502);c.Il.white.toString(),c.Il.white.toString();class p extends m.JT{get onDidClick(){return this._onDidClick.event}constructor(e,t){super(),this._label="",this._onDidClick=this._register(new u.Q5),this._onDidEscape=this._register(new u.Q5),this.options=t,this._element=document.createElement("a"),this._element.classList.add("monaco-button"),this._element.tabIndex=0,this._element.setAttribute("role","button"),this._element.classList.toggle("secondary",!!t.secondary);const i=t.secondary?t.buttonSecondaryBackground:t.buttonBackground,o=t.secondary?t.buttonSecondaryForeground:t.buttonForeground;this._element.style.color=o||"",this._element.style.backgroundColor=i||"",t.supportShortLabel&&(this._labelShortElement=document.createElement("div"),this._labelShortElement.classList.add("monaco-button-label-short"),this._element.appendChild(this._labelShortElement),this._labelElement=document.createElement("div"),this._labelElement.classList.add("monaco-button-label"),this._element.appendChild(this._labelElement),this._element.classList.add("monaco-text-button-with-short-label")),"string"===typeof t.title&&this.setTitle(t.title),"string"===typeof t.ariaLabel&&this._element.setAttribute("aria-label",t.ariaLabel),e.appendChild(this._element),this._register(a.o.addTarget(this._element)),[n.tw.CLICK,a.t.Tap].forEach((e=>{this._register((0,n.nm)(this._element,e,(e=>{this.enabled?this._onDidClick.fire(e):n.zB.stop(e)})))})),this._register((0,n.nm)(this._element,n.tw.KEY_DOWN,(e=>{const t=new s.y(e);let i=!1;this.enabled&&(t.equals(3)||t.equals(10))?(this._onDidClick.fire(e),i=!0):t.equals(9)&&(this._onDidEscape.fire(e),this._element.blur(),i=!0),i&&n.zB.stop(t,!0)}))),this._register((0,n.nm)(this._element,n.tw.MOUSE_OVER,(e=>{this._element.classList.contains("disabled")||this.updateBackground(!0)}))),this._register((0,n.nm)(this._element,n.tw.MOUSE_OUT,(e=>{this.updateBackground(!1)}))),this.focusTracker=this._register((0,n.go)(this._element)),this._register(this.focusTracker.onDidFocus((()=>{this.enabled&&this.updateBackground(!0)}))),this._register(this.focusTracker.onDidBlur((()=>{this.enabled&&this.updateBackground(!1)})))}dispose(){super.dispose(),this._element.remove()}getContentElements(e){const t=[];for(let i of(0,d.T)(e))if("string"===typeof i){if(i=i.trim(),""===i)continue;const e=document.createElement("span");e.textContent=i,t.push(e)}else t.push(i);return t}updateBackground(e){let t;t=this.options.secondary?e?this.options.buttonSecondaryHoverBackground:this.options.buttonSecondaryBackground:e?this.options.buttonHoverBackground:this.options.buttonBackground,t&&(this._element.style.backgroundColor=t)}get element(){return this._element}set label(e){var t;if(this._label===e)return;if((0,g.Fr)(this._label)&&(0,g.Fr)(e)&&(0,g.g_)(this._label,e))return;this._element.classList.add("monaco-text-button");const i=this.options.supportShortLabel?this._labelElement:this._element;if((0,g.Fr)(e)){const s=(0,r.ap)(e,{inline:!0});s.dispose();const a=null===(t=s.element.querySelector("p"))||void 0===t?void 0:t.innerHTML;if(a){const e=(0,o.Nw)(a,{ADD_TAGS:["b","i","u","code","span"],ALLOWED_ATTR:["class"],RETURN_TRUSTED_TYPE:!0});i.innerHTML=e}else(0,n.mc)(i)}else this.options.supportIcons?(0,n.mc)(i,...this.getContentElements(e)):i.textContent=e;let s="";"string"===typeof this.options.title?s=this.options.title:this.options.title&&(s=(0,r.et)(e)),this.setTitle(s),"string"===typeof this.options.ariaLabel?this._element.setAttribute("aria-label",this.options.ariaLabel):this.options.ariaLabel&&this._element.setAttribute("aria-label",s),this._label=e}get label(){return this._label}set icon(e){this._element.classList.add(...f.k.asClassNameArray(e))}set enabled(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)))}get enabled(){return!this._element.classList.contains("disabled")}setTitle(e){var t;this._hover||""===e?this._hover&&this._hover.update(e):this._hover=this._register((0,h.g)(null!==(t=this.options.hoverDelegate)&&void 0!==t?t:(0,l.tM)("mouse"),this._element,e))}}},87699:(e,t,i)=>{i.d(t,{Z:()=>s});var n=i(85714),o=i(25085);class s{constructor(e,t,i){this.options=t,this.styles=i,this.count=0,this.element=(0,n.R3)(e,(0,n.$)(".monaco-count-badge")),this.countFormat=this.options.countFormat||"{0}",this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0)}setCount(e){this.count=e,this.render()}setTitleFormat(e){this.titleFormat=e,this.render()}render(){var e,t;this.element.textContent=(0,o.WU)(this.countFormat,this.count),this.element.title=(0,o.WU)(this.titleFormat,this.count),this.element.style.backgroundColor=null!==(e=this.styles.badgeBackground)&&void 0!==e?e:"",this.element.style.color=null!==(t=this.styles.badgeForeground)&&void 0!==t?t:"",this.styles.badgeBorder&&(this.element.style.border="1px solid ".concat(this.styles.badgeBorder))}}},754:(e,t,i)=>{i.d(t,{C:()=>g});var n=i(85714),o=i(66193),s=i(39341),r=i(48688),a=i(22337),l=i(24219);class h extends a.Wi{constructor(e,t){super(),this._onDidChangeVisibility=this._register(new l.Q5),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this._element=(0,n.R3)(e,(0,n.$)(".monaco-dropdown")),this._label=(0,n.R3)(this._element,(0,n.$)(".dropdown-label"));let i=t.labelRenderer;i||(i=e=>(e.textContent=t.label||"",null));for(const s of[n.tw.CLICK,n.tw.MOUSE_DOWN,r.t.Tap])this._register((0,n.nm)(this.element,s,(e=>n.zB.stop(e,!0))));for(const s of[n.tw.MOUSE_DOWN,r.t.Tap])this._register((0,n.nm)(this._label,s,(e=>{(0,n.N5)(e)&&(e.detail>1||0!==e.button)||(this.visible?this.hide():this.show())})));this._register((0,n.nm)(this._label,n.tw.KEY_UP,(e=>{const t=new s.y(e);(t.equals(3)||t.equals(10))&&(n.zB.stop(e,!0),this.visible?this.hide():this.show())})));const o=i(this._label);o&&this._register(o),this._register(r.o.addTarget(this._label))}get element(){return this._element}show(){this.visible||(this.visible=!0,this._onDidChangeVisibility.fire(!0))}hide(){this.visible&&(this.visible=!1,this._onDidChangeVisibility.fire(!1))}dispose(){super.dispose(),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)}}class d extends h{constructor(e,t){super(e,t),this._options=t,this._actions=[],this.actions=t.actions||[]}set menuOptions(e){this._menuOptions=e}get menuOptions(){return this._menuOptions}get actions(){return this._options.actionProvider?this._options.actionProvider.getActions():this._actions}set actions(e){this._actions=e}show(){super.show(),this.element.classList.add("active"),this._options.contextMenuProvider.showContextMenu({getAnchor:()=>this.element,getActions:()=>this.actions,getActionsContext:()=>this.menuOptions?this.menuOptions.context:null,getActionViewItem:(e,t)=>this.menuOptions&&this.menuOptions.actionViewItemProvider?this.menuOptions.actionViewItemProvider(e,t):void 0,getKeyBinding:e=>this.menuOptions&&this.menuOptions.getKeyBinding?this.menuOptions.getKeyBinding(e):void 0,getMenuClassName:()=>this._options.menuClassName||"",onHide:()=>this.onHide(),actionRunner:this.menuOptions?this.menuOptions.actionRunner:void 0,anchorAlignment:this.menuOptions?this.menuOptions.anchorAlignment:0,domForShadowRoot:this._options.menuAsChild?this.element:void 0,skipTelemetry:this._options.skipTelemetry})}hide(){super.hide()}onHide(){this.hide(),this.element.classList.remove("active")}}var c=i(34392),u=i(14561);class g extends o.YH{constructor(e,t,i){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Object.create(null);super(null,e,n),this.actionItem=null,this._onDidChangeVisibility=this._register(new l.Q5),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this.menuActionsOrProvider=t,this.contextMenuProvider=i,this.options=n,this.options.actionRunner&&(this.actionRunner=this.options.actionRunner)}render(e){this.actionItem=e;const t=Array.isArray(this.menuActionsOrProvider),i={contextMenuProvider:this.contextMenuProvider,labelRenderer:e=>{var t;this.element=(0,n.R3)(e,(0,n.$)("a.action-label"));let i=[];return"string"===typeof this.options.classNames?i=this.options.classNames.split(/\s+/g).filter((e=>!!e)):this.options.classNames&&(i=this.options.classNames),i.find((e=>"icon"===e))||i.push("codicon"),this.element.classList.add(...i),this.element.setAttribute("role","button"),this.element.setAttribute("aria-haspopup","true"),this.element.setAttribute("aria-expanded","false"),this._action.label&&this._register((0,c.g)(null!==(t=this.options.hoverDelegate)&&void 0!==t?t:(0,u.tM)("mouse"),this.element,this._action.label)),this.element.ariaLabel=this._action.label||"",null},menuAsChild:this.options.menuAsChild,actions:t?this.menuActionsOrProvider:void 0,actionProvider:t?void 0:this.menuActionsOrProvider,skipTelemetry:this.options.skipTelemetry};if(this.dropdownMenu=this._register(new d(e,i)),this._register(this.dropdownMenu.onDidChangeVisibility((e=>{var t;null===(t=this.element)||void 0===t||t.setAttribute("aria-expanded","".concat(e)),this._onDidChangeVisibility.fire(e)}))),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){const e=this;this.dropdownMenu.menuOptions={...this.dropdownMenu.menuOptions,get anchorAlignment(){return e.options.anchorAlignmentProvider()}}}this.updateTooltip(),this.updateEnabled()}getTooltip(){let e=null;return this.action.tooltip?e=this.action.tooltip:this.action.label&&(e=this.action.label),null!==e&&void 0!==e?e:void 0}setActionContext(e){super.setActionContext(e),this.dropdownMenu&&(this.dropdownMenu.menuOptions?this.dropdownMenu.menuOptions.context=e:this.dropdownMenu.menuOptions={context:e})}show(){var e;null===(e=this.dropdownMenu)||void 0===e||e.show()}updateEnabled(){var e,t;const i=!this.action.enabled;null===(e=this.actionItem)||void 0===e||e.classList.toggle("disabled",i),null===(t=this.element)||void 0===t||t.classList.toggle("disabled",i)}}},51459:(e,t,i)=>{i.d(t,{V:()=>u});var n=i(85714),o=i(14456),s=i(92707),r=i(74812),a=i(24219),l=(i(35542),i(71721)),h=i(89599),d=i(14561);const c=l.NC("defaultLabel","input");class u extends r.${constructor(e,t,i){super(),this.fixFocusOnOptionClickEnabled=!0,this.imeSessionInProgress=!1,this.additionalTogglesDisposables=this._register(new h.XK),this.additionalToggles=[],this._onDidOptionChange=this._register(new a.Q5),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new a.Q5),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new a.Q5),this.onMouseDown=this._onMouseDown.event,this._onInput=this._register(new a.Q5),this._onKeyUp=this._register(new a.Q5),this._onCaseSensitiveKeyDown=this._register(new a.Q5),this.onCaseSensitiveKeyDown=this._onCaseSensitiveKeyDown.event,this._onRegexKeyDown=this._register(new a.Q5),this.onRegexKeyDown=this._onRegexKeyDown.event,this._lastHighlightFindOptions=0,this.placeholder=i.placeholder||"",this.validation=i.validation,this.label=i.label||c,this.showCommonFindToggles=!!i.showCommonFindToggles;const r=i.appendCaseSensitiveLabel||"",l=i.appendWholeWordsLabel||"",u=i.appendRegexLabel||"",g=i.history||[],m=!!i.flexibleHeight,f=!!i.flexibleWidth,p=i.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new s.pG(this.domNode,t,{placeholder:this.placeholder||"",ariaLabel:this.label||"",validationOptions:{validation:this.validation},history:g,showHistoryHint:i.showHistoryHint,flexibleHeight:m,flexibleWidth:f,flexibleMaxHeight:p,inputBoxStyles:i.inputBoxStyles}));const _=this._register((0,d.p0)());if(this.showCommonFindToggles){this.regex=this._register(new o.eH({appendTitle:u,isChecked:!1,hoverDelegate:_,...i.toggleStyles})),this._register(this.regex.onChange((e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()}))),this._register(this.regex.onKeyDown((e=>{this._onRegexKeyDown.fire(e)}))),this.wholeWords=this._register(new o.Qx({appendTitle:l,isChecked:!1,hoverDelegate:_,...i.toggleStyles})),this._register(this.wholeWords.onChange((e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()}))),this.caseSensitive=this._register(new o.rk({appendTitle:r,isChecked:!1,hoverDelegate:_,...i.toggleStyles})),this._register(this.caseSensitive.onChange((e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()}))),this._register(this.caseSensitive.onKeyDown((e=>{this._onCaseSensitiveKeyDown.fire(e)})));const e=[this.caseSensitive.domNode,this.wholeWords.domNode,this.regex.domNode];this.onkeydown(this.domNode,(t=>{if(t.equals(15)||t.equals(17)||t.equals(9)){const i=e.indexOf(this.domNode.ownerDocument.activeElement);if(i>=0){let o=-1;t.equals(17)?o=(i+1)%e.length:t.equals(15)&&(o=0===i?e.length-1:i-1),t.equals(9)?(e[i].blur(),this.inputBox.focus()):o>=0&&e[o].focus(),n.zB.stop(t,!0)}}}))}this.controls=document.createElement("div"),this.controls.className="controls",this.controls.style.display=this.showCommonFindToggles?"":"none",this.caseSensitive&&this.controls.append(this.caseSensitive.domNode),this.wholeWords&&this.controls.appendChild(this.wholeWords.domNode),this.regex&&this.controls.appendChild(this.regex.domNode),this.setAdditionalToggles(null===i||void 0===i?void 0:i.additionalToggles),this.controls&&this.domNode.appendChild(this.controls),null===e||void 0===e||e.appendChild(this.domNode),this._register(n.nm(this.inputBox.inputElement,"compositionstart",(e=>{this.imeSessionInProgress=!0}))),this._register(n.nm(this.inputBox.inputElement,"compositionend",(e=>{this.imeSessionInProgress=!1,this._onInput.fire()}))),this.onkeydown(this.inputBox.inputElement,(e=>this._onKeyDown.fire(e))),this.onkeyup(this.inputBox.inputElement,(e=>this._onKeyUp.fire(e))),this.oninput(this.inputBox.inputElement,(e=>this._onInput.fire())),this.onmousedown(this.inputBox.inputElement,(e=>this._onMouseDown.fire(e)))}get onDidChange(){return this.inputBox.onDidChange}layout(e){this.inputBox.layout(),this.updateInputBoxPadding(e.collapsedFindWidget)}enable(){var e,t,i;this.domNode.classList.remove("disabled"),this.inputBox.enable(),null===(e=this.regex)||void 0===e||e.enable(),null===(t=this.wholeWords)||void 0===t||t.enable(),null===(i=this.caseSensitive)||void 0===i||i.enable();for(const n of this.additionalToggles)n.enable()}disable(){var e,t,i;this.domNode.classList.add("disabled"),this.inputBox.disable(),null===(e=this.regex)||void 0===e||e.disable(),null===(t=this.wholeWords)||void 0===t||t.disable(),null===(i=this.caseSensitive)||void 0===i||i.disable();for(const n of this.additionalToggles)n.disable()}setFocusInputOnOptionClick(e){this.fixFocusOnOptionClickEnabled=e}setEnabled(e){e?this.enable():this.disable()}setAdditionalToggles(e){for(const t of this.additionalToggles)t.domNode.remove();this.additionalToggles=[],this.additionalTogglesDisposables.value=new h.SL;for(const t of null!==e&&void 0!==e?e:[])this.additionalTogglesDisposables.value.add(t),this.controls.appendChild(t.domNode),this.additionalTogglesDisposables.value.add(t.onChange((e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus()}))),this.additionalToggles.push(t);this.additionalToggles.length>0&&(this.controls.style.display=""),this.updateInputBoxPadding()}updateInputBoxPadding(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];var t,i,n,o,s,r;this.inputBox.paddingRight=e?0:(null!==(i=null===(t=this.caseSensitive)||void 0===t?void 0:t.width())&&void 0!==i?i:0)+(null!==(o=null===(n=this.wholeWords)||void 0===n?void 0:n.width())&&void 0!==o?o:0)+(null!==(r=null===(s=this.regex)||void 0===s?void 0:s.width())&&void 0!==r?r:0)+this.additionalToggles.reduce(((e,t)=>e+t.width()),0)}getValue(){return this.inputBox.value}setValue(e){this.inputBox.value!==e&&(this.inputBox.value=e)}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getCaseSensitive(){var e,t;return null!==(t=null===(e=this.caseSensitive)||void 0===e?void 0:e.checked)&&void 0!==t&&t}setCaseSensitive(e){this.caseSensitive&&(this.caseSensitive.checked=e)}getWholeWords(){var e,t;return null!==(t=null===(e=this.wholeWords)||void 0===e?void 0:e.checked)&&void 0!==t&&t}setWholeWords(e){this.wholeWords&&(this.wholeWords.checked=e)}getRegex(){var e,t;return null!==(t=null===(e=this.regex)||void 0===e?void 0:e.checked)&&void 0!==t&&t}setRegex(e){this.regex&&(this.regex.checked=e,this.validate())}focusOnCaseSensitive(){var e;null===(e=this.caseSensitive)||void 0===e||e.focus()}highlightFindOptions(){this.domNode.classList.remove("highlight-"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,this.domNode.classList.add("highlight-"+this._lastHighlightFindOptions)}validate(){this.inputBox.validate()}showMessage(e){this.inputBox.showMessage(e)}clearMessage(){this.inputBox.hideMessage()}}},14456:(e,t,i)=>{i.d(t,{Qx:()=>c,eH:()=>u,rk:()=>d});var n=i(14561),o=i(79242),s=i(62974),r=i(71721);const a=r.NC("caseDescription","Match Case"),l=r.NC("wordsDescription","Match Whole Word"),h=r.NC("regexDescription","Use Regular Expression");class d extends o.Z{constructor(e){var t;super({icon:s.l.caseSensitive,title:a+e.appendTitle,isChecked:e.isChecked,hoverDelegate:null!==(t=e.hoverDelegate)&&void 0!==t?t:(0,n.tM)("element"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class c extends o.Z{constructor(e){var t;super({icon:s.l.wholeWord,title:l+e.appendTitle,isChecked:e.isChecked,hoverDelegate:null!==(t=e.hoverDelegate)&&void 0!==t?t:(0,n.tM)("element"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class u extends o.Z{constructor(e){var t;super({icon:s.l.regex,title:h+e.appendTitle,isChecked:e.isChecked,hoverDelegate:null!==(t=e.hoverDelegate)&&void 0!==t?t:(0,n.tM)("element"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}},81878:(e,t,i)=>{i.d(t,{q:()=>h});var n=i(85714),o=i(14561),s=i(34392),r=i(76272),a=i(89599),l=i(10451);class h extends a.JT{constructor(e,t){var i;super(),this.options=t,this.text="",this.title="",this.highlights=[],this.didEverRender=!1,this.supportIcons=null!==(i=null===t||void 0===t?void 0:t.supportIcons)&&void 0!==i&&i,this.domNode=n.R3(e,n.$("span.monaco-highlighted-label"))}get element(){return this.domNode}set(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";e||(e=""),(arguments.length>3?arguments[3]:void 0)&&(e=h.escapeNewLines(e,t)),this.didEverRender&&this.text===e&&this.title===i&&l.fS(this.highlights,t)||(this.text=e,this.title=i,this.highlights=t,this.render())}render(){var e,t,i,a;const l=[];let h=0;for(const o of this.highlights){if(o.end===o.start)continue;if(h{n="\r\n"===e?-1:0,o+=i;for(const i of t)i.end<=o||(i.start>=o&&(i.start+=n),i.end>=o&&(i.end+=n));return i+=n,"\u23ce"}))}}},14561:(e,t,i)=>{i.d(t,{p0:()=>h,rM:()=>a,tM:()=>l});var n=i(73187);let o=()=>({get delay(){return-1},dispose:()=>{},showHover:()=>{}});const s=new n.o((()=>o("mouse",!1))),r=new n.o((()=>o("element",!1)));function a(e){o=e}function l(e){return"element"===e?r.value:s.value}function h(){return o("element",!0)}},89883:(e,t,i)=>{i.d(t,{Sr:()=>d,c8:()=>h,uX:()=>c});var n=i(85714),o=i(39341),s=i(66561),r=i(89599),a=i(71721);const l=n.$;class h extends r.JT{constructor(){super(),this.containerDomNode=document.createElement("div"),this.containerDomNode.className="monaco-hover",this.containerDomNode.tabIndex=0,this.containerDomNode.setAttribute("role","tooltip"),this.contentsDomNode=document.createElement("div"),this.contentsDomNode.className="monaco-hover-content",this.scrollbar=this._register(new s.s$(this.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),this.containerDomNode.appendChild(this.scrollbar.getDomNode())}onContentsChanged(){this.scrollbar.scanDomNode()}}class d extends r.JT{static render(e,t,i){return new d(e,t,i)}constructor(e,t,i){super(),this.actionContainer=n.R3(e,l("div.action-container")),this.actionContainer.setAttribute("tabindex","0"),this.action=n.R3(this.actionContainer,l("a.action")),this.action.setAttribute("role","button"),t.iconClass&&n.R3(this.action,l("span.icon.".concat(t.iconClass)));n.R3(this.action,l("span")).textContent=i?"".concat(t.label," (").concat(i,")"):t.label,this._register(n.nm(this.actionContainer,n.tw.CLICK,(e=>{e.stopPropagation(),e.preventDefault(),t.run(this.actionContainer)}))),this._register(n.nm(this.actionContainer,n.tw.KEY_DOWN,(e=>{const i=new o.y(e);(i.equals(3)||i.equals(10))&&(e.stopPropagation(),e.preventDefault(),t.run(this.actionContainer))}))),this.setEnabled(!0)}setEnabled(e){e?(this.actionContainer.classList.remove("disabled"),this.actionContainer.removeAttribute("aria-disabled")):(this.actionContainer.classList.add("disabled"),this.actionContainer.setAttribute("aria-disabled","true"))}}function c(e,t){return e&&t?(0,a.NC)("acessibleViewHint","Inspect this in the accessible view with {0}.",t):e?(0,a.NC)("acessibleViewHintNoKbOpen","Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding."):""}},34392:(e,t,i)=>{i.d(t,{O:()=>c,g:()=>m});var n=i(85714),o=i(60282),s=i(16113),r=i(32936),a=i(43020),l=i(89599),h=i(63686),d=i(71721);function c(e,t){(0,h.HD)(t)?e.title=(0,a.x$)(t):(null===t||void 0===t?void 0:t.markdownNotSupportedFallback)?e.title=t.markdownNotSupportedFallback:e.removeAttribute("title")}class u{constructor(e,t,i){this.hoverDelegate=e,this.target=t,this.fadeInAnimation=i}async update(e,t,i){var n;if(this._cancellationTokenSource&&(this._cancellationTokenSource.dispose(!0),this._cancellationTokenSource=void 0),this.isDisposed)return;let o;if(void 0===e||(0,h.HD)(e)||e instanceof HTMLElement)o=e;else if((0,h.mf)(e.markdown)){this._hoverWidget||this.show((0,d.NC)("iconLabel.loading","Loading..."),t),this._cancellationTokenSource=new s.A;const i=this._cancellationTokenSource.token;if(o=await e.markdown(i),void 0===o&&(o=e.markdownNotSupportedFallback),this.isDisposed||i.isCancellationRequested)return}else o=null!==(n=e.markdown)&&void 0!==n?n:e.markdownNotSupportedFallback;this.show(o,t,i)}show(e,t,i){const n=this._hoverWidget;if(this.hasContent(e)){const o={content:e,target:this.target,appearance:{showPointer:"element"===this.hoverDelegate.placement,skipFadeInAnimation:!this.fadeInAnimation||!!n},position:{hoverPosition:2},...i};this._hoverWidget=this.hoverDelegate.showHover(o,t)}null===n||void 0===n||n.dispose()}hasContent(e){return!!e&&(!(0,r.Fr)(e)||!!e.value)}get isDisposed(){var e;return null===(e=this._hoverWidget)||void 0===e?void 0:e.isDisposed}dispose(){var e,t;null===(e=this._hoverWidget)||void 0===e||e.dispose(),null===(t=this._cancellationTokenSource)||void 0===t||t.dispose(!0),this._cancellationTokenSource=void 0}}function g(e,t){for(t=null!==t&&void 0!==t?t:n.Jj(e).document.body;!e.hasAttribute("custom-hover")&&e!==t;)e=e.parentElement;return e}function m(e,t,i,s){let r,a;t.setAttribute("custom-hover","true"),""!==t.title&&(console.warn("HTML element already has a title attribute, which will conflict with the custom hover. Please remove the title attribute."),console.trace("Stack trace:",t.title),t.title="");const h=(t,i)=>{var n;const o=void 0!==a;t&&(null===a||void 0===a||a.dispose(),a=void 0),i&&(null===r||void 0===r||r.dispose(),r=void 0),o&&(null===(n=e.onDidHideHover)||void 0===n||n.call(e),a=void 0)},d=(n,r,l)=>new o._F((async()=>{a&&!a.isDisposed||(a=new u(e,l||t,n>0),await a.update("function"===typeof i?i():i,r,s))}),n);let c=!1;const m=n.nm(t,n.tw.MOUSE_DOWN,(()=>{c=!0,h(!0,!0)}),!0),f=n.nm(t,n.tw.MOUSE_UP,(()=>{c=!1}),!0),p=n.nm(t,n.tw.MOUSE_LEAVE,(e=>{c=!1,h(!1,e.fromElement===t)}),!0),_=n.nm(t,n.tw.MOUSE_OVER,(i=>{if(r)return;const o=new l.SL,s={targetElements:[t],dispose:()=>{}};if(void 0===e.placement||"mouse"===e.placement){const e=e=>{s.x=e.x+10,e.target instanceof HTMLElement&&g(e.target,t)!==t&&h(!0,!0)};o.add(n.nm(t,n.tw.MOUSE_MOVE,e,!0))}r=o,i.target instanceof HTMLElement&&g(i.target,t)!==t||o.add(d(e.delay,!1,s))}),!0),v=()=>{if(c||r)return;const i={targetElements:[t],dispose:()=>{}},o=new l.SL;o.add(n.nm(t,n.tw.BLUR,(()=>h(!0,!0)),!0)),o.add(d(e.delay,!1,i)),r=o};let b;const C=t.tagName.toLowerCase();"input"!==C&&"textarea"!==C&&(b=n.nm(t,n.tw.FOCUS,v,!0));return{show:e=>{h(!1,!0),d(0,e)},hide:()=>{h(!0,!0)},update:async(e,t)=>{i=e,await(null===a||void 0===a?void 0:a.update(i,void 0,t))},dispose:()=>{_.dispose(),p.dispose(),m.dispose(),f.dispose(),null===b||void 0===b||b.dispose(),h(!0,!0)}}}},25938:(e,t,i)=>{i.d(t,{g:()=>c});var n=i(85714),o=i(81878),s=i(34392),r=i(89599),a=i(10451),l=i(75799),h=i(14561);class d{constructor(e){this._element=e}get element(){return this._element}set textContent(e){this.disposed||e===this._textContent||(this._textContent=e,this._element.textContent=e)}set className(e){this.disposed||e===this._className||(this._className=e,this._element.className=e)}set empty(e){this.disposed||e===this._empty||(this._empty=e,this._element.style.marginLeft=e?"0":"")}dispose(){this.disposed=!0}}class c extends r.JT{constructor(e,t){var i;super(),this.customHovers=new Map,this.creationOptions=t,this.domNode=this._register(new d(n.R3(e,n.$(".monaco-icon-label")))),this.labelContainer=n.R3(this.domNode.element,n.$(".monaco-icon-label-container")),this.nameContainer=n.R3(this.labelContainer,n.$("span.monaco-icon-name-container")),(null===t||void 0===t?void 0:t.supportHighlights)||(null===t||void 0===t?void 0:t.supportIcons)?this.nameNode=this._register(new g(this.nameContainer,!!t.supportIcons)):this.nameNode=new u(this.nameContainer),this.hoverDelegate=null!==(i=null===t||void 0===t?void 0:t.hoverDelegate)&&void 0!==i?i:(0,h.tM)("mouse")}get element(){return this.domNode.element}setLabel(e,t,i){var n;const s=["monaco-icon-label"],r=["monaco-icon-label-container"];let a="";if(i&&(i.extraClasses&&s.push(...i.extraClasses),i.italic&&s.push("italic"),i.strikethrough&&s.push("strikethrough"),i.disabledCommand&&r.push("disabled"),i.title&&("string"===typeof i.title?a+=i.title:a+=e)),this.domNode.className=s.join(" "),this.domNode.element.setAttribute("aria-label",a),this.labelContainer.className=r.join(" "),this.setupHover((null===i||void 0===i?void 0:i.descriptionTitle)?this.labelContainer:this.element,null===i||void 0===i?void 0:i.title),this.nameNode.setLabel(e,i),t||this.descriptionNode){const e=this.getOrCreateDescriptionNode();e instanceof o.q?(e.set(t||"",i?i.descriptionMatches:void 0,void 0,null===i||void 0===i?void 0:i.labelEscapeNewLines),this.setupHover(e.element,null===i||void 0===i?void 0:i.descriptionTitle)):(e.textContent=t&&(null===i||void 0===i?void 0:i.labelEscapeNewLines)?o.q.escapeNewLines(t,[]):t||"",this.setupHover(e.element,(null===i||void 0===i?void 0:i.descriptionTitle)||""),e.empty=!t)}if((null===i||void 0===i?void 0:i.suffix)||this.suffixNode){this.getOrCreateSuffixNode().textContent=null!==(n=null===i||void 0===i?void 0:i.suffix)&&void 0!==n?n:""}}setupHover(e,t){const i=this.customHovers.get(e);if(i&&(i.dispose(),this.customHovers.delete(e)),t)if(this.hoverDelegate.showNativeHover)(0,s.O)(e,t);else{const i=(0,s.g)(this.hoverDelegate,e,t);i&&this.customHovers.set(e,i)}else e.removeAttribute("title")}dispose(){super.dispose();for(const e of this.customHovers.values())e.dispose();this.customHovers.clear()}getOrCreateSuffixNode(){if(!this.suffixNode){const e=this._register(new d(n.e4(this.nameContainer,n.$("span.monaco-icon-suffix-container"))));this.suffixNode=this._register(new d(n.R3(e.element,n.$("span.label-suffix"))))}return this.suffixNode}getOrCreateDescriptionNode(){var e;if(!this.descriptionNode){const t=this._register(new d(n.R3(this.labelContainer,n.$("span.monaco-icon-description-container"))));(null===(e=this.creationOptions)||void 0===e?void 0:e.supportDescriptionHighlights)?this.descriptionNode=this._register(new o.q(n.R3(t.element,n.$("span.label-description")),{supportIcons:!!this.creationOptions.supportIcons})):this.descriptionNode=this._register(new d(n.R3(t.element,n.$("span.label-description"))))}return this.descriptionNode}}class u{constructor(e){this.container=e,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(this.label!==e||!(0,a.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=n.R3(this.container,n.$("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(let i=0;i{const o={start:n,end:n+e.length},s=i.map((e=>l.e.intersect(o,e))).filter((e=>!l.e.isEmpty(e))).map((e=>{let{start:t,end:i}=e;return{start:t-n,end:i-n}}));return n=o.end+t.length,s}))}(e,i,null===t||void 0===t?void 0:t.matches);for(let r=0;r{i.d(t,{T:()=>r,h:()=>a});var n=i(85714),o=i(62502);const s=new RegExp("(\\\\)?\\$\\((".concat(o.k.iconNameExpression,"(?:").concat(o.k.iconModifierExpression,")?)\\)"),"g");function r(e){const t=new Array;let i,n=0,o=0;for(;null!==(i=s.exec(e));){o=i.index||0,n{i.d(t,{pG:()=>C,g4:()=>v});var n=i(85714),o=i(3640),s=i(99957),r=i(65122),a=i(70036),l=i(14561),h=i(34392),d=i(66561),c=i(74812),u=i(24219);class g{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t-1;this.items=e,this.start=t,this.end=i,this.index=n}current(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]}next(){return this.index=Math.min(this.index+1,this.end),this.current()}previous(){return this.index=Math.max(this.index-1,this.start-1),this.current()}first(){return this.index=this.start,this.current()}last(){return this.index=this.end-1,this.current()}}class m{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;this._initialize(e),this._limit=t,this._onChange()}getHistory(){return this._elements}add(e){this._history.delete(e),this._history.add(e),this._onChange()}next(){return this._navigator.next()}previous(){return 0!==this._currentPosition()?this._navigator.previous():null}current(){return this._navigator.current()}first(){return this._navigator.first()}last(){return this._navigator.last()}isLast(){return this._currentPosition()>=this._elements.length-1}isNowhere(){return null===this._navigator.current()}has(e){return this._history.has(e)}_onChange(){this._reduceToLimit();const e=this._elements;this._navigator=new g(e,0,e.length,e.length)}_reduceToLimit(){const e=this._elements;e.length>this._limit&&this._initialize(e.slice(e.length-this._limit))}_currentPosition(){const e=this._navigator.current();return e?this._elements.indexOf(e):-1}_initialize(e){this._history=new Set;for(const t of e)this._history.add(t)}get _elements(){const e=[];return this._history.forEach((t=>e.push(t))),e}}var f=i(10451),p=i(71721);const _=n.$,v={inputBackground:"#3C3C3C",inputForeground:"#CCCCCC",inputValidationInfoBorder:"#55AAFF",inputValidationInfoBackground:"#063B49",inputValidationWarningBorder:"#B89500",inputValidationWarningBackground:"#352A05",inputValidationErrorBorder:"#BE1100",inputValidationErrorBackground:"#5A1D1D",inputBorder:void 0,inputValidationErrorForeground:void 0,inputValidationInfoForeground:void 0,inputValidationWarningForeground:void 0};class b extends c.${constructor(e,t,i){var s;super(),this.state="idle",this.maxHeight=Number.POSITIVE_INFINITY,this._onDidChange=this._register(new u.Q5),this.onDidChange=this._onDidChange.event,this._onDidHeightChange=this._register(new u.Q5),this.onDidHeightChange=this._onDidHeightChange.event,this.contextViewProvider=t,this.options=i,this.message=null,this.placeholder=this.options.placeholder||"",this.tooltip=null!==(s=this.options.tooltip)&&void 0!==s?s:this.placeholder||"",this.ariaLabel=this.options.ariaLabel||"",this.options.validationOptions&&(this.validation=this.options.validationOptions.validation),this.element=n.R3(e,_(".monaco-inputbox.idle"));const a=this.options.flexibleHeight?"textarea":"input",l=n.R3(this.element,_(".ibwrapper"));if(this.input=n.R3(l,_(a+".input.empty")),this.input.setAttribute("autocorrect","off"),this.input.setAttribute("autocapitalize","off"),this.input.setAttribute("spellcheck","false"),this.onfocus(this.input,(()=>this.element.classList.add("synthetic-focus"))),this.onblur(this.input,(()=>this.element.classList.remove("synthetic-focus"))),this.options.flexibleHeight){this.maxHeight="number"===typeof this.options.flexibleMaxHeight?this.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,this.mirror=n.R3(l,_("div.mirror")),this.mirror.innerText="\xa0",this.scrollableElement=new d.NB(this.element,{vertical:1}),this.options.flexibleWidth&&(this.input.setAttribute("wrap","off"),this.mirror.style.whiteSpace="pre",this.mirror.style.wordWrap="initial"),n.R3(e,this.scrollableElement.getDomNode()),this._register(this.scrollableElement),this._register(this.scrollableElement.onScroll((e=>this.input.scrollTop=e.scrollTop)));const t=this._register(new o.Y(e.ownerDocument,"selectionchange")),i=u.ju.filter(t.event,(()=>{const t=e.ownerDocument.getSelection();return(null===t||void 0===t?void 0:t.anchorNode)===l}));this._register(i(this.updateScrollDimensions,this)),this._register(this.onDidHeightChange(this.updateScrollDimensions,this))}else this.input.type=this.options.type||"text",this.input.setAttribute("wrap","off");this.ariaLabel&&this.input.setAttribute("aria-label",this.ariaLabel),this.placeholder&&!this.options.showPlaceholderOnFocus&&this.setPlaceHolder(this.placeholder),this.tooltip&&this.setTooltip(this.tooltip),this.oninput(this.input,(()=>this.onValueChange())),this.onblur(this.input,(()=>this.onBlur())),this.onfocus(this.input,(()=>this.onFocus())),this._register(this.ignoreGesture(this.input)),setTimeout((()=>this.updateMirror()),0),this.options.actions&&(this.actionbar=this._register(new r.o(this.element)),this.actionbar.push(this.options.actions,{icon:!0,label:!1})),this.applyStyles()}onBlur(){this._hideMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder","")}onFocus(){this._showMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder",this.placeholder||"")}setPlaceHolder(e){this.placeholder=e,this.input.setAttribute("placeholder",e)}setTooltip(e){this.tooltip=e,this.hover?this.hover.update(e):this.hover=this._register((0,h.g)((0,l.tM)("mouse"),this.input,e))}get inputElement(){return this.input}get value(){return this.input.value}set value(e){this.input.value!==e&&(this.input.value=e,this.onValueChange())}get height(){return"number"===typeof this.cachedHeight?this.cachedHeight:n.wn(this.element)}focus(){this.input.focus()}blur(){this.input.blur()}hasFocus(){return n.H9(this.input)}select(){let 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))}isSelectionAtEnd(){return this.input.selectionEnd===this.input.value.length&&this.input.selectionStart===this.input.selectionEnd}getSelection(){var e;const t=this.input.selectionStart;if(null===t)return null;return{start:t,end:null!==(e=this.input.selectionEnd)&&void 0!==e?e:t}}enable(){this.input.removeAttribute("disabled")}disable(){this.blur(),this.input.disabled=!0,this._hideMessage()}set paddingRight(e){this.input.style.width="calc(100% - ".concat(e,"px)"),this.mirror&&(this.mirror.style.paddingRight=e+"px")}updateScrollDimensions(){if("number"!==typeof this.cachedContentHeight||"number"!==typeof this.cachedHeight||!this.scrollableElement)return;const e=this.cachedContentHeight,t=this.cachedHeight,i=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:e,height:t}),this.scrollableElement.setScrollPosition({scrollTop:i})}showMessage(e,t){if("open"===this.state&&(0,f.fS)(this.message,e))return;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));const i=this.stylesForType(this.message.type);this.element.style.border="1px solid ".concat(n.XT(i.border,"transparent")),this.message.content&&(this.hasFocus()||t)&&this._showMessage()}hideMessage(){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()}validate(){let e=null;return this.validation&&(e=this.validation(this.value),e?(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}stylesForType(e){const t=this.options.inputBoxStyles;switch(e){case 1:return{border:t.inputValidationInfoBorder,background:t.inputValidationInfoBackground,foreground:t.inputValidationInfoForeground};case 2:return{border:t.inputValidationWarningBorder,background:t.inputValidationWarningBackground,foreground:t.inputValidationWarningForeground};default:return{border:t.inputValidationErrorBorder,background:t.inputValidationErrorBackground,foreground:t.inputValidationErrorForeground}}}classForType(e){switch(e){case 1:return"info";case 2:return"warning";default:return"error"}}_showMessage(){if(!this.contextViewProvider||!this.message)return;let e;const t=()=>e.style.width=n.w(this.element)+"px";let i;this.contextViewProvider.showContextView({getAnchor:()=>this.element,anchorAlignment:1,render:i=>{var o,r;if(!this.message)return null;e=n.R3(i,_(".monaco-inputbox-container")),t();const a={inline:!0,className:"monaco-inputbox-message"},l=this.message.formatContent?(0,s.BO)(this.message.content,a):(0,s.IY)(this.message.content,a);l.classList.add(this.classForType(this.message.type));const h=this.stylesForType(this.message.type);return l.style.backgroundColor=null!==(o=h.background)&&void 0!==o?o:"",l.style.color=null!==(r=h.foreground)&&void 0!==r?r:"",l.style.border=h.border?"1px solid ".concat(h.border):"",n.R3(e,l),null},onHide:()=>{this.state="closed"},layout:t}),i=3===this.message.type?p.NC("alertErrorMessage","Error: {0}",this.message.content):2===this.message.type?p.NC("alertWarningMessage","Warning: {0}",this.message.content):p.NC("alertInfoMessage","Info: {0}",this.message.content),a.Z9(i),this.state="open"}_hideMessage(){this.contextViewProvider&&("open"===this.state&&this.contextViewProvider.hideContextView(),this.state="idle")}onValueChange(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),this.input.classList.toggle("empty",!this.value),"open"===this.state&&this.contextViewProvider&&this.contextViewProvider.layout()}updateMirror(){if(!this.mirror)return;const e=this.value,t=10===e.charCodeAt(e.length-1)?" ":"";(e+t).replace(/\u000c/g,"")?this.mirror.textContent=e+t:this.mirror.innerText="\xa0",this.layout()}applyStyles(){var e,t,i;const o=this.options.inputBoxStyles,s=null!==(e=o.inputBackground)&&void 0!==e?e:"",r=null!==(t=o.inputForeground)&&void 0!==t?t:"",a=null!==(i=o.inputBorder)&&void 0!==i?i:"";this.element.style.backgroundColor=s,this.element.style.color=r,this.input.style.backgroundColor="inherit",this.input.style.color=r,this.element.style.border="1px solid ".concat(n.XT(a,"transparent"))}layout(){if(!this.mirror)return;const e=this.cachedContentHeight;this.cachedContentHeight=n.wn(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))}insertAtCursor(e){const t=this.inputElement,i=t.selectionStart,n=t.selectionEnd,o=t.value;null!==i&&null!==n&&(this.value=o.substr(0,i)+e+o.substr(n),t.setSelectionRange(i+1,i+1),this.layout())}dispose(){var e;this._hideMessage(),this.message=null,null===(e=this.actionbar)||void 0===e||e.dispose(),super.dispose()}}class C extends b{constructor(e,t,i){const o=p.NC({key:"history.inputbox.hint.suffix.noparens",comment:['Text is the suffix of an input field placeholder coming after the action the input field performs, this will be used when the input field ends in a closing parenthesis ")", for example "Filter (e.g. text, !exclude)". The character inserted into the final string is \u21c5 to represent the up and down arrow keys.']}," or {0} for history","\u21c5"),s=p.NC({key:"history.inputbox.hint.suffix.inparens",comment:['Text is the suffix of an input field placeholder coming after the action the input field performs, this will be used when the input field does NOT end in a closing parenthesis (eg. "Find"). The character inserted into the final string is \u21c5 to represent the up and down arrow keys.']}," ({0} for history)","\u21c5");super(e,t,i),this._onDidFocus=this._register(new u.Q5),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new u.Q5),this.onDidBlur=this._onDidBlur.event,this.history=new m(i.history,100);const r=()=>{if(i.showHistoryHint&&i.showHistoryHint()&&!this.placeholder.endsWith(o)&&!this.placeholder.endsWith(s)&&this.history.getHistory().length){const e=this.placeholder.endsWith(")")?o:s,t=this.placeholder+e;i.showPlaceholderOnFocus&&!n.H9(this.input)?this.placeholder=t:this.setPlaceHolder(t)}};this.observer=new MutationObserver(((e,t)=>{e.forEach((e=>{e.target.textContent||r()}))})),this.observer.observe(this.input,{attributeFilter:["class"]}),this.onfocus(this.input,(()=>r())),this.onblur(this.input,(()=>{const e=e=>{if(this.placeholder.endsWith(e)){const t=this.placeholder.slice(0,this.placeholder.length-e.length);return i.showPlaceholderOnFocus?this.placeholder=t:this.setPlaceHolder(t),!0}return!1};e(s)||e(o)}))}dispose(){super.dispose(),this.observer&&(this.observer.disconnect(),this.observer=void 0)}addToHistory(e){this.value&&(e||this.value!==this.getCurrentValue())&&this.history.add(this.value)}isAtLastInHistory(){return this.history.isLast()}isNowhereInHistory(){return this.history.isNowhere()}showNextValue(){this.history.has(this.value)||this.addToHistory();let e=this.getNextValue();e&&(e=e===this.value?this.getNextValue():e),this.value=null!==e&&void 0!==e?e:"",a.i7(this.value?this.value:p.NC("clearedInput","Cleared Input"))}showPreviousValue(){this.history.has(this.value)||this.addToHistory();let e=this.getPreviousValue();e&&(e=e===this.value?this.getPreviousValue():e),e&&(this.value=e,a.i7(this.value))}setPlaceHolder(e){super.setPlaceHolder(e),this.setTooltip(e)}onBlur(){super.onBlur(),this._onDidBlur.fire()}onFocus(){super.onFocus(),this._onDidFocus.fire()}getCurrentValue(){let e=this.history.current();return e||(e=this.history.last(),this.history.next()),e}getPreviousValue(){return this.history.previous()||this.history.first()}getNextValue(){return this.history.next()}}},75404:(e,t,i)=>{i.d(t,{e:()=>u,F:()=>c});var n=i(85714),o=i(14561),s=i(34392),r=i(87818),a=i(89599),l=i(10451),h=i(71721);const d=n.$,c={keybindingLabelBackground:void 0,keybindingLabelForeground:void 0,keybindingLabelBorder:void 0,keybindingLabelBottomBorder:void 0,keybindingLabelShadow:void 0};class u extends a.JT{constructor(e,t,i){super(),this.os=t,this.keyElements=new Set,this.options=i||Object.create(null);const r=this.options.keybindingLabelForeground;this.domNode=n.R3(e,d(".monaco-keybinding")),r&&(this.domNode.style.color=r),this.hover=this._register((0,s.g)((0,o.tM)("mouse"),this.domNode,"")),this.didEverRender=!1,e.appendChild(this.domNode)}get element(){return this.domNode}set(e,t){this.didEverRender&&this.keybinding===e&&u.areSame(this.matches,t)||(this.keybinding=e,this.matches=t,this.render())}render(){var e;if(this.clear(),this.keybinding){const t=this.keybinding.getChords();t[0]&&this.renderChord(this.domNode,t[0],this.matches?this.matches.firstPart:null);for(let e=1;e1&&void 0!==arguments[1]?arguments[1]:""),void 0,e);return this.keyElements.add(t),this.options.keybindingLabelBackground&&(t.style.backgroundColor=this.options.keybindingLabelBackground),this.options.keybindingLabelBorder&&(t.style.borderColor=this.options.keybindingLabelBorder),this.options.keybindingLabelBottomBorder&&(t.style.borderBottomColor=this.options.keybindingLabelBottomBorder),this.options.keybindingLabelShadow&&(t.style.boxShadow="inset 0 -1px 0 ".concat(this.options.keybindingLabelShadow)),t}static areSame(e,t){return e===t||!e&&!t||!!e&&!!t&&(0,l.fS)(e.firstPart,t.firstPart)&&(0,l.fS)(e.chordPart,t.chordPart)}}},84931:(e,t,i)=>{i.d(t,{kX:()=>L,Bv:()=>x});var n=i(86487),o=i(85714),s=i(3640),r=i(48688),a=i(66561),l=i(75629),h=i(60282),d=i(30333),c=i(24219),u=i(89599),g=i(75799),m=i(89314);function f(e,t){const i=[];for(const n of t){if(e.start>=n.range.end)continue;if(e.end2&&void 0!==arguments[2]?arguments[2]:[];const n=i.length-t,o=f({start:0,end:e},this.groups),s=f({start:e+t,end:Number.POSITIVE_INFINITY},this.groups).map((e=>({range:p(e.range,n),size:e.size}))),r=i.map(((t,i)=>({range:{start:e+i,end:e+i+1},size:t.size})));this.groups=function(){for(var e=arguments.length,t=new Array(e),i=0;ie.concat(t)),[]))}(o,r,s),this._size=this._paddingTop+this.groups.reduce(((e,t)=>e+t.size*(t.range.end-t.range.start)),0)}get count(){const e=this.groups.length;return e?this.groups[e-1].range.end:0}get size(){return this._size}indexAt(e){if(e<0)return-1;if(e{for(const i of e){this.getRenderer(t).disposeTemplate(i.templateData),i.templateData=null}})),this.cache.clear(),this.transactionNodesPendingRemoval.clear()}getRenderer(e){const t=this.renderers.get(e);if(!t)throw new Error("No renderer found for ".concat(e));return t}}var b=i(85108),C=i(63229),w=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r};const y={CurrentDragAndDropData:void 0},S={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,setRowHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements:e=>[e],getDragURI:()=>null,onDragStart(){},onDragOver:()=>!1,drop(){},dispose(){}},horizontalScrolling:!1,transformOptimization:!0,alwaysConsumeMouseWheel:!0};class L{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class k{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class D{constructor(){this.types=[],this.files=[]}update(e){if(e.types&&this.types.splice(0,this.types.length,...e.types),e.files){this.files.splice(0,this.files.length);for(let t=0;ti,(null===e||void 0===e?void 0:e.getPosInSet)?this.getPosInSet=e.getPosInSet.bind(e):this.getPosInSet=(e,t)=>t+1,(null===e||void 0===e?void 0:e.getRole)?this.getRole=e.getRole.bind(e):this.getRole=e=>"listitem",(null===e||void 0===e?void 0:e.isChecked)?this.isChecked=e.isChecked.bind(e):this.isChecked=e=>{}}}class x{get contentHeight(){return this.rangeMap.size}get onDidScroll(){return this.scrollableElement.onScroll}get scrollableElementDomNode(){return this.scrollableElement.getDomNode()}get horizontalScrolling(){return this._horizontalScrolling}set horizontalScrolling(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){for(const e of this.items)this.measureItemWidth(e);this.updateScrollWidth(),this.scrollableElement.setScrollDimensions({width:(0,o.FK)(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=""}}constructor(e,t,i){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:S;var s,l,d,g,f,p,_,b,C,w,y,L,k;if(this.virtualDelegate=t,this.domId="list_id_".concat(++x.InstanceCount),this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new h.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._onDidChangeContentWidth=new c.Q5,this.onDidChangeContentHeight=c.ju.latch(this._onDidChangeContentHeight.event,void 0,this.disposables),this._horizontalScrolling=!1,n.horizontalScrolling&&n.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");this.items=[],this.itemId=0,this.rangeMap=this.createRangeMap(null!==(s=n.paddingTop)&&void 0!==s?s:0);for(const o of i)this.renderers.set(o.templateId,o);this.cache=this.disposables.add(new v(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 n.mouseSupport||n.mouseSupport),this._horizontalScrolling=null!==(l=n.horizontalScrolling)&&void 0!==l?l:S.horizontalScrolling,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this.paddingBottom="undefined"===typeof n.paddingBottom?0:n.paddingBottom,this.accessibilityProvider=new N(n.accessibilityProvider),this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows";(null!==(d=n.transformOptimization)&&void 0!==d?d:S.transformOptimization)&&(this.rowsContainer.style.transform="translate3d(0px, 0px, 0px)",this.rowsContainer.style.overflow="hidden",this.rowsContainer.style.contain="strict"),this.disposables.add(r.o.addTarget(this.rowsContainer)),this.scrollable=this.disposables.add(new m.Rm({forceIntegerValues:!0,smoothScrollDuration:null!==(g=n.smoothScrolling)&&void 0!==g&&g?125:0,scheduleAtNextAnimationFrame:e=>(0,o.jL)((0,o.Jj)(this.domNode),e)})),this.scrollableElement=this.disposables.add(new a.$Z(this.rowsContainer,{alwaysConsumeMouseWheel:null!==(f=n.alwaysConsumeMouseWheel)&&void 0!==f?f:S.alwaysConsumeMouseWheel,horizontal:1,vertical:null!==(p=n.verticalScrollMode)&&void 0!==p?p:S.verticalScrollMode,useShadows:null!==(_=n.useShadows)&&void 0!==_?_:S.useShadows,mouseWheelScrollSensitivity:n.mouseWheelScrollSensitivity,fastScrollSensitivity:n.fastScrollSensitivity,scrollByPage:n.scrollByPage},this.scrollable)),this.domNode.appendChild(this.scrollableElement.getDomNode()),e.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),this.disposables.add((0,o.nm)(this.rowsContainer,r.t.Change,(e=>this.onTouchChange(e)))),this.disposables.add((0,o.nm)(this.scrollableElement.getDomNode(),"scroll",(e=>e.target.scrollTop=0))),this.disposables.add((0,o.nm)(this.domNode,"dragover",(e=>this.onDragOver(this.toDragEvent(e))))),this.disposables.add((0,o.nm)(this.domNode,"drop",(e=>this.onDrop(this.toDragEvent(e))))),this.disposables.add((0,o.nm)(this.domNode,"dragleave",(e=>this.onDragLeave(this.toDragEvent(e))))),this.disposables.add((0,o.nm)(this.domNode,"dragend",(e=>this.onDragEnd(e)))),this.setRowLineHeight=null!==(b=n.setRowLineHeight)&&void 0!==b?b:S.setRowLineHeight,this.setRowHeight=null!==(C=n.setRowHeight)&&void 0!==C?C:S.setRowHeight,this.supportDynamicHeights=null!==(w=n.supportDynamicHeights)&&void 0!==w?w:S.supportDynamicHeights,this.dnd=null!==(y=n.dnd)&&void 0!==y?y:this.disposables.add(S.dnd),this.layout(null===(L=n.initialSize)||void 0===L?void 0:L.height,null===(k=n.initialSize)||void 0===k?void 0:k.width)}updateOptions(e){let t;if(void 0!==e.paddingBottom&&(this.paddingBottom=e.paddingBottom,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),void 0!==e.scrollByPage&&(t={...null!==t&&void 0!==t?t:{},scrollByPage:e.scrollByPage}),void 0!==e.mouseWheelScrollSensitivity&&(t={...null!==t&&void 0!==t?t:{},mouseWheelScrollSensitivity:e.mouseWheelScrollSensitivity}),void 0!==e.fastScrollSensitivity&&(t={...null!==t&&void 0!==t?t:{},fastScrollSensitivity:e.fastScrollSensitivity}),t&&this.scrollableElement.updateOptions(t),void 0!==e.paddingTop&&e.paddingTop!==this.rangeMap.paddingTop){const t=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),i=e.paddingTop-this.rangeMap.paddingTop;this.rangeMap.paddingTop=e.paddingTop,this.render(t,Math.max(0,this.lastRenderTop+i),this.lastRenderHeight,void 0,void 0,!0),this.setScrollTop(this.lastRenderTop),this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.lastRenderTop,this.lastRenderHeight)}}createRangeMap(e){return new _(e)}splice(e,t){let i=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,i)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}}_splice(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const n=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),o={start:e,end:e+t},s=g.e.intersect(n,o),r=new Map;for(let u=s.end-1;u>=s.start;u--){const e=this.items[u];if(e.dragStartDisposable.dispose(),e.checkedDisposable.dispose(),e.row){let t=r.get(e.templateId);t||(t=[],r.set(e.templateId,t));const i=this.renderers.get(e.templateId);i&&i.disposeElement&&i.disposeElement(e.element,u,e.row.templateData,e.size),t.push(e.row)}e.row=null,e.stale=!0}const a={start:e+t,end:this.items.length},l=g.e.intersect(a,n),h=g.e.relativeComplement(a,n),d=i.map((e=>({id:String(this.itemId++),element:e,templateId:this.virtualDelegate.getTemplateId(e),size:this.virtualDelegate.getHeight(e),width:void 0,hasDynamicHeight:!!this.virtualDelegate.hasDynamicHeight&&this.virtualDelegate.hasDynamicHeight(e),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:u.JT.None,checkedDisposable:u.JT.None,stale:!1})));let c;0===e&&t>=this.items.length?(this.rangeMap=this.createRangeMap(this.rangeMap.paddingTop),this.rangeMap.splice(0,0,d),c=this.items,this.items=d):(this.rangeMap.splice(e,t,d),c=this.items.splice(e,t,...d));const m=i.length-t,f=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),_=p(l,m),v=g.e.intersect(f,_);for(let u=v.start;up(e,m))),w=[{start:e,end:e+i.length},...C].map((e=>g.e.intersect(f,e))).reverse();for(const u of w)for(let e=u.end-1;e>=u.start;e--){const t=this.items[e],i=r.get(t.templateId),n=null===i||void 0===i?void 0:i.pop();this.insertItemInDOM(e,n)}for(const u of r.values())for(const e of u)this.cache.release(e);return this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),c.map((e=>e.element))}eventuallyUpdateScrollDimensions(){this._scrollHeight=this.contentHeight,this.rowsContainer.style.height="".concat(this._scrollHeight,"px"),this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=(0,o.jL)((0,o.Jj)(this.domNode),(()=>{this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight}),this.updateScrollWidth(),this.scrollableElementUpdateDisposable=null})))}eventuallyUpdateScrollWidth(){this.horizontalScrolling?this.scrollableElementWidthDelayer.trigger((()=>this.updateScrollWidth())):this.scrollableElementWidthDelayer.cancel()}updateScrollWidth(){if(!this.horizontalScrolling)return;let e=0;for(const t of this.items)"undefined"!==typeof t.width&&(e=Math.max(e,t.width));this.scrollWidth=e,this.scrollableElement.setScrollDimensions({scrollWidth:0===e?0:e+10}),this._onDidChangeContentWidth.fire(this.scrollWidth)}rerender(){if(this.supportDynamicHeights){for(const e of this.items)e.lastDynamicHeightWidth=void 0;this._rerender(this.lastRenderTop,this.lastRenderHeight)}}get length(){return this.items.length}get renderHeight(){return this.scrollableElement.getScrollDimensions().height}get firstVisibleIndex(){return this.getRenderRange(this.lastRenderTop,this.lastRenderHeight).start}element(e){return this.items[e].element}indexOf(e){return this.items.findIndex((t=>t.element===e))}domElement(e){const t=this.items[e].row;return t&&t.domNode}elementHeight(e){return this.items[e].size}elementTop(e){return this.rangeMap.positionAt(e)}indexAt(e){return this.rangeMap.indexAt(e)}indexAfter(e){return this.rangeMap.indexAfter(e)}layout(e,t){const i={height:"number"===typeof e?e:(0,o.If)(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,i.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(i),"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,o.FK)(this.domNode)})}render(e,t,i,n,o){let s=arguments.length>5&&void 0!==arguments[5]&&arguments[5];const r=this.getRenderRange(t,i),a=g.e.relativeComplement(r,e).reverse(),l=g.e.relativeComplement(e,r);if(s){const t=g.e.intersect(e,r);for(let e=t.start;e{for(const e of l)for(let t=e.start;t=e.start;t--)this.insertItemInDOM(t)})),void 0!==n&&(this.rowsContainer.style.left="-".concat(n,"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=i}insertItemInDOM(e,t){var i,n,s;const r=this.items[e];if(!r.row)if(t)r.row=t,r.stale=!0;else{const e=this.cache.alloc(r.templateId);r.row=e.row,r.stale||(r.stale=e.isReusingConnectedDomNode)}const a=this.accessibilityProvider.getRole(r.element)||"listitem";r.row.domNode.setAttribute("role",a);const l=this.accessibilityProvider.isChecked(r.element);if("boolean"===typeof l)r.row.domNode.setAttribute("aria-checked",String(!!l));else if(l){const e=e=>r.row.domNode.setAttribute("aria-checked",String(!!e));e(l.value),r.checkedDisposable=l.onDidChange(e)}if(r.stale||!r.row.domNode.parentElement){const t=null!==(s=null===(n=null===(i=this.items.at(e+1))||void 0===i?void 0:i.row)||void 0===n?void 0:n.domNode)&&void 0!==s?s:null;this.rowsContainer.insertBefore(r.row.domNode,t),r.stale=!1}this.updateItemInDOM(r,e);const h=this.renderers.get(r.templateId);if(!h)throw new Error("No renderer found for template id ".concat(r.templateId));null===h||void 0===h||h.renderElement(r.element,e,r.row.templateData,r.size);const d=this.dnd.getDragURI(r.element);r.dragStartDisposable.dispose(),r.row.domNode.draggable=!!d,d&&(r.dragStartDisposable=(0,o.nm)(r.row.domNode,"dragstart",(e=>this.onDragStart(r.element,d,e)))),this.horizontalScrolling&&(this.measureItemWidth(r),this.eventuallyUpdateScrollWidth())}measureItemWidth(e){if(!e.row||!e.row.domNode)return;e.row.domNode.style.width="fit-content",e.width=(0,o.FK)(e.row.domNode);const t=(0,o.Jj)(e.row.domNode).getComputedStyle(e.row.domNode);t.paddingLeft&&(e.width+=parseFloat(t.paddingLeft)),t.paddingRight&&(e.width+=parseFloat(t.paddingRight)),e.row.domNode.style.width=""}updateItemInDOM(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("data-parity",t%2===0?"even":"odd"),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)}removeItemFromDOM(e){const t=this.items[e];if(t.dragStartDisposable.dispose(),t.checkedDisposable.dispose(),t.row){const i=this.renderers.get(t.templateId);i&&i.disposeElement&&i.disposeElement(t.element,e,t.row.templateData,t.size),this.cache.release(t.row),t.row=null}this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()}getScrollTop(){return this.scrollableElement.getScrollPosition().scrollTop}setScrollTop(e,t){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:e,reuseAnimation:t})}get scrollTop(){return this.getScrollTop()}set scrollTop(e){this.setScrollTop(e)}get scrollHeight(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.paddingBottom}get onMouseClick(){return c.ju.map(this.disposables.add(new s.Y(this.domNode,"click")).event,(e=>this.toMouseEvent(e)),this.disposables)}get onMouseDblClick(){return c.ju.map(this.disposables.add(new s.Y(this.domNode,"dblclick")).event,(e=>this.toMouseEvent(e)),this.disposables)}get onMouseMiddleClick(){return c.ju.filter(c.ju.map(this.disposables.add(new s.Y(this.domNode,"auxclick")).event,(e=>this.toMouseEvent(e)),this.disposables),(e=>1===e.browserEvent.button),this.disposables)}get onMouseDown(){return c.ju.map(this.disposables.add(new s.Y(this.domNode,"mousedown")).event,(e=>this.toMouseEvent(e)),this.disposables)}get onMouseOver(){return c.ju.map(this.disposables.add(new s.Y(this.domNode,"mouseover")).event,(e=>this.toMouseEvent(e)),this.disposables)}get onMouseOut(){return c.ju.map(this.disposables.add(new s.Y(this.domNode,"mouseout")).event,(e=>this.toMouseEvent(e)),this.disposables)}get onContextMenu(){return c.ju.any(c.ju.map(this.disposables.add(new s.Y(this.domNode,"contextmenu")).event,(e=>this.toMouseEvent(e)),this.disposables),c.ju.map(this.disposables.add(new s.Y(this.domNode,r.t.Contextmenu)).event,(e=>this.toGestureEvent(e)),this.disposables))}get onTouchStart(){return c.ju.map(this.disposables.add(new s.Y(this.domNode,"touchstart")).event,(e=>this.toTouchEvent(e)),this.disposables)}get onTap(){return c.ju.map(this.disposables.add(new s.Y(this.rowsContainer,r.t.Tap)).event,(e=>this.toGestureEvent(e)),this.disposables)}toMouseEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i="undefined"===typeof t?void 0:this.items[t];return{browserEvent:e,index:t,element:i&&i.element}}toTouchEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i="undefined"===typeof t?void 0:this.items[t];return{browserEvent:e,index:t,element:i&&i.element}}toGestureEvent(e){const t=this.getItemIndexFromEventTarget(e.initialTarget||null),i="undefined"===typeof t?void 0:this.items[t];return{browserEvent:e,index:t,element:i&&i.element}}toDragEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i="undefined"===typeof t?void 0:this.items[t];return{browserEvent:e,index:t,element:i&&i.element,sector:this.getTargetSector(e,t)}}onScroll(e){try{const 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(t){throw console.error("Got bad scroll event:",e),t}}onTouchChange(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY}onDragStart(e,t,i){var s,r;if(!i.dataTransfer)return;const a=this.dnd.getDragElements(e);if(i.dataTransfer.effectAllowed="copyMove",i.dataTransfer.setData(n.g.TEXT,t),i.dataTransfer.setDragImage){let e;this.dnd.getDragLabel&&(e=this.dnd.getDragLabel(a,i)),"undefined"===typeof e&&(e=String(a.length));const t=(0,o.$)(".monaco-drag-image");t.textContent=e;const n=(e=>{for(;e&&!e.classList.contains("monaco-workbench");)e=e.parentElement;return e||this.domNode.ownerDocument})(this.domNode);n.appendChild(t),i.dataTransfer.setDragImage(t,-10,-10),setTimeout((()=>n.removeChild(t)),0)}this.domNode.classList.add("dragging"),this.currentDragData=new L(a),y.CurrentDragAndDropData=new k(a),null===(r=(s=this.dnd).onDragStart)||void 0===r||r.call(s,this.currentDragData,i)}onDragOver(e){var t,i;if(e.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),y.CurrentDragAndDropData&&"vscode-ui"===y.CurrentDragAndDropData.getData())return!1;if(this.setupDragAndDropScrollTopAnimation(e.browserEvent),!e.browserEvent.dataTransfer)return!1;if(!this.currentDragData)if(y.CurrentDragAndDropData)this.currentDragData=y.CurrentDragAndDropData;else{if(!e.browserEvent.dataTransfer.types)return!1;this.currentDragData=new D}const n=this.dnd.onDragOver(this.currentDragData,e.element,e.index,e.sector,e.browserEvent);if(this.canDrop="boolean"===typeof n?n:n.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;let o;e.browserEvent.dataTransfer.dropEffect="boolean"!==typeof n&&0===(null===(t=n.effect)||void 0===t?void 0:t.type)?"copy":"move",o="boolean"!==typeof n&&n.feedback?n.feedback:"undefined"===typeof e.index?[-1]:[e.index],o=(0,l.EB)(o).filter((e=>e>=-1&&ee-t)),o=-1===o[0]?[-1]:o;let s="boolean"!==typeof n&&n.effect&&n.effect.position?n.effect.position:"drop-target";if(r=this.currentDragFeedback,a=o,(Array.isArray(r)&&Array.isArray(a)?(0,l.fS)(r,a):r===a)&&this.currentDragFeedbackPosition===s)return!0;var r,a;if(this.currentDragFeedback=o,this.currentDragFeedbackPosition=s,this.currentDragFeedbackDisposable.dispose(),-1===o[0])this.domNode.classList.add(s),this.rowsContainer.classList.add(s),this.currentDragFeedbackDisposable=(0,u.OF)((()=>{this.domNode.classList.remove(s),this.rowsContainer.classList.remove(s)}));else{if(o.length>1&&"drop-target"!==s)throw new Error("Can't use multiple feedbacks with position different than 'over'");"drop-target-after"===s&&o[0]{var e;for(const t of o){const i=this.items[t];i.dropTarget=!1,null===(e=i.row)||void 0===e||e.domNode.classList.remove(s)}}))}return!0}onDragLeave(e){var t,i;this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=(0,h.Vg)((()=>this.clearDragOverFeedback()),100,this.disposables),this.currentDragData&&(null===(i=(t=this.dnd).onDragLeave)||void 0===i||i.call(t,this.currentDragData,e.element,e.index,e.browserEvent))}onDrop(e){if(!this.canDrop)return;const t=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,y.CurrentDragAndDropData=void 0,t&&e.browserEvent.dataTransfer&&(e.browserEvent.preventDefault(),t.update(e.browserEvent.dataTransfer),this.dnd.drop(t,e.element,e.index,e.sector,e.browserEvent))}onDragEnd(e){var t,i;this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,y.CurrentDragAndDropData=void 0,null===(i=(t=this.dnd).onDragEnd)||void 0===i||i.call(t,e)}clearDragOverFeedback(){this.currentDragFeedback=void 0,this.currentDragFeedbackPosition=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=u.JT.None}setupDragAndDropScrollTopAnimation(e){if(!this.dragOverAnimationDisposable){const e=(0,o.xQ)(this.domNode).top;this.dragOverAnimationDisposable=(0,o.jt)((0,o.Jj)(this.domNode),this.animateDragAndDropScrollTop.bind(this,e))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=(0,h.Vg)((()=>{this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}),1e3,this.disposables),this.dragOverMouseY=e.pageY}animateDragAndDropScrollTop(e){if(void 0===this.dragOverMouseY)return;const t=this.dragOverMouseY-e,i=this.renderHeight-35;t<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(t-35))):t>i&&(this.scrollTop+=Math.min(14,Math.floor(.3*(t-i))))}teardownDragAndDropScrollTopAnimation(){this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}getTargetSector(e,t){if(void 0===t)return;const i=e.offsetY/this.items[t].size,n=Math.floor(i/.25);return(0,C.uZ)(n,0,3)}getItemIndexFromEventTarget(e){const t=this.scrollableElement.getDomNode();let i=e;for(;i instanceof HTMLElement&&i!==this.rowsContainer&&t.contains(i);){const e=i.getAttribute("data-index");if(e){const t=Number(e);if(!isNaN(t))return t}i=i.parentElement}}getRenderRange(e,t){return{start:this.rangeMap.indexAt(e),end:this.rangeMap.indexAfter(e+t-1)}}_rerender(e,t,i){const n=this.getRenderRange(e,t);let o,s;e===this.elementTop(n.start)?(o=n.start,s=0):n.end-n.start>1&&(o=n.start+1,s=this.elementTop(o)-e);let r=0;for(;;){const a=this.getRenderRange(e,t);let l=!1;for(let e=a.start;e=e.start;t--)this.insertItemInDOM(t);for(let e=a.start;e{i.d(t,{wD:()=>q,aV:()=>ee,sx:()=>j,AA:()=>C,dk:()=>R,iK:()=>F,cK:()=>I,$B:()=>A,hD:()=>M,wn:()=>K,Zo:()=>H,xf:()=>P,Et:()=>O,uZ:()=>G});var n=i(85714),o=i(3640),s=i(39341),r=i(48688),a=i(70036);class l{constructor(e){this.spliceables=e}splice(e,t,i){this.spliceables.forEach((n=>n.splice(e,t,i)))}}var h=i(75629),d=i(60282),c=i(89652),u=i(30333),g=i(24219),m=i(66835),f=i(89599),p=i(63229),_=i(21511),v=i(63686);i(71619);class b extends Error{constructor(e,t){super("ListError [".concat(e,"] ").concat(t))}}var C,w,y=i(84931),S=i(21494),L=i(59130),k=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r};class D{constructor(e){this.trait=e,this.renderedElements=[]}get templateId(){return"template:".concat(this.trait.name)}renderTemplate(e){return e}renderElement(e,t,i){const n=this.renderedElements.findIndex((e=>e.templateData===i));if(n>=0){const e=this.renderedElements[n];this.trait.unrender(i),e.index=t}else{const e={index:t,templateData:i};this.renderedElements.push(e)}this.trait.renderIndex(t,i)}splice(e,t,i){const n=[];for(const o of this.renderedElements)o.index=e+t&&n.push({index:o.index+i-t,templateData:o.templateData});this.renderedElements=n}renderIndexes(e){for(const{index:t,templateData:i}of this.renderedElements)e.indexOf(t)>-1&&this.trait.renderIndex(t,i)}disposeTemplate(e){const t=this.renderedElements.findIndex((t=>t.templateData===e));t<0||this.renderedElements.splice(t,1)}}class N{get name(){return this._trait}get renderer(){return new D(this)}constructor(e){this._trait=e,this.indexes=[],this.sortedIndexes=[],this._onChange=new g.Q5,this.onChange=this._onChange.event}splice(e,t,i){const n=i.length-t,o=e+t,s=[];let r=0;for(;r=o;)s.push(this.sortedIndexes[r++]+n);this.renderer.splice(e,t,i.length),this._set(s,s)}renderIndex(e,t){t.classList.toggle(this._trait,this.contains(e))}unrender(e){e.classList.remove(this._trait)}set(e,t){return this._set(e,[...e].sort(Y),t)}_set(e,t,i){const n=this.indexes,o=this.sortedIndexes;this.indexes=e,this.sortedIndexes=t;const s=Z(o,e);return this.renderer.renderIndexes(s),this._onChange.fire({indexes:e,browserEvent:i}),n}get(){return this.indexes}contains(e){return(0,h.ry)(this.sortedIndexes,e,Y)>=0}dispose(){(0,f.B9)(this._onChange)}}k([u.H],N.prototype,"renderer",null);class x extends N{constructor(e){super("selected"),this.setAriaSelected=e}renderIndex(e,t){super.renderIndex(e,t),this.setAriaSelected&&(this.contains(e)?t.setAttribute("aria-selected","true"):t.setAttribute("aria-selected","false"))}}class E{constructor(e,t,i){this.trait=e,this.view=t,this.identityProvider=i}splice(e,t,i){if(!this.identityProvider)return this.trait.splice(e,t,new Array(i.length).fill(!1));const n=this.trait.get().map((e=>this.identityProvider.getId(this.view.element(e)).toString()));if(0===n.length)return this.trait.splice(e,t,new Array(i.length).fill(!1));const o=new Set(n),s=i.map((e=>o.has(this.identityProvider.getId(e).toString())));this.trait.splice(e,t,s)}}function I(e){return"INPUT"===e.tagName||"TEXTAREA"===e.tagName}function T(e,t){return!!e.classList.contains(t)||!e.classList.contains("monaco-list")&&(!!e.parentElement&&T(e.parentElement,t))}function M(e){return T(e,"monaco-editor")}function A(e){return T(e,"monaco-custom-toggle")}function R(e){return T(e,"action-item")}function O(e){return T(e,"monaco-tree-sticky-row")}function P(e){return e.classList.contains("monaco-tree-sticky-container")}function F(e){return!!("A"===e.tagName&&e.classList.contains("monaco-button")||"DIV"===e.tagName&&e.classList.contains("monaco-button-dropdown"))||!e.classList.contains("monaco-list")&&(!!e.parentElement&&F(e.parentElement))}class B{get onKeyDown(){return g.ju.chain(this.disposables.add(new o.Y(this.view.domNode,"keydown")).event,(e=>e.filter((e=>!I(e.target))).map((e=>new s.y(e)))))}constructor(e,t,i){this.list=e,this.view=t,this.disposables=new f.SL,this.multipleSelectionDisposables=new f.SL,this.multipleSelectionSupport=i.multipleSelectionSupport,this.disposables.add(this.onKeyDown((e=>{switch(e.keyCode){case 3:return this.onEnter(e);case 16:return this.onUpArrow(e);case 18:return this.onDownArrow(e);case 11:return this.onPageUpArrow(e);case 12:return this.onPageDownArrow(e);case 9:return this.onEscape(e);case 31:this.multipleSelectionSupport&&(_.dz?e.metaKey:e.ctrlKey)&&this.onCtrlA(e)}})))}updateOptions(e){void 0!==e.multipleSelectionSupport&&(this.multipleSelectionSupport=e.multipleSelectionSupport)}onEnter(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(this.list.getFocus(),e.browserEvent)}onUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPrevious(1,!1,e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNext(1,!1,e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPreviousPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNextPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onCtrlA(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection((0,h.w6)(this.list.length),e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus()}onEscape(e){this.list.getSelection().length&&(e.preventDefault(),e.stopPropagation(),this.list.setSelection([],e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus())}dispose(){this.disposables.dispose(),this.multipleSelectionDisposables.dispose()}}k([u.H],B.prototype,"onKeyDown",null),function(e){e[e.Automatic=0]="Automatic",e[e.Trigger=1]="Trigger"}(C||(C={})),function(e){e[e.Idle=0]="Idle",e[e.Typing=1]="Typing"}(w||(w={}));const z=new class{mightProducePrintableCharacter(e){return!(e.ctrlKey||e.metaKey||e.altKey)&&(e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30||e.keyCode>=98&&e.keyCode<=107||e.keyCode>=85&&e.keyCode<=95)}};class V{constructor(e,t,i,n,o){this.list=e,this.view=t,this.keyboardNavigationLabelProvider=i,this.keyboardNavigationEventFilter=n,this.delegate=o,this.enabled=!1,this.state=w.Idle,this.mode=C.Automatic,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new f.SL,this.disposables=new f.SL,this.updateOptions(e.options)}updateOptions(e){var t,i;null===(t=e.typeNavigationEnabled)||void 0===t||t?this.enable():this.disable(),this.mode=null!==(i=e.typeNavigationMode)&&void 0!==i?i:C.Automatic}enable(){if(this.enabled)return;let e=!1;const t=g.ju.chain(this.enabledDisposables.add(new o.Y(this.view.domNode,"keydown")).event,(t=>t.filter((e=>!I(e.target))).filter((()=>this.mode===C.Automatic||this.triggered)).map((e=>new s.y(e))).filter((t=>e||this.keyboardNavigationEventFilter(t))).filter((e=>this.delegate.mightProducePrintableCharacter(e))).forEach((e=>n.zB.stop(e,!0))).map((e=>e.browserEvent.key)))),i=g.ju.debounce(t,(()=>null),800,void 0,void 0,void 0,this.enabledDisposables);g.ju.reduce(g.ju.any(t,i),((e,t)=>null===t?null:(e||"")+t),void 0,this.enabledDisposables)(this.onInput,this,this.enabledDisposables),i(this.onClear,this,this.enabledDisposables),t((()=>e=!0),void 0,this.enabledDisposables),i((()=>e=!1),void 0,this.enabledDisposables),this.enabled=!0,this.triggered=!1}disable(){this.enabled&&(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)}onClear(){var e;const t=this.list.getFocus();if(t.length>0&&t[0]===this.previouslyFocused){const i=null===(e=this.list.options.accessibilityProvider)||void 0===e?void 0:e.getAriaLabel(this.list.element(t[0]));"string"===typeof i?(0,a.Z9)(i):i&&(0,a.Z9)(i.get())}this.previouslyFocused=-1}onInput(e){if(!e)return this.state=w.Idle,void(this.triggered=!1);const t=this.list.getFocus(),i=t.length>0?t[0]:0,n=this.state===w.Idle?1:0;this.state=w.Typing;for(let o=0;o1&&1===n.length)return this.previouslyFocused=i,this.list.setFocus([t]),void this.list.reveal(t)}}}else if("undefined"===typeof r||(0,m.Ji)(e,r))return this.previouslyFocused=i,this.list.setFocus([t]),void this.list.reveal(t)}}dispose(){this.disable(),this.enabledDisposables.dispose(),this.disposables.dispose()}}class W{constructor(e,t){this.list=e,this.view=t,this.disposables=new f.SL;const i=g.ju.chain(this.disposables.add(new o.Y(t.domNode,"keydown")).event,(e=>e.filter((e=>!I(e.target))).map((e=>new s.y(e)))));g.ju.chain(i,(e=>e.filter((e=>2===e.keyCode&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&!e.altKey))))(this.onTab,this,this.disposables)}onTab(e){if(e.target!==this.view.domNode)return;const t=this.list.getFocus();if(0===t.length)return;const i=this.view.domElement(t[0]);if(!i)return;const o=i.querySelector("[tabIndex]");if(!o||!(o instanceof HTMLElement)||-1===o.tabIndex)return;const s=(0,n.Jj)(o).getComputedStyle(o);"hidden"!==s.visibility&&"none"!==s.display&&(e.preventDefault(),e.stopPropagation(),o.focus())}dispose(){this.disposables.dispose()}}function H(e){return _.dz?e.browserEvent.metaKey:e.browserEvent.ctrlKey}function K(e){return e.browserEvent.shiftKey}const U={isSelectionSingleChangeEvent:H,isSelectionRangeChangeEvent:K};class j{constructor(e){this.list=e,this.disposables=new f.SL,this._onPointer=new g.Q5,this.onPointer=this._onPointer.event,!1!==e.options.multipleSelectionSupport&&(this.multipleSelectionController=this.list.options.multipleSelectionController||U),this.mouseSupport="undefined"===typeof e.options.mouseSupport||!!e.options.mouseSupport,this.mouseSupport&&(e.onMouseDown(this.onMouseDown,this,this.disposables),e.onContextMenu(this.onContextMenu,this,this.disposables),e.onMouseDblClick(this.onDoubleClick,this,this.disposables),e.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(r.o.addTarget(e.getHTMLElement()))),g.ju.any(e.onMouseClick,e.onMouseMiddleClick,e.onTap)(this.onViewPointer,this,this.disposables)}updateOptions(e){void 0!==e.multipleSelectionSupport&&(this.multipleSelectionController=void 0,e.multipleSelectionSupport&&(this.multipleSelectionController=this.list.options.multipleSelectionController||U))}isSelectionSingleChangeEvent(e){return!!this.multipleSelectionController&&this.multipleSelectionController.isSelectionSingleChangeEvent(e)}isSelectionRangeChangeEvent(e){return!!this.multipleSelectionController&&this.multipleSelectionController.isSelectionRangeChangeEvent(e)}isSelectionChangeEvent(e){return this.isSelectionSingleChangeEvent(e)||this.isSelectionRangeChangeEvent(e)}onMouseDown(e){M(e.browserEvent.target)||(0,n.vY)()!==e.browserEvent.target&&this.list.domFocus()}onContextMenu(e){if(I(e.browserEvent.target)||M(e.browserEvent.target))return;const t="undefined"===typeof e.index?[]:[e.index];this.list.setFocus(t,e.browserEvent)}onViewPointer(e){if(!this.mouseSupport)return;if(I(e.browserEvent.target)||M(e.browserEvent.target))return;if(e.browserEvent.isHandledByList)return;e.browserEvent.isHandledByList=!0;const t=e.index;return"undefined"===typeof t?(this.list.setFocus([],e.browserEvent),this.list.setSelection([],e.browserEvent),void this.list.setAnchor(void 0)):this.isSelectionChangeEvent(e)?this.changeSelection(e):(this.list.setFocus([t],e.browserEvent),this.list.setAnchor(t),i=e.browserEvent,(0,n.N5)(i)&&2===i.button||this.list.setSelection([t],e.browserEvent),void this._onPointer.fire(e));var i}onDoubleClick(e){if(I(e.browserEvent.target)||M(e.browserEvent.target))return;if(this.isSelectionChangeEvent(e))return;if(e.browserEvent.isHandledByList)return;e.browserEvent.isHandledByList=!0;const t=this.list.getFocus();this.list.setSelection(t,e.browserEvent)}changeSelection(e){const t=e.index;let i=this.list.getAnchor();if(this.isSelectionRangeChangeEvent(e)){if("undefined"===typeof i){const e=this.list.getFocus()[0];i=null!==e&&void 0!==e?e:t,this.list.setAnchor(i)}const n=Math.min(i,t),o=Math.max(i,t),s=(0,h.w6)(n,o+1),r=this.list.getSelection(),a=function(e,t){const i=e.indexOf(t);if(-1===i)return[];const n=[];let o=i-1;for(;o>=0&&e[o]===t-(i-o);)n.push(e[o--]);n.reverse(),o=i;for(;o=e.length)i.push(t[o++]);else if(o>=t.length)i.push(e[n++]);else{if(e[n]===t[o]){n++,o++;continue}e[n]e!==t));this.list.setFocus([t]),this.list.setAnchor(t),i.length===n.length?this.list.setSelection([...n,t],e.browserEvent):this.list.setSelection(n,e.browserEvent)}}dispose(){this.disposables.dispose()}}class q{constructor(e,t){this.styleElement=e,this.selectorSuffix=t}style(e){var t,i;const o=this.selectorSuffix&&".".concat(this.selectorSuffix),s=[];e.listBackground&&s.push(".monaco-list".concat(o," .monaco-list-rows { background: ").concat(e.listBackground,"; }")),e.listFocusBackground&&(s.push(".monaco-list".concat(o,":focus .monaco-list-row.focused { background-color: ").concat(e.listFocusBackground,"; }")),s.push(".monaco-list".concat(o,":focus .monaco-list-row.focused:hover { background-color: ").concat(e.listFocusBackground,"; }"))),e.listFocusForeground&&s.push(".monaco-list".concat(o,":focus .monaco-list-row.focused { color: ").concat(e.listFocusForeground,"; }")),e.listActiveSelectionBackground&&(s.push(".monaco-list".concat(o,":focus .monaco-list-row.selected { background-color: ").concat(e.listActiveSelectionBackground,"; }")),s.push(".monaco-list".concat(o,":focus .monaco-list-row.selected:hover { background-color: ").concat(e.listActiveSelectionBackground,"; }"))),e.listActiveSelectionForeground&&s.push(".monaco-list".concat(o,":focus .monaco-list-row.selected { color: ").concat(e.listActiveSelectionForeground,"; }")),e.listActiveSelectionIconForeground&&s.push(".monaco-list".concat(o,":focus .monaco-list-row.selected .codicon { color: ").concat(e.listActiveSelectionIconForeground,"; }")),e.listFocusAndSelectionBackground&&s.push("\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list".concat(o,":focus .monaco-list-row.selected.focused { background-color: ").concat(e.listFocusAndSelectionBackground,"; }\n\t\t\t")),e.listFocusAndSelectionForeground&&s.push("\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list".concat(o,":focus .monaco-list-row.selected.focused { color: ").concat(e.listFocusAndSelectionForeground,"; }\n\t\t\t")),e.listInactiveFocusForeground&&(s.push(".monaco-list".concat(o," .monaco-list-row.focused { color: ").concat(e.listInactiveFocusForeground,"; }")),s.push(".monaco-list".concat(o," .monaco-list-row.focused:hover { color: ").concat(e.listInactiveFocusForeground,"; }"))),e.listInactiveSelectionIconForeground&&s.push(".monaco-list".concat(o," .monaco-list-row.focused .codicon { color: ").concat(e.listInactiveSelectionIconForeground,"; }")),e.listInactiveFocusBackground&&(s.push(".monaco-list".concat(o," .monaco-list-row.focused { background-color: ").concat(e.listInactiveFocusBackground,"; }")),s.push(".monaco-list".concat(o," .monaco-list-row.focused:hover { background-color: ").concat(e.listInactiveFocusBackground,"; }"))),e.listInactiveSelectionBackground&&(s.push(".monaco-list".concat(o," .monaco-list-row.selected { background-color: ").concat(e.listInactiveSelectionBackground,"; }")),s.push(".monaco-list".concat(o," .monaco-list-row.selected:hover { background-color: ").concat(e.listInactiveSelectionBackground,"; }"))),e.listInactiveSelectionForeground&&s.push(".monaco-list".concat(o," .monaco-list-row.selected { color: ").concat(e.listInactiveSelectionForeground,"; }")),e.listHoverBackground&&s.push(".monaco-list".concat(o,":not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ").concat(e.listHoverBackground,"; }")),e.listHoverForeground&&s.push(".monaco-list".concat(o,":not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { color: ").concat(e.listHoverForeground,"; }"));const r=(0,n.XT)(e.listFocusAndSelectionOutline,(0,n.XT)(e.listSelectionOutline,null!==(t=e.listFocusOutline)&&void 0!==t?t:""));r&&s.push(".monaco-list".concat(o,":focus .monaco-list-row.focused.selected { outline: 1px solid ").concat(r,"; outline-offset: -1px;}")),e.listFocusOutline&&s.push("\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list".concat(o,":focus .monaco-list-row.focused { outline: 1px solid ").concat(e.listFocusOutline,"; outline-offset: -1px; }\n\t\t\t\t.monaco-workbench.context-menu-visible .monaco-list").concat(o,".last-focused .monaco-list-row.focused { outline: 1px solid ").concat(e.listFocusOutline,"; outline-offset: -1px; }\n\t\t\t"));const a=(0,n.XT)(e.listSelectionOutline,null!==(i=e.listInactiveFocusOutline)&&void 0!==i?i:"");a&&s.push(".monaco-list".concat(o," .monaco-list-row.focused.selected { outline: 1px dotted ").concat(a,"; outline-offset: -1px; }")),e.listSelectionOutline&&s.push(".monaco-list".concat(o," .monaco-list-row.selected { outline: 1px dotted ").concat(e.listSelectionOutline,"; outline-offset: -1px; }")),e.listInactiveFocusOutline&&s.push(".monaco-list".concat(o," .monaco-list-row.focused { outline: 1px dotted ").concat(e.listInactiveFocusOutline,"; outline-offset: -1px; }")),e.listHoverOutline&&s.push(".monaco-list".concat(o," .monaco-list-row:hover { outline: 1px dashed ").concat(e.listHoverOutline,"; outline-offset: -1px; }")),e.listDropOverBackground&&s.push("\n\t\t\t\t.monaco-list".concat(o,".drop-target,\n\t\t\t\t.monaco-list").concat(o," .monaco-list-rows.drop-target,\n\t\t\t\t.monaco-list").concat(o," .monaco-list-row.drop-target { background-color: ").concat(e.listDropOverBackground," !important; color: inherit !important; }\n\t\t\t")),e.listDropBetweenBackground&&(s.push("\n\t\t\t.monaco-list".concat(o," .monaco-list-rows.drop-target-before .monaco-list-row:first-child::before,\n\t\t\t.monaco-list").concat(o,' .monaco-list-row.drop-target-before::before {\n\t\t\t\tcontent: ""; position: absolute; top: 0px; left: 0px; width: 100%; height: 1px;\n\t\t\t\tbackground-color: ').concat(e.listDropBetweenBackground,";\n\t\t\t}")),s.push("\n\t\t\t.monaco-list".concat(o," .monaco-list-rows.drop-target-after .monaco-list-row:last-child::after,\n\t\t\t.monaco-list").concat(o,' .monaco-list-row.drop-target-after::after {\n\t\t\t\tcontent: ""; position: absolute; bottom: 0px; left: 0px; width: 100%; height: 1px;\n\t\t\t\tbackground-color: ').concat(e.listDropBetweenBackground,";\n\t\t\t}"))),e.tableColumnsBorder&&s.push("\n\t\t\t\t.monaco-table > .monaco-split-view2,\n\t\t\t\t.monaco-table > .monaco-split-view2 .monaco-sash.vertical::before,\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2,\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\t\t\tborder-color: ".concat(e.tableColumnsBorder,";\n\t\t\t\t}\n\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2,\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\t\t\tborder-color: transparent;\n\t\t\t\t}\n\t\t\t")),e.tableOddRowsBackgroundColor&&s.push("\n\t\t\t\t.monaco-table .monaco-list-row[data-parity=odd]:not(.focused):not(.selected):not(:hover) .monaco-table-tr,\n\t\t\t\t.monaco-table .monaco-list:not(:focus) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr,\n\t\t\t\t.monaco-table .monaco-list:not(.focused) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr {\n\t\t\t\t\tbackground-color: ".concat(e.tableOddRowsBackgroundColor,";\n\t\t\t\t}\n\t\t\t")),this.styleElement.textContent=s.join("\n")}}const G={listFocusBackground:"#7FB0D0",listActiveSelectionBackground:"#0E639C",listActiveSelectionForeground:"#FFFFFF",listActiveSelectionIconForeground:"#FFFFFF",listFocusAndSelectionOutline:"#90C2F9",listFocusAndSelectionBackground:"#094771",listFocusAndSelectionForeground:"#FFFFFF",listInactiveSelectionBackground:"#3F3F46",listInactiveSelectionIconForeground:"#FFFFFF",listHoverBackground:"#2A2D2E",listDropOverBackground:"#383B3D",listDropBetweenBackground:"#EEEEEE",treeIndentGuidesStroke:"#a9a9a9",treeInactiveIndentGuidesStroke:c.Il.fromHex("#a9a9a9").transparent(.4).toString(),tableColumnsBorder:c.Il.fromHex("#cccccc").transparent(.2).toString(),tableOddRowsBackgroundColor:c.Il.fromHex("#cccccc").transparent(.04).toString(),listBackground:void 0,listFocusForeground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusForeground:void 0,listInactiveFocusBackground:void 0,listHoverForeground:void 0,listFocusOutline:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listHoverOutline:void 0},Q={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI:()=>null,onDragStart(){},onDragOver:()=>!1,drop(){},dispose(){}}};function Z(e,t){const i=[];let n=0,o=0;for(;n=e.length)i.push(t[o++]);else if(o>=t.length)i.push(e[n++]);else{if(e[n]===t[o]){i.push(e[n]),n++,o++;continue}e[n]e-t;class ${constructor(e,t){this._templateId=e,this.renderers=t}get templateId(){return this._templateId}renderTemplate(e){return this.renderers.map((t=>t.renderTemplate(e)))}renderElement(e,t,i,n){let o=0;for(const s of this.renderers)s.renderElement(e,t,i[o++],n)}disposeElement(e,t,i,n){var o;let s=0;for(const r of this.renderers)null===(o=r.disposeElement)||void 0===o||o.call(r,e,t,i[s],n),s+=1}disposeTemplate(e){let t=0;for(const i of this.renderers)i.disposeTemplate(e[t++])}}class J{constructor(e){this.accessibilityProvider=e,this.templateId="a18n"}renderTemplate(e){return{container:e,disposables:new f.SL}}renderElement(e,t,i){const n=this.accessibilityProvider.getAriaLabel(e),o=n&&"string"!==typeof n?n:(0,L.Dz)(n);i.disposables.add((0,L.EH)((e=>{this.setAriaLabel(e.readObservable(o),i.container)})));const s=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(e);"number"===typeof s?i.container.setAttribute("aria-level","".concat(s)):i.container.removeAttribute("aria-level")}setAriaLabel(e,t){e?t.setAttribute("aria-label",e):t.removeAttribute("aria-label")}disposeElement(e,t,i,n){i.disposables.clear()}disposeTemplate(e){e.disposables.dispose()}}class X{constructor(e,t){this.list=e,this.dnd=t}getDragElements(e){const t=this.list.getSelectedElements();return t.indexOf(e)>-1?t:[e]}getDragURI(e){return this.dnd.getDragURI(e)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e,t)}onDragStart(e,t){var i,n;null===(n=(i=this.dnd).onDragStart)||void 0===n||n.call(i,e,t)}onDragOver(e,t,i,n,o){return this.dnd.onDragOver(e,t,i,n,o)}onDragLeave(e,t,i,n){var o,s;null===(s=(o=this.dnd).onDragLeave)||void 0===s||s.call(o,e,t,i,n)}onDragEnd(e){var t,i;null===(i=(t=this.dnd).onDragEnd)||void 0===i||i.call(t,e)}drop(e,t,i,n,o){this.dnd.drop(e,t,i,n,o)}dispose(){this.dnd.dispose()}}class ee{get onDidChangeFocus(){return g.ju.map(this.eventBufferer.wrapEvent(this.focus.onChange),(e=>this.toListEvent(e)),this.disposables)}get onDidChangeSelection(){return g.ju.map(this.eventBufferer.wrapEvent(this.selection.onChange),(e=>this.toListEvent(e)),this.disposables)}get domId(){return this.view.domId}get onDidScroll(){return this.view.onDidScroll}get onMouseClick(){return this.view.onMouseClick}get onMouseDblClick(){return this.view.onMouseDblClick}get onMouseMiddleClick(){return this.view.onMouseMiddleClick}get onPointer(){return this.mouseController.onPointer}get onMouseDown(){return this.view.onMouseDown}get onMouseOver(){return this.view.onMouseOver}get onMouseOut(){return this.view.onMouseOut}get onTouchStart(){return this.view.onTouchStart}get onTap(){return this.view.onTap}get onContextMenu(){let e=!1;const t=g.ju.chain(this.disposables.add(new o.Y(this.view.domNode,"keydown")).event,(t=>t.map((e=>new s.y(e))).filter((t=>e=58===t.keyCode||t.shiftKey&&68===t.keyCode)).map((e=>n.zB.stop(e,!0))).filter((()=>!1)))),i=g.ju.chain(this.disposables.add(new o.Y(this.view.domNode,"keyup")).event,(t=>t.forEach((()=>e=!1)).map((e=>new s.y(e))).filter((e=>58===e.keyCode||e.shiftKey&&68===e.keyCode)).map((e=>n.zB.stop(e,!0))).map((e=>{let{browserEvent:t}=e;const i=this.getFocus(),n=i.length?i[0]:void 0;return{index:n,element:"undefined"!==typeof n?this.view.element(n):void 0,anchor:"undefined"!==typeof n?this.view.domElement(n):this.view.domNode,browserEvent:t}})))),r=g.ju.chain(this.view.onContextMenu,(t=>t.filter((t=>!e)).map((e=>{let{element:t,index:i,browserEvent:o}=e;return{element:t,index:i,anchor:new S.n((0,n.Jj)(this.view.domNode),o),browserEvent:o}}))));return g.ju.any(t,i,r)}get onKeyDown(){return this.disposables.add(new o.Y(this.view.domNode,"keydown")).event}get onDidFocus(){return g.ju.signal(this.disposables.add(new o.Y(this.view.domNode,"focus",!0)).event)}get onDidBlur(){return g.ju.signal(this.disposables.add(new o.Y(this.view.domNode,"blur",!0)).event)}constructor(e,t,i,o){let s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Q;var r,a,h,d;this.user=e,this._options=s,this.focus=new N("focused"),this.anchor=new N("anchor"),this.eventBufferer=new g.E7,this._ariaLabel="",this.disposables=new f.SL,this._onDidDispose=new g.Q5,this.onDidDispose=this._onDidDispose.event;const c=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?null===(r=this._options.accessibilityProvider)||void 0===r?void 0:r.getWidgetRole():"list";this.selection=new x("listbox"!==c);const u=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=s.accessibilityProvider,this.accessibilityProvider&&(u.push(new J(this.accessibilityProvider)),null===(h=(a=this.accessibilityProvider).onDidChangeActiveDescendant)||void 0===h||h.call(a,this.onDidChangeActiveDescendant,this,this.disposables)),o=o.map((e=>new $(e.templateId,[...u,e])));const m={...s,dnd:s.dnd&&new X(this,s.dnd)};if(this.view=this.createListView(t,i,o,m),this.view.domNode.setAttribute("role",c),s.styleController)this.styleController=s.styleController(this.view.domId);else{const e=(0,n.dS)(this.view.domNode);this.styleController=new q(e,this.view.domId)}if(this.spliceable=new l([new E(this.focus,this.view,s.identityProvider),new E(this.selection,this.view,s.identityProvider),new E(this.anchor,this.view,s.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.disposables.add(new W(this,this.view)),("boolean"!==typeof s.keyboardSupport||s.keyboardSupport)&&(this.keyboardController=new B(this,this.view,s),this.disposables.add(this.keyboardController)),s.keyboardNavigationLabelProvider){const e=s.keyboardNavigationDelegate||z;this.typeNavigationController=new V(this,this.view,s.keyboardNavigationLabelProvider,null!==(d=s.keyboardNavigationEventFilter)&&void 0!==d?d:()=>!0,e),this.disposables.add(this.typeNavigationController)}this.mouseController=this.createMouseController(s),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()),!1!==this._options.multipleSelectionSupport&&this.view.domNode.setAttribute("aria-multiselectable","true")}createListView(e,t,i,n){return new y.Bv(e,t,i,n)}createMouseController(e){return new j(this)}updateOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};var t,i;this._options={...this._options,...e},null===(t=this.typeNavigationController)||void 0===t||t.updateOptions(this._options),void 0!==this._options.multipleSelectionController&&(this._options.multipleSelectionSupport?this.view.domNode.setAttribute("aria-multiselectable","true"):this.view.domNode.removeAttribute("aria-multiselectable")),this.mouseController.updateOptions(e),null===(i=this.keyboardController)||void 0===i||i.updateOptions(e),this.view.updateOptions(e)}get options(){return this._options}splice(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(e<0||e>this.view.length)throw new b(this.user,"Invalid start index: ".concat(e));if(t<0)throw new b(this.user,"Invalid delete count: ".concat(t));0===t&&0===i.length||this.eventBufferer.bufferEvents((()=>this.spliceable.splice(e,t,i)))}rerender(){this.view.rerender()}element(e){return this.view.element(e)}indexOf(e){return this.view.indexOf(e)}indexAt(e){return this.view.indexAt(e)}get length(){return this.view.length}get contentHeight(){return this.view.contentHeight}get onDidChangeContentHeight(){return this.view.onDidChangeContentHeight}get scrollTop(){return this.view.getScrollTop()}set scrollTop(e){this.view.setScrollTop(e)}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get firstVisibleIndex(){return this.view.firstVisibleIndex}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.view.domNode.setAttribute("aria-label",e)}domFocus(){this.view.domNode.focus({preventScroll:!0})}layout(e,t){this.view.layout(e,t)}setSelection(e,t){for(const i of e)if(i<0||i>=this.length)throw new b(this.user,"Invalid index ".concat(i));this.selection.set(e,t)}getSelection(){return this.selection.get()}getSelectedElements(){return this.getSelection().map((e=>this.view.element(e)))}setAnchor(e){if("undefined"!==typeof e){if(e<0||e>=this.length)throw new b(this.user,"Invalid index ".concat(e));this.anchor.set([e])}else this.anchor.set([])}getAnchor(){return(0,h.Xh)(this.anchor.get(),void 0)}getAnchorElement(){const e=this.getAnchor();return"undefined"===typeof e?void 0:this.element(e)}setFocus(e,t){for(const i of e)if(i<0||i>=this.length)throw new b(this.user,"Invalid index ".concat(i));this.focus.set(e,t)}focusNext(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0;if(0===this.length)return;const o=this.focus.get(),s=this.findNextIndex(o.length>0?o[0]+e:0,t,n);s>-1&&this.setFocus([s],i)}focusPrevious(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0;if(0===this.length)return;const o=this.focus.get(),s=this.findPreviousIndex(o.length>0?o[0]-e:0,t,n);s>-1&&this.setFocus([s],i)}async focusNextPage(e,t){let i=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);i=0===i?0:i-1;const n=this.getFocus()[0];if(n!==i&&(void 0===n||i>n)){const o=this.findPreviousIndex(i,!1,t);o>-1&&n!==o?this.setFocus([o],e):this.setFocus([i],e)}else{const o=this.view.getScrollTop();let s=o+this.view.renderHeight;i>n&&(s-=this.view.elementHeight(i)),this.view.setScrollTop(s),this.view.getScrollTop()!==o&&(this.setFocus([]),await(0,d.Vs)(0),await this.focusNextPage(e,t))}}async focusPreviousPage(e,t){let i,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>0;const o=n(),s=this.view.getScrollTop()+o;i=0===s?this.view.indexAt(s):this.view.indexAfter(s-1);const r=this.getFocus()[0];if(r!==i&&(void 0===r||r>=i)){const n=this.findNextIndex(i,!1,t);n>-1&&r!==n?this.setFocus([n],e):this.setFocus([i],e)}else{const i=s;this.view.setScrollTop(s-this.view.renderHeight-o),this.view.getScrollTop()+n()!==i&&(this.setFocus([]),await(0,d.Vs)(0),await this.focusPreviousPage(e,t,n))}}focusLast(e,t){if(0===this.length)return;const i=this.findPreviousIndex(this.length-1,!1,t);i>-1&&this.setFocus([i],e)}focusFirst(e,t){this.focusNth(0,e,t)}focusNth(e,t,i){if(0===this.length)return;const n=this.findNextIndex(e,!1,i);n>-1&&this.setFocus([n],t)}findNextIndex(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2?arguments[2]:void 0;for(let n=0;n=this.length&&!t)return-1;if(e%=this.length,!i||i(this.element(e)))return e;e++}return-1}findPreviousIndex(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2?arguments[2]:void 0;for(let n=0;nthis.view.element(e)))}reveal(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(e<0||e>=this.length)throw new b(this.user,"Invalid index ".concat(e));const n=this.view.getScrollTop(),o=this.view.elementTop(e),s=this.view.elementHeight(e);if((0,v.hj)(t)){const e=s-this.view.renderHeight+i;this.view.setScrollTop(e*(0,p.uZ)(t,0,1)+o-i)}else{const e=o+s,t=n+this.view.renderHeight;o=t||(o=t&&s>=this.view.renderHeight?this.view.setScrollTop(o-i):e>=t&&this.view.setScrollTop(e-this.view.renderHeight))}}getRelativeTop(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(e<0||e>=this.length)throw new b(this.user,"Invalid index ".concat(e));const i=this.view.getScrollTop(),n=this.view.elementTop(e),o=this.view.elementHeight(e);if(ni+this.view.renderHeight)return null;const s=o-this.view.renderHeight+t;return Math.abs((i+t-n)/s)}getHTMLElement(){return this.view.domNode}getScrollableElement(){return this.view.scrollableElementDomNode}getElementID(e){return this.view.getElementDomId(e)}getElementTop(e){return this.view.elementTop(e)}style(e){this.styleController.style(e)}toListEvent(e){let{indexes:t,browserEvent:i}=e;return{indexes:t,elements:t.map((e=>this.view.element(e))),browserEvent:i}}_onFocusChange(){const e=this.focus.get();this.view.domNode.classList.toggle("element-focused",e.length>0),this.onDidChangeActiveDescendant()}onDidChangeActiveDescendant(){var e;const t=this.focus.get();if(t.length>0){let i;(null===(e=this.accessibilityProvider)||void 0===e?void 0:e.getActiveDescendantId)&&(i=this.accessibilityProvider.getActiveDescendantId(this.view.element(t[0]))),this.view.domNode.setAttribute("aria-activedescendant",i||this.view.getElementDomId(t[0]))}else this.view.domNode.removeAttribute("aria-activedescendant")}_onSelectionChange(){const 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)}dispose(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidDispose.dispose()}}k([u.H],ee.prototype,"onDidChangeFocus",null),k([u.H],ee.prototype,"onDidChangeSelection",null),k([u.H],ee.prototype,"onContextMenu",null),k([u.H],ee.prototype,"onKeyDown",null),k([u.H],ee.prototype,"onDidFocus",null),k([u.H],ee.prototype,"onDidBlur",null)},38059:(e,t,i)=>{i.d(t,{l:()=>u,g:()=>b});var n=i(85714),o=i(3640),s=i(48688),r=i(60282),a=i(30333),l=i(24219),h=i(89599),d=i(21511),c=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r};var u;!function(e){e.North="north",e.South="south",e.East="east",e.West="west"}(u||(u={}));const g=new l.Q5;const m=new l.Q5;class f{constructor(e){this.el=e,this.disposables=new h.SL}get onPointerMove(){return this.disposables.add(new o.Y((0,n.Jj)(this.el),"mousemove")).event}get onPointerUp(){return this.disposables.add(new o.Y((0,n.Jj)(this.el),"mouseup")).event}dispose(){this.disposables.dispose()}}c([a.H],f.prototype,"onPointerMove",null),c([a.H],f.prototype,"onPointerUp",null);class p{get onPointerMove(){return this.disposables.add(new o.Y(this.el,s.t.Change)).event}get onPointerUp(){return this.disposables.add(new o.Y(this.el,s.t.End)).event}constructor(e){this.el=e,this.disposables=new h.SL}dispose(){this.disposables.dispose()}}c([a.H],p.prototype,"onPointerMove",null),c([a.H],p.prototype,"onPointerUp",null);class _{get onPointerMove(){return this.factory.onPointerMove}get onPointerUp(){return this.factory.onPointerUp}constructor(e){this.factory=e}dispose(){}}c([a.H],_.prototype,"onPointerMove",null),c([a.H],_.prototype,"onPointerUp",null);const v="pointer-events-disabled";class b extends h.JT{get state(){return this._state}get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}set state(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))}set orthogonalStartSash(e){if(this._orthogonalStartSash!==e){if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),e){const t=t=>{this.orthogonalStartDragHandleDisposables.clear(),0!==t&&(this._orthogonalStartDragHandle=(0,n.R3)(this.el,(0,n.$)(".orthogonal-drag-handle.start")),this.orthogonalStartDragHandleDisposables.add((0,h.OF)((()=>this._orthogonalStartDragHandle.remove()))),this.orthogonalStartDragHandleDisposables.add(new o.Y(this._orthogonalStartDragHandle,"mouseenter")).event((()=>b.onMouseEnter(e)),void 0,this.orthogonalStartDragHandleDisposables),this.orthogonalStartDragHandleDisposables.add(new o.Y(this._orthogonalStartDragHandle,"mouseleave")).event((()=>b.onMouseLeave(e)),void 0,this.orthogonalStartDragHandleDisposables))};this.orthogonalStartSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalStartSash=e}}set orthogonalEndSash(e){if(this._orthogonalEndSash!==e){if(this.orthogonalEndDragHandleDisposables.clear(),this.orthogonalEndSashDisposables.clear(),e){const t=t=>{this.orthogonalEndDragHandleDisposables.clear(),0!==t&&(this._orthogonalEndDragHandle=(0,n.R3)(this.el,(0,n.$)(".orthogonal-drag-handle.end")),this.orthogonalEndDragHandleDisposables.add((0,h.OF)((()=>this._orthogonalEndDragHandle.remove()))),this.orthogonalEndDragHandleDisposables.add(new o.Y(this._orthogonalEndDragHandle,"mouseenter")).event((()=>b.onMouseEnter(e)),void 0,this.orthogonalEndDragHandleDisposables),this.orthogonalEndDragHandleDisposables.add(new o.Y(this._orthogonalEndDragHandle,"mouseleave")).event((()=>b.onMouseLeave(e)),void 0,this.orthogonalEndDragHandleDisposables))};this.orthogonalEndSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalEndSash=e}}constructor(e,t,i){super(),this.hoverDelay=300,this.hoverDelayer=this._register(new r.vp(this.hoverDelay)),this._state=3,this.onDidEnablementChange=this._register(new l.Q5),this._onDidStart=this._register(new l.Q5),this._onDidChange=this._register(new l.Q5),this._onDidReset=this._register(new l.Q5),this._onDidEnd=this._register(new l.Q5),this.orthogonalStartSashDisposables=this._register(new h.SL),this.orthogonalStartDragHandleDisposables=this._register(new h.SL),this.orthogonalEndSashDisposables=this._register(new h.SL),this.orthogonalEndDragHandleDisposables=this._register(new h.SL),this.onDidStart=this._onDidStart.event,this.onDidChange=this._onDidChange.event,this.onDidReset=this._onDidReset.event,this.onDidEnd=this._onDidEnd.event,this.linkedSash=void 0,this.el=(0,n.R3)(e,(0,n.$)(".monaco-sash")),i.orthogonalEdge&&this.el.classList.add("orthogonal-edge-".concat(i.orthogonalEdge)),d.dz&&this.el.classList.add("mac");const a=this._register(new o.Y(this.el,"mousedown")).event;this._register(a((t=>this.onPointerStart(t,new f(e))),this));const c=this._register(new o.Y(this.el,"dblclick")).event;this._register(c(this.onPointerDoublePress,this));const u=this._register(new o.Y(this.el,"mouseenter")).event;this._register(u((()=>b.onMouseEnter(this))));const _=this._register(new o.Y(this.el,"mouseleave")).event;this._register(_((()=>b.onMouseLeave(this)))),this._register(s.o.addTarget(this.el));const v=this._register(new o.Y(this.el,s.t.Start)).event;this._register(v((e=>this.onPointerStart(e,new p(this.el))),this));const C=this._register(new o.Y(this.el,s.t.Tap)).event;let w;this._register(C((e=>{if(w)return clearTimeout(w),w=void 0,void this.onPointerDoublePress(e);clearTimeout(w),w=setTimeout((()=>w=void 0),250)}),this)),"number"===typeof i.size?(this.size=i.size,0===i.orientation?this.el.style.width="".concat(this.size,"px"):this.el.style.height="".concat(this.size,"px")):(this.size=4,this._register(g.event((e=>{this.size=e,this.layout()})))),this._register(m.event((e=>this.hoverDelay=e))),this.layoutProvider=t,this.orthogonalStartSash=i.orthogonalStartSash,this.orthogonalEndSash=i.orthogonalEndSash,this.orientation=i.orientation||0,1===this.orientation?(this.el.classList.add("horizontal"),this.el.classList.remove("vertical")):(this.el.classList.remove("horizontal"),this.el.classList.add("vertical")),this.el.classList.toggle("debug",false),this.layout()}onPointerStart(e,t){n.zB.stop(e);let i=!1;if(!e.__orthogonalSashEvent){const n=this.getOrthogonalSash(e);n&&(i=!0,e.__orthogonalSashEvent=!0,n.onPointerStart(e,new _(t)))}if(this.linkedSash&&!e.__linkedSashEvent&&(e.__linkedSashEvent=!0,this.linkedSash.onPointerStart(e,new _(t))),!this.state)return;const o=this.el.ownerDocument.getElementsByTagName("iframe");for(const n of o)n.classList.add(v);const s=e.pageX,r=e.pageY,a=e.altKey,l={startX:s,currentX:s,startY:r,currentY:r,altKey:a};this.el.classList.add("active"),this._onDidStart.fire(l);const c=(0,n.dS)(this.el),u=()=>{let e="";e=i?"all-scroll":1===this.orientation?1===this.state?"s-resize":2===this.state?"n-resize":d.dz?"row-resize":"ns-resize":1===this.state?"e-resize":2===this.state?"w-resize":d.dz?"col-resize":"ew-resize",c.textContent="* { cursor: ".concat(e," !important; }")},g=new h.SL;u(),i||this.onDidEnablementChange.event(u,null,g);t.onPointerMove((e=>{n.zB.stop(e,!1);const t={startX:s,currentX:e.pageX,startY:r,currentY:e.pageY,altKey:a};this._onDidChange.fire(t)}),null,g),t.onPointerUp((e=>{n.zB.stop(e,!1),this.el.removeChild(c),this.el.classList.remove("active"),this._onDidEnd.fire(),g.dispose();for(const t of o)t.classList.remove(v)}),null,g),g.add(t)}onPointerDoublePress(e){const t=this.getOrthogonalSash(e);t&&t._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()}static onMouseEnter(e){let 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((()=>e.el.classList.add("hover")),e.hoverDelay).then(void 0,(()=>{})),!t&&e.linkedSash&&b.onMouseEnter(e.linkedSash,!0)}static onMouseLeave(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.hoverDelayer.cancel(),e.el.classList.remove("hover"),!t&&e.linkedSash&&b.onMouseLeave(e.linkedSash,!0)}clearSashHoverState(){b.onMouseLeave(this)}layout(){if(0===this.orientation){const 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{const e=this.layoutProvider;this.el.style.top=e.getHorizontalSashTop(this)-this.size/2+"px",e.getHorizontalSashLeft&&(this.el.style.left=e.getHorizontalSashLeft(this)+"px"),e.getHorizontalSashWidth&&(this.el.style.width=e.getHorizontalSashWidth(this)+"px")}}getOrthogonalSash(e){var t;const i=null!==(t=e.initialTarget)&&void 0!==t?t:e.target;if(i&&i instanceof HTMLElement)return i.classList.contains("orthogonal-drag-handle")?i.classList.contains("start")?this.orthogonalStartSash:this.orthogonalEndSash:void 0}dispose(){super.dispose(),this.el.remove()}}},66561:(e,t,i)=>{i.d(t,{s$:()=>x,Io:()=>L,NB:()=>D,$Z:()=>N});var n=i(42606),o=i(85714),s=i(45153),r=i(21494),a=i(13505),l=i(74812),h=i(60282),d=i(62502);const c=11;class u extends l.${constructor(e){super(),this._onActivate=e.onActivate,this.bgDomNode=document.createElement("div"),this.bgDomNode.className="arrow-background",this.bgDomNode.style.position="absolute",this.bgDomNode.style.width=e.bgWidth+"px",this.bgDomNode.style.height=e.bgHeight+"px","undefined"!==typeof e.top&&(this.bgDomNode.style.top="0px"),"undefined"!==typeof e.left&&(this.bgDomNode.style.left="0px"),"undefined"!==typeof e.bottom&&(this.bgDomNode.style.bottom="0px"),"undefined"!==typeof e.right&&(this.bgDomNode.style.right="0px"),this.domNode=document.createElement("div"),this.domNode.className=e.className,this.domNode.classList.add(...d.k.asClassNameArray(e.icon)),this.domNode.style.position="absolute",this.domNode.style.width="11px",this.domNode.style.height="11px","undefined"!==typeof e.top&&(this.domNode.style.top=e.top+"px"),"undefined"!==typeof e.left&&(this.domNode.style.left=e.left+"px"),"undefined"!==typeof e.bottom&&(this.domNode.style.bottom=e.bottom+"px"),"undefined"!==typeof e.right&&(this.domNode.style.right=e.right+"px"),this._pointerMoveMonitor=this._register(new a.C),this._register(o.mu(this.bgDomNode,o.tw.POINTER_DOWN,(e=>this._arrowPointerDown(e)))),this._register(o.mu(this.domNode,o.tw.POINTER_DOWN,(e=>this._arrowPointerDown(e)))),this._pointerdownRepeatTimer=this._register(new o.ne),this._pointerdownScheduleRepeatTimer=this._register(new h._F)}_arrowPointerDown(e){if(!e.target||!(e.target instanceof Element))return;this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet((()=>{this._pointerdownRepeatTimer.cancelAndSet((()=>this._onActivate()),1e3/24,o.Jj(e))}),200),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,(e=>{}),(()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()})),e.preventDefault()}}var g=i(89599);class m extends g.JT{constructor(e,t,i){super(),this._visibility=e,this._visibleClassName=t,this._invisibleClassName=i,this._domNode=null,this._isVisible=!1,this._isNeeded=!1,this._rawShouldBeVisible=!1,this._shouldBeVisible=!1,this._revealTimer=this._register(new h._F)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this._updateShouldBeVisible())}setShouldBeVisible(e){this._rawShouldBeVisible=e,this._updateShouldBeVisible()}_applyVisibilitySetting(){return 2!==this._visibility&&(3===this._visibility||this._rawShouldBeVisible)}_updateShouldBeVisible(){const e=this._applyVisibilitySetting();this._shouldBeVisible!==e&&(this._shouldBeVisible=e,this.ensureVisibility())}setIsNeeded(e){this._isNeeded!==e&&(this._isNeeded=e,this.ensureVisibility())}setDomNode(e){this._domNode=e,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}ensureVisibility(){this._isNeeded?this._shouldBeVisible?this._reveal():this._hide(!0):this._hide(!1)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet((()=>{var e;null===(e=this._domNode)||void 0===e||e.setClassName(this._visibleClassName)}),0))}_hide(e){var t;this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,null===(t=this._domNode)||void 0===t||t.setClassName(this._invisibleClassName+(e?" fade":"")))}}var f=i(21511);class p extends l.${constructor(e){super(),this._lazyRender=e.lazyRender,this._host=e.host,this._scrollable=e.scrollable,this._scrollByPage=e.scrollByPage,this._scrollbarState=e.scrollbarState,this._visibilityController=this._register(new m(e.visibility,"visible scrollbar "+e.extraScrollbarClassName,"invisible scrollbar "+e.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new a.C),this._shouldRender=!0,this.domNode=(0,s.X)(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition("absolute"),this._register(o.nm(this.domNode.domNode,o.tw.POINTER_DOWN,(e=>this._domNodePointerDown(e))))}_createArrow(e){const t=this._register(new u(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}_createSlider(e,t,i,n){this.slider=(0,s.X)(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(e),this.slider.setLeft(t),"number"===typeof i&&this.slider.setWidth(i),"number"===typeof n&&this.slider.setHeight(n),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this._register(o.nm(this.slider.domNode,o.tw.POINTER_DOWN,(e=>{0===e.button&&(e.preventDefault(),this._sliderPointerDown(e))}))),this.onclick(this.slider.domNode,(e=>{e.leftButton&&e.stopPropagation()}))}_onElementSize(e){return this._scrollbarState.setVisibleSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(e){return this._scrollbarState.setScrollSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(e){return this._scrollbarState.setScrollPosition(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodePointerDown(e){e.target===this.domNode.domNode&&this._onPointerDown(e)}delegatePointerDown(e){const t=this.domNode.domNode.getClientRects()[0].top,i=t+this._scrollbarState.getSliderPosition(),n=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),o=this._sliderPointerPosition(e);i<=o&&o<=n?0===e.button&&(e.preventDefault(),this._sliderPointerDown(e)):this._onPointerDown(e)}_onPointerDown(e){let t,i;if(e.target===this.domNode.domNode&&"number"===typeof e.offsetX&&"number"===typeof e.offsetY)t=e.offsetX,i=e.offsetY;else{const n=o.i(this.domNode.domNode);t=e.pageX-n.left,i=e.pageY-n.top}const n=this._pointerDownRelativePosition(t,i);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(n):this._scrollbarState.getDesiredScrollPositionFromOffset(n)),0===e.button&&(e.preventDefault(),this._sliderPointerDown(e))}_sliderPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=this._sliderPointerPosition(e),i=this._sliderOrthogonalPointerPosition(e),n=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,(e=>{const o=this._sliderOrthogonalPointerPosition(e),s=Math.abs(o-i);if(f.ED&&s>140)return void this._setDesiredScrollPositionNow(n.getScrollPosition());const r=this._sliderPointerPosition(e)-t;this._setDesiredScrollPositionNow(n.getDesiredScrollPositionFromDelta(r))}),(()=>{this.slider.toggleClassName("active",!1),this._host.onDragEnd()})),this._host.onDragStart()}_setDesiredScrollPositionNow(e){const t={};this.writeScrollPosition(t,e),this._scrollable.setScrollPositionNow(t)}updateScrollbarSize(e){this._updateScrollbarSize(e),this._scrollbarState.setScrollbarSize(e),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}}var _=i(62413),v=i(62974);class b extends p{constructor(e,t,i){const n=e.getScrollDimensions(),o=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:i,scrollbarState:new _.M(t.horizontalHasArrows?t.arrowSize:0,2===t.horizontal?0:t.horizontalScrollbarSize,2===t.vertical?0:t.verticalScrollbarSize,n.width,n.scrollWidth,o.scrollLeft),visibility:t.horizontal,extraScrollbarClassName:"horizontal",scrollable:e,scrollByPage:t.scrollByPage}),t.horizontalHasArrows){const e=(t.arrowSize-c)/2,i=(t.horizontalScrollbarSize-c)/2;this._createArrow({className:"scra",icon:v.l.scrollbarButtonLeft,top:i,left:e,bottom:void 0,right:void 0,bgWidth:t.arrowSize,bgHeight:t.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new r.q(null,1,0))}),this._createArrow({className:"scra",icon:v.l.scrollbarButtonRight,top:i,left:void 0,bottom:void 0,right:e,bgWidth:t.arrowSize,bgHeight:t.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new r.q(null,-1,0))})}this._createSlider(Math.floor((t.horizontalScrollbarSize-t.horizontalSliderSize)/2),0,void 0,t.horizontalSliderSize)}_updateSlider(e,t){this.slider.setWidth(e),this.slider.setLeft(t)}_renderDomNode(e,t){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(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}_pointerDownRelativePosition(e,t){return e}_sliderPointerPosition(e){return e.pageX}_sliderOrthogonalPointerPosition(e){return e.pageY}_updateScrollbarSize(e){this.slider.setHeight(e)}writeScrollPosition(e,t){e.scrollLeft=t}updateOptions(e){this.updateScrollbarSize(2===e.horizontal?0:e.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(2===e.vertical?0:e.verticalScrollbarSize),this._visibilityController.setVisibility(e.horizontal),this._scrollByPage=e.scrollByPage}}class C extends p{constructor(e,t,i){const n=e.getScrollDimensions(),o=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:i,scrollbarState:new _.M(t.verticalHasArrows?t.arrowSize:0,2===t.vertical?0:t.verticalScrollbarSize,0,n.height,n.scrollHeight,o.scrollTop),visibility:t.vertical,extraScrollbarClassName:"vertical",scrollable:e,scrollByPage:t.scrollByPage}),t.verticalHasArrows){const e=(t.arrowSize-c)/2,i=(t.verticalScrollbarSize-c)/2;this._createArrow({className:"scra",icon:v.l.scrollbarButtonUp,top:e,left:i,bottom:void 0,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new r.q(null,0,1))}),this._createArrow({className:"scra",icon:v.l.scrollbarButtonDown,top:void 0,left:i,bottom:e,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new r.q(null,0,-1))})}this._createSlider(0,Math.floor((t.verticalScrollbarSize-t.verticalSliderSize)/2),t.verticalSliderSize,void 0)}_updateSlider(e,t){this.slider.setHeight(e),this.slider.setTop(t)}_renderDomNode(e,t){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(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}_pointerDownRelativePosition(e,t){return t}_sliderPointerPosition(e){return e.pageY}_sliderOrthogonalPointerPosition(e){return e.pageX}_updateScrollbarSize(e){this.slider.setWidth(e)}writeScrollPosition(e,t){e.scrollTop=t}updateOptions(e){this.updateScrollbarSize(2===e.vertical?0:e.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(e.vertical),this._scrollByPage=e.scrollByPage}}var w=i(24219),y=i(89314);class S{constructor(e,t,i){this.timestamp=e,this.deltaX=t,this.deltaY=i,this.score=0}}class L{constructor(){this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}isPhysicalMouseWheel(){if(-1===this._front&&-1===this._rear)return!1;let e=1,t=0,i=1,n=this._rear;for(;;){const o=n===this._front?e:Math.pow(2,-i);if(e-=o,t+=this._memory[n].score*o,n===this._front)break;n=(this._capacity+n-1)%this._capacity,i++}return t<=.5}acceptStandardWheelEvent(e){if(n.i7){const t=o.Jj(e.browserEvent),i=(0,n.ie)(t);this.accept(Date.now(),e.deltaX*i,e.deltaY*i)}else this.accept(Date.now(),e.deltaX,e.deltaY)}accept(e,t,i){let n=null;const o=new S(e,t,i);-1===this._front&&-1===this._rear?(this._memory[0]=o,this._front=0,this._rear=0):(n=this._memory[this._rear],this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=o),o.score=this._computeScore(o,n)}_computeScore(e,t){if(Math.abs(e.deltaX)>0&&Math.abs(e.deltaY)>0)return 1;let i=.5;if(this._isAlmostInt(e.deltaX)&&this._isAlmostInt(e.deltaY)||(i+=.25),t){const n=Math.abs(e.deltaX),o=Math.abs(e.deltaY),s=Math.abs(t.deltaX),r=Math.abs(t.deltaY),a=Math.max(Math.min(n,s),1),l=Math.max(Math.min(o,r),1),h=Math.max(n,s),d=Math.max(o,r);h%a===0&&d%l===0&&(i-=.5)}return Math.min(Math.max(i,0),1)}_isAlmostInt(e){return Math.abs(Math.round(e)-e)<.01}}L.INSTANCE=new L;class k extends l.${get options(){return this._options}constructor(e,t,i){super(),this._onScroll=this._register(new w.Q5),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new w.Q5),e.style.overflow="hidden",this._options=function(e){const 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,f.dz&&(t.className+=" mac");return t}(t),this._scrollable=i,this._register(this._scrollable.onScroll((e=>{this._onWillScroll.fire(e),this._onDidScroll(e),this._onScroll.fire(e)})));const n={onMouseWheel:e=>this._onMouseWheel(e),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new C(this._scrollable,this._options,n)),this._horizontalScrollbar=this._register(new b(this._scrollable,this._options,n)),this._domNode=document.createElement("div"),this._domNode.className="monaco-scrollable-element "+this._options.className,this._domNode.setAttribute("role","presentation"),this._domNode.style.position="relative",this._domNode.style.overflow="hidden",this._domNode.appendChild(e),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=(0,s.X)(document.createElement("div")),this._leftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=(0,s.X)(document.createElement("div")),this._topShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=(0,s.X)(document.createElement("div")),this._topLeftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,(e=>this._onMouseOver(e))),this.onmouseleave(this._listenOnDomNode,(e=>this._onMouseLeave(e))),this._hideTimeout=this._register(new h._F),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}dispose(){this._mouseWheelToDispose=(0,g.B9)(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(e){this._verticalScrollbar.delegatePointerDown(e)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(e){this._scrollable.setScrollDimensions(e,!1)}updateClassName(e){this._options.className=e,f.dz&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className}updateOptions(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.horizontal&&(this._options.horizontal=e.horizontal),"undefined"!==typeof e.vertical&&(this._options.vertical=e.vertical),"undefined"!==typeof e.horizontalScrollbarSize&&(this._options.horizontalScrollbarSize=e.horizontalScrollbarSize),"undefined"!==typeof e.verticalScrollbarSize&&(this._options.verticalScrollbarSize=e.verticalScrollbarSize),"undefined"!==typeof e.scrollByPage&&(this._options.scrollByPage=e.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}delegateScrollFromMouseWheelEvent(e){this._onMouseWheel(new r.q(e))}_setListeningToMouseWheel(e){if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=(0,g.B9)(this._mouseWheelToDispose),e)){const e=e=>{this._onMouseWheel(new r.q(e))};this._mouseWheelToDispose.push(o.nm(this._listenOnDomNode,o.tw.MOUSE_WHEEL,e,{passive:!1}))}}_onMouseWheel(e){var t;if(null===(t=e.browserEvent)||void 0===t?void 0:t.defaultPrevented)return;const i=L.INSTANCE;i.acceptStandardWheelEvent(e);let n=!1;if(e.deltaY||e.deltaX){let t=e.deltaY*this._options.mouseWheelScrollSensitivity,o=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&o+t===0?o=t=0:Math.abs(t)>=Math.abs(o)?o=0:t=0),this._options.flipAxes&&([t,o]=[o,t]);const s=!f.dz&&e.browserEvent&&e.browserEvent.shiftKey;!this._options.scrollYToX&&!s||o||(o=t,t=0),e.browserEvent&&e.browserEvent.altKey&&(o*=this._options.fastScrollSensitivity,t*=this._options.fastScrollSensitivity);const r=this._scrollable.getFutureScrollPosition();let a={};if(t){const e=50*t,i=r.scrollTop-(e<0?Math.floor(e):Math.ceil(e));this._verticalScrollbar.writeScrollPosition(a,i)}if(o){const e=50*o,t=r.scrollLeft-(e<0?Math.floor(e):Math.ceil(e));this._horizontalScrollbar.writeScrollPosition(a,t)}if(a=this._scrollable.validateScrollPosition(a),r.scrollLeft!==a.scrollLeft||r.scrollTop!==a.scrollTop){this._options.mouseWheelSmoothScroll&&i.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(a):this._scrollable.setScrollPositionNow(a),n=!0}}let o=n;!o&&this._options.alwaysConsumeMouseWheel&&(o=!0),!o&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(o=!0),o&&(e.preventDefault(),e.stopPropagation())}_onDidScroll(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()}renderNow(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){const e=this._scrollable.getCurrentScrollPosition(),t=e.scrollTop>0,i=e.scrollLeft>0,n=i?" left":"",o=t?" top":"",s=i||t?" top-left-corner":"";this._leftShadowDomNode.setClassName("shadow".concat(n)),this._topShadowDomNode.setClassName("shadow".concat(o)),this._topLeftShadowDomNode.setClassName("shadow".concat(s).concat(o).concat(n))}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(e){this._mouseIsOver=!1,this._hide()}_onMouseOver(e){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){this._mouseIsOver||this._isDragging||(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){this._mouseIsOver||this._isDragging||this._hideTimeout.cancelAndSet((()=>this._hide()),500)}}class D extends k{constructor(e,t){(t=t||{}).mouseWheelSmoothScroll=!1;const i=new y.Rm({forceIntegerValues:!0,smoothScrollDuration:0,scheduleAtNextAnimationFrame:t=>o.jL(o.Jj(e),t)});super(e,t,i),this._register(i)}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}}class N extends k{constructor(e,t,i){super(e,t,i)}setScrollPosition(e){e.reuseAnimation?this._scrollable.setScrollPositionSmooth(e,e.reuseAnimation):this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}}class x extends k{constructor(e,t){(t=t||{}).mouseWheelSmoothScroll=!1;const i=new y.Rm({forceIntegerValues:!1,smoothScrollDuration:0,scheduleAtNextAnimationFrame:t=>o.jL(o.Jj(e),t)});super(e,t,i),this._register(i),this._element=e,this._register(this.onScroll((e=>{e.scrollTopChanged&&(this._element.scrollTop=e.scrollTop),e.scrollLeftChanged&&(this._element.scrollLeft=e.scrollLeft)}))),this.scanDomNode()}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}scanDomNode(){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})}}},62413:(e,t,i)=>{i.d(t,{M:()=>n});class n{constructor(e,t,i,n,o,s){this._scrollbarSize=Math.round(t),this._oppositeScrollbarSize=Math.round(i),this._arrowSize=Math.round(e),this._visibleSize=n,this._scrollSize=o,this._scrollPosition=s,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new n(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(e){const t=Math.round(e);return this._visibleSize!==t&&(this._visibleSize=t,this._refreshComputedValues(),!0)}setScrollSize(e){const t=Math.round(e);return this._scrollSize!==t&&(this._scrollSize=t,this._refreshComputedValues(),!0)}setScrollPosition(e){const t=Math.round(e);return this._scrollPosition!==t&&(this._scrollPosition=t,this._refreshComputedValues(),!0)}setScrollbarSize(e){this._scrollbarSize=Math.round(e)}setOppositeScrollbarSize(e){this._oppositeScrollbarSize=Math.round(e)}static _computeValues(e,t,i,n,o){const s=Math.max(0,i-e),r=Math.max(0,s-2*t),a=n>0&&n>i;if(!a)return{computedAvailableSize:Math.round(s),computedIsNeeded:a,computedSliderSize:Math.round(r),computedSliderRatio:0,computedSliderPosition:0};const l=Math.round(Math.max(20,Math.floor(i*r/n))),h=(r-l)/(n-i),d=o*h;return{computedAvailableSize:Math.round(s),computedIsNeeded:a,computedSliderSize:Math.round(l),computedSliderRatio:h,computedSliderPosition:Math.round(d)}}_refreshComputedValues(){const e=n._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=e.computedAvailableSize,this._computedIsNeeded=e.computedIsNeeded,this._computedSliderSize=e.computedSliderSize,this._computedSliderRatio=e.computedSliderRatio,this._computedSliderPosition=e.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(e){if(!this._computedIsNeeded)return 0;const t=e-this._arrowSize-this._computedSliderSize/2;return Math.round(t/this._computedSliderRatio)}getDesiredScrollPositionFromOffsetPaged(e){if(!this._computedIsNeeded)return 0;const t=e-this._arrowSize;let i=this._scrollPosition;return t{i.d(t,{M:()=>b,z:()=>C});var n=i(85714),o=i(3640),s=i(38059),r=i(66561),a=i(75629),l=i(89652),h=i(24219),d=i(89599),c=i(63229),u=i(89314),g=i(63686);const m={separatorBorder:l.Il.transparent};class f{set size(e){this._size=e}get size(){return this._size}get visible(){return"undefined"===typeof this._cachedVisibleSize}setVisible(e,t){var i,n;if(e!==this.visible){e?(this.size=(0,c.uZ)(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);try{null===(n=(i=this.view).setVisible)||void 0===n||n.call(i,e)}catch(o){console.error("Splitview: Failed to set visible view"),console.error(o)}}}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get proportionalLayout(){var e;return null===(e=this.view.proportionalLayout)||void 0===e||e}get snap(){return!!this.view.snap}set enabled(e){this.container.style.pointerEvents=e?"":"none"}constructor(e,t,i,n){this.container=e,this.view=t,this.disposable=n,this._cachedVisibleSize=void 0,"number"===typeof i?(this._size=i,this._cachedVisibleSize=void 0,e.classList.add("visible")):(this._size=0,this._cachedVisibleSize=i.cachedVisibleSize)}layout(e,t){this.layoutContainer(e);try{this.view.layout(this.size,e,t)}catch(i){console.error("Splitview: Failed to layout view"),console.error(i)}}dispose(){this.disposable.dispose()}}class p extends f{layoutContainer(e){this.container.style.top="".concat(e,"px"),this.container.style.height="".concat(this.size,"px")}}class _ extends f{layoutContainer(e){this.container.style.left="".concat(e,"px"),this.container.style.width="".concat(this.size,"px")}}var v,b;!function(e){e[e.Idle=0]="Idle",e[e.Busy=1]="Busy"}(v||(v={})),function(e){e.Distribute={type:"distribute"},e.Split=function(e){return{type:"split",index:e}},e.Auto=function(e){return{type:"auto",index:e}},e.Invisible=function(e){return{type:"invisible",cachedVisibleSize:e}}}(b||(b={}));class C extends d.JT{get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}get startSnappingEnabled(){return this._startSnappingEnabled}get endSnappingEnabled(){return this._endSnappingEnabled}set orthogonalStartSash(e){for(const t of this.sashItems)t.sash.orthogonalStartSash=e;this._orthogonalStartSash=e}set orthogonalEndSash(e){for(const t of this.sashItems)t.sash.orthogonalEndSash=e;this._orthogonalEndSash=e}set startSnappingEnabled(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())}set endSnappingEnabled(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())}constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var i,s,a,l,d;super(),this.size=0,this._contentSize=0,this.proportions=void 0,this.viewItems=[],this.sashItems=[],this.state=v.Idle,this._onDidSashChange=this._register(new h.Q5),this._onDidSashReset=this._register(new h.Q5),this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this.onDidSashChange=this._onDidSashChange.event,this.onDidSashReset=this._onDidSashReset.event,this.orientation=null!==(i=t.orientation)&&void 0!==i?i:0,this.inverseAltBehavior=null!==(s=t.inverseAltBehavior)&&void 0!==s&&s,this.proportionalLayout=null===(a=t.proportionalLayout)||void 0===a||a,this.getSashOrthogonalSize=t.getSashOrthogonalSize,this.el=document.createElement("div"),this.el.classList.add("monaco-split-view2"),this.el.classList.add(0===this.orientation?"vertical":"horizontal"),e.appendChild(this.el),this.sashContainer=(0,n.R3)(this.el,(0,n.$)(".sash-container")),this.viewContainer=(0,n.$)(".split-view-container"),this.scrollable=this._register(new u.Rm({forceIntegerValues:!0,smoothScrollDuration:125,scheduleAtNextAnimationFrame:e=>(0,n.jL)((0,n.Jj)(this.el),e)})),this.scrollableElement=this._register(new r.$Z(this.viewContainer,{vertical:0===this.orientation?null!==(l=t.scrollbarVisibility)&&void 0!==l?l:1:2,horizontal:1===this.orientation?null!==(d=t.scrollbarVisibility)&&void 0!==d?d:1:2},this.scrollable));const c=this._register(new o.Y(this.viewContainer,"scroll")).event;this._register(c((e=>{const t=this.scrollableElement.getScrollPosition(),i=Math.abs(this.viewContainer.scrollLeft-t.scrollLeft)<=1?void 0:this.viewContainer.scrollLeft,n=Math.abs(this.viewContainer.scrollTop-t.scrollTop)<=1?void 0:this.viewContainer.scrollTop;void 0===i&&void 0===n||this.scrollableElement.setScrollPosition({scrollLeft:i,scrollTop:n})}))),this.onDidScroll=this.scrollableElement.onScroll,this._register(this.onDidScroll((e=>{e.scrollTopChanged&&(this.viewContainer.scrollTop=e.scrollTop),e.scrollLeftChanged&&(this.viewContainer.scrollLeft=e.scrollLeft)}))),(0,n.R3)(this.el,this.scrollableElement.getDomNode()),this.style(t.styles||m),t.descriptor&&(this.size=t.descriptor.size,t.descriptor.views.forEach(((e,t)=>{const i=g.o8(e.visible)||e.visible?e.size:{type:"invisible",cachedVisibleSize:e.size},n=e.view;this.doAddView(n,i,t,!0)})),this._contentSize=this.viewItems.reduce(((e,t)=>e+t.size),0),this.saveProportions())}style(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()))}addView(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.viewItems.length,n=arguments.length>3?arguments[3]:void 0;this.doAddView(e,t,i,n)}layout(e,t){const i=Math.max(this.size,this._contentSize);if(this.size=e,this.layoutContext=t,this.proportions){let t=0;for(let i=0;i0&&(n.size=(0,c.uZ)(Math.round(o*e/t),n.minimumSize,n.maximumSize))}}else{const t=(0,a.w6)(this.viewItems.length),n=t.filter((e=>1===this.viewItems[e].priority)),o=t.filter((e=>2===this.viewItems[e].priority));this.resize(this.viewItems.length-1,e-i,void 0,n,o)}this.distributeEmptySpace(),this.layoutViews()}saveProportions(){this.proportionalLayout&&this._contentSize>0&&(this.proportions=this.viewItems.map((e=>e.proportionalLayout&&e.visible?e.size/this._contentSize:void 0)))}onSashStart(e){let{sash:t,start:i,alt:o}=e;for(const n of this.viewItems)n.enabled=!1;const s=this.sashItems.findIndex((e=>e.sash===t)),r=(0,d.F8)((0,n.nm)(this.el.ownerDocument.body,"keydown",(e=>l(this.sashDragState.current,e.altKey))),(0,n.nm)(this.el.ownerDocument.body,"keyup",(()=>l(this.sashDragState.current,!1)))),l=(e,t)=>{const i=this.viewItems.map((e=>e.size));let n,o,l=Number.NEGATIVE_INFINITY,h=Number.POSITIVE_INFINITY;if(this.inverseAltBehavior&&(t=!t),t){if(s===this.sashItems.length-1){const e=this.viewItems[s];l=(e.minimumSize-e.size)/2,h=(e.maximumSize-e.size)/2}else{const e=this.viewItems[s+1];l=(e.size-e.maximumSize)/2,h=(e.size-e.minimumSize)/2}}if(!t){const e=(0,a.w6)(s,-1),t=(0,a.w6)(s+1,this.viewItems.length),r=e.reduce(((e,t)=>e+(this.viewItems[t].minimumSize-i[t])),0),l=e.reduce(((e,t)=>e+(this.viewItems[t].viewMaximumSize-i[t])),0),h=0===t.length?Number.POSITIVE_INFINITY:t.reduce(((e,t)=>e+(i[t]-this.viewItems[t].minimumSize)),0),d=0===t.length?Number.NEGATIVE_INFINITY:t.reduce(((e,t)=>e+(i[t]-this.viewItems[t].viewMaximumSize)),0),c=Math.max(r,d),u=Math.min(h,l),g=this.findFirstSnapIndex(e),m=this.findFirstSnapIndex(t);if("number"===typeof g){const e=this.viewItems[g],t=Math.floor(e.viewMinimumSize/2);n={index:g,limitDelta:e.visible?c-t:c+t,size:e.size}}if("number"===typeof m){const e=this.viewItems[m],t=Math.floor(e.viewMinimumSize/2);o={index:m,limitDelta:e.visible?u+t:u-t,size:e.size}}}this.sashDragState={start:e,current:e,index:s,sizes:i,minDelta:l,maxDelta:h,alt:t,snapBefore:n,snapAfter:o,disposable:r}};l(i,o)}onSashChange(e){let{current:t}=e;const{index:i,start:n,sizes:o,alt:s,minDelta:r,maxDelta:a,snapBefore:l,snapAfter:h}=this.sashDragState;this.sashDragState.current=t;const d=t-n,c=this.resize(i,d,o,void 0,void 0,r,a,l,h);if(s){const e=i===this.sashItems.length-1,t=this.viewItems.map((e=>e.size)),n=e?i:i+1,o=this.viewItems[n],s=o.size-o.maximumSize,r=o.size-o.minimumSize,a=e?i-1:i+1;this.resize(a,-c,t,void 0,void 0,s,r)}this.distributeEmptySpace(),this.layoutViews()}onSashEnd(e){this._onDidSashChange.fire(e),this.sashDragState.disposable.dispose(),this.saveProportions();for(const t of this.viewItems)t.enabled=!0}onViewChange(e,t){const i=this.viewItems.indexOf(e);i<0||i>=this.viewItems.length||(t="number"===typeof t?t:e.size,t=(0,c.uZ)(t,e.minimumSize,e.maximumSize),this.inverseAltBehavior&&i>0?(this.resize(i-1,Math.floor((e.size-t)/2)),this.distributeEmptySpace(),this.layoutViews()):(e.size=t,this.relayout([i],void 0)))}resizeView(e,t){if(!(e<0||e>=this.viewItems.length)){if(this.state!==v.Idle)throw new Error("Cant modify splitview");this.state=v.Busy;try{const i=(0,a.w6)(this.viewItems.length).filter((t=>t!==e)),n=[...i.filter((e=>1===this.viewItems[e].priority)),e],o=i.filter((e=>2===this.viewItems[e].priority)),s=this.viewItems[e];t=Math.round(t),t=(0,c.uZ)(t,s.minimumSize,Math.min(s.maximumSize,this.size)),s.size=t,this.relayout(n,o)}finally{this.state=v.Idle}}}distributeViewSizes(){const e=[];let t=0;for(const r of this.viewItems)r.maximumSize-r.minimumSize>0&&(e.push(r),t+=r.size);const i=Math.floor(t/e.length);for(const r of e)r.size=(0,c.uZ)(i,r.minimumSize,r.maximumSize);const n=(0,a.w6)(this.viewItems.length),o=n.filter((e=>1===this.viewItems[e].priority)),s=n.filter((e=>2===this.viewItems[e].priority));this.relayout(o,s)}getViewSize(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}doAddView(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.viewItems.length,o=arguments.length>3?arguments[3]:void 0;if(this.state!==v.Idle)throw new Error("Cant modify splitview");this.state=v.Busy;try{const r=(0,n.$)(".split-view-view");i===this.viewItems.length?this.viewContainer.appendChild(r):this.viewContainer.insertBefore(r,this.viewContainer.children.item(i));const l=e.onDidChange((e=>this.onViewChange(m,e))),c=(0,d.OF)((()=>this.viewContainer.removeChild(r))),u=(0,d.F8)(l,c);let g;"number"===typeof t?g=t:("auto"===t.type&&(t=this.areViewsDistributed()?{type:"distribute"}:{type:"split",index:t.index}),g="split"===t.type?this.getViewSize(t.index)/2:"invisible"===t.type?{cachedVisibleSize:t.cachedVisibleSize}:e.minimumSize);const m=0===this.orientation?new p(r,e,g,u):new _(r,e,g,u);if(this.viewItems.splice(i,0,m),this.viewItems.length>1){const e={orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash},t=0===this.orientation?new s.g(this.sashContainer,{getHorizontalSashTop:e=>this.getSashPosition(e),getHorizontalSashWidth:this.getSashOrthogonalSize},{...e,orientation:1}):new s.g(this.sashContainer,{getVerticalSashLeft:e=>this.getSashPosition(e),getVerticalSashHeight:this.getSashOrthogonalSize},{...e,orientation:0}),n=0===this.orientation?e=>({sash:t,start:e.startY,current:e.currentY,alt:e.altKey}):e=>({sash:t,start:e.startX,current:e.currentX,alt:e.altKey}),o=h.ju.map(t.onDidStart,n)(this.onSashStart,this),r=h.ju.map(t.onDidChange,n)(this.onSashChange,this),l=h.ju.map(t.onDidEnd,(()=>this.sashItems.findIndex((e=>e.sash===t)))),c=l(this.onSashEnd,this),u=t.onDidReset((()=>{const e=this.sashItems.findIndex((e=>e.sash===t)),i=(0,a.w6)(e,-1),n=(0,a.w6)(e+1,this.viewItems.length),o=this.findFirstSnapIndex(i),s=this.findFirstSnapIndex(n);("number"!==typeof o||this.viewItems[o].visible)&&("number"!==typeof s||this.viewItems[s].visible)&&this._onDidSashReset.fire(e)})),g=(0,d.F8)(o,r,c,u,t),m={sash:t,disposable:g};this.sashItems.splice(i-1,0,m)}let f;r.appendChild(e.element),"number"!==typeof t&&"split"===t.type&&(f=[t.index]),o||this.relayout([i],f),o||"number"===typeof t||"distribute"!==t.type||this.distributeViewSizes()}finally{this.state=v.Idle}}relayout(e,t){const i=this.viewItems.reduce(((e,t)=>e+t.size),0);this.resize(this.viewItems.length-1,this.size-i,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}resize(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.viewItems.map((e=>e.size)),n=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,r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:Number.POSITIVE_INFINITY,l=arguments.length>7?arguments[7]:void 0,h=arguments.length>8?arguments[8]:void 0;if(e<0||e>=this.viewItems.length)return 0;const d=(0,a.w6)(e,-1),u=(0,a.w6)(e+1,this.viewItems.length);if(o)for(const c of o)(0,a.zI)(d,c),(0,a.zI)(u,c);if(n)for(const c of n)(0,a.al)(d,c),(0,a.al)(u,c);const g=d.map((e=>this.viewItems[e])),m=d.map((e=>i[e])),f=u.map((e=>this.viewItems[e])),p=u.map((e=>i[e])),_=d.reduce(((e,t)=>e+(this.viewItems[t].minimumSize-i[t])),0),v=d.reduce(((e,t)=>e+(this.viewItems[t].maximumSize-i[t])),0),b=0===u.length?Number.POSITIVE_INFINITY:u.reduce(((e,t)=>e+(i[t]-this.viewItems[t].minimumSize)),0),C=0===u.length?Number.NEGATIVE_INFINITY:u.reduce(((e,t)=>e+(i[t]-this.viewItems[t].maximumSize)),0),w=Math.max(_,C,s),y=Math.min(b,v,r);let S=!1;if(l){const e=this.viewItems[l.index],i=t>=l.limitDelta;S=i!==e.visible,e.setVisible(i,l.size)}if(!S&&h){const e=this.viewItems[h.index],i=te+t.size),0);let i=this.size-t;const n=(0,a.w6)(this.viewItems.length-1,-1),o=n.filter((e=>1===this.viewItems[e].priority)),s=n.filter((e=>2===this.viewItems[e].priority));for(const r of s)(0,a.zI)(n,r);for(const r of o)(0,a.al)(n,r);"number"===typeof e&&(0,a.al)(n,e);for(let r=0;0!==i&&re+t.size),0);let e=0;for(const t of this.viewItems)t.layout(e,this.layoutContext),e+=t.size;this.sashItems.forEach((e=>e.sash.layout())),this.updateSashEnablement(),this.updateScrollableElement()}updateScrollableElement(){0===this.orientation?this.scrollableElement.setScrollDimensions({height:this.size,scrollHeight:this._contentSize}):this.scrollableElement.setScrollDimensions({width:this.size,scrollWidth:this._contentSize})}updateSashEnablement(){let e=!1;const t=this.viewItems.map((t=>e=t.size-t.minimumSize>0||e));e=!1;const i=this.viewItems.map((t=>e=t.maximumSize-t.size>0||e)),n=[...this.viewItems].reverse();e=!1;const o=n.map((t=>e=t.size-t.minimumSize>0||e)).reverse();e=!1;const s=n.map((t=>e=t.maximumSize-t.size>0||e)).reverse();let r=0;for(let l=0;l0||this.startSnappingEnabled)?e.state=1:c&&t[l]&&(r0)return;if(!e.visible&&e.snap)return t}}areViewsDistributed(){let e,t;for(const i of this.viewItems)if(e=void 0===e?i.size:Math.min(e,i.size),t=void 0===t?i.size:Math.max(t,i.size),t-e>2)return!1;return!0}dispose(){var e;null===(e=this.sashDragState)||void 0===e||e.disposable.dispose(),(0,d.B9)(this.viewItems),this.viewItems=[],this.sashItems.forEach((e=>e.disposable.dispose())),this.sashItems=[],super.dispose()}}},79242:(e,t,i)=>{i.d(t,{Z:()=>h,D:()=>l});var n=i(74812),o=i(62502),s=i(24219),r=i(34392),a=i(14561);const l={inputActiveOptionBorder:"#007ACC00",inputActiveOptionForeground:"#FFFFFF",inputActiveOptionBackground:"#0E639C50"};class h extends n.${constructor(e){var t;super(),this._onChange=this._register(new s.Q5),this.onChange=this._onChange.event,this._onKeyDown=this._register(new s.Q5),this.onKeyDown=this._onKeyDown.event,this._opts=e,this._checked=this._opts.isChecked;const i=["monaco-custom-toggle"];this._opts.icon&&(this._icon=this._opts.icon,i.push(...o.k.asClassNameArray(this._icon))),this._opts.actionClassName&&i.push(...this._opts.actionClassName.split(" ")),this._checked&&i.push("checked"),this.domNode=document.createElement("div"),this._hover=this._register((0,r.g)(null!==(t=e.hoverDelegate)&&void 0!==t?t:(0,a.tM)("mouse"),this.domNode,this._opts.title)),this.domNode.classList.add(...i),this._opts.notFocusable||(this.domNode.tabIndex=0),this.domNode.setAttribute("role","checkbox"),this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.setAttribute("aria-label",this._opts.title),this.applyStyles(),this.onclick(this.domNode,(e=>{this.enabled&&(this.checked=!this._checked,this._onChange.fire(!1),e.preventDefault())})),this._register(this.ignoreGesture(this.domNode)),this.onkeydown(this.domNode,(e=>{if(10===e.keyCode||3===e.keyCode)return this.checked=!this._checked,this._onChange.fire(!0),e.preventDefault(),void e.stopPropagation();this._onKeyDown.fire(e)}))}get enabled(){return"true"!==this.domNode.getAttribute("aria-disabled")}focus(){this.domNode.focus()}get checked(){return this._checked}set checked(e){this._checked=e,this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked),this.applyStyles()}width(){return 22}applyStyles(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder||"",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground||"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground||"")}enable(){this.domNode.setAttribute("aria-disabled",String(!1))}disable(){this.domNode.setAttribute("aria-disabled",String(!0))}}},83438:(e,t,i)=>{i.d(t,{CH:()=>G,cz:()=>N,E4:()=>n,Zd:()=>M,sZ:()=>T});var n,o=i(85714),s=(i(3640),i(39341)),r=(i(65122),i(51459),i(92707)),a=i(84931),l=i(53430),h=i(79242),d=i(18416),c=i(61746),u=(i(22337),i(75629)),g=i(60282),m=i(62974),f=i(62502),p=i(65549),_=i(24219),v=i(66835),b=i(89599),C=i(63229),w=i(63686),y=i(71721),S=(i(14561),i(59130));class L extends a.kX{constructor(e){super(e.elements.map((e=>e.element))),this.data=e}}function k(e){return e instanceof a.kX?new L(e):e}class D{constructor(e,t){this.modelProvider=e,this.dnd=t,this.autoExpandDisposable=b.JT.None,this.disposables=new b.SL}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map((e=>e.element)),t)}onDragStart(e,t){var i,n;null===(n=(i=this.dnd).onDragStart)||void 0===n||n.call(i,k(e),t)}onDragOver(e,t,i,n,o){let s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];const r=this.dnd.onDragOver(k(e),t&&t.element,i,n,o),a=this.autoExpandNode!==t;if(a&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=t),"undefined"===typeof t)return r;if(a&&"boolean"!==typeof r&&r.autoExpand&&(this.autoExpandDisposable=(0,g.Vg)((()=>{const e=this.modelProvider(),i=e.getNodeLocation(t);e.isCollapsed(i)&&e.setCollapsed(i,!1),this.autoExpandNode=void 0}),500,this.disposables)),"boolean"===typeof r||!r.accept||"undefined"===typeof r.bubble||r.feedback){if(!s){return{accept:"boolean"===typeof r?r:r.accept,effect:"boolean"===typeof r?void 0:r.effect,feedback:[i]}}return r}if(1===r.bubble){const i=this.modelProvider(),s=i.getNodeLocation(t),r=i.getParentNodeLocation(s),a=i.getNode(r),l=r&&i.getListIndex(r);return this.onDragOver(e,a,l,n,o,!1)}const l=this.modelProvider(),h=l.getNodeLocation(t),d=l.getListIndex(h),c=l.getListRenderCount(h);return{...r,feedback:(0,u.w6)(d,d+c)}}drop(e,t,i,n,o){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(k(e),t&&t.element,i,n,o)}onDragEnd(e){var t,i;null===(i=(t=this.dnd).onDragEnd)||void 0===i||i.call(t,e)}dispose(){this.disposables.dispose(),this.dnd.dispose()}}class N{constructor(e){this.delegate=e}getHeight(e){return this.delegate.getHeight(e.element)}getTemplateId(e){return this.delegate.getTemplateId(e.element)}hasDynamicHeight(e){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(e.element)}setDynamicHeight(e,t){var i,n;null===(n=(i=this.delegate).setDynamicHeight)||void 0===n||n.call(i,e.element,t)}}!function(e){e.None="none",e.OnHover="onHover",e.Always="always"}(n||(n={}));class x{get elements(){return this._elements}constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this._elements=t,this.disposables=new b.SL,this.onDidChange=_.ju.forEach(e,(e=>this._elements=e),this.disposables)}dispose(){this.disposables.dispose()}}class E{constructor(e,t,i,n,o){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};var r;this.renderer=e,this.modelProvider=t,this.activeNodes=n,this.renderedIndentGuides=o,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=E.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.activeIndentNodes=new Set,this.indentGuidesDisposable=b.JT.None,this.disposables=new b.SL,this.templateId=e.templateId,this.updateOptions(s),_.ju.map(i,(e=>e.node))(this.onDidChangeNodeTwistieState,this,this.disposables),null===(r=e.onDidChangeTwistieState)||void 0===r||r.call(e,this.onDidChangeTwistieState,this,this.disposables)}updateOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if("undefined"!==typeof e.indent){const t=(0,C.uZ)(e.indent,0,40);if(t!==this.indent){this.indent=t;for(const[e,t]of this.renderedNodes)this.renderTreeElement(e,t)}}if("undefined"!==typeof e.renderIndentGuides){const t=e.renderIndentGuides!==n.None;if(t!==this.shouldRenderIndentGuides){this.shouldRenderIndentGuides=t;for(const[e,t]of this.renderedNodes)this._renderIndentGuides(e,t);if(this.indentGuidesDisposable.dispose(),t){const e=new b.SL;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,e),this.indentGuidesDisposable=e,this._onDidChangeActiveNodes(this.activeNodes.elements)}}}"undefined"!==typeof e.hideTwistiesOfChildlessElements&&(this.hideTwistiesOfChildlessElements=e.hideTwistiesOfChildlessElements)}renderTemplate(e){const t=(0,o.R3)(e,(0,o.$)(".monaco-tl-row")),i=(0,o.R3)(t,(0,o.$)(".monaco-tl-indent")),n=(0,o.R3)(t,(0,o.$)(".monaco-tl-twistie")),s=(0,o.R3)(t,(0,o.$)(".monaco-tl-contents")),r=this.renderer.renderTemplate(s);return{container:e,indent:i,twistie:n,indentGuidesDisposable:b.JT.None,templateData:r}}renderElement(e,t,i,n){this.renderedNodes.set(e,i),this.renderedElements.set(e.element,e),this.renderTreeElement(e,i),this.renderer.renderElement(e,t,i.templateData,n)}disposeElement(e,t,i,n){var o,s;i.indentGuidesDisposable.dispose(),null===(s=(o=this.renderer).disposeElement)||void 0===s||s.call(o,e,t,i.templateData,n),"number"===typeof n&&(this.renderedNodes.delete(e),this.renderedElements.delete(e.element))}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}onDidChangeTwistieState(e){const t=this.renderedElements.get(e);t&&this.onDidChangeNodeTwistieState(t)}onDidChangeNodeTwistieState(e){const t=this.renderedNodes.get(e);t&&(this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderTreeElement(e,t))}renderTreeElement(e,t){const i=E.DefaultIndent+(e.depth-1)*this.indent;t.twistie.style.paddingLeft="".concat(i,"px"),t.indent.style.width="".concat(i+this.indent-16,"px"),e.collapsible?t.container.setAttribute("aria-expanded",String(!e.collapsed)):t.container.removeAttribute("aria-expanded"),t.twistie.classList.remove(...f.k.asClassNameArray(m.l.treeItemExpanded));let n=!1;this.renderer.renderTwistie&&(n=this.renderer.renderTwistie(e.element,t.twistie)),e.collapsible&&(!this.hideTwistiesOfChildlessElements||e.visibleChildrenCount>0)?(n||t.twistie.classList.add(...f.k.asClassNameArray(m.l.treeItemExpanded)),t.twistie.classList.add("collapsible"),t.twistie.classList.toggle("collapsed",e.collapsed)):t.twistie.classList.remove("collapsible","collapsed"),this._renderIndentGuides(e,t)}_renderIndentGuides(e,t){if((0,o.PO)(t.indent),t.indentGuidesDisposable.dispose(),!this.shouldRenderIndentGuides)return;const i=new b.SL,n=this.modelProvider();for(;;){const s=n.getNodeLocation(e),r=n.getParentNodeLocation(s);if(!r)break;const a=n.getNode(r),l=(0,o.$)(".indent-guide",{style:"width: ".concat(this.indent,"px")});this.activeIndentNodes.has(a)&&l.classList.add("active"),0===t.indent.childElementCount?t.indent.appendChild(l):t.indent.insertBefore(l,t.indent.firstElementChild),this.renderedIndentGuides.add(a,l),i.add((0,b.OF)((()=>this.renderedIndentGuides.delete(a,l)))),e=a}t.indentGuidesDisposable=i}_onDidChangeActiveNodes(e){if(!this.shouldRenderIndentGuides)return;const t=new Set,i=this.modelProvider();e.forEach((e=>{const n=i.getNodeLocation(e);try{const o=i.getParentNodeLocation(n);e.collapsible&&e.children.length>0&&!e.collapsed?t.add(e):o&&t.add(i.getNode(o))}catch(o){}})),this.activeIndentNodes.forEach((e=>{t.has(e)||this.renderedIndentGuides.forEach(e,(e=>e.classList.remove("active")))})),t.forEach((e=>{this.activeIndentNodes.has(e)||this.renderedIndentGuides.forEach(e,(e=>e.classList.add("active")))})),this.activeIndentNodes=t}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),(0,b.B9)(this.disposables)}}E.DefaultIndent=8;class I{get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}constructor(e,t,i){this.tree=e,this.keyboardNavigationLabelProvider=t,this._filter=i,this._totalCount=0,this._matchCount=0,this._pattern="",this._lowercasePattern="",this.disposables=new b.SL,e.onWillRefilter(this.reset,this,this.disposables)}filter(e,t){let i=1;if(this._filter){const n=this._filter.filter(e,t);if(i="boolean"===typeof n?n?1:0:(0,d.gB)(n)?(0,d.aG)(n.visibility):n,0===i)return!1}if(this._totalCount++,!this._pattern)return this._matchCount++,{data:v.CL.Default,visibility:i};const n=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),o=Array.isArray(n)?n:[n];for(const s of o){const e=s&&s.toString();if("undefined"===typeof e)return{data:v.CL.Default,visibility:i};let t;if(this.tree.findMatchType===M.Contiguous){const i=e.toLowerCase().indexOf(this._lowercasePattern);if(i>-1){t=[Number.MAX_SAFE_INTEGER,0];for(let e=this._lowercasePattern.length;e>0;e--)t.push(i+e-1)}}else t=(0,v.EW)(this._pattern,this._lowercasePattern,0,e,e.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(t)return this._matchCount++,1===o.length?{data:t,visibility:i}:{data:{label:e,score:t},visibility:i}}return this.tree.findMode===T.Filter?"number"===typeof this.tree.options.defaultFindVisibility?this.tree.options.defaultFindVisibility:this.tree.options.defaultFindVisibility?this.tree.options.defaultFindVisibility(e):2:{data:v.CL.Default,visibility:i}}reset(){this._totalCount=0,this._matchCount=0}dispose(){(0,b.B9)(this.disposables)}}r.g4,h.D;var T,M;!function(e){e[e.Highlight=0]="Highlight",e[e.Filter=1]="Filter"}(T||(T={})),function(e){e[e.Fuzzy=0]="Fuzzy",e[e.Contiguous=1]="Contiguous"}(M||(M={}));class A{get pattern(){return this._pattern}get mode(){return this._mode}set mode(e){e!==this._mode&&(this._mode=e,this.widget&&(this.widget.mode=this._mode),this.tree.refilter(),this.render(),this._onDidChangeMode.fire(e))}get matchType(){return this._matchType}set matchType(e){e!==this._matchType&&(this._matchType=e,this.widget&&(this.widget.matchType=this._matchType),this.tree.refilter(),this.render(),this._onDidChangeMatchType.fire(e))}constructor(e,t,i,n,o){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};var r,a;this.tree=e,this.view=i,this.filter=n,this.contextViewProvider=o,this.options=s,this._pattern="",this.width=0,this._onDidChangeMode=new _.Q5,this.onDidChangeMode=this._onDidChangeMode.event,this._onDidChangeMatchType=new _.Q5,this.onDidChangeMatchType=this._onDidChangeMatchType.event,this._onDidChangePattern=new _.Q5,this._onDidChangeOpenState=new _.Q5,this.onDidChangeOpenState=this._onDidChangeOpenState.event,this.enabledDisposables=new b.SL,this.disposables=new b.SL,this._mode=null!==(r=e.options.defaultFindMode)&&void 0!==r?r:T.Highlight,this._matchType=null!==(a=e.options.defaultFindMatchType)&&void 0!==a?a:M.Fuzzy,t.onDidSplice(this.onDidSpliceModel,this,this.disposables)}updateOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};void 0!==e.defaultFindMode&&(this.mode=e.defaultFindMode),void 0!==e.defaultFindMatchType&&(this.matchType=e.defaultFindMatchType)}onDidSpliceModel(){this.widget&&0!==this.pattern.length&&(this.tree.refilter(),this.render())}render(){var e,t,i,n;const o=this.filter.totalCount>0&&0===this.filter.matchCount;this.pattern&&o?null===(e=this.tree.options.showNotFoundMessage)||void 0===e||e?null===(t=this.widget)||void 0===t||t.showMessage({type:2,content:(0,y.NC)("not found","No elements found.")}):null===(i=this.widget)||void 0===i||i.showMessage({type:2}):null===(n=this.widget)||void 0===n||n.clearMessage()}shouldAllowFocus(e){return!this.widget||!this.pattern||(this.filter.totalCount>0&&this.filter.matchCount<=1||!v.CL.isDefault(e.filterData))}layout(e){var t;this.width=e,null===(t=this.widget)||void 0===t||t.layout(e)}dispose(){this._history=void 0,this._onDidChangePattern.dispose(),this.enabledDisposables.dispose(),this.disposables.dispose()}}function R(e,t){return e.position===t.position&&O(e,t)}function O(e,t){return e.node.element===t.node.element&&e.startIndex===t.startIndex&&e.height===t.height&&e.endIndex===t.endIndex}class P{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.stickyNodes=e}get count(){return this.stickyNodes.length}equal(e){return(0,u.fS)(this.stickyNodes,e.stickyNodes,R)}lastNodePartiallyVisible(){if(0===this.count)return!1;const e=this.stickyNodes[this.count-1];if(1===this.count)return 0!==e.position;const t=this.stickyNodes[this.count-2];return t.position+t.height!==e.position}animationStateChanged(e){if(!(0,u.fS)(this.stickyNodes,e.stickyNodes,O))return!1;if(0===this.count)return!1;const t=this.stickyNodes[this.count-1],i=e.stickyNodes[e.count-1];return t.position!==i.position}}class F{constrainStickyScrollNodes(e,t,i){for(let n=0;ni||n>=t)return e.slice(0,n)}return e}}class B extends b.JT{constructor(e,t,i,n,o){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};var r;super(),this.tree=e,this.model=t,this.view=i,this.treeDelegate=o,this.maxWidgetViewRatio=.4;const a=this.validateStickySettings(s);this.stickyScrollMaxItemCount=a.stickyScrollMaxItemCount,this.stickyScrollDelegate=null!==(r=s.stickyScrollDelegate)&&void 0!==r?r:new F,this._widget=this._register(new z(i.getScrollableElement(),i,e,n,o,s.accessibilityProvider)),this.onDidChangeHasFocus=this._widget.onDidChangeHasFocus,this.onContextMenu=this._widget.onContextMenu,this._register(i.onDidScroll((()=>this.update()))),this._register(i.onDidChangeContentHeight((()=>this.update()))),this._register(e.onDidChangeCollapseState((()=>this.update()))),this.update()}get height(){return this._widget.height}getNodeAtHeight(e){let t;if(t=0===e?this.view.firstVisibleIndex:this.view.indexAt(e+this.view.scrollTop),!(t<0||t>=this.view.length))return this.view.element(t)}update(){const e=this.getNodeAtHeight(0);if(!e||0===this.tree.scrollTop)return void this._widget.setState(void 0);const t=this.findStickyState(e);this._widget.setState(t)}findStickyState(e){const t=[];let i=e,n=0,o=this.getNextStickyNode(i,void 0,n);for(;o&&(t.push(o),n+=o.height,!(t.length<=this.stickyScrollMaxItemCount)||(i=this.getNextVisibleNode(o),i));)o=this.getNextStickyNode(i,o.node,n);const s=this.constrainStickyNodes(t);return s.length?new P(s):void 0}getNextVisibleNode(e){return this.getNodeAtHeight(e.position+e.height)}getNextStickyNode(e,t,i){const n=this.getAncestorUnderPrevious(e,t);if(n){if(n===e){if(!this.nodeIsUncollapsedParent(e))return;if(this.nodeTopAlignsWithStickyNodesBottom(e,i))return}return this.createStickyScrollNode(n,i)}}nodeTopAlignsWithStickyNodesBottom(e,t){const i=this.getNodeIndex(e),n=this.view.getElementTop(i),o=t;return this.view.scrollTop===n-o}createStickyScrollNode(e,t){const i=this.treeDelegate.getHeight(e),{startIndex:n,endIndex:o}=this.getNodeRange(e);return{node:e,position:this.calculateStickyNodePosition(o,t,i),height:i,startIndex:n,endIndex:o}}getAncestorUnderPrevious(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=e,n=this.getParentNode(i);for(;n;){if(n===t)return i;i=n,n=this.getParentNode(i)}if(void 0===t)return i}calculateStickyNodePosition(e,t,i){let n=this.view.getRelativeTop(e);if(null===n&&this.view.firstVisibleIndex===e&&e+1r&&t<=r?r-i:t}constrainStickyNodes(e){if(0===e.length)return[];const t=this.view.renderHeight*this.maxWidgetViewRatio,i=e[e.length-1];if(e.length<=this.stickyScrollMaxItemCount&&i.position+i.height<=t)return e;const n=this.stickyScrollDelegate.constrainStickyScrollNodes(e,this.stickyScrollMaxItemCount,t);if(!n.length)return[];const o=n[n.length-1];if(n.length>this.stickyScrollMaxItemCount||o.position+o.height>t)throw new Error("stickyScrollDelegate violates constraints");return n}getParentNode(e){const t=this.model.getNodeLocation(e),i=this.model.getParentNodeLocation(t);return i?this.model.getNode(i):void 0}nodeIsUncollapsedParent(e){const t=this.model.getNodeLocation(e);return this.model.getListRenderCount(t)>1}getNodeIndex(e){const t=this.model.getNodeLocation(e);return this.model.getListIndex(t)}getNodeRange(e){const t=this.model.getNodeLocation(e),i=this.model.getListIndex(t);if(i<0)throw new Error("Node not found in tree");return{startIndex:i,endIndex:i+this.model.getListRenderCount(t)-1}}nodePositionTopBelowWidget(e){const t=[];let i=this.getParentNode(e);for(;i;)t.push(i),i=this.getParentNode(i);let n=0;for(let o=0;o0&&void 0!==arguments[0]?arguments[0]:{};if(!e.stickyScrollMaxItemCount)return;const t=this.validateStickySettings(e);this.stickyScrollMaxItemCount!==t.stickyScrollMaxItemCount&&(this.stickyScrollMaxItemCount=t.stickyScrollMaxItemCount,this.update())}validateStickySettings(e){let t=7;return"number"===typeof e.stickyScrollMaxItemCount&&(t=Math.max(e.stickyScrollMaxItemCount,1)),{stickyScrollMaxItemCount:t}}}class z{constructor(e,t,i,n,s,r){this.view=t,this.tree=i,this.treeRenderers=n,this.treeDelegate=s,this.accessibilityProvider=r,this._previousElements=[],this._previousStateDisposables=new b.SL,this._rootDomNode=(0,o.$)(".monaco-tree-sticky-container.empty"),e.appendChild(this._rootDomNode);const a=(0,o.$)(".monaco-tree-sticky-container-shadow");this._rootDomNode.appendChild(a),this.stickyScrollFocus=new V(this._rootDomNode,t),this.onDidChangeHasFocus=this.stickyScrollFocus.onDidChangeHasFocus,this.onContextMenu=this.stickyScrollFocus.onContextMenu}get height(){if(!this._previousState)return 0;const e=this._previousState.stickyNodes[this._previousState.count-1];return e.position+e.height}setState(e){const t=!!this._previousState&&this._previousState.count>0,i=!!e&&e.count>0;if(!t&&!i||t&&i&&this._previousState.equal(e))return;if(t!==i&&this.setVisible(i),!i)return this._previousState=void 0,this._previousElements=[],void this._previousStateDisposables.clear();const n=e.stickyNodes[e.count-1];if(this._previousState&&e.animationStateChanged(this._previousState))this._previousElements[this._previousState.count-1].style.top="".concat(n.position,"px");else{this._previousStateDisposables.clear();const t=Array(e.count);for(let i=e.count-1;i>=0;i--){const n=e.stickyNodes[i],{element:o,disposable:s}=this.createElement(n,i,e.count);t[i]=o,this._rootDomNode.appendChild(o),this._previousStateDisposables.add(s)}this.stickyScrollFocus.updateElements(t,e),this._previousElements=t}this._previousState=e,this._rootDomNode.style.height="".concat(n.position+n.height,"px")}createElement(e,t,i){const n=e.startIndex,o=document.createElement("div");o.style.top="".concat(e.position,"px"),!1!==this.tree.options.setRowHeight&&(o.style.height="".concat(e.height,"px")),!1!==this.tree.options.setRowLineHeight&&(o.style.lineHeight="".concat(e.height,"px")),o.classList.add("monaco-tree-sticky-row"),o.classList.add("monaco-list-row"),o.setAttribute("data-index","".concat(n)),o.setAttribute("data-parity",n%2===0?"even":"odd"),o.setAttribute("id",this.view.getElementID(n));const s=this.setAccessibilityAttributes(o,e.node.element,t,i),r=this.treeDelegate.getTemplateId(e.node),a=this.treeRenderers.find((e=>e.templateId===r));if(!a)throw new Error("No renderer found for template id ".concat(r));let l=e.node;l===this.tree.getNode(this.tree.getNodeLocation(e.node))&&(l=new Proxy(e.node,{}));const h=a.renderTemplate(o);a.renderElement(l,e.startIndex,h,e.height);const d=(0,b.OF)((()=>{s.dispose(),a.disposeElement(l,e.startIndex,h,e.height),a.disposeTemplate(h),o.remove()}));return{element:o,disposable:d}}setAccessibilityAttributes(e,t,i,n){var o;if(!this.accessibilityProvider)return b.JT.None;this.accessibilityProvider.getSetSize&&e.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(t,i,n))),this.accessibilityProvider.getPosInSet&&e.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(t,i))),this.accessibilityProvider.getRole&&e.setAttribute("role",null!==(o=this.accessibilityProvider.getRole(t))&&void 0!==o?o:"treeitem");const s=this.accessibilityProvider.getAriaLabel(t),r=s&&"string"!==typeof s?s:(0,S.Dz)(s),a=(0,S.EH)((t=>{const i=t.readObservable(r);i?e.setAttribute("aria-label",i):e.removeAttribute("aria-label")}));"string"===typeof s||s&&e.setAttribute("aria-label",s.get());const l=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(t);return"number"===typeof l&&e.setAttribute("aria-level","".concat(l)),e.setAttribute("aria-selected",String(!1)),a}setVisible(e){this._rootDomNode.classList.toggle("empty",!e),e||this.stickyScrollFocus.updateElements([],void 0)}domFocus(){this.stickyScrollFocus.domFocus()}focusedLast(){return this.stickyScrollFocus.focusedLast()}dispose(){this.stickyScrollFocus.dispose(),this._previousStateDisposables.dispose(),this._rootDomNode.remove()}}class V extends b.JT{get domHasFocus(){return this._domHasFocus}set domHasFocus(e){e!==this._domHasFocus&&(this._onDidChangeHasFocus.fire(e),this._domHasFocus=e)}constructor(e,t){super(),this.container=e,this.view=t,this.focusedIndex=-1,this.elements=[],this._onDidChangeHasFocus=new _.Q5,this.onDidChangeHasFocus=this._onDidChangeHasFocus.event,this._onContextMenu=new _.Q5,this.onContextMenu=this._onContextMenu.event,this._domHasFocus=!1,this.container.addEventListener("focus",(()=>this.onFocus())),this.container.addEventListener("blur",(()=>this.onBlur())),this._register(this.view.onDidFocus((()=>this.toggleStickyScrollFocused(!1)))),this._register(this.view.onKeyDown((e=>this.onKeyDown(e)))),this._register(this.view.onMouseDown((e=>this.onMouseDown(e)))),this._register(this.view.onContextMenu((e=>this.handleContextMenu(e))))}handleContextMenu(e){const t=e.browserEvent.target;if(!(0,l.xf)(t)&&!(0,l.Et)(t))return void(this.focusedLast()&&this.view.domFocus());if(!(0,o.vd)(e.browserEvent)){if(!this.state)throw new Error("Context menu should not be triggered when state is undefined");const t=this.state.stickyNodes.findIndex((t=>{var i;return t.node.element===(null===(i=e.element)||void 0===i?void 0:i.element)}));if(-1===t)throw new Error("Context menu should not be triggered when element is not in sticky scroll widget");return this.container.focus(),void this.setFocus(t)}if(!this.state||this.focusedIndex<0)throw new Error("Context menu key should not be triggered when focus is not in sticky scroll widget");const i=this.state.stickyNodes[this.focusedIndex].node.element,n=this.elements[this.focusedIndex];this._onContextMenu.fire({element:i,anchor:n,browserEvent:e.browserEvent,isStickyScroll:!0})}onKeyDown(e){if(this.domHasFocus&&this.state)if("ArrowUp"===e.key)this.setFocusedElement(Math.max(0,this.focusedIndex-1)),e.preventDefault(),e.stopPropagation();else if("ArrowDown"===e.key||"ArrowRight"===e.key){if(this.focusedIndex>=this.state.count-1){const e=this.state.stickyNodes[this.state.count-1].startIndex+1;this.view.domFocus(),this.view.setFocus([e]),this.scrollNodeUnderWidget(e,this.state)}else this.setFocusedElement(this.focusedIndex+1);e.preventDefault(),e.stopPropagation()}}onMouseDown(e){const t=e.browserEvent.target;((0,l.xf)(t)||(0,l.Et)(t))&&(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation())}updateElements(e,t){if(t&&0===t.count)throw new Error("Sticky scroll state must be undefined when there are no sticky nodes");if(t&&t.count!==e.length)throw new Error("Sticky scroll focus received illigel state");const i=this.focusedIndex;if(this.removeFocus(),this.elements=e,this.state=t,t){const e=(0,C.uZ)(i,0,t.count-1);this.setFocus(e)}else this.domHasFocus&&this.view.domFocus();this.container.tabIndex=t?0:-1}setFocusedElement(e){const t=this.state;if(!t)throw new Error("Cannot set focus when state is undefined");if(this.setFocus(e),!(e1?t.stickyNodes[t.count-2]:void 0,o=this.view.getElementTop(e),s=n?n.position+n.height+i.height:i.height;this.view.scrollTop=o-s}domFocus(){if(!this.state)throw new Error("Cannot focus when state is undefined");this.container.focus()}focusedLast(){return!!this.state&&this.view.getHTMLElement().classList.contains("sticky-scroll-focused")}removeFocus(){-1!==this.focusedIndex&&(this.toggleElementFocus(this.elements[this.focusedIndex],!1),this.focusedIndex=-1)}setFocus(e){if(0>e)throw new Error("addFocus() can not remove focus");if(!this.state&&e>=0)throw new Error("Cannot set focus index when state is undefined");if(this.state&&e>=this.state.count)throw new Error("Cannot set focus index to an index that does not exist");const t=this.focusedIndex;t>=0&&this.toggleElementFocus(this.elements[t],!1),e>=0&&this.toggleElementFocus(this.elements[e],!0),this.focusedIndex=e}toggleElementFocus(e,t){this.toggleElementActiveFocus(e,t&&this.domHasFocus),this.toggleElementPassiveFocus(e,t)}toggleCurrentElementActiveFocus(e){-1!==this.focusedIndex&&this.toggleElementActiveFocus(this.elements[this.focusedIndex],e)}toggleElementActiveFocus(e,t){e.classList.toggle("focused",t)}toggleElementPassiveFocus(e,t){e.classList.toggle("passive-focused",t)}toggleStickyScrollFocused(e){this.view.getHTMLElement().classList.toggle("sticky-scroll-focused",e)}onFocus(){if(!this.state||0===this.elements.length)throw new Error("Cannot focus when state is undefined or elements are empty");this.domHasFocus=!0,this.toggleStickyScrollFocused(!0),this.toggleCurrentElementActiveFocus(!0),-1===this.focusedIndex&&this.setFocus(0)}onBlur(){this.domHasFocus=!1,this.toggleCurrentElementActiveFocus(!1)}dispose(){this.toggleStickyScrollFocused(!1),this._onDidChangeHasFocus.fire(!1),super.dispose()}}function W(e){let t=c.sD.Unknown;return(0,o.uU)(e.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?t=c.sD.Twistie:(0,o.uU)(e.browserEvent.target,"monaco-tl-contents","monaco-tl-row")?t=c.sD.Element:(0,o.uU)(e.browserEvent.target,"monaco-tree-type-filter","monaco-list")&&(t=c.sD.Filter),{browserEvent:e.browserEvent,element:e.element?e.element.element:null,target:t}}function H(e){const t=(0,l.xf)(e.browserEvent.target);return{element:e.element?e.element.element:null,browserEvent:e.browserEvent,anchor:e.anchor,isStickyScroll:t}}function K(e,t){t(e),e.children.forEach((e=>K(e,t)))}class U{get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}constructor(e,t){this.getFirstViewElementWithTrait=e,this.identityProvider=t,this.nodes=[],this._onDidChange=new _.Q5,this.onDidChange=this._onDidChange.event}set(e,t){!(null===t||void 0===t?void 0:t.__forceEvent)&&(0,u.fS)(this.nodes,e)||this._set(e,!1,t)}_set(e,t,i){if(this.nodes=[...e],this.elements=void 0,this._nodeSet=void 0,!t){const e=this;this._onDidChange.fire({get elements(){return e.get()},browserEvent:i})}}get(){return this.elements||(this.elements=this.nodes.map((e=>e.element))),[...this.elements]}getNodes(){return this.nodes}has(e){return this.nodeSet.has(e)}onDidModelSplice(e){let{insertedNodes:t,deletedNodes:i}=e;if(!this.identityProvider){const e=this.createNodeSet(),t=t=>e.delete(t);return i.forEach((e=>K(e,t))),void this.set([...e.values()])}const n=new Set,o=e=>n.add(this.identityProvider.getId(e.element).toString());i.forEach((e=>K(e,o)));const s=new Map,r=e=>s.set(this.identityProvider.getId(e.element).toString(),e);t.forEach((e=>K(e,r)));const a=[];for(const l of this.nodes){const e=this.identityProvider.getId(l.element).toString();if(n.has(e)){const t=s.get(e);t&&t.visible&&a.push(t)}else a.push(l)}if(this.nodes.length>0&&0===a.length){const e=this.getFirstViewElementWithTrait();e&&a.push(e)}this._set(a,!0)}createNodeSet(){const e=new Set;for(const t of this.nodes)e.add(t);return e}}class j extends l.sx{constructor(e,t,i){super(e),this.tree=t,this.stickyScrollProvider=i}onViewPointer(e){if((0,l.iK)(e.browserEvent.target)||(0,l.cK)(e.browserEvent.target)||(0,l.hD)(e.browserEvent.target))return;if(e.browserEvent.isHandledByList)return;const t=e.element;if(!t)return super.onViewPointer(e);if(this.isSelectionRangeChangeEvent(e)||this.isSelectionSingleChangeEvent(e))return super.onViewPointer(e);const i=e.browserEvent.target,n=i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&e.browserEvent.offsetX<16,o=(0,l.Et)(e.browserEvent.target);let s=!1;if(s=!!o||("function"===typeof this.tree.expandOnlyOnTwistieClick?this.tree.expandOnlyOnTwistieClick(t.element):!!this.tree.expandOnlyOnTwistieClick),o)this.handleStickyScrollMouseEvent(e,t);else{if(s&&!n&&2!==e.browserEvent.detail)return super.onViewPointer(e);if(!this.tree.expandOnDoubleClick&&2===e.browserEvent.detail)return super.onViewPointer(e)}if(t.collapsible&&(!o||n)){const i=this.tree.getNodeLocation(t),o=e.browserEvent.altKey;if(this.tree.setFocus([i]),this.tree.toggleCollapsed(i,o),s&&n)return void(e.browserEvent.isHandledByList=!0)}o||super.onViewPointer(e)}handleStickyScrollMouseEvent(e,t){if((0,l.$B)(e.browserEvent.target)||(0,l.dk)(e.browserEvent.target))return;const i=this.stickyScrollProvider();if(!i)throw new Error("Sticky scroll controller not found");const n=this.list.indexOf(t),o=this.list.getElementTop(n),s=i.nodePositionTopBelowWidget(t);this.tree.scrollTop=o-s,this.list.domFocus(),this.list.setFocus([n]),this.list.setSelection([n])}onDoubleClick(e){!e.browserEvent.target.classList.contains("monaco-tl-twistie")&&this.tree.expandOnDoubleClick&&(e.browserEvent.isHandledByList||super.onDoubleClick(e))}onMouseDown(e){const t=e.browserEvent.target;(0,l.xf)(t)||(0,l.Et)(t)||super.onMouseDown(e)}onContextMenu(e){const t=e.browserEvent.target;(0,l.xf)(t)||(0,l.Et)(t)||super.onContextMenu(e)}}class q extends l.aV{constructor(e,t,i,n,o,s,r,a){super(e,t,i,n,a),this.focusTrait=o,this.selectionTrait=s,this.anchorTrait=r}createMouseController(e){return new j(this,e.tree,e.stickyScrollProvider)}splice(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(super.splice(e,t,i),0===i.length)return;const n=[],o=[];let s;i.forEach(((t,i)=>{this.focusTrait.has(t)&&n.push(e+i),this.selectionTrait.has(t)&&o.push(e+i),this.anchorTrait.has(t)&&(s=e+i)})),n.length>0&&super.setFocus((0,u.EB)([...super.getFocus(),...n])),o.length>0&&super.setSelection((0,u.EB)([...super.getSelection(),...o])),"number"===typeof s&&super.setAnchor(s)}setFocus(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];super.setFocus(e,t),i||this.focusTrait.set(e.map((e=>this.element(e))),t)}setSelection(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];super.setSelection(e,t),i||this.selectionTrait.set(e.map((e=>this.element(e))),t)}setAnchor(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];super.setAnchor(e),t||("undefined"===typeof e?this.anchorTrait.set([]):this.anchorTrait.set([this.element(e)]))}}class G{get onDidScroll(){return this.view.onDidScroll}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return _.ju.filter(_.ju.map(this.view.onMouseDblClick,W),(e=>e.target!==c.sD.Filter))}get onMouseOver(){return _.ju.map(this.view.onMouseOver,W)}get onMouseOut(){return _.ju.map(this.view.onMouseOut,W)}get onContextMenu(){var e,t;return _.ju.any(_.ju.filter(_.ju.map(this.view.onContextMenu,H),(e=>!e.isStickyScroll)),null!==(t=null===(e=this.stickyScrollController)||void 0===e?void 0:e.onContextMenu)&&void 0!==t?t:_.ju.None)}get onPointer(){return _.ju.map(this.view.onPointer,W)}get onKeyDown(){return this.view.onKeyDown}get onDidFocus(){return this.view.onDidFocus}get onDidChangeModel(){return _.ju.signal(this.model.onDidSplice)}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get findMode(){var e,t;return null!==(t=null===(e=this.findController)||void 0===e?void 0:e.mode)&&void 0!==t?t:T.Highlight}set findMode(e){this.findController&&(this.findController.mode=e)}get findMatchType(){var e,t;return null!==(t=null===(e=this.findController)||void 0===e?void 0:e.matchType)&&void 0!==t?t:M.Fuzzy}set findMatchType(e){this.findController&&(this.findController.matchType=e)}get expandOnDoubleClick(){return"undefined"===typeof this._options.expandOnDoubleClick||this._options.expandOnDoubleClick}get expandOnlyOnTwistieClick(){return"undefined"===typeof this._options.expandOnlyOnTwistieClick||this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}constructor(e,t,i,r){let a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};var h;this._user=e,this._options=a,this.eventBufferer=new _.E7,this.onDidChangeFindOpenState=_.ju.None,this.onDidChangeStickyScrollFocused=_.ju.None,this.disposables=new b.SL,this._onWillRefilter=new _.Q5,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new _.Q5,this.treeDelegate=new N(i);const d=new _.ZD,c=new _.ZD,u=this.disposables.add(new x(c.event)),m=new p.ri;this.renderers=r.map((e=>new E(e,(()=>this.model),d.event,u,m,a)));for(const n of this.renderers)this.disposables.add(n);let f;var v,C;a.keyboardNavigationLabelProvider&&(f=new I(this,a.keyboardNavigationLabelProvider,a.filter),a={...a,filter:f},this.disposables.add(f)),this.focus=new U((()=>this.view.getFocusedElements()[0]),a.identityProvider),this.selection=new U((()=>this.view.getSelectedElements()[0]),a.identityProvider),this.anchor=new U((()=>this.view.getAnchorElement()),a.identityProvider),this.view=new q(e,t,this.treeDelegate,this.renderers,this.focus,this.selection,this.anchor,{...(v=()=>this.model,C=a,C&&{...C,identityProvider:C.identityProvider&&{getId:e=>C.identityProvider.getId(e.element)},dnd:C.dnd&&new D(v,C.dnd),multipleSelectionController:C.multipleSelectionController&&{isSelectionSingleChangeEvent:e=>C.multipleSelectionController.isSelectionSingleChangeEvent({...e,element:e.element}),isSelectionRangeChangeEvent:e=>C.multipleSelectionController.isSelectionRangeChangeEvent({...e,element:e.element})},accessibilityProvider:C.accessibilityProvider&&{...C.accessibilityProvider,getSetSize(e){const t=v(),i=t.getNodeLocation(e),n=t.getParentNodeLocation(i);return t.getNode(n).visibleChildrenCount},getPosInSet:e=>e.visibleChildIndex+1,isChecked:C.accessibilityProvider&&C.accessibilityProvider.isChecked?e=>C.accessibilityProvider.isChecked(e.element):void 0,getRole:C.accessibilityProvider&&C.accessibilityProvider.getRole?e=>C.accessibilityProvider.getRole(e.element):()=>"treeitem",getAriaLabel:e=>C.accessibilityProvider.getAriaLabel(e.element),getWidgetAriaLabel:()=>C.accessibilityProvider.getWidgetAriaLabel(),getWidgetRole:C.accessibilityProvider&&C.accessibilityProvider.getWidgetRole?()=>C.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:C.accessibilityProvider&&C.accessibilityProvider.getAriaLevel?e=>C.accessibilityProvider.getAriaLevel(e.element):e=>e.depth,getActiveDescendantId:C.accessibilityProvider.getActiveDescendantId&&(e=>C.accessibilityProvider.getActiveDescendantId(e.element))},keyboardNavigationLabelProvider:C.keyboardNavigationLabelProvider&&{...C.keyboardNavigationLabelProvider,getKeyboardNavigationLabel:e=>C.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)}}),tree:this,stickyScrollProvider:()=>this.stickyScrollController}),this.model=this.createModel(e,this.view,a),d.input=this.model.onDidChangeCollapseState;const w=_.ju.forEach(this.model.onDidSplice,(e=>{this.eventBufferer.bufferEvents((()=>{this.focus.onDidModelSplice(e),this.selection.onDidModelSplice(e)}))}),this.disposables);w((()=>null),null,this.disposables);const y=this.disposables.add(new _.Q5),S=this.disposables.add(new g.vp(0));if(this.disposables.add(_.ju.any(w,this.focus.onDidChange,this.selection.onDidChange)((()=>{S.trigger((()=>{const e=new Set;for(const t of this.focus.getNodes())e.add(t);for(const t of this.selection.getNodes())e.add(t);y.fire([...e.values()])}))}))),c.input=y.event,!1!==a.keyboardSupport){const e=_.ju.chain(this.view.onKeyDown,(e=>e.filter((e=>!(0,l.cK)(e.target))).map((e=>new s.y(e)))));_.ju.chain(e,(e=>e.filter((e=>15===e.keyCode))))(this.onLeftArrow,this,this.disposables),_.ju.chain(e,(e=>e.filter((e=>17===e.keyCode))))(this.onRightArrow,this,this.disposables),_.ju.chain(e,(e=>e.filter((e=>10===e.keyCode))))(this.onSpace,this,this.disposables)}if((null===(h=a.findWidgetEnabled)||void 0===h||h)&&a.keyboardNavigationLabelProvider&&a.contextViewProvider){const e=this.options.findWidgetStyles?{styles:this.options.findWidgetStyles}:void 0;this.findController=new A(this,this.model,this.view,f,a.contextViewProvider,e),this.focusNavigationFilter=e=>this.findController.shouldAllowFocus(e),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.disposables.add(this.findController),this.onDidChangeFindMode=this.findController.onDidChangeMode,this.onDidChangeFindMatchType=this.findController.onDidChangeMatchType}else this.onDidChangeFindMode=_.ju.None,this.onDidChangeFindMatchType=_.ju.None;a.enableStickyScroll&&(this.stickyScrollController=new B(this,this.model,this.view,this.renderers,this.treeDelegate,a),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus),this.styleElement=(0,o.dS)(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===n.Always)}updateOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};var t;this._options={...this._options,...e};for(const i of this.renderers)i.updateOptions(e);this.view.updateOptions(this._options),null===(t=this.findController)||void 0===t||t.updateOptions(e),this.updateStickyScroll(e),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===n.Always)}get options(){return this._options}updateStickyScroll(e){var t;!this.stickyScrollController&&this._options.enableStickyScroll?(this.stickyScrollController=new B(this,this.model,this.view,this.renderers,this.treeDelegate,this._options),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus):this.stickyScrollController&&!this._options.enableStickyScroll&&(this.onDidChangeStickyScrollFocused=_.ju.None,this.stickyScrollController.dispose(),this.stickyScrollController=void 0),null===(t=this.stickyScrollController)||void 0===t||t.updateOptions(e)}getHTMLElement(){return this.view.getHTMLElement()}get scrollTop(){return this.view.scrollTop}set scrollTop(e){this.view.scrollTop=e}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get ariaLabel(){return this.view.ariaLabel}set ariaLabel(e){this.view.ariaLabel=e}domFocus(){var e;(null===(e=this.stickyScrollController)||void 0===e?void 0:e.focusedLast())?this.stickyScrollController.domFocus():this.view.domFocus()}layout(e,t){var i;this.view.layout(e,t),(0,w.hj)(t)&&(null===(i=this.findController)||void 0===i||i.layout(t))}style(e){var t;const i=".".concat(this.view.domId),n=[];e.treeIndentGuidesStroke&&(n.push(".monaco-list".concat(i,":hover .monaco-tl-indent > .indent-guide, .monaco-list").concat(i,".always .monaco-tl-indent > .indent-guide { border-color: ").concat(e.treeInactiveIndentGuidesStroke,"; }")),n.push(".monaco-list".concat(i," .monaco-tl-indent > .indent-guide.active { border-color: ").concat(e.treeIndentGuidesStroke,"; }"))),e.listBackground&&(n.push(".monaco-list".concat(i," .monaco-scrollable-element .monaco-tree-sticky-container { background-color: ").concat(e.listBackground,"; }")),n.push(".monaco-list".concat(i," .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row { background-color: ").concat(e.listBackground,"; }"))),e.listFocusForeground&&(n.push(".monaco-list".concat(i,".sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { color: ").concat(e.listFocusForeground,"; }")),n.push(".monaco-list".concat(i,":not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { color: inherit; }")));const s=(0,o.XT)(e.listFocusAndSelectionOutline,(0,o.XT)(e.listSelectionOutline,null!==(t=e.listFocusOutline)&&void 0!==t?t:""));s&&(n.push(".monaco-list".concat(i,".sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused.selected { outline: 1px solid ").concat(s,"; outline-offset: -1px;}")),n.push(".monaco-list".concat(i,":not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused.selected { outline: inherit;}"))),e.listFocusOutline&&(n.push(".monaco-list".concat(i,".sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { outline: 1px solid ").concat(e.listFocusOutline,"; outline-offset: -1px; }")),n.push(".monaco-list".concat(i,":not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { outline: inherit; }")),n.push(".monaco-workbench.context-menu-visible .monaco-list".concat(i,".last-focused.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.passive-focused { outline: 1px solid ").concat(e.listFocusOutline,"; outline-offset: -1px; }")),n.push(".monaco-workbench.context-menu-visible .monaco-list".concat(i,".last-focused.sticky-scroll-focused .monaco-list-rows .monaco-list-row.focused { outline: inherit; }")),n.push(".monaco-workbench.context-menu-visible .monaco-list".concat(i,".last-focused:not(.sticky-scroll-focused) .monaco-tree-sticky-container .monaco-list-rows .monaco-list-row.focused { outline: inherit; }"))),this.styleElement.textContent=n.join("\n"),this.view.style(e)}getParentElement(e){const t=this.model.getParentNodeLocation(e);return this.model.getNode(t).element}getFirstElementChild(e){return this.model.getFirstElementChild(e)}getNode(e){return this.model.getNode(e)}getNodeLocation(e){return this.model.getNodeLocation(e)}collapse(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.model.setCollapsed(e,!0,t)}expand(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.model.setCollapsed(e,!1,t)}toggleCollapsed(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.model.setCollapsed(e,void 0,t)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}refilter(){this._onWillRefilter.fire(void 0),this.model.refilter()}setSelection(e,t){this.eventBufferer.bufferEvents((()=>{const i=e.map((e=>this.model.getNode(e)));this.selection.set(i,t);const n=e.map((e=>this.model.getListIndex(e))).filter((e=>e>-1));this.view.setSelection(n,t,!0)}))}getSelection(){return this.selection.get()}setFocus(e,t){this.eventBufferer.bufferEvents((()=>{const i=e.map((e=>this.model.getNode(e)));this.focus.set(i,t);const n=e.map((e=>this.model.getListIndex(e))).filter((e=>e>-1));this.view.setFocus(n,t,!0)}))}focusNext(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2?arguments[2]:void 0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:(0,o.vd)(i)&&i.altKey?void 0:this.focusNavigationFilter;this.view.focusNext(e,t,i,n)}focusPrevious(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2?arguments[2]:void 0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:(0,o.vd)(i)&&i.altKey?void 0:this.focusNavigationFilter;this.view.focusPrevious(e,t,i,n)}focusNextPage(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,o.vd)(e)&&e.altKey?void 0:this.focusNavigationFilter;return this.view.focusNextPage(e,t)}focusPreviousPage(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,o.vd)(e)&&e.altKey?void 0:this.focusNavigationFilter;return this.view.focusPreviousPage(e,t,(()=>{var e,t;return null!==(t=null===(e=this.stickyScrollController)||void 0===e?void 0:e.height)&&void 0!==t?t:0}))}focusFirst(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,o.vd)(e)&&e.altKey?void 0:this.focusNavigationFilter;this.view.focusFirst(e,t)}getFocus(){return this.focus.get()}reveal(e,t){this.model.expandTo(e);const i=this.model.getListIndex(e);if(-1!==i)if(this.stickyScrollController){const n=this.stickyScrollController.nodePositionTopBelowWidget(this.getNode(e));this.view.reveal(i,t,n)}else this.view.reveal(i,t)}onLeftArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(0===t.length)return;const i=t[0],n=this.model.getNodeLocation(i);if(!this.model.setCollapsed(n,!0)){const e=this.model.getParentNodeLocation(n);if(!e)return;const t=this.model.getListIndex(e);this.view.reveal(t),this.view.setFocus([t])}}onRightArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(0===t.length)return;const i=t[0],n=this.model.getNodeLocation(i);if(!this.model.setCollapsed(n,!1)){if(!i.children.some((e=>e.visible)))return;const[e]=this.view.getFocus(),t=e+1;this.view.reveal(t),this.view.setFocus([t])}}onSpace(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(0===t.length)return;const i=t[0],n=this.model.getNodeLocation(i),o=e.browserEvent.altKey;this.model.setCollapsed(n,void 0,o)}dispose(){var e;(0,b.B9)(this.disposables),null===(e=this.stickyScrollController)||void 0===e||e.dispose(),this.view.dispose()}}},18416:(e,t,i)=>{i.d(t,{X:()=>g,aG:()=>c,gB:()=>d});var n=i(61746),o=i(75629),s=i(60282),r=i(59786),a=i(24323),l=i(24219),h=i(36952);function d(e){return"object"===typeof e&&"visibility"in e&&"data"in e}function c(e){switch(e){case!0:return 1;case!1:return 0;default:return e}}function u(e){return"boolean"===typeof e.collapsible}class g{constructor(e,t,i){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};var o;this.user=e,this.list=t,this.rootRef=[],this.eventBufferer=new l.E7,this._onDidChangeCollapseState=new l.Q5,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new l.Q5,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new l.Q5,this.onDidSplice=this._onDidSplice.event,this.refilterDelayer=new s.vp(r.n),this.collapseByDefault="undefined"!==typeof n.collapseByDefault&&n.collapseByDefault,this.allowNonCollapsibleParents=null!==(o=n.allowNonCollapsibleParents)&&void 0!==o&&o,this.filter=n.filter,this.autoExpandSingleChildren="undefined"!==typeof n.autoExpandSingleChildren&&n.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}}splice(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.$.empty(),o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(0===e.length)throw new n.ac(this.user,"Invalid tree location");o.diffIdentityProvider?this.spliceSmart(o.diffIdentityProvider,e,t,i,o):this.spliceSimple(e,t,i,o)}spliceSmart(e,t,i,n,o,s){var r;void 0===n&&(n=h.$.empty()),void 0===s&&(s=null!==(r=o.diffDepth)&&void 0!==r?r:0);const{parentNode:l}=this.getParentNodeWithListIndex(t);if(!l.lastDiffIds)return this.spliceSimple(t,i,n,o);const d=[...n],c=t[t.length-1],u=new a.Hs({getElements:()=>l.lastDiffIds},{getElements:()=>[...l.children.slice(0,c),...d,...l.children.slice(c+i)].map((t=>e.getId(t.element).toString()))}).ComputeDiff(!1);if(u.quitEarly)return l.lastDiffIds=void 0,this.spliceSimple(t,i,d,o);const g=t.slice(0,-1),m=(t,i,n)=>{if(s>0)for(let r=0;rt.originalStart-e.originalStart)))m(f,p,f-(a.originalStart+a.originalLength)),f=a.originalStart,p=a.modifiedStart-c,this.spliceSimple([...g,f],a.originalLength,h.$.slice(d,p,p+a.modifiedLength),o);m(f,p,f)}spliceSimple(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.$.empty(),{onDidCreateNode:n,onDidDeleteNode:s,diffIdentityProvider:r}=arguments.length>3?arguments[3]:void 0;const{parentNode:a,listIndex:l,revealed:d,visible:c}=this.getParentNodeWithListIndex(e),u=[],g=h.$.map(i,(e=>this.createTreeNode(e,a,a.visible?1:0,d,u,n))),m=e[e.length-1];let f=0;for(let o=m;o>=0&&or.getId(e.element).toString()))):a.lastDiffIds=a.children.map((e=>r.getId(e.element).toString())):a.lastDiffIds=void 0;let C=0;for(const o of b)o.visible&&C++;if(0!==C)for(let o=m+p.length;oe+(t.visible?t.renderNodeCount:0)),0);this._updateAncestorsRenderNodeCount(a,v-e),this.list.splice(l,e,u)}if(b.length>0&&s){const e=t=>{s(t),t.children.forEach(e)};b.forEach(e)}this._onDidSplice.fire({insertedNodes:p,deletedNodes:b});let w=a;for(;w;){if(2===w.visibility){this.refilterDelayer.trigger((()=>this.refilter()));break}w=w.parent}}rerender(e){if(0===e.length)throw new n.ac(this.user,"Invalid tree location");const{node:t,listIndex:i,revealed:o}=this.getTreeNodeWithListIndex(e);t.visible&&o&&this.list.splice(i,1,[t])}has(e){return this.hasTreeNode(e)}getListIndex(e){const{listIndex:t,visible:i,revealed:n}=this.getTreeNodeWithListIndex(e);return i&&n?t:-1}getListRenderCount(e){return this.getTreeNode(e).renderNodeCount}isCollapsible(e){return this.getTreeNode(e).collapsible}setCollapsible(e,t){const i=this.getTreeNode(e);"undefined"===typeof t&&(t=!i.collapsible);const n={collapsible:t};return this.eventBufferer.bufferEvents((()=>this._setCollapseState(e,n)))}isCollapsed(e){return this.getTreeNode(e).collapsed}setCollapsed(e,t,i){const n=this.getTreeNode(e);"undefined"===typeof t&&(t=!n.collapsed);const o={collapsed:t,recursive:i||!1};return this.eventBufferer.bufferEvents((()=>this._setCollapseState(e,o)))}_setCollapseState(e,t){const{node:i,listIndex:n,revealed:o}=this.getTreeNodeWithListIndex(e),s=this._setListNodeCollapseState(i,n,o,t);if(i!==this.root&&this.autoExpandSingleChildren&&s&&!u(t)&&i.collapsible&&!i.collapsed&&!t.recursive){let n=-1;for(let e=0;e-1){n=-1;break}n=e}}n>-1&&this._setCollapseState([...e,n],t)}return s}_setListNodeCollapseState(e,t,i,n){const o=this._setNodeCollapseState(e,n,!1);if(!i||!e.visible||!o)return o;const s=e.renderNodeCount,r=this.updateNodeAfterCollapseChange(e),a=s-(-1===t?0:1);return this.list.splice(t+1,a,r.slice(1)),o}_setNodeCollapseState(e,t,i){let n;if(e===this.root?n=!1:(u(t)?(n=e.collapsible!==t.collapsible,e.collapsible=t.collapsible):e.collapsible?(n=e.collapsed!==t.collapsed,e.collapsed=t.collapsed):n=!1,n&&this._onDidChangeCollapseState.fire({node:e,deep:i})),!u(t)&&t.recursive)for(const o of e.children)n=this._setNodeCollapseState(o,t,!0)||n;return n}expandTo(e){this.eventBufferer.bufferEvents((()=>{let t=this.getTreeNode(e);for(;t.parent;)t=t.parent,e=e.slice(0,e.length-1),t.collapsed&&this._setCollapseState(e,{collapsed:!1,recursive:!1})}))}refilter(){const e=this.root.renderNodeCount,t=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,e,t),this.refilterDelayer.cancel()}createTreeNode(e,t,i,n,o,s){const r={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},a=this._filterNode(r,i);r.visibility=a,n&&o.push(r);const l=e.children||h.$.empty(),d=n&&0!==a&&!r.collapsed;let c=0,u=1;for(const h of l){const e=this.createTreeNode(h,r,a,d,o,s);r.children.push(e),u+=e.renderNodeCount,e.visible&&(e.visibleChildIndex=c++)}return this.allowNonCollapsibleParents||(r.collapsible=r.collapsible||r.children.length>0),r.visibleChildrenCount=c,r.visible=2===a?c>0:1===a,r.visible?r.collapsed||(r.renderNodeCount=u):(r.renderNodeCount=0,n&&o.pop()),null===s||void 0===s||s(r),r}updateNodeAfterCollapseChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterCollapseChange(e,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterCollapseChange(e,t){if(!1===e.visible)return 0;if(t.push(e),e.renderNodeCount=1,!e.collapsed)for(const i of e.children)e.renderNodeCount+=this._updateNodeAfterCollapseChange(i,t);return this._onDidChangeRenderNodeCount.fire(e),e.renderNodeCount}updateNodeAfterFilterChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterFilterChange(e,e.visible?1:0,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterFilterChange(e,t,i){let n,o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(e!==this.root){if(n=this._filterNode(e,t),0===n)return e.visible=!1,e.renderNodeCount=0,!1;o&&i.push(e)}const s=i.length;e.renderNodeCount=e===this.root?0:1;let r=!1;if(e.collapsed&&0===n)e.visibleChildrenCount=0;else{let t=0;for(const s of e.children)r=this._updateNodeAfterFilterChange(s,n,i,o&&!e.collapsed)||r,s.visible&&(s.visibleChildIndex=t++);e.visibleChildrenCount=t}return e!==this.root&&(e.visible=2===n?r:1===n,e.visibility=n),e.visible?e.collapsed||(e.renderNodeCount+=i.length-s):(e.renderNodeCount=0,o&&i.pop()),this._onDidChangeRenderNodeCount.fire(e),e.visible}_updateAncestorsRenderNodeCount(e,t){if(0!==t)for(;e;)e.renderNodeCount+=t,this._onDidChangeRenderNodeCount.fire(e),e=e.parent}_filterNode(e,t){const i=this.filter?this.filter.filter(e.element,t):1;return"boolean"===typeof i?(e.filterData=void 0,i?1:0):d(i)?(e.filterData=i.data,c(i.visibility)):(e.filterData=void 0,c(i))}hasTreeNode(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.root;if(!e||0===e.length)return!0;const[i,...n]=e;return!(i<0||i>t.children.length)&&this.hasTreeNode(n,t.children[i])}getTreeNode(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.root;if(!e||0===e.length)return t;const[i,...o]=e;if(i<0||i>t.children.length)throw new n.ac(this.user,"Invalid tree location");return this.getTreeNode(o,t.children[i])}getTreeNodeWithListIndex(e){if(0===e.length)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};const{parentNode:t,listIndex:i,revealed:o,visible:s}=this.getParentNodeWithListIndex(e),r=e[e.length-1];if(r<0||r>t.children.length)throw new n.ac(this.user,"Invalid tree location");const a=t.children[r];return{node:a,listIndex:i,revealed:o,visible:s&&a.visible}}getParentNodeWithListIndex(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.root,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];const[r,...a]=e;if(r<0||r>t.children.length)throw new n.ac(this.user,"Invalid tree location");for(let n=0;n0&&void 0!==arguments[0]?arguments[0]:[];return this.getTreeNode(e)}getNodeLocation(e){const t=[];let i=e;for(;i.parent;)t.push(i.parent.children.indexOf(i)),i=i.parent;return t.reverse()}getParentNodeLocation(e){return 0===e.length?void 0:1===e.length?[]:(0,o.JH)(e)[0]}getFirstElementChild(e){const t=this.getTreeNode(e);if(0!==t.children.length)return t.children[0].element}}},61746:(e,t,i)=>{var n,o;i.d(t,{VA:()=>r,ac:()=>s,kn:()=>n,sD:()=>o}),function(e){e[e.Expanded=0]="Expanded",e[e.Collapsed=1]="Collapsed",e[e.PreserveOrExpanded=2]="PreserveOrExpanded",e[e.PreserveOrCollapsed=3]="PreserveOrCollapsed"}(n||(n={})),function(e){e[e.Unknown=0]="Unknown",e[e.Twistie=1]="Twistie",e[e.Element=2]="Element",e[e.Filter=3]="Filter"}(o||(o={}));class s extends Error{constructor(e,t){super("TreeError [".concat(e,"] ").concat(t))}}class r{constructor(e){this.fn=e,this._map=new WeakMap}map(e){let t=this._map.get(e);return t||(t=this.fn(e),this._map.set(e,t)),t}}},74812:(e,t,i)=>{i.d(t,{$:()=>l});var n=i(85714),o=i(39341),s=i(21494),r=i(48688),a=i(89599);class l extends a.JT{onclick(e,t){this._register(n.nm(e,n.tw.CLICK,(i=>t(new s.n(n.Jj(e),i)))))}onmousedown(e,t){this._register(n.nm(e,n.tw.MOUSE_DOWN,(i=>t(new s.n(n.Jj(e),i)))))}onmouseover(e,t){this._register(n.nm(e,n.tw.MOUSE_OVER,(i=>t(new s.n(n.Jj(e),i)))))}onmouseleave(e,t){this._register(n.nm(e,n.tw.MOUSE_LEAVE,(i=>t(new s.n(n.Jj(e),i)))))}onkeydown(e,t){this._register(n.nm(e,n.tw.KEY_DOWN,(e=>t(new o.y(e)))))}onkeyup(e,t){this._register(n.nm(e,n.tw.KEY_UP,(e=>t(new o.y(e)))))}oninput(e,t){this._register(n.nm(e,n.tw.INPUT,t))}onblur(e,t){this._register(n.nm(e,n.tw.BLUR,t))}onfocus(e,t){this._register(n.nm(e,n.tw.FOCUS,t))}ignoreGesture(e){return r.o.ignoreTarget(e)}}},29880:(e,t,i)=>{function n(e,t){const i=e;"number"!==typeof i.vscodeWindowId&&Object.defineProperty(i,"vscodeWindowId",{get:()=>t})}i.d(t,{E:()=>o,H:()=>n});const o=window},22337:(e,t,i)=>{i.d(t,{Wi:()=>a,Z0:()=>l,aU:()=>r,eZ:()=>d,wY:()=>h,xw:()=>c});var n=i(24219),o=i(89599),s=i(71721);class r extends o.JT{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],s=arguments.length>4?arguments[4]:void 0;super(),this._onDidChange=this._register(new n.Q5),this.onDidChange=this._onDidChange.event,this._enabled=!0,this._id=e,this._label=t,this._cssClass=i,this._enabled=o,this._actionCallback=s}get id(){return this._id}get label(){return this._label}set label(e){this._setLabel(e)}_setLabel(e){this._label!==e&&(this._label=e,this._onDidChange.fire({label:e}))}get tooltip(){return this._tooltip||""}set tooltip(e){this._setTooltip(e)}_setTooltip(e){this._tooltip!==e&&(this._tooltip=e,this._onDidChange.fire({tooltip:e}))}get class(){return this._cssClass}set class(e){this._setClass(e)}_setClass(e){this._cssClass!==e&&(this._cssClass=e,this._onDidChange.fire({class:e}))}get enabled(){return this._enabled}set enabled(e){this._setEnabled(e)}_setEnabled(e){this._enabled!==e&&(this._enabled=e,this._onDidChange.fire({enabled:e}))}get checked(){return this._checked}set checked(e){this._setChecked(e)}_setChecked(e){this._checked!==e&&(this._checked=e,this._onDidChange.fire({checked:e}))}async run(e,t){this._actionCallback&&await this._actionCallback(e)}}class a extends o.JT{constructor(){super(...arguments),this._onWillRun=this._register(new n.Q5),this.onWillRun=this._onWillRun.event,this._onDidRun=this._register(new n.Q5),this.onDidRun=this._onDidRun.event}async run(e,t){if(!e.enabled)return;let i;this._onWillRun.fire({action:e});try{await this.runAction(e,t)}catch(n){i=n}this._onDidRun.fire({action:e,error:i})}async runAction(e,t){await e.run(t)}}class l{constructor(){this.id=l.ID,this.label="",this.tooltip="",this.class="separator",this.enabled=!1,this.checked=!1}static join(){let e=[];for(var t=arguments.length,i=new Array(t),n=0;n{function n(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e[e.length-(1+t)]}function o(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){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:(e,t)=>e===t;if(e===t)return!0;if(!e||!t)return!1;if(e.length!==t.length)return!1;for(let n=0,o=e.length;n0))return e;n=e-1}}return-(i+1)}(e.length,(n=>i(e[n],t)))}function l(e,t,i){if((e|=0)>=t.length)throw new TypeError("invalid index");const n=t[Math.floor(t.length*Math.random())],o=[],s=[],r=[];for(const a of t){const e=i(a,n);e<0?o.push(a):e>0?s.push(a):r.push(a)}return e!!e))}function m(e){let t=0;for(let i=0;i0}function _(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e;const i=new Set;return e.filter((e=>{const n=t(e);return!i.has(n)&&(i.add(n),!0)}))}function v(e,t){return e.length>0?e[0]:t}function b(e,t){let i="number"===typeof t?e:0;"number"===typeof t?i=e:(i=0,t=e);const n=[];if(i<=t)for(let o=i;ot;o--)n.push(o);return n}function C(e,t,i){const n=e.slice(0,t),o=e.slice(t);return n.concat(i,o)}function w(e,t){const i=e.indexOf(t);i>-1&&(e.splice(i,1),e.unshift(t))}function y(e,t){const i=e.indexOf(t);i>-1&&(e.splice(i,1),e.push(t))}function S(e,t){for(const i of t)e.push(i)}function L(e){return Array.isArray(e)?e:[e]}function k(e,t,i,n){const o=D(e,t);let s=e.splice(o,i);return void 0===s&&(s=[]),function(e,t,i){const n=D(e,t),o=e.length,s=i.length;e.length=o+s;for(let r=o-1;r>=n;r--)e[r+s]=e[r];for(let r=0;rt(e(i),e(n))}function E(){for(var e=arguments.length,t=new Array(e),i=0;i{for(const n of t){const t=n(e,i);if(!N.isNeitherLessOrGreaterThan(t))return t}return N.neitherLessOrGreaterThan}}i.d(t,{BV:()=>M,EB:()=>_,Gb:()=>n,H9:()=>A,HW:()=>l,JH:()=>o,KO:()=>u,LS:()=>r,Of:()=>p,Rs:()=>m,W$:()=>R,XY:()=>f,Xh:()=>v,Zv:()=>C,_2:()=>L,_i:()=>O,al:()=>y,db:()=>k,fS:()=>s,f_:()=>E,fv:()=>I,kX:()=>g,mw:()=>d,nW:()=>T,ry:()=>a,tT:()=>x,vA:()=>S,vM:()=>h,w6:()=>b,zI:()=>w,zy:()=>c}),function(e){e.isLessThan=function(e){return e<0},e.isLessThanOrEqual=function(e){return e<=0},e.isGreaterThan=function(e){return e>0},e.isNeitherLessOrGreaterThan=function(e){return 0===e},e.greaterThan=1,e.lessThan=-1,e.neitherLessOrGreaterThan=0}(N||(N={}));const I=(e,t)=>e-t,T=(e,t)=>I(e?1:0,t?1:0);function M(e){return(t,i)=>-e(t,i)}class A{constructor(e){this.items=e,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(e){let t=this.firstIdx;for(;t=0&&e(this.items[t]);)t--;const i=t===this.lastIdx?null:this.items.slice(t+1,this.lastIdx+1);return this.lastIdx=t,i}peek(){if(0!==this.length)return this.items[this.firstIdx]}dequeue(){const e=this.items[this.firstIdx];return this.firstIdx++,e}takeCount(e){const t=this.items.slice(this.firstIdx,this.firstIdx+e);return this.firstIdx+=e,t}}class R{constructor(e){this.iterate=e}toArray(){const e=[];return this.iterate((t=>(e.push(t),!0))),e}filter(e){return new R((t=>this.iterate((i=>!e(i)||t(i)))))}map(e){return new R((t=>this.iterate((i=>t(e(i))))))}findLast(e){let t;return this.iterate((i=>(e(i)&&(t=i),!0))),t}findLastMaxBy(e){let t,i=!0;return this.iterate((n=>((i||N.isGreaterThan(e(n,t)))&&(i=!1,t=n),!0))),t}}R.empty=new R((e=>{}));class O{constructor(e){this._indexMap=e}static createSortPermutation(e,t){const i=Array.from(e.keys()).sort(((i,n)=>t(e[i],e[n])));return new O(i)}apply(e){return e.map(((t,i)=>e[this._indexMap[i]]))}inverse(){const e=this._indexMap.slice();for(let t=0;t{function n(e,t,i){const n=function(e,t){for(let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length-1;i>=0;i--){if(t(e[i]))return i}return-1}(e,t);if(-1!==n)return e[n]}function o(e,t){const i=s(e,t);return-1===i?void 0:e[i]}function s(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length;for(;i2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length;for(;ig,J_:()=>a,Jw:()=>s,Ph:()=>c,b1:()=>l,cn:()=>r,dF:()=>n,dI:()=>h,jV:()=>d,tQ:()=>u,ti:()=>o});class l{constructor(e){this._array=e,this._findLastMonotonousLastIdx=0}findLastMonotonous(e){if(l.assertInvariants){if(this._prevFindLastPredicate)for(const t of this._array)if(this._prevFindLastPredicate(t)&&!e(t))throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.");this._prevFindLastPredicate=e}const t=s(this._array,e,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=t+1,-1===t?void 0:this._array[t]}}function h(e,t){if(0===e.length)return;let i=e[0];for(let n=1;n0&&(i=o)}return i}function d(e,t){if(0===e.length)return;let i=e[0];for(let n=1;n=0&&(i=o)}return i}function c(e,t){return h(e,((e,i)=>-t(e,i)))}function u(e,t){if(0===e.length)return-1;let i=0;for(let n=1;n0&&(i=n)}return i}function g(e,t){for(const i of e){const e=t(i);if(void 0!==e)return e}}l.assertInvariants=!1},39880:(e,t,i)=>{i.d(t,{DM:()=>l,eZ:()=>a,ok:()=>o,vE:()=>s,wN:()=>r});var n=i(85108);function o(e,t){if(!e)throw new Error(t?"Assertion failed (".concat(t,")"):"Assertion Failed")}function s(e){throw new Error(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Unreachable")}function r(e){e||(0,n.dL)(new n.he("Soft Assertion Failed"))}function a(e){e()||(e(),(0,n.dL)(new n.he("Assertion Failed")))}function l(e,t){let i=0;for(;i{i.d(t,{Aq:()=>N,CR:()=>k,J8:()=>h,PG:()=>d,Ps:()=>_,R5:()=>L,Vg:()=>p,Vs:()=>f,_F:()=>v,eP:()=>c,hF:()=>S,jT:()=>D,jg:()=>w,pY:()=>C,rH:()=>m,vp:()=>g,y5:()=>y,zS:()=>E,zh:()=>b});var n=i(16113),o=i(85108),s=i(24219),r=i(89599),a=i(21511),l=i(59786);function h(e){return!!e&&"function"===typeof e.then}function d(e){const t=new n.A,i=e(t.token),s=new Promise(((e,n)=>{const s=t.token.onCancellationRequested((()=>{s.dispose(),n(new o.FU)}));Promise.resolve(i).then((i=>{s.dispose(),t.dispose(),e(i)}),(e=>{s.dispose(),t.dispose(),n(e)}))}));return new class{cancel(){t.cancel(),t.dispose()}then(e,t){return s.then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return s.finally(e)}}}function c(e,t,i){return new Promise(((n,o)=>{const s=t.onCancellationRequested((()=>{s.dispose(),n(i)}));e.then(n,o).finally((()=>s.dispose()))}))}class u{constructor(){this.isDisposed=!1,this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(e){if(this.isDisposed)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=e,!this.queuedPromise){const e=()=>{if(this.queuedPromise=null,this.isDisposed)return;const e=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,e};this.queuedPromise=new Promise((t=>{this.activePromise.then(e,e).then(t)}))}return new Promise(((e,t)=>{this.queuedPromise.then(e,t)}))}return this.activePromise=e(),new Promise(((e,t)=>{this.activePromise.then((t=>{this.activePromise=null,e(t)}),(e=>{this.activePromise=null,t(e)}))}))}dispose(){this.isDisposed=!0}}class g{constructor(e){this.defaultDelay=e,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.defaultDelay;this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise(((e,t)=>{this.doResolve=e,this.doReject=t})).then((()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const e=this.task;return this.task=null,e()}})));const i=()=>{var e;this.deferred=null,null===(e=this.doResolve)||void 0===e||e.call(this,null)};return this.deferred=t===l.n?(e=>{let t=!0;return queueMicrotask((()=>{t&&(t=!1,e())})),{isTriggered:()=>t,dispose:()=>{t=!1}}})(i):((e,t)=>{let i=!0;const n=setTimeout((()=>{i=!1,t()}),e);return{isTriggered:()=>i,dispose:()=>{clearTimeout(n),i=!1}}})(t,i),this.completionPromise}isTriggered(){var e;return!!(null===(e=this.deferred)||void 0===e?void 0:e.isTriggered())}cancel(){var e;this.cancelTimeout(),this.completionPromise&&(null===(e=this.doReject)||void 0===e||e.call(this,new o.FU),this.completionPromise=null)}cancelTimeout(){var e;null===(e=this.deferred)||void 0===e||e.dispose(),this.deferred=null}dispose(){this.cancel()}}class m{constructor(e){this.delayer=new g(e),this.throttler=new u}trigger(e,t){return this.delayer.trigger((()=>this.throttler.queue(e)),t)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}}function f(e,t){return t?new Promise(((i,n)=>{const s=setTimeout((()=>{r.dispose(),i()}),e),r=t.onCancellationRequested((()=>{clearTimeout(s),r.dispose(),n(new o.FU)}))})):d((t=>f(e,t)))}function p(e){let t=arguments.length>2?arguments[2]:void 0;const i=setTimeout((()=>{e(),t&&n.dispose()}),arguments.length>1&&void 0!==arguments[1]?arguments[1]:0),n=(0,r.OF)((()=>{clearTimeout(i),null===t||void 0===t||t.deleteAndLeak(n)}));return null===t||void 0===t||t.add(n),n}function _(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>!!e,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=0;const o=e.length,s=()=>{if(n>=o)return Promise.resolve(i);const r=e[n++];return Promise.resolve(r()).then((e=>t(e)?Promise.resolve(e):s()))};return s()}class v{constructor(e,t){this._token=-1,"function"===typeof e&&"number"===typeof t&&this.setIfNotSet(e,t)}dispose(){this.cancel()}cancel(){-1!==this._token&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(e,t){this.cancel(),this._token=setTimeout((()=>{this._token=-1,e()}),t)}setIfNotSet(e,t){-1===this._token&&(this._token=setTimeout((()=>{this._token=-1,e()}),t))}}class b{constructor(){this.disposable=void 0}cancel(){var e;null===(e=this.disposable)||void 0===e||e.dispose(),this.disposable=void 0}cancelAndSet(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:globalThis;this.cancel();const n=i.setInterval((()=>{e()}),t);this.disposable=(0,r.OF)((()=>{i.clearInterval(n),this.disposable=void 0}))}dispose(){this.cancel()}}class C{constructor(e,t){this.timeoutToken=-1,this.runner=e,this.timeout=t,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}schedule(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.timeout;this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,e)}get delay(){return this.timeout}set delay(e){this.timeout=e}isScheduled(){return-1!==this.timeoutToken}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){var e;null===(e=this.runner)||void 0===e||e.call(this)}}let w,y;y="function"!==typeof globalThis.requestIdleCallback||"function"!==typeof globalThis.cancelIdleCallback?(e,t)=>{(0,a.fn)((()=>{if(i)return;const e=Date.now()+15,n={didTimeout:!0,timeRemaining:()=>Math.max(0,e-Date.now())};t(Object.freeze(n))}));let i=!1;return{dispose(){i||(i=!0)}}}:(e,t,i)=>{const n=e.requestIdleCallback(t,"number"===typeof i?{timeout:i}:void 0);let o=!1;return{dispose(){o||(o=!0,e.cancelIdleCallback(n))}}},w=e=>y(globalThis,e);class S{constructor(e,t){this._didRun=!1,this._executor=()=>{try{this._value=t()}catch(e){this._error=e}finally{this._didRun=!0}},this._handle=y(e,(()=>this._executor()))}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}class L extends S{constructor(e){super(globalThis,e)}}class k{get isRejected(){var e;return 1===(null===(e=this.outcome)||void 0===e?void 0:e.outcome)}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise(((e,t)=>{this.completeCallback=e,this.errorCallback=t}))}complete(e){return new Promise((t=>{this.completeCallback(e),this.outcome={outcome:0,value:e},t()}))}error(e){return new Promise((t=>{this.errorCallback(e),this.outcome={outcome:1,value:e},t()}))}cancel(){return this.error(new o.FU)}}var D;!function(e){e.settled=async function(e){let t;const i=await Promise.all(e.map((e=>e.then((e=>e),(e=>{t||(t=e)})))));if("undefined"!==typeof t)throw t;return i},e.withAsyncBody=function(e){return new Promise((async(t,i)=>{try{await e(t,i)}catch(n){i(n)}}))}}(D||(D={}));class N{static fromArray(e){return new N((t=>{t.emitMany(e)}))}static fromPromise(e){return new N((async t=>{t.emitMany(await e)}))}static fromPromises(e){return new N((async t=>{await Promise.all(e.map((async e=>t.emitOne(await e))))}))}static merge(e){return new N((async t=>{await Promise.all(e.map((async e=>{for await(const i of e)t.emitOne(i)})))}))}constructor(e){this._state=0,this._results=[],this._error=null,this._onStateChanged=new s.Q5,queueMicrotask((async()=>{const t={emitOne:e=>this.emitOne(e),emitMany:e=>this.emitMany(e),reject:e=>this.reject(e)};try{await Promise.resolve(e(t)),this.resolve()}catch(i){this.reject(i)}finally{t.emitOne=void 0,t.emitMany=void 0,t.reject=void 0}}))}[Symbol.asyncIterator](){let e=0;return{next:async()=>{for(;;){if(2===this._state)throw this._error;if(e{for await(const n of e)i.emitOne(t(n))}))}map(e){return N.map(this,e)}static filter(e,t){return new N((async i=>{for await(const n of e)t(n)&&i.emitOne(n)}))}filter(e){return N.filter(this,e)}static coalesce(e){return N.filter(e,(e=>!!e))}coalesce(){return N.coalesce(this)}static async toPromise(e){const t=[];for await(const i of e)t.push(i);return t}toPromise(){return N.toPromise(this)}emitOne(e){0===this._state&&(this._results.push(e),this._onStateChanged.fire())}emitMany(e){0===this._state&&(this._results=this._results.concat(e),this._onStateChanged.fire())}resolve(){0===this._state&&(this._state=1,this._onStateChanged.fire())}reject(e){0===this._state&&(this._state=2,this._error=e,this._onStateChanged.fire())}}N.EMPTY=N.fromArray([]);class x extends N{constructor(e,t){super(t),this._source=e}cancel(){this._source.cancel()}}function E(e){const t=new n.A,i=e(t.token);return new x(t,(async e=>{const n=t.token.onCancellationRequested((()=>{n.dispose(),t.dispose(),e.reject(new o.FU)}));try{for await(const n of i){if(t.token.isCancellationRequested)return;e.emitOne(n)}n.dispose(),t.dispose()}catch(s){n.dispose(),t.dispose(),e.reject(s)}}))}},12966:(e,t,i)=>{i.d(t,{Ag:()=>h,Cg:()=>u,KN:()=>r,Q$:()=>c,T4:()=>d,mP:()=>a,oq:()=>l});var n=i(73187);const o="undefined"!==typeof Buffer;new n.o((()=>new Uint8Array(256)));let s;class r{static wrap(e){return o&&!Buffer.isBuffer(e)&&(e=Buffer.from(e.buffer,e.byteOffset,e.byteLength)),new r(e)}constructor(e){this.buffer=e,this.byteLength=this.buffer.byteLength}toString(){return o?this.buffer.toString():(s||(s=new TextDecoder),s.decode(this.buffer))}}function a(e,t){return e[t+0]<<0>>>0|e[t+1]<<8>>>0}function l(e,t,i){e[i+0]=255&t,t>>>=8,e[i+1]=255&t}function h(e,t){return e[t]*2**24+65536*e[t+1]+256*e[t+2]+e[t+3]}function d(e,t,i){e[i+3]=t,t>>>=8,e[i+2]=t,t>>>=8,e[i+1]=t,t>>>=8,e[i]=t}function c(e,t){return e[t]}function u(e,t,i){e[i]=t}},31372:(e,t,i)=>{i.d(t,{b:()=>o,t:()=>n});class n{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:JSON.stringify;this.fn=e,this._computeKey=t,this.lastCache=void 0,this.lastArgKey=void 0}get(e){const t=this._computeKey(e);return this.lastArgKey!==t&&(this.lastArgKey=t,this.lastCache=this.fn(e)),this.lastCache}}class o{get cachedValues(){return this._map}constructor(e){this.fn=e,this._map=new Map}get(e){if(this._map.has(e))return this._map.get(e);const t=this.fn(e);return this._map.set(e,t),t}}},16113:(e,t,i)=>{i.d(t,{A:()=>a,T:()=>s});var n=i(24219);const o=Object.freeze((function(e,t){const i=setTimeout(e.bind(t),0);return{dispose(){clearTimeout(i)}}}));var s;!function(e){e.isCancellationToken=function(t){return t===e.None||t===e.Cancelled||(t instanceof r||!(!t||"object"!==typeof t)&&("boolean"===typeof t.isCancellationRequested&&"function"===typeof t.onCancellationRequested))},e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:n.ju.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:o})}(s||(s={}));class r{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?o:(this._emitter||(this._emitter=new n.Q5),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}class a{constructor(e){this._token=void 0,this._parentListener=void 0,this._parentListener=e&&e.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new r),this._token}cancel(){this._token?this._token instanceof r&&this._token.cancel():this._token=s.Cancelled}dispose(){var e;arguments.length>0&&void 0!==arguments[0]&&arguments[0]&&this.cancel(),null===(e=this._parentListener)||void 0===e||e.dispose(),this._token?this._token instanceof r&&this._token.dispose():this._token=s.None}}},62974:(e,t,i)=>{i.d(t,{l:()=>o});var n=i(68406);const o={...{add:(0,n.z)("add",6e4),plus:(0,n.z)("plus",6e4),gistNew:(0,n.z)("gist-new",6e4),repoCreate:(0,n.z)("repo-create",6e4),lightbulb:(0,n.z)("lightbulb",60001),lightBulb:(0,n.z)("light-bulb",60001),repo:(0,n.z)("repo",60002),repoDelete:(0,n.z)("repo-delete",60002),gistFork:(0,n.z)("gist-fork",60003),repoForked:(0,n.z)("repo-forked",60003),gitPullRequest:(0,n.z)("git-pull-request",60004),gitPullRequestAbandoned:(0,n.z)("git-pull-request-abandoned",60004),recordKeys:(0,n.z)("record-keys",60005),keyboard:(0,n.z)("keyboard",60005),tag:(0,n.z)("tag",60006),gitPullRequestLabel:(0,n.z)("git-pull-request-label",60006),tagAdd:(0,n.z)("tag-add",60006),tagRemove:(0,n.z)("tag-remove",60006),person:(0,n.z)("person",60007),personFollow:(0,n.z)("person-follow",60007),personOutline:(0,n.z)("person-outline",60007),personFilled:(0,n.z)("person-filled",60007),gitBranch:(0,n.z)("git-branch",60008),gitBranchCreate:(0,n.z)("git-branch-create",60008),gitBranchDelete:(0,n.z)("git-branch-delete",60008),sourceControl:(0,n.z)("source-control",60008),mirror:(0,n.z)("mirror",60009),mirrorPublic:(0,n.z)("mirror-public",60009),star:(0,n.z)("star",60010),starAdd:(0,n.z)("star-add",60010),starDelete:(0,n.z)("star-delete",60010),starEmpty:(0,n.z)("star-empty",60010),comment:(0,n.z)("comment",60011),commentAdd:(0,n.z)("comment-add",60011),alert:(0,n.z)("alert",60012),warning:(0,n.z)("warning",60012),search:(0,n.z)("search",60013),searchSave:(0,n.z)("search-save",60013),logOut:(0,n.z)("log-out",60014),signOut:(0,n.z)("sign-out",60014),logIn:(0,n.z)("log-in",60015),signIn:(0,n.z)("sign-in",60015),eye:(0,n.z)("eye",60016),eyeUnwatch:(0,n.z)("eye-unwatch",60016),eyeWatch:(0,n.z)("eye-watch",60016),circleFilled:(0,n.z)("circle-filled",60017),primitiveDot:(0,n.z)("primitive-dot",60017),closeDirty:(0,n.z)("close-dirty",60017),debugBreakpoint:(0,n.z)("debug-breakpoint",60017),debugBreakpointDisabled:(0,n.z)("debug-breakpoint-disabled",60017),debugHint:(0,n.z)("debug-hint",60017),terminalDecorationSuccess:(0,n.z)("terminal-decoration-success",60017),primitiveSquare:(0,n.z)("primitive-square",60018),edit:(0,n.z)("edit",60019),pencil:(0,n.z)("pencil",60019),info:(0,n.z)("info",60020),issueOpened:(0,n.z)("issue-opened",60020),gistPrivate:(0,n.z)("gist-private",60021),gitForkPrivate:(0,n.z)("git-fork-private",60021),lock:(0,n.z)("lock",60021),mirrorPrivate:(0,n.z)("mirror-private",60021),close:(0,n.z)("close",60022),removeClose:(0,n.z)("remove-close",60022),x:(0,n.z)("x",60022),repoSync:(0,n.z)("repo-sync",60023),sync:(0,n.z)("sync",60023),clone:(0,n.z)("clone",60024),desktopDownload:(0,n.z)("desktop-download",60024),beaker:(0,n.z)("beaker",60025),microscope:(0,n.z)("microscope",60025),vm:(0,n.z)("vm",60026),deviceDesktop:(0,n.z)("device-desktop",60026),file:(0,n.z)("file",60027),fileText:(0,n.z)("file-text",60027),more:(0,n.z)("more",60028),ellipsis:(0,n.z)("ellipsis",60028),kebabHorizontal:(0,n.z)("kebab-horizontal",60028),mailReply:(0,n.z)("mail-reply",60029),reply:(0,n.z)("reply",60029),organization:(0,n.z)("organization",60030),organizationFilled:(0,n.z)("organization-filled",60030),organizationOutline:(0,n.z)("organization-outline",60030),newFile:(0,n.z)("new-file",60031),fileAdd:(0,n.z)("file-add",60031),newFolder:(0,n.z)("new-folder",60032),fileDirectoryCreate:(0,n.z)("file-directory-create",60032),trash:(0,n.z)("trash",60033),trashcan:(0,n.z)("trashcan",60033),history:(0,n.z)("history",60034),clock:(0,n.z)("clock",60034),folder:(0,n.z)("folder",60035),fileDirectory:(0,n.z)("file-directory",60035),symbolFolder:(0,n.z)("symbol-folder",60035),logoGithub:(0,n.z)("logo-github",60036),markGithub:(0,n.z)("mark-github",60036),github:(0,n.z)("github",60036),terminal:(0,n.z)("terminal",60037),console:(0,n.z)("console",60037),repl:(0,n.z)("repl",60037),zap:(0,n.z)("zap",60038),symbolEvent:(0,n.z)("symbol-event",60038),error:(0,n.z)("error",60039),stop:(0,n.z)("stop",60039),variable:(0,n.z)("variable",60040),symbolVariable:(0,n.z)("symbol-variable",60040),array:(0,n.z)("array",60042),symbolArray:(0,n.z)("symbol-array",60042),symbolModule:(0,n.z)("symbol-module",60043),symbolPackage:(0,n.z)("symbol-package",60043),symbolNamespace:(0,n.z)("symbol-namespace",60043),symbolObject:(0,n.z)("symbol-object",60043),symbolMethod:(0,n.z)("symbol-method",60044),symbolFunction:(0,n.z)("symbol-function",60044),symbolConstructor:(0,n.z)("symbol-constructor",60044),symbolBoolean:(0,n.z)("symbol-boolean",60047),symbolNull:(0,n.z)("symbol-null",60047),symbolNumeric:(0,n.z)("symbol-numeric",60048),symbolNumber:(0,n.z)("symbol-number",60048),symbolStructure:(0,n.z)("symbol-structure",60049),symbolStruct:(0,n.z)("symbol-struct",60049),symbolParameter:(0,n.z)("symbol-parameter",60050),symbolTypeParameter:(0,n.z)("symbol-type-parameter",60050),symbolKey:(0,n.z)("symbol-key",60051),symbolText:(0,n.z)("symbol-text",60051),symbolReference:(0,n.z)("symbol-reference",60052),goToFile:(0,n.z)("go-to-file",60052),symbolEnum:(0,n.z)("symbol-enum",60053),symbolValue:(0,n.z)("symbol-value",60053),symbolRuler:(0,n.z)("symbol-ruler",60054),symbolUnit:(0,n.z)("symbol-unit",60054),activateBreakpoints:(0,n.z)("activate-breakpoints",60055),archive:(0,n.z)("archive",60056),arrowBoth:(0,n.z)("arrow-both",60057),arrowDown:(0,n.z)("arrow-down",60058),arrowLeft:(0,n.z)("arrow-left",60059),arrowRight:(0,n.z)("arrow-right",60060),arrowSmallDown:(0,n.z)("arrow-small-down",60061),arrowSmallLeft:(0,n.z)("arrow-small-left",60062),arrowSmallRight:(0,n.z)("arrow-small-right",60063),arrowSmallUp:(0,n.z)("arrow-small-up",60064),arrowUp:(0,n.z)("arrow-up",60065),bell:(0,n.z)("bell",60066),bold:(0,n.z)("bold",60067),book:(0,n.z)("book",60068),bookmark:(0,n.z)("bookmark",60069),debugBreakpointConditionalUnverified:(0,n.z)("debug-breakpoint-conditional-unverified",60070),debugBreakpointConditional:(0,n.z)("debug-breakpoint-conditional",60071),debugBreakpointConditionalDisabled:(0,n.z)("debug-breakpoint-conditional-disabled",60071),debugBreakpointDataUnverified:(0,n.z)("debug-breakpoint-data-unverified",60072),debugBreakpointData:(0,n.z)("debug-breakpoint-data",60073),debugBreakpointDataDisabled:(0,n.z)("debug-breakpoint-data-disabled",60073),debugBreakpointLogUnverified:(0,n.z)("debug-breakpoint-log-unverified",60074),debugBreakpointLog:(0,n.z)("debug-breakpoint-log",60075),debugBreakpointLogDisabled:(0,n.z)("debug-breakpoint-log-disabled",60075),briefcase:(0,n.z)("briefcase",60076),broadcast:(0,n.z)("broadcast",60077),browser:(0,n.z)("browser",60078),bug:(0,n.z)("bug",60079),calendar:(0,n.z)("calendar",60080),caseSensitive:(0,n.z)("case-sensitive",60081),check:(0,n.z)("check",60082),checklist:(0,n.z)("checklist",60083),chevronDown:(0,n.z)("chevron-down",60084),chevronLeft:(0,n.z)("chevron-left",60085),chevronRight:(0,n.z)("chevron-right",60086),chevronUp:(0,n.z)("chevron-up",60087),chromeClose:(0,n.z)("chrome-close",60088),chromeMaximize:(0,n.z)("chrome-maximize",60089),chromeMinimize:(0,n.z)("chrome-minimize",60090),chromeRestore:(0,n.z)("chrome-restore",60091),circleOutline:(0,n.z)("circle-outline",60092),circle:(0,n.z)("circle",60092),debugBreakpointUnverified:(0,n.z)("debug-breakpoint-unverified",60092),terminalDecorationIncomplete:(0,n.z)("terminal-decoration-incomplete",60092),circleSlash:(0,n.z)("circle-slash",60093),circuitBoard:(0,n.z)("circuit-board",60094),clearAll:(0,n.z)("clear-all",60095),clippy:(0,n.z)("clippy",60096),closeAll:(0,n.z)("close-all",60097),cloudDownload:(0,n.z)("cloud-download",60098),cloudUpload:(0,n.z)("cloud-upload",60099),code:(0,n.z)("code",60100),collapseAll:(0,n.z)("collapse-all",60101),colorMode:(0,n.z)("color-mode",60102),commentDiscussion:(0,n.z)("comment-discussion",60103),creditCard:(0,n.z)("credit-card",60105),dash:(0,n.z)("dash",60108),dashboard:(0,n.z)("dashboard",60109),database:(0,n.z)("database",60110),debugContinue:(0,n.z)("debug-continue",60111),debugDisconnect:(0,n.z)("debug-disconnect",60112),debugPause:(0,n.z)("debug-pause",60113),debugRestart:(0,n.z)("debug-restart",60114),debugStart:(0,n.z)("debug-start",60115),debugStepInto:(0,n.z)("debug-step-into",60116),debugStepOut:(0,n.z)("debug-step-out",60117),debugStepOver:(0,n.z)("debug-step-over",60118),debugStop:(0,n.z)("debug-stop",60119),debug:(0,n.z)("debug",60120),deviceCameraVideo:(0,n.z)("device-camera-video",60121),deviceCamera:(0,n.z)("device-camera",60122),deviceMobile:(0,n.z)("device-mobile",60123),diffAdded:(0,n.z)("diff-added",60124),diffIgnored:(0,n.z)("diff-ignored",60125),diffModified:(0,n.z)("diff-modified",60126),diffRemoved:(0,n.z)("diff-removed",60127),diffRenamed:(0,n.z)("diff-renamed",60128),diff:(0,n.z)("diff",60129),diffSidebyside:(0,n.z)("diff-sidebyside",60129),discard:(0,n.z)("discard",60130),editorLayout:(0,n.z)("editor-layout",60131),emptyWindow:(0,n.z)("empty-window",60132),exclude:(0,n.z)("exclude",60133),extensions:(0,n.z)("extensions",60134),eyeClosed:(0,n.z)("eye-closed",60135),fileBinary:(0,n.z)("file-binary",60136),fileCode:(0,n.z)("file-code",60137),fileMedia:(0,n.z)("file-media",60138),filePdf:(0,n.z)("file-pdf",60139),fileSubmodule:(0,n.z)("file-submodule",60140),fileSymlinkDirectory:(0,n.z)("file-symlink-directory",60141),fileSymlinkFile:(0,n.z)("file-symlink-file",60142),fileZip:(0,n.z)("file-zip",60143),files:(0,n.z)("files",60144),filter:(0,n.z)("filter",60145),flame:(0,n.z)("flame",60146),foldDown:(0,n.z)("fold-down",60147),foldUp:(0,n.z)("fold-up",60148),fold:(0,n.z)("fold",60149),folderActive:(0,n.z)("folder-active",60150),folderOpened:(0,n.z)("folder-opened",60151),gear:(0,n.z)("gear",60152),gift:(0,n.z)("gift",60153),gistSecret:(0,n.z)("gist-secret",60154),gist:(0,n.z)("gist",60155),gitCommit:(0,n.z)("git-commit",60156),gitCompare:(0,n.z)("git-compare",60157),compareChanges:(0,n.z)("compare-changes",60157),gitMerge:(0,n.z)("git-merge",60158),githubAction:(0,n.z)("github-action",60159),githubAlt:(0,n.z)("github-alt",60160),globe:(0,n.z)("globe",60161),grabber:(0,n.z)("grabber",60162),graph:(0,n.z)("graph",60163),gripper:(0,n.z)("gripper",60164),heart:(0,n.z)("heart",60165),home:(0,n.z)("home",60166),horizontalRule:(0,n.z)("horizontal-rule",60167),hubot:(0,n.z)("hubot",60168),inbox:(0,n.z)("inbox",60169),issueReopened:(0,n.z)("issue-reopened",60171),issues:(0,n.z)("issues",60172),italic:(0,n.z)("italic",60173),jersey:(0,n.z)("jersey",60174),json:(0,n.z)("json",60175),kebabVertical:(0,n.z)("kebab-vertical",60176),key:(0,n.z)("key",60177),law:(0,n.z)("law",60178),lightbulbAutofix:(0,n.z)("lightbulb-autofix",60179),linkExternal:(0,n.z)("link-external",60180),link:(0,n.z)("link",60181),listOrdered:(0,n.z)("list-ordered",60182),listUnordered:(0,n.z)("list-unordered",60183),liveShare:(0,n.z)("live-share",60184),loading:(0,n.z)("loading",60185),location:(0,n.z)("location",60186),mailRead:(0,n.z)("mail-read",60187),mail:(0,n.z)("mail",60188),markdown:(0,n.z)("markdown",60189),megaphone:(0,n.z)("megaphone",60190),mention:(0,n.z)("mention",60191),milestone:(0,n.z)("milestone",60192),gitPullRequestMilestone:(0,n.z)("git-pull-request-milestone",60192),mortarBoard:(0,n.z)("mortar-board",60193),move:(0,n.z)("move",60194),multipleWindows:(0,n.z)("multiple-windows",60195),mute:(0,n.z)("mute",60196),noNewline:(0,n.z)("no-newline",60197),note:(0,n.z)("note",60198),octoface:(0,n.z)("octoface",60199),openPreview:(0,n.z)("open-preview",60200),package:(0,n.z)("package",60201),paintcan:(0,n.z)("paintcan",60202),pin:(0,n.z)("pin",60203),play:(0,n.z)("play",60204),run:(0,n.z)("run",60204),plug:(0,n.z)("plug",60205),preserveCase:(0,n.z)("preserve-case",60206),preview:(0,n.z)("preview",60207),project:(0,n.z)("project",60208),pulse:(0,n.z)("pulse",60209),question:(0,n.z)("question",60210),quote:(0,n.z)("quote",60211),radioTower:(0,n.z)("radio-tower",60212),reactions:(0,n.z)("reactions",60213),references:(0,n.z)("references",60214),refresh:(0,n.z)("refresh",60215),regex:(0,n.z)("regex",60216),remoteExplorer:(0,n.z)("remote-explorer",60217),remote:(0,n.z)("remote",60218),remove:(0,n.z)("remove",60219),replaceAll:(0,n.z)("replace-all",60220),replace:(0,n.z)("replace",60221),repoClone:(0,n.z)("repo-clone",60222),repoForcePush:(0,n.z)("repo-force-push",60223),repoPull:(0,n.z)("repo-pull",60224),repoPush:(0,n.z)("repo-push",60225),report:(0,n.z)("report",60226),requestChanges:(0,n.z)("request-changes",60227),rocket:(0,n.z)("rocket",60228),rootFolderOpened:(0,n.z)("root-folder-opened",60229),rootFolder:(0,n.z)("root-folder",60230),rss:(0,n.z)("rss",60231),ruby:(0,n.z)("ruby",60232),saveAll:(0,n.z)("save-all",60233),saveAs:(0,n.z)("save-as",60234),save:(0,n.z)("save",60235),screenFull:(0,n.z)("screen-full",60236),screenNormal:(0,n.z)("screen-normal",60237),searchStop:(0,n.z)("search-stop",60238),server:(0,n.z)("server",60240),settingsGear:(0,n.z)("settings-gear",60241),settings:(0,n.z)("settings",60242),shield:(0,n.z)("shield",60243),smiley:(0,n.z)("smiley",60244),sortPrecedence:(0,n.z)("sort-precedence",60245),splitHorizontal:(0,n.z)("split-horizontal",60246),splitVertical:(0,n.z)("split-vertical",60247),squirrel:(0,n.z)("squirrel",60248),starFull:(0,n.z)("star-full",60249),starHalf:(0,n.z)("star-half",60250),symbolClass:(0,n.z)("symbol-class",60251),symbolColor:(0,n.z)("symbol-color",60252),symbolConstant:(0,n.z)("symbol-constant",60253),symbolEnumMember:(0,n.z)("symbol-enum-member",60254),symbolField:(0,n.z)("symbol-field",60255),symbolFile:(0,n.z)("symbol-file",60256),symbolInterface:(0,n.z)("symbol-interface",60257),symbolKeyword:(0,n.z)("symbol-keyword",60258),symbolMisc:(0,n.z)("symbol-misc",60259),symbolOperator:(0,n.z)("symbol-operator",60260),symbolProperty:(0,n.z)("symbol-property",60261),wrench:(0,n.z)("wrench",60261),wrenchSubaction:(0,n.z)("wrench-subaction",60261),symbolSnippet:(0,n.z)("symbol-snippet",60262),tasklist:(0,n.z)("tasklist",60263),telescope:(0,n.z)("telescope",60264),textSize:(0,n.z)("text-size",60265),threeBars:(0,n.z)("three-bars",60266),thumbsdown:(0,n.z)("thumbsdown",60267),thumbsup:(0,n.z)("thumbsup",60268),tools:(0,n.z)("tools",60269),triangleDown:(0,n.z)("triangle-down",60270),triangleLeft:(0,n.z)("triangle-left",60271),triangleRight:(0,n.z)("triangle-right",60272),triangleUp:(0,n.z)("triangle-up",60273),twitter:(0,n.z)("twitter",60274),unfold:(0,n.z)("unfold",60275),unlock:(0,n.z)("unlock",60276),unmute:(0,n.z)("unmute",60277),unverified:(0,n.z)("unverified",60278),verified:(0,n.z)("verified",60279),versions:(0,n.z)("versions",60280),vmActive:(0,n.z)("vm-active",60281),vmOutline:(0,n.z)("vm-outline",60282),vmRunning:(0,n.z)("vm-running",60283),watch:(0,n.z)("watch",60284),whitespace:(0,n.z)("whitespace",60285),wholeWord:(0,n.z)("whole-word",60286),window:(0,n.z)("window",60287),wordWrap:(0,n.z)("word-wrap",60288),zoomIn:(0,n.z)("zoom-in",60289),zoomOut:(0,n.z)("zoom-out",60290),listFilter:(0,n.z)("list-filter",60291),listFlat:(0,n.z)("list-flat",60292),listSelection:(0,n.z)("list-selection",60293),selection:(0,n.z)("selection",60293),listTree:(0,n.z)("list-tree",60294),debugBreakpointFunctionUnverified:(0,n.z)("debug-breakpoint-function-unverified",60295),debugBreakpointFunction:(0,n.z)("debug-breakpoint-function",60296),debugBreakpointFunctionDisabled:(0,n.z)("debug-breakpoint-function-disabled",60296),debugStackframeActive:(0,n.z)("debug-stackframe-active",60297),circleSmallFilled:(0,n.z)("circle-small-filled",60298),debugStackframeDot:(0,n.z)("debug-stackframe-dot",60298),terminalDecorationMark:(0,n.z)("terminal-decoration-mark",60298),debugStackframe:(0,n.z)("debug-stackframe",60299),debugStackframeFocused:(0,n.z)("debug-stackframe-focused",60299),debugBreakpointUnsupported:(0,n.z)("debug-breakpoint-unsupported",60300),symbolString:(0,n.z)("symbol-string",60301),debugReverseContinue:(0,n.z)("debug-reverse-continue",60302),debugStepBack:(0,n.z)("debug-step-back",60303),debugRestartFrame:(0,n.z)("debug-restart-frame",60304),debugAlt:(0,n.z)("debug-alt",60305),callIncoming:(0,n.z)("call-incoming",60306),callOutgoing:(0,n.z)("call-outgoing",60307),menu:(0,n.z)("menu",60308),expandAll:(0,n.z)("expand-all",60309),feedback:(0,n.z)("feedback",60310),gitPullRequestReviewer:(0,n.z)("git-pull-request-reviewer",60310),groupByRefType:(0,n.z)("group-by-ref-type",60311),ungroupByRefType:(0,n.z)("ungroup-by-ref-type",60312),account:(0,n.z)("account",60313),gitPullRequestAssignee:(0,n.z)("git-pull-request-assignee",60313),bellDot:(0,n.z)("bell-dot",60314),debugConsole:(0,n.z)("debug-console",60315),library:(0,n.z)("library",60316),output:(0,n.z)("output",60317),runAll:(0,n.z)("run-all",60318),syncIgnored:(0,n.z)("sync-ignored",60319),pinned:(0,n.z)("pinned",60320),githubInverted:(0,n.z)("github-inverted",60321),serverProcess:(0,n.z)("server-process",60322),serverEnvironment:(0,n.z)("server-environment",60323),pass:(0,n.z)("pass",60324),issueClosed:(0,n.z)("issue-closed",60324),stopCircle:(0,n.z)("stop-circle",60325),playCircle:(0,n.z)("play-circle",60326),record:(0,n.z)("record",60327),debugAltSmall:(0,n.z)("debug-alt-small",60328),vmConnect:(0,n.z)("vm-connect",60329),cloud:(0,n.z)("cloud",60330),merge:(0,n.z)("merge",60331),export:(0,n.z)("export",60332),graphLeft:(0,n.z)("graph-left",60333),magnet:(0,n.z)("magnet",60334),notebook:(0,n.z)("notebook",60335),redo:(0,n.z)("redo",60336),checkAll:(0,n.z)("check-all",60337),pinnedDirty:(0,n.z)("pinned-dirty",60338),passFilled:(0,n.z)("pass-filled",60339),circleLargeFilled:(0,n.z)("circle-large-filled",60340),circleLarge:(0,n.z)("circle-large",60341),circleLargeOutline:(0,n.z)("circle-large-outline",60341),combine:(0,n.z)("combine",60342),gather:(0,n.z)("gather",60342),table:(0,n.z)("table",60343),variableGroup:(0,n.z)("variable-group",60344),typeHierarchy:(0,n.z)("type-hierarchy",60345),typeHierarchySub:(0,n.z)("type-hierarchy-sub",60346),typeHierarchySuper:(0,n.z)("type-hierarchy-super",60347),gitPullRequestCreate:(0,n.z)("git-pull-request-create",60348),runAbove:(0,n.z)("run-above",60349),runBelow:(0,n.z)("run-below",60350),notebookTemplate:(0,n.z)("notebook-template",60351),debugRerun:(0,n.z)("debug-rerun",60352),workspaceTrusted:(0,n.z)("workspace-trusted",60353),workspaceUntrusted:(0,n.z)("workspace-untrusted",60354),workspaceUnknown:(0,n.z)("workspace-unknown",60355),terminalCmd:(0,n.z)("terminal-cmd",60356),terminalDebian:(0,n.z)("terminal-debian",60357),terminalLinux:(0,n.z)("terminal-linux",60358),terminalPowershell:(0,n.z)("terminal-powershell",60359),terminalTmux:(0,n.z)("terminal-tmux",60360),terminalUbuntu:(0,n.z)("terminal-ubuntu",60361),terminalBash:(0,n.z)("terminal-bash",60362),arrowSwap:(0,n.z)("arrow-swap",60363),copy:(0,n.z)("copy",60364),personAdd:(0,n.z)("person-add",60365),filterFilled:(0,n.z)("filter-filled",60366),wand:(0,n.z)("wand",60367),debugLineByLine:(0,n.z)("debug-line-by-line",60368),inspect:(0,n.z)("inspect",60369),layers:(0,n.z)("layers",60370),layersDot:(0,n.z)("layers-dot",60371),layersActive:(0,n.z)("layers-active",60372),compass:(0,n.z)("compass",60373),compassDot:(0,n.z)("compass-dot",60374),compassActive:(0,n.z)("compass-active",60375),azure:(0,n.z)("azure",60376),issueDraft:(0,n.z)("issue-draft",60377),gitPullRequestClosed:(0,n.z)("git-pull-request-closed",60378),gitPullRequestDraft:(0,n.z)("git-pull-request-draft",60379),debugAll:(0,n.z)("debug-all",60380),debugCoverage:(0,n.z)("debug-coverage",60381),runErrors:(0,n.z)("run-errors",60382),folderLibrary:(0,n.z)("folder-library",60383),debugContinueSmall:(0,n.z)("debug-continue-small",60384),beakerStop:(0,n.z)("beaker-stop",60385),graphLine:(0,n.z)("graph-line",60386),graphScatter:(0,n.z)("graph-scatter",60387),pieChart:(0,n.z)("pie-chart",60388),bracket:(0,n.z)("bracket",60175),bracketDot:(0,n.z)("bracket-dot",60389),bracketError:(0,n.z)("bracket-error",60390),lockSmall:(0,n.z)("lock-small",60391),azureDevops:(0,n.z)("azure-devops",60392),verifiedFilled:(0,n.z)("verified-filled",60393),newline:(0,n.z)("newline",60394),layout:(0,n.z)("layout",60395),layoutActivitybarLeft:(0,n.z)("layout-activitybar-left",60396),layoutActivitybarRight:(0,n.z)("layout-activitybar-right",60397),layoutPanelLeft:(0,n.z)("layout-panel-left",60398),layoutPanelCenter:(0,n.z)("layout-panel-center",60399),layoutPanelJustify:(0,n.z)("layout-panel-justify",60400),layoutPanelRight:(0,n.z)("layout-panel-right",60401),layoutPanel:(0,n.z)("layout-panel",60402),layoutSidebarLeft:(0,n.z)("layout-sidebar-left",60403),layoutSidebarRight:(0,n.z)("layout-sidebar-right",60404),layoutStatusbar:(0,n.z)("layout-statusbar",60405),layoutMenubar:(0,n.z)("layout-menubar",60406),layoutCentered:(0,n.z)("layout-centered",60407),target:(0,n.z)("target",60408),indent:(0,n.z)("indent",60409),recordSmall:(0,n.z)("record-small",60410),errorSmall:(0,n.z)("error-small",60411),terminalDecorationError:(0,n.z)("terminal-decoration-error",60411),arrowCircleDown:(0,n.z)("arrow-circle-down",60412),arrowCircleLeft:(0,n.z)("arrow-circle-left",60413),arrowCircleRight:(0,n.z)("arrow-circle-right",60414),arrowCircleUp:(0,n.z)("arrow-circle-up",60415),layoutSidebarRightOff:(0,n.z)("layout-sidebar-right-off",60416),layoutPanelOff:(0,n.z)("layout-panel-off",60417),layoutSidebarLeftOff:(0,n.z)("layout-sidebar-left-off",60418),blank:(0,n.z)("blank",60419),heartFilled:(0,n.z)("heart-filled",60420),map:(0,n.z)("map",60421),mapHorizontal:(0,n.z)("map-horizontal",60421),foldHorizontal:(0,n.z)("fold-horizontal",60421),mapFilled:(0,n.z)("map-filled",60422),mapHorizontalFilled:(0,n.z)("map-horizontal-filled",60422),foldHorizontalFilled:(0,n.z)("fold-horizontal-filled",60422),circleSmall:(0,n.z)("circle-small",60423),bellSlash:(0,n.z)("bell-slash",60424),bellSlashDot:(0,n.z)("bell-slash-dot",60425),commentUnresolved:(0,n.z)("comment-unresolved",60426),gitPullRequestGoToChanges:(0,n.z)("git-pull-request-go-to-changes",60427),gitPullRequestNewChanges:(0,n.z)("git-pull-request-new-changes",60428),searchFuzzy:(0,n.z)("search-fuzzy",60429),commentDraft:(0,n.z)("comment-draft",60430),send:(0,n.z)("send",60431),sparkle:(0,n.z)("sparkle",60432),insert:(0,n.z)("insert",60433),mic:(0,n.z)("mic",60434),thumbsdownFilled:(0,n.z)("thumbsdown-filled",60435),thumbsupFilled:(0,n.z)("thumbsup-filled",60436),coffee:(0,n.z)("coffee",60437),snake:(0,n.z)("snake",60438),game:(0,n.z)("game",60439),vr:(0,n.z)("vr",60440),chip:(0,n.z)("chip",60441),piano:(0,n.z)("piano",60442),music:(0,n.z)("music",60443),micFilled:(0,n.z)("mic-filled",60444),repoFetch:(0,n.z)("repo-fetch",60445),copilot:(0,n.z)("copilot",60446),lightbulbSparkle:(0,n.z)("lightbulb-sparkle",60447),robot:(0,n.z)("robot",60448),sparkleFilled:(0,n.z)("sparkle-filled",60449),diffSingle:(0,n.z)("diff-single",60450),diffMultiple:(0,n.z)("diff-multiple",60451),surroundWith:(0,n.z)("surround-with",60452),share:(0,n.z)("share",60453),gitStash:(0,n.z)("git-stash",60454),gitStashApply:(0,n.z)("git-stash-apply",60455),gitStashPop:(0,n.z)("git-stash-pop",60456),vscode:(0,n.z)("vscode",60457),vscodeInsiders:(0,n.z)("vscode-insiders",60458),codeOss:(0,n.z)("code-oss",60459),runCoverage:(0,n.z)("run-coverage",60460),runAllCoverage:(0,n.z)("run-all-coverage",60461),coverage:(0,n.z)("coverage",60462),githubProject:(0,n.z)("github-project",60463),mapVertical:(0,n.z)("map-vertical",60464),foldVertical:(0,n.z)("fold-vertical",60464),mapVerticalFilled:(0,n.z)("map-vertical-filled",60465),foldVerticalFilled:(0,n.z)("fold-vertical-filled",60465)},...{dialogError:(0,n.z)("dialog-error","error"),dialogWarning:(0,n.z)("dialog-warning","warning"),dialogInfo:(0,n.z)("dialog-info","info"),dialogClose:(0,n.z)("dialog-close","close"),treeItemExpanded:(0,n.z)("tree-item-expanded","chevron-down"),treeFilterOnTypeOn:(0,n.z)("tree-filter-on-type-on","list-filter"),treeFilterOnTypeOff:(0,n.z)("tree-filter-on-type-off","list-selection"),treeFilterClear:(0,n.z)("tree-filter-clear","close"),treeItemLoading:(0,n.z)("tree-item-loading","loading"),menuSelection:(0,n.z)("menu-selection","check"),menuSubmenu:(0,n.z)("menu-submenu","chevron-right"),menuBarMore:(0,n.z)("menubar-more","more"),scrollbarButtonLeft:(0,n.z)("scrollbar-button-left","triangle-left"),scrollbarButtonRight:(0,n.z)("scrollbar-button-right","triangle-right"),scrollbarButtonUp:(0,n.z)("scrollbar-button-up","triangle-up"),scrollbarButtonDown:(0,n.z)("scrollbar-button-down","triangle-down"),toolBarMore:(0,n.z)("toolbar-more","more"),quickInputBack:(0,n.z)("quick-input-back","arrow-left"),dropDownButton:(0,n.z)("drop-down-button",60084),symbolCustomColor:(0,n.z)("symbol-customcolor",60252),exportIcon:(0,n.z)("export",60332),workspaceUnspecified:(0,n.z)("workspace-unspecified",60355),newLine:(0,n.z)("newline",60394),thumbsDownFilled:(0,n.z)("thumbsdown-filled",60435),thumbsUpFilled:(0,n.z)("thumbsup-filled",60436),gitFetch:(0,n.z)("git-fetch",60445),lightbulbSparkleAutofix:(0,n.z)("lightbulb-sparkle-autofix",60447),debugBreakpointPending:(0,n.z)("debug-breakpoint-pending",60377)}}},68406:(e,t,i)=>{i.d(t,{u:()=>r,z:()=>s});var n=i(63686);const o=Object.create(null);function s(e,t){if((0,n.HD)(t)){const i=o[t];if(void 0===i)throw new Error("".concat(e," references an unknown codicon: ").concat(t));t=i}return o[e]=t,{id:e}}function r(){return o}},99927:(e,t,i)=>{function n(e,t){const i=[],n=[];for(const o of e)t.has(o)||i.push(o);for(const o of t)e.has(o)||n.push(o);return{removed:i,added:n}}function o(e,t){const i=new Set;for(const n of t)e.has(n)&&i.add(n);return i}i.d(t,{j:()=>o,q:()=>n})},89652:(e,t,i)=>{function n(e,t){const i=Math.pow(10,t);return Math.round(e*i)/i}i.d(t,{Il:()=>a,Oz:()=>s,VS:()=>o,tx:()=>r});class o{constructor(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;this._rgbaBrand=void 0,this.r=0|Math.min(255,Math.max(0,e)),this.g=0|Math.min(255,Math.max(0,t)),this.b=0|Math.min(255,Math.max(0,i)),this.a=n(Math.max(Math.min(1,o),0),3)}static equals(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a}}class s{constructor(e,t,i,o){this._hslaBrand=void 0,this.h=0|Math.max(Math.min(360,e),0),this.s=n(Math.max(Math.min(1,t),0),3),this.l=n(Math.max(Math.min(1,i),0),3),this.a=n(Math.max(Math.min(1,o),0),3)}static equals(e,t){return e.h===t.h&&e.s===t.s&&e.l===t.l&&e.a===t.a}static fromRGBA(e){const t=e.r/255,i=e.g/255,n=e.b/255,o=e.a,r=Math.max(t,i,n),a=Math.min(t,i,n);let l=0,h=0;const d=(a+r)/2,c=r-a;if(c>0){switch(h=Math.min(d<=.5?c/(2*d):c/(2-2*d),1),r){case t:l=(i-n)/c+(i1&&(i-=1),i<1/6?e+6*(t-e)*i:i<.5?t:i<2/3?e+(t-e)*(2/3-i)*6:e}static toRGBA(e){const t=e.h/360,{s:i,l:n,a:r}=e;let a,l,h;if(0===i)a=l=h=n;else{const e=n<.5?n*(1+i):n+i-n*i,o=2*n-e;a=s._hue2rgb(o,e,t+1/3),l=s._hue2rgb(o,e,t),h=s._hue2rgb(o,e,t-1/3)}return new o(Math.round(255*a),Math.round(255*l),Math.round(255*h),r)}}class r{constructor(e,t,i,o){this._hsvaBrand=void 0,this.h=0|Math.max(Math.min(360,e),0),this.s=n(Math.max(Math.min(1,t),0),3),this.v=n(Math.max(Math.min(1,i),0),3),this.a=n(Math.max(Math.min(1,o),0),3)}static equals(e,t){return e.h===t.h&&e.s===t.s&&e.v===t.v&&e.a===t.a}static fromRGBA(e){const t=e.r/255,i=e.g/255,n=e.b/255,o=Math.max(t,i,n),s=o-Math.min(t,i,n),a=0===o?0:s/o;let l;return l=0===s?0:o===t?((i-n)/s%6+6)%6:o===i?(n-t)/s+2:(t-i)/s+4,new r(Math.round(60*l),a,o,e.a)}static toRGBA(e){const{h:t,s:i,v:n,a:s}=e,r=n*i,a=r*(1-Math.abs(t/60%2-1)),l=n-r;let[h,d,c]=[0,0,0];return t<60?(h=r,d=a):t<120?(h=a,d=r):t<180?(d=r,c=a):t<240?(d=a,c=r):t<300?(h=a,c=r):t<=360&&(h=r,c=a),h=Math.round(255*(h+l)),d=Math.round(255*(d+l)),c=Math.round(255*(c+l)),new o(h,d,c,s)}}class a{static fromHex(e){return a.Format.CSS.parseHex(e)||a.red}static equals(e,t){return!e&&!t||!(!e||!t)&&e.equals(t)}get hsla(){return this._hsla?this._hsla:s.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:r.fromRGBA(this.rgba)}constructor(e){if(!e)throw new Error("Color needs a value");if(e instanceof o)this.rgba=e;else if(e instanceof s)this._hsla=e,this.rgba=s.toRGBA(e);else{if(!(e instanceof r))throw new Error("Invalid color ctor argument");this._hsva=e,this.rgba=r.toRGBA(e)}}equals(e){return!!e&&o.equals(this.rgba,e.rgba)&&s.equals(this.hsla,e.hsla)&&r.equals(this.hsva,e.hsva)}getRelativeLuminance(){return n(.2126*a._relativeLuminanceForComponent(this.rgba.r)+.7152*a._relativeLuminanceForComponent(this.rgba.g)+.0722*a._relativeLuminanceForComponent(this.rgba.b),4)}static _relativeLuminanceForComponent(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}isLighter(){return(299*this.rgba.r+587*this.rgba.g+114*this.rgba.b)/1e3>=128}isLighterThan(e){return this.getRelativeLuminance()>e.getRelativeLuminance()}isDarkerThan(e){return this.getRelativeLuminance()1&&void 0!==arguments[1]&&arguments[1]&&1===t.rgba.a?e.Format.CSS.formatHex(t):"#".concat(i(t.rgba.r)).concat(i(t.rgba.g)).concat(i(t.rgba.b)).concat(i(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){const i=t.length;if(0===i)return null;if(35!==t.charCodeAt(0))return null;if(7===i){const i=16*n(t.charCodeAt(1))+n(t.charCodeAt(2)),s=16*n(t.charCodeAt(3))+n(t.charCodeAt(4)),r=16*n(t.charCodeAt(5))+n(t.charCodeAt(6));return new e(new o(i,s,r,1))}if(9===i){const i=16*n(t.charCodeAt(1))+n(t.charCodeAt(2)),s=16*n(t.charCodeAt(3))+n(t.charCodeAt(4)),r=16*n(t.charCodeAt(5))+n(t.charCodeAt(6)),a=16*n(t.charCodeAt(7))+n(t.charCodeAt(8));return new e(new o(i,s,r,a/255))}if(4===i){const i=n(t.charCodeAt(1)),s=n(t.charCodeAt(2)),r=n(t.charCodeAt(3));return new e(new o(16*i+i,16*s+s,16*r+r))}if(5===i){const i=n(t.charCodeAt(1)),s=n(t.charCodeAt(2)),r=n(t.charCodeAt(3)),a=n(t.charCodeAt(4));return new e(new o(16*i+i,16*s+s,16*r+r,(16*a+a)/255))}return null}}(i=t.CSS||(t.CSS={}))}(t=e.Format||(e.Format={}))}(a||(a={}))},30333:(e,t,i)=>{function n(e,t,i){let n=null,o=null;if("function"===typeof i.value?(n="value",o=i.value,0!==o.length&&console.warn("Memoize should only be used in functions with zero parameters")):"function"===typeof i.get&&(n="get",o=i.get),!o)throw new Error("not supported");const s="$memoize$".concat(t);i[n]=function(){if(!this.hasOwnProperty(s)){for(var e=arguments.length,t=new Array(e),i=0;in})},24323:(e,t,i)=>{i.d(t,{Hs:()=>d,a$:()=>r});class n{constructor(e,t,i,n){this.originalStart=e,this.originalLength=t,this.modifiedStart=i,this.modifiedLength=n}getOriginalEnd(){return this.originalStart+this.originalLength}getModifiedEnd(){return this.modifiedStart+this.modifiedLength}}var o=i(48367);class s{constructor(e){this.source=e}getElements(){const e=this.source,t=new Int32Array(e.length);for(let i=0,n=e.length;i0||this.m_modifiedCount>0)&&this.m_changes.push(new n(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}AddOriginalElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++}AddModifiedElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class d{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this.ContinueProcessingPredicate=i,this._originalSequence=e,this._modifiedSequence=t;const[n,o,s]=d._getElements(e),[r,a,l]=d._getElements(t);this._hasStrings=s&&l,this._originalStringElements=n,this._originalElementsOrHash=o,this._modifiedStringElements=r,this._modifiedElementsOrHash=a,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(e){return e.length>0&&"string"===typeof e[0]}static _getElements(e){const t=e.getElements();if(d._isStringArray(t)){const e=new Int32Array(t.length);for(let i=0,n=t.length;i=e&&o>=i&&this.ElementsAreEqual(t,o);)t--,o--;if(e>t||i>o){let s;return i<=o?(a.Assert(e===t+1,"originalStart should only be one more than originalEnd"),s=[new n(e,0,i,o-i+1)]):e<=t?(a.Assert(i===o+1,"modifiedStart should only be one more than modifiedEnd"),s=[new n(e,t-e+1,i,0)]):(a.Assert(e===t+1,"originalStart should only be one more than originalEnd"),a.Assert(i===o+1,"modifiedStart should only be one more than modifiedEnd"),s=[]),s}const r=[0],l=[0],h=this.ComputeRecursionPoint(e,t,i,o,r,l,s),d=r[0],c=l[0];if(null!==h)return h;if(!s[0]){const r=this.ComputeDiffRecursive(e,d,i,c,s);let a=[];return a=s[0]?[new n(d+1,t-(d+1)+1,c+1,o-(c+1)+1)]:this.ComputeDiffRecursive(d+1,t,c+1,o,s),this.ConcatenateChanges(r,a)}return[new n(e,t-e+1,i,o-i+1)]}WALKTRACE(e,t,i,o,s,r,a,l,d,c,u,g,m,f,p,_,v,b){let C=null,w=null,y=new h,S=t,L=i,k=m[0]-_[0]-o,D=-1073741824,N=this.m_forwardHistory.length-1;do{const t=k+e;t===S||t=0&&(e=(d=this.m_forwardHistory[N])[0],S=1,L=d.length-1)}while(--N>=-1);if(C=y.getReverseChanges(),b[0]){let e=m[0]+1,t=_[0]+1;if(null!==C&&C.length>0){const i=C[C.length-1];e=Math.max(e,i.getOriginalEnd()),t=Math.max(t,i.getModifiedEnd())}w=[new n(e,g-e+1,t,p-t+1)]}else{y=new h,S=r,L=a,k=m[0]-_[0]-l,D=1073741824,N=v?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const e=k+s;e===S||e=c[e+1]?(f=(u=c[e+1]-1)-k-l,u>D&&y.MarkNextChange(),D=u+1,y.AddOriginalElement(u+1,f+1),k=e+1-s):(f=(u=c[e-1])-k-l,u>D&&y.MarkNextChange(),D=u,y.AddModifiedElement(u+1,f+1),k=e-1-s),N>=0&&(s=(c=this.m_reverseHistory[N])[0],S=1,L=c.length-1)}while(--N>=-1);w=y.getChanges()}return this.ConcatenateChanges(C,w)}ComputeRecursionPoint(e,t,i,o,s,r,a){let h=0,d=0,c=0,u=0,g=0,m=0;e--,i--,s[0]=0,r[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const f=t-e+(o-i),p=f+1,_=new Int32Array(p),v=new Int32Array(p),b=o-i,C=t-e,w=e-i,y=t-o,S=(C-b)%2===0;_[b]=e,v[C]=t,a[0]=!1;for(let L=1;L<=f/2+1;L++){let f=0,k=0;c=this.ClipDiagonalBound(b-L,L,b,p),u=this.ClipDiagonalBound(b+L,L,b,p);for(let e=c;e<=u;e+=2){h=e===c||ef+k&&(f=h,k=d),!S&&Math.abs(e-C)<=L-1&&h>=v[e])return s[0]=h,r[0]=d,i<=v[e]&&L<=1448?this.WALKTRACE(b,c,u,w,C,g,m,y,_,v,h,t,s,d,o,r,S,a):null}const D=(f-e+(k-i)-L)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(f,D))return a[0]=!0,s[0]=f,r[0]=k,D>0&&L<=1448?this.WALKTRACE(b,c,u,w,C,g,m,y,_,v,h,t,s,d,o,r,S,a):(e++,i++,[new n(e,t-e+1,i,o-i+1)]);g=this.ClipDiagonalBound(C-L,L,C,p),m=this.ClipDiagonalBound(C+L,L,C,p);for(let n=g;n<=m;n+=2){h=n===g||n=v[n+1]?v[n+1]-1:v[n-1],d=h-(n-C)-y;const l=h;for(;h>e&&d>i&&this.ElementsAreEqual(h,d);)h--,d--;if(v[n]=h,S&&Math.abs(n-b)<=L&&h<=_[n])return s[0]=h,r[0]=d,l>=_[n]&&L<=1448?this.WALKTRACE(b,c,u,w,C,g,m,y,_,v,h,t,s,d,o,r,S,a):null}if(L<=1447){let e=new Int32Array(u-c+2);e[0]=b-c+1,l.Copy2(_,c,e,1,u-c+1),this.m_forwardHistory.push(e),e=new Int32Array(m-g+2),e[0]=C-g+1,l.Copy2(v,g,e,1,m-g+1),this.m_reverseHistory.push(e)}}return this.WALKTRACE(b,c,u,w,C,g,m,y,_,v,h,t,s,d,o,r,S,a)}PrettifyChanges(e){for(let t=0;t0,r=i.modifiedLength>0;for(;i.originalStart+i.originalLength=0;t--){const i=e[t];let n=0,o=0;if(t>0){const i=e[t-1];n=i.originalStart+i.originalLength,o=i.modifiedStart+i.modifiedLength}const s=i.originalLength>0,r=i.modifiedLength>0;let a=0,l=this._boundaryScore(i.originalStart,i.originalLength,i.modifiedStart,i.modifiedLength);for(let e=1;;e++){const t=i.originalStart-e,h=i.modifiedStart-e;if(tl&&(l=d,a=e)}i.originalStart-=a,i.modifiedStart-=a;const h=[null];t>0&&this.ChangesOverlap(e[t-1],e[t],h)&&(e[t-1]=h[0],e.splice(t,1),t++)}if(this._hasStrings)for(let t=1,i=e.length;t0&&t>a&&(a=t,l=d,h=e)}return a>0?[l,h]:null}_contiguousSequenceScore(e,t,i){let n=0;for(let o=0;o=this._originalElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._originalStringElements[e])}_OriginalRegionIsBoundary(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._OriginalIsBoundary(i-1)||this._OriginalIsBoundary(i))return!0}return!1}_ModifiedIsBoundary(e){return e<=0||e>=this._modifiedElementsOrHash.length-1||this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[e])}_ModifiedRegionIsBoundary(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._ModifiedIsBoundary(i-1)||this._ModifiedIsBoundary(i))return!0}return!1}_boundaryScore(e,t,i,n){return(this._OriginalRegionIsBoundary(e,t)?1:0)+(this._ModifiedRegionIsBoundary(i,n)?1:0)}ConcatenateChanges(e,t){const i=[];if(0===e.length||0===t.length)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],i)){const n=new Array(e.length+t.length-1);return l.Copy(e,0,n,0,e.length-1),n[e.length-1]=i[0],l.Copy(t,1,n,e.length,t.length-1),n}{const i=new Array(e.length+t.length);return l.Copy(e,0,i,0,e.length),l.Copy(t,0,i,e.length,t.length),i}}ChangesOverlap(e,t,i){if(a.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),a.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){const o=e.originalStart;let s=e.originalLength;const r=e.modifiedStart;let a=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(s=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(a=t.modifiedStart+t.modifiedLength-e.modifiedStart),i[0]=new n(o,s,r,a),!0}return i[0]=null,!1}ClipDiagonalBound(e,t,i,n){if(e>=0&&e{i.d(t,{B8:()=>g,Cp:()=>s,F0:()=>d,FU:()=>h,L6:()=>u,b1:()=>c,dL:()=>o,he:()=>f,n2:()=>l,ri:()=>r});const n=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout((()=>{if(e.stack){if(m.isErrorNoTelemetry(e))throw new m(e.message+"\n\n"+e.stack);throw new Error(e.message+"\n\n"+e.stack)}throw e}),0)}}emit(e){this.listeners.forEach((t=>{t(e)}))}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}};function o(e){l(e)||n.onUnexpectedError(e)}function s(e){l(e)||n.onUnexpectedExternalError(e)}function r(e){if(e instanceof Error){const{name:t,message:i}=e;return{$isError:!0,name:t,message:i,stack:e.stacktrace||e.stack,noTelemetry:m.isErrorNoTelemetry(e)}}return e}const a="Canceled";function l(e){return e instanceof h||e instanceof Error&&e.name===a&&e.message===a}class h extends Error{constructor(){super(a),this.name=this.message}}function d(){const e=new Error(a);return e.name=e.message,e}function c(e){return e?new Error("Illegal argument: ".concat(e)):new Error("Illegal argument")}function u(e){return e?new Error("Illegal state: ".concat(e)):new Error("Illegal state")}class g extends Error{constructor(e){super("NotSupported"),e&&(this.message=e)}}class m extends Error{constructor(e){super(e),this.name="CodeExpectedError"}static fromError(e){if(e instanceof m)return e;const t=new m;return t.message=e.message,t.stack=e.stack,t}static isErrorNoTelemetry(e){return"CodeExpectedError"===e.name}}class f extends Error{constructor(e){super(e||"An unexpected bug occurred."),Object.setPrototypeOf(this,f.prototype)}}},24219:(e,t,i)=>{i.d(t,{D0:()=>b,E7:()=>y,K3:()=>v,Q5:()=>f,SZ:()=>C,Sp:()=>p,ZD:()=>S,ju:()=>h,z5:()=>w});var n=i(85108),o=i(75937),s=i(89599),r=i(44713),a=i(6459);const l=!1;var h;!function(e){function t(e){if(l){const{onDidAddListener:t}=e,i=u.create();let n=0;e.onDidAddListener=()=>{2===++n&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),i.print()),null===t||void 0===t||t()}}}function i(e){return function(t){let i,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=!1;return i=e((e=>{if(!o)return i?i.dispose():o=!0,t.call(n,e)}),null,arguments.length>2?arguments[2]:void 0),o&&i.dispose(),i}}function n(e,t,i){return r((function(i){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return e((e=>i.call(n,t(e))),null,arguments.length>2?arguments[2]:void 0)}),i)}function o(e,t,i){return r((function(i){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return e((e=>t(e)&&i.call(n,e)),null,arguments.length>2?arguments[2]:void 0)}),i)}function r(e,i){let n;const o={onWillAddFirstListener(){n=e(s.fire,s)},onDidRemoveLastListener(){null===n||void 0===n||n.dispose()}};i||t(o);const s=new f(o);return null===i||void 0===i||i.add(s),s.event}function a(e,i){let n,o,s,r,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:100,l=arguments.length>3&&void 0!==arguments[3]&&arguments[3],h=arguments.length>4&&void 0!==arguments[4]&&arguments[4],d=arguments.length>6?arguments[6]:void 0,c=0;const u={leakWarningThreshold:arguments.length>5?arguments[5]:void 0,onWillAddFirstListener(){n=e((e=>{c++,o=i(o,e),l&&!s&&(g.fire(o),o=void 0),r=()=>{const e=o;o=void 0,s=void 0,(!l||c>1)&&g.fire(e),c=0},"number"===typeof a?(clearTimeout(s),s=setTimeout(r,a)):void 0===s&&(s=0,queueMicrotask(r))}))},onWillRemoveListener(){h&&c>0&&(null===r||void 0===r||r())},onDidRemoveLastListener(){r=void 0,n.dispose()}};d||t(u);const g=new f(u);return null===d||void 0===d||d.add(g),g.event}e.None=()=>s.JT.None,e.defer=function(e,t){return a(e,(()=>{}),0,void 0,!0,void 0,t)},e.once=i,e.map=n,e.forEach=function(e,t,i){return r((function(i){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return e((e=>{t(e),i.call(n,e)}),null,arguments.length>2?arguments[2]:void 0)}),i)},e.filter=o,e.signal=function(e){return e},e.any=function(){for(var e=arguments.length,t=new Array(e),i=0;i1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0;return function(e,t){t instanceof Array?t.push(e):t&&t.add(e);return e}((0,s.F8)(...t.map((t=>t((t=>e.call(i,t)))))),n)}},e.reduce=function(e,t,i,o){let s=i;return n(e,(e=>(s=t(s,e),s)),o)},e.debounce=a,e.accumulate=function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2?arguments[2]:void 0;return e.debounce(t,((e,t)=>e?(e.push(t),e):[t]),i,void 0,!0,void 0,n)},e.latch=function(e){let t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e,t)=>e===t,n=!0;return o(e,(e=>{const o=n||!i(e,t);return n=!1,t=e,o}),arguments.length>2?arguments[2]:void 0)},e.split=function(t,i,n){return[e.filter(t,i,n),e.filter(t,(e=>!i(e)),n)]},e.buffer=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>3?arguments[3]:void 0,n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]).slice(),o=e((e=>{n?n.push(e):r.fire(e)}));i&&i.add(o);const s=()=>{null===n||void 0===n||n.forEach((e=>r.fire(e))),n=null},r=new f({onWillAddFirstListener(){o||(o=e((e=>r.fire(e))),i&&i.add(o))},onDidAddFirstListener(){n&&(t?setTimeout(s):s())},onDidRemoveLastListener(){o&&o.dispose(),o=null}});return i&&i.add(r),r.event},e.chain=function(e,t){return(i,n,o)=>{const s=t(new d);return e((function(e){const t=s.evaluate(e);t!==h&&i.call(n,t)}),void 0,o)}};const h=Symbol("HaltChainable");class d{constructor(){this.steps=[]}map(e){return this.steps.push(e),this}forEach(e){return this.steps.push((t=>(e(t),t))),this}filter(e){return this.steps.push((t=>e(t)?t:h)),this}reduce(e,t){let i=t;return this.steps.push((t=>(i=e(i,t),i))),this}latch(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(e,t)=>e===t,i=!0;return this.steps.push((n=>{const o=i||!t(n,e);return i=!1,e=n,o?n:h})),this}evaluate(e){for(const t of this.steps)if((e=t(e))===h)break;return e}}e.fromNodeEventEmitter=function(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e=>e;const n=function(){return o.fire(i(...arguments))},o=new f({onWillAddFirstListener:()=>e.on(t,n),onDidRemoveLastListener:()=>e.removeListener(t,n)});return o.event},e.fromDOMEventEmitter=function(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e=>e;const n=function(){return o.fire(i(...arguments))},o=new f({onWillAddFirstListener:()=>e.addEventListener(t,n),onDidRemoveLastListener:()=>e.removeEventListener(t,n)});return o.event},e.toPromise=function(e){return new Promise((t=>i(e)(t)))},e.fromPromise=function(e){const t=new f;return e.then((e=>{t.fire(e)}),(()=>{t.fire(void 0)})).finally((()=>{t.dispose()})),t.event},e.runAndSubscribe=function(e,t,i){return t(i),e((e=>t(e)))};class c{constructor(e,i){this._observable=e,this._counter=0,this._hasChanged=!1;const n={onWillAddFirstListener:()=>{e.addObserver(this)},onDidRemoveLastListener:()=>{e.removeObserver(this)}};i||t(n),this.emitter=new f(n),i&&i.add(this.emitter)}beginUpdate(e){this._counter++}handlePossibleChange(e){}handleChange(e,t){this._hasChanged=!0}endUpdate(e){this._counter--,0===this._counter&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}e.fromObservable=function(e,t){return new c(e,t).emitter.event},e.fromObservableLight=function(e){return(t,i,n)=>{let o=0,r=!1;const a={beginUpdate(){o++},endUpdate(){o--,0===o&&(e.reportChanges(),r&&(r=!1,t.call(i)))},handlePossibleChange(){},handleChange(){r=!0}};e.addObserver(a),e.reportChanges();const l={dispose(){e.removeObserver(a)}};return n instanceof s.SL?n.add(l):Array.isArray(n)&&n.push(l),l}}}(h||(h={}));class d{constructor(e){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name="".concat(e,"_").concat(d._idPool++),d.all.add(this)}start(e){this._stopWatch=new a.G,this.listenerCount=e}stop(){if(this._stopWatch){const e=this._stopWatch.elapsed();this.durations.push(e),this.elapsedOverall+=e,this.invocationCount+=1,this._stopWatch=void 0}}}d.all=new Set,d._idPool=0;class c{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Math.random().toString(18).slice(2,5);this.threshold=e,this.name=t,this._warnCountdown=0}dispose(){var e;null===(e=this._stacks)||void 0===e||e.clear()}check(e,t){const i=this.threshold;if(i<=0||t{const t=this._stacks.get(e.value)||0;this._stacks.set(e.value,t-1)}}}class u{static create(){var e;return new u(null!==(e=(new Error).stack)&&void 0!==e?e:"")}constructor(e){this.value=e}print(){console.warn(this.value.split("\n").slice(2).join("\n"))}}class g{constructor(e){this.value=e}}const m=void 0;class f{constructor(e){var t,i,n,o,s;this._size=0,this._options=e,this._leakageMon=(null===(t=this._options)||void 0===t?void 0:t.leakWarningThreshold)?new c(null!==(n=null===(i=this._options)||void 0===i?void 0:i.leakWarningThreshold)&&void 0!==n?n:-1):void 0,this._perfMon=(null===(o=this._options)||void 0===o?void 0:o._profName)?new d(this._options._profName):void 0,this._deliveryQueue=null===(s=this._options)||void 0===s?void 0:s.deliveryQueue}dispose(){var e,t,i,n;this._disposed||(this._disposed=!0,(null===(e=this._deliveryQueue)||void 0===e?void 0:e.current)===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),null===(i=null===(t=this._options)||void 0===t?void 0:t.onDidRemoveLastListener)||void 0===i||i.call(t),null===(n=this._leakageMon)||void 0===n||n.dispose())}get event(){var e;return null!==(e=this._event)&&void 0!==e||(this._event=(e,t,i)=>{var n,o,r,a,l;if(this._leakageMon&&this._size>3*this._leakageMon.threshold)return console.warn("[".concat(this._leakageMon.name,"] REFUSES to accept new listeners because it exceeded its threshold by far")),s.JT.None;if(this._disposed)return s.JT.None;t&&(e=e.bind(t));const h=new g(e);let d;this._leakageMon&&this._size>=Math.ceil(.2*this._leakageMon.threshold)&&(h.stack=u.create(),d=this._leakageMon.check(h.stack,this._size+1)),this._listeners?this._listeners instanceof g?(null!==(l=this._deliveryQueue)&&void 0!==l||(this._deliveryQueue=new _),this._listeners=[this._listeners,h]):this._listeners.push(h):(null===(o=null===(n=this._options)||void 0===n?void 0:n.onWillAddFirstListener)||void 0===o||o.call(n,this),this._listeners=h,null===(a=null===(r=this._options)||void 0===r?void 0:r.onDidAddFirstListener)||void 0===a||a.call(r,this)),this._size++;const c=(0,s.OF)((()=>{null===m||void 0===m||m.unregister(c),null===d||void 0===d||d(),this._removeListener(h)}));if(i instanceof s.SL?i.add(c):Array.isArray(i)&&i.push(c),m){const e=(new Error).stack.split("\n").slice(2).join("\n").trim();m.register(c,e,c)}return c}),this._event}_removeListener(e){var t,i,n,o;if(null===(i=null===(t=this._options)||void 0===t?void 0:t.onWillRemoveListener)||void 0===i||i.call(t,this),!this._listeners)return;if(1===this._size)return this._listeners=void 0,null===(o=null===(n=this._options)||void 0===n?void 0:n.onDidRemoveLastListener)||void 0===o||o.call(n,this),void(this._size=0);const s=this._listeners,r=s.indexOf(e);if(-1===r)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,s[r]=void 0;const a=this._deliveryQueue.current===this;if(2*this._size<=s.length){let e=0;for(let t=0;t0}}const p=()=>new _;class _{constructor(){this.i=-1,this.end=0}enqueue(e,t,i){this.i=0,this.end=i,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class v extends f{constructor(e){super(e),this._isPaused=0,this._eventQueue=new r.S,this._mergeFn=null===e||void 0===e?void 0:e.merge}pause(){this._isPaused++}resume(){if(0!==this._isPaused&&0===--this._isPaused)if(this._mergeFn){if(this._eventQueue.size>0){const e=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(e))}}else for(;!this._isPaused&&0!==this._eventQueue.size;)super.fire(this._eventQueue.shift())}fire(e){this._size&&(0!==this._isPaused?this._eventQueue.push(e):super.fire(e))}}class b extends v{constructor(e){var t;super(e),this._delay=null!==(t=e.delay)&&void 0!==t?t:100}fire(e){this._handle||(this.pause(),this._handle=setTimeout((()=>{this._handle=void 0,this.resume()}),this._delay)),super.fire(e)}}class C extends f{constructor(e){super(e),this._queuedEvents=[],this._mergeFn=null===e||void 0===e?void 0:e.merge}fire(e){this.hasListeners()&&(this._queuedEvents.push(e),1===this._queuedEvents.length&&queueMicrotask((()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach((e=>super.fire(e))),this._queuedEvents=[]})))}}class w{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new f({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(e){const t={event:e,listener:null};this.events.push(t),this.hasListeners&&this.hook(t);return(0,s.OF)((0,o.M)((()=>{this.hasListeners&&this.unhook(t);const e=this.events.indexOf(t);this.events.splice(e,1)})))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach((e=>this.hook(e)))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach((e=>this.unhook(e)))}hook(e){e.listener=e.event((e=>this.emitter.fire(e)))}unhook(e){var t;null===(t=e.listener)||void 0===t||t.dispose(),e.listener=null}dispose(){var e;this.emitter.dispose();for(const t of this.events)null===(e=t.listener)||void 0===e||e.dispose();this.events=[]}}class y{constructor(){this.buffers=[]}wrapEvent(e){return(t,i,n)=>e((e=>{const n=this.buffers[this.buffers.length-1];n?n.push((()=>t.call(i,e))):t.call(i,e)}),void 0,n)}bufferEvents(e){const t=[];this.buffers.push(t);const i=e();return this.buffers.pop(),t.forEach((e=>e())),i}}class S{constructor(){this.listening=!1,this.inputEvent=h.None,this.inputEventListener=s.JT.None,this.emitter=new f({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}},9861:(e,t,i)=>{i.d(t,{KM:()=>d,ej:()=>a,fn:()=>l,oP:()=>u,yj:()=>h});var n=i(51169),o=i(21511),s=i(25085);function r(e){return 47===e||92===e}function a(e){return e.replace(/[\\/]/g,n.KR.sep)}function l(e){return-1===e.indexOf("/")&&(e=a(e)),/^[a-zA-Z]:(\/|$)/.test(e)&&(e="/"+e),e}function h(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.KR.sep;if(!e)return"";const i=e.length,o=e.charCodeAt(0);if(r(o)){if(r(e.charCodeAt(1))&&!r(e.charCodeAt(2))){let n=3;const o=n;for(;n3&&void 0!==arguments[3]?arguments[3]:n.ir;if(e===t)return!0;if(!e||!t)return!1;if(t.length>e.length)return!1;if(i){if(!(0,s.ok)(e,t))return!1;if(t.length===e.length)return!0;let i=t.length;return t.charAt(t.length-1)===o&&i--,e.charAt(i)===o}return t.charAt(t.length-1)!==o&&(t+=o),0===e.indexOf(t)}function c(e){return e>=65&&e<=90||e>=97&&e<=122}function u(e){return!!(arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.ED)&&(c(e.charCodeAt(0))&&58===e.charCodeAt(1))}},66835:(e,t,i)=>{i.d(t,{CL:()=>ie,mX:()=>ne,jB:()=>W,mB:()=>H,EW:()=>oe,l7:()=>re,ir:()=>p,Oh:()=>z,XU:()=>V,Ji:()=>m,Sy:()=>_,KZ:()=>A,or:()=>g});var n=i(65549);function o(e){const t=function(e){if(s=0,a(e,l,4352),s>0)return r.subarray(0,s);if(a(e,h,4449),s>0)return r.subarray(0,s);if(a(e,d,4520),s>0)return r.subarray(0,s);if(a(e,c,12593),s)return r.subarray(0,s);if(e>=44032&&e<=55203){const t=e-44032,i=t%588,n=Math.floor(t/588),o=Math.floor(i/28),u=i%28-1;if(n=0&&(u0)return r.subarray(0,s)}return}(e);if(t&&t.length>0)return new Uint32Array(t)}let s=0;const r=new Uint32Array(10);function a(e,t,i){e>=i&&e>8&&(r[s++]=e>>8&255);e>>16&&(r[s++]=e>>16&255)}(t[e-i])}const l=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),h=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),d=new Uint16Array([114,82,29810,115,30579,26483,101,102,29286,24934,29030,29798,30822,30310,26470,97,113,29809,116,84,100,119,99,122,120,118,103]),c=new Uint16Array([114,82,29810,115,30579,26483,101,69,102,29286,24934,29030,29798,30822,30310,26470,97,113,81,29809,116,84,100,119,87,99,122,120,118,103,107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]);var u=i(25085);function g(){for(var e=arguments.length,t=new Array(e),i=0;i0?[{start:0,end:t.length}]:[]:null}function p(e,t){const i=t.toLowerCase().indexOf(e.toLowerCase());return-1===i?null:[{start:i,end:i+e.length}]}function _(e,t){return v(e.toLowerCase(),t.toLowerCase(),0,0)}function v(e,t,i,n){if(i===e.length)return[];if(n===t.length)return null;if(e[i]===t[n]){let o=null;return(o=v(e,t,i+1,n+1))?E({start:n,end:n+1},o):null}return v(e,t,i,n+1)}function b(e){return 97<=e&&e<=122}function C(e){return 65<=e&&e<=90}function w(e){return 48<=e&&e<=57}function y(e){return 32===e||9===e||10===e||13===e}const S=new Set;function L(e){return y(e)||S.has(e)}function k(e,t){return e===t||L(e)&&L(t)}"()[]{}<>`'\"-/;:,.?!".split("").forEach((e=>S.add(e.charCodeAt(0))));const D=new Map;function N(e){if(D.has(e))return D.get(e);let t;const i=o(e);return i&&(t=i),D.set(e,t),t}function x(e){return b(e)||C(e)||w(e)}function E(e,t){return 0===t.length?t=[e]:e.end===t[0].start?t[0].start=e.start:t.unshift(e),t}function I(e,t){for(let i=t;i0&&!x(e.charCodeAt(i-1)))return i}return e.length}function T(e,t,i,n){if(i===e.length)return[];if(n===t.length)return null;if(e[i]!==t[n].toLowerCase())return null;{let o=null,s=n+1;for(o=T(e,t,i+1,n+1);!o&&(s=I(t,s))60&&(t=t.substring(0,60));const i=function(e){let t=0,i=0,n=0,o=0,s=0;for(let r=0;r.2&&t<.8&&n>.6&&o<.2}(i)){if(!function(e){const{upperPercent:t,lowerPercent:i}=e;return 0===i&&t>.6}(i))return null;t=t.toLowerCase()}let n=null,o=0;for(e=e.toLowerCase();o2&&void 0!==arguments[2]&&arguments[2];if(!t||0===t.length)return null;let n=null,o=0;for(e=e.toLowerCase(),t=t.toLowerCase();o0&&L(e.charCodeAt(i-1)))return i;return e.length}const P=g(m,M,p),F=g(m,M,_),B=new n.z6(1e4);function z(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"!==typeof e||"string"!==typeof t)return null;let n=B.get(e);n||(n=new RegExp(u.un(e),"i"),B.set(e,n));const o=n.exec(t);return o?[{start:o.index,end:o.index+o[0].length}]:i?F(e,t):P(e,t)}function V(e,t){const i=oe(e,e.toLowerCase(),0,t,t.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return i?H(i):null}function W(e,t,i,n,o,s){const r=Math.min(13,e.length);for(;i1;n--){const o=e[n]+i,s=t[t.length-1];s&&s.end===o?s.end=o+1:t.push({start:o,end:o+1})}return t}const K=128;function U(){const e=[],t=[];for(let i=0;i<=K;i++)t[i]=0;for(let i=0;i<=K;i++)e.push(t.slice(0));return e}function j(e){const t=[];for(let i=0;i<=e;i++)t[i]=0;return t}const q=j(2*K),G=j(2*K),Q=U(),Z=U(),Y=U(),$=!1;function J(e,t,i,n,o){function s(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:" ";for(;e.lengths(e,3))).join("|"),"\n");for(let a=0;a<=i;a++)r+=0===a?" |":"".concat(t[a-1],"|"),r+=e[a].slice(0,o+1).map((e=>s(e.toString(),3))).join("|")+"\n";return r}function X(e,t){if(t<0||t>=e.length)return!1;const i=e.codePointAt(t);switch(i){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:case 60:case 62:case 40:case 41:case 91:case 93:case 123:case 125:return!0;case void 0:return!1;default:return!!u.C8(i)}}function ee(e,t){if(t<0||t>=e.length)return!1;switch(e.charCodeAt(t)){case 32:case 9:return!0;default:return!1}}function te(e,t,i){return t[e]!==i[e]}var ie;!function(e){e.Default=[-100,0],e.isDefault=function(e){return!e||2===e.length&&-100===e[0]&&0===e[1]}}(ie||(ie={}));class ne{constructor(e,t){this.firstMatchCanBeWeak=e,this.boostFullMatch=t}}function oe(e,t,i,n,o,s){let r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:ne.default;const a=e.length>K?K:e.length,l=n.length>K?K:n.length;if(i>=a||s>=l||a-i>l-s)return;if(!function(e,t,i,n,o,s){let r=arguments.length>6&&void 0!==arguments[6]&&arguments[6];for(;t=i&&a>=n;)o[r]===s[a]&&(G[r]=a,r--),a--}(a,l,i,s,t,o);let h=1,d=1,c=i,u=s;const g=[!1];for(h=1,c=i;cr,v=_?Z[h][d-1]+(Q[h][d-1]>0?-5:0):0,b=u>r+1&&Q[h][d-1]>0,C=b?Z[h][d-2]+(Q[h][d-2]>0?-5:0):0;if(b&&(!_||C>=v)&&(!f||C>=p))Z[h][d]=C,Y[h][d]=3,Q[h][d]=0;else if(_&&(!f||v>=p))Z[h][d]=v,Y[h][d]=2,Q[h][d]=0;else{if(!f)throw new Error("not possible");Z[h][d]=p,Y[h][d]=1,Q[h][d]=Q[h-1][d-1]+1}}}if($&&function(e,t,i,n){e=e.substr(t),i=i.substr(n),console.log(J(Z,e,e.length,i,i.length)),console.log(J(Y,e,e.length,i,i.length)),console.log(J(Q,e,e.length,i,i.length))}(e,i,n,s),!g[0]&&!r.firstMatchCanBeWeak)return;h--,d--;const m=[Z[h][d],s];let f=0,p=0;for(;h>=1;){let e=d;do{const t=Y[h][e];if(3===t)e-=2;else{if(2!==t)break;e-=1}}while(e>=1);f>1&&t[i+h-1]===o[s+d-1]&&!te(e+s-1,n,o)&&f+1>Q[h][e]&&(e=d),e===d?f++:f=1,p||(p=e),h--,d=e-1,m.push(d)}l===a&&r.boostFullMatch&&(m[0]+=2);const _=p-a;return m[0]-=_,m}function se(e,t,i,n,o,s,r,a,l,h,d){if(t[i]!==s[r])return Number.MIN_SAFE_INTEGER;let c=1,u=!1;return r===i-n?c=e[i]===o[r]?7:5:!te(r,o,s)||0!==r&&te(r-1,o,s)?!X(s,r)||0!==r&&X(s,r-1)?(X(s,r-1)||ee(s,r-1))&&(c=5,u=!0):c=5:(c=e[i]===o[r]?7:5,u=!0),c>1&&i===n&&(d[0]=!0),u||(u=te(r,o,s)||X(s,r-1)||ee(s,r-1)),i===n?r>l&&(c-=u?3:5):c+=h?u?2:0:u?0:1,r+1===a&&(c-=u?3:5),c}function re(e,t,i,n,o,s,r){return function(e,t,i,n,o,s,r,a){let l=oe(e,t,i,n,o,s,a);if(l&&!r)return l;if(e.length>=3){const t=Math.min(7,e.length-1);for(let r=i+1;rl[0])&&(l=e))}}}return l}(e,t,i,n,o,s,!0,r)}function ae(e,t){if(t+1>=e.length)return;const i=e[t],n=e[t+1];return i!==n?e.slice(0,t)+n+i+e.slice(t+2):void 0}ne.default={boostFullMatch:!0,firstMatchCanBeWeak:!1}},75937:(e,t,i)=>{function n(e,t){const i=this;let n,o=!1;return function(){if(o)return n;if(o=!0,t)try{n=e.apply(i,arguments)}finally{t()}else n=e.apply(i,arguments);return n}}i.d(t,{M:()=>n})},52223:(e,t,i)=>{i.d(t,{EQ:()=>I,Qc:()=>T});var n=i(60282),o=i(9861),s=i(65549),r=i(51169),a=i(21511),l=i(25085);const h="**",d="/",c="[/\\\\]",u="[^/\\\\]",g=/\//g;function m(e,t){switch(e){case 0:return"";case 1:return"".concat(u,"*?");default:return"(?:".concat(c,"|").concat(u,"+").concat(c).concat(t?"|".concat(c).concat(u,"+"):"",")*?")}}function f(e,t){if(!e)return[];const i=[];let n=!1,o=!1,s="";for(const r of e){switch(r){case t:if(!n&&!o){i.push(s),s="";continue}break;case"{":n=!0;break;case"}":n=!1;break;case"[":o=!0;break;case"]":o=!1}s+=r}return s&&i.push(s),i}function p(e){if(!e)return"";let t="";const i=f(e,d);if(i.every((e=>e===h)))t=".*";else{let e=!1;i.forEach(((n,o)=>{if(n===h){if(e)return;t+=m(2,o===i.length-1)}else{let e=!1,s="",r=!1,a="";for(const i of n)if("}"!==i&&e)s+=i;else if(!r||"]"===i&&a)switch(i){case"{":e=!0;continue;case"[":r=!0;continue;case"}":{const i=f(s,","),n="(?:".concat(i.map((e=>p(e))).join("|"),")");t+=n,e=!1,s="";break}case"]":t+="["+a+"]",r=!1,a="";break;case"?":t+=u;continue;case"*":t+=m(1);continue;default:t+=(0,l.ec)(i)}else{let e;e="-"===i?i:"^"!==i&&"!"!==i||a?i===d?"":(0,l.ec)(i):"^",a+=e}oD(e,t))).filter((e=>e!==k)),e),n=i.length;if(!n)return k;if(1===n)return i[0];const o=function(t,n){for(let o=0,s=i.length;o!!e.allBasenames));s&&(o.allBasenames=s.allBasenames);const r=i.reduce(((e,t)=>t.allPaths?e.concat(t.allPaths):e),[]);r.length&&(o.allPaths=r);return o}(i,t):(o=w.exec(x(i,t)))?E(o[1].substr(1),i,!0):(o=y.exec(x(i,t)))?E(o[1],i,!1):function(e){try{const t=new RegExp("^".concat(p(e),"$"));return function(i){return t.lastIndex=0,"string"===typeof i&&t.test(i)?e:null}}catch(t){return k}}(i),S.set(n,s)),N(s,e)}function N(e,t){if("string"===typeof t)return e;const i=function(i,n){return(0,o.KM)(i,t.base,!a.IJ)?e((0,l.j3)(i.substr(t.base.length),r.ir),n):null};return i.allBasenames=e.allBasenames,i.allPaths=e.allPaths,i.basenames=e.basenames,i.patterns=e.patterns,i}function x(e,t){return t.trimForExclusions&&e.endsWith("/**")?e.substr(0,e.length-2):e}function E(e,t,i){const n=r.ir===r.KR.sep,o=n?e:e.replace(g,r.ir),s=r.ir+o,a=r.KR.sep+e;let l;return l=i?function(i,r){return"string"!==typeof i||i!==o&&!i.endsWith(s)&&(n||i!==e&&!i.endsWith(a))?null:t}:function(i,s){return"string"!==typeof i||i!==o&&(n||i!==e)?null:t},l.allPaths=[(i?"*/":"./")+e],l}function I(e,t,i){return!(!e||"string"!==typeof t)&&T(e)(t,void 0,i)}function T(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return L;if("string"===typeof e||function(e){const t=e;if(!t)return!1;return"string"===typeof t.base&&"string"===typeof t.pattern}(e)){const i=D(e,t);if(i===k)return L;const n=function(e,t){return!!i(e,t)};return i.allBasenames&&(n.allBasenames=i.allBasenames),i.allPaths&&(n.allPaths=i.allPaths),n}return function(e,t){const i=M(Object.getOwnPropertyNames(e).map((i=>function(e,t,i){if(!1===t)return k;const o=D(e,i);if(o===k)return k;if("boolean"===typeof t)return o;if(t){const i=t.when;if("string"===typeof i){const t=(t,s,r,a)=>{if(!a||!o(t,s))return null;const l=a(i.replace("$(basename)",(()=>r)));return(0,n.J8)(l)?l.then((t=>t?e:null)):l?e:null};return t.requiresSiblings=!0,t}}return o}(i,e[i],t))).filter((e=>e!==k))),o=i.length;if(!o)return k;if(!i.some((e=>!!e.requiresSiblings))){if(1===o)return i[0];const e=function(e,t){let o;for(let s=0,r=i.length;s{for(const e of o){const t=await e;if("string"===typeof t)return t}return null})():null},t=i.find((e=>!!e.allBasenames));t&&(e.allBasenames=t.allBasenames);const s=i.reduce(((e,t)=>t.allPaths?e.concat(t.allPaths):e),[]);return s.length&&(e.allPaths=s),e}const s=function(e,t,o){let s,a;for(let l=0,h=i.length;l{for(const e of a){const t=await e;if("string"===typeof t)return t}return null})():null},a=i.find((e=>!!e.allBasenames));a&&(s.allBasenames=a.allBasenames);const l=i.reduce(((e,t)=>t.allPaths?e.concat(t.allPaths):e),[]);l.length&&(s.allPaths=l);return s}(e,t)}function M(e,t){const i=e.filter((e=>!!e.basenames));if(i.length<2)return e;const n=i.reduce(((e,t)=>{const i=t.basenames;return i?e.concat(i):e}),[]);let o;if(t){o=[];for(let e=0,i=n.length;e{const i=t.patterns;return i?e.concat(i):e}),[]);const s=function(e,t){if("string"!==typeof e)return null;if(!t){let i;for(i=e.length;i>0;i--){const t=e.charCodeAt(i-1);if(47===t||92===t)break}t=e.substr(i)}const i=n.indexOf(t);return-1!==i?o[i]:null};s.basenames=n,s.patterns=o,s.allBasenames=n;const r=e.filter((e=>!e.basenames));return r.push(s),r}},48367:(e,t,i)=>{i.d(t,{Cv:()=>a,SP:()=>s,vp:()=>o,yP:()=>c});var n=i(25085);function o(e){return s(e,0)}function s(e,t){switch(typeof e){case"object":return null===e?r(349,t):Array.isArray(e)?(i=e,n=r(104579,n=t),i.reduce(((e,t)=>s(t,e)),n)):function(e,t){return t=r(181387,t),Object.keys(e).sort().reduce(((t,i)=>(t=a(i,t),s(e[i],t))),t)}(e,t);case"string":return a(e,t);case"boolean":return function(e,t){return r(e?433:863,t)}(e,t);case"number":return r(e,t);case"undefined":return r(937,t);default:return r(617,t)}var i,n}function r(e,t){return(t<<5)-t+e|0}function a(e,t){t=r(149417,t);for(let i=0,n=e.length;i2&&void 0!==arguments[2]?arguments[2]:32)-t;return(e<>>i)>>>0}function h(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.byteLength,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;for(let o=0;o1&&void 0!==arguments[1]?arguments[1]:32;return e instanceof ArrayBuffer?Array.from(new Uint8Array(e)).map((e=>e.toString(16).padStart(2,"0"))).join(""):function(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"0";for(;e.length>>0).toString(16),t/4)}class c{constructor(){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}update(e){const t=e.length;if(0===t)return;const i=this._buff;let o,s,r=this._buffLen,a=this._leftoverHighSurrogate;for(0!==a?(o=a,s=-1,a=0):(o=e.charCodeAt(0),s=0);;){let l=o;if(n.ZG(o)){if(!(s+1>>6,e[t++]=128|(63&i)>>>0):i<65536?(e[t++]=224|(61440&i)>>>12,e[t++]=128|(4032&i)>>>6,e[t++]=128|(63&i)>>>0):(e[t++]=240|(1835008&i)>>>18,e[t++]=128|(258048&i)>>>12,e[t++]=128|(4032&i)>>>6,e[t++]=128|(63&i)>>>0),t>=64&&(this._step(),t-=64,this._totalLen+=64,e[0]=e[64],e[1]=e[65],e[2]=e[66]),t}digest(){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()),d(this._h0)+d(this._h1)+d(this._h2)+d(this._h3)+d(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,h(this._buff,this._buffLen),this._buffLen>56&&(this._step(),h(this._buff));const e=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(e/4294967296),!1),this._buffDV.setUint32(60,e%4294967296,!1),this._step()}_step(){const e=c._bigBlock32,t=this._buffDV;for(let l=0;l<64;l+=4)e.setUint32(l,t.getUint32(l,!1),!1);for(let c=64;c<320;c+=4)e.setUint32(c,l(e.getUint32(c-12,!1)^e.getUint32(c-32,!1)^e.getUint32(c-56,!1)^e.getUint32(c-64,!1),1),!1);let i,n,o,s=this._h0,r=this._h1,a=this._h2,h=this._h3,d=this._h4;for(let c=0;c<80;c++)c<20?(i=r&a|~r&h,n=1518500249):c<40?(i=r^a^h,n=1859775393):c<60?(i=r&a|r&h|a&h,n=2400959708):(i=r^a^h,n=3395469782),o=l(s,5)+i+d+n+e.getUint32(4*c,!1)&4294967295,d=h,h=a,a=l(r,30),r=s,s=o;this._h0=this._h0+s&4294967295,this._h1=this._h1+r&4294967295,this._h2=this._h2+a&4294967295,this._h3=this._h3+h&4294967295,this._h4=this._h4+d&4294967295}}c._bigBlock32=new DataView(new ArrayBuffer(320))},32936:(e,t,i)=>{i.d(t,{CP:()=>h,Fr:()=>d,W5:()=>l,d9:()=>u,g_:()=>c,oR:()=>g,v1:()=>m});var n=i(85108),o=i(43020),s=i(55694),r=i(25085),a=i(82682);class l{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];var i,o,s;if(this.value=e,"string"!==typeof this.value)throw(0,n.b1)("value");"boolean"===typeof t?(this.isTrusted=t,this.supportThemeIcons=!1,this.supportHtml=!1):(this.isTrusted=null!==(i=t.isTrusted)&&void 0!==i?i:void 0,this.supportThemeIcons=null!==(o=t.supportThemeIcons)&&void 0!==o&&o,this.supportHtml=null!==(s=t.supportHtml)&&void 0!==s&&s)}appendText(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;var i;return this.value+=(i=this.supportThemeIcons?(0,o.Qo)(e):e,i.replace(/[\\`*_{}[\]()#+\-!~]/g,"\\$&")).replace(/([ \t]+)/g,((e,t)=>" ".repeat(t.length))).replace(/\>/gm,"\\>").replace(/\n/g,1===t?"\\\n":"\n\n"),this}appendMarkdown(e){return this.value+=e,this}appendCodeblock(e,t){return this.value+="\n".concat(function(e,t){var i,n;const o=null!==(n=null===(i=e.match(/^`+/gm))||void 0===i?void 0:i.reduce(((e,t)=>e.length>t.length?e:t)).length)&&void 0!==n?n:0,s=o>=3?o+1:3;return["".concat("`".repeat(s)).concat(t),e,"".concat("`".repeat(s))].join("\n")}(t,e),"\n"),this}appendLink(e,t,i){return this.value+="[",this.value+=this._escape(t,"]"),this.value+="](",this.value+=this._escape(String(e),")"),i&&(this.value+=' "'.concat(this._escape(this._escape(i,'"'),")"),'"')),this.value+=")",this}_escape(e,t){const i=new RegExp((0,r.ec)(t),"g");return e.replace(i,((t,i)=>"\\"!==e.charAt(i-1)?"\\".concat(t):t))}}function h(e){return d(e)?!e.value:!Array.isArray(e)||e.every(h)}function d(e){return e instanceof l||!(!e||"object"!==typeof e)&&("string"===typeof e.value&&("boolean"===typeof e.isTrusted||"object"===typeof e.isTrusted||void 0===e.isTrusted)&&("boolean"===typeof e.supportThemeIcons||void 0===e.supportThemeIcons))}function c(e,t){return e===t||!(!e||!t)&&(e.value===t.value&&e.isTrusted===t.isTrusted&&e.supportThemeIcons===t.supportThemeIcons&&e.supportHtml===t.supportHtml&&(e.baseUri===t.baseUri||!!e.baseUri&&!!t.baseUri&&(0,s.Xy)(a.o.from(e.baseUri),a.o.from(t.baseUri))))}function u(e){return e.replace(/"/g,""")}function g(e){return e?e.replace(/\\([\\`*_{}[\]()#+\-.!~])/g,"$1"):e}function m(e){const t=[],i=e.split("|").map((e=>e.trim()));e=i[0];const n=i[1];if(n){const e=/height=(\d+)/.exec(n),i=/width=(\d+)/.exec(n),o=e?e[1]:"",s=i?i[1]:"",r=isFinite(parseInt(s)),a=isFinite(parseInt(o));r&&t.push('width="'.concat(s,'"')),a&&t.push('height="'.concat(o,'"'))}return{href:e,dimensions:t}}},43020:(e,t,i)=>{i.d(t,{Gt:()=>_,Ho:()=>p,JL:()=>m,Qo:()=>h,f$:()=>c,x$:()=>g});var n=i(66835),o=i(25085),s=i(62502);const r="$(",a=new RegExp("\\$\\(".concat(s.k.iconNameExpression,"(?:").concat(s.k.iconModifierExpression,")?\\)"),"g"),l=new RegExp("(\\\\)?".concat(a.source),"g");function h(e){return e.replace(l,((e,t)=>t?e:"\\".concat(e)))}const d=new RegExp("\\\\".concat(a.source),"g");function c(e){return e.replace(d,(e=>"\\".concat(e)))}const u=new RegExp("(\\s)?(\\\\)?".concat(a.source,"(\\s)?"),"g");function g(e){return-1===e.indexOf(r)?e:e.replace(u,((e,t,i,n)=>i?e:t||n||""))}function m(e){return e?e.replace(/\$\((.*?)\)/g,((e,t)=>" ".concat(t," "))).trim():""}const f=new RegExp("\\$\\(".concat(s.k.iconNameCharacter,"+\\)"),"g");function p(e){f.lastIndex=0;let t="";const i=[];let n=0;for(;;){const o=f.lastIndex,s=f.exec(e),r=e.substring(o,null===s||void 0===s?void 0:s.index);if(r.length>0){t+=r;for(let e=0;e2&&void 0!==arguments[2]&&arguments[2];const{text:s,iconOffsets:r}=t;if(!r||0===r.length)return(0,n.Oh)(e,s,i);const a=(0,o.j3)(s," "),l=s.length-a.length,h=(0,n.Oh)(e,a,i);if(h)for(const n of h){const e=r[n.start+l]+l;n.start+=e,n.end+=e}return h}},58276:(e,t,i)=>{i.d(t,{R:()=>n,a:()=>o});class n{constructor(e){this._prefix=e,this._lastId=0}nextId(){return this._prefix+ ++this._lastId}}const o=new n("id#")},43283:(e,t,i)=>{i.d(t,{F:()=>o});var n=i(24219);const o=new class{constructor(){this._onDidChange=new n.Q5,this.onDidChange=this._onDidChange.event,this._enabled=!0}get enabled(){return this._enabled}enable(){this._enabled=!0,this._onDidChange.fire()}disable(){this._enabled=!1,this._onDidChange.fire()}}},36952:(e,t,i)=>{var n;i.d(t,{$:()=>n}),function(e){function t(e){return e&&"object"===typeof e&&"function"===typeof e[Symbol.iterator]}e.is=t;const i=Object.freeze([]);function*n(e){yield e}e.empty=function(){return i},e.single=n,e.wrap=function(e){return t(e)?e:n(e)},e.from=function(e){return e||i},e.reverse=function*(e){for(let t=e.length-1;t>=0;t--)yield e[t]},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){for(const i of e)if(t(i))return!0;return!1},e.find=function(e,t){for(const i of e)if(t(i))return i},e.filter=function*(e,t){for(const i of e)t(i)&&(yield i)},e.map=function*(e,t){let i=0;for(const n of e)yield t(n,i++)},e.concat=function*(){for(var e=arguments.length,t=new Array(e),i=0;i2&&void 0!==arguments[2]?arguments[2]:e.length;return function*(){for(t<0&&(t+=e.length),i<0?i+=e.length:i>e.length&&(i=e.length);t1&&void 0!==arguments[1]?arguments[1]:Number.POSITIVE_INFINITY;const n=[];if(0===i)return[n,t];const o=t[Symbol.iterator]();for(let s=0;so}]},e.asyncToArray=async function(e){const t=[];for await(const i of e)t.push(i);return Promise.resolve(t)}}(n||(n={}))},67925:(e,t,i)=>{i.d(t,{H_:()=>a,Vd:()=>u,gx:()=>f,kL:()=>m});class n{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}keyCodeToStr(e){return this._keyCodeToStr[e]}strToKeyCode(e){return this._strToKeyCode[e.toLowerCase()]||0}}const o=new n,s=new n,r=new n,a=new Array(230),l={},h=[],d=Object.create(null),c=Object.create(null),u=[],g=[];for(let p=0;p<=193;p++)u[p]=-1;for(let p=0;p<=132;p++)g[p]=-1;var m;function f(e,t){return(e|(65535&t)<<16>>>0)>>>0}!function(){const e="",t=[[1,0,"None",0,"unknown",0,"VK_UNKNOWN",e,e],[1,1,"Hyper",0,e,0,e,e,e],[1,2,"Super",0,e,0,e,e,e],[1,3,"Fn",0,e,0,e,e,e],[1,4,"FnLock",0,e,0,e,e,e],[1,5,"Suspend",0,e,0,e,e,e],[1,6,"Resume",0,e,0,e,e,e],[1,7,"Turbo",0,e,0,e,e,e],[1,8,"Sleep",0,e,0,"VK_SLEEP",e,e],[1,9,"WakeUp",0,e,0,e,e,e],[0,10,"KeyA",31,"A",65,"VK_A",e,e],[0,11,"KeyB",32,"B",66,"VK_B",e,e],[0,12,"KeyC",33,"C",67,"VK_C",e,e],[0,13,"KeyD",34,"D",68,"VK_D",e,e],[0,14,"KeyE",35,"E",69,"VK_E",e,e],[0,15,"KeyF",36,"F",70,"VK_F",e,e],[0,16,"KeyG",37,"G",71,"VK_G",e,e],[0,17,"KeyH",38,"H",72,"VK_H",e,e],[0,18,"KeyI",39,"I",73,"VK_I",e,e],[0,19,"KeyJ",40,"J",74,"VK_J",e,e],[0,20,"KeyK",41,"K",75,"VK_K",e,e],[0,21,"KeyL",42,"L",76,"VK_L",e,e],[0,22,"KeyM",43,"M",77,"VK_M",e,e],[0,23,"KeyN",44,"N",78,"VK_N",e,e],[0,24,"KeyO",45,"O",79,"VK_O",e,e],[0,25,"KeyP",46,"P",80,"VK_P",e,e],[0,26,"KeyQ",47,"Q",81,"VK_Q",e,e],[0,27,"KeyR",48,"R",82,"VK_R",e,e],[0,28,"KeyS",49,"S",83,"VK_S",e,e],[0,29,"KeyT",50,"T",84,"VK_T",e,e],[0,30,"KeyU",51,"U",85,"VK_U",e,e],[0,31,"KeyV",52,"V",86,"VK_V",e,e],[0,32,"KeyW",53,"W",87,"VK_W",e,e],[0,33,"KeyX",54,"X",88,"VK_X",e,e],[0,34,"KeyY",55,"Y",89,"VK_Y",e,e],[0,35,"KeyZ",56,"Z",90,"VK_Z",e,e],[0,36,"Digit1",22,"1",49,"VK_1",e,e],[0,37,"Digit2",23,"2",50,"VK_2",e,e],[0,38,"Digit3",24,"3",51,"VK_3",e,e],[0,39,"Digit4",25,"4",52,"VK_4",e,e],[0,40,"Digit5",26,"5",53,"VK_5",e,e],[0,41,"Digit6",27,"6",54,"VK_6",e,e],[0,42,"Digit7",28,"7",55,"VK_7",e,e],[0,43,"Digit8",29,"8",56,"VK_8",e,e],[0,44,"Digit9",30,"9",57,"VK_9",e,e],[0,45,"Digit0",21,"0",48,"VK_0",e,e],[1,46,"Enter",3,"Enter",13,"VK_RETURN",e,e],[1,47,"Escape",9,"Escape",27,"VK_ESCAPE",e,e],[1,48,"Backspace",1,"Backspace",8,"VK_BACK",e,e],[1,49,"Tab",2,"Tab",9,"VK_TAB",e,e],[1,50,"Space",10,"Space",32,"VK_SPACE",e,e],[0,51,"Minus",88,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[0,52,"Equal",86,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[0,53,"BracketLeft",92,"[",219,"VK_OEM_4","[","OEM_4"],[0,54,"BracketRight",94,"]",221,"VK_OEM_6","]","OEM_6"],[0,55,"Backslash",93,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,56,"IntlHash",0,e,0,e,e,e],[0,57,"Semicolon",85,";",186,"VK_OEM_1",";","OEM_1"],[0,58,"Quote",95,"'",222,"VK_OEM_7","'","OEM_7"],[0,59,"Backquote",91,"`",192,"VK_OEM_3","`","OEM_3"],[0,60,"Comma",87,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[0,61,"Period",89,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[0,62,"Slash",90,"/",191,"VK_OEM_2","/","OEM_2"],[1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL",e,e],[1,64,"F1",59,"F1",112,"VK_F1",e,e],[1,65,"F2",60,"F2",113,"VK_F2",e,e],[1,66,"F3",61,"F3",114,"VK_F3",e,e],[1,67,"F4",62,"F4",115,"VK_F4",e,e],[1,68,"F5",63,"F5",116,"VK_F5",e,e],[1,69,"F6",64,"F6",117,"VK_F6",e,e],[1,70,"F7",65,"F7",118,"VK_F7",e,e],[1,71,"F8",66,"F8",119,"VK_F8",e,e],[1,72,"F9",67,"F9",120,"VK_F9",e,e],[1,73,"F10",68,"F10",121,"VK_F10",e,e],[1,74,"F11",69,"F11",122,"VK_F11",e,e],[1,75,"F12",70,"F12",123,"VK_F12",e,e],[1,76,"PrintScreen",0,e,0,e,e,e],[1,77,"ScrollLock",84,"ScrollLock",145,"VK_SCROLL",e,e],[1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE",e,e],[1,79,"Insert",19,"Insert",45,"VK_INSERT",e,e],[1,80,"Home",14,"Home",36,"VK_HOME",e,e],[1,81,"PageUp",11,"PageUp",33,"VK_PRIOR",e,e],[1,82,"Delete",20,"Delete",46,"VK_DELETE",e,e],[1,83,"End",13,"End",35,"VK_END",e,e],[1,84,"PageDown",12,"PageDown",34,"VK_NEXT",e,e],[1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",e],[1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",e],[1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",e],[1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",e],[1,89,"NumLock",83,"NumLock",144,"VK_NUMLOCK",e,e],[1,90,"NumpadDivide",113,"NumPad_Divide",111,"VK_DIVIDE",e,e],[1,91,"NumpadMultiply",108,"NumPad_Multiply",106,"VK_MULTIPLY",e,e],[1,92,"NumpadSubtract",111,"NumPad_Subtract",109,"VK_SUBTRACT",e,e],[1,93,"NumpadAdd",109,"NumPad_Add",107,"VK_ADD",e,e],[1,94,"NumpadEnter",3,e,0,e,e,e],[1,95,"Numpad1",99,"NumPad1",97,"VK_NUMPAD1",e,e],[1,96,"Numpad2",100,"NumPad2",98,"VK_NUMPAD2",e,e],[1,97,"Numpad3",101,"NumPad3",99,"VK_NUMPAD3",e,e],[1,98,"Numpad4",102,"NumPad4",100,"VK_NUMPAD4",e,e],[1,99,"Numpad5",103,"NumPad5",101,"VK_NUMPAD5",e,e],[1,100,"Numpad6",104,"NumPad6",102,"VK_NUMPAD6",e,e],[1,101,"Numpad7",105,"NumPad7",103,"VK_NUMPAD7",e,e],[1,102,"Numpad8",106,"NumPad8",104,"VK_NUMPAD8",e,e],[1,103,"Numpad9",107,"NumPad9",105,"VK_NUMPAD9",e,e],[1,104,"Numpad0",98,"NumPad0",96,"VK_NUMPAD0",e,e],[1,105,"NumpadDecimal",112,"NumPad_Decimal",110,"VK_DECIMAL",e,e],[0,106,"IntlBackslash",97,"OEM_102",226,"VK_OEM_102",e,e],[1,107,"ContextMenu",58,"ContextMenu",93,e,e,e],[1,108,"Power",0,e,0,e,e,e],[1,109,"NumpadEqual",0,e,0,e,e,e],[1,110,"F13",71,"F13",124,"VK_F13",e,e],[1,111,"F14",72,"F14",125,"VK_F14",e,e],[1,112,"F15",73,"F15",126,"VK_F15",e,e],[1,113,"F16",74,"F16",127,"VK_F16",e,e],[1,114,"F17",75,"F17",128,"VK_F17",e,e],[1,115,"F18",76,"F18",129,"VK_F18",e,e],[1,116,"F19",77,"F19",130,"VK_F19",e,e],[1,117,"F20",78,"F20",131,"VK_F20",e,e],[1,118,"F21",79,"F21",132,"VK_F21",e,e],[1,119,"F22",80,"F22",133,"VK_F22",e,e],[1,120,"F23",81,"F23",134,"VK_F23",e,e],[1,121,"F24",82,"F24",135,"VK_F24",e,e],[1,122,"Open",0,e,0,e,e,e],[1,123,"Help",0,e,0,e,e,e],[1,124,"Select",0,e,0,e,e,e],[1,125,"Again",0,e,0,e,e,e],[1,126,"Undo",0,e,0,e,e,e],[1,127,"Cut",0,e,0,e,e,e],[1,128,"Copy",0,e,0,e,e,e],[1,129,"Paste",0,e,0,e,e,e],[1,130,"Find",0,e,0,e,e,e],[1,131,"AudioVolumeMute",117,"AudioVolumeMute",173,"VK_VOLUME_MUTE",e,e],[1,132,"AudioVolumeUp",118,"AudioVolumeUp",175,"VK_VOLUME_UP",e,e],[1,133,"AudioVolumeDown",119,"AudioVolumeDown",174,"VK_VOLUME_DOWN",e,e],[1,134,"NumpadComma",110,"NumPad_Separator",108,"VK_SEPARATOR",e,e],[0,135,"IntlRo",115,"ABNT_C1",193,"VK_ABNT_C1",e,e],[1,136,"KanaMode",0,e,0,e,e,e],[0,137,"IntlYen",0,e,0,e,e,e],[1,138,"Convert",0,e,0,e,e,e],[1,139,"NonConvert",0,e,0,e,e,e],[1,140,"Lang1",0,e,0,e,e,e],[1,141,"Lang2",0,e,0,e,e,e],[1,142,"Lang3",0,e,0,e,e,e],[1,143,"Lang4",0,e,0,e,e,e],[1,144,"Lang5",0,e,0,e,e,e],[1,145,"Abort",0,e,0,e,e,e],[1,146,"Props",0,e,0,e,e,e],[1,147,"NumpadParenLeft",0,e,0,e,e,e],[1,148,"NumpadParenRight",0,e,0,e,e,e],[1,149,"NumpadBackspace",0,e,0,e,e,e],[1,150,"NumpadMemoryStore",0,e,0,e,e,e],[1,151,"NumpadMemoryRecall",0,e,0,e,e,e],[1,152,"NumpadMemoryClear",0,e,0,e,e,e],[1,153,"NumpadMemoryAdd",0,e,0,e,e,e],[1,154,"NumpadMemorySubtract",0,e,0,e,e,e],[1,155,"NumpadClear",131,"Clear",12,"VK_CLEAR",e,e],[1,156,"NumpadClearEntry",0,e,0,e,e,e],[1,0,e,5,"Ctrl",17,"VK_CONTROL",e,e],[1,0,e,4,"Shift",16,"VK_SHIFT",e,e],[1,0,e,6,"Alt",18,"VK_MENU",e,e],[1,0,e,57,"Meta",91,"VK_COMMAND",e,e],[1,157,"ControlLeft",5,e,0,"VK_LCONTROL",e,e],[1,158,"ShiftLeft",4,e,0,"VK_LSHIFT",e,e],[1,159,"AltLeft",6,e,0,"VK_LMENU",e,e],[1,160,"MetaLeft",57,e,0,"VK_LWIN",e,e],[1,161,"ControlRight",5,e,0,"VK_RCONTROL",e,e],[1,162,"ShiftRight",4,e,0,"VK_RSHIFT",e,e],[1,163,"AltRight",6,e,0,"VK_RMENU",e,e],[1,164,"MetaRight",57,e,0,"VK_RWIN",e,e],[1,165,"BrightnessUp",0,e,0,e,e,e],[1,166,"BrightnessDown",0,e,0,e,e,e],[1,167,"MediaPlay",0,e,0,e,e,e],[1,168,"MediaRecord",0,e,0,e,e,e],[1,169,"MediaFastForward",0,e,0,e,e,e],[1,170,"MediaRewind",0,e,0,e,e,e],[1,171,"MediaTrackNext",124,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK",e,e],[1,172,"MediaTrackPrevious",125,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK",e,e],[1,173,"MediaStop",126,"MediaStop",178,"VK_MEDIA_STOP",e,e],[1,174,"Eject",0,e,0,e,e,e],[1,175,"MediaPlayPause",127,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE",e,e],[1,176,"MediaSelect",128,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT",e,e],[1,177,"LaunchMail",129,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL",e,e],[1,178,"LaunchApp2",130,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2",e,e],[1,179,"LaunchApp1",0,e,0,"VK_MEDIA_LAUNCH_APP1",e,e],[1,180,"SelectTask",0,e,0,e,e,e],[1,181,"LaunchScreenSaver",0,e,0,e,e,e],[1,182,"BrowserSearch",120,"BrowserSearch",170,"VK_BROWSER_SEARCH",e,e],[1,183,"BrowserHome",121,"BrowserHome",172,"VK_BROWSER_HOME",e,e],[1,184,"BrowserBack",122,"BrowserBack",166,"VK_BROWSER_BACK",e,e],[1,185,"BrowserForward",123,"BrowserForward",167,"VK_BROWSER_FORWARD",e,e],[1,186,"BrowserStop",0,e,0,"VK_BROWSER_STOP",e,e],[1,187,"BrowserRefresh",0,e,0,"VK_BROWSER_REFRESH",e,e],[1,188,"BrowserFavorites",0,e,0,"VK_BROWSER_FAVORITES",e,e],[1,189,"ZoomToggle",0,e,0,e,e,e],[1,190,"MailReply",0,e,0,e,e,e],[1,191,"MailForward",0,e,0,e,e,e],[1,192,"MailSend",0,e,0,e,e,e],[1,0,e,114,"KeyInComposition",229,e,e,e],[1,0,e,116,"ABNT_C2",194,"VK_ABNT_C2",e,e],[1,0,e,96,"OEM_8",223,"VK_OEM_8",e,e],[1,0,e,0,e,0,"VK_KANA",e,e],[1,0,e,0,e,0,"VK_HANGUL",e,e],[1,0,e,0,e,0,"VK_JUNJA",e,e],[1,0,e,0,e,0,"VK_FINAL",e,e],[1,0,e,0,e,0,"VK_HANJA",e,e],[1,0,e,0,e,0,"VK_KANJI",e,e],[1,0,e,0,e,0,"VK_CONVERT",e,e],[1,0,e,0,e,0,"VK_NONCONVERT",e,e],[1,0,e,0,e,0,"VK_ACCEPT",e,e],[1,0,e,0,e,0,"VK_MODECHANGE",e,e],[1,0,e,0,e,0,"VK_SELECT",e,e],[1,0,e,0,e,0,"VK_PRINT",e,e],[1,0,e,0,e,0,"VK_EXECUTE",e,e],[1,0,e,0,e,0,"VK_SNAPSHOT",e,e],[1,0,e,0,e,0,"VK_HELP",e,e],[1,0,e,0,e,0,"VK_APPS",e,e],[1,0,e,0,e,0,"VK_PROCESSKEY",e,e],[1,0,e,0,e,0,"VK_PACKET",e,e],[1,0,e,0,e,0,"VK_DBE_SBCSCHAR",e,e],[1,0,e,0,e,0,"VK_DBE_DBCSCHAR",e,e],[1,0,e,0,e,0,"VK_ATTN",e,e],[1,0,e,0,e,0,"VK_CRSEL",e,e],[1,0,e,0,e,0,"VK_EXSEL",e,e],[1,0,e,0,e,0,"VK_EREOF",e,e],[1,0,e,0,e,0,"VK_PLAY",e,e],[1,0,e,0,e,0,"VK_ZOOM",e,e],[1,0,e,0,e,0,"VK_NONAME",e,e],[1,0,e,0,e,0,"VK_PA1",e,e],[1,0,e,0,e,0,"VK_OEM_CLEAR",e,e]],i=[],n=[];for(const m of t){const[e,t,f,p,_,v,b,C,w]=m;if(n[t]||(n[t]=!0,h[t]=f,d[f]=t,c[f.toLowerCase()]=t,e&&(u[t]=p,0!==p&&3!==p&&5!==p&&4!==p&&6!==p&&57!==p&&(g[p]=t))),!i[p]){if(i[p]=!0,!_)throw new Error("String representation missing for key code ".concat(p," around scan code ").concat(f));o.define(p,_),s.define(p,C||_),r.define(p,w||C||_)}v&&(a[v]=p),b&&(l[b]=p)}g[3]=46}(),function(e){e.toString=function(e){return o.keyCodeToStr(e)},e.fromString=function(e){return o.strToKeyCode(e)},e.toUserSettingsUS=function(e){return s.keyCodeToStr(e)},e.toUserSettingsGeneral=function(e){return r.keyCodeToStr(e)},e.fromUserSettings=function(e){return s.strToKeyCode(e)||r.strToKeyCode(e)},e.toElectronAccelerator=function(e){if(e>=98&&e<=113)return null;switch(e){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return o.keyCodeToStr(e)}}(m||(m={}))},87818:(e,t,i)=>{i.d(t,{X4:()=>r,jC:()=>a,r6:()=>l,xo:()=>s});var n=i(71721);class o{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;this.modifierLabels=[null],this.modifierLabels[2]=e,this.modifierLabels[1]=t,this.modifierLabels[3]=i}toLabel(e,t,i){if(0===t.length)return null;const n=[];for(let o=0,s=t.length;o{i.d(t,{$M:()=>r,Z9:()=>o,aZ:()=>l,f1:()=>h});var n=i(85108);function o(e,t){if("number"===typeof e){if(0===e)return null;const i=(65535&e)>>>0,n=(4294901760&e)>>>16;return new a(0!==n?[s(i,t),s(n,t)]:[s(i,t)])}{const i=[];for(let n=0;n{i.d(t,{o:()=>n});class n{constructor(e){this.executor=e,this._didRun=!1}get value(){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}get rawValue(){return this._value}}},89599:(e,t,i)=>{i.d(t,{B9:()=>c,F8:()=>u,JT:()=>f,Jz:()=>v,L6:()=>_,Nq:()=>a,OF:()=>g,SL:()=>m,Wf:()=>d,XK:()=>p,b2:()=>b,dk:()=>h,wi:()=>r});var n=i(75937),o=i(36952);let s=null;function r(e){return null===s||void 0===s||s.trackDisposable(e),e}function a(e){null===s||void 0===s||s.markAsDisposed(e)}function l(e,t){null===s||void 0===s||s.setParent(e,t)}function h(e){return null===s||void 0===s||s.markAsSingleton(e),e}function d(e){return"function"===typeof e.dispose&&0===e.dispose.length}function c(e){if(o.$.is(e)){const i=[];for(const n of e)if(n)try{n.dispose()}catch(t){i.push(t)}if(1===i.length)throw i[0];if(i.length>1)throw new AggregateError(i,"Encountered errors while disposing of store");return Array.isArray(e)?[]:e}if(e)return e.dispose(),e}function u(){for(var e=arguments.length,t=new Array(e),i=0;ic(t)));return function(e,t){if(s)for(const i of e)s.setParent(i,t)}(t,n),n}function g(e){const t=r({dispose:(0,n.M)((()=>{a(t),e()}))});return t}class m{constructor(){this._toDispose=new Set,this._isDisposed=!1,r(this)}dispose(){this._isDisposed||(a(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(0!==this._toDispose.size)try{c(this._toDispose)}finally{this._toDispose.clear()}}add(e){if(!e)return e;if(e===this)throw new Error("Cannot register a disposable on itself!");return l(e,this),this._isDisposed?m.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(e),e}deleteAndLeak(e){e&&this._toDispose.has(e)&&(this._toDispose.delete(e),l(e,null))}}m.DISABLE_DISPOSED_WARNING=!1;class f{constructor(){this._store=new m,r(this),l(this._store,this)}dispose(){a(this),this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}}f.None=Object.freeze({dispose(){}});class p{constructor(){this._isDisposed=!1,r(this)}get value(){return this._isDisposed?void 0:this._value}set value(e){var t;this._isDisposed||e===this._value||(null===(t=this._value)||void 0===t||t.dispose(),e&&l(e,this),this._value=e)}clear(){this.value=void 0}dispose(){var e;this._isDisposed=!0,a(this),null===(e=this._value)||void 0===e||e.dispose(),this._value=void 0}}class _{constructor(e){this._disposable=e,this._counter=1}acquire(){return this._counter++,this}release(){return 0===--this._counter&&this._disposable.dispose(),this}}class v{constructor(e){this.object=e}dispose(){}}class b{constructor(){this._store=new Map,this._isDisposed=!1,r(this)}dispose(){a(this),this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{c(this._store.values())}finally{this._store.clear()}}get(e){return this._store.get(e)}set(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];var n;this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),i||null===(n=this._store.get(e))||void 0===n||n.dispose(),this._store.set(e,t)}deleteAndDispose(e){var t;null===(t=this._store.get(e))||void 0===t||t.dispose(),this._store.delete(e)}[Symbol.iterator](){return this._store[Symbol.iterator]()}}},44713:(e,t,i)=>{i.d(t,{S:()=>o});class n{constructor(e){this.element=e,this.next=n.Undefined,this.prev=n.Undefined}}n.Undefined=new n(void 0);class o{constructor(){this._first=n.Undefined,this._last=n.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===n.Undefined}clear(){let e=this._first;for(;e!==n.Undefined;){const t=e.next;e.prev=n.Undefined,e.next=n.Undefined,e=t}this._first=n.Undefined,this._last=n.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){const i=new n(e);if(this._first===n.Undefined)this._first=i,this._last=i;else if(t){const e=this._last;this._last=i,i.prev=e,e.next=i}else{const e=this._first;this._first=i,i.next=e,e.prev=i}this._size+=1;let o=!1;return()=>{o||(o=!0,this._remove(i))}}shift(){if(this._first!==n.Undefined){const e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==n.Undefined){const e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==n.Undefined&&e.next!==n.Undefined){const t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===n.Undefined&&e.next===n.Undefined?(this._first=n.Undefined,this._last=n.Undefined):e.next===n.Undefined?(this._last=this._last.prev,this._last.next=n.Undefined):e.prev===n.Undefined&&(this._first=this._first.next,this._first.prev=n.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==n.Undefined;)yield e.element,e=e.next}}},65549:(e,t,i)=>{var n,o;i.d(t,{Y9:()=>r,YQ:()=>h,ri:()=>d,z6:()=>l});class s{constructor(e,t){this.uri=e,this.value=t}}class r{constructor(e,t){if(this[n]="ResourceMap",e instanceof r)this.map=new Map(e.map),this.toKey=null!==t&&void 0!==t?t:r.defaultToKey;else if(function(e){return Array.isArray(e)}(e)){this.map=new Map,this.toKey=null!==t&&void 0!==t?t:r.defaultToKey;for(const[t,i]of e)this.set(t,i)}else this.map=new Map,this.toKey=null!==e&&void 0!==e?e:r.defaultToKey}set(e,t){return this.map.set(this.toKey(e),new s(e,t)),this}get(e){var t;return null===(t=this.map.get(this.toKey(e)))||void 0===t?void 0:t.value}has(e){return this.map.has(this.toKey(e))}get size(){return this.map.size}clear(){this.map.clear()}delete(e){return this.map.delete(this.toKey(e))}forEach(e,t){"undefined"!==typeof t&&(e=e.bind(t));for(const[i,n]of this.map)e(n.value,n.uri,this)}*values(){for(const e of this.map.values())yield e.value}*keys(){for(const e of this.map.values())yield e.uri}*entries(){for(const e of this.map.values())yield[e.uri,e.value]}*[(n=Symbol.toStringTag,Symbol.iterator)](){for(const[,e]of this.map)yield[e.uri,e.value]}}r.defaultToKey=e=>e.toString();class a{constructor(){this[o]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var e;return null===(e=this._head)||void 0===e?void 0:e.value}get last(){var e;return null===(e=this._tail)||void 0===e?void 0:e.value}has(e){return this._map.has(e)}get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const i=this._map.get(e);if(i)return 0!==t&&this.touch(i,t),i.value}set(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=this._map.get(e);if(n)n.value=t,0!==i&&this.touch(n,i);else{switch(n={key:e,value:t,next:void 0,previous:void 0},i){case 0:case 2:default:this.addItemLast(n);break;case 1:this.addItemFirst(n)}this._map.set(e,n),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){const t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){const i=this._state;let n=this._head;for(;n;){if(t?e.bind(t)(n.value,n.key,this):e(n.value,n.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");n=n.next}}keys(){const e=this,t=this._state;let i=this._head;const n={[Symbol.iterator]:()=>n,next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const e={value:i.key,done:!1};return i=i.next,e}return{value:void 0,done:!0}}};return n}values(){const e=this,t=this._state;let i=this._head;const n={[Symbol.iterator]:()=>n,next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const e={value:i.value,done:!1};return i=i.next,e}return{value:void 0,done:!0}}};return n}entries(){const e=this,t=this._state;let i=this._head;const n={[Symbol.iterator]:()=>n,next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const e={value:[i.key,i.value],done:!1};return i=i.next,e}return{value:void 0,done:!0}}};return n}[(o=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(0===e)return void this.clear();let t=this._head,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.next,i--;this._head=t,this._size=i,t&&(t.previous=void 0),this._state++}addItemFirst(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++}addItemLast(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++}removeItem(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{const t=e.next,i=e.previous;if(!t||!i)throw new Error("Invalid list");t.previous=i,i.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(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;const t=e.next,i=e.previous;e===this._tail?(i.next=void 0,this._tail=i):(t.previous=i,i.next=t),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;const t=e.next,i=e.previous;e===this._head?(t.previous=void 0,this._head=t):(t.previous=i,i.next=t),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}toJSON(){const e=[];return this.forEach(((t,i)=>{e.push([i,t])})),e}fromJSON(e){this.clear();for(const[t,i]of e)this.set(t,i)}}class l extends a{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return super.get(e,t)}peek(e){return super.get(e,0)}set(e,t){return super.set(e,t,2),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}class h{constructor(e){if(this._m1=new Map,this._m2=new Map,e)for(const[t,i]of e)this.set(t,i)}clear(){this._m1.clear(),this._m2.clear()}set(e,t){this._m1.set(e,t),this._m2.set(t,e)}get(e){return this._m1.get(e)}getKey(e){return this._m2.get(e)}delete(e){const t=this._m1.get(e);return void 0!==t&&(this._m1.delete(e),this._m2.delete(t),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}}class d{constructor(){this.map=new Map}add(e,t){let i=this.map.get(e);i||(i=new Set,this.map.set(e,i)),i.add(t)}delete(e,t){const i=this.map.get(e);i&&(i.delete(t),0===i.size&&this.map.delete(e))}forEach(e,t){const i=this.map.get(e);i&&i.forEach(t)}get(e){const t=this.map.get(e);return t||new Set}}},61423:(e,t,i)=>{i.d(t,{Pz:()=>s,Qc:()=>r});var n=i(12966),o=i(82682);function s(e){return JSON.stringify(e,a)}function r(e){let t=JSON.parse(e);return t=l(t),t}function a(e,t){return t instanceof RegExp?{$mid:2,source:t.source,flags:t.flags}:t}function l(e){let 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 o.o.revive(e);case 2:return new RegExp(e.source,e.flags);case 17:return new Date(e.source)}if(e instanceof n.KN||e instanceof Uint8Array)return e;if(Array.isArray(e))for(let i=0;i{i.d(t,{v:()=>n});const n=Object.freeze({text:"text/plain",binary:"application/octet-stream",unknown:"application/unknown",markdown:"text/markdown",latex:"text/latex",uriList:"text/uri-list"})},33211:(e,t,i)=>{i.d(t,{Gi:()=>g,Gs:()=>d,WX:()=>c,lg:()=>n,xn:()=>h});var n,o=i(85108),s=i(21511),r=i(25085),a=i(82682),l=i(51169);function h(e,t){return a.o.isUri(e)?(0,r.qq)(e.scheme,t):(0,r.ok)(e,t+":")}function d(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;nh(e,t)))}!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.vscodeManagedRemoteResource="vscode-managed-remote-resource",e.vscodeUserData="vscode-userdata",e.vscodeCustomEditor="vscode-custom-editor",e.vscodeNotebookCell="vscode-notebook-cell",e.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",e.vscodeNotebookCellOutput="vscode-notebook-cell-output",e.vscodeInteractiveInput="vscode-interactive-input",e.vscodeSettings="vscode-settings",e.vscodeWorkspaceTrust="vscode-workspace-trust",e.vscodeTerminal="vscode-terminal",e.vscodeChatCodeBlock="vscode-chat-code-block",e.vscodeChatSesssion="vscode-chat-editor",e.webviewPanel="webview-panel",e.vscodeWebview="vscode-webview",e.extension="extension",e.vscodeFileResource="vscode-file",e.tmp="tmp",e.vsls="vsls",e.vscodeSourceControl="vscode-scm",e.codeSetting="code-setting"}(n||(n={}));const c=new class{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null,this._serverRootPath="/"}setPreferredWebSchema(e){this._preferredWebSchema=e}get _remoteResourcesPath(){return l.KR.join(this._serverRootPath,n.vscodeRemoteResource)}rewrite(e){if(this._delegate)try{return this._delegate(e)}catch(d){return o.dL(d),e}const t=e.authority;let i=this._hosts[t];i&&-1!==i.indexOf(":")&&-1===i.indexOf("[")&&(i="[".concat(i,"]"));const r=this._ports[t],l=this._connectionTokens[t];let h="path=".concat(encodeURIComponent(e.path));return"string"===typeof l&&(h+="&".concat("tkn","=").concat(encodeURIComponent(l))),a.o.from({scheme:s.$L?this._preferredWebSchema:n.vscodeRemoteResource,authority:"".concat(i,":").concat(r),path:this._remoteResourcesPath,query:h})}};class u{uriToBrowserUri(e){return e.scheme===n.vscodeRemote?c.rewrite(e):e.scheme!==n.file||!s.tY&&s.qB!=="".concat(n.vscodeFileResource,"://").concat(u.FALLBACK_AUTHORITY)?e:e.with({scheme:n.vscodeFileResource,authority:e.authority||u.FALLBACK_AUTHORITY,query:null,fragment:null})}}u.FALLBACK_AUTHORITY="vscode-app";const g=new u;var m;!function(e){const t=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);e.CoopAndCoep=Object.freeze(t.get("3"));const i="vscode-coi";e.getHeadersFromQuery=function(e){let n;"string"===typeof e?n=new URL(e).searchParams:e instanceof URL?n=e.searchParams:a.o.isUri(e)&&(n=new URL(e.toString(!0)).searchParams);const o=null===n||void 0===n?void 0:n.get(i);if(o)return t.get(o)},e.addSearchParam=function(e,t,n){if(!globalThis.crossOriginIsolated)return;const o=t&&n?"3":n?"2":"1";e instanceof URLSearchParams?e.set(i,o):e[i]=o}}(m||(m={}))},63229:(e,t,i)=>{function n(e,t,i){return Math.min(Math.max(e,t),i)}i.d(t,{N:()=>s,nM:()=>o,uZ:()=>n});class o{constructor(){this._n=1,this._val=0}update(e){return this._val=this._val+(e-this._val)/this._n,this._n+=1,this._val}get value(){return this._val}}class s{constructor(e){this._n=0,this._val=0,this._values=[],this._index=0,this._sum=0,this._values=new Array(e),this._values.fill(0,0,e)}update(e){const t=this._values[this._index];return this._values[this._index]=e,this._index=(this._index+1)%this._values.length,this._sum-=t,this._sum+=e,this._n{i.d(t,{$E:()=>c,I8:()=>o,IU:()=>u,_A:()=>s,fS:()=>d,jB:()=>h,rs:()=>a});var n=i(63686);function o(e){if(!e||"object"!==typeof e)return e;if(e instanceof RegExp)return e;const t=Array.isArray(e)?[]:{};return Object.entries(e).forEach((e=>{let[i,n]=e;t[i]=n&&"object"===typeof n?o(n):n})),t}function s(e){if(!e||"object"!==typeof e)return e;const t=[e];for(;t.length>0;){const e=t.shift();Object.freeze(e);for(const i in e)if(r.call(e,i)){const o=e[i];"object"!==typeof o||Object.isFrozen(o)||(0,n.fU)(o)||t.push(o)}}return e}const r=Object.prototype.hasOwnProperty;function a(e,t){return l(e,t,new Set)}function l(e,t,i){if((0,n.Jp)(e))return e;const o=t(e);if("undefined"!==typeof o)return o;if(Array.isArray(e)){const n=[];for(const o of e)n.push(l(o,t,i));return n}if((0,n.Kn)(e)){if(i.has(e))throw new Error("Cannot clone recursive data-structure");i.add(e);const n={};for(const o in e)r.call(e,o)&&(n[o]=l(e[o],t,i));return i.delete(e),n}return e}function h(e,t){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return(0,n.Kn)(e)?((0,n.Kn)(t)&&Object.keys(t).forEach((o=>{o in e?i&&((0,n.Kn)(e[o])&&(0,n.Kn)(t[o])?h(e[o],t[o],i):e[o]=t[o]):e[o]=t[o]})),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;let i,n;if(Array.isArray(e)){if(e.length!==t.length)return!1;for(i=0;ifunction(){const i=Array.prototype.slice.call(arguments,0);return t(e,i)},n={};for(const o of e)n[o]=i(o);return n}},59130:(e,t,i)=>{i.d(t,{EH:()=>h,nJ:()=>c,UV:()=>d,gp:()=>u,Dz:()=>m.Dz,nK:()=>o.nK,aK:()=>o.aK,bx:()=>m.bx,bk:()=>o.bk,Be:()=>o.Be,DN:()=>n.DN,rD:()=>m.rD,GN:()=>m.GN,aq:()=>m.aq,uh:()=>n.uh,jx:()=>m.DN,c8:()=>n.c8,PS:()=>n.PS,F_:()=>f});var n=i(52938),o=i(4542),s=i(39880),r=i(89599),a=i(77434),l=i(47665);function h(e){return new g(new a.IZ(void 0,void 0,e),e,void 0,void 0)}function d(e,t){var i;return new g(new a.IZ(e.owner,e.debugName,null!==(i=e.debugReferenceFn)&&void 0!==i?i:t),t,void 0,void 0)}function c(e,t){var i;return new g(new a.IZ(e.owner,e.debugName,null!==(i=e.debugReferenceFn)&&void 0!==i?i:t),t,e.createEmptyChangeSummary,e.handleChange)}function u(e){const t=new r.SL,i=d({owner:void 0,debugName:void 0,debugReferenceFn:e},(i=>{t.clear(),e(i,t)}));return(0,r.OF)((()=>{i.dispose(),t.dispose()}))}class g{get debugName(){var e;return null!==(e=this._debugNameData.getDebugName(this))&&void 0!==e?e:"(anonymous)"}constructor(e,t,i,n){var o,s;this._debugNameData=e,this._runFn=t,this.createChangeSummary=i,this._handleChange=n,this.state=2,this.updateCount=0,this.disposed=!1,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=null===(o=this.createChangeSummary)||void 0===o?void 0:o.call(this),null===(s=(0,l.jl)())||void 0===s||s.handleAutorunCreated(this),this._runIfNeeded(),(0,r.wi)(this)}dispose(){this.disposed=!0;for(const e of this.dependencies)e.removeObserver(this);this.dependencies.clear(),(0,r.Nq)(this)}_runIfNeeded(){var e,t,i;if(3===this.state)return;const n=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=n,this.state=3;const o=this.disposed;try{if(!o){null===(e=(0,l.jl)())||void 0===e||e.handleAutorunTriggered(this);const i=this.changeSummary;this.changeSummary=null===(t=this.createChangeSummary)||void 0===t?void 0:t.call(this),this._runFn(this,i)}}finally{o||null===(i=(0,l.jl)())||void 0===i||i.handleAutorunFinished(this);for(const e of this.dependenciesToBeRemoved)e.removeObserver(this);this.dependenciesToBeRemoved.clear()}}toString(){return"Autorun<".concat(this.debugName,">")}beginUpdate(){3===this.state&&(this.state=1),this.updateCount++}endUpdate(){if(1===this.updateCount)do{if(1===this.state){this.state=3;for(const e of this.dependencies)if(e.reportChanges(),2===this.state)break}this._runIfNeeded()}while(3!==this.state);this.updateCount--,(0,s.eZ)((()=>this.updateCount>=0))}handlePossibleChange(e){3===this.state&&this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)&&(this.state=1)}handleChange(e,t){if(this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)){(!this._handleChange||this._handleChange({changedObservable:e,change:t,didChange:t=>t===e},this.changeSummary))&&(this.state=2)}}readObservable(e){if(this.disposed)return e.get();e.addObserver(this);const t=e.get();return this.dependencies.add(e),this.dependenciesToBeRemoved.delete(e),t}}!function(e){e.Observer=g}(h||(h={}));var m=i(90094);function f(e,t,i){return new Promise(((n,o)=>{let s=!0,r=!1;const a=e.map((e=>({isFinished:t(e),error:!!i&&i(e),state:e}))),l=h((e=>{const{isFinished:t,error:i,state:h}=a.read(e);(t||i)&&(s?r=!0:l.dispose(),i?o(!0===i?h:i):n(h))}));s=!1,r&&l.dispose()}))}},52938:(e,t,i)=>{i.d(t,{Bl:()=>f,DN:()=>w,Hr:()=>p,Jn:()=>d,MK:()=>h,Nc:()=>u,PS:()=>m,c8:()=>_,hm:()=>g,mT:()=>c,uh:()=>b});var n=i(77434),o=i(47665);let s,r,a,l;function h(e){s=e}function d(e){r=e}function c(e){a=e}class u{get TChange(){return null}reportChanges(){this.get()}read(e){return e?e.readObservable(this):this.get()}map(e,t){const i=void 0===t?void 0:e,o=void 0===t?e:t;return a({owner:i,debugName:()=>{const e=(0,n.$P)(o);if(void 0!==e)return e;const t=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(o.toString());return t?"".concat(this.debugName,".").concat(t[2]):i?void 0:"".concat(this.debugName," (mapped)")}},(e=>o(this.read(e),e)))}recomputeInitiallyAndOnChange(e,t){return e.add(s(this,t)),this}}class g extends u{constructor(){super(...arguments),this.observers=new Set}addObserver(e){const t=this.observers.size;this.observers.add(e),0===t&&this.onFirstObserverAdded()}removeObserver(e){this.observers.delete(e)&&0===this.observers.size&&this.onLastObserverRemoved()}onFirstObserverAdded(){}onLastObserverRemoved(){}}function m(e,t){const i=new v(e,t);try{e(i)}finally{i.finish()}}function f(e){if(l)e(l);else{const t=new v(e,void 0);l=t;try{e(t)}finally{t.finish(),l=void 0}}}async function p(e,t){const i=new v(e,t);try{await e(i)}finally{i.finish()}}function _(e,t,i){e?t(e):m(t,i)}class v{constructor(e,t){var i;this._fn=e,this._getDebugName=t,this.updatingObservers=[],null===(i=(0,o.jl)())||void 0===i||i.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():(0,n.$P)(this._fn)}updateObserver(e,t){this.updatingObservers.push({observer:e,observable:t}),e.beginUpdate(t)}finish(){var e;const t=this.updatingObservers;for(let i=0;i{}),(()=>"Setting ".concat(this.debugName))));try{const s=this._value;this._setValue(e),null===(n=(0,o.jl)())||void 0===n||n.handleObservableChanged(this,{oldValue:s,newValue:e,change:i,didChange:!0,hadValue:!0});for(const e of this.observers)t.updateObserver(e,this),e.handleChange(this,i)}finally{s&&s.finish()}}toString(){return"".concat(this.debugName,": ").concat(this._value)}_setValue(e){this._value=e}}function w(e,t){return"string"===typeof e?new y(void 0,e,t):new y(e,void 0,t)}class y extends C{_setValue(e){this._value!==e&&(this._value&&this._value.dispose(),this._value=e)}dispose(){var e;null===(e=this._value)||void 0===e||e.dispose()}}},77434:(e,t,i)=>{i.d(t,{$P:()=>l,IZ:()=>n});class n{constructor(e,t,i){this.owner=e,this.debugNameSource=t,this.referenceFn=i}getDebugName(e){return function(e,t){var i;const n=s.get(e);if(n)return n;const h=function(e,t){const i=s.get(e);if(i)return i;const n=t.owner?function(e){var t;const i=a.get(e);if(i)return i;const n=function(e){const t=e.constructor;if(t)return t.name;return"Object"}(e);let o=null!==(t=r.get(n))&&void 0!==t?t:0;o++,r.set(n,o);const s=1===o?n:"".concat(n,"#").concat(o);return a.set(e,s),s}(t.owner)+".":"";let o;const h=t.debugNameSource;if(void 0!==h){if("function"!==typeof h)return n+h;if(o=h(),void 0!==o)return n+o}const d=t.referenceFn;if(void 0!==d&&(o=l(d),void 0!==o))return n+o;if(void 0!==t.owner){const i=function(e,t){for(const i in e)if(e[i]===t)return i;return}(t.owner,e);if(void 0!==i)return n+i}return}(e,t);if(h){let t=null!==(i=o.get(h))&&void 0!==i?i:0;t++,o.set(h,t);const n=1===t?h:"".concat(h,"#").concat(t);return s.set(e,n),n}return}(e,this)}}const o=new Map,s=new WeakMap;const r=new Map,a=new WeakMap;function l(e){const t=e.toString(),i=/\/\*\*\s*@description\s*([^*]*)\*\//.exec(t),n=i?i[1]:void 0;return null===n||void 0===n?void 0:n.trim()}},4542:(e,t,i)=>{i.d(t,{Be:()=>u,aK:()=>c,bk:()=>d,kA:()=>g,nK:()=>h});var n=i(39880),o=i(89599),s=i(52938),r=i(77434),a=i(47665);const l=(e,t)=>e===t;function h(e,t){return void 0!==t?new m(new r.IZ(e,void 0,t),t,void 0,void 0,void 0,l):new m(new r.IZ(void 0,void 0,e),e,void 0,void 0,void 0,l)}function d(e,t){var i;return new m(new r.IZ(e.owner,e.debugName,e.debugReferenceFn),t,void 0,void 0,e.onLastObserverRemoved,null!==(i=e.equalityComparer)&&void 0!==i?i:l)}function c(e,t){var i;return new m(new r.IZ(e.owner,e.debugName,void 0),t,e.createEmptyChangeSummary,e.handleChange,void 0,null!==(i=e.equalityComparer)&&void 0!==i?i:l)}function u(e,t){let i,n;void 0===t?(i=e,n=void 0):(n=e,i=t);const s=new o.SL;return new m(new r.IZ(n,void 0,i),(e=>(s.clear(),i(e,s))),void 0,void 0,(()=>s.dispose()),l)}function g(e,t){let i,n;void 0===t?(i=e,n=void 0):(n=e,i=t);const s=new o.SL;return new m(new r.IZ(n,void 0,i),(e=>{s.clear();const t=i(e);return t&&s.add(t),t}),void 0,void 0,(()=>s.dispose()),l)}(0,s.mT)(d);class m extends s.hm{get debugName(){var e;return null!==(e=this._debugNameData.getDebugName(this))&&void 0!==e?e:"(anonymous)"}constructor(e,t,i,n){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0,s=arguments.length>5?arguments[5]:void 0;var r,l;super(),this._debugNameData=e,this._computeFn=t,this.createChangeSummary=i,this._handleChange=n,this._handleLastObserverRemoved=o,this._equalityComparator=s,this.state=0,this.value=void 0,this.updateCount=0,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=void 0,this.changeSummary=null===(r=this.createChangeSummary)||void 0===r?void 0:r.call(this),null===(l=(0,a.jl)())||void 0===l||l.handleDerivedCreated(this)}onLastObserverRemoved(){var e;this.state=0,this.value=void 0;for(const t of this.dependencies)t.removeObserver(this);this.dependencies.clear(),null===(e=this._handleLastObserverRemoved)||void 0===e||e.call(this)}get(){var e;if(0===this.observers.size){const t=this._computeFn(this,null===(e=this.createChangeSummary)||void 0===e?void 0:e.call(this));return this.onLastObserverRemoved(),t}do{if(1===this.state)for(const e of this.dependencies)if(e.reportChanges(),2===this.state)break;1===this.state&&(this.state=3),this._recomputeIfNeeded()}while(3!==this.state);return this.value}_recomputeIfNeeded(){var e,t;if(3===this.state)return;const i=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=i;const n=0!==this.state,o=this.value;this.state=3;const s=this.changeSummary;this.changeSummary=null===(e=this.createChangeSummary)||void 0===e?void 0:e.call(this);try{this.value=this._computeFn(this,s)}finally{for(const e of this.dependenciesToBeRemoved)e.removeObserver(this);this.dependenciesToBeRemoved.clear()}const r=n&&!this._equalityComparator(o,this.value);if(null===(t=(0,a.jl)())||void 0===t||t.handleDerivedRecomputed(this,{oldValue:o,newValue:this.value,change:void 0,didChange:r,hadValue:n}),r)for(const a of this.observers)a.handleChange(this,void 0)}toString(){return"LazyDerived<".concat(this.debugName,">")}beginUpdate(e){this.updateCount++;const t=1===this.updateCount;if(3===this.state&&(this.state=1,!t))for(const i of this.observers)i.handlePossibleChange(this);if(t)for(const i of this.observers)i.beginUpdate(this)}endUpdate(e){if(this.updateCount--,0===this.updateCount){const e=[...this.observers];for(const t of e)t.endUpdate(this)}(0,n.eZ)((()=>this.updateCount>=0))}handlePossibleChange(e){if(3===this.state&&this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)){this.state=1;for(const e of this.observers)e.handlePossibleChange(this)}}handleChange(e,t){if(this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)){const i=!this._handleChange||this._handleChange({changedObservable:e,change:t,didChange:t=>t===e},this.changeSummary),n=3===this.state;if(i&&(1===this.state||n)&&(this.state=2,n))for(const e of this.observers)e.handlePossibleChange(this)}}readObservable(e){e.addObserver(this);const t=e.get();return this.dependencies.add(e),this.dependenciesToBeRemoved.delete(e),t}addObserver(e){const t=!this.observers.has(e)&&this.updateCount>0;super.addObserver(e),t&&e.beginUpdate(this)}removeObserver(e){const t=this.observers.has(e)&&this.updateCount>0;super.removeObserver(e),t&&e.endUpdate(this)}}},47665:(e,t,i)=>{let n;function o(e){n=e}function s(){return n}i.d(t,{EK:()=>o,Qy:()=>r,jl:()=>s});class r{constructor(){this.indentation=0,this.changedObservablesSets=new WeakMap}textToConsoleArgs(e){return function(e){const t=new Array,i=[];let n="";function o(e){if("length"in e)for(const t of e)t&&o(t);else"text"in e?(n+="%c".concat(e.text),t.push(e.style),e.data&&i.push(...e.data)):"data"in e&&i.push(...e.data)}o(e);const s=[n,...t];return s.push(...i),s}([a(c("| ",this.indentation)),e])}formatInfo(e){return e.hadValue?e.didChange?[a(" "),h(d(e.oldValue,70),{color:"red",strikeThrough:!0}),a(" "),h(d(e.newValue,60),{color:"green"})]:[a(" (unchanged)")]:[a(" "),h(d(e.newValue,60),{color:"green"}),a(" (initial)")]}handleObservableChanged(e,t){console.log(...this.textToConsoleArgs([l("observable value changed"),h(e.debugName,{color:"BlueViolet"}),...this.formatInfo(t)]))}formatChanges(e){if(0!==e.size)return h(" (changed deps: "+[...e].map((e=>e.debugName)).join(", ")+")",{color:"gray"})}handleDerivedCreated(e){const t=e.handleChange;this.changedObservablesSets.set(e,new Set),e.handleChange=(i,n)=>(this.changedObservablesSets.get(e).add(i),t.apply(e,[i,n]))}handleDerivedRecomputed(e,t){const i=this.changedObservablesSets.get(e);console.log(...this.textToConsoleArgs([l("derived recomputed"),h(e.debugName,{color:"BlueViolet"}),...this.formatInfo(t),this.formatChanges(i),{data:[{fn:e._computeFn}]}])),i.clear()}handleFromEventObservableTriggered(e,t){console.log(...this.textToConsoleArgs([l("observable from event triggered"),h(e.debugName,{color:"BlueViolet"}),...this.formatInfo(t),{data:[{fn:e._getValue}]}]))}handleAutorunCreated(e){const t=e.handleChange;this.changedObservablesSets.set(e,new Set),e.handleChange=(i,n)=>(this.changedObservablesSets.get(e).add(i),t.apply(e,[i,n]))}handleAutorunTriggered(e){const t=this.changedObservablesSets.get(e);console.log(...this.textToConsoleArgs([l("autorun"),h(e.debugName,{color:"BlueViolet"}),this.formatChanges(t),{data:[{fn:e._runFn}]}])),t.clear(),this.indentation++}handleAutorunFinished(e){this.indentation--}handleBeginTransaction(e){let t=e.getDebugName();void 0===t&&(t=""),console.log(...this.textToConsoleArgs([l("transaction"),h(t,{color:"BlueViolet"}),{data:[{fn:e._fn}]}])),this.indentation++}handleEndTransaction(){this.indentation--}}function a(e){return h(e,{color:"black"})}function l(e){return h(function(e,t){for(;e.length1&&void 0!==arguments[1]?arguments[1]:{color:"black"};const i={color:t.color};return t.strikeThrough&&(i["text-decoration"]="line-through"),t.bold&&(i["font-weight"]="bold"),{text:e,style:(n=i,Object.entries(n).reduce(((e,t)=>{let[i,n]=t;return"".concat(e).concat(i,":").concat(n,";")}),""))};var n}function d(e,t){switch(typeof e){case"number":default:return""+e;case"string":return e.length+2<=t?'"'.concat(e,'"'):'"'.concat(e.substr(0,t-7),'"+...');case"boolean":return e?"true":"false";case"undefined":return"undefined";case"object":return null===e?"null":Array.isArray(e)?function(e,t){let i="[ ",n=!0;for(const o of e){if(n||(i+=", "),i.length-5>t){i+="...";break}n=!1,i+="".concat(d(o,t-i.length))}return i+=" ]",i}(e,t):function(e,t){let i="{ ",n=!0;for(const[o,s]of Object.entries(e)){if(n||(i+=", "),i.length-5>t){i+="...";break}n=!1,i+="".concat(o,": ").concat(d(s,t-i.length))}return i+=" }",i}(e,t);case"symbol":return e.toString();case"function":return"[[Function".concat(e.name?" "+e.name:"","]]")}}function c(e,t){let i="";for(let n=1;n<=t;n++)i+=e;return i}},90094:(e,t,i)=>{i.d(t,{DN:()=>p,Dz:()=>l,GN:()=>m,Zg:()=>b,aq:()=>u,bx:()=>v,rD:()=>d});var n=i(89599),o=i(52938),s=i(77434),r=i(4542),a=i(47665);function l(e){return new h(e)}class h extends o.Nc{constructor(e){super(),this.value=e}get debugName(){return this.toString()}get(){return this.value}addObserver(e){}removeObserver(e){}toString(){return"Const: ".concat(this.value)}}function d(e,t){return new c(e,t)}class c extends o.hm{constructor(e,t){super(),this.event=e,this._getValue=t,this.hasValue=!1,this.handleEvent=e=>{var t;const i=this._getValue(e),n=this.value,s=!this.hasValue||n!==i;let r=!1;s&&(this.value=i,this.hasValue&&(r=!0,(0,o.c8)(c.globalTransaction,(e=>{var t;null===(t=(0,a.jl)())||void 0===t||t.handleFromEventObservableTriggered(this,{oldValue:n,newValue:i,change:void 0,didChange:s,hadValue:this.hasValue});for(const i of this.observers)e.updateObserver(i,this),i.handleChange(this,void 0)}),(()=>{const e=this.getDebugName();return"Event fired"+(e?": ".concat(e):"")}))),this.hasValue=!0),r||null===(t=(0,a.jl)())||void 0===t||t.handleFromEventObservableTriggered(this,{oldValue:n,newValue:i,change:void 0,didChange:s,hadValue:this.hasValue})}}getDebugName(){return(0,s.$P)(this._getValue)}get debugName(){const e=this.getDebugName();return"From Event"+(e?": ".concat(e):"")}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0,this.hasValue=!1,this.value=void 0}get(){return this.subscription?(this.hasValue||this.handleEvent(void 0),this.value):this._getValue(void 0)}}function u(e,t){return new g(e,t)}!function(e){e.Observer=c,e.batchEventsGlobally=function(e,t){let i=!1;void 0===c.globalTransaction&&(c.globalTransaction=e,i=!0);try{t()}finally{i&&(c.globalTransaction=void 0)}}}(d||(d={}));class g extends o.hm{constructor(e,t){super(),this.debugName=e,this.event=t,this.handleEvent=()=>{(0,o.PS)((e=>{for(const t of this.observers)e.updateObserver(t,this),t.handleChange(this,void 0)}),(()=>this.debugName))}}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0}get(){}}function m(e){return"string"===typeof e?new f(e):new f(void 0,e)}class f extends o.hm{get debugName(){var e;return null!==(e=new s.IZ(this._owner,this._debugName,void 0).getDebugName(this))&&void 0!==e?e:"Observable Signal"}constructor(e,t){super(),this._debugName=e,this._owner=t}trigger(e,t){if(e)for(const i of this.observers)e.updateObserver(i,this),i.handleChange(this,t);else(0,o.PS)((e=>{this.trigger(e,t)}),(()=>"Trigger signal ".concat(this.debugName)))}get(){}}function p(e,t){const i=new _(!0,t);return e.addObserver(i),t?t(e.get()):e.reportChanges(),(0,n.OF)((()=>{e.removeObserver(i)}))}(0,o.Jn)((function(e){const t=new _(!1,void 0);return e.addObserver(t),(0,n.OF)((()=>{e.removeObserver(t)}))})),(0,o.MK)(p);class _{constructor(e,t){this._forceRecompute=e,this._handleValue=t,this._counter=0}beginUpdate(e){this._counter++}endUpdate(e){this._counter--,0===this._counter&&this._forceRecompute&&(this._handleValue?this._handleValue(e.get()):e.reportChanges())}handlePossibleChange(e){}handleChange(e,t){}}function v(e){let t;return(0,r.nK)((i=>(t=e(i,t),t)))}function b(e,t,i,n){let o=new C(i,n);return(0,r.bk)({debugReferenceFn:i,owner:e,onLastObserverRemoved:()=>{o.dispose(),o=new C(i)}},(e=>(o.setItems(t.read(e)),o.getItems())))}class C{constructor(e,t){this._map=e,this._keySelector=t,this._cache=new Map,this._items=[]}dispose(){this._cache.forEach((e=>e.store.dispose())),this._cache.clear()}setItems(e){const t=[],i=new Set(this._cache.keys());for(const o of e){const e=this._keySelector?this._keySelector(o):o;let s=this._cache.get(e);if(s)i.delete(e);else{const t=new n.SL;s={out:this._map(o,t),store:t},this._cache.set(e,s)}t.push(s.out)}for(const n of i){this._cache.get(n).store.dispose(),this._cache.delete(n)}this._items=t}getItems(){return this._items}}},51169:(e,t,i)=>{i.d(t,{DB:()=>L,DZ:()=>x,EZ:()=>N,Fv:()=>S,Gf:()=>k,KR:()=>y,Ku:()=>C,XX:()=>D,ir:()=>E});var n=i(17167);const o=65,s=97,r=90,a=122,l=46,h=47,d=92,c=58;class u extends Error{constructor(e,t,i){let n;"string"===typeof t&&0===t.indexOf("not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be";const o=-1!==e.indexOf(".")?"property":"argument";let s='The "'.concat(e,'" ').concat(o," ").concat(n," of type ").concat(t);s+=". Received type ".concat(typeof i),super(s),this.code="ERR_INVALID_ARG_TYPE"}}function g(e,t){if("string"!==typeof e)throw new u(t,"string",e)}const m="win32"===n.Jv;function f(e){return e===h||e===d}function p(e){return e===h}function _(e){return e>=o&&e<=r||e>=s&&e<=a}function v(e,t,i,n){let o="",s=0,r=-1,a=0,d=0;for(let c=0;c<=e.length;++c){if(c2){const e=o.lastIndexOf(i);-1===e?(o="",s=0):(o=o.slice(0,e),s=o.length-1-o.lastIndexOf(i)),r=c,a=0;continue}if(0!==o.length){o="",s=0,r=c,a=0;continue}}t&&(o+=o.length>0?"".concat(i,".."):"..",s=2)}else o.length>0?o+="".concat(i).concat(e.slice(r+1,c)):o=e.slice(r+1,c),s=c-r-1;r=c,a=0}else d===l&&-1!==a?++a:a=-1}return o}function b(e,t){!function(e,t){if(null===e||"object"!==typeof e)throw new u(t,"Object",e)}(t,"pathObject");const i=t.dir||t.root,n=t.base||"".concat(t.name||"").concat(t.ext||"");return i?i===t.root?"".concat(i).concat(n):"".concat(i).concat(e).concat(n):n}const C={resolve(){let e="",t="",i=!1;for(let o=arguments.length-1;o>=-1;o--){let s;if(o>=0){if(s=o<0||arguments.length<=o?void 0:arguments[o],g(s,"path"),0===s.length)continue}else 0===e.length?s=n.Vj():(s={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",REACT_APP_META_BACKEND:"undefined"}["=".concat(e)]||n.Vj(),(void 0===s||s.slice(0,2).toLowerCase()!==e.toLowerCase()&&s.charCodeAt(2)===d)&&(s="".concat(e,"\\")));const r=s.length;let a=0,l="",h=!1;const u=s.charCodeAt(0);if(1===r)f(u)&&(a=1,h=!0);else if(f(u))if(h=!0,f(s.charCodeAt(1))){let e=2,t=e;for(;e2&&f(s.charCodeAt(2))&&(h=!0,a=3));if(l.length>0)if(e.length>0){if(l.toLowerCase()!==e.toLowerCase())continue}else e=l;if(i){if(e.length>0)break}else if(t="".concat(s.slice(a),"\\").concat(t),i=h,h&&e.length>0)break}return t=v(t,!i,"\\",f),i?"".concat(e,"\\").concat(t):"".concat(e).concat(t)||"."},normalize(e){g(e,"path");const t=e.length;if(0===t)return".";let i,n=0,o=!1;const s=e.charCodeAt(0);if(1===t)return p(s)?"\\":e;if(f(s))if(o=!0,f(e.charCodeAt(1))){let o=2,s=o;for(;o2&&f(e.charCodeAt(2))&&(o=!0,n=3));let r=n0&&f(e.charCodeAt(t-1))&&(r+="\\"),void 0===i?o?"\\".concat(r):r:o?"".concat(i,"\\").concat(r):"".concat(i).concat(r)},isAbsolute(e){g(e,"path");const t=e.length;if(0===t)return!1;const i=e.charCodeAt(0);return f(i)||t>2&&_(i)&&e.charCodeAt(1)===c&&f(e.charCodeAt(2))},join(){if(0===arguments.length)return".";let e,t;for(let o=0;o0&&(void 0===e?e=t=i:e+="\\".concat(i))}if(void 0===e)return".";let i=!0,n=0;if("string"===typeof t&&f(t.charCodeAt(0))){++n;const e=t.length;e>1&&f(t.charCodeAt(1))&&(++n,e>2&&(f(t.charCodeAt(2))?++n:i=!1))}if(i){for(;n=2&&(e="\\".concat(e.slice(n)))}return C.normalize(e)},relative(e,t){if(g(e,"from"),g(t,"to"),e===t)return"";const i=C.resolve(e),n=C.resolve(t);if(i===n)return"";if((e=i.toLowerCase())===(t=n.toLowerCase()))return"";let o=0;for(;oo&&e.charCodeAt(s-1)===d;)s--;const r=s-o;let a=0;for(;aa&&t.charCodeAt(l-1)===d;)l--;const h=l-a,c=rc){if(t.charCodeAt(a+m)===d)return n.slice(a+m+1);if(2===m)return n.slice(a+m)}r>c&&(e.charCodeAt(o+m)===d?u=m:2===m&&(u=3)),-1===u&&(u=0)}let f="";for(m=o+u+1;m<=s;++m)m!==s&&e.charCodeAt(m)!==d||(f+=0===f.length?"..":"\\..");return a+=u,f.length>0?"".concat(f).concat(n.slice(a,l)):(n.charCodeAt(a)===d&&++a,n.slice(a,l))},toNamespacedPath(e){if("string"!==typeof e||0===e.length)return e;const t=C.resolve(e);if(t.length<=2)return e;if(t.charCodeAt(0)===d){if(t.charCodeAt(1)===d){const e=t.charCodeAt(2);if(63!==e&&e!==l)return"\\\\?\\UNC\\".concat(t.slice(2))}}else if(_(t.charCodeAt(0))&&t.charCodeAt(1)===c&&t.charCodeAt(2)===d)return"\\\\?\\".concat(t);return e},dirname(e){g(e,"path");const t=e.length;if(0===t)return".";let i=-1,n=0;const o=e.charCodeAt(0);if(1===t)return f(o)?e:".";if(f(o)){if(i=n=1,f(e.charCodeAt(1))){let o=2,s=o;for(;o2&&f(e.charCodeAt(2))?3:2,n=i);let s=-1,r=!0;for(let a=t-1;a>=n;--a)if(f(e.charCodeAt(a))){if(!r){s=a;break}}else r=!1;if(-1===s){if(-1===i)return".";s=i}return e.slice(0,s)},basename(e,t){void 0!==t&&g(t,"ext"),g(e,"path");let i,n=0,o=-1,s=!0;if(e.length>=2&&_(e.charCodeAt(0))&&e.charCodeAt(1)===c&&(n=2),void 0!==t&&t.length>0&&t.length<=e.length){if(t===e)return"";let r=t.length-1,a=-1;for(i=e.length-1;i>=n;--i){const l=e.charCodeAt(i);if(f(l)){if(!s){n=i+1;break}}else-1===a&&(s=!1,a=i+1),r>=0&&(l===t.charCodeAt(r)?-1===--r&&(o=i):(r=-1,o=a))}return n===o?o=a:-1===o&&(o=e.length),e.slice(n,o)}for(i=e.length-1;i>=n;--i)if(f(e.charCodeAt(i))){if(!s){n=i+1;break}}else-1===o&&(s=!1,o=i+1);return-1===o?"":e.slice(n,o)},extname(e){g(e,"path");let t=0,i=-1,n=0,o=-1,s=!0,r=0;e.length>=2&&e.charCodeAt(1)===c&&_(e.charCodeAt(0))&&(t=n=2);for(let a=e.length-1;a>=t;--a){const t=e.charCodeAt(a);if(f(t)){if(!s){n=a+1;break}}else-1===o&&(s=!1,o=a+1),t===l?-1===i?i=a:1!==r&&(r=1):-1!==i&&(r=-1)}return-1===i||-1===o||0===r||1===r&&i===o-1&&i===n+1?"":e.slice(i,o)},format:b.bind(null,"\\"),parse(e){g(e,"path");const t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;const i=e.length;let n=0,o=e.charCodeAt(0);if(1===i)return f(o)?(t.root=t.dir=e,t):(t.base=t.name=e,t);if(f(o)){if(n=1,f(e.charCodeAt(1))){let t=2,o=t;for(;t0&&(t.root=e.slice(0,n));let s=-1,r=n,a=-1,h=!0,d=e.length-1,u=0;for(;d>=n;--d)if(o=e.charCodeAt(d),f(o)){if(!h){r=d+1;break}}else-1===a&&(h=!1,a=d+1),o===l?-1===s?s=d:1!==u&&(u=1):-1!==s&&(u=-1);return-1!==a&&(-1===s||0===u||1===u&&s===a-1&&s===r+1?t.base=t.name=e.slice(r,a):(t.name=e.slice(r,s),t.base=e.slice(r,a),t.ext=e.slice(s,a))),t.dir=r>0&&r!==n?e.slice(0,r-1):t.root,t},sep:"\\",delimiter:";",win32:null,posix:null},w=(()=>{if(m){const e=/\\/g;return()=>{const t=n.Vj().replace(e,"/");return t.slice(t.indexOf("/"))}}return()=>n.Vj()})(),y={resolve(){let e="",t=!1;for(let i=arguments.length-1;i>=-1&&!t;i--){const n=i>=0?i<0||arguments.length<=i?void 0:arguments[i]:w();g(n,"path"),0!==n.length&&(e="".concat(n,"/").concat(e),t=n.charCodeAt(0)===h)}return e=v(e,!t,"/",p),t?"/".concat(e):e.length>0?e:"."},normalize(e){if(g(e,"path"),0===e.length)return".";const t=e.charCodeAt(0)===h,i=e.charCodeAt(e.length-1)===h;return 0===(e=v(e,!t,"/",p)).length?t?"/":i?"./":".":(i&&(e+="/"),t?"/".concat(e):e)},isAbsolute:e=>(g(e,"path"),e.length>0&&e.charCodeAt(0)===h),join(){if(0===arguments.length)return".";let e;for(let t=0;t0&&(void 0===e?e=i:e+="/".concat(i))}return void 0===e?".":y.normalize(e)},relative(e,t){if(g(e,"from"),g(t,"to"),e===t)return"";if((e=y.resolve(e))===(t=y.resolve(t)))return"";const i=e.length,n=i-1,o=t.length-1,s=ns){if(t.charCodeAt(1+a)===h)return t.slice(1+a+1);if(0===a)return t.slice(1+a)}else n>s&&(e.charCodeAt(1+a)===h?r=a:0===a&&(r=0));let l="";for(a=1+r+1;a<=i;++a)a!==i&&e.charCodeAt(a)!==h||(l+=0===l.length?"..":"/..");return"".concat(l).concat(t.slice(1+r))},toNamespacedPath:e=>e,dirname(e){if(g(e,"path"),0===e.length)return".";const t=e.charCodeAt(0)===h;let i=-1,n=!0;for(let o=e.length-1;o>=1;--o)if(e.charCodeAt(o)===h){if(!n){i=o;break}}else n=!1;return-1===i?t?"/":".":t&&1===i?"//":e.slice(0,i)},basename(e,t){void 0!==t&&g(t,"ext"),g(e,"path");let i,n=0,o=-1,s=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t===e)return"";let r=t.length-1,a=-1;for(i=e.length-1;i>=0;--i){const l=e.charCodeAt(i);if(l===h){if(!s){n=i+1;break}}else-1===a&&(s=!1,a=i+1),r>=0&&(l===t.charCodeAt(r)?-1===--r&&(o=i):(r=-1,o=a))}return n===o?o=a:-1===o&&(o=e.length),e.slice(n,o)}for(i=e.length-1;i>=0;--i)if(e.charCodeAt(i)===h){if(!s){n=i+1;break}}else-1===o&&(s=!1,o=i+1);return-1===o?"":e.slice(n,o)},extname(e){g(e,"path");let t=-1,i=0,n=-1,o=!0,s=0;for(let r=e.length-1;r>=0;--r){const a=e.charCodeAt(r);if(a!==h)-1===n&&(o=!1,n=r+1),a===l?-1===t?t=r:1!==s&&(s=1):-1!==t&&(s=-1);else if(!o){i=r+1;break}}return-1===t||-1===n||0===s||1===s&&t===n-1&&t===i+1?"":e.slice(t,n)},format:b.bind(null,"/"),parse(e){g(e,"path");const t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;const i=e.charCodeAt(0)===h;let n;i?(t.root="/",n=1):n=0;let o=-1,s=0,r=-1,a=!0,d=e.length-1,c=0;for(;d>=n;--d){const t=e.charCodeAt(d);if(t!==h)-1===r&&(a=!1,r=d+1),t===l?-1===o?o=d:1!==c&&(c=1):-1!==o&&(c=-1);else if(!a){s=d+1;break}}if(-1!==r){const n=0===s&&i?1:s;-1===o||0===c||1===c&&o===r-1&&o===s+1?t.base=t.name=e.slice(n,r):(t.name=e.slice(n,o),t.base=e.slice(n,r),t.ext=e.slice(o,r))}return s>0?t.dir=e.slice(0,s-1):i&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};y.win32=C.win32=C,y.posix=C.posix=y;const S=m?C.normalize:y.normalize,L=m?C.resolve:y.resolve,k=m?C.relative:y.relative,D=m?C.dirname:y.dirname,N=m?C.basename:y.basename,x=m?C.extname:y.extname,E=m?C.sep:y.sep},21511:(e,t,i)=>{i.d(t,{$L:()=>T,Dt:()=>G,ED:()=>N,G6:()=>j,IJ:()=>E,OS:()=>z,dK:()=>P,dz:()=>x,fn:()=>B,gn:()=>A,i7:()=>K,qB:()=>M,r:()=>H,tY:()=>I,tq:()=>R,un:()=>q,vU:()=>U});var n,o,s=i(71721);const r="en";let a,l,h=!1,d=!1,c=!1,u=!1,g=!1,m=!1,f=!1,p=!1,_=!1,v=!1,b=r,C=null,w=null;const y=globalThis;let S;"undefined"!==typeof y.vscode&&"undefined"!==typeof y.vscode.process?S=y.vscode.process:"undefined"!==typeof process&&"string"===typeof(null===(n=null===process||void 0===process?void 0:process.versions)||void 0===n?void 0:n.node)&&(S=process);const L="string"===typeof(null===(o=null===S||void 0===S?void 0:S.versions)||void 0===o?void 0:o.electron),k=L&&"renderer"===(null===S||void 0===S?void 0:S.type);if("object"===typeof S){h="win32"===S.platform,d="darwin"===S.platform,c="linux"===S.platform,u=c&&!!S.env.SNAP&&!!S.env.SNAP_REVISION,f=L,_=!!S.env.CI||!!S.env.BUILD_ARTIFACTSTAGINGDIRECTORY,a=r,b=r;const e=S.env.VSCODE_NLS_CONFIG;if(e)try{const t=JSON.parse(e),i=t.availableLanguages["*"];a=t.locale,C=t.osLocale,b=i||r,w=t._translationsConfigFile}catch(Q){}g=!0}else if("object"!==typeof navigator||k)console.error("Unable to resolve platform.");else{l=navigator.userAgent,h=l.indexOf("Windows")>=0,d=l.indexOf("Macintosh")>=0,p=(l.indexOf("Macintosh")>=0||l.indexOf("iPad")>=0||l.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,c=l.indexOf("Linux")>=0,v=(null===l||void 0===l?void 0:l.indexOf("Mobi"))>=0,m=!0;a=s.aj(s.NC({key:"ensureLoaderPluginIsLoaded",comment:["{Locked}"]},"_"))||r,b=a,C=navigator.language}let D=0;d?D=1:h?D=3:c&&(D=2);const N=h,x=d,E=c,I=g,T=m,M=m&&"function"===typeof y.importScripts?y.origin:void 0,A=p,R=v,O=l,P=b,F="function"===typeof y.postMessage&&!y.importScripts,B=(()=>{if(F){const e=[];y.addEventListener("message",(t=>{if(t.data&&t.data.vscodeScheduleAsyncWork)for(let i=0,n=e.length;i{const n=++t;e.push({id:n,callback:i}),y.postMessage({vscodeScheduleAsyncWork:n},"*")}}return e=>setTimeout(e)})(),z=d||p?2:h?1:3;let V=!0,W=!1;function H(){if(!W){W=!0;const e=new Uint8Array(2);e[0]=1,e[1]=2;const t=new Uint16Array(e.buffer);V=513===t[0]}return V}const K=!!(O&&O.indexOf("Chrome")>=0),U=!!(O&&O.indexOf("Firefox")>=0),j=!!(!K&&O&&O.indexOf("Safari")>=0),q=!!(O&&O.indexOf("Edg/")>=0),G=!!(O&&O.indexOf("Android")>=0)},17167:(e,t,i)=>{i.d(t,{Jv:()=>l,OB:()=>a,Vj:()=>r});var n=i(21511);let o;const s=globalThis.vscode;if("undefined"!==typeof s&&"undefined"!==typeof s.process){const e=s.process;o={get platform(){return e.platform},get arch(){return e.arch},get env(){return e.env},cwd:()=>e.cwd()}}else o="undefined"!==typeof process?{get platform(){return process.platform},get arch(){return process.arch},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",REACT_APP_META_BACKEND:"undefined"}},cwd:()=>({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",REACT_APP_META_BACKEND:"undefined"}.VSCODE_CWD||process.cwd())}:{get platform(){return n.ED?"win32":n.dz?"darwin":"linux"},get arch(){},get env(){return{}},cwd:()=>"/"};const r=o.cwd,a=o.env,l=o.platform},75799:(e,t,i)=>{var n;i.d(t,{e:()=>n}),function(e){function t(e,t){if(e.start>=t.end||t.start>=e.end)return{start:0,end:0};const i=Math.max(e.start,t.start),n=Math.min(e.end,t.end);return n-i<=0?{start:0,end:0}:{start:i,end:n}}function i(e){return e.end-e.start<=0}e.intersect=t,e.isEmpty=i,e.intersects=function(e,n){return!i(t(e,n))},e.relativeComplement=function(e,t){const n=[],o={start:e.start,end:Math.min(t.start,e.end)},s={start:Math.max(t.end,e.start),end:e.end};return i(o)||n.push(o),i(s)||n.push(s),n}}(n||(n={}))},55694:(e,t,i)=>{i.d(t,{AH:()=>v,DZ:()=>f,EZ:()=>m,Hx:()=>g,SF:()=>c,Vb:()=>S,Vo:()=>_,XX:()=>p,Xy:()=>u,i3:()=>C,lX:()=>b,z_:()=>h});var n=i(9861),o=i(33211),s=i(51169),r=i(21511),a=i(25085),l=i(82682);function h(e){return(0,l.q)(e,!0)}class d{constructor(e){this._ignorePathCasing=e}compare(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e===t?0:(0,a.qu)(this.getComparisonKey(e,i),this.getComparisonKey(t,i))}isEqual(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e===t||!(!e||!t)&&this.getComparisonKey(e,i)===this.getComparisonKey(t,i)}getComparisonKey(e){let 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()}isEqualOrParent(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(e.scheme===t.scheme){if(e.scheme===o.lg.file)return n.KM(h(e),h(t),this._ignorePathCasing(e))&&e.query===t.query&&(i||e.fragment===t.fragment);if(w(e.authority,t.authority))return n.KM(e.path,t.path,this._ignorePathCasing(e),"/")&&e.query===t.query&&(i||e.fragment===t.fragment)}return!1}joinPath(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;n1&&void 0!==arguments[1]?arguments[1]:s.ir;if(e.scheme===o.lg.file){const i=h(e);return i.length>n.yj(i).length&&i[i.length-1]===t}{const t=e.path;return t.length>1&&47===t.charCodeAt(t.length-1)&&!/^[a-zA-Z]:(\/$|\\$)/.test(e.fsPath)}}removeTrailingPathSeparator(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s.ir;return y(e,t)?e.with({path:e.path.substr(0,e.path.length-1)}):e}addTrailingPathSeparator(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s.ir,i=!1;if(e.scheme===o.lg.file){const o=h(e);i=void 0!==o&&o.length===n.yj(o).length&&o[o.length-1]===t}else{t="/";const n=e.path;i=1===n.length&&47===n.charCodeAt(n.length-1)}return i||y(e,t)?e:e.with({path:e.path+"/"})}}const c=new d((()=>!1)),u=(new d((e=>e.scheme!==o.lg.file||!r.IJ)),new d((e=>!0)),c.isEqual.bind(c)),g=(c.isEqualOrParent.bind(c),c.getComparisonKey.bind(c),c.basenameOrAuthority.bind(c)),m=c.basename.bind(c),f=c.extname.bind(c),p=c.dirname.bind(c),_=c.joinPath.bind(c),v=c.normalizePath.bind(c),b=c.relativePath.bind(c),C=c.resolvePath.bind(c),w=(c.isAbsolutePath.bind(c),c.isEqualAuthority.bind(c)),y=c.hasTrailingPathSeparator.bind(c);c.removeTrailingPathSeparator.bind(c),c.addTrailingPathSeparator.bind(c);var S;!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){const i=new Map;t.path.substring(t.path.indexOf(";")+1,t.path.lastIndexOf(";")).split(";").forEach((e=>{const[t,n]=e.split(":");t&&n&&i.set(t,n)}));const n=t.path.substring(0,t.path.indexOf(";"));return n&&i.set(e.META_DATA_MIME,n),i}}(S||(S={}))},89314:(e,t,i)=>{i.d(t,{Rm:()=>r});var n=i(24219),o=i(89599);class s{constructor(e,t,i,n,o,s,r){this._forceIntegerValues=e,this._scrollStateBrand=void 0,this._forceIntegerValues&&(t|=0,i|=0,n|=0,o|=0,s|=0,r|=0),this.rawScrollLeft=n,this.rawScrollTop=r,t<0&&(t=0),n+t>i&&(n=i-t),n<0&&(n=0),o<0&&(o=0),r+o>s&&(r=s-o),r<0&&(r=0),this.width=t,this.scrollWidth=i,this.scrollLeft=n,this.height=o,this.scrollHeight=s,this.scrollTop=r}equals(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}withScrollDimensions(e,t){return new s(this._forceIntegerValues,"undefined"!==typeof e.width?e.width:this.width,"undefined"!==typeof e.scrollWidth?e.scrollWidth:this.scrollWidth,t?this.rawScrollLeft:this.scrollLeft,"undefined"!==typeof e.height?e.height:this.height,"undefined"!==typeof e.scrollHeight?e.scrollHeight:this.scrollHeight,t?this.rawScrollTop:this.scrollTop)}withScrollPosition(e){return new s(this._forceIntegerValues,this.width,this.scrollWidth,"undefined"!==typeof e.scrollLeft?e.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,"undefined"!==typeof e.scrollTop?e.scrollTop:this.rawScrollTop)}createScrollEvent(e,t){const i=this.width!==e.width,n=this.scrollWidth!==e.scrollWidth,o=this.scrollLeft!==e.scrollLeft,s=this.height!==e.height,r=this.scrollHeight!==e.scrollHeight,a=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:i,scrollWidthChanged:n,scrollLeftChanged:o,heightChanged:s,scrollHeightChanged:r,scrollTopChanged:a}}}class r extends o.JT{constructor(e){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new n.Q5),this.onScroll=this._onScroll.event,this._smoothScrollDuration=e.smoothScrollDuration,this._scheduleAtNextAnimationFrame=e.scheduleAtNextAnimationFrame,this._state=new s(e.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),super.dispose()}setSmoothScrollDuration(e){this._smoothScrollDuration=e}validateScrollPosition(e){return this._state.withScrollPosition(e)}getScrollDimensions(){return this._state}setScrollDimensions(e,t){var i;const n=this._state.withScrollDimensions(e,t);this._setState(n,Boolean(this._smoothScrolling)),null===(i=this._smoothScrolling)||void 0===i||i.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(e){const t=this._state.withScrollPosition(e);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(t,!1)}setScrollPositionSmooth(e,t){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};const i=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===i.scrollLeft&&this._smoothScrolling.to.scrollTop===i.scrollTop)return;let n;n=t?new h(this._smoothScrolling.from,i,this._smoothScrolling.startTime,this._smoothScrolling.duration):this._smoothScrolling.combine(this._state,i,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=n}else{const t=this._state.withScrollPosition(e);this._smoothScrolling=h.start(this._state,t,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())}))}hasPendingScrollAnimation(){return Boolean(this._smoothScrolling)}_performSmoothScrolling(){if(!this._smoothScrolling)return;const e=this._smoothScrolling.tick(),t=this._state.withScrollPosition(e);return this._setState(t,!0),this._smoothScrolling?e.isDone?(this._smoothScrolling.dispose(),void(this._smoothScrolling=null)):void(this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())}))):void 0}_setState(e,t){const i=this._state;i.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(i,t)))}}class a{constructor(e,t,i){this.scrollLeft=e,this.scrollTop=t,this.isDone=i}}function l(e,t){const i=t-e;return function(t){return e+i*(1-function(e){return Math.pow(e,3)}(1-t))}}class h{constructor(e,t,i,n){this.from=e,this.to=t,this.duration=n,this.startTime=i,this.animationFrameDisposable=null,this._initAnimations()}_initAnimations(){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)}_initAnimation(e,t,i){if(Math.abs(e-t)>2.5*i){let r,a;return e{i.d(t,{Z:()=>s});var n,o=i(25085);!function(e){e[e.Ignore=0]="Ignore",e[e.Info=1]="Info",e[e.Warning=2]="Warning",e[e.Error=3]="Error"}(n||(n={})),function(e){const t="error",i="warning",n="warn",s="info",r="ignore";e.fromValue=function(r){return r?o.qq(t,r)?e.Error:o.qq(i,r)||o.qq(n,r)?e.Warning:o.qq(s,r)?e.Info:e.Ignore:e.Ignore},e.toString=function(n){switch(n){case e.Error:return t;case e.Warning:return i;case e.Info:return s;default:return r}}}(n||(n={}));const s=n},6459:(e,t,i)=>{i.d(t,{G:()=>o});const n=globalThis.performance&&"function"===typeof globalThis.performance.now;class o{static create(e){return new o(e)}constructor(e){this._now=n&&!1===e?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return-1!==this._stopTime?this._stopTime-this._startTime:this._now()-this._startTime}}},25085:(e,t,i)=>{i.d(t,{$i:()=>G,B4:()=>re,C8:()=>$,Fw:()=>C,GF:()=>_,HO:()=>H,IO:()=>v,J_:()=>K,K7:()=>Y,Kw:()=>ee,LC:()=>w,Mh:()=>A,P1:()=>R,PJ:()=>te,Qe:()=>Q,R1:()=>p,T5:()=>x,TT:()=>k,Ut:()=>j,V8:()=>y,W1:()=>V,WU:()=>l,YK:()=>P,YU:()=>d,ZG:()=>O,ZH:()=>B,ZK:()=>ae,ab:()=>Z,c1:()=>J,df:()=>I,ec:()=>c,fA:()=>h,fy:()=>u,j3:()=>g,j_:()=>N,m5:()=>r,mK:()=>E,oH:()=>oe,oL:()=>m,ok:()=>M,ow:()=>S,qq:()=>T,qu:()=>L,rL:()=>F,uS:()=>X,un:()=>f,uq:()=>b,vH:()=>W,vU:()=>le,zY:()=>D});var n,o=i(31372),s=i(73187);function r(e){return!e||"string"!==typeof e||0===e.trim().length}const a=/{(\d+)}/g;function l(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;n=i.length?e:i[n]}))}function h(e){return e.replace(/[<>"'&]/g,(e=>{switch(e){case"<":return"<";case">":return">";case'"':return""";case"'":return"'";case"&":return"&"}return e}))}function d(e){return e.replace(/[<>&]/g,(function(e){switch(e){case"<":return"<";case">":return">";case"&":return"&";default:return e}}))}function c(e){return e.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" ";return m(g(e,t),t)}function g(e,t){if(!e||!t)return e;const i=t.length;if(0===i||0===e.length)return e;let n=0;for(;e.indexOf(t,n)===n;)n+=i;return e.substring(n)}function m(e,t){if(!e||!t)return e;const i=t.length,n=e.length;if(0===i||0===n)return e;let o=n,s=-1;for(;s=e.lastIndexOf(t,o-1),-1!==s&&s+i===o;){if(0===s)return"";o=s}return e.substring(0,o)}function f(e){return e.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function p(e){return e.replace(/\*/g,"")}function _(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e)throw new Error("Cannot create regex from empty string");t||(e=c(e)),i.wholeWord&&(/\B/.test(e.charAt(0))||(e="\\b"+e),/\B/.test(e.charAt(e.length-1))||(e+="\\b"));let n="";return i.global&&(n+="g"),i.matchCase||(n+="i"),i.multiline&&(n+="m"),i.unicode&&(n+="u"),new RegExp(e,n)}function v(e){if("^"===e.source||"^$"===e.source||"$"===e.source||"^\\s*$"===e.source)return!1;return!(!e.exec("")||0!==e.lastIndex)}function b(e){return e.split(/\r\n|\r|\n/)}function C(e){var t;const i=[],n=e.split(/(\r\n|\r|\n)/);for(let o=0;o1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length;for(let n=t;n1&&void 0!==arguments[1]?arguments[1]:e.length-1;t>=0;t--){const i=e.charCodeAt(t);if(32!==i&&9!==i)return t}return-1}function L(e,t){return et?1:0}function k(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:t.length;for(;is)return 1}const r=n-i,a=s-o;return ra?1:0}function D(e,t){return N(e,t,0,e.length,0,t.length)}function N(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:t.length;for(;i=128||a>=128)return k(e.toLowerCase(),t.toLowerCase(),i,n,o,s);E(r)&&(r-=32),E(a)&&(a-=32);const l=r-a;if(0!==l)return l}const r=n-i,a=s-o;return ra?1:0}function x(e){return e>=48&&e<=57}function E(e){return e>=97&&e<=122}function I(e){return e>=65&&e<=90}function T(e,t){return e.length===t.length&&0===N(e,t)}function M(e,t){const i=t.length;return!(t.length>e.length)&&0===N(e,t,0,i)}function A(e,t){const i=Math.min(e.length,t.length);let n;for(n=0;n1&&void 0!==arguments[1]?arguments[1]:0;this._str=e,this._len=e.length,this._offset=t}setOffset(e){this._offset=e}prevCodePoint(){const e=function(e,t){const i=e.charCodeAt(t-1);if(P(i)&&t>1){const n=e.charCodeAt(t-2);if(O(n))return F(n,i)}return i}(this._str,this._offset);return this._offset-=e>=65536?2:1,e}nextCodePoint(){const e=B(this._str,this._len,this._offset);return this._offset+=e>=65536?2:1,e}eol(){return this._offset>=this._len}}class V{get offset(){return this._iterator.offset}constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._iterator=new z(e,t)}nextGraphemeLength(){const e=ne.getInstance(),t=this._iterator,i=t.offset;let n=e.getGraphemeBreakType(t.nextCodePoint());for(;!t.eol();){const i=t.offset,o=e.getGraphemeBreakType(t.nextCodePoint());if(ie(n,o)){t.setOffset(i);break}n=o}return t.offset-i}prevGraphemeLength(){const e=ne.getInstance(),t=this._iterator,i=t.offset;let n=e.getGraphemeBreakType(t.prevCodePoint());for(;t.offset>0;){const i=t.offset,o=e.getGraphemeBreakType(t.prevCodePoint());if(ie(o,n)){t.setOffset(i);break}n=o}return i-t.offset}eol(){return this._iterator.eol()}}function W(e,t){return new V(e,t).nextGraphemeLength()}function H(e,t){return new V(e,t).prevGraphemeLength()}function K(e,t){t>0&&P(e.charCodeAt(t))&&t--;const i=t+W(e,t);return[i-H(e,i),i]}let U;function j(e){return U||(U=/(?:[\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\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/),U.test(e)}const q=/^[\t\n\r\x20-\x7E]*$/;function G(e){return q.test(e)}const Q=/[\u2028\u2029]/;function Z(e){return Q.test(e)}function Y(e){return e>=11904&&e<=55215||e>=63744&&e<=64255||e>=65281&&e<=65374}function $(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<=129008||e>=129280&&e<=129535||e>=129648&&e<=129782}const J=String.fromCharCode(65279);function X(e){return!!(e&&e.length>0&&65279===e.charCodeAt(0))}function ee(e){return!!e&&(arguments.length>1&&void 0!==arguments[1]&&arguments[1]&&(e=e.replace(/\\./g,"")),e.toLowerCase()!==e)}function te(e){return(e%=52)<26?String.fromCharCode(97+e):String.fromCharCode(65+e-26)}function ie(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)))))))))}class ne{static getInstance(){return ne._INSTANCE||(ne._INSTANCE=new ne),ne._INSTANCE}constructor(){this._data=JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,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,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,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,129008,129008,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,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,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,2192,2193,1,2250,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,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,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,6862,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,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,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,9775,9775,14,9784,9785,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,9874,14,9876,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,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,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,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,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,118528,118573,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,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}getGraphemeBreakType(e){if(e<32)return 10===e?3:13===e?2:4;if(e<127)return 0;const t=this._data,i=t.length/3;let n=1;for(;n<=i;)if(et[3*n+1]))return t[3*n+2];n=2*n+1}return 0}}function oe(e,t){if(0===e)return 0;const i=function(e,t){const i=new z(t,e);let n=i.prevCodePoint();for(;se(n)||65039===n||8419===n;){if(0===i.offset)return;n=i.prevCodePoint()}if(!$(n))return;let o=i.offset;if(o>0){8205===i.prevCodePoint()&&(o=i.offset)}return o}(e,t);if(void 0!==i)return i;const n=new z(t,e);return n.prevCodePoint(),n.offset}function se(e){return 127995<=e&&e<=127999}ne._INSTANCE=null;const re="\xa0";class ae{static getInstance(e){return n.cache.get(Array.from(e))}static getLocales(){return n._locales.value}constructor(e){this.confusableDictionary=e}isAmbiguous(e){return this.confusableDictionary.has(e)}getPrimaryConfusable(e){return this.confusableDictionary.get(e)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}}n=ae,ae.ambiguousCharacterData=new s.o((()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'))),ae.cache=new o.t((e=>{function t(e){const t=new Map;for(let i=0;i!e.startsWith("_")&&e in o));0===r.length&&(r=["_default"]);for(const n of r){s=i(s,t(o[n]))}const a=function(e,t){const i=new Map(e);for(const[n,o]of t)i.set(n,o);return i}(t(o._common),s);return new n(a)})),ae._locales=new s.o((()=>Object.keys(n.ambiguousCharacterData.value).filter((e=>!e.startsWith("_")))));class le{static getRawData(){return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]")}static getData(){return this._data||(this._data=new Set(le.getRawData())),this._data}static isInvisibleCharacter(e){return le.getData().has(e)}static get codePoints(){return le.getData()}}le._data=void 0},59786:(e,t,i)=>{i.d(t,{n:()=>n});const n=Symbol("MicrotaskDelay")},737:(e,t,i)=>{i.d(t,{Id:()=>h});var n=i(25085);class o{constructor(){this._value="",this._pos=0}reset(e){return this._value=e,this._pos=0,this}next(){return this._pos+=1,this}hasNext(){return this._pos0&&void 0!==arguments[0])||arguments[0];this._caseSensitive=e}reset(e){return this._value=e,this._from=0,this._to=0,this.next()}hasNext(){return this._to0&&void 0!==arguments[0])||arguments[0],t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this._splitOnBackslash=e,this._caseSensitive=t}reset(e){this._from=0,this._to=0,this._value=e,this._valueLen=e.length;for(let t=e.length-1;t>=0;t--,this._valueLen--){const e=this._value.charCodeAt(t);if(!(47===e||this._splitOnBackslash&&92===e))break}return this.next()}hasNext(){return this._to0&&void 0!==arguments[0]?arguments[0]:()=>!1,arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>!1))}static forStrings(){return new h(new o)}static forConfigKeys(){return new h(new s)}constructor(e){this._iter=e}clear(){this._root=void 0}set(e,t){const i=this._iter.reset(e);let n;this._root||(this._root=new l,this._root.segment=i.value());const o=[];for(n=this._root;;){const e=i.cmp(n.segment);if(e>0)n.left||(n.left=new l,n.left.segment=i.value()),o.push([-1,n]),n=n.left;else if(e<0)n.right||(n.right=new l,n.right.segment=i.value()),o.push([1,n]),n=n.right;else{if(!i.hasNext())break;i.next(),n.mid||(n.mid=new l,n.mid.segment=i.value()),o.push([0,n]),n=n.mid}}const s=n.value;n.value=t,n.key=e;for(let r=o.length-1;r>=0;r--){const e=o[r][1];e.updateHeight();const t=e.balanceFactor();if(t<-1||t>1){const t=o[r][0],i=o[r+1][0];if(1===t&&1===i)o[r][1]=e.rotateLeft();else if(-1===t&&-1===i)o[r][1]=e.rotateRight();else if(1===t&&-1===i)e.right=o[r+1][1]=o[r+1][1].rotateRight(),o[r][1]=e.rotateLeft();else{if(-1!==t||1!==i)throw new Error;e.left=o[r+1][1]=o[r+1][1].rotateLeft(),o[r][1]=e.rotateRight()}if(r>0)switch(o[r-1][0]){case-1:o[r-1][1].left=o[r][1];break;case 1:o[r-1][1].right=o[r][1];break;case 0:o[r-1][1].mid=o[r][1]}else this._root=o[0][1]}}return s}get(e){var t;return null===(t=this._getNode(e))||void 0===t?void 0:t.value}_getNode(e){const t=this._iter.reset(e);let i=this._root;for(;i;){const e=t.cmp(i.segment);if(e>0)i=i.left;else if(e<0)i=i.right;else{if(!t.hasNext())break;t.next(),i=i.mid}}return i}has(e){const 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))}delete(e){return this._delete(e,!1)}deleteSuperstr(e){return this._delete(e,!0)}_delete(e,t){var i;const n=this._iter.reset(e),o=[];let s=this._root;for(;s;){const e=n.cmp(s.segment);if(e>0)o.push([-1,s]),s=s.left;else if(e<0)o.push([1,s]),s=s.right;else{if(!n.hasNext())break;n.next(),o.push([0,s]),s=s.mid}}if(s){if(t?(s.left=void 0,s.mid=void 0,s.right=void 0,s.height=1):(s.key=void 0,s.value=void 0),!s.mid&&!s.value)if(s.left&&s.right){const e=this._min(s.right);if(e.key){const{key:t,value:i,segment:n}=e;this._delete(e.key,!1),s.key=t,s.value=i,s.segment=n}}else{const e=null!==(i=s.left)&&void 0!==i?i:s.right;if(o.length>0){const[t,i]=o[o.length-1];switch(t){case-1:i.left=e;break;case 0:i.mid=e;break;case 1:i.right=e}}else this._root=e}for(let e=o.length-1;e>=0;e--){const t=o[e][1];t.updateHeight();const i=t.balanceFactor();if(i>1?(t.right.balanceFactor()>=0||(t.right=t.right.rotateRight()),o[e][1]=t.rotateLeft()):i<-1&&(t.left.balanceFactor()<=0||(t.left=t.left.rotateLeft()),o[e][1]=t.rotateRight()),e>0)switch(o[e-1][0]){case-1:o[e-1][1].left=o[e][1];break;case 1:o[e-1][1].right=o[e][1];break;case 0:o[e-1][1].mid=o[e][1]}else this._root=o[0][1]}}}_min(e){for(;e.left;)e=e.left;return e}findSubstr(e){const t=this._iter.reset(e);let i,n=this._root;for(;n;){const e=t.cmp(n.segment);if(e>0)n=n.left;else if(e<0)n=n.right;else{if(!t.hasNext())break;t.next(),i=n.value||i,n=n.mid}}return n&&n.value||i}findSuperstr(e){return this._findSuperstrOrElement(e,!1)}_findSuperstrOrElement(e,t){const i=this._iter.reset(e);let n=this._root;for(;n;){const e=i.cmp(n.segment);if(e>0)n=n.left;else if(e<0)n=n.right;else{if(!i.hasNext())return n.mid?this._entries(n.mid):t?n.value:void 0;i.next(),n=n.mid}}}forEach(e){for(const[t,i]of this)e(i,t)}*[Symbol.iterator](){yield*this._entries(this._root)}_entries(e){const t=[];return this._dfsEntries(e,t),t[Symbol.iterator]()}_dfsEntries(e,t){e&&(e.left&&this._dfsEntries(e.left,t),e.value&&t.push([e.key,e.value]),e.mid&&this._dfsEntries(e.mid,t),e.right&&this._dfsEntries(e.right,t))}}},62502:(e,t,i)=>{i.d(t,{k:()=>o});var n,o,s=i(62974);!function(e){e.isThemeColor=function(e){return e&&"object"===typeof e&&"string"===typeof e.id}}(n||(n={})),function(e){e.iconNameSegment="[A-Za-z0-9]+",e.iconNameExpression="[A-Za-z0-9-]+",e.iconModifierExpression="~[A-Za-z]+",e.iconNameCharacter="[A-Za-z0-9~-]";const t=new RegExp("^(".concat(e.iconNameExpression,")(").concat(e.iconModifierExpression,")?$"));function i(e){const n=t.exec(e.id);if(!n)return i(s.l.error);const[,o,r]=n,a=["codicon","codicon-"+o];return r&&a.push("codicon-modifier-"+r.substring(1)),a}e.asClassNameArray=i,e.asClassName=function(e){return i(e).join(" ")},e.asCSSSelector=function(e){return"."+i(e).join(".")},e.isThemeIcon=function(e){return e&&"object"===typeof e&&"string"===typeof e.id&&("undefined"===typeof e.color||n.isThemeColor(e.color))};const o=new RegExp("^\\$\\((".concat(e.iconNameExpression,"(?:").concat(e.iconModifierExpression,")?)\\)$"));e.fromString=function(e){const t=o.exec(e);if(!t)return;const[,i]=t;return{id:i}},e.fromId=function(e){return{id:e}},e.modify=function(e,t){let i=e.id;const n=i.lastIndexOf("~");return-1!==n&&(i=i.substring(0,n)),t&&(i="".concat(i,"~").concat(t)),{id:i}},e.getModifier=function(e){const t=e.id.lastIndexOf("~");if(-1!==t)return e.id.substring(t+1)},e.isEqual=function(e,t){var i,n;return e.id===t.id&&(null===(i=e.color)||void 0===i?void 0:i.id)===(null===(n=t.color)||void 0===n?void 0:n.id)}}(o||(o={}))},63686:(e,t,i)=>{function n(e){return"string"===typeof e}function o(e){return"object"===typeof e&&null!==e&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function s(e){const t=Object.getPrototypeOf(Uint8Array);return"object"===typeof e&&e instanceof t}function r(e){return"number"===typeof e&&!isNaN(e)}function a(e){return!!e&&"function"===typeof e[Symbol.iterator]}function l(e){return!0===e||!1===e}function h(e){return"undefined"===typeof e}function d(e){return!c(e)}function c(e){return h(e)||null===e}function u(e,t){if(!e)throw new Error(t?"Unexpected type, expected '".concat(t,"'"):"Unexpected type")}function g(e){if(c(e))throw new Error("Assertion Failed: argument is undefined or null");return e}function m(e){return"function"===typeof e}function f(e,t){const i=Math.min(e.length,t.length);for(let n=0;nd,D8:()=>f,HD:()=>n,Jp:()=>c,Kn:()=>o,TW:()=>a,cW:()=>g,fU:()=>s,hj:()=>r,jn:()=>l,mf:()=>m,o8:()=>h,p_:()=>u})},44918:(e,t,i)=>{function n(e){return e<0?0:e>255?255:0|e}function o(e){return e<0?0:e>4294967295?4294967295:0|e}i.d(t,{A:()=>o,K:()=>n})},82682:(e,t,i)=>{i.d(t,{o:()=>c,q:()=>_});var n=i(51169),o=i(21511);const s=/^\w[\w\d+.-]*$/,r=/^\//,a=/^\/\//;const l="",h="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class c{static isUri(e){return e instanceof c||!!e&&("string"===typeof e.authority&&"string"===typeof e.fragment&&"string"===typeof e.path&&"string"===typeof e.query&&"string"===typeof e.scheme&&"string"===typeof e.fsPath&&"function"===typeof e.with&&"function"===typeof e.toString)}constructor(e,t,i,n,o){let d=arguments.length>5&&void 0!==arguments[5]&&arguments[5];"object"===typeof e?(this.scheme=e.scheme||l,this.authority=e.authority||l,this.path=e.path||l,this.query=e.query||l,this.fragment=e.fragment||l):(this.scheme=function(e,t){return e||t?e:"file"}(e,d),this.authority=t||l,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==h&&(t=h+t):t=h}return t}(this.scheme,i||l),this.query=n||l,this.fragment=o||l,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&&!s.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!r.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(a.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,d))}get fsPath(){return _(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:i,path:n,query:o,fragment:s}=e;return void 0===t?t=this.scheme:null===t&&(t=l),void 0===i?i=this.authority:null===i&&(i=l),void 0===n?n=this.path:null===n&&(n=l),void 0===o?o=this.query:null===o&&(o=l),void 0===s?s=this.fragment:null===s&&(s=l),t===this.scheme&&i===this.authority&&n===this.path&&o===this.query&&s===this.fragment?this:new g(t,i,n,o,s)}static parse(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const i=d.exec(e);return i?new g(i[2]||l,w(i[4]||l),w(i[5]||l),w(i[7]||l),w(i[9]||l),t):new g(l,l,l,l,l)}static file(e){let t=l;if(o.ED&&(e=e.replace(/\\/g,h)),e[0]===h&&e[1]===h){const i=e.indexOf(h,2);-1===i?(t=e.substring(2),e=h):(t=e.substring(2,i),e=e.substring(i)||h)}return new g("file",t,e,l,l)}static from(e,t){return new g(e.scheme,e.authority,e.path,e.query,e.fragment,t)}static joinPath(e){if(!e.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let t;for(var i=arguments.length,s=new Array(i>1?i-1:0),r=1;r0&&void 0!==arguments[0]&&arguments[0])}toJSON(){return this}static revive(e){var t,i;if(e){if(e instanceof c)return e;{const n=new g(e);return n._formatted=null!==(t=e.external)&&void 0!==t?t:null,n._fsPath=e._sep===u&&null!==(i=e.fsPath)&&void 0!==i?i:null,n}}return e}}const u=o.ED?1:void 0;class g extends c{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=_(this,!1)),this._fsPath}toString(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0]?v(this,!0):(this._formatted||(this._formatted=v(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=u),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}}const m={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function f(e,t,i){let n,o=-1;for(let s=0;s=97&&r<=122||r>=65&&r<=90||r>=48&&r<=57||45===r||46===r||95===r||126===r||t&&47===r||i&&91===r||i&&93===r||i&&58===r)-1!==o&&(n+=encodeURIComponent(e.substring(o,s)),o=-1),void 0!==n&&(n+=e.charAt(s));else{void 0===n&&(n=e.substr(0,s));const t=m[r];void 0!==t?(-1!==o&&(n+=encodeURIComponent(e.substring(o,s)),o=-1),n+=t):-1===o&&(o=s)}}return-1!==o&&(n+=encodeURIComponent(e.substring(o))),void 0!==n?n:e}function p(e){let t;for(let i=0;i1&&"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,o.ED&&(i=i.replace(/\//g,"\\")),i}function v(e,t){const i=t?p:f;let n="",{scheme:o,authority:s,path:r,query:a,fragment:l}=e;if(o&&(n+=o,n+=":"),(s||"file"===o)&&(n+=h,n+=h),s){let e=s.indexOf("@");if(-1!==e){const t=s.substr(0,e);s=s.substr(e+1),e=t.lastIndexOf(":"),-1===e?n+=i(t,!1,!1):(n+=i(t.substr(0,e),!1,!1),n+=":",n+=i(t.substr(e+1),!1,!0)),n+="@"}s=s.toLowerCase(),e=s.lastIndexOf(":"),-1===e?n+=i(s,!1,!0):(n+=i(s.substr(0,e),!1,!0),n+=s.substr(e))}if(r){if(r.length>=3&&47===r.charCodeAt(0)&&58===r.charCodeAt(2)){const e=r.charCodeAt(1);e>=65&&e<=90&&(r="/".concat(String.fromCharCode(e+32),":").concat(r.substr(3)))}else if(r.length>=2&&58===r.charCodeAt(1)){const e=r.charCodeAt(0);e>=65&&e<=90&&(r="".concat(String.fromCharCode(e+32),":").concat(r.substr(2)))}n+=i(r,!0,!1)}return a&&(n+="?",n+=i(a,!1,!1)),l&&(n+="#",n+=t?l:f(l,!1,!1)),n}function b(e){try{return decodeURIComponent(e)}catch(t){return e.length>3?e.substr(0,3)+b(e.substr(3)):e}}const C=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function w(e){return e.match(C)?e.replace(C,(e=>b(e))):e}},99916:(e,t,i)=>{i.d(t,{N:()=>o});var n=i(45153);function o(e,t){e instanceof n.Z?(e.setFontFamily(t.getMassagedFontFamily()),e.setFontWeight(t.fontWeight),e.setFontSize(t.fontSize),e.setFontFeatureSettings(t.fontFeatureSettings),e.setFontVariationSettings(t.fontVariationSettings),e.setLineHeight(t.lineHeight),e.setLetterSpacing(t.letterSpacing)):(e.style.fontFamily=t.getMassagedFontFamily(),e.style.fontWeight=t.fontWeight,e.style.fontSize=t.fontSize+"px",e.style.fontFeatureSettings=t.fontFeatureSettings,e.style.fontVariationSettings=t.fontVariationSettings,e.style.lineHeight=t.lineHeight+"px",e.style.letterSpacing=t.letterSpacing+"px")}},97363:(e,t,i)=>{i.d(t,{I:()=>r});var n=i(89599),o=i(24219),s=i(85714);class r extends n.JT{constructor(e,t){super(),this._onDidChange=this._register(new o.Q5),this.onDidChange=this._onDidChange.event,this._referenceDomElement=e,this._width=-1,this._height=-1,this._resizeObserver=null,this.measureReferenceDomElement(!1,t)}dispose(){this.stopObserving(),super.dispose()}getWidth(){return this._width}getHeight(){return this._height}startObserving(){if(!this._resizeObserver&&this._referenceDomElement){let e=null;const t=()=>{e?this.observe({width:e.width,height:e.height}):this.observe()};let i=!1,n=!1;const o=()=>{if(i&&!n)try{i=!1,n=!0,t()}finally{(0,s.jL)((0,s.Jj)(this._referenceDomElement),(()=>{n=!1,o()}))}};this._resizeObserver=new ResizeObserver((t=>{e=t&&t[0]&&t[0].contentRect?{width:t[0].contentRect.width,height:t[0].contentRect.height}:null,i=!0,o()})),this._resizeObserver.observe(this._referenceDomElement)}}stopObserving(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)}observe(e){this.measureReferenceDomElement(!0,e)}measureReferenceDomElement(e,t){let i=0,n=0;t?(i=t.width,n=t.height):this._referenceDomElement&&(i=this._referenceDomElement.clientWidth,n=this._referenceDomElement.clientHeight),i=Math.max(5,i),n=Math.max(5,n),this._width===i&&this._height===n||(this._width=i,this._height=n,e&&this._onDidChange.fire())}}},86392:(e,t,i)=>{i.d(t,{g:()=>m});var n=i(85714),o=i(39830),s=i(24219),r=i(89599),a=i(99916);class l{constructor(e,t){this.chr=e,this.type=t,this.width=0}fulfill(e){this.width=e}}class h{constructor(e,t){this._bareFontInfo=e,this._requests=t,this._container=null,this._testElements=null}read(e){this._createDomElements(),e.document.body.appendChild(this._container),this._readFromDomElements(),e.document.body.removeChild(this._container),this._container=null,this._testElements=null}_createDomElements(){const e=document.createElement("div");e.style.position="absolute",e.style.top="-50000px",e.style.width="50000px";const t=document.createElement("div");(0,a.N)(t,this._bareFontInfo),e.appendChild(t);const i=document.createElement("div");(0,a.N)(i,this._bareFontInfo),i.style.fontWeight="bold",e.appendChild(i);const n=document.createElement("div");(0,a.N)(n,this._bareFontInfo),n.style.fontStyle="italic",e.appendChild(n);const o=[];for(const s of this._requests){let e;0===s.type&&(e=t),2===s.type&&(e=i),1===s.type&&(e=n),e.appendChild(document.createElement("br"));const r=document.createElement("span");h._render(r,s),e.appendChild(r),o.push(r)}this._container=e,this._testElements=o}static _render(e,t){if(" "===t.chr){let t="\xa0";for(let e=0;e<8;e++)t+=t;e.innerText=t}else{let i=t.chr;for(let e=0;e<8;e++)i+=i;e.textContent=i}}_readFromDomElements(){for(let e=0,t=this._requests.length;e{this._evictUntrustedReadingsTimeout=-1,this._evictUntrustedReadings(e)}),5e3))}_evictUntrustedReadings(e){const t=this._ensureCache(e),i=t.getValues();let n=!1;for(const o of i)o.isTrusted||(n=!0,t.remove(o));n&&this._onDidChange.fire()}readFontInfo(e,t){const i=this._ensureCache(e);if(!i.has(t)){let i=this._actualReadFontInfo(e,t);(i.typicalHalfwidthCharacterWidth<=2||i.typicalFullwidthCharacterWidth<=2||i.spaceWidth<=2||i.maxDigitWidth<=2)&&(i=new c.pR({pixelRatio:o.T.getInstance(e).value,fontFamily:i.fontFamily,fontWeight:i.fontWeight,fontSize:i.fontSize,fontFeatureSettings:i.fontFeatureSettings,fontVariationSettings:i.fontVariationSettings,lineHeight:i.lineHeight,letterSpacing:i.letterSpacing,isMonospace:i.isMonospace,typicalHalfwidthCharacterWidth:Math.max(i.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(i.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:i.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(i.spaceWidth,5),middotWidth:Math.max(i.middotWidth,5),wsmiddotWidth:Math.max(i.wsmiddotWidth,5),maxDigitWidth:Math.max(i.maxDigitWidth,5)},!1)),this._writeToCache(e,t,i)}return i.get(t)}_createRequest(e,t,i,n){const o=new l(e,t);return i.push(o),null===n||void 0===n||n.push(o),o}_actualReadFontInfo(e,t){const i=[],n=[],s=this._createRequest("n",0,i,n),r=this._createRequest("\uff4d",0,i,null),a=this._createRequest(" ",0,i,n),l=this._createRequest("0",0,i,n),u=this._createRequest("1",0,i,n),g=this._createRequest("2",0,i,n),m=this._createRequest("3",0,i,n),f=this._createRequest("4",0,i,n),p=this._createRequest("5",0,i,n),_=this._createRequest("6",0,i,n),v=this._createRequest("7",0,i,n),b=this._createRequest("8",0,i,n),C=this._createRequest("9",0,i,n),w=this._createRequest("\u2192",0,i,n),y=this._createRequest("\uffeb",0,i,null),S=this._createRequest("\xb7",0,i,n),L=this._createRequest(String.fromCharCode(11825),0,i,null),k="|/-_ilm%";for(let o=0,h=k.length;o.001){N=!1;break}}let E=!0;return N&&y.width!==x&&(E=!1),y.width>w.width&&(E=!1),new c.pR({pixelRatio:o.T.getInstance(e).value,fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,fontVariationSettings:t.fontVariationSettings,lineHeight:t.lineHeight,letterSpacing:t.letterSpacing,isMonospace:N,typicalHalfwidthCharacterWidth:s.width,typicalFullwidthCharacterWidth:r.width,canUseHalfwidthRightwardsArrow:E,spaceWidth:a.width,middotWidth:S.width,wsmiddotWidth:L.width,maxDigitWidth:D},!0)}}class g{constructor(){this._keys=Object.create(null),this._values=Object.create(null)}has(e){const t=e.getId();return!!this._values[t]}get(e){const t=e.getId();return this._values[t]}put(e,t){const i=e.getId();this._keys[i]=e,this._values[i]=t}remove(e){const t=e.getId();delete this._keys[t],delete this._values[t]}getValues(){return Object.keys(this._keys).map((e=>this._values[e]))}}const m=new u},25391:(e,t,i)=>{i.d(t,{n:()=>o});var n=i(24219);const o=new class{constructor(){this._tabFocus=!1,this._onDidChangeTabFocus=new n.Q5,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}getTabFocusMode(){return this._tabFocus}setTabFocusMode(e){this._tabFocus=e,this._onDidChangeTabFocus.fire(this._tabFocus)}}},73451:(e,t,i)=>{i.d(t,{Fz:()=>S,Nl:()=>w,RA:()=>C,Tj:()=>k,b6:()=>L,pd:()=>n});var n,o=i(42606),s=i(85714),r=i(3640),a=i(39341),l=i(10115),h=i(60282),d=i(24219),c=i(89599),u=i(51572),g=i(25085),m=i(38954),f=i(67078),p=i(46385),_=i(83717),v=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},b=function(e,t){return function(i,n){t(i,n,e)}};!function(e){e.Tap="-monaco-textarea-synthetic-tap"}(n||(n={}));const C={forceCopyWithSyntaxHighlighting:!1};class w{constructor(){this._lastState=null}set(e,t){this._lastState={lastCopiedValue:e,data:t}}get(e){return this._lastState&&this._lastState.lastCopiedValue===e?this._lastState.data:(this._lastState=null,null)}}w.INSTANCE=new w;class y{constructor(){this._lastTypeTextLength=0}handleCompositionUpdate(e){const t={text:e=e||"",replacePrevCharCnt:this._lastTypeTextLength,replaceNextCharCnt:0,positionDelta:0};return this._lastTypeTextLength=e.length,t}}let S=class extends c.JT{get textAreaState(){return this._textAreaState}constructor(e,t,i,n,o,s){super(),this._host=e,this._textArea=t,this._OS=i,this._browser=n,this._accessibilityService=o,this._logService=s,this._onFocus=this._register(new d.Q5),this.onFocus=this._onFocus.event,this._onBlur=this._register(new d.Q5),this.onBlur=this._onBlur.event,this._onKeyDown=this._register(new d.Q5),this.onKeyDown=this._onKeyDown.event,this._onKeyUp=this._register(new d.Q5),this.onKeyUp=this._onKeyUp.event,this._onCut=this._register(new d.Q5),this.onCut=this._onCut.event,this._onPaste=this._register(new d.Q5),this.onPaste=this._onPaste.event,this._onType=this._register(new d.Q5),this.onType=this._onType.event,this._onCompositionStart=this._register(new d.Q5),this.onCompositionStart=this._onCompositionStart.event,this._onCompositionUpdate=this._register(new d.Q5),this.onCompositionUpdate=this._onCompositionUpdate.event,this._onCompositionEnd=this._register(new d.Q5),this.onCompositionEnd=this._onCompositionEnd.event,this._onSelectionChangeRequest=this._register(new d.Q5),this.onSelectionChangeRequest=this._onSelectionChangeRequest.event,this._asyncFocusGainWriteScreenReaderContent=this._register(new c.XK),this._asyncTriggerCut=this._register(new h.pY((()=>this._onCut.fire()),0)),this._textAreaState=m.un.EMPTY,this._selectionChangeListener=null,this._accessibilityService.isScreenReaderOptimized()&&this.writeNativeTextAreaContent("ctor"),this._register(d.ju.runAndSubscribe(this._accessibilityService.onDidChangeScreenReaderOptimized,(()=>{this._accessibilityService.isScreenReaderOptimized()&&!this._asyncFocusGainWriteScreenReaderContent.value?this._asyncFocusGainWriteScreenReaderContent.value=this._register(new h.pY((()=>this.writeNativeTextAreaContent("asyncFocusGain")),0)):this._asyncFocusGainWriteScreenReaderContent.clear()}))),this._hasFocus=!1,this._currentComposition=null;let r=null;this._register(this._textArea.onKeyDown((e=>{const t=new a.y(e);(114===t.keyCode||this._currentComposition&&1===t.keyCode)&&t.stopPropagation(),t.equals(9)&&t.preventDefault(),r=t,this._onKeyDown.fire(t)}))),this._register(this._textArea.onKeyUp((e=>{const t=new a.y(e);this._onKeyUp.fire(t)}))),this._register(this._textArea.onCompositionStart((e=>{m.al&&console.log("[compositionstart]",e);const t=new y;if(this._currentComposition)this._currentComposition=t;else{if(this._currentComposition=t,2===this._OS&&r&&r.equals(114)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===e.data&&("ArrowRight"===r.code||"ArrowLeft"===r.code))return m.al&&console.log("[compositionstart] Handling long press case on macOS + arrow key",e),t.handleCompositionUpdate("x"),void this._onCompositionStart.fire({data:e.data});this._browser.isAndroid,this._onCompositionStart.fire({data:e.data})}}))),this._register(this._textArea.onCompositionUpdate((e=>{m.al&&console.log("[compositionupdate]",e);const t=this._currentComposition;if(!t)return;if(this._browser.isAndroid){const t=m.un.readFromTextArea(this._textArea,this._textAreaState),i=m.un.deduceAndroidCompositionInput(this._textAreaState,t);return this._textAreaState=t,this._onType.fire(i),void this._onCompositionUpdate.fire(e)}const i=t.handleCompositionUpdate(e.data);this._textAreaState=m.un.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(i),this._onCompositionUpdate.fire(e)}))),this._register(this._textArea.onCompositionEnd((e=>{m.al&&console.log("[compositionend]",e);const t=this._currentComposition;if(!t)return;if(this._currentComposition=null,this._browser.isAndroid){const e=m.un.readFromTextArea(this._textArea,this._textAreaState),t=m.un.deduceAndroidCompositionInput(this._textAreaState,e);return this._textAreaState=e,this._onType.fire(t),void this._onCompositionEnd.fire()}const i=t.handleCompositionUpdate(e.data);this._textAreaState=m.un.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(i),this._onCompositionEnd.fire()}))),this._register(this._textArea.onInput((e=>{if(m.al&&console.log("[input]",e),this._textArea.setIgnoreSelectionChangeTime("received input event"),this._currentComposition)return;const t=m.un.readFromTextArea(this._textArea,this._textAreaState),i=m.un.deduceInput(this._textAreaState,t,2===this._OS);(0!==i.replacePrevCharCnt||1!==i.text.length||!g.ZG(i.text.charCodeAt(0))&&127!==i.text.charCodeAt(0))&&(this._textAreaState=t,""===i.text&&0===i.replacePrevCharCnt&&0===i.replaceNextCharCnt&&0===i.positionDelta||this._onType.fire(i))}))),this._register(this._textArea.onCut((e=>{this._textArea.setIgnoreSelectionChangeTime("received cut event"),this._ensureClipboardGetsEditorSelection(e),this._asyncTriggerCut.schedule()}))),this._register(this._textArea.onCopy((e=>{this._ensureClipboardGetsEditorSelection(e)}))),this._register(this._textArea.onPaste((e=>{if(this._textArea.setIgnoreSelectionChangeTime("received paste event"),e.preventDefault(),!e.clipboardData)return;let[t,i]=L.getTextData(e.clipboardData);t&&(i=i||w.INSTANCE.get(t),this._onPaste.fire({text:t,metadata:i}))}))),this._register(this._textArea.onFocus((()=>{const e=this._hasFocus;this._setHasFocus(!0),this._accessibilityService.isScreenReaderOptimized()&&this._browser.isSafari&&!e&&this._hasFocus&&(this._asyncFocusGainWriteScreenReaderContent.value||(this._asyncFocusGainWriteScreenReaderContent.value=new h.pY((()=>this.writeNativeTextAreaContent("asyncFocusGain")),0)),this._asyncFocusGainWriteScreenReaderContent.value.schedule())}))),this._register(this._textArea.onBlur((()=>{this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("blurWithoutCompositionEnd"),this._onCompositionEnd.fire()),this._setHasFocus(!1)}))),this._register(this._textArea.onSyntheticTap((()=>{this._browser.isAndroid&&this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("tapWithoutCompositionEnd"),this._onCompositionEnd.fire())})))}_installSelectionChangeListener(){let e=0;return s.nm(this._textArea.ownerDocument,"selectionchange",(t=>{if(l.B.onSelectionChange(),!this._hasFocus)return;if(this._currentComposition)return;if(!this._browser.isChrome)return;const i=Date.now(),n=i-e;if(e=i,n<5)return;const o=i-this._textArea.getIgnoreSelectionChangeTime();if(this._textArea.resetSelectionChangeTime(),o<100)return;if(!this._textAreaState.selection)return;const s=this._textArea.getValue();if(this._textAreaState.value!==s)return;const r=this._textArea.getSelectionStart(),a=this._textArea.getSelectionEnd();if(this._textAreaState.selectionStart===r&&this._textAreaState.selectionEnd===a)return;const h=this._textAreaState.deduceEditorPosition(r),d=this._host.deduceModelPosition(h[0],h[1],h[2]),c=this._textAreaState.deduceEditorPosition(a),u=this._host.deduceModelPosition(c[0],c[1],c[2]),g=new f.Y(d.lineNumber,d.column,u.lineNumber,u.column);this._onSelectionChangeRequest.fire(g)}))}dispose(){super.dispose(),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)}focusTextArea(){this._setHasFocus(!0),this.refreshFocusState()}isFocused(){return this._hasFocus}refreshFocusState(){this._setHasFocus(this._textArea.hasFocus())}_setHasFocus(e){this._hasFocus!==e&&(this._hasFocus=e,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&this.writeNativeTextAreaContent("focusgain"),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}_setAndWriteTextAreaState(e,t){this._hasFocus||(t=t.collapseSelection()),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t}writeNativeTextAreaContent(e){!this._accessibilityService.isScreenReaderOptimized()&&"render"===e||this._currentComposition||(this._logService.trace("writeTextAreaState(reason: ".concat(e,")")),this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent()))}_ensureClipboardGetsEditorSelection(e){const t=this._host.getDataToCopy(),i={version:1,isFromEmptySelection:t.isFromEmptySelection,multicursorText:t.multicursorText,mode:t.mode};w.INSTANCE.set(this._browser.isFirefox?t.text.replace(/\r\n/g,"\n"):t.text,i),e.preventDefault(),e.clipboardData&&L.setTextData(e.clipboardData,t.text,t.html,i)}};S=v([b(4,p.F),b(5,_.VZ)],S);const L={getTextData(e){const t=e.getData(u.v.text);let i=null;const n=e.getData("vscode-editor-data");if("string"===typeof n)try{i=JSON.parse(n),1!==i.version&&(i=null)}catch(o){}if(0===t.length&&null===i&&e.files.length>0){return[Array.prototype.slice.call(e.files,0).map((e=>e.name)).join("\n"),null]}return[t,i]},setTextData(e,t,i,n){e.setData(u.v.text,t),"string"===typeof i&&e.setData("text/html",i),e.setData("vscode-editor-data",JSON.stringify(n))}};class k extends c.JT{get ownerDocument(){return this._actual.ownerDocument}constructor(e){super(),this._actual=e,this.onKeyDown=this._register(new r.Y(this._actual,"keydown")).event,this.onKeyUp=this._register(new r.Y(this._actual,"keyup")).event,this.onCompositionStart=this._register(new r.Y(this._actual,"compositionstart")).event,this.onCompositionUpdate=this._register(new r.Y(this._actual,"compositionupdate")).event,this.onCompositionEnd=this._register(new r.Y(this._actual,"compositionend")).event,this.onBeforeInput=this._register(new r.Y(this._actual,"beforeinput")).event,this.onInput=this._register(new r.Y(this._actual,"input")).event,this.onCut=this._register(new r.Y(this._actual,"cut")).event,this.onCopy=this._register(new r.Y(this._actual,"copy")).event,this.onPaste=this._register(new r.Y(this._actual,"paste")).event,this.onFocus=this._register(new r.Y(this._actual,"focus")).event,this.onBlur=this._register(new r.Y(this._actual,"blur")).event,this._onSyntheticTap=this._register(new d.Q5),this.onSyntheticTap=this._onSyntheticTap.event,this._ignoreSelectionChangeTime=0,this._register(this.onKeyDown((()=>l.B.onKeyDown()))),this._register(this.onBeforeInput((()=>l.B.onBeforeInput()))),this._register(this.onInput((()=>l.B.onInput()))),this._register(this.onKeyUp((()=>l.B.onKeyUp()))),this._register(s.nm(this._actual,n.Tap,(()=>this._onSyntheticTap.fire())))}hasFocus(){const e=s.Ay(this._actual);return e?e.activeElement===this._actual:!!this._actual.isConnected&&s.vY()===this._actual}setIgnoreSelectionChangeTime(e){this._ignoreSelectionChangeTime=Date.now()}getIgnoreSelectionChangeTime(){return this._ignoreSelectionChangeTime}resetSelectionChangeTime(){this._ignoreSelectionChangeTime=0}getValue(){return this._actual.value}setValue(e,t){const i=this._actual;i.value!==t&&(this.setIgnoreSelectionChangeTime("setValue"),i.value=t)}getSelectionStart(){return"backward"===this._actual.selectionDirection?this._actual.selectionEnd:this._actual.selectionStart}getSelectionEnd(){return"backward"===this._actual.selectionDirection?this._actual.selectionStart:this._actual.selectionEnd}setSelectionRange(e,t,i){const n=this._actual;let r=null;const a=s.Ay(n);r=a?a.activeElement:s.vY();const l=s.Jj(r),h=r===n,d=n.selectionStart,c=n.selectionEnd;if(h&&d===t&&c===i)o.vU&&l.parent!==l&&n.focus();else{if(h)return this.setIgnoreSelectionChangeTime("setSelectionRange"),n.setSelectionRange(t,i),void(o.vU&&l.parent!==l&&n.focus());try{const e=s.vL(n);this.setIgnoreSelectionChangeTime("setSelectionRange"),n.focus(),n.setSelectionRange(t,i),s._0(n,e)}catch(u){}}}}},38954:(e,t,i)=>{i.d(t,{al:()=>s,ee:()=>a,un:()=>r});var n=i(25085),o=i(10670);const s=!1;class r{constructor(e,t,i,n,o){this.value=e,this.selectionStart=t,this.selectionEnd=i,this.selection=n,this.newlineCountBeforeSelection=o}toString(){return"[ <".concat(this.value,">, selectionStart: ").concat(this.selectionStart,", selectionEnd: ").concat(this.selectionEnd,"]")}static readFromTextArea(e,t){const i=e.getValue(),n=e.getSelectionStart(),o=e.getSelectionEnd();let s;if(t){i.substring(0,n)===t.value.substring(0,t.selectionStart)&&(s=t.newlineCountBeforeSelection)}return new r(i,n,o,null,s)}collapseSelection(){return this.selectionStart===this.value.length?this:new r(this.value,this.value.length,this.value.length,null,void 0)}writeToTextArea(e,t,i){s&&console.log("writeToTextArea ".concat(e,": ").concat(this.toString())),t.setValue(e,this.value),i&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)}deduceEditorPosition(e){var t,i,n,o,s,r,a,l;if(e<=this.selectionStart){const n=this.value.substring(e,this.selectionStart);return this._finishDeduceEditorPosition(null!==(i=null===(t=this.selection)||void 0===t?void 0:t.getStartPosition())&&void 0!==i?i:null,n,-1)}if(e>=this.selectionEnd){const t=this.value.substring(this.selectionEnd,e);return this._finishDeduceEditorPosition(null!==(o=null===(n=this.selection)||void 0===n?void 0:n.getEndPosition())&&void 0!==o?o:null,t,1)}const h=this.value.substring(this.selectionStart,e);if(-1===h.indexOf(String.fromCharCode(8230)))return this._finishDeduceEditorPosition(null!==(r=null===(s=this.selection)||void 0===s?void 0:s.getStartPosition())&&void 0!==r?r:null,h,1);const d=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition(null!==(l=null===(a=this.selection)||void 0===a?void 0:a.getEndPosition())&&void 0!==l?l:null,d,-1)}_finishDeduceEditorPosition(e,t,i){let n=0,o=-1;for(;-1!==(o=t.indexOf("\n",o+1));)n++;return[e,i*t.length,n]}static deduceInput(e,t,i){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};s&&(console.log("------------------------deduceInput"),console.log("PREVIOUS STATE: ".concat(e.toString())),console.log("CURRENT STATE: ".concat(t.toString())));const o=Math.min(n.Mh(e.value,t.value),e.selectionStart,t.selectionStart),r=Math.min(n.P1(e.value,t.value),e.value.length-e.selectionEnd,t.value.length-t.selectionEnd),a=e.value.substring(o,e.value.length-r),l=t.value.substring(o,t.value.length-r),h=e.selectionStart-o,d=e.selectionEnd-o,c=t.selectionStart-o,u=t.selectionEnd-o;if(s&&(console.log("AFTER DIFFING PREVIOUS STATE: <".concat(a,">, selectionStart: ").concat(h,", selectionEnd: ").concat(d)),console.log("AFTER DIFFING CURRENT STATE: <".concat(l,">, selectionStart: ").concat(c,", selectionEnd: ").concat(u))),c===u){const t=e.selectionStart-o;return s&&console.log("REMOVE PREVIOUS: ".concat(t," chars")),{text:l,replacePrevCharCnt:t,replaceNextCharCnt:0,positionDelta:0}}return{text:l,replacePrevCharCnt:d-h,replaceNextCharCnt:0,positionDelta:0}}static deduceAndroidCompositionInput(e,t){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};if(s&&(console.log("------------------------deduceAndroidCompositionInput"),console.log("PREVIOUS STATE: ".concat(e.toString())),console.log("CURRENT STATE: ".concat(t.toString()))),e.value===t.value)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:t.selectionEnd-e.selectionEnd};const i=Math.min(n.Mh(e.value,t.value),e.selectionEnd),o=Math.min(n.P1(e.value,t.value),e.value.length-e.selectionEnd),r=e.value.substring(i,e.value.length-o),a=t.value.substring(i,t.value.length-o),l=e.selectionStart-i,h=e.selectionEnd-i,d=t.selectionStart-i,c=t.selectionEnd-i;return s&&(console.log("AFTER DIFFING PREVIOUS STATE: <".concat(r,">, selectionStart: ").concat(l,", selectionEnd: ").concat(h)),console.log("AFTER DIFFING CURRENT STATE: <".concat(a,">, selectionStart: ").concat(d,", selectionEnd: ").concat(c))),{text:a,replacePrevCharCnt:h,replaceNextCharCnt:r.length-h,positionDelta:c-a.length}}}r.EMPTY=new r("",0,0,null,void 0);class a{static _getPageOfLine(e,t){return Math.floor((e-1)/t)}static _getRangeForPage(e,t){const i=e*t,n=i+1,s=i+t;return new o.e(n,1,s+1,1)}static fromEditorSelection(e,t,i,n){const s=500,l=a._getPageOfLine(t.startLineNumber,i),h=a._getRangeForPage(l,i),d=a._getPageOfLine(t.endLineNumber,i),c=a._getRangeForPage(d,i);let u=h.intersectRanges(new o.e(1,1,t.startLineNumber,t.startColumn));if(n&&e.getValueLengthInRange(u,1)>s){const t=e.modifyPosition(u.getEndPosition(),-500);u=o.e.fromPositions(t,u.getEndPosition())}const g=e.getValueInRange(u,1),m=e.getLineCount(),f=e.getLineMaxColumn(m);let p=c.intersectRanges(new o.e(t.endLineNumber,t.endColumn,m,f));if(n&&e.getValueLengthInRange(p,1)>s){const t=e.modifyPosition(p.getStartPosition(),s);p=o.e.fromPositions(p.getStartPosition(),t)}const _=e.getValueInRange(p,1);let v;if(l===d||l+1===d)v=e.getValueInRange(t,1);else{const i=h.intersectRanges(t),n=c.intersectRanges(t);v=e.getValueInRange(i,1)+String.fromCharCode(8230)+e.getValueInRange(n,1)}return n&&v.length>1e3&&(v=v.substring(0,s)+String.fromCharCode(8230)+v.substring(v.length-s,v.length)),new r(g+v+_,g.length,g.length+v.length,t,u.endLineNumber-u.startLineNumber)}}},70469:(e,t,i)=>{i.d(t,{wk:()=>E,Ox:()=>L});var n=i(71721),o=i(42606),s=i(63686),r=i(70036),a=i(23001),l=i(38119),h=i(68170),d=i(2067),c=i(10670);class u{static columnSelect(e,t,i,n,o,s){const r=Math.abs(o-i)+1,a=i>o,l=n>s,u=ns)continue;if(_n)continue;if(p0&&n--,u.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,n)}static columnSelectRight(e,t,i){let n=0;const o=Math.min(i.fromViewLineNumber,i.toViewLineNumber),s=Math.max(i.fromViewLineNumber,i.toViewLineNumber);for(let a=o;a<=s;a++){const i=t.getLineMaxColumn(a),o=e.visibleColumnFromColumn(t,new d.L(a,i));n=Math.max(n,o)}let r=i.toViewVisualColumn;return r{const i=e.get(l.$).getFocusedCodeEditor();return!(!i||!i.hasTextFocus())&&this._runEditorCommand(e,i,t)})),e.addImplementation(1e3,"generic-dom-input-textarea",((e,t)=>{const i=(0,b.vY)();return!!(i&&["input","textarea"].indexOf(i.tagName.toLowerCase())>=0)&&(this.runDOMCommand(i),!0)})),e.addImplementation(0,"generic-dom",((e,t)=>{const i=e.get(l.$).getActiveCodeEditor();return!!i&&(i.focus(),this._runEditorCommand(e,i,t))}))}_runEditorCommand(e,t,i){const n=this.runEditorCommand(e,t,i);return n||!0}}!function(e){class t extends w{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){if(!t.position)return;e.model.pushStackElement();e.setCursorStates(t.source,3,[m.P.moveTo(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position,t.viewPosition)])&&2!==t.revealType&&e.revealAllCursors(t.source,!0,!0)}}e.MoveTo=(0,a.fK)(new t({id:"_moveTo",inSelectionMode:!1,precondition:void 0})),e.MoveToSelect=(0,a.fK)(new t({id:"_moveToSelect",inSelectionMode:!0,precondition:void 0}));class i extends w{runCoreEditorCommand(e,t){e.model.pushStackElement();const i=this._getColumnSelectResult(e,e.getPrimaryCursorState(),e.getCursorColumnSelectData(),t);null!==i&&(e.setCursorStates(t.source,3,i.viewStates.map((e=>h.Vi.fromViewState(e)))),e.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:i.fromLineNumber,fromViewVisualColumn:i.fromVisualColumn,toViewLineNumber:i.toLineNumber,toViewVisualColumn:i.toVisualColumn}),i.reversed?e.revealTopMostCursor(t.source):e.revealBottomMostCursor(t.source))}}e.ColumnSelect=(0,a.fK)(new class extends i{constructor(){super({id:"columnSelect",precondition:void 0})}_getColumnSelectResult(e,t,i,n){if("undefined"===typeof n.position||"undefined"===typeof n.viewPosition||"undefined"===typeof n.mouseColumn)return null;const o=e.model.validatePosition(n.position),s=e.coordinatesConverter.validateViewPosition(new d.L(n.viewPosition.lineNumber,n.viewPosition.column),o),r=n.doColumnSelect?i.fromViewLineNumber:s.lineNumber,a=n.doColumnSelect?i.fromViewVisualColumn:n.mouseColumn-1;return u.columnSelect(e.cursorConfig,e,r,a,s.lineNumber,n.mouseColumn-1)}}),e.CursorColumnSelectLeft=(0,a.fK)(new class extends i{constructor(){super({id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(e,t,i,n){return u.columnSelectLeft(e.cursorConfig,e,i)}}),e.CursorColumnSelectRight=(0,a.fK)(new class extends i{constructor(){super({id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(e,t,i,n){return u.columnSelectRight(e.cursorConfig,e,i)}});class s extends i{constructor(e){super(e),this._isPaged=e.isPaged}_getColumnSelectResult(e,t,i,n){return u.columnSelectUp(e.cursorConfig,e,i,this._isPaged)}}e.CursorColumnSelectUp=(0,a.fK)(new s({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:3600,linux:{primary:0}}})),e.CursorColumnSelectPageUp=(0,a.fK)(new s({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:3595,linux:{primary:0}}}));class l extends i{constructor(e){super(e),this._isPaged=e.isPaged}_getColumnSelectResult(e,t,i,n){return u.columnSelectDown(e.cursorConfig,e,i,this._isPaged)}}e.CursorColumnSelectDown=(0,a.fK)(new l({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:3602,linux:{primary:0}}})),e.CursorColumnSelectPageDown=(0,a.fK)(new l({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:3596,linux:{primary:0}}}));class g extends w{constructor(){super({id:"cursorMove",precondition:void 0,metadata:m.N.metadata})}runCoreEditorCommand(e,t){const i=m.N.parse(t);i&&this._runCursorMove(e,t.source,i)}_runCursorMove(e,t,i){e.model.pushStackElement(),e.setCursorStates(t,3,g._move(e,e.getCursorStates(),i)),e.revealAllCursors(t,!0)}static _move(e,t,i){const n=i.select,o=i.value;switch(i.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return m.P.simpleMove(e,t,i.direction,n,o,i.unit);case 11:case 13:case 12:case 14:return m.P.viewportMove(e,t,i.direction,n,o);default:return null}}}e.CursorMoveImpl=g,e.CursorMove=(0,a.fK)(new g);class f extends w{constructor(e){super(e),this._staticArgs=e.args}runCoreEditorCommand(e,t){let i=this._staticArgs;-1===this._staticArgs.value&&(i={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:t.pageSize||e.cursorConfig.pageSize}),e.model.pushStackElement(),e.setCursorStates(t.source,3,m.P.simpleMove(e,e.getCursorStates(),i.direction,i.select,i.value,i.unit)),e.revealAllCursors(t.source,!0)}}e.CursorLeft=(0,a.fK)(new f({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),e.CursorLeftSelect=(0,a.fK)(new f({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:1039}})),e.CursorRight=(0,a.fK)(new f({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),e.CursorRightSelect=(0,a.fK)(new f({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:1041}})),e.CursorUp=(0,a.fK)(new f({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),e.CursorUpSelect=(0,a.fK)(new f({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),e.CursorPageUp=(0,a.fK)(new f({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:11}})),e.CursorPageUpSelect=(0,a.fK)(new f({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:1035}})),e.CursorDown=(0,a.fK)(new f({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),e.CursorDownSelect=(0,a.fK)(new f({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),e.CursorPageDown=(0,a.fK)(new f({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:12}})),e.CursorPageDownSelect=(0,a.fK)(new f({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:1036}})),e.CreateCursor=(0,a.fK)(new class extends w{constructor(){super({id:"createCursor",precondition:void 0})}runCoreEditorCommand(e,t){if(!t.position)return;let i;i=t.wholeLine?m.P.line(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition):m.P.moveTo(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition);const n=e.getCursorStates();if(n.length>1){const o=i.modelState?i.modelState.position:null,s=i.viewState?i.viewState.position:null;for(let i=0,r=n.length;is&&(o=s);const r=new c.e(o,1,o,e.model.getLineMaxColumn(o));let a=0;if(i.at)switch(i.at){case S.RawAtArgument.Top:a=3;break;case S.RawAtArgument.Center:a=1;break;case S.RawAtArgument.Bottom:a=4}const l=e.coordinatesConverter.convertModelRangeToViewRange(r);e.revealRange(t.source,!1,l,a,0)}}),e.SelectAll=new class extends k{constructor(){super(a.Sq)}runDOMCommand(e){o.vU&&(e.focus(),e.select()),e.ownerDocument.execCommand("selectAll")}runEditorCommand(e,t,i){const n=t._getViewModel();n&&this.runCoreEditorCommand(n,i)}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates("keyboard",3,[m.P.selectAll(e,e.getPrimaryCursorState())])}},e.SetSelection=(0,a.fK)(new class extends w{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(e,t){t.selection&&(e.model.pushStackElement(),e.setCursorStates(t.source,3,[h.Vi.fromModelSelection(t.selection)]))}})}(L||(L={}));const D=_.Ao.and(p.u.textInputFocus,p.u.columnSelection);function N(e,t){v.W.registerKeybindingRule({id:e,primary:t,when:D,weight:C+1})}function x(e){return e.register(),e}var E;N(L.CursorColumnSelectLeft.id,1039),N(L.CursorColumnSelectRight.id,1041),N(L.CursorColumnSelectUp.id,1040),N(L.CursorColumnSelectPageUp.id,1035),N(L.CursorColumnSelectDown.id,1042),N(L.CursorColumnSelectPageDown.id,1036),function(e){class t extends a._l{runEditorCommand(e,t,i){const n=t._getViewModel();n&&this.runCoreEditingCommand(t,n,i||{})}}e.CoreEditingCommand=t,e.LineBreakInsert=(0,a.fK)(new class extends t{constructor(){super({id:"lineBreakInsert",precondition:p.u.writable,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(e,t,i){e.pushUndoStop(),e.executeCommands(this.id,f.u6.lineBreakInsert(t.cursorConfig,t.model,t.getCursorStates().map((e=>e.modelState.selection))))}}),e.Outdent=(0,a.fK)(new class extends t{constructor(){super({id:"outdent",precondition:p.u.writable,kbOpts:{weight:C,kbExpr:_.Ao.and(p.u.editorTextFocus,p.u.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(e,t,i){e.pushUndoStop(),e.executeCommands(this.id,f.u6.outdent(t.cursorConfig,t.model,t.getCursorStates().map((e=>e.modelState.selection)))),e.pushUndoStop()}}),e.Tab=(0,a.fK)(new class extends t{constructor(){super({id:"tab",precondition:p.u.writable,kbOpts:{weight:C,kbExpr:_.Ao.and(p.u.editorTextFocus,p.u.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(e,t,i){e.pushUndoStop(),e.executeCommands(this.id,f.u6.tab(t.cursorConfig,t.model,t.getCursorStates().map((e=>e.modelState.selection)))),e.pushUndoStop()}}),e.DeleteLeft=(0,a.fK)(new class extends t{constructor(){super({id:"deleteLeft",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(e,t,i){const[n,o]=g.A.deleteLeft(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map((e=>e.modelState.selection)),t.getCursorAutoClosedCharacters());n&&e.pushUndoStop(),e.executeCommands(this.id,o),t.setPrevEditOperationType(2)}}),e.DeleteRight=(0,a.fK)(new class extends t{constructor(){super({id:"deleteRight",precondition:void 0,kbOpts:{weight:C,kbExpr:p.u.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(e,t,i){const[n,o]=g.A.deleteRight(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map((e=>e.modelState.selection)));n&&e.pushUndoStop(),e.executeCommands(this.id,o),t.setPrevEditOperationType(3)}}),e.Undo=new class extends k{constructor(){super(a.n_)}runDOMCommand(e){e.ownerDocument.execCommand("undo")}runEditorCommand(e,t,i){if(t.hasModel()&&!0!==t.getOption(91))return t.getModel().undo()}},e.Redo=new class extends k{constructor(){super(a.kz)}runDOMCommand(e){e.ownerDocument.execCommand("redo")}runEditorCommand(e,t,i){if(t.hasModel()&&!0!==t.getOption(91))return t.getModel().redo()}}}(E||(E={}));class I extends a.mY{constructor(e,t,i){super({id:e,precondition:void 0,metadata:i}),this._handlerId=t}runCommand(e,t){const i=e.get(l.$).getFocusedCodeEditor();i&&i.trigger("keyboard",this._handlerId,t)}}function T(e,t){x(new I("default:"+e,e)),x(new I(e,e,t))}T("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]}),T("replacePreviousChar"),T("compositionType"),T("compositionStart"),T("compositionEnd"),T("paste"),T("cut")},20411:(e,t,i)=>{i.d(t,{CL:()=>o,Pi:()=>r,QI:()=>s});var n=i(7906);function o(e){return!(!e||"function"!==typeof e.getEditorType)&&e.getEditorType()===n.g.ICodeEditor}function s(e){return!(!e||"function"!==typeof e.getEditorType)&&e.getEditorType()===n.g.IDiffEditor}function r(e){return o(e)?e:s(e)?e.getModifiedEditor():function(e){return!!e&&"object"===typeof e&&"function"===typeof e.onDidChangeActiveEditor}(e)&&o(e.activeCodeEditor)?e.activeCodeEditor:null}},64370:(e,t,i)=>{i.d(t,{AL:()=>v,N5:()=>p,Pp:()=>m,YN:()=>h,gy:()=>f,kG:()=>g,rU:()=>d,t7:()=>b,tC:()=>_});var n=i(85714),o=i(13505),s=i(21494),r=i(60282),a=i(89599),l=i(87701);class h{constructor(e,t){this.x=e,this.y=t,this._pageCoordinatesBrand=void 0}toClientCoordinates(e){return new d(this.x-e.scrollX,this.y-e.scrollY)}}class d{constructor(e,t){this.clientX=e,this.clientY=t,this._clientCoordinatesBrand=void 0}toPageCoordinates(e){return new h(this.clientX+e.scrollX,this.clientY+e.scrollY)}}class c{constructor(e,t,i,n){this.x=e,this.y=t,this.width=i,this.height=n,this._editorPagePositionBrand=void 0}}class u{constructor(e,t){this.x=e,this.y=t,this._positionRelativeToEditorBrand=void 0}}function g(e){const t=n.i(e);return new c(t.left,t.top,t.width,t.height)}function m(e,t,i){const n=t.width/e.offsetWidth,o=t.height/e.offsetHeight,s=(i.x-t.x)/n,r=(i.y-t.y)/o;return new u(s,r)}class f extends s.n{constructor(e,t,i){super(n.Jj(i),e),this._editorMouseEventBrand=void 0,this.isFromPointerCapture=t,this.pos=new h(this.posx,this.posy),this.editorPos=g(i),this.relativePos=m(i,this.editorPos,this.pos)}}class p{constructor(e){this._editorViewDomNode=e}_create(e){return new f(e,!1,this._editorViewDomNode)}onContextMenu(e,t){return n.nm(e,"contextmenu",(e=>{t(this._create(e))}))}onMouseUp(e,t){return n.nm(e,"mouseup",(e=>{t(this._create(e))}))}onMouseDown(e,t){return n.nm(e,n.tw.MOUSE_DOWN,(e=>{t(this._create(e))}))}onPointerDown(e,t){return n.nm(e,n.tw.POINTER_DOWN,(e=>{t(this._create(e),e.pointerId)}))}onMouseLeave(e,t){return n.nm(e,n.tw.MOUSE_LEAVE,(e=>{t(this._create(e))}))}onMouseMove(e,t){return n.nm(e,"mousemove",(e=>t(this._create(e))))}}class _{constructor(e){this._editorViewDomNode=e}_create(e){return new f(e,!1,this._editorViewDomNode)}onPointerUp(e,t){return n.nm(e,"pointerup",(e=>{t(this._create(e))}))}onPointerDown(e,t){return n.nm(e,n.tw.POINTER_DOWN,(e=>{t(this._create(e),e.pointerId)}))}onPointerLeave(e,t){return n.nm(e,n.tw.POINTER_LEAVE,(e=>{t(this._create(e))}))}onPointerMove(e,t){return n.nm(e,"pointermove",(e=>t(this._create(e))))}}class v extends a.JT{constructor(e){super(),this._editorViewDomNode=e,this._globalPointerMoveMonitor=this._register(new o.C),this._keydownListener=null}startMonitoring(e,t,i,o,s){this._keydownListener=n.mu(e.ownerDocument,"keydown",(e=>{e.toKeyCodeChord().isModifierKey()||this._globalPointerMoveMonitor.stopMonitoring(!0,e.browserEvent)}),!0),this._globalPointerMoveMonitor.startMonitoring(e,t,i,(e=>{o(new f(e,!0,this._editorViewDomNode))}),(e=>{this._keydownListener.dispose(),s(e)}))}stopMonitoring(){this._globalPointerMoveMonitor.stopMonitoring(!0)}}class b{constructor(e){this._editor=e,this._instanceId=++b._idPool,this._counter=0,this._rules=new Map,this._garbageCollectionScheduler=new r.pY((()=>this.garbageCollect()),1e3)}createClassNameRef(e){const t=this.getOrCreateRule(e);return t.increaseRefCount(),{className:t.className,dispose:()=>{t.decreaseRefCount(),this._garbageCollectionScheduler.schedule()}}}getOrCreateRule(e){const t=this.computeUniqueKey(e);let i=this._rules.get(t);if(!i){const o=this._counter++;i=new C(t,"dyn-rule-".concat(this._instanceId,"-").concat(o),n.OO(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0,e),this._rules.set(t,i)}return i}computeUniqueKey(e){return JSON.stringify(e)}garbageCollect(){for(const e of this._rules.values())e.hasReferences()||(this._rules.delete(e.key),e.dispose())}}b._idPool=0;class C{constructor(e,t,i,o){this.key=e,this.className=t,this.properties=o,this._referenceCount=0,this._styleElementDisposables=new a.SL,this._styleElement=n.dS(i,void 0,this._styleElementDisposables),this._styleElement.textContent=this.getCssText(this.className,this.properties)}getCssText(e,t){let i=".".concat(e," {");for(const n in t){const e=t[n];let o;o="object"===typeof e?(0,l.n_1)(e.id):e;const s=w(n);i+="\n\t".concat(s,": ").concat(o,";")}return i+="\n}",i}dispose(){this._styleElementDisposables.dispose(),this._styleElement=void 0}increaseRefCount(){this._referenceCount++}decreaseRefCount(){this._referenceCount--}hasReferences(){return this._referenceCount>0}}function w(e){return e.replace(/(^[A-Z])/,(e=>{let[t]=e;return t.toLowerCase()})).replace(/([A-Z])/g,(e=>{let[t]=e;return"-".concat(t.toLowerCase())}))}},23001:(e,t,i)=>{i.d(t,{AJ:()=>w,QG:()=>T,Qr:()=>E,R6:()=>L,Sq:()=>F,Uc:()=>n,_K:()=>M,_l:()=>S,fK:()=>x,jY:()=>k,kz:()=>P,mY:()=>C,n_:()=>O,rn:()=>I,sb:()=>N,x1:()=>D});var n,o=i(71721),s=i(82682),r=i(38119),a=i(2067),l=i(42175),h=i(93984),d=i(48489),c=i(60982),u=i(24920),g=i(34304),m=i(86728),f=i(70311),p=i(38015),_=i(63686),v=i(83717),b=i(85714);class C{constructor(e){this.id=e.id,this.precondition=e.precondition,this._kbOpts=e.kbOpts,this._menuOpts=e.menuOpts,this.metadata=e.metadata}register(){if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){const e=Array.isArray(this._kbOpts)?this._kbOpts:[this._kbOpts];for(const t of e){let e=t.kbExpr;this.precondition&&(e=e?u.Ao.and(e,this.precondition):this.precondition);const i={id:this.id,weight:t.weight,args:t.args,when:e,primary:t.primary,secondary:t.secondary,win:t.win,linux:t.linux,mac:t.mac};m.W.registerKeybindingRule(i)}}c.P.registerCommand({id:this.id,handler:(e,t)=>this.runCommand(e,t),metadata:this.metadata})}_registerMenuItem(e){d.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})}}class w extends C{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t,i,n){return this._implementations.push({priority:e,name:t,implementation:i,when:n}),this._implementations.sort(((e,t)=>t.priority-e.priority)),{dispose:()=>{for(let e=0;e{if(e.get(u.i6).contextMatchesRules(null!==i&&void 0!==i?i:void 0))return n(e,s,t)}))}runCommand(e,t){return S.runEditorCommand(e,t,this.precondition,((e,t,i)=>this.runEditorCommand(e,t,i)))}}class L extends S{static convertOptions(e){let t;function i(t){return t.menuId||(t.menuId=d.eH.EditorContext),t.title||(t.title=e.label),t.when=u.Ao.and(e.precondition,t.when),t}return t=Array.isArray(e.menuOpts)?e.menuOpts:e.menuOpts?[e.menuOpts]:[],Array.isArray(e.contextMenuOpts)?t.push(...e.contextMenuOpts.map(i)):e.contextMenuOpts&&t.push(i(e.contextMenuOpts)),e.menuOpts=t,e}constructor(e){super(L.convertOptions(e)),this.label=e.label,this.alias=e.alias}runEditorCommand(e,t,i){return this.reportTelemetry(e,t),this.run(e,t,i||{})}reportTelemetry(e,t){e.get(p.b).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}class k extends L{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t){return this._implementations.push([e,t]),this._implementations.sort(((e,t)=>t[0]-e[0])),{dispose:()=>{for(let e=0;e1?t-1:0),n=1;n{var t,n;const o=e.get(u.i6),r=e.get(v.VZ);if(o.contextMatchesRules(null!==(t=this.desc.precondition)&&void 0!==t?t:void 0))return this.runEditorCommand(e,s,...i);r.debug("[EditorAction2] NOT running command because its precondition is FALSE",this.desc.id,null===(n=this.desc.precondition)||void 0===n?void 0:n.serialize())}))}}function N(e,t){c.P.registerCommand(e,(function(e){for(var i=arguments.length,n=new Array(i>1?i-1:0),o=1;onew Promise(((i,o)=>{try{i(r.invokeFunction(t,e.object.textEditorModel,a.L.lift(c),n.slice(2)))}catch(s){o(s)}})).finally((()=>{e.dispose()}))))}))}function x(e){return A.INSTANCE.registerEditorCommand(e),e}function E(e){const t=new e;return A.INSTANCE.registerEditorAction(t),t}function I(e){return A.INSTANCE.registerEditorAction(e),e}function T(e){A.INSTANCE.registerEditorAction(e)}function M(e,t,i){A.INSTANCE.registerEditorContribution(e,t,i)}!function(e){e.getEditorCommand=function(e){return A.INSTANCE.getEditorCommand(e)},e.getEditorActions=function(){return A.INSTANCE.getEditorActions()},e.getEditorContributions=function(){return A.INSTANCE.getEditorContributions()},e.getSomeEditorContributions=function(e){return A.INSTANCE.getEditorContributions().filter((t=>e.indexOf(t.id)>=0))},e.getDiffEditorContributions=function(){return A.INSTANCE.getDiffEditorContributions()}}(n||(n={}));class A{constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(e,t,i){this.editorContributions.push({id:e,ctor:t,instantiation:i})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(e){e.register(),this.editorActions.push(e)}getEditorActions(){return this.editorActions}registerEditorCommand(e){e.register(),this.editorCommands[e.id]=e}getEditorCommand(e){return this.editorCommands[e]||null}}function R(e){return e.register(),e}A.INSTANCE=new A,f.B.add("editor.contributions",A.INSTANCE);const O=R(new w({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:d.eH.MenubarEditMenu,group:"1_do",title:o.NC({key:"miUndo",comment:["&& denotes a mnemonic"]},"&&Undo"),order:1},{menuId:d.eH.CommandPalette,group:"",title:o.NC("undo","Undo"),order:1}]}));R(new y(O,{id:"default:undo",precondition:void 0}));const P=R(new w({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:d.eH.MenubarEditMenu,group:"1_do",title:o.NC({key:"miRedo",comment:["&& denotes a mnemonic"]},"&&Redo"),order:2},{menuId:d.eH.CommandPalette,group:"",title:o.NC("redo","Redo"),order:1}]}));R(new y(P,{id:"default:redo",precondition:void 0}));const F=R(new w({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:d.eH.MenubarSelectionMenu,group:"1_basic",title:o.NC({key:"miSelectAll",comment:["&& denotes a mnemonic"]},"&&Select All"),order:1},{menuId:d.eH.CommandPalette,group:"",title:o.NC("selectAll","Select All"),order:1}]}))},621:(e,t,i)=>{i.d(t,{Gl:()=>l,fo:()=>a,vu:()=>r});var n=i(34304),o=i(82682),s=i(63686);const r=(0,n.yh)("IWorkspaceEditService");class a{constructor(e){this.metadata=e}static convert(e){return e.edits.map((e=>{if(l.is(e))return l.lift(e);if(h.is(e))return h.lift(e);throw new Error("Unsupported edit")}))}}class l extends a{static is(e){return e instanceof l||(0,s.Kn)(e)&&o.o.isUri(e.resource)&&(0,s.Kn)(e.textEdit)}static lift(e){return e instanceof l?e:new l(e.resource,e.textEdit,e.versionId,e.metadata)}constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;super(arguments.length>3?arguments[3]:void 0),this.resource=e,this.textEdit=t,this.versionId=i}}class h extends a{static is(e){return e instanceof h||(0,s.Kn)(e)&&(Boolean(e.newResource)||Boolean(e.oldResource))}static lift(e){return e instanceof h?e:new h(e.oldResource,e.newResource,e.options,e.metadata)}constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};super(arguments.length>3?arguments[3]:void 0),this.oldResource=e,this.newResource=t,this.options=i}}},38119:(e,t,i)=>{i.d(t,{$:()=>n});const n=(0,i(34304).yh)("codeEditorService")},56965:(e,t,i)=>{i.d(t,{Q8:()=>We,eu:()=>Oe});var n=i(60282),o=i(89599),s=i(85108),r=i(24219),a=i(10451),l=i(21511),h=i(25085);const d="$initialize";let c=!1;function u(e){l.$L&&(c||(c=!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))}class g{constructor(e,t,i,n){this.vsWorker=e,this.req=t,this.method=i,this.args=n,this.type=0}}class m{constructor(e,t,i,n){this.vsWorker=e,this.seq=t,this.res=i,this.err=n,this.type=1}}class f{constructor(e,t,i,n){this.vsWorker=e,this.req=t,this.eventName=i,this.arg=n,this.type=2}}class p{constructor(e,t,i){this.vsWorker=e,this.req=t,this.event=i,this.type=3}}class _{constructor(e,t){this.vsWorker=e,this.req=t,this.type=4}}class v{constructor(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(e){this._workerId=e}sendMessage(e,t){const i=String(++this._lastSentReq);return new Promise(((n,o)=>{this._pendingReplies[i]={resolve:n,reject:o},this._send(new g(this._workerId,i,e,t))}))}listen(e,t){let i=null;const n=new r.Q5({onWillAddFirstListener:()=>{i=String(++this._lastSentReq),this._pendingEmitters.set(i,n),this._send(new f(this._workerId,i,e,t))},onDidRemoveLastListener:()=>{this._pendingEmitters.delete(i),this._send(new _(this._workerId,i)),i=null}});return n.event}handleMessage(e){e&&e.vsWorker&&(-1!==this._workerId&&e.vsWorker!==this._workerId||this._handleMessage(e))}_handleMessage(e){switch(e.type){case 1:return this._handleReplyMessage(e);case 0:return this._handleRequestMessage(e);case 2:return this._handleSubscribeEventMessage(e);case 3:return this._handleEventMessage(e);case 4:return this._handleUnsubscribeEventMessage(e)}}_handleReplyMessage(e){if(!this._pendingReplies[e.seq])return void console.warn("Got reply to unknown seq");const t=this._pendingReplies[e.seq];if(delete this._pendingReplies[e.seq],e.err){let i=e.err;return e.err.$isError&&(i=new Error,i.name=e.err.name,i.message=e.err.message,i.stack=e.err.stack),void t.reject(i)}t.resolve(e.res)}_handleRequestMessage(e){const t=e.req;this._handler.handleMessage(e.method,e.args).then((e=>{this._send(new m(this._workerId,t,e,void 0))}),(e=>{e.detail instanceof Error&&(e.detail=(0,s.ri)(e.detail)),this._send(new m(this._workerId,t,void 0,(0,s.ri)(e)))}))}_handleSubscribeEventMessage(e){const t=e.req,i=this._handler.handleEvent(e.eventName,e.arg)((e=>{this._send(new p(this._workerId,t,e))}));this._pendingEvents.set(t,i)}_handleEventMessage(e){this._pendingEmitters.has(e.req)?this._pendingEmitters.get(e.req).fire(e.event):console.warn("Got event for unknown req")}_handleUnsubscribeEventMessage(e){this._pendingEvents.has(e.req)?(this._pendingEvents.get(e.req).dispose(),this._pendingEvents.delete(e.req)):console.warn("Got unsubscribe for unknown req")}_send(e){const t=[];if(0===e.type)for(let i=0;i{this._protocol.handleMessage(e)}),(e=>{null===n||void 0===n||n(e)}))),this._protocol=new v({sendMessage:(e,t)=>{this._worker.postMessage(e,t)},handleMessage:(e,t)=>{if("function"!==typeof i[e])return Promise.reject(new Error("Missing method "+e+" on main thread host."));try{return Promise.resolve(i[e].apply(i,t))}catch(n){return Promise.reject(n)}},handleEvent:(e,t)=>{if(w(e)){const n=i[e].call(i,t);if("function"!==typeof n)throw new Error("Missing dynamic event ".concat(e," on main thread host."));return n}if(C(e)){const t=i[e];if("function"!==typeof t)throw new Error("Missing event ".concat(e," on main thread host."));return t}throw new Error("Malformed event name ".concat(e))}}),this._protocol.setWorkerId(this._worker.getId());let o=null;const s=globalThis.require;"undefined"!==typeof s&&"function"===typeof s.getConfig?o=s.getConfig():"undefined"!==typeof globalThis.requirejs&&(o=globalThis.requirejs.s.contexts._.config);const r=(0,a.$E)(i);this._onModuleLoaded=this._protocol.sendMessage(d,[this._worker.getId(),JSON.parse(JSON.stringify(o)),t,r]);const l=(e,t)=>this._request(e,t),h=(e,t)=>this._protocol.listen(e,t);this._lazyProxy=new Promise(((e,i)=>{n=i,this._onModuleLoaded.then((t=>{e(y(t,l,h))}),(e=>{i(e),this._onError("Worker failed to load "+t,e)}))}))}getProxyObject(){return this._lazyProxy}_request(e,t){return new Promise(((i,n)=>{this._onModuleLoaded.then((()=>{this._protocol.sendMessage(e,t).then(i,n)}),n)}))}_onError(e,t){console.error(e),console.info(t)}}function C(e){return"o"===e[0]&&"n"===e[1]&&h.df(e.charCodeAt(2))}function w(e){return/^onDynamic/.test(e)&&h.df(e.charCodeAt(9))}function y(e,t,i){const n=e=>function(){const i=Array.prototype.slice.call(arguments,0);return t(e,i)},o=e=>function(t){return i(e,t)},s={};for(const r of e)w(r)?s[r]=o(r):C(r)?s[r]=i(r,void 0):s[r]=n(r);return s}const S=(0,i(52047).Z)("defaultWorkerFactory",{createScriptURL:e=>e});class L extends o.JT{constructor(e,t,i,n,s){super(),this.id=t,this.label=i;const r=function(e){const t=globalThis.MonacoEnvironment;if(t){if("function"===typeof t.getWorker)return t.getWorker("workerMain.js",e);if("function"===typeof t.getWorkerUrl){const i=t.getWorkerUrl("workerMain.js",e);return new Worker(S?S.createScriptURL(i):i,{name:e})}}throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}(i);"function"===typeof r.then?this.worker=r:this.worker=Promise.resolve(r),this.postMessage(e,[]),this.worker.then((e=>{e.onmessage=function(e){n(e.data)},e.onmessageerror=s,"function"===typeof e.addEventListener&&e.addEventListener("error",s)})),this._register((0,o.OF)((()=>{var e;null===(e=this.worker)||void 0===e||e.then((e=>{e.onmessage=null,e.onmessageerror=null,e.removeEventListener("error",s),e.terminate()})),this.worker=null})))}getId(){return this.id}postMessage(e,t){var i;null===(i=this.worker)||void 0===i||i.then((i=>{try{i.postMessage(e,t)}catch(n){(0,s.dL)(n),(0,s.dL)(new Error("FAILED to post message to '".concat(this.label,"'-worker"),{cause:n}))}}))}}class k{constructor(e){this._label=e,this._webWorkerFailedBeforeError=!1}create(e,t,i){const n=++k.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new L(e,n,this._label||"anonymous"+n,t,(e=>{u(e),this._webWorkerFailedBeforeError=e,i(e)}))}}k.LAST_WORKER_ID=0;var D=i(10670),N=i(40801),x=i(24323),E=i(82682),I=i(2067),T=i(7967);class M{constructor(e,t,i,n){this._uri=e,this._lines=t,this._eol=i,this._versionId=n,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}get version(){return this._versionId}getText(){return null===this._cachedTextValue&&(this._cachedTextValue=this._lines.join(this._eol)),this._cachedTextValue}onEvents(e){e.eol&&e.eol!==this._eol&&(this._eol=e.eol,this._lineStarts=null);const t=e.changes;for(const i of t)this._acceptDeleteRange(i.range),this._acceptInsertText(new I.L(i.range.startLineNumber,i.range.startColumn),i.text);this._versionId=e.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){const e=this._eol.length,t=this._lines.length,i=new Uint32Array(t);for(let n=0;nt&&(t=s),n>i&&(i=n),r>i&&(i=r)}t++,i++;const n=new O(i,t,0);for(let o=0,s=e.length;o=this._maxCharCode?0:this._states.get(e,t)}}let F=null;let B=null;class z{static _createLink(e,t,i,n,o){let s=o-1;do{const i=t.charCodeAt(s);if(2!==e.get(i))break;s--}while(s>n);if(n>0){const e=t.charCodeAt(n-1),i=t.charCodeAt(s);(40===e&&41===i||91===e&&93===i||123===e&&125===i)&&s--}return{range:{startLineNumber:i,startColumn:n+1,endLineNumber:i,endColumn:s+2},url:t.substring(n,s+1)}}static computeLinks(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(null===F&&(F=new P([[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]])),F);const i=function(){if(null===B){B=new R.N(0);const e=" \t<>'\"\u3001\u3002\uff61\uff64\uff0c\uff0e\uff1a\uff1b\u2018\u3008\u300c\u300e\u3014\uff08\uff3b\uff5b\uff62\uff63\uff5d\uff3d\uff09\u3015\u300f\u300d\u3009\u2019\uff40\uff5e\u2026";for(let i=0;i=0?(n+=i?1:-1,n<0?n=e.length-1:n%=e.length,e[n]):null}}V.INSTANCE=new V;var W=i(13930),H=i(6459),K=i(90428),U=i(55338),j=i(94739),q=i(39880),G=i(56590);const Q=3;class Z{computeDiff(e,t,i){var n;const o=new te(e,t,{maxComputationTime:i.maxComputationTimeMs,shouldIgnoreTrimWhitespace:i.ignoreTrimWhitespace,shouldComputeCharChanges:!0,shouldMakePrettyDiff:!0,shouldPostProcessCharChanges:!0}).computeDiff(),s=[];let r=null;for(const a of o.changes){let e,t;e=0===a.originalEndLineNumber?new G.z(a.originalStartLineNumber+1,a.originalStartLineNumber+1):new G.z(a.originalStartLineNumber,a.originalEndLineNumber+1),t=0===a.modifiedEndLineNumber?new G.z(a.modifiedStartLineNumber+1,a.modifiedStartLineNumber+1):new G.z(a.modifiedStartLineNumber,a.modifiedEndLineNumber+1);let i=new j.gB(e,t,null===(n=a.charChanges)||void 0===n?void 0:n.map((e=>new j.iy(new D.e(e.originalStartLineNumber,e.originalStartColumn,e.originalEndLineNumber,e.originalEndColumn),new D.e(e.modifiedStartLineNumber,e.modifiedStartColumn,e.modifiedEndLineNumber,e.modifiedEndColumn)))));r&&(r.modified.endLineNumberExclusive!==i.modified.startLineNumber&&r.original.endLineNumberExclusive!==i.original.startLineNumber||(i=new j.gB(r.original.join(i.original),r.modified.join(i.modified),r.innerChanges&&i.innerChanges?r.innerChanges.concat(i.innerChanges):void 0),s.pop())),s.push(i),r=i}return(0,q.eZ)((()=>(0,q.DM)(s,((e,t)=>t.original.startLineNumber-e.original.endLineNumberExclusive===t.modified.startLineNumber-e.modified.endLineNumberExclusive&&e.original.endLineNumberExclusive(10===e?"\\n":String.fromCharCode(e))+"-(".concat(this._lineNumbers[t],",").concat(this._columns[t],")"))).join(", ")+"]"}_assertIndex(e,t){if(e<0||e>=t.length)throw new Error("Illegal index")}getElements(){return this._charCodes}getStartLineNumber(e){return e>0&&e===this._lineNumbers.length?this.getEndLineNumber(e-1):(this._assertIndex(e,this._lineNumbers),this._lineNumbers[e])}getEndLineNumber(e){return-1===e?this.getStartLineNumber(e+1):(this._assertIndex(e,this._lineNumbers),10===this._charCodes[e]?this._lineNumbers[e]+1:this._lineNumbers[e])}getStartColumn(e){return e>0&&e===this._columns.length?this.getEndColumn(e-1):(this._assertIndex(e,this._columns),this._columns[e])}getEndColumn(e){return-1===e?this.getStartColumn(e+1):(this._assertIndex(e,this._columns),10===this._charCodes[e]?1:this._columns[e]+1)}}class X{constructor(e,t,i,n,o,s,r,a){this.originalStartLineNumber=e,this.originalStartColumn=t,this.originalEndLineNumber=i,this.originalEndColumn=n,this.modifiedStartLineNumber=o,this.modifiedStartColumn=s,this.modifiedEndLineNumber=r,this.modifiedEndColumn=a}static createFromDiffChange(e,t,i){const n=t.getStartLineNumber(e.originalStart),o=t.getStartColumn(e.originalStart),s=t.getEndLineNumber(e.originalStart+e.originalLength-1),r=t.getEndColumn(e.originalStart+e.originalLength-1),a=i.getStartLineNumber(e.modifiedStart),l=i.getStartColumn(e.modifiedStart),h=i.getEndLineNumber(e.modifiedStart+e.modifiedLength-1),d=i.getEndColumn(e.modifiedStart+e.modifiedLength-1);return new X(n,o,s,r,a,l,h,d)}}class ee{constructor(e,t,i,n,o){this.originalStartLineNumber=e,this.originalEndLineNumber=t,this.modifiedStartLineNumber=i,this.modifiedEndLineNumber=n,this.charChanges=o}static createFromDiffResult(e,t,i,n,o,s,r){let a,l,h,d,c;if(0===t.originalLength?(a=i.getStartLineNumber(t.originalStart)-1,l=0):(a=i.getStartLineNumber(t.originalStart),l=i.getEndLineNumber(t.originalStart+t.originalLength-1)),0===t.modifiedLength?(h=n.getStartLineNumber(t.modifiedStart)-1,d=0):(h=n.getStartLineNumber(t.modifiedStart),d=n.getEndLineNumber(t.modifiedStart+t.modifiedLength-1)),s&&t.originalLength>0&&t.originalLength<20&&t.modifiedLength>0&&t.modifiedLength<20&&o()){const s=i.createCharSequence(e,t.originalStart,t.originalStart+t.originalLength-1),a=n.createCharSequence(e,t.modifiedStart,t.modifiedStart+t.modifiedLength-1);if(s.getElements().length>0&&a.getElements().length>0){let e=Y(s,a,o,!0).changes;r&&(e=function(e){if(e.length<=1)return e;const t=[e[0]];let i=t[0];for(let n=1,o=e.length;n1&&r>1;){if(e.charCodeAt(i-2)!==t.charCodeAt(r-2))break;i--,r--}(i>1||r>1)&&this._pushTrimWhitespaceCharChange(n,o+1,1,i,s+1,1,r)}{let i=ne(e,1),r=ne(t,1);const a=e.length+1,l=t.length+1;for(;i!0;const t=Date.now();return()=>Date.now()-tnew Z,ae=()=>new se.DW;var le=i(89652);function he(e){const t=[];for(const i of e){const e=Number(i);(e||0===e&&""!==i.replace(/\s/g,""))&&t.push(e)}return t}function de(e,t,i,n){return{red:e/255,blue:i/255,green:t/255,alpha:n}}function ce(e,t){const i=t.index,n=t[0].length;if(!i)return;const o=e.positionAt(i);return{startLineNumber:o.lineNumber,startColumn:o.column,endLineNumber:o.lineNumber,endColumn:o.column+n}}function ue(e,t){if(!e)return;const i=le.Il.Format.CSS.parseHex(t);return i?{range:e,color:de(i.rgba.r,i.rgba.g,i.rgba.b,i.rgba.a)}:void 0}function ge(e,t,i){if(!e||1!==t.length)return;const n=he(t[0].values());return{range:e,color:de(n[0],n[1],n[2],i?n[3]:1)}}function me(e,t,i){if(!e||1!==t.length)return;const n=he(t[0].values()),o=new le.Il(new le.Oz(n[0],n[1]/100,n[2]/100,i?n[3]:1));return{range:e,color:de(o.rgba.r,o.rgba.g,o.rgba.b,o.rgba.a)}}function fe(e,t){return"string"===typeof e?[...e.matchAll(t)]:e.findMatches(t)}function pe(e){return e&&"function"===typeof e.getValue&&"function"===typeof e.positionAt?function(e){const t=[],i=fe(e,/\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%]*\))|(#)([A-Fa-f0-9]{3})\b|(#)([A-Fa-f0-9]{4})\b|(#)([A-Fa-f0-9]{6})\b|(#)([A-Fa-f0-9]{8})\b/gm);if(i.length>0)for(const n of i){const i=n.filter((e=>void 0!==e)),o=i[1],s=i[2];if(!s)continue;let r;if("rgb"===o){const t=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;r=ge(ce(e,n),fe(s,t),!1)}else if("rgba"===o){const t=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;r=ge(ce(e,n),fe(s,t),!0)}else if("hsl"===o){const t=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;r=me(ce(e,n),fe(s,t),!1)}else if("hsla"===o){const t=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;r=me(ce(e,n),fe(s,t),!0)}else"#"===o&&(r=ue(ce(e,n),o+s));r&&t.push(r)}return t}(e):[]}const _e=/\bMARK:\s*(.*)$/d,ve=/^-+|-+$/g;function be(e,t){var i;let n=[];if(t.findRegionSectionHeaders&&(null===(i=t.foldingRules)||void 0===i?void 0:i.markers)){const i=function(e,t){const i=[],n=e.getLineCount();for(let o=1;o<=n;o++){const n=e.getLineContent(o),s=n.match(t.foldingRules.markers.start);if(s){const e={startLineNumber:o,startColumn:s[0].length+1,endLineNumber:o,endColumn:n.length+1};if(e.endColumn>e.startColumn){const t={range:e,...we(n.substring(s[0].length)),shouldBeInComments:!1};(t.text||t.hasSeparatorLine)&&i.push(t)}}}return i}(e,t);n=n.concat(i)}if(t.findMarkSectionHeaders){const t=function(e){const t=[],i=e.getLineCount();for(let n=1;n<=i;n++){Ce(e.getLineContent(n),n,t)}return t}(e);n=n.concat(t)}return n}function Ce(e,t,i){_e.lastIndex=0;const n=_e.exec(e);if(n){const e={startLineNumber:t,startColumn:n.indices[1][0]+1,endLineNumber:t,endColumn:n.indices[1][1]+1};if(e.endColumn>e.startColumn){const t={range:e,...we(n[1]),shouldBeInComments:!0};(t.text||t.hasSeparatorLine)&&i.push(t)}}}function we(e){const t=(e=e.trim()).startsWith("-");return{text:e=e.replace(ve,""),hasSeparatorLine:t}}class ye extends M{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(e){const t=[];for(let i=0;ithis._lines.length)t=this._lines.length,i=this._lines[t-1].length+1,n=!0;else{const e=this._lines[t-1].length+1;i<1?(i=1,n=!0):i>e&&(i=e,n=!0)}return n?{lineNumber:t,column:i}:e}}class Se{constructor(e,t){this._host=e,this._models=Object.create(null),this._foreignModuleFactory=t,this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(e){return this._models[e]}_getModels(){const e=[];return Object.keys(this._models).forEach((t=>e.push(this._models[t]))),e}acceptNewModel(e){this._models[e.url]=new ye(E.o.parse(e.url),e.lines,e.EOL,e.versionId)}acceptModelChanged(e,t){if(!this._models[e])return;this._models[e].onEvents(t)}acceptRemovedModel(e){this._models[e]&&delete this._models[e]}async computeUnicodeHighlights(e,t,i){const n=this._getModel(e);return n?K.a.computeUnicodeHighlights(n,t,i):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}}async findSectionHeaders(e,t){const i=this._getModel(e);return i?be(i,t):[]}async computeDiff(e,t,i,n){const o=this._getModel(e),s=this._getModel(t);if(!o||!s)return null;return Se.computeDiff(o,s,i,n)}static computeDiff(e,t,i,n){const o="advanced"===n?ae():re(),s=e.getLinesContent(),r=t.getLinesContent(),a=o.computeDiff(s,r,i);function l(e){return e.map((e=>{var t;return[e.original.startLineNumber,e.original.endLineNumberExclusive,e.modified.startLineNumber,e.modified.endLineNumberExclusive,null===(t=e.innerChanges)||void 0===t?void 0:t.map((e=>[e.originalRange.startLineNumber,e.originalRange.startColumn,e.originalRange.endLineNumber,e.originalRange.endColumn,e.modifiedRange.startLineNumber,e.modifiedRange.startColumn,e.modifiedRange.endLineNumber,e.modifiedRange.endColumn]))]}))}return{identical:!(a.changes.length>0)&&this._modelsAreIdentical(e,t),quitEarly:a.hitTimeout,changes:l(a.changes),moves:a.moves.map((e=>[e.lineRangeMapping.original.startLineNumber,e.lineRangeMapping.original.endLineNumberExclusive,e.lineRangeMapping.modified.startLineNumber,e.lineRangeMapping.modified.endLineNumberExclusive,l(e.changes)]))}}static _modelsAreIdentical(e,t){const i=e.getLineCount();if(i!==t.getLineCount())return!1;for(let n=1;n<=i;n++){if(e.getLineContent(n)!==t.getLineContent(n))return!1}return!0}async computeMoreMinimalEdits(e,t,i){const n=this._getModel(e);if(!n)return t;const o=[];let s;t=t.slice(0).sort(((e,t)=>{if(e.range&&t.range)return D.e.compareRangesUsingStarts(e.range,t.range);return(e.range?0:1)-(t.range?0:1)}));let r=0;for(let a=1;aSe._diffLimit){o.push({range:a,text:l});continue}const t=(0,x.a$)(e,l,i),r=n.offsetAt(D.e.lift(a).getStartPosition());for(const i of t){const e=n.positionAt(r+i.originalStart),t=n.positionAt(r+i.originalStart+i.originalLength),s={text:l.substr(i.modifiedStart,i.modifiedLength),range:{startLineNumber:e.lineNumber,startColumn:e.column,endLineNumber:t.lineNumber,endColumn:t.column}};n.getValueInRange(s.range)!==s.text&&o.push(s)}}return"number"===typeof s&&o.push({eol:s,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),o}async computeLinks(e){const t=this._getModel(e);return t?function(e){return e&&"function"===typeof e.getLineCount&&"function"===typeof e.getLineContent?z.computeLinks(e):[]}(t):null}async computeDefaultDocumentColors(e){const t=this._getModel(e);return t?pe(t):null}async textualSuggest(e,t,i,n){const o=new H.G,s=new RegExp(i,n),r=new Set;e:for(const a of e){const e=this._getModel(a);if(e)for(const i of e.words(s))if(i!==t&&isNaN(Number(i))&&(r.add(i),r.size>Se._suggestionsLimit))break e}return{words:Array.from(r),duration:o.elapsed()}}async computeWordRanges(e,t,i,n){const o=this._getModel(e);if(!o)return Object.create(null);const s=new RegExp(i,n),r=Object.create(null);for(let a=t.startLineNumber;athis._host.fhr(e,t))),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(n,t),Promise.resolve((0,a.$E)(this._foreignModule))):Promise.reject(new Error("Unexpected usage"))}fmr(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(i){return Promise.reject(i)}}}Se._diffLimit=1e5,Se._suggestionsLimit=1e4,"function"===typeof importScripts&&(globalThis.monaco=(0,W.O)());var Le=i(42175),ke=i(61315),De=i(75629),Ne=i(83717),xe=i(89752),Ee=i(29880),Ie=i(85714),Te=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Me=function(e,t){return function(i,n){t(i,n,e)}};const Ae=3e5;function Re(e,t){const i=e.getModel(t);return!!i&&!i.isTooLargeForSyncing()}let Oe=class extends o.JT{constructor(e,t,i,n,o){super(),this._modelService=e,this._workerManager=this._register(new Fe(this._modelService,n)),this._logService=i,this._register(o.linkProvider.register({language:"*",hasAccessToAllModels:!0},{provideLinks:(e,t)=>Re(this._modelService,e.uri)?this._workerManager.withWorker().then((t=>t.computeLinks(e.uri))).then((e=>e&&{links:e})):Promise.resolve({links:[]})})),this._register(o.completionProvider.register("*",new Pe(this._workerManager,t,this._modelService,n)))}dispose(){super.dispose()}canComputeUnicodeHighlights(e){return Re(this._modelService,e)}computedUnicodeHighlights(e,t,i){return this._workerManager.withWorker().then((n=>n.computedUnicodeHighlights(e,t,i)))}async computeDiff(e,t,i,n){const o=await this._workerManager.withWorker().then((o=>o.computeDiff(e,t,i,n)));if(!o)return null;return{identical:o.identical,quitEarly:o.quitEarly,changes:s(o.changes),moves:o.moves.map((e=>new U.y(new j.f0(new G.z(e[0],e[1]),new G.z(e[2],e[3])),s(e[4]))))};function s(e){return e.map((e=>{var t;return new j.gB(new G.z(e[0],e[1]),new G.z(e[2],e[3]),null===(t=e[4])||void 0===t?void 0:t.map((e=>new j.iy(new D.e(e[0],e[1],e[2],e[3]),new D.e(e[4],e[5],e[6],e[7])))))}))}}computeMoreMinimalEdits(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if((0,De.Of)(t)){if(!Re(this._modelService,e))return Promise.resolve(t);const o=H.G.create(),s=this._workerManager.withWorker().then((n=>n.computeMoreMinimalEdits(e,t,i)));return s.finally((()=>this._logService.trace("FORMAT#computeMoreMinimalEdits",e.toString(!0),o.elapsed()))),Promise.race([s,(0,n.Vs)(1e3).then((()=>t))])}return Promise.resolve(void 0)}canNavigateValueSet(e){return Re(this._modelService,e)}navigateValueSet(e,t,i){return this._workerManager.withWorker().then((n=>n.navigateValueSet(e,t,i)))}canComputeWordRanges(e){return Re(this._modelService,e)}computeWordRanges(e,t){return this._workerManager.withWorker().then((i=>i.computeWordRanges(e,t)))}findSectionHeaders(e,t){return this._workerManager.withWorker().then((i=>i.findSectionHeaders(e,t)))}};Oe=Te([Me(0,Le.q),Me(1,ke.V),Me(2,Ne.VZ),Me(3,N.c_),Me(4,xe.p)],Oe);class Pe{constructor(e,t,i,n){this.languageConfigurationService=n,this._debugDisplayName="wordbasedCompletions",this._workerManager=e,this._configurationService=t,this._modelService=i}async provideCompletionItems(e,t){const i=this._configurationService.getValue(e.uri,t,"editor");if("off"===i.wordBasedSuggestions)return;const n=[];if("currentDocument"===i.wordBasedSuggestions)Re(this._modelService,e.uri)&&n.push(e.uri);else for(const d of this._modelService.getModels())Re(this._modelService,d.uri)&&(d===e?n.unshift(d.uri):"allDocuments"!==i.wordBasedSuggestions&&d.getLanguageId()!==e.getLanguageId()||n.push(d.uri));if(0===n.length)return;const o=this.languageConfigurationService.getLanguageConfiguration(e.getLanguageId()).getWordDefinition(),s=e.getWordAtPosition(t),r=s?new D.e(t.lineNumber,s.startColumn,t.lineNumber,s.endColumn):D.e.fromPositions(t),a=r.setEndPosition(t.lineNumber,t.column),l=await this._workerManager.withWorker(),h=await l.textualSuggest(n,null===s||void 0===s?void 0:s.word,o);return h?{duration:h.duration,suggestions:h.words.map((e=>({kind:18,label:e,insertText:e,range:{insert:a,replace:r}})))}:void 0}}class Fe extends o.JT{constructor(e,t){super(),this.languageConfigurationService=t,this._modelService=e,this._editorWorkerClient=null,this._lastWorkerUsedTime=(new Date).getTime();this._register(new Ie.ne).cancelAndSet((()=>this._checkStopIdleWorker()),Math.round(15e4),Ee.E),this._register(this._modelService.onModelRemoved((e=>this._checkStopEmptyWorker())))}dispose(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),super.dispose()}_checkStopEmptyWorker(){if(!this._editorWorkerClient)return;0===this._modelService.getModels().length&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}_checkStopIdleWorker(){if(!this._editorWorkerClient)return;(new Date).getTime()-this._lastWorkerUsedTime>Ae&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}withWorker(){return this._lastWorkerUsedTime=(new Date).getTime(),this._editorWorkerClient||(this._editorWorkerClient=new We(this._modelService,!1,"editorWorkerService",this.languageConfigurationService)),Promise.resolve(this._editorWorkerClient)}}class Be extends o.JT{constructor(e,t,i){if(super(),this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),this._proxy=e,this._modelService=t,!i){const e=new n.zh;e.cancelAndSet((()=>this._checkStopModelSync()),Math.round(3e4)),this._register(e)}}dispose(){for(const e in this._syncedModels)(0,o.B9)(this._syncedModels[e]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),super.dispose()}ensureSyncedResources(e,t){for(const i of e){const e=i.toString();this._syncedModels[e]||this._beginModelSync(i,t),this._syncedModels[e]&&(this._syncedModelsLastUsedTime[e]=(new Date).getTime())}}_checkStopModelSync(){const e=(new Date).getTime(),t=[];for(const i in this._syncedModelsLastUsedTime){e-this._syncedModelsLastUsedTime[i]>6e4&&t.push(i)}for(const i of t)this._stopModelSync(i)}_beginModelSync(e,t){const i=this._modelService.getModel(e);if(!i)return;if(!t&&i.isTooLargeForSyncing())return;const n=e.toString();this._proxy.acceptNewModel({url:i.uri.toString(),lines:i.getLinesContent(),EOL:i.getEOL(),versionId:i.getVersionId()});const s=new o.SL;s.add(i.onDidChangeContent((e=>{this._proxy.acceptModelChanged(n.toString(),e)}))),s.add(i.onWillDispose((()=>{this._stopModelSync(n)}))),s.add((0,o.OF)((()=>{this._proxy.acceptRemovedModel(n)}))),this._syncedModels[n]=s}_stopModelSync(e){const t=this._syncedModels[e];delete this._syncedModels[e],delete this._syncedModelsLastUsedTime[e],(0,o.B9)(t)}}class ze{constructor(e){this._instance=e,this._proxyObj=Promise.resolve(this._instance)}dispose(){this._instance.dispose()}getProxyObject(){return this._proxyObj}}class Ve{constructor(e){this._workerClient=e}fhr(e,t){return this._workerClient.fhr(e,t)}}class We extends o.JT{constructor(e,t,i,n){super(),this.languageConfigurationService=n,this._disposed=!1,this._modelService=e,this._keepIdleModels=t,this._workerFactory=new k(i),this._worker=null,this._modelManager=null}fhr(e,t){throw new Error("Not implemented!")}_getOrCreateWorker(){if(!this._worker)try{this._worker=this._register(new b(this._workerFactory,"vs/editor/common/services/editorSimpleWorker",new Ve(this)))}catch(e){u(e),this._worker=new ze(new Se(new Ve(this),null))}return this._worker}_getProxy(){return this._getOrCreateWorker().getProxyObject().then(void 0,(e=>(u(e),this._worker=new ze(new Se(new Ve(this),null)),this._getOrCreateWorker().getProxyObject())))}_getOrCreateModelManager(e){return this._modelManager||(this._modelManager=this._register(new Be(e,this._modelService,this._keepIdleModels))),this._modelManager}async _withSyncedResources(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this._disposed?Promise.reject((0,s.F0)()):this._getProxy().then((i=>(this._getOrCreateModelManager(i).ensureSyncedResources(e,t),i)))}computedUnicodeHighlights(e,t,i){return this._withSyncedResources([e]).then((n=>n.computeUnicodeHighlights(e.toString(),t,i)))}computeDiff(e,t,i,n){return this._withSyncedResources([e,t],!0).then((o=>o.computeDiff(e.toString(),t.toString(),i,n)))}computeMoreMinimalEdits(e,t,i){return this._withSyncedResources([e]).then((n=>n.computeMoreMinimalEdits(e.toString(),t,i)))}computeLinks(e){return this._withSyncedResources([e]).then((t=>t.computeLinks(e.toString())))}computeDefaultDocumentColors(e){return this._withSyncedResources([e]).then((t=>t.computeDefaultDocumentColors(e.toString())))}async textualSuggest(e,t,i){const n=await this._withSyncedResources(e),o=i.source,s=i.flags;return n.textualSuggest(e.map((e=>e.toString())),t,o,s)}computeWordRanges(e,t){return this._withSyncedResources([e]).then((i=>{const n=this._modelService.getModel(e);if(!n)return Promise.resolve(null);const o=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId()).getWordDefinition(),s=o.source,r=o.flags;return i.computeWordRanges(e.toString(),t,s,r)}))}navigateValueSet(e,t,i){return this._withSyncedResources([e]).then((n=>{const o=this._modelService.getModel(e);if(!o)return null;const s=this.languageConfigurationService.getLanguageConfiguration(o.getLanguageId()).getWordDefinition(),r=s.source,a=s.flags;return n.navigateValueSet(e.toString(),t,i,r,a)}))}findSectionHeaders(e,t){return this._withSyncedResources([e]).then((i=>i.findSectionHeaders(e.toString(),t)))}dispose(){super.dispose(),this._disposed=!0}}},1135:(e,t,i)=>{i.d(t,{Z:()=>n});class n{static capture(e){if(0===e.getScrollTop()||e.hasPendingScrollAnimation())return new n(e.getScrollTop(),e.getContentHeight(),null,0,null);let t=null,i=0;const o=e.getVisibleRanges();if(o.length>0){t=o[0].getStartPosition();const n=e.getTopForPosition(t.lineNumber,t.column);i=e.getScrollTop()-n}return new n(e.getScrollTop(),e.getContentHeight(),t,i,e.getPosition())}constructor(e,t,i,n,o){this._initialScrollTop=e,this._initialContentHeight=t,this._visiblePosition=i,this._visiblePositionScrollDelta=n,this._cursorPosition=o}restore(e){if((this._initialContentHeight!==e.getContentHeight()||this._initialScrollTop!==e.getScrollTop())&&this._visiblePosition){const t=e.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);e.setScrollTop(t+this._visiblePositionScrollDelta)}}restoreRelativeVerticalPositionOfCursor(e){if(this._initialContentHeight===e.getContentHeight()&&this._initialScrollTop===e.getScrollTop())return;const t=e.getPosition();if(!this._cursorPosition||!t)return;const i=e.getTopForLineNumber(t.lineNumber)-e.getTopForLineNumber(this._cursorPosition.lineNumber);e.setScrollTop(e.getScrollTop()+i)}}},15115:(e,t,i)=>{i.d(t,{CH:()=>h,CR:()=>a,D4:()=>l,u7:()=>s,xh:()=>o,yu:()=>r});class n{constructor(e,t){this._restrictedRenderingContextBrand=void 0,this._viewLayout=e,this.viewportData=t,this.scrollWidth=this._viewLayout.getScrollWidth(),this.scrollHeight=this._viewLayout.getScrollHeight(),this.visibleRange=this.viewportData.visibleRange,this.bigNumbersDelta=this.viewportData.bigNumbersDelta;const i=this._viewLayout.getCurrentViewport();this.scrollTop=i.top,this.scrollLeft=i.left,this.viewportWidth=i.width,this.viewportHeight=i.height}getScrolledTopFromAbsoluteTop(e){return e-this.scrollTop}getVerticalOffsetForLineNumber(e,t){return this._viewLayout.getVerticalOffsetForLineNumber(e,t)}getVerticalOffsetAfterLineNumber(e,t){return this._viewLayout.getVerticalOffsetAfterLineNumber(e,t)}getDecorationsInViewport(){return this.viewportData.getDecorationsInViewport()}}class o extends n{constructor(e,t,i){super(e,t),this._renderingContextBrand=void 0,this._viewLines=i}linesVisibleRangesForRange(e,t){return this._viewLines.linesVisibleRangesForRange(e,t)}visibleRangeForPosition(e){return this._viewLines.visibleRangeForPosition(e)}}class s{constructor(e,t,i,n){this.outsideRenderedLine=e,this.lineNumber=t,this.ranges=i,this.continuesOnNextLine=n}}class r{static from(e){const t=new Array(e.length);for(let i=0,n=e.length;i{i.d(t,{Nt:()=>f,ob:()=>m,dL:()=>y});var n=i(42606),o=i(45153),s=i(21511),r=i(15115);class a{static _createRange(){return this._handyReadyRange||(this._handyReadyRange=document.createRange()),this._handyReadyRange}static _detachRange(e,t){e.selectNodeContents(t)}static _readClientRects(e,t,i,n,o){const s=this._createRange();try{return s.setStart(e,t),s.setEnd(i,n),s.getClientRects()}catch(r){return null}finally{this._detachRange(s,o)}}static _mergeAdjacentRanges(e){if(1===e.length)return e;e.sort(r.CR.compare);const t=[];let i=0,n=e[0];for(let o=1,s=e.length;o=s.left?n.width=Math.max(n.width,s.left+s.width-n.left):(t[i++]=n,n=s)}return t[i++]=n,t}static _createHorizontalRangesFromClientRects(e,t,i){if(!e||0===e.length)return null;const n=[];for(let o=0,s=e.length;or)return null;if((t=Math.min(r,Math.max(0,t)))===(n=Math.min(r,Math.max(0,n)))&&i===o&&0===i&&!e.children[t].firstChild){const i=e.children[t].getClientRects();return s.markDidDomLayout(),this._createHorizontalRangesFromClientRects(i,s.clientRectDeltaLeft,s.clientRectScale)}t!==n&&n>0&&0===o&&(n--,o=1073741824);let a=e.children[t].firstChild,l=e.children[n].firstChild;if(a&&l||(!a&&0===i&&t>0&&(a=e.children[t-1].firstChild,i=1073741824),!l&&0===o&&n>0&&(l=e.children[n-1].firstChild,o=1073741824)),!a||!l)return null;i=Math.min(a.textContent.length,Math.max(0,i)),o=Math.min(l.textContent.length,Math.max(0,o));const h=this._readClientRects(a,i,l,o,s.endNode);return s.markDidDomLayout(),this._createHorizontalRangesFromClientRects(h,s.clientRectDeltaLeft,s.clientRectScale)}}var l=i(85766),h=i(34543),d=i(75826),c=i(38092);const u=!!s.tY||!(s.IJ||n.vU||n.G6);let g=!0;class m{constructor(e,t){this.themeType=t;const i=e.options,n=i.get(50),o=i.get(38);this.renderWhitespace="off"===o?i.get(99):"none",this.renderControlCharacters=i.get(94),this.spaceWidth=n.spaceWidth,this.middotWidth=n.middotWidth,this.wsmiddotWidth=n.wsmiddotWidth,this.useMonospaceOptimizations=n.isMonospace&&!i.get(33),this.canUseHalfwidthRightwardsArrow=n.canUseHalfwidthRightwardsArrow,this.lineHeight=i.get(67),this.stopRenderingLineAfter=i.get(117),this.fontLigatures=i.get(51)}equals(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}}class f{constructor(e){this._options=e,this._isMaybeInvalid=!0,this._renderedViewLine=null}getDomNode(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null}setDomNode(e){if(!this._renderedViewLine)throw new Error("I have no rendered view line to set the dom node to...");this._renderedViewLine.domNode=(0,o.X)(e)}onContentChanged(){this._isMaybeInvalid=!0}onTokensChanged(){this._isMaybeInvalid=!0}onDecorationsChanged(){this._isMaybeInvalid=!0}onOptionsChanged(e){this._isMaybeInvalid=!0,this._options=e}onSelectionChanged(){return!(!(0,d.c3)(this._options.themeType)&&"selection"!==this._options.renderWhitespace)&&(this._isMaybeInvalid=!0,!0)}renderLine(e,t,i,n,o){if(!1===this._isMaybeInvalid)return!1;this._isMaybeInvalid=!1;const s=n.getViewLineRenderingData(e),r=this._options,a=l.Kp.filter(s.inlineDecorations,e,s.minColumn,s.maxColumn);let m=null;if((0,d.c3)(r.themeType)||"selection"===this._options.renderWhitespace){const t=n.selections;for(const i of t){if(i.endLineNumbere)continue;const t=i.startLineNumber===e?i.startColumn:s.minColumn,n=i.endLineNumber===e?i.endColumn:s.maxColumn;t');const v=(0,h.d1)(_,o);o.appendString("
    ");let C=null;return g&&u&&s.isBasicASCII&&r.useMonospaceOptimizations&&0===v.containsForeignElements&&(C=new p(this._renderedViewLine?this._renderedViewLine.domNode:null,_,v.characterMapping)),C||(C=b(this._renderedViewLine?this._renderedViewLine.domNode:null,_,v.characterMapping,v.containsRTL,v.containsForeignElements)),this._renderedViewLine=C,!0}layoutLine(e,t,i){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(i))}getWidth(e){return this._renderedViewLine?this._renderedViewLine.getWidth(e):0}getWidthIsFast(){return!this._renderedViewLine||this._renderedViewLine.getWidthIsFast()}needsMonospaceFontCheck(){return!!this._renderedViewLine&&this._renderedViewLine instanceof p}monospaceAssumptionsAreValid(){return this._renderedViewLine&&this._renderedViewLine instanceof p?this._renderedViewLine.monospaceAssumptionsAreValid():g}onMonospaceAssumptionsInvalidated(){this._renderedViewLine&&this._renderedViewLine instanceof p&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}getVisibleRangesForRange(e,t,i,n){if(!this._renderedViewLine)return null;t=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t)),i=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,i));const o=this._renderedViewLine.input.stopRenderingLineAfter;if(-1!==o&&t>o+1&&i>o+1)return new r.CH(!0,[new r.CR(this.getWidth(n),0)]);-1!==o&&t>o+1&&(t=o+1),-1!==o&&i>o+1&&(i=o+1);const s=this._renderedViewLine.getVisibleRangesForRange(e,t,i,n);return s&&s.length>0?new r.CH(!1,s):null}getColumnOfNodeOffset(e,t){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(e,t):1}}f.CLASS_NAME="view-line";class p{constructor(e,t,i){this._cachedWidth=-1,this.domNode=e,this.input=t;const n=Math.floor(t.lineContent.length/300);if(n>0){this._keyColumnPixelOffsetCache=new Float32Array(n);for(let e=0;e=2&&(console.warn("monospace assumptions have been violated, therefore disabling monospace optimizations!"),g=!1)}return g}toSlowRenderedLine(){return b(this.domNode,this.input,this._characterMapping,!1,0)}getVisibleRangesForRange(e,t,i,n){const o=this._getColumnPixelOffset(e,t,n),s=this._getColumnPixelOffset(e,i,n);return[new r.CR(o,s-o)]}_getColumnPixelOffset(e,t,i){if(t<=300){const e=this._characterMapping.getHorizontalOffset(t);return this._charWidth*e}const n=Math.floor((t-1)/300)-1,o=300*(n+1)+1;let s=-1;if(this._keyColumnPixelOffsetCache&&(s=this._keyColumnPixelOffsetCache[n],-1===s&&(s=this._actualReadPixelOffset(e,o,i),this._keyColumnPixelOffsetCache[n]=s)),-1===s){const e=this._characterMapping.getHorizontalOffset(t);return this._charWidth*e}const r=this._characterMapping.getHorizontalOffset(o),a=this._characterMapping.getHorizontalOffset(t);return s+this._charWidth*(a-r)}_getReadingTarget(e){return e.domNode.firstChild}_actualReadPixelOffset(e,t,i){if(!this.domNode)return-1;const n=this._characterMapping.getDomPosition(t),o=a.readHorizontalRanges(this._getReadingTarget(this.domNode),n.partIndex,n.charIndex,n.partIndex,n.charIndex,i);return o&&0!==o.length?o[0].left:-1}getColumnOfNodeOffset(e,t){return y(this._characterMapping,e,t)}}class _{constructor(e,t,i,n,o){if(this.domNode=e,this.input=t,this._characterMapping=i,this._isWhitespaceOnly=/^\s*$/.test(t.lineContent),this._containsForeignElements=o,this._cachedWidth=-1,this._pixelOffsetCache=null,!n||0===this._characterMapping.length){this._pixelOffsetCache=new Float32Array(Math.max(2,this._characterMapping.length+1));for(let e=0,t=this._characterMapping.length;e<=t;e++)this._pixelOffsetCache[e]=-1}}_getReadingTarget(e){return e.domNode.firstChild}getWidth(e){return this.domNode?(-1===this._cachedWidth&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth,null===e||void 0===e||e.markDidDomLayout()),this._cachedWidth):0}getWidthIsFast(){return-1!==this._cachedWidth}getVisibleRangesForRange(e,t,i,n){if(!this.domNode)return null;if(null!==this._pixelOffsetCache){const o=this._readPixelOffset(this.domNode,e,t,n);if(-1===o)return null;const s=this._readPixelOffset(this.domNode,e,i,n);return-1===s?null:[new r.CR(o,s-o)]}return this._readVisibleRangesForRange(this.domNode,e,t,i,n)}_readVisibleRangesForRange(e,t,i,n,o){if(i===n){const n=this._readPixelOffset(e,t,i,o);return-1===n?null:[new r.CR(n,0)]}return this._readRawVisibleRangesForRange(e,i,n,o)}_readPixelOffset(e,t,i,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(n);const t=this._getReadingTarget(e);return t.firstChild?(n.markDidDomLayout(),t.firstChild.offsetWidth):0}if(null!==this._pixelOffsetCache){const o=this._pixelOffsetCache[i];if(-1!==o)return o;const s=this._actualReadPixelOffset(e,t,i,n);return this._pixelOffsetCache[i]=s,s}return this._actualReadPixelOffset(e,t,i,n)}_actualReadPixelOffset(e,t,i,n){if(0===this._characterMapping.length){const t=a.readHorizontalRanges(this._getReadingTarget(e),0,0,0,0,n);return t&&0!==t.length?t[0].left:-1}if(i===this._characterMapping.length&&this._isWhitespaceOnly&&0===this._containsForeignElements)return this.getWidth(n);const o=this._characterMapping.getDomPosition(i),s=a.readHorizontalRanges(this._getReadingTarget(e),o.partIndex,o.charIndex,o.partIndex,o.charIndex,n);if(!s||0===s.length)return-1;const r=s[0].left;if(this.input.isBasicASCII){const e=this._characterMapping.getHorizontalOffset(i),t=Math.round(this.input.spaceWidth*e);if(Math.abs(t-r)<=1)return t}return r}_readRawVisibleRangesForRange(e,t,i,n){if(1===t&&i===this._characterMapping.length)return[new r.CR(0,this.getWidth(n))];const o=this._characterMapping.getDomPosition(t),s=this._characterMapping.getDomPosition(i);return a.readHorizontalRanges(this._getReadingTarget(e),o.partIndex,o.charIndex,s.partIndex,s.charIndex,n)}getColumnOfNodeOffset(e,t){return y(this._characterMapping,e,t)}}class v extends _{_readVisibleRangesForRange(e,t,i,n,o){const s=super._readVisibleRangesForRange(e,t,i,n,o);if(!s||0===s.length||i===n||1===i&&n===this._characterMapping.length)return s;if(!this.input.containsRTL){const i=this._readPixelOffset(e,t,n,o);if(-1!==i){const e=s[s.length-1];e.left{i.d(t,{Gm:()=>Yo});var n=i(11974),o=i(23001),s=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},r=function(e,t){return function(i,n){t(i,n,e)}};let a=class{constructor(e,t){}dispose(){}};a.ID="editor.contrib.markerDecorations",a=s([r(1,n.i)],a),(0,o._K)(a.ID,a,0);var l=i(85714),h=i(85108),d=i(24219),c=i(89599),u=i(33211),g=i(99916),m=i(42606),f=i(75629),p=i(10451),_=i(21511),v=i(97363),b=i(86392);class C{constructor(e,t){this.key=e,this.migrate=t}apply(e){const t=C._read(e,this.key);this.migrate(t,(t=>C._read(e,t)),((t,i)=>C._write(e,t,i)))}static _read(e,t){if("undefined"===typeof e)return;const i=t.indexOf(".");if(i>=0){const n=t.substring(0,i);return this._read(e[n],t.substring(i+1))}return e[t]}static _write(e,t,i){const n=t.indexOf(".");if(n>=0){const o=t.substring(0,n);return e[o]=e[o]||{},void this._write(e[o],t.substring(n+1),i)}e[t]=i}}function w(e,t){C.items.push(new C(e,t))}function y(e,t){w(e,((i,n,o)=>{if("undefined"!==typeof i)for(const[s,r]of t)if(i===s)return void o(e,r)}))}C.items=[],y("wordWrap",[[!0,"on"],[!1,"off"]]),y("lineNumbers",[[!0,"on"],[!1,"off"]]),y("cursorBlinking",[["visible","solid"]]),y("renderWhitespace",[[!0,"boundary"],[!1,"none"]]),y("renderLineHighlight",[[!0,"line"],[!1,"none"]]),y("acceptSuggestionOnEnter",[[!0,"on"],[!1,"off"]]),y("tabCompletion",[[!1,"off"],[!0,"onlySnippets"]]),y("hover",[[!0,{enabled:!0}],[!1,{enabled:!1}]]),y("parameterHints",[[!0,{enabled:!0}],[!1,{enabled:!1}]]),y("autoIndent",[[!1,"advanced"],[!0,"full"]]),y("matchBrackets",[[!0,"always"],[!1,"never"]]),y("renderFinalNewline",[[!0,"on"],[!1,"off"]]),y("cursorSmoothCaretAnimation",[[!0,"on"],[!1,"off"]]),y("occurrencesHighlight",[[!0,"singleFile"],[!1,"off"]]),y("wordBasedSuggestions",[[!0,"matchingDocuments"],[!1,"off"]]),w("autoClosingBrackets",((e,t,i)=>{!1===e&&(i("autoClosingBrackets","never"),"undefined"===typeof t("autoClosingQuotes")&&i("autoClosingQuotes","never"),"undefined"===typeof t("autoSurround")&&i("autoSurround","never"))})),w("renderIndentGuides",((e,t,i)=>{"undefined"!==typeof e&&(i("renderIndentGuides",void 0),"undefined"===typeof t("guides.indentation")&&i("guides.indentation",!!e))})),w("highlightActiveIndentGuide",((e,t,i)=>{"undefined"!==typeof e&&(i("highlightActiveIndentGuide",void 0),"undefined"===typeof t("guides.highlightActiveIndentation")&&i("guides.highlightActiveIndentation",!!e))}));const S={method:"showMethods",function:"showFunctions",constructor:"showConstructors",deprecated:"showDeprecated",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"};w("suggest.filteredTypes",((e,t,i)=>{if(e&&"object"===typeof e){for(const n of Object.entries(S)){!1===e[n[0]]&&"undefined"===typeof t("suggest.".concat(n[1]))&&i("suggest.".concat(n[1]),!1)}i("suggest.filteredTypes",void 0)}})),w("quickSuggestions",((e,t,i)=>{if("boolean"===typeof e){const t=e?"on":"off";i("quickSuggestions",{comments:t,strings:t,other:t})}})),w("experimental.stickyScroll.enabled",((e,t,i)=>{"boolean"===typeof e&&(i("experimental.stickyScroll.enabled",void 0),"undefined"===typeof t("stickyScroll.enabled")&&i("stickyScroll.enabled",e))})),w("experimental.stickyScroll.maxLineCount",((e,t,i)=>{"number"===typeof e&&(i("experimental.stickyScroll.maxLineCount",void 0),"undefined"===typeof t("stickyScroll.maxLineCount")&&i("stickyScroll.maxLineCount",e))})),w("codeActionsOnSave",((e,t,i)=>{if(e&&"object"===typeof e){let t=!1;const n={};for(const i of Object.entries(e))"boolean"===typeof i[1]?(t=!0,n[i[0]]=i[1]?"explicit":"never"):n[i[0]]=i[1];t&&i("codeActionsOnSave",n)}})),w("codeActionWidget.includeNearbyQuickfixes",((e,t,i)=>{"boolean"===typeof e&&(i("codeActionWidget.includeNearbyQuickfixes",void 0),"undefined"===typeof t("codeActionWidget.includeNearbyQuickFixes")&&i("codeActionWidget.includeNearbyQuickFixes",e))})),w("lightbulb.enabled",((e,t,i)=>{"boolean"===typeof e&&i("lightbulb.enabled",e?void 0:"off")}));var L=i(25391),k=i(38092),D=i(15804),N=i(64864),x=i(46385),E=i(39830),I=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},T=function(e,t){return function(i,n){t(i,n,e)}};let M=class extends c.JT{constructor(e,t,i,n){super(),this._accessibilityService=n,this._onDidChange=this._register(new d.Q5),this.onDidChange=this._onDidChange.event,this._onDidChangeFast=this._register(new d.Q5),this.onDidChangeFast=this._onDidChangeFast.event,this._isDominatedByLongLines=!1,this._viewLineCount=1,this._lineNumbersDigitCount=1,this._reservedHeight=0,this._glyphMarginDecorationLaneCount=1,this._computeOptionsMemory=new k.LJ,this.isSimpleWidget=e,this._containerObserver=this._register(new v.I(i,t.dimension)),this._targetWindowId=(0,l.Jj)(i).vscodeWindowId,this._rawOptions=F(t),this._validatedOptions=P.validateOptions(this._rawOptions),this.options=this._computeOptions(),this.options.get(13)&&this._containerObserver.startObserving(),this._register(D.C.onDidChangeZoomLevel((()=>this._recomputeOptions()))),this._register(L.n.onDidChangeTabFocus((()=>this._recomputeOptions()))),this._register(this._containerObserver.onDidChange((()=>this._recomputeOptions()))),this._register(b.g.onDidChange((()=>this._recomputeOptions()))),this._register(E.T.getInstance((0,l.Jj)(i)).onDidChange((()=>this._recomputeOptions()))),this._register(this._accessibilityService.onDidChangeScreenReaderOptimized((()=>this._recomputeOptions())))}_recomputeOptions(){const e=this._computeOptions(),t=P.checkEquals(this.options,e);null!==t&&(this.options=e,this._onDidChangeFast.fire(t),this._onDidChange.fire(t))}_computeOptions(){const e=this._readEnvConfiguration(),t=N.E4.createFromValidatedSettings(this._validatedOptions,e.pixelRatio,this.isSimpleWidget),i=this._readFontInfo(t),n={memory:this._computeOptionsMemory,outerWidth:e.outerWidth,outerHeight:e.outerHeight-this._reservedHeight,fontInfo:i,extraEditorClassName:e.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:e.emptySelectionClipboard,pixelRatio:e.pixelRatio,tabFocusMode:L.n.getTabFocusMode(),accessibilitySupport:e.accessibilitySupport,glyphMarginDecorationLaneCount:this._glyphMarginDecorationLaneCount};return P.computeOptions(this._validatedOptions,n)}_readEnvConfiguration(){return{extraEditorClassName:A(),outerWidth:this._containerObserver.getWidth(),outerHeight:this._containerObserver.getHeight(),emptySelectionClipboard:m.Pf||m.vU,pixelRatio:E.T.getInstance((0,l.ed)(this._targetWindowId,!0).window).value,accessibilitySupport:this._accessibilityService.isScreenReaderOptimized()?2:this._accessibilityService.getAccessibilitySupport()}}_readFontInfo(e){return b.g.readFontInfo((0,l.ed)(this._targetWindowId,!0).window,e)}getRawOptions(){return this._rawOptions}updateOptions(e){const t=F(e);P.applyUpdate(this._rawOptions,t)&&(this._validatedOptions=P.validateOptions(this._rawOptions),this._recomputeOptions())}observeContainer(e){this._containerObserver.observe(e)}setIsDominatedByLongLines(e){this._isDominatedByLongLines!==e&&(this._isDominatedByLongLines=e,this._recomputeOptions())}setModelLineCount(e){const t=function(e){let t=0;for(;e;)e=Math.floor(e/10),t++;return t||1}(e);this._lineNumbersDigitCount!==t&&(this._lineNumbersDigitCount=t,this._recomputeOptions())}setViewLineCount(e){this._viewLineCount!==e&&(this._viewLineCount=e,this._recomputeOptions())}setReservedHeight(e){this._reservedHeight!==e&&(this._reservedHeight=e,this._recomputeOptions())}setGlyphMarginDecorationLaneCount(e){this._glyphMarginDecorationLaneCount!==e&&(this._glyphMarginDecorationLaneCount=e,this._recomputeOptions())}};function A(){let e="";return m.G6||m.MG||(e+="no-user-select "),m.G6&&(e+="no-minimap-shadow ",e+="enable-user-select "),_.dz&&(e+="mac "),e}M=I([T(3,x.F)],M);class R{constructor(){this._values=[]}_read(e){return this._values[e]}get(e){return this._values[e]}_write(e,t){this._values[e]=t}}class O{constructor(){this._values=[]}_read(e){if(e>=this._values.length)throw new Error("Cannot read uninitialized value");return this._values[e]}get(e){return this._read(e)}_write(e,t){this._values[e]=t}}class P{static validateOptions(e){const t=new R;for(const i of k.Bc){const n="_never_"===i.name?void 0:e[i.name];t._write(i.id,i.validate(n))}return t}static computeOptions(e,t){const i=new O;for(const n of k.Bc)i._write(n.id,n.compute(t,i,e._read(n.id)));return i}static _deepEquals(e,t){if("object"!==typeof e||"object"!==typeof t||!e||!t)return e===t;if(Array.isArray(e)||Array.isArray(t))return!(!Array.isArray(e)||!Array.isArray(t))&&f.fS(e,t);if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const i in e)if(!P._deepEquals(e[i],t[i]))return!1;return!0}static checkEquals(e,t){const i=[];let n=!1;for(const o of k.Bc){const s=!P._deepEquals(e._read(o.id),t._read(o.id));i[o.id]=s,s&&(n=!0)}return n?new k.Bb(i):null}static applyUpdate(e,t){let i=!1;for(const n of k.Bc)if(t.hasOwnProperty(n.name)){const o=n.applyUpdate(e[n.name],t[n.name]);e[n.name]=o.newValue,i=i||o.didChange}return i}}function F(e){const t=p.I8(e);return function(e){C.items.forEach((t=>t.apply(e)))}(t),t}var B=i(38119),z=i(45153),V=i(10115),W=i(64370);class H extends c.JT{constructor(){super(),this._shouldRender=!0}shouldRender(){return this._shouldRender}forceShouldRender(){this._shouldRender=!0}setShouldRender(){this._shouldRender=!0}onDidRender(){this._shouldRender=!1}onCompositionStart(e){return!1}onCompositionEnd(e){return!1}onConfigurationChanged(e){return!1}onCursorStateChanged(e){return!1}onDecorationsChanged(e){return!1}onFlushed(e){return!1}onFocusChanged(e){return!1}onLanguageConfigurationChanged(e){return!1}onLineMappingChanged(e){return!1}onLinesChanged(e){return!1}onLinesDeleted(e){return!1}onLinesInserted(e){return!1}onRevealRangeRequest(e){return!1}onScrollChanged(e){return!1}onThemeChanged(e){return!1}onTokensChanged(e){return!1}onTokensColorsChanged(e){return!1}onZonesChanged(e){return!1}handleEvents(e){let t=!1;for(let i=0,n=e.length;i0&&void 0!==arguments[0]?arguments[0]:null;this.hitTarget=e,this.type=0}}class X{get hitTarget(){return this.spanNode}constructor(e,t,i){this.position=e,this.spanNode=t,this.injectedText=i,this.type=1}}!function(e){e.createFromDOMInfo=function(e,t,i){const n=e.getPositionFromDOMInfo(t,i);return n?new X(n,t,null):new J(t)}}(j||(j={}));class ee{constructor(e,t){this.lastViewCursorsRenderData=e,this.lastTextareaPosition=t}}class te{static _deduceRage(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return!t&&e?new Q.e(e.lineNumber,e.column,e.lineNumber,e.column):null!==t&&void 0!==t?t:null}static createUnknown(e,t,i){return{type:0,element:e,mouseColumn:t,position:i,range:this._deduceRage(i)}}static createTextarea(e,t){return{type:1,element:e,mouseColumn:t,position:null,range:null}}static createMargin(e,t,i,n,o,s){return{type:e,element:t,mouseColumn:i,position:n,range:o,detail:s}}static createViewZone(e,t,i,n,o){return{type:e,element:t,mouseColumn:i,position:n,range:this._deduceRage(n),detail:o}}static createContentText(e,t,i,n,o){return{type:6,element:e,mouseColumn:t,position:i,range:this._deduceRage(i,n),detail:o}}static createContentEmpty(e,t,i,n){return{type:7,element:e,mouseColumn:t,position:i,range:this._deduceRage(i),detail:n}}static createContentWidget(e,t,i){return{type:9,element:e,mouseColumn:t,position:null,range:null,detail:i}}static createScrollbar(e,t,i){return{type:11,element:e,mouseColumn:t,position:i,range:this._deduceRage(i)}}static createOverlayWidget(e,t,i){return{type:12,element:e,mouseColumn:t,position:null,range:null,detail:i}}static createOutsideEditor(e,t,i,n){return{type:13,element:null,mouseColumn:e,position:t,range:this._deduceRage(t),outsidePosition:i,outsideDistance:n}}static _typeToString(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"}static toString(e){return this._typeToString(e.type)+": "+e.position+" - "+e.range+" - "+JSON.stringify(e.detail)}}class ie{static isTextArea(e){return 2===e.length&&3===e[0]&&7===e[1]}static isChildOfViewLines(e){return e.length>=4&&3===e[0]&&8===e[3]}static isStrictChildOfViewLines(e){return e.length>4&&3===e[0]&&8===e[3]}static isChildOfScrollableElement(e){return e.length>=2&&3===e[0]&&6===e[1]}static isChildOfMinimap(e){return e.length>=2&&3===e[0]&&9===e[1]}static isChildOfContentWidgets(e){return e.length>=4&&3===e[0]&&1===e[3]}static isChildOfOverflowGuard(e){return e.length>=1&&3===e[0]}static isChildOfOverflowingContentWidgets(e){return e.length>=1&&2===e[0]}static isChildOfOverlayWidgets(e){return e.length>=2&&3===e[0]&&4===e[1]}static isChildOfOverflowingOverlayWidgets(e){return e.length>=1&&5===e[0]}}class ne{constructor(e,t,i){this.viewModel=e.viewModel;const n=e.configuration.options;this.layoutInfo=n.get(145),this.viewDomNode=t.viewDomNode,this.lineHeight=n.get(67),this.stickyTabStops=n.get(116),this.typicalHalfwidthCharacterWidth=n.get(50).typicalHalfwidthCharacterWidth,this.lastRenderData=i,this._context=e,this._viewHelper=t}getZoneAtCoord(e){return ne.getZoneAtCoord(this._context,e)}static getZoneAtCoord(e,t){const i=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(i){const n=i.verticalOffset+i.height/2,o=e.viewModel.getLineCount();let s,r=null,a=null;return i.afterLineNumber!==o&&(a=new G.L(i.afterLineNumber+1,1)),i.afterLineNumber>0&&(r=new G.L(i.afterLineNumber,e.viewModel.getLineMaxColumn(i.afterLineNumber))),s=null===a?r:null===r?a:t=e.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,le._getMouseColumn(this.mouseContentHorizontalOffset,e.typicalHalfwidthCharacterWidth))}}class se extends oe{get target(){return this._useHitTestTarget?this.hitTestResult.value.hitTarget:this._eventTarget}get targetPath(){return this._targetPathCacheElement!==this.target&&(this._targetPathCacheElement=this.target,this._targetPathCacheValue=U.collect(this.target,this._ctx.viewDomNode)),this._targetPathCacheValue}constructor(e,t,i,n,o){super(e,t,i,n),this.hitTestResult=new $.o((()=>le.doHitTest(this._ctx,this))),this._targetPathCacheElement=null,this._targetPathCacheValue=new Uint8Array(0),this._ctx=e,this._eventTarget=o;const s=Boolean(this._eventTarget);this._useHitTestTarget=!s}toString(){return"pos(".concat(this.pos.x,",").concat(this.pos.y,"), editorPos(").concat(this.editorPos.x,",").concat(this.editorPos.y,"), relativePos(").concat(this.relativePos.x,",").concat(this.relativePos.y,"), mouseVerticalOffset: ").concat(this.mouseVerticalOffset,", mouseContentHorizontalOffset: ").concat(this.mouseContentHorizontalOffset,"\n\ttarget: ").concat(this.target?this.target.outerHTML:null)}get wouldBenefitFromHitTestTargetSwitch(){return!this._useHitTestTarget&&null!==this.hitTestResult.value.hitTarget&&this.target!==this.hitTestResult.value.hitTarget}switchToHitTestTarget(){this._useHitTestTarget=!0}_getMouseColumn(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e&&e.column0&&void 0!==arguments[0]?arguments[0]:null;return te.createUnknown(this.target,this._getMouseColumn(e),e)}fulfillTextarea(){return te.createTextarea(this.target,this._getMouseColumn())}fulfillMargin(e,t,i,n){return te.createMargin(e,this.target,this._getMouseColumn(t),t,i,n)}fulfillViewZone(e,t,i){return te.createViewZone(e,this.target,this._getMouseColumn(t),t,i)}fulfillContentText(e,t,i){return te.createContentText(this.target,this._getMouseColumn(e),e,t,i)}fulfillContentEmpty(e,t){return te.createContentEmpty(this.target,this._getMouseColumn(e),e,t)}fulfillContentWidget(e){return te.createContentWidget(this.target,this._getMouseColumn(),e)}fulfillScrollbar(e){return te.createScrollbar(this.target,this._getMouseColumn(e),e)}fulfillOverlayWidget(e){return te.createOverlayWidget(this.target,this._getMouseColumn(),e)}}const re={isAfterLines:!0};function ae(e){return{isAfterLines:!1,horizontalDistanceToText:e}}class le{constructor(e,t){this._context=e,this._viewHelper=t}mouseTargetIsWidget(e){const t=e.target,i=U.collect(t,this._viewHelper.viewDomNode);return!(!ie.isChildOfContentWidgets(i)&&!ie.isChildOfOverflowingContentWidgets(i))||!(!ie.isChildOfOverlayWidgets(i)&&!ie.isChildOfOverflowingOverlayWidgets(i))}createMouseTarget(e,t,i,n,o){const s=new ne(this._context,this._viewHelper,e),r=new se(s,t,i,n,o);try{const e=le._createMouseTarget(s,r);if(6===e.type&&s.stickyTabStops&&null!==e.position){const t=le._snapToSoftTabBoundary(e.position,s.viewModel),i=Q.e.fromPositions(t,t).plusRange(e.range);return r.fulfillContentText(t,i,e.detail)}return e}catch(a){return r.fulfillUnknown()}}static _createMouseTarget(e,t){if(null===t.target)return t.fulfillUnknown();const i=t;let n=null;return ie.isChildOfOverflowGuard(t.targetPath)||ie.isChildOfOverflowingContentWidgets(t.targetPath)||ie.isChildOfOverflowingOverlayWidgets(t.targetPath)||(n=n||t.fulfillUnknown()),n=n||le._hitTestContentWidget(e,i),n=n||le._hitTestOverlayWidget(e,i),n=n||le._hitTestMinimap(e,i),n=n||le._hitTestScrollbarSlider(e,i),n=n||le._hitTestViewZone(e,i),n=n||le._hitTestMargin(e,i),n=n||le._hitTestViewCursor(e,i),n=n||le._hitTestTextArea(e,i),n=n||le._hitTestViewLines(e,i),n=n||le._hitTestScrollbar(e,i),n||t.fulfillUnknown()}static _hitTestContentWidget(e,t){if(ie.isChildOfContentWidgets(t.targetPath)||ie.isChildOfOverflowingContentWidgets(t.targetPath)){const i=e.findAttribute(t.target,"widgetId");return i?t.fulfillContentWidget(i):t.fulfillUnknown()}return null}static _hitTestOverlayWidget(e,t){if(ie.isChildOfOverlayWidgets(t.targetPath)||ie.isChildOfOverflowingOverlayWidgets(t.targetPath)){const i=e.findAttribute(t.target,"widgetId");return i?t.fulfillOverlayWidget(i):t.fulfillUnknown()}return null}static _hitTestViewCursor(e,t){if(t.target){const i=e.lastRenderData.lastViewCursorsRenderData;for(const e of i)if(t.target===e.domNode)return t.fulfillContentText(e.position,null,{mightBeForeignElement:!1,injectedText:null})}if(t.isInContentArea){const i=e.lastRenderData.lastViewCursorsRenderData,n=t.mouseContentHorizontalOffset,o=t.mouseVerticalOffset;for(const s of i){if(ns.contentLeft+s.width)continue;const i=e.getVerticalOffsetForLineNumber(s.position.lineNumber);if(i<=o&&o<=i+s.height)return t.fulfillContentText(s.position,null,{mightBeForeignElement:!1,injectedText:null})}}return null}static _hitTestViewZone(e,t){const i=e.getZoneAtCoord(t.mouseVerticalOffset);if(i){const e=t.isInContentArea?8:5;return t.fulfillViewZone(e,i.position,i)}return null}static _hitTestTextArea(e,t){return ie.isTextArea(t.targetPath)?e.lastRenderData.lastTextareaPosition?t.fulfillContentText(e.lastRenderData.lastTextareaPosition,null,{mightBeForeignElement:!1,injectedText:null}):t.fulfillTextarea():null}static _hitTestMargin(e,t){if(t.isInMarginArea){const i=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),n=i.range.getStartPosition();let o=Math.abs(t.relativePos.x);const s={isAfterLines:i.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:o};if(o-=e.layoutInfo.glyphMarginLeft,o<=e.layoutInfo.glyphMarginWidth){const r=e.viewModel.coordinatesConverter.convertViewPositionToModelPosition(i.range.getStartPosition()),a=e.viewModel.glyphLanes.getLanesAtLine(r.lineNumber);return s.glyphMarginLane=a[Math.floor(o/e.lineHeight)],t.fulfillMargin(2,n,i.range,s)}return o-=e.layoutInfo.glyphMarginWidth,o<=e.layoutInfo.lineNumbersWidth?t.fulfillMargin(3,n,i.range,s):(o-=e.layoutInfo.lineNumbersWidth,t.fulfillMargin(4,n,i.range,s))}return null}static _hitTestViewLines(e,t){if(!ie.isChildOfViewLines(t.targetPath))return null;if(e.isInTopPadding(t.mouseVerticalOffset))return t.fulfillContentEmpty(new G.L(1,1),re);if(e.isAfterLines(t.mouseVerticalOffset)||e.isInBottomPadding(t.mouseVerticalOffset)){const i=e.viewModel.getLineCount(),n=e.viewModel.getLineMaxColumn(i);return t.fulfillContentEmpty(new G.L(i,n),re)}if(ie.isStrictChildOfViewLines(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset);if(0===e.viewModel.getLineLength(i)){const n=e.getLineWidth(i),o=ae(t.mouseContentHorizontalOffset-n);return t.fulfillContentEmpty(new G.L(i,1),o)}const n=e.getLineWidth(i);if(t.mouseContentHorizontalOffset>=n){const o=ae(t.mouseContentHorizontalOffset-n),s=new G.L(i,e.viewModel.getLineMaxColumn(i));return t.fulfillContentEmpty(s,o)}}const i=t.hitTestResult.value;return 1===i.type?le.createMouseTargetFromHitTestPosition(e,t,i.spanNode,i.position,i.injectedText):t.wouldBenefitFromHitTestTargetSwitch?(t.switchToHitTestTarget(),this._createMouseTarget(e,t)):t.fulfillUnknown()}static _hitTestMinimap(e,t){if(ie.isChildOfMinimap(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),n=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new G.L(i,n))}return null}static _hitTestScrollbarSlider(e,t){if(ie.isChildOfScrollableElement(t.targetPath)&&t.target&&1===t.target.nodeType){const i=t.target.className;if(i&&/\b(slider|scrollbar)\b/.test(i)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),n=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new G.L(i,n))}}return null}static _hitTestScrollbar(e,t){if(ie.isChildOfScrollableElement(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),n=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new G.L(i,n))}return null}getMouseColumn(e){const t=this._context.configuration.options,i=t.get(145),n=this._context.viewLayout.getCurrentScrollLeft()+e.x-i.contentLeft;return le._getMouseColumn(n,t.get(50).typicalHalfwidthCharacterWidth)}static _getMouseColumn(e,t){if(e<0)return 1;return Math.round(e/t)+1}static createMouseTargetFromHitTestPosition(e,t,i,n,o){const s=n.lineNumber,r=n.column,a=e.getLineWidth(s);if(t.mouseContentHorizontalOffset>a){const e=ae(t.mouseContentHorizontalOffset-a);return t.fulfillContentEmpty(n,e)}const h=e.visibleRangeForPosition(s,r);if(!h)return t.fulfillUnknown(n);const d=h.left;if(Math.abs(t.mouseContentHorizontalOffset-d)<1)return t.fulfillContentText(n,null,{mightBeForeignElement:!!o,injectedText:o});const c=[];if(c.push({offset:h.left,column:r}),r>1){const t=e.visibleRangeForPosition(s,r-1);t&&c.push({offset:t.left,column:r-1})}if(re.offset-t.offset));const u=t.pos.toClientCoordinates(l.Jj(e.viewDomNode)),g=i.getBoundingClientRect(),m=g.left<=u.clientX&&u.clientX<=g.right;let f=null;for(let l=1;lo)){const i=Math.floor((n+o)/2);let s=t.pos.y+(i-t.mouseVerticalOffset);s<=t.editorPos.y&&(s=t.editorPos.y+1),s>=t.editorPos.y+t.editorPos.height&&(s=t.editorPos.y+t.editorPos.height-1);const r=new W.YN(t.pos.x,s),a=this._actualDoHitTestWithCaretRangeFromPoint(e,r.toClientCoordinates(l.Jj(e.viewDomNode)));if(1===a.type)return a}return this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates(l.Jj(e.viewDomNode)))}static _actualDoHitTestWithCaretRangeFromPoint(e,t){const i=l.Ay(e.viewDomNode);let n;if(n=i?"undefined"===typeof i.caretRangeFromPoint?function(e,t,i){const n=document.createRange();let o=e.elementFromPoint(t,i);if(null!==o){for(;o&&o.firstChild&&o.firstChild.nodeType!==o.firstChild.TEXT_NODE&&o.lastChild&&o.lastChild.firstChild;)o=o.lastChild;const e=o.getBoundingClientRect(),i=l.Jj(o),s=i.getComputedStyle(o,null).getPropertyValue("font-style"),r=i.getComputedStyle(o,null).getPropertyValue("font-variant"),a=i.getComputedStyle(o,null).getPropertyValue("font-weight"),h=i.getComputedStyle(o,null).getPropertyValue("font-size"),d=i.getComputedStyle(o,null).getPropertyValue("line-height"),c=i.getComputedStyle(o,null).getPropertyValue("font-family"),u="".concat(s," ").concat(r," ").concat(a," ").concat(h,"/").concat(d," ").concat(c),g=o.innerText;let m,f=e.left,p=0;if(t>e.left+e.width)p=g.length;else{const e=he.getInstance();for(let i=0;ithis._createMouseTarget(e,t)),(e=>this._getMouseColumn(e)))),this.lastMouseLeaveTime=-1,this._height=this._context.configuration.options.get(145).height;const n=new W.N5(this.viewHelper.viewDomNode);this._register(n.onContextMenu(this.viewHelper.viewDomNode,(e=>this._onContextMenu(e,!0)))),this._register(n.onMouseMove(this.viewHelper.viewDomNode,(e=>{this._onMouseMove(e),this._mouseLeaveMonitor||(this._mouseLeaveMonitor=l.nm(this.viewHelper.viewDomNode.ownerDocument,"mousemove",(e=>{this.viewHelper.viewDomNode.contains(e.target)||this._onMouseLeave(new W.gy(e,!1,this.viewHelper.viewDomNode))})))}))),this._register(n.onMouseUp(this.viewHelper.viewDomNode,(e=>this._onMouseUp(e)))),this._register(n.onMouseLeave(this.viewHelper.viewDomNode,(e=>this._onMouseLeave(e))));let o=0;this._register(n.onPointerDown(this.viewHelper.viewDomNode,((e,t)=>{o=t}))),this._register(l.nm(this.viewHelper.viewDomNode,l.tw.POINTER_UP,(e=>{this._mouseDownOperation.onPointerUp()}))),this._register(n.onMouseDown(this.viewHelper.viewDomNode,(e=>this._onMouseDown(e,o)))),this._setupMouseWheelZoomListener(),this._context.addEventHandler(this)}_setupMouseWheelZoomListener(){const e=fe.Io.INSTANCE;let t=0,i=D.C.getZoomLevel(),n=!1,o=0;function s(e){return _.dz?(e.metaKey||e.ctrlKey)&&!e.shiftKey&&!e.altKey:e.ctrlKey&&!e.metaKey&&!e.shiftKey&&!e.altKey}this._register(l.nm(this.viewHelper.viewDomNode,l.tw.MOUSE_WHEEL,(r=>{if(this.viewController.emitMouseWheel(r),!this._context.configuration.options.get(76))return;const a=new ge.q(r);if(e.acceptStandardWheelEvent(a),e.isPhysicalMouseWheel()){if(s(r)){const e=D.C.getZoomLevel(),t=a.deltaY>0?1:-1;D.C.setZoomLevel(e+t),a.preventDefault(),a.stopPropagation()}}else Date.now()-t>50&&(i=D.C.getZoomLevel(),n=s(r),o=0),t=Date.now(),o+=a.deltaY,n&&(D.C.setZoomLevel(i+o/5),a.preventDefault(),a.stopPropagation())}),{capture:!0,passive:!1}))}dispose(){this._context.removeEventHandler(this),this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),super.dispose()}onConfigurationChanged(e){if(e.hasChanged(145)){const e=this._context.configuration.options.get(145).height;this._height!==e&&(this._height=e,this._mouseDownOperation.onHeightChanged())}return!1}onCursorStateChanged(e){return this._mouseDownOperation.onCursorStateChanged(e),!1}onFocusChanged(e){return!1}getTargetAtClientPoint(e,t){const i=new W.rU(e,t).toPageCoordinates(l.Jj(this.viewHelper.viewDomNode)),n=(0,W.kG)(this.viewHelper.viewDomNode);if(i.yn.y+n.height||i.xn.x+n.width)return null;const o=(0,W.Pp)(this.viewHelper.viewDomNode,n,i);return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),n,i,o,null)}_createMouseTarget(e,t){let i=e.target;if(!this.viewHelper.viewDomNode.contains(i)){const t=l.Ay(this.viewHelper.viewDomNode);t&&(i=t.elementsFromPoint(e.posx,e.posy).find((e=>this.viewHelper.viewDomNode.contains(e))))}return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,e.relativePos,t?i:null)}_getMouseColumn(e){return this.mouseTargetFactory.getMouseColumn(e.relativePos)}_onContextMenu(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,t)})}_onMouseMove(e){if(this.mouseTargetFactory.mouseTargetIsWidget(e)||e.preventDefault(),this._mouseDownOperation.isActive())return;e.timestamp{e.preventDefault(),this.viewHelper.focusTextArea()};if(h&&(n||s&&r))d(),this._mouseDownOperation.start(i.type,e,t);else if(o)e.preventDefault();else if(a){const n=i.detail;h&&this.viewHelper.shouldSuppressMouseDownOnViewZone(n.viewZoneId)&&(d(),this._mouseDownOperation.start(i.type,e,t),e.preventDefault())}else l&&this.viewHelper.shouldSuppressMouseDownOnWidget(i.detail)&&(d(),e.preventDefault());this.viewController.emitMouseDown({event:e,target:i})}}class _e extends c.JT{constructor(e,t,i,n,o,s){super(),this._context=e,this._viewController=t,this._viewHelper=i,this._mouseTargetFactory=n,this._createMouseTarget=o,this._getMouseColumn=s,this._mouseMoveMonitor=this._register(new W.AL(this._viewHelper.viewDomNode)),this._topBottomDragScrolling=this._register(new ve(this._context,this._viewHelper,this._mouseTargetFactory,((e,t,i)=>this._dispatchMouse(e,t,i)))),this._mouseState=new Ce,this._currentSelection=new me.Y(1,1,1,1),this._isActive=!1,this._lastMouseEvent=null}dispose(){super.dispose()}isActive(){return this._isActive}_onMouseDownThenMove(e){this._lastMouseEvent=e,this._mouseState.setModifiers(e);const t=this._findMousePosition(e,!1);t&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:e,target:t}):13!==t.type||"above"!==t.outsidePosition&&"below"!==t.outsidePosition?(this._topBottomDragScrolling.stop(),this._dispatchMouse(t,!0,1)):this._topBottomDragScrolling.start(t,e))}start(e,t,i){this._lastMouseEvent=t,this._mouseState.setStartedOnLineNumbers(3===e),this._mouseState.setStartButtons(t),this._mouseState.setModifiers(t);const n=this._findMousePosition(t,!0);if(!n||!n.position)return;this._mouseState.trySetCount(t.detail,n.position),t.detail=this._mouseState.count;const o=this._context.configuration.options;if(!o.get(91)&&o.get(35)&&!o.get(22)&&!this._mouseState.altKey&&t.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&6===n.type&&n.position&&this._currentSelection.containsPosition(n.position))return this._mouseState.isDragAndDrop=!0,this._isActive=!0,void this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,i,t.buttons,(e=>this._onMouseDownThenMove(e)),(e=>{const t=this._findMousePosition(this._lastMouseEvent,!1);l.vd(e)?this._viewController.emitMouseDropCanceled():this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:t?this._createMouseTarget(this._lastMouseEvent,!0):null}),this._stop()}));this._mouseState.isDragAndDrop=!1,this._dispatchMouse(n,t.shiftKey,1),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,i,t.buttons,(e=>this._onMouseDownThenMove(e)),(()=>this._stop())))}_stop(){this._isActive=!1,this._topBottomDragScrolling.stop()}onHeightChanged(){this._mouseMoveMonitor.stopMonitoring()}onPointerUp(){this._mouseMoveMonitor.stopMonitoring()}onCursorStateChanged(e){this._currentSelection=e.selections[0]}_getPositionOutsideEditor(e){const t=e.editorPos,i=this._context.viewModel,n=this._context.viewLayout,o=this._getMouseColumn(e);if(e.posyt.y+t.height){const s=e.posy-t.y-t.height,r=n.getCurrentScrollTop()+e.relativePos.y,a=ne.getZoneAtCoord(this._context,r);if(a){const e=this._helpPositionJumpOverViewZone(a);if(e)return te.createOutsideEditor(o,e,"below",s)}const l=n.getLineNumberAtVerticalOffset(r);return te.createOutsideEditor(o,new G.L(l,i.getLineMaxColumn(l)),"below",s)}const s=n.getLineNumberAtVerticalOffset(n.getCurrentScrollTop()+e.relativePos.y);if(e.posxt.x+t.width){const n=e.posx-t.x-t.width;return te.createOutsideEditor(o,new G.L(s,i.getLineMaxColumn(s)),"right",n)}return null}_findMousePosition(e,t){const i=this._getPositionOutsideEditor(e);if(i)return i;const n=this._createMouseTarget(e,t);if(!n.position)return null;if(8===n.type||5===n.type){const e=this._helpPositionJumpOverViewZone(n.detail);if(e)return te.createViewZone(n.type,n.element,n.mouseColumn,e,n.detail)}return n}_helpPositionJumpOverViewZone(e){const t=new G.L(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),i=e.positionBefore,n=e.positionAfter;return i&&n?i.isBefore(t)?i:n:null}_dispatchMouse(e,t,i){e.position&&this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,revealType:i,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,onInjectedText:6===e.type&&null!==e.detail.injectedText})}}class ve extends c.JT{constructor(e,t,i,n){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=i,this._dispatchMouse=n,this._operation=null}dispose(){super.dispose(),this.stop()}start(e,t){this._operation?this._operation.setPosition(e,t):this._operation=new be(this._context,this._viewHelper,this._mouseTargetFactory,this._dispatchMouse,e,t)}stop(){this._operation&&(this._operation.dispose(),this._operation=null)}}class be extends c.JT{constructor(e,t,i,n,o,s){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=i,this._dispatchMouse=n,this._position=o,this._mouseEvent=s,this._lastTime=Date.now(),this._animationFrameDisposable=l.jL(l.Jj(s.browserEvent),(()=>this._execute()))}dispose(){this._animationFrameDisposable.dispose(),super.dispose()}setPosition(e,t){this._position=e,this._mouseEvent=t}_tick(){const e=Date.now(),t=e-this._lastTime;return this._lastTime=e,t}_getScrollSpeed(){const e=this._context.configuration.options.get(67),t=this._context.configuration.options.get(145).height/e,i=this._position.outsideDistance/e;return i<=1.5?Math.max(30,t*(1+i)):i<=3?Math.max(60,t*(2+i)):Math.max(200,t*(7+i))}_execute(){const e=this._context.configuration.options.get(67),t=this._getScrollSpeed()*(this._tick()/1e3)*e,i="above"===this._position.outsidePosition?-t:t;this._context.viewModel.viewLayout.deltaScrollNow(0,i),this._viewHelper.renderNow();const n=this._context.viewLayout.getLinesViewportData(),o="above"===this._position.outsidePosition?n.startLineNumber:n.endLineNumber;let s;{const e=(0,W.kG)(this._viewHelper.viewDomNode),t=this._context.configuration.options.get(145).horizontalScrollbarHeight,i=new W.YN(this._mouseEvent.pos.x,e.y+e.height-t-.1),n=(0,W.Pp)(this._viewHelper.viewDomNode,e,i);s=this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(),e,i,n,null)}s.position&&s.position.lineNumber===o||(s="above"===this._position.outsidePosition?te.createOutsideEditor(this._position.mouseColumn,new G.L(o,1),"above",this._position.outsideDistance):te.createOutsideEditor(this._position.mouseColumn,new G.L(o,this._context.viewModel.getLineMaxColumn(o)),"below",this._position.outsideDistance)),this._dispatchMouse(s,!0,2),this._animationFrameDisposable=l.jL(l.Jj(s.element),(()=>this._execute()))}}class Ce{get altKey(){return this._altKey}get ctrlKey(){return this._ctrlKey}get metaKey(){return this._metaKey}get shiftKey(){return this._shiftKey}get leftButton(){return this._leftButton}get middleButton(){return this._middleButton}get startedOnLineNumbers(){return this._startedOnLineNumbers}constructor(){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}get count(){return this._lastMouseDownCount}setModifiers(e){this._altKey=e.altKey,this._ctrlKey=e.ctrlKey,this._metaKey=e.metaKey,this._shiftKey=e.shiftKey}setStartButtons(e){this._leftButton=e.leftButton,this._middleButton=e.middleButton}setStartedOnLineNumbers(e){this._startedOnLineNumbers=e}trySetCount(e,t){const i=(new Date).getTime();i-this._lastSetMouseDownCountTime>Ce.CLEAR_MOUSE_DOWN_COUNT_TIME&&(e=1),this._lastSetMouseDownCountTime=i,e>this._lastMouseDownCount+1&&(e=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(t)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=t,this._lastMouseDownCount=Math.min(e,this._lastMouseDownPositionEqualCount)}}Ce.CLEAR_MOUSE_DOWN_COUNT_TIME=400;var we=i(73451);class ye extends pe{constructor(e,t,i){super(e,t,i),this._register(ce.o.addTarget(this.viewHelper.linesContentDomNode)),this._register(l.nm(this.viewHelper.linesContentDomNode,ce.t.Tap,(e=>this.onTap(e)))),this._register(l.nm(this.viewHelper.linesContentDomNode,ce.t.Change,(e=>this.onChange(e)))),this._register(l.nm(this.viewHelper.linesContentDomNode,ce.t.Contextmenu,(e=>this._onContextMenu(new W.gy(e,!1,this.viewHelper.viewDomNode),!1)))),this._lastPointerType="mouse",this._register(l.nm(this.viewHelper.linesContentDomNode,"pointerdown",(e=>{const t=e.pointerType;this._lastPointerType="mouse"!==t?"touch"===t?"touch":"pen":"mouse"})));const n=new W.tC(this.viewHelper.viewDomNode);this._register(n.onPointerMove(this.viewHelper.viewDomNode,(e=>this._onMouseMove(e)))),this._register(n.onPointerUp(this.viewHelper.viewDomNode,(e=>this._onMouseUp(e)))),this._register(n.onPointerLeave(this.viewHelper.viewDomNode,(e=>this._onMouseLeave(e)))),this._register(n.onPointerDown(this.viewHelper.viewDomNode,((e,t)=>this._onMouseDown(e,t))))}onTap(e){e.initialTarget&&this.viewHelper.linesContentDomNode.contains(e.initialTarget)&&(e.preventDefault(),this.viewHelper.focusTextArea(),this._dispatchGesture(e,!1))}onChange(e){"touch"===this._lastPointerType&&this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY),"pen"===this._lastPointerType&&this._dispatchGesture(e,!0)}_dispatchGesture(e,t){const i=this._createMouseTarget(new W.gy(e,!1,this.viewHelper.viewDomNode),!1);i.position&&this.viewController.dispatchMouse({position:i.position,mouseColumn:i.position.column,startedOnLineNumbers:!1,revealType:1,mouseDownCount:e.tapCount,inSelectionMode:t,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1,onInjectedText:6===i.type&&null!==i.detail.injectedText})}_onMouseDown(e,t){"touch"!==e.browserEvent.pointerType&&super._onMouseDown(e,t)}}class Se extends pe{constructor(e,t,i){super(e,t,i),this._register(ce.o.addTarget(this.viewHelper.linesContentDomNode)),this._register(l.nm(this.viewHelper.linesContentDomNode,ce.t.Tap,(e=>this.onTap(e)))),this._register(l.nm(this.viewHelper.linesContentDomNode,ce.t.Change,(e=>this.onChange(e)))),this._register(l.nm(this.viewHelper.linesContentDomNode,ce.t.Contextmenu,(e=>this._onContextMenu(new W.gy(e,!1,this.viewHelper.viewDomNode),!1))))}onTap(e){e.preventDefault(),this.viewHelper.focusTextArea();const t=this._createMouseTarget(new W.gy(e,!1,this.viewHelper.viewDomNode),!1);if(t.position){const e=document.createEvent("CustomEvent");e.initEvent(we.pd.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(e),this.viewController.moveTo(t.position,1)}}onChange(e){this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)}}class Le extends c.JT{constructor(e,t,i){super();(_.gn||_.Dt&&_.tq)&&de.D.pointerEvents?this.handler=this._register(new ye(e,t,i)):ue.E.TouchEvent?this.handler=this._register(new Se(e,t,i)):this.handler=this._register(new pe(e,t,i))}getTargetAtClientPoint(e,t){return this.handler.getTargetAtClientPoint(e,t)}}var ke=i(71721),De=i(25085),Ne=i(38954);class xe extends H{}var Ee=i(17903),Ie=i(36729);class Te extends xe{constructor(e){super(),this._context=e,this._readConfig(),this._lastCursorModelPosition=new G.L(1,1),this._renderResult=null,this._activeLineNumber=1,this._context.addEventHandler(this)}_readConfig(){const e=this._context.configuration.options;this._lineHeight=e.get(67);const t=e.get(68);this._renderLineNumbers=t.renderType,this._renderCustomLineNumbers=t.renderFn,this._renderFinalNewline=e.get(95);const i=e.get(145);this._lineNumbersLeft=i.lineNumbersLeft,this._lineNumbersWidth=i.lineNumbersWidth}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return this._readConfig(),!0}onCursorStateChanged(e){const t=e.selections[0].getPosition();this._lastCursorModelPosition=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(t);let i=!1;return this._activeLineNumber!==t.lineNumber&&(this._activeLineNumber=t.lineNumber,i=!0),2!==this._renderLineNumbers&&3!==this._renderLineNumbers||(i=!0),i}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}onDecorationsChanged(e){return e.affectsLineNumber}_getLineRenderLineNumber(e){const t=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new G.L(e,1));if(1!==t.column)return"";const i=t.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(i);if(2===this._renderLineNumbers){const e=Math.abs(this._lastCursorModelPosition.lineNumber-i);return 0===e?''+i+"":String(e)}if(3===this._renderLineNumbers){if(this._lastCursorModelPosition.lineNumber===i)return String(i);if(i%10===0)return String(i);return i===this._context.viewModel.getLineCount()?String(i):""}return String(i)}prepareRender(e){if(0===this._renderLineNumbers)return void(this._renderResult=null);const t=_.IJ?this._lineHeight%2===0?" lh-even":" lh-odd":"",i=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,o=this._context.viewModel.getDecorationsInViewport(e.visibleRange).filter((e=>!!e.options.lineNumberClassName));o.sort(((e,t)=>Q.e.compareRangesUsingEnds(e.range,t.range)));let s=0;const r=this._context.viewModel.getLineCount(),a=[];for(let l=i;l<=n;l++){const e=l-i;let n=this._getLineRenderLineNumber(l),h="";for(;s').concat(n,"")):a[e]=""}this._renderResult=a}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}Te.CLASS_NAME="line-numbers",(0,Ee.Ic)(((e,t)=>{const i=e.getColor(Ie.hw),n=e.getColor(Ie.Bj);n?t.addRule(".monaco-editor .line-numbers.dimmed-line-number { color: ".concat(n,"; }")):i&&t.addRule(".monaco-editor .line-numbers.dimmed-line-number { color: ".concat(i.transparent(.4),"; }"))}));class Me extends K{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(145);this._canUseLayerHinting=!t.get(32),this._contentLeft=i.contentLeft,this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,this._domNode=(0,z.X)(document.createElement("div")),this._domNode.setClassName(Me.OUTER_CLASS_NAME),this._domNode.setPosition("absolute"),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._glyphMarginBackgroundDomNode=(0,z.X)(document.createElement("div")),this._glyphMarginBackgroundDomNode.setClassName(Me.CLASS_NAME),this._domNode.appendChild(this._glyphMarginBackgroundDomNode)}dispose(){super.dispose()}getDomNode(){return this._domNode}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(145);return this._canUseLayerHinting=!t.get(32),this._contentLeft=i.contentLeft,this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollTopChanged}prepareRender(e){}render(e){this._domNode.setLayerHinting(this._canUseLayerHinting),this._domNode.setContain("strict");const t=e.scrollTop-e.bigNumbersDelta;this._domNode.setTop(-t);const i=Math.min(e.scrollHeight,1e6);this._domNode.setHeight(i),this._domNode.setWidth(this._contentLeft),this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft),this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth),this._glyphMarginBackgroundDomNode.setHeight(i)}}Me.CLASS_NAME="glyph-margin",Me.OUTER_CLASS_NAME="margin";var Ae=i(67055);const Re="monaco-mouse-cursor-text";var Oe=i(761),Pe=i(89652),Fe=i(43283),Be=i(46765),ze=i(34304),Ve=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},We=function(e,t){return function(i,n){t(i,n,e)}};class He{constructor(e,t,i,n,o){this._context=e,this.modelLineNumber=t,this.distanceToModelLineStart=i,this.widthOfHiddenLineTextBefore=n,this.distanceToModelLineEnd=o,this._visibleTextAreaBrand=void 0,this.startPosition=null,this.endPosition=null,this.visibleTextareaStart=null,this.visibleTextareaEnd=null,this._previousPresentation=null}prepareRender(e){const t=new G.L(this.modelLineNumber,this.distanceToModelLineStart+1),i=new G.L(this.modelLineNumber,this._context.viewModel.model.getLineMaxColumn(this.modelLineNumber)-this.distanceToModelLineEnd);this.startPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t),this.endPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i),this.startPosition.lineNumber===this.endPosition.lineNumber?(this.visibleTextareaStart=e.visibleRangeForPosition(this.startPosition),this.visibleTextareaEnd=e.visibleRangeForPosition(this.endPosition)):(this.visibleTextareaStart=null,this.visibleTextareaEnd=null)}definePresentation(e){return this._previousPresentation||(this._previousPresentation=e||{foreground:1,italic:!1,bold:!1,underline:!1,strikethrough:!1}),this._previousPresentation}}const Ke=m.vU;let Ue=class extends K{constructor(e,t,i,n,o){super(e),this._keybindingService=n,this._instantiationService=o,this._primaryCursorPosition=new G.L(1,1),this._primaryCursorVisibleRange=null,this._viewController=t,this._visibleRangeProvider=i,this._scrollLeft=0,this._scrollTop=0;const s=this._context.configuration.options,r=s.get(145);this._setAccessibilityOptions(s),this._contentLeft=r.contentLeft,this._contentWidth=r.contentWidth,this._contentHeight=r.height,this._fontInfo=s.get(50),this._lineHeight=s.get(67),this._emptySelectionClipboard=s.get(37),this._copyWithSyntaxHighlighting=s.get(25),this._visibleTextArea=null,this._selections=[new me.Y(1,1,1,1)],this._modelSelections=[new me.Y(1,1,1,1)],this._lastRenderPosition=null,this.textArea=(0,z.X)(document.createElement("textarea")),U.write(this.textArea,7),this.textArea.setClassName("inputarea ".concat(Re)),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:a}=this._context.viewModel.model.getOptions();this.textArea.domNode.style.tabSize="".concat(a*this._fontInfo.spaceWidth,"px"),this.textArea.setAttribute("autocorrect","off"),this.textArea.setAttribute("autocapitalize","off"),this.textArea.setAttribute("autocomplete","off"),this.textArea.setAttribute("spellcheck","false"),this.textArea.setAttribute("aria-label",this._getAriaLabel(s)),this.textArea.setAttribute("aria-required",s.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(s.get(124))),this.textArea.setAttribute("role","textbox"),this.textArea.setAttribute("aria-roledescription",ke.NC("editor","editor")),this.textArea.setAttribute("aria-multiline","true"),this.textArea.setAttribute("aria-autocomplete",s.get(91)?"none":"both"),this._ensureReadOnlyAttribute(),this.textAreaCover=(0,z.X)(document.createElement("div")),this.textAreaCover.setPosition("absolute");const l={getLineCount:()=>this._context.viewModel.getLineCount(),getLineMaxColumn:e=>this._context.viewModel.getLineMaxColumn(e),getValueInRange:(e,t)=>this._context.viewModel.getValueInRange(e,t),getValueLengthInRange:(e,t)=>this._context.viewModel.getValueLengthInRange(e,t),modifyPosition:(e,t)=>this._context.viewModel.modifyPosition(e,t)},h={getDataToCopy:()=>{const e=this._context.viewModel.getPlainTextToCopy(this._modelSelections,this._emptySelectionClipboard,_.ED),t=this._context.viewModel.model.getEOL(),i=this._emptySelectionClipboard&&1===this._modelSelections.length&&this._modelSelections[0].isEmpty(),n=Array.isArray(e)?e:null,o=Array.isArray(e)?e.join(t):e;let s,r=null;if(we.RA.forceCopyWithSyntaxHighlighting||this._copyWithSyntaxHighlighting&&o.length<65536){const e=this._context.viewModel.getRichTextToCopy(this._modelSelections,this._emptySelectionClipboard);e&&(s=e.html,r=e.mode)}return{isFromEmptySelection:i,multicursorText:n,text:o,html:s,mode:r}},getScreenReaderContent:()=>{if(1===this._accessibilitySupport){const e=this._selections[0];if(_.dz&&e.isEmpty()){const t=e.getStartPosition();let i=this._getWordBeforePosition(t);if(0===i.length&&(i=this._getCharacterBeforePosition(t)),i.length>0)return new Ne.un(i,i.length,i.length,Q.e.fromPositions(t),0)}const t=500;if(_.dz&&!e.isEmpty()&&l.getValueLengthInRange(e,0)0)return new Ne.un(i,n,n,Q.e.fromPositions(t),0)}return Ne.un.EMPTY}return Ne.ee.fromEditorSelection(l,this._selections[0],this._accessibilityPageSize,0===this._accessibilitySupport)},deduceModelPosition:(e,t,i)=>this._context.viewModel.deduceModelPositionRelativeToViewPosition(e,t,i)},d=this._register(new we.Tj(this.textArea.domNode));this._textAreaInput=this._register(this._instantiationService.createInstance(we.Fz,h,d,_.OS,{isAndroid:m.Dt,isChrome:m.i7,isFirefox:m.vU,isSafari:m.G6})),this._register(this._textAreaInput.onKeyDown((e=>{this._viewController.emitKeyDown(e)}))),this._register(this._textAreaInput.onKeyUp((e=>{this._viewController.emitKeyUp(e)}))),this._register(this._textAreaInput.onPaste((e=>{let t=!1,i=null,n=null;e.metadata&&(t=this._emptySelectionClipboard&&!!e.metadata.isFromEmptySelection,i="undefined"!==typeof e.metadata.multicursorText?e.metadata.multicursorText:null,n=e.metadata.mode),this._viewController.paste(e.text,t,i,n)}))),this._register(this._textAreaInput.onCut((()=>{this._viewController.cut()}))),this._register(this._textAreaInput.onType((e=>{e.replacePrevCharCnt||e.replaceNextCharCnt||e.positionDelta?(Ne.al&&console.log(" => compositionType: <<".concat(e.text,">>, ").concat(e.replacePrevCharCnt,", ").concat(e.replaceNextCharCnt,", ").concat(e.positionDelta)),this._viewController.compositionType(e.text,e.replacePrevCharCnt,e.replaceNextCharCnt,e.positionDelta)):(Ne.al&&console.log(" => type: <<".concat(e.text,">>")),this._viewController.type(e.text))}))),this._register(this._textAreaInput.onSelectionChangeRequest((e=>{this._viewController.setSelection(e)}))),this._register(this._textAreaInput.onCompositionStart((e=>{const t=this.textArea.domNode,i=this._modelSelections[0],{distanceToModelLineStart:n,widthOfHiddenTextBefore:o}=(()=>{const e=t.value.substring(0,Math.min(t.selectionStart,t.selectionEnd)),n=e.lastIndexOf("\n"),o=e.substring(n+1),s=o.lastIndexOf("\t"),r=o.length-s-1,a=i.getStartPosition(),l=Math.min(a.column-1,r),h=a.column-1-l,d=o.substring(0,o.length-l),{tabSize:c}=this._context.viewModel.model.getOptions(),u=function(e,t,i,n){if(0===t.length)return 0;const o=e.createElement("div");o.style.position="absolute",o.style.top="-50000px",o.style.width="50000px";const s=e.createElement("span");(0,g.N)(s,i),s.style.whiteSpace="pre",s.style.tabSize="".concat(n*i.spaceWidth,"px"),s.append(t),o.appendChild(s),e.body.appendChild(o);const r=s.offsetWidth;return e.body.removeChild(o),r}(this.textArea.domNode.ownerDocument,d,this._fontInfo,c);return{distanceToModelLineStart:h,widthOfHiddenTextBefore:u}})(),{distanceToModelLineEnd:s}=(()=>{const e=t.value.substring(Math.max(t.selectionStart,t.selectionEnd)),n=e.indexOf("\n"),o=-1===n?e:e.substring(0,n),s=o.indexOf("\t"),r=-1===s?o.length:o.length-s-1,a=i.getEndPosition(),l=Math.min(this._context.viewModel.model.getLineMaxColumn(a.lineNumber)-a.column,r);return{distanceToModelLineEnd:this._context.viewModel.model.getLineMaxColumn(a.lineNumber)-a.column-l}})();this._context.viewModel.revealRange("keyboard",!0,Q.e.fromPositions(this._selections[0].getStartPosition()),0,1),this._visibleTextArea=new He(this._context,i.startLineNumber,n,o,s),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render(),this.textArea.setClassName("inputarea ".concat(Re," ime-input")),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()}))),this._register(this._textAreaInput.onCompositionUpdate((e=>{this._visibleTextArea&&(this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render())}))),this._register(this._textAreaInput.onCompositionEnd((()=>{this._visibleTextArea=null,this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._render(),this.textArea.setClassName("inputarea ".concat(Re)),this._viewController.compositionEnd(),this._context.viewModel.onCompositionEnd()}))),this._register(this._textAreaInput.onFocus((()=>{this._context.viewModel.setHasFocus(!0)}))),this._register(this._textAreaInput.onBlur((()=>{this._context.viewModel.setHasFocus(!1)}))),this._register(Fe.F.onDidChange((()=>{this._ensureReadOnlyAttribute()})))}writeScreenReaderContent(e){this._textAreaInput.writeNativeTextAreaContent(e)}dispose(){super.dispose()}_getAndroidWordAtPosition(e){const t=this._context.viewModel.getLineContent(e.lineNumber),i=(0,Ae.u)('`~!@#$%^&*()-=+[{]}\\|;:",.<>/?',[]);let n=!0,o=e.column,s=!0,r=e.column,a=0;for(;a<50&&(n||s);){if(n&&o<=1&&(n=!1),n){const e=t.charCodeAt(o-2);0!==i.get(e)?n=!1:o--}if(s&&r>t.length&&(s=!1),s){const e=t.charCodeAt(r-1);0!==i.get(e)?s=!1:r++}a++}return[t.substring(o-1,r-1),e.column-o]}_getWordBeforePosition(e){const t=this._context.viewModel.getLineContent(e.lineNumber),i=(0,Ae.u)(this._context.configuration.options.get(131),[]);let n=e.column,o=0;for(;n>1;){const s=t.charCodeAt(n-2);if(0!==i.get(s)||o>50)return t.substring(n-1,e.column-1);o++,n--}return t.substring(0,e.column-1)}_getCharacterBeforePosition(e){if(e.column>1){const t=this._context.viewModel.getLineContent(e.lineNumber).charAt(e.column-2);if(!De.ZG(t.charCodeAt(0)))return t}return""}_getAriaLabel(e){var t,i,n;if(1===e.get(2)){const e=null===(t=this._keybindingService.lookupKeybinding("editor.action.toggleScreenReaderAccessibilityMode"))||void 0===t?void 0:t.getAriaLabel(),o=null===(i=this._keybindingService.lookupKeybinding("workbench.action.showCommands"))||void 0===i?void 0:i.getAriaLabel(),s=null===(n=this._keybindingService.lookupKeybinding("workbench.action.openGlobalKeybindings"))||void 0===n?void 0:n.getAriaLabel(),r=ke.NC("accessibilityModeOff","The editor is not accessible at this time.");return e?ke.NC("accessibilityOffAriaLabel","{0} To enable screen reader optimized mode, use {1}",r,e):o?ke.NC("accessibilityOffAriaLabelNoKb","{0} To enable screen reader optimized mode, open the quick pick with {1} and run the command Toggle Screen Reader Accessibility Mode, which is currently not triggerable via keyboard.",r,o):s?ke.NC("accessibilityOffAriaLabelNoKbs","{0} Please assign a keybinding for the command Toggle Screen Reader Accessibility Mode by accessing the keybindings editor with {1} and run it.",r,s):r}return e.get(4)}_setAccessibilityOptions(e){this._accessibilitySupport=e.get(2);const t=e.get(3);2===this._accessibilitySupport&&t===k.BH.accessibilityPageSize.defaultValue?this._accessibilityPageSize=500:this._accessibilityPageSize=t;const i=e.get(145).wrappingColumn;if(-1!==i&&1!==this._accessibilitySupport){const t=e.get(50);this._textAreaWrapping=!0,this._textAreaWidth=Math.round(i*t.typicalHalfwidthCharacterWidth)}else this._textAreaWrapping=!1,this._textAreaWidth=Ke?0:1}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(145);this._setAccessibilityOptions(t),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._contentHeight=i.height,this._fontInfo=t.get(50),this._lineHeight=t.get(67),this._emptySelectionClipboard=t.get(37),this._copyWithSyntaxHighlighting=t.get(25),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:n}=this._context.viewModel.model.getOptions();return this.textArea.domNode.style.tabSize="".concat(n*this._fontInfo.spaceWidth,"px"),this.textArea.setAttribute("aria-label",this._getAriaLabel(t)),this.textArea.setAttribute("aria-required",t.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(t.get(124))),(e.hasChanged(34)||e.hasChanged(91))&&this._ensureReadOnlyAttribute(),e.hasChanged(2)&&this._textAreaInput.writeNativeTextAreaContent("strategy changed"),!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),this._modelSelections=e.modelSelections.slice(0),this._textAreaInput.writeNativeTextAreaContent("selection changed"),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0}onZonesChanged(e){return!0}isFocused(){return this._textAreaInput.isFocused()}focusTextArea(){this._textAreaInput.focusTextArea()}getLastRenderData(){return this._lastRenderPosition}setAriaOptions(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)}_ensureReadOnlyAttribute(){const e=this._context.configuration.options;!Fe.F.enabled||e.get(34)&&e.get(91)?this.textArea.setAttribute("readonly","true"):this.textArea.removeAttribute("readonly")}prepareRender(e){var t;this._primaryCursorPosition=new G.L(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primaryCursorPosition),null===(t=this._visibleTextArea)||void 0===t||t.prepareRender(e)}render(e){this._textAreaInput.writeNativeTextAreaContent("render"),this._render()}_render(){var e;if(this._visibleTextArea){const e=this._visibleTextArea.visibleTextareaStart,t=this._visibleTextArea.visibleTextareaEnd,i=this._visibleTextArea.startPosition,n=this._visibleTextArea.endPosition;if(i&&n&&e&&t&&t.left>=this._scrollLeft&&e.left<=this._scrollLeft+this._contentWidth){const o=this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber)-this._scrollTop,s=this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));let r=this._visibleTextArea.widthOfHiddenLineTextBefore,a=this._contentLeft+e.left-this._scrollLeft,l=t.left-e.left+1;if(athis._contentWidth&&(l=this._contentWidth);const h=this._context.viewModel.getViewLineData(i.lineNumber),d=h.tokens.findTokenIndexAtOffset(i.column-1),c=d===h.tokens.findTokenIndexAtOffset(n.column-1),u=this._visibleTextArea.definePresentation(c?h.tokens.getPresentation(d):null);this.textArea.domNode.scrollTop=s*this._lineHeight,this.textArea.domNode.scrollLeft=r,this._doRender({lastRenderPosition:null,top:o,left:a,width:l,height:this._lineHeight,useCover:!1,color:(Oe.RW.getColorMap()||[])[u.foreground],italic:u.italic,bold:u.bold,underline:u.underline,strikethrough:u.strikethrough})}return}if(!this._primaryCursorVisibleRange)return void this._renderAtTopLeft();const t=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(tthis._contentLeft+this._contentWidth)return void this._renderAtTopLeft();const i=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;if(i<0||i>this._contentHeight)this._renderAtTopLeft();else if(_.dz||2===this._accessibilitySupport){this._doRender({lastRenderPosition:this._primaryCursorPosition,top:i,left:this._textAreaWrapping?this._contentLeft:t,width:this._textAreaWidth,height:this._lineHeight,useCover:!1}),this.textArea.domNode.scrollLeft=this._primaryCursorVisibleRange.left;const n=null!==(e=this._textAreaInput.textAreaState.newlineCountBeforeSelection)&&void 0!==e?e:this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));this.textArea.domNode.scrollTop=n*this._lineHeight}else this._doRender({lastRenderPosition:this._primaryCursorPosition,top:i,left:this._textAreaWrapping?this._contentLeft:t,width:this._textAreaWidth,height:Ke?0:1,useCover:!1})}_newlinecount(e){let t=0,i=-1;for(;;){if(i=e.indexOf("\n",i+1),-1===i)break;t++}return t}_renderAtTopLeft(){this._doRender({lastRenderPosition:null,top:0,left:0,width:this._textAreaWidth,height:Ke?0:1,useCover:!0})}_doRender(e){this._lastRenderPosition=e.lastRenderPosition;const t=this.textArea,i=this.textAreaCover;(0,g.N)(t,this._fontInfo),t.setTop(e.top),t.setLeft(e.left),t.setWidth(e.width),t.setHeight(e.height),t.setColor(e.color?Pe.Il.Format.CSS.formatHex(e.color):""),t.setFontStyle(e.italic?"italic":""),e.bold&&t.setFontWeight("bold"),t.setTextDecoration("".concat(e.underline?" underline":"").concat(e.strikethrough?" line-through":"")),i.setTop(e.useCover?e.top:0),i.setLeft(e.useCover?e.left:0),i.setWidth(e.useCover?e.width:0),i.setHeight(e.useCover?e.height:0);const n=this._context.configuration.options;n.get(57)?i.setClassName("monaco-editor-background textAreaCover "+Me.OUTER_CLASS_NAME):0!==n.get(68).renderType?i.setClassName("monaco-editor-background textAreaCover "+Te.CLASS_NAME):i.setClassName("monaco-editor-background textAreaCover")}};Ue=Ve([We(3,Be.d),We(4,ze.TG)],Ue);var je=i(15115),qe=i(70469);class Ge{constructor(e,t,i,n){this.configuration=e,this.viewModel=t,this.userInputEvents=i,this.commandDelegate=n}paste(e,t,i,n){this.commandDelegate.paste(e,t,i,n)}type(e){this.commandDelegate.type(e)}compositionType(e,t,i,n){this.commandDelegate.compositionType(e,t,i,n)}compositionStart(){this.commandDelegate.startComposition()}compositionEnd(){this.commandDelegate.endComposition()}cut(){this.commandDelegate.cut()}setSelection(e){qe.Ox.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:e})}_validateViewColumn(e){const t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column=4?this._selectAll():3===e.mouseDownCount?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelectDrag(e.position,e.revealType):this._lastCursorLineSelect(e.position,e.revealType):e.inSelectionMode?this._lineSelectDrag(e.position,e.revealType):this._lineSelect(e.position,e.revealType):2===e.mouseDownCount?e.onInjectedText||(this._hasMulticursorModifier(e)?this._lastCursorWordSelect(e.position,e.revealType):e.inSelectionMode?this._wordSelectDrag(e.position,e.revealType):this._wordSelect(e.position,e.revealType)):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this._columnSelect(e.position,e.mouseColumn,!0):e.inSelectionMode?this._lastCursorMoveToSelect(e.position,e.revealType):this._createCursor(e.position,!1)):e.inSelectionMode?e.altKey||n?this._columnSelect(e.position,e.mouseColumn,!0):this._moveToSelect(e.position,e.revealType):this.moveTo(e.position,e.revealType)}_usualArgs(e,t){return e=this._validateViewColumn(e),{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,revealType:t}}moveTo(e,t){qe.Ox.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_moveToSelect(e,t){qe.Ox.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_columnSelect(e,t,i){e=this._validateViewColumn(e),qe.Ox.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:i})}_createCursor(e,t){e=this._validateViewColumn(e),qe.Ox.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})}_lastCursorMoveToSelect(e,t){qe.Ox.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelect(e,t){qe.Ox.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelectDrag(e,t){qe.Ox.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorWordSelect(e,t){qe.Ox.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelect(e,t){qe.Ox.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelectDrag(e,t){qe.Ox.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelect(e,t){qe.Ox.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelectDrag(e,t){qe.Ox.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_selectAll(){qe.Ox.SelectAll.runCoreEditorCommand(this.viewModel,{source:"mouse"})}_convertViewToModelPosition(e){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)}emitKeyDown(e){this.userInputEvents.emitKeyDown(e)}emitKeyUp(e){this.userInputEvents.emitKeyUp(e)}emitContextMenu(e){this.userInputEvents.emitContextMenu(e)}emitMouseMove(e){this.userInputEvents.emitMouseMove(e)}emitMouseLeave(e){this.userInputEvents.emitMouseLeave(e)}emitMouseUp(e){this.userInputEvents.emitMouseUp(e)}emitMouseDown(e){this.userInputEvents.emitMouseDown(e)}emitMouseDrag(e){this.userInputEvents.emitMouseDrag(e)}emitMouseDrop(e){this.userInputEvents.emitMouseDrop(e)}emitMouseDropCanceled(){this.userInputEvents.emitMouseDropCanceled()}emitMouseWheel(e){this.userInputEvents.emitMouseWheel(e)}}var Qe=i(52047),Ze=i(76071);class Ye{constructor(e){this._createLine=e,this._set(1,[])}flush(){this._set(1,[])}_set(e,t){this._lines=t,this._rendLineNumberStart=e}_get(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}}getStartLineNumber(){return this._rendLineNumberStart}getEndLineNumber(){return this._rendLineNumberStart+this._lines.length-1}getCount(){return this._lines.length}getLine(e){const t=e-this._rendLineNumberStart;if(t<0||t>=this._lines.length)throw new h.he("Illegal value for lineNumber");return this._lines[t]}onLinesDeleted(e,t){if(0===this.getCount())return null;const i=this.getStartLineNumber(),n=this.getEndLineNumber();if(tn)return null;let o=0,s=0;for(let r=i;r<=n;r++){const i=r-this._rendLineNumberStart;e<=r&&r<=t&&(0===s?(o=i,s=1):s++)}if(e=n&&r<=o&&(this._lines[r-this._rendLineNumberStart].onContentChanged(),s=!0);return s}onLinesInserted(e,t){if(0===this.getCount())return null;const i=t-e+1,n=this.getStartLineNumber(),o=this.getEndLineNumber();if(e<=n)return this._rendLineNumberStart+=i,null;if(e>o)return null;if(i+e>o){return this._lines.splice(e-this._rendLineNumberStart,o-e+1)}const s=[];for(let d=0;di)continue;const r=Math.max(t,s.fromLineNumber),a=Math.min(i,s.toLineNumber);for(let e=r;e<=a;e++){const t=e-this._rendLineNumberStart;this._lines[t].onTokensChanged(),n=!0}}return n}}class $e{constructor(e){this._host=e,this.domNode=this._createDomNode(),this._linesCollection=new Ye((()=>this._host.createVisibleLine()))}_createDomNode(){const e=(0,z.X)(document.createElement("div"));return e.setClassName("view-layer"),e.setPosition("absolute"),e.domNode.setAttribute("role","presentation"),e.domNode.setAttribute("aria-hidden","true"),e}onConfigurationChanged(e){return!!e.hasChanged(145)}onFlushed(e){return this._linesCollection.flush(),!0}onLinesChanged(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.count)}onLinesDeleted(e){const t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(let i=0,n=t.length;it){const e=t,s=Math.min(i,o.rendLineNumberStart-1);e<=s&&(this._insertLinesBefore(o,e,s,n,t),o.linesLength+=s-e+1)}else if(o.rendLineNumberStart0&&(this._removeLinesBefore(o,e),o.linesLength-=e)}if(o.rendLineNumberStart=t,o.rendLineNumberStart+o.linesLength-1i){const e=Math.max(0,i-o.rendLineNumberStart+1),t=o.linesLength-1-e+1;t>0&&(this._removeLinesAfter(o,t),o.linesLength-=t)}return this._finishRendering(o,!1,n),o}_renderUntouchedLines(e,t,i,n,o){const s=e.rendLineNumberStart,r=e.lines;for(let a=t;a<=i;a++){const e=s+a;r[a].layoutLine(e,n[e-o],this.viewportData.lineHeight)}}_insertLinesBefore(e,t,i,n,o){const s=[];let r=0;for(let a=t;a<=i;a++)s[r++]=this.host.createVisibleLine();e.lines=s.concat(e.lines)}_removeLinesBefore(e,t){for(let i=0;i=0;r--){const t=e.lines[r];n[r]&&(t.setDomNode(s),s=s.previousSibling)}}_finishRenderingInvalidLines(e,t,i){const n=document.createElement("div");Je._ttPolicy&&(t=Je._ttPolicy.createHTML(t)),n.innerHTML=t;for(let o=0;oe}),Je._sb=new Ze.HT(1e5);class Xe extends K{constructor(e){super(e),this._visibleLines=new $e(this),this.domNode=this._visibleLines.domNode;const t=this._context.configuration.options.get(50);(0,g.N)(this.domNode,t),this._dynamicOverlays=[],this._isFocused=!1,this.domNode.setClassName("view-overlays")}shouldRender(){if(super.shouldRender())return!0;for(let e=0,t=this._dynamicOverlays.length;ee.shouldRender()));for(let i=0,n=t.length;i'),o.appendString(s),o.appendString(""),!0)}layoutLine(e,t,i){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(i))}}class tt extends Xe{constructor(e){super(e);const t=this._context.configuration.options.get(145);this._contentWidth=t.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(e){const t=this._context.configuration.options.get(145);return this._contentWidth=t.contentWidth,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollWidthChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e),this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth))}}class it extends Xe{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(145);this._contentLeft=i.contentLeft,this.domNode.setClassName("margin-view-overlays"),this.domNode.setWidth(1),(0,g.N)(this.domNode,t.get(50))}onConfigurationChanged(e){const t=this._context.configuration.options;(0,g.N)(this.domNode,t.get(50));const i=t.get(145);return this._contentLeft=i.contentLeft,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollHeightChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e);const t=Math.min(e.scrollHeight,1e6);this.domNode.setHeight(t),this.domNode.setWidth(this._contentLeft)}}class nt{constructor(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=e}emitKeyDown(e){var t;null===(t=this.onKeyDown)||void 0===t||t.call(this,e)}emitKeyUp(e){var t;null===(t=this.onKeyUp)||void 0===t||t.call(this,e)}emitContextMenu(e){var t;null===(t=this.onContextMenu)||void 0===t||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseMove(e){var t;null===(t=this.onMouseMove)||void 0===t||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseLeave(e){var t;null===(t=this.onMouseLeave)||void 0===t||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDown(e){var t;null===(t=this.onMouseDown)||void 0===t||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseUp(e){var t;null===(t=this.onMouseUp)||void 0===t||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrag(e){var t;null===(t=this.onMouseDrag)||void 0===t||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrop(e){var t;null===(t=this.onMouseDrop)||void 0===t||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDropCanceled(){var e;null===(e=this.onMouseDropCanceled)||void 0===e||e.call(this)}emitMouseWheel(e){var t;null===(t=this.onMouseWheel)||void 0===t||t.call(this,e)}_convertViewToModelMouseEvent(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e}_convertViewToModelMouseTarget(e){return nt.convertViewToModelMouseTarget(e,this._coordinatesConverter)}static convertViewToModelMouseTarget(e,t){const i={...e};return i.position&&(i.position=t.convertViewPositionToModelPosition(i.position)),i.range&&(i.range=t.convertViewRangeToModelRange(i.range)),5!==i.type&&8!==i.type||(i.detail=this.convertViewToModelViewZoneData(i.detail,t)),i}static convertViewToModelViewZoneData(e,t){return{viewZoneId:e.viewZoneId,positionBefore:e.positionBefore?t.convertViewPositionToModelPosition(e.positionBefore):e.positionBefore,positionAfter:e.positionAfter?t.convertViewPositionToModelPosition(e.positionAfter):e.positionAfter,position:t.convertViewPositionToModelPosition(e.position),afterLineNumber:t.convertViewPositionToModelPosition(new G.L(e.afterLineNumber,1)).lineNumber}}}class ot extends K{constructor(e){super(e),this.blocks=[],this.contentWidth=-1,this.contentLeft=0,this.domNode=(0,z.X)(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("blockDecorations-container"),this.update()}update(){let e=!1;const t=this._context.configuration.options.get(145),i=t.contentWidth-t.verticalScrollbarWidth;this.contentWidth!==i&&(this.contentWidth=i,e=!0);const n=t.contentLeft;return this.contentLeft!==n&&(this.contentLeft=n,e=!0),e}dispose(){super.dispose()}onConfigurationChanged(e){return this.update()}onScrollChanged(e){return e.scrollTopChanged||e.scrollLeftChanged}onDecorationsChanged(e){return!0}onZonesChanged(e){return!0}prepareRender(e){}render(e){var t;let i=0;const n=e.getDecorationsInViewport();for(const o of n){if(!o.options.blockClassName)continue;let n,s,r=this.blocks[i];r||(r=this.blocks[i]=(0,z.X)(document.createElement("div")),this.domNode.appendChild(r)),o.options.blockIsAfterEnd?(n=e.getVerticalOffsetAfterLineNumber(o.range.endLineNumber,!1),s=e.getVerticalOffsetAfterLineNumber(o.range.endLineNumber,!0)):(n=e.getVerticalOffsetForLineNumber(o.range.startLineNumber,!0),s=o.range.isEmpty()&&!o.options.blockDoesNotCollapse?e.getVerticalOffsetForLineNumber(o.range.startLineNumber,!1):e.getVerticalOffsetAfterLineNumber(o.range.endLineNumber,!0));const[a,l,h,d]=null!==(t=o.options.blockPadding)&&void 0!==t?t:[0,0,0,0];r.setClassName("blockDecorations-block "+o.options.blockClassName),r.setLeft(this.contentLeft-d),r.setWidth(this.contentWidth+d+l),r.setTop(n-e.scrollTop-a),r.setHeight(s-n+a+h),i++}for(let o=i;o0?this.domNode.setDisplay("block"):this.domNode.setDisplay("none"),this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1}_layoutBoxInViewport(e,t,i,n){const o=e.top,s=o,r=e.top+e.height,a=o-i,l=s>=i,h=r,d=n.viewportHeight-r>=i;let c=e.left;return c+t>n.scrollLeft+n.viewportWidth&&(c=n.scrollLeft+n.viewportWidth-t),cr){const e=l-(r-n);l-=e,i-=e}if(l=22,v=g+i<=m.height-22;return this._fixedOverflowWidgets?{fitsAbove:_,aboveTop:Math.max(u,22),fitsBelow:v,belowTop:g,left:p}:{fitsAbove:_,aboveTop:r,fitsBelow:v,belowTop:a,left:f}}_prepareRenderWidgetAtExactPositionOverflowing(e){return new lt(e.top,e.left+this._contentLeft)}_getAnchorsCoordinates(e){var t,i;return{primary:n(this._primaryAnchor.viewPosition,this._affinity,this._lineHeight),secondary:n((null===(t=this._secondaryAnchor.viewPosition)||void 0===t?void 0:t.lineNumber)===(null===(i=this._primaryAnchor.viewPosition)||void 0===i?void 0:i.lineNumber)?this._secondaryAnchor.viewPosition:null,this._affinity,this._lineHeight)};function n(t,i,n){if(!t)return null;const o=e.visibleRangeForPosition(t);if(!o)return null;const s=1===t.column&&3===i?0:o.left,r=e.getVerticalOffsetForLineNumber(t.lineNumber)-e.scrollTop;return new ht(r,s,n)}}_reduceAnchorCoordinates(e,t,i){if(!t)return e;const n=this._context.configuration.options.get(50);let o=t.left;return o=oe.endLineNumber||this.domNode.setMaxWidth(this._maxWidth))}prepareRender(e){this._renderData=this._prepareRenderWidget(e)}render(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&&dt(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&&dt(this._actual.afterRender,this._actual,this._renderData.position)}}class at{constructor(e,t){this.modelPosition=e,this.viewPosition=t}}class lt{constructor(e,t){this.top=e,this.left=t,this._coordinateBrand=void 0}}class ht{constructor(e,t,i){this.top=e,this.left=t,this.height=i,this._anchorCoordinateBrand=void 0}}function dt(e,t){try{for(var i=arguments.length,n=new Array(i>2?i-2:0),o=2;oe-t)),f.fS(this._cursorLineNumbers,i)||(this._cursorLineNumbers=i,e=!0);const n=this._selections.every((e=>e.isEmpty()));return this._selectionIsEmpty!==n&&(this._selectionIsEmpty=n,e=!0),e}onThemeChanged(e){return this._readFromSelections()}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(145);return this._renderLineHighlight=t.get(96),this._renderLineHighlightOnlyWhenFocus=t.get(97),this._wordWrap=i.isViewportWrapping,this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,!0}onCursorStateChanged(e){return this._selections=e.selections,this._readFromSelections()}onFlushed(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollWidthChanged||e.scrollTopChanged}onZonesChanged(e){return!0}onFocusChanged(e){return!!this._renderLineHighlightOnlyWhenFocus&&(this._focused=e.isFocused,!0)}prepareRender(e){if(!this._shouldRenderThis())return void(this._renderData=null);const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,n=[];for(let s=t;s<=i;s++){n[s-t]=""}if(this._wordWrap){const o=this._renderOne(e,!1);for(const e of this._cursorLineNumbers){const s=this._context.viewModel.coordinatesConverter,r=s.convertViewPositionToModelPosition(new G.L(e,1)).lineNumber,a=s.convertModelPositionToViewPosition(new G.L(r,1)).lineNumber,l=s.convertModelPositionToViewPosition(new G.L(r,this._context.viewModel.model.getLineMaxColumn(r))).lineNumber,h=Math.max(a,t),d=Math.min(l,i);for(let e=h;e<=d;e++){n[e-t]=o}}}const o=this._renderOne(e,!0);for(const s of this._cursorLineNumbers){if(si)continue;n[s-t]=o}this._renderData=n}render(e,t){if(!this._renderData)return"";const i=t-e;return i>=this._renderData.length?"":this._renderData[i]}_shouldRenderInMargin(){return("gutter"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}_shouldRenderInContent(){return("line"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}class gt extends ut{_renderOne(e,t){const i="current-line"+(this._shouldRenderInMargin()?" current-line-both":"")+(t?" current-line-exact":"");return'
    ')}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}}class mt extends ut{_renderOne(e,t){const i="current-line"+(this._shouldRenderInMargin()?" current-line-margin":"")+(this._shouldRenderOther()?" current-line-margin-both":"")+(this._shouldRenderInMargin()&&t?" current-line-exact-margin":"");return'
    ')}_shouldRenderThis(){return!0}_shouldRenderOther(){return this._shouldRenderInContent()}}(0,Ee.Ic)(((e,t)=>{const i=e.getColor(Ie.Kh);if(i&&(t.addRule(".monaco-editor .view-overlays .current-line { background-color: ".concat(i,"; }")),t.addRule(".monaco-editor .margin-view-overlays .current-line-margin { background-color: ".concat(i,"; border: none; }"))),!i||i.isTransparent()||e.defines(Ie.Mm)){const i=e.getColor(Ie.Mm);i&&(t.addRule(".monaco-editor .view-overlays .current-line-exact { border: 2px solid ".concat(i,"; }")),t.addRule(".monaco-editor .margin-view-overlays .current-line-exact-margin { border: 2px solid ".concat(i,"; }")),(0,ct.c3)(e.type)&&(t.addRule(".monaco-editor .view-overlays .current-line-exact { border-width: 1px; }"),t.addRule(".monaco-editor .margin-view-overlays .current-line-exact-margin { border-width: 1px; }")))}}));class ft extends xe{constructor(e){super(),this._context=e;const t=this._context.configuration.options;this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}prepareRender(e){const t=e.getDecorationsInViewport();let i=[],n=0;for(let a=0,l=t.length;a{if(e.options.zIndext.options.zIndex)return 1;const i=e.options.className,n=t.options.className;return in?1:Q.e.compareRangesUsingStarts(e.range,t.range)}));const o=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,r=[];for(let a=o;a<=s;a++){r[a-o]=""}this._renderWholeLineDecorations(e,i,r),this._renderNormalDecorations(e,i,r),this._renderResult=r}_renderWholeLineDecorations(e,t,i){const n=e.visibleRange.startLineNumber,o=e.visibleRange.endLineNumber;for(let s=0,r=t.length;s',a=Math.max(e.range.startLineNumber,n),l=Math.min(e.range.endLineNumber,o);for(let t=a;t<=l;t++){i[t-n]+=r}}}_renderNormalDecorations(e,t,i){var n;const o=e.visibleRange.startLineNumber;let s=null,r=!1,a=null,l=!1;for(let h=0,d=t.length;h';r[t]+=h}}}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}class pt extends K{constructor(e,t,i,n){super(e);const o=this._context.configuration.options,s=o.get(103),r=o.get(75),a=o.get(40),h=o.get(106),d={listenOnDomNode:i.domNode,className:"editor-scrollable "+(0,Ee.m6)(e.theme.type),useShadows:!1,lazyRender:!0,vertical:s.vertical,horizontal:s.horizontal,verticalHasArrows:s.verticalHasArrows,horizontalHasArrows:s.horizontalHasArrows,verticalScrollbarSize:s.verticalScrollbarSize,verticalSliderSize:s.verticalSliderSize,horizontalScrollbarSize:s.horizontalScrollbarSize,horizontalSliderSize:s.horizontalSliderSize,handleMouseWheel:s.handleMouseWheel,alwaysConsumeMouseWheel:s.alwaysConsumeMouseWheel,arrowSize:s.arrowSize,mouseWheelScrollSensitivity:r,fastScrollSensitivity:a,scrollPredominantAxis:h,scrollByPage:s.scrollByPage};this.scrollbar=this._register(new fe.$Z(t.domNode,d,this._context.viewLayout.getScrollable())),U.write(this.scrollbar.getDomNode(),6),this.scrollbarDomNode=(0,z.X)(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition("absolute"),this._setLayout();const c=(e,t,i)=>{const n={};if(t){const t=e.scrollTop;t&&(n.scrollTop=this._context.viewLayout.getCurrentScrollTop()+t,e.scrollTop=0)}if(i){const t=e.scrollLeft;t&&(n.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+t,e.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(n,1)};this._register(l.nm(i.domNode,"scroll",(e=>c(i.domNode,!0,!0)))),this._register(l.nm(t.domNode,"scroll",(e=>c(t.domNode,!0,!1)))),this._register(l.nm(n.domNode,"scroll",(e=>c(n.domNode,!0,!1)))),this._register(l.nm(this.scrollbarDomNode.domNode,"scroll",(e=>c(this.scrollbarDomNode.domNode,!0,!1))))}dispose(){super.dispose()}_setLayout(){const e=this._context.configuration.options,t=e.get(145);this.scrollbarDomNode.setLeft(t.contentLeft);"right"===e.get(73).side?this.scrollbarDomNode.setWidth(t.contentWidth+t.minimap.minimapWidth):this.scrollbarDomNode.setWidth(t.contentWidth),this.scrollbarDomNode.setHeight(t.height)}getOverviewRulerLayoutInfo(){return this.scrollbar.getOverviewRulerLayoutInfo()}getDomNode(){return this.scrollbarDomNode}delegateVerticalScrollbarPointerDown(e){this.scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this.scrollbar.delegateScrollFromMouseWheelEvent(e)}onConfigurationChanged(e){if(e.hasChanged(103)||e.hasChanged(75)||e.hasChanged(40)){const e=this._context.configuration.options,t=e.get(103),i=e.get(75),n=e.get(40),o=e.get(106),s={vertical:t.vertical,horizontal:t.horizontal,verticalScrollbarSize:t.verticalScrollbarSize,horizontalScrollbarSize:t.horizontalScrollbarSize,scrollByPage:t.scrollByPage,handleMouseWheel:t.handleMouseWheel,mouseWheelScrollSensitivity:i,fastScrollSensitivity:n,scrollPredominantAxis:o};this.scrollbar.updateOptions(s)}return e.hasChanged(145)&&this._setLayout(),!0}onScrollChanged(e){return!0}onThemeChanged(e){return this.scrollbar.updateClassName("editor-scrollable "+(0,Ee.m6)(this._context.theme.type)),!0}prepareRender(e){}render(e){this.scrollbar.renderNow()}}var _t=i(27127);class vt{constructor(e,t,i,n,o){this.startLineNumber=e,this.endLineNumber=t,this.className=i,this.tooltip=n,this._decorationToRenderBrand=void 0,this.zIndex=null!==o&&void 0!==o?o:0}}class bt{constructor(e,t,i){this.className=e,this.zIndex=t,this.tooltip=i}}class Ct{constructor(){this.decorations=[]}add(e){this.decorations.push(e)}getDecorations(){return this.decorations}}class wt extends xe{_render(e,t,i){const n=[];for(let r=e;r<=t;r++){n[r-e]=new Ct}if(0===i.length)return n;i.sort(((e,t)=>e.className===t.className?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.classNamen)continue;const a=Math.max(s,i),l=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new G.L(a,0)),h=this._context.viewModel.glyphLanes.getLanesAtLine(l.lineNumber).indexOf(o.preference.lane);t.push(new Lt(a,h,o.preference.zIndex,o))}}_collectSortedGlyphRenderRequests(e){const t=[];return this._collectDecorationBasedGlyphRenderRequest(e,t),this._collectWidgetBasedGlyphRenderRequest(e,t),t.sort(((e,t)=>e.lineNumber===t.lineNumber?e.laneIndex===t.laneIndex?e.zIndex===t.zIndex?t.type===e.type?0===e.type&&0===t.type?e.className0;){const e=t.peek();if(!e)break;const n=t.takeWhile((t=>t.lineNumber===e.lineNumber&&t.laneIndex===e.laneIndex));if(!n||0===n.length)break;const o=n[0];if(0===o.type){const e=[];for(const t of n){if(t.zIndex!==o.zIndex||t.type!==o.type)break;0!==e.length&&e[e.length-1]===t.className||e.push(t.className)}i.push(o.accept(e.join(" ")))}else o.widget.renderInfo={lineNumber:o.lineNumber,laneIndex:o.laneIndex}}this._decorationGlyphsToRender=i}render(e){if(!this._glyphMargin){for(const e of Object.values(this._widgets))e.domNode.setDisplay("none");for(;this._managedDomNodes.length>0;){const e=this._managedDomNodes.pop();null===e||void 0===e||e.domNode.remove()}return}const t=Math.round(this._glyphMarginWidth/this._glyphMarginDecorationLaneCount);for(const i of Object.values(this._widgets))if(i.renderInfo){const n=e.viewportData.relativeVerticalOffset[i.renderInfo.lineNumber-e.viewportData.startLineNumber],o=this._glyphMarginLeft+i.renderInfo.laneIndex*this._lineHeight;i.domNode.setDisplay("block"),i.domNode.setTop(n),i.domNode.setLeft(o),i.domNode.setWidth(t),i.domNode.setHeight(this._lineHeight)}else i.domNode.setDisplay("none");for(let i=0;ithis._decorationGlyphsToRender.length;){const e=this._managedDomNodes.pop();null===e||void 0===e||e.domNode.remove()}}}class St{constructor(e,t,i,n){this.lineNumber=e,this.laneIndex=t,this.zIndex=i,this.className=n,this.type=0}accept(e){return new kt(this.lineNumber,this.laneIndex,e)}}class Lt{constructor(e,t,i,n){this.lineNumber=e,this.laneIndex=t,this.zIndex=i,this.widget=n,this.type=1}}class kt{constructor(e,t,i){this.lineNumber=e,this.laneIndex=t,this.combinedClassName=i}}var Dt=i(63686),Nt=i(8236),xt=i(6192);class Et extends xe{constructor(e){super(),this._context=e,this._primaryPosition=null;const t=this._context.configuration.options,i=t.get(146),n=t.get(50);this._spaceWidth=n.spaceWidth,this._maxIndentLeft=-1===i.wrappingColumn?-1:i.wrappingColumn*n.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(16),this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(146),n=t.get(50);return this._spaceWidth=n.spaceWidth,this._maxIndentLeft=-1===i.wrappingColumn?-1:i.wrappingColumn*n.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(16),!0}onCursorStateChanged(e){var t;const i=e.selections[0].getPosition();return!(null===(t=this._primaryPosition)||void 0===t?void 0:t.equals(i))&&(this._primaryPosition=i,!0)}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}onLanguageConfigurationChanged(e){return!0}prepareRender(e){var t,i,n,o;if(!this._bracketPairGuideOptions.indentation&&!1===this._bracketPairGuideOptions.bracketPairs)return void(this._renderResult=null);const s=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,a=e.scrollWidth,l=this._primaryPosition,h=this.getGuidesByLine(s,Math.min(r+1,this._context.viewModel.getLineCount()),l),d=[];for(let c=s;c<=r;c++){const r=c-s,l=h[r];let u="";const g=null!==(i=null===(t=e.visibleRangeForPosition(new G.L(c,1)))||void 0===t?void 0:t.left)&&void 0!==i?i:0;for(const t of l){const i=-1===t.column?g+(t.visibleColumn-1)*this._spaceWidth:e.visibleRangeForPosition(new G.L(c,t.column)).left;if(i>a||this._maxIndentLeft>0&&i>this._maxIndentLeft)break;const s=t.horizontalLine?t.horizontalLine.top?"horizontal-top":"horizontal-bottom":"vertical",r=t.horizontalLine?(null!==(o=null===(n=e.visibleRangeForPosition(new G.L(c,t.horizontalLine.endColumn)))||void 0===n?void 0:n.left)&&void 0!==o?o:i+this._spaceWidth)-i:this._spaceWidth;u+='
    ')}d[r]=u}this._renderResult=d}getGuidesByLine(e,t,i){const n=!1!==this._bracketPairGuideOptions.bracketPairs?this._context.viewModel.getBracketGuidesInRangeByLine(e,t,i,{highlightActive:this._bracketPairGuideOptions.highlightActiveBracketPair,horizontalGuides:!0===this._bracketPairGuideOptions.bracketPairsHorizontal?xt.s6.Enabled:"active"===this._bracketPairGuideOptions.bracketPairsHorizontal?xt.s6.EnabledForActive:xt.s6.Disabled,includeInactive:!0===this._bracketPairGuideOptions.bracketPairs}):null,o=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(e,t):null;let s=0,r=0,a=0;if(!1!==this._bracketPairGuideOptions.highlightActiveIndentation&&i){const n=this._context.viewModel.getActiveIndentGuide(i.lineNumber,e,t);s=n.startLineNumber,r=n.endLineNumber,a=n.indent}const{indentSize:l}=this._context.viewModel.model.getOptions(),h=[];for(let d=e;d<=t;d++){const t=new Array;h.push(t);const i=n?n[d-e]:[],c=new f.H9(i),u=o?o[d-e]:0;for(let e=1;e<=u;e++){const n=(e-1)*l+1,o=("always"===this._bracketPairGuideOptions.highlightActiveIndentation||0===i.length)&&s<=d&&d<=r&&e===a;t.push(...c.takeWhile((e=>e.visibleColumn!0))||[])}return h}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}function It(e){if(!e||!e.isTransparent())return e}(0,Ee.Ic)(((e,t)=>{const i=[{bracketColor:Ie.zJ,guideColor:Ie.oV,guideColorActive:Ie.Qb},{bracketColor:Ie.Vs,guideColor:Ie.m$,guideColorActive:Ie.m3},{bracketColor:Ie.CE,guideColor:Ie.DS,guideColorActive:Ie.To},{bracketColor:Ie.UP,guideColor:Ie.lS,guideColorActive:Ie.L7},{bracketColor:Ie.r0,guideColor:Ie.Jn,guideColorActive:Ie.HV},{bracketColor:Ie.m1,guideColor:Ie.YF,guideColorActive:Ie.f9}],n=new Nt.W,o=[{indentColor:Ie.gS,indentColorActive:Ie.qe},{indentColor:Ie.Tf,indentColorActive:Ie.Xy},{indentColor:Ie.H_,indentColorActive:Ie.cK},{indentColor:Ie.h1,indentColorActive:Ie.N8},{indentColor:Ie.vP,indentColorActive:Ie.zd},{indentColor:Ie.e9,indentColorActive:Ie.ll}],s=i.map((t=>{var i,n;const o=e.getColor(t.bracketColor),s=e.getColor(t.guideColor),r=e.getColor(t.guideColorActive),a=It(null!==(i=It(s))&&void 0!==i?i:null===o||void 0===o?void 0:o.transparent(.3)),l=It(null!==(n=It(r))&&void 0!==n?n:o);if(a&&l)return{guideColor:a,guideColorActive:l}})).filter(Dt.$K),r=o.map((t=>{const i=e.getColor(t.indentColor),n=e.getColor(t.indentColorActive),o=It(i),s=It(n);if(o&&s)return{indentColor:o,indentColorActive:s}})).filter(Dt.$K);if(s.length>0){for(let e=0;e<30;e++){const i=s[e%s.length];t.addRule(".monaco-editor .".concat(n.getInlineClassNameOfLevel(e).replace(/ /g,".")," { --guide-color: ").concat(i.guideColor,"; --guide-color-active: ").concat(i.guideColorActive,"; }"))}t.addRule(".monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }"),t.addRule(".monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }"),t.addRule(".monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }"),t.addRule(".monaco-editor .vertical.".concat(n.activeClassName," { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }")),t.addRule(".monaco-editor .horizontal-top.".concat(n.activeClassName," { border-top: 1px solid var(--guide-color-active); }")),t.addRule(".monaco-editor .horizontal-bottom.".concat(n.activeClassName," { border-bottom: 1px solid var(--guide-color-active); }"))}if(r.length>0){for(let e=0;e<30;e++){const i=r[e%r.length];t.addRule(".monaco-editor .lines-content .core-guide-indent.lvl-".concat(e," { --indent-color: ").concat(i.indentColor,"; --indent-color-active: ").concat(i.indentColorActive,"; }"))}t.addRule(".monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 var(--indent-color) inset; }"),t.addRule(".monaco-editor .lines-content .core-guide-indent.indent-active { box-shadow: 1px 0 0 0 var(--indent-color-active) inset; }")}}));var Tt=i(60282);class Mt{get didDomLayout(){return this._didDomLayout}readClientRect(){if(!this._clientRectRead){this._clientRectRead=!0;const e=this._domNode.getBoundingClientRect();this.markDidDomLayout(),this._clientRectDeltaLeft=e.left,this._clientRectScale=e.width/this._domNode.offsetWidth}}get clientRectDeltaLeft(){return this._clientRectRead||this.readClientRect(),this._clientRectDeltaLeft}get clientRectScale(){return this._clientRectRead||this.readClientRect(),this._clientRectScale}constructor(e,t){this._domNode=e,this.endNode=t,this._didDomLayout=!1,this._clientRectDeltaLeft=0,this._clientRectScale=1,this._clientRectRead=!1}markDidDomLayout(){this._didDomLayout=!0}}class At{constructor(){this._currentVisibleRange=new Q.e(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(e){this._currentVisibleRange=e}}class Rt{constructor(e,t,i,n,o,s,r){this.minimalReveal=e,this.lineNumber=t,this.startColumn=i,this.endColumn=n,this.startScrollTop=o,this.stopScrollTop=s,this.scrollType=r,this.type="range",this.minLineNumber=t,this.maxLineNumber=t}}class Ot{constructor(e,t,i,n,o){this.minimalReveal=e,this.selections=t,this.startScrollTop=i,this.stopScrollTop=n,this.scrollType=o,this.type="selections";let s=t[0].startLineNumber,r=t[0].endLineNumber;for(let a=1,l=t.length;a{this._updateLineWidthsSlow()}),200),this._asyncCheckMonospaceFontAssumptions=new Tt.pY((()=>{this._checkMonospaceFontAssumptions()}),2e3),this._lastRenderedData=new At,this._horizontalRevealRequest=null,this._stickyScrollEnabled=n.get(115).enabled,this._maxNumberStickyLines=n.get(115).maxLineCount}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}createVisibleLine(){return new q.Nt(this._viewLineOptions)}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(146)&&(this._maxLineWidth=0);const t=this._context.configuration.options,i=t.get(50),n=t.get(146);return this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._isViewportWrapping=n.isViewportWrapping,this._revealHorizontalRightPadding=t.get(100),this._cursorSurroundingLines=t.get(29),this._cursorSurroundingLinesStyle=t.get(30),this._canUseLayerHinting=!t.get(32),this._stickyScrollEnabled=t.get(115).enabled,this._maxNumberStickyLines=t.get(115).maxLineCount,(0,g.N)(this.domNode,i),this._onOptionsMaybeChanged(),e.hasChanged(145)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){const e=this._context.configuration,t=new q.ob(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;const e=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();for(let t=e;t<=i;t++){this._visibleLines.getVisibleLine(t).onOptionsChanged(this._viewLineOptions)}return!0}return!1}onCursorStateChanged(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let n=!1;for(let o=t;o<=i;o++)n=this._visibleLines.getVisibleLine(o).onSelectionChanged()||n;return n}onDecorationsChanged(e){{const e=this._visibleLines.getStartLineNumber(),t=this._visibleLines.getEndLineNumber();for(let i=e;i<=t;i++)this._visibleLines.getVisibleLine(i).onDecorationsChanged()}return!0}onFlushed(e){const t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t}onLinesChanged(e){return this._visibleLines.onLinesChanged(e)}onLinesDeleted(e){return this._visibleLines.onLinesDeleted(e)}onLinesInserted(e){return this._visibleLines.onLinesInserted(e)}onRevealRangeRequest(e){const t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.source,e.minimalReveal,e.range,e.selections,e.verticalType);if(-1===t)return!1;let i=this._context.viewLayout.validateScrollPosition({scrollTop:t});e.revealHorizontal?e.range&&e.range.startLineNumber!==e.range.endLineNumber?i={scrollTop:i.scrollTop,scrollLeft:0}:e.range?this._horizontalRevealRequest=new Rt(e.minimalReveal,e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType):e.selections&&e.selections.length>0&&(this._horizontalRevealRequest=new Ot(e.minimalReveal,e.selections,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType)):this._horizontalRevealRequest=null;const n=Math.abs(this._context.viewLayout.getCurrentScrollTop()-i.scrollTop)<=this._lineHeight?1:e.scrollType;return this._context.viewModel.viewLayout.setScrollPosition(i,n),!0}onScrollChanged(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){const t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),i=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTopi)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(e.scrollWidth),this._visibleLines.onScrollChanged(e)||!0}onTokensChanged(e){return this._visibleLines.onTokensChanged(e)}onZonesChanged(e){return this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(e)}onThemeChanged(e){return this._onOptionsMaybeChanged()}getPositionFromDOMInfo(e,t){const i=this._getViewLineDomNode(e);if(null===i)return null;const n=this._getLineNumberFor(i);if(-1===n)return null;if(n<1||n>this._context.viewModel.getLineCount())return null;if(1===this._context.viewModel.getLineMaxColumn(n))return new G.L(n,1);const o=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();if(ns)return null;let r=this._visibleLines.getVisibleLine(n).getColumnOfNodeOffset(e,t);const a=this._context.viewModel.getLineMinColumn(n);return ri)return-1;const n=new Mt(this.domNode.domNode,this._textRangeRestingSpot),o=this._visibleLines.getVisibleLine(e).getWidth(n);return this._updateLineWidthsSlowIfDomDidLayout(n),o}linesVisibleRangesForRange(e,t){if(this.shouldRender())return null;const i=e.endLineNumber,n=Q.e.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!n)return null;const o=[];let s=0;const r=new Mt(this.domNode.domNode,this._textRangeRestingSpot);let a=0;t&&(a=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new G.L(n.startLineNumber,1)).lineNumber);const l=this._visibleLines.getStartLineNumber(),h=this._visibleLines.getEndLineNumber();for(let d=n.startLineNumber;d<=n.endLineNumber;d++){if(dh)continue;const e=d===n.startLineNumber?n.startColumn:1,c=d!==n.endLineNumber,u=c?this._context.viewModel.getLineMaxColumn(d):n.endColumn,g=this._visibleLines.getVisibleLine(d).getVisibleRangesForRange(d,e,u,r);if(g){if(t&&dthis._visibleLines.getEndLineNumber())return null;const n=new Mt(this.domNode.domNode,this._textRangeRestingSpot),o=this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e,t,i,n);return this._updateLineWidthsSlowIfDomDidLayout(n),o}visibleRangeForPosition(e){const t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new je.D4(t.outsideRenderedLine,t.ranges[0].left):null}_updateLineWidthsFast(){return this._updateLineWidths(!0)}_updateLineWidthsSlow(){this._updateLineWidths(!1)}_updateLineWidthsSlowIfDomDidLayout(e){e.didDomLayout&&(this._asyncUpdateLineWidths.isScheduled()||(this._asyncUpdateLineWidths.cancel(),this._updateLineWidthsSlow()))}_updateLineWidths(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let n=1,o=!0;for(let s=t;s<=i;s++){const t=this._visibleLines.getVisibleLine(s);!e||t.getWidthIsFast()?n=Math.max(n,t.getWidth(null)):o=!1}return o&&1===t&&i===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(n),o}_checkMonospaceFontAssumptions(){let e=-1,t=-1;const i=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();for(let o=i;o<=n;o++){const i=this._visibleLines.getVisibleLine(o);if(i.needsMonospaceFontCheck()){const n=i.getWidth(null);n>t&&(t=n,e=o)}}if(-1!==e&&!this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())for(let o=i;o<=n;o++){this._visibleLines.getVisibleLine(o).onMonospaceAssumptionsInvalidated()}}prepareRender(){throw new Error("Not supported")}render(){throw new Error("Not supported")}renderText(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){const t=this._horizontalRevealRequest;if(e.startLineNumber<=t.minLineNumber&&t.maxLineNumber<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();const e=this._computeScrollLeftToReveal(t);e&&(this._isViewportWrapping||this._ensureMaxLineWidth(e.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:e.scrollLeft},t.scrollType))}}if(this._updateLineWidthsFast()?this._asyncUpdateLineWidths.cancel():this._asyncUpdateLineWidths.schedule(),_.IJ&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){const e=this._visibleLines.getStartLineNumber(),t=this._visibleLines.getEndLineNumber();for(let i=e;i<=t;i++){if(this._visibleLines.getVisibleLine(i).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain("strict");const t=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-t),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}_ensureMaxLineWidth(e){const t=Math.ceil(e);this._maxLineWidth0){let e=o[0].startLineNumber,t=o[0].endLineNumber;for(let i=1,n=o.length;ia){if(!h)return-1;u=d}else if(5===s||6===s)if(6===s&&r<=d&&c<=l)u=r;else{const e=d-Math.max(5*this._lineHeight,.2*a),t=c-a;u=Math.max(t,e)}else if(1===s||2===s)if(2===s&&r<=d&&c<=l)u=r;else{const e=(d+c)/2;u=Math.max(0,e-a/2)}else u=this._computeMinimumScrolling(r,l,d,c,3===s,4===s);return u}_computeScrollLeftToReveal(e){const t=this._context.viewLayout.getCurrentViewport(),i=this._context.configuration.options.get(145),n=t.left,o=n+t.width-i.verticalScrollbarWidth;let s=1073741824,r=0;if("range"===e.type){const t=this._visibleRangesForLineRange(e.lineNumber,e.startColumn,e.endColumn);if(!t)return null;for(const e of t.ranges)s=Math.min(s,Math.round(e.left)),r=Math.max(r,Math.round(e.left+e.width))}else for(const a of e.selections){if(a.startLineNumber!==a.endLineNumber)return null;const e=this._visibleRangesForLineRange(a.startLineNumber,a.startColumn,a.endColumn);if(!e)return null;for(const t of e.ranges)s=Math.min(s,Math.round(t.left)),r=Math.max(r,Math.round(t.left+t.width))}if(e.minimalReveal||(s=Math.max(0,s-Pt.HORIZONTAL_EXTRA_PX),r+=this._revealHorizontalRightPadding),"selections"===e.type&&r-s>t.width)return null;return{scrollLeft:this._computeMinimumScrolling(n,o,s,r),maxHorizontalOffset:r}}_computeMinimumScrolling(e,t,i,n,o,s){o=!!o,s=!!s;const r=(t|=0)-(e|=0);return(n|=0)-(i|=0)t?Math.max(0,n-r):e:i}}Pt.HORIZONTAL_EXTRA_PX=30;class Ft extends wt{constructor(e){super(),this._context=e;const t=this._context.configuration.options.get(145);this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options.get(145);return this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){var t,i;const n=e.getDecorationsInViewport(),o=[];let s=0;for(let r=0,a=n.length;r',s=[];for(let r=t;r<=i;r++){const e=r-t,i=n[e].getDecorations();let a="";for(const t of i){let e='
    ';o[e]=r}this._renderResult=o}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}var zt=i(13505);class Vt{constructor(e,t,i,n){this._rgba8Brand=void 0,this.r=Vt._clamp(e),this.g=Vt._clamp(t),this.b=Vt._clamp(i),this.a=Vt._clamp(n)}equals(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}static _clamp(e){return e<0?0:e>255?255:0|e}}Vt.Empty=new Vt(0,0,0,0);class Wt extends c.JT{static getInstance(){return this._INSTANCE||(this._INSTANCE=(0,c.dk)(new Wt)),this._INSTANCE}constructor(){super(),this._onDidChange=new d.Q5,this.onDidChange=this._onDidChange.event,this._updateColorMap(),this._register(Oe.RW.onDidChange((e=>{e.changedColorMap&&this._updateColorMap()})))}_updateColorMap(){const e=Oe.RW.getColorMap();if(!e)return this._colors=[Vt.Empty],void(this._backgroundIsLight=!0);this._colors=[Vt.Empty];for(let i=1;i=.5,this._onDidChange.fire(void 0)}getColor(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]}backgroundIsLight(){return this._backgroundIsLight}}Wt._INSTANCE=null;var Ht=i(33072),Kt=i(87701);const Ut=(()=>{const e=[];for(let t=32;t<=126;t++)e.push(t);return e.push(65533),e})();var jt=i(44918);class qt{constructor(e,t){this.scale=t,this._minimapCharRendererBrand=void 0,this.charDataNormal=qt.soften(e,.8),this.charDataLight=qt.soften(e,50/60)}static soften(e,t){const i=new Uint8ClampedArray(e.length);for(let n=0,o=e.length;ne.width||i+g>e.height)return void console.warn("bad render request outside image data");const m=h?this.charDataLight:this.charDataNormal,f=((e,t)=>(e-=32)<0||e>96?t<=2?(e+96)%96:95:e)(n,l),p=4*e.width,_=r.r,v=r.g,b=r.b,C=o.r-_,w=o.g-v,y=o.b-b,S=Math.max(s,a),L=e.data;let k=f*c*u,D=i*p+4*t;for(let N=0;Ne.width||i+d>e.height)return void console.warn("bad render request outside image data");const c=4*e.width,u=o/255*.5,g=s.r,m=s.g,f=s.b,p=g+(n.r-g)*u,_=m+(n.g-m)*u,v=f+(n.b-f)*u,b=Math.max(o,r),C=e.data;let w=i*c+4*t;for(let y=0;y{const t=new Uint8ClampedArray(e.length/2);for(let i=0;i>1]=Qt[e[i]]<<4|15&Qt[e[i+1]];return t},Yt={1:(0,Gt.M)((()=>Zt("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792"))),2:(0,Gt.M)((()=>Zt("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126")))};class $t{static create(e,t){if(this.lastCreated&&e===this.lastCreated.scale&&t===this.lastFontFamily)return this.lastCreated;let i;return i=Yt[e]?new qt(Yt[e](),e):$t.createFromSampleData($t.createSampleData(t).data,e),this.lastFontFamily=t,this.lastCreated=i,i}static createSampleData(e){const t=document.createElement("canvas"),i=t.getContext("2d");t.style.height="".concat(16,"px"),t.height=16,t.width=960,t.style.width="960px",i.fillStyle="#ffffff",i.font="bold ".concat(16,"px ",e),i.textBaseline="middle";let n=0;for(const o of Ut)i.fillText(String.fromCharCode(o),n,8),n+=10;return i.getImageData(0,0,960,16)}static createFromSampleData(e,t){if(61440!==e.length)throw new Error("Unexpected source in MinimapCharRenderer");const i=$t._downsample(e,t);return new qt(i,t)}static _downsampleChar(e,t,i,n,o){const s=1*o,r=2*o;let a=n,l=0;for(let h=0;h0){const e=255/a;for(let t=0;t$t.create(this.fontScale,a.fontFamily))),this.defaultBackgroundColor=i.getColor(2),this.backgroundColor=ei._getMinimapBackground(t,this.defaultBackgroundColor),this.foregroundAlpha=ei._getMinimapForegroundOpacity(t)}static _getMinimapBackground(e,t){const i=e.getColor(Kt.kVY);return i?new Vt(i.rgba.r,i.rgba.g,i.rgba.b,Math.round(255*i.rgba.a)):t}static _getMinimapForegroundOpacity(e){const t=e.getColor(Kt.Itd);return t?Vt._clamp(Math.round(255*t.rgba.a)):255}static _getSectionHeaderColor(e,t){const i=e.getColor(Kt.NOs);return i?new Vt(i.rgba.r,i.rgba.g,i.rgba.b,Math.round(255*i.rgba.a)):t}equals(e){return this.renderMinimap===e.renderMinimap&&this.size===e.size&&this.minimapHeightIsEditorHeight===e.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===e.scrollBeyondLastLine&&this.paddingTop===e.paddingTop&&this.paddingBottom===e.paddingBottom&&this.showSlider===e.showSlider&&this.autohide===e.autohide&&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.sectionHeaderFontSize===e.sectionHeaderFontSize&&this.defaultBackgroundColor&&this.defaultBackgroundColor.equals(e.defaultBackgroundColor)&&this.backgroundColor&&this.backgroundColor.equals(e.backgroundColor)&&this.foregroundAlpha===e.foregroundAlpha}}class ti{constructor(e,t,i,n,o,s,r,a,l){this.scrollTop=e,this.scrollHeight=t,this.sliderNeeded=i,this._computedSliderRatio=n,this.sliderTop=o,this.sliderHeight=s,this.topPaddingLineCount=r,this.startLineNumber=a,this.endLineNumber=l}getDesiredScrollTopFromDelta(e){return Math.round(this.scrollTop+e/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(e){return Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)}intersectWithViewport(e){const t=Math.max(this.startLineNumber,e.startLineNumber),i=Math.min(this.endLineNumber,e.endLineNumber);return t>i?null:[t,i]}getYForLineNumber(e,t){return+(e-this.startLineNumber+this.topPaddingLineCount)*t}static create(e,t,i,n,o,s,r,a,l,h,d){const c=e.pixelRatio,u=e.minimapLineHeight,g=Math.floor(e.canvasInnerHeight/u),m=e.lineHeight;if(e.minimapHeightIsEditorHeight){let t=a*e.lineHeight+e.paddingTop+e.paddingBottom;e.scrollBeyondLastLine&&(t+=Math.max(0,o-e.lineHeight-e.paddingBottom));const i=Math.max(1,Math.floor(o*o/t)),n=Math.max(0,e.minimapHeight-i),s=n/(h-o),d=l*s,c=n>0,u=Math.floor(e.canvasInnerHeight/e.minimapLineHeight),g=Math.floor(e.paddingTop/e.lineHeight);return new ti(l,h,c,s,d,i,g,1,Math.min(r,u))}let f;if(s&&i!==r){const e=i-t+1;f=Math.floor(e*u/c)}else{const e=o/m;f=Math.floor(e*u/c)}const p=Math.floor(e.paddingTop/m);let _,v=Math.floor(e.paddingBottom/m);if(e.scrollBeyondLastLine){const e=o/m;v=Math.max(v,e-1)}if(v>0){_=(p+r+v-o/m-1)*u/c}else _=Math.max(0,(p+r)*u/c-f);_=Math.min(e.minimapHeight-f,_);const b=_/(h-o),C=l*b;if(g>=p+r+v){return new ti(l,h,_>0,b,C,f,p,1,r)}{let i,o;i=t>1?t+p:Math.max(1,l/m);let s=Math.max(1,Math.floor(i-C*c/u));sl&&(s=Math.min(s,d.startLineNumber),o=Math.max(o,d.topPaddingLineCount)),d.scrollTop=e.paddingTop?(t-s+o+_)*u/c:l/e.paddingTop*(o+_)*u/c,new ti(l,h,!0,b,v,f,o,s,a)}}}class ii{constructor(e){this.dy=e}onContentChanged(){this.dy=-1}onTokensChanged(){this.dy=-1}}ii.INVALID=new ii(-1);class ni{constructor(e,t,i){this.renderedLayout=e,this._imageData=t,this._renderedLines=new Ye((()=>ii.INVALID)),this._renderedLines._set(e.startLineNumber,i)}linesEquals(e){if(!this.scrollEquals(e))return!1;const t=this._renderedLines._get().lines;for(let i=0,n=t.length;i1){for(let t=0,i=n-1;t0&&this.minimapLines[i-1]>=e;)i--;let n=this.modelLineToMinimapLine(t)-1;for(;n+1t)return null}return[i+1,n+1]}decorationLineRangeToMinimapLineRange(e,t){let i=this.modelLineToMinimapLine(e),n=this.modelLineToMinimapLine(t);return e!==t&&n===i&&(n===this.minimapLines.length?i>1&&i--:n++),[i,n]}onLinesDeleted(e){const t=e.toLineNumber-e.fromLineNumber+1;let i=this.minimapLines.length,n=0;for(let o=this.minimapLines.length-1;o>=0&&!(this.minimapLines[o]=0&&!(this.minimapLines[i]0,scrollWidth:e.scrollWidth,scrollHeight:e.scrollHeight,viewportStartLineNumber:t,viewportEndLineNumber:i,viewportStartLineNumberVerticalOffset:e.getVerticalOffsetForLineNumber(t),scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,viewportWidth:e.viewportWidth,viewportHeight:e.viewportHeight};this._actual.render(n)}_recreateLineSampling(){this._minimapSelections=null;const e=Boolean(this._samplingState),[t,i]=si.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=t,e&&this._samplingState)for(const n of i)switch(n.type){case"deleted":this._actual.onLinesDeleted(n.deleteFromLineNumber,n.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(n.insertFromLineNumber,n.insertToLineNumber);break;case"flush":this._actual.onFlushed()}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.viewModel.getLineCount()}getRealLineCount(){return this._context.viewModel.getLineCount()}getLineContent(e){return this._samplingState?this._context.viewModel.getLineContent(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineContent(e)}getLineMaxColumn(e){return this._samplingState?this._context.viewModel.getLineMaxColumn(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineMaxColumn(e)}getMinimapLinesRenderingData(e,t,i){if(this._samplingState){const n=[];for(let o=0,s=t-e+1;o{var t;return!(null===(t=e.options.minimap)||void 0===t?void 0:t.sectionHeaderStyle)}));if(this._samplingState){const e=[];for(const t of i){if(!t.options.minimap)continue;const i=t.range,n=this._samplingState.modelLineToMinimapLine(i.startLineNumber),o=this._samplingState.modelLineToMinimapLine(i.endLineNumber);e.push(new Ht.$l(new Q.e(n,i.startColumn,o,i.endColumn),t.options))}return e}return i}getSectionHeaderDecorationsInViewport(e,t){const i=this.options.minimapLineHeight,n=this.options.sectionHeaderFontSize/i;return e=Math.floor(Math.max(1,e-n)),this._getMinimapDecorationsInViewport(e,t).filter((e=>{var t;return!!(null===(t=e.options.minimap)||void 0===t?void 0:t.sectionHeaderStyle)}))}_getMinimapDecorationsInViewport(e,t){let i;if(this._samplingState){const n=this._samplingState.minimapLines[e-1],o=this._samplingState.minimapLines[t-1];i=new Q.e(n,1,o,this._context.viewModel.getLineMaxColumn(o))}else i=new Q.e(e,1,t,this._context.viewModel.getLineMaxColumn(t));return this._context.viewModel.getMinimapDecorationsInRange(i)}getSectionHeaderText(e,t){var i;const n=null===(i=e.options.minimap)||void 0===i?void 0:i.sectionHeaderText;if(!n)return null;const o=this._sectionHeaderCache.get(n);if(o)return o;const s=t(n);return this._sectionHeaderCache.set(n,s),s}getOptions(){return this._context.viewModel.model.getOptions()}revealLineNumber(e){this._samplingState&&(e=this._samplingState.minimapLines[e-1]),this._context.viewModel.revealRange("mouse",!1,new Q.e(e,1,e,1),1,0)}setScrollTop(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e},1)}}class ai extends c.JT{constructor(e,t){super(),this._renderDecorations=!1,this._gestureInProgress=!1,this._theme=e,this._model=t,this._lastRenderData=null,this._buffers=null,this._selectionColor=this._theme.getColor(Kt.ov3),this._domNode=(0,z.X)(document.createElement("div")),U.write(this._domNode,9),this._domNode.setClassName(this._getMinimapDomNodeClassName()),this._domNode.setPosition("absolute"),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._shadow=(0,z.X)(document.createElement("div")),this._shadow.setClassName("minimap-shadow-hidden"),this._domNode.appendChild(this._shadow),this._canvas=(0,z.X)(document.createElement("canvas")),this._canvas.setPosition("absolute"),this._canvas.setLeft(0),this._domNode.appendChild(this._canvas),this._decorationsCanvas=(0,z.X)(document.createElement("canvas")),this._decorationsCanvas.setPosition("absolute"),this._decorationsCanvas.setClassName("minimap-decorations-layer"),this._decorationsCanvas.setLeft(0),this._domNode.appendChild(this._decorationsCanvas),this._slider=(0,z.X)(document.createElement("div")),this._slider.setPosition("absolute"),this._slider.setClassName("minimap-slider"),this._slider.setLayerHinting(!0),this._slider.setContain("strict"),this._domNode.appendChild(this._slider),this._sliderHorizontal=(0,z.X)(document.createElement("div")),this._sliderHorizontal.setPosition("absolute"),this._sliderHorizontal.setClassName("minimap-slider-horizontal"),this._slider.appendChild(this._sliderHorizontal),this._applyLayout(),this._pointerDownListener=l.mu(this._domNode.domNode,l.tw.POINTER_DOWN,(e=>{e.preventDefault();if(0===this._model.options.renderMinimap)return;if(!this._lastRenderData)return;if("proportional"!==this._model.options.size){if(0===e.button&&this._lastRenderData){const t=l.i(this._slider.domNode),i=t.top+t.height/2;this._startSliderDragging(e,i,this._lastRenderData.renderedLayout)}return}const t=this._model.options.minimapLineHeight,i=this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*e.offsetY;let n=Math.floor(i/t)+this._lastRenderData.renderedLayout.startLineNumber-this._lastRenderData.renderedLayout.topPaddingLineCount;n=Math.min(n,this._model.getLineCount()),this._model.revealLineNumber(n)})),this._sliderPointerMoveMonitor=new zt.C,this._sliderPointerDownListener=l.mu(this._slider.domNode,l.tw.POINTER_DOWN,(e=>{e.preventDefault(),e.stopPropagation(),0===e.button&&this._lastRenderData&&this._startSliderDragging(e,e.pageY,this._lastRenderData.renderedLayout)})),this._gestureDisposable=ce.o.addTarget(this._domNode.domNode),this._sliderTouchStartListener=l.nm(this._domNode.domNode,ce.t.Start,(e=>{e.preventDefault(),e.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName("active",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(e))}),{passive:!1}),this._sliderTouchMoveListener=l.nm(this._domNode.domNode,ce.t.Change,(e=>{e.preventDefault(),e.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(e)}),{passive:!1}),this._sliderTouchEndListener=l.mu(this._domNode.domNode,ce.t.End,(e=>{e.preventDefault(),e.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName("active",!1)}))}_startSliderDragging(e,t,i){if(!e.target||!(e.target instanceof Element))return;const n=e.pageX;this._slider.toggleClassName("active",!0);const o=(e,o)=>{const s=l.i(this._domNode.domNode),r=Math.min(Math.abs(o-n),Math.abs(o-s.left),Math.abs(o-s.left-s.width));if(_.ED&&r>140)return void this._model.setScrollTop(i.scrollTop);const a=e-t;this._model.setScrollTop(i.getDesiredScrollTopFromDelta(a))};e.pageY!==t&&o(e.pageY,n),this._sliderPointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,(e=>o(e.pageY,e.pageX)),(()=>{this._slider.toggleClassName("active",!1)}))}scrollDueToTouchEvent(e){const t=this._domNode.domNode.getBoundingClientRect().top,i=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._model.setScrollTop(i)}dispose(){this._pointerDownListener.dispose(),this._sliderPointerMoveMonitor.dispose(),this._sliderPointerDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),super.dispose()}_getMinimapDomNodeClassName(){const e=["minimap"];return"always"===this._model.options.showSlider?e.push("slider-always"):e.push("slider-mouseover"),this._model.options.autohide&&e.push("autohide"),e.join(" ")}getDomNode(){return this._domNode}_applyLayout(){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)}_getBuffer(){return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new oi(this._canvas.domNode.getContext("2d"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}onDidChangeOptions(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}onSelectionChanged(){return this._renderDecorations=!0,!0}onDecorationsChanged(){return this._renderDecorations=!0,!0}onFlushed(){return this._lastRenderData=null,!0}onLinesChanged(e,t){return!!this._lastRenderData&&this._lastRenderData.onLinesChanged(e,t)}onLinesDeleted(e,t){var i;return null===(i=this._lastRenderData)||void 0===i||i.onLinesDeleted(e,t),!0}onLinesInserted(e,t){var i;return null===(i=this._lastRenderData)||void 0===i||i.onLinesInserted(e,t),!0}onScrollChanged(){return this._renderDecorations=!0,!0}onThemeChanged(){return this._selectionColor=this._theme.getColor(Kt.ov3),this._renderDecorations=!0,!0}onTokensChanged(e){return!!this._lastRenderData&&this._lastRenderData.onTokensChanged(e)}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(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");const t=ti.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),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(t.sliderHeight),this.renderDecorations(t),this._lastRenderData=this.renderLines(t)}renderDecorations(e){if(this._renderDecorations){this._renderDecorations=!1;const t=this._model.getSelections();t.sort(Q.e.compareRangesUsingStarts);const i=this._model.getMinimapDecorationsInViewport(e.startLineNumber,e.endLineNumber);i.sort(((e,t)=>(e.options.zIndex||0)-(t.options.zIndex||0)));const{canvasInnerWidth:n,canvasInnerHeight:o}=this._model.options,s=this._model.options.minimapLineHeight,r=this._model.options.minimapCharWidth,a=this._model.getOptions().tabSize,l=this._decorationsCanvas.domNode.getContext("2d");l.clearRect(0,0,n,o);const h=new li(e.startLineNumber,e.endLineNumber,!1);this._renderSelectionLineHighlights(l,t,h,e,s),this._renderDecorationsLineHighlights(l,i,h,e,s);const d=new li(e.startLineNumber,e.endLineNumber,null);this._renderSelectionsHighlights(l,t,d,e,s,a,r,n),this._renderDecorationsHighlights(l,i,d,e,s,a,r,n),this._renderSectionHeaders(e)}}_renderSelectionLineHighlights(e,t,i,n,o){if(!this._selectionColor||this._selectionColor.isTransparent())return;e.fillStyle=this._selectionColor.transparent(.5).toString();let s=0,r=0;for(const a of t){const t=n.intersectWithViewport(a);if(!t)continue;const[l,h]=t;for(let e=l;e<=h;e++)i.set(e,!0);const d=n.getYForLineNumber(l,o),c=n.getYForLineNumber(h,o);r>=d||(r>s&&e.fillRect(k.y0,s,e.canvas.width,r-s),s=d),r=c}r>s&&e.fillRect(k.y0,s,e.canvas.width,r-s)}_renderDecorationsLineHighlights(e,t,i,n,o){const s=new Map;for(let r=t.length-1;r>=0;r--){const a=t[r],l=a.options.minimap;if(!l||1!==l.position)continue;const h=n.intersectWithViewport(a.range);if(!h)continue;const[d,c]=h,u=l.getColor(this._theme.value);if(!u||u.isTransparent())continue;let g=s.get(u.toString());g||(g=u.transparent(.5).toString(),s.set(u.toString(),g)),e.fillStyle=g;for(let t=d;t<=c;t++){if(i.has(t))continue;i.set(t,!0);const s=n.getYForLineNumber(d,o);e.fillRect(k.y0,s,e.canvas.width,o)}}}_renderSelectionsHighlights(e,t,i,n,o,s,r,a){if(this._selectionColor&&!this._selectionColor.isTransparent())for(const l of t){const t=n.intersectWithViewport(l);if(!t)continue;const[h,d]=t;for(let c=h;c<=d;c++)this.renderDecorationOnLine(e,i,l,this._selectionColor,n,c,o,o,s,r,a)}}_renderDecorationsHighlights(e,t,i,n,o,s,r,a){for(const l of t){const t=l.options.minimap;if(!t)continue;const h=n.intersectWithViewport(l.range);if(!h)continue;const[d,c]=h,u=t.getColor(this._theme.value);if(u&&!u.isTransparent())for(let g=d;g<=c;g++)switch(t.position){case 1:this.renderDecorationOnLine(e,i,l.range,u,n,g,o,o,s,r,a);continue;case 2:{const t=n.getYForLineNumber(g,o),i=2;this.renderDecoration(e,u,i,t,2,o);continue}}}}renderDecorationOnLine(e,t,i,n,o,s,r,a,l,h,d){const c=o.getYForLineNumber(s,a);if(c+r<0||c>this._model.options.canvasInnerHeight)return;const{startLineNumber:u,endLineNumber:g}=i,m=u===s?i.startColumn:1,f=g===s?i.endColumn:this._model.getLineMaxColumn(s),p=this.getXOffsetForPosition(t,s,m,l,h,d),_=this.getXOffsetForPosition(t,s,f,l,h,d);this.renderDecoration(e,n,p,c,_-p,r)}getXOffsetForPosition(e,t,i,n,o,s){if(1===i)return k.y0;if((i-1)*o>=s)return s;let r=e.get(t);if(!r){const i=this._model.getLineContent(t);r=[k.y0];let a=k.y0;for(let e=1;e=s){r[e]=s;break}r[e]=l,a=l}e.set(t,r)}return i-1e.range.startLineNumber-t.range.startLineNumber));const g=ai._fitSectionHeader.bind(null,c,s-k.y0);for(const m of u){const r=e.getYForLineNumber(m.range.startLineNumber,i)+n,l=r-n,d=l+2,u=this._model.getSectionHeaderText(m,g);ai._renderSectionLabel(c,u,2===(null===(t=m.options.minimap)||void 0===t?void 0:t.sectionHeaderStyle),a,h,s,l,o,r,d)}}static _fitSectionHeader(e,t,i){if(!i)return i;const n=e.measureText(i).width,o=e.measureText("\u2026").width;if(n<=t||n<=o)return i;const s=i.length,r=n/i.length,a=Math.floor((t-o)/r)-1;let l=Math.ceil(a/2);for(;l>0&&/\s/.test(i[l-1]);)--l;return i.substring(0,l)+"\u2026"+i.substring(s-(a-l))}static _renderSectionLabel(e,t,i,n,o,s,r,a,l,h){t&&(e.fillStyle=n,e.fillRect(0,r,s,a),e.fillStyle=o,e.fillText(t,k.y0,l)),i&&(e.beginPath(),e.moveTo(0,h),e.lineTo(s,h),e.closePath(),e.stroke())}renderLines(e){const t=e.startLineNumber,i=e.endLineNumber,n=this._model.options.minimapLineHeight;if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){const t=this._lastRenderData._get();return new ni(e,t.imageData,t.lines)}const o=this._getBuffer();if(!o)return null;const[s,r,a]=ai._renderUntouchedLines(o,e.topPaddingLineCount,t,i,n,this._lastRenderData),l=this._model.getMinimapLinesRenderingData(t,i,a),h=this._model.getOptions().tabSize,d=this._model.options.defaultBackgroundColor,c=this._model.options.backgroundColor,u=this._model.options.foregroundAlpha,g=this._model.tokensColorTracker,m=g.backgroundIsLight(),f=this._model.options.renderMinimap,p=this._model.options.charRenderer(),_=this._model.options.fontScale,v=this._model.options.minimapCharWidth,b=(1===f?2:3)*_,C=n>b?Math.floor((n-b)/2):0,w=c.a/255,y=new Vt(Math.round((c.r-d.r)*w+d.r),Math.round((c.g-d.g)*w+d.g),Math.round((c.b-d.b)*w+d.b),255);let S=e.topPaddingLineCount*n;const L=[];for(let N=0,x=i-t+1;N=0&&t_)return;const r=f.charCodeAt(C);if(9===r){const e=c-(C+w)%c;w+=e-1,b+=e*s}else if(32===r)b+=s;else{const c=De.K7(r)?2:1;for(let u=0;u_)return}}}}}class li{constructor(e,t,i){this._startLineNumber=e,this._endLineNumber=t,this._defaultValue=i,this._values=[];for(let n=0,o=this._endLineNumber-this._startLineNumber+1;nthis._endLineNumber||(this._values[e-this._startLineNumber]=t)}get(e){return ethis._endLineNumber?this._defaultValue:this._values[e-this._startLineNumber]}}class hi extends K{constructor(e,t){super(e),this._viewDomNode=t;const i=this._context.configuration.options.get(145);this._widgets={},this._verticalScrollbarWidth=i.verticalScrollbarWidth,this._minimapWidth=i.minimap.minimapWidth,this._horizontalScrollbarHeight=i.horizontalScrollbarHeight,this._editorHeight=i.height,this._editorWidth=i.width,this._viewDomNodeRect={top:0,left:0,width:0,height:0},this._domNode=(0,z.X)(document.createElement("div")),U.write(this._domNode,4),this._domNode.setClassName("overlayWidgets"),this.overflowingOverlayWidgetsDomNode=(0,z.X)(document.createElement("div")),U.write(this.overflowingOverlayWidgetsDomNode,5),this.overflowingOverlayWidgetsDomNode.setClassName("overflowingOverlayWidgets")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(e){const t=this._context.configuration.options.get(145);return this._verticalScrollbarWidth=t.verticalScrollbarWidth,this._minimapWidth=t.minimap.minimapWidth,this._horizontalScrollbarHeight=t.horizontalScrollbarHeight,this._editorHeight=t.height,this._editorWidth=t.width,!0}addWidget(e){const t=(0,z.X)(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition("absolute"),t.setAttribute("widgetId",e.getId()),e.allowEditorOverflow?this.overflowingOverlayWidgetsDomNode.appendChild(t):this._domNode.appendChild(t),this.setShouldRender(),this._updateMaxMinWidth()}setWidgetPosition(e,t){const i=this._widgets[e.getId()];return i.preference===t?(this._updateMaxMinWidth(),!1):(i.preference=t,this.setShouldRender(),this._updateMaxMinWidth(),!0)}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const e=this._widgets[t].domNode.domNode;delete this._widgets[t],e.remove(),this.setShouldRender(),this._updateMaxMinWidth()}}_updateMaxMinWidth(){var e,t;let i=0;const n=Object.keys(this._widgets);for(let o=0,s=n.length;o=3){const t=Math.floor(n/3),i=Math.floor(n/3),o=n-t-i,s=e+t;return[[0,e,s,e,e+t+o,e,s,e],[0,t,o,t+o,i,t+o+i,o+i,t+o+i]]}if(2===i){const t=Math.floor(n/2),i=n-t;return[[0,e,e,e,e+t,e,e,e],[0,t,t,t,i,t+i,t+i,t+i]]}return[[0,e,e,e,e,e,e,e],[0,n,n,n,n,n,n,n]]}equals(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.cursorColorSingle===e.cursorColorSingle&&this.cursorColorPrimary===e.cursorColorPrimary&&this.cursorColorSecondary===e.cursorColorSecondary&&this.themeType===e.themeType&&Pe.Il.equals(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}}class ci extends K{constructor(e){super(e),this._actualShouldRender=0,this._renderedDecorations=[],this._renderedCursorPositions=[],this._domNode=(0,z.X)(document.createElement("canvas")),this._domNode.setClassName("decorationsOverviewRuler"),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._domNode.setAttribute("aria-hidden","true"),this._updateSettings(!1),this._tokensColorTrackerListener=Oe.RW.onDidChange((e=>{e.changedColorMap&&this._updateSettings(!0)})),this._cursorPositions=[{position:new G.L(1,1),color:this._settings.cursorColorSingle}]}dispose(){super.dispose(),this._tokensColorTrackerListener.dispose()}_updateSettings(e){const t=new di(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)}_markRenderingIsNeeded(){return this._actualShouldRender=2,!0}_markRenderingIsMaybeNeeded(){return this._actualShouldRender=1,!0}onConfigurationChanged(e){return!!this._updateSettings(!1)&&this._markRenderingIsNeeded()}onCursorStateChanged(e){this._cursorPositions=[];for(let t=0,i=e.selections.length;t1&&(n=0===t?this._settings.cursorColorPrimary:this._settings.cursorColorSecondary),this._cursorPositions.push({position:e.selections[t].getPosition(),color:n})}return this._cursorPositions.sort(((e,t)=>G.L.compare(e.position,t.position))),this._markRenderingIsMaybeNeeded()}onDecorationsChanged(e){return!!e.affectsOverviewRuler&&this._markRenderingIsMaybeNeeded()}onFlushed(e){return this._markRenderingIsNeeded()}onScrollChanged(e){return!!e.scrollHeightChanged&&this._markRenderingIsNeeded()}onZonesChanged(e){return this._markRenderingIsNeeded()}onThemeChanged(e){return!!this._updateSettings(!1)&&this._markRenderingIsNeeded()}getDomNode(){return this._domNode.domNode}prepareRender(e){}render(e){this._render(),this._actualShouldRender=0}_render(){const e=this._settings.backgroundColor;if(0===this._settings.overviewRulerLanes)return this._domNode.setBackgroundColor(e?Pe.Il.Format.CSS.formatHexA(e):""),void this._domNode.setDisplay("none");const t=this._context.viewModel.getAllOverviewRulerDecorations(this._context.theme);if(t.sort(Ht.SQ.compareByRenderingProps),1!==this._actualShouldRender||Ht.SQ.equalsArr(this._renderedDecorations,t)||(this._actualShouldRender=2),1!==this._actualShouldRender||(0,f.fS)(this._renderedCursorPositions,this._cursorPositions,((e,t)=>e.position.lineNumber===t.position.lineNumber&&e.color===t.color))||(this._actualShouldRender=2),1===this._actualShouldRender)return;this._renderedDecorations=t,this._renderedCursorPositions=this._cursorPositions,this._domNode.setDisplay("block");const i=this._settings.canvasWidth,n=this._settings.canvasHeight,o=this._settings.lineHeight,s=this._context.viewLayout,r=n/this._context.viewLayout.getScrollHeight(),a=6*this._settings.pixelRatio|0,l=a/2|0,h=this._domNode.domNode.getContext("2d");e?e.isOpaque()?(h.fillStyle=Pe.Il.Format.CSS.formatHexA(e),h.fillRect(0,0,i,n)):(h.clearRect(0,0,i,n),h.fillStyle=Pe.Il.Format.CSS.formatHexA(e),h.fillRect(0,0,i,n)):h.clearRect(0,0,i,n);const d=this._settings.x,c=this._settings.w;for(const u of t){const e=u.color,t=u.data;h.fillStyle=e;let i=0,g=0,m=0;for(let u=0,f=t.length/3;un&&(e=n-l),_=e-l,v=e+l}_>m+1||e!==i?(0!==u&&h.fillRect(d[i],g,c[i],m-g),i=e,g=_,m=v):v>m&&(m=v)}h.fillRect(d[i],g,c[i],m-g)}if(!this._settings.hideCursor){const e=2*this._settings.pixelRatio|0,t=e/2|0,i=this._settings.x[7],o=this._settings.w[7];let a=-100,l=-100,d=null;for(let c=0,u=this._cursorPositions.length;cn&&(m=n-t);const f=m-t,p=f+e;f>l+1||u!==d?(0!==c&&d&&h.fillRect(i,a,o,l-a),a=f,l=p):p>l&&(l=p),d=u,h.fillStyle=u}d&&h.fillRect(i,a,o,l-a)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(h.beginPath(),h.lineWidth=1,h.strokeStyle=this._settings.borderColor,h.moveTo(0,0),h.lineTo(0,n),h.stroke(),h.moveTo(0,0),h.lineTo(i,0),h.stroke())}}var ui,gi=i(70397);class mi extends H{constructor(e,t){super(),this._context=e;const i=this._context.configuration.options;this._domNode=(0,z.X)(document.createElement("canvas")),this._domNode.setClassName(t),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._zoneManager=new gi.Tj((e=>this._context.viewLayout.getVerticalOffsetForLineNumber(e))),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(i.get(67)),this._zoneManager.setPixelRatio(i.get(143)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return e.hasChanged(67)&&(this._zoneManager.setLineHeight(t.get(67)),this._render()),e.hasChanged(143)&&(this._zoneManager.setPixelRatio(t.get(143)),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}onFlushed(e){return this._render(),!0}onScrollChanged(e){return e.scrollHeightChanged&&(this._zoneManager.setOuterHeight(e.scrollHeight),this._render()),!0}onZonesChanged(e){return this._render(),!0}getDomNode(){return this._domNode.domNode}setLayout(e){this._domNode.setTop(e.top),this._domNode.setRight(e.right);let t=!1;t=this._zoneManager.setDOMWidth(e.width)||t,t=this._zoneManager.setDOMHeight(e.height)||t,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())}setZones(e){this._zoneManager.setZones(e),this._render()}_render(){if(0===this._zoneManager.getOuterHeight())return!1;const e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),i=this._zoneManager.resolveColorZones(),n=this._zoneManager.getId2Color(),o=this._domNode.domNode.getContext("2d");return o.clearRect(0,0,e,t),i.length>0&&this._renderOneLane(o,i,n,e),!0}_renderOneLane(e,t,i,n){let o=0,s=0,r=0;for(const a of t){const t=a.colorId,l=a.from,h=a.to;t!==o?(e.fillRect(0,s,n,r-s),o=t,e.fillStyle=i[o],s=l,r=h):r>=l?r=Math.max(r,h):(e.fillRect(0,s,n,r-s),s=l,r=h)}e.fillRect(0,s,n,r-s)}}class fi extends K{constructor(e){super(e),this.domNode=(0,z.X)(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("view-rulers"),this._renderedRulers=[];const t=this._context.configuration.options;this._rulers=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._rulers=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onScrollChanged(e){return e.scrollHeightChanged}prepareRender(e){}_ensureRulersCount(){const e=this._renderedRulers.length,t=this._rulers.length;if(e===t)return;if(e0;){const e=(0,z.X)(document.createElement("div"));e.setClassName("view-ruler"),e.setWidth(n),this.domNode.appendChild(e),this._renderedRulers.push(e),o--}return}let i=e-t;for(;i>0;){const e=this._renderedRulers.pop();this.domNode.removeChild(e),i--}}render(e){this._ensureRulersCount();for(let t=0,i=this._rulers.length;t0;return this._shouldShow!==e&&(this._shouldShow=e,!0)}getDomNode(){return this._domNode}_updateWidth(){const e=this._context.configuration.options.get(145);0===e.minimap.renderMinimap||e.minimap.minimapWidth>0&&0===e.minimap.minimapLeft?this._width=e.width:this._width=e.width-e.verticalScrollbarWidth}onConfigurationChanged(e){const t=this._context.configuration.options.get(103);return this._useShadows=t.useShadows,this._updateWidth(),this._updateShouldShow(),!0}onScrollChanged(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()}prepareRender(e){}render(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")}}class _i{constructor(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null}}class vi{constructor(e,t){this.lineNumber=e,this.ranges=t}}function bi(e){return new _i(e)}function Ci(e){return new vi(e.lineNumber,e.ranges.map(bi))}class wi extends xe{constructor(e){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=e;const t=this._context.configuration.options;this._roundedSelection=t.get(101),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._roundedSelection=t.get(101),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_visibleRangesHaveGaps(e){for(let t=0,i=e.length;t1)return!0}return!1}_enrichVisibleRangesWithStyle(e,t,i){const n=this._typicalHalfwidthCharacterWidth/4;let o=null,s=null;if(i&&i.length>0&&t.length>0){const n=t[0].lineNumber;if(n===e.startLineNumber)for(let e=0;!o&&e=0;e--)i[e].lineNumber===r&&(s=i[e].ranges[0]);o&&!o.startStyle&&(o=null),s&&!s.startStyle&&(s=null)}for(let r=0,a=t.length;r0){const e=t[r-1].ranges[0].left,o=t[r-1].ranges[0].left+t[r-1].ranges[0].width;yi(i-e)e&&(h.top=1),yi(l-o)'}_actualRenderOneSelection(e,t,i,n){if(0===n.length)return;const o=!!n[0].ranges[0].startStyle,s=n[0].lineNumber,r=n[n.length-1].lineNumber;for(let a=0,l=n.length;a1,r)}this._previousFrameVisibleRangesWithStyle=o,this._renderResult=t.map((e=>{let[t,i]=e;return t+i}))}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}function yi(e){return e<0?-e:e}wi.SELECTION_CLASS_NAME="selected-text",wi.SELECTION_TOP_LEFT="top-left-radius",wi.SELECTION_BOTTOM_LEFT="bottom-left-radius",wi.SELECTION_TOP_RIGHT="top-right-radius",wi.SELECTION_BOTTOM_RIGHT="bottom-right-radius",wi.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background",wi.ROUNDED_PIECE_WIDTH=10,(0,Ee.Ic)(((e,t)=>{const i=e.getColor(Kt.yb5);i&&!i.isTransparent()&&t.addRule(".monaco-editor .view-line span.inline-selected-text { color: ".concat(i,"; }"))}));class Si{constructor(e,t,i,n,o,s,r){this.top=e,this.left=t,this.paddingLeft=i,this.width=n,this.height=o,this.textContent=s,this.textContentClassName=r}}!function(e){e[e.Single=0]="Single",e[e.MultiPrimary=1]="MultiPrimary",e[e.MultiSecondary=2]="MultiSecondary"}(ui||(ui={}));class Li{constructor(e,t){this._context=e;const i=this._context.configuration.options,n=i.get(50);this._cursorStyle=i.get(28),this._lineHeight=i.get(67),this._typicalHalfwidthCharacterWidth=n.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(i.get(31),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=(0,z.X)(document.createElement("div")),this._domNode.setClassName("cursor ".concat(Re)),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),(0,g.N)(this._domNode,n),this._domNode.setDisplay("none"),this._position=new G.L(1,1),this._pluralityClass="",this.setPlurality(t),this._lastRenderedContent="",this._renderData=null}getDomNode(){return this._domNode}getPosition(){return this._position}setPlurality(e){switch(e){default:case ui.Single:this._pluralityClass="";break;case ui.MultiPrimary:this._pluralityClass="cursor-primary";break;case ui.MultiSecondary:this._pluralityClass="cursor-secondary"}}show(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}hide(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(50);return this._cursorStyle=t.get(28),this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(31),this._typicalHalfwidthCharacterWidth),(0,g.N)(this._domNode,i),!0}onCursorPositionChanged(e,t){return this._domNode.domNode.style.transitionProperty=t?"none":"",this._position=e,!0}_getGraphemeAwarePosition(){const{lineNumber:e,column:t}=this._position,i=this._context.viewModel.getLineContent(e),[n,o]=De.J_(i,t-1);return[new G.L(e,n+1),i.substring(n,o)]}_prepareRender(e){let t="",i="";const[n,o]=this._getGraphemeAwarePosition();if(this._cursorStyle===k.d2.Line||this._cursorStyle===k.d2.LineThin){const s=e.visibleRangeForPosition(n);if(!s||s.outsideRenderedLine)return null;const r=l.Jj(this._domNode.domNode);let a;this._cursorStyle===k.d2.Line?(a=l.Uh(r,this._lineCursorWidth>0?this._lineCursorWidth:2),a>2&&(t=o,i=this._getTokenClassName(n))):a=l.Uh(r,1);let h=s.left,d=0;a>=2&&h>=1&&(d=1,h-=d);const c=e.getVerticalOffsetForLineNumber(n.lineNumber)-e.bigNumbersDelta;return new Si(c,h,d,a,this._lineHeight,t,i)}const s=e.linesVisibleRangesForRange(new Q.e(n.lineNumber,n.column,n.lineNumber,n.column+o.length),!1);if(!s||0===s.length)return null;const r=s[0];if(r.outsideRenderedLine||0===r.ranges.length)return null;const a=r.ranges[0],h="\t"===o||a.width<1?this._typicalHalfwidthCharacterWidth:a.width;this._cursorStyle===k.d2.Block&&(t=o,i=this._getTokenClassName(n));let d=e.getVerticalOffsetForLineNumber(n.lineNumber)-e.bigNumbersDelta,c=this._lineHeight;return this._cursorStyle!==k.d2.Underline&&this._cursorStyle!==k.d2.UnderlineThin||(d+=this._lineHeight-2,c=2),new Si(d,a.left,0,h,c,t,i)}_getTokenClassName(e){const t=this._context.viewModel.getViewLineData(e.lineNumber),i=t.tokens.findTokenIndexAtOffset(e.column-1);return t.tokens.getClassName(i)}prepareRender(e){this._renderData=this._prepareRender(e)}render(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(this._pluralityClass," ").concat(Re," ").concat(this._renderData.textContentClassName)),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setPaddingLeft(this._renderData.paddingLeft),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)}}class ki extends K{constructor(e){super(e);const t=this._context.configuration.options;this._readOnly=t.get(91),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new Li(this._context,ui.Single),this._secondaryCursors=[],this._renderData=[],this._domNode=(0,z.X)(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._updateDomClassName(),this._domNode.appendChild(this._primaryCursor.getDomNode()),this._startCursorBlinkAnimation=new Tt._F,this._cursorFlatBlinkInterval=new l.ne,this._blinkingEnabled=!1,this._editorHasFocus=!1,this._updateBlinking()}dispose(){super.dispose(),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()}getDomNode(){return this._domNode}onCompositionStart(e){return this._isComposingInput=!0,this._updateBlinking(),!0}onCompositionEnd(e){return this._isComposingInput=!1,this._updateBlinking(),!0}onConfigurationChanged(e){const t=this._context.configuration.options;this._readOnly=t.get(91),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e);for(let i=0,n=this._secondaryCursors.length;it.length){const e=this._secondaryCursors.length-t.length;for(let t=0;t{for(let i=0,n=e.ranges.length;i{this._isVisible?this._hide():this._show()}),ki.BLINK_INTERVAL,(0,l.Jj)(this._domNode.domNode)):this._startCursorBlinkAnimation.setIfNotSet((()=>{this._blinkingEnabled=!0,this._updateDomClassName()}),ki.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let e="cursors-layer";switch(this._selectionIsEmpty||(e+=" has-selection"),this._cursorStyle){case k.d2.Line:e+=" cursor-line-style";break;case k.d2.Block:e+=" cursor-block-style";break;case k.d2.Underline:e+=" cursor-underline-style";break;case k.d2.LineThin:e+=" cursor-line-thin-style";break;case k.d2.BlockOutline:e+=" cursor-block-outline-style";break;case k.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"on"!==this._cursorSmoothCaretAnimation&&"explicit"!==this._cursorSmoothCaretAnimation||(e+=" cursor-smooth-caret-animation"),e}_show(){this._primaryCursor.show();for(let e=0,t=this._secondaryCursors.length;e{const i=[{class:".cursor",foreground:Ie.n0,background:Ie.fY},{class:".cursor-primary",foreground:Ie.jD,background:Ie.s2},{class:".cursor-secondary",foreground:Ie.x_,background:Ie.P0}];for(const n of i){const i=e.getColor(n.foreground);if(i){let o=e.getColor(n.background);o||(o=i.opposite()),t.addRule(".monaco-editor .cursors-layer ".concat(n.class," { background-color: ").concat(i,"; border-color: ").concat(i,"; color: ").concat(o,"; }")),(0,ct.c3)(e.type)&&t.addRule(".monaco-editor .cursors-layer.has-selection ".concat(n.class," { border-left: 1px solid ").concat(o,"; border-right: 1px solid ").concat(o,"; }"))}}}));const Di=()=>{throw new Error("Invalid change accessor")};class Ni extends K{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(145);this._lineHeight=t.get(67),this._contentWidth=i.contentWidth,this._contentLeft=i.contentLeft,this.domNode=(0,z.X)(document.createElement("div")),this.domNode.setClassName("view-zones"),this.domNode.setPosition("absolute"),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.marginDomNode=(0,z.X)(document.createElement("div")),this.marginDomNode.setClassName("margin-view-zones"),this.marginDomNode.setPosition("absolute"),this.marginDomNode.setAttribute("role","presentation"),this.marginDomNode.setAttribute("aria-hidden","true"),this._zones={}}dispose(){super.dispose(),this._zones={}}_recomputeWhitespacesProps(){const e=this._context.viewLayout.getWhitespaces(),t=new Map;for(const n of e)t.set(n.id,n);let i=!1;return this._context.viewModel.changeWhitespace((e=>{const n=Object.keys(this._zones);for(let o=0,s=n.length;o{const n={addZone:e=>(t=!0,this._addZone(i,e)),removeZone:e=>{e&&(t=this._removeZone(i,e)||t)},layoutZone:e=>{e&&(t=this._layoutZone(i,e)||t)}};!function(e,t){try{return e(t)}catch(i){(0,h.dL)(i)}}(e,n),n.addZone=Di,n.removeZone=Di,n.layoutZone=Di})),t}_addZone(e,t){const i=this._computeWhitespaceProps(t),n={whitespaceId:e.insertWhitespace(i.afterViewLineNumber,this._getZoneOrdinal(t),i.heightInPx,i.minWidthInPx),delegate:t,isInHiddenArea:i.isInHiddenArea,isVisible:!1,domNode:(0,z.X)(t.domNode),marginDomNode:t.marginDomNode?(0,z.X)(t.marginDomNode):null};return this._safeCallOnComputedHeight(n.delegate,i.heightInPx),n.domNode.setPosition("absolute"),n.domNode.domNode.style.width="100%",n.domNode.setDisplay("none"),n.domNode.setAttribute("monaco-view-zone",n.whitespaceId),this.domNode.appendChild(n.domNode),n.marginDomNode&&(n.marginDomNode.setPosition("absolute"),n.marginDomNode.domNode.style.width="100%",n.marginDomNode.setDisplay("none"),n.marginDomNode.setAttribute("monaco-view-zone",n.whitespaceId),this.marginDomNode.appendChild(n.marginDomNode)),this._zones[n.whitespaceId]=n,this.setShouldRender(),n.whitespaceId}_removeZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t];return delete this._zones[t],e.removeWhitespace(i.whitespaceId),i.domNode.removeAttribute("monaco-visible-view-zone"),i.domNode.removeAttribute("monaco-view-zone"),i.domNode.domNode.parentNode.removeChild(i.domNode.domNode),i.marginDomNode&&(i.marginDomNode.removeAttribute("monaco-visible-view-zone"),i.marginDomNode.removeAttribute("monaco-view-zone"),i.marginDomNode.domNode.parentNode.removeChild(i.marginDomNode.domNode)),this.setShouldRender(),!0}return!1}_layoutZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t],n=this._computeWhitespaceProps(i.delegate);return i.isInHiddenArea=n.isInHiddenArea,e.changeOneWhitespace(i.whitespaceId,n.afterViewLineNumber,n.heightInPx),this._safeCallOnComputedHeight(i.delegate,n.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(e){if(this._zones.hasOwnProperty(e)){const t=this._zones[e];return Boolean(t.delegate.suppressMouseDown)}return!1}_heightInPixels(e){return"number"===typeof e.heightInPx?e.heightInPx:"number"===typeof e.heightInLines?this._lineHeight*e.heightInLines:this._lineHeight}_minWidthInPixels(e){return"number"===typeof e.minWidthInPx?e.minWidthInPx:0}_safeCallOnComputedHeight(e,t){if("function"===typeof e.onComputedHeight)try{e.onComputedHeight(t)}catch(i){(0,h.dL)(i)}}_safeCallOnDomNodeTop(e,t){if("function"===typeof e.onDomNodeTop)try{e.onDomNodeTop(t)}catch(i){(0,h.dL)(i)}}prepareRender(e){}render(e){const t=e.viewportData.whitespaceViewportData,i={};let n=!1;for(const s of t)this._zones[s.id].isInHiddenArea||(i[s.id]=s,n=!0);const o=Object.keys(this._zones);for(let s=0,r=o.length;ss)continue;const e=t.startLineNumber===s?t.startColumn:i.minColumn,o=t.endLineNumber===s?t.endColumn:i.maxColumn;e=S.endOffset&&(y++,S=i&&i[y]),9!==n&&32!==n)continue;if(c&&!C&&k<=v)continue;if(d&&k>=w&&k<=v&&32===n){const e=k-1>=0?r.charCodeAt(k-1):0,t=k+1=0?r.charCodeAt(k-1):0;if(32===n&&32!==e&&9!==e)continue}if(i&&(!S||S.startOffset>k||S.endOffset<=k))continue;const o=e.visibleRangeForPosition(new G.L(t,k+1));o&&(s?(L=Math.max(L,o.left),b+=9===n?this._renderArrow(u,f,o.left):'')):b+=9===n?'
    ').concat(_?String.fromCharCode(65515):String.fromCharCode(8594),"
    "):'
    ').concat(String.fromCharCode(p),"
    "))}return s?(L=Math.round(L+f),'')+b+""):b}_renderArrow(e,t,i){const n=e/2,o=i,s={x:0,y:t/7/2},r={x:.8*t,y:s.y},a={x:r.x-.2*r.x,y:r.y+.2*r.x},l={x:a.x+.1*r.x,y:a.y+.1*r.x},h={x:l.x+.35*r.x,y:l.y-.35*r.x},d=[s,r,a,l,h,{x:h.x,y:-h.y},{x:l.x,y:-l.y},{x:a.x,y:-a.y},{x:r.x,y:-r.y},{x:s.x,y:-s.y}].map((e=>"".concat((o+e.x).toFixed(2)," ").concat((n+e.y).toFixed(2)))).join(" L ");return'')}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}class Ii{constructor(e){const t=e.options,i=t.get(50),n=t.get(38);"off"===n?(this.renderWhitespace="none",this.renderWithSVG=!1):"svg"===n?(this.renderWhitespace=t.get(99),this.renderWithSVG=!0):(this.renderWhitespace=t.get(99),this.renderWithSVG=!1),this.spaceWidth=i.spaceWidth,this.middotWidth=i.middotWidth,this.wsmiddotWidth=i.wsmiddotWidth,this.canUseHalfwidthRightwardsArrow=i.canUseHalfwidthRightwardsArrow,this.lineHeight=t.get(67),this.stopRenderingLineAfter=t.get(117)}equals(e){return this.renderWhitespace===e.renderWhitespace&&this.renderWithSVG===e.renderWithSVG&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter}}class Ti{constructor(e,t,i,n){this.selections=e,this.startLineNumber=0|t.startLineNumber,this.endLineNumber=0|t.endLineNumber,this.relativeVerticalOffset=t.relativeVerticalOffset,this.bigNumbersDelta=0|t.bigNumbersDelta,this.lineHeight=0|t.lineHeight,this.whitespaceViewportData=i,this._model=n,this.visibleRange=new Q.e(t.startLineNumber,this._model.getLineMinColumn(t.startLineNumber),t.endLineNumber,this._model.getLineMaxColumn(t.endLineNumber))}getViewLineRenderingData(e){return this._model.getViewportViewLineRenderingData(this.visibleRange,e)}getDecorationsInViewport(){return this._model.getDecorationsInViewport(this.visibleRange)}}class Mi{get type(){return this._theme.type}get value(){return this._theme}constructor(e){this._theme=e}update(e){this._theme=e}getColor(e){return this._theme.getColor(e)}}class Ai{constructor(e,t,i){this.configuration=e,this.theme=new Mi(t),this.viewModel=i,this.viewLayout=i.viewLayout}addEventHandler(e){this.viewModel.addViewEventHandler(e)}removeEventHandler(e){this.viewModel.removeViewEventHandler(e)}}var Ri=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Oi=function(e,t){return function(i,n){t(i,n,e)}};let Pi=class extends H{constructor(e,t,i,n,o,s,r){super(),this._instantiationService=r,this._shouldRecomputeGlyphMarginLanes=!1,this._selections=[new me.Y(1,1,1,1)],this._renderAnimationFrame=null;const a=new Ge(t,n,o,e);this._context=new Ai(t,i,n),this._context.addEventHandler(this),this._viewParts=[],this._textAreaHandler=this._instantiationService.createInstance(Ue,this._context,a,this._createTextAreaHandlerHelper()),this._viewParts.push(this._textAreaHandler),this._linesContent=(0,z.X)(document.createElement("div")),this._linesContent.setClassName("lines-content monaco-editor-background"),this._linesContent.setPosition("absolute"),this.domNode=(0,z.X)(document.createElement("div")),this.domNode.setClassName(this._getEditorClassName()),this.domNode.setAttribute("role","code"),this._overflowGuardContainer=(0,z.X)(document.createElement("div")),U.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName("overflow-guard"),this._scrollbar=new pt(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar),this._viewLines=new Pt(this._context,this._linesContent),this._viewZones=new Ni(this._context),this._viewParts.push(this._viewZones);const l=new ci(this._context);this._viewParts.push(l);const h=new pi(this._context);this._viewParts.push(h);const d=new tt(this._context);this._viewParts.push(d),d.addDynamicOverlay(new gt(this._context)),d.addDynamicOverlay(new wi(this._context)),d.addDynamicOverlay(new Et(this._context)),d.addDynamicOverlay(new ft(this._context)),d.addDynamicOverlay(new Ei(this._context));const c=new it(this._context);this._viewParts.push(c),c.addDynamicOverlay(new mt(this._context)),c.addDynamicOverlay(new Bt(this._context)),c.addDynamicOverlay(new Ft(this._context)),c.addDynamicOverlay(new Te(this._context)),this._glyphMarginWidgets=new yt(this._context),this._viewParts.push(this._glyphMarginWidgets);const u=new Me(this._context);u.getDomNode().appendChild(this._viewZones.marginDomNode),u.getDomNode().appendChild(c.getDomNode()),u.getDomNode().appendChild(this._glyphMarginWidgets.domNode),this._viewParts.push(u),this._contentWidgets=new st(this._context,this.domNode),this._viewParts.push(this._contentWidgets),this._viewCursors=new ki(this._context),this._viewParts.push(this._viewCursors),this._overlayWidgets=new hi(this._context,this.domNode),this._viewParts.push(this._overlayWidgets);const g=new fi(this._context);this._viewParts.push(g);const m=new ot(this._context);this._viewParts.push(m);const f=new ri(this._context);if(this._viewParts.push(f),l){const e=this._scrollbar.getOverviewRulerLayoutInfo();e.parent.insertBefore(l.getDomNode(),e.insertBefore)}this._linesContent.appendChild(d.getDomNode()),this._linesContent.appendChild(g.domNode),this._linesContent.appendChild(this._viewZones.domNode),this._linesContent.appendChild(this._viewLines.getDomNode()),this._linesContent.appendChild(this._contentWidgets.domNode),this._linesContent.appendChild(this._viewCursors.getDomNode()),this._overflowGuardContainer.appendChild(u.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._overflowGuardContainer.appendChild(h.getDomNode()),this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(f.getDomNode()),this._overflowGuardContainer.appendChild(m.domNode),this.domNode.appendChild(this._overflowGuardContainer),s?(s.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode),s.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode)):(this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this.domNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode)),this._applyLayout(),this._pointerHandler=this._register(new Le(this._context,a,this._createPointerHandlerHelper()))}_computeGlyphMarginLanes(){const e=this._context.viewModel.model,t=this._context.viewModel.glyphLanes;let i=[],n=0;i=i.concat(e.getAllMarginDecorations().map((e=>{var t,i,o;const s=null!==(i=null===(t=e.options.glyphMargin)||void 0===t?void 0:t.position)&&void 0!==i?i:_t.U.Center;return n=Math.max(n,e.range.endLineNumber),{range:e.range,lane:s,persist:null===(o=e.options.glyphMargin)||void 0===o?void 0:o.persistLane}}))),i=i.concat(this._glyphMarginWidgets.getWidgets().map((t=>{const i=e.validateRange(t.preference.range);return n=Math.max(n,i.endLineNumber),{range:i,lane:t.preference.lane}}))),i.sort(((e,t)=>Q.e.compareRangesUsingStarts(e.range,t.range))),t.reset(n);for(const o of i)t.push(o.lane,o.range,o.persist);return t}_createPointerHandlerHelper(){return{viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,viewLinesDomNode:this._viewLines.getDomNode().domNode,focusTextArea:()=>{this.focus()},dispatchTextAreaEvent:e=>{this._textAreaHandler.textArea.domNode.dispatchEvent(e)},getLastRenderData:()=>{const e=this._viewCursors.getLastRenderData()||[],t=this._textAreaHandler.getLastRenderData();return new ee(e,t)},renderNow:()=>{this.render(!0,!1)},shouldSuppressMouseDownOnViewZone:e=>this._viewZones.shouldSuppressMouseDownOnViewZone(e),shouldSuppressMouseDownOnWidget:e=>this._contentWidgets.shouldSuppressMouseDownOnWidget(e),getPositionFromDOMInfo:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getPositionFromDOMInfo(e,t)),visibleRangeForPosition:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(new G.L(e,t))),getLineWidth:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getLineWidth(e))}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(e))}}_applyLayout(){const e=this._context.configuration.options.get(145);this.domNode.setWidth(e.width),this.domNode.setHeight(e.height),this._overflowGuardContainer.setWidth(e.width),this._overflowGuardContainer.setHeight(e.height),this._linesContent.setWidth(16777216),this._linesContent.setHeight(16777216)}_getEditorClassName(){const e=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(142)+" "+(0,Ee.m6)(this._context.theme.type)+e}handleEvents(e){super.handleEvents(e),this._scheduleRender()}onConfigurationChanged(e){return this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}onCursorStateChanged(e){return this._selections=e.selections,!1}onDecorationsChanged(e){return e.affectsGlyphMargin&&(this._shouldRecomputeGlyphMarginLanes=!0),!1}onFocusChanged(e){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(e){return this._context.theme.update(e.theme),this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){null!==this._renderAnimationFrame&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose();for(const e of this._viewParts)e.dispose();super.dispose()}_scheduleRender(){if(this._store.isDisposed)throw new h.he;if(null===this._renderAnimationFrame){const e=this._createCoordinatedRendering();this._renderAnimationFrame=Bi.INSTANCE.scheduleCoordinatedRendering({window:l.Jj(this.domNode.domNode),prepareRenderText:()=>{if(this._store.isDisposed)throw new h.he;try{return e.prepareRenderText()}finally{this._renderAnimationFrame=null}},renderText:()=>{if(this._store.isDisposed)throw new h.he;return e.renderText()},prepareRender:(t,i)=>{if(this._store.isDisposed)throw new h.he;return e.prepareRender(t,i)},render:(t,i)=>{if(this._store.isDisposed)throw new h.he;return e.render(t,i)}})}}_flushAccumulatedAndRenderNow(){const e=this._createCoordinatedRendering();Fi((()=>e.prepareRenderText()));const t=Fi((()=>e.renderText()));if(t){const[i,n]=t;Fi((()=>e.prepareRender(i,n))),Fi((()=>e.render(i,n)))}}_getViewPartsToRender(){const e=[];let t=0;for(const i of this._viewParts)i.shouldRender()&&(e[t++]=i);return e}_createCoordinatedRendering(){return{prepareRenderText:()=>{if(this._shouldRecomputeGlyphMarginLanes){this._shouldRecomputeGlyphMarginLanes=!1;const e=this._computeGlyphMarginLanes();this._context.configuration.setGlyphMarginDecorationLaneCount(e.requiredLanes)}V.B.onRenderStart()},renderText:()=>{if(!this.domNode.domNode.isConnected)return null;let e=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&0===e.length)return null;const t=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);const i=new Ti(this._selections,t,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);return this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(i),this._viewLines.shouldRender()&&(this._viewLines.renderText(i),this._viewLines.onDidRender(),e=this._getViewPartsToRender()),[e,new je.xh(this._context.viewLayout,i,this._viewLines)]},prepareRender:(e,t)=>{for(const i of e)i.prepareRender(t)},render:(e,t)=>{for(const i of e)i.render(t),i.onDidRender()}}}delegateVerticalScrollbarPointerDown(e){this._scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this._scrollbar.delegateScrollFromMouseWheelEvent(e)}restoreState(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft},1),this._context.viewModel.visibleLinesStabilized()}getOffsetForColumn(e,t){const i=this._context.viewModel.model.validatePosition({lineNumber:e,column:t}),n=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i);this._flushAccumulatedAndRenderNow();const o=this._viewLines.visibleRangeForPosition(new G.L(n.lineNumber,n.column));return o?o.left:-1}getTargetAtClientPoint(e,t){const i=this._pointerHandler.getTargetAtClientPoint(e,t);return i?nt.convertViewToModelMouseTarget(i,this._context.viewModel.coordinatesConverter):null}createOverviewRuler(e){return new mi(this._context,e)}change(e){this._viewZones.changeViewZones(e),this._scheduleRender()}render(e,t){if(t){this._viewLines.forceShouldRender();for(const e of this._viewParts)e.forceShouldRender()}e?this._flushAccumulatedAndRenderNow():this._scheduleRender()}writeScreenReaderContent(e){this._textAreaHandler.writeScreenReaderContent(e)}focus(){this._textAreaHandler.focusTextArea()}isFocused(){return this._textAreaHandler.isFocused()}setAriaOptions(e){this._textAreaHandler.setAriaOptions(e)}addContentWidget(e){this._contentWidgets.addWidget(e.widget),this.layoutContentWidget(e),this._scheduleRender()}layoutContentWidget(e){var t,i,n,o,s,r,a,l;this._contentWidgets.setWidgetPosition(e.widget,null!==(i=null===(t=e.position)||void 0===t?void 0:t.position)&&void 0!==i?i:null,null!==(o=null===(n=e.position)||void 0===n?void 0:n.secondaryPosition)&&void 0!==o?o:null,null!==(r=null===(s=e.position)||void 0===s?void 0:s.preference)&&void 0!==r?r:null,null!==(l=null===(a=e.position)||void 0===a?void 0:a.positionAffinity)&&void 0!==l?l:null),this._scheduleRender()}removeContentWidget(e){this._contentWidgets.removeWidget(e.widget),this._scheduleRender()}addOverlayWidget(e){this._overlayWidgets.addWidget(e.widget),this.layoutOverlayWidget(e),this._scheduleRender()}layoutOverlayWidget(e){const t=e.position?e.position.preference:null;this._overlayWidgets.setWidgetPosition(e.widget,t)&&this._scheduleRender()}removeOverlayWidget(e){this._overlayWidgets.removeWidget(e.widget),this._scheduleRender()}addGlyphMarginWidget(e){this._glyphMarginWidgets.addWidget(e.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}layoutGlyphMarginWidget(e){const t=e.position;this._glyphMarginWidgets.setWidgetPosition(e.widget,t)&&(this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender())}removeGlyphMarginWidget(e){this._glyphMarginWidgets.removeWidget(e.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}};function Fi(e){try{return e()}catch(t){return(0,h.dL)(t),null}}Pi=Ri([Oi(6,ze.TG)],Pi);class Bi{constructor(){this._coordinatedRenderings=[],this._animationFrameRunners=new Map}scheduleCoordinatedRendering(e){return this._coordinatedRenderings.push(e),this._scheduleRender(e.window),{dispose:()=>{const t=this._coordinatedRenderings.indexOf(e);if(-1!==t&&(this._coordinatedRenderings.splice(t,1),0===this._coordinatedRenderings.length)){for(const[e,t]of this._animationFrameRunners)t.dispose();this._animationFrameRunners.clear()}}}}_scheduleRender(e){if(!this._animationFrameRunners.has(e)){const t=()=>{this._animationFrameRunners.delete(e),this._onRenderScheduled()};this._animationFrameRunners.set(e,l.lI(e,t,100))}}_onRenderScheduled(){const e=this._coordinatedRenderings.slice(0);this._coordinatedRenderings=[];for(const i of e)Fi((()=>i.prepareRenderText()));const t=[];for(let i=0,n=e.length;in.renderText()))}for(let i=0,n=e.length;in.prepareRender(s,r)))}for(let i=0,n=e.length;in.render(s,r)))}}}Bi.INSTANCE=new Bi;var zi=i(39880);class Vi{constructor(e,t,i,n,o){this.injectionOffsets=e,this.injectionOptions=t,this.breakOffsets=i,this.breakOffsetsVisibleColumn=n,this.wrappedTextIndentLength=o}getOutputLineCount(){return this.breakOffsets.length}getMinOutputOffset(e){return e>0?this.wrappedTextIndentLength:0}getLineLength(e){const t=e>0?this.breakOffsets[e-1]:0;let i=this.breakOffsets[e]-t;return e>0&&(i+=this.wrappedTextIndentLength),i}getMaxOutputOffset(e){return this.getLineLength(e)}translateToInputOffset(e,t){e>0&&(t=Math.max(0,t-this.wrappedTextIndentLength));let i=0===e?t:this.breakOffsets[e-1]+t;if(null!==this.injectionOffsets)for(let n=0;nthis.injectionOffsets[n];n++)i1&&void 0!==arguments[1]?arguments[1]:2,i=e;if(null!==this.injectionOffsets)for(let n=0;n1&&void 0!==arguments[1]?arguments[1]:2,i=0,n=this.breakOffsets.length-1,o=0,s=0;for(;i<=n;){o=i+(n-i)/2|0;const r=this.breakOffsets[o];if(s=o>0?this.breakOffsets[o-1]:0,0===t)if(e<=s)n=o-1;else{if(!(e>r))break;i=o+1}else if(e=r))break;i=o+1}}let r=e-s;return o>0&&(r+=this.wrappedTextIndentLength),new Ki(o,r)}normalizeOutputPosition(e,t,i){if(null!==this.injectionOffsets){const n=this.outputPositionToOffsetInInputWithInjections(e,t),o=this.normalizeOffsetInInputWithInjectionsAroundInjections(n,i);if(o!==n)return this.offsetInInputWithInjectionsToOutputPosition(o,i)}if(0===i){if(e>0&&t===this.getMinOutputOffset(e))return new Ki(e-1,this.getMaxOutputOffset(e-1))}else if(1===i){if(e0&&(t=Math.max(0,t-this.wrappedTextIndentLength));return(e>0?this.breakOffsets[e-1]:0)+t}normalizeOffsetInInputWithInjectionsAroundInjections(e,t){const i=this.getInjectedTextAtOffset(e);if(!i)return e;if(2===t){if(e===i.offsetInInputWithInjections+i.length&&Wi(this.injectionOptions[i.injectedTextIndex].cursorStops))return i.offsetInInputWithInjections+i.length;{let e=i.offsetInInputWithInjections;if(Hi(this.injectionOptions[i.injectedTextIndex].cursorStops))return e;let t=i.injectedTextIndex-1;for(;t>=0&&this.injectionOffsets[t]===this.injectionOffsets[i.injectedTextIndex]&&!Wi(this.injectionOptions[t].cursorStops)&&(e-=this.injectionOptions[t].content.length,!Hi(this.injectionOptions[t].cursorStops));)t--;return e}}if(1===t||4===t){let e=i.offsetInInputWithInjections+i.length,t=i.injectedTextIndex;for(;t+1=0&&this.injectionOffsets[t-1]===this.injectionOffsets[t];)e-=this.injectionOptions[t-1].content.length,t--;return e}(0,zi.vE)(t)}getInjectedText(e,t){const i=this.outputPositionToOffsetInInputWithInjections(e,t),n=this.getInjectedTextAtOffset(i);return n?{options:this.injectionOptions[n.injectedTextIndex]}:null}getInjectedTextAtOffset(e){const t=this.injectionOffsets,i=this.injectionOptions;if(null!==t){let n=0;for(let o=0;oe)break;if(e<=a)return{injectedTextIndex:o,offsetInInputWithInjections:r,length:s};n+=s}}}}function Wi(e){return null===e||void 0===e||(e===_t.RM.Right||e===_t.RM.Both)}function Hi(e){return null===e||void 0===e||(e===_t.RM.Left||e===_t.RM.Both)}class Ki{constructor(e,t){this.outputLineIndex=e,this.outputOffset=t}toString(){return"".concat(this.outputLineIndex,":").concat(this.outputOffset)}toPosition(e){return new G.L(e+this.outputLineIndex,this.outputOffset+1)}}var Ui=i(65497);const ji=(0,Qe.Z)("domLineBreaksComputer",{createHTML:e=>e});class qi{static create(e){return new qi(new WeakRef(e))}constructor(e){this.targetWindow=e}createLineBreaksComputer(e,t,i,n,o){const s=[],r=[];return{addRequest:(e,t,i)=>{s.push(e),r.push(t)},finalize:()=>function(e,t,i,n,o,s,r,a){var l;function h(e){const i=a[e];if(i){const n=Ui.gk.applyInjectedText(t[e],i),o=i.map((e=>e.options)),s=i.map((e=>e.column-1));return new Vi(s,o,[n.length],[],0)}return null}if(-1===o){const e=[];for(let i=0,n=t.length;id?(o=0,r=0):l=d-t}const h=e.substr(o),c=Gi(h,r,n,l,p,m);_[g]=o,v[g]=r,b[g]=h,C[g]=c[0],w[g]=c[1]}const y=p.build(),S=null!==(l=null===ji||void 0===ji?void 0:ji.createHTML(y))&&void 0!==l?l:y;f.innerHTML=S,f.style.position="absolute",f.style.top="10000","keepAll"===r?(f.style.wordBreak="keep-all",f.style.overflowWrap="anywhere"):(f.style.wordBreak="inherit",f.style.overflowWrap="break-word");e.document.body.appendChild(f);const L=document.createRange(),k=Array.prototype.slice.call(f.children,0),D=[];for(let g=0;ge.options)),r=l.map((e=>e.column-1))):(s=null,r=null),D[g]=new Vi(r,s,e,o,i)}return e.document.body.removeChild(f),D}((0,Dt.cW)(this.targetWindow.deref()),s,e,t,i,n,o,r)}}}function Gi(e,t,i,n,o,s){if(0!==s){const e=String(s);o.appendString('
    ');const r=e.length;let a=t,l=0;const h=[],d=[];let c=0");for(let u=0;u"),h[u]=l,d[u]=a;const t=c;c=u+1"),h[e.length]=l,d[e.length]=a,o.appendString("
    "),[h,d]}function Qi(e,t,i,n){if(i.length<=1)return null;const o=Array.prototype.slice.call(t.children,0),s=[];try{Zi(e,o,n,0,null,i.length-1,null,s)}catch(r){return console.log(r),null}return 0===s.length?null:(s.push(i.length),s)}function Zi(e,t,i,n,o,s,r,a){if(n===s)return;if(o=o||Yi(e,t,i[n],i[n+1]),r=r||Yi(e,t,i[s],i[s+1]),Math.abs(o[0].top-r[0].top)<=.1)return;if(n+1===s)return void a.push(s);const l=n+(s-n)/2|0,h=Yi(e,t,i[l],i[l+1]);Zi(e,t,i,n,o,l,h,a),Zi(e,t,i,l,h,s,r,a)}function Yi(e,t,i,n){return e.setStart(t[i/16384|0].firstChild,i%16384),e.setEnd(t[n/16384|0].firstChild,n%16384),e.getClientRects()}class $i extends c.JT{constructor(){super(),this._editor=null,this._instantiationService=null,this._instances=this._register(new c.b2),this._pending=new Map,this._finishedInstantiation=[],this._finishedInstantiation[0]=!1,this._finishedInstantiation[1]=!1,this._finishedInstantiation[2]=!1,this._finishedInstantiation[3]=!1}initialize(e,t,i){this._editor=e,this._instantiationService=i;for(const n of t)this._pending.has(n.id)?(0,h.dL)(new Error("Cannot have two contributions with the same id ".concat(n.id))):this._pending.set(n.id,n);this._instantiateSome(0),this._register((0,l.se)((0,l.Jj)(this._editor.getDomNode()),(()=>{this._instantiateSome(1)}))),this._register((0,l.se)((0,l.Jj)(this._editor.getDomNode()),(()=>{this._instantiateSome(2)}))),this._register((0,l.se)((0,l.Jj)(this._editor.getDomNode()),(()=>{this._instantiateSome(3)}),5e3))}saveViewState(){const e={};for(const[t,i]of this._instances)"function"===typeof i.saveViewState&&(e[t]=i.saveViewState());return e}restoreViewState(e){for(const[t,i]of this._instances)"function"===typeof i.restoreViewState&&i.restoreViewState(e[t])}get(e){return this._instantiateById(e),this._instances.get(e)||null}onBeforeInteractionEvent(){this._instantiateSome(2)}onAfterModelAttached(){var e;return(0,l.se)((0,l.Jj)(null===(e=this._editor)||void 0===e?void 0:e.getDomNode()),(()=>{this._instantiateSome(1)}),50)}_instantiateSome(e){if(this._finishedInstantiation[e])return;this._finishedInstantiation[e]=!0;const t=this._findPendingContributionsByInstantiation(e);for(const i of t)this._instantiateById(i.id)}_findPendingContributionsByInstantiation(e){const t=[];for(const[,i]of this._pending)i.instantiation===e&&t.push(i);return t}_instantiateById(e){const t=this._pending.get(e);if(t){if(this._pending.delete(e),!this._instantiationService||!this._editor)throw new Error("Cannot instantiate contributions before being initialized!");try{const e=this._instantiationService.createInstance(t.ctor,this._editor);this._instances.set(t.id,e),"function"===typeof e.restoreViewState&&0!==t.instantiation&&console.warn("Editor contribution '".concat(t.id,"' should be eager instantiated because it uses saveViewState / restoreViewState."))}catch(i){(0,h.dL)(i)}}}}var Ji=i(78626),Xi=i(45754),en=i(7906),tn=i(54081),nn=i(40801),on=i(22659),sn=i(89752),rn=i(89505);class an{static create(e){return new an(e.get(134),e.get(133))}constructor(e,t){this.classifier=new ln(e,t)}createLineBreaksComputer(e,t,i,n,o){const s=[],r=[],a=[];return{addRequest:(e,t,i)=>{s.push(e),r.push(t),a.push(i)},finalize:()=>{const l=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,h=[];for(let e=0,d=s.length;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}}let hn=[],dn=[];function cn(e,t,i,n,o,s,r,a){if(-1===o)return null;const l=i.length;if(l<=1)return null;const h="keepAll"===a,d=t.breakOffsets,c=t.breakOffsetsVisibleColumn,u=pn(i,n,o,s,r),g=o-u,m=hn,f=dn;let p=0,_=0,v=0,b=o;const C=d.length;let w=0;if(w>=0){let e=Math.abs(c[w]-b);for(;w+1=e)break;e=t,w++}}for(;wt&&(t=_,o=v);let r=0,a=0,u=0,y=0;if(o<=b){let v=o,C=0===t?0:i.charCodeAt(t-1),w=0===t?0:e.get(C),S=!0;for(let o=t;o_&&fn(C,w,l,d,h)&&(r=t,a=v),v+=c,v>b){t>_?(u=t,y=v-c):(u=o+1,y=v),v-a>g&&(r=0),S=!1;break}C=l,w=d}if(S){p>0&&(m[p]=d[d.length-1],f[p]=c[d.length-1],p++);break}}if(0===r){let l=o,d=i.charCodeAt(t),c=e.get(d),m=!1;for(let n=t-1;n>=_;n--){const t=n+1,o=i.charCodeAt(n);if(9===o){m=!0;break}let f,p;if(De.YK(o)?(n--,f=0,p=2):(f=e.get(o),p=De.K7(o)?s:1),l<=b){if(0===u&&(u=t,y=l),l<=b-g)break;if(fn(o,f,d,c,h)){r=t,a=l;break}}l-=p,d=o,c=f}if(0!==r){const e=g-(y-a);if(e<=n){const t=i.charCodeAt(u);let o;o=De.ZG(t)?2:gn(t,y,n,s),e-o<0&&(r=0)}}if(m){w--;continue}}if(0===r&&(r=u,a=y),r<=_){const e=i.charCodeAt(_);De.ZG(e)?(r=_+2,a=v+2):(r=_+1,a=v+gn(e,v,n,s))}for(_=r,m[p]=r,v=a,f[p]=a,p++,b=a+g;w<0||w=S)break;S=e,w++}}return 0===p?null:(m.length=p,f.length=p,hn=t.breakOffsets,dn=t.breakOffsetsVisibleColumn,t.breakOffsets=m,t.breakOffsetsVisibleColumn=f,t.wrappedTextIndentLength=u,t)}function un(e,t,i,n,o,s,r,a){const l=Ui.gk.applyInjectedText(t,i);let h,d;if(i&&i.length>0?(h=i.map((e=>e.options)),d=i.map((e=>e.column-1))):(h=null,d=null),-1===o)return h?new Vi(d,h,[l.length],[],0):null;const c=l.length;if(c<=1)return h?new Vi(d,h,[l.length],[],0):null;const u="keepAll"===a,g=pn(l,n,o,s,r),m=o-g,f=[],p=[];let _=0,v=0,b=0,C=o,w=l.charCodeAt(0),y=e.get(w),S=gn(w,0,n,s),L=1;De.ZG(w)&&(S+=1,w=l.charCodeAt(1),y=e.get(w),L++);for(let k=L;kC&&((0===v||S-b>m)&&(v=t,b=S-r),f[_]=v,p[_]=b,_++,C=b+m,v=0),w=i,y=o}return 0!==_||i&&0!==i.length?(f[_]=c,p[_]=S,new Vi(d,h,f,p,g)):null}function gn(e,t,i,n){return 9===e?i-t%i:De.K7(e)||e<32?n:1}function mn(e,t){return t-e%t}function fn(e,t,i,n,o){return 32!==i&&(2===t&&2!==n||1!==t&&1===n||!o&&3===t&&2!==n||!o&&3===n&&1!==t)}function pn(e,t,i,n,o){let s=0;if(0!==o){const r=De.LC(e);if(-1!==r){for(let i=0;ii&&(s=0)}}return s}var _n=i(52910),vn=i(68170);class bn{constructor(e){this._selTrackedRange=null,this._trackSelection=!0,this._setState(e,new vn.rS(new Q.e(1,1,1,1),0,0,new G.L(1,1),0),new vn.rS(new Q.e(1,1,1,1),0,0,new G.L(1,1),0))}dispose(e){this._removeTrackedRange(e)}startTrackingSelection(e){this._trackSelection=!0,this._updateTrackedRange(e)}stopTrackingSelection(e){this._trackSelection=!1,this._removeTrackedRange(e)}_updateTrackedRange(e){this._trackSelection&&(this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,0))}_removeTrackedRange(e){this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,null,0)}asCursorState(){return new vn.Vi(this.modelState,this.viewState)}readSelectionFromMarkers(e){const t=e.model._getTrackedRange(this._selTrackedRange);return this.modelState.selection.isEmpty()&&!t.isEmpty()?me.Y.fromRange(t.collapseToEnd(),this.modelState.selection.getDirection()):me.Y.fromRange(t,this.modelState.selection.getDirection())}ensureValidState(e){this._setState(e,this.modelState,this.viewState)}setState(e,t,i){this._setState(e,t,i)}static _validatePositionWithCache(e,t,i,n){return t.equals(i)?n:e.normalizePosition(t,2)}static _validateViewState(e,t){const i=t.position,n=t.selectionStart.getStartPosition(),o=t.selectionStart.getEndPosition(),s=e.normalizePosition(i,2),r=this._validatePositionWithCache(e,n,i,s),a=this._validatePositionWithCache(e,o,n,r);return i.equals(s)&&n.equals(r)&&o.equals(a)?t:new vn.rS(Q.e.fromPositions(r,a),t.selectionStartKind,t.selectionStartLeftoverVisibleColumns+n.column-r.column,s,t.leftoverVisibleColumns+i.column-s.column)}_setState(e,t,i){if(i&&(i=bn._validateViewState(e.viewModel,i)),t){const i=e.model.validateRange(t.selectionStart),n=t.selectionStart.equalsRange(i)?t.selectionStartLeftoverVisibleColumns:0,o=e.model.validatePosition(t.position),s=t.position.equals(o)?t.leftoverVisibleColumns:0;t=new vn.rS(i,t.selectionStartKind,n,o,s)}else{if(!i)return;const n=e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange(i.selectionStart)),o=e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition(i.position));t=new vn.rS(n,i.selectionStartKind,i.selectionStartLeftoverVisibleColumns,o,i.leftoverVisibleColumns)}if(i){const n=e.coordinatesConverter.validateViewRange(i.selectionStart,t.selectionStart),o=e.coordinatesConverter.validateViewPosition(i.position,t.position);i=new vn.rS(n,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,o,t.leftoverVisibleColumns)}else{const n=e.coordinatesConverter.convertModelPositionToViewPosition(new G.L(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),o=e.coordinatesConverter.convertModelPositionToViewPosition(new G.L(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),s=new Q.e(n.lineNumber,n.column,o.lineNumber,o.column),r=e.coordinatesConverter.convertModelPositionToViewPosition(t.position);i=new vn.rS(s,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,r,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=i,this._updateTrackedRange(e)}}class Cn{constructor(e){this.context=e,this.cursors=[new bn(e)],this.lastAddedCursorIndex=0}dispose(){for(const e of this.cursors)e.dispose(this.context)}startTrackingSelections(){for(const e of this.cursors)e.startTrackingSelection(this.context)}stopTrackingSelections(){for(const e of this.cursors)e.stopTrackingSelection(this.context)}updateContext(e){this.context=e}ensureValidState(){for(const e of this.cursors)e.ensureValidState(this.context)}readSelectionFromMarkers(){return this.cursors.map((e=>e.readSelectionFromMarkers(this.context)))}getAll(){return this.cursors.map((e=>e.asCursorState()))}getViewPositions(){return this.cursors.map((e=>e.viewState.position))}getTopMostViewPosition(){return(0,_n.Ph)(this.cursors,(0,f.tT)((e=>e.viewState.position),G.L.compare)).viewState.position}getBottomMostViewPosition(){return(0,_n.jV)(this.cursors,(0,f.tT)((e=>e.viewState.position),G.L.compare)).viewState.position}getSelections(){return this.cursors.map((e=>e.modelState.selection))}getViewSelections(){return this.cursors.map((e=>e.viewState.selection))}setSelections(e){this.setStates(vn.Vi.fromModelSelections(e))}getPrimaryCursor(){return this.cursors[0].asCursorState()}setStates(e){null!==e&&(this.cursors[0].setState(this.context,e[0].modelState,e[0].viewState),this._setSecondaryStates(e.slice(1)))}_setSecondaryStates(e){const t=this.cursors.length-1,i=e.length;if(ti){const e=t-i;for(let t=0;t=e+1&&this.lastAddedCursorIndex--,this.cursors[e+1].dispose(this.context),this.cursors.splice(e+1,1)}normalize(){if(1===this.cursors.length)return;const e=this.cursors.slice(0),t=[];for(let i=0,n=e.length;ie.selection),Q.e.compareRangesUsingStarts));for(let i=0;ia&&e.index--;e.splice(a,1),t.splice(r,1),this._removeSecondaryCursor(a-1),i--}}}}class wn{constructor(e,t,i,n){this._cursorContextBrand=void 0,this.model=e,this.viewModel=t,this.coordinatesConverter=i,this.cursorConfig=n}}var yn=i(51521),Sn=i(67016);class Ln{constructor(){this.type=0}}class kn{constructor(){this.type=1}}class Dn{constructor(e){this.type=2,this._source=e}hasChanged(e){return this._source.hasChanged(e)}}class Nn{constructor(e,t,i){this.selections=e,this.modelSelections=t,this.reason=i,this.type=3}}class xn{constructor(e){this.type=4,e?(this.affectsMinimap=e.affectsMinimap,this.affectsOverviewRuler=e.affectsOverviewRuler,this.affectsGlyphMargin=e.affectsGlyphMargin,this.affectsLineNumber=e.affectsLineNumber):(this.affectsMinimap=!0,this.affectsOverviewRuler=!0,this.affectsGlyphMargin=!0,this.affectsLineNumber=!0)}}class En{constructor(){this.type=5}}class In{constructor(e){this.type=6,this.isFocused=e}}class Tn{constructor(){this.type=7}}class Mn{constructor(){this.type=8}}class An{constructor(e,t){this.fromLineNumber=e,this.count=t,this.type=9}}class Rn{constructor(e,t){this.type=10,this.fromLineNumber=e,this.toLineNumber=t}}class On{constructor(e,t){this.type=11,this.fromLineNumber=e,this.toLineNumber=t}}class Pn{constructor(e,t,i,n,o,s,r){this.source=e,this.minimalReveal=t,this.range=i,this.selections=n,this.verticalType=o,this.revealHorizontal=s,this.scrollType=r,this.type=12}}class Fn{constructor(e){this.type=13,this.scrollWidth=e.scrollWidth,this.scrollLeft=e.scrollLeft,this.scrollHeight=e.scrollHeight,this.scrollTop=e.scrollTop,this.scrollWidthChanged=e.scrollWidthChanged,this.scrollLeftChanged=e.scrollLeftChanged,this.scrollHeightChanged=e.scrollHeightChanged,this.scrollTopChanged=e.scrollTopChanged}}class Bn{constructor(e){this.theme=e,this.type=14}}class zn{constructor(e){this.type=15,this.ranges=e}}class Vn{constructor(){this.type=16}}class Wn{constructor(){this.type=17}}class Hn extends c.JT{constructor(){super(),this._onEvent=this._register(new d.Q5),this.onEvent=this._onEvent.event,this._eventHandlers=[],this._viewEventQueue=null,this._isConsumingViewEventQueue=!1,this._collector=null,this._collectorCnt=0,this._outgoingEvents=[]}emitOutgoingEvent(e){this._addOutgoingEvent(e),this._emitOutgoingEvents()}_addOutgoingEvent(e){for(let t=0,i=this._outgoingEvents.length;t0;){if(this._collector||this._isConsumingViewEventQueue)return;const e=this._outgoingEvents.shift();e.isNoOp()||this._onEvent.fire(e)}}addViewEventHandler(e){for(let t=0,i=this._eventHandlers.length;t0&&this._emitMany(t)}this._emitOutgoingEvents()}emitSingleViewEvent(e){try{this.beginEmitViewEvents().emitViewEvent(e)}finally{this.endEmitViewEvents()}}_emitMany(e){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(e):this._viewEventQueue=e,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}_consumeViewEventQueue(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}_doConsumeQueue(){for(;this._viewEventQueue;){const e=this._viewEventQueue;this._viewEventQueue=null;const t=this._eventHandlers.slice(0);for(const i of t)i.handleEvents(e)}}}class Kn{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(e){this.viewEvents.push(e)}emitOutgoingEvent(e){this.outgoingEvents.push(e)}}class Un{constructor(e,t,i,n){this.kind=0,this._oldContentWidth=e,this._oldContentHeight=t,this.contentWidth=i,this.contentHeight=n,this.contentWidthChanged=this._oldContentWidth!==this.contentWidth,this.contentHeightChanged=this._oldContentHeight!==this.contentHeight}isNoOp(){return!this.contentWidthChanged&&!this.contentHeightChanged}attemptToMerge(e){return e.kind!==this.kind?null:new Un(this._oldContentWidth,this._oldContentHeight,e.contentWidth,e.contentHeight)}}class jn{constructor(e,t){this.kind=1,this.oldHasFocus=e,this.hasFocus=t}isNoOp(){return this.oldHasFocus===this.hasFocus}attemptToMerge(e){return e.kind!==this.kind?null:new jn(this.oldHasFocus,e.hasFocus)}}class qn{constructor(e,t,i,n,o,s,r,a){this.kind=2,this._oldScrollWidth=e,this._oldScrollLeft=t,this._oldScrollHeight=i,this._oldScrollTop=n,this.scrollWidth=o,this.scrollLeft=s,this.scrollHeight=r,this.scrollTop=a,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft,this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}isNoOp(){return!this.scrollWidthChanged&&!this.scrollLeftChanged&&!this.scrollHeightChanged&&!this.scrollTopChanged}attemptToMerge(e){return e.kind!==this.kind?null:new qn(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop)}}class Gn{constructor(){this.kind=3}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class Qn{constructor(){this.kind=4}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class Zn{constructor(e,t,i,n,o,s,r){this.kind=6,this.oldSelections=e,this.selections=t,this.oldModelVersionId=i,this.modelVersionId=n,this.source=o,this.reason=s,this.reachedMaxCursorCount=r}static _selectionsAreEqual(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;const i=e.length;if(i!==t.length)return!1;for(let n=0;n0){const e=this._cursors.getSelections();for(let t=0;ts&&(n=n.slice(0,s),o=!0);const r=oo.from(this._model,this);return this._cursors.setStates(n),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,t,i,r,o)}setCursorColumnSelectData(e){this._columnSelectData=e}revealAll(e,t,i,n,o,s){const r=this._cursors.getViewPositions();let a=null,l=null;r.length>1?l=this._cursors.getViewSelections():a=Q.e.fromPositions(r[0],r[0]),e.emitViewEvent(new Pn(t,i,a,l,n,o,s))}revealPrimary(e,t,i,n,o,s){const r=[this._cursors.getPrimaryCursor().viewState.selection];e.emitViewEvent(new Pn(t,i,null,r,n,o,s))}saveState(){const e=[],t=this._cursors.getSelections();for(let i=0,n=t.length;i0){const t=vn.Vi.fromModelSelections(i.resultingSelection);this.setStates(e,"modelChange",i.isUndoing?5:i.isRedoing?6:2,t)&&this.revealAll(e,"modelChange",!1,0,!0,0)}else{const t=this._cursors.readSelectionFromMarkers();this.setStates(e,"modelChange",2,vn.Vi.fromModelSelections(t))}}}getSelection(){return this._cursors.getPrimaryCursor().modelState.selection}getTopMostViewPosition(){return this._cursors.getTopMostViewPosition()}getBottomMostViewPosition(){return this._cursors.getBottomMostViewPosition()}getCursorColumnSelectData(){if(this._columnSelectData)return this._columnSelectData;const e=this._cursors.getPrimaryCursor(),t=e.viewState.selectionStart.getStartPosition(),i=e.viewState.position;return{isReal:!1,fromViewLineNumber:t.lineNumber,fromViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,t),toViewLineNumber:i.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,i)}}getSelections(){return this._cursors.getSelections()}setSelections(e,t,i,n){this.setStates(e,t,n,vn.Vi.fromModelSelections(i))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(e){this._prevEditOperationType=e}_pushAutoClosedAction(e,t){const i=[],n=[];for(let r=0,a=e.length;r0&&this._pushAutoClosedAction(i,n),this._prevEditOperationType=e.type}e.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(e){e&&0!==e.length||(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()}_emitStateChangedIfNecessary(e,t,i,n,o){const s=oo.from(this._model,this);if(s.equals(n))return!1;const r=this._cursors.getSelections(),a=this._cursors.getViewSelections();if(e.emitViewEvent(new Nn(a,r,i)),!n||n.cursorState.length!==s.cursorState.length||s.cursorState.some(((e,t)=>!e.modelState.equals(n.cursorState[t].modelState)))){const a=n?n.cursorState.map((e=>e.modelState.selection)):null,l=n?n.modelVersionId:0;e.emitOutgoingEvent(new Zn(a,r,l,s.modelVersionId,t||"keyboard",i,o))}return!0}_findAutoClosingPairs(e){if(!e.length)return null;const t=[];for(let i=0,n=e.length;i=0)return null;const o=n.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!o)return null;const s=o[1],r=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(s);if(!r||1!==r.length)return null;const a=r[0].open,l=n.text.length-o[2].length-1,h=n.text.lastIndexOf(a,l-1);if(-1===h)return null;t.push([h,l])}return t}executeEdits(e,t,i,n){let o=null;"snippet"===t&&(o=this._findAutoClosingPairs(i)),o&&(i[0]._isTracked=!0);const s=[],r=[],a=this._model.pushEditOperations(this.getSelections(),i,(e=>{if(o)for(let i=0,n=o.length;i0&&this._pushAutoClosedAction(s,r)}_executeEdit(e,t,i){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(this.context.cursorConfig.readOnly)return;const o=oo.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),e()}catch(s){(0,h.dL)(s)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,i,n,o,!1)&&this.revealAll(t,i,!1,0,!0,0)}getAutoClosedCharacters(){return so.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(e){this._compositionState=new lo(this._model,this.getSelections())}endComposition(e,t){const i=this._compositionState?this._compositionState.deduceOutcome(this._model,this.getSelections()):null;this._compositionState=null,this._executeEdit((()=>{"keyboard"===t&&this._executeEditOperation(Sn.u6.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,i,this.getSelections(),this.getAutoClosedCharacters()))}),e,t)}type(e,t,i){this._executeEdit((()=>{if("keyboard"===i){const e=t.length;let i=0;for(;i{this._executeEditOperation(Sn.u6.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t,i,n,o))}),e,s);else if(0!==o){const t=this.getSelections().map((e=>{const t=e.getPosition();return new me.Y(t.lineNumber,t.column+o,t.lineNumber,t.column+o)}));this.setSelections(e,s,t,0)}}paste(e,t,i,n,o){this._executeEdit((()=>{this._executeEditOperation(Sn.u6.paste(this.context.cursorConfig,this._model,this.getSelections(),t,i,n||[]))}),e,o,4)}cut(e,t){this._executeEdit((()=>{this._executeEditOperation(yn.A.cut(this.context.cursorConfig,this._model,this.getSelections()))}),e,t)}executeCommand(e,t,i){this._executeEdit((()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new vn.Tp(0,[t],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))}),e,i)}executeCommands(e,t,i){this._executeEdit((()=>{this._executeEditOperation(new vn.Tp(0,t,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))}),e,i)}}class oo{static from(e,t){return new oo(e.getVersionId(),t.getCursorStates())}constructor(e,t){this.modelVersionId=e,this.cursorState=t}equals(e){if(!e)return!1;if(this.modelVersionId!==e.modelVersionId)return!1;if(this.cursorState.length!==e.cursorState.length)return!1;for(let t=0,i=this.cursorState.length;t=t.length)return!1;if(!t[i].strictContainsRange(e[i]))return!1}return!0}}class ro{static executeCommands(e,t,i){const n={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},o=this._innerExecuteCommands(n,i);for(let s=0,r=n.trackedRanges.length;s0&&(s[0]._isTracked=!0);let r=e.model.pushEditOperations(e.selectionsBefore,s,(i=>{const n=[];for(let t=0;te.identifier.minor-t.identifier.minor,s=[];for(let r=0;r0?(n[r].sort(o),s[r]=t[r].computeCursorState(e.model,{getInverseEditOperations:()=>n[r],getTrackedSelection:t=>{const i=parseInt(t,10),n=e.model._getTrackedRange(e.trackedRanges[i]);return 0===e.trackedRangesDirection[i]?new me.Y(n.startLineNumber,n.startColumn,n.endLineNumber,n.endColumn):new me.Y(n.endLineNumber,n.endColumn,n.startLineNumber,n.startColumn)}})):s[r]=e.selectionsBefore[r];return s}));r||(r=e.selectionsBefore);const a=[];for(const l in o)o.hasOwnProperty(l)&&a.push(parseInt(l,10));a.sort(((e,t)=>t-e));for(const l of a)r.splice(l,1);return r}static _arrayIsEmpty(e){for(let t=0,i=e.length;t2&&void 0!==arguments[2]&&arguments[2];Q.e.isEmpty(e)&&""===s||n.push({identifier:{major:t,minor:o++},range:e,text:s,forceMoveMarkers:r,isAutoWhitespaceEdit:i.insertsAutoWhitespace})};let r=!1;const a={addEditOperation:s,addTrackedEditOperation:(e,t,i)=>{r=!0,s(e,t,i)},trackSelection:(t,i)=>{const n=me.Y.liftSelection(t);let o;if(n.isEmpty())if("boolean"===typeof i)o=i?2:3;else{const t=e.model.getLineMaxColumn(n.startLineNumber);o=n.startColumn===t?2:3}else o=1;const s=e.trackedRanges.length,r=e.model._setTrackedRange(null,n,o);return e.trackedRanges[s]=r,e.trackedRangesDirection[s]=n.getDirection(),s.toString()}};try{i.getEditOperations(e.model,a)}catch(l){return(0,h.dL)(l),{operations:[],hadTrackedEditOperation:!1}}return{operations:n,hadTrackedEditOperation:r}}static _getLoserCursorMap(e){(e=e.slice(0)).sort(((e,t)=>-Q.e.compareRangesUsingEnds(e.range,t.range)));const t={};for(let i=1;io.identifier.major?n.identifier.major:o.identifier.major,t[s.toString()]=!0;for(let t=0;t0&&i--}}return t}}class ao{constructor(e,t,i){this.text=e,this.startSelection=t,this.endSelection=i}}class lo{static _capture(e,t){const i=[];for(const n of t){if(n.startLineNumber!==n.endLineNumber)return null;i.push(new ao(e.getLineContent(n.startLineNumber),n.startColumn-1,n.endColumn-1))}return i}constructor(e,t){this._original=lo._capture(e,t)}deduceOutcome(e,t){if(!this._original)return null;const i=lo._capture(e,t);if(!i)return null;if(this._original.length!==i.length)return null;const n=[];for(let o=0,s=this._original.length;o>>1;t===e[s].afterLineNumber?i{t=!0,e|=0,i|=0,n|=0,o|=0;const s=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new mo(s,e,i,n,o)),s},changeOneWhitespace:(e,i,n)=>{t=!0,i|=0,n|=0,this._pendingChanges.change({id:e,newAfterLineNumber:i,newHeight:n})},removeWhitespace:e=>{t=!0,this._pendingChanges.remove({id:e})}})}finally{this._pendingChanges.commit(this)}return t}_commitPendingChanges(e,t,i){if((e.length>0||i.length>0)&&(this._minWidth=-1),e.length+t.length+i.length<=1){for(const t of e)this._insertWhitespace(t);for(const e of t)this._changeOneWhitespace(e.id,e.newAfterLineNumber,e.newHeight);for(const e of i){const t=this._findWhitespaceIndex(e.id);-1!==t&&this._removeWhitespace(t)}return}const n=new Set;for(const a of i)n.add(a.id);const o=new Map;for(const a of t)o.set(a.id,a);const s=e=>{const t=[];for(const i of e)if(!n.has(i.id)){if(o.has(i.id)){const e=o.get(i.id);i.afterLineNumber=e.newAfterLineNumber,i.height=e.newHeight}t.push(i)}return t},r=s(this._arr).concat(s(e));r.sort(((e,t)=>e.afterLineNumber===t.afterLineNumber?e.ordinal-t.ordinal:e.afterLineNumber-t.afterLineNumber)),this._arr=r,this._prefixSumValidIndex=-1}_checkPendingChanges(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}_insertWhitespace(e){const t=fo.findInsertionIndex(this._arr,e.afterLineNumber,e.ordinal);this._arr.splice(t,0,e),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,t-1)}_findWhitespaceIndex(e){const t=this._arr;for(let i=0,n=t.length;it&&(this._arr[i].afterLineNumber-=t-e+1)}}onLinesInserted(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount+=t-e+1;for(let i=0,n=this._arr.length;i=t.length||t[o+1].afterLineNumber>=e)return o;i=o+1|0}else n=o-1|0}return-1}_findFirstWhitespaceAfterLineNumber(e){e|=0;const t=this._findLastWhitespaceBeforeLineNumber(e)+1;return t1&&void 0!==arguments[1]&&arguments[1];this._checkPendingChanges(),t=(e|=0)>1?this._lineHeight*(e-1):0;return t+this.getWhitespaceAccumulatedHeightBeforeLineNumber(e-(i?1:0))+this._paddingTop}getVerticalOffsetAfterLineNumber(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._checkPendingChanges(),e|=0;return this._lineHeight*e+this.getWhitespaceAccumulatedHeightBeforeLineNumber(e+(t?1:0))+this._paddingTop}getWhitespaceMinWidth(){if(this._checkPendingChanges(),-1===this._minWidth){let e=0;for(let t=0,i=this._arr.length;tthis.getLinesTotalHeight()}isInTopPadding(e){return 0!==this._paddingTop&&(this._checkPendingChanges(),e=this.getLinesTotalHeight()-this._paddingBottom}getLineNumberAtOrAfterVerticalOffset(e){if(this._checkPendingChanges(),(e|=0)<0)return 1;const t=0|this._lineCount,i=this._lineHeight;let n=1,o=t;for(;n=s+i)n=t+1;else{if(e>=s)return t;o=t}}return n>t?t:n}getLinesViewportData(e,t){this._checkPendingChanges(),e|=0,t|=0;const i=this._lineHeight,n=0|this.getLineNumberAtOrAfterVerticalOffset(e),o=0|this.getVerticalOffsetForLineNumber(n);let s=0|this._lineCount,r=0|this.getFirstWhitespaceIndexAfterLineNumber(n);const a=0|this.getWhitespacesCount();let l,h;-1===r?(r=a,h=s+1,l=0):(h=0|this.getAfterLineNumberForWhitespaceIndex(r),l=0|this.getHeightForWhitespaceIndex(r));let d=o,c=d;const u=5e5;let g=0;o>=u&&(g=Math.floor(o/u)*u,g=Math.floor(g/i)*i,c-=g);const m=[],f=e+(t-e)/2;let p=-1;for(let C=n;C<=s;C++){if(-1===p){(d<=f&&ff)&&(p=C)}for(d+=i,m[C-n]=c,c+=i;h===C;)c+=l,d+=l,r++,r>=a?h=s+1:(h=0|this.getAfterLineNumberForWhitespaceIndex(r),l=0|this.getHeightForWhitespaceIndex(r));if(d>=t){s=C;break}}-1===p&&(p=s);const _=0|this.getVerticalOffsetForLineNumber(s);let v=n,b=s;return vt&&b--,{bigNumbersDelta:g,startLineNumber:n,endLineNumber:s,relativeVerticalOffset:m,centeredLineNumber:p,completelyVisibleStartLineNumber:v,completelyVisibleEndLineNumber:b,lineHeight:this._lineHeight}}getVerticalOffsetForWhitespaceIndex(e){this._checkPendingChanges(),e|=0;const t=this.getAfterLineNumberForWhitespaceIndex(e);let i,n;return i=t>=1?this._lineHeight*t:0,n=e>0?this.getWhitespacesAccumulatedHeight(e-1):0,i+n+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(e){this._checkPendingChanges(),e|=0;let t=0,i=this.getWhitespacesCount()-1;if(i<0)return-1;if(e>=this.getVerticalOffsetForWhitespaceIndex(i)+this.getHeightForWhitespaceIndex(i))return-1;for(;t=o+this.getHeightForWhitespaceIndex(n))t=n+1;else{if(e>=o)return n;i=n}}return t}getWhitespaceAtVerticalOffset(e){this._checkPendingChanges(),e|=0;const t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0)return null;if(t>=this.getWhitespacesCount())return null;const i=this.getVerticalOffsetForWhitespaceIndex(t);if(i>e)return null;const n=this.getHeightForWhitespaceIndex(t);return{id:this.getIdForWhitespaceIndex(t),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(t),verticalOffset:i,height:n}}getWhitespaceViewportData(e,t){this._checkPendingChanges(),e|=0,t|=0;const i=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),n=this.getWhitespacesCount()-1;if(i<0)return[];const o=[];for(let s=i;s<=n;s++){const e=this.getVerticalOffsetForWhitespaceIndex(s),i=this.getHeightForWhitespaceIndex(s);if(e>=t)break;o.push({id:this.getIdForWhitespaceIndex(s),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(s),verticalOffset:e,height:i})}return o}getWhitespaces(){return this._checkPendingChanges(),this._arr.slice(0)}getWhitespacesCount(){return this._checkPendingChanges(),this._arr.length}getIdForWhitespaceIndex(e){return this._checkPendingChanges(),e|=0,this._arr[e].id}getAfterLineNumberForWhitespaceIndex(e){return this._checkPendingChanges(),e|=0,this._arr[e].afterLineNumber}getHeightForWhitespaceIndex(e){return this._checkPendingChanges(),e|=0,this._arr[e].height}}fo.INSTANCE_COUNT=0;class po{constructor(e,t,i,n){(e|=0)<0&&(e=0),(t|=0)<0&&(t=0),(i|=0)<0&&(i=0),(n|=0)<0&&(n=0),this.width=e,this.contentWidth=t,this.scrollWidth=Math.max(e,t),this.height=i,this.contentHeight=n,this.scrollHeight=Math.max(i,n)}equals(e){return this.width===e.width&&this.contentWidth===e.contentWidth&&this.height===e.height&&this.contentHeight===e.contentHeight}}class _o extends c.JT{constructor(e,t){super(),this._onDidContentSizeChange=this._register(new d.Q5),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._dimensions=new po(0,0,0,0),this._scrollable=this._register(new uo.Rm({forceIntegerValues:!0,smoothScrollDuration:e,scheduleAtNextAnimationFrame:t})),this.onDidScroll=this._scrollable.onScroll}getScrollable(){return this._scrollable}setSmoothScrollDuration(e){this._scrollable.setSmoothScrollDuration(e)}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}getScrollDimensions(){return this._dimensions}setScrollDimensions(e){if(this._dimensions.equals(e))return;const t=this._dimensions;this._dimensions=e,this._scrollable.setScrollDimensions({width:e.width,scrollWidth:e.scrollWidth,height:e.height,scrollHeight:e.scrollHeight},!0);const i=t.contentWidth!==e.contentWidth,n=t.contentHeight!==e.contentHeight;(i||n)&&this._onDidContentSizeChange.fire(new Un(t.contentWidth,t.contentHeight,e.contentWidth,e.contentHeight))}getFutureScrollPosition(){return this._scrollable.getFutureScrollPosition()}getCurrentScrollPosition(){return this._scrollable.getCurrentScrollPosition()}setScrollPositionNow(e){this._scrollable.setScrollPositionNow(e)}setScrollPositionSmooth(e){this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}}class vo extends c.JT{constructor(e,t,i){super(),this._configuration=e;const n=this._configuration.options,o=n.get(145),s=n.get(84);this._linesLayout=new fo(t,n.get(67),s.top,s.bottom),this._maxLineWidth=0,this._overlayWidgetsMinWidth=0,this._scrollable=this._register(new _o(0,i)),this._configureSmoothScrollDuration(),this._scrollable.setScrollDimensions(new po(o.contentWidth,0,o.height,0)),this.onDidScroll=this._scrollable.onDidScroll,this.onDidContentSizeChange=this._scrollable.onDidContentSizeChange,this._updateHeight()}dispose(){super.dispose()}getScrollable(){return this._scrollable.getScrollable()}onHeightMaybeChanged(){this._updateHeight()}_configureSmoothScrollDuration(){this._scrollable.setSmoothScrollDuration(this._configuration.options.get(114)?125:0)}onConfigurationChanged(e){const t=this._configuration.options;if(e.hasChanged(67)&&this._linesLayout.setLineHeight(t.get(67)),e.hasChanged(84)){const e=t.get(84);this._linesLayout.setPadding(e.top,e.bottom)}if(e.hasChanged(145)){const e=t.get(145),i=e.contentWidth,n=e.height,o=this._scrollable.getScrollDimensions(),s=o.contentWidth;this._scrollable.setScrollDimensions(new po(i,o.contentWidth,n,this._getContentHeight(i,n,s)))}else this._updateHeight();e.hasChanged(114)&&this._configureSmoothScrollDuration()}onFlushed(e){this._linesLayout.onFlushed(e)}onLinesDeleted(e,t){this._linesLayout.onLinesDeleted(e,t)}onLinesInserted(e,t){this._linesLayout.onLinesInserted(e,t)}_getHorizontalScrollbarHeight(e,t){const i=this._configuration.options.get(103);return 2===i.horizontal||e>=t?0:i.horizontalScrollbarSize}_getContentHeight(e,t,i){const n=this._configuration.options;let o=this._linesLayout.getLinesTotalHeight();return n.get(105)?o+=Math.max(0,t-n.get(67)-n.get(84).bottom):n.get(103).ignoreHorizontalScrollbarInContentHeight||(o+=this._getHorizontalScrollbarHeight(e,i)),o}_updateHeight(){const e=this._scrollable.getScrollDimensions(),t=e.width,i=e.height,n=e.contentWidth;this._scrollable.setScrollDimensions(new po(t,e.contentWidth,i,this._getContentHeight(t,i,n)))}getCurrentViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new Ht.l_(t.scrollTop,t.scrollLeft,e.width,e.height)}getFutureViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new Ht.l_(t.scrollTop,t.scrollLeft,e.width,e.height)}_computeContentWidth(){const e=this._configuration.options,t=this._maxLineWidth,i=e.get(146),n=e.get(50),o=e.get(145);if(i.isViewportWrapping){const i=e.get(73);return t>o.contentWidth+n.typicalHalfwidthCharacterWidth&&i.enabled&&"right"===i.side?t+o.verticalScrollbarWidth:t}{const i=e.get(104)*n.typicalHalfwidthCharacterWidth,s=this._linesLayout.getWhitespaceMinWidth();return Math.max(t+i+o.verticalScrollbarWidth,s,this._overlayWidgetsMinWidth)}}setMaxLineWidth(e){this._maxLineWidth=e,this._updateContentWidth()}setOverlayWidgetsMinWidth(e){this._overlayWidgetsMinWidth=e,this._updateContentWidth()}_updateContentWidth(){const e=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new po(e.width,this._computeContentWidth(),e.height,e.contentHeight)),this._updateHeight()}saveState(){const e=this._scrollable.getFutureScrollPosition(),t=e.scrollTop,i=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);return{scrollTop:t,scrollTopWithoutViewZones:t-this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(i),scrollLeft:e.scrollLeft}}changeWhitespace(e){const t=this._linesLayout.changeWhitespace(e);return t&&this.onHeightMaybeChanged(),t}getVerticalOffsetForLineNumber(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this._linesLayout.getVerticalOffsetForLineNumber(e,t)}getVerticalOffsetAfterLineNumber(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this._linesLayout.getVerticalOffsetAfterLineNumber(e,t)}isAfterLines(e){return this._linesLayout.isAfterLines(e)}isInTopPadding(e){return this._linesLayout.isInTopPadding(e)}isInBottomPadding(e){return this._linesLayout.isInBottomPadding(e)}getLineNumberAtVerticalOffset(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)}getWhitespaceAtVerticalOffset(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)}getLinesViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)}getLinesViewportDataAtScrollTop(e){const 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)}getWhitespaceViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}setScrollPosition(e,t){1===t?this._scrollable.setScrollPositionNow(e):this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}deltaScrollNow(e,t){const i=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:i.scrollLeft+e,scrollTop:i.scrollTop+t})}}var bo=i(19907),Co=i(43471);function wo(e,t){return null===e?t?So.INSTANCE:Lo.INSTANCE:new yo(e,t)}class yo{constructor(e,t){this._projectionData=e,this._isVisible=t}isVisible(){return this._isVisible}setVisible(e){return this._isVisible=e,this}getProjectionData(){return this._projectionData}getViewLineCount(){return this._isVisible?this._projectionData.getOutputLineCount():0}getViewLineContent(e,t,i){this._assertVisible();const n=i>0?this._projectionData.breakOffsets[i-1]:0,o=this._projectionData.breakOffsets[i];let s;if(null!==this._projectionData.injectionOffsets){const i=this._projectionData.injectionOffsets.map(((e,t)=>new Ui.gk(0,0,e+1,this._projectionData.injectionOptions[t],0)));s=Ui.gk.applyInjectedText(e.getLineContent(t),i).substring(n,o)}else s=e.getValueInRange({startLineNumber:t,startColumn:n+1,endLineNumber:t,endColumn:o+1});return i>0&&(s=Do(this._projectionData.wrappedTextIndentLength)+s),s}getViewLineLength(e,t,i){return this._assertVisible(),this._projectionData.getLineLength(i)}getViewLineMinColumn(e,t,i){return this._assertVisible(),this._projectionData.getMinOutputOffset(i)+1}getViewLineMaxColumn(e,t,i){return this._assertVisible(),this._projectionData.getMaxOutputOffset(i)+1}getViewLineData(e,t,i){const n=new Array;return this.getViewLinesData(e,t,i,1,0,[!0],n),n[0]}getViewLinesData(e,t,i,n,o,s,r){this._assertVisible();const a=this._projectionData,l=a.injectionOffsets,h=a.injectionOptions;let d,c=null;if(l){c=[];let e=0,t=0;for(let i=0;i0?a.breakOffsets[i-1]:0,s=a.breakOffsets[i];for(;ts)break;if(o0?a.wrappedTextIndentLength:0,r=t+Math.max(d-o,0),l=t+Math.min(c-o,s-o);r!==l&&n.push(new Ht.Wx(r,l,e.inlineClassName,e.inlineClassNameAffectsLetterSpacing))}}if(!(c<=s))break;e+=r,t++}}}d=l?e.tokenization.getLineTokens(t).withInserted(l.map(((e,t)=>({offset:e,text:h[t].content,tokenMetadata:Co.A.defaultTokenMetadata})))):e.tokenization.getLineTokens(t);for(let u=i;u0?n.wrappedTextIndentLength:0,s=i>0?n.breakOffsets[i-1]:0,r=n.breakOffsets[i],a=e.sliceAndInflate(s,r,o);let l=a.getLineContent();i>0&&(l=Do(n.wrappedTextIndentLength)+l);const h=this._projectionData.getMinOutputOffset(i)+1,d=l.length+1,c=i+12&&void 0!==arguments[2]?arguments[2]:2;this._assertVisible();return this._projectionData.translateToOutputPosition(t-1,i).toPosition(e)}getViewLineNumberOfModelPosition(e,t){this._assertVisible();return e+this._projectionData.translateToOutputPosition(t-1).outputLineIndex}normalizePosition(e,t,i){const n=t.lineNumber-e;return this._projectionData.normalizeOutputPosition(e,t.column-1,i).toPosition(n)}getInjectedTextAt(e,t){return this._projectionData.getInjectedText(e,t-1)}_assertVisible(){if(!this._isVisible)throw new Error("Not supported")}}class So{constructor(){}isVisible(){return!0}setVisible(e){return e?this:Lo.INSTANCE}getProjectionData(){return null}getViewLineCount(){return 1}getViewLineContent(e,t,i){return e.getLineContent(t)}getViewLineLength(e,t,i){return e.getLineLength(t)}getViewLineMinColumn(e,t,i){return e.getLineMinColumn(t)}getViewLineMaxColumn(e,t,i){return e.getLineMaxColumn(t)}getViewLineData(e,t,i){const n=e.tokenization.getLineTokens(t),o=n.getLineContent();return new Ht.IP(o,!1,1,o.length+1,0,n.inflate(),null)}getViewLinesData(e,t,i,n,o,s,r){s[o]?r[o]=this.getViewLineData(e,t,0):r[o]=null}getModelColumnOfViewPosition(e,t){return t}getViewPositionOfModelPosition(e,t){return new G.L(e,t)}getViewLineNumberOfModelPosition(e,t){return e}normalizePosition(e,t,i){return t}getInjectedTextAt(e,t){return null}}So.INSTANCE=new So;class Lo{constructor(){}isVisible(){return!1}setVisible(e){return e?So.INSTANCE:this}getProjectionData(){return null}getViewLineCount(){return 0}getViewLineContent(e,t,i){throw new Error("Not supported")}getViewLineLength(e,t,i){throw new Error("Not supported")}getViewLineMinColumn(e,t,i){throw new Error("Not supported")}getViewLineMaxColumn(e,t,i){throw new Error("Not supported")}getViewLineData(e,t,i){throw new Error("Not supported")}getViewLinesData(e,t,i,n,o,s,r){throw new Error("Not supported")}getModelColumnOfViewPosition(e,t){throw new Error("Not supported")}getViewPositionOfModelPosition(e,t){throw new Error("Not supported")}getViewLineNumberOfModelPosition(e,t){throw new Error("Not supported")}normalizePosition(e,t,i){throw new Error("Not supported")}getInjectedTextAt(e,t){throw new Error("Not supported")}}Lo.INSTANCE=new Lo;const ko=[""];function Do(e){if(e>=ko.length)for(let t=1;t<=e;t++)ko[t]=No(t);return ko[e]}function No(e){return new Array(e+1).join(" ")}var xo=i(7967);class Eo{constructor(e,t,i,n,o,s,r,a,l,h){this._editorId=e,this.model=t,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=i,this._monospaceLineBreaksComputerFactory=n,this.fontInfo=o,this.tabSize=s,this.wrappingStrategy=r,this.wrappingColumn=a,this.wrappingIndent=l,this.wordBreak=h,this._constructLines(!0,null)}dispose(){this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[])}createCoordinatesConverter(){return new Mo(this)}_constructLines(e,t){this.modelLineProjections=[],e&&(this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[]));const i=this.model.getLinesContent(),n=this.model.getInjectedTextDecorations(this._editorId),o=i.length,s=this.createLineBreaksComputer(),r=new f.H9(Ui.gk.fromDecorations(n));for(let m=0;me.lineNumber===m+1));s.addRequest(i[m],e,t?t[m]:null)}const a=s.finalize(),l=[],h=this.hiddenAreasDecorationIds.map((e=>this.model.getDecorationRange(e))).sort(Q.e.compareRangesUsingStarts);let d=1,c=0,u=-1,g=u+1=d&&e<=c,i=wo(a[m],!t);l[m]=i.getViewLineCount(),this.modelLineProjections[m]=i}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new xo.Ck(l)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map((e=>this.model.getDecorationRange(e)))}setHiddenAreas(e){const t=function(e){if(0===e.length)return[];const t=e.slice();t.sort(Q.e.compareRangesUsingStarts);const i=[];let n=t[0].startLineNumber,o=t[0].endLineNumber;for(let s=1,r=t.length;so+1?(i.push(new Q.e(n,1,o,1)),n=e.startLineNumber,o=e.endLineNumber):e.endLineNumber>o&&(o=e.endLineNumber)}return i.push(new Q.e(n,1,o,1)),i}(e.map((e=>this.model.validateRange(e)))),i=this.hiddenAreasDecorationIds.map((e=>this.model.getDecorationRange(e))).sort(Q.e.compareRangesUsingStarts);if(t.length===i.length){let e=!1;for(let n=0;n({range:e,options:on.qx.EMPTY})));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,n);const o=t;let s=1,r=0,a=-1,l=a+1=s&&e<=r?this.modelLineProjections[d].isVisible()&&(this.modelLineProjections[d]=this.modelLineProjections[d].setVisible(!1),t=!0):(h=!0,this.modelLineProjections[d].isVisible()||(this.modelLineProjections[d]=this.modelLineProjections[d].setVisible(!0),t=!0)),t){const e=this.modelLineProjections[d].getViewLineCount();this.projectedModelLineLineCounts.setValue(d,e)}}return h||this.setHiddenAreas([]),!0}modelPositionIsVisible(e,t){return!(e<1||e>this.modelLineProjections.length)&&this.modelLineProjections[e-1].isVisible()}getModelLineViewLineCount(e){return e<1||e>this.modelLineProjections.length?1:this.modelLineProjections[e-1].getViewLineCount()}setTabSize(e){return this.tabSize!==e&&(this.tabSize=e,this._constructLines(!1,null),!0)}setWrappingSettings(e,t,i,n,o){const s=this.fontInfo.equals(e),r=this.wrappingStrategy===t,a=this.wrappingColumn===i,l=this.wrappingIndent===n,h=this.wordBreak===o;if(s&&r&&a&&l&&h)return!1;const d=s&&r&&!a&&l&&h;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=i,this.wrappingIndent=n,this.wordBreak=o;let c=null;if(d){c=[];for(let e=0,t=this.modelLineProjections.length;e2&&!this.modelLineProjections[t-2].isVisible(),s=1===t?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1;let r=0;const a=[],l=[];for(let h=0,d=n.length;hr?(l=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,h=l+r-1,u=h+1,g=u+(o-r)-1,a=!0):ot?t:0|e}getActiveIndentGuide(e,t,i){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),i=this._toValidViewLineNumber(i);const n=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),o=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),s=this.convertViewPositionToModelPosition(i,this.getViewLineMinColumn(i)),r=this.model.guides.getActiveIndentGuide(n.lineNumber,o.lineNumber,s.lineNumber),a=this.convertModelPositionToViewPosition(r.startLineNumber,1),l=this.convertModelPositionToViewPosition(r.endLineNumber,this.model.getLineMaxColumn(r.endLineNumber));return{startLineNumber:a.lineNumber,endLineNumber:l.lineNumber,indent:r.indent}}getViewLineInfo(e){e=this._toValidViewLineNumber(e);const t=this.projectedModelLineLineCounts.getIndexOf(e-1),i=t.index,n=t.remainder;return new Io(i+1,n)}getMinColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getMaxColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getModelStartPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),n=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new G.L(e.modelLineNumber,n)}getModelEndPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),n=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new G.L(e.modelLineNumber,n)}getViewLineInfosGroupedByModelRanges(e,t){const i=this.getViewLineInfo(e),n=this.getViewLineInfo(t),o=new Array;let s=this.getModelStartPositionOfViewLine(i),r=new Array;for(let a=i.modelLineNumber;a<=n.modelLineNumber;a++){const e=this.modelLineProjections[a-1];if(e.isVisible()){const t=a===i.modelLineNumber?i.modelLineWrappedLineIdx:0,o=a===n.modelLineNumber?n.modelLineWrappedLineIdx+1:e.getViewLineCount();for(let e=t;e{if(-1!==e.forWrappedLinesAfterColumn){if(this.modelLineProjections[i.modelLineNumber-1].getViewPositionOfModelPosition(0,e.forWrappedLinesAfterColumn).lineNumber>=i.modelLineWrappedLineIdx)return}if(-1!==e.forWrappedLinesBeforeOrAtColumn){if(this.modelLineProjections[i.modelLineNumber-1].getViewPositionOfModelPosition(0,e.forWrappedLinesBeforeOrAtColumn).lineNumberi.modelLineWrappedLineIdx)return}const n=this.convertModelPositionToViewPosition(i.modelLineNumber,e.horizontalLine.endColumn),o=this.modelLineProjections[i.modelLineNumber-1].getViewPositionOfModelPosition(0,e.horizontalLine.endColumn);return o.lineNumber===i.modelLineWrappedLineIdx?new xt.UO(e.visibleColumn,t,e.className,new xt.vW(e.horizontalLine.top,n.column),-1,-1):o.lineNumber!!e)))}}return s}getViewLinesIndentGuides(e,t){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);const i=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),n=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t));let o=[];const s=[],r=[],a=i.lineNumber-1,l=n.lineNumber-1;let h=null;for(let g=a;g<=l;g++){const e=this.modelLineProjections[g];if(e.isVisible()){const t=e.getViewLineNumberOfModelPosition(0,g===a?i.column:1),n=e.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(g+1)),o=n-t+1;let l=0;o>1&&1===e.getViewLineMinColumn(this.model,g+1,n)&&(l=0===t?1:2),s.push(o),r.push(l),null===h&&(h=new G.L(g+1,0))}else null!==h&&(o=o.concat(this.model.guides.getLinesIndentGuides(h.lineNumber,g)),h=null)}null!==h&&(o=o.concat(this.model.guides.getLinesIndentGuides(h.lineNumber,n.lineNumber)),h=null);const d=t-e+1,c=new Array(d);let u=0;for(let g=0,m=o.length;gt&&(c=!0,d=t-o+1),n.getViewLinesData(this.model,l+1,h,d,o-e,i,a),o+=d,c)break}return a}validateViewPosition(e,t,i){e=this._toValidViewLineNumber(e);const n=this.projectedModelLineLineCounts.getIndexOf(e-1),o=n.index,s=n.remainder,r=this.modelLineProjections[o],a=r.getViewLineMinColumn(this.model,o+1,s),l=r.getViewLineMaxColumn(this.model,o+1,s);tl&&(t=l);const h=r.getModelColumnOfViewPosition(s,t);return this.model.validatePosition(new G.L(o+1,h)).equals(i)?new G.L(e,t):this.convertModelPositionToViewPosition(i.lineNumber,i.column)}validateViewRange(e,t){const i=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),n=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition());return new Q.e(i.lineNumber,i.column,n.lineNumber,n.column)}convertViewPositionToModelPosition(e,t){const i=this.getViewLineInfo(e),n=this.modelLineProjections[i.modelLineNumber-1].getModelColumnOfViewPosition(i.modelLineWrappedLineIdx,t);return this.model.validatePosition(new G.L(i.modelLineNumber,n))}convertViewRangeToModelRange(e){const t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),i=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new Q.e(t.lineNumber,t.column,i.lineNumber,i.column)}convertModelPositionToViewPosition(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2,n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];const s=this.model.validatePosition(new G.L(e,t)),r=s.lineNumber,a=s.column;let l=r-1,h=!1;if(o)for(;l0&&!this.modelLineProjections[l].isVisible();)l--,h=!0;if(0===l&&!this.modelLineProjections[l].isVisible())return new G.L(n?0:1,1);const d=1+this.projectedModelLineLineCounts.getPrefixSum(l);let c;return c=h?o?this.modelLineProjections[l].getViewPositionOfModelPosition(d,1,i):this.modelLineProjections[l].getViewPositionOfModelPosition(d,this.model.getLineMaxColumn(l+1),i):this.modelLineProjections[r-1].getViewPositionOfModelPosition(d,a,i),c}convertModelRangeToViewRange(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(e.isEmpty()){const i=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,t);return Q.e.fromPositions(i)}{const t=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,1),i=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn,0);return new Q.e(t.lineNumber,t.column,i.lineNumber,i.column)}}getViewLineNumberOfModelPosition(e,t){let i=e-1;if(this.modelLineProjections[i].isVisible()){const e=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(e,t)}for(;i>0&&!this.modelLineProjections[i].isVisible();)i--;if(0===i&&!this.modelLineProjections[i].isVisible())return 1;const n=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(n,this.model.getLineMaxColumn(i+1))}getDecorationsInRange(e,t,i,n,o){const s=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),r=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(r.lineNumber-s.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new Q.e(s.lineNumber,1,r.lineNumber,r.column),t,i,n,o);let a=[];const l=s.lineNumber-1,h=r.lineNumber-1;let d=null;for(let m=l;m<=h;m++){if(this.modelLineProjections[m].isVisible())null===d&&(d=new G.L(m+1,m===l?s.column:1));else if(null!==d){const e=this.model.getLineMaxColumn(m);a=a.concat(this.model.getDecorationsInRange(new Q.e(d.lineNumber,d.column,m,e),t,i,n)),d=null}}null!==d&&(a=a.concat(this.model.getDecorationsInRange(new Q.e(d.lineNumber,d.column,r.lineNumber,r.column),t,i,n)),d=null),a.sort(((e,t)=>{const i=Q.e.compareRangesUsingStarts(e.range,t.range);return 0===i?e.idt.id?1:0:i}));const c=[];let u=0,g=null;for(const m of a){const e=m.id;g!==e&&(g=e,c[u++]=m)}return c}getInjectedTextAt(e){const t=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[t.modelLineNumber-1].getInjectedTextAt(t.modelLineWrappedLineIdx,e.column)}normalizePosition(e,t){const i=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[i.modelLineNumber-1].normalizePosition(i.modelLineWrappedLineIdx,e,t)}getLineIndentColumn(e){const t=this.getViewLineInfo(e);return 0===t.modelLineWrappedLineIdx?this.model.getLineIndentColumn(t.modelLineNumber):0}}class Io{constructor(e,t){this.modelLineNumber=e,this.modelLineWrappedLineIdx=t}}class To{constructor(e,t){this.modelRange=e,this.viewLines=t}}class Mo{constructor(e){this._lines=e}convertViewPositionToModelPosition(e){return this._lines.convertViewPositionToModelPosition(e.lineNumber,e.column)}convertViewRangeToModelRange(e){return this._lines.convertViewRangeToModelRange(e)}validateViewPosition(e,t){return this._lines.validateViewPosition(e.lineNumber,e.column,t)}validateViewRange(e,t){return this._lines.validateViewRange(e,t)}convertModelPositionToViewPosition(e,t,i,n){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column,t,i,n)}convertModelRangeToViewRange(e,t){return this._lines.convertModelRangeToViewRange(e,t)}modelPositionIsVisible(e){return this._lines.modelPositionIsVisible(e.lineNumber,e.column)}getModelLineViewLineCount(e){return this._lines.getModelLineViewLineCount(e)}getViewLineNumberOfModelPosition(e,t){return this._lines.getViewLineNumberOfModelPosition(e,t)}}class Ao{constructor(e){this.model=e}dispose(){}createCoordinatesConverter(){return new Ro(this)}getHiddenAreas(){return[]}setHiddenAreas(e){return!1}setTabSize(e){return!1}setWrappingSettings(e,t,i,n){return!1}createLineBreaksComputer(){const e=[];return{addRequest:(t,i,n)=>{e.push(null)},finalize:()=>e}}onModelFlushed(){}onModelLinesDeleted(e,t,i){return new Rn(t,i)}onModelLinesInserted(e,t,i,n){return new On(t,i)}onModelLineChanged(e,t,i){return[!1,new An(t,1),null,null]}acceptVersionId(e){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(e,t,i){return{startLineNumber:e,endLineNumber:e,indent:0}}getViewLinesBracketGuides(e,t,i){return new Array(t-e+1).fill([])}getViewLinesIndentGuides(e,t){const i=t-e+1,n=new Array(i);for(let o=0;ot)}getModelLineViewLineCount(e){return 1}getViewLineNumberOfModelPosition(e,t){return e}}const Oo=_t.U.Right;class Po{constructor(e){this.persist=0,this._requiredLanes=1,this.lanes=new Uint8Array(Math.ceil((e+1)*Oo/8))}reset(e){const t=Math.ceil((e+1)*Oo/8);this.lanes.length>>3]|=1<>>3]&1<>>3]&1<this._updateConfigurationViewLineCountNow()),0)),this._hasFocus=!1,this._viewportStart=Bo.create(this.model),this.glyphLanes=new Po(0),this.model.isTooLargeForTokenization())this._lines=new Ao(this.model);else{const e=this._configuration.options,t=e.get(50),i=e.get(139),s=e.get(146),r=e.get(138),a=e.get(129);this._lines=new Eo(this._editorId,this.model,n,o,t,this.model.getOptions().tabSize,i,s.wrappingColumn,r,a)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new no(i,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new vo(this._configuration,this.getLineCount(),s)),this._register(this.viewLayout.onDidScroll((e=>{e.scrollTopChanged&&this._handleVisibleLinesChanged(),e.scrollTopChanged&&this._viewportStart.invalidate(),this._eventDispatcher.emitSingleViewEvent(new Fn(e)),this._eventDispatcher.emitOutgoingEvent(new qn(e.oldScrollWidth,e.oldScrollLeft,e.oldScrollHeight,e.oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop))}))),this._register(this.viewLayout.onDidContentSizeChange((e=>{this._eventDispatcher.emitOutgoingEvent(e)}))),this._decorations=new bo.CU(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast((e=>{try{const t=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(t,e)}finally{this._eventDispatcher.endEmitViewEvents()}}))),this._register(Wt.getInstance().onDidChange((()=>{this._eventDispatcher.emitSingleViewEvent(new Vn)}))),this._register(this._themeService.onDidColorThemeChange((e=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new Bn(e))}))),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this._viewportStart.dispose(),this._eventDispatcher.dispose()}createLineBreaksComputer(){return this._lines.createLineBreaksComputer()}addViewEventHandler(e){this._eventDispatcher.addViewEventHandler(e)}removeViewEventHandler(e){this._eventDispatcher.removeViewEventHandler(e)}_updateConfigurationViewLineCountNow(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}getModelVisibleRanges(){const e=this.viewLayout.getLinesViewportData(),t=new Q.e(e.startLineNumber,this.getLineMinColumn(e.startLineNumber),e.endLineNumber,this.getLineMaxColumn(e.endLineNumber));return this._toModelVisibleRanges(t)}visibleLinesStabilized(){const e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!0)}_handleVisibleLinesChanged(){const e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!1)}setHasFocus(e){this._hasFocus=e,this._cursor.setHasFocus(e),this._eventDispatcher.emitSingleViewEvent(new In(e)),this._eventDispatcher.emitOutgoingEvent(new jn(!e,e))}onCompositionStart(){this._eventDispatcher.emitSingleViewEvent(new Ln)}onCompositionEnd(){this._eventDispatcher.emitSingleViewEvent(new kn)}_captureStableViewport(){if(this._viewportStart.isValid&&this.viewLayout.getCurrentScrollTop()>0){const e=new G.L(this._viewportStart.viewLineNumber,this.getLineMinColumn(this._viewportStart.viewLineNumber)),t=this.coordinatesConverter.convertViewPositionToModelPosition(e);return new Ho(t,this._viewportStart.startLineDelta)}return new Ho(null,0)}_onConfigurationChanged(e,t){const i=this._captureStableViewport(),n=this._configuration.options,o=n.get(50),s=n.get(139),r=n.get(146),a=n.get(138),l=n.get(129);this._lines.setWrappingSettings(o,s,r.wrappingColumn,a,l)&&(e.emitViewEvent(new En),e.emitViewEvent(new Mn),e.emitViewEvent(new xn(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this._updateConfigurationViewLineCount.schedule()),t.hasChanged(91)&&(this._decorations.reset(),e.emitViewEvent(new xn(null))),t.hasChanged(98)&&(this._decorations.reset(),e.emitViewEvent(new xn(null))),e.emitViewEvent(new Dn(t)),this.viewLayout.onConfigurationChanged(t),i.recoverViewportStart(this.coordinatesConverter,this.viewLayout),vn.LM.shouldRecreate(t)&&(this.cursorConfig=new vn.LM(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeContentOrInjectedText((e=>{try{const t=this._eventDispatcher.beginEmitViewEvents();let i=!1,n=!1;const o=e instanceof Ui.fV?e.rawContentChangedEvent.changes:e.changes,s=e instanceof Ui.fV?e.rawContentChangedEvent.versionId:null,r=this._lines.createLineBreaksComputer();for(const e of o)switch(e.changeType){case 4:for(let t=0;t!e.ownerId||e.ownerId===this._editorId))),r.addRequest(i,n,null)}break;case 2:{let t=null;e.injectedText&&(t=e.injectedText.filter((e=>!e.ownerId||e.ownerId===this._editorId))),r.addRequest(e.detail,t,null);break}}const a=r.finalize(),l=new f.H9(a);for(const e of o)switch(e.changeType){case 1:this._lines.onModelFlushed(),t.emitViewEvent(new En),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount()),i=!0;break;case 3:{const n=this._lines.onModelLinesDeleted(s,e.fromLineNumber,e.toLineNumber);null!==n&&(t.emitViewEvent(n),this.viewLayout.onLinesDeleted(n.fromLineNumber,n.toLineNumber)),i=!0;break}case 4:{const n=l.takeCount(e.detail.length),o=this._lines.onModelLinesInserted(s,e.fromLineNumber,e.toLineNumber,n);null!==o&&(t.emitViewEvent(o),this.viewLayout.onLinesInserted(o.fromLineNumber,o.toLineNumber)),i=!0;break}case 2:{const i=l.dequeue(),[o,r,a,h]=this._lines.onModelLineChanged(s,e.lineNumber,i);n=o,r&&t.emitViewEvent(r),a&&(t.emitViewEvent(a),this.viewLayout.onLinesInserted(a.fromLineNumber,a.toLineNumber)),h&&(t.emitViewEvent(h),this.viewLayout.onLinesDeleted(h.fromLineNumber,h.toLineNumber));break}}null!==s&&this._lines.acceptVersionId(s),this.viewLayout.onHeightMaybeChanged(),!i&&n&&(t.emitViewEvent(new Mn),t.emitViewEvent(new xn(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}const t=this._viewportStart.isValid;if(this._viewportStart.invalidate(),this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&t){const e=this.model._getTrackedRange(this._viewportStart.modelTrackedRange);if(e){const t=this.coordinatesConverter.convertModelPositionToViewPosition(e.getStartPosition()),i=this.viewLayout.getVerticalOffsetForLineNumber(t.lineNumber);this.viewLayout.setScrollPosition({scrollTop:i+this._viewportStart.startLineDelta},1)}}try{const t=this._eventDispatcher.beginEmitViewEvents();e instanceof Ui.fV&&t.emitOutgoingEvent(new eo(e.contentChangedEvent)),this._cursor.onModelContentChanged(t,e)}finally{this._eventDispatcher.endEmitViewEvents()}this._handleVisibleLinesChanged()}))),this._register(this.model.onDidChangeTokens((e=>{const t=[];for(let i=0,n=e.ranges.length;i{this._eventDispatcher.emitSingleViewEvent(new Tn),this.cursorConfig=new vn.LM(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new Xn(e))}))),this._register(this.model.onDidChangeLanguage((e=>{this.cursorConfig=new vn.LM(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new Jn(e))}))),this._register(this.model.onDidChangeOptions((e=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{const e=this._eventDispatcher.beginEmitViewEvents();e.emitViewEvent(new En),e.emitViewEvent(new Mn),e.emitViewEvent(new xn(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new vn.LM(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new to(e))}))),this._register(this.model.onDidChangeDecorations((e=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new xn(e)),this._eventDispatcher.emitOutgoingEvent(new $n(e))})))}setHiddenAreas(e,t){var i;this.hiddenAreasModel.setHiddenAreas(t,e);const n=this.hiddenAreasModel.getMergedRanges();if(n===this.previousHiddenAreas)return;this.previousHiddenAreas=n;const o=this._captureStableViewport();let s=!1;try{const e=this._eventDispatcher.beginEmitViewEvents();s=this._lines.setHiddenAreas(n),s&&(e.emitViewEvent(new En),e.emitViewEvent(new Mn),e.emitViewEvent(new xn(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged());const t=null===(i=o.viewportStartModelPosition)||void 0===i?void 0:i.lineNumber;t&&n.some((e=>e.startLineNumber<=t&&t<=e.endLineNumber))||o.recoverViewportStart(this.coordinatesConverter,this.viewLayout)}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),s&&this._eventDispatcher.emitOutgoingEvent(new Qn)}getVisibleRangesPlusViewportAboveBelow(){const e=this._configuration.options.get(145),t=this._configuration.options.get(67),i=Math.max(20,Math.round(e.height/t)),n=this.viewLayout.getLinesViewportData(),o=Math.max(1,n.completelyVisibleStartLineNumber-i),s=Math.min(this.getLineCount(),n.completelyVisibleEndLineNumber+i);return this._toModelVisibleRanges(new Q.e(o,this.getLineMinColumn(o),s,this.getLineMaxColumn(s)))}getVisibleRanges(){const e=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(e)}getHiddenAreas(){return this._lines.getHiddenAreas()}_toModelVisibleRanges(e){const t=this.coordinatesConverter.convertViewRangeToModelRange(e),i=this._lines.getHiddenAreas();if(0===i.length)return[t];const n=[];let o=0,s=t.startLineNumber,r=t.startColumn;const a=t.endLineNumber,l=t.endColumn;for(let h=0,d=i.length;ha||(st.toInlineDecoration(e)))]),new Ht.wA(s.minColumn,s.maxColumn,s.content,s.continuesWithWrappedLine,i,n,s.tokens,t,o,s.startVisibleColumn)}getViewLineData(e){return this._lines.getViewLineData(e)}getMinimapLinesRenderingData(e,t,i){const n=this._lines.getViewLinesData(e,t,i);return new Ht.ud(this.getTabSize(),n)}getAllOverviewRulerDecorations(e){const t=this.model.getOverviewRulerDecorations(this._editorId,(0,k.$J)(this._configuration.options)),i=new zo;for(const n of t){const t=n.options,o=t.overviewRuler;if(!o)continue;const s=o.position;if(0===s)continue;const r=o.getColor(e.value),a=this.coordinatesConverter.getViewLineNumberOfModelPosition(n.range.startLineNumber,n.range.startColumn),l=this.coordinatesConverter.getViewLineNumberOfModelPosition(n.range.endLineNumber,n.range.endColumn);i.accept(r,t.zIndex,a,l,s)}return i.asArray}_invalidateDecorationsColorCache(){const e=this.model.getOverviewRulerDecorations();for(const t of e){const e=t.options.overviewRuler;null===e||void 0===e||e.invalidateCachedColor();const i=t.options.minimap;null===i||void 0===i||i.invalidateCachedColor()}}getValueInRange(e,t){const i=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(i,t)}getValueLengthInRange(e,t){const i=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueLengthInRange(i,t)}modifyPosition(e,t){const i=this.coordinatesConverter.convertViewPositionToModelPosition(e),n=this.model.modifyPosition(i,t);return this.coordinatesConverter.convertModelPositionToViewPosition(n)}deduceModelPositionRelativeToViewPosition(e,t,i){const n=this.coordinatesConverter.convertViewPositionToModelPosition(e);2===this.model.getEOL().length&&(t<0?t-=i:t+=i);const o=this.model.getOffsetAt(n)+t;return this.model.getPositionAt(o)}getPlainTextToCopy(e,t,i){const n=i?"\r\n":this.model.getEOL();(e=e.slice(0)).sort(Q.e.compareRangesUsingStarts);let o=!1,s=!1;for(const a of e)a.isEmpty()?o=!0:s=!0;if(!s){if(!t)return"";const i=e.map((e=>e.startLineNumber));let o="";for(let e=0;e0&&i[e-1]===i[e]||(o+=this.model.getLineContent(i[e])+n);return o}if(o&&t){const t=[];let n=0;for(const o of e){const e=o.startLineNumber;o.isEmpty()?e!==n&&t.push(this.model.getLineContent(e)):t.push(this.model.getValueInRange(o,i?2:0)),n=e}return 1===t.length?t[0]:t}const r=[];for(const a of e)a.isEmpty()||r.push(this.model.getValueInRange(a,i?2:0));return 1===r.length?r[0]:r}getRichTextToCopy(e,t){const i=this.model.getLanguageId();if(i===ho.bd)return null;if(1!==e.length)return null;let n=e[0];if(n.isEmpty()){if(!t)return null;const e=n.startLineNumber;n=new Q.e(e,this.model.getLineMinColumn(e),e,this.model.getLineMaxColumn(e))}const o=this._configuration.options.get(50),s=this._getColorMap();let r;if(/[:;\\\/<>]/.test(o.fontFamily)||o.fontFamily===k.hL.fontFamily)r=k.hL.fontFamily;else{r=o.fontFamily,r=r.replace(/"/g,"'");if(!/[,']/.test(r)){/[+ ]/.test(r)&&(r="'".concat(r,"'"))}r="".concat(r,", ").concat(k.hL.fontFamily)}return{mode:i,html:'
    '+this._getHTMLToCopy(n,s)+"
    "}}_getHTMLToCopy(e,t){const i=e.startLineNumber,n=e.startColumn,o=e.endLineNumber,s=e.endColumn,r=this.getTabSize();let a="";for(let l=i;l<=o;l++){const e=this.model.tokenization.getLineTokens(l),h=e.getLineContent(),d=l===i?n-1:0,c=l===o?s-1:h.length;a+=""===h?"
    ":(0,co.Fq)(h,e.inflate(),t,d,c,r,_.ED)}return a}_getColorMap(){const e=Oe.RW.getColorMap(),t=["#000000"];if(e)for(let i=1,n=e.length;ithis._cursor.setStates(n,e,t,i)))}getCursorColumnSelectData(){return this._cursor.getCursorColumnSelectData()}getCursorAutoClosedCharacters(){return this._cursor.getAutoClosedCharacters()}setCursorColumnSelectData(e){this._cursor.setCursorColumnSelectData(e)}getPrevEditOperationType(){return this._cursor.getPrevEditOperationType()}setPrevEditOperationType(e){this._cursor.setPrevEditOperationType(e)}getSelection(){return this._cursor.getSelection()}getSelections(){return this._cursor.getSelections()}getPosition(){return this._cursor.getPrimaryCursorState().modelState.position}setSelections(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._withViewEventsCollector((n=>this._cursor.setSelections(n,e,t,i)))}saveCursorState(){return this._cursor.saveState()}restoreCursorState(e){this._withViewEventsCollector((t=>this._cursor.restoreState(t,e)))}_executeCursorEdit(e){this._cursor.context.cursorConfig.readOnly?this._eventDispatcher.emitOutgoingEvent(new Yn):this._withViewEventsCollector(e)}executeEdits(e,t,i){this._executeCursorEdit((n=>this._cursor.executeEdits(n,e,t,i)))}startComposition(){this._executeCursorEdit((e=>this._cursor.startComposition(e)))}endComposition(e){this._executeCursorEdit((t=>this._cursor.endComposition(t,e)))}type(e,t){this._executeCursorEdit((i=>this._cursor.type(i,e,t)))}compositionType(e,t,i,n,o){this._executeCursorEdit((s=>this._cursor.compositionType(s,e,t,i,n,o)))}paste(e,t,i,n){this._executeCursorEdit((o=>this._cursor.paste(o,e,t,i,n)))}cut(e){this._executeCursorEdit((t=>this._cursor.cut(t,e)))}executeCommand(e,t){this._executeCursorEdit((i=>this._cursor.executeCommand(i,e,t)))}executeCommands(e,t){this._executeCursorEdit((i=>this._cursor.executeCommands(i,e,t)))}revealAllCursors(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this._withViewEventsCollector((n=>this._cursor.revealAll(n,e,i,0,t,0)))}revealPrimaryCursor(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this._withViewEventsCollector((n=>this._cursor.revealPrimary(n,e,i,0,t,0)))}revealTopMostCursor(e){const t=this._cursor.getTopMostViewPosition(),i=new Q.e(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector((t=>t.emitViewEvent(new Pn(e,!1,i,null,0,!0,0))))}revealBottomMostCursor(e){const t=this._cursor.getBottomMostViewPosition(),i=new Q.e(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector((t=>t.emitViewEvent(new Pn(e,!1,i,null,0,!0,0))))}revealRange(e,t,i,n,o){this._withViewEventsCollector((s=>s.emitViewEvent(new Pn(e,!1,i,null,n,t,o))))}changeWhitespace(e){this.viewLayout.changeWhitespace(e)&&(this._eventDispatcher.emitSingleViewEvent(new Wn),this._eventDispatcher.emitOutgoingEvent(new Gn))}_withViewEventsCollector(e){try{return e(this._eventDispatcher.beginEmitViewEvents())}finally{this._eventDispatcher.endEmitViewEvents()}}normalizePosition(e,t){return this._lines.normalizePosition(e,t)}getLineIndentColumn(e){return this._lines.getLineIndentColumn(e)}}class Bo{static create(e){const t=e._setTrackedRange(null,new Q.e(1,1,1,1),1);return new Bo(e,1,!1,t,0)}get viewLineNumber(){return this._viewLineNumber}get isValid(){return this._isValid}get modelTrackedRange(){return this._modelTrackedRange}get startLineDelta(){return this._startLineDelta}constructor(e,t,i,n,o){this._model=e,this._viewLineNumber=t,this._isValid=i,this._modelTrackedRange=n,this._startLineDelta=o}dispose(){this._model._setTrackedRange(this._modelTrackedRange,null,1)}update(e,t){const i=e.coordinatesConverter.convertViewPositionToModelPosition(new G.L(t,e.getLineMinColumn(t))),n=e.model._setTrackedRange(this._modelTrackedRange,new Q.e(i.lineNumber,i.column,i.lineNumber,i.column),1),o=e.viewLayout.getVerticalOffsetForLineNumber(t),s=e.viewLayout.getCurrentScrollTop();this._viewLineNumber=t,this._isValid=!0,this._modelTrackedRange=n,this._startLineDelta=s-o}invalidate(){this._isValid=!1}}class zo{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(e,t,i,n,o){const s=this._asMap[e];if(s){const e=s.data,t=e[e.length-3],r=e[e.length-1];if(t===o&&r+1>=i)return void(n>r&&(e[e.length-1]=n));e.push(o,i,n)}else{const s=new Ht.SQ(e,t,[o,i,n]);this._asMap[e]=s,this.asArray.push(s)}}}class Vo{constructor(){this.hiddenAreas=new Map,this.shouldRecompute=!1,this.ranges=[]}setHiddenAreas(e,t){const i=this.hiddenAreas.get(e);i&&Wo(i,t)||(this.hiddenAreas.set(e,t),this.shouldRecompute=!0)}getMergedRanges(){if(!this.shouldRecompute)return this.ranges;this.shouldRecompute=!1;const e=Array.from(this.hiddenAreas.values()).reduce(((e,t)=>function(e,t){const i=[];let n=0,o=0;for(;n=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Zo=function(e,t){return function(i,n){t(i,n,e)}};let Yo=Ko=class extends c.JT{get isSimpleWidget(){return this._configuration.isSimpleWidget}constructor(e,t,i,n,s,r,a,c,u,g,m,f){var p;super(),this.languageConfigurationService=m,this._deliveryQueue=(0,d.Sp)(),this._contributions=this._register(new $i),this._onDidDispose=this._register(new d.Q5),this.onDidDispose=this._onDidDispose.event,this._onDidChangeModelContent=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelContent=this._onDidChangeModelContent.event,this._onDidChangeModelLanguage=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguage=this._onDidChangeModelLanguage.event,this._onDidChangeModelLanguageConfiguration=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguageConfiguration=this._onDidChangeModelLanguageConfiguration.event,this._onDidChangeModelOptions=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelOptions=this._onDidChangeModelOptions.event,this._onDidChangeModelDecorations=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelDecorations=this._onDidChangeModelDecorations.event,this._onDidChangeModelTokens=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelTokens=this._onDidChangeModelTokens.event,this._onDidChangeConfiguration=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onWillChangeModel=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onWillChangeModel=this._onWillChangeModel.event,this._onDidChangeModel=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModel=this._onDidChangeModel.event,this._onDidChangeCursorPosition=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorPosition=this._onDidChangeCursorPosition.event,this._onDidChangeCursorSelection=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorSelection=this._onDidChangeCursorSelection.event,this._onDidAttemptReadOnlyEdit=this._register(new es(this._contributions,this._deliveryQueue)),this.onDidAttemptReadOnlyEdit=this._onDidAttemptReadOnlyEdit.event,this._onDidLayoutChange=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onDidLayoutChange=this._onDidLayoutChange.event,this._editorTextFocus=this._register(new Xo({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorText=this._editorTextFocus.onDidChangeToTrue,this.onDidBlurEditorText=this._editorTextFocus.onDidChangeToFalse,this._editorWidgetFocus=this._register(new Xo({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorWidget=this._editorWidgetFocus.onDidChangeToTrue,this.onDidBlurEditorWidget=this._editorWidgetFocus.onDidChangeToFalse,this._onWillType=this._register(new es(this._contributions,this._deliveryQueue)),this.onWillType=this._onWillType.event,this._onDidType=this._register(new es(this._contributions,this._deliveryQueue)),this.onDidType=this._onDidType.event,this._onDidCompositionStart=this._register(new es(this._contributions,this._deliveryQueue)),this.onDidCompositionStart=this._onDidCompositionStart.event,this._onDidCompositionEnd=this._register(new es(this._contributions,this._deliveryQueue)),this.onDidCompositionEnd=this._onDidCompositionEnd.event,this._onDidPaste=this._register(new es(this._contributions,this._deliveryQueue)),this.onDidPaste=this._onDidPaste.event,this._onMouseUp=this._register(new es(this._contributions,this._deliveryQueue)),this.onMouseUp=this._onMouseUp.event,this._onMouseDown=this._register(new es(this._contributions,this._deliveryQueue)),this.onMouseDown=this._onMouseDown.event,this._onMouseDrag=this._register(new es(this._contributions,this._deliveryQueue)),this.onMouseDrag=this._onMouseDrag.event,this._onMouseDrop=this._register(new es(this._contributions,this._deliveryQueue)),this.onMouseDrop=this._onMouseDrop.event,this._onMouseDropCanceled=this._register(new es(this._contributions,this._deliveryQueue)),this.onMouseDropCanceled=this._onMouseDropCanceled.event,this._onDropIntoEditor=this._register(new es(this._contributions,this._deliveryQueue)),this.onDropIntoEditor=this._onDropIntoEditor.event,this._onContextMenu=this._register(new es(this._contributions,this._deliveryQueue)),this.onContextMenu=this._onContextMenu.event,this._onMouseMove=this._register(new es(this._contributions,this._deliveryQueue)),this.onMouseMove=this._onMouseMove.event,this._onMouseLeave=this._register(new es(this._contributions,this._deliveryQueue)),this.onMouseLeave=this._onMouseLeave.event,this._onMouseWheel=this._register(new es(this._contributions,this._deliveryQueue)),this.onMouseWheel=this._onMouseWheel.event,this._onKeyUp=this._register(new es(this._contributions,this._deliveryQueue)),this.onKeyUp=this._onKeyUp.event,this._onKeyDown=this._register(new es(this._contributions,this._deliveryQueue)),this.onKeyDown=this._onKeyDown.event,this._onDidContentSizeChange=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._onDidScrollChange=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onDidScrollChange=this._onDidScrollChange.event,this._onDidChangeViewZones=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeViewZones=this._onDidChangeViewZones.event,this._onDidChangeHiddenAreas=this._register(new d.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeHiddenAreas=this._onDidChangeHiddenAreas.event,this._actions=new Map,this._bannerDomNode=null,this._dropIntoEditorDecorations=this.createDecorationsCollection(),s.willCreateCodeEditor();const _={...t};let v;this._domElement=e,this._overflowWidgetsDomNode=_.overflowWidgetsDomNode,delete _.overflowWidgetsDomNode,this._id=++$o,this._decorationTypeKeysToIds={},this._decorationTypeSubtypes={},this._telemetryData=i.telemetryData,this._configuration=this._register(this._createConfiguration(i.isSimpleWidget||!1,_,g)),this._register(this._configuration.onDidChange((e=>{this._onDidChangeConfiguration.fire(e);const t=this._configuration.options;if(e.hasChanged(145)){const e=t.get(145);this._onDidLayoutChange.fire(e)}}))),this._contextKeyService=this._register(a.createScoped(this._domElement)),this._notificationService=u,this._codeEditorService=s,this._commandService=r,this._themeService=c,this._register(new ts(this,this._contextKeyService)),this._register(new is(this,this._contextKeyService,f)),this._instantiationService=n.createChild(new qo.y([jo.i6,this._contextKeyService])),this._modelData=null,this._focusTracker=new ns(e,this._overflowWidgetsDomNode),this._register(this._focusTracker.onChange((()=>{this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())}))),this._contentWidgets={},this._overlayWidgets={},this._glyphMarginWidgets={},v=Array.isArray(i.contributions)?i.contributions:o.Uc.getEditorContributions(),this._contributions.initialize(this,v,this._instantiationService);for(const l of o.Uc.getEditorActions()){if(this._actions.has(l.id)){(0,h.dL)(new Error("Cannot have two actions with the same id ".concat(l.id)));continue}const e=new Xi.p(l.id,l.label,l.alias,l.metadata,null!==(p=l.precondition)&&void 0!==p?p:void 0,(e=>this._instantiationService.invokeFunction((t=>Promise.resolve(l.runEditorCommand(t,this,e))))),this._contextKeyService);this._actions.set(e.id,e)}const b=()=>!this._configuration.options.get(91)&&this._configuration.options.get(36).enabled;this._register(new l.eg(this._domElement,{onDragOver:e=>{if(!b())return;const t=this.getTargetAtClientPoint(e.clientX,e.clientY);(null===t||void 0===t?void 0:t.position)&&this.showDropIndicatorAt(t.position)},onDrop:async e=>{if(!b())return;if(this.removeDropIndicator(),!e.dataTransfer)return;const t=this.getTargetAtClientPoint(e.clientX,e.clientY);(null===t||void 0===t?void 0:t.position)&&this._onDropIntoEditor.fire({position:t.position,event:e})},onDragLeave:()=>{this.removeDropIndicator()},onDragEnd:()=>{this.removeDropIndicator()}})),this._codeEditorService.addCodeEditor(this)}writeScreenReaderContent(e){var t;null===(t=this._modelData)||void 0===t||t.view.writeScreenReaderContent(e)}_createConfiguration(e,t,i){return new M(e,t,this._domElement,i)}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return en.g.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose(),this._actions.clear(),this._contentWidgets={},this._overlayWidgets={},this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),super.dispose()}invokeWithinContext(e){return this._instantiationService.invokeFunction(e)}updateOptions(e){this._configuration.updateOptions(e||{})}getOptions(){return this._configuration.options}getOption(e){return this._configuration.options.get(e)}getRawOptions(){return this._configuration.getRawOptions()}getOverflowWidgetsDomNode(){return this._overflowWidgetsDomNode}getConfiguredWordAtPosition(e){return this._modelData?Ji.w.getWordAtPosition(this._modelData.model,this._configuration.options.get(131),this._configuration.options.get(130),e):null}getValue(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!this._modelData)return"";const t=!(!e||!e.preserveBOM);let i=0;return e&&e.lineEnding&&"\n"===e.lineEnding?i=1:e&&e.lineEnding&&"\r\n"===e.lineEnding&&(i=2),this._modelData.model.getValue(i,t)}setValue(e){this._modelData&&this._modelData.model.setValue(e)}getModel(){return this._modelData?this._modelData.model:null}setModel(){var e;const t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(null===this._modelData&&null===t)return;if(this._modelData&&this._modelData.model===t)return;const i={oldModelUrl:(null===(e=this._modelData)||void 0===e?void 0:e.model.uri)||null,newModelUrl:(null===t||void 0===t?void 0:t.uri)||null};this._onWillChangeModel.fire(i);const n=this.hasTextFocus(),o=this._detachModel();this._attachModel(t),n&&this.hasModel()&&this.focus(),this._removeDecorationTypes(),this._onDidChangeModel.fire(i),this._postDetachModelCleanup(o),this._contributionsDisposable=this._contributions.onAfterModelAttached()}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(const e in this._decorationTypeSubtypes){const t=this._decorationTypeSubtypes[e];for(const i in t)this._removeDecorationType(e+"-"+i)}this._decorationTypeSubtypes={}}}getVisibleRanges(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]}getVisibleRangesPlusViewportAboveBelow(){return this._modelData?this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow():[]}getWhitespaces(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]}static _getVerticalOffsetAfterPosition(e,t,i,n){const o=e.model.validatePosition({lineNumber:t,column:i}),s=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(o);return e.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(s.lineNumber,n)}getTopForLineNumber(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this._modelData?Ko._getVerticalOffsetForPosition(this._modelData,e,1,t):-1}getTopForPosition(e,t){return this._modelData?Ko._getVerticalOffsetForPosition(this._modelData,e,t,!1):-1}static _getVerticalOffsetForPosition(e,t,i){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const o=e.model.validatePosition({lineNumber:t,column:i}),s=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(o);return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(s.lineNumber,n)}getBottomForLineNumber(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this._modelData?Ko._getVerticalOffsetAfterPosition(this._modelData,e,1,t):-1}setHiddenAreas(e,t){var i;null===(i=this._modelData)||void 0===i||i.viewModel.setHiddenAreas(e.map((e=>Q.e.lift(e))),t)}getVisibleColumnFromPosition(e){if(!this._modelData)return e.column;const t=this._modelData.model.validatePosition(e),i=this._modelData.model.getOptions().tabSize;return Z.i.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,i)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"api";if(this._modelData){if(!G.L.isIPosition(e))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(t,[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}}_sendRevealRange(e,t,i,n){if(!this._modelData)return;if(!Q.e.isIRange(e))throw new Error("Invalid arguments");const o=this._modelData.model.validateRange(e),s=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(o);this._modelData.viewModel.revealRange("api",i,s,t,n)}revealLine(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealLine(e,0,t)}revealLineInCenter(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealLine(e,1,t)}revealLineInCenterIfOutsideViewport(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealLine(e,2,t)}revealLineNearTop(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealLine(e,5,t)}_revealLine(e,t,i){if("number"!==typeof e)throw new Error("Invalid arguments");this._sendRevealRange(new Q.e(e,1,e,1),t,!1,i)}revealPosition(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealPosition(e,0,!0,t)}revealPositionInCenter(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealPosition(e,1,!0,t)}revealPositionInCenterIfOutsideViewport(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealPosition(e,2,!0,t)}revealPositionNearTop(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealPosition(e,5,!0,t)}_revealPosition(e,t,i,n){if(!G.L.isIPosition(e))throw new Error("Invalid arguments");this._sendRevealRange(new Q.e(e.lineNumber,e.column,e.lineNumber,e.column),t,i,n)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"api";const i=me.Y.isISelection(e),n=Q.e.isIRange(e);if(!i&&!n)throw new Error("Invalid arguments");if(i)this._setSelectionImpl(e,t);else if(n){const i={selectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(i,t)}}_setSelectionImpl(e,t){if(!this._modelData)return;const i=new me.Y(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.viewModel.setSelections(t,[i])}revealLines(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._revealLines(e,t,0,i)}revealLinesInCenter(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._revealLines(e,t,1,i)}revealLinesInCenterIfOutsideViewport(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._revealLines(e,t,2,i)}revealLinesNearTop(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._revealLines(e,t,5,i)}_revealLines(e,t,i,n){if("number"!==typeof e||"number"!==typeof t)throw new Error("Invalid arguments");this._sendRevealRange(new Q.e(e,1,t,1),i,!1,n)}revealRange(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];this._revealRange(e,i?1:0,n,t)}revealRangeInCenter(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealRange(e,1,!0,t)}revealRangeInCenterIfOutsideViewport(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealRange(e,2,!0,t)}revealRangeNearTop(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealRange(e,5,!0,t)}revealRangeNearTopIfOutsideViewport(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealRange(e,6,!0,t)}revealRangeAtTop(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._revealRange(e,3,!0,t)}_revealRange(e,t,i,n){if(!Q.e.isIRange(e))throw new Error("Invalid arguments");this._sendRevealRange(Q.e.lift(e),t,i,n)}setSelections(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"api",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(this._modelData){if(!e||0===e.length)throw new Error("Invalid arguments");for(let t=0,i=e.length;t1&&void 0!==arguments[1]?arguments[1]:1;if(this._modelData){if("number"!==typeof e)throw new Error("Invalid arguments");this._modelData.viewModel.viewLayout.setScrollPosition({scrollLeft:e},t)}}setScrollTop(e){let 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.viewLayout.setScrollPosition({scrollTop:e},t)}}setScrollPosition(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this._modelData&&this._modelData.viewModel.viewLayout.setScrollPosition(e,t)}hasPendingScrollAnimation(){return!!this._modelData&&this._modelData.viewModel.viewLayout.hasPendingScrollAnimation()}saveViewState(){if(!this._modelData)return null;const e=this._contributions.saveViewState();return{cursorState:this._modelData.viewModel.saveCursorState(),viewState:this._modelData.viewModel.saveState(),contributionsState:e}}restoreViewState(e){if(!this._modelData||!this._modelData.hasRealView)return;const t=e;if(t&&t.cursorState&&t.viewState){const e=t.cursorState;Array.isArray(e)?e.length>0&&this._modelData.viewModel.restoreCursorState(e):this._modelData.viewModel.restoreCursorState([e]),this._contributions.restoreViewState(t.contributionsState||{});const i=this._modelData.viewModel.reduceRestoreState(t.viewState);this._modelData.view.restoreState(i)}}handleInitialized(){var e;null===(e=this._getViewModel())||void 0===e||e.visibleLinesStabilized()}getContribution(e){return this._contributions.get(e)}getActions(){return Array.from(this._actions.values())}getSupportedActions(){let e=this.getActions();return e=e.filter((e=>e.isSupported())),e}getAction(e){return this._actions.get(e)||null}trigger(e,t,i){switch(i=i||{},t){case"compositionStart":return void this._startComposition();case"compositionEnd":return void this._endComposition(e);case"type":{const t=i;return void this._type(e,t.text||"")}case"replacePreviousChar":{const t=i;return void this._compositionType(e,t.text||"",t.replaceCharCnt||0,0,0)}case"compositionType":{const t=i;return void this._compositionType(e,t.text||"",t.replacePrevCharCnt||0,t.replaceNextCharCnt||0,t.positionDelta||0)}case"paste":{const t=i;return void this._paste(e,t.text||"",t.pasteOnNewLine||!1,t.multicursorText||null,t.mode||null,t.clipboardEvent)}case"cut":return void this._cut(e)}const n=this.getAction(t);n?Promise.resolve(n.run(i)).then(void 0,h.dL):this._modelData&&(this._triggerEditorCommand(e,t,i)||this._triggerCommand(t,i))}_triggerCommand(e,t){this._commandService.executeCommand(e,t)}_startComposition(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(e){this._modelData&&(this._modelData.viewModel.endComposition(e),this._onDidCompositionEnd.fire())}_type(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))}_compositionType(e,t,i,n,o){this._modelData&&this._modelData.viewModel.compositionType(t,i,n,o,e)}_paste(e,t,i,n,o,s){if(!this._modelData)return;const r=this._modelData.viewModel,a=r.getSelection().getStartPosition();r.paste(t,i,n,e);const l=r.getSelection().getStartPosition();"keyboard"===e&&this._onDidPaste.fire({clipboardEvent:s,range:new Q.e(a.lineNumber,a.column,l.lineNumber,l.column),languageId:o})}_cut(e){this._modelData&&this._modelData.viewModel.cut(e)}_triggerEditorCommand(e,t,i){const n=o.Uc.getEditorCommand(t);return!!n&&((i=i||{}).source=e,this._instantiationService.invokeFunction((e=>{Promise.resolve(n.runEditorCommand(e,this,i)).then(void 0,h.dL)})),!0)}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!!this._modelData&&(!this._configuration.options.get(91)&&(this._modelData.model.pushStackElement(),!0))}popUndoStop(){return!!this._modelData&&(!this._configuration.options.get(91)&&(this._modelData.model.popStackElement(),!0))}executeEdits(e,t,i){if(!this._modelData)return!1;if(this._configuration.options.get(91))return!1;let n;return n=i?Array.isArray(i)?()=>i:i:()=>null,this._modelData.viewModel.executeEdits(e,t,n),!0}executeCommand(e,t){this._modelData&&this._modelData.viewModel.executeCommand(t,e)}executeCommands(e,t){this._modelData&&this._modelData.viewModel.executeCommands(t,e)}createDecorationsCollection(e){return new os(this,e)}changeDecorations(e){return this._modelData?this._modelData.model.changeDecorations(e,this._id):null}getLineDecorations(e){return this._modelData?this._modelData.model.getLineDecorations(e,this._id,(0,k.$J)(this._configuration.options)):null}getDecorationsInRange(e){return this._modelData?this._modelData.model.getDecorationsInRange(e,this._id,(0,k.$J)(this._configuration.options)):null}deltaDecorations(e,t){return this._modelData?0===e.length&&0===t.length?e:this._modelData.model.deltaDecorations(e,t,this._id):[]}removeDecorations(e){this._modelData&&0!==e.length&&this._modelData.model.changeDecorations((t=>{t.deltaDecorations(e,[])}))}removeDecorationsByType(e){const t=this._decorationTypeKeysToIds[e];t&&this.changeDecorations((e=>e.deltaDecorations(t,[]))),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]}getLayoutInfo(){return this._configuration.options.get(145)}createOverviewRuler(e){return this._modelData&&this._modelData.hasRealView?this._modelData.view.createOverviewRuler(e):null}getContainerDomNode(){return this._domElement}getDomNode(){return this._modelData&&this._modelData.hasRealView?this._modelData.view.domNode.domNode:null}delegateVerticalScrollbarPointerDown(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.delegateScrollFromMouseWheelEvent(e)}layout(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._configuration.observeContainer(e),t||this.render()}focus(){this._modelData&&this._modelData.hasRealView&&this._modelData.view.focus()}hasTextFocus(){return!(!this._modelData||!this._modelData.hasRealView)&&this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(e){const t={widget:e,position:e.getPosition()};this._contentWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting a content widget with the same id:"+e.getId()),this._contentWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(t)}layoutContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const i=this._contentWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(i)}}removeContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const e=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(e)}}addOverlayWidget(e){const 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)}layoutOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const i=this._overlayWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(i)}}removeOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const e=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(e)}}addGlyphMarginWidget(e){const t={widget:e,position:e.getPosition()};this._glyphMarginWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting a glyph margin widget with the same id."),this._glyphMarginWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addGlyphMarginWidget(t)}layoutGlyphMarginWidget(e){const t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){const i=this._glyphMarginWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutGlyphMarginWidget(i)}}removeGlyphMarginWidget(e){const t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){const e=this._glyphMarginWidgets[t];delete this._glyphMarginWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeGlyphMarginWidget(e)}}changeViewZones(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.change(e)}getTargetAtClientPoint(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getTargetAtClientPoint(e,t):null}getScrolledVisiblePosition(e){if(!this._modelData||!this._modelData.hasRealView)return null;const t=this._modelData.model.validatePosition(e),i=this._configuration.options,n=i.get(145);return{top:Ko._getVerticalOffsetForPosition(this._modelData,t.lineNumber,t.column)-this.getScrollTop(),left:this._modelData.view.getOffsetForColumn(t.lineNumber,t.column)+n.glyphMarginWidth+n.lineNumbersWidth+n.decorationsWidth-this.getScrollLeft(),height:i.get(67)}}getOffsetForColumn(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getOffsetForColumn(e,t):-1}render(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._modelData&&this._modelData.hasRealView&&this._modelData.view.render(!0,e)}setAriaOptions(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.setAriaOptions(e)}applyFontInfo(e){(0,g.N)(e,this._configuration.options.get(50))}setBanner(e,t){this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),this._bannerDomNode=e,this._configuration.setReservedHeight(e?t:0),this._bannerDomNode&&this._domElement.prepend(this._bannerDomNode)}_attachModel(e){if(!e)return void(this._modelData=null);const t=[];this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setModelLineCount(e.getLineCount());const i=e.onBeforeAttached(),n=new Fo(this._id,this._configuration,e,qi.create(l.Jj(this._domElement)),an.create(this._configuration.options),(e=>l.jL(l.Jj(this._domElement),e)),this.languageConfigurationService,this._themeService,i);t.push(e.onWillDispose((()=>this.setModel(null)))),t.push(n.onEvent((t=>{switch(t.kind){case 0:this._onDidContentSizeChange.fire(t);break;case 1:this._editorTextFocus.setValue(t.hasFocus);break;case 2:this._onDidScrollChange.fire(t);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidChangeHiddenAreas.fire();break;case 5:this._onDidAttemptReadOnlyEdit.fire();break;case 6:{if(t.reachedMaxCursorCount){const e=this.getOption(80),t=ke.NC("cursors.maximum","The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.",e);this._notificationService.prompt(Go.zb.Warning,t,[{label:"Find and Replace",run:()=>{this._commandService.executeCommand("editor.action.startFindReplaceAction")}},{label:ke.NC("goToSetting","Increase Multi Cursor Limit"),run:()=>{this._commandService.executeCommand("workbench.action.openSettings2",{query:"editor.multiCursorLimit"})}}])}const e=[];for(let o=0,s=t.selections.length;o{this._paste("keyboard",e,t,i,n)},type:e=>{this._type("keyboard",e)},compositionType:(e,t,i,n)=>{this._compositionType("keyboard",e,t,i,n)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:{paste:(e,t,i,n)=>{const o={text:e,pasteOnNewLine:t,multicursorText:i,mode:n};this._commandService.executeCommand("paste",o)},type:e=>{const t={text:e};this._commandService.executeCommand("type",t)},compositionType:(e,t,i,n)=>{if(i||n){const o={text:e,replacePrevCharCnt:t,replaceNextCharCnt:i,positionDelta:n};this._commandService.executeCommand("compositionType",o)}else{const i={text:e,replaceCharCnt:t};this._commandService.executeCommand("replacePreviousChar",i)}},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})},endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};const i=new nt(e.coordinatesConverter);i.onKeyDown=e=>this._onKeyDown.fire(e),i.onKeyUp=e=>this._onKeyUp.fire(e),i.onContextMenu=e=>this._onContextMenu.fire(e),i.onMouseMove=e=>this._onMouseMove.fire(e),i.onMouseLeave=e=>this._onMouseLeave.fire(e),i.onMouseDown=e=>this._onMouseDown.fire(e),i.onMouseUp=e=>this._onMouseUp.fire(e),i.onMouseDrag=e=>this._onMouseDrag.fire(e),i.onMouseDrop=e=>this._onMouseDrop.fire(e),i.onMouseDropCanceled=e=>this._onMouseDropCanceled.fire(e),i.onMouseWheel=e=>this._onMouseWheel.fire(e);return[new Pi(t,this._configuration,this._themeService.getColorTheme(),e,i,this._overflowWidgetsDomNode,this._instantiationService),!0]}_postDetachModelCleanup(e){null===e||void 0===e||e.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){var e;if(null===(e=this._contributionsDisposable)||void 0===e||e.dispose(),this._contributionsDisposable=void 0,!this._modelData)return null;const t=this._modelData.model,i=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute("data-mode-id"),i&&this._domElement.contains(i)&&this._domElement.removeChild(i),this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),t}_removeDecorationType(e){this._codeEditorService.removeDecorationType(e)}hasModel(){return null!==this._modelData}showDropIndicatorAt(e){const t=[{range:new Q.e(e.lineNumber,e.column,e.lineNumber,e.column),options:Ko.dropIntoEditorDecorationOptions}];this._dropIntoEditorDecorations.set(t),this.revealPosition(e,1)}removeDropIndicator(){this._dropIntoEditorDecorations.clear()}setContextValue(e,t){this._contextKeyService.createKey(e,t)}};Yo.dropIntoEditorDecorationOptions=on.qx.register({description:"workbench-dnd-target",className:"dnd-target"}),Yo=Ko=Qo([Zo(3,ze.TG),Zo(4,B.$),Zo(5,Uo.H),Zo(6,jo.i6),Zo(7,Ee.XE),Zo(8,Go.lT),Zo(9,x.F),Zo(10,nn.c_),Zo(11,sn.p)],Yo);let $o=0;class Jo{constructor(e,t,i,n,o,s){this.model=e,this.viewModel=t,this.view=i,this.hasRealView=n,this.listenersToRemove=o,this.attachedView=s}dispose(){(0,c.B9)(this.listenersToRemove),this.model.onBeforeDetached(this.attachedView),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}}class Xo extends c.JT{constructor(e){super(),this._emitterOptions=e,this._onDidChangeToTrue=this._register(new d.Q5(this._emitterOptions)),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new d.Q5(this._emitterOptions)),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(e){const t=e?2:1;this._value!==t&&(this._value=t,2===this._value?this._onDidChangeToTrue.fire():1===this._value&&this._onDidChangeToFalse.fire())}}class es extends d.Q5{constructor(e,t){super({deliveryQueue:t}),this._contributions=e}fire(e){this._contributions.onBeforeInteractionEvent(),super.fire(e)}}class ts extends c.JT{constructor(e,t){super(),this._editor=e,t.createKey("editorId",e.getId()),this._editorSimpleInput=tn.u.editorSimpleInput.bindTo(t),this._editorFocus=tn.u.focus.bindTo(t),this._textInputFocus=tn.u.textInputFocus.bindTo(t),this._editorTextFocus=tn.u.editorTextFocus.bindTo(t),this._tabMovesFocus=tn.u.tabMovesFocus.bindTo(t),this._editorReadonly=tn.u.readOnly.bindTo(t),this._inDiffEditor=tn.u.inDiffEditor.bindTo(t),this._editorColumnSelection=tn.u.columnSelection.bindTo(t),this._hasMultipleSelections=tn.u.hasMultipleSelections.bindTo(t),this._hasNonEmptySelection=tn.u.hasNonEmptySelection.bindTo(t),this._canUndo=tn.u.canUndo.bindTo(t),this._canRedo=tn.u.canRedo.bindTo(t),this._register(this._editor.onDidChangeConfiguration((()=>this._updateFromConfig()))),this._register(this._editor.onDidChangeCursorSelection((()=>this._updateFromSelection()))),this._register(this._editor.onDidFocusEditorWidget((()=>this._updateFromFocus()))),this._register(this._editor.onDidBlurEditorWidget((()=>this._updateFromFocus()))),this._register(this._editor.onDidFocusEditorText((()=>this._updateFromFocus()))),this._register(this._editor.onDidBlurEditorText((()=>this._updateFromFocus()))),this._register(this._editor.onDidChangeModel((()=>this._updateFromModel()))),this._register(this._editor.onDidChangeConfiguration((()=>this._updateFromModel()))),this._register(L.n.onDidChangeTabFocus((e=>this._tabMovesFocus.set(e)))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){const e=this._editor.getOptions();this._tabMovesFocus.set(L.n.getTabFocusMode()),this._editorReadonly.set(e.get(91)),this._inDiffEditor.set(e.get(61)),this._editorColumnSelection.set(e.get(22))}_updateFromSelection(){const e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some((e=>!e.isEmpty())))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){const e=this._editor.getModel();this._canUndo.set(Boolean(e&&e.canUndo())),this._canRedo.set(Boolean(e&&e.canRedo()))}}class is extends c.JT{constructor(e,t,i){super(),this._editor=e,this._contextKeyService=t,this._languageFeaturesService=i,this._langId=tn.u.languageId.bindTo(t),this._hasCompletionItemProvider=tn.u.hasCompletionItemProvider.bindTo(t),this._hasCodeActionsProvider=tn.u.hasCodeActionsProvider.bindTo(t),this._hasCodeLensProvider=tn.u.hasCodeLensProvider.bindTo(t),this._hasDefinitionProvider=tn.u.hasDefinitionProvider.bindTo(t),this._hasDeclarationProvider=tn.u.hasDeclarationProvider.bindTo(t),this._hasImplementationProvider=tn.u.hasImplementationProvider.bindTo(t),this._hasTypeDefinitionProvider=tn.u.hasTypeDefinitionProvider.bindTo(t),this._hasHoverProvider=tn.u.hasHoverProvider.bindTo(t),this._hasDocumentHighlightProvider=tn.u.hasDocumentHighlightProvider.bindTo(t),this._hasDocumentSymbolProvider=tn.u.hasDocumentSymbolProvider.bindTo(t),this._hasReferenceProvider=tn.u.hasReferenceProvider.bindTo(t),this._hasRenameProvider=tn.u.hasRenameProvider.bindTo(t),this._hasSignatureHelpProvider=tn.u.hasSignatureHelpProvider.bindTo(t),this._hasInlayHintsProvider=tn.u.hasInlayHintsProvider.bindTo(t),this._hasDocumentFormattingProvider=tn.u.hasDocumentFormattingProvider.bindTo(t),this._hasDocumentSelectionFormattingProvider=tn.u.hasDocumentSelectionFormattingProvider.bindTo(t),this._hasMultipleDocumentFormattingProvider=tn.u.hasMultipleDocumentFormattingProvider.bindTo(t),this._hasMultipleDocumentSelectionFormattingProvider=tn.u.hasMultipleDocumentSelectionFormattingProvider.bindTo(t),this._isInEmbeddedEditor=tn.u.isInEmbeddedEditor.bindTo(t);const n=()=>this._update();this._register(e.onDidChangeModel(n)),this._register(e.onDidChangeModelLanguage(n)),this._register(i.completionProvider.onDidChange(n)),this._register(i.codeActionProvider.onDidChange(n)),this._register(i.codeLensProvider.onDidChange(n)),this._register(i.definitionProvider.onDidChange(n)),this._register(i.declarationProvider.onDidChange(n)),this._register(i.implementationProvider.onDidChange(n)),this._register(i.typeDefinitionProvider.onDidChange(n)),this._register(i.hoverProvider.onDidChange(n)),this._register(i.documentHighlightProvider.onDidChange(n)),this._register(i.documentSymbolProvider.onDidChange(n)),this._register(i.referenceProvider.onDidChange(n)),this._register(i.renameProvider.onDidChange(n)),this._register(i.documentFormattingEditProvider.onDidChange(n)),this._register(i.documentRangeFormattingEditProvider.onDidChange(n)),this._register(i.signatureHelpProvider.onDidChange(n)),this._register(i.inlayHintsProvider.onDidChange(n)),n()}dispose(){super.dispose()}reset(){this._contextKeyService.bufferChangeEvents((()=>{this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasDeclarationProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInEmbeddedEditor.reset()}))}_update(){const e=this._editor.getModel();e?this._contextKeyService.bufferChangeEvents((()=>{this._langId.set(e.getLanguageId()),this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(e)),this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(e)),this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(e)),this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(e)),this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(e)),this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(e)),this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(e)),this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(e)),this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(e)),this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(e)),this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(e)),this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(e)),this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(e)),this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(e)),this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(e)||this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(e).length+this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._isInEmbeddedEditor.set(e.uri.scheme===u.lg.walkThroughSnippet||e.uri.scheme===u.lg.vscodeChatCodeBlock)})):this.reset()}}class ns extends c.JT{constructor(e,t){super(),this._onChange=this._register(new d.Q5),this.onChange=this._onChange.event,this._hadFocus=void 0,this._hasDomElementFocus=!1,this._domFocusTracker=this._register(l.go(e)),this._overflowWidgetsDomNodeHasFocus=!1,this._register(this._domFocusTracker.onDidFocus((()=>{this._hasDomElementFocus=!0,this._update()}))),this._register(this._domFocusTracker.onDidBlur((()=>{this._hasDomElementFocus=!1,this._update()}))),t&&(this._overflowWidgetsDomNode=this._register(l.go(t)),this._register(this._overflowWidgetsDomNode.onDidFocus((()=>{this._overflowWidgetsDomNodeHasFocus=!0,this._update()}))),this._register(this._overflowWidgetsDomNode.onDidBlur((()=>{this._overflowWidgetsDomNodeHasFocus=!1,this._update()}))))}_update(){const e=this._hasDomElementFocus||this._overflowWidgetsDomNodeHasFocus;this._hadFocus!==e&&(this._hadFocus=e,this._onChange.fire(void 0))}hasFocus(){var e;return null!==(e=this._hadFocus)&&void 0!==e&&e}}class os{get length(){return this._decorationIds.length}constructor(e,t){this._editor=e,this._decorationIds=[],this._isChangingDecorations=!1,Array.isArray(t)&&t.length>0&&this.set(t)}onDidChange(e,t,i){return this._editor.onDidChangeModelDecorations((i=>{this._isChangingDecorations||e.call(t,i)}),i)}getRange(e){return this._editor.hasModel()?e>=this._decorationIds.length?null:this._editor.getModel().getDecorationRange(this._decorationIds[e]):null}getRanges(){if(!this._editor.hasModel())return[];const e=this._editor.getModel(),t=[];for(const i of this._decorationIds){const n=e.getDecorationRange(i);n&&t.push(n)}return t}has(e){return this._decorationIds.includes(e.id)}clear(){0!==this._decorationIds.length&&this.set([])}set(e){try{this._isChangingDecorations=!0,this._editor.changeDecorations((t=>{this._decorationIds=t.deltaDecorations(this._decorationIds,e)}))}finally{this._isChangingDecorations=!1}return this._decorationIds}append(e){let t=[];try{this._isChangingDecorations=!0,this._editor.changeDecorations((i=>{t=i.deltaDecorations([],e),this._decorationIds=this._decorationIds.concat(t)}))}finally{this._isChangingDecorations=!1}return t}}const ss=encodeURIComponent("");function as(e){return ss+encodeURIComponent(e.toString())+rs}const ls=encodeURIComponent('');(0,Ee.Ic)(((e,t)=>{const i=e.getColor(Kt.lXJ);i&&t.addRule(".monaco-editor .".concat("squiggly-error",' { background: url("data:image/svg+xml,',as(i),'") repeat-x bottom left; }'));const n=e.getColor(Kt.uoC);n&&t.addRule(".monaco-editor .".concat("squiggly-warning",' { background: url("data:image/svg+xml,',as(n),'") repeat-x bottom left; }'));const o=e.getColor(Kt.c63);o&&t.addRule(".monaco-editor .".concat("squiggly-info",' { background: url("data:image/svg+xml,',as(o),'") repeat-x bottom left; }'));const s=e.getColor(Kt.Dut);s&&t.addRule(".monaco-editor .".concat("squiggly-hint",' { background: url("data:image/svg+xml,',function(e){return ls+encodeURIComponent(e.toString())+hs}(s),'") no-repeat bottom left; }'));const r=e.getColor(Ie.zu);r&&t.addRule(".monaco-editor.showUnused .".concat("squiggly-inline-unnecessary"," { opacity: ",r.rgba.a,"; }"))}))},95233:(e,t,i)=>{i.d(t,{p:()=>Ht});var n=i(85714),o=i(52910),s=i(85108),r=i(24219),a=i(89599),l=i(59130),h=i(4542),d=i(23001),c=i(38119),u=i(1135),g=i(76025),m=i(52047),f=i(65122),p=i(66561),_=i(22337),v=i(75629),b=i(62974),C=i(62502),w=i(99916),y=i(5545),S=i(38092),L=i(56590),k=i(57866),D=i(2067),N=i(10670),x=i(94739),E=i(69311),I=i(43471),T=i(34543),M=i(33072),A=i(71721),R=i(68633),O=i(34304),P=i(38261),F=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},B=function(e,t){return function(i,n){t(i,n,e)}};const z=(0,P.q5)("diff-review-insert",b.l.add,(0,A.NC)("accessibleDiffViewerInsertIcon","Icon for 'Insert' in accessible diff viewer.")),V=(0,P.q5)("diff-review-remove",b.l.remove,(0,A.NC)("accessibleDiffViewerRemoveIcon","Icon for 'Remove' in accessible diff viewer.")),W=(0,P.q5)("diff-review-close",b.l.close,(0,A.NC)("accessibleDiffViewerCloseIcon","Icon for 'Close' in accessible diff viewer."));let H=class extends a.JT{constructor(e,t,i,n,o,s,r,a,h){super(),this._parentNode=e,this._visible=t,this._setVisible=i,this._canClose=n,this._width=o,this._height=s,this._diffs=r,this._models=a,this._instantiationService=h,this._state=(0,l.Be)(this,((e,t)=>{const i=this._visible.read(e);if(this._parentNode.style.visibility=i?"visible":"hidden",!i)return null;const n=t.add(this._instantiationService.createInstance(K,this._diffs,this._models,this._setVisible,this._canClose));return{model:n,view:t.add(this._instantiationService.createInstance($,this._parentNode,n,this._width,this._height,this._models))}})).recomputeInitiallyAndOnChange(this._store)}next(){(0,l.PS)((e=>{const t=this._visible.get();this._setVisible(!0,e),t&&this._state.get().model.nextGroup(e)}))}prev(){(0,l.PS)((e=>{this._setVisible(!0,e),this._state.get().model.previousGroup(e)}))}close(){(0,l.PS)((e=>{this._setVisible(!1,e)}))}};H._ttPolicy=(0,m.Z)("diffReview",{createHTML:e=>e}),H=F([B(8,O.TG)],H);let K=class extends a.JT{constructor(e,t,i,n,o){super(),this._diffs=e,this._models=t,this._setVisible=i,this.canClose=n,this._accessibilitySignalService=o,this._groups=(0,l.uh)(this,[]),this._currentGroupIdx=(0,l.uh)(this,0),this._currentElementIdx=(0,l.uh)(this,0),this.groups=this._groups,this.currentGroup=this._currentGroupIdx.map(((e,t)=>this._groups.read(t)[e])),this.currentGroupIndex=this._currentGroupIdx,this.currentElement=this._currentElementIdx.map(((e,t)=>{var i;return null===(i=this.currentGroup.read(t))||void 0===i?void 0:i.lines[e]})),this._register((0,l.EH)((e=>{const t=this._diffs.read(e);if(!t)return void this._groups.set([],void 0);const i=function(e,t,i){const n=[];for(const o of(0,v.mw)(e,((e,t)=>t.modified.startLineNumber-e.modified.endLineNumberExclusive<2*U))){const e=[];e.push(new G);const s=new L.z(Math.max(1,o[0].original.startLineNumber-U),Math.min(o[o.length-1].original.endLineNumberExclusive+U,t+1)),r=new L.z(Math.max(1,o[0].modified.startLineNumber-U),Math.min(o[o.length-1].modified.endLineNumberExclusive+U,i+1));(0,v.zy)(o,((t,i)=>{const n=new L.z(t?t.original.endLineNumberExclusive:s.startLineNumber,i?i.original.startLineNumber:s.endLineNumberExclusive),o=new L.z(t?t.modified.endLineNumberExclusive:r.startLineNumber,i?i.modified.startLineNumber:r.endLineNumberExclusive);n.forEach((t=>{e.push(new Y(t,o.startLineNumber+(t-n.startLineNumber)))})),i&&(i.original.forEach((t=>{e.push(new Q(i,t))})),i.modified.forEach((t=>{e.push(new Z(i,t))})))}));const a=o[0].modified.join(o[o.length-1].modified),l=o[0].original.join(o[o.length-1].original);n.push(new q(new x.f0(a,l),e))}return n}(t,this._models.getOriginalModel().getLineCount(),this._models.getModifiedModel().getLineCount());(0,l.PS)((e=>{const t=this._models.getModifiedPosition();if(t){const n=i.findIndex((e=>(null===t||void 0===t?void 0:t.lineNumber){const t=this.currentElement.read(e);(null===t||void 0===t?void 0:t.type)===j.Deleted?this._accessibilitySignalService.playSignal(R.iP.diffLineDeleted,{source:"accessibleDiffViewer.currentElementChanged"}):(null===t||void 0===t?void 0:t.type)===j.Added&&this._accessibilitySignalService.playSignal(R.iP.diffLineInserted,{source:"accessibleDiffViewer.currentElementChanged"})}))),this._register((0,l.EH)((e=>{var t;const i=this.currentElement.read(e);if(i&&i.type!==j.Header){const e=null!==(t=i.modifiedLineNumber)&&void 0!==t?t:i.diff.modified.startLineNumber;this._models.modifiedSetSelection(N.e.fromPositions(new D.L(e,1)))}})))}_goToGroupDelta(e,t){const i=this.groups.get();!i||i.length<=1||(0,l.c8)(t,(t=>{this._currentGroupIdx.set(k.q.ofLength(i.length).clipCyclic(this._currentGroupIdx.get()+e),t),this._currentElementIdx.set(0,t)}))}nextGroup(e){this._goToGroupDelta(1,e)}previousGroup(e){this._goToGroupDelta(-1,e)}_goToLineDelta(e){const t=this.currentGroup.get();!t||t.lines.length<=1||(0,l.PS)((i=>{this._currentElementIdx.set(k.q.ofLength(t.lines.length).clip(this._currentElementIdx.get()+e),i)}))}goToNextLine(){this._goToLineDelta(1)}goToPreviousLine(){this._goToLineDelta(-1)}goToLine(e){const t=this.currentGroup.get();if(!t)return;const i=t.lines.indexOf(e);-1!==i&&(0,l.PS)((e=>{this._currentElementIdx.set(i,e)}))}revealCurrentElementInEditor(){if(!this.canClose.get())return;this._setVisible(!1,void 0);const e=this.currentElement.get();e&&(e.type===j.Deleted?this._models.originalReveal(N.e.fromPositions(new D.L(e.originalLineNumber,1))):this._models.modifiedReveal(e.type!==j.Header?N.e.fromPositions(new D.L(e.modifiedLineNumber,1)):void 0))}close(){this.canClose.get()&&(this._setVisible(!1,void 0),this._models.modifiedFocus())}};K=F([B(4,R.IV)],K);const U=3;var j;!function(e){e[e.Header=0]="Header",e[e.Unchanged=1]="Unchanged",e[e.Deleted=2]="Deleted",e[e.Added=3]="Added"}(j||(j={}));class q{constructor(e,t){this.range=e,this.lines=t}}class G{constructor(){this.type=j.Header}}class Q{constructor(e,t){this.diff=e,this.originalLineNumber=t,this.type=j.Deleted,this.modifiedLineNumber=void 0}}class Z{constructor(e,t){this.diff=e,this.modifiedLineNumber=t,this.type=j.Added,this.originalLineNumber=void 0}}class Y{constructor(e,t){this.originalLineNumber=e,this.modifiedLineNumber=t,this.type=j.Unchanged}}let $=class extends a.JT{constructor(e,t,i,o,s,r){super(),this._element=e,this._model=t,this._width=i,this._height=o,this._models=s,this._languageService=r,this.domNode=this._element,this.domNode.className="monaco-component diff-review monaco-editor-background";const h=document.createElement("div");h.className="diff-review-actions",this._actionBar=this._register(new f.o(h)),this._register((0,l.EH)((e=>{this._actionBar.clear(),this._model.canClose.read(e)&&this._actionBar.push(new _.aU("diffreview.close",(0,A.NC)("label.close","Close"),"close-diff-review "+C.k.asClassName(W),!0,(async()=>t.close())),{label:!1,icon:!0})}))),this._content=document.createElement("div"),this._content.className="diff-review-content",this._content.setAttribute("role","code"),this._scrollbar=this._register(new p.s$(this._content,{})),(0,n.mc)(this.domNode,this._scrollbar.getDomNode(),h),this._register((0,l.EH)((e=>{this._height.read(e),this._width.read(e),this._scrollbar.scanDomNode()}))),this._register((0,a.OF)((()=>{(0,n.mc)(this.domNode)}))),this._register((0,y.bg)(this.domNode,{width:this._width,height:this._height})),this._register((0,y.bg)(this._content,{width:this._width,height:this._height})),this._register((0,l.gp)(((e,t)=>{this._model.currentGroup.read(e),this._render(t)}))),this._register((0,n.mu)(this.domNode,"keydown",(e=>{(e.equals(18)||e.equals(2066)||e.equals(530))&&(e.preventDefault(),this._model.goToNextLine()),(e.equals(16)||e.equals(2064)||e.equals(528))&&(e.preventDefault(),this._model.goToPreviousLine()),(e.equals(9)||e.equals(2057)||e.equals(521)||e.equals(1033))&&(e.preventDefault(),this._model.close()),(e.equals(10)||e.equals(3))&&(e.preventDefault(),this._model.revealCurrentElementInEditor())})))}_render(e){const t=this._models.getOriginalOptions(),i=this._models.getModifiedOptions(),o=document.createElement("div");o.className="diff-review-table",o.setAttribute("role","list"),o.setAttribute("aria-label",(0,A.NC)("ariaLabel","Accessible Diff Viewer. Use arrow up and down to navigate.")),(0,w.N)(o,i.get(50)),(0,n.mc)(this._content,o);const s=this._models.getOriginalModel(),r=this._models.getModifiedModel();if(!s||!r)return;const a=s.getOptions(),h=r.getOptions(),d=i.get(67),c=this._model.currentGroup.get();for(const u of(null===c||void 0===c?void 0:c.lines)||[]){if(!c)break;let g;if(u.type===j.Header){const e=document.createElement("div");e.className="diff-review-row",e.setAttribute("role","listitem");const t=c.range,i=this._model.currentGroupIndex.get(),n=this._model.groups.get().length,o=e=>0===e?(0,A.NC)("no_lines_changed","no lines changed"):1===e?(0,A.NC)("one_line_changed","1 line changed"):(0,A.NC)("more_lines_changed","{0} lines changed",e),s=o(t.original.length),r=o(t.modified.length);e.setAttribute("aria-label",(0,A.NC)({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}",i+1,n,t.original.startLineNumber,s,t.modified.startLineNumber,r));const a=document.createElement("div");a.className="diff-review-cell diff-review-summary",a.appendChild(document.createTextNode("".concat(i+1,"/").concat(n,": @@ -").concat(t.original.startLineNumber,",").concat(t.original.length," +").concat(t.modified.startLineNumber,",").concat(t.modified.length," @@"))),e.appendChild(a),g=e}else g=this._createRow(u,d,this._width.get(),t,s,a,i,r,h);o.appendChild(g);const m=(0,l.nK)((e=>this._model.currentElement.read(e)===u));e.add((0,l.EH)((e=>{const t=m.read(e);g.tabIndex=t?0:-1,t&&g.focus()}))),e.add((0,n.nm)(g,"focus",(()=>{this._model.goToLine(u)})))}this._scrollbar.scanDomNode()}_createRow(e,t,i,n,o,s,r,a,l){const h=n.get(145),d=h.glyphMarginWidth+h.lineNumbersWidth,c=r.get(145),u=10+c.glyphMarginWidth+c.lineNumbersWidth;let g="diff-review-row",m="";let f=null;switch(e.type){case j.Added:g="diff-review-row line-insert",m=" char-insert",f=z;break;case j.Deleted:g="diff-review-row line-delete",m=" char-delete",f=V}const p=document.createElement("div");p.style.minWidth=i+"px",p.className=g,p.setAttribute("role","listitem"),p.ariaLevel="";const _=document.createElement("div");_.className="diff-review-cell",_.style.height="".concat(t,"px"),p.appendChild(_);const v=document.createElement("span");v.style.width=d+"px",v.style.minWidth=d+"px",v.className="diff-review-line-number"+m,void 0!==e.originalLineNumber?v.appendChild(document.createTextNode(String(e.originalLineNumber))):v.innerText="\xa0",_.appendChild(v);const b=document.createElement("span");b.style.width=u+"px",b.style.minWidth=u+"px",b.style.paddingRight="10px",b.className="diff-review-line-number"+m,void 0!==e.modifiedLineNumber?b.appendChild(document.createTextNode(String(e.modifiedLineNumber))):b.innerText="\xa0",_.appendChild(b);const w=document.createElement("span");if(w.className="diff-review-spacer",f){const e=document.createElement("span");e.className=C.k.asClassName(f),e.innerText="\xa0\xa0",w.appendChild(e)}else w.innerText="\xa0\xa0";let y;if(_.appendChild(w),void 0!==e.modifiedLineNumber){let t=this._getLineHtml(a,r,l.tabSize,e.modifiedLineNumber,this._languageService.languageIdCodec);H._ttPolicy&&(t=H._ttPolicy.createHTML(t)),_.insertAdjacentHTML("beforeend",t),y=a.getLineContent(e.modifiedLineNumber)}else{let t=this._getLineHtml(o,n,s.tabSize,e.originalLineNumber,this._languageService.languageIdCodec);H._ttPolicy&&(t=H._ttPolicy.createHTML(t)),_.insertAdjacentHTML("beforeend",t),y=o.getLineContent(e.originalLineNumber)}0===y.length&&(y=(0,A.NC)("blankLine","blank"));let S="";switch(e.type){case j.Unchanged:S=e.originalLineNumber===e.modifiedLineNumber?(0,A.NC)({key:"unchangedLine",comment:["The placeholders are contents of the line and should not be translated."]},"{0} unchanged line {1}",y,e.originalLineNumber):(0,A.NC)("equalLine","{0} original line {1} modified line {2}",y,e.originalLineNumber,e.modifiedLineNumber);break;case j.Added:S=(0,A.NC)("insertLine","+ {0} modified line {1}",y,e.modifiedLineNumber);break;case j.Deleted:S=(0,A.NC)("deleteLine","- {0} original line {1}",y,e.originalLineNumber)}return p.setAttribute("aria-label",S),p}_getLineHtml(e,t,i,n,o){const s=e.getLineContent(n),r=t.get(50),a=I.A.createEmpty(s,o),l=M.wA.isBasicASCII(s,e.mightContainNonBasicASCII()),h=M.wA.containsRTL(s,l,e.mightContainRTL());return(0,T.tF)(new T.IJ(r.isMonospace&&!t.get(33),r.canUseHalfwidthRightwardsArrow,s,!1,l,h,0,a,[],i,0,r.spaceWidth,r.middotWidth,r.wsmiddotWidth,t.get(117),t.get(99),t.get(94),t.get(51)!==S.n0.OFF,null)).html}};$=F([B(5,E.O)],$);class J{constructor(e){this.editors=e}getOriginalModel(){return this.editors.original.getModel()}getOriginalOptions(){return this.editors.original.getOptions()}originalReveal(e){this.editors.original.revealRange(e),this.editors.original.setSelection(e),this.editors.original.focus()}getModifiedModel(){return this.editors.modified.getModel()}getModifiedOptions(){return this.editors.modified.getOptions()}modifiedReveal(e){e&&(this.editors.modified.revealRange(e),this.editors.modified.setSelection(e)),this.editors.modified.focus()}modifiedSetSelection(e){this.editors.modified.setSelection(e)}modifiedFocus(){this.editors.modified.focus()}getModifiedPosition(){var e;return null!==(e=this.editors.modified.getPosition())&&void 0!==e?e:void 0}}class X extends a.JT{constructor(e,t,i,n,o){super(),this._rootElement=e,this._diffModel=t,this._originalEditorLayoutInfo=i,this._modifiedEditorLayoutInfo=n,this._editors=o,this._originalScrollTop=(0,l.rD)(this._editors.original.onDidScrollChange,(()=>this._editors.original.getScrollTop())),this._modifiedScrollTop=(0,l.rD)(this._editors.modified.onDidScrollChange,(()=>this._editors.modified.getScrollTop())),this._viewZonesChanged=(0,l.aq)("onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this.width=(0,l.uh)(this,0),this._modifiedViewZonesChangedSignal=(0,l.aq)("modified.onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this._originalViewZonesChangedSignal=(0,l.aq)("original.onDidChangeViewZones",this._editors.original.onDidChangeViewZones),this._state=(0,l.Be)(this,((e,t)=>{var i;this._element.replaceChildren();const n=this._diffModel.read(e),o=null===(i=null===n||void 0===n?void 0:n.diff.read(e))||void 0===i?void 0:i.movedTexts;if(!o||0===o.length)return void this.width.set(0,void 0);this._viewZonesChanged.read(e);const s=this._originalEditorLayoutInfo.read(e),r=this._modifiedEditorLayoutInfo.read(e);if(!s||!r)return void this.width.set(0,void 0);this._modifiedViewZonesChangedSignal.read(e),this._originalViewZonesChangedSignal.read(e);const a=o.map((t=>{function i(e,t){return(t.getTopForLineNumber(e.startLineNumber,!0)+t.getTopForLineNumber(e.endLineNumberExclusive,!0))/2}const n=i(t.lineRangeMapping.original,this._editors.original),o=this._originalScrollTop.read(e),s=i(t.lineRangeMapping.modified,this._editors.modified),r=n-o,a=s-this._modifiedScrollTop.read(e),l=Math.min(n,s),h=Math.max(n,s);return{range:new k.q(l,h),from:r,to:a,fromWithoutScroll:n,toWithoutScroll:s,move:t}}));a.sort((0,v.f_)((0,v.tT)((e=>e.fromWithoutScroll>e.toWithoutScroll),v.nW),(0,v.tT)((e=>e.fromWithoutScroll>e.toWithoutScroll?e.fromWithoutScroll:-e.toWithoutScroll),v.fv)));const h=ee.compute(a.map((e=>e.range))),d=s.verticalScrollbarWidth,c=10*(h.getTrackCount()-1)+20,u=d+c+(r.contentLeft-X.movedCodeBlockPadding);let g=0;for(const m of a){const e=d+10+10*h.getTrack(g),i=15,o=15,s=u,a=r.glyphMarginWidth+r.lineNumbersWidth,c=18,f=document.createElementNS("http://www.w3.org/2000/svg","rect");f.classList.add("arrow-rectangle"),f.setAttribute("x","".concat(s-a)),f.setAttribute("y","".concat(m.to-c/2)),f.setAttribute("width","".concat(a)),f.setAttribute("height","".concat(c)),this._element.appendChild(f);const p=document.createElementNS("http://www.w3.org/2000/svg","g"),_=document.createElementNS("http://www.w3.org/2000/svg","path");_.setAttribute("d","M ".concat(0," ",m.from," L ").concat(e," ").concat(m.from," L ").concat(e," ").concat(m.to," L ").concat(s-o," ").concat(m.to)),_.setAttribute("fill","none"),p.appendChild(_);const v=document.createElementNS("http://www.w3.org/2000/svg","polygon");v.classList.add("arrow"),t.add((0,l.EH)((e=>{_.classList.toggle("currentMove",m.move===n.activeMovedText.read(e)),v.classList.toggle("currentMove",m.move===n.activeMovedText.read(e))}))),v.setAttribute("points","".concat(s-o,",").concat(m.to-i/2," ").concat(s,",").concat(m.to," ").concat(s-o,",").concat(m.to+i/2)),p.appendChild(v),this._element.appendChild(p),g++}this.width.set(c,void 0)})),this._element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("class","moved-blocks-lines"),this._rootElement.appendChild(this._element),this._register((0,a.OF)((()=>this._element.remove()))),this._register((0,l.EH)((e=>{const t=this._originalEditorLayoutInfo.read(e),i=this._modifiedEditorLayoutInfo.read(e);t&&i&&(this._element.style.left="".concat(t.width-t.verticalScrollbarWidth,"px"),this._element.style.height="".concat(t.height,"px"),this._element.style.width="".concat(t.verticalScrollbarWidth+t.contentLeft-X.movedCodeBlockPadding+this.width.read(e),"px"))}))),this._register((0,l.jx)(this._state));const s=(0,l.nK)((e=>{const t=this._diffModel.read(e),i=null===t||void 0===t?void 0:t.diff.read(e);return i?i.movedTexts.map((e=>({move:e,original:new y.GD((0,l.Dz)(e.lineRangeMapping.original.startLineNumber-1),18),modified:new y.GD((0,l.Dz)(e.lineRangeMapping.modified.startLineNumber-1),18)}))):[]}));this._register((0,y.Sv)(this._editors.original,s.map((e=>e.map((e=>e.original)))))),this._register((0,y.Sv)(this._editors.modified,s.map((e=>e.map((e=>e.modified)))))),this._register((0,l.gp)(((e,t)=>{const i=s.read(e);for(const n of i)t.add(new te(this._editors.original,n.original,n.move,"original",this._diffModel.get())),t.add(new te(this._editors.modified,n.modified,n.move,"modified",this._diffModel.get()))})));const r=(0,l.aq)("original.onDidFocusEditorWidget",(e=>this._editors.original.onDidFocusEditorWidget((()=>setTimeout((()=>e(void 0)),0))))),h=(0,l.aq)("modified.onDidFocusEditorWidget",(e=>this._editors.modified.onDidFocusEditorWidget((()=>setTimeout((()=>e(void 0)),0)))));let d="modified";this._register((0,l.nJ)({createEmptyChangeSummary:()=>{},handleChange:(e,t)=>(e.didChange(r)&&(d="original"),e.didChange(h)&&(d="modified"),!0)},(e=>{r.read(e),h.read(e);const t=this._diffModel.read(e);if(!t)return;const i=t.diff.read(e);let n;if(i&&"original"===d){const t=this._editors.originalCursor.read(e);t&&(n=i.movedTexts.find((e=>e.lineRangeMapping.original.contains(t.lineNumber))))}if(i&&"modified"===d){const t=this._editors.modifiedCursor.read(e);t&&(n=i.movedTexts.find((e=>e.lineRangeMapping.modified.contains(t.lineNumber))))}n!==t.movedTextToCompare.get()&&t.movedTextToCompare.set(void 0,void 0),t.setActiveMovedText(n)})))}}X.movedCodeBlockPadding=4;class ee{static compute(e){const t=[],i=[];for(const n of e){let e=t.findIndex((e=>!e.intersectsStrict(n)));if(-1===e){const i=6;t.length>=i?e=(0,o.tQ)(t,(0,v.tT)((e=>e.intersectWithRangeLength(n)),v.fv)):(e=t.length,t.push(new k.M))}t[e].addRange(n),i.push(e)}return new ee(t.length,i)}constructor(e,t){this._trackCount=e,this.trackPerLineIdx=t}getTrack(e){return this.trackPerLineIdx[e]}getTrackCount(){return this._trackCount}}class te extends y.N9{constructor(e,t,i,o,s){const r=(0,n.h)("div.diff-hidden-lines-widget");super(e,t,r.root),this._editor=e,this._move=i,this._kind=o,this._diffModel=s,this._nodes=(0,n.h)("div.diff-moved-code-block",{style:{marginRight:"4px"}},[(0,n.h)("div.text-content@textContent"),(0,n.h)("div.action-bar@actionBar")]),r.root.appendChild(this._nodes.root);const a=(0,l.rD)(this._editor.onDidLayoutChange,(()=>this._editor.getLayoutInfo()));let h;this._register((0,y.bg)(this._nodes.root,{paddingRight:a.map((e=>e.verticalScrollbarWidth))})),h=i.changes.length>0?"original"===this._kind?(0,A.NC)("codeMovedToWithChanges","Code moved with changes to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):(0,A.NC)("codeMovedFromWithChanges","Code moved with changes from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1):"original"===this._kind?(0,A.NC)("codeMovedTo","Code moved to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):(0,A.NC)("codeMovedFrom","Code moved from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1);const d=this._register(new f.o(this._nodes.actionBar,{highlightToggledItems:!0})),c=new _.aU("",h,"",!1);d.push(c,{icon:!1,label:!0});const u=new _.aU("","Compare",C.k.asClassName(b.l.compareChanges),!0,(()=>{this._editor.focus(),this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get()===i?void 0:this._move,void 0)}));this._register((0,l.EH)((e=>{const t=this._diffModel.movedTextToCompare.read(e)===i;u.checked=t}))),d.push(u,{icon:!1,label:!0})}}var ie=i(94817);class ne extends a.JT{constructor(e,t,i,n){super(),this._editors=e,this._diffModel=t,this._options=i,this._decorations=(0,l.nK)(this,(e=>{var t;const i=null===(t=this._diffModel.read(e))||void 0===t?void 0:t.diff.read(e);if(!i)return null;const n=this._diffModel.read(e).movedTextToCompare.read(e),o=this._options.renderIndicators.read(e),s=this._options.showEmptyDecorations.read(e),r=[],a=[];if(!n)for(const h of i.mappings)if(h.lineRangeMapping.original.isEmpty||r.push({range:h.lineRangeMapping.original.toInclusiveRange(),options:o?ie.iq:ie.i_}),h.lineRangeMapping.modified.isEmpty||a.push({range:h.lineRangeMapping.modified.toInclusiveRange(),options:o?ie.vv:ie.rd}),h.lineRangeMapping.modified.isEmpty||h.lineRangeMapping.original.isEmpty)h.lineRangeMapping.original.isEmpty||r.push({range:h.lineRangeMapping.original.toInclusiveRange(),options:ie.W3}),h.lineRangeMapping.modified.isEmpty||a.push({range:h.lineRangeMapping.modified.toInclusiveRange(),options:ie.Jv});else for(const e of h.lineRangeMapping.innerChanges||[])h.lineRangeMapping.original.contains(e.originalRange.startLineNumber)&&r.push({range:e.originalRange,options:e.originalRange.isEmpty()&&s?ie.$F:ie.rq}),h.lineRangeMapping.modified.contains(e.modifiedRange.startLineNumber)&&a.push({range:e.modifiedRange,options:e.modifiedRange.isEmpty()&&s?ie.n_:ie.LE});if(n)for(const h of n.changes){const e=h.original.toInclusiveRange();e&&r.push({range:e,options:o?ie.iq:ie.i_});const t=h.modified.toInclusiveRange();t&&a.push({range:t,options:o?ie.vv:ie.rd});for(const i of h.innerChanges||[])r.push({range:i.originalRange,options:ie.rq}),a.push({range:i.modifiedRange,options:ie.LE})}const l=this._diffModel.read(e).activeMovedText.read(e);for(const h of i.movedTexts)r.push({range:h.lineRangeMapping.original.toInclusiveRange(),options:{description:"moved",blockClassName:"movedOriginal"+(h===l?" currentMove":""),blockPadding:[X.movedCodeBlockPadding,0,X.movedCodeBlockPadding,X.movedCodeBlockPadding]}}),a.push({range:h.lineRangeMapping.modified.toInclusiveRange(),options:{description:"moved",blockClassName:"movedModified"+(h===l?" currentMove":""),blockPadding:[4,0,4,4]}});return{originalDecorations:r,modifiedDecorations:a}})),this._register((0,y.RP)(this._editors.original,this._decorations.map((e=>(null===e||void 0===e?void 0:e.originalDecorations)||[])))),this._register((0,y.RP)(this._editors.modified,this._decorations.map((e=>(null===e||void 0===e?void 0:e.modifiedDecorations)||[]))))}}var oe=i(38059);class se extends a.JT{constructor(e,t,i,n){super(),this._options=e,this._domNode=t,this._dimensions=i,this._sashes=n,this._sashRatio=(0,l.uh)(this,void 0),this.sashLeft=(0,l.nK)(this,(e=>{var t;const i=null!==(t=this._sashRatio.read(e))&&void 0!==t?t:this._options.splitViewDefaultRatio.read(e);return this._computeSashLeft(i,e)})),this._sash=this._register(new oe.g(this._domNode,{getVerticalSashTop:e=>0,getVerticalSashLeft:e=>this.sashLeft.get(),getVerticalSashHeight:e=>this._dimensions.height.get()},{orientation:0})),this._startSashPosition=void 0,this._register(this._sash.onDidStart((()=>{this._startSashPosition=this.sashLeft.get()}))),this._register(this._sash.onDidChange((e=>{const t=this._dimensions.width.get(),i=this._computeSashLeft((this._startSashPosition+(e.currentX-e.startX))/t,void 0);this._sashRatio.set(i/t,void 0)}))),this._register(this._sash.onDidEnd((()=>this._sash.layout()))),this._register(this._sash.onDidReset((()=>this._sashRatio.set(void 0,void 0)))),this._register((0,l.EH)((e=>{const t=this._sashes.read(e);t&&(this._sash.orthogonalEndSash=t.bottom)}))),this._register((0,l.EH)((e=>{const t=this._options.enableSplitViewResizing.read(e);this._sash.state=t?3:0,this.sashLeft.read(e),this._dimensions.height.read(e),this._sash.layout()})))}_computeSashLeft(e,t){const i=this._dimensions.width.read(t),n=Math.floor(this._options.splitViewDefaultRatio.read(t)*i),o=this._options.enableSplitViewResizing.read(t)?Math.floor(e*i):n,s=100;return i<=200?n:oi-s?i-s:o}}var re,ae=i(60282),le=i(63686),he=i(16113),de=i(43837),ce=i(6459),ue=i(60918),ge=i(38015),me=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},fe=function(e,t){return function(i,n){t(i,n,e)}};const pe=(0,O.yh)("diffProviderFactoryService");let _e=class{constructor(e){this.instantiationService=e}createDiffProvider(e){return this.instantiationService.createInstance(ve,e)}};_e=me([fe(0,O.TG)],_e),(0,de.z)(pe,_e,1);let ve=re=class{constructor(e,t,i){this.editorWorkerService=t,this.telemetryService=i,this.onDidChangeEventEmitter=new r.Q5,this.onDidChange=this.onDidChangeEventEmitter.event,this.diffAlgorithm="advanced",this.diffAlgorithmOnDidChangeSubscription=void 0,this.setOptions(e)}dispose(){var e;null===(e=this.diffAlgorithmOnDidChangeSubscription)||void 0===e||e.dispose()}async computeDiff(e,t,i,n){var o,s;if("string"!==typeof this.diffAlgorithm)return this.diffAlgorithm.computeDiff(e,t,i,n);if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return 1===t.getLineCount()&&1===t.getLineMaxColumn(1)?{changes:[],identical:!0,quitEarly:!1,moves:[]}:{changes:[new x.gB(new L.z(1,2),new L.z(1,t.getLineCount()+1),[new x.iy(e.getFullModelRange(),t.getFullModelRange())])],identical:!1,quitEarly:!1,moves:[]};const r=JSON.stringify([e.uri.toString(),t.uri.toString()]),a=JSON.stringify([e.id,t.id,e.getAlternativeVersionId(),t.getAlternativeVersionId(),JSON.stringify(i)]),l=re.diffCache.get(r);if(l&&l.context===a)return l.result;const h=ce.G.create(),d=await this.editorWorkerService.computeDiff(e.uri,t.uri,i,this.diffAlgorithm),c=h.elapsed();if(this.telemetryService.publicLog2("diffEditor.computeDiff",{timeMs:c,timedOut:null===(o=null===d||void 0===d?void 0:d.quitEarly)||void 0===o||o,detectedMoves:i.computeMoves?null!==(s=null===d||void 0===d?void 0:d.moves.length)&&void 0!==s?s:0:-1}),n.isCancellationRequested)return{changes:[],identical:!1,quitEarly:!0,moves:[]};if(!d)throw new Error("no diff result available");return re.diffCache.size>10&&re.diffCache.delete(re.diffCache.keys().next().value),re.diffCache.set(r,{result:d,context:a}),d}setOptions(e){var t;let i=!1;e.diffAlgorithm&&this.diffAlgorithm!==e.diffAlgorithm&&(null===(t=this.diffAlgorithmOnDidChangeSubscription)||void 0===t||t.dispose(),this.diffAlgorithmOnDidChangeSubscription=void 0,this.diffAlgorithm=e.diffAlgorithm,"string"!==typeof e.diffAlgorithm&&(this.diffAlgorithmOnDidChangeSubscription=e.diffAlgorithm.onDidChange((()=>this.onDidChangeEventEmitter.fire()))),i=!0),i&&this.onDidChangeEventEmitter.fire()}};ve.diffCache=new Map,ve=re=me([fe(1,ue.p),fe(2,ge.b)],ve);var be=i(20870),Ce=i(74196),we=i(31246),ye=i(96025),Se=i(39880),Le=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ke=function(e,t){return function(i,n){t(i,n,e)}};let De=class extends a.JT{setActiveMovedText(e){this._activeMovedText.set(e,void 0)}constructor(e,t,i){super(),this.model=e,this._options=t,this._diffProviderFactoryService=i,this._isDiffUpToDate=(0,l.uh)(this,!1),this.isDiffUpToDate=this._isDiffUpToDate,this._diff=(0,l.uh)(this,void 0),this.diff=this._diff,this._unchangedRegions=(0,l.uh)(this,void 0),this.unchangedRegions=(0,l.nK)(this,(e=>{var t,i;return this._options.hideUnchangedRegions.read(e)?null!==(i=null===(t=this._unchangedRegions.read(e))||void 0===t?void 0:t.regions)&&void 0!==i?i:[]:((0,l.PS)((e=>{var t;for(const i of(null===(t=this._unchangedRegions.get())||void 0===t?void 0:t.regions)||[])i.collapseAll(e)})),[])})),this.movedTextToCompare=(0,l.uh)(this,void 0),this._activeMovedText=(0,l.uh)(this,void 0),this._hoveredMovedText=(0,l.uh)(this,void 0),this.activeMovedText=(0,l.nK)(this,(e=>{var t,i;return null!==(i=null!==(t=this.movedTextToCompare.read(e))&&void 0!==t?t:this._hoveredMovedText.read(e))&&void 0!==i?i:this._activeMovedText.read(e)})),this._cancellationTokenSource=new he.A,this._diffProvider=(0,l.nK)(this,(e=>{const t=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:this._options.diffAlgorithm.read(e)});return{diffProvider:t,onChangeSignal:(0,l.aq)("onDidChange",t.onDidChange)}})),this._register((0,a.OF)((()=>this._cancellationTokenSource.cancel())));const n=(0,l.GN)("contentChangedSignal"),o=this._register(new ae.pY((()=>n.trigger(void 0)),200));this._register((0,l.EH)((t=>{const i=this._unchangedRegions.read(t);if(!i||i.regions.some((e=>e.isDragged.read(t))))return;const n=i.originalDecorationIds.map((t=>e.original.getDecorationRange(t))).map((e=>e?L.z.fromRangeInclusive(e):void 0)),o=i.modifiedDecorationIds.map((t=>e.modified.getDecorationRange(t))).map((e=>e?L.z.fromRangeInclusive(e):void 0)),s=i.regions.map(((e,i)=>n[i]&&o[i]?new Ee(n[i].startLineNumber,o[i].startLineNumber,n[i].length,e.visibleLineCountTop.read(t),e.visibleLineCountBottom.read(t)):void 0)).filter(le.$K),r=[];let a=!1;for(const e of(0,v.mw)(s,((e,i)=>e.getHiddenModifiedRange(t).endLineNumberExclusive===i.getHiddenModifiedRange(t).startLineNumber)))if(e.length>1){a=!0;const t=e.reduce(((e,t)=>e+t.lineCount),0),i=new Ee(e[0].originalLineNumber,e[0].modifiedLineNumber,t,e[0].visibleLineCountTop.get(),e[e.length-1].visibleLineCountBottom.get());r.push(i)}else r.push(e[0]);if(a){const t=e.original.deltaDecorations(i.originalDecorationIds,r.map((e=>({range:e.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})))),n=e.modified.deltaDecorations(i.modifiedDecorationIds,r.map((e=>({range:e.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))));(0,l.PS)((e=>{this._unchangedRegions.set({regions:r,originalDecorationIds:t,modifiedDecorationIds:n},e)}))}})));const s=(t,i,n)=>{const o=Ee.fromDiffs(t.changes,e.original.getLineCount(),e.modified.getLineCount(),this._options.hideUnchangedRegionsMinimumLineCount.read(n),this._options.hideUnchangedRegionsContextLineCount.read(n));let s;const r=this._unchangedRegions.get();if(r){const t=r.originalDecorationIds.map((t=>e.original.getDecorationRange(t))).map((e=>e?L.z.fromRangeInclusive(e):void 0)),i=r.modifiedDecorationIds.map((t=>e.modified.getDecorationRange(t))).map((e=>e?L.z.fromRangeInclusive(e):void 0));let o=(0,y.W7)(r.regions.map(((e,n)=>{if(!t[n]||!i[n])return;const o=t[n].length;return new Ee(t[n].startLineNumber,i[n].startLineNumber,o,Math.min(e.visibleLineCountTop.get(),o),Math.min(e.visibleLineCountBottom.get(),o-e.visibleLineCountTop.get()))})).filter(le.$K),((e,t)=>!t||e.modifiedLineNumber>=t.modifiedLineNumber+t.lineCount&&e.originalLineNumber>=t.originalLineNumber+t.lineCount)).map((e=>new x.f0(e.getHiddenOriginalRange(n),e.getHiddenModifiedRange(n))));o=x.f0.clip(o,L.z.ofLength(1,e.original.getLineCount()),L.z.ofLength(1,e.modified.getLineCount())),s=x.f0.inverse(o,e.original.getLineCount(),e.modified.getLineCount())}const a=[];if(s)for(const e of o){const t=s.filter((t=>t.original.intersectsStrict(e.originalUnchangedRange)&&t.modified.intersectsStrict(e.modifiedUnchangedRange)));a.push(...e.setVisibleRanges(t,i))}else a.push(...o);const l=e.original.deltaDecorations((null===r||void 0===r?void 0:r.originalDecorationIds)||[],a.map((e=>({range:e.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})))),h=e.modified.deltaDecorations((null===r||void 0===r?void 0:r.modifiedDecorationIds)||[],a.map((e=>({range:e.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))));this._unchangedRegions.set({regions:a,originalDecorationIds:l,modifiedDecorationIds:h},i)};this._register(e.modified.onDidChangeContent((t=>{if(this._diff.get()){const i=Ce.Q.fromModelContentChanges(t.changes),n=Te(this._lastDiff,i,e.original,e.modified);n&&(this._lastDiff=n,(0,l.PS)((e=>{this._diff.set(Ne.fromDiffResult(this._lastDiff),e),s(n,e);const t=this.movedTextToCompare.get();this.movedTextToCompare.set(t?this._lastDiff.moves.find((e=>e.lineRangeMapping.modified.intersect(t.lineRangeMapping.modified))):void 0,e)})))}this._isDiffUpToDate.set(!1,void 0),o.schedule()}))),this._register(e.original.onDidChangeContent((t=>{if(this._diff.get()){const i=Ce.Q.fromModelContentChanges(t.changes),n=Ie(this._lastDiff,i,e.original,e.modified);n&&(this._lastDiff=n,(0,l.PS)((e=>{this._diff.set(Ne.fromDiffResult(this._lastDiff),e),s(n,e);const t=this.movedTextToCompare.get();this.movedTextToCompare.set(t?this._lastDiff.moves.find((e=>e.lineRangeMapping.modified.intersect(t.lineRangeMapping.modified))):void 0,e)})))}this._isDiffUpToDate.set(!1,void 0),o.schedule()}))),this._register((0,l.gp)((async(t,i)=>{var r,a;this._options.hideUnchangedRegionsMinimumLineCount.read(t),this._options.hideUnchangedRegionsContextLineCount.read(t),o.cancel(),n.read(t);const h=this._diffProvider.read(t);h.onChangeSignal.read(t),(0,y.NW)(be.DW,t),(0,y.NW)(ye.xG,t),this._isDiffUpToDate.set(!1,void 0);let d=[];i.add(e.original.onDidChangeContent((e=>{const t=Ce.Q.fromModelContentChanges(e.changes);d=(0,we.o)(d,t)})));let c=[];i.add(e.modified.onDidChangeContent((e=>{const t=Ce.Q.fromModelContentChanges(e.changes);c=(0,we.o)(c,t)})));let u=await h.diffProvider.computeDiff(e.original,e.modified,{ignoreTrimWhitespace:this._options.ignoreTrimWhitespace.read(t),maxComputationTimeMs:this._options.maxComputationTimeMs.read(t),computeMoves:this._options.showMoves.read(t)},this._cancellationTokenSource.token);var g,m,f;this._cancellationTokenSource.token.isCancellationRequested||(g=u,m=e.original,f=e.modified,u={changes:g.changes.map((e=>new x.gB(e.original,e.modified,e.innerChanges?e.innerChanges.map((e=>function(e,t,i){let n=e.originalRange,o=e.modifiedRange;return(1!==n.endColumn||1!==o.endColumn)&&n.endColumn===t.getLineMaxColumn(n.endLineNumber)&&o.endColumn===i.getLineMaxColumn(o.endLineNumber)&&n.endLineNumber{s(u,e),this._lastDiff=u;const t=Ne.fromDiffResult(u);this._diff.set(t,e),this._isDiffUpToDate.set(!0,e);const i=this.movedTextToCompare.get();this.movedTextToCompare.set(i?this._lastDiff.moves.find((e=>e.lineRangeMapping.modified.intersect(i.lineRangeMapping.modified))):void 0,e)})))})))}ensureModifiedLineIsVisible(e,t,i){var n,o;if(0===(null===(n=this.diff.get())||void 0===n?void 0:n.mappings.length))return;const s=(null===(o=this._unchangedRegions.get())||void 0===o?void 0:o.regions)||[];for(const r of s)if(r.getHiddenModifiedRange(void 0).contains(e))return void r.showModifiedLine(e,t,i)}ensureOriginalLineIsVisible(e,t,i){var n,o;if(0===(null===(n=this.diff.get())||void 0===n?void 0:n.mappings.length))return;const s=(null===(o=this._unchangedRegions.get())||void 0===o?void 0:o.regions)||[];for(const r of s)if(r.getHiddenOriginalRange(void 0).contains(e))return void r.showOriginalLine(e,t,i)}async waitForDiff(){await(0,l.F_)(this.isDiffUpToDate,(e=>e))}serializeState(){const e=this._unchangedRegions.get();return{collapsedRegions:null===e||void 0===e?void 0:e.regions.map((e=>({range:e.getHiddenModifiedRange(void 0).serialize()})))}}restoreSerializedState(e){var t;const i=null===(t=e.collapsedRegions)||void 0===t?void 0:t.map((e=>L.z.deserialize(e.range))),n=this._unchangedRegions.get();n&&i&&(0,l.PS)((e=>{for(const t of n.regions)for(const n of i)if(t.modifiedUnchangedRange.intersect(n)){t.setHiddenModifiedRange(n,e);break}}))}};De=Le([ke(2,pe)],De);class Ne{static fromDiffResult(e){return new Ne(e.changes.map((e=>new xe(e))),e.moves||[],e.identical,e.quitEarly)}constructor(e,t,i,n){this.mappings=e,this.movedTexts=t,this.identical=i,this.quitEarly=n}}class xe{constructor(e){this.lineRangeMapping=e}}class Ee{static fromDiffs(e,t,i,n,o){const s=x.gB.inverse(e,t,i),r=[];for(const a of s){let e=a.original.startLineNumber,s=a.modified.startLineNumber,l=a.original.length;const h=1===e&&1===s,d=e+l===t+1&&s+l===i+1;(h||d)&&l>=o+n?(h&&!d&&(l-=o),d&&!h&&(e+=o,s+=o,l-=o),r.push(new Ee(e,s,l,0,0))):l>=2*o+n&&(e+=o,s+=o,l-=2*o,r.push(new Ee(e,s,l,0,0)))}return r}get originalUnchangedRange(){return L.z.ofLength(this.originalLineNumber,this.lineCount)}get modifiedUnchangedRange(){return L.z.ofLength(this.modifiedLineNumber,this.lineCount)}constructor(e,t,i,n,o){this.originalLineNumber=e,this.modifiedLineNumber=t,this.lineCount=i,this._visibleLineCountTop=(0,l.uh)(this,0),this.visibleLineCountTop=this._visibleLineCountTop,this._visibleLineCountBottom=(0,l.uh)(this,0),this.visibleLineCountBottom=this._visibleLineCountBottom,this._shouldHideControls=(0,l.nK)(this,(e=>this.visibleLineCountTop.read(e)+this.visibleLineCountBottom.read(e)===this.lineCount&&!this.isDragged.read(e))),this.isDragged=(0,l.uh)(this,void 0);const s=Math.max(Math.min(n,this.lineCount),0),r=Math.max(Math.min(o,this.lineCount-n),0);(0,Se.wN)(n===s),(0,Se.wN)(o===r),this._visibleLineCountTop.set(s,void 0),this._visibleLineCountBottom.set(r,void 0)}setVisibleRanges(e,t){const i=[],n=new L.i(e.map((e=>e.modified))).subtractFrom(this.modifiedUnchangedRange);let o=this.originalLineNumber,s=this.modifiedLineNumber;const r=this.modifiedLineNumber+this.lineCount;if(0===n.ranges.length)this.showAll(t),i.push(this);else{let e=0;for(const a of n.ranges){const l=e===n.ranges.length-1;e++;const h=(l?r:a.endLineNumberExclusive)-s,d=new Ee(o,s,h,0,0);d.setHiddenModifiedRange(a,t),i.push(d),o=d.originalUnchangedRange.endLineNumberExclusive,s=d.modifiedUnchangedRange.endLineNumberExclusive}}return i}shouldHideControls(e){return this._shouldHideControls.read(e)}getHiddenOriginalRange(e){return L.z.ofLength(this.originalLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}getHiddenModifiedRange(e){return L.z.ofLength(this.modifiedLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}setHiddenModifiedRange(e,t){const i=e.startLineNumber-this.modifiedLineNumber,n=this.modifiedLineNumber+this.lineCount-e.endLineNumberExclusive;this.setState(i,n,t)}getMaxVisibleLineCountTop(){return this.lineCount-this._visibleLineCountBottom.get()}getMaxVisibleLineCountBottom(){return this.lineCount-this._visibleLineCountTop.get()}showMoreAbove(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=arguments.length>1?arguments[1]:void 0;const i=this.getMaxVisibleLineCountTop();this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+e,i),t)}showMoreBelow(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=arguments.length>1?arguments[1]:void 0;const i=this.lineCount-this._visibleLineCountTop.get();this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+e,i),t)}showAll(e){this._visibleLineCountBottom.set(this.lineCount-this._visibleLineCountTop.get(),e)}showModifiedLine(e,t,i){const n=e+1-(this.modifiedLineNumber+this._visibleLineCountTop.get()),o=this.modifiedLineNumber-this._visibleLineCountBottom.get()+this.lineCount-e;0===t&&n{var n;this._contextMenuService.showContextMenu({domForShadowRoot:u&&null!==(n=i.getDomNode())&&void 0!==n?n:void 0,getAnchor:()=>({x:e,y:t}),getActions:()=>{const e=[],t=o.modified.isEmpty;e.push(new _.aU("diff.clipboard.copyDeletedContent",t?o.original.length>1?(0,A.NC)("diff.clipboard.copyDeletedLinesContent.label","Copy deleted lines"):(0,A.NC)("diff.clipboard.copyDeletedLinesContent.single.label","Copy deleted line"):o.original.length>1?(0,A.NC)("diff.clipboard.copyChangedLinesContent.label","Copy changed lines"):(0,A.NC)("diff.clipboard.copyChangedLinesContent.single.label","Copy changed line"),void 0,!0,(async()=>{const e=this._originalTextModel.getValueInRange(o.original.toExclusiveRange());await this._clipboardService.writeText(e)}))),o.original.length>1&&e.push(new _.aU("diff.clipboard.copyDeletedLineContent",t?(0,A.NC)("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",o.original.startLineNumber+c):(0,A.NC)("diff.clipboard.copyChangedLineContent.label","Copy changed line ({0})",o.original.startLineNumber+c),void 0,!0,(async()=>{let e=this._originalTextModel.getLineContent(o.original.startLineNumber+c);if(""===e){e=0===this._originalTextModel.getEndOfLineSequence()?"\n":"\r\n"}await this._clipboardService.writeText(e)})));return i.getOption(91)||e.push(new _.aU("diff.inline.revertChange",(0,A.NC)("diff.inline.revertChange.label","Revert this change"),void 0,!0,(async()=>{this._editor.revert(this._diff)}))),e},autoSelectFirstItem:!0})};this._register((0,n.mu)(this._diffActions,"mousedown",(e=>{if(!e.leftButton)return;const{top:t,height:i}=(0,n.i)(this._diffActions),o=Math.floor(d/3);e.preventDefault(),g(e.posx,t+i+o)}))),this._register(i.onMouseMove((e=>{8!==e.target.type&&5!==e.target.type||e.target.detail.viewZoneId!==this._getViewZoneId()?this.visibility=!1:(c=this._updateLightBulbPosition(this._marginDomNode,e.event.browserEvent.y,d),this.visibility=!0)}))),this._register(i.onMouseDown((e=>{if(e.event.leftButton&&(8===e.target.type||5===e.target.type)){e.target.detail.viewZoneId===this._getViewZoneId()&&(e.event.preventDefault(),c=this._updateLightBulbPosition(this._marginDomNode,e.event.browserEvent.y,d),g(e.event.posx,e.event.posy+d))}})))}_updateLightBulbPosition(e,t,i){const{top:o}=(0,n.i)(e),s=t-o,r=Math.floor(s/i),a=r*i;if(this._diffActions.style.top="".concat(a,"px"),this._viewLineCounts){let e=0;for(let t=0;te});function Fe(e,t,i,n){(0,w.N)(n,t.fontInfo);const o=i.length>0,s=new Re.HT(1e4);let r=0,a=0;const l=[];for(let c=0;c');const l=t.getLineContent(),h=M.wA.isBasicASCII(l,o),d=M.wA.containsRTL(l,h,s),c=(0,T.d1)(new T.IJ(r.fontInfo.isMonospace&&!r.disableMonospaceOptimizations,r.fontInfo.canUseHalfwidthRightwardsArrow,l,!1,h,d,0,t,i,r.tabSize,0,r.fontInfo.spaceWidth,r.fontInfo.middotWidth,r.fontInfo.wsmiddotWidth,r.stopRenderingLineAfter,r.renderWhitespace,r.renderControlCharacters,r.fontLigatures!==S.n0.OFF,null),a);return a.appendString(""),c.characterMapping.getHorizontalOffset(c.characterMapping.length)}var We=i(85729),He=i(58868),Ke=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ue=function(e,t){return function(i,n){t(i,n,e)}};let je=class extends a.JT{constructor(e,t,i,o,s,r,h,d,c,u){super(),this._targetWindow=e,this._editors=t,this._diffModel=i,this._options=o,this._diffEditorWidget=s,this._canIgnoreViewZoneUpdateEvent=r,this._origViewZonesToIgnore=h,this._modViewZonesToIgnore=d,this._clipboardService=c,this._contextMenuService=u,this._originalTopPadding=(0,l.uh)(this,0),this._originalScrollOffset=(0,l.uh)(this,0),this._originalScrollOffsetAnimated=(0,y.Vm)(this._targetWindow,this._originalScrollOffset,this._store),this._modifiedTopPadding=(0,l.uh)(this,0),this._modifiedScrollOffset=(0,l.uh)(this,0),this._modifiedScrollOffsetAnimated=(0,y.Vm)(this._targetWindow,this._modifiedScrollOffset,this._store);const g=(0,l.uh)("invalidateAlignmentsState",0),m=this._register(new ae.pY((()=>{g.set(g.get()+1,void 0)}),0));this._register(this._editors.original.onDidChangeViewZones((e=>{this._canIgnoreViewZoneUpdateEvent()||m.schedule()}))),this._register(this._editors.modified.onDidChangeViewZones((e=>{this._canIgnoreViewZoneUpdateEvent()||m.schedule()}))),this._register(this._editors.original.onDidChangeConfiguration((e=>{(e.hasChanged(146)||e.hasChanged(67))&&m.schedule()}))),this._register(this._editors.modified.onDidChangeConfiguration((e=>{(e.hasChanged(146)||e.hasChanged(67))&&m.schedule()})));const f=this._diffModel.map((e=>e?(0,l.rD)(e.model.original.onDidChangeTokens,(()=>2===e.model.original.tokenization.backgroundTokenizationState)):void 0)).map(((e,t)=>null===e||void 0===e?void 0:e.read(t))),p=(0,l.nK)((e=>{const t=this._diffModel.read(e),i=null===t||void 0===t?void 0:t.diff.read(e);if(!t||!i)return null;g.read(e);const n=this._options.renderSideBySide.read(e);return qe(this._editors.original,this._editors.modified,i.mappings,this._origViewZonesToIgnore,this._modViewZonesToIgnore,n)})),_=(0,l.nK)((e=>{var t;const i=null===(t=this._diffModel.read(e))||void 0===t?void 0:t.movedTextToCompare.read(e);if(!i)return null;g.read(e);const n=i.changes.map((e=>new xe(e)));return qe(this._editors.original,this._editors.modified,n,this._origViewZonesToIgnore,this._modViewZonesToIgnore,!0)}));function v(){const e=document.createElement("div");return e.className="diagonal-fill",e}const S=this._register(new a.SL);this.viewZones=(0,l.Be)(this,((e,t)=>{var i,o,r,a,l,h,d,c;S.clear();const u=p.read(e)||[],g=[],m=[],y=this._modifiedTopPadding.read(e);y>0&&m.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:y,showInHiddenAreas:!0,suppressMouseDown:!0});const L=this._originalTopPadding.read(e);L>0&&g.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:L,showInHiddenAreas:!0,suppressMouseDown:!0});const k=this._options.renderSideBySide.read(e),D=k||null===(i=this._editors.modified._getViewModel())||void 0===i?void 0:i.createLineBreaksComputer();if(D){const O=this._editors.original.getModel();for(const P of u)if(P.diff)for(let F=P.originalRange.startLineNumber;FO.getLineCount())return{orig:g,mod:m};null===D||void 0===D||D.addRequest(O.getLineContent(F),null,null)}}const N=null!==(o=null===D||void 0===D?void 0:D.finalize())&&void 0!==o?o:[];let x=0;const E=this._editors.modified.getOption(67),I=null===(r=this._diffModel.read(e))||void 0===r?void 0:r.movedTextToCompare.read(e),T=null!==(l=null===(a=this._editors.original.getModel())||void 0===a?void 0:a.mightContainNonBasicASCII())&&void 0!==l&&l,A=null!==(d=null===(h=this._editors.original.getModel())||void 0===h?void 0:h.mightContainRTL())&&void 0!==d&&d,R=ze.fromEditor(this._editors.modified);for(const B of u)if(B.diff&&!k){if(!B.originalRange.isEmpty){f.read(e);const V=document.createElement("div");V.classList.add("view-lines","line-delete","monaco-mouse-cursor-text");const W=this._editors.original.getModel();if(B.originalRange.endLineNumberExclusive-1>W.getLineCount())return{orig:g,mod:m};const H=new Be(B.originalRange.mapToLineArray((e=>W.tokenization.getLineTokens(e))),B.originalRange.mapToLineArray((e=>N[x++])),T,A),K=[];for(const G of B.diff.innerChanges||[])K.push(new M.$t(G.originalRange.delta(-(B.diff.original.startLineNumber-1)),ie.rq.className,0));const U=Fe(H,R,K,V),j=document.createElement("div");if(j.className="inline-deleted-margin-view-zone",(0,w.N)(j,R.fontInfo),this._options.renderIndicators.read(e))for(let Q=0;Q(0,le.cW)(q)),j,this._editors.modified,B.diff,this._diffEditorWidget,U.viewLineCounts,this._editors.original.getModel(),this._contextMenuService,this._clipboardService));for(let Y=0;Y1&&g.push({afterLineNumber:B.originalRange.startLineNumber+Y,domNode:v(),heightInPx:($-1)*E,showInHiddenAreas:!0,suppressMouseDown:!0})}m.push({afterLineNumber:B.modifiedRange.startLineNumber-1,domNode:V,heightInPx:U.heightInLines*E,minWidthInPx:U.minWidthInPx,marginDomNode:j,setZoneId(e){q=e},showInHiddenAreas:!0,suppressMouseDown:!0})}const z=document.createElement("div");z.className="gutter-delete",g.push({afterLineNumber:B.originalRange.endLineNumberExclusive-1,domNode:v(),heightInPx:B.modifiedHeightInPx,marginDomNode:z,showInHiddenAreas:!0,suppressMouseDown:!0})}else{const J=B.modifiedHeightInPx-B.originalHeightInPx;if(J>0){if(null===I||void 0===I?void 0:I.lineRangeMapping.original.delta(-1).deltaLength(2).contains(B.originalRange.endLineNumberExclusive-1))continue;g.push({afterLineNumber:B.originalRange.endLineNumberExclusive-1,domNode:v(),heightInPx:J,showInHiddenAreas:!0,suppressMouseDown:!0})}else{if(null===I||void 0===I?void 0:I.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(B.modifiedRange.endLineNumberExclusive-1))continue;function X(){const e=document.createElement("div");return e.className="arrow-revert-change "+C.k.asClassName(b.l.arrowRight),t.add((0,n.nm)(e,"mousedown",(e=>e.stopPropagation()))),t.add((0,n.nm)(e,"click",(e=>{e.stopPropagation(),s.revert(B.diff)}))),(0,n.$)("div",{},e)}let ee;B.diff&&B.diff.modified.isEmpty&&this._options.shouldRenderOldRevertArrows.read(e)&&(ee=X()),m.push({afterLineNumber:B.modifiedRange.endLineNumberExclusive-1,domNode:v(),heightInPx:-J,marginDomNode:ee,showInHiddenAreas:!0,suppressMouseDown:!0})}}for(const te of null!==(c=_.read(e))&&void 0!==c?c:[]){if(!(null===I||void 0===I?void 0:I.lineRangeMapping.original.intersect(te.originalRange))||!(null===I||void 0===I?void 0:I.lineRangeMapping.modified.intersect(te.modifiedRange)))continue;const ne=te.modifiedHeightInPx-te.originalHeightInPx;ne>0?g.push({afterLineNumber:te.originalRange.endLineNumberExclusive-1,domNode:v(),heightInPx:ne,showInHiddenAreas:!0,suppressMouseDown:!0}):m.push({afterLineNumber:te.modifiedRange.endLineNumberExclusive-1,domNode:v(),heightInPx:-ne,showInHiddenAreas:!0,suppressMouseDown:!0})}return{orig:g,mod:m}}));let L=!1;this._register(this._editors.original.onDidScrollChange((e=>{e.scrollLeftChanged&&!L&&(L=!0,this._editors.modified.setScrollLeft(e.scrollLeft),L=!1)}))),this._register(this._editors.modified.onDidScrollChange((e=>{e.scrollLeftChanged&&!L&&(L=!0,this._editors.original.setScrollLeft(e.scrollLeft),L=!1)}))),this._originalScrollTop=(0,l.rD)(this._editors.original.onDidScrollChange,(()=>this._editors.original.getScrollTop())),this._modifiedScrollTop=(0,l.rD)(this._editors.modified.onDidScrollChange,(()=>this._editors.modified.getScrollTop())),this._register((0,l.EH)((e=>{const t=this._originalScrollTop.read(e)-(this._originalScrollOffsetAnimated.get()-this._modifiedScrollOffsetAnimated.read(e))-(this._originalTopPadding.get()-this._modifiedTopPadding.read(e));t!==this._editors.modified.getScrollTop()&&this._editors.modified.setScrollTop(t,1)}))),this._register((0,l.EH)((e=>{const t=this._modifiedScrollTop.read(e)-(this._modifiedScrollOffsetAnimated.get()-this._originalScrollOffsetAnimated.read(e))-(this._modifiedTopPadding.get()-this._originalTopPadding.read(e));t!==this._editors.original.getScrollTop()&&this._editors.original.setScrollTop(t,1)}))),this._register((0,l.EH)((e=>{var t;const i=null===(t=this._diffModel.read(e))||void 0===t?void 0:t.movedTextToCompare.read(e);let n=0;if(i){const e=this._editors.original.getTopForLineNumber(i.lineRangeMapping.original.startLineNumber,!0)-this._originalTopPadding.get();n=this._editors.modified.getTopForLineNumber(i.lineRangeMapping.modified.startLineNumber,!0)-this._modifiedTopPadding.get()-e}n>0?(this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(n,void 0)):n<0?(this._modifiedTopPadding.set(-n,void 0),this._originalTopPadding.set(0,void 0)):setTimeout((()=>{this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(0,void 0)}),400),this._editors.modified.hasTextFocus()?this._originalScrollOffset.set(this._modifiedScrollOffset.get()-n,void 0,!0):this._modifiedScrollOffset.set(this._originalScrollOffset.get()+n,void 0,!0)})))}};function qe(e,t,i,n,o,s){const r=new v.H9(Ge(e,n)),a=new v.H9(Ge(t,o)),l=e.getOption(67),h=t.getOption(67),d=[];let c=0,u=0;function g(e,t){for(;;){let i=r.peek(),n=a.peek();if(i&&i.lineNumber>=e&&(i=void 0),n&&n.lineNumber>=t&&(n=void 0),!i&&!n)break;const o=i?i.lineNumber-c:Number.MAX_VALUE,s=n?n.lineNumber-u:Number.MAX_VALUE;os?(a.dequeue(),i={lineNumber:n.lineNumber-u+c,heightInPx:0}):(r.dequeue(),a.dequeue()),d.push({originalRange:L.z.ofLength(i.lineNumber,1),modifiedRange:L.z.ofLength(n.lineNumber,1),originalHeightInPx:l+i.heightInPx,modifiedHeightInPx:h+n.heightInPx,diff:void 0})}}for(const m of i){const f=m.lineRangeMapping;g(f.original.startLineNumber,f.modified.startLineNumber);let p=!0,_=f.modified.startLineNumber,b=f.original.startLineNumber;function C(e,t){var i,n,o,s;if(et.lineNumbere+t.heightInPx),0))&&void 0!==n?n:0,f=null!==(s=null===(o=a.takeWhile((e=>e.lineNumbere+t.heightInPx),0))&&void 0!==s?s:0;d.push({originalRange:c,modifiedRange:u,originalHeightInPx:c.length*l+g,modifiedHeightInPx:u.length*h+f,diff:m.lineRangeMapping}),b=e,_=t}if(s)for(const w of f.innerChanges||[]){w.originalRange.startColumn>1&&w.modifiedRange.startColumn>1&&C(w.originalRange.startLineNumber,w.modifiedRange.startLineNumber);const y=e.getModel(),S=w.originalRange.endLineNumber<=y.getLineCount()?y.getLineMaxColumn(w.originalRange.endLineNumber):Number.MAX_SAFE_INTEGER;w.originalRange.endColumn1&&n.push({lineNumber:a,heightInPx:r*(e-1)})}for(const a of e.getWhitespaces()){if(t.has(a.id))continue;const e=0===a.afterLineNumber?0:s.convertViewPositionToModelPosition(new D.L(a.afterLineNumber,1)).lineNumber;i.push({lineNumber:e,heightInPx:a.height})}return(0,y.Ap)(i,n,(e=>e.lineNumber),((e,t)=>({lineNumber:e.lineNumber,heightInPx:e.heightInPx+t.heightInPx})))}je=Ke([Ue(8,We.p),Ue(9,He.i)],je);var Qe,Ze=i(39196),Ye=i(45153),$e=i(62413),Je=i(70397),Xe=i(87701),et=i(17903),tt=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},it=function(e,t){return function(i,n){t(i,n,e)}};let nt=Qe=class extends a.JT{constructor(e,t,i,o,s,r,a){super(),this._editors=e,this._rootElement=t,this._diffModel=i,this._rootWidth=o,this._rootHeight=s,this._modifiedEditorLayoutInfo=r,this._themeService=a,this.width=Qe.ENTIRE_DIFF_OVERVIEW_WIDTH;const h=(0,l.rD)(this._themeService.onDidColorThemeChange,(()=>this._themeService.getColorTheme())),d=(0,l.nK)((e=>{const t=h.read(e);return{insertColor:t.getColor(Xe.P6Y)||(t.getColor(Xe.ypS)||Xe.CzK).transparent(2),removeColor:t.getColor(Xe.F9q)||(t.getColor(Xe.P4M)||Xe.keg).transparent(2)}})),c=(0,Ye.X)(document.createElement("div"));c.setClassName("diffViewport"),c.setPosition("absolute");const u=(0,n.h)("div.diffOverview",{style:{position:"absolute",top:"0px",width:Qe.ENTIRE_DIFF_OVERVIEW_WIDTH+"px"}}).root;this._register((0,y.xx)(u,c.domNode)),this._register((0,n.mu)(u,n.tw.POINTER_DOWN,(e=>{this._editors.modified.delegateVerticalScrollbarPointerDown(e)}))),this._register((0,n.nm)(u,n.tw.MOUSE_WHEEL,(e=>{this._editors.modified.delegateScrollFromMouseWheelEvent(e)}),{passive:!1})),this._register((0,y.xx)(this._rootElement,u)),this._register((0,l.gp)(((e,t)=>{const i=this._diffModel.read(e),n=this._editors.original.createOverviewRuler("original diffOverviewRuler");n&&(t.add(n),t.add((0,y.xx)(u,n.getDomNode())));const o=this._editors.modified.createOverviewRuler("modified diffOverviewRuler");if(o&&(t.add(o),t.add((0,y.xx)(u,o.getDomNode()))),!n||!o)return;const s=(0,l.aq)("viewZoneChanged",this._editors.original.onDidChangeViewZones),r=(0,l.aq)("viewZoneChanged",this._editors.modified.onDidChangeViewZones),a=(0,l.aq)("hiddenRangesChanged",this._editors.original.onDidChangeHiddenAreas),h=(0,l.aq)("hiddenRangesChanged",this._editors.modified.onDidChangeHiddenAreas);t.add((0,l.EH)((e=>{var t;s.read(e),r.read(e),a.read(e),h.read(e);const l=d.read(e),c=null===(t=null===i||void 0===i?void 0:i.diff.read(e))||void 0===t?void 0:t.mappings;function u(e,t,i){const n=i._getViewModel();return n?e.filter((e=>e.length>0)).map((e=>{const i=n.coordinatesConverter.convertModelPositionToViewPosition(new D.L(e.startLineNumber,1)),o=n.coordinatesConverter.convertModelPositionToViewPosition(new D.L(e.endLineNumberExclusive,1)),s=o.lineNumber-i.lineNumber;return new Je.EY(i.lineNumber,o.lineNumber,s,t.toString())})):[]}const g=u((c||[]).map((e=>e.lineRangeMapping.original)),l.removeColor,this._editors.original),m=u((c||[]).map((e=>e.lineRangeMapping.modified)),l.insertColor,this._editors.modified);null===n||void 0===n||n.setZones(g),null===o||void 0===o||o.setZones(m)}))),t.add((0,l.EH)((e=>{const t=this._rootHeight.read(e),i=this._rootWidth.read(e),s=this._modifiedEditorLayoutInfo.read(e);if(s){const i=Qe.ENTIRE_DIFF_OVERVIEW_WIDTH-2*Qe.ONE_OVERVIEW_WIDTH;n.setLayout({top:0,height:t,right:i+Qe.ONE_OVERVIEW_WIDTH,width:Qe.ONE_OVERVIEW_WIDTH}),o.setLayout({top:0,height:t,right:0,width:Qe.ONE_OVERVIEW_WIDTH});const r=this._editors.modifiedScrollTop.read(e),a=this._editors.modifiedScrollHeight.read(e),l=this._editors.modified.getOption(103),h=new $e.M(l.verticalHasArrows?l.arrowSize:0,l.verticalScrollbarSize,0,s.height,a,r);c.setTop(h.getSliderPosition()),c.setHeight(h.getSliderSize())}else c.setTop(0),c.setHeight(0);u.style.height=t+"px",u.style.left=i-Qe.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",c.setWidth(Qe.ENTIRE_DIFF_OVERVIEW_WIDTH)})))})))}};nt.ONE_OVERVIEW_WIDTH=15,nt.ENTIRE_DIFF_OVERVIEW_WIDTH=2*Qe.ONE_OVERVIEW_WIDTH,nt=Qe=tt([it(6,et.XE)],nt);var ot=i(76272),st=i(27127);const rt=[];class at extends a.JT{constructor(e,t,i,n){super(),this._editors=e,this._diffModel=t,this._options=i,this._widget=n,this._selectedDiffs=(0,l.nK)(this,(e=>{const t=this._diffModel.read(e),i=null===t||void 0===t?void 0:t.diff.read(e);if(!i)return rt;const n=this._editors.modifiedSelections.read(e);if(n.every((e=>e.isEmpty())))return rt;const o=new L.i(n.map((e=>L.z.fromRangeInclusive(e)))),s=i.mappings.filter((e=>e.lineRangeMapping.innerChanges&&o.intersects(e.lineRangeMapping.modified))).map((e=>({mapping:e,rangeMappings:e.lineRangeMapping.innerChanges.filter((e=>n.some((t=>N.e.areIntersecting(e.modifiedRange,t)))))})));return 0===s.length||s.every((e=>0===e.rangeMappings.length))?rt:s})),this._register((0,l.gp)(((e,t)=>{if(!this._options.shouldRenderOldRevertArrows.read(e))return;const i=this._diffModel.read(e),n=null===i||void 0===i?void 0:i.diff.read(e);if(!i||!n)return;if(i.movedTextToCompare.read(e))return;const o=[],s=this._selectedDiffs.read(e),r=new Set(s.map((e=>e.mapping)));if(s.length>0){const i=this._editors.modifiedSelections.read(e),n=t.add(new lt(i[i.length-1].positionLineNumber,this._widget,s.flatMap((e=>e.rangeMappings)),!0));this._editors.modified.addGlyphMarginWidget(n),o.push(n)}for(const a of n.mappings)if(!r.has(a)&&!a.lineRangeMapping.modified.isEmpty&&a.lineRangeMapping.innerChanges){const e=t.add(new lt(a.lineRangeMapping.modified.startLineNumber,this._widget,a.lineRangeMapping,!1));this._editors.modified.addGlyphMarginWidget(e),o.push(e)}t.add((0,a.OF)((()=>{for(const e of o)this._editors.modified.removeGlyphMarginWidget(e)})))})))}}class lt extends a.JT{getId(){return this._id}constructor(e,t,i,o){super(),this._lineNumber=e,this._widget=t,this._diffs=i,this._revertSelection=o,this._id="revertButton".concat(lt.counter++),this._domNode=(0,n.h)("div.revertButton",{title:this._revertSelection?(0,A.NC)("revertSelectedChanges","Revert Selected Changes"):(0,A.NC)("revertChange","Revert Change")},[(0,ot.h)(b.l.arrowRight)]).root,this._register((0,n.nm)(this._domNode,n.tw.MOUSE_DOWN,(e=>{2!==e.button&&(e.stopPropagation(),e.preventDefault())}))),this._register((0,n.nm)(this._domNode,n.tw.MOUSE_UP,(e=>{e.stopPropagation(),e.preventDefault()}))),this._register((0,n.nm)(this._domNode,n.tw.CLICK,(e=>{this._diffs instanceof x.f0?this._widget.revert(this._diffs):this._widget.revertRangeMappings(this._diffs),e.stopPropagation(),e.preventDefault()})))}getDomNode(){return this._domNode}getPosition(){return{lane:st.U.Right,range:{startColumn:1,startLineNumber:this._lineNumber,endColumn:1,endLineNumber:this._lineNumber},zIndex:10001}}}lt.counter=0;var ht=i(7906),dt=i(54081),ct=i(24920),ut=i(54731),gt=i(39040),mt=i(46765),ft=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},pt=function(e,t){return function(i,n){t(i,n,e)}};let _t=class extends a.JT{get onDidContentSizeChange(){return this._onDidContentSizeChange.event}constructor(e,t,i,n,o,s,a){super(),this.originalEditorElement=e,this.modifiedEditorElement=t,this._options=i,this._argCodeEditorWidgetOptions=n,this._createInnerEditor=o,this._instantiationService=s,this._keybindingService=a,this.original=this._register(this._createLeftHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.originalEditor||{})),this.modified=this._register(this._createRightHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.modifiedEditor||{})),this._onDidContentSizeChange=this._register(new r.Q5),this.modifiedScrollTop=(0,l.rD)(this.modified.onDidScrollChange,(()=>this.modified.getScrollTop())),this.modifiedScrollHeight=(0,l.rD)(this.modified.onDidScrollChange,(()=>this.modified.getScrollHeight())),this.modifiedModel=(0,l.rD)(this.modified.onDidChangeModel,(()=>this.modified.getModel())),this.modifiedSelections=(0,l.rD)(this.modified.onDidChangeCursorSelection,(()=>{var e;return null!==(e=this.modified.getSelections())&&void 0!==e?e:[]})),this.modifiedCursor=(0,l.bk)({owner:this,equalityComparer:D.L.equals},(e=>{var t,i;return null!==(i=null===(t=this.modifiedSelections.read(e)[0])||void 0===t?void 0:t.getPosition())&&void 0!==i?i:new D.L(1,1)})),this.originalCursor=(0,l.rD)(this.original.onDidChangeCursorPosition,(()=>{var e;return null!==(e=this.original.getPosition())&&void 0!==e?e:new D.L(1,1)})),this._argCodeEditorWidgetOptions=null,this._register((0,l.nJ)({createEmptyChangeSummary:()=>({}),handleChange:(e,t)=>(e.didChange(i.editorOptions)&&Object.assign(t,e.change.changedOptions),!0)},((e,t)=>{i.editorOptions.read(e),this._options.renderSideBySide.read(e),this.modified.updateOptions(this._adjustOptionsForRightHandSide(e,t)),this.original.updateOptions(this._adjustOptionsForLeftHandSide(e,t))})))}_createLeftHandSideEditor(e,t){const i=this._adjustOptionsForLeftHandSide(void 0,e),n=this._constructInnerEditor(this._instantiationService,this.originalEditorElement,i,t);return n.setContextValue("isInDiffLeftEditor",!0),n}_createRightHandSideEditor(e,t){const i=this._adjustOptionsForRightHandSide(void 0,e),n=this._constructInnerEditor(this._instantiationService,this.modifiedEditorElement,i,t);return n.setContextValue("isInDiffRightEditor",!0),n}_constructInnerEditor(e,t,i,n){const o=this._createInnerEditor(e,t,i,n);return this._register(o.onDidContentSizeChange((e=>{const t=this.original.getContentWidth()+this.modified.getContentWidth()+nt.ENTIRE_DIFF_OVERVIEW_WIDTH,i=Math.max(this.modified.getContentHeight(),this.original.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:i,contentWidth:t,contentHeightChanged:e.contentHeightChanged,contentWidthChanged:e.contentWidthChanged})}))),o}_adjustOptionsForLeftHandSide(e,t){const i=this._adjustOptionsForSubEditor(t);return this._options.renderSideBySide.get()?(i.unicodeHighlight=this._options.editorOptions.get().unicodeHighlight||{},i.wordWrapOverride1=this._options.diffWordWrap.get()):(i.wordWrapOverride1="off",i.wordWrapOverride2="off",i.stickyScroll={enabled:!1},i.unicodeHighlight={nonBasicASCII:!1,ambiguousCharacters:!1,invisibleCharacters:!1}),i.glyphMargin=this._options.renderSideBySide.get(),t.originalAriaLabel&&(i.ariaLabel=t.originalAriaLabel),i.ariaLabel=this._updateAriaLabel(i.ariaLabel),i.readOnly=!this._options.originalEditable.get(),i.dropIntoEditor={enabled:!i.readOnly},i.extraEditorClassName="original-in-monaco-diff-editor",i}_adjustOptionsForRightHandSide(e,t){const i=this._adjustOptionsForSubEditor(t);return t.modifiedAriaLabel&&(i.ariaLabel=t.modifiedAriaLabel),i.ariaLabel=this._updateAriaLabel(i.ariaLabel),i.wordWrapOverride1=this._options.diffWordWrap.get(),i.revealHorizontalRightPadding=S.BH.revealHorizontalRightPadding.defaultValue+nt.ENTIRE_DIFF_OVERVIEW_WIDTH,i.scrollbar.verticalHasArrows=!1,i.extraEditorClassName="modified-in-monaco-diff-editor",i}_adjustOptionsForSubEditor(e){const t={...e,dimension:{height:0,width:0}};return t.inDiffEditor=!0,t.automaticLayout=!1,t.scrollbar={...t.scrollbar||{}},t.folding=!1,t.codeLens=this._options.diffCodeLens.get(),t.fixedOverflowWidgets=!0,t.minimap={...t.minimap||{}},t.minimap.enabled=!1,this._options.hideUnchangedRegions.get()?t.stickyScroll={enabled:!1}:t.stickyScroll=this._options.editorOptions.get().stickyScroll,t}_updateAriaLabel(e){var t;e||(e="");const i=(0,A.NC)("diff-aria-navigation-tip"," use {0} to open the accessibility help.",null===(t=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp"))||void 0===t?void 0:t.getAriaLabel());return this._options.accessibilityVerbose.get()?e+i:e?e.replaceAll(i,""):""}};_t=ft([pt(5,O.TG),pt(6,mt.d)],_t);class vt extends a.JT{constructor(){super(...arguments),this._id=++vt.idCounter,this._onDidDispose=this._register(new r.Q5),this.onDidDispose=this._onDidDispose.event}getId(){return this.getEditorType()+":v2:"+this._id}getVisibleColumnFromPosition(e){return this._targetEditor.getVisibleColumnFromPosition(e)}getPosition(){return this._targetEditor.getPosition()}setPosition(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"api";this._targetEditor.setPosition(e,t)}revealLine(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._targetEditor.revealLine(e,t)}revealLineInCenter(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._targetEditor.revealLineInCenter(e,t)}revealLineInCenterIfOutsideViewport(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._targetEditor.revealLineInCenterIfOutsideViewport(e,t)}revealLineNearTop(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._targetEditor.revealLineNearTop(e,t)}revealPosition(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._targetEditor.revealPosition(e,t)}revealPositionInCenter(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._targetEditor.revealPositionInCenter(e,t)}revealPositionInCenterIfOutsideViewport(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._targetEditor.revealPositionInCenterIfOutsideViewport(e,t)}revealPositionNearTop(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._targetEditor.revealPositionNearTop(e,t)}getSelection(){return this._targetEditor.getSelection()}getSelections(){return this._targetEditor.getSelections()}setSelection(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"api";this._targetEditor.setSelection(e,t)}setSelections(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"api";this._targetEditor.setSelections(e,t)}revealLines(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._targetEditor.revealLines(e,t,i)}revealLinesInCenter(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._targetEditor.revealLinesInCenter(e,t,i)}revealLinesInCenterIfOutsideViewport(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._targetEditor.revealLinesInCenterIfOutsideViewport(e,t,i)}revealLinesNearTop(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._targetEditor.revealLinesNearTop(e,t,i)}revealRange(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];this._targetEditor.revealRange(e,t,i,n)}revealRangeInCenter(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._targetEditor.revealRangeInCenter(e,t)}revealRangeInCenterIfOutsideViewport(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._targetEditor.revealRangeInCenterIfOutsideViewport(e,t)}revealRangeNearTop(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._targetEditor.revealRangeNearTop(e,t)}revealRangeNearTopIfOutsideViewport(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._targetEditor.revealRangeNearTopIfOutsideViewport(e,t)}revealRangeAtTop(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this._targetEditor.revealRangeAtTop(e,t)}getSupportedActions(){return this._targetEditor.getSupportedActions()}focus(){this._targetEditor.focus()}trigger(e,t,i){this._targetEditor.trigger(e,t,i)}createDecorationsCollection(e){return this._targetEditor.createDecorationsCollection(e)}changeDecorations(e){return this._targetEditor.changeDecorations(e)}}vt.idCounter=0;var bt=i(44114),Ct=i(46385),wt=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},yt=function(e,t){return function(i,n){t(i,n,e)}};let St=class{get editorOptions(){return this._options}constructor(e,t){this._accessibilityService=t,this._diffEditorWidth=(0,l.uh)(this,0),this._screenReaderMode=(0,l.rD)(this._accessibilityService.onDidChangeScreenReaderOptimized,(()=>this._accessibilityService.isScreenReaderOptimized())),this.couldShowInlineViewBecauseOfSize=(0,l.nK)(this,(e=>this._options.read(e).renderSideBySide&&this._diffEditorWidth.read(e)<=this._options.read(e).renderSideBySideInlineBreakpoint)),this.renderOverviewRuler=(0,l.nK)(this,(e=>this._options.read(e).renderOverviewRuler)),this.renderSideBySide=(0,l.nK)(this,(e=>this._options.read(e).renderSideBySide&&!(this._options.read(e).useInlineViewWhenSpaceIsLimited&&this.couldShowInlineViewBecauseOfSize.read(e)&&!this._screenReaderMode.read(e)))),this.readOnly=(0,l.nK)(this,(e=>this._options.read(e).readOnly)),this.shouldRenderOldRevertArrows=(0,l.nK)(this,(e=>!!this._options.read(e).renderMarginRevertIcon&&(!!this.renderSideBySide.read(e)&&(!this.readOnly.read(e)&&!this.shouldRenderGutterMenu.read(e))))),this.shouldRenderGutterMenu=(0,l.nK)(this,(e=>this._options.read(e).renderGutterMenu)),this.renderIndicators=(0,l.nK)(this,(e=>this._options.read(e).renderIndicators)),this.enableSplitViewResizing=(0,l.nK)(this,(e=>this._options.read(e).enableSplitViewResizing)),this.splitViewDefaultRatio=(0,l.nK)(this,(e=>this._options.read(e).splitViewDefaultRatio)),this.ignoreTrimWhitespace=(0,l.nK)(this,(e=>this._options.read(e).ignoreTrimWhitespace)),this.maxComputationTimeMs=(0,l.nK)(this,(e=>this._options.read(e).maxComputationTime)),this.showMoves=(0,l.nK)(this,(e=>this._options.read(e).experimental.showMoves&&this.renderSideBySide.read(e))),this.isInEmbeddedEditor=(0,l.nK)(this,(e=>this._options.read(e).isInEmbeddedEditor)),this.diffWordWrap=(0,l.nK)(this,(e=>this._options.read(e).diffWordWrap)),this.originalEditable=(0,l.nK)(this,(e=>this._options.read(e).originalEditable)),this.diffCodeLens=(0,l.nK)(this,(e=>this._options.read(e).diffCodeLens)),this.accessibilityVerbose=(0,l.nK)(this,(e=>this._options.read(e).accessibilityVerbose)),this.diffAlgorithm=(0,l.nK)(this,(e=>this._options.read(e).diffAlgorithm)),this.showEmptyDecorations=(0,l.nK)(this,(e=>this._options.read(e).experimental.showEmptyDecorations)),this.onlyShowAccessibleDiffViewer=(0,l.nK)(this,(e=>this._options.read(e).onlyShowAccessibleDiffViewer)),this.hideUnchangedRegions=(0,l.nK)(this,(e=>this._options.read(e).hideUnchangedRegions.enabled)),this.hideUnchangedRegionsRevealLineCount=(0,l.nK)(this,(e=>this._options.read(e).hideUnchangedRegions.revealLineCount)),this.hideUnchangedRegionsContextLineCount=(0,l.nK)(this,(e=>this._options.read(e).hideUnchangedRegions.contextLineCount)),this.hideUnchangedRegionsMinimumLineCount=(0,l.nK)(this,(e=>this._options.read(e).hideUnchangedRegions.minimumLineCount));const i={...e,...Lt(e,bt.k)};this._options=(0,l.uh)(this,i)}updateOptions(e){const t=Lt(e,this._options.get()),i={...this._options.get(),...e,...t};this._options.set(i,void 0,{changedOptions:e})}setWidth(e){this._diffEditorWidth.set(e,void 0)}};function Lt(e,t){var i,n,o,s,r,a,l,h;return{enableSplitViewResizing:(0,S.O7)(e.enableSplitViewResizing,t.enableSplitViewResizing),splitViewDefaultRatio:(0,S.L_)(e.splitViewDefaultRatio,.5,.1,.9),renderSideBySide:(0,S.O7)(e.renderSideBySide,t.renderSideBySide),renderMarginRevertIcon:(0,S.O7)(e.renderMarginRevertIcon,t.renderMarginRevertIcon),maxComputationTime:(0,S.Zc)(e.maxComputationTime,t.maxComputationTime,0,1073741824),maxFileSize:(0,S.Zc)(e.maxFileSize,t.maxFileSize,0,1073741824),ignoreTrimWhitespace:(0,S.O7)(e.ignoreTrimWhitespace,t.ignoreTrimWhitespace),renderIndicators:(0,S.O7)(e.renderIndicators,t.renderIndicators),originalEditable:(0,S.O7)(e.originalEditable,t.originalEditable),diffCodeLens:(0,S.O7)(e.diffCodeLens,t.diffCodeLens),renderOverviewRuler:(0,S.O7)(e.renderOverviewRuler,t.renderOverviewRuler),diffWordWrap:(0,S.NY)(e.diffWordWrap,t.diffWordWrap,["off","on","inherit"]),diffAlgorithm:(0,S.NY)(e.diffAlgorithm,t.diffAlgorithm,["legacy","advanced"],{smart:"legacy",experimental:"advanced"}),accessibilityVerbose:(0,S.O7)(e.accessibilityVerbose,t.accessibilityVerbose),experimental:{showMoves:(0,S.O7)(null===(i=e.experimental)||void 0===i?void 0:i.showMoves,t.experimental.showMoves),showEmptyDecorations:(0,S.O7)(null===(n=e.experimental)||void 0===n?void 0:n.showEmptyDecorations,t.experimental.showEmptyDecorations)},hideUnchangedRegions:{enabled:(0,S.O7)(null!==(s=null===(o=e.hideUnchangedRegions)||void 0===o?void 0:o.enabled)&&void 0!==s?s:null===(r=e.experimental)||void 0===r?void 0:r.collapseUnchangedRegions,t.hideUnchangedRegions.enabled),contextLineCount:(0,S.Zc)(null===(a=e.hideUnchangedRegions)||void 0===a?void 0:a.contextLineCount,t.hideUnchangedRegions.contextLineCount,0,1073741824),minimumLineCount:(0,S.Zc)(null===(l=e.hideUnchangedRegions)||void 0===l?void 0:l.minimumLineCount,t.hideUnchangedRegions.minimumLineCount,0,1073741824),revealLineCount:(0,S.Zc)(null===(h=e.hideUnchangedRegions)||void 0===h?void 0:h.revealLineCount,t.hideUnchangedRegions.revealLineCount,0,1073741824)},isInEmbeddedEditor:(0,S.O7)(e.isInEmbeddedEditor,t.isInEmbeddedEditor),onlyShowAccessibleDiffViewer:(0,S.O7)(e.onlyShowAccessibleDiffViewer,t.onlyShowAccessibleDiffViewer),renderSideBySideInlineBreakpoint:(0,S.Zc)(e.renderSideBySideInlineBreakpoint,t.renderSideBySideInlineBreakpoint,0,1073741824),useInlineViewWhenSpaceIsLimited:(0,S.O7)(e.useInlineViewWhenSpaceIsLimited,t.useInlineViewWhenSpaceIsLimited),renderGutterMenu:(0,S.O7)(e.renderGutterMenu,t.renderGutterMenu)}}St=wt([yt(1,Ct.F)],St);class kt extends a.JT{constructor(e,t,i){super(),this._editor=e,this._domNode=t,this.itemProvider=i,this.scrollTop=(0,l.rD)(this._editor.onDidScrollChange,(e=>this._editor.getScrollTop())),this.isScrollTopZero=this.scrollTop.map((e=>0===e)),this.modelAttached=(0,l.rD)(this._editor.onDidChangeModel,(e=>this._editor.hasModel())),this.editorOnDidChangeViewZones=(0,l.aq)("onDidChangeViewZones",this._editor.onDidChangeViewZones),this.editorOnDidContentSizeChange=(0,l.aq)("onDidContentSizeChange",this._editor.onDidContentSizeChange),this.domNodeSizeChanged=(0,l.GN)("domNodeSizeChanged"),this.views=new Map,this._domNode.className="gutter monaco-editor";const o=this._domNode.appendChild((0,n.h)("div.scroll-decoration",{role:"presentation",ariaHidden:"true",style:{width:"100%"}}).root),s=new ResizeObserver((()=>{(0,l.PS)((e=>{this.domNodeSizeChanged.trigger(e)}))}));s.observe(this._domNode),this._register((0,a.OF)((()=>s.disconnect()))),this._register((0,l.EH)((e=>{o.className=this.isScrollTopZero.read(e)?"":"scroll-decoration"}))),this._register((0,l.EH)((e=>this.render(e))))}dispose(){super.dispose(),(0,n.mc)(this._domNode)}render(e){if(!this.modelAttached.read(e))return;this.domNodeSizeChanged.read(e),this.editorOnDidChangeViewZones.read(e),this.editorOnDidContentSizeChange.read(e);const t=this.scrollTop.read(e),i=this._editor.getVisibleRanges(),n=new Set(this.views.keys()),o=k.q.ofStartAndLength(0,this._domNode.clientHeight);if(!o.isEmpty)for(const s of i){const i=new L.z(s.startLineNumber,s.endLineNumber+1),r=this.itemProvider.getIntersectingGutterItems(i,e);(0,l.PS)((e=>{for(const s of r){if(!s.range.intersect(i))continue;n.delete(s.id);let r=this.views.get(s.id);if(r)r.item.set(s,e);else{const e=document.createElement("div");this._domNode.appendChild(e);const t=(0,l.uh)("item",s),i=this.itemProvider.createView(t,e);r=new Dt(t,i,e),this.views.set(s.id,r)}const a=s.range.startLineNumber<=this._editor.getModel().getLineCount()?this._editor.getTopForLineNumber(s.range.startLineNumber,!0)-t:this._editor.getBottomForLineNumber(s.range.startLineNumber-1,!1)-t,h=(s.range.isEmpty?a:this._editor.getBottomForLineNumber(s.range.endLineNumberExclusive-1,!0)-t)-a;r.domNode.style.top="".concat(a,"px"),r.domNode.style.height="".concat(h,"px"),r.gutterItemView.layout(k.q.ofStartAndLength(a,h),o)}}))}for(const s of n){const e=this.views.get(s);e.gutterItemView.dispose(),this._domNode.removeChild(e.domNode),this.views.delete(s)}}}class Dt{constructor(e,t,i){this.item=e,this.gutterItemView=t,this.domNode=i}}var Nt=i(11630),xt=i(24272),Et=i(59122);class It extends xt.MS{constructor(e){super(),this._textModel=e}getValueOfRange(e){return this._textModel.getValueInRange(e)}get length(){const e=this._textModel.getLineCount(),t=this._textModel.getLineLength(e);return new Et.A(e-1,t)}}var Tt=i(60548),Mt=i(48489),At=i(8695),Rt=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ot=function(e,t){return function(i,n){t(i,n,e)}};const Pt=[];let Ft=class extends a.JT{constructor(e,t,i,o,s,r){super(),this._diffModel=t,this._editors=i,this._instantiationService=o,this._contextKeyService=s,this._menuService=r,this._menu=this._register(this._menuService.createMenu(Mt.eH.DiffEditorHunkToolbar,this._contextKeyService)),this._actions=(0,l.rD)(this._menu.onDidChange,(()=>this._menu.getActions())),this._hasActions=this._actions.map((e=>e.length>0)),this.width=(0,l.nK)(this,(e=>this._hasActions.read(e)?35:0)),this.elements=(0,n.h)("div.gutter@gutter",{style:{position:"absolute",height:"100%",width:"35px"}},[]),this._currentDiff=(0,l.nK)(this,(e=>{var t;const i=this._diffModel.read(e);if(!i)return;const n=null===(t=i.diff.read(e))||void 0===t?void 0:t.mappings,o=this._editors.modifiedCursor.read(e);return o?null===n||void 0===n?void 0:n.find((e=>e.lineRangeMapping.modified.contains(o.lineNumber))):void 0})),this._selectedDiffs=(0,l.nK)(this,(e=>{const t=this._diffModel.read(e),i=null===t||void 0===t?void 0:t.diff.read(e);if(!i)return Pt;const n=this._editors.modifiedSelections.read(e);if(n.every((e=>e.isEmpty())))return Pt;const o=new L.i(n.map((e=>L.z.fromRangeInclusive(e)))),s=i.mappings.filter((e=>e.lineRangeMapping.innerChanges&&o.intersects(e.lineRangeMapping.modified))).map((e=>({mapping:e,rangeMappings:e.lineRangeMapping.innerChanges.filter((e=>n.some((t=>N.e.areIntersecting(e.modifiedRange,t)))))})));return 0===s.length||s.every((e=>0===e.rangeMappings.length))?Pt:s})),this._register((0,y.RL)(e,this.elements.root)),this._register((0,n.nm)(this.elements.root,"click",(()=>{this._editors.modified.focus()}))),this._register((0,y.bg)(this.elements.root,{display:this._hasActions.map((e=>e?"block":"none"))})),this._register(new kt(this._editors.modified,this.elements.root,{getIntersectingGutterItems:(e,t)=>{const i=this._diffModel.read(t);if(!i)return[];const n=i.diff.read(t);if(!n)return[];const o=this._selectedDiffs.read(t);if(o.length>0){const e=x.gB.fromRangeMappings(o.flatMap((e=>e.rangeMappings)));return[new Bt(e,!0,Mt.eH.DiffEditorSelectionToolbar,void 0,i.model.original.uri,i.model.modified.uri)]}const s=this._currentDiff.read(t);return n.mappings.map((e=>new Bt(e.lineRangeMapping.withInnerChangesFromLineRanges(),e.lineRangeMapping===(null===s||void 0===s?void 0:s.lineRangeMapping),Mt.eH.DiffEditorHunkToolbar,void 0,i.model.original.uri,i.model.modified.uri)))},createView:(e,t)=>this._instantiationService.createInstance(zt,e,t,this)})),this._register((0,n.nm)(this.elements.gutter,n.tw.MOUSE_WHEEL,(e=>{this._editors.modified.getOption(103).handleMouseWheel&&this._editors.modified.delegateScrollFromMouseWheelEvent(e)}),{passive:!1}))}computeStagedValue(e){var t;const i=null!==(t=e.innerChanges)&&void 0!==t?t:[];return new xt.PY(i.map((e=>new xt.At(e.originalRange,this._editors.modifiedModel.get().getValueInRange(e.modifiedRange))))).apply(new It(this._editors.original.getModel()))}layout(e){this.elements.gutter.style.left=e+"px"}};Ft=Rt([Ot(3,O.TG),Ot(4,ct.i6),Ot(5,Mt.co)],Ft);class Bt{constructor(e,t,i,n,o,s){this.mapping=e,this.showAlways=t,this.menuId=i,this.rangeOverride=n,this.originalUri=o,this.modifiedUri=s}get id(){return this.mapping.modified.toString()}get range(){var e;return null!==(e=this.rangeOverride)&&void 0!==e?e:this.mapping.modified}}let zt=class extends a.JT{constructor(e,t,i,o){super(),this._item=e,this._elements=(0,n.h)("div.gutterItem",{style:{height:"20px",width:"34px"}},[(0,n.h)("div.background@background",{},[]),(0,n.h)("div.buttons@buttons",{},[])]),this._showAlways=this._item.map(this,(e=>e.showAlways)),this._menuId=this._item.map(this,(e=>e.menuId)),this._isSmall=(0,l.uh)(this,!1),this._lastItemRange=void 0,this._lastViewRange=void 0;const s=this._register(o.createInstance(At.mQ,"element",!0,{position:{hoverPosition:1}}));this._register((0,y.xx)(t,this._elements.root)),this._register((0,l.EH)((e=>{const t=this._showAlways.read(e);this._elements.root.classList.toggle("noTransition",!0),this._elements.root.classList.toggle("showAlways",t),setTimeout((()=>{this._elements.root.classList.toggle("noTransition",!1)}),0)}))),this._register((0,l.gp)(((e,t)=>{this._elements.buttons.replaceChildren();const n=t.add(o.createInstance(Tt.r,this._elements.buttons,this._menuId.read(e),{orientation:1,hoverDelegate:s,toolbarOptions:{primaryGroup:e=>e.startsWith("primary")},overflowBehavior:{maxItems:this._isSmall.read(e)?1:3},hiddenItemStrategy:0,actionRunner:new Nt.D((()=>{const e=this._item.get(),t=e.mapping;return{mapping:t,originalWithModifiedChanges:i.computeStagedValue(t),originalUri:e.originalUri,modifiedUri:e.modifiedUri}})),menuOptions:{shouldForwardArgs:!0}}));t.add(n.onDidChangeMenuItems((()=>{this._lastItemRange&&this.layout(this._lastItemRange,this._lastViewRange)})))})))}layout(e,t){this._lastItemRange=e,this._lastViewRange=t;let i=this._elements.buttons.clientHeight;this._isSmall.set(1===this._item.get().mapping.original.startLineNumber&&e.length<30,void 0),i=this._elements.buttons.clientHeight,this._elements.root.style.top=e.start+"px",this._elements.root.style.height=e.length+"px";const n=e.length/2-i/2,o=i;let s=e.start+n;const r=k.q.tryCreate(o,t.endExclusive-o-i),a=k.q.tryCreate(e.start+o,e.endExclusive-i-o);a&&r&&a.start=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Wt=function(e,t){return function(i,n){t(i,n,e)}};let Ht=class extends vt{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(e,t,i,o,s,d,c,g){var m;super(),this._domElement=e,this._parentContextKeyService=o,this._parentInstantiationService=s,this._accessibilitySignalService=c,this._editorProgressService=g,this.elements=(0,n.h)("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[(0,n.h)("div.noModificationsOverlay@overlay",{style:{position:"absolute",height:"100%",visibility:"hidden"}},[(0,n.$)("span",{},"No Changes")]),(0,n.h)("div.editor.original@original",{style:{position:"absolute",height:"100%"}}),(0,n.h)("div.editor.modified@modified",{style:{position:"absolute",height:"100%"}}),(0,n.h)("div.accessibleDiffViewer@accessibleDiffViewer",{style:{position:"absolute",height:"100%"}})]),this._diffModel=(0,l.uh)(this,void 0),this._shouldDisposeDiffModel=!1,this.onDidChangeModel=r.ju.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._parentInstantiationService.createChild(new ut.y([ct.i6,this._contextKeyService])),this._boundarySashes=(0,l.uh)(this,void 0),this._accessibleDiffViewerShouldBeVisible=(0,l.uh)(this,!1),this._accessibleDiffViewerVisible=(0,l.nK)(this,(e=>!!this._options.onlyShowAccessibleDiffViewer.read(e)||this._accessibleDiffViewerShouldBeVisible.read(e))),this._movedBlocksLinesPart=(0,l.uh)(this,void 0),this._layoutInfo=(0,l.nK)(this,(e=>{var t,i,n,o,s;const r=this._rootSizeObserver.width.read(e),a=this._rootSizeObserver.height.read(e),l=this._sash.read(e),h=this._gutter.read(e),d=null!==(t=null===h||void 0===h?void 0:h.width.read(e))&&void 0!==t?t:0,c=null!==(n=null===(i=this._overviewRulerPart.read(e))||void 0===i?void 0:i.width)&&void 0!==n?n:0;let u,g,m,f,p;if(!!l){const t=l.sashLeft.read(e);u=0,g=t-d-(null!==(s=null===(o=this._movedBlocksLinesPart.read(e))||void 0===o?void 0:o.width.read(e))&&void 0!==s?s:0),p=t-d,m=t,f=r-m-c}else p=0,u=d,g=Math.max(5,this._editors.original.getLayoutInfo().decorationsLeft),m=d+g,f=r-m-c;return this.elements.original.style.left=u+"px",this.elements.original.style.width=g+"px",this._editors.original.layout({width:g,height:a},!0),null===h||void 0===h||h.layout(p),this.elements.modified.style.left=m+"px",this.elements.modified.style.width=f+"px",this._editors.modified.layout({width:f,height:a},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}})),this._diffValue=this._diffModel.map(((e,t)=>null===e||void 0===e?void 0:e.diff.read(t))),this.onDidUpdateDiff=r.ju.fromObservableLight(this._diffValue),d.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register((0,a.OF)((()=>this._domElement.removeChild(this.elements.root)))),this._rootSizeObserver=this._register(new y.DU(this.elements.root,t.dimension)),this._rootSizeObserver.setAutomaticLayout(null!==(m=t.automaticLayout)&&void 0!==m&&m),this._options=this._instantiationService.createInstance(St,t),this._register((0,l.EH)((e=>{this._options.setWidth(this._rootSizeObserver.width.read(e))}))),this._contextKeyService.createKey(dt.u.isEmbeddedDiffEditor.key,!1),this._register((0,y.GU)(dt.u.isEmbeddedDiffEditor,this._contextKeyService,(e=>this._options.isInEmbeddedEditor.read(e)))),this._register((0,y.GU)(dt.u.comparingMovedCode,this._contextKeyService,(e=>{var t;return!!(null===(t=this._diffModel.read(e))||void 0===t?void 0:t.movedTextToCompare.read(e))}))),this._register((0,y.GU)(dt.u.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,(e=>this._options.couldShowInlineViewBecauseOfSize.read(e)))),this._register((0,y.GU)(dt.u.diffEditorInlineMode,this._contextKeyService,(e=>!this._options.renderSideBySide.read(e)))),this._register((0,y.GU)(dt.u.hasChanges,this._contextKeyService,(e=>{var t,i,n;return(null!==(n=null===(i=null===(t=this._diffModel.read(e))||void 0===t?void 0:t.diff.read(e))||void 0===i?void 0:i.mappings.length)&&void 0!==n?n:0)>0}))),this._editors=this._register(this._instantiationService.createInstance(_t,this.elements.original,this.elements.modified,this._options,i,((e,t,i,n)=>this._createInnerEditor(e,t,i,n)))),this._register((0,y.GU)(dt.u.diffEditorOriginalWritable,this._contextKeyService,(e=>this._options.originalEditable.read(e)))),this._register((0,y.GU)(dt.u.diffEditorModifiedWritable,this._contextKeyService,(e=>!this._options.readOnly.read(e)))),this._register((0,y.GU)(dt.u.diffEditorOriginalUri,this._contextKeyService,(e=>{var t,i;return null!==(i=null===(t=this._diffModel.read(e))||void 0===t?void 0:t.model.original.uri.toString())&&void 0!==i?i:""}))),this._register((0,y.GU)(dt.u.diffEditorModifiedUri,this._contextKeyService,(e=>{var t,i;return null!==(i=null===(t=this._diffModel.read(e))||void 0===t?void 0:t.model.modified.uri.toString())&&void 0!==i?i:""}))),this._overviewRulerPart=(0,h.kA)(this,(e=>this._options.renderOverviewRuler.read(e)?this._instantiationService.createInstance((0,y.NW)(nt,e),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map((e=>e.modifiedEditor))):void 0)).recomputeInitiallyAndOnChange(this._store),this._sash=(0,h.kA)(this,(e=>{const t=this._options.renderSideBySide.read(e);return this.elements.root.classList.toggle("side-by-side",t),t?new se(this._options,this.elements.root,{height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map(((e,t)=>{var i,n;return e-(null!==(n=null===(i=this._overviewRulerPart.read(t))||void 0===i?void 0:i.width)&&void 0!==n?n:0)}))},this._boundarySashes):void 0})).recomputeInitiallyAndOnChange(this._store);const f=(0,h.kA)(this,(e=>this._instantiationService.createInstance((0,y.NW)(Ze.O,e),this._editors,this._diffModel,this._options))).recomputeInitiallyAndOnChange(this._store);(0,h.kA)(this,(e=>this._instantiationService.createInstance((0,y.NW)(ne,e),this._editors,this._diffModel,this._options,this))).recomputeInitiallyAndOnChange(this._store);const p=new Set,_=new Set;let v=!1;const b=(0,h.kA)(this,(e=>this._instantiationService.createInstance((0,y.NW)(je,e),(0,n.Jj)(this._domElement),this._editors,this._diffModel,this._options,this,(()=>v||f.get().isUpdatingHiddenAreas),p,_))).recomputeInitiallyAndOnChange(this._store),C=(0,l.nK)(this,(e=>{const t=b.read(e).viewZones.read(e).orig,i=f.read(e).viewZones.read(e).origViewZones;return t.concat(i)})),w=(0,l.nK)(this,(e=>{const t=b.read(e).viewZones.read(e).mod,i=f.read(e).viewZones.read(e).modViewZones;return t.concat(i)}));let S;this._register((0,y.Sv)(this._editors.original,C,(e=>{v=e}),p)),this._register((0,y.Sv)(this._editors.modified,w,(e=>{v=e,v?S=u.Z.capture(this._editors.modified):(null===S||void 0===S||S.restore(this._editors.modified),S=void 0)}),_)),this._accessibleDiffViewer=(0,h.kA)(this,(e=>this._instantiationService.createInstance((0,y.NW)(H,e),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,((e,t)=>this._accessibleDiffViewerShouldBeVisible.set(e,t)),this._options.onlyShowAccessibleDiffViewer.map((e=>!e)),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map(((e,t)=>{var i;return null===(i=null===e||void 0===e?void 0:e.diff.read(t))||void 0===i?void 0:i.mappings.map((e=>e.lineRangeMapping))})),new J(this._editors)))).recomputeInitiallyAndOnChange(this._store);const L=this._accessibleDiffViewerVisible.map((e=>e?"hidden":"visible"));this._register((0,y.bg)(this.elements.modified,{visibility:L})),this._register((0,y.bg)(this.elements.original,{visibility:L})),this._createDiffEditorContributions(),d.addDiffEditor(this),this._gutter=(0,h.kA)(this,(e=>this._options.shouldRenderGutterMenu.read(e)?this._instantiationService.createInstance((0,y.NW)(Ft,e),this.elements.root,this._diffModel,this._editors):void 0)),this._register((0,l.jx)(this._layoutInfo)),(0,h.kA)(this,(e=>new((0,y.NW)(X,e))(this.elements.root,this._diffModel,this._layoutInfo.map((e=>e.originalEditor)),this._layoutInfo.map((e=>e.modifiedEditor)),this._editors))).recomputeInitiallyAndOnChange(this._store,(e=>{this._movedBlocksLinesPart.set(e,void 0)})),this._register((0,y.bg)(this.elements.overlay,{width:this._layoutInfo.map(((e,t)=>e.originalEditor.width+(this._options.renderSideBySide.read(t)?0:e.modifiedEditor.width))),visibility:(0,l.nK)((e=>{var t,i;return this._options.hideUnchangedRegions.read(e)&&0===(null===(i=null===(t=this._diffModel.read(e))||void 0===t?void 0:t.diff.read(e))||void 0===i?void 0:i.mappings.length)?"visible":"hidden"}))})),this._register(r.ju.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,(e=>this._handleCursorPositionChange(e,!0)))),this._register(r.ju.runAndSubscribe(this._editors.original.onDidChangeCursorPosition,(e=>this._handleCursorPositionChange(e,!1))));const k=this._diffModel.map(this,((e,t)=>{if(e)return void 0===e.diff.read(t)&&!e.isDiffUpToDate.read(t)}));this._register((0,l.gp)(((e,t)=>{if(!0===k.read(e)){const e=this._editorProgressService.show(!0,1e3);t.add((0,a.OF)((()=>e.done())))}}))),this._register((0,a.OF)((()=>{var e;this._shouldDisposeDiffModel&&(null===(e=this._diffModel.get())||void 0===e||e.dispose())}))),this._register((0,l.gp)(((e,t)=>{t.add(new((0,y.NW)(at,e))(this._editors,this._diffModel,this._options,this))})))}_createInnerEditor(e,t,i,n){return e.createInstance(g.Gm,t,i,n)}_createDiffEditorContributions(){const e=d.Uc.getDiffEditorContributions();for(const i of e)try{this._register(this._instantiationService.createInstance(i.ctor,this))}catch(t){(0,s.dL)(t)}}get _targetEditor(){return this._editors.modified}getEditorType(){return ht.g.IDiffEditor}layout(e){this._rootSizeObserver.observe(e)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){var e;return{original:this._editors.original.saveViewState(),modified:this._editors.modified.saveViewState(),modelState:null===(e=this._diffModel.get())||void 0===e?void 0:e.serializeState()}}restoreViewState(e){var t;if(e&&e.original&&e.modified){const i=e;this._editors.original.restoreViewState(i.original),this._editors.modified.restoreViewState(i.modified),i.modelState&&(null===(t=this._diffModel.get())||void 0===t||t.restoreSerializedState(i.modelState))}}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(e){return this._instantiationService.createInstance(De,e,this._options)}getModel(){var e,t;return null!==(t=null===(e=this._diffModel.get())||void 0===e?void 0:e.model)&&void 0!==t?t:null}setModel(e,t){!e&&this._diffModel.get()&&this._accessibleDiffViewer.get().close();const i=e?"model"in e?{model:e,shouldDispose:!1}:{model:this.createViewModel(e),shouldDispose:!0}:void 0;this._diffModel.get()!==(null===i||void 0===i?void 0:i.model)&&(0,l.c8)(t,(e=>{var t;l.rD.batchEventsGlobally(e,(()=>{this._editors.original.setModel(i?i.model.model.original:null),this._editors.modified.setModel(i?i.model.model.modified:null)}));const n=this._diffModel.get(),o=this._shouldDisposeDiffModel;this._shouldDisposeDiffModel=null!==(t=null===i||void 0===i?void 0:i.shouldDispose)&&void 0!==t&&t,this._diffModel.set(null===i||void 0===i?void 0:i.model,e),o&&(null===n||void 0===n||n.dispose())}))}updateOptions(e){this._options.updateOptions(e)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){var e;const t=null===(e=this._diffModel.get())||void 0===e?void 0:e.diff.get();return t?t.mappings.map((e=>{const t=e.lineRangeMapping;let i,n,o,s,r=t.innerChanges;return t.original.isEmpty?(i=t.original.startLineNumber-1,n=0,r=void 0):(i=t.original.startLineNumber,n=t.original.endLineNumberExclusive-1),t.modified.isEmpty?(o=t.modified.startLineNumber-1,s=0,r=void 0):(o=t.modified.startLineNumber,s=t.modified.endLineNumberExclusive-1),{originalStartLineNumber:i,originalEndLineNumber:n,modifiedStartLineNumber:o,modifiedEndLineNumber:s,charChanges:null===r||void 0===r?void 0:r.map((e=>({originalStartLineNumber:e.originalRange.startLineNumber,originalStartColumn:e.originalRange.startColumn,originalEndLineNumber:e.originalRange.endLineNumber,originalEndColumn:e.originalRange.endColumn,modifiedStartLineNumber:e.modifiedRange.startLineNumber,modifiedStartColumn:e.modifiedRange.startColumn,modifiedEndLineNumber:e.modifiedRange.endLineNumber,modifiedEndColumn:e.modifiedRange.endColumn})))}})):null}revert(e){const t=this._diffModel.get();t&&t.isDiffUpToDate.get()&&this._editors.modified.executeEdits("diffEditor",[{range:e.modified.toExclusiveRange(),text:t.model.original.getValueInRange(e.original.toExclusiveRange())}])}revertRangeMappings(e){const t=this._diffModel.get();if(!t||!t.isDiffUpToDate.get())return;const i=e.map((e=>({range:e.modifiedRange,text:t.model.original.getValueInRange(e.originalRange)})));this._editors.modified.executeEdits("diffEditor",i)}_goTo(e){this._editors.modified.setPosition(new D.L(e.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(e.lineRangeMapping.modified.toExclusiveRange())}goToDiff(e){var t,i,n,s;const r=null===(i=null===(t=this._diffModel.get())||void 0===t?void 0:t.diff.get())||void 0===i?void 0:i.mappings;if(!r||0===r.length)return;const a=this._editors.modified.getPosition().lineNumber;let l;l="next"===e?null!==(n=r.find((e=>e.lineRangeMapping.modified.startLineNumber>a)))&&void 0!==n?n:r[0]:null!==(s=(0,o.dF)(r,(e=>e.lineRangeMapping.modified.startLineNumber{var t;const i=null===(t=e.diff.get())||void 0===t?void 0:t.mappings;i&&0!==i.length&&this._goTo(i[0])}))}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){const e=this._diffModel.get();e&&await e.waitForDiff()}mapToOtherSide(){var e,t;const i=this._editors.modified.hasWidgetFocus(),n=i?this._editors.modified:this._editors.original,o=i?this._editors.original:this._editors.modified;let s;const r=n.getSelection();if(r){const n=null===(t=null===(e=this._diffModel.get())||void 0===e?void 0:e.diff.get())||void 0===t?void 0:t.mappings.map((e=>i?e.lineRangeMapping.flip():e.lineRangeMapping));if(n){const e=(0,y.cV)(r.getStartPosition(),n),t=(0,y.cV)(r.getEndPosition(),n);s=N.e.plusRange(e,t)}}return{destination:o,destinationSelection:s}}switchSide(){const{destination:e,destinationSelection:t}=this.mapToOtherSide();e.focus(),t&&e.setSelection(t)}exitCompareMove(){const e=this._diffModel.get();e&&e.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){var e;const t=null===(e=this._diffModel.get())||void 0===e?void 0:e.unchangedRegions.get();t&&(0,l.PS)((e=>{for(const i of t)i.collapseAll(e)}))}showAllUnchangedRegions(){var e;const t=null===(e=this._diffModel.get())||void 0===e?void 0:e.unchangedRegions.get();t&&(0,l.PS)((e=>{for(const i of t)i.showAll(e)}))}_handleCursorPositionChange(e,t){var i,n;if(3===(null===e||void 0===e?void 0:e.reason)){const o=null===(n=null===(i=this._diffModel.get())||void 0===i?void 0:i.diff.get())||void 0===n?void 0:n.mappings.find((i=>t?i.lineRangeMapping.modified.contains(e.position.lineNumber):i.lineRangeMapping.original.contains(e.position.lineNumber)));(null===o||void 0===o?void 0:o.lineRangeMapping.modified.isEmpty)?this._accessibilitySignalService.playSignal(R.iP.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):(null===o||void 0===o?void 0:o.lineRangeMapping.original.isEmpty)?this._accessibilitySignalService.playSignal(R.iP.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):o&&this._accessibilitySignalService.playSignal(R.iP.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}}};Ht=Vt([Wt(3,ct.i6),Wt(4,O.TG),Wt(5,c.$),Wt(6,R.IV),Wt(7,gt.ek)],Ht)},39196:(e,t,i)=>{i.d(t,{O:()=>y});var n,o=i(85714),s=i(76272),r=i(62974),a=i(32936),l=i(89599),h=i(59130),d=i(4542),c=i(62502),u=i(63686),g=i(5545),m=i(56590),f=i(2067),p=i(10670),_=i(761),v=i(71721),b=i(34304),C=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},w=function(e,t){return function(i,n){t(i,n,e)}};let y=n=class extends l.JT{static setBreadcrumbsSourceFactory(e){this._breadcrumbsSourceFactory.set(e,void 0)}get isUpdatingHiddenAreas(){return this._isUpdatingHiddenAreas}constructor(e,t,i,o){super(),this._editors=e,this._diffModel=t,this._options=i,this._instantiationService=o,this._modifiedOutlineSource=(0,d.kA)(this,(e=>{const t=this._editors.modifiedModel.read(e),i=n._breadcrumbsSourceFactory.read(e);return t&&i?i(t,this._instantiationService):void 0})),this._isUpdatingHiddenAreas=!1,this._register(this._editors.original.onDidChangeCursorPosition((e=>{if(1===e.reason)return;const t=this._diffModel.get();(0,h.PS)((e=>{for(const i of this._editors.original.getSelections()||[])null===t||void 0===t||t.ensureOriginalLineIsVisible(i.getStartPosition().lineNumber,0,e),null===t||void 0===t||t.ensureOriginalLineIsVisible(i.getEndPosition().lineNumber,0,e)}))}))),this._register(this._editors.modified.onDidChangeCursorPosition((e=>{if(1===e.reason)return;const t=this._diffModel.get();(0,h.PS)((e=>{for(const i of this._editors.modified.getSelections()||[])null===t||void 0===t||t.ensureModifiedLineIsVisible(i.getStartPosition().lineNumber,0,e),null===t||void 0===t||t.ensureModifiedLineIsVisible(i.getEndPosition().lineNumber,0,e)}))})));const s=this._diffModel.map(((e,t)=>{var i,n;const o=null!==(i=null===e||void 0===e?void 0:e.unchangedRegions.read(t))&&void 0!==i?i:[];return 1===o.length&&1===o[0].modifiedLineNumber&&o[0].lineCount===(null===(n=this._editors.modifiedModel.read(t))||void 0===n?void 0:n.getLineCount())?[]:o}));this.viewZones=(0,h.Be)(this,((e,t)=>{const i=this._modifiedOutlineSource.read(e);if(!i)return{origViewZones:[],modViewZones:[]};const n=[],o=[],r=this._options.renderSideBySide.read(e),a=s.read(e);for(const s of a)if(!s.shouldHideControls(e)){{const e=(0,h.nK)(this,(e=>s.getHiddenOriginalRange(e).startLineNumber-1)),o=new g.GD(e,24);n.push(o),t.add(new S(this._editors.original,o,s,s.originalUnchangedRange,!r,i,(e=>this._diffModel.get().ensureModifiedLineIsVisible(e,2,void 0)),this._options))}{const e=(0,h.nK)(this,(e=>s.getHiddenModifiedRange(e).startLineNumber-1)),n=new g.GD(e,24);o.push(n),t.add(new S(this._editors.modified,n,s,s.modifiedUnchangedRange,!1,i,(e=>this._diffModel.get().ensureModifiedLineIsVisible(e,2,void 0)),this._options))}}return{origViewZones:n,modViewZones:o}}));const l={description:"unchanged lines",className:"diff-unchanged-lines",isWholeLine:!0},_={description:"Fold Unchanged",glyphMarginHoverMessage:new a.W5(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown((0,v.NC)("foldUnchanged","Fold Unchanged Region")),glyphMarginClassName:"fold-unchanged "+c.k.asClassName(r.l.fold),zIndex:10001};this._register((0,g.RP)(this._editors.original,(0,h.nK)(this,(e=>{const t=s.read(e),i=t.map((e=>({range:e.originalUnchangedRange.toInclusiveRange(),options:l})));for(const n of t)n.shouldHideControls(e)&&i.push({range:p.e.fromPositions(new f.L(n.originalLineNumber,1)),options:_});return i})))),this._register((0,g.RP)(this._editors.modified,(0,h.nK)(this,(e=>{const t=s.read(e),i=t.map((e=>({range:e.modifiedUnchangedRange.toInclusiveRange(),options:l})));for(const n of t)n.shouldHideControls(e)&&i.push({range:m.z.ofLength(n.modifiedLineNumber,1).toInclusiveRange(),options:_});return i})))),this._register((0,h.EH)((e=>{const t=s.read(e);this._isUpdatingHiddenAreas=!0;try{this._editors.original.setHiddenAreas(t.map((t=>t.getHiddenOriginalRange(e).toInclusiveRange())).filter(u.$K)),this._editors.modified.setHiddenAreas(t.map((t=>t.getHiddenModifiedRange(e).toInclusiveRange())).filter(u.$K))}finally{this._isUpdatingHiddenAreas=!1}}))),this._register(this._editors.modified.onMouseUp((e=>{var t;if(!e.event.rightButton&&e.target.position&&(null===(t=e.target.element)||void 0===t?void 0:t.className.includes("fold-unchanged"))){const t=e.target.position.lineNumber,i=this._diffModel.get();if(!i)return;const n=i.unchangedRegions.get().find((e=>e.modifiedUnchangedRange.includes(t)));if(!n)return;n.collapseAll(void 0),e.event.stopPropagation(),e.event.preventDefault()}}))),this._register(this._editors.original.onMouseUp((e=>{var t;if(!e.event.rightButton&&e.target.position&&(null===(t=e.target.element)||void 0===t?void 0:t.className.includes("fold-unchanged"))){const t=e.target.position.lineNumber,i=this._diffModel.get();if(!i)return;const n=i.unchangedRegions.get().find((e=>e.originalUnchangedRange.includes(t)));if(!n)return;n.collapseAll(void 0),e.event.stopPropagation(),e.event.preventDefault()}})))}};y._breadcrumbsSourceFactory=(0,h.uh)("breadcrumbsSourceFactory",void 0),y=n=C([w(3,b.TG)],y);class S extends g.N9{constructor(e,t,i,n,a,l,d,c){const u=(0,o.h)("div.diff-hidden-lines-widget");super(e,t,u.root),this._editor=e,this._unchangedRegion=i,this._unchangedRegionRange=n,this._hide=a,this._modifiedOutlineSource=l,this._revealModifiedHiddenLine=d,this._options=c,this._nodes=(0,o.h)("div.diff-hidden-lines",[(0,o.h)("div.top@top",{title:(0,v.NC)("diff.hiddenLines.top","Click or drag to show more above")}),(0,o.h)("div.center@content",{style:{display:"flex"}},[(0,o.h)("div@first",{style:{display:"flex",justifyContent:"center",alignItems:"center",flexShrink:"0"}},[(0,o.$)("a",{title:(0,v.NC)("showUnchangedRegion","Show Unchanged Region"),role:"button",onclick:()=>{this._unchangedRegion.showAll(void 0)}},...(0,s.T)("$(unfold)"))]),(0,o.h)("div@others",{style:{display:"flex",justifyContent:"center",alignItems:"center"}})]),(0,o.h)("div.bottom@bottom",{title:(0,v.NC)("diff.bottom","Click or drag to show more below"),role:"button"})]),u.root.appendChild(this._nodes.root);const m=(0,h.rD)(this._editor.onDidLayoutChange,(()=>this._editor.getLayoutInfo()));this._hide?(0,o.mc)(this._nodes.first):this._register((0,g.bg)(this._nodes.first,{width:m.map((e=>e.contentLeft))})),this._register((0,h.EH)((e=>{const t=this._unchangedRegion.visibleLineCountTop.read(e)+this._unchangedRegion.visibleLineCountBottom.read(e)===this._unchangedRegion.lineCount;this._nodes.bottom.classList.toggle("canMoveTop",!t),this._nodes.bottom.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(e)>0),this._nodes.top.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(e)>0),this._nodes.top.classList.toggle("canMoveBottom",!t);const i=this._unchangedRegion.isDragged.read(e),n=this._editor.getDomNode();n&&(n.classList.toggle("draggingUnchangedRegion",!!i),"top"===i?(n.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(e)>0),n.classList.toggle("canMoveBottom",!t)):"bottom"===i?(n.classList.toggle("canMoveTop",!t),n.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(e)>0)):(n.classList.toggle("canMoveTop",!1),n.classList.toggle("canMoveBottom",!1)))})));const f=this._editor;this._register((0,o.nm)(this._nodes.top,"mousedown",(e=>{if(0!==e.button)return;this._nodes.top.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),e.preventDefault();const t=e.clientY;let i=!1;const n=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set("top",void 0);const s=(0,o.Jj)(this._nodes.top),r=(0,o.nm)(s,"mousemove",(e=>{const o=e.clientY-t;i=i||Math.abs(o)>2;const s=Math.round(o/f.getOption(67)),r=Math.max(0,Math.min(n+s,this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(r,void 0)})),a=(0,o.nm)(s,"mouseup",(e=>{i||this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0),this._nodes.top.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),this._unchangedRegion.isDragged.set(void 0,void 0),r.dispose(),a.dispose()}))}))),this._register((0,o.nm)(this._nodes.bottom,"mousedown",(e=>{if(0!==e.button)return;this._nodes.bottom.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),e.preventDefault();const t=e.clientY;let i=!1;const n=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set("bottom",void 0);const s=(0,o.Jj)(this._nodes.bottom),r=(0,o.nm)(s,"mousemove",(e=>{const o=e.clientY-t;i=i||Math.abs(o)>2;const s=Math.round(o/f.getOption(67)),r=Math.max(0,Math.min(n-s,this._unchangedRegion.getMaxVisibleLineCountBottom())),a=this._unchangedRegionRange.endLineNumberExclusive>f.getModel().getLineCount()?f.getContentHeight():f.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(r,void 0);const l=this._unchangedRegionRange.endLineNumberExclusive>f.getModel().getLineCount()?f.getContentHeight():f.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);f.setScrollTop(f.getScrollTop()+(l-a))})),a=(0,o.nm)(s,"mouseup",(e=>{if(this._unchangedRegion.isDragged.set(void 0,void 0),!i){const e=f.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);const t=f.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);f.setScrollTop(f.getScrollTop()+(t-e))}this._nodes.bottom.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),r.dispose(),a.dispose()}))}))),this._register((0,h.EH)((e=>{const t=[];if(!this._hide){const n=i.getHiddenModifiedRange(e).length,a=(0,v.NC)("hiddenLines","{0} hidden lines",n),l=(0,o.$)("span",{title:(0,v.NC)("diff.hiddenLines.expandAll","Double click to unfold")},a);l.addEventListener("dblclick",(e=>{0===e.button&&(e.preventDefault(),this._unchangedRegion.showAll(void 0))})),t.push(l);const h=this._unchangedRegion.getHiddenModifiedRange(e),d=this._modifiedOutlineSource.getBreadcrumbItems(h,e);if(d.length>0){t.push((0,o.$)("span",void 0,"\xa0\xa0|\xa0\xa0"));for(let e=0;e{this._revealModifiedHiddenLine(i.startLineNumber)}}}}(0,o.mc)(this._nodes.others,...t)})))}}},94817:(e,t,i)=>{i.d(t,{$F:()=>C,Jv:()=>p,LE:()=>f,W3:()=>b,fO:()=>d,i_:()=>m,iq:()=>u,n_:()=>_,rd:()=>g,rq:()=>v,vv:()=>c});var n=i(62974),o=i(62502),s=i(22659),r=i(71721),a=i(87701),l=i(38261);(0,a.P6G)("diffEditor.move.border",{dark:"#8b8b8b9c",light:"#8b8b8b9c",hcDark:"#8b8b8b9c",hcLight:"#8b8b8b9c"},(0,r.NC)("diffEditor.move.border","The border color for text that got moved in the diff editor.")),(0,a.P6G)("diffEditor.moveActive.border",{dark:"#FFA500",light:"#FFA500",hcDark:"#FFA500",hcLight:"#FFA500"},(0,r.NC)("diffEditor.moveActive.border","The active border color for text that got moved in the diff editor.")),(0,a.P6G)("diffEditor.unchangedRegionShadow",{dark:"#000000",light:"#737373BF",hcDark:"#000000",hcLight:"#737373BF"},(0,r.NC)("diffEditor.unchangedRegionShadow","The color of the shadow around unchanged region widgets."));const h=(0,l.q5)("diff-insert",n.l.add,(0,r.NC)("diffInsertIcon","Line decoration for inserts in the diff editor.")),d=(0,l.q5)("diff-remove",n.l.remove,(0,r.NC)("diffRemoveIcon","Line decoration for removals in the diff editor.")),c=s.qx.register({className:"line-insert",description:"line-insert",isWholeLine:!0,linesDecorationsClassName:"insert-sign "+o.k.asClassName(h),marginClassName:"gutter-insert"}),u=s.qx.register({className:"line-delete",description:"line-delete",isWholeLine:!0,linesDecorationsClassName:"delete-sign "+o.k.asClassName(d),marginClassName:"gutter-delete"}),g=s.qx.register({className:"line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),m=s.qx.register({className:"line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),f=s.qx.register({className:"char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),p=s.qx.register({className:"char-insert",description:"char-insert",isWholeLine:!0}),_=s.qx.register({className:"char-insert diff-range-empty",description:"char-insert diff-range-empty"}),v=s.qx.register({className:"char-delete",description:"char-delete",shouldFillLineOnLineBreak:!0}),b=s.qx.register({className:"char-delete",description:"char-delete",isWholeLine:!0}),C=s.qx.register({className:"char-delete diff-range-empty",description:"char-delete diff-range-empty"})},5545:(e,t,i)=>{i.d(t,{t2:()=>N,DU:()=>b,GD:()=>y,N9:()=>w,Vm:()=>C,xx:()=>_,RP:()=>p,bg:()=>L,Sv:()=>D,GU:()=>E,W7:()=>I,Ap:()=>f,RL:()=>v,NW:()=>k,cV:()=>x});var n=i(52910),o=i(16113),s=i(17167);function r(){return s.OB&&!!s.OB.VSCODE_DEV}function a(e){if(r()){const t=function(){l||(l=new Set);const e=globalThis;e.$hotReload_applyNewExports||(e.$hotReload_applyNewExports=e=>{const t={config:{mode:void 0},...e};for(const i of l){const e=i(t);if(e)return e}});return l}();return t.add(e),{dispose(){t.delete(e)}}}return{dispose(){}}}let l;r()&&a((e=>{let{oldExports:t,newSrc:i,config:n}=e;if("patch-prototype"===n.mode)return e=>{var i,n;for(const o in e){const s=e[o];if(console.log("[hot-reload] Patching prototype methods of '".concat(o,"'"),{exportedItem:s}),"function"===typeof s&&s.prototype){const r=t[o];if(r){for(const e of Object.getOwnPropertyNames(s.prototype)){const t=Object.getOwnPropertyDescriptor(s.prototype,e),a=Object.getOwnPropertyDescriptor(r.prototype,e);(null===(i=null===t||void 0===t?void 0:t.value)||void 0===i?void 0:i.toString())!==(null===(n=null===a||void 0===a?void 0:a.value)||void 0===n?void 0:n.toString())&&console.log("[hot-reload] Patching prototype method '".concat(o,".").concat(e,"'")),Object.defineProperty(r.prototype,e,t)}e[o]=r}}}return!0}}));var h=i(89599),d=i(59130),c=i(97363),u=i(2067),g=i(10670),m=i(59122);function f(e,t,i,n){if(0===e.length)return t;if(0===t.length)return e;const o=[];let s=0,r=0;for(;sd?(o.push(l),r++):(o.push(n(a,l)),s++,r++)}for(;s"Apply decorations from ".concat(t.debugName)},(e=>{const i=t.read(e);n.set(i)}))),i.add({dispose:()=>{n.clear()}}),i}function _(e,t){return e.appendChild(t),(0,h.OF)((()=>{e.removeChild(t)}))}function v(e,t){return e.prepend(t),(0,h.OF)((()=>{e.removeChild(t)}))}class b extends h.JT{get width(){return this._width}get height(){return this._height}constructor(e,t){super(),this.elementSizeObserver=this._register(new c.I(e,t)),this._width=(0,d.uh)(this,this.elementSizeObserver.getWidth()),this._height=(0,d.uh)(this,this.elementSizeObserver.getHeight()),this._register(this.elementSizeObserver.onDidChange((e=>(0,d.PS)((e=>{this._width.set(this.elementSizeObserver.getWidth(),e),this._height.set(this.elementSizeObserver.getHeight(),e)})))))}observe(e){this.elementSizeObserver.observe(e)}setAutomaticLayout(e){e?this.elementSizeObserver.startObserving():this.elementSizeObserver.stopObserving()}}function C(e,t,i){let n=t.get(),o=n,s=n;const r=(0,d.uh)("animatedValue",n);let a=-1;const l=300;let h;function c(){const t=Date.now()-a;var i,d,u,g;s=Math.floor((d=o,u=n-o,(i=t)===(g=l)?d+u:u*(1-Math.pow(2,-10*i/g))+d)),t({animate:!1}),handleChange:(e,i)=>(e.didChange(t)&&(i.animate=i.animate||e.change),!0)},((i,r)=>{void 0!==h&&(e.cancelAnimationFrame(h),h=void 0),o=s,n=t.read(i),a=Date.now()-(r.animate?0:l),c()}))),r}class w extends h.JT{constructor(e,t,i){super(),this._register(new S(e,i)),this._register(L(i,{height:t.actualHeight,top:t.actualTop}))}}class y{get afterLineNumber(){return this._afterLineNumber.get()}constructor(e,t){this._afterLineNumber=e,this.heightInPx=t,this.domNode=document.createElement("div"),this._actualTop=(0,d.uh)(this,void 0),this._actualHeight=(0,d.uh)(this,void 0),this.actualTop=this._actualTop,this.actualHeight=this._actualHeight,this.showInHiddenAreas=!0,this.onChange=this._afterLineNumber,this.onDomNodeTop=e=>{this._actualTop.set(e,void 0)},this.onComputedHeight=e=>{this._actualHeight.set(e,void 0)}}}class S{constructor(e,t){this._editor=e,this._domElement=t,this._overlayWidgetId="managedOverlayWidget-".concat(S._counter++),this._overlayWidget={getId:()=>this._overlayWidgetId,getDomNode:()=>this._domElement,getPosition:()=>null},this._editor.addOverlayWidget(this._overlayWidget)}dispose(){this._editor.removeOverlayWidget(this._overlayWidget)}}function L(e,t){return(0,d.EH)((i=>{for(let[n,o]of Object.entries(t))o&&"object"===typeof o&&"read"in o&&(o=o.read(i)),"number"===typeof o&&(o="".concat(o,"px")),n=n.replace(/[A-Z]/g,(e=>"-"+e.toLowerCase())),e.style[n]=o}))}function k(e,t){return function(e,t){if(r()){(0,d.aq)("reload",(t=>a((i=>{let{oldExports:n}=i;if([...Object.values(n)].some((t=>e.includes(t))))return e=>(t(void 0),!0)})))).read(t)}}([e],t),e}function D(e,t,i,n){const o=new h.SL,s=[];return o.add((0,d.gp)(((o,r)=>{const a=t.read(o),l=new Map,h=new Map;i&&i(!0),e.changeViewZones((e=>{for(const t of s)e.removeZone(t),null===n||void 0===n||n.delete(t);s.length=0;for(const t of a){const i=e.addZone(t);t.setZoneId&&t.setZoneId(i),s.push(i),null===n||void 0===n||n.add(i),l.set(t,i)}})),i&&i(!1),r.add((0,d.nJ)({createEmptyChangeSummary:()=>({zoneIds:[]}),handleChange(e,t){const i=h.get(e.changedObservable);return void 0!==i&&t.zoneIds.push(i),!0}},((t,n)=>{for(const e of a)e.onChange&&(h.set(e.onChange,l.get(e)),e.onChange.read(t));i&&i(!0),e.changeViewZones((e=>{for(const t of n.zoneIds)e.layoutZone(t)})),i&&i(!1)})))}))),o.add({dispose(){i&&i(!0),e.changeViewZones((e=>{for(const t of s)e.removeZone(t)})),null===n||void 0===n||n.clear(),i&&i(!1)}}),o}S._counter=0;class N extends o.A{dispose(){super.dispose(!0)}}function x(e,t){const i=(0,n.dF)(t,(t=>t.original.startLineNumber<=e.lineNumber));if(!i)return g.e.fromPositions(e);if(i.original.endLineNumberExclusive<=e.lineNumber){const t=e.lineNumber-i.original.endLineNumberExclusive+i.modified.endLineNumberExclusive;return g.e.fromPositions(new u.L(t,e.column))}if(!i.innerChanges)return g.e.fromPositions(new u.L(i.modified.startLineNumber,1));const o=(0,n.dF)(i.innerChanges,(t=>t.originalRange.getStartPosition().isBeforeOrEqual(e)));if(!o){const t=e.lineNumber-i.original.startLineNumber+i.modified.startLineNumber;return g.e.fromPositions(new u.L(t,e.column))}if(o.originalRange.containsPosition(e))return o.modifiedRange;{const t=(s=o.originalRange.getEndPosition(),r=e,s.lineNumber===r.lineNumber?new m.A(0,r.column-s.column):new m.A(r.lineNumber-s.lineNumber,r.column-1));return g.e.fromPositions(t.addToPosition(o.modifiedRange.getEndPosition()))}var s,r}function E(e,t,i){const n=e.bindTo(t);return(0,d.UV)({debugName:()=>'Set Context Key "'.concat(e.key,'"')},(e=>{n.set(i(e))}))}function I(e,t){let i;return e.filter((e=>{const n=t(e,i);return i=e,n}))}},36281:(e,t,i)=>{i.d(t,{$:()=>p,N:()=>_});var n,o=i(21687),s=i(52047),r=i(85108),a=i(24219),l=i(89599),h=i(99916),d=i(69311),c=i(68150),u=i(2778),g=i(51460),m=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},f=function(e,t){return function(i,n){t(i,n,e)}};let p=n=class{constructor(e,t,i){this._options=e,this._languageService=t,this._openerService=i,this._onDidRenderAsync=new a.Q5,this.onDidRenderAsync=this._onDidRenderAsync.event}dispose(){this._onDidRenderAsync.dispose()}render(e,t,i){if(!e){return{element:document.createElement("span"),dispose:()=>{}}}const n=new l.SL,s=n.add((0,o.ap)(e,{...this._getRenderOptions(e,n),...t},i));return s.element.classList.add("rendered-markdown"),{element:s.element,dispose:()=>n.dispose()}}_getRenderOptions(e,t){return{codeBlockRenderer:async(e,t)=>{var i,o,s;let r;e?r=this._languageService.getLanguageIdByLanguageName(e):this._options.editor&&(r=null===(i=this._options.editor.getModel())||void 0===i?void 0:i.getLanguageId()),r||(r=c.bd);const a=await(0,u.C2)(this._languageService,t,r),l=document.createElement("span");if(l.innerHTML=null!==(s=null===(o=n._ttpTokenizer)||void 0===o?void 0:o.createHTML(a))&&void 0!==s?s:a,this._options.editor){const e=this._options.editor.getOption(50);(0,h.N)(l,e)}else this._options.codeBlockFontFamily&&(l.style.fontFamily=this._options.codeBlockFontFamily);return void 0!==this._options.codeBlockFontSize&&(l.style.fontSize=this._options.codeBlockFontSize),l},asyncRenderCallback:()=>this._onDidRenderAsync.fire(),actionHandler:{callback:t=>_(this._openerService,t,e.isTrusted),disposables:t}}}};async function _(e,t,i){try{return await e.open(t,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:v(i)})}catch(n){return(0,r.dL)(n),!1}}function v(e){return!0===e||!(!e||!Array.isArray(e.enabledCommands))&&e.enabledCommands}p._ttpTokenizer=(0,s.Z)("tokenizeToString",{createHTML:e=>e}),p=n=m([f(1,d.O),f(2,g.v)],p)},11630:(e,t,i)=>{i.d(t,{D:()=>o});var n=i(22337);class o extends n.Wi{constructor(e){super(),this._getContext=e}runAction(e,t){const i=this._getContext();return super.runAction(e,i)}}},27121:(e,t,i)=>{i.d(t,{OY:()=>s,Sj:()=>r,T4:()=>o,Uo:()=>a,hP:()=>l});var n=i(67078);class o{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this._range=e,this._text=t,this.insertsAutoWhitespace=i}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const i=t.getInverseEditOperations()[0].range;return n.Y.fromPositions(i.getEndPosition())}}class s{constructor(e,t){this._range=e,this._text=t}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const i=t.getInverseEditOperations()[0].range;return n.Y.fromRange(i,0)}}class r{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this._range=e,this._text=t,this.insertsAutoWhitespace=i}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const i=t.getInverseEditOperations()[0].range;return n.Y.fromPositions(i.getStartPosition())}}class a{constructor(e,t,i,n){let o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];this._range=e,this._text=t,this._columnDeltaOffset=n,this._lineNumberDeltaOffset=i,this.insertsAutoWhitespace=o}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const i=t.getInverseEditOperations()[0].range;return n.Y.fromPositions(i.getEndPosition().delta(this._lineNumberDeltaOffset,this._columnDeltaOffset))}}class l{constructor(e,t,i){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];this._range=e,this._text=t,this._initialSelection=i,this._forceMoveMarkers=n,this._selectionId=null}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text,this._forceMoveMarkers),this._selectionId=t.trackSelection(this._initialSelection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}},42443:(e,t,i)=>{i.d(t,{U:()=>m});var n,o=i(25085),s=i(5255),r=i(10670),a=i(67078),l=i(16726),h=i(40801),d=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},c=function(e,t){return function(i,n){t(i,n,e)}};const u=Object.create(null);function g(e,t){if(t<=0)return"";u[e]||(u[e]=["",e]);const i=u[e];for(let n=i.length;n<=t;n++)i[n]=i[n-1]+e;return i[t]}let m=n=class{static unshiftIndent(e,t,i,n,o){const r=s.i.visibleColumnFromColumn(e,t,i);if(o){const e=g(" ",n);return g(e,s.i.prevIndentTabStop(r,n)/n)}return g("\t",s.i.prevRenderTabStop(r,i)/i)}static shiftIndent(e,t,i,n,o){const r=s.i.visibleColumnFromColumn(e,t,i);if(o){const e=g(" ",n);return g(e,s.i.nextIndentTabStop(r,n)/n)}return g("\t",s.i.nextRenderTabStop(r,i)/i)}constructor(e,t,i){this._languageConfigurationService=i,this._opts=t,this._selection=e,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}_addEditOperation(e,t,i){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,i):e.addEditOperation(t,i)}getEditOperations(e,t){const i=this._selection.startLineNumber;let a=this._selection.endLineNumber;1===this._selection.endColumn&&i!==a&&(a-=1);const{tabSize:h,indentSize:d,insertSpaces:c}=this._opts,u=i===a;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(e.getLineContent(i))&&(this._useLastEditRangeForCursorEndPosition=!0);let g=0,m=0;for(let f=i;f<=a;f++,g=m){m=0;const a=e.getLineContent(f);let p,_=o.LC(a);if((!this._opts.isUnshift||0!==a.length&&0!==_)&&(u||this._opts.isUnshift||0!==a.length)){if(-1===_&&(_=a.length),f>1){if(s.i.visibleColumnFromColumn(a,_+1,h)%d!==0&&e.tokenization.isCheapToTokenize(f-1)){const t=(0,l.A)(this._opts.autoIndent,e,new r.e(f-1,e.getLineMaxColumn(f-1),f-1,e.getLineMaxColumn(f-1)),this._languageConfigurationService);if(t){if(m=g,t.appendText)for(let e=0,i=t.appendText.length;e{i.d(t,{k:()=>n});const n={enableSplitViewResizing:!0,splitViewDefaultRatio:.5,renderSideBySide:!0,renderMarginRevertIcon:!0,renderGutterMenu:!0,maxComputationTime:5e3,maxFileSize:50,ignoreTrimWhitespace:!0,renderIndicators:!0,originalEditable:!1,diffCodeLens:!1,renderOverviewRuler:!0,diffWordWrap:"inherit",diffAlgorithm:"advanced",accessibilityVerbose:!1,experimental:{showMoves:!1,showEmptyDecorations:!0},hideUnchangedRegions:{enabled:!1,contextLineCount:3,minimumLineCount:3,revealLineCount:20},isInEmbeddedEditor:!1,onlyShowAccessibleDiffViewer:!1,renderSideBySideInlineBreakpoint:900,useInlineViewWhenSpaceIsLimited:!0}},65175:(e,t,i)=>{i.d(t,{Pe:()=>f,ei:()=>m,wk:()=>h});var n=i(44114),o=i(38092),s=i(88975),r=i(71721),a=i(9694),l=i(70311);const h=Object.freeze({id:"editor",order:5,type:"object",title:r.NC("editorConfigurationTitle","Editor"),scope:5}),d={...h,properties:{"editor.tabSize":{type:"number",default:s.D.tabSize,minimum:1,markdownDescription:r.NC("tabSize","The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.indentSize":{anyOf:[{type:"string",enum:["tabSize"]},{type:"number",minimum:1}],default:"tabSize",markdownDescription:r.NC("indentSize",'The number of spaces used for indentation or `"tabSize"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.')},"editor.insertSpaces":{type:"boolean",default:s.D.insertSpaces,markdownDescription:r.NC("insertSpaces","Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.detectIndentation":{type:"boolean",default:s.D.detectIndentation,markdownDescription:r.NC("detectIndentation","Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.","`#editor.tabSize#`","`#editor.insertSpaces#`")},"editor.trimAutoWhitespace":{type:"boolean",default:s.D.trimAutoWhitespace,description:r.NC("trimAutoWhitespace","Remove trailing auto inserted whitespace.")},"editor.largeFileOptimizations":{type:"boolean",default:s.D.largeFileOptimizations,description:r.NC("largeFileOptimizations","Special handling for large files to disable certain memory intensive features.")},"editor.wordBasedSuggestions":{enum:["off","currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[r.NC("wordBasedSuggestions.off","Turn off Word Based Suggestions."),r.NC("wordBasedSuggestions.currentDocument","Only suggest words from the active document."),r.NC("wordBasedSuggestions.matchingDocuments","Suggest words from all open documents of the same language."),r.NC("wordBasedSuggestions.allDocuments","Suggest words from all open documents.")],description:r.NC("wordBasedSuggestions","Controls whether completions should be computed based on words in the document and from which documents they are computed.")},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[r.NC("semanticHighlighting.true","Semantic highlighting enabled for all color themes."),r.NC("semanticHighlighting.false","Semantic highlighting disabled for all color themes."),r.NC("semanticHighlighting.configuredByTheme","Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.")],default:"configuredByTheme",description:r.NC("semanticHighlighting.enabled","Controls whether the semanticHighlighting is shown for the languages that support it.")},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:r.NC("stablePeek","Keep peek editors open even when double-clicking their content or when hitting `Escape`.")},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:r.NC("maxTokenizationLineLength","Lines above this length will not be tokenized for performance reasons")},"editor.experimental.asyncTokenization":{type:"boolean",default:!1,description:r.NC("editor.experimental.asyncTokenization","Controls whether the tokenization should happen asynchronously on a web worker."),tags:["experimental"]},"editor.experimental.asyncTokenizationLogging":{type:"boolean",default:!1,description:r.NC("editor.experimental.asyncTokenizationLogging","Controls whether async tokenization should be logged. For debugging only.")},"editor.experimental.asyncTokenizationVerification":{type:"boolean",default:!1,description:r.NC("editor.experimental.asyncTokenizationVerification","Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only."),tags:["experimental"]},"editor.language.brackets":{type:["array","null"],default:null,description:r.NC("schema.brackets","Defines the bracket symbols that increase or decrease the indentation."),items:{type:"array",items:[{type:"string",description:r.NC("schema.openBracket","The opening bracket character or string sequence.")},{type:"string",description:r.NC("schema.closeBracket","The closing bracket character or string sequence.")}]}},"editor.language.colorizedBracketPairs":{type:["array","null"],default:null,description:r.NC("schema.colorizedBracketPairs","Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled."),items:{type:"array",items:[{type:"string",description:r.NC("schema.openBracket","The opening bracket character or string sequence.")},{type:"string",description:r.NC("schema.closeBracket","The closing bracket character or string sequence.")}]}},"diffEditor.maxComputationTime":{type:"number",default:n.k.maxComputationTime,description:r.NC("maxComputationTime","Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.")},"diffEditor.maxFileSize":{type:"number",default:n.k.maxFileSize,description:r.NC("maxFileSize","Maximum file size in MB for which to compute diffs. Use 0 for no limit.")},"diffEditor.renderSideBySide":{type:"boolean",default:n.k.renderSideBySide,description:r.NC("sideBySide","Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.renderSideBySideInlineBreakpoint":{type:"number",default:n.k.renderSideBySideInlineBreakpoint,description:r.NC("renderSideBySideInlineBreakpoint","If the diff editor width is smaller than this value, the inline view is used.")},"diffEditor.useInlineViewWhenSpaceIsLimited":{type:"boolean",default:n.k.useInlineViewWhenSpaceIsLimited,description:r.NC("useInlineViewWhenSpaceIsLimited","If enabled and the editor width is too small, the inline view is used.")},"diffEditor.renderMarginRevertIcon":{type:"boolean",default:n.k.renderMarginRevertIcon,description:r.NC("renderMarginRevertIcon","When enabled, the diff editor shows arrows in its glyph margin to revert changes.")},"diffEditor.renderGutterMenu":{type:"boolean",default:n.k.renderGutterMenu,description:r.NC("renderGutterMenu","When enabled, the diff editor shows a special gutter for revert and stage actions.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:n.k.ignoreTrimWhitespace,description:r.NC("ignoreTrimWhitespace","When enabled, the diff editor ignores changes in leading or trailing whitespace.")},"diffEditor.renderIndicators":{type:"boolean",default:n.k.renderIndicators,description:r.NC("renderIndicators","Controls whether the diff editor shows +/- indicators for added/removed changes.")},"diffEditor.codeLens":{type:"boolean",default:n.k.diffCodeLens,description:r.NC("codeLens","Controls whether the editor shows CodeLens.")},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:n.k.diffWordWrap,markdownEnumDescriptions:[r.NC("wordWrap.off","Lines will never wrap."),r.NC("wordWrap.on","Lines will wrap at the viewport width."),r.NC("wordWrap.inherit","Lines will wrap according to the {0} setting.","`#editor.wordWrap#`")]},"diffEditor.diffAlgorithm":{type:"string",enum:["legacy","advanced"],default:n.k.diffAlgorithm,markdownEnumDescriptions:[r.NC("diffAlgorithm.legacy","Uses the legacy diffing algorithm."),r.NC("diffAlgorithm.advanced","Uses the advanced diffing algorithm.")],tags:["experimental"]},"diffEditor.hideUnchangedRegions.enabled":{type:"boolean",default:n.k.hideUnchangedRegions.enabled,markdownDescription:r.NC("hideUnchangedRegions.enabled","Controls whether the diff editor shows unchanged regions.")},"diffEditor.hideUnchangedRegions.revealLineCount":{type:"integer",default:n.k.hideUnchangedRegions.revealLineCount,markdownDescription:r.NC("hideUnchangedRegions.revealLineCount","Controls how many lines are used for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.minimumLineCount":{type:"integer",default:n.k.hideUnchangedRegions.minimumLineCount,markdownDescription:r.NC("hideUnchangedRegions.minimumLineCount","Controls how many lines are used as a minimum for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.contextLineCount":{type:"integer",default:n.k.hideUnchangedRegions.contextLineCount,markdownDescription:r.NC("hideUnchangedRegions.contextLineCount","Controls how many lines are used as context when comparing unchanged regions."),minimum:1},"diffEditor.experimental.showMoves":{type:"boolean",default:n.k.experimental.showMoves,markdownDescription:r.NC("showMoves","Controls whether the diff editor should show detected code moves.")},"diffEditor.experimental.showEmptyDecorations":{type:"boolean",default:n.k.experimental.showEmptyDecorations,description:r.NC("showEmptyDecorations","Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.")}}};for(const p of o.Bc){const e=p.schema;if("undefined"!==typeof e)if("undefined"!==typeof(c=e).type||"undefined"!==typeof c.anyOf)d.properties["editor.".concat(p.name)]=e;else for(const t in e)Object.hasOwnProperty.call(e,t)&&(d.properties[t]=e[t])}var c;let u=null;function g(){return null===u&&(u=Object.create(null),Object.keys(d.properties).forEach((e=>{u[e]=!0}))),u}function m(e){return g()["editor.".concat(e)]||!1}function f(e){return g()["diffEditor.".concat(e)]||!1}l.B.as(a.IP.Configuration).registerConfiguration(d)},38092:(e,t,i)=>{i.d(t,{$J:()=>A,$r:()=>x,Av:()=>O,BH:()=>W,Bb:()=>d,Bc:()=>z,Bo:()=>I,LJ:()=>c,L_:()=>w,NY:()=>L,O7:()=>_,Zc:()=>b,d2:()=>N,gk:()=>M,hL:()=>B,n0:()=>E,qt:()=>P,rk:()=>g,y0:()=>h});var n=i(75629),o=i(10451),s=i(21511),r=i(88975),a=i(42696),l=i(71721);const h=8;class d{constructor(e){this._values=e}hasChanged(e){return this._values[e]}}class c{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}}class u{constructor(e,t,i,n){this.id=e,this.name=t,this.defaultValue=i,this.schema=n}applyUpdate(e,t){return m(e,t)}compute(e,t,i){return i}}class g{constructor(e,t){this.newValue=e,this.didChange=t}}function m(e,t){if("object"!==typeof e||"object"!==typeof t||!e||!t)return new g(t,e!==t);if(Array.isArray(e)||Array.isArray(t)){const i=Array.isArray(e)&&Array.isArray(t)&&n.fS(e,t);return new g(t,!i)}let i=!1;for(const n in t)if(t.hasOwnProperty(n)){const o=m(e[n],t[n]);o.didChange&&(e[n]=o.newValue,i=!0)}return new g(e,i)}class f{constructor(e){this.schema=void 0,this.id=e,this.name="_never_",this.defaultValue=void 0}applyUpdate(e,t){return m(e,t)}validate(e){return this.defaultValue}}class p{constructor(e,t,i,n){this.id=e,this.name=t,this.defaultValue=i,this.schema=n}applyUpdate(e,t){return m(e,t)}validate(e){return"undefined"===typeof e?this.defaultValue:e}compute(e,t,i){return i}}function _(e,t){return"undefined"===typeof e?t:"false"!==e&&Boolean(e)}class v extends p{constructor(e,t,i){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;"undefined"!==typeof n&&(n.type="boolean",n.default=i),super(e,t,i,n)}validate(e){return _(e,this.defaultValue)}}function b(e,t,i,n){if("undefined"===typeof e)return t;let o=parseInt(e,10);return isNaN(o)?t:(o=Math.max(i,o),o=Math.min(n,o),0|o)}class C extends p{static clampedInt(e,t,i,n){return b(e,t,i,n)}constructor(e,t,i,n,o){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:void 0;"undefined"!==typeof s&&(s.type="integer",s.default=i,s.minimum=n,s.maximum=o),super(e,t,i,s),this.minimum=n,this.maximum=o}validate(e){return C.clampedInt(e,this.defaultValue,this.minimum,this.maximum)}}function w(e,t,i,n){if("undefined"===typeof e)return t;const o=y.float(e,t);return y.clamp(o,i,n)}class y extends p{static clamp(e,t,i){return ei?i:e}static float(e,t){if("number"===typeof e)return e;if("undefined"===typeof e)return t;const i=parseFloat(e);return isNaN(i)?t:i}constructor(e,t,i,n,o){"undefined"!==typeof o&&(o.type="number",o.default=i),super(e,t,i,o),this.validationFn=n}validate(e){return this.validationFn(y.float(e,this.defaultValue))}}class S extends p{static string(e,t){return"string"!==typeof e?t:e}constructor(e,t,i){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;"undefined"!==typeof n&&(n.type="string",n.default=i),super(e,t,i,n)}validate(e){return S.string(e,this.defaultValue)}}function L(e,t,i,n){return"string"!==typeof e?t:n&&e in n?n[e]:-1===i.indexOf(e)?t:e}class k extends p{constructor(e,t,i,n){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;"undefined"!==typeof o&&(o.type="string",o.enum=n,o.default=i),super(e,t,i,o),this._allowedValues=n}validate(e){return L(e,this.defaultValue,this._allowedValues)}}class D extends u{constructor(e,t,i,n,o,s){let r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:void 0;"undefined"!==typeof r&&(r.type="string",r.enum=o,r.default=n),super(e,t,i,r),this._allowedValues=o,this._convert=s}validate(e){return"string"!==typeof e||-1===this._allowedValues.indexOf(e)?this.defaultValue:this._convert(e)}}var N,x;!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"}(N||(N={}));class E extends u{constructor(){super(51,"fontLigatures",E.OFF,{anyOf:[{type:"boolean",description:l.NC("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:l.NC("fontFeatureSettings","Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:l.NC("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})}validate(e){return"undefined"===typeof e?this.defaultValue:"string"===typeof e?"false"===e||0===e.length?E.OFF:"true"===e?E.ON:e:Boolean(e)?E.ON:E.OFF}}E.OFF='"liga" off, "calt" off',E.ON='"liga" on, "calt" on';class I extends u{constructor(){super(54,"fontVariations",I.OFF,{anyOf:[{type:"boolean",description:l.NC("fontVariations","Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.")},{type:"string",description:l.NC("fontVariationSettings","Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.")}],description:l.NC("fontVariationsGeneral","Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property."),default:!1})}validate(e){return"undefined"===typeof e?this.defaultValue:"string"===typeof e?"false"===e?I.OFF:"true"===e?I.TRANSLATE:e:Boolean(e)?I.TRANSLATE:I.OFF}compute(e,t,i){return e.fontInfo.fontVariationSettings}}I.OFF="normal",I.TRANSLATE="translate";class T extends u{constructor(){super(53,"fontWeight",B.fontWeight,{anyOf:[{type:"number",minimum:T.MINIMUM_VALUE,maximum:T.MAXIMUM_VALUE,errorMessage:l.NC("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:T.SUGGESTION_VALUES}],default:B.fontWeight,description:l.NC("fontWeight",'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}validate(e){return"normal"===e||"bold"===e?e:String(C.clampedInt(e,B.fontWeight,T.MINIMUM_VALUE,T.MAXIMUM_VALUE))}}T.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"],T.MINIMUM_VALUE=1,T.MAXIMUM_VALUE=1e3;class M extends f{constructor(){super(145)}compute(e,t,i){return M.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,glyphMarginDecorationLaneCount:e.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(e){const t=e.height/e.lineHeight,i=Math.floor(e.paddingTop/e.lineHeight);let n=Math.floor(e.paddingBottom/e.lineHeight);e.scrollBeyondLastLine&&(n=Math.max(n,t-1));const o=(i+e.viewLineCount+n)/(e.pixelRatio*e.height);return{typicalViewportLineCount:t,extraLinesBeforeFirstLine:i,extraLinesBeyondLastLine:n,desiredRatio:o,minimapLineCount:Math.floor(e.viewLineCount/o)}}static _computeMinimapLayout(e,t){const i=e.outerWidth,n=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*n),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:n};const s=t.stableMinimapLayoutInput,r=s&&e.outerHeight===s.outerHeight&&e.lineHeight===s.lineHeight&&e.typicalHalfwidthCharacterWidth===s.typicalHalfwidthCharacterWidth&&e.pixelRatio===s.pixelRatio&&e.scrollBeyondLastLine===s.scrollBeyondLastLine&&e.paddingTop===s.paddingTop&&e.paddingBottom===s.paddingBottom&&e.minimap.enabled===s.minimap.enabled&&e.minimap.side===s.minimap.side&&e.minimap.size===s.minimap.size&&e.minimap.showSlider===s.minimap.showSlider&&e.minimap.renderCharacters===s.minimap.renderCharacters&&e.minimap.maxColumn===s.minimap.maxColumn&&e.minimap.scale===s.minimap.scale&&e.verticalScrollbarWidth===s.verticalScrollbarWidth&&e.isViewportWrapping===s.isViewportWrapping,a=e.lineHeight,l=e.typicalHalfwidthCharacterWidth,d=e.scrollBeyondLastLine,c=e.minimap.renderCharacters;let u=o>=2?Math.round(2*e.minimap.scale):e.minimap.scale;const g=e.minimap.maxColumn,m=e.minimap.size,f=e.minimap.side,p=e.verticalScrollbarWidth,_=e.viewLineCount,v=e.remainingWidth,b=e.isViewportWrapping,C=c?2:3;let w=Math.floor(o*n);const y=w/o;let S=!1,L=!1,k=C*u,D=u/o,N=1;if("fill"===m||"fit"===m){const{typicalViewportLineCount:i,extraLinesBeforeFirstLine:s,extraLinesBeyondLastLine:l,desiredRatio:h,minimapLineCount:c}=M.computeContainedMinimapLineCount({viewLineCount:_,scrollBeyondLastLine:d,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,height:n,lineHeight:a,pixelRatio:o});if(_/c>1)S=!0,L=!0,u=1,k=1,D=u/o;else{let n=!1,d=u+1;if("fit"===m){const e=Math.ceil((s+_+l)*k);b&&r&&v<=t.stableFitRemainingWidth?(n=!0,d=t.stableFitMaxMinimapScale):n=e>w}if("fill"===m||n){S=!0;const n=u;k=Math.min(a*o,Math.max(1,Math.floor(1/h))),b&&r&&v<=t.stableFitRemainingWidth&&(d=t.stableFitMaxMinimapScale),u=Math.min(d,Math.max(1,Math.floor(k/C))),u>n&&(N=Math.min(2,u/n)),D=u/o/N,w=Math.ceil(Math.max(i,s+_+l)*k),b?(t.stableMinimapLayoutInput=e,t.stableFitRemainingWidth=v,t.stableFitMaxMinimapScale=u):(t.stableMinimapLayoutInput=null,t.stableFitRemainingWidth=0)}}}const x=Math.floor(g*D),E=Math.min(x,Math.max(0,Math.floor((v-p-2)*D/(l+D)))+h);let I=Math.floor(o*E);const T=I/o;I=Math.floor(I*N);return{renderMinimap:c?1:2,minimapLeft:"left"===f?0:i-E-p,minimapWidth:E,minimapHeightIsEditorHeight:S,minimapIsSampling:L,minimapScale:u,minimapLineHeight:k,minimapCanvasInnerWidth:I,minimapCanvasInnerHeight:w,minimapCanvasOuterWidth:T,minimapCanvasOuterHeight:y}}static computeLayout(e,t){const i=0|t.outerWidth,n=0|t.outerHeight,o=0|t.lineHeight,s=0|t.lineNumbersDigitCount,r=t.typicalHalfwidthCharacterWidth,a=t.maxDigitWidth,l=t.pixelRatio,h=t.viewLineCount,d=e.get(137),u="inherit"===d?e.get(136):d,g="inherit"===u?e.get(132):u,m=e.get(135),f=t.isDominatedByLongLines,p=e.get(57),_=0!==e.get(68).renderType,v=e.get(69),b=e.get(105),C=e.get(84),w=e.get(73),y=e.get(103),S=y.verticalScrollbarSize,L=y.verticalHasArrows,k=y.arrowSize,D=y.horizontalScrollbarSize,N=e.get(43),x="never"!==e.get(110);let E=e.get(66);N&&x&&(E+=16);let I=0;if(_){const e=Math.max(s,v);I=Math.round(e*a)}let T=0;p&&(T=o*t.glyphMarginDecorationLaneCount);let A=0,R=A+T,O=R+I,P=O+E;const F=i-T-I-E;let B=!1,z=!1,V=-1;"inherit"===u&&f?(B=!0,z=!0):"on"===g||"bounded"===g?z=!0:"wordWrapColumn"===g&&(V=m);const W=M._computeMinimapLayout({outerWidth:i,outerHeight:n,lineHeight:o,typicalHalfwidthCharacterWidth:r,pixelRatio:l,scrollBeyondLastLine:b,paddingTop:C.top,paddingBottom:C.bottom,minimap:w,verticalScrollbarWidth:S,viewLineCount:h,remainingWidth:F,isViewportWrapping:z},t.memory||new c);0!==W.renderMinimap&&0===W.minimapLeft&&(A+=W.minimapWidth,R+=W.minimapWidth,O+=W.minimapWidth,P+=W.minimapWidth);const H=F-W.minimapWidth,K=Math.max(1,Math.floor((H-S-2)/r)),U=L?k:0;return z&&(V=Math.max(1,K),"bounded"===g&&(V=Math.min(V,m))),{width:i,height:n,glyphMarginLeft:A,glyphMarginWidth:T,glyphMarginDecorationLaneCount:t.glyphMarginDecorationLaneCount,lineNumbersLeft:R,lineNumbersWidth:I,decorationsLeft:O,decorationsWidth:E,contentLeft:P,contentWidth:H,minimap:W,viewportColumn:K,isWordWrapMinified:B,isViewportWrapping:z,wrappingColumn:V,verticalScrollbarWidth:S,horizontalScrollbarHeight:D,overviewRuler:{top:U,width:S,height:n-2*U,right:0}}}}!function(e){e.Off="off",e.OnCode="onCode",e.On="on"}(x||(x={}));function A(e){const t=e.get(98);return"editable"===t?e.get(91):"on"!==t}function R(e,t){if("string"!==typeof e)return t;switch(e){case"hidden":return 2;case"visible":return 3;default:return 1}}const O="inUntrustedWorkspace",P={allowedCharacters:"editor.unicodeHighlight.allowedCharacters",invisibleCharacters:"editor.unicodeHighlight.invisibleCharacters",nonBasicASCII:"editor.unicodeHighlight.nonBasicASCII",ambiguousCharacters:"editor.unicodeHighlight.ambiguousCharacters",includeComments:"editor.unicodeHighlight.includeComments",includeStrings:"editor.unicodeHighlight.includeStrings",allowedLocales:"editor.unicodeHighlight.allowedLocales"};function F(e,t,i){const n=i.indexOf(e);return-1===n?t:i[n]}const B={fontFamily:s.dz?"Menlo, Monaco, 'Courier New', monospace":s.IJ?"'Droid Sans Mono', 'monospace', monospace":"Consolas, 'Courier New', monospace",fontWeight:"normal",fontSize:s.dz?12:14,lineHeight:0,letterSpacing:0},z=[];function V(e){return z[e.id]=e,e}const W={acceptSuggestionOnCommitCharacter:V(new v(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:l.NC("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:V(new k(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",l.NC("acceptSuggestionOnEnterSmart","Only accept a suggestion with `Enter` when it makes a textual change."),""],markdownDescription:l.NC("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:V(new class extends u{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[l.NC("accessibilitySupport.auto","Use platform APIs to detect when a Screen Reader is attached."),l.NC("accessibilitySupport.on","Optimize for usage with a Screen Reader."),l.NC("accessibilitySupport.off","Assume a screen reader is not attached.")],default:"auto",tags:["accessibility"],description:l.NC("accessibilitySupport","Controls if the UI should run in a mode where it is optimized for screen readers.")})}validate(e){switch(e){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(e,t,i){return 0===i?e.accessibilitySupport:i}}),accessibilityPageSize:V(new C(3,"accessibilityPageSize",10,1,1073741824,{description:l.NC("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."),tags:["accessibility"]})),ariaLabel:V(new S(4,"ariaLabel",l.NC("editorViewAccessibleLabel","Editor content"))),ariaRequired:V(new v(5,"ariaRequired",!1,void 0)),screenReaderAnnounceInlineSuggestion:V(new v(8,"screenReaderAnnounceInlineSuggestion",!0,{description:l.NC("screenReaderAnnounceInlineSuggestion","Control whether inline suggestions are announced by a screen reader."),tags:["accessibility"]})),autoClosingBrackets:V(new k(6,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",l.NC("editor.autoClosingBrackets.languageDefined","Use language configurations to determine when to autoclose brackets."),l.NC("editor.autoClosingBrackets.beforeWhitespace","Autoclose brackets only when the cursor is to the left of whitespace."),""],description:l.NC("autoClosingBrackets","Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})),autoClosingComments:V(new k(7,"autoClosingComments","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",l.NC("editor.autoClosingComments.languageDefined","Use language configurations to determine when to autoclose comments."),l.NC("editor.autoClosingComments.beforeWhitespace","Autoclose comments only when the cursor is to the left of whitespace."),""],description:l.NC("autoClosingComments","Controls whether the editor should automatically close comments after the user adds an opening comment.")})),autoClosingDelete:V(new k(9,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",l.NC("editor.autoClosingDelete.auto","Remove adjacent closing quotes or brackets only if they were automatically inserted."),""],description:l.NC("autoClosingDelete","Controls whether the editor should remove adjacent closing quotes or brackets when deleting.")})),autoClosingOvertype:V(new k(10,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",l.NC("editor.autoClosingOvertype.auto","Type over closing quotes or brackets only if they were automatically inserted."),""],description:l.NC("autoClosingOvertype","Controls whether the editor should type over closing quotes or brackets.")})),autoClosingQuotes:V(new k(11,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",l.NC("editor.autoClosingQuotes.languageDefined","Use language configurations to determine when to autoclose quotes."),l.NC("editor.autoClosingQuotes.beforeWhitespace","Autoclose quotes only when the cursor is to the left of whitespace."),""],description:l.NC("autoClosingQuotes","Controls whether the editor should automatically close quotes after the user adds an opening quote.")})),autoIndent:V(new D(12,"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:[l.NC("editor.autoIndent.none","The editor will not insert indentation automatically."),l.NC("editor.autoIndent.keep","The editor will keep the current line's indentation."),l.NC("editor.autoIndent.brackets","The editor will keep the current line's indentation and honor language defined brackets."),l.NC("editor.autoIndent.advanced","The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."),l.NC("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:l.NC("autoIndent","Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})),automaticLayout:V(new v(13,"automaticLayout",!1)),autoSurround:V(new k(14,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[l.NC("editor.autoSurround.languageDefined","Use language configurations to determine when to automatically surround selections."),l.NC("editor.autoSurround.quotes","Surround with quotes but not brackets."),l.NC("editor.autoSurround.brackets","Surround with brackets but not quotes."),""],description:l.NC("autoSurround","Controls whether the editor should automatically surround selections when typing quotes or brackets.")})),bracketPairColorization:V(new class extends u{constructor(){const e={enabled:r.D.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:r.D.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(15,"bracketPairColorization",e,{"editor.bracketPairColorization.enabled":{type:"boolean",default:e.enabled,markdownDescription:l.NC("bracketPairColorization.enabled","Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.","`#workbench.colorCustomizations#`")},"editor.bracketPairColorization.independentColorPoolPerBracketType":{type:"boolean",default:e.independentColorPoolPerBracketType,description:l.NC("bracketPairColorization.independentColorPoolPerBracketType","Controls whether each bracket type has its own independent color pool.")}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:_(t.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}}),bracketPairGuides:V(new class extends u{constructor(){const e={bracketPairs:!1,bracketPairsHorizontal:"active",highlightActiveBracketPair:!0,indentation:!0,highlightActiveIndentation:!0};super(16,"guides",e,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[l.NC("editor.guides.bracketPairs.true","Enables bracket pair guides."),l.NC("editor.guides.bracketPairs.active","Enables bracket pair guides only for the active bracket pair."),l.NC("editor.guides.bracketPairs.false","Disables bracket pair guides.")],default:e.bracketPairs,description:l.NC("editor.guides.bracketPairs","Controls whether bracket pair guides are enabled or not.")},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[l.NC("editor.guides.bracketPairsHorizontal.true","Enables horizontal guides as addition to vertical bracket pair guides."),l.NC("editor.guides.bracketPairsHorizontal.active","Enables horizontal guides only for the active bracket pair."),l.NC("editor.guides.bracketPairsHorizontal.false","Disables horizontal bracket pair guides.")],default:e.bracketPairsHorizontal,description:l.NC("editor.guides.bracketPairsHorizontal","Controls whether horizontal bracket pair guides are enabled or not.")},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:e.highlightActiveBracketPair,description:l.NC("editor.guides.highlightActiveBracketPair","Controls whether the editor should highlight the active bracket pair.")},"editor.guides.indentation":{type:"boolean",default:e.indentation,description:l.NC("editor.guides.indentation","Controls whether the editor should render indent guides.")},"editor.guides.highlightActiveIndentation":{type:["boolean","string"],enum:[!0,"always",!1],enumDescriptions:[l.NC("editor.guides.highlightActiveIndentation.true","Highlights the active indent guide."),l.NC("editor.guides.highlightActiveIndentation.always","Highlights the active indent guide even if bracket guides are highlighted."),l.NC("editor.guides.highlightActiveIndentation.false","Do not highlight the active indent guide.")],default:e.highlightActiveIndentation,description:l.NC("editor.guides.highlightActiveIndentation","Controls whether the editor should highlight the active indent guide.")}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e;return{bracketPairs:F(t.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,"active"]),bracketPairsHorizontal:F(t.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,"active"]),highlightActiveBracketPair:_(t.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:_(t.indentation,this.defaultValue.indentation),highlightActiveIndentation:F(t.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[!0,!1,"always"])}}}),stickyTabStops:V(new v(116,"stickyTabStops",!1,{description:l.NC("stickyTabStops","Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.")})),codeLens:V(new v(17,"codeLens",!0,{description:l.NC("codeLens","Controls whether the editor shows CodeLens.")})),codeLensFontFamily:V(new S(18,"codeLensFontFamily","",{description:l.NC("codeLensFontFamily","Controls the font family for CodeLens.")})),codeLensFontSize:V(new C(19,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:l.NC("codeLensFontSize","Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.")})),colorDecorators:V(new v(20,"colorDecorators",!0,{description:l.NC("colorDecorators","Controls whether the editor should render the inline color decorators and color picker.")})),colorDecoratorActivatedOn:V(new k(148,"colorDecoratorsActivatedOn","clickAndHover",["clickAndHover","hover","click"],{enumDescriptions:[l.NC("editor.colorDecoratorActivatedOn.clickAndHover","Make the color picker appear both on click and hover of the color decorator"),l.NC("editor.colorDecoratorActivatedOn.hover","Make the color picker appear on hover of the color decorator"),l.NC("editor.colorDecoratorActivatedOn.click","Make the color picker appear on click of the color decorator")],description:l.NC("colorDecoratorActivatedOn","Controls the condition to make a color picker appear from a color decorator")})),colorDecoratorsLimit:V(new C(21,"colorDecoratorsLimit",500,1,1e6,{markdownDescription:l.NC("colorDecoratorsLimit","Controls the max number of color decorators that can be rendered in an editor at once.")})),columnSelection:V(new v(22,"columnSelection",!1,{description:l.NC("columnSelection","Enable that the selection with the mouse and keys is doing column selection.")})),comments:V(new class extends u{constructor(){const e={insertSpace:!0,ignoreEmptyLines:!0};super(23,"comments",e,{"editor.comments.insertSpace":{type:"boolean",default:e.insertSpace,description:l.NC("comments.insertSpace","Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:e.ignoreEmptyLines,description:l.NC("comments.ignoreEmptyLines","Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e;return{insertSpace:_(t.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:_(t.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}),contextmenu:V(new v(24,"contextmenu",!0)),copyWithSyntaxHighlighting:V(new v(25,"copyWithSyntaxHighlighting",!0,{description:l.NC("copyWithSyntaxHighlighting","Controls whether syntax highlighting should be copied into the clipboard.")})),cursorBlinking:V(new D(26,"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:l.NC("cursorBlinking","Control the cursor animation style.")})),cursorSmoothCaretAnimation:V(new k(27,"cursorSmoothCaretAnimation","off",["off","explicit","on"],{enumDescriptions:[l.NC("cursorSmoothCaretAnimation.off","Smooth caret animation is disabled."),l.NC("cursorSmoothCaretAnimation.explicit","Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture."),l.NC("cursorSmoothCaretAnimation.on","Smooth caret animation is always enabled.")],description:l.NC("cursorSmoothCaretAnimation","Controls whether the smooth caret animation should be enabled.")})),cursorStyle:V(new D(28,"cursorStyle",N.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],(function(e){switch(e){case"line":return N.Line;case"block":return N.Block;case"underline":return N.Underline;case"line-thin":return N.LineThin;case"block-outline":return N.BlockOutline;case"underline-thin":return N.UnderlineThin}}),{description:l.NC("cursorStyle","Controls the cursor style.")})),cursorSurroundingLines:V(new C(29,"cursorSurroundingLines",0,0,1073741824,{description:l.NC("cursorSurroundingLines","Controls the minimal number of visible leading lines (minimum 0) and trailing lines (minimum 1) surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.")})),cursorSurroundingLinesStyle:V(new k(30,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[l.NC("cursorSurroundingLinesStyle.default","`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."),l.NC("cursorSurroundingLinesStyle.all","`cursorSurroundingLines` is enforced always.")],markdownDescription:l.NC("cursorSurroundingLinesStyle","Controls when `#editor.cursorSurroundingLines#` should be enforced.")})),cursorWidth:V(new C(31,"cursorWidth",0,0,1073741824,{markdownDescription:l.NC("cursorWidth","Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})),disableLayerHinting:V(new v(32,"disableLayerHinting",!1)),disableMonospaceOptimizations:V(new v(33,"disableMonospaceOptimizations",!1)),domReadOnly:V(new v(34,"domReadOnly",!1)),dragAndDrop:V(new v(35,"dragAndDrop",!0,{description:l.NC("dragAndDrop","Controls whether the editor should allow moving selections via drag and drop.")})),emptySelectionClipboard:V(new class extends v{constructor(){super(37,"emptySelectionClipboard",!0,{description:l.NC("emptySelectionClipboard","Controls whether copying without a selection copies the current line.")})}compute(e,t,i){return i&&e.emptySelectionClipboard}}),dropIntoEditor:V(new class extends u{constructor(){const e={enabled:!0,showDropSelector:"afterDrop"};super(36,"dropIntoEditor",e,{"editor.dropIntoEditor.enabled":{type:"boolean",default:e.enabled,markdownDescription:l.NC("dropIntoEditor.enabled","Controls whether you can drag and drop a file into a text editor by holding down the `Shift` key (instead of opening the file in an editor).")},"editor.dropIntoEditor.showDropSelector":{type:"string",markdownDescription:l.NC("dropIntoEditor.showDropSelector","Controls if a widget is shown when dropping files into the editor. This widget lets you control how the file is dropped."),enum:["afterDrop","never"],enumDescriptions:[l.NC("dropIntoEditor.showDropSelector.afterDrop","Show the drop selector widget after a file is dropped into the editor."),l.NC("dropIntoEditor.showDropSelector.never","Never show the drop selector widget. Instead the default drop provider is always used.")],default:"afterDrop"}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),showDropSelector:L(t.showDropSelector,this.defaultValue.showDropSelector,["afterDrop","never"])}}}),stickyScroll:V(new class extends u{constructor(){const e={enabled:!0,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:!0};super(115,"stickyScroll",e,{"editor.stickyScroll.enabled":{type:"boolean",default:e.enabled,description:l.NC("editor.stickyScroll.enabled","Shows the nested current scopes during the scroll at the top of the editor."),tags:["experimental"]},"editor.stickyScroll.maxLineCount":{type:"number",default:e.maxLineCount,minimum:1,maximum:20,description:l.NC("editor.stickyScroll.maxLineCount","Defines the maximum number of sticky lines to show.")},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:e.defaultModel,description:l.NC("editor.stickyScroll.defaultModel","Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.")},"editor.stickyScroll.scrollWithEditor":{type:"boolean",default:e.scrollWithEditor,description:l.NC("editor.stickyScroll.scrollWithEditor","Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.")}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),maxLineCount:C.clampedInt(t.maxLineCount,this.defaultValue.maxLineCount,1,20),defaultModel:L(t.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:_(t.scrollWithEditor,this.defaultValue.scrollWithEditor)}}}),experimentalWhitespaceRendering:V(new k(38,"experimentalWhitespaceRendering","svg",["svg","font","off"],{enumDescriptions:[l.NC("experimentalWhitespaceRendering.svg","Use a new rendering method with svgs."),l.NC("experimentalWhitespaceRendering.font","Use a new rendering method with font characters."),l.NC("experimentalWhitespaceRendering.off","Use the stable rendering method.")],description:l.NC("experimentalWhitespaceRendering","Controls whether whitespace is rendered with a new, experimental method.")})),extraEditorClassName:V(new S(39,"extraEditorClassName","")),fastScrollSensitivity:V(new y(40,"fastScrollSensitivity",5,(e=>e<=0?5:e),{markdownDescription:l.NC("fastScrollSensitivity","Scrolling speed multiplier when pressing `Alt`.")})),find:V(new class extends u{constructor(){const e={cursorMoveOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0};super(41,"find",e,{"editor.find.cursorMoveOnType":{type:"boolean",default:e.cursorMoveOnType,description:l.NC("find.cursorMoveOnType","Controls whether the cursor should jump to find matches while typing.")},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:e.seedSearchStringFromSelection,enumDescriptions:[l.NC("editor.find.seedSearchStringFromSelection.never","Never seed search string from the editor selection."),l.NC("editor.find.seedSearchStringFromSelection.always","Always seed search string from the editor selection, including word at cursor position."),l.NC("editor.find.seedSearchStringFromSelection.selection","Only seed search string from the editor selection.")],description:l.NC("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:[l.NC("editor.find.autoFindInSelection.never","Never turn on Find in Selection automatically (default)."),l.NC("editor.find.autoFindInSelection.always","Always turn on Find in Selection automatically."),l.NC("editor.find.autoFindInSelection.multiline","Turn on Find in Selection automatically when multiple lines of content are selected.")],description:l.NC("find.autoFindInSelection","Controls the condition for turning on Find in Selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:e.globalFindClipboard,description:l.NC("find.globalFindClipboard","Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:s.dz},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:e.addExtraSpaceOnTop,description:l.NC("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:l.NC("find.loop","Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e;return{cursorMoveOnType:_(t.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:"boolean"===typeof e.seedSearchStringFromSelection?e.seedSearchStringFromSelection?"always":"never":L(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:"boolean"===typeof e.autoFindInSelection?e.autoFindInSelection?"always":"never":L(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)}}}),fixedOverflowWidgets:V(new v(42,"fixedOverflowWidgets",!1)),folding:V(new v(43,"folding",!0,{description:l.NC("folding","Controls whether the editor has code folding enabled.")})),foldingStrategy:V(new k(44,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[l.NC("foldingStrategy.auto","Use a language-specific folding strategy if available, else the indentation-based one."),l.NC("foldingStrategy.indentation","Use the indentation-based folding strategy.")],description:l.NC("foldingStrategy","Controls the strategy for computing folding ranges.")})),foldingHighlight:V(new v(45,"foldingHighlight",!0,{description:l.NC("foldingHighlight","Controls whether the editor should highlight folded ranges.")})),foldingImportsByDefault:V(new v(46,"foldingImportsByDefault",!1,{description:l.NC("foldingImportsByDefault","Controls whether the editor automatically collapses import ranges.")})),foldingMaximumRegions:V(new C(47,"foldingMaximumRegions",5e3,10,65e3,{description:l.NC("foldingMaximumRegions","The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.")})),unfoldOnClickAfterEndOfLine:V(new v(48,"unfoldOnClickAfterEndOfLine",!1,{description:l.NC("unfoldOnClickAfterEndOfLine","Controls whether clicking on the empty content after a folded line will unfold the line.")})),fontFamily:V(new S(49,"fontFamily",B.fontFamily,{description:l.NC("fontFamily","Controls the font family.")})),fontInfo:V(new class extends f{constructor(){super(50)}compute(e,t,i){return e.fontInfo}}),fontLigatures2:V(new E),fontSize:V(new class extends p{constructor(){super(52,"fontSize",B.fontSize,{type:"number",minimum:6,maximum:100,default:B.fontSize,description:l.NC("fontSize","Controls the font size in pixels.")})}validate(e){const t=y.float(e,this.defaultValue);return 0===t?B.fontSize:y.clamp(t,6,100)}compute(e,t,i){return e.fontInfo.fontSize}}),fontWeight:V(new T),fontVariations:V(new I),formatOnPaste:V(new v(55,"formatOnPaste",!1,{description:l.NC("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:V(new v(56,"formatOnType",!1,{description:l.NC("formatOnType","Controls whether the editor should automatically format the line after typing.")})),glyphMargin:V(new v(57,"glyphMargin",!0,{description:l.NC("glyphMargin","Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})),gotoLocation:V(new class extends u{constructor(){const 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:""},t={type:"string",enum:["peek","gotoAndPeek","goto"],default:e.multiple,enumDescriptions:[l.NC("editor.gotoLocation.multiple.peek","Show Peek view of the results (default)"),l.NC("editor.gotoLocation.multiple.gotoAndPeek","Go to the primary result and show a Peek view"),l.NC("editor.gotoLocation.multiple.goto","Go to the primary result and enable Peek-less navigation to others")]},i=["","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"];super(58,"gotoLocation",e,{"editor.gotoLocation.multiple":{deprecationMessage:l.NC("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":{description:l.NC("editor.editor.gotoLocation.multipleDefinitions","Controls the behavior the 'Go to Definition'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleTypeDefinitions":{description:l.NC("editor.editor.gotoLocation.multipleTypeDefinitions","Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleDeclarations":{description:l.NC("editor.editor.gotoLocation.multipleDeclarations","Controls the behavior the 'Go to Declaration'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleImplementations":{description:l.NC("editor.editor.gotoLocation.multipleImplemenattions","Controls the behavior the 'Go to Implementations'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleReferences":{description:l.NC("editor.editor.gotoLocation.multipleReferences","Controls the behavior the 'Go to References'-command when multiple target locations exist."),...t},"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:e.alternativeDefinitionCommand,enum:i,description:l.NC("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:i,description:l.NC("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:i,description:l.NC("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:i,description:l.NC("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:i,description:l.NC("alternativeReferenceCommand","Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}validate(e){var t,i,n,o,s;if(!e||"object"!==typeof e)return this.defaultValue;const r=e;return{multiple:L(r.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:null!==(t=r.multipleDefinitions)&&void 0!==t?t:L(r.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:null!==(i=r.multipleTypeDefinitions)&&void 0!==i?i:L(r.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:null!==(n=r.multipleDeclarations)&&void 0!==n?n:L(r.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:null!==(o=r.multipleImplementations)&&void 0!==o?o:L(r.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:null!==(s=r.multipleReferences)&&void 0!==s?s:L(r.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:S.string(r.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:S.string(r.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:S.string(r.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:S.string(r.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:S.string(r.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}}}),hideCursorInOverviewRuler:V(new v(59,"hideCursorInOverviewRuler",!1,{description:l.NC("hideCursorInOverviewRuler","Controls whether the cursor should be hidden in the overview ruler.")})),hover:V(new class extends u{constructor(){const e={enabled:!0,delay:300,hidingDelay:300,sticky:!0,above:!0};super(60,"hover",e,{"editor.hover.enabled":{type:"boolean",default:e.enabled,description:l.NC("hover.enabled","Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:e.delay,minimum:0,maximum:1e4,description:l.NC("hover.delay","Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:e.sticky,description:l.NC("hover.sticky","Controls whether the hover should remain visible when mouse is moved over it.")},"editor.hover.hidingDelay":{type:"integer",minimum:0,default:e.hidingDelay,description:l.NC("hover.hidingDelay","Controls the delay in milliseconds after which the hover is hidden. Requires `editor.hover.sticky` to be enabled.")},"editor.hover.above":{type:"boolean",default:e.above,description:l.NC("hover.above","Prefer showing hovers above the line, if there's space.")}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),delay:C.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:_(t.sticky,this.defaultValue.sticky),hidingDelay:C.clampedInt(t.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:_(t.above,this.defaultValue.above)}}}),inDiffEditor:V(new v(61,"inDiffEditor",!1)),letterSpacing:V(new y(64,"letterSpacing",B.letterSpacing,(e=>y.clamp(e,-5,20)),{description:l.NC("letterSpacing","Controls the letter spacing in pixels.")})),lightbulb:V(new class extends u{constructor(){const e={enabled:x.On};super(65,"lightbulb",e,{"editor.lightbulb.enabled":{type:"string",tags:["experimental"],enum:[x.Off,x.OnCode,x.On],default:e.enabled,enumDescriptions:[l.NC("editor.lightbulb.enabled.off","Disable the code action menu."),l.NC("editor.lightbulb.enabled.onCode","Show the code action menu when the cursor is on lines with code."),l.NC("editor.lightbulb.enabled.on","Show the code action menu when the cursor is on lines with code or on empty lines.")],description:l.NC("enabled","Enables the Code Action lightbulb in the editor.")}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;return{enabled:L(e.enabled,this.defaultValue.enabled,[x.Off,x.OnCode,x.On])}}}),lineDecorationsWidth:V(new class extends u{constructor(){super(66,"lineDecorationsWidth",10)}validate(e){if("string"===typeof e&&/^\d+(\.\d+)?ch$/.test(e)){return-parseFloat(e.substring(0,e.length-2))}return C.clampedInt(e,this.defaultValue,0,1e3)}compute(e,t,i){return i<0?C.clampedInt(-i*e.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):i}}),lineHeight:V(new class extends y{constructor(){super(67,"lineHeight",B.lineHeight,(e=>y.clamp(e,0,150)),{markdownDescription:l.NC("lineHeight","Controls the line height. \n - Use 0 to automatically compute the line height from the font size.\n - Values between 0 and 8 will be used as a multiplier with the font size.\n - Values greater than or equal to 8 will be used as effective values.")})}compute(e,t,i){return e.fontInfo.lineHeight}}),lineNumbers:V(new class extends u{constructor(){super(68,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[l.NC("lineNumbers.off","Line numbers are not rendered."),l.NC("lineNumbers.on","Line numbers are rendered as absolute number."),l.NC("lineNumbers.relative","Line numbers are rendered as distance in lines to cursor position."),l.NC("lineNumbers.interval","Line numbers are rendered every 10 lines.")],default:"on",description:l.NC("lineNumbers","Controls the display of line numbers.")})}validate(e){let t=this.defaultValue.renderType,i=this.defaultValue.renderFn;return"undefined"!==typeof e&&("function"===typeof e?(t=4,i=e):t="interval"===e?3:"relative"===e?2:"on"===e?1:0),{renderType:t,renderFn:i}}}),lineNumbersMinChars:V(new C(69,"lineNumbersMinChars",5,1,300)),linkedEditing:V(new v(70,"linkedEditing",!1,{description:l.NC("linkedEditing","Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.")})),links:V(new v(71,"links",!0,{description:l.NC("links","Controls whether the editor should detect links and make them clickable.")})),matchBrackets:V(new k(72,"matchBrackets","always",["always","near","never"],{description:l.NC("matchBrackets","Highlight matching brackets.")})),minimap:V(new class extends u{constructor(){const e={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:!1,renderCharacters:!0,maxColumn:120,scale:1,showRegionSectionHeaders:!0,showMarkSectionHeaders:!0,sectionHeaderFontSize:9};super(73,"minimap",e,{"editor.minimap.enabled":{type:"boolean",default:e.enabled,description:l.NC("minimap.enabled","Controls whether the minimap is shown.")},"editor.minimap.autohide":{type:"boolean",default:e.autohide,description:l.NC("minimap.autohide","Controls whether the minimap is hidden automatically.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[l.NC("minimap.size.proportional","The minimap has the same size as the editor contents (and might scroll)."),l.NC("minimap.size.fill","The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),l.NC("minimap.size.fit","The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:e.size,description:l.NC("minimap.size","Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:e.side,description:l.NC("minimap.side","Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:e.showSlider,description:l.NC("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:l.NC("minimap.scale","Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:e.renderCharacters,description:l.NC("minimap.renderCharacters","Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:e.maxColumn,description:l.NC("minimap.maxColumn","Limit the width of the minimap to render at most a certain number of columns.")},"editor.minimap.showRegionSectionHeaders":{type:"boolean",default:e.showRegionSectionHeaders,description:l.NC("minimap.showRegionSectionHeaders","Controls whether named regions are shown as section headers in the minimap.")},"editor.minimap.showMarkSectionHeaders":{type:"boolean",default:e.showMarkSectionHeaders,description:l.NC("minimap.showMarkSectionHeaders","Controls whether MARK: comments are shown as section headers in the minimap.")},"editor.minimap.sectionHeaderFontSize":{type:"number",default:e.sectionHeaderFontSize,description:l.NC("minimap.sectionHeaderFontSize","Controls the font size of section headers in the minimap.")}})}validate(e){var t;if(!e||"object"!==typeof e)return this.defaultValue;const i=e;return{enabled:_(i.enabled,this.defaultValue.enabled),autohide:_(i.autohide,this.defaultValue.autohide),size:L(i.size,this.defaultValue.size,["proportional","fill","fit"]),side:L(i.side,this.defaultValue.side,["right","left"]),showSlider:L(i.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:_(i.renderCharacters,this.defaultValue.renderCharacters),scale:C.clampedInt(i.scale,1,1,3),maxColumn:C.clampedInt(i.maxColumn,this.defaultValue.maxColumn,1,1e4),showRegionSectionHeaders:_(i.showRegionSectionHeaders,this.defaultValue.showRegionSectionHeaders),showMarkSectionHeaders:_(i.showMarkSectionHeaders,this.defaultValue.showMarkSectionHeaders),sectionHeaderFontSize:y.clamp(null!==(t=i.sectionHeaderFontSize)&&void 0!==t?t:this.defaultValue.sectionHeaderFontSize,4,32)}}}),mouseStyle:V(new k(74,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:V(new y(75,"mouseWheelScrollSensitivity",1,(e=>0===e?1:e),{markdownDescription:l.NC("mouseWheelScrollSensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})),mouseWheelZoom:V(new v(76,"mouseWheelZoom",!1,{markdownDescription:s.dz?l.NC("mouseWheelZoom.mac","Zoom the font of the editor when using mouse wheel and holding `Cmd`."):l.NC("mouseWheelZoom","Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})),multiCursorMergeOverlapping:V(new v(77,"multiCursorMergeOverlapping",!0,{description:l.NC("multiCursorMergeOverlapping","Merge multiple cursors when they are overlapping.")})),multiCursorModifier:V(new D(78,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],(function(e){return"ctrlCmd"===e?s.dz?"metaKey":"ctrlKey":"altKey"}),{markdownEnumDescriptions:[l.NC("multiCursorModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),l.NC("multiCursorModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],markdownDescription:l.NC({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](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).")})),multiCursorPaste:V(new k(79,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[l.NC("multiCursorPaste.spread","Each cursor pastes a single line of the text."),l.NC("multiCursorPaste.full","Each cursor pastes the full text.")],markdownDescription:l.NC("multiCursorPaste","Controls pasting when the line count of the pasted text matches the cursor count.")})),multiCursorLimit:V(new C(80,"multiCursorLimit",1e4,1,1e5,{markdownDescription:l.NC("multiCursorLimit","Controls the max number of cursors that can be in an active editor at once.")})),occurrencesHighlight:V(new k(81,"occurrencesHighlight","singleFile",["off","singleFile","multiFile"],{markdownEnumDescriptions:[l.NC("occurrencesHighlight.off","Does not highlight occurrences."),l.NC("occurrencesHighlight.singleFile","Highlights occurrences only in the current file."),l.NC("occurrencesHighlight.multiFile","Experimental: Highlights occurrences across all valid open files.")],markdownDescription:l.NC("occurrencesHighlight","Controls whether occurrences should be highlighted across open files.")})),overviewRulerBorder:V(new v(82,"overviewRulerBorder",!0,{description:l.NC("overviewRulerBorder","Controls whether a border should be drawn around the overview ruler.")})),overviewRulerLanes:V(new C(83,"overviewRulerLanes",3,0,3)),padding:V(new class extends u{constructor(){super(84,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:l.NC("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:l.NC("padding.bottom","Controls the amount of space between the bottom edge of the editor and the last line.")}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e;return{top:C.clampedInt(t.top,0,0,1e3),bottom:C.clampedInt(t.bottom,0,0,1e3)}}}),pasteAs:V(new class extends u{constructor(){const e={enabled:!0,showPasteSelector:"afterPaste"};super(85,"pasteAs",e,{"editor.pasteAs.enabled":{type:"boolean",default:e.enabled,markdownDescription:l.NC("pasteAs.enabled","Controls whether you can paste content in different ways.")},"editor.pasteAs.showPasteSelector":{type:"string",markdownDescription:l.NC("pasteAs.showPasteSelector","Controls if a widget is shown when pasting content in to the editor. This widget lets you control how the file is pasted."),enum:["afterPaste","never"],enumDescriptions:[l.NC("pasteAs.showPasteSelector.afterPaste","Show the paste selector widget after content is pasted into the editor."),l.NC("pasteAs.showPasteSelector.never","Never show the paste selector widget. Instead the default pasting behavior is always used.")],default:"afterPaste"}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),showPasteSelector:L(t.showPasteSelector,this.defaultValue.showPasteSelector,["afterPaste","never"])}}}),parameterHints:V(new class extends u{constructor(){const e={enabled:!0,cycle:!0};super(86,"parameterHints",e,{"editor.parameterHints.enabled":{type:"boolean",default:e.enabled,description:l.NC("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:l.NC("parameterHints.cycle","Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),cycle:_(t.cycle,this.defaultValue.cycle)}}}),peekWidgetDefaultFocus:V(new k(87,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[l.NC("peekWidgetDefaultFocus.tree","Focus the tree when opening peek"),l.NC("peekWidgetDefaultFocus.editor","Focus the editor when opening peek")],description:l.NC("peekWidgetDefaultFocus","Controls whether to focus the inline editor or the tree in the peek widget.")})),definitionLinkOpensInPeek:V(new v(88,"definitionLinkOpensInPeek",!1,{description:l.NC("definitionLinkOpensInPeek","Controls whether the Go to Definition mouse gesture always opens the peek widget.")})),quickSuggestions:V(new class extends u{constructor(){const e={other:"on",comments:"off",strings:"off"},t=[{type:"boolean"},{type:"string",enum:["on","inline","off"],enumDescriptions:[l.NC("on","Quick suggestions show inside the suggest widget"),l.NC("inline","Quick suggestions show as ghost text"),l.NC("off","Quick suggestions are disabled")]}];super(89,"quickSuggestions",e,{type:"object",additionalProperties:!1,properties:{strings:{anyOf:t,default:e.strings,description:l.NC("quickSuggestions.strings","Enable quick suggestions inside strings.")},comments:{anyOf:t,default:e.comments,description:l.NC("quickSuggestions.comments","Enable quick suggestions inside comments.")},other:{anyOf:t,default:e.other,description:l.NC("quickSuggestions.other","Enable quick suggestions outside of strings and comments.")}},default:e,markdownDescription:l.NC("quickSuggestions","Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the '{0}'-setting which controls if suggestions are triggered by special characters.","#editor.suggestOnTriggerCharacters#")}),this.defaultValue=e}validate(e){if("boolean"===typeof e){const t=e?"on":"off";return{comments:t,strings:t,other:t}}if(!e||"object"!==typeof e)return this.defaultValue;const{other:t,comments:i,strings:n}=e,o=["on","inline","off"];let s,r,a;return s="boolean"===typeof t?t?"on":"off":L(t,this.defaultValue.other,o),r="boolean"===typeof i?i?"on":"off":L(i,this.defaultValue.comments,o),a="boolean"===typeof n?n?"on":"off":L(n,this.defaultValue.strings,o),{other:s,comments:r,strings:a}}}),quickSuggestionsDelay:V(new C(90,"quickSuggestionsDelay",10,0,1073741824,{description:l.NC("quickSuggestionsDelay","Controls the delay in milliseconds after which quick suggestions will show up.")})),readOnly:V(new v(91,"readOnly",!1)),readOnlyMessage:V(new class extends u{constructor(){super(92,"readOnlyMessage",undefined)}validate(e){return e&&"object"===typeof e?e:this.defaultValue}}),renameOnType:V(new v(93,"renameOnType",!1,{description:l.NC("renameOnType","Controls whether the editor auto renames on type."),markdownDeprecationMessage:l.NC("renameOnTypeDeprecate","Deprecated, use `editor.linkedEditing` instead.")})),renderControlCharacters:V(new v(94,"renderControlCharacters",!0,{description:l.NC("renderControlCharacters","Controls whether the editor should render control characters."),restricted:!0})),renderFinalNewline:V(new k(95,"renderFinalNewline",s.IJ?"dimmed":"on",["off","on","dimmed"],{description:l.NC("renderFinalNewline","Render last line number when the file ends with a newline.")})),renderLineHighlight:V(new k(96,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",l.NC("renderLineHighlight.all","Highlights both the gutter and the current line.")],description:l.NC("renderLineHighlight","Controls how the editor should render the current line highlight.")})),renderLineHighlightOnlyWhenFocus:V(new v(97,"renderLineHighlightOnlyWhenFocus",!1,{description:l.NC("renderLineHighlightOnlyWhenFocus","Controls if the editor should render the current line highlight only when the editor is focused.")})),renderValidationDecorations:V(new k(98,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:V(new k(99,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",l.NC("renderWhitespace.boundary","Render whitespace characters except for single spaces between words."),l.NC("renderWhitespace.selection","Render whitespace characters only on selected text."),l.NC("renderWhitespace.trailing","Render only trailing whitespace characters."),""],description:l.NC("renderWhitespace","Controls how the editor should render whitespace characters.")})),revealHorizontalRightPadding:V(new C(100,"revealHorizontalRightPadding",15,0,1e3)),roundedSelection:V(new v(101,"roundedSelection",!0,{description:l.NC("roundedSelection","Controls whether selections should have rounded corners.")})),rulers:V(new class extends u{constructor(){const e=[],t={type:"number",description:l.NC("rulers.size","Number of monospace characters at which this editor ruler will render.")};super(102,"rulers",e,{type:"array",items:{anyOf:[t,{type:["object"],properties:{column:t,color:{type:"string",description:l.NC("rulers.color","Color of this editor ruler."),format:"color-hex"}}}]},default:e,description:l.NC("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.")})}validate(e){if(Array.isArray(e)){const t=[];for(const i of e)if("number"===typeof i)t.push({column:C.clampedInt(i,0,0,1e4),color:null});else if(i&&"object"===typeof i){const e=i;t.push({column:C.clampedInt(e.column,0,0,1e4),color:e.color})}return t.sort(((e,t)=>e.column-t.column)),t}return this.defaultValue}}),scrollbar:V(new class extends u{constructor(){const e={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,ignoreHorizontalScrollbarInContentHeight:!1};super(103,"scrollbar",e,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[l.NC("scrollbar.vertical.auto","The vertical scrollbar will be visible only when necessary."),l.NC("scrollbar.vertical.visible","The vertical scrollbar will always be visible."),l.NC("scrollbar.vertical.fit","The vertical scrollbar will always be hidden.")],default:"auto",description:l.NC("scrollbar.vertical","Controls the visibility of the vertical scrollbar.")},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[l.NC("scrollbar.horizontal.auto","The horizontal scrollbar will be visible only when necessary."),l.NC("scrollbar.horizontal.visible","The horizontal scrollbar will always be visible."),l.NC("scrollbar.horizontal.fit","The horizontal scrollbar will always be hidden.")],default:"auto",description:l.NC("scrollbar.horizontal","Controls the visibility of the horizontal scrollbar.")},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:e.verticalScrollbarSize,description:l.NC("scrollbar.verticalScrollbarSize","The width of the vertical scrollbar.")},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:e.horizontalScrollbarSize,description:l.NC("scrollbar.horizontalScrollbarSize","The height of the horizontal scrollbar.")},"editor.scrollbar.scrollByPage":{type:"boolean",default:e.scrollByPage,description:l.NC("scrollbar.scrollByPage","Controls whether clicks scroll by page or jump to click position.")},"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight":{type:"boolean",default:e.ignoreHorizontalScrollbarInContentHeight,description:l.NC("scrollbar.ignoreHorizontalScrollbarInContentHeight","When set, the horizontal scrollbar will not increase the size of the editor's content.")}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e,i=C.clampedInt(t.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),n=C.clampedInt(t.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:C.clampedInt(t.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:R(t.vertical,this.defaultValue.vertical),horizontal:R(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:i,horizontalSliderSize:C.clampedInt(t.horizontalSliderSize,i,0,1e3),verticalScrollbarSize:n,verticalSliderSize:C.clampedInt(t.verticalSliderSize,n,0,1e3),scrollByPage:_(t.scrollByPage,this.defaultValue.scrollByPage),ignoreHorizontalScrollbarInContentHeight:_(t.ignoreHorizontalScrollbarInContentHeight,this.defaultValue.ignoreHorizontalScrollbarInContentHeight)}}}),scrollBeyondLastColumn:V(new C(104,"scrollBeyondLastColumn",4,0,1073741824,{description:l.NC("scrollBeyondLastColumn","Controls the number of extra characters beyond which the editor will scroll horizontally.")})),scrollBeyondLastLine:V(new v(105,"scrollBeyondLastLine",!0,{description:l.NC("scrollBeyondLastLine","Controls whether the editor will scroll beyond the last line.")})),scrollPredominantAxis:V(new v(106,"scrollPredominantAxis",!0,{description:l.NC("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:V(new v(107,"selectionClipboard",!0,{description:l.NC("selectionClipboard","Controls whether the Linux primary clipboard should be supported."),included:s.IJ})),selectionHighlight:V(new v(108,"selectionHighlight",!0,{description:l.NC("selectionHighlight","Controls whether the editor should highlight matches similar to the selection.")})),selectOnLineNumbers:V(new v(109,"selectOnLineNumbers",!0)),showFoldingControls:V(new k(110,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[l.NC("showFoldingControls.always","Always show the folding controls."),l.NC("showFoldingControls.never","Never show the folding controls and reduce the gutter size."),l.NC("showFoldingControls.mouseover","Only show the folding controls when the mouse is over the gutter.")],description:l.NC("showFoldingControls","Controls when the folding controls on the gutter are shown.")})),showUnused:V(new v(111,"showUnused",!0,{description:l.NC("showUnused","Controls fading out of unused code.")})),showDeprecated:V(new v(140,"showDeprecated",!0,{description:l.NC("showDeprecated","Controls strikethrough deprecated variables.")})),inlayHints:V(new class extends u{constructor(){const e={enabled:"on",fontSize:0,fontFamily:"",padding:!1};super(141,"inlayHints",e,{"editor.inlayHints.enabled":{type:"string",default:e.enabled,description:l.NC("inlayHints.enable","Enables the inlay hints in the editor."),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[l.NC("editor.inlayHints.on","Inlay hints are enabled"),l.NC("editor.inlayHints.onUnlessPressed","Inlay hints are showing by default and hide when holding {0}",s.dz?"Ctrl+Option":"Ctrl+Alt"),l.NC("editor.inlayHints.offUnlessPressed","Inlay hints are hidden by default and show when holding {0}",s.dz?"Ctrl+Option":"Ctrl+Alt"),l.NC("editor.inlayHints.off","Inlay hints are disabled")]},"editor.inlayHints.fontSize":{type:"number",default:e.fontSize,markdownDescription:l.NC("inlayHints.fontSize","Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.","`#editor.fontSize#`","`5`")},"editor.inlayHints.fontFamily":{type:"string",default:e.fontFamily,markdownDescription:l.NC("inlayHints.fontFamily","Controls font family of inlay hints in the editor. When set to empty, the {0} is used.","`#editor.fontFamily#`")},"editor.inlayHints.padding":{type:"boolean",default:e.padding,description:l.NC("inlayHints.padding","Enables the padding around the inlay hints in the editor.")}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e;return"boolean"===typeof t.enabled&&(t.enabled=t.enabled?"on":"off"),{enabled:L(t.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:C.clampedInt(t.fontSize,this.defaultValue.fontSize,0,100),fontFamily:S.string(t.fontFamily,this.defaultValue.fontFamily),padding:_(t.padding,this.defaultValue.padding)}}}),snippetSuggestions:V(new k(112,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[l.NC("snippetSuggestions.top","Show snippet suggestions on top of other suggestions."),l.NC("snippetSuggestions.bottom","Show snippet suggestions below other suggestions."),l.NC("snippetSuggestions.inline","Show snippets suggestions with other suggestions."),l.NC("snippetSuggestions.none","Do not show snippet suggestions.")],description:l.NC("snippetSuggestions","Controls whether snippets are shown with other suggestions and how they are sorted.")})),smartSelect:V(new class extends u{constructor(){super(113,"smartSelect",{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:l.NC("selectLeadingAndTrailingWhitespace","Whether leading and trailing whitespace should always be selected."),default:!0,type:"boolean"},"editor.smartSelect.selectSubwords":{description:l.NC("selectSubwords","Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected."),default:!0,type:"boolean"}})}validate(e){return e&&"object"===typeof e?{selectLeadingAndTrailingWhitespace:_(e.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace),selectSubwords:_(e.selectSubwords,this.defaultValue.selectSubwords)}:this.defaultValue}}),smoothScrolling:V(new v(114,"smoothScrolling",!1,{description:l.NC("smoothScrolling","Controls whether the editor will scroll using an animation.")})),stopRenderingLineAfter:V(new C(117,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:V(new class extends u{constructor(){const e={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!1,localityBonus:!1,shareSuggestSelections:!1,selectionMode:"always",showIcons:!0,showStatusBar:!1,preview:!1,previewMode:"subwordSmart",showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showDeprecated:!0,matchOnWordStartOnly:!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};super(118,"suggest",e,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[l.NC("suggest.insertMode.insert","Insert suggestion without overwriting text right of the cursor."),l.NC("suggest.insertMode.replace","Insert suggestion and overwrite text right of the cursor.")],default:e.insertMode,description:l.NC("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:l.NC("suggest.filterGraceful","Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.localityBonus":{type:"boolean",default:e.localityBonus,description:l.NC("suggest.localityBonus","Controls whether sorting favors words that appear close to the cursor.")},"editor.suggest.shareSuggestSelections":{type:"boolean",default:e.shareSuggestSelections,markdownDescription:l.NC("suggest.shareSuggestSelections","Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).")},"editor.suggest.selectionMode":{type:"string",enum:["always","never","whenTriggerCharacter","whenQuickSuggestion"],enumDescriptions:[l.NC("suggest.insertMode.always","Always select a suggestion when automatically triggering IntelliSense."),l.NC("suggest.insertMode.never","Never select a suggestion when automatically triggering IntelliSense."),l.NC("suggest.insertMode.whenTriggerCharacter","Select a suggestion only when triggering IntelliSense from a trigger character."),l.NC("suggest.insertMode.whenQuickSuggestion","Select a suggestion only when triggering IntelliSense as you type.")],default:e.selectionMode,markdownDescription:l.NC("suggest.selectionMode","Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions (`#editor.quickSuggestions#` and `#editor.suggestOnTriggerCharacters#`) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:e.snippetsPreventQuickSuggestions,description:l.NC("suggest.snippetsPreventQuickSuggestions","Controls whether an active snippet prevents quick suggestions.")},"editor.suggest.showIcons":{type:"boolean",default:e.showIcons,description:l.NC("suggest.showIcons","Controls whether to show or hide icons in suggestions.")},"editor.suggest.showStatusBar":{type:"boolean",default:e.showStatusBar,description:l.NC("suggest.showStatusBar","Controls the visibility of the status bar at the bottom of the suggest widget.")},"editor.suggest.preview":{type:"boolean",default:e.preview,description:l.NC("suggest.preview","Controls whether to preview the suggestion outcome in the editor.")},"editor.suggest.showInlineDetails":{type:"boolean",default:e.showInlineDetails,description:l.NC("suggest.showInlineDetails","Controls whether suggest details show inline with the label or only in the details widget.")},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:l.NC("suggest.maxVisibleSuggestions.dep","This setting is deprecated. The suggest widget can now be resized.")},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:l.NC("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:l.NC("editor.suggest.showMethods","When enabled IntelliSense shows `method`-suggestions.")},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showFunctions","When enabled IntelliSense shows `function`-suggestions.")},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showConstructors","When enabled IntelliSense shows `constructor`-suggestions.")},"editor.suggest.showDeprecated":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showDeprecated","When enabled IntelliSense shows `deprecated`-suggestions.")},"editor.suggest.matchOnWordStartOnly":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.matchOnWordStartOnly","When enabled IntelliSense filtering requires that the first character matches on a word start. For example, `c` on `Console` or `WebContext` but _not_ on `description`. When disabled IntelliSense will show more results but still sorts them by match quality.")},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showFields","When enabled IntelliSense shows `field`-suggestions.")},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showVariables","When enabled IntelliSense shows `variable`-suggestions.")},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showClasss","When enabled IntelliSense shows `class`-suggestions.")},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showStructs","When enabled IntelliSense shows `struct`-suggestions.")},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showInterfaces","When enabled IntelliSense shows `interface`-suggestions.")},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showModules","When enabled IntelliSense shows `module`-suggestions.")},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showPropertys","When enabled IntelliSense shows `property`-suggestions.")},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showEvents","When enabled IntelliSense shows `event`-suggestions.")},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showOperators","When enabled IntelliSense shows `operator`-suggestions.")},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showUnits","When enabled IntelliSense shows `unit`-suggestions.")},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showValues","When enabled IntelliSense shows `value`-suggestions.")},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showConstants","When enabled IntelliSense shows `constant`-suggestions.")},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showEnums","When enabled IntelliSense shows `enum`-suggestions.")},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showEnumMembers","When enabled IntelliSense shows `enumMember`-suggestions.")},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showKeywords","When enabled IntelliSense shows `keyword`-suggestions.")},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showTexts","When enabled IntelliSense shows `text`-suggestions.")},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showColors","When enabled IntelliSense shows `color`-suggestions.")},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showFiles","When enabled IntelliSense shows `file`-suggestions.")},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showReferences","When enabled IntelliSense shows `reference`-suggestions.")},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showCustomcolors","When enabled IntelliSense shows `customcolor`-suggestions.")},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showFolders","When enabled IntelliSense shows `folder`-suggestions.")},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showTypeParameters","When enabled IntelliSense shows `typeParameter`-suggestions.")},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showSnippets","When enabled IntelliSense shows `snippet`-suggestions.")},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showUsers","When enabled IntelliSense shows `user`-suggestions.")},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:l.NC("editor.suggest.showIssues","When enabled IntelliSense shows `issues`-suggestions.")}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e;return{insertMode:L(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),selectionMode:L(t.selectionMode,this.defaultValue.selectionMode,["always","never","whenQuickSuggestion","whenTriggerCharacter"]),showIcons:_(t.showIcons,this.defaultValue.showIcons),showStatusBar:_(t.showStatusBar,this.defaultValue.showStatusBar),preview:_(t.preview,this.defaultValue.preview),previewMode:L(t.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:_(t.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:_(t.showMethods,this.defaultValue.showMethods),showFunctions:_(t.showFunctions,this.defaultValue.showFunctions),showConstructors:_(t.showConstructors,this.defaultValue.showConstructors),showDeprecated:_(t.showDeprecated,this.defaultValue.showDeprecated),matchOnWordStartOnly:_(t.matchOnWordStartOnly,this.defaultValue.matchOnWordStartOnly),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)}}}),inlineSuggest:V(new class extends u{constructor(){const e={enabled:!0,mode:"subwordSmart",showToolbar:"onHover",suppressSuggestions:!1,keepOnBlur:!1,fontFamily:"default"};super(62,"inlineSuggest",e,{"editor.inlineSuggest.enabled":{type:"boolean",default:e.enabled,description:l.NC("inlineSuggest.enabled","Controls whether to automatically show inline suggestions in the editor.")},"editor.inlineSuggest.showToolbar":{type:"string",default:e.showToolbar,enum:["always","onHover","never"],enumDescriptions:[l.NC("inlineSuggest.showToolbar.always","Show the inline suggestion toolbar whenever an inline suggestion is shown."),l.NC("inlineSuggest.showToolbar.onHover","Show the inline suggestion toolbar when hovering over an inline suggestion."),l.NC("inlineSuggest.showToolbar.never","Never show the inline suggestion toolbar.")],description:l.NC("inlineSuggest.showToolbar","Controls when to show the inline suggestion toolbar.")},"editor.inlineSuggest.suppressSuggestions":{type:"boolean",default:e.suppressSuggestions,description:l.NC("inlineSuggest.suppressSuggestions","Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.")},"editor.inlineSuggest.fontFamily":{type:"string",default:e.fontFamily,description:l.NC("inlineSuggest.fontFamily","Controls the font family of the inline suggestions.")}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),mode:L(t.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"]),showToolbar:L(t.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),suppressSuggestions:_(t.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:_(t.keepOnBlur,this.defaultValue.keepOnBlur),fontFamily:S.string(t.fontFamily,this.defaultValue.fontFamily)}}}),inlineEdit:V(new class extends u{constructor(){const e={enabled:!1,showToolbar:"onHover",fontFamily:"default",keepOnBlur:!1,backgroundColoring:!1};super(63,"experimentalInlineEdit",e,{"editor.experimentalInlineEdit.enabled":{type:"boolean",default:e.enabled,description:l.NC("inlineEdit.enabled","Controls whether to show inline edits in the editor.")},"editor.experimentalInlineEdit.showToolbar":{type:"string",default:e.showToolbar,enum:["always","onHover","never"],enumDescriptions:[l.NC("inlineEdit.showToolbar.always","Show the inline edit toolbar whenever an inline suggestion is shown."),l.NC("inlineEdit.showToolbar.onHover","Show the inline edit toolbar when hovering over an inline suggestion."),l.NC("inlineEdit.showToolbar.never","Never show the inline edit toolbar.")],description:l.NC("inlineEdit.showToolbar","Controls when to show the inline edit toolbar.")},"editor.experimentalInlineEdit.fontFamily":{type:"string",default:e.fontFamily,description:l.NC("inlineEdit.fontFamily","Controls the font family of the inline edit.")},"editor.experimentalInlineEdit.backgroundColoring":{type:"boolean",default:e.backgroundColoring,description:l.NC("inlineEdit.backgroundColoring","Controls whether to color the background of inline edits.")}})}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e;return{enabled:_(t.enabled,this.defaultValue.enabled),showToolbar:L(t.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),fontFamily:S.string(t.fontFamily,this.defaultValue.fontFamily),keepOnBlur:_(t.keepOnBlur,this.defaultValue.keepOnBlur),backgroundColoring:_(t.backgroundColoring,this.defaultValue.backgroundColoring)}}}),inlineCompletionsAccessibilityVerbose:V(new v(149,"inlineCompletionsAccessibilityVerbose",!1,{description:l.NC("inlineCompletionsAccessibilityVerbose","Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.")})),suggestFontSize:V(new C(119,"suggestFontSize",0,0,1e3,{markdownDescription:l.NC("suggestFontSize","Font size for the suggest widget. When set to {0}, the value of {1} is used.","`0`","`#editor.fontSize#`")})),suggestLineHeight:V(new C(120,"suggestLineHeight",0,0,1e3,{markdownDescription:l.NC("suggestLineHeight","Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.","`0`","`#editor.lineHeight#`")})),suggestOnTriggerCharacters:V(new v(121,"suggestOnTriggerCharacters",!0,{description:l.NC("suggestOnTriggerCharacters","Controls whether suggestions should automatically show up when typing trigger characters.")})),suggestSelection:V(new k(122,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[l.NC("suggestSelection.first","Always select the first suggestion."),l.NC("suggestSelection.recentlyUsed","Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."),l.NC("suggestSelection.recentlyUsedByPrefix","Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],description:l.NC("suggestSelection","Controls how suggestions are pre-selected when showing the suggest list.")})),tabCompletion:V(new k(123,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[l.NC("tabCompletion.on","Tab complete will insert the best matching suggestion when pressing tab."),l.NC("tabCompletion.off","Disable tab completions."),l.NC("tabCompletion.onlySnippets","Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")],description:l.NC("tabCompletion","Enables tab completions.")})),tabIndex:V(new C(124,"tabIndex",0,-1,1073741824)),unicodeHighlight:V(new class extends u{constructor(){const e={nonBasicASCII:O,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:O,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(125,"unicodeHighlight",e,{[P.nonBasicASCII]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,O],default:e.nonBasicASCII,description:l.NC("unicodeHighlight.nonBasicASCII","Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.")},[P.invisibleCharacters]:{restricted:!0,type:"boolean",default:e.invisibleCharacters,description:l.NC("unicodeHighlight.invisibleCharacters","Controls whether characters that just reserve space or have no width at all are highlighted.")},[P.ambiguousCharacters]:{restricted:!0,type:"boolean",default:e.ambiguousCharacters,description:l.NC("unicodeHighlight.ambiguousCharacters","Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.")},[P.includeComments]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,O],default:e.includeComments,description:l.NC("unicodeHighlight.includeComments","Controls whether characters in comments should also be subject to Unicode highlighting.")},[P.includeStrings]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,O],default:e.includeStrings,description:l.NC("unicodeHighlight.includeStrings","Controls whether characters in strings should also be subject to Unicode highlighting.")},[P.allowedCharacters]:{restricted:!0,type:"object",default:e.allowedCharacters,description:l.NC("unicodeHighlight.allowedCharacters","Defines allowed characters that are not being highlighted."),additionalProperties:{type:"boolean"}},[P.allowedLocales]:{restricted:!0,type:"object",additionalProperties:{type:"boolean"},default:e.allowedLocales,description:l.NC("unicodeHighlight.allowedLocales","Unicode characters that are common in allowed locales are not being highlighted.")}})}applyUpdate(e,t){let i=!1;t.allowedCharacters&&e&&(o.fS(e.allowedCharacters,t.allowedCharacters)||(e={...e,allowedCharacters:t.allowedCharacters},i=!0)),t.allowedLocales&&e&&(o.fS(e.allowedLocales,t.allowedLocales)||(e={...e,allowedLocales:t.allowedLocales},i=!0));const n=super.applyUpdate(e,t);return i?new g(n.newValue,!0):n}validate(e){if(!e||"object"!==typeof e)return this.defaultValue;const t=e;return{nonBasicASCII:F(t.nonBasicASCII,O,[!0,!1,O]),invisibleCharacters:_(t.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:_(t.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:F(t.includeComments,O,[!0,!1,O]),includeStrings:F(t.includeStrings,O,[!0,!1,O]),allowedCharacters:this.validateBooleanMap(e.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(e.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(e,t){if("object"!==typeof e||!e)return t;const i={};for(const[n,o]of Object.entries(e))!0===o&&(i[n]=!0);return i}}),unusualLineTerminators:V(new k(126,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[l.NC("unusualLineTerminators.auto","Unusual line terminators are automatically removed."),l.NC("unusualLineTerminators.off","Unusual line terminators are ignored."),l.NC("unusualLineTerminators.prompt","Unusual line terminators prompt to be removed.")],description:l.NC("unusualLineTerminators","Remove unusual line terminators that might cause problems.")})),useShadowDOM:V(new v(127,"useShadowDOM",!0)),useTabStops:V(new v(128,"useTabStops",!0,{description:l.NC("useTabStops","Spaces and tabs are inserted and deleted in alignment with tab stops.")})),wordBreak:V(new k(129,"wordBreak","normal",["normal","keepAll"],{markdownEnumDescriptions:[l.NC("wordBreak.normal","Use the default line break rule."),l.NC("wordBreak.keepAll","Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.")],description:l.NC("wordBreak","Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.")})),wordSegmenterLocales:V(new class extends u{constructor(){super(130,"wordSegmenterLocales",[],{anyOf:[{description:l.NC("wordSegmenterLocales","Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.)."),type:"string"},{description:l.NC("wordSegmenterLocales","Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.)."),type:"array",items:{type:"string"}}]})}validate(e){if("string"===typeof e&&(e=[e]),Array.isArray(e)){const i=[];for(const n of e)if("string"===typeof n)try{Intl.Segmenter.supportedLocalesOf(n).length>0&&i.push(n)}catch(t){}return i}return this.defaultValue}}),wordSeparators:V(new S(131,"wordSeparators",a.vu,{description:l.NC("wordSeparators","Characters that will be used as word separators when doing word related navigations or operations.")})),wordWrap:V(new k(132,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[l.NC("wordWrap.off","Lines will never wrap."),l.NC("wordWrap.on","Lines will wrap at the viewport width."),l.NC({key:"wordWrap.wordWrapColumn",comment:["- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Lines will wrap at `#editor.wordWrapColumn#`."),l.NC({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:l.NC({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:V(new S(133,"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:V(new S(134,"wordWrapBreakBeforeCharacters","([{\u2018\u201c\u3008\u300a\u300c\u300e\u3010\u3014\uff08\uff3b\uff5b\uff62\xa3\xa5\uff04\uffe1\uffe5+\uff0b")),wordWrapColumn:V(new C(135,"wordWrapColumn",80,1,1073741824,{markdownDescription:l.NC({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:V(new k(136,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:V(new k(137,"wordWrapOverride2","inherit",["off","on","inherit"])),editorClassName:V(new class extends f{constructor(){super(142)}compute(e,t,i){const n=["monaco-editor"];return t.get(39)&&n.push(t.get(39)),e.extraEditorClassName&&n.push(e.extraEditorClassName),"default"===t.get(74)?n.push("mouse-default"):"copy"===t.get(74)&&n.push("mouse-copy"),t.get(111)&&n.push("showUnused"),t.get(140)&&n.push("showDeprecated"),n.join(" ")}}),defaultColorDecorators:V(new v(147,"defaultColorDecorators",!1,{markdownDescription:l.NC("defaultColorDecorators","Controls whether inline color decorations should be shown using the default document color provider")})),pixelRatio:V(new class extends f{constructor(){super(143)}compute(e,t,i){return e.pixelRatio}}),tabFocusMode:V(new v(144,"tabFocusMode",!1,{markdownDescription:l.NC("tabFocusMode","Controls whether the editor receives tabs or defers them to the workbench for navigation.")})),layoutInfo:V(new M),wrappingInfo:V(new class extends f{constructor(){super(146)}compute(e,t,i){const n=t.get(145);return{isDominatedByLongLines:e.isDominatedByLongLines,isWordWrapMinified:n.isWordWrapMinified,isViewportWrapping:n.isViewportWrapping,wrappingColumn:n.wrappingColumn}}}),wrappingIndent:V(new class extends u{constructor(){super(138,"wrappingIndent",1,{"editor.wrappingIndent":{type:"string",enum:["none","same","indent","deepIndent"],enumDescriptions:[l.NC("wrappingIndent.none","No indentation. Wrapped lines begin at column 1."),l.NC("wrappingIndent.same","Wrapped lines get the same indentation as the parent."),l.NC("wrappingIndent.indent","Wrapped lines get +1 indentation toward the parent."),l.NC("wrappingIndent.deepIndent","Wrapped lines get +2 indentation toward the parent.")],description:l.NC("wrappingIndent","Controls the indentation of wrapped lines."),default:"same"}})}validate(e){switch(e){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}return 1}compute(e,t,i){return 2===t.get(2)?0:i}}),wrappingStrategy:V(new class extends u{constructor(){super(139,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[l.NC("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."),l.NC("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.")],type:"string",enum:["simple","advanced"],default:"simple",description:l.NC("wrappingStrategy","Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.")}})}validate(e){return L(e,"simple",["simple","advanced"])}compute(e,t,i){return 2===t.get(2)?"advanced":i}})}},15804:(e,t,i)=>{i.d(t,{C:()=>o});var n=i(24219);const o=new class{constructor(){this._zoomLevel=0,this._onDidChangeZoomLevel=new n.Q5,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}getZoomLevel(){return this._zoomLevel}setZoomLevel(e){e=Math.min(Math.max(-5,e),20),this._zoomLevel!==e&&(this._zoomLevel=e,this._onDidChangeZoomLevel.fire(this._zoomLevel))}}},64864:(e,t,i)=>{i.d(t,{E4:()=>a,pR:()=>l});var n=i(21511),o=i(38092),s=i(15804);const r=n.dz?1.5:1.35;class a{static createFromValidatedSettings(e,t,i){const n=e.get(49),o=e.get(53),s=e.get(52),r=e.get(51),l=e.get(54),h=e.get(67),d=e.get(64);return a._create(n,o,s,r,l,h,d,t,i)}static _create(e,t,i,n,l,h,d,c,u){0===h?h=r*i:h<8&&(h*=i),(h=Math.round(h))<8&&(h=8);const g=1+(u?0:.1*s.C.getZoomLevel());if(i*=g,h*=g,l===o.Bo.TRANSLATE)if("normal"===t||"bold"===t)l=o.Bo.OFF;else{const e=parseInt(t,10);l="'wght' ".concat(e),t="normal"}return new a({pixelRatio:c,fontFamily:e,fontWeight:t,fontSize:i,fontFeatureSettings:n,fontVariationSettings:l,lineHeight:h,letterSpacing:d})}constructor(e){this._bareFontInfoBrand=void 0,this.pixelRatio=e.pixelRatio,this.fontFamily=String(e.fontFamily),this.fontWeight=String(e.fontWeight),this.fontSize=e.fontSize,this.fontFeatureSettings=e.fontFeatureSettings,this.fontVariationSettings=e.fontVariationSettings,this.lineHeight=0|e.lineHeight,this.letterSpacing=e.letterSpacing}getId(){return"".concat(this.pixelRatio,"-").concat(this.fontFamily,"-").concat(this.fontWeight,"-").concat(this.fontSize,"-").concat(this.fontFeatureSettings,"-").concat(this.fontVariationSettings,"-").concat(this.lineHeight,"-").concat(this.letterSpacing)}getMassagedFontFamily(){const e=o.hL.fontFamily,t=a._wrapInQuotes(this.fontFamily);return e&&this.fontFamily!==e?"".concat(t,", ").concat(e):t}static _wrapInQuotes(e){return/[,"']/.test(e)?e:/[+ ]/.test(e)?'"'.concat(e,'"'):e}}class l extends a{constructor(e,t){super(e),this._editorStylingBrand=void 0,this.version=2,this.isTrusted=t,this.isMonospace=e.isMonospace,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}equals(e){return this.fontFamily===e.fontFamily&&this.fontWeight===e.fontWeight&&this.fontSize===e.fontSize&&this.fontFeatureSettings===e.fontFeatureSettings&&this.fontVariationSettings===e.fontVariationSettings&&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}}},89505:(e,t,i)=>{i.d(t,{N:()=>o,q:()=>s});var n=i(44918);class o{constructor(e){const t=(0,n.K)(e);this._defaultValue=t,this._asciiMap=o._createAsciiMap(t),this._map=new Map}static _createAsciiMap(e){const t=new Uint8Array(256);return t.fill(e),t}set(e,t){const i=(0,n.K)(t);e>=0&&e<256?this._asciiMap[e]=i:this._map.set(e,i)}get(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}}class s{constructor(){this._actual=new o(0)}add(e){this._actual.set(e,1)}has(e){return 1===this._actual.get(e)}clear(){return this._actual.clear()}}},5255:(e,t,i)=>{i.d(t,{i:()=>o});var n=i(25085);class o{static _nextVisibleColumn(e,t,i){return 9===e?o.nextRenderTabStop(t,i):n.K7(e)||n.C8(e)?t+2:t+1}static visibleColumnFromColumn(e,t,i){const o=Math.min(t-1,e.length),s=e.substring(0,o),r=new n.W1(s);let a=0;for(;!r.eol();){const e=n.ZH(s,o,r.offset);r.nextGraphemeLength(),a=this._nextVisibleColumn(e,a,i)}return a}static columnFromVisibleColumn(e,t,i){if(t<=0)return 1;const o=e.length,s=new n.W1(e);let r=0,a=1;for(;!s.eol();){const l=n.ZH(e,o,s.offset);s.nextGraphemeLength();const h=this._nextVisibleColumn(l,r,i),d=s.offset+1;if(h>=t){return h-t{i.d(t,{h:()=>o});var n=i(10670);class o{static insert(e,t){return{range:new n.e(e.lineNumber,e.column,e.lineNumber,e.column),text:t,forceMoveMarkers:!0}}static delete(e){return{range:e,text:null}}static replace(e,t){return{range:e,text:t}}static replaceMove(e,t){return{range:e,text:t,forceMoveMarkers:!0}}}},36729:(e,t,i)=>{i.d(t,{Bj:()=>M,CE:()=>K,DS:()=>Y,HV:()=>oe,H_:()=>w,Jn:()=>J,Kh:()=>a,L7:()=>ne,Mm:()=>l,N8:()=>x,P0:()=>m,Qb:()=>ee,Re:()=>z,Tf:()=>C,To:()=>ie,UP:()=>U,Vs:()=>H,Xy:()=>D,YF:()=>X,cK:()=>N,dI:()=>f,e9:()=>L,eS:()=>V,e_:()=>R,f9:()=>se,fY:()=>d,gS:()=>b,h1:()=>y,hw:()=>p,jD:()=>c,lK:()=>B,lS:()=>$,ll:()=>I,m$:()=>Z,m1:()=>q,m3:()=>te,m9:()=>F,n0:()=>h,oV:()=>Q,qe:()=>k,r0:()=>j,s2:()=>u,ts:()=>G,vP:()=>S,x_:()=>g,zJ:()=>W,zd:()=>E,zu:()=>O,zw:()=>A});var n=i(71721),o=i(89652),s=i(87701),r=i(17903);const a=(0,s.P6G)("editor.lineHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},n.NC("lineHighlight","Background color for the highlight of line at the cursor position.")),l=(0,s.P6G)("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hcDark:"#f38518",hcLight:s.lRK},n.NC("lineHighlightBorderBox","Background color for the border around the line at the cursor position.")),h=((0,s.P6G)("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hcDark:null,hcLight:null},n.NC("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),(0,s.P6G)("editor.rangeHighlightBorder",{dark:null,light:null,hcDark:s.xL1,hcLight:s.xL1},n.NC("rangeHighlightBorder","Background color of the border around highlighted ranges."),!0),(0,s.P6G)("editor.symbolHighlightBackground",{dark:s.MUv,light:s.MUv,hcDark:null,hcLight:null},n.NC("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),(0,s.P6G)("editor.symbolHighlightBorder",{dark:null,light:null,hcDark:s.xL1,hcLight:s.xL1},n.NC("symbolHighlightBorder","Background color of the border around highlighted symbols."),!0),(0,s.P6G)("editorCursor.foreground",{dark:"#AEAFAD",light:o.Il.black,hcDark:o.Il.white,hcLight:"#0F4A85"},n.NC("caret","Color of the editor cursor."))),d=(0,s.P6G)("editorCursor.background",null,n.NC("editorCursorBackground","The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.")),c=(0,s.P6G)("editorMultiCursor.primary.foreground",{dark:h,light:h,hcDark:h,hcLight:h},n.NC("editorMultiCursorPrimaryForeground","Color of the primary editor cursor when multiple cursors are present.")),u=(0,s.P6G)("editorMultiCursor.primary.background",{dark:d,light:d,hcDark:d,hcLight:d},n.NC("editorMultiCursorPrimaryBackground","The background color of the primary editor cursor when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.")),g=(0,s.P6G)("editorMultiCursor.secondary.foreground",{dark:h,light:h,hcDark:h,hcLight:h},n.NC("editorMultiCursorSecondaryForeground","Color of secondary editor cursors when multiple cursors are present.")),m=(0,s.P6G)("editorMultiCursor.secondary.background",{dark:d,light:d,hcDark:d,hcLight:d},n.NC("editorMultiCursorSecondaryBackground","The background color of secondary editor cursors when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.")),f=(0,s.P6G)("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hcDark:"#e3e4e229",hcLight:"#CCCCCC"},n.NC("editorWhitespaces","Color of whitespace characters in the editor.")),p=(0,s.P6G)("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hcDark:o.Il.white,hcLight:"#292929"},n.NC("editorLineNumbers","Color of editor line numbers.")),_=(0,s.P6G)("editorIndentGuide.background",{dark:f,light:f,hcDark:f,hcLight:f},n.NC("editorIndentGuides","Color of the editor indentation guides."),!1,n.NC("deprecatedEditorIndentGuides","'editorIndentGuide.background' is deprecated. Use 'editorIndentGuide.background1' instead.")),v=(0,s.P6G)("editorIndentGuide.activeBackground",{dark:f,light:f,hcDark:f,hcLight:f},n.NC("editorActiveIndentGuide","Color of the active editor indentation guides."),!1,n.NC("deprecatedEditorActiveIndentGuide","'editorIndentGuide.activeBackground' is deprecated. Use 'editorIndentGuide.activeBackground1' instead.")),b=(0,s.P6G)("editorIndentGuide.background1",{dark:_,light:_,hcDark:_,hcLight:_},n.NC("editorIndentGuides1","Color of the editor indentation guides (1).")),C=(0,s.P6G)("editorIndentGuide.background2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorIndentGuides2","Color of the editor indentation guides (2).")),w=(0,s.P6G)("editorIndentGuide.background3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorIndentGuides3","Color of the editor indentation guides (3).")),y=(0,s.P6G)("editorIndentGuide.background4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorIndentGuides4","Color of the editor indentation guides (4).")),S=(0,s.P6G)("editorIndentGuide.background5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorIndentGuides5","Color of the editor indentation guides (5).")),L=(0,s.P6G)("editorIndentGuide.background6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorIndentGuides6","Color of the editor indentation guides (6).")),k=(0,s.P6G)("editorIndentGuide.activeBackground1",{dark:v,light:v,hcDark:v,hcLight:v},n.NC("editorActiveIndentGuide1","Color of the active editor indentation guides (1).")),D=(0,s.P6G)("editorIndentGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorActiveIndentGuide2","Color of the active editor indentation guides (2).")),N=(0,s.P6G)("editorIndentGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorActiveIndentGuide3","Color of the active editor indentation guides (3).")),x=(0,s.P6G)("editorIndentGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorActiveIndentGuide4","Color of the active editor indentation guides (4).")),E=(0,s.P6G)("editorIndentGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorActiveIndentGuide5","Color of the active editor indentation guides (5).")),I=(0,s.P6G)("editorIndentGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorActiveIndentGuide6","Color of the active editor indentation guides (6).")),T=(0,s.P6G)("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hcDark:s.xL1,hcLight:s.xL1},n.NC("editorActiveLineNumber","Color of editor active line number"),!1,n.NC("deprecatedEditorActiveLineNumber","Id is deprecated. Use 'editorLineNumber.activeForeground' instead.")),M=((0,s.P6G)("editorLineNumber.activeForeground",{dark:T,light:T,hcDark:T,hcLight:T},n.NC("editorActiveLineNumber","Color of editor active line number")),(0,s.P6G)("editorLineNumber.dimmedForeground",{dark:null,light:null,hcDark:null,hcLight:null},n.NC("editorDimmedLineNumber","Color of the final editor line when editor.renderFinalNewline is set to dimmed."))),A=((0,s.P6G)("editorRuler.foreground",{dark:"#5A5A5A",light:o.Il.lightgrey,hcDark:o.Il.white,hcLight:"#292929"},n.NC("editorRuler","Color of the editor rulers.")),(0,s.P6G)("editorCodeLens.foreground",{dark:"#999999",light:"#919191",hcDark:"#999999",hcLight:"#292929"},n.NC("editorCodeLensForeground","Foreground color of editor CodeLens")),(0,s.P6G)("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hcDark:"#0064001a",hcLight:"#0000"},n.NC("editorBracketMatchBackground","Background color behind matching brackets")),(0,s.P6G)("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hcDark:s.lRK,hcLight:s.lRK},n.NC("editorBracketMatchBorder","Color for matching brackets boxes")),(0,s.P6G)("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hcDark:"#7f7f7f4d",hcLight:"#666666"},n.NC("editorOverviewRulerBorder","Color of the overview ruler border."))),R=(0,s.P6G)("editorOverviewRuler.background",null,n.NC("editorOverviewRulerBackground","Background color of the editor overview ruler.")),O=((0,s.P6G)("editorGutter.background",{dark:s.cvW,light:s.cvW,hcDark:s.cvW,hcLight:s.cvW},n.NC("editorGutter","Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.")),(0,s.P6G)("editorUnnecessaryCode.border",{dark:null,light:null,hcDark:o.Il.fromHex("#fff").transparent(.8),hcLight:s.lRK},n.NC("unnecessaryCodeBorder","Border color of unnecessary (unused) source code in the editor.")),(0,s.P6G)("editorUnnecessaryCode.opacity",{dark:o.Il.fromHex("#000a"),light:o.Il.fromHex("#0007"),hcDark:null,hcLight:null},n.NC("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."))),P=((0,s.P6G)("editorGhostText.border",{dark:null,light:null,hcDark:o.Il.fromHex("#fff").transparent(.8),hcLight:o.Il.fromHex("#292929").transparent(.8)},n.NC("editorGhostTextBorder","Border color of ghost text in the editor.")),(0,s.P6G)("editorGhostText.foreground",{dark:o.Il.fromHex("#ffffff56"),light:o.Il.fromHex("#0007"),hcDark:null,hcLight:null},n.NC("editorGhostTextForeground","Foreground color of the ghost text in the editor.")),(0,s.P6G)("editorGhostText.background",{dark:null,light:null,hcDark:null,hcLight:null},n.NC("editorGhostTextBackground","Background color of the ghost text in the editor.")),new o.Il(new o.VS(0,122,204,.6))),F=(0,s.P6G)("editorOverviewRuler.rangeHighlightForeground",{dark:P,light:P,hcDark:P,hcLight:P},n.NC("overviewRulerRangeHighlight","Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations."),!0),B=(0,s.P6G)("editorOverviewRuler.errorForeground",{dark:new o.Il(new o.VS(255,18,18,.7)),light:new o.Il(new o.VS(255,18,18,.7)),hcDark:new o.Il(new o.VS(255,50,50,1)),hcLight:"#B5200D"},n.NC("overviewRuleError","Overview ruler marker color for errors.")),z=(0,s.P6G)("editorOverviewRuler.warningForeground",{dark:s.uoC,light:s.uoC,hcDark:s.pW3,hcLight:s.pW3},n.NC("overviewRuleWarning","Overview ruler marker color for warnings.")),V=(0,s.P6G)("editorOverviewRuler.infoForeground",{dark:s.c63,light:s.c63,hcDark:s.T83,hcLight:s.T83},n.NC("overviewRuleInfo","Overview ruler marker color for infos.")),W=(0,s.P6G)("editorBracketHighlight.foreground1",{dark:"#FFD700",light:"#0431FAFF",hcDark:"#FFD700",hcLight:"#0431FAFF"},n.NC("editorBracketHighlightForeground1","Foreground color of brackets (1). Requires enabling bracket pair colorization.")),H=(0,s.P6G)("editorBracketHighlight.foreground2",{dark:"#DA70D6",light:"#319331FF",hcDark:"#DA70D6",hcLight:"#319331FF"},n.NC("editorBracketHighlightForeground2","Foreground color of brackets (2). Requires enabling bracket pair colorization.")),K=(0,s.P6G)("editorBracketHighlight.foreground3",{dark:"#179FFF",light:"#7B3814FF",hcDark:"#87CEFA",hcLight:"#7B3814FF"},n.NC("editorBracketHighlightForeground3","Foreground color of brackets (3). Requires enabling bracket pair colorization.")),U=(0,s.P6G)("editorBracketHighlight.foreground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketHighlightForeground4","Foreground color of brackets (4). Requires enabling bracket pair colorization.")),j=(0,s.P6G)("editorBracketHighlight.foreground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketHighlightForeground5","Foreground color of brackets (5). Requires enabling bracket pair colorization.")),q=(0,s.P6G)("editorBracketHighlight.foreground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketHighlightForeground6","Foreground color of brackets (6). Requires enabling bracket pair colorization.")),G=(0,s.P6G)("editorBracketHighlight.unexpectedBracket.foreground",{dark:new o.Il(new o.VS(255,18,18,.8)),light:new o.Il(new o.VS(255,18,18,.8)),hcDark:new o.Il(new o.VS(255,50,50,1)),hcLight:""},n.NC("editorBracketHighlightUnexpectedBracketForeground","Foreground color of unexpected brackets.")),Q=(0,s.P6G)("editorBracketPairGuide.background1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.background1","Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.")),Z=(0,s.P6G)("editorBracketPairGuide.background2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.background2","Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.")),Y=(0,s.P6G)("editorBracketPairGuide.background3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.background3","Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.")),$=(0,s.P6G)("editorBracketPairGuide.background4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.background4","Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.")),J=(0,s.P6G)("editorBracketPairGuide.background5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.background5","Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.")),X=(0,s.P6G)("editorBracketPairGuide.background6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.background6","Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.")),ee=(0,s.P6G)("editorBracketPairGuide.activeBackground1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.activeBackground1","Background color of active bracket pair guides (1). Requires enabling bracket pair guides.")),te=(0,s.P6G)("editorBracketPairGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.activeBackground2","Background color of active bracket pair guides (2). Requires enabling bracket pair guides.")),ie=(0,s.P6G)("editorBracketPairGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.activeBackground3","Background color of active bracket pair guides (3). Requires enabling bracket pair guides.")),ne=(0,s.P6G)("editorBracketPairGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.activeBackground4","Background color of active bracket pair guides (4). Requires enabling bracket pair guides.")),oe=(0,s.P6G)("editorBracketPairGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.activeBackground5","Background color of active bracket pair guides (5). Requires enabling bracket pair guides.")),se=(0,s.P6G)("editorBracketPairGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},n.NC("editorBracketPairGuide.activeBackground6","Background color of active bracket pair guides (6). Requires enabling bracket pair guides."));(0,s.P6G)("editorUnicodeHighlight.border",{dark:s.uoC,light:s.uoC,hcDark:s.uoC,hcLight:s.uoC},n.NC("editorUnicodeHighlight.border","Border color used to highlight unicode characters.")),(0,s.P6G)("editorUnicodeHighlight.background",{dark:s.gpD,light:s.gpD,hcDark:s.gpD,hcLight:s.gpD},n.NC("editorUnicodeHighlight.background","Background color used to highlight unicode characters."));(0,r.Ic)(((e,t)=>{const i=e.getColor(s.cvW),n=e.getColor(a),o=n&&!n.isTransparent()?n:i;o&&t.addRule(".monaco-editor .inputarea.ime-input { background-color: ".concat(o,"; }"))}))},55494:(e,t,i)=>{function n(e){let t=0,i=0,n=0,o=0;for(let s=0,r=e.length;sn})},48941:(e,t,i)=>{i.d(t,{x:()=>s});var n=i(25085),o=i(5255);function s(e,t,i){let s=n.LC(e);return-1===s&&(s=e.length),function(e,t,i){let n=0;for(let r=0;r{i.d(t,{i:()=>l,z:()=>a});var n=i(85108),o=i(57866),s=i(10670),r=i(52910);class a{static fromRangeInclusive(e){return new a(e.startLineNumber,e.endLineNumber+1)}static joinMany(e){if(0===e.length)return[];let t=new l(e[0].slice());for(let i=1;it)throw new n.he("startLineNumber ".concat(e," cannot be after endLineNumberExclusive ").concat(t));this.startLineNumber=e,this.endLineNumberExclusive=t}contains(e){return this.startLineNumber<=e&&e0&&void 0!==arguments[0]?arguments[0]:[];this._normalizedRanges=e}get ranges(){return this._normalizedRanges}addRange(e){if(0===e.length)return;const t=(0,r.J_)(this._normalizedRanges,(t=>t.endLineNumberExclusive>=e.startLineNumber)),i=(0,r.Jw)(this._normalizedRanges,(t=>t.startLineNumber<=e.endLineNumberExclusive))+1;if(t===i)this._normalizedRanges.splice(t,0,e);else if(t===i-1){const i=this._normalizedRanges[t];this._normalizedRanges[t]=i.join(e)}else{const n=this._normalizedRanges[t].join(this._normalizedRanges[i-1]).join(e);this._normalizedRanges.splice(t,i-t,n)}}contains(e){const t=(0,r.ti)(this._normalizedRanges,(t=>t.startLineNumber<=e));return!!t&&t.endLineNumberExclusive>e}intersects(e){const t=(0,r.ti)(this._normalizedRanges,(t=>t.startLineNumbere.startLineNumber}getUnion(e){if(0===this._normalizedRanges.length)return e;if(0===e._normalizedRanges.length)return this;const t=[];let i=0,n=0,o=null;for(;i=s.startLineNumber?o=new a(o.startLineNumber,Math.max(o.endLineNumberExclusive,s.endLineNumberExclusive)):(t.push(o),o=s)}return null!==o&&t.push(o),new l(t)}subtractFrom(e){const t=(0,r.J_)(this._normalizedRanges,(t=>t.endLineNumberExclusive>=e.startLineNumber)),i=(0,r.Jw)(this._normalizedRanges,(t=>t.startLineNumber<=e.endLineNumberExclusive))+1;if(t===i)return new l([e]);const n=[];let o=e.startLineNumber;for(let s=t;so&&n.push(new a(o,e.startLineNumber)),o=e.endLineNumberExclusive}return oe.toString())).join(", ")}getIntersection(e){const t=[];let i=0,n=0;for(;it.delta(e))))}}},57866:(e,t,i)=>{i.d(t,{M:()=>s,q:()=>o});var n=i(85108);class o{static addRange(e,t){let i=0;for(;it))return new o(e,t)}static ofLength(e){return new o(0,e)}static ofStartAndLength(e,t){return new o(e,e+t)}constructor(e,t){if(this.start=e,this.endExclusive=t,e>t)throw new n.he("Invalid range: ".concat(this.toString()))}get isEmpty(){return this.start===this.endExclusive}delta(e){return new o(this.start+e,this.endExclusive+e)}deltaStart(e){return new o(this.start+e,this.endExclusive)}deltaEnd(e){return new o(this.start,this.endExclusive+e)}get length(){return this.endExclusive-this.start}toString(){return"[".concat(this.start,", ").concat(this.endExclusive,")")}contains(e){return this.start<=e&&e=e.endExclusive}slice(e){return e.slice(this.start,this.endExclusive)}substring(e){return e.substring(this.start,this.endExclusive)}clip(e){if(this.isEmpty)throw new n.he("Invalid clipping range: ".concat(this.toString()));return Math.max(this.start,Math.min(this.endExclusive-1,e))}clipCyclic(e){if(this.isEmpty)throw new n.he("Invalid clipping range: ".concat(this.toString()));return e=this.endExclusive?this.start+(e-this.start)%this.length:e}forEach(e){for(let t=this.start;te.toString())).join(", ")}intersectsStrict(e){let t=0;for(;te+t.length),0)}}},2067:(e,t,i)=>{i.d(t,{L:()=>n});class n{constructor(e,t){this.lineNumber=e,this.column=t}with(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lineNumber,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.column;return e===this.lineNumber&&t===this.column?this:new n(e,t)}delta(){let 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)}equals(e){return n.equals(this,e)}static equals(e,t){return!e&&!t||!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}isBefore(e){return n.isBefore(this,e)}static isBefore(e,t){return e.lineNumber{i.d(t,{e:()=>o});var n=i(2067);class o{constructor(e,t,i,n){e>i||e===i&&t>n?(this.startLineNumber=i,this.startColumn=n,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=i,this.endColumn=n)}isEmpty(){return o.isEmpty(this)}static isEmpty(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}containsPosition(e){return o.containsPosition(this,e)}static containsPosition(e,t){return!(t.lineNumbere.endLineNumber)&&(!(t.lineNumber===e.startLineNumber&&t.columne.endColumn))}static strictContainsPosition(e,t){return!(t.lineNumbere.endLineNumber)&&(!(t.lineNumber===e.startLineNumber&&t.column<=e.startColumn)&&!(t.lineNumber===e.endLineNumber&&t.column>=e.endColumn))}containsRange(e){return o.containsRange(this,e)}static containsRange(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumne.endColumn)))}strictContainsRange(e){return o.strictContainsRange(this,e)}static strictContainsRange(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber)&&(!(t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn)&&!(t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)))}plusRange(e){return o.plusRange(this,e)}static plusRange(e,t){let i,n,s,r;return t.startLineNumbere.endLineNumber?(s=t.endLineNumber,r=t.endColumn):t.endLineNumber===e.endLineNumber?(s=t.endLineNumber,r=Math.max(t.endColumn,e.endColumn)):(s=e.endLineNumber,r=e.endColumn),new o(i,n,s,r)}intersectRanges(e){return o.intersectRanges(this,e)}static intersectRanges(e,t){let i=e.startLineNumber,n=e.startColumn,s=e.endLineNumber,r=e.endColumn;const a=t.startLineNumber,l=t.startColumn,h=t.endLineNumber,d=t.endColumn;return ih?(s=h,r=d):s===h&&(r=Math.min(r,d)),i>s||i===s&&n>r?null:new o(i,n,s,r)}equalsRange(e){return o.equalsRange(this,e)}static equalsRange(e,t){return!e&&!t||!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}getEndPosition(){return o.getEndPosition(this)}static getEndPosition(e){return new n.L(e.endLineNumber,e.endColumn)}getStartPosition(){return o.getStartPosition(this)}static getStartPosition(e){return new n.L(e.startLineNumber,e.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(e,t){return new o(this.startLineNumber,this.startColumn,e,t)}setStartPosition(e,t){return new o(e,t,this.endLineNumber,this.endColumn)}collapseToStart(){return o.collapseToStart(this)}static collapseToStart(e){return new o(e.startLineNumber,e.startColumn,e.startLineNumber,e.startColumn)}collapseToEnd(){return o.collapseToEnd(this)}static collapseToEnd(e){return new o(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn)}delta(e){return new o(this.startLineNumber+e,this.startColumn,this.endLineNumber+e,this.endColumn)}static fromPositions(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return new o(e.lineNumber,e.column,t.lineNumber,t.column)}static lift(e){return e?new o(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):null}static isIRange(e){return e&&"number"===typeof e.startLineNumber&&"number"===typeof e.startColumn&&"number"===typeof e.endLineNumber&&"number"===typeof e.endColumn}static areIntersectingOrTouching(e,t){return!(e.endLineNumbere.startLineNumber}toJSON(){return this}}},67078:(e,t,i)=>{i.d(t,{Y:()=>s});var n=i(2067),o=i(10670);class s extends o.e{constructor(e,t,i,n){super(e,t,i,n),this.selectionStartLineNumber=e,this.selectionStartColumn=t,this.positionLineNumber=i,this.positionColumn=n}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(e){return s.selectionsEqual(this,e)}static selectionsEqual(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(e,t){return 0===this.getDirection()?new s(this.startLineNumber,this.startColumn,e,t):new s(e,t,this.startLineNumber,this.startColumn)}getPosition(){return new n.L(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new n.L(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(e,t){return 0===this.getDirection()?new s(e,t,this.endLineNumber,this.endColumn):new s(this.endLineNumber,this.endColumn,e,t)}static fromPositions(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return new s(e.lineNumber,e.column,t.lineNumber,t.column)}static fromRange(e,t){return 0===t?new s(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):new s(e.endLineNumber,e.endColumn,e.startLineNumber,e.startColumn)}static liftSelection(e){return new s(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)}static selectionsArrEqual(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(let i=0,n=e.length;i{i.d(t,{HT:()=>u,kH:()=>c,oe:()=>d});var n=i(25085),o=i(21511),s=i(12966);let r,a,l;function h(){return r||(r=new TextDecoder("UTF-16LE")),r}function d(){return l||(l=o.r()?h():(a||(a=new TextDecoder("UTF-16BE")),a)),l}function c(e,t,i){const n=new Uint16Array(e.buffer,t,i);return i>0&&(65279===n[0]||65534===n[0])?function(e,t,i){const n=[];let o=0;for(let r=0;r=this._capacity)return this._flushBuffer(),void(this._completedStrings[this._completedStrings.length]=e);for(let i=0;i{i.d(t,{b:()=>a,q:()=>r});var n=i(12966),o=i(76071);function s(e){return e.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}class r{get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}constructor(e,t,i,n){this.oldPosition=e,this.oldText=t,this.newPosition=i,this.newText=n}toString(){return 0===this.oldText.length?"(insert@".concat(this.oldPosition,' "').concat(s(this.newText),'")'):0===this.newText.length?"(delete@".concat(this.oldPosition,' "').concat(s(this.oldText),'")'):"(replace@".concat(this.oldPosition,' "').concat(s(this.oldText),'" with "').concat(s(this.newText),'")')}static _writeStringSize(e){return 4+2*e.length}static _writeString(e,t,i){const o=t.length;n.T4(e,o,i),i+=4;for(let s=0;s{i.d(t,{MS:()=>g,At:()=>c,PY:()=>d});var n=i(39880),o=i(85108),s=i(2067),r=i(57866),a=i(59122);class l{constructor(e){this.text=e,this.lineStartOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let t=0;t(0,n.DM)(e,((e,t)=>e.range.getEndPosition().isBeforeOrEqual(t.range.getStartPosition())))))}apply(e){let t="",i=new s.L(1,1);for(const o of this.edits){const n=o.range,s=n.getStartPosition(),r=n.getEndPosition(),a=u(i,s);a.isEmpty()||(t+=e.getValueOfRange(a)),t+=o.text,i=r}const n=u(i,e.endPositionExclusive);return n.isEmpty()||(t+=e.getValueOfRange(n)),t}applyToString(e){const t=new m(e);return this.apply(t)}getNewRanges(){const e=[];let t=0,i=0,n=0;for(const o of this.edits){const r=a.A.ofText(o.text),l=s.L.lift({lineNumber:o.range.startLineNumber+i,column:o.range.startColumn+(o.range.startLineNumber===t?n:0)}),h=r.createRange(l);e.push(h),i=h.endLineNumber-o.range.endLineNumber,n=h.endColumn-o.range.endColumn,t=o.range.endLineNumber}return e}}class c{constructor(e,t){this.range=e,this.text=t}}function u(e,t){if(!e.isBeforeOrEqual(t))throw new o.he("start must be before end");return new h.e(e.lineNumber,e.column,t.lineNumber,t.column)}class g{get endPositionExclusive(){return this.length.addToPosition(new s.L(1,1))}}class m extends g{constructor(e){super(),this.value=e,this._t=new l(this.value)}getValueOfRange(e){return this._t.getOffsetRange(e).substring(this.value)}get length(){return this._t.textLength}}},59122:(e,t,i)=>{i.d(t,{A:()=>s});var n=i(2067),o=i(10670);class s{static ofText(e){let t=0,i=0;for(const n of e)"\n"===n?(t++,i=0):i++;return new s(t,i)}constructor(e,t){this.lineCount=e,this.columnCount=t}createRange(e){return 0===this.lineCount?new o.e(e.lineNumber,e.column,e.lineNumber,e.column+this.columnCount):new o.e(e.lineNumber,e.column,e.lineNumber+this.lineCount,this.columnCount+1)}addToPosition(e){return 0===this.lineCount?new n.L(e.lineNumber,e.column+this.columnCount):new n.L(e.lineNumber+this.lineCount,this.columnCount+1)}toString(){return"".concat(this.lineCount,",").concat(this.columnCount)}}s.zero=new s(0,0)},88975:(e,t,i)=>{i.d(t,{D:()=>n});const n={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}}},67055:(e,t,i)=>{i.d(t,{u:()=>a});var n=i(65549),o=i(89505);class s extends o.N{constructor(e,t){super(0),this._segmenter=null,this._cachedLine=null,this._cachedSegments=[],this.intlSegmenterLocales=t,this.intlSegmenterLocales.length>0?this._segmenter=new Intl.Segmenter(this.intlSegmenterLocales,{granularity:"word"}):this._segmenter=null;for(let i=0,n=e.length;it)break;i=n}return i}findNextIntlWordAtOrAfterOffset(e,t){for(const i of this._getIntlSegmenterWordsOnLine(e))if(!(i.index{i.d(t,{Af:()=>r,eq:()=>a,t2:()=>h,vu:()=>s});var n=i(36952),o=i(44713);const s="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";const r=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t="(-?\\d*\\.\\d\\w*)|([^";for(const i of s)e.indexOf(i)>=0||(t+="\\"+i);return t+="\\s]+)",new RegExp(t,"g")}();function a(e){let t=r;if(e&&e instanceof RegExp)if(e.global)t=e;else{let i="g";e.ignoreCase&&(i+="i"),e.multiline&&(i+="m"),e.unicode&&(i+="u"),t=new RegExp(e.source,i)}return t.lastIndex=0,t}const l=new o.S;function h(e,t,i,o,s){if(t=a(t),s||(s=n.$.first(l)),i.length>s.maxLen){let n=e-s.maxLen/2;return n<0?n=0:o+=n,h(e,t,i=i.substring(n,e+s.maxLen/2),o,s)}const r=Date.now(),c=e-1-o;let u=-1,g=null;for(let n=1;!(Date.now()-r>=s.timeBudget);n++){const e=c-s.windowSize*n;t.lastIndex=Math.max(0,e);const o=d(t,i,c,u);if(!o&&g)break;if(g=o,e<=0)break;u=e}if(g){const e={word:g[0],startColumn:o+1+g.index,endColumn:o+1+g.index+g[0].length};return t.lastIndex=0,e}return null}function d(e,t,i,n){let o;for(;o=e.exec(t);){const t=o.index||0;if(t<=i&&e.lastIndex>=i)return o;if(n>0&&t>n)return null}return null}l.unshift({maxLen:1e3,windowSize:15,timeBudget:150})},98083:(e,t,i)=>{i.d(t,{l:()=>o});var n=i(5255);class o{static whitespaceVisibleColumn(e,t,i){const o=e.length;let s=0,r=-1,a=-1;for(let l=0;l{i.d(t,{A:()=>d});var n=i(25085),o=i(27121),s=i(68170),r=i(5255),a=i(96939),l=i(10670),h=i(2067);class d{static deleteRight(e,t,i,n){const s=[];let r=3!==e;for(let h=0,d=n.length;h=c.length+1)return!1;const u=c.charAt(d.column-2),g=n.get(u);if(!g)return!1;if((0,s.LN)(u)){if("never"===i)return!1}else if("never"===t)return!1;const m=c.charAt(d.column-1);let f=!1;for(const e of g)e.open===u&&e.close===m&&(f=!0);if(!f)return!1;if("auto"===e){let e=!1;for(let t=0,i=a.length;t1){const e=t.getLineContent(o.lineNumber),s=n.LC(e),a=-1===s?e.length+1:s+1;if(o.column<=a){const e=i.visibleColumnFromColumn(t,o),n=r.i.prevIndentTabStop(e,i.indentSize),s=i.columnFromVisibleColumn(t,o.lineNumber,n);return new l.e(o.lineNumber,s,o.lineNumber,o.column)}}return l.e.fromPositions(d.getPositionAfterDeleteLeft(o,t),o)}static getPositionAfterDeleteLeft(e,t){if(e.column>1){const i=n.oH(e.column-1,t.getLineContent(e.lineNumber));return e.with(void 0,i+1)}if(e.lineNumber>1){const i=e.lineNumber-1;return new h.L(i,t.getLineMaxColumn(i))}return e}static cut(e,t,i){const n=[];let r=null;i.sort(((e,t)=>h.L.compare(e.getStartPosition(),t.getEndPosition())));for(let s=0,a=i.length;s1&&(null===r||void 0===r?void 0:r.endLineNumber)!==e.lineNumber?(i=e.lineNumber-1,h=t.getLineMaxColumn(e.lineNumber-1),d=e.lineNumber,c=t.getLineMaxColumn(e.lineNumber)):(i=e.lineNumber,h=1,d=e.lineNumber,c=t.getLineMaxColumn(e.lineNumber));const u=new l.e(i,h,d,c);r=u,u.isEmpty()?n[s]=null:n[s]=new o.T4(u,"")}else n[s]=null;else n[s]=new o.T4(a,"")}return new s.Tp(0,n,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}},82999:(e,t,i)=>{i.d(t,{N:()=>n,P:()=>d});var n,o=i(63686),s=i(68170),r=i(96939),a=i(78626),l=i(2067),h=i(10670);class d{static addCursorDown(e,t,i){const n=[];let o=0;for(let a=0,l=t.length;at&&(i=t,n=e.model.getLineMaxColumn(i)),s.Vi.fromModelState(new s.rS(new h.e(r.lineNumber,1,i,n),2,0,new l.L(i,n),0))}const d=t.modelState.selectionStart.getStartPosition().lineNumber;if(r.lineNumberd){const i=e.getLineCount();let n=a.lineNumber+1,o=1;return n>i&&(n=i,o=e.getLineMaxColumn(n)),s.Vi.fromViewState(t.viewState.move(!0,n,o,0))}{const e=t.modelState.selectionStart.getEndPosition();return s.Vi.fromModelState(t.modelState.move(!0,e.lineNumber,e.column,0))}}static word(e,t,i,n){const o=e.model.validatePosition(n);return s.Vi.fromModelState(a.w.word(e.cursorConfig,e.model,t.modelState,i,o))}static cancelSelection(e,t){if(!t.modelState.hasSelection())return new s.Vi(t.modelState,t.viewState);const i=t.viewState.position.lineNumber,n=t.viewState.position.column;return s.Vi.fromViewState(new s.rS(new h.e(i,n,i,n),0,0,new l.L(i,n),0))}static moveTo(e,t,i,n,o){if(i){if(1===t.modelState.selectionStartKind)return this.word(e,t,i,n);if(2===t.modelState.selectionStartKind)return this.line(e,t,i,n,o)}const r=e.model.validatePosition(n),a=o?e.coordinatesConverter.validateViewPosition(new l.L(o.lineNumber,o.column),r):e.coordinatesConverter.convertModelPositionToViewPosition(r);return s.Vi.fromViewState(t.viewState.move(i,a.lineNumber,a.column,0))}static simpleMove(e,t,i,n,o,a){switch(i){case 0:return 4===a?this._moveHalfLineLeft(e,t,n):this._moveLeft(e,t,n,o);case 1:return 4===a?this._moveHalfLineRight(e,t,n):this._moveRight(e,t,n,o);case 2:return 2===a?this._moveUpByViewLines(e,t,n,o):this._moveUpByModelLines(e,t,n,o);case 3:return 2===a?this._moveDownByViewLines(e,t,n,o):this._moveDownByModelLines(e,t,n,o);case 4:return 2===a?t.map((t=>s.Vi.fromViewState(r.o.moveToPrevBlankLine(e.cursorConfig,e,t.viewState,n)))):t.map((t=>s.Vi.fromModelState(r.o.moveToPrevBlankLine(e.cursorConfig,e.model,t.modelState,n))));case 5:return 2===a?t.map((t=>s.Vi.fromViewState(r.o.moveToNextBlankLine(e.cursorConfig,e,t.viewState,n)))):t.map((t=>s.Vi.fromModelState(r.o.moveToNextBlankLine(e.cursorConfig,e.model,t.modelState,n))));case 6:return this._moveToViewMinColumn(e,t,n);case 7:return this._moveToViewFirstNonWhitespaceColumn(e,t,n);case 8:return this._moveToViewCenterColumn(e,t,n);case 9:return this._moveToViewMaxColumn(e,t,n);case 10:return this._moveToViewLastNonWhitespaceColumn(e,t,n);default:return null}}static viewportMove(e,t,i,n,o){const s=e.getCompletelyVisibleViewRange(),r=e.coordinatesConverter.convertViewRangeToModelRange(s);switch(i){case 11:{const i=this._firstLineNumberInRange(e.model,r,o),s=e.model.getLineFirstNonWhitespaceColumn(i);return[this._moveToModelPosition(e,t[0],n,i,s)]}case 13:{const i=this._lastLineNumberInRange(e.model,r,o),s=e.model.getLineFirstNonWhitespaceColumn(i);return[this._moveToModelPosition(e,t[0],n,i,s)]}case 12:{const i=Math.round((r.startLineNumber+r.endLineNumber)/2),o=e.model.getLineFirstNonWhitespaceColumn(i);return[this._moveToModelPosition(e,t[0],n,i,o)]}case 14:{const i=[];for(let o=0,r=t.length;oi.endLineNumber-1?i.endLineNumber-1:os.Vi.fromViewState(r.o.moveLeft(e.cursorConfig,e,t.viewState,i,n))))}static _moveHalfLineLeft(e,t,i){const n=[];for(let o=0,a=t.length;os.Vi.fromViewState(r.o.moveRight(e.cursorConfig,e,t.viewState,i,n))))}static _moveHalfLineRight(e,t,i){const n=[];for(let o=0,a=t.length;o{i.d(t,{o:()=>d});var n=i(25085),o=i(5255),s=i(2067),r=i(10670),a=i(98083),l=i(68170);class h{constructor(e,t,i){this._cursorPositionBrand=void 0,this.lineNumber=e,this.column=t,this.leftoverVisibleColumns=i}}class d{static leftPosition(e,t){if(t.column>e.getLineMinColumn(t.lineNumber))return t.delta(void 0,-n.HO(e.getLineContent(t.lineNumber),t.column-1));if(t.lineNumber>1){const i=t.lineNumber-1;return new s.L(i,e.getLineMaxColumn(i))}return t}static leftPositionAtomicSoftTabs(e,t,i){if(t.column<=e.getLineIndentColumn(t.lineNumber)){const n=e.getLineMinColumn(t.lineNumber),o=e.getLineContent(t.lineNumber),r=a.l.atomicPosition(o,t.column-1,i,0);if(-1!==r&&r+1>=n)return new s.L(t.lineNumber,r+1)}return this.leftPosition(e,t)}static left(e,t,i){const n=e.stickyTabStops?d.leftPositionAtomicSoftTabs(t,i,e.tabSize):d.leftPosition(t,i);return new h(n.lineNumber,n.column,0)}static moveLeft(e,t,i,n,o){let s,r;if(i.hasSelection()&&!n)s=i.selection.startLineNumber,r=i.selection.startColumn;else{const n=i.position.delta(void 0,-(o-1)),a=t.normalizePosition(d.clipPositionColumn(n,t),0),l=d.left(e,t,a);s=l.lineNumber,r=l.column}return i.move(n,s,r,0)}static clipPositionColumn(e,t){return new s.L(e.lineNumber,d.clipRange(e.column,t.getLineMinColumn(e.lineNumber),t.getLineMaxColumn(e.lineNumber)))}static clipRange(e,t,i){return ei?i:e}static rightPosition(e,t,i){return iu?(i=u,n=l?t.getLineMaxColumn(i):Math.min(t.getLineMaxColumn(i),n)):n=e.columnFromVisibleColumn(t,i,c),r=f?0:c-o.i.visibleColumnFromColumn(t.getLineContent(i),n,e.tabSize),void 0!==d){const e=new s.L(i,n),o=t.normalizePosition(e,d);r+=n-o.column,i=o.lineNumber,n=o.column}return new h(i,n,r)}static down(e,t,i,n,o,s,r){return this.vertical(e,t,i,n,o,i+s,r,4)}static moveDown(e,t,i,n,o){let r,a;i.hasSelection()&&!n?(r=i.selection.endLineNumber,a=i.selection.endColumn):(r=i.position.lineNumber,a=i.position.column);let l,h=0;do{l=d.down(e,t,r+h,a,i.leftoverVisibleColumns,o,!0);if(t.normalizePosition(new s.L(l.lineNumber,l.column),2).lineNumber>r)break}while(h++<10&&r+h1&&this._isBlankLine(t,o);)o--;for(;o>1&&!this._isBlankLine(t,o);)o--;return i.move(n,o,t.getLineMinColumn(o),0)}static moveToNextBlankLine(e,t,i,n){const o=t.getLineCount();let s=i.position.lineNumber;for(;s{i.d(t,{Nu:()=>w,u6:()=>b,g_:()=>C});var n=i(85108),o=i(25085),s=i(27121),r=i(42443),a=i(10670),l=i(67078);class h{constructor(e,t,i){this._range=e,this._charBeforeSelection=t,this._charAfterSelection=i}getEditOperations(e,t){t.addTrackedEditOperation(new a.e(this._range.startLineNumber,this._range.startColumn,this._range.startLineNumber,this._range.startColumn),this._charBeforeSelection),t.addTrackedEditOperation(new a.e(this._range.endLineNumber,this._range.endColumn,this._range.endLineNumber,this._range.endColumn),this._charAfterSelection)}computeCursorState(e,t){const i=t.getInverseEditOperations(),n=i[0].range,o=i[1].range;return new l.Y(n.endLineNumber,n.endColumn,o.endLineNumber,o.endColumn-this._charAfterSelection.length)}}class d{constructor(e,t,i){this._position=e,this._text=t,this._charAfter=i}getEditOperations(e,t){t.addTrackedEditOperation(new a.e(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column),this._text+this._charAfter)}computeCursorState(e,t){const i=t.getInverseEditOperations()[0].range;return new l.Y(i.endLineNumber,i.startColumn,i.endLineNumber,i.endColumn-this._charAfter.length)}}var c=i(68170),u=i(67055),g=i(2067),m=i(10405),f=i(40801),p=i(78366),_=i(1761),v=i(16726);class b{static indent(e,t,i){if(null===t||null===i)return[];const n=[];for(let o=0,s=i.length;o1){let n;for(n=i-1;n>=1;n--){const e=t.getLineContent(n);if(o.ow(e)>=0)break}if(n<1)return null;const r=t.getLineMaxColumn(n),l=(0,v.A)(e.autoIndent,t,new a.e(n,r,n,r),e.languageConfigurationService);l&&(s=l.indentation+l.appendText)}return n&&(n===m.wU.Indent&&(s=b.shiftIndent(e,s)),n===m.wU.Outdent&&(s=b.unshiftIndent(e,s)),s=e.normalizeIndentation(s)),s||null}static _replaceJumpToNextIndent(e,t,i,n){let o="";const r=i.getStartPosition();if(e.insertSpaces){const i=e.visibleColumnFromColumn(t,r),n=e.indentSize,s=n-i%n;for(let e=0;ethis._compositionType(i,e,o,s,r,a)));return new c.Tp(4,l,{shouldPushStackElementBefore:S(e,4),shouldPushStackElementAfter:!1})}static _compositionType(e,t,i,n,o,r){if(!t.isEmpty())return null;const l=t.getPosition(),h=Math.max(1,l.column-n),d=Math.min(e.getLineMaxColumn(l.lineNumber),l.column+o),c=new a.e(l.lineNumber,h,l.lineNumber,d);return e.getValueInRange(c)===i&&0===r?null:new s.Uo(c,i,0,r)}static _typeCommand(e,t,i){return i?new s.Sj(e,t,!0):new s.T4(e,t,!0)}static _enter(e,t,i,n){if(0===e.autoIndent)return b._typeCommand(n,"\n",i);if(!t.tokenization.isCheapToTokenize(n.getStartPosition().lineNumber)||1===e.autoIndent){const s=t.getLineContent(n.startLineNumber),r=o.V8(s).substring(0,n.startColumn-1);return b._typeCommand(n,"\n"+e.normalizeIndentation(r),i)}const r=(0,v.A)(e.autoIndent,t,n,e.languageConfigurationService);if(r){if(r.indentAction===m.wU.None)return b._typeCommand(n,"\n"+e.normalizeIndentation(r.indentation+r.appendText),i);if(r.indentAction===m.wU.Indent)return b._typeCommand(n,"\n"+e.normalizeIndentation(r.indentation+r.appendText),i);if(r.indentAction===m.wU.IndentOutdent){const t=e.normalizeIndentation(r.indentation),o=e.normalizeIndentation(r.indentation+r.appendText),a="\n"+o+"\n"+t;return i?new s.Sj(n,a,!0):new s.Uo(n,a,-1,o.length-t.length,!0)}if(r.indentAction===m.wU.Outdent){const t=b.unshiftIndent(e,r.indentation);return b._typeCommand(n,"\n"+e.normalizeIndentation(t+r.appendText),i)}}const a=t.getLineContent(n.startLineNumber),l=o.V8(a).substring(0,n.startColumn-1);if(e.autoIndent>=4){const r=(0,_.UF)(e.autoIndent,t,n,{unshiftIndent:t=>b.unshiftIndent(e,t),shiftIndent:t=>b.shiftIndent(e,t),normalizeIndentation:t=>e.normalizeIndentation(t)},e.languageConfigurationService);if(r){let a=e.visibleColumnFromColumn(t,n.getEndPosition());const l=n.endColumn,h=t.getLineContent(n.endLineNumber),d=o.LC(h);if(n=d>=0?n.setEndPosition(n.endLineNumber,Math.max(n.endColumn,d+1)):n.setEndPosition(n.endLineNumber,t.getLineMaxColumn(n.endLineNumber)),i)return new s.Sj(n,"\n"+e.normalizeIndentation(r.afterEnter),!0);{let t=0;return l<=d+1&&(e.insertSpaces||(a=Math.ceil(a/e.indentSize)),t=Math.min(a+1-e.normalizeIndentation(r.afterEnter).length-1,0)),new s.Uo(n,"\n"+e.normalizeIndentation(r.afterEnter),0,t,!0)}}}return b._typeCommand(n,"\n"+e.normalizeIndentation(l),i)}static _isAutoIndentType(e,t,i){if(e.autoIndent<4)return!1;for(let n=0,o=i.length;nb.shiftIndent(e,t),unshiftIndent:t=>b.unshiftIndent(e,t)},e.languageConfigurationService);if(null===s)return null;if(s!==e.normalizeIndentation(o)){const o=t.getLineFirstNonWhitespaceColumn(i.startLineNumber);return 0===o?b._typeCommand(new a.e(i.startLineNumber,1,i.endLineNumber,i.endColumn),e.normalizeIndentation(s)+n,!1):b._typeCommand(new a.e(i.startLineNumber,1,i.endLineNumber,i.endColumn),e.normalizeIndentation(s)+t.getLineContent(i.startLineNumber).substring(o-1,i.startColumn-1)+n,!1)}return null}static _isAutoClosingOvertype(e,t,i,n,o){if("never"===e.autoClosingOvertype)return!1;if(!e.autoClosingPairs.autoClosingPairsCloseSingleChar.has(o))return!1;for(let s=0,r=i.length;s2?l.charCodeAt(a.column-2):0)&&h)return!1;if("auto"===e.autoClosingOvertype){let e=!1;for(let t=0,i=n.length;tt.startsWith(e.open))),r=o.some((e=>t.startsWith(e.close)));return!s&&r}static _findAutoClosingPairOpen(e,t,i,n){const o=e.autoClosingPairs.autoClosingPairsOpenByEnd.get(n);if(!o)return null;let s=null;for(const r of o)if(null===s||r.open.length>s.open.length){let e=!0;for(const o of i){if(t.getValueInRange(new a.e(o.lineNumber,o.column-r.open.length+1,o.lineNumber,o.column))+n!==r.open){e=!1;break}}e&&(s=r)}return s}static _findContainedAutoClosingPair(e,t){if(t.open.length<=1)return null;const i=t.close.charAt(t.close.length-1),n=e.autoClosingPairs.autoClosingPairsCloseByEnd.get(i)||[];let o=null;for(const s of n)s.open!==t.open&&t.open.includes(s.open)&&t.close.endsWith(s.close)&&(!o||s.open.length>o.open.length)&&(o=s);return o}static _getAutoClosingPairClose(e,t,i,n,o){for(const c of i)if(!c.isEmpty())return null;const s=i.map((e=>{const t=e.getPosition();return o?{lineNumber:t.lineNumber,beforeColumn:t.column-n.length,afterColumn:t.column}:{lineNumber:t.lineNumber,beforeColumn:t.column,afterColumn:t.column}})),r=this._findAutoClosingPairOpen(e,t,s.map((e=>new g.L(e.lineNumber,e.beforeColumn))),n);if(!r)return null;let a,l;if((0,c.LN)(n))a=e.autoClosingQuotes,l=e.shouldAutoCloseBefore.quote;else{!!e.blockCommentStartToken&&r.open.includes(e.blockCommentStartToken)?(a=e.autoClosingComments,l=e.shouldAutoCloseBefore.comment):(a=e.autoClosingBrackets,l=e.shouldAutoCloseBefore.bracket)}if("never"===a)return null;const h=this._findContainedAutoClosingPair(e,r),d=h?h.close:"";let m=!0;for(const c of s){const{lineNumber:i,beforeColumn:o,afterColumn:s}=c,h=t.getLineContent(i),g=h.substring(0,o-1),f=h.substring(s-1);if(f.startsWith(d)||(m=!1),f.length>0){const t=f.charAt(0);if(!b._isBeforeClosingBrace(e,f)&&!l(t))return null}if(1===r.open.length&&("'"===n||'"'===n)&&"always"!==a){const t=(0,u.u)(e.wordSeparators,[]);if(g.length>0){const e=g.charCodeAt(g.length-1);if(0===t.get(e))return null}}if(!t.tokenization.isCheapToTokenize(i))return null;t.tokenization.forceTokenization(i);const _=t.tokenization.getLineTokens(i),v=(0,p.wH)(_,o-1);if(!r.shouldAutoClose(v,o-v.firstCharOffset))return null;const C=r.findNeutralCharacter();if(C){const e=t.tokenization.getTokenTypeIfInsertingCharacter(i,o,C);if(!r.isOK(e))return null}}return m?r.close.substring(0,r.close.length-d.length):r.close}static _runAutoClosingOpenCharType(e,t,i,n,o,s,r){const a=[];for(let l=0,h=n.length;lnew s.T4(new a.e(e.positionLineNumber,e.positionColumn,e.positionLineNumber,e.positionColumn+1),"",!1)));return new c.Tp(4,e,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}const g=this._getAutoClosingPairClose(t,i,o,h,!0);return null!==g?this._runAutoClosingOpenCharType(e,t,i,o,h,!0,g):null}static typeWithInterceptors(e,t,i,n,o,r,a){if(!e&&"\n"===a){const e=[];for(let t=0,s=o.length;t{i.d(t,{L:()=>d,w:()=>h});var n=i(25085),o=i(68170),s=i(51521),r=i(67055),a=i(2067),l=i(10670);class h{static _createWord(e,t,i,n,o){return{start:n,end:o,wordType:t,nextCharClass:i}}static _createIntlWord(e,t){return{start:e.index,end:e.index+e.segment.length,wordType:1,nextCharClass:t}}static _findPreviousWordOnLine(e,t,i){const n=t.getLineContent(i.lineNumber);return this._doFindPreviousWordOnLine(n,e,i)}static _doFindPreviousWordOnLine(e,t,i){let n=0;const o=t.findPrevIntlWordBeforeOrAtOffset(e,i.column-2);for(let s=i.column-2;s>=0;s--){const i=e.charCodeAt(s),r=t.get(i);if(o&&s===o.index)return this._createIntlWord(o,r);if(0===r){if(2===n)return this._createWord(e,n,r,s+1,this._findEndOfWord(e,t,n,s+1));n=1}else if(2===r){if(1===n)return this._createWord(e,n,r,s+1,this._findEndOfWord(e,t,n,s+1));n=2}else if(1===r&&0!==n)return this._createWord(e,n,r,s+1,this._findEndOfWord(e,t,n,s+1))}return 0!==n?this._createWord(e,n,1,0,this._findEndOfWord(e,t,n,0)):null}static _findEndOfWord(e,t,i,n){const o=t.findNextIntlWordAtOrAfterOffset(e,n),s=e.length;for(let r=n;r=0;s--){const n=e.charCodeAt(s),r=t.get(n);if(o&&s===o.index)return s;if(1===r)return s+1;if(1===i&&2===r)return s+1;if(2===i&&0===r)return s+1}return 0}static moveWordLeft(e,t,i,n){let o=i.lineNumber,s=i.column;1===s&&o>1&&(o-=1,s=t.getLineMaxColumn(o));let r=h._findPreviousWordOnLine(e,t,new a.L(o,s));if(0===n)return new a.L(o,r?r.start+1:1);if(1===n)return r&&2===r.wordType&&r.end-r.start===1&&0===r.nextCharClass&&(r=h._findPreviousWordOnLine(e,t,new a.L(o,r.start+1))),new a.L(o,r?r.start+1:1);if(3===n){for(;r&&2===r.wordType;)r=h._findPreviousWordOnLine(e,t,new a.L(o,r.start+1));return new a.L(o,r?r.start+1:1)}return r&&s<=r.end+1&&(r=h._findPreviousWordOnLine(e,t,new a.L(o,r.start+1))),new a.L(o,r?r.end+1:1)}static _moveWordPartLeft(e,t){const i=t.lineNumber,o=e.getLineMaxColumn(i);if(1===t.column)return i>1?new a.L(i-1,e.getLineMaxColumn(i-1)):t;const s=e.getLineContent(i);for(let r=t.column-1;r>1;r--){const e=s.charCodeAt(r-2),t=s.charCodeAt(r-1);if(95===e&&95!==t)return new a.L(i,r);if(45===e&&45!==t)return new a.L(i,r);if((n.mK(e)||n.T5(e))&&n.df(t))return new a.L(i,r);if(n.df(e)&&n.df(t)&&r+1=l.start+1&&(l=h._findNextWordOnLine(e,t,new a.L(o,l.end+1))),s=l?l.start+1:t.getLineMaxColumn(o);return new a.L(o,s)}static _moveWordPartRight(e,t){const i=t.lineNumber,o=e.getLineMaxColumn(i);if(t.column===o)return i1?u=1:(c--,u=n.getLineMaxColumn(c)):(g&&u<=g.end+1&&(g=h._findPreviousWordOnLine(i,n,new a.L(c,g.start+1))),g?u=g.end+1:u>1?u=1:(c--,u=n.getLineMaxColumn(c))),new l.e(c,u,d.lineNumber,d.column)}static deleteInsideWord(e,t,i){if(!i.isEmpty())return i;const n=new a.L(i.positionLineNumber,i.positionColumn),o=this._deleteInsideWordWhitespace(t,n);return o||this._deleteInsideWordDetermineDeleteRange(e,t,n)}static _charAtIsWhitespace(e,t){const i=e.charCodeAt(t);return 32===i||9===i}static _deleteInsideWordWhitespace(e,t){const i=e.getLineContent(t.lineNumber),n=i.length;if(0===n)return null;let o=Math.max(t.column-2,0);if(!this._charAtIsWhitespace(i,o))return null;let s=Math.min(t.column-1,n-1);if(!this._charAtIsWhitespace(i,s))return null;for(;o>0&&this._charAtIsWhitespace(i,o-1);)o--;for(;s+11?new l.e(i.lineNumber-1,t.getLineMaxColumn(i.lineNumber-1),i.lineNumber,1):i.lineNumbere.start+1<=i.column&&i.column<=e.end+1,r=(e,t)=>(e=Math.min(e,i.column),t=Math.max(t,i.column),new l.e(i.lineNumber,e,i.lineNumber,t)),a=e=>{let t=e.start+1,i=e.end+1,s=!1;for(;i-11&&this._charAtIsWhitespace(n,t-2);)t--;return r(t,i)},d=h._findPreviousWordOnLine(e,t,i);if(d&&s(d))return a(d);const c=h._findNextWordOnLine(e,t,i);return c&&s(c)?a(c):d&&c?r(d.end+1,c.start+1):d?r(d.start+1,d.end+1):c?r(c.start+1,c.end+1):r(1,o+1)}static _deleteWordPartLeft(e,t){if(!t.isEmpty())return t;const i=t.getPosition(),n=h._moveWordPartLeft(e,i);return new l.e(i.lineNumber,i.column,n.lineNumber,n.column)}static _findFirstNonWhitespaceChar(e,t){const i=e.length;for(let n=t;n=m.start+1&&(m=h._findNextWordOnLine(i,n,new a.L(d,m.end+1))),m?c=m.start+1:cBoolean(e)))}},68170:(e,t,i)=>{i.d(t,{LM:()=>u,LN:()=>v,Tp:()=>_,Vi:()=>g,rS:()=>p});var n=i(2067),o=i(10670),s=i(67078),r=i(78366),a=i(5255),l=i(48941);const h=()=>!0,d=()=>!1,c=e=>" "===e||"\t"===e;class u{static shouldRecreate(e){return e.hasChanged(145)||e.hasChanged(131)||e.hasChanged(37)||e.hasChanged(77)||e.hasChanged(79)||e.hasChanged(80)||e.hasChanged(6)||e.hasChanged(7)||e.hasChanged(11)||e.hasChanged(9)||e.hasChanged(10)||e.hasChanged(14)||e.hasChanged(128)||e.hasChanged(50)||e.hasChanged(91)||e.hasChanged(130)}constructor(e,t,i,n){var o;this.languageConfigurationService=n,this._cursorMoveConfigurationBrand=void 0,this._languageId=e;const s=i.options,r=s.get(145),a=s.get(50);this.readOnly=s.get(91),this.tabSize=t.tabSize,this.indentSize=t.indentSize,this.insertSpaces=t.insertSpaces,this.stickyTabStops=s.get(116),this.lineHeight=a.lineHeight,this.typicalHalfwidthCharacterWidth=a.typicalHalfwidthCharacterWidth,this.pageSize=Math.max(1,Math.floor(r.height/this.lineHeight)-2),this.useTabStops=s.get(128),this.wordSeparators=s.get(131),this.emptySelectionClipboard=s.get(37),this.copyWithSyntaxHighlighting=s.get(25),this.multiCursorMergeOverlapping=s.get(77),this.multiCursorPaste=s.get(79),this.multiCursorLimit=s.get(80),this.autoClosingBrackets=s.get(6),this.autoClosingComments=s.get(7),this.autoClosingQuotes=s.get(11),this.autoClosingDelete=s.get(9),this.autoClosingOvertype=s.get(10),this.autoSurround=s.get(14),this.autoIndent=s.get(12),this.wordSegmenterLocales=s.get(130),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(e,this.autoClosingQuotes,!0),comment:this._getShouldAutoClose(e,this.autoClosingComments,!1),bracket:this._getShouldAutoClose(e,this.autoClosingBrackets,!1)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(e).getAutoClosingPairs();const l=this.languageConfigurationService.getLanguageConfiguration(e).getSurroundingPairs();if(l)for(const d of l)this.surroundingPairs[d.open]=d.close;const h=this.languageConfigurationService.getLanguageConfiguration(e).comments;this.blockCommentStartToken=null!==(o=null===h||void 0===h?void 0:h.blockCommentStartToken)&&void 0!==o?o:null}get electricChars(){var e;if(!this._electricChars){this._electricChars={};const t=null===(e=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter)||void 0===e?void 0:e.getElectricCharacters();if(t)for(const e of t)this._electricChars[e]=!0}return this._electricChars}onElectricCharacter(e,t,i){const n=(0,r.wH)(t,i-1),o=this.languageConfigurationService.getLanguageConfiguration(n.languageId).electricCharacter;return o?o.onElectricCharacter(e,n,i-n.firstCharOffset):null}normalizeIndentation(e){return(0,l.x)(e,this.indentSize,this.insertSpaces)}_getShouldAutoClose(e,t,i){switch(t){case"beforeWhitespace":return c;case"languageDefined":return this._getLanguageDefinedShouldAutoClose(e,i);case"always":return h;case"never":return d}}_getLanguageDefinedShouldAutoClose(e,t){const i=this.languageConfigurationService.getLanguageConfiguration(e).getAutoCloseBeforeSet(t);return e=>-1!==i.indexOf(e)}visibleColumnFromColumn(e,t){return a.i.visibleColumnFromColumn(e.getLineContent(t.lineNumber),t.column,this.tabSize)}columnFromVisibleColumn(e,t,i){const n=a.i.columnFromVisibleColumn(e.getLineContent(t),i,this.tabSize),o=e.getLineMinColumn(t);if(ns?s:n}}class g{static fromModelState(e){return new m(e)}static fromViewState(e){return new f(e)}static fromModelSelection(e){const t=s.Y.liftSelection(e),i=new p(o.e.fromPositions(t.getSelectionStart()),0,0,t.getPosition(),0);return g.fromModelState(i)}static fromModelSelections(e){const t=[];for(let i=0,n=e.length;i{i.d(t,{KU:()=>r,NT:()=>d,i8:()=>a,n0:()=>h,zl:()=>l});var n=i(75629),o=i(85108),s=i(57866);class r{static trivial(e,t){return new r([new a(s.q.ofLength(e.length),s.q.ofLength(t.length))],!1)}static trivialTimedOut(e,t){return new r([new a(s.q.ofLength(e.length),s.q.ofLength(t.length))],!0)}constructor(e,t){this.diffs=e,this.hitTimeout=t}}class a{static invert(e,t){const i=[];return(0,n.zy)(e,((e,n)=>{i.push(a.fromOffsetPairs(e?e.getEndExclusives():l.zero,n?n.getStarts():new l(t,(e?e.seq2Range.endExclusive-e.seq1Range.endExclusive:0)+t)))})),i}static fromOffsetPairs(e,t){return new a(new s.q(e.offset1,t.offset1),new s.q(e.offset2,t.offset2))}constructor(e,t){this.seq1Range=e,this.seq2Range=t}swap(){return new a(this.seq2Range,this.seq1Range)}toString(){return"".concat(this.seq1Range," <-> ").concat(this.seq2Range)}join(e){return new a(this.seq1Range.join(e.seq1Range),this.seq2Range.join(e.seq2Range))}delta(e){return 0===e?this:new a(this.seq1Range.delta(e),this.seq2Range.delta(e))}deltaStart(e){return 0===e?this:new a(this.seq1Range.deltaStart(e),this.seq2Range.deltaStart(e))}deltaEnd(e){return 0===e?this:new a(this.seq1Range.deltaEnd(e),this.seq2Range.deltaEnd(e))}intersect(e){const t=this.seq1Range.intersect(e.seq1Range),i=this.seq2Range.intersect(e.seq2Range);if(t&&i)return new a(t,i)}getStarts(){return new l(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new l(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}}class l{constructor(e,t){this.offset1=e,this.offset2=t}toString(){return"".concat(this.offset1," <-> ").concat(this.offset2)}delta(e){return 0===e?this:new l(this.offset1+e,this.offset2+e)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}}l.zero=new l(0,0),l.max=new l(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);class h{isValid(){return!0}}h.instance=new h;class d{constructor(e){if(this.timeout=e,this.startTime=Date.now(),this.valid=!0,e<=0)throw new o.he("timeout must be positive")}isValid(){return!(Date.now()-this.startTime{i.d(t,{DW:()=>M});var n=i(75629),o=i(39880),s=i(56590),r=i(57866),a=i(10670),l=i(26006);class h{constructor(e,t){this.width=e,this.height=t,this.array=[],this.array=new Array(e*t)}get(e,t){return this.array[e+t*this.width]}set(e,t,i){this.array[e+t*this.width]=i}}function d(e){return 32===e||9===e}class c{static getKey(e){let t=this.chrKeys.get(e);return void 0===t&&(t=this.chrKeys.size,this.chrKeys.set(e,t)),t}constructor(e,t,i){this.range=e,this.lines=t,this.source=i,this.histogram=[];let n=0;for(let o=e.startLineNumber-1;o2&&void 0!==arguments[2]?arguments[2]:l.n0.instance,n=arguments.length>3?arguments[3]:void 0;if(0===e.length||0===t.length)return l.KU.trivial(e,t);const o=new h(e.length,t.length),s=new h(e.length,t.length),a=new h(e.length,t.length);for(let r=0;r0&&h>0&&3===s.get(r-1,h-1)&&(u+=a.get(r-1,h-1)),u+=n?n(r,h):1):u=-1;const g=Math.max(d,c,u);if(g===u){const e=r>0&&h>0?a.get(r-1,h-1):0;a.set(r,h,e+1),s.set(r,h,3)}else g===d?(a.set(r,h,0),s.set(r,h,1)):g===c&&(a.set(r,h,0),s.set(r,h,2));o.set(r,h,g)}const d=[];let c=e.length,u=t.length;function g(e,t){e+1===c&&t+1===u||d.push(new l.i8(new r.q(e+1,c),new r.q(t+1,u))),c=e,u=t}let m=e.length-1,f=t.length-1;for(;m>=0&&f>=0;)3===s.get(m,f)?(g(m,f),m--,f--):1===s.get(m,f)?m--:f--;return g(-1,-1),d.reverse(),new l.KU(d,!1)}}class g{compute(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:l.n0.instance;if(0===e.length||0===t.length)return l.KU.trivial(e,t);const n=e,o=t;function s(e,t){for(;en.length||u>o.length)continue;const g=s(l,u);h.set(c,g);const f=l===r?d.get(c+1):d.get(c-1);if(d.set(c,g!==l?new m(f,l,u,g-l):f),h.get(c)===n.length&&h.get(c)-c===o.length)break e}}let u=d.get(c);const g=[];let _=n.length,v=o.length;for(;;){const e=u?u.x+u.length:0,t=u?u.y+u.length:0;if(e===_&&t===v||g.push(new l.i8(new r.q(e,_),new r.q(t,v))),!u)break;_=u.x,v=u.y,u=u.prev}return g.reverse(),new l.KU(g,!1)}}class m{constructor(e,t,i,n){this.prev=e,this.x=t,this.y=i,this.length=n}}class f{constructor(){this.positiveArr=new Int32Array(10),this.negativeArr=new Int32Array(10)}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){if(e<0){if((e=-e-1)>=this.negativeArr.length){const e=this.negativeArr;this.negativeArr=new Int32Array(2*e.length),this.negativeArr.set(e)}this.negativeArr[e]=t}else{if(e>=this.positiveArr.length){const e=this.positiveArr;this.positiveArr=new Int32Array(2*e.length),this.positiveArr.set(e)}this.positiveArr[e]=t}}}class p{constructor(){this.positiveArr=[],this.negativeArr=[]}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){e<0?(e=-e-1,this.negativeArr[e]=t):this.positiveArr[e]=t}}var _=i(94739),v=i(52910),b=i(65549),C=i(2067);class w{constructor(e,t,i){this.lines=e,this.considerWhitespaceChanges=i,this.elements=[],this.firstCharOffsetByLine=[],this.additionalOffsetByLine=[];let n=!1;t.start>0&&t.endExclusive>=e.length&&(t=new r.q(t.start-1,t.endExclusive),n=!0),this.lineRange=t,this.firstCharOffsetByLine[0]=0;for(let o=this.lineRange.start;oString.fromCharCode(e))).join("")}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){const t=k(e>0?this.elements[e-1]:-1),i=k(et<=e));return new C.L(this.lineRange.start+t+1,e-this.firstCharOffsetByLine[t]+this.additionalOffsetByLine[t]+1)}translateRange(e){return a.e.fromPositions(this.translateOffset(e.start),this.translateOffset(e.endExclusive))}findWordContaining(e){if(e<0||e>=this.elements.length)return;if(!y(this.elements[e]))return;let t=e;for(;t>0&&y(this.elements[t-1]);)t--;let i=e;for(;it<=e.start)))&&void 0!==t?t:0,o=null!==(i=(0,v.cn)(this.firstCharOffsetByLine,(t=>e.endExclusive<=t)))&&void 0!==i?i:this.elements.length;return new r.q(n,o)}}function y(e){return e>=97&&e<=122||e>=65&&e<=90||e>=48&&e<=57}const S={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function L(e){return S[e]}function k(e){return 10===e?8:13===e?7:d(e)?6:e>=97&&e<=122?0:e>=65&&e<=90?1:e>=48&&e<=57?2:-1===e?3:44===e||59===e?5:4}function D(e,t,i,o,r,a){let{moves:l,excludedChanges:h}=function(e,t,i,n){const o=[],s=e.filter((e=>e.modified.isEmpty&&e.original.length>=3)).map((e=>new c(e.original,t,e))),r=new Set(e.filter((e=>e.original.isEmpty&&e.modified.length>=3)).map((e=>new c(e.modified,i,e)))),a=new Set;for(const l of s){let e,t=-1;for(const i of r){const n=l.computeSimilarity(i);n>t&&(t=n,e=i)}if(t>.9&&e&&(r.delete(e),o.push(new _.f0(l.range,e.range)),a.add(l.source),a.add(e.source)),!n.isValid())return{moves:o,excludedChanges:a}}return{moves:o,excludedChanges:a}}(e,t,i,a);if(!a.isValid())return[];const d=function(e,t,i,o,r,a){const l=[],h=new b.ri;for(const n of e)for(let e=n.original.startLineNumber;ee.modified.startLineNumber),n.fv));for(const n of e){let e=[];for(let t=n.modified.startLineNumber;t{let{range:i}=t;for(const a of e)if(a.originalLineRange.endLineNumberExclusive+1===i.endLineNumberExclusive&&a.modifiedLineRange.endLineNumberExclusive+1===o.endLineNumberExclusive)return a.originalLineRange=new s.z(a.originalLineRange.startLineNumber,i.endLineNumberExclusive),a.modifiedLineRange=new s.z(a.modifiedLineRange.startLineNumber,o.endLineNumberExclusive),void r.push(a);const n={modifiedLineRange:o,originalLineRange:i};d.push(n),r.push(n)})),e=r}if(!a.isValid())return[]}d.sort((0,n.BV)((0,n.tT)((e=>e.modifiedLineRange.length),n.fv)));const c=new s.i,u=new s.i;for(const n of d){const e=n.modifiedLineRange.startLineNumber-n.originalLineRange.startLineNumber,t=c.subtractFrom(n.modifiedLineRange),i=u.subtractFrom(n.originalLineRange).getWithDelta(e),o=t.getIntersection(i);for(const n of o.ranges){if(n.length<3)continue;const t=n,i=n.delta(-e);l.push(new _.f0(i,t)),c.addRange(t),u.addRange(i)}}l.sort((0,n.tT)((e=>e.original.startLineNumber),n.fv));const g=new v.b1(e);for(let n=0;ne.original.startLineNumber<=t.original.startLineNumber)),h=(0,v.ti)(e,(e=>e.modified.startLineNumber<=t.modified.startLineNumber)),d=Math.max(t.original.startLineNumber-i.original.startLineNumber,t.modified.startLineNumber-h.modified.startLineNumber),m=g.findLastMonotonous((e=>e.original.startLineNumbere.modified.startLineNumbero.length||i>r.length)break;if(c.contains(i)||u.contains(e))break;if(!N(o[e-1],r[i-1],a))break}for(b>0&&(u.addRange(new s.z(t.original.startLineNumber-b,t.original.startLineNumber)),c.addRange(new s.z(t.modified.startLineNumber-b,t.modified.startLineNumber))),C=0;Co.length||i>r.length)break;if(c.contains(i)||u.contains(e))break;if(!N(o[e-1],r[i-1],a))break}C>0&&(u.addRange(new s.z(t.original.endLineNumberExclusive,t.original.endLineNumberExclusive+C)),c.addRange(new s.z(t.modified.endLineNumberExclusive,t.modified.endLineNumberExclusive+C))),(b>0||C>0)&&(l[n]=new _.f0(new s.z(t.original.startLineNumber-b,t.original.endLineNumberExclusive+C),new s.z(t.modified.startLineNumber-b,t.modified.endLineNumberExclusive+C)))}return l}(e.filter((e=>!h.has(e))),o,r,t,i,a);return(0,n.vA)(l,d),l=function(e){if(0===e.length)return e;e.sort((0,n.tT)((e=>e.original.startLineNumber),n.fv));const t=[e[0]];for(let i=1;i=0&&r>=0&&s+r<=2?t[t.length-1]=n.join(o):t.push(o)}return t}(l),l=l.filter((e=>{const i=e.original.toOffsetRange().slice(t).map((e=>e.trim()));return i.join("\n").length>=15&&function(e,t){let i=0;for(const n of e)t(n)&&i++;return i}(i,(e=>e.length>=2))>=2})),l=function(e,t){const i=new v.b1(e);return t=t.filter((t=>(i.findLastMonotonous((e=>e.original.startLineNumbere.modified.startLineNumber300&&t.length>300)return!1;const n=(new g).compute(new w([e],new r.q(0,1),!1),new w([t],new r.q(0,1),!1),i);let o=0;const s=l.i8.invert(n.diffs,e.length);for(const r of s)r.seq1Range.forEach((t=>{d(e.charCodeAt(t))||o++}));const a=function(t){let i=0;for(let n=0;nt.length?e:t);return o/a>.6&&a>10}var x=i(96025);class E{constructor(e,t){this.trimmedHash=e,this.lines=t}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){return 1e3-((0===e?0:I(this.lines[e-1]))+(e===this.lines.length?0:I(this.lines[e])))}getText(e){return this.lines.slice(e.start,e.endExclusive).join("\n")}isStronglyEqual(e,t){return this.lines[e]===this.lines[t]}}function I(e){let t=0;for(;te===t)))return new T.h([],[],!1);if(1===e.length&&0===e[0].length||1===t.length&&0===t[0].length)return new T.h([new _.gB(new s.z(1,e.length+1),new s.z(1,t.length+1),[new _.iy(new a.e(1,1,e.length,e[0].length+1),new a.e(1,1,t.length,t[0].length+1))])],[],!1);const h=0===i.maxComputationTimeMs?l.n0.instance:new l.NT(i.maxComputationTimeMs),d=!i.ignoreTrimWhitespace,c=new Map;function u(e){let t=c.get(e);return void 0===t&&(t=c.size,c.set(e,t)),t}const g=e.map((e=>u(e.trim()))),m=t.map((e=>u(e.trim()))),f=new E(g,e),p=new E(m,t),v=(()=>f.length+p.length<1700?this.dynamicProgrammingDiffing.compute(f,p,h,((i,n)=>e[i]===t[n]?0===t[n].length?.1:1+Math.log(1+t[n].length):.99)):this.myersDiffingAlgorithm.compute(f,p))();let b=v.diffs,C=v.hitTimeout;b=(0,x.xG)(f,p,b),b=(0,x.rh)(f,p,b);const w=[],y=i=>{if(d)for(let n=0;nn.seq1Range.start-S===n.seq2Range.start-L));y(n.seq1Range.start-S),S=n.seq1Range.endExclusive,L=n.seq2Range.endExclusive;const i=this.refineDiff(e,t,n,h,d);i.hitTimeout&&(C=!0);for(const e of i.mappings)w.push(e)}y(e.length-S);const k=A(w,e,t);let D=[];return i.computeMoves&&(D=this.computeMoves(k,e,t,g,m,h,d)),(0,o.eZ)((()=>{function i(e,t){if(e.lineNumber<1||e.lineNumber>t.length)return!1;const i=t[e.lineNumber-1];return!(e.column<1||e.column>i.length+1)}function n(e,t){return!(e.startLineNumber<1||e.startLineNumber>t.length+1)&&!(e.endLineNumberExclusive<1||e.endLineNumberExclusive>t.length+1)}for(const o of k){if(!o.innerChanges)return!1;for(const n of o.innerChanges){if(!(i(n.modifiedRange.getStartPosition(),t)&&i(n.modifiedRange.getEndPosition(),t)&&i(n.originalRange.getStartPosition(),e)&&i(n.originalRange.getEndPosition(),e)))return!1}if(!n(o.modified,t)||!n(o.original,e))return!1}return!0})),new T.h(k,D,C)}computeMoves(e,t,i,n,o,s,r){return D(e,t,i,n,o,s).map((e=>{const n=A(this.refineDiff(t,i,new l.i8(e.original.toOffsetRange(),e.modified.toOffsetRange()),s,r).mappings,t,i,!0);return new T.y(e,n)}))}refineDiff(e,t,i,n,o){const s=new w(e,i.seq1Range,o),r=new w(t,i.seq2Range,o),a=s.length+r.length<500?this.dynamicProgrammingDiffing.compute(s,r,n):this.myersDiffingAlgorithm.compute(s,r,n);let l=a.diffs;l=(0,x.xG)(s,r,l),l=(0,x.g0)(s,r,l),l=(0,x.oK)(s,r,l),l=(0,x.DI)(s,r,l);return{mappings:l.map((e=>new _.iy(s.translateRange(e.seq1Range),r.translateRange(e.seq2Range)))),hitTimeout:a.hitTimeout}}}function A(e,t,i){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const a=[];for(const o of(0,n.mw)(e.map((e=>function(e,t,i){let n=0,o=0;1===e.modifiedRange.endColumn&&1===e.originalRange.endColumn&&e.originalRange.startLineNumber+n<=e.originalRange.endLineNumber&&e.modifiedRange.startLineNumber+n<=e.modifiedRange.endLineNumber&&(o=-1);e.modifiedRange.startColumn-1>=i[e.modifiedRange.startLineNumber-1].length&&e.originalRange.startColumn-1>=t[e.originalRange.startLineNumber-1].length&&e.originalRange.startLineNumber<=e.originalRange.endLineNumber+o&&e.modifiedRange.startLineNumber<=e.modifiedRange.endLineNumber+o&&(n=1);const r=new s.z(e.originalRange.startLineNumber+n,e.originalRange.endLineNumber+1+o),a=new s.z(e.modifiedRange.startLineNumber+n,e.modifiedRange.endLineNumber+1+o);return new _.gB(r,a,[e])}(e,t,i))),((e,t)=>e.original.overlapOrTouch(t.original)||e.modified.overlapOrTouch(t.modified)))){const e=o[0],t=o[o.length-1];a.push(new _.gB(e.original.join(t.original),e.modified.join(t.modified),o.map((e=>e.innerChanges[0]))))}return(0,o.eZ)((()=>{if(!r&&a.length>0){if(a[0].modified.startLineNumber!==a[0].original.startLineNumber)return!1;if(i.length-a[a.length-1].modified.endLineNumberExclusive!==t.length-a[a.length-1].original.endLineNumberExclusive)return!1}return(0,o.DM)(a,((e,t)=>t.original.startLineNumber-e.original.endLineNumberExclusive===t.modified.startLineNumber-e.modified.endLineNumberExclusive&&e.original.endLineNumberExclusive{i.d(t,{DI:()=>u,g0:()=>d,oK:()=>h,rh:()=>c,xG:()=>r});var n=i(75629),o=i(57866),s=i(26006);function r(e,t,i){let n=i;return n=a(e,t,n),n=a(e,t,n),n=function(e,t,i){if(!e.getBoundaryScore||!t.getBoundaryScore)return i;for(let n=0;n0?i[n-1]:void 0,r=i[n],a=n+10&&(l=l.delta(h))}r.push(l)}return n.length>0&&r.push(n[n.length-1]),r}function l(e,t,i,n,o){let s=1;for(;e.seq1Range.start-s>=n.start&&e.seq2Range.start-s>=o.start&&i.isStronglyEqual(e.seq2Range.start-s,e.seq2Range.endExclusive-s)&&s<100;)s++;s--;let r=0;for(;e.seq1Range.start+rl&&(l=r,a=h)}return e.delta(a)}function h(e,t,i){const n=[];for(const o of i){const e=n[n.length-1];e?o.seq1Range.start-e.seq1Range.endExclusive<=2||o.seq2Range.start-e.seq2Range.endExclusive<=2?n[n.length-1]=new s.i8(e.seq1Range.join(o.seq1Range),e.seq2Range.join(o.seq2Range)):n.push(o):n.push(o)}return n}function d(e,t,i){const n=s.i8.invert(i,e.length),o=[];let r=new s.zl(0,0);function a(i,a){if(i.offset10;){const i=n[0];if(!(i.seq1Range.intersects(d.seq1Range)||i.seq2Range.intersects(d.seq2Range)))break;const o=e.findWordContaining(i.seq1Range.start),r=t.findWordContaining(i.seq2Range.start),a=new s.i8(o,r),l=a.intersect(i);if(u+=l.seq1Range.length,g+=l.seq2Range.length,d=d.join(a),!(d.seq1Range.endExclusive>=i.seq1Range.endExclusive))break;n.shift()}u+g<2*(d.seq1Range.length+d.seq2Range.length)/3&&o.push(d),r=d.getEndExclusives()}for(;n.length>0;){const e=n.shift();e.seq1Range.isEmpty||(a(e.getStarts(),e),a(e.getEndExclusives().delta(-1),e))}return function(e,t){const i=[];for(;e.length>0||t.length>0;){const n=e[0],o=t[0];let s;s=n&&(!o||n.seq1Range.start0&&i[i.length-1].seq1Range.endExclusive>=s.seq1Range.start?i[i.length-1]=i[i.length-1].join(s):i.push(s)}return i}(i,o)}function c(e,t,i){let n=i;if(0===n.length)return n;let s,r=0;do{s=!1;const a=[n[0]];for(let l=1;l5||i.seq1Range.length+i.seq2Range.length>5)}c(d,h)?(s=!0,a[a.length-1]=a[a.length-1].join(h)):a.push(h)}n=a}while(r++<10&&s);return n}function u(e,t,i){let r=i;if(0===r.length)return r;let a,l=0;do{a=!1;const d=[r[0]];for(let c=1;c5||s.length>500)return!1;const r=e.getText(s).trim();if(r.length>20||r.split(/\r\n|\r|\n/).length>1)return!1;const a=e.countLinesIn(i.seq1Range),l=i.seq1Range.length,h=t.countLinesIn(i.seq2Range),d=i.seq2Range.length,c=e.countLinesIn(n.seq1Range),m=n.seq1Range.length,f=t.countLinesIn(n.seq2Range),p=n.seq2Range.length,_=130;function v(e){return Math.min(e,_)}return Math.pow(Math.pow(v(40*a+l),1.5)+Math.pow(v(40*h+d),1.5),1.5)+Math.pow(Math.pow(v(40*c+m),1.5)+Math.pow(v(40*f+p),1.5),1.5)>(_**1.5)**1.5*1.3}m(g,u)?(a=!0,d[d.length-1]=d[d.length-1].join(u)):d.push(u)}r=d}while(l++<10&&a);const h=[];return(0,n.KO)(r,((t,i,n)=>{let r=i;function a(e){return e.length>0&&e.trim().length<=3&&i.seq1Range.length+i.seq2Range.length>100}const l=e.extendToFullLines(i.seq1Range),d=e.getText(new o.q(l.start,i.seq1Range.start));a(d)&&(r=r.deltaStart(-d.length));const c=e.getText(new o.q(i.seq1Range.endExclusive,l.endExclusive));a(c)&&(r=r.deltaEnd(c.length));const u=s.i8.fromOffsetPairs(t?t.getEndExclusives():s.zl.zero,n?n.getStarts():s.zl.max),g=r.intersect(u);h.length>0&&g.getStarts().equals(h[h.length-1].getEndExclusives())?h[h.length-1]=h[h.length-1].join(g):h.push(g)})),h}},55338:(e,t,i)=>{i.d(t,{h:()=>n,y:()=>o});class n{constructor(e,t,i){this.changes=e,this.moves=t,this.hitTimeout=i}}class o{constructor(e,t){this.lineRangeMapping=e,this.changes=t}}},94739:(e,t,i)=>{i.d(t,{f0:()=>o,gB:()=>s,iy:()=>r});var n=i(56590);class o{static inverse(e,t,i){const s=[];let r=1,a=1;for(const h of e){const e=new o(new n.z(r,h.original.startLineNumber),new n.z(a,h.modified.startLineNumber));e.modified.isEmpty||s.push(e),r=h.original.endLineNumberExclusive,a=h.modified.endLineNumberExclusive}const l=new o(new n.z(r,t+1),new n.z(a,i+1));return l.modified.isEmpty||s.push(l),s}static clip(e,t,i){const n=[];for(const s of e){const e=s.original.intersect(t),r=s.modified.intersect(i);e&&!e.isEmpty&&r&&!r.isEmpty&&n.push(new o(e,r))}return n}constructor(e,t){this.original=e,this.modified=t}toString(){return"{".concat(this.original.toString(),"->").concat(this.modified.toString(),"}")}flip(){return new o(this.modified,this.original)}join(e){return new o(this.original.join(e.original),this.modified.join(e.modified))}}class s extends o{static fromRangeMappings(e){const t=n.z.join(e.map((e=>n.z.fromRangeInclusive(e.originalRange)))),i=n.z.join(e.map((e=>n.z.fromRangeInclusive(e.modifiedRange))));return new s(t,i,e)}constructor(e,t,i){super(e,t),this.innerChanges=i}flip(){var e;return new s(this.modified,this.original,null===(e=this.innerChanges)||void 0===e?void 0:e.map((e=>e.flip())))}withInnerChangesFromLineRanges(){return new s(this.original,this.modified,[new r(this.original.toExclusiveRange(),this.modified.toExclusiveRange())])}}class r{constructor(e,t){this.originalRange=e,this.modifiedRange=t}toString(){return"{".concat(this.originalRange.toString(),"->").concat(this.modifiedRange.toString(),"}")}flip(){return new r(this.modifiedRange,this.originalRange)}}},45754:(e,t,i)=>{i.d(t,{p:()=>n});class n{constructor(e,t,i,n,o,s,r){this.id=e,this.label=t,this.alias=i,this.metadata=n,this._precondition=o,this._run=s,this._contextKeyService=r}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(e){return this.isSupported()?this._run(e):Promise.resolve(void 0)}}},7906:(e,t,i)=>{i.d(t,{g:()=>n});const n={ICodeEditor:"vs.editor.ICodeEditor",IDiffEditor:"vs.editor.IDiffEditor"}},54081:(e,t,i)=>{i.d(t,{u:()=>n});var n,o=i(71721),s=i(24920);!function(e){e.editorSimpleInput=new s.uy("editorSimpleInput",!1,!0),e.editorTextFocus=new s.uy("editorTextFocus",!1,o.NC("editorTextFocus","Whether the editor text has focus (cursor is blinking)")),e.focus=new s.uy("editorFocus",!1,o.NC("editorFocus","Whether the editor or an editor widget has focus (e.g. focus is in the find widget)")),e.textInputFocus=new s.uy("textInputFocus",!1,o.NC("textInputFocus","Whether an editor or a rich text input has focus (cursor is blinking)")),e.readOnly=new s.uy("editorReadonly",!1,o.NC("editorReadonly","Whether the editor is read-only")),e.inDiffEditor=new s.uy("inDiffEditor",!1,o.NC("inDiffEditor","Whether the context is a diff editor")),e.isEmbeddedDiffEditor=new s.uy("isEmbeddedDiffEditor",!1,o.NC("isEmbeddedDiffEditor","Whether the context is an embedded diff editor")),e.inMultiDiffEditor=new s.uy("inMultiDiffEditor",!1,o.NC("inMultiDiffEditor","Whether the context is a multi diff editor")),e.multiDiffEditorAllCollapsed=new s.uy("multiDiffEditorAllCollapsed",void 0,o.NC("multiDiffEditorAllCollapsed","Whether all files in multi diff editor are collapsed")),e.hasChanges=new s.uy("diffEditorHasChanges",!1,o.NC("diffEditorHasChanges","Whether the diff editor has changes")),e.comparingMovedCode=new s.uy("comparingMovedCode",!1,o.NC("comparingMovedCode","Whether a moved code block is selected for comparison")),e.accessibleDiffViewerVisible=new s.uy("accessibleDiffViewerVisible",!1,o.NC("accessibleDiffViewerVisible","Whether the accessible diff viewer is visible")),e.diffEditorRenderSideBySideInlineBreakpointReached=new s.uy("diffEditorRenderSideBySideInlineBreakpointReached",!1,o.NC("diffEditorRenderSideBySideInlineBreakpointReached","Whether the diff editor render side by side inline breakpoint is reached")),e.diffEditorInlineMode=new s.uy("diffEditorInlineMode",!1,o.NC("diffEditorInlineMode","Whether inline mode is active")),e.diffEditorOriginalWritable=new s.uy("diffEditorOriginalWritable",!1,o.NC("diffEditorOriginalWritable","Whether modified is writable in the diff editor")),e.diffEditorModifiedWritable=new s.uy("diffEditorModifiedWritable",!1,o.NC("diffEditorModifiedWritable","Whether modified is writable in the diff editor")),e.diffEditorOriginalUri=new s.uy("diffEditorOriginalUri","",o.NC("diffEditorOriginalUri","The uri of the original document")),e.diffEditorModifiedUri=new s.uy("diffEditorModifiedUri","",o.NC("diffEditorModifiedUri","The uri of the modified document")),e.columnSelection=new s.uy("editorColumnSelection",!1,o.NC("editorColumnSelection","Whether `editor.columnSelection` is enabled")),e.writable=e.readOnly.toNegated(),e.hasNonEmptySelection=new s.uy("editorHasSelection",!1,o.NC("editorHasSelection","Whether the editor has text selected")),e.hasOnlyEmptySelection=e.hasNonEmptySelection.toNegated(),e.hasMultipleSelections=new s.uy("editorHasMultipleSelections",!1,o.NC("editorHasMultipleSelections","Whether the editor has multiple selections")),e.hasSingleSelection=e.hasMultipleSelections.toNegated(),e.tabMovesFocus=new s.uy("editorTabMovesFocus",!1,o.NC("editorTabMovesFocus","Whether `Tab` will move focus out of the editor")),e.tabDoesNotMoveFocus=e.tabMovesFocus.toNegated(),e.isInEmbeddedEditor=new s.uy("isInEmbeddedEditor",!1,!0),e.canUndo=new s.uy("canUndo",!1,!0),e.canRedo=new s.uy("canRedo",!1,!0),e.hoverVisible=new s.uy("editorHoverVisible",!1,o.NC("editorHoverVisible","Whether the editor hover is visible")),e.hoverFocused=new s.uy("editorHoverFocused",!1,o.NC("editorHoverFocused","Whether the editor hover is focused")),e.stickyScrollFocused=new s.uy("stickyScrollFocused",!1,o.NC("stickyScrollFocused","Whether the sticky scroll is focused")),e.stickyScrollVisible=new s.uy("stickyScrollVisible",!1,o.NC("stickyScrollVisible","Whether the sticky scroll is visible")),e.standaloneColorPickerVisible=new s.uy("standaloneColorPickerVisible",!1,o.NC("standaloneColorPickerVisible","Whether the standalone color picker is visible")),e.standaloneColorPickerFocused=new s.uy("standaloneColorPickerFocused",!1,o.NC("standaloneColorPickerFocused","Whether the standalone color picker is focused")),e.inCompositeEditor=new s.uy("inCompositeEditor",void 0,o.NC("inCompositeEditor","Whether the editor is part of a larger editor (e.g. notebooks)")),e.notInCompositeEditor=e.inCompositeEditor.toNegated(),e.languageId=new s.uy("editorLangId","",o.NC("editorLangId","The language identifier of the editor")),e.hasCompletionItemProvider=new s.uy("editorHasCompletionItemProvider",!1,o.NC("editorHasCompletionItemProvider","Whether the editor has a completion item provider")),e.hasCodeActionsProvider=new s.uy("editorHasCodeActionsProvider",!1,o.NC("editorHasCodeActionsProvider","Whether the editor has a code actions provider")),e.hasCodeLensProvider=new s.uy("editorHasCodeLensProvider",!1,o.NC("editorHasCodeLensProvider","Whether the editor has a code lens provider")),e.hasDefinitionProvider=new s.uy("editorHasDefinitionProvider",!1,o.NC("editorHasDefinitionProvider","Whether the editor has a definition provider")),e.hasDeclarationProvider=new s.uy("editorHasDeclarationProvider",!1,o.NC("editorHasDeclarationProvider","Whether the editor has a declaration provider")),e.hasImplementationProvider=new s.uy("editorHasImplementationProvider",!1,o.NC("editorHasImplementationProvider","Whether the editor has an implementation provider")),e.hasTypeDefinitionProvider=new s.uy("editorHasTypeDefinitionProvider",!1,o.NC("editorHasTypeDefinitionProvider","Whether the editor has a type definition provider")),e.hasHoverProvider=new s.uy("editorHasHoverProvider",!1,o.NC("editorHasHoverProvider","Whether the editor has a hover provider")),e.hasDocumentHighlightProvider=new s.uy("editorHasDocumentHighlightProvider",!1,o.NC("editorHasDocumentHighlightProvider","Whether the editor has a document highlight provider")),e.hasDocumentSymbolProvider=new s.uy("editorHasDocumentSymbolProvider",!1,o.NC("editorHasDocumentSymbolProvider","Whether the editor has a document symbol provider")),e.hasReferenceProvider=new s.uy("editorHasReferenceProvider",!1,o.NC("editorHasReferenceProvider","Whether the editor has a reference provider")),e.hasRenameProvider=new s.uy("editorHasRenameProvider",!1,o.NC("editorHasRenameProvider","Whether the editor has a rename provider")),e.hasSignatureHelpProvider=new s.uy("editorHasSignatureHelpProvider",!1,o.NC("editorHasSignatureHelpProvider","Whether the editor has a signature help provider")),e.hasInlayHintsProvider=new s.uy("editorHasInlayHintsProvider",!1,o.NC("editorHasInlayHintsProvider","Whether the editor has an inline hints provider")),e.hasDocumentFormattingProvider=new s.uy("editorHasDocumentFormattingProvider",!1,o.NC("editorHasDocumentFormattingProvider","Whether the editor has a document formatting provider")),e.hasDocumentSelectionFormattingProvider=new s.uy("editorHasDocumentSelectionFormattingProvider",!1,o.NC("editorHasDocumentSelectionFormattingProvider","Whether the editor has a document selection formatting provider")),e.hasMultipleDocumentFormattingProvider=new s.uy("editorHasMultipleDocumentFormattingProvider",!1,o.NC("editorHasMultipleDocumentFormattingProvider","Whether the editor has multiple document formatting providers")),e.hasMultipleDocumentSelectionFormattingProvider=new s.uy("editorHasMultipleDocumentSelectionFormattingProvider",!1,o.NC("editorHasMultipleDocumentSelectionFormattingProvider","Whether the editor has multiple document selection formatting providers"))}(n||(n={}))},78278:(e,t,i)=>{i.d(t,{n:()=>s,y:()=>o});const n=[];function o(e){n.push(e)}function s(){return n.slice(0)}},55562:(e,t,i)=>{i.d(t,{N:()=>n});class n{static getLanguageId(e){return(255&e)>>>0}static getTokenType(e){return(768&e)>>>8}static containsBalancedBrackets(e){return 0!==(1024&e)}static getFontStyle(e){return(30720&e)>>>11}static getForeground(e){return(16744448&e)>>>15}static getBackground(e){return(4278190080&e)>>>24}static getClassNameFromMetadata(e){let t="mtk"+this.getForeground(e);const i=this.getFontStyle(e);return 1&i&&(t+=" mtki"),2&i&&(t+=" mtkb"),4&i&&(t+=" mtku"),8&i&&(t+=" mtks"),t}static getInlineStyleFromMetadata(e,t){const i=this.getForeground(e),n=this.getFontStyle(e);let o="color: ".concat(t[i],";");1&n&&(o+="font-style: italic;"),2&n&&(o+="font-weight: bold;");let s="";return 4&n&&(s+=" underline"),8&n&&(s+=" line-through"),s&&(o+="text-decoration:".concat(s,";")),o}static getPresentationFromMetadata(e){const t=this.getForeground(e),i=this.getFontStyle(e);return{foreground:t,italic:Boolean(1&i),bold:Boolean(2&i),underline:Boolean(4&i),strikethrough:Boolean(8&i)}}}},6440:(e,t,i)=>{i.d(t,{G:()=>s});var n=i(52223),o=i(51169);function s(e,t,i,r,a,l){if(Array.isArray(e)){let n=0;for(const o of e){const e=s(o,t,i,r,a,l);if(10===e)return e;e>n&&(n=e)}return n}if("string"===typeof e)return r?"*"===e?5:e===i?10:0:0;if(e){const{language:s,pattern:h,scheme:d,hasAccessToAllModels:c,notebookType:u}=e;if(!r&&!c)return 0;u&&a&&(t=a);let g=0;if(d)if(d===t.scheme)g=10;else{if("*"!==d)return 0;g=5}if(s)if(s===i)g=10;else{if("*"!==s)return 0;g=Math.max(g,5)}if(u)if(u===l)g=10;else{if("*"!==u||void 0===l)return 0;g=Math.max(g,5)}if(h){let e;if(e="string"===typeof h?h:{...h,base:(0,o.Fv)(h.base)},e!==t.fsPath&&!(0,n.EQ)(e,t.fsPath))return 0;g=10}return g}return 0}},761:(e,t,i)=>{i.d(t,{mY:()=>L,gX:()=>h,MY:()=>g,Nq:()=>c,DI:()=>_,AD:()=>D,gl:()=>k,bw:()=>d,rn:()=>E,MO:()=>N,w:()=>S,ln:()=>v,WW:()=>u,uZ:()=>y,WU:()=>f,RW:()=>x,hG:()=>p,R4:()=>w,vx:()=>b});var n=i(62974),o=i(82682),s=i(10670),r=i(24219),a=i(89599);class l extends a.JT{get isResolved(){return this._isResolved}constructor(e,t,i){super(),this._registry=e,this._languageId=t,this._factory=i,this._isDisposed=!1,this._resolvePromise=null,this._isResolved=!1}dispose(){this._isDisposed=!0,super.dispose()}async resolve(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise}async _create(){const e=await this._factory.tokenizationSupport;this._isResolved=!0,e&&!this._isDisposed&&this._register(this._registry.register(this._languageId,e))}}var h,d,c,u,g,m=i(71721);class f{constructor(e,t,i){this.offset=e,this.type=t,this.language=i,this._tokenBrand=void 0}toString(){return"("+this.offset+", "+this.type+")"}}class p{constructor(e,t){this.tokens=e,this.endState=t,this._tokenizationResultBrand=void 0}}class _{constructor(e,t){this.tokens=e,this.endState=t,this._encodedTokenizationResultBrand=void 0}}!function(e){const t=new Map;t.set(0,n.l.symbolMethod),t.set(1,n.l.symbolFunction),t.set(2,n.l.symbolConstructor),t.set(3,n.l.symbolField),t.set(4,n.l.symbolVariable),t.set(5,n.l.symbolClass),t.set(6,n.l.symbolStruct),t.set(7,n.l.symbolInterface),t.set(8,n.l.symbolModule),t.set(9,n.l.symbolProperty),t.set(10,n.l.symbolEvent),t.set(11,n.l.symbolOperator),t.set(12,n.l.symbolUnit),t.set(13,n.l.symbolValue),t.set(15,n.l.symbolEnum),t.set(14,n.l.symbolConstant),t.set(15,n.l.symbolEnum),t.set(16,n.l.symbolEnumMember),t.set(17,n.l.symbolKeyword),t.set(27,n.l.symbolSnippet),t.set(18,n.l.symbolText),t.set(19,n.l.symbolColor),t.set(20,n.l.symbolFile),t.set(21,n.l.symbolReference),t.set(22,n.l.symbolCustomColor),t.set(23,n.l.symbolFolder),t.set(24,n.l.symbolTypeParameter),t.set(25,n.l.account),t.set(26,n.l.issues),e.toIcon=function(e){let i=t.get(e);return i||(console.info("No codicon found for CompletionItemKind "+e),i=n.l.symbolProperty),i};const i=new Map;i.set("method",0),i.set("function",1),i.set("constructor",2),i.set("field",3),i.set("variable",4),i.set("class",5),i.set("struct",6),i.set("interface",7),i.set("module",8),i.set("property",9),i.set("event",10),i.set("operator",11),i.set("unit",12),i.set("value",13),i.set("constant",14),i.set("enum",15),i.set("enum-member",16),i.set("enumMember",16),i.set("keyword",17),i.set("snippet",27),i.set("text",18),i.set("color",19),i.set("file",20),i.set("reference",21),i.set("customcolor",22),i.set("folder",23),i.set("type-parameter",24),i.set("typeParameter",24),i.set("account",25),i.set("issue",26),e.fromString=function(e,t){let n=i.get(e);return"undefined"!==typeof n||t||(n=9),n}}(h||(h={})),function(e){e[e.Automatic=0]="Automatic",e[e.Explicit=1]="Explicit"}(d||(d={}));class v{constructor(e,t,i,n){this.range=e,this.text=t,this.completionKind=i,this.isSnippetText=n}equals(e){return s.e.lift(this.range).equalsRange(e.range)&&this.text===e.text&&this.completionKind===e.completionKind&&this.isSnippetText===e.isSnippetText}}function b(e){return e&&o.o.isUri(e.uri)&&s.e.isIRange(e.range)&&(s.e.isIRange(e.originSelectionRange)||s.e.isIRange(e.targetSelectionRange))}!function(e){e[e.Automatic=0]="Automatic",e[e.PasteAs=1]="PasteAs"}(c||(c={})),function(e){e[e.Invoke=1]="Invoke",e[e.TriggerCharacter=2]="TriggerCharacter",e[e.ContentChange=3]="ContentChange"}(u||(u={})),function(e){e[e.Text=0]="Text",e[e.Read=1]="Read",e[e.Write=2]="Write"}(g||(g={}));const C={17:(0,m.NC)("Array","array"),16:(0,m.NC)("Boolean","boolean"),4:(0,m.NC)("Class","class"),13:(0,m.NC)("Constant","constant"),8:(0,m.NC)("Constructor","constructor"),9:(0,m.NC)("Enum","enumeration"),21:(0,m.NC)("EnumMember","enumeration member"),23:(0,m.NC)("Event","event"),7:(0,m.NC)("Field","field"),0:(0,m.NC)("File","file"),11:(0,m.NC)("Function","function"),10:(0,m.NC)("Interface","interface"),19:(0,m.NC)("Key","key"),5:(0,m.NC)("Method","method"),1:(0,m.NC)("Module","module"),2:(0,m.NC)("Namespace","namespace"),20:(0,m.NC)("Null","null"),15:(0,m.NC)("Number","number"),18:(0,m.NC)("Object","object"),24:(0,m.NC)("Operator","operator"),3:(0,m.NC)("Package","package"),6:(0,m.NC)("Property","property"),14:(0,m.NC)("String","string"),22:(0,m.NC)("Struct","struct"),25:(0,m.NC)("TypeParameter","type parameter"),12:(0,m.NC)("Variable","variable")};function w(e,t){return(0,m.NC)("symbolAriaLabel","{0} ({1})",e,C[t])}var y,S,L,k;!function(e){const t=new Map;t.set(0,n.l.symbolFile),t.set(1,n.l.symbolModule),t.set(2,n.l.symbolNamespace),t.set(3,n.l.symbolPackage),t.set(4,n.l.symbolClass),t.set(5,n.l.symbolMethod),t.set(6,n.l.symbolProperty),t.set(7,n.l.symbolField),t.set(8,n.l.symbolConstructor),t.set(9,n.l.symbolEnum),t.set(10,n.l.symbolInterface),t.set(11,n.l.symbolFunction),t.set(12,n.l.symbolVariable),t.set(13,n.l.symbolConstant),t.set(14,n.l.symbolString),t.set(15,n.l.symbolNumber),t.set(16,n.l.symbolBoolean),t.set(17,n.l.symbolArray),t.set(18,n.l.symbolObject),t.set(19,n.l.symbolKey),t.set(20,n.l.symbolNull),t.set(21,n.l.symbolEnumMember),t.set(22,n.l.symbolStruct),t.set(23,n.l.symbolEvent),t.set(24,n.l.symbolOperator),t.set(25,n.l.symbolTypeParameter),e.toIcon=function(e){let i=t.get(e);return i||(console.info("No codicon found for SymbolKind "+e),i=n.l.symbolProperty),i}}(y||(y={}));class D{static fromValue(e){switch(e){case"comment":return D.Comment;case"imports":return D.Imports;case"region":return D.Region}return new D(e)}constructor(e){this.value=e}}D.Comment=new D("comment"),D.Imports=new D("imports"),D.Region=new D("region"),function(e){e[e.AIGenerated=1]="AIGenerated"}(S||(S={})),function(e){e.is=function(e){return!(!e||"object"!==typeof e)&&("string"===typeof e.id&&"string"===typeof e.title)}}(L||(L={})),function(e){e[e.Type=1]="Type",e[e.Parameter=2]="Parameter"}(k||(k={}));class N{constructor(e){this.createSupport=e,this._tokenizationSupport=null}dispose(){this._tokenizationSupport&&this._tokenizationSupport.then((e=>{e&&e.dispose()}))}get tokenizationSupport(){return this._tokenizationSupport||(this._tokenizationSupport=this.createSupport()),this._tokenizationSupport}}const x=new class{constructor(){this._tokenizationSupports=new Map,this._factories=new Map,this._onDidChange=new r.Q5,this.onDidChange=this._onDidChange.event,this._colorMap=null}handleChange(e){this._onDidChange.fire({changedLanguages:e,changedColorMap:!1})}register(e,t){return this._tokenizationSupports.set(e,t),this.handleChange([e]),(0,a.OF)((()=>{this._tokenizationSupports.get(e)===t&&(this._tokenizationSupports.delete(e),this.handleChange([e]))}))}get(e){return this._tokenizationSupports.get(e)||null}registerFactory(e,t){var i;null===(i=this._factories.get(e))||void 0===i||i.dispose();const n=new l(this,e,t);return this._factories.set(e,n),(0,a.OF)((()=>{const t=this._factories.get(e);t&&t===n&&(this._factories.delete(e),t.dispose())}))}async getOrCreate(e){const t=this.get(e);if(t)return t;const i=this._factories.get(e);return!i||i.isResolved?null:(await i.resolve(),this.get(e))}isResolved(e){if(this.get(e))return!0;const t=this._factories.get(e);return!(t&&!t.isResolved)}setColorMap(e){this._colorMap=e,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}};var E;!function(e){e[e.Invoke=0]="Invoke",e[e.Automatic=1]="Automatic"}(E||(E={}))},1761:(e,t,i)=>{i.d(t,{$9:()=>d,UF:()=>h,n8:()=>l,r7:()=>a,tI:()=>c});var n=i(25085),o=i(10405),s=i(78366),r=i(40801);function a(e,t,i){let s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(e<4)return null;const r=(arguments.length>4?arguments[4]:void 0).getLanguageConfiguration(t.tokenization.getLanguageId()).indentRulesSupport;if(!r)return null;if(i<=1)return{indentation:"",action:null};for(let n=i-1;n>0&&""===t.getLineContent(n);n--)if(1===n)return{indentation:"",action:null};const a=function(e,t,i){const n=e.tokenization.getLanguageIdAtPosition(t,0);if(t>1){let o,s=-1;for(o=t-1;o>=1;o--){if(e.tokenization.getLanguageIdAtPosition(o,0)!==n)return s;const t=e.getLineContent(o);if(!i.shouldIgnore(t)&&!/^\s+$/.test(t)&&""!==t)return o;s=o}}return-1}(t,i,r);if(a<0)return null;if(a<1)return{indentation:"",action:null};const l=t.getLineContent(a);if(r.shouldIncrease(l)||r.shouldIndentNextLine(l))return{indentation:n.V8(l),action:o.wU.Indent,line:a};if(r.shouldDecrease(l))return{indentation:n.V8(l),action:null,line:a};{if(1===a)return{indentation:n.V8(t.getLineContent(a)),action:null,line:a};const e=a-1,i=r.getIndentMetadata(t.getLineContent(e));if(!(3&i)&&4&i){let i=0;for(let n=e-1;n>0;n--)if(!r.shouldIndentNextLine(t.getLineContent(n))){i=n;break}return{indentation:n.V8(t.getLineContent(i+1)),action:null,line:i+1}}if(s)return{indentation:n.V8(t.getLineContent(a)),action:null,line:a};for(let s=a;s>0;s--){const e=t.getLineContent(s);if(r.shouldIncrease(e))return{indentation:n.V8(e),action:o.wU.Indent,line:s};if(r.shouldIndentNextLine(e)){let e=0;for(let i=s-1;i>0;i--)if(!r.shouldIndentNextLine(t.getLineContent(s))){e=i;break}return{indentation:n.V8(t.getLineContent(e+1)),action:null,line:e+1}}if(r.shouldDecrease(e))return{indentation:n.V8(e),action:null,line:s}}return{indentation:n.V8(t.getLineContent(1)),action:null,line:1}}}function l(e,t,i,s,r,l){if(e<4)return null;const h=l.getLanguageConfiguration(i);if(!h)return null;const d=l.getLanguageConfiguration(i).indentRulesSupport;if(!d)return null;const c=a(e,t,s,void 0,l),u=t.getLineContent(s);if(c){const i=c.line;if(void 0!==i){let a=!0;for(let e=i;e0&&d.getLanguageId(0)!==c.languageId?(f=!0,g=u.substr(0,i.startColumn-1-c.firstCharOffset)):g=d.getLineContent().substring(0,i.startColumn-1),i.isEmpty())m=u.substr(i.startColumn-1-c.firstCharOffset);else{m=(0,r.n2)(t,i.endLineNumber,i.endColumn).getLineContent().substr(i.endColumn-1-c.firstCharOffset)}const p=h.getLanguageConfiguration(c.languageId).indentRulesSupport;if(!p)return null;const _=g,v=n.V8(g),b={tokenization:{getLineTokens:e=>t.tokenization.getLineTokens(e),getLanguageId:()=>t.getLanguageId(),getLanguageIdAtPosition:(e,i)=>t.getLanguageIdAtPosition(e,i)},getLineContent:e=>e===i.startLineNumber?_:t.getLineContent(e)},C=n.V8(d.getLineContent()),w=a(e,b,i.startLineNumber+1,void 0,h);if(!w){const e=f?C:v;return{beforeEnter:e,afterEnter:e}}let y=f?C:w.indentation;return w.action===o.wU.Indent&&(y=l.shiftIndent(y)),p.shouldDecrease(m)&&(y=l.unshiftIndent(y)),{beforeEnter:f?C:v,afterEnter:y}}function d(e,t,i,n,s,l){if(e<4)return null;const h=(0,r.n2)(t,i.startLineNumber,i.startColumn);if(h.firstCharOffset)return null;const d=l.getLanguageConfiguration(h.languageId).indentRulesSupport;if(!d)return null;const c=h.getLineContent(),u=c.substr(0,i.startColumn-1-h.firstCharOffset);let g;if(i.isEmpty())g=c.substr(i.startColumn-1-h.firstCharOffset);else{g=(0,r.n2)(t,i.endLineNumber,i.endColumn).getLineContent().substr(i.endColumn-1-h.firstCharOffset)}if(!d.shouldDecrease(u+g)&&d.shouldDecrease(u+n+g)){const n=a(e,t,i.startLineNumber,!1,l);if(!n)return null;let r=n.indentation;return n.action!==o.wU.Indent&&(r=s.unshiftIndent(r)),r}return null}function c(e,t,i){const n=i.getLanguageConfiguration(e.getLanguageId()).indentRulesSupport;return n?t<1||t>e.getLineCount()?null:n.getIndentMetadata(e.getLineContent(t)):null}},16726:(e,t,i)=>{i.d(t,{A:()=>s});var n=i(10405),o=i(40801);function s(e,t,i,s){const r=(0,o.n2)(t,i.startLineNumber,i.startColumn),a=s.getLanguageConfiguration(r.languageId);if(!a)return null;const l=r.getLineContent(),h=l.substr(0,i.startColumn-1-r.firstCharOffset);let d;if(i.isEmpty())d=l.substr(i.startColumn-1-r.firstCharOffset);else{d=(0,o.n2)(t,i.endLineNumber,i.endColumn).getLineContent().substr(i.endColumn-1-r.firstCharOffset)}let c="";if(i.startLineNumber>1&&0===r.firstCharOffset){const e=(0,o.n2)(t,i.startLineNumber-1);e.languageId===r.languageId&&(c=e.getLineContent())}const u=a.onEnter(e,c,h,d);if(!u)return null;const g=u.indentAction;let m=u.appendText;const f=u.removeText||0;m?g===n.wU.Indent&&(m="\t"+m):m=g===n.wU.Indent||g===n.wU.IndentOutdent?"\t":"";let p=(0,o.u0)(t,i.startLineNumber,i.startColumn);return f&&(p=p.substring(0,p.length-f)),{indentAction:g,appendText:m,removeText:f,indentation:p}}},69311:(e,t,i)=>{i.d(t,{O:()=>n});const n=(0,i(34304).yh)("languageService")},10405:(e,t,i)=>{var n;i.d(t,{V6:()=>o,c$:()=>s,wU:()=>n}),function(e){e[e.None=0]="None",e[e.Indent=1]="Indent",e[e.IndentOutdent=2]="IndentOutdent",e[e.Outdent=3]="Outdent"}(n||(n={}));class o{constructor(e){if(this._neutralCharacter=null,this._neutralCharacterSearched=!1,this.open=e.open,this.close=e.close,this._inString=!0,this._inComment=!0,this._inRegEx=!0,Array.isArray(e.notIn))for(let t=0,i=e.notIn.length;t{i.d(t,{c_:()=>T,u0:()=>O,n2:()=>P});var n=i(24219),o=i(89599),s=i(25085),r=i(42696),a=i(10405),l=i(78366);class h{constructor(e){if(e.autoClosingPairs?this._autoClosingPairs=e.autoClosingPairs.map((e=>new a.V6(e))):e.brackets?this._autoClosingPairs=e.brackets.map((e=>new a.V6({open:e[0],close:e[1]}))):this._autoClosingPairs=[],e.__electricCharacterSupport&&e.__electricCharacterSupport.docComment){const t=e.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new a.V6({open:t.open,close:t.close||""}))}this._autoCloseBeforeForQuotes="string"===typeof e.autoCloseBefore?e.autoCloseBefore:h.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES,this._autoCloseBeforeForBrackets="string"===typeof e.autoCloseBefore?e.autoCloseBefore:h.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS,this._surroundingPairs=e.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(e){return e?this._autoCloseBeforeForQuotes:this._autoCloseBeforeForBrackets}getSurroundingPairs(){return this._surroundingPairs}}h.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES=";:.,=}])> \n\t",h.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS="'\"`;:.,=}])> \n\t";var d=i(75629),c=i(43097);class u{constructor(e){this._richEditBrackets=e}getElectricCharacters(){const e=[];if(this._richEditBrackets)for(const t of this._richEditBrackets.brackets)for(const i of t.close){const t=i.charAt(i.length-1);e.push(t)}return(0,d.EB)(e)}onElectricCharacter(e,t,i){if(!this._richEditBrackets||0===this._richEditBrackets.brackets.length)return null;const n=t.findTokenIndexAtOffset(i-1);if((0,l.Bu)(t.getStandardTokenType(n)))return null;const o=this._richEditBrackets.reversedRegex,s=t.getLineContent().substring(0,i-1)+e,r=c.Vr.findPrevBracketInRange(o,1,s,0,s.length);if(!r)return null;const a=s.substring(r.startColumn-1,r.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[a])return null;const h=t.getActualLineContentBefore(r.startColumn-1);return/^\s*$/.test(h)?{matchOpenBracket:a}:null}}function g(e){return e.global&&(e.lastIndex=0),!0}class m{constructor(e){this._indentationRules=e}shouldIncrease(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&g(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(e))}shouldDecrease(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&g(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(e))}shouldIndentNextLine(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&g(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(e))}shouldIgnore(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&g(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(e))}getIndentMetadata(e){let t=0;return this.shouldIncrease(e)&&(t+=1),this.shouldDecrease(e)&&(t+=2),this.shouldIndentNextLine(e)&&(t+=4),this.shouldIgnore(e)&&(t+=8),t}}var f=i(85108);class p{constructor(e){(e=e||{}).brackets=e.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],e.brackets.forEach((e=>{const t=p._createOpenBracketRegExp(e[0]),i=p._createCloseBracketRegExp(e[1]);t&&i&&this._brackets.push({open:e[0],openRegExp:t,close:e[1],closeRegExp:i})})),this._regExpRules=e.onEnterRules||[]}onEnter(e,t,i,n){if(e>=3)for(let o=0,s=this._regExpRules.length;o!e.reg||(e.reg.lastIndex=0,e.reg.test(e.text)))))return e.action}if(e>=2&&i.length>0&&n.length>0)for(let o=0,s=this._brackets.length;o=2&&i.length>0)for(let o=0,s=this._brackets.length;o{const t=new Set;return{info:new D(this,e,t),closing:t}})),o=new y.b((e=>{const t=new Set,i=new Set;return{info:new N(this,e,t,i),opening:t,openingColorized:i}}));for(const[r,a]of i){const e=n.get(r),t=o.get(a);e.closing.add(t.info),t.opening.add(e.info)}const s=t.colorizedBracketPairs?L(t.colorizedBracketPairs):i.filter((e=>!("<"===e[0]&&">"===e[1])));for(const[r,a]of s){const e=n.get(r),t=o.get(a);e.closing.add(t.info),t.openingColorized.add(e.info),t.opening.add(e.info)}this._openingBrackets=new Map([...n.cachedValues].map((e=>{let[t,i]=e;return[t,i.info]}))),this._closingBrackets=new Map([...o.cachedValues].map((e=>{let[t,i]=e;return[t,i.info]})))}get openingBrackets(){return[...this._openingBrackets.values()]}get closingBrackets(){return[...this._closingBrackets.values()]}getOpeningBracketInfo(e){return this._openingBrackets.get(e)}getClosingBracketInfo(e){return this._closingBrackets.get(e)}getBracketInfo(e){return this.getOpeningBracketInfo(e)||this.getClosingBracketInfo(e)}}function L(e){return e.filter((e=>{let[t,i]=e;return""!==t&&""!==i}))}class k{constructor(e,t){this.config=e,this.bracketText=t}get languageId(){return this.config.languageId}}class D extends k{constructor(e,t,i){super(e,t),this.openedBrackets=i,this.isOpeningBracket=!0}}class N extends k{constructor(e,t,i,n){super(e,t),this.openingBrackets=i,this.openingColorizedBrackets=n,this.isOpeningBracket=!1}closes(e){return e.config===this.config&&this.openingBrackets.has(e)}closesColorized(e){return e.config===this.config&&this.openingColorizedBrackets.has(e)}getOpeningBrackets(){return[...this.openingBrackets]}}var x=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},E=function(e,t){return function(i,n){t(i,n,e)}};class I{constructor(e){this.languageId=e}affects(e){return!this.languageId||this.languageId===e}}const T=(0,_.yh)("languageConfigurationService");let M=class extends o.JT{constructor(e,t){super(),this.configurationService=e,this.languageService=t,this._registry=this._register(new W),this.onDidChangeEmitter=this._register(new n.Q5),this.onDidChange=this.onDidChangeEmitter.event,this.configurations=new Map;const i=new Set(Object.values(A));this._register(this.configurationService.onDidChangeConfiguration((e=>{const t=e.change.keys.some((e=>i.has(e))),n=e.change.overrides.filter((e=>{let[t,n]=e;return n.some((e=>i.has(e)))})).map((e=>{let[t]=e;return t}));if(t)this.configurations.clear(),this.onDidChangeEmitter.fire(new I(void 0));else for(const i of n)this.languageService.isRegisteredLanguageId(i)&&(this.configurations.delete(i),this.onDidChangeEmitter.fire(new I(i)))}))),this._register(this._registry.onDidChange((e=>{this.configurations.delete(e.languageId),this.onDidChangeEmitter.fire(new I(e.languageId))})))}register(e,t,i){return this._registry.register(e,t,i)}getLanguageConfiguration(e){let t=this.configurations.get(e);return t||(t=function(e,t,i,n){let o=t.getLanguageConfiguration(e);if(!o){if(!n.isRegisteredLanguageId(e))return new H(e,{});o=new H(e,{})}const s=function(e,t){const i=t.getValue(A.brackets,{overrideIdentifier:e}),n=t.getValue(A.colorizedBracketPairs,{overrideIdentifier:e});return{brackets:R(i),colorizedBracketPairs:R(n)}}(o.languageId,i),r=B([o.underlyingConfig,s]);return new H(o.languageId,r)}(e,this._registry,this.configurationService,this.languageService),this.configurations.set(e,t)),t}};M=x([E(0,v.Ui),E(1,b.O)],M);const A={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};function R(e){if(Array.isArray(e))return e.map((e=>{if(Array.isArray(e)&&2===e.length)return[e[0],e[1]]})).filter((e=>!!e))}function O(e,t,i){const n=e.getLineContent(t);let o=s.V8(n);return o.length>i-1&&(o=o.substring(0,i-1)),o}function P(e,t,i){e.tokenization.forceTokenization(t);const n=e.tokenization.getLineTokens(t),o="undefined"===typeof i?e.getLineMaxColumn(t)-1:i-1;return(0,l.wH)(n,o)}class F{constructor(e){this.languageId=e,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(e,t){const i=new z(e,t,++this._order);return this._entries.push(i),this._resolved=null,(0,o.OF)((()=>{for(let e=0;ee.configuration))))}}function B(e){let t={comments:void 0,brackets:void 0,wordPattern:void 0,indentationRules:void 0,onEnterRules:void 0,autoClosingPairs:void 0,surroundingPairs:void 0,autoCloseBefore:void 0,folding:void 0,colorizedBracketPairs:void 0,__electricCharacterSupport:void 0};for(const i of e)t={comments:i.comments||t.comments,brackets:i.brackets||t.brackets,wordPattern:i.wordPattern||t.wordPattern,indentationRules:i.indentationRules||t.indentationRules,onEnterRules:i.onEnterRules||t.onEnterRules,autoClosingPairs:i.autoClosingPairs||t.autoClosingPairs,surroundingPairs:i.surroundingPairs||t.surroundingPairs,autoCloseBefore:i.autoCloseBefore||t.autoCloseBefore,folding:i.folding||t.folding,colorizedBracketPairs:i.colorizedBracketPairs||t.colorizedBracketPairs,__electricCharacterSupport:i.__electricCharacterSupport||t.__electricCharacterSupport};return t}class z{constructor(e,t,i){this.configuration=e,this.priority=t,this.order=i}static cmp(e,t){return e.priority===t.priority?e.order-t.order:e.priority-t.priority}}class V{constructor(e){this.languageId=e}}class W extends o.JT{constructor(){super(),this._entries=new Map,this._onDidChange=this._register(new n.Q5),this.onDidChange=this._onDidChange.event,this._register(this.register(w.bd,{brackets:[["(",")"],["[","]"],["{","}"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],colorizedBracketPairs:[],folding:{offSide:!0}},0))}register(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=this._entries.get(e);n||(n=new F(e),this._entries.set(e,n));const s=n.register(t,i);return this._onDidChange.fire(new V(e)),(0,o.OF)((()=>{s.dispose(),this._onDidChange.fire(new V(e))}))}getLanguageConfiguration(e){const t=this._entries.get(e);return(null===t||void 0===t?void 0:t.getResolvedConfiguration())||null}}class H{constructor(e,t){this.languageId=e,this.underlyingConfig=t,this._brackets=null,this._electricCharacter=null,this._onEnterSupport=this.underlyingConfig.brackets||this.underlyingConfig.indentationRules||this.underlyingConfig.onEnterRules?new p(this.underlyingConfig):null,this.comments=H._handleComments(this.underlyingConfig),this.characterPair=new h(this.underlyingConfig),this.wordDefinition=this.underlyingConfig.wordPattern||r.Af,this.indentationRules=this.underlyingConfig.indentationRules,this.underlyingConfig.indentationRules?this.indentRulesSupport=new m(this.underlyingConfig.indentationRules):this.indentRulesSupport=null,this.foldingRules=this.underlyingConfig.folding||{},this.bracketsNew=new S(e,this.underlyingConfig)}getWordDefinition(){return(0,r.eq)(this.wordDefinition)}get brackets(){return!this._brackets&&this.underlyingConfig.brackets&&(this._brackets=new c.EA(this.languageId,this.underlyingConfig.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new u(this.brackets)),this._electricCharacter}onEnter(e,t,i,n){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,i,n):null}getAutoClosingPairs(){return new a.c$(this.characterPair.getAutoClosingPairs())}getAutoCloseBeforeSet(e){return this.characterPair.getAutoCloseBeforeSet(e)}getSurroundingPairs(){return this.characterPair.getSurroundingPairs()}static _handleComments(e){const t=e.comments;if(!t)return null;const i={};if(t.lineComment&&(i.lineCommentToken=t.lineComment),t.blockComment){const[e,n]=t.blockComment;i.blockCommentStartToken=e,i.blockCommentEndToken=n}return i}}(0,C.z)(T,M,1)},68150:(e,t,i)=>{i.d(t,{bd:()=>h,dQ:()=>l});var n=i(71721),o=i(24219),s=i(70311),r=i(51572),a=i(9694);const l=new class{constructor(){this._onDidChangeLanguages=new o.Q5,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[]}registerLanguage(e){return this._languages.push(e),this._onDidChangeLanguages.fire(void 0),{dispose:()=>{for(let t=0,i=this._languages.length;t{i.d(t,{Dy:()=>r,Ri:()=>s,TJ:()=>o});var n=i(761);const o=new class{clone(){return this}equals(e){return this===e}};function s(e,t){return new n.hG([new n.WU(0,"",e)],t)}function r(e,t){const i=new Uint32Array(2);return i[0]=0,i[1]=(32768|e<<0|2<<24)>>>0,new n.DI(i,null===t?o:t)}},78366:(e,t,i)=>{function n(e,t){const i=e.getCount(),n=e.findTokenIndexAtOffset(t),s=e.getLanguageId(n);let r=n;for(;r+10&&e.getLanguageId(a-1)===s;)a--;return new o(e,s,a,r+1,e.getStartOffset(a),e.getEndOffset(r))}i.d(t,{Bu:()=>s,wH:()=>n});class o{constructor(e,t,i,n,o,s){this._scopedLineTokensBrand=void 0,this._actual=e,this.languageId=t,this._firstTokenIndex=i,this._lastTokenIndex=n,this.firstCharOffset=o,this._lastCharOffset=s}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getActualLineContentBefore(e){return this._actual.getLineContent().substring(0,this.firstCharOffset+e)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)}}function s(e){return 0!==(3&e)}},43097:(e,t,i)=>{i.d(t,{EA:()=>a,Vr:()=>m});var n=i(25085),o=i(76071),s=i(10670);class r{constructor(e,t,i,n,o,s){this._richEditBracketBrand=void 0,this.languageId=e,this.index=t,this.open=i,this.close=n,this.forwardRegex=o,this.reversedRegex=s,this._openSet=r._toSet(this.open),this._closeSet=r._toSet(this.close)}isOpen(e){return this._openSet.has(e)}isClose(e){return this._closeSet.has(e)}static _toSet(e){const t=new Set;for(const i of e)t.add(i);return t}}class a{constructor(e,t){this._richEditBracketsBrand=void 0;const i=function(e){const t=e.length;e=e.map((e=>[e[0].toLowerCase(),e[1].toLowerCase()]));const i=[];for(let r=0;r{const[i,n]=e,[o,s]=t;return i===o||i===s||n===o||n===s},o=(e,n)=>{const o=Math.min(e,n),s=Math.max(e,n);for(let r=0;r0&&s.push({open:n,close:o})}return s}(t);this.brackets=i.map(((t,n)=>new r(e,n,t.open,t.close,function(e,t,i,n){let o=[];o=o.concat(e),o=o.concat(t);for(let s=0,r=o.length;s=0&&n.push(t);for(const t of s.close)t.indexOf(e)>=0&&n.push(t)}}function h(e,t){return e.length-t.length}function d(e){if(e.length<=1)return e;const t=[],i=new Set;for(const n of e)i.has(n)||(t.push(n),i.add(n));return t}function c(e){const t=/^[\w ]+$/.test(e);return e=n.ec(e),t?"\\b".concat(e,"\\b"):e}function u(e){const t="(".concat(e.map(c).join(")|("),")");return n.GF(t,!0)}const g=function(){let e=null,t=null;return function(i){return e!==i&&(e=i,t=function(e){const t=new Uint16Array(e.length);let i=0;for(let n=e.length-1;n>=0;n--)t[i++]=e.charCodeAt(n);return o.oe().decode(t)}(e)),t}}();class m{static _findPrevBracketInText(e,t,i,n){const o=i.match(e);if(!o)return null;const r=i.length-(o.index||0),a=o[0].length,l=n+r;return new s.e(t,l-a+1,t,l+1)}static findPrevBracketInRange(e,t,i,n,o){const s=g(i).substring(i.length-o,i.length-n);return this._findPrevBracketInText(e,t,s,n)}static findNextBracketInText(e,t,i,n){const o=i.match(e);if(!o)return null;const r=o.index||0,a=o[0].length;if(0===a)return null;const l=n+r;return new s.e(t,l+1,t,l+1+a)}static findNextBracketInRange(e,t,i,n,o){const s=i.substring(n,o);return this.findNextBracketInText(e,t,s,n)}}},2778:(e,t,i)=>{i.d(t,{C2:()=>l,Fq:()=>h});var n=i(25085),o=i(43471),s=i(761),r=i(22191);const a={getInitialState:()=>r.TJ,tokenizeEncoded:(e,t,i)=>(0,r.Dy)(0,i)};async function l(e,t,i){if(!i)return d(t,e.languageIdCodec,a);const n=await s.RW.getOrCreate(i);return d(t,e.languageIdCodec,n||a)}function h(e,t,i,n,o,s,r){let a="
    ",l=n,h=0,d=!0;for(let c=0,u=t.getCount();c0;)r&&d?(g+=" ",d=!1):(g+=" ",d=!0),e--;break}case 60:g+="<",d=!1;break;case 62:g+=">",d=!1;break;case 38:g+="&",d=!1;break;case 0:g+="�",d=!1;break;case 65279:case 8232:case 8233:case 133:g+="\ufffd",d=!1;break;case 13:g+="​",d=!1;break;case 32:r&&d?(g+=" ",d=!1):(g+=" ",d=!0);break;default:g+=String.fromCharCode(t),d=!1}}if(a+='').concat(g,""),u>o||l>=o)break}return a+="
    ",a}function d(e,t,i){let s='
    ';const r=n.uq(e);let a=i.getInitialState();for(let l=0,h=r.length;l0&&(s+="
    ");const h=i.tokenizeEncoded(e,!0,a);o.A.convertToEndOffset(h.tokens,e.length);const d=new o.A(h.tokens,e,t).inflate();let c=0;for(let t=0,i=d.getCount();t').concat(n.YU(e.substring(c,o)),""),c=o}a=h.endState}return s+="
    ",s}},27127:(e,t,i)=>{i.d(t,{Hf:()=>h,Qi:()=>d,RM:()=>s,Tx:()=>c,U:()=>o,dJ:()=>a,je:()=>u,pt:()=>g,sh:()=>n,tk:()=>l});var n,o,s,r=i(10451);!function(e){e[e.Left=1]="Left",e[e.Center=2]="Center",e[e.Right=4]="Right",e[e.Full=7]="Full"}(n||(n={})),function(e){e[e.Left=1]="Left",e[e.Center=2]="Center",e[e.Right=3]="Right"}(o||(o={})),function(e){e[e.Both=0]="Both",e[e.Right=1]="Right",e[e.Left=2]="Left",e[e.None=3]="None"}(s||(s={}));class a{get originalIndentSize(){return this._indentSizeIsTabSize?"tabSize":this.indentSize}constructor(e){this._textModelResolvedOptionsBrand=void 0,this.tabSize=Math.max(1,0|e.tabSize),"tabSize"===e.indentSize?(this.indentSize=this.tabSize,this._indentSizeIsTabSize=!0):(this.indentSize=Math.max(1,0|e.indentSize),this._indentSizeIsTabSize=!1),this.insertSpaces=Boolean(e.insertSpaces),this.defaultEOL=0|e.defaultEOL,this.trimAutoWhitespace=Boolean(e.trimAutoWhitespace),this.bracketPairColorizationOptions=e.bracketPairColorizationOptions}equals(e){return this.tabSize===e.tabSize&&this._indentSizeIsTabSize===e._indentSizeIsTabSize&&this.indentSize===e.indentSize&&this.insertSpaces===e.insertSpaces&&this.defaultEOL===e.defaultEOL&&this.trimAutoWhitespace===e.trimAutoWhitespace&&(0,r.fS)(this.bracketPairColorizationOptions,e.bracketPairColorizationOptions)}createChangeEvent(e){return{tabSize:this.tabSize!==e.tabSize,indentSize:this.indentSize!==e.indentSize,insertSpaces:this.insertSpaces!==e.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==e.trimAutoWhitespace}}}class l{constructor(e,t){this._findMatchBrand=void 0,this.range=e,this.matches=t}}function h(e){return e&&"function"===typeof e.read}class d{constructor(e,t,i,n,o,s){this.identifier=e,this.range=t,this.text=i,this.forceMoveMarkers=n,this.isAutoWhitespaceEdit=o,this._isTracked=s}}class c{constructor(e,t,i){this.regex=e,this.wordSeparators=t,this.simpleSearch=i}}class u{constructor(e,t,i){this.reverseEdits=e,this.changes=t,this.trimAutoWhitespaceLineNumbers=i}}function g(e){return!e.isTooLargeForSyncing()&&!e.isForSimpleWidget}},44028:(e,t,i)=>{i.d(t,{BH:()=>p,Dm:()=>v,Kd:()=>l,Y0:()=>h,n2:()=>_});var n=i(85108),o=i(5255),s=i(59321),r=i(36779);class a{get length(){return this._length}constructor(e){this._length=e}}class l extends a{static create(e,t,i){let n=e.length;return t&&(n=(0,s.Ii)(n,t.length)),i&&(n=(0,s.Ii)(n,i.length)),new l(n,e,t,i,t?t.missingOpeningBracketIds:r.tS.getEmpty())}get kind(){return 2}get listHeight(){return 0}get childrenLength(){return 3}getChild(e){switch(e){case 0:return this.openingBracket;case 1:return this.child;case 2:return this.closingBracket}throw new Error("Invalid child index")}get children(){const e=[];return e.push(this.openingBracket),this.child&&e.push(this.child),this.closingBracket&&e.push(this.closingBracket),e}constructor(e,t,i,n,o){super(e),this.openingBracket=t,this.child=i,this.closingBracket=n,this.missingOpeningBracketIds=o}canBeReused(e){return null!==this.closingBracket&&!e.intersects(this.missingOpeningBracketIds)}deepClone(){return new l(this.length,this.openingBracket.deepClone(),this.child&&this.child.deepClone(),this.closingBracket&&this.closingBracket.deepClone(),this.missingOpeningBracketIds)}computeMinIndentation(e,t){return this.child?this.child.computeMinIndentation((0,s.Ii)(e,this.openingBracket.length),t):Number.MAX_SAFE_INTEGER}}class h extends a{static create23(e,t,i){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=e.length,r=e.missingOpeningBracketIds;if(e.listHeight!==t.listHeight)throw new Error("Invalid list heights");if(o=(0,s.Ii)(o,t.length),r=r.merge(t.missingOpeningBracketIds),i){if(e.listHeight!==i.listHeight)throw new Error("Invalid list heights");o=(0,s.Ii)(o,i.length),r=r.merge(i.missingOpeningBracketIds)}return n?new c(o,e.listHeight+1,e,t,i,r):new d(o,e.listHeight+1,e,t,i,r)}static getEmpty(){return new g(s.xl,0,[],r.tS.getEmpty())}get kind(){return 4}get missingOpeningBracketIds(){return this._missingOpeningBracketIds}constructor(e,t,i){super(e),this.listHeight=t,this._missingOpeningBracketIds=i,this.cachedMinIndentation=-1}throwIfImmutable(){}makeLastElementMutable(){this.throwIfImmutable();const e=this.childrenLength;if(0===e)return;const t=this.getChild(e-1),i=4===t.kind?t.toMutable():t;return t!==i&&this.setChild(e-1,i),i}makeFirstElementMutable(){this.throwIfImmutable();if(0===this.childrenLength)return;const e=this.getChild(0),t=4===e.kind?e.toMutable():e;return e!==t&&this.setChild(0,t),t}canBeReused(e){if(e.intersects(this.missingOpeningBracketIds))return!1;if(0===this.childrenLength)return!1;let t=this;for(;4===t.kind;){const e=t.childrenLength;if(0===e)throw new n.he;t=t.getChild(e-1)}return t.canBeReused(e)}handleChildrenChanged(){this.throwIfImmutable();const e=this.childrenLength;let t=this.getChild(0).length,i=this.getChild(0).missingOpeningBracketIds;for(let n=1;n{i.d(t,{Q:()=>s,Y:()=>r});var n=i(10670),o=i(59321);class s{static fromModelContentChanges(e){return e.map((e=>{const t=n.e.lift(e.range);return new s((0,o.PZ)(t.getStartPosition()),(0,o.PZ)(t.getEndPosition()),(0,o.oR)(e.text))})).reverse()}constructor(e,t,i){this.startOffset=e,this.endOffset=t,this.newLength=i}toString(){return"[".concat((0,o.Hw)(this.startOffset),"...").concat((0,o.Hw)(this.endOffset),") -> ").concat((0,o.Hw)(this.newLength))}}class r{constructor(e){this.nextEditIdx=0,this.deltaOldToNewLineCount=0,this.deltaOldToNewColumnCount=0,this.deltaLineIdxInOld=-1,this.edits=e.map((e=>a.from(e)))}getOffsetBeforeChange(e){return this.adjustNextEdit(e),this.translateCurToOld(e)}getDistanceToNextChange(e){this.adjustNextEdit(e);const t=this.edits[this.nextEditIdx],i=t?this.translateOldToCur(t.offsetObj):null;return null===i?null:(0,o.BE)(e,i)}translateOldToCur(e){return e.lineCount===this.deltaLineIdxInOld?(0,o.Hg)(e.lineCount+this.deltaOldToNewLineCount,e.columnCount+this.deltaOldToNewColumnCount):(0,o.Hg)(e.lineCount+this.deltaOldToNewLineCount,e.columnCount)}translateCurToOld(e){const t=(0,o.Hw)(e);return t.lineCount-this.deltaOldToNewLineCount===this.deltaLineIdxInOld?(0,o.Hg)(t.lineCount-this.deltaOldToNewLineCount,t.columnCount-this.deltaOldToNewColumnCount):(0,o.Hg)(t.lineCount-this.deltaOldToNewLineCount,t.columnCount)}adjustNextEdit(e){for(;this.nextEditIdx{i.d(t,{Z:()=>h});var n=i(25085),o=i(44028),s=i(59321),r=i(36779),a=i(85421);class l{static createFromLanguage(e,t){function i(e){return t.getKey("".concat(e.languageId,":::").concat(e.bracketText))}const n=new Map;for(const l of e.bracketsNew.openingBrackets){const e=(0,s.Hg)(0,l.bracketText.length),t=i(l),h=r.tS.getEmpty().add(t,r.Qw);n.set(l.bracketText,new a.WU(e,1,t,h,o.n2.create(e,l,h)))}for(const l of e.bracketsNew.closingBrackets){const e=(0,s.Hg)(0,l.bracketText.length);let t=r.tS.getEmpty();const h=l.getOpeningBrackets();for(const n of h)t=t.add(i(n),r.Qw);n.set(l.bracketText,new a.WU(e,2,i(h[0]),t,o.n2.create(e,l,t)))}return new l(n)}constructor(e){this.map=e,this.hasRegExp=!1,this._regExpGlobal=null}getRegExpStr(){if(this.isEmpty)return null;{const e=[...this.map.keys()];return e.sort(),e.reverse(),e.map((e=>function(e){let t=(0,n.ec)(e);/^[\w ]+/.test(e)&&(t="\\b".concat(t));/[\w ]+$/.test(e)&&(t="".concat(t,"\\b"));return t}(e))).join("|")}}get regExpGlobal(){if(!this.hasRegExp){const e=this.getRegExpStr();this._regExpGlobal=e?new RegExp(e,"gi"):null,this.hasRegExp=!0}return this._regExpGlobal}getToken(e){return this.map.get(e.toLowerCase())}findClosingTokenText(e){for(const[t,i]of this.map)if(2===i.kind&&i.bracketIds.intersects(e))return t}get isEmpty(){return 0===this.map.size}}class h{constructor(e,t){this.denseKeyProvider=e,this.getLanguageConfiguration=t,this.languageIdToBracketTokens=new Map}didLanguageChange(e){return this.languageIdToBracketTokens.has(e)}getSingleLanguageBracketTokens(e){let t=this.languageIdToBracketTokens.get(e);return t||(t=l.createFromLanguage(this.getLanguageConfiguration(e),this.denseKeyProvider),this.languageIdToBracketTokens.set(e,t)),t}}},31246:(e,t,i)=>{i.d(t,{o:()=>r});var n=i(75629),o=i(74196),s=i(59321);function r(e,t){if(0===e.length)return t;if(0===t.length)return e;const i=new n.H9(l(e)),r=l(t);r.push({modified:!1,lengthBefore:void 0,lengthAfter:void 0});let h=i.dequeue();function d(e){if(void 0===e){const e=i.takeWhile((e=>!0))||[];return h&&e.unshift(h),e}const t=[];for(;h&&!(0,s.xd)(e);){const[n,o]=h.splitAt(e);t.push(n),e=(0,s.BE)(n.lengthAfter,e),h=null!==o&&void 0!==o?o:i.dequeue()}return(0,s.xd)(e)||t.push(new a(!1,e,e)),t}const c=[];function u(e,t,i){if(c.length>0&&(0,s.rM)(c[c.length-1].endOffset,e)){const e=c[c.length-1];c[c.length-1]=new o.Q(e.startOffset,t,(0,s.Ii)(e.newLength,i))}else c.push({startOffset:e,endOffset:t,newLength:i})}let g=s.xl;for(const n of r){const e=d(n.lengthBefore);if(n.modified){const t=(0,s.tQ)(e,(e=>e.lengthBefore)),i=(0,s.Ii)(g,t);u(g,i,n.lengthAfter),g=i}else for(const t of e){const e=g;g=(0,s.Ii)(g,t.lengthBefore),t.modified&&u(e,g,t.lengthAfter)}}return c}class a{constructor(e,t,i){this.modified=e,this.lengthBefore=t,this.lengthAfter=i}splitAt(e){const t=(0,s.BE)(e,this.lengthAfter);return(0,s.rM)(t,s.xl)?[this,void 0]:this.modified?[new a(this.modified,this.lengthBefore,e),new a(this.modified,s.xl,t)]:[new a(this.modified,e,e),new a(this.modified,t,t)]}toString(){return"".concat(this.modified?"M":"U",":").concat((0,s.Hw)(this.lengthBefore)," -> ").concat((0,s.Hw)(this.lengthAfter))}}function l(e){const t=[];let i=s.xl;for(const n of e){const e=(0,s.BE)(i,n.startOffset);(0,s.xd)(e)||t.push(new a(!1,e,e));const o=(0,s.BE)(n.startOffset,n.endOffset);t.push(new a(!0,o,n.newLength)),i=n.endOffset}return t}},59321:(e,t,i)=>{i.d(t,{BE:()=>_,By:()=>b,F_:()=>g,Hg:()=>d,Hw:()=>c,Ii:()=>m,PZ:()=>w,Qw:()=>y,VR:()=>v,W9:()=>u,Zq:()=>C,av:()=>r,oR:()=>S,rM:()=>p,tQ:()=>f,xd:()=>l,xl:()=>a});var n=i(25085),o=i(10670),s=i(59122);function r(e,t,i,n){return e!==i?d(i-e,n):d(0,n-t)}const a=0;function l(e){return 0===e}const h=2**26;function d(e,t){return e*h+t}function c(e){const t=e,i=Math.floor(t/h),n=t-i*h;return new s.A(i,n)}function u(e){return Math.floor(e/h)}function g(e){return e}function m(e,t){let i=e+t;return t>=h&&(i-=e%h),i}function f(e,t){return e.reduce(((e,i)=>m(e,t(i))),a)}function p(e,t){return e===t}function _(e,t){const i=e,n=t;if(n-i<=0)return a;const o=Math.floor(i/h),s=Math.floor(n/h),r=n-s*h;if(o===s){return d(0,r-(i-o*h))}return d(s-o,r)}function v(e,t){return e=t}function w(e){return d(e.lineNumber-1,e.column-1)}function y(e,t){const i=e,n=Math.floor(i/h),s=i-n*h,r=t,a=Math.floor(r/h),l=r-a*h;return new o.e(n+1,s+1,a+1,l+1)}function S(e){const t=(0,n.uq)(e);return d(t.length-1,t[t.length-1].length)}},3596:(e,t,i)=>{i.d(t,{w:()=>g});var n=i(44028),o=i(74196),s=i(36779),r=i(59321);function a(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(0===e.length)return null;if(1===e.length)return e[0];let i=e.length;for(;i>3;){const o=i>>1;for(let s=0;s=3?e[2]:null,t)}function l(e,t){return Math.abs(e.listHeight-t.listHeight)}function h(e,t){return e.listHeight===t.listHeight?n.Y0.create23(e,t,null,!1):e.listHeight>t.listHeight?function(e,t){let i=e=e.toMutable();const o=[];let s;for(;;){if(t.listHeight===i.listHeight){s=t;break}if(4!==i.kind)throw new Error("unexpected");o.push(i),i=i.makeLastElementMutable()}for(let r=o.length-1;r>=0;r--){const e=o[r];s?e.childrenLength>=3?s=n.Y0.create23(e.unappendChild(),s,null,!1):(e.appendChildOfSameHeight(s),s=void 0):e.handleChildrenChanged()}return s?n.Y0.create23(e,s,null,!1):e}(e,t):function(e,t){let i=e=e.toMutable();const o=[];for(;t.listHeight!==i.listHeight;){if(4!==i.kind)throw new Error("unexpected");o.push(i),i=i.makeFirstElementMutable()}let s=t;for(let r=o.length-1;r>=0;r--){const e=o[r];s?e.childrenLength>=3?s=n.Y0.create23(s,e.unprependChild(),null,!1):(e.prependChildOfSameHeight(s),s=void 0):e.handleChildrenChanged()}return s?n.Y0.create23(s,e,null,!1):e}(t,e)}class d{constructor(e){this.lastOffset=r.xl,this.nextNodes=[e],this.offsets=[r.xl],this.idxs=[]}readLongestNodeAt(e,t){if((0,r.VR)(e,this.lastOffset))throw new Error("Invalid offset");for(this.lastOffset=e;;){const i=u(this.nextNodes);if(!i)return;const n=u(this.offsets);if((0,r.VR)(e,n))return;if((0,r.VR)(n,e))if((0,r.Ii)(n,i.length)<=e)this.nextNodeAfterCurrent();else{const e=c(i);-1!==e?(this.nextNodes.push(i.getChild(e)),this.offsets.push(n),this.idxs.push(e)):this.nextNodeAfterCurrent()}else{if(t(i))return this.nextNodeAfterCurrent(),i;{const e=c(i);if(-1===e)return void this.nextNodeAfterCurrent();this.nextNodes.push(i.getChild(e)),this.offsets.push(n),this.idxs.push(e)}}}}nextNodeAfterCurrent(){for(;;){const e=u(this.offsets),t=u(this.nextNodes);if(this.nextNodes.pop(),this.offsets.pop(),0===this.idxs.length)break;const i=u(this.nextNodes),n=c(i,this.idxs[this.idxs.length-1]);if(-1!==n){this.nextNodes.push(i.getChild(n)),this.offsets.push((0,r.Ii)(e,t.length)),this.idxs[this.idxs.length-1]=n;break}this.idxs.pop()}}}function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;for(;;){if(t++,t>=e.childrenLength)return-1;if(e.getChild(t))return t}}function u(e){return e.length>0?e[e.length-1]:void 0}function g(e,t,i,n){return new m(e,t,i,n).parseDocument()}class m{constructor(e,t,i,n){if(this.tokenizer=e,this.createImmutableLists=n,this._itemsConstructed=0,this._itemsFromCache=0,i&&n)throw new Error("Not supported");this.oldNodeReader=i?new d(i):void 0,this.positionMapper=new o.Y(t)}parseDocument(){this._itemsConstructed=0,this._itemsFromCache=0;let e=this.parseList(s.tS.getEmpty(),0);return e||(e=n.Y0.getEmpty()),e}parseList(e,t){const i=[];for(;;){let n=this.tryReadChildFromCache(e);if(!n){const i=this.tokenizer.peek();if(!i||2===i.kind&&i.bracketIds.intersects(e))break;n=this.parseChild(e,t+1)}4===n.kind&&0===n.childrenLength||i.push(n)}const n=this.oldNodeReader?function(e){if(0===e.length)return null;if(1===e.length)return e[0];let t=0;function i(){if(t>=e.length)return null;const i=t,n=e[i].listHeight;for(t++;t=2?a(0===i&&t===e.length?e:e.slice(i,t),!1):e[i]}let n=i(),o=i();if(!o)return n;for(let s=i();s;s=i())l(n,o)<=l(o,s)?(n=h(n,o),o=s):o=h(o,s);return h(n,o)}(i):a(i,this.createImmutableLists);return n}tryReadChildFromCache(e){if(this.oldNodeReader){const t=this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);if(null===t||!(0,r.xd)(t)){const i=this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset),(i=>{if(null!==t&&!(0,r.VR)(i.length,t))return!1;return i.canBeReused(e)}));if(i)return this._itemsFromCache++,this.tokenizer.skip(i.length),i}}}parseChild(e,t){this._itemsConstructed++;const i=this.tokenizer.read();switch(i.kind){case 2:return new n.Dm(i.bracketIds,i.length);case 0:return i.astNode;case 1:{if(t>300)return new n.BH(i.length);const o=e.merge(i.bracketIds),s=this.parseList(o,t+1),r=this.tokenizer.peek();return r&&2===r.kind&&(r.bracketId===i.bracketId||r.bracketIds.intersects(i.bracketIds))?(this.tokenizer.read(),n.Kd.create(i.astNode,s,r.astNode)):n.Kd.create(i.astNode,s,null)}default:throw new Error("unexpected")}}}},36779:(e,t,i)=>{i.d(t,{FE:()=>r,Qw:()=>s,tS:()=>o});const n=[];class o{static create(e,t){if(e<=128&&0===t.length){let i=o.cache[e];return i||(i=new o(e,t),o.cache[e]=i),i}return new o(e,t)}static getEmpty(){return this.empty}constructor(e,t){this.items=e,this.additionalItems=t}add(e,t){const i=t.getKey(e);let n=i>>5;if(0===n){const e=1<e};class r{constructor(){this.items=new Map}getKey(e){let t=this.items.get(e);return void 0===t&&(t=this.items.size,this.items.set(e,t)),t}}},85421:(e,t,i)=>{i.d(t,{WU:()=>l,g:()=>c,xH:()=>h});var n=i(85108),o=i(55562),s=i(44028),r=i(59321),a=i(36779);class l{constructor(e,t,i,n,o){this.length=e,this.kind=t,this.bracketId=i,this.bracketIds=n,this.astNode=o}}class h{constructor(e,t){this.textModel=e,this.bracketTokens=t,this.reader=new d(this.textModel,this.bracketTokens),this._offset=r.xl,this.didPeek=!1,this.peeked=null,this.textBufferLineCount=e.getLineCount(),this.textBufferLastLineLength=e.getLineLength(this.textBufferLineCount)}get offset(){return this._offset}get length(){return(0,r.Hg)(this.textBufferLineCount-1,this.textBufferLastLineLength)}skip(e){this.didPeek=!1,this._offset=(0,r.Ii)(this._offset,e);const t=(0,r.Hw)(this._offset);this.reader.setPosition(t.lineCount,t.columnCount)}read(){let e;return this.peeked?(this.didPeek=!1,e=this.peeked):e=this.reader.read(),e&&(this._offset=(0,r.Ii)(this._offset,e.length)),e}peek(){return this.didPeek||(this.peeked=this.reader.read(),this.didPeek=!0),this.peeked}}class d{constructor(e,t){this.textModel=e,this.bracketTokens=t,this.lineIdx=0,this.line=null,this.lineCharOffset=0,this.lineTokens=null,this.lineTokenOffset=0,this.peekedToken=null,this.textBufferLineCount=e.getLineCount(),this.textBufferLastLineLength=e.getLineLength(this.textBufferLineCount)}setPosition(e,t){e===this.lineIdx?(this.lineCharOffset=t,null!==this.line&&(this.lineTokenOffset=0===this.lineCharOffset?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset))):(this.lineIdx=e,this.lineCharOffset=t,this.line=null),this.peekedToken=null}read(){if(this.peekedToken){const e=this.peekedToken;return this.peekedToken=null,this.lineCharOffset+=(0,r.F_)(e.length),e}if(this.lineIdx>this.textBufferLineCount-1||this.lineIdx===this.textBufferLineCount-1&&this.lineCharOffset>=this.textBufferLastLineLength)return null;null===this.line&&(this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.line=this.lineTokens.getLineContent(),this.lineTokenOffset=0===this.lineCharOffset?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset));const e=this.lineIdx,t=this.lineCharOffset;let i=0;for(;;){const n=this.lineTokens,s=n.getCount();let a=null;if(this.lineTokenOffset1e3)break}if(i>1500)break}const n=(0,r.av)(e,t,this.lineIdx,this.lineCharOffset);return new l(n,0,-1,a.tS.getEmpty(),new s.BH(n))}}class c{constructor(e,t){this.text=e,this._offset=r.xl,this.idx=0;const i=t.getRegExpStr(),n=i?new RegExp(i+"|\n","gi"):null,o=[];let h,d=0,c=0,u=0,g=0;const m=[];for(let _=0;_<60;_++)m.push(new l((0,r.Hg)(0,_),0,-1,a.tS.getEmpty(),new s.BH((0,r.Hg)(0,_))));const f=[];for(let _=0;_<60;_++)f.push(new l((0,r.Hg)(1,_),0,-1,a.tS.getEmpty(),new s.BH((0,r.Hg)(1,_))));if(n)for(n.lastIndex=0;null!==(h=n.exec(e));){const e=h.index,i=h[0];if("\n"===i)d++,c=e+1;else{if(u!==e){let t;if(g===d){const i=e-u;if(i{i.d(t,{NL:()=>p,e9:()=>f});var n=i(71721),o=i(85108),s=i(67078),r=i(82682),a=i(52058),l=i(12966),h=i(55694);function d(e){return e.toString()}class c{static create(e,t){const i=e.getAlternativeVersionId(),n=m(e);return new c(i,i,n,n,t,t,[])}constructor(e,t,i,n,o,s,r){this.beforeVersionId=e,this.afterVersionId=t,this.beforeEOL=i,this.afterEOL=n,this.beforeCursorState=o,this.afterCursorState=s,this.changes=r}append(e,t,i,n,o){t.length>0&&(this.changes=(0,a.b)(this.changes,t)),this.afterEOL=i,this.afterVersionId=n,this.afterCursorState=o}static _writeSelectionsSize(e){return 4+16*(e?e.length:0)}static _writeSelections(e,t,i){if(l.T4(e,t?t.length:0,i),i+=4,t)for(const n of t)l.T4(e,n.selectionStartLineNumber,i),i+=4,l.T4(e,n.selectionStartColumn,i),i+=4,l.T4(e,n.positionLineNumber,i),i+=4,l.T4(e,n.positionColumn,i),i+=4;return i}static _readSelections(e,t,i){const n=l.Ag(e,t);t+=4;for(let o=0;oe.toString())).join(", ")}matchesResource(e){return(r.o.isUri(this.model)?this.model:this.model.uri).toString()===e.toString()}setModel(e){this.model=e}canAppend(e){return this.model===e&&this._data instanceof c}append(e,t,i,n,o){this._data instanceof c&&this._data.append(e,t,i,n,o)}close(){this._data instanceof c&&(this._data=this._data.serialize())}open(){this._data instanceof c||(this._data=c.deserialize(this._data))}undo(){if(r.o.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof c&&(this._data=this._data.serialize());const e=c.deserialize(this._data);this.model._applyUndo(e.changes,e.beforeEOL,e.beforeVersionId,e.beforeCursorState)}redo(){if(r.o.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof c&&(this._data=this._data.serialize());const e=c.deserialize(this._data);this.model._applyRedo(e.changes,e.afterEOL,e.afterVersionId,e.afterCursorState)}heapSize(){return this._data instanceof c&&(this._data=this._data.serialize()),this._data.byteLength+168}}class g{get resources(){return this._editStackElementsArr.map((e=>e.resource))}constructor(e,t,i){this.label=e,this.code=t,this.type=1,this._isOpen=!0,this._editStackElementsArr=i.slice(0),this._editStackElementsMap=new Map;for(const n of this._editStackElementsArr){const e=d(n.resource);this._editStackElementsMap.set(e,n)}this._delegate=null}prepareUndoRedo(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}matchesResource(e){const t=d(e);return this._editStackElementsMap.has(t)}setModel(e){const t=d(r.o.isUri(e)?e:e.uri);this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).setModel(e)}canAppend(e){if(!this._isOpen)return!1;const t=d(e.uri);if(this._editStackElementsMap.has(t)){return this._editStackElementsMap.get(t).canAppend(e)}return!1}append(e,t,i,n,o){const s=d(e.uri);this._editStackElementsMap.get(s).append(e,t,i,n,o)}close(){this._isOpen=!1}open(){}undo(){this._isOpen=!1;for(const e of this._editStackElementsArr)e.undo()}redo(){for(const e of this._editStackElementsArr)e.redo()}heapSize(e){const t=d(e);if(this._editStackElementsMap.has(t)){return this._editStackElementsMap.get(t).heapSize()}return 0}split(){return this._editStackElementsArr}toString(){const e=[];for(const t of this._editStackElementsArr)e.push("".concat((0,h.EZ)(t.resource),": ").concat(t));return"{".concat(e.join(", "),"}")}}function m(e){return"\n"===e.getEOL()?0:1}function f(e){return!!e&&(e instanceof u||e instanceof g)}class p{constructor(e,t){this._model=e,this._undoRedoService=t}pushStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);f(e)&&e.close()}popStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);f(e)&&e.open()}clear(){this._undoRedoService.removeElements(this._model.uri)}_getOrCreateEditStackElement(e,t){const i=this._undoRedoService.getLastElement(this._model.uri);if(f(i)&&i.canAppend(this._model))return i;const o=new u(n.NC("edit","Typing"),"undoredo.textBufferEdit",this._model,e);return this._undoRedoService.pushElement(o,t),o}pushEOL(e){const t=this._getOrCreateEditStackElement(null,void 0);this._model.setEOL(e),t.append(this._model,[],m(this._model),this._model.getAlternativeVersionId(),null)}pushEditOperation(e,t,i,n){const o=this._getOrCreateEditStackElement(e,n),s=this._model.applyEdits(t,!0),r=p._computeCursorState(i,s),a=s.map(((e,t)=>({index:t,textChange:e.textChange})));return a.sort(((e,t)=>e.textChange.oldPosition===t.textChange.oldPosition?e.index-t.index:e.textChange.oldPosition-t.textChange.oldPosition)),o.append(this._model,a.map((e=>e.textChange)),m(this._model),this._model.getAlternativeVersionId(),r),r}static _computeCursorState(e,t){try{return e?e(t):null}catch(i){return(0,o.dL)(i),null}}}},8236:(e,t,i)=>{i.d(t,{W:()=>u,l:()=>c});var n=i(52910),o=i(25085),s=i(5255),r=i(10670),a=i(81958),l=i(29430),h=i(6192),d=i(85108);class c extends a.U{constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t}getLanguageConfiguration(e){return this.languageConfigurationService.getLanguageConfiguration(e)}_computeIndentLevel(e){return(0,l.q)(this.textModel.getLineContent(e+1),this.textModel.getOptions().tabSize)}getActiveIndentGuide(e,t,i){this.assertNotDisposed();const n=this.textModel.getLineCount();if(e<1||e>n)throw new d.he("Illegal value for lineNumber");const o=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,s=Boolean(o&&o.offSide);let r=-2,a=-1,l=-2,h=-1;const c=e=>{if(-1!==r&&(-2===r||r>e-1)){r=-1,a=-1;for(let t=e-2;t>=0;t--){const e=this._computeIndentLevel(t);if(e>=0){r=t,a=e;break}}}if(-2===l){l=-1,h=-1;for(let t=e;t=0){l=t,h=e;break}}}};let u=-2,g=-1,m=-2,f=-1;const p=e=>{if(-2===u){u=-1,g=-1;for(let t=e-2;t>=0;t--){const e=this._computeIndentLevel(t);if(e>=0){u=t,g=e;break}}}if(-1!==m&&(-2===m||m=0){m=t,f=e;break}}}};let _=0,v=!0,b=0,C=!0,w=0,y=0;for(let d=0;v||C;d++){const o=e-d,r=e+d;d>1&&(o<1||o1&&(r>n||r>i)&&(C=!1),d>5e4&&(v=!1,C=!1);let m=-1;if(v&&o>=1){const e=this._computeIndentLevel(o-1);e>=0?(l=o-1,h=e,m=Math.ceil(e/this.textModel.getOptions().indentSize)):(c(o),m=this._getIndentLevelForWhitespaceLine(s,a,h))}let S=-1;if(C&&r<=n){const e=this._computeIndentLevel(r-1);e>=0?(u=r-1,g=e,S=Math.ceil(e/this.textModel.getOptions().indentSize)):(p(r),S=this._getIndentLevelForWhitespaceLine(s,g,f))}if(0!==d){if(1===d){if(r<=n&&S>=0&&y+1===S){v=!1,_=r,b=r,w=S;continue}if(o>=1&&m>=0&&m-1===y){C=!1,_=o,b=o,w=m;continue}if(_=e,b=e,w=y,0===w)return{startLineNumber:_,endLineNumber:b,indent:w}}v&&(m>=w?_=o:v=!1),C&&(S>=w?b=r:C=!1)}else y=m}return{startLineNumber:_,endLineNumber:b,indent:w}}getLinesBracketGuides(e,t,i,s){var a;const l=[];for(let n=e;n<=t;n++)l.push([]);const d=this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new r.e(e,1,t,this.textModel.getLineMaxColumn(t))).toArray();let c;if(i&&d.length>0){const o=(e<=i.lineNumber&&i.lineNumber<=t?d:this.textModel.bracketPairs.getBracketPairsInRange(r.e.fromPositions(i)).toArray()).filter((e=>r.e.strictContainsPosition(e.range,i)));c=null===(a=(0,n.dF)(o,(e=>true)))||void 0===a?void 0:a.range}const g=this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType,m=new u;for(const n of d){if(!n.closingBracketRange)continue;const i=c&&n.range.equalsRange(c);if(!i&&!s.includeInactive)continue;const r=m.getInlineClassName(n.nestingLevel,n.nestingLevelOfEqualBracketType,g)+(s.highlightActive&&i?" "+m.activeClassName:""),a=n.openingBracketRange.getStartPosition(),d=n.closingBracketRange.getStartPosition(),u=s.horizontalGuides===h.s6.Enabled||s.horizontalGuides===h.s6.EnabledForActive&&i;if(n.range.startLineNumber===n.range.endLineNumber){u&&l[n.range.startLineNumber-e].push(new h.UO(-1,n.openingBracketRange.getEndPosition().column,r,new h.vW(!1,d.column),-1,-1));continue}const f=this.getVisibleColumnFromPosition(d),p=this.getVisibleColumnFromPosition(n.openingBracketRange.getStartPosition()),_=Math.min(p,f,n.minVisibleColumnIndentation+1);let v=!1;o.LC(this.textModel.getLineContent(n.closingBracketRange.startLineNumber))=e&&p>_&&l[a.lineNumber-e].push(new h.UO(_,-1,r,new h.vW(!1,a.column),-1,-1)),d.lineNumber<=t&&f>_&&l[d.lineNumber-e].push(new h.UO(_,-1,r,new h.vW(!v,d.column),-1,-1)))}for(const n of l)n.sort(((e,t)=>e.visibleColumn-t.visibleColumn));return l}getVisibleColumnFromPosition(e){return s.i.visibleColumnFromColumn(this.textModel.getLineContent(e.lineNumber),e.column,this.textModel.getOptions().tabSize)+1}getLinesIndentGuides(e,t){this.assertNotDisposed();const i=this.textModel.getLineCount();if(e<1||e>i)throw new Error("Illegal value for startLineNumber");if(t<1||t>i)throw new Error("Illegal value for endLineNumber");const n=this.textModel.getOptions(),o=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,s=Boolean(o&&o.offSide),r=new Array(t-e+1);let a=-2,l=-1,h=-2,d=-1;for(let c=e;c<=t;c++){const t=c-e,o=this._computeIndentLevel(c-1);if(o>=0)a=c-1,l=o,r[t]=Math.ceil(o/n.indentSize);else{if(-2===a){a=-1,l=-1;for(let e=c-2;e>=0;e--){const t=this._computeIndentLevel(e);if(t>=0){a=e,l=t;break}}}if(-1!==h&&(-2===h||h=0){h=e,d=t;break}}}r[t]=this._getIndentLevelForWhitespaceLine(s,l,d)}}return r}_getIndentLevelForWhitespaceLine(e,t,i){const n=this.textModel.getOptions();return-1===t||-1===i?0:t{i.d(t,{Ck:()=>r,oQ:()=>s});var n=i(75629),o=i(44918);class s{constructor(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(e,t){e=(0,o.A)(e);const i=this.values,n=this.prefixSum,s=t.length;return 0!==s&&(this.values=new Uint32Array(i.length+s),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e),e+s),this.values.set(t,e),e-1=0&&this.prefixSum.set(n.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(e,t){return e=(0,o.A)(e),t=(0,o.A)(t),this.values[e]!==t&&(this.values[e]=t,e-1=i.length)return!1;const s=i.length-e;return t>=s&&(t=s),0!==t&&(this.values=new Uint32Array(i.length-t),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1=0&&this.prefixSum.set(n.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return 0===this.values.length?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(e){return e<0?0:(e=(0,o.A)(e),this._getPrefixSum(e))}_getPrefixSum(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];let t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(let i=t;i<=e;i++)this.prefixSum[i]=this.prefixSum[i-1]+this.values[i];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]}getIndexOf(e){e=Math.floor(e),this.getTotalSum();let t=0,i=this.values.length-1,n=0,o=0,s=0;for(;t<=i;)if(n=t+(i-t)/2|0,o=this.prefixSum[n],s=o-this.values[n],e=o))break;t=n+1}return new a(n,e-s)}}class r{constructor(e){this._values=e,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(e){return this._ensureValid(),0===e?0:this._prefixSum[e-1]}getIndexOf(e){this._ensureValid();const t=this._indexBySum[e],i=t>0?this._prefixSum[t-1]:0;return new a(t,e-i)}removeValues(e,t){this._values.splice(e,t),this._invalidate(e)}insertValues(e,t){this._values=(0,n.Zv)(this._values,e,t),this._invalidate(e)}_invalidate(e){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,e-1)}_ensureValid(){if(!this._isValid){for(let e=this._validEndIndex+1,t=this._values.length;e0?this._prefixSum[e-1]:0;this._prefixSum[e]=i+t;for(let n=0;n{i.d(t,{HS:()=>Wt,qx:()=>Ht,yO:()=>Mt});var n=i(75629),o=i(89652),s=i(85108),r=i(24219),a=i(89599),l=i(25085),h=i(82682),d=i(55494),c=i(48941),u=i(56590),g=i(2067),m=i(10670),f=i(67078),p=i(88975),_=i(69311),v=i(40801),b=i(27127),C=i(78366),w=i(43097);class y{constructor(e,t,i,n){this.range=e,this.nestingLevel=t,this.nestingLevelOfEqualBracketType=i,this.isInvalid=n}}class S{constructor(e,t,i,n,o,s){this.range=e,this.openingBracketRange=t,this.closingBracketRange=i,this.nestingLevel=n,this.nestingLevelOfEqualBracketType=o,this.bracketPairNode=s}get openingBracketInfo(){return this.bracketPairNode.openingBracket.bracketInfo}}class L extends S{constructor(e,t,i,n,o,s,r){super(e,t,i,n,o,s),this.minVisibleColumnIndentation=r}}var k=i(74196),D=i(43328),N=i(59321),x=i(3596),E=i(36779),I=i(85421),T=i(31246);class M extends a.JT{didLanguageChange(e){return this.brackets.didLanguageChange(e)}constructor(e,t){if(super(),this.textModel=e,this.getLanguageConfiguration=t,this.didChangeEmitter=new r.Q5,this.denseKeyProvider=new E.FE,this.brackets=new D.Z(this.denseKeyProvider,this.getLanguageConfiguration),this.onDidChange=this.didChangeEmitter.event,this.queuedTextEditsForInitialAstWithoutTokens=[],this.queuedTextEdits=[],e.tokenization.hasTokens)2===e.tokenization.backgroundTokenizationState?(this.initialAstWithoutTokens=void 0,this.astWithTokens=this.parseDocumentFromTextBuffer([],void 0,!1)):(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer([],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens);else{const e=this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()),t=new I.g(this.textModel.getValue(),e);this.initialAstWithoutTokens=(0,x.w)(t,[],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens}}handleDidChangeBackgroundTokenizationState(){if(2===this.textModel.tokenization.backgroundTokenizationState){const e=void 0===this.initialAstWithoutTokens;this.initialAstWithoutTokens=void 0,e||this.didChangeEmitter.fire()}}handleDidChangeTokens(e){let{ranges:t}=e;const i=t.map((e=>new k.Q((0,N.Hg)(e.fromLineNumber-1,0),(0,N.Hg)(e.toLineNumber,0),(0,N.Hg)(e.toLineNumber-e.fromLineNumber+1,0))));this.handleEdits(i,!0),this.initialAstWithoutTokens||this.didChangeEmitter.fire()}handleContentChanged(e){const t=k.Q.fromModelContentChanges(e.changes);this.handleEdits(t,!1)}handleEdits(e,t){const i=(0,T.o)(this.queuedTextEdits,e);this.queuedTextEdits=i,this.initialAstWithoutTokens&&!t&&(this.queuedTextEditsForInitialAstWithoutTokens=(0,T.o)(this.queuedTextEditsForInitialAstWithoutTokens,e))}flushQueue(){this.queuedTextEdits.length>0&&(this.astWithTokens=this.parseDocumentFromTextBuffer(this.queuedTextEdits,this.astWithTokens,!1),this.queuedTextEdits=[]),this.queuedTextEditsForInitialAstWithoutTokens.length>0&&(this.initialAstWithoutTokens&&(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer(this.queuedTextEditsForInitialAstWithoutTokens,this.initialAstWithoutTokens,!1)),this.queuedTextEditsForInitialAstWithoutTokens=[])}parseDocumentFromTextBuffer(e,t,i){const n=t,o=new I.xH(this.textModel,this.brackets);return(0,x.w)(o,e,n,i)}getBracketsInRange(e,t){this.flushQueue();const i=(0,N.Hg)(e.startLineNumber-1,e.startColumn-1),o=(0,N.Hg)(e.endLineNumber-1,e.endColumn-1);return new n.W$((e=>{const n=this.initialAstWithoutTokens||this.astWithTokens;O(n,N.xl,n.length,i,o,e,0,0,new Map,t)}))}getBracketPairsInRange(e,t){this.flushQueue();const i=(0,N.PZ)(e.getStartPosition()),o=(0,N.PZ)(e.getEndPosition());return new n.W$((e=>{const n=this.initialAstWithoutTokens||this.astWithTokens,s=new P(e,t,this.textModel);F(n,N.xl,n.length,i,o,s,0,new Map)}))}getFirstBracketAfter(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return R(t,N.xl,t.length,(0,N.PZ)(e))}getFirstBracketBefore(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return A(t,N.xl,t.length,(0,N.PZ)(e))}}function A(e,t,i,n){if(4===e.kind||2===e.kind){const o=[];for(const n of e.children)i=(0,N.Ii)(t,n.length),o.push({nodeOffsetStart:t,nodeOffsetEnd:i}),t=i;for(let t=o.length-1;t>=0;t--){const{nodeOffsetStart:i,nodeOffsetEnd:s}=o[t];if((0,N.VR)(i,n)){const o=A(e.children[t],i,s,n);if(o)return o}}return null}if(3===e.kind)return null;if(1===e.kind){const n=(0,N.Qw)(t,i);return{bracketInfo:e.bracketInfo,range:n}}return null}function R(e,t,i,n){if(4===e.kind||2===e.kind){for(const o of e.children){if(i=(0,N.Ii)(t,o.length),(0,N.VR)(n,i)){const e=R(o,t,i,n);if(e)return e}t=i}return null}if(3===e.kind)return null;if(1===e.kind){const n=(0,N.Qw)(t,i);return{bracketInfo:e.bracketInfo,range:n}}return null}function O(e,t,i,n,o,s,r,a,l,h){let d=arguments.length>10&&void 0!==arguments[10]&&arguments[10];if(r>200)return!0;e:for(;;)switch(e.kind){case 4:{const a=e.childrenLength;for(let d=0;d200)return!0;let h=!0;if(2===e.kind){let d=0;if(a){let t=a.get(e.openingBracket.text);void 0===t&&(t=0),d=t,t++,a.set(e.openingBracket.text,t)}const c=(0,N.Ii)(t,e.openingBracket.length);let u=-1;if(s.includeMinIndentation&&(u=e.computeMinIndentation(t,s.textModel)),h=s.push(new L((0,N.Qw)(t,i),(0,N.Qw)(t,c),e.closingBracket?(0,N.Qw)((0,N.Ii)(c,(null===(l=e.child)||void 0===l?void 0:l.length)||N.xl),i):void 0,r,d,e,u)),t=c,h&&e.child){const l=e.child;if(i=(0,N.Ii)(t,l.length),(0,N.By)(t,o)&&(0,N.Zq)(i,n)&&(h=F(l,t,i,n,o,s,r+1,a),!h))return!1}null===a||void 0===a||a.set(e.openingBracket.text,d)}else{let i=t;for(const t of e.children){const e=i;if(i=(0,N.Ii)(i,t.length),(0,N.By)(e,o)&&(0,N.By)(n,i)&&(h=F(t,e,i,n,o,s,r,a),!h))return!1}}return h}class B extends a.JT{get canBuildAST(){return this.textModel.getValueLength()<=5e6}constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t,this.bracketPairsTree=this._register(new a.XK),this.onDidChangeEmitter=new r.Q5,this.onDidChange=this.onDidChangeEmitter.event,this.bracketsRequested=!1,this._register(this.languageConfigurationService.onDidChange((e=>{var t;e.languageId&&!(null===(t=this.bracketPairsTree.value)||void 0===t?void 0:t.object.didLanguageChange(e.languageId))||(this.bracketPairsTree.clear(),this.updateBracketPairsTree())})))}handleDidChangeOptions(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeLanguage(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeContent(e){var t;null===(t=this.bracketPairsTree.value)||void 0===t||t.object.handleContentChanged(e)}handleDidChangeBackgroundTokenizationState(){var e;null===(e=this.bracketPairsTree.value)||void 0===e||e.object.handleDidChangeBackgroundTokenizationState()}handleDidChangeTokens(e){var t;null===(t=this.bracketPairsTree.value)||void 0===t||t.object.handleDidChangeTokens(e)}updateBracketPairsTree(){if(this.bracketsRequested&&this.canBuildAST){if(!this.bracketPairsTree.value){const i=new a.SL;this.bracketPairsTree.value=(e=i.add(new M(this.textModel,(e=>this.languageConfigurationService.getLanguageConfiguration(e)))),t=i,{object:e,dispose:()=>null===t||void 0===t?void 0:t.dispose()}),i.add(this.bracketPairsTree.value.object.onDidChange((e=>this.onDidChangeEmitter.fire(e)))),this.onDidChangeEmitter.fire()}}else this.bracketPairsTree.value&&(this.bracketPairsTree.clear(),this.onDidChangeEmitter.fire());var e,t}getBracketPairsInRange(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),(null===(t=this.bracketPairsTree.value)||void 0===t?void 0:t.object.getBracketPairsInRange(e,!1))||n.W$.empty}getBracketPairsInRangeWithMinIndentation(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),(null===(t=this.bracketPairsTree.value)||void 0===t?void 0:t.object.getBracketPairsInRange(e,!0))||n.W$.empty}getBracketsInRange(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];var i;return this.bracketsRequested=!0,this.updateBracketPairsTree(),(null===(i=this.bracketPairsTree.value)||void 0===i?void 0:i.object.getBracketsInRange(e,t))||n.W$.empty}findMatchingBracketUp(e,t,i){const n=this.textModel.validatePosition(t),o=this.textModel.getLanguageIdAtPosition(n.lineNumber,n.column);if(this.canBuildAST){const i=this.languageConfigurationService.getLanguageConfiguration(o).bracketsNew.getClosingBracketInfo(e);if(!i)return null;const n=this.getBracketPairsInRange(m.e.fromPositions(t,t)).findLast((e=>i.closes(e.openingBracketInfo)));return n?n.openingBracketRange:null}{const t=e.toLowerCase(),s=this.languageConfigurationService.getLanguageConfiguration(o).brackets;if(!s)return null;const r=s.textIsBracket[t];return r?W(this._findMatchingBracketUp(r,n,z(i))):null}}matchBracket(e,t){if(this.canBuildAST){const t=this.getBracketPairsInRange(m.e.fromPositions(e,e)).filter((t=>void 0!==t.closingBracketRange&&(t.openingBracketRange.containsPosition(e)||t.closingBracketRange.containsPosition(e)))).findLastMaxBy((0,n.tT)((t=>t.openingBracketRange.containsPosition(e)?t.openingBracketRange:t.closingBracketRange),m.e.compareRangesUsingStarts));return t?[t.openingBracketRange,t.closingBracketRange]:null}{const i=z(t);return this._matchBracket(this.textModel.validatePosition(e),i)}}_establishBracketSearchOffsets(e,t,i,n){const o=t.getCount(),s=t.getLanguageId(n);let r=Math.max(0,e.column-1-i.maxBracketLength);for(let l=n-1;l>=0;l--){const e=t.getEndOffset(l);if(e<=r)break;if((0,C.Bu)(t.getStandardTokenType(l))||t.getLanguageId(l)!==s){r=e;break}}let a=Math.min(t.getLineContent().length,e.column-1+i.maxBracketLength);for(let l=n+1;l=a)break;if((0,C.Bu)(t.getStandardTokenType(l))||t.getLanguageId(l)!==s){a=e;break}}return{searchStartOffset:r,searchEndOffset:a}}_matchBracket(e,t){const i=e.lineNumber,n=this.textModel.tokenization.getLineTokens(i),o=this.textModel.getLineContent(i),s=n.findTokenIndexAtOffset(e.column-1);if(s<0)return null;const r=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId(s)).brackets;if(r&&!(0,C.Bu)(n.getStandardTokenType(s))){let{searchStartOffset:a,searchEndOffset:l}=this._establishBracketSearchOffsets(e,n,r,s),h=null;for(;;){const n=w.Vr.findNextBracketInRange(r.forwardRegex,i,o,a,l);if(!n)break;if(n.startColumn<=e.column&&e.column<=n.endColumn){const e=o.substring(n.startColumn-1,n.endColumn-1).toLowerCase(),i=this._matchFoundBracket(n,r.textIsBracket[e],r.textIsOpenBracket[e],t);if(i){if(i instanceof V)return null;h=i}}a=n.endColumn-1}if(h)return h}if(s>0&&n.getStartOffset(s)===e.column-1){const r=s-1,a=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId(r)).brackets;if(a&&!(0,C.Bu)(n.getStandardTokenType(r))){const{searchStartOffset:s,searchEndOffset:l}=this._establishBracketSearchOffsets(e,n,a,r),h=w.Vr.findPrevBracketInRange(a.reversedRegex,i,o,s,l);if(h&&h.startColumn<=e.column&&e.column<=h.endColumn){const e=o.substring(h.startColumn-1,h.endColumn-1).toLowerCase(),i=this._matchFoundBracket(h,a.textIsBracket[e],a.textIsOpenBracket[e],t);if(i)return i instanceof V?null:i}}}return null}_matchFoundBracket(e,t,i,n){if(!t)return null;const o=i?this._findMatchingBracketDown(t,e.getEndPosition(),n):this._findMatchingBracketUp(t,e.getStartPosition(),n);return o?o instanceof V?o:[e,o]:null}_findMatchingBracketUp(e,t,i){const n=e.languageId,o=e.reversedRegex;let s=-1,r=0;const a=(t,n,a,l)=>{for(;;){if(i&&++r%100===0&&!i())return V.INSTANCE;const h=w.Vr.findPrevBracketInRange(o,t,n,a,l);if(!h)break;const d=n.substring(h.startColumn-1,h.endColumn-1).toLowerCase();if(e.isOpen(d)?s++:e.isClose(d)&&s--,0===s)return h;l=h.startColumn-1}return null};for(let l=t.lineNumber;l>=1;l--){const e=this.textModel.tokenization.getLineTokens(l),i=e.getCount(),o=this.textModel.getLineContent(l);let s=i-1,r=o.length,h=o.length;l===t.lineNumber&&(s=e.findTokenIndexAtOffset(t.column-1),r=t.column-1,h=t.column-1);let d=!0;for(;s>=0;s--){const t=e.getLanguageId(s)===n&&!(0,C.Bu)(e.getStandardTokenType(s));if(t)d?r=e.getStartOffset(s):(r=e.getStartOffset(s),h=e.getEndOffset(s));else if(d&&r!==h){const e=a(l,o,r,h);if(e)return e}d=t}if(d&&r!==h){const e=a(l,o,r,h);if(e)return e}}return null}_findMatchingBracketDown(e,t,i){const n=e.languageId,o=e.forwardRegex;let s=1,r=0;const a=(t,n,a,l)=>{for(;;){if(i&&++r%100===0&&!i())return V.INSTANCE;const h=w.Vr.findNextBracketInRange(o,t,n,a,l);if(!h)break;const d=n.substring(h.startColumn-1,h.endColumn-1).toLowerCase();if(e.isOpen(d)?s++:e.isClose(d)&&s--,0===s)return h;a=h.endColumn-1}return null},l=this.textModel.getLineCount();for(let h=t.lineNumber;h<=l;h++){const e=this.textModel.tokenization.getLineTokens(h),i=e.getCount(),o=this.textModel.getLineContent(h);let s=0,r=0,l=0;h===t.lineNumber&&(s=e.findTokenIndexAtOffset(t.column-1),r=t.column-1,l=t.column-1);let d=!0;for(;s=1;r--){const e=this.textModel.tokenization.getLineTokens(r),t=e.getCount(),a=this.textModel.getLineContent(r);let l=t-1,h=a.length,d=a.length;if(r===i.lineNumber){l=e.findTokenIndexAtOffset(i.column-1),h=i.column-1,d=i.column-1;const t=e.getLanguageId(l);n!==t&&(n=t,o=this.languageConfigurationService.getLanguageConfiguration(n).brackets,s=this.languageConfigurationService.getLanguageConfiguration(n).bracketsNew)}let c=!0;for(;l>=0;l--){const t=e.getLanguageId(l);if(n!==t){if(o&&s&&c&&h!==d){const e=w.Vr.findPrevBracketInRange(o.reversedRegex,r,a,h,d);if(e)return this._toFoundBracket(s,e);c=!1}n=t,o=this.languageConfigurationService.getLanguageConfiguration(n).brackets,s=this.languageConfigurationService.getLanguageConfiguration(n).bracketsNew}const i=!!o&&!(0,C.Bu)(e.getStandardTokenType(l));if(i)c?h=e.getStartOffset(l):(h=e.getStartOffset(l),d=e.getEndOffset(l));else if(s&&o&&c&&h!==d){const e=w.Vr.findPrevBracketInRange(o.reversedRegex,r,a,h,d);if(e)return this._toFoundBracket(s,e)}c=i}if(s&&o&&c&&h!==d){const e=w.Vr.findPrevBracketInRange(o.reversedRegex,r,a,h,d);if(e)return this._toFoundBracket(s,e)}}return null}findNextBracket(e){var t;const i=this.textModel.validatePosition(e);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),(null===(t=this.bracketPairsTree.value)||void 0===t?void 0:t.object.getFirstBracketAfter(i))||null;const n=this.textModel.getLineCount();let o=null,s=null,r=null;for(let a=i.lineNumber;a<=n;a++){const e=this.textModel.tokenization.getLineTokens(a),t=e.getCount(),n=this.textModel.getLineContent(a);let l=0,h=0,d=0;if(a===i.lineNumber){l=e.findTokenIndexAtOffset(i.column-1),h=i.column-1,d=i.column-1;const t=e.getLanguageId(l);o!==t&&(o=t,s=this.languageConfigurationService.getLanguageConfiguration(o).brackets,r=this.languageConfigurationService.getLanguageConfiguration(o).bracketsNew)}let c=!0;for(;lvoid 0!==t.closingBracketRange&&t.range.strictContainsRange(e)));return t?[t.openingBracketRange,t.closingBracketRange]:null}const n=z(t),o=this.textModel.getLineCount(),s=new Map;let r=[];const a=(e,t)=>{if(!s.has(e)){const i=[];for(let e=0,n=t?t.brackets.length:0;e{for(;;){if(n&&++l%100===0&&!n())return V.INSTANCE;const a=w.Vr.findNextBracketInRange(e.forwardRegex,t,i,o,s);if(!a)break;const h=i.substring(a.startColumn-1,a.endColumn-1).toLowerCase(),d=e.textIsBracket[h];if(d&&(d.isOpen(h)?r[d.index]++:d.isClose(h)&&r[d.index]--,-1===r[d.index]))return this._matchFoundBracket(a,d,!1,n);o=a.endColumn-1}return null};let d=null,c=null;for(let u=i.lineNumber;u<=o;u++){const e=this.textModel.tokenization.getLineTokens(u),t=e.getCount(),n=this.textModel.getLineContent(u);let o=0,s=0,r=0;if(u===i.lineNumber){o=e.findTokenIndexAtOffset(i.column-1),s=i.column-1,r=i.column-1;const t=e.getLanguageId(o);d!==t&&(d=t,c=this.languageConfigurationService.getLanguageConfiguration(d).brackets,a(d,c))}let l=!0;for(;o!0;{const t=Date.now();return()=>Date.now()-t<=e}}class V{constructor(){this._searchCanceledBrand=void 0}}function W(e){return e instanceof V?null:e}V.INSTANCE=new V;var H=i(36729),K=i(17903);class U extends a.JT{constructor(e){super(),this.textModel=e,this.colorProvider=new j,this.onDidChangeEmitter=new r.Q5,this.onDidChange=this.onDidChangeEmitter.event,this.colorizationOptions=e.getOptions().bracketPairColorizationOptions,this._register(e.bracketPairs.onDidChange((e=>{this.onDidChangeEmitter.fire()})))}handleDidChangeOptions(e){this.colorizationOptions=this.textModel.getOptions().bracketPairColorizationOptions}getDecorationsInRange(e,t,i,n){if(n)return[];if(void 0===t)return[];if(!this.colorizationOptions.enabled)return[];return this.textModel.bracketPairs.getBracketsInRange(e,!0).map((e=>({id:"bracket".concat(e.range.toString(),"-").concat(e.nestingLevel),options:{description:"BracketPairColorization",inlineClassName:this.colorProvider.getInlineClassName(e,this.colorizationOptions.independentColorPoolPerBracketType)},ownerId:0,range:e.range}))).toArray()}getAllDecorations(e,t){return void 0===e?[]:this.colorizationOptions.enabled?this.getDecorationsInRange(new m.e(1,1,this.textModel.getLineCount(),1),e,t):[]}}class j{constructor(){this.unexpectedClosingBracketClassName="unexpected-closing-bracket"}getInlineClassName(e,t){return e.isInvalid?this.unexpectedClosingBracketClassName:this.getInlineClassNameOfLevel(t?e.nestingLevelOfEqualBracketType:e.nestingLevel)}getInlineClassNameOfLevel(e){return"bracket-highlighting-".concat(e%30)}}(0,K.Ic)(((e,t)=>{const i=[H.zJ,H.Vs,H.CE,H.UP,H.r0,H.m1],n=new j;t.addRule(".monaco-editor .".concat(n.unexpectedClosingBracketClassName," { color: ").concat(e.getColor(H.ts),"; }"));const o=i.map((t=>e.getColor(t))).filter((e=>!!e)).filter((e=>!e.isTransparent()));for(let s=0;s<30;s++){const e=o[s%o.length];t.addRule(".monaco-editor .".concat(n.getInlineClassNameOfLevel(s)," { color: ").concat(e,"; }"))}}));var q=i(29193),G=i(8236);class Q{constructor(){this.spacesDiff=0,this.looksLikeAlignment=!1}}function Z(e,t,i,n,o){let s;for(o.spacesDiff=0,o.looksLikeAlignment=!1,s=0;s0&&a>0)return;if(l>0&&h>0)return;const d=Math.abs(a-h),c=Math.abs(r-l);if(0===d)return o.spacesDiff=c,void(c>0&&0<=l-1&&l-10?o++:f>1&&s++,Z(r,a,l,m,d),d.looksLikeAlignment&&(!i||t!==d.spacesDiff))continue;const _=d.spacesDiff;_<=8&&h[_]++,r=l,a=m}let c=i;o!==s&&(c=o{const i=h[t];i>e&&(e=i,u=t)})),4===u&&h[4]>0&&h[2]>0&&h[2]>=h[4]/2&&(u=2)}return{insertSpaces:c,tabSize:u}}function $(e){return(1&e.metadata)>>>0}function J(e,t){e.metadata=254&e.metadata|t<<0}function X(e){return(2&e.metadata)>>>1===1}function ee(e,t){e.metadata=253&e.metadata|(t?1:0)<<1}function te(e){return(4&e.metadata)>>>2===1}function ie(e,t){e.metadata=251&e.metadata|(t?1:0)<<2}function ne(e){return(64&e.metadata)>>>6===1}function oe(e,t){e.metadata=191&e.metadata|(t?1:0)<<6}function se(e,t){e.metadata=231&e.metadata|t<<3}function re(e,t){e.metadata=223&e.metadata|(t?1:0)<<5}class ae{constructor(e,t,i){this.metadata=0,this.parent=this,this.left=this,this.right=this,J(this,1),this.start=t,this.end=i,this.delta=0,this.maxEnd=i,this.id=e,this.ownerId=0,this.options=null,ie(this,!1),oe(this,!1),se(this,1),re(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=null,ee(this,!1)}reset(e,t,i,n){this.start=t,this.end=i,this.maxEnd=i,this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=n}setOptions(e){this.options=e;const t=this.options.className;ie(this,"squiggly-error"===t||"squiggly-warning"===t||"squiggly-info"===t),oe(this,null!==this.options.glyphMarginClassName),se(this,this.options.stickiness),re(this,this.options.collapseOnReplaceEdit)}setCachedOffsets(e,t,i){this.cachedVersionId!==i&&(this.range=null),this.cachedVersionId=i,this.cachedAbsoluteStart=e,this.cachedAbsoluteEnd=t}detach(){this.parent=null,this.left=null,this.right=null}}const le=new ae(null,0,0);le.parent=le,le.left=le,le.right=le,J(le,0);class he{constructor(){this.root=le,this.requestNormalizeDelta=!1}intervalSearch(e,t,i,n,o,s){return this.root===le?[]:function(e,t,i,n,o,s,r){let a=e.root,l=0,h=0,d=0,c=0;const u=[];let g=0;for(;a!==le;)if(X(a))ee(a.left,!1),ee(a.right,!1),a===a.parent.right&&(l-=a.parent.delta),a=a.parent;else{if(!X(a.left)){if(h=l+a.maxEnd,hi)ee(a,!0);else{if(c=l+a.end,c>=t){a.setCachedOffsets(d,c,s);let e=!0;n&&a.ownerId&&a.ownerId!==n&&(e=!1),o&&te(a)&&(e=!1),r&&!ne(a)&&(e=!1),e&&(u[g++]=a)}ee(a,!0),a.right===le||X(a.right)||(l+=a.delta,a=a.right)}}return ee(e.root,!1),u}(this,e,t,i,n,o,s)}search(e,t,i,n){return this.root===le?[]:function(e,t,i,n,o){let s=e.root,r=0,a=0,l=0;const h=[];let d=0;for(;s!==le;){if(X(s)){ee(s.left,!1),ee(s.right,!1),s===s.parent.right&&(r-=s.parent.delta),s=s.parent;continue}if(s.left!==le&&!X(s.left)){s=s.left;continue}a=r+s.start,l=r+s.end,s.setCachedOffsets(a,l,n);let e=!0;t&&s.ownerId&&s.ownerId!==t&&(e=!1),i&&te(s)&&(e=!1),o&&!ne(s)&&(e=!1),e&&(h[d++]=s),ee(s,!0),s.right===le||X(s.right)||(r+=s.delta,s=s.right)}return ee(e.root,!1),h}(this,e,t,i,n)}collectNodesFromOwner(e){return function(e,t){let i=e.root;const n=[];let o=0;for(;i!==le;)X(i)?(ee(i.left,!1),ee(i.right,!1),i=i.parent):i.left===le||X(i.left)?(i.ownerId===t&&(n[o++]=i),ee(i,!0),i.right===le||X(i.right)||(i=i.right)):i=i.left;return ee(e.root,!1),n}(this,e)}collectNodesPostOrder(){return function(e){let t=e.root;const i=[];let n=0;for(;t!==le;)X(t)?(ee(t.left,!1),ee(t.right,!1),t=t.parent):t.left===le||X(t.left)?t.right===le||X(t.right)?(i[n++]=t,ee(t,!0)):t=t.right:t=t.left;return ee(e.root,!1),i}(this)}insert(e){ue(this,e),this._normalizeDeltaIfNecessary()}delete(e){ge(this,e),this._normalizeDeltaIfNecessary()}resolveNode(e,t){const i=e;let n=0;for(;e!==this.root;)e===e.parent.right&&(n+=e.parent.delta),e=e.parent;const o=i.start+n,s=i.end+n;i.setCachedOffsets(o,s,t)}acceptReplace(e,t,i,n){const o=function(e,t,i){let n=e.root,o=0,s=0,r=0,a=0;const l=[];let h=0;for(;n!==le;)if(X(n))ee(n.left,!1),ee(n.right,!1),n===n.parent.right&&(o-=n.parent.delta),n=n.parent;else{if(!X(n.left)){if(s=o+n.maxEnd,si?ee(n,!0):(a=o+n.end,a>=t&&(n.setCachedOffsets(r,a,0),l[h++]=n),ee(n,!0),n.right===le||X(n.right)||(o+=n.delta,n=n.right))}return ee(e.root,!1),l}(this,e,e+t);for(let s=0,r=o.length;si?(o.start+=l,o.end+=l,o.delta+=l,(o.delta<-1073741824||o.delta>1073741824)&&(e.requestNormalizeDelta=!0),ee(o,!0)):(ee(o,!0),o.right===le||X(o.right)||(s+=o.delta,o=o.right))}ee(e.root,!1)}(this,e,e+t,i),this._normalizeDeltaIfNecessary();for(let s=0,r=o.length;si)&&(1!==n&&(2===n||t))}function ce(e,t,i,n,o){const s=function(e){return(24&e.metadata)>>>3}(e),r=0===s||2===s,a=1===s||2===s,l=i-t,h=n,d=Math.min(l,h),c=e.start;let u=!1;const g=e.end;let m=!1;t<=c&&g<=i&&function(e){return(32&e.metadata)>>>5===1}(e)&&(e.start=t,u=!0,e.end=t,m=!0);{const e=o?1:l>0?2:0;!u&&de(c,r,t,e)&&(u=!0),!m&&de(g,a,t,e)&&(m=!0)}if(d>0&&!o){const e=l>h?2:0;!u&&de(c,r,t+d,e)&&(u=!0),!m&&de(g,a,t+d,e)&&(m=!0)}{const n=o?1:0;!u&&de(c,r,i,n)&&(e.start=t+h,u=!0),!m&&de(g,a,i,n)&&(e.end=t+h,m=!0)}const f=h-l;u||(e.start=Math.max(0,c+f)),m||(e.end=Math.max(0,g+f)),e.start>e.end&&(e.end=e.start)}function ue(e,t){if(e.root===le)return t.parent=le,t.left=le,t.right=le,J(t,0),e.root=t,e.root;!function(e,t){let i=0,n=e.root;const o=t.start,s=t.end;for(;;){if(Ce(o,s,n.start+i,n.end+i)<0){if(n.left===le){t.start-=i,t.end-=i,t.maxEnd-=i,n.left=t;break}n=n.left}else{if(n.right===le){t.start-=i+n.delta,t.end-=i+n.delta,t.maxEnd-=i+n.delta,n.right=t;break}i+=n.delta,n=n.right}}t.parent=n,t.left=le,t.right=le,J(t,1)}(e,t),be(t.parent);let i=t;for(;i!==e.root&&1===$(i.parent);)if(i.parent===i.parent.parent.left){const t=i.parent.parent.right;1===$(t)?(J(i.parent,0),J(t,0),J(i.parent.parent,1),i=i.parent.parent):(i===i.parent.right&&(i=i.parent,fe(e,i)),J(i.parent,0),J(i.parent.parent,1),pe(e,i.parent.parent))}else{const t=i.parent.parent.left;1===$(t)?(J(i.parent,0),J(t,0),J(i.parent.parent,1),i=i.parent.parent):(i===i.parent.left&&(i=i.parent,pe(e,i)),J(i.parent,0),J(i.parent.parent,1),fe(e,i.parent.parent))}return J(e.root,0),t}function ge(e,t){let i,n;if(t.left===le?(i=t.right,n=t,i.delta+=t.delta,(i.delta<-1073741824||i.delta>1073741824)&&(e.requestNormalizeDelta=!0),i.start+=t.delta,i.end+=t.delta):t.right===le?(i=t.left,n=t):(n=function(e){for(;e.left!==le;)e=e.left;return e}(t.right),i=n.right,i.start+=n.delta,i.end+=n.delta,i.delta+=n.delta,(i.delta<-1073741824||i.delta>1073741824)&&(e.requestNormalizeDelta=!0),n.start+=t.delta,n.end+=t.delta,n.delta=t.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0)),n===e.root)return e.root=i,J(i,0),t.detach(),me(),ve(i),void(e.root.parent=le);const o=1===$(n);if(n===n.parent.left?n.parent.left=i:n.parent.right=i,n===t?i.parent=n.parent:(n.parent===t?i.parent=n:i.parent=n.parent,n.left=t.left,n.right=t.right,n.parent=t.parent,J(n,$(t)),t===e.root?e.root=n:t===t.parent.left?t.parent.left=n:t.parent.right=n,n.left!==le&&(n.left.parent=n),n.right!==le&&(n.right.parent=n)),t.detach(),o)return be(i.parent),n!==t&&(be(n),be(n.parent)),void me();let s;for(be(i),be(i.parent),n!==t&&(be(n),be(n.parent));i!==e.root&&0===$(i);)i===i.parent.left?(s=i.parent.right,1===$(s)&&(J(s,0),J(i.parent,1),fe(e,i.parent),s=i.parent.right),0===$(s.left)&&0===$(s.right)?(J(s,1),i=i.parent):(0===$(s.right)&&(J(s.left,0),J(s,1),pe(e,s),s=i.parent.right),J(s,$(i.parent)),J(i.parent,0),J(s.right,0),fe(e,i.parent),i=e.root)):(s=i.parent.left,1===$(s)&&(J(s,0),J(i.parent,1),pe(e,i.parent),s=i.parent.left),0===$(s.left)&&0===$(s.right)?(J(s,1),i=i.parent):(0===$(s.left)&&(J(s.right,0),J(s,1),fe(e,s),s=i.parent.left),J(s,$(i.parent)),J(i.parent,0),J(s.left,0),pe(e,i.parent),i=e.root));J(i,0),me()}function me(){le.parent=le,le.delta=0,le.start=0,le.end=0}function fe(e,t){const i=t.right;i.delta+=t.delta,(i.delta<-1073741824||i.delta>1073741824)&&(e.requestNormalizeDelta=!0),i.start+=t.delta,i.end+=t.delta,t.right=i.left,i.left!==le&&(i.left.parent=t),i.parent=t.parent,t.parent===le?e.root=i:t===t.parent.left?t.parent.left=i:t.parent.right=i,i.left=t,t.parent=i,ve(t),ve(i)}function pe(e,t){const i=t.left;t.delta-=i.delta,(t.delta<-1073741824||t.delta>1073741824)&&(e.requestNormalizeDelta=!0),t.start-=i.delta,t.end-=i.delta,t.left=i.right,i.right!==le&&(i.right.parent=t),i.parent=t.parent,t.parent===le?e.root=i:t===t.parent.right?t.parent.right=i:t.parent.left=i,i.right=t,t.parent=i,ve(t),ve(i)}function _e(e){let t=e.end;if(e.left!==le){const i=e.left.maxEnd;i>t&&(t=i)}if(e.right!==le){const i=e.right.maxEnd+e.delta;i>t&&(t=i)}return t}function ve(e){e.maxEnd=_e(e)}function be(e){for(;e!==le;){const t=_e(e);if(e.maxEnd===t)return;e.maxEnd=t,e=e.parent}}function Ce(e,t,i,n){return e===i?t-n:e-i}class we{constructor(e,t){this.piece=e,this.color=t,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}next(){if(this.right!==ye)return Se(this.right);let e=this;for(;e.parent!==ye&&e.parent.left!==e;)e=e.parent;return e.parent===ye?ye:e.parent}prev(){if(this.left!==ye)return Le(this.left);let e=this;for(;e.parent!==ye&&e.parent.right!==e;)e=e.parent;return e.parent===ye?ye:e.parent}detach(){this.parent=null,this.left=null,this.right=null}}const ye=new we(null,0);function Se(e){for(;e.left!==ye;)e=e.left;return e}function Le(e){for(;e.right!==ye;)e=e.right;return e}function ke(e){return e===ye?0:e.size_left+e.piece.length+ke(e.right)}function De(e){return e===ye?0:e.lf_left+e.piece.lineFeedCnt+De(e.right)}function Ne(){ye.parent=ye}function xe(e,t){const i=t.right;i.size_left+=t.size_left+(t.piece?t.piece.length:0),i.lf_left+=t.lf_left+(t.piece?t.piece.lineFeedCnt:0),t.right=i.left,i.left!==ye&&(i.left.parent=t),i.parent=t.parent,t.parent===ye?e.root=i:t.parent.left===t?t.parent.left=i:t.parent.right=i,i.left=t,t.parent=i}function Ee(e,t){const i=t.left;t.left=i.right,i.right!==ye&&(i.right.parent=t),i.parent=t.parent,t.size_left-=i.size_left+(i.piece?i.piece.length:0),t.lf_left-=i.lf_left+(i.piece?i.piece.lineFeedCnt:0),t.parent===ye?e.root=i:t===t.parent.right?t.parent.right=i:t.parent.left=i,i.right=t,t.parent=i}function Ie(e,t){let i,n;if(t.left===ye?(n=t,i=n.right):t.right===ye?(n=t,i=n.left):(n=Se(t.right),i=n.right),n===e.root)return e.root=i,i.color=0,t.detach(),Ne(),void(e.root.parent=ye);const o=1===n.color;if(n===n.parent.left?n.parent.left=i:n.parent.right=i,n===t?(i.parent=n.parent,Ae(e,i)):(n.parent===t?i.parent=n:i.parent=n.parent,Ae(e,i),n.left=t.left,n.right=t.right,n.parent=t.parent,n.color=t.color,t===e.root?e.root=n:t===t.parent.left?t.parent.left=n:t.parent.right=n,n.left!==ye&&(n.left.parent=n),n.right!==ye&&(n.right.parent=n),n.size_left=t.size_left,n.lf_left=t.lf_left,Ae(e,n)),t.detach(),i.parent.left===i){const t=ke(i),n=De(i);if(t!==i.parent.size_left||n!==i.parent.lf_left){const o=t-i.parent.size_left,s=n-i.parent.lf_left;i.parent.size_left=t,i.parent.lf_left=n,Me(e,i.parent,o,s)}}if(Ae(e,i.parent),o)return void Ne();let s;for(;i!==e.root&&0===i.color;)i===i.parent.left?(s=i.parent.right,1===s.color&&(s.color=0,i.parent.color=1,xe(e,i.parent),s=i.parent.right),0===s.left.color&&0===s.right.color?(s.color=1,i=i.parent):(0===s.right.color&&(s.left.color=0,s.color=1,Ee(e,s),s=i.parent.right),s.color=i.parent.color,i.parent.color=0,s.right.color=0,xe(e,i.parent),i=e.root)):(s=i.parent.left,1===s.color&&(s.color=0,i.parent.color=1,Ee(e,i.parent),s=i.parent.left),0===s.left.color&&0===s.right.color?(s.color=1,i=i.parent):(0===s.left.color&&(s.right.color=0,s.color=1,xe(e,s),s=i.parent.left),s.color=i.parent.color,i.parent.color=0,s.left.color=0,Ee(e,i.parent),i=e.root));i.color=0,Ne()}function Te(e,t){for(Ae(e,t);t!==e.root&&1===t.parent.color;)if(t.parent===t.parent.parent.left){const i=t.parent.parent.right;1===i.color?(t.parent.color=0,i.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.right&&xe(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,Ee(e,t.parent.parent))}else{const 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&&Ee(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,xe(e,t.parent.parent))}e.root.color=0}function Me(e,t,i,n){for(;t!==e.root&&t!==ye;)t.parent.left===t&&(t.parent.size_left+=i,t.parent.lf_left+=n),t=t.parent}function Ae(e,t){let i=0,n=0;if(t!==e.root){for(;t!==e.root&&t===t.parent.right;)t=t.parent;if(t!==e.root)for(i=ke((t=t.parent).left)-t.size_left,n=De(t.left)-t.lf_left,t.size_left+=i,t.lf_left+=n;t!==e.root&&(0!==i||0!==n);)t.parent.left===t&&(t.parent.size_left+=i,t.parent.lf_left+=n),t=t.parent}}ye.parent=ye,ye.left=ye,ye.right=ye,ye.color=0;var Re=i(90255);const Oe=65535;function Pe(e){let t;return t=e[e.length-1]<65536?new Uint16Array(e.length):new Uint32Array(e.length),t.set(e,0),t}class Fe{constructor(e,t,i,n,o){this.lineStarts=e,this.cr=t,this.lf=i,this.crlf=n,this.isBasicASCII=o}}function Be(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const i=[0];let n=1;for(let o=0,s=e.length;o(e!==ye&&this._pieces.push(e.piece),!0)))}read(){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++])}}class He{constructor(e){this._limit=e,this._cache=[]}get(e){for(let t=this._cache.length-1;t>=0;t--){const i=this._cache[t];if(i.nodeStartOffset<=e&&i.nodeStartOffset+i.node.piece.length>=e)return i}return null}get2(e){for(let t=this._cache.length-1;t>=0;t--){const i=this._cache[t];if(i.nodeStartLineNumber&&i.nodeStartLineNumber=e)return i}return null}set(e){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(e)}validate(e){let t=!1;const i=this._cache;for(let n=0;n=e)&&(i[n]=null,t=!0)}if(t){const e=[];for(const t of i)null!==t&&e.push(t);this._cache=e}}}class Ke{constructor(e,t,i){this.create(e,t,i)}create(e,t,i){this._buffers=[new Ve("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=ye,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=i;let n=null;for(let o=0,s=e.length;o0){e[o].lineStarts||(e[o].lineStarts=Be(e[o].buffer));const t=new ze(o+1,{line:0,column:0},{line:e[o].lineStarts.length-1,column:e[o].buffer.length-e[o].lineStarts[e[o].lineStarts.length-1]},e[o].lineStarts.length-1,e[o].buffer.length);this._buffers.push(e[o]),n=this.rbInsertRight(n,t)}this._searchCache=new He(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(e){const t=65535-Math.floor(21845),i=2*t;let n="",o=0;const s=[];if(this.iterate(this.root,(r=>{const a=this.getNodeContent(r),l=a.length;if(o<=t||o+l0){const t=n.replace(/\r\n|\r|\n/g,e);s.push(new Ve(t,Be(t)))}this.create(s,e,!0)}getEOL(){return this._EOL}setEOL(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)}createSnapshot(e){return new We(this,e)}getOffsetAt(e,t){let i=0,n=this.root;for(;n!==ye;)if(n.left!==ye&&n.lf_left+1>=e)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt+1>=e){i+=n.size_left;return i+(this.getAccumulatedValue(n,e-n.lf_left-2)+t-1)}e-=n.lf_left+n.piece.lineFeedCnt,i+=n.size_left+n.piece.length,n=n.right}return i}getPositionAt(e){e=Math.floor(e),e=Math.max(0,e);let t=this.root,i=0;const n=e;for(;t!==ye;)if(0!==t.size_left&&t.size_left>=e)t=t.left;else{if(t.size_left+t.piece.length>=e){const o=this.getIndexOf(t,e-t.size_left);if(i+=t.lf_left+o.index,0===o.index){const e=n-this.getOffsetAt(i+1,1);return new g.L(i+1,e+1)}return new g.L(i+1,o.remainder+1)}if(e-=t.size_left+t.piece.length,i+=t.lf_left+t.piece.lineFeedCnt,t.right===ye){const t=n-e-this.getOffsetAt(i+1,1);return new g.L(i+1,t+1)}t=t.right}return new g.L(1,1)}getValueInRange(e,t){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return"";const i=this.nodeAt2(e.startLineNumber,e.startColumn),n=this.nodeAt2(e.endLineNumber,e.endColumn),o=this.getValueInRange2(i,n);return t?t===this._EOL&&this._EOLNormalized&&t===this.getEOL()&&this._EOLNormalized?o:o.replace(/\r\n|\r|\n/g,t):o}getValueInRange2(e,t){if(e.node===t.node){const i=e.node,n=this._buffers[i.piece.bufferIndex].buffer,o=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return n.substring(o+e.remainder,o+t.remainder)}let i=e.node;const n=this._buffers[i.piece.bufferIndex].buffer,o=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);let s=n.substring(o+e.remainder,o+i.piece.length);for(i=i.next();i!==ye;){const e=this._buffers[i.piece.bufferIndex].buffer,n=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);if(i===t.node){s+=e.substring(n,n+t.remainder);break}s+=e.substr(n,i.piece.length),i=i.next()}return s}getLinesContent(){const e=[];let t=0,i="",n=!1;return this.iterate(this.root,(o=>{if(o===ye)return!0;const s=o.piece;let r=s.length;if(0===r)return!0;const a=this._buffers[s.bufferIndex].buffer,l=this._buffers[s.bufferIndex].lineStarts,h=s.start.line,d=s.end.line;let c=l[h]+s.start.column;if(n&&(10===a.charCodeAt(c)&&(c++,r--),e[t++]=i,i="",n=!1,0===r))return!0;if(h===d)return this._EOLNormalized||13!==a.charCodeAt(c+r-1)?i+=a.substr(c,r):(n=!0,i+=a.substr(c,r-1)),!0;i+=this._EOLNormalized?a.substring(c,Math.max(c,l[h+1]-this._EOLLength)):a.substring(c,l[h+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=i;for(let n=h+1;ne+g,t.reset(0)):(v=c.buffer,b=e=>e,t.reset(g));do{if(p=t.next(v),p){if(b(p.index)>=f)return h;this.positionInBuffer(e,b(p.index)-u,_);const t=this.getLineFeedCnt(e.piece.bufferIndex,o,_),s=_.line===o.line?_.column-o.column+n:_.column+1,r=s+p[0].length;if(d[h++]=(0,Re.iE)(new m.e(i+t,s,i+t,r),p,a),b(p.index)+p[0].length>=f)return h;if(h>=l)return h}}while(p);return h}findMatchesLineByLine(e,t,i,n){const o=[];let s=0;const r=new Re.sz(t.wordSeparators,t.regex);let a=this.nodeAt2(e.startLineNumber,e.startColumn);if(null===a)return[];const l=this.nodeAt2(e.endLineNumber,e.endColumn);if(null===l)return[];let h=this.positionInBuffer(a.node,a.remainder);const d=this.positionInBuffer(l.node,l.remainder);if(a.node===l.node)return this.findMatchesInNode(a.node,r,e.startLineNumber,e.startColumn,h,d,t,i,n,s,o),o;let c=e.startLineNumber,u=a.node;for(;u!==l.node;){const l=this.getLineFeedCnt(u.piece.bufferIndex,h,u.piece.end);if(l>=1){const a=this._buffers[u.piece.bufferIndex].lineStarts,d=this.offsetInBuffer(u.piece.bufferIndex,u.piece.start),g=a[h.line+l],m=c===e.startLineNumber?e.startColumn:1;if(s=this.findMatchesInNode(u,r,c,m,h,this.positionInBuffer(u,g-d),t,i,n,s,o),s>=n)return o;c+=l}const d=c===e.startLineNumber?e.startColumn-1:0;if(c===e.endLineNumber){const a=this.getLineContent(c).substring(d,e.endColumn-1);return s=this._findMatchesInLine(t,r,a,e.endLineNumber,d,s,o,i,n),o}if(s=this._findMatchesInLine(t,r,this.getLineContent(c).substr(d),c,d,s,o,i,n),s>=n)return o;c++,a=this.nodeAt2(c,1),u=a.node,h=this.positionInBuffer(a.node,a.remainder)}if(c===e.endLineNumber){const a=c===e.startLineNumber?e.startColumn-1:0,l=this.getLineContent(c).substring(a,e.endColumn-1);return s=this._findMatchesInLine(t,r,l,e.endLineNumber,a,s,o,i,n),o}const g=c===e.startLineNumber?e.startColumn:1;return s=this.findMatchesInNode(l.node,r,c,g,h,d,t,i,n,s,o),o}_findMatchesInLine(e,t,i,n,o,s,r,a,l){const h=e.wordSeparators;if(!a&&e.simpleSearch){const t=e.simpleSearch,a=t.length,d=i.length;let c=-a;for(;-1!==(c=i.indexOf(t,c+a));)if((!h||(0,Re.cM)(h,i,d,c,a))&&(r[s++]=new b.tk(new m.e(n,c+1+o,n,c+1+a+o),null),s>=l))return s;return s}let d;t.reset(0);do{if(d=t.next(i),d&&(r[s++]=(0,Re.iE)(new m.e(n,d.index+1+o,n,d.index+1+d[0].length+o),d,a),s>=l))return s}while(d);return s}insert(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this._EOLNormalized=this._EOLNormalized&&i,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==ye){const{node:i,remainder:n,nodeStartOffset:o}=this.nodeAt(e),s=i.piece,r=s.bufferIndex,a=this.positionInBuffer(i,n);if(0===i.piece.bufferIndex&&s.end.line===this._lastChangeBufferPos.line&&s.end.column===this._lastChangeBufferPos.column&&o+s.length===e&&t.lengthe){const e=[];let o=new ze(s.bufferIndex,a,s.end,this.getLineFeedCnt(s.bufferIndex,a,s.end),this.offsetInBuffer(r,s.end)-this.offsetInBuffer(r,a));if(this.shouldCheckCRLF()&&this.endWithCR(t)){if(10===this.nodeCharCodeAt(i,n)){const e={line:o.start.line+1,column:0};o=new ze(o.bufferIndex,e,o.end,this.getLineFeedCnt(o.bufferIndex,e,o.end),o.length-1),t+="\n"}}if(this.shouldCheckCRLF()&&this.startWithLF(t)){if(13===this.nodeCharCodeAt(i,n-1)){const o=this.positionInBuffer(i,n-1);this.deleteNodeTail(i,o),t="\r"+t,0===i.piece.length&&e.push(i)}else this.deleteNodeTail(i,a)}else this.deleteNodeTail(i,a);const l=this.createNewPieces(t);o.length>0&&this.rbInsertRight(i,o);let h=i;for(let t=0;t=0;s--)o=this.rbInsertLeft(o,n[s]);this.validateCRLFWithPrevNode(o),this.deleteNodes(i)}insertContentToNodeRight(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+="\n");const i=this.createNewPieces(e),n=this.rbInsertRight(t,i[0]);let o=n;for(let s=1;s=d))break;a=h+1}return i?(i.line=h,i.column=r-c,null):{line:h,column:r-c}}getLineFeedCnt(e,t,i){if(0===i.column)return i.line-t.line;const n=this._buffers[e].lineStarts;if(i.line===n.length-1)return i.line-t.line;const o=n[i.line+1],s=n[i.line]+i.column;if(o>s+1)return i.line-t.line;const r=s-1;return 13===this._buffers[e].buffer.charCodeAt(r)?i.line-t.line+1:i.line-t.line}offsetInBuffer(e,t){return this._buffers[e].lineStarts[t.line]+t.column}deleteNodes(e){for(let t=0;tOe){const t=[];for(;e.length>Oe;){const i=e.charCodeAt(65534);let n;13===i||i>=55296&&i<=56319?(n=e.substring(0,65534),e=e.substring(65534)):(n=e.substring(0,Oe),e=e.substring(Oe));const o=Be(n);t.push(new ze(this._buffers.length,{line:0,column:0},{line:o.length-1,column:n.length-o[o.length-1]},o.length-1,n.length)),this._buffers.push(new Ve(n,o))}const i=Be(e);return t.push(new ze(this._buffers.length,{line:0,column:0},{line:i.length-1,column:e.length-i[i.length-1]},i.length-1,e.length)),this._buffers.push(new Ve(e,i)),t}let t=this._buffers[0].buffer.length;const i=Be(e,!1);let n=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===t&&0!==t&&this.startWithLF(e)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},n=this._lastChangeBufferPos;for(let e=0;e1&&void 0!==arguments[1]?arguments[1]:0,i=this.root,n="";const o=this._searchCache.get2(e);if(o){i=o.node;const s=this.getAccumulatedValue(i,e-o.nodeStartLineNumber-1),r=this._buffers[i.piece.bufferIndex].buffer,a=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);if(o.nodeStartLineNumber+i.piece.lineFeedCnt!==e){const n=this.getAccumulatedValue(i,e-o.nodeStartLineNumber);return r.substring(a+s,a+n-t)}n=r.substring(a+s,a+i.piece.length)}else{let o=0;const s=e;for(;i!==ye;)if(i.left!==ye&&i.lf_left>=e-1)i=i.left;else{if(i.lf_left+i.piece.lineFeedCnt>e-1){const n=this.getAccumulatedValue(i,e-i.lf_left-2),r=this.getAccumulatedValue(i,e-i.lf_left-1),a=this._buffers[i.piece.bufferIndex].buffer,l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return o+=i.size_left,this._searchCache.set({node:i,nodeStartOffset:o,nodeStartLineNumber:s-(e-1-i.lf_left)}),a.substring(l+n,l+r-t)}if(i.lf_left+i.piece.lineFeedCnt===e-1){const t=this.getAccumulatedValue(i,e-i.lf_left-2),o=this._buffers[i.piece.bufferIndex].buffer,s=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);n=o.substring(s+t,s+i.piece.length);break}e-=i.lf_left+i.piece.lineFeedCnt,o+=i.size_left+i.piece.length,i=i.right}}for(i=i.next();i!==ye;){const e=this._buffers[i.piece.bufferIndex].buffer;if(i.piece.lineFeedCnt>0){const o=this.getAccumulatedValue(i,0),s=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return n+=e.substring(s,s+o-t),n}{const t=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);n+=e.substr(t,i.piece.length)}i=i.next()}return n}computeBufferMetadata(){let e=this.root,t=1,i=0;for(;e!==ye;)t+=e.lf_left+e.piece.lineFeedCnt,i+=e.size_left+e.piece.length,e=e.right;this._lineCnt=t,this._length=i,this._searchCache.validate(this._length)}getIndexOf(e,t){const i=e.piece,n=this.positionInBuffer(e,t),o=n.line-i.start.line;if(this.offsetInBuffer(i.bufferIndex,i.end)-this.offsetInBuffer(i.bufferIndex,i.start)===t){const t=this.getLineFeedCnt(e.piece.bufferIndex,i.start,n);if(t!==o)return{index:t,remainder:0}}return{index:o,remainder:n.column}}getAccumulatedValue(e,t){if(t<0)return 0;const i=e.piece,n=this._buffers[i.bufferIndex].lineStarts,o=i.start.line+t+1;return o>i.end.line?n[i.end.line]+i.end.column-n[i.start.line]-i.start.column:n[o]-n[i.start.line]-i.start.column}deleteNodeTail(e,t){const i=e.piece,n=i.lineFeedCnt,o=this.offsetInBuffer(i.bufferIndex,i.end),s=t,r=this.offsetInBuffer(i.bufferIndex,s),a=this.getLineFeedCnt(i.bufferIndex,i.start,s),l=a-n,h=r-o,d=i.length+h;e.piece=new ze(i.bufferIndex,i.start,s,a,d),Me(this,e,h,l)}deleteNodeHead(e,t){const i=e.piece,n=i.lineFeedCnt,o=this.offsetInBuffer(i.bufferIndex,i.start),s=t,r=this.getLineFeedCnt(i.bufferIndex,s,i.end),a=r-n,l=o-this.offsetInBuffer(i.bufferIndex,s),h=i.length+l;e.piece=new ze(i.bufferIndex,s,i.end,r,h),Me(this,e,l,a)}shrinkNode(e,t,i){const n=e.piece,o=n.start,s=n.end,r=n.length,a=n.lineFeedCnt,l=t,h=this.getLineFeedCnt(n.bufferIndex,n.start,l),d=this.offsetInBuffer(n.bufferIndex,t)-this.offsetInBuffer(n.bufferIndex,o);e.piece=new ze(n.bufferIndex,n.start,l,h,d),Me(this,e,d-r,h-a);const c=new ze(n.bufferIndex,i,s,this.getLineFeedCnt(n.bufferIndex,i,s),this.offsetInBuffer(n.bufferIndex,s)-this.offsetInBuffer(n.bufferIndex,i)),u=this.rbInsertRight(e,c);this.validateCRLFWithPrevNode(u)}appendToNode(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+="\n");const i=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),n=this._buffers[0].buffer.length;this._buffers[0].buffer+=t;const o=Be(t,!1);for(let c=0;ce)t=t.left;else{if(t.size_left+t.piece.length>=e){n+=t.size_left;const i={node:t,remainder:e-t.size_left,nodeStartOffset:n};return this._searchCache.set(i),i}e-=t.size_left+t.piece.length,n+=t.size_left+t.piece.length,t=t.right}return null}nodeAt2(e,t){let i=this.root,n=0;for(;i!==ye;)if(i.left!==ye&&i.lf_left>=e-1)i=i.left;else{if(i.lf_left+i.piece.lineFeedCnt>e-1){const o=this.getAccumulatedValue(i,e-i.lf_left-2),s=this.getAccumulatedValue(i,e-i.lf_left-1);return n+=i.size_left,{node:i,remainder:Math.min(o+t-1,s),nodeStartOffset:n}}if(i.lf_left+i.piece.lineFeedCnt===e-1){const o=this.getAccumulatedValue(i,e-i.lf_left-2);if(o+t-1<=i.piece.length)return{node:i,remainder:o+t-1,nodeStartOffset:n};t-=i.piece.length-o;break}e-=i.lf_left+i.piece.lineFeedCnt,n+=i.size_left+i.piece.length,i=i.right}for(i=i.next();i!==ye;){if(i.piece.lineFeedCnt>0){const e=this.getAccumulatedValue(i,0),n=this.offsetOfNode(i);return{node:i,remainder:Math.min(t-1,e),nodeStartOffset:n}}if(i.piece.length>=t-1){return{node:i,remainder:t-1,nodeStartOffset:this.offsetOfNode(i)}}t-=i.piece.length,i=i.next()}return null}nodeCharCodeAt(e,t){if(e.piece.lineFeedCnt<1)return-1;const i=this._buffers[e.piece.bufferIndex],n=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start)+t;return i.buffer.charCodeAt(n)}offsetOfNode(e){if(!e)return 0;let t=e.size_left;for(;e!==this.root;)e.parent.right===e&&(t+=e.parent.size_left+e.parent.piece.length),e=e.parent;return t}shouldCheckCRLF(){return!(this._EOLNormalized&&"\n"===this._EOL)}startWithLF(e){if("string"===typeof e)return 10===e.charCodeAt(0);if(e===ye||0===e.piece.lineFeedCnt)return!1;const t=e.piece,i=this._buffers[t.bufferIndex].lineStarts,n=t.start.line,o=i[n]+t.start.column;if(n===i.length-1)return!1;return!(i[n+1]>o+1)&&10===this._buffers[t.bufferIndex].buffer.charCodeAt(o)}endWithCR(e){return"string"===typeof e?13===e.charCodeAt(e.length-1):e!==ye&&0!==e.piece.lineFeedCnt&&13===this.nodeCharCodeAt(e,e.piece.length-1)}validateCRLFWithPrevNode(e){if(this.shouldCheckCRLF()&&this.startWithLF(e)){const t=e.prev();this.endWithCR(t)&&this.fixCRLF(t,e)}}validateCRLFWithNextNode(e){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const t=e.next();this.startWithLF(t)&&this.fixCRLF(e,t)}}fixCRLF(e,t){const i=[],n=this._buffers[e.piece.bufferIndex].lineStarts;let o;o=0===e.piece.end.column?{line:e.piece.end.line-1,column:n[e.piece.end.line]-n[e.piece.end.line-1]-1}:{line:e.piece.end.line,column:e.piece.end.column-1};const s=e.piece.length-1,r=e.piece.lineFeedCnt-1;e.piece=new ze(e.piece.bufferIndex,e.piece.start,o,r,s),Me(this,e,-1,-1),0===e.piece.length&&i.push(e);const a={line:t.piece.start.line+1,column:0},l=t.piece.length-1,h=this.getLineFeedCnt(t.piece.bufferIndex,a,t.piece.end);t.piece=new ze(t.piece.bufferIndex,a,t.piece.end,h,l),Me(this,t,-1,-1),0===t.piece.length&&i.push(t);const d=this.createNewPieces("\r\n");this.rbInsertRight(e,d[0]);for(let c=0;c1&&void 0!==arguments[1]?arguments[1]:0;if(e.isEmpty())return"";const i=this._getEndOfLine(t);return this._pieceTree.getValueInRange(e,i)}getValueLengthInRange(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(e.isEmpty())return 0;if(e.startLineNumber===e.endLineNumber)return e.endColumn-e.startColumn;const i=this.getOffsetAt(e.startLineNumber,e.startColumn),n=this.getOffsetAt(e.endLineNumber,e.endColumn);let o=0;const s=this._getEndOfLine(t),r=this.getEOL();if(s.length!==r.length){o=(s.length-r.length)*(e.endLineNumber-e.startLineNumber)}return n-i+o}getCharacterCountInRange(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(this._mightContainNonBasicASCII){let i=0;const n=e.startLineNumber,o=e.endLineNumber;for(let t=n;t<=o;t++){const s=this.getLineContent(t),r=t===n?e.startColumn-1:0,a=t===o?e.endColumn-1:s.length;for(let e=r;ee.sortIndex-t.sortIndex))}this._mightContainRTL=n,this._mightContainUnusualLineTerminators=o,this._mightContainNonBasicASCII=s;const m=this._doApplyEdits(a);let f=null;if(t&&u.length>0){u.sort(((e,t)=>t.lineNumber-e.lineNumber)),f=[];for(let e=0,t=u.length;e0&&u[e-1].lineNumber===t)continue;const i=u[e].oldContent,n=this.getLineContent(t);0!==n.length&&n!==i&&-1===l.LC(n)&&f.push(t)}}return this._onDidChangeContent.fire(),new b.je(g,m,f)}_reduceOperations(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]}_toSingleEditOperation(e){let t=!1;const i=e[0].range,n=e[e.length-1].range,o=new m.e(i.startLineNumber,i.startColumn,n.endLineNumber,n.endColumn);let s=i.startLineNumber,r=i.startColumn;const a=[];for(let d=0,g=e.length;d0&&a.push(i.text),s=n.endLineNumber,r=n.endColumn}const l=a.join(""),[h,c,u]=(0,d.Q)(l);return{sortIndex:0,identifier:e[0].identifier,range:o,rangeOffset:this.getOffsetAt(o.startLineNumber,o.startColumn),rangeLength:this.getValueLengthInRange(o,0),text:l,eolCount:h,firstLineLength:c,lastLineLength:u,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(je._sortOpsDescending);const t=[];for(let i=0;i0){const e=r.eolCount+1;h=1===e?new m.e(a,l,a,l+r.firstLineLength):new m.e(a,l,a+e-1,r.lastLineLength+1)}else h=new m.e(a,l,a,l);i=h.endLineNumber,n=h.endColumn,t.push(h),o=r}return t}static _sortOpsAscending(e,t){const i=m.e.compareRangesUsingEnds(e.range,t.range);return 0===i?e.sortIndex-t.sortIndex:i}static _sortOpsDescending(e,t){const i=m.e.compareRangesUsingEnds(e.range,t.range);return 0===i?t.sortIndex-e.sortIndex:-i}}class qe{constructor(e,t,i,n,o,s,r,a,l){this._chunks=e,this._bom=t,this._cr=i,this._lf=n,this._crlf=o,this._containsRTL=s,this._containsUnusualLineTerminators=r,this._isBasicASCII=a,this._normalizeEOL=l}_getEOL(e){const t=this._cr+this._lf+this._crlf,i=this._cr+this._crlf;return 0===t?1===e?"\n":"\r\n":i>t/2?"\r\n":"\n"}create(e){const t=this._getEOL(e),i=this._chunks;if(this._normalizeEOL&&("\r\n"===t&&(this._cr>0||this._lf>0)||"\n"===t&&(this._cr>0||this._crlf>0)))for(let o=0,s=i.length;o=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)}_acceptChunk1(e,t){(t||0!==e.length)&&(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+e):this._acceptChunk2(e))}_acceptChunk2(e){const t=function(e,t){e.length=0,e[0]=0;let i=1,n=0,o=0,s=0,r=!0;for(let l=0,h=t.length;l126)&&(r=!1)}const a=new Fe(Pe(e),n,o,s,r);return e.length=0,a}(this._tmpLineStarts,e);this.chunks.push(new Ve(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,t.isBasicASCII||(this.isBasicASCII=!1,this.containsRTL||(this.containsRTL=l.Ut(e)),this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=l.ab(e)))}finish(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._finish(),new qe(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,e)}_finish(){if(0===this.chunks.length&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;const e=this.chunks[this.chunks.length-1];e.buffer+=String.fromCharCode(this._previousChar);const t=Be(e.buffer);e.lineStarts=t,13===this._previousChar&&this.cr++}}}var Qe=i(60282),Ze=i(42696),Ye=i(761),$e=i(81958),Je=i(21511),Xe=i(6459),et=i(57866),tt=i(22191);class it{constructor(e){this._default=e,this._store=[]}get(e){return e=this._store.length;)this._store[this._store.length]=this._default;this._store[e]=t}replace(e,t,i){if(e>=this._store.length)return;if(0===t)return void this.insert(e,i);if(0===i)return void this.delete(e,t);const n=this._store.slice(0,e),o=this._store.slice(e+t),s=function(e,t){const i=[];for(let n=0;n=this._store.length||this._store.splice(e,t)}insert(e,t){if(0===t||e>=this._store.length)return;const i=[];for(let n=0;n0){const i=this._tokens[this._tokens.length-1];if(i.endLineNumber+1===e)return void i.appendLineTokens(t)}this._tokens.push(new nt(e,[t]))}finalize(){return this._tokens}}var st=i(43471);class rt{constructor(e,t){this.tokenizationSupport=t,this.initialState=this.tokenizationSupport.getInitialState(),this.store=new lt(e)}getStartState(e){return this.store.getStartState(e,this.initialState)}getFirstInvalidLine(){return this.store.getFirstInvalidLine(this.initialState)}}class at extends rt{constructor(e,t,i,n){super(e,t),this._textModel=i,this._languageIdCodec=n}updateTokensUntilLine(e,t){const i=this._textModel.getLanguageId();for(;;){const n=this.getFirstInvalidLine();if(!n||n.lineNumber>t)break;const o=this._textModel.getLineContent(n.lineNumber),s=ct(this._languageIdCodec,i,this.tokenizationSupport,o,!0,n.startState);e.add(n.lineNumber,s.tokens),this.store.setEndState(n.lineNumber,s.endState)}}getTokenTypeIfInsertingCharacter(e,t){const i=this.getStartState(e.lineNumber);if(!i)return 0;const n=this._textModel.getLanguageId(),o=this._textModel.getLineContent(e.lineNumber),s=o.substring(0,e.column-1)+t+o.substring(e.column-1),r=ct(this._languageIdCodec,n,this.tokenizationSupport,s,!0,i),a=new st.A(r.tokens,s,this._languageIdCodec);if(0===a.getCount())return 0;const l=a.findTokenIndexAtOffset(e.column-1);return a.getStandardTokenType(l)}tokenizeLineWithEdit(e,t,i){const n=e.lineNumber,o=e.column,s=this.getStartState(n);if(!s)return null;const r=this._textModel.getLineContent(n),a=r.substring(0,o-1)+i+r.substring(o-1+t),l=this._textModel.getLanguageIdAtPosition(n,0),h=ct(this._languageIdCodec,l,this.tokenizationSupport,a,!0,s);return new st.A(h.tokens,a,this._languageIdCodec)}hasAccurateTokensForLine(e){return e1&&r>=1;r--){const e=this._textModel.getLineFirstNonWhitespaceColumn(r);if(0!==e&&(e0&&i>0&&(i--,t--),this._lineEndStates.replace(e.startLineNumber,i,t)}}class dt{constructor(){this._ranges=[]}get min(){return 0===this._ranges.length?null:this._ranges[0].start}delete(e){const t=this._ranges.findIndex((t=>t.contains(e)));if(-1!==t){const i=this._ranges[t];i.start===e?i.endExclusive===e+1?this._ranges.splice(t,1):this._ranges[t]=new et.q(e+1,i.endExclusive):i.endExclusive===e+1?this._ranges[t]=new et.q(i.start,e):this._ranges.splice(t,1,new et.q(i.start,e),new et.q(e+1,i.endExclusive))}}addRange(e){et.q.addRange(e,this._ranges)}addRangeAndResize(e,t){let i=0;for(;!(i>=this._ranges.length||e.start<=this._ranges[i].endExclusive);)i++;let n=i;for(;!(n>=this._ranges.length||e.endExclusivee.toString())).join(" + ")}}function ct(e,t,i,n,o,r){let a=null;if(i)try{a=i.tokenizeEncoded(n,o,r.clone())}catch(l){(0,s.dL)(l)}return a||(a=(0,tt.Dy)(e.encodeLanguageId(t),r)),st.A.convertToEndOffset(a.tokens,n.length),a}class ut{constructor(e,t){this._tokenizerWithStateStore=e,this._backgroundTokenStore=t,this._isDisposed=!1,this._isScheduled=!1}dispose(){this._isDisposed=!0}handleChanges(){this._beginBackgroundTokenization()}_beginBackgroundTokenization(){!this._isScheduled&&this._tokenizerWithStateStore._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&(this._isScheduled=!0,(0,Qe.jg)((e=>{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(e)})))}_backgroundTokenizeWithDeadline(e){const t=Date.now()+e.timeRemaining(),i=()=>{!this._isDisposed&&this._tokenizerWithStateStore._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&(this._backgroundTokenizeForAtLeast1ms(),Date.now()1)break;if(this._tokenizeOneInvalidLine(t)>=e)break}while(this._hasLinesToTokenize());this._backgroundTokenStore.setTokens(t.finalize()),this.checkFinished()}_hasLinesToTokenize(){return!!this._tokenizerWithStateStore&&!this._tokenizerWithStateStore.store.allStatesValid()}_tokenizeOneInvalidLine(e){var t;const i=null===(t=this._tokenizerWithStateStore)||void 0===t?void 0:t.getFirstInvalidLine();return i?(this._tokenizerWithStateStore.updateTokensUntilLine(e,i.lineNumber),i.lineNumber):this._tokenizerWithStateStore._textModel.getLineCount()+1}checkFinished(){this._isDisposed||this._tokenizerWithStateStore.store.allStatesValid()&&this._backgroundTokenStore.backgroundTokenizationFinished()}requestTokens(e,t){this._tokenizerWithStateStore.store.invalidateEndStateRange(new u.z(e,t))}}const gt=new Uint32Array(0).buffer;class mt{static deleteBeginning(e,t){return null===e||e===gt?e:mt.delete(e,0,t)}static deleteEnding(e,t){if(null===e||e===gt)return e;const i=ft(e),n=i[i.length-2];return mt.delete(e,t,n)}static delete(e,t,i){if(null===e||e===gt||t===i)return e;const n=ft(e),o=n.length>>>1;if(0===t&&n[n.length-2]===i)return gt;const s=st.A.findIndexInTokensArray(n,t),r=s>0?n[s-1<<1]:0;if(il&&(n[a++]=e,n[a++]=n[1+(c<<1)],l=e)}if(a===n.length)return e;const d=new Uint32Array(a);return d.set(n.subarray(0,a),0),d.buffer}static append(e,t){if(t===gt)return e;if(e===gt)return t;if(null===e)return e;if(null===t)return null;const i=ft(e),n=ft(t),o=n.length>>>1,s=new Uint32Array(i.length+n.length);s.set(i,0);let r=i.length;const a=i[i.length-2];for(let l=0;l>>1;let s=st.A.findIndexInTokensArray(n,t);if(s>0){n[s-1<<1]===t&&s--}for(let r=s;r0}getTokens(e,t,i){let n=null;if(t1&&(t=pt.N.getLanguageId(n[1])!==e),!t)return gt}if(!n||0===n.length){const i=new Uint32Array(2);return i[0]=t,i[1]=vt(e),i.buffer}return n[n.length-2]=t,0===n.byteOffset&&n.byteLength===n.buffer.byteLength?n.buffer:n}_ensureLine(e){for(;e>=this._len;)this._lineTokens[this._len]=null,this._len++}_deleteLines(e,t){0!==t&&(e+t>this._len&&(t=this._len-e),this._lineTokens.splice(e,t),this._len-=t)}_insertLines(e,t){if(0===t)return;const i=[];for(let n=0;n=this._len)return;if(e.startLineNumber===e.endLineNumber){if(e.startColumn===e.endColumn)return;return void(this._lineTokens[t]=mt.delete(this._lineTokens[t],e.startColumn-1,e.endColumn-1))}this._lineTokens[t]=mt.deleteEnding(this._lineTokens[t],e.startColumn-1);const i=e.endLineNumber-1;let n=null;i=this._len||(0!==t?(this._lineTokens[n]=mt.deleteEnding(this._lineTokens[n],e.column-1),this._lineTokens[n]=mt.insert(this._lineTokens[n],e.column-1,i),this._insertLines(e.lineNumber,t)):this._lineTokens[n]=mt.insert(this._lineTokens[n],e.column-1,i))}setMultilineTokens(e,t){if(0===e.length)return{changes:[]};const i=[];for(let n=0,o=e.length;n>>0}class bt{constructor(e){this._pieces=[],this._isComplete=!1,this._languageIdCodec=e}flush(){this._pieces=[],this._isComplete=!1}isEmpty(){return 0===this._pieces.length}set(e,t){this._pieces=e||[],this._isComplete=t}setPartial(e,t){let i=e;if(t.length>0){const n=t[0].getRange(),o=t[t.length-1].getRange();if(!n||!o)return e;i=e.plusRange(n).plusRange(o)}let o=null;for(let n=0,s=this._pieces.length;ni.endLineNumber){o=o||{index:n};break}if(e.removeTokens(i),e.isEmpty()){this._pieces.splice(n,1),n--,s--;continue}if(e.endLineNumberi.endLineNumber){o=o||{index:n};continue}const[t,r]=e.split(i);t.isEmpty()?o=o||{index:n}:r.isEmpty()||(this._pieces.splice(n,1,t,r),n++,s++,o=o||{index:n})}return o=o||{index:this._pieces.length},t.length>0&&(this._pieces=n.Zv(this._pieces,o.index,t)),i}isComplete(){return this._isComplete}addSparseTokens(e,t){if(0===t.getLineContent().length)return t;const i=this._pieces;if(0===i.length)return t;const n=i[bt._findFirstPieceWithLine(i,e)].getLineTokens(e);if(!n)return t;const o=t.getCount(),s=n.getCount();let r=0;const a=[];let l=0,h=0;const d=(e,t)=>{e!==h&&(h=e,a[l++]=e,a[l++]=t)};for(let c=0;c>>0,l=~a>>>0;for(;rt)){for(;o>i&&e[o-1].startLineNumber<=t&&t<=e[o-1].endLineNumber;)o--;return o}n=o-1}}return i}acceptEdit(e,t,i,n,o){for(const s of this._pieces)s.acceptEdit(e,t,i,n,o)}}class Ct extends $e.U{constructor(e,t,i,n,o,s){super(),this._languageService=e,this._languageConfigurationService=t,this._textModel=i,this._bracketPairsTextModelPart=n,this._languageId=o,this._attachedViews=s,this._semanticTokens=new bt(this._languageService.languageIdCodec),this._onDidChangeLanguage=this._register(new r.Q5),this.onDidChangeLanguage=this._onDidChangeLanguage.event,this._onDidChangeLanguageConfiguration=this._register(new r.Q5),this.onDidChangeLanguageConfiguration=this._onDidChangeLanguageConfiguration.event,this._onDidChangeTokens=this._register(new r.Q5),this.onDidChangeTokens=this._onDidChangeTokens.event,this.grammarTokens=this._register(new wt(this._languageService.languageIdCodec,this._textModel,(()=>this._languageId),this._attachedViews)),this._register(this._languageConfigurationService.onDidChange((e=>{e.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})}))),this._register(this.grammarTokens.onDidChangeTokens((e=>{this._emitModelTokensChangedEvent(e)}))),this._register(this.grammarTokens.onDidChangeBackgroundTokenizationState((e=>{this._bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState()})))}handleDidChangeContent(e){if(e.isFlush)this._semanticTokens.flush();else if(!e.isEolChange)for(const t of e.changes){const[e,i,n]=(0,d.Q)(t.text);this._semanticTokens.acceptEdit(t.range,e,i,n,t.text.length>0?t.text.charCodeAt(0):0)}this.grammarTokens.handleDidChangeContent(e)}handleDidChangeAttached(){this.grammarTokens.handleDidChangeAttached()}getLineTokens(e){this.validateLineNumber(e);const t=this.grammarTokens.getLineTokens(e);return this._semanticTokens.addSparseTokens(e,t)}_emitModelTokensChangedEvent(e){this._textModel._isDisposing()||(this._bracketPairsTextModelPart.handleDidChangeTokens(e),this._onDidChangeTokens.fire(e))}validateLineNumber(e){if(e<1||e>this._textModel.getLineCount())throw new s.he("Illegal value for lineNumber")}get hasTokens(){return this.grammarTokens.hasTokens}resetTokenization(){this.grammarTokens.resetTokenization()}get backgroundTokenizationState(){return this.grammarTokens.backgroundTokenizationState}forceTokenization(e){this.validateLineNumber(e),this.grammarTokens.forceTokenization(e)}hasAccurateTokensForLine(e){return this.validateLineNumber(e),this.grammarTokens.hasAccurateTokensForLine(e)}isCheapToTokenize(e){return this.validateLineNumber(e),this.grammarTokens.isCheapToTokenize(e)}tokenizeIfCheap(e){this.validateLineNumber(e),this.grammarTokens.tokenizeIfCheap(e)}getTokenTypeIfInsertingCharacter(e,t,i){return this.grammarTokens.getTokenTypeIfInsertingCharacter(e,t,i)}tokenizeLineWithEdit(e,t,i){return this.grammarTokens.tokenizeLineWithEdit(e,t,i)}setSemanticTokens(e,t){this._semanticTokens.set(e,t),this._emitModelTokensChangedEvent({semanticTokensApplied:null!==e,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}hasCompleteSemanticTokens(){return this._semanticTokens.isComplete()}hasSomeSemanticTokens(){return!this._semanticTokens.isEmpty()}setPartialSemanticTokens(e,t){if(this.hasCompleteSemanticTokens())return;const i=this._textModel.validateRange(this._semanticTokens.setPartial(e,t));this._emitModelTokensChangedEvent({semanticTokensApplied:!0,ranges:[{fromLineNumber:i.startLineNumber,toLineNumber:i.endLineNumber}]})}getWordAtPosition(e){this.assertNotDisposed();const t=this._textModel.validatePosition(e),i=this._textModel.getLineContent(t.lineNumber),n=this.getLineTokens(t.lineNumber),o=n.findTokenIndexAtOffset(t.column-1),[s,r]=Ct._findLanguageBoundaries(n,o),a=(0,Ze.t2)(t.column,this.getLanguageConfiguration(n.getLanguageId(o)).getWordDefinition(),i.substring(s,r),s);if(a&&a.startColumn<=e.column&&e.column<=a.endColumn)return a;if(o>0&&s===t.column-1){const[s,r]=Ct._findLanguageBoundaries(n,o-1),a=(0,Ze.t2)(t.column,this.getLanguageConfiguration(n.getLanguageId(o-1)).getWordDefinition(),i.substring(s,r),s);if(a&&a.startColumn<=e.column&&e.column<=a.endColumn)return a}return null}getLanguageConfiguration(e){return this._languageConfigurationService.getLanguageConfiguration(e)}static _findLanguageBoundaries(e,t){const i=e.getLanguageId(t);let n=0;for(let s=t;s>=0&&e.getLanguageId(s)===i;s--)n=e.getStartOffset(s);let o=e.getLineContent().length;for(let s=t,r=e.getCount();s1&&void 0!==arguments[1]?arguments[1]:"api";if(this._languageId===e)return;const i={oldLanguage:this._languageId,newLanguage:e,source:t};this._languageId=e,this._bracketPairsTextModelPart.handleDidChangeLanguage(i),this.grammarTokens.resetTokenization(),this._onDidChangeLanguage.fire(i),this._onDidChangeLanguageConfiguration.fire({})}}class wt extends a.JT{get backgroundTokenizationState(){return this._backgroundTokenizationState}constructor(e,t,i,n){super(),this._languageIdCodec=e,this._textModel=t,this.getLanguageId=i,this._tokenizer=null,this._defaultBackgroundTokenizer=null,this._backgroundTokenizer=this._register(new a.XK),this._tokens=new _t(this._languageIdCodec),this._debugBackgroundTokenizer=this._register(new a.XK),this._backgroundTokenizationState=1,this._onDidChangeBackgroundTokenizationState=this._register(new r.Q5),this.onDidChangeBackgroundTokenizationState=this._onDidChangeBackgroundTokenizationState.event,this._onDidChangeTokens=this._register(new r.Q5),this.onDidChangeTokens=this._onDidChangeTokens.event,this._attachedViewStates=this._register(new a.b2),this._register(Ye.RW.onDidChange((e=>{const t=this.getLanguageId();-1!==e.changedLanguages.indexOf(t)&&this.resetTokenization()}))),this.resetTokenization(),this._register(n.onDidChangeVisibleRanges((e=>{let{view:t,state:i}=e;if(i){let e=this._attachedViewStates.get(t);e||(e=new yt((()=>this.refreshRanges(e.lineRanges))),this._attachedViewStates.set(t,e)),e.handleStateChange(i)}else this._attachedViewStates.deleteAndDispose(t)})))}resetTokenization(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];var t;this._tokens.flush(),null===(t=this._debugBackgroundTokens)||void 0===t||t.flush(),this._debugBackgroundStates&&(this._debugBackgroundStates=new lt(this._textModel.getLineCount())),e&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]});const[i,n]=(()=>{if(this._textModel.isTooLargeForTokenization())return[null,null];const e=Ye.RW.get(this.getLanguageId());if(!e)return[null,null];let t;try{t=e.getInitialState()}catch(i){return(0,s.dL)(i),[null,null]}return[e,t]})();if(this._tokenizer=i&&n?new at(this._textModel.getLineCount(),i,this._textModel,this._languageIdCodec):null,this._backgroundTokenizer.clear(),this._defaultBackgroundTokenizer=null,this._tokenizer){const e={setTokens:e=>{this.setTokens(e)},backgroundTokenizationFinished:()=>{if(2===this._backgroundTokenizationState)return;this._backgroundTokenizationState=2,this._onDidChangeBackgroundTokenizationState.fire()},setEndState:(e,t)=>{var i;if(!this._tokenizer)return;const n=this._tokenizer.store.getFirstInvalidEndStateLineNumber();null!==n&&e>=n&&(null===(i=this._tokenizer)||void 0===i||i.store.setEndState(e,t))}};i&&i.createBackgroundTokenizer&&!i.backgroundTokenizerShouldOnlyVerifyTokens&&(this._backgroundTokenizer.value=i.createBackgroundTokenizer(this._textModel,e)),this._backgroundTokenizer.value||this._textModel.isTooLargeForTokenization()||(this._backgroundTokenizer.value=this._defaultBackgroundTokenizer=new ut(this._tokenizer,e),this._defaultBackgroundTokenizer.handleChanges()),(null===i||void 0===i?void 0:i.backgroundTokenizerShouldOnlyVerifyTokens)&&i.createBackgroundTokenizer?(this._debugBackgroundTokens=new _t(this._languageIdCodec),this._debugBackgroundStates=new lt(this._textModel.getLineCount()),this._debugBackgroundTokenizer.clear(),this._debugBackgroundTokenizer.value=i.createBackgroundTokenizer(this._textModel,{setTokens:e=>{var t;null===(t=this._debugBackgroundTokens)||void 0===t||t.setMultilineTokens(e,this._textModel)},backgroundTokenizationFinished(){},setEndState:(e,t)=>{var i;null===(i=this._debugBackgroundStates)||void 0===i||i.setEndState(e,t)}})):(this._debugBackgroundTokens=void 0,this._debugBackgroundStates=void 0,this._debugBackgroundTokenizer.value=void 0)}this.refreshAllVisibleLineTokens()}handleDidChangeAttached(){var e;null===(e=this._defaultBackgroundTokenizer)||void 0===e||e.handleChanges()}handleDidChangeContent(e){var t,i,n;if(e.isFlush)this.resetTokenization(!1);else if(!e.isEolChange){for(const i of e.changes){const[e,n]=(0,d.Q)(i.text);this._tokens.acceptEdit(i.range,e,n),null===(t=this._debugBackgroundTokens)||void 0===t||t.acceptEdit(i.range,e,n)}null===(i=this._debugBackgroundStates)||void 0===i||i.acceptChanges(e.changes),this._tokenizer&&this._tokenizer.store.acceptChanges(e.changes),null===(n=this._defaultBackgroundTokenizer)||void 0===n||n.handleChanges()}}setTokens(e){const{changes:t}=this._tokens.setMultilineTokens(e,this._textModel);return t.length>0&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:t}),{changes:t}}refreshAllVisibleLineTokens(){const e=u.z.joinMany([...this._attachedViewStates].map((e=>{let[t,i]=e;return i.lineRanges})));this.refreshRanges(e)}refreshRanges(e){for(const t of e)this.refreshRange(t.startLineNumber,t.endLineNumberExclusive-1)}refreshRange(e,t){var i,n;if(!this._tokenizer)return;e=Math.max(1,Math.min(this._textModel.getLineCount(),e)),t=Math.min(this._textModel.getLineCount(),t);const o=new ot,{heuristicTokens:s}=this._tokenizer.tokenizeHeuristically(o,e,t),r=this.setTokens(o.finalize());if(s)for(const a of r.changes)null===(i=this._backgroundTokenizer.value)||void 0===i||i.requestTokens(a.fromLineNumber,a.toLineNumber+1);null===(n=this._defaultBackgroundTokenizer)||void 0===n||n.checkFinished()}forceTokenization(e){var t,i;const n=new ot;null===(t=this._tokenizer)||void 0===t||t.updateTokensUntilLine(n,e),this.setTokens(n.finalize()),null===(i=this._defaultBackgroundTokenizer)||void 0===i||i.checkFinished()}hasAccurateTokensForLine(e){return!this._tokenizer||this._tokenizer.hasAccurateTokensForLine(e)}isCheapToTokenize(e){return!this._tokenizer||this._tokenizer.isCheapToTokenize(e)}tokenizeIfCheap(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}getLineTokens(e){var t;const i=this._textModel.getLineContent(e),n=this._tokens.getTokens(this._textModel.getLanguageId(),e-1,i);if(this._debugBackgroundTokens&&this._debugBackgroundStates&&this._tokenizer&&this._debugBackgroundStates.getFirstInvalidEndStateLineNumberOrMax()>e&&this._tokenizer.store.getFirstInvalidEndStateLineNumberOrMax()>e){const o=this._debugBackgroundTokens.getTokens(this._textModel.getLanguageId(),e-1,i);!n.equals(o)&&(null===(t=this._debugBackgroundTokenizer.value)||void 0===t?void 0:t.reportMismatchingTokens)&&this._debugBackgroundTokenizer.value.reportMismatchingTokens(e)}return n}getTokenTypeIfInsertingCharacter(e,t,i){if(!this._tokenizer)return 0;const n=this._textModel.validatePosition(new g.L(e,t));return this.forceTokenization(n.lineNumber),this._tokenizer.getTokenTypeIfInsertingCharacter(n,i)}tokenizeLineWithEdit(e,t,i){if(!this._tokenizer)return null;const n=this._textModel.validatePosition(e);return this.forceTokenization(n.lineNumber),this._tokenizer.tokenizeLineWithEdit(n,t,i)}get hasTokens(){return this._tokens.hasTokens}}class yt extends a.JT{get lineRanges(){return this._lineRanges}constructor(e){super(),this._refreshTokens=e,this.runner=this._register(new Qe.pY((()=>this.update()),50)),this._computedLineRanges=[],this._lineRanges=[]}update(){(0,n.fS)(this._computedLineRanges,this._lineRanges,((e,t)=>e.equals(t)))||(this._computedLineRanges=this._lineRanges,this._refreshTokens())}handleStateChange(e){this._lineRanges=e.visibleLineRanges,e.stabilized?(this.runner.cancel(),this.update()):this.runner.schedule()}}var St,Lt=i(65497),kt=i(96484),Dt=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Nt=function(e,t){return function(i,n){t(i,n,e)}};function xt(e,t){let i;return i="string"===typeof e?function(e){const t=new Ge;return t.acceptChunk(e),t.finish()}(e):b.Hf(e)?function(e){const t=new Ge;let i;for(;"string"===typeof(i=e.read());)t.acceptChunk(i);return t.finish()}(e):e,i.create(t)}let Et=0;class It{constructor(e){this._source=e,this._eos=!1}read(){if(this._eos)return null;const e=[];let t=0,i=0;for(;;){const n=this._source.read();if(null===n)return this._eos=!0,0===t?null:e.join("");if(n.length>0&&(e[t++]=n,i+=n.length),i>=65536)return e.join("")}}}const Tt=()=>{throw new Error("Invalid change accessor")};let Mt=St=class extends a.JT{static resolveOptions(e,t){if(t.detectIndentation){const i=Y(e,t.tabSize,t.insertSpaces);return new b.dJ({tabSize:i.tabSize,indentSize:"tabSize",insertSpaces:i.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}return new b.dJ(t)}get onDidChangeLanguage(){return this._tokenizationTextModelPart.onDidChangeLanguage}get onDidChangeLanguageConfiguration(){return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration}get onDidChangeTokens(){return this._tokenizationTextModelPart.onDidChangeTokens}onDidChangeContent(e){return this._eventEmitter.slowEvent((t=>e(t.contentChangedEvent)))}onDidChangeContentOrInjectedText(e){return(0,a.F8)(this._eventEmitter.fastEvent((t=>e(t))),this._onDidChangeInjectedText.event((t=>e(t))))}_isDisposing(){return this.__isDisposing}get tokenization(){return this._tokenizationTextModelPart}get bracketPairs(){return this._bracketPairs}get guides(){return this._guidesTextModelPart}constructor(e,t,i){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4?arguments[4]:void 0,s=arguments.length>5?arguments[5]:void 0,d=arguments.length>6?arguments[6]:void 0;super(),this._undoRedoService=o,this._languageService=s,this._languageConfigurationService=d,this._onWillDispose=this._register(new r.Q5),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new jt((e=>this.handleBeforeFireDecorationsChangedEvent(e)))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new r.Q5),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new r.Q5),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new r.Q5),this._eventEmitter=this._register(new qt),this._languageSelectionListener=this._register(new a.XK),this._deltaDecorationCallCnt=0,this._attachedViews=new Gt,Et++,this.id="$model"+Et,this.isForSimpleWidget=i.isForSimpleWidget,this._associatedResource="undefined"===typeof n||null===n?h.o.parse("inmemory://model/"+Et):n,this._attachedEditorCount=0;const{textBuffer:c,disposable:u}=xt(e,i.defaultEOL);this._buffer=c,this._bufferDisposable=u,this._options=St.resolveOptions(this._buffer,i);const g="string"===typeof t?t:t.languageId;"string"!==typeof t&&(this._languageSelectionListener.value=t.onDidChange((()=>this._setLanguage(t.languageId)))),this._bracketPairs=this._register(new B(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new G.l(this,this._languageConfigurationService)),this._decorationProvider=this._register(new U(this)),this._tokenizationTextModelPart=new Ct(this._languageService,this._languageConfigurationService,this,this._bracketPairs,g,this._attachedViews);const f=this._buffer.getLineCount(),p=this._buffer.getValueLengthInRange(new m.e(1,1,f,this._buffer.getLineLength(f)+1),0);i.largeFileOptimizations?(this._isTooLargeForTokenization=p>St.LARGE_FILE_SIZE_THRESHOLD||f>St.LARGE_FILE_LINE_COUNT_THRESHOLD,this._isTooLargeForHeapOperation=p>St.LARGE_FILE_HEAP_OPERATION_THRESHOLD):(this._isTooLargeForTokenization=!1,this._isTooLargeForHeapOperation=!1),this._isTooLargeForSyncing=p>St._MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this.__isDisposing=!1,this._instanceId=l.PJ(Et),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new Ot,this._commandManager=new q.NL(this,this._undoRedoService),this._isUndoing=!1,this._isRedoing=!1,this._trimAutoWhitespaceLines=null,this._register(this._decorationProvider.onDidChange((()=>{this._onDidChangeDecorations.beginDeferredEmit(),this._onDidChangeDecorations.fire(),this._onDidChangeDecorations.endDeferredEmit()}))),this._languageService.requestRichLanguageFeatures(g)}dispose(){this.__isDisposing=!0,this._onWillDispose.fire(),this._tokenizationTextModelPart.dispose(),this._isDisposed=!0,super.dispose(),this._bufferDisposable.dispose(),this.__isDisposing=!1;const e=new je([],"","\n",!1,!1,!0,!0);e.dispose(),this._buffer=e,this._bufferDisposable=a.JT.None}_assertNotDisposed(){if(this._isDisposed)throw new Error("Model is disposed!")}_emitContentChangedEvent(e,t){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent(t),this._bracketPairs.handleDidChangeContent(t),this._eventEmitter.fire(new Lt.fV(e,t)))}setValue(e){if(this._assertNotDisposed(),null===e||void 0===e)throw(0,s.b1)();const{textBuffer:t,disposable:i}=xt(e,this._options.defaultEOL);this._setValueFromTextBuffer(t,i)}_createContentChanged2(e,t,i,n,o,s,r,a){return{changes:[{range:e,rangeOffset:t,rangeLength:i,text:n}],eol:this._buffer.getEOL(),isEolChange:a,versionId:this.getVersionId(),isUndoing:o,isRedoing:s,isFlush:r}}_setValueFromTextBuffer(e,t){this._assertNotDisposed();const i=this.getFullModelRange(),n=this.getValueLengthInRange(i),o=this.getLineCount(),s=this.getLineMaxColumn(o);this._buffer=e,this._bufferDisposable.dispose(),this._bufferDisposable=t,this._increaseVersionId(),this._decorations=Object.create(null),this._decorationsTree=new Ot,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new Lt.dQ([new Lt.Jx],this._versionId,!1,!1),this._createContentChanged2(new m.e(1,1,o,s),0,n,this.getValue(),!1,!1,!0,!1))}setEOL(e){this._assertNotDisposed();const t=1===e?"\r\n":"\n";if(this._buffer.getEOL()===t)return;const i=this.getFullModelRange(),n=this.getValueLengthInRange(i),o=this.getLineCount(),s=this.getLineMaxColumn(o);this._onBeforeEOLChange(),this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new Lt.dQ([new Lt.CZ],this._versionId,!1,!1),this._createContentChanged2(new m.e(1,1,o,s),0,n,this.getValue(),!1,!1,!1,!0))}_onBeforeEOLChange(){this._decorationsTree.ensureAllNodesHaveRanges(this)}_onAfterEOLChange(){const e=this.getVersionId(),t=this._decorationsTree.collectNodesPostOrder();for(let i=0,n=t.length;i0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}isTooLargeForHeapOperation(){return this._isTooLargeForHeapOperation}isDisposed(){return this._isDisposed}isDominatedByLongLines(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;let e=0,t=0;const i=this._buffer.getLineCount();for(let n=1;n<=i;n++){const i=this._buffer.getLineLength(n);i>=1e4?t+=i:e+=i}return t>e}get uri(){return this._associatedResource}getOptions(){return this._assertNotDisposed(),this._options}getFormattingOptions(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}}updateOptions(e){this._assertNotDisposed();const t="undefined"!==typeof e.tabSize?e.tabSize:this._options.tabSize,i="undefined"!==typeof e.indentSize?e.indentSize:this._options.originalIndentSize,n="undefined"!==typeof e.insertSpaces?e.insertSpaces:this._options.insertSpaces,o="undefined"!==typeof e.trimAutoWhitespace?e.trimAutoWhitespace:this._options.trimAutoWhitespace,s="undefined"!==typeof e.bracketColorizationOptions?e.bracketColorizationOptions:this._options.bracketPairColorizationOptions,r=new b.dJ({tabSize:t,indentSize:i,insertSpaces:n,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:o,bracketPairColorizationOptions:s});if(this._options.equals(r))return;const a=this._options.createChangeEvent(r);this._options=r,this._bracketPairs.handleDidChangeOptions(a),this._decorationProvider.handleDidChangeOptions(a),this._onDidChangeOptions.fire(a)}detectIndentation(e,t){this._assertNotDisposed();const i=Y(this._buffer,t,e);this.updateOptions({insertSpaces:i.insertSpaces,tabSize:i.tabSize,indentSize:i.tabSize})}normalizeIndentation(e){return this._assertNotDisposed(),(0,c.x)(e,this._options.indentSize,this._options.insertSpaces)}getVersionId(){return this._assertNotDisposed(),this._versionId}mightContainRTL(){return this._buffer.mightContainRTL()}mightContainUnusualLineTerminators(){return this._buffer.mightContainUnusualLineTerminators()}removeUnusualLineTerminators(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const t=this.findMatches(l.Qe.source,!1,!0,!1,null,!1,1073741824);this._buffer.resetMightContainUnusualLineTerminators(),this.pushEditOperations(e,t.map((e=>({range:e.range,text:null}))),(()=>null))}mightContainNonBasicASCII(){return this._buffer.mightContainNonBasicASCII()}getAlternativeVersionId(){return this._assertNotDisposed(),this._alternativeVersionId}getInitialUndoRedoSnapshot(){return this._assertNotDisposed(),this._initialUndoRedoSnapshot}getOffsetAt(e){this._assertNotDisposed();const t=this._validatePosition(e.lineNumber,e.column,0);return this._buffer.getOffsetAt(t.lineNumber,t.column)}getPositionAt(e){this._assertNotDisposed();const t=Math.min(this._buffer.getLength(),Math.max(0,e));return this._buffer.getPositionAt(t)}_increaseVersionId(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId}_overwriteVersionId(e){this._versionId=e}_overwriteAlternativeVersionId(e){this._alternativeVersionId=e}_overwriteInitialUndoRedoSnapshot(e){this._initialUndoRedoSnapshot=e}getValue(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new s.he("Operation would exceed heap memory limits");const i=this.getFullModelRange(),n=this.getValueInRange(i,e);return t?this._buffer.getBOM()+n:n}createSnapshot(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return new It(this._buffer.createSnapshot(e))}getValueLength(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._assertNotDisposed();const i=this.getFullModelRange(),n=this.getValueLengthInRange(i,e);return t?this._buffer.getBOM().length+n:n}getValueInRange(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(e),t)}getValueLengthInRange(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(e),t)}getCharacterCountInRange(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(e),t)}getLineCount(){return this._assertNotDisposed(),this._buffer.getLineCount()}getLineContent(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new s.he("Illegal value for lineNumber");return this._buffer.getLineContent(e)}getLineLength(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new s.he("Illegal value for lineNumber");return this._buffer.getLineLength(e)}getLinesContent(){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new s.he("Operation would exceed heap memory limits");return this._buffer.getLinesContent()}getEOL(){return this._assertNotDisposed(),this._buffer.getEOL()}getEndOfLineSequence(){return this._assertNotDisposed(),"\n"===this._buffer.getEOL()?0:1}getLineMinColumn(e){return this._assertNotDisposed(),1}getLineMaxColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new s.he("Illegal value for lineNumber");return this._buffer.getLineLength(e)+1}getLineFirstNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new s.he("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(e)}getLineLastNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new s.he("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(e)}_validateRangeRelaxedNoAllocations(e){const t=this._buffer.getLineCount(),i=e.startLineNumber,n=e.startColumn;let o=Math.floor("number"!==typeof i||isNaN(i)?1:i),s=Math.floor("number"!==typeof n||isNaN(n)?1:n);if(o<1)o=1,s=1;else if(o>t)o=t,s=this.getLineMaxColumn(o);else if(s<=1)s=1;else{const e=this.getLineMaxColumn(o);s>=e&&(s=e)}const r=e.endLineNumber,a=e.endColumn;let l=Math.floor("number"!==typeof r||isNaN(r)?1:r),h=Math.floor("number"!==typeof a||isNaN(a)?1:a);if(l<1)l=1,h=1;else if(l>t)l=t,h=this.getLineMaxColumn(l);else if(h<=1)h=1;else{const e=this.getLineMaxColumn(l);h>=e&&(h=e)}return i===o&&n===s&&r===l&&a===h&&e instanceof m.e&&!(e instanceof f.Y)?e:new m.e(o,s,l,h)}_isValidPosition(e,t,i){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===i){const i=this._buffer.getLineCharCode(e,t-2);if(l.ZG(i))return!1}return!0}_validatePosition(e,t,i){const n=Math.floor("number"!==typeof e||isNaN(e)?1:e),o=Math.floor("number"!==typeof t||isNaN(t)?1:t),s=this._buffer.getLineCount();if(n<1)return new g.L(1,1);if(n>s)return new g.L(s,this.getLineMaxColumn(s));if(o<=1)return new g.L(n,1);const r=this.getLineMaxColumn(n);if(o>=r)return new g.L(n,r);if(1===i){const e=this._buffer.getLineCharCode(n,o-2);if(l.ZG(e))return new g.L(n,o-1)}return new g.L(n,o)}validatePosition(e){return this._assertNotDisposed(),e instanceof g.L&&this._isValidPosition(e.lineNumber,e.column,1)?e:this._validatePosition(e.lineNumber,e.column,1)}_isValidRange(e,t){const i=e.startLineNumber,n=e.startColumn,o=e.endLineNumber,s=e.endColumn;if(!this._isValidPosition(i,n,0))return!1;if(!this._isValidPosition(o,s,0))return!1;if(1===t){const e=n>1?this._buffer.getLineCharCode(i,n-2):0,t=s>1&&s<=this._buffer.getLineLength(o)?this._buffer.getLineCharCode(o,s-2):0,r=l.ZG(e),a=l.ZG(t);return!r&&!a}return!0}validateRange(e){if(this._assertNotDisposed(),e instanceof m.e&&!(e instanceof f.Y)&&this._isValidRange(e,1))return e;const t=this._validatePosition(e.startLineNumber,e.startColumn,0),i=this._validatePosition(e.endLineNumber,e.endColumn,0),n=t.lineNumber,o=t.column,s=i.lineNumber,r=i.column;{const e=o>1?this._buffer.getLineCharCode(n,o-2):0,t=r>1&&r<=this._buffer.getLineLength(s)?this._buffer.getLineCharCode(s,r-2):0,i=l.ZG(e),a=l.ZG(t);return i||a?n===s&&o===r?new m.e(n,o-1,s,r-1):i&&a?new m.e(n,o-1,s,r+1):i?new m.e(n,o-1,s,r):new m.e(n,o,s,r+1):new m.e(n,o,s,r)}}modifyPosition(e,t){this._assertNotDisposed();const i=this.getOffsetAt(e)+t;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,i)))}getFullModelRange(){this._assertNotDisposed();const e=this.getLineCount();return new m.e(1,1,e,this.getLineMaxColumn(e))}findMatchesLineByLine(e,t,i,n){return this._buffer.findMatchesLineByLine(e,t,i,n)}findMatches(e,t,i,n,o,s){let r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:999;this._assertNotDisposed();let a=null;null!==t&&(Array.isArray(t)||(t=[t]),t.every((e=>m.e.isIRange(e)))&&(a=t.map((e=>this.validateRange(e))))),null===a&&(a=[this.getFullModelRange()]),a=a.sort(((e,t)=>e.startLineNumber-t.startLineNumber||e.startColumn-t.startColumn));const l=[];let h;if(l.push(a.reduce(((e,t)=>m.e.areIntersecting(e,t)?e.plusRange(t):(l.push(e),t)))),!i&&e.indexOf("\n")<0){const t=new Re.bc(e,i,n,o).parseSearchRequest();if(!t)return[];h=e=>this.findMatchesLineByLine(e,t,s,r)}else h=t=>Re.pM.findMatches(this,new Re.bc(e,i,n,o),t,s,r);return l.map(h).reduce(((e,t)=>e.concat(t)),[])}findNextMatch(e,t,i,n,o,s){this._assertNotDisposed();const r=this.validatePosition(t);if(!i&&e.indexOf("\n")<0){const t=new Re.bc(e,i,n,o).parseSearchRequest();if(!t)return null;const a=this.getLineCount();let l=new m.e(r.lineNumber,r.column,a,this.getLineMaxColumn(a)),h=this.findMatchesLineByLine(l,t,s,1);return Re.pM.findNextMatch(this,new Re.bc(e,i,n,o),r,s),h.length>0?h[0]:(l=new m.e(1,1,r.lineNumber,this.getLineMaxColumn(r.lineNumber)),h=this.findMatchesLineByLine(l,t,s,1),h.length>0?h[0]:null)}return Re.pM.findNextMatch(this,new Re.bc(e,i,n,o),r,s)}findPreviousMatch(e,t,i,n,o,s){this._assertNotDisposed();const r=this.validatePosition(t);return Re.pM.findPreviousMatch(this,new Re.bc(e,i,n,o),r,s)}pushStackElement(){this._commandManager.pushStackElement()}popStackElement(){this._commandManager.popStackElement()}pushEOL(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()}}_validateEditOperation(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)}_validateEditOperations(e){const t=[];for(let i=0,n=e.length;i({range:this.validateRange(e.range),text:e.text})));let n=!0;if(e)for(let t=0,o=e.length;to.endLineNumber,r=o.startLineNumber>t.endLineNumber;if(!n&&!r){s=!0;break}}if(!s){n=!1;break}}if(n)for(let e=0,o=this._trimAutoWhitespaceLines.length;et.endLineNumber)&&(!(n===t.startLineNumber&&t.startColumn===o&&t.isEmpty()&&r&&r.length>0&&"\n"===r.charAt(0))&&!(n===t.startLineNumber&&1===t.startColumn&&t.isEmpty()&&r&&r.length>0&&"\n"===r.charAt(r.length-1)))){s=!1;break}}if(s){const e=new m.e(n,1,n,o);t.push(new b.Qi(null,e,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return null===this._initialUndoRedoSnapshot&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(e,t,i,n)}_applyUndo(e,t,i,n){const o=e.map((e=>{const t=this.getPositionAt(e.newPosition),i=this.getPositionAt(e.newEnd);return{range:new m.e(t.lineNumber,t.column,i.lineNumber,i.column),text:e.oldText}}));this._applyUndoRedoEdits(o,t,!0,!1,i,n)}_applyRedo(e,t,i,n){const o=e.map((e=>{const t=this.getPositionAt(e.oldPosition),i=this.getPositionAt(e.oldEnd);return{range:new m.e(t.lineNumber,t.column,i.lineNumber,i.column),text:e.newText}}));this._applyUndoRedoEdits(o,t,!1,!0,i,n)}_applyUndoRedoEdits(e,t,i,n,o,s){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=i,this._isRedoing=n,this.applyEdits(e,!1),this.setEOL(t),this._overwriteAlternativeVersionId(o)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(s),this._onDidChangeDecorations.endDeferredEmit()}}applyEdits(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();const i=this._validateEditOperations(e);return this._doApplyEdits(i,t)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_doApplyEdits(e,t){const i=this._buffer.getLineCount(),o=this._buffer.applyEdits(e,this._options.trimAutoWhitespace,t),s=this._buffer.getLineCount(),r=o.changes;if(this._trimAutoWhitespaceLines=o.trimAutoWhitespaceLineNumbers,0!==r.length){for(let i=0,n=r.length;i=0;t--){const i=l+t,n=p+t;w.takeFromEndWhile((e=>e.lineNumber>n));const o=w.takeFromEndWhile((e=>e.lineNumber===n));e.push(new Lt.rU(i,this.getLineContent(n),o))}if(me.lineNumbere.lineNumber===t))}e.push(new Lt.Tx(o+1,l+u,d,h))}t+=f}this._emitContentChangedEvent(new Lt.dQ(e,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:r,eol:this._buffer.getEOL(),isEolChange:!1,versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return null===o.reverseEdits?void 0:o.reverseEdits}undo(){return this._undoRedoService.undo(this.uri)}canUndo(){return this._undoRedoService.canUndo(this.uri)}redo(){return this._undoRedoService.redo(this.uri)}canRedo(){return this._undoRedoService.canRedo(this.uri)}handleBeforeFireDecorationsChangedEvent(e){if(null===e||0===e.size)return;const t=Array.from(e).map((e=>new Lt.rU(e,this.getLineContent(e),this._getInjectedTextInLine(e))));this._onDidChangeInjectedText.fire(new Lt.D8(t))}changeDecorations(e){let 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()}}_changeDecorations(e,t){const i={addDecoration:(t,i)=>this._deltaDecorationsImpl(e,[],[{range:t,options:i}])[0],changeDecoration:(e,t)=>{this._changeDecorationImpl(e,t)},changeDecorationOptions:(e,t)=>{this._changeDecorationOptionsImpl(e,Ut(t))},removeDecoration:t=>{this._deltaDecorationsImpl(e,[t],[])},deltaDecorations:(t,i)=>0===t.length&&0===i.length?[]:this._deltaDecorationsImpl(e,t,i)};let n=null;try{n=t(i)}catch(o){(0,s.dL)(o)}return i.addDecoration=Tt,i.changeDecoration=Tt,i.changeDecorationOptions=Tt,i.removeDecoration=Tt,i.deltaDecorations=Tt,n}deltaDecorations(e,t){let i=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._deltaDecorationCallCnt++,this._deltaDecorationCallCnt>1&&(console.warn("Invoking deltaDecorations recursively could lead to leaking decorations."),(0,s.dL)(new Error("Invoking deltaDecorations recursively could lead to leaking decorations."))),this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(i,e,t)}finally{this._onDidChangeDecorations.endDeferredEmit(),this._deltaDecorationCallCnt--}}_getTrackedRange(e){return this.getDecorationRange(e)}_setTrackedRange(e,t,i){const n=e?this._decorations[e]:null;if(!n)return t?this._deltaDecorationsImpl(0,[],[{range:t,options:Kt[i]}],!0)[0]:null;if(!t)return this._decorationsTree.delete(n),delete this._decorations[n.id],null;const o=this._validateRangeRelaxedNoAllocations(t),s=this._buffer.getOffsetAt(o.startLineNumber,o.startColumn),r=this._buffer.getOffsetAt(o.endLineNumber,o.endColumn);return this._decorationsTree.delete(n),n.reset(this.getVersionId(),s,r,o),n.setOptions(Kt[i]),this._decorationsTree.insert(n),n.id}removeAllDecorationsWithOwnerId(e){if(this._isDisposed)return;const t=this._decorationsTree.collectNodesFromOwner(e);for(let i=0,n=t.length;i1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return e<1||e>this.getLineCount()?[]:this.getLinesDecorations(e,e,t,i)}getLinesDecorations(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=arguments.length>4&&void 0!==arguments[4]&&arguments[4];const r=this.getLineCount(),a=Math.min(r,Math.max(1,e)),l=Math.min(r,Math.max(1,t)),h=this.getLineMaxColumn(l),d=new m.e(a,1,l,h),c=this._getDecorationsInRange(d,i,o,s);return(0,n.vA)(c,this._decorationProvider.getDecorationsInRange(d,i,o)),c}getDecorationsInRange(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=arguments.length>4&&void 0!==arguments[4]&&arguments[4];const r=this.validateRange(e),a=this._getDecorationsInRange(r,t,i,s);return(0,n.vA)(a,this._decorationProvider.getDecorationsInRange(r,t,i,o)),a}getOverviewRulerDecorations(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this._decorationsTree.getAll(this,e,t,!0,!1)}getInjectedTextDecorations(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this._decorationsTree.getAllInjectedText(this,e)}_getInjectedTextInLine(e){const t=this._buffer.getOffsetAt(e,1),i=t+this._buffer.getLineLength(e),n=this._decorationsTree.getInjectedTextInInterval(this,t,i,0);return Lt.gk.fromDecorations(n).filter((t=>t.lineNumber===e))}getAllDecorations(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this._decorationsTree.getAll(this,e,t,!1,!1);return i=i.concat(this._decorationProvider.getAllDecorations(e,t)),i}getAllMarginDecorations(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this._decorationsTree.getAll(this,e,!1,!1,!0)}_getDecorationsInRange(e,t,i,n){const o=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),s=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn);return this._decorationsTree.getAllInInterval(this,o,s,t,i,n)}getRangeAt(e,t){return this._buffer.getRangeAt(e,t-e)}_changeDecorationImpl(e,t){const i=this._decorations[e];if(!i)return;if(i.options.after){const t=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(t.endLineNumber)}if(i.options.before){const t=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(t.startLineNumber)}const n=this._validateRangeRelaxedNoAllocations(t),o=this._buffer.getOffsetAt(n.startLineNumber,n.startColumn),s=this._buffer.getOffsetAt(n.endLineNumber,n.endColumn);this._decorationsTree.delete(i),i.reset(this.getVersionId(),o,s,n),this._decorationsTree.insert(i),this._onDidChangeDecorations.checkAffectedAndFire(i.options),i.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(n.endLineNumber),i.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(n.startLineNumber)}_changeDecorationOptionsImpl(e,t){const i=this._decorations[e];if(!i)return;const n=!(!i.options.overviewRuler||!i.options.overviewRuler.color),o=!(!t.overviewRuler||!t.overviewRuler.color);if(this._onDidChangeDecorations.checkAffectedAndFire(i.options),this._onDidChangeDecorations.checkAffectedAndFire(t),i.options.after||t.after){const e=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.endLineNumber)}if(i.options.before||t.before){const e=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.startLineNumber)}const s=n!==o,r=function(e){return!!e.after||!!e.before}(t)!==Rt(i);s||r?(this._decorationsTree.delete(i),i.setOptions(t),this._decorationsTree.insert(i)):i.setOptions(t)}_deltaDecorationsImpl(e,t,i){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const o=this.getVersionId(),s=t.length;let r=0;const a=i.length;let l=0;this._onDidChangeDecorations.beginDeferredEmit();try{const h=new Array(a);for(;rthis._setLanguage(e.languageId,t))),this._setLanguage(e.languageId,t))}_setLanguage(e,t){this.tokenization.setLanguageId(e,t),this._languageService.requestRichLanguageFeatures(e)}getLanguageIdAtPosition(e,t){return this.tokenization.getLanguageIdAtPosition(e,t)}getWordAtPosition(e){return this._tokenizationTextModelPart.getWordAtPosition(e)}getWordUntilPosition(e){return this._tokenizationTextModelPart.getWordUntilPosition(e)}normalizePosition(e,t){return e}getLineIndentColumn(e){return function(e){let t=0;for(const i of e){if(" "!==i&&"\t"!==i)break;t++}return t}(this.getLineContent(e))+1}};function At(e){return!(!e.options.overviewRuler||!e.options.overviewRuler.color)}function Rt(e){return!!e.options.after||!!e.options.before}Mt._MODEL_SYNC_LIMIT=52428800,Mt.LARGE_FILE_SIZE_THRESHOLD=20971520,Mt.LARGE_FILE_LINE_COUNT_THRESHOLD=3e5,Mt.LARGE_FILE_HEAP_OPERATION_THRESHOLD=268435456,Mt.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:p.D.tabSize,indentSize:p.D.indentSize,insertSpaces:p.D.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:p.D.trimAutoWhitespace,largeFileOptimizations:p.D.largeFileOptimizations,bracketPairColorizationOptions:p.D.bracketPairColorizationOptions},Mt=St=Dt([Nt(4,kt.tJ),Nt(5,_.O),Nt(6,v.c_)],Mt);class Ot{constructor(){this._decorationsTree0=new he,this._decorationsTree1=new he,this._injectedTextDecorationsTree=new he}ensureAllNodesHaveRanges(e){this.getAll(e,0,!1,!1,!1)}_ensureNodesHaveRanges(e,t){for(const i of t)null===i.range&&(i.range=e.getRangeAt(i.cachedAbsoluteStart,i.cachedAbsoluteEnd));return t}getAllInInterval(e,t,i,n,o,s){const r=e.getVersionId(),a=this._intervalSearch(t,i,n,o,r,s);return this._ensureNodesHaveRanges(e,a)}_intervalSearch(e,t,i,n,o,s){const r=this._decorationsTree0.intervalSearch(e,t,i,n,o,s),a=this._decorationsTree1.intervalSearch(e,t,i,n,o,s),l=this._injectedTextDecorationsTree.intervalSearch(e,t,i,n,o,s);return r.concat(a).concat(l)}getInjectedTextInInterval(e,t,i,n){const o=e.getVersionId(),s=this._injectedTextDecorationsTree.intervalSearch(t,i,n,!1,o,!1);return this._ensureNodesHaveRanges(e,s).filter((e=>e.options.showIfCollapsed||!e.range.isEmpty()))}getAllInjectedText(e,t){const i=e.getVersionId(),n=this._injectedTextDecorationsTree.search(t,!1,i,!1);return this._ensureNodesHaveRanges(e,n).filter((e=>e.options.showIfCollapsed||!e.range.isEmpty()))}getAll(e,t,i,n,o){const s=e.getVersionId(),r=this._search(t,i,n,s,o);return this._ensureNodesHaveRanges(e,r)}_search(e,t,i,n,o){if(i)return this._decorationsTree1.search(e,t,n,o);{const i=this._decorationsTree0.search(e,t,n,o),s=this._decorationsTree1.search(e,t,n,o),r=this._injectedTextDecorationsTree.search(e,t,n,o);return i.concat(s).concat(r)}}collectNodesFromOwner(e){const t=this._decorationsTree0.collectNodesFromOwner(e),i=this._decorationsTree1.collectNodesFromOwner(e),n=this._injectedTextDecorationsTree.collectNodesFromOwner(e);return t.concat(i).concat(n)}collectNodesPostOrder(){const e=this._decorationsTree0.collectNodesPostOrder(),t=this._decorationsTree1.collectNodesPostOrder(),i=this._injectedTextDecorationsTree.collectNodesPostOrder();return e.concat(t).concat(i)}insert(e){Rt(e)?this._injectedTextDecorationsTree.insert(e):At(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)}delete(e){Rt(e)?this._injectedTextDecorationsTree.delete(e):At(e)?this._decorationsTree1.delete(e):this._decorationsTree0.delete(e)}getNodeRange(e,t){const i=e.getVersionId();return t.cachedVersionId!==i&&this._resolveNode(t,i),null===t.range&&(t.range=e.getRangeAt(t.cachedAbsoluteStart,t.cachedAbsoluteEnd)),t.range}_resolveNode(e,t){Rt(e)?this._injectedTextDecorationsTree.resolveNode(e,t):At(e)?this._decorationsTree1.resolveNode(e,t):this._decorationsTree0.resolveNode(e,t)}acceptReplace(e,t,i,n){this._decorationsTree0.acceptReplace(e,t,i,n),this._decorationsTree1.acceptReplace(e,t,i,n),this._injectedTextDecorationsTree.acceptReplace(e,t,i,n)}}function Pt(e){return e.replace(/[^a-z0-9\-_]/gi," ")}class Ft{constructor(e){this.color=e.color||"",this.darkColor=e.darkColor||""}}class Bt extends Ft{constructor(e){super(e),this._resolvedColor=null,this.position="number"===typeof e.position?e.position:b.sh.Center}getColor(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}invalidateCachedColor(){this._resolvedColor=null}_resolveColor(e,t){if("string"===typeof e)return e;const i=e?t.getColor(e.id):null;return i?i.toString():""}}class zt{constructor(e){var t;this.position=null!==(t=null===e||void 0===e?void 0:e.position)&&void 0!==t?t:b.U.Center,this.persistLane=null===e||void 0===e?void 0:e.persistLane}}class Vt extends Ft{constructor(e){var t,i;super(e),this.position=e.position,this.sectionHeaderStyle=null!==(t=e.sectionHeaderStyle)&&void 0!==t?t:null,this.sectionHeaderText=null!==(i=e.sectionHeaderText)&&void 0!==i?i:null}getColor(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}invalidateCachedColor(){this._resolvedColor=void 0}_resolveColor(e,t){return"string"===typeof e?o.Il.fromHex(e):t.getColor(e.id)}}class Wt{static from(e){return e instanceof Wt?e:new Wt(e)}constructor(e){this.content=e.content||"",this.inlineClassName=e.inlineClassName||null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.attachedData=e.attachedData||null,this.cursorStops=e.cursorStops||null}}class Ht{static register(e){return new Ht(e)}static createDynamic(e){return new Ht(e)}constructor(e){var t,i,n,o,s,r;this.description=e.description,this.blockClassName=e.blockClassName?Pt(e.blockClassName):null,this.blockDoesNotCollapse=null!==(t=e.blockDoesNotCollapse)&&void 0!==t?t:null,this.blockIsAfterEnd=null!==(i=e.blockIsAfterEnd)&&void 0!==i?i:null,this.blockPadding=null!==(n=e.blockPadding)&&void 0!==n?n:null,this.stickiness=e.stickiness||0,this.zIndex=e.zIndex||0,this.className=e.className?Pt(e.className):null,this.shouldFillLineOnLineBreak=null!==(o=e.shouldFillLineOnLineBreak)&&void 0!==o?o:null,this.hoverMessage=e.hoverMessage||null,this.glyphMarginHoverMessage=e.glyphMarginHoverMessage||null,this.lineNumberHoverMessage=e.lineNumberHoverMessage||null,this.isWholeLine=e.isWholeLine||!1,this.showIfCollapsed=e.showIfCollapsed||!1,this.collapseOnReplaceEdit=e.collapseOnReplaceEdit||!1,this.overviewRuler=e.overviewRuler?new Bt(e.overviewRuler):null,this.minimap=e.minimap?new Vt(e.minimap):null,this.glyphMargin=e.glyphMarginClassName?new zt(e.glyphMargin):null,this.glyphMarginClassName=e.glyphMarginClassName?Pt(e.glyphMarginClassName):null,this.linesDecorationsClassName=e.linesDecorationsClassName?Pt(e.linesDecorationsClassName):null,this.lineNumberClassName=e.lineNumberClassName?Pt(e.lineNumberClassName):null,this.linesDecorationsTooltip=e.linesDecorationsTooltip?l.fA(e.linesDecorationsTooltip):null,this.firstLineDecorationClassName=e.firstLineDecorationClassName?Pt(e.firstLineDecorationClassName):null,this.marginClassName=e.marginClassName?Pt(e.marginClassName):null,this.inlineClassName=e.inlineClassName?Pt(e.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=e.beforeContentClassName?Pt(e.beforeContentClassName):null,this.afterContentClassName=e.afterContentClassName?Pt(e.afterContentClassName):null,this.after=e.after?Wt.from(e.after):null,this.before=e.before?Wt.from(e.before):null,this.hideInCommentTokens=null!==(s=e.hideInCommentTokens)&&void 0!==s&&s,this.hideInStringTokens=null!==(r=e.hideInStringTokens)&&void 0!==r&&r}}Ht.EMPTY=Ht.register({description:"empty"});const Kt=[Ht.register({description:"tracked-range-always-grows-when-typing-at-edges",stickiness:0}),Ht.register({description:"tracked-range-never-grows-when-typing-at-edges",stickiness:1}),Ht.register({description:"tracked-range-grows-only-when-typing-before",stickiness:2}),Ht.register({description:"tracked-range-grows-only-when-typing-after",stickiness:3})];function Ut(e){return e instanceof Ht?e:Ht.createDynamic(e)}class jt extends a.JT{constructor(e){super(),this.handleBeforeFire=e,this._actual=this._register(new r.Q5),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._deferredCnt=0,this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._affectsLineNumber=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){var e;this._deferredCnt--,0===this._deferredCnt&&(this._shouldFireDeferred&&this.doFire(),null===(e=this._affectedInjectedTextLines)||void 0===e||e.clear(),this._affectedInjectedTextLines=null)}recordLineAffectedByInjectedText(e){this._affectedInjectedTextLines||(this._affectedInjectedTextLines=new Set),this._affectedInjectedTextLines.add(e)}checkAffectedAndFire(e){var t,i;this._affectsMinimap||(this._affectsMinimap=!!(null===(t=e.minimap)||void 0===t?void 0:t.position)),this._affectsOverviewRuler||(this._affectsOverviewRuler=!!(null===(i=e.overviewRuler)||void 0===i?void 0:i.color)),this._affectsGlyphMargin||(this._affectsGlyphMargin=!!e.glyphMarginClassName),this._affectsLineNumber||(this._affectsLineNumber=!!e.lineNumberClassName),this.tryFire()}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._affectsGlyphMargin=!0,this.tryFire()}tryFire(){0===this._deferredCnt?this.doFire():this._shouldFireDeferred=!0}doFire(){this.handleBeforeFire(this._affectedInjectedTextLines);const e={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler,affectsGlyphMargin:this._affectsGlyphMargin,affectsLineNumber:this._affectsLineNumber};this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._actual.fire(e)}}class qt extends a.JT{constructor(){super(),this._fastEmitter=this._register(new r.Q5),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new r.Q5),this.slowEvent=this._slowEmitter.event,this._deferredCnt=0,this._deferredEvent=null}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){let 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;const t=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire(t),this._slowEmitter.fire(t)}}fire(e){this._deferredCnt>0?this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(e):this._deferredEvent=e:(this._fastEmitter.fire(e),this._slowEmitter.fire(e))}}class Gt{constructor(){this._onDidChangeVisibleRanges=new r.Q5,this.onDidChangeVisibleRanges=this._onDidChangeVisibleRanges.event,this._views=new Set}attachView(){const e=new Qt((t=>{this._onDidChangeVisibleRanges.fire({view:e,state:t})}));return this._views.add(e),e}detachView(e){this._views.delete(e),this._onDidChangeVisibleRanges.fire({view:e,state:void 0})}}class Qt{constructor(e){this.handleStateChange=e}setVisibleLines(e,t){const i=e.map((e=>new u.z(e.startLineNumber,e.endLineNumber+1)));this.handleStateChange({visibleLineRanges:i,stabilized:t})}}},81958:(e,t,i)=>{i.d(t,{U:()=>o});var n=i(89599);class o extends n.JT{constructor(){super(...arguments),this._isDisposed=!1}dispose(){super.dispose(),this._isDisposed=!0}assertNotDisposed(){if(this._isDisposed)throw new Error("TextModelPart is disposed!")}}},90255:(e,t,i)=>{i.d(t,{bc:()=>l,cM:()=>u,iE:()=>h,pM:()=>c,sz:()=>g});var n=i(25085),o=i(67055),s=i(2067),r=i(10670),a=i(27127);class l{constructor(e,t,i,n){this.searchString=e,this.isRegex=t,this.matchCase=i,this.wordSeparators=n}parseSearchRequest(){if(""===this.searchString)return null;let e;e=this.isRegex?function(e){if(!e||0===e.length)return!1;for(let t=0,i=e.length;t=i)break;const n=e.charCodeAt(t);if(110===n||114===n||87===n)return!0}}return!1}(this.searchString):this.searchString.indexOf("\n")>=0;let t=null;try{t=n.GF(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch(s){return null}if(!t)return null;let i=!this.isRegex&&!e;return i&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(i=this.matchCase),new a.Tx(t,this.wordSeparators?(0,o.u)(this.wordSeparators,[]):null,i?this.searchString:null)}}function h(e,t,i){if(!i)return new a.tk(e,null);const n=[];for(let o=0,s=t.length;o>0);t[o]>=e?n=o-1:t[o+1]>=e?(i=o,n=o):i=o+1}return i+1}}class c{static findMatches(e,t,i,n,o){const s=t.parseSearchRequest();return s?s.regex.multiline?this._doFindMatchesMultiline(e,i,new g(s.wordSeparators,s.regex),n,o):this._doFindMatchesLineByLine(e,i,s,n,o):[]}static _getMultilineMatchRange(e,t,i,n,o,s){let a,l,h=0;if(n?(h=n.findLineFeedCountBeforeOffset(o),a=t+o+h):a=t+o,n){const e=n.findLineFeedCountBeforeOffset(o+s.length)-h;l=a+s.length+e}else l=a+s.length;const d=e.getPositionAt(a),c=e.getPositionAt(l);return new r.e(d.lineNumber,d.column,c.lineNumber,c.column)}static _doFindMatchesMultiline(e,t,i,n,o){const s=e.getOffsetAt(t.getStartPosition()),r=e.getValueInRange(t,1),a="\r\n"===e.getEOL()?new d(r):null,l=[];let c,u=0;for(i.reset(0);c=i.next(r);)if(l[u++]=h(this._getMultilineMatchRange(e,s,r,a,c.index,c[0]),c,n),u>=o)return l;return l}static _doFindMatchesLineByLine(e,t,i,n,o){const s=[];let r=0;if(t.startLineNumber===t.endLineNumber){const a=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return r=this._findMatchesInLine(i,a,t.startLineNumber,t.startColumn-1,r,s,n,o),s}const a=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);r=this._findMatchesInLine(i,a,t.startLineNumber,t.startColumn-1,r,s,n,o);for(let l=t.startLineNumber+1;l=d))return o;return o}const m=new g(e.wordSeparators,e.regex);let f;m.reset(0);do{if(f=m.next(t),f&&(s[o++]=h(new r.e(i,f.index+1+n,i,f.index+1+f[0].length+n),f,l),o>=d))return o}while(f);return o}static findNextMatch(e,t,i,n){const o=t.parseSearchRequest();if(!o)return null;const s=new g(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindNextMatchMultiline(e,i,s,n):this._doFindNextMatchLineByLine(e,i,s,n)}static _doFindNextMatchMultiline(e,t,i,n){const o=new s.L(t.lineNumber,1),a=e.getOffsetAt(o),l=e.getLineCount(),c=e.getValueInRange(new r.e(o.lineNumber,o.column,l,e.getLineMaxColumn(l)),1),u="\r\n"===e.getEOL()?new d(c):null;i.reset(t.column-1);const g=i.next(c);return g?h(this._getMultilineMatchRange(e,a,c,u,g.index,g[0]),g,n):1!==t.lineNumber||1!==t.column?this._doFindNextMatchMultiline(e,new s.L(1,1),i,n):null}static _doFindNextMatchLineByLine(e,t,i,n){const o=e.getLineCount(),s=t.lineNumber,r=e.getLineContent(s),a=this._findFirstMatchInLine(i,r,s,t.column,n);if(a)return a;for(let l=1;l<=o;l++){const t=(s+l-1)%o,r=e.getLineContent(t+1),a=this._findFirstMatchInLine(i,r,t+1,1,n);if(a)return a}return null}static _findFirstMatchInLine(e,t,i,n,o){e.reset(n-1);const s=e.next(t);return s?h(new r.e(i,s.index+1,i,s.index+1+s[0].length),s,o):null}static findPreviousMatch(e,t,i,n){const o=t.parseSearchRequest();if(!o)return null;const s=new g(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindPreviousMatchMultiline(e,i,s,n):this._doFindPreviousMatchLineByLine(e,i,s,n)}static _doFindPreviousMatchMultiline(e,t,i,n){const o=this._doFindMatchesMultiline(e,new r.e(1,1,t.lineNumber,t.column),i,n,9990);if(o.length>0)return o[o.length-1];const a=e.getLineCount();return t.lineNumber!==a||t.column!==e.getLineMaxColumn(a)?this._doFindPreviousMatchMultiline(e,new s.L(a,e.getLineMaxColumn(a)),i,n):null}static _doFindPreviousMatchLineByLine(e,t,i,n){const o=e.getLineCount(),s=t.lineNumber,r=e.getLineContent(s).substring(0,t.column-1),a=this._findLastMatchInLine(i,r,s,n);if(a)return a;for(let l=1;l<=o;l++){const t=(o+s-l-1)%o,r=e.getLineContent(t+1),a=this._findLastMatchInLine(i,r,t+1,n);if(a)return a}return null}static _findLastMatchInLine(e,t,i,n){let o,s=null;for(e.reset(0);o=e.next(t);)s=h(new r.e(i,o.index+1,i,o.index+1+o[0].length),o,n);return s}}function u(e,t,i,n,o){return function(e,t,i,n,o){if(0===n)return!0;const s=t.charCodeAt(n-1);if(0!==e.get(s))return!0;if(13===s||10===s)return!0;if(o>0){const i=t.charCodeAt(n);if(0!==e.get(i))return!0}return!1}(e,t,0,n,o)&&function(e,t,i,n,o){if(n+o===i)return!0;const s=t.charCodeAt(n+o);if(0!==e.get(s))return!0;if(13===s||10===s)return!0;if(o>0){const i=t.charCodeAt(n+o-1);if(0!==e.get(i))return!0}return!1}(e,t,i,n,o)}class g{constructor(e,t){this._wordSeparators=e,this._searchRegex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(e){const t=e.length;let i;do{if(this._prevMatchStartIndex+this._prevMatchLength===t)return null;if(i=this._searchRegex.exec(e),!i)return null;const o=i.index,s=i[0].length;if(o===this._prevMatchStartIndex&&s===this._prevMatchLength){if(0===s){n.ZH(e,t,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=o,this._prevMatchLength=s,!this._wordSeparators||u(this._wordSeparators,e,t,o,s))return i}while(i);return null}}},29430:(e,t,i)=>{function n(e,t){let i=0,n=0;const o=e.length;for(;nn})},13930:(e,t,i)=>{i.d(t,{O:()=>g});var n=i(16113),o=i(24219),s=i(67925),r=i(82682),a=i(2067),l=i(10670),h=i(67078),d=i(761),c=i(13521);class u{static chord(e,t){return(0,s.gx)(e,t)}}function g(){return{editor:void 0,languages:void 0,CancellationTokenSource:n.A,Emitter:o.Q5,KeyCode:c.VD,KeyMod:u,Position:a.L,Range:l.e,Selection:h.Y,SelectionDirection:c.a$,MarkerSeverity:c.ZL,MarkerTag:c.eB,Uri:r.o,Token:d.WU}}u.CtrlCmd=2048,u.Shift=1024,u.Alt=512,u.WinCtrl=256},60918:(e,t,i)=>{i.d(t,{p:()=>n});const n=(0,i(34304).yh)("editorWorkerService")},25233:(e,t,i)=>{i.d(t,{A:()=>g});var n=i(48367),o=i(65549),s=i(63229),r=i(33473),a=i(43837),l=i(34304),h=i(83717),d=i(33211),c=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},u=function(e,t){return function(i,n){t(i,n,e)}};const g=(0,l.yh)("ILanguageFeatureDebounceService");var m;!function(e){const t=new WeakMap;let i=0;e.of=function(e){let n=t.get(e);return void 0===n&&(n=++i,t.set(e,n)),n}}(m||(m={}));class f{constructor(e){this._default=e}get(e){return this._default}update(e,t){return this._default}default(){return this._default}}class p{constructor(e,t,i,n,s,r){this._logService=e,this._name=t,this._registry=i,this._default=n,this._min=s,this._max=r,this._cache=new o.z6(50,.7)}_key(e){return e.id+this._registry.all(e).reduce(((e,t)=>(0,n.SP)(m.of(t),e)),0)}get(e){const t=this._key(e),i=this._cache.get(t);return i?(0,s.uZ)(i.value,this._min,this._max):this.default()}update(e,t){const i=this._key(e);let n=this._cache.get(i);n||(n=new s.N(6),this._cache.set(i,n));const o=(0,s.uZ)(n.update(t),this._min,this._max);return(0,d.xn)(e.uri,"output")||this._logService.trace("[DEBOUNCE: ".concat(this._name,"] for ").concat(e.uri.toString()," is ").concat(o,"ms")),o}_overall(){const e=new s.nM;for(const[,t]of this._cache)e.update(t.value);return e.value}default(){const e=0|this._overall()||this._default;return(0,s.uZ)(e,this._min,this._max)}}let _=class{constructor(e,t){this._logService=e,this._data=new Map,this._isDev=t.isExtensionDevelopment||!t.isBuilt}for(e,t,i){var n,o,s;const r=null!==(n=null===i||void 0===i?void 0:i.min)&&void 0!==n?n:50,a=null!==(o=null===i||void 0===i?void 0:i.max)&&void 0!==o?o:r**2,l=null!==(s=null===i||void 0===i?void 0:i.key)&&void 0!==s?s:void 0,h="".concat(m.of(e),",").concat(r).concat(l?","+l:"");let d=this._data.get(h);return d||(this._isDev?d=new p(this._logService,t,e,0|this._overallAverage()||1.5*r,r,a):(this._logService.debug("[DEBOUNCE: ".concat(t,"] is disabled in developed mode")),d=new f(1.5*r)),this._data.set(h,d)),d}_overallAverage(){const e=new s.nM;for(const t of this._data.values())e.update(t.default());return e.value}};_=c([u(0,h.VZ),u(1,r.Y)],_),(0,a.z)(g,_,1)},89752:(e,t,i)=>{i.d(t,{p:()=>n});const n=(0,i(34304).yh)("ILanguageFeaturesService")},11974:(e,t,i)=>{i.d(t,{i:()=>n});const n=(0,i(34304).yh)("markerDecorationsService")},42175:(e,t,i)=>{i.d(t,{q:()=>n});const n=(0,i(34304).yh)("modelService")},93984:(e,t,i)=>{i.d(t,{S:()=>n});const n=(0,i(34304).yh)("textModelService")},24415:(e,t,i)=>{i.d(t,{$:()=>f,h:()=>p});var n=i(55562),o=i(17903),s=i(83717),r=i(2067),a=i(10670),l=i(55494);class h{static create(e,t){return new h(e,new d(t))}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._endLineNumber}constructor(e,t){this._startLineNumber=e,this._tokens=t,this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}toString(){return this._tokens.toString(this._startLineNumber)}_updateEndLineNumber(){this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}isEmpty(){return this._tokens.isEmpty()}getLineTokens(e){return this._startLineNumber<=e&&e<=this._endLineNumber?this._tokens.getLineTokens(e-this._startLineNumber):null}getRange(){const e=this._tokens.getRange();return e?new a.e(this._startLineNumber+e.startLineNumber,e.startColumn,this._startLineNumber+e.endLineNumber,e.endColumn):e}removeTokens(e){const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber;this._startLineNumber+=this._tokens.removeTokens(t,e.startColumn-1,i,e.endColumn-1),this._updateEndLineNumber()}split(e){const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber,[n,o,s]=this._tokens.split(t,e.startColumn-1,i,e.endColumn-1);return[new h(this._startLineNumber,n),new h(this._startLineNumber+s,o)]}applyEdit(e,t){const[i,n,o]=(0,l.Q)(t);this.acceptEdit(e,i,n,o,t.length>0?t.charCodeAt(0):0)}acceptEdit(e,t,i,n,o){this._acceptDeleteRange(e),this._acceptInsertText(new r.L(e.startLineNumber,e.startColumn),t,i,n,o),this._updateEndLineNumber()}_acceptDeleteRange(e){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return;const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber;if(i<0){const e=i-t;return void(this._startLineNumber-=e)}const n=this._tokens.getMaxDeltaLine();if(!(t>=n+1)){if(t<0&&i>=n+1)return this._startLineNumber=0,void this._tokens.clear();if(t<0){const n=-t;this._startLineNumber-=n,this._tokens.acceptDeleteRange(e.startColumn-1,0,0,i,e.endColumn-1)}else this._tokens.acceptDeleteRange(0,t,e.startColumn-1,i,e.endColumn-1)}}_acceptInsertText(e,t,i,n,o){if(0===t&&0===i)return;const s=e.lineNumber-this._startLineNumber;if(s<0)return void(this._startLineNumber+=t);s>=this._tokens.getMaxDeltaLine()+1||this._tokens.acceptInsertText(s,e.column-1,t,i,n,o)}}class d{constructor(e){this._tokens=e,this._tokenCount=e.length/4}toString(e){const t=[];for(let i=0;ie)){let o=n;for(;o>t&&this._getDeltaLine(o-1)===e;)o--;let s=n;for(;se||d===e&&u>=t)&&(de||r===e&&g>=t){if(ro?m-=o-i:m=i;else if(u===t&&g===i){if(!(u===n&&m>o)){h=!0;continue}m-=o-i}else if(uo)){h=!0;continue}u=t,g=i,m=g+(m-o)}else if(u>n){if(0===a&&!h){l=r;break}u-=a}else{if(!(u===n&&g>=o))throw new Error("Not possible!");e&&0===u&&(g+=e,m+=e),u-=a,g-=o-i,m-=o-i}const p=4*l;s[p]=u,s[p+1]=g,s[p+2]=m,s[p+3]=f,l++}this._tokenCount=l}acceptInsertText(e,t,i,n,o,s){const r=0===i&&1===n&&(s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122),a=this._tokens,l=this._tokenCount;for(let h=0;h=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},m=function(e,t){return function(i,n){t(i,n,e)}};let f=class{constructor(e,t,i,n){this._legend=e,this._themeService=t,this._languageService=i,this._logService=n,this._hasWarnedOverlappingTokens=!1,this._hasWarnedInvalidLengthTokens=!1,this._hasWarnedInvalidEditStart=!1,this._hashTable=new v}getMetadata(e,t,i){const o=this._languageService.languageIdCodec.encodeLanguageId(i),r=this._hashTable.get(e,t,o);let a;if(r)a=r.metadata,this._logService.getLevel()===s.in.Trace&&this._logService.trace("SemanticTokensProviderStyling [CACHED] ".concat(e," / ").concat(t,": foreground ").concat(n.N.getForeground(a),", fontStyle ").concat(n.N.getFontStyle(a).toString(2)));else{let r=this._legend.tokenTypes[e];const l=[];if(r){let e=t;for(let t=0;e>0&&t>=1;e>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))),l.push("not-in-legend"));const n=this._themeService.getColorTheme().getTokenStyleMetadata(r,l,i);if("undefined"===typeof n)a=2147483647;else{if(a=0,"undefined"!==typeof n.italic){a|=1|(n.italic?1:0)<<11}if("undefined"!==typeof n.bold){a|=2|(n.bold?2:0)<<11}if("undefined"!==typeof n.underline){a|=4|(n.underline?4:0)<<11}if("undefined"!==typeof n.strikethrough){a|=8|(n.strikethrough?8:0)<<11}if(n.foreground){a|=16|n.foreground<<15}0===a&&(a=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))),a=2147483647,r="not-in-legend";this._hashTable.add(e,t,o,a),this._logService.getLevel()===s.in.Trace&&this._logService.trace("SemanticTokensProviderStyling ".concat(e," (").concat(r,") / ").concat(t," (").concat(l.join(" "),"): foreground ").concat(n.N.getForeground(a),", fontStyle ").concat(n.N.getFontStyle(a).toString(2)))}return a}warnOverlappingSemanticTokens(e,t){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,this._logService.warn("Overlapping semantic tokens detected at lineNumber ".concat(e,", column ").concat(t)))}warnInvalidLengthSemanticTokens(e,t){this._hasWarnedInvalidLengthTokens||(this._hasWarnedInvalidLengthTokens=!0,this._logService.warn("Semantic token with invalid length detected at lineNumber ".concat(e,", column ").concat(t)))}warnInvalidEditStart(e,t,i,n,o){this._hasWarnedInvalidEditStart||(this._hasWarnedInvalidEditStart=!0,this._logService.warn("Invalid semantic tokens edit detected (previousResultId: ".concat(e,", resultId: ").concat(t,") at edit #").concat(i,": The provided start offset ").concat(n," is outside the previous data (length ").concat(o,").")))}};function p(e,t,i){const n=e.data,o=e.data.length/5|0,s=Math.max(Math.ceil(o/1024),400),r=[];let a=0,l=1,d=0;for(;ae&&0===n[5*t];)t--;if(t-1===e){let e=c;for(;e+1h)t.warnOverlappingSemanticTokens(r,h+1);else{const e=t.getMetadata(_,v,i);2147483647!==e&&(0===m&&(m=r),u[g]=r-m,u[g+1]=h,u[g+2]=c,u[g+3]=e,g+=4,f=r,p=c)}l=r,d=h,a++}g!==u.length&&(u=u.subarray(0,g));const _=h.create(m,u);r.push(_)}return r}f=g([m(1,o.XE),m(2,u.O),m(3,s.VZ)],f);class _{constructor(e,t,i,n){this.tokenTypeIndex=e,this.tokenModifierSet=t,this.languageId=i,this.metadata=n,this.next=null}}class v{constructor(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=v._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1=this._growCount){const e=this._elements;this._currentLengthIndex++,this._currentLength=v._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1{i.d(t,{s:()=>n});const n=(0,i(34304).yh)("semanticTokensStylingService")},61315:(e,t,i)=>{i.d(t,{V:()=>o,y:()=>s});var n=i(34304);const o=(0,n.yh)("textResourceConfigurationService"),s=(0,n.yh)("textResourcePropertiesService")},90428:(e,t,i)=>{i.d(t,{a:()=>l});var n=i(10670),o=i(90255),s=i(25085),r=i(39880),a=i(42696);class l{static computeUnicodeHighlights(e,t,i){const l=i?i.startLineNumber:1,d=i?i.endLineNumber:e.getLineCount(),c=new h(t),u=c.getCandidateCodePoints();let g;var m;g="allNonBasicAscii"===u?new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):new RegExp("".concat((m=Array.from(u),"[".concat(s.ec(m.map((e=>String.fromCodePoint(e))).join("")),"]"))),"g");const f=new o.sz(null,g),p=[];let _,v=!1,b=0,C=0,w=0;e:for(let o=l,h=d;o<=h;o++){const t=e.getLineContent(o),i=t.length;f.reset(0);do{if(_=f.next(t),_){let e=_.index,l=_.index+_[0].length;if(e>0){const i=t.charCodeAt(e-1);s.ZG(i)&&e--}if(l+1=t){v=!0;break e}p.push(new n.e(o,e+1,o,l+1))}}}while(_)}return{ranges:p,hasMore:v,ambiguousCharacterCount:b,invisibleCharacterCount:C,nonBasicAsciiCharacterCount:w}}static computeUnicodeHighlightReason(e,t){const i=new h(t);switch(i.shouldHighlightNonBasicASCII(e,null)){case 0:return null;case 2:return{kind:1};case 3:{const n=e.codePointAt(0),o=i.ambiguousCharacters.getPrimaryConfusable(n),r=s.ZK.getLocales().filter((e=>!s.ZK.getInstance(new Set([...t.allowedLocales,e])).isAmbiguous(n)));return{kind:0,confusableWith:String.fromCodePoint(o),notAmbiguousInLocales:r}}case 1:return{kind:2}}}}class h{constructor(e){this.options=e,this.allowedCodePoints=new Set(e.allowedCodePoints),this.ambiguousCharacters=s.ZK.getInstance(new Set(e.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const e=new Set;if(this.options.invisibleCharacters)for(const t of s.vU.codePoints)d(String.fromCodePoint(t))||e.add(t);if(this.options.ambiguousCharacters)for(const t of this.ambiguousCharacters.getConfusableCodePoints())e.add(t);for(const t of this.allowedCodePoints)e.delete(t);return e}shouldHighlightNonBasicASCII(e,t){const i=e.codePointAt(0);if(this.allowedCodePoints.has(i))return 0;if(this.options.nonBasicASCII)return 1;let n=!1,o=!1;if(t)for(const r of t){const e=r.codePointAt(0),t=s.$i(r);n=n||t,t||this.ambiguousCharacters.isAmbiguous(e)||s.vU.isInvisibleCharacter(e)||(o=!0)}return!n&&o?0:this.options.invisibleCharacters&&!d(e)&&s.vU.isInvisibleCharacter(i)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(i)?3:0}}function d(e){return" "===e||"\n"===e||"\t"===e}},13521:(e,t,i)=>{var n,o,s,r,a,l,h,d,c,u,g,m,f,p,_,v,b,C,w,y,S,L,k,D,N,x,E,I,T,M,A,R,O,P,F,B,z,V,W,H,K,U,j,q;i.d(t,{$r:()=>z,E$:()=>I,F5:()=>D,Ij:()=>l,In:()=>K,Lu:()=>R,MG:()=>x,MY:()=>u,NA:()=>M,OI:()=>j,RM:()=>b,U:()=>_,VD:()=>S,Vi:()=>d,WG:()=>N,WW:()=>V,ZL:()=>L,_x:()=>c,a$:()=>B,a7:()=>s,ao:()=>n,bw:()=>w,cR:()=>W,cm:()=>r,d2:()=>U,eB:()=>k,g4:()=>P,g_:()=>F,gl:()=>C,gm:()=>f,jl:()=>p,np:()=>o,py:()=>A,r3:()=>h,r4:()=>H,rf:()=>g,rn:()=>y,sh:()=>T,up:()=>q,vQ:()=>O,w:()=>E,wT:()=>m,wU:()=>v,we:()=>a}),function(e){e[e.Unknown=0]="Unknown",e[e.Disabled=1]="Disabled",e[e.Enabled=2]="Enabled"}(n||(n={})),function(e){e[e.Invoke=1]="Invoke",e[e.Auto=2]="Auto"}(o||(o={})),function(e){e[e.None=0]="None",e[e.KeepWhitespace=1]="KeepWhitespace",e[e.InsertAsSnippet=4]="InsertAsSnippet"}(s||(s={})),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"}(r||(r={})),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"}(l||(l={})),function(e){e[e.EXACT=0]="EXACT",e[e.ABOVE=1]="ABOVE",e[e.BELOW=2]="BELOW"}(h||(h={})),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"}(d||(d={})),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"}(u||(u={})),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"}(g||(g={})),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.ariaRequired=5]="ariaRequired",e[e.autoClosingBrackets=6]="autoClosingBrackets",e[e.autoClosingComments=7]="autoClosingComments",e[e.screenReaderAnnounceInlineSuggestion=8]="screenReaderAnnounceInlineSuggestion",e[e.autoClosingDelete=9]="autoClosingDelete",e[e.autoClosingOvertype=10]="autoClosingOvertype",e[e.autoClosingQuotes=11]="autoClosingQuotes",e[e.autoIndent=12]="autoIndent",e[e.automaticLayout=13]="automaticLayout",e[e.autoSurround=14]="autoSurround",e[e.bracketPairColorization=15]="bracketPairColorization",e[e.guides=16]="guides",e[e.codeLens=17]="codeLens",e[e.codeLensFontFamily=18]="codeLensFontFamily",e[e.codeLensFontSize=19]="codeLensFontSize",e[e.colorDecorators=20]="colorDecorators",e[e.colorDecoratorsLimit=21]="colorDecoratorsLimit",e[e.columnSelection=22]="columnSelection",e[e.comments=23]="comments",e[e.contextmenu=24]="contextmenu",e[e.copyWithSyntaxHighlighting=25]="copyWithSyntaxHighlighting",e[e.cursorBlinking=26]="cursorBlinking",e[e.cursorSmoothCaretAnimation=27]="cursorSmoothCaretAnimation",e[e.cursorStyle=28]="cursorStyle",e[e.cursorSurroundingLines=29]="cursorSurroundingLines",e[e.cursorSurroundingLinesStyle=30]="cursorSurroundingLinesStyle",e[e.cursorWidth=31]="cursorWidth",e[e.disableLayerHinting=32]="disableLayerHinting",e[e.disableMonospaceOptimizations=33]="disableMonospaceOptimizations",e[e.domReadOnly=34]="domReadOnly",e[e.dragAndDrop=35]="dragAndDrop",e[e.dropIntoEditor=36]="dropIntoEditor",e[e.emptySelectionClipboard=37]="emptySelectionClipboard",e[e.experimentalWhitespaceRendering=38]="experimentalWhitespaceRendering",e[e.extraEditorClassName=39]="extraEditorClassName",e[e.fastScrollSensitivity=40]="fastScrollSensitivity",e[e.find=41]="find",e[e.fixedOverflowWidgets=42]="fixedOverflowWidgets",e[e.folding=43]="folding",e[e.foldingStrategy=44]="foldingStrategy",e[e.foldingHighlight=45]="foldingHighlight",e[e.foldingImportsByDefault=46]="foldingImportsByDefault",e[e.foldingMaximumRegions=47]="foldingMaximumRegions",e[e.unfoldOnClickAfterEndOfLine=48]="unfoldOnClickAfterEndOfLine",e[e.fontFamily=49]="fontFamily",e[e.fontInfo=50]="fontInfo",e[e.fontLigatures=51]="fontLigatures",e[e.fontSize=52]="fontSize",e[e.fontWeight=53]="fontWeight",e[e.fontVariations=54]="fontVariations",e[e.formatOnPaste=55]="formatOnPaste",e[e.formatOnType=56]="formatOnType",e[e.glyphMargin=57]="glyphMargin",e[e.gotoLocation=58]="gotoLocation",e[e.hideCursorInOverviewRuler=59]="hideCursorInOverviewRuler",e[e.hover=60]="hover",e[e.inDiffEditor=61]="inDiffEditor",e[e.inlineSuggest=62]="inlineSuggest",e[e.inlineEdit=63]="inlineEdit",e[e.letterSpacing=64]="letterSpacing",e[e.lightbulb=65]="lightbulb",e[e.lineDecorationsWidth=66]="lineDecorationsWidth",e[e.lineHeight=67]="lineHeight",e[e.lineNumbers=68]="lineNumbers",e[e.lineNumbersMinChars=69]="lineNumbersMinChars",e[e.linkedEditing=70]="linkedEditing",e[e.links=71]="links",e[e.matchBrackets=72]="matchBrackets",e[e.minimap=73]="minimap",e[e.mouseStyle=74]="mouseStyle",e[e.mouseWheelScrollSensitivity=75]="mouseWheelScrollSensitivity",e[e.mouseWheelZoom=76]="mouseWheelZoom",e[e.multiCursorMergeOverlapping=77]="multiCursorMergeOverlapping",e[e.multiCursorModifier=78]="multiCursorModifier",e[e.multiCursorPaste=79]="multiCursorPaste",e[e.multiCursorLimit=80]="multiCursorLimit",e[e.occurrencesHighlight=81]="occurrencesHighlight",e[e.overviewRulerBorder=82]="overviewRulerBorder",e[e.overviewRulerLanes=83]="overviewRulerLanes",e[e.padding=84]="padding",e[e.pasteAs=85]="pasteAs",e[e.parameterHints=86]="parameterHints",e[e.peekWidgetDefaultFocus=87]="peekWidgetDefaultFocus",e[e.definitionLinkOpensInPeek=88]="definitionLinkOpensInPeek",e[e.quickSuggestions=89]="quickSuggestions",e[e.quickSuggestionsDelay=90]="quickSuggestionsDelay",e[e.readOnly=91]="readOnly",e[e.readOnlyMessage=92]="readOnlyMessage",e[e.renameOnType=93]="renameOnType",e[e.renderControlCharacters=94]="renderControlCharacters",e[e.renderFinalNewline=95]="renderFinalNewline",e[e.renderLineHighlight=96]="renderLineHighlight",e[e.renderLineHighlightOnlyWhenFocus=97]="renderLineHighlightOnlyWhenFocus",e[e.renderValidationDecorations=98]="renderValidationDecorations",e[e.renderWhitespace=99]="renderWhitespace",e[e.revealHorizontalRightPadding=100]="revealHorizontalRightPadding",e[e.roundedSelection=101]="roundedSelection",e[e.rulers=102]="rulers",e[e.scrollbar=103]="scrollbar",e[e.scrollBeyondLastColumn=104]="scrollBeyondLastColumn",e[e.scrollBeyondLastLine=105]="scrollBeyondLastLine",e[e.scrollPredominantAxis=106]="scrollPredominantAxis",e[e.selectionClipboard=107]="selectionClipboard",e[e.selectionHighlight=108]="selectionHighlight",e[e.selectOnLineNumbers=109]="selectOnLineNumbers",e[e.showFoldingControls=110]="showFoldingControls",e[e.showUnused=111]="showUnused",e[e.snippetSuggestions=112]="snippetSuggestions",e[e.smartSelect=113]="smartSelect",e[e.smoothScrolling=114]="smoothScrolling",e[e.stickyScroll=115]="stickyScroll",e[e.stickyTabStops=116]="stickyTabStops",e[e.stopRenderingLineAfter=117]="stopRenderingLineAfter",e[e.suggest=118]="suggest",e[e.suggestFontSize=119]="suggestFontSize",e[e.suggestLineHeight=120]="suggestLineHeight",e[e.suggestOnTriggerCharacters=121]="suggestOnTriggerCharacters",e[e.suggestSelection=122]="suggestSelection",e[e.tabCompletion=123]="tabCompletion",e[e.tabIndex=124]="tabIndex",e[e.unicodeHighlighting=125]="unicodeHighlighting",e[e.unusualLineTerminators=126]="unusualLineTerminators",e[e.useShadowDOM=127]="useShadowDOM",e[e.useTabStops=128]="useTabStops",e[e.wordBreak=129]="wordBreak",e[e.wordSegmenterLocales=130]="wordSegmenterLocales",e[e.wordSeparators=131]="wordSeparators",e[e.wordWrap=132]="wordWrap",e[e.wordWrapBreakAfterCharacters=133]="wordWrapBreakAfterCharacters",e[e.wordWrapBreakBeforeCharacters=134]="wordWrapBreakBeforeCharacters",e[e.wordWrapColumn=135]="wordWrapColumn",e[e.wordWrapOverride1=136]="wordWrapOverride1",e[e.wordWrapOverride2=137]="wordWrapOverride2",e[e.wrappingIndent=138]="wrappingIndent",e[e.wrappingStrategy=139]="wrappingStrategy",e[e.showDeprecated=140]="showDeprecated",e[e.inlayHints=141]="inlayHints",e[e.editorClassName=142]="editorClassName",e[e.pixelRatio=143]="pixelRatio",e[e.tabFocusMode=144]="tabFocusMode",e[e.layoutInfo=145]="layoutInfo",e[e.wrappingInfo=146]="wrappingInfo",e[e.defaultColorDecorators=147]="defaultColorDecorators",e[e.colorDecoratorsActivatedOn=148]="colorDecoratorsActivatedOn",e[e.inlineCompletionsAccessibilityVerbose=149]="inlineCompletionsAccessibilityVerbose"}(m||(m={})),function(e){e[e.TextDefined=0]="TextDefined",e[e.LF=1]="LF",e[e.CRLF=2]="CRLF"}(f||(f={})),function(e){e[e.LF=0]="LF",e[e.CRLF=1]="CRLF"}(p||(p={})),function(e){e[e.Left=1]="Left",e[e.Center=2]="Center",e[e.Right=3]="Right"}(_||(_={})),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.Both=0]="Both",e[e.Right=1]="Right",e[e.Left=2]="Left",e[e.None=3]="None"}(b||(b={})),function(e){e[e.Type=1]="Type",e[e.Parameter=2]="Parameter"}(C||(C={})),function(e){e[e.Automatic=0]="Automatic",e[e.Explicit=1]="Explicit"}(w||(w={})),function(e){e[e.Invoke=0]="Invoke",e[e.Automatic=1]="Automatic"}(y||(y={})),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.Digit0=21]="Digit0",e[e.Digit1=22]="Digit1",e[e.Digit2=23]="Digit2",e[e.Digit3=24]="Digit3",e[e.Digit4=25]="Digit4",e[e.Digit5=26]="Digit5",e[e.Digit6=27]="Digit6",e[e.Digit7=28]="Digit7",e[e.Digit8=29]="Digit8",e[e.Digit9=30]="Digit9",e[e.KeyA=31]="KeyA",e[e.KeyB=32]="KeyB",e[e.KeyC=33]="KeyC",e[e.KeyD=34]="KeyD",e[e.KeyE=35]="KeyE",e[e.KeyF=36]="KeyF",e[e.KeyG=37]="KeyG",e[e.KeyH=38]="KeyH",e[e.KeyI=39]="KeyI",e[e.KeyJ=40]="KeyJ",e[e.KeyK=41]="KeyK",e[e.KeyL=42]="KeyL",e[e.KeyM=43]="KeyM",e[e.KeyN=44]="KeyN",e[e.KeyO=45]="KeyO",e[e.KeyP=46]="KeyP",e[e.KeyQ=47]="KeyQ",e[e.KeyR=48]="KeyR",e[e.KeyS=49]="KeyS",e[e.KeyT=50]="KeyT",e[e.KeyU=51]="KeyU",e[e.KeyV=52]="KeyV",e[e.KeyW=53]="KeyW",e[e.KeyX=54]="KeyX",e[e.KeyY=55]="KeyY",e[e.KeyZ=56]="KeyZ",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.F20=78]="F20",e[e.F21=79]="F21",e[e.F22=80]="F22",e[e.F23=81]="F23",e[e.F24=82]="F24",e[e.NumLock=83]="NumLock",e[e.ScrollLock=84]="ScrollLock",e[e.Semicolon=85]="Semicolon",e[e.Equal=86]="Equal",e[e.Comma=87]="Comma",e[e.Minus=88]="Minus",e[e.Period=89]="Period",e[e.Slash=90]="Slash",e[e.Backquote=91]="Backquote",e[e.BracketLeft=92]="BracketLeft",e[e.Backslash=93]="Backslash",e[e.BracketRight=94]="BracketRight",e[e.Quote=95]="Quote",e[e.OEM_8=96]="OEM_8",e[e.IntlBackslash=97]="IntlBackslash",e[e.Numpad0=98]="Numpad0",e[e.Numpad1=99]="Numpad1",e[e.Numpad2=100]="Numpad2",e[e.Numpad3=101]="Numpad3",e[e.Numpad4=102]="Numpad4",e[e.Numpad5=103]="Numpad5",e[e.Numpad6=104]="Numpad6",e[e.Numpad7=105]="Numpad7",e[e.Numpad8=106]="Numpad8",e[e.Numpad9=107]="Numpad9",e[e.NumpadMultiply=108]="NumpadMultiply",e[e.NumpadAdd=109]="NumpadAdd",e[e.NUMPAD_SEPARATOR=110]="NUMPAD_SEPARATOR",e[e.NumpadSubtract=111]="NumpadSubtract",e[e.NumpadDecimal=112]="NumpadDecimal",e[e.NumpadDivide=113]="NumpadDivide",e[e.KEY_IN_COMPOSITION=114]="KEY_IN_COMPOSITION",e[e.ABNT_C1=115]="ABNT_C1",e[e.ABNT_C2=116]="ABNT_C2",e[e.AudioVolumeMute=117]="AudioVolumeMute",e[e.AudioVolumeUp=118]="AudioVolumeUp",e[e.AudioVolumeDown=119]="AudioVolumeDown",e[e.BrowserSearch=120]="BrowserSearch",e[e.BrowserHome=121]="BrowserHome",e[e.BrowserBack=122]="BrowserBack",e[e.BrowserForward=123]="BrowserForward",e[e.MediaTrackNext=124]="MediaTrackNext",e[e.MediaTrackPrevious=125]="MediaTrackPrevious",e[e.MediaStop=126]="MediaStop",e[e.MediaPlayPause=127]="MediaPlayPause",e[e.LaunchMediaPlayer=128]="LaunchMediaPlayer",e[e.LaunchMail=129]="LaunchMail",e[e.LaunchApp2=130]="LaunchApp2",e[e.Clear=131]="Clear",e[e.MAX_VALUE=132]="MAX_VALUE"}(S||(S={})),function(e){e[e.Hint=1]="Hint",e[e.Info=2]="Info",e[e.Warning=4]="Warning",e[e.Error=8]="Error"}(L||(L={})),function(e){e[e.Unnecessary=1]="Unnecessary",e[e.Deprecated=2]="Deprecated"}(k||(k={})),function(e){e[e.Inline=1]="Inline",e[e.Gutter=2]="Gutter"}(D||(D={})),function(e){e[e.Normal=1]="Normal",e[e.Underlined=2]="Underlined"}(N||(N={})),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"}(x||(x={})),function(e){e[e.AIGenerated=1]="AIGenerated"}(E||(E={})),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"}(I||(I={})),function(e){e[e.Left=1]="Left",e[e.Center=2]="Center",e[e.Right=4]="Right",e[e.Full=7]="Full"}(T||(T={})),function(e){e[e.Word=0]="Word",e[e.Line=1]="Line",e[e.Suggest=2]="Suggest"}(M||(M={})),function(e){e[e.Left=0]="Left",e[e.Right=1]="Right",e[e.None=2]="None",e[e.LeftOfInjectedText=3]="LeftOfInjectedText",e[e.RightOfInjectedText=4]="RightOfInjectedText"}(A||(A={})),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"}(R||(R={})),function(e){e[e.None=0]="None",e[e.Text=1]="Text",e[e.Blocks=2]="Blocks"}(O||(O={})),function(e){e[e.Smooth=0]="Smooth",e[e.Immediate=1]="Immediate"}(P||(P={})),function(e){e[e.Auto=1]="Auto",e[e.Hidden=2]="Hidden",e[e.Visible=3]="Visible"}(F||(F={})),function(e){e[e.LTR=0]="LTR",e[e.RTL=1]="RTL"}(B||(B={})),function(e){e.Off="off",e.OnCode="onCode",e.On="on"}(z||(z={})),function(e){e[e.Invoke=1]="Invoke",e[e.TriggerCharacter=2]="TriggerCharacter",e[e.ContentChange=3]="ContentChange"}(V||(V={})),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"}(W||(W={})),function(e){e[e.Deprecated=1]="Deprecated"}(H||(H={})),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"}(K||(K={})),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"}(U||(U={})),function(e){e[e.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",e[e.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",e[e.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",e[e.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"}(j||(j={})),function(e){e[e.None=0]="None",e[e.Same=1]="Same",e[e.Indent=2]="Indent",e[e.DeepIndent=3]="DeepIndent"}(q||(q={}))},36334:(e,t,i)=>{i.d(t,{B8:()=>l,UX:()=>r,aq:()=>a,iN:()=>d,ld:()=>s,qq:()=>o,ug:()=>n,xi:()=>h});var n,o,s,r,a,l,h,d,c=i(71721);!function(e){e.inspectTokensAction=c.NC("inspectTokens","Developer: Inspect Tokens")}(n||(n={})),function(e){e.gotoLineActionLabel=c.NC("gotoLineActionLabel","Go to Line/Column...")}(o||(o={})),function(e){e.helpQuickAccessActionLabel=c.NC("helpQuickAccess","Show all Quick Access Providers")}(s||(s={})),function(e){e.quickCommandActionLabel=c.NC("quickCommandActionLabel","Command Palette"),e.quickCommandHelp=c.NC("quickCommandActionHelp","Show And Run Commands")}(r||(r={})),function(e){e.quickOutlineActionLabel=c.NC("quickOutlineActionLabel","Go to Symbol..."),e.quickOutlineByCategoryActionLabel=c.NC("quickOutlineByCategoryActionLabel","Go to Symbol by Category...")}(a||(a={})),function(e){e.editorViewAccessibleLabel=c.NC("editorViewAccessibleLabel","Editor content"),e.accessibilityHelpMessage=c.NC("accessibilityHelpMessage","Press Alt+F1 for Accessibility Options.")}(l||(l={})),function(e){e.toggleHighContrast=c.NC("toggleHighContrast","Toggle High Contrast Theme")}(h||(h={})),function(e){e.bulkEditServiceSummary=c.NC("bulkEditServiceSummary","Made {0} edits in {1} files")}(d||(d={}))},65497:(e,t,i)=>{i.d(t,{CZ:()=>l,D8:()=>d,Jx:()=>n,Tx:()=>a,dQ:()=>h,fV:()=>c,gk:()=>o,lN:()=>r,rU:()=>s});class n{constructor(){this.changeType=1}}class o{static applyInjectedText(e,t){if(!t||0===t.length)return e;let i="",n=0;for(const o of t)i+=e.substring(n,o.column-1),n=o.column-1,i+=o.options.content;return i+=e.substring(n),i}static fromDecorations(e){const t=[];for(const i of e)i.options.before&&i.options.before.content.length>0&&t.push(new o(i.ownerId,i.range.startLineNumber,i.range.startColumn,i.options.before,0)),i.options.after&&i.options.after.content.length>0&&t.push(new o(i.ownerId,i.range.endLineNumber,i.range.endColumn,i.options.after,1));return t.sort(((e,t)=>e.lineNumber===t.lineNumber?e.column===t.column?e.order-t.order:e.column-t.column:e.lineNumber-t.lineNumber)),t}constructor(e,t,i,n,o){this.ownerId=e,this.lineNumber=t,this.column=i,this.options=n,this.order=o}}class s{constructor(e,t,i){this.changeType=2,this.lineNumber=e,this.detail=t,this.injectedText=i}}class r{constructor(e,t){this.changeType=3,this.fromLineNumber=e,this.toLineNumber=t}}class a{constructor(e,t,i,n){this.changeType=4,this.injectedTexts=n,this.fromLineNumber=e,this.toLineNumber=t,this.detail=i}}class l{constructor(){this.changeType=5}}class h{constructor(e,t,i,n){this.changes=e,this.versionId=t,this.isUndoing=i,this.isRedoing=n,this.resultingSelection=null}containsEvent(e){for(let t=0,i=this.changes.length;t{var n;i.d(t,{UO:()=>o,s6:()=>n,vW:()=>s}),function(e){e[e.Disabled=0]="Disabled",e[e.EnabledForActive=1]="EnabledForActive",e[e.Enabled=2]="Enabled"}(n||(n={}));class o{constructor(e,t,i,n,o,s){if(this.visibleColumn=e,this.column=t,this.className=i,this.horizontalLine=n,this.forWrappedLinesAfterColumn=o,this.forWrappedLinesBeforeOrAtColumn=s,-1!==e===(-1!==t))throw new Error}}class s{constructor(e,t){this.top=e,this.endColumn=t}}},43471:(e,t,i)=>{i.d(t,{A:()=>o});var n=i(55562);class o{static createEmpty(e,t){const i=o.defaultTokenMetadata,n=new Uint32Array(2);return n[0]=e.length,n[1]=i,new o(n,e,t)}constructor(e,t,i){this._lineTokensBrand=void 0,this._tokens=e,this._tokensCount=this._tokens.length>>>1,this._text=t,this._languageIdCodec=i}equals(e){return e instanceof o&&this.slicedEquals(e,0,this._tokensCount)}slicedEquals(e,t,i){if(this._text!==e._text)return!1;if(this._tokensCount!==e._tokensCount)return!1;const n=t<<1,o=n+(i<<1);for(let s=n;s0?this._tokens[e-1<<1]:0}getMetadata(e){return this._tokens[1+(e<<1)]}getLanguageId(e){const t=this._tokens[1+(e<<1)],i=n.N.getLanguageId(t);return this._languageIdCodec.decodeLanguageId(i)}getStandardTokenType(e){const t=this._tokens[1+(e<<1)];return n.N.getTokenType(t)}getForeground(e){const t=this._tokens[1+(e<<1)];return n.N.getForeground(t)}getClassName(e){const t=this._tokens[1+(e<<1)];return n.N.getClassNameFromMetadata(t)}getInlineStyle(e,t){const i=this._tokens[1+(e<<1)];return n.N.getInlineStyleFromMetadata(i,t)}getPresentation(e){const t=this._tokens[1+(e<<1)];return n.N.getPresentationFromMetadata(t)}getEndOffset(e){return this._tokens[e<<1]}findTokenIndexAtOffset(e){return o.findIndexInTokensArray(this._tokens,e)}inflate(){return this}sliceAndInflate(e,t,i){return new s(this,e,t,i)}static convertToEndOffset(e,t){const i=(e.length>>>1)-1;for(let n=0;n>>1)-1;for(;it&&(n=o)}return i}withInserted(e){if(0===e.length)return this;let t=0,i=0,n="";const s=new Array;let r=0;for(;;){const o=tr){n+=this._text.substring(r,a.offset);const e=this._tokens[1+(t<<1)];s.push(n.length,e),r=a.offset}n+=a.text,s.push(n.length,a.tokenMetadata),i++}}return new o(new Uint32Array(s),n,this._languageIdCodec)}}o.defaultTokenMetadata=33587200;class s{constructor(e,t,i,n){this._source=e,this._startOffset=t,this._endOffset=i,this._deltaOffset=n,this._firstTokenIndex=e.findTokenIndexAtOffset(t),this._tokensCount=0;for(let o=this._firstTokenIndex,s=e.getCount();o=i)break;this._tokensCount++}}getMetadata(e){return this._source.getMetadata(this._firstTokenIndex+e)}getLanguageId(e){return this._source.getLanguageId(this._firstTokenIndex+e)}getLineContent(){return this._source.getLineContent().substring(this._startOffset,this._endOffset)}equals(e){return e instanceof s&&(this._startOffset===e._startOffset&&this._endOffset===e._endOffset&&this._deltaOffset===e._deltaOffset&&this._source.slicedEquals(e._source,this._firstTokenIndex,this._tokensCount))}getCount(){return this._tokensCount}getForeground(e){return this._source.getForeground(this._firstTokenIndex+e)}getEndOffset(e){const t=this._source.getEndOffset(this._firstTokenIndex+e);return Math.min(this._endOffset,t)-this._startOffset+this._deltaOffset}getClassName(e){return this._source.getClassName(this._firstTokenIndex+e)}getInlineStyle(e,t){return this._source.getInlineStyle(this._firstTokenIndex+e,t)}getPresentation(e){return this._source.getPresentation(this._firstTokenIndex+e)}findTokenIndexAtOffset(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex}}},85766:(e,t,i)=>{i.d(t,{Kp:()=>o,k:()=>a});var n=i(25085);class o{constructor(e,t,i,n){this.startColumn=e,this.endColumn=t,this.className=i,this.type=n,this._lineDecorationBrand=void 0}static _equals(e,t){return e.startColumn===t.startColumn&&e.endColumn===t.endColumn&&e.className===t.className&&e.type===t.type}static equalsArr(e,t){const i=e.length;if(i!==t.length)return!1;for(let n=0;n=s||(a[l++]=new o(Math.max(1,h.startColumn-n+1),Math.min(r+1,h.endColumn-n+1),h.className,h.type));return a}static filter(e,t,i,n){if(0===e.length)return[];const s=[];let r=0;for(let a=0,l=e.length;at)continue;if(h.isEmpty()&&(0===l.type||3===l.type))continue;const d=h.startLineNumber===t?h.startColumn:i,c=h.endLineNumber===t?h.endColumn:n;s[r++]=new o(d,c,l.inlineClassName,l.type)}return s}static _typeCompare(e,t){const i=[2,0,1,3];return i[e]-i[t]}static compare(e,t){if(e.startColumn!==t.startColumn)return e.startColumn-t.startColumn;if(e.endColumn!==t.endColumn)return e.endColumn-t.endColumn;const i=o._typeCompare(e.type,t.type);return 0!==i?i:e.className!==t.className?e.className0&&this.stopOffsets[0]0&&t=e){this.stopOffsets.splice(n,0,e),this.classNames.splice(n,0,t),this.metadata.splice(n,0,i);break}this.count++}}class a{static normalize(e,t){if(0===t.length)return[];const i=[],o=new r;let s=0;for(let r=0,a=t.length;r1){const t=e.charCodeAt(l-2);n.ZG(t)&&l--}if(h>1){const t=e.charCodeAt(h-2);n.ZG(t)&&h--}const u=l-1,g=h-2;s=o.consumeLowerThan(u,s,i),0===o.count&&(s=u),o.insert(g,d,c)}return o.consumeLowerThan(1073741824,s,i),i}}},34543:(e,t,i)=>{i.d(t,{Nd:()=>d,zG:()=>l,IJ:()=>h,d1:()=>g,tF:()=>f});var n=i(71721),o=i(25085),s=i(76071),r=i(85766);class a{constructor(e,t,i,n){this.endIndex=e,this.type=t,this.metadata=i,this.containsRTL=n,this._linePartBrand=void 0}isWhitespace(){return!!(1&this.metadata)}isPseudoAfter(){return!!(4&this.metadata)}}class l{constructor(e,t){this.startOffset=e,this.endOffset=t}equals(e){return this.startOffset===e.startOffset&&this.endOffset===e.endOffset}}class h{constructor(e,t,i,n,o,s,a,l,h,d,c,u,g,m,f,p,_,v,b){this.useMonospaceOptimizations=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.continuesWithWrappedLine=n,this.isBasicASCII=o,this.containsRTL=s,this.fauxIndentLength=a,this.lineTokens=l,this.lineDecorations=h.sort(r.Kp.compare),this.tabSize=d,this.startVisibleColumn=c,this.spaceWidth=u,this.stopRenderingLineAfter=f,this.renderWhitespace="all"===p?4:"boundary"===p?1:"selection"===p?2:"trailing"===p?3:0,this.renderControlCharacters=_,this.fontLigatures=v,this.selectionsOnLine=b&&b.sort(((e,t)=>e.startOffset>>16}static getCharIndex(e){return(65535&e)>>>0}constructor(e,t){this.length=e,this._data=new Uint32Array(this.length),this._horizontalOffset=new Uint32Array(this.length)}setColumnInfo(e,t,i,n){const o=(t<<16|i<<0)>>>0;this._data[e-1]=o,this._horizontalOffset[e-1]=n}getHorizontalOffset(e){return 0===this._horizontalOffset.length?0:this._horizontalOffset[e-1]}charOffsetToPartData(e){return 0===this.length?0:e<0?this._data[0]:e>=this.length?this._data[this.length-1]:this._data[e]}getDomPosition(e){const t=this.charOffsetToPartData(e-1),i=c.getPartIndex(t),n=c.getCharIndex(t);return new d(i,n)}getColumn(e,t){return this.partDataToCharOffset(e.partIndex,t,e.charIndex)+1}partDataToCharOffset(e,t,i){if(0===this.length)return 0;const n=(e<<16|i<<0)>>>0;let o=0,s=this.length-1;for(;o+1>>1,t=this._data[e];if(t===n)return e;t>n?s=e:o=e}if(o===s)return o;const r=this._data[o],a=this._data[s];if(r===n)return o;if(a===n)return s;const l=c.getPartIndex(r),h=c.getCharIndex(r);let d;d=l!==c.getPartIndex(a)?t:c.getCharIndex(a);return i-h<=d-i?o:s}}class u{constructor(e,t,i){this._renderLineOutputBrand=void 0,this.characterMapping=e,this.containsRTL=t,this.containsForeignElements=i}}function g(e,t){if(0===e.lineContent.length){if(e.lineDecorations.length>0){t.appendString("");let i=0,n=0,o=0;for(const r of e.lineDecorations)1!==r.type&&2!==r.type||(t.appendString(''),1===r.type&&(o|=1,i++),2===r.type&&(o|=2,n++));t.appendString("");const s=new c(1,i+n);return s.setColumnInfo(1,i,0,0),new u(s,!1,o)}return t.appendString(""),new u(new c(0,0),!1,0)}return function(e,t){const i=e.fontIsMonospace,s=e.canUseHalfwidthRightwardsArrow,r=e.containsForeignElements,a=e.lineContent,l=e.len,h=e.isOverflowing,d=e.overflowingCharCount,g=e.parts,m=e.fauxIndentLength,f=e.tabSize,p=e.startVisibleColumn,b=e.containsRTL,C=e.spaceWidth,w=e.renderSpaceCharCode,y=e.renderWhitespace,S=e.renderControlCharacters,L=new c(l+1,g.length);let k=!1,D=0,N=p,x=0,E=0,I=0;b?t.appendString(''):t.appendString("");for(let n=0,c=g.length;n=m&&(i+=n)}}for(p&&(t.appendString(' style="width:'),t.appendString(String(C*e)),t.appendString('px"')),t.appendASCIICharCode(62);D1?t.appendCharCode(8594):t.appendCharCode(65515);for(let e=2;e<=i;e++)t.appendCharCode(160)}else e=2,i=1,t.appendCharCode(w),t.appendCharCode(8204);x+=e,E+=i,D>=m&&(N+=i)}}else for(t.appendASCIICharCode(62);D=m&&(N+=s)}b?I++:I=0,D>=l&&!k&&e.isPseudoAfter()&&(k=!0,L.setColumnInfo(D+1,n,x,E)),t.appendString("")}k||L.setColumnInfo(l+1,g.length-1,x,E);h&&(t.appendString(''),t.appendString(n.NC("showMore","Show more ({0})",function(e){if(e<1024)return n.NC("overflow.chars","{0} chars",e);if(e<1048576)return"".concat((e/1024).toFixed(1)," KB");return"".concat((e/1024/1024).toFixed(1)," MB")}(d))),t.appendString(""));return t.appendString(""),new u(L,b,r)}(function(e){const t=e.lineContent;let i,n,s;-1!==e.stopRenderingLineAfter&&e.stopRenderingLineAfter0&&(r[l++]=new a(n,"",0,!1));let h=n;for(let d=0,c=i.getCount();d=s){const i=!!t&&o.Ut(e.substring(h,s));r[l++]=new a(s,u,0,i);break}const g=!!t&&o.Ut(e.substring(h,c));r[l++]=new a(c,u,0,g),h=c}return r}(t,e.containsRTL,e.lineTokens,e.fauxIndentLength,s);e.renderControlCharacters&&!e.isBasicASCII&&(l=function(e,t){const i=[];let n=new a(0,"",0,!1),o=0;for(const s of t){const t=s.endIndex;for(;on.endIndex&&(n=new a(o,s.type,s.metadata,s.containsRTL),i.push(n)),n=new a(o+1,"mtkcontrol",s.metadata,!1),i.push(n))}o>n.endIndex&&(n=new a(t,s.type,s.metadata,s.containsRTL),i.push(n))}return i}(t,l));(4===e.renderWhitespace||1===e.renderWhitespace||2===e.renderWhitespace&&e.selectionsOnLine||3===e.renderWhitespace&&!e.continuesWithWrappedLine)&&(l=function(e,t,i,n){const s=e.continuesWithWrappedLine,r=e.fauxIndentLength,l=e.tabSize,h=e.startVisibleColumn,d=e.useMonospaceOptimizations,c=e.selectionsOnLine,u=1===e.renderWhitespace,g=3===e.renderWhitespace,m=e.renderSpaceWidth!==e.spaceWidth,f=[];let p=0,_=0,v=n[_].type,b=n[_].containsRTL,C=n[_].endIndex;const w=n.length;let y,S=!1,L=o.LC(t);-1===L?(S=!0,L=i,y=i):y=o.ow(t);let k=!1,D=0,N=c&&c[D],x=h%l;for(let I=r;I=N.endOffset&&(D++,N=c&&c[D]),Iy)s=!0;else if(9===e)s=!0;else if(32===e)if(u)if(k)s=!0;else{const e=I+1I),s&&g&&(s=S||I>y),s&&b&&I>=L&&I<=y&&(s=!1),k){if(!s||!d&&x>=l){if(m){for(let e=(p>0?f[p-1].endIndex:r)+1;e<=I;e++)f[p++]=new a(e,"mtkw",1,!1)}else f[p++]=new a(I,"mtkw",1,!1);x%=l}}else(I===C||s&&I>r)&&(f[p++]=new a(I,v,0,b),x%=l);for(9===e?x=l:o.K7(e)?x+=2:x++,k=s;I===C&&(_++,_0?t.charCodeAt(i-1):0,n=i>1?t.charCodeAt(i-2):0;32===e&&32!==n&&9!==n||(E=!0)}else E=!0;if(E)if(m){for(let e=(p>0?f[p-1].endIndex:r)+1;e<=i;e++)f[p++]=new a(e,"mtkw",1,!1)}else f[p++]=new a(i,"mtkw",1,!1);else f[p++]=new a(i,v,0,b);return f}(e,t,s,l));let h=0;if(e.lineDecorations.length>0){for(let t=0,i=e.lineDecorations.length;tc&&(c=e.startOffset,h[d++]=new a(c,n,u,g)),!(e.endOffset+1<=t)){c=t,h[d++]=new a(c,n+" "+e.className,u|e.metadata,g);break}c=e.endOffset+1,h[d++]=new a(c,n+" "+e.className,u|e.metadata,g),l++}t>c&&(c=t,h[d++]=new a(c,n,u,g))}const u=i[i.length-1].endIndex;if(l=50&&(o[s++]=new a(d+1,t,r,h),c=d+1,d=-1);c!==l&&(o[s++]=new a(l,t,r,h))}else o[s++]=i;n=l}else for(let r=0,l=t.length;r50){const t=e.type,r=e.metadata,h=e.containsRTL,d=Math.ceil(l/50);for(let e=1;e=8234&&e<=8238||e>=8294&&e<=8297||e>=8206&&e<=8207||1564===e)}function v(e){return e.toString(16).toUpperCase().padStart(4,"0")}},33072:(e,t,i)=>{i.d(t,{$l:()=>u,$t:()=>d,IP:()=>l,SQ:()=>g,Wx:()=>c,l_:()=>r,ud:()=>a,wA:()=>h});var n=i(75629),o=i(25085),s=i(10670);class r{constructor(e,t,i,n){this._viewportBrand=void 0,this.top=0|e,this.left=0|t,this.width=0|i,this.height=0|n}}class a{constructor(e,t){this.tabSize=e,this.data=t}}class l{constructor(e,t,i,n,o,s,r){this._viewLineDataBrand=void 0,this.content=e,this.continuesWithWrappedLine=t,this.minColumn=i,this.maxColumn=n,this.startVisibleColumn=o,this.tokens=s,this.inlineDecorations=r}}class h{constructor(e,t,i,n,o,s,r,a,l,d){this.minColumn=e,this.maxColumn=t,this.content=i,this.continuesWithWrappedLine=n,this.isBasicASCII=h.isBasicASCII(i,s),this.containsRTL=h.containsRTL(i,this.isBasicASCII,o),this.tokens=r,this.inlineDecorations=a,this.tabSize=l,this.startVisibleColumn=d}static isBasicASCII(e,t){return!t||o.$i(e)}static containsRTL(e,t,i){return!(t||!i)&&o.Ut(e)}}class d{constructor(e,t,i){this.range=e,this.inlineClassName=t,this.type=i}}class c{constructor(e,t,i,n){this.startOffset=e,this.endOffset=t,this.inlineClassName=i,this.inlineClassNameAffectsLetterSpacing=n}toInlineDecoration(e){return new d(new s.e(e,this.startOffset+1,e,this.endOffset+1),this.inlineClassName,this.inlineClassNameAffectsLetterSpacing?3:0)}}class u{constructor(e,t){this._viewModelDecorationBrand=void 0,this.range=e,this.options=t}}class g{constructor(e,t,i){this.color=e,this.zIndex=t,this.data=i}static compareByRenderingProps(e,t){return e.zIndex===t.zIndex?e.colort.color?1:0:e.zIndex-t.zIndex}static equals(e,t){return e.color===t.color&&e.zIndex===t.zIndex&&n.fS(e.data,t.data)}static equalsArr(e,t){return n.fS(e,t,g.equals)}}},70397:(e,t,i)=>{i.d(t,{EY:()=>o,Tj:()=>s});class n{constructor(e,t,i){this._colorZoneBrand=void 0,this.from=0|e,this.to=0|t,this.colorId=0|i}static compare(e,t){return e.colorId===t.colorId?e.from===t.from?e.to-t.to:e.from-t.from:e.colorId-t.colorId}}class o{constructor(e,t,i,n){this._overviewRulerZoneBrand=void 0,this.startLineNumber=e,this.endLineNumber=t,this.heightInLines=i,this.color=n,this._colorZone=null}static compare(e,t){return e.color===t.color?e.startLineNumber===t.startLineNumber?e.heightInLines===t.heightInLines?e.endLineNumber-t.endLineNumber:e.heightInLines-t.heightInLines:e.startLineNumber-t.startLineNumber:e.colori&&(g=i-m);const f=l.color;let p=this._color2Id[f];p||(p=++this._lastAssignedId,this._color2Id[f]=p,this._id2Color[p]=f);const _=new n(g-m,g+m,p);l.setColorZone(_),r.push(_)}return this._colorZonesInvalid=!1,r.sort(n.compare),r}}},19907:(e,t,i)=>{i.d(t,{$t:()=>h,CU:()=>a,Fd:()=>l,zg:()=>d});var n=i(2067),o=i(10670),s=i(33072),r=i(38092);class a{constructor(e,t,i,n,o){this.editorId=e,this.model=t,this.configuration=i,this._linesCollection=n,this._coordinatesConverter=o,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}_clearCachedModelDecorationsResolver(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}dispose(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}reset(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onModelDecorationsChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onLineMappingChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}_getOrCreateViewModelDecoration(e){const t=e.id;let i=this._decorationsCache[t];if(!i){const r=e.range,a=e.options;let l;if(a.isWholeLine){const e=this._coordinatesConverter.convertModelPositionToViewPosition(new n.L(r.startLineNumber,1),0,!1,!0),t=this._coordinatesConverter.convertModelPositionToViewPosition(new n.L(r.endLineNumber,this.model.getLineMaxColumn(r.endLineNumber)),1);l=new o.e(e.lineNumber,e.column,t.lineNumber,t.column)}else l=this._coordinatesConverter.convertModelRangeToViewRange(r,1);i=new s.$l(l,a),this._decorationsCache[t]=i}return i}getMinimapDecorationsInRange(e){return this._getDecorationsInRange(e,!0,!1).decorations}getDecorationsViewportData(e){let t=null!==this._cachedModelDecorationsResolver;return t=t&&e.equalsRange(this._cachedModelDecorationsResolverViewRange),t||(this._cachedModelDecorationsResolver=this._getDecorationsInRange(e,!1,!1),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver}getInlineDecorationsOnLine(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const n=new o.e(e,this._linesCollection.getViewLineMinColumn(e),e,this._linesCollection.getViewLineMaxColumn(e));return this._getDecorationsInRange(n,t,i).inlineDecorations[0]}_getDecorationsInRange(e,t,i){const n=this._linesCollection.getDecorationsInRange(e,this.editorId,(0,r.$J)(this.configuration.options),t,i),a=e.startLineNumber,h=e.endLineNumber,d=[];let c=0;const u=[];for(let o=a;o<=h;o++)u[o-a]=[];for(let r=0,g=n.length;r1===e))}function d(e,t){return c(e,t.range,(e=>2===e))}function c(e,t,i){for(let n=t.startLineNumber;n<=t.endLineNumber;n++){const o=e.tokenization.getLineTokens(n),s=n===t.startLineNumber,r=n===t.endLineNumber;let a=s?o.findTokenIndexAtOffset(t.startColumn-1):0;for(;at.endColumn-1)break}if(!i(o.getStandardTokenType(a)))return!1;a++}}return!0}},15176:(e,t,i)=>{i.d(t,{yy:()=>p,Dl:()=>_,YQ:()=>v});var n=i(25085),o=i(10670),s=i(16113),r=i(89599),a=i(23001),l=i(24920),h=i(44713),d=i(34304),c=i(43837),u=i(71721);const g=(0,d.yh)("IEditorCancelService"),m=new l.uy("cancellableOperation",!1,(0,u.NC)("cancellableOperation","Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));(0,c.z)(g,class{constructor(){this._tokens=new WeakMap}add(e,t){let i,n=this._tokens.get(e);return n||(n=e.invokeWithinContext((e=>({key:m.bindTo(e.get(l.i6)),tokens:new h.S}))),this._tokens.set(e,n)),n.key.set(!0),i=n.tokens.push(t),()=>{i&&(i(),n.key.set(!n.tokens.isEmpty()),i=void 0)}}cancel(e){const t=this._tokens.get(e);if(!t)return;const i=t.tokens.pop();i&&(i.cancel(),t.key.set(!t.tokens.isEmpty()))}},1);class f extends s.A{constructor(e,t){super(t),this.editor=e,this._unregister=e.invokeWithinContext((t=>t.get(g).add(e,this)))}dispose(){this._unregister(),super.dispose()}}(0,a.fK)(new class extends a._l{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:m})}runEditorCommand(e,t){e.get(g).cancel(t)}});class p{constructor(e,t){if(this.flags=t,0!==(1&this.flags)){const t=e.getModel();this.modelVersionId=t?n.WU("{0}#{1}",t.uri.toString(),t.getVersionId()):null}else this.modelVersionId=null;0!==(4&this.flags)?this.position=e.getPosition():this.position=null,0!==(2&this.flags)?this.selection=e.getSelection():this.selection=null,0!==(8&this.flags)?(this.scrollLeft=e.getScrollLeft(),this.scrollTop=e.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}_equals(e){if(!(e instanceof p))return!1;const t=e;return this.modelVersionId===t.modelVersionId&&(this.scrollLeft===t.scrollLeft&&this.scrollTop===t.scrollTop&&(!(!this.position&&t.position||this.position&&!t.position||this.position&&t.position&&!this.position.equals(t.position))&&!(!this.selection&&t.selection||this.selection&&!t.selection||this.selection&&t.selection&&!this.selection.equalsRange(t.selection))))}validate(e){return this._equals(new p(e,this.flags))}}class _ extends f{constructor(e,t,i,n){super(e,n),this._listener=new r.SL,4&t&&this._listener.add(e.onDidChangeCursorPosition((e=>{i&&o.e.containsPosition(i,e.position)||this.cancel()}))),2&t&&this._listener.add(e.onDidChangeCursorSelection((e=>{i&&o.e.containsRange(i,e.selection)||this.cancel()}))),8&t&&this._listener.add(e.onDidScrollChange((e=>this.cancel()))),1&t&&(this._listener.add(e.onDidChangeModel((e=>this.cancel()))),this._listener.add(e.onDidChangeModelContent((e=>this.cancel()))))}dispose(){this._listener.dispose(),super.dispose()}}class v extends s.A{constructor(e,t){super(t),this._listener=e.onDidChangeContent((()=>this.cancel()))}dispose(){this._listener.dispose(),super.dispose()}}},44492:(e,t,i)=>{i.d(t,{xC:()=>D,x$:()=>N,Qq:()=>E,Qs:()=>T});var n=i(75629),o=i(16113),s=i(85108),r=i(36952),a=i(44713),l=i(63686),h=i(82682),d=i(15176),c=i(20411),u=i(2067),g=i(10670),m=i(67078),f=i(60918),p=i(93984),_=i(58028),v=i(60982);class b{constructor(e){this.value=e,this._lower=e.toLowerCase()}static toKey(e){return"string"===typeof e?e.toLowerCase():e._lower}}class C{constructor(e){if(this._set=new Set,e)for(const t of e)this.add(t)}add(e){this._set.add(b.toKey(e))}has(e){return this._set.has(b.toKey(e))}}var w=i(34304),y=i(89752),S=i(83717),L=i(68633);function k(e,t,i){const n=[],o=new C,s=e.ordered(i);for(const a of s)n.push(a),a.extensionId&&o.add(a.extensionId);const r=t.ordered(i);for(const a of r){if(a.extensionId){if(o.has(a.extensionId))continue;o.add(a.extensionId)}n.push({displayName:a.displayName,extensionId:a.extensionId,provideDocumentFormattingEdits:(e,t,i)=>a.provideDocumentRangeFormattingEdits(e,e.getFullModelRange(),t,i)})}return n}class D{static setFormatterSelector(e){return{dispose:D._selectors.unshift(e)}}static async select(e,t,i,n){if(0===e.length)return;const o=r.$.first(D._selectors);return o?await o(e,t,i,n):void 0}}async function N(e,t,i,n,o,s,r){const a=e.get(w.TG),{documentRangeFormattingEditProvider:l}=e.get(y.p),h=(0,c.CL)(t)?t.getModel():t,d=l.ordered(h),u=await D.select(d,h,n,2);u&&(o.report(u),await a.invokeFunction(x,u,t,i,s,r))}async function x(e,t,i,o,s,r){var a,l;const h=e.get(f.p),u=e.get(S.VZ),p=e.get(L.IV);let v,b;(0,c.CL)(i)?(v=i.getModel(),b=new d.Dl(i,5,void 0,s)):(v=i,b=new d.YQ(i,s));const C=[];let w=0;for(const d of(0,n._2)(o).sort(g.e.compareRangesUsingStarts))w>0&&g.e.areIntersectingOrTouching(C[w-1],d)?C[w-1]=g.e.fromPositions(C[w-1].getStartPosition(),d.getEndPosition()):w=C.push(d);const y=async e=>{var i,n;u.trace("[format][provideDocumentRangeFormattingEdits] (request)",null===(i=t.extensionId)||void 0===i?void 0:i.value,e);const o=await t.provideDocumentRangeFormattingEdits(v,e,v.getFormattingOptions(),b.token)||[];return u.trace("[format][provideDocumentRangeFormattingEdits] (response)",null===(n=t.extensionId)||void 0===n?void 0:n.value,o),o},k=(e,t)=>{if(!e.length||!t.length)return!1;const i=e.reduce(((e,t)=>g.e.plusRange(e,t.range)),e[0].range);if(!t.some((e=>g.e.intersectRanges(i,e.range))))return!1;for(const n of e)for(const e of t)if(g.e.intersectRanges(n.range,e.range))return!0;return!1},D=[],N=[];try{if("function"===typeof t.provideDocumentRangesFormattingEdits){u.trace("[format][provideDocumentRangeFormattingEdits] (request)",null===(a=t.extensionId)||void 0===a?void 0:a.value,C);const e=await t.provideDocumentRangesFormattingEdits(v,C,v.getFormattingOptions(),b.token)||[];u.trace("[format][provideDocumentRangeFormattingEdits] (response)",null===(l=t.extensionId)||void 0===l?void 0:l.value,e),N.push(e)}else{for(const e of C){if(b.token.isCancellationRequested)return!0;N.push(await y(e))}for(let e=0;e({text:e.text,range:g.e.lift(e.range),forceMoveMarkers:!0}))),(e=>{for(const{range:i}of e)if(g.e.areIntersectingOrTouching(i,t))return[new m.Y(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)];return null}))}return p.playSignal(L.iP.format,{userGesture:r}),!0}async function E(e,t,i,n,o,s){const r=e.get(w.TG),a=e.get(y.p),l=(0,c.CL)(t)?t.getModel():t,h=k(a.documentFormattingEditProvider,a.documentRangeFormattingEditProvider,l),d=await D.select(h,l,i,1);d&&(n.report(d),await r.invokeFunction(I,d,t,i,o,s))}async function I(e,t,i,n,o,s){const r=e.get(f.p),a=e.get(L.IV);let l,h,u;(0,c.CL)(i)?(l=i.getModel(),h=new d.Dl(i,5,void 0,o)):(l=i,h=new d.YQ(i,o));try{const e=await t.provideDocumentFormattingEdits(l,l.getFormattingOptions(),h.token);if(u=await r.computeMoreMinimalEdits(l.uri,e),h.token.isCancellationRequested)return!0}finally{h.dispose()}if(!u||0===u.length)return!1;if((0,c.CL)(i))_.V.execute(i,u,2!==n),2!==n&&i.revealPositionInCenterIfOutsideViewport(i.getPosition(),1);else{const[{range:e}]=u,t=new m.Y(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn);l.pushEditOperations([t],u.map((e=>({text:e.text,range:g.e.lift(e.range),forceMoveMarkers:!0}))),(e=>{for(const{range:i}of e)if(g.e.areIntersectingOrTouching(i,t))return[new m.Y(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn)];return null}))}return a.playSignal(L.iP.format,{userGesture:s}),!0}function T(e,t,i,n,o,r,a){const l=t.onTypeFormattingEditProvider.ordered(i);return 0===l.length||l[0].autoFormatTriggerCharacters.indexOf(o)<0?Promise.resolve(void 0):Promise.resolve(l[0].provideOnTypeFormattingEdits(i,n,o,r,a)).catch(s.Cp).then((t=>e.computeMoreMinimalEdits(i.uri,t)))}D._selectors=new a.S,v.P.registerCommand("_executeFormatRangeProvider",(async function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),n=1;n{i.d(t,{V:()=>r});var n=i(39376),o=i(10670),s=i(1135);class r{static _handleEolEdits(e,t){let i;const n=[];for(const o of t)"number"===typeof o.eol&&(i=o.eol),o.range&&"string"===typeof o.text&&n.push(o);return"number"===typeof i&&e.hasModel()&&e.getModel().pushEOL(i),n}static _isFullModelReplaceEdit(e,t){if(!e.hasModel())return!1;const i=e.getModel(),n=i.validateRange(t.range);return i.getFullModelRange().equalsRange(n)}static execute(e,t,i){i&&e.pushUndoStop();const a=s.Z.capture(e),l=r._handleEolEdits(e,t);1===l.length&&r._isFullModelReplaceEdit(e,l[0])?e.executeEdits("formatEditsCommand",l.map((e=>n.h.replace(o.e.lift(e.range),e.text)))):e.executeEdits("formatEditsCommand",l.map((e=>n.h.replaceMove(o.e.lift(e.range),e.text)))),i&&e.pushUndoStop(),a.restoreRelativeVerticalPositionOfCursor(e)}}},41551:(e,t,i)=>{i.r(t),i.d(t,{CancellationTokenSource:()=>Bl,Emitter:()=>zl,KeyCode:()=>Vl,KeyMod:()=>Wl,MarkerSeverity:()=>ql,MarkerTag:()=>Gl,Position:()=>Hl,Range:()=>Kl,Selection:()=>Ul,SelectionDirection:()=>jl,Token:()=>Zl,Uri:()=>Ql,editor:()=>Yl,languages:()=>$l});var n=i(38092),o=i(13930),s=i(29880),r=i(89599),a=i(25085),l=i(82682),h=i(86392),d=i(23001),c=i(38119),u=i(10451),g=i(56965);class m extends g.Q8{constructor(e,t,i){super(e,i.keepIdleModels||!1,i.label,t),this._foreignModuleId=i.moduleId,this._foreignModuleCreateData=i.createData||null,this._foreignModuleHost=i.host||null,this._foreignProxy=null}fhr(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(i){return Promise.reject(i)}}_getForeignProxy(){return this._foreignProxy||(this._foreignProxy=this._getProxy().then((e=>{const t=this._foreignModuleHost?(0,u.$E)(this._foreignModuleHost):[];return e.loadForeignModule(this._foreignModuleId,this._foreignModuleCreateData,t).then((t=>{this._foreignModuleCreateData=null;const i=(t,i)=>e.fmr(t,i),n=(e,t)=>function(){const i=Array.prototype.slice.call(arguments,0);return t(e,i)},o={};for(const e of t)o[e]=n(e,i);return o}))}))),this._foreignProxy}getProxy(){return this._getForeignProxy()}withSyncedResources(e){return this._withSyncedResources(e).then((e=>this.getProxy()))}}var f=i(15804),p=i(64864),_=i(7906),v=i(761),b=i(69311),C=i(40801),w=i(68150),y=i(22191),S=i(27127),L=i(42175),k=i(13521),D=i(52047),N=i(43471),x=i(34543),E=i(33072);function I(e){return!function(e){return Array.isArray(e)}(e)}function T(e){return"string"===typeof e}function M(e){return!T(e)}function A(e){return!e}function R(e,t){return e.ignoreCase&&t?t.toLowerCase():t}function O(e){return e.replace(/[&<>'"_]/g,"-")}function P(e,t){return new Error("".concat(e.languageId,": ").concat(t))}function F(e,t,i,n,o){let s=null;return t.replace(/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g,(function(t,r,a,l,h,d,c,u,g){return A(a)?A(l)?!A(h)&&h0;){const t=e.tokenizer[i];if(t)return t;const n=i.lastIndexOf(".");i=n<0?null:i.substr(0,n)}return null}var z,V=i(25195),W=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},H=function(e,t){return function(i,n){t(i,n,e)}};class K{static create(e,t){return this._INSTANCE.create(e,t)}constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}create(e,t){if(null!==e&&e.depth>=this._maxCacheDepth)return new U(e,t);let i=U.getStackElementId(e);i.length>0&&(i+="|"),i+=t;let n=this._entries[i];return n||(n=new U(e,t),this._entries[i]=n,n)}}K._INSTANCE=new K(5);class U{constructor(e,t){this.parent=e,this.state=t,this.depth=(this.parent?this.parent.depth:0)+1}static getStackElementId(e){let t="";for(;null!==e;)t.length>0&&(t+="|"),t+=e.state,e=e.parent;return t}static _equals(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}equals(e){return U._equals(this,e)}push(e){return K.create(this,e)}pop(){return this.parent}popall(){let e=this;for(;e.parent;)e=e.parent;return e}switchTo(e){return K.create(this.parent,e)}}class j{constructor(e,t){this.languageId=e,this.state=t}equals(e){return this.languageId===e.languageId&&this.state.equals(e.state)}clone(){return this.state.clone()===this.state?this:new j(this.languageId,this.state)}}class q{static create(e,t){return this._INSTANCE.create(e,t)}constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}create(e,t){if(null!==t)return new G(e,t);if(null!==e&&e.depth>=this._maxCacheDepth)return new G(e,t);const i=U.getStackElementId(e);let n=this._entries[i];return n||(n=new G(e,null),this._entries[i]=n,n)}}q._INSTANCE=new q(5);class G{constructor(e,t){this.stack=e,this.embeddedLanguageData=t}clone(){return(this.embeddedLanguageData?this.embeddedLanguageData.clone():null)===this.embeddedLanguageData?this:q.create(this.stack,this.embeddedLanguageData)}equals(e){return e instanceof G&&(!!this.stack.equals(e.stack)&&(null===this.embeddedLanguageData&&null===e.embeddedLanguageData||null!==this.embeddedLanguageData&&null!==e.embeddedLanguageData&&this.embeddedLanguageData.equals(e.embeddedLanguageData)))}}class Q{constructor(){this._tokens=[],this._languageId=null,this._lastTokenType=null,this._lastTokenLanguage=null}enterLanguage(e){this._languageId=e}emit(e,t){this._lastTokenType===t&&this._lastTokenLanguage===this._languageId||(this._lastTokenType=t,this._lastTokenLanguage=this._languageId,this._tokens.push(new v.WU(e,t,this._languageId)))}nestedLanguageTokenize(e,t,i,n){const o=i.languageId,s=i.state,r=v.RW.get(o);if(!r)return this.enterLanguage(o),this.emit(n,""),s;const a=r.tokenize(e,t,s);if(0!==n)for(const l of a.tokens)this._tokens.push(new v.WU(l.offset+n,l.type,l.language));else this._tokens=this._tokens.concat(a.tokens);return this._lastTokenType=null,this._lastTokenLanguage=null,this._languageId=null,a.endState}finalize(e){return new v.hG(this._tokens,e)}}class Z{constructor(e,t){this._languageService=e,this._theme=t,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}enterLanguage(e){this._currentLanguageId=this._languageService.languageIdCodec.encodeLanguageId(e)}emit(e,t){const i=1024|this._theme.match(this._currentLanguageId,t);this._lastTokenMetadata!==i&&(this._lastTokenMetadata=i,this._tokens.push(e),this._tokens.push(i))}static _merge(e,t,i){const n=null!==e?e.length:0,o=t.length,s=null!==i?i.length:0;if(0===n&&0===o&&0===s)return new Uint32Array(0);if(0===n&&0===o)return i;if(0===o&&0===s)return e;const r=new Uint32Array(n+o+s);null!==e&&r.set(e);for(let a=0;a{if(s)return;let t=!1;for(let i=0,n=e.changedLanguages.length;i{e.affectsConfiguration("editor.maxTokenizationLineLength")&&(this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}))})))}getLoadStatus(){const e=[];for(const t in this._embeddedLanguages){const i=v.RW.get(t);if(i){if(i instanceof z){const t=i.getLoadStatus();!1===t.loaded&&e.push(t.promise)}}else v.RW.isResolved(t)||e.push(v.RW.getOrCreate(t))}return 0===e.length?{loaded:!0}:{loaded:!1,promise:Promise.all(e).then((e=>{}))}}getInitialState(){const e=K.create(null,this._lexer.start);return q.create(e,null)}tokenize(e,t,i){if(e.length>=this._maxTokenizationLineLength)return(0,y.Ri)(this._languageId,i);const n=new Q,o=this._tokenize(e,t,i,n);return n.finalize(o)}tokenizeEncoded(e,t,i){if(e.length>=this._maxTokenizationLineLength)return(0,y.Dy)(this._languageService.languageIdCodec.encodeLanguageId(this._languageId),i);const n=new Z(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme),o=this._tokenize(e,t,i,n);return n.finalize(o)}_tokenize(e,t,i,n){return i.embeddedLanguageData?this._nestedTokenize(e,t,i,0,n):this._myTokenize(e,t,i,0,n)}_findLeavingNestedLanguageOffset(e,t){let i=this._lexer.tokenizer[t.stack.state];if(!i&&(i=B(this._lexer,t.stack.state),!i))throw P(this._lexer,"tokenizer state is not defined: "+t.stack.state);let n=-1,o=!1;for(const s of i){if(!M(s.action)||"@pop"!==s.action.nextEmbedded)continue;o=!0;let i=s.resolveRegex(t.stack.state);const r=i.source;if("^(?:"===r.substr(0,4)&&")"===r.substr(r.length-1,1)){const e=(i.ignoreCase?"i":"")+(i.unicode?"u":"");i=new RegExp(r.substr(4,r.length-5),e)}const a=e.search(i);-1===a||0!==a&&s.matchOnlyAtLineStart||(-1===n||a0&&o.nestedLanguageTokenize(r,!1,i.embeddedLanguageData,n);const a=e.substring(s);return this._myTokenize(a,t,i,n+s,o)}_safeRuleName(e){return e?e.name:"(unknown)"}_myTokenize(e,t,i,n,o){o.enterLanguage(this._languageId);const s=e.length,r=t&&this._lexer.includeLF?e+"\n":e,a=r.length;let l=i.embeddedLanguageData,h=i.stack,d=0,c=null,u=!0;for(;u||d=a)break;u=!1;let e=this._lexer.tokenizer[_];if(!e&&(e=B(this._lexer,_),!e))throw P(this._lexer,"tokenizer state is not defined: "+_);const t=r.substr(d);for(const i of e)if((0===d||!i.matchOnlyAtLineStart)&&(v=t.match(i.resolveRegex(_)),v)){b=v[0],C=i.action;break}}if(v||(v=[""],b=""),C||(d=this._lexer.maxStack)throw P(this._lexer,"maximum tokenizer stack size reached: ["+h.state+","+h.parent.state+",...]");h=h.push(_)}else if("@pop"===C.next){if(h.depth<=1)throw P(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(w));h=h.pop()}else if("@popall"===C.next)h=h.popall();else{let e=F(this._lexer,C.next,b,v,_);if("@"===e[0]&&(e=e.substr(1)),!B(this._lexer,e))throw P(this._lexer,"trying to set a next state '"+e+"' that is undefined in rule: "+this._safeRuleName(w));h=h.push(e)}}C.log&&"string"===typeof C.log&&(g=this._lexer,m=this._lexer.languageId+": "+F(this._lexer,C.log,b,v,_),console.log("".concat(g.languageId,": ").concat(m)))}if(null===S)throw P(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(w));const L=i=>{const s=this._languageService.getLanguageIdByLanguageName(i)||this._languageService.getLanguageIdByMimeType(i)||i,r=this._getNestedEmbeddedLanguageData(s);if(d0)throw P(this._lexer,"groups cannot be nested: "+this._safeRuleName(w));if(v.length!==S.length+1)throw P(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(w));let e=0;for(let t=1;te});class X{static colorizeElement(e,t,i,n){const o=(n=n||{}).theme||"vs",s=n.mimeType||i.getAttribute("lang")||i.getAttribute("data-lang");if(!s)return console.error("Mode not detected"),Promise.resolve();const r=t.getLanguageIdByMimeType(s)||s;e.setTheme(o);const a=i.firstChild?i.firstChild.nodeValue:"";i.className+=" "+o;return this.colorize(t,a||"",r,n).then((e=>{var t;const n=null!==(t=null===J||void 0===J?void 0:J.createHTML(e))&&void 0!==t?t:e;i.innerHTML=n}),(e=>console.error(e)))}static async colorize(e,t,i,n){const o=e.languageIdCodec;let s=4;n&&"number"===typeof n.tabSize&&(s=n.tabSize),a.uS(t)&&(t=t.substr(1));const r=a.uq(t);if(!e.isRegisteredLanguageId(i))return ee(r,s,o);const l=await v.RW.getOrCreate(i);return l?function(e,t,i,n){return new Promise(((o,s)=>{const r=()=>{const a=function(e,t,i,n){let o=[],s=i.getInitialState();for(let r=0,a=e.length;r"),s=l.endState}return o.join("")}(e,t,i,n);if(i instanceof Y){const e=i.getLoadStatus();if(!1===e.loaded)return void e.promise.then(r,s)}o(a)};r()}))}(r,s,l,o):ee(r,s,o)}static colorizeLine(e,t,i,n){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:4;const s=E.wA.isBasicASCII(e,t),r=E.wA.containsRTL(e,s,i);return(0,x.tF)(new x.IJ(!1,!0,e,!1,s,r,0,n,[],o,0,0,0,0,-1,"none",!1,!1,null)).html}static colorizeModelLine(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4;const n=e.getLineContent(t);e.tokenization.forceTokenization(t);const o=e.tokenization.getLineTokens(t).inflate();return this.colorizeLine(n,e.mightContainNonBasicASCII(),e.mightContainRTL(),o,i)}}function ee(e,t,i){let n=[];const o=new Uint32Array(2);o[0]=0,o[1]=33587200;for(let s=0,r=e.length;s")}return n.join("")}var te=i(70036),ie=i(76025),ne=i(45754),oe=i(85714),se=i(33211),re=i(24219),ae=i(44713),le=i(17903),he=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},de=function(e,t){return function(i,n){t(i,n,e)}};let ce=class extends r.JT{constructor(e){super(),this._themeService=e,this._onWillCreateCodeEditor=this._register(new re.Q5),this._onCodeEditorAdd=this._register(new re.Q5),this.onCodeEditorAdd=this._onCodeEditorAdd.event,this._onCodeEditorRemove=this._register(new re.Q5),this.onCodeEditorRemove=this._onCodeEditorRemove.event,this._onWillCreateDiffEditor=this._register(new re.Q5),this._onDiffEditorAdd=this._register(new re.Q5),this.onDiffEditorAdd=this._onDiffEditorAdd.event,this._onDiffEditorRemove=this._register(new re.Q5),this.onDiffEditorRemove=this._onDiffEditorRemove.event,this._decorationOptionProviders=new Map,this._codeEditorOpenHandlers=new ae.S,this._modelProperties=new Map,this._codeEditors=Object.create(null),this._diffEditors=Object.create(null),this._globalStyleSheet=null}willCreateCodeEditor(){this._onWillCreateCodeEditor.fire()}addCodeEditor(e){this._codeEditors[e.getId()]=e,this._onCodeEditorAdd.fire(e)}removeCodeEditor(e){delete this._codeEditors[e.getId()]&&this._onCodeEditorRemove.fire(e)}listCodeEditors(){return Object.keys(this._codeEditors).map((e=>this._codeEditors[e]))}willCreateDiffEditor(){this._onWillCreateDiffEditor.fire()}addDiffEditor(e){this._diffEditors[e.getId()]=e,this._onDiffEditorAdd.fire(e)}listDiffEditors(){return Object.keys(this._diffEditors).map((e=>this._diffEditors[e]))}getFocusedCodeEditor(){let e=null;const t=this.listCodeEditors();for(const i of t){if(i.hasTextFocus())return i;i.hasWidgetFocus()&&(e=i)}return e}removeDecorationType(e){const t=this._decorationOptionProviders.get(e);t&&(t.refCount--,t.refCount<=0&&(this._decorationOptionProviders.delete(e),t.dispose(),this.listCodeEditors().forEach((t=>t.removeDecorationsByType(e)))))}setModelProperty(e,t,i){const n=e.toString();let o;this._modelProperties.has(n)?o=this._modelProperties.get(n):(o=new Map,this._modelProperties.set(n,o)),o.set(t,i)}getModelProperty(e,t){const i=e.toString();if(this._modelProperties.has(i)){return this._modelProperties.get(i).get(t)}}async openCodeEditor(e,t,i){for(const n of this._codeEditorOpenHandlers){const o=await n(e,t,i);if(null!==o)return o}return null}registerCodeEditorOpenHandler(e){const t=this._codeEditorOpenHandlers.unshift(e);return(0,r.OF)(t)}};ce=he([de(0,le.XE)],ce);var ue=i(24920),ge=i(43837),me=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},fe=function(e,t){return function(i,n){t(i,n,e)}};let pe=class extends ce{constructor(e,t){super(t),this._register(this.onCodeEditorAdd((()=>this._checkContextKey()))),this._register(this.onCodeEditorRemove((()=>this._checkContextKey()))),this._editorIsOpen=e.createKey("editorIsOpen",!1),this._activeCodeEditor=null,this._register(this.registerCodeEditorOpenHandler((async(e,t,i)=>t?this.doOpenEditor(t,e):null)))}_checkContextKey(){let e=!1;for(const t of this.listCodeEditors())if(!t.isSimpleWidget){e=!0;break}this._editorIsOpen.set(e)}setActiveCodeEditor(e){this._activeCodeEditor=e}getActiveCodeEditor(){return this._activeCodeEditor}doOpenEditor(e,t){if(!this.findModel(e,t.resource)){if(t.resource){const i=t.resource.scheme;if(i===se.lg.http||i===se.lg.https)return(0,oe.V3)(t.resource.toString()),e}return null}const 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{const t={lineNumber:i.startLineNumber,column:i.startColumn};e.setPosition(t),e.revealPositionInCenter(t,1)}return e}findModel(e,t){const i=e.getModel();return i&&i.uri.toString()!==t.toString()?null:i}};pe=me([fe(0,ue.i6),fe(1,le.XE)],pe),(0,ge.z)(c.$,pe,0);var _e=i(75629),ve=i(34304);const be=(0,ve.yh)("layoutService");var Ce=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},we=function(e,t){return function(i,n){t(i,n,e)}};let ye=class{get mainContainer(){var e,t;return null!==(t=null===(e=(0,_e.Xh)(this._codeEditorService.listCodeEditors()))||void 0===e?void 0:e.getContainerDomNode())&&void 0!==t?t:s.E.document.body}get activeContainer(){var e,t;const i=null!==(e=this._codeEditorService.getFocusedCodeEditor())&&void 0!==e?e:this._codeEditorService.getActiveCodeEditor();return null!==(t=null===i||void 0===i?void 0:i.getContainerDomNode())&&void 0!==t?t:this.mainContainer}get mainContainerDimension(){return oe.D6(this.mainContainer)}get activeContainerDimension(){return oe.D6(this.activeContainer)}get containers(){return(0,_e.kX)(this._codeEditorService.listCodeEditors().map((e=>e.getContainerDomNode())))}getContainer(){return this.activeContainer}whenContainerStylesLoaded(){}focus(){var e;null===(e=this._codeEditorService.getFocusedCodeEditor())||void 0===e||e.focus()}constructor(e){this._codeEditorService=e,this.onDidLayoutMainContainer=re.ju.None,this.onDidLayoutActiveContainer=re.ju.None,this.onDidLayoutContainer=re.ju.None,this.onDidChangeActiveContainer=re.ju.None,this.onDidAddContainer=re.ju.None,this.mainContainerOffset={top:0,quickPickTop:0},this.activeContainerOffset={top:0,quickPickTop:0}}};ye=Ce([we(0,c.$)],ye);let Se=class extends ye{get mainContainer(){return this._container}constructor(e,t){super(t),this._container=e}};Se=Ce([we(1,c.$)],Se),(0,ge.z)(be,ye,1);var Le=i(85108),ke=i(6225),De=i(71721),Ne=i(78025),xe=i(13200),Ee=i(96484),Ie=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Te=function(e,t){return function(i,n){t(i,n,e)}};const Me=!1;function Ae(e){return e.scheme===se.lg.file?e.fsPath:e.path}let Re=0;class Oe{constructor(e,t,i,n,o,s,r){this.id=++Re,this.type=0,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabel=t,this.strResource=i,this.resourceLabels=[this.resourceLabel],this.strResources=[this.strResource],this.groupId=n,this.groupOrder=o,this.sourceId=s,this.sourceOrder=r,this.isValid=!0}setValid(e){this.isValid=e}toString(){return"[id:".concat(this.id,"] [group:").concat(this.groupId,"] [").concat(this.isValid?" VALID":"INVALID","] ").concat(this.actual.constructor.name," - ").concat(this.actual)}}class Pe{constructor(e,t){this.resourceLabel=e,this.reason=t}}class Fe{constructor(){this.elements=new Map}createMessage(){const e=[],t=[];for(const[,n]of this.elements){(0===n.reason?e:t).push(n.resourceLabel)}const i=[];return e.length>0&&i.push(De.NC({key:"externalRemoval",comment:["{0} is a list of filenames"]},"The following files have been closed and modified on disk: {0}.",e.join(", "))),t.length>0&&i.push(De.NC({key:"noParallelUniverses",comment:["{0} is a list of filenames"]},"The following files have been modified in an incompatible way: {0}.",t.join(", "))),i.join("\n")}get size(){return this.elements.size}has(e){return this.elements.has(e)}set(e,t){this.elements.set(e,t)}delete(e){return this.elements.delete(e)}}class Be{constructor(e,t,i,n,o,s,r){this.id=++Re,this.type=1,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabels=t,this.strResources=i,this.groupId=n,this.groupOrder=o,this.sourceId=s,this.sourceOrder=r,this.removedResources=null,this.invalidatedResources=null}canSplit(){return"function"===typeof this.actual.split}removeResource(e,t,i){this.removedResources||(this.removedResources=new Fe),this.removedResources.has(t)||this.removedResources.set(t,new Pe(e,i))}setValid(e,t,i){i?this.invalidatedResources&&(this.invalidatedResources.delete(t),0===this.invalidatedResources.size&&(this.invalidatedResources=null)):(this.invalidatedResources||(this.invalidatedResources=new Fe),this.invalidatedResources.has(t)||this.invalidatedResources.set(t,new Pe(e,0)))}toString(){return"[id:".concat(this.id,"] [group:").concat(this.groupId,"] [").concat(this.invalidatedResources?"INVALID":" VALID","] ").concat(this.actual.constructor.name," - ").concat(this.actual)}}class ze{constructor(e,t){this.resourceLabel=e,this.strResource=t,this._past=[],this._future=[],this.locked=!1,this.versionId=1}dispose(){for(const e of this._past)1===e.type&&e.removeResource(this.resourceLabel,this.strResource,0);for(const e of this._future)1===e.type&&e.removeResource(this.resourceLabel,this.strResource,0);this.versionId++}toString(){const e=[];e.push("* ".concat(this.strResource,":"));for(let t=0;t=0;t--)e.push(" * [REDO] ".concat(this._future[t]));return e.join("\n")}flushAllElements(){this._past=[],this._future=[],this.versionId++}_setElementValidFlag(e,t){1===e.type?e.setValid(this.resourceLabel,this.strResource,t):e.setValid(t)}setElementsValidFlag(e,t){for(const i of this._past)t(i.actual)&&this._setElementValidFlag(i,e);for(const i of this._future)t(i.actual)&&this._setElementValidFlag(i,e)}pushElement(e){for(const t of this._future)1===t.type&&t.removeResource(this.resourceLabel,this.strResource,1);this._future=[],this._past.push(e),this.versionId++}createSnapshot(e){const t=[];for(let i=0,n=this._past.length;i=0;i--)t.push(this._future[i].id);return new Ee.YO(e,t)}restoreSnapshot(e){const t=e.elements.length;let i=!0,n=0,o=-1;for(let r=0,a=this._past.length;r=t||s.id!==e.elements[n])&&(i=!1,o=0),i||1!==s.type||s.removeResource(this.resourceLabel,this.strResource,0)}let s=-1;for(let r=this._future.length-1;r>=0;r--,n++){const o=this._future[r];i&&(n>=t||o.id!==e.elements[n])&&(i=!1,s=r),i||1!==o.type||o.removeResource(this.resourceLabel,this.strResource,0)}-1!==o&&(this._past=this._past.slice(0,o)),-1!==s&&(this._future=this._future.slice(s+1)),this.versionId++}getElements(){const e=[],t=[];for(const i of this._past)e.push(i.actual);for(const i of this._future)t.push(i.actual);return{past:e,future:t}}getClosestPastElement(){return 0===this._past.length?null:this._past[this._past.length-1]}getSecondClosestPastElement(){return this._past.length<2?null:this._past[this._past.length-2]}getClosestFutureElement(){return 0===this._future.length?null:this._future[this._future.length-1]}hasPastElements(){return this._past.length>0}hasFutureElements(){return this._future.length>0}splitPastWorkspaceElement(e,t){for(let i=this._past.length-1;i>=0;i--)if(this._past[i]===e){t.has(this.strResource)?this._past[i]=t.get(this.strResource):this._past.splice(i,1);break}this.versionId++}splitFutureWorkspaceElement(e,t){for(let i=this._future.length-1;i>=0;i--)if(this._future[i]===e){t.has(this.strResource)?this._future[i]=t.get(this.strResource):this._future.splice(i,1);break}this.versionId++}moveBackward(e){this._past.pop(),this._future.push(e),this.versionId++}moveForward(e){this._future.pop(),this._past.push(e),this.versionId++}}class Ve{constructor(e){this.editStacks=e,this._versionIds=[];for(let t=0,i=this.editStacks.length;t1&&void 0!==arguments[1]?arguments[1]:Ee.Xt.None,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Ee.gJ.None;if(0===e.type){const n=Ae(e.resource),o=this.getUriComparisonKey(e.resource);this._pushElement(new Oe(e,n,o,t.id,t.nextOrder(),i.id,i.nextOrder()))}else{const n=new Set,o=[],s=[];for(const t of e.resources){const e=Ae(t),i=this.getUriComparisonKey(t);n.has(i)||(n.add(i),o.push(e),s.push(i))}1===o.length?this._pushElement(new Oe(e,o[0],s[0],t.id,t.nextOrder(),i.id,i.nextOrder())):this._pushElement(new Be(e,o,s,t.id,t.nextOrder(),i.id,i.nextOrder()))}}_pushElement(e){for(let t=0,i=e.strResources.length;tt.sourceOrder)&&(t=s,i=n))}return[t,i]}canUndo(e){if(e instanceof Ee.gJ){const[,t]=this._findClosestUndoElementWithSource(e.id);return!!t}const t=this.getUriComparisonKey(e);if(this._editStacks.has(t)){return this._editStacks.get(t).hasPastElements()}return!1}_onError(e,t){(0,Le.dL)(e);for(const i of t.strResources)this.removeElements(i);this._notificationService.error(e)}_acquireLocks(e){for(const t of e.editStacks)if(t.locked)throw new Error("Cannot acquire edit stack lock");for(const t of e.editStacks)t.locked=!0;return()=>{for(const t of e.editStacks)t.locked=!1}}_safeInvokeWithLocks(e,t,i,n,o){const s=this._acquireLocks(i);let r;try{r=t()}catch(a){return s(),n.dispose(),this._onError(a,e)}return r?r.then((()=>(s(),n.dispose(),o())),(t=>(s(),n.dispose(),this._onError(t,e)))):(s(),n.dispose(),o())}async _invokeWorkspacePrepare(e){if("undefined"===typeof e.actual.prepareUndoRedo)return r.JT.None;const t=e.actual.prepareUndoRedo();return"undefined"===typeof t?r.JT.None:t}_invokeResourcePrepare(e,t){if(1!==e.actual.type||"undefined"===typeof e.actual.prepareUndoRedo)return t(r.JT.None);const i=e.actual.prepareUndoRedo();return i?(0,r.Wf)(i)?t(i):i.then((e=>t(e))):t(r.JT.None)}_getAffectedEditStacks(e){const t=[];for(const i of e.strResources)t.push(this._editStacks.get(i)||We);return new Ve(t)}_tryToSplitAndUndo(e,t,i,n){if(t.canSplit())return this._splitPastWorkspaceElement(t,i),this._notificationService.warn(n),new Ke(this._undo(e,0,!0));for(const o of t.strResources)this.removeElements(o);return this._notificationService.warn(n),new Ke}_checkWorkspaceUndo(e,t,i,n){if(t.removedResources)return this._tryToSplitAndUndo(e,t,t.removedResources,De.NC({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(n&&t.invalidatedResources)return this._tryToSplitAndUndo(e,t,t.invalidatedResources,De.NC({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()));const o=[];for(const r of i.editStacks)r.getClosestPastElement()!==t&&o.push(r.resourceLabel);if(o.length>0)return this._tryToSplitAndUndo(e,t,null,De.NC({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(", ")));const s=[];for(const r of i.editStacks)r.locked&&s.push(r.resourceLabel);return s.length>0?this._tryToSplitAndUndo(e,t,null,De.NC({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,s.join(", "))):i.isValid()?null:this._tryToSplitAndUndo(e,t,null,De.NC({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))}_workspaceUndo(e,t,i){const n=this._getAffectedEditStacks(t),o=this._checkWorkspaceUndo(e,t,n,!1);return o?o.returnValue:this._confirmAndExecuteWorkspaceUndo(e,t,n,i)}_isPartOfUndoGroup(e){if(!e.groupId)return!1;for(const[,t]of this._editStacks){const i=t.getClosestPastElement();if(i){if(i===e){const i=t.getSecondClosestPastElement();if(i&&i.groupId===e.groupId)return!0}if(i.groupId===e.groupId)return!0}}return!1}async _confirmAndExecuteWorkspaceUndo(e,t,i,n){if(t.canSplit()&&!this._isPartOfUndoGroup(t)){let o;!function(e){e[e.All=0]="All",e[e.This=1]="This",e[e.Cancel=2]="Cancel"}(o||(o={}));const{result:s}=await this._dialogService.prompt({type:ke.Z.Info,message:De.NC("confirmWorkspace","Would you like to undo '{0}' across all files?",t.label),buttons:[{label:De.NC({key:"ok",comment:["{0} denotes a number that is > 1, && denotes a mnemonic"]},"&&Undo in {0} Files",i.editStacks.length),run:()=>o.All},{label:De.NC({key:"nok",comment:["&& denotes a mnemonic"]},"Undo this &&File"),run:()=>o.This}],cancelButton:{run:()=>o.Cancel}});if(s===o.Cancel)return;if(s===o.This)return this._splitPastWorkspaceElement(t,null),this._undo(e,0,!0);const r=this._checkWorkspaceUndo(e,t,i,!1);if(r)return r.returnValue;n=!0}let o;try{o=await this._invokeWorkspacePrepare(t)}catch(r){return this._onError(r,t)}const s=this._checkWorkspaceUndo(e,t,i,!0);if(s)return o.dispose(),s.returnValue;for(const a of i.editStacks)a.moveBackward(t);return this._safeInvokeWithLocks(t,(()=>t.actual.undo()),i,o,(()=>this._continueUndoInGroup(t.groupId,n)))}_resourceUndo(e,t,i){if(t.isValid){if(!e.locked)return this._invokeResourcePrepare(t,(n=>(e.moveBackward(t),this._safeInvokeWithLocks(t,(()=>t.actual.undo()),new Ve([e]),n,(()=>this._continueUndoInGroup(t.groupId,i))))));{const e=De.NC({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(e)}}else e.flushAllElements()}_findClosestUndoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[n,o]of this._editStacks){const s=o.getClosestPastElement();s&&(s.groupId===e&&(!t||s.groupOrder>t.groupOrder)&&(t=s,i=n))}return[t,i]}_continueUndoInGroup(e,t){if(!e)return;const[,i]=this._findClosestUndoElementInGroup(e);return i?this._undo(i,0,t):void 0}undo(e){if(e instanceof Ee.gJ){const[,t]=this._findClosestUndoElementWithSource(e.id);return t?this._undo(t,e.id,!1):void 0}return"string"===typeof e?this._undo(e,0,!1):this._undo(this.getUriComparisonKey(e),0,!1)}_undo(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2?arguments[2]:void 0;if(!this._editStacks.has(e))return;const n=this._editStacks.get(e),o=n.getClosestPastElement();if(!o)return;if(o.groupId){const[e,n]=this._findClosestUndoElementInGroup(o.groupId);if(o!==e&&n)return this._undo(n,t,i)}if((o.sourceId!==t||o.confirmBeforeUndo)&&!i)return this._confirmAndContinueUndo(e,t,o);try{return 1===o.type?this._workspaceUndo(e,o,i):this._resourceUndo(n,o,i)}finally{Me}}async _confirmAndContinueUndo(e,t,i){if((await this._dialogService.confirm({message:De.NC("confirmDifferentSource","Would you like to undo '{0}'?",i.label),primaryButton:De.NC({key:"confirmDifferentSource.yes",comment:["&& denotes a mnemonic"]},"&&Yes"),cancelButton:De.NC("confirmDifferentSource.no","No")})).confirmed)return this._undo(e,t,!0)}_findClosestRedoElementWithSource(e){if(!e)return[null,null];let t=null,i=null;for(const[n,o]of this._editStacks){const s=o.getClosestFutureElement();s&&(s.sourceId===e&&(!t||s.sourceOrder0)return this._tryToSplitAndRedo(e,t,null,De.NC({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(", ")));const s=[];for(const r of i.editStacks)r.locked&&s.push(r.resourceLabel);return s.length>0?this._tryToSplitAndRedo(e,t,null,De.NC({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,s.join(", "))):i.isValid()?null:this._tryToSplitAndRedo(e,t,null,De.NC({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))}_workspaceRedo(e,t){const i=this._getAffectedEditStacks(t),n=this._checkWorkspaceRedo(e,t,i,!1);return n?n.returnValue:this._executeWorkspaceRedo(e,t,i)}async _executeWorkspaceRedo(e,t,i){let n;try{n=await this._invokeWorkspacePrepare(t)}catch(s){return this._onError(s,t)}const o=this._checkWorkspaceRedo(e,t,i,!0);if(o)return n.dispose(),o.returnValue;for(const r of i.editStacks)r.moveForward(t);return this._safeInvokeWithLocks(t,(()=>t.actual.redo()),i,n,(()=>this._continueRedoInGroup(t.groupId)))}_resourceRedo(e,t){if(t.isValid){if(!e.locked)return this._invokeResourcePrepare(t,(i=>(e.moveForward(t),this._safeInvokeWithLocks(t,(()=>t.actual.redo()),new Ve([e]),i,(()=>this._continueRedoInGroup(t.groupId))))));{const e=De.NC({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(e)}}else e.flushAllElements()}_findClosestRedoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[n,o]of this._editStacks){const s=o.getClosestFutureElement();s&&(s.groupId===e&&(!t||s.groupOrder=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Qe=function(e,t){return function(i,n){t(i,n,e)}};let Ze=class extends r.JT{constructor(e,t,i){super(),this._themeService=e,this._logService=t,this._languageService=i,this._caches=new WeakMap,this._register(this._themeService.onDidColorThemeChange((()=>{this._caches=new WeakMap})))}getStyling(e){return this._caches.has(e)||this._caches.set(e,new je.$(e.getLegend(),this._themeService,this._languageService,this._logService)),this._caches.get(e)}};Ze=Ge([Qe(0,le.XE),Qe(1,Ue.VZ),Qe(2,b.O)],Ze),(0,ge.z)(qe.s,Ze,1);var Ye=i(6440);function $e(e){return"string"!==typeof e&&(Array.isArray(e)?e.every($e):!!e.exclusive)}class Je{constructor(e,t,i,n){this.uri=e,this.languageId=t,this.notebookUri=i,this.notebookType=n}equals(e){var t,i;return this.notebookType===e.notebookType&&this.languageId===e.languageId&&this.uri.toString()===e.uri.toString()&&(null===(t=this.notebookUri)||void 0===t?void 0:t.toString())===(null===(i=e.notebookUri)||void 0===i?void 0:i.toString())}}class Xe{constructor(e){this._notebookInfoResolver=e,this._clock=0,this._entries=[],this._onDidChange=new re.Q5,this.onDidChange=this._onDidChange.event}register(e,t){let 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,r.OF)((()=>{if(i){const e=this._entries.indexOf(i);e>=0&&(this._entries.splice(e,1),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),i=void 0)}}))}has(e){return this.all(e).length>0}all(e){if(!e)return[];this._updateScores(e);const t=[];for(const i of this._entries)i._score>0&&t.push(i.provider);return t}ordered(e){const t=[];return this._orderedForEach(e,(e=>t.push(e.provider))),t}orderedGroups(e){const t=[];let i,n;return this._orderedForEach(e,(e=>{i&&n===e._score?i.push(e.provider):(n=e._score,i=[e.provider],t.push(i))})),t}_orderedForEach(e,t){this._updateScores(e);for(const i of this._entries)i._score>0&&t(i)}_updateScores(e){var t,i;const n=null===(t=this._notebookInfoResolver)||void 0===t?void 0:t.call(this,e.uri),o=n?new Je(e.uri,e.getLanguageId(),n.uri,n.type):new Je(e.uri,e.getLanguageId(),void 0,void 0);if(!(null===(i=this._lastCandidate)||void 0===i?void 0:i.equals(o))){this._lastCandidate=o;for(const t of this._entries)if(t._score=(0,Ye.G)(t.selector,o.uri,o.languageId,(0,S.pt)(e),o.notebookUri,o.notebookType),$e(t.selector)&&t._score>0){for(const e of this._entries)e._score=0;t._score=1e3;break}this._entries.sort(Xe._compareByScoreAndTime)}}static _compareByScoreAndTime(e,t){return e._scoret._score?-1:et(e.selector)&&!et(t.selector)?1:!et(e.selector)&&et(t.selector)?-1:e._timet._time?-1:0}}function et(e){return"string"!==typeof e&&(Array.isArray(e)?e.some(et):Boolean(e.isBuiltin))}var tt=i(89752);(0,ge.z)(tt.p,class{constructor(){this.referenceProvider=new Xe(this._score.bind(this)),this.renameProvider=new Xe(this._score.bind(this)),this.newSymbolNamesProvider=new Xe(this._score.bind(this)),this.codeActionProvider=new Xe(this._score.bind(this)),this.definitionProvider=new Xe(this._score.bind(this)),this.typeDefinitionProvider=new Xe(this._score.bind(this)),this.declarationProvider=new Xe(this._score.bind(this)),this.implementationProvider=new Xe(this._score.bind(this)),this.documentSymbolProvider=new Xe(this._score.bind(this)),this.inlayHintsProvider=new Xe(this._score.bind(this)),this.colorProvider=new Xe(this._score.bind(this)),this.codeLensProvider=new Xe(this._score.bind(this)),this.documentFormattingEditProvider=new Xe(this._score.bind(this)),this.documentRangeFormattingEditProvider=new Xe(this._score.bind(this)),this.onTypeFormattingEditProvider=new Xe(this._score.bind(this)),this.signatureHelpProvider=new Xe(this._score.bind(this)),this.hoverProvider=new Xe(this._score.bind(this)),this.documentHighlightProvider=new Xe(this._score.bind(this)),this.multiDocumentHighlightProvider=new Xe(this._score.bind(this)),this.selectionRangeProvider=new Xe(this._score.bind(this)),this.foldingRangeProvider=new Xe(this._score.bind(this)),this.linkProvider=new Xe(this._score.bind(this)),this.inlineCompletionsProvider=new Xe(this._score.bind(this)),this.inlineEditProvider=new Xe(this._score.bind(this)),this.completionProvider=new Xe(this._score.bind(this)),this.linkedEditingRangeProvider=new Xe(this._score.bind(this)),this.documentRangeSemanticTokensProvider=new Xe(this._score.bind(this)),this.documentSemanticTokensProvider=new Xe(this._score.bind(this)),this.documentOnDropEditProvider=new Xe(this._score.bind(this)),this.documentPasteEditProvider=new Xe(this._score.bind(this))}_score(e){var t;return null===(t=this._notebookTypeResolver)||void 0===t?void 0:t.call(this,e)}},1);var it=i(87701),nt=i(8695),ot=i(58868),st=i(46765),rt=i(89883),at=i(74812),lt=i(51460),ht=i(36281),dt=i(32936),ct=i(21511),ut=i(46385),gt=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},mt=function(e,t){return function(i,n){t(i,n,e)}};const ft=oe.$;let pt=class extends at.${get _targetWindow(){return oe.Jj(this._target.targetElements[0])}get _targetDocumentElement(){return oe.Jj(this._target.targetElements[0]).document.documentElement}get isDisposed(){return this._isDisposed}get isMouseIn(){return this._lockMouseTracker.isMouseIn}get domNode(){return this._hover.containerDomNode}get onDispose(){return this._onDispose.event}get onRequestLayout(){return this._onRequestLayout.event}get anchor(){return 2===this._hoverPosition?0:1}get x(){return this._x}get y(){return this._y}get isLocked(){return this._isLocked}set isLocked(e){this._isLocked!==e&&(this._isLocked=e,this._hoverContainer.classList.toggle("locked",this._isLocked))}constructor(e,t,i,o,s,a){var l,h,d,c,u,g,m,f;super(),this._keybindingService=t,this._configurationService=i,this._openerService=o,this._instantiationService=s,this._accessibilityService=a,this._messageListeners=new r.SL,this._isDisposed=!1,this._forcePosition=!1,this._x=0,this._y=0,this._isLocked=!1,this._enableFocusTraps=!1,this._addedFocusTrap=!1,this._onDispose=this._register(new re.Q5),this._onRequestLayout=this._register(new re.Q5),this._linkHandler=e.linkHandler||(t=>(0,ht.N)(this._openerService,t,(0,dt.Fr)(e.content)?e.content.isTrusted:void 0)),this._target="targetElements"in e.target?e.target:new vt(e.target),this._hoverPointer=(null===(l=e.appearance)||void 0===l?void 0:l.showPointer)?ft("div.workbench-hover-pointer"):void 0,this._hover=this._register(new rt.c8),this._hover.containerDomNode.classList.add("workbench-hover","fadeIn"),(null===(h=e.appearance)||void 0===h?void 0:h.compact)&&this._hover.containerDomNode.classList.add("workbench-hover","compact"),(null===(d=e.appearance)||void 0===d?void 0:d.skipFadeInAnimation)&&this._hover.containerDomNode.classList.add("skip-fade-in"),e.additionalClasses&&this._hover.containerDomNode.classList.add(...e.additionalClasses),(null===(c=e.position)||void 0===c?void 0:c.forcePosition)&&(this._forcePosition=!0),e.trapFocus&&(this._enableFocusTraps=!0),this._hoverPosition=null!==(g=null===(u=e.position)||void 0===u?void 0:u.hoverPosition)&&void 0!==g?g:3,this.onmousedown(this._hover.containerDomNode,(e=>e.stopPropagation())),this.onkeydown(this._hover.containerDomNode,(e=>{e.equals(9)&&this.dispose()})),this._register(oe.nm(this._targetWindow,"blur",(()=>this.dispose())));const p=ft("div.hover-row.markdown-hover"),_=ft("div.hover-contents");if("string"===typeof e.content)_.textContent=e.content,_.style.whiteSpace="pre-wrap";else if(e.content instanceof HTMLElement)_.appendChild(e.content),_.classList.add("html-hover-contents");else{const t=e.content,i=this._instantiationService.createInstance(ht.$,{codeBlockFontFamily:this._configurationService.getValue("editor").fontFamily||n.hL.fontFamily}),{element:o}=i.render(t,{actionHandler:{callback:e=>this._linkHandler(e),disposables:this._messageListeners},asyncRenderCallback:()=>{_.classList.add("code-hover-contents"),this.layout(),this._onRequestLayout.fire()}});_.appendChild(o)}if(p.appendChild(_),this._hover.contentsDomNode.appendChild(p),e.actions&&e.actions.length>0){const t=ft("div.hover-row.status-bar"),i=ft("div.actions");e.actions.forEach((e=>{const t=this._keybindingService.lookupKeybinding(e.commandId),n=t?t.getLabel():null;rt.Sr.render(i,{label:e.label,commandId:e.commandId,run:t=>{e.run(t),this.dispose()},iconClass:e.iconClass},n)})),t.appendChild(i),this._hover.containerDomNode.appendChild(t)}let v;if(this._hoverContainer=ft("div.workbench-hover-container"),this._hoverPointer&&this._hoverContainer.appendChild(this._hoverPointer),this._hoverContainer.appendChild(this._hover.containerDomNode),v=!(e.actions&&e.actions.length>0)&&(void 0===(null===(m=e.persistence)||void 0===m?void 0:m.hideOnHover)?"string"===typeof e.content||(0,dt.Fr)(e.content)&&!e.content.value.includes("](")&&!e.content.value.includes(""):e.persistence.hideOnHover),v&&(null===(f=e.appearance)||void 0===f?void 0:f.showHoverHint)){const e=ft("div.hover-row.status-bar"),t=ft("div.info");t.textContent=(0,De.NC)("hoverhint","Hold {0} key to mouse over",ct.dz?"Option":"Alt"),e.appendChild(t),this._hover.containerDomNode.appendChild(e)}const b=[...this._target.targetElements];v||b.push(this._hoverContainer);const C=this._register(new _t(b));if(this._register(C.onMouseOut((()=>{this._isLocked||this.dispose()}))),v){const e=[...this._target.targetElements,this._hoverContainer];this._lockMouseTracker=this._register(new _t(e)),this._register(this._lockMouseTracker.onMouseOut((()=>{this._isLocked||this.dispose()})))}else this._lockMouseTracker=C}addFocusTrap(){if(!this._enableFocusTraps||this._addedFocusTrap)return;this._addedFocusTrap=!0;const e=this._hover.containerDomNode,t=this.findLastFocusableChild(this._hover.containerDomNode);if(t){const i=oe.Ce(this._hoverContainer,ft("div")),n=oe.R3(this._hoverContainer,ft("div"));i.tabIndex=0,n.tabIndex=0,this._register(oe.nm(n,"focus",(t=>{e.focus(),t.preventDefault()}))),this._register(oe.nm(i,"focus",(e=>{t.focus(),e.preventDefault()})))}}findLastFocusableChild(e){if(e.hasChildNodes())for(let t=0;t=0)return e}const n=this.findLastFocusableChild(i);if(n)return n}}render(e){var t;e.appendChild(this._hoverContainer);const i=this._hoverContainer.contains(this._hoverContainer.ownerDocument.activeElement)&&(0,rt.uX)(!0===this._configurationService.getValue("accessibility.verbosity.hover")&&this._accessibilityService.isScreenReaderOptimized(),null===(t=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))||void 0===t?void 0:t.getAriaLabel());i&&(0,te.i7)(i),this.layout(),this.addFocusTrap()}layout(){this._hover.containerDomNode.classList.remove("right-aligned"),this._hover.contentsDomNode.style.maxHeight="";const e=this._target.targetElements.map((e=>(e=>{const t=oe.I8(e),i=e.getBoundingClientRect();return{top:i.top*t,bottom:i.bottom*t,right:i.right*t,left:i.left*t}})(e))),{top:t,right:i,bottom:n,left:o}=e[0],s=i-o,r=n-t,a={top:t,right:i,bottom:n,left:o,width:s,height:r,center:{x:o+s/2,y:t+r/2}};if(this.adjustHorizontalHoverPosition(a),this.adjustVerticalHoverPosition(a),this.adjustHoverMaxHeight(a),this._hoverContainer.style.padding="",this._hoverContainer.style.margin="",this._hoverPointer){switch(this._hoverPosition){case 1:a.left+=3,a.right+=3,this._hoverContainer.style.paddingLeft="".concat(3,"px"),this._hoverContainer.style.marginLeft="".concat(-3,"px");break;case 0:a.left-=3,a.right-=3,this._hoverContainer.style.paddingRight="".concat(3,"px"),this._hoverContainer.style.marginRight="".concat(-3,"px");break;case 2:a.top+=3,a.bottom+=3,this._hoverContainer.style.paddingTop="".concat(3,"px"),this._hoverContainer.style.marginTop="".concat(-3,"px");break;case 3:a.top-=3,a.bottom-=3,this._hoverContainer.style.paddingBottom="".concat(3,"px"),this._hoverContainer.style.marginBottom="".concat(-3,"px")}a.center.x=a.left+s/2,a.center.y=a.top+r/2}this.computeXCordinate(a),this.computeYCordinate(a),this._hoverPointer&&(this._hoverPointer.classList.remove("top"),this._hoverPointer.classList.remove("left"),this._hoverPointer.classList.remove("right"),this._hoverPointer.classList.remove("bottom"),this.setHoverPointerPosition(a)),this._hover.onContentsChanged()}computeXCordinate(e){const t=this._hover.containerDomNode.clientWidth+2;void 0!==this._target.x?this._x=this._target.x:1===this._hoverPosition?this._x=e.right:0===this._hoverPosition?this._x=e.left-t:(this._hoverPointer?this._x=e.center.x-this._hover.containerDomNode.clientWidth/2:this._x=e.left,this._x+t>=this._targetDocumentElement.clientWidth&&(this._hover.containerDomNode.classList.add("right-aligned"),this._x=Math.max(this._targetDocumentElement.clientWidth-t-2,this._targetDocumentElement.clientLeft))),this._xthis._targetWindow.innerHeight&&(this._y=e.bottom)}adjustHorizontalHoverPosition(e){if(void 0!==this._target.x)return;const t=this._hoverPointer?3:0;if(this._forcePosition){const i=t+2;1===this._hoverPosition?this._hover.containerDomNode.style.maxWidth="".concat(this._targetDocumentElement.clientWidth-e.right-i,"px"):0===this._hoverPosition&&(this._hover.containerDomNode.style.maxWidth="".concat(e.left-i,"px"))}else if(1===this._hoverPosition){if(this._targetDocumentElement.clientWidth-e.right=this._hover.containerDomNode.clientWidth+t?this._hoverPosition=0:this._hoverPosition=2}}else if(0===this._hoverPosition){if(e.left=this._hover.containerDomNode.clientWidth+t?this._hoverPosition=1:this._hoverPosition=2}e.left-this._hover.containerDomNode.clientWidth-t<=this._targetDocumentElement.clientLeft&&(this._hoverPosition=1)}}adjustVerticalHoverPosition(e){if(void 0!==this._target.y||this._forcePosition)return;const t=this._hoverPointer?3:0;3===this._hoverPosition?e.top-this._hover.containerDomNode.clientHeight-t<0&&(this._hoverPosition=2):2===this._hoverPosition&&e.bottom+this._hover.containerDomNode.clientHeight+t>this._targetWindow.innerHeight&&(this._hoverPosition=3)}adjustHoverMaxHeight(e){let t=this._targetWindow.innerHeight/2;if(this._forcePosition){const i=2+(this._hoverPointer?3:0);3===this._hoverPosition?t=Math.min(t,e.top-i):2===this._hoverPosition&&(t=Math.min(t,this._targetWindow.innerHeight-e.bottom-i))}if(this._hover.containerDomNode.style.maxHeight="".concat(t,"px"),this._hover.contentsDomNode.clientHeighte.height?this._hoverPointer.style.top="".concat(e.center.y-(this._y-t)-3,"px"):this._hoverPointer.style.top="".concat(Math.round(t/2)-3,"px");break}case 3:case 2:{this._hoverPointer.classList.add(3===this._hoverPosition?"bottom":"top");const t=this._hover.containerDomNode.clientWidth;let i=Math.round(t/2)-3;const n=this._x+i;(ne.right)&&(i=e.center.x-this._x-3),this._hoverPointer.style.left="".concat(i,"px");break}}}focus(){this._hover.containerDomNode.focus()}dispose(){this._isDisposed||(this._onDispose.fire(),this._hoverContainer.remove(),this._messageListeners.dispose(),this._target.dispose(),super.dispose()),this._isDisposed=!0}};pt=gt([mt(1,st.d),mt(2,V.Ui),mt(3,lt.v),mt(4,ve.TG),mt(5,ut.F)],pt);class _t extends at.${get onMouseOut(){return this._onMouseOut.event}get isMouseIn(){return this._isMouseIn}constructor(e){super(),this._elements=e,this._isMouseIn=!0,this._onMouseOut=this._register(new re.Q5),this._elements.forEach((e=>this.onmouseover(e,(()=>this._onTargetMouseOver(e))))),this._elements.forEach((e=>this.onmouseleave(e,(()=>this._onTargetMouseLeave(e)))))}_onTargetMouseOver(e){this._isMouseIn=!0,this._clearEvaluateMouseStateTimeout(e)}_onTargetMouseLeave(e){this._isMouseIn=!1,this._evaluateMouseState(e)}_evaluateMouseState(e){this._clearEvaluateMouseStateTimeout(e),this._mouseTimeout=oe.Jj(e).setTimeout((()=>this._fireIfMouseOutside()),0)}_clearEvaluateMouseStateTimeout(e){this._mouseTimeout&&(oe.Jj(e).clearTimeout(this._mouseTimeout),this._mouseTimeout=void 0)}_fireIfMouseOutside(){this._isMouseIn||this._onMouseOut.fire()}}class vt{constructor(e){this._element=e,this.targetElements=[this._element]}dispose(){}}var bt,Ct=i(39341),wt=i(74449),yt=i(75799);function St(e,t,i){const n=i.mode===bt.ALIGN?i.offset:i.offset+i.size,o=i.mode===bt.ALIGN?i.offset+i.size:i.offset;return 0===i.position?t<=e-n?n:t<=o?o-t:Math.max(e-t,0):t<=o?o-t:t<=e-n?n:0}!function(e){e[e.AVOID=0]="AVOID",e[e.ALIGN=1]="ALIGN"}(bt||(bt={}));class Lt extends r.JT{constructor(e,t){super(),this.container=null,this.useFixedPosition=!1,this.useShadowDOM=!1,this.delegate=null,this.toDisposeOnClean=r.JT.None,this.toDisposeOnSetContainer=r.JT.None,this.shadowRoot=null,this.shadowRootHostElement=null,this.view=oe.$(".context-view"),oe.Cp(this.view),this.setContainer(e,t),this._register((0,r.OF)((()=>this.setContainer(null,1))))}setContainer(e,t){var i;this.useFixedPosition=1!==t;const n=this.useShadowDOM;if(this.useShadowDOM=3===t,(e!==this.container||n!==this.useShadowDOM)&&(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.useShadowDOM){this.shadowRootHostElement=oe.$(".shadow-root-host"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:"open"});const e=document.createElement("style");e.textContent=kt,this.shadowRoot.appendChild(e),this.shadowRoot.appendChild(this.view),this.shadowRoot.appendChild(oe.$("slot"))}else this.container.appendChild(this.view);const t=new r.SL;Lt.BUBBLE_UP_EVENTS.forEach((e=>{t.add(oe.mu(this.container,e,(e=>{this.onDOMEvent(e,!1)})))})),Lt.BUBBLE_DOWN_EVENTS.forEach((e=>{t.add(oe.mu(this.container,e,(e=>{this.onDOMEvent(e,!0)}),!0))})),this.toDisposeOnSetContainer=t}}show(e){var t,i,n;this.isVisible()&&this.hide(),oe.PO(this.view),this.view.className="context-view",this.view.style.top="0px",this.view.style.left="0px",this.view.style.zIndex="".concat(2575+(null!==(t=e.layer)&&void 0!==t?t:0)),this.view.style.position=this.useFixedPosition?"fixed":"absolute",oe.$Z(this.view),this.toDisposeOnClean=e.render(this.view)||r.JT.None,this.delegate=e,this.doLayout(),null===(n=(i=this.delegate).focus)||void 0===n||n.call(i)}getViewElement(){return this.view}layout(){var e,t;this.isVisible()&&(!1!==this.delegate.canRelayout||ct.gn&&wt.D.pointerEvents?(null===(t=null===(e=this.delegate)||void 0===e?void 0:e.layout)||void 0===t||t.call(e),this.doLayout()):this.hide())}doLayout(){if(!this.isVisible())return;const e=this.delegate.getAnchor();let t;if(e instanceof HTMLElement){const i=oe.i(e),n=oe.I8(e);t={top:i.top*n,left:i.left*n,width:i.width*n,height:i.height*n}}else t=function(e){const t=e;return!!t&&"number"===typeof t.x&&"number"===typeof t.y}(e)?{top:e.y,left:e.x,width:e.width||1,height:e.height||2}:{top:e.posy,left:e.posx,width:2,height:2};const i=oe.w(this.view),n=oe.wn(this.view),o=this.delegate.anchorPosition||0,s=this.delegate.anchorAlignment||0,r=this.delegate.anchorAxisAlignment||0;let a,l;const h=oe.WN();if(0===r){const e={offset:t.top-h.pageYOffset,size:t.height,position:0===o?0:1},r={offset:t.left,size:t.width,position:0===s?0:1,mode:bt.ALIGN};a=St(h.innerHeight,n,e)+h.pageYOffset,yt.e.intersects({start:a,end:a+n},{start:e.offset,end:e.offset+e.size})&&(r.mode=bt.AVOID),l=St(h.innerWidth,i,r)}else{const e={offset:t.left,size:t.width,position:0===s?0:1},r={offset:t.top,size:t.height,position:0===o?0:1,mode:bt.ALIGN};l=St(h.innerWidth,i,e),yt.e.intersects({start:l,end:l+i},{start:e.offset,end:e.offset+e.size})&&(r.mode=bt.AVOID),a=St(h.innerHeight,n,r)+h.pageYOffset}this.view.classList.remove("top","bottom","left","right"),this.view.classList.add(0===o?"bottom":"top"),this.view.classList.add(0===s?"left":"right"),this.view.classList.toggle("fixed",this.useFixedPosition);const d=oe.i(this.container);this.view.style.top="".concat(a-(this.useFixedPosition?oe.i(this.view).top:d.top),"px"),this.view.style.left="".concat(l-(this.useFixedPosition?oe.i(this.view).left:d.left),"px"),this.view.style.width="initial"}hide(e){const t=this.delegate;this.delegate=null,(null===t||void 0===t?void 0:t.onHide)&&t.onHide(e),this.toDisposeOnClean.dispose(),oe.Cp(this.view)}isVisible(){return!!this.delegate}onDOMEvent(e,t){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(e,oe.Jj(e).document.activeElement):t&&!oe.jg(e.target,this.container)&&this.hide())}dispose(){this.hide(),super.dispose()}}Lt.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"],Lt.BUBBLE_DOWN_EVENTS=["click"];const kt='\n\t:host {\n\t\tall: initial; /* 1st rule so subsequent properties are reset. */\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';var Dt=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Nt=function(e,t){return function(i,n){t(i,n,e)}};let xt=class extends r.JT{constructor(e){super(),this.layoutService=e,this.currentViewDisposable=this._register(new r.XK),this.contextView=this._register(new Lt(this.layoutService.mainContainer,1)),this.layout(),this._register(e.onDidLayoutContainer((()=>this.layout())))}showContextView(e,t,i){let n;n=t?t===this.layoutService.getContainer((0,oe.Jj)(t))?1:i?3:2:1,this.contextView.setContainer(null!==t&&void 0!==t?t:this.layoutService.activeContainer,n),this.contextView.show(e);const o=(0,r.OF)((()=>{this.currentViewDisposable===o&&this.hideContextView()}));return this.currentViewDisposable.value=o,o}layout(){this.contextView.layout()}hideContextView(e){this.contextView.hide(e)}};xt=Dt([Nt(0,be)],xt);class Et extends xt{getContextViewElement(){return this.contextView.getViewElement()}}var It=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Tt=function(e,t){return function(i,n){t(i,n,e)}};let Mt=class extends r.JT{constructor(e,t,i,n,o){super(),this._instantiationService=e,this._keybindingService=i,this._layoutService=n,this._accessibilityService=o,t.onDidShowContextMenu((()=>this.hideHover())),this._contextViewHandler=this._register(new xt(this._layoutService))}showHover(e,t,i){var n,o,a,l;if(At(this._currentHoverOptions)===At(e))return;if(this._currentHover&&(null===(o=null===(n=this._currentHoverOptions)||void 0===n?void 0:n.persistence)||void 0===o?void 0:o.sticky))return;this._currentHoverOptions=e,this._lastHoverOptions=e;const h=e.trapFocus||this._accessibilityService.isScreenReaderOptimized(),d=(0,oe.vY)();i||(this._lastFocusedElementBeforeOpen=h&&d?d:void 0);const c=new r.SL,u=this._instantiationService.createInstance(pt,e);if((null===(a=e.persistence)||void 0===a?void 0:a.sticky)&&(u.isLocked=!0),u.onDispose((()=>{var t,i;(null===(t=this._currentHover)||void 0===t?void 0:t.domNode)&&(0,oe.b5)(this._currentHover.domNode)&&(null===(i=this._lastFocusedElementBeforeOpen)||void 0===i||i.focus()),this._currentHoverOptions===e&&(this._currentHoverOptions=void 0),c.dispose()})),!e.container){const t=e.target instanceof HTMLElement?e.target:e.target.targetElements[0];e.container=this._layoutService.getContainer((0,oe.Jj)(t))}if(this._contextViewHandler.showContextView(new Rt(u,t),e.container),u.onRequestLayout((()=>this._contextViewHandler.layout())),null===(l=e.persistence)||void 0===l?void 0:l.sticky)c.add((0,oe.nm)((0,oe.Jj)(e.container).document,oe.tw.MOUSE_DOWN,(e=>{(0,oe.jg)(e.target,u.domNode)||this.doHideHover()})));else{if("targetElements"in e.target)for(const i of e.target.targetElements)c.add((0,oe.nm)(i,oe.tw.CLICK,(()=>this.hideHover())));else c.add((0,oe.nm)(e.target,oe.tw.CLICK,(()=>this.hideHover())));const t=(0,oe.vY)();if(t){const i=(0,oe.Jj)(t).document;c.add((0,oe.nm)(t,oe.tw.KEY_DOWN,(t=>{var i;return this._keyDown(t,u,!!(null===(i=e.persistence)||void 0===i?void 0:i.hideOnKeyDown))}))),c.add((0,oe.nm)(i,oe.tw.KEY_DOWN,(t=>{var i;return this._keyDown(t,u,!!(null===(i=e.persistence)||void 0===i?void 0:i.hideOnKeyDown))}))),c.add((0,oe.nm)(t,oe.tw.KEY_UP,(e=>this._keyUp(e,u)))),c.add((0,oe.nm)(i,oe.tw.KEY_UP,(e=>this._keyUp(e,u))))}}if("IntersectionObserver"in s.E){const t=new IntersectionObserver((e=>this._intersectionChange(e,u)),{threshold:0}),i="targetElements"in e.target?e.target.targetElements[0]:e.target;t.observe(i),c.add((0,r.OF)((()=>t.disconnect())))}return this._currentHover=u,u}hideHover(){var e;!(null===(e=this._currentHover)||void 0===e?void 0:e.isLocked)&&this._currentHoverOptions&&this.doHideHover()}doHideHover(){this._currentHover=void 0,this._currentHoverOptions=void 0,this._contextViewHandler.hideContextView()}_intersectionChange(e,t){e[e.length-1].isIntersecting||t.dispose()}_keyDown(e,t,i){var n,o;if("Alt"===e.key)return void(t.isLocked=!0);const s=new Ct.y(e);this._keybindingService.resolveKeyboardEvent(s).getSingleModifierDispatchChords().some((e=>!!e))||0!==this._keybindingService.softDispatch(s,s.target).kind||!i||(null===(n=this._currentHoverOptions)||void 0===n?void 0:n.trapFocus)&&"Tab"===e.key||(this.hideHover(),null===(o=this._lastFocusedElementBeforeOpen)||void 0===o||o.focus())}_keyUp(e,t){var i;"Alt"===e.key&&(t.isLocked=!1,t.isMouseIn||(this.hideHover(),null===(i=this._lastFocusedElementBeforeOpen)||void 0===i||i.focus()))}};function At(e){var t;if(void 0!==e)return null!==(t=null===e||void 0===e?void 0:e.id)&&void 0!==t?t:e}Mt=It([Tt(0,ve.TG),Tt(1,ot.i),Tt(2,st.d),Tt(3,be),Tt(4,ut.F)],Mt);class Rt{get anchorPosition(){return this._hover.anchor}constructor(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._hover=e,this._focus=t,this.layer=1}render(e){return this._hover.render(e),this._focus&&this._hover.focus(),this._hover}getAnchor(){return{x:this._hover.x,y:this._hover.y}}layout(){this._hover.layout()}}(0,ge.z)(nt.Bs,Mt,1),(0,le.Ic)(((e,t)=>{const i=e.getColor(it.CNo);i&&(t.addRule(".monaco-workbench .workbench-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ".concat(i.transparent(.5),"; }")),t.addRule(".monaco-workbench .workbench-hover hr { border-top: 1px solid ".concat(i.transparent(.5),"; }")))}));var Ot=i(97162),Pt=i(621),Ft=i(65175),Bt=i(39376),zt=i(2067),Vt=i(10670),Wt=i(93984),Ht=i(61315),Kt=i(60982),Ut=i(65549),jt=i(63686),qt=i(9694),Gt=i(70311);function Qt(e){return Object.isFrozen(e)?e:u._A(e)}class Zt{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>3?arguments[3]:void 0;this._contents=e,this._keys=t,this._overrides=i,this.raw=n,this.overrideConfigurations=new Map}get rawConfiguration(){var e;if(!this._rawConfiguration)if(null===(e=this.raw)||void 0===e?void 0:e.length){const e=this.raw.map((e=>{if(e instanceof Zt)return e;const t=new Yt("");return t.parseRaw(e),t.configurationModel}));this._rawConfiguration=e.reduce(((e,t)=>t===e?t:e.merge(t)),e[0])}else this._rawConfiguration=this;return this._rawConfiguration}get contents(){return this._contents}get overrides(){return this._overrides}get keys(){return this._keys}isEmpty(){return 0===this._keys.length&&0===Object.keys(this._contents).length&&0===this._overrides.length}getValue(e){return e?(0,V.Mt)(this.contents,e):this.contents}inspect(e,t){const i=this;return{get value(){return Qt(i.rawConfiguration.getValue(e))},get override(){return t?Qt(i.rawConfiguration.getOverrideValue(e,t)):void 0},get merged(){return Qt(t?i.rawConfiguration.override(t).getValue(e):i.rawConfiguration.getValue(e))},get overrides(){const t=[];for(const{contents:n,identifiers:o,keys:s}of i.rawConfiguration.overrides){const i=new Zt(n,s).getValue(e);void 0!==i&&t.push({identifiers:o,value:i})}return t.length?Qt(t):void 0}}}getOverrideValue(e,t){const i=this.getContentsForOverrideIdentifer(t);return i?e?(0,V.Mt)(i,e):i:void 0}override(e){let t=this.overrideConfigurations.get(e);return t||(t=this.createOverrideConfigurationModel(e),this.overrideConfigurations.set(e,t)),t}merge(){var e,t;const i=u.I8(this.contents),n=u.I8(this.overrides),o=[...this.keys],s=(null===(e=this.raw)||void 0===e?void 0:e.length)?[...this.raw]:[this];for(var r=arguments.length,a=new Array(r),l=0;l_e.fS(t.identifiers,e.identifiers)));t?(this.mergeContents(t.contents,e.contents),t.keys.push(...e.keys),t.keys=_e.EB(t.keys)):n.push(u.I8(e))}for(const e of h.keys)-1===o.indexOf(e)&&o.push(e)}return new Zt(i,o,n,s.every((e=>e instanceof Zt))?void 0:s)}createOverrideConfigurationModel(e){const t=this.getContentsForOverrideIdentifer(e);if(!t||"object"!==typeof t||!Object.keys(t).length)return this;const i={};for(const n of _e.EB([...Object.keys(this.contents),...Object.keys(t)])){let e=this.contents[n];const o=t[n];o&&("object"===typeof e&&"object"===typeof o?(e=u.I8(e),this.mergeContents(e,o)):e=o),i[n]=e}return new Zt(i,this.keys,this.overrides)}mergeContents(e,t){for(const i of Object.keys(t))i in e&&jt.Kn(e[i])&&jt.Kn(t[i])?this.mergeContents(e[i],t[i]):e[i]=u.I8(t[i])}getContentsForOverrideIdentifer(e){let t=null,i=null;const n=e=>{e&&(i?this.mergeContents(i,e):i=u.I8(e))};for(const o of this.overrides)1===o.identifiers.length&&o.identifiers[0]===e?t=o.contents:o.identifiers.includes(e)&&n(o.contents);return n(t),i}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}addValue(e,t){this.updateValue(e,t,!0)}setValue(e,t){this.updateValue(e,t,!1)}removeValue(e){const t=this.keys.indexOf(e);-1!==t&&(this.keys.splice(t,1),(0,V.xL)(this.contents,e),qt.eU.test(e)&&this.overrides.splice(this.overrides.findIndex((t=>_e.fS(t.identifiers,(0,qt.ny)(e)))),1))}updateValue(e,t,i){(0,V.KV)(this.contents,e,t,(e=>console.error(e))),(i=i||-1===this.keys.indexOf(e))&&this.keys.push(e),qt.eU.test(e)&&this.overrides.push({identifiers:(0,qt.ny)(e),keys:Object.keys(this.contents[e]),contents:(0,V.Od)(this.contents[e],(e=>console.error(e)))})}}class Yt{constructor(e){this._name=e,this._raw=null,this._configurationModel=null,this._restrictedConfigurations=[]}get configurationModel(){return this._configurationModel||new Zt}parseRaw(e,t){this._raw=e;const{contents:i,keys:n,overrides:o,restricted:s,hasExcludedProperties:r}=this.doParseRaw(e,t);this._configurationModel=new Zt(i,n,o,r?[e]:void 0),this._restrictedConfigurations=s||[]}doParseRaw(e,t){const i=Gt.B.as(qt.IP.Configuration).getConfigurationProperties(),n=this.filter(e,i,!0,t);e=n.raw;return{contents:(0,V.Od)(e,(e=>console.error("Conflict in settings file ".concat(this._name,": ").concat(e)))),keys:Object.keys(e),overrides:this.toOverrides(e,(e=>console.error("Conflict in settings file ".concat(this._name,": ").concat(e)))),restricted:n.restricted,hasExcludedProperties:n.hasExcludedProperties}}filter(e,t,i,n){var o,s,r;let a=!1;if(!(null===n||void 0===n?void 0:n.scopes)&&!(null===n||void 0===n?void 0:n.skipRestricted)&&!(null===(o=null===n||void 0===n?void 0:n.exclude)||void 0===o?void 0:o.length))return{raw:e,restricted:[],hasExcludedProperties:a};const l={},h=[];for(const d in e)if(qt.eU.test(d)&&i){const i=this.filter(e[d],t,!1,n);l[d]=i.raw,a=a||i.hasExcludedProperties,h.push(...i.restricted)}else{const i=t[d],o=i?"undefined"!==typeof i.scope?i.scope:3:void 0;(null===i||void 0===i?void 0:i.restricted)&&h.push(d),(null===(s=n.exclude)||void 0===s?void 0:s.includes(d))||!(null===(r=n.include)||void 0===r?void 0:r.includes(d))&&(void 0!==o&&void 0!==n.scopes&&!n.scopes.includes(o)||n.skipRestricted&&(null===i||void 0===i?void 0:i.restricted))?a=!0:l[d]=e[d]}return{raw:l,restricted:h,hasExcludedProperties:a}}toOverrides(e,t){const i=[];for(const n of Object.keys(e))if(qt.eU.test(n)){const o={};for(const t in e[n])o[t]=e[n][t];i.push({identifiers:(0,qt.ny)(n),keys:Object.keys(o),contents:(0,V.Od)(o,t)})}return i}}class $t{constructor(e,t,i,n,o,s,r,a,l,h,d,c,u){this.key=e,this.overrides=t,this._value=i,this.overrideIdentifiers=n,this.defaultConfiguration=o,this.policyConfiguration=s,this.applicationConfiguration=r,this.userConfiguration=a,this.localUserConfiguration=l,this.remoteUserConfiguration=h,this.workspaceConfiguration=d,this.folderConfigurationModel=c,this.memoryConfigurationModel=u}toInspectValue(e){return void 0!==(null===e||void 0===e?void 0:e.value)||void 0!==(null===e||void 0===e?void 0:e.override)||void 0!==(null===e||void 0===e?void 0:e.overrides)?e:void 0}get userInspectValue(){return this._userInspectValue||(this._userInspectValue=this.userConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userInspectValue}get user(){return this.toInspectValue(this.userInspectValue)}}class Jt{constructor(e,t,i,n){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:new Zt,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:new Zt,r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:new Ut.Y9,a=arguments.length>7&&void 0!==arguments[7]?arguments[7]:new Zt,l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:new Ut.Y9;this._defaultConfiguration=e,this._policyConfiguration=t,this._applicationConfiguration=i,this._localUserConfiguration=n,this._remoteUserConfiguration=o,this._workspaceConfiguration=s,this._folderConfigurations=r,this._memoryConfiguration=a,this._memoryConfigurationByResource=l,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new Ut.Y9,this._userConfiguration=null}getValue(e,t,i){return this.getConsolidatedConfigurationModel(e,t,i).getValue(e)}updateValue(e,t){let i,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n.resource?(i=this._memoryConfigurationByResource.get(n.resource),i||(i=new Zt,this._memoryConfigurationByResource.set(n.resource,i))):i=this._memoryConfiguration,void 0===t?i.removeValue(e):i.setValue(e,t),n.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(e,t,i){const n=this.getConsolidatedConfigurationModel(e,t,i),o=this.getFolderConfigurationModelForResource(t.resource,i),s=t.resource&&this._memoryConfigurationByResource.get(t.resource)||this._memoryConfiguration,r=new Set;for(const a of n.overrides)for(const t of a.identifiers)void 0!==n.getOverrideValue(e,t)&&r.add(t);return new $t(e,t,n.getValue(e),r.size?[...r]:void 0,this._defaultConfiguration,this._policyConfiguration.isEmpty()?void 0:this._policyConfiguration,this.applicationConfiguration.isEmpty()?void 0:this.applicationConfiguration,this.userConfiguration,this.localUserConfiguration,this.remoteUserConfiguration,i?this._workspaceConfiguration:void 0,o||void 0,s)}get applicationConfiguration(){return this._applicationConfiguration}get userConfiguration(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration)),this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}getConsolidatedConfigurationModel(e,t,i){let n=this.getConsolidatedConfigurationModelForResource(t,i);return t.overrideIdentifier&&(n=n.override(t.overrideIdentifier)),this._policyConfiguration.isEmpty()||void 0===this._policyConfiguration.getValue(e)||(n=n.merge(this._policyConfiguration)),n}getConsolidatedConfigurationModelForResource(e,t){let{resource:i}=e,n=this.getWorkspaceConsolidatedConfiguration();if(t&&i){const e=t.getFolder(i);e&&(n=this.getFolderConsolidatedConfiguration(e.uri)||n);const o=this._memoryConfigurationByResource.get(i);o&&(n=n.merge(o))}return n}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.applicationConfiguration,this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration)),this._workspaceConsolidatedConfiguration}getFolderConsolidatedConfiguration(e){let t=this._foldersConsolidatedConfigurations.get(e);if(!t){const i=this.getWorkspaceConsolidatedConfiguration(),n=this._folderConfigurations.get(e);n?(t=i.merge(n),this._foldersConsolidatedConfigurations.set(e,t)):t=i}return t}getFolderConfigurationModelForResource(e,t){if(t&&e){const i=t.getFolder(e);if(i)return this._folderConfigurations.get(i.uri)}}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},policy:{contents:this._policyConfiguration.contents,overrides:this._policyConfiguration.overrides,keys:this._policyConfiguration.keys},application:{contents:this.applicationConfiguration.contents,overrides:this.applicationConfiguration.overrides,keys:this.applicationConfiguration.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:[...this._folderConfigurations.keys()].reduce(((e,t)=>{const{contents:i,overrides:n,keys:o}=this._folderConfigurations.get(t);return e.push([t,{contents:i,overrides:n,keys:o}]),e}),[])}}static parse(e){const t=this.parseConfigurationModel(e.defaults),i=this.parseConfigurationModel(e.policy),n=this.parseConfigurationModel(e.application),o=this.parseConfigurationModel(e.user),s=this.parseConfigurationModel(e.workspace),r=e.folders.reduce(((e,t)=>(e.set(l.o.revive(t[0]),this.parseConfigurationModel(t[1])),e)),new Ut.Y9);return new Jt(t,i,n,o,new Zt,s,r,new Zt,new Ut.Y9)}static parseConfigurationModel(e){return new Zt(e.contents,e.keys,e.overrides)}}class Xt{constructor(e,t,i,n){this.change=e,this.previous=t,this.currentConfiguraiton=i,this.currentWorkspace=n,this._marker="\n",this._markerCode1=this._marker.charCodeAt(0),this._markerCode2=".".charCodeAt(0),this.affectedKeys=new Set,this._previousConfiguration=void 0;for(const o of e.keys)this.affectedKeys.add(o);for(const[,o]of e.overrides)for(const e of o)this.affectedKeys.add(e);this._affectsConfigStr=this._marker;for(const o of this.affectedKeys)this._affectsConfigStr+=o+this._marker}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=Jt.parse(this.previous.data)),this._previousConfiguration}affectsConfiguration(e,t){var i;const n=this._marker+e,o=this._affectsConfigStr.indexOf(n);if(o<0)return!1;const s=o+n.length;if(s>=this._affectsConfigStr.length)return!1;const r=this._affectsConfigStr.charCodeAt(s);if(r!==this._markerCode1&&r!==this._markerCode2)return!1;if(t){const n=this.previousConfiguration?this.previousConfiguration.getValue(e,t,null===(i=this.previous)||void 0===i?void 0:i.workspace):void 0,o=this.currentConfiguraiton.getValue(e,t,this.currentWorkspace);return!u.fS(n,o)}return!0}}var ei=i(60282),ti=i(43283);const ii={kind:0},ni={kind:1};class oi{constructor(e,t,i){var n;this._log=i,this._defaultKeybindings=e,this._defaultBoundCommands=new Map;for(const o of e){const e=o.command;e&&"-"!==e.charAt(0)&&this._defaultBoundCommands.set(e,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=oi.handleRemovals([].concat(e).concat(t));for(let o=0,s=this._keybindings.length;o=0;n--){const e=i[n];if(e.command===t.command)continue;let o=!0;for(let i=1;i=0;n--){const e=i[n];if(t.contextMatchesRules(e.when))return e}return i[i.length-1]}resolve(e,t,i){const n=[...t,i];this._log("| Resolving ".concat(n));const o=this._map.get(n[0]);if(void 0===o)return this._log("\\ No keybinding entries."),ii;let s=null;if(n.length<2)s=o;else{s=[];for(let e=0,t=o.length;et.chords.length)continue;let i=!0;for(let e=1;e=0;i--){const n=t[i];if(oi._contextMatchesRules(e,n.when))return n}return null}static _contextMatchesRules(e,t){return!t||t.evaluate(e)}}function si(e){return e?"".concat(e.serialize()):"no when condition"}function ri(e){return e.extensionId?e.isBuiltinExtension?"built-in extension ".concat(e.extensionId):"user extension ".concat(e.extensionId):e.isDefault?"built-in":"user"}const ai=/^(cursor|delete|undo|redo|tab|editor\.action\.clipboard)/;class li extends r.JT{get onDidUpdateKeybindings(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:re.ju.None}get inChordMode(){return this._currentChords.length>0}constructor(e,t,i,n,o){super(),this._contextKeyService=e,this._commandService=t,this._telemetryService=i,this._notificationService=n,this._logService=o,this._onDidUpdateKeybindings=this._register(new re.Q5),this._currentChords=[],this._currentChordChecker=new ei.zh,this._currentChordStatusMessage=null,this._ignoreSingleModifiers=hi.EMPTY,this._currentSingleModifier=null,this._currentSingleModifierClearTimeout=new ei._F,this._currentlyDispatchingCommandId=null,this._logging=!1}dispose(){super.dispose()}_log(e){this._logging&&this._logService.info("[KeybindingService]: ".concat(e))}getKeybindings(){return this._getResolver().getKeybindings()}lookupKeybinding(e,t){const i=this._getResolver().lookupPrimaryKeybinding(e,t||this._contextKeyService);if(i)return i.resolvedKeybinding}dispatchEvent(e,t){return this._dispatch(e,t)}softDispatch(e,t){this._log("/ Soft dispatching keyboard event");const i=this.resolveKeyboardEvent(e);if(i.hasMultipleChords())return console.warn("keyboard event should not be mapped to multiple chords"),ii;const[n]=i.getDispatchChords();if(null===n)return this._log("\\ Keyboard event cannot be dispatched"),ii;const o=this._contextKeyService.getContext(t),s=this._currentChords.map((e=>{let{keypress:t}=e;return t}));return this._getResolver().resolve(o,s,n)}_scheduleLeaveChordMode(){const e=Date.now();this._currentChordChecker.cancelAndSet((()=>{this._documentHasFocus()?Date.now()-e>5e3&&this._leaveChordMode():this._leaveChordMode()}),500)}_expectAnotherChord(e,t){switch(this._currentChords.push({keypress:e,label:t}),this._currentChords.length){case 0:throw(0,Le.L6)("impossible");case 1:this._currentChordStatusMessage=this._notificationService.status(De.NC("first.chord","({0}) was pressed. Waiting for second key of chord...",t));break;default:{const e=this._currentChords.map((e=>{let{label:t}=e;return t})).join(", ");this._currentChordStatusMessage=this._notificationService.status(De.NC("next.chord","({0}) was pressed. Waiting for next key of chord...",e))}}this._scheduleLeaveChordMode(),ti.F.enabled&&ti.F.disable()}_leaveChordMode(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChords=[],ti.F.enable()}_dispatch(e,t){return this._doDispatch(this.resolveKeyboardEvent(e),t,!1)}_singleModifierDispatch(e,t){const i=this.resolveKeyboardEvent(e),[n]=i.getSingleModifierDispatchChords();if(n)return this._ignoreSingleModifiers.has(n)?(this._log("+ Ignoring single modifier ".concat(n," due to it being pressed together with other keys.")),this._ignoreSingleModifiers=hi.EMPTY,this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1):(this._ignoreSingleModifiers=hi.EMPTY,null===this._currentSingleModifier?(this._log("+ Storing single modifier for possible chord ".concat(n,".")),this._currentSingleModifier=n,this._currentSingleModifierClearTimeout.cancelAndSet((()=>{this._log("+ Clearing single modifier due to 300ms elapsed."),this._currentSingleModifier=null}),300),!1):n===this._currentSingleModifier?(this._log("/ Dispatching single modifier chord ".concat(n," ").concat(n)),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,this._doDispatch(i,t,!0)):(this._log("+ Clearing single modifier due to modifier mismatch: ".concat(this._currentSingleModifier," ").concat(n)),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1));const[o]=i.getChords();return this._ignoreSingleModifiers=new hi(o),null!==this._currentSingleModifier&&this._log("+ Clearing single modifier due to other key up."),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1}_doDispatch(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];var n;let o=!1;if(e.hasMultipleChords())return console.warn("Unexpected keyboard event mapped to multiple chords"),!1;let s=null,r=null;if(i){const[t]=e.getSingleModifierDispatchChords();s=t,r=t?[t]:[]}else[s]=e.getDispatchChords(),r=this._currentChords.map((e=>{let{keypress:t}=e;return t}));if(null===s)return this._log("\\ Keyboard event cannot be dispatched in keydown phase."),o;const a=this._contextKeyService.getContext(t),l=e.getLabel(),h=this._getResolver().resolve(a,r,s);switch(h.kind){case 0:if(this._logService.trace("KeybindingService#dispatch",l,"[ No matching keybinding ]"),this.inChordMode){const e=this._currentChords.map((e=>{let{label:t}=e;return t})).join(", ");this._log('+ Leaving multi-chord mode: Nothing bound to "'.concat(e,", ").concat(l,'".')),this._notificationService.status(De.NC("missing.chord","The key combination ({0}, {1}) is not a command.",e,l),{hideAfter:1e4}),this._leaveChordMode(),o=!0}return o;case 1:return this._logService.trace("KeybindingService#dispatch",l,"[ Several keybindings match - more chords needed ]"),o=!0,this._expectAnotherChord(s,l),this._log(1===this._currentChords.length?"+ Entering multi-chord mode...":"+ Continuing multi-chord mode..."),o;case 2:if(this._logService.trace("KeybindingService#dispatch",l,"[ Will dispatch command ".concat(h.commandId," ]")),null===h.commandId||""===h.commandId){if(this.inChordMode){const e=this._currentChords.map((e=>{let{label:t}=e;return t})).join(", ");this._log('+ Leaving chord mode: Nothing bound to "'.concat(e,", ").concat(l,'".')),this._notificationService.status(De.NC("missing.chord","The key combination ({0}, {1}) is not a command.",e,l),{hideAfter:1e4}),this._leaveChordMode(),o=!0}}else{this.inChordMode&&this._leaveChordMode(),h.isBubble||(o=!0),this._log("+ Invoking command ".concat(h.commandId,".")),this._currentlyDispatchingCommandId=h.commandId;try{"undefined"===typeof h.commandArgs?this._commandService.executeCommand(h.commandId).then(void 0,(e=>this._notificationService.warn(e))):this._commandService.executeCommand(h.commandId,h.commandArgs).then(void 0,(e=>this._notificationService.warn(e)))}finally{this._currentlyDispatchingCommandId=null}ai.test(h.commandId)||this._telemetryService.publicLog2("workbenchActionExecuted",{id:h.commandId,from:"keybinding",detail:null!==(n=e.getUserSettingsLabel())&&void 0!==n?n:void 0})}return o}}mightProducePrintableCharacter(e){return!e.ctrlKey&&!e.metaKey&&(e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30)}}class hi{constructor(e){this._ctrlKey=!!e&&e.ctrlKey,this._shiftKey=!!e&&e.shiftKey,this._altKey=!!e&&e.altKey,this._metaKey=!!e&&e.metaKey}has(e){switch(e){case"ctrl":return this._ctrlKey;case"shift":return this._shiftKey;case"alt":return this._altKey;case"meta":return this._metaKey}}}hi.EMPTY=new hi(null);var di=i(86728);class ci{constructor(e,t,i,n,o,s,r){this._resolvedKeybindingItemBrand=void 0,this.resolvedKeybinding=e,this.chords=e?ui(e.getDispatchChords()):[],e&&0===this.chords.length&&(this.chords=ui(e.getSingleModifierDispatchChords())),this.bubble=!!t&&94===t.charCodeAt(0),this.command=this.bubble?t.substr(1):t,this.commandArgs=i,this.when=n,this.isDefault=o,this.extensionId=s,this.isBuiltinExtension=r}}function ui(e){const t=[];for(let i=0,n=e.length;ithis._getLabel(e)))}getAriaLabel(){return mi.X4.toLabel(this._os,this._chords,(e=>this._getAriaLabel(e)))}getElectronAccelerator(){return this._chords.length>1||this._chords[0].isDuplicateModifierCase()?null:mi.jC.toLabel(this._os,this._chords,(e=>this._getElectronAccelerator(e)))}getUserSettingsLabel(){return mi.r6.toLabel(this._os,this._chords,(e=>this._getUserSettingsLabel(e)))}hasMultipleChords(){return this._chords.length>1}getChords(){return this._chords.map((e=>this._getChord(e)))}_getChord(e){return new Ot.aZ(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,this._getLabel(e),this._getAriaLabel(e))}getDispatchChords(){return this._chords.map((e=>this._getChordDispatch(e)))}getSingleModifierDispatchChords(){return this._chords.map((e=>this._getSingleModifierChordDispatch(e)))}}class pi extends fi{constructor(e,t){super(t,e)}_keyCodeToUILabel(e){if(2===this._os)switch(e){case 15:return"\u2190";case 16:return"\u2191";case 17:return"\u2192";case 18:return"\u2193"}return gi.kL.toString(e)}_getLabel(e){return e.isDuplicateModifierCase()?"":this._keyCodeToUILabel(e.keyCode)}_getAriaLabel(e){return e.isDuplicateModifierCase()?"":gi.kL.toString(e.keyCode)}_getElectronAccelerator(e){return gi.kL.toElectronAccelerator(e.keyCode)}_getUserSettingsLabel(e){if(e.isDuplicateModifierCase())return"";const t=gi.kL.toUserSettingsUS(e.keyCode);return t?t.toLowerCase():t}_getChordDispatch(e){return pi.getDispatchStr(e)}static getDispatchStr(e){if(e.isModifierKey())return null;let t="";return e.ctrlKey&&(t+="ctrl+"),e.shiftKey&&(t+="shift+"),e.altKey&&(t+="alt+"),e.metaKey&&(t+="meta+"),t+=gi.kL.toString(e.keyCode),t}_getSingleModifierChordDispatch(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"}static _scanCodeToKeyCode(e){const t=gi.Vd[e];if(-1!==t)return t;switch(e){case 10:return 31;case 11:return 32;case 12:return 33;case 13:return 34;case 14:return 35;case 15:return 36;case 16:return 37;case 17:return 38;case 18:return 39;case 19:return 40;case 20:return 41;case 21:return 42;case 22:return 43;case 23:return 44;case 24:return 45;case 25:return 46;case 26:return 47;case 27:return 48;case 28:return 49;case 29:return 50;case 30:return 51;case 31:return 52;case 32:return 53;case 33:return 54;case 34:return 55;case 35:return 56;case 36:return 22;case 37:return 23;case 38:return 24;case 39:return 25;case 40:return 26;case 41:return 27;case 42:return 28;case 43:return 29;case 44:return 30;case 45:return 21;case 51:return 88;case 52:return 86;case 53:return 92;case 54:return 94;case 55:return 93;case 56:return 0;case 57:return 85;case 58:return 95;case 59:return 91;case 60:return 87;case 61:return 89;case 62:return 90;case 106:return 97}return 0}static _toKeyCodeChord(e){if(!e)return null;if(e instanceof Ot.$M)return e;const t=this._scanCodeToKeyCode(e.scanCode);return 0===t?null:new Ot.$M(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,t)}static resolveKeybinding(e,t){const i=ui(e.chords.map((e=>this._toKeyCodeChord(e))));return i.length>0?[new pi(i,t)]:[]}}var _i=i(82611),vi=i(39040),bi=i(38015),Ci=i(73449),wi=i(36334),yi=i(55694),Si=i(20790),Li=i(52223),ki=i(51572),Di=i(51169);let Ni=[],xi=[],Ei=[];function Ii(e){!function(e,t,i){const n=function(e,t){return{id:e.id,mime:e.mime,filename:e.filename,extension:e.extension,filepattern:e.filepattern,firstline:e.firstline,userConfigured:t,filenameLowercase:e.filename?e.filename.toLowerCase():void 0,extensionLowercase:e.extension?e.extension.toLowerCase():void 0,filepatternLowercase:e.filepattern?(0,Li.Qc)(e.filepattern.toLowerCase()):void 0,filepatternOnPath:!!e.filepattern&&e.filepattern.indexOf(Di.KR.sep)>=0}}(e,t);Ni.push(n),n.userConfigured?Ei.push(n):xi.push(n);i&&!n.userConfigured&&Ni.forEach((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,">>")))}))}(e,!1,arguments.length>1&&void 0!==arguments[1]&&arguments[1])}function Ti(e,t){return function(e,t){let i;if(e)switch(e.scheme){case se.lg.file:i=e.fsPath;break;case se.lg.data:i=yi.Vb.parseMetaData(e).get(yi.Vb.META_DATA_LABEL);break;case se.lg.vscodeNotebookCell:i=void 0;break;default:i=e.path}if(!i)return[{id:"unknown",mime:ki.v.unknown}];i=i.toLowerCase();const n=(0,Di.EZ)(i),o=Mi(i,n,Ei);if(o)return[o,{id:w.bd,mime:ki.v.text}];const s=Mi(i,n,xi);if(s)return[s,{id:w.bd,mime:ki.v.text}];if(t){const e=function(e){(0,a.uS)(e)&&(e=e.substr(1));if(e.length>0)for(let t=Ni.length-1;t>=0;t--){const i=Ni[t];if(!i.firstline)continue;const n=e.match(i.firstline);if(n&&n.length>0)return i}return}(t);if(e)return[e,{id:w.bd,mime:ki.v.text}]}return[{id:"unknown",mime:ki.v.unknown}]}(e,t).map((e=>e.id))}function Mi(e,t,i){var n;let o,s,r;for(let a=i.length-1;a>=0;a--){const l=i[a];if(t===l.filenameLowercase){o=l;break}if(l.filepattern&&(!s||l.filepattern.length>s.filepattern.length)){const i=l.filepatternOnPath?e:t;(null===(n=l.filepatternLowercase)||void 0===n?void 0:n.call(l,i))&&(s=l)}l.extension&&(!r||l.extension.length>r.extension.length)&&t.endsWith(l.extensionLowercase)&&(r=l)}return o||(s||(r||void 0))}const Ai=Object.prototype.hasOwnProperty,Ri="vs.editor.nullLanguage";class Oi{constructor(){this._languageIdToLanguage=[],this._languageToLanguageId=new Map,this._register(Ri,0),this._register(w.bd,1),this._nextLanguageId=2}_register(e,t){this._languageIdToLanguage[t]=e,this._languageToLanguageId.set(e,t)}register(e){if(this._languageToLanguageId.has(e))return;const t=this._nextLanguageId++;this._register(e,t)}encodeLanguageId(e){return this._languageToLanguageId.get(e)||0}decodeLanguageId(e){return this._languageIdToLanguage[e]||Ri}}class Pi extends r.JT{constructor(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];super(),this._onDidChange=this._register(new re.Q5),this.onDidChange=this._onDidChange.event,Pi.instanceCount++,this._warnOnOverwrite=t,this.languageIdCodec=new Oi,this._dynamicLanguages=[],this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},e&&(this._initializeFromRegistry(),this._register(w.dQ.onDidChangeLanguages((e=>{this._initializeFromRegistry()}))))}dispose(){Pi.instanceCount--,super.dispose()}_initializeFromRegistry(){this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Ni=Ni.filter((e=>e.userConfigured)),xi=[];const e=[].concat(w.dQ.getLanguages()).concat(this._dynamicLanguages);this._registerLanguages(e)}_registerLanguages(e){for(const t of e)this._registerLanguage(t);this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach((e=>{const t=this._languages[e];t.name&&(this._nameMap[t.name]=t.identifier),t.aliases.forEach((e=>{this._lowercaseNameMap[e.toLowerCase()]=t.identifier})),t.mimetypes.forEach((e=>{this._mimeTypesMap[e]=t.identifier}))})),Gt.B.as(qt.IP.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds()),this._onDidChange.fire()}_registerLanguage(e){const t=e.id;let i;Ai.call(this._languages,t)?i=this._languages[t]:(this.languageIdCodec.register(t),i={identifier:t,name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[],icons:[]},this._languages[t]=i),this._mergeLanguage(i,e)}_mergeLanguage(e,t){const i=t.id;let n=null;if(Array.isArray(t.mimetypes)&&t.mimetypes.length>0&&(e.mimetypes.push(...t.mimetypes),n=t.mimetypes[0]),n||(n="text/x-".concat(i),e.mimetypes.push(n)),Array.isArray(t.extensions)){t.configuration?e.extensions=t.extensions.concat(e.extensions):e.extensions=e.extensions.concat(t.extensions);for(const e of t.extensions)Ii({id:i,mime:n,extension:e},this._warnOnOverwrite)}if(Array.isArray(t.filenames))for(const a of t.filenames)Ii({id:i,mime:n,filename:a},this._warnOnOverwrite),e.filenames.push(a);if(Array.isArray(t.filenamePatterns))for(const a of t.filenamePatterns)Ii({id:i,mime:n,filepattern:a},this._warnOnOverwrite);if("string"===typeof t.firstLine&&t.firstLine.length>0){let e=t.firstLine;"^"!==e.charAt(0)&&(e="^"+e);try{const t=new RegExp(e);(0,a.IO)(t)||Ii({id:i,mime:n,firstline:t},this._warnOnOverwrite)}catch(r){console.warn("[".concat(t.id,"]: Invalid regular expression `").concat(e,"`: "),r)}}e.aliases.push(i);let o=null;if("undefined"!==typeof t.aliases&&Array.isArray(t.aliases)&&(o=0===t.aliases.length?[null]:t.aliases),null!==o)for(const a of o)a&&0!==a.length&&e.aliases.push(a);const s=null!==o&&o.length>0;if(s&&null===o[0]);else{const t=(s?o[0]:null)||i;!s&&e.name||(e.name=t)}t.configuration&&e.configurationFiles.push(t.configuration),t.icon&&e.icons.push(t.icon)}isRegisteredLanguageId(e){return!!e&&Ai.call(this._languages,e)}getRegisteredLanguageIds(){return Object.keys(this._languages)}getLanguageIdByLanguageName(e){const t=e.toLowerCase();return Ai.call(this._lowercaseNameMap,t)?this._lowercaseNameMap[t]:null}getLanguageIdByMimeType(e){return e&&Ai.call(this._mimeTypesMap,e)?this._mimeTypesMap[e]:null}guessLanguageIdByFilepathOrFirstLine(e,t){return e||t?Ti(e,t):[]}}Pi.instanceCount=0;class Fi extends r.JT{constructor(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];super(),this._onDidRequestBasicLanguageFeatures=this._register(new re.Q5),this.onDidRequestBasicLanguageFeatures=this._onDidRequestBasicLanguageFeatures.event,this._onDidRequestRichLanguageFeatures=this._register(new re.Q5),this.onDidRequestRichLanguageFeatures=this._onDidRequestRichLanguageFeatures.event,this._onDidChange=this._register(new re.Q5({leakWarningThreshold:200})),this.onDidChange=this._onDidChange.event,this._requestedBasicLanguages=new Set,this._requestedRichLanguages=new Set,Fi.instanceCount++,this._registry=this._register(new Pi(!0,e)),this.languageIdCodec=this._registry.languageIdCodec,this._register(this._registry.onDidChange((()=>this._onDidChange.fire())))}dispose(){Fi.instanceCount--,super.dispose()}isRegisteredLanguageId(e){return this._registry.isRegisteredLanguageId(e)}getLanguageIdByLanguageName(e){return this._registry.getLanguageIdByLanguageName(e)}getLanguageIdByMimeType(e){return this._registry.getLanguageIdByMimeType(e)}guessLanguageIdByFilepathOrFirstLine(e,t){const i=this._registry.guessLanguageIdByFilepathOrFirstLine(e,t);return(0,_e.Xh)(i,null)}createById(e){return new Bi(this.onDidChange,(()=>this._createAndGetLanguageIdentifier(e)))}createByFilepathOrFirstLine(e,t){return new Bi(this.onDidChange,(()=>{const i=this.guessLanguageIdByFilepathOrFirstLine(e,t);return this._createAndGetLanguageIdentifier(i)}))}_createAndGetLanguageIdentifier(e){return e&&this.isRegisteredLanguageId(e)||(e=w.bd),e}requestBasicLanguageFeatures(e){this._requestedBasicLanguages.has(e)||(this._requestedBasicLanguages.add(e),this._onDidRequestBasicLanguageFeatures.fire(e))}requestRichLanguageFeatures(e){this._requestedRichLanguages.has(e)||(this._requestedRichLanguages.add(e),this.requestBasicLanguageFeatures(e),v.RW.getOrCreate(e),this._onDidRequestRichLanguageFeatures.fire(e))}}Fi.instanceCount=0;class Bi{constructor(e,t){this._onDidChangeLanguages=e,this._selector=t,this._listener=null,this._emitter=null,this.languageId=this._selector()}_dispose(){this._listener&&(this._listener.dispose(),this._listener=null),this._emitter&&(this._emitter.dispose(),this._emitter=null)}get onDidChange(){return this._listener||(this._listener=this._onDidChangeLanguages((()=>this._evaluate()))),this._emitter||(this._emitter=new re.Q5({onDidRemoveLastListener:()=>{this._dispose()}})),this._emitter.event}_evaluate(){var e;const t=this._selector();t!==this.languageId&&(this.languageId=t,null===(e=this._emitter)||void 0===e||e.fire(this.languageId))}}var zi=i(22337),Vi=i(69833),Wi=i(48489),Hi=i(21494),Ki=i(42606),Ui=i(48688),ji=i(65122),qi=i(66193),Gi=i(66561),Qi=i(62974),Zi=i(68406),Yi=i(62502),$i=i(43020);const Ji=/\(&([^\s&])\)|(^|[^&])&([^\s&])/,Xi=/(&)?(&)([^\s&])/g;var en,tn;!function(e){e[e.Right=0]="Right",e[e.Left=1]="Left"}(en||(en={})),function(e){e[e.Above=0]="Above",e[e.Below=1]="Below"}(tn||(tn={}));class nn extends ji.o{constructor(e,t,i,n){e.classList.add("monaco-menu-container"),e.setAttribute("role","presentation");const o=document.createElement("div");o.classList.add("monaco-menu"),o.setAttribute("role","presentation"),super(o,{orientation:1,actionViewItemProvider:e=>this.doGetActionViewItem(e,i,s),context:i.context,actionRunner:i.actionRunner,ariaLabel:i.ariaLabel,ariaRole:"menu",focusOnlyEnabledItems:!0,triggerKeys:{keys:[3,...ct.dz||ct.IJ?[10]:[]],keyDown:!0}}),this.menuStyles=n,this.menuElement=o,this.actionsList.tabIndex=0,this.initializeOrUpdateStyleSheet(e,n),this._register(Ui.o.addTarget(o)),this._register((0,oe.nm)(o,oe.tw.KEY_DOWN,(e=>{new Ct.y(e).equals(2)&&e.preventDefault()}))),i.enableMnemonics&&this._register((0,oe.nm)(o,oe.tw.KEY_DOWN,(e=>{const t=e.key.toLocaleLowerCase();if(this.mnemonics.has(t)){oe.zB.stop(e,!0);const i=this.mnemonics.get(t);if(1===i.length&&(i[0]instanceof sn&&i[0].container&&this.focusItemByElement(i[0].container),i[0].onClick(e)),i.length>1){const e=i.shift();e&&e.container&&(this.focusItemByElement(e.container),i.push(e)),this.mnemonics.set(t,i)}}}))),ct.IJ&&this._register((0,oe.nm)(o,oe.tw.KEY_DOWN,(e=>{const t=new Ct.y(e);t.equals(14)||t.equals(11)?(this.focusedItem=this.viewItems.length-1,this.focusNext(),oe.zB.stop(e,!0)):(t.equals(13)||t.equals(12))&&(this.focusedItem=0,this.focusPrevious(),oe.zB.stop(e,!0))}))),this._register((0,oe.nm)(this.domNode,oe.tw.MOUSE_OUT,(e=>{const t=e.relatedTarget;(0,oe.jg)(t,this.domNode)||(this.focusedItem=void 0,this.updateFocus(),e.stopPropagation())}))),this._register((0,oe.nm)(this.actionsList,oe.tw.MOUSE_OVER,(e=>{let t=e.target;if(t&&(0,oe.jg)(t,this.actionsList)&&t!==this.actionsList){for(;t.parentElement!==this.actionsList&&null!==t.parentElement;)t=t.parentElement;if(t.classList.contains("action-item")){const e=this.focusedItem;this.setFocusedItem(t),e!==this.focusedItem&&this.updateFocus()}}}))),this._register(Ui.o.addTarget(this.actionsList)),this._register((0,oe.nm)(this.actionsList,Ui.t.Tap,(e=>{let t=e.initialTarget;if(t&&(0,oe.jg)(t,this.actionsList)&&t!==this.actionsList){for(;t.parentElement!==this.actionsList&&null!==t.parentElement;)t=t.parentElement;if(t.classList.contains("action-item")){const e=this.focusedItem;this.setFocusedItem(t),e!==this.focusedItem&&this.updateFocus()}}})));const s={parent:this};this.mnemonics=new Map,this.scrollableElement=this._register(new Gi.s$(o,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));const r=this.scrollableElement.getDomNode();r.style.position="",this.styleScrollElement(r,n),this._register((0,oe.nm)(o,Ui.t.Change,(e=>{oe.zB.stop(e,!0);const t=this.scrollableElement.getScrollPosition().scrollTop;this.scrollableElement.setScrollPosition({scrollTop:t-e.translationY})}))),this._register((0,oe.nm)(r,oe.tw.MOUSE_UP,(e=>{e.preventDefault()})));const a=(0,oe.Jj)(e);o.style.maxHeight="".concat(Math.max(10,a.innerHeight-e.getBoundingClientRect().top-35),"px"),t=t.filter(((e,n)=>{var o;if(null===(o=i.submenuIds)||void 0===o?void 0:o.has(e.id))return console.warn("Found submenu cycle: ".concat(e.id)),!1;if(e instanceof zi.Z0){if(n===t.length-1||0===n)return!1;if(t[n-1]instanceof zi.Z0)return!1}return!0})),this.push(t,{icon:!0,label:!0,isMenu:!0}),e.appendChild(this.scrollableElement.getDomNode()),this.scrollableElement.scanDomNode(),this.viewItems.filter((e=>!(e instanceof rn))).forEach(((e,t,i)=>{e.updatePositionInSet(t+1,i.length)}))}initializeOrUpdateStyleSheet(e,t){this.styleSheet||((0,oe.OO)(e)?this.styleSheet=(0,oe.dS)(e):(nn.globalStyleSheet||(nn.globalStyleSheet=(0,oe.dS)()),this.styleSheet=nn.globalStyleSheet)),this.styleSheet.textContent=function(e,t){let i="\n.monaco-menu {\n\tfont-size: 13px;\n\tborder-radius: 5px;\n\tmin-width: 160px;\n}\n\n".concat(an(Qi.l.menuSelection),"\n").concat(an(Qi.l.menuSubmenu),"\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 .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\tcolor: var(--vscode-disabledForeground);\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 var(--vscode-menu-separatorBackground);\n\tpadding-top: 1px;\n\tpadding: 30px;\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\tmargin: 0 4px;\n\tborder-radius: 4px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .keybinding {\n\topacity: unset;\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\twidth: 100%;\n\theight: 0px !important;\n\topacity: 1;\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.hc-black .context-view.monaco-menu-container,\n.hc-light .context-view.monaco-menu-container,\n:host-context(.hc-black) .context-view.monaco-menu-container,\n:host-context(.hc-light) .context-view.monaco-menu-container {\n\tbox-shadow: none;\n}\n\n.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n.hc-light .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n:host-context(.hc-light) .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: 4px 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\theight: 2em;\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\tmargin: 5px 0 !important;\n\tpadding: 0;\n\tborder-radius: 0;\n}\n\n.linux .monaco-menu .monaco-action-bar.vertical .action-label.separator,\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.linux .monaco-menu .monaco-action-bar.vertical .submenu-indicator,\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}");if(t){i+="\n\t\t\t/* Arrows */\n\t\t\t.monaco-scrollable-element > .scrollbar > .scra {\n\t\t\t\tcursor: pointer;\n\t\t\t\tfont-size: 11px !important;\n\t\t\t}\n\n\t\t\t.monaco-scrollable-element > .visible {\n\t\t\t\topacity: 1;\n\n\t\t\t\t/* Background rule added for IE9 - to allow clicks on dom node */\n\t\t\t\tbackground:rgba(0,0,0,0);\n\n\t\t\t\ttransition: opacity 100ms linear;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .invisible {\n\t\t\t\topacity: 0;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .invisible.fade {\n\t\t\t\ttransition: opacity 800ms linear;\n\t\t\t}\n\n\t\t\t/* Scrollable Content Inset Shadow */\n\t\t\t.monaco-scrollable-element > .shadow {\n\t\t\t\tposition: absolute;\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .shadow.top {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 3px;\n\t\t\t\theight: 3px;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .shadow.left {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 3px;\n\t\t\t\tleft: 0;\n\t\t\t\theight: 100%;\n\t\t\t\twidth: 3px;\n\t\t\t}\n\t\t\t.monaco-scrollable-element > .shadow.top-left-corner {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\theight: 3px;\n\t\t\t\twidth: 3px;\n\t\t\t}\n\t\t";const t=e.scrollbarShadow;t&&(i+="\n\t\t\t\t.monaco-scrollable-element > .shadow.top {\n\t\t\t\t\tbox-shadow: ".concat(t," 0 6px 6px -6px inset;\n\t\t\t\t}\n\n\t\t\t\t.monaco-scrollable-element > .shadow.left {\n\t\t\t\t\tbox-shadow: ").concat(t," 6px 0 6px -6px inset;\n\t\t\t\t}\n\n\t\t\t\t.monaco-scrollable-element > .shadow.top.left {\n\t\t\t\t\tbox-shadow: ").concat(t," 6px 6px 6px -6px inset;\n\t\t\t\t}\n\t\t\t"));const n=e.scrollbarSliderBackground;n&&(i+="\n\t\t\t\t.monaco-scrollable-element > .scrollbar > .slider {\n\t\t\t\t\tbackground: ".concat(n,";\n\t\t\t\t}\n\t\t\t"));const o=e.scrollbarSliderHoverBackground;o&&(i+="\n\t\t\t\t.monaco-scrollable-element > .scrollbar > .slider:hover {\n\t\t\t\t\tbackground: ".concat(o,";\n\t\t\t\t}\n\t\t\t"));const s=e.scrollbarSliderActiveBackground;s&&(i+="\n\t\t\t\t.monaco-scrollable-element > .scrollbar > .slider.active {\n\t\t\t\t\tbackground: ".concat(s,";\n\t\t\t\t}\n\t\t\t"))}return i}(t,(0,oe.OO)(e))}styleScrollElement(e,t){var i,n;const o=null!==(i=t.foregroundColor)&&void 0!==i?i:"",s=null!==(n=t.backgroundColor)&&void 0!==n?n:"",r=t.borderColor?"1px solid ".concat(t.borderColor):"",a=t.shadowColor?"0 2px 8px ".concat(t.shadowColor):"";e.style.outline=r,e.style.borderRadius="5px",e.style.color=o,e.style.backgroundColor=s,e.style.boxShadow=a}getContainer(){return this.scrollableElement.getDomNode()}get onScroll(){return this.scrollableElement.onScroll}focusItemByElement(e){const t=this.focusedItem;this.setFocusedItem(e),t!==this.focusedItem&&this.updateFocus()}setFocusedItem(e){for(let t=0;t{this.element&&(this._register((0,oe.nm)(this.element,oe.tw.MOUSE_UP,(e=>{if(oe.zB.stop(e,!0),Ki.vU){if(new Hi.n((0,oe.Jj)(this.element),e).rightButton)return;this.onClick(e)}else setTimeout((()=>{this.onClick(e)}),0)}))),this._register((0,oe.nm)(this.element,oe.tw.CONTEXT_MENU,(e=>{oe.zB.stop(e,!0)}))))}),100),this._register(this.runOnceToEnableMouseUp)}render(e){super.render(e),this.element&&(this.container=e,this.item=(0,oe.R3)(this.element,(0,oe.$)("a.action-menu-item")),this._action.id===zi.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,oe.R3)(this.item,(0,oe.$)("span.menu-item-check"+Yi.k.asCSSSelector(Qi.l.menuSelection))),this.check.setAttribute("role","none"),this.label=(0,oe.R3)(this.item,(0,oe.$)("span.action-label")),this.options.label&&this.options.keybinding&&((0,oe.R3)(this.item,(0,oe.$)("span.keybinding")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked(),this.applyStyle())}blur(){super.blur(),this.applyStyle()}focus(){var e;super.focus(),null===(e=this.item)||void 0===e||e.focus(),this.applyStyle()}updatePositionInSet(e,t){this.item&&(this.item.setAttribute("aria-posinset","".concat(e)),this.item.setAttribute("aria-setsize","".concat(t)))}updateLabel(){var e;if(this.label&&this.options.label){(0,oe.PO)(this.label);let t=(0,$i.x$)(this.action.label);if(t){const i=function(e){const t=Ji,i=t.exec(e);if(!i)return e;const n=!i[1];return e.replace(t,n?"$2$3":"").trim()}(t);this.options.enableMnemonics||(t=i),this.label.setAttribute("aria-label",i.replace(/&&/g,"&"));const n=Ji.exec(t);if(n){t=a.YU(t),Xi.lastIndex=0;let i=Xi.exec(t);for(;i&&i[1];)i=Xi.exec(t);const o=e=>e.replace(/&&/g,"&");i?this.label.append(a.j3(o(t.substr(0,i.index))," "),(0,oe.$)("u",{"aria-hidden":"true"},i[3]),a.oL(o(t.substr(i.index+i[0].length))," ")):this.label.innerText=o(t).trim(),null===(e=this.item)||void 0===e||e.setAttribute("aria-keyshortcuts",(n[1]?n[1]:n[3]).toLocaleLowerCase())}else this.label.innerText=t.replace(/&&/g,"&").trim()}}}updateTooltip(){}updateClass(){this.cssClass&&this.item&&this.item.classList.remove(...this.cssClass.split(" ")),this.options.icon&&this.label?(this.cssClass=this.action.class||"",this.label.classList.add("icon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" ")),this.updateEnabled()):this.label&&this.label.classList.remove("icon")}updateEnabled(){this.action.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")))}updateChecked(){if(!this.item)return;const e=this.action.checked;this.item.classList.toggle("checked",!!e),void 0!==e?(this.item.setAttribute("role","menuitemcheckbox"),this.item.setAttribute("aria-checked",e?"true":"false")):(this.item.setAttribute("role","menuitem"),this.item.setAttribute("aria-checked",""))}getMnemonic(){return this.mnemonic}applyStyle(){const e=this.element&&this.element.classList.contains("focused"),t=e&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,i=e&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,n=e&&this.menuStyle.selectionBorderColor?"1px solid ".concat(this.menuStyle.selectionBorderColor):"",o=e&&this.menuStyle.selectionBorderColor?"-1px":"";this.item&&(this.item.style.color=null!==t&&void 0!==t?t:"",this.item.style.backgroundColor=null!==i&&void 0!==i?i:"",this.item.style.outline=n,this.item.style.outlineOffset=o),this.check&&(this.check.style.color=null!==t&&void 0!==t?t:"")}}class sn extends on{constructor(e,t,i,n,o){super(e,e,n,o),this.submenuActions=t,this.parentData=i,this.submenuOptions=n,this.mysubmenu=null,this.submenuDisposables=this._register(new r.SL),this.mouseOver=!1,this.expandDirection=n&&void 0!==n.expandDirection?n.expandDirection:{horizontal:en.Right,vertical:tn.Below},this.showScheduler=new ei.pY((()=>{this.mouseOver&&(this.cleanupExistingSubmenu(!1),this.createSubmenu(!1))}),250),this.hideScheduler=new ei.pY((()=>{this.element&&!(0,oe.jg)((0,oe.vY)(),this.element)&&this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))}),750)}render(e){super.render(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,oe.R3)(this.item,(0,oe.$)("span.submenu-indicator"+Yi.k.asCSSSelector(Qi.l.menuSubmenu))),this.submenuIndicator.setAttribute("aria-hidden","true")),this._register((0,oe.nm)(this.element,oe.tw.KEY_UP,(e=>{const t=new Ct.y(e);(t.equals(17)||t.equals(3))&&(oe.zB.stop(e,!0),this.createSubmenu(!0))}))),this._register((0,oe.nm)(this.element,oe.tw.KEY_DOWN,(e=>{const t=new Ct.y(e);(0,oe.vY)()===this.item&&(t.equals(17)||t.equals(3))&&oe.zB.stop(e,!0)}))),this._register((0,oe.nm)(this.element,oe.tw.MOUSE_OVER,(e=>{this.mouseOver||(this.mouseOver=!0,this.showScheduler.schedule())}))),this._register((0,oe.nm)(this.element,oe.tw.MOUSE_LEAVE,(e=>{this.mouseOver=!1}))),this._register((0,oe.nm)(this.element,oe.tw.FOCUS_OUT,(e=>{this.element&&!(0,oe.jg)((0,oe.vY)(),this.element)&&this.hideScheduler.schedule()}))),this._register(this.parentData.parent.onScroll((()=>{this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))}))))}updateEnabled(){}onClick(e){oe.zB.stop(e,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)}cleanupExistingSubmenu(e){if(this.parentData.submenu&&(e||this.parentData.submenu!==this.mysubmenu)){try{this.parentData.submenu.dispose()}catch(t){}this.parentData.submenu=void 0,this.updateAriaExpanded("false"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}calculateSubmenuMenuLayout(e,t,i,n){const o={top:0,left:0};return o.left=St(e.width,t.width,{position:n.horizontal===en.Right?0:1,offset:i.left,size:i.width}),o.left>=i.left&&o.left0&&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,oe.R3)(this.element,(0,oe.$)("div.monaco-submenu")),this.submenuContainer.classList.add("menubar-menu-items-holder","context-view");const t=(0,oe.Jj)(this.parentData.parent.domNode).getComputedStyle(this.parentData.parent.domNode),i=parseFloat(t.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 nn(this.submenuContainer,this.submenuActions.length?this.submenuActions:[new zi.eZ],this.submenuOptions,this.menuStyle);const n=this.element.getBoundingClientRect(),o={top:n.top-i,left:n.left,height:n.height+2*i,width:n.width},s=this.submenuContainer.getBoundingClientRect(),r=(0,oe.Jj)(this.element),{top:a,left:l}=this.calculateSubmenuMenuLayout(new oe.Ro(r.innerWidth,r.innerHeight),oe.Ro.lift(s),o,this.expandDirection);this.submenuContainer.style.left="".concat(l-s.left,"px"),this.submenuContainer.style.top="".concat(a-s.top,"px"),this.submenuDisposables.add((0,oe.nm)(this.submenuContainer,oe.tw.KEY_UP,(e=>{new Ct.y(e).equals(15)&&(oe.zB.stop(e,!0),this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0))}))),this.submenuDisposables.add((0,oe.nm)(this.submenuContainer,oe.tw.KEY_DOWN,(e=>{new Ct.y(e).equals(15)&&oe.zB.stop(e,!0)}))),this.submenuDisposables.add(this.parentData.submenu.onDidCancel((()=>{this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0)}))),this.parentData.submenu.focus(e),this.mysubmenu=this.parentData.submenu}}updateAriaExpanded(e){var t;this.item&&(null===(t=this.item)||void 0===t||t.setAttribute("aria-expanded",e))}applyStyle(){super.applyStyle();const e=this.element&&this.element.classList.contains("focused")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=null!==e&&void 0!==e?e:"")}dispose(){super.dispose(),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)}}class rn extends qi.gU{constructor(e,t,i,n){super(e,t,i),this.menuStyles=n}render(e){super.render(e),this.label&&(this.label.style.borderBottomColor=this.menuStyles.separatorColor?"".concat(this.menuStyles.separatorColor):"")}}function an(e){const t=(0,Zi.u)()[e.id];return".codicon-".concat(e.id,":before { content: '\\").concat(t.toString(16),"'; }")}var ln=i(29581);class hn{constructor(e,t,i,n){this.contextViewService=e,this.telemetryService=t,this.notificationService=i,this.keybindingService=n,this.focusToReturn=null,this.lastContainer=null,this.block=null,this.blockDisposable=null,this.options={blockMouse:!0}}configure(e){this.options=e}showContextMenu(e){const t=e.getActions();if(!t.length)return;let i;this.focusToReturn=(0,oe.vY)();const n=e.domForShadowRoot instanceof HTMLElement?e.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:()=>e.getAnchor(),canRelayout:!1,anchorAlignment:e.anchorAlignment,anchorAxisAlignment:e.anchorAxisAlignment,render:n=>{var o;this.lastContainer=n;const s=e.getMenuClassName?e.getMenuClassName():"";s&&(n.className+=" "+s),this.options.blockMouse&&(this.block=n.appendChild((0,oe.$)(".context-view-block")),this.block.style.position="fixed",this.block.style.cursor="initial",this.block.style.left="0",this.block.style.top="0",this.block.style.width="100%",this.block.style.height="100%",this.block.style.zIndex="-1",null===(o=this.blockDisposable)||void 0===o||o.dispose(),this.blockDisposable=(0,oe.nm)(this.block,oe.tw.MOUSE_DOWN,(e=>e.stopPropagation())));const a=new r.SL,l=e.actionRunner||new zi.Wi;l.onWillRun((t=>this.onActionRun(t,!e.skipTelemetry)),this,a),l.onDidRun(this.onDidActionRun,this,a),i=new nn(n,t,{actionViewItemProvider:e.getActionViewItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:l,getKeyBinding:e.getKeyBinding?e.getKeyBinding:e=>this.keybindingService.lookupKeybinding(e.id)},ln.ZR),i.onDidCancel((()=>this.contextViewService.hideContextView(!0)),null,a),i.onDidBlur((()=>this.contextViewService.hideContextView(!0)),null,a);const h=(0,oe.Jj)(n);return a.add((0,oe.nm)(h,oe.tw.BLUR,(()=>this.contextViewService.hideContextView(!0)))),a.add((0,oe.nm)(h,oe.tw.MOUSE_DOWN,(e=>{if(e.defaultPrevented)return;const t=new Hi.n(h,e);let i=t.target;if(!t.rightButton){for(;i;){if(i===n)return;i=i.parentElement}this.contextViewService.hideContextView(!0)}}))),(0,r.F8)(a,i)},focus:()=>{null===i||void 0===i||i.focus(!!e.autoSelectFirstItem)},onHide:t=>{var i,n,o;null===(i=e.onHide)||void 0===i||i.call(e,!!t),this.block&&(this.block.remove(),this.block=null),null===(n=this.blockDisposable)||void 0===n||n.dispose(),this.blockDisposable=null,this.lastContainer&&((0,oe.vY)()===this.lastContainer||(0,oe.jg)((0,oe.vY)(),this.lastContainer))&&(null===(o=this.focusToReturn)||void 0===o||o.focus()),this.lastContainer=null}},n,!!n)}onActionRun(e,t){t&&this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.action.id,from:"contextMenu"}),this.contextViewService.hideContextView(!1)}onDidActionRun(e){e.error&&!(0,Le.n2)(e.error)&&this.notificationService.error(e.error)}}var dn=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},cn=function(e,t){return function(i,n){t(i,n,e)}};let un=class extends r.JT{get contextMenuHandler(){return this._contextMenuHandler||(this._contextMenuHandler=new hn(this.contextViewService,this.telemetryService,this.notificationService,this.keybindingService)),this._contextMenuHandler}constructor(e,t,i,n,o,s){super(),this.telemetryService=e,this.notificationService=t,this.contextViewService=i,this.keybindingService=n,this.menuService=o,this.contextKeyService=s,this._contextMenuHandler=void 0,this._onDidShowContextMenu=this._store.add(new re.Q5),this.onDidShowContextMenu=this._onDidShowContextMenu.event,this._onDidHideContextMenu=this._store.add(new re.Q5)}configure(e){this.contextMenuHandler.configure(e)}showContextMenu(e){e=gn.transform(e,this.menuService,this.contextKeyService),this.contextMenuHandler.showContextMenu({...e,onHide:t=>{var i;null===(i=e.onHide)||void 0===i||i.call(e,t),this._onDidHideContextMenu.fire()}}),oe._q.getInstance().resetKeyStatus(),this._onDidShowContextMenu.fire()}};var gn;un=dn([cn(0,bi.b),cn(1,xe.lT),cn(2,ot.u),cn(3,st.d),cn(4,Wi.co),cn(5,ue.i6)],un),function(e){e.transform=function(e,t,i){if(!((n=e)&&n.menuId instanceof Wi.eH))return e;var n;const{menuId:o,menuActionOptions:s,contextKeyService:r}=e;return{...e,getActions:()=>{const n=[];if(o){const e=t.createMenu(o,null!==r&&void 0!==r?r:i);(0,Vi.LJ)(e,s,n),e.dispose()}return e.getActions?zi.Z0.join(e.getActions(),n):n}}}}(gn||(gn={}));var mn,fn=i(16113),pn=i(61423);!function(e){e[e.API=0]="API",e[e.USER=1]="USER"}(mn||(mn={}));var _n=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},vn=function(e,t){return function(i,n){t(i,n,e)}};let bn=class{constructor(e){this._commandService=e}async open(e,t){if(!(0,se.xn)(e,se.lg.command))return!1;if(!(null===t||void 0===t?void 0:t.allowCommands))return!0;if("string"===typeof e&&(e=l.o.parse(e)),Array.isArray(t.allowCommands)&&!t.allowCommands.includes(e.path))return!0;let i=[];try{i=(0,pn.Qc)(decodeURIComponent(e.query))}catch(n){try{i=(0,pn.Qc)(e.query)}catch(o){}}return Array.isArray(i)||(i=[i]),await this._commandService.executeCommand(e.path,...i),!0}};bn=_n([vn(0,Kt.H)],bn);let Cn=class{constructor(e){this._editorService=e}async open(e,t){"string"===typeof e&&(e=l.o.parse(e));const{selection:i,uri:n}=(0,lt.x)(e);return(e=n).scheme===se.lg.file&&(e=(0,yi.AH)(e)),await this._editorService.openCodeEditor({resource:e,options:{selection:i,source:(null===t||void 0===t?void 0:t.fromUserGesture)?mn.USER:mn.API,...null===t||void 0===t?void 0:t.editorOptions}},this._editorService.getFocusedCodeEditor(),null===t||void 0===t?void 0:t.openToSide),!0}};Cn=_n([vn(0,c.$)],Cn);let wn=class{constructor(e,t){this._openers=new ae.S,this._validators=new ae.S,this._resolvers=new ae.S,this._resolvedUriTargets=new Ut.Y9((e=>e.with({path:null,fragment:null,query:null}).toString())),this._externalOpeners=new ae.S,this._defaultExternalOpener={openExternal:async e=>((0,se.Gs)(e,se.lg.http,se.lg.https)?oe.V3(e):s.E.location.href=e,!0)},this._openers.push({open:async(e,t)=>!(!(null===t||void 0===t?void 0:t.openExternal)&&!(0,se.Gs)(e,se.lg.mailto,se.lg.http,se.lg.https,se.lg.vsls))&&(await this._doOpenExternal(e,t),!0)}),this._openers.push(new bn(t)),this._openers.push(new Cn(e))}registerOpener(e){return{dispose:this._openers.unshift(e)}}async open(e,t){var i;const n="string"===typeof e?l.o.parse(e):e,o=null!==(i=this._resolvedUriTargets.get(n))&&void 0!==i?i:e;for(const s of this._validators)if(!await s.shouldOpen(o,t))return!1;for(const s of this._openers){if(await s.open(e,t))return!0}return!1}async resolveExternalUri(e,t){for(const n of this._resolvers)try{const i=await n.resolveExternalUri(e,t);if(i)return this._resolvedUriTargets.has(i.resolved)||this._resolvedUriTargets.set(i.resolved,e),i}catch(i){}throw new Error("Could not resolve external URI: "+e.toString())}async _doOpenExternal(e,t){const i="string"===typeof e?l.o.parse(e):e;let n,o;try{n=(await this.resolveExternalUri(i,t)).resolved}catch(s){n=i}if(o="string"===typeof e&&i.toString()===n.toString()?e:encodeURI(n.toString(!0)),null===t||void 0===t?void 0:t.allowContributedOpeners){const e="string"===typeof(null===t||void 0===t?void 0:t.allowContributedOpeners)?null===t||void 0===t?void 0:t.allowContributedOpeners:void 0;for(const t of this._externalOpeners){if(await t.openExternal(o,{sourceUri:i,preferredOpenerId:e},fn.T.None))return!0}}return this._defaultExternalOpener.openExternal(o,{sourceUri:i},fn.T.None)}dispose(){this._validators.clear()}};wn=_n([vn(0,c.$),vn(1,Kt.H)],wn);var yn=i(60918),Sn=i(41911),Ln=i(36729),kn=i(99927),Dn=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Nn=function(e,t){return function(i,n){t(i,n,e)}};let xn=class extends r.JT{constructor(e,t){super(),this._markerService=t,this._onDidChangeMarker=this._register(new re.Q5),this._markerDecorations=new Ut.Y9,e.getModels().forEach((e=>this._onModelAdded(e))),this._register(e.onModelAdded(this._onModelAdded,this)),this._register(e.onModelRemoved(this._onModelRemoved,this)),this._register(this._markerService.onMarkerChanged(this._handleMarkerChange,this))}dispose(){super.dispose(),this._markerDecorations.forEach((e=>e.dispose())),this._markerDecorations.clear()}getMarker(e,t){const i=this._markerDecorations.get(e);return i&&i.getMarker(t)||null}_handleMarkerChange(e){e.forEach((e=>{const t=this._markerDecorations.get(e);t&&this._updateDecorations(t)}))}_onModelAdded(e){const t=new En(e);this._markerDecorations.set(e.uri,t),this._updateDecorations(t)}_onModelRemoved(e){var t;const i=this._markerDecorations.get(e.uri);i&&(i.dispose(),this._markerDecorations.delete(e.uri)),e.uri.scheme!==se.lg.inMemory&&e.uri.scheme!==se.lg.internal&&e.uri.scheme!==se.lg.vscode||null===(t=this._markerService)||void 0===t||t.read({resource:e.uri}).map((e=>e.owner)).forEach((t=>this._markerService.remove(t,[e.uri])))}_updateDecorations(e){const t=this._markerService.read({resource:e.model.uri,take:500});e.update(t)&&this._onDidChangeMarker.fire(e.model)}};xn=Dn([Nn(0,L.q),Nn(1,Sn.lT)],xn);class En extends r.JT{constructor(e){super(),this.model=e,this._map=new Ut.YQ,this._register((0,r.OF)((()=>{this.model.deltaDecorations([...this._map.values()],[]),this._map.clear()})))}update(e){const{added:t,removed:i}=(0,kn.q)(new Set(this._map.keys()),new Set(e));if(0===t.length&&0===i.length)return!1;const n=i.map((e=>this._map.get(e))),o=t.map((e=>({range:this._createDecorationRange(this.model,e),options:this._createDecorationOption(e)}))),s=this.model.deltaDecorations(n,o);for(const r of i)this._map.delete(r);for(let r=0;r=t)return i;const n=e.getWordAtPosition(i.getStartPosition());n&&(i=new Vt.e(i.startLineNumber,n.startColumn,i.endLineNumber,n.endColumn))}else if(t.endColumn===Number.MAX_VALUE&&1===t.startColumn&&i.startLineNumber===i.endLineNumber){const n=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);n=0}}var In,Tn=i(11974),Mn=i(22659),An=i(88975),Rn=i(48367),On=i(29193),Pn=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Fn=function(e,t){return function(i,n){t(i,n,e)}};function Bn(e){return e.toString()}class zn{constructor(e,t,i){this.model=e,this._modelEventListeners=new r.SL,this.model=e,this._modelEventListeners.add(e.onWillDispose((()=>t(e)))),this._modelEventListeners.add(e.onDidChangeLanguage((t=>i(e,t))))}dispose(){this._modelEventListeners.dispose()}}const Vn=ct.IJ||ct.dz?1:2;class Wn{constructor(e,t,i,n,o,s,r,a){this.uri=e,this.initialUndoRedoSnapshot=t,this.time=i,this.sharesUndoRedoStack=n,this.heapSize=o,this.sha1=s,this.versionId=r,this.alternativeVersionId=a}}let Hn=In=class extends r.JT{constructor(e,t,i,n,o){super(),this._configurationService=e,this._resourcePropertiesService=t,this._undoRedoService=i,this._languageService=n,this._languageConfigurationService=o,this._onModelAdded=this._register(new re.Q5),this.onModelAdded=this._onModelAdded.event,this._onModelRemoved=this._register(new re.Q5),this.onModelRemoved=this._onModelRemoved.event,this._onModelModeChanged=this._register(new re.Q5),this.onModelLanguageChanged=this._onModelModeChanged.event,this._modelCreationOptionsByLanguageAndResource=Object.create(null),this._models={},this._disposedModels=new Map,this._disposedModelsHeapSize=0,this._register(this._configurationService.onDidChangeConfiguration((e=>this._updateModelOptions(e)))),this._updateModelOptions(void 0)}static _readModelOptions(e,t){var i;let n=An.D.tabSize;if(e.editor&&"undefined"!==typeof e.editor.tabSize){const t=parseInt(e.editor.tabSize,10);isNaN(t)||(n=t),n<1&&(n=1)}let o="tabSize";if(e.editor&&"undefined"!==typeof e.editor.indentSize&&"tabSize"!==e.editor.indentSize){const t=parseInt(e.editor.indentSize,10);isNaN(t)||(o=Math.max(t,1))}let s=An.D.insertSpaces;e.editor&&"undefined"!==typeof e.editor.insertSpaces&&(s="false"!==e.editor.insertSpaces&&Boolean(e.editor.insertSpaces));let r=Vn;const a=e.eol;"\r\n"===a?r=2:"\n"===a&&(r=1);let l=An.D.trimAutoWhitespace;e.editor&&"undefined"!==typeof e.editor.trimAutoWhitespace&&(l="false"!==e.editor.trimAutoWhitespace&&Boolean(e.editor.trimAutoWhitespace));let h=An.D.detectIndentation;e.editor&&"undefined"!==typeof e.editor.detectIndentation&&(h="false"!==e.editor.detectIndentation&&Boolean(e.editor.detectIndentation));let d=An.D.largeFileOptimizations;e.editor&&"undefined"!==typeof e.editor.largeFileOptimizations&&(d="false"!==e.editor.largeFileOptimizations&&Boolean(e.editor.largeFileOptimizations));let c=An.D.bracketPairColorizationOptions;return(null===(i=e.editor)||void 0===i?void 0:i.bracketPairColorization)&&"object"===typeof e.editor.bracketPairColorization&&(c={enabled:!!e.editor.bracketPairColorization.enabled,independentColorPoolPerBracketType:!!e.editor.bracketPairColorization.independentColorPoolPerBracketType}),{isForSimpleWidget:t,tabSize:n,indentSize:o,insertSpaces:s,detectIndentation:h,defaultEOL:r,trimAutoWhitespace:l,largeFileOptimizations:d,bracketPairColorizationOptions:c}}_getEOL(e,t){if(e)return this._resourcePropertiesService.getEOL(e,t);const i=this._configurationService.getValue("files.eol",{overrideIdentifier:t});return i&&"string"===typeof i&&"auto"!==i?i:3===ct.OS||2===ct.OS?"\n":"\r\n"}_shouldRestoreUndoStack(){const e=this._configurationService.getValue("files.restoreUndoStack");return"boolean"!==typeof e||e}getCreationOptions(e,t,i){const n="string"===typeof e?e:e.languageId;let o=this._modelCreationOptionsByLanguageAndResource[n+t];if(!o){const e=this._configurationService.getValue("editor",{overrideIdentifier:n,resource:t}),s=this._getEOL(t,n);o=In._readModelOptions({editor:e,eol:s},i),this._modelCreationOptionsByLanguageAndResource[n+t]=o}return o}_updateModelOptions(e){const t=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const i=Object.keys(this._models);for(let n=0,o=i.length;ne){const t=[];for(this._disposedModels.forEach((e=>{e.sharesUndoRedoStack||t.push(e)})),t.sort(((e,t)=>e.time-t.time));t.length>0&&this._disposedModelsHeapSize>e;){const e=t.shift();this._removeDisposedModel(e.uri),null!==e.initialUndoRedoSnapshot&&this._undoRedoService.restoreSnapshot(e.initialUndoRedoSnapshot)}}}_createModelData(e,t,i,n){const o=this.getCreationOptions(t,i,n),s=new Mn.yO(e,t,o,i,this._undoRedoService,this._languageService,this._languageConfigurationService);if(i&&this._disposedModels.has(Bn(i))){const e=this._removeDisposedModel(i),t=this._undoRedoService.getElements(i),n=this._getSHA1Computer(),o=!!n.canComputeSHA1(s)&&n.computeSHA1(s)===e.sha1;if(o||e.sharesUndoRedoStack){for(const e of t.past)(0,On.e9)(e)&&e.matchesResource(i)&&e.setModel(s);for(const e of t.future)(0,On.e9)(e)&&e.matchesResource(i)&&e.setModel(s);this._undoRedoService.setElementsValidFlag(i,!0,(e=>(0,On.e9)(e)&&e.matchesResource(i))),o&&(s._overwriteVersionId(e.versionId),s._overwriteAlternativeVersionId(e.alternativeVersionId),s._overwriteInitialUndoRedoSnapshot(e.initialUndoRedoSnapshot))}else null!==e.initialUndoRedoSnapshot&&this._undoRedoService.restoreSnapshot(e.initialUndoRedoSnapshot)}const r=Bn(s.uri);if(this._models[r])throw new Error("ModelService: Cannot add model because it already exists!");const a=new zn(s,(e=>this._onWillDispose(e)),((e,t)=>this._onDidChangeLanguage(e,t)));return this._models[r]=a,a}createModel(e,t,i){let n,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return n=t?this._createModelData(e,t,i,o):this._createModelData(e,w.bd,i,o),this._onModelAdded.fire(n.model),n.model}getModels(){const e=[],t=Object.keys(this._models);for(let i=0,n=t.length;i0||t.future.length>0){for(const i of t.past)(0,On.e9)(i)&&i.matchesResource(e.uri)&&(o=!0,s+=i.heapSize(e.uri),i.setModel(e.uri));for(const i of t.future)(0,On.e9)(i)&&i.matchesResource(e.uri)&&(o=!0,s+=i.heapSize(e.uri),i.setModel(e.uri))}}const r=In.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK,a=this._getSHA1Computer();if(o)if(n||!(s>r)&&a.canComputeSHA1(e))this._ensureDisposedModelsHeapSize(r-s),this._undoRedoService.setElementsValidFlag(e.uri,!1,(t=>(0,On.e9)(t)&&t.matchesResource(e.uri))),this._insertDisposedModel(new Wn(e.uri,i.model.getInitialUndoRedoSnapshot(),Date.now(),n,s,a.computeSHA1(e),e.getVersionId(),e.getAlternativeVersionId()));else{const e=i.model.getInitialUndoRedoSnapshot();null!==e&&this._undoRedoService.restoreSnapshot(e)}else if(!n){const e=i.model.getInitialUndoRedoSnapshot();null!==e&&this._undoRedoService.restoreSnapshot(e)}delete this._models[t],i.dispose(),delete this._modelCreationOptionsByLanguageAndResource[e.getLanguageId()+e.uri],this._onModelRemoved.fire(e)}_onDidChangeLanguage(e,t){const i=t.oldLanguage,n=e.getLanguageId(),o=this.getCreationOptions(i,e.uri,e.isForSimpleWidget),s=this.getCreationOptions(n,e.uri,e.isForSimpleWidget);In._setModelOptionsForModel(e,s,o),this._onModelModeChanged.fire({model:e,oldLanguageId:i})}_getSHA1Computer(){return new Kn}};Hn.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20971520,Hn=In=Pn([Fn(0,V.Ui),Fn(1,Ht.y),Fn(2,Ee.tJ),Fn(3,b.O),Fn(4,C.c_)],Hn);class Kn{canComputeSHA1(e){return e.getValueLength()<=Kn.MAX_MODEL_SIZE}computeSHA1(e){const t=new Rn.yP,i=e.createSnapshot();let n;for(;n=i.read();)t.update(n);return t.digest()}}Kn.MAX_MODEL_SIZE=10485760;var Un=i(53643),jn=i(35786),qn=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Gn=function(e,t){return function(i,n){t(i,n,e)}};let Qn=class extends r.JT{constructor(e,t){super(),this.quickInputService=e,this.instantiationService=t,this.registry=Gt.B.as(Un.IP.Quickaccess),this.mapProviderToDescriptor=new Map,this.lastAcceptedPickerValues=new Map,this.visibleQuickAccess=void 0}show(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;this.doShowOrPick(e,!1,t)}doShowOrPick(e,t,i){var n,o,s;const[a,l]=this.getOrInstantiateProvider(e),h=this.visibleQuickAccess,d=null===h||void 0===h?void 0:h.descriptor;if(h&&l&&d===l)return e===l.prefix||(null===i||void 0===i?void 0:i.preserveValue)||(h.picker.value=e),void this.adjustValueSelection(h.picker,l,i);if(l&&!(null===i||void 0===i?void 0:i.preserveValue)){let t;if(h&&d&&d!==l){const e=h.value.substr(d.prefix.length);e&&(t="".concat(l.prefix).concat(e))}if(!t){const e=null===a||void 0===a?void 0:a.defaultFilterValue;e===Un.Ry.LAST?t=this.lastAcceptedPickerValues.get(l):"string"===typeof e&&(t="".concat(l.prefix).concat(e))}"string"===typeof t&&(e=t)}const c=null===(n=null===h||void 0===h?void 0:h.picker)||void 0===n?void 0:n.valueSelection,u=null===(o=null===h||void 0===h?void 0:h.picker)||void 0===o?void 0:o.value,g=new r.SL,m=g.add(this.quickInputService.createQuickPick());let f;m.value=e,this.adjustValueSelection(m,l,i),m.placeholder=null===l||void 0===l?void 0:l.placeholder,m.quickNavigate=null===i||void 0===i?void 0:i.quickNavigateConfiguration,m.hideInput=!!m.quickNavigate&&!h,("number"===typeof(null===i||void 0===i?void 0:i.itemActivation)||(null===i||void 0===i?void 0:i.quickNavigateConfiguration))&&(m.itemActivation=null!==(s=null===i||void 0===i?void 0:i.itemActivation)&&void 0!==s?s:jn.jG.SECOND),m.contextKey=null===l||void 0===l?void 0:l.contextKey,m.filterValue=e=>e.substring(l?l.prefix.length:0),t&&(f=new ei.CR,g.add(re.ju.once(m.onWillAccept)((e=>{e.veto(),m.hide()})))),g.add(this.registerPickerListeners(m,a,l,e,null===i||void 0===i?void 0:i.providerOptions));const p=g.add(new fn.A);return a&&g.add(a.provide(m,p.token,null===i||void 0===i?void 0:i.providerOptions)),re.ju.once(m.onDidHide)((()=>{0===m.selectedItems.length&&p.cancel(),g.dispose(),null===f||void 0===f||f.complete(m.selectedItems.slice(0))})),m.show(),c&&u===e&&(m.valueSelection=c),t?null===f||void 0===f?void 0:f.p:void 0}adjustValueSelection(e,t,i){var n;let o;o=(null===i||void 0===i?void 0:i.preserveValue)?[e.value.length,e.value.length]:[null!==(n=null===t||void 0===t?void 0:t.prefix.length)&&void 0!==n?n:0,e.value.length],e.valueSelection=o}registerPickerListeners(e,t,i,n,o){const s=new r.SL,a=this.visibleQuickAccess={picker:e,descriptor:i,value:n};return s.add((0,r.OF)((()=>{a===this.visibleQuickAccess&&(this.visibleQuickAccess=void 0)}))),s.add(e.onDidChangeValue((e=>{const[i]=this.getOrInstantiateProvider(e);i!==t?this.show(e,{preserveValue:!0,providerOptions:o}):a.value=e}))),i&&s.add(e.onDidAccept((()=>{this.lastAcceptedPickerValues.set(i,e.value)}))),s}getOrInstantiateProvider(e){const t=this.registry.getQuickAccessProvider(e);if(!t)return[void 0,void 0];let i=this.mapProviderToDescriptor.get(t);return i||(i=this.instantiationService.createInstance(t.ctor),this.mapProviderToDescriptor.set(t,i)),[i,t]}};Qn=qn([Gn(0,jn.eJ),Gn(1,ve.TG)],Qn);var Zn=i(79242),Yn=i(3640),$n=i(76272),Jn=i(58276),Xn=i(30333),eo=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r};class to{constructor(e){this.nodes=e}toString(){return this.nodes.map((e=>"string"===typeof e?e:e.label)).join("")}}eo([Xn.H],to.prototype,"toString",null);const io=/\[([^\]]+)\]\(((?:https?:\/\/|command:|file:)[^\)\s]+)(?: (["'])(.+?)(\3))?\)/gi;const no={},oo=new Jn.R("quick-input-button-icon-");function so(e,t,i){let n=e.iconClass||function(e){if(!e)return;let t;const i=e.dark.toString();return no[i]?t=no[i]:(t=oo.nextId(),oe.fk(".".concat(t,", .hc-light .").concat(t),"background-image: ".concat(oe.wY(e.light||e.dark))),oe.fk(".vs-dark .".concat(t,", .hc-black .").concat(t),"background-image: ".concat(oe.wY(e.dark))),no[i]=t),t}(e.iconPath);return e.alwaysVisible&&(n=n?"".concat(n," always-visible"):"always-visible"),{id:t,label:"",tooltip:e.tooltip||"",class:n,enabled:!0,run:i}}function ro(e,t,i){oe.mc(t);const n=function(e){const t=[];let i,n=0;for(;i=io.exec(e);){i.index-n>0&&t.push(e.substring(n,i.index));const[,o,s,,r]=i;r?t.push({label:o,href:s,title:r}):t.push({label:o,href:s}),n=i.index+i[0].length}return n{oe.cl(e)&&oe.zB.stop(e,!0),i.callback(s.href)},a=i.disposables.add(new Yn.Y(n,oe.tw.CLICK)).event,l=i.disposables.add(new Yn.Y(n,oe.tw.KEY_DOWN)).event,h=re.ju.chain(l,(e=>e.filter((e=>{const t=new Ct.y(e);return t.equals(10)||t.equals(3)}))));i.disposables.add(Ui.o.addTarget(n));const d=i.disposables.add(new Yn.Y(n,Ui.t.Tap)).event;re.ju.any(a,d,h)(r,null,i.disposables),t.appendChild(n)}}var ao=i(51927),lo=i(25938),ho=i(75404),co=i(75826),uo=i(73187);const go=new uo.o((()=>{const e=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});return{collator:e,collatorIsNumeric:e.resolvedOptions().numeric}}));new uo.o((()=>({collator:new Intl.Collator(void 0,{numeric:!0})}))),new uo.o((()=>({collator:new Intl.Collator(void 0,{numeric:!0,sensitivity:"accent"})})));function mo(e,t,i){const n=e.toLowerCase(),o=t.toLowerCase(),s=function(e,t,i){const n=e.toLowerCase(),o=t.toLowerCase(),s=n.startsWith(i),r=o.startsWith(i);if(s!==r)return s?-1:1;if(s&&r){if(n.lengtho.length)return 1}return 0}(e,t,i);if(s)return s;const r=n.endsWith(i);if(r!==o.endsWith(i))return r?-1:1;const a=function(e,t){const i=e||"",n=t||"",o=go.value.collator.compare(i,n);return go.value.collatorIsNumeric&&0===o&&i!==n?i=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},vo=function(e,t){return function(i,n){t(i,n,e)}};const bo=oe.$;var Co,wo;!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",e[e.NextSeparator=8]="NextSeparator",e[e.PreviousSeparator=9]="PreviousSeparator"}(Co||(Co={}));class yo{constructor(e,t,i){this.index=e,this.hasCheckbox=t,this._hidden=!1,this._init=new uo.o((()=>{var e;const t=null!==(e=i.label)&&void 0!==e?e:"",n=(0,$i.Ho)(t).text.trim(),o=i.ariaLabel||[t,this.saneDescription,this.saneDetail].map((e=>(0,$i.JL)(e))).filter((e=>!!e)).join(", ");return{saneLabel:t,saneSortLabel:n,saneAriaLabel:o}})),this._saneDescription=i.description,this._saneTooltip=i.tooltip}get saneLabel(){return this._init.value.saneLabel}get saneSortLabel(){return this._init.value.saneSortLabel}get saneAriaLabel(){return this._init.value.saneAriaLabel}get element(){return this._element}set element(e){this._element=e}get hidden(){return this._hidden}set hidden(e){this._hidden=e}get saneDescription(){return this._saneDescription}set saneDescription(e){this._saneDescription=e}get saneDetail(){return this._saneDetail}set saneDetail(e){this._saneDetail=e}get saneTooltip(){return this._saneTooltip}set saneTooltip(e){this._saneTooltip=e}get labelHighlights(){return this._labelHighlights}set labelHighlights(e){this._labelHighlights=e}get descriptionHighlights(){return this._descriptionHighlights}set descriptionHighlights(e){this._descriptionHighlights=e}get detailHighlights(){return this._detailHighlights}set detailHighlights(e){this._detailHighlights=e}}class So extends yo{constructor(e,t,i,n,o,s){var r,a,l;super(e,t,o),this.fireButtonTriggered=i,this._onChecked=n,this.item=o,this._separator=s,this._checked=!1,this.onChecked=t?re.ju.map(re.ju.filter(this._onChecked.event,(e=>e.element===this)),(e=>e.checked)):re.ju.None,this._saneDetail=o.detail,this._labelHighlights=null===(r=o.highlights)||void 0===r?void 0:r.label,this._descriptionHighlights=null===(a=o.highlights)||void 0===a?void 0:a.description,this._detailHighlights=null===(l=o.highlights)||void 0===l?void 0:l.detail}get separator(){return this._separator}set separator(e){this._separator=e}get checked(){return this._checked}set checked(e){e!==this._checked&&(this._checked=e,this._onChecked.fire({element:this,checked:e}))}get checkboxDisabled(){return!!this.item.disabled}}!function(e){e[e.NONE=0]="NONE",e[e.MOUSE_HOVER=1]="MOUSE_HOVER",e[e.ACTIVE_ITEM=2]="ACTIVE_ITEM"}(wo||(wo={}));class Lo extends yo{constructor(e,t,i){super(e,!1,i),this.fireSeparatorButtonTriggered=t,this.separator=i,this.children=new Array,this.focusInsideSeparator=wo.NONE}}class ko{getHeight(e){return e instanceof Lo?30:e.saneDetail?44:22}getTemplateId(e){return e instanceof So?xo.ID:Eo.ID}}class Do{getWidgetAriaLabel(){return(0,De.NC)("quickInput","Quick Input")}getAriaLabel(e){var t;return(null===(t=e.separator)||void 0===t?void 0:t.label)?"".concat(e.saneAriaLabel,", ").concat(e.separator.label):e.saneAriaLabel}getWidgetRole(){return"listbox"}getRole(e){return e.hasCheckbox?"checkbox":"option"}isChecked(e){if(e.hasCheckbox&&e instanceof So)return{value:e.checked,onDidChange:e.onChecked}}}class No{constructor(e){this.hoverDelegate=e}renderTemplate(e){const t=Object.create(null);t.toDisposeElement=new r.SL,t.toDisposeTemplate=new r.SL,t.entry=oe.R3(e,bo(".quick-input-list-entry"));const i=oe.R3(t.entry,bo("label.quick-input-list-label"));t.toDisposeTemplate.add(oe.mu(i,oe.tw.CLICK,(e=>{t.checkbox.offsetParent||e.preventDefault()}))),t.checkbox=oe.R3(i,bo("input.quick-input-list-checkbox")),t.checkbox.type="checkbox";const n=oe.R3(i,bo(".quick-input-list-rows")),o=oe.R3(n,bo(".quick-input-list-row")),s=oe.R3(n,bo(".quick-input-list-row"));t.label=new lo.g(o,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),t.toDisposeTemplate.add(t.label),t.icon=oe.Ce(t.label.element,bo(".quick-input-list-icon"));const a=oe.R3(o,bo(".quick-input-list-entry-keybinding"));t.keybinding=new ho.e(a,ct.OS),t.toDisposeTemplate.add(t.keybinding);const l=oe.R3(s,bo(".quick-input-list-label-meta"));return t.detail=new lo.g(l,{supportHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),t.toDisposeTemplate.add(t.detail),t.separator=oe.R3(t.entry,bo(".quick-input-list-separator")),t.actionBar=new ji.o(t.entry,this.hoverDelegate?{hoverDelegate:this.hoverDelegate}:void 0),t.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),t.toDisposeTemplate.add(t.actionBar),t}disposeTemplate(e){e.toDisposeElement.dispose(),e.toDisposeTemplate.dispose()}disposeElement(e,t,i){i.toDisposeElement.clear(),i.actionBar.clear()}}let xo=fo=class extends No{constructor(e,t){super(e),this.themeService=t,this._itemsWithSeparatorsFrequency=new Map}get templateId(){return fo.ID}renderTemplate(e){const t=super.renderTemplate(e);return t.toDisposeTemplate.add(oe.mu(t.checkbox,oe.tw.CHANGE,(e=>{t.element.checked=t.checkbox.checked}))),t}renderElement(e,t,i){var n,o,s;const r=e.element;i.element=r,r.element=null!==(n=i.entry)&&void 0!==n?n:void 0;const a=r.item;i.checkbox.checked=r.checked,i.toDisposeElement.add(r.onChecked((e=>i.checkbox.checked=e))),i.checkbox.disabled=r.checkboxDisabled;const{labelHighlights:h,descriptionHighlights:d,detailHighlights:c}=r;if(a.iconPath){const e=(0,co._T)(this.themeService.getColorTheme().type)?a.iconPath.dark:null!==(o=a.iconPath.light)&&void 0!==o?o:a.iconPath.dark,t=l.o.revive(e);i.icon.className="quick-input-list-icon",i.icon.style.backgroundImage=oe.wY(t)}else i.icon.style.backgroundImage="",i.icon.className=a.iconClass?"quick-input-list-icon ".concat(a.iconClass):"";let u;!r.saneTooltip&&r.saneDescription&&(u={markdown:{value:r.saneDescription,supportThemeIcons:!0},markdownNotSupportedFallback:r.saneDescription});const g={matches:h||[],descriptionTitle:u,descriptionMatches:d||[],labelEscapeNewLines:!0};if(g.extraClasses=a.iconClasses,g.italic=a.italic,g.strikethrough=a.strikethrough,i.entry.classList.remove("quick-input-list-separator-as-item"),i.label.setLabel(r.saneLabel,r.saneDescription,g),i.keybinding.set(a.keybinding),r.saneDetail){let e;r.saneTooltip||(e={markdown:{value:r.saneDetail,supportThemeIcons:!0},markdownNotSupportedFallback:r.saneDetail}),i.detail.element.style.display="",i.detail.setLabel(r.saneDetail,void 0,{matches:c,title:e,labelEscapeNewLines:!0})}else i.detail.element.style.display="none";(null===(s=r.separator)||void 0===s?void 0:s.label)?(i.separator.textContent=r.separator.label,i.separator.style.display="",this.addItemWithSeparator(r)):i.separator.style.display="none",i.entry.classList.toggle("quick-input-list-separator-border",!!r.separator);const m=a.buttons;m&&m.length?(i.actionBar.push(m.map(((e,t)=>so(e,"id-".concat(t),(()=>r.fireButtonTriggered({button:e,item:r.item}))))),{icon:!0,label:!1}),i.entry.classList.add("has-actions")):i.entry.classList.remove("has-actions")}disposeElement(e,t,i){this.removeItemWithSeparator(e.element),super.disposeElement(e,t,i)}isItemWithSeparatorVisible(e){return this._itemsWithSeparatorsFrequency.has(e)}addItemWithSeparator(e){this._itemsWithSeparatorsFrequency.set(e,(this._itemsWithSeparatorsFrequency.get(e)||0)+1)}removeItemWithSeparator(e){const t=this._itemsWithSeparatorsFrequency.get(e)||0;t>1?this._itemsWithSeparatorsFrequency.set(e,t-1):this._itemsWithSeparatorsFrequency.delete(e)}};xo.ID="quickpickitem",xo=fo=_o([vo(1,le.XE)],xo);class Eo extends No{constructor(){super(...arguments),this._visibleSeparatorsFrequency=new Map}get templateId(){return Eo.ID}get visibleSeparators(){return[...this._visibleSeparatorsFrequency.keys()]}isSeparatorVisible(e){return this._visibleSeparatorsFrequency.has(e)}renderElement(e,t,i){var n;const o=e.element;i.element=o,o.element=null!==(n=i.entry)&&void 0!==n?n:void 0,o.element.classList.toggle("focus-inside",!!o.focusInsideSeparator);const s=o.separator,{labelHighlights:r,descriptionHighlights:a,detailHighlights:l}=o;let h;i.icon.style.backgroundImage="",i.icon.className="",!o.saneTooltip&&o.saneDescription&&(h={markdown:{value:o.saneDescription,supportThemeIcons:!0},markdownNotSupportedFallback:o.saneDescription});const d={matches:r||[],descriptionTitle:h,descriptionMatches:a||[],labelEscapeNewLines:!0};if(i.entry.classList.add("quick-input-list-separator-as-item"),i.label.setLabel(o.saneLabel,o.saneDescription,d),o.saneDetail){let e;o.saneTooltip||(e={markdown:{value:o.saneDetail,supportThemeIcons:!0},markdownNotSupportedFallback:o.saneDetail}),i.detail.element.style.display="",i.detail.setLabel(o.saneDetail,void 0,{matches:l,title:e,labelEscapeNewLines:!0})}else i.detail.element.style.display="none";i.separator.style.display="none",i.entry.classList.add("quick-input-list-separator-border");const c=s.buttons;c&&c.length?(i.actionBar.push(c.map(((e,t)=>so(e,"id-".concat(t),(()=>o.fireSeparatorButtonTriggered({button:e,separator:o.separator}))))),{icon:!0,label:!1}),i.entry.classList.add("has-actions")):i.entry.classList.remove("has-actions"),this.addSeparator(o)}disposeElement(e,t,i){var n;this.removeSeparator(e.element),this.isSeparatorVisible(e.element)||null===(n=e.element.element)||void 0===n||n.classList.remove("focus-inside"),super.disposeElement(e,t,i)}addSeparator(e){this._visibleSeparatorsFrequency.set(e,(this._visibleSeparatorsFrequency.get(e)||0)+1)}removeSeparator(e){const t=this._visibleSeparatorsFrequency.get(e)||0;t>1?this._visibleSeparatorsFrequency.set(e,t-1):this._visibleSeparatorsFrequency.delete(e)}}Eo.ID="quickpickseparator";let Io=class extends r.JT{constructor(e,t,i,n,o){super(),this.parent=e,this.hoverDelegate=t,this.linkOpenerDelegate=i,this._onKeyDown=new re.Q5,this.onKeyDown=this._onKeyDown.event,this._onLeave=new re.Q5,this.onLeave=this._onLeave.event,this._onChangedAllVisibleChecked=new re.Q5,this.onChangedAllVisibleChecked=this._onChangedAllVisibleChecked.event,this._onChangedCheckedCount=new re.Q5,this.onChangedCheckedCount=this._onChangedCheckedCount.event,this._onChangedVisibleCount=new re.Q5,this.onChangedVisibleCount=this._onChangedVisibleCount.event,this._onChangedCheckedElements=new re.Q5,this.onChangedCheckedElements=this._onChangedCheckedElements.event,this._onButtonTriggered=new re.Q5,this.onButtonTriggered=this._onButtonTriggered.event,this._onSeparatorButtonTriggered=new re.Q5,this.onSeparatorButtonTriggered=this._onSeparatorButtonTriggered.event,this._onTriggerEmptySelectionOrFocus=new re.Q5,this._elementChecked=new re.Q5,this._inputElements=new Array,this._elementTree=new Array,this._itemElements=new Array,this._elementDisposable=this._register(new r.SL),this._shouldFireCheckedEvents=!0,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._container=oe.R3(this.parent,bo(".quick-input-list")),this._separatorRenderer=new Eo(t),this._itemRenderer=o.createInstance(xo,t),this._tree=this._register(o.createInstance(ao.PF,"QuickInput",this._container,new ko,[this._itemRenderer,this._separatorRenderer],{accessibilityProvider:new Do,setRowLineHeight:!1,multipleSelectionSupport:!1,hideTwistiesOfChildlessElements:!0,renderIndentGuides:po.E4.None,findWidgetEnabled:!1,indent:0,horizontalScrolling:!1,allowNonCollapsibleParents:!0,identityProvider:{getId:e=>{var t,i,n,o,s,r,a,l;return null!==(l=null!==(r=null!==(o=null!==(i=null===(t=e.item)||void 0===t?void 0:t.id)&&void 0!==i?i:null===(n=e.item)||void 0===n?void 0:n.label)&&void 0!==o?o:null===(s=e.separator)||void 0===s?void 0:s.id)&&void 0!==r?r:null===(a=e.separator)||void 0===a?void 0:a.label)&&void 0!==l?l:""}},alwaysConsumeMouseWheel:!0})),this._tree.getHTMLElement().id=n,this._registerListeners()}get onDidChangeFocus(){return re.ju.map(re.ju.any(this._tree.onDidChangeFocus,this._onTriggerEmptySelectionOrFocus.event),(e=>e.elements.filter((e=>e instanceof So)).map((e=>e.item))))}get onDidChangeSelection(){return re.ju.map(re.ju.any(this._tree.onDidChangeSelection,this._onTriggerEmptySelectionOrFocus.event),(e=>({items:e.elements.filter((e=>e instanceof So)).map((e=>e.item)),event:e.browserEvent})))}get scrollTop(){return this._tree.scrollTop}set scrollTop(e){this._tree.scrollTop=e}get ariaLabel(){return this._tree.ariaLabel}set ariaLabel(e){this._tree.ariaLabel=null!==e&&void 0!==e?e:""}set enabled(e){this._tree.getHTMLElement().style.pointerEvents=e?"":"none"}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(e){this._matchOnDescription=e}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(e){this._matchOnDetail=e}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(e){this._matchOnLabel=e}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(e){this._matchOnLabelMode=e}get sortByLabel(){return this._sortByLabel}set sortByLabel(e){this._sortByLabel=e}_registerListeners(){this._registerOnKeyDown(),this._registerOnContainerClick(),this._registerOnMouseMiddleClick(),this._registerOnElementChecked(),this._registerOnContextMenu(),this._registerHoverListeners(),this._registerSelectionChangeListener(),this._registerSeparatorActionShowingListeners()}_registerOnKeyDown(){this._register(this._tree.onKeyDown((e=>{const t=new Ct.y(e);switch(t.keyCode){case 10:this.toggleCheckbox();break;case 31:(ct.dz?e.metaKey:e.ctrlKey)&&this._tree.setFocus(this._itemElements);break;case 16:{const e=this._tree.getFocus();1===e.length&&e[0]===this._itemElements[0]&&this._onLeave.fire();break}case 18:{const e=this._tree.getFocus();1===e.length&&e[0]===this._itemElements[this._itemElements.length-1]&&this._onLeave.fire();break}}this._onKeyDown.fire(t)})))}_registerOnContainerClick(){this._register(oe.nm(this._container,oe.tw.CLICK,(e=>{(e.x||e.y)&&this._onLeave.fire()})))}_registerOnMouseMiddleClick(){this._register(oe.nm(this._container,oe.tw.AUXCLICK,(e=>{1===e.button&&this._onLeave.fire()})))}_registerOnElementChecked(){this._register(this._elementChecked.event((e=>this._fireCheckedEvents())))}_registerOnContextMenu(){this._register(this._tree.onContextMenu((e=>{e.element&&(e.browserEvent.preventDefault(),this._tree.setSelection([e.element]))})))}_registerHoverListeners(){const e=this._register(new ei.rH(this.hoverDelegate.delay));this._register(this._tree.onMouseOver((async t=>{var i;if(t.browserEvent.target instanceof HTMLAnchorElement)e.cancel();else if(t.browserEvent.relatedTarget instanceof HTMLAnchorElement||!oe.jg(t.browserEvent.relatedTarget,null===(i=t.element)||void 0===i?void 0:i.element))try{await e.trigger((async()=>{t.element instanceof So&&this.showHover(t.element)}))}catch(t){if(!(0,Le.n2)(t))throw t}}))),this._register(this._tree.onMouseOut((t=>{var i;oe.jg(t.browserEvent.relatedTarget,null===(i=t.element)||void 0===i?void 0:i.element)||e.cancel()})))}_registerSeparatorActionShowingListeners(){this._register(this._tree.onDidChangeFocus((e=>{const t=e.elements[0]?this._tree.getParentElement(e.elements[0]):null;for(const i of this._separatorRenderer.visibleSeparators){const e=i===t;!!(i.focusInsideSeparator&wo.ACTIVE_ITEM)!==e&&(e?i.focusInsideSeparator|=wo.ACTIVE_ITEM:i.focusInsideSeparator&=~wo.ACTIVE_ITEM,this._tree.rerender(i))}}))),this._register(this._tree.onMouseOver((e=>{const t=e.element?this._tree.getParentElement(e.element):null;for(const i of this._separatorRenderer.visibleSeparators){if(i!==t)continue;!!(i.focusInsideSeparator&wo.MOUSE_HOVER)||(i.focusInsideSeparator|=wo.MOUSE_HOVER,this._tree.rerender(i))}}))),this._register(this._tree.onMouseOut((e=>{const t=e.element?this._tree.getParentElement(e.element):null;for(const i of this._separatorRenderer.visibleSeparators){if(i!==t)continue;!!(i.focusInsideSeparator&wo.MOUSE_HOVER)&&(i.focusInsideSeparator&=~wo.MOUSE_HOVER,this._tree.rerender(i))}})))}_registerSelectionChangeListener(){this._register(this._tree.onDidChangeSelection((e=>{const t=e.elements.filter((e=>e instanceof So));t.length!==e.elements.length&&(1===e.elements.length&&e.elements[0]instanceof Lo&&(this._tree.setFocus([e.elements[0].children[0]]),this._tree.reveal(e.elements[0],0)),this._tree.setSelection(t))})))}getAllVisibleChecked(){return this._allVisibleChecked(this._itemElements,!1)}getCheckedCount(){return this._itemElements.filter((e=>e.checked)).length}getVisibleCount(){return this._itemElements.filter((e=>!e.hidden)).length}setAllVisibleChecked(e){try{this._shouldFireCheckedEvents=!1,this._itemElements.forEach((t=>{t.hidden||t.checkboxDisabled||(t.checked=e)}))}finally{this._shouldFireCheckedEvents=!0,this._fireCheckedEvents()}}setElements(e){this._elementDisposable.clear(),this._inputElements=e;const t=this.parent.classList.contains("show-checkboxes");let i;this._itemElements=new Array,this._elementTree=e.reduce(((n,o,s)=>{let r;if("separator"===o.type){if(!o.buttons)return n;i=new Lo(s,(e=>this.fireSeparatorButtonTriggered(e)),o),r=i}else{const a=s>0?e[s-1]:void 0;let l;a&&"separator"===a.type&&!a.buttons&&(i=void 0,l=a);const h=new So(s,t,(e=>this.fireButtonTriggered(e)),this._elementChecked,o,l);if(this._itemElements.push(h),i)return i.children.push(h),n;r=h}return n.push(r),n}),new Array);const n=new Array;let o=0;for(const s of this._elementTree)s instanceof Lo?(n.push({element:s,collapsible:!1,collapsed:!1,children:s.children.map((e=>({element:e,collapsible:!1,collapsed:!1})))}),o+=s.children.length+1):(n.push({element:s,collapsible:!1,collapsed:!1}),o++);this._tree.setChildren(null,n),this._onChangedVisibleCount.fire(o)}setFocusedElements(e){const t=e.map((e=>this._itemElements.find((t=>t.item===e)))).filter((e=>!!e));if(this._tree.setFocus(t),e.length>0){const e=this._tree.getFocus()[0];e&&this._tree.reveal(e)}}getActiveDescendant(){return this._tree.getHTMLElement().getAttribute("aria-activedescendant")}setSelectedElements(e){const t=e.map((e=>this._itemElements.find((t=>t.item===e)))).filter((e=>!!e));this._tree.setSelection(t)}getCheckedElements(){return this._itemElements.filter((e=>e.checked)).map((e=>e.item))}setCheckedElements(e){try{this._shouldFireCheckedEvents=!1;const t=new Set;for(const i of e)t.add(i);for(const e of this._itemElements)e.checked=t.has(e.item)}finally{this._shouldFireCheckedEvents=!0,this._fireCheckedEvents()}}focus(e){var t;if(this._itemElements.length)switch(e===Co.Second&&this._itemElements.length<2&&(e=Co.First),e){case Co.First:this._tree.scrollTop=0,this._tree.focusFirst(void 0,(e=>e.element instanceof So));break;case Co.Second:this._tree.scrollTop=0,this._tree.setFocus([this._itemElements[1]]);break;case Co.Last:this._tree.scrollTop=this._tree.scrollHeight,this._tree.setFocus([this._itemElements[this._itemElements.length-1]]);break;case Co.Next:this._tree.focusNext(void 0,!0,void 0,(e=>e.element instanceof So&&(this._tree.reveal(e.element),!0)));break;case Co.Previous:this._tree.focusPrevious(void 0,!0,void 0,(e=>{if(!(e.element instanceof So))return!1;const t=this._tree.getParentElement(e.element);return null===t||t.children[0]!==e.element?this._tree.reveal(e.element):this._tree.reveal(t),!0}));break;case Co.NextPage:this._tree.focusNextPage(void 0,(e=>e.element instanceof So&&(this._tree.reveal(e.element),!0)));break;case Co.PreviousPage:this._tree.focusPreviousPage(void 0,(e=>{if(!(e.element instanceof So))return!1;const t=this._tree.getParentElement(e.element);return null===t||t.children[0]!==e.element?this._tree.reveal(e.element):this._tree.reveal(t),!0}));break;case Co.NextSeparator:{let e=!1;const t=this._tree.getFocus()[0];this._tree.focusNext(void 0,!0,void 0,(t=>{if(e)return!0;if(t.element instanceof Lo)e=!0,this._separatorRenderer.isSeparatorVisible(t.element)?this._tree.reveal(t.element.children[0]):this._tree.reveal(t.element,0);else if(t.element instanceof So){if(t.element.separator)return this._itemRenderer.isItemWithSeparatorVisible(t.element)?this._tree.reveal(t.element):this._tree.reveal(t.element,0),!0;if(t.element===this._elementTree[0])return this._tree.reveal(t.element,0),!0}return!1}));t===this._tree.getFocus()[0]&&(this._tree.scrollTop=this._tree.scrollHeight,this._tree.setFocus([this._itemElements[this._itemElements.length-1]]));break}case Co.PreviousSeparator:{let e,i=!!(null===(t=this._tree.getFocus()[0])||void 0===t?void 0:t.separator);this._tree.focusPrevious(void 0,!0,void 0,(t=>{if(t.element instanceof Lo)i?e||(this._separatorRenderer.isSeparatorVisible(t.element)?this._tree.reveal(t.element):this._tree.reveal(t.element,0),e=t.element.children[0]):i=!0;else if(t.element instanceof So&&!e)if(t.element.separator)this._itemRenderer.isItemWithSeparatorVisible(t.element)?this._tree.reveal(t.element):this._tree.reveal(t.element,0),e=t.element;else if(t.element===this._elementTree[0])return this._tree.reveal(t.element,0),!0;return!1})),e&&this._tree.setFocus([e]);break}}}clearFocus(){this._tree.setFocus([])}domFocus(){this._tree.domFocus()}layout(e){this._tree.getHTMLElement().style.maxHeight=e?"".concat(44*Math.floor(e/44)+6,"px"):"",this._tree.layout()}filter(e){if(!(this._sortByLabel||this._matchOnLabel||this._matchOnDescription||this._matchOnDetail))return this._tree.layout(),!1;const t=e;if((e=e.trim())&&(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail)){let i;this._elementTree.forEach((n=>{var o,s,r,l;let h;h="fuzzy"===this.matchOnLabelMode?this.matchOnLabel&&null!==(o=(0,$i.Gt)(e,(0,$i.Ho)(n.saneLabel)))&&void 0!==o?o:void 0:this.matchOnLabel&&null!==(s=function(e,t){const{text:i,iconOffsets:n}=t;if(!n||0===n.length)return To(e,i);const o=(0,a.j3)(i," "),s=i.length-o.length,r=To(e,o);if(r)for(const a of r){const e=n[a.start+s]+s;a.start+=e,a.end+=e}return r}(t,(0,$i.Ho)(n.saneLabel)))&&void 0!==s?s:void 0;const d=this.matchOnDescription&&null!==(r=(0,$i.Gt)(e,(0,$i.Ho)(n.saneDescription||"")))&&void 0!==r?r:void 0,c=this.matchOnDetail&&null!==(l=(0,$i.Gt)(e,(0,$i.Ho)(n.saneDetail||"")))&&void 0!==l?l:void 0;if(h||d||c?(n.labelHighlights=h,n.descriptionHighlights=d,n.detailHighlights=c,n.hidden=!1):(n.labelHighlights=void 0,n.descriptionHighlights=void 0,n.detailHighlights=void 0,n.hidden=!n.item||!n.item.alwaysShow),n.item?n.separator=void 0:n.separator&&(n.hidden=!0),!this.sortByLabel){const e=n.index&&this._inputElements[n.index-1];i=e&&"separator"===e.type?e:i,i&&!n.hidden&&(n.separator=i,i=void 0)}}))}else this._itemElements.forEach((e=>{e.labelHighlights=void 0,e.descriptionHighlights=void 0,e.detailHighlights=void 0,e.hidden=!1;const t=e.index&&this._inputElements[e.index-1];e.item&&(e.separator=t&&"separator"===t.type&&!t.buttons?t:void 0)}));const i=this._elementTree.filter((e=>!e.hidden));if(this.sortByLabel&&e){const t=e.toLowerCase();i.sort(((e,i)=>function(e,t,i){const n=e.labelHighlights||[],o=t.labelHighlights||[];if(n.length&&!o.length)return-1;if(!n.length&&o.length)return 1;if(0===n.length&&0===o.length)return 0;return mo(e.saneSortLabel,t.saneSortLabel,i)}(e,i,t)))}let n;const o=i.reduce(((e,t,i)=>(t instanceof So?n?n.children.push(t):e.push(t):t instanceof Lo&&(t.children=[],n=t,e.push(t)),e)),new Array),s=new Array;for(const a of o)a instanceof Lo?s.push({element:a,collapsible:!1,collapsed:!1,children:a.children.map((e=>({element:e,collapsible:!1,collapsed:!1})))}):s.push({element:a,collapsible:!1,collapsed:!1});const r=this._tree.getFocus().length;return this._tree.setChildren(null,s),r>0&&0===s.length&&this._onTriggerEmptySelectionOrFocus.fire({elements:[]}),this._tree.layout(),this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedVisibleCount.fire(i.length),!0}toggleCheckbox(){try{this._shouldFireCheckedEvents=!1;const e=this._tree.getFocus().filter((e=>e instanceof So)),t=this._allVisibleChecked(e);for(const i of e)i.checkboxDisabled||(i.checked=!t)}finally{this._shouldFireCheckedEvents=!0,this._fireCheckedEvents()}}display(e){this._container.style.display=e?"":"none"}isDisplayed(){return"none"!==this._container.style.display}style(e){this._tree.style(e)}toggleHover(){const e=this._tree.getFocus()[0];if(!(null===e||void 0===e?void 0:e.saneTooltip)||!(e instanceof So))return;if(this._lastHover&&!this._lastHover.isDisposed)return void this._lastHover.dispose();this.showHover(e);const t=new r.SL;t.add(this._tree.onDidChangeFocus((e=>{e.elements[0]instanceof So&&this.showHover(e.elements[0])}))),this._lastHover&&t.add(this._lastHover),this._elementDisposable.add(t)}_allVisibleChecked(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];for(let i=0,n=e.length;i{this.linkOpenerDelegate(e)},appearance:{showPointer:!0},container:this._container,position:{hoverPosition:1}},!1))}};function To(e,t){const i=t.toLowerCase().indexOf(e.toLowerCase());return-1!==i?[{start:i,end:i+e.length}]:null}_o([Xn.H],Io.prototype,"onDidChangeFocus",null),_o([Xn.H],Io.prototype,"onDidChangeSelection",null),Io=_o([vo(4,ve.TG)],Io);var Mo=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ao=function(e,t){return function(i,n){t(i,n,e)}};const Ro={iconClass:Yi.k.asClassName(Qi.l.quickInputBack),tooltip:(0,De.NC)("quickInput.back","Back"),handle:-1};class Oo extends r.JT{constructor(e){super(),this.ui=e,this._widgetUpdated=!1,this.visible=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!1,this._buttons=[],this.buttonsUpdated=!1,this._toggles=[],this.togglesUpdated=!1,this.noValidationMessage=Oo.noPromptMessage,this._severity=ke.Z.Ignore,this.onDidTriggerButtonEmitter=this._register(new re.Q5),this.onDidHideEmitter=this._register(new re.Q5),this.onWillHideEmitter=this._register(new re.Q5),this.onDisposeEmitter=this._register(new re.Q5),this.visibleDisposables=this._register(new r.SL),this.onDidHide=this.onDidHideEmitter.event}get title(){return this._title}set title(e){this._title=e,this.update()}get description(){return this._description}set description(e){this._description=e,this.update()}get step(){return this._steps}set step(e){this._steps=e,this.update()}get totalSteps(){return this._totalSteps}set totalSteps(e){this._totalSteps=e,this.update()}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this.update()}get contextKey(){return this._contextKey}set contextKey(e){this._contextKey=e,this.update()}get busy(){return this._busy}set busy(e){this._busy=e,this.update()}get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(e){const t=this._ignoreFocusOut!==e&&!ct.gn;this._ignoreFocusOut=e&&!ct.gn,t&&this.update()}get buttons(){return this._buttons}set buttons(e){this._buttons=e,this.buttonsUpdated=!0,this.update()}get toggles(){return this._toggles}set toggles(e){this._toggles=null!==e&&void 0!==e?e:[],this.togglesUpdated=!0,this.update()}get validationMessage(){return this._validationMessage}set validationMessage(e){this._validationMessage=e,this.update()}get severity(){return this._severity}set severity(e){this._severity=e,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.onDidTriggerButton((e=>{-1!==this.buttons.indexOf(e)&&this.onDidTriggerButtonEmitter.fire(e)}))),this.ui.show(this),this.visible=!0,this._lastValidationMessage=void 0,this._lastSeverity=void 0,this.buttons.length&&(this.buttonsUpdated=!0),this.toggles.length&&(this.togglesUpdated=!0),this.update())}hide(){this.visible&&this.ui.hide()}didHide(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:jn.Jq.Other;this.visible=!1,this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:e})}willHide(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:jn.Jq.Other;this.onWillHideEmitter.fire({reason:e})}update(){var e,t;if(!this.visible)return;const i=this.getTitle();i&&this.ui.title.textContent!==i?this.ui.title.textContent=i:i||" "===this.ui.title.innerHTML||(this.ui.title.innerText="\xa0");const 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._widgetUpdated&&(this._widgetUpdated=!1,this._widget?oe.mc(this.ui.widget,this._widget):oe.mc(this.ui.widget)),this.busy&&!this.busyDelay&&(this.busyDelay=new ei._F,this.busyDelay.setIfNotSet((()=>{this.visible&&this.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();const e=this.buttons.filter((e=>e===Ro)).map(((e,t)=>so(e,"id-".concat(t),(async()=>this.onDidTriggerButtonEmitter.fire(e)))));this.ui.leftActionBar.push(e,{icon:!0,label:!1}),this.ui.rightActionBar.clear();const t=this.buttons.filter((e=>e!==Ro)).map(((e,t)=>so(e,"id-".concat(t),(async()=>this.onDidTriggerButtonEmitter.fire(e)))));this.ui.rightActionBar.push(t,{icon:!0,label:!1})}if(this.togglesUpdated){this.togglesUpdated=!1;const i=null!==(t=null===(e=this.toggles)||void 0===e?void 0:e.filter((e=>e instanceof Zn.Z)))&&void 0!==t?t:[];this.ui.inputBox.toggles=i}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey);const o=this.validationMessage||this.noValidationMessage;this._lastValidationMessage!==o&&(this._lastValidationMessage=o,oe.mc(this.ui.message),ro(o,this.ui.message,{callback:e=>{this.ui.linkOpenerDelegate(e)},disposables:this.visibleDisposables})),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}getTitle(){return this.title&&this.step?"".concat(this.title," (").concat(this.getSteps(),")"):this.title?this.title:this.step?this.getSteps():""}getDescription(){return this.description||""}getSteps(){return this.step&&this.totalSteps?(0,De.NC)("quickInput.steps","{0}/{1}",this.step,this.totalSteps):this.step?String(this.step):""}showMessageDecoration(e){if(this.ui.inputBox.showDecoration(e),e!==ke.Z.Ignore){const 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.marginBottom="-2px"}else this.ui.message.style.color="",this.ui.message.style.backgroundColor="",this.ui.message.style.border="",this.ui.message.style.marginBottom=""}dispose(){this.hide(),this.onDisposeEmitter.fire(),super.dispose()}}Oo.noPromptMessage=(0,De.NC)("inputModeEntry","Press 'Enter' to confirm your input or 'Escape' to cancel");class Po extends Oo{constructor(){super(...arguments),this._value="",this.onDidChangeValueEmitter=this._register(new re.Q5),this.onWillAcceptEmitter=this._register(new re.Q5),this.onDidAcceptEmitter=this._register(new re.Q5),this.onDidCustomEmitter=this._register(new re.Q5),this._items=[],this.itemsUpdated=!1,this._canSelectMany=!1,this._canAcceptInBackground=!1,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._keepScrollPosition=!1,this._itemActivation=jn.jG.FIRST,this._activeItems=[],this.activeItemsUpdated=!1,this.activeItemsToConfirm=[],this.onDidChangeActiveEmitter=this._register(new re.Q5),this._selectedItems=[],this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=[],this.onDidChangeSelectionEmitter=this._register(new re.Q5),this.onDidTriggerItemButtonEmitter=this._register(new re.Q5),this.onDidTriggerSeparatorButtonEmitter=this._register(new re.Q5),this.valueSelectionUpdated=!0,this._ok="default",this._customButton=!1,this.filterValue=e=>e,this.onDidChangeValue=this.onDidChangeValueEmitter.event,this.onWillAccept=this.onWillAcceptEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event,this.onDidChangeActive=this.onDidChangeActiveEmitter.event,this.onDidChangeSelection=this.onDidChangeSelectionEmitter.event,this.onDidTriggerItemButton=this.onDidTriggerItemButtonEmitter.event,this.onDidTriggerSeparatorButton=this.onDidTriggerSeparatorButtonEmitter.event}get quickNavigate(){return this._quickNavigate}set quickNavigate(e){this._quickNavigate=e,this.update()}get value(){return this._value}set value(e){this.doSetValue(e)}doSetValue(e,t){if(this._value!==e){if(this._value=e,t||this.update(),this.visible){this.ui.list.filter(this.filterValue(this._value))&&this.trySelectFirst()}this.onDidChangeValueEmitter.fire(this._value)}}set ariaLabel(e){this._ariaLabel=e,this.update()}get ariaLabel(){return this._ariaLabel}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update()}get items(){return this._items}get scrollTop(){return this.ui.list.scrollTop}set scrollTop(e){this.ui.list.scrollTop=e}set items(e){this._items=e,this.itemsUpdated=!0,this.update()}get canSelectMany(){return this._canSelectMany}set canSelectMany(e){this._canSelectMany=e,this.update()}get canAcceptInBackground(){return this._canAcceptInBackground}set canAcceptInBackground(e){this._canAcceptInBackground=e}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(e){this._matchOnDescription=e,this.update()}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(e){this._matchOnDetail=e,this.update()}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(e){this._matchOnLabel=e,this.update()}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(e){this._matchOnLabelMode=e,this.update()}get sortByLabel(){return this._sortByLabel}set sortByLabel(e){this._sortByLabel=e,this.update()}get keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(e){this._keepScrollPosition=e}get itemActivation(){return this._itemActivation}set itemActivation(e){this._itemActivation=e}get activeItems(){return this._activeItems}set activeItems(e){this._activeItems=e,this.activeItemsUpdated=!0,this.update()}get selectedItems(){return this._selectedItems}set selectedItems(e){this._selectedItems=e,this.selectedItemsUpdated=!0,this.update()}get keyMods(){return this._quickNavigate?jn.X5:this.ui.keyMods}get valueSelection(){const e=this.ui.inputBox.getSelection();if(e)return[e.start,e.end]}set valueSelection(e){this._valueSelection=e,this.valueSelectionUpdated=!0,this.update()}get customButton(){return this._customButton}set customButton(e){this._customButton=e,this.update()}get customLabel(){return this._customButtonLabel}set customLabel(e){this._customButtonLabel=e,this.update()}get customHover(){return this._customButtonHover}set customHover(e){this._customButtonHover=e,this.update()}get ok(){return this._ok}set ok(e){this._ok=e,this.update()}get hideInput(){return!!this._hideInput}set hideInput(e){this._hideInput=e,this.update()}trySelectFirst(){this.canSelectMany||this.ui.list.focus(Co.First)}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange((e=>{this.doSetValue(e,!0)}))),this.visibleDisposables.add((this._hideInput?this.ui.list:this.ui.inputBox).onKeyDown((e=>{switch(e.keyCode){case 18:(ct.dz?e.metaKey:e.altKey)?this.ui.list.focus(Co.NextSeparator):this.ui.list.focus(Co.Next),this.canSelectMany&&this.ui.list.domFocus(),oe.zB.stop(e,!0);break;case 16:(ct.dz?e.metaKey:e.altKey)?this.ui.list.focus(Co.PreviousSeparator):this.ui.list.focus(Co.Previous),this.canSelectMany&&this.ui.list.domFocus(),oe.zB.stop(e,!0);break;case 12:this.ui.list.focus(Co.NextPage),this.canSelectMany&&this.ui.list.domFocus(),oe.zB.stop(e,!0);break;case 11:this.ui.list.focus(Co.PreviousPage),this.canSelectMany&&this.ui.list.domFocus(),oe.zB.stop(e,!0);break;case 17:if(!this._canAcceptInBackground)return;if(!this.ui.inputBox.isSelectionAtEnd())return;this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!0));break;case 14:!e.ctrlKey&&!e.metaKey||e.shiftKey||e.altKey||(this.ui.list.focus(Co.First),oe.zB.stop(e,!0));break;case 13:!e.ctrlKey&&!e.metaKey||e.shiftKey||e.altKey||(this.ui.list.focus(Co.Last),oe.zB.stop(e,!0))}}))),this.visibleDisposables.add(this.ui.onDidAccept((()=>{this.canSelectMany?this.ui.list.getCheckedElements().length||(this._selectedItems=[],this.onDidChangeSelectionEmitter.fire(this.selectedItems)):this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(!1)}))),this.visibleDisposables.add(this.ui.onDidCustom((()=>{this.onDidCustomEmitter.fire()}))),this.visibleDisposables.add(this.ui.list.onDidChangeFocus((e=>{this.activeItemsUpdated||this.activeItemsToConfirm!==this._activeItems&&(0,_e.fS)(e,this._activeItems,((e,t)=>e===t))||(this._activeItems=e,this.onDidChangeActiveEmitter.fire(e))}))),this.visibleDisposables.add(this.ui.list.onDidChangeSelection((e=>{let{items:t,event:i}=e;this.canSelectMany?t.length&&this.ui.list.setSelectedElements([]):this.selectedItemsToConfirm!==this._selectedItems&&(0,_e.fS)(t,this._selectedItems,((e,t)=>e===t))||(this._selectedItems=t,this.onDidChangeSelectionEmitter.fire(t),t.length&&this.handleAccept(oe.N5(i)&&1===i.button))}))),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements((e=>{this.canSelectMany&&(this.selectedItemsToConfirm!==this._selectedItems&&(0,_e.fS)(e,this._selectedItems,((e,t)=>e===t))||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e)))}))),this.visibleDisposables.add(this.ui.list.onButtonTriggered((e=>this.onDidTriggerItemButtonEmitter.fire(e)))),this.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered((e=>this.onDidTriggerSeparatorButtonEmitter.fire(e)))),this.visibleDisposables.add(this.registerQuickNavigation()),this.valueSelectionUpdated=!0),super.show()}handleAccept(e){let t=!1;this.onWillAcceptEmitter.fire({veto:()=>t=!0}),t||this.onDidAcceptEmitter.fire({inBackground:e})}registerQuickNavigation(){return oe.nm(this.ui.container,oe.tw.KEY_UP,(e=>{if(this.canSelectMany||!this._quickNavigate)return;const t=new Ct.y(e),i=t.keyCode;this._quickNavigate.keybindings.some((e=>{const n=e.getChords();return!(n.length>1)&&(n[0].shiftKey&&4===i?!(t.ctrlKey||t.altKey||t.metaKey):!(!n[0].altKey||6!==i)||(!(!n[0].ctrlKey||5!==i)||!(!n[0].metaKey||57!==i)))}))&&(this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!1)),this._quickNavigate=void 0)}))}update(){if(!this.visible)return;const e=this.keepScrollPosition?this.scrollTop:0,t=!!this.description,i={title:!!this.title||!!this.step||!!this.buttons.length,description:t,checkAll:this.canSelectMany&&!this._hideCheckAll,checkBox:this.canSelectMany,inputBox:!this._hideInput,progressBar:!this._hideInput||t,visibleCount:!0,count:this.canSelectMany&&!this._hideCountBadge,ok:"default"===this.ok?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage,customButton:this.customButton};this.ui.setVisibilities(i),super.update(),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||"");let n=this.ariaLabel;if(!n&&i.inputBox&&(n=this.placeholder||Po.DEFAULT_ARIA_LABEL,this.title&&(n+=" - ".concat(this.title))),this.ui.list.ariaLabel!==n&&(this.ui.list.ariaLabel=null!==n&&void 0!==n?n:null),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.matchOnLabelMode=this.matchOnLabelMode,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated){this.itemsUpdated=!1;const e=this._activeItems;switch(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 jn.jG.NONE:e.length>0&&(this._activeItems=[],this.onDidChangeActiveEmitter.fire(this._activeItems)),this._itemActivation=jn.jG.FIRST;break;case jn.jG.SECOND:this.ui.list.focus(Co.Second),this._itemActivation=jn.jG.FIRST;break;case jn.jG.LAST:this.ui.list.focus(Co.Last),this._itemActivation=jn.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||"",i.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(Co.First)),this.keepScrollPosition&&(this.scrollTop=e)}}Po.DEFAULT_ARIA_LABEL=(0,De.NC)("quickInputBox.ariaLabel","Type to narrow down results.");class Fo extends Oo{constructor(){super(...arguments),this._value="",this.valueSelectionUpdated=!0,this._password=!1,this.onDidValueChangeEmitter=this._register(new re.Q5),this.onDidAcceptEmitter=this._register(new re.Q5),this.onDidChangeValue=this.onDidValueChangeEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event}get value(){return this._value}set value(e){this._value=e||"",this.update()}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update()}get password(){return this._password}set password(e){this._password=e,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange((e=>{e!==this.value&&(this._value=e,this.onDidValueChangeEmitter.fire(e))}))),this.visibleDisposables.add(this.ui.onDidAccept((()=>this.onDidAcceptEmitter.fire()))),this.valueSelectionUpdated=!0),super.show()}update(){if(!this.visible)return;this.ui.container.classList.remove("hidden-input");const e={title:!!this.title||!!this.step||!!this.buttons.length,description:!!this.description||!!this.step,inputBox:!0,message:!0,progressBar:!0};this.ui.setVisibilities(e),super.update(),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||""),this.ui.inputBox.password!==this.password&&(this.ui.inputBox.password=this.password)}}let Bo=class extends nt.mQ{constructor(e,t){super("element",!1,(e=>this.getOverrideOptions(e)),e,t)}getOverrideOptions(e){var t;return{persistence:{hideOnKeyDown:!1},appearance:{showHoverHint:(e.content instanceof HTMLElement?null!==(t=e.content.textContent)&&void 0!==t?t:"":"string"===typeof e.content?e.content:e.content.value).includes("\n"),skipFadeInAnimation:!0}}}};Bo=Mo([Ao(0,V.Ui),Ao(1,nt.Bs)],Bo);var zo=i(56925),Vo=i(87699);const Wo="done",Ho="active",Ko="infinite",Uo="infinite-long-running",jo="discrete";class qo extends r.JT{constructor(e,t){super(),this.workedVal=0,this.showDelayedScheduler=this._register(new ei.pY((()=>(0,oe.$Z)(this.element)),0)),this.longRunningScheduler=this._register(new ei.pY((()=>this.infiniteLongRunning()),qo.LONG_RUNNING_INFINITE_THRESHOLD)),this.create(e,t)}create(e,t){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.bit.style.backgroundColor=(null===t||void 0===t?void 0:t.progressBarBackground)||"#0E70C0",this.element.appendChild(this.bit)}off(){this.bit.style.width="inherit",this.bit.style.opacity="1",this.element.classList.remove(Ho,Ko,Uo,jo),this.workedVal=0,this.totalWork=void 0,this.longRunningScheduler.cancel()}stop(){return this.doDone(!1)}doDone(e){return this.element.classList.add(Wo),this.element.classList.contains(Ko)?(this.bit.style.opacity="0",e?setTimeout((()=>this.off()),200):this.off()):(this.bit.style.width="inherit",e?setTimeout((()=>this.off()),200):this.off()),this}infinite(){return this.bit.style.width="2%",this.bit.style.opacity="1",this.element.classList.remove(jo,Wo,Uo),this.element.classList.add(Ho,Ko),this.longRunningScheduler.schedule(),this}infiniteLongRunning(){this.element.classList.add(Uo)}getContainer(){return this.element}}qo.LONG_RUNNING_INFINITE_THRESHOLD=1e4;var Go=i(51459);const Qo=oe.$;class Zo extends r.JT{constructor(e,t,i){super(),this.parent=e,this.onKeyDown=e=>oe.mu(this.findInput.inputBox.inputElement,oe.tw.KEY_DOWN,e),this.onDidChange=e=>this.findInput.onDidChange(e),this.container=oe.R3(this.parent,Qo(".quick-input-box")),this.findInput=this._register(new Go.V(this.container,void 0,{label:"",inputBoxStyles:t,toggleStyles:i}));const n=this.findInput.inputBox.inputElement;n.role="combobox",n.ariaHasPopup="menu",n.ariaAutoComplete="list",n.ariaExpanded="true"}get value(){return this.findInput.getValue()}set value(e){this.findInput.setValue(e)}select(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;this.findInput.inputBox.select(e)}getSelection(){return this.findInput.inputBox.getSelection()}isSelectionAtEnd(){return this.findInput.inputBox.isSelectionAtEnd()}get placeholder(){return this.findInput.inputBox.inputElement.getAttribute("placeholder")||""}set placeholder(e){this.findInput.inputBox.setPlaceHolder(e)}get password(){return"password"===this.findInput.inputBox.inputElement.type}set password(e){this.findInput.inputBox.inputElement.type=e?"password":"text"}set enabled(e){this.findInput.inputBox.inputElement.toggleAttribute("readonly",!e)}set toggles(e){this.findInput.setAdditionalToggles(e)}setAttribute(e,t){this.findInput.inputBox.inputElement.setAttribute(e,t)}showDecoration(e){e===ke.Z.Ignore?this.findInput.clearMessage():this.findInput.showMessage({type:e===ke.Z.Info?1:e===ke.Z.Warning?2:3,content:""})}stylesForType(e){return this.findInput.inputBox.stylesForType(e===ke.Z.Info?1:e===ke.Z.Warning?2:3)}setFocus(){this.findInput.focus()}layout(){this.findInput.inputBox.layout()}}var Yo,$o=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Jo=function(e,t){return function(i,n){t(i,n,e)}};const Xo=oe.$;let es=Yo=class extends r.JT{get container(){return this._container}constructor(e,t,i){super(),this.options=e,this.layoutService=t,this.instantiationService=i,this.enabled=!0,this.onDidAcceptEmitter=this._register(new re.Q5),this.onDidCustomEmitter=this._register(new re.Q5),this.onDidTriggerButtonEmitter=this._register(new re.Q5),this.keyMods={ctrlCmd:!1,alt:!1},this.controller=null,this.onShowEmitter=this._register(new re.Q5),this.onShow=this.onShowEmitter.event,this.onHideEmitter=this._register(new re.Q5),this.onHide=this.onHideEmitter.event,this.idPrefix=e.idPrefix,this._container=e.container,this.styles=e.styles,this._register(re.ju.runAndSubscribe(oe.Xo,(e=>{let{window:t,disposables:i}=e;return this.registerKeyModsListeners(t,i)}),{window:s.E,disposables:this._store})),this._register(oe.Jc((e=>{this.ui&&oe.Jj(this.ui.container)===e&&(this.reparentUI(this.layoutService.mainContainer),this.layout(this.layoutService.mainContainerDimension,this.layoutService.mainContainerOffset.quickPickTop))})))}registerKeyModsListeners(e,t){const i=e=>{this.keyMods.ctrlCmd=e.ctrlKey||e.metaKey,this.keyMods.alt=e.altKey};for(const n of[oe.tw.KEY_DOWN,oe.tw.KEY_UP,oe.tw.MOUSE_DOWN])t.add(oe.nm(e,n,i,!0))}getUI(e){if(this.ui)return e&&oe.Jj(this._container)!==oe.Jj(this.layoutService.activeContainer)&&(this.reparentUI(this.layoutService.activeContainer),this.layout(this.layoutService.activeContainerDimension,this.layoutService.activeContainerOffset.quickPickTop)),this.ui;const t=oe.R3(this._container,Xo(".quick-input-widget.show-file-icons"));t.tabIndex=-1,t.style.display="none";const i=oe.dS(t),n=oe.R3(t,Xo(".quick-input-titlebar")),o=this._register(new ji.o(n,{hoverDelegate:this.options.hoverDelegate}));o.domNode.classList.add("quick-input-left-action-bar");const s=oe.R3(n,Xo(".quick-input-title")),r=this._register(new ji.o(n,{hoverDelegate:this.options.hoverDelegate}));r.domNode.classList.add("quick-input-right-action-bar");const a=oe.R3(t,Xo(".quick-input-header")),l=oe.R3(a,Xo("input.quick-input-check-all"));l.type="checkbox",l.setAttribute("aria-label",(0,De.NC)("quickInput.checkAll","Toggle all checkboxes")),this._register(oe.mu(l,oe.tw.CHANGE,(e=>{const t=l.checked;D.setAllVisibleChecked(t)}))),this._register(oe.nm(l,oe.tw.CLICK,(e=>{(e.x||e.y)&&u.setFocus()})));const h=oe.R3(a,Xo(".quick-input-description")),d=oe.R3(a,Xo(".quick-input-and-message")),c=oe.R3(d,Xo(".quick-input-filter")),u=this._register(new Zo(c,this.styles.inputBox,this.styles.toggle));u.setAttribute("aria-describedby","".concat(this.idPrefix,"message"));const g=oe.R3(c,Xo(".quick-input-visible-count"));g.setAttribute("aria-live","polite"),g.setAttribute("aria-atomic","true");const m=new Vo.Z(g,{countFormat:(0,De.NC)({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")},this.styles.countBadge),f=oe.R3(c,Xo(".quick-input-count"));f.setAttribute("aria-live","polite");const p=new Vo.Z(f,{countFormat:(0,De.NC)({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")},this.styles.countBadge),_=oe.R3(a,Xo(".quick-input-action")),v=this._register(new zo.z(_,this.styles.button));v.label=(0,De.NC)("ok","OK"),this._register(v.onDidClick((e=>{this.onDidAcceptEmitter.fire()})));const b=oe.R3(a,Xo(".quick-input-action")),C=this._register(new zo.z(b,{...this.styles.button,supportIcons:!0}));C.label=(0,De.NC)("custom","Custom"),this._register(C.onDidClick((e=>{this.onDidCustomEmitter.fire()})));const w=oe.R3(d,Xo("#".concat(this.idPrefix,"message.quick-input-message"))),y=this._register(new qo(t,this.styles.progressBar));y.getContainer().classList.add("quick-input-progress");const S=oe.R3(t,Xo(".quick-input-html-widget"));S.tabIndex=-1;const L=oe.R3(t,Xo(".quick-input-description")),k=this.idPrefix+"list",D=this._register(this.instantiationService.createInstance(Io,t,this.options.hoverDelegate,this.options.linkOpenerDelegate,k));u.setAttribute("aria-controls",k),this._register(D.onDidChangeFocus((()=>{var e;u.setAttribute("aria-activedescendant",null!==(e=D.getActiveDescendant())&&void 0!==e?e:"")}))),this._register(D.onChangedAllVisibleChecked((e=>{l.checked=e}))),this._register(D.onChangedVisibleCount((e=>{m.setCount(e)}))),this._register(D.onChangedCheckedCount((e=>{p.setCount(e)}))),this._register(D.onLeave((()=>{setTimeout((()=>{this.controller&&(u.setFocus(),this.controller instanceof Po&&this.controller.canSelectMany&&D.clearFocus())}),0)})));const N=oe.go(t);return this._register(N),this._register(oe.nm(t,oe.tw.FOCUS,(e=>{oe.jg(e.relatedTarget,t)||(this.previousFocusElement=e.relatedTarget instanceof HTMLElement?e.relatedTarget:void 0)}),!0)),this._register(N.onDidBlur((()=>{this.getUI().ignoreFocusOut||this.options.ignoreFocusOut()||this.hide(jn.Jq.Blur),this.previousFocusElement=void 0}))),this._register(oe.nm(t,oe.tw.FOCUS,(e=>{u.setFocus()}))),this._register(oe.mu(t,oe.tw.KEY_DOWN,(e=>{if(!oe.jg(e.target,S))switch(e.keyCode){case 3:oe.zB.stop(e,!0),this.enabled&&this.onDidAcceptEmitter.fire();break;case 9:oe.zB.stop(e,!0),this.hide(jn.Jq.Gesture);break;case 2:if(!e.altKey&&!e.ctrlKey&&!e.metaKey){const i=[".quick-input-list .monaco-action-bar .always-visible",".quick-input-list-entry:hover .monaco-action-bar",".monaco-list-row.focused .monaco-action-bar"];if(t.classList.contains("show-checkboxes")?i.push("input"):i.push("input[type=text]"),this.getUI().list.isDisplayed()&&i.push(".monaco-list"),this.getUI().message&&i.push(".quick-input-message a"),this.getUI().widget){if(oe.jg(e.target,this.getUI().widget))break;i.push(".quick-input-html-widget")}const n=t.querySelectorAll(i.join(", "));e.shiftKey&&e.target===n[0]?(oe.zB.stop(e,!0),D.clearFocus()):!e.shiftKey&&oe.jg(e.target,n[n.length-1])&&(oe.zB.stop(e,!0),n[0].focus())}break;case 10:e.ctrlKey&&(oe.zB.stop(e,!0),this.getUI().list.toggleHover())}}))),this.ui={container:t,styleSheet:i,leftActionBar:o,titleBar:n,title:s,description1:L,description2:h,widget:S,rightActionBar:r,checkAll:l,inputContainer:d,filterContainer:c,inputBox:u,visibleCountContainer:g,visibleCount:m,countContainer:f,count:p,okContainer:_,ok:v,message:w,customButtonContainer:b,customButton:C,list:D,progressBar:y,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,show:e=>this.show(e),hide:()=>this.hide(),setVisibilities:e=>this.setVisibilities(e),setEnabled:e=>this.setEnabled(e),setContextKey:e=>this.options.setContextKey(e),linkOpenerDelegate:e=>this.options.linkOpenerDelegate(e)},this.updateStyles(),this.ui}reparentUI(e){this.ui&&(this._container=e,oe.R3(this._container,this.ui.container))}pick(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn.T.None;return new Promise(((n,o)=>{let s=e=>{var i;s=n,null===(i=t.onKeyMods)||void 0===i||i.call(t,a.keyMods),n(e)};if(i.isCancellationRequested)return void s(void 0);const a=this.createQuickPick();let l;const h=[a,a.onDidAccept((()=>{if(a.canSelectMany)s(a.selectedItems.slice()),a.hide();else{const e=a.activeItems[0];e&&(s(e),a.hide())}})),a.onDidChangeActive((e=>{const i=e[0];i&&t.onDidFocus&&t.onDidFocus(i)})),a.onDidChangeSelection((e=>{if(!a.canSelectMany){const t=e[0];t&&(s(t),a.hide())}})),a.onDidTriggerItemButton((e=>t.onDidTriggerItemButton&&t.onDidTriggerItemButton({...e,removeItem:()=>{const t=a.items.indexOf(e.item);if(-1!==t){const e=a.items.slice(),i=e.splice(t,1),n=a.activeItems.filter((e=>e!==i[0])),o=a.keepScrollPosition;a.keepScrollPosition=!0,a.items=e,n&&(a.activeItems=n),a.keepScrollPosition=o}}}))),a.onDidTriggerSeparatorButton((e=>{var i;return null===(i=t.onDidTriggerSeparatorButton)||void 0===i?void 0:i.call(t,e)})),a.onDidChangeValue((e=>{!l||e||1===a.activeItems.length&&a.activeItems[0]===l||(a.activeItems=[l])})),i.onCancellationRequested((()=>{a.hide()})),a.onDidHide((()=>{(0,r.B9)(h),s(void 0)}))];a.title=t.title,a.canSelectMany=!!t.canPickMany,a.placeholder=t.placeHolder,a.ignoreFocusOut=!!t.ignoreFocusLost,a.matchOnDescription=!!t.matchOnDescription,a.matchOnDetail=!!t.matchOnDetail,a.matchOnLabel=void 0===t.matchOnLabel||t.matchOnLabel,a.quickNavigate=t.quickNavigate,a.hideInput=!!t.hideInput,a.contextKey=t.contextKey,a.busy=!0,Promise.all([e,t.activeItem]).then((e=>{let[t,i]=e;l=i,a.busy=!1,a.items=t,a.canSelectMany&&(a.selectedItems=t.filter((e=>"separator"!==e.type&&e.picked))),l&&(a.activeItems=[l])})),a.show(),Promise.resolve(e).then(void 0,(e=>{o(e),a.hide()}))}))}createQuickPick(){const e=this.getUI(!0);return new Po(e)}createInputBox(){const e=this.getUI(!0);return new Fo(e)}show(e){const t=this.getUI(!0);this.onShowEmitter.fire();const i=this.controller;this.controller=e,null===i||void 0===i||i.didHide(),this.setEnabled(!0),t.leftActionBar.clear(),t.title.textContent="",t.description1.textContent="",t.description2.textContent="",oe.mc(t.widget),t.rightActionBar.clear(),t.checkAll.checked=!1,t.inputBox.placeholder="",t.inputBox.password=!1,t.inputBox.showDecoration(ke.Z.Ignore),t.visibleCount.setCount(0),t.count.setCount(0),oe.mc(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,t.inputBox.toggles=void 0;const n=this.options.backKeybindingLabel();Ro.tooltip=n?(0,De.NC)("quickInput.backWithKeybinding","Back ({0})",n):(0,De.NC)("quickInput.back","Back"),t.container.style.display="",this.updateLayout(),t.inputBox.setFocus()}isVisible(){return!!this.ui&&"none"!==this.ui.container.style.display}setVisibilities(e){const 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.inputContainer.style.display=e.inputBox?"":"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.toggle("show-checkboxes",!!e.checkBox),t.container.classList.toggle("hidden-input",!e.inputBox&&!e.description),this.updateLayout()}setEnabled(e){if(e!==this.enabled){this.enabled=e;for(const t of this.getUI().leftActionBar.viewItems)t.action.enabled=e;for(const t of this.getUI().rightActionBar.viewItems)t.action.enabled=e;this.getUI().checkAll.disabled=!e,this.getUI().inputBox.enabled=e,this.getUI().ok.enabled=e,this.getUI().list.enabled=e}}hide(e){var t,i;const n=this.controller;if(!n)return;n.willHide(e);const o=null===(t=this.ui)||void 0===t?void 0:t.container,s=o&&!oe.b5(o);if(this.controller=null,this.onHideEmitter.fire(),o&&(o.style.display="none"),!s){let e=this.previousFocusElement;for(;e&&!e.offsetParent;)e=null!==(i=e.parentElement)&&void 0!==i?i:void 0;(null===e||void 0===e?void 0:e.offsetParent)?(e.focus(),this.previousFocusElement=void 0):this.options.returnFocus()}n.didHide(e)}layout(e,t){this.dimension=e,this.titleBarOffset=t,this.updateLayout()}updateLayout(){if(this.ui&&this.isVisible()){this.ui.container.style.top="".concat(this.titleBarOffset,"px");const e=this.ui.container.style,t=Math.min(.62*this.dimension.width,Yo.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)}}applyStyles(e){this.styles=e,this.updateStyles()}updateStyles(){if(this.ui){const{quickInputTitleBackground:e,quickInputBackground:t,quickInputForeground:i,widgetBorder:n,widgetShadow:o}=this.styles.widget;this.ui.titleBar.style.backgroundColor=null!==e&&void 0!==e?e:"",this.ui.container.style.backgroundColor=null!==t&&void 0!==t?t:"",this.ui.container.style.color=null!==i&&void 0!==i?i:"",this.ui.container.style.border=n?"1px solid ".concat(n):"",this.ui.container.style.boxShadow=o?"0 0 8px 2px ".concat(o):"",this.ui.list.style(this.styles.list);const s=[];this.styles.pickerGroup.pickerGroupBorder&&s.push(".quick-input-list .quick-input-list-entry { border-top-color: ".concat(this.styles.pickerGroup.pickerGroupBorder,"; }")),this.styles.pickerGroup.pickerGroupForeground&&s.push(".quick-input-list .quick-input-list-separator { color: ".concat(this.styles.pickerGroup.pickerGroupForeground,"; }")),this.styles.pickerGroup.pickerGroupForeground&&s.push(".quick-input-list .quick-input-list-separator-as-item { color: var(--vscode-descriptionForeground); }"),(this.styles.keybindingLabel.keybindingLabelBackground||this.styles.keybindingLabel.keybindingLabelBorder||this.styles.keybindingLabel.keybindingLabelBottomBorder||this.styles.keybindingLabel.keybindingLabelShadow||this.styles.keybindingLabel.keybindingLabelForeground)&&(s.push(".quick-input-list .monaco-keybinding > .monaco-keybinding-key {"),this.styles.keybindingLabel.keybindingLabelBackground&&s.push("background-color: ".concat(this.styles.keybindingLabel.keybindingLabelBackground,";")),this.styles.keybindingLabel.keybindingLabelBorder&&s.push("border-color: ".concat(this.styles.keybindingLabel.keybindingLabelBorder,";")),this.styles.keybindingLabel.keybindingLabelBottomBorder&&s.push("border-bottom-color: ".concat(this.styles.keybindingLabel.keybindingLabelBottomBorder,";")),this.styles.keybindingLabel.keybindingLabelShadow&&s.push("box-shadow: inset 0 -1px 0 ".concat(this.styles.keybindingLabel.keybindingLabelShadow,";")),this.styles.keybindingLabel.keybindingLabelForeground&&s.push("color: ".concat(this.styles.keybindingLabel.keybindingLabelForeground,";")),s.push("}"));const r=s.join("\n");r!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=r)}}};es.MAX_WIDTH=600,es=Yo=$o([Jo(1,be),Jo(2,ve.TG)],es);var ts=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},is=function(e,t){return function(i,n){t(i,n,e)}};let ns=class extends le.bB{get controller(){return this._controller||(this._controller=this._register(this.createController())),this._controller}get hasController(){return!!this._controller}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(Qn))),this._quickAccess}constructor(e,t,i,n,o){super(i),this.instantiationService=e,this.contextKeyService=t,this.layoutService=n,this.configurationService=o,this._onShow=this._register(new re.Q5),this._onHide=this._register(new re.Q5),this.contexts=new Map}createController(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.layoutService,t=arguments.length>1?arguments[1]:void 0;const i={idPrefix:"quickInput_",container:e.activeContainer,ignoreFocusOut:()=>!1,backKeybindingLabel:()=>{},setContextKey:e=>this.setContextKey(e),linkOpenerDelegate:e=>{this.instantiationService.invokeFunction((t=>{t.get(lt.v).open(e,{allowCommands:!0,fromUserGesture:!0})}))},returnFocus:()=>e.focus(),styles:this.computeStyles(),hoverDelegate:this._register(this.instantiationService.createInstance(Bo))},n=this._register(this.instantiationService.createInstance(es,{...i,...t}));return n.layout(e.activeContainerDimension,e.activeContainerOffset.quickPickTop),this._register(e.onDidLayoutActiveContainer((t=>{(0,oe.Jj)(e.activeContainer)===(0,oe.Jj)(n.container)&&n.layout(t,e.activeContainerOffset.quickPickTop)}))),this._register(e.onDidChangeActiveContainer((()=>{n.isVisible()||n.layout(e.activeContainerDimension,e.activeContainerOffset.quickPickTop)}))),this._register(n.onShow((()=>{this.resetContextKeys(),this._onShow.fire()}))),this._register(n.onHide((()=>{this.resetContextKeys(),this._onHide.fire()}))),n}setContextKey(e){let t;e&&(t=this.contexts.get(e),t||(t=new ue.uy(e,!1).bindTo(this.contextKeyService),this.contexts.set(e,t))),t&&t.get()||(this.resetContextKeys(),null===t||void 0===t||t.set(!0))}resetContextKeys(){this.contexts.forEach((e=>{e.get()&&e.reset()}))}pick(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn.T.None;return this.controller.pick(e,t,i)}createQuickPick(){return this.controller.createQuickPick()}createInputBox(){return this.controller.createInputBox()}updateStyles(){this.hasController&&this.controller.applyStyles(this.computeStyles())}computeStyles(){return{widget:{quickInputBackground:(0,it.n_1)(it.zKr),quickInputForeground:(0,it.n_1)(it.tZ6),quickInputTitleBackground:(0,it.n_1)(it.loF),widgetBorder:(0,it.n_1)(it.A42),widgetShadow:(0,it.n_1)(it.rh)},inputBox:ln.Hc,toggle:ln.pl,countBadge:ln.ku,button:ln.wG,progressBar:ln.b5,keybindingLabel:ln.eO,list:(0,ln.TU)({listBackground:it.zKr,listFocusBackground:it.Vqd,listFocusForeground:it.NPS,listInactiveFocusForeground:it.NPS,listInactiveSelectionIconForeground:it.cbQ,listInactiveFocusBackground:it.Vqd,listFocusOutline:it.xL1,listInactiveFocusOutline:it.xL1}),pickerGroup:{pickerGroupBorder:(0,it.n_1)(it.opG),pickerGroupForeground:(0,it.n_1)(it.kJk)}}}};ns=ts([is(0,ve.TG),is(1,ue.i6),is(2,le.XE),is(3,be),is(4,V.Ui)],ns);var os=i(75937),ss=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},rs=function(e,t){return function(i,n){t(i,n,e)}};let as=class extends ns{constructor(e,t,i,n,o,s){super(t,i,n,new Se(e.getContainerDomNode(),o),s),this.host=void 0;const r=hs.get(e);if(r){const t=r.widget;this.host={_serviceBrand:void 0,get mainContainer(){return t.getDomNode()},getContainer:()=>t.getDomNode(),whenContainerStylesLoaded(){},get containers(){return[t.getDomNode()]},get activeContainer(){return t.getDomNode()},get mainContainerDimension(){return e.getLayoutInfo()},get activeContainerDimension(){return e.getLayoutInfo()},get onDidLayoutMainContainer(){return e.onDidLayoutChange},get onDidLayoutActiveContainer(){return e.onDidLayoutChange},get onDidLayoutContainer(){return re.ju.map(e.onDidLayoutChange,(e=>({container:t.getDomNode(),dimension:e})))},get onDidChangeActiveContainer(){return re.ju.None},get onDidAddContainer(){return re.ju.None},get mainContainerOffset(){return{top:0,quickPickTop:0}},get activeContainerOffset(){return{top:0,quickPickTop:0}},focus:()=>e.focus()}}else this.host=void 0}createController(){return super.createController(this.host)}};as=ss([rs(1,ve.TG),rs(2,ue.i6),rs(3,le.XE),rs(4,c.$),rs(5,V.Ui)],as);let ls=class{get activeService(){const e=this.codeEditorService.getFocusedCodeEditor();if(!e)throw new Error("Quick input service needs a focused editor to work.");let t=this.mapEditorToService.get(e);if(!t){const i=t=this.instantiationService.createInstance(as,e);this.mapEditorToService.set(e,t),(0,os.M)(e.onDidDispose)((()=>{i.dispose(),this.mapEditorToService.delete(e)}))}return t}get quickAccess(){return this.activeService.quickAccess}constructor(e,t){this.instantiationService=e,this.codeEditorService=t,this.mapEditorToService=new Map}pick(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:fn.T.None;return this.activeService.pick(e,t,i)}createQuickPick(){return this.activeService.createQuickPick()}createInputBox(){return this.activeService.createInputBox()}};ls=ss([rs(0,ve.TG),rs(1,c.$)],ls);class hs{static get(e){return e.getContribution(hs.ID)}constructor(e){this.editor=e,this.widget=new ds(this.editor)}dispose(){this.widget.dispose()}}hs.ID="editor.controller.quickInput";class ds{constructor(e){this.codeEditor=e,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}getId(){return ds.ID}getDomNode(){return this.domNode}getPosition(){return{preference:2}}dispose(){this.codeEditor.removeOverlayWidget(this)}}ds.ID="editor.contrib.quickInputWidget",(0,d._K)(hs.ID,hs,4);var cs=i(16049),us=i(24587),gs=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ms=function(e,t){return function(i,n){t(i,n,e)}};let fs=class extends r.JT{constructor(e,t,i){super(),this._contextKeyService=e,this._layoutService=t,this._configurationService=i,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new re.Q5,this._onDidChangeReducedMotion=new re.Q5,this._accessibilityModeEnabledContext=ut.U.bindTo(this._contextKeyService);const n=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration((e=>{e.affectsConfiguration("editor.accessibilitySupport")&&(n(),this._onDidChangeScreenReaderOptimized.fire()),e.affectsConfiguration("workbench.reduceMotion")&&(this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._onDidChangeReducedMotion.fire())}))),n(),this._register(this.onDidChangeScreenReaderOptimized((()=>n())));const o=s.E.matchMedia("(prefers-reduced-motion: reduce)");this._systemMotionReduced=o.matches,this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this.initReducedMotionListeners(o)}initReducedMotionListeners(e){this._register((0,oe.nm)(e,"change",(()=>{this._systemMotionReduced=e.matches,"auto"===this._configMotionReduced&&this._onDidChangeReducedMotion.fire()})));const t=()=>{const e=this.isMotionReduced();this._layoutService.mainContainer.classList.toggle("reduce-motion",e),this._layoutService.mainContainer.classList.toggle("enable-motion",!e)};t(),this._register(this.onDidChangeReducedMotion((()=>t())))}get onDidChangeScreenReaderOptimized(){return this._onDidChangeScreenReaderOptimized.event}isScreenReaderOptimized(){const e=this._configurationService.getValue("editor.accessibilitySupport");return"on"===e||"auto"===e&&2===this._accessibilitySupport}get onDidChangeReducedMotion(){return this._onDidChangeReducedMotion.event}isMotionReduced(){const e=this._configMotionReduced;return"on"===e||"auto"===e&&this._systemMotionReduced}getAccessibilitySupport(){return this._accessibilitySupport}};fs=gs([ms(0,ue.i6),ms(1,be),ms(2,V.Ui)],fs);var ps,_s,vs=i(89965),bs=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Cs=function(e,t){return function(i,n){t(i,n,e)}};let ws=class{constructor(e,t){this._commandService=e,this._hiddenStates=new ys(t)}createMenu(e,t,i){return new Ls(e,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...i},this._commandService,t)}resetHiddenStates(e){this._hiddenStates.reset(e)}};ws=bs([Cs(0,Kt.H),Cs(1,vs.Uy)],ws);let ys=ps=class{constructor(e){this._storageService=e,this._disposables=new r.SL,this._onDidChange=new re.Q5,this.onDidChange=this._onDidChange.event,this._ignoreChangeEvent=!1,this._hiddenByDefaultCache=new Map;try{const t=e.get(ps._key,0,"{}");this._data=JSON.parse(t)}catch(t){this._data=Object.create(null)}this._disposables.add(e.onDidChangeValue(0,ps._key,this._disposables)((()=>{if(!this._ignoreChangeEvent)try{const t=e.get(ps._key,0,"{}");this._data=JSON.parse(t)}catch(t){console.log("FAILED to read storage after UPDATE",t)}this._onDidChange.fire()})))}dispose(){this._onDidChange.dispose(),this._disposables.dispose()}_isHiddenByDefault(e,t){var i;return null!==(i=this._hiddenByDefaultCache.get("".concat(e.id,"/").concat(t)))&&void 0!==i&&i}setDefaultState(e,t,i){this._hiddenByDefaultCache.set("".concat(e.id,"/").concat(t),i)}isHidden(e,t){var i,n;const o=this._isHiddenByDefault(e,t),s=null!==(n=null===(i=this._data[e.id])||void 0===i?void 0:i.includes(t))&&void 0!==n&&n;return o?!s:s}updateHidden(e,t,i){this._isHiddenByDefault(e,t)&&(i=!i);const n=this._data[e.id];if(i)if(n){n.indexOf(t)<0&&n.push(t)}else this._data[e.id]=[t];else if(n){const i=n.indexOf(t);i>=0&&(0,_e.LS)(n,i),0===n.length&&delete this._data[e.id]}this._persist()}reset(e){if(void 0===e)this._data=Object.create(null),this._persist();else{for(const{id:t}of e)this._data[t]&&delete this._data[t];this._persist()}}_persist(){try{this._ignoreChangeEvent=!0;const e=JSON.stringify(this._data);this._storageService.store(ps._key,e,0,0)}finally{this._ignoreChangeEvent=!1}}};ys._key="menu.hiddenCommands",ys=ps=bs([Cs(0,vs.Uy)],ys);let Ss=_s=class{constructor(e,t,i,n,o){this._id=e,this._hiddenStates=t,this._collectContextKeysForSubmenus=i,this._commandService=n,this._contextKeyService=o,this._menuGroups=[],this._structureContextKeys=new Set,this._preconditionContextKeys=new Set,this._toggledContextKeys=new Set,this.refresh()}get structureContextKeys(){return this._structureContextKeys}get preconditionContextKeys(){return this._preconditionContextKeys}get toggledContextKeys(){return this._toggledContextKeys}refresh(){this._menuGroups.length=0,this._structureContextKeys.clear(),this._preconditionContextKeys.clear(),this._toggledContextKeys.clear();const e=Wi.BH.getMenuItems(this._id);let t;e.sort(_s._compareMenuItems);for(const i of e){const e=i.group||"";t&&t[0]===e||(t=[e,[]],this._menuGroups.push(t)),t[1].push(i),this._collectContextKeys(i)}}_collectContextKeys(e){if(_s._fillInKbExprKeys(e.when,this._structureContextKeys),(0,Wi.vr)(e)){if(e.command.precondition&&_s._fillInKbExprKeys(e.command.precondition,this._preconditionContextKeys),e.command.toggled){const t=e.command.toggled.condition||e.command.toggled;_s._fillInKbExprKeys(t,this._toggledContextKeys)}}else this._collectContextKeysForSubmenus&&Wi.BH.getMenuItems(e.submenu).forEach(this._collectContextKeys,this)}createActionGroups(e){const t=[];for(const i of this._menuGroups){const[n,o]=i,s=[];for(const t of o)if(this._contextKeyService.contextMatchesRules(t.when)){const i=(0,Wi.vr)(t);i&&this._hiddenStates.setDefaultState(this._id,t.command.id,!!t.isHiddenByDefault);const n=ks(this._id,i?t.command:t,this._hiddenStates);if(i)s.push(new Wi.U8(t.command,t.alt,e,n,this._contextKeyService,this._commandService));else{const i=new _s(t.submenu,this._hiddenStates,this._collectContextKeysForSubmenus,this._commandService,this._contextKeyService).createActionGroups(e),o=zi.Z0.join(...i.map((e=>e[1])));o.length>0&&s.push(new Wi.NZ(t,n,o))}}s.length>0&&t.push([n,s])}return t}static _fillInKbExprKeys(e,t){if(e)for(const i of e.keys())t.add(i)}static _compareMenuItems(e,t){const i=e.group,n=t.group;if(i!==n){if(!i)return 1;if(!n)return-1;if("navigation"===i)return-1;if("navigation"===n)return 1;const e=i.localeCompare(n);if(0!==e)return e}const o=e.order||0,s=t.order||0;return os?1:_s._compareTitles((0,Wi.vr)(e)?e.command.title:e.title,(0,Wi.vr)(t)?t.command.title:t.title)}static _compareTitles(e,t){const i="string"===typeof e?e:e.original,n="string"===typeof t?t:t.original;return i.localeCompare(n)}};Ss=_s=bs([Cs(3,Kt.H),Cs(4,ue.i6)],Ss);let Ls=class{constructor(e,t,i,n,o){this._disposables=new r.SL,this._menuInfo=new Ss(e,t,i.emitEventsForSubmenuChanges,n,o);const s=new ei.pY((()=>{this._menuInfo.refresh(),this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!0,isToggleChange:!0})}),i.eventDebounceDelay);this._disposables.add(s),this._disposables.add(Wi.BH.onDidChangeMenu((t=>{t.has(e)&&s.schedule()})));const a=this._disposables.add(new r.SL);this._onDidChange=new re.D0({onWillAddFirstListener:()=>{a.add(o.onDidChangeContext((e=>{const t=e.affectsSome(this._menuInfo.structureContextKeys),i=e.affectsSome(this._menuInfo.preconditionContextKeys),n=e.affectsSome(this._menuInfo.toggledContextKeys);(t||i||n)&&this._onDidChange.fire({menu:this,isStructuralChange:t,isEnablementChange:i,isToggleChange:n})}))),a.add(t.onDidChange((e=>{this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!1,isToggleChange:!1})})))},onDidRemoveLastListener:a.clear.bind(a),delay:i.eventDebounceDelay,merge:e=>{let t=!1,i=!1,n=!1;for(const o of e)if(t=t||o.isStructuralChange,i=i||o.isEnablementChange,n=n||o.isToggleChange,t&&i&&n)break;return{menu:this,isStructuralChange:t,isEnablementChange:i,isToggleChange:n}}}),this.onDidChange=this._onDidChange.event}getActions(e){return this._menuInfo.createActionGroups(e)}dispose(){this._disposables.dispose(),this._onDidChange.dispose()}};function ks(e,t,i){const n=(0,Wi.f6)(t)?t.submenu.id:t.id,o="string"===typeof t.title?t.title:t.title.value,s=(0,zi.xw)({id:"hide/".concat(e.id,"/").concat(n),label:(0,De.NC)("hide.label","Hide '{0}'",o),run(){i.updateHidden(e,n,!0)}}),r=(0,zi.xw)({id:"toggle/".concat(e.id,"/").concat(n),label:o,get checked(){return!i.isHidden(e,n)},run(){i.updateHidden(e,n,!!this.checked)}});return{hide:s,toggle:r,get isHidden(){return!r.checked}}}Ls=bs([Cs(3,Kt.H),Cs(4,ue.i6)],Ls);var Ds,Ns=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},xs=function(e,t){return function(i,n){t(i,n,e)}};let Es=Ds=class extends r.JT{constructor(e,t){super(),this.layoutService=e,this.logService=t,this.mapTextToType=new Map,this.findText="",this.resources=[],this.resourcesStateHash=void 0,(Ki.G6||Ki.MG)&&this.installWebKitWriteTextWorkaround(),this._register(re.ju.runAndSubscribe(oe.Xo,(e=>{let{window:t,disposables:i}=e;i.add((0,oe.nm)(t.document,"copy",(()=>this.clearResources())))}),{window:s.E,disposables:this._store}))}installWebKitWriteTextWorkaround(){const e=()=>{const e=new ei.CR;this.webKitPendingClipboardWritePromise&&!this.webKitPendingClipboardWritePromise.isSettled&&this.webKitPendingClipboardWritePromise.cancel(),this.webKitPendingClipboardWritePromise=e,navigator.clipboard.write([new ClipboardItem({"text/plain":e.p})]).catch((async t=>{t instanceof Error&&"NotAllowedError"===t.name&&e.isRejected||this.logService.error(t)}))};this._register(re.ju.runAndSubscribe(this.layoutService.onDidAddContainer,(t=>{let{container:i,disposables:n}=t;n.add((0,oe.nm)(i,"click",e)),n.add((0,oe.nm)(i,"keydown",e))}),{container:this.layoutService.mainContainer,disposables:this._store}))}async writeText(e,t){if(this.writeResources([]),t)this.mapTextToType.set(t,e);else{if(this.webKitPendingClipboardWritePromise)return this.webKitPendingClipboardWritePromise.complete(e);try{return await navigator.clipboard.writeText(e)}catch(i){console.error(i)}this.fallbackWriteText(e)}}fallbackWriteText(e){const t=(0,oe.uP)(),i=t.activeElement,n=t.body.appendChild((0,oe.$)("textarea",{"aria-hidden":!0}));n.style.height="1px",n.style.width="1px",n.style.position="absolute",n.value=e,n.focus(),n.select(),t.execCommand("copy"),i instanceof HTMLElement&&i.focus(),t.body.removeChild(n)}async readText(e){if(e)return this.mapTextToType.get(e)||"";try{return await navigator.clipboard.readText()}catch(t){console.error(t)}return""}async readFindText(){return this.findText}async writeFindText(e){this.findText=e}async writeResources(e){0===e.length?this.clearResources():(this.resources=e,this.resourcesStateHash=await this.computeResourcesStateHash())}async readResources(){const e=await this.computeResourcesStateHash();return this.resourcesStateHash!==e&&this.clearResources(),this.resources}async computeResourcesStateHash(){if(0===this.resources.length)return;const e=await this.readText();return(0,Rn.vp)(e.substring(0,Ds.MAX_RESOURCE_STATE_SOURCE_LENGTH))}clearResources(){this.resources=[],this.resourcesStateHash=void 0}};Es.MAX_RESOURCE_STATE_SOURCE_LENGTH=1e3,Es=Ds=Ns([xs(0,be),xs(1,Ue.VZ)],Es);var Is=i(85729),Ts=i(36952),Ms=i(737),As=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Rs=function(e,t){return function(i,n){t(i,n,e)}};const Os="data-keybinding-context";class Ps{constructor(e,t){this._id=e,this._parent=t,this._value=Object.create(null),this._value._contextId=e}get value(){return{...this._value}}setValue(e,t){return this._value[e]!==t&&(this._value[e]=t,!0)}removeValue(e){return e in this._value&&(delete this._value[e],!0)}getValue(e){const t=this._value[e];return"undefined"===typeof t&&this._parent?this._parent.getValue(e):t}}class Fs extends Ps{constructor(){super(-1,null)}setValue(e,t){return!1}removeValue(e){return!1}getValue(e){}}Fs.INSTANCE=new Fs;class Bs extends Ps{constructor(e,t,i){super(e,null),this._configurationService=t,this._values=Ms.Id.forConfigKeys(),this._listener=this._configurationService.onDidChangeConfiguration((e=>{if(7===e.source){const e=Array.from(this._values,(e=>{let[t]=e;return t}));this._values.clear(),i.fire(new Ws(e))}else{const t=[];for(const i of e.affectedKeys){const e="config.".concat(i),n=this._values.findSuperstr(e);void 0!==n&&(t.push(...Ts.$.map(n,(e=>{let[t]=e;return t}))),this._values.deleteSuperstr(e)),this._values.has(e)&&(t.push(e),this._values.delete(e))}i.fire(new Ws(t))}}))}dispose(){this._listener.dispose()}getValue(e){if(0!==e.indexOf(Bs._keyPrefix))return super.getValue(e);if(this._values.has(e))return this._values.get(e);const t=e.substr(Bs._keyPrefix.length),i=this._configurationService.getValue(t);let n;switch(typeof i){case"number":case"boolean":case"string":n=i;break;default:n=Array.isArray(i)?JSON.stringify(i):i}return this._values.set(e,n),n}setValue(e,t){return super.setValue(e,t)}removeValue(e){return super.removeValue(e)}}Bs._keyPrefix="config.";class zs{constructor(e,t,i){this._service=e,this._key=t,this._defaultValue=i,this.reset()}set(e){this._service.setContext(this._key,e)}reset(){"undefined"===typeof this._defaultValue?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}get(){return this._service.getContextKeyValue(this._key)}}class Vs{constructor(e){this.key=e}affectsSome(e){return e.has(this.key)}allKeysContainedIn(e){return this.affectsSome(e)}}class Ws{constructor(e){this.keys=e}affectsSome(e){for(const t of this.keys)if(e.has(t))return!0;return!1}allKeysContainedIn(e){return this.keys.every((t=>e.has(t)))}}class Hs{constructor(e){this.events=e}affectsSome(e){for(const t of this.events)if(t.affectsSome(e))return!0;return!1}allKeysContainedIn(e){return this.events.every((t=>t.allKeysContainedIn(e)))}}class Ks extends r.JT{constructor(e){super(),this._onDidChangeContext=this._register(new re.K3({merge:e=>new Hs(e)})),this.onDidChangeContext=this._onDidChangeContext.event,this._isDisposed=!1,this._myContextId=e}createKey(e,t){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new zs(this,e,t)}bufferChangeEvents(e){this._onDidChangeContext.pause();try{e()}finally{this._onDidChangeContext.resume()}}createScoped(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new js(this,e)}contextMatchesRules(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");const t=this.getContextValuesContainer(this._myContextId);return!e||e.evaluate(t)}getContextKeyValue(e){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(e)}setContext(e,t){if(this._isDisposed)return;const i=this.getContextValuesContainer(this._myContextId);i&&i.setValue(e,t)&&this._onDidChangeContext.fire(new Vs(e))}removeContext(e){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(e)&&this._onDidChangeContext.fire(new Vs(e))}getContext(e){return this._isDisposed?Fs.INSTANCE:this.getContextValuesContainer(function(e){for(;e;){if(e.hasAttribute(Os)){const t=e.getAttribute(Os);return t?parseInt(t,10):NaN}e=e.parentElement}return 0}(e))}dispose(){super.dispose(),this._isDisposed=!0}}let Us=class extends Ks{constructor(e){super(0),this._contexts=new Map,this._lastContextId=0;const t=this._register(new Bs(this._myContextId,e,this._onDidChangeContext));this._contexts.set(this._myContextId,t)}getContextValuesContainer(e){return this._isDisposed?Fs.INSTANCE:this._contexts.get(e)||Fs.INSTANCE}createChildContext(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._myContextId;if(this._isDisposed)throw new Error("ContextKeyService has been disposed");const t=++this._lastContextId;return this._contexts.set(t,new Ps(t,this.getContextValuesContainer(e))),t}disposeContext(e){this._isDisposed||this._contexts.delete(e)}};Us=As([Rs(0,V.Ui)],Us);class js extends Ks{constructor(e,t){if(super(e.createChildContext()),this._parentChangeListener=this._register(new r.XK),this._parent=e,this._updateParentChangeListener(),this._domNode=t,this._domNode.hasAttribute(Os)){let e="";this._domNode.classList&&(e=Array.from(this._domNode.classList.values()).join(", ")),console.error("Element already has context attribute".concat(e?": "+e:""))}this._domNode.setAttribute(Os,String(this._myContextId))}_updateParentChangeListener(){this._parentChangeListener.value=this._parent.onDidChangeContext((e=>{const t=this._parent.getContextValuesContainer(this._myContextId).value;var i;i=t,e.allKeysContainedIn(new Set(Object.keys(i)))||this._onDidChangeContext.fire(e)}))}dispose(){this._isDisposed||(this._parent.disposeContext(this._myContextId),this._domNode.removeAttribute(Os),super.dispose())}getContextValuesContainer(e){return this._isDisposed?Fs.INSTANCE:this._parent.getContextValuesContainer(e)}createChildContext(){let 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)}disposeContext(e){this._isDisposed||this._parent.disposeContext(e)}}Kt.P.registerCommand("_setContext",(function(e,t,i){e.get(ue.i6).createKey(String(t),function(e){return(0,u.rs)(e,(e=>"object"===typeof e&&1===e.$mid?l.o.revive(e).toString():e instanceof l.o?e.toString():void 0))}(i))})),Kt.P.registerCommand({id:"getContextKeyInfo",handler:()=>[...ue.uy.all()].sort(((e,t)=>e.key.localeCompare(t.key))),metadata:{description:(0,De.NC)("getContextKeyInfo","A command that returns information about context keys"),args:[]}}),Kt.P.registerCommand("_generateContextKeyInfo",(function(){const e=[],t=new Set;for(const i of ue.uy.all())t.has(i.key)||(t.add(i.key),e.push(i));e.sort(((e,t)=>e.key.localeCompare(t.key))),console.log(JSON.stringify(e,void 0,2))}));var qs=i(58834);class Gs{constructor(e,t){this.key=e,this.data=t,this.incoming=new Map,this.outgoing=new Map}}class Qs{constructor(e){this._hashFn=e,this._nodes=new Map}roots(){const e=[];for(const t of this._nodes.values())0===t.outgoing.size&&e.push(t);return e}insertEdge(e,t){const i=this.lookupOrInsertNode(e),n=this.lookupOrInsertNode(t);i.outgoing.set(n.key,n),n.incoming.set(i.key,i)}removeNode(e){const t=this._hashFn(e);this._nodes.delete(t);for(const i of this._nodes.values())i.outgoing.delete(t),i.incoming.delete(t)}lookupOrInsertNode(e){const t=this._hashFn(e);let i=this._nodes.get(t);return i||(i=new Gs(t,e),this._nodes.set(t,i)),i}isEmpty(){return 0===this._nodes.size}toString(){const e=[];for(const[t,i]of this._nodes)e.push("".concat(t,"\n\t(-> incoming)[").concat([...i.incoming.keys()].join(", "),"]\n\t(outgoing ->)[").concat([...i.outgoing.keys()].join(","),"]\n"));return e.join("\n")}findCycleSlow(){for(const[e,t]of this._nodes){const i=new Set([e]),n=this._findCycle(t,i);if(n)return n}}_findCycle(e,t){for(const[i,n]of e.outgoing){if(t.has(i))return[...t,i].join(" -> ");t.add(i);const e=this._findCycle(n,t);if(e)return e;t.delete(i)}}}var Zs=i(54731);class Ys extends Error{constructor(e){var t;super("cyclic dependency between services"),this.message=null!==(t=e.findCycleSlow())&&void 0!==t?t:"UNABLE to detect cycle, dumping graph: \n".concat(e.toString())}}class $s{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Zs.y,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2?arguments[2]:void 0,n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];var o;this._services=e,this._strict=t,this._parent=i,this._enableTracing=n,this._activeInstantiations=new Set,this._services.set(ve.TG,this),this._globalGraph=n?null!==(o=null===i||void 0===i?void 0:i._globalGraph)&&void 0!==o?o:new Qs((e=>e)):void 0}createChild(e){return new $s(e,this._strict,this,this._enableTracing)}invokeFunction(e){const t=Js.traceInvocation(this._enableTracing,e);let i=!1;try{const r={get:e=>{if(i)throw(0,Le.L6)("service accessor is only valid during the invocation of its target method");const n=this._getOrCreateServiceInstance(e,t);if(!n)throw new Error("[invokeFunction] unknown service '".concat(e,"'"));return n}};for(var n=arguments.length,o=new Array(n>1?n-1:0),s=1;s1?n-1:0),s=1;s1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0;const n=ve.I8.getServiceDependencies(e).sort(((e,t)=>e.index-t.index)),o=[];for(const r of n){const t=this._getOrCreateServiceInstance(r.id,i);t||this._throwIfStrict("[createInstance] ".concat(e.name," depends on UNKNOWN service ").concat(r.id,"."),!1),o.push(t)}const s=n.length>0?n[0].index:t.length;if(t.length!==s){console.trace("[createInstance] First service dependency of ".concat(e.name," at position ").concat(s+1," conflicts with ").concat(t.length," static arguments"));const i=s-t.length;t=i>0?t.concat(new Array(i)):t.slice(0,s)}return Reflect.construct(e,t.concat(o))}_setServiceInstance(e,t){if(this._services.get(e)instanceof qs.M)this._services.set(e,t);else{if(!this._parent)throw new Error("illegalState - setting UNKNOWN service instance");this._parent._setServiceInstance(e,t)}}_getServiceInstanceOrDescriptor(e){const t=this._services.get(e);return!t&&this._parent?this._parent._getServiceInstanceOrDescriptor(e):t}_getOrCreateServiceInstance(e,t){this._globalGraph&&this._globalGraphImplicitDependency&&this._globalGraph.insertEdge(this._globalGraphImplicitDependency,String(e));const i=this._getServiceInstanceOrDescriptor(e);return i instanceof qs.M?this._safeCreateAndCacheServiceInstance(e,i,t.branch(e,!0)):(t.branch(e,!1),i)}_safeCreateAndCacheServiceInstance(e,t,i){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,i)}finally{this._activeInstantiations.delete(e)}}_createAndCacheServiceInstance(e,t,i){var n;const o=new Qs((e=>e.id.toString()));let s=0;const r=[{id:e,desc:t,_trace:i}];for(;r.length;){const t=r.pop();if(o.lookupOrInsertNode(t),s++>1e3)throw new Ys(o);for(const i of ve.I8.getServiceDependencies(t.desc.ctor)){const s=this._getServiceInstanceOrDescriptor(i.id);if(s||this._throwIfStrict("[createInstance] ".concat(e," depends on ").concat(i.id," which is NOT registered."),!0),null===(n=this._globalGraph)||void 0===n||n.insertEdge(String(t.id),String(i.id)),s instanceof qs.M){const e={id:i.id,desc:s,_trace:t._trace.branch(i.id,!0)};o.insertEdge(t,e),r.push(e)}}}for(;;){const e=o.roots();if(0===e.length){if(!o.isEmpty())throw new Ys(o);break}for(const{data:t}of e){if(this._getServiceInstanceOrDescriptor(t.id)instanceof qs.M){const e=this._createServiceInstanceWithOwner(t.id,t.desc.ctor,t.desc.staticArguments,t.desc.supportsDelayedInstantiation,t._trace);this._setServiceInstance(t.id,e)}o.removeNode(t)}}return this._getServiceInstanceOrDescriptor(e)}_createServiceInstanceWithOwner(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0;if(this._services.get(e)instanceof qs.M)return this._createServiceInstance(e,t,i,n,o);if(this._parent)return this._parent._createServiceInstanceWithOwner(e,t,i,n,o);throw new Error("illegalState - creating UNKNOWN service instance ".concat(t.name))}_createServiceInstance(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>4?arguments[4]:void 0;if(arguments.length>3?arguments[3]:void 0){const o=new $s(void 0,this._strict,this,this._enableTracing);o._globalGraphImplicitDependency=String(e);const s=new Map,a=new ei.R5((()=>{const e=o._createInstance(t,i,n);for(const[t,i]of s){const n=e[t];if("function"===typeof n)for(const t of i)t.disposable=n.apply(e,t.listener)}return s.clear(),e}));return new Proxy(Object.create(null),{get(e,t){if(!a.isInitialized&&"string"===typeof t&&(t.startsWith("onDid")||t.startsWith("onWill"))){let e=s.get(t);e||(e=new ae.S,s.set(t,e));return(i,n,o)=>{if(a.isInitialized)return a.value[t](i,n,o);{const t={listener:[i,n,o],disposable:void 0},s=e.push(t);return(0,r.OF)((()=>{var e;s(),null===(e=t.disposable)||void 0===e||e.dispose()}))}}}if(t in e)return e[t];const i=a.value;let n=i[t];return"function"!==typeof n||(n=n.bind(i),e[t]=n),n},set:(e,t,i)=>(a.value[t]=i,!0),getPrototypeOf:e=>t.prototype})}return this._createInstance(t,i,n)}_throwIfStrict(e,t){if(t&&console.warn(e),this._strict)throw new Error(e)}}class Js{static traceInvocation(e,t){return e?new Js(2,t.name||(new Error).stack.split("\n").slice(3,4).join("\n")):Js._None}static traceCreation(e,t){return e?new Js(1,t.name):Js._None}constructor(e,t){this.type=e,this.name=t,this._start=Date.now(),this._dep=[]}branch(e,t){const i=new Js(3,e.toString());return this._dep.push([e,t,i]),i}stop(){const e=Date.now()-this._start;Js._totals+=e;let t=!1;const i=["".concat(1===this.type?"CREATE":"CALL"," ").concat(this.name),"".concat(function e(i,n){const o=[],s=new Array(i+1).join("\t");for(const[r,a,l]of n._dep)if(a&&l){t=!0,o.push("".concat(s,"CREATES -> ").concat(r));const n=e(i+1,l);n&&o.push(n)}else o.push("".concat(s,"uses -> ").concat(r));return o.join("\n")}(1,this)),"DONE, took ".concat(e.toFixed(2),"ms (grand total ").concat(Js._totals.toFixed(2),"ms)")];(e>2||t)&&Js.all.add(i.join("\n"))}}Js.all=new Set,Js._None=new class extends Js{constructor(){super(0,null)}stop(){}branch(){return this}},Js._totals=0;const Xs=new Set([se.lg.inMemory,se.lg.vscodeSourceControl,se.lg.walkThrough,se.lg.walkThroughSnippet,se.lg.vscodeChatCodeBlock]);class er{constructor(){this._byResource=new Ut.Y9,this._byOwner=new Map}set(e,t,i){let n=this._byResource.get(e);n||(n=new Map,this._byResource.set(e,n)),n.set(t,i);let o=this._byOwner.get(t);o||(o=new Ut.Y9,this._byOwner.set(t,o)),o.set(e,i)}get(e,t){const i=this._byResource.get(e);return null===i||void 0===i?void 0:i.get(t)}delete(e,t){let i=!1,n=!1;const o=this._byResource.get(e);o&&(i=o.delete(t));const s=this._byOwner.get(t);if(s&&(n=s.delete(e)),i!==n)throw new Error("illegal state");return i&&n}values(e){var t,i,n,o;return"string"===typeof e?null!==(i=null===(t=this._byOwner.get(e))||void 0===t?void 0:t.values())&&void 0!==i?i:Ts.$.empty():l.o.isUri(e)?null!==(o=null===(n=this._byResource.get(e))||void 0===n?void 0:n.values())&&void 0!==o?o:Ts.$.empty():Ts.$.map(Ts.$.concat(...this._byOwner.values()),(e=>e[1]))}}class tr{constructor(e){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new Ut.Y9,this._service=e,this._subscription=e.onMarkerChanged(this._update,this)}dispose(){this._subscription.dispose()}_update(e){for(const t of e){const e=this._data.get(t);e&&this._substract(e);const i=this._resourceStats(t);this._add(i),this._data.set(t,i)}}_resourceStats(e){const t={errors:0,warnings:0,infos:0,unknowns:0};if(Xs.has(e.scheme))return t;for(const{severity:i}of this._service.read({resource:e}))i===Sn.ZL.Error?t.errors+=1:i===Sn.ZL.Warning?t.warnings+=1:i===Sn.ZL.Info?t.infos+=1:t.unknowns+=1;return t}_substract(e){this.errors-=e.errors,this.warnings-=e.warnings,this.infos-=e.infos,this.unknowns-=e.unknowns}_add(e){this.errors+=e.errors,this.warnings+=e.warnings,this.infos+=e.infos,this.unknowns+=e.unknowns}}class ir{constructor(){this._onMarkerChanged=new re.D0({delay:0,merge:ir._merge}),this.onMarkerChanged=this._onMarkerChanged.event,this._data=new er,this._stats=new tr(this)}dispose(){this._stats.dispose(),this._onMarkerChanged.dispose()}remove(e,t){for(const i of t||[])this.changeOne(e,i,[])}changeOne(e,t,i){if((0,_e.XY)(i)){this._data.delete(t,e)&&this._onMarkerChanged.fire([t])}else{const n=[];for(const o of i){const i=ir._toMarker(e,t,o);i&&n.push(i)}this._data.set(t,e,n),this._onMarkerChanged.fire([t])}}static _toMarker(e,t,i){let{code:n,severity:o,message:s,source:r,startLineNumber:a,startColumn:l,endLineNumber:h,endColumn:d,relatedInformation:c,tags:u}=i;if(s)return a=a>0?a:1,l=l>0?l:1,h=h>=a?h:a,d=d>0?d:l,{resource:t,owner:e,code:n,severity:o,message:s,source:r,startLineNumber:a,startColumn:l,endLineNumber:h,endColumn:d,relatedInformation:c,tags:u}}changeAll(e,t){const i=[],n=this._data.values(e);if(n)for(const o of n){const t=Ts.$.first(o);t&&(i.push(t.resource),this._data.delete(t.resource,e))}if((0,_e.Of)(t)){const n=new Ut.Y9;for(const{resource:o,marker:s}of t){const t=ir._toMarker(e,o,s);if(!t)continue;const r=n.get(o);r?r.push(t):(n.set(o,[t]),i.push(o))}for(const[t,i]of n)this._data.set(t,e,i)}i.length>0&&this._onMarkerChanged.fire(i)}read(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Object.create(null),{owner:t,resource:i,severities:n,take:o}=e;if((!o||o<0)&&(o=-1),t&&i){const e=this._data.get(i,t);if(e){const t=[];for(const i of e)if(ir._accept(i,n)){const e=t.push(i);if(o>0&&e===o)break}return t}return[]}if(t||i){const e=this._data.values(null!==i&&void 0!==i?i:t),s=[];for(const t of e)for(const e of t)if(ir._accept(e,n)){const t=s.push(e);if(o>0&&t===o)return s}return s}{const e=[];for(const t of this._data.values())for(const i of t)if(ir._accept(i,n)){const t=e.push(i);if(o>0&&t===o)return e}return e}}static _accept(e,t){return void 0===t||(t&e.severity)===e.severity}static _merge(e){const t=new Ut.Y9;for(const i of e)for(const e of i)t.set(e,!0);return Array.from(t.keys())}}class nr extends r.JT{constructor(){super(...arguments),this._configurationModel=new Zt}get configurationModel(){return this._configurationModel}reload(){return this.resetConfigurationModel(),this.configurationModel}getConfigurationDefaultOverrides(){return{}}resetConfigurationModel(){this._configurationModel=new Zt;const e=Gt.B.as(qt.IP.Configuration).getConfigurationProperties();this.updateConfigurationModel(Object.keys(e),e)}updateConfigurationModel(e,t){const i=this.getConfigurationDefaultOverrides();for(const n of e){const e=i[n],o=t[n];void 0!==e?this._configurationModel.addValue(n,e):o?this._configurationModel.addValue(n,o.default):this._configurationModel.removeValue(n)}}}var or=i(68633);class sr extends r.JT{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];super(),this.logger=new Ue.qA([e,...t]),this._register(e.onDidChangeLogLevel((e=>this.setLevel(e))))}get onDidChangeLogLevel(){return this.logger.onDidChangeLogLevel}setLevel(e){this.logger.setLevel(e)}getLevel(){return this.logger.getLevel()}trace(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;n1?t-1:0),n=1;n1?t-1:0),n=1;n1?t-1:0),n=1;n1?t-1:0),n=1;n=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},hr=function(e,t){return function(i,n){t(i,n,e)}};class dr{constructor(e){this.disposed=!1,this.model=e,this._onWillDispose=new re.Q5}get textEditorModel(){return this.model}dispose(){this.disposed=!0,this._onWillDispose.fire()}}let cr=class{constructor(e){this.modelService=e}createModelReference(e){const t=this.modelService.getModel(e);return t?Promise.resolve(new r.Jz(new dr(t))):Promise.reject(new Error("Model not found"))}};cr=lr([hr(0,L.q)],cr);class ur{show(){return ur.NULL_PROGRESS_RUNNER}async showWhile(e,t){await e}}ur.NULL_PROGRESS_RUNNER={done:()=>{},total:()=>{},worked:()=>{}};class gr{info(e){return this.notify({severity:ke.Z.Info,message:e})}warn(e){return this.notify({severity:ke.Z.Warning,message:e})}error(e){return this.notify({severity:ke.Z.Error,message:e})}notify(e){switch(e.severity){case ke.Z.Error:console.error(e.message);break;case ke.Z.Warning:console.warn(e.message);break;default:console.log(e.message)}return gr.NO_OP}prompt(e,t,i,n){return gr.NO_OP}status(e,t){return r.JT.None}}gr.NO_OP=new xe.EO;let mr=class{constructor(e){this._onWillExecuteCommand=new re.Q5,this._onDidExecuteCommand=new re.Q5,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this._instantiationService=e}executeCommand(e){const t=Kt.P.getCommand(e);if(!t)return Promise.reject(new Error("command '".concat(e,"' not found")));try{for(var i=arguments.length,n=new Array(i>1?i-1:0),o=1;o{const t=new r.SL;t.add(oe.nm(e,oe.tw.KEY_DOWN,(e=>{const t=new Ct.y(e);this._dispatch(t,t.target)&&(t.preventDefault(),t.stopPropagation())}))),t.add(oe.nm(e,oe.tw.KEY_UP,(e=>{const t=new Ct.y(e);this._singleModifierDispatch(t,t.target)&&t.preventDefault()}))),this._domNodeListeners.push(new pr(e,t))},l=e=>{for(let t=0;t{e.getOption(61)||a(e.getContainerDomNode())};this._register(s.onCodeEditorAdd(h)),this._register(s.onCodeEditorRemove((e=>{e.getOption(61)||l(e.getContainerDomNode())}))),s.listCodeEditors().forEach(h);const d=e=>{a(e.getContainerDomNode())};this._register(s.onDiffEditorAdd(d)),this._register(s.onDiffEditorRemove((e=>{l(e.getContainerDomNode())}))),s.listDiffEditors().forEach(d)}addDynamicKeybinding(e,t,i,n){return(0,r.F8)(Kt.P.registerCommand(e,i),this.addDynamicKeybindings([{keybinding:t,command:e,when:n}]))}addDynamicKeybindings(e){const t=e.map((e=>{var t;return{keybinding:(0,Ot.Z9)(e.keybinding,ct.OS),command:null!==(t=e.command)&&void 0!==t?t:null,commandArgs:e.commandArgs,when:e.when,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}}));return this._dynamicKeybindings=this._dynamicKeybindings.concat(t),this.updateResolver(),(0,r.OF)((()=>{for(let e=0;ethis._log(e)))}return this._cachedResolver}_documentHasFocus(){return s.E.document.hasFocus()}_toNormalizedKeybindingItems(e,t){const i=[];let n=0;for(const o of e){const e=o.when||void 0,s=o.keybinding;if(s){const r=pi.resolveKeybinding(s,ct.OS);for(const s of r)i[n++]=new ci(s,o.command,o.commandArgs,e,t,null,!1)}else i[n++]=new ci(void 0,o.command,o.commandArgs,e,t,null,!1)}return i}resolveKeyboardEvent(e){const t=new Ot.$M(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,e.keyCode);return new pi([t],ct.OS)}};fr=lr([hr(0,ue.i6),hr(1,Kt.H),hr(2,bi.b),hr(3,xe.lT),hr(4,Ue.VZ),hr(5,c.$)],fr);class pr extends r.JT{constructor(e,t){super(),this.domNode=e,this._register(t)}}function _r(e){return e&&"object"===typeof e&&(!e.overrideIdentifier||"string"===typeof e.overrideIdentifier)&&(!e.resource||e.resource instanceof l.o)}class vr{constructor(){this._onDidChangeConfiguration=new re.Q5,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;const e=new nr;this._configuration=new Jt(e.reload(),new Zt,new Zt,new Zt),e.dispose()}getValue(e,t){const i="string"===typeof e?e:void 0,n=_r(e)?e:_r(t)?t:{};return this._configuration.getValue(i,n,void 0)}updateValues(e){const t={data:this._configuration.toData()},i=[];for(const n of e){const[e,t]=n;this.getValue(e)!==t&&(this._configuration.updateValue(e,t),i.push(e))}if(i.length>0){const e=new Xt({keys:i,overrides:[]},t,this._configuration);e.source=8,this._onDidChangeConfiguration.fire(e)}return Promise.resolve()}updateValue(e,t,i,n){return this.updateValues([[e,t]])}inspect(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._configuration.inspect(e,t,void 0)}}let br=class{constructor(e,t,i){this.configurationService=e,this.modelService=t,this.languageService=i,this._onDidChangeConfiguration=new re.Q5,this.configurationService.onDidChangeConfiguration((e=>{this._onDidChangeConfiguration.fire({affectedKeys:e.affectedKeys,affectsConfiguration:(t,i)=>e.affectsConfiguration(i)})}))}getValue(e,t,i){const n=zt.L.isIPosition(t)?t:null,o=n?"string"===typeof i?i:void 0:"string"===typeof t?t:void 0,s=e?this.getLanguage(e,n):void 0;return"undefined"===typeof o?this.configurationService.getValue({resource:e,overrideIdentifier:s}):this.configurationService.getValue(o,{resource:e,overrideIdentifier:s})}getLanguage(e,t){const i=this.modelService.getModel(e);return i?t?i.getLanguageIdAtPosition(t.lineNumber,t.column):i.getLanguageId():this.languageService.guessLanguageIdByFilepathOrFirstLine(e)}};br=lr([hr(0,V.Ui),hr(1,L.q),hr(2,b.O)],br);let Cr=class{constructor(e){this.configurationService=e}getEOL(e,t){const i=this.configurationService.getValue("files.eol",{overrideIdentifier:t,resource:e});return i&&"string"===typeof i&&"auto"!==i?i:ct.IJ||ct.dz?"\n":"\r\n"}};Cr=lr([hr(0,V.Ui)],Cr);class wr{constructor(){const e=l.o.from({scheme:wr.SCHEME,authority:"model",path:"/"});this.workspace={id:Ci.p$,folders:[new Ci.md({uri:e,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(e){return e&&e.scheme===wr.SCHEME?this.workspace.folders[0]:null}}function yr(e,t,i){if(!t)return;if(!(e instanceof vr))return;const n=[];Object.keys(t).forEach((e=>{(0,Ft.ei)(e)&&n.push(["editor.".concat(e),t[e]]),i&&(0,Ft.Pe)(e)&&n.push(["diffEditor.".concat(e),t[e]])})),n.length>0&&e.updateValues(n)}wr.SCHEME="inmemory";let Sr=class{constructor(e){this._modelService=e}hasPreviewHandler(){return!1}async apply(e,t){const i=Array.isArray(e)?e:Pt.fo.convert(e),n=new Map;for(const r of i){if(!(r instanceof Pt.Gl))throw new Error("bad edit - only text edits are supported");const e=this._modelService.getModel(r.resource);if(!e)throw new Error("bad edit - model not found");if("number"===typeof r.versionId&&e.getVersionId()!==r.versionId)throw new Error("bad state - model changed in the meantime");let t=n.get(e);t||(t=[],n.set(e,t)),t.push(Bt.h.replaceMove(Vt.e.lift(r.textEdit.range),r.textEdit.text))}let o=0,s=0;for(const[r,a]of n)r.pushStackElement(),r.pushEditOperations([],a,(()=>[])),r.pushStackElement(),s+=1,o+=a.length;return{ariaSummary:a.WU(wi.iN.bulkEditServiceSummary,o,s),isApplied:o>0}}};Sr=lr([hr(0,L.q)],Sr);let Lr=class extends Et{constructor(e,t){super(e),this._codeEditorService=t}showContextView(e,t,i){if(!t){const e=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();e&&(t=e.getContainerDomNode())}return super.showContextView(e,t,i)}};Lr=lr([hr(0,be),hr(1,c.$)],Lr);let kr=class extends un{constructor(e,t,i,n,o,s){super(e,t,i,n,o,s),this.configure({blockMouse:!1})}};kr=lr([hr(0,bi.b),hr(1,xe.lT),hr(2,ot.u),hr(3,st.d),hr(4,Wi.co),hr(5,ue.i6)],kr);var Dr;(0,ge.z)(V.Ui,vr,0),(0,ge.z)(Ht.V,br,0),(0,ge.z)(Ht.y,Cr,0),(0,ge.z)(Ci.ec,wr,0),(0,ge.z)(_i.e,class{getUriLabel(e,t){return"file"===e.scheme?e.fsPath:e.path}getUriBasenameLabel(e){return(0,yi.EZ)(e)}},0),(0,ge.z)(bi.b,class{publicLog2(){}},0),(0,ge.z)(Ne.S,class{async confirm(e){return{confirmed:this.doConfirm(e.message,e.detail),checkboxChecked:!1}}doConfirm(e,t){let i=e;return t&&(i=i+"\n\n"+t),s.E.confirm(i)}async prompt(e){var t,i;let n;if(this.doConfirm(e.message,e.detail)){const o=[...null!==(t=e.buttons)&&void 0!==t?t:[]];e.cancelButton&&"string"!==typeof e.cancelButton&&"boolean"!==typeof e.cancelButton&&o.push(e.cancelButton),n=await(null===(i=o[0])||void 0===i?void 0:i.run({checkboxChecked:!1}))}return{result:n}}async error(e,t){await this.prompt({type:ke.Z.Error,message:e,detail:t})}},0),(0,ge.z)(ar.Y,class{constructor(){this.isExtensionDevelopment=!1,this.isBuilt=!1}},0),(0,ge.z)(xe.lT,gr,0),(0,ge.z)(Sn.lT,ir,0),(0,ge.z)(b.O,class extends Fi{constructor(){super()}},0),(0,ge.z)(us.Z,cs.nI,0),(0,ge.z)(Ue.VZ,class extends sr{constructor(){super(new Ue.kw)}},0),(0,ge.z)(L.q,Hn,0),(0,ge.z)(Tn.i,xn,0),(0,ge.z)(ue.i6,Us,0),(0,ge.z)(vi.R9,class{withProgress(e,t,i){return t({report:()=>{}})}},0),(0,ge.z)(vi.ek,ur,0),(0,ge.z)(vs.Uy,vs.vm,0),(0,ge.z)(yn.p,g.eu,0),(0,ge.z)(Pt.vu,Sr,0),(0,ge.z)(Si.Y,class{constructor(){this._neverEmitter=new re.Q5,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}},0),(0,ge.z)(Wt.S,cr,0),(0,ge.z)(ut.F,fs,0),(0,ge.z)(ao.Lw,ao.XN,0),(0,ge.z)(Kt.H,mr,0),(0,ge.z)(st.d,fr,0),(0,ge.z)(jn.eJ,ls,0),(0,ge.z)(ot.u,Lr,0),(0,ge.z)(lt.v,wn,0),(0,ge.z)(Is.p,Es,0),(0,ge.z)(ot.i,kr,0),(0,ge.z)(Wi.co,ws,0),(0,ge.z)(or.IV,class{async playSignal(e,t){}},0),function(e){const t=new Zs.y;for(const[r,a]of(0,ge.d)())t.set(r,a);const i=new $s(t,!0);t.set(ve.TG,i),e.get=function(e){n||s({});const o=t.get(e);if(!o)throw new Error("Missing service "+e);return o instanceof qs.M?i.invokeFunction((t=>t.get(e))):o};let n=!1;const o=new re.Q5;function s(e){if(n)return i;n=!0;for(const[i,n]of(0,ge.d)())t.get(i)||t.set(i,n);for(const i in e)if(e.hasOwnProperty(i)){const n=(0,ve.yh)(i);t.get(n)instanceof qs.M&&t.set(n,e[i])}const s=(0,rr.n)();for(const t of s)try{i.createInstance(t)}catch(r){(0,Le.dL)(r)}return o.fire(),i}e.initialize=s,e.withServices=function(e){if(n)return e();const t=new r.SL,i=t.add(o.event((()=>{i.dispose(),t.add(e())})));return t}}(Dr||(Dr={}));var Nr=i(95233),xr=i(14561),Er=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ir=function(e,t){return function(i,n){t(i,n,e)}};let Tr=0,Mr=!1;let Ar=class extends ie.Gm{constructor(e,t,i,n,o,r,a,l,h,d,c,u){const g={...t};g.ariaLabel=g.ariaLabel||wi.B8.editorViewAccessibleLabel,g.ariaLabel=g.ariaLabel+";"+wi.B8.accessibilityHelpMessage,super(e,g,{},i,n,o,r,l,h,d,c,u),this._standaloneKeybindingService=a instanceof fr?a:null,function(e){if(!e){if(Mr)return;Mr=!0}te.wW(e||s.E.document.body)}(g.ariaContainerElement),(0,xr.rM)(((e,t)=>i.createInstance(nt.mQ,e,t,{})))}addCommand(e,t,i){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const n="DYNAMIC_"+ ++Tr,o=ue.Ao.deserialize(i);return this._standaloneKeybindingService.addDynamicKeybinding(n,e,t,o),n}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(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"),r.JT.None;const i=e.id,n=e.label,o=ue.Ao.and(ue.Ao.equals("editorId",this.getId()),ue.Ao.deserialize(e.precondition)),s=e.keybindings,a=ue.Ao.and(o,ue.Ao.deserialize(e.keybindingContext)),l=e.contextMenuGroupId||null,h=e.contextMenuOrder||0,d=function(i){for(var n=arguments.length,o=new Array(n>1?n-1:0),s=1;s{this._actions.delete(i)}))),c}_triggerCommand(e,t){if(this._codeEditorService instanceof pe)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};Ar=Er([Ir(2,ve.TG),Ir(3,c.$),Ir(4,Kt.H),Ir(5,ue.i6),Ir(6,st.d),Ir(7,le.XE),Ir(8,xe.lT),Ir(9,ut.F),Ir(10,C.c_),Ir(11,tt.p)],Ar);let Rr=class extends Ar{constructor(e,t,i,n,o,s,r,a,l,h,d,c,u,g,m){const f={...t};yr(h,f,!1);const p=a.registerEditorContainer(e);"string"===typeof f.theme&&a.setTheme(f.theme),"undefined"!==typeof f.autoDetectHighContrast&&a.setAutoDetectHighContrast(Boolean(f.autoDetectHighContrast));const _=f.model;let v;if(delete f.model,super(e,f,i,n,o,s,r,a,l,d,g,m),this._configurationService=h,this._standaloneThemeService=a,this._register(p),"undefined"===typeof _){const e=u.getLanguageIdByMimeType(f.language)||f.language||w.bd;v=Pr(c,u,f.value||"",e,void 0),this._ownsModel=!0}else v=_,this._ownsModel=!1;if(this._attachModel(v),v){const e={oldModelUrl:null,newModelUrl:v.uri};this._onDidChangeModel.fire(e)}}dispose(){super.dispose()}updateOptions(e){yr(this._configurationService,e,!1),"string"===typeof e.theme&&this._standaloneThemeService.setTheme(e.theme),"undefined"!==typeof e.autoDetectHighContrast&&this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};Rr=Er([Ir(2,ve.TG),Ir(3,c.$),Ir(4,Kt.H),Ir(5,ue.i6),Ir(6,st.d),Ir(7,us.Z),Ir(8,xe.lT),Ir(9,V.Ui),Ir(10,ut.F),Ir(11,L.q),Ir(12,b.O),Ir(13,C.c_),Ir(14,tt.p)],Rr);let Or=class extends Nr.p{constructor(e,t,i,n,o,s,r,a,l,h,d,c){const u={...t};yr(a,u,!0);const g=s.registerEditorContainer(e);"string"===typeof u.theme&&s.setTheme(u.theme),"undefined"!==typeof u.autoDetectHighContrast&&s.setAutoDetectHighContrast(Boolean(u.autoDetectHighContrast)),super(e,u,{},n,i,o,c,h),this._configurationService=a,this._standaloneThemeService=s,this._register(g)}dispose(){super.dispose()}updateOptions(e){yr(this._configurationService,e,!0),"string"===typeof e.theme&&this._standaloneThemeService.setTheme(e.theme),"undefined"!==typeof e.autoDetectHighContrast&&this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)),super.updateOptions(e)}_createInnerEditor(e,t,i){return e.createInstance(Ar,t,i)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,i){return this.getModifiedEditor().addCommand(e,t,i)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};function Pr(e,t,i,n,o){if(i=i||"",!n){const n=i.indexOf("\n");let s=i;return-1!==n&&(s=i.substring(0,n)),Fr(e,i,t.createByFilepathOrFirstLine(o||null,s),o)}return Fr(e,i,t.createById(n),o)}function Fr(e,t,i,n){return e.createModel(t,i,n)}Or=Er([Ir(2,ve.TG),Ir(3,ue.i6),Ir(4,c.$),Ir(5,us.Z),Ir(6,xe.lT),Ir(7,V.Ui),Ir(8,ot.i),Ir(9,vi.ek),Ir(10,Is.p),Ir(11,or.IV)],Or);var Br=i(59130),zr=i(5545),Vr=i(52910),Wr=i(52938),Hr=i(89314),Kr=i(57866),Ur=i(67078),jr=i(54081),qr=i(60548),Gr=i(11630),Qr=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Zr=function(e,t){return function(i,n){t(i,n,e)}};class Yr{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}}let $r=class extends r.JT{constructor(e,t,i,n){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=i,this._instantiationService=n,this._viewModel=(0,Wr.uh)(this,void 0),this._collapsed=(0,Br.nK)(this,(e=>{var t;return null===(t=this._viewModel.read(e))||void 0===t?void 0:t.collapsed.read(e)})),this._editorContentHeight=(0,Wr.uh)(this,500),this.contentHeight=(0,Br.nK)(this,(e=>(this._collapsed.read(e)?0:this._editorContentHeight.read(e))+this._outerEditorHeight)),this._modifiedContentWidth=(0,Wr.uh)(this,0),this._modifiedWidth=(0,Wr.uh)(this,0),this._originalContentWidth=(0,Wr.uh)(this,0),this._originalWidth=(0,Wr.uh)(this,0),this.maxScroll=(0,Br.nK)(this,(e=>{const t=this._modifiedContentWidth.read(e)-this._modifiedWidth.read(e),i=this._originalContentWidth.read(e)-this._originalWidth.read(e);return t>i?{maxScroll:t,width:this._modifiedWidth.read(e)}:{maxScroll:i,width:this._originalWidth.read(e)}})),this._elements=(0,oe.h)("div.multiDiffEntry",[(0,oe.h)("div.header@header",[(0,oe.h)("div.header-content",[(0,oe.h)("div.collapse-button@collapseButton"),(0,oe.h)("div.file-path",[(0,oe.h)("div.title.modified.show-file-icons@primaryPath",[]),(0,oe.h)("div.status.deleted@status",["R"]),(0,oe.h)("div.title.original.show-file-icons@secondaryPath",[])]),(0,oe.h)("div.actions@actions")])]),(0,oe.h)("div.editorParent",[(0,oe.h)("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(Nr.p,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode},{})),this.isModifedFocused=Jr(this.editor.getModifiedEditor()),this.isOriginalFocused=Jr(this.editor.getOriginalEditor()),this.isFocused=(0,Br.nK)(this,(e=>this.isModifedFocused.read(e)||this.isOriginalFocused.read(e))),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=new r.SL,this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const o=new zo.z(this._elements.collapseButton,{});this._register((0,Br.EH)((e=>{o.element.className="",o.icon=this._collapsed.read(e)?Qi.l.chevronRight:Qi.l.chevronDown}))),this._register(o.onDidClick((()=>{var e;null===(e=this._viewModel.get())||void 0===e||e.collapsed.set(!this._collapsed.get(),void 0)}))),this._register((0,Br.EH)((e=>{this._elements.editor.style.display=this._collapsed.read(e)?"none":"block"}))),this._register(this.editor.getModifiedEditor().onDidLayoutChange((e=>{const t=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(t,void 0)}))),this._register(this.editor.getOriginalEditor().onDidLayoutChange((e=>{const t=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(t,void 0)}))),this._register(this.editor.onDidContentSizeChange((e=>{(0,Wr.Bl)((t=>{this._editorContentHeight.set(e.contentHeight,t),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),t),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),t)}))}))),this._register(this.editor.getOriginalEditor().onDidScrollChange((e=>{if(this._isSettingScrollTop)return;if(!e.scrollTopChanged||!this._data)return;const t=e.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(t)}))),this._register((0,Br.EH)((e=>{const t=this.isFocused.read(e);this._elements.root.classList.toggle("focused",t)}))),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._register(this._instantiationService.createInstance(qr.r,this._elements.actions,Wi.eH.MultiDiffEditorFileToolbar,{actionRunner:this._register(new Gr.D((()=>{var e;return null===(e=this._viewModel.get())||void 0===e?void 0:e.modifiedUri}))),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:e=>e.startsWith("navigation")},actionViewItemProvider:(e,t)=>(0,Vi.Id)(n,e,t)}))}setScrollLeft(e){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(e):this.editor.getOriginalEditor().setScrollLeft(e)}setData(e){function t(e){return{...e,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}this._data=e;const i=e.viewModel.entry.value;i.onOptionsDidChange&&this._dataStore.add(i.onOptionsDidChange((()=>{var e;this.editor.updateOptions(t(null!==(e=i.options)&&void 0!==e?e:{}))}))),(0,Wr.Bl)((n=>{var o,s,r,a;null===(o=this._resourceLabel)||void 0===o||o.setUri(null!==(s=e.viewModel.modifiedUri)&&void 0!==s?s:e.viewModel.originalUri,{strikethrough:void 0===e.viewModel.modifiedUri});let l=!1,h=!1,d=!1,c="";e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(c="R",l=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(c="A",d=!0):(c="D",h=!0),this._elements.status.classList.toggle("renamed",l),this._elements.status.classList.toggle("deleted",h),this._elements.status.classList.toggle("added",d),this._elements.status.innerText=c,null===(r=this._resourceLabel2)||void 0===r||r.setUri(l?e.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(e.viewModel,n),this.editor.setModel(e.viewModel.diffEditorViewModel,n),this.editor.updateOptions(t(null!==(a=i.options)&&void 0!==a?a:{}))}))}render(e,t,i,n){this._elements.root.style.visibility="visible",this._elements.root.style.top="".concat(e.start,"px"),this._elements.root.style.height="".concat(e.length,"px"),this._elements.root.style.width="".concat(t,"px"),this._elements.root.style.position="absolute";const o=e.length-this._headerHeight,s=Math.max(0,Math.min(n.start-e.start,o));this._elements.header.style.transform="translateY(".concat(s,"px)"),(0,Wr.Bl)((i=>{this.editor.layout({width:t-16-2,height:e.length-this._outerEditorHeight})}));try{this._isSettingScrollTop=!0,this._lastScrollTop=i,this.editor.getOriginalEditor().setScrollTop(i)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",s>0||i>0),this._elements.header.classList.toggle("collapsed",s===o)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};function Jr(e){return(0,Br.rD)((t=>{const i=new r.SL;return i.add(e.onDidFocusEditorWidget((()=>t(!0)))),i.add(e.onDidBlurEditorWidget((()=>t(!1)))),i}),(()=>e.hasTextFocus()))}$r=Qr([Zr(3,ve.TG)],$r);class Xr{constructor(e){this._create=e,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(e){var t;let i;if(0===this._unused.size)i=this._create(e),this._itemData.set(i,e);else{const n=[...this._unused.values()];i=null!==(t=n.find((t=>this._itemData.get(t).getId()===e.getId())))&&void 0!==t?t:n[0],this._unused.delete(i),this._itemData.set(i,e),i.setData(e)}return this._used.add(i),{object:i,dispose:()=>{this._used.delete(i),this._unused.size>5?i.dispose():this._unused.add(i)}}}dispose(){for(const e of this._used)e.dispose();for(const e of this._unused)e.dispose();this._used.clear(),this._unused.clear()}}var ea=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ta=function(e,t){return function(i,n){t(i,n,e)}};let ia=class extends r.JT{constructor(e,t,i,n,o,s){super(),this._element=e,this._dimension=t,this._viewModel=i,this._workbenchUIElementFactory=n,this._parentContextKeyService=o,this._parentInstantiationService=s,this._elements=(0,oe.h)("div.monaco-component.multiDiffEditor",[(0,oe.h)("div@content",{style:{overflow:"hidden"}}),(0,oe.h)("div.monaco-editor@overflowWidgetsDomNode",{})]),this._sizeObserver=this._register(new zr.DU(this._element,void 0)),this._objectPool=this._register(new Xr((e=>{const t=this._instantiationService.createInstance($r,this._elements.content,this._elements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return t.setData(e),t}))),this._scrollable=this._register(new Hr.Rm({forceIntegerValues:!1,scheduleAtNextAnimationFrame:e=>(0,oe.jL)((0,oe.Jj)(this._element),e),smoothScrollDuration:100})),this._scrollableElement=this._register(new Gi.$Z(this._elements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this.scrollTop=(0,Br.rD)(this._scrollableElement.onScroll,(()=>this._scrollableElement.getScrollPosition().scrollTop)),this.scrollLeft=(0,Br.rD)(this._scrollableElement.onScroll,(()=>this._scrollableElement.getScrollPosition().scrollLeft)),this._viewItems=(0,Br.Be)(this,((e,t)=>{const i=this._viewModel.read(e);if(!i)return[];return i.items.read(e).map((e=>{var i;const n=t.add(new na(e,this._objectPool,this.scrollLeft,(e=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+e})}))),o=null===(i=this._lastDocStates)||void 0===i?void 0:i[n.getKey()];return o&&(0,Wr.PS)((e=>{n.setViewState(o,e)})),n}))})),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,((e,t)=>e.reduce(((e,i)=>e+i.contentHeight.read(t)+this._spaceBetweenPx),0))),this.activeDiffItem=(0,Br.nK)(this,(e=>this._viewItems.read(e).find((t=>{var i;return null===(i=t.template.read(e))||void 0===i?void 0:i.isFocused.read(e)})))),this.lastActiveDiffItem=(0,Br.bx)(((e,t)=>{var i;return null!==(i=this.activeDiffItem.read(e))&&void 0!==i?i:t})),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._parentInstantiationService.createChild(new Zs.y([ue.i6,this._contextKeyService])),this._lastDocStates={},this._contextKeyService.createKey(jr.u.inMultiDiffEditor.key,!0),this._register((0,Br.gp)(((e,t)=>{const i=this._viewModel.read(e);if(i&&i.contextKeys)for(const[n,o]of Object.entries(i.contextKeys)){const e=this._contextKeyService.createKey(n,void 0);e.set(o),t.add((0,r.OF)((()=>e.reset())))}})));const a=this._parentContextKeyService.createKey(jr.u.multiDiffEditorAllCollapsed.key,!1);this._register((0,Br.EH)((e=>{const t=this._viewModel.read(e);if(t){const i=t.items.read(e).every((t=>t.collapsed.read(e)));a.set(i)}}))),this._register((0,Br.EH)((e=>{const t=this.lastActiveDiffItem.read(e);(0,Wr.PS)((i=>{var n;null===(n=this._viewModel.read(e))||void 0===n||n.activeDiffItem.set(null===t||void 0===t?void 0:t.viewModel,i)}))}))),this._register((0,Br.EH)((e=>{const t=this._dimension.read(e);this._sizeObserver.observe(t)}))),this._elements.content.style.position="relative",this._register((0,Br.EH)((e=>{const t=this._sizeObserver.height.read(e);this._elements.root.style.height="".concat(t,"px");const i=this._totalHeight.read(e);this._elements.content.style.height="".concat(i,"px");const n=this._sizeObserver.width.read(e);let o=n;const s=this._viewItems.read(e),r=(0,Vr.dI)(s,(t=>t.maxScroll.read(e).maxScroll));if(r){o=n+r.maxScroll.read(e).maxScroll}this._scrollableElement.setScrollDimensions({width:n,height:t,scrollHeight:i,scrollWidth:o})}))),e.replaceChildren(this._scrollableElement.getDomNode()),this._register((0,r.OF)((()=>{e.replaceChildren()}))),this._register(this._register((0,Br.EH)((e=>{(0,Wr.Bl)((t=>{this.render(e)}))}))))}render(e){const t=this.scrollTop.read(e);let i=0,n=0,o=0;const s=this._sizeObserver.height.read(e),r=Kr.q.ofStartAndLength(t,s),a=this._sizeObserver.width.read(e);for(const l of this._viewItems.read(e)){const h=l.contentHeight.read(e),d=Math.min(h,s),c=Kr.q.ofStartAndLength(n,d),u=Kr.q.ofStartAndLength(o,h);if(u.isBefore(r))i-=h-d,l.hide();else if(u.isAfter(r))l.hide();else{const e=Math.max(0,Math.min(r.start-u.start,h-d));i-=e;const n=Kr.q.ofStartAndLength(t+i,s);l.render(c,e,a,n)}n+=d+this._spaceBetweenPx,o+=h+this._spaceBetweenPx}this._elements.content.style.transform="translateY(".concat(-(t+i),"px)")}};ia=ea([ta(4,ue.i6),ta(5,ve.TG)],ia);class na extends r.JT{constructor(e,t,i,n){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=i,this._deltaScrollVertical=n,this._templateRef=this._register((0,Wr.DN)(this,void 0)),this.contentHeight=(0,Br.nK)(this,(e=>{var t,i,n;return null!==(n=null===(i=null===(t=this._templateRef.read(e))||void 0===t?void 0:t.object.contentHeight)||void 0===i?void 0:i.read(e))&&void 0!==n?n:this.viewModel.lastTemplateData.read(e).contentHeight})),this.maxScroll=(0,Br.nK)(this,(e=>{var t,i;return null!==(i=null===(t=this._templateRef.read(e))||void 0===t?void 0:t.object.maxScroll.read(e))&&void 0!==i?i:{maxScroll:0,scrollWidth:0}})),this.template=(0,Br.nK)(this,(e=>{var t;return null===(t=this._templateRef.read(e))||void 0===t?void 0:t.object})),this._isHidden=(0,Br.uh)(this,!1),this._register((0,Br.EH)((e=>{var t;const i=this._scrollLeft.read(e);null===(t=this._templateRef.read(e))||void 0===t||t.object.setScrollLeft(i)}))),this._register((0,Br.EH)((e=>{const t=this._templateRef.read(e);if(!t)return;if(!this._isHidden.read(e))return;t.object.isFocused.read(e)||this._clear()})))}dispose(){this._clear(),super.dispose()}toString(){var e;return"VirtualViewItem(".concat(null===(e=this.viewModel.entry.value.modified)||void 0===e?void 0:e.uri.toString(),")")}getKey(){return this.viewModel.getKey()}setViewState(e,t){var i;this.viewModel.collapsed.set(e.collapsed,t),this._updateTemplateData(t);const n=this.viewModel.lastTemplateData.get(),o=null===(i=e.selections)||void 0===i?void 0:i.map(Ur.Y.liftSelection);this.viewModel.lastTemplateData.set({...n,selections:o},t);const s=this._templateRef.get();s&&o&&s.object.editor.setSelections(o)}_updateTemplateData(e){var t;const i=this._templateRef.get();i&&this.viewModel.lastTemplateData.set({contentHeight:i.object.contentHeight.get(),selections:null!==(t=i.object.editor.getSelections())&&void 0!==t?t:void 0},e)}_clear(){const e=this._templateRef.get();e&&(0,Wr.PS)((t=>{this._updateTemplateData(t),e.object.hide(),this._templateRef.set(void 0,t)}))}hide(){this._isHidden.set(!0,void 0)}render(e,t,i,n){this._isHidden.set(!1,void 0);let o=this._templateRef.get();if(!o){o=this._objectPool.getUnusedObj(new Yr(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(o,void 0);const e=this.viewModel.lastTemplateData.get().selections;e&&o.object.editor.setSelections(e)}o.object.render(e,i,t,n)}}(0,it.P6G)("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},(0,De.NC)("multiDiffEditor.headerBackground","The background color of the diff editor's header")),(0,it.P6G)("multiDiffEditor.background",{dark:"editorBackground",light:"editorBackground",hcDark:"editorBackground",hcLight:"editorBackground"},(0,De.NC)("multiDiffEditor.background","The background color of the multi file diff editor")),(0,it.P6G)("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},(0,De.NC)("multiDiffEditor.border","The border color of the multi file diff editor"));var oa=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},sa=function(e,t){return function(i,n){t(i,n,e)}};let ra=class extends r.JT{constructor(e,t,i){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=i,this._dimension=(0,Br.uh)(this,void 0),this._viewModel=(0,Br.uh)(this,void 0),this._widgetImpl=(0,Br.Be)(this,((e,t)=>((0,zr.NW)($r,e),t.add(this._instantiationService.createInstance((0,zr.NW)(ia,e),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory))))),this._register((0,Br.jx)(this._widgetImpl))}};function aa(e,t,i){return Dr.initialize(i||{}).createInstance(Rr,e,t)}function la(e){return Dr.get(c.$).onCodeEditorAdd((t=>{e(t)}))}function ha(e){return Dr.get(c.$).onDiffEditorAdd((t=>{e(t)}))}function da(){return Dr.get(c.$).listCodeEditors()}function ca(){return Dr.get(c.$).listDiffEditors()}function ua(e,t,i){return Dr.initialize(i||{}).createInstance(Or,e,t)}function ga(e,t){const i=Dr.initialize(t||{});return new ra(e,{},i)}function ma(e){if("string"!==typeof e.id||"function"!==typeof e.run)throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return Kt.P.registerCommand(e.id,e.run)}function fa(e){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!");const t=ue.Ao.deserialize(e.precondition),i=new r.SL;if(i.add(Kt.P.registerCommand(e.id,(function(i){for(var n=arguments.length,o=new Array(n>1?n-1:0),s=1;sPromise.resolve(e.run(i,...n))))}))),e.contextMenuGroupId){const n={command:{id:e.id,title:e.label},when:t,group:e.contextMenuGroupId,order:e.contextMenuOrder||0};i.add(Wi.BH.appendMenuItem(Wi.eH.EditorContext,n))}if(Array.isArray(e.keybindings)){const n=Dr.get(st.d);if(n instanceof fr){const o=ue.Ao.and(t,ue.Ao.deserialize(e.keybindingContext));i.add(n.addDynamicKeybindings(e.keybindings.map((t=>({keybinding:t,command:e.id,when:o})))))}else console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService")}return i}function pa(e){return _a([e])}function _a(e){const t=Dr.get(st.d);return t instanceof fr?t.addDynamicKeybindings(e.map((e=>({keybinding:e.keybinding,command:e.command,commandArgs:e.commandArgs,when:ue.Ao.deserialize(e.when)})))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),r.JT.None)}function va(e,t,i){const n=Dr.get(b.O),o=n.getLanguageIdByMimeType(t)||t;return Pr(Dr.get(L.q),n,e,o,i)}function ba(e,t){const i=Dr.get(b.O),n=i.getLanguageIdByMimeType(t)||t||w.bd;e.setLanguage(i.createById(n))}function Ca(e,t,i){if(e){Dr.get(Sn.lT).changeOne(t,e.uri,i)}}function wa(e){Dr.get(Sn.lT).changeAll(e,[])}function ya(e){return Dr.get(Sn.lT).read(e)}function Sa(e){return Dr.get(Sn.lT).onMarkerChanged(e)}function La(e){return Dr.get(L.q).getModel(e)}function ka(){return Dr.get(L.q).getModels()}function Da(e){return Dr.get(L.q).onModelAdded(e)}function Na(e){return Dr.get(L.q).onModelRemoved(e)}function xa(e){return Dr.get(L.q).onModelLanguageChanged((t=>{e({model:t.model,oldLanguage:t.oldLanguageId})}))}function Ea(e){return function(e,t,i){return new m(e,t,i)}(Dr.get(L.q),Dr.get(C.c_),e)}function Ia(e,t){const i=Dr.get(b.O),n=Dr.get(us.Z);return X.colorizeElement(n,i,e,t).then((()=>{n.registerEditorContainer(e)}))}function Ta(e,t,i){const n=Dr.get(b.O);return Dr.get(us.Z).registerEditorContainer(s.E.document.body),X.colorize(n,e,t,i)}function Ma(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4;return Dr.get(us.Z).registerEditorContainer(s.E.document.body),X.colorizeModelLine(e,t,i)}function Aa(e,t){v.RW.getOrCreate(t);const i=function(e){const t=v.RW.get(e);return t||{getInitialState:()=>y.TJ,tokenize:(t,i,n)=>(0,y.Ri)(e,n)}}(t),n=(0,a.uq)(e),o=[];let s=i.getInitialState();for(let r=0,a=n.length;r("string"===typeof t&&(t=l.o.parse(t)),e.open(t))})}function za(e){return Dr.get(c.$).registerCodeEditorOpenHandler((async(t,i,n)=>{var o;if(!i)return null;const s=null===(o=t.options)||void 0===o?void 0:o.selection;let r;return s&&"number"===typeof s.endLineNumber&&"number"===typeof s.endColumn?r=s:s&&(r={lineNumber:s.startLineNumber,column:s.startColumn}),await e.openCodeEditor(i,t.resource,r)?i:null}))}ra=oa([sa(2,ve.TG)],ra);var Va=i(89652);function Wa(e,t){return"boolean"===typeof e?e:t}function Ha(e,t){return"string"===typeof e?e:t}function Ka(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t&&(e=e.map((function(e){return e.toLowerCase()})));const i=function(e){const t={};for(const i of e)t[i]=!0;return t}(e);return t?function(e){return void 0!==i[e.toLowerCase()]&&i.hasOwnProperty(e.toLowerCase())}:function(e){return void 0!==i[e]&&i.hasOwnProperty(e)}}function Ua(e,t,i){t=t.replace(/@@/g,"\x01");let n,o=0;do{n=!1,t=t.replace(/@(\w+)/g,(function(i,o){n=!0;let s="";if("string"===typeof e[o])s=e[o];else{if(!(e[o]&&e[o]instanceof RegExp))throw void 0===e[o]?P(e,"language definition does not contain attribute '"+o+"', used at: "+t):P(e,"attribute reference '"+o+"' must be a string, used at: "+t);s=e[o].source}return A(s)?"":"(?:"+s+")"})),o++}while(n&&o<5);t=t.replace(/\x01/g,"@");const s=(e.ignoreCase?"i":"")+(e.unicode?"u":"");if(i){if(t.match(/\$[sS](\d\d?)/g)){let i=null,n=null;return o=>(n&&i===o||(i=o,n=new RegExp(function(e,t,i){let n=null;return t.replace(/\$[sS](\d\d?)/g,(function(t,o){return null===n&&(n=i.split("."),n.unshift(i)),!A(o)&&o=100){n-=100;const e=i.split(".");if(e.unshift(i),n=0&&(n.tokenSubst=!0),"string"===typeof i.bracket)if("@open"===i.bracket)n.bracket=1;else{if("@close"!==i.bracket)throw P(e,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+t);n.bracket=-1}if(i.next){if("string"!==typeof i.next)throw P(e,"the next state must be a string value in rule: "+t);{let o=i.next;if(!/^(@pop|@push|@popall)$/.test(o)&&("@"===o[0]&&(o=o.substr(1)),o.indexOf("$")<0&&!function(e,t){let i=t;for(;i&&i.length>0;){if(e.stateNames[i])return!0;const t=i.lastIndexOf(".");i=t<0?null:i.substr(0,t)}return!1}(e,F(e,o,"",[],""))))throw P(e,"the next state '"+i.next+"' is not defined in rule: "+t);n.next=o}}return"number"===typeof i.goBack&&(n.goBack=i.goBack),"string"===typeof i.switchTo&&(n.switchTo=i.switchTo),"string"===typeof i.log&&(n.log=i.log),"string"===typeof i.nextEmbedded&&(n.nextEmbedded=i.nextEmbedded,e.usesEmbedded=!0),n}}if(Array.isArray(i)){const n=[];for(let o=0,s=i.length;o0&&"^"===i[0],this.name=this.name+": "+i,this.regex=Ua(e,"^(?:"+(this.matchOnlyAtLineStart?i.substr(1):i)+")",!0)}setAction(e,t){this.action=qa(e,this.name,t)}resolveRegex(e){return this.regex instanceof RegExp?this.regex:this.regex(e)}}function Qa(e,t){if(!t||"object"!==typeof t)throw new Error("Monarch: expecting a language definition object");const i={};i.languageId=e,i.includeLF=Wa(t.includeLF,!1),i.noThrow=!1,i.maxStack=100,i.start="string"===typeof t.start?t.start:null,i.ignoreCase=Wa(t.ignoreCase,!1),i.unicode=Wa(t.unicode,!1),i.tokenPostfix=Ha(t.tokenPostfix,"."+i.languageId),i.defaultToken=Ha(t.defaultToken,"source"),i.usesEmbedded=!1;const n=t;function o(e,s,r){for(const a of r){let r=a.include;if(r){if("string"!==typeof r)throw P(i,"an 'include' attribute must be a string at: "+e);if("@"===r[0]&&(r=r.substr(1)),!t.tokenizer[r])throw P(i,"include target '"+r+"' is not defined at: "+e);o(e+"."+r,s,t.tokenizer[r])}else{const t=new Ga(e);if(Array.isArray(a)&&a.length>=1&&a.length<=3)if(t.setRegex(n,a[0]),a.length>=3)if("string"===typeof a[1])t.setAction(n,{token:a[1],next:a[2]});else{if("object"!==typeof a[1])throw P(i,"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);{const e=a[1];e.next=a[2],t.setAction(n,e)}}else t.setAction(n,a[1]);else{if(!a.regex)throw P(i,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+e);a.name&&"string"===typeof a.name&&(t.name=a.name),a.matchOnlyAtStart&&(t.matchOnlyAtLineStart=Wa(a.matchOnlyAtLineStart,!1)),t.setRegex(n,a.regex),t.setAction(n,a.action)}s.push(t)}}}if(n.languageId=e,n.includeLF=i.includeLF,n.ignoreCase=i.ignoreCase,n.unicode=i.unicode,n.noThrow=i.noThrow,n.usesEmbedded=i.usesEmbedded,n.stateNames=t.tokenizer,n.defaultToken=i.defaultToken,!t.tokenizer||"object"!==typeof t.tokenizer)throw P(i,"a language definition must define the 'tokenizer' attribute as an object");i.tokenizer=[];for(const r in t.tokenizer)if(t.tokenizer.hasOwnProperty(r)){i.start||(i.start=r);const e=t.tokenizer[r];i.tokenizer[r]=new Array,o("tokenizer."+r,i.tokenizer[r],e)}if(i.usesEmbedded=n.usesEmbedded,t.brackets){if(!Array.isArray(t.brackets))throw P(i,"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"}];const s=[];for(const r of t.brackets){let e=r;if(e&&Array.isArray(e)&&3===e.length&&(e={token:e[2],open:e[0],close:e[1]}),e.open===e.close)throw P(i,"open and close brackets in a 'brackets' attribute must be different: "+e.open+"\n hint: use the 'bracket' attribute if matching on equal brackets is required.");if("string"!==typeof e.open||"string"!==typeof e.token||"string"!==typeof e.close)throw P(i,"every element in the 'brackets' array must be a '{open,close,token}' object or array");s.push({token:e.token+i.tokenPostfix,open:R(i,e.open),close:R(i,e.close)})}return i.brackets=s,i.noThrow=!0,i}function Za(e){w.dQ.registerLanguage(e)}function Ya(){let e=[];return e=e.concat(w.dQ.getLanguages()),e}function $a(e){return Dr.get(b.O).languageIdCodec.encodeLanguageId(e)}function Ja(e,t){return Dr.withServices((()=>{const i=Dr.get(b.O).onDidRequestRichLanguageFeatures((n=>{n===e&&(i.dispose(),t())}));return i}))}function Xa(e,t){return Dr.withServices((()=>{const i=Dr.get(b.O).onDidRequestBasicLanguageFeatures((n=>{n===e&&(i.dispose(),t())}));return i}))}function el(e,t){if(!Dr.get(b.O).isRegisteredLanguageId(e))throw new Error("Cannot set configuration for unknown language ".concat(e));return Dr.get(C.c_).register(e,t,100)}class tl{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if("function"===typeof this._actual.tokenize)return il.adaptTokenize(this._languageId,this._actual,e,i);throw new Error("Not supported!")}tokenizeEncoded(e,t,i){const n=this._actual.tokenizeEncoded(e,i);return new v.DI(n.tokens,n.endState)}}class il{constructor(e,t,i,n){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=n}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let n=0;for(let o=0,s=e.length;o0&&o[s-1]===a)continue;let h=e.startIndex;0===l?h=0:h{const i=await Promise.resolve(t.create());return i?"function"===typeof i.getInitialState?sl(e,i):new Y(Dr.get(b.O),Dr.get(us.Z),e,Qa(e,i),Dr.get(V.Ui)):null}));return v.RW.registerFactory(e,i)}function al(e,t){if(!Dr.get(b.O).isRegisteredLanguageId(e))throw new Error("Cannot set tokens provider for unknown language ".concat(e));return nl(t)?rl(e,{create:()=>t}):v.RW.register(e,sl(e,t))}function ll(e,t){return nl(t)?rl(e,{create:()=>t}):v.RW.register(e,(t=>new Y(Dr.get(b.O),Dr.get(us.Z),e,Qa(e,t),Dr.get(V.Ui)))(t))}function hl(e,t){return Dr.get(tt.p).referenceProvider.register(e,t)}function dl(e,t){return Dr.get(tt.p).renameProvider.register(e,t)}function cl(e,t){return Dr.get(tt.p).newSymbolNamesProvider.register(e,t)}function ul(e,t){return Dr.get(tt.p).signatureHelpProvider.register(e,t)}function gl(e,t){return Dr.get(tt.p).hoverProvider.register(e,{provideHover:(e,i,n)=>{const o=e.getWordAtPosition(i);return Promise.resolve(t.provideHover(e,i,n)).then((e=>{if(e)return!e.range&&o&&(e.range=new Vt.e(i.lineNumber,o.startColumn,i.lineNumber,o.endColumn)),e.range||(e.range=new Vt.e(i.lineNumber,i.column,i.lineNumber,i.column)),e}))}})}function ml(e,t){return Dr.get(tt.p).documentSymbolProvider.register(e,t)}function fl(e,t){return Dr.get(tt.p).documentHighlightProvider.register(e,t)}function pl(e,t){return Dr.get(tt.p).linkedEditingRangeProvider.register(e,t)}function _l(e,t){return Dr.get(tt.p).definitionProvider.register(e,t)}function vl(e,t){return Dr.get(tt.p).implementationProvider.register(e,t)}function bl(e,t){return Dr.get(tt.p).typeDefinitionProvider.register(e,t)}function Cl(e,t){return Dr.get(tt.p).codeLensProvider.register(e,t)}function wl(e,t,i){return Dr.get(tt.p).codeActionProvider.register(e,{providedCodeActionKinds:null===i||void 0===i?void 0:i.providedCodeActionKinds,documentation:null===i||void 0===i?void 0:i.documentation,provideCodeActions:(e,i,n,o)=>{const s=Dr.get(Sn.lT).read({resource:e.uri}).filter((e=>Vt.e.areIntersectingOrTouching(e,i)));return t.provideCodeActions(e,i,{markers:s,only:n.only,trigger:n.trigger},o)},resolveCodeAction:t.resolveCodeAction})}function yl(e,t){return Dr.get(tt.p).documentFormattingEditProvider.register(e,t)}function Sl(e,t){return Dr.get(tt.p).documentRangeFormattingEditProvider.register(e,t)}function Ll(e,t){return Dr.get(tt.p).onTypeFormattingEditProvider.register(e,t)}function kl(e,t){return Dr.get(tt.p).linkProvider.register(e,t)}function Dl(e,t){return Dr.get(tt.p).completionProvider.register(e,t)}function Nl(e,t){return Dr.get(tt.p).colorProvider.register(e,t)}function xl(e,t){return Dr.get(tt.p).foldingRangeProvider.register(e,t)}function El(e,t){return Dr.get(tt.p).declarationProvider.register(e,t)}function Il(e,t){return Dr.get(tt.p).selectionRangeProvider.register(e,t)}function Tl(e,t){return Dr.get(tt.p).documentSemanticTokensProvider.register(e,t)}function Ml(e,t){return Dr.get(tt.p).documentRangeSemanticTokensProvider.register(e,t)}function Al(e,t){return Dr.get(tt.p).inlineCompletionsProvider.register(e,t)}function Rl(e,t){return Dr.get(tt.p).inlineEditProvider.register(e,t)}function Ol(e,t){return Dr.get(tt.p).inlayHintsProvider.register(e,t)}var Pl=i(44492);n.BH.wrappingIndent.defaultValue=0,n.BH.glyphMargin.defaultValue=!1,n.BH.autoIndent.defaultValue=3,n.BH.overviewRulerLanes.defaultValue=2,Pl.xC.setFormatterSelector(((e,t,i)=>Promise.resolve(e[0])));const Fl=(0,o.O)();Fl.editor={create:aa,getEditors:da,getDiffEditors:ca,onDidCreateEditor:la,onDidCreateDiffEditor:ha,createDiffEditor:ua,addCommand:ma,addEditorAction:fa,addKeybindingRule:pa,addKeybindingRules:_a,createModel:va,setModelLanguage:ba,setModelMarkers:Ca,getModelMarkers:ya,removeAllMarkers:wa,onDidChangeMarkers:Sa,getModels:ka,getModel:La,onDidCreateModel:Da,onWillDisposeModel:Na,onDidChangeModelLanguage:xa,createWebWorker:Ea,colorizeElement:Ia,colorize:Ta,colorizeModelLine:Ma,tokenize:Aa,defineTheme:Ra,setTheme:Oa,remeasureFonts:Pa,registerCommand:Fa,registerLinkOpener:Ba,registerEditorOpener:za,AccessibilitySupport:k.ao,ContentWidgetPositionPreference:k.r3,CursorChangeReason:k.Vi,DefaultEndOfLine:k._x,EditorAutoIndentStrategy:k.rf,EditorOption:k.wT,EndOfLinePreference:k.gm,EndOfLineSequence:k.jl,MinimapPosition:k.F5,MinimapSectionHeaderStyle:k.WG,MouseTargetType:k.MG,OverlayWidgetPositionPreference:k.E$,OverviewRulerLane:k.sh,GlyphMarginLane:k.U,RenderLineNumbersType:k.Lu,RenderMinimap:k.vQ,ScrollbarVisibility:k.g_,ScrollType:k.g4,TextEditorCursorBlinkingStyle:k.In,TextEditorCursorStyle:k.d2,TrackedRangeStickiness:k.OI,WrappingIndent:k.up,InjectedTextCursorStops:k.RM,PositionAffinity:k.py,ShowLightbulbIconMode:k.$r,ConfigurationChangedEvent:n.Bb,BareFontInfo:p.E4,FontInfo:p.pR,TextModelResolvedOptions:S.dJ,FindMatch:S.tk,ApplyUpdateResult:n.rk,EditorZoom:f.C,createMultiFileDiffEditor:ga,EditorType:_.g,EditorOptions:n.BH},Fl.languages={register:Za,getLanguages:Ya,onLanguage:Ja,onLanguageEncountered:Xa,getEncodedLanguageId:$a,setLanguageConfiguration:el,setColorMap:ol,registerTokensProviderFactory:rl,setTokensProvider:al,setMonarchTokensProvider:ll,registerReferenceProvider:hl,registerRenameProvider:dl,registerNewSymbolNameProvider:cl,registerCompletionItemProvider:Dl,registerSignatureHelpProvider:ul,registerHoverProvider:gl,registerDocumentSymbolProvider:ml,registerDocumentHighlightProvider:fl,registerLinkedEditingRangeProvider:pl,registerDefinitionProvider:_l,registerImplementationProvider:vl,registerTypeDefinitionProvider:bl,registerCodeLensProvider:Cl,registerCodeActionProvider:wl,registerDocumentFormattingEditProvider:yl,registerDocumentRangeFormattingEditProvider:Sl,registerOnTypeFormattingEditProvider:Ll,registerLinkProvider:kl,registerColorProvider:Nl,registerFoldingRangeProvider:xl,registerDeclarationProvider:El,registerSelectionRangeProvider:Il,registerDocumentSemanticTokensProvider:Tl,registerDocumentRangeSemanticTokensProvider:Ml,registerInlineCompletionsProvider:Al,registerInlineEditProvider:Rl,registerInlayHintsProvider:Ol,DocumentHighlightKind:k.MY,CompletionItemKind:k.cm,CompletionItemTag:k.we,CompletionItemInsertTextRule:k.a7,SymbolKind:k.cR,SymbolTag:k.r4,IndentAction:k.wU,CompletionTriggerKind:k.Ij,SignatureHelpTriggerKind:k.WW,InlayHintKind:k.gl,InlineCompletionTriggerKind:k.bw,InlineEditTriggerKind:k.rn,CodeActionTriggerType:k.np,NewSymbolNameTag:k.w,PartialAcceptTriggerKind:k.NA,FoldingRangeKind:v.AD,SelectedSuggestionInfo:v.ln};const Bl=Fl.CancellationTokenSource,zl=Fl.Emitter,Vl=Fl.KeyCode,Wl=Fl.KeyMod,Hl=Fl.Position,Kl=Fl.Range,Ul=Fl.Selection,jl=Fl.SelectionDirection,ql=Fl.MarkerSeverity,Gl=Fl.MarkerTag,Ql=Fl.Uri,Zl=Fl.Token,Yl=Fl.editor,$l=Fl.languages,Jl=globalThis.MonacoEnvironment;((null===Jl||void 0===Jl?void 0:Jl.globalAPI)||"function"===typeof define&&i.amdO)&&(globalThis.monaco=Fl),"undefined"!==typeof globalThis.require&&"function"===typeof globalThis.require.config&&globalThis.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"]})},16049:(e,t,i)=>{i.d(t,{kR:()=>M,MU:()=>A,nI:()=>V,rW:()=>T,TG:()=>I});var n=i(85714),o=i(42606),s=i(89652),r=i(24219),a=i(761),l=i(55562);class h{constructor(e,t,i,n,o){this._parsedThemeRuleBrand=void 0,this.token=e,this.index=t,this.fontStyle=i,this.foreground=n,this.background=o}}const d=/^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;class c{constructor(){this._lastColorId=0,this._id2color=[],this._color2id=new Map}getId(e){if(null===e)return 0;const t=e.match(d);if(!t)throw new Error("Illegal value for token color: "+e);e=t[1].toUpperCase();let i=this._color2id.get(e);return i||(i=++this._lastColorId,this._color2id.set(e,i),this._id2color[i]=s.Il.fromHex("#"+e),i)}getColorMap(){return this._id2color.slice(0)}}class u{static createFromRawTokenTheme(e,t){return this.createFromParsedTokenTheme(function(e){if(!e||!Array.isArray(e))return[];const t=[];let i=0;for(let n=0,o=e.length;n{const i=function(e,t){return et?1:0}(e.token,t.token);return 0!==i?i:e.index-t.index}));let i=0,n="000000",o="ffffff";for(;e.length>=1&&""===e[0].token;){const t=e.shift();-1!==t.fontStyle&&(i=t.fontStyle),null!==t.foreground&&(n=t.foreground),null!==t.background&&(o=t.background)}const s=new c;for(const d of t)s.getId(d);const r=s.getId(n),a=s.getId(o),l=new m(i,r,a),h=new f(l);for(let d=0,c=e.length;d>>0,this._cache.set(t,i)}return(i|e<<0)>>>0}}const g=/\b(comment|string|regex|regexp)\b/;class m{constructor(e,t,i){this._themeTrieElementRuleBrand=void 0,this._fontStyle=e,this._foreground=t,this._background=i,this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}clone(){return new m(this._fontStyle,this._foreground,this._background)}acceptOverwrite(e,t,i){-1!==e&&(this._fontStyle=e),0!==t&&(this._foreground=t),0!==i&&(this._background=i),this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}}class f{constructor(e){this._themeTrieElementBrand=void 0,this._mainRule=e,this._children=new Map}match(e){if(""===e)return this._mainRule;const t=e.indexOf(".");let i,n;-1===t?(i=e,n=""):(i=e.substring(0,t),n=e.substring(t+1));const o=this._children.get(i);return"undefined"!==typeof o?o.match(n):this._mainRule}insert(e,t,i,n){if(""===e)return void this._mainRule.acceptOverwrite(t,i,n);const o=e.indexOf(".");let s,r;-1===o?(s=e,r=""):(s=e.substring(0,o),r=e.substring(o+1));let a=this._children.get(s);"undefined"===typeof a&&(a=new f(this._mainRule.clone()),this._children.set(s,a)),a.insert(r,t,i,n)}}var p=i(36729),_=i(87701);const v={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:{[_.cvW]:"#FFFFFE",[_.NOs]:"#000000",[_.ES4]:"#E5EBF1",[p.gS]:"#D3D3D3",[p.qe]:"#939393",[_.Rzx]:"#ADD6FF4D"}},b={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:{[_.cvW]:"#1E1E1E",[_.NOs]:"#D4D4D4",[_.ES4]:"#3A3D41",[p.gS]:"#404040",[p.qe]:"#707070",[_.Rzx]:"#ADD6FF26"}},C={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:{[_.cvW]:"#000000",[_.NOs]:"#FFFFFF",[p.gS]:"#FFFFFF",[p.qe]:"#FFFFFF"}},w={base:"hc-light",inherit:!1,rules:[{token:"",foreground:"292929",background:"FFFFFF"},{token:"invalid",foreground:"B5200D"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"264F70"},{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:"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:"B5200D"},{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:"264F78"},{token:"attribute.value",foreground:"0451A5"},{token:"string",foreground:"A31515"},{token:"string.sql",foreground:"B5200D"},{token:"keyword",foreground:"0000FF"},{token:"keyword.flow",foreground:"AF00DB"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[_.cvW]:"#FFFFFF",[_.NOs]:"#292929",[p.gS]:"#292929",[p.qe]:"#292929"}};var y=i(70311),S=i(17903),L=i(89599),k=i(75826),D=i(62502),N=i(38261);class x{getIcon(e){const t=(0,N.Ks)();let i=e.defaults;for(;D.k.isThemeIcon(i);){const e=t.getIcon(i.id);if(!e)return;i=e.defaults}return i}}var E=i(29880);const I="vs",T="vs-dark",M="hc-black",A="hc-light",R=y.B.as(_.IPX.ColorContribution),O=y.B.as(S.IP.ThemingContribution);class P{constructor(e,t){this.semanticHighlighting=!1,this.themeData=t;const i=t.base;e.length>0?(F(e)?this.id=e:this.id=i+" "+e,this.themeName=e):(this.id=i,this.themeName=i),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}get base(){return this.themeData.base}notifyBaseUpdated(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}getColors(){if(!this.colors){const e=new Map;for(const t in this.themeData.colors)e.set(t,s.Il.fromHex(this.themeData.colors[t]));if(this.themeData.inherit){const t=B(this.themeData.base);for(const i in t.colors)e.has(i)||e.set(i,s.Il.fromHex(t.colors[i]))}this.colors=e}return this.colors}getColor(e,t){const i=this.getColors().get(e);return i||(!1!==t?this.getDefault(e):void 0)}getDefault(e){let t=this.defaultColors[e];return t||(t=R.resolveDefaultColor(e,this),this.defaultColors[e]=t,t)}defines(e){return this.getColors().has(e)}get type(){switch(this.base){case I:return k.eL.LIGHT;case M:return k.eL.HIGH_CONTRAST_DARK;case A:return k.eL.HIGH_CONTRAST_LIGHT;default:return k.eL.DARK}}get tokenTheme(){if(!this._tokenTheme){let e=[],t=[];if(this.themeData.inherit){const i=B(this.themeData.base);e=i.rules,i.encodedTokensColors&&(t=i.encodedTokensColors)}const i=this.themeData.colors["editor.foreground"],n=this.themeData.colors["editor.background"];if(i||n){const t={token:""};i&&(t.foreground=i),n&&(t.background=n),e.push(t)}e=e.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(t=this.themeData.encodedTokensColors),this._tokenTheme=u.createFromRawTokenTheme(e,t)}return this._tokenTheme}getTokenStyleMetadata(e,t,i){const n=this.tokenTheme._match([e].concat(t).join(".")).metadata,o=l.N.getForeground(n),s=l.N.getFontStyle(n);return{foreground:o,italic:Boolean(1&s),bold:Boolean(2&s),underline:Boolean(4&s),strikethrough:Boolean(8&s)}}}function F(e){return e===I||e===T||e===M||e===A}function B(e){switch(e){case I:return v;case T:return b;case M:return C;case A:return w}}function z(e){const t=B(e);return new P(e,t)}class V extends L.JT{constructor(){super(),this._onColorThemeChange=this._register(new r.Q5),this.onDidColorThemeChange=this._onColorThemeChange.event,this._onProductIconThemeChange=this._register(new r.Q5),this.onDidProductIconThemeChange=this._onProductIconThemeChange.event,this._environment=Object.create(null),this._builtInProductIconTheme=new x,this._autoDetectHighContrast=!0,this._knownThemes=new Map,this._knownThemes.set(I,z(I)),this._knownThemes.set(T,z(T)),this._knownThemes.set(M,z(M)),this._knownThemes.set(A,z(A));const e=this._register(function(e){const t=new L.SL,i=t.add(new r.Q5),o=(0,N.Ks)();return t.add(o.onDidChange((()=>i.fire()))),e&&t.add(e.onDidProductIconThemeChange((()=>i.fire()))),{dispose:()=>t.dispose(),onDidChange:i.event,getCSS(){const t=e?e.getProductIconTheme():new x,i={},s=e=>{const o=t.getIcon(e);if(!o)return;const s=o.font;return s?(i[s.id]=s.definition,".codicon-".concat(e.id,":before { content: '").concat(o.fontCharacter,"'; font-family: ").concat((0,n._h)(s.id),"; }")):".codicon-".concat(e.id,":before { content: '").concat(o.fontCharacter,"'; }")},r=[];for(const e of o.getIcons()){const t=s(e);t&&r.push(t)}for(const e in i){const t=i[e],o=t.weight?"font-weight: ".concat(t.weight,";"):"",s=t.style?"font-style: ".concat(t.style,";"):"",a=t.src.map((e=>"".concat((0,n.wY)(e.location)," format('").concat(e.format,"')"))).join(", ");r.push("@font-face { src: ".concat(a,"; font-family: ").concat((0,n._h)(e),";").concat(o).concat(s," font-display: block; }"))}return r.join("\n")}}}(this));this._codiconCSS=e.getCSS(),this._themeCSS="",this._allCSS="".concat(this._codiconCSS,"\n").concat(this._themeCSS),this._globalStyleElement=null,this._styleElements=[],this._colorMapOverride=null,this.setTheme(I),this._onOSSchemeChanged(),this._register(e.onDidChange((()=>{this._codiconCSS=e.getCSS(),this._updateCSS()}))),(0,o.uB)(E.E,"(forced-colors: active)",(()=>{this._onOSSchemeChanged()}))}registerEditorContainer(e){return n.OO(e)?this._registerShadowDomContainer(e):this._registerRegularEditorContainer()}_registerRegularEditorContainer(){return this._globalStyleElement||(this._globalStyleElement=n.dS(void 0,(e=>{e.className="monaco-colors",e.textContent=this._allCSS})),this._styleElements.push(this._globalStyleElement)),L.JT.None}_registerShadowDomContainer(e){const t=n.dS(e,(e=>{e.className="monaco-colors",e.textContent=this._allCSS}));return this._styleElements.push(t),{dispose:()=>{for(let e=0;e{t.base===e&&t.notifyBaseUpdated()})),this._theme.themeName===e&&this.setTheme(e)}getColorTheme(){return this._theme}setColorMapOverride(e){this._colorMapOverride=e,this._updateThemeOrColorMap()}setTheme(e){let t;t=this._knownThemes.has(e)?this._knownThemes.get(e):this._knownThemes.get(I),this._updateActualTheme(t)}_updateActualTheme(e){e&&this._theme!==e&&(this._theme=e,this._updateThemeOrColorMap())}_onOSSchemeChanged(){if(this._autoDetectHighContrast){const e=E.E.matchMedia("(forced-colors: active)").matches;if(e!==(0,k.c3)(this._theme.type)){let t;t=(0,k._T)(this._theme.type)?e?M:T:e?A:I,this._updateActualTheme(this._knownThemes.get(t))}}}setAutoDetectHighContrast(e){this._autoDetectHighContrast=e,this._onOSSchemeChanged()}_updateThemeOrColorMap(){const e=[],t={},i={addRule:i=>{t[i]||(e.push(i),t[i]=!0)}};O.getThemingParticipants().forEach((e=>e(this._theme,i,this._environment)));const n=[];for(const s of R.getColors()){const e=this._theme.getColor(s.id,!0);e&&n.push("".concat((0,_.QO2)(s.id),": ").concat(e.toString(),";"))}i.addRule(".monaco-editor, .monaco-diff-editor, .monaco-component { ".concat(n.join("\n")," }"));const o=this._colorMapOverride||this._theme.tokenTheme.getColorMap();i.addRule(function(e){const t=[];for(let i=1,n=e.length;ie.textContent=this._allCSS))}getFileIconTheme(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}getProductIconTheme(){return this._builtInProductIconTheme}}},24587:(e,t,i)=>{i.d(t,{Z:()=>n});const n=(0,i(34304).yh)("themeService")},71721:(e,t,i)=>{i.d(t,{NC:()=>s,aj:()=>a,vv:()=>r});let n="undefined"!==typeof document&&document.location&&document.location.hash.indexOf("pseudo=true")>=0;function o(e,t){let i;return i=0===t.length?e:e.replace(/\{(\d+)\}/g,((e,i)=>{const n=i[0],o=t[n];let s=e;return"string"===typeof o?s=o:"number"!==typeof o&&"boolean"!==typeof o&&void 0!==o&&null!==o||(s=String(o)),s})),n&&(i="\uff3b"+i.replace(/[aouei]/g,"$&$&")+"\uff3d"),i}function s(e,t){for(var i=arguments.length,n=new Array(i>2?i-2:0),s=2;s2?i-2:0),s=2;s{i.d(t,{F:()=>o,U:()=>s});var n=i(24920);const o=(0,i(34304).yh)("accessibilityService"),s=new n.uy("accessibilityModeEnabled",!1)},68633:(e,t,i)=>{i.d(t,{IV:()=>s,iP:()=>l});var n=i(34304),o=i(71721);const s=(0,n.yh)("accessibilitySignalService");class r{static register(e){return new r(e.fileName)}constructor(e){this.fileName=e}}r.error=r.register({fileName:"error.mp3"}),r.warning=r.register({fileName:"warning.mp3"}),r.foldedArea=r.register({fileName:"foldedAreas.mp3"}),r.break=r.register({fileName:"break.mp3"}),r.quickFixes=r.register({fileName:"quickFixes.mp3"}),r.taskCompleted=r.register({fileName:"taskCompleted.mp3"}),r.taskFailed=r.register({fileName:"taskFailed.mp3"}),r.terminalBell=r.register({fileName:"terminalBell.mp3"}),r.diffLineInserted=r.register({fileName:"diffLineInserted.mp3"}),r.diffLineDeleted=r.register({fileName:"diffLineDeleted.mp3"}),r.diffLineModified=r.register({fileName:"diffLineModified.mp3"}),r.chatRequestSent=r.register({fileName:"chatRequestSent.mp3"}),r.chatResponsePending=r.register({fileName:"chatResponsePending.mp3"}),r.chatResponseReceived1=r.register({fileName:"chatResponseReceived1.mp3"}),r.chatResponseReceived2=r.register({fileName:"chatResponseReceived2.mp3"}),r.chatResponseReceived3=r.register({fileName:"chatResponseReceived3.mp3"}),r.chatResponseReceived4=r.register({fileName:"chatResponseReceived4.mp3"}),r.clear=r.register({fileName:"clear.mp3"}),r.save=r.register({fileName:"save.mp3"}),r.format=r.register({fileName:"format.mp3"}),r.voiceRecordingStarted=r.register({fileName:"voiceRecordingStarted.mp3"}),r.voiceRecordingStopped=r.register({fileName:"voiceRecordingStopped.mp3"});class a{constructor(e){this.randomOneOf=e}}class l{static register(e){const t=new a("randomOneOf"in e.sound?e.sound.randomOneOf:[e.sound]),i=new l(t,e.name,e.legacySoundSettingsKey,e.settingsKey,e.legacyAnnouncementSettingsKey,e.announcementMessage);return l._signals.add(i),i}constructor(e,t,i,n,o,s){this.sound=e,this.name=t,this.legacySoundSettingsKey=i,this.settingsKey=n,this.legacyAnnouncementSettingsKey=o,this.announcementMessage=s}}l._signals=new Set,l.error=l.register({name:(0,o.NC)("accessibilitySignals.lineHasError.name","Error on Line"),sound:r.error,legacySoundSettingsKey:"audioCues.lineHasError",legacyAnnouncementSettingsKey:"accessibility.alert.error",announcementMessage:(0,o.NC)("accessibility.signals.lineHasError","Error"),settingsKey:"accessibility.signals.lineHasError"}),l.warning=l.register({name:(0,o.NC)("accessibilitySignals.lineHasWarning.name","Warning on Line"),sound:r.warning,legacySoundSettingsKey:"audioCues.lineHasWarning",legacyAnnouncementSettingsKey:"accessibility.alert.warning",announcementMessage:(0,o.NC)("accessibility.signals.lineHasWarning","Warning"),settingsKey:"accessibility.signals.lineHasWarning"}),l.foldedArea=l.register({name:(0,o.NC)("accessibilitySignals.lineHasFoldedArea.name","Folded Area on Line"),sound:r.foldedArea,legacySoundSettingsKey:"audioCues.lineHasFoldedArea",legacyAnnouncementSettingsKey:"accessibility.alert.foldedArea",announcementMessage:(0,o.NC)("accessibility.signals.lineHasFoldedArea","Folded"),settingsKey:"accessibility.signals.lineHasFoldedArea"}),l.break=l.register({name:(0,o.NC)("accessibilitySignals.lineHasBreakpoint.name","Breakpoint on Line"),sound:r.break,legacySoundSettingsKey:"audioCues.lineHasBreakpoint",legacyAnnouncementSettingsKey:"accessibility.alert.breakpoint",announcementMessage:(0,o.NC)("accessibility.signals.lineHasBreakpoint","Breakpoint"),settingsKey:"accessibility.signals.lineHasBreakpoint"}),l.inlineSuggestion=l.register({name:(0,o.NC)("accessibilitySignals.lineHasInlineSuggestion.name","Inline Suggestion on Line"),sound:r.quickFixes,legacySoundSettingsKey:"audioCues.lineHasInlineSuggestion",settingsKey:"accessibility.signals.lineHasInlineSuggestion"}),l.terminalQuickFix=l.register({name:(0,o.NC)("accessibilitySignals.terminalQuickFix.name","Terminal Quick Fix"),sound:r.quickFixes,legacySoundSettingsKey:"audioCues.terminalQuickFix",legacyAnnouncementSettingsKey:"accessibility.alert.terminalQuickFix",announcementMessage:(0,o.NC)("accessibility.signals.terminalQuickFix","Quick Fix"),settingsKey:"accessibility.signals.terminalQuickFix"}),l.onDebugBreak=l.register({name:(0,o.NC)("accessibilitySignals.onDebugBreak.name","Debugger Stopped on Breakpoint"),sound:r.break,legacySoundSettingsKey:"audioCues.onDebugBreak",legacyAnnouncementSettingsKey:"accessibility.alert.onDebugBreak",announcementMessage:(0,o.NC)("accessibility.signals.onDebugBreak","Breakpoint"),settingsKey:"accessibility.signals.onDebugBreak"}),l.noInlayHints=l.register({name:(0,o.NC)("accessibilitySignals.noInlayHints","No Inlay Hints on Line"),sound:r.error,legacySoundSettingsKey:"audioCues.noInlayHints",legacyAnnouncementSettingsKey:"accessibility.alert.noInlayHints",announcementMessage:(0,o.NC)("accessibility.signals.noInlayHints","No Inlay Hints"),settingsKey:"accessibility.signals.noInlayHints"}),l.taskCompleted=l.register({name:(0,o.NC)("accessibilitySignals.taskCompleted","Task Completed"),sound:r.taskCompleted,legacySoundSettingsKey:"audioCues.taskCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.taskCompleted",announcementMessage:(0,o.NC)("accessibility.signals.taskCompleted","Task Completed"),settingsKey:"accessibility.signals.taskCompleted"}),l.taskFailed=l.register({name:(0,o.NC)("accessibilitySignals.taskFailed","Task Failed"),sound:r.taskFailed,legacySoundSettingsKey:"audioCues.taskFailed",legacyAnnouncementSettingsKey:"accessibility.alert.taskFailed",announcementMessage:(0,o.NC)("accessibility.signals.taskFailed","Task Failed"),settingsKey:"accessibility.signals.taskFailed"}),l.terminalCommandFailed=l.register({name:(0,o.NC)("accessibilitySignals.terminalCommandFailed","Terminal Command Failed"),sound:r.error,legacySoundSettingsKey:"audioCues.terminalCommandFailed",legacyAnnouncementSettingsKey:"accessibility.alert.terminalCommandFailed",announcementMessage:(0,o.NC)("accessibility.signals.terminalCommandFailed","Command Failed"),settingsKey:"accessibility.signals.terminalCommandFailed"}),l.terminalBell=l.register({name:(0,o.NC)("accessibilitySignals.terminalBell","Terminal Bell"),sound:r.terminalBell,legacySoundSettingsKey:"audioCues.terminalBell",legacyAnnouncementSettingsKey:"accessibility.alert.terminalBell",announcementMessage:(0,o.NC)("accessibility.signals.terminalBell","Terminal Bell"),settingsKey:"accessibility.signals.terminalBell"}),l.notebookCellCompleted=l.register({name:(0,o.NC)("accessibilitySignals.notebookCellCompleted","Notebook Cell Completed"),sound:r.taskCompleted,legacySoundSettingsKey:"audioCues.notebookCellCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellCompleted",announcementMessage:(0,o.NC)("accessibility.signals.notebookCellCompleted","Notebook Cell Completed"),settingsKey:"accessibility.signals.notebookCellCompleted"}),l.notebookCellFailed=l.register({name:(0,o.NC)("accessibilitySignals.notebookCellFailed","Notebook Cell Failed"),sound:r.taskFailed,legacySoundSettingsKey:"audioCues.notebookCellFailed",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellFailed",announcementMessage:(0,o.NC)("accessibility.signals.notebookCellFailed","Notebook Cell Failed"),settingsKey:"accessibility.signals.notebookCellFailed"}),l.diffLineInserted=l.register({name:(0,o.NC)("accessibilitySignals.diffLineInserted","Diff Line Inserted"),sound:r.diffLineInserted,legacySoundSettingsKey:"audioCues.diffLineInserted",settingsKey:"accessibility.signals.diffLineInserted"}),l.diffLineDeleted=l.register({name:(0,o.NC)("accessibilitySignals.diffLineDeleted","Diff Line Deleted"),sound:r.diffLineDeleted,legacySoundSettingsKey:"audioCues.diffLineDeleted",settingsKey:"accessibility.signals.diffLineDeleted"}),l.diffLineModified=l.register({name:(0,o.NC)("accessibilitySignals.diffLineModified","Diff Line Modified"),sound:r.diffLineModified,legacySoundSettingsKey:"audioCues.diffLineModified",settingsKey:"accessibility.signals.diffLineModified"}),l.chatRequestSent=l.register({name:(0,o.NC)("accessibilitySignals.chatRequestSent","Chat Request Sent"),sound:r.chatRequestSent,legacySoundSettingsKey:"audioCues.chatRequestSent",legacyAnnouncementSettingsKey:"accessibility.alert.chatRequestSent",announcementMessage:(0,o.NC)("accessibility.signals.chatRequestSent","Chat Request Sent"),settingsKey:"accessibility.signals.chatRequestSent"}),l.chatResponseReceived=l.register({name:(0,o.NC)("accessibilitySignals.chatResponseReceived","Chat Response Received"),legacySoundSettingsKey:"audioCues.chatResponseReceived",sound:{randomOneOf:[r.chatResponseReceived1,r.chatResponseReceived2,r.chatResponseReceived3,r.chatResponseReceived4]},settingsKey:"accessibility.signals.chatResponseReceived"}),l.chatResponsePending=l.register({name:(0,o.NC)("accessibilitySignals.chatResponsePending","Chat Response Pending"),sound:r.chatResponsePending,legacySoundSettingsKey:"audioCues.chatResponsePending",legacyAnnouncementSettingsKey:"accessibility.alert.chatResponsePending",announcementMessage:(0,o.NC)("accessibility.signals.chatResponsePending","Chat Response Pending"),settingsKey:"accessibility.signals.chatResponsePending"}),l.clear=l.register({name:(0,o.NC)("accessibilitySignals.clear","Clear"),sound:r.clear,legacySoundSettingsKey:"audioCues.clear",legacyAnnouncementSettingsKey:"accessibility.alert.clear",announcementMessage:(0,o.NC)("accessibility.signals.clear","Clear"),settingsKey:"accessibility.signals.clear"}),l.save=l.register({name:(0,o.NC)("accessibilitySignals.save","Save"),sound:r.save,legacySoundSettingsKey:"audioCues.save",legacyAnnouncementSettingsKey:"accessibility.alert.save",announcementMessage:(0,o.NC)("accessibility.signals.save","Save"),settingsKey:"accessibility.signals.save"}),l.format=l.register({name:(0,o.NC)("accessibilitySignals.format","Format"),sound:r.format,legacySoundSettingsKey:"audioCues.format",legacyAnnouncementSettingsKey:"accessibility.alert.format",announcementMessage:(0,o.NC)("accessibility.signals.format","Format"),settingsKey:"accessibility.signals.format"}),l.voiceRecordingStarted=l.register({name:(0,o.NC)("accessibilitySignals.voiceRecordingStarted","Voice Recording Started"),sound:r.voiceRecordingStarted,legacySoundSettingsKey:"audioCues.voiceRecordingStarted",settingsKey:"accessibility.signals.voiceRecordingStarted"}),l.voiceRecordingStopped=l.register({name:(0,o.NC)("accessibilitySignals.voiceRecordingStopped","Voice Recording Stopped"),sound:r.voiceRecordingStopped,legacySoundSettingsKey:"audioCues.voiceRecordingStopped",settingsKey:"accessibility.signals.voiceRecordingStopped"})},69833:(e,t,i)=>{i.d(t,{Mm:()=>T,Id:()=>O,vr:()=>E,LJ:()=>x});var n=i(85714),o=i(39341),s=i(66193),r=i(754),a=i(22337),l=i(87818),h=i(89599),d=i(21511),c=i(71721),u=i(48489);var g=i(24920),m=i(58868),f=i(34304),p=i(46765),_=i(13200),v=i(89965),b=i(17903),C=i(62502),w=i(75826),y=i(63686),S=i(87701),L=i(29581),k=i(46385),D=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},N=function(e,t){return function(i,n){t(i,n,e)}};function x(e,t,i,o){const s=e.getActions(t),r=n._q.getInstance();I(s,i,r.keyStatus.altKey||(d.ED||d.IJ)&&r.keyStatus.shiftKey,o?e=>e===o:e=>"navigation"===e)}function E(e,t,i,n,o,s){I(e.getActions(t),i,!1,"string"===typeof n?e=>e===n:n,o,s)}function I(e,t,i){let n,o,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e=>"navigation"===e,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:()=>!1,l=arguments.length>5&&void 0!==arguments[5]&&arguments[5];Array.isArray(t)?(n=t,o=t):(n=t.primary,o=t.secondary);const h=new Set;for(const[d,c]of e){let e;s(d)?(e=n,e.length>0&&l&&e.push(new a.Z0)):(e=o,e.length>0&&e.push(new a.Z0));for(let t of c){i&&(t=t instanceof u.U8&&t.alt?t.alt:t);const n=e.push(t);t instanceof a.wY&&h.add({group:d,action:t,index:n-1})}}for(const{group:a,action:d,index:c}of h){const e=s(a)?n:o,t=d.actions;r(d,a,e.length)&&e.splice(c,1,...t)}}let T=class extends s.gU{constructor(e,t,i,o,s,r,a,l){super(void 0,e,{icon:!(!e.class&&!e.item.icon),label:!e.class&&!e.item.icon,draggable:null===t||void 0===t?void 0:t.draggable,keybinding:null===t||void 0===t?void 0:t.keybinding,hoverDelegate:null===t||void 0===t?void 0:t.hoverDelegate}),this._keybindingService=i,this._notificationService=o,this._contextKeyService=s,this._themeService=r,this._contextMenuService=a,this._accessibilityService=l,this._wantsAltCommand=!1,this._itemClassDispose=this._register(new h.XK),this._altKey=n._q.getInstance()}get _menuItemAction(){return this._action}get _commandAction(){return this._wantsAltCommand&&this._menuItemAction.alt||this._menuItemAction}async onClick(e){e.preventDefault(),e.stopPropagation();try{await this.actionRunner.run(this._commandAction,this._context)}catch(t){this._notificationService.error(t)}}render(e){if(super.render(e),e.classList.add("menu-entry"),this.options.icon&&this._updateItemClass(this._menuItemAction.item),this._menuItemAction.alt){let t=!1;const i=()=>{var e;const i=!!(null===(e=this._menuItemAction.alt)||void 0===e?void 0:e.enabled)&&(!this._accessibilityService.isMotionReduced()||t)&&(this._altKey.keyStatus.altKey||this._altKey.keyStatus.shiftKey&&t);i!==this._wantsAltCommand&&(this._wantsAltCommand=i,this.updateLabel(),this.updateTooltip(),this.updateClass())};this._register(this._altKey.event(i)),this._register((0,n.nm)(e,"mouseleave",(e=>{t=!1,i()}))),this._register((0,n.nm)(e,"mouseenter",(e=>{t=!0,i()}))),i()}}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}getTooltip(){var e;const t=this._keybindingService.lookupKeybinding(this._commandAction.id,this._contextKeyService),i=t&&t.getLabel(),n=this._commandAction.tooltip||this._commandAction.label;let o=i?(0,c.NC)("titleAndKb","{0} ({1})",n,i):n;if(!this._wantsAltCommand&&(null===(e=this._menuItemAction.alt)||void 0===e?void 0:e.enabled)){const e=this._menuItemAction.alt.tooltip||this._menuItemAction.alt.label,t=this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id,this._contextKeyService),i=t&&t.getLabel(),n=i?(0,c.NC)("titleAndKb","{0} ({1})",e,i):e;o=(0,c.NC)("titleAndKbAndAlt","{0}\n[{1}] {2}",o,l.xo.modifierLabels[d.OS].altKey,n)}return o}updateClass(){this.options.icon&&(this._commandAction!==this._menuItemAction?this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.alt.item):this._updateItemClass(this._menuItemAction.item))}_updateItemClass(e){this._itemClassDispose.value=void 0;const{element:t,label:i}=this;if(!t||!i)return;const o=this._commandAction.checked&&((s=e.toggled)&&void 0!==s.condition)&&e.toggled.icon?e.toggled.icon:e.icon;var s;if(o)if(C.k.isThemeIcon(o)){const e=C.k.asClassNameArray(o);i.classList.add(...e),this._itemClassDispose.value=(0,h.OF)((()=>{i.classList.remove(...e)}))}else i.style.backgroundImage=(0,w._T)(this._themeService.getColorTheme().type)?(0,n.wY)(o.dark):(0,n.wY)(o.light),i.classList.add("icon"),this._itemClassDispose.value=(0,h.F8)((0,h.OF)((()=>{i.style.backgroundImage="",i.classList.remove("icon")})),this._themeService.onDidColorThemeChange((()=>{this.updateClass()})))}};T=D([N(2,p.d),N(3,_.lT),N(4,g.i6),N(5,b.XE),N(6,m.i),N(7,k.F)],T);let M=class extends r.C{constructor(e,t,i,n,o){var s,r,a;const l={...t,menuAsChild:null!==(s=null===t||void 0===t?void 0:t.menuAsChild)&&void 0!==s&&s,classNames:null!==(r=null===t||void 0===t?void 0:t.classNames)&&void 0!==r?r:C.k.isThemeIcon(e.item.icon)?C.k.asClassName(e.item.icon):void 0,keybindingProvider:null!==(a=null===t||void 0===t?void 0:t.keybindingProvider)&&void 0!==a?a:e=>i.lookupKeybinding(e.id)};super(e,{getActions:()=>e.actions},n,l),this._keybindingService=i,this._contextMenuService=n,this._themeService=o}render(e){super.render(e),(0,y.p_)(this.element),e.classList.add("menu-entry");const t=this._action,{icon:i}=t.item;if(i&&!C.k.isThemeIcon(i)){this.element.classList.add("icon");const e=()=>{this.element&&(this.element.style.backgroundImage=(0,w._T)(this._themeService.getColorTheme().type)?(0,n.wY)(i.dark):(0,n.wY)(i.light))};e(),this._register(this._themeService.onDidColorThemeChange((()=>{e()})))}}};M=D([N(2,p.d),N(3,m.i),N(4,b.XE)],M);let A=class extends s.YH{constructor(e,t,i,n,o,s,l,h){var d,c,g;let m;super(null,e),this._keybindingService=i,this._notificationService=n,this._contextMenuService=o,this._menuService=s,this._instaService=l,this._storageService=h,this._container=null,this._options=t,this._storageKey="".concat(e.item.submenu.id,"_lastActionId");const f=(null===t||void 0===t?void 0:t.persistLastActionId)?h.get(this._storageKey,1):void 0;f&&(m=e.actions.find((e=>f===e.id))),m||(m=e.actions[0]),this._defaultAction=this._instaService.createInstance(T,m,{keybinding:this._getDefaultActionKeybindingLabel(m)});const p={keybindingProvider:e=>this._keybindingService.lookupKeybinding(e.id),...t,menuAsChild:null===(d=null===t||void 0===t?void 0:t.menuAsChild)||void 0===d||d,classNames:null!==(c=null===t||void 0===t?void 0:t.classNames)&&void 0!==c?c:["codicon","codicon-chevron-down"],actionRunner:null!==(g=null===t||void 0===t?void 0:t.actionRunner)&&void 0!==g?g:new a.Wi};this._dropdown=new r.C(e,e.actions,this._contextMenuService,p),this._register(this._dropdown.actionRunner.onDidRun((e=>{e.action instanceof u.U8&&this.update(e.action)})))}update(e){var t;(null===(t=this._options)||void 0===t?void 0:t.persistLastActionId)&&this._storageService.store(this._storageKey,e.id,1,1),this._defaultAction.dispose(),this._defaultAction=this._instaService.createInstance(T,e,{keybinding:this._getDefaultActionKeybindingLabel(e)}),this._defaultAction.actionRunner=new class extends a.Wi{async runAction(e,t){await e.run(void 0)}},this._container&&this._defaultAction.render((0,n.Ce)(this._container,(0,n.$)(".action-container")))}_getDefaultActionKeybindingLabel(e){var t;let i;if(null===(t=this._options)||void 0===t?void 0:t.renderKeybindingWithDefaultActionLabel){const t=this._keybindingService.lookupKeybinding(e.id);t&&(i="(".concat(t.getLabel(),")"))}return i}setActionContext(e){super.setActionContext(e),this._defaultAction.setActionContext(e),this._dropdown.setActionContext(e)}render(e){this._container=e,super.render(this._container),this._container.classList.add("monaco-dropdown-with-default");const t=(0,n.$)(".action-container");this._defaultAction.render((0,n.R3)(this._container,t)),this._register((0,n.nm)(t,n.tw.KEY_DOWN,(e=>{const t=new o.y(e);t.equals(17)&&(this._defaultAction.element.tabIndex=-1,this._dropdown.focus(),t.stopPropagation())})));const i=(0,n.$)(".dropdown-action-container");this._dropdown.render((0,n.R3)(this._container,i)),this._register((0,n.nm)(i,n.tw.KEY_DOWN,(e=>{var t;const i=new o.y(e);i.equals(15)&&(this._defaultAction.element.tabIndex=0,this._dropdown.setFocusable(!1),null===(t=this._defaultAction.element)||void 0===t||t.focus(),i.stopPropagation())})))}focus(e){e?this._dropdown.focus():(this._defaultAction.element.tabIndex=0,this._defaultAction.element.focus())}blur(){this._defaultAction.element.tabIndex=-1,this._dropdown.blur(),this._container.blur()}setFocusable(e){e?this._defaultAction.element.tabIndex=0:(this._defaultAction.element.tabIndex=-1,this._dropdown.setFocusable(!1))}dispose(){this._defaultAction.dispose(),this._dropdown.dispose(),super.dispose()}};A=D([N(2,p.d),N(3,_.lT),N(4,m.i),N(5,u.co),N(6,f.TG),N(7,v.Uy)],A);let R=class extends s.Lc{constructor(e,t){super(null,e,e.actions.map((e=>({text:e.id===a.Z0.ID?"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500":e.label,isDisabled:!e.enabled}))),0,t,L.BM,{ariaLabel:e.tooltip,optionsAsChildren:!0}),this.select(Math.max(0,e.actions.findIndex((e=>e.checked))))}render(e){super.render(e),e.style.borderColor=(0,S.n_1)(S.a9O)}runAction(e,t){const i=this.action.actions[t];i&&this.actionRunner.run(i)}};function O(e,t,i){return t instanceof u.U8?e.createInstance(T,t,i):t instanceof u.NZ?t.item.isSelection?e.createInstance(R,t):t.item.rememberDefaultAction?e.createInstance(A,t,{...i,persistLastActionId:!0}):e.createInstance(M,t,i):void 0}R=D([N(1,m.u)],R)},60548:(e,t,i)=>{i.d(t,{r:()=>E,T:()=>x});var n=i(85714),o=i(21494),s=i(65122),r=i(754),a=i(22337),l=i(62974),h=i(62502),d=i(24219),c=i(89599),u=i(71721),g=i(14561);class m extends c.JT{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{orientation:0};var n;super(),this.submenuActionViewItems=[],this.hasSecondaryActions=!1,this._onDidChangeDropdownVisibility=this._register(new d.z5),this.onDidChangeDropdownVisibility=this._onDidChangeDropdownVisibility.event,this.disposables=this._register(new c.SL),i.hoverDelegate=null!==(n=i.hoverDelegate)&&void 0!==n?n:this._register((0,g.p0)()),this.options=i,this.lookupKeybindings="function"===typeof this.options.getKeyBinding,this.toggleMenuAction=this._register(new f((()=>{var e;return null===(e=this.toggleMenuActionViewItem)||void 0===e?void 0:e.show()}),i.toggleMenuTitle)),this.element=document.createElement("div"),this.element.className="monaco-toolbar",e.appendChild(this.element),this.actionBar=this._register(new s.o(this.element,{orientation:i.orientation,ariaLabel:i.ariaLabel,actionRunner:i.actionRunner,allowContextMenu:i.allowContextMenu,highlightToggledItems:i.highlightToggledItems,hoverDelegate:i.hoverDelegate,actionViewItemProvider:(e,n)=>{var o;if(e.id===f.ID)return this.toggleMenuActionViewItem=new r.C(e,e.menuActions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:h.k.asClassNameArray(null!==(o=i.moreIcon)&&void 0!==o?o:l.l.toolBarMore),anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,isMenu:!0,hoverDelegate:this.options.hoverDelegate}),this.toggleMenuActionViewItem.setActionContext(this.actionBar.context),this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility)),this.toggleMenuActionViewItem;if(i.actionViewItemProvider){const t=i.actionViewItemProvider(e,n);if(t)return t}if(e instanceof a.wY){const i=new r.C(e,e.actions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:e.class,anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,hoverDelegate:this.options.hoverDelegate});return i.setActionContext(this.actionBar.context),this.submenuActionViewItems.push(i),this.disposables.add(this._onDidChangeDropdownVisibility.add(i.onDidChangeVisibility)),i}}}))}set actionRunner(e){this.actionBar.actionRunner=e}get actionRunner(){return this.actionBar.actionRunner}getElement(){return this.element}getItemAction(e){return this.actionBar.getAction(e)}setActions(e,t){this.clear();const i=e?e.slice(0):[];this.hasSecondaryActions=!!(t&&t.length>0),this.hasSecondaryActions&&t&&(this.toggleMenuAction.menuActions=t.slice(0),i.push(this.toggleMenuAction)),i.forEach((e=>{this.actionBar.push(e,{icon:!0,label:!1,keybinding:this.getKeybindingLabel(e)})}))}getKeybindingLabel(e){var t,i,n;const o=this.lookupKeybindings?null===(i=(t=this.options).getKeyBinding)||void 0===i?void 0:i.call(t,e):void 0;return null!==(n=null===o||void 0===o?void 0:o.getLabel())&&void 0!==n?n:void 0}clear(){this.submenuActionViewItems=[],this.disposables.clear(),this.actionBar.clear()}dispose(){this.clear(),this.disposables.dispose(),super.dispose()}}class f extends a.aU{constructor(e,t){t=t||u.NC("moreActions","More Actions..."),super(f.ID,t,void 0,!0),this._menuActions=[],this.toggleDropdownMenu=e}async run(){this.toggleDropdownMenu()}get menuActions(){return this._menuActions}set menuActions(e){this._menuActions=e}}f.ID="toolbar.toggle.more";var p=i(75629),_=i(99927),v=i(85108),b=i(36952),C=i(69833),w=i(48489),y=i(24920),S=i(58868),L=i(46765),k=i(38015),D=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},N=function(e,t){return function(i,n){t(i,n,e)}};let x=class extends m{constructor(e,t,i,n,o,s,r){super(e,o,{getKeyBinding:e=>{var t;return null!==(t=s.lookupKeybinding(e.id))&&void 0!==t?t:void 0},...t,allowContextMenu:!0,skipTelemetry:"string"===typeof(null===t||void 0===t?void 0:t.telemetrySource)}),this._options=t,this._menuService=i,this._contextKeyService=n,this._contextMenuService=o,this._sessionDisposables=this._store.add(new c.SL);const a=null===t||void 0===t?void 0:t.telemetrySource;a&&this._store.add(this.actionBar.onDidRun((e=>r.publicLog2("workbenchActionExecuted",{id:e.action.id,from:a}))))}setActions(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0;var s,r,l;this._sessionDisposables.clear();const h=e.slice(),d=t.slice(),c=[];let g=0;const m=[];let f=!1;if(-1!==(null===(s=this._options)||void 0===s?void 0:s.hiddenItemStrategy))for(let n=0;nnull===e||void 0===e?void 0:e.id))),t=this._options.overflowBehavior.maxItems-e.size;let i=0;for(let n=0;n=t&&(h[n]=void 0,m[n]=o))}}(0,p.Rs)(h),(0,p.Rs)(m),super.setActions(h,a.Z0.join(m,d)),c.length>0&&this._sessionDisposables.add((0,n.nm)(this.getElement(),"contextmenu",(e=>{var t,s,r,l,h;const d=new o.n((0,n.Jj)(this.getElement()),e),m=this.getItemAction(d.target);if(!m)return;d.preventDefault(),d.stopPropagation();let p,_=!1;if(1===g&&0===(null===(t=this._options)||void 0===t?void 0:t.hiddenItemStrategy)){_=!0;for(let e=0;ethis._menuService.resetHiddenStates(i)}))),this._contextMenuService.showContextMenu({getAnchor:()=>d,getActions:()=>v,menuId:null===(r=this._options)||void 0===r?void 0:r.contextMenu,menuActionOptions:{renderShortTitle:!0,...null===(l=this._options)||void 0===l?void 0:l.menuOptions},skipTelemetry:"string"===typeof(null===(h=this._options)||void 0===h?void 0:h.telemetrySource),contextKeyService:this._contextKeyService})})))}};x=D([N(2,w.co),N(3,y.i6),N(4,S.i),N(5,L.d),N(6,k.b)],x);let E=class extends x{constructor(e,t,i,n,o,s,r,a){super(e,{resetMenu:t,...i},n,o,s,r,a),this._onDidChangeMenuItems=this._store.add(new d.Q5),this.onDidChangeMenuItems=this._onDidChangeMenuItems.event;const l=this._store.add(n.createMenu(t,o,{emitEventsForSubmenuChanges:!0})),h=()=>{var t,n,o;const s=[],r=[];(0,C.vr)(l,null===i||void 0===i?void 0:i.menuOptions,{primary:s,secondary:r},null===(t=null===i||void 0===i?void 0:i.toolbarOptions)||void 0===t?void 0:t.primaryGroup,null===(n=null===i||void 0===i?void 0:i.toolbarOptions)||void 0===n?void 0:n.shouldInlineSubmenu,null===(o=null===i||void 0===i?void 0:i.toolbarOptions)||void 0===o?void 0:o.useSeparatorsInPrimaryActions),e.classList.toggle("has-no-actions",0===s.length&&0===r.length),super.setActions(s,r)};this._store.add(l.onDidChange((()=>{h(),this._onDidChangeMenuItems.fire(this)}))),h()}setActions(){throw new v.he("This toolbar is populated from a menu.")}};E=D([N(3,w.co),N(4,y.i6),N(5,S.i),N(6,L.d),N(7,k.b)],E)},48489:(e,t,i)=>{i.d(t,{BH:()=>C,Ke:()=>S,NZ:()=>w,U8:()=>y,co:()=>v,eH:()=>_,f6:()=>p,r1:()=>L,vr:()=>f});var n,o=i(22337),s=i(62502),r=i(24219),a=i(89599),l=i(44713),h=i(60982),d=i(24920),c=i(34304),u=i(86728),g=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},m=function(e,t){return function(i,n){t(i,n,e)}};function f(e){return void 0!==e.command}function p(e){return void 0!==e.submenu}class _{constructor(e){if(_._instances.has(e))throw new TypeError("MenuId with identifier '".concat(e,"' already exists. Use MenuId.for(ident) or a unique identifier"));_._instances.set(e,this),this.id=e}}_._instances=new Map,_.CommandPalette=new _("CommandPalette"),_.DebugBreakpointsContext=new _("DebugBreakpointsContext"),_.DebugCallStackContext=new _("DebugCallStackContext"),_.DebugConsoleContext=new _("DebugConsoleContext"),_.DebugVariablesContext=new _("DebugVariablesContext"),_.NotebookVariablesContext=new _("NotebookVariablesContext"),_.DebugHoverContext=new _("DebugHoverContext"),_.DebugWatchContext=new _("DebugWatchContext"),_.DebugToolBar=new _("DebugToolBar"),_.DebugToolBarStop=new _("DebugToolBarStop"),_.EditorContext=new _("EditorContext"),_.SimpleEditorContext=new _("SimpleEditorContext"),_.EditorContent=new _("EditorContent"),_.EditorLineNumberContext=new _("EditorLineNumberContext"),_.EditorContextCopy=new _("EditorContextCopy"),_.EditorContextPeek=new _("EditorContextPeek"),_.EditorContextShare=new _("EditorContextShare"),_.EditorTitle=new _("EditorTitle"),_.EditorTitleRun=new _("EditorTitleRun"),_.EditorTitleContext=new _("EditorTitleContext"),_.EditorTitleContextShare=new _("EditorTitleContextShare"),_.EmptyEditorGroup=new _("EmptyEditorGroup"),_.EmptyEditorGroupContext=new _("EmptyEditorGroupContext"),_.EditorTabsBarContext=new _("EditorTabsBarContext"),_.EditorTabsBarShowTabsSubmenu=new _("EditorTabsBarShowTabsSubmenu"),_.EditorTabsBarShowTabsZenModeSubmenu=new _("EditorTabsBarShowTabsZenModeSubmenu"),_.EditorActionsPositionSubmenu=new _("EditorActionsPositionSubmenu"),_.ExplorerContext=new _("ExplorerContext"),_.ExplorerContextShare=new _("ExplorerContextShare"),_.ExtensionContext=new _("ExtensionContext"),_.GlobalActivity=new _("GlobalActivity"),_.CommandCenter=new _("CommandCenter"),_.CommandCenterCenter=new _("CommandCenterCenter"),_.LayoutControlMenuSubmenu=new _("LayoutControlMenuSubmenu"),_.LayoutControlMenu=new _("LayoutControlMenu"),_.MenubarMainMenu=new _("MenubarMainMenu"),_.MenubarAppearanceMenu=new _("MenubarAppearanceMenu"),_.MenubarDebugMenu=new _("MenubarDebugMenu"),_.MenubarEditMenu=new _("MenubarEditMenu"),_.MenubarCopy=new _("MenubarCopy"),_.MenubarFileMenu=new _("MenubarFileMenu"),_.MenubarGoMenu=new _("MenubarGoMenu"),_.MenubarHelpMenu=new _("MenubarHelpMenu"),_.MenubarLayoutMenu=new _("MenubarLayoutMenu"),_.MenubarNewBreakpointMenu=new _("MenubarNewBreakpointMenu"),_.PanelAlignmentMenu=new _("PanelAlignmentMenu"),_.PanelPositionMenu=new _("PanelPositionMenu"),_.ActivityBarPositionMenu=new _("ActivityBarPositionMenu"),_.MenubarPreferencesMenu=new _("MenubarPreferencesMenu"),_.MenubarRecentMenu=new _("MenubarRecentMenu"),_.MenubarSelectionMenu=new _("MenubarSelectionMenu"),_.MenubarShare=new _("MenubarShare"),_.MenubarSwitchEditorMenu=new _("MenubarSwitchEditorMenu"),_.MenubarSwitchGroupMenu=new _("MenubarSwitchGroupMenu"),_.MenubarTerminalMenu=new _("MenubarTerminalMenu"),_.MenubarViewMenu=new _("MenubarViewMenu"),_.MenubarHomeMenu=new _("MenubarHomeMenu"),_.OpenEditorsContext=new _("OpenEditorsContext"),_.OpenEditorsContextShare=new _("OpenEditorsContextShare"),_.ProblemsPanelContext=new _("ProblemsPanelContext"),_.SCMInputBox=new _("SCMInputBox"),_.SCMChangesSeparator=new _("SCMChangesSeparator"),_.SCMIncomingChanges=new _("SCMIncomingChanges"),_.SCMIncomingChangesContext=new _("SCMIncomingChangesContext"),_.SCMIncomingChangesSetting=new _("SCMIncomingChangesSetting"),_.SCMOutgoingChanges=new _("SCMOutgoingChanges"),_.SCMOutgoingChangesContext=new _("SCMOutgoingChangesContext"),_.SCMOutgoingChangesSetting=new _("SCMOutgoingChangesSetting"),_.SCMIncomingChangesAllChangesContext=new _("SCMIncomingChangesAllChangesContext"),_.SCMIncomingChangesHistoryItemContext=new _("SCMIncomingChangesHistoryItemContext"),_.SCMOutgoingChangesAllChangesContext=new _("SCMOutgoingChangesAllChangesContext"),_.SCMOutgoingChangesHistoryItemContext=new _("SCMOutgoingChangesHistoryItemContext"),_.SCMChangeContext=new _("SCMChangeContext"),_.SCMResourceContext=new _("SCMResourceContext"),_.SCMResourceContextShare=new _("SCMResourceContextShare"),_.SCMResourceFolderContext=new _("SCMResourceFolderContext"),_.SCMResourceGroupContext=new _("SCMResourceGroupContext"),_.SCMSourceControl=new _("SCMSourceControl"),_.SCMSourceControlInline=new _("SCMSourceControlInline"),_.SCMSourceControlTitle=new _("SCMSourceControlTitle"),_.SCMTitle=new _("SCMTitle"),_.SearchContext=new _("SearchContext"),_.SearchActionMenu=new _("SearchActionContext"),_.StatusBarWindowIndicatorMenu=new _("StatusBarWindowIndicatorMenu"),_.StatusBarRemoteIndicatorMenu=new _("StatusBarRemoteIndicatorMenu"),_.StickyScrollContext=new _("StickyScrollContext"),_.TestItem=new _("TestItem"),_.TestItemGutter=new _("TestItemGutter"),_.TestMessageContext=new _("TestMessageContext"),_.TestMessageContent=new _("TestMessageContent"),_.TestPeekElement=new _("TestPeekElement"),_.TestPeekTitle=new _("TestPeekTitle"),_.TouchBarContext=new _("TouchBarContext"),_.TitleBarContext=new _("TitleBarContext"),_.TitleBarTitleContext=new _("TitleBarTitleContext"),_.TunnelContext=new _("TunnelContext"),_.TunnelPrivacy=new _("TunnelPrivacy"),_.TunnelProtocol=new _("TunnelProtocol"),_.TunnelPortInline=new _("TunnelInline"),_.TunnelTitle=new _("TunnelTitle"),_.TunnelLocalAddressInline=new _("TunnelLocalAddressInline"),_.TunnelOriginInline=new _("TunnelOriginInline"),_.ViewItemContext=new _("ViewItemContext"),_.ViewContainerTitle=new _("ViewContainerTitle"),_.ViewContainerTitleContext=new _("ViewContainerTitleContext"),_.ViewTitle=new _("ViewTitle"),_.ViewTitleContext=new _("ViewTitleContext"),_.CommentEditorActions=new _("CommentEditorActions"),_.CommentThreadTitle=new _("CommentThreadTitle"),_.CommentThreadActions=new _("CommentThreadActions"),_.CommentThreadAdditionalActions=new _("CommentThreadAdditionalActions"),_.CommentThreadTitleContext=new _("CommentThreadTitleContext"),_.CommentThreadCommentContext=new _("CommentThreadCommentContext"),_.CommentTitle=new _("CommentTitle"),_.CommentActions=new _("CommentActions"),_.CommentsViewThreadActions=new _("CommentsViewThreadActions"),_.InteractiveToolbar=new _("InteractiveToolbar"),_.InteractiveCellTitle=new _("InteractiveCellTitle"),_.InteractiveCellDelete=new _("InteractiveCellDelete"),_.InteractiveCellExecute=new _("InteractiveCellExecute"),_.InteractiveInputExecute=new _("InteractiveInputExecute"),_.IssueReporter=new _("IssueReporter"),_.NotebookToolbar=new _("NotebookToolbar"),_.NotebookStickyScrollContext=new _("NotebookStickyScrollContext"),_.NotebookCellTitle=new _("NotebookCellTitle"),_.NotebookCellDelete=new _("NotebookCellDelete"),_.NotebookCellInsert=new _("NotebookCellInsert"),_.NotebookCellBetween=new _("NotebookCellBetween"),_.NotebookCellListTop=new _("NotebookCellTop"),_.NotebookCellExecute=new _("NotebookCellExecute"),_.NotebookCellExecuteGoTo=new _("NotebookCellExecuteGoTo"),_.NotebookCellExecutePrimary=new _("NotebookCellExecutePrimary"),_.NotebookDiffCellInputTitle=new _("NotebookDiffCellInputTitle"),_.NotebookDiffCellMetadataTitle=new _("NotebookDiffCellMetadataTitle"),_.NotebookDiffCellOutputsTitle=new _("NotebookDiffCellOutputsTitle"),_.NotebookOutputToolbar=new _("NotebookOutputToolbar"),_.NotebookOutlineFilter=new _("NotebookOutlineFilter"),_.NotebookOutlineActionMenu=new _("NotebookOutlineActionMenu"),_.NotebookEditorLayoutConfigure=new _("NotebookEditorLayoutConfigure"),_.NotebookKernelSource=new _("NotebookKernelSource"),_.BulkEditTitle=new _("BulkEditTitle"),_.BulkEditContext=new _("BulkEditContext"),_.TimelineItemContext=new _("TimelineItemContext"),_.TimelineTitle=new _("TimelineTitle"),_.TimelineTitleContext=new _("TimelineTitleContext"),_.TimelineFilterSubMenu=new _("TimelineFilterSubMenu"),_.AccountsContext=new _("AccountsContext"),_.SidebarTitle=new _("SidebarTitle"),_.PanelTitle=new _("PanelTitle"),_.AuxiliaryBarTitle=new _("AuxiliaryBarTitle"),_.AuxiliaryBarHeader=new _("AuxiliaryBarHeader"),_.TerminalInstanceContext=new _("TerminalInstanceContext"),_.TerminalEditorInstanceContext=new _("TerminalEditorInstanceContext"),_.TerminalNewDropdownContext=new _("TerminalNewDropdownContext"),_.TerminalTabContext=new _("TerminalTabContext"),_.TerminalTabEmptyAreaContext=new _("TerminalTabEmptyAreaContext"),_.TerminalStickyScrollContext=new _("TerminalStickyScrollContext"),_.WebviewContext=new _("WebviewContext"),_.InlineCompletionsActions=new _("InlineCompletionsActions"),_.InlineEditActions=new _("InlineEditActions"),_.NewFile=new _("NewFile"),_.MergeInput1Toolbar=new _("MergeToolbar1Toolbar"),_.MergeInput2Toolbar=new _("MergeToolbar2Toolbar"),_.MergeBaseToolbar=new _("MergeBaseToolbar"),_.MergeInputResultToolbar=new _("MergeToolbarResultToolbar"),_.InlineSuggestionToolbar=new _("InlineSuggestionToolbar"),_.InlineEditToolbar=new _("InlineEditToolbar"),_.ChatContext=new _("ChatContext"),_.ChatCodeBlock=new _("ChatCodeblock"),_.ChatMessageTitle=new _("ChatMessageTitle"),_.ChatExecute=new _("ChatExecute"),_.ChatExecuteSecondary=new _("ChatExecuteSecondary"),_.ChatInputSide=new _("ChatInputSide"),_.AccessibleView=new _("AccessibleView"),_.MultiDiffEditorFileToolbar=new _("MultiDiffEditorFileToolbar"),_.DiffEditorHunkToolbar=new _("DiffEditorHunkToolbar"),_.DiffEditorSelectionToolbar=new _("DiffEditorSelectionToolbar");const v=(0,c.yh)("menuService");class b{static for(e){let t=this._all.get(e);return t||(t=new b(e),this._all.set(e,t)),t}static merge(e){const t=new Set;for(const i of e)i instanceof b&&t.add(i.id);return t}constructor(e){this.id=e,this.has=t=>t===e}}b._all=new Map;const C=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new r.SZ({merge:b.merge}),this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(e){return this._commands.set(e.id,e),this._onDidChangeMenu.fire(b.for(_.CommandPalette)),(0,a.OF)((()=>{this._commands.delete(e.id)&&this._onDidChangeMenu.fire(b.for(_.CommandPalette))}))}getCommand(e){return this._commands.get(e)}getCommands(){const e=new Map;return this._commands.forEach(((t,i)=>e.set(i,t))),e}appendMenuItem(e,t){let i=this._menuItems.get(e);i||(i=new l.S,this._menuItems.set(e,i));const n=i.push(t);return this._onDidChangeMenu.fire(b.for(e)),(0,a.OF)((()=>{n(),this._onDidChangeMenu.fire(b.for(e))}))}appendMenuItems(e){const t=new a.SL;for(const{id:i,item:n}of e)t.add(this.appendMenuItem(i,n));return t}getMenuItems(e){let t;return t=this._menuItems.has(e)?[...this._menuItems.get(e)]:[],e===_.CommandPalette&&this._appendImplicitItems(t),t}_appendImplicitItems(e){const t=new Set;for(const i of e)f(i)&&(t.add(i.command.id),i.alt&&t.add(i.alt.id));this._commands.forEach(((i,n)=>{t.has(n)||e.push({command:i})}))}};class w extends o.wY{constructor(e,t,i){super("submenuitem.".concat(e.submenu.id),"string"===typeof e.title?e.title:e.title.value,i,"submenu"),this.item=e,this.hideActions=t}}let y=n=class{static label(e,t){return(null===t||void 0===t?void 0:t.renderShortTitle)&&e.shortTitle?"string"===typeof e.shortTitle?e.shortTitle:e.shortTitle.value:"string"===typeof e.title?e.title:e.title.value}constructor(e,t,i,o,r,a){var l,h;let d;if(this.hideActions=o,this._commandService=a,this.id=e.id,this.label=n.label(e,i),this.tooltip=null!==(h="string"===typeof e.tooltip?e.tooltip:null===(l=e.tooltip)||void 0===l?void 0:l.value)&&void 0!==h?h:"",this.enabled=!e.precondition||r.contextMatchesRules(e.precondition),this.checked=void 0,e.toggled){const t=e.toggled.condition?e.toggled:{condition:e.toggled};this.checked=r.contextMatchesRules(t.condition),this.checked&&t.tooltip&&(this.tooltip="string"===typeof t.tooltip?t.tooltip:t.tooltip.value),this.checked&&s.k.isThemeIcon(t.icon)&&(d=t.icon),this.checked&&t.title&&(this.label="string"===typeof t.title?t.title:t.title.value)}d||(d=s.k.isThemeIcon(e.icon)?e.icon:void 0),this.item=e,this.alt=t?new n(t,void 0,i,o,r,a):void 0,this._options=i,this.class=d&&s.k.asClassName(d)}run(){var e,t;let i=[];if((null===(e=this._options)||void 0===e?void 0:e.arg)&&(i=[...i,this._options.arg]),null===(t=this._options)||void 0===t?void 0:t.shouldForwardArgs){for(var n=arguments.length,o=new Array(n),s=0;s1?t-1:0),o=1;o{i.d(t,{p:()=>n});const n=(0,i(34304).yh)("clipboardService")},60982:(e,t,i)=>{i.d(t,{H:()=>l,P:()=>h});var n=i(24219),o=i(36952),s=i(89599),r=i(44713),a=i(63686);const l=(0,i(34304).yh)("commandService"),h=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new n.Q5,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(e,t){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.metadata&&Array.isArray(e.metadata.args)){const t=[];for(const n of e.metadata.args)t.push(n.constraint);const i=e.handler;e.handler=function(e){for(var n=arguments.length,o=new Array(n>1?n-1:0),s=1;s{o();const e=this._commands.get(i);(null===e||void 0===e?void 0:e.isEmpty())&&this._commands.delete(i)}));return this._onDidRegisterCommand.fire(i),l}registerCommandAlias(e,t){return h.registerCommand(e,(function(e){for(var i=arguments.length,n=new Array(i>1?i-1:0),o=1;o{}))},25195:(e,t,i)=>{i.d(t,{KV:()=>s,Mt:()=>l,Od:()=>o,UI:()=>h,Ui:()=>n,xL:()=>r});const n=(0,i(34304).yh)("configurationService");function o(e,t){const i=Object.create(null);for(const n in e)s(i,n,e[n],t);return i}function s(e,t,i,n){const o=t.split("."),s=o.pop();let r=e;for(let l=0;l{i.d(t,{IP:()=>d,eU:()=>y,ny:()=>S});var n=i(75629),o=i(24219),s=i(63686),r=i(71721),a=i(25195),l=i(72677),h=i(70311);const d={Configuration:"base.contributions.configuration"},c={properties:{},patternProperties:{}},u={properties:{},patternProperties:{}},g={properties:{},patternProperties:{}},m={properties:{},patternProperties:{}},f={properties:{},patternProperties:{}},p={properties:{},patternProperties:{}},_="vscode://schemas/settings/resourceLanguage",v=h.B.as(l.I.JSONContribution);const b="\\[([^\\]]+)\\]",C=new RegExp(b,"g"),w="^(".concat(b,")+$"),y=new RegExp(w);function S(e){const t=[];if(y.test(e)){let i=C.exec(e);for(;null===i||void 0===i?void 0:i.length;){const n=i[1].trim();n&&t.push(n),i=C.exec(e)}}return(0,n.EB)(t)}const L=new class{constructor(){this.overrideIdentifiers=new Set,this._onDidSchemaChange=new o.Q5,this._onDidUpdateConfiguration=new o.Q5,this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:r.NC("defaultLanguageConfigurationOverrides.title","Default Language Configuration Overrides"),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},v.registerSchema(_,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.registerConfigurations([e],t)}registerConfigurations(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const i=new Set;this.doRegisterConfigurations(e,t,i),v.registerSchema(_,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:i})}registerDefaultConfigurations(e){const t=new Set;this.doRegisterDefaultConfigurations(e,t),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:t,defaultsOverrides:!0})}doRegisterDefaultConfigurations(e,t){var i;const n=[];for(const{overrides:o,source:l}of e)for(const e in o)if(t.add(e),y.test(e)){const t=this.configurationDefaultsOverrides.get(e),h=null!==(i=null===t||void 0===t?void 0:t.valuesSources)&&void 0!==i?i:new Map;if(l)for(const i of Object.keys(o[e]))h.set(i,l);const d={...(null===t||void 0===t?void 0:t.value)||{},...o[e]};this.configurationDefaultsOverrides.set(e,{source:l,value:d,valuesSources:h});const c=(0,a.UI)(e),u={type:"object",default:d,description:r.NC("defaultLanguageConfiguration.description","Configure settings to be overridden for the {0} language.",c),$ref:_,defaultDefaultValue:d,source:s.HD(l)?void 0:l,defaultValueSource:l};n.push(...S(e)),this.configurationProperties[e]=u,this.defaultLanguageConfigurationOverridesNode.properties[e]=u}else{this.configurationDefaultsOverrides.set(e,{value:o[e],source:l});const t=this.configurationProperties[e];t&&(this.updatePropertyDefaultValue(e,t),this.updateSchema(e,t))}this.doRegisterOverrideIdentifiers(n)}registerOverrideIdentifiers(e){this.doRegisterOverrideIdentifiers(e),this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(e){for(const t of e)this.overrideIdentifiers.add(t);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(e,t,i){e.forEach((e=>{this.validateAndRegisterProperties(e,t,e.extensionInfo,e.restrictedProperties,void 0,i),this.configurationContributors.push(e),this.registerJSONConfiguration(e)}))}validateAndRegisterProperties(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:3,r=arguments.length>5?arguments[5]:void 0;var a;o=s.Jp(e.scope)?o:e.scope;const l=e.properties;if(l)for(const d in l){const e=l[d];t&&k(d,e)?delete l[d]:(e.source=i,e.defaultDefaultValue=l[d].default,this.updatePropertyDefaultValue(d,e),y.test(d)?e.scope=void 0:(e.scope=s.Jp(e.scope)?o:e.scope,e.restricted=s.Jp(e.restricted)?!!(null===n||void 0===n?void 0:n.includes(d)):e.restricted),!l[d].hasOwnProperty("included")||l[d].included?(this.configurationProperties[d]=l[d],(null===(a=l[d].policy)||void 0===a?void 0:a.name)&&this.policyConfigurations.set(l[d].policy.name,d),!l[d].deprecationMessage&&l[d].markdownDeprecationMessage&&(l[d].deprecationMessage=l[d].markdownDeprecationMessage),r.add(d)):(this.excludedConfigurationProperties[d]=l[d],delete l[d]))}const h=e.allOf;if(h)for(const s of h)this.validateAndRegisterProperties(s,t,i,n,o,r)}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}registerJSONConfiguration(e){const t=e=>{const i=e.properties;if(i)for(const t in i)this.updateSchema(t,i[t]);const n=e.allOf;null===n||void 0===n||n.forEach(t)};t(e)}updateSchema(e,t){switch(c.properties[e]=t,t.scope){case 1:u.properties[e]=t;break;case 2:g.properties[e]=t;break;case 6:m.properties[e]=t;break;case 3:f.properties[e]=t;break;case 4:p.properties[e]=t;break;case 5:p.properties[e]=t,this.resourceLanguageSettingsSchema.properties[e]=t}}updateOverridePropertyPatternKey(){for(const e of this.overrideIdentifiers.values()){const t="[".concat(e,"]"),i={type:"object",description:r.NC("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:r.NC("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:_};this.updatePropertyDefaultValue(t,i),c.properties[t]=i,u.properties[t]=i,g.properties[t]=i,m.properties[t]=i,f.properties[t]=i,p.properties[t]=i}}registerOverridePropertyPatternKey(){const e={type:"object",description:r.NC("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:r.NC("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:_};c.patternProperties[w]=e,u.patternProperties[w]=e,g.patternProperties[w]=e,m.patternProperties[w]=e,f.patternProperties[w]=e,p.patternProperties[w]=e,this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,t){const i=this.configurationDefaultsOverrides.get(e);let n=null===i||void 0===i?void 0:i.value,o=null===i||void 0===i?void 0:i.source;s.o8(n)&&(n=t.defaultDefaultValue,o=void 0),s.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,t.defaultValueSource=o}};function k(e,t){var i,n,o,s;return e.trim()?y.test(e)?r.NC("config.property.languageDefault","Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",e):void 0!==L.getConfigurationProperties()[e]?r.NC("config.property.duplicate","Cannot register '{0}'. This property is already registered.",e):(null===(i=t.policy)||void 0===i?void 0:i.name)&&void 0!==L.getPolicyConfigurations().get(null===(n=t.policy)||void 0===n?void 0:n.name)?r.NC("config.policy.duplicate","Cannot register '{0}'. The associated policy {1} is already registered with {2}.",e,null===(o=t.policy)||void 0===o?void 0:o.name,L.getPolicyConfigurations().get(null===(s=t.policy)||void 0===s?void 0:s.name)):null:r.NC("config.property.empty","Cannot register an empty property")}h.B.add(d.Configuration,L)},24920:(e,t,i)=>{i.d(t,{cP:()=>I,Ao:()=>L,i6:()=>q,uy:()=>j,Fb:()=>k,K8:()=>Z});var n=i(21511),o=i(25085),s=i(85108),r=i(71721);function a(){switch(arguments.length){case 1:return(0,r.NC)("contextkey.scanner.hint.didYouMean1","Did you mean {0}?",arguments.length<=0?void 0:arguments[0]);case 2:return(0,r.NC)("contextkey.scanner.hint.didYouMean2","Did you mean {0} or {1}?",arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1]);case 3:return(0,r.NC)("contextkey.scanner.hint.didYouMean3","Did you mean {0}, {1} or {2}?",arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1],arguments.length<=2?void 0:arguments[2]);default:return}}const l=(0,r.NC)("contextkey.scanner.hint.didYouForgetToOpenOrCloseQuote","Did you forget to open or close the quote?"),h=(0,r.NC)("contextkey.scanner.hint.didYouForgetToEscapeSlash","Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\/'.");class d{constructor(){this._input="",this._start=0,this._current=0,this._tokens=[],this._errors=[],this.stringRe=/[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(e){switch(e.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return e.isTripleEq?"===":"==";case 4:return e.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:case 8:return">=";case 9:return"=~";case 10:case 17:case 18:case 19:return e.lexeme;case 11:return"true";case 12:return"false";case 13:return"in";case 14:return"not";case 15:return"&&";case 16:return"||";case 20:return"EOF";default:throw(0,s.L6)("unhandled token type: ".concat(JSON.stringify(e),"; have you forgotten to add a case?"))}}reset(e){return this._input=e,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();){this._start=this._current;switch(this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){const e=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:e})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){const e=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:e})}else this._match(126)?this._addToken(9):this._error(a("==","=~"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error(a("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(a("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(e){return!this._isAtEnd()&&(this._input.charCodeAt(this._current)===e&&(this._current++,!0))}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(e){this._tokens.push({type:e,offset:this._start})}_error(e){const t=this._start,i=this._input.substring(this._start,this._current),n={type:19,offset:this._start,lexeme:i};this._errors.push({offset:t,lexeme:i,additionalInfo:e}),this._tokens.push(n)}_string(){this.stringRe.lastIndex=this._start;const e=this.stringRe.exec(this._input);if(e){this._current=this._start+e[0].length;const t=this._input.substring(this._start,this._current),i=d._keywords.get(t);i?this._addToken(i):this._tokens.push({type:17,lexeme:t,offset:this._start})}}_quotedString(){for(;39!==this._peek()&&!this._isAtEnd();)this._advance();this._isAtEnd()?this._error(l):(this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1}))}_regex(){let e=this._current,t=!1,i=!1;for(;;){if(e>=this._input.length)return this._current=e,void this._error(h);const n=this._input.charCodeAt(e);if(t)t=!1;else{if(47===n&&!i){e++;break}91===n?i=!0:92===n?t=!0:93===n&&(i=!1)}e++}for(;e=this._input.length}}d._regexFlags=new Set(["i","g","s","m","y","u"].map((e=>e.charCodeAt(0)))),d._keywords=new Map([["not",14],["in",13],["false",12],["true",11]]);var c=i(34304);const u=new Map;u.set("false",!1),u.set("true",!0),u.set("isMac",n.dz),u.set("isLinux",n.IJ),u.set("isWindows",n.ED),u.set("isWeb",n.$L),u.set("isMacNative",n.dz&&!n.$L),u.set("isEdge",n.un),u.set("isFirefox",n.vU),u.set("isChrome",n.i7),u.set("isSafari",n.G6);const g=Object.prototype.hasOwnProperty,m={regexParsingWithErrorRecovery:!0},f=(0,r.NC)("contextkey.parser.error.emptyString","Empty context key expression"),p=(0,r.NC)("contextkey.parser.error.emptyString.hint","Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively."),_=(0,r.NC)("contextkey.parser.error.noInAfterNot","'in' after 'not'."),v=(0,r.NC)("contextkey.parser.error.closingParenthesis","closing parenthesis ')'"),b=(0,r.NC)("contextkey.parser.error.unexpectedToken","Unexpected token"),C=(0,r.NC)("contextkey.parser.error.unexpectedToken.hint","Did you forget to put && or || before the token?"),w=(0,r.NC)("contextkey.parser.error.unexpectedEOF","Unexpected end of expression"),y=(0,r.NC)("contextkey.parser.error.unexpectedEOF.hint","Did you forget to put a context key?");class S{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;this._config=e,this._scanner=new d,this._tokens=[],this._current=0,this._parsingErrors=[],this._flagsGYRe=/g|y/g}parse(e){if(""!==e){this._tokens=this._scanner.reset(e).scan(),this._current=0,this._parsingErrors=[];try{const e=this._expr();if(!this._isAtEnd()){const e=this._peek(),t=17===e.type?C:void 0;throw this._parsingErrors.push({message:b,offset:e.offset,lexeme:d.getLexeme(e),additionalInfo:t}),S._parseError}return e}catch(t){if(t!==S._parseError)throw t;return}}else this._parsingErrors.push({message:f,offset:0,lexeme:"",additionalInfo:p})}_expr(){return this._or()}_or(){const e=[this._and()];for(;this._matchOne(16);){const t=this._and();e.push(t)}return 1===e.length?e[0]:L.or(...e)}_and(){const e=[this._term()];for(;this._matchOne(15);){const t=this._term();e.push(t)}return 1===e.length?e[0]:L.and(...e)}_term(){if(this._matchOne(2)){const e=this._peek();switch(e.type){case 11:return this._advance(),N.INSTANCE;case 12:return this._advance(),x.INSTANCE;case 0:{this._advance();const e=this._expr();return this._consume(1,v),null===e||void 0===e?void 0:e.negate()}case 17:return this._advance(),R.create(e.lexeme);default:throw this._errExpectedButGot("KEY | true | false | '(' expression ')'",e)}}return this._primary()}_primary(){const e=this._peek();switch(e.type){case 11:return this._advance(),L.true();case 12:return this._advance(),L.false();case 0:{this._advance();const e=this._expr();return this._consume(1,v),e}case 17:{const n=e.lexeme;if(this._advance(),this._matchOne(9)){const e=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),10!==e.type)throw this._errExpectedButGot("REGEX",e);const i=e.lexeme,o=i.lastIndexOf("/"),s=o===i.length-1?void 0:this._removeFlagsGY(i.substring(o+1));let r;try{r=new RegExp(i.substring(1,o),s)}catch(t){throw this._errExpectedButGot("REGEX",e)}return V.create(n,r)}switch(e.type){case 10:case 19:{const i=[e.lexeme];this._advance();let o=this._peek(),s=0;for(let t=0;t=0){const r=t.slice(n+1,o),a="i"===t[o+1]?"i":"";try{s=new RegExp(r,a)}catch(i){throw this._errExpectedButGot("REGEX",e)}}}if(null===s)throw this._errExpectedButGot("REGEX",e);return V.create(n,s)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,_);const e=this._value();return L.notIn(n,e)}switch(this._peek().type){case 3:{this._advance();const e=this._value();if(18===this._previous().type)return L.equals(n,e);switch(e){case"true":return L.has(n);case"false":return L.not(n);default:return L.equals(n,e)}}case 4:{this._advance();const e=this._value();if(18===this._previous().type)return L.notEquals(n,e);switch(e){case"true":return L.not(n);case"false":return L.has(n);default:return L.notEquals(n,e)}}case 5:return this._advance(),B.create(n,this._value());case 6:return this._advance(),z.create(n,this._value());case 7:return this._advance(),P.create(n,this._value());case 8:return this._advance(),F.create(n,this._value());case 13:return this._advance(),L.in(n,this._value());default:return L.has(n)}}case 20:throw this._parsingErrors.push({message:w,offset:e.offset,lexeme:"",additionalInfo:y}),S._parseError;default:throw this._errExpectedButGot("true | false | KEY \n\t| KEY '=~' REGEX \n\t| KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value",this._peek())}}_value(){const e=this._peek();switch(e.type){case 17:case 18:return this._advance(),e.lexeme;case 11:return this._advance(),"true";case 12:return this._advance(),"false";case 13:return this._advance(),"in";default:return""}}_removeFlagsGY(e){return e.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(e){return!!this._check(e)&&(this._advance(),!0)}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(e,t){if(this._check(e))return this._advance();throw this._errExpectedButGot(t,this._peek())}_errExpectedButGot(e,t,i){const n=(0,r.NC)("contextkey.parser.error.expectedButGot","Expected: {0}\nReceived: '{1}'.",e,d.getLexeme(t)),o=t.offset,s=d.getLexeme(t);return this._parsingErrors.push({message:n,offset:o,lexeme:s,additionalInfo:i}),S._parseError}_check(e){return this._peek().type===e}_peek(){return this._tokens[this._current]}_isAtEnd(){return 20===this._peek().type}}S._parseError=new Error;class L{static false(){return N.INSTANCE}static true(){return x.INSTANCE}static has(e){return E.create(e)}static equals(e,t){return I.create(e,t)}static notEquals(e,t){return A.create(e,t)}static regex(e,t){return V.create(e,t)}static in(e,t){return T.create(e,t)}static notIn(e,t){return M.create(e,t)}static not(e){return R.create(e)}static and(){for(var e=arguments.length,t=new Array(e),i=0;i1&&void 0!==arguments[1]?arguments[1]:null;const i=u.get(e);return"boolean"===typeof i?i?x.INSTANCE:N.INSTANCE:new E(e,t)}constructor(e,t){this.key=e,this.negated=t,this.type=2}cmp(e){return e.type!==this.type?this.type-e.type:G(this.key,e.key)}equals(e){return e.type===this.type&&this.key===e.key}substituteConstants(){const e=u.get(this.key);return"boolean"===typeof e?e?x.INSTANCE:N.INSTANCE:this}evaluate(e){return!!e.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=R.create(this.key,this)),this.negated}}class I{static create(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if("boolean"===typeof t)return t?E.create(e,i):R.create(e,i);const n=u.get(e);if("boolean"===typeof n){return t===(n?"true":"false")?x.INSTANCE:N.INSTANCE}return new I(e,t,i)}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=4}cmp(e){return e.type!==this.type?this.type-e.type:Q(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){const e=u.get(this.key);if("boolean"===typeof e){const t=e?"true":"false";return this.value===t?x.INSTANCE:N.INSTANCE}return this}evaluate(e){return e.getValue(this.key)==this.value}serialize(){return"".concat(this.key," == '").concat(this.value,"'")}keys(){return[this.key]}negate(){return this.negated||(this.negated=A.create(this.key,this.value,this)),this.negated}}class T{static create(e,t){return new T(e,t)}constructor(e,t){this.key=e,this.valueKey=t,this.type=10,this.negated=null}cmp(e){return e.type!==this.type?this.type-e.type:Q(this.key,this.valueKey,e.key,e.valueKey)}equals(e){return e.type===this.type&&(this.key===e.key&&this.valueKey===e.valueKey)}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.valueKey),i=e.getValue(this.key);return Array.isArray(t)?t.includes(i):"string"===typeof i&&"object"===typeof t&&null!==t&&g.call(t,i)}serialize(){return"".concat(this.key," in '").concat(this.valueKey,"'")}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=M.create(this.key,this.valueKey)),this.negated}}class M{static create(e,t){return new M(e,t)}constructor(e,t){this.key=e,this.valueKey=t,this.type=11,this._negated=T.create(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:this._negated.cmp(e._negated)}equals(e){return e.type===this.type&&this._negated.equals(e._negated)}substituteConstants(){return this}evaluate(e){return!this._negated.evaluate(e)}serialize(){return"".concat(this.key," not in '").concat(this.valueKey,"'")}keys(){return this._negated.keys()}negate(){return this._negated}}class A{static create(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if("boolean"===typeof t)return t?R.create(e,i):E.create(e,i);const n=u.get(e);if("boolean"===typeof n){return t===(n?"true":"false")?N.INSTANCE:x.INSTANCE}return new A(e,t,i)}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=5}cmp(e){return e.type!==this.type?this.type-e.type:Q(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){const e=u.get(this.key);if("boolean"===typeof e){const t=e?"true":"false";return this.value===t?N.INSTANCE:x.INSTANCE}return this}evaluate(e){return e.getValue(this.key)!=this.value}serialize(){return"".concat(this.key," != '").concat(this.value,"'")}keys(){return[this.key]}negate(){return this.negated||(this.negated=I.create(this.key,this.value,this)),this.negated}}class R{static create(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const i=u.get(e);return"boolean"===typeof i?i?N.INSTANCE:x.INSTANCE:new R(e,t)}constructor(e,t){this.key=e,this.negated=t,this.type=3}cmp(e){return e.type!==this.type?this.type-e.type:G(this.key,e.key)}equals(e){return e.type===this.type&&this.key===e.key}substituteConstants(){const e=u.get(this.key);return"boolean"===typeof e?e?N.INSTANCE:x.INSTANCE:this}evaluate(e){return!e.getValue(this.key)}serialize(){return"!".concat(this.key)}keys(){return[this.key]}negate(){return this.negated||(this.negated=E.create(this.key,this)),this.negated}}function O(e,t){if("string"===typeof e){const t=parseFloat(e);isNaN(t)||(e=t)}return"string"===typeof e||"number"===typeof e?t(e):N.INSTANCE}class P{static create(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return O(t,(t=>new P(e,t,i)))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=12}cmp(e){return e.type!==this.type?this.type-e.type:Q(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){return this}evaluate(e){return"string"!==typeof this.value&&parseFloat(e.getValue(this.key))>this.value}serialize(){return"".concat(this.key," > ").concat(this.value)}keys(){return[this.key]}negate(){return this.negated||(this.negated=z.create(this.key,this.value,this)),this.negated}}class F{static create(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return O(t,(t=>new F(e,t,i)))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=13}cmp(e){return e.type!==this.type?this.type-e.type:Q(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){return this}evaluate(e){return"string"!==typeof this.value&&parseFloat(e.getValue(this.key))>=this.value}serialize(){return"".concat(this.key," >= ").concat(this.value)}keys(){return[this.key]}negate(){return this.negated||(this.negated=B.create(this.key,this.value,this)),this.negated}}class B{static create(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return O(t,(t=>new B(e,t,i)))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=14}cmp(e){return e.type!==this.type?this.type-e.type:Q(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){return this}evaluate(e){return"string"!==typeof this.value&&parseFloat(e.getValue(this.key))2&&void 0!==arguments[2]?arguments[2]:null;return O(t,(t=>new z(e,t,i)))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=15}cmp(e){return e.type!==this.type?this.type-e.type:Q(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){return this}evaluate(e){return"string"!==typeof this.value&&parseFloat(e.getValue(this.key))<=this.value}serialize(){return"".concat(this.key," <= ").concat(this.value)}keys(){return[this.key]}negate(){return this.negated||(this.negated=P.create(this.key,this.value,this)),this.negated}}class V{static create(e,t){return new V(e,t)}constructor(e,t){this.key=e,this.regexp=t,this.type=7,this.negated=null}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.keye.key)return 1;const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return ti?1:0}equals(e){if(e.type===this.type){const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return this.key===e.key&&t===i}return!1}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.key);return!!this.regexp&&this.regexp.test(t)}serialize(){const e=this.regexp?"/".concat(this.regexp.source,"/").concat(this.regexp.flags):"/invalid/";return"".concat(this.key," =~ ").concat(e)}keys(){return[this.key]}negate(){return this.negated||(this.negated=W.create(this)),this.negated}}class W{static create(e){return new W(e)}constructor(e){this._actual=e,this.type=8}cmp(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}equals(e){return e.type===this.type&&this._actual.equals(e._actual)}substituteConstants(){return this}evaluate(e){return!this._actual.evaluate(e)}serialize(){return"!(".concat(this._actual.serialize(),")")}keys(){return this._actual.keys()}negate(){return this._actual}}function H(e){let t=null;for(let i=0,n=e.length;ie.expr.length)return 1;for(let t=0,i=this.expr.length;t1;){const e=n[n.length-1];if(9!==e.type)break;n.pop();const t=n.pop(),o=0===n.length,s=U.create(e.expr.map((e=>K.create([e,t],null,i))),null,o);s&&(n.push(s),n.sort(D))}if(1===n.length)return n[0];if(i){for(let e=0;ee.serialize())).join(" && ")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());this.negated=U.create(e,this,!0)}return this.negated}}class U{static create(e,t,i){return U._normalizeArr(e,t,i)}constructor(e,t){this.expr=e,this.negated=t,this.type=9}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.lengthe.expr.length)return 1;for(let t=0,i=this.expr.length;te.serialize())).join(" || ")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());for(;e.length>1;){const t=e.shift(),i=e.shift(),n=[];for(const e of $(t))for(const t of $(i))n.push(K.create([e,t],null,!1));e.unshift(U.create(n,null,!1))}this.negated=U.create(e,this,!0)}return this.negated}}class j extends E{static all(){return j._info.values()}constructor(e,t,i){super(e,null),this._defaultValue=t,"object"===typeof i?j._info.push({...i,key:e}):!0!==i&&j._info.push({key:e,description:i,type:null!==t&&void 0!==t?typeof t:void 0})}bindTo(e){return e.createKey(this.key,this._defaultValue)}getValue(e){return e.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(e){return I.create(this.key,e)}}j._info=[];const q=(0,c.yh)("contextKeyService");function G(e,t){return et?1:0}function Q(e,t,i,n){return ei?1:tn?1:0}function Z(e,t){if(0===e.type||1===t.type)return!0;if(9===e.type)return 9===t.type&&Y(e.expr,t.expr);if(9===t.type){for(const i of t.expr)if(Z(e,i))return!0;return!1}if(6===e.type){if(6===t.type)return Y(t.expr,e.expr);for(const i of e.expr)if(Z(i,t))return!0;return!1}return e.equals(t)}function Y(e,t){let i=0,n=0;for(;i{i.d(t,{Pf:()=>a,Ul:()=>h,cv:()=>r,d0:()=>l});var n=i(21511),o=i(71721),s=i(24920);new s.uy("isMac",n.dz,(0,o.NC)("isMac","Whether the operating system is macOS")),new s.uy("isLinux",n.IJ,(0,o.NC)("isLinux","Whether the operating system is Linux"));const r=new s.uy("isWindows",n.ED,(0,o.NC)("isWindows","Whether the operating system is Windows")),a=new s.uy("isWeb",n.$L,(0,o.NC)("isWeb","Whether the platform is a web browser")),l=(new s.uy("isMacNative",n.dz&&!n.$L,(0,o.NC)("isMacNative","Whether the operating system is macOS on a non-browser platform")),new s.uy("isIOS",n.gn,(0,o.NC)("isIOS","Whether the operating system is iOS")),new s.uy("isMobile",n.tq,(0,o.NC)("isMobile","Whether the platform is a mobile web browser")),new s.uy("isDevelopment",!1,!0),new s.uy("productQualityType","",(0,o.NC)("productQualityType","Quality type of VS Code")),"inputFocus"),h=new s.uy(l,!1,(0,o.NC)("inputFocus","Whether keyboard focus is inside an input box"))},58868:(e,t,i)=>{i.d(t,{i:()=>s,u:()=>o});var n=i(34304);const o=(0,n.yh)("contextViewService"),s=(0,n.yh)("contextMenuService")},78025:(e,t,i)=>{i.d(t,{S:()=>n});const n=(0,i(34304).yh)("dialogService")},33473:(e,t,i)=>{i.d(t,{Y:()=>n});const n=(0,i(34304).yh)("environmentService")},8695:(e,t,i)=>{i.d(t,{Bs:()=>h,mQ:()=>d});var n=i(34304),o=i(89599),s=i(25195),r=i(85714),a=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},l=function(e,t){return function(i,n){t(i,n,e)}};const h=(0,n.yh)("hoverService");let d=class extends o.JT{get delay(){return this.isInstantlyHovering()?0:this._delay}constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3?arguments[3]:void 0,s=arguments.length>4?arguments[4]:void 0;super(),this.placement=e,this.instantHover=t,this.overrideOptions=i,this.configurationService=n,this.hoverService=s,this.lastHoverHideTime=0,this.timeLimit=200,this.hoverDisposables=this._register(new o.SL),this._delay=this.configurationService.getValue("workbench.hover.delay"),this._register(this.configurationService.onDidChangeConfiguration((e=>{e.affectsConfiguration("workbench.hover.delay")&&(this._delay=this.configurationService.getValue("workbench.hover.delay"))})))}showHover(e,t){const i="function"===typeof this.overrideOptions?this.overrideOptions(e,t):this.overrideOptions;this.hoverDisposables.clear();const n=e.target instanceof HTMLElement?[e.target]:e.target.targetElements;for(const s of n)this.hoverDisposables.add((0,r.mu)(s,"keydown",(e=>{e.equals(9)&&this.hoverService.hideHover()})));const o=e.content instanceof HTMLElement?void 0:e.content.toString();return this.hoverService.showHover({...e,...i,persistence:{hideOnKeyDown:!0,...i.persistence},id:o,appearance:{...e.appearance,compact:!0,skipFadeInAnimation:this.isInstantlyHovering(),...i.appearance}},t)}isInstantlyHovering(){return this.instantHover&&Date.now()-this.lastHoverHideTime{i.d(t,{M:()=>n});class n{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.ctor=e,this.staticArguments=t,this.supportsDelayedInstantiation=i}}},43837:(e,t,i)=>{i.d(t,{d:()=>r,z:()=>s});var n=i(58834);const o=[];function s(e,t,i){t instanceof n.M||(t=new n.M(t,[],Boolean(i))),o.push([e,t])}function r(){return o}},34304:(e,t,i)=>{var n;i.d(t,{I8:()=>n,TG:()=>o,yh:()=>s}),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]||[]}}(n||(n={}));const o=s("instantiationService");function s(e){if(n.serviceIds.has(e))return n.serviceIds.get(e);const t=function(e,i,o){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");!function(e,t,i){t[n.DI_TARGET]===t?t[n.DI_DEPENDENCIES].push({id:e,index:i}):(t[n.DI_DEPENDENCIES]=[{id:e,index:i}],t[n.DI_TARGET]=t)}(t,e,o)};return t.toString=()=>e,n.serviceIds.set(e,t),t}},54731:(e,t,i)=>{i.d(t,{y:()=>n});class n{constructor(){this._entries=new Map;for(var e=arguments.length,t=new Array(e),i=0;i{i.d(t,{I:()=>s});var n=i(24219),o=i(70311);const s={JSONContribution:"base.contributions.json"};const r=new class{constructor(){this._onDidChangeSchema=new n.Q5,this.schemasById={}}registerSchema(e,t){var i;this.schemasById[(i=e,i.length>0&&"#"===i.charAt(i.length-1)?i.substring(0,i.length-1):i)]=t,this._onDidChangeSchema.fire(e)}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}};o.B.add(s.JSONContribution,r)},46765:(e,t,i)=>{i.d(t,{d:()=>n});const n=(0,i(34304).yh)("keybindingService")},86728:(e,t,i)=>{i.d(t,{W:()=>d});var n=i(97162),o=i(21511),s=i(60982),r=i(70311),a=i(89599),l=i(44713);class h{constructor(){this._coreKeybindings=new l.S,this._extensionKeybindings=[],this._cachedMergedKeybindings=null}static bindToCurrentPlatform(e){if(1===o.OS){if(e&&e.win)return e.win}else if(2===o.OS){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e}registerKeybindingRule(e){const t=h.bindToCurrentPlatform(e),i=new a.SL;if(t&&t.primary){const s=(0,n.Z9)(t.primary,o.OS);s&&i.add(this._registerDefaultKeybinding(s,e.id,e.args,e.weight,0,e.when))}if(t&&Array.isArray(t.secondary))for(let s=0,r=t.secondary.length;s{r(),this._cachedMergedKeybindings=null}))}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(c)),this._cachedMergedKeybindings.slice(0)}}const d=new h;function c(e,t){if(e.weight1!==t.weight1)return e.weight1-t.weight1;if(e.command&&t.command){if(e.commandt.command)return 1}return e.weight2-t.weight2}r.B.add("platform.keybindingsRegistry",d)},82611:(e,t,i)=>{i.d(t,{e:()=>n});const n=(0,i(34304).yh)("labelService")},51927:(e,t,i)=>{i.d(t,{Lw:()=>be,XN:()=>Ce,ls:()=>pt,CQ:()=>ke,PF:()=>gt,PS:()=>Te,uJ:()=>Ae});var n=i(85714),o=i(75629),s=i(16113),r=i(24219),a=i(89599),l=(i(71619),i(53430));class h{get templateId(){return this.renderer.templateId}constructor(e,t){this.renderer=e,this.modelProvider=t}renderTemplate(e){return{data:this.renderer.renderTemplate(e),disposable:a.JT.None}}renderElement(e,t,i,n){var o;if(null===(o=i.disposable)||void 0===o||o.dispose(),!i.data)return;const r=this.modelProvider();if(r.isResolved(e))return this.renderer.renderElement(r.get(e),e,i.data,n);const a=new s.A,l=r.resolve(e,a.token);i.disposable={dispose:()=>a.cancel()},this.renderer.renderPlaceholder(e,i.data),l.then((t=>this.renderer.renderElement(t,e,i.data,n)))}disposeTemplate(e){e.disposable&&(e.disposable.dispose(),e.disposable=void 0),e.data&&(this.renderer.disposeTemplate(e.data),e.data=void 0)}}class d{constructor(e,t){this.modelProvider=e,this.accessibilityProvider=t}getWidgetAriaLabel(){return this.accessibilityProvider.getWidgetAriaLabel()}getAriaLabel(e){const t=this.modelProvider();return t.isResolved(e)?this.accessibilityProvider.getAriaLabel(t.get(e)):null}}class c{constructor(e,t,i,n){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const s=()=>this.model,r=n.map((e=>new h(e,s)));this.list=new l.aV(e,t,i,r,function(e,t){return{...t,accessibilityProvider:t.accessibilityProvider&&new d(e,t.accessibilityProvider)}}(s,o))}updateOptions(e){this.list.updateOptions(e)}getHTMLElement(){return this.list.getHTMLElement()}get onDidFocus(){return this.list.onDidFocus}get widget(){return this.list}get onDidDispose(){return this.list.onDidDispose}get onMouseDblClick(){return r.ju.map(this.list.onMouseDblClick,(e=>{let{element:t,index:i,browserEvent:n}=e;return{element:void 0===t?void 0:this._model.get(t),index:i,browserEvent:n}}))}get onPointer(){return r.ju.map(this.list.onPointer,(e=>{let{element:t,index:i,browserEvent:n}=e;return{element:void 0===t?void 0:this._model.get(t),index:i,browserEvent:n}}))}get onDidChangeSelection(){return r.ju.map(this.list.onDidChangeSelection,(e=>{let{elements:t,indexes:i,browserEvent:n}=e;return{elements:t.map((e=>this._model.get(e))),indexes:i,browserEvent:n}}))}get model(){return this._model}set model(e){this._model=e,this.list.splice(0,this.list.length,(0,o.w6)(e.length))}getFocus(){return this.list.getFocus()}getSelection(){return this.list.getSelection()}getSelectedElements(){return this.getSelection().map((e=>this.model.get(e)))}style(e){this.list.style(e)}dispose(){this.list.dispose()}}var u=i(14561),g=i(34392),m=i(45660);class f{constructor(e,t,i){this.columns=e,this.getColumnSize=i,this.templateId=f.TemplateId,this.renderedTemplates=new Set;const n=new Map(t.map((e=>[e.templateId,e])));this.renderers=[];for(const o of e){const e=n.get(o.templateId);if(!e)throw new Error("Table cell renderer for template id ".concat(o.templateId," not found."));this.renderers.push(e)}}renderTemplate(e){const t=(0,n.R3)(e,(0,n.$)(".monaco-table-tr")),i=[],o=[];for(let r=0;rthis.disposables.add(new p(e,t)))),c={size:d.reduce(((e,t)=>e+t.column.weight),0),views:d.map((e=>({size:e.column.weight,view:e})))};this.splitview=this.disposables.add(new m.z(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:()=>this.cachedHeight,descriptor:c})),this.splitview.el.style.height="".concat(i.headerRowHeight,"px"),this.splitview.el.style.lineHeight="".concat(i.headerRowHeight,"px");const u=new f(o,s,(e=>this.splitview.getViewSize(e)));var g;this.list=this.disposables.add(new l.aV(e,this.domNode,(g=i,{getHeight:e=>g.getHeight(e),getTemplateId:()=>f.TemplateId}),[u],h)),r.ju.any(...d.map((e=>e.onDidLayout)))((e=>{let[t,i]=e;return u.layoutColumn(t,i)}),null,this.disposables),this.splitview.onDidSashReset((e=>{const t=o.reduce(((e,t)=>e+t.weight),0),i=o[e].weight/t*this.cachedWidth;this.splitview.resizeView(e,i)}),null,this.disposables),this.styleElement=(0,n.dS)(this.domNode),this.style(l.uZ)}updateOptions(e){this.list.updateOptions(e)}splice(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];this.list.splice(e,t,i)}getHTMLElement(){return this.domNode}style(e){const 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)}getSelectedElements(){return this.list.getSelectedElements()}getSelection(){return this.list.getSelection()}getFocus(){return this.list.getFocus()}dispose(){this.disposables.dispose()}}_.InstanceCount=0;var v=i(83438),b=i(84931),C=i(18416),w=i(61746),y=i(36952);class S{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.user=e,this.rootRef=null,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new C.X(e,t,null,i),this.onDidSplice=this.model.onDidSplice,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,i.sorter&&(this.sorter={compare:(e,t)=>i.sorter.compare(e.element,t.element)}),this.identityProvider=i.identityProvider}setChildren(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:y.$.empty(),i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const n=this.getElementLocation(e);this._setChildren(n,this.preserveCollapseState(t),i)}_setChildren(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:y.$.empty(),i=arguments.length>2?arguments[2]:void 0;const n=new Set,o=new Set;this.model.splice([...e,0],Number.MAX_VALUE,t,{...i,onDidCreateNode:e=>{var t;if(null===e.element)return;const s=e;if(n.add(s.element),this.nodes.set(s.element,s),this.identityProvider){const e=this.identityProvider.getId(s.element).toString();o.add(e),this.nodesByIdentity.set(e,s)}null===(t=i.onDidCreateNode)||void 0===t||t.call(i,s)},onDidDeleteNode:e=>{var t;if(null===e.element)return;const s=e;if(n.has(s.element)||this.nodes.delete(s.element),this.identityProvider){const e=this.identityProvider.getId(s.element).toString();o.has(e)||this.nodesByIdentity.delete(e)}null===(t=i.onDidDeleteNode)||void 0===t||t.call(i,s)}})}preserveCollapseState(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y.$.empty();return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),y.$.map(e,(e=>{let t=this.nodes.get(e.element);if(!t&&this.identityProvider){const i=this.identityProvider.getId(e.element).toString();t=this.nodesByIdentity.get(i)}if(!t){let t;return t="undefined"===typeof e.collapsed?void 0:e.collapsed===w.kn.Collapsed||e.collapsed===w.kn.PreserveOrCollapsed||e.collapsed!==w.kn.Expanded&&e.collapsed!==w.kn.PreserveOrExpanded&&Boolean(e.collapsed),{...e,children:this.preserveCollapseState(e.children),collapsed:t}}const i="boolean"===typeof e.collapsible?e.collapsible:t.collapsible;let n;return n="undefined"===typeof e.collapsed||e.collapsed===w.kn.PreserveOrCollapsed||e.collapsed===w.kn.PreserveOrExpanded?t.collapsed:e.collapsed===w.kn.Collapsed||e.collapsed!==w.kn.Expanded&&Boolean(e.collapsed),{...e,collapsible:i,collapsed:n,children:this.preserveCollapseState(e.children)}}))}rerender(e){const t=this.getElementLocation(e);this.model.rerender(t)}getFirstElementChild(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const t=this.getElementLocation(e);return this.model.getFirstElementChild(t)}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getElementLocation(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getElementLocation(e);return this.model.getListRenderCount(t)}isCollapsible(e){const t=this.getElementLocation(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getElementLocation(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getElementLocation(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const n=this.getElementLocation(e);return this.model.setCollapsed(n,t,i)}expandTo(e){const t=this.getElementLocation(e);this.model.expandTo(t)}refilter(){this.model.refilter()}getNode(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(null===e)return this.model.getNode(this.model.rootRef);const t=this.nodes.get(e);if(!t)throw new w.ac(this.user,"Tree element not found: ".concat(e));return t}getNodeLocation(e){return e.element}getParentNodeLocation(e){if(null===e)throw new w.ac(this.user,"Invalid getParentNodeLocation call");const t=this.nodes.get(e);if(!t)throw new w.ac(this.user,"Tree element not found: ".concat(e));const i=this.model.getNodeLocation(t),n=this.model.getParentNodeLocation(i);return this.model.getNode(n).element}getElementLocation(e){if(null===e)return[];const t=this.nodes.get(e);if(!t)throw new w.ac(this.user,"Tree element not found: ".concat(e));return this.model.getNodeLocation(t)}}function L(e){return{element:{elements:[e.element],incompressible:e.incompressible||!1},children:y.$.map(y.$.from(e.children),L),collapsible:e.collapsible,collapsed:e.collapsed}}function k(e){const t=[e.element],i=e.incompressible||!1;let n,o;for(;[o,n]=y.$.consume(y.$.from(e.children),2),1===o.length&&!o[0].incompressible;)e=o[0],t.push(e.element);return{element:{elements:t,incompressible:i},children:y.$.map(y.$.concat(o,n),k),collapsible:e.collapsible,collapsed:e.collapsed}}function D(e){let t,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t=iD(e,0))),0===i&&e.element.incompressible?{element:e.element.elements[i],children:t,incompressible:!0,collapsible:e.collapsible,collapsed:e.collapsed}:{element:e.element.elements[i],children:t,collapsible:e.collapsible,collapsed:e.collapsed}}function N(e){return D(e,0)}function x(e,t,i){return e.element===t?{...e,children:i}:{...e,children:y.$.map(y.$.from(e.children),(e=>x(e,t,i)))}}class E{get onDidSplice(){return this.model.onDidSplice}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get onDidChangeRenderNodeCount(){return this.model.onDidChangeRenderNodeCount}constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.user=e,this.rootRef=null,this.nodes=new Map,this.model=new S(e,t,i),this.enabled="undefined"===typeof i.compressionEnabled||i.compressionEnabled,this.identityProvider=i.identityProvider}setChildren(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:y.$.empty(),i=arguments.length>2?arguments[2]:void 0;const n=i.diffIdentityProvider&&(s=i.diffIdentityProvider,{getId:e=>e.elements.map((e=>s.getId(e).toString())).join("\0")});var s;if(null===e){const e=y.$.map(t,this.enabled?k:L);return void this._setChildren(null,e,{diffIdentityProvider:n,diffDepth:1/0})}const r=this.nodes.get(e);if(!r)throw new w.ac(this.user,"Unknown compressed tree node");const a=this.model.getNode(r),l=this.model.getParentNodeLocation(r),h=this.model.getNode(l),d=x(N(a),e,t),c=(this.enabled?k:L)(d),u=i.diffIdentityProvider?(e,t)=>i.diffIdentityProvider.getId(e)===i.diffIdentityProvider.getId(t):void 0;if((0,o.fS)(c.element.elements,a.element.elements,u))return void this._setChildren(r,c.children||y.$.empty(),{diffIdentityProvider:n,diffDepth:1});const g=h.children.map((e=>e===a?c:e));this._setChildren(h.element,g,{diffIdentityProvider:n,diffDepth:a.depth-h.depth})}isCompressionEnabled(){return this.enabled}setCompressionEnabled(e){if(e===this.enabled)return;this.enabled=e;const t=this.model.getNode().children,i=y.$.map(t,N),n=y.$.map(i,e?k:L);this._setChildren(null,n,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}_setChildren(e,t,i){const n=new Set;this.model.setChildren(e,t,{...i,onDidCreateNode:e=>{for(const t of e.element.elements)n.add(t),this.nodes.set(t,e.element)},onDidDeleteNode:e=>{for(const t of e.element.elements)n.has(t)||this.nodes.delete(t)}})}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getCompressedNode(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getCompressedNode(e);return this.model.getListRenderCount(t)}getNode(e){if("undefined"===typeof e)return this.model.getNode();const t=this.getCompressedNode(e);return this.model.getNode(t)}getNodeLocation(e){const t=this.model.getNodeLocation(e);return null===t?null:t.elements[t.elements.length-1]}getParentNodeLocation(e){const t=this.getCompressedNode(e),i=this.model.getParentNodeLocation(t);return null===i?null:i.elements[i.elements.length-1]}getFirstElementChild(e){const t=this.getCompressedNode(e);return this.model.getFirstElementChild(t)}isCollapsible(e){const t=this.getCompressedNode(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getCompressedNode(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getCompressedNode(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const n=this.getCompressedNode(e);return this.model.setCollapsed(n,t,i)}expandTo(e){const t=this.getCompressedNode(e);this.model.expandTo(t)}rerender(e){const t=this.getCompressedNode(e);this.model.rerender(t)}refilter(){this.model.refilter()}getCompressedNode(e){if(null===e)return null;const t=this.nodes.get(e);if(!t)throw new w.ac(this.user,"Tree element not found: ".concat(e));return t}}const I=e=>e[e.length-1];class T{get element(){return null===this.node.element?null:this.unwrapper(this.node.element)}get children(){return this.node.children.map((e=>new T(this.unwrapper,e)))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(e,t){this.unwrapper=e,this.node=t}}class M{get onDidSplice(){return r.ju.map(this.model.onDidSplice,(e=>{let{insertedNodes:t,deletedNodes:i}=e;return{insertedNodes:t.map((e=>this.nodeMapper.map(e))),deletedNodes:i.map((e=>this.nodeMapper.map(e)))}}))}get onDidChangeCollapseState(){return r.ju.map(this.model.onDidChangeCollapseState,(e=>{let{node:t,deep:i}=e;return{node:this.nodeMapper.map(t),deep:i}}))}get onDidChangeRenderNodeCount(){return r.ju.map(this.model.onDidChangeRenderNodeCount,(e=>this.nodeMapper.map(e)))}constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.rootRef=null,this.elementMapper=i.elementMapper||I;const n=e=>this.elementMapper(e.elements);this.nodeMapper=new w.VA((e=>new T(n,e))),this.model=new E(e,function(e,t){return{splice(i,n,o){t.splice(i,n,o.map((t=>e.map(t))))},updateElementHeight(e,i){t.updateElementHeight(e,i)}}}(this.nodeMapper,t),function(e,t){return{...t,identityProvider:t.identityProvider&&{getId:i=>t.identityProvider.getId(e(i))},sorter:t.sorter&&{compare:(e,i)=>t.sorter.compare(e.elements[0],i.elements[0])},filter:t.filter&&{filter:(i,n)=>t.filter.filter(e(i),n)}}}(n,i))}setChildren(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:y.$.empty(),i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.model.setChildren(e,t,i)}isCompressionEnabled(){return this.model.isCompressionEnabled()}setCompressionEnabled(e){this.model.setCompressionEnabled(e)}has(e){return this.model.has(e)}getListIndex(e){return this.model.getListIndex(e)}getListRenderCount(e){return this.model.getListRenderCount(e)}getNode(e){return this.nodeMapper.map(this.model.getNode(e))}getNodeLocation(e){return e.element}getParentNodeLocation(e){return this.model.getParentNodeLocation(e)}getFirstElementChild(e){const t=this.model.getFirstElementChild(e);return null===t||"undefined"===typeof t?t:this.elementMapper(t.elements)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}setCollapsed(e,t,i){return this.model.setCollapsed(e,t,i)}expandTo(e){return this.model.expandTo(e)}rerender(e){return this.model.rerender(e)}refilter(){return this.model.refilter()}getCompressedTreeNode(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return this.model.getNode(e)}}var A=i(30333),R=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r};class O extends v.CH{get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}constructor(e,t,i,n){super(e,t,i,n,arguments.length>4&&void 0!==arguments[4]?arguments[4]:{}),this.user=e}setChildren(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:y.$.empty(),i=arguments.length>2?arguments[2]:void 0;this.model.setChildren(e,t,i)}rerender(e){void 0!==e?this.model.rerender(e):this.view.rerender()}hasElement(e){return this.model.has(e)}createModel(e,t,i){return new S(e,t,i)}}class P{get compressedTreeNodeProvider(){return this._compressedTreeNodeProvider()}constructor(e,t,i){this._compressedTreeNodeProvider=e,this.stickyScrollDelegate=t,this.renderer=i,this.templateId=i.templateId,i.onDidChangeTwistieState&&(this.onDidChangeTwistieState=i.onDidChangeTwistieState)}renderTemplate(e){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){let o=this.stickyScrollDelegate.getCompressedNode(e);o||(o=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element)),1===o.element.elements.length?(i.compressedTreeNode=void 0,this.renderer.renderElement(e,t,i.data,n)):(i.compressedTreeNode=o,this.renderer.renderCompressedElements(o,t,i.data,n))}disposeElement(e,t,i,n){var o,s,r,a;i.compressedTreeNode?null===(s=(o=this.renderer).disposeCompressedElements)||void 0===s||s.call(o,i.compressedTreeNode,t,i.data,n):null===(a=(r=this.renderer).disposeElement)||void 0===a||a.call(r,e,t,i.data,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.data)}renderTwistie(e,t){return!!this.renderer.renderTwistie&&this.renderer.renderTwistie(e,t)}}R([A.H],P.prototype,"compressedTreeNodeProvider",null);class F{constructor(e){this.modelProvider=e,this.compressedStickyNodes=new Map}getCompressedNode(e){return this.compressedStickyNodes.get(e)}constrainStickyScrollNodes(e,t,i){if(this.compressedStickyNodes.clear(),0===e.length)return[];for(let n=0;ni||n>=t-1&&t4&&void 0!==arguments[4]?arguments[4]:{};const s=()=>this,r=new F((()=>this.model));super(e,t,i,n.map((e=>new P(s,r,e))),{...B(s,o),stickyScrollDelegate:r})}setChildren(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:y.$.empty(),i=arguments.length>2?arguments[2]:void 0;this.model.setChildren(e,t,i)}createModel(e,t,i){return new M(e,t,i)}updateOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super.updateOptions(e),"undefined"!==typeof e.compressionEnabled&&this.model.setCompressionEnabled(e.compressionEnabled)}getCompressedTreeNode(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return this.model.getCompressedTreeNode(e)}}var V=i(60282),W=i(62974),H=i(62502),K=i(85108),U=i(63686);function j(e){return{...e,children:[],refreshPromise:void 0,stale:!0,slow:!1,forceExpanded:!1}}function q(e,t){return!!t.parent&&(t.parent===e||q(e,t.parent))}class G{get element(){return this.node.element.element}get children(){return this.node.children.map((e=>new G(e)))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(e){this.node=e}}class Q{constructor(e,t,i){this.renderer=e,this.nodeMapper=t,this.onDidChangeTwistieState=i,this.renderedNodes=new Map,this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,n)}renderTwistie(e,t){return e.slow?(t.classList.add(...H.k.asClassNameArray(W.l.treeItemLoading)),!0):(t.classList.remove(...H.k.asClassNameArray(W.l.treeItemLoading)),!1)}disposeElement(e,t,i,n){var o,s;null===(s=(o=this.renderer).disposeElement)||void 0===s||s.call(o,this.nodeMapper.map(e),t,i.templateData,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear()}}function Z(e){return{browserEvent:e.browserEvent,elements:e.elements.map((e=>e.element))}}function Y(e){return{browserEvent:e.browserEvent,element:e.element&&e.element.element,target:e.target}}class $ extends b.kX{constructor(e){super(e.elements.map((e=>e.element))),this.data=e}}function J(e){return e instanceof b.kX?new $(e):e}class X{constructor(e){this.dnd=e}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map((e=>e.element)),t)}onDragStart(e,t){var i,n;null===(n=(i=this.dnd).onDragStart)||void 0===n||n.call(i,J(e),t)}onDragOver(e,t,i,n,o){return this.dnd.onDragOver(J(e),t&&t.element,i,n,o)}drop(e,t,i,n,o){this.dnd.drop(J(e),t&&t.element,i,n,o)}onDragEnd(e){var t,i;null===(i=(t=this.dnd).onDragEnd)||void 0===i||i.call(t,e)}dispose(){this.dnd.dispose()}}function ee(e){return e&&{...e,collapseByDefault:!0,identityProvider:e.identityProvider&&{getId:t=>e.identityProvider.getId(t.element)},dnd:e.dnd&&new X(e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent:t=>e.multipleSelectionController.isSelectionSingleChangeEvent({...t,element:t.element}),isSelectionRangeChangeEvent:t=>e.multipleSelectionController.isSelectionRangeChangeEvent({...t,element:t.element})},accessibilityProvider:e.accessibilityProvider&&{...e.accessibilityProvider,getPosInSet:void 0,getSetSize:void 0,getRole:e.accessibilityProvider.getRole?t=>e.accessibilityProvider.getRole(t.element):()=>"treeitem",isChecked:e.accessibilityProvider.isChecked?t=>{var i;return!!(null===(i=e.accessibilityProvider)||void 0===i?void 0:i.isChecked(t.element))}:void 0,getAriaLabel:t=>e.accessibilityProvider.getAriaLabel(t.element),getWidgetAriaLabel:()=>e.accessibilityProvider.getWidgetAriaLabel(),getWidgetRole:e.accessibilityProvider.getWidgetRole?()=>e.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:e.accessibilityProvider.getAriaLevel&&(t=>e.accessibilityProvider.getAriaLevel(t.element)),getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&(t=>e.accessibilityProvider.getActiveDescendantId(t.element))},filter:e.filter&&{filter:(t,i)=>e.filter.filter(t.element,i)},keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{...e.keyboardNavigationLabelProvider,getKeyboardNavigationLabel:t=>e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)},sorter:void 0,expandOnlyOnTwistieClick:"undefined"===typeof e.expandOnlyOnTwistieClick?void 0:"function"!==typeof e.expandOnlyOnTwistieClick?e.expandOnlyOnTwistieClick:t=>e.expandOnlyOnTwistieClick(t.element),defaultFindVisibility:t=>t.hasChildren&&t.stale?1:"number"===typeof e.defaultFindVisibility?e.defaultFindVisibility:"undefined"===typeof e.defaultFindVisibility?2:e.defaultFindVisibility(t.element)}}function te(e,t){t(e),e.children.forEach((e=>te(e,t)))}class ie{get onDidScroll(){return this.tree.onDidScroll}get onDidChangeFocus(){return r.ju.map(this.tree.onDidChangeFocus,Z)}get onDidChangeSelection(){return r.ju.map(this.tree.onDidChangeSelection,Z)}get onMouseDblClick(){return r.ju.map(this.tree.onMouseDblClick,Y)}get onPointer(){return r.ju.map(this.tree.onPointer,Y)}get onDidFocus(){return this.tree.onDidFocus}get onDidChangeModel(){return this.tree.onDidChangeModel}get onDidChangeCollapseState(){return this.tree.onDidChangeCollapseState}get onDidChangeFindOpenState(){return this.tree.onDidChangeFindOpenState}get onDidChangeStickyScrollFocused(){return this.tree.onDidChangeStickyScrollFocused}get onDidDispose(){return this.tree.onDidDispose}constructor(e,t,i,n,o){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.user=e,this.dataSource=o,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new r.Q5,this._onDidChangeNodeSlowState=new r.Q5,this.nodeMapper=new w.VA((e=>new G(e))),this.disposables=new a.SL,this.identityProvider=s.identityProvider,this.autoExpandSingleChildren="undefined"!==typeof s.autoExpandSingleChildren&&s.autoExpandSingleChildren,this.sorter=s.sorter,this.getDefaultCollapseState=e=>s.collapseByDefault?s.collapseByDefault(e)?w.kn.PreserveOrCollapsed:w.kn.PreserveOrExpanded:void 0,this.tree=this.createTree(e,t,i,n,s),this.onDidChangeFindMode=this.tree.onDidChangeFindMode,this.onDidChangeFindMatchType=this.tree.onDidChangeFindMatchType,this.root=j({element:void 0,parent:null,hasChildren:!0,defaultCollapseState:void 0}),this.identityProvider&&(this.root={...this.root,id:null}),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}createTree(e,t,i,n,o){const s=new v.cz(i),r=n.map((e=>new Q(e,this.nodeMapper,this._onDidChangeNodeSlowState.event))),a=ee(o)||{};return new O(e,t,s,r,a)}updateOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.tree.updateOptions(e)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(e){this.tree.scrollTop=e}get scrollHeight(){return this.tree.scrollHeight}get renderHeight(){return this.tree.renderHeight}domFocus(){this.tree.domFocus()}layout(e,t){this.tree.layout(e,t)}style(e){this.tree.style(e)}getInput(){return this.root.element}async setInput(e,t){this.refreshPromises.forEach((e=>e.cancel())),this.refreshPromises.clear(),this.root.element=e;const i=t&&{viewState:t,focus:[],selection:[]};await this._updateChildren(e,!0,!1,i),i&&(this.tree.setFocus(i.focus),this.tree.setSelection(i.selection)),t&&"number"===typeof t.scrollTop&&(this.scrollTop=t.scrollTop)}async _updateChildren(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.root.element,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0;if("undefined"===typeof this.root.element)throw new w.ac(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await r.ju.toPromise(this._onDidRender.event));const s=this.getDataNode(e);if(await this.refreshAndRenderNode(s,t,n,o),i)try{this.tree.rerender(s)}catch(a){}}rerender(e){if(void 0===e||e===this.root.element)return void this.tree.rerender();const t=this.getDataNode(e);this.tree.rerender(t)}getNode(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.root.element;const t=this.getDataNode(e),i=this.tree.getNode(t===this.root?null:t);return this.nodeMapper.map(i)}collapse(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const i=this.getDataNode(e);return this.tree.collapse(i===this.root?null:i,t)}async expand(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("undefined"===typeof this.root.element)throw new w.ac(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await r.ju.toPromise(this._onDidRender.event));const i=this.getDataNode(e);if(this.tree.hasElement(i)&&!this.tree.isCollapsible(i))return!1;if(i.refreshPromise&&(await this.root.refreshPromise,await r.ju.toPromise(this._onDidRender.event)),i!==this.root&&!i.refreshPromise&&!this.tree.isCollapsed(i))return!1;const n=this.tree.expand(i===this.root?null:i,t);return i.refreshPromise&&(await this.root.refreshPromise,await r.ju.toPromise(this._onDidRender.event)),n}setSelection(e,t){const i=e.map((e=>this.getDataNode(e)));this.tree.setSelection(i,t)}getSelection(){return this.tree.getSelection().map((e=>e.element))}setFocus(e,t){const i=e.map((e=>this.getDataNode(e)));this.tree.setFocus(i,t)}getFocus(){return this.tree.getFocus().map((e=>e.element))}reveal(e,t){this.tree.reveal(this.getDataNode(e),t)}getParentElement(e){const t=this.tree.getParentElement(this.getDataNode(e));return t&&t.element}getFirstElementChild(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.root.element;const t=this.getDataNode(e),i=this.tree.getFirstElementChild(t===this.root?null:t);return i&&i.element}getDataNode(e){const t=this.nodes.get(e===this.root.element?null:e);if(!t)throw new w.ac(this.user,"Data tree node not found: ".concat(e));return t}async refreshAndRenderNode(e,t,i,n){await this.refreshNode(e,t,i),this.disposables.isDisposed||this.render(e,i,n)}async refreshNode(e,t,i){let n;if(this.subTreeRefreshPromises.forEach(((o,s)=>{!n&&function(e,t){return e===t||q(e,t)||q(t,e)}(s,e)&&(n=o.then((()=>this.refreshNode(e,t,i))))})),n)return n;if(e!==this.root){if(this.tree.getNode(e).collapsed)return e.hasChildren=!!this.dataSource.hasChildren(e.element),e.stale=!0,void this.setChildren(e,[],t,i)}return this.doRefreshSubTree(e,t,i)}async doRefreshSubTree(e,t,i){let n;e.refreshPromise=new Promise((e=>n=e)),this.subTreeRefreshPromises.set(e,e.refreshPromise),e.refreshPromise.finally((()=>{e.refreshPromise=void 0,this.subTreeRefreshPromises.delete(e)}));try{const n=await this.doRefreshNode(e,t,i);e.stale=!1,await V.jT.settled(n.map((e=>this.doRefreshSubTree(e,t,i))))}finally{n()}}async doRefreshNode(e,t,i){let n;if(e.hasChildren=!!this.dataSource.hasChildren(e.element),e.hasChildren){const t=this.doGetChildren(e);if((0,U.TW)(t))n=Promise.resolve(t);else{const i=(0,V.Vs)(800);i.then((()=>{e.slow=!0,this._onDidChangeNodeSlowState.fire(e)}),(e=>null)),n=t.finally((()=>i.cancel()))}}else n=Promise.resolve(y.$.empty());try{const o=await n;return this.setChildren(e,o,t,i)}catch(o){if(e!==this.root&&this.tree.hasElement(e)&&this.tree.collapse(e),(0,K.n2)(o))return[];throw o}finally{e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e))}}doGetChildren(e){let t=this.refreshPromises.get(e);if(t)return t;const i=this.dataSource.getChildren(e.element);return(0,U.TW)(i)?this.processChildren(i):(t=(0,V.PG)((async()=>this.processChildren(await i))),this.refreshPromises.set(e,t),t.finally((()=>{this.refreshPromises.delete(e)})))}_onDidChangeCollapseState(e){let{node:t,deep:i}=e;null!==t.element&&!t.collapsed&&t.element.stale&&(i?this.collapse(t.element.element):this.refreshAndRenderNode(t.element,!1).catch(K.dL))}setChildren(e,t,i,n){const o=[...t];if(0===e.children.length&&0===o.length)return[];const s=new Map,r=new Map;for(const h of e.children)s.set(h.element,h),this.identityProvider&&r.set(h.id,{node:h,collapsed:this.tree.hasElement(h)&&this.tree.isCollapsed(h)});const a=[],l=o.map((t=>{const o=!!this.dataSource.hasChildren(t);if(!this.identityProvider){const i=j({element:t,parent:e,hasChildren:o,defaultCollapseState:this.getDefaultCollapseState(t)});return o&&i.defaultCollapseState===w.kn.PreserveOrExpanded&&a.push(i),i}const l=this.identityProvider.getId(t).toString(),h=r.get(l);if(h){const e=h.node;return s.delete(e.element),this.nodes.delete(e.element),this.nodes.set(t,e),e.element=t,e.hasChildren=o,i?h.collapsed?(e.children.forEach((e=>te(e,(e=>this.nodes.delete(e.element))))),e.children.splice(0,e.children.length),e.stale=!0):a.push(e):o&&!h.collapsed&&a.push(e),e}const d=j({element:t,parent:e,id:l,hasChildren:o,defaultCollapseState:this.getDefaultCollapseState(t)});return n&&n.viewState.focus&&n.viewState.focus.indexOf(l)>-1&&n.focus.push(d),n&&n.viewState.selection&&n.viewState.selection.indexOf(l)>-1&&n.selection.push(d),(n&&n.viewState.expanded&&n.viewState.expanded.indexOf(l)>-1||o&&d.defaultCollapseState===w.kn.PreserveOrExpanded)&&a.push(d),d}));for(const h of s.values())te(h,(e=>this.nodes.delete(e.element)));for(const h of l)this.nodes.set(h.element,h);return e.children.splice(0,e.children.length,...l),e!==this.root&&this.autoExpandSingleChildren&&1===l.length&&0===a.length&&(l[0].forceExpanded=!0,a.push(l[0])),a}render(e,t,i){const n=e.children.map((e=>this.asTreeElement(e,t))),o=i&&{...i,diffIdentityProvider:i.diffIdentityProvider&&{getId:e=>i.diffIdentityProvider.getId(e.element)}};this.tree.setChildren(e===this.root?null:e,n,o),e!==this.root&&this.tree.setCollapsible(e,e.hasChildren),this._onDidRender.fire()}asTreeElement(e,t){if(e.stale)return{element:e,collapsible:e.hasChildren,collapsed:!0};let i;return t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1?i=!1:e.forceExpanded?(i=!1,e.forceExpanded=!1):i=e.defaultCollapseState,{element:e,children:e.hasChildren?y.$.map(e.children,(e=>this.asTreeElement(e,t))):[],collapsible:e.hasChildren,collapsed:i}}processChildren(e){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),e}dispose(){this.disposables.dispose(),this.tree.dispose()}}class ne{get element(){return{elements:this.node.element.elements.map((e=>e.element)),incompressible:this.node.element.incompressible}}get children(){return this.node.children.map((e=>new ne(e)))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(e){this.node=e}}class oe{constructor(e,t,i,n){this.renderer=e,this.nodeMapper=t,this.compressibleNodeMapperProvider=i,this.onDidChangeTwistieState=n,this.renderedNodes=new Map,this.disposables=[],this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,n)}renderCompressedElements(e,t,i,n){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e),t,i.templateData,n)}renderTwistie(e,t){return e.slow?(t.classList.add(...H.k.asClassNameArray(W.l.treeItemLoading)),!0):(t.classList.remove(...H.k.asClassNameArray(W.l.treeItemLoading)),!1)}disposeElement(e,t,i,n){var o,s;null===(s=(o=this.renderer).disposeElement)||void 0===s||s.call(o,this.nodeMapper.map(e),t,i.templateData,n)}disposeCompressedElements(e,t,i,n){var o,s;null===(s=(o=this.renderer).disposeCompressedElements)||void 0===s||s.call(o,this.compressibleNodeMapperProvider().map(e),t,i.templateData,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=(0,a.B9)(this.disposables)}}class se extends ie{constructor(e,t,i,n,o,s){let r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{};super(e,t,i,o,s,r),this.compressionDelegate=n,this.compressibleNodeMapper=new w.VA((e=>new ne(e))),this.filter=r.filter}createTree(e,t,i,n,o){const s=new v.cz(i),r=n.map((e=>new oe(e,this.nodeMapper,(()=>this.compressibleNodeMapper),this._onDidChangeNodeSlowState.event))),a=function(e){const t=e&&ee(e);return t&&{...t,keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&{...t.keyboardNavigationLabelProvider,getCompressedNodeKeyboardNavigationLabel:t=>e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map((e=>e.element)))}}}(o)||{};return new z(e,t,s,r,a)}asTreeElement(e,t){return{incompressible:this.compressionDelegate.isIncompressible(e.element),...super.asTreeElement(e,t)}}updateOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.tree.updateOptions(e)}render(e,t,i){if(!this.identityProvider)return super.render(e,t);const n=e=>this.identityProvider.getId(e).toString(),o=e=>{const t=new Set;for(const i of e){const e=this.tree.getCompressedTreeNode(i===this.root?null:i);if(e.element)for(const i of e.element.elements)t.add(n(i.element))}return t},s=o(this.tree.getSelection()),r=o(this.tree.getFocus());super.render(e,t,i);const a=this.getSelection();let l=!1;const h=this.getFocus();let d=!1;const c=e=>{const t=e.element;if(t)for(let i=0;i{const t=this.filter.filter(e,1),i="boolean"===typeof(n=t)?n?1:0:(0,C.gB)(n)?(0,C.aG)(n.visibility):(0,C.aG)(n);var n;if(2===i)throw new Error("Recursive tree visibility not supported in async data compressed trees");return 1===i}))),super.processChildren(e)}}class re extends v.CH{constructor(e,t,i,n,o){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};super(e,t,i,n,s),this.user=e,this.dataSource=o,this.identityProvider=s.identityProvider}createModel(e,t,i){return new S(e,t,i)}}var ae=i(71721),le=i(25195),he=i(9694),de=i(24920),ce=i(57341),ue=i(58868),ge=i(34304),me=i(46765),fe=i(70311),pe=i(29581),_e=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ve=function(e,t){return function(i,n){t(i,n,e)}};const be=(0,ge.yh)("listService");class Ce{get lastFocusedList(){return this._lastFocusedWidget}constructor(){this.disposables=new a.SL,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}setLastFocusedList(e){var t,i;e!==this._lastFocusedWidget&&(null===(t=this._lastFocusedWidget)||void 0===t||t.getHTMLElement().classList.remove("last-focused"),this._lastFocusedWidget=e,null===(i=this._lastFocusedWidget)||void 0===i||i.getHTMLElement().classList.add("last-focused"))}register(e,t){if(!this._hasCreatedStyleController){this._hasCreatedStyleController=!0;new l.wD((0,n.dS)(),"").style(pe.O2)}if(this.lists.some((t=>t.widget===e)))throw new Error("Cannot register the same widget multiple times");const i={widget:e,extraContextKeys:t};return this.lists.push(i),(0,n.H9)(e.getHTMLElement())&&this.setLastFocusedList(e),(0,a.F8)(e.onDidFocus((()=>this.setLastFocusedList(e))),(0,a.OF)((()=>this.lists.splice(this.lists.indexOf(i),1))),e.onDidDispose((()=>{this.lists=this.lists.filter((e=>e!==i)),this._lastFocusedWidget===e&&this.setLastFocusedList(void 0)})))}dispose(){this.disposables.dispose()}}const we=new de.uy("listScrollAtBoundary","none"),ye=(de.Ao.or(we.isEqualTo("top"),we.isEqualTo("both")),de.Ao.or(we.isEqualTo("bottom"),we.isEqualTo("both")),new de.uy("listFocus",!0)),Se=new de.uy("treestickyScrollFocused",!1),Le=new de.uy("listSupportsMultiselect",!0),ke=de.Ao.and(ye,de.Ao.not(ce.d0),Se.negate()),De=new de.uy("listHasSelectionOrFocus",!1),Ne=new de.uy("listDoubleSelection",!1),xe=new de.uy("listMultiSelection",!1),Ee=new de.uy("listSelectionNavigation",!1),Ie=new de.uy("listSupportsFind",!0),Te=new de.uy("treeElementCanCollapse",!1),Me=new de.uy("treeElementHasParent",!1),Ae=new de.uy("treeElementCanExpand",!1),Re=new de.uy("treeElementHasChild",!1),Oe=new de.uy("treeFindOpen",!1),Pe="listTypeNavigationMode",Fe="listAutomaticKeyboardNavigation";function Be(e,t){const i=e.createScoped(t.getHTMLElement());return ye.bindTo(i),i}function ze(e,t){const i=we.bindTo(e),n=()=>{const e=0===t.scrollTop,n=t.scrollHeight-t.renderHeight-t.scrollTop<1;e&&n?i.set("both"):e?i.set("top"):n?i.set("bottom"):i.set("none")};return n(),t.onDidScroll(n)}const Ve="workbench.list.multiSelectModifier",We="workbench.list.openMode",He="workbench.list.horizontalScrolling",Ke="workbench.list.defaultFindMode",Ue="workbench.list.typeNavigationMode",je="workbench.list.keyboardNavigation",qe="workbench.list.scrollByPage",Ge="workbench.list.defaultFindMatchType",Qe="workbench.tree.indent",Ze="workbench.tree.renderIndentGuides",Ye="workbench.list.smoothScrolling",$e="workbench.list.mouseWheelScrollSensitivity",Je="workbench.list.fastScrollSensitivity",Xe="workbench.tree.expandMode",et="workbench.tree.enableStickyScroll",tt="workbench.tree.stickyScrollMaxItemCount";function it(e){return"alt"===e.getValue(Ve)}class nt extends a.JT{constructor(e){super(),this.configurationService=e,this.useAltAsMultipleSelectionModifier=it(e),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration((e=>{e.affectsConfiguration(Ve)&&(this.useAltAsMultipleSelectionModifier=it(this.configurationService))})))}isSelectionSingleChangeEvent(e){return this.useAltAsMultipleSelectionModifier?e.browserEvent.altKey:(0,l.Zo)(e)}isSelectionRangeChangeEvent(e){return(0,l.wn)(e)}}function ot(e,t){var i;const n=e.get(le.Ui),o=e.get(me.d),s=new a.SL;return[{...t,keyboardNavigationDelegate:{mightProducePrintableCharacter:e=>o.mightProducePrintableCharacter(e)},smoothScrolling:Boolean(n.getValue(Ye)),mouseWheelScrollSensitivity:n.getValue($e),fastScrollSensitivity:n.getValue(Je),multipleSelectionController:null!==(i=t.multipleSelectionController)&&void 0!==i?i:s.add(new nt(n)),keyboardNavigationEventFilter:ut(o),scrollByPage:Boolean(n.getValue(qe))},s]}let st=class extends l.aV{constructor(e,t,i,n,o,s,r,a,l){const h="undefined"!==typeof o.horizontalScrolling?o.horizontalScrolling:Boolean(a.getValue(He)),[d,c]=l.invokeFunction(ot,o);super(e,t,i,n,{keyboardSupport:!1,...d,horizontalScrolling:h}),this.disposables.add(c),this.contextKeyService=Be(s,this),this.disposables.add(ze(this.contextKeyService,this)),this.listSupportsMultiSelect=Le.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==o.multipleSelectionSupport);Ee.bindTo(this.contextKeyService).set(Boolean(o.selectionNavigation)),this.listHasSelectionOrFocus=De.bindTo(this.contextKeyService),this.listDoubleSelection=Ne.bindTo(this.contextKeyService),this.listMultiSelection=xe.bindTo(this.contextKeyService),this.horizontalScrolling=o.horizontalScrolling,this._useAltAsMultipleSelectionModifier=it(a),this.disposables.add(this.contextKeyService),this.disposables.add(r.register(this)),this.updateStyles(o.overrideStyles),this.disposables.add(this.onDidChangeSelection((()=>{const e=this.getSelection(),t=this.getFocus();this.contextKeyService.bufferChangeEvents((()=>{this.listHasSelectionOrFocus.set(e.length>0||t.length>0),this.listMultiSelection.set(e.length>1),this.listDoubleSelection.set(2===e.length)}))}))),this.disposables.add(this.onDidChangeFocus((()=>{const e=this.getSelection(),t=this.getFocus();this.listHasSelectionOrFocus.set(e.length>0||t.length>0)}))),this.disposables.add(a.onDidChangeConfiguration((e=>{e.affectsConfiguration(Ve)&&(this._useAltAsMultipleSelectionModifier=it(a));let t={};if(e.affectsConfiguration(He)&&void 0===this.horizontalScrolling){const e=Boolean(a.getValue(He));t={...t,horizontalScrolling:e}}if(e.affectsConfiguration(qe)){const e=Boolean(a.getValue(qe));t={...t,scrollByPage:e}}if(e.affectsConfiguration(Ye)){const e=Boolean(a.getValue(Ye));t={...t,smoothScrolling:e}}if(e.affectsConfiguration($e)){const e=a.getValue($e);t={...t,mouseWheelScrollSensitivity:e}}if(e.affectsConfiguration(Je)){const e=a.getValue(Je);t={...t,fastScrollSensitivity:e}}Object.keys(t).length>0&&this.updateOptions(t)}))),this.navigator=new ht(this,{configurationService:a,...o}),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),void 0!==e.overrideStyles&&this.updateStyles(e.overrideStyles),void 0!==e.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?(0,pe.TU)(e):pe.O2)}};st=_e([ve(5,de.i6),ve(6,be),ve(7,le.Ui),ve(8,ge.TG)],st);let rt=class extends c{constructor(e,t,i,n,o,s,r,l,h){const d="undefined"!==typeof o.horizontalScrolling?o.horizontalScrolling:Boolean(l.getValue(He)),[c,u]=h.invokeFunction(ot,o);super(e,t,i,n,{keyboardSupport:!1,...c,horizontalScrolling:d}),this.disposables=new a.SL,this.disposables.add(u),this.contextKeyService=Be(s,this),this.disposables.add(ze(this.contextKeyService,this.widget)),this.horizontalScrolling=o.horizontalScrolling,this.listSupportsMultiSelect=Le.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==o.multipleSelectionSupport);Ee.bindTo(this.contextKeyService).set(Boolean(o.selectionNavigation)),this._useAltAsMultipleSelectionModifier=it(l),this.disposables.add(this.contextKeyService),this.disposables.add(r.register(this)),this.updateStyles(o.overrideStyles),this.disposables.add(l.onDidChangeConfiguration((e=>{e.affectsConfiguration(Ve)&&(this._useAltAsMultipleSelectionModifier=it(l));let t={};if(e.affectsConfiguration(He)&&void 0===this.horizontalScrolling){const e=Boolean(l.getValue(He));t={...t,horizontalScrolling:e}}if(e.affectsConfiguration(qe)){const e=Boolean(l.getValue(qe));t={...t,scrollByPage:e}}if(e.affectsConfiguration(Ye)){const e=Boolean(l.getValue(Ye));t={...t,smoothScrolling:e}}if(e.affectsConfiguration($e)){const e=l.getValue($e);t={...t,mouseWheelScrollSensitivity:e}}if(e.affectsConfiguration(Je)){const e=l.getValue(Je);t={...t,fastScrollSensitivity:e}}Object.keys(t).length>0&&this.updateOptions(t)}))),this.navigator=new ht(this,{configurationService:l,...o}),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),void 0!==e.overrideStyles&&this.updateStyles(e.overrideStyles),void 0!==e.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?(0,pe.TU)(e):pe.O2)}dispose(){this.disposables.dispose(),super.dispose()}};rt=_e([ve(5,de.i6),ve(6,be),ve(7,le.Ui),ve(8,ge.TG)],rt);let at=class extends _{constructor(e,t,i,n,o,s,r,a,l,h){const d="undefined"!==typeof s.horizontalScrolling?s.horizontalScrolling:Boolean(l.getValue(He)),[c,u]=h.invokeFunction(ot,s);super(e,t,i,n,o,{keyboardSupport:!1,...c,horizontalScrolling:d}),this.disposables.add(u),this.contextKeyService=Be(r,this),this.disposables.add(ze(this.contextKeyService,this)),this.listSupportsMultiSelect=Le.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==s.multipleSelectionSupport);Ee.bindTo(this.contextKeyService).set(Boolean(s.selectionNavigation)),this.listHasSelectionOrFocus=De.bindTo(this.contextKeyService),this.listDoubleSelection=Ne.bindTo(this.contextKeyService),this.listMultiSelection=xe.bindTo(this.contextKeyService),this.horizontalScrolling=s.horizontalScrolling,this._useAltAsMultipleSelectionModifier=it(l),this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),this.updateStyles(s.overrideStyles),this.disposables.add(this.onDidChangeSelection((()=>{const e=this.getSelection(),t=this.getFocus();this.contextKeyService.bufferChangeEvents((()=>{this.listHasSelectionOrFocus.set(e.length>0||t.length>0),this.listMultiSelection.set(e.length>1),this.listDoubleSelection.set(2===e.length)}))}))),this.disposables.add(this.onDidChangeFocus((()=>{const e=this.getSelection(),t=this.getFocus();this.listHasSelectionOrFocus.set(e.length>0||t.length>0)}))),this.disposables.add(l.onDidChangeConfiguration((e=>{e.affectsConfiguration(Ve)&&(this._useAltAsMultipleSelectionModifier=it(l));let t={};if(e.affectsConfiguration(He)&&void 0===this.horizontalScrolling){const e=Boolean(l.getValue(He));t={...t,horizontalScrolling:e}}if(e.affectsConfiguration(qe)){const e=Boolean(l.getValue(qe));t={...t,scrollByPage:e}}if(e.affectsConfiguration(Ye)){const e=Boolean(l.getValue(Ye));t={...t,smoothScrolling:e}}if(e.affectsConfiguration($e)){const e=l.getValue($e);t={...t,mouseWheelScrollSensitivity:e}}if(e.affectsConfiguration(Je)){const e=l.getValue(Je);t={...t,fastScrollSensitivity:e}}Object.keys(t).length>0&&this.updateOptions(t)}))),this.navigator=new dt(this,{configurationService:l,...s}),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),void 0!==e.overrideStyles&&this.updateStyles(e.overrideStyles),void 0!==e.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?(0,pe.TU)(e):pe.O2)}dispose(){this.disposables.dispose(),super.dispose()}};at=_e([ve(6,de.i6),ve(7,be),ve(8,le.Ui),ve(9,ge.TG)],at);class lt extends a.JT{constructor(e,t){var i;super(),this.widget=e,this._onDidOpen=this._register(new r.Q5),this.onDidOpen=this._onDidOpen.event,this._register(r.ju.filter(this.widget.onDidChangeSelection,(e=>(0,n.vd)(e.browserEvent)))((e=>this.onSelectionFromKeyboard(e)))),this._register(this.widget.onPointer((e=>this.onPointer(e.element,e.browserEvent)))),this._register(this.widget.onMouseDblClick((e=>this.onMouseDblClick(e.element,e.browserEvent)))),"boolean"!==typeof(null===t||void 0===t?void 0:t.openOnSingleClick)&&(null===t||void 0===t?void 0:t.configurationService)?(this.openOnSingleClick="doubleClick"!==(null===t||void 0===t?void 0:t.configurationService.getValue(We)),this._register(null===t||void 0===t?void 0:t.configurationService.onDidChangeConfiguration((e=>{e.affectsConfiguration(We)&&(this.openOnSingleClick="doubleClick"!==(null===t||void 0===t?void 0:t.configurationService.getValue(We)))})))):this.openOnSingleClick=null===(i=null===t||void 0===t?void 0:t.openOnSingleClick)||void 0===i||i}onSelectionFromKeyboard(e){if(1!==e.elements.length)return;const t=e.browserEvent,i="boolean"!==typeof t.preserveFocus||t.preserveFocus,n="boolean"===typeof t.pinned?t.pinned:!i;this._open(this.getSelectedElement(),i,n,!1,e.browserEvent)}onPointer(e,t){if(!this.openOnSingleClick)return;if(2===t.detail)return;const i=1===t.button,n=t.ctrlKey||t.metaKey||t.altKey;this._open(e,!0,i,n,t)}onMouseDblClick(e,t){if(!t)return;const i=t.target;if(i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&t.offsetX<16)return;const n=t.ctrlKey||t.metaKey||t.altKey;this._open(e,!1,!0,n,t)}_open(e,t,i,n,o){e&&this._onDidOpen.fire({editorOptions:{preserveFocus:t,pinned:i,revealIfVisible:!0},sideBySide:n,element:e,browserEvent:o})}}class ht extends lt{constructor(e,t){super(e,t),this.widget=e}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class dt extends lt{constructor(e,t){super(e,t)}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class ct extends lt{constructor(e,t){super(e,t)}getSelectedElement(){var e;return null!==(e=this.widget.getSelection()[0])&&void 0!==e?e:void 0}}function ut(e){let t=!1;return i=>{if(i.toKeyCodeChord().isModifierKey())return!1;if(t)return t=!1,!1;const n=e.softDispatch(i,i.target);return 1===n.kind?(t=!0,!1):(t=!1,0===n.kind)}}let gt=class extends O{constructor(e,t,i,n,o,s,r,a,l){const{options:h,getTypeNavigationMode:d,disposable:c}=s.invokeFunction(Ct,o);super(e,t,i,n,h),this.disposables.add(c),this.internals=new wt(this,o,d,o.overrideStyles,r,a,l),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};gt=_e([ve(5,ge.TG),ve(6,de.i6),ve(7,be),ve(8,le.Ui)],gt);let mt=class extends z{constructor(e,t,i,n,o,s,r,a,l){const{options:h,getTypeNavigationMode:d,disposable:c}=s.invokeFunction(Ct,o);super(e,t,i,n,h),this.disposables.add(c),this.internals=new wt(this,o,d,o.overrideStyles,r,a,l),this.disposables.add(this.internals)}updateOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};mt=_e([ve(5,ge.TG),ve(6,de.i6),ve(7,be),ve(8,le.Ui)],mt);let ft=class extends re{constructor(e,t,i,n,o,s,r,a,l,h){const{options:d,getTypeNavigationMode:c,disposable:u}=r.invokeFunction(Ct,s);super(e,t,i,n,o,d),this.disposables.add(u),this.internals=new wt(this,s,c,s.overrideStyles,a,l,h),this.disposables.add(this.internals)}updateOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super.updateOptions(e),void 0!==e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};ft=_e([ve(6,ge.TG),ve(7,de.i6),ve(8,be),ve(9,le.Ui)],ft);let pt=class extends ie{get onDidOpen(){return this.internals.onDidOpen}constructor(e,t,i,n,o,s,r,a,l,h){const{options:d,getTypeNavigationMode:c,disposable:u}=r.invokeFunction(Ct,s);super(e,t,i,n,o,d),this.disposables.add(u),this.internals=new wt(this,s,c,s.overrideStyles,a,l,h),this.disposables.add(this.internals)}updateOptions(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};pt=_e([ve(6,ge.TG),ve(7,de.i6),ve(8,be),ve(9,le.Ui)],pt);let _t=class extends se{constructor(e,t,i,n,o,s,r,a,l,h,d){const{options:c,getTypeNavigationMode:u,disposable:g}=a.invokeFunction(Ct,r);super(e,t,i,n,o,s,c),this.disposables.add(g),this.internals=new wt(this,r,u,r.overrideStyles,l,h,d),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};function vt(e){const t=e.getValue(Ke);if("highlight"===t)return v.sZ.Highlight;if("filter"===t)return v.sZ.Filter;const i=e.getValue(je);return"simple"===i||"highlight"===i?v.sZ.Highlight:"filter"===i?v.sZ.Filter:void 0}function bt(e){const t=e.getValue(Ge);return"fuzzy"===t?v.Zd.Fuzzy:"contiguous"===t?v.Zd.Contiguous:void 0}function Ct(e,t){var i;const n=e.get(le.Ui),o=e.get(ue.u),s=e.get(de.i6),r=e.get(ge.TG),a=void 0!==t.horizontalScrolling?t.horizontalScrolling:Boolean(n.getValue(He)),[h,d]=r.invokeFunction(ot,t),c=t.paddingBottom,u=void 0!==t.renderIndentGuides?t.renderIndentGuides:n.getValue(Ze);return{getTypeNavigationMode:()=>{const e=s.getContextKeyValue(Pe);if("automatic"===e)return l.AA.Automatic;if("trigger"===e)return l.AA.Trigger;if(!1===s.getContextKeyValue(Fe))return l.AA.Trigger;const t=n.getValue(Ue);return"automatic"===t?l.AA.Automatic:"trigger"===t?l.AA.Trigger:void 0},disposable:d,options:{keyboardSupport:!1,...h,indent:"number"===typeof n.getValue(Qe)?n.getValue(Qe):void 0,renderIndentGuides:u,smoothScrolling:Boolean(n.getValue(Ye)),defaultFindMode:vt(n),defaultFindMatchType:bt(n),horizontalScrolling:a,scrollByPage:Boolean(n.getValue(qe)),paddingBottom:c,hideTwistiesOfChildlessElements:t.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:null!==(i=t.expandOnlyOnTwistieClick)&&void 0!==i?i:"doubleClick"===n.getValue(Xe),contextViewProvider:o,findWidgetStyles:pe.uX,enableStickyScroll:Boolean(n.getValue(et)),stickyScrollMaxItemCount:Number(n.getValue(tt))}}}_t=_e([ve(7,ge.TG),ve(8,de.i6),ve(9,be),ve(10,le.Ui)],_t);let wt=class{get onDidOpen(){return this.navigator.onDidOpen}constructor(e,t,i,n,o,s,r){var a;this.tree=e,this.disposables=[],this.contextKeyService=Be(o,e),this.disposables.push(ze(this.contextKeyService,e)),this.listSupportsMultiSelect=Le.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==t.multipleSelectionSupport);Ee.bindTo(this.contextKeyService).set(Boolean(t.selectionNavigation)),this.listSupportFindWidget=Ie.bindTo(this.contextKeyService),this.listSupportFindWidget.set(null===(a=t.findWidgetEnabled)||void 0===a||a),this.hasSelectionOrFocus=De.bindTo(this.contextKeyService),this.hasDoubleSelection=Ne.bindTo(this.contextKeyService),this.hasMultiSelection=xe.bindTo(this.contextKeyService),this.treeElementCanCollapse=Te.bindTo(this.contextKeyService),this.treeElementHasParent=Me.bindTo(this.contextKeyService),this.treeElementCanExpand=Ae.bindTo(this.contextKeyService),this.treeElementHasChild=Re.bindTo(this.contextKeyService),this.treeFindOpen=Oe.bindTo(this.contextKeyService),this.treeStickyScrollFocused=Se.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=it(r),this.updateStyleOverrides(n);const l=()=>{const t=e.getFocus()[0];if(!t)return;const i=e.getNode(t);this.treeElementCanCollapse.set(i.collapsible&&!i.collapsed),this.treeElementHasParent.set(!!e.getParentElement(t)),this.treeElementCanExpand.set(i.collapsible&&i.collapsed),this.treeElementHasChild.set(!!e.getFirstElementChild(t))},h=new Set;h.add(Pe),h.add(Fe),this.disposables.push(this.contextKeyService,s.register(e),e.onDidChangeSelection((()=>{const t=e.getSelection(),i=e.getFocus();this.contextKeyService.bufferChangeEvents((()=>{this.hasSelectionOrFocus.set(t.length>0||i.length>0),this.hasMultiSelection.set(t.length>1),this.hasDoubleSelection.set(2===t.length)}))})),e.onDidChangeFocus((()=>{const t=e.getSelection(),i=e.getFocus();this.hasSelectionOrFocus.set(t.length>0||i.length>0),l()})),e.onDidChangeCollapseState(l),e.onDidChangeModel(l),e.onDidChangeFindOpenState((e=>this.treeFindOpen.set(e))),e.onDidChangeStickyScrollFocused((e=>this.treeStickyScrollFocused.set(e))),r.onDidChangeConfiguration((n=>{let o={};if(n.affectsConfiguration(Ve)&&(this._useAltAsMultipleSelectionModifier=it(r)),n.affectsConfiguration(Qe)){const e=r.getValue(Qe);o={...o,indent:e}}if(n.affectsConfiguration(Ze)&&void 0===t.renderIndentGuides){const e=r.getValue(Ze);o={...o,renderIndentGuides:e}}if(n.affectsConfiguration(Ye)){const e=Boolean(r.getValue(Ye));o={...o,smoothScrolling:e}}if(n.affectsConfiguration(Ke)||n.affectsConfiguration(je)){const e=vt(r);o={...o,defaultFindMode:e}}if(n.affectsConfiguration(Ue)||n.affectsConfiguration(je)){const e=i();o={...o,typeNavigationMode:e}}if(n.affectsConfiguration(Ge)){const e=bt(r);o={...o,defaultFindMatchType:e}}if(n.affectsConfiguration(He)&&void 0===t.horizontalScrolling){const e=Boolean(r.getValue(He));o={...o,horizontalScrolling:e}}if(n.affectsConfiguration(qe)){const e=Boolean(r.getValue(qe));o={...o,scrollByPage:e}}if(n.affectsConfiguration(Xe)&&void 0===t.expandOnlyOnTwistieClick&&(o={...o,expandOnlyOnTwistieClick:"doubleClick"===r.getValue(Xe)}),n.affectsConfiguration(et)){const e=r.getValue(et);o={...o,enableStickyScroll:e}}if(n.affectsConfiguration(tt)){const e=Math.max(1,r.getValue(tt));o={...o,stickyScrollMaxItemCount:e}}if(n.affectsConfiguration($e)){const e=r.getValue($e);o={...o,mouseWheelScrollSensitivity:e}}if(n.affectsConfiguration(Je)){const e=r.getValue(Je);o={...o,fastScrollSensitivity:e}}Object.keys(o).length>0&&e.updateOptions(o)})),this.contextKeyService.onDidChangeContext((t=>{t.affectsSome(h)&&e.updateOptions({typeNavigationMode:i()})}))),this.navigator=new ct(e,{configurationService:r,...t}),this.disposables.push(this.navigator)}updateOptions(e){void 0!==e.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyleOverrides(e){this.tree.style(e?(0,pe.TU)(e):pe.O2)}dispose(){this.disposables=(0,a.B9)(this.disposables)}};wt=_e([ve(4,de.i6),ve(5,be),ve(6,le.Ui)],wt);fe.B.as(he.IP.Configuration).registerConfiguration({id:"workbench",order:7,title:(0,ae.NC)("workbenchConfigurationTitle","Workbench"),type:"object",properties:{[Ve]:{type:"string",enum:["ctrlCmd","alt"],markdownEnumDescriptions:[(0,ae.NC)("multiSelectModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),(0,ae.NC)("multiSelectModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:(0,ae.NC)({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.")},[We]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,ae.NC)({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.")},[He]:{type:"boolean",default:!1,description:(0,ae.NC)("horizontalScrolling setting","Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.")},[qe]:{type:"boolean",default:!1,description:(0,ae.NC)("list.scrollByPage","Controls whether clicks in the scrollbar scroll page by page.")},[Qe]:{type:"number",default:8,minimum:4,maximum:40,description:(0,ae.NC)("tree indent setting","Controls tree indentation in pixels.")},[Ze]:{type:"string",enum:["none","onHover","always"],default:"onHover",description:(0,ae.NC)("render tree indent guides","Controls whether the tree should render indent guides.")},[Ye]:{type:"boolean",default:!1,description:(0,ae.NC)("list smoothScrolling setting","Controls whether lists and trees have smooth scrolling.")},[$e]:{type:"number",default:1,markdownDescription:(0,ae.NC)("Mouse Wheel Scroll Sensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")},[Je]:{type:"number",default:5,markdownDescription:(0,ae.NC)("Fast Scroll Sensitivity","Scrolling speed multiplier when pressing `Alt`.")},[Ke]:{type:"string",enum:["highlight","filter"],enumDescriptions:[(0,ae.NC)("defaultFindModeSettingKey.highlight","Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements."),(0,ae.NC)("defaultFindModeSettingKey.filter","Filter elements when searching.")],default:"highlight",description:(0,ae.NC)("defaultFindModeSettingKey","Controls the default find mode for lists and trees in the workbench.")},[je]:{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[(0,ae.NC)("keyboardNavigationSettingKey.simple","Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes."),(0,ae.NC)("keyboardNavigationSettingKey.highlight","Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements."),(0,ae.NC)("keyboardNavigationSettingKey.filter","Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.")],default:"highlight",description:(0,ae.NC)("keyboardNavigationSettingKey","Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter."),deprecated:!0,deprecationMessage:(0,ae.NC)("keyboardNavigationSettingKeyDeprecated","Please use 'workbench.list.defaultFindMode' and\t'workbench.list.typeNavigationMode' instead.")},[Ge]:{type:"string",enum:["fuzzy","contiguous"],enumDescriptions:[(0,ae.NC)("defaultFindMatchTypeSettingKey.fuzzy","Use fuzzy matching when searching."),(0,ae.NC)("defaultFindMatchTypeSettingKey.contiguous","Use contiguous matching when searching.")],default:"fuzzy",description:(0,ae.NC)("defaultFindMatchTypeSettingKey","Controls the type of matching used when searching lists and trees in the workbench.")},[Xe]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,ae.NC)("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.")},[et]:{type:"boolean",default:!0,description:(0,ae.NC)("sticky scroll","Controls whether sticky scrolling is enabled in trees.")},[tt]:{type:"number",minimum:1,default:7,markdownDescription:(0,ae.NC)("sticky scroll maximum items","Controls the number of sticky elements displayed in the tree when `#workbench.tree.enableStickyScroll#` is enabled.")},[Ue]:{type:"string",enum:["automatic","trigger"],default:"automatic",markdownDescription:(0,ae.NC)("typeNavigationMode2","Controls how type navigation works in lists and trees in the workbench. When set to `trigger`, type navigation begins once the `list.triggerTypeNavigation` command is run.")}}})},83717:(e,t,i)=>{i.d(t,{VZ:()=>r,in:()=>a,kw:()=>d,qA:()=>c});var n=i(24219),o=i(89599),s=i(24920);const r=(0,i(34304).yh)("logService");var a;!function(e){e[e.Off=0]="Off",e[e.Trace=1]="Trace",e[e.Debug=2]="Debug",e[e.Info=3]="Info",e[e.Warning=4]="Warning",e[e.Error=5]="Error"}(a||(a={}));const l=a.Info;class h extends o.JT{constructor(){super(...arguments),this.level=l,this._onDidChangeLogLevel=this._register(new n.Q5),this.onDidChangeLogLevel=this._onDidChangeLogLevel.event}setLevel(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(e){return this.level!==a.Off&&this.level<=e}}class d extends h{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];super(),this.useColors=t,this.setLevel(e)}trace(e){if(this.checkLogLevel(a.Trace)){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;n1?t-1:0),n=1;n1?t-1:0),n=1;n1?t-1:0),n=1;n1?t-1:0),n=1;n1?t-1:0),n=1;n1?t-1:0),n=1;n1?t-1:0),n=1;n1?t-1:0),n=1;n1?t-1:0),n=1;n{i.d(t,{H0:()=>o,ZL:()=>n,lT:()=>l});var n,o,s=i(6225),r=i(71721),a=i(34304);!function(e){e[e.Hint=1]="Hint",e[e.Info=2]="Info",e[e.Warning=4]="Warning",e[e.Error=8]="Error"}(n||(n={})),function(e){e.compare=function(e,t){return t-e};const t=Object.create(null);t[e.Error]=(0,r.NC)("sev.error","Error"),t[e.Warning]=(0,r.NC)("sev.warning","Warning"),t[e.Info]=(0,r.NC)("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}}}(n||(n={})),function(e){const t="";function i(e,i){const o=[t];return e.source?o.push(e.source.replace("\xa6","\\\xa6")):o.push(t),e.code?"string"===typeof e.code?o.push(e.code.replace("\xa6","\\\xa6")):o.push(e.code.value.replace("\xa6","\\\xa6")):o.push(t),void 0!==e.severity&&null!==e.severity?o.push(n.toString(e.severity)):o.push(t),e.message&&i?o.push(e.message.replace("\xa6","\\\xa6")):o.push(t),void 0!==e.startLineNumber&&null!==e.startLineNumber?o.push(e.startLineNumber.toString()):o.push(t),void 0!==e.startColumn&&null!==e.startColumn?o.push(e.startColumn.toString()):o.push(t),void 0!==e.endLineNumber&&null!==e.endLineNumber?o.push(e.endLineNumber.toString()):o.push(t),void 0!==e.endColumn&&null!==e.endColumn?o.push(e.endColumn.toString()):o.push(t),o.push(t),o.join("\xa6")}e.makeKey=function(e){return i(e,!0)},e.makeKeyOptionalMessage=i}(o||(o={}));const l=(0,a.yh)("markerService")},13200:(e,t,i)=>{i.d(t,{EO:()=>a,lT:()=>r,zb:()=>s});var n=i(6225),o=i(34304),s=n.Z;const r=(0,o.yh)("notificationService");class a{}},51460:(e,t,i)=>{i.d(t,{v:()=>n,x:()=>o});const n=(0,i(34304).yh)("openerService");function o(e){let t;const i=/^L?(\d+)(?:,(\d+))?(-L?(\d+)(?:,(\d+))?)?/.exec(e.fragment);return i&&(t={startLineNumber:parseInt(i[1]),startColumn:i[2]?parseInt(i[2]):1,endLineNumber:i[4]?parseInt(i[4]):void 0,endColumn:i[4]?i[5]?parseInt(i[5]):1:void 0},e=e.with({fragment:""})),{selection:t,uri:e}}},39040:(e,t,i)=>{i.d(t,{Ex:()=>s,R9:()=>o,ek:()=>r});var n=i(34304);const o=(0,n.yh)("progressService");Object.freeze({total(){},worked(){},done(){}});class s{constructor(e){this.callback=e}report(e){this._value=e,this.callback(this._value)}}s.None=Object.freeze({report(){}});const r=(0,n.yh)("editorProgressService")},53643:(e,t,i)=>{i.d(t,{IP:()=>a,Ry:()=>n});var n,o=i(75629),s=i(89599),r=i(70311);!function(e){e[e.PRESERVE=0]="PRESERVE",e[e.LAST=1]="LAST"}(n||(n={}));const a={Quickaccess:"workbench.contributions.quickaccess"};r.B.add(a.Quickaccess,new class{constructor(){this.providers=[],this.defaultProvider=void 0}registerQuickAccessProvider(e){return 0===e.prefix.length?this.defaultProvider=e:this.providers.push(e),this.providers.sort(((e,t)=>t.prefix.length-e.prefix.length)),(0,s.OF)((()=>{this.providers.splice(this.providers.indexOf(e),1),this.defaultProvider===e&&(this.defaultProvider=void 0)}))}getQuickAccessProviders(){return(0,o.kX)([this.defaultProvider,...this.providers])}getQuickAccessProvider(e){return e&&this.providers.find((t=>e.startsWith(t.prefix)))||void 0||this.defaultProvider}})},35786:(e,t,i)=>{i.d(t,{Jq:()=>s,X5:()=>o,eJ:()=>a,jG:()=>r});var n=i(34304);const o={ctrlCmd:!1,alt:!1};var s,r;!function(e){e[e.Blur=1]="Blur",e[e.Gesture=2]="Gesture",e[e.Other=3]="Other"}(s||(s={})),function(e){e[e.NONE=0]="NONE",e[e.FIRST=1]="FIRST",e[e.SECOND=2]="SECOND",e[e.LAST=3]="LAST"}(r||(r={}));new class{constructor(e){this.options=e}};const a=(0,n.yh)("quickInputService")},70311:(e,t,i)=>{i.d(t,{B:()=>s});var n=i(39880),o=i(63686);const s=new class{constructor(){this.data=new Map}add(e,t){n.ok(o.HD(e)),n.ok(o.Kn(t)),n.ok(!this.data.has(e),"There is already an extension with this id"),this.data.set(e,t)}as(e){return this.data.get(e)||null}}},89965:(e,t,i)=>{i.d(t,{Uy:()=>m,vm:()=>_,fk:()=>f});var n,o,s=i(24219),r=i(89599),a=i(63686),l=i(60282),h=i(61423);!function(e){e[e.STORAGE_DOES_NOT_EXIST=0]="STORAGE_DOES_NOT_EXIST",e[e.STORAGE_IN_MEMORY=1]="STORAGE_IN_MEMORY"}(n||(n={})),function(e){e[e.None=0]="None",e[e.Initialized=1]="Initialized",e[e.Closed=2]="Closed"}(o||(o={}));class d extends r.JT{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Object.create(null);super(),this.database=e,this.options=t,this._onDidChangeStorage=this._register(new s.K3),this.onDidChangeStorage=this._onDidChangeStorage.event,this.state=o.None,this.cache=new Map,this.flushDelayer=this._register(new l.rH(d.DEFAULT_FLUSH_DELAY)),this.pendingDeletes=new Set,this.pendingInserts=new Map,this.whenFlushedCallbacks=[],this.registerListeners()}registerListeners(){this._register(this.database.onDidChangeItemsExternal((e=>this.onDidChangeItemsExternal(e))))}onDidChangeItemsExternal(e){var t,i;this._onDidChangeStorage.pause();try{null===(t=e.changed)||void 0===t||t.forEach(((e,t)=>this.acceptExternal(t,e))),null===(i=e.deleted)||void 0===i||i.forEach((e=>this.acceptExternal(e,void 0)))}finally{this._onDidChangeStorage.resume()}}acceptExternal(e,t){if(this.state===o.Closed)return;let i=!1;if((0,a.Jp)(t))i=this.cache.delete(e);else{this.cache.get(e)!==t&&(this.cache.set(e,t),i=!0)}i&&this._onDidChangeStorage.fire({key:e,external:!0})}get(e,t){const i=this.cache.get(e);return(0,a.Jp)(i)?t:i}getBoolean(e,t){const i=this.get(e);return(0,a.Jp)(i)?t:"true"===i}getNumber(e,t){const i=this.get(e);return(0,a.Jp)(i)?t:parseInt(i,10)}async set(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this.state===o.Closed)return;if((0,a.Jp)(t))return this.delete(e,i);const n=(0,a.Kn)(t)||Array.isArray(t)?(0,h.Pz)(t):String(t);return this.cache.get(e)!==n?(this.cache.set(e,n),this.pendingInserts.set(e,n),this.pendingDeletes.delete(e),this._onDidChangeStorage.fire({key:e,external:i}),this.doFlush()):void 0}async delete(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.state===o.Closed)return;return this.cache.delete(e)?(this.pendingDeletes.has(e)||this.pendingDeletes.add(e),this.pendingInserts.delete(e),this._onDidChangeStorage.fire({key:e,external:t}),this.doFlush()):void 0}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}async flushPending(){if(!this.hasPending)return;const e={insert:this.pendingInserts,delete:this.pendingDeletes};return this.pendingDeletes=new Set,this.pendingInserts=new Map,this.database.updateItems(e).finally((()=>{var e;if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)null===(e=this.whenFlushedCallbacks.pop())||void 0===e||e()}))}async doFlush(e){return this.options.hint===n.STORAGE_IN_MEMORY?this.flushPending():this.flushDelayer.trigger((()=>this.flushPending()),e)}}d.DEFAULT_FLUSH_DELAY=100;class c{constructor(){this.onDidChangeItemsExternal=s.ju.None,this.items=new Map}async updateItems(e){var t,i;null===(t=e.insert)||void 0===t||t.forEach(((e,t)=>this.items.set(t,e))),null===(i=e.delete)||void 0===i||i.forEach((e=>this.items.delete(e)))}}var u=i(34304);const g="__$__targetStorageMarker",m=(0,u.yh)("storageService");var f;!function(e){e[e.NONE=0]="NONE",e[e.SHUTDOWN=1]="SHUTDOWN"}(f||(f={}));class p extends r.JT{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{flushInterval:p.DEFAULT_FLUSH_INTERVAL};super(),this.options=e,this._onDidChangeValue=this._register(new s.K3),this._onDidChangeTarget=this._register(new s.K3),this._onWillSaveState=this._register(new s.Q5),this.onWillSaveState=this._onWillSaveState.event,this._workspaceKeyTargets=void 0,this._profileKeyTargets=void 0,this._applicationKeyTargets=void 0}onDidChangeValue(e,t,i){return s.ju.filter(this._onDidChangeValue.event,(i=>i.scope===e&&(void 0===t||i.key===t)),i)}emitDidChangeValue(e,t){const{key:i,external:n}=t;if(i===g){switch(e){case-1:this._applicationKeyTargets=void 0;break;case 0:this._profileKeyTargets=void 0;break;case 1:this._workspaceKeyTargets=void 0}this._onDidChangeTarget.fire({scope:e})}else this._onDidChangeValue.fire({scope:e,key:i,target:this.getKeyTargets(e)[i],external:n})}get(e,t,i){var n;return null===(n=this.getStorage(t))||void 0===n?void 0:n.get(e,i)}getBoolean(e,t,i){var n;return null===(n=this.getStorage(t))||void 0===n?void 0:n.getBoolean(e,i)}getNumber(e,t,i){var n;return null===(n=this.getStorage(t))||void 0===n?void 0:n.getNumber(e,i)}store(e,t,i,n){let o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];(0,a.Jp)(t)?this.remove(e,i,o):this.withPausedEmitters((()=>{var s;this.updateKeyTarget(e,i,n),null===(s=this.getStorage(i))||void 0===s||s.set(e,t,o)}))}remove(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.withPausedEmitters((()=>{var n;this.updateKeyTarget(e,t,void 0),null===(n=this.getStorage(t))||void 0===n||n.delete(e,i)}))}withPausedEmitters(e){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{e()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}updateKeyTarget(e,t,i){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];var o,s;const r=this.getKeyTargets(t);"number"===typeof i?r[e]!==i&&(r[e]=i,null===(o=this.getStorage(t))||void 0===o||o.set(g,JSON.stringify(r),n)):"number"===typeof r[e]&&(delete r[e],null===(s=this.getStorage(t))||void 0===s||s.set(g,JSON.stringify(r),n))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}getKeyTargets(e){switch(e){case-1:return this.applicationKeyTargets;case 0:return this.profileKeyTargets;default:return this.workspaceKeyTargets}}loadKeyTargets(e){const t=this.getStorage(e);return t?function(e){const t=e.get(g);if(t)try{return JSON.parse(t)}catch(i){}return Object.create(null)}(t):Object.create(null)}}p.DEFAULT_FLUSH_INTERVAL=6e4;class _ extends p{constructor(){super(),this.applicationStorage=this._register(new d(new c,{hint:n.STORAGE_IN_MEMORY})),this.profileStorage=this._register(new d(new c,{hint:n.STORAGE_IN_MEMORY})),this.workspaceStorage=this._register(new d(new c,{hint:n.STORAGE_IN_MEMORY})),this._register(this.workspaceStorage.onDidChangeStorage((e=>this.emitDidChangeValue(1,e)))),this._register(this.profileStorage.onDidChangeStorage((e=>this.emitDidChangeValue(0,e)))),this._register(this.applicationStorage.onDidChangeStorage((e=>this.emitDidChangeValue(-1,e))))}getStorage(e){switch(e){case-1:return this.applicationStorage;case 0:return this.profileStorage;default:return this.workspaceStorage}}}},38015:(e,t,i)=>{i.d(t,{b:()=>n});const n=(0,i(34304).yh)("telemetryService")},29581:(e,t,i)=>{i.d(t,{BM:()=>m,Hc:()=>h,O2:()=>u,TU:()=>g,ZR:()=>f,b5:()=>a,eO:()=>s,ku:()=>c,pl:()=>l,uX:()=>d,wG:()=>r});var n=i(87701),o=i(89652);const s={keybindingLabelBackground:(0,n.n_1)(n.oQ$),keybindingLabelForeground:(0,n.n_1)(n.lWp),keybindingLabelBorder:(0,n.n_1)(n.AWI),keybindingLabelBottomBorder:(0,n.n_1)(n.K19),keybindingLabelShadow:(0,n.n_1)(n.rh)},r={buttonForeground:(0,n.n_1)(n.j5u),buttonSeparator:(0,n.n_1)(n.iFQ),buttonBackground:(0,n.n_1)(n.b7$),buttonHoverBackground:(0,n.n_1)(n.GO4),buttonSecondaryForeground:(0,n.n_1)(n.qBU),buttonSecondaryBackground:(0,n.n_1)(n.ESD),buttonSecondaryHoverBackground:(0,n.n_1)(n.xEn),buttonBorder:(0,n.n_1)(n.GYc)},a={progressBarBackground:(0,n.n_1)(n.zRJ)},l={inputActiveOptionBorder:(0,n.n_1)(n.PRb),inputActiveOptionForeground:(0,n.n_1)(n.Pvw),inputActiveOptionBackground:(0,n.n_1)(n.XEs)},h=((0,n.n_1)(n.SUp),(0,n.n_1)(n.nd),(0,n.n_1)(n.BQ0),(0,n.n_1)(n.D0T),(0,n.n_1)(n.Hfx),(0,n.n_1)(n.rh),(0,n.n_1)(n.lRK),(0,n.n_1)(n.JpG),(0,n.n_1)(n.BOY),(0,n.n_1)(n.OLZ),(0,n.n_1)(n.url),{inputBackground:(0,n.n_1)(n.sEe),inputForeground:(0,n.n_1)(n.zJb),inputBorder:(0,n.n_1)(n.dt_),inputValidationInfoBorder:(0,n.n_1)(n.EPQ),inputValidationInfoBackground:(0,n.n_1)(n._lC),inputValidationInfoForeground:(0,n.n_1)(n.YI3),inputValidationWarningBorder:(0,n.n_1)(n.C3g),inputValidationWarningBackground:(0,n.n_1)(n.RV_),inputValidationWarningForeground:(0,n.n_1)(n.SUG),inputValidationErrorBorder:(0,n.n_1)(n.OZR),inputValidationErrorBackground:(0,n.n_1)(n.paE),inputValidationErrorForeground:(0,n.n_1)(n._t9)}),d={listFilterWidgetBackground:(0,n.n_1)(n.vGG),listFilterWidgetOutline:(0,n.n_1)(n.oSI),listFilterWidgetNoMatchesOutline:(0,n.n_1)(n.Saq),listFilterWidgetShadow:(0,n.n_1)(n.y65),inputBoxStyles:h,toggleStyles:l},c={badgeBackground:(0,n.n_1)(n.g8u),badgeForeground:(0,n.n_1)(n.qeD),badgeBorder:(0,n.n_1)(n.lRK)},u=((0,n.n_1)(n.ixd),(0,n.n_1)(n.l80),(0,n.n_1)(n.H6q),(0,n.n_1)(n.H6q),(0,n.n_1)(n.fSI),{listBackground:void 0,listInactiveFocusForeground:void 0,listFocusBackground:(0,n.n_1)(n._bK),listFocusForeground:(0,n.n_1)(n._2n),listFocusOutline:(0,n.n_1)(n.Oop),listActiveSelectionBackground:(0,n.n_1)(n.dCr),listActiveSelectionForeground:(0,n.n_1)(n.M6C),listActiveSelectionIconForeground:(0,n.n_1)(n.Tnx),listFocusAndSelectionOutline:(0,n.n_1)(n.Bqu),listFocusAndSelectionBackground:(0,n.n_1)(n.dCr),listFocusAndSelectionForeground:(0,n.n_1)(n.M6C),listInactiveSelectionBackground:(0,n.n_1)(n.rg2),listInactiveSelectionIconForeground:(0,n.n_1)(n.kvU),listInactiveSelectionForeground:(0,n.n_1)(n.ytC),listInactiveFocusBackground:(0,n.n_1)(n.s$),listInactiveFocusOutline:(0,n.n_1)(n.F3d),listHoverBackground:(0,n.n_1)(n.mV1),listHoverForeground:(0,n.n_1)(n.$d5),listDropOverBackground:(0,n.n_1)(n.pdn),listDropBetweenBackground:(0,n.n_1)(n.XVp),listSelectionOutline:(0,n.n_1)(n.xL1),listHoverOutline:(0,n.n_1)(n.xL1),treeIndentGuidesStroke:(0,n.n_1)(n.UnT),treeInactiveIndentGuidesStroke:(0,n.n_1)(n.KjV),tableColumnsBorder:(0,n.n_1)(n.uxu),tableOddRowsBackgroundColor:(0,n.n_1)(n.EQn)});function g(e){return function(e,t){const i={...t};for(const o in e){const t=e[o];i[o]=void 0!==t?(0,n.n_1)(t):void 0}return i}(e,u)}const m={selectBackground:(0,n.n_1)(n.XV0),selectListBackground:(0,n.n_1)(n.Fgs),selectForeground:(0,n.n_1)(n._g0),decoratorRightForeground:(0,n.n_1)(n.kJk),selectBorder:(0,n.n_1)(n.a9O),focusBorder:(0,n.n_1)(n.R80),listFocusBackground:(0,n.n_1)(n.Vqd),listInactiveSelectionIconForeground:(0,n.n_1)(n.cbQ),listFocusForeground:(0,n.n_1)(n.NPS),listFocusOutline:(0,n.BtC)(n.xL1,o.Il.transparent.toString()),listHoverBackground:(0,n.n_1)(n.mV1),listHoverForeground:(0,n.n_1)(n.$d5),listHoverOutline:(0,n.n_1)(n.xL1),selectListBorder:(0,n.n_1)(n.D1_),listBackground:void 0,listActiveSelectionBackground:void 0,listActiveSelectionForeground:void 0,listActiveSelectionIconForeground:void 0,listFocusAndSelectionBackground:void 0,listDropOverBackground:void 0,listDropBetweenBackground:void 0,listInactiveSelectionBackground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusBackground:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listFocusAndSelectionForeground:void 0,listFocusAndSelectionOutline:void 0,listInactiveFocusForeground:void 0,tableColumnsBorder:void 0,tableOddRowsBackgroundColor:void 0,treeIndentGuidesStroke:void 0,treeInactiveIndentGuidesStroke:void 0},f={shadowColor:(0,n.n_1)(n.rh),borderColor:(0,n.n_1)(n.Cdg),foregroundColor:(0,n.n_1)(n.DEr),backgroundColor:(0,n.n_1)(n.Hz8),selectionForegroundColor:(0,n.n_1)(n.jbW),selectionBackgroundColor:(0,n.n_1)(n.$DX),selectionBorderColor:(0,n.n_1)(n.E3h),separatorColor:(0,n.n_1)(n.ZGJ),scrollbarShadow:(0,n.n_1)(n._wn),scrollbarSliderBackground:(0,n.n_1)(n.etL),scrollbarSliderHoverBackground:(0,n.n_1)(n.ABB),scrollbarSliderActiveBackground:(0,n.n_1)(n.ynu)}},87701:(e,t,i)=>{i.d(t,{IPX:()=>u,xL1:()=>E,n_1:()=>d,QO2:()=>h,BtC:()=>c,g8u:()=>T,qeD:()=>M,fSI:()=>De,ixd:()=>Le,H6q:()=>ke,l80:()=>Se,b7$:()=>ft,GYc:()=>_t,j5u:()=>gt,GO4:()=>pt,ESD:()=>bt,qBU:()=>vt,xEn:()=>Ct,iFQ:()=>mt,SUp:()=>wt,nd:()=>St,BQ0:()=>yt,lRK:()=>x,CzK:()=>me,keg:()=>fe,ypS:()=>pe,P6Y:()=>ve,F9q:()=>be,P4M:()=>_e,_Yy:()=>$,cvW:()=>B,b6y:()=>U,lXJ:()=>K,MUv:()=>ie,EiJ:()=>ne,gkn:()=>oe,NOs:()=>z,Dut:()=>Y,yJx:()=>se,CNo:()=>re,ES4:()=>ee,T83:()=>Z,c63:()=>Q,PpC:()=>le,VVv:()=>ae,phM:()=>ue,HCL:()=>ce,bKB:()=>de,hX8:()=>he,hEj:()=>J,yb5:()=>X,Rzx:()=>te,gpD:()=>j,pW3:()=>G,uoC:()=>q,D0T:()=>V,D1_:()=>H,Hfx:()=>W,R80:()=>N,dRz:()=>k,XZx:()=>D,XEs:()=>Je,PRb:()=>$e,Pvw:()=>Xe,sEe:()=>Qe,dt_:()=>Ye,zJb:()=>Ze,paE:()=>rt,OZR:()=>lt,_t9:()=>at,_lC:()=>et,EPQ:()=>it,YI3:()=>tt,RV_:()=>nt,C3g:()=>st,SUG:()=>ot,oQ$:()=>Lt,AWI:()=>Dt,K19:()=>Nt,lWp:()=>kt,dCr:()=>Mt,M6C:()=>At,Tnx:()=>Rt,XVp:()=>Kt,pdn:()=>Ht,vGG:()=>Zt,Saq:()=>$t,oSI:()=>Yt,y65:()=>Jt,Bqu:()=>Tt,_bK:()=>xt,_2n:()=>Et,PX0:()=>jt,Oop:()=>It,Gwp:()=>Ut,mV1:()=>Vt,$d5:()=>Wt,s$:()=>Bt,F3d:()=>zt,rg2:()=>Ot,ytC:()=>Pt,kvU:()=>Ft,Hz8:()=>si,Cdg:()=>ni,DEr:()=>oi,$DX:()=>ai,E3h:()=>li,jbW:()=>ri,ZGJ:()=>hi,kVY:()=>qe,Gj_:()=>je,SUY:()=>Ve,Itd:()=>Ge,Gvr:()=>Ke,ov3:()=>He,IYc:()=>We,Ivo:()=>Ue,kwl:()=>v,Fm_:()=>Oe,SPM:()=>Pe,opG:()=>mi,kJk:()=>gi,JpG:()=>Fe,OLZ:()=>ze,BOY:()=>Be,zRJ:()=>F,zKr:()=>di,tZ6:()=>ci,Vqd:()=>vi,NPS:()=>pi,cbQ:()=>_i,loF:()=>ui,P6G:()=>m,_wn:()=>A,ynu:()=>P,etL:()=>R,ABB:()=>O,XV0:()=>ht,a9O:()=>ut,_g0:()=>ct,Fgs:()=>dt,uxu:()=>ti,EQn:()=>ii,url:()=>I,ZnX:()=>_,KjV:()=>ei,UnT:()=>Xt,A42:()=>we,rh:()=>Ce});var n=i(39880),o=i(60282),s=i(89652),r=i(24219),a=i(72677),l=i(70311);function h(e){return"--vscode-".concat(e.replace(/\./g,"-"))}function d(e){return"var(".concat(h(e),")")}function c(e,t){return"var(".concat(h(e),", ").concat(t,")")}const u={ColorContribution:"base.contributions.colors"};const g=new class{constructor(){this._onDidChangeSchema=new r.Q5,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:"object",properties:{}},this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]},this.colorsById={}}registerColor(e,t,i){let n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=arguments.length>4?arguments[4]:void 0;const s={id:e,description:i,defaults:t,needsTransparency:n,deprecationMessage:o};this.colorsById[e]=s;const r={type:"string",description:i,format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};return o&&(r.deprecationMessage=o),n&&(r.pattern="^#(?:(?[0-9a-fA-f]{3}[0-9a-eA-E])|(?:[0-9a-fA-F]{6}(?:(?![fF]{2})(?:[0-9a-fA-F]{2}))))?$",r.patternErrorMessage="This color must be transparent or it will obscure content"),this.colorSchema.properties[e]=r,this.colorReferenceSchema.enum.push(e),this.colorReferenceSchema.enumDescriptions.push(i),this._onDidChangeSchema.fire(),e}getColors(){return Object.keys(this.colorsById).map((e=>this.colorsById[e]))}resolveDefaultColor(e,t){const i=this.colorsById[e];if(i&&i.defaults){return C(i.defaults[t.type],t)}}getColorSchema(){return this.colorSchema}toString(){return Object.keys(this.colorsById).sort(((e,t)=>{const i=-1===e.indexOf(".")?0:1,n=-1===t.indexOf(".")?0:1;return i!==n?i-n:e.localeCompare(t)})).map((e=>"- `".concat(e,"`: ").concat(this.colorsById[e].description))).join("\n")}};function m(e,t,i,n,o){return g.registerColor(e,t,i,n,o)}function f(e,t){return{op:0,value:e,factor:t}}function p(e,t){return{op:1,value:e,factor:t}}function _(e,t){return{op:2,value:e,factor:t}}function v(){for(var e=arguments.length,t=new Array(e),i=0;iy.notifySchemaChanged(w)),200);g.onDidChangeSchema((()=>{S.isScheduled()||S.schedule()}));var L=i(71721);const k=m("foreground",{dark:"#CCCCCC",light:"#616161",hcDark:"#FFFFFF",hcLight:"#292929"},L.NC("foreground","Overall foreground color. This color is only used if not overridden by a component.")),D=(m("disabledForeground",{dark:"#CCCCCC80",light:"#61616180",hcDark:"#A5A5A5",hcLight:"#7F7F7F"},L.NC("disabledForeground","Overall foreground for disabled elements. This color is only used if not overridden by a component.")),m("errorForeground",{dark:"#F48771",light:"#A1260D",hcDark:"#F48771",hcLight:"#B5200D"},L.NC("errorForeground","Overall foreground color for error messages. This color is only used if not overridden by a component.")),m("descriptionForeground",{light:"#717171",dark:_(k,.7),hcDark:_(k,.7),hcLight:_(k,.7)},L.NC("descriptionForeground","Foreground color for description text providing additional information, for example for a label.")),m("icon.foreground",{dark:"#C5C5C5",light:"#424242",hcDark:"#FFFFFF",hcLight:"#292929"},L.NC("iconForeground","The default color for icons in the workbench."))),N=m("focusBorder",{dark:"#007FD4",light:"#0090F1",hcDark:"#F38518",hcLight:"#006BBD"},L.NC("focusBorder","Overall border color for focused elements. This color is only used if not overridden by a component.")),x=m("contrastBorder",{light:null,dark:null,hcDark:"#6FC3DF",hcLight:"#0F4A85"},L.NC("contrastBorder","An extra border around elements to separate them from others for greater contrast.")),E=m("contrastActiveBorder",{light:null,dark:null,hcDark:N,hcLight:N},L.NC("activeContrastBorder","An extra border around active elements to separate them from others for greater contrast.")),I=(m("selection.background",{light:null,dark:null,hcDark:null,hcLight:null},L.NC("selectionBackground","The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.")),m("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},L.NC("textLinkForeground","Foreground color for links in text."))),T=(m("textLink.activeForeground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},L.NC("textLinkActiveForeground","Foreground color for links in text when clicked on and on mouse hover.")),m("textSeparator.foreground",{light:"#0000002e",dark:"#ffffff2e",hcDark:s.Il.black,hcLight:"#292929"},L.NC("textSeparatorForeground","Color for text separators.")),m("textPreformat.foreground",{light:"#A31515",dark:"#D7BA7D",hcDark:"#000000",hcLight:"#FFFFFF"},L.NC("textPreformatForeground","Foreground color for preformatted text segments.")),m("textPreformat.background",{light:"#0000001A",dark:"#FFFFFF1A",hcDark:"#FFFFFF",hcLight:"#09345f"},L.NC("textPreformatBackground","Background color for preformatted text segments.")),m("textBlockQuote.background",{light:"#f2f2f2",dark:"#222222",hcDark:null,hcLight:"#F2F2F2"},L.NC("textBlockQuoteBackground","Background color for block quotes in text.")),m("textBlockQuote.border",{light:"#007acc80",dark:"#007acc80",hcDark:s.Il.white,hcLight:"#292929"},L.NC("textBlockQuoteBorder","Border color for block quotes in text.")),m("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hcDark:s.Il.black,hcLight:"#F2F2F2"},L.NC("textCodeBlockBackground","Background color for code blocks in text.")),m("sash.hoverBorder",{dark:N,light:N,hcDark:N,hcLight:N},L.NC("sashActiveBorder","Border color of active sashes.")),m("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hcDark:s.Il.black,hcLight:"#0F4A85"},L.NC("badgeBackground","Badge background color. Badges are small information labels, e.g. for search results count."))),M=m("badge.foreground",{dark:s.Il.white,light:"#333",hcDark:s.Il.white,hcLight:s.Il.white},L.NC("badgeForeground","Badge foreground color. Badges are small information labels, e.g. for search results count.")),A=m("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hcDark:null,hcLight:null},L.NC("scrollbarShadow","Scrollbar shadow to indicate that the view is scrolled.")),R=m("scrollbarSlider.background",{dark:s.Il.fromHex("#797979").transparent(.4),light:s.Il.fromHex("#646464").transparent(.4),hcDark:_(x,.6),hcLight:_(x,.4)},L.NC("scrollbarSliderBackground","Scrollbar slider background color.")),O=m("scrollbarSlider.hoverBackground",{dark:s.Il.fromHex("#646464").transparent(.7),light:s.Il.fromHex("#646464").transparent(.7),hcDark:_(x,.8),hcLight:_(x,.8)},L.NC("scrollbarSliderHoverBackground","Scrollbar slider background color when hovering.")),P=m("scrollbarSlider.activeBackground",{dark:s.Il.fromHex("#BFBFBF").transparent(.4),light:s.Il.fromHex("#000000").transparent(.6),hcDark:x,hcLight:x},L.NC("scrollbarSliderActiveBackground","Scrollbar slider background color when clicked on.")),F=m("progressBar.background",{dark:s.Il.fromHex("#0E70C0"),light:s.Il.fromHex("#0E70C0"),hcDark:x,hcLight:x},L.NC("progressBarBackground","Background color of the progress bar that can show for long running operations.")),B=m("editor.background",{light:"#ffffff",dark:"#1E1E1E",hcDark:s.Il.black,hcLight:s.Il.white},L.NC("editorBackground","Editor background color.")),z=m("editor.foreground",{light:"#333333",dark:"#BBBBBB",hcDark:s.Il.white,hcLight:k},L.NC("editorForeground","Editor default foreground color.")),V=(m("editorStickyScroll.background",{light:B,dark:B,hcDark:B,hcLight:B},L.NC("editorStickyScrollBackground","Background color of sticky scroll in the editor")),m("editorStickyScrollHover.background",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:null,hcLight:s.Il.fromHex("#0F4A85").transparent(.1)},L.NC("editorStickyScrollHoverBackground","Background color of sticky scroll on hover in the editor")),m("editorStickyScroll.border",{dark:null,light:null,hcDark:x,hcLight:x},L.NC("editorStickyScrollBorder","Border color of sticky scroll in the editor")),m("editorStickyScroll.shadow",{dark:A,light:A,hcDark:A,hcLight:A},L.NC("editorStickyScrollShadow"," Shadow color of sticky scroll in the editor")),m("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hcDark:"#0C141F",hcLight:s.Il.white},L.NC("editorWidgetBackground","Background color of editor widgets, such as find/replace."))),W=m("editorWidget.foreground",{dark:k,light:k,hcDark:k,hcLight:k},L.NC("editorWidgetForeground","Foreground color of editor widgets, such as find/replace.")),H=m("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hcDark:x,hcLight:x},L.NC("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.")),K=(m("editorWidget.resizeBorder",{light:null,dark:null,hcDark:null,hcLight:null},L.NC("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.")),m("editorError.background",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("editorError.background","Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),m("editorError.foreground",{dark:"#F14C4C",light:"#E51400",hcDark:"#F48771",hcLight:"#B5200D"},L.NC("editorError.foreground","Foreground color of error squigglies in the editor."))),U=m("editorError.border",{dark:null,light:null,hcDark:s.Il.fromHex("#E47777").transparent(.8),hcLight:"#B5200D"},L.NC("errorBorder","If set, color of double underlines for errors in the editor.")),j=m("editorWarning.background",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("editorWarning.background","Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),q=m("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hcDark:"#FFD370",hcLight:"#895503"},L.NC("editorWarning.foreground","Foreground color of warning squigglies in the editor.")),G=m("editorWarning.border",{dark:null,light:null,hcDark:s.Il.fromHex("#FFCC00").transparent(.8),hcLight:s.Il.fromHex("#FFCC00").transparent(.8)},L.NC("warningBorder","If set, color of double underlines for warnings in the editor.")),Q=(m("editorInfo.background",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("editorInfo.background","Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),m("editorInfo.foreground",{dark:"#3794FF",light:"#1a85ff",hcDark:"#3794FF",hcLight:"#1a85ff"},L.NC("editorInfo.foreground","Foreground color of info squigglies in the editor."))),Z=m("editorInfo.border",{dark:null,light:null,hcDark:s.Il.fromHex("#3794FF").transparent(.8),hcLight:"#292929"},L.NC("infoBorder","If set, color of double underlines for infos in the editor.")),Y=m("editorHint.foreground",{dark:s.Il.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hcDark:null,hcLight:null},L.NC("editorHint.foreground","Foreground color of hint squigglies in the editor.")),$=(m("editorHint.border",{dark:null,light:null,hcDark:s.Il.fromHex("#eeeeee").transparent(.8),hcLight:"#292929"},L.NC("hintBorder","If set, color of double underlines for hints in the editor.")),m("editorLink.activeForeground",{dark:"#4E94CE",light:s.Il.blue,hcDark:s.Il.cyan,hcLight:"#292929"},L.NC("activeLinkForeground","Color of active links."))),J=m("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hcDark:"#f3f518",hcLight:"#0F4A85"},L.NC("editorSelectionBackground","Color of the editor selection.")),X=m("editor.selectionForeground",{light:null,dark:null,hcDark:"#000000",hcLight:s.Il.white},L.NC("editorSelectionForeground","Color of the selected text for high contrast.")),ee=m("editor.inactiveSelectionBackground",{light:_(J,.5),dark:_(J,.5),hcDark:_(J,.7),hcLight:_(J,.5)},L.NC("editorInactiveSelection","Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations."),!0),te=m("editor.selectionHighlightBackground",{light:b(J,B,.3,.6),dark:b(J,B,.3,.6),hcDark:null,hcLight:null},L.NC("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),ie=(m("editor.selectionHighlightBorder",{light:null,dark:null,hcDark:E,hcLight:E},L.NC("editorSelectionHighlightBorder","Border color for regions with the same content as the selection.")),m("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hcDark:null,hcLight:null},L.NC("editorFindMatch","Color of the current search match.")),m("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hcDark:null,hcLight:null},L.NC("findMatchHighlight","Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."),!0)),ne=(m("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hcDark:null,hcLight:null},L.NC("findRangeHighlight","Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),m("editor.findMatchBorder",{light:null,dark:null,hcDark:E,hcLight:E},L.NC("editorFindMatchBorder","Border color of the current search match.")),m("editor.findMatchHighlightBorder",{light:null,dark:null,hcDark:E,hcLight:E},L.NC("findMatchHighlightBorder","Border color of the other search matches."))),oe=m("editor.findRangeHighlightBorder",{dark:null,light:null,hcDark:_(E,.4),hcLight:_(E,.4)},L.NC("findRangeHighlightBorder","Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),se=(m("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hcDark:"#ADD6FF26",hcLight:null},L.NC("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),m("editorHoverWidget.background",{light:V,dark:V,hcDark:V,hcLight:V},L.NC("hoverBackground","Background color of the editor hover."))),re=(m("editorHoverWidget.foreground",{light:W,dark:W,hcDark:W,hcLight:W},L.NC("hoverForeground","Foreground color of the editor hover.")),m("editorHoverWidget.border",{light:H,dark:H,hcDark:H,hcLight:H},L.NC("hoverBorder","Border color of the editor hover."))),ae=(m("editorHoverWidget.statusBarBackground",{dark:p(se,.2),light:f(se,.05),hcDark:V,hcLight:V},L.NC("statusBarBackground","Background color of the editor hover status bar.")),m("editorInlayHint.foreground",{dark:"#969696",light:"#969696",hcDark:s.Il.white,hcLight:s.Il.black},L.NC("editorInlayHintForeground","Foreground color of inline hints"))),le=m("editorInlayHint.background",{dark:_(T,.1),light:_(T,.1),hcDark:_(s.Il.white,.1),hcLight:_(T,.1)},L.NC("editorInlayHintBackground","Background color of inline hints")),he=m("editorInlayHint.typeForeground",{dark:ae,light:ae,hcDark:ae,hcLight:ae},L.NC("editorInlayHintForegroundTypes","Foreground color of inline hints for types")),de=m("editorInlayHint.typeBackground",{dark:le,light:le,hcDark:le,hcLight:le},L.NC("editorInlayHintBackgroundTypes","Background color of inline hints for types")),ce=m("editorInlayHint.parameterForeground",{dark:ae,light:ae,hcDark:ae,hcLight:ae},L.NC("editorInlayHintForegroundParameter","Foreground color of inline hints for parameters")),ue=m("editorInlayHint.parameterBackground",{dark:le,light:le,hcDark:le,hcLight:le},L.NC("editorInlayHintBackgroundParameter","Background color of inline hints for parameters")),ge=m("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hcDark:"#FFCC00",hcLight:"#007ACC"},L.NC("editorLightBulbForeground","The color used for the lightbulb actions icon.")),me=(m("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},L.NC("editorLightBulbAutoFixForeground","The color used for the lightbulb auto fix actions icon.")),m("editorLightBulbAi.foreground",{dark:ge,light:ge,hcDark:ge,hcLight:ge},L.NC("editorLightBulbAiForeground","The color used for the lightbulb AI icon.")),m("editor.snippetTabstopHighlightBackground",{dark:new s.Il(new s.VS(124,124,124,.3)),light:new s.Il(new s.VS(10,50,100,.2)),hcDark:new s.Il(new s.VS(124,124,124,.3)),hcLight:new s.Il(new s.VS(10,50,100,.2))},L.NC("snippetTabstopHighlightBackground","Highlight background color of a snippet tabstop.")),m("editor.snippetTabstopHighlightBorder",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("snippetTabstopHighlightBorder","Highlight border color of a snippet tabstop.")),m("editor.snippetFinalTabstopHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("snippetFinalTabstopHighlightBackground","Highlight background color of the final tabstop of a snippet.")),m("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new s.Il(new s.VS(10,50,100,.5)),hcDark:"#525252",hcLight:"#292929"},L.NC("snippetFinalTabstopHighlightBorder","Highlight border color of the final tabstop of a snippet.")),new s.Il(new s.VS(155,185,85,.2))),fe=new s.Il(new s.VS(255,0,0,.2)),pe=m("diffEditor.insertedTextBackground",{dark:"#9ccc2c33",light:"#9ccc2c40",hcDark:null,hcLight:null},L.NC("diffEditorInserted","Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),_e=m("diffEditor.removedTextBackground",{dark:"#ff000033",light:"#ff000033",hcDark:null,hcLight:null},L.NC("diffEditorRemoved","Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),ve=(m("diffEditor.insertedLineBackground",{dark:me,light:me,hcDark:null,hcLight:null},L.NC("diffEditorInsertedLines","Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),m("diffEditor.removedLineBackground",{dark:fe,light:fe,hcDark:null,hcLight:null},L.NC("diffEditorRemovedLines","Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),m("diffEditorGutter.insertedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("diffEditorInsertedLineGutter","Background color for the margin where lines got inserted.")),m("diffEditorGutter.removedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("diffEditorRemovedLineGutter","Background color for the margin where lines got removed.")),m("diffEditorOverview.insertedForeground",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("diffEditorOverviewInserted","Diff overview ruler foreground for inserted content."))),be=m("diffEditorOverview.removedForeground",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("diffEditorOverviewRemoved","Diff overview ruler foreground for removed content.")),Ce=(m("diffEditor.insertedTextBorder",{dark:null,light:null,hcDark:"#33ff2eff",hcLight:"#374E06"},L.NC("diffEditorInsertedOutline","Outline color for the text that got inserted.")),m("diffEditor.removedTextBorder",{dark:null,light:null,hcDark:"#FF008F",hcLight:"#AD0707"},L.NC("diffEditorRemovedOutline","Outline color for text that got removed.")),m("diffEditor.border",{dark:null,light:null,hcDark:x,hcLight:x},L.NC("diffEditorBorder","Border color between the two text editors.")),m("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hcDark:null,hcLight:null},L.NC("diffDiagonalFill","Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.")),m("diffEditor.unchangedRegionBackground",{dark:"sideBar.background",light:"sideBar.background",hcDark:"sideBar.background",hcLight:"sideBar.background"},L.NC("diffEditor.unchangedRegionBackground","The background color of unchanged blocks in the diff editor.")),m("diffEditor.unchangedRegionForeground",{dark:"foreground",light:"foreground",hcDark:"foreground",hcLight:"foreground"},L.NC("diffEditor.unchangedRegionForeground","The foreground color of unchanged blocks in the diff editor.")),m("diffEditor.unchangedCodeBackground",{dark:"#74747429",light:"#b8b8b829",hcDark:null,hcLight:null},L.NC("diffEditor.unchangedCodeBackground","The background color of unchanged code in the diff editor.")),m("widget.shadow",{dark:_(s.Il.black,.36),light:_(s.Il.black,.16),hcDark:null,hcLight:null},L.NC("widgetShadow","Shadow color of widgets such as find/replace inside the editor."))),we=m("widget.border",{dark:null,light:null,hcDark:x,hcLight:x},L.NC("widgetBorder","Border color of widgets such as find/replace inside the editor.")),ye=m("toolbar.hoverBackground",{dark:"#5a5d5e50",light:"#b8b8b850",hcDark:null,hcLight:null},L.NC("toolbarHoverBackground","Toolbar background when hovering over actions using the mouse")),Se=(m("toolbar.hoverOutline",{dark:null,light:null,hcDark:E,hcLight:E},L.NC("toolbarHoverOutline","Toolbar outline when hovering over actions using the mouse")),m("toolbar.activeBackground",{dark:p(ye,.1),light:f(ye,.1),hcDark:null,hcLight:null},L.NC("toolbarActiveBackground","Toolbar background when holding the mouse over actions")),m("breadcrumb.foreground",{light:_(k,.8),dark:_(k,.8),hcDark:_(k,.8),hcLight:_(k,.8)},L.NC("breadcrumbsFocusForeground","Color of focused breadcrumb items."))),Le=m("breadcrumb.background",{light:B,dark:B,hcDark:B,hcLight:B},L.NC("breadcrumbsBackground","Background color of breadcrumb items.")),ke=m("breadcrumb.focusForeground",{light:f(k,.2),dark:p(k,.1),hcDark:p(k,.1),hcLight:p(k,.1)},L.NC("breadcrumbsFocusForeground","Color of focused breadcrumb items.")),De=m("breadcrumb.activeSelectionForeground",{light:f(k,.2),dark:p(k,.1),hcDark:p(k,.1),hcLight:p(k,.1)},L.NC("breadcrumbsSelectedForeground","Color of selected breadcrumb items.")),Ne=(m("breadcrumbPicker.background",{light:V,dark:V,hcDark:V,hcLight:V},L.NC("breadcrumbsSelectedBackground","Background color of breadcrumb item picker.")),s.Il.fromHex("#40C8AE").transparent(.5)),xe=s.Il.fromHex("#40A6FF").transparent(.5),Ee=s.Il.fromHex("#606060").transparent(.4),Ie=.4,Te=m("merge.currentHeaderBackground",{dark:Ne,light:Ne,hcDark:null,hcLight:null},L.NC("mergeCurrentHeaderBackground","Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),Me=(m("merge.currentContentBackground",{dark:_(Te,Ie),light:_(Te,Ie),hcDark:_(Te,Ie),hcLight:_(Te,Ie)},L.NC("mergeCurrentContentBackground","Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),m("merge.incomingHeaderBackground",{dark:xe,light:xe,hcDark:null,hcLight:null},L.NC("mergeIncomingHeaderBackground","Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0)),Ae=(m("merge.incomingContentBackground",{dark:_(Me,Ie),light:_(Me,Ie),hcDark:_(Me,Ie),hcLight:_(Me,Ie)},L.NC("mergeIncomingContentBackground","Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),m("merge.commonHeaderBackground",{dark:Ee,light:Ee,hcDark:null,hcLight:null},L.NC("mergeCommonHeaderBackground","Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0)),Re=(m("merge.commonContentBackground",{dark:_(Ae,Ie),light:_(Ae,Ie),hcDark:_(Ae,Ie),hcLight:_(Ae,Ie)},L.NC("mergeCommonContentBackground","Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),m("merge.border",{dark:null,light:null,hcDark:"#C3DF6F",hcLight:"#007ACC"},L.NC("mergeBorder","Border color on headers and the splitter in inline merge-conflicts."))),Oe=(m("editorOverviewRuler.currentContentForeground",{dark:_(Te,1),light:_(Te,1),hcDark:Re,hcLight:Re},L.NC("overviewRulerCurrentContentForeground","Current overview ruler foreground for inline merge-conflicts.")),m("editorOverviewRuler.incomingContentForeground",{dark:_(Me,1),light:_(Me,1),hcDark:Re,hcLight:Re},L.NC("overviewRulerIncomingContentForeground","Incoming overview ruler foreground for inline merge-conflicts.")),m("editorOverviewRuler.commonContentForeground",{dark:_(Ae,1),light:_(Ae,1),hcDark:Re,hcLight:Re},L.NC("overviewRulerCommonContentForeground","Common ancestor overview ruler foreground for inline merge-conflicts.")),m("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hcDark:"#AB5A00",hcLight:""},L.NC("overviewRulerFindMatchForeground","Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations."),!0)),Pe=m("editorOverviewRuler.selectionHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},L.NC("overviewRulerSelectionHighlightForeground","Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."),!0),Fe=m("problemsErrorIcon.foreground",{dark:K,light:K,hcDark:K,hcLight:K},L.NC("problemsErrorIconForeground","The color used for the problems error icon.")),Be=m("problemsWarningIcon.foreground",{dark:q,light:q,hcDark:q,hcLight:q},L.NC("problemsWarningIconForeground","The color used for the problems warning icon.")),ze=m("problemsInfoIcon.foreground",{dark:Q,light:Q,hcDark:Q,hcLight:Q},L.NC("problemsInfoIconForeground","The color used for the problems info icon.")),Ve=m("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hcDark:"#AB5A00",hcLight:"#0F4A85"},L.NC("minimapFindMatchHighlight","Minimap marker color for find matches."),!0),We=m("minimap.selectionOccurrenceHighlight",{light:"#c9c9c9",dark:"#676767",hcDark:"#ffffff",hcLight:"#0F4A85"},L.NC("minimapSelectionOccurrenceHighlight","Minimap marker color for repeating editor selections."),!0),He=m("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hcDark:"#ffffff",hcLight:"#0F4A85"},L.NC("minimapSelectionHighlight","Minimap marker color for the editor selection."),!0),Ke=m("minimap.infoHighlight",{dark:Q,light:Q,hcDark:Z,hcLight:Z},L.NC("minimapInfo","Minimap marker color for infos.")),Ue=m("minimap.warningHighlight",{dark:q,light:q,hcDark:G,hcLight:G},L.NC("overviewRuleWarning","Minimap marker color for warnings.")),je=m("minimap.errorHighlight",{dark:new s.Il(new s.VS(255,18,18,.7)),light:new s.Il(new s.VS(255,18,18,.7)),hcDark:new s.Il(new s.VS(255,50,50,1)),hcLight:"#B5200D"},L.NC("minimapError","Minimap marker color for errors.")),qe=m("minimap.background",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("minimapBackground","Minimap background color.")),Ge=m("minimap.foregroundOpacity",{dark:s.Il.fromHex("#000f"),light:s.Il.fromHex("#000f"),hcDark:s.Il.fromHex("#000f"),hcLight:s.Il.fromHex("#000f")},L.NC("minimapForegroundOpacity",'Opacity of foreground elements rendered in the minimap. For example, "#000000c0" will render the elements with 75% opacity.')),Qe=(m("minimapSlider.background",{light:_(R,.5),dark:_(R,.5),hcDark:_(R,.5),hcLight:_(R,.5)},L.NC("minimapSliderBackground","Minimap slider background color.")),m("minimapSlider.hoverBackground",{light:_(O,.5),dark:_(O,.5),hcDark:_(O,.5),hcLight:_(O,.5)},L.NC("minimapSliderHoverBackground","Minimap slider background color when hovering.")),m("minimapSlider.activeBackground",{light:_(P,.5),dark:_(P,.5),hcDark:_(P,.5),hcLight:_(P,.5)},L.NC("minimapSliderActiveBackground","Minimap slider background color when clicked on.")),m("charts.foreground",{dark:k,light:k,hcDark:k,hcLight:k},L.NC("chartsForeground","The foreground color used in charts.")),m("charts.lines",{dark:_(k,.5),light:_(k,.5),hcDark:_(k,.5),hcLight:_(k,.5)},L.NC("chartsLines","The color used for horizontal lines in charts.")),m("charts.red",{dark:K,light:K,hcDark:K,hcLight:K},L.NC("chartsRed","The red color used in chart visualizations.")),m("charts.blue",{dark:Q,light:Q,hcDark:Q,hcLight:Q},L.NC("chartsBlue","The blue color used in chart visualizations.")),m("charts.yellow",{dark:q,light:q,hcDark:q,hcLight:q},L.NC("chartsYellow","The yellow color used in chart visualizations.")),m("charts.orange",{dark:Ve,light:Ve,hcDark:Ve,hcLight:Ve},L.NC("chartsOrange","The orange color used in chart visualizations.")),m("charts.green",{dark:"#89D185",light:"#388A34",hcDark:"#89D185",hcLight:"#374e06"},L.NC("chartsGreen","The green color used in chart visualizations.")),m("charts.purple",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},L.NC("chartsPurple","The purple color used in chart visualizations.")),m("input.background",{dark:"#3C3C3C",light:s.Il.white,hcDark:s.Il.black,hcLight:s.Il.white},L.NC("inputBoxBackground","Input box background."))),Ze=m("input.foreground",{dark:k,light:k,hcDark:k,hcLight:k},L.NC("inputBoxForeground","Input box foreground.")),Ye=m("input.border",{dark:null,light:null,hcDark:x,hcLight:x},L.NC("inputBoxBorder","Input box border.")),$e=m("inputOption.activeBorder",{dark:"#007ACC",light:"#007ACC",hcDark:x,hcLight:x},L.NC("inputBoxActiveOptionBorder","Border color of activated options in input fields.")),Je=(m("inputOption.hoverBackground",{dark:"#5a5d5e80",light:"#b8b8b850",hcDark:null,hcLight:null},L.NC("inputOption.hoverBackground","Background color of activated options in input fields.")),m("inputOption.activeBackground",{dark:_(N,.4),light:_(N,.2),hcDark:s.Il.transparent,hcLight:s.Il.transparent},L.NC("inputOption.activeBackground","Background hover color of options in input fields."))),Xe=m("inputOption.activeForeground",{dark:s.Il.white,light:s.Il.black,hcDark:k,hcLight:k},L.NC("inputOption.activeForeground","Foreground color of activated options in input fields.")),et=(m("input.placeholderForeground",{light:_(k,.5),dark:_(k,.5),hcDark:_(k,.7),hcLight:_(k,.7)},L.NC("inputPlaceholderForeground","Input box foreground color for placeholder text.")),m("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hcDark:s.Il.black,hcLight:s.Il.white},L.NC("inputValidationInfoBackground","Input validation background color for information severity."))),tt=m("inputValidation.infoForeground",{dark:null,light:null,hcDark:null,hcLight:k},L.NC("inputValidationInfoForeground","Input validation foreground color for information severity.")),it=m("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hcDark:x,hcLight:x},L.NC("inputValidationInfoBorder","Input validation border color for information severity.")),nt=m("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hcDark:s.Il.black,hcLight:s.Il.white},L.NC("inputValidationWarningBackground","Input validation background color for warning severity.")),ot=m("inputValidation.warningForeground",{dark:null,light:null,hcDark:null,hcLight:k},L.NC("inputValidationWarningForeground","Input validation foreground color for warning severity.")),st=m("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hcDark:x,hcLight:x},L.NC("inputValidationWarningBorder","Input validation border color for warning severity.")),rt=m("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hcDark:s.Il.black,hcLight:s.Il.white},L.NC("inputValidationErrorBackground","Input validation background color for error severity.")),at=m("inputValidation.errorForeground",{dark:null,light:null,hcDark:null,hcLight:k},L.NC("inputValidationErrorForeground","Input validation foreground color for error severity.")),lt=m("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hcDark:x,hcLight:x},L.NC("inputValidationErrorBorder","Input validation border color for error severity.")),ht=m("dropdown.background",{dark:"#3C3C3C",light:s.Il.white,hcDark:s.Il.black,hcLight:s.Il.white},L.NC("dropdownBackground","Dropdown background.")),dt=m("dropdown.listBackground",{dark:null,light:null,hcDark:s.Il.black,hcLight:s.Il.white},L.NC("dropdownListBackground","Dropdown list background.")),ct=m("dropdown.foreground",{dark:"#F0F0F0",light:k,hcDark:s.Il.white,hcLight:k},L.NC("dropdownForeground","Dropdown foreground.")),ut=m("dropdown.border",{dark:ht,light:"#CECECE",hcDark:x,hcLight:x},L.NC("dropdownBorder","Dropdown border.")),gt=m("button.foreground",{dark:s.Il.white,light:s.Il.white,hcDark:s.Il.white,hcLight:s.Il.white},L.NC("buttonForeground","Button foreground color.")),mt=m("button.separator",{dark:_(gt,.4),light:_(gt,.4),hcDark:_(gt,.4),hcLight:_(gt,.4)},L.NC("buttonSeparator","Button separator color.")),ft=m("button.background",{dark:"#0E639C",light:"#007ACC",hcDark:null,hcLight:"#0F4A85"},L.NC("buttonBackground","Button background color.")),pt=m("button.hoverBackground",{dark:p(ft,.2),light:f(ft,.2),hcDark:ft,hcLight:ft},L.NC("buttonHoverBackground","Button background color when hovering.")),_t=m("button.border",{dark:x,light:x,hcDark:x,hcLight:x},L.NC("buttonBorder","Button border color.")),vt=m("button.secondaryForeground",{dark:s.Il.white,light:s.Il.white,hcDark:s.Il.white,hcLight:k},L.NC("buttonSecondaryForeground","Secondary button foreground color.")),bt=m("button.secondaryBackground",{dark:"#3A3D41",light:"#5F6A79",hcDark:null,hcLight:s.Il.white},L.NC("buttonSecondaryBackground","Secondary button background color.")),Ct=m("button.secondaryHoverBackground",{dark:p(bt,.2),light:f(bt,.2),hcDark:null,hcLight:null},L.NC("buttonSecondaryHoverBackground","Secondary button background color when hovering.")),wt=m("checkbox.background",{dark:ht,light:ht,hcDark:ht,hcLight:ht},L.NC("checkbox.background","Background color of checkbox widget.")),yt=(m("checkbox.selectBackground",{dark:V,light:V,hcDark:V,hcLight:V},L.NC("checkbox.select.background","Background color of checkbox widget when the element it's in is selected.")),m("checkbox.foreground",{dark:ct,light:ct,hcDark:ct,hcLight:ct},L.NC("checkbox.foreground","Foreground color of checkbox widget."))),St=m("checkbox.border",{dark:ut,light:ut,hcDark:ut,hcLight:ut},L.NC("checkbox.border","Border color of checkbox widget.")),Lt=(m("checkbox.selectBorder",{dark:D,light:D,hcDark:D,hcLight:D},L.NC("checkbox.select.border","Border color of checkbox widget when the element it's in is selected.")),m("keybindingLabel.background",{dark:new s.Il(new s.VS(128,128,128,.17)),light:new s.Il(new s.VS(221,221,221,.4)),hcDark:s.Il.transparent,hcLight:s.Il.transparent},L.NC("keybindingLabelBackground","Keybinding label background color. The keybinding label is used to represent a keyboard shortcut."))),kt=m("keybindingLabel.foreground",{dark:s.Il.fromHex("#CCCCCC"),light:s.Il.fromHex("#555555"),hcDark:s.Il.white,hcLight:k},L.NC("keybindingLabelForeground","Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.")),Dt=m("keybindingLabel.border",{dark:new s.Il(new s.VS(51,51,51,.6)),light:new s.Il(new s.VS(204,204,204,.4)),hcDark:new s.Il(new s.VS(111,195,223)),hcLight:x},L.NC("keybindingLabelBorder","Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.")),Nt=m("keybindingLabel.bottomBorder",{dark:new s.Il(new s.VS(68,68,68,.6)),light:new s.Il(new s.VS(187,187,187,.4)),hcDark:new s.Il(new s.VS(111,195,223)),hcLight:k},L.NC("keybindingLabelBottomBorder","Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.")),xt=m("list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("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.")),Et=m("list.focusForeground",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("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.")),It=m("list.focusOutline",{dark:N,light:N,hcDark:E,hcLight:E},L.NC("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=m("list.focusAndSelectionOutline",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("listFocusAndSelectionOutline","List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.")),Mt=m("list.activeSelectionBackground",{dark:"#04395E",light:"#0060C0",hcDark:null,hcLight:s.Il.fromHex("#0F4A85").transparent(.1)},L.NC("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.")),At=m("list.activeSelectionForeground",{dark:s.Il.white,light:s.Il.white,hcDark:null,hcLight:null},L.NC("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.")),Rt=m("list.activeSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("listActiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),Ot=m("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hcDark:null,hcLight:s.Il.fromHex("#0F4A85").transparent(.1)},L.NC("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.")),Pt=m("list.inactiveSelectionForeground",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("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.")),Ft=m("list.inactiveSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("listInactiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),Bt=m("list.inactiveFocusBackground",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("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.")),zt=m("list.inactiveFocusOutline",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("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.")),Vt=m("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:s.Il.white.transparent(.1),hcLight:s.Il.fromHex("#0F4A85").transparent(.1)},L.NC("listHoverBackground","List/Tree background when hovering over items using the mouse.")),Wt=m("list.hoverForeground",{dark:null,light:null,hcDark:null,hcLight:null},L.NC("listHoverForeground","List/Tree foreground when hovering over items using the mouse.")),Ht=m("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hcDark:null,hcLight:null},L.NC("listDropBackground","List/Tree drag and drop background when moving items over other items when using the mouse.")),Kt=m("list.dropBetweenBackground",{dark:D,light:D,hcDark:null,hcLight:null},L.NC("listDropBetweenBackground","List/Tree drag and drop border color when moving items between items when using the mouse.")),Ut=m("list.highlightForeground",{dark:"#2AAAFF",light:"#0066BF",hcDark:N,hcLight:N},L.NC("highlight","List/Tree foreground color of the match highlights when searching inside the list/tree.")),jt=m("list.focusHighlightForeground",{dark:Ut,light:(qt=Mt,Gt=Ut,Qt="#BBE7FF",{op:6,if:qt,then:Gt,else:Qt}),hcDark:Ut,hcLight:Ut},L.NC("listFocusHighlightForeground","List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree."));var qt,Gt,Qt;m("list.invalidItemForeground",{dark:"#B89500",light:"#B89500",hcDark:"#B89500",hcLight:"#B5200D"},L.NC("invalidItemForeground","List/Tree foreground color for invalid items, for example an unresolved root in explorer.")),m("list.errorForeground",{dark:"#F88070",light:"#B01011",hcDark:null,hcLight:null},L.NC("listErrorForeground","Foreground color of list items containing errors.")),m("list.warningForeground",{dark:"#CCA700",light:"#855F00",hcDark:null,hcLight:null},L.NC("listWarningForeground","Foreground color of list items containing warnings."));const Zt=m("listFilterWidget.background",{light:f(V,0),dark:p(V,0),hcDark:V,hcLight:V},L.NC("listFilterWidgetBackground","Background color of the type filter widget in lists and trees.")),Yt=m("listFilterWidget.outline",{dark:s.Il.transparent,light:s.Il.transparent,hcDark:"#f38518",hcLight:"#007ACC"},L.NC("listFilterWidgetOutline","Outline color of the type filter widget in lists and trees.")),$t=m("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hcDark:x,hcLight:x},L.NC("listFilterWidgetNoMatchesOutline","Outline color of the type filter widget in lists and trees, when there are no matches.")),Jt=m("listFilterWidget.shadow",{dark:Ce,light:Ce,hcDark:Ce,hcLight:Ce},L.NC("listFilterWidgetShadow","Shadow color of the type filter widget in lists and trees.")),Xt=(m("list.filterMatchBackground",{dark:ie,light:ie,hcDark:null,hcLight:null},L.NC("listFilterMatchHighlight","Background color of the filtered match.")),m("list.filterMatchBorder",{dark:ne,light:ne,hcDark:x,hcLight:E},L.NC("listFilterMatchHighlightBorder","Border color of the filtered match.")),m("list.deemphasizedForeground",{dark:"#8C8C8C",light:"#8E8E90",hcDark:"#A7A8A9",hcLight:"#666666"},L.NC("listDeemphasizedForeground","List/Tree foreground color for items that are deemphasized.")),m("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hcDark:"#a9a9a9",hcLight:"#a5a5a5"},L.NC("treeIndentGuidesStroke","Tree stroke color for the indentation guides."))),ei=m("tree.inactiveIndentGuidesStroke",{dark:_(Xt,.4),light:_(Xt,.4),hcDark:_(Xt,.4),hcLight:_(Xt,.4)},L.NC("treeInactiveIndentGuidesStroke","Tree stroke color for the indentation guides that are not active.")),ti=m("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hcDark:null,hcLight:null},L.NC("tableColumnsBorder","Table border color between columns.")),ii=m("tree.tableOddRowsBackground",{dark:_(k,.04),light:_(k,.04),hcDark:null,hcLight:null},L.NC("tableOddRowsBackgroundColor","Background color for odd table rows.")),ni=m("menu.border",{dark:null,light:null,hcDark:x,hcLight:x},L.NC("menuBorder","Border color of menus.")),oi=m("menu.foreground",{dark:ct,light:ct,hcDark:ct,hcLight:ct},L.NC("menuForeground","Foreground color of menu items.")),si=m("menu.background",{dark:ht,light:ht,hcDark:ht,hcLight:ht},L.NC("menuBackground","Background color of menu items.")),ri=m("menu.selectionForeground",{dark:At,light:At,hcDark:At,hcLight:At},L.NC("menuSelectionForeground","Foreground color of the selected menu item in menus.")),ai=m("menu.selectionBackground",{dark:Mt,light:Mt,hcDark:Mt,hcLight:Mt},L.NC("menuSelectionBackground","Background color of the selected menu item in menus.")),li=m("menu.selectionBorder",{dark:null,light:null,hcDark:E,hcLight:E},L.NC("menuSelectionBorder","Border color of the selected menu item in menus.")),hi=m("menu.separatorBackground",{dark:"#606060",light:"#D4D4D4",hcDark:x,hcLight:x},L.NC("menuSeparatorBackground","Color of a separator menu item in menus.")),di=m("quickInput.background",{dark:V,light:V,hcDark:V,hcLight:V},L.NC("pickerBackground","Quick picker background color. The quick picker widget is the container for pickers like the command palette.")),ci=m("quickInput.foreground",{dark:W,light:W,hcDark:W,hcLight:W},L.NC("pickerForeground","Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.")),ui=m("quickInputTitle.background",{dark:new s.Il(new s.VS(255,255,255,.105)),light:new s.Il(new s.VS(0,0,0,.06)),hcDark:"#000000",hcLight:s.Il.white},L.NC("pickerTitleBackground","Quick picker title background color. The quick picker widget is the container for pickers like the command palette.")),gi=m("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hcDark:s.Il.white,hcLight:"#0F4A85"},L.NC("pickerGroupForeground","Quick picker color for grouping labels.")),mi=m("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hcDark:s.Il.white,hcLight:"#0F4A85"},L.NC("pickerGroupBorder","Quick picker color for grouping borders.")),fi=m("quickInput.list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},"",void 0,L.NC("quickInput.list.focusBackground deprecation","Please use quickInputList.focusBackground instead")),pi=m("quickInputList.focusForeground",{dark:At,light:At,hcDark:At,hcLight:At},L.NC("quickInput.listFocusForeground","Quick picker foreground color for the focused item.")),_i=m("quickInputList.focusIconForeground",{dark:Rt,light:Rt,hcDark:Rt,hcLight:Rt},L.NC("quickInput.listFocusIconForeground","Quick picker icon foreground color for the focused item.")),vi=m("quickInputList.focusBackground",{dark:v(fi,Mt),light:v(fi,Mt),hcDark:null,hcLight:null},L.NC("quickInput.listFocusBackground","Quick picker background color for the focused item."));m("search.resultsInfoForeground",{light:k,dark:_(k,.65),hcDark:k,hcLight:k},L.NC("search.resultsInfoForeground","Color of the text in the search viewlet's completion message.")),m("searchEditor.findMatchBackground",{light:_(ie,.66),dark:_(ie,.66),hcDark:ie,hcLight:ie},L.NC("searchEditor.queryMatch","Color of the Search Editor query matches.")),m("searchEditor.findMatchBorder",{light:_(ne,.66),dark:_(ne,.66),hcDark:ne,hcLight:ne},L.NC("searchEditor.editorFindMatchBorder","Border color of the Search Editor query matches."))},38261:(e,t,i)=>{i.d(t,{Ks:()=>_,q5:()=>p,s_:()=>w});var n=i(60282),o=i(62974),s=i(68406),r=i(62502),a=i(24219),l=i(63686),h=i(82682),d=i(71721),c=i(72677),u=i(70311);var g,m;!function(e){e.getDefinition=function(e,t){let i=e.defaults;for(;r.k.isThemeIcon(i);){const e=f.getIcon(i.id);if(!e)return;i=e.defaults}return i}}(g||(g={})),function(e){e.toJSONObject=function(e){return{weight:e.weight,style:e.style,src:e.src.map((e=>({format:e.format,location:e.location.toString()})))}},e.fromJSONObject=function(e){const t=e=>(0,l.HD)(e)?e:void 0;if(e&&Array.isArray(e.src)&&e.src.every((e=>(0,l.HD)(e.format)&&(0,l.HD)(e.location))))return{weight:t(e.weight),style:t(e.style),src:e.src.map((e=>({format:e.format,location:h.o.parse(e.location)})))}}}(m||(m={}));const f=new class{constructor(){this._onDidChange=new a.Q5,this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:(0,d.NC)("iconDefinition.fontId","The id of the font to use. If not set, the font that is defined first is used.")},fontCharacter:{type:"string",description:(0,d.NC)("iconDefinition.fontCharacter","The font character associated with the icon definition.")}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}},this.iconReferenceSchema={type:"string",pattern:"^".concat(r.k.iconNameExpression,"$"),enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}registerIcon(e,t,i,n){const o=this.iconsById[e];if(o){if(i&&!o.description){o.description=i,this.iconSchema.properties[e].markdownDescription="".concat(i," $(").concat(e,")");const t=this.iconReferenceSchema.enum.indexOf(e);-1!==t&&(this.iconReferenceSchema.enumDescriptions[t]=i),this._onDidChange.fire()}return o}const s={id:e,description:i,defaults:t,deprecationMessage:n};this.iconsById[e]=s;const r={$ref:"#/definitions/icons"};return n&&(r.deprecationMessage=n),i&&(r.markdownDescription="".concat(i,": $(").concat(e,")")),this.iconSchema.properties[e]=r,this.iconReferenceSchema.enum.push(e),this.iconReferenceSchema.enumDescriptions.push(i||""),this._onDidChange.fire(),{id:e}}getIcons(){return Object.keys(this.iconsById).map((e=>this.iconsById[e]))}getIcon(e){return this.iconsById[e]}getIconSchema(){return this.iconSchema}toString(){const e=(e,t)=>e.id.localeCompare(t.id),t=e=>{for(;r.k.isThemeIcon(e.defaults);)e=this.iconsById[e.defaults.id];return"codicon codicon-".concat(e?e.id:"")},i=[];i.push("| preview | identifier | default codicon ID | description"),i.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");const n=Object.keys(this.iconsById).map((e=>this.iconsById[e]));for(const o of n.filter((e=>!!e.description)).sort(e))i.push('||').concat(o.id,"|").concat(r.k.isThemeIcon(o.defaults)?o.defaults.id:o.id,"|").concat(o.description||"","|"));i.push("| preview | identifier "),i.push("| ----------- | --------------------------------- |");for(const o of n.filter((e=>!r.k.isThemeIcon(e.defaults))).sort(e))i.push('||').concat(o.id,"|"));return i.join("\n")}};function p(e,t,i,n){return f.registerIcon(e,t,i,n)}function _(){return f}u.B.add("base.contributions.icons",f),function(){const e=(0,s.u)();for(const t in e){const i="\\"+e[t].toString(16);f.registerIcon(t,{fontCharacter:i})}}();const v="vscode://schemas/icons",b=u.B.as(c.I.JSONContribution);b.registerSchema(v,f.getIconSchema());const C=new n.pY((()=>b.notifySchemaChanged(v)),200);f.onDidChange((()=>{C.isScheduled()||C.schedule()}));const w=p("widget-close",o.l.close,(0,d.NC)("widgetClose","Icon for the close action in widgets."));p("goto-previous-location",o.l.arrowUp,(0,d.NC)("previousChangeIcon","Icon for goto previous editor location.")),p("goto-next-location",o.l.arrowDown,(0,d.NC)("nextChangeIcon","Icon for goto next editor location.")),r.k.modify(o.l.sync,"spin"),r.k.modify(o.l.loading,"spin")},75826:(e,t,i)=>{var n;function o(e){return e===n.HIGH_CONTRAST_DARK||e===n.HIGH_CONTRAST_LIGHT}function s(e){return e===n.DARK||e===n.HIGH_CONTRAST_DARK}i.d(t,{_T:()=>s,c3:()=>o,eL:()=>n}),function(e){e.DARK="dark",e.LIGHT="light",e.HIGH_CONTRAST_DARK="hcDark",e.HIGH_CONTRAST_LIGHT="hcLight"}(n||(n={}))},17903:(e,t,i)=>{i.d(t,{EN:()=>h,IP:()=>c,Ic:()=>g,XE:()=>l,bB:()=>m,m6:()=>d});var n=i(24219),o=i(89599),s=i(34304),r=i(70311),a=i(75826);const l=(0,s.yh)("themeService");function h(e){return{id:e}}function d(e){switch(e){case a.eL.DARK:return"vs-dark";case a.eL.HIGH_CONTRAST_DARK:return"hc-black";case a.eL.HIGH_CONTRAST_LIGHT:return"hc-light";default:return"vs"}}const c={ThemingContribution:"base.contributions.theming"};const u=new class{constructor(){this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new n.Q5}onColorThemeChange(e){return this.themingParticipants.push(e),this.onThemingParticipantAddedEmitter.fire(e),(0,o.OF)((()=>{const t=this.themingParticipants.indexOf(e);this.themingParticipants.splice(t,1)}))}getThemingParticipants(){return this.themingParticipants}};function g(e){return u.onColorThemeChange(e)}r.B.add(c.ThemingContribution,u);class m extends o.JT{constructor(e){super(),this.themeService=e,this.theme=e.getColorTheme(),this._register(this.themeService.onDidColorThemeChange((e=>this.onThemeChange(e))))}onThemeChange(e){this.theme=e,this.updateStyles()}updateStyles(){}}},96484:(e,t,i)=>{i.d(t,{Xt:()=>s,YO:()=>o,gJ:()=>r,tJ:()=>n});const n=(0,i(34304).yh)("undoRedoService");class o{constructor(e,t){this.resource=e,this.elements=t}}class s{constructor(){this.id=s._ID++,this.order=1}nextOrder(){return 0===this.id?0:this.order++}}s._ID=0,s.None=new s;class r{constructor(){this.id=r._ID++,this.order=1}nextOrder(){return 0===this.id?0:this.order++}}r._ID=0,r.None=new r},73449:(e,t,i)=>{i.d(t,{A6:()=>g,c$:()=>l,eb:()=>a,ec:()=>r,md:()=>u,p$:()=>m,uT:()=>c,x:()=>f});var n=i(71721),o=i(51169),s=(i(737),i(82682));const r=(0,i(34304).yh)("contextService");function a(e){const t=e;return"string"===typeof(null===t||void 0===t?void 0:t.id)&&s.o.isUri(t.uri)}function l(e){return"string"===typeof(null===e||void 0===e?void 0:e.id)&&!a(e)&&!function(e){const t=e;return"string"===typeof(null===t||void 0===t?void 0:t.id)&&s.o.isUri(t.configPath)}(e)}const h={id:"ext-dev"},d={id:"empty-window"};function c(e,t){if("string"===typeof e||"undefined"===typeof e)return"string"===typeof e?{id:(0,o.EZ)(e)}:t?h:d;const i=e;return i.configuration?{id:i.id,configPath:i.configuration}:1===i.folders.length?{id:i.id,uri:i.folders[0].uri}:{id:i.id}}class u{constructor(e,t){this.raw=t,this.uri=e.uri,this.index=e.index,this.name=e.name}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}}const g="code-workspace",m=((0,n.NC)("codeWorkspace","Code Workspace"),"4064f6ec-cb38-4ad0-af64-ee6467e63c82");function f(e){return e.id===m}},20790:(e,t,i)=>{i.d(t,{Y:()=>n});const n=(0,i(34304).yh)("workspaceTrustManagementService")},11316:()=>{},35542:()=>{},71619:()=>{}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/1551.2e8e3e50.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/1551.2e8e3e50.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..4ed2c3c0eb4c --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/1551.2e8e3e50.chunk.js.LICENSE.txt @@ -0,0 +1 @@ +/*! @license DOMPurify 3.0.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.5/LICENSE */ diff --git a/ydb/core/viewer/monitoring/static/js/1593.571b4393.chunk.js b/ydb/core/viewer/monitoring/static/js/1593.571b4393.chunk.js deleted file mode 100644 index 5f89538ffe10..000000000000 --- a/ydb/core/viewer/monitoring/static/js/1593.571b4393.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[1593],{21593:function(e,t,r){r.r(t),r.d(t,{ReactComponent:function(){return E}});var C,n,a,o,i,l,s,d,c,p,H,u,k,V=r(4519),f=["title","titleId"];function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(C=0;C=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Z(e,t){var r=e.title,Z=e.titleId,E=M(e,f);return V.createElement("svg",h({width:260,height:260,viewBox:"0 0 520 520",fill:"none",xmlns:"http://www.w3.org/2000/svg",ref:t,"aria-labelledby":Z},E),r?V.createElement("title",{id:Z},r):null,C||(C=V.createElement("path",{opacity:.1,d:"M228.637 445C217.178 445.049 206.065 441.074 197.233 433.768L28.4227 288.499C24.7711 285.319 22.4943 280.846 22.0715 276.02C21.6487 271.195 23.1128 266.393 26.1557 262.626L65.3512 214.612C66.9235 212.684 68.8667 211.091 71.0657 209.927C73.2646 208.764 75.6745 208.055 78.1525 207.841C80.6305 207.627 83.1263 207.913 85.4917 208.682C87.8572 209.452 90.0443 210.688 91.9234 212.319L223.682 326.793L435.516 94.088C438.811 90.4596 443.405 88.2807 448.298 88.0253C453.191 87.7699 457.987 89.4587 461.642 92.7243L507.824 134.205C509.647 135.841 511.129 137.821 512.184 140.032C513.24 142.243 513.849 144.64 513.975 147.087C514.102 149.534 513.744 151.982 512.922 154.29C512.101 156.598 510.831 158.721 509.187 160.536L265.553 428.549C260.881 433.709 255.185 437.838 248.829 440.671C242.472 443.503 235.595 444.978 228.637 445Z",fill:"#509CF5"})),n||(n=V.createElement("path",{d:"M412.933 102.332H294.933C289.433 102.332 284.933 106.832 284.933 112.332V315.432C284.933 320.932 289.433 325.432 294.933 325.432H446.433C451.933 325.432 456.433 320.932 456.433 315.432V133.732L429.933 107.332",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4.01 10.02"})),a||(a=V.createElement("path",{d:"M425.033 102.332V104.332",stroke:"#00E6C5",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round"})),o||(o=V.createElement("path",{d:"M425.033 115.031V126.331C425.033 130.431 428.333 133.731 432.433 133.731H449.033",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4.27 10.68"})),i||(i=V.createElement("path",{d:"M454.333 133.73H456.333",stroke:"#00E6C5",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round"})),l||(l=V.createElement("path",{d:"M77 397.052L89.1 409L110 388",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4.84211,strokeLinecap:"round",strokeLinejoin:"round"})),s||(s=V.createElement("path",{d:"M125 398C125 416.775 109.775 432 91 432C72.2252 432 57 416.775 57 398C57 379.225 72.2252 364 91 364C109.775 364 125 379.225 125 398Z",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4.84211,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4.84 12.11"})),d||(d=V.createElement("path",{d:"M147.5 119C147.5 117.895 146.605 117 145.5 117C144.395 117 143.5 117.895 143.5 119H147.5ZM143.5 129.8C143.5 130.905 144.395 131.8 145.5 131.8C146.605 131.8 147.5 130.905 147.5 129.8H143.5ZM147.5 152.5C147.5 151.395 146.605 150.5 145.5 150.5C144.395 150.5 143.5 151.395 143.5 152.5H147.5ZM143.5 164.2C143.5 165.305 144.395 166.2 145.5 166.2C146.605 166.2 147.5 165.305 147.5 164.2H143.5ZM168.1 143.602C169.205 143.602 170.1 142.706 170.1 141.602C170.1 140.497 169.205 139.602 168.1 139.602V143.602ZM157.2 139.602C156.096 139.602 155.2 140.497 155.2 141.602C155.2 142.706 156.096 143.602 157.2 143.602V139.602ZM133.7 143.602C134.805 143.602 135.7 142.706 135.7 141.602C135.7 140.497 134.805 139.602 133.7 139.602V143.602ZM122.9 139.602C121.795 139.602 120.9 140.497 120.9 141.602C120.9 142.706 121.795 143.602 122.9 143.602V139.602ZM143.5 119V129.8H147.5V119H143.5ZM143.5 152.5V164.2H147.5V152.5H143.5ZM168.1 139.602H157.2V143.602H168.1V139.602ZM133.7 139.602H122.9V143.602H133.7V139.602Z",fill:"#2EE5C0",fillOpacity:.8})),c||(c=V.createElement("path",{d:"M406.3 397.5C406.3 396.395 405.405 395.5 404.3 395.5C403.195 395.5 402.3 396.395 402.3 397.5H406.3ZM402.3 403.1C402.3 404.205 403.195 405.1 404.3 405.1C405.405 405.1 406.3 404.205 406.3 403.1H402.3ZM406.3 414.898C406.3 413.794 405.405 412.898 404.3 412.898C403.195 412.898 402.3 413.794 402.3 414.898H406.3ZM402.3 420.998C402.3 422.103 403.195 422.998 404.3 422.998C405.405 422.998 406.3 422.103 406.3 420.998H402.3ZM416.1 411.2C417.205 411.2 418.1 410.305 418.1 409.2C418.1 408.095 417.205 407.2 416.1 407.2V411.2ZM410.4 407.2C409.295 407.2 408.4 408.095 408.4 409.2C408.4 410.305 409.295 411.2 410.4 411.2V407.2ZM398.2 411.2C399.305 411.2 400.2 410.305 400.2 409.2C400.2 408.095 399.305 407.2 398.2 407.2V411.2ZM392.5 407.2C391.395 407.2 390.5 408.095 390.5 409.2C390.5 410.305 391.395 411.2 392.5 411.2V407.2ZM402.3 397.5V403.1H406.3V397.5H402.3ZM402.3 414.898V420.998H406.3V414.898H402.3ZM416.1 407.2H410.4V411.2H416.1V407.2ZM398.2 407.2H392.5V411.2H398.2V407.2Z",fill:"#2EE5C0",fillOpacity:.8})),p||(p=V.createElement("path",{d:"M186 385.667V394.833C186 397.264 185.012 399.596 183.254 401.315C181.496 403.034 179.111 404 176.625 404H121C115.477 404 111 399.523 111 394V249C111 243.477 115.477 239 121 239H176.625C179.111 239 181.496 239.966 183.254 241.685C185.012 243.404 186 245.736 186 248.167V385.667Z",fill:"#0067C1"})),H||(H=V.createElement("path",{d:"M177.143 375.273V384.637C177.143 387.12 176.153 389.501 174.392 391.257C172.63 393.013 170.241 394 167.75 394H112C106.477 394 102 389.522 102 384V235.465C102 229.942 106.477 225.465 112 225.465H167.75C170.241 225.465 172.63 226.451 174.392 228.207C176.153 229.963 177.143 232.345 177.143 234.828V375.273Z",fill:"#007CE9"})),u||(u=V.createElement("path",{d:"M292.385 235.185C291.545 236.543 292.529 238.321 294.126 238.321H375.327C379.067 238.242 382.784 238.917 386.255 240.305C389.726 241.693 392.879 243.765 395.524 246.398C398.169 249.031 400.252 252.169 401.646 255.623C403.041 259.078 403.718 262.778 403.639 266.5C403.639 294.679 394.201 398 356.452 398H242.081C230.712 398 219.806 393.497 211.748 385.477L206.04 379.797C205.665 379.424 205.158 379.214 204.629 379.214H191.299H179.143C178.038 379.214 177.143 378.319 177.143 377.214V239.495C177.143 238.847 177.668 238.321 178.317 238.321C195.697 238.321 212.371 231.438 224.69 219.177L233.949 209.961C240.092 203.848 245.391 196.942 249.705 189.426L267.012 159.283C275.636 144.262 293.887 133.185 306.212 145.354C312.929 151.987 316.741 160.994 316.815 170.411C316.815 171.538 316.721 172.665 316.626 173.886C314.302 197.951 298.104 225.943 292.385 235.185Z",fill:"#FFCC00"})),k||(k=V.createElement("path",{d:"M356.457 369.801H237.651C229.12 369.801 220.937 366.421 214.893 360.401C208.849 354.381 200.666 351.001 192.135 351.001H177.143V379.2H192.135C200.666 379.2 208.849 382.58 214.893 388.6C220.937 394.62 229.12 398 237.651 398H356.457C394.207 398 403.645 294.601 403.645 266.402C403.645 263.723 403.328 261.054 402.701 258.449C399.568 298.831 387.743 369.801 356.457 369.801Z",fill:"#DEB700"})))}var E=V.forwardRef(Z);t.default=r.p+"static/media/thumbsUp.d4a03fbaa64ce85a0045bf8ba77f8e2b.svg"}}]); -//# sourceMappingURL=1593.571b4393.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/1602.86ed3169.chunk.js b/ydb/core/viewer/monitoring/static/js/1602.86ed3169.chunk.js deleted file mode 100644 index b0f01080a17d..000000000000 --- a/ydb/core/viewer/monitoring/static/js/1602.86ed3169.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[1602],{61602:function(e,n,r){r.r(n),r.d(n,{conf:function(){return t},language:function(){return s}});var t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:["###","###"],lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".coffee",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,keywords:["and","or","is","isnt","not","on","yes","@","no","off","true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","if","else","switch","for","while","do","try","catch","finally","class","extends","super","undefined","then","unless","until","loop","of","by","when"],symbols:/[=>{r.r(t),r.d(t,{conf:()=>n,language:()=>o});var n={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},o={tokenPostfix:".julia",keywords:["begin","while","if","for","try","return","break","continue","function","macro","quote","let","local","global","const","do","struct","module","baremodule","using","import","export","end","else","elseif","catch","finally","mutable","primitive","abstract","type","in","isa","where","new"],types:["LinRange","LineNumberNode","LinearIndices","LoadError","MIME","Matrix","Method","MethodError","Missing","MissingException","Module","NTuple","NamedTuple","Nothing","Number","OrdinalRange","OutOfMemoryError","OverflowError","Pair","PartialQuickSort","PermutedDimsArray","Pipe","Ptr","QuoteNode","Rational","RawFD","ReadOnlyMemoryError","Real","ReentrantLock","Ref","Regex","RegexMatch","RoundingMode","SegmentationFault","Set","Signed","Some","StackOverflowError","StepRange","StepRangeLen","StridedArray","StridedMatrix","StridedVecOrMat","StridedVector","String","StringIndexError","SubArray","SubString","SubstitutionString","Symbol","SystemError","Task","Text","TextDisplay","Timer","Tuple","Type","TypeError","TypeVar","UInt","UInt128","UInt16","UInt32","UInt64","UInt8","UndefInitializer","AbstractArray","UndefKeywordError","AbstractChannel","UndefRefError","AbstractChar","UndefVarError","AbstractDict","Union","AbstractDisplay","UnionAll","AbstractFloat","UnitRange","AbstractIrrational","Unsigned","AbstractMatrix","AbstractRange","Val","AbstractSet","Vararg","AbstractString","VecElement","AbstractUnitRange","VecOrMat","AbstractVecOrMat","Vector","AbstractVector","VersionNumber","Any","WeakKeyDict","ArgumentError","WeakRef","Array","AssertionError","BigFloat","BigInt","BitArray","BitMatrix","BitSet","BitVector","Bool","BoundsError","CapturedException","CartesianIndex","CartesianIndices","Cchar","Cdouble","Cfloat","Channel","Char","Cint","Cintmax_t","Clong","Clonglong","Cmd","Colon","Complex","ComplexF16","ComplexF32","ComplexF64","CompositeException","Condition","Cptrdiff_t","Cshort","Csize_t","Cssize_t","Cstring","Cuchar","Cuint","Cuintmax_t","Culong","Culonglong","Cushort","Cvoid","Cwchar_t","Cwstring","DataType","DenseArray","DenseMatrix","DenseVecOrMat","DenseVector","Dict","DimensionMismatch","Dims","DivideError","DomainError","EOFError","Enum","ErrorException","Exception","ExponentialBackOff","Expr","Float16","Float32","Float64","Function","GlobalRef","HTML","IO","IOBuffer","IOContext","IOStream","IdDict","IndexCartesian","IndexLinear","IndexStyle","InexactError","InitError","Int","Int128","Int16","Int32","Int64","Int8","Integer","InterruptException","InvalidStateException","Irrational","KeyError"],keywordops:["<:",">:",":","=>","...",".","->","?"],allops:/[^\w\d\s()\[\]{}"'#]+/,constants:["true","false","nothing","missing","undef","Inf","pi","NaN","\u03c0","\u212f","ans","PROGRAM_FILE","ARGS","C_NULL","VERSION","DEPOT_PATH","LOAD_PATH"],operators:["!","!=","!==","%","&","*","+","-","/","//","<","<<","<=","==","===","=>",">",">=",">>",">>>","\\","^","|","|>","~","\xf7","\u2208","\u2209","\u220b","\u220c","\u2218","\u221a","\u221b","\u2229","\u222a","\u2248","\u2249","\u2260","\u2261","\u2262","\u2264","\u2265","\u2286","\u2287","\u2288","\u2289","\u228a","\u228b","\u22bb"],brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],ident:/\u03c0|\u212f|\b(?!\d)\w+\b/,escape:/(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/,tokenizer:{root:[[/(::)\s*|\b(isa)\s+/,"keyword","@typeanno"],[/\b(isa)(\s*\(@ident\s*,\s*)/,["keyword",{token:"",next:"@typeanno"}]],[/\b(type|struct)[ \t]+/,"keyword","@typeanno"],[/^\s*:@ident[!?]?/,"metatag"],[/(return)(\s*:@ident[!?]?)/,["keyword","metatag"]],[/(\(|\[|\{|@allops)(\s*:@ident[!?]?)/,["","metatag"]],[/:\(/,"metatag","@quote"],[/r"""/,"regexp.delim","@tregexp"],[/r"/,"regexp.delim","@sregexp"],[/raw"""/,"string.delim","@rtstring"],[/[bv]?"""/,"string.delim","@dtstring"],[/raw"/,"string.delim","@rsstring"],[/[bv]?"/,"string.delim","@dsstring"],[/(@ident)\{/,{cases:{"$1@types":{token:"type",next:"@gen"},"@default":{token:"type",next:"@gen"}}}],[/@ident[!?'']?(?=\.?\()/,{cases:{"@types":"type","@keywords":"keyword","@constants":"variable","@default":"keyword.flow"}}],[/@ident[!?']?/,{cases:{"@types":"type","@keywords":"keyword","@constants":"variable","@default":"identifier"}}],[/\$\w+/,"key"],[/\$\(/,"key","@paste"],[/@@@ident/,"annotation"],{include:"@whitespace"},[/'(?:@escapes|.)'/,"string.character"],[/[()\[\]{}]/,"@brackets"],[/@allops/,{cases:{"@keywordops":"keyword","@operators":"operator"}}],[/[;,]/,"delimiter"],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,"number.hex"],[/0[_oO][0-7](_?[0-7])*/,"number.octal"],[/0[bB][01](_?[01])*/,"number.binary"],[/[+\-]?\d+(\.\d+)?(im?|[eE][+\-]?\d+(\.\d+)?)?/,"number"]],typeanno:[[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/,"type","@gen"],[/([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(\s*<:\s*)/,["type","keyword"]],[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/,"type","@pop"],["","","@pop"]],gen:[[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/,"type","@push"],[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/,"type"],[/<:/,"keyword"],[/(\})(\s*<:\s*)/,["type",{token:"keyword",next:"@pop"}]],[/\}/,"type","@pop"],{include:"@root"}],quote:[[/\$\(/,"key","@paste"],[/\(/,"@brackets","@paren"],[/\)/,"metatag","@pop"],{include:"@root"}],paste:[[/:\(/,"metatag","@quote"],[/\(/,"@brackets","@paren"],[/\)/,"key","@pop"],{include:"@root"}],paren:[[/\$\(/,"key","@paste"],[/:\(/,"metatag","@quote"],[/\(/,"@brackets","@push"],[/\)/,"@brackets","@pop"],{include:"@root"}],sregexp:[[/^.*/,"invalid"],[/[^\\"()\[\]{}]/,"regexp"],[/[()\[\]{}]/,"@brackets"],[/\\./,"operator.scss"],[/"[imsx]*/,"regexp.delim","@pop"]],tregexp:[[/[^\\"()\[\]{}]/,"regexp"],[/[()\[\]{}]/,"@brackets"],[/\\./,"operator.scss"],[/"(?!"")/,"string"],[/"""[imsx]*/,"regexp.delim","@pop"]],rsstring:[[/^.*/,"invalid"],[/[^\\"]/,"string"],[/\\./,"string.escape"],[/"/,"string.delim","@pop"]],rtstring:[[/[^\\"]/,"string"],[/\\./,"string.escape"],[/"(?!"")/,"string"],[/"""/,"string.delim","@pop"]],dsstring:[[/^.*/,"invalid"],[/[^\\"\$]/,"string"],[/\$/,"","@interpolated"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string.delim","@pop"]],dtstring:[[/[^\\"\$]/,"string"],[/\$/,"","@interpolated"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?!"")/,"string"],[/"""/,"string.delim","@pop"]],interpolated:[[/\(/,{token:"",switchTo:"@interpolated_compound"}],[/[a-zA-Z_]\w*/,"identifier"],["","","@pop"]],interpolated_compound:[[/\)/,"","@pop"],{include:"@root"}],whitespace:[[/[ \t\r\n]+/,""],[/#=/,"comment","@multi_comment"],[/#.*$/,"comment"]],multi_comment:[[/#=/,"comment","@push"],[/=#/,"comment","@pop"],[/=(?!#)|#(?!=)/,"comment"],[/[^#=]+/,"comment"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/1747.b4331799.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/1747.b4331799.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/1747.b4331799.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/178.e0df04cc.chunk.js b/ydb/core/viewer/monitoring/static/js/178.e0df04cc.chunk.js new file mode 100644 index 000000000000..34369ebcd484 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/178.e0df04cc.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[178],{10178:function(u,t,e){u.exports=function(u){"use strict";function t(u){return u&&"object"==typeof u&&"default"in u?u:{default:u}}var e=t(u);function n(u,t,e,n){var i={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("_")},a={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("_")},_=n&&!t?a:i,s=_[e];return u<10?s.replace("%d",_.numbers[u]):s.replace("%d",u)}var i={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(u){return u+"."},weekStart:1,yearStart:4,relativeTime:{future:"%s p\xe4\xe4st\xe4",past:"%s sitten",s:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},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 e.default.locale(i,null,!0),i}(e(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/185.7d51fcfa.chunk.js b/ydb/core/viewer/monitoring/static/js/185.7d51fcfa.chunk.js new file mode 100644 index 000000000000..c721e64d1be2 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/185.7d51fcfa.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 185.7d51fcfa.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[185],{90185:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>i,language:()=>r});var i={wordPattern:/(#?-?\d*\.\d\w*%?)|([@#!.:]?[\w-?]+%?)|[@#!.]/g,comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},r={defaultToken:"",tokenPostfix:".less",identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",identifierPlus:"-?-?([a-zA-Z:.]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-:.]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@nestedJSBegin"},["[ \\t\\r\\n]+",""],{include:"@comments"},{include:"@keyword"},{include:"@strings"},{include:"@numbers"},["[*_]?[a-zA-Z\\-\\s]+(?=:.*(;|(\\\\$)))","attribute.name","@attribute"],["url(\\-prefix)?\\(",{token:"tag",next:"@urldeclaration"}],["[{}()\\[\\]]","@brackets"],["[,:;]","delimiter"],["#@identifierPlus","tag.id"],["&","tag"],["\\.@identifierPlus(?=\\()","tag.class","@attribute"],["\\.@identifierPlus","tag.class"],["@identifierPlus","tag"],{include:"@operators"},["@(@identifier(?=[:,\\)]))","variable","@attribute"],["@(@identifier)","variable"],["@","key","@atRules"]],nestedJSBegin:[["``","delimiter.backtick"],["`",{token:"delimiter.backtick",next:"@nestedJSEnd",nextEmbedded:"text/javascript"}]],nestedJSEnd:[["`",{token:"delimiter.backtick",next:"@pop",nextEmbedded:"@pop"}]],operators:[["[<>=\\+\\-\\*\\/\\^\\|\\~]","operator"]],keyword:[["(@[\\s]*import|![\\s]*important|true|false|when|iscolor|isnumber|isstring|iskeyword|isurl|ispixel|ispercentage|isem|hue|saturation|lightness|alpha|lighten|darken|saturate|desaturate|fadein|fadeout|fade|spin|mix|round|ceil|floor|percentage)\\b","keyword"]],urldeclaration:[{include:"@strings"},["[^)\r\n]+","string"],["\\)",{token:"tag",next:"@pop"}]],attribute:[{include:"@nestedJSBegin"},{include:"@comments"},{include:"@strings"},{include:"@numbers"},{include:"@keyword"},["[a-zA-Z\\-]+(?=\\()","attribute.value","@attribute"],[">","operator","@pop"],["@identifier","attribute.value"],{include:"@operators"},["@(@identifier)","variable"],["[)\\}]","@brackets","@pop"],["[{}()\\[\\]>]","@brackets"],["[;]","delimiter","@pop"],["[,=:]","delimiter"],["\\s",""],[".","attribute.value"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],numbers:[["(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],strings:[['~?"',{token:"string.delimiter",next:"@stringsEndDoubleQuote"}],["~?'",{token:"string.delimiter",next:"@stringsEndQuote"}]],stringsEndDoubleQuote:[['\\\\"',"string"],['"',{token:"string.delimiter",next:"@popall"}],[".","string"]],stringsEndQuote:[["\\\\'","string"],["'",{token:"string.delimiter",next:"@popall"}],[".","string"]],atRules:[{include:"@comments"},{include:"@strings"},["[()]","delimiter"],["[\\{;]","delimiter","@pop"],[".","key"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/185.7d51fcfa.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/185.7d51fcfa.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/185.7d51fcfa.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/1869.d6661a03.chunk.js b/ydb/core/viewer/monitoring/static/js/1869.d6661a03.chunk.js new file mode 100644 index 000000000000..6795046be21b --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/1869.d6661a03.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[1869],{11869:function(e,a,d){e.exports=function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=a(e),_={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 d.default.locale(_,null,!0),_}(d(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/1876.2f512037.chunk.js b/ydb/core/viewer/monitoring/static/js/1876.2f512037.chunk.js deleted file mode 100644 index c29b2d8f8e3e..000000000000 --- a/ydb/core/viewer/monitoring/static/js/1876.2f512037.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[1876],{1876:function(e,t,l){l.r(t),l.d(t,{ReactComponent:function(){return E}});var r,a,n,i,c,o,d,f,s=l(4519),u=["title","titleId"];function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(a[l]=e[l]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(a[l]=e[l])}return a}function h(e,t){var l=e.title,h=e.titleId,E=m(e,u);return s.createElement("svg",p({xmlns:"http://www.w3.org/2000/svg",width:230,height:230,fill:"none",ref:t,"aria-labelledby":h},E),l?s.createElement("title",{id:h},l):null,r||(r=s.createElement("path",{fill:"#BECFE0",fillOpacity:.8,fillRule:"evenodd",d:"M169.001 51.666c5.523 0 10 4.477 10 10v21.017l18.197-10.506c4.783-2.762 10.899-1.123 13.66 3.66 2.761 4.783 1.123 10.899-3.66 13.66l-18.197 10.507 18.198 10.506c4.783 2.762 6.421 8.878 3.66 13.661-2.762 4.782-8.877 6.421-13.66 3.66l-18.198-10.506v21.008c0 5.523-4.477 10-10 10-5.522 0-10-4.477-10-10v-21.009l-18.199 10.507c-4.782 2.761-10.898 1.122-13.66-3.66-2.761-4.783-1.122-10.899 3.66-13.661l18.199-10.506-18.198-10.507c-4.783-2.761-6.421-8.877-3.66-13.66 2.762-4.783 8.877-6.422 13.66-3.66l18.198 10.507V61.666c0-5.523 4.478-10 10-10Z",clipRule:"evenodd"})),a||(a=s.createElement("path",{fill:"#E7E7E7",fillRule:"evenodd",d:"M171.523 95.922a11.003 11.003 0 0 1 1.099 8.347l-13.208 49.291c-1.572 5.868-7.604 9.351-13.472 7.778l-25.356-6.794a44.998 44.998 0 0 1-.53 1.929l25.368 6.797c6.935 1.858 14.064-2.257 15.922-9.192l13.207-49.291c.893-3.33.426-6.879-1.298-9.865L155.598 64.34a12.999 12.999 0 0 0-7.894-6.057l-29.972-8.031c-6.935-1.858-14.063 2.257-15.922 9.192l-11.328 42.277c.64.192 1.276.398 1.905.618l11.355-42.377c1.573-5.868 7.604-9.35 13.472-7.778l29.973 8.03a11 11 0 0 1 6.679 5.126l17.657 30.582Z",clipRule:"evenodd"})),n||(n=s.createElement("path",{fill:"#FF5958",fillOpacity:.8,d:"M35.388 155.273c-6.29-23.472 7.64-47.599 31.113-53.889 23.472-6.289 47.599 7.641 53.889 31.113 6.289 23.473-7.641 47.599-31.113 53.889-23.473 6.289-47.6-7.64-53.889-31.113Z"})),i||(i=s.createElement("path",{stroke:"#E7E7E7",strokeWidth:2,d:"M60.636 117.734c53.586-33.459-26.868-81.505-36.557-61.318-11.802 24.59 99.395 51.098 128.865-26.3"})),s.createElement("mask",{id:"b",width:89,height:89,x:33,y:99,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},c||(c=s.createElement("path",{fill:"#FF5958",fillOpacity:.9,d:"M35.388 155.273c-6.29-23.472 7.64-47.599 31.113-53.889 23.472-6.289 47.599 7.641 53.889 31.113 6.289 23.473-7.641 47.599-31.113 53.889-23.473 6.289-47.6-7.64-53.889-31.113Z"}))),o||(o=s.createElement("g",{filter:"url(#a)",mask:"url(#b)"},s.createElement("path",{stroke:"#E7E7E7",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.6,strokeWidth:2,d:"M172.389 95.422a12.004 12.004 0 0 1 1.199 9.106l-13.208 49.291c-1.715 6.401-8.295 10.2-14.697 8.485L91.591 147.81c-6.401-1.715-10.2-8.295-8.485-14.697l19.67-73.41c1.716-6.402 8.296-10.2 14.697-8.485l29.972 8.03a11.998 11.998 0 0 1 7.287 5.592l17.657 30.582Z"}))),d||(d=s.createElement("g",{filter:"url(#c)"},s.createElement("path",{fill:"#fff",fillOpacity:.72,fillRule:"evenodd",d:"M80.866 130.432a6.359 6.359 0 1 1-12.284 3.29 6.359 6.359 0 0 1 12.284-3.29Zm4.817-1.291c1.621 6.052-1.97 12.273-8.022 13.894-6.052 1.622-12.273-1.97-13.895-8.022-1.621-6.052 1.97-12.272 8.022-13.894 6.052-1.622 12.273 1.97 13.895 8.022Zm-21.346 32.565c-.154-.577-.009-2.61 2.877-5.555 2.665-2.721 6.917-5.33 12.158-6.734 5.24-1.404 10.227-1.271 13.896-.247 3.971 1.108 5.114 2.796 5.268 3.372a3.116 3.116 0 0 1-2.204 3.817l-28.178 7.55a3.116 3.116 0 0 1-3.817-2.203ZM78.081 144.6c-12.054 3.23-20.238 12.134-18.56 18.396a8.103 8.103 0 0 0 9.924 5.73l28.178-7.55a8.104 8.104 0 0 0 5.73-9.925c-1.678-6.261-13.218-9.881-25.272-6.651Z",clipRule:"evenodd"}))),f||(f=s.createElement("defs",null,s.createElement("filter",{id:"a",width:113.303,height:133.91,x:71.693,y:39.806,colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse"},s.createElement("feFlood",{floodOpacity:0,result:"BackgroundImageFix"}),s.createElement("feBlend",{in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),s.createElement("feGaussianBlur",{result:"effect1_foregroundBlur_1301_35376",stdDeviation:5})),s.createElement("filter",{id:"c",width:73.289,height:73.288,x:41.018,y:106.391,colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse"},s.createElement("feFlood",{floodOpacity:0,result:"BackgroundImageFix"}),s.createElement("feBlend",{in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),s.createElement("feColorMatrix",{in:"SourceAlpha",result:"hardAlpha",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"}),s.createElement("feOffset",null),s.createElement("feGaussianBlur",{stdDeviation:1.917}),s.createElement("feComposite",{in2:"hardAlpha",k2:-1,k3:1,operator:"arithmetic"}),s.createElement("feColorMatrix",{values:"0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.8 0"}),s.createElement("feBlend",{in2:"shape",result:"effect1_innerShadow_1301_35376"})))))}var E=s.forwardRef(h);t.default=l.p+"static/media/error.ca9e31d5d3dc34da07e11a00f7af0842.svg"}}]); -//# sourceMappingURL=1876.2f512037.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/1898.a0e4bd43.chunk.js b/ydb/core/viewer/monitoring/static/js/1898.a0e4bd43.chunk.js deleted file mode 100644 index 2398b608e60a..000000000000 --- a/ydb/core/viewer/monitoring/static/js/1898.a0e4bd43.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[1898],{21898:function(e,t,n){n.r(t),n.d(t,{conf:function(){return s},language:function(){return i}});var s={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)|(?:))")}}},o=[];["abstract","activate","and","any","array","as","asc","assert","autonomous","begin","bigdecimal","blob","boolean","break","bulk","by","case","cast","catch","char","class","collect","commit","const","continue","convertcurrency","decimal","default","delete","desc","do","double","else","end","enum","exception","exit","export","extends","false","final","finally","float","for","from","future","get","global","goto","group","having","hint","if","implements","import","in","inner","insert","instanceof","int","interface","into","join","last_90_days","last_month","last_n_days","last_week","like","limit","list","long","loop","map","merge","native","new","next_90_days","next_month","next_n_days","next_week","not","null","nulls","number","object","of","on","or","outer","override","package","parallel","pragma","private","protected","public","retrieve","return","returning","rollback","savepoint","search","select","set","short","sort","stat","static","strictfp","super","switch","synchronized","system","testmethod","then","this","this_month","this_week","throw","throws","today","tolabel","tomorrow","transaction","transient","trigger","true","try","type","undelete","update","upsert","using","virtual","void","volatile","webservice","when","where","while","yesterday"].forEach((function(e){o.push(e),o.push(e.toUpperCase()),o.push(function(e){return e.charAt(0).toUpperCase()+e.substr(1)}(e))}));var i={defaultToken:"",tokenPostfix:".apex",keywords:o,operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@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"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@apexdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],apexdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}}}]); -//# sourceMappingURL=1898.a0e4bd43.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/1956.0205a5bb.chunk.js b/ydb/core/viewer/monitoring/static/js/1956.0205a5bb.chunk.js new file mode 100644 index 000000000000..82c5fabe3b72 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/1956.0205a5bb.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 1956.0205a5bb.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[1956],{71956:(E,T,S)=>{S.r(T),S.d(T,{conf:()=>R,language:()=>_});var R={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:"'"}]},_={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BIGINT","BINARY","BLOB","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHAR","CHARACTER","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CUBE","CUME_DIST","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DEC","DECIMAL","DECLARE","DEFAULT","DELAYED","DELETE","DENSE_RANK","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DOUBLE","DROP","DUAL","EACH","ELSE","ELSEIF","EMPTY","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FIRST_VALUE","FLOAT","FLOAT4","FLOAT8","FOR","FORCE","FOREIGN","FROM","FULLTEXT","FUNCTION","GENERATED","GET","GRANT","GROUP","GROUPING","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","INTERVAL","INTO","IO_AFTER_GTIDS","IO_BEFORE_GTIDS","IS","ITERATE","JOIN","JSON_TABLE","KEY","KEYS","KILL","LAG","LAST_VALUE","LATERAL","LEAD","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LONGBLOB","LONGTEXT","LOOP","LOW_PRIORITY","MASTER_BIND","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NTH_VALUE","NTILE","NULL","NUMERIC","OF","ON","OPTIMIZE","OPTIMIZER_COSTS","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PERCENT_RANK","PRECISION","PRIMARY","PROCEDURE","PURGE","RANGE","RANK","READ","READS","READ_WRITE","REAL","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","REVOKE","RIGHT","RLIKE","ROW","ROWS","ROW_NUMBER","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SMALLINT","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STORED","STRAIGHT_JOIN","SYSTEM","TABLE","TERMINATED","THEN","TINYBLOB","TINYINT","TINYTEXT","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VARBINARY","VARCHAR","VARCHARACTER","VARYING","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","Area","AsBinary","AsWKB","ASCII","ASIN","AsText","AsWKT","ASYMMETRIC_DECRYPT","ASYMMETRIC_DERIVE","ASYMMETRIC_ENCRYPT","ASYMMETRIC_SIGN","ASYMMETRIC_VERIFY","ATAN","ATAN2","ATAN","AVG","BENCHMARK","BIN","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","Buffer","CAST","CEIL","CEILING","Centroid","CHAR","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","Contains","CONV","CONVERT","CONVERT_TZ","ConvexHull","COS","COT","COUNT","CRC32","CREATE_ASYMMETRIC_PRIV_KEY","CREATE_ASYMMETRIC_PUB_KEY","CREATE_DH_PARAMETERS","CREATE_DIGEST","Crosses","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT","DEGREES","DES_DECRYPT","DES_ENCRYPT","DENSE_RANK","Dimension","Disjoint","Distance","ELT","ENCODE","ENCRYPT","EndPoint","Envelope","Equals","EXP","EXPORT_SET","ExteriorRing","EXTRACT","ExtractValue","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_PICO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEN_RANGE","GEN_RND_EMAIL","GEN_RND_PAN","GEN_RND_SSN","GEN_RND_US_PHONE","GeomCollection","GeomCollFromText","GeometryCollectionFromText","GeomCollFromWKB","GeometryCollectionFromWKB","GeometryCollection","GeometryN","GeometryType","GeomFromText","GeometryFromText","GeomFromWKB","GeometryFromWKB","GET_FORMAT","GET_LOCK","GLength","GREATEST","GROUP_CONCAT","GROUPING","GTID_SUBSET","GTID_SUBTRACT","HEX","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INSERT","INSTR","InteriorRingN","Intersects","INTERVAL","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS_USED_LOCK","IS_UUID","IsClosed","IsEmpty","ISNULL","IsSimple","JSON_APPEND","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_ARRAYAGG","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SCHEMA_VALID","JSON_SCHEMA_VALIDATION_REPORT","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TABLE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LineFromText","LineStringFromText","LineFromWKB","LineStringFromWKB","LineString","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASK_INNER","MASK_OUTER","MASK_PAN","MASK_PAN_RELAXED","MASK_SSN","MASTER_POS_WAIT","MAX","MBRContains","MBRCoveredBy","MBRCovers","MBRDisjoint","MBREqual","MBREquals","MBRIntersects","MBROverlaps","MBRTouches","MBRWithin","MD5","MEMBER OF","MICROSECOND","MID","MIN","MINUTE","MLineFromText","MultiLineStringFromText","MLineFromWKB","MultiLineStringFromWKB","MOD","MONTH","MONTHNAME","MPointFromText","MultiPointFromText","MPointFromWKB","MultiPointFromWKB","MPolyFromText","MultiPolygonFromText","MPolyFromWKB","MultiPolygonFromWKB","MultiLineString","MultiPoint","MultiPolygon","NAME_CONST","NOT IN","NOW","NTH_VALUE","NTILE","NULLIF","NumGeometries","NumInteriorRings","NumPoints","OCT","OCTET_LENGTH","OLD_PASSWORD","ORD","Overlaps","PASSWORD","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","Point","PointFromText","PointFromWKB","PointN","PolyFromText","PolygonFromText","PolyFromWKB","PolygonFromWKB","Polygon","POSITION","POW","POWER","PS_CURRENT_THREAD_ID","PS_THREAD_ID","PROCEDURE ANALYSE","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_REPLACE","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","ROLES_GRAPHML","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SHA1","SHA","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SOURCE_POS_WAIT","SPACE","SQRT","SRID","ST_Area","ST_AsBinary","ST_AsWKB","ST_AsGeoJSON","ST_AsText","ST_AsWKT","ST_Buffer","ST_Buffer_Strategy","ST_Centroid","ST_Collect","ST_Contains","ST_ConvexHull","ST_Crosses","ST_Difference","ST_Dimension","ST_Disjoint","ST_Distance","ST_Distance_Sphere","ST_EndPoint","ST_Envelope","ST_Equals","ST_ExteriorRing","ST_FrechetDistance","ST_GeoHash","ST_GeomCollFromText","ST_GeometryCollectionFromText","ST_GeomCollFromTxt","ST_GeomCollFromWKB","ST_GeometryCollectionFromWKB","ST_GeometryN","ST_GeometryType","ST_GeomFromGeoJSON","ST_GeomFromText","ST_GeometryFromText","ST_GeomFromWKB","ST_GeometryFromWKB","ST_HausdorffDistance","ST_InteriorRingN","ST_Intersection","ST_Intersects","ST_IsClosed","ST_IsEmpty","ST_IsSimple","ST_IsValid","ST_LatFromGeoHash","ST_Length","ST_LineFromText","ST_LineStringFromText","ST_LineFromWKB","ST_LineStringFromWKB","ST_LineInterpolatePoint","ST_LineInterpolatePoints","ST_LongFromGeoHash","ST_Longitude","ST_MakeEnvelope","ST_MLineFromText","ST_MultiLineStringFromText","ST_MLineFromWKB","ST_MultiLineStringFromWKB","ST_MPointFromText","ST_MultiPointFromText","ST_MPointFromWKB","ST_MultiPointFromWKB","ST_MPolyFromText","ST_MultiPolygonFromText","ST_MPolyFromWKB","ST_MultiPolygonFromWKB","ST_NumGeometries","ST_NumInteriorRing","ST_NumInteriorRings","ST_NumPoints","ST_Overlaps","ST_PointAtDistance","ST_PointFromGeoHash","ST_PointFromText","ST_PointFromWKB","ST_PointN","ST_PolyFromText","ST_PolygonFromText","ST_PolyFromWKB","ST_PolygonFromWKB","ST_Simplify","ST_SRID","ST_StartPoint","ST_SwapXY","ST_SymDifference","ST_Touches","ST_Transform","ST_Union","ST_Validate","ST_Within","ST_X","ST_Y","StartPoint","STATEMENT_DIGEST","STATEMENT_DIGEST_TEXT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","Touches","TRIM","TRUNCATE","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UpdateXML","UPPER","USER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VALUES","VAR_POP","VAR_SAMP","VARIANCE","VERSION","WAIT_FOR_EXECUTED_GTID_SET","WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","Within","X","Y","YEAR","YEARWEEK"],builtinVariables:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@]+/,{cases:{"@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@keywords":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/#+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}],[/"/,{token:"string.double",next:"@stringDouble"}]],string:[[/\\'/,"string"],[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],stringDouble:[[/[^"]+/,"string.double"],[/""/,"string.double"],[/"/,{token:"string.double",next:"@pop"}]],complexIdentifiers:[[/`/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^`]+/,"identifier"],[/``/,"identifier"],[/`/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/1956.0205a5bb.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/1956.0205a5bb.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/1956.0205a5bb.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/202.52f13cd5.chunk.js b/ydb/core/viewer/monitoring/static/js/202.52f13cd5.chunk.js new file mode 100644 index 000000000000..32f1ae29015b --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/202.52f13cd5.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[202],{10202:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),n={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"},d={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(_){return _.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,(function(_){return r[_]}))},postformat:function(_){return _.replace(/\d/g,(function(_){return n[_]}))},ordinal:function(_){var e=["\u0987","\u09b2\u09be","\u09b0\u09be","\u09a0\u09be","\u09b6\u09c7"],t=_%100;return"["+_+(e[(t-20)%10]||e[t]||e[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(_){return _<4?"\u09b0\u09be\u09a4":_<6?"\u09ad\u09cb\u09b0":_<12?"\u09b8\u0995\u09be\u09b2":_<15?"\u09a6\u09c1\u09aa\u09c1\u09b0":_<18?"\u09ac\u09bf\u0995\u09be\u09b2":_<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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2033.5c6dfca9.chunk.js b/ydb/core/viewer/monitoring/static/js/2033.5c6dfca9.chunk.js new file mode 100644 index 000000000000..e97d7443e164 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2033.5c6dfca9.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2033],{2033:function(e,_,t){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),a={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 t.default.locale(a,null,!0),a}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2056.b607e590.chunk.js b/ydb/core/viewer/monitoring/static/js/2056.b607e590.chunk.js deleted file mode 100644 index f56e12742066..000000000000 --- a/ydb/core/viewer/monitoring/static/js/2056.b607e590.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2056],{32056:function(e,t,n){n.r(t),n.d(t,{conf:function(){return o},language:function(){return a}});var i=n(37456),o={comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:i.Mj.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:i.Mj.IndentAction.Indent}}]},a={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[//,{token:"comment",next:"@pop"}],[//,"comment","@pop"],[/[^-]+/,"comment.content"],[/./,"comment.content"]],otherTag:[[/\/?>/,"delimiter","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}}}}]); -//# sourceMappingURL=2406.180cb966.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2435.092e8d7f.chunk.js b/ydb/core/viewer/monitoring/static/js/2435.092e8d7f.chunk.js new file mode 100644 index 000000000000..4972c6154d9a --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2435.092e8d7f.chunk.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2435],{32435:(e,t,l)=>{l.r(t),l.d(t,{ReactComponent:()=>m,default:()=>h});var a,r,i,c,n,o,d,s,f=l(68963);function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@strings"},["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@selectorname"},["[\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.bracket",next:"@selectorbody"}]],selectorbody:[{include:"@comments"},["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],["}",{token:"delimiter.bracket",next:"@pop"}]],selectorname:[["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@functioninvocation"},{include:"@numbers"},{include:"@name"},{include:"@strings"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","delimiter"],[",","delimiter"]],rulevalue:[{include:"@comments"},{include:"@strings"},{include:"@term"},["!important","keyword"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],urldeclaration:[{include:"@strings"},["[^)\r\n]+","string"],["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[/[^*/]+/,"comment"],[/./,"comment"]],name:[["@identifier","attribute.value"]],numbers:[["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],keyframedeclaration:[["@identifier","attribute.value"],["{",{token:"delimiter.bracket",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.bracket",next:"@selectorbody"}],["}",{token:"delimiter.bracket",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"attribute.value",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"attribute.value",next:"@pop"}]],strings:[['~?"',{token:"string",next:"@stringenddoublequote"}],["~?'",{token:"string",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string",next:"@pop"}],[/[^\\"]+/,"string"],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string",next:"@pop"}],[/[^\\']+/,"string"],[".","string"]]}}}}]); -//# sourceMappingURL=245.6db2db52.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2477.e6121bfd.chunk.js b/ydb/core/viewer/monitoring/static/js/2477.e6121bfd.chunk.js new file mode 100644 index 000000000000..e23ed9755ad9 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2477.e6121bfd.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2477],{22477:function(e,_,n){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=_(e),t={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(t,null,!0),t}(n(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/248.736ab237.chunk.js b/ydb/core/viewer/monitoring/static/js/248.736ab237.chunk.js deleted file mode 100644 index cd881a3e1800..000000000000 --- a/ydb/core/viewer/monitoring/static/js/248.736ab237.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[248],{248:function(e,t,n){n.r(t),n.d(t,{conf:function(){return o},language:function(){return s}});var o={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},s={defaultToken:"",tokenPostfix:".aes",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["contract","library","entrypoint","function","stateful","state","hash","signature","tuple","list","address","string","bool","int","record","datatype","type","option","oracle","oracle_query","Call","Bits","Bytes","Oracle","String","Crypto","Address","Auth","Chain","None","Some","bits","bytes","event","let","map","private","public","true","false","var","if","else","throw"],operators:["=",">","<","!","~","?","::",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}}}}]); -//# sourceMappingURL=248.736ab237.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2492.64b7d727.chunk.js b/ydb/core/viewer/monitoring/static/js/2492.64b7d727.chunk.js new file mode 100644 index 000000000000..ebfac88f075c --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2492.64b7d727.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 2492.64b7d727.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2492],{82492:(e,t,o)=>{o.r(t),o.d(t,{conf:()=>r,language:()=>n});var r={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:"'"}],folding:{markers:{start:new RegExp("^\\s*\\{\\$REGION(\\s\\'.*\\')?\\}"),end:new RegExp("^\\s*\\{\\$ENDREGION\\}")}}},n={defaultToken:"",tokenPostfix:".pascal",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["absolute","abstract","all","and_then","array","as","asm","attribute","begin","bindable","case","class","const","contains","default","div","else","end","except","exports","external","far","file","finalization","finally","forward","generic","goto","if","implements","import","in","index","inherited","initialization","interrupt","is","label","library","mod","module","name","near","not","object","of","on","only","operator","or_else","otherwise","override","package","packed","pow","private","program","protected","public","published","interface","implementation","qualified","read","record","resident","requires","resourcestring","restricted","segment","set","shl","shr","specialize","stored","strict","then","threadvar","to","try","type","unit","uses","var","view","virtual","dynamic","overload","reintroduce","with","write","xor","true","false","procedure","function","constructor","destructor","property","break","continue","exit","abort","while","do","for","raise","repeat","until"],typeKeywords:["boolean","double","byte","integer","shortint","char","longint","float","string"],operators:["=",">","<","<=",">=","<>",":",":=","and","or","+","-","*","/","@","&","^","%"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\*\}]+/,"comment"],[/\}/,"comment","@pop"],[/[\{]/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\{/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2492.64b7d727.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/2492.64b7d727.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2492.64b7d727.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/2507.2d9c4b5c.chunk.js b/ydb/core/viewer/monitoring/static/js/2507.2d9c4b5c.chunk.js deleted file mode 100644 index b219f06b694b..000000000000 --- a/ydb/core/viewer/monitoring/static/js/2507.2d9c4b5c.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2507],{2507:function(E,S,e){e.r(S),e.d(S,{conf:function(){return T},language:function(){return R}});var T={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},R={defaultToken:"",tokenPostfix:".redis",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["APPEND","AUTH","BGREWRITEAOF","BGSAVE","BITCOUNT","BITFIELD","BITOP","BITPOS","BLPOP","BRPOP","BRPOPLPUSH","CLIENT","KILL","LIST","GETNAME","PAUSE","REPLY","SETNAME","CLUSTER","ADDSLOTS","COUNT-FAILURE-REPORTS","COUNTKEYSINSLOT","DELSLOTS","FAILOVER","FORGET","GETKEYSINSLOT","INFO","KEYSLOT","MEET","NODES","REPLICATE","RESET","SAVECONFIG","SET-CONFIG-EPOCH","SETSLOT","SLAVES","SLOTS","COMMAND","COUNT","GETKEYS","CONFIG","GET","REWRITE","SET","RESETSTAT","DBSIZE","DEBUG","OBJECT","SEGFAULT","DECR","DECRBY","DEL","DISCARD","DUMP","ECHO","EVAL","EVALSHA","EXEC","EXISTS","EXPIRE","EXPIREAT","FLUSHALL","FLUSHDB","GEOADD","GEOHASH","GEOPOS","GEODIST","GEORADIUS","GEORADIUSBYMEMBER","GETBIT","GETRANGE","GETSET","HDEL","HEXISTS","HGET","HGETALL","HINCRBY","HINCRBYFLOAT","HKEYS","HLEN","HMGET","HMSET","HSET","HSETNX","HSTRLEN","HVALS","INCR","INCRBY","INCRBYFLOAT","KEYS","LASTSAVE","LINDEX","LINSERT","LLEN","LPOP","LPUSH","LPUSHX","LRANGE","LREM","LSET","LTRIM","MGET","MIGRATE","MONITOR","MOVE","MSET","MSETNX","MULTI","PERSIST","PEXPIRE","PEXPIREAT","PFADD","PFCOUNT","PFMERGE","PING","PSETEX","PSUBSCRIBE","PUBSUB","PTTL","PUBLISH","PUNSUBSCRIBE","QUIT","RANDOMKEY","READONLY","READWRITE","RENAME","RENAMENX","RESTORE","ROLE","RPOP","RPOPLPUSH","RPUSH","RPUSHX","SADD","SAVE","SCARD","SCRIPT","FLUSH","LOAD","SDIFF","SDIFFSTORE","SELECT","SETBIT","SETEX","SETNX","SETRANGE","SHUTDOWN","SINTER","SINTERSTORE","SISMEMBER","SLAVEOF","SLOWLOG","SMEMBERS","SMOVE","SORT","SPOP","SRANDMEMBER","SREM","STRLEN","SUBSCRIBE","SUNION","SUNIONSTORE","SWAPDB","SYNC","TIME","TOUCH","TTL","TYPE","UNSUBSCRIBE","UNLINK","UNWATCH","WAIT","WATCH","ZADD","ZCARD","ZCOUNT","ZINCRBY","ZINTERSTORE","ZLEXCOUNT","ZRANGE","ZRANGEBYLEX","ZREVRANGEBYLEX","ZRANGEBYSCORE","ZRANK","ZREM","ZREMRANGEBYLEX","ZREMRANGEBYRANK","ZREMRANGEBYSCORE","ZREVRANGE","ZREVRANGEBYSCORE","ZREVRANK","ZSCORE","ZUNIONSTORE","SCAN","SSCAN","HSCAN","ZSCAN"],operators:[],builtinFunctions:[],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}],[/"/,{token:"string.double",next:"@stringDouble"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],stringDouble:[[/[^"]+/,"string.double"],[/""/,"string.double"],[/"/,{token:"string.double",next:"@pop"}]],scopes:[]}}}}]); -//# sourceMappingURL=2507.2d9c4b5c.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2521.21bdfab9.chunk.js b/ydb/core/viewer/monitoring/static/js/2521.21bdfab9.chunk.js new file mode 100644 index 000000000000..69130f03d8d1 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2521.21bdfab9.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 2521.21bdfab9.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2521],{52521:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>o,language:()=>a});var o={comments:{lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}],folding:{offSide:!0}},a={defaultToken:"",tokenPostfix:".pug",ignoreCase:!0,brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],keywords:["append","block","case","default","doctype","each","else","extends","for","if","in","include","mixin","typeof","unless","var","when"],tags:["a","abbr","acronym","address","area","article","aside","audio","b","base","basefont","bdi","bdo","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","command","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","keygen","kbd","label","li","link","map","mark","menu","meta","meter","nav","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strike","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","tracks","tt","u","ul","video","wbr"],symbols:/[\+\-\*\%\&\|\!\=\/\.\,\:]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\s*)([a-zA-Z_-][\w-]*)/,{cases:{"$2@tags":{cases:{"@eos":["","tag"],"@default":["",{token:"tag",next:"@tag.$1"}]}},"$2@keywords":["",{token:"keyword.$2"}],"@default":["",""]}}],[/^(\s*)(#[a-zA-Z_-][\w-]*)/,{cases:{"@eos":["","tag.id"],"@default":["",{token:"tag.id",next:"@tag.$1"}]}}],[/^(\s*)(\.[a-zA-Z_-][\w-]*)/,{cases:{"@eos":["","tag.class"],"@default":["",{token:"tag.class",next:"@tag.$1"}]}}],[/^(\s*)(\|.*)$/,""],{include:"@whitespace"},[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":""}}],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d+\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\d+/,"number"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],tag:[[/(\.)(\s*$)/,[{token:"delimiter",next:"@blockText.$S2."},""]],[/\s+/,{token:"",next:"@simpleText"}],[/#[a-zA-Z_-][\w-]*/,{cases:{"@eos":{token:"tag.id",next:"@pop"},"@default":"tag.id"}}],[/\.[a-zA-Z_-][\w-]*/,{cases:{"@eos":{token:"tag.class",next:"@pop"},"@default":"tag.class"}}],[/\(/,{token:"delimiter.parenthesis",next:"@attributeList"}]],simpleText:[[/[^#]+$/,{token:"",next:"@popall"}],[/[^#]+/,{token:""}],[/(#{)([^}]*)(})/,{cases:{"@eos":["interpolation.delimiter","interpolation",{token:"interpolation.delimiter",next:"@popall"}],"@default":["interpolation.delimiter","interpolation","interpolation.delimiter"]}}],[/#$/,{token:"",next:"@popall"}],[/#/,""]],attributeList:[[/\s+/,""],[/(\w+)(\s*=\s*)("|')/,["attribute.name","delimiter",{token:"attribute.value",next:"@value.$3"}]],[/\w+/,"attribute.name"],[/,/,{cases:{"@eos":{token:"attribute.delimiter",next:"@popall"},"@default":"attribute.delimiter"}}],[/\)$/,{token:"delimiter.parenthesis",next:"@popall"}],[/\)/,{token:"delimiter.parenthesis",next:"@pop"}]],whitespace:[[/^(\s*)(\/\/.*)$/,{token:"comment",next:"@blockText.$1.comment"}],[/[ \t\r\n]+/,""],[//,{token:"comment",next:"@pop"}],[/|<\/?script\s*\/?>?/i);if(0===u.length)return c.goToEnd(),m(t,fe.Script);if("\x3c!--"===u)1===d&&(d=2);else if("--\x3e"===u)d=1;else if("/"!==u[1])2===d&&(d=3);else{if(3!==d){c.goBack(u.length);break}d=2}}return h=ge.WithinContent,t=0){var n=this.children[t];if(e>n.start){if(e=0){var n=this.children[t];if(e>n.start&&e<=n.end)return n.findNodeAt(e)}return this}}();var je={"Aacute;":"\xc1",Aacute:"\xc1","aacute;":"\xe1",aacute:"\xe1","Abreve;":"\u0102","abreve;":"\u0103","ac;":"\u223e","acd;":"\u223f","acE;":"\u223e\u0333","Acirc;":"\xc2",Acirc:"\xc2","acirc;":"\xe2",acirc:"\xe2","acute;":"\xb4",acute:"\xb4","Acy;":"\u0410","acy;":"\u0430","AElig;":"\xc6",AElig:"\xc6","aelig;":"\xe6",aelig:"\xe6","af;":"\u2061","Afr;":"\ud835\udd04","afr;":"\ud835\udd1e","Agrave;":"\xc0",Agrave:"\xc0","agrave;":"\xe0",agrave:"\xe0","alefsym;":"\u2135","aleph;":"\u2135","Alpha;":"\u0391","alpha;":"\u03b1","Amacr;":"\u0100","amacr;":"\u0101","amalg;":"\u2a3f","AMP;":"&",AMP:"&","amp;":"&",amp:"&","And;":"\u2a53","and;":"\u2227","andand;":"\u2a55","andd;":"\u2a5c","andslope;":"\u2a58","andv;":"\u2a5a","ang;":"\u2220","ange;":"\u29a4","angle;":"\u2220","angmsd;":"\u2221","angmsdaa;":"\u29a8","angmsdab;":"\u29a9","angmsdac;":"\u29aa","angmsdad;":"\u29ab","angmsdae;":"\u29ac","angmsdaf;":"\u29ad","angmsdag;":"\u29ae","angmsdah;":"\u29af","angrt;":"\u221f","angrtvb;":"\u22be","angrtvbd;":"\u299d","angsph;":"\u2222","angst;":"\xc5","angzarr;":"\u237c","Aogon;":"\u0104","aogon;":"\u0105","Aopf;":"\ud835\udd38","aopf;":"\ud835\udd52","ap;":"\u2248","apacir;":"\u2a6f","apE;":"\u2a70","ape;":"\u224a","apid;":"\u224b","apos;":"'","ApplyFunction;":"\u2061","approx;":"\u2248","approxeq;":"\u224a","Aring;":"\xc5",Aring:"\xc5","aring;":"\xe5",aring:"\xe5","Ascr;":"\ud835\udc9c","ascr;":"\ud835\udcb6","Assign;":"\u2254","ast;":"*","asymp;":"\u2248","asympeq;":"\u224d","Atilde;":"\xc3",Atilde:"\xc3","atilde;":"\xe3",atilde:"\xe3","Auml;":"\xc4",Auml:"\xc4","auml;":"\xe4",auml:"\xe4","awconint;":"\u2233","awint;":"\u2a11","backcong;":"\u224c","backepsilon;":"\u03f6","backprime;":"\u2035","backsim;":"\u223d","backsimeq;":"\u22cd","Backslash;":"\u2216","Barv;":"\u2ae7","barvee;":"\u22bd","Barwed;":"\u2306","barwed;":"\u2305","barwedge;":"\u2305","bbrk;":"\u23b5","bbrktbrk;":"\u23b6","bcong;":"\u224c","Bcy;":"\u0411","bcy;":"\u0431","bdquo;":"\u201e","becaus;":"\u2235","Because;":"\u2235","because;":"\u2235","bemptyv;":"\u29b0","bepsi;":"\u03f6","bernou;":"\u212c","Bernoullis;":"\u212c","Beta;":"\u0392","beta;":"\u03b2","beth;":"\u2136","between;":"\u226c","Bfr;":"\ud835\udd05","bfr;":"\ud835\udd1f","bigcap;":"\u22c2","bigcirc;":"\u25ef","bigcup;":"\u22c3","bigodot;":"\u2a00","bigoplus;":"\u2a01","bigotimes;":"\u2a02","bigsqcup;":"\u2a06","bigstar;":"\u2605","bigtriangledown;":"\u25bd","bigtriangleup;":"\u25b3","biguplus;":"\u2a04","bigvee;":"\u22c1","bigwedge;":"\u22c0","bkarow;":"\u290d","blacklozenge;":"\u29eb","blacksquare;":"\u25aa","blacktriangle;":"\u25b4","blacktriangledown;":"\u25be","blacktriangleleft;":"\u25c2","blacktriangleright;":"\u25b8","blank;":"\u2423","blk12;":"\u2592","blk14;":"\u2591","blk34;":"\u2593","block;":"\u2588","bne;":"=\u20e5","bnequiv;":"\u2261\u20e5","bNot;":"\u2aed","bnot;":"\u2310","Bopf;":"\ud835\udd39","bopf;":"\ud835\udd53","bot;":"\u22a5","bottom;":"\u22a5","bowtie;":"\u22c8","boxbox;":"\u29c9","boxDL;":"\u2557","boxDl;":"\u2556","boxdL;":"\u2555","boxdl;":"\u2510","boxDR;":"\u2554","boxDr;":"\u2553","boxdR;":"\u2552","boxdr;":"\u250c","boxH;":"\u2550","boxh;":"\u2500","boxHD;":"\u2566","boxHd;":"\u2564","boxhD;":"\u2565","boxhd;":"\u252c","boxHU;":"\u2569","boxHu;":"\u2567","boxhU;":"\u2568","boxhu;":"\u2534","boxminus;":"\u229f","boxplus;":"\u229e","boxtimes;":"\u22a0","boxUL;":"\u255d","boxUl;":"\u255c","boxuL;":"\u255b","boxul;":"\u2518","boxUR;":"\u255a","boxUr;":"\u2559","boxuR;":"\u2558","boxur;":"\u2514","boxV;":"\u2551","boxv;":"\u2502","boxVH;":"\u256c","boxVh;":"\u256b","boxvH;":"\u256a","boxvh;":"\u253c","boxVL;":"\u2563","boxVl;":"\u2562","boxvL;":"\u2561","boxvl;":"\u2524","boxVR;":"\u2560","boxVr;":"\u255f","boxvR;":"\u255e","boxvr;":"\u251c","bprime;":"\u2035","Breve;":"\u02d8","breve;":"\u02d8","brvbar;":"\xa6",brvbar:"\xa6","Bscr;":"\u212c","bscr;":"\ud835\udcb7","bsemi;":"\u204f","bsim;":"\u223d","bsime;":"\u22cd","bsol;":"\\","bsolb;":"\u29c5","bsolhsub;":"\u27c8","bull;":"\u2022","bullet;":"\u2022","bump;":"\u224e","bumpE;":"\u2aae","bumpe;":"\u224f","Bumpeq;":"\u224e","bumpeq;":"\u224f","Cacute;":"\u0106","cacute;":"\u0107","Cap;":"\u22d2","cap;":"\u2229","capand;":"\u2a44","capbrcup;":"\u2a49","capcap;":"\u2a4b","capcup;":"\u2a47","capdot;":"\u2a40","CapitalDifferentialD;":"\u2145","caps;":"\u2229\ufe00","caret;":"\u2041","caron;":"\u02c7","Cayleys;":"\u212d","ccaps;":"\u2a4d","Ccaron;":"\u010c","ccaron;":"\u010d","Ccedil;":"\xc7",Ccedil:"\xc7","ccedil;":"\xe7",ccedil:"\xe7","Ccirc;":"\u0108","ccirc;":"\u0109","Cconint;":"\u2230","ccups;":"\u2a4c","ccupssm;":"\u2a50","Cdot;":"\u010a","cdot;":"\u010b","cedil;":"\xb8",cedil:"\xb8","Cedilla;":"\xb8","cemptyv;":"\u29b2","cent;":"\xa2",cent:"\xa2","CenterDot;":"\xb7","centerdot;":"\xb7","Cfr;":"\u212d","cfr;":"\ud835\udd20","CHcy;":"\u0427","chcy;":"\u0447","check;":"\u2713","checkmark;":"\u2713","Chi;":"\u03a7","chi;":"\u03c7","cir;":"\u25cb","circ;":"\u02c6","circeq;":"\u2257","circlearrowleft;":"\u21ba","circlearrowright;":"\u21bb","circledast;":"\u229b","circledcirc;":"\u229a","circleddash;":"\u229d","CircleDot;":"\u2299","circledR;":"\xae","circledS;":"\u24c8","CircleMinus;":"\u2296","CirclePlus;":"\u2295","CircleTimes;":"\u2297","cirE;":"\u29c3","cire;":"\u2257","cirfnint;":"\u2a10","cirmid;":"\u2aef","cirscir;":"\u29c2","ClockwiseContourIntegral;":"\u2232","CloseCurlyDoubleQuote;":"\u201d","CloseCurlyQuote;":"\u2019","clubs;":"\u2663","clubsuit;":"\u2663","Colon;":"\u2237","colon;":":","Colone;":"\u2a74","colone;":"\u2254","coloneq;":"\u2254","comma;":",","commat;":"@","comp;":"\u2201","compfn;":"\u2218","complement;":"\u2201","complexes;":"\u2102","cong;":"\u2245","congdot;":"\u2a6d","Congruent;":"\u2261","Conint;":"\u222f","conint;":"\u222e","ContourIntegral;":"\u222e","Copf;":"\u2102","copf;":"\ud835\udd54","coprod;":"\u2210","Coproduct;":"\u2210","COPY;":"\xa9",COPY:"\xa9","copy;":"\xa9",copy:"\xa9","copysr;":"\u2117","CounterClockwiseContourIntegral;":"\u2233","crarr;":"\u21b5","Cross;":"\u2a2f","cross;":"\u2717","Cscr;":"\ud835\udc9e","cscr;":"\ud835\udcb8","csub;":"\u2acf","csube;":"\u2ad1","csup;":"\u2ad0","csupe;":"\u2ad2","ctdot;":"\u22ef","cudarrl;":"\u2938","cudarrr;":"\u2935","cuepr;":"\u22de","cuesc;":"\u22df","cularr;":"\u21b6","cularrp;":"\u293d","Cup;":"\u22d3","cup;":"\u222a","cupbrcap;":"\u2a48","CupCap;":"\u224d","cupcap;":"\u2a46","cupcup;":"\u2a4a","cupdot;":"\u228d","cupor;":"\u2a45","cups;":"\u222a\ufe00","curarr;":"\u21b7","curarrm;":"\u293c","curlyeqprec;":"\u22de","curlyeqsucc;":"\u22df","curlyvee;":"\u22ce","curlywedge;":"\u22cf","curren;":"\xa4",curren:"\xa4","curvearrowleft;":"\u21b6","curvearrowright;":"\u21b7","cuvee;":"\u22ce","cuwed;":"\u22cf","cwconint;":"\u2232","cwint;":"\u2231","cylcty;":"\u232d","Dagger;":"\u2021","dagger;":"\u2020","daleth;":"\u2138","Darr;":"\u21a1","dArr;":"\u21d3","darr;":"\u2193","dash;":"\u2010","Dashv;":"\u2ae4","dashv;":"\u22a3","dbkarow;":"\u290f","dblac;":"\u02dd","Dcaron;":"\u010e","dcaron;":"\u010f","Dcy;":"\u0414","dcy;":"\u0434","DD;":"\u2145","dd;":"\u2146","ddagger;":"\u2021","ddarr;":"\u21ca","DDotrahd;":"\u2911","ddotseq;":"\u2a77","deg;":"\xb0",deg:"\xb0","Del;":"\u2207","Delta;":"\u0394","delta;":"\u03b4","demptyv;":"\u29b1","dfisht;":"\u297f","Dfr;":"\ud835\udd07","dfr;":"\ud835\udd21","dHar;":"\u2965","dharl;":"\u21c3","dharr;":"\u21c2","DiacriticalAcute;":"\xb4","DiacriticalDot;":"\u02d9","DiacriticalDoubleAcute;":"\u02dd","DiacriticalGrave;":"`","DiacriticalTilde;":"\u02dc","diam;":"\u22c4","Diamond;":"\u22c4","diamond;":"\u22c4","diamondsuit;":"\u2666","diams;":"\u2666","die;":"\xa8","DifferentialD;":"\u2146","digamma;":"\u03dd","disin;":"\u22f2","div;":"\xf7","divide;":"\xf7",divide:"\xf7","divideontimes;":"\u22c7","divonx;":"\u22c7","DJcy;":"\u0402","djcy;":"\u0452","dlcorn;":"\u231e","dlcrop;":"\u230d","dollar;":"$","Dopf;":"\ud835\udd3b","dopf;":"\ud835\udd55","Dot;":"\xa8","dot;":"\u02d9","DotDot;":"\u20dc","doteq;":"\u2250","doteqdot;":"\u2251","DotEqual;":"\u2250","dotminus;":"\u2238","dotplus;":"\u2214","dotsquare;":"\u22a1","doublebarwedge;":"\u2306","DoubleContourIntegral;":"\u222f","DoubleDot;":"\xa8","DoubleDownArrow;":"\u21d3","DoubleLeftArrow;":"\u21d0","DoubleLeftRightArrow;":"\u21d4","DoubleLeftTee;":"\u2ae4","DoubleLongLeftArrow;":"\u27f8","DoubleLongLeftRightArrow;":"\u27fa","DoubleLongRightArrow;":"\u27f9","DoubleRightArrow;":"\u21d2","DoubleRightTee;":"\u22a8","DoubleUpArrow;":"\u21d1","DoubleUpDownArrow;":"\u21d5","DoubleVerticalBar;":"\u2225","DownArrow;":"\u2193","Downarrow;":"\u21d3","downarrow;":"\u2193","DownArrowBar;":"\u2913","DownArrowUpArrow;":"\u21f5","DownBreve;":"\u0311","downdownarrows;":"\u21ca","downharpoonleft;":"\u21c3","downharpoonright;":"\u21c2","DownLeftRightVector;":"\u2950","DownLeftTeeVector;":"\u295e","DownLeftVector;":"\u21bd","DownLeftVectorBar;":"\u2956","DownRightTeeVector;":"\u295f","DownRightVector;":"\u21c1","DownRightVectorBar;":"\u2957","DownTee;":"\u22a4","DownTeeArrow;":"\u21a7","drbkarow;":"\u2910","drcorn;":"\u231f","drcrop;":"\u230c","Dscr;":"\ud835\udc9f","dscr;":"\ud835\udcb9","DScy;":"\u0405","dscy;":"\u0455","dsol;":"\u29f6","Dstrok;":"\u0110","dstrok;":"\u0111","dtdot;":"\u22f1","dtri;":"\u25bf","dtrif;":"\u25be","duarr;":"\u21f5","duhar;":"\u296f","dwangle;":"\u29a6","DZcy;":"\u040f","dzcy;":"\u045f","dzigrarr;":"\u27ff","Eacute;":"\xc9",Eacute:"\xc9","eacute;":"\xe9",eacute:"\xe9","easter;":"\u2a6e","Ecaron;":"\u011a","ecaron;":"\u011b","ecir;":"\u2256","Ecirc;":"\xca",Ecirc:"\xca","ecirc;":"\xea",ecirc:"\xea","ecolon;":"\u2255","Ecy;":"\u042d","ecy;":"\u044d","eDDot;":"\u2a77","Edot;":"\u0116","eDot;":"\u2251","edot;":"\u0117","ee;":"\u2147","efDot;":"\u2252","Efr;":"\ud835\udd08","efr;":"\ud835\udd22","eg;":"\u2a9a","Egrave;":"\xc8",Egrave:"\xc8","egrave;":"\xe8",egrave:"\xe8","egs;":"\u2a96","egsdot;":"\u2a98","el;":"\u2a99","Element;":"\u2208","elinters;":"\u23e7","ell;":"\u2113","els;":"\u2a95","elsdot;":"\u2a97","Emacr;":"\u0112","emacr;":"\u0113","empty;":"\u2205","emptyset;":"\u2205","EmptySmallSquare;":"\u25fb","emptyv;":"\u2205","EmptyVerySmallSquare;":"\u25ab","emsp;":"\u2003","emsp13;":"\u2004","emsp14;":"\u2005","ENG;":"\u014a","eng;":"\u014b","ensp;":"\u2002","Eogon;":"\u0118","eogon;":"\u0119","Eopf;":"\ud835\udd3c","eopf;":"\ud835\udd56","epar;":"\u22d5","eparsl;":"\u29e3","eplus;":"\u2a71","epsi;":"\u03b5","Epsilon;":"\u0395","epsilon;":"\u03b5","epsiv;":"\u03f5","eqcirc;":"\u2256","eqcolon;":"\u2255","eqsim;":"\u2242","eqslantgtr;":"\u2a96","eqslantless;":"\u2a95","Equal;":"\u2a75","equals;":"=","EqualTilde;":"\u2242","equest;":"\u225f","Equilibrium;":"\u21cc","equiv;":"\u2261","equivDD;":"\u2a78","eqvparsl;":"\u29e5","erarr;":"\u2971","erDot;":"\u2253","Escr;":"\u2130","escr;":"\u212f","esdot;":"\u2250","Esim;":"\u2a73","esim;":"\u2242","Eta;":"\u0397","eta;":"\u03b7","ETH;":"\xd0",ETH:"\xd0","eth;":"\xf0",eth:"\xf0","Euml;":"\xcb",Euml:"\xcb","euml;":"\xeb",euml:"\xeb","euro;":"\u20ac","excl;":"!","exist;":"\u2203","Exists;":"\u2203","expectation;":"\u2130","ExponentialE;":"\u2147","exponentiale;":"\u2147","fallingdotseq;":"\u2252","Fcy;":"\u0424","fcy;":"\u0444","female;":"\u2640","ffilig;":"\ufb03","fflig;":"\ufb00","ffllig;":"\ufb04","Ffr;":"\ud835\udd09","ffr;":"\ud835\udd23","filig;":"\ufb01","FilledSmallSquare;":"\u25fc","FilledVerySmallSquare;":"\u25aa","fjlig;":"fj","flat;":"\u266d","fllig;":"\ufb02","fltns;":"\u25b1","fnof;":"\u0192","Fopf;":"\ud835\udd3d","fopf;":"\ud835\udd57","ForAll;":"\u2200","forall;":"\u2200","fork;":"\u22d4","forkv;":"\u2ad9","Fouriertrf;":"\u2131","fpartint;":"\u2a0d","frac12;":"\xbd",frac12:"\xbd","frac13;":"\u2153","frac14;":"\xbc",frac14:"\xbc","frac15;":"\u2155","frac16;":"\u2159","frac18;":"\u215b","frac23;":"\u2154","frac25;":"\u2156","frac34;":"\xbe",frac34:"\xbe","frac35;":"\u2157","frac38;":"\u215c","frac45;":"\u2158","frac56;":"\u215a","frac58;":"\u215d","frac78;":"\u215e","frasl;":"\u2044","frown;":"\u2322","Fscr;":"\u2131","fscr;":"\ud835\udcbb","gacute;":"\u01f5","Gamma;":"\u0393","gamma;":"\u03b3","Gammad;":"\u03dc","gammad;":"\u03dd","gap;":"\u2a86","Gbreve;":"\u011e","gbreve;":"\u011f","Gcedil;":"\u0122","Gcirc;":"\u011c","gcirc;":"\u011d","Gcy;":"\u0413","gcy;":"\u0433","Gdot;":"\u0120","gdot;":"\u0121","gE;":"\u2267","ge;":"\u2265","gEl;":"\u2a8c","gel;":"\u22db","geq;":"\u2265","geqq;":"\u2267","geqslant;":"\u2a7e","ges;":"\u2a7e","gescc;":"\u2aa9","gesdot;":"\u2a80","gesdoto;":"\u2a82","gesdotol;":"\u2a84","gesl;":"\u22db\ufe00","gesles;":"\u2a94","Gfr;":"\ud835\udd0a","gfr;":"\ud835\udd24","Gg;":"\u22d9","gg;":"\u226b","ggg;":"\u22d9","gimel;":"\u2137","GJcy;":"\u0403","gjcy;":"\u0453","gl;":"\u2277","gla;":"\u2aa5","glE;":"\u2a92","glj;":"\u2aa4","gnap;":"\u2a8a","gnapprox;":"\u2a8a","gnE;":"\u2269","gne;":"\u2a88","gneq;":"\u2a88","gneqq;":"\u2269","gnsim;":"\u22e7","Gopf;":"\ud835\udd3e","gopf;":"\ud835\udd58","grave;":"`","GreaterEqual;":"\u2265","GreaterEqualLess;":"\u22db","GreaterFullEqual;":"\u2267","GreaterGreater;":"\u2aa2","GreaterLess;":"\u2277","GreaterSlantEqual;":"\u2a7e","GreaterTilde;":"\u2273","Gscr;":"\ud835\udca2","gscr;":"\u210a","gsim;":"\u2273","gsime;":"\u2a8e","gsiml;":"\u2a90","GT;":">",GT:">","Gt;":"\u226b","gt;":">",gt:">","gtcc;":"\u2aa7","gtcir;":"\u2a7a","gtdot;":"\u22d7","gtlPar;":"\u2995","gtquest;":"\u2a7c","gtrapprox;":"\u2a86","gtrarr;":"\u2978","gtrdot;":"\u22d7","gtreqless;":"\u22db","gtreqqless;":"\u2a8c","gtrless;":"\u2277","gtrsim;":"\u2273","gvertneqq;":"\u2269\ufe00","gvnE;":"\u2269\ufe00","Hacek;":"\u02c7","hairsp;":"\u200a","half;":"\xbd","hamilt;":"\u210b","HARDcy;":"\u042a","hardcy;":"\u044a","hArr;":"\u21d4","harr;":"\u2194","harrcir;":"\u2948","harrw;":"\u21ad","Hat;":"^","hbar;":"\u210f","Hcirc;":"\u0124","hcirc;":"\u0125","hearts;":"\u2665","heartsuit;":"\u2665","hellip;":"\u2026","hercon;":"\u22b9","Hfr;":"\u210c","hfr;":"\ud835\udd25","HilbertSpace;":"\u210b","hksearow;":"\u2925","hkswarow;":"\u2926","hoarr;":"\u21ff","homtht;":"\u223b","hookleftarrow;":"\u21a9","hookrightarrow;":"\u21aa","Hopf;":"\u210d","hopf;":"\ud835\udd59","horbar;":"\u2015","HorizontalLine;":"\u2500","Hscr;":"\u210b","hscr;":"\ud835\udcbd","hslash;":"\u210f","Hstrok;":"\u0126","hstrok;":"\u0127","HumpDownHump;":"\u224e","HumpEqual;":"\u224f","hybull;":"\u2043","hyphen;":"\u2010","Iacute;":"\xcd",Iacute:"\xcd","iacute;":"\xed",iacute:"\xed","ic;":"\u2063","Icirc;":"\xce",Icirc:"\xce","icirc;":"\xee",icirc:"\xee","Icy;":"\u0418","icy;":"\u0438","Idot;":"\u0130","IEcy;":"\u0415","iecy;":"\u0435","iexcl;":"\xa1",iexcl:"\xa1","iff;":"\u21d4","Ifr;":"\u2111","ifr;":"\ud835\udd26","Igrave;":"\xcc",Igrave:"\xcc","igrave;":"\xec",igrave:"\xec","ii;":"\u2148","iiiint;":"\u2a0c","iiint;":"\u222d","iinfin;":"\u29dc","iiota;":"\u2129","IJlig;":"\u0132","ijlig;":"\u0133","Im;":"\u2111","Imacr;":"\u012a","imacr;":"\u012b","image;":"\u2111","ImaginaryI;":"\u2148","imagline;":"\u2110","imagpart;":"\u2111","imath;":"\u0131","imof;":"\u22b7","imped;":"\u01b5","Implies;":"\u21d2","in;":"\u2208","incare;":"\u2105","infin;":"\u221e","infintie;":"\u29dd","inodot;":"\u0131","Int;":"\u222c","int;":"\u222b","intcal;":"\u22ba","integers;":"\u2124","Integral;":"\u222b","intercal;":"\u22ba","Intersection;":"\u22c2","intlarhk;":"\u2a17","intprod;":"\u2a3c","InvisibleComma;":"\u2063","InvisibleTimes;":"\u2062","IOcy;":"\u0401","iocy;":"\u0451","Iogon;":"\u012e","iogon;":"\u012f","Iopf;":"\ud835\udd40","iopf;":"\ud835\udd5a","Iota;":"\u0399","iota;":"\u03b9","iprod;":"\u2a3c","iquest;":"\xbf",iquest:"\xbf","Iscr;":"\u2110","iscr;":"\ud835\udcbe","isin;":"\u2208","isindot;":"\u22f5","isinE;":"\u22f9","isins;":"\u22f4","isinsv;":"\u22f3","isinv;":"\u2208","it;":"\u2062","Itilde;":"\u0128","itilde;":"\u0129","Iukcy;":"\u0406","iukcy;":"\u0456","Iuml;":"\xcf",Iuml:"\xcf","iuml;":"\xef",iuml:"\xef","Jcirc;":"\u0134","jcirc;":"\u0135","Jcy;":"\u0419","jcy;":"\u0439","Jfr;":"\ud835\udd0d","jfr;":"\ud835\udd27","jmath;":"\u0237","Jopf;":"\ud835\udd41","jopf;":"\ud835\udd5b","Jscr;":"\ud835\udca5","jscr;":"\ud835\udcbf","Jsercy;":"\u0408","jsercy;":"\u0458","Jukcy;":"\u0404","jukcy;":"\u0454","Kappa;":"\u039a","kappa;":"\u03ba","kappav;":"\u03f0","Kcedil;":"\u0136","kcedil;":"\u0137","Kcy;":"\u041a","kcy;":"\u043a","Kfr;":"\ud835\udd0e","kfr;":"\ud835\udd28","kgreen;":"\u0138","KHcy;":"\u0425","khcy;":"\u0445","KJcy;":"\u040c","kjcy;":"\u045c","Kopf;":"\ud835\udd42","kopf;":"\ud835\udd5c","Kscr;":"\ud835\udca6","kscr;":"\ud835\udcc0","lAarr;":"\u21da","Lacute;":"\u0139","lacute;":"\u013a","laemptyv;":"\u29b4","lagran;":"\u2112","Lambda;":"\u039b","lambda;":"\u03bb","Lang;":"\u27ea","lang;":"\u27e8","langd;":"\u2991","langle;":"\u27e8","lap;":"\u2a85","Laplacetrf;":"\u2112","laquo;":"\xab",laquo:"\xab","Larr;":"\u219e","lArr;":"\u21d0","larr;":"\u2190","larrb;":"\u21e4","larrbfs;":"\u291f","larrfs;":"\u291d","larrhk;":"\u21a9","larrlp;":"\u21ab","larrpl;":"\u2939","larrsim;":"\u2973","larrtl;":"\u21a2","lat;":"\u2aab","lAtail;":"\u291b","latail;":"\u2919","late;":"\u2aad","lates;":"\u2aad\ufe00","lBarr;":"\u290e","lbarr;":"\u290c","lbbrk;":"\u2772","lbrace;":"{","lbrack;":"[","lbrke;":"\u298b","lbrksld;":"\u298f","lbrkslu;":"\u298d","Lcaron;":"\u013d","lcaron;":"\u013e","Lcedil;":"\u013b","lcedil;":"\u013c","lceil;":"\u2308","lcub;":"{","Lcy;":"\u041b","lcy;":"\u043b","ldca;":"\u2936","ldquo;":"\u201c","ldquor;":"\u201e","ldrdhar;":"\u2967","ldrushar;":"\u294b","ldsh;":"\u21b2","lE;":"\u2266","le;":"\u2264","LeftAngleBracket;":"\u27e8","LeftArrow;":"\u2190","Leftarrow;":"\u21d0","leftarrow;":"\u2190","LeftArrowBar;":"\u21e4","LeftArrowRightArrow;":"\u21c6","leftarrowtail;":"\u21a2","LeftCeiling;":"\u2308","LeftDoubleBracket;":"\u27e6","LeftDownTeeVector;":"\u2961","LeftDownVector;":"\u21c3","LeftDownVectorBar;":"\u2959","LeftFloor;":"\u230a","leftharpoondown;":"\u21bd","leftharpoonup;":"\u21bc","leftleftarrows;":"\u21c7","LeftRightArrow;":"\u2194","Leftrightarrow;":"\u21d4","leftrightarrow;":"\u2194","leftrightarrows;":"\u21c6","leftrightharpoons;":"\u21cb","leftrightsquigarrow;":"\u21ad","LeftRightVector;":"\u294e","LeftTee;":"\u22a3","LeftTeeArrow;":"\u21a4","LeftTeeVector;":"\u295a","leftthreetimes;":"\u22cb","LeftTriangle;":"\u22b2","LeftTriangleBar;":"\u29cf","LeftTriangleEqual;":"\u22b4","LeftUpDownVector;":"\u2951","LeftUpTeeVector;":"\u2960","LeftUpVector;":"\u21bf","LeftUpVectorBar;":"\u2958","LeftVector;":"\u21bc","LeftVectorBar;":"\u2952","lEg;":"\u2a8b","leg;":"\u22da","leq;":"\u2264","leqq;":"\u2266","leqslant;":"\u2a7d","les;":"\u2a7d","lescc;":"\u2aa8","lesdot;":"\u2a7f","lesdoto;":"\u2a81","lesdotor;":"\u2a83","lesg;":"\u22da\ufe00","lesges;":"\u2a93","lessapprox;":"\u2a85","lessdot;":"\u22d6","lesseqgtr;":"\u22da","lesseqqgtr;":"\u2a8b","LessEqualGreater;":"\u22da","LessFullEqual;":"\u2266","LessGreater;":"\u2276","lessgtr;":"\u2276","LessLess;":"\u2aa1","lesssim;":"\u2272","LessSlantEqual;":"\u2a7d","LessTilde;":"\u2272","lfisht;":"\u297c","lfloor;":"\u230a","Lfr;":"\ud835\udd0f","lfr;":"\ud835\udd29","lg;":"\u2276","lgE;":"\u2a91","lHar;":"\u2962","lhard;":"\u21bd","lharu;":"\u21bc","lharul;":"\u296a","lhblk;":"\u2584","LJcy;":"\u0409","ljcy;":"\u0459","Ll;":"\u22d8","ll;":"\u226a","llarr;":"\u21c7","llcorner;":"\u231e","Lleftarrow;":"\u21da","llhard;":"\u296b","lltri;":"\u25fa","Lmidot;":"\u013f","lmidot;":"\u0140","lmoust;":"\u23b0","lmoustache;":"\u23b0","lnap;":"\u2a89","lnapprox;":"\u2a89","lnE;":"\u2268","lne;":"\u2a87","lneq;":"\u2a87","lneqq;":"\u2268","lnsim;":"\u22e6","loang;":"\u27ec","loarr;":"\u21fd","lobrk;":"\u27e6","LongLeftArrow;":"\u27f5","Longleftarrow;":"\u27f8","longleftarrow;":"\u27f5","LongLeftRightArrow;":"\u27f7","Longleftrightarrow;":"\u27fa","longleftrightarrow;":"\u27f7","longmapsto;":"\u27fc","LongRightArrow;":"\u27f6","Longrightarrow;":"\u27f9","longrightarrow;":"\u27f6","looparrowleft;":"\u21ab","looparrowright;":"\u21ac","lopar;":"\u2985","Lopf;":"\ud835\udd43","lopf;":"\ud835\udd5d","loplus;":"\u2a2d","lotimes;":"\u2a34","lowast;":"\u2217","lowbar;":"_","LowerLeftArrow;":"\u2199","LowerRightArrow;":"\u2198","loz;":"\u25ca","lozenge;":"\u25ca","lozf;":"\u29eb","lpar;":"(","lparlt;":"\u2993","lrarr;":"\u21c6","lrcorner;":"\u231f","lrhar;":"\u21cb","lrhard;":"\u296d","lrm;":"\u200e","lrtri;":"\u22bf","lsaquo;":"\u2039","Lscr;":"\u2112","lscr;":"\ud835\udcc1","Lsh;":"\u21b0","lsh;":"\u21b0","lsim;":"\u2272","lsime;":"\u2a8d","lsimg;":"\u2a8f","lsqb;":"[","lsquo;":"\u2018","lsquor;":"\u201a","Lstrok;":"\u0141","lstrok;":"\u0142","LT;":"<",LT:"<","Lt;":"\u226a","lt;":"<",lt:"<","ltcc;":"\u2aa6","ltcir;":"\u2a79","ltdot;":"\u22d6","lthree;":"\u22cb","ltimes;":"\u22c9","ltlarr;":"\u2976","ltquest;":"\u2a7b","ltri;":"\u25c3","ltrie;":"\u22b4","ltrif;":"\u25c2","ltrPar;":"\u2996","lurdshar;":"\u294a","luruhar;":"\u2966","lvertneqq;":"\u2268\ufe00","lvnE;":"\u2268\ufe00","macr;":"\xaf",macr:"\xaf","male;":"\u2642","malt;":"\u2720","maltese;":"\u2720","Map;":"\u2905","map;":"\u21a6","mapsto;":"\u21a6","mapstodown;":"\u21a7","mapstoleft;":"\u21a4","mapstoup;":"\u21a5","marker;":"\u25ae","mcomma;":"\u2a29","Mcy;":"\u041c","mcy;":"\u043c","mdash;":"\u2014","mDDot;":"\u223a","measuredangle;":"\u2221","MediumSpace;":"\u205f","Mellintrf;":"\u2133","Mfr;":"\ud835\udd10","mfr;":"\ud835\udd2a","mho;":"\u2127","micro;":"\xb5",micro:"\xb5","mid;":"\u2223","midast;":"*","midcir;":"\u2af0","middot;":"\xb7",middot:"\xb7","minus;":"\u2212","minusb;":"\u229f","minusd;":"\u2238","minusdu;":"\u2a2a","MinusPlus;":"\u2213","mlcp;":"\u2adb","mldr;":"\u2026","mnplus;":"\u2213","models;":"\u22a7","Mopf;":"\ud835\udd44","mopf;":"\ud835\udd5e","mp;":"\u2213","Mscr;":"\u2133","mscr;":"\ud835\udcc2","mstpos;":"\u223e","Mu;":"\u039c","mu;":"\u03bc","multimap;":"\u22b8","mumap;":"\u22b8","nabla;":"\u2207","Nacute;":"\u0143","nacute;":"\u0144","nang;":"\u2220\u20d2","nap;":"\u2249","napE;":"\u2a70\u0338","napid;":"\u224b\u0338","napos;":"\u0149","napprox;":"\u2249","natur;":"\u266e","natural;":"\u266e","naturals;":"\u2115","nbsp;":"\xa0",nbsp:"\xa0","nbump;":"\u224e\u0338","nbumpe;":"\u224f\u0338","ncap;":"\u2a43","Ncaron;":"\u0147","ncaron;":"\u0148","Ncedil;":"\u0145","ncedil;":"\u0146","ncong;":"\u2247","ncongdot;":"\u2a6d\u0338","ncup;":"\u2a42","Ncy;":"\u041d","ncy;":"\u043d","ndash;":"\u2013","ne;":"\u2260","nearhk;":"\u2924","neArr;":"\u21d7","nearr;":"\u2197","nearrow;":"\u2197","nedot;":"\u2250\u0338","NegativeMediumSpace;":"\u200b","NegativeThickSpace;":"\u200b","NegativeThinSpace;":"\u200b","NegativeVeryThinSpace;":"\u200b","nequiv;":"\u2262","nesear;":"\u2928","nesim;":"\u2242\u0338","NestedGreaterGreater;":"\u226b","NestedLessLess;":"\u226a","NewLine;":"\n","nexist;":"\u2204","nexists;":"\u2204","Nfr;":"\ud835\udd11","nfr;":"\ud835\udd2b","ngE;":"\u2267\u0338","nge;":"\u2271","ngeq;":"\u2271","ngeqq;":"\u2267\u0338","ngeqslant;":"\u2a7e\u0338","nges;":"\u2a7e\u0338","nGg;":"\u22d9\u0338","ngsim;":"\u2275","nGt;":"\u226b\u20d2","ngt;":"\u226f","ngtr;":"\u226f","nGtv;":"\u226b\u0338","nhArr;":"\u21ce","nharr;":"\u21ae","nhpar;":"\u2af2","ni;":"\u220b","nis;":"\u22fc","nisd;":"\u22fa","niv;":"\u220b","NJcy;":"\u040a","njcy;":"\u045a","nlArr;":"\u21cd","nlarr;":"\u219a","nldr;":"\u2025","nlE;":"\u2266\u0338","nle;":"\u2270","nLeftarrow;":"\u21cd","nleftarrow;":"\u219a","nLeftrightarrow;":"\u21ce","nleftrightarrow;":"\u21ae","nleq;":"\u2270","nleqq;":"\u2266\u0338","nleqslant;":"\u2a7d\u0338","nles;":"\u2a7d\u0338","nless;":"\u226e","nLl;":"\u22d8\u0338","nlsim;":"\u2274","nLt;":"\u226a\u20d2","nlt;":"\u226e","nltri;":"\u22ea","nltrie;":"\u22ec","nLtv;":"\u226a\u0338","nmid;":"\u2224","NoBreak;":"\u2060","NonBreakingSpace;":"\xa0","Nopf;":"\u2115","nopf;":"\ud835\udd5f","Not;":"\u2aec","not;":"\xac",not:"\xac","NotCongruent;":"\u2262","NotCupCap;":"\u226d","NotDoubleVerticalBar;":"\u2226","NotElement;":"\u2209","NotEqual;":"\u2260","NotEqualTilde;":"\u2242\u0338","NotExists;":"\u2204","NotGreater;":"\u226f","NotGreaterEqual;":"\u2271","NotGreaterFullEqual;":"\u2267\u0338","NotGreaterGreater;":"\u226b\u0338","NotGreaterLess;":"\u2279","NotGreaterSlantEqual;":"\u2a7e\u0338","NotGreaterTilde;":"\u2275","NotHumpDownHump;":"\u224e\u0338","NotHumpEqual;":"\u224f\u0338","notin;":"\u2209","notindot;":"\u22f5\u0338","notinE;":"\u22f9\u0338","notinva;":"\u2209","notinvb;":"\u22f7","notinvc;":"\u22f6","NotLeftTriangle;":"\u22ea","NotLeftTriangleBar;":"\u29cf\u0338","NotLeftTriangleEqual;":"\u22ec","NotLess;":"\u226e","NotLessEqual;":"\u2270","NotLessGreater;":"\u2278","NotLessLess;":"\u226a\u0338","NotLessSlantEqual;":"\u2a7d\u0338","NotLessTilde;":"\u2274","NotNestedGreaterGreater;":"\u2aa2\u0338","NotNestedLessLess;":"\u2aa1\u0338","notni;":"\u220c","notniva;":"\u220c","notnivb;":"\u22fe","notnivc;":"\u22fd","NotPrecedes;":"\u2280","NotPrecedesEqual;":"\u2aaf\u0338","NotPrecedesSlantEqual;":"\u22e0","NotReverseElement;":"\u220c","NotRightTriangle;":"\u22eb","NotRightTriangleBar;":"\u29d0\u0338","NotRightTriangleEqual;":"\u22ed","NotSquareSubset;":"\u228f\u0338","NotSquareSubsetEqual;":"\u22e2","NotSquareSuperset;":"\u2290\u0338","NotSquareSupersetEqual;":"\u22e3","NotSubset;":"\u2282\u20d2","NotSubsetEqual;":"\u2288","NotSucceeds;":"\u2281","NotSucceedsEqual;":"\u2ab0\u0338","NotSucceedsSlantEqual;":"\u22e1","NotSucceedsTilde;":"\u227f\u0338","NotSuperset;":"\u2283\u20d2","NotSupersetEqual;":"\u2289","NotTilde;":"\u2241","NotTildeEqual;":"\u2244","NotTildeFullEqual;":"\u2247","NotTildeTilde;":"\u2249","NotVerticalBar;":"\u2224","npar;":"\u2226","nparallel;":"\u2226","nparsl;":"\u2afd\u20e5","npart;":"\u2202\u0338","npolint;":"\u2a14","npr;":"\u2280","nprcue;":"\u22e0","npre;":"\u2aaf\u0338","nprec;":"\u2280","npreceq;":"\u2aaf\u0338","nrArr;":"\u21cf","nrarr;":"\u219b","nrarrc;":"\u2933\u0338","nrarrw;":"\u219d\u0338","nRightarrow;":"\u21cf","nrightarrow;":"\u219b","nrtri;":"\u22eb","nrtrie;":"\u22ed","nsc;":"\u2281","nsccue;":"\u22e1","nsce;":"\u2ab0\u0338","Nscr;":"\ud835\udca9","nscr;":"\ud835\udcc3","nshortmid;":"\u2224","nshortparallel;":"\u2226","nsim;":"\u2241","nsime;":"\u2244","nsimeq;":"\u2244","nsmid;":"\u2224","nspar;":"\u2226","nsqsube;":"\u22e2","nsqsupe;":"\u22e3","nsub;":"\u2284","nsubE;":"\u2ac5\u0338","nsube;":"\u2288","nsubset;":"\u2282\u20d2","nsubseteq;":"\u2288","nsubseteqq;":"\u2ac5\u0338","nsucc;":"\u2281","nsucceq;":"\u2ab0\u0338","nsup;":"\u2285","nsupE;":"\u2ac6\u0338","nsupe;":"\u2289","nsupset;":"\u2283\u20d2","nsupseteq;":"\u2289","nsupseteqq;":"\u2ac6\u0338","ntgl;":"\u2279","Ntilde;":"\xd1",Ntilde:"\xd1","ntilde;":"\xf1",ntilde:"\xf1","ntlg;":"\u2278","ntriangleleft;":"\u22ea","ntrianglelefteq;":"\u22ec","ntriangleright;":"\u22eb","ntrianglerighteq;":"\u22ed","Nu;":"\u039d","nu;":"\u03bd","num;":"#","numero;":"\u2116","numsp;":"\u2007","nvap;":"\u224d\u20d2","nVDash;":"\u22af","nVdash;":"\u22ae","nvDash;":"\u22ad","nvdash;":"\u22ac","nvge;":"\u2265\u20d2","nvgt;":">\u20d2","nvHarr;":"\u2904","nvinfin;":"\u29de","nvlArr;":"\u2902","nvle;":"\u2264\u20d2","nvlt;":"<\u20d2","nvltrie;":"\u22b4\u20d2","nvrArr;":"\u2903","nvrtrie;":"\u22b5\u20d2","nvsim;":"\u223c\u20d2","nwarhk;":"\u2923","nwArr;":"\u21d6","nwarr;":"\u2196","nwarrow;":"\u2196","nwnear;":"\u2927","Oacute;":"\xd3",Oacute:"\xd3","oacute;":"\xf3",oacute:"\xf3","oast;":"\u229b","ocir;":"\u229a","Ocirc;":"\xd4",Ocirc:"\xd4","ocirc;":"\xf4",ocirc:"\xf4","Ocy;":"\u041e","ocy;":"\u043e","odash;":"\u229d","Odblac;":"\u0150","odblac;":"\u0151","odiv;":"\u2a38","odot;":"\u2299","odsold;":"\u29bc","OElig;":"\u0152","oelig;":"\u0153","ofcir;":"\u29bf","Ofr;":"\ud835\udd12","ofr;":"\ud835\udd2c","ogon;":"\u02db","Ograve;":"\xd2",Ograve:"\xd2","ograve;":"\xf2",ograve:"\xf2","ogt;":"\u29c1","ohbar;":"\u29b5","ohm;":"\u03a9","oint;":"\u222e","olarr;":"\u21ba","olcir;":"\u29be","olcross;":"\u29bb","oline;":"\u203e","olt;":"\u29c0","Omacr;":"\u014c","omacr;":"\u014d","Omega;":"\u03a9","omega;":"\u03c9","Omicron;":"\u039f","omicron;":"\u03bf","omid;":"\u29b6","ominus;":"\u2296","Oopf;":"\ud835\udd46","oopf;":"\ud835\udd60","opar;":"\u29b7","OpenCurlyDoubleQuote;":"\u201c","OpenCurlyQuote;":"\u2018","operp;":"\u29b9","oplus;":"\u2295","Or;":"\u2a54","or;":"\u2228","orarr;":"\u21bb","ord;":"\u2a5d","order;":"\u2134","orderof;":"\u2134","ordf;":"\xaa",ordf:"\xaa","ordm;":"\xba",ordm:"\xba","origof;":"\u22b6","oror;":"\u2a56","orslope;":"\u2a57","orv;":"\u2a5b","oS;":"\u24c8","Oscr;":"\ud835\udcaa","oscr;":"\u2134","Oslash;":"\xd8",Oslash:"\xd8","oslash;":"\xf8",oslash:"\xf8","osol;":"\u2298","Otilde;":"\xd5",Otilde:"\xd5","otilde;":"\xf5",otilde:"\xf5","Otimes;":"\u2a37","otimes;":"\u2297","otimesas;":"\u2a36","Ouml;":"\xd6",Ouml:"\xd6","ouml;":"\xf6",ouml:"\xf6","ovbar;":"\u233d","OverBar;":"\u203e","OverBrace;":"\u23de","OverBracket;":"\u23b4","OverParenthesis;":"\u23dc","par;":"\u2225","para;":"\xb6",para:"\xb6","parallel;":"\u2225","parsim;":"\u2af3","parsl;":"\u2afd","part;":"\u2202","PartialD;":"\u2202","Pcy;":"\u041f","pcy;":"\u043f","percnt;":"%","period;":".","permil;":"\u2030","perp;":"\u22a5","pertenk;":"\u2031","Pfr;":"\ud835\udd13","pfr;":"\ud835\udd2d","Phi;":"\u03a6","phi;":"\u03c6","phiv;":"\u03d5","phmmat;":"\u2133","phone;":"\u260e","Pi;":"\u03a0","pi;":"\u03c0","pitchfork;":"\u22d4","piv;":"\u03d6","planck;":"\u210f","planckh;":"\u210e","plankv;":"\u210f","plus;":"+","plusacir;":"\u2a23","plusb;":"\u229e","pluscir;":"\u2a22","plusdo;":"\u2214","plusdu;":"\u2a25","pluse;":"\u2a72","PlusMinus;":"\xb1","plusmn;":"\xb1",plusmn:"\xb1","plussim;":"\u2a26","plustwo;":"\u2a27","pm;":"\xb1","Poincareplane;":"\u210c","pointint;":"\u2a15","Popf;":"\u2119","popf;":"\ud835\udd61","pound;":"\xa3",pound:"\xa3","Pr;":"\u2abb","pr;":"\u227a","prap;":"\u2ab7","prcue;":"\u227c","prE;":"\u2ab3","pre;":"\u2aaf","prec;":"\u227a","precapprox;":"\u2ab7","preccurlyeq;":"\u227c","Precedes;":"\u227a","PrecedesEqual;":"\u2aaf","PrecedesSlantEqual;":"\u227c","PrecedesTilde;":"\u227e","preceq;":"\u2aaf","precnapprox;":"\u2ab9","precneqq;":"\u2ab5","precnsim;":"\u22e8","precsim;":"\u227e","Prime;":"\u2033","prime;":"\u2032","primes;":"\u2119","prnap;":"\u2ab9","prnE;":"\u2ab5","prnsim;":"\u22e8","prod;":"\u220f","Product;":"\u220f","profalar;":"\u232e","profline;":"\u2312","profsurf;":"\u2313","prop;":"\u221d","Proportion;":"\u2237","Proportional;":"\u221d","propto;":"\u221d","prsim;":"\u227e","prurel;":"\u22b0","Pscr;":"\ud835\udcab","pscr;":"\ud835\udcc5","Psi;":"\u03a8","psi;":"\u03c8","puncsp;":"\u2008","Qfr;":"\ud835\udd14","qfr;":"\ud835\udd2e","qint;":"\u2a0c","Qopf;":"\u211a","qopf;":"\ud835\udd62","qprime;":"\u2057","Qscr;":"\ud835\udcac","qscr;":"\ud835\udcc6","quaternions;":"\u210d","quatint;":"\u2a16","quest;":"?","questeq;":"\u225f","QUOT;":'"',QUOT:'"',"quot;":'"',quot:'"',"rAarr;":"\u21db","race;":"\u223d\u0331","Racute;":"\u0154","racute;":"\u0155","radic;":"\u221a","raemptyv;":"\u29b3","Rang;":"\u27eb","rang;":"\u27e9","rangd;":"\u2992","range;":"\u29a5","rangle;":"\u27e9","raquo;":"\xbb",raquo:"\xbb","Rarr;":"\u21a0","rArr;":"\u21d2","rarr;":"\u2192","rarrap;":"\u2975","rarrb;":"\u21e5","rarrbfs;":"\u2920","rarrc;":"\u2933","rarrfs;":"\u291e","rarrhk;":"\u21aa","rarrlp;":"\u21ac","rarrpl;":"\u2945","rarrsim;":"\u2974","Rarrtl;":"\u2916","rarrtl;":"\u21a3","rarrw;":"\u219d","rAtail;":"\u291c","ratail;":"\u291a","ratio;":"\u2236","rationals;":"\u211a","RBarr;":"\u2910","rBarr;":"\u290f","rbarr;":"\u290d","rbbrk;":"\u2773","rbrace;":"}","rbrack;":"]","rbrke;":"\u298c","rbrksld;":"\u298e","rbrkslu;":"\u2990","Rcaron;":"\u0158","rcaron;":"\u0159","Rcedil;":"\u0156","rcedil;":"\u0157","rceil;":"\u2309","rcub;":"}","Rcy;":"\u0420","rcy;":"\u0440","rdca;":"\u2937","rdldhar;":"\u2969","rdquo;":"\u201d","rdquor;":"\u201d","rdsh;":"\u21b3","Re;":"\u211c","real;":"\u211c","realine;":"\u211b","realpart;":"\u211c","reals;":"\u211d","rect;":"\u25ad","REG;":"\xae",REG:"\xae","reg;":"\xae",reg:"\xae","ReverseElement;":"\u220b","ReverseEquilibrium;":"\u21cb","ReverseUpEquilibrium;":"\u296f","rfisht;":"\u297d","rfloor;":"\u230b","Rfr;":"\u211c","rfr;":"\ud835\udd2f","rHar;":"\u2964","rhard;":"\u21c1","rharu;":"\u21c0","rharul;":"\u296c","Rho;":"\u03a1","rho;":"\u03c1","rhov;":"\u03f1","RightAngleBracket;":"\u27e9","RightArrow;":"\u2192","Rightarrow;":"\u21d2","rightarrow;":"\u2192","RightArrowBar;":"\u21e5","RightArrowLeftArrow;":"\u21c4","rightarrowtail;":"\u21a3","RightCeiling;":"\u2309","RightDoubleBracket;":"\u27e7","RightDownTeeVector;":"\u295d","RightDownVector;":"\u21c2","RightDownVectorBar;":"\u2955","RightFloor;":"\u230b","rightharpoondown;":"\u21c1","rightharpoonup;":"\u21c0","rightleftarrows;":"\u21c4","rightleftharpoons;":"\u21cc","rightrightarrows;":"\u21c9","rightsquigarrow;":"\u219d","RightTee;":"\u22a2","RightTeeArrow;":"\u21a6","RightTeeVector;":"\u295b","rightthreetimes;":"\u22cc","RightTriangle;":"\u22b3","RightTriangleBar;":"\u29d0","RightTriangleEqual;":"\u22b5","RightUpDownVector;":"\u294f","RightUpTeeVector;":"\u295c","RightUpVector;":"\u21be","RightUpVectorBar;":"\u2954","RightVector;":"\u21c0","RightVectorBar;":"\u2953","ring;":"\u02da","risingdotseq;":"\u2253","rlarr;":"\u21c4","rlhar;":"\u21cc","rlm;":"\u200f","rmoust;":"\u23b1","rmoustache;":"\u23b1","rnmid;":"\u2aee","roang;":"\u27ed","roarr;":"\u21fe","robrk;":"\u27e7","ropar;":"\u2986","Ropf;":"\u211d","ropf;":"\ud835\udd63","roplus;":"\u2a2e","rotimes;":"\u2a35","RoundImplies;":"\u2970","rpar;":")","rpargt;":"\u2994","rppolint;":"\u2a12","rrarr;":"\u21c9","Rrightarrow;":"\u21db","rsaquo;":"\u203a","Rscr;":"\u211b","rscr;":"\ud835\udcc7","Rsh;":"\u21b1","rsh;":"\u21b1","rsqb;":"]","rsquo;":"\u2019","rsquor;":"\u2019","rthree;":"\u22cc","rtimes;":"\u22ca","rtri;":"\u25b9","rtrie;":"\u22b5","rtrif;":"\u25b8","rtriltri;":"\u29ce","RuleDelayed;":"\u29f4","ruluhar;":"\u2968","rx;":"\u211e","Sacute;":"\u015a","sacute;":"\u015b","sbquo;":"\u201a","Sc;":"\u2abc","sc;":"\u227b","scap;":"\u2ab8","Scaron;":"\u0160","scaron;":"\u0161","sccue;":"\u227d","scE;":"\u2ab4","sce;":"\u2ab0","Scedil;":"\u015e","scedil;":"\u015f","Scirc;":"\u015c","scirc;":"\u015d","scnap;":"\u2aba","scnE;":"\u2ab6","scnsim;":"\u22e9","scpolint;":"\u2a13","scsim;":"\u227f","Scy;":"\u0421","scy;":"\u0441","sdot;":"\u22c5","sdotb;":"\u22a1","sdote;":"\u2a66","searhk;":"\u2925","seArr;":"\u21d8","searr;":"\u2198","searrow;":"\u2198","sect;":"\xa7",sect:"\xa7","semi;":";","seswar;":"\u2929","setminus;":"\u2216","setmn;":"\u2216","sext;":"\u2736","Sfr;":"\ud835\udd16","sfr;":"\ud835\udd30","sfrown;":"\u2322","sharp;":"\u266f","SHCHcy;":"\u0429","shchcy;":"\u0449","SHcy;":"\u0428","shcy;":"\u0448","ShortDownArrow;":"\u2193","ShortLeftArrow;":"\u2190","shortmid;":"\u2223","shortparallel;":"\u2225","ShortRightArrow;":"\u2192","ShortUpArrow;":"\u2191","shy;":"\xad",shy:"\xad","Sigma;":"\u03a3","sigma;":"\u03c3","sigmaf;":"\u03c2","sigmav;":"\u03c2","sim;":"\u223c","simdot;":"\u2a6a","sime;":"\u2243","simeq;":"\u2243","simg;":"\u2a9e","simgE;":"\u2aa0","siml;":"\u2a9d","simlE;":"\u2a9f","simne;":"\u2246","simplus;":"\u2a24","simrarr;":"\u2972","slarr;":"\u2190","SmallCircle;":"\u2218","smallsetminus;":"\u2216","smashp;":"\u2a33","smeparsl;":"\u29e4","smid;":"\u2223","smile;":"\u2323","smt;":"\u2aaa","smte;":"\u2aac","smtes;":"\u2aac\ufe00","SOFTcy;":"\u042c","softcy;":"\u044c","sol;":"/","solb;":"\u29c4","solbar;":"\u233f","Sopf;":"\ud835\udd4a","sopf;":"\ud835\udd64","spades;":"\u2660","spadesuit;":"\u2660","spar;":"\u2225","sqcap;":"\u2293","sqcaps;":"\u2293\ufe00","sqcup;":"\u2294","sqcups;":"\u2294\ufe00","Sqrt;":"\u221a","sqsub;":"\u228f","sqsube;":"\u2291","sqsubset;":"\u228f","sqsubseteq;":"\u2291","sqsup;":"\u2290","sqsupe;":"\u2292","sqsupset;":"\u2290","sqsupseteq;":"\u2292","squ;":"\u25a1","Square;":"\u25a1","square;":"\u25a1","SquareIntersection;":"\u2293","SquareSubset;":"\u228f","SquareSubsetEqual;":"\u2291","SquareSuperset;":"\u2290","SquareSupersetEqual;":"\u2292","SquareUnion;":"\u2294","squarf;":"\u25aa","squf;":"\u25aa","srarr;":"\u2192","Sscr;":"\ud835\udcae","sscr;":"\ud835\udcc8","ssetmn;":"\u2216","ssmile;":"\u2323","sstarf;":"\u22c6","Star;":"\u22c6","star;":"\u2606","starf;":"\u2605","straightepsilon;":"\u03f5","straightphi;":"\u03d5","strns;":"\xaf","Sub;":"\u22d0","sub;":"\u2282","subdot;":"\u2abd","subE;":"\u2ac5","sube;":"\u2286","subedot;":"\u2ac3","submult;":"\u2ac1","subnE;":"\u2acb","subne;":"\u228a","subplus;":"\u2abf","subrarr;":"\u2979","Subset;":"\u22d0","subset;":"\u2282","subseteq;":"\u2286","subseteqq;":"\u2ac5","SubsetEqual;":"\u2286","subsetneq;":"\u228a","subsetneqq;":"\u2acb","subsim;":"\u2ac7","subsub;":"\u2ad5","subsup;":"\u2ad3","succ;":"\u227b","succapprox;":"\u2ab8","succcurlyeq;":"\u227d","Succeeds;":"\u227b","SucceedsEqual;":"\u2ab0","SucceedsSlantEqual;":"\u227d","SucceedsTilde;":"\u227f","succeq;":"\u2ab0","succnapprox;":"\u2aba","succneqq;":"\u2ab6","succnsim;":"\u22e9","succsim;":"\u227f","SuchThat;":"\u220b","Sum;":"\u2211","sum;":"\u2211","sung;":"\u266a","Sup;":"\u22d1","sup;":"\u2283","sup1;":"\xb9",sup1:"\xb9","sup2;":"\xb2",sup2:"\xb2","sup3;":"\xb3",sup3:"\xb3","supdot;":"\u2abe","supdsub;":"\u2ad8","supE;":"\u2ac6","supe;":"\u2287","supedot;":"\u2ac4","Superset;":"\u2283","SupersetEqual;":"\u2287","suphsol;":"\u27c9","suphsub;":"\u2ad7","suplarr;":"\u297b","supmult;":"\u2ac2","supnE;":"\u2acc","supne;":"\u228b","supplus;":"\u2ac0","Supset;":"\u22d1","supset;":"\u2283","supseteq;":"\u2287","supseteqq;":"\u2ac6","supsetneq;":"\u228b","supsetneqq;":"\u2acc","supsim;":"\u2ac8","supsub;":"\u2ad4","supsup;":"\u2ad6","swarhk;":"\u2926","swArr;":"\u21d9","swarr;":"\u2199","swarrow;":"\u2199","swnwar;":"\u292a","szlig;":"\xdf",szlig:"\xdf","Tab;":"\t","target;":"\u2316","Tau;":"\u03a4","tau;":"\u03c4","tbrk;":"\u23b4","Tcaron;":"\u0164","tcaron;":"\u0165","Tcedil;":"\u0162","tcedil;":"\u0163","Tcy;":"\u0422","tcy;":"\u0442","tdot;":"\u20db","telrec;":"\u2315","Tfr;":"\ud835\udd17","tfr;":"\ud835\udd31","there4;":"\u2234","Therefore;":"\u2234","therefore;":"\u2234","Theta;":"\u0398","theta;":"\u03b8","thetasym;":"\u03d1","thetav;":"\u03d1","thickapprox;":"\u2248","thicksim;":"\u223c","ThickSpace;":"\u205f\u200a","thinsp;":"\u2009","ThinSpace;":"\u2009","thkap;":"\u2248","thksim;":"\u223c","THORN;":"\xde",THORN:"\xde","thorn;":"\xfe",thorn:"\xfe","Tilde;":"\u223c","tilde;":"\u02dc","TildeEqual;":"\u2243","TildeFullEqual;":"\u2245","TildeTilde;":"\u2248","times;":"\xd7",times:"\xd7","timesb;":"\u22a0","timesbar;":"\u2a31","timesd;":"\u2a30","tint;":"\u222d","toea;":"\u2928","top;":"\u22a4","topbot;":"\u2336","topcir;":"\u2af1","Topf;":"\ud835\udd4b","topf;":"\ud835\udd65","topfork;":"\u2ada","tosa;":"\u2929","tprime;":"\u2034","TRADE;":"\u2122","trade;":"\u2122","triangle;":"\u25b5","triangledown;":"\u25bf","triangleleft;":"\u25c3","trianglelefteq;":"\u22b4","triangleq;":"\u225c","triangleright;":"\u25b9","trianglerighteq;":"\u22b5","tridot;":"\u25ec","trie;":"\u225c","triminus;":"\u2a3a","TripleDot;":"\u20db","triplus;":"\u2a39","trisb;":"\u29cd","tritime;":"\u2a3b","trpezium;":"\u23e2","Tscr;":"\ud835\udcaf","tscr;":"\ud835\udcc9","TScy;":"\u0426","tscy;":"\u0446","TSHcy;":"\u040b","tshcy;":"\u045b","Tstrok;":"\u0166","tstrok;":"\u0167","twixt;":"\u226c","twoheadleftarrow;":"\u219e","twoheadrightarrow;":"\u21a0","Uacute;":"\xda",Uacute:"\xda","uacute;":"\xfa",uacute:"\xfa","Uarr;":"\u219f","uArr;":"\u21d1","uarr;":"\u2191","Uarrocir;":"\u2949","Ubrcy;":"\u040e","ubrcy;":"\u045e","Ubreve;":"\u016c","ubreve;":"\u016d","Ucirc;":"\xdb",Ucirc:"\xdb","ucirc;":"\xfb",ucirc:"\xfb","Ucy;":"\u0423","ucy;":"\u0443","udarr;":"\u21c5","Udblac;":"\u0170","udblac;":"\u0171","udhar;":"\u296e","ufisht;":"\u297e","Ufr;":"\ud835\udd18","ufr;":"\ud835\udd32","Ugrave;":"\xd9",Ugrave:"\xd9","ugrave;":"\xf9",ugrave:"\xf9","uHar;":"\u2963","uharl;":"\u21bf","uharr;":"\u21be","uhblk;":"\u2580","ulcorn;":"\u231c","ulcorner;":"\u231c","ulcrop;":"\u230f","ultri;":"\u25f8","Umacr;":"\u016a","umacr;":"\u016b","uml;":"\xa8",uml:"\xa8","UnderBar;":"_","UnderBrace;":"\u23df","UnderBracket;":"\u23b5","UnderParenthesis;":"\u23dd","Union;":"\u22c3","UnionPlus;":"\u228e","Uogon;":"\u0172","uogon;":"\u0173","Uopf;":"\ud835\udd4c","uopf;":"\ud835\udd66","UpArrow;":"\u2191","Uparrow;":"\u21d1","uparrow;":"\u2191","UpArrowBar;":"\u2912","UpArrowDownArrow;":"\u21c5","UpDownArrow;":"\u2195","Updownarrow;":"\u21d5","updownarrow;":"\u2195","UpEquilibrium;":"\u296e","upharpoonleft;":"\u21bf","upharpoonright;":"\u21be","uplus;":"\u228e","UpperLeftArrow;":"\u2196","UpperRightArrow;":"\u2197","Upsi;":"\u03d2","upsi;":"\u03c5","upsih;":"\u03d2","Upsilon;":"\u03a5","upsilon;":"\u03c5","UpTee;":"\u22a5","UpTeeArrow;":"\u21a5","upuparrows;":"\u21c8","urcorn;":"\u231d","urcorner;":"\u231d","urcrop;":"\u230e","Uring;":"\u016e","uring;":"\u016f","urtri;":"\u25f9","Uscr;":"\ud835\udcb0","uscr;":"\ud835\udcca","utdot;":"\u22f0","Utilde;":"\u0168","utilde;":"\u0169","utri;":"\u25b5","utrif;":"\u25b4","uuarr;":"\u21c8","Uuml;":"\xdc",Uuml:"\xdc","uuml;":"\xfc",uuml:"\xfc","uwangle;":"\u29a7","vangrt;":"\u299c","varepsilon;":"\u03f5","varkappa;":"\u03f0","varnothing;":"\u2205","varphi;":"\u03d5","varpi;":"\u03d6","varpropto;":"\u221d","vArr;":"\u21d5","varr;":"\u2195","varrho;":"\u03f1","varsigma;":"\u03c2","varsubsetneq;":"\u228a\ufe00","varsubsetneqq;":"\u2acb\ufe00","varsupsetneq;":"\u228b\ufe00","varsupsetneqq;":"\u2acc\ufe00","vartheta;":"\u03d1","vartriangleleft;":"\u22b2","vartriangleright;":"\u22b3","Vbar;":"\u2aeb","vBar;":"\u2ae8","vBarv;":"\u2ae9","Vcy;":"\u0412","vcy;":"\u0432","VDash;":"\u22ab","Vdash;":"\u22a9","vDash;":"\u22a8","vdash;":"\u22a2","Vdashl;":"\u2ae6","Vee;":"\u22c1","vee;":"\u2228","veebar;":"\u22bb","veeeq;":"\u225a","vellip;":"\u22ee","Verbar;":"\u2016","verbar;":"|","Vert;":"\u2016","vert;":"|","VerticalBar;":"\u2223","VerticalLine;":"|","VerticalSeparator;":"\u2758","VerticalTilde;":"\u2240","VeryThinSpace;":"\u200a","Vfr;":"\ud835\udd19","vfr;":"\ud835\udd33","vltri;":"\u22b2","vnsub;":"\u2282\u20d2","vnsup;":"\u2283\u20d2","Vopf;":"\ud835\udd4d","vopf;":"\ud835\udd67","vprop;":"\u221d","vrtri;":"\u22b3","Vscr;":"\ud835\udcb1","vscr;":"\ud835\udccb","vsubnE;":"\u2acb\ufe00","vsubne;":"\u228a\ufe00","vsupnE;":"\u2acc\ufe00","vsupne;":"\u228b\ufe00","Vvdash;":"\u22aa","vzigzag;":"\u299a","Wcirc;":"\u0174","wcirc;":"\u0175","wedbar;":"\u2a5f","Wedge;":"\u22c0","wedge;":"\u2227","wedgeq;":"\u2259","weierp;":"\u2118","Wfr;":"\ud835\udd1a","wfr;":"\ud835\udd34","Wopf;":"\ud835\udd4e","wopf;":"\ud835\udd68","wp;":"\u2118","wr;":"\u2240","wreath;":"\u2240","Wscr;":"\ud835\udcb2","wscr;":"\ud835\udccc","xcap;":"\u22c2","xcirc;":"\u25ef","xcup;":"\u22c3","xdtri;":"\u25bd","Xfr;":"\ud835\udd1b","xfr;":"\ud835\udd35","xhArr;":"\u27fa","xharr;":"\u27f7","Xi;":"\u039e","xi;":"\u03be","xlArr;":"\u27f8","xlarr;":"\u27f5","xmap;":"\u27fc","xnis;":"\u22fb","xodot;":"\u2a00","Xopf;":"\ud835\udd4f","xopf;":"\ud835\udd69","xoplus;":"\u2a01","xotime;":"\u2a02","xrArr;":"\u27f9","xrarr;":"\u27f6","Xscr;":"\ud835\udcb3","xscr;":"\ud835\udccd","xsqcup;":"\u2a06","xuplus;":"\u2a04","xutri;":"\u25b3","xvee;":"\u22c1","xwedge;":"\u22c0","Yacute;":"\xdd",Yacute:"\xdd","yacute;":"\xfd",yacute:"\xfd","YAcy;":"\u042f","yacy;":"\u044f","Ycirc;":"\u0176","ycirc;":"\u0177","Ycy;":"\u042b","ycy;":"\u044b","yen;":"\xa5",yen:"\xa5","Yfr;":"\ud835\udd1c","yfr;":"\ud835\udd36","YIcy;":"\u0407","yicy;":"\u0457","Yopf;":"\ud835\udd50","yopf;":"\ud835\udd6a","Yscr;":"\ud835\udcb4","yscr;":"\ud835\udcce","YUcy;":"\u042e","yucy;":"\u044e","Yuml;":"\u0178","yuml;":"\xff",yuml:"\xff","Zacute;":"\u0179","zacute;":"\u017a","Zcaron;":"\u017d","zcaron;":"\u017e","Zcy;":"\u0417","zcy;":"\u0437","Zdot;":"\u017b","zdot;":"\u017c","zeetrf;":"\u2128","ZeroWidthSpace;":"\u200b","Zeta;":"\u0396","zeta;":"\u03b6","Zfr;":"\u2128","zfr;":"\ud835\udd37","ZHcy;":"\u0416","zhcy;":"\u0436","zigrarr;":"\u21dd","Zopf;":"\u2124","zopf;":"\ud835\udd6b","Zscr;":"\ud835\udcb5","zscr;":"\ud835\udccf","zwj;":"\u200d","zwnj;":"\u200c"};function Fe(e,t){if(e.length0?e.lastIndexOf(t)===n:0===n&&e===t}var Ge="a".charCodeAt(0),Ve="z".charCodeAt(0),Ke="A".charCodeAt(0),Je="Z".charCodeAt(0),Xe="0".charCodeAt(0),Ye="9".charCodeAt(0);function $e(e,t){var n=e.charCodeAt(t);return Ge<=n&&n<=Ve||Ke<=n&&n<=Je||Xe<=n&&n<=Ye}var Ze=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"];function Qe(e){return!!e&&function(e,t,n){for(var i=0,r=e.length-1;i<=r;){var a=(i+r)/2|0,o=n(e[a],t);if(o<0)i=a+1;else{if(!(o>0))return a;r=a-1}}return-(i+1)}(Ze,e.toLowerCase(),(function(e,t){return e.localeCompare(t)}))>=0}function et(e){return"undefined"!==typeof e}var tt=function(){function e(e,t){var n=this;this.id=e,this._tags=[],this._tagMap={},this._valueSetMap={},this._tags=t.tags||[],this._globalAttributes=t.globalAttributes||[],this._tags.forEach((function(e){n._tagMap[e.name.toLowerCase()]=e})),t.valueSets&&t.valueSets.forEach((function(e){n._valueSetMap[e.name]=e.values}))}return e.prototype.isApplicable=function(){return!0},e.prototype.getId=function(){return this.id},e.prototype.provideTags=function(){return this._tags},e.prototype.provideAttributes=function(e){var t=[],n=function(e){t.push(e)},i=this._tagMap[e.toLowerCase()];return i&&i.attributes.forEach(n),this._globalAttributes.forEach(n),t},e.prototype.provideValues=function(e,t){var n=this,i=[];t=t.toLowerCase();var r=function(e){e.forEach((function(e){e.name.toLowerCase()===t&&(e.values&&e.values.forEach((function(e){i.push(e)})),e.valueSet&&n._valueSetMap[e.valueSet]&&n._valueSetMap[e.valueSet].forEach((function(e){i.push(e)})))}))},a=this._tagMap[e.toLowerCase()];return a?(r(a.attributes),r(this._globalAttributes),i):[]},e}();function nt(e,t,n){void 0===t&&(t={});var i={kind:n?"markdown":"plaintext",value:""};if(e.description&&!1!==t.documentation){var r=function(e){if(e)return"string"===typeof e?{kind:"markdown",value:e}:{kind:"markdown",value:e.value}}(e.description);r&&(i.value+=r.value)}if(e.references&&e.references.length>0&&!1!==t.references&&(i.value.length&&(i.value+="\n\n"),i.value+=n?e.references.map((function(e){return"["+e.name+"]("+e.url+")"})).join(" | "):e.references.map((function(e){return e.name+": "+e.url})).join("\n")),""!==i.value)return i}var it=function(e,t,n,i){return new(n||(n=Promise))((function(r,a){function o(e){try{l(i.next(e))}catch(t){a(t)}}function s(e){try{l(i.throw(e))}catch(t){a(t)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}l((i=i.apply(e,t||[])).next())}))},rt=function(e,t){var n,i,r,a,o={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"===typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,i&&(r=2&a[0]?i.return:a[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,a[1])).done)return r;switch(i=0,r&&(a=[2&a[0],r.value]),a[0]){case 0:case 1:r=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,i=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(r=(r=o.trys).length>0&&r[r.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!r||a[1]>r[0]&&a[1]0&&r[r.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!r||a[1]>r[0]&&a[1]d&&(t=d),{start:e.positionAt(t),end:e.positionAt(n)}}function b(e,t){var n=g(e,t);return l.forEach((function(e){e.provideTags().forEach((function(e){r.items.push({label:e.name,kind:O.Property,documentation:nt(e,void 0,c),textEdit:v.replace(n,e.name),insertTextFormat:N.PlainText})}))})),r}function _(e){for(var t=e;t>0;){var n=h.charAt(t-1);if("\n\r".indexOf(n)>=0)return h.substring(t,e);if(!pt(n))return null;t--}return h.substring(0,e)}function w(e,t,n){void 0===n&&(n=d);var i=g(e,n),a=mt(h,n,ge.WithinEndTag,fe.EndTagClose)?"":">",o=u;for(t&&(o=o.parent);o;){var s=o.tag;if(s&&(!o.closed||o.endTagStart&&o.endTagStart>d)){var p={label:"/"+s,kind:O.Property,filterText:"/"+s,textEdit:v.replace(i,"/"+s+a),insertTextFormat:N.PlainText},m=_(o.start),f=_(e-1);if(null!==m&&null!==f&&m!==f){var b=m+"",kind:O.Property,filterText:"",textEdit:v.insert(a,"$0"),insertTextFormat:N.Snippet})}return r}function T(e,t){return b(e,t),w(e,!0,t),r}function k(e,t){void 0===t&&(t=d);for(var i=d;in&&d<=i&&(m=h[n],/^["']*$/.test(m))){var b=n+1,_=i;i>n&&h[i-1]===h[n]&&_--;var w=function(e,t,n){for(;t>n&&!pt(e[t-1]);)t--;return t}(h,d,b),y=function(e,t,n){for(;t=b&&d<=_?h.substring(b,d):"",o=!1}else a=g(n,i),u=h.substring(n,d),o=!0;if(s.length>0)for(var T=f.toLowerCase(),k=p.toLowerCase(),S=g(n,i),x=0,M=s;x=0&&$e(h,e);)e--,n--;if(e>=0&&"&"===h[e]){var i=o.create(a.create(t.line,n-1),t);for(var s in je)if(Be(s,";")){var l="&"+s;r.items.push({label:l,kind:O.Keyword,documentation:ut("entity.propose","Character entity representing '"+je[s]+"'"),textEdit:v.replace(i,l),insertTextFormat:N.PlainText})}}return r}function E(e,t){var n=g(e,t);r.items.push({label:"!DOCTYPE",kind:O.Property,documentation:"A preamble for an HTML document.",textEdit:v.replace(n,"!DOCTYPE html>"),insertTextFormat:N.PlainText})}for(var A=m.scan();A!==fe.EOS&&m.getTokenOffset()<=d;){switch(A){case fe.StartTagOpen:if(m.getTokenEnd()===d){var R=x(fe.StartTag);return 0===t.line&&E(d,R),T(d,R)}break;case fe.StartTag:if(m.getTokenOffset()<=d&&d<=m.getTokenEnd())return b(m.getTokenOffset(),m.getTokenEnd());f=m.getTokenText();break;case fe.AttributeName:if(m.getTokenOffset()<=d&&d<=m.getTokenEnd())return k(m.getTokenOffset(),m.getTokenEnd());p=m.getTokenText();break;case fe.DelimiterAssign:if(m.getTokenEnd()===d){R=x(fe.AttributeValue);return S(d,R)}break;case fe.AttributeValue:if(m.getTokenOffset()<=d&&d<=m.getTokenEnd())return S(m.getTokenOffset(),m.getTokenEnd());break;case fe.Whitespace:if(d<=m.getTokenEnd())switch(m.getScannerState()){case ge.AfterOpeningStartTag:return T(m.getTokenOffset(),x(fe.StartTag));case ge.WithinTag:case ge.AfterAttributeName:return k(m.getTokenEnd());case ge.BeforeAttributeValue:return S(m.getTokenEnd());case ge.AfterOpeningEndTag:return w(m.getTokenOffset()-1,!1);case ge.WithinContent:return M()}break;case fe.EndTagOpen:if(d<=m.getTokenEnd())return w(m.getTokenOffset()+1,!1,x(fe.EndTag));break;case fe.EndTag:if(d<=m.getTokenEnd())for(var z=m.getTokenOffset()-1;z>=0;){var I=h.charAt(z);if("/"===I)return w(z,!1,m.getTokenEnd());if(!pt(I))break;z--}break;case fe.StartTagClose:if(d<=m.getTokenEnd()&&f)return y(m.getTokenEnd(),f);break;case fe.Content:if(d<=m.getTokenEnd())return M();break;default:if(d<=m.getTokenEnd())return r}A=m.scan()}return r},e.prototype.doTagComplete=function(e,t,n){var i=e.offsetAt(t);if(i<=0)return null;var r=e.getText().charAt(i-1);if(">"===r){if((o=n.findNodeBefore(i))&&o.tag&&!Qe(o.tag)&&o.starti))for(var a=(s=Ne(e.getText(),o.start)).scan();a!==fe.EOS&&s.getTokenEnd()<=i;){if(a===fe.StartTagClose&&s.getTokenEnd()===i)return"$0";a=s.scan()}}else if("/"===r){for(var o=n.findNodeBefore(i);o&&o.closed;)o=o.parent;if(o&&o.tag){var s;for(a=(s=Ne(e.getText(),o.start)).scan();a!==fe.EOS&&s.getTokenEnd()<=i;){if(a===fe.EndTagOpen&&s.getTokenEnd()===i)return o.tag+">";a=s.scan()}}}return null},e.prototype.convertCompletionList=function(e){return this.doesSupportMarkdown()||e.items.forEach((function(e){e.documentation&&"string"!==typeof e.documentation&&(e.documentation={kind:"plaintext",value:e.documentation.value})})),e},e.prototype.doesSupportMarkdown=function(){var e,t,n;if(!et(this.supportsMarkdown)){if(!et(this.lsOptions.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var i=null===(n=null===(t=null===(e=this.lsOptions.clientCapabilities.textDocument)||void 0===e?void 0:e.completion)||void 0===t?void 0:t.completionItem)||void 0===n?void 0:n.documentationFormat;this.supportsMarkdown=Array.isArray(i)&&-1!==i.indexOf(D.Markdown)}return this.supportsMarkdown}}();function pt(e){return/^\s*$/.test(e)}function mt(e,t,n,i){for(var r=Ne(e,t,n),a=r.scan();a===fe.Whitespace;)a=r.scan();return a===i}var ft=I();!function(){function e(e,t){this.lsOptions=e,this.dataManager=t}e.prototype.doHover=function(e,t,n,i){var r=this.convertContents.bind(this),s=this.doesSupportMarkdown(),l=e.offsetAt(t),c=n.findNodeAt(l),h=e.getText();if(!c||!c.tag)return null;var d=this.dataManager.getDataProviders().filter((function(t){return t.isApplicable(e.languageId)}));function u(e,t,n){for(var a=function(n){var a=null;if(n.provideTags().forEach((function(n){if(n.name.toLowerCase()===e.toLowerCase()){var r=nt(n,i,s);r||(r={kind:s?"markdown":"plaintext",value:""}),a={contents:r,range:t}}})),a)return a.contents=r(a.contents),{value:a}},o=0,l=d;o=c.endTagStart){var m=p(fe.EndTag,c.endTagStart);return m?u(c.tag,m):null}var f=p(fe.StartTag,c.start);if(f)return u(c.tag,f);var g=p(fe.AttributeName,c.start);if(g)return function(e,t,n){for(var a=function(a){var o=null;if(a.provideAttributes(e).forEach((function(e){if(t===e.name&&e.description){var r=nt(e,i,s);o=r?{contents:r,range:n}:null}})),o)return o.contents=r(o.contents),{value:o}},o=0,l=d;o=0&&$e(h,e);)e--,n--;for(var i=e+1,r=n;$e(h,i);)i++,r++;if(e>=0&&"&"===h[e]){return";"===h[i]?o.create(a.create(t.line,n),a.create(t.line,r+1)):o.create(a.create(t.line,n),a.create(t.line,r))}return null}();if(b)return function(e,t){var n=function(e){for(var t=l-1,n="&";t>=0&&$e(e,t);)t--;for(t+=1;$e(e,t);)n+=e[t],t+=1;return n+";"}(e);for(var i in je){var a=null;if(n==="&"+i){var o=je[i].charCodeAt(0).toString(16).toUpperCase(),s="U+";if(o.length<4)for(var c=4-o.length,h=0;h0&&(t=new Array(e.indent_level+1).join(this.__indent_string)),this.__base_string=t,this.__base_string_length=t.length}function a(e,t){this.__indent_cache=new r(e,t),this.raw=!1,this._end_with_newline=e.end_with_newline,this.indent_size=e.indent_size,this.wrap_line_length=e.wrap_line_length,this.indent_empty_lines=e.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new i(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}i.prototype.clone_empty=function(){var e=new i(this.__parent);return e.set_indent(this.__indent_count,this.__alignment_count),e},i.prototype.item=function(e){return e<0?this.__items[this.__items.length+e]:this.__items[e]},i.prototype.has_match=function(e){for(var t=this.__items.length-1;t>=0;t--)if(this.__items[t].match(e))return!0;return!1},i.prototype.set_indent=function(e,t){this.is_empty()&&(this.__indent_count=e||0,this.__alignment_count=t||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},i.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},i.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},i.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var e=this.__parent.current_line;return e.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),e.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),e.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count," "===e.__items[0]&&(e.__items.splice(0,1),e.__character_count-=1),!0}return!1},i.prototype.is_empty=function(){return 0===this.__items.length},i.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},i.prototype.push=function(e){this.__items.push(e);var t=e.lastIndexOf("\n");-1!==t?this.__character_count=e.length-t:this.__character_count+=e.length},i.prototype.pop=function(){var e=null;return this.is_empty()||(e=this.__items.pop(),this.__character_count-=e.length),e},i.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},i.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},i.prototype.trim=function(){for(;" "===this.last();)this.__items.pop(),this.__character_count-=1},i.prototype.toString=function(){var e="";return this.is_empty()?this.__parent.indent_empty_lines&&(e=this.__parent.get_indent_string(this.__indent_count)):(e=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),e+=this.__items.join("")),e},r.prototype.get_indent_size=function(e,t){var n=this.__base_string_length;return t=t||0,e<0&&(n=0),n+=e*this.__indent_size,n+=t},r.prototype.get_indent_string=function(e,t){var n=this.__base_string;return t=t||0,e<0&&(e=0,n=""),t+=e*this.__indent_size,this.__ensure_cache(t),n+=this.__cache[t]},r.prototype.__ensure_cache=function(e){for(;e>=this.__cache.length;)this.__add_column()},r.prototype.__add_column=function(){var e=this.__cache.length,t=0,n="";this.__indent_size&&e>=this.__indent_size&&(e-=(t=Math.floor(e/this.__indent_size))*this.__indent_size,n=new Array(t+1).join(this.__indent_string)),e&&(n+=new Array(e+1).join(" ")),this.__cache.push(n)},a.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},a.prototype.get_line_number=function(){return this.__lines.length},a.prototype.get_indent_string=function(e,t){return this.__indent_cache.get_indent_string(e,t)},a.prototype.get_indent_size=function(e,t){return this.__indent_cache.get_indent_size(e,t)},a.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},a.prototype.add_new_line=function(e){return!(this.is_empty()||!e&&this.just_added_newline())&&(this.raw||this.__add_outputline(),!0)},a.prototype.get_code=function(e){this.trim(!0);var t=this.current_line.pop();t&&("\n"===t[t.length-1]&&(t=t.replace(/\n+$/g,"")),this.current_line.push(t)),this._end_with_newline&&this.__add_outputline();var n=this.__lines.join("\n");return"\n"!==e&&(n=n.replace(/[\n]/g,e)),n},a.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},a.prototype.set_indent=function(e,t){return e=e||0,t=t||0,this.next_line.set_indent(e,t),this.__lines.length>1?(this.current_line.set_indent(e,t),!0):(this.current_line.set_indent(),!1)},a.prototype.add_raw_token=function(e){for(var t=0;t1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},a.prototype.just_added_newline=function(){return this.current_line.is_empty()},a.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},a.prototype.ensure_empty_line_above=function(e,t){for(var n=this.__lines.length-2;n>=0;){var r=this.__lines[n];if(r.is_empty())break;if(0!==r.item(0).indexOf(e)&&r.item(-1)!==t){this.__lines.splice(n+1,0,new i(this)),this.previous_line=this.__lines[this.__lines.length-2];break}n--}},e.exports.Output=a},,,,function(e,t,n){function i(e,t){this.raw_options=r(e,t),this.disabled=this._get_boolean("disabled"),this.eol=this._get_characters("eol","auto"),this.end_with_newline=this._get_boolean("end_with_newline"),this.indent_size=this._get_number("indent_size",4),this.indent_char=this._get_characters("indent_char"," "),this.indent_level=this._get_number("indent_level"),this.preserve_newlines=this._get_boolean("preserve_newlines",!0),this.max_preserve_newlines=this._get_number("max_preserve_newlines",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean("indent_with_tabs","\t"===this.indent_char),this.indent_with_tabs&&(this.indent_char="\t",1===this.indent_size&&(this.indent_size=4)),this.wrap_line_length=this._get_number("wrap_line_length",this._get_number("max_char")),this.indent_empty_lines=this._get_boolean("indent_empty_lines"),this.templating=this._get_selection_list("templating",["auto","none","django","erb","handlebars","php","smarty"],["auto"])}function r(e,t){var n,i={};for(n in e=a(e))n!==t&&(i[n]=e[n]);if(t&&e[t])for(n in e[t])i[n]=e[t][n];return i}function a(e){var t,n={};for(t in e){n[t.replace(/-/g,"_")]=e[t]}return n}i.prototype._get_array=function(e,t){var n=this.raw_options[e],i=t||[];return"object"===typeof n?null!==n&&"function"===typeof n.concat&&(i=n.concat()):"string"===typeof n&&(i=n.split(/[^a-zA-Z0-9_\/\-]+/)),i},i.prototype._get_boolean=function(e,t){var n=this.raw_options[e];return void 0===n?!!t:!!n},i.prototype._get_characters=function(e,t){var n=this.raw_options[e],i=t||"";return"string"===typeof n&&(i=n.replace(/\\r/,"\r").replace(/\\n/,"\n").replace(/\\t/,"\t")),i},i.prototype._get_number=function(e,t){var n=this.raw_options[e];t=parseInt(t,10),isNaN(t)&&(t=0);var i=parseInt(n,10);return isNaN(i)&&(i=t),i},i.prototype._get_selection=function(e,t,n){var i=this._get_selection_list(e,t,n);if(1!==i.length)throw new Error("Invalid Option Value: The option '"+e+"' can only be one of the following values:\n"+t+"\nYou passed in: '"+this.raw_options[e]+"'");return i[0]},i.prototype._get_selection_list=function(e,t,n){if(!t||0===t.length)throw new Error("Selection list cannot be empty.");if(n=n||[t[0]],!this._is_valid_selection(n,t))throw new Error("Invalid Default Value!");var i=this._get_array(e,n);if(!this._is_valid_selection(i,t))throw new Error("Invalid Option Value: The option '"+e+"' can contain only the following values:\n"+t+"\nYou passed in: '"+this.raw_options[e]+"'");return i},i.prototype._is_valid_selection=function(e,t){return e.length&&t.length&&!e.some((function(e){return-1===t.indexOf(e)}))},e.exports.Options=i,e.exports.normalizeOpts=a,e.exports.mergeOpts=r},,function(e,t,n){var i=RegExp.prototype.hasOwnProperty("sticky");function r(e){this.__input=e||"",this.__input_length=this.__input.length,this.__position=0}r.prototype.restart=function(){this.__position=0},r.prototype.back=function(){this.__position>0&&(this.__position-=1)},r.prototype.hasNext=function(){return this.__position=0&&e=0&&t=e.length&&this.__input.substring(t-e.length,t).toLowerCase()===e},e.exports.InputScanner=r},,,,,function(e,t,n){function i(e,t){e="string"===typeof e?e:e.source,t="string"===typeof t?t:t.source,this.__directives_block_pattern=new RegExp(e+/ beautify( \w+[:]\w+)+ /.source+t,"g"),this.__directive_pattern=/ (\w+)[:](\w+)/g,this.__directives_end_ignore_pattern=new RegExp(e+/\sbeautify\signore:end\s/.source+t,"g")}i.prototype.get_directives=function(e){if(!e.match(this.__directives_block_pattern))return null;var t={};this.__directive_pattern.lastIndex=0;for(var n=this.__directive_pattern.exec(e);n;)t[n[1]]=n[2],n=this.__directive_pattern.exec(e);return t},i.prototype.readIgnored=function(e){return e.readUntilAfter(this.__directives_end_ignore_pattern)},e.exports.Directives=i},,function(e,t,n){var i=n(16).Beautifier,r=n(17).Options;e.exports=function(e,t){return new i(e,t).beautify()},e.exports.defaultOptions=function(){return new r}},function(e,t,n){var i=n(17).Options,r=n(2).Output,a=n(8).InputScanner,o=new(0,n(13).Directives)(/\/\*/,/\*\//),s=/\r\n|[\r\n]/,l=/\r\n|[\r\n]/g,c=/\s/,h=/(?:\s|\n)+/g,d=/\/\*(?:[\s\S]*?)((?:\*\/)|$)/g,u=/\/\/(?:[^\n\r\u2028\u2029]*)/g;function p(e,t){this._source_text=e||"",this._options=new i(t),this._ch=null,this._input=null,this.NESTED_AT_RULE={"@page":!0,"@font-face":!0,"@keyframes":!0,"@media":!0,"@supports":!0,"@document":!0},this.CONDITIONAL_GROUP_RULE={"@media":!0,"@supports":!0,"@document":!0}}p.prototype.eatString=function(e){var t="";for(this._ch=this._input.next();this._ch;){if(t+=this._ch,"\\"===this._ch)t+=this._input.next();else if(-1!==e.indexOf(this._ch)||"\n"===this._ch)break;this._ch=this._input.next()}return t},p.prototype.eatWhitespace=function(e){for(var t=c.test(this._input.peek()),n=0;c.test(this._input.peek());)this._ch=this._input.next(),e&&"\n"===this._ch&&(0===n||n0&&this._indentLevel--},p.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var e=this._source_text,t=this._options.eol;"auto"===t&&(t="\n",e&&s.test(e||"")&&(t=e.match(s)[0]));var n=(e=e.replace(l,"\n")).match(/^[\t ]*/)[0];this._output=new r(this._options,n),this._input=new a(e),this._indentLevel=0,this._nestedLevel=0,this._ch=null;for(var i,p,m=0,f=!1,g=!1,b=!1,_=!1,w=!1,v=this._ch;i=""!==this._input.read(h),p=v,this._ch=this._input.next(),"\\"===this._ch&&this._input.hasNext()&&(this._ch+=this._input.next()),v=this._ch,this._ch;)if("/"===this._ch&&"*"===this._input.peek()){this._output.add_new_line(),this._input.back();var y=this._input.read(d),T=o.get_directives(y);T&&"start"===T.ignore&&(y+=o.readIgnored(this._input)),this.print_string(y),this.eatWhitespace(!0),this._output.add_new_line()}else if("/"===this._ch&&"/"===this._input.peek())this._output.space_before_token=!0,this._input.back(),this.print_string(this._input.read(u)),this.eatWhitespace(!0);else if("@"===this._ch)if(this.preserveSingleSpace(i),"{"===this._input.peek())this.print_string(this._ch+this.eatString("}"));else{this.print_string(this._ch);var k=this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);k.match(/[ :]$/)&&(k=this.eatString(": ").replace(/\s$/,""),this.print_string(k),this._output.space_before_token=!0),"extend"===(k=k.replace(/\s$/,""))?_=!0:"import"===k&&(w=!0),k in this.NESTED_AT_RULE?(this._nestedLevel+=1,k in this.CONDITIONAL_GROUP_RULE&&(b=!0)):f||0!==m||-1===k.indexOf(":")||(g=!0,this.indent())}else"#"===this._ch&&"{"===this._input.peek()?(this.preserveSingleSpace(i),this.print_string(this._ch+this.eatString("}"))):"{"===this._ch?(g&&(g=!1,this.outdent()),b?(b=!1,f=this._indentLevel>=this._nestedLevel):f=this._indentLevel>=this._nestedLevel-1,this._options.newline_between_rules&&f&&this._output.previous_line&&"{"!==this._output.previous_line.item(-1)&&this._output.ensure_empty_line_above("/",","),this._output.space_before_token=!0,"expand"===this._options.brace_style?(this._output.add_new_line(),this.print_string(this._ch),this.indent(),this._output.set_indent(this._indentLevel)):(this.indent(),this.print_string(this._ch)),this.eatWhitespace(!0),this._output.add_new_line()):"}"===this._ch?(this.outdent(),this._output.add_new_line(),"{"===p&&this._output.trim(!0),w=!1,_=!1,g&&(this.outdent(),g=!1),this.print_string(this._ch),f=!1,this._nestedLevel&&this._nestedLevel--,this.eatWhitespace(!0),this._output.add_new_line(),this._options.newline_between_rules&&!this._output.just_added_blankline()&&"}"!==this._input.peek()&&this._output.add_new_line(!0)):":"===this._ch?!f&&!b||this._input.lookBack("&")||this.foundNestedPseudoClass()||this._input.lookBack("(")||_||0!==m?(this._input.lookBack(" ")&&(this._output.space_before_token=!0),":"===this._input.peek()?(this._ch=this._input.next(),this.print_string("::")):this.print_string(":")):(this.print_string(":"),g||(g=!0,this._output.space_before_token=!0,this.eatWhitespace(!0),this.indent())):'"'===this._ch||"'"===this._ch?(this.preserveSingleSpace(i),this.print_string(this._ch+this.eatString(this._ch)),this.eatWhitespace(!0)):";"===this._ch?0===m?(g&&(this.outdent(),g=!1),_=!1,w=!1,this.print_string(this._ch),this.eatWhitespace(!0),"/"!==this._input.peek()&&this._output.add_new_line()):(this.print_string(this._ch),this.eatWhitespace(!0),this._output.space_before_token=!0):"("===this._ch?this._input.lookBack("url")?(this.print_string(this._ch),this.eatWhitespace(),m++,this.indent(),this._ch=this._input.next(),")"===this._ch||'"'===this._ch||"'"===this._ch?this._input.back():this._ch&&(this.print_string(this._ch+this.eatString(")")),m&&(m--,this.outdent()))):(this.preserveSingleSpace(i),this.print_string(this._ch),this.eatWhitespace(),m++,this.indent()):")"===this._ch?(m&&(m--,this.outdent()),this.print_string(this._ch)):","===this._ch?(this.print_string(this._ch),this.eatWhitespace(!0),!this._options.selector_separator_newline||g||0!==m||w?this._output.space_before_token=!0:this._output.add_new_line()):">"!==this._ch&&"+"!==this._ch&&"~"!==this._ch||g||0!==m?"]"===this._ch?this.print_string(this._ch):"["===this._ch?(this.preserveSingleSpace(i),this.print_string(this._ch)):"="===this._ch?(this.eatWhitespace(),this.print_string("="),c.test(this._ch)&&(this._ch="")):"!"!==this._ch||this._input.lookBack("\\")?(this.preserveSingleSpace(i),this.print_string(this._ch)):(this.print_string(" "),this.print_string(this._ch)):this._options.space_around_combinator?(this._output.space_before_token=!0,this.print_string(this._ch),this._output.space_before_token=!0):(this.print_string(this._ch),this.eatWhitespace(),this._ch&&c.test(this._ch)&&(this._ch=""));return this._output.get_code(t)},e.exports.Beautifier=p},function(e,t,n){var i=n(6).Options;function r(e){i.call(this,e,"css"),this.selector_separator_newline=this._get_boolean("selector_separator_newline",!0),this.newline_between_rules=this._get_boolean("newline_between_rules",!0);var t=this._get_boolean("space_around_selector_separator");this.space_around_combinator=this._get_boolean("space_around_combinator")||t;var n=this._get_selection_list("brace_style",["collapse","expand","end-expand","none","preserve-inline"]);this.brace_style="collapse";for(var r=0;r0&&(t=new Array(e.indent_level+1).join(this.__indent_string)),this.__base_string=t,this.__base_string_length=t.length}function a(e,t){this.__indent_cache=new r(e,t),this.raw=!1,this._end_with_newline=e.end_with_newline,this.indent_size=e.indent_size,this.wrap_line_length=e.wrap_line_length,this.indent_empty_lines=e.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new i(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}i.prototype.clone_empty=function(){var e=new i(this.__parent);return e.set_indent(this.__indent_count,this.__alignment_count),e},i.prototype.item=function(e){return e<0?this.__items[this.__items.length+e]:this.__items[e]},i.prototype.has_match=function(e){for(var t=this.__items.length-1;t>=0;t--)if(this.__items[t].match(e))return!0;return!1},i.prototype.set_indent=function(e,t){this.is_empty()&&(this.__indent_count=e||0,this.__alignment_count=t||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},i.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},i.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},i.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var e=this.__parent.current_line;return e.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),e.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),e.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count," "===e.__items[0]&&(e.__items.splice(0,1),e.__character_count-=1),!0}return!1},i.prototype.is_empty=function(){return 0===this.__items.length},i.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},i.prototype.push=function(e){this.__items.push(e);var t=e.lastIndexOf("\n");-1!==t?this.__character_count=e.length-t:this.__character_count+=e.length},i.prototype.pop=function(){var e=null;return this.is_empty()||(e=this.__items.pop(),this.__character_count-=e.length),e},i.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},i.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},i.prototype.trim=function(){for(;" "===this.last();)this.__items.pop(),this.__character_count-=1},i.prototype.toString=function(){var e="";return this.is_empty()?this.__parent.indent_empty_lines&&(e=this.__parent.get_indent_string(this.__indent_count)):(e=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),e+=this.__items.join("")),e},r.prototype.get_indent_size=function(e,t){var n=this.__base_string_length;return t=t||0,e<0&&(n=0),n+=e*this.__indent_size,n+=t},r.prototype.get_indent_string=function(e,t){var n=this.__base_string;return t=t||0,e<0&&(e=0,n=""),t+=e*this.__indent_size,this.__ensure_cache(t),n+=this.__cache[t]},r.prototype.__ensure_cache=function(e){for(;e>=this.__cache.length;)this.__add_column()},r.prototype.__add_column=function(){var e=this.__cache.length,t=0,n="";this.__indent_size&&e>=this.__indent_size&&(e-=(t=Math.floor(e/this.__indent_size))*this.__indent_size,n=new Array(t+1).join(this.__indent_string)),e&&(n+=new Array(e+1).join(" ")),this.__cache.push(n)},a.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},a.prototype.get_line_number=function(){return this.__lines.length},a.prototype.get_indent_string=function(e,t){return this.__indent_cache.get_indent_string(e,t)},a.prototype.get_indent_size=function(e,t){return this.__indent_cache.get_indent_size(e,t)},a.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},a.prototype.add_new_line=function(e){return!(this.is_empty()||!e&&this.just_added_newline())&&(this.raw||this.__add_outputline(),!0)},a.prototype.get_code=function(e){this.trim(!0);var t=this.current_line.pop();t&&("\n"===t[t.length-1]&&(t=t.replace(/\n+$/g,"")),this.current_line.push(t)),this._end_with_newline&&this.__add_outputline();var n=this.__lines.join("\n");return"\n"!==e&&(n=n.replace(/[\n]/g,e)),n},a.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},a.prototype.set_indent=function(e,t){return e=e||0,t=t||0,this.next_line.set_indent(e,t),this.__lines.length>1?(this.current_line.set_indent(e,t),!0):(this.current_line.set_indent(),!1)},a.prototype.add_raw_token=function(e){for(var t=0;t1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},a.prototype.just_added_newline=function(){return this.current_line.is_empty()},a.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},a.prototype.ensure_empty_line_above=function(e,t){for(var n=this.__lines.length-2;n>=0;){var r=this.__lines[n];if(r.is_empty())break;if(0!==r.item(0).indexOf(e)&&r.item(-1)!==t){this.__lines.splice(n+1,0,new i(this)),this.previous_line=this.__lines[this.__lines.length-2];break}n--}},e.exports.Output=a},function(e,t,n){e.exports.Token=function(e,t,n,i){this.type=e,this.text=t,this.comments_before=null,this.newlines=n||0,this.whitespace_before=i||"",this.parent=null,this.next=null,this.previous=null,this.opened=null,this.closed=null,this.directives=null}},,,function(e,t,n){function i(e,t){this.raw_options=r(e,t),this.disabled=this._get_boolean("disabled"),this.eol=this._get_characters("eol","auto"),this.end_with_newline=this._get_boolean("end_with_newline"),this.indent_size=this._get_number("indent_size",4),this.indent_char=this._get_characters("indent_char"," "),this.indent_level=this._get_number("indent_level"),this.preserve_newlines=this._get_boolean("preserve_newlines",!0),this.max_preserve_newlines=this._get_number("max_preserve_newlines",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean("indent_with_tabs","\t"===this.indent_char),this.indent_with_tabs&&(this.indent_char="\t",1===this.indent_size&&(this.indent_size=4)),this.wrap_line_length=this._get_number("wrap_line_length",this._get_number("max_char")),this.indent_empty_lines=this._get_boolean("indent_empty_lines"),this.templating=this._get_selection_list("templating",["auto","none","django","erb","handlebars","php","smarty"],["auto"])}function r(e,t){var n,i={};for(n in e=a(e))n!==t&&(i[n]=e[n]);if(t&&e[t])for(n in e[t])i[n]=e[t][n];return i}function a(e){var t,n={};for(t in e){n[t.replace(/-/g,"_")]=e[t]}return n}i.prototype._get_array=function(e,t){var n=this.raw_options[e],i=t||[];return"object"===typeof n?null!==n&&"function"===typeof n.concat&&(i=n.concat()):"string"===typeof n&&(i=n.split(/[^a-zA-Z0-9_\/\-]+/)),i},i.prototype._get_boolean=function(e,t){var n=this.raw_options[e];return void 0===n?!!t:!!n},i.prototype._get_characters=function(e,t){var n=this.raw_options[e],i=t||"";return"string"===typeof n&&(i=n.replace(/\\r/,"\r").replace(/\\n/,"\n").replace(/\\t/,"\t")),i},i.prototype._get_number=function(e,t){var n=this.raw_options[e];t=parseInt(t,10),isNaN(t)&&(t=0);var i=parseInt(n,10);return isNaN(i)&&(i=t),i},i.prototype._get_selection=function(e,t,n){var i=this._get_selection_list(e,t,n);if(1!==i.length)throw new Error("Invalid Option Value: The option '"+e+"' can only be one of the following values:\n"+t+"\nYou passed in: '"+this.raw_options[e]+"'");return i[0]},i.prototype._get_selection_list=function(e,t,n){if(!t||0===t.length)throw new Error("Selection list cannot be empty.");if(n=n||[t[0]],!this._is_valid_selection(n,t))throw new Error("Invalid Default Value!");var i=this._get_array(e,n);if(!this._is_valid_selection(i,t))throw new Error("Invalid Option Value: The option '"+e+"' can contain only the following values:\n"+t+"\nYou passed in: '"+this.raw_options[e]+"'");return i},i.prototype._is_valid_selection=function(e,t){return e.length&&t.length&&!e.some((function(e){return-1===t.indexOf(e)}))},e.exports.Options=i,e.exports.normalizeOpts=a,e.exports.mergeOpts=r},,function(e,t,n){var i=RegExp.prototype.hasOwnProperty("sticky");function r(e){this.__input=e||"",this.__input_length=this.__input.length,this.__position=0}r.prototype.restart=function(){this.__position=0},r.prototype.back=function(){this.__position>0&&(this.__position-=1)},r.prototype.hasNext=function(){return this.__position=0&&e=0&&t=e.length&&this.__input.substring(t-e.length,t).toLowerCase()===e},e.exports.InputScanner=r},function(e,t,n){var i=n(8).InputScanner,r=n(3).Token,a=n(10).TokenStream,o=n(11).WhitespacePattern,s={START:"TK_START",RAW:"TK_RAW",EOF:"TK_EOF"},l=function(e,t){this._input=new i(e),this._options=t||{},this.__tokens=null,this._patterns={},this._patterns.whitespace=new o(this._input)};l.prototype.tokenize=function(){var e;this._input.restart(),this.__tokens=new a,this._reset();for(var t=new r(s.START,""),n=null,i=[],o=new a;t.type!==s.EOF;){for(e=this._get_next_token(t,n);this._is_comment(e);)o.add(e),e=this._get_next_token(t,n);o.isEmpty()||(e.comments_before=o,o=new a),e.parent=n,this._is_opening(e)?(i.push(n),n=e):n&&this._is_closing(e,n)&&(e.opened=n,n.closed=e,n=i.pop(),e.parent=n),e.previous=t,t.next=e,this.__tokens.add(e),t=e}return this.__tokens},l.prototype._is_first_token=function(){return this.__tokens.isEmpty()},l.prototype._reset=function(){},l.prototype._get_next_token=function(e,t){this._readWhitespace();var n=this._input.read(/.+/g);return n?this._create_token(s.RAW,n):this._create_token(s.EOF,"")},l.prototype._is_comment=function(e){return!1},l.prototype._is_opening=function(e){return!1},l.prototype._is_closing=function(e,t){return!1},l.prototype._create_token=function(e,t){return new r(e,t,this._patterns.whitespace.newline_count,this._patterns.whitespace.whitespace_before_token)},l.prototype._readWhitespace=function(){return this._patterns.whitespace.read()},e.exports.Tokenizer=l,e.exports.TOKEN=s},function(e,t,n){function i(e){this.__tokens=[],this.__tokens_length=this.__tokens.length,this.__position=0,this.__parent_token=e}i.prototype.restart=function(){this.__position=0},i.prototype.isEmpty=function(){return 0===this.__tokens_length},i.prototype.hasNext=function(){return this.__position=0&&e/),erb:n.starting_with(/<%[^%]/).until_after(/[^%]%>/),django:n.starting_with(/{%/).until_after(/%}/),django_value:n.starting_with(/{{/).until_after(/}}/),django_comment:n.starting_with(/{#/).until_after(/#}/),smarty:n.starting_with(/{(?=[^}{\s\n])/).until_after(/[^\s\n]}/),smarty_comment:n.starting_with(/{\*/).until_after(/\*}/),smarty_literal:n.starting_with(/{literal}/).until_after(/{\/literal}/)}}a.prototype=new i,a.prototype._create=function(){return new a(this._input,this)},a.prototype._update=function(){this.__set_templated_pattern()},a.prototype.disable=function(e){var t=this._create();return t._disabled[e]=!0,t._update(),t},a.prototype.read_options=function(e){var t=this._create();for(var n in r)t._disabled[n]=-1===e.templating.indexOf(n);return t._update(),t},a.prototype.exclude=function(e){var t=this._create();return t._excluded[e]=!0,t._update(),t},a.prototype.read=function(){var e="";e=this._match_pattern?this._input.read(this._starting_pattern):this._input.read(this._starting_pattern,this.__template_pattern);for(var t=this._read_template();t;)this._match_pattern?t+=this._input.read(this._match_pattern):t+=this._input.readUntil(this.__template_pattern),e+=t,t=this._read_template();return this._until_after&&(e+=this._input.readUntilAfter(this._until_pattern)),e},a.prototype.__set_templated_pattern=function(){var e=[];this._disabled.php||e.push(this.__patterns.php._starting_pattern.source),this._disabled.handlebars||e.push(this.__patterns.handlebars._starting_pattern.source),this._disabled.erb||e.push(this.__patterns.erb._starting_pattern.source),this._disabled.django||(e.push(this.__patterns.django._starting_pattern.source),e.push(this.__patterns.django_value._starting_pattern.source),e.push(this.__patterns.django_comment._starting_pattern.source)),this._disabled.smarty||e.push(this.__patterns.smarty._starting_pattern.source),this._until_pattern&&e.push(this._until_pattern.source),this.__template_pattern=this._input.get_regexp("(?:"+e.join("|")+")")},a.prototype._read_template=function(){var e="",t=this._input.peek();if("<"===t){var n=this._input.peek(1);this._disabled.php||this._excluded.php||"?"!==n||(e=e||this.__patterns.php.read()),this._disabled.erb||this._excluded.erb||"%"!==n||(e=e||this.__patterns.erb.read())}else"{"===t&&(this._disabled.handlebars||this._excluded.handlebars||(e=(e=(e=e||this.__patterns.handlebars_comment.read())||this.__patterns.handlebars_unescaped.read())||this.__patterns.handlebars.read()),this._disabled.django||(this._excluded.django||this._excluded.handlebars||(e=e||this.__patterns.django_value.read()),this._excluded.django||(e=(e=e||this.__patterns.django_comment.read())||this.__patterns.django.read())),this._disabled.smarty||this._disabled.django&&this._disabled.handlebars&&(e=(e=(e=e||this.__patterns.smarty_comment.read())||this.__patterns.smarty_literal.read())||this.__patterns.smarty.read()));return e},e.exports.TemplatablePattern=a},,,,function(e,t,n){var i=n(19).Beautifier,r=n(20).Options;e.exports=function(e,t,n,r){return new i(e,t,n,r).beautify()},e.exports.defaultOptions=function(){return new r}},function(e,t,n){var i=n(20).Options,r=n(2).Output,a=n(21).Tokenizer,o=n(21).TOKEN,s=/\r\n|[\r\n]/,l=/\r\n|[\r\n]/g,c=function(e,t){this.indent_level=0,this.alignment_size=0,this.max_preserve_newlines=e.max_preserve_newlines,this.preserve_newlines=e.preserve_newlines,this._output=new r(e,t)};c.prototype.current_line_has_match=function(e){return this._output.current_line.has_match(e)},c.prototype.set_space_before_token=function(e,t){this._output.space_before_token=e,this._output.non_breaking_space=t},c.prototype.set_wrap_point=function(){this._output.set_indent(this.indent_level,this.alignment_size),this._output.set_wrap_point()},c.prototype.add_raw_token=function(e){this._output.add_raw_token(e)},c.prototype.print_preserved_newlines=function(e){var t=0;e.type!==o.TEXT&&e.previous.type!==o.TEXT&&(t=e.newlines?1:0),this.preserve_newlines&&(t=e.newlines0);return 0!==t},c.prototype.traverse_whitespace=function(e){return!(!e.whitespace_before&&!e.newlines)&&(this.print_preserved_newlines(e)||(this._output.space_before_token=!0),!0)},c.prototype.previous_token_wrapped=function(){return this._output.previous_token_wrapped},c.prototype.print_newline=function(e){this._output.add_new_line(e)},c.prototype.print_token=function(e){e.text&&(this._output.set_indent(this.indent_level,this.alignment_size),this._output.add_token(e.text))},c.prototype.indent=function(){this.indent_level++},c.prototype.get_full_indent=function(e){return(e=this.indent_level+(e||0))<1?"":this._output.get_indent_string(e)};var h=function(e,t){var n=null,i=null;return t.closed?("script"===e?n="text/javascript":"style"===e&&(n="text/css"),n=function(e){for(var t=null,n=e.next;n.type!==o.EOF&&e.closed!==n;){if(n.type===o.ATTRIBUTE&&"type"===n.text){n.next&&n.next.type===o.EQUALS&&n.next.next&&n.next.next.type===o.VALUE&&(t=n.next.next.text);break}n=n.next}return t}(t)||n,n.search("text/css")>-1?i="css":n.search(/module|((text|application|dojo)\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\+)?json|method|aspect))/)>-1?i="javascript":n.search(/(text|application|dojo)\/(x-)?(html)/)>-1?i="html":n.search(/test\/null/)>-1&&(i="null"),i):null};function d(e,t){return-1!==t.indexOf(e)}function u(e,t,n){this.parent=e||null,this.tag=t?t.tag_name:"",this.indent_level=n||0,this.parser_token=t||null}function p(e){this._printer=e,this._current_frame=null}function m(e,t,n,r){this._source_text=e||"",t=t||{},this._js_beautify=n,this._css_beautify=r,this._tag_stack=null;var a=new i(t,"html");this._options=a,this._is_wrap_attributes_force="force"===this._options.wrap_attributes.substr(0,"force".length),this._is_wrap_attributes_force_expand_multiline="force-expand-multiline"===this._options.wrap_attributes,this._is_wrap_attributes_force_aligned="force-aligned"===this._options.wrap_attributes,this._is_wrap_attributes_aligned_multiple="aligned-multiple"===this._options.wrap_attributes,this._is_wrap_attributes_preserve="preserve"===this._options.wrap_attributes.substr(0,"preserve".length),this._is_wrap_attributes_preserve_aligned="preserve-aligned"===this._options.wrap_attributes}p.prototype.get_parser_token=function(){return this._current_frame?this._current_frame.parser_token:null},p.prototype.record_tag=function(e){var t=new u(this._current_frame,e,this._printer.indent_level);this._current_frame=t},p.prototype._try_pop_frame=function(e){var t=null;return e&&(t=e.parser_token,this._printer.indent_level=e.indent_level,this._current_frame=e.parent),t},p.prototype._get_frame=function(e,t){for(var n=this._current_frame;n&&-1===e.indexOf(n.tag);){if(t&&-1!==t.indexOf(n.tag)){n=null;break}n=n.parent}return n},p.prototype.try_pop=function(e,t){var n=this._get_frame([e],t);return this._try_pop_frame(n)},p.prototype.indent_to_tag=function(e){var t=this._get_frame(e);t&&(this._printer.indent_level=t.indent_level)},m.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var e=this._source_text,t=this._options.eol;"auto"===this._options.eol&&(t="\n",e&&s.test(e)&&(t=e.match(s)[0]));var n=(e=e.replace(l,"\n")).match(/^[\t ]*/)[0],i={text:"",type:""},r=new f,h=new c(this._options,n),d=new a(e,this._options).tokenize();this._tag_stack=new p(h);for(var u=null,m=d.next();m.type!==o.EOF;)m.type===o.TAG_OPEN||m.type===o.COMMENT?r=u=this._handle_tag_open(h,m,r,i):m.type===o.ATTRIBUTE||m.type===o.EQUALS||m.type===o.VALUE||m.type===o.TEXT&&!r.tag_complete?u=this._handle_inside_tag(h,m,r,d):m.type===o.TAG_CLOSE?u=this._handle_tag_close(h,m,r):m.type===o.TEXT?u=this._handle_text(h,m,r):h.add_raw_token(m),i=u,m=d.next();return h._output.get_code(t)},m.prototype._handle_tag_close=function(e,t,n){var i={text:t.text,type:t.type};return e.alignment_size=0,n.tag_complete=!0,e.set_space_before_token(t.newlines||""!==t.whitespace_before,!0),n.is_unformatted?e.add_raw_token(t):("<"===n.tag_start_char&&(e.set_space_before_token("/"===t.text[0],!0),this._is_wrap_attributes_force_expand_multiline&&n.has_wrapped_attrs&&e.print_newline(!1)),e.print_token(t)),!n.indent_content||n.is_unformatted||n.is_content_unformatted||(e.indent(),n.indent_content=!1),n.is_inline_element||n.is_unformatted||n.is_content_unformatted||e.set_wrap_point(),i},m.prototype._handle_inside_tag=function(e,t,n,i){var r=n.has_wrapped_attrs,a={text:t.text,type:t.type};if(e.set_space_before_token(t.newlines||""!==t.whitespace_before,!0),n.is_unformatted)e.add_raw_token(t);else if("{"===n.tag_start_char&&t.type===o.TEXT)e.print_preserved_newlines(t)?(t.newlines=0,e.add_raw_token(t)):e.print_token(t);else{if(t.type===o.ATTRIBUTE?(e.set_space_before_token(!0),n.attr_count+=1):(t.type===o.EQUALS||t.type===o.VALUE&&t.previous.type===o.EQUALS)&&e.set_space_before_token(!1),t.type===o.ATTRIBUTE&&"<"===n.tag_start_char&&((this._is_wrap_attributes_preserve||this._is_wrap_attributes_preserve_aligned)&&(e.traverse_whitespace(t),r=r||0!==t.newlines),this._is_wrap_attributes_force)){var s=n.attr_count>1;if(this._is_wrap_attributes_force_expand_multiline&&1===n.attr_count){var l,c=!0,h=0;do{if((l=i.peek(h)).type===o.ATTRIBUTE){c=!1;break}h+=1}while(h<4&&l.type!==o.EOF&&l.type!==o.TAG_CLOSE);s=!c}s&&(e.print_newline(!1),r=!0)}e.print_token(t),r=r||e.previous_token_wrapped(),n.has_wrapped_attrs=r}return a},m.prototype._handle_text=function(e,t,n){var i={text:t.text,type:"TK_CONTENT"};return n.custom_beautifier_name?this._print_custom_beatifier_text(e,t,n):n.is_unformatted||n.is_content_unformatted?e.add_raw_token(t):(e.traverse_whitespace(t),e.print_token(t)),i},m.prototype._print_custom_beatifier_text=function(e,t,n){var i=this;if(""!==t.text){var r,a=t.text,o=1,s="",l="";"javascript"===n.custom_beautifier_name&&"function"===typeof this._js_beautify?r=this._js_beautify:"css"===n.custom_beautifier_name&&"function"===typeof this._css_beautify?r=this._css_beautify:"html"===n.custom_beautifier_name&&(r=function(e,t){return new m(e,t,i._js_beautify,i._css_beautify).beautify()}),"keep"===this._options.indent_scripts?o=0:"separate"===this._options.indent_scripts&&(o=-e.indent_level);var c=e.get_full_indent(o);if(a=a.replace(/\n[ \t]*$/,""),"html"!==n.custom_beautifier_name&&"<"===a[0]&&a.match(/^(|]]>)$/.exec(a);if(!h)return void e.add_raw_token(t);s=c+h[1]+"\n",a=h[4],h[5]&&(l=c+h[5]),a=a.replace(/\n[ \t]*$/,""),(h[2]||-1!==h[3].indexOf("\n"))&&(h=h[3].match(/[ \t]+$/))&&(t.whitespace_before=h[0])}if(a)if(r){var d=function(){this.eol="\n"};d.prototype=this._options.raw_options,a=r(c+a,new d)}else{var u=t.whitespace_before;u&&(a=a.replace(new RegExp("\n("+u+")?","g"),"\n")),a=c+a.replace(/\n/g,"\n"+c)}s&&(a=a?s+a+"\n"+l:s+l),e.print_newline(!1),a&&(t.text=a,t.whitespace_before="",t.newlines=0,e.add_raw_token(t),e.print_newline(!0))}},m.prototype._handle_tag_open=function(e,t,n,i){var r=this._get_tag_open_token(t);return!n.is_unformatted&&!n.is_content_unformatted||n.is_empty_element||t.type!==o.TAG_OPEN||0!==t.text.indexOf("]*)/),this.tag_check=n?n[1]:""):(n=t.text.match(/^{{(?:[\^]|#\*?)?([^\s}]+)/),this.tag_check=n?n[1]:"","{{#>"===t.text&&">"===this.tag_check&&null!==t.next&&(this.tag_check=t.next.text)),this.tag_check=this.tag_check.toLowerCase(),t.type===o.COMMENT&&(this.tag_complete=!0),this.is_start_tag="/"!==this.tag_check.charAt(0),this.tag_name=this.is_start_tag?this.tag_check:this.tag_check.substr(1),this.is_end_tag=!this.is_start_tag||t.closed&&"/>"===t.closed.text,this.is_end_tag=this.is_end_tag||"{"===this.tag_start_char&&(this.text.length<3||/[^#\^]/.test(this.text.charAt(2)))):this.tag_complete=!0};m.prototype._get_tag_open_token=function(e){var t=new f(this._tag_stack.get_parser_token(),e);return t.alignment_size=this._options.wrap_attributes_indent_size,t.is_end_tag=t.is_end_tag||d(t.tag_check,this._options.void_elements),t.is_empty_element=t.tag_complete||t.is_start_tag&&t.is_end_tag,t.is_unformatted=!t.tag_complete&&d(t.tag_check,this._options.unformatted),t.is_content_unformatted=!t.is_empty_element&&d(t.tag_check,this._options.content_unformatted),t.is_inline_element=d(t.tag_name,this._options.inline)||"{"===t.tag_start_char,t},m.prototype._set_tag_position=function(e,t,n,i,r){if(n.is_empty_element||(n.is_end_tag?n.start_tag_token=this._tag_stack.try_pop(n.tag_name):(this._do_optional_end_element(n)&&(n.is_inline_element||e.print_newline(!1)),this._tag_stack.record_tag(n),"script"!==n.tag_name&&"style"!==n.tag_name||n.is_unformatted||n.is_content_unformatted||(n.custom_beautifier_name=h(n.tag_check,t)))),d(n.tag_check,this._options.extra_liners)&&(e.print_newline(!1),e._output.just_added_blankline()||e.print_newline(!0)),n.is_empty_element){if("{"===n.tag_start_char&&"else"===n.tag_check)this._tag_stack.indent_to_tag(["if","unless","each"]),n.indent_content=!0,e.current_line_has_match(/{{#if/)||e.print_newline(!1);"!--"===n.tag_name&&r.type===o.TAG_CLOSE&&i.is_end_tag&&-1===n.text.indexOf("\n")||(n.is_inline_element||n.is_unformatted||e.print_newline(!1),this._calcluate_parent_multiline(e,n))}else if(n.is_end_tag){var a=!1;a=(a=n.start_tag_token&&n.start_tag_token.multiline_content)||!n.is_inline_element&&!(i.is_inline_element||i.is_unformatted)&&!(r.type===o.TAG_CLOSE&&n.start_tag_token===i)&&"TK_CONTENT"!==r.type,(n.is_content_unformatted||n.is_unformatted)&&(a=!1),a&&e.print_newline(!1)}else n.indent_content=!n.custom_beautifier_name,"<"===n.tag_start_char&&("html"===n.tag_name?n.indent_content=this._options.indent_inner_html:"head"===n.tag_name?n.indent_content=this._options.indent_head_inner_html:"body"===n.tag_name&&(n.indent_content=this._options.indent_body_inner_html)),n.is_inline_element||n.is_unformatted||"TK_CONTENT"===r.type&&!n.is_content_unformatted||e.print_newline(!1),this._calcluate_parent_multiline(e,n)},m.prototype._calcluate_parent_multiline=function(e,t){!t.parent||!e._output.just_added_newline()||(t.is_inline_element||t.is_unformatted)&&t.parent.is_inline_element||(t.parent.multiline_content=!0)};var g=["address","article","aside","blockquote","details","div","dl","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hr","main","nav","ol","p","pre","section","table","ul"],b=["a","audio","del","ins","map","noscript","video"];m.prototype._do_optional_end_element=function(e){var t=null;if(!e.is_empty_element&&e.is_start_tag&&e.parent){if("body"===e.tag_name)t=t||this._tag_stack.try_pop("head");else if("li"===e.tag_name)t=t||this._tag_stack.try_pop("li",["ol","ul"]);else if("dd"===e.tag_name||"dt"===e.tag_name)t=(t=t||this._tag_stack.try_pop("dt",["dl"]))||this._tag_stack.try_pop("dd",["dl"]);else if("p"===e.parent.tag_name&&-1!==g.indexOf(e.tag_name)){var n=e.parent.parent;n&&-1!==b.indexOf(n.tag_name)||(t=t||this._tag_stack.try_pop("p"))}else"rp"===e.tag_name||"rt"===e.tag_name?t=(t=t||this._tag_stack.try_pop("rt",["ruby","rtc"]))||this._tag_stack.try_pop("rp",["ruby","rtc"]):"optgroup"===e.tag_name?t=t||this._tag_stack.try_pop("optgroup",["select"]):"option"===e.tag_name?t=t||this._tag_stack.try_pop("option",["select","datalist","optgroup"]):"colgroup"===e.tag_name?t=t||this._tag_stack.try_pop("caption",["table"]):"thead"===e.tag_name?t=(t=t||this._tag_stack.try_pop("caption",["table"]))||this._tag_stack.try_pop("colgroup",["table"]):"tbody"===e.tag_name||"tfoot"===e.tag_name?t=(t=(t=(t=t||this._tag_stack.try_pop("caption",["table"]))||this._tag_stack.try_pop("colgroup",["table"]))||this._tag_stack.try_pop("thead",["table"]))||this._tag_stack.try_pop("tbody",["table"]):"tr"===e.tag_name?t=(t=(t=t||this._tag_stack.try_pop("caption",["table"]))||this._tag_stack.try_pop("colgroup",["table"]))||this._tag_stack.try_pop("tr",["table","thead","tbody","tfoot"]):"th"!==e.tag_name&&"td"!==e.tag_name||(t=(t=t||this._tag_stack.try_pop("td",["table","thead","tbody","tfoot","tr"]))||this._tag_stack.try_pop("th",["table","thead","tbody","tfoot","tr"]));return e.parent=this._tag_stack.get_parser_token(),t}},e.exports.Beautifier=m},function(e,t,n){var i=n(6).Options;function r(e){i.call(this,e,"html"),1===this.templating.length&&"auto"===this.templating[0]&&(this.templating=["django","erb","handlebars","php"]),this.indent_inner_html=this._get_boolean("indent_inner_html"),this.indent_body_inner_html=this._get_boolean("indent_body_inner_html",!0),this.indent_head_inner_html=this._get_boolean("indent_head_inner_html",!0),this.indent_handlebars=this._get_boolean("indent_handlebars",!0),this.wrap_attributes=this._get_selection("wrap_attributes",["auto","force","force-aligned","force-expand-multiline","aligned-multiple","preserve","preserve-aligned"]),this.wrap_attributes_indent_size=this._get_number("wrap_attributes_indent_size",this.indent_size),this.extra_liners=this._get_array("extra_liners",["head","body","/html"]),this.inline=this._get_array("inline",["a","abbr","area","audio","b","bdi","bdo","br","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","img","input","ins","kbd","keygen","label","map","mark","math","meter","noscript","object","output","progress","q","ruby","s","samp","select","small","span","strong","sub","sup","svg","template","textarea","time","u","var","video","wbr","text","acronym","big","strike","tt"]),this.void_elements=this._get_array("void_elements",["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr","!doctype","?xml","basefont","isindex"]),this.unformatted=this._get_array("unformatted",[]),this.content_unformatted=this._get_array("content_unformatted",["pre","textarea"]),this.unformatted_content_delimiter=this._get_characters("unformatted_content_delimiter"),this.indent_scripts=this._get_selection("indent_scripts",["normal","keep","separate"])}r.prototype=new i,e.exports.Options=r},function(e,t,n){var i=n(9).Tokenizer,r=n(9).TOKEN,a=n(13).Directives,o=n(14).TemplatablePattern,s=n(12).Pattern,l={TAG_OPEN:"TK_TAG_OPEN",TAG_CLOSE:"TK_TAG_CLOSE",ATTRIBUTE:"TK_ATTRIBUTE",EQUALS:"TK_EQUALS",VALUE:"TK_VALUE",COMMENT:"TK_COMMENT",TEXT:"TK_TEXT",UNKNOWN:"TK_UNKNOWN",START:r.START,RAW:r.RAW,EOF:r.EOF},c=new a(/<\!--/,/-->/),h=function(e,t){i.call(this,e,t),this._current_tag_name="";var n=new o(this._input).read_options(this._options),r=new s(this._input);if(this.__patterns={word:n.until(/[\n\r\t <]/),single_quote:n.until_after(/'/),double_quote:n.until_after(/"/),attribute:n.until(/[\n\r\t =>]|\/>/),element_name:n.until(/[\n\r\t >\/]/),handlebars_comment:r.starting_with(/{{!--/).until_after(/--}}/),handlebars:r.starting_with(/{{/).until_after(/}}/),handlebars_open:r.until(/[\n\r\t }]/),handlebars_raw_close:r.until(/}}/),comment:r.starting_with(//),cdata:r.starting_with(//),conditional_comment:r.starting_with(//),processing:r.starting_with(/<\?/).until_after(/\?>/)},this._options.indent_handlebars&&(this.__patterns.word=this.__patterns.word.exclude("handlebars")),this._unformatted_content_delimiter=null,this._options.unformatted_content_delimiter){var a=this._input.get_literal_regexp(this._options.unformatted_content_delimiter);this.__patterns.unformatted_content_delimiter=r.matching(a).until_after(a)}};(h.prototype=new i)._is_comment=function(e){return!1},h.prototype._is_opening=function(e){return e.type===l.TAG_OPEN},h.prototype._is_closing=function(e,t){return e.type===l.TAG_CLOSE&&t&&((">"===e.text||"/>"===e.text)&&"<"===t.text[0]||"}}"===e.text&&"{"===t.text[0]&&"{"===t.text[1])},h.prototype._reset=function(){this._current_tag_name=""},h.prototype._get_next_token=function(e,t){var n=null;this._readWhitespace();var i=this._input.peek();return null===i?this._create_token(l.EOF,""):n=(n=(n=(n=(n=(n=(n=(n=(n=n||this._read_open_handlebars(i,t))||this._read_attribute(i,e,t))||this._read_close(i,t))||this._read_raw_content(i,e,t))||this._read_content_word(i))||this._read_comment_or_cdata(i))||this._read_processing(i))||this._read_open(i,t))||this._create_token(l.UNKNOWN,this._input.next())},h.prototype._read_comment_or_cdata=function(e){var t=null,n=null,i=null;"<"===e&&("!"===this._input.peek(1)&&((n=this.__patterns.comment.read())?(i=c.get_directives(n))&&"start"===i.ignore&&(n+=c.readIgnored(this._input)):n=this.__patterns.cdata.read()),n&&((t=this._create_token(l.COMMENT,n)).directives=i));return t},h.prototype._read_processing=function(e){var t=null,n=null;if("<"===e){var i=this._input.peek(1);"!"!==i&&"?"!==i||(n=(n=this.__patterns.conditional_comment.read())||this.__patterns.processing.read()),n&&((t=this._create_token(l.COMMENT,n)).directives=null)}return t},h.prototype._read_open=function(e,t){var n=null,i=null;return t||"<"===e&&(n=this._input.next(),"/"===this._input.peek()&&(n+=this._input.next()),n+=this.__patterns.element_name.read(),i=this._create_token(l.TAG_OPEN,n)),i},h.prototype._read_open_handlebars=function(e,t){var n=null,i=null;return t||this._options.indent_handlebars&&"{"===e&&"{"===this._input.peek(1)&&("!"===this._input.peek(2)?(n=(n=this.__patterns.handlebars_comment.read())||this.__patterns.handlebars.read(),i=this._create_token(l.COMMENT,n)):(n=this.__patterns.handlebars_open.read(),i=this._create_token(l.TAG_OPEN,n))),i},h.prototype._read_close=function(e,t){var n=null,i=null;return t&&("<"===t.text[0]&&(">"===e||"/"===e&&">"===this._input.peek(1))?(n=this._input.next(),"/"===e&&(n+=this._input.next()),i=this._create_token(l.TAG_CLOSE,n)):"{"===t.text[0]&&"}"===e&&"}"===this._input.peek(1)&&(this._input.next(),this._input.next(),i=this._create_token(l.TAG_CLOSE,"}}"))),i},h.prototype._read_attribute=function(e,t,n){var i=null,r="";if(n&&"<"===n.text[0])if("="===e)i=this._create_token(l.EQUALS,this._input.next());else if('"'===e||"'"===e){var a=this._input.next();a+='"'===e?this.__patterns.double_quote.read():this.__patterns.single_quote.read(),i=this._create_token(l.VALUE,a)}else(r=this.__patterns.attribute.read())&&(i=t.type===l.EQUALS?this._create_token(l.VALUE,r):this._create_token(l.ATTRIBUTE,r));return i},h.prototype._is_content_unformatted=function(e){return-1===this._options.void_elements.indexOf(e)&&(-1!==this._options.content_unformatted.indexOf(e)||-1!==this._options.unformatted.indexOf(e))},h.prototype._read_raw_content=function(e,t,n){var i="";if(n&&"{"===n.text[0])i=this.__patterns.handlebars_raw_close.read();else if(t.type===l.TAG_CLOSE&&"<"===t.opened.text[0]&&"/"!==t.text[0]){var r=t.opened.text.substr(1).toLowerCase();if("script"===r||"style"===r){var a=this._read_comment_or_cdata(e);if(a)return a.type=l.TEXT,a;i=this._input.readUntil(new RegExp("","ig"))}else this._is_content_unformatted(r)&&(i=this._input.readUntil(new RegExp("","ig")))}return i?this._create_token(l.TEXT,i):null},h.prototype._read_content_word=function(e){var t="";if(this._options.unformatted_content_delimiter&&e===this._options.unformatted_content_delimiter[0]&&(t=this.__patterns.unformatted_content_delimiter.read()),t||(t=this.__patterns.word.read()),t)return this._create_token(l.TEXT,t)},e.exports.Tokenizer=h,e.exports.TOKEN=l}]);gt=function(){var e={470:function(e){function t(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var n,i="",r=0,a=-1,o=0,s=0;s<=e.length;++s){if(s2){var l=i.lastIndexOf("/");if(l!==i.length-1){-1===l?(i="",r=0):r=(i=i.slice(0,l)).length-1-i.lastIndexOf("/"),a=s,o=0;continue}}else if(2===i.length||1===i.length){i="",r=0,a=s,o=0;continue}t&&(i.length>0?i+="/..":i="..",r=2)}else i.length>0?i+="/"+e.slice(a+1,s):i=e.slice(a+1,s),r=s-a-1;a=s,o=0}else 46===n&&-1!==o?++o:o=-1}return i}var i={resolve:function(){for(var e,i="",r=!1,a=arguments.length-1;a>=-1&&!r;a--){var o;a>=0?o=arguments[a]:(void 0===e&&(e=process.cwd()),o=e),t(o),0!==o.length&&(i=o+"/"+i,r=47===o.charCodeAt(0))}return i=n(i,!r),r?i.length>0?"/"+i:"/":i.length>0?i:"."},normalize:function(e){if(t(e),0===e.length)return".";var i=47===e.charCodeAt(0),r=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!i)).length||i||(e="."),e.length>0&&r&&(e+="/"),i?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,n=0;n0&&(void 0===e?e=r:e+="/"+r)}return void 0===e?".":i.normalize(e)},relative:function(e,n){if(t(e),t(n),e===n)return"";if((e=i.resolve(e))===(n=i.resolve(n)))return"";for(var r=1;rc){if(47===n.charCodeAt(s+d))return n.slice(s+d+1);if(0===d)return n.slice(s+d)}else o>c&&(47===e.charCodeAt(r+d)?h=d:0===d&&(h=0));break}var u=e.charCodeAt(r+d);if(u!==n.charCodeAt(s+d))break;47===u&&(h=d)}var p="";for(d=r+h+1;d<=a;++d)d!==a&&47!==e.charCodeAt(d)||(0===p.length?p+="..":p+="/..");return p.length>0?p+n.slice(s+h):(s+=h,47===n.charCodeAt(s)&&++s,n.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var n=e.charCodeAt(0),i=47===n,r=-1,a=!0,o=e.length-1;o>=1;--o)if(47===(n=e.charCodeAt(o))){if(!a){r=o;break}}else a=!1;return-1===r?i?"/":".":i&&1===r?"//":e.slice(0,r)},basename:function(e,n){if(void 0!==n&&"string"!=typeof n)throw new TypeError('"ext" argument must be a string');t(e);var i,r=0,a=-1,o=!0;if(void 0!==n&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return"";var s=n.length-1,l=-1;for(i=e.length-1;i>=0;--i){var c=e.charCodeAt(i);if(47===c){if(!o){r=i+1;break}}else-1===l&&(o=!1,l=i+1),s>=0&&(c===n.charCodeAt(s)?-1==--s&&(a=i):(s=-1,a=l))}return r===a?a=l:-1===a&&(a=e.length),e.slice(r,a)}for(i=e.length-1;i>=0;--i)if(47===e.charCodeAt(i)){if(!o){r=i+1;break}}else-1===a&&(o=!1,a=i+1);return-1===a?"":e.slice(r,a)},extname:function(e){t(e);for(var n=-1,i=0,r=-1,a=!0,o=0,s=e.length-1;s>=0;--s){var l=e.charCodeAt(s);if(47!==l)-1===r&&(a=!1,r=s+1),46===l?-1===n?n=s:1!==o&&(o=1):-1!==n&&(o=-1);else if(!a){i=s+1;break}}return-1===n||-1===r||0===o||1===o&&n===r-1&&n===i+1?"":e.slice(n,r)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var n=t.dir||t.root,i=t.base||(t.name||"")+(t.ext||"");return n?n===t.root?n+i:n+"/"+i:i}(0,e)},parse:function(e){t(e);var n={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return n;var i,r=e.charCodeAt(0),a=47===r;a?(n.root="/",i=1):i=0;for(var o=-1,s=0,l=-1,c=!0,h=e.length-1,d=0;h>=i;--h)if(47!==(r=e.charCodeAt(h)))-1===l&&(c=!1,l=h+1),46===r?-1===o?o=h:1!==d&&(d=1):-1!==o&&(d=-1);else if(!c){s=h+1;break}return-1===o||-1===l||0===d||1===d&&o===l-1&&o===s+1?-1!==l&&(n.base=n.name=0===s&&a?e.slice(1,l):e.slice(s,l)):(0===s&&a?(n.name=e.slice(1,o),n.base=e.slice(1,l)):(n.name=e.slice(s,o),n.base=e.slice(s,l)),n.ext=e.slice(o,l)),s>0?n.dir=e.slice(0,s-1):a&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};i.posix=i,e.exports=i},447:function(e,t,n){var i;if(n.r(t),n.d(t,{URI:function(){return m},Utils:function(){return x}}),"object"==typeof process)i="win32"===process.platform;else if("object"==typeof navigator){var r=navigator.userAgent;i=r.indexOf("Windows")>=0}var a,o,s=(a=function(e,t){return(a=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])})(e,t)},function(e,t){function n(){this.constructor=e}a(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),l=/^\w[\w\d+.-]*$/,c=/^\//,h=/^\/\//,d="",u="/",p=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,m=function(){function e(e,t,n,i,r,a){void 0===a&&(a=!1),"object"==typeof e?(this.scheme=e.scheme||d,this.authority=e.authority||d,this.path=e.path||d,this.query=e.query||d,this.fragment=e.fragment||d):(this.scheme=function(e,t){return e||t?e:"file"}(e,a),this.authority=t||d,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==u&&(t=u+t):t=u}return t}(this.scheme,n||d),this.query=i||d,this.fragment=r||d,function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: "", authority: "'+e.authority+'", path: "'+e.path+'", query: "'+e.query+'", fragment: "'+e.fragment+'"}');if(e.scheme&&!l.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!c.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(h.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 e.isUri=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&&"function"==typeof t.fsPath&&"function"==typeof t.with&&"function"==typeof t.toString},Object.defineProperty(e.prototype,"fsPath",{get:function(){return v(this,!1)},enumerable:!1,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,i=e.path,r=e.query,a=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=d),void 0===n?n=this.authority:null===n&&(n=d),void 0===i?i=this.path:null===i&&(i=d),void 0===r?r=this.query:null===r&&(r=d),void 0===a?a=this.fragment:null===a&&(a=d),t===this.scheme&&n===this.authority&&i===this.path&&r===this.query&&a===this.fragment?this:new g(t,n,i,r,a)},e.parse=function(e,t){void 0===t&&(t=!1);var n=p.exec(e);return n?new g(n[2]||d,S(n[4]||d),S(n[5]||d),S(n[7]||d),S(n[9]||d),t):new g(d,d,d,d,d)},e.file=function(e){var t=d;if(i&&(e=e.replace(/\\/g,u)),e[0]===u&&e[1]===u){var n=e.indexOf(u,2);-1===n?(t=e.substring(2),e=u):(t=e.substring(2,n),e=e.substring(n)||u)}return new g("file",t,e,d,d)},e.from=function(e){return new g(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),y(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new g(t);return n._formatted=t.external,n._fsPath=t._sep===f?t.fsPath:null,n}return t},e}(),f=i?1:void 0,g=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return s(t,e),Object.defineProperty(t.prototype,"fsPath",{get:function(){return this._fsPath||(this._fsPath=v(this,!1)),this._fsPath},enumerable:!1,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?y(this,!0):(this._formatted||(this._formatted=y(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=f),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},t}(m),b=((o={})[58]="%3A",o[47]="%2F",o[63]="%3F",o[35]="%23",o[91]="%5B",o[93]="%5D",o[64]="%40",o[33]="%21",o[36]="%24",o[38]="%26",o[39]="%27",o[40]="%28",o[41]="%29",o[42]="%2A",o[43]="%2B",o[44]="%2C",o[59]="%3B",o[61]="%3D",o[32]="%20",o);function _(e,t){for(var n=void 0,i=-1,r=0;r=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||45===a||46===a||95===a||126===a||t&&47===a)-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 o=b[a];void 0!==o?(-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),n+=o):-1===i&&(i=r)}}return-1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function w(e){for(var t=void 0,n=0;n1&&"file"===e.scheme?"//"+e.authority+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,i&&(n=n.replace(/\//g,"\\")),n}function y(e,t){var n=t?w:_,i="",r=e.scheme,a=e.authority,o=e.path,s=e.query,l=e.fragment;if(r&&(i+=r,i+=":"),(a||"file"===r)&&(i+=u,i+=u),a){var c=a.indexOf("@");if(-1!==c){var h=a.substr(0,c);a=a.substr(c+1),-1===(c=h.indexOf(":"))?i+=n(h,!1):(i+=n(h.substr(0,c),!1),i+=":",i+=n(h.substr(c+1),!1)),i+="@"}-1===(c=(a=a.toLowerCase()).indexOf(":"))?i+=n(a,!1):(i+=n(a.substr(0,c),!1),i+=a.substr(c))}if(o){if(o.length>=3&&47===o.charCodeAt(0)&&58===o.charCodeAt(2))(d=o.charCodeAt(1))>=65&&d<=90&&(o="/"+String.fromCharCode(d+32)+":"+o.substr(3));else if(o.length>=2&&58===o.charCodeAt(1)){var d;(d=o.charCodeAt(0))>=65&&d<=90&&(o=String.fromCharCode(d+32)+":"+o.substr(2))}i+=n(o,!0)}return s&&(i+="?",i+=n(s,!1)),l&&(i+="#",i+=t?l:_(l,!1)),i}function T(e){try{return decodeURIComponent(e)}catch(t){return e.length>3?e.substr(0,3)+T(e.substr(3)):e}}var k=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function S(e){return e.match(k)?e.replace(k,(function(e){return T(e)})):e}var x,M=n(470),L=function(){for(var e=0,t=0,n=arguments.length;t" preamble found at the top of all documents. Its sole purpose is to prevent a browser from switching into so-called \u201cquirks mode\u201d when rendering a document; that is, the "" doctype ensures that the browser makes a best-effort attempt at following the relevant specifications, rather than using a different rendering mode that is incompatible with some specifications.") that governs the current document. This attribute is not needed, because it is redundant with the version information in the document type declaration.'},{name:"xmlns",description:'Specifies the XML Namespace of the document. Default value is `"http://www.w3.org/1999/xhtml"`. This is required in documents parsed with XML parsers, and optional in text/html documents.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/html"}]},{name:"head",description:{kind:"markdown",value:"The head element represents a collection of metadata for the Document."},attributes:[{name:"profile",description:"The URIs of one or more metadata profiles, separated by white space."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/head"}]},{name:"title",description:{kind:"markdown",value:"The title element represents the document's title or name. Authors should use titles that identify their documents even when they are used out of context, for example in a user's history or bookmarks, or in search results. The document's title is often different from its first heading, since the first heading does not have to stand alone when taken out of context."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/title"}]},{name:"base",description:{kind:"markdown",value:"The base element allows authors to specify the document base URL for the purposes of resolving relative URLs, and the name of the default browsing context for the purposes of following hyperlinks. The element does not represent any content beyond this information."},attributes:[{name:"href",description:{kind:"markdown",value:"The base URL to be used throughout the document for relative URL addresses. If this attribute is specified, this element must come before any other elements with attributes whose values are URLs. Absolute and relative URLs are allowed."}},{name:"target",description:{kind:"markdown",value:"A name or keyword indicating the default location to display the result when hyperlinks or forms cause navigation, for elements that do not have an explicit target reference. It is a name of, or keyword for, a _browsing context_ (for example: tab, window, or inline frame). The following keywords have special meanings:\n\n* `_self`: Load the result into the same browsing context as the current one. This value is the default if the attribute is not specified.\n* `_blank`: Load the result into a new unnamed browsing context.\n* `_parent`: Load the result into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\n* `_top`: Load the result into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\n\nIf this attribute is specified, this element must come before any other elements with attributes whose values are URLs."}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/base"}]},{name:"link",description:{kind:"markdown",value:"The link element allows authors to link their document to other resources."},attributes:[{name:"href",description:{kind:"markdown",value:'This attribute specifies the [URL](https://developer.mozilla.org/en-US/docs/Glossary/URL "URL: Uniform Resource Locator (URL) is a text string specifying where a resource can be found on the Internet.") of the linked resource. A URL can be absolute or relative.'}},{name:"crossorigin",valueSet:"xo",description:{kind:"markdown",value:'This enumerated attribute indicates whether [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS "CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.") must be used when fetching the resource. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_Enabled_Image) can be reused in the [``](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas "Use the HTML element with either the canvas scripting API or the WebGL API to draw graphics and animations.") element without being _tainted_. The allowed values are:\n\n`anonymous`\n\nA cross-origin request (i.e. with an [`Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin "The Origin request header indicates where a fetch originates from. It doesn\'t include any path information, but only the server name. It is sent with CORS requests, as well as with POST requests. It is similar to the Referer header, but, unlike this header, it doesn\'t disclose the whole path.") HTTP header) is performed, but no credential is sent (i.e. no cookie, X.509 certificate, or HTTP Basic authentication). If the server does not give credentials to the origin site (by not setting the [`Access-Control-Allow-Origin`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin "The Access-Control-Allow-Origin response header indicates whether the response can be shared with requesting code from the given origin.") HTTP header) the image will be tainted and its usage restricted.\n\n`use-credentials`\n\nA cross-origin request (i.e. with an `Origin` HTTP header) is performed along with a credential sent (i.e. a cookie, certificate, and/or HTTP Basic authentication is performed). If the server does not give credentials to the origin site (through [`Access-Control-Allow-Credentials`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials "The Access-Control-Allow-Credentials response header tells browsers whether to expose the response to frontend JavaScript code when the request\'s credentials mode (Request.credentials) is "include".") HTTP header), the resource will be _tainted_ and its usage restricted.\n\nIf the attribute is not present, the resource is fetched without a [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS "CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.") request (i.e. without sending the `Origin` HTTP header), preventing its non-tainted usage. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for additional information.'}},{name:"rel",description:{kind:"markdown",value:"This attribute names a relationship of the linked document to the current document. The attribute must be a space-separated list of the [link types values](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types)."}},{name:"media",description:{kind:"markdown",value:"This attribute specifies the media that the linked resource applies to. Its value must be a media type / [media query](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries). This attribute is mainly useful when linking to external stylesheets \u2014 it allows the user agent to pick the best adapted one for the device it runs on.\n\n**Notes:**\n\n* In HTML 4, this can only be a simple white-space-separated list of media description literals, i.e., [media types and groups](https://developer.mozilla.org/en-US/docs/Web/CSS/@media), where defined and allowed as values for this attribute, such as `print`, `screen`, `aural`, `braille`. HTML5 extended this to any kind of [media queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries), which are a superset of the allowed values of HTML 4.\n* Browsers not supporting [CSS3 Media Queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_queries) won't necessarily recognize the adequate link; do not forget to set fallback links, the restricted set of media queries defined in HTML 4."}},{name:"hreflang",description:{kind:"markdown",value:"This attribute indicates the language of the linked resource. It is purely advisory. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt). Use this attribute only if the [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute is present."}},{name:"type",description:{kind:"markdown",value:'This attribute is used to define the type of the content linked to. The value of the attribute should be a MIME type such as **text/html**, **text/css**, and so on. The common use of this attribute is to define the type of stylesheet being referenced (such as **text/css**), but given that CSS is the only stylesheet language used on the web, not only is it possible to omit the `type` attribute, but is actually now recommended practice. It is also used on `rel="preload"` link types, to make sure the browser only downloads file types that it supports.'}},{name:"sizes",description:{kind:"markdown",value:"This attribute defines the sizes of the icons for visual media contained in the resource. It must be present only if the [`rel`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-rel) contains a value of `icon` or a non-standard type such as Apple's `apple-touch-icon`. It may have the following values:\n\n* `any`, meaning that the icon can be scaled to any size as it is in a vector format, like `image/svg+xml`.\n* a white-space separated list of sizes, each in the format `__x__` or `__X__`. Each of these sizes must be contained in the resource.\n\n**Note:** Most icon formats are only able to store one single icon; therefore most of the time the [`sizes`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-sizes) contains only one entry. MS's ICO format does, as well as Apple's ICNS. ICO is more ubiquitous; you should definitely use it."}},{name:"as",description:'This attribute is only used when `rel="preload"` or `rel="prefetch"` has been set on the `` element. It specifies the type of content being loaded by the ``, which is necessary for content prioritization, request matching, application of correct [content security policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP), and setting of correct [`Accept`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept "The Accept request HTTP header advertises which content types, expressed as MIME types, the client is able to understand. Using content negotiation, the server then selects one of the proposals, uses it and informs the client of its choice with the Content-Type response header. Browsers set adequate values for this header depending on\xa0the context where the request is done: when fetching a CSS stylesheet a different value is set for the request than when fetching an image,\xa0video or a script.") request header.'},{name:"importance",description:"Indicates the relative importance of the resource. Priority hints are delegated using the values:"},{name:"importance",description:'**`auto`**: Indicates\xa0**no\xa0preference**. The browser may use its own heuristics to decide the priority of the resource.\n\n**`high`**: Indicates to the\xa0browser\xa0that the resource is of\xa0**high** priority.\n\n**`low`**:\xa0Indicates to the\xa0browser\xa0that the resource is of\xa0**low** priority.\n\n**Note:** The `importance` attribute may only be used for the `` element if `rel="preload"` or `rel="prefetch"` is present.'},{name:"integrity",description:"Contains inline metadata \u2014 a base64-encoded cryptographic hash of the resource (file) you\u2019re telling the browser to fetch. The browser can use this to verify that the fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity)."},{name:"referrerpolicy",description:'A string indicating which referrer to use when fetching the resource:\n\n* `no-referrer` means that the [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer "The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.") header will not be sent.\n* `no-referrer-when-downgrade` means that no [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer "The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.") header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent\u2019s default behavior, if no policy is otherwise specified.\n* `origin` means that the referrer will be the origin of the page, which is roughly the scheme, the host, and the port.\n* `origin-when-cross-origin` means that navigating to other origins will be limited to the scheme, the host, and the port, while navigating on the same origin will include the referrer\'s path.\n* `unsafe-url` means that the referrer will include the origin and the path (but not the fragment, password, or username). This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins.'},{name:"title",description:'The `title` attribute has special semantics on the `` element. When used on a `` it defines a [preferred or an alternate stylesheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets). Incorrectly using it may [cause the stylesheet to be ignored](https://developer.mozilla.org/en-US/docs/Correctly_Using_Titles_With_External_Stylesheets).'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/link"}]},{name:"meta",description:{kind:"markdown",value:"The meta element represents various kinds of metadata that cannot be expressed using the title, base, link, style, and script elements."},attributes:[{name:"name",description:{kind:"markdown",value:'This attribute defines the name of a piece of document-level metadata. It should not be set if one of the attributes [`itemprop`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-itemprop), [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) is also set.\n\nThis metadata name is associated with the value contained by the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute. The possible values for the name attribute are:\n\n* `application-name` which defines the name of the application running in the web page.\n \n **Note:**\n \n * Browsers may use this to identify the application. It is different from the [``](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title "The HTML Title element (<title>) defines the document\'s title that is shown in a browser\'s title bar or a page\'s tab.") element, which usually contain the application name, but may also contain information like the document name or a status.\n * Simple web pages shouldn\'t define an application-name.\n \n* `author` which defines the name of the document\'s author.\n* `description` which contains a short and accurate summary of the content of the page. Several browsers, like Firefox and Opera, use this as the default description of bookmarked pages.\n* `generator` which contains the identifier of the software that generated the page.\n* `keywords` which contains words relevant to the page\'s content separated by commas.\n* `referrer` which controls the [`Referer` HTTP header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) attached to requests sent from the document:\n \n Values for the `content` attribute of `<meta name="referrer">`\n \n `no-referrer`\n \n Do not send a HTTP `Referrer` header.\n \n `origin`\n \n Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the document.\n \n `no-referrer-when-downgrade`\n \n Send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) as a referrer to URLs as secure as the current page, (https\u2192https), but does not send a referrer to less secure URLs (https\u2192http). This is the default behaviour.\n \n `origin-when-cross-origin`\n \n Send the full URL (stripped of parameters) for same-origin requests, but only send the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) for other cases.\n \n `same-origin`\n \n A referrer will be sent for [same-site origins](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy), but cross-origin requests will contain no referrer information.\n \n `strict-origin`\n \n Only send the origin of the document as the referrer to a-priori as-much-secure destination (HTTPS->HTTPS), but don\'t send it to a less secure destination (HTTPS->HTTP).\n \n `strict-origin-when-cross-origin`\n \n Send a full URL when performing a same-origin request, only send the origin of the document to a-priori as-much-secure destination (HTTPS->HTTPS), and send no header to a less secure destination (HTTPS->HTTP).\n \n `unsafe-URL`\n \n Send the full URL (stripped of parameters) for same-origin or cross-origin requests.\n \n **Notes:**\n \n * Some browsers support the deprecated values of `always`, `default`, and `never` for referrer.\n * Dynamically inserting `<meta name="referrer">` (with [`document.write`](https://developer.mozilla.org/en-US/docs/Web/API/Document/write) or [`appendChild`](https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild)) makes the referrer behaviour unpredictable.\n * When several conflicting policies are defined, the no-referrer policy is applied.\n \n\nThis attribute may also have a value taken from the extended list defined on [WHATWG Wiki MetaExtensions page](https://wiki.whatwg.org/wiki/MetaExtensions). Although none have been formally accepted yet, a few commonly used names are:\n\n* `creator` which defines the name of the creator of the document, such as an organization or institution. If there are more than one, several [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta "The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.") elements should be used.\n* `googlebot`, a synonym of `robots`, is only followed by Googlebot (the indexing crawler for Google).\n* `publisher` which defines the name of the document\'s publisher.\n* `robots` which defines the behaviour that cooperative crawlers, or "robots", should use with the page. It is a comma-separated list of the values below:\n \n Values for the content of `<meta name="robots">`\n \n Value\n \n Description\n \n Used by\n \n `index`\n \n Allows the robot to index the page (default).\n \n All\n \n `noindex`\n \n Requests the robot to not index the page.\n \n All\n \n `follow`\n \n Allows the robot to follow the links on the page (default).\n \n All\n \n `nofollow`\n \n Requests the robot to not follow the links on the page.\n \n All\n \n `none`\n \n Equivalent to `noindex, nofollow`\n \n [Google](https://support.google.com/webmasters/answer/79812)\n \n `noodp`\n \n Prevents using the [Open Directory Project](https://www.dmoz.org/) description, if any, as the page description in search engine results.\n \n [Google](https://support.google.com/webmasters/answer/35624#nodmoz), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/meta-tags-robotstxt-yahoo-search-sln2213.html#cont5), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\n \n `noarchive`\n \n Requests the search engine not to cache the page content.\n \n [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Yahoo](https://help.yahoo.com/kb/search-for-desktop/SLN2213.html), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\n \n `nosnippet`\n \n Prevents displaying any description of the page in search engine results.\n \n [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives), [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\n \n `noimageindex`\n \n Requests this page not to appear as the referring page of an indexed image.\n \n [Google](https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag#valid-indexing--serving-directives)\n \n `nocache`\n \n Synonym of `noarchive`.\n \n [Bing](https://www.bing.com/webmaster/help/which-robots-metatags-does-bing-support-5198d240)\n \n **Notes:**\n \n * Only cooperative robots follow these rules. Do not expect to prevent e-mail harvesters with them.\n * The robot still needs to access the page in order to read these rules. To prevent bandwidth consumption, use a _[robots.txt](https://developer.mozilla.org/en-US/docs/Glossary/robots.txt "robots.txt: Robots.txt is a file which is usually placed in the root of any website. It decides whether\xa0crawlers are permitted or forbidden access to the web site.")_ file.\n * If you want to remove a page, `noindex` will work, but only after the robot visits the page again. Ensure that the `robots.txt` file is not preventing revisits.\n * Some values are mutually exclusive, like `index` and `noindex`, or `follow` and `nofollow`. In these cases the robot\'s behaviour is undefined and may vary between them.\n * Some crawler robots, like Google, Yahoo and Bing, support the same values for the HTTP header `X-Robots-Tag`; this allows non-HTML documents like images to use these rules.\n \n* `slurp`, is a synonym of `robots`, but only for Slurp - the crawler for Yahoo Search.\n* `viewport`, which gives hints about the size of the initial size of the [viewport](https://developer.mozilla.org/en-US/docs/Glossary/viewport "viewport: A viewport represents a polygonal (normally rectangular) area in computer graphics that is currently being viewed. In web browser terms, it refers to the part of the document you\'re viewing which is currently visible in its window (or the screen, if the document is being viewed in full screen mode). Content outside the viewport is not visible onscreen until scrolled into view."). Used by mobile devices only.\n \n Values for the content of `<meta name="viewport">`\n \n Value\n \n Possible subvalues\n \n Description\n \n `width`\n \n A positive integer number, or the text `device-width`\n \n Defines the pixel width of the viewport that you want the web site to be rendered at.\n \n `height`\n \n A positive integer, or the text `device-height`\n \n Defines the height of the viewport. Not used by any browser.\n \n `initial-scale`\n \n A positive number between `0.0` and `10.0`\n \n Defines the ratio between the device width (`device-width` in portrait mode or `device-height` in landscape mode) and the viewport size.\n \n `maximum-scale`\n \n A positive number between `0.0` and `10.0`\n \n Defines the maximum amount to zoom in. It must be greater or equal to the `minimum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\n \n `minimum-scale`\n \n A positive number between `0.0` and `10.0`\n \n Defines the minimum zoom level. It must be smaller or equal to the `maximum-scale` or the behaviour is undefined. Browser settings can ignore this rule and iOS10+ ignores it by default.\n \n `user-scalable`\n \n `yes` or `no`\n \n If set to `no`, the user is not able to zoom in the webpage. The default is `yes`. Browser settings can ignore this rule, and iOS10+ ignores it by default.\n \n Specification\n \n Status\n \n Comment\n \n [CSS Device Adaptation \n The definition of \'<meta name="viewport">\' in that specification.](https://drafts.csswg.org/css-device-adapt/#viewport-meta)\n \n Working Draft\n \n Non-normatively describes the Viewport META element\n \n See also: [`@viewport`](https://developer.mozilla.org/en-US/docs/Web/CSS/@viewport "The @viewport CSS at-rule lets you configure the viewport through which the document is viewed. It\'s primarily used for mobile devices, but is also used by desktop browsers that support features like "snap to edge" (such as Microsoft Edge).")\n \n **Notes:**\n \n * Though unstandardized, this declaration is respected by most mobile browsers due to de-facto dominance.\n * The default values may vary between devices and browsers.\n * To learn about this declaration in Firefox for Mobile, see [this article](https://developer.mozilla.org/en-US/docs/Mobile/Viewport_meta_tag "Mobile/Viewport meta tag").'}},{name:"http-equiv",description:{kind:"markdown",value:'Defines a pragma directive. The attribute is named `**http-equiv**(alent)` because all the allowed values are names of particular HTTP headers:\n\n* `"content-language"` \n Defines the default language of the page. It can be overridden by the [lang](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang) attribute on any element.\n \n **Warning:** Do not use this value, as it is obsolete. Prefer the `lang` attribute on the [`<html>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/html "The HTML <html> element represents the root (top-level element) of an HTML document, so it is also referred to as the root element. All other elements must be descendants of this element.") element.\n \n* `"content-security-policy"` \n Allows page authors to define a [content policy](https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives) for the current page. Content policies mostly specify allowed server origins and script endpoints which help guard against cross-site scripting attacks.\n* `"content-type"` \n Defines the [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type) of the document, followed by its character encoding. It follows the same syntax as the HTTP `content-type` entity-header field, but as it is inside a HTML page, most values other than `text/html` are impossible. Therefore the valid syntax for its `content` is the string \'`text/html`\' followed by a character set with the following syntax: \'`; charset=_IANAcharset_`\', where `IANAcharset` is the _preferred MIME name_ for a character set as [defined by the IANA.](https://www.iana.org/assignments/character-sets)\n \n **Warning:** Do not use this value, as it is obsolete. Use the [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute on the [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta "The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.") element.\n \n **Note:** As [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta "The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.") can\'t change documents\' types in XHTML or HTML5\'s XHTML serialization, never set the MIME type to an XHTML MIME type with `<meta>`.\n \n* `"refresh"` \n This instruction specifies:\n * The number of seconds until the page should be reloaded - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer.\n * The number of seconds until the page should redirect to another - only if the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) attribute contains a positive integer followed by the string \'`;url=`\', and a valid URL.\n* `"set-cookie"` \n Defines a [cookie](https://developer.mozilla.org/en-US/docs/cookie) for the page. Its content must follow the syntax defined in the [IETF HTTP Cookie Specification](https://tools.ietf.org/html/draft-ietf-httpstate-cookie-14).\n \n **Warning:** Do not use this instruction, as it is obsolete. Use the HTTP header [`Set-Cookie`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) instead.'}},{name:"content",description:{kind:"markdown",value:"This attribute contains the value for the [`http-equiv`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-http-equiv) or [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-name) attribute, depending on which is used."}},{name:"charset",description:{kind:"markdown",value:'This attribute declares the page\'s character encoding. It must contain a [standard IANA MIME name for character encodings](https://www.iana.org/assignments/character-sets). Although the standard doesn\'t request a specific encoding, it suggests:\n\n* Authors are encouraged to use [`UTF-8`](https://developer.mozilla.org/en-US/docs/Glossary/UTF-8).\n* Authors should not use ASCII-incompatible encodings to avoid security risk: browsers not supporting them may interpret harmful content as HTML. This happens with the `JIS_C6226-1983`, `JIS_X0212-1990`, `HZ-GB-2312`, `JOHAB`, the ISO-2022 family and the EBCDIC family.\n\n**Note:** ASCII-incompatible encodings are those that don\'t map the 8-bit code points `0x20` to `0x7E` to the `0x0020` to `0x007E` Unicode code points)\n\n* Authors **must not** use `CESU-8`, `UTF-7`, `BOCU-1` and/or `SCSU` as [cross-site scripting](https://developer.mozilla.org/en-US/docs/Glossary/Cross-site_scripting) attacks with these encodings have been demonstrated.\n* Authors should not use `UTF-32` because not all HTML5 encoding algorithms can distinguish it from `UTF-16`.\n\n**Notes:**\n\n* The declared character encoding must match the one the page was saved with to avoid garbled characters and security holes.\n* The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta "The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.") element declaring the encoding must be inside the [`<head>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/head "The HTML <head> element provides general information (metadata) about the document, including its title and links to its\xa0scripts and style sheets.") element and **within the first 1024 bytes** of the HTML as some browsers only look at those bytes before choosing an encoding.\n* This [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta "The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.") element is only one part of the [algorithm to determine a page\'s character set](https://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#encoding-sniffing-algorithm "Algorithm charset page"). The [`Content-Type` header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type) and any [Byte-Order Marks](https://developer.mozilla.org/en-US/docs/Glossary/Byte-Order_Mark "The definition of that term (Byte-Order Marks) has not been written yet; please consider contributing it!") override this element.\n* It is strongly recommended to define the character encoding. If a page\'s encoding is undefined, cross-scripting techniques are possible, such as the [`UTF-7` fallback cross-scripting technique](https://code.google.com/p/doctype-mirror/wiki/ArticleUtf7).\n* The [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta "The HTML <meta> element represents metadata that cannot be represented by other HTML meta-related elements, like <base>, <link>, <script>, <style> or <title>.") element with a `charset` attribute is a synonym for the pre-HTML5 `<meta http-equiv="Content-Type" content="text/html; charset=_IANAcharset_">`, where _`IANAcharset`_ contains the value of the equivalent [`charset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) attribute. This syntax is still allowed, although no longer recommended.'}},{name:"scheme",description:"This attribute defines the scheme in which metadata is described. A scheme is a context leading to the correct interpretations of the [`content`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-content) value, like a format.\n\n**Warning:** Do not use this value, as it is obsolete. There is no replacement as there was no real usage for it."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/meta"}]},{name:"style",description:{kind:"markdown",value:"The style element allows authors to embed style information in their documents. The style element is one of several inputs to the styling processing model. The element does not represent content for the user."},attributes:[{name:"media",description:{kind:"markdown",value:"This attribute defines which media the style should be applied to. Its value is a [media query](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries), which defaults to `all` if the attribute is missing."}},{name:"nonce",description:{kind:"markdown",value:"A cryptographic nonce (number used once) used to whitelist inline styles in a [style-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource\u2019s policy is otherwise trivial."}},{name:"type",description:{kind:"markdown",value:"This attribute defines the styling language as a MIME type (charset should not be specified). This attribute is optional and defaults to `text/css` if it is not specified \u2014 there is very little reason to include this in modern web documents."}},{name:"scoped",valueSet:"v"},{name:"title",description:"This attribute specifies [alternative style sheet](https://developer.mozilla.org/en-US/docs/Web/CSS/Alternative_style_sheets) sets."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/style"}]},{name:"body",description:{kind:"markdown",value:"The body element represents the content of the document."},attributes:[{name:"onafterprint",description:{kind:"markdown",value:"Function to call after the user has printed the document."}},{name:"onbeforeprint",description:{kind:"markdown",value:"Function to call when the user requests printing of the document."}},{name:"onbeforeunload",description:{kind:"markdown",value:"Function to call when the document is about to be unloaded."}},{name:"onhashchange",description:{kind:"markdown",value:"Function to call when the fragment identifier part (starting with the hash (`'#'`) character) of the document's current address has changed."}},{name:"onlanguagechange",description:{kind:"markdown",value:"Function to call when the preferred languages changed."}},{name:"onmessage",description:{kind:"markdown",value:"Function to call when the document has received a message."}},{name:"onoffline",description:{kind:"markdown",value:"Function to call when network communication has failed."}},{name:"ononline",description:{kind:"markdown",value:"Function to call when network communication has been restored."}},{name:"onpagehide"},{name:"onpageshow"},{name:"onpopstate",description:{kind:"markdown",value:"Function to call when the user has navigated session history."}},{name:"onstorage",description:{kind:"markdown",value:"Function to call when the storage area has changed."}},{name:"onunload",description:{kind:"markdown",value:"Function to call when the document is going away."}},{name:"alink",description:'Color of text for hyperlinks when selected. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color "The color CSS property sets the foreground color value of an element\'s text and text decorations, and sets the currentcolor value.") property in conjunction with the [`:active`](https://developer.mozilla.org/en-US/docs/Web/CSS/:active "The :active CSS pseudo-class represents an element (such as a button) that is being activated by the user.") pseudo-class instead._'},{name:"background",description:'URI of a image to use as a background. _This method is non-conforming, use CSS [`background`](https://developer.mozilla.org/en-US/docs/Web/CSS/background "The background shorthand CSS property sets all background style properties at once, such as color, image, origin and size, or repeat method.") property on the element instead._'},{name:"bgcolor",description:'Background color for the document. _This method is non-conforming, use CSS [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color "The background-color CSS property sets the background color of an element.") property on the element instead._'},{name:"bottommargin",description:'The margin of the bottom of the body. _This method is non-conforming, use CSS [`margin-bottom`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-bottom "The margin-bottom CSS property sets the margin area on the bottom of an element. A positive value places it farther from its neighbors, while a negative value places it closer.") property on the element instead._'},{name:"leftmargin",description:'The margin of the left of the body. _This method is non-conforming, use CSS [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left "The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.") property on the element instead._'},{name:"link",description:'Color of text for unvisited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color "The color CSS property sets the foreground color value of an element\'s text and text decorations, and sets the currentcolor value.") property in conjunction with the [`:link`](https://developer.mozilla.org/en-US/docs/Web/CSS/:link "The :link CSS pseudo-class represents an element that has not yet been visited. It matches every unvisited <a>, <area>, or <link> element that has an href attribute.") pseudo-class instead._'},{name:"onblur",description:"Function to call when the document loses focus."},{name:"onerror",description:"Function to call when the document fails to load properly."},{name:"onfocus",description:"Function to call when the document receives focus."},{name:"onload",description:"Function to call when the document has finished loading."},{name:"onredo",description:"Function to call when the user has moved forward in undo transaction history."},{name:"onresize",description:"Function to call when the document has been resized."},{name:"onundo",description:"Function to call when the user has moved backward in undo transaction history."},{name:"rightmargin",description:'The margin of the right of the body. _This method is non-conforming, use CSS [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right "The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.") property on the element instead._'},{name:"text",description:'Foreground color of text. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color "The color CSS property sets the foreground color value of an element\'s text and text decorations, and sets the currentcolor value.") property on the element instead._'},{name:"topmargin",description:'The margin of the top of the body. _This method is non-conforming, use CSS [`margin-top`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-top "The margin-top CSS property sets the margin area on the top of an element. A positive value places it farther from its neighbors, while a negative value places it closer.") property on the element instead._'},{name:"vlink",description:'Color of text for visited hypertext links. _This method is non-conforming, use CSS [`color`](https://developer.mozilla.org/en-US/docs/Web/CSS/color "The color CSS property sets the foreground color value of an element\'s text and text decorations, and sets the currentcolor value.") property in conjunction with the [`:visited`](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited "The :visited CSS pseudo-class represents links that the user has already visited. For privacy reasons, the styles that can be modified using this selector are very limited.") pseudo-class instead._'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/body"}]},{name:"article",description:{kind:"markdown",value:"The article element represents a complete, or self-contained, composition in a document, page, application, or site and that is, in principle, independently distributable or reusable, e.g. in syndication. This could be a forum post, a magazine or newspaper article, a blog entry, a user-submitted comment, an interactive widget or gadget, or any other independent item of content. Each article should be identified, typically by including a heading (h1\u2013h6 element) as a child of the article element."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/article"}]},{name:"section",description:{kind:"markdown",value:"The section element represents a generic section of a document or application. A section, in this context, is a thematic grouping of content. Each section should be identified, typically by including a heading ( h1- h6 element) as a child of the section element."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/section"}]},{name:"nav",description:{kind:"markdown",value:"The nav element represents a section of a page that links to other pages or to parts within the page: a section with navigation links."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/nav"}]},{name:"aside",description:{kind:"markdown",value:"The aside element represents a section of a page that consists of content that is tangentially related to the content around the aside element, and which could be considered separate from that content. Such sections are often represented as sidebars in printed typography."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/aside"}]},{name:"h1",description:{kind:"markdown",value:"The h1 element represents a section heading."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements"}]},{name:"h2",description:{kind:"markdown",value:"The h2 element represents a section heading."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements"}]},{name:"h3",description:{kind:"markdown",value:"The h3 element represents a section heading."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements"}]},{name:"h4",description:{kind:"markdown",value:"The h4 element represents a section heading."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements"}]},{name:"h5",description:{kind:"markdown",value:"The h5 element represents a section heading."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements"}]},{name:"h6",description:{kind:"markdown",value:"The h6 element represents a section heading."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/Heading_Elements"}]},{name:"header",description:{kind:"markdown",value:"The header element represents introductory content for its nearest ancestor sectioning content or sectioning root element. A header typically contains a group of introductory or navigational aids. When the nearest ancestor sectioning content or sectioning root element is the body element, then it applies to the whole page."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/header"}]},{name:"footer",description:{kind:"markdown",value:"The footer element represents a footer for its nearest ancestor sectioning content or sectioning root element. A footer typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/footer"}]},{name:"address",description:{kind:"markdown",value:"The address element represents the contact information for its nearest article or body element ancestor. If that is the body element, then the contact information applies to the document as a whole."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/address"}]},{name:"p",description:{kind:"markdown",value:"The p element represents a paragraph."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/p"}]},{name:"hr",description:{kind:"markdown",value:"The hr element represents a paragraph-level thematic break, e.g. a scene change in a story, or a transition to another topic within a section of a reference book."},attributes:[{name:"align",description:"Sets the alignment of the rule on the page. If no value is specified, the default value is `left`."},{name:"color",description:"Sets the color of the rule through color name or hexadecimal value."},{name:"noshade",description:"Sets the rule to have no shading."},{name:"size",description:"Sets the height, in pixels, of the rule."},{name:"width",description:"Sets the length of the rule on the page through a pixel or percentage value."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/hr"}]},{name:"pre",description:{kind:"markdown",value:"The pre element represents a block of preformatted text, in which structure is represented by typographic conventions rather than by elements."},attributes:[{name:"cols",description:'Contains the _preferred_ count of characters that a line should have. It was a non-standard synonym of [`width`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre#attr-width). To achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width "The width CSS property sets an element\'s width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.") instead.'},{name:"width",description:'Contains the _preferred_ count of characters that a line should have. Though technically still implemented, this attribute has no visual effect; to achieve such an effect, use CSS [`width`](https://developer.mozilla.org/en-US/docs/Web/CSS/width "The width CSS property sets an element\'s width. By default it sets the width of the content area, but if box-sizing is set to border-box, it sets the width of the border area.") instead.'},{name:"wrap",description:'Is a _hint_ indicating how the overflow must happen. In modern browser this hint is ignored and no visual effect results in its present; to achieve such an effect, use CSS [`white-space`](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space "The white-space CSS property sets how white space inside an element is handled.") instead.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/pre"}]},{name:"blockquote",description:{kind:"markdown",value:"The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a footer or cite element, and optionally with in-line changes such as annotations and abbreviations."},attributes:[{name:"cite",description:{kind:"markdown",value:"A URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote."}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/blockquote"}]},{name:"ol",description:{kind:"markdown",value:"The ol element represents a list of items, where the items have been intentionally ordered, such that changing the order would change the meaning of the document."},attributes:[{name:"reversed",valueSet:"v",description:{kind:"markdown",value:"This Boolean attribute specifies that the items of the list are specified in reversed order."}},{name:"start",description:{kind:"markdown",value:'This integer attribute specifies the start value for numbering the individual list items. Although the ordering type of list elements might be Roman numerals, such as XXXI, or letters, the value of start is always represented as a number. To start numbering elements from the letter "C", use `<ol start="3">`.\n\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5.'}},{name:"type",valueSet:"lt",description:{kind:"markdown",value:"Indicates the numbering type:\n\n* `'a'` indicates lowercase letters,\n* `'A'` indicates uppercase letters,\n* `'i'` indicates lowercase Roman numerals,\n* `'I'` indicates uppercase Roman numerals,\n* and `'1'` indicates numbers (default).\n\nThe type set is used for the entire list unless a different [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li#attr-type) attribute is used within an enclosed [`<li>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li \"The HTML <li> element is used to represent an item in a list. It must be contained in a parent element: an ordered list (<ol>), an unordered list (<ul>), or a menu (<menu>). In menus and unordered lists, list items are usually displayed using bullet points. In ordered lists, they are usually displayed with an ascending counter on the left, such as a number or letter.\") element.\n\n**Note:** This attribute was deprecated in HTML4, but reintroduced in HTML5.\n\nUnless the value of the list number matters (e.g. in legal or technical documents where items are to be referenced by their number/letter), the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type \"The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.\") property should be used instead."}},{name:"compact",description:'This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn\'t work in all browsers.\n\n**Warning:** Do not use this attribute, as it has been deprecated: the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol "The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give an effect similar to the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [`line-height`](https://developer.mozilla.org/en-US/docs/Web/CSS/line-height "The line-height CSS property sets the amount of space used for lines, such as in text. On block-level elements, it specifies the minimum height of line boxes within the element. On non-replaced inline elements, it specifies the height that is used to calculate line box height.") can be used with a value of `80%`.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/ol"}]},{name:"ul",description:{kind:"markdown",value:"The ul element represents a list of items, where the order of the items is not important \u2014 that is, where changing the order would not materially change the meaning of the document."},attributes:[{name:"compact",description:'This Boolean attribute hints that the list should be rendered in a compact style. The interpretation of this attribute depends on the user agent and it doesn\'t work in all browsers.\n\n**Usage note:\xa0**Do not use this attribute, as it has been deprecated: the [`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul "The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To give a similar effect as the `compact` attribute, the [CSS](https://developer.mozilla.org/en-US/docs/CSS) property [line-height](https://developer.mozilla.org/en-US/docs/CSS/line-height) can be used with a value of `80%`.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/ul"}]},{name:"li",description:{kind:"markdown",value:"The li element represents a list item. If its parent element is an ol, ul, or menu element, then the element is an item of the parent element's list, as defined for those elements. Otherwise, the list item has no defined list-related relationship to any other li element."},attributes:[{name:"value",description:{kind:"markdown",value:'This integer attribute indicates the current ordinal value of the list item as defined by the [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol "The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.") element. The only allowed value for this attribute is a number, even if the list is displayed with Roman numerals or letters. List items that follow this one continue numbering from the value set. The **value** attribute has no meaning for unordered lists ([`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul "The HTML <ul> element represents an unordered list of items, typically rendered as a bulleted list.")) or for menus ([`<menu>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu "The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.")).\n\n**Note**: This attribute was deprecated in HTML4, but reintroduced in HTML5.\n\n**Note:** Prior to Gecko\xa09.0, negative values were incorrectly converted to 0. Starting in Gecko\xa09.0 all integer values are correctly parsed.'}},{name:"type",description:'This character attribute indicates the numbering type:\n\n* `a`: lowercase letters\n* `A`: uppercase letters\n* `i`: lowercase Roman numerals\n* `I`: uppercase Roman numerals\n* `1`: numbers\n\nThis type overrides the one used by its parent [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol "The HTML <ol> element represents an ordered list of items, typically rendered as a numbered list.") element, if any.\n\n**Usage note:** This attribute has been deprecated: use the CSS [`list-style-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type "The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.") property instead.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/li"}]},{name:"dl",description:{kind:"markdown",value:"The dl element represents an association list consisting of zero or more name-value groups (a description list). A name-value group consists of one or more names (dt elements) followed by one or more values (dd elements), ignoring any nodes other than dt and dd elements. Within a single dl element, there should not be more than one dt element for each name."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/dl"}]},{name:"dt",description:{kind:"markdown",value:"The dt element represents the term, or name, part of a term-description group in a description list (dl element)."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/dt"}]},{name:"dd",description:{kind:"markdown",value:"The dd element represents the description, definition, or value, part of a term-description group in a description list (dl element)."},attributes:[{name:"nowrap",description:"If the value of this attribute is set to `yes`, the definition text will not wrap. The default value is `no`."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/dd"}]},{name:"figure",description:{kind:"markdown",value:"The figure element represents some flow content, optionally with a caption, that is self-contained (like a complete sentence) and is typically referenced as a single unit from the main flow of the document."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/figure"}]},{name:"figcaption",description:{kind:"markdown",value:"The figcaption element represents a caption or legend for the rest of the contents of the figcaption element's parent figure element, if any."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/figcaption"}]},{name:"main",description:{kind:"markdown",value:"The main element represents the main content of the body of a document or application. The main content area consists of content that is directly related to or expands upon the central topic of a document or central functionality of an application."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/main"}]},{name:"div",description:{kind:"markdown",value:"The div element has no special meaning at all. It represents its children. It can be used with the class, lang, and title attributes to mark up semantics common to a group of consecutive elements."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/div"}]},{name:"a",description:{kind:"markdown",value:"If the a element has an href attribute, then it represents a hyperlink (a hypertext anchor) labeled by its contents."},attributes:[{name:"href",description:{kind:"markdown",value:"Contains a URL or a URL fragment that the hyperlink points to."}},{name:"target",description:{kind:"markdown",value:'Specifies where to display the linked URL. It is a name of, or keyword for, a _browsing context_: a tab, window, or `<iframe>`. The following keywords have special meanings:\n\n* `_self`: Load the URL into the same browsing context as the current one. This is the default behavior.\n* `_blank`: Load the URL into a new browsing context. This is usually a tab, but users can configure browsers to use new windows instead.\n* `_parent`: Load the URL into the parent browsing context of the current one. If there is no parent, this behaves the same way as `_self`.\n* `_top`: Load the URL into the top-level browsing context (that is, the "highest" browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this behaves the same way as `_self`.\n\n**Note:** When using `target`, consider adding `rel="noreferrer"` to avoid exploitation of the `window.opener` API.\n\n**Note:** Linking to another page using `target="_blank"` will run the new page on the same process as your page. If the new page is executing expensive JS, your page\'s performance may suffer. To avoid this use `rel="noopener"`.'}},{name:"download",description:{kind:"markdown",value:"This attribute instructs browsers to download a URL instead of navigating to it, so the user will be prompted to save it as a local file. If the attribute has a value, it is used as the pre-filled file name in the Save prompt (the user can still change the file name if they want). There are no restrictions on allowed values, though `/` and `\\` are converted to underscores. Most file systems limit some punctuation in file names, and browsers will adjust the suggested name accordingly.\n\n**Notes:**\n\n* This attribute only works for [same-origin URLs](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy).\n* Although HTTP(s) URLs need to be in the same-origin, [`blob:` URLs](https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL) and [`data:` URLs](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) are allowed so that content generated by JavaScript, such as pictures created in an image-editor Web app, can be downloaded.\n* If the HTTP header [`Content-Disposition:`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition) gives a different filename than this attribute, the HTTP header takes priority over this attribute.\n* If `Content-Disposition:` is set to `inline`, Firefox prioritizes `Content-Disposition`, like the filename case, while Chrome prioritizes the `download` attribute."}},{name:"ping",description:{kind:"markdown",value:'Contains a space-separated list of URLs to which, when the hyperlink is followed, [`POST`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST "The HTTP POST method sends data to the server. The type of the body of the request is indicated by the Content-Type header.") requests with the body `PING` will be sent by the browser (in the background). Typically used for tracking.'}},{name:"rel",description:{kind:"markdown",value:"Specifies the relationship of the target object to the link object. The value is a space-separated list of [link types](https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types)."}},{name:"hreflang",description:{kind:"markdown",value:'This attribute indicates the human language of the linked resource. It is purely advisory, with no built-in functionality. Allowed values are determined by [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt "Tags for Identifying Languages").'}},{name:"type",description:{kind:"markdown",value:'Specifies the media type in the form of a [MIME type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type "MIME type: A\xa0MIME type\xa0(now properly called "media type", but\xa0also sometimes "content type") is a string sent along\xa0with a file indicating the type of the file (describing the content format, for example, a sound file might be labeled\xa0audio/ogg, or an image file\xa0image/png).") for the linked URL. It is purely advisory, with no built-in functionality.'}},{name:"referrerpolicy",description:"Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer) to send when fetching the URL:\n\n* `'no-referrer'` means the `Referer:` header will not be sent.\n* `'no-referrer-when-downgrade'` means no `Referer:` header will be sent when navigating to an origin without HTTPS. This is the default behavior.\n* `'origin'` means the referrer will be the [origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the page, not including information after the domain.\n* `'origin-when-cross-origin'` meaning that navigations to other origins will be limited to the scheme, the host and the port, while navigations on the same origin will include the referrer's path.\n* `'strict-origin-when-cross-origin'`\n* `'unsafe-url'` means the referrer will include the origin and path, but not the fragment, password, or username. This is unsafe because it can leak data from secure URLs to insecure ones."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/a"}]},{name:"em",description:{kind:"markdown",value:"The em element represents stress emphasis of its contents."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/em"}]},{name:"strong",description:{kind:"markdown",value:"The strong element represents strong importance, seriousness, or urgency for its contents."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/strong"}]},{name:"small",description:{kind:"markdown",value:"The small element represents side comments such as small print."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/small"}]},{name:"s",description:{kind:"markdown",value:"The s element represents contents that are no longer accurate or no longer relevant."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/s"}]},{name:"cite",description:{kind:"markdown",value:"The cite element represents a reference to a creative work. It must include the title of the work or the name of the author(person, people or organization) or an URL reference, or a reference in abbreviated form as per the conventions used for the addition of citation metadata."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/cite"}]},{name:"q",description:{kind:"markdown",value:"The q element represents some phrasing content quoted from another source."},attributes:[{name:"cite",description:{kind:"markdown",value:"The value of this attribute is a URL that designates a source document or message for the information quoted. This attribute is intended to point to information explaining the context or the reference for the quote."}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/q"}]},{name:"dfn",description:{kind:"markdown",value:"The dfn element represents the defining instance of a term. The paragraph, description list group, or section that is the nearest ancestor of the dfn element must also contain the definition(s) for the term given by the dfn element."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/dfn"}]},{name:"abbr",description:{kind:"markdown",value:"The abbr element represents an abbreviation or acronym, optionally with its expansion. The title attribute may be used to provide an expansion of the abbreviation. The attribute, if specified, must contain an expansion of the abbreviation, and nothing else."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/abbr"}]},{name:"ruby",description:{kind:"markdown",value:"The ruby element allows one or more spans of phrasing content to be marked with ruby annotations. Ruby annotations are short runs of text presented alongside base text, primarily used in East Asian typography as a guide for pronunciation or to include other annotations. In Japanese, this form of typography is also known as furigana. Ruby text can appear on either side, and sometimes both sides, of the base text, and it is possible to control its position using CSS. A more complete introduction to ruby can be found in the Use Cases & Exploratory Approaches for Ruby Markup document as well as in CSS Ruby Module Level 1. [RUBY-UC] [CSSRUBY]"},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/ruby"}]},{name:"rb",description:{kind:"markdown",value:"The rb element marks the base text component of a ruby annotation. When it is the child of a ruby element, it doesn't represent anything itself, but its parent ruby element uses it as part of determining what it represents."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/rb"}]},{name:"rt",description:{kind:"markdown",value:"The rt element marks the ruby text component of a ruby annotation. When it is the child of a ruby element or of an rtc element that is itself the child of a ruby element, it doesn't represent anything itself, but its ancestor ruby element uses it as part of determining what it represents."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/rt"}]},{name:"rp",description:{kind:"markdown",value:"The rp element is used to provide fallback text to be shown by user agents that don't support ruby annotations. One widespread convention is to provide parentheses around the ruby text component of a ruby annotation."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/rp"}]},{name:"time",description:{kind:"markdown",value:"The time element represents its contents, along with a machine-readable form of those contents in the datetime attribute. The kind of content is limited to various kinds of dates, times, time-zone offsets, and durations, as described below."},attributes:[{name:"datetime",description:{kind:"markdown",value:"This attribute indicates the time and/or date of the element and must be in one of the formats described below."}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/time"}]},{name:"code",description:{kind:"markdown",value:"The code element represents a fragment of computer code. This could be an XML element name, a file name, a computer program, or any other string that a computer would recognize."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/code"}]},{name:"var",description:{kind:"markdown",value:"The var element represents a variable. This could be an actual variable in a mathematical expression or programming context, an identifier representing a constant, a symbol identifying a physical quantity, a function parameter, or just be a term used as a placeholder in prose."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/var"}]},{name:"samp",description:{kind:"markdown",value:"The samp element represents sample or quoted output from another program or computing system."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/samp"}]},{name:"kbd",description:{kind:"markdown",value:"The kbd element represents user input (typically keyboard input, although it may also be used to represent other input, such as voice commands)."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/kbd"}]},{name:"sub",description:{kind:"markdown",value:"The sub element represents a subscript."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/sub"}]},{name:"sup",description:{kind:"markdown",value:"The sup element represents a superscript."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/sup"}]},{name:"i",description:{kind:"markdown",value:"The i element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose in a manner indicating a different quality of text, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, transliteration, a thought, or a ship name in Western texts."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/i"}]},{name:"b",description:{kind:"markdown",value:"The b element represents a span of text to which attention is being drawn for utilitarian purposes without conveying any extra importance and with no implication of an alternate voice or mood, such as key words in a document abstract, product names in a review, actionable words in interactive text-driven software, or an article lede."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/b"}]},{name:"u",description:{kind:"markdown",value:"The u element represents a span of text with an unarticulated, though explicitly rendered, non-textual annotation, such as labeling the text as being a proper name in Chinese text (a Chinese proper name mark), or labeling the text as being misspelt."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/u"}]},{name:"mark",description:{kind:"markdown",value:"The mark element represents a run of text in one document marked or highlighted for reference purposes, due to its relevance in another context. When used in a quotation or other block of text referred to from the prose, it indicates a highlight that was not originally present but which has been added to bring the reader's attention to a part of the text that might not have been considered important by the original author when the block was originally written, but which is now under previously unexpected scrutiny. When used in the main prose of a document, it indicates a part of the document that has been highlighted due to its likely relevance to the user's current activity."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/mark"}]},{name:"bdi",description:{kind:"markdown",value:"The bdi element represents a span of text that is to be isolated from its surroundings for the purposes of bidirectional text formatting. [BIDI]"},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/bdi"}]},{name:"bdo",description:{kind:"markdown",value:"The bdo element represents explicit text directionality formatting control for its children. It allows authors to override the Unicode bidirectional algorithm by explicitly specifying a direction override. [BIDI]"},attributes:[{name:"dir",description:"The direction in which text should be rendered in this element's contents. Possible values are:\n\n* `ltr`: Indicates that the text should go in a left-to-right direction.\n* `rtl`: Indicates that the text should go in a right-to-left direction."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/bdo"}]},{name:"span",description:{kind:"markdown",value:"The span element doesn't mean anything on its own, but can be useful when used together with the global attributes, e.g. class, lang, or dir. It represents its children."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/span"}]},{name:"br",description:{kind:"markdown",value:"The br element represents a line break."},attributes:[{name:"clear",description:"Indicates where to begin the next line after the break."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/br"}]},{name:"wbr",description:{kind:"markdown",value:"The wbr element represents a line break opportunity."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/wbr"}]},{name:"ins",description:{kind:"markdown",value:"The ins element represents an addition to the document."},attributes:[{name:"cite",description:"This attribute defines the URI of a resource that explains the change, such as a link to meeting minutes or a ticket in a troubleshooting system."},{name:"datetime",description:'This attribute indicates the time and date of the change and must be a valid date with an optional time string. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article."). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.").'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/ins"}]},{name:"del",description:{kind:"markdown",value:"The del element represents a removal from the document."},attributes:[{name:"cite",description:{kind:"markdown",value:"A URI for a resource that explains the change (for example, meeting minutes)."}},{name:"datetime",description:{kind:"markdown",value:'This attribute indicates the time and date of the change and must be a valid date string with an optional time. If the value cannot be parsed as a date with an optional time string, the element does not have an associated time stamp. For the format of the string without a time, see [Format of a valid date string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_date_string "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article."). The format of the string if it includes both date and time is covered in [Format of a valid local date and time string](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#Format_of_a_valid_local_date_and_time_string "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.") in [Date and time formats used in HTML](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats "Certain HTML elements use date and/or time values. The formats of the strings that specify these are described in this article.").'}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/del"}]},{name:"picture",description:{kind:"markdown",value:"The picture element is a container which provides multiple sources to its contained img element to allow authors to declaratively control or give hints to the user agent about which image resource to use, based on the screen pixel density, viewport size, image format, and other factors. It represents its children."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/picture"}]},{name:"img",description:{kind:"markdown",value:"An img element represents an image."},attributes:[{name:"alt",description:{kind:"markdown",value:'This attribute defines an alternative text description of the image.\n\n**Note:** Browsers do not always display the image referenced by the element. This is the case for non-graphical browsers (including those used by people with visual impairments), if the user chooses not to display images, or if the browser cannot display the image because it is invalid or an [unsupported type](#Supported_image_formats). In these cases, the browser may replace the image with the text defined in this element\'s `alt` attribute. You should, for these reasons and others, provide a useful value for `alt` whenever possible.\n\n**Note:** Omitting this attribute altogether indicates that the image is a key part of the content, and no textual equivalent is available. Setting this attribute to an empty string (`alt=""`) indicates that this image is _not_ a key part of the content (decorative), and that non-visual browsers may omit it from rendering.'}},{name:"src",description:{kind:"markdown",value:"The image URL. This attribute is mandatory for the `<img>` element. On browsers supporting `srcset`, `src` is treated like a candidate image with a pixel density descriptor `1x` unless an image with this pixel density descriptor is already defined in `srcset,` or unless `srcset` contains '`w`' descriptors."}},{name:"srcset",description:{kind:"markdown",value:"A list of one or more strings separated by commas indicating a set of possible image sources for the user agent to use. Each string is composed of:\n\n1. a URL to an image,\n2. optionally, whitespace followed by one of:\n * A width descriptor, or a positive integer directly followed by '`w`'. The width descriptor is divided by the source size given in the `sizes` attribute to calculate the effective pixel density.\n * A pixel density descriptor, which is a positive floating point number directly followed by '`x`'.\n\nIf no descriptor is specified, the source is assigned the default descriptor: `1x`.\n\nIt is incorrect to mix width descriptors and pixel density descriptors in the same `srcset` attribute. Duplicate descriptors (for instance, two sources in the same `srcset` which are both described with '`2x`') are also invalid.\n\nThe user agent selects any one of the available sources at its discretion. This provides them with significant leeway to tailor their selection based on things like user preferences or bandwidth conditions. See our [Responsive images](https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images) tutorial for an example."}},{name:"crossorigin",valueSet:"xo",description:{kind:"markdown",value:'This enumerated attribute indicates if the fetching of the related image must be done using CORS or not. [CORS-enabled images](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas "Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.") element without being "[tainted](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image#What_is_a_tainted_canvas)." The allowed values are:'}},{name:"usemap",description:{kind:"markdown",value:'The partial URL (starting with \'#\') of an [image map](https://developer.mozilla.org/en-US/docs/HTML/Element/map) associated with the element.\n\n**Note:** You cannot use this attribute if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a "The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") element.'}},{name:"ismap",valueSet:"v",description:{kind:"markdown",value:'This Boolean attribute indicates that the image is part of a server-side map. If so, the precise coordinates of a click are sent to the server.\n\n**Note:** This attribute is allowed only if the `<img>` element is a descendant of an [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a "The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL.") element with a valid [`href`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href) attribute.'}},{name:"width",description:{kind:"markdown",value:"The intrinsic width of the image in pixels."}},{name:"height",description:{kind:"markdown",value:"The intrinsic height of the image in pixels."}},{name:"decoding",description:"Provides an image decoding hint to the browser. The allowed values are:"},{name:"decoding",description:"`sync`\n\nDecode the image synchronously for atomic presentation with other content.\n\n`async`\n\nDecode the image asynchronously to reduce delay in presenting other content.\n\n`auto`\n\nDefault mode, which indicates no preference for the decoding mode. The browser decides what is best for the user."},{name:"importance",description:"Indicates the relative importance of the resource. Priority hints are delegated using the values:"},{name:"importance",description:"`auto`: Indicates\xa0**no\xa0preference**. The browser may use its own heuristics to decide the priority of the image.\n\n`high`: Indicates to the\xa0browser\xa0that the image is of\xa0**high** priority.\n\n`low`:\xa0Indicates to the\xa0browser\xa0that the image is of\xa0**low** priority."},{name:"intrinsicsize",description:"This attribute tells the browser to ignore the actual intrinsic size of the image and pretend it\u2019s the size specified in the attribute. Specifically, the image would raster at these dimensions and `naturalWidth`/`naturalHeight` on images would return the values specified in this attribute. [Explainer](https://github.com/ojanvafai/intrinsicsize-attribute), [examples](https://googlechrome.github.io/samples/intrinsic-size/index.html)"},{name:"referrerpolicy",description:"A string indicating which referrer to use when fetching the resource:\n\n* `no-referrer:` The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer \"The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.\") header will not be sent.\n* `no-referrer-when-downgrade:` No `Referer` header will be sent when navigating to an origin without TLS (HTTPS). This is a user agent\u2019s default behavior if no policy is otherwise specified.\n* `origin:` The `Referer` header will include the page of origin's scheme, the host, and the port.\n* `origin-when-cross-origin:` Navigating to other origins will limit the included referral data to the scheme, the host and the port, while navigating from the same origin will include the referrer's full path.\n* `unsafe-url:` The `Referer` header will include the origin and the path, but not the fragment, password, or username. This case is unsafe because it can leak origins and paths from TLS-protected resources to insecure origins."},{name:"sizes",description:"A list of one or more strings separated by commas indicating a set of source sizes. Each source size consists of:\n\n1. a media condition. This must be omitted for the last item.\n2. a source size value.\n\nSource size values specify the intended display size of the image. User agents use the current source size to select one of the sources supplied by the `srcset` attribute, when those sources are described using width ('`w`') descriptors. The selected source size affects the intrinsic size of the image (the image\u2019s display size if no CSS styling is applied). If the `srcset` attribute is absent, or contains no values with a width (`w`) descriptor, then the `sizes` attribute has no effect."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/img"}]},{name:"iframe",description:{kind:"markdown",value:"The iframe element represents a nested browsing context."},attributes:[{name:"src",description:{kind:"markdown",value:'The URL of the page to embed. Use a value of `about:blank` to embed an empty page that conforms to the [same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy#Inherited_origins). Also note that programatically removing an `<iframe>`\'s src attribute (e.g. via [`Element.removeAttribute()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute "The Element method removeAttribute() removes the attribute with the specified name from the element.")) causes `about:blank` to be loaded in the frame in Firefox (from version 65), Chromium-based browsers, and Safari/iOS.'}},{name:"srcdoc",description:{kind:"markdown",value:"Inline HTML to embed, overriding the `src` attribute. If a browser does not support the `srcdoc` attribute, it will fall back to the URL in the `src` attribute."}},{name:"name",description:{kind:"markdown",value:'A targetable name for the embedded browsing context. This can be used in the `target` attribute of the [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a "The HTML <a> element (or anchor element) creates a hyperlink to other web pages, files, locations within the same page, email addresses, or any other URL."), [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server."), or [`<base>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base "The HTML <base> element specifies the base URL to use for all relative URLs contained within a document. There can be only one <base> element in a document.") elements; the `formtarget` attribute of the [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") or [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") elements; or the `windowName` parameter in the [`window.open()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/open "The\xa0Window interface\'s open() method loads the specified resource into the browsing context (window, <iframe> or tab) with the specified name. If the name doesn\'t exist, then a new window is opened and the specified resource is loaded into its browsing context.") method.'}},{name:"sandbox",valueSet:"sb",description:{kind:"markdown",value:'Applies extra restrictions to the content in the frame. The value of the attribute can either be empty to apply all restrictions, or space-separated tokens to lift particular restrictions:\n\n* `allow-forms`: Allows the resource to submit forms. If this keyword is not used, form submission is blocked.\n* `allow-modals`: Lets the resource [open modal windows](https://html.spec.whatwg.org/multipage/origin.html#sandboxed-modals-flag).\n* `allow-orientation-lock`: Lets the resource [lock the screen orientation](https://developer.mozilla.org/en-US/docs/Web/API/Screen/lockOrientation).\n* `allow-pointer-lock`: Lets the resource use the [Pointer Lock API](https://developer.mozilla.org/en-US/docs/WebAPI/Pointer_Lock).\n* `allow-popups`: Allows popups (such as `window.open()`, `target="_blank"`, or `showModalDialog()`). If this keyword is not used, the popup will silently fail to open.\n* `allow-popups-to-escape-sandbox`: Lets the sandboxed document open new windows without those windows inheriting the sandboxing. For example, this can safely sandbox an advertisement without forcing the same restrictions upon the page the ad links to.\n* `allow-presentation`: Lets the resource start a [presentation session](https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest).\n* `allow-same-origin`: If this token is not used, the resource is treated as being from a special origin that always fails the [same-origin policy](https://developer.mozilla.org/en-US/docs/Glossary/same-origin_policy "same-origin policy: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin.").\n* `allow-scripts`: Lets the resource run scripts (but not create popup windows).\n* `allow-storage-access-by-user-activation` : Lets the resource request access to the parent\'s storage capabilities with the [Storage Access API](https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API).\n* `allow-top-navigation`: Lets the resource navigate the top-level browsing context (the one named `_top`).\n* `allow-top-navigation-by-user-activation`: Lets the resource navigate the top-level browsing context, but only if initiated by a user gesture.\n\n**Notes about sandboxing:**\n\n* When the embedded document has the same origin as the embedding page, it is **strongly discouraged** to use both `allow-scripts` and `allow-same-origin`, as that lets the embedded document remove the `sandbox` attribute \u2014 making it no more secure than not using the `sandbox` attribute at all.\n* Sandboxing is useless if the attacker can display content outside a sandboxed `iframe` \u2014 such as if the viewer opens the frame in a new tab. Such content should be also served from a _separate origin_ to limit potential damage.\n* The `sandbox` attribute is unsupported in Internet Explorer 9 and earlier.'}},{name:"seamless",valueSet:"v"},{name:"allowfullscreen",valueSet:"v",description:{kind:"markdown",value:'Set to `true` if the `<iframe>` can activate fullscreen mode by calling the [`requestFullscreen()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullscreen "The Element.requestFullscreen() method issues an asynchronous request to make the element be displayed in full-screen mode.") method.'}},{name:"width",description:{kind:"markdown",value:"The width of the frame in CSS pixels. Default is `300`."}},{name:"height",description:{kind:"markdown",value:"The height of the frame in CSS pixels. Default is `150`."}},{name:"allow",description:"Specifies a [feature policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Feature_Policy) for the `<iframe>`."},{name:"allowpaymentrequest",description:"Set to `true` if a cross-origin `<iframe>` should be allowed to invoke the [Payment Request API](https://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API)."},{name:"allowpaymentrequest",description:'This attribute is considered a legacy attribute and redefined as `allow="payment"`.'},{name:"csp",description:'A [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) enforced for the embedded resource. See [`HTMLIFrameElement.csp`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLIFrameElement/csp "The csp property of the HTMLIFrameElement interface specifies the Content Security Policy that an embedded document must agree to enforce upon itself.") for details.'},{name:"importance",description:"The download priority of the resource in the `<iframe>`'s `src` attribute. Allowed values:\n\n`auto` (default)\n\nNo preference. The browser uses its own heuristics to decide the priority of the resource.\n\n`high`\n\nThe resource should be downloaded before other lower-priority page resources.\n\n`low`\n\nThe resource should be downloaded after other higher-priority page resources."},{name:"referrerpolicy",description:'Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the frame\'s resource:\n\n* `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer "The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.") header will not be sent.\n* `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer "The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin "origin: Web content\'s origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS "TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS "HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.")).\n* `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host "host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails."), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port "port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.").\n* `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\n* `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy "same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin."), but cross-origin requests will contain no referrer information.\n* `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (HTTPS\u2192HTTPS), but don\'t send it to a less secure destination (HTTPS\u2192HTTP).\n* `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, only send the origin when the protocol security level stays the same (HTTPS\u2192HTTPS), and send no header to a less secure destination (HTTPS\u2192HTTP).\n* `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/iframe"}]},{name:"embed",description:{kind:"markdown",value:"The embed element provides an integration point for an external (typically non-HTML) application or interactive content."},attributes:[{name:"src",description:{kind:"markdown",value:"The URL\xa0of the resource being embedded."}},{name:"type",description:{kind:"markdown",value:"The MIME\xa0type to use to select the plug-in to instantiate."}},{name:"width",description:{kind:"markdown",value:"The displayed width of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed."}},{name:"height",description:{kind:"markdown",value:"The displayed height of the resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). This must be an absolute value; percentages are _not_ allowed."}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/embed"}]},{name:"object",description:{kind:"markdown",value:"The object element can represent an external resource, which, depending on the type of the resource, will either be treated as an image, as a nested browsing context, or as an external resource to be processed by a plugin."},attributes:[{name:"data",description:{kind:"markdown",value:"The address of the resource as a valid URL. At least one of **data** and **type** must be defined."}},{name:"type",description:{kind:"markdown",value:"The [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource specified by **data**. At least one of **data** and **type** must be defined."}},{name:"typemustmatch",valueSet:"v",description:{kind:"markdown",value:"This Boolean attribute indicates if the **type** attribute and the actual [content type](https://developer.mozilla.org/en-US/docs/Glossary/Content_type) of the resource must match to be used."}},{name:"name",description:{kind:"markdown",value:"The name of valid browsing context (HTML5), or the name of the control (HTML 4)."}},{name:"usemap",description:{kind:"markdown",value:"A hash-name reference to a [`<map>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map \"The HTML <map> element is used with <area> elements to define an image map (a clickable link area).\") element; that is a '#' followed by the value of a [`name`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map#attr-name) of a map element."}},{name:"form",description:{kind:"markdown",value:'The form element, if any, that the object element is associated with (its _form owner_). The value of the attribute must be an ID of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") element in the same document.'}},{name:"width",description:{kind:"markdown",value:"The width of the display resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))"}},{name:"height",description:{kind:"markdown",value:"The height of the displayed resource, in [CSS pixels](https://drafts.csswg.org/css-values/#px). -- (Absolute values only. [NO percentages](https://html.spec.whatwg.org/multipage/embedded-content.html#dimension-attributes))"}},{name:"archive",description:"A space-separated list of URIs for archives of resources for the object."},{name:"border",description:"The width of a border around the control, in pixels."},{name:"classid",description:"The URI of the object's implementation. It can be used together with, or in place of, the **data** attribute."},{name:"codebase",description:"The base path used to resolve relative URIs specified by **classid**, **data**, or **archive**. If not specified, the default is the base URI of the current document."},{name:"codetype",description:"The content type of the data specified by **classid**."},{name:"declare",description:"The presence of this Boolean attribute makes this element a declaration only. The object must be instantiated by a subsequent `<object>` element. In HTML5, repeat the <object> element completely each that that the resource is reused."},{name:"standby",description:"A message that the browser can show while loading the object's implementation and data."},{name:"tabindex",description:"The position of the element in the tabbing navigation order for the current document."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/object"}]},{name:"param",description:{kind:"markdown",value:"The param element defines parameters for plugins invoked by object elements. It does not represent anything on its own."},attributes:[{name:"name",description:{kind:"markdown",value:"Name of the parameter."}},{name:"value",description:{kind:"markdown",value:"Specifies the value of the parameter."}},{name:"type",description:'Only used if the `valuetype` is set to "ref". Specifies the MIME type of values found at the URI specified by value.'},{name:"valuetype",description:'Specifies the type of the `value` attribute. Possible values are:\n\n* data: Default value. The value is passed to the object\'s implementation as a string.\n* ref: The value is a URI to a resource where run-time values are stored.\n* object: An ID of another [`<object>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object "The HTML <object> element represents an external resource, which can be treated as an image, a nested browsing context, or a resource to be handled by a plugin.") in the same document.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/param"}]},{name:"video",description:{kind:"markdown",value:"A video element is used for playing videos or movies, and audio files with captions."},attributes:[{name:"src"},{name:"crossorigin",valueSet:"xo"},{name:"poster"},{name:"preload",valueSet:"pl"},{name:"autoplay",valueSet:"v",description:{kind:"markdown",value:"A Boolean attribute; if specified, the video automatically begins to play back as soon as it can do so without stopping to finish loading the data."}},{name:"mediagroup"},{name:"loop",valueSet:"v"},{name:"muted",valueSet:"v"},{name:"controls",valueSet:"v"},{name:"width"},{name:"height"}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/video"}]},{name:"audio",description:{kind:"markdown",value:"An audio element represents a sound or audio stream."},attributes:[{name:"src",description:{kind:"markdown",value:'The URL of the audio to embed. This is subject to [HTTP access controls](https://developer.mozilla.org/en-US/docs/HTTP_access_control). This is optional; you may instead use the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source "The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.") element within the audio block to specify the audio to embed.'}},{name:"crossorigin",valueSet:"xo",description:{kind:"markdown",value:'This enumerated attribute indicates whether to use CORS to fetch the related image. [CORS-enabled resources](https://developer.mozilla.org/en-US/docs/CORS_Enabled_Image) can be reused in the [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas "Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.") element without being _tainted_. The allowed values are:\n\nanonymous\n\nSends a cross-origin request without a credential. In other words, it sends the `Origin:` HTTP header without a cookie, X.509 certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (by not setting the `Access-Control-Allow-Origin:` HTTP header), the image will be _tainted_, and its usage restricted.\n\nuse-credentials\n\nSends a cross-origin request with a credential. In other words, it sends the `Origin:` HTTP header with a cookie, a certificate, or performing HTTP Basic authentication. If the server does not give credentials to the origin site (through `Access-Control-Allow-Credentials:` HTTP header), the image will be _tainted_ and its usage restricted.\n\nWhen not present, the resource is fetched without a CORS request (i.e. without sending the `Origin:` HTTP header), preventing its non-tainted used in [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas "Use the HTML <canvas> element with either the canvas scripting API or the WebGL API to draw graphics and animations.") elements. If invalid, it is handled as if the enumerated keyword **anonymous** was used. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes) for additional information.'}},{name:"preload",valueSet:"pl",description:{kind:"markdown",value:"This enumerated attribute is intended to provide a hint to the browser about what the author thinks will lead to the best user experience. It may have one of the following values:\n\n* `none`: Indicates that the audio should not be preloaded.\n* `metadata`: Indicates that only audio metadata (e.g. length) is fetched.\n* `auto`: Indicates that the whole audio file can be downloaded, even if the user is not expected to use it.\n* _empty string_: A synonym of the `auto` value.\n\nIf not set, `preload`'s default value is browser-defined (i.e. each browser may have its own default value). The spec advises it to be set to `metadata`.\n\n**Usage notes:**\n\n* The `autoplay` attribute has precedence over\xa0`preload`. If `autoplay` is specified, the browser would obviously need to start downloading the audio for playback.\n* The browser is not forced by the specification to follow the value of this attribute; it is a mere hint."}},{name:"autoplay",valueSet:"v",description:{kind:"markdown",value:"A Boolean attribute:\xa0if specified, the audio will automatically begin playback as soon as it can do so, without waiting for the entire audio file to finish downloading.\n\n**Note**: Sites that automatically play audio (or videos with an audio track) can be an unpleasant experience for users, so should be avoided when possible. If you must offer autoplay functionality, you should make it opt-in (requiring a user to specifically enable it). However, this can be useful when creating media elements whose source will be set at a later time, under user control."}},{name:"mediagroup"},{name:"loop",valueSet:"v",description:{kind:"markdown",value:"A Boolean attribute:\xa0if specified, the audio player will\xa0automatically seek back to the start\xa0upon reaching the end of the audio."}},{name:"muted",valueSet:"v",description:{kind:"markdown",value:"A Boolean attribute that indicates whether the audio will be initially silenced. Its default value is `false`."}},{name:"controls",valueSet:"v",description:{kind:"markdown",value:"If this attribute is present, the browser will offer controls to allow the user to control audio playback, including volume, seeking, and pause/resume playback."}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/audio"}]},{name:"source",description:{kind:"markdown",value:"The source element allows authors to specify multiple alternative media resources for media elements. It does not represent anything on its own."},attributes:[{name:"src",description:{kind:"markdown",value:'Required for [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio "The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element:\xa0the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.") and [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video "The HTML Video element (<video>) embeds a media player which supports video playback into the document."), address of the media resource. The value of this attribute is ignored when the `<source>` element is placed inside a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture "The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.") element.'}},{name:"type",description:{kind:"markdown",value:"The MIME-type of the resource, optionally with a `codecs` parameter. See [RFC 4281](https://tools.ietf.org/html/rfc4281) for information about how to specify codecs."}},{name:"sizes",description:'Is a list of source sizes that describes the final rendered width of the image represented by the source. Each source size consists of a comma-separated list of media condition-length pairs. This information is used by the browser to determine, before laying the page out, which image defined in [`srcset`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source#attr-srcset) to use. \nThe `sizes` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source "The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture "The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.") element.'},{name:"srcset",description:"A list of one or more strings separated by commas indicating a set of possible images represented by the source for the browser to use. Each string is composed of:\n\n1. one URL to an image,\n2. a width descriptor, that is a positive integer directly followed by `'w'`. The default value, if missing, is the infinity.\n3. a pixel density descriptor, that is a positive floating number directly followed by `'x'`. The default value, if missing, is `1x`.\n\nEach string in the list must have at least a width descriptor or a pixel density descriptor to be valid. Among the list, there must be only one string containing the same tuple of width descriptor and pixel density descriptor. \nThe browser chooses the most adequate image to display at a given point of time. \nThe `srcset` attribute has an effect only when the [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source \"The HTML <source> element specifies multiple media resources for the <picture>, the <audio> element, or the <video> element.\") element is the direct child of a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture \"The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.\") element."},{name:"media",description:'[Media query](https://developer.mozilla.org/en-US/docs/CSS/Media_queries) of the resource\'s intended media; this should be used only in a [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture "The HTML <picture> element contains zero or more <source> elements and one <img> element to provide versions of an image for different display/device scenarios.") element.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/source"}]},{name:"track",description:{kind:"markdown",value:"The track element allows authors to specify explicit external timed text tracks for media elements. It does not represent anything on its own."},attributes:[{name:"default",valueSet:"v",description:{kind:"markdown",value:"This attribute indicates that the track should be enabled unless the user's preferences indicate that another track is more appropriate. This may only be used on one `track` element per media element."}},{name:"kind",valueSet:"tk",description:{kind:"markdown",value:"How the text track is meant to be used. If omitted the default kind is `subtitles`. If the attribute is not present, it will use the `subtitles`. If the attribute contains an invalid value, it will use `metadata`. (Versions of Chrome earlier than 52 treated an invalid value as `subtitles`.)\xa0The following keywords are allowed:\n\n* `subtitles`\n * Subtitles provide translation of content that cannot be understood by the viewer. For example dialogue or text that is not English in an English language film.\n * Subtitles may contain additional content, usually extra background information. For example the text at the beginning of the Star Wars films, or the date, time, and location of a scene.\n* `captions`\n * Closed captions provide a transcription and possibly a translation of audio.\n * It may include important non-verbal information such as music cues or sound effects. It may indicate the cue's source (e.g. music, text, character).\n * Suitable for users who are deaf or when the sound is muted.\n* `descriptions`\n * Textual description of the video content.\n * Suitable for users who are blind or where the video cannot be seen.\n* `chapters`\n * Chapter titles are intended to be used when the user is navigating the media resource.\n* `metadata`\n * Tracks used by scripts. Not visible to the user."}},{name:"label",description:{kind:"markdown",value:"A user-readable title of the text track which is used by the browser when listing available text tracks."}},{name:"src",description:{kind:"markdown",value:'Address of the track (`.vtt` file). Must be a valid URL. This attribute must be specified and its URL value must have the same origin as the document \u2014 unless the [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio "The HTML <audio> element is used to embed sound content in documents. It may contain one or more audio sources, represented using the src attribute or the <source> element:\xa0the browser will choose the most suitable one. It can also be the destination for streamed media, using a MediaStream.") or [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video "The HTML Video element (<video>) embeds a media player which supports video playback into the document.") parent element of the `track` element has a [`crossorigin`](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) attribute.'}},{name:"srclang",description:{kind:"markdown",value:"Language of the track text data. It must be a valid [BCP 47](https://r12a.github.io/app-subtags/) language tag. If the `kind` attribute is set to\xa0`subtitles,` then `srclang` must be defined."}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/track"}]},{name:"map",description:{kind:"markdown",value:"The map element, in conjunction with an img element and any area element descendants, defines an image map. The element represents its children."},attributes:[{name:"name",description:{kind:"markdown",value:"The name attribute gives the map a name so that it can be referenced. The attribute must be present and must have a non-empty value with no space characters. The value of the name attribute must not be a compatibility-caseless match for the value of the name attribute of another map element in the same document. If the id attribute is also specified, both attributes must have the same value."}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/map"}]},{name:"area",description:{kind:"markdown",value:"The area element represents either a hyperlink with some text and a corresponding area on an image map, or a dead area on an image map."},attributes:[{name:"alt"},{name:"coords"},{name:"shape",valueSet:"sh"},{name:"href"},{name:"target"},{name:"download"},{name:"ping"},{name:"rel"},{name:"hreflang"},{name:"type"},{name:"accesskey",description:"Specifies a keyboard navigation accelerator for the element. Pressing ALT or a similar key in association with the specified character selects the form control correlated with that key sequence. Page designers are forewarned to avoid key sequences already bound to browsers. This attribute is global since HTML5."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/area"}]},{name:"table",description:{kind:"markdown",value:"The table element represents data with more than one dimension, in the form of a table."},attributes:[{name:"border"},{name:"align",description:'This enumerated attribute indicates how the table must be aligned inside the containing document. It may have the following values:\n\n* left: the table is displayed on the left side of the document;\n* center: the table is displayed in the center of the document;\n* right: the table is displayed on the right side of the document.\n\n**Usage Note**\n\n* **Do not use this attribute**, as it has been deprecated. The [`<table>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table "The HTML <table> element represents tabular data \u2014 that is, information presented in a two-dimensional table comprised of rows and columns of cells containing data.") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). Set [`margin-left`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-left "The margin-left CSS property sets the margin area on the left side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.") and [`margin-right`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin-right "The margin-right CSS property sets the margin area on the right side of an element. A positive value places it farther from its neighbors, while a negative value places it closer.") to `auto` or [`margin`](https://developer.mozilla.org/en-US/docs/Web/CSS/margin "The margin CSS property sets the margin area on all four sides of an element. It is a shorthand for margin-top, margin-right, margin-bottom, and margin-left.") to `0 auto` to achieve an effect that is similar to the align attribute.\n* Prior to Firefox 4, Firefox also supported the `middle`, `absmiddle`, and `abscenter` values as synonyms of `center`, in quirks mode only.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/table"}]},{name:"caption",description:{kind:"markdown",value:"The caption element represents the title of the table that is its parent, if it has a parent and that is a table element."},attributes:[{name:"align",description:'This enumerated attribute indicates how the caption must be aligned with respect to the table. It may have one of the following values:\n\n`left`\n\nThe caption is displayed to the left of the table.\n\n`top`\n\nThe caption is displayed above the table.\n\n`right`\n\nThe caption is displayed to the right of the table.\n\n`bottom`\n\nThe caption is displayed below the table.\n\n**Usage note:** Do not use this attribute, as it has been deprecated. The [`<caption>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption "The HTML Table Caption element (<caption>) specifies the caption (or title) of a table, and if used is always the first child of a <table>.") element should be styled using the [CSS](https://developer.mozilla.org/en-US/docs/CSS) properties [`caption-side`](https://developer.mozilla.org/en-US/docs/Web/CSS/caption-side "The caption-side CSS property puts the content of a table\'s <caption> on the specified side. The values are relative to the writing-mode of the table.") and [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.").'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/caption"}]},{name:"colgroup",description:{kind:"markdown",value:"The colgroup element represents a group of one or more columns in the table that is its parent, if it has a parent and that is a table element."},attributes:[{name:"span"},{name:"align",description:'This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\n\n* `left`, aligning the content to the left of the cell\n* `center`, centering the content in the cell\n* `right`, aligning the content to the right of the cell\n* `justify`, inserting spaces into the textual content so that the content is justified in the cell\n* `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug\xa02212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 "character alignment not implemented (align=char, charoff=, text-align:<string>)")).\n\nIf this attribute is not set, the `left` value is assumed. The descendant [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col "The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.") elements may override this value using their own [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-align) attribute.\n\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\n\n* To achieve the same effect as the `left`, `center`, `right` or `justify` values:\n * Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property on a selector giving a [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup "The HTML <colgroup> element defines a group of columns within a table.") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td "The HTML <td> element defines a cell of a table that contains data. It participates in the table model.") elements are not descendant of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup "The HTML <colgroup> element defines a group of columns within a table.") element, they won\'t inherit it.\n * If the table doesn\'t use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use one `td:nth-child(an+b)` CSS selector per column, where a is the total number of the columns in the table and b is the ordinal position of this column in the table. Only after this selector the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property can be used.\n * If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\n* To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property Unimplemented.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/colgroup"}]},{name:"col",description:{kind:"markdown",value:"If a col element has a parent and that is a colgroup element that itself has a parent that is a table element, then the col element represents one or more columns in the column group represented by that colgroup."},attributes:[{name:"span"},{name:"align",description:'This enumerated attribute specifies how horizontal alignment of each column cell content will be handled. Possible values are:\n\n* `left`, aligning the content to the left of the cell\n* `center`, centering the content in the cell\n* `right`, aligning the content to the right of the cell\n* `justify`, inserting spaces into the textual content so that the content is justified in the cell\n* `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-charoff) attributes Unimplemented (see [bug\xa02212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 "character alignment not implemented (align=char, charoff=, text-align:<string>)")).\n\nIf this attribute is not set, its value is inherited from the [`align`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup#attr-align) of the [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup "The HTML <colgroup> element defines a group of columns within a table.") element this `<col>` element belongs too. If there are none, the `left` value is assumed.\n\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\n\n* To achieve the same effect as the `left`, `center`, `right` or `justify` values:\n * Do not try to set the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property on a selector giving a [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col "The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.") element. Because [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td "The HTML <td> element defines a cell of a table that contains data. It participates in the table model.") elements are not descendant of the [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col "The HTML <col> element defines a column within a table and is used for defining common semantics on all common cells. It is generally found within a <colgroup> element.") element, they won\'t inherit it.\n * If the table doesn\'t use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, use the `td:nth-child(an+b)` CSS selector. Set `a` to zero and `b` to the position of the column in the table, e.g. `td:nth-child(2) { text-align: right; }` to right-align the second column.\n * If the table does use a [`colspan`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-colspan) attribute, the effect can be achieved by combining adequate CSS attribute selectors like `[colspan=n]`, though this is not trivial.\n* To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property Unimplemented.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/col"}]},{name:"tbody",description:{kind:"markdown",value:"The tbody element represents a block of rows that consist of a body of data for the parent table element, if the tbody element has a parent and it is a table."},attributes:[{name:"align",description:'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\n\n* `left`, aligning the content to the left of the cell\n* `center`, centering the content in the cell\n* `right`, aligning the content to the right of the cell\n* `justify`, inserting spaces into the textual content so that the content is justified in the cell\n* `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes.\n\nIf this attribute is not set, the `left` value is assumed.\n\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\n\n* To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property on it.\n* To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property Unimplemented.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/tbody"}]},{name:"thead",description:{kind:"markdown",value:"The thead element represents the block of rows that consist of the column labels (headers) for the parent table element, if the thead element has a parent and it is a table."},attributes:[{name:"align",description:'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\n\n* `left`, aligning the content to the left of the cell\n* `center`, centering the content in the cell\n* `right`, aligning the content to the right of the cell\n* `justify`, inserting spaces into the textual content so that the content is justified in the cell\n* `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-charoff) attributes Unimplemented (see [bug\xa02212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 "character alignment not implemented (align=char, charoff=, text-align:<string>)")).\n\nIf this attribute is not set, the `left` value is assumed.\n\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\n\n* To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property on it.\n* To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property Unimplemented.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/thead"}]},{name:"tfoot",description:{kind:"markdown",value:"The tfoot element represents the block of rows that consist of the column summaries (footers) for the parent table element, if the tfoot element has a parent and it is a table."},attributes:[{name:"align",description:'This enumerated attribute specifies how horizontal alignment of each cell content will be handled. Possible values are:\n\n* `left`, aligning the content to the left of the cell\n* `center`, centering the content in the cell\n* `right`, aligning the content to the right of the cell\n* `justify`, inserting spaces into the textual content so that the content is justified in the cell\n* `char`, aligning the textual content on a special character with a minimal offset, defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody#attr-charoff) attributes Unimplemented (see [bug\xa02212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 "character alignment not implemented (align=char, charoff=, text-align:<string>)")).\n\nIf this attribute is not set, the `left` value is assumed.\n\n**Note:** Do not use this attribute as it is obsolete (not supported) in the latest standard.\n\n* To achieve the same effect as the `left`, `center`, `right` or `justify` values, use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property on it.\n* To achieve the same effect as the `char` value, in CSS3, you can use the value of the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tfoot#attr-char) as the value of the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property Unimplemented.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/tfoot"}]},{name:"tr",description:{kind:"markdown",value:"The tr element represents a row of cells in a table."},attributes:[{name:"align",description:'A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString "DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.") which specifies how the cell\'s context should be aligned horizontally within the cells in the row; this is shorthand for using `align` on every cell in the row individually. Possible values are:\n\n`left`\n\nAlign the content of each cell at its left edge.\n\n`center`\n\nCenter the contents of each cell between their left and right edges.\n\n`right`\n\nAlign the content of each cell at its right edge.\n\n`justify`\n\nWiden whitespaces within the text of each cell so that the text fills the full width of each cell (full justification).\n\n`char`\n\nAlign each cell in the row on a specific character (such that each row in the column that is configured this way will horizontally align its cells on that character). This uses the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr#attr-charoff) to establish the alignment character (typically "." or "," when aligning numerical data) and the number of characters that should follow the alignment character. This alignment type was never widely supported.\n\nIf no value is expressly set for `align`, the parent node\'s value is inherited.\n\nInstead of using the obsolete `align` attribute, you should instead use the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property to establish `left`, `center`, `right`, or `justify` alignment for the row\'s cells. To apply character-based alignment, set the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property to the alignment character (such as `"."` or `","`).'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/tr"}]},{name:"td",description:{kind:"markdown",value:"The td element represents a data cell in a table."},attributes:[{name:"colspan"},{name:"rowspan"},{name:"headers"},{name:"abbr",description:"This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself.\n\n**Note:** Do not use this attribute as it is obsolete in the latest standard. Alternatively, you can put the abbreviated description inside the cell and place the long content in the **title** attribute."},{name:"align",description:'This enumerated attribute specifies how the cell content\'s horizontal alignment will be handled. Possible values are:\n\n* `left`: The content is aligned to the left of the cell.\n* `center`: The content is centered in the cell.\n* `right`: The content is aligned to the right of the cell.\n* `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\n* `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-charoff) attributes Unimplemented (see [bug\xa02212](https://bugzilla.mozilla.org/show_bug.cgi?id=2212 "character alignment not implemented (align=char, charoff=, text-align:<string>)")).\n\nThe default value when this attribute is not specified is `left`.\n\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\n\n* To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property to the element.\n* To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td#attr-char). Unimplemented in CSS3.'},{name:"axis",description:"This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\n\n**Note:** Do not use this attribute as it is obsolete in the latest standard."},{name:"bgcolor",description:'This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by \'#\'. This attribute may be used with one of sixteen predefined color strings:\n\n\xa0\n\n`black` = "#000000"\n\n\xa0\n\n`green` = "#008000"\n\n\xa0\n\n`silver` = "#C0C0C0"\n\n\xa0\n\n`lime` = "#00FF00"\n\n\xa0\n\n`gray` = "#808080"\n\n\xa0\n\n`olive` = "#808000"\n\n\xa0\n\n`white` = "#FFFFFF"\n\n\xa0\n\n`yellow` = "#FFFF00"\n\n\xa0\n\n`maroon` = "#800000"\n\n\xa0\n\n`navy` = "#000080"\n\n\xa0\n\n`red` = "#FF0000"\n\n\xa0\n\n`blue` = "#0000FF"\n\n\xa0\n\n`purple` = "#800080"\n\n\xa0\n\n`teal` = "#008080"\n\n\xa0\n\n`fuchsia` = "#FF00FF"\n\n\xa0\n\n`aqua` = "#00FFFF"\n\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td "The HTML <td> element defines a cell of a table that contains data. It participates in the table model.") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color "The background-color CSS property sets the background color of an element.") property in [CSS](https://developer.mozilla.org/en-US/docs/CSS) instead.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/td"}]},{name:"th",description:{kind:"markdown",value:"The th element represents a header cell in a table."},attributes:[{name:"colspan"},{name:"rowspan"},{name:"headers"},{name:"scope",valueSet:"s"},{name:"sorted"},{name:"abbr",description:{kind:"markdown",value:"This attribute contains a short abbreviated description of the cell's content. Some user-agents, such as speech readers, may present this description before the content itself."}},{name:"align",description:'This enumerated attribute specifies how the cell content\'s horizontal alignment will be handled. Possible values are:\n\n* `left`: The content is aligned to the left of the cell.\n* `center`: The content is centered in the cell.\n* `right`: The content is aligned to the right of the cell.\n* `justify` (with text only): The content is stretched out inside the cell so that it covers its entire width.\n* `char` (with text only): The content is aligned to a character inside the `<th>` element with minimal offset. This character is defined by the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char) and [`charoff`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-charoff) attributes.\n\nThe default value when this attribute is not specified is `left`.\n\n**Note:** Do not use this attribute as it is obsolete in the latest standard.\n\n* To achieve the same effect as the `left`, `center`, `right` or `justify` values, apply the CSS [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property to the element.\n* To achieve the same effect as the `char` value, give the [`text-align`](https://developer.mozilla.org/en-US/docs/Web/CSS/text-align "The text-align CSS property sets the horizontal alignment of an inline or table-cell box. This means it works like vertical-align but in the horizontal direction.") property the same value you would use for the [`char`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-char). Unimplemented in CSS3.'},{name:"axis",description:"This attribute contains a list of space-separated strings. Each string is the `id` of a group of cells that this header applies to.\n\n**Note:** Do not use this attribute as it is obsolete in the latest standard: use the [`scope`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#attr-scope) attribute instead."},{name:"bgcolor",description:'This attribute defines the background color of each cell in a column. It consists of a 6-digit hexadecimal code as defined in [sRGB](https://www.w3.org/Graphics/Color/sRGB) and is prefixed by \'#\'. This attribute may be used with one of sixteen predefined color strings:\n\n\xa0\n\n`black` = "#000000"\n\n\xa0\n\n`green` = "#008000"\n\n\xa0\n\n`silver` = "#C0C0C0"\n\n\xa0\n\n`lime` = "#00FF00"\n\n\xa0\n\n`gray` = "#808080"\n\n\xa0\n\n`olive` = "#808000"\n\n\xa0\n\n`white` = "#FFFFFF"\n\n\xa0\n\n`yellow` = "#FFFF00"\n\n\xa0\n\n`maroon` = "#800000"\n\n\xa0\n\n`navy` = "#000080"\n\n\xa0\n\n`red` = "#FF0000"\n\n\xa0\n\n`blue` = "#0000FF"\n\n\xa0\n\n`purple` = "#800080"\n\n\xa0\n\n`teal` = "#008080"\n\n\xa0\n\n`fuchsia` = "#FF00FF"\n\n\xa0\n\n`aqua` = "#00FFFF"\n\n**Note:** Do not use this attribute, as it is non-standard and only implemented in some versions of Microsoft Internet Explorer: The [`<th>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th "The HTML <th> element defines a cell as header of a group of table cells. The exact nature of this group is defined by the scope and headers attributes.") element should be styled using [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS). To create a similar effect use the [`background-color`](https://developer.mozilla.org/en-US/docs/Web/CSS/background-color "The background-color CSS property sets the background color of an element.") property in [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS) instead.'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/th"}]},{name:"form",description:{kind:"markdown",value:"The form element represents a collection of form-associated elements, some of which can represent editable values that can be submitted to a server for processing."},attributes:[{name:"accept-charset",description:{kind:"markdown",value:'A space- or comma-delimited list of character encodings that the server accepts. The browser uses them in the order in which they are listed. The default value, the reserved string `"UNKNOWN"`, indicates the same encoding as that of the document containing the form element. \nIn previous versions of HTML, the different character encodings could be delimited by spaces or commas. In HTML5, only spaces are allowed as delimiters.'}},{name:"action",description:{kind:"markdown",value:'The URI of a program that processes the form information. This value can be overridden by a [`formaction`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formaction) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element.'}},{name:"autocomplete",valueSet:"o",description:{kind:"markdown",value:"Indicates whether input elements can by default have their values automatically completed by the browser. This setting can be overridden by an `autocomplete` attribute on an element belonging to the form. Possible values are:\n\n* `off`: The user must explicitly enter a value into each field for every use, or the document provides its own auto-completion method; the browser does not automatically complete entries.\n* `on`: The browser can automatically complete values based on values that the user has previously entered in the form.\n\nFor most modern browsers (including Firefox 38+, Google Chrome 34+, IE 11+) setting the autocomplete attribute will not prevent a browser's password manager from asking the user if they want to store login fields (username and password), if the user permits the storage the browser will autofill the login the next time the user visits the page. See [The autocomplete attribute and login fields](https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion#The_autocomplete_attribute_and_login_fields)."}},{name:"enctype",valueSet:"et",description:{kind:"markdown",value:'When the value of the `method` attribute is `post`, enctype is the [MIME type](https://en.wikipedia.org/wiki/Mime_type) of content that is used to submit the form to the server. Possible values are:\n\n* `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\n* `multipart/form-data`: The value used for an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element with the `type` attribute set to "file".\n* `text/plain`: (HTML5)\n\nThis value can be overridden by a [`formenctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formenctype) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element.'}},{name:"method",valueSet:"m",description:{kind:"markdown",value:'The [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP) method that the browser uses to submit the form. Possible values are:\n\n* `post`: Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5) ; form data are included in the body of the form and sent to the server.\n* `get`: Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a \'?\' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\n* `dialog`: Use when the form is inside a\xa0[`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog "The HTML <dialog> element represents a dialog box or other interactive component, such as an inspector or window.") element to close the dialog when submitted.\n\nThis value can be overridden by a [`formmethod`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formmethod) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element.'}},{name:"name",description:{kind:"markdown",value:"The name of the form. In HTML 4, its use is deprecated (`id` should be used instead). It must be unique among the forms in a document and not just an empty string in HTML 5."}},{name:"novalidate",valueSet:"v",description:{kind:"markdown",value:'This Boolean attribute indicates that the form is not to be validated when submitted. If this attribute is not specified (and therefore the form is validated), this default setting can be overridden by a [`formnovalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formnovalidate) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element belonging to the form.'}},{name:"target",description:{kind:"markdown",value:'A name or keyword indicating where to display the response that is received after submitting the form. In HTML 4, this is the name/keyword for a frame. In HTML5, it is a name/keyword for a _browsing context_ (for example, tab, window, or inline frame). The following keywords have special meanings:\n\n* `_self`: Load the response into the same HTML 4 frame (or HTML5 browsing context) as the current one. This value is the default if the attribute is not specified.\n* `_blank`: Load the response into a new unnamed HTML 4 window or HTML5 browsing context.\n* `_parent`: Load the response into the HTML 4 frameset parent of the current frame, or HTML5 parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\n* `_top`: HTML 4: Load the response into the full original window, and cancel all other frames. HTML5: Load the response into the top-level browsing context (i.e., the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`.\n* _iframename_: The response is displayed in a named [`<iframe>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe "The HTML Inline Frame element (<iframe>) represents a nested browsing context, embedding another HTML page into the current one.").\n\nHTML5: This value can be overridden by a [`formtarget`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-formtarget) attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") or [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element.'}},{name:"accept",description:'A comma-separated list of content types that the server accepts.\n\n**Usage note:** This attribute has been removed in HTML5 and should no longer be used. Instead, use the [`accept`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept) attribute of the specific [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element.'},{name:"autocapitalize",description:"This is a nonstandard attribute used by iOS Safari Mobile which controls whether and how the text value for textual form control descendants should be automatically capitalized as it is entered/edited by the user. If the `autocapitalize` attribute is specified on an individual form control descendant, it trumps the form-wide `autocapitalize` setting. The non-deprecated values are available in iOS 5 and later. The default value is `sentences`. Possible values are:\n\n* `none`: Completely disables automatic capitalization\n* `sentences`: Automatically capitalize the first letter of sentences.\n* `words`: Automatically capitalize the first letter of words.\n* `characters`: Automatically capitalize all characters.\n* `on`: Deprecated since iOS 5.\n* `off`: Deprecated since iOS 5."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/form"}]},{name:"label",description:{kind:"markdown",value:"The label element represents a caption in a user interface. The caption can be associated with a specific form control, known as the label element's labeled control, either using the for attribute, or by putting the form control inside the label element itself."},attributes:[{name:"form",description:{kind:"markdown",value:'The [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") element with which the label is associated (its _form owner_). If specified, the value of the attribute is the `id` of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") element in the same document. This lets you place label elements anywhere within a document, not just as descendants of their form elements.'}},{name:"for",description:{kind:"markdown",value:"The [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#attr-id) of a [labelable](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Form_labelable) form-related element in the same document as the `<label>` element. The first element in the document with an `id` matching the value of the `for` attribute is the _labeled control_ for this label element, if it is a labelable element. If it is\xa0not labelable then the `for` attribute has no effect. If there are other elements which also match the `id` value, later in the document, they are not considered.\n\n**Note**: A `<label>` element can have both a `for` attribute and a contained control element, as long as the `for` attribute points to the contained control element."}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/label"}]},{name:"input",description:{kind:"markdown",value:"The input element represents a typed data field, usually with a form control to allow the user to edit the data."},attributes:[{name:"accept"},{name:"alt"},{name:"autocomplete",valueSet:"inputautocomplete"},{name:"autofocus",valueSet:"v"},{name:"checked",valueSet:"v"},{name:"dirname"},{name:"disabled",valueSet:"v"},{name:"form"},{name:"formaction"},{name:"formenctype",valueSet:"et"},{name:"formmethod",valueSet:"fm"},{name:"formnovalidate",valueSet:"v"},{name:"formtarget"},{name:"height"},{name:"inputmode",valueSet:"im"},{name:"list"},{name:"max"},{name:"maxlength"},{name:"min"},{name:"minlength"},{name:"multiple",valueSet:"v"},{name:"name"},{name:"pattern"},{name:"placeholder"},{name:"readonly",valueSet:"v"},{name:"required",valueSet:"v"},{name:"size"},{name:"src"},{name:"step"},{name:"type",valueSet:"t"},{name:"value"},{name:"width"}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/input"}]},{name:"button",description:{kind:"markdown",value:"The button element represents a button labeled by its contents."},attributes:[{name:"autofocus",valueSet:"v",description:{kind:"markdown",value:"This Boolean attribute lets you specify that the button should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form-associated element in a document can have this attribute specified."}},{name:"disabled",valueSet:"v",description:{kind:"markdown",value:'This Boolean attribute indicates that the user cannot interact with the button. If this attribute is not specified, the button inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset "The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form."); if there is no containing element with the **disabled** attribute set, then the button is enabled.\n\nFirefox will, unlike other browsers, by default, [persist the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") across page loads. Use the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-autocomplete) attribute to control this feature.'}},{name:"form",description:{kind:"markdown",value:'The form element that the button is associated with (its _form owner_). The value of the attribute must be the **id** attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") element in the same document. If this attribute is not specified, the `<button>` element will be associated to an ancestor [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") element, if one exists. This attribute enables you to associate `<button>` elements to [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") elements anywhere within a document, not just as descendants of [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") elements.'}},{name:"formaction",description:{kind:"markdown",value:"The URI of a program that processes the information submitted by the button. If specified, it overrides the [`action`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-action) attribute of the button's form owner."}},{name:"formenctype",valueSet:"et",description:{kind:"markdown",value:'If the button is a submit button, this attribute specifies the type of content that is used to submit the form to the server. Possible values are:\n\n* `application/x-www-form-urlencoded`: The default value if the attribute is not specified.\n* `multipart/form-data`: Use this value if you are using an [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") element with the [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-type) attribute set to `file`.\n* `text/plain`\n\nIf this attribute is specified, it overrides the [`enctype`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-enctype) attribute of the button\'s form owner.'}},{name:"formmethod",valueSet:"fm",description:{kind:"markdown",value:"If the button is a submit button, this attribute specifies the HTTP method that the browser uses to submit the form. Possible values are:\n\n* `post`: The data from the form are included in the body of the form and sent to the server.\n* `get`: The data from the form are appended to the **form** attribute URI, with a '?' as a separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.\n\nIf specified, this attribute overrides the [`method`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-method) attribute of the button's form owner."}},{name:"formnovalidate",valueSet:"v",description:{kind:"markdown",value:"If the button is a submit button, this Boolean attribute specifies that the form is not to be validated when it is submitted. If this attribute is specified, it overrides the [`novalidate`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-novalidate) attribute of the button's form owner."}},{name:"formtarget",description:{kind:"markdown",value:"If the button is a submit button, this attribute is a name or keyword indicating where to display the response that is received after submitting the form. This is a name of, or keyword for, a _browsing context_ (for example, tab, window, or inline frame). If this attribute is specified, it overrides the [`target`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-target) attribute of the button's form owner. The following keywords have special meanings:\n\n* `_self`: Load the response into the same browsing context as the current one. This value is the default if the attribute is not specified.\n* `_blank`: Load the response into a new unnamed browsing context.\n* `_parent`: Load the response into the parent browsing context of the current one. If there is no parent, this option behaves the same way as `_self`.\n* `_top`: Load the response into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as `_self`."}},{name:"name",description:{kind:"markdown",value:"The name of the button, which is submitted with the form data."}},{name:"type",valueSet:"bt",description:{kind:"markdown",value:"The type of the button. Possible values are:\n\n* `submit`: The button submits the form data to the server. This is the default if the attribute is not specified, or if the attribute is dynamically changed to an empty or invalid value.\n* `reset`: The button resets all the controls to their initial values.\n* `button`: The button has no default behavior. It can have client-side scripts associated with the element's events, which are triggered when the events occur."}},{name:"value",description:{kind:"markdown",value:"The initial value of the button. It defines the value associated with the button which is submitted with the form data. This value is passed to the server in params when the form is submitted."}},{name:"autocomplete",description:'The use of this attribute on a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") is nonstandard and Firefox-specific. By default, unlike other browsers, [Firefox persists the dynamic disabled state](https://stackoverflow.com/questions/5985839/bug-with-firefox-disabled-attribute-of-input-not-resetting-when-refreshing) of a [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button "The HTML <button> element represents a clickable button, which can be used in forms or anywhere in a document that needs simple, standard button functionality.") across page loads. Setting the value of this attribute to `off` (i.e. `autocomplete="off"`) disables this feature. See [bug\xa0654072](https://bugzilla.mozilla.org/show_bug.cgi?id=654072 "if disabled state is changed with javascript, the normal state doesn\'t return after refreshing the page").'}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/button"}]},{name:"select",description:{kind:"markdown",value:"The select element represents a control for selecting amongst a set of options."},attributes:[{name:"autocomplete",valueSet:"inputautocomplete",description:{kind:"markdown",value:'A [`DOMString`](https://developer.mozilla.org/en-US/docs/Web/API/DOMString "DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String.") providing a hint for a [user agent\'s](https://developer.mozilla.org/en-US/docs/Glossary/user_agent "user agent\'s: A user agent is a computer program representing a person, for example, a browser in a Web context.") autocomplete feature. See [The HTML autocomplete attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for a complete list of values and details on how to use autocomplete.'}},{name:"autofocus",valueSet:"v",description:{kind:"markdown",value:"This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form element in a document can have the `autofocus` attribute."}},{name:"disabled",valueSet:"v",description:{kind:"markdown",value:"This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example `fieldset`; if there is no containing element with the `disabled` attribute set, then the control is enabled."}},{name:"form",description:{kind:"markdown",value:'This attribute lets you specify the form element to\xa0which\xa0the select element is associated\xa0(that is, its "form owner"). If this attribute is specified, its value must be the same as the `id` of a form element in the same document. This enables you to place select elements anywhere within a document, not just as descendants of their form elements.'}},{name:"multiple",valueSet:"v",description:{kind:"markdown",value:"This Boolean attribute indicates that multiple options can be selected in the list. If it is not specified, then only one option can be selected at a time. When `multiple` is specified, most browsers will show a scrolling list box instead of a single line dropdown."}},{name:"name",description:{kind:"markdown",value:"This attribute is used to specify the name of the control."}},{name:"required",valueSet:"v",description:{kind:"markdown",value:"A Boolean attribute indicating that an option with a non-empty string value must be selected."}},{name:"size",description:{kind:"markdown",value:"If the control is presented as a scrolling list box (e.g. when `multiple` is specified), this attribute represents the number of rows in the list that should be visible at one time. Browsers are not required to present a select element as a scrolled list box. The default value is 0.\n\n**Note:** According to the HTML5 specification, the default value for size should be 1; however, in practice, this has been found to break some web sites, and no other browser currently does that, so Mozilla has opted to continue to return 0 for the time being with Firefox."}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/select"}]},{name:"datalist",description:{kind:"markdown",value:"The datalist element represents a set of option elements that represent predefined options for other controls. In the rendering, the datalist element represents nothing and it, along with its children, should be hidden."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/datalist"}]},{name:"optgroup",description:{kind:"markdown",value:"The optgroup element represents a group of option elements with a common label."},attributes:[{name:"disabled",valueSet:"v",description:{kind:"markdown",value:"If this Boolean attribute is set, none of the items in this option group is selectable. Often browsers grey out such control and it won't receive any browsing events, like mouse clicks or focus-related ones."}},{name:"label",description:{kind:"markdown",value:"The name of the group of options, which the browser can use when labeling the options in the user interface. This attribute is mandatory if this element is used."}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/optgroup"}]},{name:"option",description:{kind:"markdown",value:"The option element represents an option in a select element or as part of a list of suggestions in a datalist element."},attributes:[{name:"disabled",valueSet:"v",description:{kind:"markdown",value:'If this Boolean attribute is set, this option is not checkable. Often browsers grey out such control and it won\'t receive any browsing event, like mouse clicks or focus-related ones. If this attribute is not set, the element can still be disabled if one of its ancestors is a disabled [`<optgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup "The HTML <optgroup> element creates a grouping of options within a <select> element.") element.'}},{name:"label",description:{kind:"markdown",value:"This attribute is text for the label indicating the meaning of the option. If the `label` attribute isn't defined, its value is that of the element text content."}},{name:"selected",valueSet:"v",description:{kind:"markdown",value:'If present, this Boolean attribute indicates that the option is initially selected. If the `<option>` element is the descendant of a [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select "The HTML <select> element represents a control that provides a menu of options") element whose [`multiple`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#attr-multiple) attribute is not set, only one single `<option>` of this [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select "The HTML <select> element represents a control that provides a menu of options") element may have the `selected` attribute.'}},{name:"value",description:{kind:"markdown",value:"The content of this attribute represents the value to be submitted with the form, should this option be selected.\xa0If this attribute is omitted, the value is taken from the text content of the option element."}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/option"}]},{name:"textarea",description:{kind:"markdown",value:"The textarea element represents a multiline plain text edit control for the element's raw value. The contents of the control represent the control's default value."},attributes:[{name:"autocomplete",valueSet:"inputautocomplete",description:{kind:"markdown",value:'This attribute indicates whether the value of the control can be automatically completed by the browser. Possible values are:\n\n* `off`: The user must explicitly enter a value into this field for every use, or the document provides its own auto-completion method; the browser does not automatically complete the entry.\n* `on`: The browser can automatically complete the value based on values that the user has entered during previous uses.\n\nIf the `autocomplete` attribute is not specified on a `<textarea>` element, then the browser uses the `autocomplete` attribute value of the `<textarea>` element\'s form owner. The form owner is either the [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") element that this `<textarea>` element is a descendant of or the form element whose `id` is specified by the `form` attribute of the input element. For more information, see the [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-autocomplete) attribute in [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.").'}},{name:"autofocus",valueSet:"v",description:{kind:"markdown",value:"This Boolean attribute lets you specify that a form control should have input focus when the page loads. Only one form-associated element in a document can have this attribute specified."}},{name:"cols",description:{kind:"markdown",value:"The visible width of the text control, in average character widths. If it is specified, it must be a positive integer. If it is not specified, the default value is `20`."}},{name:"dirname"},{name:"disabled",valueSet:"v",description:{kind:"markdown",value:'This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset "The HTML <fieldset> element is used to group several controls as well as labels (<label>) within a web form."); if there is no containing element when the `disabled` attribute is set, the control is enabled.'}},{name:"form",description:{kind:"markdown",value:'The form element that the `<textarea>` element is associated with (its "form owner"). The value of the attribute must be the `id` of a form element in the same document. If this attribute is not specified, the `<textarea>` element must be a descendant of a form element. This attribute enables you to place `<textarea>` elements anywhere within a document, not just as descendants of form elements.'}},{name:"inputmode",valueSet:"im"},{name:"maxlength",description:{kind:"markdown",value:"The maximum number of characters (unicode code points) that the user can enter. If this value isn't specified, the user can enter an unlimited number of characters."}},{name:"minlength",description:{kind:"markdown",value:"The minimum number of characters (unicode code points) required that the user should enter."}},{name:"name",description:{kind:"markdown",value:"The name of the control."}},{name:"placeholder",description:{kind:"markdown",value:'A hint to the user of what can be entered in the control. Carriage returns or line-feeds within the placeholder text must be treated as line breaks when rendering the hint.\n\n**Note:** Placeholders should only be used to show an example of the type of data that should be entered into a form; they are _not_ a substitute for a proper [`<label>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label "The HTML <label> element represents a caption for an item in a user interface.") element tied to the input. See [Labels and placeholders](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Labels_and_placeholders "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") in [<input>: The Input (Form Input) element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") for a full explanation.'}},{name:"readonly",valueSet:"v",description:{kind:"markdown",value:"This Boolean attribute indicates that the user cannot modify the value of the control. Unlike the `disabled` attribute, the `readonly` attribute does not prevent the user from clicking or selecting in the control. The value of a read-only control is still submitted with the form."}},{name:"required",valueSet:"v",description:{kind:"markdown",value:"This attribute specifies that the user must fill in a value before submitting a form."}},{name:"rows",description:{kind:"markdown",value:"The number of visible text lines for the control."}},{name:"wrap",valueSet:"w",description:{kind:"markdown",value:"Indicates how the control wraps text. Possible values are:\n\n* `hard`: The browser automatically inserts line breaks (CR+LF) so that each line has no more than the width of the control; the `cols` attribute must also be specified for this to take effect.\n* `soft`: The browser ensures that all line breaks in the value consist of a CR+LF pair, but does not insert any additional line breaks.\n* `off` : Like `soft` but changes appearance to `white-space: pre` so line segments exceeding `cols` are not wrapped and the `<textarea>` becomes horizontally scrollable.\n\nIf this attribute is not specified, `soft` is its default value."}},{name:"autocapitalize",description:"This is a non-standard attribute supported by WebKit on iOS (therefore nearly all browsers running on iOS, including Safari, Firefox, and Chrome), which controls whether and how the text value should be automatically capitalized as it is entered/edited by the user. The non-deprecated values are available in iOS 5 and later. Possible values are:\n\n* `none`: Completely disables automatic capitalization.\n* `sentences`: Automatically capitalize the first letter of sentences.\n* `words`: Automatically capitalize the first letter of words.\n* `characters`: Automatically capitalize all characters.\n* `on`: Deprecated since iOS 5.\n* `off`: Deprecated since iOS 5."},{name:"spellcheck",description:"Specifies whether the `<textarea>` is subject to spell checking by the underlying browser/OS. the value can be:\n\n* `true`: Indicates that the element needs to have its spelling and grammar checked.\n* `default` : Indicates that the element is to act according to a default behavior, possibly based on the parent element's own `spellcheck` value.\n* `false` : Indicates that the element should not be spell checked."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/textarea"}]},{name:"output",description:{kind:"markdown",value:"The output element represents the result of a calculation performed by the application, or the result of a user action."},attributes:[{name:"for",description:{kind:"markdown",value:"A space-separated list of other elements\u2019 [`id`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id)s, indicating that those elements contributed input values to (or otherwise affected) the calculation."}},{name:"form",description:{kind:"markdown",value:'The [form element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form) that this element is associated with (its "form owner"). The value of the attribute must be an `id` of a form element in the same document. If this attribute is not specified, the output element must be a descendant of a form element. This attribute enables you to place output elements anywhere within a document, not just as descendants of their form elements.'}},{name:"name",description:{kind:"markdown",value:'The name of the element, exposed in the [`HTMLFormElement`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement "The HTMLFormElement interface represents a <form> element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements.") API.'}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/output"}]},{name:"progress",description:{kind:"markdown",value:"The progress element represents the completion progress of a task. The progress is either indeterminate, indicating that progress is being made but that it is not clear how much more work remains to be done before the task is complete (e.g. because the task is waiting for a remote host to respond), or the progress is a number in the range zero to a maximum, giving the fraction of work that has so far been completed."},attributes:[{name:"value",description:{kind:"markdown",value:"This attribute specifies how much of the task that has been completed. It must be a valid floating point number between 0 and `max`, or between 0 and 1 if `max` is omitted. If there is no `value` attribute, the progress bar is indeterminate; this indicates that an activity is ongoing with no indication of how long it is expected to take."}},{name:"max",description:{kind:"markdown",value:"This attribute describes how much work the task indicated by the `progress` element requires. The `max` attribute, if present, must have a value greater than zero and be a valid floating point number. The default value is 1."}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/progress"}]},{name:"meter",description:{kind:"markdown",value:"The meter element represents a scalar measurement within a known range, or a fractional value; for example disk usage, the relevance of a query result, or the fraction of a voting population to have selected a particular candidate."},attributes:[{name:"value",description:{kind:"markdown",value:"The current numeric value. This must be between the minimum and maximum values (`min` attribute and `max` attribute) if they are specified. If unspecified or malformed, the value is 0. If specified, but not within the range given by the `min` attribute and `max` attribute, the value is equal to the nearest end of the range.\n\n**Usage note:** Unless the `value` attribute is between `0` and `1` (inclusive), the `min` and `max` attributes should define the range so that the `value` attribute's value is within it."}},{name:"min",description:{kind:"markdown",value:"The lower numeric bound of the measured range. This must be less than the maximum value (`max` attribute), if specified. If unspecified, the minimum value is 0."}},{name:"max",description:{kind:"markdown",value:"The upper numeric bound of the measured range. This must be greater than the minimum value (`min` attribute), if specified. If unspecified, the maximum value is 1."}},{name:"low",description:{kind:"markdown",value:"The upper numeric bound of the low end of the measured range. This must be greater than the minimum value (`min` attribute), and it also must be less than the high value and maximum value (`high` attribute and `max` attribute, respectively), if any are specified. If unspecified, or if less than the minimum value, the `low` value is equal to the minimum value."}},{name:"high",description:{kind:"markdown",value:"The lower numeric bound of the high end of the measured range. This must be less than the maximum value (`max` attribute), and it also must be greater than the low value and minimum value (`low` attribute and **min** attribute, respectively), if any are specified. If unspecified, or if greater than the maximum value, the `high` value is equal to the maximum value."}},{name:"optimum",description:{kind:"markdown",value:"This attribute indicates the optimal numeric value. It must be within the range (as defined by the `min` attribute and `max` attribute). When used with the `low` attribute and `high` attribute, it gives an indication where along the range is considered preferable. For example, if it is between the `min` attribute and the `low` attribute, then the lower range is considered preferred."}},{name:"form",description:"This attribute associates the element with a `form` element that has ownership of the `meter` element. For example, a `meter` might be displaying a range corresponding to an `input` element of `type` _number_. This attribute is only used if the `meter` element is being used as a form-associated element; even then, it may be omitted if the element appears as a descendant of a `form` element."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/meter"}]},{name:"fieldset",description:{kind:"markdown",value:"The fieldset element represents a set of form controls optionally grouped under a common name."},attributes:[{name:"disabled",valueSet:"v",description:{kind:"markdown",value:"If this Boolean attribute is set, all form controls that are descendants of the `<fieldset>`, are disabled, meaning they are not editable and won't be submitted along with the `<form>`. They won't receive any browsing events, like mouse clicks or focus-related events. By default browsers display such controls grayed out. Note that form elements inside the [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend \"The HTML <legend> element represents a caption for the content of its parent <fieldset>.\") element won't be disabled."}},{name:"form",description:{kind:"markdown",value:'This attribute takes the value of the `id` attribute of a [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form "The HTML <form> element represents a document section that contains interactive controls for submitting information to a web server.") element you want the `<fieldset>` to be part of, even if it is not inside the form.'}},{name:"name",description:{kind:"markdown",value:'The name associated with the group.\n\n**Note**: The caption for the fieldset is given by the first [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend "The HTML <legend> element represents a caption for the content of its parent <fieldset>.") element nested inside it.'}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/fieldset"}]},{name:"legend",description:{kind:"markdown",value:"The legend element represents a caption for the rest of the contents of the legend element's parent fieldset element, if any."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/legend"}]},{name:"details",description:{kind:"markdown",value:"The details element represents a disclosure widget from which the user can obtain additional information or controls."},attributes:[{name:"open",valueSet:"v",description:{kind:"markdown",value:"This Boolean attribute indicates whether or not the details \u2014 that is, the contents of the `<details>` element \u2014 are currently visible. The default, `false`, means the details are not visible."}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/details"}]},{name:"summary",description:{kind:"markdown",value:"The summary element represents a summary, caption, or legend for the rest of the contents of the summary element's parent details element, if any."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/summary"}]},{name:"dialog",description:{kind:"markdown",value:"The dialog element represents a part of an application that a user interacts with to perform a task, for example a dialog box, inspector, or window."},attributes:[{name:"open",description:"Indicates that the dialog is active and available for interaction. When the `open` attribute is not set, the dialog shouldn't be shown to the user."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/dialog"}]},{name:"script",description:{kind:"markdown",value:"The script element allows authors to include dynamic script and data blocks in their documents. The element does not represent content for the user."},attributes:[{name:"src",description:{kind:"markdown",value:"This attribute specifies the URI of an external script; this can be used as an alternative to embedding a script directly within a document.\n\nIf a `script` element has a `src` attribute specified, it should not have a script embedded inside its tags."}},{name:"type",description:{kind:"markdown",value:'This attribute indicates the type of script represented. The value of this attribute will be in one of the following categories:\n\n* **Omitted or a JavaScript MIME type:** For HTML5-compliant browsers this indicates the script is JavaScript. HTML5 specification urges authors to omit the attribute rather than provide a redundant MIME type. In earlier browsers, this identified the scripting language of the embedded or imported (via the `src` attribute) code. JavaScript MIME types are [listed in the specification](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#JavaScript_types).\n* **`module`:** For HTML5-compliant browsers the code is treated as a JavaScript module. The processing of the script contents is not affected by the `charset` and `defer` attributes. For information on using `module`, see [ES6 in Depth: Modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/). Code may behave differently when the `module` keyword is used.\n* **Any other value:** The embedded content is treated as a data block which won\'t be processed by the browser. Developers must use a valid MIME type that is not a JavaScript MIME type to denote data blocks. The `src` attribute will be ignored.\n\n**Note:** in Firefox you could specify the version of JavaScript contained in a `<script>` element by including a non-standard `version` parameter inside the `type` attribute \u2014 for example `type="text/javascript;version=1.8"`. This has been removed in Firefox 59 (see [bug\xa01428745](https://bugzilla.mozilla.org/show_bug.cgi?id=1428745 "FIXED: Remove support for version parameter from script loader")).'}},{name:"charset"},{name:"async",valueSet:"v",description:{kind:"markdown",value:'This is a Boolean attribute indicating that the browser should, if possible, load the script asynchronously.\n\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts). If it is included in this case it will have no effect.\n\nBrowsers usually assume the worst case scenario and load scripts synchronously, (i.e. `async="false"`) during HTML parsing.\n\nDynamically inserted scripts (using [`document.createElement()`](https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement "In an HTML document, the document.createElement() method creates the HTML element specified by tagName, or an HTMLUnknownElement if tagName isn\'t recognized.")) load asynchronously by default, so to turn on synchronous loading (i.e. scripts load in the order they were inserted) set `async="false"`.\n\nSee [Browser compatibility](#Browser_compatibility) for notes on browser support. See also [Async scripts for asm.js](https://developer.mozilla.org/en-US/docs/Games/Techniques/Async_scripts).'}},{name:"defer",valueSet:"v",description:{kind:"markdown",value:'This Boolean attribute is set to indicate to a browser that the script is meant to be executed after the document has been parsed, but before firing [`DOMContentLoaded`](https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded "/en-US/docs/Web/Events/DOMContentLoaded").\n\nScripts with the `defer` attribute will prevent the `DOMContentLoaded` event from firing until the script has loaded and finished evaluating.\n\nThis attribute must not be used if the `src` attribute is absent (i.e. for inline scripts), in this case it would have no effect.\n\nTo achieve a similar effect for dynamically inserted scripts use `async="false"` instead. Scripts with the `defer` attribute will execute in the order in which they appear in the document.'}},{name:"crossorigin",valueSet:"xo",description:{kind:"markdown",value:'Normal `script` elements pass minimal information to the [`window.onerror`](https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror "The onerror property of the GlobalEventHandlers mixin is an EventHandler that processes error events.") for scripts which do not pass the standard [CORS](https://developer.mozilla.org/en-US/docs/Glossary/CORS "CORS: CORS (Cross-Origin Resource Sharing) is a system, consisting of transmitting HTTP headers, that determines whether browsers block frontend JavaScript code from accessing responses for cross-origin requests.") checks. To allow error logging for sites which use a separate domain for static media, use this attribute. See [CORS settings attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for a more descriptive explanation of its valid arguments.'}},{name:"nonce",description:{kind:"markdown",value:"A cryptographic nonce (number used once) to whitelist inline scripts in a [script-src Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src). The server must generate a unique nonce value each time it transmits a policy. It is critical to provide a nonce that cannot be guessed as bypassing a resource's policy is otherwise trivial."}},{name:"integrity",description:"This attribute contains inline metadata that a user agent can use to verify that a fetched resource has been delivered free of unexpected manipulation. See [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity)."},{name:"nomodule",description:"This Boolean attribute is set to indicate that the script should not be executed in browsers that support [ES2015 modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/) \u2014 in effect, this can be used to serve fallback scripts to older browsers that do not support modular JavaScript code."},{name:"referrerpolicy",description:'Indicates which [referrer](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer) to send when fetching the script, or resources fetched by the script:\n\n* `no-referrer`: The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer "The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.") header will not be sent.\n* `no-referrer-when-downgrade` (default): The [`Referer`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer "The Referer request header contains the address of the previous web page from which a link to the currently requested page was followed. The Referer header allows servers to identify where people are visiting them from and may use that data for analytics, logging, or optimized caching, for example.") header will not be sent to [origin](https://developer.mozilla.org/en-US/docs/Glossary/origin "origin: Web content\'s origin is defined by the scheme (protocol), host (domain), and port of the URL used to access it. Two objects have the same origin only when the scheme, host, and port all match.")s without [TLS](https://developer.mozilla.org/en-US/docs/Glossary/TLS "TLS: Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), is a protocol used by applications to communicate securely across a network, preventing tampering with and eavesdropping on email, web browsing, messaging, and other protocols.") ([HTTPS](https://developer.mozilla.org/en-US/docs/Glossary/HTTPS "HTTPS: HTTPS (HTTP Secure) is an encrypted version of the HTTP protocol. It usually uses SSL or TLS to encrypt all communication between a client and a server. This secure connection allows clients to safely exchange sensitive data with a server, for example for banking activities or online shopping.")).\n* `origin`: The sent referrer will be limited to the origin of the referring page: its [scheme](https://developer.mozilla.org/en-US/docs/Archive/Mozilla/URIScheme), [host](https://developer.mozilla.org/en-US/docs/Glossary/host "host: A host is a device connected to the Internet (or a local network). Some hosts called servers offer additional services like serving webpages or storing files and emails."), and [port](https://developer.mozilla.org/en-US/docs/Glossary/port "port: For a computer connected to a network with an IP address, a port is a communication endpoint. Ports are designated by numbers, and below 1024 each port is associated by default with a specific protocol.").\n* `origin-when-cross-origin`: The referrer sent to other origins will be limited to the scheme, the host, and the port. Navigations on the same origin will still include the path.\n* `same-origin`: A referrer will be sent for [same origin](https://developer.mozilla.org/en-US/docs/Glossary/Same-origin_policy "same origin: The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin."), but cross-origin requests will contain no referrer information.\n* `strict-origin`: Only send the origin of the document as the referrer when the protocol security level stays the same (e.g. HTTPS\u2192HTTPS), but don\'t send it to a less secure destination (e.g. HTTPS\u2192HTTP).\n* `strict-origin-when-cross-origin`: Send a full URL when performing a same-origin request, but only send the origin when the protocol security level stays the same (e.g.HTTPS\u2192HTTPS), and send no header to a less secure destination (e.g. HTTPS\u2192HTTP).\n* `unsafe-url`: The referrer will include the origin _and_ the path (but not the [fragment](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash), [password](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/password), or [username](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/username)). **This value is unsafe**, because it leaks origins and paths from TLS-protected resources to insecure origins.\n\n**Note**: An empty string value (`""`) is both the default value, and a fallback value if `referrerpolicy` is not supported. If `referrerpolicy` is not explicitly specified on the `<script>` element, it will adopt a higher-level referrer policy, i.e. one set on the whole document or domain. If a higher-level policy is not available,\xa0the empty string is treated as being equivalent to `no-referrer-when-downgrade`.'},{name:"text",description:"Like the `textContent` attribute, this attribute sets the text content of the element. Unlike the `textContent` attribute, however, this attribute is evaluated as executable code after the node is inserted into the DOM."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/script"}]},{name:"noscript",description:{kind:"markdown",value:"The noscript element represents nothing if scripting is enabled, and represents its children if scripting is disabled. It is used to present different markup to user agents that support scripting and those that don't support scripting, by affecting how the document is parsed."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/noscript"}]},{name:"template",description:{kind:"markdown",value:"The template element is used to declare fragments of HTML that can be cloned and inserted in the document by script."},attributes:[],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/template"}]},{name:"canvas",description:{kind:"markdown",value:"The canvas element provides scripts with a resolution-dependent bitmap canvas, which can be used for rendering graphs, game graphics, art, or other visual images on the fly."},attributes:[{name:"width",description:{kind:"markdown",value:"The width of the coordinate space in CSS pixels. Defaults to 300."}},{name:"height",description:{kind:"markdown",value:"The height of the coordinate space in CSS pixels. Defaults to 150."}},{name:"moz-opaque",description:"Lets the canvas know whether or not translucency will be a factor. If the canvas knows there's no translucency, painting performance can be optimized. This is only supported by Mozilla-based browsers; use the standardized [`canvas.getContext('2d', { alpha: false })`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext \"The HTMLCanvasElement.getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\") instead."}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Element/canvas"}]}],globalAttributes:[{name:"accesskey",description:{kind:"markdown",value:"Provides a hint for generating a keyboard shortcut for the current element. This attribute consists of a space-separated list of characters. The browser should use the first one that exists on the computer keyboard layout."},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/accesskey"}]},{name:"autocapitalize",description:{kind:"markdown",value:"Controls whether and how text input is automatically capitalized as it is entered/edited by the user. It can have the following values:\n\n* `off` or `none`, no autocapitalization is applied (all letters default to lowercase)\n* `on` or `sentences`, the first letter of each sentence defaults to a capital letter; all other letters default to lowercase\n* `words`, the first letter of each word defaults to a capital letter; all other letters default to lowercase\n* `characters`, all letters should default to uppercase"},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/autocapitalize"}]},{name:"class",description:{kind:"markdown",value:'A space-separated list of the classes of the element. Classes allows CSS and JavaScript to select and access specific elements via the [class selectors](/en-US/docs/Web/CSS/Class_selectors) or functions like the method [`Document.getElementsByClassName()`](/en-US/docs/Web/API/Document/getElementsByClassName "returns an array-like object of all child elements which have all of the given class names.").'},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/class"}]},{name:"contenteditable",description:{kind:"markdown",value:"An enumerated attribute indicating if the element should be editable by the user. If so, the browser modifies its widget to allow editing. The attribute must take one of the following values:\n\n* `true` or the _empty string_, which indicates that the element must be editable;\n* `false`, which indicates that the element must not be editable."},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/contenteditable"}]},{name:"contextmenu",description:{kind:"markdown",value:'The `[**id**](#attr-id)` of a [`<menu>`](/en-US/docs/Web/HTML/Element/menu "The HTML <menu> element represents a group of commands that a user can perform or activate. This includes both list menus, which might appear across the top of a screen, as well as context menus, such as those that might appear underneath a button after it has been clicked.") to use as the contextual menu for this element.'},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/contextmenu"}]},{name:"dir",description:{kind:"markdown",value:"An enumerated attribute indicating the directionality of the element's text. It can have the following values:\n\n* `ltr`, which means _left to right_ and is to be used for languages that are written from the left to the right (like English);\n* `rtl`, which means _right to left_ and is to be used for languages that are written from the right to the left (like Arabic);\n* `auto`, which lets the user agent decide. It uses a basic algorithm as it parses the characters inside the element until it finds a character with a strong directionality, then it applies that directionality to the whole element."},valueSet:"d",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/dir"}]},{name:"draggable",description:{kind:"markdown",value:"An enumerated attribute indicating whether the element can be dragged, using the [Drag and Drop API](/en-us/docs/DragDrop/Drag_and_Drop). It can have the following values:\n\n* `true`, which indicates that the element may be dragged\n* `false`, which indicates that the element may not be dragged."},valueSet:"b",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/draggable"}]},{name:"dropzone",description:{kind:"markdown",value:"An enumerated attribute indicating what types of content can be dropped on an element, using the [Drag and Drop API](/en-US/docs/DragDrop/Drag_and_Drop). It can have the following values:\n\n* `copy`, which indicates that dropping will create a copy of the element that was dragged\n* `move`, which indicates that the element that was dragged will be moved to this new location.\n* `link`, will create a link to the dragged data."}},{name:"exportparts",description:{kind:"markdown",value:"Used to transitively export shadow parts from a nested shadow tree into a containing light tree."},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/exportparts"}]},{name:"hidden",description:{kind:"markdown",value:"A Boolean attribute indicates that the element is not yet, or is no longer, _relevant_. For example, it can be used to hide elements of the page that can't be used until the login process has been completed. The browser won't render such elements. This attribute must not be used to hide content that could legitimately be shown."},valueSet:"v",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/hidden"}]},{name:"id",description:{kind:"markdown",value:"Defines a unique identifier (ID) which must be unique in the whole document. Its purpose is to identify the element when linking (using a fragment identifier), scripting, or styling (with CSS)."},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/id"}]},{name:"inputmode",description:{kind:"markdown",value:'Provides a hint to browsers as to the type of virtual keyboard configuration to use when editing this element or its contents. Used primarily on [`<input>`](/en-US/docs/Web/HTML/Element/input "The HTML <input> element is used to create interactive controls for web-based forms in order to accept data from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.") elements, but is usable on any element while in `[contenteditable](/en-US/docs/Web/HTML/Global_attributes#attr-contenteditable)` mode.'},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/inputmode"}]},{name:"is",description:{kind:"markdown",value:"Allows you to specify that a standard HTML element should behave like a registered custom built-in element (see [Using custom elements](/en-US/docs/Web/Web_Components/Using_custom_elements) for more details)."},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/is"}]},{name:"itemid",description:{kind:"markdown",value:"The unique, global identifier of an item."},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemid"}]},{name:"itemprop",description:{kind:"markdown",value:"Used to add properties to an item. Every HTML element may have an `itemprop` attribute specified, where an `itemprop` consists of a name and value pair."},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemprop"}]},{name:"itemref",description:{kind:"markdown",value:"Properties that are not descendants of an element with the `itemscope` attribute can be associated with the item using an `itemref`. It provides a list of element ids (not `itemid`s) with additional properties elsewhere in the document."},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemref"}]},{name:"itemscope",description:{kind:"markdown",value:"`itemscope` (usually) works along with `[itemtype](/en-US/docs/Web/HTML/Global_attributes#attr-itemtype)` to specify that the HTML contained in a block is about a particular item. `itemscope` creates the Item and defines the scope of the `itemtype` associated with it. `itemtype` is a valid URL of a vocabulary (such as [schema.org](https://schema.org/)) that describes the item and its properties context."},valueSet:"v",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemscope"}]},{name:"itemtype",description:{kind:"markdown",value:"Specifies the URL of the vocabulary that will be used to define `itemprop`s (item properties) in the data structure. `[itemscope](/en-US/docs/Web/HTML/Global_attributes#attr-itemscope)` is used to set the scope of where in the data structure the vocabulary set by `itemtype` will be active."},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/itemtype"}]},{name:"lang",description:{kind:"markdown",value:"Helps define the language of an element: the language that non-editable elements are in, or the language that editable elements should be written in by the user. The attribute contains one \u201clanguage tag\u201d (made of hyphen-separated \u201clanguage subtags\u201d) in the format defined in [_Tags for Identifying Languages (BCP47)_](https://www.ietf.org/rfc/bcp/bcp47.txt). [**xml:lang**](#attr-xml:lang) has priority over it."},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/lang"}]},{name:"part",description:{kind:"markdown",value:'A space-separated list of the part names of the element. Part names allows CSS to select and style specific elements in a shadow tree via the [`::part`](/en-US/docs/Web/CSS/::part "The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute.") pseudo-element.'},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/part"}]},{name:"role",valueSet:"roles"},{name:"slot",description:{kind:"markdown",value:"Assigns a slot in a [shadow DOM](/en-US/docs/Web/Web_Components/Shadow_DOM) shadow tree to an element: An element with a `slot` attribute is assigned to the slot created by the [`<slot>`](/en-US/docs/Web/HTML/Element/slot \"The HTML <slot> element\u2014part of the Web Components technology suite\u2014is a placeholder inside a web component that you can fill with your own markup, which lets you create separate DOM trees and present them together.\") element whose `[name](/en-US/docs/Web/HTML/Element/slot#attr-name)` attribute's value matches that `slot` attribute's value."},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/slot"}]},{name:"spellcheck",description:{kind:"markdown",value:"An enumerated attribute defines whether the element may be checked for spelling errors. It may have the following values:\n\n* `true`, which indicates that the element should be, if possible, checked for spelling errors;\n* `false`, which indicates that the element should not be checked for spelling errors."},valueSet:"b",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/spellcheck"}]},{name:"style",description:{kind:"markdown",value:'Contains [CSS](/en-US/docs/Web/CSS) styling declarations to be applied to the element. Note that it is recommended for styles to be defined in a separate file or files. This attribute and the [`<style>`](/en-US/docs/Web/HTML/Element/style "The HTML <style> element contains style information for a document, or part of a document.") element have mainly the purpose of allowing for quick styling, for example for testing purposes.'},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/style"}]},{name:"tabindex",description:{kind:"markdown",value:"An integer attribute indicating if the element can take input focus (is _focusable_), if it should participate to sequential keyboard navigation, and if so, at what position. It can take several values:\n\n* a _negative value_ means that the element should be focusable, but should not be reachable via sequential keyboard navigation;\n* `0` means that the element should be focusable and reachable via sequential keyboard navigation, but its relative order is defined by the platform convention;\n* a _positive value_ means that the element should be focusable and reachable via sequential keyboard navigation; the order in which the elements are focused is the increasing value of the [**tabindex**](#attr-tabindex). If several elements share the same tabindex, their relative order follows their relative positions in the document."},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/tabindex"}]},{name:"title",description:{kind:"markdown",value:"Contains a text representing advisory information related to the element it belongs to. Such information can typically, but not necessarily, be presented to the user as a tooltip."},references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/title"}]},{name:"translate",description:{kind:"markdown",value:"An enumerated attribute that is used to specify whether an element's attribute values and the values of its [`Text`](/en-US/docs/Web/API/Text \"The Text interface represents the textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element's text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children.\") node children are to be translated when the page is localized, or whether to leave them unchanged. It can have the following values:\n\n* empty string and `yes`, which indicates that the element will be translated.\n* `no`, which indicates that the element will not be translated."},valueSet:"y",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/HTML/Global_attributes/translate"}]},{name:"onabort",description:{kind:"markdown",value:"The loading of a resource has been aborted."}},{name:"onblur",description:{kind:"markdown",value:"An element has lost focus (does not bubble)."}},{name:"oncanplay",description:{kind:"markdown",value:"The user agent can play the media, but estimates that not enough data has been loaded to play the media up to its end without having to stop for further buffering of content."}},{name:"oncanplaythrough",description:{kind:"markdown",value:"The user agent can play the media up to its end without having to stop for further buffering of content."}},{name:"onchange",description:{kind:"markdown",value:"The change event is fired for <input>, <select>, and <textarea> elements when a change to the element's value is committed by the user."}},{name:"onclick",description:{kind:"markdown",value:"A pointing device button has been pressed and released on an element."}},{name:"oncontextmenu",description:{kind:"markdown",value:"The right button of the mouse is clicked (before the context menu is displayed)."}},{name:"ondblclick",description:{kind:"markdown",value:"A pointing device button is clicked twice on an element."}},{name:"ondrag",description:{kind:"markdown",value:"An element or text selection is being dragged (every 350ms)."}},{name:"ondragend",description:{kind:"markdown",value:"A drag operation is being ended (by releasing a mouse button or hitting the escape key)."}},{name:"ondragenter",description:{kind:"markdown",value:"A dragged element or text selection enters a valid drop target."}},{name:"ondragleave",description:{kind:"markdown",value:"A dragged element or text selection leaves a valid drop target."}},{name:"ondragover",description:{kind:"markdown",value:"An element or text selection is being dragged over a valid drop target (every 350ms)."}},{name:"ondragstart",description:{kind:"markdown",value:"The user starts dragging an element or text selection."}},{name:"ondrop",description:{kind:"markdown",value:"An element is dropped on a valid drop target."}},{name:"ondurationchange",description:{kind:"markdown",value:"The duration attribute has been updated."}},{name:"onemptied",description:{kind:"markdown",value:"The media has become empty; for example, this event is sent if the media has already been loaded (or partially loaded), and the load() method is called to reload it."}},{name:"onended",description:{kind:"markdown",value:"Playback has stopped because the end of the media was reached."}},{name:"onerror",description:{kind:"markdown",value:"A resource failed to load."}},{name:"onfocus",description:{kind:"markdown",value:"An element has received focus (does not bubble)."}},{name:"onformchange"},{name:"onforminput"},{name:"oninput",description:{kind:"markdown",value:"The value of an element changes or the content of an element with the attribute contenteditable is modified."}},{name:"oninvalid",description:{kind:"markdown",value:"A submittable element has been checked and doesn't satisfy its constraints."}},{name:"onkeydown",description:{kind:"markdown",value:"A key is pressed down."}},{name:"onkeypress",description:{kind:"markdown",value:"A key is pressed down and that key normally produces a character value (use input instead)."}},{name:"onkeyup",description:{kind:"markdown",value:"A key is released."}},{name:"onload",description:{kind:"markdown",value:"A resource and its dependent resources have finished loading."}},{name:"onloadeddata",description:{kind:"markdown",value:"The first frame of the media has finished loading."}},{name:"onloadedmetadata",description:{kind:"markdown",value:"The metadata has been loaded."}},{name:"onloadstart",description:{kind:"markdown",value:"Progress has begun."}},{name:"onmousedown",description:{kind:"markdown",value:"A pointing device button (usually a mouse) is pressed on an element."}},{name:"onmousemove",description:{kind:"markdown",value:"A pointing device is moved over an element."}},{name:"onmouseout",description:{kind:"markdown",value:"A pointing device is moved off the element that has the listener attached or off one of its children."}},{name:"onmouseover",description:{kind:"markdown",value:"A pointing device is moved onto the element that has the listener attached or onto one of its children."}},{name:"onmouseup",description:{kind:"markdown",value:"A pointing device button is released over an element."}},{name:"onmousewheel"},{name:"onpause",description:{kind:"markdown",value:"Playback has been paused."}},{name:"onplay",description:{kind:"markdown",value:"Playback has begun."}},{name:"onplaying",description:{kind:"markdown",value:"Playback is ready to start after having been paused or delayed due to lack of data."}},{name:"onprogress",description:{kind:"markdown",value:"In progress."}},{name:"onratechange",description:{kind:"markdown",value:"The playback rate has changed."}},{name:"onreset",description:{kind:"markdown",value:"A form is reset."}},{name:"onresize",description:{kind:"markdown",value:"The document view has been resized."}},{name:"onreadystatechange",description:{kind:"markdown",value:"The readyState attribute of a document has changed."}},{name:"onscroll",description:{kind:"markdown",value:"The document view or an element has been scrolled."}},{name:"onseeked",description:{kind:"markdown",value:"A seek operation completed."}},{name:"onseeking",description:{kind:"markdown",value:"A seek operation began."}},{name:"onselect",description:{kind:"markdown",value:"Some text is being selected."}},{name:"onshow",description:{kind:"markdown",value:"A contextmenu event was fired on/bubbled to an element that has a contextmenu attribute"}},{name:"onstalled",description:{kind:"markdown",value:"The user agent is trying to fetch media data, but data is unexpectedly not forthcoming."}},{name:"onsubmit",description:{kind:"markdown",value:"A form is submitted."}},{name:"onsuspend",description:{kind:"markdown",value:"Media data loading has been suspended."}},{name:"ontimeupdate",description:{kind:"markdown",value:"The time indicated by the currentTime attribute has been updated."}},{name:"onvolumechange",description:{kind:"markdown",value:"The volume has changed."}},{name:"onwaiting",description:{kind:"markdown",value:"Playback has stopped because of a temporary lack of data."}},{name:"aria-activedescendant",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-activedescendant"}],description:{kind:"markdown",value:"Identifies the currently active element when DOM focus is on a [`composite`](https://www.w3.org/TR/wai-aria-1.1/#composite) widget, [`textbox`](https://www.w3.org/TR/wai-aria-1.1/#textbox), [`group`](https://www.w3.org/TR/wai-aria-1.1/#group), or [`application`](https://www.w3.org/TR/wai-aria-1.1/#application)."}},{name:"aria-atomic",valueSet:"b",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-atomic"}],description:{kind:"markdown",value:"Indicates whether [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology) will present all, or only parts of, the changed region based on the change notifications defined by the [`aria-relevant`](https://www.w3.org/TR/wai-aria-1.1/#aria-relevant) attribute."}},{name:"aria-autocomplete",valueSet:"autocomplete",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-autocomplete"}],description:{kind:"markdown",value:"Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be presented if they are made."}},{name:"aria-busy",valueSet:"b",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-busy"}],description:{kind:"markdown",value:"Indicates an element is being modified and that assistive technologies _MAY_ want to wait until the modifications are complete before exposing them to the user."}},{name:"aria-checked",valueSet:"tristate",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-checked"}],description:{kind:"markdown",value:'Indicates the current "checked" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of checkboxes, radio buttons, and other [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected).'}},{name:"aria-colcount",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-colcount"}],description:{kind:"markdown",value:"Defines the total number of columns in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex)."}},{name:"aria-colindex",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-colindex"}],description:{kind:"markdown",value:"Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) column index or position with respect to the total number of columns within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-colcount) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan)."}},{name:"aria-colspan",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-colspan"}],description:{kind:"markdown",value:"Defines the number of columns spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-colindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-colindex) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan)."}},{name:"aria-controls",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-controls"}],description:{kind:"markdown",value:"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) whose contents or presence are controlled by the current element. See related [`aria-owns`](https://www.w3.org/TR/wai-aria-1.1/#aria-owns)."}},{name:"aria-current",valueSet:"current",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-current"}],description:{kind:"markdown",value:"Indicates the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that represents the current item within a container or set of related elements."}},{name:"aria-describedat",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-describedat"}]},{name:"aria-describedby",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-describedby"}],description:{kind:"markdown",value:"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that describes the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby)."}},{name:"aria-disabled",valueSet:"b",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-disabled"}],description:{kind:"markdown",value:"Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is [perceivable](https://www.w3.org/TR/wai-aria-1.1/#dfn-perceivable) but disabled, so it is not editable or otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-hidden`](https://www.w3.org/TR/wai-aria-1.1/#aria-hidden) and [`aria-readonly`](https://www.w3.org/TR/wai-aria-1.1/#aria-readonly)."}},{name:"aria-dropeffect",valueSet:"dropeffect",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-dropeffect"}],description:{kind:"markdown",value:"\\[Deprecated in ARIA 1.1\\] Indicates what functions can be performed when a dragged object is released on the drop target."}},{name:"aria-errormessage",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage"}],description:{kind:"markdown",value:"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides an error message for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-invalid`](https://www.w3.org/TR/wai-aria-1.1/#aria-invalid) and [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby)."}},{name:"aria-expanded",valueSet:"u",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-expanded"}],description:{kind:"markdown",value:"Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed."}},{name:"aria-flowto",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-flowto"}],description:{kind:"markdown",value:"Identifies the next [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in an alternate reading order of content which, at the user's discretion, allows assistive technology to override the general default of reading in document source order."}},{name:"aria-grabbed",valueSet:"u",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-grabbed"}],description:{kind:"markdown",value:'\\[Deprecated in ARIA 1.1\\] Indicates an element\'s "grabbed" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) in a drag-and-drop operation.'}},{name:"aria-haspopup",valueSet:"haspopup",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup"}],description:{kind:"markdown",value:"Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element)."}},{name:"aria-hidden",valueSet:"b",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-hidden"}],description:{kind:"markdown",value:"Indicates whether the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is exposed to an accessibility API. See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled)."}},{name:"aria-invalid",valueSet:"invalid",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-invalid"}],description:{kind:"markdown",value:"Indicates the entered value does not conform to the format expected by the application. See related [`aria-errormessage`](https://www.w3.org/TR/wai-aria-1.1/#aria-errormessage)."}},{name:"aria-kbdshortcuts",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-kbdshortcuts"}]},{name:"aria-label",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-label"}],description:{kind:"markdown",value:"Defines a string value that labels the current element. See related [`aria-labelledby`](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby)."}},{name:"aria-labelledby",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby"}],description:{kind:"markdown",value:"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) that labels the current element. See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby)."}},{name:"aria-level",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-level"}],description:{kind:"markdown",value:"Defines the hierarchical level of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) within a structure."}},{name:"aria-live",valueSet:"live",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-live"}],description:{kind:"markdown",value:"Indicates that an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) will be updated, and describes the types of updates the [user agents](https://www.w3.org/TR/wai-aria-1.1/#dfn-user-agent), [assistive technologies](https://www.w3.org/TR/wai-aria-1.1/#dfn-assistive-technology), and user can expect from the [live region](https://www.w3.org/TR/wai-aria-1.1/#dfn-live-region)."}},{name:"aria-modal",valueSet:"b",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-modal"}],description:{kind:"markdown",value:"Indicates whether an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is modal when displayed."}},{name:"aria-multiline",valueSet:"b",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-multiline"}],description:{kind:"markdown",value:"Indicates whether a text box accepts multiple lines of input or only a single line."}},{name:"aria-multiselectable",valueSet:"b",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-multiselectable"}],description:{kind:"markdown",value:"Indicates that the user may select more than one item from the current selectable descendants."}},{name:"aria-orientation",valueSet:"orientation",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-orientation"}],description:{kind:"markdown",value:"Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous."}},{name:"aria-owns",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-owns"}],description:{kind:"markdown",value:"Identifies an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) (or elements) in order to define a visual, functional, or contextual parent/child [relationship](https://www.w3.org/TR/wai-aria-1.1/#dfn-relationship) between DOM elements where the DOM hierarchy cannot be used to represent the relationship. See related [`aria-controls`](https://www.w3.org/TR/wai-aria-1.1/#aria-controls)."}},{name:"aria-placeholder",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-placeholder"}],description:{kind:"markdown",value:"Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. A hint could be a sample value or a brief description of the expected format."}},{name:"aria-posinset",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-posinset"}],description:{kind:"markdown",value:"Defines an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element)'s number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-setsize`](https://www.w3.org/TR/wai-aria-1.1/#aria-setsize)."}},{name:"aria-pressed",valueSet:"tristate",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-pressed"}],description:{kind:"markdown",value:'Indicates the current "pressed" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of toggle buttons. See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-selected`](https://www.w3.org/TR/wai-aria-1.1/#aria-selected).'}},{name:"aria-readonly",valueSet:"b",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-readonly"}],description:{kind:"markdown",value:"Indicates that the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) is not editable, but is otherwise [operable](https://www.w3.org/TR/wai-aria-1.1/#dfn-operable). See related [`aria-disabled`](https://www.w3.org/TR/wai-aria-1.1/#aria-disabled)."}},{name:"aria-relevant",valueSet:"relevant",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-relevant"}],description:{kind:"markdown",value:"Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. See related [`aria-atomic`](https://www.w3.org/TR/wai-aria-1.1/#aria-atomic)."}},{name:"aria-required",valueSet:"b",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-required"}],description:{kind:"markdown",value:"Indicates that user input is required on the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) before a form may be submitted."}},{name:"aria-roledescription",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-roledescription"}],description:{kind:"markdown",value:"Defines a human-readable, author-localized description for the [role](https://www.w3.org/TR/wai-aria-1.1/#dfn-role) of an [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element)."}},{name:"aria-rowcount",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount"}],description:{kind:"markdown",value:"Defines the total number of rows in a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex)."}},{name:"aria-rowindex",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex"}],description:{kind:"markdown",value:"Defines an [element's](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) row index or position with respect to the total number of rows within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowcount`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowcount) and [`aria-rowspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan)."}},{name:"aria-rowspan",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-rowspan"}],description:{kind:"markdown",value:"Defines the number of rows spanned by a cell or gridcell within a [`table`](https://www.w3.org/TR/wai-aria-1.1/#table), [`grid`](https://www.w3.org/TR/wai-aria-1.1/#grid), or [`treegrid`](https://www.w3.org/TR/wai-aria-1.1/#treegrid). See related [`aria-rowindex`](https://www.w3.org/TR/wai-aria-1.1/#aria-rowindex) and [`aria-colspan`](https://www.w3.org/TR/wai-aria-1.1/#aria-colspan)."}},{name:"aria-selected",valueSet:"u",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-selected"}],description:{kind:"markdown",value:'Indicates the current "selected" [state](https://www.w3.org/TR/wai-aria-1.1/#dfn-state) of various [widgets](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-checked`](https://www.w3.org/TR/wai-aria-1.1/#aria-checked) and [`aria-pressed`](https://www.w3.org/TR/wai-aria-1.1/#aria-pressed).'}},{name:"aria-setsize",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-setsize"}],description:{kind:"markdown",value:"Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. See related [`aria-posinset`](https://www.w3.org/TR/wai-aria-1.1/#aria-posinset)."}},{name:"aria-sort",valueSet:"sort",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-sort"}],description:{kind:"markdown",value:"Indicates if items in a table or grid are sorted in ascending or descending order."}},{name:"aria-valuemax",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-valuemax"}],description:{kind:"markdown",value:"Defines the maximum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget)."}},{name:"aria-valuemin",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-valuemin"}],description:{kind:"markdown",value:"Defines the minimum allowed value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget)."}},{name:"aria-valuenow",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow"}],description:{kind:"markdown",value:"Defines the current value for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget). See related [`aria-valuetext`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext)."}},{name:"aria-valuetext",references:[{name:"WAI-ARIA Reference",url:"https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext"}],description:{kind:"markdown",value:"Defines the human readable text alternative of [`aria-valuenow`](https://www.w3.org/TR/wai-aria-1.1/#aria-valuenow) for a range [widget](https://www.w3.org/TR/wai-aria-1.1/#dfn-widget)."}},{name:"aria-details",description:{kind:"markdown",value:"Identifies the [element](https://www.w3.org/TR/wai-aria-1.1/#dfn-element) that provides a detailed, extended description for the [object](https://www.w3.org/TR/wai-aria-1.1/#dfn-object). See related [`aria-describedby`](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby)."}},{name:"aria-keyshortcuts",description:{kind:"markdown",value:"Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element."}}],valueSets:[{name:"b",values:[{name:"true"},{name:"false"}]},{name:"u",values:[{name:"true"},{name:"false"},{name:"undefined"}]},{name:"o",values:[{name:"on"},{name:"off"}]},{name:"y",values:[{name:"yes"},{name:"no"}]},{name:"w",values:[{name:"soft"},{name:"hard"}]},{name:"d",values:[{name:"ltr"},{name:"rtl"},{name:"auto"}]},{name:"m",values:[{name:"GET",description:{kind:"markdown",value:"Corresponds to the HTTP [GET method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3); form data are appended to the `action` attribute URI with a '?' as separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters."}},{name:"POST",description:{kind:"markdown",value:"Corresponds to the HTTP [POST method](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5); form data are included in the body of the form and sent to the server."}},{name:"dialog",description:{kind:"markdown",value:"Use when the form is inside a [`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog) element to close the dialog when submitted."}}]},{name:"fm",values:[{name:"GET"},{name:"POST"}]},{name:"s",values:[{name:"row"},{name:"col"},{name:"rowgroup"},{name:"colgroup"}]},{name:"t",values:[{name:"hidden"},{name:"text"},{name:"search"},{name:"tel"},{name:"url"},{name:"email"},{name:"password"},{name:"datetime"},{name:"date"},{name:"month"},{name:"week"},{name:"time"},{name:"datetime-local"},{name:"number"},{name:"range"},{name:"color"},{name:"checkbox"},{name:"radio"},{name:"file"},{name:"submit"},{name:"image"},{name:"reset"},{name:"button"}]},{name:"im",values:[{name:"verbatim"},{name:"latin"},{name:"latin-name"},{name:"latin-prose"},{name:"full-width-latin"},{name:"kana"},{name:"kana-name"},{name:"katakana"},{name:"numeric"},{name:"tel"},{name:"email"},{name:"url"}]},{name:"bt",values:[{name:"button"},{name:"submit"},{name:"reset"},{name:"menu"}]},{name:"lt",values:[{name:"1"},{name:"a"},{name:"A"},{name:"i"},{name:"I"}]},{name:"mt",values:[{name:"context"},{name:"toolbar"}]},{name:"mit",values:[{name:"command"},{name:"checkbox"},{name:"radio"}]},{name:"et",values:[{name:"application/x-www-form-urlencoded"},{name:"multipart/form-data"},{name:"text/plain"}]},{name:"tk",values:[{name:"subtitles"},{name:"captions"},{name:"descriptions"},{name:"chapters"},{name:"metadata"}]},{name:"pl",values:[{name:"none"},{name:"metadata"},{name:"auto"}]},{name:"sh",values:[{name:"circle"},{name:"default"},{name:"poly"},{name:"rect"}]},{name:"xo",values:[{name:"anonymous"},{name:"use-credentials"}]},{name:"sb",values:[{name:"allow-forms"},{name:"allow-modals"},{name:"allow-pointer-lock"},{name:"allow-popups"},{name:"allow-popups-to-escape-sandbox"},{name:"allow-same-origin"},{name:"allow-scripts"},{name:"allow-top-navigation"}]},{name:"tristate",values:[{name:"true"},{name:"false"},{name:"mixed"},{name:"undefined"}]},{name:"inputautocomplete",values:[{name:"additional-name"},{name:"address-level1"},{name:"address-level2"},{name:"address-level3"},{name:"address-level4"},{name:"address-line1"},{name:"address-line2"},{name:"address-line3"},{name:"bday"},{name:"bday-year"},{name:"bday-day"},{name:"bday-month"},{name:"billing"},{name:"cc-additional-name"},{name:"cc-csc"},{name:"cc-exp"},{name:"cc-exp-month"},{name:"cc-exp-year"},{name:"cc-family-name"},{name:"cc-given-name"},{name:"cc-name"},{name:"cc-number"},{name:"cc-type"},{name:"country"},{name:"country-name"},{name:"current-password"},{name:"email"},{name:"family-name"},{name:"fax"},{name:"given-name"},{name:"home"},{name:"honorific-prefix"},{name:"honorific-suffix"},{name:"impp"},{name:"language"},{name:"mobile"},{name:"name"},{name:"new-password"},{name:"nickname"},{name:"organization"},{name:"organization-title"},{name:"pager"},{name:"photo"},{name:"postal-code"},{name:"sex"},{name:"shipping"},{name:"street-address"},{name:"tel-area-code"},{name:"tel"},{name:"tel-country-code"},{name:"tel-extension"},{name:"tel-local"},{name:"tel-local-prefix"},{name:"tel-local-suffix"},{name:"tel-national"},{name:"transaction-amount"},{name:"transaction-currency"},{name:"url"},{name:"username"},{name:"work"}]},{name:"autocomplete",values:[{name:"inline"},{name:"list"},{name:"both"},{name:"none"}]},{name:"current",values:[{name:"page"},{name:"step"},{name:"location"},{name:"date"},{name:"time"},{name:"true"},{name:"false"}]},{name:"dropeffect",values:[{name:"copy"},{name:"move"},{name:"link"},{name:"execute"},{name:"popup"},{name:"none"}]},{name:"invalid",values:[{name:"grammar"},{name:"false"},{name:"spelling"},{name:"true"}]},{name:"live",values:[{name:"off"},{name:"polite"},{name:"assertive"}]},{name:"orientation",values:[{name:"vertical"},{name:"horizontal"},{name:"undefined"}]},{name:"relevant",values:[{name:"additions"},{name:"removals"},{name:"text"},{name:"all"},{name:"additions text"}]},{name:"sort",values:[{name:"ascending"},{name:"descending"},{name:"none"},{name:"other"}]},{name:"roles",values:[{name:"alert"},{name:"alertdialog"},{name:"button"},{name:"checkbox"},{name:"dialog"},{name:"gridcell"},{name:"link"},{name:"log"},{name:"marquee"},{name:"menuitem"},{name:"menuitemcheckbox"},{name:"menuitemradio"},{name:"option"},{name:"progressbar"},{name:"radio"},{name:"scrollbar"},{name:"searchbox"},{name:"slider"},{name:"spinbutton"},{name:"status"},{name:"switch"},{name:"tab"},{name:"tabpanel"},{name:"textbox"},{name:"timer"},{name:"tooltip"},{name:"treeitem"},{name:"combobox"},{name:"grid"},{name:"listbox"},{name:"menu"},{name:"menubar"},{name:"radiogroup"},{name:"tablist"},{name:"tree"},{name:"treegrid"},{name:"application"},{name:"article"},{name:"cell"},{name:"columnheader"},{name:"definition"},{name:"directory"},{name:"document"},{name:"feed"},{name:"figure"},{name:"group"},{name:"heading"},{name:"img"},{name:"list"},{name:"listitem"},{name:"math"},{name:"none"},{name:"note"},{name:"presentation"},{name:"region"},{name:"row"},{name:"rowgroup"},{name:"rowheader"},{name:"separator"},{name:"table"},{name:"term"},{name:"text"},{name:"toolbar"},{name:"banner"},{name:"complementary"},{name:"contentinfo"},{name:"form"},{name:"main"},{name:"navigation"},{name:"region"},{name:"search"},{name:"doc-abstract"},{name:"doc-acknowledgments"},{name:"doc-afterword"},{name:"doc-appendix"},{name:"doc-backlink"},{name:"doc-biblioentry"},{name:"doc-bibliography"},{name:"doc-biblioref"},{name:"doc-chapter"},{name:"doc-colophon"},{name:"doc-conclusion"},{name:"doc-cover"},{name:"doc-credit"},{name:"doc-credits"},{name:"doc-dedication"},{name:"doc-endnote"},{name:"doc-endnotes"},{name:"doc-epigraph"},{name:"doc-epilogue"},{name:"doc-errata"},{name:"doc-example"},{name:"doc-footnote"},{name:"doc-foreword"},{name:"doc-glossary"},{name:"doc-glossref"},{name:"doc-index"},{name:"doc-introduction"},{name:"doc-noteref"},{name:"doc-notice"},{name:"doc-pagebreak"},{name:"doc-pagelist"},{name:"doc-part"},{name:"doc-preface"},{name:"doc-prologue"},{name:"doc-pullquote"},{name:"doc-qna"},{name:"doc-subtitle"},{name:"doc-tip"},{name:"doc-toc"}]},{name:"metanames",values:[{name:"application-name"},{name:"author"},{name:"description"},{name:"format-detection"},{name:"generator"},{name:"keywords"},{name:"publisher"},{name:"referrer"},{name:"robots"},{name:"theme-color"},{name:"viewport"}]},{name:"haspopup",values:[{name:"false",description:{kind:"markdown",value:"(default) Indicates the element does not have a popup."}},{name:"true",description:{kind:"markdown",value:"Indicates the popup is a menu."}},{name:"menu",description:{kind:"markdown",value:"Indicates the popup is a menu."}},{name:"listbox",description:{kind:"markdown",value:"Indicates the popup is a listbox."}},{name:"tree",description:{kind:"markdown",value:"Indicates the popup is a tree."}},{name:"grid",description:{kind:"markdown",value:"Indicates the popup is a grid."}},{name:"dialog",description:{kind:"markdown",value:"Indicates the popup is a dialog."}}]}]};!function(){function e(e){this.dataProviders=[],this.setDataProviders(!1!==e.useDefaultDataProvider,e.customDataProviders||[])}e.prototype.setDataProviders=function(e,t){var n;this.dataProviders=[],e&&this.dataProviders.push(new tt("html5",_t)),(n=this.dataProviders).push.apply(n,t)},e.prototype.getDataProviders=function(){return this.dataProviders}}();var wt=function(){function e(e,t,n){var i=this;this._languageId=e,this._worker=t,this._disposables=[],this._listener=Object.create(null);var r=function(e){var t,n=e.getModeId();n===i._languageId&&(i._listener[e.uri.toString()]=e.onDidChangeContent((function(){clearTimeout(t),t=setTimeout((function(){return i._doValidate(e.uri,n)}),500)})),i._doValidate(e.uri,n))},a=function(e){A.j6.setModelMarkers(e,i._languageId,[]);var t=e.uri.toString(),n=i._listener[t];n&&(n.dispose(),delete i._listener[t])};this._disposables.push(A.j6.onDidCreateModel(r)),this._disposables.push(A.j6.onWillDisposeModel((function(e){a(e)}))),this._disposables.push(A.j6.onDidChangeModelLanguage((function(e){a(e.model),r(e.model)}))),this._disposables.push(n.onDidChange((function(e){A.j6.getModels().forEach((function(e){e.getModeId()===i._languageId&&(a(e),r(e))}))}))),this._disposables.push({dispose:function(){for(var e in i._listener)i._listener[e].dispose()}}),A.j6.getModels().forEach(r)}return e.prototype.dispose=function(){this._disposables.forEach((function(e){return e&&e.dispose()})),this._disposables=[]},e.prototype._doValidate=function(e,t){this._worker(e).then((function(n){return n.doValidation(e.toString()).then((function(n){var i=n.map((function(e){return function(e,t){var n="number"===typeof t.code?String(t.code):t.code;return{severity:vt(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source}}(0,e)})),r=A.j6.getModel(e);r&&r.getModeId()===t&&A.j6.setModelMarkers(r,t,i)}))})).then(void 0,(function(e){console.error(e)}))},e}();function vt(e){switch(e){case f.Error:return A.ZL.Error;case f.Warning:return A.ZL.Warning;case f.Information:return A.ZL.Info;case f.Hint:return A.ZL.Hint;default:return A.ZL.Info}}function yt(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function Tt(e){if(e)return new A.e6(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function kt(e){var t=A.Mj.CompletionItemKind;switch(e){case O.Text:return t.Text;case O.Method:return t.Method;case O.Function:return t.Function;case O.Constructor:return t.Constructor;case O.Field:return t.Field;case O.Variable:return t.Variable;case O.Class:return t.Class;case O.Interface:return t.Interface;case O.Module:return t.Module;case O.Property:return t.Property;case O.Unit:return t.Unit;case O.Value:return t.Value;case O.Enum:return t.Enum;case O.Keyword:return t.Keyword;case O.Snippet:return t.Snippet;case O.Color:return t.Color;case O.File:return t.File;case O.Reference:return t.Reference}return t.Property}function St(e){if(e)return{range:Tt(e.range),text:e.newText}}var xt=function(){function e(e){this._worker=e}return Object.defineProperty(e.prototype,"triggerCharacters",{get:function(){return[".",":","<",'"',"=","/"]},enumerable:!1,configurable:!0}),e.prototype.provideCompletionItems=function(e,t,n,i){var r=e.uri;return this._worker(r).then((function(e){return e.doComplete(r.toString(),yt(t))})).then((function(n){if(n){var i=e.getWordUntilPosition(t),r=new A.e6(t.lineNumber,i.startColumn,t.lineNumber,i.endColumn),a=n.items.map((function(e){var t,n={label:e.label,insertText:e.insertText||e.label,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,range:r,kind:kt(e.kind)};return e.textEdit&&("undefined"!==typeof(t=e.textEdit).insert&&"undefined"!==typeof t.replace?n.range={insert:Tt(e.textEdit.insert),replace:Tt(e.textEdit.replace)}:n.range=Tt(e.textEdit.range),n.insertText=e.textEdit.newText),e.additionalTextEdits&&(n.additionalTextEdits=e.additionalTextEdits.map(St)),e.insertTextFormat===N.Snippet&&(n.insertTextRules=A.Mj.CompletionItemInsertTextRule.InsertAsSnippet),n}));return{isIncomplete:n.isIncomplete,suggestions:a}}}))},e}();function Mt(e){return"string"===typeof e?{value:e}:(t=e)&&"object"===typeof t&&"string"===typeof t.kind?"plaintext"===e.kind?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:e.value}:{value:"```"+e.language+"\n"+e.value+"\n```\n"};var t}function Lt(e){if(e)return Array.isArray(e)?e.map(Mt):[Mt(e)]}var Et=function(){function e(e){this._worker=e}return e.prototype.provideHover=function(e,t,n){var i=e.uri;return this._worker(i).then((function(e){return e.doHover(i.toString(),yt(t))})).then((function(e){if(e)return{range:Tt(e.range),contents:Lt(e.contents)}}))},e}();function At(e){var t=A.Mj.DocumentHighlightKind;switch(e){case Y.Read:return t.Read;case Y.Write:return t.Write;case Y.Text:return t.Text}return t.Text}var Rt=function(){function e(e){this._worker=e}return e.prototype.provideDocumentHighlights=function(e,t,n){var i=e.uri;return this._worker(i).then((function(e){return e.findDocumentHighlights(i.toString(),yt(t))})).then((function(e){if(e)return e.map((function(e){return{range:Tt(e.range),kind:At(e.kind)}}))}))},e}();function zt(e){var t=A.Mj.SymbolKind;switch(e){case Z.File:return t.Array;case Z.Module:return t.Module;case Z.Namespace:return t.Namespace;case Z.Package:return t.Package;case Z.Class:return t.Class;case Z.Method:return t.Method;case Z.Property:return t.Property;case Z.Field:return t.Field;case Z.Constructor:return t.Constructor;case Z.Enum:return t.Enum;case Z.Interface:return t.Interface;case Z.Function:return t.Function;case Z.Variable:return t.Variable;case Z.Constant:return t.Constant;case Z.String:return t.String;case Z.Number:return t.Number;case Z.Boolean:return t.Boolean;case Z.Array:return t.Array}return t.Function}var It=function(){function e(e){this._worker=e}return e.prototype.provideDocumentSymbols=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentSymbols(n.toString())})).then((function(e){if(e)return e.map((function(e){return{name:e.name,detail:"",containerName:e.containerName,kind:zt(e.kind),tags:[],range:Tt(e.location.range),selectionRange:Tt(e.location.range)}}))}))},e}(),Ct=function(){function e(e){this._worker=e}return e.prototype.provideLinks=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentLinks(n.toString())})).then((function(e){if(e)return{links:e.map((function(e){return{range:Tt(e.range),url:e.target}}))}}))},e}();function Ht(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var Ut=function(){function e(e){this._worker=e}return e.prototype.provideDocumentFormattingEdits=function(e,t,n){var i=e.uri;return this._worker(i).then((function(e){return e.format(i.toString(),null,Ht(t)).then((function(e){if(e&&0!==e.length)return e.map(St)}))}))},e}(),Wt=function(){function e(e){this._worker=e}return e.prototype.provideDocumentRangeFormattingEdits=function(e,t,n,i){var r=e.uri;return this._worker(r).then((function(e){return e.format(r.toString(),function(e){if(e)return{start:yt(e.getStartPosition()),end:yt(e.getEndPosition())}}(t),Ht(n)).then((function(e){if(e&&0!==e.length)return e.map(St)}))}))},e}(),Dt=function(){function e(e){this._worker=e}return e.prototype.provideRenameEdits=function(e,t,n,i){var r=e.uri;return this._worker(r).then((function(e){return e.doRename(r.toString(),yt(t),n)})).then((function(e){return function(e){if(!e||!e.changes)return;var t=[];for(var n in e.changes)for(var i=A.Sf.parse(n),r=0,a=e.changes[n];r<a.length;r++){var o=a[r];t.push({resource:i,edit:{range:Tt(o.range),text:o.newText}})}return{edits:t}}(e)}))},e}();var Pt=function(){function e(e){this._worker=e}return e.prototype.provideFoldingRanges=function(e,t,n){var i=e.uri;return this._worker(i).then((function(e){return e.getFoldingRanges(i.toString(),t)})).then((function(e){if(e)return e.map((function(e){var t={start:e.startLine+1,end:e.endLine+1};return"undefined"!==typeof e.kind&&(t.kind=function(e){switch(e){case u.Comment:return A.Mj.FoldingRangeKind.Comment;case u.Imports:return A.Mj.FoldingRangeKind.Imports;case u.Region:return A.Mj.FoldingRangeKind.Region}}(e.kind)),t}))}))},e}();var Ot=function(){function e(e){this._worker=e}return e.prototype.provideSelectionRanges=function(e,t,n){var i=e.uri;return this._worker(i).then((function(e){return e.getSelectionRanges(i.toString(),t.map(yt))})).then((function(e){if(e)return e.map((function(e){for(var t=[];e;)t.push({range:Tt(e.range)}),e=e.parent;return t}))}))},e}();function Nt(e){var t=new R(e),n=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return t.getLanguageServiceWorker.apply(t,e)},i=e.languageId;A.Mj.registerCompletionItemProvider(i,new xt(n)),A.Mj.registerHoverProvider(i,new Et(n)),A.Mj.registerDocumentHighlightProvider(i,new Rt(n)),A.Mj.registerLinkProvider(i,new Ct(n)),A.Mj.registerFoldingRangeProvider(i,new Pt(n)),A.Mj.registerDocumentSymbolProvider(i,new It(n)),A.Mj.registerSelectionRangeProvider(i,new Ot(n)),A.Mj.registerRenameProvider(i,new Dt(n)),"html"===i&&(A.Mj.registerDocumentFormattingEditProvider(i,new Ut(n)),A.Mj.registerDocumentRangeFormattingEditProvider(i,new Wt(n)),new wt(i,n,e))}function qt(e){var t=[],n=[],i=new R(e);t.push(i);var r=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return i.getLanguageServiceWorker.apply(i,e)};return function(){var t=e.languageId,i=e.modeConfiguration;Ft(n),i.completionItems&&n.push(A.Mj.registerCompletionItemProvider(t,new xt(r))),i.hovers&&n.push(A.Mj.registerHoverProvider(t,new Et(r))),i.documentHighlights&&n.push(A.Mj.registerDocumentHighlightProvider(t,new Rt(r))),i.links&&n.push(A.Mj.registerLinkProvider(t,new Ct(r))),i.documentSymbols&&n.push(A.Mj.registerDocumentSymbolProvider(t,new It(r))),i.rename&&n.push(A.Mj.registerRenameProvider(t,new Dt(r))),i.foldingRanges&&n.push(A.Mj.registerFoldingRangeProvider(t,new Pt(r))),i.selectionRanges&&n.push(A.Mj.registerSelectionRangeProvider(t,new Ot(r))),i.documentFormattingEdits&&n.push(A.Mj.registerDocumentFormattingEditProvider(t,new Ut(r))),i.documentRangeFormattingEdits&&n.push(A.Mj.registerDocumentRangeFormattingEditProvider(t,new Wt(r))),i.diagnostics&&n.push(new wt(t,r,e))}(),t.push(jt(n)),jt(t)}function jt(e){return{dispose:function(){return Ft(e)}}}function Ft(e){for(;e.length;)e.pop().dispose()}}}]); -//# sourceMappingURL=254.a91c0bf4.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2553.5faabf5a.chunk.js b/ydb/core/viewer/monitoring/static/js/2553.5faabf5a.chunk.js new file mode 100644 index 000000000000..4eedc5b7fd60 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2553.5faabf5a.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 2553.5faabf5a.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2553],{12553:(t,e,i)=>{i.r(e),i.d(e,{conf:()=>m,language:()=>r});var m={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{#","#}"]},brackets:[["{#","#}"],["{%","%}"],["{{","}}"],["(",")"],["[","]"],["\x3c!--","--\x3e"],["<",">"]],autoClosingPairs:[{open:"{# ",close:" #}"},{open:"{% ",close:" %}"},{open:"{{ ",close:" }}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}]},r={defaultToken:"",tokenPostfix:"",ignoreCase:!0,keywords:["apply","autoescape","block","deprecated","do","embed","extends","flush","for","from","if","import","include","macro","sandbox","set","use","verbatim","with","endapply","endautoescape","endblock","endembed","endfor","endif","endmacro","endsandbox","endset","endwith","true","false"],tokenizer:{root:[[/\s+/],[/{#/,"comment.twig","@commentState"],[/{%[-~]?/,"delimiter.twig","@blockState"],[/{{[-~]?/,"delimiter.twig","@variableState"],[/<!DOCTYPE/,"metatag.html","@doctype"],[/<!--/,"comment.html","@comment"],[/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/,["delimiter.html","tag.html","","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/</,"delimiter.html"],[/[^<{]+/]],commentState:[[/#}/,"comment.twig","@pop"],[/./,"comment.twig"]],blockState:[[/[-~]?%}/,"delimiter.twig","@pop"],[/\s+/],[/(verbatim)(\s*)([-~]?%})/,["keyword.twig","",{token:"delimiter.twig",next:"@rawDataState"}]],{include:"expression"}],rawDataState:[[/({%[-~]?)(\s*)(endverbatim)(\s*)([-~]?%})/,["delimiter.twig","","keyword.twig","",{token:"delimiter.twig",next:"@popall"}]],[/./,"string.twig"]],variableState:[[/[-~]?}}/,"delimiter.twig","@pop"],{include:"expression"}],stringState:[[/"/,"string.twig","@pop"],[/#{\s*/,"string.twig","@interpolationState"],[/[^#"\\]*(?:(?:\\.|#(?!\{))[^#"\\]*)*/,"string.twig"]],interpolationState:[[/}/,"string.twig","@pop"],{include:"expression"}],expression:[[/\s+/],[/\+|-|\/{1,2}|%|\*{1,2}/,"operators.twig"],[/(and|or|not|b-and|b-xor|b-or)(\s+)/,["operators.twig",""]],[/==|!=|<|>|>=|<=/,"operators.twig"],[/(starts with|ends with|matches)(\s+)/,["operators.twig",""]],[/(in)(\s+)/,["operators.twig",""]],[/(is)(\s+)/,["operators.twig",""]],[/\||~|:|\.{1,2}|\?{1,2}/,"operators.twig"],[/[^\W\d][\w]*/,{cases:{"@keywords":"keyword.twig","@default":"variable.twig"}}],[/\d+(\.\d+)?/,"number.twig"],[/\(|\)|\[|\]|{|}|,/,"delimiter.twig"],[/"([^#"\\]*(?:\\.[^#"\\]*)*)"|\'([^\'\\]*(?:\\.[^\'\\]*)*)\'/,"string.twig"],[/"/,"string.twig","@stringState"],[/=>/,"operators.twig"],[/=/,"operators.twig"]],doctype:[[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name.html","@scriptAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter.html","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name.html","@styleAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter.html","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2553.5faabf5a.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/2553.5faabf5a.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2553.5faabf5a.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/2590.75b6626e.chunk.js b/ydb/core/viewer/monitoring/static/js/2590.75b6626e.chunk.js new file mode 100644 index 000000000000..6fe44682d682 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2590.75b6626e.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2590],{92590:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2620.8e5c52fb.chunk.js b/ydb/core/viewer/monitoring/static/js/2620.8e5c52fb.chunk.js new file mode 100644 index 000000000000..53f3f318355e --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2620.8e5c52fb.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2620],{12620:function(e,_,a){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=_(e),t={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 _=["th","st","nd","rd"],a=e%100;return"["+e+(_[(a-20)%10]||_[a]||_[0])+"]"}};return a.default.locale(t,null,!0),t}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2677.3d7ea3fc.chunk.js b/ydb/core/viewer/monitoring/static/js/2677.3d7ea3fc.chunk.js new file mode 100644 index 000000000000..6987bb821553 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2677.3d7ea3fc.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2677],{92677:function(_,e,Y){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var Y=e(_),d={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(_){return _+"\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(_){return _<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 Y.default.locale(d,null,!0),d}(Y(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2701.86912840.chunk.js b/ydb/core/viewer/monitoring/static/js/2701.86912840.chunk.js new file mode 100644 index 000000000000..a0ebbe56a38b --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2701.86912840.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2701],{32701:function(e,_,n){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=_(e),t={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(t,null,!0),t}(n(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2799.64ec0194.chunk.js b/ydb/core/viewer/monitoring/static/js/2799.64ec0194.chunk.js deleted file mode 100644 index 46d2403607df..000000000000 --- a/ydb/core/viewer/monitoring/static/js/2799.64ec0194.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2799],{12799:function(e,n,t){t.r(n),t.d(n,{conf:function(){return o},language:function(){return s}});var o={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`"},{open:'"',close:'"'},{open:"'",close:"'"}]},s={defaultToken:"",tokenPostfix:".go",keywords:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var","bool","true","false","uint8","uint16","uint32","uint64","int8","int16","int32","int64","float32","float64","complex64","complex128","byte","rune","uint","int","uintptr","string","nil"],operators:["+","-","*","/","%","&","|","^","<<",">>","&^","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=","&^=","&&","||","<-","++","--","==","<",">","=","!","!=","<=",">=",":=","...","(",")","","]","{","}",",",";",".",":"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/\[\[.*\]\]/,"annotation"],[/^\s*#\w+/,"keyword"],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex"],[/0[0-7']*[0-7]/,"number.octal"],[/0[bB][0-1']*[0-1]/,"number.binary"],[/\d[\d']*/,"number"],[/\d/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/`/,"string","@rawstring"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],rawstring:[[/[^\`]/,"string"],[/`/,"string","@pop"]]}}}}]); -//# sourceMappingURL=2799.64ec0194.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2840.b69eb597.chunk.js b/ydb/core/viewer/monitoring/static/js/2840.b69eb597.chunk.js new file mode 100644 index 000000000000..48da03e8f158 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2840.b69eb597.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 2840.b69eb597.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2840],{2840:(e,n,s)=>{s.r(n),s.d(n,{conf:()=>i,language:()=>o});var i={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},o={defaultToken:"",tokenPostfix:".ini",escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\[[^\]]*\]/,"metatag"],[/(^\w+)(\s*)(\=)/,["key","","delimiter"]],{include:"@whitespace"},[/\d+/,"number"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/^\s*[#;].*$/,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2840.b69eb597.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/2840.b69eb597.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2840.b69eb597.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/2862.29a56bf7.chunk.js b/ydb/core/viewer/monitoring/static/js/2862.29a56bf7.chunk.js deleted file mode 100644 index 4edd789e1c01..000000000000 --- a/ydb/core/viewer/monitoring/static/js/2862.29a56bf7.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2862],{12862:function(t,e,i){i.r(e),i.d(e,{conf:function(){return r},language:function(){return m}});var r={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{#","#}"]},brackets:[["{#","#}"],["{%","%}"],["{{","}}"],["(",")"],["[","]"],["\x3c!--","--\x3e"],["<",">"]],autoClosingPairs:[{open:"{# ",close:" #}"},{open:"{% ",close:" %}"},{open:"{{ ",close:" }}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}]},m={defaultToken:"",tokenPostfix:"",ignoreCase:!0,keywords:["apply","autoescape","block","deprecated","do","embed","extends","flush","for","from","if","import","include","macro","sandbox","set","use","verbatim","with","endapply","endautoescape","endblock","endembed","endfor","endif","endmacro","endsandbox","endset","endwith","true","false"],tokenizer:{root:[[/\s+/],[/{#/,"comment.twig","@commentState"],[/{%[-~]?/,"delimiter.twig","@blockState"],[/{{[-~]?/,"delimiter.twig","@variableState"],[/<!DOCTYPE/,"metatag.html","@doctype"],[/<!--/,"comment.html","@comment"],[/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/,["delimiter.html","tag.html","","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/</,"delimiter.html"],[/[^<]+/]],commentState:[[/#}/,"comment.twig","@pop"],[/./,"comment.twig"]],blockState:[[/[-~]?%}/,"delimiter.twig","@pop"],[/\s+/],[/(verbatim)(\s*)([-~]?%})/,["keyword.twig","",{token:"delimiter.twig",next:"@rawDataState"}]],{include:"expression"}],rawDataState:[[/({%[-~]?)(\s*)(endverbatim)(\s*)([-~]?%})/,["delimiter.twig","","keyword.twig","",{token:"delimiter.twig",next:"@popall"}]],[/./,"string.twig"]],variableState:[[/[-~]?}}/,"delimiter.twig","@pop"],{include:"expression"}],stringState:[[/"/,"string.twig","@pop"],[/#{\s*/,"string.twig","@interpolationState"],[/[^#"\\]*(?:(?:\\.|#(?!\{))[^#"\\]*)*/,"string.twig"]],interpolationState:[[/}/,"string.twig","@pop"],{include:"expression"}],expression:[[/\s+/],[/\+|-|\/{1,2}|%|\*{1,2}/,"operators.twig"],[/(and|or|not|b-and|b-xor|b-or)(\s+)/,["operators.twig",""]],[/==|!=|<|>|>=|<=/,"operators.twig"],[/(starts with|ends with|matches)(\s+)/,["operators.twig",""]],[/(in)(\s+)/,["operators.twig",""]],[/(is)(\s+)/,["operators.twig",""]],[/\||~|:|\.{1,2}|\?{1,2}/,"operators.twig"],[/[^\W\d][\w]*/,{cases:{"@keywords":"keyword.twig","@default":"variable.twig"}}],[/\d+(\.\d+)?/,"number.twig"],[/\(|\)|\[|\]|{|}|,/,"delimiter.twig"],[/"([^#"\\]*(?:\\.[^#"\\]*)*)"|\'([^\'\\]*(?:\\.[^\'\\]*)*)\'/,"string.twig"],[/"/,"string.twig","@stringState"],[/=>/,"operators.twig"],[/=/,"operators.twig"]],doctype:[[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name.html","@scriptAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter.html","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name.html","@styleAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter.html","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}}}}]); -//# sourceMappingURL=2862.29a56bf7.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2876.afe7e47f.chunk.js b/ydb/core/viewer/monitoring/static/js/2876.afe7e47f.chunk.js new file mode 100644 index 000000000000..a652561dfa67 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2876.afe7e47f.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 2876.afe7e47f.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2876],{12876:(e,n,i)=>{i.r(n),i.d(n,{conf:()=>t,language:()=>r});var t={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["begin","end"],["case","endcase"],["casex","endcase"],["casez","endcase"],["checker","endchecker"],["class","endclass"],["clocking","endclocking"],["config","endconfig"],["function","endfunction"],["generate","endgenerate"],["group","endgroup"],["interface","endinterface"],["module","endmodule"],["package","endpackage"],["primitive","endprimitive"],["program","endprogram"],["property","endproperty"],["specify","endspecify"],["sequence","endsequence"],["table","endtable"],["task","endtask"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!1,markers:{start:new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:begin|case(x|z)?|class|clocking|config|covergroup|function|generate|interface|module|package|primitive|property|program|sequence|specify|table|task)\\b"),end:new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:end|endcase|endclass|endclocking|endconfig|endgroup|endfunction|endgenerate|endinterface|endmodule|endpackage|endprimitive|endproperty|endprogram|endsequence|endspecify|endtable|endtask)\\b")}}},r={defaultToken:"",tokenPostfix:".sv",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["accept_on","alias","always","always_comb","always_ff","always_latch","and","assert","assign","assume","automatic","before","begin","bind","bins","binsof","bit","break","buf","bufif0","bufif1","byte","case","casex","casez","cell","chandle","checker","class","clocking","cmos","config","const","constraint","context","continue","cover","covergroup","coverpoint","cross","deassign","default","defparam","design","disable","dist","do","edge","else","end","endcase","endchecker","endclass","endclocking","endconfig","endfunction","endgenerate","endgroup","endinterface","endmodule","endpackage","endprimitive","endprogram","endproperty","endspecify","endsequence","endtable","endtask","enum","event","eventually","expect","export","extends","extern","final","first_match","for","force","foreach","forever","fork","forkjoin","function","generate","genvar","global","highz0","highz1","if","iff","ifnone","ignore_bins","illegal_bins","implements","implies","import","incdir","include","initial","inout","input","inside","instance","int","integer","interconnect","interface","intersect","join","join_any","join_none","large","let","liblist","library","local","localparam","logic","longint","macromodule","matches","medium","modport","module","nand","negedge","nettype","new","nexttime","nmos","nor","noshowcancelled","not","notif0","notif1","null","or","output","package","packed","parameter","pmos","posedge","primitive","priority","program","property","protected","pull0","pull1","pulldown","pullup","pulsestyle_ondetect","pulsestyle_onevent","pure","rand","randc","randcase","randsequence","rcmos","real","realtime","ref","reg","reject_on","release","repeat","restrict","return","rnmos","rpmos","rtran","rtranif0","rtranif1","s_always","s_eventually","s_nexttime","s_until","s_until_with","scalared","sequence","shortint","shortreal","showcancelled","signed","small","soft","solve","specify","specparam","static","string","strong","strong0","strong1","struct","super","supply0","supply1","sync_accept_on","sync_reject_on","table","tagged","task","this","throughout","time","timeprecision","timeunit","tran","tranif0","tranif1","tri","tri0","tri1","triand","trior","trireg","type","typedef","union","unique","unique0","unsigned","until","until_with","untyped","use","uwire","var","vectored","virtual","void","wait","wait_order","wand","weak","weak0","weak1","while","wildcard","wire","with","within","wor","xnor","xor"],builtin_gates:["and","nand","nor","or","xor","xnor","buf","not","bufif0","bufif1","notif1","notif0","cmos","nmos","pmos","rcmos","rnmos","rpmos","tran","tranif1","tranif0","rtran","rtranif1","rtranif0"],operators:["=","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>+","<<<=",">>>=","?",":","+","-","!","~","&","~&","|","~|","^","~^","^~","+","-","*","/","%","==","!=","===","!==","==?","!=?","&&","||","**","<","<=",">",">=","&","|","^",">>","<<",">>>","<<<","++","--","->","<->","inside","dist","::","+:","-:","*>","&&&","|->","|=>","#=#"],symbols:/[=><!~?:&|+\-*\/\^%#]+/,escapes:/%%|\\(?:[antvf\\"']|x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/,identifier:/(?:[a-zA-Z_][a-zA-Z0-9_$\.]*|\\\S+ )/,systemcall:/[$][a-zA-Z0-9_]+/,timeunits:/s|ms|us|ns|ps|fs/,tokenizer:{root:[[/^(\s*)(@identifier)/,["",{cases:{"@builtin_gates":{token:"keyword.$2",next:"@module_instance"},table:{token:"keyword.$2",next:"@table"},"@keywords":{token:"keyword.$2"},"@default":{token:"identifier",next:"@module_instance"}}}]],[/^\s*`include/,{token:"keyword.directive.include",next:"@include"}],[/^\s*`\s*\w+/,"keyword"],{include:"@identifier_or_keyword"},{include:"@whitespace"},[/\(\*.*\*\)/,"annotation"],[/@systemcall/,"variable.predefined"],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],{include:"@numbers"},[/[;,.]/,"delimiter"],{include:"@strings"}],identifier_or_keyword:[[/@identifier/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}]],numbers:[[/\d+?[\d_]*(?:\.[\d_]+)?[eE][\-+]?\d+/,"number.float"],[/\d+?[\d_]*\.[\d_]+(?:\s*@timeunits)?/,"number.float"],[/(?:\d+?[\d_]*\s*)?'[sS]?[dD]\s*[0-9xXzZ?]+?[0-9xXzZ?_]*/,"number"],[/(?:\d+?[\d_]*\s*)?'[sS]?[bB]\s*[0-1xXzZ?]+?[0-1xXzZ?_]*/,"number.binary"],[/(?:\d+?[\d_]*\s*)?'[sS]?[oO]\s*[0-7xXzZ?]+?[0-7xXzZ?_]*/,"number.octal"],[/(?:\d+?[\d_]*\s*)?'[sS]?[hH]\s*[0-9a-fA-FxXzZ?]+?[0-9a-fA-FxXzZ?_]*/,"number.hex"],[/1step/,"number"],[/[\dxXzZ]+?[\dxXzZ_]*(?:\s*@timeunits)?/,"number"],[/'[01xXzZ]+/,"number"]],module_instance:[{include:"@whitespace"},[/(#?)(\()/,["",{token:"@brackets",next:"@port_connection"}]],[/@identifier\s*[;={}\[\],]/,{token:"@rematch",next:"@pop"}],[/@symbols|[;={}\[\],]/,{token:"@rematch",next:"@pop"}],[/@identifier/,"type"],[/;/,"delimiter","@pop"]],port_connection:[{include:"@identifier_or_keyword"},{include:"@whitespace"},[/@systemcall/,"variable.predefined"],{include:"@numbers"},{include:"@strings"},[/[,]/,"delimiter"],[/\(/,"@brackets","@port_connection"],[/\)/,"@brackets","@pop"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],strings:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],include:[[/(\s*)(")([\w*\/*]*)(.\w*)(")/,["","string.include.identifier","string.include.identifier","string.include.identifier",{token:"string.include.identifier",next:"@pop"}]],[/(\s*)(<)([\w*\/*]*)(.\w*)(>)/,["","string.include.identifier","string.include.identifier","string.include.identifier",{token:"string.include.identifier",next:"@pop"}]]],table:[{include:"@whitespace"},[/[()]/,"@brackets"],[/[:;]/,"delimiter"],[/[01\-*?xXbBrRfFpPnN]/,"variable.predefined"],["endtable","keyword.endtable","@pop"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2876.afe7e47f.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/2876.afe7e47f.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2876.afe7e47f.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/2931.3ade3bc3.chunk.js b/ydb/core/viewer/monitoring/static/js/2931.3ade3bc3.chunk.js new file mode 100644 index 000000000000..446b8965472b --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2931.3ade3bc3.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 2931.3ade3bc3.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2931],{62931:(e,o,t)=>{t.r(o),t.d(o,{conf:()=>n,language:()=>i});var n={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},i={defaultToken:"",tokenPostfix:".swift",identifier:/[a-zA-Z_][\w$]*/,attributes:["@GKInspectable","@IBAction","@IBDesignable","@IBInspectable","@IBOutlet","@IBSegueAction","@NSApplicationMain","@NSCopying","@NSManaged","@Sendable","@UIApplicationMain","@autoclosure","@actorIndependent","@asyncHandler","@available","@convention","@derivative","@differentiable","@discardableResult","@dynamicCallable","@dynamicMemberLookup","@escaping","@frozen","@globalActor","@inlinable","@inline","@main","@noDerivative","@nonobjc","@noreturn","@objc","@objcMembers","@preconcurrency","@propertyWrapper","@requires_stored_property_inits","@resultBuilder","@testable","@unchecked","@unknown","@usableFromInline","@warn_unqualified_access"],accessmodifiers:["open","public","internal","fileprivate","private"],keywords:["#available","#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning","Any","Protocol","Self","Type","actor","as","assignment","associatedtype","associativity","async","await","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","dynamicType","else","enum","extension","fallthrough","false","fileprivate","final","for","func","get","guard","higherThan","if","import","in","indirect","infix","init","inout","internal","is","isolated","lazy","left","let","lowerThan","mutating","nil","none","nonisolated","nonmutating","open","operator","optional","override","postfix","precedence","precedencegroup","prefix","private","protocol","public","repeat","required","rethrows","return","right","safe","self","set","some","static","struct","subscript","super","switch","throw","throws","true","try","typealias","unowned","unsafe","var","weak","where","while","willSet","__consuming","__owned"],symbols:/[=(){}\[\].,:;@#\_&\-<>`?!+*\\\/]/,operatorstart:/[\/=\-+!*%<>&|^~?\u00A1-\u00A7\u00A9\u00AB\u00AC\u00AE\u00B0-\u00B1\u00B6\u00BB\u00BF\u00D7\u00F7\u2016-\u2017\u2020-\u2027\u2030-\u203E\u2041-\u2053\u2055-\u205E\u2190-\u23FF\u2500-\u2775\u2794-\u2BFF\u2E00-\u2E7F\u3001-\u3003\u3008-\u3030]/,operatorend:/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE00-\uFE0F\uFE20-\uFE2F\uE0100-\uE01EF]/,operators:/(@operatorstart)((@operatorstart)|(@operatorend))*/,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"},{include:"@attribute"},{include:"@literal"},{include:"@keyword"},{include:"@invokedmethod"},{include:"@symbol"}],whitespace:[[/\s+/,"white"],[/"""/,"string.quote","@endDblDocString"]],endDblDocString:[[/[^"]+/,"string"],[/\\"/,"string"],[/"""/,"string.quote","@popall"],[/"/,"string"]],symbol:[[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/[.]/,"delimiter"],[/@operators/,"operator"],[/@symbols/,"operator"]],comment:[[/\/\/\/.*$/,"comment.doc"],[/\/\*\*/,"comment.doc","@commentdocbody"],[/\/\/.*$/,"comment"],[/\/\*/,"comment","@commentbody"]],commentdocbody:[[/\/\*/,"comment","@commentbody"],[/\*\//,"comment.doc","@pop"],[/\:[a-zA-Z]+\:/,"comment.doc.param"],[/./,"comment.doc"]],commentbody:[[/\/\*/,"comment","@commentbody"],[/\*\//,"comment","@pop"],[/./,"comment"]],attribute:[[/@@@identifier/,{cases:{"@attributes":"keyword.control","@default":""}}]],literal:[[/"/,{token:"string.quote",next:"@stringlit"}],[/0[b]([01]_?)+/,"number.binary"],[/0[o]([0-7]_?)+/,"number.octal"],[/0[x]([0-9a-fA-F]_?)+([pP][\-+](\d_?)+)?/,"number.hex"],[/(\d_?)*\.(\d_?)+([eE][\-+]?(\d_?)+)?/,"number.float"],[/(\d_?)+/,"number"]],stringlit:[[/\\\(/,{token:"operator",next:"@interpolatedexpression"}],[/@escapes/,"string"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}],[/./,"string"]],interpolatedexpression:[[/\(/,{token:"operator",next:"@interpolatedexpression"}],[/\)/,{token:"operator",next:"@pop"}],{include:"@literal"},{include:"@keyword"},{include:"@symbol"}],keyword:[[/`/,{token:"operator",next:"@escapedkeyword"}],[/@identifier/,{cases:{"@keywords":"keyword","[A-Z][a-zA-Z0-9$]*":"type.identifier","@default":"identifier"}}]],escapedkeyword:[[/`/,{token:"operator",next:"@pop"}],[/./,"identifier"]],invokedmethod:[[/([.])(@identifier)/,{cases:{$2:["delimeter","type.identifier"],"@default":""}}]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2931.3ade3bc3.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/2931.3ade3bc3.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..10047b8b1dac --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2931.3ade3bc3.chunk.js.LICENSE.txt @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +/*!--------------------------------------------------------------------------------------------- + * Copyright (C) David Owens II, owensd.io. All rights reserved. + *--------------------------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/2962.66e01691.chunk.js b/ydb/core/viewer/monitoring/static/js/2962.66e01691.chunk.js new file mode 100644 index 000000000000..e052ae6247b6 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2962.66e01691.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 2962.66e01691.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2962],{92962:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>s,language:()=>o});var s={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*#region\\b|^\\s*\\(\\*\\s*#region(.*)\\*\\)"),end:new RegExp("^\\s*//\\s*#endregion\\b|^\\s*\\(\\*\\s*#endregion\\s*\\*\\)")}}},o={defaultToken:"",tokenPostfix:".fs",keywords:["abstract","and","atomic","as","assert","asr","base","begin","break","checked","component","const","constraint","constructor","continue","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","eager","event","external","extern","false","finally","for","fun","function","fixed","functor","global","if","in","include","inherit","inline","interface","internal","land","lor","lsl","lsr","lxor","lazy","let","match","member","mod","module","mutable","namespace","method","mixin","new","not","null","of","open","or","object","override","private","parallel","process","protected","pure","public","rec","return","static","sealed","struct","sig","then","to","true","tailcall","trait","try","type","upcast","use","val","void","virtual","volatile","when","while","with","yield"],symbols:/[=><!~?:&|+\-*\^%;\.,\/]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/[uU]?[yslnLI]?/,floatsuffix:/[fFmM]?/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/\[<.*>\]/,"annotation"],[/^#(if|else|endif)/,"keyword"],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0x[0-9a-fA-F]+LF/,"number.float"],[/0x[0-9a-fA-F]+(@integersuffix)/,"number.hex"],[/0b[0-1]+(@integersuffix)/,"number.bin"],[/\d+(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string",'@string."""'],[/"/,"string",'@string."'],[/\@"/,{token:"string.quote",next:"@litstring"}],[/'[^\\']'B?/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\(\*(?!\))/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^*(]+/,"comment"],[/\*\)/,"comment","@pop"],[/\*/,"comment"],[/\(\*\)/,"comment"],[/\(/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/("""|"B?)/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2962.66e01691.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/2962.66e01691.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2962.66e01691.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/2981.6d027811.chunk.js b/ydb/core/viewer/monitoring/static/js/2981.6d027811.chunk.js new file mode 100644 index 000000000000..7f824286461c --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2981.6d027811.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2981],{72981:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2986.2100fcad.chunk.js b/ydb/core/viewer/monitoring/static/js/2986.2100fcad.chunk.js new file mode 100644 index 000000000000..2969084c843f --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2986.2100fcad.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2986],{42986:function(_,e,a){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var a=e(_),t={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(_){return _},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 a.default.locale(t,null,!0),t}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2991.0db887ba.chunk.js b/ydb/core/viewer/monitoring/static/js/2991.0db887ba.chunk.js deleted file mode 100644 index 84bea123ffcc..000000000000 --- a/ydb/core/viewer/monitoring/static/js/2991.0db887ba.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2991],{22991:function(e,t,l){l.r(t),l.d(t,{ReactComponent:function(){return m}});var c,a=l(4519),n=["title","titleId"];function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var c in l)Object.prototype.hasOwnProperty.call(l,c)&&(e[c]=l[c])}return e},r.apply(this,arguments)}function v(e,t){if(null==e)return{};var l,c,a=function(e,t){if(null==e)return{};var l,c,a={},n=Object.keys(e);for(c=0;c<n.length;c++)l=n[c],t.indexOf(l)>=0||(a[l]=e[l]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(c=0;c<n.length;c++)l=n[c],t.indexOf(l)>=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(a[l]=e[l])}return a}function h(e,t){var l=e.title,h=e.titleId,m=v(e,n);return a.createElement("svg",r({width:349,height:356,fill:"none",xmlns:"http://www.w3.org/2000/svg",ref:t,"aria-labelledby":h},m),l?a.createElement("title",{id:h},l):null,c||(c=a.createElement("g",{opacity:.8},a.createElement("path",{d:"M275.008 84.928c0 24.7-9.9 83.9-9.9 117.1 0 33.2 0 106.3-27.8 134.1-27.8 27.8-61.9 16.1-61.9 16.1s-46.7 13-76.3-14.8c-29.6-27.8-60.1-83.5-69.1-115.3-9.9-35-26.5-49.3-27.8-56.5-1.3-7.2 3.6-12.1 12.1-12.6 8.5-.4 22.9 4 34.5 22 11.6 18 17.5 26 23.8 35.9 6.3 9.9 20.6 23.3 20.6 23.3s.4-44.9 1.3-64.1c.9-19.3-1.8-111.7 1.8-132.3 3.6-20.6 26.5-20.2 28.7-4 2.2 16.1 8.8 66.8 9.8 79.8s3.7 44.4 3.7 44.4l7.6-2.7s-.9-105.8-.9-132.9c0-29.2 28.7-29.2 32.3-4 3.6 25.2 6.7 142.8 6.7 142.8l6.7 2.7s2.2-111.7 5.8-129.6c3.6-17.9 26.5-17.5 30.1 4.9 3.6 22.4 1.3 72.2.9 94.2s-.9 43.5-.9 43.5l5.4 4s11-73.3 14.4-99.1c3.7-27.8 28.4-21.5 28.4 3.1z",fill:"#fff",fillOpacity:.07}),a.createElement("path",{d:"M279.207 266.428l-216.9 12c-7.3.4-13.3-5.2-13.3-12.5v-167.4c0-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:"#FF4645"}),a.createElement("path",{d:"M191.308 139.226l-32.3-1.4c-1.9-.1-3.8.6-5.2 1.9l-24.3 22.8c-1.4 1.3-2.2 3.2-2.2 5.2v33.7c0 2 .8 3.8 2.2 5.2l24.3 22.8c1.4 1.3 3.3 2 5.2 1.9l32.3-1.4c1.8-.1 3.6-.9 4.9-2.2l21.5-22.8c1.2-1.3 1.9-3.1 1.9-4.9v-31c0-1.8-.7-3.6-1.9-4.9l-21.5-22.8c-1.3-1.3-3.1-2.1-4.9-2.1z",fill:"#fff"}),a.createElement("path",{d:"M203.408 195.526l-58.1.6c-1.6 0-3-1.3-3-3v-17.2c0-1.6 1.3-3 3-3l58.1.6c1.6 0 2.9 1.3 2.9 3v16c0 1.7-1.3 3-2.9 3z",fill:"#FF4645"}),a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M74.707 103.727c0 3.4-2.7 6-6.1 5.8-3.4-.1-6.1-3-6.1-6.4 0-3.4 2.8-6 6.1-5.8 3.4.2 6.1 3 6.1 6.4zm19.7.9c0 3.3-2.7 5.9-6 5.8-3.3-.1-6-3-6-6.3s2.7-5.9 6-5.8c3.3.1 6 2.9 6 6.3zm13.4 6.499c3.2.2 5.8-2.4 5.8-5.7 0-3.3-2.6-6.1-5.8-6.2-3.3-.2-5.9 2.4-5.9 5.7 0 3.3 2.7 6.1 5.9 6.2z",fill:"#fff"}),a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M248.707 247.329h84.6v-62c0-22.5-18.3-40.7-40.7-40.7h-3.2c-22.5 0-40.7 18.3-40.7 40.7v62zm70.2-14.3h-56v-47.7c0-14.6 11.9-26.4 26.4-26.4h3.2c14.6 0 26.4 11.9 26.4 26.4v47.7z",fill:"#DEB700"}),a.createElement("path",{d:"M340.507 205.528s-16.3-2.7-17.3-2.7l-78.6 1.1c-7 .1-13.7 6.5-13.7 13.1v58.6c0 4.7 2.9 8.5 7 10.1 1.5.6 3.1.9 4.8.9l12.5 2.3 7.6-3.7 60.4-4.3c6.2-.4 11.2-5.8 11.2-11.9v-43.3l6.1-20.2z",fill:"#DEB700"}),a.createElement("path",{d:"M337.607 283.43l-79.6 5.7c-7 .5-12.7-4.4-12.7-11v-59.6c0-6.6 5.7-12 12.7-12.1l79.6-1.1c6.2-.1 11.2 4.8 11.2 10.9v55.4c-.1 6-5 11.3-11.2 11.8z",fill:"#FBC900"}),a.createElement("path",{d:"M313.007 236.029c0-6.3-5.2-11.4-11.7-11.4-6.7 0-12.3 5.4-12.3 12 0 5 3.2 9.1 7.6 10.7v15.5c0 2.5 2.1 4.4 4.7 4.2 2.6-.2 4.6-2.5 4.6-4.9v-15.1c4.3-2.1 7.1-6.3 7.1-11z",fill:"#00236B"}),a.createElement("path",{d:"M308.307 236.028c0-5.5-4-10.1-9.3-11.2-5.6 1.1-10 6-10 11.8 0 5 3.2 9.1 7.6 10.7v15.5c0 1.5.8 2.8 2 3.5 1.6-.9 2.6-2.5 2.6-4.3v-15.1c4.2-2 7.1-6.2 7.1-10.9z",fill:"#18123D"}),a.createElement("path",{d:"M21.708 40.727a2 2 0 1 0-4 0h4zm-4 8.2a2 2 0 0 0 4 0h-4zm4 17.198a2 2 0 0 0-4 0h4zm-4 8.9a2 2 0 1 0 4 0h-4zm19.2-15.197a2 2 0 1 0 0-4v4zm-8.3-4a2 2 0 0 0 0 4v-4zm-17.8 4a2 2 0 1 0 0-4v4zm-8.3-4a2 2 0 0 0 0 4v-4zm15.2-15.101v8.2h4v-8.2h-4zm0 25.398v8.9h4v-8.9h-4zm19.2-10.297h-8.3v4h8.3v-4zm-26.1 0h-8.3v4h8.3v-4zm284.199 259.098a2 2 0 1 0-4 0h4zm-4 6.2a2 2 0 0 0 4 0h-4zm4 13.1a2 2 0 1 0-4 0h4zm-4 6.8a2 2 0 0 0 4 0h-4zm15-11.1a2 2 0 0 0 0-4v4zm-6.2-4a2 2 0 0 0 0 4v-4zm-13.6 4a2 2 0 0 0 0-4v4zm-6.3-4a2 2 0 0 0 0 4v-4zm11.1-11v6.2h4v-6.2h-4zm0 19.3v6.8h4v-6.8h-4zm15-8.3h-6.2v4h6.2v-4zm-19.8 0h-6.3v4h6.3v-4z",fill:"#2EE5C0"}),a.createElement("path",{clipRule:"evenodd",d:"M15.207 325.426c7.18 0 13-5.821 13-13 0-7.18-5.82-13-13-13s-13 5.82-13 13c0 7.179 5.82 13 13 13z",stroke:"#2EE5C0",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M28.207 310.426a2 2 0 1 0 0 4v-4zm35.2 2h2a2 2 0 0 0-2-2v2zm-2 12.2a2 2 0 0 0 4 0h-4zm-17.1 0a2 2 0 0 0 4 0h-4zm4-12.2a2 2 0 1 0-4 0h4zm-20.1 2h35.2v-4h-35.2v4zm33.2-2v12.2h4v-12.2h-4zm-13.1 12.2v-12.2h-4v12.2h4z",fill:"#2EE5C0"}))))}var m=a.forwardRef(h);t.default=l.p+"static/media/403.271ae19f0d1101a2c67a904146bbd4d3.svg"}}]); -//# sourceMappingURL=2991.0db887ba.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2994.e6c77407.chunk.js b/ydb/core/viewer/monitoring/static/js/2994.e6c77407.chunk.js new file mode 100644 index 000000000000..180b4edc1594 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2994.e6c77407.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 2994.e6c77407.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[2994],{82994:(e,o,n)=>{n.r(o),n.d(o,{conf:()=>t,language:()=>r});var t={comments:{lineComment:"'"},brackets:[["(",")"],["[","]"],["If","EndIf"],["While","EndWhile"],["For","EndFor"],["Sub","EndSub"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]}]},r={defaultToken:"",tokenPostfix:".sb",ignoreCase:!0,brackets:[{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"keyword.tag-if",open:"If",close:"EndIf"},{token:"keyword.tag-while",open:"While",close:"EndWhile"},{token:"keyword.tag-for",open:"For",close:"EndFor"},{token:"keyword.tag-sub",open:"Sub",close:"EndSub"}],keywords:["Else","ElseIf","EndFor","EndIf","EndSub","EndWhile","For","Goto","If","Step","Sub","Then","To","While"],tagwords:["If","Sub","While","For"],operators:[">","<","<>","<=",">=","And","Or","+","-","*","/","="],identifier:/[a-zA-Z_][\w]*/,symbols:/[=><:+\-*\/%\.,]+/,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"},[/(@identifier)(?=[.])/,"type"],[/@identifier/,{cases:{"@keywords":{token:"keyword.$0"},"@operators":"operator","@default":"variable.name"}}],[/([.])(@identifier)/,{cases:{$2:["delimiter","type.member"],"@default":""}}],[/\d*\.\d+/,"number.float"],[/\d+/,"number"],[/[()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":"delimiter"}}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],whitespace:[[/[ \t\r\n]+/,""],[/(\').*$/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"C?/,"string","@pop"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/2994.e6c77407.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/2994.e6c77407.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/2994.e6c77407.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/30.b097cbb4.chunk.js b/ydb/core/viewer/monitoring/static/js/30.b097cbb4.chunk.js new file mode 100644 index 000000000000..6d9cf99e9115 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/30.b097cbb4.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[30],{50030:function(e,_,s){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=_(e),d={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 s.default.locale(d,null,!0),d}(s(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3001.b1a75b50.chunk.js b/ydb/core/viewer/monitoring/static/js/3001.b1a75b50.chunk.js deleted file mode 100644 index b1b2d8763d53..000000000000 --- a/ydb/core/viewer/monitoring/static/js/3001.b1a75b50.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3001],{23001:function(e,t,n){n.r(t),n.d(t,{conf:function(){return r},language:function(){return s}});var r={comments:{lineComment:";;"},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}],surroundingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}]},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".clj",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"}],constants:["true","false","nil"],numbers:/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,characters:/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,escapes:/^\\(?:["'\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,qualifiedSymbols:/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/,specialForms:[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],coreSymbols:["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],tokenizer:{root:[{include:"@whitespace"},[/@numbers/,"number"],[/@characters/,"string"],{include:"@string"},[/[()\[\]{}]/,"@brackets"],[/\/#"(?:\.|(?:")|[^"\n])*"\/g/,"regexp"],[/[#'@^`~]/,"meta"],[/@qualifiedSymbols/,{cases:{"^:.+$":"constant","@specialForms":"keyword","@coreSymbols":"keyword","@constants":"constant","@default":"identifier"}}]],whitespace:[[/[\s,]+/,"white"],[/;.*$/,"comment"],[/\(comment\b/,"comment","@comment"]],comment:[[/\(/,"comment","@push"],[/\)/,"comment","@pop"],[/[^()]/,"comment"]],string:[[/"/,"string","@multiLineString"]],multiLineString:[[/"/,"string","@popall"],[/@escapes/,"string.escape"],[/./,"string"]]}}}}]); -//# sourceMappingURL=3001.b1a75b50.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3025.7e536c57.chunk.js b/ydb/core/viewer/monitoring/static/js/3025.7e536c57.chunk.js new file mode 100644 index 000000000000..7165ad4a00e3 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3025.7e536c57.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3025],{73025:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3074.bbb8aaef.chunk.js b/ydb/core/viewer/monitoring/static/js/3074.bbb8aaef.chunk.js new file mode 100644 index 000000000000..2b24e4ded4c1 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3074.bbb8aaef.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 3074.bbb8aaef.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3074],{63074:(e,o,r)=>{r.r(o),r.d(o,{conf:()=>t,language:()=>a});var t={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},a={defaultToken:"",tokenPostfix:".r",roxygen:["@alias","@aliases","@assignee","@author","@backref","@callGraph","@callGraphDepth","@callGraphPrimitives","@concept","@describeIn","@description","@details","@docType","@encoding","@evalNamespace","@evalRd","@example","@examples","@export","@exportClass","@exportMethod","@exportPattern","@family","@field","@formals","@format","@import","@importClassesFrom","@importFrom","@importMethodsFrom","@include","@inherit","@inheritDotParams","@inheritParams","@inheritSection","@keywords","@md","@method","@name","@noMd","@noRd","@note","@param","@rawNamespace","@rawRd","@rdname","@references","@return","@S3method","@section","@seealso","@setClass","@slot","@source","@template","@templateVar","@title","@TODO","@usage","@useDynLib"],constants:["NULL","FALSE","TRUE","NA","Inf","NaN","NA_integer_","NA_real_","NA_complex_","NA_character_","T","F","LETTERS","letters","month.abb","month.name","pi","R.version.string"],keywords:["break","next","return","if","else","for","in","repeat","while","array","category","character","complex","double","function","integer","list","logical","matrix","numeric","vector","data.frame","factor","library","require","attach","detach","source"],special:["\\n","\\r","\\t","\\b","\\a","\\f","\\v","\\'",'\\"',"\\\\"],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],tokenizer:{root:[{include:"@numbers"},{include:"@strings"},[/[{}\[\]()]/,"@brackets"],{include:"@operators"},[/#'$/,"comment.doc"],[/#'/,"comment.doc","@roxygen"],[/(^#.*$)/,"comment"],[/\s+/,"white"],[/[,:;]/,"delimiter"],[/@[a-zA-Z]\w*/,"tag"],[/[a-zA-Z]\w*/,{cases:{"@keywords":"keyword","@constants":"constant","@default":"identifier"}}]],roxygen:[[/@\w+/,{cases:{"@roxygen":"tag","@eos":{token:"comment.doc",next:"@pop"},"@default":"comment.doc"}}],[/\s+/,{cases:{"@eos":{token:"comment.doc",next:"@pop"},"@default":"comment.doc"}}],[/.*/,{token:"comment.doc",next:"@pop"}]],numbers:[[/0[xX][0-9a-fA-F]+/,"number.hex"],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?/,"number"]],operators:[[/<{1,2}-/,"operator"],[/->{1,2}/,"operator"],[/%[^%\s]+%/,"operator"],[/\*\*/,"operator"],[/%%/,"operator"],[/&&/,"operator"],[/\|\|/,"operator"],[/<</,"operator"],[/>>/,"operator"],[/[-+=&|!<>^~*/:$]/,"operator"]],strings:[[/'/,"string.escape","@stringBody"],[/"/,"string.escape","@dblStringBody"]],stringBody:[[/\\./,{cases:{"@special":"string","@default":"error-token"}}],[/'/,"string.escape","@popall"],[/./,"string"]],dblStringBody:[[/\\./,{cases:{"@special":"string","@default":"error-token"}}],[/"/,"string.escape","@popall"],[/./,"string"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3074.bbb8aaef.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/3074.bbb8aaef.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3074.bbb8aaef.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/3191.c6dbae35.chunk.js b/ydb/core/viewer/monitoring/static/js/3191.c6dbae35.chunk.js deleted file mode 100644 index 7652f13a138f..000000000000 --- a/ydb/core/viewer/monitoring/static/js/3191.c6dbae35.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3191],{13191:function(e,t,r){r.r(t),r.d(t,{conf:function(){return n},language:function(){return m}});var o=r(37456),i=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["\x3c!--","--\x3e"],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp("<(?!(?:"+i.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:o.Mj.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(?!(?:"+i.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:o.Mj.IndentAction.Indent}}]},m={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/@@@@/],[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.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"],[/[ \t\r\n]+/],[/[^<@]+/]],doctype:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.comment"}],[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.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:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.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:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.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:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.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:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.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:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.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:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],razorInSimpleState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3"}]],razorInEmbeddedState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],razorBlockCommentTopLevel:[[/\*@/,"@rematch","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorBlockComment:[[/\*@/,"comment.cs","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorRootTopLevel:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/[})]/,"@rematch","@pop"],{include:"razorCommon"}],razorRoot:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/\}/,"delimiter.bracket.cs","@pop"],[/\)/,"delimiter.parenthesis.cs","@pop"],{include:"razorCommon"}],razorCommon:[[/[a-zA-Z_]\w*/,{cases:{"@razorKeywords":{token:"keyword.cs"},"@default":"identifier.cs"}}],[/[\[\]]/,"delimiter.array.cs"],[/[ \t\r\n]+/],[/\/\/.*$/,"comment.cs"],[/@\*/,"comment.cs","@razorBlockComment"],[/"([^"]*)"/,"string.cs"],[/'([^']*)'/,"string.cs"],[/(<)(\w+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(\w+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<\/)(\w+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/,"delimiter.cs"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.cs"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.cs"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.cs"],[/0[0-7']*[0-7]/,"number.octal.cs"],[/0[bB][0-1']*[0-1]/,"number.binary.cs"],[/\d[\d']*/,"number.cs"],[/\d/,"number.cs"]]},razorKeywords:["abstract","as","async","await","base","bool","break","by","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","descending","explicit","event","extern","else","enum","false","finally","fixed","float","for","foreach","from","goto","group","if","implicit","in","int","interface","internal","into","is","lock","long","nameof","new","null","namespace","object","operator","out","override","orderby","params","private","protected","public","readonly","ref","return","switch","struct","sbyte","sealed","short","sizeof","stackalloc","static","string","select","this","throw","true","try","typeof","uint","ulong","unchecked","unsafe","ushort","using","var","virtual","volatile","void","when","while","where","yield","model","inject"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/}}}]); -//# sourceMappingURL=3191.c6dbae35.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3231.65396654.chunk.js b/ydb/core/viewer/monitoring/static/js/3231.65396654.chunk.js new file mode 100644 index 000000000000..ed7b0e643aad --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3231.65396654.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3231],{83231:function(e,_,a){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=_(e),u={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 a.default.locale(u,null,!0),u}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3254.78ce4d35.chunk.js b/ydb/core/viewer/monitoring/static/js/3254.78ce4d35.chunk.js deleted file mode 100644 index f2ea9e1235ca..000000000000 --- a/ydb/core/viewer/monitoring/static/js/3254.78ce4d35.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3254],{93254:function(e,t,r){r.r(t),r.d(t,{conf:function(){return n},language:function(){return o}});var n={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},o={tokenPostfix:".julia",keywords:["begin","while","if","for","try","return","break","continue","function","macro","quote","let","local","global","const","do","struct","module","baremodule","using","import","export","end","else","elseif","catch","finally","mutable","primitive","abstract","type","in","isa","where","new"],types:["LinRange","LineNumberNode","LinearIndices","LoadError","MIME","Matrix","Method","MethodError","Missing","MissingException","Module","NTuple","NamedTuple","Nothing","Number","OrdinalRange","OutOfMemoryError","OverflowError","Pair","PartialQuickSort","PermutedDimsArray","Pipe","Ptr","QuoteNode","Rational","RawFD","ReadOnlyMemoryError","Real","ReentrantLock","Ref","Regex","RegexMatch","RoundingMode","SegmentationFault","Set","Signed","Some","StackOverflowError","StepRange","StepRangeLen","StridedArray","StridedMatrix","StridedVecOrMat","StridedVector","String","StringIndexError","SubArray","SubString","SubstitutionString","Symbol","SystemError","Task","Text","TextDisplay","Timer","Tuple","Type","TypeError","TypeVar","UInt","UInt128","UInt16","UInt32","UInt64","UInt8","UndefInitializer","AbstractArray","UndefKeywordError","AbstractChannel","UndefRefError","AbstractChar","UndefVarError","AbstractDict","Union","AbstractDisplay","UnionAll","AbstractFloat","UnitRange","AbstractIrrational","Unsigned","AbstractMatrix","AbstractRange","Val","AbstractSet","Vararg","AbstractString","VecElement","AbstractUnitRange","VecOrMat","AbstractVecOrMat","Vector","AbstractVector","VersionNumber","Any","WeakKeyDict","ArgumentError","WeakRef","Array","AssertionError","BigFloat","BigInt","BitArray","BitMatrix","BitSet","BitVector","Bool","BoundsError","CapturedException","CartesianIndex","CartesianIndices","Cchar","Cdouble","Cfloat","Channel","Char","Cint","Cintmax_t","Clong","Clonglong","Cmd","Colon","Complex","ComplexF16","ComplexF32","ComplexF64","CompositeException","Condition","Cptrdiff_t","Cshort","Csize_t","Cssize_t","Cstring","Cuchar","Cuint","Cuintmax_t","Culong","Culonglong","Cushort","Cvoid","Cwchar_t","Cwstring","DataType","DenseArray","DenseMatrix","DenseVecOrMat","DenseVector","Dict","DimensionMismatch","Dims","DivideError","DomainError","EOFError","Enum","ErrorException","Exception","ExponentialBackOff","Expr","Float16","Float32","Float64","Function","GlobalRef","HTML","IO","IOBuffer","IOContext","IOStream","IdDict","IndexCartesian","IndexLinear","IndexStyle","InexactError","InitError","Int","Int128","Int16","Int32","Int64","Int8","Integer","InterruptException","InvalidStateException","Irrational","KeyError"],keywordops:["<:",">:",":","=>","...",".","->","?"],allops:/[^\w\d\s()\[\]{}"'#]+/,constants:["true","false","nothing","missing","undef","Inf","pi","NaN","\u03c0","\u212f","ans","PROGRAM_FILE","ARGS","C_NULL","VERSION","DEPOT_PATH","LOAD_PATH"],operators:["!","!=","!==","%","&","*","+","-","/","//","<","<<","<=","==","===","=>",">",">=",">>",">>>","\\","^","|","|>","~","\xf7","\u2208","\u2209","\u220b","\u220c","\u2218","\u221a","\u221b","\u2229","\u222a","\u2248","\u2249","\u2260","\u2261","\u2262","\u2264","\u2265","\u2286","\u2287","\u2288","\u2289","\u228a","\u228b","\u22bb"],brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],ident:/\u03c0|\u212f|\b(?!\d)\w+\b/,escape:/(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/,tokenizer:{root:[[/(::)\s*|\b(isa)\s+/,"keyword","@typeanno"],[/\b(isa)(\s*\(@ident\s*,\s*)/,["keyword",{token:"",next:"@typeanno"}]],[/\b(type|struct)[ \t]+/,"keyword","@typeanno"],[/^\s*:@ident[!?]?/,"metatag"],[/(return)(\s*:@ident[!?]?)/,["keyword","metatag"]],[/(\(|\[|\{|@allops)(\s*:@ident[!?]?)/,["","metatag"]],[/:\(/,"metatag","@quote"],[/r"""/,"regexp.delim","@tregexp"],[/r"/,"regexp.delim","@sregexp"],[/raw"""/,"string.delim","@rtstring"],[/[bv]?"""/,"string.delim","@dtstring"],[/raw"/,"string.delim","@rsstring"],[/[bv]?"/,"string.delim","@dsstring"],[/(@ident)\{/,{cases:{"$1@types":{token:"type",next:"@gen"},"@default":{token:"type",next:"@gen"}}}],[/@ident[!?'']?(?=\.?\()/,{cases:{"@types":"type","@keywords":"keyword","@constants":"variable","@default":"keyword.flow"}}],[/@ident[!?']?/,{cases:{"@types":"type","@keywords":"keyword","@constants":"variable","@default":"identifier"}}],[/\$\w+/,"key"],[/\$\(/,"key","@paste"],[/@@@ident/,"annotation"],{include:"@whitespace"},[/'(?:@escapes|.)'/,"string.character"],[/[()\[\]{}]/,"@brackets"],[/@allops/,{cases:{"@keywordops":"keyword","@operators":"operator"}}],[/[;,]/,"delimiter"],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,"number.hex"],[/0[_oO][0-7](_?[0-7])*/,"number.octal"],[/0[bB][01](_?[01])*/,"number.binary"],[/[+\-]?\d+(\.\d+)?(im?|[eE][+\-]?\d+(\.\d+)?)?/,"number"]],typeanno:[[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/,"type","@gen"],[/([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(\s*<:\s*)/,["type","keyword"]],[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/,"type","@pop"],["","","@pop"]],gen:[[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/,"type","@push"],[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/,"type"],[/<:/,"keyword"],[/(\})(\s*<:\s*)/,["type",{token:"keyword",next:"@pop"}]],[/\}/,"type","@pop"],{include:"@root"}],quote:[[/\$\(/,"key","@paste"],[/\(/,"@brackets","@paren"],[/\)/,"metatag","@pop"],{include:"@root"}],paste:[[/:\(/,"metatag","@quote"],[/\(/,"@brackets","@paren"],[/\)/,"key","@pop"],{include:"@root"}],paren:[[/\$\(/,"key","@paste"],[/:\(/,"metatag","@quote"],[/\(/,"@brackets","@push"],[/\)/,"@brackets","@pop"],{include:"@root"}],sregexp:[[/^.*/,"invalid"],[/[^\\"()\[\]{}]/,"regexp"],[/[()\[\]{}]/,"@brackets"],[/\\./,"operator.scss"],[/"[imsx]*/,"regexp.delim","@pop"]],tregexp:[[/[^\\"()\[\]{}]/,"regexp"],[/[()\[\]{}]/,"@brackets"],[/\\./,"operator.scss"],[/"(?!"")/,"string"],[/"""[imsx]*/,"regexp.delim","@pop"]],rsstring:[[/^.*/,"invalid"],[/[^\\"]/,"string"],[/\\./,"string.escape"],[/"/,"string.delim","@pop"]],rtstring:[[/[^\\"]/,"string"],[/\\./,"string.escape"],[/"(?!"")/,"string"],[/"""/,"string.delim","@pop"]],dsstring:[[/^.*/,"invalid"],[/[^\\"\$]/,"string"],[/\$/,"","@interpolated"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string.delim","@pop"]],dtstring:[[/[^\\"\$]/,"string"],[/\$/,"","@interpolated"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?!"")/,"string"],[/"""/,"string.delim","@pop"]],interpolated:[[/\(/,{token:"",switchTo:"@interpolated_compound"}],[/[a-zA-Z_]\w*/,"identifier"],["","","@pop"]],interpolated_compound:[[/\)/,"","@pop"],{include:"@root"}],whitespace:[[/[ \t\r\n]+/,""],[/#=/,"comment","@multi_comment"],[/#.*$/,"comment"]],multi_comment:[[/#=/,"comment","@push"],[/=#/,"comment","@pop"],[/=(?!#)|#(?!=)/,"comment"],[/[^#=]+/,"comment"]]}}}}]); -//# sourceMappingURL=3254.78ce4d35.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3258.248867bd.chunk.js b/ydb/core/viewer/monitoring/static/js/3258.248867bd.chunk.js deleted file mode 100644 index f3138502b614..000000000000 --- a/ydb/core/viewer/monitoring/static/js/3258.248867bd.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3258],{43258:function(e,n,s){s.r(n),s.d(n,{conf:function(){return o},language:function(){return t}});var o={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},t={defaultToken:"",tokenPostfix:".dockerfile",variable:/\${?[\w]+}?/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/(ONBUILD)(\s+)/,["keyword",""]],[/(ENV)(\s+)([\w]+)/,["keyword","",{token:"variable",next:"@arguments"}]],[/(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/,{token:"keyword",next:"@arguments"}]],arguments:[{include:"@whitespace"},{include:"@strings"},[/(@variable)/,{cases:{"@eos":{token:"variable",next:"@popall"},"@default":"variable"}}],[/\\/,{cases:{"@eos":"","@default":""}}],[/./,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],whitespace:[[/\s+/,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],comment:[[/(^#.*$)/,"comment","@popall"]],strings:[[/\\'$/,"","@popall"],[/\\'/,""],[/'$/,"string","@popall"],[/'/,"string","@stringBody"],[/"$/,"string","@popall"],[/"/,"string","@dblStringBody"]],stringBody:[[/[^\\\$']/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/'$/,"string","@popall"],[/'/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]],dblStringBody:[[/[^\\\$"]/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/"$/,"string","@popall"],[/"/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]]}}}}]); -//# sourceMappingURL=3258.248867bd.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3271.7b005742.chunk.js b/ydb/core/viewer/monitoring/static/js/3271.7b005742.chunk.js new file mode 100644 index 000000000000..5bec97b51f3d --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3271.7b005742.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3271],{53271:function(e,_,s){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=_(e),d={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 s.default.locale(d,null,!0),d}(s(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/328.f24db8bf.chunk.js b/ydb/core/viewer/monitoring/static/js/328.f24db8bf.chunk.js new file mode 100644 index 000000000000..5b6725dbd319 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/328.f24db8bf.chunk.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[328],{30328:(e,t,l)=>{l.r(t),l.d(t,{TopPanel:()=>P});var n=l(68963),a=l(77280),r=l(17176),o=l(91387),s=l(88776),i=l(39137),c=l(95216),u=l(77796);const d=n.createContext(null),m=()=>{const e=n.useContext(d);if(!e)throw new Error('Alert: `useAlertContext` hook is used out of "AlertContext"');return e},v=e=>{const{view:t}=m();return n.createElement(r.z,Object.assign({view:"filled"===t?"normal-contrast":void 0},e))};var p=l(36951);const g=18,w=(0,p.Ge)("alert"),f=e=>{let{layout:t,view:l,children:a}=e;return n.createElement(d.Provider,{value:{layout:t,view:l}},a)};var h=l(76506),E=l(80518),y=l(67585),b=l(68010);const C=e=>n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),n.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14Zm3.1-8.55a.75.75 0 1 0-1.2-.9L7.419 8.858 6.03 7.47a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.13-.08l3-4Z",clipRule:"evenodd"}));var x=l(96261),N=l(71586),k=l(93316);const A=e=>n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),n.createElement("path",{fill:"currentColor",d:"m14.61 6.914-7.632 8.08a1.614 1.614 0 0 1-2.69-1.66L5.5 10H2.677A1.677 1.677 0 0 1 1.12 7.7l2.323-5.807A2.216 2.216 0 0 1 5.5.5h4c.968 0 1.637.967 1.298 1.873L10 4.5h3.569a1.431 1.431 0 0 1 1.04 2.414Z"}));var Z=l(3442);const z={danger:{filled:h.Z,outlined:E.Z},info:{filled:y.Z,outlined:b.Z},success:{filled:C,outlined:x.Z},warning:{filled:N.Z,outlined:k.Z},utility:{filled:A,outlined:Z.Z},normal:null};var _=l(10288);var L=l(54973);const S=JSON.parse('{"label_close":"Close"}'),T=JSON.parse('{"label_close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c"}'),O=(0,L.e)({en:S,ru:T},"Alert"),R=e=>{const{theme:t="normal",view:l="filled",layout:d="vertical",message:m,className:v,corners:p,style:h,onClose:E,align:y,qa:b}=e;return n.createElement(f,{layout:d,view:l},n.createElement(o.Z,{style:h,className:w({corners:p},(0,c.W)({py:4,px:5},v)),theme:t,view:l,qa:b},n.createElement(u.k,{gap:"3",alignItems:y},"undefined"===typeof e.icon?n.createElement(R.Icon,{theme:t,view:l}):e.icon,n.createElement(u.k,{direction:"vertical"===d?"column":"row",gap:"5",grow:!0},n.createElement(u.k,{gap:"2",grow:!0,className:w("text-content")},n.createElement(u.k,{direction:"column",gap:"1",grow:!0,justifyContent:y},"string"===typeof e.title?n.createElement(R.Title,{text:e.title}):e.title,m)),Array.isArray(e.actions)?n.createElement(R.Actions,{items:e.actions}):e.actions),E&&n.createElement(r.z,{view:"flat",className:w("close-btn"),onClick:E,extraProps:{"aria-label":O("label_close")}},n.createElement(s.J,{data:a.Z,size:g,className:(0,i.V)({color:"secondary"})})))))};R.Icon=e=>{let{className:t,theme:l,view:a="filled",size:r=g}=e;const o=z[l];if(!o)return null;let c;return"success"===l?c="positive":"normal"!==l&&(c=l),n.createElement("div",{className:w("icon",(0,i.V)({color:c},t))},n.createElement(s.J,{data:o[a],size:r}))},R.Title=e=>{let{text:t,className:l}=e;return n.createElement(_.x,{variant:"subheader-2",className:w("title",l)},t)},R.Actions=e=>{let{items:t,children:l,className:a}=e;const{layout:r}=m();return n.createElement(u.k,{className:w("actions",{minContent:"horizontal"===r},a),direction:"row",gap:"3",wrap:!0,alignItems:"horizontal"===r?"center":"flex-start"},(null===t||void 0===t?void 0:t.map(((e,t)=>{let{handler:l,text:a}=e;return n.createElement(v,{key:t,onClick:l},a)})))||l)},R.Action=v;var j=l(5687),I=l(50528);l(5247);const J=e=>{let{topAlert:t}=e;const l=n.useRef(null),a=(e=>{const[t,l]=n.useState(0);return n.useEffect((()=>{if(e.current){const{current:t}=e;l(t.clientHeight)}}),[e]),t})(l),r=n.useCallback((e=>{const t=document.getElementsByClassName("g-root").item(0);null===t||void 0===t||t.style.setProperty("--gn-aside-top-panel-height",e+"px")}),[]),o=n.useCallback((()=>{var e;l.current&&r((null===(e=l.current)||void 0===e?void 0:e.clientHeight)||0)}),[l,r]);return n.useLayoutEffect((()=>{const e=(0,j.d)(o,200,{leading:!0});return t&&(window.addEventListener("resize",e),e()),()=>{window.removeEventListener("resize",e),r(0)}}),[t,a,l,o,r]),{topRef:l,updateTopSize:o}},P=e=>{let{topAlert:t}=e;const{topRef:l,updateTopSize:a}=J({topAlert:t}),[r,o]=n.useState(!0),s=n.useCallback((()=>{var e;o(!1),null===(e=null===t||void 0===t?void 0:t.onCloseTopAlert)||void 0===e||e.call(t)}),[t]);return n.useEffect((()=>{r||a()}),[r,a]),t&&t.message?n.createElement("div",{ref:l,className:(0,I.b)("pane-top",{opened:r})},r&&n.createElement(n.Fragment,null,n.createElement(R,{className:(0,I.b)("pane-top-alert",{centered:t.centered,dense:t.dense}),corners:"square",layout:"horizontal",theme:t.theme||"warning",icon:t.icon,title:t.title,message:t.message,actions:t.actions,onClose:t.closable?s:void 0}),n.createElement("div",{className:(0,I.b)("pane-top-divider")}))):null}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3304.f5897a96.chunk.js b/ydb/core/viewer/monitoring/static/js/3304.f5897a96.chunk.js new file mode 100644 index 000000000000..7f80ac0b9021 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3304.f5897a96.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3304],{73304: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 _=["th","st","nd","rd"],r=e%100;return"["+e+(_[(r-20)%10]||_[r]||_[0])+"]"}}}()}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3333.ceb196e6.chunk.js b/ydb/core/viewer/monitoring/static/js/3333.ceb196e6.chunk.js new file mode 100644 index 000000000000..0fc2a8c68216 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3333.ceb196e6.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3333],{3333:function(a,e,t){a.exports=function(a){"use strict";function e(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var t=e(a),_={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(a){return a},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 t.default.locale(_,null,!0),_}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3358.c777fe1f.chunk.js b/ydb/core/viewer/monitoring/static/js/3358.c777fe1f.chunk.js new file mode 100644 index 000000000000..c286147c6f3f --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3358.c777fe1f.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 3358.c777fe1f.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3358],{13358:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>i,language:()=>o});var i={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:'"',close:'"'}],autoClosingPairs:[{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["comment"]},{open:'"""',close:'"""'},{open:"`",close:"`",notIn:["string","comment"]},{open:"(",close:")"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"<<",close:">>"}],indentationRules:{increaseIndentPattern:/^\s*(after|else|catch|rescue|fn|[^#]*(do|<\-|\->|\{|\[|\=))\s*$/,decreaseIndentPattern:/^\s*((\}|\])\s*$|(after|else|catch|rescue|end)\b)/}},o={defaultToken:"source",tokenPostfix:".elixir",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"<<",close:">>",token:"delimiter.angle.special"}],declarationKeywords:["def","defp","defn","defnp","defguard","defguardp","defmacro","defmacrop","defdelegate","defcallback","defmacrocallback","defmodule","defprotocol","defexception","defimpl","defstruct"],operatorKeywords:["and","in","not","or","when"],namespaceKeywords:["alias","import","require","use"],otherKeywords:["after","case","catch","cond","do","else","end","fn","for","if","quote","raise","receive","rescue","super","throw","try","unless","unquote_splicing","unquote","with"],constants:["true","false","nil"],nameBuiltin:["__MODULE__","__DIR__","__ENV__","__CALLER__","__STACKTRACE__"],operator:/-[->]?|!={0,2}|\*{1,2}|\/|\\\\|&{1,3}|\.\.?|\^(?:\^\^)?|\+\+?|<(?:-|<<|=|>|\|>|~>?)?|=~|={1,3}|>(?:=|>>)?|\|~>|\|>|\|{1,3}|~>>?|~~~|::/,variableName:/[a-z_][a-zA-Z0-9_]*[?!]?/,atomName:/[a-zA-Z_][a-zA-Z0-9_@]*[?!]?|@specialAtomName|@operator/,specialAtomName:/\.\.\.|<<>>|%\{\}|%|\{\}/,aliasPart:/[A-Z][a-zA-Z0-9_]*/,moduleName:/@aliasPart(?:\.@aliasPart)*/,sigilSymmetricDelimiter:/"""|'''|"|'|\/|\|/,sigilStartDelimiter:/@sigilSymmetricDelimiter|<|\{|\[|\(/,sigilEndDelimiter:/@sigilSymmetricDelimiter|>|\}|\]|\)/,sigilModifiers:/[a-zA-Z0-9]*/,decimal:/\d(?:_?\d)*/,hex:/[0-9a-fA-F](_?[0-9a-fA-F])*/,octal:/[0-7](_?[0-7])*/,binary:/[01](_?[01])*/,escape:/\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2}|\\./,tokenizer:{root:[{include:"@whitespace"},{include:"@comments"},{include:"@keywordsShorthand"},{include:"@numbers"},{include:"@identifiers"},{include:"@strings"},{include:"@atoms"},{include:"@sigils"},{include:"@attributes"},{include:"@symbols"}],whitespace:[[/\s+/,"white"]],comments:[[/(#)(.*)/,["comment.punctuation","comment"]]],keywordsShorthand:[[/(@atomName)(:)(\s+)/,["constant","constant.punctuation","white"]],[/"(?=([^"]|#\{.*?\}|\\")*":)/,{token:"constant.delimiter",next:"@doubleQuotedStringKeyword"}],[/'(?=([^']|#\{.*?\}|\\')*':)/,{token:"constant.delimiter",next:"@singleQuotedStringKeyword"}]],doubleQuotedStringKeyword:[[/":/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringKeyword:[[/':/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],numbers:[[/0b@binary/,"number.binary"],[/0o@octal/,"number.octal"],[/0x@hex/,"number.hex"],[/@decimal\.@decimal([eE]-?@decimal)?/,"number.float"],[/@decimal/,"number"]],identifiers:[[/\b(defp?|defnp?|defmacrop?|defguardp?|defdelegate)(\s+)(@variableName)(?!\s+@operator)/,["keyword.declaration","white",{cases:{unquote:"keyword","@default":"function"}}]],[/(@variableName)(?=\s*\.?\s*\()/,{cases:{"@declarationKeywords":"keyword.declaration","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@default":"function.call"}}],[/(@moduleName)(\s*)(\.)(\s*)(@variableName)/,["type.identifier","white","operator","white","function.call"]],[/(:)(@atomName)(\s*)(\.)(\s*)(@variableName)/,["constant.punctuation","constant","white","operator","white","function.call"]],[/(\|>)(\s*)(@variableName)/,["operator","white",{cases:{"@otherKeywords":"keyword","@default":"function.call"}}]],[/(&)(\s*)(@variableName)/,["operator","white","function.call"]],[/@variableName/,{cases:{"@declarationKeywords":"keyword.declaration","@operatorKeywords":"keyword.operator","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@constants":"constant.language","@nameBuiltin":"variable.language","_.*":"comment.unused","@default":"identifier"}}],[/@moduleName/,"type.identifier"]],strings:[[/"""/,{token:"string.delimiter",next:"@doubleQuotedHeredoc"}],[/'''/,{token:"string.delimiter",next:"@singleQuotedHeredoc"}],[/"/,{token:"string.delimiter",next:"@doubleQuotedString"}],[/'/,{token:"string.delimiter",next:"@singleQuotedString"}]],doubleQuotedHeredoc:[[/"""/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedHeredoc:[[/'''/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],doubleQuotedString:[[/"/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedString:[[/'/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],atoms:[[/(:)(@atomName)/,["constant.punctuation","constant"]],[/:"/,{token:"constant.delimiter",next:"@doubleQuotedStringAtom"}],[/:'/,{token:"constant.delimiter",next:"@singleQuotedStringAtom"}]],doubleQuotedStringAtom:[[/"/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringAtom:[[/'/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],sigils:[[/~[a-z]@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.interpol"}],[/~([A-Z]+)@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.noInterpol"}]],sigil:[[/~([a-z]|[A-Z]+)\{/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.{.}"}],[/~([a-z]|[A-Z]+)\[/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.[.]"}],[/~([a-z]|[A-Z]+)\(/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.(.)"}],[/~([a-z]|[A-Z]+)\</,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.<.>"}],[/~([a-z]|[A-Z]+)(@sigilSymmetricDelimiter)/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.$2.$2"}]],"sigilStart.interpol.s":[[/~s@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.s":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContentInterpol"}],"sigilStart.noInterpol.S":[[/~S@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.S":[[/(^|[^\\])\\@sigilEndDelimiter/,"string"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContent"}],"sigilStart.interpol.r":[[/~r@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.r":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContentInterpol"}],"sigilStart.noInterpol.R":[[/~R@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.R":[[/(^|[^\\])\\@sigilEndDelimiter/,"regexp"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContent"}],"sigilStart.interpol":[[/~([a-z]|[A-Z]+)@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContentInterpol"}],"sigilStart.noInterpol":[[/~([a-z]|[A-Z]+)@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol":[[/(^|[^\\])\\@sigilEndDelimiter/,"sigil"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContent"}],attributes:[[/\@(module|type)?doc (~[sS])?"""/,{token:"comment.block.documentation",next:"@doubleQuotedHeredocDocstring"}],[/\@(module|type)?doc (~[sS])?'''/,{token:"comment.block.documentation",next:"@singleQuotedHeredocDocstring"}],[/\@(module|type)?doc (~[sS])?"/,{token:"comment.block.documentation",next:"@doubleQuotedStringDocstring"}],[/\@(module|type)?doc (~[sS])?'/,{token:"comment.block.documentation",next:"@singleQuotedStringDocstring"}],[/\@(module|type)?doc false/,"comment.block.documentation"],[/\@(@variableName)/,"variable"]],doubleQuotedHeredocDocstring:[[/"""/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],singleQuotedHeredocDocstring:[[/'''/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],doubleQuotedStringDocstring:[[/"/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],singleQuotedStringDocstring:[[/'/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],symbols:[[/\?(\\.|[^\\\s])/,"number.constant"],[/&\d+/,"operator"],[/<<<|>>>/,"operator"],[/[()\[\]\{\}]|<<|>>/,"@brackets"],[/\.\.\./,"identifier"],[/=>/,"punctuation"],[/@operator/,"operator"],[/[:;,.%]/,"punctuation"]],stringContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringContent"}],stringContent:[[/./,"string"]],stringConstantContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringConstantContent"}],stringConstantContent:[[/./,"constant"]],regexpContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@regexpContent"}],regexpContent:[[/(\s)(#)(\s.*)$/,["white","comment.punctuation","comment"]],[/./,"regexp"]],sigilContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@sigilContent"}],sigilContent:[[/./,"sigil"]],docstringContent:[[/./,"comment.block.documentation"]],escapeChar:[[/@escape/,"constant.character.escape"]],interpolation:[[/#{/,{token:"delimiter.bracket.embed",next:"@interpolationContinue"}]],interpolationContinue:[[/}/,{token:"delimiter.bracket.embed",next:"@pop"}],{include:"@root"}]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3358.c777fe1f.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/3358.c777fe1f.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3358.c777fe1f.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/337.b6fc715e.chunk.js b/ydb/core/viewer/monitoring/static/js/337.b6fc715e.chunk.js new file mode 100644 index 000000000000..91b207fddc30 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/337.b6fc715e.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 337.b6fc715e.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[337],{80337:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>s,language:()=>o});var s={comments:{lineComment:"#"}},o={defaultToken:"keyword",ignoreCase:!0,tokenPostfix:".azcli",str:/[^#\s]/,tokenizer:{root:[{include:"@comment"},[/\s-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}],[/^-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}]],type:[{include:"@comment"},[/-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":"key.identifier"}}],[/@str+\s*/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}]],comment:[[/#.*$/,{cases:{"@eos":{token:"comment",next:"@popall"}}}]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/337.b6fc715e.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/337.b6fc715e.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/337.b6fc715e.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/3397.9c0005a3.chunk.js b/ydb/core/viewer/monitoring/static/js/3397.9c0005a3.chunk.js new file mode 100644 index 000000000000..59b8571aa505 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3397.9c0005a3.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3397],{53397:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3451.774580b7.chunk.js b/ydb/core/viewer/monitoring/static/js/3451.774580b7.chunk.js deleted file mode 100644 index b888b8ee7c6e..000000000000 --- a/ydb/core/viewer/monitoring/static/js/3451.774580b7.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3451],{73451:function(e,t,n){n.r(t),n.d(t,{conf:function(){return o},language:function(){return s}});var o={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},s={tokenPostfix:".tcl",specialFunctions:["set","unset","rename","variable","proc","coroutine","foreach","incr","append","lappend","linsert","lreplace"],mainFunctions:["if","then","elseif","else","case","switch","while","for","break","continue","return","package","namespace","catch","exit","eval","expr","uplevel","upvar"],builtinFunctions:["file","info","concat","join","lindex","list","llength","lrange","lsearch","lsort","split","array","parray","binary","format","regexp","regsub","scan","string","subst","dict","cd","clock","exec","glob","pid","pwd","close","eof","fblocked","fconfigure","fcopy","fileevent","flush","gets","open","puts","read","seek","socket","tell","interp","after","auto_execok","auto_load","auto_mkindex","auto_reset","bgerror","error","global","history","load","source","time","trace","unknown","unset","update","vwait","winfo","wm","bind","event","pack","place","grid","font","bell","clipboard","destroy","focus","grab","lower","option","raise","selection","send","tk","tkwait","tk_bisque","tk_focusNext","tk_focusPrev","tk_focusFollowsMouse","tk_popup","tk_setPalette"],symbols:/[=><!~?:&|+\-*\/\^%]+/,brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],escapes:/\\(?:[abfnrtv\\"'\[\]\{\};\$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,variables:/(?:\$+(?:(?:\:\:?)?[a-zA-Z_]\w*)+)/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@specialFunctions":{token:"keyword.flow",next:"@specialFunc"},"@mainFunctions":"keyword","@builtinFunctions":"variable","@default":"operator.scss"}}],[/\s+\-+(?!\d|\.)\w*|{\*}/,"metatag"],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,"operator"],[/\$+(?:\:\:)?\{/,{token:"identifier",next:"@nestedVariable"}],[/@variables/,"type.identifier"],[/\.(?!\d|\.)[\w\-]*/,"operator.sql"],[/\d+(\.\d+)?/,"number"],[/\d+/,"number"],[/;/,"delimiter"],[/"/,{token:"string.quote",bracket:"@open",next:"@dstring"}],[/'/,{token:"string.quote",bracket:"@open",next:"@sstring"}]],dstring:[[/\[/,{token:"@brackets",next:"@nestedCall"}],[/\$+(?:\:\:)?\{/,{token:"identifier",next:"@nestedVariable"}],[/@variables/,"type.identifier"],[/[^\\$\[\]"]+/,"string"],[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],sstring:[[/\[/,{token:"@brackets",next:"@nestedCall"}],[/\$+(?:\:\:)?\{/,{token:"identifier",next:"@nestedVariable"}],[/@variables/,"type.identifier"],[/[^\\$\[\]']+/,"string"],[/@escapes/,"string.escape"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/#.*\\$/,{token:"comment",next:"@newlineComment"}],[/#.*(?!\\)$/,"comment"]],newlineComment:[[/.*\\$/,"comment"],[/.*(?!\\)$/,{token:"comment",next:"@pop"}]],nestedVariable:[[/[^\{\}\$]+/,"type.identifier"],[/\}/,{token:"identifier",next:"@pop"}]],nestedCall:[[/\[/,{token:"@brackets",next:"@nestedCall"}],[/\]/,{token:"@brackets",next:"@pop"}],{include:"root"}],specialFunc:[[/"/,{token:"string",next:"@dstring"}],[/'/,{token:"string",next:"@sstring"}],[/\S+/,{token:"type",next:"@pop"}]]}}}}]); -//# sourceMappingURL=3451.774580b7.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3457.b193afe6.chunk.js b/ydb/core/viewer/monitoring/static/js/3457.b193afe6.chunk.js new file mode 100644 index 000000000000..bf06b820fb0b --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3457.b193afe6.chunk.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3457],{73457:(e,l,t)=>{t.r(l),t.d(l,{ReactComponent:()=>M,default:()=>b});var c,a,h,v,m,n,z,d,r,i,f,s,p,o=t(68963);function E(){return E=Object.assign?Object.assign.bind():function(e){for(var l=1;l<arguments.length;l++){var t=arguments[l];for(var c in t)Object.prototype.hasOwnProperty.call(t,c)&&(e[c]=t[c])}return e},E.apply(this,arguments)}function u(e,l){let{title:t,titleId:u,...M}=e;return o.createElement("svg",E({width:349,height:357,fill:"none",xmlns:"http://www.w3.org/2000/svg",ref:l,"aria-labelledby":u},M),t?o.createElement("title",{id:u},t):null,c||(c=o.createElement("path",{d:"M275.033 85.83c0 24.7-9.9 83.9-9.9 117.1 0 33.2 0 106.3-27.8 134.1-27.8 27.8-61.9 16.1-61.9 16.1s-46.7 13-76.3-14.8c-29.6-27.8-60.1-83.5-69.1-115.3-9.9-35-26.5-49.3-27.8-56.5-1.3-7.2 3.6-12.1 12.1-12.6 8.5-.4 22.9 4 34.5 22 11.6 18 17.5 26 23.8 35.9 6.3 9.9 20.6 23.3 20.6 23.3s.4-44.9 1.3-64.1c.9-19.3-1.8-111.7 1.8-132.3 3.6-20.6 26.5-20.2 28.7-4 2.2 16.1 8.8 66.8 9.8 79.8s3.7 44.4 3.7 44.4l7.6-2.7s-.9-105.8-.9-132.9c0-29.2 28.7-29.2 32.3-4 3.6 25.2 6.7 142.8 6.7 142.8l6.7 2.7s2.2-111.7 5.8-129.6c3.6-17.9 26.5-17.5 30.1 4.9 3.6 22.4 1.3 72.2.9 94.2s-.9 43.5-.9 43.5l5.4 4s11-73.3 14.4-99.1c3.7-27.8 28.4-21.5 28.4 3.1z",fill:"#ECF2F9"})),a||(a=o.createElement("path",{d:"M279.233 267.33l-216.9 12c-7.3.4-13.3-5.2-13.3-12.5V99.43c0-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:"#FF4645"})),h||(h=o.createElement("path",{d:"M191.333 140.128l-32.3-1.4c-1.9-.1-3.8.6-5.2 1.9l-24.3 22.8c-1.4 1.3-2.2 3.2-2.2 5.2v33.7c0 2 .8 3.8 2.2 5.2l24.3 22.8c1.4 1.3 3.3 2 5.2 1.9l32.3-1.4c1.8-.1 3.6-.9 4.9-2.2l21.5-22.8c1.2-1.3 1.9-3.1 1.9-4.9v-31c0-1.8-.7-3.6-1.9-4.9l-21.5-22.8c-1.3-1.3-3.1-2.1-4.9-2.1z",fill:"#fff"})),v||(v=o.createElement("path",{d:"M203.433 196.428l-58.1.6c-1.6 0-3-1.3-3-3v-17.2c0-1.6 1.3-3 3-3l58.1.6c1.6 0 2.9 1.3 2.9 3v16c0 1.7-1.3 3-2.9 3z",fill:"#FF4645"})),m||(m=o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M74.733 104.63c0 3.4-2.7 6-6.1 5.8-3.4-.1-6.1-3-6.1-6.4 0-3.4 2.8-6 6.1-5.8 3.4.2 6.1 3 6.1 6.4zm19.7.9c0 3.3-2.7 5.9-6 5.8-3.3-.1-6-3-6-6.3s2.7-5.9 6-5.8c3.3.1 6 2.9 6 6.3zm13.4 6.498c3.2.2 5.8-2.4 5.8-5.7 0-3.3-2.6-6.1-5.8-6.2-3.3-.2-5.9 2.4-5.9 5.7 0 3.3 2.7 6.1 5.9 6.2z",fill:"#fff"})),n||(n=o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M248.733 248.231h84.6v-62c0-22.5-18.3-40.7-40.7-40.7h-3.2c-22.5 0-40.7 18.3-40.7 40.7v62zm70.2-14.3h-56v-47.7c0-14.6 11.9-26.4 26.4-26.4h3.2c14.6 0 26.4 11.9 26.4 26.4v47.7z",fill:"#DEB700"})),z||(z=o.createElement("path",{d:"M340.533 206.43s-16.3-2.7-17.3-2.7l-78.6 1.1c-7 .1-13.7 6.5-13.7 13.1v58.6c0 4.7 2.9 8.5 7 10.1 1.5.6 3.1.9 4.8.9l12.5 2.3 7.6-3.7 60.4-4.3c6.2-.4 11.2-5.8 11.2-11.9v-43.3l6.1-20.2z",fill:"#DEB700"})),d||(d=o.createElement("path",{d:"M337.633 284.332l-79.6 5.7c-7 .5-12.7-4.4-12.7-11v-59.6c0-6.6 5.7-12 12.7-12.1l79.6-1.1c6.2-.1 11.2 4.8 11.2 10.9v55.4c-.1 6-5 11.3-11.2 11.8z",fill:"#FBC900"})),r||(r=o.createElement("path",{d:"M313.033 236.931c0-6.3-5.2-11.4-11.7-11.4-6.7 0-12.3 5.4-12.3 12 0 5 3.2 9.1 7.6 10.7v15.5c0 2.5 2.1 4.4 4.7 4.2 2.6-.2 4.6-2.5 4.6-4.9v-15.1c4.3-2.1 7.1-6.3 7.1-11z",fill:"#00236B"})),i||(i=o.createElement("path",{d:"M308.333 236.93c0-5.5-4-10.1-9.3-11.2-5.6 1.1-10 6-10 11.8 0 5 3.2 9.1 7.6 10.7v15.5c0 1.5.8 2.8 2 3.5 1.6-.9 2.6-2.5 2.6-4.3v-15.1c4.2-2 7.1-6.2 7.1-10.9z",fill:"#18123D"})),f||(f=o.createElement("path",{d:"M21.733 41.629a2 2 0 0 0-4 0h4zm-4 8.2a2 2 0 1 0 4 0h-4zm4 17.198a2 2 0 0 0-4 0h4zm-4 8.9a2 2 0 1 0 4 0h-4zm19.2-15.197a2 2 0 0 0 0-4v4zm-8.3-4a2 2 0 1 0 0 4v-4zm-17.8 4a2 2 0 0 0 0-4v4zm-8.3-4a2 2 0 1 0 0 4v-4zm15.2-15.101v8.2h4v-8.2h-4zm0 25.398v8.9h4v-8.9h-4zm19.2-10.297h-8.3v4h8.3v-4zm-26.1 0h-8.3v4h8.3v-4zm284.2 259.098a2 2 0 0 0-4 0h4zm-4 6.2a2 2 0 1 0 4 0h-4zm4 13.1a2 2 0 0 0-4 0h4zm-4 6.8a2 2 0 1 0 4 0h-4zm15-11.1a2 2 0 0 0 0-4v4zm-6.2-4a2 2 0 0 0 0 4v-4zm-13.6 4a2 2 0 0 0 0-4v4zm-6.3-4a2 2 0 0 0 0 4v-4zm11.1-11v6.2h4v-6.2h-4zm0 19.3v6.8h4v-6.8h-4zm15-8.3h-6.2v4h6.2v-4zm-19.8 0h-6.3v4h6.3v-4z",fill:"#2EE5C0"})),s||(s=o.createElement("path",{clipRule:"evenodd",d:"M15.233 326.328c7.18 0 13-5.82 13-13s-5.82-13-13-13-13 5.82-13 13 5.82 13 13 13z",stroke:"#2EE5C0",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round"})),p||(p=o.createElement("path",{d:"M28.233 311.328a2 2 0 0 0 0 4v-4zm35.2 2h2a2 2 0 0 0-2-2v2zm-2 12.2a2 2 0 1 0 4 0h-4zm-17.1 0a2 2 0 1 0 4 0h-4zm4-12.2a2 2 0 0 0-4 0h4zm-20.1 2h35.2v-4h-35.2v4zm33.2-2v12.2h4v-12.2h-4zm-13.1 12.2v-12.2h-4v12.2h4z",fill:"#2EE5C0"})))}const M=o.forwardRef(u),b=t.p+"static/media/403.6367e52f9464706633f52a2488a41958.svg"}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3466.98f036ac.chunk.js b/ydb/core/viewer/monitoring/static/js/3466.98f036ac.chunk.js new file mode 100644 index 000000000000..fd9c3fdf291e --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3466.98f036ac.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3466],{33466:function(e,t,_){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=t(e),a={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 _.default.locale(a,null,!0),a}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3498.c7d39060.chunk.js b/ydb/core/viewer/monitoring/static/js/3498.c7d39060.chunk.js new file mode 100644 index 000000000000..71c2b096a56b --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3498.c7d39060.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 3498.c7d39060.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3498],{53498:(e,i,t)=>{t.r(i),t.d(i,{conf:()=>n,language:()=>s});var n={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:".kt",keywords:["as","as?","break","class","continue","do","else","false","for","fun","if","in","!in","interface","is","!is","null","object","package","return","super","this","throw","true","try","typealias","val","var","when","while","by","catch","constructor","delegate","dynamic","field","file","finally","get","import","init","param","property","receiver","set","setparam","where","actual","abstract","annotation","companion","const","crossinline","data","enum","expect","external","final","infix","inline","inner","internal","lateinit","noinline","open","operator","out","override","private","protected","public","reified","sealed","suspend","tailrec","vararg","field","it"],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-Z][\w\$]*/,"type.identifier"],[/[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","@multistring"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc","@push"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3498.c7d39060.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/3498.c7d39060.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3498.c7d39060.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/358.d6300019.chunk.js b/ydb/core/viewer/monitoring/static/js/358.d6300019.chunk.js new file mode 100644 index 000000000000..acb05ea06d92 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/358.d6300019.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 358.d6300019.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[358],{80358:(e,_,t)=>{t.r(_),t.d(_,{conf:()=>r,language:()=>i});var r={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:"'"}]},i={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["AES128","AES256","ALL","ALLOWOVERWRITE","ANALYSE","ANALYZE","AND","ANY","ARRAY","AS","ASC","AUTHORIZATION","AZ64","BACKUP","BETWEEN","BINARY","BLANKSASNULL","BOTH","BYTEDICT","BZIP2","CASE","CAST","CHECK","COLLATE","COLUMN","CONSTRAINT","CREATE","CREDENTIALS","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURRENT_USER_ID","DEFAULT","DEFERRABLE","DEFLATE","DEFRAG","DELTA","DELTA32K","DESC","DISABLE","DISTINCT","DO","ELSE","EMPTYASNULL","ENABLE","ENCODE","ENCRYPT","ENCRYPTION","END","EXCEPT","EXPLICIT","FALSE","FOR","FOREIGN","FREEZE","FROM","FULL","GLOBALDICT256","GLOBALDICT64K","GRANT","GROUP","GZIP","HAVING","IDENTITY","IGNORE","ILIKE","IN","INITIALLY","INNER","INTERSECT","INTO","IS","ISNULL","JOIN","LANGUAGE","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","LUN","LUNS","LZO","LZOP","MINUS","MOSTLY16","MOSTLY32","MOSTLY8","NATURAL","NEW","NOT","NOTNULL","NULL","NULLS","OFF","OFFLINE","OFFSET","OID","OLD","ON","ONLY","OPEN","OR","ORDER","OUTER","OVERLAPS","PARALLEL","PARTITION","PERCENT","PERMISSIONS","PLACING","PRIMARY","RAW","READRATIO","RECOVER","REFERENCES","RESPECT","REJECTLOG","RESORT","RESTORE","RIGHT","SELECT","SESSION_USER","SIMILAR","SNAPSHOT","SOME","SYSDATE","SYSTEM","TABLE","TAG","TDES","TEXT255","TEXT32K","THEN","TIMESTAMP","TO","TOP","TRAILING","TRUE","TRUNCATECOLUMNS","UNION","UNIQUE","USER","USING","VERBOSE","WALLET","WHEN","WHERE","WITH","WITHOUT"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["current_schema","current_schemas","has_database_privilege","has_schema_privilege","has_table_privilege","age","current_time","current_timestamp","localtime","isfinite","now","ascii","get_bit","get_byte","set_bit","set_byte","to_ascii","approximate percentile_disc","avg","count","listagg","max","median","min","percentile_cont","stddev_samp","stddev_pop","sum","var_samp","var_pop","bit_and","bit_or","bool_and","bool_or","cume_dist","first_value","lag","last_value","lead","nth_value","ratio_to_report","dense_rank","ntile","percent_rank","rank","row_number","case","coalesce","decode","greatest","least","nvl","nvl2","nullif","add_months","at time zone","convert_timezone","current_date","date_cmp","date_cmp_timestamp","date_cmp_timestamptz","date_part_year","dateadd","datediff","date_part","date_trunc","extract","getdate","interval_cmp","last_day","months_between","next_day","sysdate","timeofday","timestamp_cmp","timestamp_cmp_date","timestamp_cmp_timestamptz","timestamptz_cmp","timestamptz_cmp_date","timestamptz_cmp_timestamp","timezone","to_timestamp","trunc","abs","acos","asin","atan","atan2","cbrt","ceil","ceiling","checksum","cos","cot","degrees","dexp","dlog1","dlog10","exp","floor","ln","log","mod","pi","power","radians","random","round","sin","sign","sqrt","tan","to_hex","bpcharcmp","btrim","bttext_pattern_cmp","char_length","character_length","charindex","chr","concat","crc32","func_sha1","initcap","left and rights","len","length","lower","lpad and rpads","ltrim","md5","octet_length","position","quote_ident","quote_literal","regexp_count","regexp_instr","regexp_replace","regexp_substr","repeat","replace","replicate","reverse","rtrim","split_part","strpos","strtol","substring","textlen","translate","trim","upper","cast","convert","to_char","to_date","to_number","json_array_length","json_extract_array_element_text","json_extract_path_text","current_setting","pg_cancel_backend","pg_terminate_backend","set_config","current_database","current_user","current_user_id","pg_backend_pid","pg_last_copy_count","pg_last_copy_id","pg_last_query_id","pg_last_unload_count","session_user","slice_num","user","version","abbrev","acosd","any","area","array_agg","array_append","array_cat","array_dims","array_fill","array_length","array_lower","array_ndims","array_position","array_positions","array_prepend","array_remove","array_replace","array_to_json","array_to_string","array_to_tsvector","array_upper","asind","atan2d","atand","bit","bit_length","bound_box","box","brin_summarize_new_values","broadcast","cardinality","center","circle","clock_timestamp","col_description","concat_ws","convert_from","convert_to","corr","cosd","cotd","covar_pop","covar_samp","current_catalog","current_query","current_role","currval","cursor_to_xml","diameter","div","encode","enum_first","enum_last","enum_range","every","family","format","format_type","generate_series","generate_subscripts","get_current_ts_config","gin_clean_pending_list","grouping","has_any_column_privilege","has_column_privilege","has_foreign_data_wrapper_privilege","has_function_privilege","has_language_privilege","has_sequence_privilege","has_server_privilege","has_tablespace_privilege","has_type_privilege","height","host","hostmask","inet_client_addr","inet_client_port","inet_merge","inet_same_family","inet_server_addr","inet_server_port","isclosed","isempty","isopen","json_agg","json_object","json_object_agg","json_populate_record","json_populate_recordset","json_to_record","json_to_recordset","jsonb_agg","jsonb_object_agg","justify_days","justify_hours","justify_interval","lastval","left","line","localtimestamp","lower_inc","lower_inf","lpad","lseg","make_date","make_interval","make_time","make_timestamp","make_timestamptz","masklen","mode","netmask","network","nextval","npoints","num_nonnulls","num_nulls","numnode","obj_description","overlay","parse_ident","path","pclose","percentile_disc","pg_advisory_lock","pg_advisory_lock_shared","pg_advisory_unlock","pg_advisory_unlock_all","pg_advisory_unlock_shared","pg_advisory_xact_lock","pg_advisory_xact_lock_shared","pg_backup_start_time","pg_blocking_pids","pg_client_encoding","pg_collation_is_visible","pg_column_size","pg_conf_load_time","pg_control_checkpoint","pg_control_init","pg_control_recovery","pg_control_system","pg_conversion_is_visible","pg_create_logical_replication_slot","pg_create_physical_replication_slot","pg_create_restore_point","pg_current_xlog_flush_location","pg_current_xlog_insert_location","pg_current_xlog_location","pg_database_size","pg_describe_object","pg_drop_replication_slot","pg_export_snapshot","pg_filenode_relation","pg_function_is_visible","pg_get_constraintdef","pg_get_expr","pg_get_function_arguments","pg_get_function_identity_arguments","pg_get_function_result","pg_get_functiondef","pg_get_indexdef","pg_get_keywords","pg_get_object_address","pg_get_owned_sequence","pg_get_ruledef","pg_get_serial_sequence","pg_get_triggerdef","pg_get_userbyid","pg_get_viewdef","pg_has_role","pg_identify_object","pg_identify_object_as_address","pg_index_column_has_property","pg_index_has_property","pg_indexam_has_property","pg_indexes_size","pg_is_in_backup","pg_is_in_recovery","pg_is_other_temp_schema","pg_is_xlog_replay_paused","pg_last_committed_xact","pg_last_xact_replay_timestamp","pg_last_xlog_receive_location","pg_last_xlog_replay_location","pg_listening_channels","pg_logical_emit_message","pg_logical_slot_get_binary_changes","pg_logical_slot_get_changes","pg_logical_slot_peek_binary_changes","pg_logical_slot_peek_changes","pg_ls_dir","pg_my_temp_schema","pg_notification_queue_usage","pg_opclass_is_visible","pg_operator_is_visible","pg_opfamily_is_visible","pg_options_to_table","pg_postmaster_start_time","pg_read_binary_file","pg_read_file","pg_relation_filenode","pg_relation_filepath","pg_relation_size","pg_reload_conf","pg_replication_origin_create","pg_replication_origin_drop","pg_replication_origin_oid","pg_replication_origin_progress","pg_replication_origin_session_is_setup","pg_replication_origin_session_progress","pg_replication_origin_session_reset","pg_replication_origin_session_setup","pg_replication_origin_xact_reset","pg_replication_origin_xact_setup","pg_rotate_logfile","pg_size_bytes","pg_size_pretty","pg_sleep","pg_sleep_for","pg_sleep_until","pg_start_backup","pg_stat_file","pg_stop_backup","pg_switch_xlog","pg_table_is_visible","pg_table_size","pg_tablespace_databases","pg_tablespace_location","pg_tablespace_size","pg_total_relation_size","pg_trigger_depth","pg_try_advisory_lock","pg_try_advisory_lock_shared","pg_try_advisory_xact_lock","pg_try_advisory_xact_lock_shared","pg_ts_config_is_visible","pg_ts_dict_is_visible","pg_ts_parser_is_visible","pg_ts_template_is_visible","pg_type_is_visible","pg_typeof","pg_xact_commit_timestamp","pg_xlog_location_diff","pg_xlog_replay_pause","pg_xlog_replay_resume","pg_xlogfile_name","pg_xlogfile_name_offset","phraseto_tsquery","plainto_tsquery","point","polygon","popen","pqserverversion","query_to_xml","querytree","quote_nullable","radius","range_merge","regexp_matches","regexp_split_to_array","regexp_split_to_table","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","right","row_security_active","row_to_json","rpad","scale","set_masklen","setseed","setval","setweight","shobj_description","sind","sprintf","statement_timestamp","stddev","string_agg","string_to_array","strip","substr","table_to_xml","table_to_xml_and_xmlschema","tand","text","to_json","to_regclass","to_regnamespace","to_regoper","to_regoperator","to_regproc","to_regprocedure","to_regrole","to_regtype","to_tsquery","to_tsvector","transaction_timestamp","ts_debug","ts_delete","ts_filter","ts_headline","ts_lexize","ts_parse","ts_rank","ts_rank_cd","ts_rewrite","ts_stat","ts_token_type","tsquery_phrase","tsvector_to_array","tsvector_update_trigger","tsvector_update_trigger_column","txid_current","txid_current_snapshot","txid_snapshot_xip","txid_snapshot_xmax","txid_snapshot_xmin","txid_visible_in_snapshot","unnest","upper_inc","upper_inf","variance","width","width_bucket","xml_is_well_formed","xml_is_well_formed_content","xml_is_well_formed_document","xmlagg","xmlcomment","xmlconcat","xmlelement","xmlexists","xmlforest","xmlparse","xmlpi","xmlroot","xmlserialize","xpath","xpath_exists"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/358.d6300019.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/358.d6300019.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/358.d6300019.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/3621.9b6c61ab.chunk.js b/ydb/core/viewer/monitoring/static/js/3621.9b6c61ab.chunk.js new file mode 100644 index 000000000000..dd6205e938ae --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3621.9b6c61ab.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 3621.9b6c61ab.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3621],{13621:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>o,language:()=>s});var o={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},s={tokenPostfix:".rust",defaultToken:"invalid",keywords:["as","async","await","box","break","const","continue","crate","dyn","else","enum","extern","false","fn","for","if","impl","in","let","loop","match","mod","move","mut","pub","ref","return","self","static","struct","super","trait","true","try","type","unsafe","use","where","while","catch","default","union","static","abstract","alignof","become","do","final","macro","offsetof","override","priv","proc","pure","sizeof","typeof","unsized","virtual","yield"],typeKeywords:["Self","m32","m64","m128","f80","f16","f128","int","uint","float","char","bool","u8","u16","u32","u64","f32","f64","i8","i16","i32","i64","str","Option","Either","c_float","c_double","c_void","FILE","fpos_t","DIR","dirent","c_char","c_schar","c_uchar","c_short","c_ushort","c_int","c_uint","c_long","c_ulong","size_t","ptrdiff_t","clock_t","time_t","c_longlong","c_ulonglong","intptr_t","uintptr_t","off_t","dev_t","ino_t","pid_t","mode_t","ssize_t"],constants:["true","false","Some","None","Left","Right","Ok","Err"],supportConstants:["EXIT_FAILURE","EXIT_SUCCESS","RAND_MAX","EOF","SEEK_SET","SEEK_CUR","SEEK_END","_IOFBF","_IONBF","_IOLBF","BUFSIZ","FOPEN_MAX","FILENAME_MAX","L_tmpnam","TMP_MAX","O_RDONLY","O_WRONLY","O_RDWR","O_APPEND","O_CREAT","O_EXCL","O_TRUNC","S_IFIFO","S_IFCHR","S_IFBLK","S_IFDIR","S_IFREG","S_IFMT","S_IEXEC","S_IWRITE","S_IREAD","S_IRWXU","S_IXUSR","S_IWUSR","S_IRUSR","F_OK","R_OK","W_OK","X_OK","STDIN_FILENO","STDOUT_FILENO","STDERR_FILENO"],supportMacros:["format!","print!","println!","panic!","format_args!","unreachable!","write!","writeln!"],operators:["!","!=","%","%=","&","&=","&&","*","*=","+","+=","-","-=","->",".","..","...","/","/=",":",";","<<","<<=","<","<=","=","==","=>",">",">=",">>",">>=","@","^","^=","|","|=","||","_","?","#"],escapes:/\\([nrt0\"''\\]|x\h{2}|u\{\h{1,6}\})/,delimiters:/[,]/,symbols:/[\#\!\%\&\*\+\-\.\/\:\;\<\=\>\@\^\|_\?]+/,intSuffixes:/[iu](8|16|32|64|128|size)/,floatSuffixes:/f(32|64)/,tokenizer:{root:[[/r(#*)"/,{token:"string.quote",bracket:"@open",next:"@stringraw.$1"}],[/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,{cases:{"@typeKeywords":"keyword.type","@keywords":"keyword","@supportConstants":"keyword","@supportMacros":"keyword","@constants":"keyword","@default":"identifier"}}],[/\$/,"identifier"],[/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\'])/,"identifier"],[/'(\S|@escapes)'/,"string.byteliteral"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],{include:"@numbers"},{include:"@whitespace"},[/@delimiters/,{cases:{"@keywords":"keyword","@default":"delimiter"}}],[/[{}()\[\]<>]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],stringraw:[[/[^"#]+/,{token:"string"}],[/"(#*)/,{cases:{"$1==$S2":{token:"string.quote",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/["#]/,{token:"string"}]],numbers:[[/(0o[0-7_]+)(@intSuffixes)?/,{token:"number"}],[/(0b[0-1_]+)(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(\.[\d][\d_]*)?[eE][+-][\d_]+(@floatSuffixes)?/,{token:"number"}],[/\b(\d\.?[\d_]*)(@floatSuffixes)?\b/,{token:"number"}],[/(0x[\da-fA-F]+)_?(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(@intSuffixes?)?/,{token:"number"}]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3621.9b6c61ab.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/3621.9b6c61ab.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3621.9b6c61ab.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/3630.8eda2d3f.chunk.js b/ydb/core/viewer/monitoring/static/js/3630.8eda2d3f.chunk.js new file mode 100644 index 000000000000..3866f41f48ce --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3630.8eda2d3f.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3630],{63630:function(e,_,a){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=_(e),t={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 _=["th","st","nd","rd"],a=e%100;return"["+e+(_[(a-20)%10]||_[a]||_[0])+"]"}};return a.default.locale(t,null,!0),t}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3644.aeda46ca.chunk.js b/ydb/core/viewer/monitoring/static/js/3644.aeda46ca.chunk.js new file mode 100644 index 000000000000..8bad7a4dd18a --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3644.aeda46ca.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 3644.aeda46ca.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3644],{93644:(e,n,s)=>{s.r(n),s.d(n,{conf:()=>t,language:()=>o});var t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"#",blockComment:["<#","#>"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},o={defaultToken:"",ignoreCase:!0,tokenPostfix:".ps1",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],keywords:["begin","break","catch","class","continue","data","define","do","dynamicparam","else","elseif","end","exit","filter","finally","for","foreach","from","function","if","in","param","process","return","switch","throw","trap","try","until","using","var","while","workflow","parallel","sequence","inlinescript","configuration"],helpKeywords:/SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,symbols:/[=><!~?&%|+\-*\/\^;\.,]+/,escapes:/`(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_][\w-]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":""}}],[/[ \t\r\n]+/,""],[/^:\w*/,"metatag"],[/\$(\{((global|local|private|script|using):)?[\w]+\}|((global|local|private|script|using):)?[\w]+)/,"variable"],[/<#/,"comment","@comment"],[/#.*$/,"comment"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+?/,"number"],[/[;,.]/,"delimiter"],[/\@"/,"string",'@herestring."'],[/\@'/,"string","@herestring.'"],[/"/,{cases:{"@eos":"string","@default":{token:"string",next:'@string."'}}}],[/'/,{cases:{"@eos":"string","@default":{token:"string",next:"@string.'"}}}]],string:[[/[^"'\$`]+/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/@escapes/,{cases:{"@eos":{token:"string.escape",next:"@popall"},"@default":"string.escape"}}],[/`./,{cases:{"@eos":{token:"string.escape.invalid",next:"@popall"},"@default":"string.escape.invalid"}}],[/\$[\w]+$/,{cases:{'$S2=="':{token:"variable",next:"@popall"},"@default":{token:"string",next:"@popall"}}}],[/\$[\w]+/,{cases:{'$S2=="':"variable","@default":"string"}}],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}}}]],herestring:[[/^\s*(["'])@/,{cases:{"$1==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/[^\$`]+/,"string"],[/@escapes/,"string.escape"],[/`./,"string.escape.invalid"],[/\$[\w]+/,{cases:{'$S2=="':"variable","@default":"string"}}]],comment:[[/[^#\.]+/,"comment"],[/#>/,"comment","@pop"],[/(\.)(@helpKeywords)(?!\w)/,{token:"comment.keyword.$2"}],[/[\.#]/,"comment"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3644.aeda46ca.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/3644.aeda46ca.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3644.aeda46ca.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/3645.bdd20200.chunk.js b/ydb/core/viewer/monitoring/static/js/3645.bdd20200.chunk.js new file mode 100644 index 000000000000..52e4b3485b7f --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3645.bdd20200.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3645],{73645:function(e,_,n){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=_(e),o={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(o,null,!0),o}(n(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/371.93a1186d.chunk.js b/ydb/core/viewer/monitoring/static/js/371.93a1186d.chunk.js deleted file mode 100644 index 6e4dbe200085..000000000000 --- a/ydb/core/viewer/monitoring/static/js/371.93a1186d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[371],{20371:function(e,s,n){n.r(s),n.d(s,{conf:function(){return o},language:function(){return t}});var o={comments:{lineComment:"REM"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|REM\\s+)#region"),end:new RegExp("^\\s*(::\\s*|REM\\s+)#endregion")}}},t={defaultToken:"",ignoreCase:!0,tokenPostfix:".bat",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=><!~?&|+\-*\/\^;\.,]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\s*)(rem(?:\s.*|))$/,["","comment"]],[/(\@?)(@keywords)(?!\w)/,[{token:"keyword"},{token:"keyword.$2"}]],[/[ \t\r\n]+/,""],[/setlocal(?!\w)/,"keyword.tag-setlocal"],[/endlocal(?!\w)/,"keyword.tag-setlocal"],[/[a-zA-Z_]\w*/,""],[/:\w*/,"metatag"],[/%[^%]+%/,"variable"],[/%%[\w]+(?!\w)/,"variable"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],string:[[/[^\\"'%]+/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/%[\w ]+%/,"variable"],[/%%[\w]+(?!\w)/,"variable"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/$/,"string","@popall"]]}}}}]); -//# sourceMappingURL=371.93a1186d.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3756.67bd6b00.chunk.js b/ydb/core/viewer/monitoring/static/js/3756.67bd6b00.chunk.js new file mode 100644 index 000000000000..cd720477a728 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3756.67bd6b00.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3756],{83756:function(e,i,_){e.exports=function(e){"use strict";function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=i(e),u={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 _.default.locale(u,null,!0),u}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3757.7c534899.chunk.js b/ydb/core/viewer/monitoring/static/js/3757.7c534899.chunk.js new file mode 100644 index 000000000000..9917f0abed18 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3757.7c534899.chunk.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3757],{93757:(e,t,r)=>{r.r(t),r.d(t,{MonacoDiffEditor:()=>c,default:()=>g,monaco:()=>n});var n=r(41551),o=r(68963);function u(e){return/^\d+$/.test(e)?"".concat(e,"px"):e}function i(){}var l=function(){return l=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},l.apply(this,arguments)};function a(e){var t=e.width,r=e.height,i=e.value,a=e.defaultValue,c=e.language,d=e.theme,s=e.options,f=e.overrideServices,g=e.editorWillMount,p=e.editorDidMount,h=e.editorWillUnmount,v=e.onChange,m=e.className,M=e.original,E=e.originalUri,y=e.modifiedUri,O=(0,o.useRef)(null),b=(0,o.useRef)(null),C=(0,o.useRef)(null),w=(0,o.useRef)(null),N=u(t),V=u(r),j=(0,o.useMemo)((function(){return{width:N,height:V}}),[N,V]);return(0,o.useEffect)((function(){O.current&&(g(n),b.current=n.editor.createDiffEditor(O.current,l(l(l({},m?{extraEditorClassName:m}:{}),s),d?{theme:d}:{}),f),function(){var e=null!=i?i:a,t=null===E||void 0===E?void 0:E(n),r=null===y||void 0===y?void 0:y(n),o=t&&n.editor.getModel(t),u=r&&n.editor.getModel(r);o?(o.setValue(M),n.editor.setModelLanguage(o,c)):o=n.editor.createModel(e,c,t),u?(o.setValue(e),n.editor.setModelLanguage(u,c)):u=n.editor.createModel(e,c,r),b.current.setModel({original:o,modified:u})}(),function(){p(b.current,n);var e=b.current.getModel().modified;C.current=e.onDidChangeContent((function(t){w.current||v(e.getValue(),t)}))}())}),[]),(0,o.useEffect)((function(){b.current&&b.current.updateOptions(l(l({},m?{extraEditorClassName:m}:{}),s))}),[m,s]),(0,o.useEffect)((function(){b.current&&b.current.layout()}),[t,r]),(0,o.useEffect)((function(){if(b.current){var e=b.current.getModel(),t=e.original,r=e.modified;n.editor.setModelLanguage(t,c),n.editor.setModelLanguage(r,c)}}),[c]),(0,o.useEffect)((function(){if(b.current){var e=b.current.getModel().modified;w.current=!0,b.current.getModifiedEditor().pushUndoStop(),e.pushEditOperations([],[{range:e.getFullModelRange(),text:i}]),b.current.getModifiedEditor().pushUndoStop(),w.current=!1}}),[i]),(0,o.useEffect)((function(){n.editor.setTheme(d)}),[d]),(0,o.useEffect)((function(){if(b.current){var e=b.current.getModel().original;M!==e.getValue()&&e.setValue(M)}}),[M]),(0,o.useEffect)((function(){return function(){if(b.current){h(b.current,n),b.current.dispose();var e=b.current.getModel(),t=e.original,r=e.modified;t&&t.dispose(),r&&r.dispose()}C.current&&C.current.dispose()}}),[]),o.createElement("div",{ref:O,style:j,className:"react-monaco-editor-container"})}a.defaultProps={width:"100%",height:"100%",original:null,value:null,defaultValue:"",language:"javascript",theme:null,options:{},overrideServices:{},editorWillMount:i,editorDidMount:i,editorWillUnmount:i,onChange:i,className:null},a.displayName="MonacoDiffEditor";const c=a;var d=function(){return d=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},d.apply(this,arguments)},s=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r};function f(e){var t=e.width,r=e.height,i=e.value,l=e.defaultValue,a=e.language,c=e.theme,f=e.options,g=e.overrideServices,p=e.editorWillMount,h=e.editorDidMount,v=e.editorWillUnmount,m=e.onChange,M=e.className,E=e.uri,y=(0,o.useRef)(null),O=(0,o.useRef)(null),b=(0,o.useRef)(null),C=(0,o.useRef)(null),w=u(t),N=u(r),V=(0,o.useMemo)((function(){return{width:w,height:N}}),[w,N]);return(0,o.useEffect)((function(){var e=null!==i?i:l;if(y.current){var t=d(d({},f),p(n)||{}),r=null===E||void 0===E?void 0:E(n),o=r&&n.editor.getModel(r);o?(o.setValue(e),n.editor.setModelLanguage(o,a)):o=n.editor.createModel(e,a,r),O.current=n.editor.create(y.current,d(d(d({model:o},M?{extraEditorClassName:M}:{}),t),c?{theme:c}:{}),g),h(O.current,n),b.current=O.current.onDidChangeModelContent((function(e){C.current||m(O.current.getValue(),e)}))}}),[]),(0,o.useEffect)((function(){if(O.current){if(i===O.current.getValue())return;var e=O.current.getModel();C.current=!0,O.current.pushUndoStop(),e.pushEditOperations([],[{range:e.getFullModelRange(),text:i}],void 0),O.current.pushUndoStop(),C.current=!1}}),[i]),(0,o.useEffect)((function(){if(O.current){var e=O.current.getModel();n.editor.setModelLanguage(e,a)}}),[a]),(0,o.useEffect)((function(){if(O.current){f.model;var e=s(f,["model"]);O.current.updateOptions(d(d({},M?{extraEditorClassName:M}:{}),e))}}),[M,f]),(0,o.useEffect)((function(){O.current&&O.current.layout()}),[t,r]),(0,o.useEffect)((function(){n.editor.setTheme(c)}),[c]),(0,o.useEffect)((function(){return function(){O.current&&(v(O.current,n),O.current.dispose()),b.current&&b.current.dispose()}}),[]),o.createElement("div",{ref:y,style:V,className:"react-monaco-editor-container"})}f.defaultProps={width:"100%",height:"100%",value:null,defaultValue:"",language:"javascript",theme:null,options:{},overrideServices:{},editorWillMount:i,editorDidMount:i,editorWillUnmount:i,onChange:i,className:null},f.displayName="MonacoEditor";const g=f}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3771.0e0bb0f3.chunk.js b/ydb/core/viewer/monitoring/static/js/3771.0e0bb0f3.chunk.js deleted file mode 100644 index f24146af4142..000000000000 --- a/ydb/core/viewer/monitoring/static/js/3771.0e0bb0f3.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3771],{53771:function(e,n,t){t.r(n),t.d(n,{conf:function(){return r},language:function(){return o}});var r={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0}},o={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|.*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/[^#]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}}}}]); -//# sourceMappingURL=3771.0e0bb0f3.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3771.764124c3.chunk.js b/ydb/core/viewer/monitoring/static/js/3771.764124c3.chunk.js new file mode 100644 index 000000000000..8836351f7e30 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3771.764124c3.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 3771.764124c3.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3771],{23771:(e,n,o)=>{o.r(n),o.d(n,{conf:()=>s,language:()=>t});var s={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:"'"}]},t={defaultToken:"",tokenPostfix:".lua",keywords:["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while"],brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],operators:["+","-","*","/","%","^","#","==","~=","<=",">=","<",">","=",";",":",",",".","..","..."],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/(,)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/,["delimiter","","key","","delimiter"]],[/({)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/,["@brackets","","key","","delimiter"]],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/--\[([=]*)\[/,"comment","@comment.$1"],[/--.*$/,"comment"]],comment:[[/[^\]]+/,"comment"],[/\]([=]*)\]/,{cases:{"$1==$S2":{token:"comment",next:"@pop"},"@default":"comment"}}],[/./,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3771.764124c3.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/3771.764124c3.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3771.764124c3.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/383.4faec08b.chunk.js b/ydb/core/viewer/monitoring/static/js/383.4faec08b.chunk.js new file mode 100644 index 000000000000..3e4a0dbd6aee --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/383.4faec08b.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[383],{20383:function(u,r,n){u.exports=function(u){"use strict";function r(u){return u&&"object"==typeof u&&"default"in u?u:{default:u}}var n=r(u),e={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 t(u,r,n,t){var m=function(u,r,n,t){var m=t?0:n?1:2,a=2===u.length&&r%10==1?u[0]:u,d=e[a][m];return 1===u.length?d:"%d "+d}(n,u,t,r);return m.replace("%d",u)}var m={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(u){return u},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:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t}};return n.default.locale(m,null,!0),m}(n(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3848.be131fc6.chunk.js b/ydb/core/viewer/monitoring/static/js/3848.be131fc6.chunk.js deleted file mode 100644 index fb126f6214b9..000000000000 --- a/ydb/core/viewer/monitoring/static/js/3848.be131fc6.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3848],{93848:function(e,t,l){l.r(t),l.d(t,{ReactComponent:function(){return E}});var r,a,n,i,c,o,d,f,s=l(4519),u=["title","titleId"];function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r])}return e},p.apply(this,arguments)}function m(e,t){if(null==e)return{};var l,r,a=function(e,t){if(null==e)return{};var l,r,a={},n=Object.keys(e);for(r=0;r<n.length;r++)l=n[r],t.indexOf(l)>=0||(a[l]=e[l]);return a}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)l=n[r],t.indexOf(l)>=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(a[l]=e[l])}return a}function h(e,t){var l=e.title,h=e.titleId,E=m(e,u);return s.createElement("svg",p({xmlns:"http://www.w3.org/2000/svg",width:230,height:230,fill:"none",ref:t,"aria-labelledby":h},E),l?s.createElement("title",{id:h},l):null,r||(r=s.createElement("path",{fill:"#BECFE0",fillOpacity:.9,fillRule:"evenodd",d:"M169.001 51.666c5.523 0 10 4.477 10 10v21.017l18.197-10.506c4.783-2.762 10.899-1.123 13.66 3.66 2.761 4.783 1.123 10.899-3.66 13.66l-18.197 10.507 18.198 10.506c4.783 2.762 6.421 8.878 3.66 13.661-2.762 4.782-8.877 6.421-13.66 3.66l-18.198-10.506v21.008c0 5.523-4.477 10-10 10-5.522 0-10-4.477-10-10v-21.009l-18.199 10.507c-4.782 2.761-10.898 1.122-13.66-3.66-2.761-4.783-1.122-10.899 3.66-13.661l18.199-10.506-18.198-10.507c-4.783-2.761-6.421-8.877-3.66-13.66 2.762-4.783 8.877-6.422 13.66-3.66l18.198 10.507V61.666c0-5.523 4.478-10 10-10Z",clipRule:"evenodd"})),a||(a=s.createElement("path",{fill:"#262626",fillRule:"evenodd",d:"M171.523 95.922a11.003 11.003 0 0 1 1.099 8.347l-13.208 49.291c-1.572 5.868-7.604 9.351-13.472 7.778l-25.356-6.794a44.998 44.998 0 0 1-.53 1.929l25.368 6.797c6.935 1.858 14.064-2.257 15.922-9.192l13.207-49.291c.893-3.33.426-6.879-1.298-9.865L155.598 64.34a12.999 12.999 0 0 0-7.894-6.057l-29.972-8.031c-6.935-1.858-14.063 2.257-15.922 9.192l-11.328 42.277c.64.192 1.276.398 1.905.618l11.355-42.377c1.573-5.868 7.604-9.35 13.472-7.778l29.973 8.03a11 11 0 0 1 6.679 5.126l17.657 30.582Z",clipRule:"evenodd"})),n||(n=s.createElement("path",{fill:"#FF5958",fillOpacity:.9,d:"M35.388 155.273c-6.29-23.472 7.64-47.599 31.113-53.889 23.472-6.289 47.599 7.641 53.889 31.113 6.289 23.473-7.641 47.599-31.113 53.889-23.473 6.289-47.6-7.64-53.889-31.113Z"})),i||(i=s.createElement("path",{stroke:"#262626",strokeWidth:2,d:"M60.636 117.734c53.586-33.459-26.868-81.505-36.557-61.318-11.802 24.59 99.395 51.098 128.865-26.3"})),s.createElement("mask",{id:"b",width:89,height:89,x:33,y:99,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},c||(c=s.createElement("path",{fill:"#FF5958",fillOpacity:.9,d:"M35.388 155.273c-6.29-23.472 7.64-47.599 31.113-53.889 23.472-6.289 47.599 7.641 53.889 31.113 6.289 23.473-7.641 47.599-31.113 53.889-23.473 6.289-47.6-7.64-53.889-31.113Z"}))),o||(o=s.createElement("g",{filter:"url(#a)",mask:"url(#b)"},s.createElement("path",{stroke:"#262626",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.6,strokeWidth:2,d:"M172.389 95.422a12.004 12.004 0 0 1 1.199 9.106l-13.208 49.291c-1.715 6.401-8.295 10.2-14.697 8.485L91.591 147.81c-6.401-1.715-10.2-8.295-8.485-14.697l19.67-73.41c1.716-6.402 8.296-10.2 14.697-8.485l29.972 8.03a11.998 11.998 0 0 1 7.287 5.592l17.657 30.582Z"}))),d||(d=s.createElement("g",{filter:"url(#c)"},s.createElement("path",{fill:"#fff",fillOpacity:.72,fillRule:"evenodd",d:"M80.866 130.432a6.359 6.359 0 1 1-12.284 3.29 6.359 6.359 0 0 1 12.284-3.29Zm4.817-1.291c1.621 6.052-1.97 12.273-8.022 13.894-6.052 1.622-12.273-1.97-13.895-8.022-1.621-6.052 1.97-12.272 8.022-13.894 6.052-1.622 12.273 1.97 13.895 8.022Zm-21.346 32.565c-.154-.577-.009-2.61 2.877-5.555 2.665-2.721 6.917-5.33 12.158-6.734 5.24-1.404 10.227-1.271 13.896-.247 3.971 1.108 5.114 2.796 5.268 3.372a3.116 3.116 0 0 1-2.204 3.817l-28.178 7.55a3.116 3.116 0 0 1-3.817-2.203ZM78.081 144.6c-12.054 3.23-20.238 12.134-18.56 18.396a8.103 8.103 0 0 0 9.924 5.73l28.178-7.55a8.104 8.104 0 0 0 5.73-9.925c-1.678-6.261-13.218-9.881-25.272-6.651Z",clipRule:"evenodd"}))),f||(f=s.createElement("defs",null,s.createElement("filter",{id:"a",width:113.303,height:133.91,x:71.693,y:39.806,colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse"},s.createElement("feFlood",{floodOpacity:0,result:"BackgroundImageFix"}),s.createElement("feBlend",{in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),s.createElement("feGaussianBlur",{result:"effect1_foregroundBlur_1301_31085",stdDeviation:5})),s.createElement("filter",{id:"c",width:73.289,height:73.288,x:41.018,y:106.391,colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse"},s.createElement("feFlood",{floodOpacity:0,result:"BackgroundImageFix"}),s.createElement("feBlend",{in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),s.createElement("feColorMatrix",{in:"SourceAlpha",result:"hardAlpha",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"}),s.createElement("feOffset",null),s.createElement("feGaussianBlur",{stdDeviation:1.917}),s.createElement("feComposite",{in2:"hardAlpha",k2:-1,k3:1,operator:"arithmetic"}),s.createElement("feColorMatrix",{values:"0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.8 0"}),s.createElement("feBlend",{in2:"shape",result:"effect1_innerShadow_1301_31085"})))))}var E=s.forwardRef(h);t.default=l.p+"static/media/error.9bbd075178a739dcc30f2a7a3e2a3249.svg"}}]); -//# sourceMappingURL=3848.be131fc6.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3883.62a3dee4.chunk.js b/ydb/core/viewer/monitoring/static/js/3883.62a3dee4.chunk.js deleted file mode 100644 index e800a8ba92fb..000000000000 --- a/ydb/core/viewer/monitoring/static/js/3883.62a3dee4.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3883],{33883:function(e,n,s){s.r(n),s.d(n,{conf:function(){return t},language:function(){return i}});var t={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},i={defaultToken:"",tokenPostfix:".ini",escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\[[^\]]*\]/,"metatag"],[/(^\w+)(\s*)(\=)/,["key","","delimiter"]],{include:"@whitespace"},[/\d+/,"number"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/^\s*[#;].*$/,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}}}]); -//# sourceMappingURL=3883.62a3dee4.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3898.1fec42e6.chunk.js b/ydb/core/viewer/monitoring/static/js/3898.1fec42e6.chunk.js new file mode 100644 index 000000000000..8dc853648166 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3898.1fec42e6.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3898],{73898:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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){return"W"===e?_+"\u9031":_+"\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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3920.11b8c9d7.chunk.js b/ydb/core/viewer/monitoring/static/js/3920.11b8c9d7.chunk.js new file mode 100644 index 000000000000..a1177e7f7913 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3920.11b8c9d7.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3920],{33920:function(a,_,e){a.exports=function(a){"use strict";function _(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var e=_(a),t={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(a){return a+"."}};return e.default.locale(t,null,!0),t}(e(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3926.8f2c9741.chunk.js b/ydb/core/viewer/monitoring/static/js/3926.8f2c9741.chunk.js new file mode 100644 index 000000000000..79b75bbe0ec0 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3926.8f2c9741.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3926],{3926:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/3945.054c871d.chunk.js b/ydb/core/viewer/monitoring/static/js/3945.054c871d.chunk.js new file mode 100644 index 000000000000..0adadf5b6089 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/3945.054c871d.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[3945],{53945:function(_,e,a){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var a=e(_),t={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(_){return _},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 a.default.locale(t,null,!0),t}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4046.5dac72a9.chunk.js b/ydb/core/viewer/monitoring/static/js/4046.5dac72a9.chunk.js new file mode 100644 index 000000000000..20008dd18ead --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4046.5dac72a9.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 4046.5dac72a9.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4046],{44046:(e,s,o)=>{o.r(s),o.d(s,{conf:()=>n,language:()=>l});var n={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},l={defaultToken:"",tokenPostfix:".dockerfile",variable:/\${?[\w]+}?/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/(ONBUILD)(\s+)/,["keyword",""]],[/(ENV)(\s+)([\w]+)/,["keyword","",{token:"variable",next:"@arguments"}]],[/(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/,{token:"keyword",next:"@arguments"}]],arguments:[{include:"@whitespace"},{include:"@strings"},[/(@variable)/,{cases:{"@eos":{token:"variable",next:"@popall"},"@default":"variable"}}],[/\\/,{cases:{"@eos":"","@default":""}}],[/./,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],whitespace:[[/\s+/,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],comment:[[/(^#.*$)/,"comment","@popall"]],strings:[[/\\'$/,"","@popall"],[/\\'/,""],[/'$/,"string","@popall"],[/'/,"string","@stringBody"],[/"$/,"string","@popall"],[/"/,"string","@dblStringBody"]],stringBody:[[/[^\\\$']/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/'$/,"string","@popall"],[/'/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]],dblStringBody:[[/[^\\\$"]/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/"$/,"string","@popall"],[/"/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4046.5dac72a9.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/4046.5dac72a9.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4046.5dac72a9.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/4080.07be3744.chunk.js b/ydb/core/viewer/monitoring/static/js/4080.07be3744.chunk.js new file mode 100644 index 000000000000..37cbf2076552 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4080.07be3744.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4080],{4080:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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){return"W"===e?_+"\u5468":_+"\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){var t=100*_+e;return t<600?"\u51cc\u6668":t<900?"\u65e9\u4e0a":t<1100?"\u4e0a\u5348":t<1300?"\u4e2d\u5348":t<1800?"\u4e0b\u5348":"\u665a\u4e0a"}};return t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4123.64882a16.chunk.js b/ydb/core/viewer/monitoring/static/js/4123.64882a16.chunk.js new file mode 100644 index 000000000000..c00aeeeaf23c --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4123.64882a16.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 4123.64882a16.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4123],{14123:(e,o,t)=>{t.r(o),t.d(o,{conf:()=>n,language:()=>s});var n={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"(*",close:"*)"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"(*",close:"*)"}]},s={defaultToken:"",tokenPostfix:".cameligo",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["abs","assert","block","Bytes","case","Crypto","Current","else","failwith","false","for","fun","if","in","let","let%entry","let%init","List","list","Map","map","match","match%nat","mod","not","operation","Operation","of","record","Set","set","sender","skip","source","String","then","to","true","type","with"],typeKeywords:["int","unit","string","tz","nat","bool"],operators:["=",">","<","<=",">=","<>",":",":=","and","mod","or","+","-","*","/","@","&","^","%","->","<-","&&","||"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\(\*]+/,"comment"],[/\*\)/,"comment","@pop"],[/\(\*/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4123.64882a16.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/4123.64882a16.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4123.64882a16.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/4132.04be158e.chunk.js b/ydb/core/viewer/monitoring/static/js/4132.04be158e.chunk.js new file mode 100644 index 000000000000..b8115b388528 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4132.04be158e.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4132],{84132:function(e,n,t){e.exports=function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(e),a={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,n,t){var r=a[t];return Array.isArray(r)&&(r=r[n?0:1]),r.replace("%d",e)}var _={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 t.default.locale(_,null,!0),_}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4159.5e0cfd91.chunk.js b/ydb/core/viewer/monitoring/static/js/4159.5e0cfd91.chunk.js new file mode 100644 index 000000000000..a524df3e5823 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4159.5e0cfd91.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4159],{14159:function(e,_,t){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),a={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 _=e%10;return"["+e+(1===_||2===_?"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 t.default.locale(a,null,!0),a}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4198.d0671061.chunk.js b/ydb/core/viewer/monitoring/static/js/4198.d0671061.chunk.js new file mode 100644 index 000000000000..7511b797b3c3 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4198.d0671061.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4198],{34198:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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(_){return _>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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/425.c6dd581a.chunk.js b/ydb/core/viewer/monitoring/static/js/425.c6dd581a.chunk.js new file mode 100644 index 000000000000..048a2886cc83 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/425.c6dd581a.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 425.c6dd581a.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[425],{425:(e,r,i)=>{i.r(r),i.d(r,{conf:()=>t,language:()=>s});var t={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".shell",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["if","then","do","else","elif","while","until","for","in","esac","fi","fin","fil","done","exit","set","unset","export","function"],builtins:["ab","awk","bash","beep","cat","cc","cd","chown","chmod","chroot","clear","cp","curl","cut","diff","echo","find","gawk","gcc","get","git","grep","hg","kill","killall","ln","ls","make","mkdir","openssl","mv","nc","node","npm","ping","ps","restart","rm","rmdir","sed","service","sh","shopt","shred","source","sort","sleep","ssh","start","stop","su","sudo","svn","tee","telnet","top","touch","vi","vim","wall","wc","wget","who","write","yes","zsh"],startingWithDash:/\-+\w+/,identifiersWithDashes:/[a-zA-Z]\w+(?:@startingWithDash)+/,symbols:/[=><!~?&|+\-*\/\^;\.,]+/,tokenizer:{root:[[/@identifiersWithDashes/,""],[/(\s)((?:@startingWithDash)+)/,["white","attribute.name"]],[/[a-zA-Z]\w*/,{cases:{"@keywords":"keyword","@builtins":"type.identifier","@default":""}}],{include:"@whitespace"},{include:"@strings"},{include:"@parameters"},{include:"@heredoc"},[/[{}\[\]()]/,"@brackets"],[/@symbols/,"delimiter"],{include:"@numbers"},[/[,;]/,"delimiter"]],whitespace:[[/\s+/,"white"],[/(^#!.*$)/,"metatag"],[/(^#.*$)/,"comment"]],numbers:[[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+/,"number"]],strings:[[/'/,"string","@stringBody"],[/"/,"string","@dblStringBody"]],stringBody:[[/'/,"string","@popall"],[/./,"string"]],dblStringBody:[[/"/,"string","@popall"],[/./,"string"]],heredoc:[[/(<<[-<]?)(\s*)(['"`]?)([\w\-]+)(['"`]?)/,["constants","white","string.heredoc.delimiter","string.heredoc","string.heredoc.delimiter"]]],parameters:[[/\$\d+/,"variable.predefined"],[/\$\w+/,"variable"],[/\$[*@#?\-$!0_]/,"variable"],[/\$'/,"variable","@parameterBodyQuote"],[/\$"/,"variable","@parameterBodyDoubleQuote"],[/\$\(/,"variable","@parameterBodyParen"],[/\$\{/,"variable","@parameterBodyCurlyBrace"]],parameterBodyQuote:[[/[^#:%*@\-!_']+/,"variable"],[/[#:%*@\-!_]/,"delimiter"],[/[']/,"variable","@pop"]],parameterBodyDoubleQuote:[[/[^#:%*@\-!_"]+/,"variable"],[/[#:%*@\-!_]/,"delimiter"],[/["]/,"variable","@pop"]],parameterBodyParen:[[/[^#:%*@\-!_)]+/,"variable"],[/[#:%*@\-!_]/,"delimiter"],[/[)]/,"variable","@pop"]],parameterBodyCurlyBrace:[[/[^#:%*@\-!_}]+/,"variable"],[/[#:%*@\-!_]/,"delimiter"],[/[}]/,"variable","@pop"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/425.c6dd581a.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/425.c6dd581a.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/425.c6dd581a.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/4326.d5c34c54.chunk.js b/ydb/core/viewer/monitoring/static/js/4326.d5c34c54.chunk.js new file mode 100644 index 000000000000..cff2f9cbf2a5 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4326.d5c34c54.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4326],{94326:function(e,_,n){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=_(e),d={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(d,null,!0),d}(n(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4345.9238776d.chunk.js b/ydb/core/viewer/monitoring/static/js/4345.9238776d.chunk.js new file mode 100644 index 000000000000..982d64d8ce90 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4345.9238776d.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 4345.9238776d.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4345],{44345:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>i,language:()=>_});var i={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},_={defaultToken:"",tokenPostfix:".cpp",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["abstract","amp","array","auto","bool","break","case","catch","char","class","const","constexpr","const_cast","continue","cpu","decltype","default","delegate","delete","do","double","dynamic_cast","each","else","enum","event","explicit","export","extern","false","final","finally","float","for","friend","gcnew","generic","goto","if","in","initonly","inline","int","interface","interior_ptr","internal","literal","long","mutable","namespace","new","noexcept","nullptr","__nullptr","operator","override","partial","pascal","pin_ptr","private","property","protected","public","ref","register","reinterpret_cast","restrict","return","safe_cast","sealed","short","signed","sizeof","static","static_assert","static_cast","struct","switch","template","this","thread_local","throw","tile_static","true","try","typedef","typeid","typename","union","unsigned","using","virtual","void","volatile","wchar_t","where","while","_asm","_based","_cdecl","_declspec","_fastcall","_if_exists","_if_not_exists","_inline","_multiple_inheritance","_pascal","_single_inheritance","_stdcall","_virtual_inheritance","_w64","__abstract","__alignof","__asm","__assume","__based","__box","__builtin_alignof","__cdecl","__clrcall","__declspec","__delegate","__event","__except","__fastcall","__finally","__forceinline","__gc","__hook","__identifier","__if_exists","__if_not_exists","__inline","__int128","__int16","__int32","__int64","__int8","__interface","__leave","__m128","__m128d","__m128i","__m256","__m256d","__m256i","__m512","__m512d","__m512i","__m64","__multiple_inheritance","__newslot","__nogc","__noop","__nounwind","__novtordisp","__pascal","__pin","__pragma","__property","__ptr32","__ptr64","__raise","__restrict","__resume","__sealed","__single_inheritance","__stdcall","__super","__thiscall","__try","__try_cast","__typeof","__unaligned","__unhook","__uuidof","__value","__virtual_inheritance","__w64","__wchar_t"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>="],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[0abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/([uU](ll|LL|l|L)|(ll|LL|l|L)?[uU]?)/,floatsuffix:/[fFlL]?/,encoding:/u|u8|U|L/,tokenizer:{root:[[/@encoding?R\"(?:([^ ()\\\t]*))\(/,{token:"string.raw.begin",next:"@raw.$1"}],[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/^\s*#\s*include/,{token:"keyword.directive.include",next:"@include"}],[/^\s*#\s*\w+/,"keyword.directive"],{include:"@whitespace"},[/\[\s*\[/,{token:"annotation",next:"@annotation"}],[/[{}()<>\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*\\$/,"comment","@linecomment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],linecomment:[[/.*[^\\]$/,"comment","@pop"],[/[^]+/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],raw:[[/[^)]+/,"string.raw"],[/\)$S2\"/,{token:"string.raw.end",next:"@pop"}],[/\)/,"string.raw"]],annotation:[{include:"@whitespace"},[/using|alignas/,"keyword"],[/[a-zA-Z0-9_]+/,"annotation"],[/[,:]/,"delimiter"],[/[()]/,"@brackets"],[/\]\s*\]/,{token:"annotation",next:"@pop"}]],include:[[/(\s*)(<)([^<>]*)(>)/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]],[/(\s*)(")([^"]*)(")/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4345.9238776d.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/4345.9238776d.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4345.9238776d.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/4347.adf03999.chunk.js b/ydb/core/viewer/monitoring/static/js/4347.adf03999.chunk.js new file mode 100644 index 000000000000..02abffe4d6d3 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4347.adf03999.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4347],{64347:function(s,e,i){s.exports=function(s){"use strict";function e(s){return s&&"object"==typeof s&&"default"in s?s:{default:s}}var i=e(s),M="sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio".split("_"),d="sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),a=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,Y=function(s,e){return a.test(e)?M[s.month()]:d[s.month()]};Y.s=d,Y.f=M;var l={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:Y,monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),ordinal:function(s){return s+"."},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 i.default.locale(l,null,!0),l}(i(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/436.564ff0f8.chunk.js b/ydb/core/viewer/monitoring/static/js/436.564ff0f8.chunk.js new file mode 100644 index 000000000000..dfe8576df9c9 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/436.564ff0f8.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[436],{75643:function(a,u,e){a.exports=function(a){"use strict";function u(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var e=u(a),t={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(a){return a}};return e.default.locale(t,null,!0),t}(e(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4388.edb51304.chunk.js b/ydb/core/viewer/monitoring/static/js/4388.edb51304.chunk.js new file mode 100644 index 000000000000..1cf72bf9fad8 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4388.edb51304.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 4388.edb51304.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4388],{34388:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>o,language:()=>r});var o={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:"(",close:")"},{open:'"',close:'"'},{open:"`",close:"`"}],folding:{markers:{start:/^\s*\s*#?region\b/,end:/^\s*\s*#?endregion\b/}}},r={defaultToken:"invalid",tokenPostfix:".dart",keywords:["abstract","dynamic","implements","show","as","else","import","static","assert","enum","in","super","async","export","interface","switch","await","extends","is","sync","break","external","library","this","case","factory","mixin","throw","catch","false","new","true","class","final","null","try","const","finally","on","typedef","continue","for","operator","var","covariant","Function","part","void","default","get","rethrow","while","deferred","hide","return","with","do","if","set","yield"],typeKeywords:["int","double","String","bool"],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]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,"delimiter.bracket"],{include:"common"}],common:[[/[a-z_$][\w$]*/,{cases:{"@typeKeywords":"type.identifier","@keywords":"keyword","@default":"identifier"}}],[/[A-Z_$][\w\$]*/,"type.identifier"],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:"regexp",bracket:"@open",next:"@regexp"}],[/@[a-zA-Z]+/,"annotation"],[/[()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/\/.*$/,"comment.doc"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([gimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"\$]+/,"string"],[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"],[/\$\w+/,"identifier"]],string_single:[[/[^\\'\$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"],[/\$\w+/,"identifier"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4388.edb51304.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/4388.edb51304.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4388.edb51304.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/451.3b449e79.chunk.js b/ydb/core/viewer/monitoring/static/js/451.3b449e79.chunk.js new file mode 100644 index 000000000000..48e51546ae09 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/451.3b449e79.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 451.3b449e79.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[451],{80451:(e,s,o)=>{o.r(s),o.d(s,{conf:()=>t,language:()=>n});var t={comments:{lineComment:"REM"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|REM\\s+)#region"),end:new RegExp("^\\s*(::\\s*|REM\\s+)#endregion")}}},n={defaultToken:"",ignoreCase:!0,tokenPostfix:".bat",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=><!~?&|+\-*\/\^;\.,]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\s*)(rem(?:\s.*|))$/,["","comment"]],[/(\@?)(@keywords)(?!\w)/,[{token:"keyword"},{token:"keyword.$2"}]],[/[ \t\r\n]+/,""],[/setlocal(?!\w)/,"keyword.tag-setlocal"],[/endlocal(?!\w)/,"keyword.tag-setlocal"],[/[a-zA-Z_]\w*/,""],[/:\w*/,"metatag"],[/%[^%]+%/,"variable"],[/%%[\w]+(?!\w)/,"variable"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],string:[[/[^\\"'%]+/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/%[\w ]+%/,"variable"],[/%%[\w]+(?!\w)/,"variable"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/$/,"string","@popall"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/451.3b449e79.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/451.3b449e79.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/451.3b449e79.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/4529.eb0068c3.chunk.js b/ydb/core/viewer/monitoring/static/js/4529.eb0068c3.chunk.js deleted file mode 100644 index 52a013c8a752..000000000000 --- a/ydb/core/viewer/monitoring/static/js/4529.eb0068c3.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4529],{34529:function(e,t,n){n.r(t),n.d(t,{getCLS:function(){return p},getFCP:function(){return y},getFID:function(){return k},getLCP:function(){return F},getTTFB:function(){return C}});var i,a,r,o,u=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:"v1-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},c=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if("first-input"===e&&!("PerformanceEventTiming"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},f=function(e,t){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(e(i),t&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},s=function(e){addEventListener("pageshow",(function(t){t.persisted&&e(t)}),!0)},d="function"==typeof WeakSet?new WeakSet:new Set,m=function(e,t,n){var i;return function(){t.value>=0&&(n||d.has(t)||"hidden"===document.visibilityState)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},p=function(e,t){var n,i=u("CLS",0),a=function(e){e.hadRecentInput||(i.value+=e.value,i.entries.push(e),n())},r=c("layout-shift",a);r&&(n=m(e,i,t),f((function(){r.takeRecords().map(a),n()})),s((function(){i=u("CLS",0),n=m(e,i,t)})))},v=-1,l=function(){return"hidden"===document.visibilityState?0:1/0},h=function(){f((function(e){var t=e.timeStamp;v=t}),!0)},g=function(){return v<0&&(v=l(),h(),s((function(){setTimeout((function(){v=l(),h()}),0)}))),{get timeStamp(){return v}}},y=function(e,t){var n,i=g(),a=u("FCP"),r=function(e){"first-contentful-paint"===e.name&&(f&&f.disconnect(),e.startTime<i.timeStamp&&(a.value=e.startTime,a.entries.push(e),d.add(a),n()))},o=performance.getEntriesByName("first-contentful-paint")[0],f=o?null:c("paint",r);(o||f)&&(n=m(e,a,t),o&&r(o),s((function(i){a=u("FCP"),n=m(e,a,t),requestAnimationFrame((function(){requestAnimationFrame((function(){a.value=performance.now()-i.timeStamp,d.add(a),n()}))}))})))},S={passive:!0,capture:!0},E=new Date,w=function(e,t){i||(i=t,a=e,r=new Date,T(removeEventListener),L())},L=function(){if(a>=0&&a<r-E){var e={entryType:"first-input",name:i.type,target:i.target,cancelable:i.cancelable,startTime:i.timeStamp,processingStart:i.timeStamp+a};o.forEach((function(t){t(e)})),o=[]}},b=function(e){if(e.cancelable){var t=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,t){var n=function(){w(e,t),a()},i=function(){a()},a=function(){removeEventListener("pointerup",n,S),removeEventListener("pointercancel",i,S)};addEventListener("pointerup",n,S),addEventListener("pointercancel",i,S)}(t,e):w(t,e)}},T=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(t){return e(t,b,S)}))},k=function(e,t){var n,r=g(),p=u("FID"),v=function(e){e.startTime<r.timeStamp&&(p.value=e.processingStart-e.startTime,p.entries.push(e),d.add(p),n())},l=c("first-input",v);n=m(e,p,t),l&&f((function(){l.takeRecords().map(v),l.disconnect()}),!0),l&&s((function(){var r;p=u("FID"),n=m(e,p,t),o=[],a=-1,i=null,T(addEventListener),r=v,o.push(r),L()}))},F=function(e,t){var n,i=g(),a=u("LCP"),r=function(e){var t=e.startTime;t<i.timeStamp&&(a.value=t,a.entries.push(e)),n()},o=c("largest-contentful-paint",r);if(o){n=m(e,a,t);var p=function(){d.has(a)||(o.takeRecords().map(r),o.disconnect(),d.add(a),n())};["keydown","click"].forEach((function(e){addEventListener(e,p,{once:!0,capture:!0})})),f(p,!0),s((function(i){a=u("LCP"),n=m(e,a,t),requestAnimationFrame((function(){requestAnimationFrame((function(){a.value=performance.now()-i.timeStamp,d.add(a),n()}))}))}))}},C=function(e){var t,n=u("TTFB");t=function(){try{var t=performance.getEntriesByType("navigation")[0]||function(){var e=performance.timing,t={entryType:"navigation",startTime:0};for(var n in e)"navigationStart"!==n&&"toJSON"!==n&&(t[n]=Math.max(e[n]-e.navigationStart,0));return t}();if(n.value=n.delta=t.responseStart,n.value<0)return;n.entries=[t],e(n)}catch(e){}},"complete"===document.readyState?setTimeout(t,0):addEventListener("pageshow",t)}}}]); -//# sourceMappingURL=4529.eb0068c3.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4535.5d1c8322.chunk.js b/ydb/core/viewer/monitoring/static/js/4535.5d1c8322.chunk.js new file mode 100644 index 000000000000..cb48f00d4bac --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4535.5d1c8322.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4535],{44535:function(t,_,h){t.exports=function(t){"use strict";function _(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var h=_(t),n={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(t){return t},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 h.default.locale(n,null,!0),n}(h(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4546.6820709e.chunk.js b/ydb/core/viewer/monitoring/static/js/4546.6820709e.chunk.js deleted file mode 100644 index 6d1c1d4476da..000000000000 --- a/ydb/core/viewer/monitoring/static/js/4546.6820709e.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4546],{34546:function(e,t,r){r.r(t),r.d(t,{conf:function(){return n},language:function(){return s}});var n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:["###","###"],lineComment:"#"},folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},s={defaultToken:"",ignoreCase:!1,tokenPostfix:".mips",regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,keywords:[".data",".text","syscall","trap","add","addu","addi","addiu","and","andi","div","divu","mult","multu","nor","or","ori","sll","slv","sra","srav","srl","srlv","sub","subu","xor","xori","lhi","lho","lhi","llo","slt","slti","sltu","sltiu","beq","bgtz","blez","bne","j","jal","jalr","jr","lb","lbu","lh","lhu","lw","li","la","sb","sh","sw","mfhi","mflo","mthi","mtlo","move"],symbols:/[\.,\:]+/,escapes:/\\(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\$[a-zA-Z_]\w*/,"variable.predefined"],[/[.a-zA-Z_]\w*/,{cases:{this:"variable.predefined","@keywords":{token:"keyword.$0"},"@default":""}}],[/[ \t\r\n]+/,""],[/#.*$/,"comment"],["///",{token:"regexp",next:"@hereregexp"}],[/^(\s*)(@regEx)/,["","regexp"]],[/(\,)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\:)(\s*)(@regEx)/,["delimiter","","regexp"]],[/@symbols/,"delimiter"],[/\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d+\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/0[0-7]+(?!\d)/,"number.octal"],[/\d+/,"number"],[/[,.]/,"delimiter"],[/"""/,"string",'@herestring."""'],[/'''/,"string","@herestring.'''"],[/"/,{cases:{"@eos":"string","@default":{token:"string",next:'@string."'}}}],[/'/,{cases:{"@eos":"string","@default":{token:"string",next:"@string.'"}}}]],string:[[/[^"'\#\\]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/\./,"string.escape.invalid"],[/#{/,{cases:{'$S2=="':{token:"string",next:"root.interpolatedstring"},"@default":"string"}}],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/#/,"string"]],herestring:[[/("""|''')/,{cases:{"$1==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/[^#\\'"]+/,"string"],[/['"]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/#{/,{token:"string.quote",next:"root.interpolatedstring"}],[/#/,"string"]],comment:[[/[^#]+/,"comment"],[/#/,"comment"]],hereregexp:[[/[^\\\/#]+/,"regexp"],[/\\./,"regexp"],[/#.*$/,"comment"],["///[igm]*",{token:"regexp",next:"@pop"}],[/\//,"regexp"]]}}}}]); -//# sourceMappingURL=4546.6820709e.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4550.2e04d705.chunk.js b/ydb/core/viewer/monitoring/static/js/4550.2e04d705.chunk.js new file mode 100644 index 000000000000..1a91fb9bef7f --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4550.2e04d705.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 4550.2e04d705.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4550],{74550:(e,t,a)=>{a.r(t),a.d(t,{conf:()=>n,language:()=>i});var n={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment","identifier"]},{open:"[",close:"]",notIn:["string","comment","identifier"]},{open:"(",close:")",notIn:["string","comment","identifier"]},{open:"{",close:"}",notIn:["string","comment","identifier"]}]},i={defaultToken:"",tokenPostfix:".pq",ignoreCase:!1,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.brackets"},{open:"(",close:")",token:"delimiter.parenthesis"}],operatorKeywords:["and","not","or"],keywords:["as","each","else","error","false","if","in","is","let","meta","otherwise","section","shared","then","true","try","type"],constructors:["#binary","#date","#datetime","#datetimezone","#duration","#table","#time"],constants:["#infinity","#nan","#sections","#shared"],typeKeywords:["action","any","anynonnull","none","null","logical","number","time","date","datetime","datetimezone","duration","text","binary","list","record","table","function"],builtinFunctions:["Access.Database","Action.Return","Action.Sequence","Action.Try","ActiveDirectory.Domains","AdoDotNet.DataSource","AdoDotNet.Query","AdobeAnalytics.Cubes","AnalysisServices.Database","AnalysisServices.Databases","AzureStorage.BlobContents","AzureStorage.Blobs","AzureStorage.Tables","Binary.Buffer","Binary.Combine","Binary.Compress","Binary.Decompress","Binary.End","Binary.From","Binary.FromList","Binary.FromText","Binary.InferContentType","Binary.Length","Binary.ToList","Binary.ToText","BinaryFormat.7BitEncodedSignedInteger","BinaryFormat.7BitEncodedUnsignedInteger","BinaryFormat.Binary","BinaryFormat.Byte","BinaryFormat.ByteOrder","BinaryFormat.Choice","BinaryFormat.Decimal","BinaryFormat.Double","BinaryFormat.Group","BinaryFormat.Length","BinaryFormat.List","BinaryFormat.Null","BinaryFormat.Record","BinaryFormat.SignedInteger16","BinaryFormat.SignedInteger32","BinaryFormat.SignedInteger64","BinaryFormat.Single","BinaryFormat.Text","BinaryFormat.Transform","BinaryFormat.UnsignedInteger16","BinaryFormat.UnsignedInteger32","BinaryFormat.UnsignedInteger64","Byte.From","Character.FromNumber","Character.ToNumber","Combiner.CombineTextByDelimiter","Combiner.CombineTextByEachDelimiter","Combiner.CombineTextByLengths","Combiner.CombineTextByPositions","Combiner.CombineTextByRanges","Comparer.Equals","Comparer.FromCulture","Comparer.Ordinal","Comparer.OrdinalIgnoreCase","Csv.Document","Cube.AddAndExpandDimensionColumn","Cube.AddMeasureColumn","Cube.ApplyParameter","Cube.AttributeMemberId","Cube.AttributeMemberProperty","Cube.CollapseAndRemoveColumns","Cube.Dimensions","Cube.DisplayFolders","Cube.Measures","Cube.Parameters","Cube.Properties","Cube.PropertyKey","Cube.ReplaceDimensions","Cube.Transform","Currency.From","DB2.Database","Date.AddDays","Date.AddMonths","Date.AddQuarters","Date.AddWeeks","Date.AddYears","Date.Day","Date.DayOfWeek","Date.DayOfWeekName","Date.DayOfYear","Date.DaysInMonth","Date.EndOfDay","Date.EndOfMonth","Date.EndOfQuarter","Date.EndOfWeek","Date.EndOfYear","Date.From","Date.FromText","Date.IsInCurrentDay","Date.IsInCurrentMonth","Date.IsInCurrentQuarter","Date.IsInCurrentWeek","Date.IsInCurrentYear","Date.IsInNextDay","Date.IsInNextMonth","Date.IsInNextNDays","Date.IsInNextNMonths","Date.IsInNextNQuarters","Date.IsInNextNWeeks","Date.IsInNextNYears","Date.IsInNextQuarter","Date.IsInNextWeek","Date.IsInNextYear","Date.IsInPreviousDay","Date.IsInPreviousMonth","Date.IsInPreviousNDays","Date.IsInPreviousNMonths","Date.IsInPreviousNQuarters","Date.IsInPreviousNWeeks","Date.IsInPreviousNYears","Date.IsInPreviousQuarter","Date.IsInPreviousWeek","Date.IsInPreviousYear","Date.IsInYearToDate","Date.IsLeapYear","Date.Month","Date.MonthName","Date.QuarterOfYear","Date.StartOfDay","Date.StartOfMonth","Date.StartOfQuarter","Date.StartOfWeek","Date.StartOfYear","Date.ToRecord","Date.ToText","Date.WeekOfMonth","Date.WeekOfYear","Date.Year","DateTime.AddZone","DateTime.Date","DateTime.FixedLocalNow","DateTime.From","DateTime.FromFileTime","DateTime.FromText","DateTime.IsInCurrentHour","DateTime.IsInCurrentMinute","DateTime.IsInCurrentSecond","DateTime.IsInNextHour","DateTime.IsInNextMinute","DateTime.IsInNextNHours","DateTime.IsInNextNMinutes","DateTime.IsInNextNSeconds","DateTime.IsInNextSecond","DateTime.IsInPreviousHour","DateTime.IsInPreviousMinute","DateTime.IsInPreviousNHours","DateTime.IsInPreviousNMinutes","DateTime.IsInPreviousNSeconds","DateTime.IsInPreviousSecond","DateTime.LocalNow","DateTime.Time","DateTime.ToRecord","DateTime.ToText","DateTimeZone.FixedLocalNow","DateTimeZone.FixedUtcNow","DateTimeZone.From","DateTimeZone.FromFileTime","DateTimeZone.FromText","DateTimeZone.LocalNow","DateTimeZone.RemoveZone","DateTimeZone.SwitchZone","DateTimeZone.ToLocal","DateTimeZone.ToRecord","DateTimeZone.ToText","DateTimeZone.ToUtc","DateTimeZone.UtcNow","DateTimeZone.ZoneHours","DateTimeZone.ZoneMinutes","Decimal.From","Diagnostics.ActivityId","Diagnostics.Trace","DirectQueryCapabilities.From","Double.From","Duration.Days","Duration.From","Duration.FromText","Duration.Hours","Duration.Minutes","Duration.Seconds","Duration.ToRecord","Duration.ToText","Duration.TotalDays","Duration.TotalHours","Duration.TotalMinutes","Duration.TotalSeconds","Embedded.Value","Error.Record","Excel.CurrentWorkbook","Excel.Workbook","Exchange.Contents","Expression.Constant","Expression.Evaluate","Expression.Identifier","Facebook.Graph","File.Contents","Folder.Contents","Folder.Files","Function.From","Function.Invoke","Function.InvokeAfter","Function.IsDataSource","GoogleAnalytics.Accounts","Guid.From","HdInsight.Containers","HdInsight.Contents","HdInsight.Files","Hdfs.Contents","Hdfs.Files","Informix.Database","Int16.From","Int32.From","Int64.From","Int8.From","ItemExpression.From","Json.Document","Json.FromValue","Lines.FromBinary","Lines.FromText","Lines.ToBinary","Lines.ToText","List.Accumulate","List.AllTrue","List.Alternate","List.AnyTrue","List.Average","List.Buffer","List.Combine","List.Contains","List.ContainsAll","List.ContainsAny","List.Count","List.Covariance","List.DateTimeZones","List.DateTimes","List.Dates","List.Difference","List.Distinct","List.Durations","List.FindText","List.First","List.FirstN","List.Generate","List.InsertRange","List.Intersect","List.IsDistinct","List.IsEmpty","List.Last","List.LastN","List.MatchesAll","List.MatchesAny","List.Max","List.MaxN","List.Median","List.Min","List.MinN","List.Mode","List.Modes","List.NonNullCount","List.Numbers","List.PositionOf","List.PositionOfAny","List.Positions","List.Product","List.Random","List.Range","List.RemoveFirstN","List.RemoveItems","List.RemoveLastN","List.RemoveMatchingItems","List.RemoveNulls","List.RemoveRange","List.Repeat","List.ReplaceMatchingItems","List.ReplaceRange","List.ReplaceValue","List.Reverse","List.Select","List.Single","List.SingleOrDefault","List.Skip","List.Sort","List.StandardDeviation","List.Sum","List.Times","List.Transform","List.TransformMany","List.Union","List.Zip","Logical.From","Logical.FromText","Logical.ToText","MQ.Queue","MySQL.Database","Number.Abs","Number.Acos","Number.Asin","Number.Atan","Number.Atan2","Number.BitwiseAnd","Number.BitwiseNot","Number.BitwiseOr","Number.BitwiseShiftLeft","Number.BitwiseShiftRight","Number.BitwiseXor","Number.Combinations","Number.Cos","Number.Cosh","Number.Exp","Number.Factorial","Number.From","Number.FromText","Number.IntegerDivide","Number.IsEven","Number.IsNaN","Number.IsOdd","Number.Ln","Number.Log","Number.Log10","Number.Mod","Number.Permutations","Number.Power","Number.Random","Number.RandomBetween","Number.Round","Number.RoundAwayFromZero","Number.RoundDown","Number.RoundTowardZero","Number.RoundUp","Number.Sign","Number.Sin","Number.Sinh","Number.Sqrt","Number.Tan","Number.Tanh","Number.ToText","OData.Feed","Odbc.DataSource","Odbc.Query","OleDb.DataSource","OleDb.Query","Oracle.Database","Percentage.From","PostgreSQL.Database","RData.FromBinary","Record.AddField","Record.Combine","Record.Field","Record.FieldCount","Record.FieldNames","Record.FieldOrDefault","Record.FieldValues","Record.FromList","Record.FromTable","Record.HasFields","Record.RemoveFields","Record.RenameFields","Record.ReorderFields","Record.SelectFields","Record.ToList","Record.ToTable","Record.TransformFields","Replacer.ReplaceText","Replacer.ReplaceValue","RowExpression.Column","RowExpression.From","Salesforce.Data","Salesforce.Reports","SapBusinessWarehouse.Cubes","SapHana.Database","SharePoint.Contents","SharePoint.Files","SharePoint.Tables","Single.From","Soda.Feed","Splitter.SplitByNothing","Splitter.SplitTextByAnyDelimiter","Splitter.SplitTextByDelimiter","Splitter.SplitTextByEachDelimiter","Splitter.SplitTextByLengths","Splitter.SplitTextByPositions","Splitter.SplitTextByRanges","Splitter.SplitTextByRepeatedLengths","Splitter.SplitTextByWhitespace","Sql.Database","Sql.Databases","SqlExpression.SchemaFrom","SqlExpression.ToExpression","Sybase.Database","Table.AddColumn","Table.AddIndexColumn","Table.AddJoinColumn","Table.AddKey","Table.AggregateTableColumn","Table.AlternateRows","Table.Buffer","Table.Column","Table.ColumnCount","Table.ColumnNames","Table.ColumnsOfType","Table.Combine","Table.CombineColumns","Table.Contains","Table.ContainsAll","Table.ContainsAny","Table.DemoteHeaders","Table.Distinct","Table.DuplicateColumn","Table.ExpandListColumn","Table.ExpandRecordColumn","Table.ExpandTableColumn","Table.FillDown","Table.FillUp","Table.FilterWithDataTable","Table.FindText","Table.First","Table.FirstN","Table.FirstValue","Table.FromColumns","Table.FromList","Table.FromPartitions","Table.FromRecords","Table.FromRows","Table.FromValue","Table.Group","Table.HasColumns","Table.InsertRows","Table.IsDistinct","Table.IsEmpty","Table.Join","Table.Keys","Table.Last","Table.LastN","Table.MatchesAllRows","Table.MatchesAnyRows","Table.Max","Table.MaxN","Table.Min","Table.MinN","Table.NestedJoin","Table.Partition","Table.PartitionValues","Table.Pivot","Table.PositionOf","Table.PositionOfAny","Table.PrefixColumns","Table.Profile","Table.PromoteHeaders","Table.Range","Table.RemoveColumns","Table.RemoveFirstN","Table.RemoveLastN","Table.RemoveMatchingRows","Table.RemoveRows","Table.RemoveRowsWithErrors","Table.RenameColumns","Table.ReorderColumns","Table.Repeat","Table.ReplaceErrorValues","Table.ReplaceKeys","Table.ReplaceMatchingRows","Table.ReplaceRelationshipIdentity","Table.ReplaceRows","Table.ReplaceValue","Table.ReverseRows","Table.RowCount","Table.Schema","Table.SelectColumns","Table.SelectRows","Table.SelectRowsWithErrors","Table.SingleRow","Table.Skip","Table.Sort","Table.SplitColumn","Table.ToColumns","Table.ToList","Table.ToRecords","Table.ToRows","Table.TransformColumnNames","Table.TransformColumnTypes","Table.TransformColumns","Table.TransformRows","Table.Transpose","Table.Unpivot","Table.UnpivotOtherColumns","Table.View","Table.ViewFunction","TableAction.DeleteRows","TableAction.InsertRows","TableAction.UpdateRows","Tables.GetRelationships","Teradata.Database","Text.AfterDelimiter","Text.At","Text.BeforeDelimiter","Text.BetweenDelimiters","Text.Clean","Text.Combine","Text.Contains","Text.End","Text.EndsWith","Text.Format","Text.From","Text.FromBinary","Text.Insert","Text.Length","Text.Lower","Text.Middle","Text.NewGuid","Text.PadEnd","Text.PadStart","Text.PositionOf","Text.PositionOfAny","Text.Proper","Text.Range","Text.Remove","Text.RemoveRange","Text.Repeat","Text.Replace","Text.ReplaceRange","Text.Select","Text.Split","Text.SplitAny","Text.Start","Text.StartsWith","Text.ToBinary","Text.ToList","Text.Trim","Text.TrimEnd","Text.TrimStart","Text.Upper","Time.EndOfHour","Time.From","Time.FromText","Time.Hour","Time.Minute","Time.Second","Time.StartOfHour","Time.ToRecord","Time.ToText","Type.AddTableKey","Type.ClosedRecord","Type.Facets","Type.ForFunction","Type.ForRecord","Type.FunctionParameters","Type.FunctionRequiredParameters","Type.FunctionReturn","Type.Is","Type.IsNullable","Type.IsOpenRecord","Type.ListItem","Type.NonNullable","Type.OpenRecord","Type.RecordFields","Type.ReplaceFacets","Type.ReplaceTableKeys","Type.TableColumn","Type.TableKeys","Type.TableRow","Type.TableSchema","Type.Union","Uri.BuildQueryString","Uri.Combine","Uri.EscapeDataString","Uri.Parts","Value.Add","Value.As","Value.Compare","Value.Divide","Value.Equals","Value.Firewall","Value.FromText","Value.Is","Value.Metadata","Value.Multiply","Value.NativeQuery","Value.NullableEquals","Value.RemoveMetadata","Value.ReplaceMetadata","Value.ReplaceType","Value.Subtract","Value.Type","ValueAction.NativeStatement","ValueAction.Replace","Variable.Value","Web.Contents","Web.Page","WebAction.Request","Xml.Document","Xml.Tables"],builtinConstants:["BinaryEncoding.Base64","BinaryEncoding.Hex","BinaryOccurrence.Optional","BinaryOccurrence.Repeating","BinaryOccurrence.Required","ByteOrder.BigEndian","ByteOrder.LittleEndian","Compression.Deflate","Compression.GZip","CsvStyle.QuoteAfterDelimiter","CsvStyle.QuoteAlways","Culture.Current","Day.Friday","Day.Monday","Day.Saturday","Day.Sunday","Day.Thursday","Day.Tuesday","Day.Wednesday","ExtraValues.Error","ExtraValues.Ignore","ExtraValues.List","GroupKind.Global","GroupKind.Local","JoinAlgorithm.Dynamic","JoinAlgorithm.LeftHash","JoinAlgorithm.LeftIndex","JoinAlgorithm.PairwiseHash","JoinAlgorithm.RightHash","JoinAlgorithm.RightIndex","JoinAlgorithm.SortMerge","JoinKind.FullOuter","JoinKind.Inner","JoinKind.LeftAnti","JoinKind.LeftOuter","JoinKind.RightAnti","JoinKind.RightOuter","JoinSide.Left","JoinSide.Right","MissingField.Error","MissingField.Ignore","MissingField.UseNull","Number.E","Number.Epsilon","Number.NaN","Number.NegativeInfinity","Number.PI","Number.PositiveInfinity","Occurrence.All","Occurrence.First","Occurrence.Last","Occurrence.Optional","Occurrence.Repeating","Occurrence.Required","Order.Ascending","Order.Descending","Precision.Decimal","Precision.Double","QuoteStyle.Csv","QuoteStyle.None","RelativePosition.FromEnd","RelativePosition.FromStart","RoundingMode.AwayFromZero","RoundingMode.Down","RoundingMode.ToEven","RoundingMode.TowardZero","RoundingMode.Up","SapHanaDistribution.All","SapHanaDistribution.Connection","SapHanaDistribution.Off","SapHanaDistribution.Statement","SapHanaRangeOperator.Equals","SapHanaRangeOperator.GreaterThan","SapHanaRangeOperator.GreaterThanOrEquals","SapHanaRangeOperator.LessThan","SapHanaRangeOperator.LessThanOrEquals","SapHanaRangeOperator.NotEquals","TextEncoding.Ascii","TextEncoding.BigEndianUnicode","TextEncoding.Unicode","TextEncoding.Utf16","TextEncoding.Utf8","TextEncoding.Windows","TraceLevel.Critical","TraceLevel.Error","TraceLevel.Information","TraceLevel.Verbose","TraceLevel.Warning","WebMethod.Delete","WebMethod.Get","WebMethod.Head","WebMethod.Patch","WebMethod.Post","WebMethod.Put"],builtinTypes:["Action.Type","Any.Type","Binary.Type","BinaryEncoding.Type","BinaryOccurrence.Type","Byte.Type","ByteOrder.Type","Character.Type","Compression.Type","CsvStyle.Type","Currency.Type","Date.Type","DateTime.Type","DateTimeZone.Type","Day.Type","Decimal.Type","Double.Type","Duration.Type","ExtraValues.Type","Function.Type","GroupKind.Type","Guid.Type","Int16.Type","Int32.Type","Int64.Type","Int8.Type","JoinAlgorithm.Type","JoinKind.Type","JoinSide.Type","List.Type","Logical.Type","MissingField.Type","None.Type","Null.Type","Number.Type","Occurrence.Type","Order.Type","Password.Type","Percentage.Type","Precision.Type","QuoteStyle.Type","Record.Type","RelativePosition.Type","RoundingMode.Type","SapHanaDistribution.Type","SapHanaRangeOperator.Type","Single.Type","Table.Type","Text.Type","TextEncoding.Type","Time.Type","TraceLevel.Type","Type.Type","Uri.Type","WebMethod.Type"],tokenizer:{root:[[/#"[\w \.]+"/,"identifier.quote"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+([eE][\-+]?\d+)?/,"number"],[/(#?[a-z]+)\b/,{cases:{"@typeKeywords":"type","@keywords":"keyword","@constants":"constant","@constructors":"constructor","@operatorKeywords":"operators","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.Type)\b/,{cases:{"@builtinTypes":"type","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.[A-Z][a-zA-Z0-9]+)\b/,{cases:{"@builtinFunctions":"keyword.function","@builtinConstants":"constant","@default":"identifier"}}],[/\b([a-zA-Z_][\w\.]*)\b/,"identifier"],{include:"@whitespace"},{include:"@comments"},{include:"@strings"},[/[{}()\[\]]/,"@brackets"],[/([=\+<>\-\*&@\?\/!])|([<>]=)|(<>)|(=>)|(\.\.\.)|(\.\.)/,"operators"],[/[,;]/,"delimiter"]],whitespace:[[/\s+/,"white"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],strings:[['"',"string","@string"]],string:[['""',"string.escape"],['"',"string","@pop"],[".","string"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4550.2e04d705.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/4550.2e04d705.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4550.2e04d705.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/4583.1682cf86.chunk.js b/ydb/core/viewer/monitoring/static/js/4583.1682cf86.chunk.js new file mode 100644 index 000000000000..f9371bd5b239 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4583.1682cf86.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4583],{4583:function(a,j,r){a.exports=function(a){"use strict";function j(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var r=j(a),_={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(a){return a},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 r.default.locale(_,null,!0),_}(r(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4618.131d9563.chunk.js b/ydb/core/viewer/monitoring/static/js/4618.131d9563.chunk.js new file mode 100644 index 000000000000..39a219293d16 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4618.131d9563.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4618],{24618:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _+"\u129b"}};return t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4635.ffa9b6b7.chunk.js b/ydb/core/viewer/monitoring/static/js/4635.ffa9b6b7.chunk.js new file mode 100644 index 000000000000..a74765bc360f --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4635.ffa9b6b7.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 4635.ffa9b6b7.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4635],{74635:(e,r,n)=>{n.r(r),n.d(r,{conf:()=>t,language:()=>s});var t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:["###","###"],lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".coffee",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,keywords:["and","or","is","isnt","not","on","yes","@","no","off","true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","if","else","switch","for","while","do","try","catch","finally","class","extends","super","undefined","then","unless","until","loop","of","by","when"],symbols:/[=><!~?&%|+\-*\/\^\.,\:]+/,escapes:/\\(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\@[a-zA-Z_]\w*/,"variable.predefined"],[/[a-zA-Z_]\w*/,{cases:{this:"variable.predefined","@keywords":{token:"keyword.$0"},"@default":""}}],[/[ \t\r\n]+/,""],[/###/,"comment","@comment"],[/#.*$/,"comment"],["///",{token:"regexp",next:"@hereregexp"}],[/^(\s*)(@regEx)/,["","regexp"]],[/(\()(\s*)(@regEx)/,["@brackets","","regexp"]],[/(\,)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\=)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\:)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\[)(\s*)(@regEx)/,["@brackets","","regexp"]],[/(\!)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\&)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\|)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\?)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\{)(\s*)(@regEx)/,["@brackets","","regexp"]],[/(\;)(\s*)(@regEx)/,["","","regexp"]],[/}/,{cases:{"$S2==interpolatedstring":{token:"string",next:"@pop"},"@default":"@brackets"}}],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d+\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/0[0-7]+(?!\d)/,"number.octal"],[/\d+/,"number"],[/[,.]/,"delimiter"],[/"""/,"string",'@herestring."""'],[/'''/,"string","@herestring.'''"],[/"/,{cases:{"@eos":"string","@default":{token:"string",next:'@string."'}}}],[/'/,{cases:{"@eos":"string","@default":{token:"string",next:"@string.'"}}}]],string:[[/[^"'\#\\]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/\./,"string.escape.invalid"],[/#{/,{cases:{'$S2=="':{token:"string",next:"root.interpolatedstring"},"@default":"string"}}],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/#/,"string"]],herestring:[[/("""|''')/,{cases:{"$1==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/[^#\\'"]+/,"string"],[/['"]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/#{/,{token:"string.quote",next:"root.interpolatedstring"}],[/#/,"string"]],comment:[[/[^#]+/,"comment"],[/###/,"comment","@pop"],[/#/,"comment"]],hereregexp:[[/[^\\\/#]+/,"regexp"],[/\\./,"regexp"],[/#.*$/,"comment"],["///[igm]*",{token:"regexp",next:"@pop"}],[/\//,"regexp"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4635.ffa9b6b7.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/4635.ffa9b6b7.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4635.ffa9b6b7.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/4663.b893c670.chunk.js b/ydb/core/viewer/monitoring/static/js/4663.b893c670.chunk.js new file mode 100644 index 000000000000..9097bc6a6391 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4663.b893c670.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4663],{74663:function(e,a,_){e.exports=function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=a(e),t={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 _.default.locale(t,null,!0),t}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4663.cc239299.chunk.js b/ydb/core/viewer/monitoring/static/js/4663.cc239299.chunk.js deleted file mode 100644 index f6f377adb567..000000000000 --- a/ydb/core/viewer/monitoring/static/js/4663.cc239299.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4663],{14663:function(e,n,t){t.r(n),t.d(n,{conf:function(){return r},language:function(){return i}});var s=t(37456),r={comments:{lineComment:"#",blockComment:["'''","'''"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp("^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\s*$"),action:{indentAction:s.Mj.IndentAction.Indent}}],folding:{offSide:!0,markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},i={defaultToken:"",tokenPostfix:".python",keywords:["False","None","True","and","as","assert","async","await","break","class","continue","def","del","elif","else","except","exec","finally","for","from","global","if","import","in","is","lambda","nonlocal","not","or","pass","print","raise","return","try","while","with","yield","int","float","long","complex","hex","abs","all","any","apply","basestring","bin","bool","buffer","bytearray","callable","chr","classmethod","cmp","coerce","compile","complex","delattr","dict","dir","divmod","enumerate","eval","execfile","file","filter","format","frozenset","getattr","globals","hasattr","hash","help","id","input","intern","isinstance","issubclass","iter","len","locals","list","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","reversed","range","raw_input","reduce","reload","repr","reversed","round","self","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","unichr","unicode","vars","xrange","zip","__dict__","__methods__","__members__","__class__","__bases__","__name__","__mro__","__subclasses__","__init__","__import__"],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],tokenizer:{root:[{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},[/[,:;]/,"delimiter"],[/[{}\[\]()]/,"@brackets"],[/@[a-zA-Z_]\w*/,"tag"],[/[a-zA-Z_]\w*/,{cases:{"@keywords":"keyword","@default":"identifier"}}]],whitespace:[[/\s+/,"white"],[/(^#.*$)/,"comment"],[/'''/,"string","@endDocString"],[/"""/,"string","@endDblDocString"]],endDocString:[[/[^']+/,"string"],[/\\'/,"string"],[/'''/,"string","@popall"],[/'/,"string"]],endDblDocString:[[/[^"]+/,"string"],[/\\"/,"string"],[/"""/,"string","@popall"],[/"/,"string"]],numbers:[[/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/,"number.hex"],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/,"number"]],strings:[[/'$/,"string.escape","@popall"],[/'/,"string.escape","@stringBody"],[/"$/,"string.escape","@popall"],[/"/,"string.escape","@dblStringBody"]],stringBody:[[/[^\\']+$/,"string","@popall"],[/[^\\']+/,"string"],[/\\./,"string"],[/'/,"string.escape","@popall"],[/\\$/,"string"]],dblStringBody:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string"],[/"/,"string.escape","@popall"],[/\\$/,"string"]]}}}}]); -//# sourceMappingURL=4663.cc239299.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4684.27f737c4.chunk.js b/ydb/core/viewer/monitoring/static/js/4684.27f737c4.chunk.js new file mode 100644 index 000000000000..acf6f5ec45d6 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4684.27f737c4.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4684],{44684:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4712.4e557974.chunk.js b/ydb/core/viewer/monitoring/static/js/4712.4e557974.chunk.js deleted file mode 100644 index 9c14eb0b44fa..000000000000 --- a/ydb/core/viewer/monitoring/static/js/4712.4e557974.chunk.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see 4712.4e557974.chunk.js.LICENSE.txt */ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4712],{94712:function(e,t,o){o.r(t),o.d(t,{conf:function(){return n},language:function(){return i}});var n={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},i={defaultToken:"",tokenPostfix:".swift",identifier:/[a-zA-Z_][\w$]*/,attributes:["@autoclosure","@noescape","@noreturn","@NSApplicationMain","@NSCopying","@NSManaged","@objc","@UIApplicationMain","@noreturn","@availability","@IBAction","@IBDesignable","@IBInspectable","@IBOutlet"],accessmodifiers:["public","private","internal"],keywords:["__COLUMN__","__FILE__","__FUNCTION__","__LINE__","as","as!","as?","associativity","break","case","catch","class","continue","convenience","default","deinit","didSet","do","dynamic","dynamicType","else","enum","extension","fallthrough","final","for","func","get","guard","if","import","in","infix","init","inout","internal","is","lazy","left","let","mutating","nil","none","nonmutating","operator","optional","override","postfix","precedence","prefix","private","protocol","Protocol","public","repeat","required","return","right","self","Self","set","static","struct","subscript","super","switch","throw","throws","try","try!","Type","typealias","unowned","var","weak","where","while","willSet","FALSE","TRUE"],symbols:/[=(){}\[\].,:;@#\_&\-<>`?!+*\\\/]/,operatorstart:/[\/=\-+!*%<>&|^~?\u00A1-\u00A7\u00A9\u00AB\u00AC\u00AE\u00B0-\u00B1\u00B6\u00BB\u00BF\u00D7\u00F7\u2016-\u2017\u2020-\u2027\u2030-\u203E\u2041-\u2053\u2055-\u205E\u2190-\u23FF\u2500-\u2775\u2794-\u2BFF\u2E00-\u2E7F\u3001-\u3003\u3008-\u3030]/,operatorend:/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE00-\uFE0F\uFE20-\uFE2F\uE0100-\uE01EF]/,operators:/(@operatorstart)((@operatorstart)|(@operatorend))*/,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"},{include:"@attribute"},{include:"@literal"},{include:"@keyword"},{include:"@invokedmethod"},{include:"@symbol"}],whitespace:[[/\s+/,"white"],[/"""/,"string.quote","@endDblDocString"]],endDblDocString:[[/[^"]+/,"string"],[/\\"/,"string"],[/"""/,"string.quote","@popall"],[/"/,"string"]],symbol:[[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/[.]/,"delimiter"],[/@operators/,"operator"],[/@symbols/,"operator"]],comment:[[/\/\/\/.*$/,"comment.doc"],[/\/\*\*/,"comment.doc","@commentdocbody"],[/\/\/.*$/,"comment"],[/\/\*/,"comment","@commentbody"]],commentdocbody:[[/\/\*/,"comment","@commentbody"],[/\*\//,"comment.doc","@pop"],[/\:[a-zA-Z]+\:/,"comment.doc.param"],[/./,"comment.doc"]],commentbody:[[/\/\*/,"comment","@commentbody"],[/\*\//,"comment","@pop"],[/./,"comment"]],attribute:[[/@@@identifier/,{cases:{"@attributes":"keyword.control","@default":""}}]],literal:[[/"/,{token:"string.quote",next:"@stringlit"}],[/0[b]([01]_?)+/,"number.binary"],[/0[o]([0-7]_?)+/,"number.octal"],[/0[x]([0-9a-fA-F]_?)+([pP][\-+](\d_?)+)?/,"number.hex"],[/(\d_?)*\.(\d_?)+([eE][\-+]?(\d_?)+)?/,"number.float"],[/(\d_?)+/,"number"]],stringlit:[[/\\\(/,{token:"operator",next:"@interpolatedexpression"}],[/@escapes/,"string"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}],[/./,"string"]],interpolatedexpression:[[/\(/,{token:"operator",next:"@interpolatedexpression"}],[/\)/,{token:"operator",next:"@pop"}],{include:"@literal"},{include:"@keyword"},{include:"@symbol"}],keyword:[[/`/,{token:"operator",next:"@escapedkeyword"}],[/@identifier/,{cases:{"@keywords":"keyword","[A-Z][a-zA-Z0-9$]*":"type.identifier","@default":"identifier"}}]],escapedkeyword:[[/`/,{token:"operator",next:"@pop"}],[/./,"identifier"]],invokedmethod:[[/([.])(@identifier)/,{cases:{$2:["delimeter","type.identifier"],"@default":""}}]]}}}}]); -//# sourceMappingURL=4712.4e557974.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4731.6929d6df.chunk.js b/ydb/core/viewer/monitoring/static/js/4731.6929d6df.chunk.js deleted file mode 100644 index 9907b288dc96..000000000000 --- a/ydb/core/viewer/monitoring/static/js/4731.6929d6df.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4731],{84731:function(e,n,t){t.r(n),t.d(n,{conf:function(){return o},language:function(){return s}});var o={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:"'"}]},s={defaultToken:"",tokenPostfix:".lua",keywords:["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while"],brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],operators:["+","-","*","/","%","^","#","==","~=","<=",">=","<",">","=",";",":",",",".","..","..."],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/(,)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/,["delimiter","","key","","delimiter"]],[/({)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/,["@brackets","","key","","delimiter"]],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/--\[([=]*)\[/,"comment","@comment.$1"],[/--.*$/,"comment"]],comment:[[/[^\]]+/,"comment"],[/\]([=]*)\]/,{cases:{"$1==$S2":{token:"comment",next:"@pop"},"@default":"comment"}}],[/./,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}}}]); -//# sourceMappingURL=4731.6929d6df.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4789.d52069de.chunk.js b/ydb/core/viewer/monitoring/static/js/4789.d52069de.chunk.js new file mode 100644 index 000000000000..9b694428ae34 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4789.d52069de.chunk.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4789],{14789:(e,t,i)=>{i.r(t),i.d(t,{Adapter:()=>y,CodeActionAdaptor:()=>K,DefinitionAdapter:()=>D,DiagnosticsAdapter:()=>w,DocumentHighlightAdapter:()=>C,FormatAdapter:()=>N,FormatHelper:()=>O,FormatOnTypeAdapter:()=>M,InlayHintsAdapter:()=>E,Kind:()=>I,LibFiles:()=>_,OutlineAdapter:()=>F,QuickInfoAdapter:()=>x,ReferenceAdapter:()=>A,RenameAdapter:()=>R,SignatureHelpAdapter:()=>v,SuggestAdapter:()=>S,WorkerManager:()=>m,flattenDiagnosticMessageText:()=>b,getJavaScriptWorker:()=>W,getTypeScriptWorker:()=>j,setupJavaScript:()=>V,setupTypeScript:()=>H});var s,r,n,a=i(41551),o=i(13746),l=Object.defineProperty,c=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,u=Object.prototype.hasOwnProperty,g=(e,t,i,s)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let r of d(t))u.call(e,r)||r===i||l(e,r,{get:()=>t[r],enumerable:!(s=c(t,r))||s.enumerable});return e},p={};g(p,r=a,"default"),n&&g(n,r,"default");var m=class{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange((()=>this._stopWorker())),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange((()=>this._updateExtraLibs()))}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;const e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||(this._client=(async()=>(this._worker=p.editor.createWebWorker({moduleId:"vs/language/typescript/tsWorker",label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(p.editor.getModels().filter((e=>e.getLanguageId()===this._modeId)).map((e=>e.uri))):await this._worker.getProxy()))()),this._client}async getLanguageServiceWorker(){const e=await this._getClient();if(this._worker){for(var t=arguments.length,i=new Array(t),s=0;s<t;s++)i[s]=arguments[s];await this._worker.withSyncedResources(i)}return e}},h={};function b(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if("string"===typeof e)return e;if(void 0===e)return"";let s="";if(i){s+=t;for(let e=0;e<i;e++)s+=" "}if(s+=e.messageText,i++,e.next)for(const r of e.next)s+=b(r,t,i);return s}function f(e){return e?e.map((e=>e.text)).join(""):""}h["lib.d.ts"]=!0,h["lib.decorators.d.ts"]=!0,h["lib.decorators.legacy.d.ts"]=!0,h["lib.dom.d.ts"]=!0,h["lib.dom.iterable.d.ts"]=!0,h["lib.es2015.collection.d.ts"]=!0,h["lib.es2015.core.d.ts"]=!0,h["lib.es2015.d.ts"]=!0,h["lib.es2015.generator.d.ts"]=!0,h["lib.es2015.iterable.d.ts"]=!0,h["lib.es2015.promise.d.ts"]=!0,h["lib.es2015.proxy.d.ts"]=!0,h["lib.es2015.reflect.d.ts"]=!0,h["lib.es2015.symbol.d.ts"]=!0,h["lib.es2015.symbol.wellknown.d.ts"]=!0,h["lib.es2016.array.include.d.ts"]=!0,h["lib.es2016.d.ts"]=!0,h["lib.es2016.full.d.ts"]=!0,h["lib.es2017.d.ts"]=!0,h["lib.es2017.full.d.ts"]=!0,h["lib.es2017.intl.d.ts"]=!0,h["lib.es2017.object.d.ts"]=!0,h["lib.es2017.sharedmemory.d.ts"]=!0,h["lib.es2017.string.d.ts"]=!0,h["lib.es2017.typedarrays.d.ts"]=!0,h["lib.es2018.asyncgenerator.d.ts"]=!0,h["lib.es2018.asynciterable.d.ts"]=!0,h["lib.es2018.d.ts"]=!0,h["lib.es2018.full.d.ts"]=!0,h["lib.es2018.intl.d.ts"]=!0,h["lib.es2018.promise.d.ts"]=!0,h["lib.es2018.regexp.d.ts"]=!0,h["lib.es2019.array.d.ts"]=!0,h["lib.es2019.d.ts"]=!0,h["lib.es2019.full.d.ts"]=!0,h["lib.es2019.intl.d.ts"]=!0,h["lib.es2019.object.d.ts"]=!0,h["lib.es2019.string.d.ts"]=!0,h["lib.es2019.symbol.d.ts"]=!0,h["lib.es2020.bigint.d.ts"]=!0,h["lib.es2020.d.ts"]=!0,h["lib.es2020.date.d.ts"]=!0,h["lib.es2020.full.d.ts"]=!0,h["lib.es2020.intl.d.ts"]=!0,h["lib.es2020.number.d.ts"]=!0,h["lib.es2020.promise.d.ts"]=!0,h["lib.es2020.sharedmemory.d.ts"]=!0,h["lib.es2020.string.d.ts"]=!0,h["lib.es2020.symbol.wellknown.d.ts"]=!0,h["lib.es2021.d.ts"]=!0,h["lib.es2021.full.d.ts"]=!0,h["lib.es2021.intl.d.ts"]=!0,h["lib.es2021.promise.d.ts"]=!0,h["lib.es2021.string.d.ts"]=!0,h["lib.es2021.weakref.d.ts"]=!0,h["lib.es2022.array.d.ts"]=!0,h["lib.es2022.d.ts"]=!0,h["lib.es2022.error.d.ts"]=!0,h["lib.es2022.full.d.ts"]=!0,h["lib.es2022.intl.d.ts"]=!0,h["lib.es2022.object.d.ts"]=!0,h["lib.es2022.regexp.d.ts"]=!0,h["lib.es2022.sharedmemory.d.ts"]=!0,h["lib.es2022.string.d.ts"]=!0,h["lib.es2023.array.d.ts"]=!0,h["lib.es2023.d.ts"]=!0,h["lib.es2023.full.d.ts"]=!0,h["lib.es5.d.ts"]=!0,h["lib.es6.d.ts"]=!0,h["lib.esnext.d.ts"]=!0,h["lib.esnext.full.d.ts"]=!0,h["lib.esnext.intl.d.ts"]=!0,h["lib.scripthost.d.ts"]=!0,h["lib.webworker.d.ts"]=!0,h["lib.webworker.importscripts.d.ts"]=!0,h["lib.webworker.iterable.d.ts"]=!0;var y=class{constructor(e){this._worker=e}_textSpanToRange(e,t){let i=e.getPositionAt(t.start),s=e.getPositionAt(t.start+t.length),{lineNumber:r,column:n}=i,{lineNumber:a,column:o}=s;return{startLineNumber:r,startColumn:n,endLineNumber:a,endColumn:o}}},_=class{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return!!e&&(0===e.path.indexOf("/lib.")&&!!h[e.path.slice(1)])}getOrCreateModel(e){const t=p.Uri.parse(e),i=p.editor.getModel(t);if(i)return i;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return p.editor.createModel(this._libFiles[t.path.slice(1)],"typescript",t);const s=o.TG.getExtraLibs()[e];return s?p.editor.createModel(s.content,"typescript",t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||(this._fetchLibFilesPromise=this._worker().then((e=>e.getLibFiles())).then((e=>{this._hasFetchedLibFiles=!0,this._libFiles=e}))),this._fetchLibFilesPromise}},w=class extends y{constructor(e,t,i,s){super(s),this._libFiles=e,this._defaults=t,this._selector=i,this._disposables=[],this._listener=Object.create(null);const r=e=>{if(e.getLanguageId()!==i)return;const t=()=>{const{onlyVisible:t}=this._defaults.getDiagnosticsOptions();t?e.isAttachedToEditor()&&this._doValidate(e):this._doValidate(e)};let s;const r=e.onDidChangeContent((()=>{clearTimeout(s),s=window.setTimeout(t,500)})),n=e.onDidChangeAttached((()=>{const{onlyVisible:i}=this._defaults.getDiagnosticsOptions();i&&(e.isAttachedToEditor()?t():p.editor.setModelMarkers(e,this._selector,[]))}));this._listener[e.uri.toString()]={dispose(){r.dispose(),n.dispose(),clearTimeout(s)}},t()},n=e=>{p.editor.setModelMarkers(e,this._selector,[]);const t=e.uri.toString();this._listener[t]&&(this._listener[t].dispose(),delete this._listener[t])};this._disposables.push(p.editor.onDidCreateModel((e=>r(e)))),this._disposables.push(p.editor.onWillDisposeModel(n)),this._disposables.push(p.editor.onDidChangeModelLanguage((e=>{n(e.model),r(e.model)}))),this._disposables.push({dispose(){for(const e of p.editor.getModels())n(e)}});const a=()=>{for(const e of p.editor.getModels())n(e),r(e)};this._disposables.push(this._defaults.onDidChange(a)),this._disposables.push(this._defaults.onDidExtraLibsChange(a)),p.editor.getModels().forEach((e=>r(e)))}dispose(){this._disposables.forEach((e=>e&&e.dispose())),this._disposables=[]}async _doValidate(e){const t=await this._worker(e.uri);if(e.isDisposed())return;const i=[],{noSyntaxValidation:s,noSemanticValidation:r,noSuggestionDiagnostics:n}=this._defaults.getDiagnosticsOptions();s||i.push(t.getSyntacticDiagnostics(e.uri.toString())),r||i.push(t.getSemanticDiagnostics(e.uri.toString())),n||i.push(t.getSuggestionDiagnostics(e.uri.toString()));const a=await Promise.all(i);if(!a||e.isDisposed())return;const o=a.reduce(((e,t)=>t.concat(e)),[]).filter((e=>-1===(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(e.code))),l=o.map((e=>e.relatedInformation||[])).reduce(((e,t)=>t.concat(e)),[]).map((e=>e.file?p.Uri.parse(e.file.fileName):null));await this._libFiles.fetchLibFilesIfNecessary(l),e.isDisposed()||p.editor.setModelMarkers(e,this._selector,o.map((t=>this._convertDiagnostics(e,t))))}_convertDiagnostics(e,t){const i=t.start||0,s=t.length||1,{lineNumber:r,column:n}=e.getPositionAt(i),{lineNumber:a,column:o}=e.getPositionAt(i+s),l=[];return t.reportsUnnecessary&&l.push(p.MarkerTag.Unnecessary),t.reportsDeprecated&&l.push(p.MarkerTag.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:r,startColumn:n,endLineNumber:a,endColumn:o,message:b(t.messageText,"\n"),code:t.code.toString(),tags:l,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];const i=[];return t.forEach((t=>{let s=e;if(t.file&&(s=this._libFiles.getOrCreateModel(t.file.fileName)),!s)return;const r=t.start||0,n=t.length||1,{lineNumber:a,column:o}=s.getPositionAt(r),{lineNumber:l,column:c}=s.getPositionAt(r+n);i.push({resource:s.uri,startLineNumber:a,startColumn:o,endLineNumber:l,endColumn:c,message:b(t.messageText,"\n")})})),i}_tsDiagnosticCategoryToMarkerSeverity(e){switch(e){case 1:return p.MarkerSeverity.Error;case 3:return p.MarkerSeverity.Info;case 0:return p.MarkerSeverity.Warning;case 2:return p.MarkerSeverity.Hint}return p.MarkerSeverity.Info}},S=class e extends y{get triggerCharacters(){return["."]}async provideCompletionItems(t,i,s,r){const n=t.getWordUntilPosition(i),a=new p.Range(i.lineNumber,n.startColumn,i.lineNumber,n.endColumn),o=t.uri,l=t.getOffsetAt(i),c=await this._worker(o);if(t.isDisposed())return;const d=await c.getCompletionsAtPosition(o.toString(),l);if(!d||t.isDisposed())return;return{suggestions:d.entries.map((s=>{let r=a;if(s.replacementSpan){const e=t.getPositionAt(s.replacementSpan.start),i=t.getPositionAt(s.replacementSpan.start+s.replacementSpan.length);r=new p.Range(e.lineNumber,e.column,i.lineNumber,i.column)}const n=[];return void 0!==s.kindModifiers&&-1!==s.kindModifiers.indexOf("deprecated")&&n.push(p.languages.CompletionItemTag.Deprecated),{uri:o,position:i,offset:l,range:r,label:s.name,insertText:s.name,sortText:s.sortText,kind:e.convertKind(s.kind),tags:n}}))}}async resolveCompletionItem(t,i){const s=t,r=s.uri,n=s.position,a=s.offset,o=await this._worker(r),l=await o.getCompletionEntryDetails(r.toString(),a,s.label);return l?{uri:r,position:n,label:l.name,kind:e.convertKind(l.kind),detail:f(l.displayParts),documentation:{value:e.createDocumentationString(l)}}:s}static convertKind(e){switch(e){case I.primitiveType:case I.keyword:return p.languages.CompletionItemKind.Keyword;case I.variable:case I.localVariable:return p.languages.CompletionItemKind.Variable;case I.memberVariable:case I.memberGetAccessor:case I.memberSetAccessor:return p.languages.CompletionItemKind.Field;case I.function:case I.memberFunction:case I.constructSignature:case I.callSignature:case I.indexSignature:return p.languages.CompletionItemKind.Function;case I.enum:return p.languages.CompletionItemKind.Enum;case I.module:return p.languages.CompletionItemKind.Module;case I.class:return p.languages.CompletionItemKind.Class;case I.interface:return p.languages.CompletionItemKind.Interface;case I.warning:return p.languages.CompletionItemKind.File}return p.languages.CompletionItemKind.Property}static createDocumentationString(e){let t=f(e.documentation);if(e.tags)for(const i of e.tags)t+="\n\n".concat(k(i));return t}};function k(e){let t="*@".concat(e.name,"*");if("param"===e.name&&e.text){const[i,...s]=e.text;t+="`".concat(i.text,"`"),s.length>0&&(t+=" \u2014 ".concat(s.map((e=>e.text)).join(" ")))}else Array.isArray(e.text)?t+=" \u2014 ".concat(e.text.map((e=>e.text)).join(" ")):e.text&&(t+=" \u2014 ".concat(e.text));return t}var v=class e extends y{constructor(){super(...arguments),this.signatureHelpTriggerCharacters=["(",","]}static _toSignatureHelpTriggerReason(e){switch(e.triggerKind){case p.languages.SignatureHelpTriggerKind.TriggerCharacter:return e.triggerCharacter?e.isRetrigger?{kind:"retrigger",triggerCharacter:e.triggerCharacter}:{kind:"characterTyped",triggerCharacter:e.triggerCharacter}:{kind:"invoked"};case p.languages.SignatureHelpTriggerKind.ContentChange:return e.isRetrigger?{kind:"retrigger"}:{kind:"invoked"};case p.languages.SignatureHelpTriggerKind.Invoke:default:return{kind:"invoked"}}}async provideSignatureHelp(t,i,s,r){const n=t.uri,a=t.getOffsetAt(i),o=await this._worker(n);if(t.isDisposed())return;const l=await o.getSignatureHelpItems(n.toString(),a,{triggerReason:e._toSignatureHelpTriggerReason(r)});if(!l||t.isDisposed())return;const c={activeSignature:l.selectedItemIndex,activeParameter:l.argumentIndex,signatures:[]};return l.items.forEach((e=>{const t={label:"",parameters:[]};t.documentation={value:f(e.documentation)},t.label+=f(e.prefixDisplayParts),e.parameters.forEach(((i,s,r)=>{const n=f(i.displayParts),a={label:n,documentation:{value:f(i.documentation)}};t.label+=n,t.parameters.push(a),s<r.length-1&&(t.label+=f(e.separatorDisplayParts))})),t.label+=f(e.suffixDisplayParts),c.signatures.push(t)})),{value:c,dispose(){}}}},x=class extends y{async provideHover(e,t,i){const s=e.uri,r=e.getOffsetAt(t),n=await this._worker(s);if(e.isDisposed())return;const a=await n.getQuickInfoAtPosition(s.toString(),r);if(!a||e.isDisposed())return;const o=f(a.documentation),l=a.tags?a.tags.map((e=>k(e))).join(" \n\n"):"",c=f(a.displayParts);return{range:this._textSpanToRange(e,a.textSpan),contents:[{value:"```typescript\n"+c+"\n```\n"},{value:o+(l?"\n\n"+l:"")}]}}},C=class extends y{async provideDocumentHighlights(e,t,i){const s=e.uri,r=e.getOffsetAt(t),n=await this._worker(s);if(e.isDisposed())return;const a=await n.getDocumentHighlights(s.toString(),r,[s.toString()]);return a&&!e.isDisposed()?a.flatMap((t=>t.highlightSpans.map((t=>({range:this._textSpanToRange(e,t.textSpan),kind:"writtenReference"===t.kind?p.languages.DocumentHighlightKind.Write:p.languages.DocumentHighlightKind.Text}))))):void 0}},D=class extends y{constructor(e,t){super(t),this._libFiles=e}async provideDefinition(e,t,i){const s=e.uri,r=e.getOffsetAt(t),n=await this._worker(s);if(e.isDisposed())return;const a=await n.getDefinitionAtPosition(s.toString(),r);if(!a||e.isDisposed())return;if(await this._libFiles.fetchLibFilesIfNecessary(a.map((e=>p.Uri.parse(e.fileName)))),e.isDisposed())return;const o=[];for(let l of a){const e=this._libFiles.getOrCreateModel(l.fileName);e&&o.push({uri:e.uri,range:this._textSpanToRange(e,l.textSpan)})}return o}},A=class extends y{constructor(e,t){super(t),this._libFiles=e}async provideReferences(e,t,i,s){const r=e.uri,n=e.getOffsetAt(t),a=await this._worker(r);if(e.isDisposed())return;const o=await a.getReferencesAtPosition(r.toString(),n);if(!o||e.isDisposed())return;if(await this._libFiles.fetchLibFilesIfNecessary(o.map((e=>p.Uri.parse(e.fileName)))),e.isDisposed())return;const l=[];for(let c of o){const e=this._libFiles.getOrCreateModel(c.fileName);e&&l.push({uri:e.uri,range:this._textSpanToRange(e,c.textSpan)})}return l}},F=class extends y{async provideDocumentSymbols(e,t){const i=e.uri,s=await this._worker(i);if(e.isDisposed())return;const r=await s.getNavigationTree(i.toString());if(!r||e.isDisposed())return;const n=(t,i)=>{var s;return{name:t.text,detail:"",kind:T[t.kind]||p.languages.SymbolKind.Variable,range:this._textSpanToRange(e,t.spans[0]),selectionRange:this._textSpanToRange(e,t.spans[0]),tags:[],children:null===(s=t.childItems)||void 0===s?void 0:s.map((e=>n(e,t.text))),containerName:i}};return r.childItems?r.childItems.map((e=>n(e))):[]}},I=((s=class{}).unknown="",s.keyword="keyword",s.script="script",s.module="module",s.class="class",s.interface="interface",s.type="type",s.enum="enum",s.variable="var",s.localVariable="local var",s.function="function",s.localFunction="local function",s.memberFunction="method",s.memberGetAccessor="getter",s.memberSetAccessor="setter",s.memberVariable="property",s.constructorImplementation="constructor",s.callSignature="call",s.indexSignature="index",s.constructSignature="construct",s.parameter="parameter",s.typeParameter="type parameter",s.primitiveType="primitive type",s.label="label",s.alias="alias",s.const="const",s.let="let",s.warning="warning",s),T=Object.create(null);T[I.module]=p.languages.SymbolKind.Module,T[I.class]=p.languages.SymbolKind.Class,T[I.enum]=p.languages.SymbolKind.Enum,T[I.interface]=p.languages.SymbolKind.Interface,T[I.memberFunction]=p.languages.SymbolKind.Method,T[I.memberVariable]=p.languages.SymbolKind.Property,T[I.memberGetAccessor]=p.languages.SymbolKind.Property,T[I.memberSetAccessor]=p.languages.SymbolKind.Property,T[I.variable]=p.languages.SymbolKind.Variable,T[I.const]=p.languages.SymbolKind.Variable,T[I.localVariable]=p.languages.SymbolKind.Variable,T[I.variable]=p.languages.SymbolKind.Variable,T[I.function]=p.languages.SymbolKind.Function,T[I.localFunction]=p.languages.SymbolKind.Function;var P,L,O=class extends y{static _convertOptions(e){return{ConvertTabsToSpaces:e.insertSpaces,TabSize:e.tabSize,IndentSize:e.tabSize,IndentStyle:2,NewLineCharacter:"\n",InsertSpaceAfterCommaDelimiter:!0,InsertSpaceAfterSemicolonInForStatements:!0,InsertSpaceBeforeAndAfterBinaryOperators:!0,InsertSpaceAfterKeywordsInControlFlowStatements:!0,InsertSpaceAfterFunctionKeywordForAnonymousFunctions:!0,InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,PlaceOpenBraceOnNewLineForControlBlocks:!1,PlaceOpenBraceOnNewLineForFunctions:!1}}_convertTextChanges(e,t){return{text:t.newText,range:this._textSpanToRange(e,t.span)}}},N=class extends O{constructor(){super(...arguments),this.canFormatMultipleRanges=!1}async provideDocumentRangeFormattingEdits(e,t,i,s){const r=e.uri,n=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),o=await this._worker(r);if(e.isDisposed())return;const l=await o.getFormattingEditsForRange(r.toString(),n,a,O._convertOptions(i));return l&&!e.isDisposed()?l.map((t=>this._convertTextChanges(e,t))):void 0}},M=class extends O{get autoFormatTriggerCharacters(){return[";","}","\n"]}async provideOnTypeFormattingEdits(e,t,i,s,r){const n=e.uri,a=e.getOffsetAt(t),o=await this._worker(n);if(e.isDisposed())return;const l=await o.getFormattingEditsAfterKeystroke(n.toString(),a,i,O._convertOptions(s));return l&&!e.isDisposed()?l.map((t=>this._convertTextChanges(e,t))):void 0}},K=class extends O{async provideCodeActions(e,t,i,s){const r=e.uri,n=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),o=O._convertOptions(e.getOptions()),l=i.markers.filter((e=>e.code)).map((e=>e.code)).map(Number),c=await this._worker(r);if(e.isDisposed())return;const d=await c.getCodeFixesAtPosition(r.toString(),n,a,l,o);if(!d||e.isDisposed())return{actions:[],dispose:()=>{}};return{actions:d.filter((e=>0===e.changes.filter((e=>e.isNewFile)).length)).map((t=>this._tsCodeFixActionToMonacoCodeAction(e,i,t))),dispose:()=>{}}}_tsCodeFixActionToMonacoCodeAction(e,t,i){const s=[];for(const r of i.changes)for(const t of r.textChanges)s.push({resource:e.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(e,t.span),text:t.newText}});return{title:i.description,edit:{edits:s},diagnostics:t.markers,kind:"quickfix"}}},R=class extends y{constructor(e,t){super(t),this._libFiles=e}async provideRenameEdits(e,t,i,s){const r=e.uri,n=r.toString(),a=e.getOffsetAt(t),o=await this._worker(r);if(e.isDisposed())return;const l=await o.getRenameInfo(n,a,{allowRenameOfImportPath:!1});if(!1===l.canRename)return{edits:[],rejectReason:l.localizedErrorMessage};if(void 0!==l.fileToRename)throw new Error("Renaming files is not supported.");const c=await o.findRenameLocations(n,a,!1,!1,!1);if(!c||e.isDisposed())return;const d=[];for(const u of c){const e=this._libFiles.getOrCreateModel(u.fileName);if(!e)throw new Error("Unknown file ".concat(u.fileName,"."));d.push({resource:e.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(e,u.textSpan),text:i}})}return{edits:d}}},E=class extends y{async provideInlayHints(e,t,i){const s=e.uri,r=s.toString(),n=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),o=await this._worker(s);if(e.isDisposed())return null;return{hints:(await o.provideInlayHints(r,n,a)).map((t=>({...t,label:t.text,position:e.getPositionAt(t.position),kind:this._convertHintKind(t.kind)}))),dispose:()=>{}}}_convertHintKind(e){return"Parameter"===e?p.languages.InlayHintKind.Parameter:p.languages.InlayHintKind.Type}};function H(e){L=B(e,"typescript")}function V(e){P=B(e,"javascript")}function W(){return new Promise(((e,t)=>{if(!P)return t("JavaScript not registered!");e(P)}))}function j(){return new Promise(((e,t)=>{if(!L)return t("TypeScript not registered!");e(L)}))}function B(e,t){const i=[],s=[],r=new m(t,e);i.push(r);const n=function(){return r.getLanguageServiceWorker(...arguments)},a=new _(n);return function(){const{modeConfiguration:i}=e;U(s),i.completionItems&&s.push(p.languages.registerCompletionItemProvider(t,new S(n))),i.signatureHelp&&s.push(p.languages.registerSignatureHelpProvider(t,new v(n))),i.hovers&&s.push(p.languages.registerHoverProvider(t,new x(n))),i.documentHighlights&&s.push(p.languages.registerDocumentHighlightProvider(t,new C(n))),i.definitions&&s.push(p.languages.registerDefinitionProvider(t,new D(a,n))),i.references&&s.push(p.languages.registerReferenceProvider(t,new A(a,n))),i.documentSymbols&&s.push(p.languages.registerDocumentSymbolProvider(t,new F(n))),i.rename&&s.push(p.languages.registerRenameProvider(t,new R(a,n))),i.documentRangeFormattingEdits&&s.push(p.languages.registerDocumentRangeFormattingEditProvider(t,new N(n))),i.onTypeFormattingEdits&&s.push(p.languages.registerOnTypeFormattingEditProvider(t,new M(n))),i.codeActions&&s.push(p.languages.registerCodeActionProvider(t,new K(n))),i.inlayHints&&s.push(p.languages.registerInlayHintsProvider(t,new E(n))),i.diagnostics&&s.push(new w(a,e,t,n))}(),i.push(function(e){return{dispose:()=>U(e)}}(s)),n}function U(e){for(;e.length;)e.pop().dispose()}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4812.73af8448.chunk.js b/ydb/core/viewer/monitoring/static/js/4812.73af8448.chunk.js new file mode 100644 index 000000000000..0a058587eae7 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4812.73af8448.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 4812.73af8448.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4812],{14812:(e,t,o)=>{o.r(t),o.d(t,{conf:()=>r,language:()=>n});var r={wordPattern:/(unary_[@~!#%^&*()\-=+\\|:<>\/?]+)|([a-zA-Z_$][\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\w$]*)/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:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))"),end:new RegExp("^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))")}}},n={tokenPostfix:".scala",keywords:["asInstanceOf","catch","class","classOf","def","do","else","extends","finally","for","foreach","forSome","if","import","isInstanceOf","macro","match","new","object","package","return","throw","trait","try","type","until","val","var","while","with","yield","given","enum","then"],softKeywords:["as","export","extension","end","derives","on"],constants:["true","false","null","this","super"],modifiers:["abstract","final","implicit","lazy","override","private","protected","sealed"],softModifiers:["inline","opaque","open","transparent","using"],name:/(?:[a-z_$][\w$]*|`[^`]+`)/,type:/(?:[A-Z][\w$]*)/,symbols:/[=><!~?:&|+\-*\/^\\%@#]+/,digits:/\d+(_+\d+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,escapes:/\\(?:[btnfr\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,fstring_conv:/[bBhHsScCdoxXeEfgGaAt]|[Tn](?:[HIklMSLNpzZsQ]|[BbhAaCYyjmde]|[RTrDFC])/,tokenizer:{root:[[/\braw"""/,{token:"string.quote",bracket:"@open",next:"@rawstringt"}],[/\braw"/,{token:"string.quote",bracket:"@open",next:"@rawstring"}],[/\bs"""/,{token:"string.quote",bracket:"@open",next:"@sstringt"}],[/\bs"/,{token:"string.quote",bracket:"@open",next:"@sstring"}],[/\bf""""/,{token:"string.quote",bracket:"@open",next:"@fstringt"}],[/\bf"/,{token:"string.quote",bracket:"@open",next:"@fstring"}],[/"""/,{token:"string.quote",bracket:"@open",next:"@stringt"}],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float","@allowMethod"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float","@allowMethod"],[/0[xX](@hexdigits)[Ll]?/,"number.hex","@allowMethod"],[/(@digits)[fFdD]/,"number.float","@allowMethod"],[/(@digits)[lL]?/,"number","@allowMethod"],[/\b_\*/,"key"],[/\b(_)\b/,"keyword","@allowMethod"],[/\bimport\b/,"keyword","@import"],[/\b(case)([ \t]+)(class)\b/,["keyword.modifier","white","keyword"]],[/\bcase\b/,"keyword","@case"],[/\bva[lr]\b/,"keyword","@vardef"],[/\b(def)([ \t]+)((?:unary_)?@symbols|@name(?:_=)|@name)/,["keyword","white","identifier"]],[/@name(?=[ \t]*:(?!:))/,"variable"],[/(\.)(@name|@symbols)/,["operator",{token:"@rematch",next:"@allowMethod"}]],[/([{(])(\s*)(@name(?=\s*=>))/,["@brackets","white","variable"]],[/@name/,{cases:{"@keywords":"keyword","@softKeywords":"keyword","@modifiers":"keyword.modifier","@softModifiers":"keyword.modifier","@constants":{token:"constant",next:"@allowMethod"},"@default":{token:"identifier",next:"@allowMethod"}}}],[/@type/,"type","@allowMethod"],{include:"@whitespace"},[/@[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*/,"annotation"],[/[{(]/,"@brackets"],[/[})]/,"@brackets","@allowMethod"],[/\[/,"operator.square"],[/](?!\s*(?:va[rl]|def|type)\b)/,"operator.square","@allowMethod"],[/]/,"operator.square"],[/([=-]>|<-|>:|<:|:>|<%)(?=[\s\w()[\]{},\."'`])/,"keyword"],[/@symbols/,"operator"],[/[;,\.]/,"delimiter"],[/'[a-zA-Z$][\w$]*(?!')/,"attribute.name"],[/'[^\\']'/,"string","@allowMethod"],[/(')(@escapes)(')/,["string","string.escape",{token:"string",next:"@allowMethod"}]],[/'/,"string.invalid"]],import:[[/;/,"delimiter","@pop"],[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/@name|@type/,"type"],[/[(){}]/,"@brackets"],[/[[\]]/,"operator.square"],[/[\.,]/,"delimiter"]],allowMethod:[[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/(?==>[\s\w([{])/,"keyword","@pop"],[/(@name|@symbols)(?=[ \t]*[[({"'`]|[ \t]+(?:[+-]?\.?\d|\w))/,{cases:{"@keywords":{token:"keyword",next:"@pop"},"->|<-|>:|<:|<%":{token:"keyword",next:"@pop"},"@default":{token:"@rematch",next:"@pop"}}}],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],case:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword","@allowMethod"],[/\bif\b|=>/,"keyword","@pop"],[/`[^`]+`/,"identifier","@allowMethod"],[/@name/,"variable","@allowMethod"],[/:::?|\||@(?![a-z_$])/,"keyword"],{include:"@root"}],vardef:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword"],[/@name/,"variable"],[/:::?|\||@(?![a-z_$])/,"keyword"],[/=|:(?!:)/,"operator","@pop"],[/$/,"white","@pop"],{include:"@root"}],string:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],stringt:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],fstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],fstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],sstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],sstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],interp:[[/{/,"operator","@push"],[/}/,"operator","@pop"],{include:"@root"}],rawstring:[[/[^"]/,"string"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],rawstringt:[[/[^"]/,"string"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4812.73af8448.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/4812.73af8448.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4812.73af8448.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/4814.11309069.chunk.js b/ydb/core/viewer/monitoring/static/js/4814.11309069.chunk.js new file mode 100644 index 000000000000..6dd6055a4c83 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4814.11309069.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4814],{34814:function(a,e,l){a.exports=function(a){"use strict";function e(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var l=e(a),_={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(a){return a},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 l.default.locale(_,null,!0),_}(l(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4826.d2723706.chunk.js b/ydb/core/viewer/monitoring/static/js/4826.d2723706.chunk.js new file mode 100644 index 000000000000..a07d16dd8220 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4826.d2723706.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4826],{14826:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4842.57182d38.chunk.js b/ydb/core/viewer/monitoring/static/js/4842.57182d38.chunk.js new file mode 100644 index 000000000000..6d4ad8a6df63 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4842.57182d38.chunk.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4842],{14842:(e,t,n)=>{n.r(t),n.d(t,{registerLanguages:()=>m});var i=n(88424),s=n(60749);var a=n(62729);const r="$row|$rows|action|all|and|any|as|asc|assume|begin|bernoulli|between|by|case|columns|commit|compact|create|cross|cube|declare|define|delete|desc|dict|discard|distinct|do|drop|else|empty_action|end|erase|evaluate|exclusion|exists|export|flatten|for|from|full|group|grouping|having|if|ignore|ilike|import|in|inner|insert|into|is|join|left|like|limit|list|match|not|null|nulls|offset|on|only|optional|or|order|over|partition|pragma|presort|process|reduce|regexp|repeatable|replace|respect|result|return|right|rlike|rollup|sample|schema|select|semi|set|sets|stream|subquery|table|tablesample|then|truncate|union|update|upsert|use|using|values|view|when|where|window|with|without|xor".split("|"),o="bool|date|datetime|decimal|double|float|int16|int32|int64|int8|interval|json|string|timestamp|tzdate|tzdatetime|tztimestamp|uint16|uint32|uint64|uint8|utf8|uuid|yson".split("|"),l="abs|aggregate_by|aggregate_list|aggregate_list_distinct|agg_list|agg_list_distinct|as_table|avg|avg_if|adaptivedistancehistogram|adaptivewardhistogram|adaptiveweighthistogram|addmember|addtimezone|aggregateflatten|aggregatetransforminput|aggregatetransformoutput|aggregationfactory|asatom|asdict|asdictstrict|asenum|aslist|asliststrict|asset|assetstrict|asstruct|astagged|astuple|asvariant|atomcode|bitcast|bit_and|bit_or|bit_xor|bool_and|bool_or|bool_xor|bottom|bottom_by|blockwardhistogram|blockweighthistogram|cast|coalesce|concat|concat_strict|correlation|count|count_if|covariance|covariance_population|covariance_sample|callableargument|callableargumenttype|callableresulttype|callabletype|callabletypecomponents|callabletypehandle|choosemembers|combinemembers|countdistinctestimate|currentauthenticateduser|currentoperationid|currentoperationsharedid|currenttzdate|currenttzdatetime|currenttztimestamp|currentutcdate|currentutcdatetime|currentutctimestamp|dense_rank|datatype|datatypecomponents|datatypehandle|dictaggregate|dictcontains|dictcreate|dicthasitems|dictitems|dictkeytype|dictkeys|dictlength|dictlookup|dictpayloadtype|dictpayloads|dicttype|dicttypecomponents|dicttypehandle|each|each_strict|emptydicttype|emptydicttypehandle|emptylisttype|emptylisttypehandle|endswith|ensure|ensureconvertibleto|ensuretype|enum|evaluateatom|evaluatecode|evaluateexpr|evaluatetype|expandstruct|filter|filter_strict|find|first_value|folder|filecontent|filepath|flattenmembers|forceremovemember|forceremovemembers|forcerenamemembers|forcespreadmembers|formatcode|formattype|frombytes|funccode|greatest|grouping|gathermembers|generictype|histogram|hll|hyperloglog|if|if_strict|instanceof|json_exists|json_query|json_value|jointablerow|just|lag|last_value|lead|least|len|length|like|likely|like_strict|lambdaargumentscount|lambdacode|linearhistogram|listaggregate|listall|listany|listavg|listcode|listcollect|listconcat|listcreate|listdistinct|listenumerate|listextend|listextendstrict|listextract|listfilter|listflatmap|listflatten|listfromrange|listhas|listhasitems|listhead|listindexof|listitemtype|listlast|listlength|listmap|listmax|listmin|listnotnull|listreplicate|listreverse|listskip|listskipwhile|listskipwhileinclusive|listsort|listsortasc|listsortdesc|listsum|listtake|listtakewhile|listtakewhileinclusive|listtype|listtypehandle|listunionall|listuniq|listzip|listzipall|loghistogram|logarithmichistogram|max|max_by|max_of|median|min|min_by|min_of|mode|multi_aggregate_by|nanvl|nvl|nothing|nulltype|nulltypehandle|optionalitemtype|optionaltype|optionaltypehandle|percentile|parsefile|parsetype|parsetypehandle|pickle|quotecode|range|range_strict|rank|regexp|regexp_strict|rfind|row_number|random|randomnumber|randomuuid|removemember|removemembers|removetimezone|renamemembers|replacemember|reprcode|resourcetype|resourcetypehandle|resourcetypetag|some|stddev|stddev_population|stddev_sample|substring|sum|sum_if|sessionstart|sessionwindow|setcreate|setdifference|setincludes|setintersection|setisdisjoint|setsymmetricdifference|setunion|spreadmembers|stablepickle|startswith|staticmap|streamitemtype|streamtype|streamtypehandle|structmembertype|structmembers|structtypecomponents|structtypehandle|subqueryextend|subqueryextendfor|subquerymerge|subquerymergefor|subqueryunionall|subqueryunionallfor|subqueryunionmerge|subqueryunionmergefor|top|topfreq|top_by|tablename|tablepath|tablerecordindex|tablerow|taggedtype|taggedtypecomponents|taggedtypehandle|tobytes|todict|tomultidict|toset|tosorteddict|tosortedmultidict|trymember|tupleelementtype|tupletype|tupletypecomponents|tupletypehandle|typehandle|typekind|typeof|udaf|unittype|unpickle|untag|unwrap|variance|variance_population|variance_sample|variant|varianttype|varianttypehandle|variantunderlyingtype|voidtype|voidtypehandle|way|worldcode".split("|"),c={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],wordPattern:/(-?\d*\.\d\w*)|([^`~!@#%^&*()\-=+[{\]}\\|;:'",./?\s]+)/g};function p(){i.Mj.register({id:a.Oo}),i.Mj.setMonarchTokensProvider(a.Oo,function(){let{ansi:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{defaultToken:"text",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"}],keywords:r,typeKeywords:o,constants:["true","false"],builtinFunctions:l,operators:["+","-","/","//","%","<@>","@>","<@","&","^","~","<",">","<=",">=","=>","==","!=","<>","="],symbols:/[=><!~?:&|+\-*/^%]+/,escapes:/\\(?:[abfnrtv\\"'`]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,variables:/[a-zA-Z_]\w*/,tokenizer:{root:[{include:"@whitespace"},{include:"@comments"},{include:"@numbers"},{include:"@tablePath"},{include:"@strings"},[/(@variables)::(@variables)/,"support.function"],[/[;,.]/,"delimiter"],[/[(){}[\]]/,"@brackets"],[/@?[a-zA-Z_$]\w*/,{cases:{"@keywords":"keyword","@typeKeywords":"keyword.type","@constants":"constant.yql","@builtinFunctions":"constant.other.color","[$@][a-zA-Z_]\\w*":"variable","@default":"identifier"}}],[/@symbols/,{cases:{"@operators":"operator.sql","@default":""}}]],whitespace:[[/\s+/,"white"]],comments:[[/--.*/,"comment"],[/\/\*/,{token:"comment.quote",next:e?"@commentAnsi":"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],commentAnsi:[[/\/\*/,{token:"comment.quote",next:"@comment"}],[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],numbers:[[/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?f?\b/,"number.float"],[/[+-]?(?:\d+|0b[01]+|0o[0-8]+|0x[\da-f]+)(?:u?[lst]?)?\b/,"number"]],strings:[[/'/,{token:"string",next:e?"@stringAnsiSingle":"@stringSingle"}],[/"/,{token:"string",next:e?"@stringAnsiDouble":"@stringDouble"}],[/[@]{2}/,{token:"string",next:"@multilineString"}]],stringSingle:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'[uyj]?/,{token:"string",next:"@pop"}]],stringAnsiSingle:[[/[^']+/,"string"],[/''/,"string"],[/'[uyj]?/,{token:"string",next:"@pop"}]],stringDouble:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"[uyj]?/,{token:"string",next:"@pop"}]],stringAnsiDouble:[[/[^"]+/,"string"],[/""/,"string"],[/"[uyj]?/,{token:"string",next:"@pop"}]],multilineString:[[/#py/,{token:"string.python",nextEmbedded:"python",next:"@embedded",goBack:3}],[/\/\/js/,{token:"string.js",nextEmbedded:"javascript",next:"@embedded",goBack:4}],[/[^@]+/,"string"],[/[@]{4}/,"string"],[/[@]{2}[uyj]?/,{token:"string",next:"@pop"}],[/./,"string"]],embedded:[[/([^@]|^)([@]{4})*[@]{2}([@]([^@]|$)|[^@]|$)/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],tablePath:[[/((`)?[\w/]+\2\s*\.\s*)?`/,{token:"string.tablepath",next:"@table"}]],table:[[/[^\\`]+/,"string.tablepath"],[/``/,"string.tablepath"],[/@escapes/,"string.escape.tablepath"],[/\\./,"string.escape.invalid.tablepath"],[/`/,{token:"string.tablepath",next:"@pop"}]]}}}()),i.Mj.setLanguageConfiguration(a.Oo,c)}function m(){i.Mj.register({id:s.K}),i.Mj.setMonarchTokensProvider(s.K,{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"}]]}}),p()}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4848.64f47dc3.chunk.js b/ydb/core/viewer/monitoring/static/js/4848.64f47dc3.chunk.js new file mode 100644 index 000000000000..c5de9a911be6 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4848.64f47dc3.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4848],{94848:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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(_){return _>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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4949.6bf46e71.chunk.js b/ydb/core/viewer/monitoring/static/js/4949.6bf46e71.chunk.js new file mode 100644 index 000000000000..cfe623d0321d --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4949.6bf46e71.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4949],{84949:function(e,_,a){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=_(e),t={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 a.default.locale(t,null,!0),t}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4952.58b99bba.chunk.js b/ydb/core/viewer/monitoring/static/js/4952.58b99bba.chunk.js deleted file mode 100644 index 3048be2b98d1..000000000000 --- a/ydb/core/viewer/monitoring/static/js/4952.58b99bba.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4952],{64952:function(e,t,n){n.r(t),n.d(t,{setupMode:function(){return pn}});var r,i=n(3570),o=function(){function e(e){var t=this;this._defaults=e,this._worker=null,this._idleCheckInterval=setInterval((function(){return t._checkIfIdle()}),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange((function(){return t._stopWorker()}))}return e.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},e.prototype.dispose=function(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()},e.prototype._checkIfIdle=function(){this._worker&&(Date.now()-this._lastUsedTime>12e4&&this._stopWorker())},e.prototype._getClient=function(){return this._lastUsedTime=Date.now(),this._client||(this._worker=i.j6.createWebWorker({moduleId:"vs/language/json/jsonWorker",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._client=this._worker.getProxy()),this._client},e.prototype.getLanguageServiceWorker=function(){for(var e,t=this,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return this._getClient().then((function(t){e=t})).then((function(e){return t._worker.withSyncedResources(n)})).then((function(t){return e}))},e}();function a(e,t){void 0===t&&(t=!1);var n=e.length,r=0,i="",o=0,a=16,f=0,l=0,h=0,p=0,d=0;function m(t,n){for(var i=0,o=0;i<t||!n;){var a=e.charCodeAt(r);if(a>=48&&a<=57)o=16*o+a-48;else if(a>=65&&a<=70)o=16*o+a-65+10;else{if(!(a>=97&&a<=102))break;o=16*o+a-97+10}r++,i++}return i<t&&(o=-1),o}function g(){if(i="",d=0,o=r,l=f,p=h,r>=n)return o=n,a=17;var t=e.charCodeAt(r);if(s(t)){do{r++,i+=String.fromCharCode(t),t=e.charCodeAt(r)}while(s(t));return a=15}if(u(t))return r++,i+=String.fromCharCode(t),13===t&&10===e.charCodeAt(r)&&(r++,i+="\n"),f++,h=r,a=14;switch(t){case 123:return r++,a=1;case 125:return r++,a=2;case 91:return r++,a=3;case 93:return r++,a=4;case 58:return r++,a=6;case 44:return r++,a=5;case 34:return r++,i=function(){for(var t="",i=r;;){if(r>=n){t+=e.substring(i,r),d=2;break}var o=e.charCodeAt(r);if(34===o){t+=e.substring(i,r),r++;break}if(92!==o){if(o>=0&&o<=31){if(u(o)){t+=e.substring(i,r),d=2;break}d=6}r++}else{if(t+=e.substring(i,r),++r>=n){d=2;break}switch(e.charCodeAt(r++)){case 34:t+='"';break;case 92:t+="\\";break;case 47:t+="/";break;case 98:t+="\b";break;case 102:t+="\f";break;case 110:t+="\n";break;case 114:t+="\r";break;case 116:t+="\t";break;case 117:var a=m(4,!0);a>=0?t+=String.fromCharCode(a):d=4;break;default:d=5}i=r}}return t}(),a=10;case 47:var g=r-1;if(47===e.charCodeAt(r+1)){for(r+=2;r<n&&!u(e.charCodeAt(r));)r++;return i=e.substring(g,r),a=12}if(42===e.charCodeAt(r+1)){r+=2;for(var y=n-1,b=!1;r<y;){var x=e.charCodeAt(r);if(42===x&&47===e.charCodeAt(r+1)){r+=2,b=!0;break}r++,u(x)&&(13===x&&10===e.charCodeAt(r)&&r++,f++,h=r)}return b||(r++,d=1),i=e.substring(g,r),a=13}return i+=String.fromCharCode(t),r++,a=16;case 45:if(i+=String.fromCharCode(t),++r===n||!c(e.charCodeAt(r)))return a=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return i+=function(){var t=r;if(48===e.charCodeAt(r))r++;else for(r++;r<e.length&&c(e.charCodeAt(r));)r++;if(r<e.length&&46===e.charCodeAt(r)){if(!(++r<e.length&&c(e.charCodeAt(r))))return d=3,e.substring(t,r);for(r++;r<e.length&&c(e.charCodeAt(r));)r++}var n=r;if(r<e.length&&(69===e.charCodeAt(r)||101===e.charCodeAt(r)))if((++r<e.length&&43===e.charCodeAt(r)||45===e.charCodeAt(r))&&r++,r<e.length&&c(e.charCodeAt(r))){for(r++;r<e.length&&c(e.charCodeAt(r));)r++;n=r}else d=3;return e.substring(t,n)}(),a=11;default:for(;r<n&&v(t);)r++,t=e.charCodeAt(r);if(o!==r){switch(i=e.substring(o,r)){case"true":return a=8;case"false":return a=9;case"null":return a=7}return a=16}return i+=String.fromCharCode(t),r++,a=16}}function v(e){if(s(e)||u(e))return!1;switch(e){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}return{setPosition:function(e){r=e,i="",o=0,a=16,d=0},getPosition:function(){return r},scan:t?function(){var e;do{e=g()}while(e>=12&&e<=15);return e}:g,getToken:function(){return a},getTokenValue:function(){return i},getTokenOffset:function(){return o},getTokenLength:function(){return r-o},getTokenStartLine:function(){return l},getTokenStartCharacter:function(){return o-p},getTokenError:function(){return d}}}function s(e){return 32===e||9===e||11===e||12===e||160===e||5760===e||e>=8192&&e<=8203||8239===e||8287===e||12288===e||65279===e}function u(e){return 10===e||13===e||8232===e||8233===e}function c(e){return e>=48&&e<=57}function f(e,t,n){void 0===n&&(n=r.DEFAULT);var i=a(e,!1);function o(e){return e?function(){return e(i.getTokenOffset(),i.getTokenLength(),i.getTokenStartLine(),i.getTokenStartCharacter())}:function(){return!0}}function s(e){return e?function(t){return e(t,i.getTokenOffset(),i.getTokenLength(),i.getTokenStartLine(),i.getTokenStartCharacter())}:function(){return!0}}var u=o(t.onObjectBegin),c=s(t.onObjectProperty),f=o(t.onObjectEnd),l=o(t.onArrayBegin),h=o(t.onArrayEnd),p=s(t.onLiteralValue),d=s(t.onSeparator),m=o(t.onComment),g=s(t.onError),v=n&&n.disallowComments,y=n&&n.allowTrailingComma;function b(){for(;;){var e=i.scan();switch(i.getTokenError()){case 4:x(14);break;case 5:x(15);break;case 3:x(13);break;case 1:v||x(11);break;case 2:x(12);break;case 6:x(16)}switch(e){case 12:case 13:v?x(10):m();break;case 16:x(1);break;case 15:case 14:break;default:return e}}}function x(e,t,n){if(void 0===t&&(t=[]),void 0===n&&(n=[]),g(e),t.length+n.length>0)for(var r=i.getToken();17!==r;){if(-1!==t.indexOf(r)){b();break}if(-1!==n.indexOf(r))break;r=b()}}function A(e){var t=i.getTokenValue();return e?p(t):c(t),b(),!0}function C(){switch(i.getToken()){case 3:return function(){l(),b();for(var e=!1;4!==i.getToken()&&17!==i.getToken();){if(5===i.getToken()){if(e||x(4,[],[]),d(","),b(),4===i.getToken()&&y)break}else e&&x(6,[],[]);C()||x(4,[],[4,5]),e=!0}return h(),4!==i.getToken()?x(8,[4],[]):b(),!0}();case 1:return function(){u(),b();for(var e=!1;2!==i.getToken()&&17!==i.getToken();){if(5===i.getToken()){if(e||x(4,[],[]),d(","),b(),2===i.getToken()&&y)break}else e&&x(6,[],[]);(10!==i.getToken()?(x(3,[],[2,5]),0):(A(!1),6===i.getToken()?(d(":"),b(),C()||x(4,[],[2,5])):x(5,[],[2,5]),1))||x(4,[],[2,5]),e=!0}return f(),2!==i.getToken()?x(7,[2],[]):b(),!0}();case 10:return A(!0);default:return function(){switch(i.getToken()){case 11:var e=i.getTokenValue(),t=Number(e);isNaN(t)&&(x(2),t=0),p(t);break;case 7:p(null);break;case 8:p(!0);break;case 9:p(!1);break;default:return!1}return b(),!0}()}}return b(),17===i.getToken()?!!n.allowEmptyContent||(x(4,[],[]),!1):C()?(17!==i.getToken()&&x(9,[],[]),!0):(x(4,[],[]),!1)}!function(e){e.DEFAULT={allowTrailingComma:!1}}(r||(r={}));var l,h,p,d,m,g,v,y,b,x,A,C,S,k,w,I,j,E,T,O,_,M,P,V,N,F,R=a,L=function(e,t,n){void 0===t&&(t=[]),void 0===n&&(n=r.DEFAULT);var i=null,o=[],a=[];function s(e){Array.isArray(o)?o.push(e):null!==i&&(o[i]=e)}return f(e,{onObjectBegin:function(){var e={};s(e),a.push(o),o=e,i=null},onObjectProperty:function(e){i=e},onObjectEnd:function(){o=a.pop()},onArrayBegin:function(){var e=[];s(e),a.push(o),o=e,i=null},onArrayEnd:function(){o=a.pop()},onLiteralValue:s,onError:function(e,n,r){t.push({error:e,offset:n,length:r})}},n),o[0]},$=function e(t,n,r){if(void 0===r&&(r=!1),function(e,t,n){return void 0===n&&(n=!1),t>=e.offset&&t<e.offset+e.length||n&&t===e.offset+e.length}(t,n,r)){var i=t.children;if(Array.isArray(i))for(var o=0;o<i.length&&i[o].offset<=n;o++){var a=e(i[o],n,r);if(a)return a}return t}},D=function e(t){if(!t.parent||!t.parent.children)return[];var n=e(t.parent);if("property"===t.parent.type){var r=t.parent.children[0].value;n.push(r)}else if("array"===t.parent.type){var i=t.parent.children.indexOf(t);-1!==i&&n.push(i)}return n},U=function e(t){switch(t.type){case"array":return t.children.map(e);case"object":for(var n=Object.create(null),r=0,i=t.children;r<i.length;r++){var o=i[r],a=o.children[1];a&&(n[o.children[0].value]=e(a))}return n;case"null":case"string":case"number":case"boolean":return t.value;default:return}};function W(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,r;if(Array.isArray(e)){if(e.length!==t.length)return!1;for(n=0;n<e.length;n++)if(!W(e[n],t[n]))return!1}else{var i=[];for(r in e)i.push(r);i.sort();var o=[];for(r in t)o.push(r);if(o.sort(),!W(i,o))return!1;for(n=0;n<i.length;n++)if(!W(e[i[n]],t[i[n]]))return!1}return!0}function q(e){return"number"===typeof e}function B(e){return"undefined"!==typeof e}function K(e){return"boolean"===typeof e}!function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647}(l||(l={})),function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647}(h||(h={})),function(e){e.create=function(e,t){return e===Number.MAX_VALUE&&(e=h.MAX_VALUE),t===Number.MAX_VALUE&&(t=h.MAX_VALUE),{line:e,character:t}},e.is=function(e){var t=e;return we.objectLiteral(t)&&we.uinteger(t.line)&&we.uinteger(t.character)}}(p||(p={})),function(e){e.create=function(e,t,n,r){if(we.uinteger(e)&&we.uinteger(t)&&we.uinteger(n)&&we.uinteger(r))return{start:p.create(e,t),end:p.create(n,r)};if(p.is(e)&&p.is(t))return{start:e,end:t};throw new Error("Range#create called with invalid arguments["+e+", "+t+", "+n+", "+r+"]")},e.is=function(e){var t=e;return we.objectLiteral(t)&&p.is(t.start)&&p.is(t.end)}}(d||(d={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return we.defined(t)&&d.is(t.range)&&(we.string(t.uri)||we.undefined(t.uri))}}(m||(m={})),function(e){e.create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},e.is=function(e){var t=e;return we.defined(t)&&d.is(t.targetRange)&&we.string(t.targetUri)&&(d.is(t.targetSelectionRange)||we.undefined(t.targetSelectionRange))&&(d.is(t.originSelectionRange)||we.undefined(t.originSelectionRange))}}(g||(g={})),function(e){e.create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},e.is=function(e){var t=e;return we.numberRange(t.red,0,1)&&we.numberRange(t.green,0,1)&&we.numberRange(t.blue,0,1)&&we.numberRange(t.alpha,0,1)}}(v||(v={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return d.is(t.range)&&v.is(t.color)}}(y||(y={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return we.string(t.label)&&(we.undefined(t.textEdit)||E.is(t))&&(we.undefined(t.additionalTextEdits)||we.typedArray(t.additionalTextEdits,E.is))}}(b||(b={})),function(e){e.Comment="comment",e.Imports="imports",e.Region="region"}(x||(x={})),function(e){e.create=function(e,t,n,r,i){var o={startLine:e,endLine:t};return we.defined(n)&&(o.startCharacter=n),we.defined(r)&&(o.endCharacter=r),we.defined(i)&&(o.kind=i),o},e.is=function(e){var t=e;return we.uinteger(t.startLine)&&we.uinteger(t.startLine)&&(we.undefined(t.startCharacter)||we.uinteger(t.startCharacter))&&(we.undefined(t.endCharacter)||we.uinteger(t.endCharacter))&&(we.undefined(t.kind)||we.string(t.kind))}}(A||(A={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return we.defined(t)&&m.is(t.location)&&we.string(t.message)}}(C||(C={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(S||(S={})),function(e){e.Unnecessary=1,e.Deprecated=2}(k||(k={})),function(e){e.is=function(e){var t=e;return void 0!==t&&null!==t&&we.string(t.href)}}(w||(w={})),function(e){e.create=function(e,t,n,r,i,o){var a={range:e,message:t};return we.defined(n)&&(a.severity=n),we.defined(r)&&(a.code=r),we.defined(i)&&(a.source=i),we.defined(o)&&(a.relatedInformation=o),a},e.is=function(e){var t,n=e;return we.defined(n)&&d.is(n.range)&&we.string(n.message)&&(we.number(n.severity)||we.undefined(n.severity))&&(we.integer(n.code)||we.string(n.code)||we.undefined(n.code))&&(we.undefined(n.codeDescription)||we.string(null===(t=n.codeDescription)||void 0===t?void 0:t.href))&&(we.string(n.source)||we.undefined(n.source))&&(we.undefined(n.relatedInformation)||we.typedArray(n.relatedInformation,C.is))}}(I||(I={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={title:e,command:t};return we.defined(n)&&n.length>0&&(i.arguments=n),i},e.is=function(e){var t=e;return we.defined(t)&&we.string(t.title)&&we.string(t.command)}}(j||(j={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:""}},e.is=function(e){var t=e;return we.objectLiteral(t)&&we.string(t.newText)&&d.is(t.range)}}(E||(E={})),function(e){e.create=function(e,t,n){var r={label:e};return void 0!==t&&(r.needsConfirmation=t),void 0!==n&&(r.description=n),r},e.is=function(e){var t=e;return void 0!==t&&we.objectLiteral(t)&&we.string(t.label)&&(we.boolean(t.needsConfirmation)||void 0===t.needsConfirmation)&&(we.string(t.description)||void 0===t.description)}}(T||(T={})),function(e){e.is=function(e){return"string"===typeof e}}(O||(O={})),function(e){e.replace=function(e,t,n){return{range:e,newText:t,annotationId:n}},e.insert=function(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}},e.del=function(e,t){return{range:e,newText:"",annotationId:t}},e.is=function(e){var t=e;return E.is(t)&&(T.is(t.annotationId)||O.is(t.annotationId))}}(_||(_={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return we.defined(t)&&H.is(t.textDocument)&&Array.isArray(t.edits)}}(M||(M={})),function(e){e.create=function(e,t,n){var r={kind:"create",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(r.options=t),void 0!==n&&(r.annotationId=n),r},e.is=function(e){var t=e;return t&&"create"===t.kind&&we.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||we.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||we.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||O.is(t.annotationId))}}(P||(P={})),function(e){e.create=function(e,t,n,r){var i={kind:"rename",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(i.options=n),void 0!==r&&(i.annotationId=r),i},e.is=function(e){var t=e;return t&&"rename"===t.kind&&we.string(t.oldUri)&&we.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||we.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||we.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||O.is(t.annotationId))}}(V||(V={})),function(e){e.create=function(e,t,n){var r={kind:"delete",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(r.options=t),void 0!==n&&(r.annotationId=n),r},e.is=function(e){var t=e;return t&&"delete"===t.kind&&we.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||we.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||we.boolean(t.options.ignoreIfNotExists)))&&(void 0===t.annotationId||O.is(t.annotationId))}}(N||(N={})),function(e){e.is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return we.string(e.kind)?P.is(e)||V.is(e)||N.is(e):M.is(e)})))}}(F||(F={}));var J,z,H,G,X,Z,Q,Y,ee,te,ne,re,ie,oe,ae,se,ue,ce,fe,le,he,pe,de,me,ge,ve,ye,be,xe,Ae,Ce=function(){function e(e,t){this.edits=e,this.changeAnnotations=t}return e.prototype.insert=function(e,t,n){var r,i;if(void 0===n?r=E.insert(e,t):O.is(n)?(i=n,r=_.insert(e,t,n)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(n),r=_.insert(e,t,i)),this.edits.push(r),void 0!==i)return i},e.prototype.replace=function(e,t,n){var r,i;if(void 0===n?r=E.replace(e,t):O.is(n)?(i=n,r=_.replace(e,t,n)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(n),r=_.replace(e,t,i)),this.edits.push(r),void 0!==i)return i},e.prototype.delete=function(e,t){var n,r;if(void 0===t?n=E.del(e):O.is(t)?(r=t,n=_.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),r=this.changeAnnotations.manage(t),n=_.del(e,r)),this.edits.push(n),void 0!==r)return r},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e.prototype.assertChangeAnnotations=function(e){if(void 0===e)throw new Error("Text edit change is not configured to manage change annotations.")},e}(),Se=function(){function e(e){this._annotations=void 0===e?Object.create(null):e,this._counter=0,this._size=0}return e.prototype.all=function(){return this._annotations},Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),e.prototype.manage=function(e,t){var n;if(O.is(e)?n=e:(n=this.nextId(),t=e),void 0!==this._annotations[n])throw new Error("Id "+n+" is already in use.");if(void 0===t)throw new Error("No annotation provided for id "+n);return this._annotations[n]=t,this._size++,n},e.prototype.nextId=function(){return this._counter++,this._counter.toString()},e}();!function(){function e(e){var t=this;this._textEditChanges=Object.create(null),void 0!==e?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new Se(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach((function(e){if(M.is(e)){var n=new Ce(e.edits,t._changeAnnotations);t._textEditChanges[e.textDocument.uri]=n}}))):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new Ce(e.changes[n]);t._textEditChanges[n]=r}))):this._workspaceEdit={}}Object.defineProperty(e.prototype,"edit",{get:function(){return this.initDocumentChanges(),void 0!==this._changeAnnotations&&(0===this._changeAnnotations.size?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),e.prototype.getTextEditChange=function(e){if(H.is(e)){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var t={uri:e.uri,version:e.version};if(!(r=this._textEditChanges[t.uri])){var n={textDocument:t,edits:i=[]};this._workspaceEdit.documentChanges.push(n),r=new Ce(i,this._changeAnnotations),this._textEditChanges[t.uri]=r}return r}if(this.initChanges(),void 0===this._workspaceEdit.changes)throw new Error("Workspace edit is not configured for normal text edit changes.");var r;if(!(r=this._textEditChanges[e])){var i=[];this._workspaceEdit.changes[e]=i,r=new Ce(i),this._textEditChanges[e]=r}return r},e.prototype.initDocumentChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._changeAnnotations=new Se,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},e.prototype.initChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._workspaceEdit.changes=Object.create(null))},e.prototype.createFile=function(e,t,n){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if(T.is(t)||O.is(t)?r=t:n=t,void 0===r?i=P.create(e,n):(o=O.is(r)?r:this._changeAnnotations.manage(r),i=P.create(e,n,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o},e.prototype.renameFile=function(e,t,n,r){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var i,o,a;if(T.is(n)||O.is(n)?i=n:r=n,void 0===i?o=V.create(e,t,r):(a=O.is(i)?i:this._changeAnnotations.manage(i),o=V.create(e,t,r,a)),this._workspaceEdit.documentChanges.push(o),void 0!==a)return a},e.prototype.deleteFile=function(e,t,n){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if(T.is(t)||O.is(t)?r=t:n=t,void 0===r?i=N.create(e,n):(o=O.is(r)?r:this._changeAnnotations.manage(r),i=N.create(e,n,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o}}();!function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return we.defined(t)&&we.string(t.uri)}}(J||(J={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return we.defined(t)&&we.string(t.uri)&&we.integer(t.version)}}(z||(z={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return we.defined(t)&&we.string(t.uri)&&(null===t.version||we.integer(t.version))}}(H||(H={})),function(e){e.create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},e.is=function(e){var t=e;return we.defined(t)&&we.string(t.uri)&&we.string(t.languageId)&&we.integer(t.version)&&we.string(t.text)}}(G||(G={})),function(e){e.PlainText="plaintext",e.Markdown="markdown"}(X||(X={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(X||(X={})),function(e){e.is=function(e){var t=e;return we.objectLiteral(e)&&X.is(t.kind)&&we.string(t.value)}}(Z||(Z={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(Q||(Q={})),function(e){e.PlainText=1,e.Snippet=2}(Y||(Y={})),function(e){e.Deprecated=1}(ee||(ee={})),function(e){e.create=function(e,t,n){return{newText:e,insert:t,replace:n}},e.is=function(e){var t=e;return t&&we.string(t.newText)&&d.is(t.insert)&&d.is(t.replace)}}(te||(te={})),function(e){e.asIs=1,e.adjustIndentation=2}(ne||(ne={})),function(e){e.create=function(e){return{label:e}}}(re||(re={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(ie||(ie={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},e.is=function(e){var t=e;return we.string(t)||we.objectLiteral(t)&&we.string(t.language)&&we.string(t.value)}}(oe||(oe={})),function(e){e.is=function(e){var t=e;return!!t&&we.objectLiteral(t)&&(Z.is(t.contents)||oe.is(t.contents)||we.typedArray(t.contents,oe.is))&&(void 0===e.range||d.is(e.range))}}(ae||(ae={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(se||(se={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={label:e};return we.defined(t)&&(i.documentation=t),we.defined(n)?i.parameters=n:i.parameters=[],i}}(ue||(ue={})),function(e){e.Text=1,e.Read=2,e.Write=3}(ce||(ce={})),function(e){e.create=function(e,t){var n={range:e};return we.number(t)&&(n.kind=t),n}}(fe||(fe={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(le||(le={})),function(e){e.Deprecated=1}(he||(he={})),function(e){e.create=function(e,t,n,r,i){var o={name:e,kind:t,location:{uri:r,range:n}};return i&&(o.containerName=i),o}}(pe||(pe={})),function(e){e.create=function(e,t,n,r,i,o){var a={name:e,detail:t,kind:n,range:r,selectionRange:i};return void 0!==o&&(a.children=o),a},e.is=function(e){var t=e;return t&&we.string(t.name)&&we.number(t.kind)&&d.is(t.range)&&d.is(t.selectionRange)&&(void 0===t.detail||we.string(t.detail))&&(void 0===t.deprecated||we.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))&&(void 0===t.tags||Array.isArray(t.tags))}}(de||(de={})),function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"}(me||(me={})),function(e){e.create=function(e,t){var n={diagnostics:e};return void 0!==t&&null!==t&&(n.only=t),n},e.is=function(e){var t=e;return we.defined(t)&&we.typedArray(t.diagnostics,I.is)&&(void 0===t.only||we.typedArray(t.only,we.string))}}(ge||(ge={})),function(e){e.create=function(e,t,n){var r={title:e},i=!0;return"string"===typeof t?(i=!1,r.kind=t):j.is(t)?r.command=t:r.edit=t,i&&void 0!==n&&(r.kind=n),r},e.is=function(e){var t=e;return t&&we.string(t.title)&&(void 0===t.diagnostics||we.typedArray(t.diagnostics,I.is))&&(void 0===t.kind||we.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||j.is(t.command))&&(void 0===t.isPreferred||we.boolean(t.isPreferred))&&(void 0===t.edit||F.is(t.edit))}}(ve||(ve={})),function(e){e.create=function(e,t){var n={range:e};return we.defined(t)&&(n.data=t),n},e.is=function(e){var t=e;return we.defined(t)&&d.is(t.range)&&(we.undefined(t.command)||j.is(t.command))}}(ye||(ye={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){var t=e;return we.defined(t)&&we.uinteger(t.tabSize)&&we.boolean(t.insertSpaces)}}(be||(be={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){var t=e;return we.defined(t)&&d.is(t.range)&&(we.undefined(t.target)||we.string(t.target))}}(xe||(xe={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){var n=t;return void 0!==n&&d.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(Ae||(Ae={}));var ke;!function(e){function t(e,n){if(e.length<=1)return e;var r=e.length/2|0,i=e.slice(0,r),o=e.slice(r);t(i,n),t(o,n);for(var a=0,s=0,u=0;a<i.length&&s<o.length;){var c=n(i[a],o[s]);e[u++]=c<=0?i[a++]:o[s++]}for(;a<i.length;)e[u++]=i[a++];for(;s<o.length;)e[u++]=o[s++];return e}e.create=function(e,t,n,r){return new Ie(e,t,n,r)},e.is=function(e){var t=e;return!!(we.defined(t)&&we.string(t.uri)&&(we.undefined(t.languageId)||we.string(t.languageId))&&we.uinteger(t.lineCount)&&we.func(t.getText)&&we.func(t.positionAt)&&we.func(t.offsetAt))},e.applyEdits=function(e,n){for(var r=e.getText(),i=t(n,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),o=r.length,a=i.length-1;a>=0;a--){var s=i[a],u=e.offsetAt(s.range.start),c=e.offsetAt(s.range.end);if(!(c<=o))throw new Error("Overlapping edit");r=r.substring(0,u)+s.newText+r.substring(c,r.length),o=u}return r}}(ke||(ke={}));var we,Ie=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,"uri",{get:function(){return this._uri},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"version",{get:function(){return this._version},enumerable:!1,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,r=0;r<t.length;r++){n&&(e.push(r),n=!1);var i=t.charAt(r);n="\r"===i||"\n"===i,"\r"===i&&r+1<t.length&&"\n"===t.charAt(r+1)&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return p.create(0,e);for(;n<r;){var i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}var o=n-1;return p.create(o,e-t[o])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!1,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return"undefined"!==typeof e},e.undefined=function(e){return"undefined"===typeof e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return"[object String]"===t.call(e)},e.number=function(e){return"[object Number]"===t.call(e)},e.numberRange=function(e,n,r){return"[object Number]"===t.call(e)&&n<=e&&e<=r},e.integer=function(e){return"[object Number]"===t.call(e)&&-2147483648<=e&&e<=2147483647},e.uinteger=function(e){return"[object Number]"===t.call(e)&&0<=e&&e<=2147483647},e.func=function(e){return"[object Function]"===t.call(e)},e.objectLiteral=function(e){return null!==e&&"object"===typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(we||(we={}));var je,Ee,Te,Oe=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,"uri",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"version",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(t,n){for(var r=0,i=t;r<i.length;r++){var o=i[r];if(e.isIncremental(o)){var a=Pe(o.range),s=this.offsetAt(a.start),u=this.offsetAt(a.end);this._content=this._content.substring(0,s)+o.text+this._content.substring(u,this._content.length);var c=Math.max(a.start.line,0),f=Math.max(a.end.line,0),l=this._lineOffsets,h=Me(o.text,!1,s);if(f-c===h.length)for(var p=0,d=h.length;p<d;p++)l[p+c+1]=h[p];else h.length<1e4?l.splice.apply(l,[c+1,f-c].concat(h)):this._lineOffsets=l=l.slice(0,c+1).concat(h,l.slice(f+1));var m=o.text.length-(u-s);if(0!==m)for(p=c+1+h.length,d=l.length;p<d;p++)l[p]=l[p]+m}else{if(!e.isFull(o))throw new Error("Unknown change event received");this._content=o.text,this._lineOffsets=void 0}}this._version=n},e.prototype.getLineOffsets=function(){return void 0===this._lineOffsets&&(this._lineOffsets=Me(this._content,!0)),this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return{line:0,character:e};for(;n<r;){var i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}var o=n-1;return{line:o,character:e-t[o]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e.isIncremental=function(e){var t=e;return void 0!==t&&null!==t&&"string"===typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||"number"===typeof t.rangeLength)},e.isFull=function(e){var t=e;return void 0!==t&&null!==t&&"string"===typeof t.text&&void 0===t.range&&void 0===t.rangeLength},e}();function _e(e,t){if(e.length<=1)return e;var n=e.length/2|0,r=e.slice(0,n),i=e.slice(n);_e(r,t),_e(i,t);for(var o=0,a=0,s=0;o<r.length&&a<i.length;){var u=t(r[o],i[a]);e[s++]=u<=0?r[o++]:i[a++]}for(;o<r.length;)e[s++]=r[o++];for(;a<i.length;)e[s++]=i[a++];return e}function Me(e,t,n){void 0===n&&(n=0);for(var r=t?[n]:[],i=0;i<e.length;i++){var o=e.charCodeAt(i);13!==o&&10!==o||(13===o&&i+1<e.length&&10===e.charCodeAt(i+1)&&i++,r.push(n+i+1))}return r}function Pe(e){var t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function Ve(e){var t=Pe(e.range);return t!==e.range?{newText:e.newText,range:t}:e}function Ne(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return function(e,t){return 0===t.length?e:e.replace(/\{(\d+)\}/g,(function(e,n){var r=n[0];return"undefined"!==typeof t[r]?t[r]:e}))}(t,n)}function Fe(e){return Ne}!function(e){e.create=function(e,t,n,r){return new Oe(e,t,n,r)},e.update=function(e,t,n){if(e instanceof Oe)return e.update(t,n),e;throw new Error("TextDocument.update: document must be created by TextDocument.create")},e.applyEdits=function(e,t){for(var n=e.getText(),r=_e(t.map(Ve),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),i=0,o=[],a=0,s=r;a<s.length;a++){var u=s[a],c=e.offsetAt(u.range.start);if(c<i)throw new Error("Overlapping edit");c>i&&o.push(n.substring(i,c)),u.newText.length&&o.push(u.newText),i=e.offsetAt(u.range.end)}return o.push(n.substr(i)),o.join("")}}(je||(je={})),function(e){e[e.Undefined=0]="Undefined",e[e.EnumValueMismatch=1]="EnumValueMismatch",e[e.Deprecated=2]="Deprecated",e[e.UnexpectedEndOfComment=257]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=258]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=259]="UnexpectedEndOfNumber",e[e.InvalidUnicode=260]="InvalidUnicode",e[e.InvalidEscapeCharacter=261]="InvalidEscapeCharacter",e[e.InvalidCharacter=262]="InvalidCharacter",e[e.PropertyExpected=513]="PropertyExpected",e[e.CommaExpected=514]="CommaExpected",e[e.ColonExpected=515]="ColonExpected",e[e.ValueExpected=516]="ValueExpected",e[e.CommaOrCloseBacketExpected=517]="CommaOrCloseBacketExpected",e[e.CommaOrCloseBraceExpected=518]="CommaOrCloseBraceExpected",e[e.TrailingComma=519]="TrailingComma",e[e.DuplicateKey=520]="DuplicateKey",e[e.CommentNotPermitted=521]="CommentNotPermitted",e[e.SchemaResolveError=768]="SchemaResolveError"}(Ee||(Ee={})),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[X.Markdown,X.PlainText],commitCharactersSupport:!0}}}}}(Te||(Te={}));var Re,Le=function(){var e=function(t,n){return e=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])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),$e=Fe(),De={"color-hex":{errorMessage:$e("colorHexFormatWarning","Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA."),pattern:/^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$/},"date-time":{errorMessage:$e("dateTimeFormatWarning","String is not a RFC3339 date-time."),pattern:/^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i},date:{errorMessage:$e("dateFormatWarning","String is not a RFC3339 date."),pattern:/^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/i},time:{errorMessage:$e("timeFormatWarning","String is not a RFC3339 time."),pattern:/^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i},email:{errorMessage:$e("emailFormatWarning","String is not an e-mail address."),pattern:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/}},Ue=function(){function e(e,t,n){void 0===n&&(n=0),this.offset=t,this.length=n,this.parent=e}return Object.defineProperty(e.prototype,"children",{get:function(){return[]},enumerable:!1,configurable:!0}),e.prototype.toString=function(){return"type: "+this.type+" ("+this.offset+"/"+this.length+")"+(this.parent?" parent: {"+this.parent.toString()+"}":"")},e}();(function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type="null",r.value=null,r}Le(t,e)})(Ue),function(e){function t(t,n,r){var i=e.call(this,t,r)||this;return i.type="boolean",i.value=n,i}Le(t,e)}(Ue),function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type="array",r.items=[],r}Le(t,e),Object.defineProperty(t.prototype,"children",{get:function(){return this.items},enumerable:!1,configurable:!0})}(Ue),function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type="number",r.isInteger=!0,r.value=Number.NaN,r}Le(t,e)}(Ue),function(e){function t(t,n,r){var i=e.call(this,t,n,r)||this;return i.type="string",i.value="",i}Le(t,e)}(Ue),function(e){function t(t,n,r){var i=e.call(this,t,n)||this;return i.type="property",i.colonOffset=-1,i.keyNode=r,i}Le(t,e),Object.defineProperty(t.prototype,"children",{get:function(){return this.valueNode?[this.keyNode,this.valueNode]:[this.keyNode]},enumerable:!1,configurable:!0})}(Ue),function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.type="object",r.properties=[],r}Le(t,e),Object.defineProperty(t.prototype,"children",{get:function(){return this.properties},enumerable:!1,configurable:!0})}(Ue);function We(e){return K(e)?e?{}:{not:{}}:e}!function(e){e[e.Key=0]="Key",e[e.Enum=1]="Enum"}(Re||(Re={}));var qe=function(){function e(e,t){void 0===e&&(e=-1),this.focusOffset=e,this.exclude=t,this.schemas=[]}return e.prototype.add=function(e){this.schemas.push(e)},e.prototype.merge=function(e){Array.prototype.push.apply(this.schemas,e.schemas)},e.prototype.include=function(e){return(-1===this.focusOffset||He(e,this.focusOffset))&&e!==this.exclude},e.prototype.newSub=function(){return new e(-1,this.exclude)},e}(),Be=function(){function e(){}return Object.defineProperty(e.prototype,"schemas",{get:function(){return[]},enumerable:!1,configurable:!0}),e.prototype.add=function(e){},e.prototype.merge=function(e){},e.prototype.include=function(e){return!0},e.prototype.newSub=function(){return this},e.instance=new e,e}(),Ke=function(){function e(){this.problems=[],this.propertiesMatches=0,this.propertiesValueMatches=0,this.primaryValueMatches=0,this.enumValueMatch=!1,this.enumValues=void 0}return e.prototype.hasProblems=function(){return!!this.problems.length},e.prototype.mergeAll=function(e){for(var t=0,n=e;t<n.length;t++){var r=n[t];this.merge(r)}},e.prototype.merge=function(e){this.problems=this.problems.concat(e.problems)},e.prototype.mergeEnumValues=function(e){if(!this.enumValueMatch&&!e.enumValueMatch&&this.enumValues&&e.enumValues){this.enumValues=this.enumValues.concat(e.enumValues);for(var t=0,n=this.problems;t<n.length;t++){var r=n[t];r.code===Ee.EnumValueMismatch&&(r.message=$e("enumWarning","Value is not accepted. Valid values: {0}.",this.enumValues.map((function(e){return JSON.stringify(e)})).join(", ")))}}},e.prototype.mergePropertyMatch=function(e){this.merge(e),this.propertiesMatches++,(e.enumValueMatch||!e.hasProblems()&&e.propertiesMatches)&&this.propertiesValueMatches++,e.enumValueMatch&&e.enumValues&&1===e.enumValues.length&&this.primaryValueMatches++},e.prototype.compare=function(e){var t=this.hasProblems();return t!==e.hasProblems()?t?-1:1:this.enumValueMatch!==e.enumValueMatch?e.enumValueMatch?-1:1:this.primaryValueMatches!==e.primaryValueMatches?this.primaryValueMatches-e.primaryValueMatches:this.propertiesValueMatches!==e.propertiesValueMatches?this.propertiesValueMatches-e.propertiesValueMatches:this.propertiesMatches-e.propertiesMatches},e}();function Je(e){return U(e)}function ze(e){return D(e)}function He(e,t,n){return void 0===n&&(n=!1),t>=e.offset&&t<e.offset+e.length||n&&t===e.offset+e.length}!function(){function e(e,t,n){void 0===t&&(t=[]),void 0===n&&(n=[]),this.root=e,this.syntaxErrors=t,this.comments=n}e.prototype.getNodeFromOffset=function(e,t){if(void 0===t&&(t=!1),this.root)return $(this.root,e,t)},e.prototype.visit=function(e){if(this.root){!function t(n){var r=e(n),i=n.children;if(Array.isArray(i))for(var o=0;o<i.length&&r;o++)r=t(i[o]);return r}(this.root)}},e.prototype.validate=function(e,t,n){if(void 0===n&&(n=S.Warning),this.root&&t){var r=new Ke;return Ge(this.root,t,r,Be.instance),r.problems.map((function(t){var r,i=d.create(e.positionAt(t.location.offset),e.positionAt(t.location.offset+t.location.length));return I.create(i,t.message,null!==(r=t.severity)&&void 0!==r?r:n,t.code)}))}},e.prototype.getMatchingSchemas=function(e,t,n){void 0===t&&(t=-1);var r=new qe(t,n);return this.root&&e&&Ge(this.root,e,new Ke,r),r.schemas}}();function Ge(e,t,n,r){if(e&&r.include(e)){var i=e;switch(i.type){case"object":!function(e,t,n,r){for(var i=Object.create(null),o=[],a=0,s=e.properties;a<s.length;a++){i[$=(g=s[a]).keyNode.value]=g.valueNode,o.push($)}if(Array.isArray(t.required))for(var u=0,c=t.required;u<c.length;u++){if(!i[S=c[u]]){var f=e.parent&&"property"===e.parent.type&&e.parent.keyNode,l=f?{offset:f.offset,length:f.length}:{offset:e.offset,length:1};n.problems.push({location:l,message:$e("MissingRequiredPropWarning",'Missing property "{0}".',S)})}}var h=function(e){for(var t=o.indexOf(e);t>=0;)o.splice(t,1),t=o.indexOf(e)};if(t.properties)for(var p=0,d=Object.keys(t.properties);p<d.length;p++){h(S=d[p]);var m=t.properties[S];if(T=i[S])if(K(m))if(m)n.propertiesMatches++,n.propertiesValueMatches++;else{var g=T.parent;n.problems.push({location:{offset:g.keyNode.offset,length:g.keyNode.length},message:t.errorMessage||$e("DisallowedExtraPropWarning","Property {0} is not allowed.",S)})}else Ge(T,m,I=new Ke,r),n.mergePropertyMatch(I)}if(t.patternProperties)for(var v=0,y=Object.keys(t.patternProperties);v<y.length;v++)for(var b=y[v],x=new RegExp(b),A=0,C=o.slice(0);A<C.length;A++){var S=C[A];if(x.test(S))if(h(S),T=i[S])if(K(m=t.patternProperties[b]))if(m)n.propertiesMatches++,n.propertiesValueMatches++;else{g=T.parent;n.problems.push({location:{offset:g.keyNode.offset,length:g.keyNode.length},message:t.errorMessage||$e("DisallowedExtraPropWarning","Property {0} is not allowed.",S)})}else Ge(T,m,I=new Ke,r),n.mergePropertyMatch(I)}if("object"===typeof t.additionalProperties)for(var k=0,w=o;k<w.length;k++){if(T=i[S=w[k]]){var I=new Ke;Ge(T,t.additionalProperties,I,r),n.mergePropertyMatch(I)}}else if(!1===t.additionalProperties&&o.length>0)for(var j=0,E=o;j<E.length;j++){var T;if(T=i[S=E[j]]){g=T.parent;n.problems.push({location:{offset:g.keyNode.offset,length:g.keyNode.length},message:t.errorMessage||$e("DisallowedExtraPropWarning","Property {0} is not allowed.",S)})}}q(t.maxProperties)&&e.properties.length>t.maxProperties&&n.problems.push({location:{offset:e.offset,length:e.length},message:$e("MaxPropWarning","Object has more properties than limit of {0}.",t.maxProperties)});q(t.minProperties)&&e.properties.length<t.minProperties&&n.problems.push({location:{offset:e.offset,length:e.length},message:$e("MinPropWarning","Object has fewer properties than the required number of {0}",t.minProperties)});if(t.dependencies)for(var O=0,_=Object.keys(t.dependencies);O<_.length;O++){if(i[$=_[O]]){var M=t.dependencies[$];if(Array.isArray(M))for(var P=0,V=M;P<V.length;P++){var N=V[P];i[N]?n.propertiesValueMatches++:n.problems.push({location:{offset:e.offset,length:e.length},message:$e("RequiredDependentPropWarning","Object is missing property {0} required by property {1}.",N,$)})}else if(m=We(M))Ge(e,m,I=new Ke,r),n.mergePropertyMatch(I)}}var F=We(t.propertyNames);if(F)for(var R=0,L=e.properties;R<L.length;R++){var $;($=L[R].keyNode)&&Ge($,F,n,Be.instance)}}(i,t,n,r);break;case"array":!function(e,t,n,r){if(Array.isArray(t.items)){for(var i=t.items,o=0;o<i.length;o++){var a=We(i[o]),s=new Ke;(h=e.items[o])?(Ge(h,a,s,r),n.mergePropertyMatch(s)):e.items.length>=i.length&&n.propertiesValueMatches++}if(e.items.length>i.length)if("object"===typeof t.additionalItems)for(var u=i.length;u<e.items.length;u++){s=new Ke;Ge(e.items[u],t.additionalItems,s,r),n.mergePropertyMatch(s)}else!1===t.additionalItems&&n.problems.push({location:{offset:e.offset,length:e.length},message:$e("additionalItemsWarning","Array has too many items according to schema. Expected {0} or fewer.",i.length)})}else{var c=We(t.items);if(c)for(var f=0,l=e.items;f<l.length;f++){var h;Ge(h=l[f],c,s=new Ke,r),n.mergePropertyMatch(s)}}var p=We(t.contains);if(p){var d=e.items.some((function(e){var t=new Ke;return Ge(e,p,t,Be.instance),!t.hasProblems()}));d||n.problems.push({location:{offset:e.offset,length:e.length},message:t.errorMessage||$e("requiredItemMissingWarning","Array does not contain required item.")})}q(t.minItems)&&e.items.length<t.minItems&&n.problems.push({location:{offset:e.offset,length:e.length},message:$e("minItemsWarning","Array has too few items. Expected {0} or more.",t.minItems)});q(t.maxItems)&&e.items.length>t.maxItems&&n.problems.push({location:{offset:e.offset,length:e.length},message:$e("maxItemsWarning","Array has too many items. Expected {0} or fewer.",t.maxItems)});if(!0===t.uniqueItems){var m=Je(e),g=m.some((function(e,t){return t!==m.lastIndexOf(e)}));g&&n.problems.push({location:{offset:e.offset,length:e.length},message:$e("uniqueItemsWarning","Array has duplicate items.")})}}(i,t,n,r);break;case"string":!function(e,t,n,r){q(t.minLength)&&e.value.length<t.minLength&&n.problems.push({location:{offset:e.offset,length:e.length},message:$e("minLengthWarning","String is shorter than the minimum length of {0}.",t.minLength)});q(t.maxLength)&&e.value.length>t.maxLength&&n.problems.push({location:{offset:e.offset,length:e.length},message:$e("maxLengthWarning","String is longer than the maximum length of {0}.",t.maxLength)});if(i=t.pattern,"string"===typeof i){new RegExp(t.pattern).test(e.value)||n.problems.push({location:{offset:e.offset,length:e.length},message:t.patternErrorMessage||t.errorMessage||$e("patternWarning",'String does not match the pattern of "{0}".',t.pattern)})}var i;if(t.format)switch(t.format){case"uri":case"uri-reference":var o=void 0;if(e.value){var a=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/.exec(e.value);a?a[2]||"uri"!==t.format||(o=$e("uriSchemeMissing","URI with a scheme is expected.")):o=$e("uriMissing","URI is expected.")}else o=$e("uriEmpty","URI expected.");o&&n.problems.push({location:{offset:e.offset,length:e.length},message:t.patternErrorMessage||t.errorMessage||$e("uriFormatWarning","String is not a URI: {0}",o)});break;case"color-hex":case"date-time":case"date":case"time":case"email":var s=De[t.format];e.value&&s.pattern.exec(e.value)||n.problems.push({location:{offset:e.offset,length:e.length},message:t.patternErrorMessage||t.errorMessage||s.errorMessage})}}(i,t,n);break;case"number":!function(e,t,n,r){var i=e.value;function o(e){var t,n=/^(-?\d+)(?:\.(\d+))?(?:e([-+]\d+))?$/.exec(e.toString());return n&&{value:Number(n[1]+(n[2]||"")),multiplier:((null===(t=n[2])||void 0===t?void 0:t.length)||0)-(parseInt(n[3])||0)}}if(q(t.multipleOf)){var a=-1;if(Number.isInteger(t.multipleOf))a=i%t.multipleOf;else{var s=o(t.multipleOf),u=o(i);if(s&&u){var c=Math.pow(10,Math.abs(u.multiplier-s.multiplier));u.multiplier<s.multiplier?u.value*=c:s.value*=c,a=u.value%s.value}}0!==a&&n.problems.push({location:{offset:e.offset,length:e.length},message:$e("multipleOfWarning","Value is not divisible by {0}.",t.multipleOf)})}function f(e,t){return q(t)?t:K(t)&&t?e:void 0}function l(e,t){if(!K(t)||!t)return e}var h=f(t.minimum,t.exclusiveMinimum);q(h)&&i<=h&&n.problems.push({location:{offset:e.offset,length:e.length},message:$e("exclusiveMinimumWarning","Value is below the exclusive minimum of {0}.",h)});var p=f(t.maximum,t.exclusiveMaximum);q(p)&&i>=p&&n.problems.push({location:{offset:e.offset,length:e.length},message:$e("exclusiveMaximumWarning","Value is above the exclusive maximum of {0}.",p)});var d=l(t.minimum,t.exclusiveMinimum);q(d)&&i<d&&n.problems.push({location:{offset:e.offset,length:e.length},message:$e("minimumWarning","Value is below the minimum of {0}.",d)});var m=l(t.maximum,t.exclusiveMaximum);q(m)&&i>m&&n.problems.push({location:{offset:e.offset,length:e.length},message:$e("maximumWarning","Value is above the maximum of {0}.",m)})}(i,t,n);break;case"property":return Ge(i.valueNode,t,n,r)}!function(){function e(e){return i.type===e||"integer"===e&&"number"===i.type&&i.isInteger}Array.isArray(t.type)?t.type.some(e)||n.problems.push({location:{offset:i.offset,length:i.length},message:t.errorMessage||$e("typeArrayMismatchWarning","Incorrect type. Expected one of {0}.",t.type.join(", "))}):t.type&&(e(t.type)||n.problems.push({location:{offset:i.offset,length:i.length},message:t.errorMessage||$e("typeMismatchWarning",'Incorrect type. Expected "{0}".',t.type)}));if(Array.isArray(t.allOf))for(var o=0,a=t.allOf;o<a.length;o++){var s=a[o];Ge(i,We(s),n,r)}var u=We(t.not);if(u){var c=new Ke,f=r.newSub();Ge(i,u,c,f),c.hasProblems()||n.problems.push({location:{offset:i.offset,length:i.length},message:$e("notSchemaWarning","Matches a schema that is not allowed.")});for(var l=0,h=f.schemas;l<h.length;l++){var p=h[l];p.inverted=!p.inverted,r.add(p)}}var d=function(e,t){for(var o=[],a=void 0,s=0,u=e;s<u.length;s++){var c=We(u[s]),f=new Ke,l=r.newSub();if(Ge(i,c,f,l),f.hasProblems()||o.push(c),a)if(t||f.hasProblems()||a.validationResult.hasProblems()){var h=f.compare(a.validationResult);h>0?a={schema:c,validationResult:f,matchingSchemas:l}:0===h&&(a.matchingSchemas.merge(l),a.validationResult.mergeEnumValues(f))}else a.matchingSchemas.merge(l),a.validationResult.propertiesMatches+=f.propertiesMatches,a.validationResult.propertiesValueMatches+=f.propertiesValueMatches;else a={schema:c,validationResult:f,matchingSchemas:l}}return o.length>1&&t&&n.problems.push({location:{offset:i.offset,length:1},message:$e("oneOfWarning","Matches multiple schemas when only one must validate.")}),a&&(n.merge(a.validationResult),n.propertiesMatches+=a.validationResult.propertiesMatches,n.propertiesValueMatches+=a.validationResult.propertiesValueMatches,r.merge(a.matchingSchemas)),o.length};Array.isArray(t.anyOf)&&d(t.anyOf,!1);Array.isArray(t.oneOf)&&d(t.oneOf,!0);var m=function(e){var t=new Ke,o=r.newSub();Ge(i,We(e),t,o),n.merge(t),n.propertiesMatches+=t.propertiesMatches,n.propertiesValueMatches+=t.propertiesValueMatches,r.merge(o)},g=We(t.if);g&&function(e,t,n){var o=We(e),a=new Ke,s=r.newSub();Ge(i,o,a,s),r.merge(s),a.hasProblems()?n&&m(n):t&&m(t)}(g,We(t.then),We(t.else));if(Array.isArray(t.enum)){for(var v=Je(i),y=!1,b=0,x=t.enum;b<x.length;b++){if(W(v,x[b])){y=!0;break}}n.enumValues=t.enum,n.enumValueMatch=y,y||n.problems.push({location:{offset:i.offset,length:i.length},code:Ee.EnumValueMismatch,message:t.errorMessage||$e("enumWarning","Value is not accepted. Valid values: {0}.",t.enum.map((function(e){return JSON.stringify(e)})).join(", "))})}if(B(t.const)){W(v=Je(i),t.const)?n.enumValueMatch=!0:(n.problems.push({location:{offset:i.offset,length:i.length},code:Ee.EnumValueMismatch,message:t.errorMessage||$e("constWarning","Value must be {0}.",JSON.stringify(t.const))}),n.enumValueMatch=!1),n.enumValues=[t.const]}t.deprecationMessage&&i.parent&&n.problems.push({location:{offset:i.parent.offset,length:i.parent.length},severity:S.Warning,message:t.deprecationMessage,code:Ee.Deprecated})}(),r.add({node:i,schema:t})}}function Xe(e,t,n){if(null!==e&&"object"===typeof e){var r=t+"\t";if(Array.isArray(e)){if(0===e.length)return"[]";for(var i="[\n",o=0;o<e.length;o++)i+=r+Xe(e[o],r,n),o<e.length-1&&(i+=","),i+="\n";return i+=t+"]"}var a=Object.keys(e);if(0===a.length)return"{}";for(i="{\n",o=0;o<a.length;o++){var s=a[o];i+=r+JSON.stringify(s)+": "+Xe(e[s],r,n),o<a.length-1&&(i+=","),i+="\n"}return i+=t+"}"}return n(e)}function Ze(e,t){var n=e.length-t.length;return n>0?e.lastIndexOf(t)===n:0===n&&e===t}function Qe(e){return e.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}var Ye,et=Fe();(function(){function e(e,t,n,r){void 0===t&&(t=[]),void 0===n&&(n=Promise),void 0===r&&(r={}),this.schemaService=e,this.contributions=t,this.promiseConstructor=n,this.clientCapabilities=r}e.prototype.doResolve=function(e){for(var t=this.contributions.length-1;t>=0;t--){var n=this.contributions[t].resolveCompletion;if(n){var r=n(e);if(r)return r}}return this.promiseConstructor.resolve(e)},e.prototype.doComplete=function(e,t,n){var r=this,i={items:[],isIncomplete:!1},o=e.getText(),a=e.offsetAt(t),s=n.getNodeFromOffset(a,!0);if(this.isInComment(e,s?s.offset:0,a))return Promise.resolve(i);if(s&&a===s.offset+s.length&&a>0){var u=o[a-1];("object"===s.type&&"}"===u||"array"===s.type&&"]"===u)&&(s=s.parent)}var c,f=this.getCurrentWord(e,a);if(!s||"string"!==s.type&&"number"!==s.type&&"boolean"!==s.type&&"null"!==s.type){var l=a-f.length;l>0&&'"'===o[l-1]&&l--,c=d.create(e.positionAt(l),t)}else c=d.create(e.positionAt(s.offset),e.positionAt(s.offset+s.length));var h={},p={add:function(e){var t=e.label,n=h[t];if(n)n.documentation||(n.documentation=e.documentation),n.detail||(n.detail=e.detail);else{if((t=t.replace(/[\n]/g,"\u21b5")).length>60){var r=t.substr(0,57).trim()+"...";h[r]||(t=r)}c&&void 0!==e.insertText&&(e.textEdit=E.replace(c,e.insertText)),e.label=t,h[t]=e,i.items.push(e)}},setAsIncomplete:function(){i.isIncomplete=!0},error:function(e){console.error(e)},log:function(e){console.log(e)},getNumberOfProposals:function(){return i.items.length}};return this.schemaService.getSchemaForResource(e.uri,n).then((function(t){var u=[],l=!0,d="",m=void 0;if(s&&"string"===s.type){var g=s.parent;g&&"property"===g.type&&g.keyNode===s&&(l=!g.valueNode,m=g,d=o.substr(s.offset+1,s.length-2),g&&(s=g.parent))}if(s&&"object"===s.type){if(s.offset===a)return i;s.properties.forEach((function(e){m&&m===e||(h[e.keyNode.value]=re.create("__"))}));var v="";l&&(v=r.evaluateSeparatorAfter(e,e.offsetAt(c.end))),t?r.getPropertyCompletions(t,n,s,l,v,p):r.getSchemaLessPropertyCompletions(n,s,d,p);var y=ze(s);r.contributions.forEach((function(t){var n=t.collectPropertyCompletions(e.uri,y,f,l,""===v,p);n&&u.push(n)})),!t&&f.length>0&&'"'!==o.charAt(a-f.length-1)&&(p.add({kind:Q.Property,label:r.getLabelForValue(f),insertText:r.getInsertTextForProperty(f,void 0,!1,v),insertTextFormat:Y.Snippet,documentation:""}),p.setAsIncomplete())}var b={};return t?r.getValueCompletions(t,n,s,a,e,p,b):r.getSchemaLessValueCompletions(n,s,a,e,p),r.contributions.length>0&&r.getContributedValueCompletions(n,s,a,e,p,u),r.promiseConstructor.all(u).then((function(){if(0===p.getNumberOfProposals()){var t=a;!s||"string"!==s.type&&"number"!==s.type&&"boolean"!==s.type&&"null"!==s.type||(t=s.offset+s.length);var n=r.evaluateSeparatorAfter(e,t);r.addFillerValueCompletions(b,n,p)}return i}))}))},e.prototype.getPropertyCompletions=function(e,t,n,r,i,o){var a=this;t.getMatchingSchemas(e.schema,n.offset).forEach((function(e){if(e.node===n&&!e.inverted){var t=e.schema.properties;t&&Object.keys(t).forEach((function(e){var n=t[e];if("object"===typeof n&&!n.deprecationMessage&&!n.doNotSuggest){var s={kind:Q.Property,label:e,insertText:a.getInsertTextForProperty(e,n,r,i),insertTextFormat:Y.Snippet,filterText:a.getFilterTextForValue(e),documentation:a.fromMarkup(n.markdownDescription)||n.description||""};void 0!==n.suggestSortText&&(s.sortText=n.suggestSortText),s.insertText&&Ze(s.insertText,"$1"+i)&&(s.command={title:"Suggest",command:"editor.action.triggerSuggest"}),o.add(s)}}));var s=e.schema.propertyNames;if("object"===typeof s&&!s.deprecationMessage&&!s.doNotSuggest){var u=function(e,t){void 0===t&&(t=void 0);var n={kind:Q.Property,label:e,insertText:a.getInsertTextForProperty(e,void 0,r,i),insertTextFormat:Y.Snippet,filterText:a.getFilterTextForValue(e),documentation:t||a.fromMarkup(s.markdownDescription)||s.description||""};void 0!==s.suggestSortText&&(n.sortText=s.suggestSortText),n.insertText&&Ze(n.insertText,"$1"+i)&&(n.command={title:"Suggest",command:"editor.action.triggerSuggest"}),o.add(n)};if(s.enum)for(var c=0;c<s.enum.length;c++){var f=void 0;s.markdownEnumDescriptions&&c<s.markdownEnumDescriptions.length?f=a.fromMarkup(s.markdownEnumDescriptions[c]):s.enumDescriptions&&c<s.enumDescriptions.length&&(f=s.enumDescriptions[c]),u(s.enum[c],f)}s.const&&u(s.const)}}}))},e.prototype.getSchemaLessPropertyCompletions=function(e,t,n,r){var i=this,o=function(e){e.properties.forEach((function(e){var t=e.keyNode.value;r.add({kind:Q.Property,label:t,insertText:i.getInsertTextForValue(t,""),insertTextFormat:Y.Snippet,filterText:i.getFilterTextForValue(t),documentation:""})}))};if(t.parent)if("property"===t.parent.type){var a=t.parent.keyNode.value;e.visit((function(e){return"property"===e.type&&e!==t.parent&&e.keyNode.value===a&&e.valueNode&&"object"===e.valueNode.type&&o(e.valueNode),!0}))}else"array"===t.parent.type&&t.parent.items.forEach((function(e){"object"===e.type&&e!==t&&o(e)}));else"object"===t.type&&r.add({kind:Q.Property,label:"$schema",insertText:this.getInsertTextForProperty("$schema",void 0,!0,""),insertTextFormat:Y.Snippet,documentation:"",filterText:this.getFilterTextForValue("$schema")})},e.prototype.getSchemaLessValueCompletions=function(e,t,n,r,i){var o=this,a=n;if(!t||"string"!==t.type&&"number"!==t.type&&"boolean"!==t.type&&"null"!==t.type||(a=t.offset+t.length,t=t.parent),!t)return i.add({kind:this.getSuggestionKind("object"),label:"Empty object",insertText:this.getInsertTextForValue({},""),insertTextFormat:Y.Snippet,documentation:""}),void i.add({kind:this.getSuggestionKind("array"),label:"Empty array",insertText:this.getInsertTextForValue([],""),insertTextFormat:Y.Snippet,documentation:""});var s=this.evaluateSeparatorAfter(r,a),u=function(e){e.parent&&!He(e.parent,n,!0)&&i.add({kind:o.getSuggestionKind(e.type),label:o.getLabelTextForMatchingNode(e,r),insertText:o.getInsertTextForMatchingNode(e,r,s),insertTextFormat:Y.Snippet,documentation:""}),"boolean"===e.type&&o.addBooleanValueCompletion(!e.value,s,i)};if("property"===t.type&&n>(t.colonOffset||0)){var c=t.valueNode;if(c&&(n>c.offset+c.length||"object"===c.type||"array"===c.type))return;var f=t.keyNode.value;e.visit((function(e){return"property"===e.type&&e.keyNode.value===f&&e.valueNode&&u(e.valueNode),!0})),"$schema"===f&&t.parent&&!t.parent.parent&&this.addDollarSchemaCompletions(s,i)}if("array"===t.type)if(t.parent&&"property"===t.parent.type){var l=t.parent.keyNode.value;e.visit((function(e){return"property"===e.type&&e.keyNode.value===l&&e.valueNode&&"array"===e.valueNode.type&&e.valueNode.items.forEach(u),!0}))}else t.items.forEach(u)},e.prototype.getValueCompletions=function(e,t,n,r,i,o,a){var s=r,u=void 0,c=void 0;if(!n||"string"!==n.type&&"number"!==n.type&&"boolean"!==n.type&&"null"!==n.type||(s=n.offset+n.length,c=n,n=n.parent),n){if("property"===n.type&&r>(n.colonOffset||0)){var f=n.valueNode;if(f&&r>f.offset+f.length)return;u=n.keyNode.value,n=n.parent}if(n&&(void 0!==u||"array"===n.type)){for(var l=this.evaluateSeparatorAfter(i,s),h=0,p=t.getMatchingSchemas(e.schema,n.offset,c);h<p.length;h++){var d=p[h];if(d.node===n&&!d.inverted&&d.schema){if("array"===n.type&&d.schema.items)if(Array.isArray(d.schema.items)){var m=this.findItemAtOffset(n,i,r);m<d.schema.items.length&&this.addSchemaValueCompletions(d.schema.items[m],l,o,a)}else this.addSchemaValueCompletions(d.schema.items,l,o,a);if(void 0!==u){var g=!1;if(d.schema.properties)(x=d.schema.properties[u])&&(g=!0,this.addSchemaValueCompletions(x,l,o,a));if(d.schema.patternProperties&&!g)for(var v=0,y=Object.keys(d.schema.patternProperties);v<y.length;v++){var b=y[v];if(new RegExp(b).test(u)){g=!0;var x=d.schema.patternProperties[b];this.addSchemaValueCompletions(x,l,o,a)}}if(d.schema.additionalProperties&&!g){x=d.schema.additionalProperties;this.addSchemaValueCompletions(x,l,o,a)}}}}"$schema"!==u||n.parent||this.addDollarSchemaCompletions(l,o),a.boolean&&(this.addBooleanValueCompletion(!0,l,o),this.addBooleanValueCompletion(!1,l,o)),a.null&&this.addNullValueCompletion(l,o)}}else this.addSchemaValueCompletions(e.schema,"",o,a)},e.prototype.getContributedValueCompletions=function(e,t,n,r,i,o){if(t){if("string"!==t.type&&"number"!==t.type&&"boolean"!==t.type&&"null"!==t.type||(t=t.parent),t&&"property"===t.type&&n>(t.colonOffset||0)){var a=t.keyNode.value,s=t.valueNode;if((!s||n<=s.offset+s.length)&&t.parent){var u=ze(t.parent);this.contributions.forEach((function(e){var t=e.collectValueCompletions(r.uri,u,a,i);t&&o.push(t)}))}}}else this.contributions.forEach((function(e){var t=e.collectDefaultCompletions(r.uri,i);t&&o.push(t)}))},e.prototype.addSchemaValueCompletions=function(e,t,n,r){var i=this;"object"===typeof e&&(this.addEnumValueCompletions(e,t,n),this.addDefaultValueCompletions(e,t,n),this.collectTypes(e,r),Array.isArray(e.allOf)&&e.allOf.forEach((function(e){return i.addSchemaValueCompletions(e,t,n,r)})),Array.isArray(e.anyOf)&&e.anyOf.forEach((function(e){return i.addSchemaValueCompletions(e,t,n,r)})),Array.isArray(e.oneOf)&&e.oneOf.forEach((function(e){return i.addSchemaValueCompletions(e,t,n,r)})))},e.prototype.addDefaultValueCompletions=function(e,t,n,r){var i=this;void 0===r&&(r=0);var o=!1;if(B(e.default)){for(var a=e.type,s=e.default,u=r;u>0;u--)s=[s],a="array";n.add({kind:this.getSuggestionKind(a),label:this.getLabelForValue(s),insertText:this.getInsertTextForValue(s,t),insertTextFormat:Y.Snippet,detail:et("json.suggest.default","Default value")}),o=!0}Array.isArray(e.examples)&&e.examples.forEach((function(a){for(var s=e.type,u=a,c=r;c>0;c--)u=[u],s="array";n.add({kind:i.getSuggestionKind(s),label:i.getLabelForValue(u),insertText:i.getInsertTextForValue(u,t),insertTextFormat:Y.Snippet}),o=!0})),Array.isArray(e.defaultSnippets)&&e.defaultSnippets.forEach((function(a){var s,u,c=e.type,f=a.body,l=a.label;if(B(f)){e.type;for(var h=r;h>0;h--)f=[f],"array";s=i.getInsertTextForSnippetValue(f,t),u=i.getFilterTextForSnippetValue(f),l=l||i.getLabelForSnippetValue(f)}else{if("string"!==typeof a.bodyText)return;var p="",d="",m="";for(h=r;h>0;h--)p=p+m+"[\n",d=d+"\n"+m+"]",m+="\t",c="array";s=p+m+a.bodyText.split("\n").join("\n"+m)+d+t,l=l||s,u=s.replace(/[\n]/g,"")}n.add({kind:i.getSuggestionKind(c),label:l,documentation:i.fromMarkup(a.markdownDescription)||a.description,insertText:s,insertTextFormat:Y.Snippet,filterText:u}),o=!0})),!o&&"object"===typeof e.items&&!Array.isArray(e.items)&&r<5&&this.addDefaultValueCompletions(e.items,t,n,r+1)},e.prototype.addEnumValueCompletions=function(e,t,n){if(B(e.const)&&n.add({kind:this.getSuggestionKind(e.type),label:this.getLabelForValue(e.const),insertText:this.getInsertTextForValue(e.const,t),insertTextFormat:Y.Snippet,documentation:this.fromMarkup(e.markdownDescription)||e.description}),Array.isArray(e.enum))for(var r=0,i=e.enum.length;r<i;r++){var o=e.enum[r],a=this.fromMarkup(e.markdownDescription)||e.description;e.markdownEnumDescriptions&&r<e.markdownEnumDescriptions.length&&this.doesSupportMarkdown()?a=this.fromMarkup(e.markdownEnumDescriptions[r]):e.enumDescriptions&&r<e.enumDescriptions.length&&(a=e.enumDescriptions[r]),n.add({kind:this.getSuggestionKind(e.type),label:this.getLabelForValue(o),insertText:this.getInsertTextForValue(o,t),insertTextFormat:Y.Snippet,documentation:a})}},e.prototype.collectTypes=function(e,t){if(!Array.isArray(e.enum)&&!B(e.const)){var n=e.type;Array.isArray(n)?n.forEach((function(e){return t[e]=!0})):n&&(t[n]=!0)}},e.prototype.addFillerValueCompletions=function(e,t,n){e.object&&n.add({kind:this.getSuggestionKind("object"),label:"{}",insertText:this.getInsertTextForGuessedValue({},t),insertTextFormat:Y.Snippet,detail:et("defaults.object","New object"),documentation:""}),e.array&&n.add({kind:this.getSuggestionKind("array"),label:"[]",insertText:this.getInsertTextForGuessedValue([],t),insertTextFormat:Y.Snippet,detail:et("defaults.array","New array"),documentation:""})},e.prototype.addBooleanValueCompletion=function(e,t,n){n.add({kind:this.getSuggestionKind("boolean"),label:e?"true":"false",insertText:this.getInsertTextForValue(e,t),insertTextFormat:Y.Snippet,documentation:""})},e.prototype.addNullValueCompletion=function(e,t){t.add({kind:this.getSuggestionKind("null"),label:"null",insertText:"null"+e,insertTextFormat:Y.Snippet,documentation:""})},e.prototype.addDollarSchemaCompletions=function(e,t){var n=this,r=this.schemaService.getRegisteredSchemaIds((function(e){return"http"===e||"https"===e}));r.forEach((function(r){return t.add({kind:Q.Module,label:n.getLabelForValue(r),filterText:n.getFilterTextForValue(r),insertText:n.getInsertTextForValue(r,e),insertTextFormat:Y.Snippet,documentation:""})}))},e.prototype.getLabelForValue=function(e){return JSON.stringify(e)},e.prototype.getFilterTextForValue=function(e){return JSON.stringify(e)},e.prototype.getFilterTextForSnippetValue=function(e){return JSON.stringify(e).replace(/\$\{\d+:([^}]+)\}|\$\d+/g,"$1")},e.prototype.getLabelForSnippetValue=function(e){return JSON.stringify(e).replace(/\$\{\d+:([^}]+)\}|\$\d+/g,"$1")},e.prototype.getInsertTextForPlainText=function(e){return e.replace(/[\\\$\}]/g,"\\$&")},e.prototype.getInsertTextForValue=function(e,t){var n=JSON.stringify(e,null,"\t");return"{}"===n?"{$1}"+t:"[]"===n?"[$1]"+t:this.getInsertTextForPlainText(n+t)},e.prototype.getInsertTextForSnippetValue=function(e,t){return Xe(e,"",(function(e){return"string"===typeof e&&"^"===e[0]?e.substr(1):JSON.stringify(e)}))+t},e.prototype.getInsertTextForGuessedValue=function(e,t){switch(typeof e){case"object":return null===e?"${1:null}"+t:this.getInsertTextForValue(e,t);case"string":var n=JSON.stringify(e);return n=n.substr(1,n.length-2),'"${1:'+(n=this.getInsertTextForPlainText(n))+'}"'+t;case"number":case"boolean":return"${1:"+JSON.stringify(e)+"}"+t}return this.getInsertTextForValue(e,t)},e.prototype.getSuggestionKind=function(e){if(Array.isArray(e)){var t=e;e=t.length>0?t[0]:void 0}if(!e)return Q.Value;switch(e){case"string":default:return Q.Value;case"object":return Q.Module;case"property":return Q.Property}},e.prototype.getLabelTextForMatchingNode=function(e,t){switch(e.type){case"array":return"[]";case"object":return"{}";default:return t.getText().substr(e.offset,e.length)}},e.prototype.getInsertTextForMatchingNode=function(e,t,n){switch(e.type){case"array":return this.getInsertTextForValue([],n);case"object":return this.getInsertTextForValue({},n);default:var r=t.getText().substr(e.offset,e.length)+n;return this.getInsertTextForPlainText(r)}},e.prototype.getInsertTextForProperty=function(e,t,n,r){var i=this.getInsertTextForValue(e,"");if(!n)return i;var o,a=i+": ",s=0;if(t){if(Array.isArray(t.defaultSnippets)){if(1===t.defaultSnippets.length){var u=t.defaultSnippets[0].body;B(u)&&(o=this.getInsertTextForSnippetValue(u,""))}s+=t.defaultSnippets.length}if(t.enum&&(o||1!==t.enum.length||(o=this.getInsertTextForGuessedValue(t.enum[0],"")),s+=t.enum.length),B(t.default)&&(o||(o=this.getInsertTextForGuessedValue(t.default,"")),s++),Array.isArray(t.examples)&&t.examples.length&&(o||(o=this.getInsertTextForGuessedValue(t.examples[0],"")),s+=t.examples.length),0===s){var c=Array.isArray(t.type)?t.type[0]:t.type;switch(c||(t.properties?c="object":t.items&&(c="array")),c){case"boolean":o="$1";break;case"string":o='"$1"';break;case"object":o="{$1}";break;case"array":o="[$1]";break;case"number":case"integer":o="${1:0}";break;case"null":o="${1:null}";break;default:return i}}}return(!o||s>1)&&(o="$1"),a+o+r},e.prototype.getCurrentWord=function(e,t){for(var n=t-1,r=e.getText();n>=0&&-1===' \t\n\r\v":{[,]}'.indexOf(r.charAt(n));)n--;return r.substring(n+1,t)},e.prototype.evaluateSeparatorAfter=function(e,t){var n=R(e.getText(),!0);switch(n.setPosition(t),n.scan()){case 5:case 2:case 4:case 17:return"";default:return","}},e.prototype.findItemAtOffset=function(e,t,n){for(var r=R(t.getText(),!0),i=e.items,o=i.length-1;o>=0;o--){var a=i[o];if(n>a.offset+a.length)return r.setPosition(a.offset+a.length),5===r.scan()&&n>=r.getTokenOffset()+r.getTokenLength()?o+1:o;if(n>=a.offset)return o}return 0},e.prototype.isInComment=function(e,t,n){var r=R(e.getText(),!1);r.setPosition(t);for(var i=r.scan();17!==i&&r.getTokenOffset()+r.getTokenLength()<n;)i=r.scan();return(12===i||13===i)&&r.getTokenOffset()<=n},e.prototype.fromMarkup=function(e){if(e&&this.doesSupportMarkdown())return{kind:X.Markdown,value:e}},e.prototype.doesSupportMarkdown=function(){if(!B(this.supportsMarkdown)){var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.completion;this.supportsMarkdown=e&&e.completionItem&&Array.isArray(e.completionItem.documentationFormat)&&-1!==e.completionItem.documentationFormat.indexOf(X.Markdown)}return this.supportsMarkdown},e.prototype.doesSupportsCommitCharacters=function(){if(!B(this.supportsCommitCharacters)){var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.completion;this.supportsCommitCharacters=e&&e.completionItem&&!!e.completionItem.commitCharactersSupport}return this.supportsCommitCharacters}})(),function(){function e(e,t,n){void 0===t&&(t=[]),this.schemaService=e,this.contributions=t,this.promise=n||Promise}e.prototype.doHover=function(e,t,n){var r=e.offsetAt(t),i=n.getNodeFromOffset(r);if(!i||("object"===i.type||"array"===i.type)&&r>i.offset+1&&r<i.offset+i.length-1)return this.promise.resolve(null);var o=i;if("string"===i.type){var a=i.parent;if(a&&"property"===a.type&&a.keyNode===i&&!(i=a.valueNode))return this.promise.resolve(null)}for(var s=d.create(e.positionAt(o.offset),e.positionAt(o.offset+o.length)),u=function(e){return{contents:e,range:s}},c=ze(i),f=this.contributions.length-1;f>=0;f--){var l=this.contributions[f].getInfoContribution(e.uri,c);if(l)return l.then((function(e){return u(e)}))}return this.schemaService.getSchemaForResource(e.uri,n).then((function(e){if(e&&i){var t=n.getMatchingSchemas(e.schema,i.offset),r=void 0,o=void 0,a=void 0,s=void 0;t.every((function(e){if(e.node===i&&!e.inverted&&e.schema&&(r=r||e.schema.title,o=o||e.schema.markdownDescription||tt(e.schema.description),e.schema.enum)){var t=e.schema.enum.indexOf(Je(i));e.schema.markdownEnumDescriptions?a=e.schema.markdownEnumDescriptions[t]:e.schema.enumDescriptions&&(a=tt(e.schema.enumDescriptions[t])),a&&"string"!==typeof(s=e.schema.enum[t])&&(s=JSON.stringify(s))}return!0}));var c="";return r&&(c=tt(r)),o&&(c.length>0&&(c+="\n\n"),c+=o),a&&(c.length>0&&(c+="\n\n"),c+="`"+function(e){if(-1!==e.indexOf("`"))return"`` "+e+" ``";return e}(s)+"`: "+a),u([c])}return null}))}}();function tt(e){if(e)return e.replace(/([^\n\r])(\r?\n)([^\n\r])/gm,"$1\n\n$3").replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}Ye=function(){var e={470:function(e){function t(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var n,r="",i=0,o=-1,a=0,s=0;s<=e.length;++s){if(s<e.length)n=e.charCodeAt(s);else{if(47===n)break;n=47}if(47===n){if(o===s-1||1===a);else if(o!==s-1&&2===a){if(r.length<2||2!==i||46!==r.charCodeAt(r.length-1)||46!==r.charCodeAt(r.length-2))if(r.length>2){var u=r.lastIndexOf("/");if(u!==r.length-1){-1===u?(r="",i=0):i=(r=r.slice(0,u)).length-1-r.lastIndexOf("/"),o=s,a=0;continue}}else if(2===r.length||1===r.length){r="",i=0,o=s,a=0;continue}t&&(r.length>0?r+="/..":r="..",i=2)}else r.length>0?r+="/"+e.slice(o+1,s):r=e.slice(o+1,s),i=s-o-1;o=s,a=0}else 46===n&&-1!==a?++a:a=-1}return r}var r={resolve:function(){for(var e,r="",i=!1,o=arguments.length-1;o>=-1&&!i;o--){var a;o>=0?a=arguments[o]:(void 0===e&&(e=process.cwd()),a=e),t(a),0!==a.length&&(r=a+"/"+r,i=47===a.charCodeAt(0))}return r=n(r,!i),i?r.length>0?"/"+r:"/":r.length>0?r:"."},normalize:function(e){if(t(e),0===e.length)return".";var r=47===e.charCodeAt(0),i=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!r)).length||r||(e="."),e.length>0&&i&&(e+="/"),r?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,n=0;n<arguments.length;++n){var i=arguments[n];t(i),i.length>0&&(void 0===e?e=i:e+="/"+i)}return void 0===e?".":r.normalize(e)},relative:function(e,n){if(t(e),t(n),e===n)return"";if((e=r.resolve(e))===(n=r.resolve(n)))return"";for(var i=1;i<e.length&&47===e.charCodeAt(i);++i);for(var o=e.length,a=o-i,s=1;s<n.length&&47===n.charCodeAt(s);++s);for(var u=n.length-s,c=a<u?a:u,f=-1,l=0;l<=c;++l){if(l===c){if(u>c){if(47===n.charCodeAt(s+l))return n.slice(s+l+1);if(0===l)return n.slice(s+l)}else a>c&&(47===e.charCodeAt(i+l)?f=l:0===l&&(f=0));break}var h=e.charCodeAt(i+l);if(h!==n.charCodeAt(s+l))break;47===h&&(f=l)}var p="";for(l=i+f+1;l<=o;++l)l!==o&&47!==e.charCodeAt(l)||(0===p.length?p+="..":p+="/..");return p.length>0?p+n.slice(s+f):(s+=f,47===n.charCodeAt(s)&&++s,n.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var n=e.charCodeAt(0),r=47===n,i=-1,o=!0,a=e.length-1;a>=1;--a)if(47===(n=e.charCodeAt(a))){if(!o){i=a;break}}else o=!1;return-1===i?r?"/":".":r&&1===i?"//":e.slice(0,i)},basename:function(e,n){if(void 0!==n&&"string"!=typeof n)throw new TypeError('"ext" argument must be a string');t(e);var r,i=0,o=-1,a=!0;if(void 0!==n&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return"";var s=n.length-1,u=-1;for(r=e.length-1;r>=0;--r){var c=e.charCodeAt(r);if(47===c){if(!a){i=r+1;break}}else-1===u&&(a=!1,u=r+1),s>=0&&(c===n.charCodeAt(s)?-1==--s&&(o=r):(s=-1,o=u))}return i===o?o=u:-1===o&&(o=e.length),e.slice(i,o)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){i=r+1;break}}else-1===o&&(a=!1,o=r+1);return-1===o?"":e.slice(i,o)},extname:function(e){t(e);for(var n=-1,r=0,i=-1,o=!0,a=0,s=e.length-1;s>=0;--s){var u=e.charCodeAt(s);if(47!==u)-1===i&&(o=!1,i=s+1),46===u?-1===n?n=s:1!==a&&(a=1):-1!==n&&(a=-1);else if(!o){r=s+1;break}}return-1===n||-1===i||0===a||1===a&&n===i-1&&n===r+1?"":e.slice(n,i)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var n=t.dir||t.root,r=t.base||(t.name||"")+(t.ext||"");return n?n===t.root?n+r:n+"/"+r:r}(0,e)},parse:function(e){t(e);var n={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return n;var r,i=e.charCodeAt(0),o=47===i;o?(n.root="/",r=1):r=0;for(var a=-1,s=0,u=-1,c=!0,f=e.length-1,l=0;f>=r;--f)if(47!==(i=e.charCodeAt(f)))-1===u&&(c=!1,u=f+1),46===i?-1===a?a=f:1!==l&&(l=1):-1!==a&&(l=-1);else if(!c){s=f+1;break}return-1===a||-1===u||0===l||1===l&&a===u-1&&a===s+1?-1!==u&&(n.base=n.name=0===s&&o?e.slice(1,u):e.slice(s,u)):(0===s&&o?(n.name=e.slice(1,a),n.base=e.slice(1,u)):(n.name=e.slice(s,a),n.base=e.slice(s,u)),n.ext=e.slice(a,u)),s>0?n.dir=e.slice(0,s-1):o&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};r.posix=r,e.exports=r},447:function(e,t,n){var r;if(n.r(t),n.d(t,{URI:function(){return d},Utils:function(){return w}}),"object"==typeof process)r="win32"===process.platform;else if("object"==typeof navigator){var i=navigator.userAgent;r=i.indexOf("Windows")>=0}var o,a,s=(o=function(e,t){return(o=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])})(e,t)},function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),u=/^\w[\w\d+.-]*$/,c=/^\//,f=/^\/\//,l="",h="/",p=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,d=function(){function e(e,t,n,r,i,o){void 0===o&&(o=!1),"object"==typeof e?(this.scheme=e.scheme||l,this.authority=e.authority||l,this.path=e.path||l,this.query=e.query||l,this.fragment=e.fragment||l):(this.scheme=function(e,t){return e||t?e:"file"}(e,o),this.authority=t||l,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==h&&(t=h+t):t=h}return t}(this.scheme,n||l),this.query=r||l,this.fragment=i||l,function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: "", authority: "'+e.authority+'", path: "'+e.path+'", query: "'+e.query+'", fragment: "'+e.fragment+'"}');if(e.scheme&&!u.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!c.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,o))}return e.isUri=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&&"function"==typeof t.fsPath&&"function"==typeof t.with&&"function"==typeof t.toString},Object.defineProperty(e.prototype,"fsPath",{get:function(){return x(this,!1)},enumerable:!1,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,r=e.path,i=e.query,o=e.fragment;return void 0===t?t=this.scheme:null===t&&(t=l),void 0===n?n=this.authority:null===n&&(n=l),void 0===r?r=this.path:null===r&&(r=l),void 0===i?i=this.query:null===i&&(i=l),void 0===o?o=this.fragment:null===o&&(o=l),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&o===this.fragment?this:new g(t,n,r,i,o)},e.parse=function(e,t){void 0===t&&(t=!1);var n=p.exec(e);return n?new g(n[2]||l,k(n[4]||l),k(n[5]||l),k(n[7]||l),k(n[9]||l),t):new g(l,l,l,l,l)},e.file=function(e){var t=l;if(r&&(e=e.replace(/\\/g,h)),e[0]===h&&e[1]===h){var n=e.indexOf(h,2);-1===n?(t=e.substring(2),e=h):(t=e.substring(2,n),e=e.substring(n)||h)}return new g("file",t,e,l,l)},e.from=function(e){return new g(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),A(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new g(t);return n._formatted=t.external,n._fsPath=t._sep===m?t.fsPath:null,n}return t},e}(),m=r?1:void 0,g=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return s(t,e),Object.defineProperty(t.prototype,"fsPath",{get:function(){return this._fsPath||(this._fsPath=x(this,!1)),this._fsPath},enumerable:!1,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?A(this,!0):(this._formatted||(this._formatted=A(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=m),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},t}(d),v=((a={})[58]="%3A",a[47]="%2F",a[63]="%3F",a[35]="%23",a[91]="%5B",a[93]="%5D",a[64]="%40",a[33]="%21",a[36]="%24",a[38]="%26",a[39]="%27",a[40]="%28",a[41]="%29",a[42]="%2A",a[43]="%2B",a[44]="%2C",a[59]="%3B",a[61]="%3D",a[32]="%20",a);function y(e,t){for(var n=void 0,r=-1,i=0;i<e.length;i++){var o=e.charCodeAt(i);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!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),void 0!==n&&(n+=e.charAt(i));else{void 0===n&&(n=e.substr(0,i));var a=v[o];void 0!==a?(-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),n+=a):-1===r&&(r=i)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function b(e){for(var t=void 0,n=0;n<e.length;n++){var r=e.charCodeAt(n);35===r||63===r?(void 0===t&&(t=e.substr(0,n)),t+=v[r]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function x(e,t){var n;return n=e.authority&&e.path.length>1&&"file"===e.scheme?"//"+e.authority+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,r&&(n=n.replace(/\//g,"\\")),n}function A(e,t){var n=t?b:y,r="",i=e.scheme,o=e.authority,a=e.path,s=e.query,u=e.fragment;if(i&&(r+=i,r+=":"),(o||"file"===i)&&(r+=h,r+=h),o){var c=o.indexOf("@");if(-1!==c){var f=o.substr(0,c);o=o.substr(c+1),-1===(c=f.indexOf(":"))?r+=n(f,!1):(r+=n(f.substr(0,c),!1),r+=":",r+=n(f.substr(c+1),!1)),r+="@"}-1===(c=(o=o.toLowerCase()).indexOf(":"))?r+=n(o,!1):(r+=n(o.substr(0,c),!1),r+=o.substr(c))}if(a){if(a.length>=3&&47===a.charCodeAt(0)&&58===a.charCodeAt(2))(l=a.charCodeAt(1))>=65&&l<=90&&(a="/"+String.fromCharCode(l+32)+":"+a.substr(3));else if(a.length>=2&&58===a.charCodeAt(1)){var l;(l=a.charCodeAt(0))>=65&&l<=90&&(a=String.fromCharCode(l+32)+":"+a.substr(2))}r+=n(a,!0)}return s&&(r+="?",r+=n(s,!1)),u&&(r+="#",r+=t?u:y(u,!1)),r}function C(e){try{return decodeURIComponent(e)}catch(t){return e.length>3?e.substr(0,3)+C(e.substr(3)):e}}var S=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function k(e){return e.match(S)?e.replace(S,(function(e){return C(e)})):e}var w,I=n(470),j=function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),i=0;for(t=0;t<n;t++)for(var o=arguments[t],a=0,s=o.length;a<s;a++,i++)r[i]=o[a];return r},E=I.posix||I;!function(e){e.joinPath=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return e.with({path:E.join.apply(E,j([e.path],t))})},e.resolvePath=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=e.path||"/";return e.with({path:E.resolve.apply(E,j([r],t))})},e.dirname=function(e){var t=E.dirname(e.path);return 1===t.length&&46===t.charCodeAt(0)?e:e.with({path:t})},e.basename=function(e){return E.basename(e.path)},e.extname=function(e){return E.extname(e.path)}}(w||(w={}))}},t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}return n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(447)}();var nt=Ye,rt=nt.URI,it=(nt.Utils,Fe()),ot=function(){function e(e,t){this.patternRegExps=[],this.isInclude=[];try{for(var n=0,r=e;n<r.length;n++){var i=r[n],o="!"!==i[0];o||(i=i.substring(1)),this.patternRegExps.push(new RegExp(Qe(i)+"$")),this.isInclude.push(o)}this.uris=t}catch(a){this.patternRegExps.length=0,this.isInclude.length=0,this.uris=[]}}return e.prototype.matchesPattern=function(e){for(var t=!1,n=0;n<this.patternRegExps.length;n++){this.patternRegExps[n].test(e)&&(t=this.isInclude[n])}return t},e.prototype.getURIs=function(){return this.uris},e}(),at=function(){function e(e,t,n){this.service=e,this.url=t,this.dependencies={},n&&(this.unresolvedSchema=this.service.promise.resolve(new st(n)))}return e.prototype.getUnresolvedSchema=function(){return this.unresolvedSchema||(this.unresolvedSchema=this.service.loadSchema(this.url)),this.unresolvedSchema},e.prototype.getResolvedSchema=function(){var e=this;return this.resolvedSchema||(this.resolvedSchema=this.getUnresolvedSchema().then((function(t){return e.service.resolveSchemaContent(t,e.url,e.dependencies)}))),this.resolvedSchema},e.prototype.clearSchema=function(){this.resolvedSchema=void 0,this.unresolvedSchema=void 0,this.dependencies={}},e}(),st=function(e,t){void 0===t&&(t=[]),this.schema=e,this.errors=t},ut=function(){function e(e,t){void 0===t&&(t=[]),this.schema=e,this.errors=t}return e.prototype.getSection=function(e){var t=this.getSectionRecursive(e,this.schema);if(t)return We(t)},e.prototype.getSectionRecursive=function(e,t){if(!t||"boolean"===typeof t||0===e.length)return t;var n=e.shift();if(t.properties&&(t.properties[n],1))return this.getSectionRecursive(e,t.properties[n]);if(t.patternProperties)for(var r=0,i=Object.keys(t.patternProperties);r<i.length;r++){var o=i[r];if(new RegExp(o).test(n))return this.getSectionRecursive(e,t.patternProperties[o])}else{if("object"===typeof t.additionalProperties)return this.getSectionRecursive(e,t.additionalProperties);if(n.match("[0-9]+"))if(Array.isArray(t.items)){var a=parseInt(n,10);if(!isNaN(a)&&t.items[a])return this.getSectionRecursive(e,t.items[a])}else if(t.items)return this.getSectionRecursive(e,t.items)}},e}(),ct=(function(){function e(e,t,n){this.contextService=t,this.requestService=e,this.promiseConstructor=n||Promise,this.callOnDispose=[],this.contributionSchemas={},this.contributionAssociations=[],this.schemasById={},this.filePatternAssociations=[],this.registeredSchemasIds={}}e.prototype.getRegisteredSchemaIds=function(e){return Object.keys(this.registeredSchemasIds).filter((function(t){var n=rt.parse(t).scheme;return"schemaservice"!==n&&(!e||e(n))}))},Object.defineProperty(e.prototype,"promise",{get:function(){return this.promiseConstructor},enumerable:!1,configurable:!0}),e.prototype.dispose=function(){for(;this.callOnDispose.length>0;)this.callOnDispose.pop()()},e.prototype.onResourceChange=function(e){for(var t=this,n=!1,r=[e=ft(e)],i=Object.keys(this.schemasById).map((function(e){return t.schemasById[e]}));r.length;)for(var o=r.pop(),a=0;a<i.length;a++){var s=i[a];s&&(s.url===o||s.dependencies[o])&&(s.url!==o&&r.push(s.url),s.clearSchema(),i[a]=void 0,n=!0)}return n},e.prototype.setSchemaContributions=function(e){if(e.schemas){var t=e.schemas;for(var n in t){var r=ft(n);this.contributionSchemas[r]=this.addSchemaHandle(r,t[n])}}if(Array.isArray(e.schemaAssociations))for(var i=0,o=e.schemaAssociations;i<o.length;i++){var a=o[i],s=a.uris.map(ft),u=this.addFilePatternAssociation(a.pattern,s);this.contributionAssociations.push(u)}},e.prototype.addSchemaHandle=function(e,t){var n=new at(this,e,t);return this.schemasById[e]=n,n},e.prototype.getOrAddSchemaHandle=function(e,t){return this.schemasById[e]||this.addSchemaHandle(e,t)},e.prototype.addFilePatternAssociation=function(e,t){var n=new ot(e,t);return this.filePatternAssociations.push(n),n},e.prototype.registerExternalSchema=function(e,t,n){var r=ft(e);return this.registeredSchemasIds[r]=!0,this.cachedSchemaForResource=void 0,t&&this.addFilePatternAssociation(t,[e]),n?this.addSchemaHandle(r,n):this.getOrAddSchemaHandle(r)},e.prototype.clearExternalSchemas=function(){for(var e in this.schemasById={},this.filePatternAssociations=[],this.registeredSchemasIds={},this.cachedSchemaForResource=void 0,this.contributionSchemas)this.schemasById[e]=this.contributionSchemas[e],this.registeredSchemasIds[e]=!0;for(var t=0,n=this.contributionAssociations;t<n.length;t++){var r=n[t];this.filePatternAssociations.push(r)}},e.prototype.getResolvedSchema=function(e){var t=ft(e),n=this.schemasById[t];return n?n.getResolvedSchema():this.promise.resolve(void 0)},e.prototype.loadSchema=function(e){if(!this.requestService){var t=it("json.schema.norequestservice","Unable to load schema from '{0}'. No schema request service available",lt(e));return this.promise.resolve(new st({},[t]))}return this.requestService(e).then((function(t){if(!t){var n=it("json.schema.nocontent","Unable to load schema from '{0}': No content.",lt(e));return new st({},[n])}var r,i=[];r=L(t,i);var o=i.length?[it("json.schema.invalidFormat","Unable to parse content from '{0}': Parse error at offset {1}.",lt(e),i[0].offset)]:[];return new st(r,o)}),(function(t){var n=t.toString(),r=t.toString().split("Error: ");return r.length>1&&(n=r[1]),Ze(n,".")&&(n=n.substr(0,n.length-1)),new st({},[it("json.schema.nocontent","Unable to load schema from '{0}': {1}.",lt(e),n)])}))},e.prototype.resolveSchemaContent=function(e,t,n){var r=this,i=e.errors.slice(0),o=e.schema;if(o.$schema){var a=ft(o.$schema);if("http://json-schema.org/draft-03/schema"===a)return this.promise.resolve(new ut({},[it("json.schema.draft03.notsupported","Draft-03 schemas are not supported.")]));"https://json-schema.org/draft/2019-09/schema"===a&&i.push(it("json.schema.draft201909.notsupported","Draft 2019-09 schemas are not yet fully supported."))}var s=this.contextService,u=function(e,t,n,r){var o=r?decodeURIComponent(r):void 0,a=function(e,t){if(!t)return e;var n=e;return"/"===t[0]&&(t=t.substr(1)),t.split("/").some((function(e){return!(n=n[e])})),n}(t,o);if(a)for(var s in a)a.hasOwnProperty(s)&&!e.hasOwnProperty(s)&&(e[s]=a[s]);else i.push(it("json.schema.invalidref","$ref '{0}' in '{1}' can not be resolved.",o,n))},c=function(e,t,n,o,a){s&&!/^\w+:\/\/.*/.test(t)&&(t=s.resolveRelativePath(t,o)),t=ft(t);var c=r.getOrAddSchemaHandle(t);return c.getUnresolvedSchema().then((function(r){if(a[t]=!0,r.errors.length){var o=n?t+"#"+n:t;i.push(it("json.schema.problemloadingref","Problems loading reference '{0}': {1}",o,r.errors[0]))}return u(e,r.schema,t,n),f(e,r.schema,t,c.dependencies)}))},f=function(e,t,n,i){if(!e||"object"!==typeof e)return Promise.resolve(null);for(var o=[e],a=[],s=[],f=function(e){for(var r=[];e.$ref;){var a=e.$ref,f=a.split("#",2);if(delete e.$ref,f[0].length>0)return void s.push(c(e,f[0],f[1],n,i));-1===r.indexOf(a)&&(u(e,t,n,f[1]),r.push(a))}!function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,r=e;n<r.length;n++){var i=r[n];"object"===typeof i&&o.push(i)}}(e.items,e.additionalItems,e.additionalProperties,e.not,e.contains,e.propertyNames,e.if,e.then,e.else),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,r=e;n<r.length;n++){var i=r[n];if("object"===typeof i)for(var a in i){var s=i[a];"object"===typeof s&&o.push(s)}}}(e.definitions,e.properties,e.patternProperties,e.dependencies),function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=0,r=e;n<r.length;n++){var i=r[n];if(Array.isArray(i))for(var a=0,s=i;a<s.length;a++){var u=s[a];"object"===typeof u&&o.push(u)}}}(e.anyOf,e.allOf,e.oneOf,e.items)};o.length;){var l=o.pop();a.indexOf(l)>=0||(a.push(l),f(l))}return r.promise.all(s)};return f(o,o,t,n).then((function(e){return new ut(o,i)}))},e.prototype.getSchemaForResource=function(e,t){if(t&&t.root&&"object"===t.root.type){var n=t.root.properties.filter((function(e){return"$schema"===e.keyNode.value&&e.valueNode&&"string"===e.valueNode.type}));if(n.length>0){var r=n[0].valueNode;if(r&&"string"===r.type){var i=Je(r);if(i&&function(e,t){if(e.length<t.length)return!1;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0}(i,".")&&this.contextService&&(i=this.contextService.resolveRelativePath(i,e)),i){var o=ft(i);return this.getOrAddSchemaHandle(o).getResolvedSchema()}}}}if(this.cachedSchemaForResource&&this.cachedSchemaForResource.resource===e)return this.cachedSchemaForResource.resolvedSchema;for(var a=Object.create(null),s=[],u=function(e){try{return rt.parse(e).with({fragment:null,query:null}).toString()}catch(t){return e}}(e),c=0,f=this.filePatternAssociations;c<f.length;c++){var l=f[c];if(l.matchesPattern(u))for(var h=0,p=l.getURIs();h<p.length;h++){var d=p[h];a[d]||(s.push(d),a[d]=!0)}}var m=s.length>0?this.createCombinedSchema(e,s).getResolvedSchema():this.promise.resolve(void 0);return this.cachedSchemaForResource={resource:e,resolvedSchema:m},m},e.prototype.createCombinedSchema=function(e,t){if(1===t.length)return this.getOrAddSchemaHandle(t[0]);var n="schemaservice://combinedSchema/"+encodeURIComponent(e),r={allOf:t.map((function(e){return{$ref:e}}))};return this.addSchemaHandle(n,r)},e.prototype.getMatchingSchemas=function(e,t,n){if(n){var r=n.id||"schemaservice://untitled/matchingSchemas/"+ct++;return this.resolveSchemaContent(new st(n),r,{}).then((function(e){return t.getMatchingSchemas(e.schema).filter((function(e){return!e.inverted}))}))}return this.getSchemaForResource(e.uri,t).then((function(e){return e?t.getMatchingSchemas(e.schema).filter((function(e){return!e.inverted})):[]}))}}(),0);function ft(e){try{return rt.parse(e).toString()}catch(t){return e}}function lt(e){try{var t=rt.parse(e);if("file"===t.scheme)return t.fsPath}catch(n){}return e}var ht=Fe(),pt=(function(){function e(e,t){this.jsonSchemaService=e,this.promise=t,this.validationEnabled=!0}e.prototype.configure=function(e){e&&(this.validationEnabled=!1!==e.validate,this.commentSeverity=e.allowComments?void 0:S.Error)},e.prototype.doValidation=function(e,t,n,r){var i=this;if(!this.validationEnabled)return this.promise.resolve([]);var o=[],a={},s=function(e){var t=e.range.start.line+" "+e.range.start.character+" "+e.message;a[t]||(a[t]=!0,o.push(e))},u=function(r){var a=n?gt(n.trailingCommas):S.Error,u=n?gt(n.comments):i.commentSeverity,c=(null===n||void 0===n?void 0:n.schemaValidation)?gt(n.schemaValidation):S.Warning,f=(null===n||void 0===n?void 0:n.schemaRequest)?gt(n.schemaRequest):S.Warning;if(r){if(r.errors.length&&t.root&&f){var l=t.root,h="object"===l.type?l.properties[0]:void 0;if(h&&"$schema"===h.keyNode.value){var p=h.valueNode||h,m=d.create(e.positionAt(p.offset),e.positionAt(p.offset+p.length));s(I.create(m,r.errors[0],f,Ee.SchemaResolveError))}else{m=d.create(e.positionAt(l.offset),e.positionAt(l.offset+1));s(I.create(m,r.errors[0],f,Ee.SchemaResolveError))}}else if(c){var g=t.validate(e,r.schema,c);g&&g.forEach(s)}dt(r.schema)&&(u=void 0),mt(r.schema)&&(a=void 0)}for(var v=0,y=t.syntaxErrors;v<y.length;v++){var b=y[v];if(b.code===Ee.TrailingComma){if("number"!==typeof a)continue;b.severity=a}s(b)}if("number"===typeof u){var x=ht("InvalidCommentToken","Comments are not permitted in JSON.");t.comments.forEach((function(e){s(I.create(e,x,u,Ee.CommentNotPermitted))}))}return o};if(r){var c=r.id||"schemaservice://untitled/"+pt++;return this.jsonSchemaService.resolveSchemaContent(new st(r),c,{}).then((function(e){return u(e)}))}return this.jsonSchemaService.getSchemaForResource(e.uri,t).then((function(e){return u(e)}))}}(),0);function dt(e){if(e&&"object"===typeof e){if(K(e.allowComments))return e.allowComments;if(e.allOf)for(var t=0,n=e.allOf;t<n.length;t++){var r=dt(n[t]);if(K(r))return r}}}function mt(e){if(e&&"object"===typeof e){if(K(e.allowTrailingCommas))return e.allowTrailingCommas;var t=e;if(K(t.allowsTrailingCommas))return t.allowsTrailingCommas;if(e.allOf)for(var n=0,r=e.allOf;n<r.length;n++){var i=mt(r[n]);if(K(i))return i}}}function gt(e){switch(e){case"error":return S.Error;case"warning":return S.Warning;case"ignore":return}}var vt=48,yt=57,bt=65,xt=97,At=102;function Ct(e){return e<vt?0:e<=yt?e-vt:(e<xt&&(e+=xt-bt),e>=xt&&e<=At?e-xt+10:0)}function St(e){if("#"===e[0])switch(e.length){case 4:return{red:17*Ct(e.charCodeAt(1))/255,green:17*Ct(e.charCodeAt(2))/255,blue:17*Ct(e.charCodeAt(3))/255,alpha:1};case 5:return{red:17*Ct(e.charCodeAt(1))/255,green:17*Ct(e.charCodeAt(2))/255,blue:17*Ct(e.charCodeAt(3))/255,alpha:17*Ct(e.charCodeAt(4))/255};case 7:return{red:(16*Ct(e.charCodeAt(1))+Ct(e.charCodeAt(2)))/255,green:(16*Ct(e.charCodeAt(3))+Ct(e.charCodeAt(4)))/255,blue:(16*Ct(e.charCodeAt(5))+Ct(e.charCodeAt(6)))/255,alpha:1};case 9:return{red:(16*Ct(e.charCodeAt(1))+Ct(e.charCodeAt(2)))/255,green:(16*Ct(e.charCodeAt(3))+Ct(e.charCodeAt(4)))/255,blue:(16*Ct(e.charCodeAt(5))+Ct(e.charCodeAt(6)))/255,alpha:(16*Ct(e.charCodeAt(7))+Ct(e.charCodeAt(8)))/255}}}!function(){function e(e){this.schemaService=e}e.prototype.findDocumentSymbols=function(e,t,n){var r=this;void 0===n&&(n={resultLimit:Number.MAX_VALUE});var i=t.root;if(!i)return[];var o=n.resultLimit||Number.MAX_VALUE,a=e.uri;if(("vscode://defaultsettings/keybindings.json"===a||Ze(a.toLowerCase(),"/user/keybindings.json"))&&"array"===i.type){for(var s=[],u=0,c=i.items;u<c.length;u++){var f=c[u];if("object"===f.type)for(var l=0,h=f.properties;l<h.length;l++){var p=h[l];if("key"===p.keyNode.value&&p.valueNode){var d=m.create(e.uri,kt(e,f));if(s.push({name:Je(p.valueNode),kind:le.Function,location:d}),--o<=0)return n&&n.onResultLimitExceeded&&n.onResultLimitExceeded(a),s}}}return s}for(var g=[{node:i,containerName:""}],v=0,y=!1,b=[],x=function(t,n){"array"===t.type?t.items.forEach((function(e){e&&g.push({node:e,containerName:n})})):"object"===t.type&&t.properties.forEach((function(t){var i=t.valueNode;if(i)if(o>0){o--;var a=m.create(e.uri,kt(e,t)),s=n?n+"."+t.keyNode.value:t.keyNode.value;b.push({name:r.getKeyLabel(t),kind:r.getSymbolKind(i.type),location:a,containerName:n}),g.push({node:i,containerName:s})}else y=!0}))};v<g.length;){var A=g[v++];x(A.node,A.containerName)}return y&&n&&n.onResultLimitExceeded&&n.onResultLimitExceeded(a),b},e.prototype.findDocumentSymbols2=function(e,t,n){var r=this;void 0===n&&(n={resultLimit:Number.MAX_VALUE});var i=t.root;if(!i)return[];var o=n.resultLimit||Number.MAX_VALUE,a=e.uri;if(("vscode://defaultsettings/keybindings.json"===a||Ze(a.toLowerCase(),"/user/keybindings.json"))&&"array"===i.type){for(var s=[],u=0,c=i.items;u<c.length;u++){var f=c[u];if("object"===f.type)for(var l=0,h=f.properties;l<h.length;l++){var p=h[l];if("key"===p.keyNode.value&&p.valueNode){var d=kt(e,f),m=kt(e,p.keyNode);if(s.push({name:Je(p.valueNode),kind:le.Function,range:d,selectionRange:m}),--o<=0)return n&&n.onResultLimitExceeded&&n.onResultLimitExceeded(a),s}}}return s}for(var g=[],v=[{node:i,result:g}],y=0,b=!1,x=function(t,n){"array"===t.type?t.items.forEach((function(t,i){if(t)if(o>0){o--;var a=kt(e,t),s=a,u={name:String(i),kind:r.getSymbolKind(t.type),range:a,selectionRange:s,children:[]};n.push(u),v.push({result:u.children,node:t})}else b=!0})):"object"===t.type&&t.properties.forEach((function(t){var i=t.valueNode;if(i)if(o>0){o--;var a=kt(e,t),s=kt(e,t.keyNode),u=[],c={name:r.getKeyLabel(t),kind:r.getSymbolKind(i.type),range:a,selectionRange:s,children:u,detail:r.getDetail(i)};n.push(c),v.push({result:u,node:i})}else b=!0}))};y<v.length;){var A=v[y++];x(A.node,A.result)}return b&&n&&n.onResultLimitExceeded&&n.onResultLimitExceeded(a),g},e.prototype.getSymbolKind=function(e){switch(e){case"object":return le.Module;case"string":return le.String;case"number":return le.Number;case"array":return le.Array;case"boolean":return le.Boolean;default:return le.Variable}},e.prototype.getKeyLabel=function(e){var t=e.keyNode.value;return t&&(t=t.replace(/[\n]/g,"\u21b5")),t&&t.trim()?t:'"'+t+'"'},e.prototype.getDetail=function(e){if(e)return"boolean"===e.type||"number"===e.type||"null"===e.type||"string"===e.type?String(e.value):"array"===e.type?e.children.length?void 0:"[]":"object"===e.type?e.children.length?void 0:"{}":void 0},e.prototype.findDocumentColors=function(e,t,n){return this.schemaService.getSchemaForResource(e.uri,t).then((function(r){var i=[];if(r)for(var o=n&&"number"===typeof n.resultLimit?n.resultLimit:Number.MAX_VALUE,a={},s=0,u=t.getMatchingSchemas(r.schema);s<u.length;s++){var c=u[s];if(!c.inverted&&c.schema&&("color"===c.schema.format||"color-hex"===c.schema.format)&&c.node&&"string"===c.node.type){var f=String(c.node.offset);if(!a[f]){var l=St(Je(c.node));if(l){var h=kt(e,c.node);i.push({color:l,range:h})}if(a[f]=!0,--o<=0)return n&&n.onResultLimitExceeded&&n.onResultLimitExceeded(e.uri),i}}}return i}))},e.prototype.getColorPresentations=function(e,t,n,r){var i,o=[],a=Math.round(255*n.red),s=Math.round(255*n.green),u=Math.round(255*n.blue);function c(e){var t=e.toString(16);return 2!==t.length?"0"+t:t}return i=1===n.alpha?"#"+c(a)+c(s)+c(u):"#"+c(a)+c(s)+c(u)+c(Math.round(255*n.alpha)),o.push({label:i,textEdit:E.replace(r,JSON.stringify(i))}),o}}();function kt(e,t){return d.create(e.positionAt(t.offset),e.positionAt(t.offset+t.length))}var wt=Fe(),It={schemaAssociations:[],schemas:{"http://json-schema.org/schema#":{$ref:"http://json-schema.org/draft-07/schema#"},"http://json-schema.org/draft-04/schema#":{title:wt("schema.json","Describes a JSON file using a schema. See json-schema.org for more info."),$schema:"http://json-schema.org/draft-04/schema#",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},positiveInteger:{type:"integer",minimum:0},positiveIntegerDefault0:{allOf:[{$ref:"#/definitions/positiveInteger"},{default:0}]},simpleTypes:{type:"string",enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},minItems:1,uniqueItems:!0}},type:"object",properties:{id:{type:"string",format:"uri"},$schema:{type:"string",format:"uri"},title:{type:"string"},description:{type:"string"},default:{},multipleOf:{type:"number",minimum:0,exclusiveMinimum:!0},maximum:{type:"number"},exclusiveMaximum:{type:"boolean",default:!1},minimum:{type:"number"},exclusiveMinimum:{type:"boolean",default:!1},maxLength:{allOf:[{$ref:"#/definitions/positiveInteger"}]},minLength:{allOf:[{$ref:"#/definitions/positiveIntegerDefault0"}]},pattern:{type:"string",format:"regex"},additionalItems:{anyOf:[{type:"boolean"},{$ref:"#"}],default:{}},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:{}},maxItems:{allOf:[{$ref:"#/definitions/positiveInteger"}]},minItems:{allOf:[{$ref:"#/definitions/positiveIntegerDefault0"}]},uniqueItems:{type:"boolean",default:!1},maxProperties:{allOf:[{$ref:"#/definitions/positiveInteger"}]},minProperties:{allOf:[{$ref:"#/definitions/positiveIntegerDefault0"}]},required:{allOf:[{$ref:"#/definitions/stringArray"}]},additionalProperties:{anyOf:[{type:"boolean"},{$ref:"#"}],default:{}},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},enum:{type:"array",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{anyOf:[{type:"string",enum:["date-time","uri","email","hostname","ipv4","ipv6","regex"]},{type:"string"}]},allOf:{allOf:[{$ref:"#/definitions/schemaArray"}]},anyOf:{allOf:[{$ref:"#/definitions/schemaArray"}]},oneOf:{allOf:[{$ref:"#/definitions/schemaArray"}]},not:{allOf:[{$ref:"#"}]}},dependencies:{exclusiveMaximum:["maximum"],exclusiveMinimum:["minimum"]},default:{}},"http://json-schema.org/draft-07/schema#":{title:wt("schema.json","Describes a JSON file using a schema. See json-schema.org for more info."),definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}}},jt={id:wt("schema.json.id","A unique identifier for the schema."),$schema:wt("schema.json.$schema","The schema to verify this document against."),title:wt("schema.json.title","A descriptive title of the element."),description:wt("schema.json.description","A long description of the element. Used in hover menus and suggestions."),default:wt("schema.json.default","A default value. Used by suggestions."),multipleOf:wt("schema.json.multipleOf","A number that should cleanly divide the current value (i.e. have no remainder)."),maximum:wt("schema.json.maximum","The maximum numerical value, inclusive by default."),exclusiveMaximum:wt("schema.json.exclusiveMaximum","Makes the maximum property exclusive."),minimum:wt("schema.json.minimum","The minimum numerical value, inclusive by default."),exclusiveMinimum:wt("schema.json.exclusiveMininum","Makes the minimum property exclusive."),maxLength:wt("schema.json.maxLength","The maximum length of a string."),minLength:wt("schema.json.minLength","The minimum length of a string."),pattern:wt("schema.json.pattern","A regular expression to match the string against. It is not implicitly anchored."),additionalItems:wt("schema.json.additionalItems","For arrays, only when items is set as an array. If it is a schema, then this schema validates items after the ones specified by the items array. If it is false, then additional items will cause validation to fail."),items:wt("schema.json.items","For arrays. Can either be a schema to validate every element against or an array of schemas to validate each item against in order (the first schema will validate the first element, the second schema will validate the second element, and so on."),maxItems:wt("schema.json.maxItems","The maximum number of items that can be inside an array. Inclusive."),minItems:wt("schema.json.minItems","The minimum number of items that can be inside an array. Inclusive."),uniqueItems:wt("schema.json.uniqueItems","If all of the items in the array must be unique. Defaults to false."),maxProperties:wt("schema.json.maxProperties","The maximum number of properties an object can have. Inclusive."),minProperties:wt("schema.json.minProperties","The minimum number of properties an object can have. Inclusive."),required:wt("schema.json.required","An array of strings that lists the names of all properties required on this object."),additionalProperties:wt("schema.json.additionalProperties","Either a schema or a boolean. If a schema, then used to validate all properties not matched by 'properties' or 'patternProperties'. If false, then any properties not matched by either will cause this schema to fail."),definitions:wt("schema.json.definitions","Not used for validation. Place subschemas here that you wish to reference inline with $ref."),properties:wt("schema.json.properties","A map of property names to schemas for each property."),patternProperties:wt("schema.json.patternProperties","A map of regular expressions on property names to schemas for matching properties."),dependencies:wt("schema.json.dependencies","A map of property names to either an array of property names or a schema. An array of property names means the property named in the key depends on the properties in the array being present in the object in order to be valid. If the value is a schema, then the schema is only applied to the object if the property in the key exists on the object."),enum:wt("schema.json.enum","The set of literal values that are valid."),type:wt("schema.json.type","Either a string of one of the basic schema types (number, integer, null, array, object, boolean, string) or an array of strings specifying a subset of those types."),format:wt("schema.json.format","Describes the format expected for the value."),allOf:wt("schema.json.allOf","An array of schemas, all of which must match."),anyOf:wt("schema.json.anyOf","An array of schemas, where at least one must match."),oneOf:wt("schema.json.oneOf","An array of schemas, exactly one of which must match."),not:wt("schema.json.not","A schema which must not match."),$id:wt("schema.json.$id","A unique identifier for the schema."),$ref:wt("schema.json.$ref","Reference a definition hosted on any location."),$comment:wt("schema.json.$comment","Comments from schema authors to readers or maintainers of the schema."),readOnly:wt("schema.json.readOnly","Indicates that the value of the instance is managed exclusively by the owning authority."),examples:wt("schema.json.examples","Sample JSON values associated with a particular schema, for the purpose of illustrating usage."),contains:wt("schema.json.contains",'An array instance is valid against "contains" if at least one of its elements is valid against the given schema.'),propertyNames:wt("schema.json.propertyNames","If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema."),const:wt("schema.json.const","An instance validates successfully against this keyword if its value is equal to the value of the keyword."),contentMediaType:wt("schema.json.contentMediaType","Describes the media type of a string property."),contentEncoding:wt("schema.json.contentEncoding","Describes the content encoding of a string property."),if:wt("schema.json.if",'The validation outcome of the "if" subschema controls which of the "then" or "else" keywords are evaluated.'),then:wt("schema.json.then",'The "if" subschema is used for validation when the "if" subschema succeeds.'),else:wt("schema.json.else",'The "else" subschema is used for validation when the "if" subschema fails.')};for(var Et in It.schemas){var Tt=It.schemas[Et];for(var Ot in Tt.properties){var _t=Tt.properties[Ot];"boolean"===typeof _t&&(_t=Tt.properties[Ot]={});var Mt=jt[Ot];Mt?_t.description=Mt:console.log(Ot+": localize('schema.json."+Ot+'\', "")')}}var Pt=function(){function e(e,t,n){var r=this;this._languageId=e,this._worker=t,this._disposables=[],this._listener=Object.create(null);var o=function(e){var t,n=e.getModeId();n===r._languageId&&(r._listener[e.uri.toString()]=e.onDidChangeContent((function(){clearTimeout(t),t=setTimeout((function(){return r._doValidate(e.uri,n)}),500)})),r._doValidate(e.uri,n))},a=function(e){i.j6.setModelMarkers(e,r._languageId,[]);var t=e.uri.toString(),n=r._listener[t];n&&(n.dispose(),delete r._listener[t])};this._disposables.push(i.j6.onDidCreateModel(o)),this._disposables.push(i.j6.onWillDisposeModel((function(e){a(e),r._resetSchema(e.uri)}))),this._disposables.push(i.j6.onDidChangeModelLanguage((function(e){a(e.model),o(e.model),r._resetSchema(e.model.uri)}))),this._disposables.push(n.onDidChange((function(e){i.j6.getModels().forEach((function(e){e.getModeId()===r._languageId&&(a(e),o(e))}))}))),this._disposables.push({dispose:function(){for(var e in i.j6.getModels().forEach(a),r._listener)r._listener[e].dispose()}}),i.j6.getModels().forEach(o)}return e.prototype.dispose=function(){this._disposables.forEach((function(e){return e&&e.dispose()})),this._disposables=[]},e.prototype._resetSchema=function(e){this._worker().then((function(t){t.resetSchema(e.toString())}))},e.prototype._doValidate=function(e,t){this._worker(e).then((function(n){return n.doValidation(e.toString()).then((function(n){var r=n.map((function(e){return function(e,t){var n="number"===typeof t.code?String(t.code):t.code;return{severity:Vt(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source}}(0,e)})),o=i.j6.getModel(e);o&&o.getModeId()===t&&i.j6.setModelMarkers(o,t,r)}))})).then(void 0,(function(e){console.error(e)}))},e}();function Vt(e){switch(e){case S.Error:return i.ZL.Error;case S.Warning:return i.ZL.Warning;case S.Information:return i.ZL.Info;case S.Hint:return i.ZL.Hint;default:return i.ZL.Info}}function Nt(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function Ft(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function Rt(e){if(e)return new i.e6(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function Lt(e){var t=i.Mj.CompletionItemKind;switch(e){case Q.Text:return t.Text;case Q.Method:return t.Method;case Q.Function:return t.Function;case Q.Constructor:return t.Constructor;case Q.Field:return t.Field;case Q.Variable:return t.Variable;case Q.Class:return t.Class;case Q.Interface:return t.Interface;case Q.Module:return t.Module;case Q.Property:return t.Property;case Q.Unit:return t.Unit;case Q.Value:return t.Value;case Q.Enum:return t.Enum;case Q.Keyword:return t.Keyword;case Q.Snippet:return t.Snippet;case Q.Color:return t.Color;case Q.File:return t.File;case Q.Reference:return t.Reference}return t.Property}function $t(e){if(e)return{range:Rt(e.range),text:e.newText}}var Dt=function(){function e(e){this._worker=e}return Object.defineProperty(e.prototype,"triggerCharacters",{get:function(){return[" ",":"]},enumerable:!1,configurable:!0}),e.prototype.provideCompletionItems=function(e,t,n,r){var o=e.uri;return this._worker(o).then((function(e){return e.doComplete(o.toString(),Nt(t))})).then((function(n){if(n){var r=e.getWordUntilPosition(t),o=new i.e6(t.lineNumber,r.startColumn,t.lineNumber,r.endColumn),a=n.items.map((function(e){var t={label:e.label,insertText:e.insertText||e.label,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,range:o,kind:Lt(e.kind)};return e.textEdit&&(!function(e){return"undefined"!==typeof e.insert&&"undefined"!==typeof e.replace}(e.textEdit)?t.range=Rt(e.textEdit.range):t.range={insert:Rt(e.textEdit.insert),replace:Rt(e.textEdit.replace)},t.insertText=e.textEdit.newText),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map($t)),e.insertTextFormat===Y.Snippet&&(t.insertTextRules=i.Mj.CompletionItemInsertTextRule.InsertAsSnippet),t}));return{isIncomplete:n.isIncomplete,suggestions:a}}}))},e}();function Ut(e){return"string"===typeof e?{value:e}:(t=e)&&"object"===typeof t&&"string"===typeof t.kind?"plaintext"===e.kind?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:e.value}:{value:"```"+e.language+"\n"+e.value+"\n```\n"};var t}function Wt(e){if(e)return Array.isArray(e)?e.map(Ut):[Ut(e)]}var qt=function(){function e(e){this._worker=e}return e.prototype.provideHover=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.doHover(r.toString(),Nt(t))})).then((function(e){if(e)return{range:Rt(e.range),contents:Wt(e.contents)}}))},e}();function Bt(e){var t=i.Mj.SymbolKind;switch(e){case le.File:return t.Array;case le.Module:return t.Module;case le.Namespace:return t.Namespace;case le.Package:return t.Package;case le.Class:return t.Class;case le.Method:return t.Method;case le.Property:return t.Property;case le.Field:return t.Field;case le.Constructor:return t.Constructor;case le.Enum:return t.Enum;case le.Interface:return t.Interface;case le.Function:return t.Function;case le.Variable:return t.Variable;case le.Constant:return t.Constant;case le.String:return t.String;case le.Number:return t.Number;case le.Boolean:return t.Boolean;case le.Array:return t.Array}return t.Function}var Kt=function(){function e(e){this._worker=e}return e.prototype.provideDocumentSymbols=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentSymbols(n.toString())})).then((function(e){if(e)return e.map((function(e){return{name:e.name,detail:"",containerName:e.containerName,kind:Bt(e.kind),range:Rt(e.location.range),selectionRange:Rt(e.location.range),tags:[]}}))}))},e}();function Jt(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var zt=function(){function e(e){this._worker=e}return e.prototype.provideDocumentFormattingEdits=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.format(r.toString(),null,Jt(t)).then((function(e){if(e&&0!==e.length)return e.map($t)}))}))},e}(),Ht=function(){function e(e){this._worker=e}return e.prototype.provideDocumentRangeFormattingEdits=function(e,t,n,r){var i=e.uri;return this._worker(i).then((function(e){return e.format(i.toString(),Ft(t),Jt(n)).then((function(e){if(e&&0!==e.length)return e.map($t)}))}))},e}(),Gt=function(){function e(e){this._worker=e}return e.prototype.provideDocumentColors=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentColors(n.toString())})).then((function(e){if(e)return e.map((function(e){return{color:e.color,range:Rt(e.range)}}))}))},e.prototype.provideColorPresentations=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.getColorPresentations(r.toString(),t.color,Ft(t.range))})).then((function(e){if(e)return e.map((function(e){var t={label:e.label};return e.textEdit&&(t.textEdit=$t(e.textEdit)),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map($t)),t}))}))},e}(),Xt=function(){function e(e){this._worker=e}return e.prototype.provideFoldingRanges=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.getFoldingRanges(r.toString(),t)})).then((function(e){if(e)return e.map((function(e){var t={start:e.startLine+1,end:e.endLine+1};return"undefined"!==typeof e.kind&&(t.kind=function(e){switch(e){case x.Comment:return i.Mj.FoldingRangeKind.Comment;case x.Imports:return i.Mj.FoldingRangeKind.Imports;case x.Region:return i.Mj.FoldingRangeKind.Region}return}(e.kind)),t}))}))},e}();var Zt=function(){function e(e){this._worker=e}return e.prototype.provideSelectionRanges=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.getSelectionRanges(r.toString(),t.map(Nt))})).then((function(e){if(e)return e.map((function(e){for(var t=[];e;)t.push({range:Rt(e.range)}),e=e.parent;return t}))}))},e}();function Qt(e){return{getInitialState:function(){return new hn(null,null,!1,null)},tokenize:function(t,n,r,i){return function(e,t,n,r,i){void 0===r&&(r=0);var o=0,a=!1;switch(n.scanError){case 2:t='"'+t,o=1;break;case 1:t="/*"+t,o=2}var s=R(t),u=n.lastWasColon,c=n.parents,f={tokens:[],endState:n.clone()};for(;;){var l=r+s.getPosition(),h="",p=s.scan();if(17===p)break;if(l===r+s.getPosition())throw new Error("Scanner did not advance, next 3 characters are: "+t.substr(s.getPosition(),3));switch(a&&(l-=o),a=o>0,p){case 1:c=ln.push(c,0),h=Yt,u=!1;break;case 2:c=ln.pop(c),h=Yt,u=!1;break;case 3:c=ln.push(c,1),h=en,u=!1;break;case 4:c=ln.pop(c),h=en,u=!1;break;case 6:h=tn,u=!0;break;case 5:h=nn,u=!1;break;case 8:case 9:h=rn,u=!1;break;case 7:h=on,u=!1;break;case 10:var d=c?c.type:0;h=u||1===d?an:un,u=!1;break;case 11:h=sn,u=!1}if(e)switch(p){case 12:h=fn;break;case 13:h=cn}f.endState=new hn(n.getStateData(),s.getTokenError(),u,c),f.tokens.push({startIndex:l,scopes:h})}return f}(e,t,n,r)}}}var Yt="delimiter.bracket.json",en="delimiter.array.json",tn="delimiter.colon.json",nn="delimiter.comma.json",rn="keyword.json",on="keyword.json",an="string.value.json",sn="number.json",un="string.key.json",cn="comment.block.json",fn="comment.line.json",ln=function(){function e(e,t){this.parent=e,this.type=t}return e.pop=function(e){return e?e.parent:null},e.push=function(t,n){return new e(t,n)},e.equals=function(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;for(;e&&t;){if(e===t)return!0;if(e.type!==t.type)return!1;e=e.parent,t=t.parent}return!0},e}(),hn=function(){function e(e,t,n,r){this._state=e,this.scanError=t,this.lastWasColon=n,this.parents=r}return e.prototype.clone=function(){return new e(this._state,this.scanError,this.lastWasColon,this.parents)},e.prototype.equals=function(t){return t===this||!!(t&&t instanceof e)&&(this.scanError===t.scanError&&this.lastWasColon===t.lastWasColon&&ln.equals(this.parents,t.parents))},e.prototype.getStateData=function(){return this._state},e.prototype.setStateData=function(e){this._state=e},e}();function pn(e){var t=[],n=[],r=new o(e);t.push(r);var a=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return r.getLanguageServiceWorker.apply(r,e)};function s(){var t=e.languageId,r=e.modeConfiguration;mn(n),r.documentFormattingEdits&&n.push(i.Mj.registerDocumentFormattingEditProvider(t,new zt(a))),r.documentRangeFormattingEdits&&n.push(i.Mj.registerDocumentRangeFormattingEditProvider(t,new Ht(a))),r.completionItems&&n.push(i.Mj.registerCompletionItemProvider(t,new Dt(a))),r.hovers&&n.push(i.Mj.registerHoverProvider(t,new qt(a))),r.documentSymbols&&n.push(i.Mj.registerDocumentSymbolProvider(t,new Kt(a))),r.tokens&&n.push(i.Mj.setTokensProvider(t,Qt(!0))),r.colors&&n.push(i.Mj.registerColorProvider(t,new Gt(a))),r.foldingRanges&&n.push(i.Mj.registerFoldingRangeProvider(t,new Xt(a))),r.diagnostics&&n.push(new Pt(t,a,e)),r.selectionRanges&&n.push(i.Mj.registerSelectionRangeProvider(t,new Zt(a)))}s(),t.push(i.Mj.setLanguageConfiguration(e.languageId,gn));var u=e.modeConfiguration;return e.onDidChange((function(e){e.modeConfiguration!==u&&(u=e.modeConfiguration,s())})),t.push(dn(n)),dn(t)}function dn(e){return{dispose:function(){return mn(e)}}}function mn(e){for(;e.length;)e.pop().dispose()}var gn={wordPattern:/(-?\d*\.\d\w*)|([^\[\{\]\}\:\"\,\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:'"',close:'"',notIn:["string"]}]}}}]); -//# sourceMappingURL=4952.58b99bba.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4964.c7c75eb0.chunk.js b/ydb/core/viewer/monitoring/static/js/4964.c7c75eb0.chunk.js new file mode 100644 index 000000000000..26530f15a715 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4964.c7c75eb0.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4964],{14964:function(e,a,d){e.exports=function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=a(e),_={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 d.default.locale(_,null,!0),_}(d(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/4985.991de003.chunk.js b/ydb/core/viewer/monitoring/static/js/4985.991de003.chunk.js new file mode 100644 index 000000000000..009e563d9b46 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/4985.991de003.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[4985],{34985:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5012.3afcd232.chunk.js b/ydb/core/viewer/monitoring/static/js/5012.3afcd232.chunk.js deleted file mode 100644 index cd88813b0fb5..000000000000 --- a/ydb/core/viewer/monitoring/static/js/5012.3afcd232.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5012],{5012:function(E,T,R){R.r(T),R.d(T,{conf:function(){return A},language:function(){return I}});var A={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:"'"}]},I={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ABORT_AFTER_WAIT","ABSENT","ABSOLUTE","ACCENT_SENSITIVITY","ACTION","ACTIVATION","ACTIVE","ADD","ADDRESS","ADMIN","AES","AES_128","AES_192","AES_256","AFFINITY","AFTER","AGGREGATE","ALGORITHM","ALL_CONSTRAINTS","ALL_ERRORMSGS","ALL_INDEXES","ALL_LEVELS","ALL_SPARSE_COLUMNS","ALLOW_CONNECTIONS","ALLOW_MULTIPLE_EVENT_LOSS","ALLOW_PAGE_LOCKS","ALLOW_ROW_LOCKS","ALLOW_SINGLE_EVENT_LOSS","ALLOW_SNAPSHOT_ISOLATION","ALLOWED","ALTER","ANONYMOUS","ANSI_DEFAULTS","ANSI_NULL_DEFAULT","ANSI_NULL_DFLT_OFF","ANSI_NULL_DFLT_ON","ANSI_NULLS","ANSI_PADDING","ANSI_WARNINGS","APPEND","APPLICATION","APPLICATION_LOG","ARITHABORT","ARITHIGNORE","AS","ASC","ASSEMBLY","ASYMMETRIC","ASYNCHRONOUS_COMMIT","AT","ATOMIC","ATTACH","ATTACH_REBUILD_LOG","AUDIT","AUDIT_GUID","AUTHENTICATION","AUTHORIZATION","AUTO","AUTO_CLEANUP","AUTO_CLOSE","AUTO_CREATE_STATISTICS","AUTO_SHRINK","AUTO_UPDATE_STATISTICS","AUTO_UPDATE_STATISTICS_ASYNC","AUTOMATED_BACKUP_PREFERENCE","AUTOMATIC","AVAILABILITY","AVAILABILITY_MODE","BACKUP","BACKUP_PRIORITY","BASE64","BATCHSIZE","BEGIN","BEGIN_DIALOG","BIGINT","BINARY","BINDING","BIT","BLOCKERS","BLOCKSIZE","BOUNDING_BOX","BREAK","BROKER","BROKER_INSTANCE","BROWSE","BUCKET_COUNT","BUFFER","BUFFERCOUNT","BULK","BULK_LOGGED","BY","CACHE","CALL","CALLED","CALLER","CAP_CPU_PERCENT","CASCADE","CASE","CATALOG","CATCH","CELLS_PER_OBJECT","CERTIFICATE","CHANGE_RETENTION","CHANGE_TRACKING","CHANGES","CHAR","CHARACTER","CHECK","CHECK_CONSTRAINTS","CHECK_EXPIRATION","CHECK_POLICY","CHECKALLOC","CHECKCATALOG","CHECKCONSTRAINTS","CHECKDB","CHECKFILEGROUP","CHECKIDENT","CHECKPOINT","CHECKTABLE","CLASSIFIER_FUNCTION","CLEANTABLE","CLEANUP","CLEAR","CLOSE","CLUSTER","CLUSTERED","CODEPAGE","COLLATE","COLLECTION","COLUMN","COLUMN_SET","COLUMNS","COLUMNSTORE","COLUMNSTORE_ARCHIVE","COMMIT","COMMITTED","COMPATIBILITY_LEVEL","COMPRESSION","COMPUTE","CONCAT","CONCAT_NULL_YIELDS_NULL","CONFIGURATION","CONNECT","CONSTRAINT","CONTAINMENT","CONTENT","CONTEXT","CONTINUE","CONTINUE_AFTER_ERROR","CONTRACT","CONTRACT_NAME","CONTROL","CONVERSATION","COOKIE","COPY_ONLY","COUNTER","CPU","CREATE","CREATE_NEW","CREATION_DISPOSITION","CREDENTIAL","CRYPTOGRAPHIC","CUBE","CURRENT","CURRENT_DATE","CURSOR","CURSOR_CLOSE_ON_COMMIT","CURSOR_DEFAULT","CYCLE","DATA","DATA_COMPRESSION","DATA_PURITY","DATABASE","DATABASE_DEFAULT","DATABASE_MIRRORING","DATABASE_SNAPSHOT","DATAFILETYPE","DATE","DATE_CORRELATION_OPTIMIZATION","DATEFIRST","DATEFORMAT","DATETIME","DATETIME2","DATETIMEOFFSET","DAY","DAYOFYEAR","DAYS","DB_CHAINING","DBCC","DBREINDEX","DDL_DATABASE_LEVEL_EVENTS","DEADLOCK_PRIORITY","DEALLOCATE","DEC","DECIMAL","DECLARE","DECRYPTION","DEFAULT","DEFAULT_DATABASE","DEFAULT_FULLTEXT_LANGUAGE","DEFAULT_LANGUAGE","DEFAULT_SCHEMA","DEFINITION","DELAY","DELAYED_DURABILITY","DELETE","DELETED","DENSITY_VECTOR","DENY","DEPENDENTS","DES","DESC","DESCRIPTION","DESX","DHCP","DIAGNOSTICS","DIALOG","DIFFERENTIAL","DIRECTORY_NAME","DISABLE","DISABLE_BROKER","DISABLED","DISK","DISTINCT","DISTRIBUTED","DOCUMENT","DOUBLE","DROP","DROP_EXISTING","DROPCLEANBUFFERS","DUMP","DURABILITY","DYNAMIC","EDITION","ELEMENTS","ELSE","EMERGENCY","EMPTY","EMPTYFILE","ENABLE","ENABLE_BROKER","ENABLED","ENCRYPTION","END","ENDPOINT","ENDPOINT_URL","ERRLVL","ERROR","ERROR_BROKER_CONVERSATIONS","ERRORFILE","ESCAPE","ESTIMATEONLY","EVENT","EVENT_RETENTION_MODE","EXEC","EXECUTABLE","EXECUTE","EXIT","EXPAND","EXPIREDATE","EXPIRY_DATE","EXPLICIT","EXTENDED_LOGICAL_CHECKS","EXTENSION","EXTERNAL","EXTERNAL_ACCESS","FAIL_OPERATION","FAILOVER","FAILOVER_MODE","FAILURE_CONDITION_LEVEL","FALSE","FAN_IN","FAST","FAST_FORWARD","FETCH","FIELDTERMINATOR","FILE","FILEGROUP","FILEGROWTH","FILELISTONLY","FILENAME","FILEPATH","FILESTREAM","FILESTREAM_ON","FILETABLE_COLLATE_FILENAME","FILETABLE_DIRECTORY","FILETABLE_FULLPATH_UNIQUE_CONSTRAINT_NAME","FILETABLE_NAMESPACE","FILETABLE_PRIMARY_KEY_CONSTRAINT_NAME","FILETABLE_STREAMID_UNIQUE_CONSTRAINT_NAME","FILLFACTOR","FILTERING","FIRE_TRIGGERS","FIRST","FIRSTROW","FLOAT","FMTONLY","FOLLOWING","FOR","FORCE","FORCE_FAILOVER_ALLOW_DATA_LOSS","FORCE_SERVICE_ALLOW_DATA_LOSS","FORCED","FORCEPLAN","FORCESCAN","FORCESEEK","FOREIGN","FORMATFILE","FORMSOF","FORWARD_ONLY","FREE","FREEPROCCACHE","FREESESSIONCACHE","FREESYSTEMCACHE","FROM","FULL","FULLSCAN","FULLTEXT","FUNCTION","GB","GEOGRAPHY_AUTO_GRID","GEOGRAPHY_GRID","GEOMETRY_AUTO_GRID","GEOMETRY_GRID","GET","GLOBAL","GO","GOTO","GOVERNOR","GRANT","GRIDS","GROUP","GROUP_MAX_REQUESTS","HADR","HASH","HASHED","HAVING","HEADERONLY","HEALTH_CHECK_TIMEOUT","HELP","HIERARCHYID","HIGH","HINT","HISTOGRAM","HOLDLOCK","HONOR_BROKER_PRIORITY","HOUR","HOURS","IDENTITY","IDENTITY_INSERT","IDENTITY_VALUE","IDENTITYCOL","IF","IGNORE_CONSTRAINTS","IGNORE_DUP_KEY","IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX","IGNORE_TRIGGERS","IMAGE","IMMEDIATE","IMPERSONATE","IMPLICIT_TRANSACTIONS","IMPORTANCE","INCLUDE","INCREMENT","INCREMENTAL","INDEX","INDEXDEFRAG","INFINITE","INFLECTIONAL","INIT","INITIATOR","INPUT","INPUTBUFFER","INSENSITIVE","INSERT","INSERTED","INSTEAD","INT","INTEGER","INTO","IO","IP","ISABOUT","ISOLATION","JOB","KB","KEEP","KEEP_CDC","KEEP_NULLS","KEEP_REPLICATION","KEEPDEFAULTS","KEEPFIXED","KEEPIDENTITY","KEEPNULLS","KERBEROS","KEY","KEY_SOURCE","KEYS","KEYSET","KILL","KILOBYTES_PER_BATCH","LABELONLY","LANGUAGE","LAST","LASTROW","LEVEL","LEVEL_1","LEVEL_2","LEVEL_3","LEVEL_4","LIFETIME","LIMIT","LINENO","LIST","LISTENER","LISTENER_IP","LISTENER_PORT","LOAD","LOADHISTORY","LOB_COMPACTION","LOCAL","LOCAL_SERVICE_NAME","LOCK_ESCALATION","LOCK_TIMEOUT","LOGIN","LOGSPACE","LOOP","LOW","MANUAL","MARK","MARK_IN_USE_FOR_REMOVAL","MASTER","MAX_CPU_PERCENT","MAX_DISPATCH_LATENCY","MAX_DOP","MAX_DURATION","MAX_EVENT_SIZE","MAX_FILES","MAX_IOPS_PER_VOLUME","MAX_MEMORY","MAX_MEMORY_PERCENT","MAX_QUEUE_READERS","MAX_ROLLOVER_FILES","MAX_SIZE","MAXDOP","MAXERRORS","MAXLENGTH","MAXRECURSION","MAXSIZE","MAXTRANSFERSIZE","MAXVALUE","MB","MEDIADESCRIPTION","MEDIANAME","MEDIAPASSWORD","MEDIUM","MEMBER","MEMORY_OPTIMIZED","MEMORY_OPTIMIZED_DATA","MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT","MEMORY_PARTITION_MODE","MERGE","MESSAGE","MESSAGE_FORWARD_SIZE","MESSAGE_FORWARDING","MICROSECOND","MILLISECOND","MIN_CPU_PERCENT","MIN_IOPS_PER_VOLUME","MIN_MEMORY_PERCENT","MINUTE","MINUTES","MINVALUE","MIRROR","MIRROR_ADDRESS","MODIFY","MONEY","MONTH","MOVE","MULTI_USER","MUST_CHANGE","NAME","NANOSECOND","NATIONAL","NATIVE_COMPILATION","NCHAR","NEGOTIATE","NESTED_TRIGGERS","NEW_ACCOUNT","NEW_BROKER","NEW_PASSWORD","NEWNAME","NEXT","NO","NO_BROWSETABLE","NO_CHECKSUM","NO_COMPRESSION","NO_EVENT_LOSS","NO_INFOMSGS","NO_TRUNCATE","NO_WAIT","NOCHECK","NOCOUNT","NOEXEC","NOEXPAND","NOFORMAT","NOINDEX","NOINIT","NOLOCK","NON","NON_TRANSACTED_ACCESS","NONCLUSTERED","NONE","NORECOMPUTE","NORECOVERY","NORESEED","NORESET","NOREWIND","NORMAL","NOSKIP","NOTIFICATION","NOTRUNCATE","NOUNLOAD","NOWAIT","NTEXT","NTLM","NUMANODE","NUMERIC","NUMERIC_ROUNDABORT","NVARCHAR","OBJECT","OF","OFF","OFFLINE","OFFSET","OFFSETS","OLD_ACCOUNT","OLD_PASSWORD","ON","ON_FAILURE","ONLINE","ONLY","OPEN","OPEN_EXISTING","OPENTRAN","OPTIMISTIC","OPTIMIZE","OPTION","ORDER","OUT","OUTPUT","OUTPUTBUFFER","OVER","OVERRIDE","OWNER","OWNERSHIP","PAD_INDEX","PAGE","PAGE_VERIFY","PAGECOUNT","PAGLOCK","PARAMETERIZATION","PARSEONLY","PARTIAL","PARTITION","PARTITIONS","PARTNER","PASSWORD","PATH","PER_CPU","PER_NODE","PERCENT","PERMISSION_SET","PERSISTED","PHYSICAL_ONLY","PLAN","POISON_MESSAGE_HANDLING","POOL","POPULATION","PORT","PRECEDING","PRECISION","PRIMARY","PRIMARY_ROLE","PRINT","PRIOR","PRIORITY","PRIORITY_LEVEL","PRIVATE","PRIVILEGES","PROC","PROCCACHE","PROCEDURE","PROCEDURE_NAME","PROCESS","PROFILE","PROPERTY","PROPERTY_DESCRIPTION","PROPERTY_INT_ID","PROPERTY_SET_GUID","PROVIDER","PROVIDER_KEY_NAME","PUBLIC","PUT","QUARTER","QUERY","QUERY_GOVERNOR_COST_LIMIT","QUEUE","QUEUE_DELAY","QUOTED_IDENTIFIER","RAISERROR","RANGE","RAW","RC2","RC4","RC4_128","READ","READ_COMMITTED_SNAPSHOT","READ_ONLY","READ_ONLY_ROUTING_LIST","READ_ONLY_ROUTING_URL","READ_WRITE","READ_WRITE_FILEGROUPS","READCOMMITTED","READCOMMITTEDLOCK","READONLY","READPAST","READTEXT","READUNCOMMITTED","READWRITE","REAL","REBUILD","RECEIVE","RECOMPILE","RECONFIGURE","RECOVERY","RECURSIVE","RECURSIVE_TRIGGERS","REFERENCES","REGENERATE","RELATED_CONVERSATION","RELATED_CONVERSATION_GROUP","RELATIVE","REMOTE","REMOTE_PROC_TRANSACTIONS","REMOTE_SERVICE_NAME","REMOVE","REORGANIZE","REPAIR_ALLOW_DATA_LOSS","REPAIR_FAST","REPAIR_REBUILD","REPEATABLE","REPEATABLEREAD","REPLICA","REPLICATION","REQUEST_MAX_CPU_TIME_SEC","REQUEST_MAX_MEMORY_GRANT_PERCENT","REQUEST_MEMORY_GRANT_TIMEOUT_SEC","REQUIRED","RESAMPLE","RESEED","RESERVE_DISK_SPACE","RESET","RESOURCE","RESTART","RESTORE","RESTRICT","RESTRICTED_USER","RESULT","RESUME","RETAINDAYS","RETENTION","RETURN","RETURNS","REVERT","REVOKE","REWIND","REWINDONLY","ROBUST","ROLE","ROLLBACK","ROLLUP","ROOT","ROUTE","ROW","ROWCOUNT","ROWGUIDCOL","ROWLOCK","ROWS","ROWS_PER_BATCH","ROWTERMINATOR","ROWVERSION","RSA_1024","RSA_2048","RSA_512","RULE","SAFE","SAFETY","SAMPLE","SAVE","SCHEDULER","SCHEMA","SCHEMA_AND_DATA","SCHEMA_ONLY","SCHEMABINDING","SCHEME","SCROLL","SCROLL_LOCKS","SEARCH","SECOND","SECONDARY","SECONDARY_ONLY","SECONDARY_ROLE","SECONDS","SECRET","SECURITY_LOG","SECURITYAUDIT","SELECT","SELECTIVE","SELF","SEND","SENT","SEQUENCE","SERIALIZABLE","SERVER","SERVICE","SERVICE_BROKER","SERVICE_NAME","SESSION","SESSION_TIMEOUT","SET","SETS","SETUSER","SHOW_STATISTICS","SHOWCONTIG","SHOWPLAN","SHOWPLAN_ALL","SHOWPLAN_TEXT","SHOWPLAN_XML","SHRINKDATABASE","SHRINKFILE","SHUTDOWN","SID","SIGNATURE","SIMPLE","SINGLE_BLOB","SINGLE_CLOB","SINGLE_NCLOB","SINGLE_USER","SINGLETON","SIZE","SKIP","SMALLDATETIME","SMALLINT","SMALLMONEY","SNAPSHOT","SORT_IN_TEMPDB","SOURCE","SPARSE","SPATIAL","SPATIAL_WINDOW_MAX_CELLS","SPECIFICATION","SPLIT","SQL","SQL_VARIANT","SQLPERF","STANDBY","START","START_DATE","STARTED","STARTUP_STATE","STAT_HEADER","STATE","STATEMENT","STATIC","STATISTICAL_SEMANTICS","STATISTICS","STATISTICS_INCREMENTAL","STATISTICS_NORECOMPUTE","STATS","STATS_STREAM","STATUS","STATUSONLY","STOP","STOP_ON_ERROR","STOPAT","STOPATMARK","STOPBEFOREMARK","STOPLIST","STOPPED","SUBJECT","SUBSCRIPTION","SUPPORTED","SUSPEND","SWITCH","SYMMETRIC","SYNCHRONOUS_COMMIT","SYNONYM","SYSNAME","SYSTEM","TABLE","TABLERESULTS","TABLESAMPLE","TABLOCK","TABLOCKX","TAKE","TAPE","TARGET","TARGET_RECOVERY_TIME","TB","TCP","TEXT","TEXTIMAGE_ON","TEXTSIZE","THEN","THESAURUS","THROW","TIES","TIME","TIMEOUT","TIMER","TIMESTAMP","TINYINT","TO","TOP","TORN_PAGE_DETECTION","TRACEOFF","TRACEON","TRACESTATUS","TRACK_CAUSALITY","TRACK_COLUMNS_UPDATED","TRAN","TRANSACTION","TRANSFER","TRANSFORM_NOISE_WORDS","TRIGGER","TRIPLE_DES","TRIPLE_DES_3KEY","TRUE","TRUNCATE","TRUNCATEONLY","TRUSTWORTHY","TRY","TSQL","TWO_DIGIT_YEAR_CUTOFF","TYPE","TYPE_WARNING","UNBOUNDED","UNCHECKED","UNCOMMITTED","UNDEFINED","UNIQUE","UNIQUEIDENTIFIER","UNKNOWN","UNLIMITED","UNLOAD","UNSAFE","UPDATE","UPDATETEXT","UPDATEUSAGE","UPDLOCK","URL","USE","USED","USER","USEROPTIONS","USING","VALID_XML","VALIDATION","VALUE","VALUES","VARBINARY","VARCHAR","VARYING","VERIFYONLY","VERSION","VIEW","VIEW_METADATA","VIEWS","VISIBILITY","WAIT_AT_LOW_PRIORITY","WAITFOR","WEEK","WEIGHT","WELL_FORMED_XML","WHEN","WHERE","WHILE","WINDOWS","WITH","WITHIN","WITHOUT","WITNESS","WORK","WORKLOAD","WRITETEXT","XACT_ABORT","XLOCK","XMAX","XMIN","XML","XMLDATA","XMLNAMESPACES","XMLSCHEMA","XQUERY","XSINIL","YEAR","YMAX","YMIN"],operators:["ALL","AND","ANY","BETWEEN","EXISTS","IN","LIKE","NOT","OR","SOME","EXCEPT","INTERSECT","UNION","APPLY","CROSS","FULL","INNER","JOIN","LEFT","OUTER","RIGHT","CONTAINS","FREETEXT","IS","NULL","PIVOT","UNPIVOT","MATCHED"],builtinFunctions:["AVG","CHECKSUM_AGG","COUNT","COUNT_BIG","GROUPING","GROUPING_ID","MAX","MIN","SUM","STDEV","STDEVP","VAR","VARP","CUME_DIST","FIRST_VALUE","LAG","LAST_VALUE","LEAD","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","COLLATE","COLLATIONPROPERTY","TERTIARY_WEIGHTS","FEDERATION_FILTERING_VALUE","CAST","CONVERT","PARSE","TRY_CAST","TRY_CONVERT","TRY_PARSE","ASYMKEY_ID","ASYMKEYPROPERTY","CERTPROPERTY","CERT_ID","CRYPT_GEN_RANDOM","DECRYPTBYASYMKEY","DECRYPTBYCERT","DECRYPTBYKEY","DECRYPTBYKEYAUTOASYMKEY","DECRYPTBYKEYAUTOCERT","DECRYPTBYPASSPHRASE","ENCRYPTBYASYMKEY","ENCRYPTBYCERT","ENCRYPTBYKEY","ENCRYPTBYPASSPHRASE","HASHBYTES","IS_OBJECTSIGNED","KEY_GUID","KEY_ID","KEY_NAME","SIGNBYASYMKEY","SIGNBYCERT","SYMKEYPROPERTY","VERIFYSIGNEDBYCERT","VERIFYSIGNEDBYASYMKEY","CURSOR_STATUS","DATALENGTH","IDENT_CURRENT","IDENT_INCR","IDENT_SEED","IDENTITY","SQL_VARIANT_PROPERTY","CURRENT_TIMESTAMP","DATEADD","DATEDIFF","DATEFROMPARTS","DATENAME","DATEPART","DATETIME2FROMPARTS","DATETIMEFROMPARTS","DATETIMEOFFSETFROMPARTS","DAY","EOMONTH","GETDATE","GETUTCDATE","ISDATE","MONTH","SMALLDATETIMEFROMPARTS","SWITCHOFFSET","SYSDATETIME","SYSDATETIMEOFFSET","SYSUTCDATETIME","TIMEFROMPARTS","TODATETIMEOFFSET","YEAR","CHOOSE","COALESCE","IIF","NULLIF","ABS","ACOS","ASIN","ATAN","ATN2","CEILING","COS","COT","DEGREES","EXP","FLOOR","LOG","LOG10","PI","POWER","RADIANS","RAND","ROUND","SIGN","SIN","SQRT","SQUARE","TAN","APP_NAME","APPLOCK_MODE","APPLOCK_TEST","ASSEMBLYPROPERTY","COL_LENGTH","COL_NAME","COLUMNPROPERTY","DATABASE_PRINCIPAL_ID","DATABASEPROPERTYEX","DB_ID","DB_NAME","FILE_ID","FILE_IDEX","FILE_NAME","FILEGROUP_ID","FILEGROUP_NAME","FILEGROUPPROPERTY","FILEPROPERTY","FULLTEXTCATALOGPROPERTY","FULLTEXTSERVICEPROPERTY","INDEX_COL","INDEXKEY_PROPERTY","INDEXPROPERTY","OBJECT_DEFINITION","OBJECT_ID","OBJECT_NAME","OBJECT_SCHEMA_NAME","OBJECTPROPERTY","OBJECTPROPERTYEX","ORIGINAL_DB_NAME","PARSENAME","SCHEMA_ID","SCHEMA_NAME","SCOPE_IDENTITY","SERVERPROPERTY","STATS_DATE","TYPE_ID","TYPE_NAME","TYPEPROPERTY","DENSE_RANK","NTILE","RANK","ROW_NUMBER","PUBLISHINGSERVERNAME","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","CERTENCODED","CERTPRIVATEKEY","CURRENT_USER","HAS_DBACCESS","HAS_PERMS_BY_NAME","IS_MEMBER","IS_ROLEMEMBER","IS_SRVROLEMEMBER","LOGINPROPERTY","ORIGINAL_LOGIN","PERMISSIONS","PWDENCRYPT","PWDCOMPARE","SESSION_USER","SESSIONPROPERTY","SUSER_ID","SUSER_NAME","SUSER_SID","SUSER_SNAME","SYSTEM_USER","USER","USER_ID","USER_NAME","ASCII","CHAR","CHARINDEX","CONCAT","DIFFERENCE","FORMAT","LEFT","LEN","LOWER","LTRIM","NCHAR","PATINDEX","QUOTENAME","REPLACE","REPLICATE","REVERSE","RIGHT","RTRIM","SOUNDEX","SPACE","STR","STUFF","SUBSTRING","UNICODE","UPPER","BINARY_CHECKSUM","CHECKSUM","CONNECTIONPROPERTY","CONTEXT_INFO","CURRENT_REQUEST_ID","ERROR_LINE","ERROR_NUMBER","ERROR_MESSAGE","ERROR_PROCEDURE","ERROR_SEVERITY","ERROR_STATE","FORMATMESSAGE","GETANSINULL","GET_FILESTREAM_TRANSACTION_CONTEXT","HOST_ID","HOST_NAME","ISNULL","ISNUMERIC","MIN_ACTIVE_ROWVERSION","NEWID","NEWSEQUENTIALID","ROWCOUNT_BIG","XACT_STATE","TEXTPTR","TEXTVALID","COLUMNS_UPDATED","EVENTDATA","TRIGGER_NESTLEVEL","UPDATE","CHANGETABLE","CHANGE_TRACKING_CONTEXT","CHANGE_TRACKING_CURRENT_VERSION","CHANGE_TRACKING_IS_COLUMN_IN_MASK","CHANGE_TRACKING_MIN_VALID_VERSION","CONTAINSTABLE","FREETEXTTABLE","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","FILETABLEROOTPATH","GETFILENAMESPACEPATH","GETPATHLOCATOR","PATHNAME","GET_TRANSMISSION_STATUS"],builtinVariables:["@@DATEFIRST","@@DBTS","@@LANGID","@@LANGUAGE","@@LOCK_TIMEOUT","@@MAX_CONNECTIONS","@@MAX_PRECISION","@@NESTLEVEL","@@OPTIONS","@@REMSERVER","@@SERVERNAME","@@SERVICENAME","@@SPID","@@TEXTSIZE","@@VERSION","@@CURSOR_ROWS","@@FETCH_STATUS","@@DATEFIRST","@@PROCID","@@ERROR","@@IDENTITY","@@ROWCOUNT","@@TRANCOUNT","@@CONNECTIONS","@@CPU_BUSY","@@IDLE","@@IO_BUSY","@@PACKET_ERRORS","@@PACK_RECEIVED","@@PACK_SENT","@@TIMETICKS","@@TOTAL_ERRORS","@@TOTAL_READ","@@TOTAL_WRITE"],pseudoColumns:["$ACTION","$IDENTITY","$ROWGUID","$PARTITION"],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/N'/,{token:"string",next:"@string"}],[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/\[/,{token:"identifier.quote",next:"@bracketedIdentifier"}],[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],bracketedIdentifier:[[/[^\]]+/,"identifier"],[/]]/,"identifier"],[/]/,{token:"identifier.quote",next:"@pop"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[[/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i,"keyword"],[/BEGIN\s+TRY\b/i,{token:"keyword.try"}],[/END\s+TRY\b/i,{token:"keyword.try"}],[/BEGIN\s+CATCH\b/i,{token:"keyword.catch"}],[/END\s+CATCH\b/i,{token:"keyword.catch"}],[/(BEGIN|CASE)\b/i,{token:"keyword.block"}],[/END\b/i,{token:"keyword.block"}],[/WHEN\b/i,{token:"keyword.choice"}],[/THEN\b/i,{token:"keyword.choice"}]]}}}}]); -//# sourceMappingURL=5012.3afcd232.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5107.8cac6a03.chunk.js b/ydb/core/viewer/monitoring/static/js/5107.8cac6a03.chunk.js new file mode 100644 index 000000000000..799c7af851b3 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5107.8cac6a03.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 5107.8cac6a03.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5107],{85107:(e,t,s)=>{s.r(t),s.d(t,{conf:()=>n,language:()=>o});var n={comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*\x3c!--\\s*#?region\\b.*--\x3e"),end:new RegExp("^\\s*\x3c!--\\s*#?endregion\\b.*--\x3e")}}},o={defaultToken:"",tokenPostfix:".md",control:/[\\`*_\[\]{}()#+\-\.!]/,noncontrol:/[^\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,jsescapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],tokenizer:{root:[[/^\s*\|/,"@rematch","@table_header"],[/^(\s{0,3})(#+)((?:[^\\#]|@escapes)+)((?:#+)?)/,["white","keyword","keyword","keyword"]],[/^\s*(=+|\-+)\s*$/,"keyword"],[/^\s*((\*[ ]?)+)\s*$/,"meta.separator"],[/^\s*>+/,"comment"],[/^\s*([\*\-+:]|\d+\.)\s/,"keyword"],[/^(\t|[ ]{4})[^ ].*$/,"string"],[/^\s*~~~\s*((?:\w|[\/\-#])+)?\s*$/,{token:"string",next:"@codeblock"}],[/^\s*```\s*((?:\w|[\/\-#])+).*$/,{token:"string",next:"@codeblockgh",nextEmbedded:"$1"}],[/^\s*```\s*$/,{token:"string",next:"@codeblock"}],{include:"@linecontent"}],table_header:[{include:"@table_common"},[/[^\|]+/,"keyword.table.header"]],table_body:[{include:"@table_common"},{include:"@linecontent"}],table_common:[[/\s*[\-:]+\s*/,{token:"keyword",switchTo:"table_body"}],[/^\s*\|/,"keyword.table.left"],[/^\s*[^\|]/,"@rematch","@pop"],[/^\s*$/,"@rematch","@pop"],[/\|/,{cases:{"@eos":"keyword.table.right","@default":"keyword.table.middle"}}]],codeblock:[[/^\s*~~~\s*$/,{token:"string",next:"@pop"}],[/^\s*```\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]],codeblockgh:[[/```\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/[^`]+/,"variable.source"]],linecontent:[[/&\w+;/,"string.escape"],[/@escapes/,"escape"],[/\b__([^\\_]|@escapes|_(?!_))+__\b/,"strong"],[/\*\*([^\\*]|@escapes|\*(?!\*))+\*\*/,"strong"],[/\b_[^_]+_\b/,"emphasis"],[/\*([^\\*]|@escapes)+\*/,"emphasis"],[/`([^\\`]|@escapes)+`/,"variable"],[/\{+[^}]+\}+/,"string.target"],[/(!?\[)((?:[^\]\\]|@escapes)*)(\]\([^\)]+\))/,["string.link","","string.link"]],[/(!?\[)((?:[^\]\\]|@escapes)*)(\])/,"string.link"],{include:"html"}],html:[[/<(\w+)\/>/,"tag"],[/<(\w+)(\-|\w)*/,{cases:{"@empty":{token:"tag",next:"@tag.$1"},"@default":{token:"tag",next:"@tag.$1"}}}],[/<\/(\w+)(\-|\w)*\s*>/,{token:"tag"}],[/<!--/,"comment","@comment"]],comment:[[/[^<\-]+/,"comment.content"],[/-->/,"comment","@pop"],[/<!--/,"comment.content.invalid"],[/[<\-]/,"comment.content"]],tag:[[/[ \t\r\n]+/,"white"],[/(type)(\s*=\s*)(")([^"]+)(")/,["attribute.name.html","delimiter.html","string.html",{token:"string.html",switchTo:"@tag.$S2.$4"},"string.html"]],[/(type)(\s*=\s*)(')([^']+)(')/,["attribute.name.html","delimiter.html","string.html",{token:"string.html",switchTo:"@tag.$S2.$4"},"string.html"]],[/(\w+)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name.html","delimiter.html","string.html"]],[/\w+/,"attribute.name.html"],[/\/>/,"tag","@pop"],[/>/,{cases:{"$S2==style":{token:"tag",switchTo:"embeddedStyle",nextEmbedded:"text/css"},"$S2==script":{cases:{$S3:{token:"tag",switchTo:"embeddedScript",nextEmbedded:"$S3"},"@default":{token:"tag",switchTo:"embeddedScript",nextEmbedded:"text/javascript"}}},"@default":{token:"tag",next:"@pop"}}}]],embeddedStyle:[[/[^<]+/,""],[/<\/style\s*>/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/</,""]],embeddedScript:[[/[^<]+/,""],[/<\/script\s*>/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/</,""]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5107.8cac6a03.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/5107.8cac6a03.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5107.8cac6a03.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/5112.6189bbe0.chunk.js b/ydb/core/viewer/monitoring/static/js/5112.6189bbe0.chunk.js new file mode 100644 index 000000000000..b68897f8296c --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5112.6189bbe0.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5112],{5112:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5117.896f7ffb.chunk.js b/ydb/core/viewer/monitoring/static/js/5117.896f7ffb.chunk.js new file mode 100644 index 000000000000..5c8853897a0f --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5117.896f7ffb.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5117],{85117:function(e,_,s){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=_(e),d={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 s.default.locale(d,null,!0),d}(s(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/515.cd9a8a90.chunk.js b/ydb/core/viewer/monitoring/static/js/515.cd9a8a90.chunk.js new file mode 100644 index 000000000000..b0db52c62f7d --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/515.cd9a8a90.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[515],{60515:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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(_){return _>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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5161.45b4f520.chunk.js b/ydb/core/viewer/monitoring/static/js/5161.45b4f520.chunk.js new file mode 100644 index 000000000000..9ed475f7c7f0 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5161.45b4f520.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5161],{25161:function(e,_,n){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=_(e),d={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(d,null,!0),d}(n(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5168.6fb23f08.chunk.js b/ydb/core/viewer/monitoring/static/js/5168.6fb23f08.chunk.js new file mode 100644 index 000000000000..a51a88fb0ce3 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5168.6fb23f08.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 5168.6fb23f08.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5168],{25168:(e,o,t)=>{t.r(o),t.d(o,{conf:()=>n,language:()=>s});var n={comments:{lineComment:"#"},brackets:[["[","]"],["<",">"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"<",close:">"},{open:"(",close:")"}],surroundingPairs:[{open:"[",close:"]"},{open:"<",close:">"},{open:"(",close:")"}]},s={defaultToken:"",tokenPostfix:".pla",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"<",close:">",token:"delimiter.angle"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:[".i",".o",".mv",".ilb",".ob",".label",".type",".phase",".pair",".symbolic",".symbolic-output",".kiss",".p",".e",".end"],comment:/#.*$/,identifier:/[a-zA-Z]+[a-zA-Z0-9_\-]*/,plaContent:/[01\-~\|]+/,tokenizer:{root:[{include:"@whitespace"},[/@comment/,"comment"],[/\.([a-zA-Z_\-]+)/,{cases:{"@eos":{token:"keyword.$1"},"@keywords":{cases:{".type":{token:"keyword.$1",next:"@type"},"@default":{token:"keyword.$1",next:"@keywordArg"}}},"@default":{token:"keyword.$1"}}}],[/@identifier/,"identifier"],[/@plaContent/,"string"]],whitespace:[[/[ \t\r\n]+/,""]],type:[{include:"@whitespace"},[/\w+/,{token:"type",next:"@pop"}]],keywordArg:[[/[ \t\r\n]+/,{cases:{"@eos":{token:"",next:"@pop"},"@default":""}}],[/@comment/,"comment","@pop"],[/[<>()\[\]]/,{cases:{"@eos":{token:"@brackets",next:"@pop"},"@default":"@brackets"}}],[/\-?\d+/,{cases:{"@eos":{token:"number",next:"@pop"},"@default":"number"}}],[/@identifier/,{cases:{"@eos":{token:"identifier",next:"@pop"},"@default":"identifier"}}],[/[;=]/,{cases:{"@eos":{token:"delimiter",next:"@pop"},"@default":"delimiter"}}]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5168.6fb23f08.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/5168.6fb23f08.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5168.6fb23f08.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/5210.6e07cb51.chunk.js b/ydb/core/viewer/monitoring/static/js/5210.6e07cb51.chunk.js deleted file mode 100644 index 6a73e412b864..000000000000 --- a/ydb/core/viewer/monitoring/static/js/5210.6e07cb51.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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 diff --git a/ydb/core/viewer/monitoring/static/js/5215.2d9f2122.chunk.js b/ydb/core/viewer/monitoring/static/js/5215.2d9f2122.chunk.js deleted file mode 100644 index b95875dc957e..000000000000 --- a/ydb/core/viewer/monitoring/static/js/5215.2d9f2122.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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 diff --git a/ydb/core/viewer/monitoring/static/js/5226.675d55fb.chunk.js b/ydb/core/viewer/monitoring/static/js/5226.675d55fb.chunk.js new file mode 100644 index 000000000000..df69668d39e8 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5226.675d55fb.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5226],{45226:function(e,t,_){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=t(e),n={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 _.default.locale(n,null,!0),n}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5311.a500a1ea.chunk.js b/ydb/core/viewer/monitoring/static/js/5311.a500a1ea.chunk.js new file mode 100644 index 000000000000..5e7c4c359c4c --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5311.a500a1ea.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 5311.a500a1ea.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5311],{45311:(e,t,s)=>{s.r(t),s.d(t,{conf:()=>n,language:()=>i});var n={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>))")}}},i={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","yield","record","sealed","non-sealed","permits"],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:[["non-sealed","keyword.non-sealed"],[/[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","@multistring"],[/"/,"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"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5311.a500a1ea.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/5311.a500a1ea.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5311.a500a1ea.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/5341.2c19c723.chunk.js b/ydb/core/viewer/monitoring/static/js/5341.2c19c723.chunk.js new file mode 100644 index 000000000000..d843eb9c7ec6 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5341.2c19c723.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5341],{45341:function(e,_,a){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=_(e),n={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 a.default.locale(n,null,!0),n}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5352.3d3187b7.chunk.js b/ydb/core/viewer/monitoring/static/js/5352.3d3187b7.chunk.js new file mode 100644 index 000000000000..98111594d03b --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5352.3d3187b7.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5352],{45352:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5373.90c95a6e.chunk.js b/ydb/core/viewer/monitoring/static/js/5373.90c95a6e.chunk.js new file mode 100644 index 000000000000..718fc23f331a --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5373.90c95a6e.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5373],{45373:function(d,e,_){d.exports=function(d){"use strict";function e(d){return d&&"object"==typeof d&&"default"in d?d:{default:d}}var _=e(d),a={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(d){return 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"},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 _.default.locale(a,null,!0),a}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5378.86805fba.chunk.js b/ydb/core/viewer/monitoring/static/js/5378.86805fba.chunk.js new file mode 100644 index 000000000000..0b0b7b5577e7 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5378.86805fba.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 5378.86805fba.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5378],{65378:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>o,language:()=>r});var o={comments:{lineComment:"'",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"],["addhandler","end addhandler"],["class","end class"],["enum","end enum"],["event","end event"],["function","end function"],["get","end get"],["if","end if"],["interface","end interface"],["module","end module"],["namespace","end namespace"],["operator","end operator"],["property","end property"],["raiseevent","end raiseevent"],["removehandler","end removehandler"],["select","end select"],["set","end set"],["structure","end structure"],["sub","end sub"],["synclock","end synclock"],["try","end try"],["while","end while"],["with","end with"],["using","end using"],["do","loop"],["for","next"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"<",close:">",notIn:["string","comment"]}],folding:{markers:{start:new RegExp("^\\s*#Region\\b"),end:new RegExp("^\\s*#End Region\\b")}}},r={defaultToken:"",tokenPostfix:".vb",ignoreCase:!0,brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.angle",open:"<",close:">"},{token:"keyword.tag-addhandler",open:"addhandler",close:"end addhandler"},{token:"keyword.tag-class",open:"class",close:"end class"},{token:"keyword.tag-enum",open:"enum",close:"end enum"},{token:"keyword.tag-event",open:"event",close:"end event"},{token:"keyword.tag-function",open:"function",close:"end function"},{token:"keyword.tag-get",open:"get",close:"end get"},{token:"keyword.tag-if",open:"if",close:"end if"},{token:"keyword.tag-interface",open:"interface",close:"end interface"},{token:"keyword.tag-module",open:"module",close:"end module"},{token:"keyword.tag-namespace",open:"namespace",close:"end namespace"},{token:"keyword.tag-operator",open:"operator",close:"end operator"},{token:"keyword.tag-property",open:"property",close:"end property"},{token:"keyword.tag-raiseevent",open:"raiseevent",close:"end raiseevent"},{token:"keyword.tag-removehandler",open:"removehandler",close:"end removehandler"},{token:"keyword.tag-select",open:"select",close:"end select"},{token:"keyword.tag-set",open:"set",close:"end set"},{token:"keyword.tag-structure",open:"structure",close:"end structure"},{token:"keyword.tag-sub",open:"sub",close:"end sub"},{token:"keyword.tag-synclock",open:"synclock",close:"end synclock"},{token:"keyword.tag-try",open:"try",close:"end try"},{token:"keyword.tag-while",open:"while",close:"end while"},{token:"keyword.tag-with",open:"with",close:"end with"},{token:"keyword.tag-using",open:"using",close:"end using"},{token:"keyword.tag-do",open:"do",close:"loop"},{token:"keyword.tag-for",open:"for",close:"next"}],keywords:["AddHandler","AddressOf","Alias","And","AndAlso","As","Async","Boolean","ByRef","Byte","ByVal","Call","Case","Catch","CBool","CByte","CChar","CDate","CDbl","CDec","Char","CInt","Class","CLng","CObj","Const","Continue","CSByte","CShort","CSng","CStr","CType","CUInt","CULng","CUShort","Date","Decimal","Declare","Default","Delegate","Dim","DirectCast","Do","Double","Each","Else","ElseIf","End","EndIf","Enum","Erase","Error","Event","Exit","False","Finally","For","Friend","Function","Get","GetType","GetXMLNamespace","Global","GoSub","GoTo","Handles","If","Implements","Imports","In","Inherits","Integer","Interface","Is","IsNot","Let","Lib","Like","Long","Loop","Me","Mod","Module","MustInherit","MustOverride","MyBase","MyClass","NameOf","Namespace","Narrowing","New","Next","Not","Nothing","NotInheritable","NotOverridable","Object","Of","On","Operator","Option","Optional","Or","OrElse","Out","Overloads","Overridable","Overrides","ParamArray","Partial","Private","Property","Protected","Public","RaiseEvent","ReadOnly","ReDim","RemoveHandler","Resume","Return","SByte","Select","Set","Shadows","Shared","Short","Single","Static","Step","Stop","String","Structure","Sub","SyncLock","Then","Throw","To","True","Try","TryCast","TypeOf","UInteger","ULong","UShort","Using","Variant","Wend","When","While","Widening","With","WithEvents","WriteOnly","Xor"],tagwords:["If","Sub","Select","Try","Class","Enum","Function","Get","Interface","Module","Namespace","Operator","Set","Structure","Using","While","With","Do","Loop","For","Next","Property","Continue","AddHandler","RemoveHandler","Event","RaiseEvent","SyncLock"],symbols:/[=><!~?;\.,:&|+\-*\/\^%]+/,integersuffix:/U?[DI%L&S@]?/,floatsuffix:/[R#F!]?/,tokenizer:{root:[{include:"@whitespace"},[/next(?!\w)/,{token:"keyword.tag-for"}],[/loop(?!\w)/,{token:"keyword.tag-do"}],[/end\s+(?!for|do)(addhandler|class|enum|event|function|get|if|interface|module|namespace|operator|property|raiseevent|removehandler|select|set|structure|sub|synclock|try|while|with|using)/,{token:"keyword.tag-$1"}],[/[a-zA-Z_]\w*/,{cases:{"@tagwords":{token:"keyword.tag-$0"},"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/^\s*#\w+/,"keyword"],[/\d*\d+e([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+(e[\-+]?\d+)?(@floatsuffix)/,"number.float"],[/&H[0-9a-f]+(@integersuffix)/,"number.hex"],[/&0[0-7]+(@integersuffix)/,"number.octal"],[/\d+(@integersuffix)/,"number"],[/#.*#/,"number"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/["\u201c\u201d]/,{token:"string.quote",next:"@string"}]],whitespace:[[/[ \t\r\n]+/,""],[/(\'|REM(?!\w)).*$/,"comment"]],string:[[/[^"\u201c\u201d]+/,"string"],[/["\u201c\u201d]{2}/,"string.escape"],[/["\u201c\u201d]C?/,{token:"string.quote",next:"@pop"}]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5378.86805fba.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/5378.86805fba.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5378.86805fba.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/5387.8af1d694.chunk.js b/ydb/core/viewer/monitoring/static/js/5387.8af1d694.chunk.js new file mode 100644 index 000000000000..6a2b0198c292 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5387.8af1d694.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5387],{95387:function(e,_,s){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=_(e),d={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 s.default.locale(d,null,!0),d}(s(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5399.f9398084.chunk.js b/ydb/core/viewer/monitoring/static/js/5399.f9398084.chunk.js new file mode 100644 index 000000000000..b61cdd35ecdd --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5399.f9398084.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5399],{45399:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _}};return t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5444.f86e47ff.chunk.js b/ydb/core/viewer/monitoring/static/js/5444.f86e47ff.chunk.js deleted file mode 100644 index 4b82cdf618ee..000000000000 --- a/ydb/core/viewer/monitoring/static/js/5444.f86e47ff.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5444],{95444:function(e,n,o){o.r(n),o.d(n,{conf:function(){return t},language:function(){return r}});var t={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}]},r={defaultToken:"",tokenPostfix:".ecl",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],pounds:["append","break","declare","demangle","end","for","getdatatype","if","inmodule","loop","mangle","onwarning","option","set","stored","uniquename"].join("|"),keywords:["__compressed__","after","all","and","any","as","atmost","before","beginc","best","between","case","cluster","compressed","compression","const","counter","csv","default","descend","embed","encoding","encrypt","end","endc","endembed","endmacro","enum","escape","except","exclusive","expire","export","extend","fail","few","fileposition","first","flat","forward","from","full","function","functionmacro","group","grouped","heading","hole","ifblock","import","in","inner","interface","internal","joined","keep","keyed","last","left","limit","linkcounted","literal","little_endian","load","local","locale","lookup","lzw","macro","many","maxcount","maxlength","min skew","module","mofn","multiple","named","namespace","nocase","noroot","noscan","nosort","not","noxpath","of","onfail","only","opt","or","outer","overwrite","packed","partition","penalty","physicallength","pipe","prefetch","quote","record","repeat","retry","return","right","right1","right2","rows","rowset","scan","scope","self","separator","service","shared","skew","skip","smart","soapaction","sql","stable","store","terminator","thor","threshold","timelimit","timeout","token","transform","trim","type","unicodeorder","unordered","unsorted","unstable","update","use","validate","virtual","whole","width","wild","within","wnotrim","xml","xpath"],functions:["abs","acos","aggregate","allnodes","apply","ascii","asin","assert","asstring","atan","atan2","ave","build","buildindex","case","catch","choose","choosen","choosesets","clustersize","combine","correlation","cos","cosh","count","covariance","cron","dataset","dedup","define","denormalize","dictionary","distribute","distributed","distribution","ebcdic","enth","error","evaluate","event","eventextra","eventname","exists","exp","fail","failcode","failmessage","fetch","fromunicode","fromxml","getenv","getisvalid","global","graph","group","hash","hash32","hash64","hashcrc","hashmd5","having","httpcall","httpheader","if","iff","index","intformat","isvalid","iterate","join","keydiff","keypatch","keyunicode","length","library","limit","ln","loadxml","local","log","loop","map","matched","matchlength","matchposition","matchtext","matchunicode","max","merge","mergejoin","min","nofold","nolocal","nonempty","normalize","nothor","notify","output","parallel","parse","pipe","power","preload","process","project","pull","random","range","rank","ranked","realformat","recordof","regexfind","regexreplace","regroup","rejected","rollup","round","roundup","row","rowdiff","sample","sequential","set","sin","sinh","sizeof","soapcall","sort","sorted","sqrt","stepped","stored","sum","table","tan","tanh","thisnode","topn","tounicode","toxml","transfer","transform","trim","truncate","typeof","ungroup","unicodeorder","variance","wait","which","workunit","xmldecode","xmlencode","xmltext","xmlunicode"],typesint:["integer","unsigned"].join("|"),typesnum:["data","qstring","string","unicode","utf8","varstring","varunicode"],typesone:["ascii","big_endian","boolean","data","decimal","ebcdic","grouped","integer","linkcounted","pattern","qstring","real","record","rule","set of","streamed","string","token","udecimal","unicode","unsigned","utf8","varstring","varunicode"].join("|"),operators:["+","-","/",":=","<","<>","=",">","\\","and","in","not","or"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/@typesint[4|8]/,"type"],[/#(@pounds)/,"type"],[/@typesone/,"type"],[/[a-zA-Z_$][\w-$]*/,{cases:{"@functions":"keyword.function","@keywords":"keyword","@operators":"operator"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]]}}}}]); -//# sourceMappingURL=5444.f86e47ff.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5448.cef3c129.chunk.js b/ydb/core/viewer/monitoring/static/js/5448.cef3c129.chunk.js new file mode 100644 index 000000000000..ad13d03ff018 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5448.cef3c129.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5448],{45448:function(e,n,t){e.exports=function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(e),_={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 a(e,n,t){var a=_[t];return Array.isArray(a)&&(a=a[n?0:1]),a.replace("%d",e)}var i={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:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a}};return t.default.locale(i,null,!0),i}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5450.f0dcfc15.chunk.js b/ydb/core/viewer/monitoring/static/js/5450.f0dcfc15.chunk.js new file mode 100644 index 000000000000..4de32bb5e365 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5450.f0dcfc15.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5450],{95450:function(e,t,r){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=t(e);function n(e){return e>1&&e<5&&1!=~~(e/10)}function a(e,t,r,a){var s=e+" ";switch(r){case"s":return t||a?"p\xe1r sek\xfand":"p\xe1r sekundami";case"m":return t?"min\xfata":a?"min\xfatu":"min\xfatou";case"mm":return t||a?s+(n(e)?"min\xfaty":"min\xfat"):s+"min\xfatami";case"h":return t?"hodina":a?"hodinu":"hodinou";case"hh":return t||a?s+(n(e)?"hodiny":"hod\xedn"):s+"hodinami";case"d":return t||a?"de\u0148":"d\u0148om";case"dd":return t||a?s+(n(e)?"dni":"dn\xed"):s+"d\u0148ami";case"M":return t||a?"mesiac":"mesiacom";case"MM":return t||a?s+(n(e)?"mesiace":"mesiacov"):s+"mesiacmi";case"y":return t||a?"rok":"rokom";case"yy":return t||a?s+(n(e)?"roky":"rokov"):s+"rokmi"}}var s={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:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a}};return r.default.locale(s,null,!0),s}(r(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5491.a460479e.chunk.js b/ydb/core/viewer/monitoring/static/js/5491.a460479e.chunk.js new file mode 100644 index 000000000000..23b10a7d2c76 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5491.a460479e.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5491],{75491:function(e,n,t){e.exports=function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(e);function r(e){return e%100==2}function a(e){return e%100==3||e%100==4}function m(e,n,t,m){var u=e+" ";switch(t){case"s":return n||m?"nekaj sekund":"nekaj sekundami";case"m":return n?"ena minuta":"eno minuto";case"mm":return r(e)?u+(n||m?"minuti":"minutama"):a(e)?u+(n||m?"minute":"minutami"):u+(n||m?"minut":"minutami");case"h":return n?"ena ura":"eno uro";case"hh":return r(e)?u+(n||m?"uri":"urama"):a(e)?u+(n||m?"ure":"urami"):u+(n||m?"ur":"urami");case"d":return n||m?"en dan":"enim dnem";case"dd":return r(e)?u+(n||m?"dneva":"dnevoma"):u+(n||m?"dni":"dnevi");case"M":return n||m?"en mesec":"enim mesecem";case"MM":return r(e)?u+(n||m?"meseca":"mesecema"):a(e)?u+(n||m?"mesece":"meseci"):u+(n||m?"mesecev":"meseci");case"y":return n||m?"eno leto":"enim letom";case"yy":return r(e)?u+(n||m?"leti":"letoma"):a(e)?u+(n||m?"leta":"leti"):u+(n||m?"let":"leti")}}var u={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",l:"D. M. YYYY"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:m,m:m,mm:m,h:m,hh:m,d:m,dd:m,M:m,MM:m,y:m,yy:m}};return t.default.locale(u,null,!0),u}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5517.a1034916.chunk.js b/ydb/core/viewer/monitoring/static/js/5517.a1034916.chunk.js deleted file mode 100644 index 4f0e57437827..000000000000 --- a/ydb/core/viewer/monitoring/static/js/5517.a1034916.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5517],{85517:function(e,n,t){t.r(n),t.d(n,{conf:function(){return o},language:function(){return r}});var o={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:"(",close:")"},{open:'"',close:'"'},{open:"`",close:"`"}],folding:{markers:{start:/^\s*\s*#?region\b/,end:/^\s*\s*#?endregion\b/}}},r={defaultToken:"invalid",tokenPostfix:".dart",keywords:["abstract","dynamic","implements","show","as","else","import","static","assert","enum","in","super","async","export","interface","switch","await","extends","is","sync","break","external","library","this","case","factory","mixin","throw","catch","false","new","true","class","final","null","try","const","finally","on","typedef","continue","for","operator","var","covariant","Function","part","void","default","get","rethrow","while","deferred","hide","return","with","do","if","set","yield"],typeKeywords:["int","double","String","bool"],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]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,"delimiter.bracket"],{include:"common"}],common:[[/[a-z_$][\w$]*/,{cases:{"@typeKeywords":"type.identifier","@keywords":"keyword","@default":"identifier"}}],[/[A-Z_$][\w\$]*/,"type.identifier"],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:"regexp",bracket:"@open",next:"@regexp"}],[/@[a-zA-Z]+/,"annotation"],[/[()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/\/.*$/,"comment.doc"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([gimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"\$]+/,"string"],[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"],[/\$\w+/,"identifier"]],string_single:[[/[^\\'\$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"],[/\$\w+/,"identifier"]]}}}}]); -//# sourceMappingURL=5517.a1034916.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/556.55f00ac6.chunk.js b/ydb/core/viewer/monitoring/static/js/556.55f00ac6.chunk.js new file mode 100644 index 000000000000..619843ac101f --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/556.55f00ac6.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[556],{20556:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5643.00957838.chunk.js b/ydb/core/viewer/monitoring/static/js/5643.00957838.chunk.js new file mode 100644 index 000000000000..9315f7fec19c --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5643.00957838.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5643],{45643:function(e,a,_){e.exports=function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=a(e),t="sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),s="sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_"),n=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/,i=function(e,a){return n.test(a)?t[e.month()]:s[e.month()]};i.s=s,i.f=t;var o={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:i,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 _.default.locale(o,null,!0),o}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5646.ced0e1ae.chunk.js b/ydb/core/viewer/monitoring/static/js/5646.ced0e1ae.chunk.js deleted file mode 100644 index fd243c264137..000000000000 --- a/ydb/core/viewer/monitoring/static/js/5646.ced0e1ae.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5646],{95646:function(e,_,t){t.r(_),t.d(_,{conf:function(){return r},language:function(){return i}});var r={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:"'"}]},i={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["AES128","AES256","ALL","ALLOWOVERWRITE","ANALYSE","ANALYZE","AND","ANY","ARRAY","AS","ASC","AUTHORIZATION","BACKUP","BETWEEN","BINARY","BLANKSASNULL","BOTH","BY","BYTEDICT","BZIP2","CASE","CAST","CHECK","COLLATE","COLUMN","CONSTRAINT","CREATE","CREDENTIALS","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURRENT_USER_ID","DEFAULT","DEFERRABLE","DEFLATE","DEFRAG","DELTA","DELTA32K","DESC","DISABLE","DISTINCT","DO","ELSE","EMPTYASNULL","ENABLE","ENCODE","ENCRYPT","ENCRYPTION","END","EXCEPT","EXPLICIT","FALSE","FOR","FOREIGN","FREEZE","FROM","FULL","GLOBALDICT256","GLOBALDICT64K","GRANT","GROUP","GZIP","HAVING","IDENTITY","IGNORE","ILIKE","IN","INITIALLY","INNER","INTERSECT","INTO","IS","ISNULL","JOIN","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","LUN","LUNS","LZO","LZOP","MINUS","MOSTLY13","MOSTLY32","MOSTLY8","NATURAL","NEW","NOT","NOTNULL","NULL","NULLS","OFF","OFFLINE","OFFSET","OID","OLD","ON","ONLY","OPEN","OR","ORDER","OUTER","OVERLAPS","PARALLEL","PARTITION","PERCENT","PERMISSIONS","PLACING","PRIMARY","RAW","READRATIO","RECOVER","REFERENCES","RESPECT","REJECTLOG","RESORT","RESTORE","RIGHT","SELECT","SESSION_USER","SIMILAR","SNAPSHOT","SOME","SYSDATE","SYSTEM","TABLE","TAG","TDES","TEXT255","TEXT32K","THEN","TIMESTAMP","TO","TOP","TRAILING","TRUE","TRUNCATECOLUMNS","UNION","UNIQUE","USER","USING","VERBOSE","WALLET","WHEN","WHERE","WITH","WITHOUT"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["current_schema","current_schemas","has_database_privilege","has_schema_privilege","has_table_privilege","age","current_time","current_timestamp","localtime","isfinite","now","ascii","get_bit","get_byte","set_bit","set_byte","to_ascii","approximate percentile_disc","avg","count","listagg","max","median","min","percentile_cont","stddev_samp","stddev_pop","sum","var_samp","var_pop","bit_and","bit_or","bool_and","bool_or","cume_dist","first_value","lag","last_value","lead","nth_value","ratio_to_report","dense_rank","ntile","percent_rank","rank","row_number","case","coalesce","decode","greatest","least","nvl","nvl2","nullif","add_months","at time zone","convert_timezone","current_date","date_cmp","date_cmp_timestamp","date_cmp_timestamptz","date_part_year","dateadd","datediff","date_part","date_trunc","extract","getdate","interval_cmp","last_day","months_between","next_day","sysdate","timeofday","timestamp_cmp","timestamp_cmp_date","timestamp_cmp_timestamptz","timestamptz_cmp","timestamptz_cmp_date","timestamptz_cmp_timestamp","timezone","to_timestamp","trunc","abs","acos","asin","atan","atan2","cbrt","ceil","ceiling","checksum","cos","cot","degrees","dexp","dlog1","dlog10","exp","floor","ln","log","mod","pi","power","radians","random","round","sin","sign","sqrt","tan","to_hex","bpcharcmp","btrim","bttext_pattern_cmp","char_length","character_length","charindex","chr","concat","crc32","func_sha1","initcap","left and rights","len","length","lower","lpad and rpads","ltrim","md5","octet_length","position","quote_ident","quote_literal","regexp_count","regexp_instr","regexp_replace","regexp_substr","repeat","replace","replicate","reverse","rtrim","split_part","strpos","strtol","substring","textlen","translate","trim","upper","cast","convert","to_char","to_date","to_number","json_array_length","json_extract_array_element_text","json_extract_path_text","current_setting","pg_cancel_backend","pg_terminate_backend","set_config","current_database","current_user","current_user_id","pg_backend_pid","pg_last_copy_count","pg_last_copy_id","pg_last_query_id","pg_last_unload_count","session_user","slice_num","user","version","abbrev","acosd","any","area","array_agg","array_append","array_cat","array_dims","array_fill","array_length","array_lower","array_ndims","array_position","array_positions","array_prepend","array_remove","array_replace","array_to_json","array_to_string","array_to_tsvector","array_upper","asind","atan2d","atand","bit","bit_length","bound_box","box","brin_summarize_new_values","broadcast","cardinality","center","circle","clock_timestamp","col_description","concat_ws","convert_from","convert_to","corr","cosd","cotd","covar_pop","covar_samp","current_catalog","current_query","current_role","currval","cursor_to_xml","diameter","div","encode","enum_first","enum_last","enum_range","every","family","format","format_type","generate_series","generate_subscripts","get_current_ts_config","gin_clean_pending_list","grouping","has_any_column_privilege","has_column_privilege","has_foreign_data_wrapper_privilege","has_function_privilege","has_language_privilege","has_sequence_privilege","has_server_privilege","has_tablespace_privilege","has_type_privilege","height","host","hostmask","inet_client_addr","inet_client_port","inet_merge","inet_same_family","inet_server_addr","inet_server_port","isclosed","isempty","isopen","json_agg","json_object","json_object_agg","json_populate_record","json_populate_recordset","json_to_record","json_to_recordset","jsonb_agg","jsonb_object_agg","justify_days","justify_hours","justify_interval","lastval","left","line","localtimestamp","lower_inc","lower_inf","lpad","lseg","make_date","make_interval","make_time","make_timestamp","make_timestamptz","masklen","mode","netmask","network","nextval","npoints","num_nonnulls","num_nulls","numnode","obj_description","overlay","parse_ident","path","pclose","percentile_disc","pg_advisory_lock","pg_advisory_lock_shared","pg_advisory_unlock","pg_advisory_unlock_all","pg_advisory_unlock_shared","pg_advisory_xact_lock","pg_advisory_xact_lock_shared","pg_backup_start_time","pg_blocking_pids","pg_client_encoding","pg_collation_is_visible","pg_column_size","pg_conf_load_time","pg_control_checkpoint","pg_control_init","pg_control_recovery","pg_control_system","pg_conversion_is_visible","pg_create_logical_replication_slot","pg_create_physical_replication_slot","pg_create_restore_point","pg_current_xlog_flush_location","pg_current_xlog_insert_location","pg_current_xlog_location","pg_database_size","pg_describe_object","pg_drop_replication_slot","pg_export_snapshot","pg_filenode_relation","pg_function_is_visible","pg_get_constraintdef","pg_get_expr","pg_get_function_arguments","pg_get_function_identity_arguments","pg_get_function_result","pg_get_functiondef","pg_get_indexdef","pg_get_keywords","pg_get_object_address","pg_get_owned_sequence","pg_get_ruledef","pg_get_serial_sequence","pg_get_triggerdef","pg_get_userbyid","pg_get_viewdef","pg_has_role","pg_identify_object","pg_identify_object_as_address","pg_index_column_has_property","pg_index_has_property","pg_indexam_has_property","pg_indexes_size","pg_is_in_backup","pg_is_in_recovery","pg_is_other_temp_schema","pg_is_xlog_replay_paused","pg_last_committed_xact","pg_last_xact_replay_timestamp","pg_last_xlog_receive_location","pg_last_xlog_replay_location","pg_listening_channels","pg_logical_emit_message","pg_logical_slot_get_binary_changes","pg_logical_slot_get_changes","pg_logical_slot_peek_binary_changes","pg_logical_slot_peek_changes","pg_ls_dir","pg_my_temp_schema","pg_notification_queue_usage","pg_opclass_is_visible","pg_operator_is_visible","pg_opfamily_is_visible","pg_options_to_table","pg_postmaster_start_time","pg_read_binary_file","pg_read_file","pg_relation_filenode","pg_relation_filepath","pg_relation_size","pg_reload_conf","pg_replication_origin_create","pg_replication_origin_drop","pg_replication_origin_oid","pg_replication_origin_progress","pg_replication_origin_session_is_setup","pg_replication_origin_session_progress","pg_replication_origin_session_reset","pg_replication_origin_session_setup","pg_replication_origin_xact_reset","pg_replication_origin_xact_setup","pg_rotate_logfile","pg_size_bytes","pg_size_pretty","pg_sleep","pg_sleep_for","pg_sleep_until","pg_start_backup","pg_stat_file","pg_stop_backup","pg_switch_xlog","pg_table_is_visible","pg_table_size","pg_tablespace_databases","pg_tablespace_location","pg_tablespace_size","pg_total_relation_size","pg_trigger_depth","pg_try_advisory_lock","pg_try_advisory_lock_shared","pg_try_advisory_xact_lock","pg_try_advisory_xact_lock_shared","pg_ts_config_is_visible","pg_ts_dict_is_visible","pg_ts_parser_is_visible","pg_ts_template_is_visible","pg_type_is_visible","pg_typeof","pg_xact_commit_timestamp","pg_xlog_location_diff","pg_xlog_replay_pause","pg_xlog_replay_resume","pg_xlogfile_name","pg_xlogfile_name_offset","phraseto_tsquery","plainto_tsquery","point","polygon","popen","pqserverversion","query_to_xml","querytree","quote_nullable","radius","range_merge","regexp_matches","regexp_split_to_array","regexp_split_to_table","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","right","row_security_active","row_to_json","rpad","scale","set_masklen","setseed","setval","setweight","shobj_description","sind","sprintf","statement_timestamp","stddev","string_agg","string_to_array","strip","substr","table_to_xml","table_to_xml_and_xmlschema","tand","text","to_json","to_regclass","to_regnamespace","to_regoper","to_regoperator","to_regproc","to_regprocedure","to_regrole","to_regtype","to_tsquery","to_tsvector","transaction_timestamp","ts_debug","ts_delete","ts_filter","ts_headline","ts_lexize","ts_parse","ts_rank","ts_rank_cd","ts_rewrite","ts_stat","ts_token_type","tsquery_phrase","tsvector_to_array","tsvector_update_trigger","tsvector_update_trigger_column","txid_current","txid_current_snapshot","txid_snapshot_xip","txid_snapshot_xmax","txid_snapshot_xmin","txid_visible_in_snapshot","unnest","upper_inc","upper_inf","variance","width","width_bucket","xml_is_well_formed","xml_is_well_formed_content","xml_is_well_formed_document","xmlagg","xmlcomment","xmlconcat","xmlelement","xmlexists","xmlforest","xmlparse","xmlpi","xmlroot","xmlserialize","xpath","xpath_exists"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}}}}]); -//# sourceMappingURL=5646.ced0e1ae.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5661.c83a4eb0.chunk.js b/ydb/core/viewer/monitoring/static/js/5661.c83a4eb0.chunk.js new file mode 100644 index 000000000000..79eea68d3d1f --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5661.c83a4eb0.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 5661.c83a4eb0.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5661],{55661:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>r,language:()=>s});var r={comments:{lineComment:"#",blockComment:["=begin","=end"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],indentationRules:{increaseIndentPattern:new RegExp("^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|(\"|'|/).*\\4)*(#.*)?$"),decreaseIndentPattern:new RegExp("^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)")}},s={tokenPostfix:".ruby",keywords:["__LINE__","__ENCODING__","__FILE__","BEGIN","END","alias","and","begin","break","case","class","def","defined?","do","else","elsif","end","ensure","for","false","if","in","module","next","nil","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield"],keywordops:["::","..","...","?",":","=>"],builtins:["require","public","private","include","extend","attr_reader","protected","private_class_method","protected_class_method","new"],declarations:["module","class","def","case","do","begin","for","if","while","until","unless"],linedecls:["def","case","do","begin","for","if","while","until","unless"],operators:["^","&","|","<=>","==","===","!~","=~",">",">=","<","<=","<<",">>","+","-","*","/","%","**","~","+@","-@","[]","[]=","`","+=","-=","*=","**=","/=","^=","%=","<<=",">>=","&=","&&=","||=","|="],brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],symbols:/[=><!~?:&|+\-*\/\^%\.]+/,escape:/(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/,decpart:/\d(_?\d)*/,decimal:/0|@decpart/,delim:/[^a-zA-Z0-9\s\n\r]/,heredelim:/(?:\w+|'[^']*'|"[^"]*"|`[^`]*`)/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[AzZbBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})?/,tokenizer:{root:[[/^(\s*)([a-z_]\w*[!?=]?)/,["white",{cases:{"for|until|while":{token:"keyword.$2",next:"@dodecl.$2"},"@declarations":{token:"keyword.$2",next:"@root.$2"},end:{token:"keyword.$S2",next:"@pop"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}]],[/[a-z_]\w*[!?=]?/,{cases:{"if|unless|while|until":{token:"keyword.$0x",next:"@modifier.$0x"},for:{token:"keyword.$2",next:"@dodecl.$2"},"@linedecls":{token:"keyword.$0",next:"@root.$0"},end:{token:"keyword.$S2",next:"@pop"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],[/[A-Z][\w]*[!?=]?/,"constructor.identifier"],[/\$[\w]*/,"global.constant"],[/@[\w]*/,"namespace.instance.identifier"],[/@@@[\w]*/,"namespace.class.identifier"],[/<<[-~](@heredelim).*/,{token:"string.heredoc.delimiter",next:"@heredoc.$1"}],[/[ \t\r\n]+<<(@heredelim).*/,{token:"string.heredoc.delimiter",next:"@heredoc.$1"}],[/^<<(@heredelim).*/,{token:"string.heredoc.delimiter",next:"@heredoc.$1"}],{include:"@whitespace"},[/"/,{token:"string.d.delim",next:'@dstring.d."'}],[/'/,{token:"string.sq.delim",next:"@sstring.sq"}],[/%([rsqxwW]|Q?)/,{token:"@rematch",next:"pstring"}],[/`/,{token:"string.x.delim",next:"@dstring.x.`"}],[/:(\w|[$@])\w*[!?=]?/,"string.s"],[/:"/,{token:"string.s.delim",next:'@dstring.s."'}],[/:'/,{token:"string.s.delim",next:"@sstring.s"}],[/\/(?=(\\\/|[^\/\n])+\/)/,{token:"regexp.delim",next:"@regexp"}],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@keywordops":"keyword","@operators":"operator","@default":""}}],[/[;,]/,"delimiter"],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,"number.hex"],[/0[_oO][0-7](_?[0-7])*/,"number.octal"],[/0[bB][01](_?[01])*/,"number.binary"],[/0[dD]@decpart/,"number"],[/@decimal((\.@decpart)?([eE][\-+]?@decpart)?)/,{cases:{$1:"number.float","@default":"number"}}]],dodecl:[[/^/,{token:"",switchTo:"@root.$S2"}],[/[a-z_]\w*[!?=]?/,{cases:{end:{token:"keyword.$S2",next:"@pop"},do:{token:"keyword",switchTo:"@root.$S2"},"@linedecls":{token:"@rematch",switchTo:"@root.$S2"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],{include:"@root"}],modifier:[[/^/,"","@pop"],[/[a-z_]\w*[!?=]?/,{cases:{end:{token:"keyword.$S2",next:"@pop"},"then|else|elsif|do":{token:"keyword",switchTo:"@root.$S2"},"@linedecls":{token:"@rematch",switchTo:"@root.$S2"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],{include:"@root"}],sstring:[[/[^\\']+/,"string.$S2"],[/\\\\|\\'|\\$/,"string.$S2.escape"],[/\\./,"string.$S2.invalid"],[/'/,{token:"string.$S2.delim",next:"@pop"}]],dstring:[[/[^\\`"#]+/,"string.$S2"],[/#/,"string.$S2.escape","@interpolated"],[/\\$/,"string.$S2.escape"],[/@escapes/,"string.$S2.escape"],[/\\./,"string.$S2.escape.invalid"],[/[`"]/,{cases:{"$#==$S3":{token:"string.$S2.delim",next:"@pop"},"@default":"string.$S2"}}]],heredoc:[[/^(\s*)(@heredelim)$/,{cases:{"$2==$S2":["string.heredoc",{token:"string.heredoc.delimiter",next:"@pop"}],"@default":["string.heredoc","string.heredoc"]}}],[/.*/,"string.heredoc"]],interpolated:[[/\$\w*/,"global.constant","@pop"],[/@\w*/,"namespace.class.identifier","@pop"],[/@@@\w*/,"namespace.instance.identifier","@pop"],[/[{]/,{token:"string.escape.curly",switchTo:"@interpolated_compound"}],["","","@pop"]],interpolated_compound:[[/[}]/,{token:"string.escape.curly",next:"@pop"}],{include:"@root"}],pregexp:[{include:"@whitespace"},[/[^\(\{\[\\]/,{cases:{"$#==$S3":{token:"regexp.delim",next:"@pop"},"$#==$S2":{token:"regexp.delim",next:"@push"},"~[)}\\]]":"@brackets.regexp.escape.control","~@regexpctl":"regexp.escape.control","@default":"regexp"}}],{include:"@regexcontrol"}],regexp:[{include:"@regexcontrol"},[/[^\\\/]/,"regexp"],["/[ixmp]*",{token:"regexp.delim"},"@pop"]],regexcontrol:[[/(\{)(\d+(?:,\d*)?)(\})/,["@brackets.regexp.escape.control","regexp.escape.control","@brackets.regexp.escape.control"]],[/(\[)(\^?)/,["@brackets.regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?[:=!])/,["@brackets.regexp.escape.control","regexp.escape.control"]],[/\(\?#/,{token:"regexp.escape.control",next:"@regexpcomment"}],[/[()]/,"@brackets.regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/\\$/,"regexp.escape"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/#/,"regexp.escape","@interpolated"]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/\\$/,"regexp.escape"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,"@brackets.regexp.escape.control","@pop"]],regexpcomment:[[/[^)]+/,"comment"],[/\)/,{token:"regexp.escape.control",next:"@pop"}]],pstring:[[/%([qws])\(/,{token:"string.$1.delim",switchTo:"@qstring.$1.(.)"}],[/%([qws])\[/,{token:"string.$1.delim",switchTo:"@qstring.$1.[.]"}],[/%([qws])\{/,{token:"string.$1.delim",switchTo:"@qstring.$1.{.}"}],[/%([qws])</,{token:"string.$1.delim",switchTo:"@qstring.$1.<.>"}],[/%([qws])(@delim)/,{token:"string.$1.delim",switchTo:"@qstring.$1.$2.$2"}],[/%r\(/,{token:"regexp.delim",switchTo:"@pregexp.(.)"}],[/%r\[/,{token:"regexp.delim",switchTo:"@pregexp.[.]"}],[/%r\{/,{token:"regexp.delim",switchTo:"@pregexp.{.}"}],[/%r</,{token:"regexp.delim",switchTo:"@pregexp.<.>"}],[/%r(@delim)/,{token:"regexp.delim",switchTo:"@pregexp.$1.$1"}],[/%(x|W|Q?)\(/,{token:"string.$1.delim",switchTo:"@qqstring.$1.(.)"}],[/%(x|W|Q?)\[/,{token:"string.$1.delim",switchTo:"@qqstring.$1.[.]"}],[/%(x|W|Q?)\{/,{token:"string.$1.delim",switchTo:"@qqstring.$1.{.}"}],[/%(x|W|Q?)</,{token:"string.$1.delim",switchTo:"@qqstring.$1.<.>"}],[/%(x|W|Q?)(@delim)/,{token:"string.$1.delim",switchTo:"@qqstring.$1.$2.$2"}],[/%([rqwsxW]|Q?)./,{token:"invalid",next:"@pop"}],[/./,{token:"invalid",next:"@pop"}]],qstring:[[/\\$/,"string.$S2.escape"],[/\\./,"string.$S2.escape"],[/./,{cases:{"$#==$S4":{token:"string.$S2.delim",next:"@pop"},"$#==$S3":{token:"string.$S2.delim",next:"@push"},"@default":"string.$S2"}}]],qqstring:[[/#/,"string.$S2.escape","@interpolated"],{include:"@qstring"}],whitespace:[[/[ \t\r\n]+/,""],[/^\s*=begin\b/,"comment","@comment"],[/#.*$/,"comment"]],comment:[[/[^=]+/,"comment"],[/^\s*=begin\b/,"comment.invalid"],[/^\s*=end\b.*/,"comment","@pop"],[/[=]/,"comment"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5661.c83a4eb0.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/5661.c83a4eb0.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5661.c83a4eb0.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/5670.5c30cef1.chunk.js b/ydb/core/viewer/monitoring/static/js/5670.5c30cef1.chunk.js new file mode 100644 index 000000000000..739794f3345b --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5670.5c30cef1.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5670],{5670:function(e,_,s){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=_(e),d={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 s.default.locale(d,null,!0),d}(s(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/569.abbf95fd.chunk.js b/ydb/core/viewer/monitoring/static/js/569.abbf95fd.chunk.js deleted file mode 100644 index 6d7a1ce1e7db..000000000000 --- a/ydb/core/viewer/monitoring/static/js/569.abbf95fd.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[569],{40569:function(e,t,n){n.r(t),n.d(t,{conf:function(){return r},language:function(){return s}});var r={comments:{lineComment:"#",blockComment:["=begin","=end"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],indentationRules:{increaseIndentPattern:new RegExp("^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|(\"|'|/).*\\4)*(#.*)?$"),decreaseIndentPattern:new RegExp("^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)")}},s={tokenPostfix:".ruby",keywords:["__LINE__","__ENCODING__","__FILE__","BEGIN","END","alias","and","begin","break","case","class","def","defined?","do","else","elsif","end","ensure","for","false","if","in","module","next","nil","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield"],keywordops:["::","..","...","?",":","=>"],builtins:["require","public","private","include","extend","attr_reader","protected","private_class_method","protected_class_method","new"],declarations:["module","class","def","case","do","begin","for","if","while","until","unless"],linedecls:["def","case","do","begin","for","if","while","until","unless"],operators:["^","&","|","<=>","==","===","!~","=~",">",">=","<","<=","<<",">>","+","-","*","/","%","**","~","+@","-@","[]","[]=","`","+=","-=","*=","**=","/=","^=","%=","<<=",">>=","&=","&&=","||=","|="],brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],symbols:/[=><!~?:&|+\-*\/\^%\.]+/,escape:/(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/,decpart:/\d(_?\d)*/,decimal:/0|@decpart/,delim:/[^a-zA-Z0-9\s\n\r]/,heredelim:/(?:\w+|'[^']*'|"[^"]*"|`[^`]*`)/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[AzZbBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})?/,tokenizer:{root:[[/^(\s*)([a-z_]\w*[!?=]?)/,["white",{cases:{"for|until|while":{token:"keyword.$2",next:"@dodecl.$2"},"@declarations":{token:"keyword.$2",next:"@root.$2"},end:{token:"keyword.$S2",next:"@pop"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}]],[/[a-z_]\w*[!?=]?/,{cases:{"if|unless|while|until":{token:"keyword.$0x",next:"@modifier.$0x"},for:{token:"keyword.$2",next:"@dodecl.$2"},"@linedecls":{token:"keyword.$0",next:"@root.$0"},end:{token:"keyword.$S2",next:"@pop"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],[/[A-Z][\w]*[!?=]?/,"constructor.identifier"],[/\$[\w]*/,"global.constant"],[/@[\w]*/,"namespace.instance.identifier"],[/@@@[\w]*/,"namespace.class.identifier"],[/<<[-~](@heredelim).*/,{token:"string.heredoc.delimiter",next:"@heredoc.$1"}],[/[ \t\r\n]+<<(@heredelim).*/,{token:"string.heredoc.delimiter",next:"@heredoc.$1"}],[/^<<(@heredelim).*/,{token:"string.heredoc.delimiter",next:"@heredoc.$1"}],{include:"@whitespace"},[/"/,{token:"string.d.delim",next:'@dstring.d."'}],[/'/,{token:"string.sq.delim",next:"@sstring.sq"}],[/%([rsqxwW]|Q?)/,{token:"@rematch",next:"pstring"}],[/`/,{token:"string.x.delim",next:"@dstring.x.`"}],[/:(\w|[$@])\w*[!?=]?/,"string.s"],[/:"/,{token:"string.s.delim",next:'@dstring.s."'}],[/:'/,{token:"string.s.delim",next:"@sstring.s"}],[/\/(?=(\\\/|[^\/\n])+\/)/,{token:"regexp.delim",next:"@regexp"}],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@keywordops":"keyword","@operators":"operator","@default":""}}],[/[;,]/,"delimiter"],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,"number.hex"],[/0[_oO][0-7](_?[0-7])*/,"number.octal"],[/0[bB][01](_?[01])*/,"number.binary"],[/0[dD]@decpart/,"number"],[/@decimal((\.@decpart)?([eE][\-+]?@decpart)?)/,{cases:{$1:"number.float","@default":"number"}}]],dodecl:[[/^/,{token:"",switchTo:"@root.$S2"}],[/[a-z_]\w*[!?=]?/,{cases:{end:{token:"keyword.$S2",next:"@pop"},do:{token:"keyword",switchTo:"@root.$S2"},"@linedecls":{token:"@rematch",switchTo:"@root.$S2"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],{include:"@root"}],modifier:[[/^/,"","@pop"],[/[a-z_]\w*[!?=]?/,{cases:{end:{token:"keyword.$S2",next:"@pop"},"then|else|elsif|do":{token:"keyword",switchTo:"@root.$S2"},"@linedecls":{token:"@rematch",switchTo:"@root.$S2"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],{include:"@root"}],sstring:[[/[^\\']+/,"string.$S2"],[/\\\\|\\'|\\$/,"string.$S2.escape"],[/\\./,"string.$S2.invalid"],[/'/,{token:"string.$S2.delim",next:"@pop"}]],dstring:[[/[^\\`"#]+/,"string.$S2"],[/#/,"string.$S2.escape","@interpolated"],[/\\$/,"string.$S2.escape"],[/@escapes/,"string.$S2.escape"],[/\\./,"string.$S2.escape.invalid"],[/[`"]/,{cases:{"$#==$S3":{token:"string.$S2.delim",next:"@pop"},"@default":"string.$S2"}}]],heredoc:[[/^(\s*)(@heredelim)$/,{cases:{"$2==$S2":["string.heredoc",{token:"string.heredoc.delimiter",next:"@pop"}],"@default":["string.heredoc","string.heredoc"]}}],[/.*/,"string.heredoc"]],interpolated:[[/\$\w*/,"global.constant","@pop"],[/@\w*/,"namespace.class.identifier","@pop"],[/@@@\w*/,"namespace.instance.identifier","@pop"],[/[{]/,{token:"string.escape.curly",switchTo:"@interpolated_compound"}],["","","@pop"]],interpolated_compound:[[/[}]/,{token:"string.escape.curly",next:"@pop"}],{include:"@root"}],pregexp:[{include:"@whitespace"},[/[^\(\{\[\\]/,{cases:{"$#==$S3":{token:"regexp.delim",next:"@pop"},"$#==$S2":{token:"regexp.delim",next:"@push"},"~[)}\\]]":"@brackets.regexp.escape.control","~@regexpctl":"regexp.escape.control","@default":"regexp"}}],{include:"@regexcontrol"}],regexp:[{include:"@regexcontrol"},[/[^\\\/]/,"regexp"],["/[ixmp]*",{token:"regexp.delim"},"@pop"]],regexcontrol:[[/(\{)(\d+(?:,\d*)?)(\})/,["@brackets.regexp.escape.control","regexp.escape.control","@brackets.regexp.escape.control"]],[/(\[)(\^?)/,["@brackets.regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?[:=!])/,["@brackets.regexp.escape.control","regexp.escape.control"]],[/\(\?#/,{token:"regexp.escape.control",next:"@regexpcomment"}],[/[()]/,"@brackets.regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/\\$/,"regexp.escape"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/#/,"regexp.escape","@interpolated"]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/\\$/,"regexp.escape"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,"@brackets.regexp.escape.control","@pop"]],regexpcomment:[[/[^)]+/,"comment"],[/\)/,{token:"regexp.escape.control",next:"@pop"}]],pstring:[[/%([qws])\(/,{token:"string.$1.delim",switchTo:"@qstring.$1.(.)"}],[/%([qws])\[/,{token:"string.$1.delim",switchTo:"@qstring.$1.[.]"}],[/%([qws])\{/,{token:"string.$1.delim",switchTo:"@qstring.$1.{.}"}],[/%([qws])</,{token:"string.$1.delim",switchTo:"@qstring.$1.<.>"}],[/%([qws])(@delim)/,{token:"string.$1.delim",switchTo:"@qstring.$1.$2.$2"}],[/%r\(/,{token:"regexp.delim",switchTo:"@pregexp.(.)"}],[/%r\[/,{token:"regexp.delim",switchTo:"@pregexp.[.]"}],[/%r\{/,{token:"regexp.delim",switchTo:"@pregexp.{.}"}],[/%r</,{token:"regexp.delim",switchTo:"@pregexp.<.>"}],[/%r(@delim)/,{token:"regexp.delim",switchTo:"@pregexp.$1.$1"}],[/%(x|W|Q?)\(/,{token:"string.$1.delim",switchTo:"@qqstring.$1.(.)"}],[/%(x|W|Q?)\[/,{token:"string.$1.delim",switchTo:"@qqstring.$1.[.]"}],[/%(x|W|Q?)\{/,{token:"string.$1.delim",switchTo:"@qqstring.$1.{.}"}],[/%(x|W|Q?)</,{token:"string.$1.delim",switchTo:"@qqstring.$1.<.>"}],[/%(x|W|Q?)(@delim)/,{token:"string.$1.delim",switchTo:"@qqstring.$1.$2.$2"}],[/%([rqwsxW]|Q?)./,{token:"invalid",next:"@pop"}],[/./,{token:"invalid",next:"@pop"}]],qstring:[[/\\$/,"string.$S2.escape"],[/\\./,"string.$S2.escape"],[/./,{cases:{"$#==$S4":{token:"string.$S2.delim",next:"@pop"},"$#==$S3":{token:"string.$S2.delim",next:"@push"},"@default":"string.$S2"}}]],qqstring:[[/#/,"string.$S2.escape","@interpolated"],{include:"@qstring"}],whitespace:[[/[ \t\r\n]+/,""],[/^\s*=begin\b/,"comment","@comment"],[/#.*$/,"comment"]],comment:[[/[^=]+/,"comment"],[/^\s*=begin\b/,"comment.invalid"],[/^\s*=end\b.*/,"comment","@pop"],[/[=]/,"comment"]]}}}}]); -//# sourceMappingURL=569.abbf95fd.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5695.d81b70ca.chunk.js b/ydb/core/viewer/monitoring/static/js/5695.d81b70ca.chunk.js deleted file mode 100644 index 99a2a1bc0e2f..000000000000 --- a/ydb/core/viewer/monitoring/static/js/5695.d81b70ca.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5695],{25695:function(e,n,o){o.r(n),o.d(n,{conf:function(){return t},language:function(){return s}});var t={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:"'"}]},s={defaultToken:"",tokenPostfix:".objective-c",keywords:["#import","#include","#define","#else","#endif","#if","#ifdef","#ifndef","#ident","#undef","@class","@defs","@dynamic","@encode","@end","@implementation","@interface","@package","@private","@protected","@property","@protocol","@public","@selector","@synthesize","__declspec","assign","auto","BOOL","break","bycopy","byref","case","char","Class","const","copy","continue","default","do","double","else","enum","extern","FALSE","false","float","for","goto","if","in","int","id","inout","IMP","long","nil","nonatomic","NULL","oneway","out","private","public","protected","readwrite","readonly","register","return","SEL","self","short","signed","sizeof","static","struct","super","switch","typedef","TRUE","true","union","unsigned","volatile","void","while"],decpart:/\d(_?\d)*/,decimal:/0|@decpart/,tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},[/[,:;]/,"delimiter"],[/[{}\[\]()<>]/,"@brackets"],[/[a-zA-Z@#]\w*/,{cases:{"@keywords":"keyword","@default":"identifier"}}],[/[<>=\\+\\-\\*\\/\\^\\|\\~,]|and\\b|or\\b|not\\b]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],numbers:[[/0[xX][0-9a-fA-F]*(_?[0-9a-fA-F])*/,"number.hex"],[/@decimal((\.@decpart)?([eE][\-+]?@decpart)?)[fF]*/,{cases:{"(\\d)*":"number",$0:"number.float"}}]],strings:[[/'$/,"string.escape","@popall"],[/'/,"string.escape","@stringBody"],[/"$/,"string.escape","@popall"],[/"/,"string.escape","@dblStringBody"]],stringBody:[[/[^\\']+$/,"string","@popall"],[/[^\\']+/,"string"],[/\\./,"string"],[/'/,"string.escape","@popall"],[/\\$/,"string"]],dblStringBody:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string"],[/"/,"string.escape","@popall"],[/\\$/,"string"]]}}}}]); -//# sourceMappingURL=5695.d81b70ca.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5720.39a954f1.chunk.js b/ydb/core/viewer/monitoring/static/js/5720.39a954f1.chunk.js new file mode 100644 index 000000000000..70810b437fec --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5720.39a954f1.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5720],{85720:function(a,i,_){a.exports=function(a){"use strict";function i(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var _=i(a),e={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(a){return a},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 _.default.locale(e,null,!0),e}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5748.fa2a8e02.chunk.js b/ydb/core/viewer/monitoring/static/js/5748.fa2a8e02.chunk.js deleted file mode 100644 index 22be50f7cf9f..000000000000 --- a/ydb/core/viewer/monitoring/static/js/5748.fa2a8e02.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5748],{95748:function(e,n,t){t.r(n),t.d(n,{conf:function(){return o},language:function(){return s}});var o={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""',notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""'},{open:'"',close:'"'}],folding:{offSide:!0}},s={defaultToken:"invalid",tokenPostfix:".gql",keywords:["null","true","false","query","mutation","subscription","extend","schema","directive","scalar","type","interface","union","enum","input","implements","fragment","on"],typeKeywords:["Int","Float","String","Boolean","ID"],directiveLocations:["SCHEMA","SCALAR","OBJECT","FIELD_DEFINITION","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","QUERY","MUTATION","SUBSCRIPTION","FIELD","FRAGMENT_DEFINITION","FRAGMENT_SPREAD","INLINE_FRAGMENT","VARIABLE_DEFINITION"],operators:["=","!","?",":","&","|"],symbols:/[=!?:&|]+/,escapes:/\\(?:["\\\/bfnrt]|u[0-9A-Fa-f]{4})/,tokenizer:{root:[[/[a-z_][\w$]*/,{cases:{"@keywords":"keyword","@default":"key.identifier"}}],[/[$][\w$]*/,{cases:{"@keywords":"keyword","@default":"argument.identifier"}}],[/[A-Z][\w\$]*/,{cases:{"@typeKeywords":"keyword","@default":"type.identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,{token:"annotation",log:"annotation token: $0"}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"""/,{token:"string",next:"@mlstring",nextEmbedded:"markdown"}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}]],mlstring:[[/[^"]+/,"string"],['"""',{token:"string",next:"@pop",nextEmbedded:"@pop"}]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/#.*$/,"comment"]]}}}}]); -//# sourceMappingURL=5748.fa2a8e02.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5784.26f46213.chunk.js b/ydb/core/viewer/monitoring/static/js/5784.26f46213.chunk.js deleted file mode 100644 index 325496c6b102..000000000000 --- a/ydb/core/viewer/monitoring/static/js/5784.26f46213.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5784],{45784:function(e,t,n){n.r(t),n.d(t,{conf:function(){return o},language:function(){return s}});var o={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:"'"}]},s={defaultToken:"",tokenPostfix:".cameligo",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["abs","begin","Bytes","Crypto","Current","else","end","failwith","false","fun","if","in","let","let%entry","let%init","List","list","Map","map","match","match%nat","mod","not","operation","Operation","of","Set","set","sender","source","String","then","true","type","with"],typeKeywords:["int","unit","string","tz"],operators:["=",">","<","<=",">=","<>",":",":=","and","mod","or","+","-","*","/","@","&","^","%","->","<-"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\(\*]+/,"comment"],[/\*\)/,"comment","@pop"],[/\(\*/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); -//# sourceMappingURL=5784.26f46213.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5790.e3d88e2c.chunk.js b/ydb/core/viewer/monitoring/static/js/5790.e3d88e2c.chunk.js new file mode 100644 index 000000000000..d66a02b13cff --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5790.e3d88e2c.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 5790.e3d88e2c.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5790],{65790:(e,_,t)=>{t.r(_),t.d(_,{conf:()=>s,language:()=>r});var s={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:"'"}]},r={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ALL","ANALYSE","ANALYZE","AND","ANY","ARRAY","AS","ASC","ASYMMETRIC","AUTHORIZATION","BINARY","BOTH","CASE","CAST","CHECK","COLLATE","COLLATION","COLUMN","CONCURRENTLY","CONSTRAINT","CREATE","CROSS","CURRENT_CATALOG","CURRENT_DATE","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DEFAULT","DEFERRABLE","DESC","DISTINCT","DO","ELSE","END","EXCEPT","FALSE","FETCH","FOR","FOREIGN","FREEZE","FROM","FULL","GRANT","GROUP","HAVING","ILIKE","IN","INITIALLY","INNER","INTERSECT","INTO","IS","ISNULL","JOIN","LATERAL","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","NATURAL","NOT","NOTNULL","NULL","OFFSET","ON","ONLY","OR","ORDER","OUTER","OVERLAPS","PLACING","PRIMARY","REFERENCES","RETURNING","RIGHT","SELECT","SESSION_USER","SIMILAR","SOME","SYMMETRIC","TABLE","TABLESAMPLE","THEN","TO","TRAILING","TRUE","UNION","UNIQUE","USER","USING","VARIADIC","VERBOSE","WHEN","WHERE","WINDOW","WITH"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["abbrev","abs","acldefault","aclexplode","acos","acosd","acosh","age","any","area","array_agg","array_append","array_cat","array_dims","array_fill","array_length","array_lower","array_ndims","array_position","array_positions","array_prepend","array_remove","array_replace","array_to_json","array_to_string","array_to_tsvector","array_upper","ascii","asin","asind","asinh","atan","atan2","atan2d","atand","atanh","avg","bit","bit_and","bit_count","bit_length","bit_or","bit_xor","bool_and","bool_or","bound_box","box","brin_desummarize_range","brin_summarize_new_values","brin_summarize_range","broadcast","btrim","cardinality","cbrt","ceil","ceiling","center","char_length","character_length","chr","circle","clock_timestamp","coalesce","col_description","concat","concat_ws","convert","convert_from","convert_to","corr","cos","cosd","cosh","cot","cotd","count","covar_pop","covar_samp","cume_dist","current_catalog","current_database","current_date","current_query","current_role","current_schema","current_schemas","current_setting","current_time","current_timestamp","current_user","currval","cursor_to_xml","cursor_to_xmlschema","date_bin","date_part","date_trunc","database_to_xml","database_to_xml_and_xmlschema","database_to_xmlschema","decode","degrees","dense_rank","diagonal","diameter","div","encode","enum_first","enum_last","enum_range","every","exp","extract","factorial","family","first_value","floor","format","format_type","gcd","gen_random_uuid","generate_series","generate_subscripts","get_bit","get_byte","get_current_ts_config","gin_clean_pending_list","greatest","grouping","has_any_column_privilege","has_column_privilege","has_database_privilege","has_foreign_data_wrapper_privilege","has_function_privilege","has_language_privilege","has_schema_privilege","has_sequence_privilege","has_server_privilege","has_table_privilege","has_tablespace_privilege","has_type_privilege","height","host","hostmask","inet_client_addr","inet_client_port","inet_merge","inet_same_family","inet_server_addr","inet_server_port","initcap","isclosed","isempty","isfinite","isopen","json_agg","json_array_elements","json_array_elements_text","json_array_length","json_build_array","json_build_object","json_each","json_each_text","json_extract_path","json_extract_path_text","json_object","json_object_agg","json_object_keys","json_populate_record","json_populate_recordset","json_strip_nulls","json_to_record","json_to_recordset","json_to_tsvector","json_typeof","jsonb_agg","jsonb_array_elements","jsonb_array_elements_text","jsonb_array_length","jsonb_build_array","jsonb_build_object","jsonb_each","jsonb_each_text","jsonb_extract_path","jsonb_extract_path_text","jsonb_insert","jsonb_object","jsonb_object_agg","jsonb_object_keys","jsonb_path_exists","jsonb_path_match","jsonb_path_query","jsonb_path_query_array","jsonb_path_exists_tz","jsonb_path_query_first","jsonb_path_query_array_tz","jsonb_path_query_first_tz","jsonb_path_query_tz","jsonb_path_match_tz","jsonb_populate_record","jsonb_populate_recordset","jsonb_pretty","jsonb_set","jsonb_set_lax","jsonb_strip_nulls","jsonb_to_record","jsonb_to_recordset","jsonb_to_tsvector","jsonb_typeof","justify_days","justify_hours","justify_interval","lag","last_value","lastval","lcm","lead","least","left","length","line","ln","localtime","localtimestamp","log","log10","lower","lower_inc","lower_inf","lpad","lseg","ltrim","macaddr8_set7bit","make_date","make_interval","make_time","make_timestamp","make_timestamptz","makeaclitem","masklen","max","md5","min","min_scale","mod","mode","multirange","netmask","network","nextval","normalize","now","npoints","nth_value","ntile","nullif","num_nonnulls","num_nulls","numnode","obj_description","octet_length","overlay","parse_ident","path","pclose","percent_rank","percentile_cont","percentile_disc","pg_advisory_lock","pg_advisory_lock_shared","pg_advisory_unlock","pg_advisory_unlock_all","pg_advisory_unlock_shared","pg_advisory_xact_lock","pg_advisory_xact_lock_shared","pg_backend_pid","pg_backup_start_time","pg_blocking_pids","pg_cancel_backend","pg_client_encoding","pg_collation_actual_version","pg_collation_is_visible","pg_column_compression","pg_column_size","pg_conf_load_time","pg_control_checkpoint","pg_control_init","pg_control_recovery","pg_control_system","pg_conversion_is_visible","pg_copy_logical_replication_slot","pg_copy_physical_replication_slot","pg_create_logical_replication_slot","pg_create_physical_replication_slot","pg_create_restore_point","pg_current_logfile","pg_current_snapshot","pg_current_wal_flush_lsn","pg_current_wal_insert_lsn","pg_current_wal_lsn","pg_current_xact_id","pg_current_xact_id_if_assigned","pg_current_xlog_flush_location","pg_current_xlog_insert_location","pg_current_xlog_location","pg_database_size","pg_describe_object","pg_drop_replication_slot","pg_event_trigger_ddl_commands","pg_event_trigger_dropped_objects","pg_event_trigger_table_rewrite_oid","pg_event_trigger_table_rewrite_reason","pg_export_snapshot","pg_filenode_relation","pg_function_is_visible","pg_get_catalog_foreign_keys","pg_get_constraintdef","pg_get_expr","pg_get_function_arguments","pg_get_function_identity_arguments","pg_get_function_result","pg_get_functiondef","pg_get_indexdef","pg_get_keywords","pg_get_object_address","pg_get_owned_sequence","pg_get_ruledef","pg_get_serial_sequence","pg_get_statisticsobjdef","pg_get_triggerdef","pg_get_userbyid","pg_get_viewdef","pg_get_wal_replay_pause_state","pg_has_role","pg_identify_object","pg_identify_object_as_address","pg_import_system_collations","pg_index_column_has_property","pg_index_has_property","pg_indexam_has_property","pg_indexes_size","pg_is_in_backup","pg_is_in_recovery","pg_is_other_temp_schema","pg_is_wal_replay_paused","pg_is_xlog_replay_paused","pg_jit_available","pg_last_committed_xact","pg_last_wal_receive_lsn","pg_last_wal_replay_lsn","pg_last_xact_replay_timestamp","pg_last_xlog_receive_location","pg_last_xlog_replay_location","pg_listening_channels","pg_log_backend_memory_contexts","pg_logical_emit_message","pg_logical_slot_get_binary_changes","pg_logical_slot_get_changes","pg_logical_slot_peek_binary_changes","pg_logical_slot_peek_changes","pg_ls_archive_statusdir","pg_ls_dir","pg_ls_logdir","pg_ls_tmpdir","pg_ls_waldir","pg_mcv_list_items","pg_my_temp_schema","pg_notification_queue_usage","pg_opclass_is_visible","pg_operator_is_visible","pg_opfamily_is_visible","pg_options_to_table","pg_partition_ancestors","pg_partition_root","pg_partition_tree","pg_postmaster_start_time","pg_promote","pg_read_binary_file","pg_read_file","pg_relation_filenode","pg_relation_filepath","pg_relation_size","pg_reload_conf","pg_replication_origin_advance","pg_replication_origin_create","pg_replication_origin_drop","pg_replication_origin_oid","pg_replication_origin_progress","pg_replication_origin_session_is_setup","pg_replication_origin_session_progress","pg_replication_origin_session_reset","pg_replication_origin_session_setup","pg_replication_origin_xact_reset","pg_replication_origin_xact_setup","pg_replication_slot_advance","pg_rotate_logfile","pg_safe_snapshot_blocking_pids","pg_size_bytes","pg_size_pretty","pg_sleep","pg_sleep_for","pg_sleep_until","pg_snapshot_xip","pg_snapshot_xmax","pg_snapshot_xmin","pg_start_backup","pg_stat_file","pg_statistics_obj_is_visible","pg_stop_backup","pg_switch_wal","pg_switch_xlog","pg_table_is_visible","pg_table_size","pg_tablespace_databases","pg_tablespace_location","pg_tablespace_size","pg_terminate_backend","pg_total_relation_size","pg_trigger_depth","pg_try_advisory_lock","pg_try_advisory_lock_shared","pg_try_advisory_xact_lock","pg_try_advisory_xact_lock_shared","pg_ts_config_is_visible","pg_ts_dict_is_visible","pg_ts_parser_is_visible","pg_ts_template_is_visible","pg_type_is_visible","pg_typeof","pg_visible_in_snapshot","pg_wal_lsn_diff","pg_wal_replay_pause","pg_wal_replay_resume","pg_walfile_name","pg_walfile_name_offset","pg_xact_commit_timestamp","pg_xact_commit_timestamp_origin","pg_xact_status","pg_xlog_location_diff","pg_xlog_replay_pause","pg_xlog_replay_resume","pg_xlogfile_name","pg_xlogfile_name_offset","phraseto_tsquery","pi","plainto_tsquery","point","polygon","popen","position","power","pqserverversion","query_to_xml","query_to_xml_and_xmlschema","query_to_xmlschema","querytree","quote_ident","quote_literal","quote_nullable","radians","radius","random","range_agg","range_intersect_agg","range_merge","rank","regexp_count","regexp_instr","regexp_like","regexp_match","regexp_matches","regexp_replace","regexp_split_to_array","regexp_split_to_table","regexp_substr","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","repeat","replace","reverse","right","round","row_number","row_security_active","row_to_json","rpad","rtrim","scale","schema_to_xml","schema_to_xml_and_xmlschema","schema_to_xmlschema","session_user","set_bit","set_byte","set_config","set_masklen","setseed","setval","setweight","sha224","sha256","sha384","sha512","shobj_description","sign","sin","sind","sinh","slope","split_part","sprintf","sqrt","starts_with","statement_timestamp","stddev","stddev_pop","stddev_samp","string_agg","string_to_array","string_to_table","strip","strpos","substr","substring","sum","suppress_redundant_updates_trigger","table_to_xml","table_to_xml_and_xmlschema","table_to_xmlschema","tan","tand","tanh","text","timeofday","timezone","to_ascii","to_char","to_date","to_hex","to_json","to_number","to_regclass","to_regcollation","to_regnamespace","to_regoper","to_regoperator","to_regproc","to_regprocedure","to_regrole","to_regtype","to_timestamp","to_tsquery","to_tsvector","transaction_timestamp","translate","trim","trim_array","trim_scale","trunc","ts_debug","ts_delete","ts_filter","ts_headline","ts_lexize","ts_parse","ts_rank","ts_rank_cd","ts_rewrite","ts_stat","ts_token_type","tsquery_phrase","tsvector_to_array","tsvector_update_trigger","tsvector_update_trigger_column","txid_current","txid_current_if_assigned","txid_current_snapshot","txid_snapshot_xip","txid_snapshot_xmax","txid_snapshot_xmin","txid_status","txid_visible_in_snapshot","unistr","unnest","upper","upper_inc","upper_inf","user","var_pop","var_samp","variance","version","websearch_to_tsquery","width","width_bucket","xml_is_well_formed","xml_is_well_formed_content","xml_is_well_formed_document","xmlagg","xmlcomment","xmlconcat","xmlelement","xmlexists","xmlforest","xmlparse","xmlpi","xmlroot","xmlserialize","xpath","xpath_exists"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@keywords":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5790.e3d88e2c.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/5790.e3d88e2c.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5790.e3d88e2c.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/5809.d78ebebb.chunk.js b/ydb/core/viewer/monitoring/static/js/5809.d78ebebb.chunk.js new file mode 100644 index 000000000000..500800af1692 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5809.d78ebebb.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5809],{25809:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5863.e2cd2452.chunk.js b/ydb/core/viewer/monitoring/static/js/5863.e2cd2452.chunk.js new file mode 100644 index 000000000000..4bb51511d6c5 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5863.e2cd2452.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5863],{65863:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5868.be04313a.chunk.js b/ydb/core/viewer/monitoring/static/js/5868.be04313a.chunk.js new file mode 100644 index 000000000000..973f495b859b --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5868.be04313a.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 5868.be04313a.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5868],{5868:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>o,language:()=>s});var o={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},s={tokenPostfix:".tcl",specialFunctions:["set","unset","rename","variable","proc","coroutine","foreach","incr","append","lappend","linsert","lreplace"],mainFunctions:["if","then","elseif","else","case","switch","while","for","break","continue","return","package","namespace","catch","exit","eval","expr","uplevel","upvar"],builtinFunctions:["file","info","concat","join","lindex","list","llength","lrange","lsearch","lsort","split","array","parray","binary","format","regexp","regsub","scan","string","subst","dict","cd","clock","exec","glob","pid","pwd","close","eof","fblocked","fconfigure","fcopy","fileevent","flush","gets","open","puts","read","seek","socket","tell","interp","after","auto_execok","auto_load","auto_mkindex","auto_reset","bgerror","error","global","history","load","source","time","trace","unknown","unset","update","vwait","winfo","wm","bind","event","pack","place","grid","font","bell","clipboard","destroy","focus","grab","lower","option","raise","selection","send","tk","tkwait","tk_bisque","tk_focusNext","tk_focusPrev","tk_focusFollowsMouse","tk_popup","tk_setPalette"],symbols:/[=><!~?:&|+\-*\/\^%]+/,brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],escapes:/\\(?:[abfnrtv\\"'\[\]\{\};\$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,variables:/(?:\$+(?:(?:\:\:?)?[a-zA-Z_]\w*)+)/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@specialFunctions":{token:"keyword.flow",next:"@specialFunc"},"@mainFunctions":"keyword","@builtinFunctions":"variable","@default":"operator.scss"}}],[/\s+\-+(?!\d|\.)\w*|{\*}/,"metatag"],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,"operator"],[/\$+(?:\:\:)?\{/,{token:"identifier",next:"@nestedVariable"}],[/@variables/,"type.identifier"],[/\.(?!\d|\.)[\w\-]*/,"operator.sql"],[/\d+(\.\d+)?/,"number"],[/\d+/,"number"],[/;/,"delimiter"],[/"/,{token:"string.quote",bracket:"@open",next:"@dstring"}],[/'/,{token:"string.quote",bracket:"@open",next:"@sstring"}]],dstring:[[/\[/,{token:"@brackets",next:"@nestedCall"}],[/\$+(?:\:\:)?\{/,{token:"identifier",next:"@nestedVariable"}],[/@variables/,"type.identifier"],[/[^\\$\[\]"]+/,"string"],[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],sstring:[[/\[/,{token:"@brackets",next:"@nestedCall"}],[/\$+(?:\:\:)?\{/,{token:"identifier",next:"@nestedVariable"}],[/@variables/,"type.identifier"],[/[^\\$\[\]']+/,"string"],[/@escapes/,"string.escape"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/#.*\\$/,{token:"comment",next:"@newlineComment"}],[/#.*(?!\\)$/,"comment"]],newlineComment:[[/.*\\$/,"comment"],[/.*(?!\\)$/,{token:"comment",next:"@pop"}]],nestedVariable:[[/[^\{\}\$]+/,"type.identifier"],[/\}/,{token:"identifier",next:"@pop"}]],nestedCall:[[/\[/,{token:"@brackets",next:"@nestedCall"}],[/\]/,{token:"@brackets",next:"@pop"}],{include:"root"}],specialFunc:[[/"/,{token:"string",next:"@dstring"}],[/'/,{token:"string",next:"@sstring"}],[/\S+/,{token:"type",next:"@pop"}]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/5868.be04313a.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/5868.be04313a.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/5868.be04313a.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/5885.c5ee8345.chunk.js b/ydb/core/viewer/monitoring/static/js/5885.c5ee8345.chunk.js deleted file mode 100644 index 20a93eea7395..000000000000 --- a/ydb/core/viewer/monitoring/static/js/5885.c5ee8345.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[5885],{65885:function(e,t,n){n.r(t),n.d(t,{conf:function(){return i},language:function(){return o}});var i={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},o={tokenPostfix:".pats",defaultToken:"invalid",keywords:["abstype","abst0ype","absprop","absview","absvtype","absviewtype","absvt0ype","absviewt0ype","as","and","assume","begin","classdec","datasort","datatype","dataprop","dataview","datavtype","dataviewtype","do","end","extern","extype","extvar","exception","fn","fnx","fun","prfn","prfun","praxi","castfn","if","then","else","ifcase","in","infix","infixl","infixr","prefix","postfix","implmnt","implement","primplmnt","primplement","import","let","local","macdef","macrodef","nonfix","symelim","symintr","overload","of","op","rec","sif","scase","sortdef","sta","stacst","stadef","static","staload","dynload","try","tkindef","typedef","propdef","viewdef","vtypedef","viewtypedef","prval","var","prvar","when","where","with","withtype","withprop","withview","withvtype","withviewtype"],keywords_dlr:["$delay","$ldelay","$arrpsz","$arrptrsize","$d2ctype","$effmask","$effmask_ntm","$effmask_exn","$effmask_ref","$effmask_wrt","$effmask_all","$extern","$extkind","$extype","$extype_struct","$extval","$extfcall","$extmcall","$literal","$myfilename","$mylocation","$myfunction","$lst","$lst_t","$lst_vt","$list","$list_t","$list_vt","$rec","$rec_t","$rec_vt","$record","$record_t","$record_vt","$tup","$tup_t","$tup_vt","$tuple","$tuple_t","$tuple_vt","$break","$continue","$raise","$showtype","$vcopyenv_v","$vcopyenv_vt","$tempenver","$solver_assert","$solver_verify"],keywords_srp:["#if","#ifdef","#ifndef","#then","#elif","#elifdef","#elifndef","#else","#endif","#error","#prerr","#print","#assert","#undef","#define","#include","#require","#pragma","#codegen2","#codegen3"],irregular_keyword_list:["val+","val-","val","case+","case-","case","addr@","addr","fold@","free@","fix@","fix","lam@","lam","llam@","llam","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","view+","view-","view@","view","type+","type-","type","vtype+","vtype-","vtype","vt@ype+","vt@ype-","vt@ype","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","prop+","prop-","prop","type+","type-","type","t@ype","t@ype+","t@ype-","abst@ype","abstype","absviewt@ype","absvt@ype","for*","for","while*","while"],keywords_types:["bool","double","byte","int","short","char","void","unit","long","float","string","strptr"],keywords_effects:["0","fun","clo","prf","funclo","cloptr","cloref","ref","ntm","1"],operators:["@","!","|","`",":","$",".","=","#","~","..","...","=>","=<>","=/=>","=>>","=/=>>","<",">","><",".<",">.",".<>.","->","-<>"],brackets:[{open:",(",close:")",token:"delimiter.parenthesis"},{open:"`(",close:")",token:"delimiter.parenthesis"},{open:"%(",close:")",token:"delimiter.parenthesis"},{open:"'(",close:")",token:"delimiter.parenthesis"},{open:"'{",close:"}",token:"delimiter.parenthesis"},{open:"@(",close:")",token:"delimiter.parenthesis"},{open:"@{",close:"}",token:"delimiter.brace"},{open:"@[",close:"]",token:"delimiter.square"},{open:"#[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],symbols:/[=><!~?:&|+\-*\/\^%]+/,IDENTFST:/[a-zA-Z_]/,IDENTRST:/[a-zA-Z0-9_'$]/,symbolic:/[%&+-./:=@~`^|*!$#?<>]/,digit:/[0-9]/,digitseq0:/@digit*/,xdigit:/[0-9A-Za-z]/,xdigitseq0:/@xdigit*/,INTSP:/[lLuU]/,FLOATSP:/[fFlL]/,fexponent:/[eE][+-]?[0-9]+/,fexponent_bin:/[pP][+-]?[0-9]+/,deciexp:/\.[0-9]*@fexponent?/,hexiexp:/\.[0-9a-zA-Z]*@fexponent_bin?/,irregular_keywords:/val[+-]?|case[+-]?|addr\@?|fold\@|free\@|fix\@?|lam\@?|llam\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\*?|while\*?/,ESCHAR:/[ntvbrfa\\\?'"\(\[\{]/,start:"root",tokenizer:{root:[{regex:/[ \t\r\n]+/,action:{token:""}},{regex:/\(\*\)/,action:{token:"invalid"}},{regex:/\(\*/,action:{token:"comment",next:"lexing_COMMENT_block_ml"}},{regex:/\(/,action:"@brackets"},{regex:/\)/,action:"@brackets"},{regex:/\[/,action:"@brackets"},{regex:/\]/,action:"@brackets"},{regex:/\{/,action:"@brackets"},{regex:/\}/,action:"@brackets"},{regex:/,\(/,action:"@brackets"},{regex:/,/,action:{token:"delimiter.comma"}},{regex:/;/,action:{token:"delimiter.semicolon"}},{regex:/@\(/,action:"@brackets"},{regex:/@\[/,action:"@brackets"},{regex:/@\{/,action:"@brackets"},{regex:/:</,action:{token:"keyword",next:"@lexing_EFFECT_commaseq0"}},{regex:/\.@symbolic+/,action:{token:"identifier.sym"}},{regex:/\.@digit*@fexponent@FLOATSP*/,action:{token:"number.float"}},{regex:/\.@digit+/,action:{token:"number.float"}},{regex:/\$@IDENTFST@IDENTRST*/,action:{cases:{"@keywords_dlr":{token:"keyword.dlr"},"@default":{token:"namespace"}}}},{regex:/\#@IDENTFST@IDENTRST*/,action:{cases:{"@keywords_srp":{token:"keyword.srp"},"@default":{token:"identifier"}}}},{regex:/%\(/,action:{token:"delimiter.parenthesis"}},{regex:/^%{(#|\^|\$)?/,action:{token:"keyword",next:"@lexing_EXTCODE",nextEmbedded:"text/javascript"}},{regex:/^%}/,action:{token:"keyword"}},{regex:/'\(/,action:{token:"delimiter.parenthesis"}},{regex:/'\[/,action:{token:"delimiter.bracket"}},{regex:/'\{/,action:{token:"delimiter.brace"}},[/(')(\\@ESCHAR|\\[xX]@xdigit+|\\@digit+)(')/,["string","string.escape","string"]],[/'[^\\']'/,"string"],[/"/,"string.quote","@lexing_DQUOTE"],{regex:/`\(/,action:"@brackets"},{regex:/\\/,action:{token:"punctuation"}},{regex:/@irregular_keywords(?!@IDENTRST)/,action:{token:"keyword"}},{regex:/@IDENTFST@IDENTRST*[<!\[]?/,action:{cases:{"@keywords":{token:"keyword"},"@keywords_types":{token:"type"},"@default":{token:"identifier"}}}},{regex:/\/\/\/\//,action:{token:"comment",next:"@lexing_COMMENT_rest"}},{regex:/\/\/.*$/,action:{token:"comment"}},{regex:/\/\*/,action:{token:"comment",next:"@lexing_COMMENT_block_c"}},{regex:/-<|=</,action:{token:"keyword",next:"@lexing_EFFECT_commaseq0"}},{regex:/@symbolic+/,action:{cases:{"@operators":"keyword","@default":"operator"}}},{regex:/0[xX]@xdigit+(@hexiexp|@fexponent_bin)@FLOATSP*/,action:{token:"number.float"}},{regex:/0[xX]@xdigit+@INTSP*/,action:{token:"number.hex"}},{regex:/0[0-7]+(?![0-9])@INTSP*/,action:{token:"number.octal"}},{regex:/@digit+(@fexponent|@deciexp)@FLOATSP*/,action:{token:"number.float"}},{regex:/@digit@digitseq0@INTSP*/,action:{token:"number.decimal"}},{regex:/@digit+@INTSP*/,action:{token:"number"}}],lexing_COMMENT_block_ml:[[/[^\(\*]+/,"comment"],[/\(\*/,"comment","@push"],[/\(\*/,"comment.invalid"],[/\*\)/,"comment","@pop"],[/\*/,"comment"]],lexing_COMMENT_block_c:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],lexing_COMMENT_rest:[[/$/,"comment","@pop"],[/.*/,"comment"]],lexing_EFFECT_commaseq0:[{regex:/@IDENTFST@IDENTRST+|@digit+/,action:{cases:{"@keywords_effects":{token:"type.effect"},"@default":{token:"identifier"}}}},{regex:/,/,action:{token:"punctuation"}},{regex:/>/,action:{token:"@rematch",next:"@pop"}}],lexing_EXTCODE:[{regex:/^%}/,action:{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}},{regex:/[^%]+/,action:""}],lexing_DQUOTE:[{regex:/"/,action:{token:"string.quote",next:"@pop"}},{regex:/(\{\$)(@IDENTFST@IDENTRST*)(\})/,action:[{token:"string.escape"},{token:"identifier"},{token:"string.escape"}]},{regex:/\\$/,action:{token:"string.escape"}},{regex:/\\(@ESCHAR|[xX]@xdigit+|@digit+)/,action:{token:"string.escape"}},{regex:/[^\\"]+/,action:{token:"string"}}]}}}}]); -//# sourceMappingURL=5885.c5ee8345.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/598.243fd68d.chunk.js b/ydb/core/viewer/monitoring/static/js/598.243fd68d.chunk.js new file mode 100644 index 000000000000..017260af0b00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/598.243fd68d.chunk.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[598],{40598:(e,t,l)=>{l.r(t),l.d(t,{ReactComponent:()=>m,default:()=>h});var a,r,i,c,n,d,o,s,f=l(68963);function u(){return u=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var a in l)Object.prototype.hasOwnProperty.call(l,a)&&(e[a]=l[a])}return e},u.apply(this,arguments)}function p(e,t){let{title:l,titleId:p,...m}=e;return f.createElement("svg",u({xmlns:"http://www.w3.org/2000/svg",width:230,height:230,fill:"none",ref:t,"aria-labelledby":p},m),l?f.createElement("title",{id:p},l):null,a||(a=f.createElement("path",{fill:"#BECFE0",fillOpacity:.8,fillRule:"evenodd",d:"M169.001 51.666c5.523 0 10 4.477 10 10v21.017l18.197-10.506c4.783-2.762 10.899-1.123 13.66 3.66 2.761 4.783 1.123 10.899-3.66 13.66l-18.197 10.507 18.198 10.506c4.783 2.762 6.421 8.878 3.66 13.661-2.762 4.782-8.877 6.421-13.66 3.66l-18.198-10.506v21.008c0 5.523-4.477 10-10 10-5.522 0-10-4.477-10-10v-21.009l-18.199 10.507c-4.782 2.761-10.898 1.122-13.66-3.66-2.761-4.783-1.122-10.899 3.66-13.661l18.199-10.506-18.198-10.507c-4.783-2.761-6.421-8.877-3.66-13.66 2.762-4.783 8.877-6.422 13.66-3.66l18.198 10.507V61.666c0-5.523 4.478-10 10-10Z",clipRule:"evenodd"})),r||(r=f.createElement("path",{fill:"#E7E7E7",fillRule:"evenodd",d:"M171.523 95.922a11.003 11.003 0 0 1 1.099 8.347l-13.208 49.291c-1.572 5.868-7.604 9.351-13.472 7.778l-25.356-6.794a44.998 44.998 0 0 1-.53 1.929l25.368 6.797c6.935 1.858 14.064-2.257 15.922-9.192l13.207-49.291c.893-3.33.426-6.879-1.298-9.865L155.598 64.34a12.999 12.999 0 0 0-7.894-6.057l-29.972-8.031c-6.935-1.858-14.063 2.257-15.922 9.192l-11.328 42.277c.64.192 1.276.398 1.905.618l11.355-42.377c1.573-5.868 7.604-9.35 13.472-7.778l29.973 8.03a11 11 0 0 1 6.679 5.126l17.657 30.582Z",clipRule:"evenodd"})),i||(i=f.createElement("path",{fill:"#FF5958",fillOpacity:.8,d:"M35.388 155.273c-6.29-23.472 7.64-47.599 31.113-53.889 23.472-6.289 47.599 7.641 53.889 31.113 6.289 23.473-7.641 47.599-31.113 53.889-23.473 6.289-47.6-7.64-53.889-31.113Z"})),c||(c=f.createElement("path",{stroke:"#E7E7E7",strokeWidth:2,d:"M60.636 117.734c53.586-33.459-26.868-81.505-36.557-61.318-11.802 24.59 99.395 51.098 128.865-26.3"})),f.createElement("mask",{id:"b",width:89,height:89,x:33,y:99,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},n||(n=f.createElement("path",{fill:"#FF5958",fillOpacity:.9,d:"M35.388 155.273c-6.29-23.472 7.64-47.599 31.113-53.889 23.472-6.289 47.599 7.641 53.889 31.113 6.289 23.473-7.641 47.599-31.113 53.889-23.473 6.289-47.6-7.64-53.889-31.113Z"}))),d||(d=f.createElement("g",{filter:"url(#a)",mask:"url(#b)"},f.createElement("path",{stroke:"#E7E7E7",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.6,strokeWidth:2,d:"M172.389 95.422a12.004 12.004 0 0 1 1.199 9.106l-13.208 49.291c-1.715 6.401-8.295 10.2-14.697 8.485L91.591 147.81c-6.401-1.715-10.2-8.295-8.485-14.697l19.67-73.41c1.716-6.402 8.296-10.2 14.697-8.485l29.972 8.03a11.998 11.998 0 0 1 7.287 5.592l17.657 30.582Z"}))),o||(o=f.createElement("g",{filter:"url(#c)"},f.createElement("path",{fill:"#fff",fillOpacity:.72,fillRule:"evenodd",d:"M80.866 130.432a6.359 6.359 0 1 1-12.284 3.29 6.359 6.359 0 0 1 12.284-3.29Zm4.817-1.291c1.621 6.052-1.97 12.273-8.022 13.894-6.052 1.622-12.273-1.97-13.895-8.022-1.621-6.052 1.97-12.272 8.022-13.894 6.052-1.622 12.273 1.97 13.895 8.022Zm-21.346 32.565c-.154-.577-.009-2.61 2.877-5.555 2.665-2.721 6.917-5.33 12.158-6.734 5.24-1.404 10.227-1.271 13.896-.247 3.971 1.108 5.114 2.796 5.268 3.372a3.116 3.116 0 0 1-2.204 3.817l-28.178 7.55a3.116 3.116 0 0 1-3.817-2.203ZM78.081 144.6c-12.054 3.23-20.238 12.134-18.56 18.396a8.103 8.103 0 0 0 9.924 5.73l28.178-7.55a8.104 8.104 0 0 0 5.73-9.925c-1.678-6.261-13.218-9.881-25.272-6.651Z",clipRule:"evenodd"}))),s||(s=f.createElement("defs",null,f.createElement("filter",{id:"a",width:113.303,height:133.91,x:71.693,y:39.806,colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse"},f.createElement("feFlood",{floodOpacity:0,result:"BackgroundImageFix"}),f.createElement("feBlend",{in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),f.createElement("feGaussianBlur",{result:"effect1_foregroundBlur_1301_35376",stdDeviation:5})),f.createElement("filter",{id:"c",width:73.289,height:73.288,x:41.018,y:106.391,colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse"},f.createElement("feFlood",{floodOpacity:0,result:"BackgroundImageFix"}),f.createElement("feBlend",{in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),f.createElement("feColorMatrix",{in:"SourceAlpha",result:"hardAlpha",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"}),f.createElement("feOffset",null),f.createElement("feGaussianBlur",{stdDeviation:1.917}),f.createElement("feComposite",{in2:"hardAlpha",k2:-1,k3:1,operator:"arithmetic"}),f.createElement("feColorMatrix",{values:"0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.8 0"}),f.createElement("feBlend",{in2:"shape",result:"effect1_innerShadow_1301_35376"})))))}const m=f.forwardRef(p),h=l.p+"static/media/error.ca9e31d5d3dc34da07e11a00f7af0842.svg"}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/599.c58caf58.chunk.js b/ydb/core/viewer/monitoring/static/js/599.c58caf58.chunk.js new file mode 100644 index 000000000000..2973d328eb2b --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/599.c58caf58.chunk.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[599],{40599:(e,t,n)=>{n.r(t),n.d(t,{getCLS:()=>p,getFCP:()=>y,getFID:()=>k,getLCP:()=>F,getTTFB:()=>C});var i,a,r,o,u=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:"v1-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},c=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if("first-input"===e&&!("PerformanceEventTiming"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},s=function(e,t){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(e(i),t&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},f=function(e){addEventListener("pageshow",(function(t){t.persisted&&e(t)}),!0)},d="function"==typeof WeakSet?new WeakSet:new Set,m=function(e,t,n){var i;return function(){t.value>=0&&(n||d.has(t)||"hidden"===document.visibilityState)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},p=function(e,t){var n,i=u("CLS",0),a=function(e){e.hadRecentInput||(i.value+=e.value,i.entries.push(e),n())},r=c("layout-shift",a);r&&(n=m(e,i,t),s((function(){r.takeRecords().map(a),n()})),f((function(){i=u("CLS",0),n=m(e,i,t)})))},v=-1,l=function(){return"hidden"===document.visibilityState?0:1/0},h=function(){s((function(e){var t=e.timeStamp;v=t}),!0)},g=function(){return v<0&&(v=l(),h(),f((function(){setTimeout((function(){v=l(),h()}),0)}))),{get timeStamp(){return v}}},y=function(e,t){var n,i=g(),a=u("FCP"),r=function(e){"first-contentful-paint"===e.name&&(s&&s.disconnect(),e.startTime<i.timeStamp&&(a.value=e.startTime,a.entries.push(e),d.add(a),n()))},o=performance.getEntriesByName("first-contentful-paint")[0],s=o?null:c("paint",r);(o||s)&&(n=m(e,a,t),o&&r(o),f((function(i){a=u("FCP"),n=m(e,a,t),requestAnimationFrame((function(){requestAnimationFrame((function(){a.value=performance.now()-i.timeStamp,d.add(a),n()}))}))})))},S={passive:!0,capture:!0},E=new Date,w=function(e,t){i||(i=t,a=e,r=new Date,T(removeEventListener),L())},L=function(){if(a>=0&&a<r-E){var e={entryType:"first-input",name:i.type,target:i.target,cancelable:i.cancelable,startTime:i.timeStamp,processingStart:i.timeStamp+a};o.forEach((function(t){t(e)})),o=[]}},b=function(e){if(e.cancelable){var t=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,t){var n=function(){w(e,t),a()},i=function(){a()},a=function(){removeEventListener("pointerup",n,S),removeEventListener("pointercancel",i,S)};addEventListener("pointerup",n,S),addEventListener("pointercancel",i,S)}(t,e):w(t,e)}},T=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(t){return e(t,b,S)}))},k=function(e,t){var n,r=g(),p=u("FID"),v=function(e){e.startTime<r.timeStamp&&(p.value=e.processingStart-e.startTime,p.entries.push(e),d.add(p),n())},l=c("first-input",v);n=m(e,p,t),l&&s((function(){l.takeRecords().map(v),l.disconnect()}),!0),l&&f((function(){var r;p=u("FID"),n=m(e,p,t),o=[],a=-1,i=null,T(addEventListener),r=v,o.push(r),L()}))},F=function(e,t){var n,i=g(),a=u("LCP"),r=function(e){var t=e.startTime;t<i.timeStamp&&(a.value=t,a.entries.push(e)),n()},o=c("largest-contentful-paint",r);if(o){n=m(e,a,t);var p=function(){d.has(a)||(o.takeRecords().map(r),o.disconnect(),d.add(a),n())};["keydown","click"].forEach((function(e){addEventListener(e,p,{once:!0,capture:!0})})),s(p,!0),f((function(i){a=u("LCP"),n=m(e,a,t),requestAnimationFrame((function(){requestAnimationFrame((function(){a.value=performance.now()-i.timeStamp,d.add(a),n()}))}))}))}},C=function(e){var t,n=u("TTFB");t=function(){try{var t=performance.getEntriesByType("navigation")[0]||function(){var e=performance.timing,t={entryType:"navigation",startTime:0};for(var n in e)"navigationStart"!==n&&"toJSON"!==n&&(t[n]=Math.max(e[n]-e.navigationStart,0));return t}();if(n.value=n.delta=t.responseStart,n.value<0)return;n.entries=[t],e(n)}catch(e){}},"complete"===document.readyState?setTimeout(t,0):addEventListener("pageshow",t)}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6044.2de9962d.chunk.js b/ydb/core/viewer/monitoring/static/js/6044.2de9962d.chunk.js new file mode 100644 index 000000000000..0290bd2ea3bf --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6044.2de9962d.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 6044.2de9962d.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6044],{96044:(x,e,i)=>{i.r(e),i.d(e,{conf:()=>d,language:()=>f});var d={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},f={defaultToken:"",tokenPostfix:".sol",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["pragma","solidity","contract","library","using","struct","function","modifier","constructor","address","string","bool","Int","Uint","Byte","Fixed","Ufixed","int","int8","int16","int24","int32","int40","int48","int56","int64","int72","int80","int88","int96","int104","int112","int120","int128","int136","int144","int152","int160","int168","int176","int184","int192","int200","int208","int216","int224","int232","int240","int248","int256","uint","uint8","uint16","uint24","uint32","uint40","uint48","uint56","uint64","uint72","uint80","uint88","uint96","uint104","uint112","uint120","uint128","uint136","uint144","uint152","uint160","uint168","uint176","uint184","uint192","uint200","uint208","uint216","uint224","uint232","uint240","uint248","uint256","byte","bytes","bytes1","bytes2","bytes3","bytes4","bytes5","bytes6","bytes7","bytes8","bytes9","bytes10","bytes11","bytes12","bytes13","bytes14","bytes15","bytes16","bytes17","bytes18","bytes19","bytes20","bytes21","bytes22","bytes23","bytes24","bytes25","bytes26","bytes27","bytes28","bytes29","bytes30","bytes31","bytes32","fixed","fixed0x8","fixed0x16","fixed0x24","fixed0x32","fixed0x40","fixed0x48","fixed0x56","fixed0x64","fixed0x72","fixed0x80","fixed0x88","fixed0x96","fixed0x104","fixed0x112","fixed0x120","fixed0x128","fixed0x136","fixed0x144","fixed0x152","fixed0x160","fixed0x168","fixed0x176","fixed0x184","fixed0x192","fixed0x200","fixed0x208","fixed0x216","fixed0x224","fixed0x232","fixed0x240","fixed0x248","fixed0x256","fixed8x8","fixed8x16","fixed8x24","fixed8x32","fixed8x40","fixed8x48","fixed8x56","fixed8x64","fixed8x72","fixed8x80","fixed8x88","fixed8x96","fixed8x104","fixed8x112","fixed8x120","fixed8x128","fixed8x136","fixed8x144","fixed8x152","fixed8x160","fixed8x168","fixed8x176","fixed8x184","fixed8x192","fixed8x200","fixed8x208","fixed8x216","fixed8x224","fixed8x232","fixed8x240","fixed8x248","fixed16x8","fixed16x16","fixed16x24","fixed16x32","fixed16x40","fixed16x48","fixed16x56","fixed16x64","fixed16x72","fixed16x80","fixed16x88","fixed16x96","fixed16x104","fixed16x112","fixed16x120","fixed16x128","fixed16x136","fixed16x144","fixed16x152","fixed16x160","fixed16x168","fixed16x176","fixed16x184","fixed16x192","fixed16x200","fixed16x208","fixed16x216","fixed16x224","fixed16x232","fixed16x240","fixed24x8","fixed24x16","fixed24x24","fixed24x32","fixed24x40","fixed24x48","fixed24x56","fixed24x64","fixed24x72","fixed24x80","fixed24x88","fixed24x96","fixed24x104","fixed24x112","fixed24x120","fixed24x128","fixed24x136","fixed24x144","fixed24x152","fixed24x160","fixed24x168","fixed24x176","fixed24x184","fixed24x192","fixed24x200","fixed24x208","fixed24x216","fixed24x224","fixed24x232","fixed32x8","fixed32x16","fixed32x24","fixed32x32","fixed32x40","fixed32x48","fixed32x56","fixed32x64","fixed32x72","fixed32x80","fixed32x88","fixed32x96","fixed32x104","fixed32x112","fixed32x120","fixed32x128","fixed32x136","fixed32x144","fixed32x152","fixed32x160","fixed32x168","fixed32x176","fixed32x184","fixed32x192","fixed32x200","fixed32x208","fixed32x216","fixed32x224","fixed40x8","fixed40x16","fixed40x24","fixed40x32","fixed40x40","fixed40x48","fixed40x56","fixed40x64","fixed40x72","fixed40x80","fixed40x88","fixed40x96","fixed40x104","fixed40x112","fixed40x120","fixed40x128","fixed40x136","fixed40x144","fixed40x152","fixed40x160","fixed40x168","fixed40x176","fixed40x184","fixed40x192","fixed40x200","fixed40x208","fixed40x216","fixed48x8","fixed48x16","fixed48x24","fixed48x32","fixed48x40","fixed48x48","fixed48x56","fixed48x64","fixed48x72","fixed48x80","fixed48x88","fixed48x96","fixed48x104","fixed48x112","fixed48x120","fixed48x128","fixed48x136","fixed48x144","fixed48x152","fixed48x160","fixed48x168","fixed48x176","fixed48x184","fixed48x192","fixed48x200","fixed48x208","fixed56x8","fixed56x16","fixed56x24","fixed56x32","fixed56x40","fixed56x48","fixed56x56","fixed56x64","fixed56x72","fixed56x80","fixed56x88","fixed56x96","fixed56x104","fixed56x112","fixed56x120","fixed56x128","fixed56x136","fixed56x144","fixed56x152","fixed56x160","fixed56x168","fixed56x176","fixed56x184","fixed56x192","fixed56x200","fixed64x8","fixed64x16","fixed64x24","fixed64x32","fixed64x40","fixed64x48","fixed64x56","fixed64x64","fixed64x72","fixed64x80","fixed64x88","fixed64x96","fixed64x104","fixed64x112","fixed64x120","fixed64x128","fixed64x136","fixed64x144","fixed64x152","fixed64x160","fixed64x168","fixed64x176","fixed64x184","fixed64x192","fixed72x8","fixed72x16","fixed72x24","fixed72x32","fixed72x40","fixed72x48","fixed72x56","fixed72x64","fixed72x72","fixed72x80","fixed72x88","fixed72x96","fixed72x104","fixed72x112","fixed72x120","fixed72x128","fixed72x136","fixed72x144","fixed72x152","fixed72x160","fixed72x168","fixed72x176","fixed72x184","fixed80x8","fixed80x16","fixed80x24","fixed80x32","fixed80x40","fixed80x48","fixed80x56","fixed80x64","fixed80x72","fixed80x80","fixed80x88","fixed80x96","fixed80x104","fixed80x112","fixed80x120","fixed80x128","fixed80x136","fixed80x144","fixed80x152","fixed80x160","fixed80x168","fixed80x176","fixed88x8","fixed88x16","fixed88x24","fixed88x32","fixed88x40","fixed88x48","fixed88x56","fixed88x64","fixed88x72","fixed88x80","fixed88x88","fixed88x96","fixed88x104","fixed88x112","fixed88x120","fixed88x128","fixed88x136","fixed88x144","fixed88x152","fixed88x160","fixed88x168","fixed96x8","fixed96x16","fixed96x24","fixed96x32","fixed96x40","fixed96x48","fixed96x56","fixed96x64","fixed96x72","fixed96x80","fixed96x88","fixed96x96","fixed96x104","fixed96x112","fixed96x120","fixed96x128","fixed96x136","fixed96x144","fixed96x152","fixed96x160","fixed104x8","fixed104x16","fixed104x24","fixed104x32","fixed104x40","fixed104x48","fixed104x56","fixed104x64","fixed104x72","fixed104x80","fixed104x88","fixed104x96","fixed104x104","fixed104x112","fixed104x120","fixed104x128","fixed104x136","fixed104x144","fixed104x152","fixed112x8","fixed112x16","fixed112x24","fixed112x32","fixed112x40","fixed112x48","fixed112x56","fixed112x64","fixed112x72","fixed112x80","fixed112x88","fixed112x96","fixed112x104","fixed112x112","fixed112x120","fixed112x128","fixed112x136","fixed112x144","fixed120x8","fixed120x16","fixed120x24","fixed120x32","fixed120x40","fixed120x48","fixed120x56","fixed120x64","fixed120x72","fixed120x80","fixed120x88","fixed120x96","fixed120x104","fixed120x112","fixed120x120","fixed120x128","fixed120x136","fixed128x8","fixed128x16","fixed128x24","fixed128x32","fixed128x40","fixed128x48","fixed128x56","fixed128x64","fixed128x72","fixed128x80","fixed128x88","fixed128x96","fixed128x104","fixed128x112","fixed128x120","fixed128x128","fixed136x8","fixed136x16","fixed136x24","fixed136x32","fixed136x40","fixed136x48","fixed136x56","fixed136x64","fixed136x72","fixed136x80","fixed136x88","fixed136x96","fixed136x104","fixed136x112","fixed136x120","fixed144x8","fixed144x16","fixed144x24","fixed144x32","fixed144x40","fixed144x48","fixed144x56","fixed144x64","fixed144x72","fixed144x80","fixed144x88","fixed144x96","fixed144x104","fixed144x112","fixed152x8","fixed152x16","fixed152x24","fixed152x32","fixed152x40","fixed152x48","fixed152x56","fixed152x64","fixed152x72","fixed152x80","fixed152x88","fixed152x96","fixed152x104","fixed160x8","fixed160x16","fixed160x24","fixed160x32","fixed160x40","fixed160x48","fixed160x56","fixed160x64","fixed160x72","fixed160x80","fixed160x88","fixed160x96","fixed168x8","fixed168x16","fixed168x24","fixed168x32","fixed168x40","fixed168x48","fixed168x56","fixed168x64","fixed168x72","fixed168x80","fixed168x88","fixed176x8","fixed176x16","fixed176x24","fixed176x32","fixed176x40","fixed176x48","fixed176x56","fixed176x64","fixed176x72","fixed176x80","fixed184x8","fixed184x16","fixed184x24","fixed184x32","fixed184x40","fixed184x48","fixed184x56","fixed184x64","fixed184x72","fixed192x8","fixed192x16","fixed192x24","fixed192x32","fixed192x40","fixed192x48","fixed192x56","fixed192x64","fixed200x8","fixed200x16","fixed200x24","fixed200x32","fixed200x40","fixed200x48","fixed200x56","fixed208x8","fixed208x16","fixed208x24","fixed208x32","fixed208x40","fixed208x48","fixed216x8","fixed216x16","fixed216x24","fixed216x32","fixed216x40","fixed224x8","fixed224x16","fixed224x24","fixed224x32","fixed232x8","fixed232x16","fixed232x24","fixed240x8","fixed240x16","fixed248x8","ufixed","ufixed0x8","ufixed0x16","ufixed0x24","ufixed0x32","ufixed0x40","ufixed0x48","ufixed0x56","ufixed0x64","ufixed0x72","ufixed0x80","ufixed0x88","ufixed0x96","ufixed0x104","ufixed0x112","ufixed0x120","ufixed0x128","ufixed0x136","ufixed0x144","ufixed0x152","ufixed0x160","ufixed0x168","ufixed0x176","ufixed0x184","ufixed0x192","ufixed0x200","ufixed0x208","ufixed0x216","ufixed0x224","ufixed0x232","ufixed0x240","ufixed0x248","ufixed0x256","ufixed8x8","ufixed8x16","ufixed8x24","ufixed8x32","ufixed8x40","ufixed8x48","ufixed8x56","ufixed8x64","ufixed8x72","ufixed8x80","ufixed8x88","ufixed8x96","ufixed8x104","ufixed8x112","ufixed8x120","ufixed8x128","ufixed8x136","ufixed8x144","ufixed8x152","ufixed8x160","ufixed8x168","ufixed8x176","ufixed8x184","ufixed8x192","ufixed8x200","ufixed8x208","ufixed8x216","ufixed8x224","ufixed8x232","ufixed8x240","ufixed8x248","ufixed16x8","ufixed16x16","ufixed16x24","ufixed16x32","ufixed16x40","ufixed16x48","ufixed16x56","ufixed16x64","ufixed16x72","ufixed16x80","ufixed16x88","ufixed16x96","ufixed16x104","ufixed16x112","ufixed16x120","ufixed16x128","ufixed16x136","ufixed16x144","ufixed16x152","ufixed16x160","ufixed16x168","ufixed16x176","ufixed16x184","ufixed16x192","ufixed16x200","ufixed16x208","ufixed16x216","ufixed16x224","ufixed16x232","ufixed16x240","ufixed24x8","ufixed24x16","ufixed24x24","ufixed24x32","ufixed24x40","ufixed24x48","ufixed24x56","ufixed24x64","ufixed24x72","ufixed24x80","ufixed24x88","ufixed24x96","ufixed24x104","ufixed24x112","ufixed24x120","ufixed24x128","ufixed24x136","ufixed24x144","ufixed24x152","ufixed24x160","ufixed24x168","ufixed24x176","ufixed24x184","ufixed24x192","ufixed24x200","ufixed24x208","ufixed24x216","ufixed24x224","ufixed24x232","ufixed32x8","ufixed32x16","ufixed32x24","ufixed32x32","ufixed32x40","ufixed32x48","ufixed32x56","ufixed32x64","ufixed32x72","ufixed32x80","ufixed32x88","ufixed32x96","ufixed32x104","ufixed32x112","ufixed32x120","ufixed32x128","ufixed32x136","ufixed32x144","ufixed32x152","ufixed32x160","ufixed32x168","ufixed32x176","ufixed32x184","ufixed32x192","ufixed32x200","ufixed32x208","ufixed32x216","ufixed32x224","ufixed40x8","ufixed40x16","ufixed40x24","ufixed40x32","ufixed40x40","ufixed40x48","ufixed40x56","ufixed40x64","ufixed40x72","ufixed40x80","ufixed40x88","ufixed40x96","ufixed40x104","ufixed40x112","ufixed40x120","ufixed40x128","ufixed40x136","ufixed40x144","ufixed40x152","ufixed40x160","ufixed40x168","ufixed40x176","ufixed40x184","ufixed40x192","ufixed40x200","ufixed40x208","ufixed40x216","ufixed48x8","ufixed48x16","ufixed48x24","ufixed48x32","ufixed48x40","ufixed48x48","ufixed48x56","ufixed48x64","ufixed48x72","ufixed48x80","ufixed48x88","ufixed48x96","ufixed48x104","ufixed48x112","ufixed48x120","ufixed48x128","ufixed48x136","ufixed48x144","ufixed48x152","ufixed48x160","ufixed48x168","ufixed48x176","ufixed48x184","ufixed48x192","ufixed48x200","ufixed48x208","ufixed56x8","ufixed56x16","ufixed56x24","ufixed56x32","ufixed56x40","ufixed56x48","ufixed56x56","ufixed56x64","ufixed56x72","ufixed56x80","ufixed56x88","ufixed56x96","ufixed56x104","ufixed56x112","ufixed56x120","ufixed56x128","ufixed56x136","ufixed56x144","ufixed56x152","ufixed56x160","ufixed56x168","ufixed56x176","ufixed56x184","ufixed56x192","ufixed56x200","ufixed64x8","ufixed64x16","ufixed64x24","ufixed64x32","ufixed64x40","ufixed64x48","ufixed64x56","ufixed64x64","ufixed64x72","ufixed64x80","ufixed64x88","ufixed64x96","ufixed64x104","ufixed64x112","ufixed64x120","ufixed64x128","ufixed64x136","ufixed64x144","ufixed64x152","ufixed64x160","ufixed64x168","ufixed64x176","ufixed64x184","ufixed64x192","ufixed72x8","ufixed72x16","ufixed72x24","ufixed72x32","ufixed72x40","ufixed72x48","ufixed72x56","ufixed72x64","ufixed72x72","ufixed72x80","ufixed72x88","ufixed72x96","ufixed72x104","ufixed72x112","ufixed72x120","ufixed72x128","ufixed72x136","ufixed72x144","ufixed72x152","ufixed72x160","ufixed72x168","ufixed72x176","ufixed72x184","ufixed80x8","ufixed80x16","ufixed80x24","ufixed80x32","ufixed80x40","ufixed80x48","ufixed80x56","ufixed80x64","ufixed80x72","ufixed80x80","ufixed80x88","ufixed80x96","ufixed80x104","ufixed80x112","ufixed80x120","ufixed80x128","ufixed80x136","ufixed80x144","ufixed80x152","ufixed80x160","ufixed80x168","ufixed80x176","ufixed88x8","ufixed88x16","ufixed88x24","ufixed88x32","ufixed88x40","ufixed88x48","ufixed88x56","ufixed88x64","ufixed88x72","ufixed88x80","ufixed88x88","ufixed88x96","ufixed88x104","ufixed88x112","ufixed88x120","ufixed88x128","ufixed88x136","ufixed88x144","ufixed88x152","ufixed88x160","ufixed88x168","ufixed96x8","ufixed96x16","ufixed96x24","ufixed96x32","ufixed96x40","ufixed96x48","ufixed96x56","ufixed96x64","ufixed96x72","ufixed96x80","ufixed96x88","ufixed96x96","ufixed96x104","ufixed96x112","ufixed96x120","ufixed96x128","ufixed96x136","ufixed96x144","ufixed96x152","ufixed96x160","ufixed104x8","ufixed104x16","ufixed104x24","ufixed104x32","ufixed104x40","ufixed104x48","ufixed104x56","ufixed104x64","ufixed104x72","ufixed104x80","ufixed104x88","ufixed104x96","ufixed104x104","ufixed104x112","ufixed104x120","ufixed104x128","ufixed104x136","ufixed104x144","ufixed104x152","ufixed112x8","ufixed112x16","ufixed112x24","ufixed112x32","ufixed112x40","ufixed112x48","ufixed112x56","ufixed112x64","ufixed112x72","ufixed112x80","ufixed112x88","ufixed112x96","ufixed112x104","ufixed112x112","ufixed112x120","ufixed112x128","ufixed112x136","ufixed112x144","ufixed120x8","ufixed120x16","ufixed120x24","ufixed120x32","ufixed120x40","ufixed120x48","ufixed120x56","ufixed120x64","ufixed120x72","ufixed120x80","ufixed120x88","ufixed120x96","ufixed120x104","ufixed120x112","ufixed120x120","ufixed120x128","ufixed120x136","ufixed128x8","ufixed128x16","ufixed128x24","ufixed128x32","ufixed128x40","ufixed128x48","ufixed128x56","ufixed128x64","ufixed128x72","ufixed128x80","ufixed128x88","ufixed128x96","ufixed128x104","ufixed128x112","ufixed128x120","ufixed128x128","ufixed136x8","ufixed136x16","ufixed136x24","ufixed136x32","ufixed136x40","ufixed136x48","ufixed136x56","ufixed136x64","ufixed136x72","ufixed136x80","ufixed136x88","ufixed136x96","ufixed136x104","ufixed136x112","ufixed136x120","ufixed144x8","ufixed144x16","ufixed144x24","ufixed144x32","ufixed144x40","ufixed144x48","ufixed144x56","ufixed144x64","ufixed144x72","ufixed144x80","ufixed144x88","ufixed144x96","ufixed144x104","ufixed144x112","ufixed152x8","ufixed152x16","ufixed152x24","ufixed152x32","ufixed152x40","ufixed152x48","ufixed152x56","ufixed152x64","ufixed152x72","ufixed152x80","ufixed152x88","ufixed152x96","ufixed152x104","ufixed160x8","ufixed160x16","ufixed160x24","ufixed160x32","ufixed160x40","ufixed160x48","ufixed160x56","ufixed160x64","ufixed160x72","ufixed160x80","ufixed160x88","ufixed160x96","ufixed168x8","ufixed168x16","ufixed168x24","ufixed168x32","ufixed168x40","ufixed168x48","ufixed168x56","ufixed168x64","ufixed168x72","ufixed168x80","ufixed168x88","ufixed176x8","ufixed176x16","ufixed176x24","ufixed176x32","ufixed176x40","ufixed176x48","ufixed176x56","ufixed176x64","ufixed176x72","ufixed176x80","ufixed184x8","ufixed184x16","ufixed184x24","ufixed184x32","ufixed184x40","ufixed184x48","ufixed184x56","ufixed184x64","ufixed184x72","ufixed192x8","ufixed192x16","ufixed192x24","ufixed192x32","ufixed192x40","ufixed192x48","ufixed192x56","ufixed192x64","ufixed200x8","ufixed200x16","ufixed200x24","ufixed200x32","ufixed200x40","ufixed200x48","ufixed200x56","ufixed208x8","ufixed208x16","ufixed208x24","ufixed208x32","ufixed208x40","ufixed208x48","ufixed216x8","ufixed216x16","ufixed216x24","ufixed216x32","ufixed216x40","ufixed224x8","ufixed224x16","ufixed224x24","ufixed224x32","ufixed232x8","ufixed232x16","ufixed232x24","ufixed240x8","ufixed240x16","ufixed248x8","event","enum","let","mapping","private","public","external","inherited","payable","true","false","var","import","constant","if","else","for","else","for","while","do","break","continue","throw","returns","return","suicide","new","is","this","super"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,floatsuffix:/[fFlL]?/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/\[\[.*\]\]/,"annotation"],[/^\s*#\w+/,"keyword"],[/int\d*/,"keyword"],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6044.2de9962d.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/6044.2de9962d.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6044.2de9962d.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/6058.7f474f92.chunk.js b/ydb/core/viewer/monitoring/static/js/6058.7f474f92.chunk.js new file mode 100644 index 000000000000..9f75f271348a --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6058.7f474f92.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6058],{46058:function(e,n,u){e.exports=function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=n(e);function r(e){return e>9?r(e%10):e}function t(e,n,u){return e+" "+function(e,n){return 2===n?function(e){return{m:"v",b:"v",d:"z"}[e.charAt(0)]+e.substring(1)}(e):e}({mm:"munutenn",MM:"miz",dd:"devezh"}[u],e)}var _={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:t,h:"un eur",hh:"%d eur",d:"un devezh",dd:t,M:"ur miz",MM:t,y:"ur bloaz",yy:function(e){switch(r(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 u.default.locale(_,null,!0),_}(u(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6060.eb821066.chunk.js b/ydb/core/viewer/monitoring/static/js/6060.eb821066.chunk.js deleted file mode 100644 index aba006f340ef..000000000000 --- a/ydb/core/viewer/monitoring/static/js/6060.eb821066.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6060],{16060:function(e,t,n){n.r(t),n.d(t,{setupMode:function(){return ps}});var r,i=n(24116),o=function(){function e(e){var t=this;this._defaults=e,this._worker=null,this._idleCheckInterval=window.setInterval((function(){return t._checkIfIdle()}),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange((function(){return t._stopWorker()}))}return e.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},e.prototype.dispose=function(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()},e.prototype._checkIfIdle=function(){this._worker&&(Date.now()-this._lastUsedTime>12e4&&this._stopWorker())},e.prototype._getClient=function(){return this._lastUsedTime=Date.now(),this._client||(this._worker=i.j6.createWebWorker({moduleId:"vs/language/css/cssWorker",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client},e.prototype.getLanguageServiceWorker=function(){for(var e,t=this,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return this._getClient().then((function(t){e=t})).then((function(e){return t._worker.withSyncedResources(n)})).then((function(t){return e}))},e}();!function(e){e[e.Ident=0]="Ident",e[e.AtKeyword=1]="AtKeyword",e[e.String=2]="String",e[e.BadString=3]="BadString",e[e.UnquotedString=4]="UnquotedString",e[e.Hash=5]="Hash",e[e.Num=6]="Num",e[e.Percentage=7]="Percentage",e[e.Dimension=8]="Dimension",e[e.UnicodeRange=9]="UnicodeRange",e[e.CDO=10]="CDO",e[e.CDC=11]="CDC",e[e.Colon=12]="Colon",e[e.SemiColon=13]="SemiColon",e[e.CurlyL=14]="CurlyL",e[e.CurlyR=15]="CurlyR",e[e.ParenthesisL=16]="ParenthesisL",e[e.ParenthesisR=17]="ParenthesisR",e[e.BracketL=18]="BracketL",e[e.BracketR=19]="BracketR",e[e.Whitespace=20]="Whitespace",e[e.Includes=21]="Includes",e[e.Dashmatch=22]="Dashmatch",e[e.SubstringOperator=23]="SubstringOperator",e[e.PrefixOperator=24]="PrefixOperator",e[e.SuffixOperator=25]="SuffixOperator",e[e.Delim=26]="Delim",e[e.EMS=27]="EMS",e[e.EXS=28]="EXS",e[e.Length=29]="Length",e[e.Angle=30]="Angle",e[e.Time=31]="Time",e[e.Freq=32]="Freq",e[e.Exclamation=33]="Exclamation",e[e.Resolution=34]="Resolution",e[e.Comma=35]="Comma",e[e.Charset=36]="Charset",e[e.EscapedJavaScript=37]="EscapedJavaScript",e[e.BadEscapedJavaScript=38]="BadEscapedJavaScript",e[e.Comment=39]="Comment",e[e.SingleLineComment=40]="SingleLineComment",e[e.EOF=41]="EOF",e[e.CustomToken=42]="CustomToken"}(r||(r={}));var s=function(){function e(e){this.source=e,this.len=e.length,this.position=0}return e.prototype.substring=function(e,t){return void 0===t&&(t=this.position),this.source.substring(e,t)},e.prototype.eos=function(){return this.len<=this.position},e.prototype.pos=function(){return this.position},e.prototype.goBackTo=function(e){this.position=e},e.prototype.goBack=function(e){this.position-=e},e.prototype.advance=function(e){this.position+=e},e.prototype.nextChar=function(){return this.source.charCodeAt(this.position++)||0},e.prototype.peekChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position+e)||0},e.prototype.lookbackChar=function(e){return void 0===e&&(e=0),this.source.charCodeAt(this.position-e)||0},e.prototype.advanceIfChar=function(e){return e===this.source.charCodeAt(this.position)&&(this.position++,!0)},e.prototype.advanceIfChars=function(e){if(this.position+e.length>this.source.length)return!1;for(var t=0;t<e.length;t++)if(this.source.charCodeAt(this.position+t)!==e[t])return!1;return this.advance(t),!0},e.prototype.advanceWhileChar=function(e){for(var t=this.position;this.position<this.len&&e(this.source.charCodeAt(this.position));)this.position++;return this.position-t},e}(),a="a".charCodeAt(0),l="f".charCodeAt(0),c="z".charCodeAt(0),d="A".charCodeAt(0),p="F".charCodeAt(0),h="Z".charCodeAt(0),m="0".charCodeAt(0),u="9".charCodeAt(0),f="~".charCodeAt(0),g="^".charCodeAt(0),b="=".charCodeAt(0),v="|".charCodeAt(0),y="-".charCodeAt(0),w="_".charCodeAt(0),x="%".charCodeAt(0),S="*".charCodeAt(0),k="(".charCodeAt(0),C=")".charCodeAt(0),F="<".charCodeAt(0),E=">".charCodeAt(0),z="@".charCodeAt(0),D="#".charCodeAt(0),T="$".charCodeAt(0),R="\\".charCodeAt(0),I="/".charCodeAt(0),M="\n".charCodeAt(0),P="\r".charCodeAt(0),_="\f".charCodeAt(0),N='"'.charCodeAt(0),A="'".charCodeAt(0),O=" ".charCodeAt(0),W="\t".charCodeAt(0),L=";".charCodeAt(0),j=":".charCodeAt(0),U="{".charCodeAt(0),V="}".charCodeAt(0),B="[".charCodeAt(0),$="]".charCodeAt(0),q=",".charCodeAt(0),K=".".charCodeAt(0),G="!".charCodeAt(0),J={};J[L]=r.SemiColon,J[j]=r.Colon,J[U]=r.CurlyL,J[V]=r.CurlyR,J[$]=r.BracketR,J[B]=r.BracketL,J[k]=r.ParenthesisL,J[C]=r.ParenthesisR,J[q]=r.Comma;var H={};H.em=r.EMS,H.ex=r.EXS,H.px=r.Length,H.cm=r.Length,H.mm=r.Length,H.in=r.Length,H.pt=r.Length,H.pc=r.Length,H.deg=r.Angle,H.rad=r.Angle,H.grad=r.Angle,H.ms=r.Time,H.s=r.Time,H.hz=r.Freq,H.khz=r.Freq,H["%"]=r.Percentage,H.fr=r.Percentage,H.dpi=r.Resolution,H.dpcm=r.Resolution;var X=function(){function e(){this.stream=new s(""),this.ignoreComment=!0,this.ignoreWhitespace=!0,this.inURL=!1}return e.prototype.setSource=function(e){this.stream=new s(e)},e.prototype.finishToken=function(e,t,n){return{offset:e,len:this.stream.pos()-e,type:t,text:n||this.stream.substring(e)}},e.prototype.substring=function(e,t){return this.stream.substring(e,e+t)},e.prototype.pos=function(){return this.stream.pos()},e.prototype.goBackTo=function(e){this.stream.goBackTo(e)},e.prototype.scanUnquotedString=function(){var e=this.stream.pos(),t=[];return this._unquotedString(t)?this.finishToken(e,r.UnquotedString,t.join("")):null},e.prototype.scan=function(){var e=this.trivia();if(null!==e)return e;var t=this.stream.pos();return this.stream.eos()?this.finishToken(t,r.EOF):this.scanNext(t)},e.prototype.scanNext=function(e){if(this.stream.advanceIfChars([F,G,y,y]))return this.finishToken(e,r.CDO);if(this.stream.advanceIfChars([y,y,E]))return this.finishToken(e,r.CDC);var t=[];if(this.ident(t))return this.finishToken(e,r.Ident,t.join(""));if(this.stream.advanceIfChar(z)){if(t=["@"],this._name(t)){var n=t.join("");return"@charset"===n?this.finishToken(e,r.Charset,n):this.finishToken(e,r.AtKeyword,n)}return this.finishToken(e,r.Delim)}if(this.stream.advanceIfChar(D))return t=["#"],this._name(t)?this.finishToken(e,r.Hash,t.join("")):this.finishToken(e,r.Delim);if(this.stream.advanceIfChar(G))return this.finishToken(e,r.Exclamation);if(this._number()){var i=this.stream.pos();if(t=[this.stream.substring(e,i)],this.stream.advanceIfChar(x))return this.finishToken(e,r.Percentage);if(this.ident(t)){var o=this.stream.substring(i).toLowerCase(),s=H[o];return"undefined"!==typeof s?this.finishToken(e,s,t.join("")):this.finishToken(e,r.Dimension,t.join(""))}return this.finishToken(e,r.Num)}t=[];var a=this._string(t);return null!==a?this.finishToken(e,a,t.join("")):"undefined"!==typeof(a=J[this.stream.peekChar()])?(this.stream.advance(1),this.finishToken(e,a)):this.stream.peekChar(0)===f&&this.stream.peekChar(1)===b?(this.stream.advance(2),this.finishToken(e,r.Includes)):this.stream.peekChar(0)===v&&this.stream.peekChar(1)===b?(this.stream.advance(2),this.finishToken(e,r.Dashmatch)):this.stream.peekChar(0)===S&&this.stream.peekChar(1)===b?(this.stream.advance(2),this.finishToken(e,r.SubstringOperator)):this.stream.peekChar(0)===g&&this.stream.peekChar(1)===b?(this.stream.advance(2),this.finishToken(e,r.PrefixOperator)):this.stream.peekChar(0)===T&&this.stream.peekChar(1)===b?(this.stream.advance(2),this.finishToken(e,r.SuffixOperator)):(this.stream.nextChar(),this.finishToken(e,r.Delim))},e.prototype.trivia=function(){for(;;){var e=this.stream.pos();if(this._whitespace()){if(!this.ignoreWhitespace)return this.finishToken(e,r.Whitespace)}else{if(!this.comment())return null;if(!this.ignoreComment)return this.finishToken(e,r.Comment)}}},e.prototype.comment=function(){if(this.stream.advanceIfChars([I,S])){var e=!1,t=!1;return this.stream.advanceWhileChar((function(n){return t&&n===I?(e=!0,!1):(t=n===S,!0)})),e&&this.stream.advance(1),!0}return!1},e.prototype._number=function(){var e,t=0;return this.stream.peekChar()===K&&(t=1),(e=this.stream.peekChar(t))>=m&&e<=u&&(this.stream.advance(t+1),this.stream.advanceWhileChar((function(e){return e>=m&&e<=u||0===t&&e===K})),!0)},e.prototype._newline=function(e){var t=this.stream.peekChar();switch(t){case P:case _:case M:return this.stream.advance(1),e.push(String.fromCharCode(t)),t===P&&this.stream.advanceIfChar(M)&&e.push("\n"),!0}return!1},e.prototype._escape=function(e,t){var n=this.stream.peekChar();if(n===R){this.stream.advance(1),n=this.stream.peekChar();for(var r=0;r<6&&(n>=m&&n<=u||n>=a&&n<=l||n>=d&&n<=p);)this.stream.advance(1),n=this.stream.peekChar(),r++;if(r>0){try{var i=parseInt(this.stream.substring(this.stream.pos()-r),16);i&&e.push(String.fromCharCode(i))}catch(o){}return n===O||n===W?this.stream.advance(1):this._newline([]),!0}if(n!==P&&n!==_&&n!==M)return this.stream.advance(1),e.push(String.fromCharCode(n)),!0;if(t)return this._newline(e)}return!1},e.prototype._stringChar=function(e,t){var n=this.stream.peekChar();return 0!==n&&n!==e&&n!==R&&n!==P&&n!==_&&n!==M&&(this.stream.advance(1),t.push(String.fromCharCode(n)),!0)},e.prototype._string=function(e){if(this.stream.peekChar()===A||this.stream.peekChar()===N){var t=this.stream.nextChar();for(e.push(String.fromCharCode(t));this._stringChar(t,e)||this._escape(e,!0););return this.stream.peekChar()===t?(this.stream.nextChar(),e.push(String.fromCharCode(t)),r.String):r.BadString}return null},e.prototype._unquotedChar=function(e){var t=this.stream.peekChar();return 0!==t&&t!==R&&t!==A&&t!==N&&t!==k&&t!==C&&t!==O&&t!==W&&t!==M&&t!==_&&t!==P&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._unquotedString=function(e){for(var t=!1;this._unquotedChar(e)||this._escape(e);)t=!0;return t},e.prototype._whitespace=function(){return this.stream.advanceWhileChar((function(e){return e===O||e===W||e===M||e===_||e===P}))>0},e.prototype._name=function(e){for(var t=!1;this._identChar(e)||this._escape(e);)t=!0;return t},e.prototype.ident=function(e){var t=this.stream.pos();if(this._minus(e)&&this._minus(e)){if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}}else if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}return this.stream.goBackTo(t),!1},e.prototype._identFirstChar=function(e){var t=this.stream.peekChar();return(t===w||t>=a&&t<=c||t>=d&&t<=h||t>=128&&t<=65535)&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._minus=function(e){var t=this.stream.peekChar();return t===y&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e.prototype._identChar=function(e){var t=this.stream.peekChar();return(t===w||t===y||t>=a&&t<=c||t>=d&&t<=h||t>=m&&t<=u||t>=128&&t<=65535)&&(this.stream.advance(1),e.push(String.fromCharCode(t)),!0)},e}();function Y(e,t){if(e.length<t.length)return!1;for(var n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0}function Z(e,t){var n=e.length-t.length;return n>0?e.lastIndexOf(t)===n:0===n&&e===t}function Q(e,t){return void 0===t&&(t=!0),e?e.length<140?e:e.slice(0,140)+(t?"\u2026":""):""}var ee,te,ne=function(){var e=function(t,n){return e=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])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();function re(e,t){var n=null;return!e||t<e.offset||t>e.end?null:(e.accept((function(e){return-1===e.offset&&-1===e.length||e.offset<=t&&e.end>=t&&(n?e.length<=n.length&&(n=e):n=e,!0)})),n)}function ie(e,t){for(var n=re(e,t),r=[];n;)r.unshift(n),n=n.parent;return r}!function(e){e[e.Undefined=0]="Undefined",e[e.Identifier=1]="Identifier",e[e.Stylesheet=2]="Stylesheet",e[e.Ruleset=3]="Ruleset",e[e.Selector=4]="Selector",e[e.SimpleSelector=5]="SimpleSelector",e[e.SelectorInterpolation=6]="SelectorInterpolation",e[e.SelectorCombinator=7]="SelectorCombinator",e[e.SelectorCombinatorParent=8]="SelectorCombinatorParent",e[e.SelectorCombinatorSibling=9]="SelectorCombinatorSibling",e[e.SelectorCombinatorAllSiblings=10]="SelectorCombinatorAllSiblings",e[e.SelectorCombinatorShadowPiercingDescendant=11]="SelectorCombinatorShadowPiercingDescendant",e[e.Page=12]="Page",e[e.PageBoxMarginBox=13]="PageBoxMarginBox",e[e.ClassSelector=14]="ClassSelector",e[e.IdentifierSelector=15]="IdentifierSelector",e[e.ElementNameSelector=16]="ElementNameSelector",e[e.PseudoSelector=17]="PseudoSelector",e[e.AttributeSelector=18]="AttributeSelector",e[e.Declaration=19]="Declaration",e[e.Declarations=20]="Declarations",e[e.Property=21]="Property",e[e.Expression=22]="Expression",e[e.BinaryExpression=23]="BinaryExpression",e[e.Term=24]="Term",e[e.Operator=25]="Operator",e[e.Value=26]="Value",e[e.StringLiteral=27]="StringLiteral",e[e.URILiteral=28]="URILiteral",e[e.EscapedValue=29]="EscapedValue",e[e.Function=30]="Function",e[e.NumericValue=31]="NumericValue",e[e.HexColorValue=32]="HexColorValue",e[e.MixinDeclaration=33]="MixinDeclaration",e[e.MixinReference=34]="MixinReference",e[e.VariableName=35]="VariableName",e[e.VariableDeclaration=36]="VariableDeclaration",e[e.Prio=37]="Prio",e[e.Interpolation=38]="Interpolation",e[e.NestedProperties=39]="NestedProperties",e[e.ExtendsReference=40]="ExtendsReference",e[e.SelectorPlaceholder=41]="SelectorPlaceholder",e[e.Debug=42]="Debug",e[e.If=43]="If",e[e.Else=44]="Else",e[e.For=45]="For",e[e.Each=46]="Each",e[e.While=47]="While",e[e.MixinContentReference=48]="MixinContentReference",e[e.MixinContentDeclaration=49]="MixinContentDeclaration",e[e.Media=50]="Media",e[e.Keyframe=51]="Keyframe",e[e.FontFace=52]="FontFace",e[e.Import=53]="Import",e[e.Namespace=54]="Namespace",e[e.Invocation=55]="Invocation",e[e.FunctionDeclaration=56]="FunctionDeclaration",e[e.ReturnStatement=57]="ReturnStatement",e[e.MediaQuery=58]="MediaQuery",e[e.FunctionParameter=59]="FunctionParameter",e[e.FunctionArgument=60]="FunctionArgument",e[e.KeyframeSelector=61]="KeyframeSelector",e[e.ViewPort=62]="ViewPort",e[e.Document=63]="Document",e[e.AtApplyRule=64]="AtApplyRule",e[e.CustomPropertyDeclaration=65]="CustomPropertyDeclaration",e[e.CustomPropertySet=66]="CustomPropertySet",e[e.ListEntry=67]="ListEntry",e[e.Supports=68]="Supports",e[e.SupportsCondition=69]="SupportsCondition",e[e.NamespacePrefix=70]="NamespacePrefix",e[e.GridLine=71]="GridLine",e[e.Plugin=72]="Plugin",e[e.UnknownAtRule=73]="UnknownAtRule",e[e.Use=74]="Use",e[e.ModuleConfiguration=75]="ModuleConfiguration",e[e.Forward=76]="Forward",e[e.ForwardVisibility=77]="ForwardVisibility",e[e.Module=78]="Module"}(ee||(ee={})),function(e){e[e.Mixin=0]="Mixin",e[e.Rule=1]="Rule",e[e.Variable=2]="Variable",e[e.Function=3]="Function",e[e.Keyframe=4]="Keyframe",e[e.Unknown=5]="Unknown",e[e.Module=6]="Module",e[e.Forward=7]="Forward",e[e.ForwardVisibility=8]="ForwardVisibility"}(te||(te={}));var oe,se=function(){function e(e,t,n){void 0===e&&(e=-1),void 0===t&&(t=-1),this.parent=null,this.offset=e,this.length=t,n&&(this.nodeType=n)}return Object.defineProperty(e.prototype,"end",{get:function(){return this.offset+this.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"type",{get:function(){return this.nodeType||ee.Undefined},set:function(e){this.nodeType=e},enumerable:!1,configurable:!0}),e.prototype.getTextProvider=function(){for(var e=this;e&&!e.textProvider;)e=e.parent;return e?e.textProvider:function(){return"unknown"}},e.prototype.getText=function(){return this.getTextProvider()(this.offset,this.length)},e.prototype.matches=function(e){return this.length===e.length&&this.getTextProvider()(this.offset,this.length)===e},e.prototype.startsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.offset,e.length)===e},e.prototype.endsWith=function(e){return this.length>=e.length&&this.getTextProvider()(this.end-e.length,e.length)===e},e.prototype.accept=function(e){if(e(this)&&this.children)for(var t=0,n=this.children;t<n.length;t++){n[t].accept(e)}},e.prototype.acceptVisitor=function(e){this.accept(e.visitNode.bind(e))},e.prototype.adoptChild=function(e,t){if(void 0===t&&(t=-1),e.parent&&e.parent.children){var n=e.parent.children.indexOf(e);n>=0&&e.parent.children.splice(n,1)}e.parent=this;var r=this.children;return r||(r=this.children=[]),-1!==t?r.splice(t,0,e):r.push(e),e},e.prototype.attachTo=function(e,t){return void 0===t&&(t=-1),e&&e.adoptChild(this,t),this},e.prototype.collectIssues=function(e){this.issues&&e.push.apply(e,this.issues)},e.prototype.addIssue=function(e){this.issues||(this.issues=[]),this.issues.push(e)},e.prototype.hasIssue=function(e){return Array.isArray(this.issues)&&this.issues.some((function(t){return t.getRule()===e}))},e.prototype.isErroneous=function(e){return void 0===e&&(e=!1),!!(this.issues&&this.issues.length>0)||e&&Array.isArray(this.children)&&this.children.some((function(e){return e.isErroneous(!0)}))},e.prototype.setNode=function(e,t,n){return void 0===n&&(n=-1),!!t&&(t.attachTo(this,n),this[e]=t,!0)},e.prototype.addChild=function(e){return!!e&&(this.children||(this.children=[]),e.attachTo(this),this.updateOffsetAndLength(e),!0)},e.prototype.updateOffsetAndLength=function(e){(e.offset<this.offset||-1===this.offset)&&(this.offset=e.offset);var t=e.end;(t>this.end||-1===this.length)&&(this.length=t-this.offset)},e.prototype.hasChildren=function(){return!!this.children&&this.children.length>0},e.prototype.getChildren=function(){return this.children?this.children.slice(0):[]},e.prototype.getChild=function(e){return this.children&&e<this.children.length?this.children[e]:null},e.prototype.addChildren=function(e){for(var t=0,n=e;t<n.length;t++){var r=n[t];this.addChild(r)}},e.prototype.findFirstChildBeforeOffset=function(e){if(this.children)for(var t=null,n=this.children.length-1;n>=0;n--)if((t=this.children[n]).offset<=e)return t;return null},e.prototype.findChildAtOffset=function(e,t){var n=this.findFirstChildBeforeOffset(e);return n&&n.end>=e?t&&n.findChildAtOffset(e,!0)||n:null},e.prototype.encloses=function(e){return this.offset<=e.offset&&this.offset+this.length>=e.offset+e.length},e.prototype.getParent=function(){for(var e=this.parent;e instanceof ae;)e=e.parent;return e},e.prototype.findParent=function(e){for(var t=this;t&&t.type!==e;)t=t.parent;return t},e.prototype.findAParent=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=this;n&&!e.some((function(e){return n.type===e}));)n=n.parent;return n},e.prototype.setData=function(e,t){this.options||(this.options={}),this.options[e]=t},e.prototype.getData=function(e){return this.options&&this.options.hasOwnProperty(e)?this.options[e]:null},e}(),ae=function(e){function t(t,n){void 0===n&&(n=-1);var r=e.call(this,-1,-1)||this;return r.attachTo(t,n),r.offset=-1,r.length=-1,r}return ne(t,e),t}(se),le=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.isCustomProperty=!1,r}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Identifier},enumerable:!1,configurable:!0}),t.prototype.containsInterpolation=function(){return this.hasChildren()},t}(se),ce=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Stylesheet},enumerable:!1,configurable:!0}),t}(se),de=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Declarations},enumerable:!1,configurable:!0}),t}(se),pe=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),t.prototype.getDeclarations=function(){return this.declarations},t.prototype.setDeclarations=function(e){return this.setNode("declarations",e)},t}(se),he=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Ruleset},enumerable:!1,configurable:!0}),t.prototype.getSelectors=function(){return this.selectors||(this.selectors=new ae(this)),this.selectors},t.prototype.isNested=function(){return!!this.parent&&null!==this.parent.findParent(ee.Declarations)},t}(pe),me=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Selector},enumerable:!1,configurable:!0}),t}(se),ue=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.SimpleSelector},enumerable:!1,configurable:!0}),t}(se),fe=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.AtApplyRule},enumerable:!1,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():""},t}(se),ge=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),t}(se),be=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.CustomPropertySet},enumerable:!1,configurable:!0}),t}(pe),ve=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.property=null,r}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Declaration},enumerable:!1,configurable:!0}),t.prototype.setProperty=function(e){return this.setNode("property",e)},t.prototype.getProperty=function(){return this.property},t.prototype.getFullPropertyName=function(){var e=this.property?this.property.getName():"unknown";if(this.parent instanceof de&&this.parent.getParent()instanceof Me){var n=this.parent.getParent().getParent();if(n instanceof t)return n.getFullPropertyName()+e}return e},t.prototype.getNonPrefixedPropertyName=function(){var e=this.getFullPropertyName();if(e&&"-"===e.charAt(0)){var t=e.indexOf("-",1);if(-1!==t)return e.substring(t+1)}return e},t.prototype.setValue=function(e){return this.setNode("value",e)},t.prototype.getValue=function(){return this.value},t.prototype.setNestedProperties=function(e){return this.setNode("nestedProperties",e)},t.prototype.getNestedProperties=function(){return this.nestedProperties},t}(ge),ye=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.CustomPropertyDeclaration},enumerable:!1,configurable:!0}),t.prototype.setPropertySet=function(e){return this.setNode("propertySet",e)},t.prototype.getPropertySet=function(){return this.propertySet},t}(ve),we=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Property},enumerable:!1,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode("identifier",e)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return function(e,t){var n=t.exec(e);return n&&n[0].length?e.substr(0,e.length-n[0].length):e}(this.getText(),/[_\+]+$/)},t.prototype.isCustomProperty=function(){return!!this.identifier&&this.identifier.isCustomProperty},t}(se),xe=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Function},enumerable:!1,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():""},t}(function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Invocation},enumerable:!1,configurable:!0}),t.prototype.getArguments=function(){return this.arguments||(this.arguments=new ae(this)),this.arguments},t}(se)),Se=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.FunctionParameter},enumerable:!1,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():""},t.prototype.setDefaultValue=function(e){return this.setNode("defaultValue",e,0)},t.prototype.getDefaultValue=function(){return this.defaultValue},t}(se),ke=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.FunctionArgument},enumerable:!1,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():""},t.prototype.setValue=function(e){return this.setNode("value",e,0)},t.prototype.getValue=function(){return this.value},t}(se),Ce=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.If},enumerable:!1,configurable:!0}),t.prototype.setExpression=function(e){return this.setNode("expression",e,0)},t.prototype.setElseClause=function(e){return this.setNode("elseClause",e)},t}(pe),Fe=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.For},enumerable:!1,configurable:!0}),t.prototype.setVariable=function(e){return this.setNode("variable",e,0)},t}(pe),Ee=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Each},enumerable:!1,configurable:!0}),t.prototype.getVariables=function(){return this.variables||(this.variables=new ae(this)),this.variables},t}(pe),ze=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.While},enumerable:!1,configurable:!0}),t}(pe),De=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Else},enumerable:!1,configurable:!0}),t}(pe),Te=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.FunctionDeclaration},enumerable:!1,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():""},t.prototype.getParameters=function(){return this.parameters||(this.parameters=new ae(this)),this.parameters},t}(pe),Re=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.ViewPort},enumerable:!1,configurable:!0}),t}(pe),Ie=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.FontFace},enumerable:!1,configurable:!0}),t}(pe),Me=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.NestedProperties},enumerable:!1,configurable:!0}),t}(pe),Pe=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Keyframe},enumerable:!1,configurable:!0}),t.prototype.setKeyword=function(e){return this.setNode("keyword",e,0)},t.prototype.getKeyword=function(){return this.keyword},t.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():""},t}(pe),_e=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.KeyframeSelector},enumerable:!1,configurable:!0}),t}(pe),Ne=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Import},enumerable:!1,configurable:!0}),t.prototype.setMedialist=function(e){return!!e&&(e.attachTo(this),!0)},t}(se),Ae=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Use},enumerable:!1,configurable:!0}),t.prototype.getParameters=function(){return this.parameters||(this.parameters=new ae(this)),this.parameters},t.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(se),Oe=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.ModuleConfiguration},enumerable:!1,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():""},t.prototype.setValue=function(e){return this.setNode("value",e,0)},t.prototype.getValue=function(){return this.value},t}(se),We=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Forward},enumerable:!1,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getMembers=function(){return this.members||(this.members=new ae(this)),this.members},t.prototype.getParameters=function(){return this.parameters||(this.parameters=new ae(this)),this.parameters},t}(se),Le=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.ForwardVisibility},enumerable:!1,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(se),je=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Namespace},enumerable:!1,configurable:!0}),t}(se),Ue=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Media},enumerable:!1,configurable:!0}),t}(pe),Ve=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Supports},enumerable:!1,configurable:!0}),t}(pe),Be=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Document},enumerable:!1,configurable:!0}),t}(pe),$e=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),t.prototype.getMediums=function(){return this.mediums||(this.mediums=new ae(this)),this.mediums},t}(se),qe=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.MediaQuery},enumerable:!1,configurable:!0}),t}(se),Ke=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.SupportsCondition},enumerable:!1,configurable:!0}),t}(se),Ge=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Page},enumerable:!1,configurable:!0}),t}(pe),Je=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.PageBoxMarginBox},enumerable:!1,configurable:!0}),t}(pe),He=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Expression},enumerable:!1,configurable:!0}),t}(se),Xe=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.BinaryExpression},enumerable:!1,configurable:!0}),t.prototype.setLeft=function(e){return this.setNode("left",e)},t.prototype.getLeft=function(){return this.left},t.prototype.setRight=function(e){return this.setNode("right",e)},t.prototype.getRight=function(){return this.right},t.prototype.setOperator=function(e){return this.setNode("operator",e)},t.prototype.getOperator=function(){return this.operator},t}(se),Ye=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Term},enumerable:!1,configurable:!0}),t.prototype.setOperator=function(e){return this.setNode("operator",e)},t.prototype.getOperator=function(){return this.operator},t.prototype.setExpression=function(e){return this.setNode("expression",e)},t.prototype.getExpression=function(){return this.expression},t}(se),Ze=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.AttributeSelector},enumerable:!1,configurable:!0}),t.prototype.setNamespacePrefix=function(e){return this.setNode("namespacePrefix",e)},t.prototype.getNamespacePrefix=function(){return this.namespacePrefix},t.prototype.setIdentifier=function(e){return this.setNode("identifier",e)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.setOperator=function(e){return this.setNode("operator",e)},t.prototype.getOperator=function(){return this.operator},t.prototype.setValue=function(e){return this.setNode("value",e)},t.prototype.getValue=function(){return this.value},t}(se),Qe=(function(e){function t(t,n){return e.call(this,t,n)||this}ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Operator},enumerable:!1,configurable:!0})}(se),function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.HexColorValue},enumerable:!1,configurable:!0}),t}(se)),et=".".charCodeAt(0),tt="0".charCodeAt(0),nt="9".charCodeAt(0),rt=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.NumericValue},enumerable:!1,configurable:!0}),t.prototype.getValue=function(){for(var e,t=this.getText(),n=0,r=0,i=t.length;r<i&&(e=t.charCodeAt(r),tt<=e&&e<=nt||e===et);r++)n+=1;return{value:t.substring(0,n),unit:n<t.length?t.substring(n):void 0}},t}(se),it=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.variable=null,r.value=null,r.needsSemicolon=!0,r}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.VariableDeclaration},enumerable:!1,configurable:!0}),t.prototype.setVariable=function(e){return!!e&&(e.attachTo(this),this.variable=e,!0)},t.prototype.getVariable=function(){return this.variable},t.prototype.getName=function(){return this.variable?this.variable.getName():""},t.prototype.setValue=function(e){return!!e&&(e.attachTo(this),this.value=e,!0)},t.prototype.getValue=function(){return this.value},t}(ge),ot=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Interpolation},enumerable:!1,configurable:!0}),t}(se),st=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.VariableName},enumerable:!1,configurable:!0}),t.prototype.getName=function(){return this.getText()},t}(se),at=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.ExtendsReference},enumerable:!1,configurable:!0}),t.prototype.getSelectors=function(){return this.selectors||(this.selectors=new ae(this)),this.selectors},t}(se),lt=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.MixinContentReference},enumerable:!1,configurable:!0}),t.prototype.getArguments=function(){return this.arguments||(this.arguments=new ae(this)),this.arguments},t}(se),ct=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.MixinContentReference},enumerable:!1,configurable:!0}),t.prototype.getParameters=function(){return this.parameters||(this.parameters=new ae(this)),this.parameters},t}(pe),dt=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.MixinReference},enumerable:!1,configurable:!0}),t.prototype.getNamespaces=function(){return this.namespaces||(this.namespaces=new ae(this)),this.namespaces},t.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():""},t.prototype.getArguments=function(){return this.arguments||(this.arguments=new ae(this)),this.arguments},t.prototype.setContent=function(e){return this.setNode("content",e)},t.prototype.getContent=function(){return this.content},t}(se),pt=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.MixinDeclaration},enumerable:!1,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t.prototype.getName=function(){return this.identifier?this.identifier.getText():""},t.prototype.getParameters=function(){return this.parameters||(this.parameters=new ae(this)),this.parameters},t.prototype.setGuard=function(e){return e&&(e.attachTo(this),this.guard=e),!1},t}(pe),ht=function(e){function t(t,n){return e.call(this,t,n)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.UnknownAtRule},enumerable:!1,configurable:!0}),t.prototype.setAtRuleName=function(e){this.atRuleName=e},t.prototype.getAtRuleName=function(){return this.atRuleName},t}(pe),mt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.ListEntry},enumerable:!1,configurable:!0}),t.prototype.setKey=function(e){return this.setNode("key",e,0)},t.prototype.setValue=function(e){return this.setNode("value",e,1)},t}(se),ut=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return ne(t,e),t.prototype.getConditions=function(){return this.conditions||(this.conditions=new ae(this)),this.conditions},t}(se),ft=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return ne(t,e),t.prototype.setVariable=function(e){return this.setNode("variable",e)},t}(se),gt=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return ne(t,e),Object.defineProperty(t.prototype,"type",{get:function(){return ee.Module},enumerable:!1,configurable:!0}),t.prototype.setIdentifier=function(e){return this.setNode("identifier",e,0)},t.prototype.getIdentifier=function(){return this.identifier},t}(se);!function(e){e[e.Ignore=1]="Ignore",e[e.Warning=2]="Warning",e[e.Error=4]="Error"}(oe||(oe={}));var bt=function(){function e(e,t,n,r,i,o){void 0===i&&(i=e.offset),void 0===o&&(o=e.length),this.node=e,this.rule=t,this.level=n,this.message=r||t.message,this.offset=i,this.length=o}return e.prototype.getRule=function(){return this.rule},e.prototype.getLevel=function(){return this.level},e.prototype.getOffset=function(){return this.offset},e.prototype.getLength=function(){return this.length},e.prototype.getNode=function(){return this.node},e.prototype.getMessage=function(){return this.message},e}(),vt=function(){function e(){this.entries=[]}return e.entries=function(t){var n=new e;return t.acceptVisitor(n),n.entries},e.prototype.visitNode=function(e){return e.isErroneous()&&e.collectIssues(this.entries),!0},e}();function yt(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return function(e,t){return 0===t.length?e:e.replace(/\{(\d+)\}/g,(function(e,n){var r=n[0];return"undefined"!==typeof t[r]?t[r]:e}))}(t,n)}function wt(e){return yt}var xt=wt(),St=function(e,t){this.id=e,this.message=t},kt={NumberExpected:new St("css-numberexpected",xt("expected.number","number expected")),ConditionExpected:new St("css-conditionexpected",xt("expected.condt","condition expected")),RuleOrSelectorExpected:new St("css-ruleorselectorexpected",xt("expected.ruleorselector","at-rule or selector expected")),DotExpected:new St("css-dotexpected",xt("expected.dot","dot expected")),ColonExpected:new St("css-colonexpected",xt("expected.colon","colon expected")),SemiColonExpected:new St("css-semicolonexpected",xt("expected.semicolon","semi-colon expected")),TermExpected:new St("css-termexpected",xt("expected.term","term expected")),ExpressionExpected:new St("css-expressionexpected",xt("expected.expression","expression expected")),OperatorExpected:new St("css-operatorexpected",xt("expected.operator","operator expected")),IdentifierExpected:new St("css-identifierexpected",xt("expected.ident","identifier expected")),PercentageExpected:new St("css-percentageexpected",xt("expected.percentage","percentage expected")),URIOrStringExpected:new St("css-uriorstringexpected",xt("expected.uriorstring","uri or string expected")),URIExpected:new St("css-uriexpected",xt("expected.uri","URI expected")),VariableNameExpected:new St("css-varnameexpected",xt("expected.varname","variable name expected")),VariableValueExpected:new St("css-varvalueexpected",xt("expected.varvalue","variable value expected")),PropertyValueExpected:new St("css-propertyvalueexpected",xt("expected.propvalue","property value expected")),LeftCurlyExpected:new St("css-lcurlyexpected",xt("expected.lcurly","{ expected")),RightCurlyExpected:new St("css-rcurlyexpected",xt("expected.rcurly","} expected")),LeftSquareBracketExpected:new St("css-rbracketexpected",xt("expected.lsquare","[ expected")),RightSquareBracketExpected:new St("css-lbracketexpected",xt("expected.rsquare","] expected")),LeftParenthesisExpected:new St("css-lparentexpected",xt("expected.lparen","( expected")),RightParenthesisExpected:new St("css-rparentexpected",xt("expected.rparent",") expected")),CommaExpected:new St("css-commaexpected",xt("expected.comma","comma expected")),PageDirectiveOrDeclarationExpected:new St("css-pagedirordeclexpected",xt("expected.pagedirordecl","page directive or declaraton expected")),UnknownAtRule:new St("css-unknownatrule",xt("unknown.atrule","at-rule unknown")),UnknownKeyword:new St("css-unknownkeyword",xt("unknown.keyword","unknown keyword")),SelectorExpected:new St("css-selectorexpected",xt("expected.selector","selector expected")),StringLiteralExpected:new St("css-stringliteralexpected",xt("expected.stringliteral","string literal expected")),WhitespaceExpected:new St("css-whitespaceexpected",xt("expected.whitespace","whitespace expected")),MediaQueryExpected:new St("css-mediaqueryexpected",xt("expected.mediaquery","media query expected")),IdentifierOrWildcardExpected:new St("css-idorwildcardexpected",xt("expected.idorwildcard","identifier or wildcard expected")),WildcardExpected:new St("css-wildcardexpected",xt("expected.wildcard","wildcard expected")),IdentifierOrVariableExpected:new St("css-idorvarexpected",xt("expected.idorvar","identifier or variable expected"))},Ct={E:"Edge",FF:"Firefox",S:"Safari",C:"Chrome",IE:"IE",O:"Opera"};function Ft(e){switch(e){case"experimental":return"\u26a0\ufe0f Property is experimental. Be cautious when using it.\ufe0f\n\n";case"nonstandard":return"\ud83d\udea8\ufe0f Property is nonstandard. Avoid using it.\n\n";case"obsolete":return"\ud83d\udea8\ufe0f\ufe0f\ufe0f Property is obsolete. Avoid using it.\n\n";default:return""}}function Et(e,t,n){var r;if(""!==(r=t?{kind:"markdown",value:Tt(e,n)}:{kind:"plaintext",value:Dt(e,n)}).value)return r}function zt(e){return(e=e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")).replace(/</g,"<").replace(/>/g,">")}function Dt(e,t){if(!e.description||""===e.description)return"";if("string"!==typeof e.description)return e.description.value;var n="";if(!1!==(null===t||void 0===t?void 0:t.documentation)){e.status&&(n+=Ft(e.status)),n+=e.description;var r=Rt(e.browsers);r&&(n+="\n("+r+")"),"syntax"in e&&(n+="\n\nSyntax: "+e.syntax)}return e.references&&e.references.length>0&&!1!==(null===t||void 0===t?void 0:t.references)&&(n.length>0&&(n+="\n\n"),n+=e.references.map((function(e){return e.name+": "+e.url})).join(" | ")),n}function Tt(e,t){if(!e.description||""===e.description)return"";var n="";if(!1!==(null===t||void 0===t?void 0:t.documentation)){e.status&&(n+=Ft(e.status)),n+=zt("string"===typeof e.description?e.description:e.description.value);var r=Rt(e.browsers);r&&(n+="\n\n("+zt(r)+")"),"syntax"in e&&e.syntax&&(n+="\n\nSyntax: "+zt(e.syntax))}return e.references&&e.references.length>0&&!1!==(null===t||void 0===t?void 0:t.references)&&(n.length>0&&(n+="\n\n"),n+=e.references.map((function(e){return"["+e.name+"]("+e.url+")"})).join(" | ")),n}function Rt(e){return void 0===e&&(e=[]),0===e.length?null:e.map((function(e){var t="",n=e.match(/([A-Z]+)(\d+)?/),r=n[1],i=n[2];return r in Ct&&(t+=Ct[r]),i&&(t+=" "+i),t})).join(", ")}var It=wt(),Mt=[{func:"rgb($red, $green, $blue)",desc:It("css.builtin.rgb","Creates a Color from red, green, and blue values.")},{func:"rgba($red, $green, $blue, $alpha)",desc:It("css.builtin.rgba","Creates a Color from red, green, blue, and alpha values.")},{func:"hsl($hue, $saturation, $lightness)",desc:It("css.builtin.hsl","Creates a Color from hue, saturation, and lightness values.")},{func:"hsla($hue, $saturation, $lightness, $alpha)",desc:It("css.builtin.hsla","Creates a Color from hue, saturation, lightness, and alpha values.")}],Pt={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:"#9370d8",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:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rebeccapurple:"#663399",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={currentColor:"The value of the 'color' property. The computed value of the 'currentColor' keyword is the computed value of the 'color' property. If the 'currentColor' keyword is set on the 'color' property itself, it is treated as 'color:inherit' at parse time.",transparent:"Fully transparent. This keyword can be considered a shorthand for rgba(0,0,0,0) which is its computed value."};function Nt(e,t){var n=e.getText().match(/^([-+]?[0-9]*\.?[0-9]+)(%?)$/);if(n){n[2]&&(t=100);var r=parseFloat(n[1])/t;if(r>=0&&r<=1)return r}throw new Error}function At(e){var t=e.getName();return!!t&&/^(rgb|rgba|hsl|hsla)$/gi.test(t)}var Ot=48,Wt=57,Lt=65,jt=97,Ut=102;function Vt(e){return e<Ot?0:e<=Wt?e-Ot:(e<jt&&(e+=jt-Lt),e>=jt&&e<=Ut?e-jt+10:0)}function Bt(e){if("#"!==e[0])return null;switch(e.length){case 4:return{red:17*Vt(e.charCodeAt(1))/255,green:17*Vt(e.charCodeAt(2))/255,blue:17*Vt(e.charCodeAt(3))/255,alpha:1};case 5:return{red:17*Vt(e.charCodeAt(1))/255,green:17*Vt(e.charCodeAt(2))/255,blue:17*Vt(e.charCodeAt(3))/255,alpha:17*Vt(e.charCodeAt(4))/255};case 7:return{red:(16*Vt(e.charCodeAt(1))+Vt(e.charCodeAt(2)))/255,green:(16*Vt(e.charCodeAt(3))+Vt(e.charCodeAt(4)))/255,blue:(16*Vt(e.charCodeAt(5))+Vt(e.charCodeAt(6)))/255,alpha:1};case 9:return{red:(16*Vt(e.charCodeAt(1))+Vt(e.charCodeAt(2)))/255,green:(16*Vt(e.charCodeAt(3))+Vt(e.charCodeAt(4)))/255,blue:(16*Vt(e.charCodeAt(5))+Vt(e.charCodeAt(6)))/255,alpha:(16*Vt(e.charCodeAt(7))+Vt(e.charCodeAt(8)))/255}}return null}function $t(e){if(e.type===ee.HexColorValue)return Bt(e.getText());if(e.type===ee.Function){var t=e,n=t.getName(),r=t.getArguments().getChildren();if(!n||r.length<3||r.length>4)return null;try{var i=4===r.length?Nt(r[3],1):1;if("rgb"===n||"rgba"===n)return{red:Nt(r[0],255),green:Nt(r[1],255),blue:Nt(r[2],255),alpha:i};if("hsl"===n||"hsla"===n){var o=function(e){var t=e.getText();if(t.match(/^([-+]?[0-9]*\.?[0-9]+)(deg)?$/))return parseFloat(t)%360;throw new Error}(r[0]);return function(e,t,n,r){if(void 0===r&&(r=1),0===t)return{red:n,green:n,blue:n,alpha:r};var i=function(e,t,n){for(;n<0;)n+=6;for(;n>=6;)n-=6;return n<1?(t-e)*n+e:n<3?t:n<4?(t-e)*(4-n)+e:e},o=n<=.5?n*(t+1):n+t-n*t,s=2*n-o;return{red:i(s,o,2+(e/=60)),green:i(s,o,e),blue:i(s,o,e-2),alpha:r}}(o,Nt(r[1],100),Nt(r[2],100),i)}}catch(d){return null}}else if(e.type===ee.Identifier){if(e.parent&&e.parent.type!==ee.Term)return null;var s=e.parent;if(s&&s.parent&&s.parent.type===ee.BinaryExpression){var a=s.parent;if(a.parent&&a.parent.type===ee.ListEntry&&a.parent.key===a)return null}var l=e.getText().toLowerCase();if("none"===l)return null;var c=Pt[l];if(c)return Bt(c)}return null}var qt={bottom:"Computes to \u2018100%\u2019 for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.",center:"Computes to \u201850%\u2019 (\u2018left 50%\u2019) for the horizontal position if the horizontal position is not otherwise specified, or \u201850%\u2019 (\u2018top 50%\u2019) for the vertical position if it is.",left:"Computes to \u20180%\u2019 for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.",right:"Computes to \u2018100%\u2019 for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.",top:"Computes to \u20180%\u2019 for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset."},Kt={"no-repeat":"Placed once and not repeated in this direction.",repeat:"Repeated in this direction as often as needed to cover the background painting area.","repeat-x":"Computes to \u2018repeat no-repeat\u2019.","repeat-y":"Computes to \u2018no-repeat repeat\u2019.",round:"Repeated as often as will fit within the background positioning area. If it doesn\u2019t fit a whole number of times, it is rescaled so that it does.",space:"Repeated as often as will fit within the background positioning area without being clipped and then the images are spaced out to fill the area."},Gt={dashed:"A series of square-ended dashes.",dotted:"A series of round dots.",double:"Two parallel solid lines with some space between them.",groove:"Looks as if it were carved in the canvas.",hidden:"Same as \u2018none\u2019, but has different behavior in the border conflict resolution rules for border-collapsed tables.",inset:"Looks as if the content on the inside of the border is sunken into the canvas.",none:"No border. Color and width are ignored.",outset:"Looks as if the content on the inside of the border is coming out of the canvas.",ridge:"Looks as if it were coming out of the canvas.",solid:"A single line segment."},Jt=["medium","thick","thin"],Ht={"border-box":"The background is painted within (clipped to) the border box.","content-box":"The background is painted within (clipped to) the content box.","padding-box":"The background is painted within (clipped to) the padding box."},Xt={"margin-box":"Uses the margin box as reference box.","fill-box":"Uses the object bounding box as reference box.","stroke-box":"Uses the stroke bounding box as reference box.","view-box":"Uses the nearest SVG viewport as reference box."},Yt={initial:"Represents the value specified as the property\u2019s initial value.",inherit:"Represents the computed value of the property on the element\u2019s parent.",unset:"Acts as either `inherit` or `initial`, depending on whether the property is inherited or not."},Zt={"url()":"Reference an image file by URL","image()":"Provide image fallbacks and annotations.","-webkit-image-set()":"Provide multiple resolutions. Remember to use unprefixed image-set() in addition.","image-set()":"Provide multiple resolutions of an image and const the UA decide which is most appropriate in a given situation.","-moz-element()":"Use an element in the document as an image. Remember to use unprefixed element() in addition.","element()":"Use an element in the document as an image.","cross-fade()":"Indicates the two images to be combined and how far along in the transition the combination is.","-webkit-gradient()":"Deprecated. Use modern linear-gradient() or radial-gradient() instead.","-webkit-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","-moz-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","-o-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","linear-gradient()":"A linear gradient is created by specifying a straight gradient line, and then several colors placed along that line.","-webkit-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","-moz-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","-o-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","repeating-linear-gradient()":"Same as linear-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop\u2019s position and the first specified color-stop\u2019s position.","-webkit-radial-gradient()":"Radial gradient. Remember to use unprefixed version in addition.","-moz-radial-gradient()":"Radial gradient. Remember to use unprefixed version in addition.","radial-gradient()":"Colors emerge from a single point and smoothly spread outward in a circular or elliptical shape.","-webkit-repeating-radial-gradient()":"Repeating radial gradient. Remember to use unprefixed version in addition.","-moz-repeating-radial-gradient()":"Repeating radial gradient. Remember to use unprefixed version in addition.","repeating-radial-gradient()":"Same as radial-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop\u2019s position and the first specified color-stop\u2019s position."},Qt={ease:"Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0).","ease-in":"Equivalent to cubic-bezier(0.42, 0, 1.0, 1.0).","ease-in-out":"Equivalent to cubic-bezier(0.42, 0, 0.58, 1.0).","ease-out":"Equivalent to cubic-bezier(0, 0, 0.58, 1.0).",linear:"Equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0).","step-end":"Equivalent to steps(1, end).","step-start":"Equivalent to steps(1, start).","steps()":"The first parameter specifies the number of intervals in the function. The second parameter, which is optional, is either the value \u201cstart\u201d or \u201cend\u201d.","cubic-bezier()":"Specifies a cubic-bezier curve. The four values specify points P1 and P2 of the curve as (x1, y1, x2, y2).","cubic-bezier(0.6, -0.28, 0.735, 0.045)":"Ease-in Back. Overshoots.","cubic-bezier(0.68, -0.55, 0.265, 1.55)":"Ease-in-out Back. Overshoots.","cubic-bezier(0.175, 0.885, 0.32, 1.275)":"Ease-out Back. Overshoots.","cubic-bezier(0.6, 0.04, 0.98, 0.335)":"Ease-in Circular. Based on half circle.","cubic-bezier(0.785, 0.135, 0.15, 0.86)":"Ease-in-out Circular. Based on half circle.","cubic-bezier(0.075, 0.82, 0.165, 1)":"Ease-out Circular. Based on half circle.","cubic-bezier(0.55, 0.055, 0.675, 0.19)":"Ease-in Cubic. Based on power of three.","cubic-bezier(0.645, 0.045, 0.355, 1)":"Ease-in-out Cubic. Based on power of three.","cubic-bezier(0.215, 0.610, 0.355, 1)":"Ease-out Cubic. Based on power of three.","cubic-bezier(0.95, 0.05, 0.795, 0.035)":"Ease-in Exponential. Based on two to the power ten.","cubic-bezier(1, 0, 0, 1)":"Ease-in-out Exponential. Based on two to the power ten.","cubic-bezier(0.19, 1, 0.22, 1)":"Ease-out Exponential. Based on two to the power ten.","cubic-bezier(0.47, 0, 0.745, 0.715)":"Ease-in Sine.","cubic-bezier(0.445, 0.05, 0.55, 0.95)":"Ease-in-out Sine.","cubic-bezier(0.39, 0.575, 0.565, 1)":"Ease-out Sine.","cubic-bezier(0.55, 0.085, 0.68, 0.53)":"Ease-in Quadratic. Based on power of two.","cubic-bezier(0.455, 0.03, 0.515, 0.955)":"Ease-in-out Quadratic. Based on power of two.","cubic-bezier(0.25, 0.46, 0.45, 0.94)":"Ease-out Quadratic. Based on power of two.","cubic-bezier(0.895, 0.03, 0.685, 0.22)":"Ease-in Quartic. Based on power of four.","cubic-bezier(0.77, 0, 0.175, 1)":"Ease-in-out Quartic. Based on power of four.","cubic-bezier(0.165, 0.84, 0.44, 1)":"Ease-out Quartic. Based on power of four.","cubic-bezier(0.755, 0.05, 0.855, 0.06)":"Ease-in Quintic. Based on power of five.","cubic-bezier(0.86, 0, 0.07, 1)":"Ease-in-out Quintic. Based on power of five.","cubic-bezier(0.23, 1, 0.320, 1)":"Ease-out Quintic. Based on power of five."},en={"circle()":"Defines a circle.","ellipse()":"Defines an ellipse.","inset()":"Defines an inset rectangle.","polygon()":"Defines a polygon."},tn={length:["em","rem","ex","px","cm","mm","in","pt","pc","ch","vw","vh","vmin","vmax"],angle:["deg","rad","grad","turn"],time:["ms","s"],frequency:["Hz","kHz"],resolution:["dpi","dpcm","dppx"],percentage:["%","fr"]},nn=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","const","video","wbr"],rn=["circle","clipPath","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","hatch","hatchpath","image","line","linearGradient","marker","mask","mesh","meshpatch","meshrow","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","solidcolor","stop","svg","switch","symbol","text","textPath","tspan","use","view"],on=["@bottom-center","@bottom-left","@bottom-left-corner","@bottom-right","@bottom-right-corner","@left-bottom","@left-middle","@left-top","@right-bottom","@right-middle","@right-top","@top-center","@top-left","@top-left-corner","@top-right","@top-right-corner"];function sn(e){return Object.keys(e).map((function(t){return e[t]}))}function an(e){return"undefined"!==typeof e}var ln=function(){function e(e){void 0===e&&(e=new X),this.keyframeRegex=/^@(\-(webkit|ms|moz|o)\-)?keyframes$/i,this.scanner=e,this.token={type:r.EOF,offset:-1,len:0,text:""},this.prevToken=void 0}return e.prototype.peekIdent=function(e){return r.Ident===this.token.type&&e.length===this.token.text.length&&e===this.token.text.toLowerCase()},e.prototype.peekKeyword=function(e){return r.AtKeyword===this.token.type&&e.length===this.token.text.length&&e===this.token.text.toLowerCase()},e.prototype.peekDelim=function(e){return r.Delim===this.token.type&&e===this.token.text},e.prototype.peek=function(e){return e===this.token.type},e.prototype.peekOne=function(e){return-1!==e.indexOf(this.token.type)},e.prototype.peekRegExp=function(e,t){return e===this.token.type&&t.test(this.token.text)},e.prototype.hasWhitespace=function(){return!!this.prevToken&&this.prevToken.offset+this.prevToken.len!==this.token.offset},e.prototype.consumeToken=function(){this.prevToken=this.token,this.token=this.scanner.scan()},e.prototype.mark=function(){return{prev:this.prevToken,curr:this.token,pos:this.scanner.pos()}},e.prototype.restoreAtMark=function(e){this.prevToken=e.prev,this.token=e.curr,this.scanner.goBackTo(e.pos)},e.prototype.try=function(e){var t=this.mark(),n=e();return n||(this.restoreAtMark(t),null)},e.prototype.acceptOneKeyword=function(e){if(r.AtKeyword===this.token.type)for(var t=0,n=e;t<n.length;t++){var i=n[t];if(i.length===this.token.text.length&&i===this.token.text.toLowerCase())return this.consumeToken(),!0}return!1},e.prototype.accept=function(e){return e===this.token.type&&(this.consumeToken(),!0)},e.prototype.acceptIdent=function(e){return!!this.peekIdent(e)&&(this.consumeToken(),!0)},e.prototype.acceptKeyword=function(e){return!!this.peekKeyword(e)&&(this.consumeToken(),!0)},e.prototype.acceptDelim=function(e){return!!this.peekDelim(e)&&(this.consumeToken(),!0)},e.prototype.acceptRegexp=function(e){return!!e.test(this.token.text)&&(this.consumeToken(),!0)},e.prototype._parseRegexp=function(e){var t=this.createNode(ee.Identifier);do{}while(this.acceptRegexp(e));return this.finish(t)},e.prototype.acceptUnquotedString=function(){var e=this.scanner.pos();this.scanner.goBackTo(this.token.offset);var t=this.scanner.scanUnquotedString();return t?(this.token=t,this.consumeToken(),!0):(this.scanner.goBackTo(e),!1)},e.prototype.resync=function(e,t){for(;;){if(e&&-1!==e.indexOf(this.token.type))return this.consumeToken(),!0;if(t&&-1!==t.indexOf(this.token.type))return!0;if(this.token.type===r.EOF)return!1;this.token=this.scanner.scan()}},e.prototype.createNode=function(e){return new se(this.token.offset,this.token.len,e)},e.prototype.create=function(e){return new e(this.token.offset,this.token.len)},e.prototype.finish=function(e,t,n,r){if(!(e instanceof ae)&&(t&&this.markError(e,t,n,r),this.prevToken)){var i=this.prevToken.offset+this.prevToken.len;e.length=i>e.offset?i-e.offset:0}return e},e.prototype.markError=function(e,t,n,r){this.token!==this.lastErrorToken&&(e.addIssue(new bt(e,t,oe.Error,void 0,this.token.offset,this.token.len)),this.lastErrorToken=this.token),(n||r)&&this.resync(n,r)},e.prototype.parseStylesheet=function(e){var t=e.version,n=e.getText();return this.internalParse(n,this._parseStylesheet,(function(r,i){if(e.version!==t)throw new Error("Underlying model has changed, AST is no longer valid");return n.substr(r,i)}))},e.prototype.internalParse=function(e,t,n){this.scanner.setSource(e),this.token=this.scanner.scan();var r=t.bind(this)();return r&&(r.textProvider=n||function(t,n){return e.substr(t,n)}),r},e.prototype._parseStylesheet=function(){for(var e=this.create(ce);e.addChild(this._parseStylesheetStart()););var t=!1;do{var n=!1;do{n=!1;var i=this._parseStylesheetStatement();for(i&&(e.addChild(i),n=!0,t=!1,this.peek(r.EOF)||!this._needsSemicolonAfter(i)||this.accept(r.SemiColon)||this.markError(e,kt.SemiColonExpected));this.accept(r.SemiColon)||this.accept(r.CDO)||this.accept(r.CDC);)n=!0,t=!1}while(n);if(this.peek(r.EOF))break;t||(this.peek(r.AtKeyword)?this.markError(e,kt.UnknownAtRule):this.markError(e,kt.RuleOrSelectorExpected),t=!0),this.consumeToken()}while(!this.peek(r.EOF));return this.finish(e)},e.prototype._parseStylesheetStart=function(){return this._parseCharset()},e.prototype._parseStylesheetStatement=function(e){return void 0===e&&(e=!1),this.peek(r.AtKeyword)?this._parseStylesheetAtStatement(e):this._parseRuleset(e)},e.prototype._parseStylesheetAtStatement=function(e){return void 0===e&&(e=!1),this._parseImport()||this._parseMedia(e)||this._parsePage()||this._parseFontFace()||this._parseKeyframe()||this._parseSupports(e)||this._parseViewPort()||this._parseNamespace()||this._parseDocument()||this._parseUnknownAtRule()},e.prototype._tryParseRuleset=function(e){var t=this.mark();if(this._parseSelector(e)){for(;this.accept(r.Comma)&&this._parseSelector(e););if(this.accept(r.CurlyL))return this.restoreAtMark(t),this._parseRuleset(e)}return this.restoreAtMark(t),null},e.prototype._parseRuleset=function(e){void 0===e&&(e=!1);var t=this.create(he),n=t.getSelectors();if(!n.addChild(this._parseSelector(e)))return null;for(;this.accept(r.Comma);)if(!n.addChild(this._parseSelector(e)))return this.finish(t,kt.SelectorExpected);return this._parseBody(t,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseRuleSetDeclarationAtStatement=function(){return this._parseAtApply()||this._parseUnknownAtRule()},e.prototype._parseRuleSetDeclaration=function(){return this.peek(r.AtKeyword)?this._parseRuleSetDeclarationAtStatement():this._parseDeclaration()},e.prototype._parseAtApply=function(){if(!this.peekKeyword("@apply"))return null;var e=this.create(fe);return this.consumeToken(),e.setIdentifier(this._parseIdent([te.Variable]))?this.finish(e):this.finish(e,kt.IdentifierExpected)},e.prototype._needsSemicolonAfter=function(e){switch(e.type){case ee.Keyframe:case ee.ViewPort:case ee.Media:case ee.Ruleset:case ee.Namespace:case ee.If:case ee.For:case ee.Each:case ee.While:case ee.MixinDeclaration:case ee.FunctionDeclaration:case ee.MixinContentDeclaration:return!1;case ee.ExtendsReference:case ee.MixinContentReference:case ee.ReturnStatement:case ee.MediaQuery:case ee.Debug:case ee.Import:case ee.AtApplyRule:case ee.CustomPropertyDeclaration:return!0;case ee.VariableDeclaration:return e.needsSemicolon;case ee.MixinReference:return!e.getContent();case ee.Declaration:return!e.getNestedProperties()}return!1},e.prototype._parseDeclarations=function(e){var t=this.create(de);if(!this.accept(r.CurlyL))return null;for(var n=e();t.addChild(n)&&!this.peek(r.CurlyR);){if(this._needsSemicolonAfter(n)&&!this.accept(r.SemiColon))return this.finish(t,kt.SemiColonExpected,[r.SemiColon,r.CurlyR]);for(n&&this.prevToken&&this.prevToken.type===r.SemiColon&&(n.semicolonPosition=this.prevToken.offset);this.accept(r.SemiColon););n=e()}return this.accept(r.CurlyR)?this.finish(t):this.finish(t,kt.RightCurlyExpected,[r.CurlyR,r.SemiColon])},e.prototype._parseBody=function(e,t){return e.setDeclarations(this._parseDeclarations(t))?this.finish(e):this.finish(e,kt.LeftCurlyExpected,[r.CurlyR,r.SemiColon])},e.prototype._parseSelector=function(e){var t=this.create(me),n=!1;for(e&&(n=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());)n=!0,t.addChild(this._parseCombinator());return n?this.finish(t):null},e.prototype._parseDeclaration=function(e){var t=this._tryParseCustomPropertyDeclaration(e);if(t)return t;var n=this.create(ve);return n.setProperty(this._parseProperty())?this.accept(r.Colon)?(this.prevToken&&(n.colonPosition=this.prevToken.offset),n.setValue(this._parseExpr())?(n.addChild(this._parsePrio()),this.peek(r.SemiColon)&&(n.semicolonPosition=this.token.offset),this.finish(n)):this.finish(n,kt.PropertyValueExpected)):this.finish(n,kt.ColonExpected,[r.Colon],e||[r.SemiColon]):null},e.prototype._tryParseCustomPropertyDeclaration=function(e){if(!this.peekRegExp(r.Ident,/^--/))return null;var t=this.create(ye);if(!t.setProperty(this._parseProperty()))return null;if(!this.accept(r.Colon))return this.finish(t,kt.ColonExpected,[r.Colon]);this.prevToken&&(t.colonPosition=this.prevToken.offset);var n=this.mark();if(this.peek(r.CurlyL)){var i=this.create(be),o=this._parseDeclarations(this._parseRuleSetDeclaration.bind(this));if(i.setDeclarations(o)&&!o.isErroneous(!0)&&(i.addChild(this._parsePrio()),this.peek(r.SemiColon)))return this.finish(i),t.setPropertySet(i),t.semicolonPosition=this.token.offset,this.finish(t);this.restoreAtMark(n)}var s=this._parseExpr();return s&&!s.isErroneous(!0)&&(this._parsePrio(),this.peekOne(e||[r.SemiColon]))?(t.setValue(s),t.semicolonPosition=this.token.offset,this.finish(t)):(this.restoreAtMark(n),t.addChild(this._parseCustomPropertyValue(e)),t.addChild(this._parsePrio()),an(t.colonPosition)&&this.token.offset===t.colonPosition+1?this.finish(t,kt.PropertyValueExpected):this.finish(t))},e.prototype._parseCustomPropertyValue=function(e){var t=this;void 0===e&&(e=[r.CurlyR]);var n=this.create(se),i=function(){return 0===s&&0===a&&0===l},o=function(){return-1!==e.indexOf(t.token.type)},s=0,a=0,l=0;e:for(;;){switch(this.token.type){case r.SemiColon:case r.Exclamation:if(i())break e;break;case r.CurlyL:s++;break;case r.CurlyR:if(--s<0){if(o()&&0===a&&0===l)break e;return this.finish(n,kt.LeftCurlyExpected)}break;case r.ParenthesisL:a++;break;case r.ParenthesisR:if(--a<0){if(o()&&0===l&&0===s)break e;return this.finish(n,kt.LeftParenthesisExpected)}break;case r.BracketL:l++;break;case r.BracketR:if(--l<0)return this.finish(n,kt.LeftSquareBracketExpected);break;case r.BadString:break e;case r.EOF:var c=kt.RightCurlyExpected;return l>0?c=kt.RightSquareBracketExpected:a>0&&(c=kt.RightParenthesisExpected),this.finish(n,c)}this.consumeToken()}return this.finish(n)},e.prototype._tryToParseDeclaration=function(e){var t=this.mark();return this._parseProperty()&&this.accept(r.Colon)?(this.restoreAtMark(t),this._parseDeclaration(e)):(this.restoreAtMark(t),null)},e.prototype._parseProperty=function(){var e=this.create(we),t=this.mark();return(this.acceptDelim("*")||this.acceptDelim("_"))&&this.hasWhitespace()?(this.restoreAtMark(t),null):e.setIdentifier(this._parsePropertyIdentifier())?this.finish(e):null},e.prototype._parsePropertyIdentifier=function(){return this._parseIdent()},e.prototype._parseCharset=function(){if(!this.peek(r.Charset))return null;var e=this.create(se);return this.consumeToken(),this.accept(r.String)?this.accept(r.SemiColon)?this.finish(e):this.finish(e,kt.SemiColonExpected):this.finish(e,kt.IdentifierExpected)},e.prototype._parseImport=function(){if(!this.peekKeyword("@import"))return null;var e=this.create(Ne);return this.consumeToken(),e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral())?(this.peek(r.SemiColon)||this.peek(r.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)):this.finish(e,kt.URIOrStringExpected)},e.prototype._parseNamespace=function(){if(!this.peekKeyword("@namespace"))return null;var e=this.create(je);return this.consumeToken(),e.addChild(this._parseURILiteral())||(e.addChild(this._parseIdent()),e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral()))?this.accept(r.SemiColon)?this.finish(e):this.finish(e,kt.SemiColonExpected):this.finish(e,kt.URIExpected,[r.SemiColon])},e.prototype._parseFontFace=function(){if(!this.peekKeyword("@font-face"))return null;var e=this.create(Ie);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseViewPort=function(){if(!this.peekKeyword("@-ms-viewport")&&!this.peekKeyword("@-o-viewport")&&!this.peekKeyword("@viewport"))return null;var e=this.create(Re);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parseKeyframe=function(){if(!this.peekRegExp(r.AtKeyword,this.keyframeRegex))return null;var e=this.create(Pe),t=this.create(se);return this.consumeToken(),e.setKeyword(this.finish(t)),t.matches("@-ms-keyframes")&&this.markError(t,kt.UnknownKeyword),e.setIdentifier(this._parseKeyframeIdent())?this._parseBody(e,this._parseKeyframeSelector.bind(this)):this.finish(e,kt.IdentifierExpected,[r.CurlyR])},e.prototype._parseKeyframeIdent=function(){return this._parseIdent([te.Keyframe])},e.prototype._parseKeyframeSelector=function(){var e=this.create(_e);if(!e.addChild(this._parseIdent())&&!this.accept(r.Percentage))return null;for(;this.accept(r.Comma);)if(!e.addChild(this._parseIdent())&&!this.accept(r.Percentage))return this.finish(e,kt.PercentageExpected);return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._tryParseKeyframeSelector=function(){var e=this.create(_e),t=this.mark();if(!e.addChild(this._parseIdent())&&!this.accept(r.Percentage))return null;for(;this.accept(r.Comma);)if(!e.addChild(this._parseIdent())&&!this.accept(r.Percentage))return this.restoreAtMark(t),null;return this.peek(r.CurlyL)?this._parseBody(e,this._parseRuleSetDeclaration.bind(this)):(this.restoreAtMark(t),null)},e.prototype._parseSupports=function(e){if(void 0===e&&(e=!1),!this.peekKeyword("@supports"))return null;var t=this.create(Ve);return this.consumeToken(),t.addChild(this._parseSupportsCondition()),this._parseBody(t,this._parseSupportsDeclaration.bind(this,e))},e.prototype._parseSupportsDeclaration=function(e){return void 0===e&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},e.prototype._parseSupportsCondition=function(){var e=this.create(Ke);if(this.acceptIdent("not"))e.addChild(this._parseSupportsConditionInParens());else if(e.addChild(this._parseSupportsConditionInParens()),this.peekRegExp(r.Ident,/^(and|or)$/i))for(var t=this.token.text.toLowerCase();this.acceptIdent(t);)e.addChild(this._parseSupportsConditionInParens());return this.finish(e)},e.prototype._parseSupportsConditionInParens=function(){var e=this.create(Ke);if(this.accept(r.ParenthesisL))return this.prevToken&&(e.lParent=this.prevToken.offset),e.addChild(this._tryToParseDeclaration([r.ParenthesisR]))||this._parseSupportsCondition()?this.accept(r.ParenthesisR)?(this.prevToken&&(e.rParent=this.prevToken.offset),this.finish(e)):this.finish(e,kt.RightParenthesisExpected,[r.ParenthesisR],[]):this.finish(e,kt.ConditionExpected);if(this.peek(r.Ident)){var t=this.mark();if(this.consumeToken(),!this.hasWhitespace()&&this.accept(r.ParenthesisL)){for(var n=1;this.token.type!==r.EOF&&0!==n;)this.token.type===r.ParenthesisL?n++:this.token.type===r.ParenthesisR&&n--,this.consumeToken();return this.finish(e)}this.restoreAtMark(t)}return this.finish(e,kt.LeftParenthesisExpected,[],[r.ParenthesisL])},e.prototype._parseMediaDeclaration=function(e){return void 0===e&&(e=!1),e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)},e.prototype._parseMedia=function(e){if(void 0===e&&(e=!1),!this.peekKeyword("@media"))return null;var t=this.create(Ue);return this.consumeToken(),t.addChild(this._parseMediaQueryList())?this._parseBody(t,this._parseMediaDeclaration.bind(this,e)):this.finish(t,kt.MediaQueryExpected)},e.prototype._parseMediaQueryList=function(){var e=this.create($e);if(!e.addChild(this._parseMediaQuery([r.CurlyL])))return this.finish(e,kt.MediaQueryExpected);for(;this.accept(r.Comma);)if(!e.addChild(this._parseMediaQuery([r.CurlyL])))return this.finish(e,kt.MediaQueryExpected);return this.finish(e)},e.prototype._parseMediaQuery=function(e){var t=this.create(qe),n=!0,i=!1;if(!this.peek(r.ParenthesisL)){if(this.acceptIdent("only")||this.acceptIdent("not"),!t.addChild(this._parseIdent()))return null;i=!0,n=this.acceptIdent("and")}for(;n;)if(t.addChild(this._parseMediaContentStart()))n=this.acceptIdent("and");else{if(!this.accept(r.ParenthesisL))return i?this.finish(t,kt.LeftParenthesisExpected,[],e):null;if(!t.addChild(this._parseMediaFeatureName()))return this.finish(t,kt.IdentifierExpected,[],e);if(this.accept(r.Colon)&&!t.addChild(this._parseExpr()))return this.finish(t,kt.TermExpected,[],e);if(!this.accept(r.ParenthesisR))return this.finish(t,kt.RightParenthesisExpected,[],e);n=this.acceptIdent("and")}return this.finish(t)},e.prototype._parseMediaContentStart=function(){return null},e.prototype._parseMediaFeatureName=function(){return this._parseIdent()},e.prototype._parseMedium=function(){var e=this.create(se);return e.addChild(this._parseIdent())?this.finish(e):null},e.prototype._parsePageDeclaration=function(){return this._parsePageMarginBox()||this._parseRuleSetDeclaration()},e.prototype._parsePage=function(){if(!this.peekKeyword("@page"))return null;var e=this.create(Ge);if(this.consumeToken(),e.addChild(this._parsePageSelector()))for(;this.accept(r.Comma);)if(!e.addChild(this._parsePageSelector()))return this.finish(e,kt.IdentifierExpected);return this._parseBody(e,this._parsePageDeclaration.bind(this))},e.prototype._parsePageMarginBox=function(){if(!this.peek(r.AtKeyword))return null;var e=this.create(Je);return this.acceptOneKeyword(on)||this.markError(e,kt.UnknownAtRule,[],[r.CurlyL]),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},e.prototype._parsePageSelector=function(){if(!this.peek(r.Ident)&&!this.peek(r.Colon))return null;var e=this.create(se);return e.addChild(this._parseIdent()),this.accept(r.Colon)&&!e.addChild(this._parseIdent())?this.finish(e,kt.IdentifierExpected):this.finish(e)},e.prototype._parseDocument=function(){if(!this.peekKeyword("@-moz-document"))return null;var e=this.create(Be);return this.consumeToken(),this.resync([],[r.CurlyL]),this._parseBody(e,this._parseStylesheetStatement.bind(this))},e.prototype._parseUnknownAtRule=function(){if(!this.peek(r.AtKeyword))return null;var e=this.create(ht);e.addChild(this._parseUnknownAtRuleName());var t=0,n=0,i=0,o=0;e:for(;;){switch(this.token.type){case r.SemiColon:if(0===n&&0===i&&0===o)break e;break;case r.EOF:return n>0?this.finish(e,kt.RightCurlyExpected):o>0?this.finish(e,kt.RightSquareBracketExpected):i>0?this.finish(e,kt.RightParenthesisExpected):this.finish(e);case r.CurlyL:t++,n++;break;case r.CurlyR:if(n--,t>0&&0===n){if(this.consumeToken(),o>0)return this.finish(e,kt.RightSquareBracketExpected);if(i>0)return this.finish(e,kt.RightParenthesisExpected);break e}if(n<0){if(0===i&&0===o)break e;return this.finish(e,kt.LeftCurlyExpected)}break;case r.ParenthesisL:i++;break;case r.ParenthesisR:if(--i<0)return this.finish(e,kt.LeftParenthesisExpected);break;case r.BracketL:o++;break;case r.BracketR:if(--o<0)return this.finish(e,kt.LeftSquareBracketExpected)}this.consumeToken()}return e},e.prototype._parseUnknownAtRuleName=function(){var e=this.create(se);return this.accept(r.AtKeyword)?this.finish(e):e},e.prototype._parseOperator=function(){if(this.peekDelim("/")||this.peekDelim("*")||this.peekDelim("+")||this.peekDelim("-")||this.peek(r.Dashmatch)||this.peek(r.Includes)||this.peek(r.SubstringOperator)||this.peek(r.PrefixOperator)||this.peek(r.SuffixOperator)||this.peekDelim("=")){var e=this.createNode(ee.Operator);return this.consumeToken(),this.finish(e)}return null},e.prototype._parseUnaryOperator=function(){if(!this.peekDelim("+")&&!this.peekDelim("-"))return null;var e=this.create(se);return this.consumeToken(),this.finish(e)},e.prototype._parseCombinator=function(){if(this.peekDelim(">")){var e=this.create(se);this.consumeToken();var t=this.mark();if(!this.hasWhitespace()&&this.acceptDelim(">")){if(!this.hasWhitespace()&&this.acceptDelim(">"))return e.type=ee.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return e.type=ee.SelectorCombinatorParent,this.finish(e)}if(this.peekDelim("+")){e=this.create(se);return this.consumeToken(),e.type=ee.SelectorCombinatorSibling,this.finish(e)}if(this.peekDelim("~")){e=this.create(se);return this.consumeToken(),e.type=ee.SelectorCombinatorAllSiblings,this.finish(e)}if(this.peekDelim("/")){e=this.create(se);this.consumeToken();t=this.mark();if(!this.hasWhitespace()&&this.acceptIdent("deep")&&!this.hasWhitespace()&&this.acceptDelim("/"))return e.type=ee.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return null},e.prototype._parseSimpleSelector=function(){var e=this.create(ue),t=0;for(e.addChild(this._parseElementName())&&t++;(0===t||!this.hasWhitespace())&&e.addChild(this._parseSimpleSelectorBody());)t++;return t>0?this.finish(e):null},e.prototype._parseSimpleSelectorBody=function(){return this._parsePseudo()||this._parseHash()||this._parseClass()||this._parseAttrib()},e.prototype._parseSelectorIdent=function(){return this._parseIdent()},e.prototype._parseHash=function(){if(!this.peek(r.Hash)&&!this.peekDelim("#"))return null;var e=this.createNode(ee.IdentifierSelector);if(this.acceptDelim("#")){if(this.hasWhitespace()||!e.addChild(this._parseSelectorIdent()))return this.finish(e,kt.IdentifierExpected)}else this.consumeToken();return this.finish(e)},e.prototype._parseClass=function(){if(!this.peekDelim("."))return null;var e=this.createNode(ee.ClassSelector);return this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseSelectorIdent())?this.finish(e,kt.IdentifierExpected):this.finish(e)},e.prototype._parseElementName=function(){var e=this.mark(),t=this.createNode(ee.ElementNameSelector);return t.addChild(this._parseNamespacePrefix()),t.addChild(this._parseSelectorIdent())||this.acceptDelim("*")?this.finish(t):(this.restoreAtMark(e),null)},e.prototype._parseNamespacePrefix=function(){var e=this.mark(),t=this.createNode(ee.NamespacePrefix);return!t.addChild(this._parseIdent())&&this.acceptDelim("*"),this.acceptDelim("|")?this.finish(t):(this.restoreAtMark(e),null)},e.prototype._parseAttrib=function(){if(!this.peek(r.BracketL))return null;var e=this.create(Ze);return this.consumeToken(),e.setNamespacePrefix(this._parseNamespacePrefix()),e.setIdentifier(this._parseIdent())?(e.setOperator(this._parseOperator())&&(e.setValue(this._parseBinaryExpr()),this.acceptIdent("i")),this.accept(r.BracketR)?this.finish(e):this.finish(e,kt.RightSquareBracketExpected)):this.finish(e,kt.IdentifierExpected)},e.prototype._parsePseudo=function(){var e=this,t=this._tryParsePseudoIdentifier();if(t){if(!this.hasWhitespace()&&this.accept(r.ParenthesisL)){if(t.addChild(this.try((function(){var t=e.create(se);if(!t.addChild(e._parseSelector(!1)))return null;for(;e.accept(r.Comma)&&t.addChild(e._parseSelector(!1)););return e.peek(r.ParenthesisR)?e.finish(t):null}))||this._parseBinaryExpr()),!this.accept(r.ParenthesisR))return this.finish(t,kt.RightParenthesisExpected)}return this.finish(t)}return null},e.prototype._tryParsePseudoIdentifier=function(){if(!this.peek(r.Colon))return null;var e=this.mark(),t=this.createNode(ee.PseudoSelector);return this.consumeToken(),this.hasWhitespace()?(this.restoreAtMark(e),null):(this.accept(r.Colon),this.hasWhitespace()||!t.addChild(this._parseIdent())?this.finish(t,kt.IdentifierExpected):this.finish(t))},e.prototype._tryParsePrio=function(){var e=this.mark(),t=this._parsePrio();return t||(this.restoreAtMark(e),null)},e.prototype._parsePrio=function(){if(!this.peek(r.Exclamation))return null;var e=this.createNode(ee.Prio);return this.accept(r.Exclamation)&&this.acceptIdent("important")?this.finish(e):null},e.prototype._parseExpr=function(e){void 0===e&&(e=!1);var t=this.create(He);if(!t.addChild(this._parseBinaryExpr()))return null;for(;;){if(this.peek(r.Comma)){if(e)return this.finish(t);this.consumeToken()}if(!t.addChild(this._parseBinaryExpr()))break}return this.finish(t)},e.prototype._parseNamedLine=function(){if(!this.peek(r.BracketL))return null;var e=this.createNode(ee.GridLine);for(this.consumeToken();e.addChild(this._parseIdent()););return this.accept(r.BracketR)?this.finish(e):this.finish(e,kt.RightSquareBracketExpected)},e.prototype._parseBinaryExpr=function(e,t){var n=this.create(Xe);if(!n.setLeft(e||this._parseTerm()))return null;if(!n.setOperator(t||this._parseOperator()))return this.finish(n);if(!n.setRight(this._parseTerm()))return this.finish(n,kt.TermExpected);n=this.finish(n);var r=this._parseOperator();return r&&(n=this._parseBinaryExpr(n,r)),this.finish(n)},e.prototype._parseTerm=function(){var e=this.create(Ye);return e.setOperator(this._parseUnaryOperator()),e.setExpression(this._parseTermExpression())?this.finish(e):null},e.prototype._parseTermExpression=function(){return this._parseURILiteral()||this._parseFunction()||this._parseIdent()||this._parseStringLiteral()||this._parseNumeric()||this._parseHexColor()||this._parseOperation()||this._parseNamedLine()},e.prototype._parseOperation=function(){if(!this.peek(r.ParenthesisL))return null;var e=this.create(se);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(r.ParenthesisR)?this.finish(e):this.finish(e,kt.RightParenthesisExpected)},e.prototype._parseNumeric=function(){if(this.peek(r.Num)||this.peek(r.Percentage)||this.peek(r.Resolution)||this.peek(r.Length)||this.peek(r.EMS)||this.peek(r.EXS)||this.peek(r.Angle)||this.peek(r.Time)||this.peek(r.Dimension)||this.peek(r.Freq)){var e=this.create(rt);return this.consumeToken(),this.finish(e)}return null},e.prototype._parseStringLiteral=function(){if(!this.peek(r.String)&&!this.peek(r.BadString))return null;var e=this.createNode(ee.StringLiteral);return this.consumeToken(),this.finish(e)},e.prototype._parseURILiteral=function(){if(!this.peekRegExp(r.Ident,/^url(-prefix)?$/i))return null;var e=this.mark(),t=this.createNode(ee.URILiteral);return this.accept(r.Ident),this.hasWhitespace()||!this.peek(r.ParenthesisL)?(this.restoreAtMark(e),null):(this.scanner.inURL=!0,this.consumeToken(),t.addChild(this._parseURLArgument()),this.scanner.inURL=!1,this.accept(r.ParenthesisR)?this.finish(t):this.finish(t,kt.RightParenthesisExpected))},e.prototype._parseURLArgument=function(){var e=this.create(se);return this.accept(r.String)||this.accept(r.BadString)||this.acceptUnquotedString()?this.finish(e):null},e.prototype._parseIdent=function(e){if(!this.peek(r.Ident))return null;var t=this.create(le);return e&&(t.referenceTypes=e),t.isCustomProperty=this.peekRegExp(r.Ident,/^--/),this.consumeToken(),this.finish(t)},e.prototype._parseFunction=function(){var e=this.mark(),t=this.create(xe);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(r.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(r.Comma)&&!this.peek(r.ParenthesisR);)t.getArguments().addChild(this._parseFunctionArgument())||this.markError(t,kt.ExpressionExpected);return this.accept(r.ParenthesisR)?this.finish(t):this.finish(t,kt.RightParenthesisExpected)},e.prototype._parseFunctionIdentifier=function(){if(!this.peek(r.Ident))return null;var e=this.create(le);if(e.referenceTypes=[te.Function],this.acceptIdent("progid")){if(this.accept(r.Colon))for(;this.accept(r.Ident)&&this.acceptDelim("."););return this.finish(e)}return this.consumeToken(),this.finish(e)},e.prototype._parseFunctionArgument=function(){var e=this.create(ke);return e.setValue(this._parseExpr(!0))?this.finish(e):null},e.prototype._parseHexColor=function(){if(this.peekRegExp(r.Hash,/^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/g)){var e=this.create(Qe);return this.consumeToken(),this.finish(e)}return null},e}();function cn(e,t){return-1!==e.indexOf(t)}function dn(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=[],r=0,i=e;r<i.length;r++)for(var o=0,s=i[r];o<s.length;o++){var a=s[o];cn(n,a)||n.push(a)}return n}var pn,hn,mn,un,fn,gn,bn,vn,yn,wn,xn,Sn,kn,Cn,Fn,En,zn,Dn,Tn,Rn,In,Mn,Pn,_n,Nn,An,On=function(){var e=function(t,n){return e=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])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Wn=function(){function e(e,t){this.offset=e,this.length=t,this.symbols=[],this.parent=null,this.children=[]}return e.prototype.addChild=function(e){this.children.push(e),e.setParent(this)},e.prototype.setParent=function(e){this.parent=e},e.prototype.findScope=function(e,t){return void 0===t&&(t=0),this.offset<=e&&this.offset+this.length>e+t||this.offset===e&&this.length===t?this.findInScope(e,t):null},e.prototype.findInScope=function(e,t){void 0===t&&(t=0);var n=e+t,r=function(e,t){var n=0,r=e.length;if(0===r)return 0;for(;n<r;){var i=Math.floor((n+r)/2);t(e[i])?r=i:n=i+1}return n}(this.children,(function(e){return e.offset>n}));if(0===r)return this;var i=this.children[r-1];return i.offset<=e&&i.offset+i.length>=e+t?i.findInScope(e,t):this},e.prototype.addSymbol=function(e){this.symbols.push(e)},e.prototype.getSymbol=function(e,t){for(var n=0;n<this.symbols.length;n++){var r=this.symbols[n];if(r.name===e&&r.type===t)return r}return null},e.prototype.getSymbols=function(){return this.symbols},e}(),Ln=function(e){function t(){return e.call(this,0,Number.MAX_VALUE)||this}return On(t,e),t}(Wn),jn=function(e,t,n,r){this.name=e,this.value=t,this.node=n,this.type=r},Un=function(){function e(e){this.scope=e}return e.prototype.addSymbol=function(e,t,n,r){if(-1!==e.offset){var i=this.scope.findScope(e.offset,e.length);i&&i.addSymbol(new jn(t,n,e,r))}},e.prototype.addScope=function(e){if(-1!==e.offset){var t=this.scope.findScope(e.offset,e.length);if(t&&(t.offset!==e.offset||t.length!==e.length)){var n=new Wn(e.offset,e.length);return t.addChild(n),n}return t}return null},e.prototype.addSymbolToChildScope=function(e,t,n,r,i){if(e&&-1!==e.offset){var o=this.addScope(e);o&&o.addSymbol(new jn(n,r,t,i))}},e.prototype.visitNode=function(e){switch(e.type){case ee.Keyframe:return this.addSymbol(e,e.getName(),void 0,te.Keyframe),!0;case ee.CustomPropertyDeclaration:return this.visitCustomPropertyDeclarationNode(e);case ee.VariableDeclaration:return this.visitVariableDeclarationNode(e);case ee.Ruleset:return this.visitRuleSet(e);case ee.MixinDeclaration:return this.addSymbol(e,e.getName(),void 0,te.Mixin),!0;case ee.FunctionDeclaration:return this.addSymbol(e,e.getName(),void 0,te.Function),!0;case ee.FunctionParameter:return this.visitFunctionParameterNode(e);case ee.Declarations:return this.addScope(e),!0;case ee.For:var t=e,n=t.getDeclarations();return n&&t.variable&&this.addSymbolToChildScope(n,t.variable,t.variable.getName(),void 0,te.Variable),!0;case ee.Each:var r=e,i=r.getDeclarations();if(i)for(var o=0,s=r.getVariables().getChildren();o<s.length;o++){var a=s[o];this.addSymbolToChildScope(i,a,a.getName(),void 0,te.Variable)}return!0}return!0},e.prototype.visitRuleSet=function(e){var t=this.scope.findScope(e.offset,e.length);if(t)for(var n=0,r=e.getSelectors().getChildren();n<r.length;n++){var i=r[n];i instanceof me&&1===i.getChildren().length&&t.addSymbol(new jn(i.getChild(0).getText(),void 0,i,te.Rule))}return!0},e.prototype.visitVariableDeclarationNode=function(e){var t=e.getValue()?e.getValue().getText():void 0;return this.addSymbol(e,e.getName(),t,te.Variable),!0},e.prototype.visitFunctionParameterNode=function(e){var t=e.getParent().getDeclarations();if(t){var n=e.getDefaultValue(),r=n?n.getText():void 0;this.addSymbolToChildScope(t,e,e.getName(),r,te.Variable)}return!0},e.prototype.visitCustomPropertyDeclarationNode=function(e){var t=e.getValue()?e.getValue().getText():"";return this.addCSSVariable(e.getProperty(),e.getProperty().getName(),t,te.Variable),!0},e.prototype.addCSSVariable=function(e,t,n,r){-1!==e.offset&&this.scope.addSymbol(new jn(t,n,e,r))},e}(),Vn=function(){function e(e){this.global=new Ln,e.acceptVisitor(new Un(this.global))}return e.prototype.findSymbolsAtOffset=function(e,t){for(var n=this.global.findScope(e,0),r=[],i={};n;){for(var o=n.getSymbols(),s=0;s<o.length;s++){var a=o[s];a.type!==t||i[a.name]||(r.push(a),i[a.name]=!0)}n=n.parent}return r},e.prototype.internalFindSymbol=function(e,t){var n=e;if(e.parent instanceof Se&&e.parent.getParent()instanceof pe&&(n=e.parent.getParent().getDeclarations()),e.parent instanceof ke&&e.parent.getParent()instanceof xe){var r=e.parent.getParent().getIdentifier();if(r){var i=this.internalFindSymbol(r,[te.Function]);i&&(n=i.node.getDeclarations())}}if(!n)return null;for(var o=e.getText(),s=this.global.findScope(n.offset,n.length);s;){for(var a=0;a<t.length;a++){var l=t[a],c=s.getSymbol(o,l);if(c)return c}s=s.parent}return null},e.prototype.evaluateReferenceTypes=function(e){if(e instanceof le){var t=e.referenceTypes;if(t)return t;if(e.isCustomProperty)return[te.Variable];var n=function(e){var t=e.findParent(ee.Declaration),n=t&&t.getValue();return n&&n.encloses(e)?t:null}(e);if(n){var r=n.getNonPrefixedPropertyName();if(("animation"===r||"animation-name"===r)&&n.getValue()&&n.getValue().offset===e.offset)return[te.Keyframe]}}else if(e instanceof st)return[te.Variable];return e.findAParent(ee.Selector,ee.ExtendsReference)?[te.Rule]:null},e.prototype.findSymbolFromNode=function(e){if(!e)return null;for(;e.type===ee.Interpolation;)e=e.getParent();var t=this.evaluateReferenceTypes(e);return t?this.internalFindSymbol(e,t):null},e.prototype.matchesSymbol=function(e,t){if(!e)return!1;for(;e.type===ee.Interpolation;)e=e.getParent();if(!e.matches(t.name))return!1;var n=this.evaluateReferenceTypes(e);return!(!n||-1===n.indexOf(t.type))&&this.internalFindSymbol(e,n)===t},e.prototype.findSymbol=function(e,t,n){for(var r=this.global.findScope(n);r;){var i=r.getSymbol(e,t);if(i)return i;r=r.parent}return null},e}();!function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647}(pn||(pn={})),function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647}(hn||(hn={})),function(e){e.create=function(e,t){return e===Number.MAX_VALUE&&(e=hn.MAX_VALUE),t===Number.MAX_VALUE&&(t=hn.MAX_VALUE),{line:e,character:t}},e.is=function(e){var t=e;return Sr.objectLiteral(t)&&Sr.uinteger(t.line)&&Sr.uinteger(t.character)}}(mn||(mn={})),function(e){e.create=function(e,t,n,r){if(Sr.uinteger(e)&&Sr.uinteger(t)&&Sr.uinteger(n)&&Sr.uinteger(r))return{start:mn.create(e,t),end:mn.create(n,r)};if(mn.is(e)&&mn.is(t))return{start:e,end:t};throw new Error("Range#create called with invalid arguments["+e+", "+t+", "+n+", "+r+"]")},e.is=function(e){var t=e;return Sr.objectLiteral(t)&&mn.is(t.start)&&mn.is(t.end)}}(un||(un={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return Sr.defined(t)&&un.is(t.range)&&(Sr.string(t.uri)||Sr.undefined(t.uri))}}(fn||(fn={})),function(e){e.create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},e.is=function(e){var t=e;return Sr.defined(t)&&un.is(t.targetRange)&&Sr.string(t.targetUri)&&(un.is(t.targetSelectionRange)||Sr.undefined(t.targetSelectionRange))&&(un.is(t.originSelectionRange)||Sr.undefined(t.originSelectionRange))}}(gn||(gn={})),function(e){e.create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},e.is=function(e){var t=e;return Sr.numberRange(t.red,0,1)&&Sr.numberRange(t.green,0,1)&&Sr.numberRange(t.blue,0,1)&&Sr.numberRange(t.alpha,0,1)}}(bn||(bn={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return un.is(t.range)&&bn.is(t.color)}}(vn||(vn={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return Sr.string(t.label)&&(Sr.undefined(t.textEdit)||Dn.is(t))&&(Sr.undefined(t.additionalTextEdits)||Sr.typedArray(t.additionalTextEdits,Dn.is))}}(yn||(yn={})),function(e){e.Comment="comment",e.Imports="imports",e.Region="region"}(wn||(wn={})),function(e){e.create=function(e,t,n,r,i){var o={startLine:e,endLine:t};return Sr.defined(n)&&(o.startCharacter=n),Sr.defined(r)&&(o.endCharacter=r),Sr.defined(i)&&(o.kind=i),o},e.is=function(e){var t=e;return Sr.uinteger(t.startLine)&&Sr.uinteger(t.startLine)&&(Sr.undefined(t.startCharacter)||Sr.uinteger(t.startCharacter))&&(Sr.undefined(t.endCharacter)||Sr.uinteger(t.endCharacter))&&(Sr.undefined(t.kind)||Sr.string(t.kind))}}(xn||(xn={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return Sr.defined(t)&&fn.is(t.location)&&Sr.string(t.message)}}(Sn||(Sn={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(kn||(kn={})),function(e){e.Unnecessary=1,e.Deprecated=2}(Cn||(Cn={})),function(e){e.is=function(e){var t=e;return void 0!==t&&null!==t&&Sr.string(t.href)}}(Fn||(Fn={})),function(e){e.create=function(e,t,n,r,i,o){var s={range:e,message:t};return Sr.defined(n)&&(s.severity=n),Sr.defined(r)&&(s.code=r),Sr.defined(i)&&(s.source=i),Sr.defined(o)&&(s.relatedInformation=o),s},e.is=function(e){var t,n=e;return Sr.defined(n)&&un.is(n.range)&&Sr.string(n.message)&&(Sr.number(n.severity)||Sr.undefined(n.severity))&&(Sr.integer(n.code)||Sr.string(n.code)||Sr.undefined(n.code))&&(Sr.undefined(n.codeDescription)||Sr.string(null===(t=n.codeDescription)||void 0===t?void 0:t.href))&&(Sr.string(n.source)||Sr.undefined(n.source))&&(Sr.undefined(n.relatedInformation)||Sr.typedArray(n.relatedInformation,Sn.is))}}(En||(En={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={title:e,command:t};return Sr.defined(n)&&n.length>0&&(i.arguments=n),i},e.is=function(e){var t=e;return Sr.defined(t)&&Sr.string(t.title)&&Sr.string(t.command)}}(zn||(zn={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:""}},e.is=function(e){var t=e;return Sr.objectLiteral(t)&&Sr.string(t.newText)&&un.is(t.range)}}(Dn||(Dn={})),function(e){e.create=function(e,t,n){var r={label:e};return void 0!==t&&(r.needsConfirmation=t),void 0!==n&&(r.description=n),r},e.is=function(e){var t=e;return void 0!==t&&Sr.objectLiteral(t)&&Sr.string(t.label)&&(Sr.boolean(t.needsConfirmation)||void 0===t.needsConfirmation)&&(Sr.string(t.description)||void 0===t.description)}}(Tn||(Tn={})),function(e){e.is=function(e){return"string"===typeof e}}(Rn||(Rn={})),function(e){e.replace=function(e,t,n){return{range:e,newText:t,annotationId:n}},e.insert=function(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}},e.del=function(e,t){return{range:e,newText:"",annotationId:t}},e.is=function(e){var t=e;return Dn.is(t)&&(Tn.is(t.annotationId)||Rn.is(t.annotationId))}}(In||(In={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return Sr.defined(t)&&qn.is(t.textDocument)&&Array.isArray(t.edits)}}(Mn||(Mn={})),function(e){e.create=function(e,t,n){var r={kind:"create",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(r.options=t),void 0!==n&&(r.annotationId=n),r},e.is=function(e){var t=e;return t&&"create"===t.kind&&Sr.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||Sr.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||Sr.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||Rn.is(t.annotationId))}}(Pn||(Pn={})),function(e){e.create=function(e,t,n,r){var i={kind:"rename",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(i.options=n),void 0!==r&&(i.annotationId=r),i},e.is=function(e){var t=e;return t&&"rename"===t.kind&&Sr.string(t.oldUri)&&Sr.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||Sr.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||Sr.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||Rn.is(t.annotationId))}}(_n||(_n={})),function(e){e.create=function(e,t,n){var r={kind:"delete",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(r.options=t),void 0!==n&&(r.annotationId=n),r},e.is=function(e){var t=e;return t&&"delete"===t.kind&&Sr.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||Sr.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||Sr.boolean(t.options.ignoreIfNotExists)))&&(void 0===t.annotationId||Rn.is(t.annotationId))}}(Nn||(Nn={})),function(e){e.is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return Sr.string(e.kind)?Pn.is(e)||_n.is(e)||Nn.is(e):Mn.is(e)})))}}(An||(An={}));var Bn,$n,qn,Kn,Gn,Jn,Hn,Xn,Yn,Zn,Qn,er,tr,nr,rr,ir,or,sr,ar,lr,cr,dr,pr,hr,mr,ur,fr,gr,br,vr,yr=function(){function e(e,t){this.edits=e,this.changeAnnotations=t}return e.prototype.insert=function(e,t,n){var r,i;if(void 0===n?r=Dn.insert(e,t):Rn.is(n)?(i=n,r=In.insert(e,t,n)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(n),r=In.insert(e,t,i)),this.edits.push(r),void 0!==i)return i},e.prototype.replace=function(e,t,n){var r,i;if(void 0===n?r=Dn.replace(e,t):Rn.is(n)?(i=n,r=In.replace(e,t,n)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(n),r=In.replace(e,t,i)),this.edits.push(r),void 0!==i)return i},e.prototype.delete=function(e,t){var n,r;if(void 0===t?n=Dn.del(e):Rn.is(t)?(r=t,n=In.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),r=this.changeAnnotations.manage(t),n=In.del(e,r)),this.edits.push(n),void 0!==r)return r},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e.prototype.assertChangeAnnotations=function(e){if(void 0===e)throw new Error("Text edit change is not configured to manage change annotations.")},e}(),wr=function(){function e(e){this._annotations=void 0===e?Object.create(null):e,this._counter=0,this._size=0}return e.prototype.all=function(){return this._annotations},Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),e.prototype.manage=function(e,t){var n;if(Rn.is(e)?n=e:(n=this.nextId(),t=e),void 0!==this._annotations[n])throw new Error("Id "+n+" is already in use.");if(void 0===t)throw new Error("No annotation provided for id "+n);return this._annotations[n]=t,this._size++,n},e.prototype.nextId=function(){return this._counter++,this._counter.toString()},e}();!function(){function e(e){var t=this;this._textEditChanges=Object.create(null),void 0!==e?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new wr(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach((function(e){if(Mn.is(e)){var n=new yr(e.edits,t._changeAnnotations);t._textEditChanges[e.textDocument.uri]=n}}))):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new yr(e.changes[n]);t._textEditChanges[n]=r}))):this._workspaceEdit={}}Object.defineProperty(e.prototype,"edit",{get:function(){return this.initDocumentChanges(),void 0!==this._changeAnnotations&&(0===this._changeAnnotations.size?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),e.prototype.getTextEditChange=function(e){if(qn.is(e)){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var t={uri:e.uri,version:e.version};if(!(r=this._textEditChanges[t.uri])){var n={textDocument:t,edits:i=[]};this._workspaceEdit.documentChanges.push(n),r=new yr(i,this._changeAnnotations),this._textEditChanges[t.uri]=r}return r}if(this.initChanges(),void 0===this._workspaceEdit.changes)throw new Error("Workspace edit is not configured for normal text edit changes.");var r;if(!(r=this._textEditChanges[e])){var i=[];this._workspaceEdit.changes[e]=i,r=new yr(i),this._textEditChanges[e]=r}return r},e.prototype.initDocumentChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._changeAnnotations=new wr,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},e.prototype.initChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._workspaceEdit.changes=Object.create(null))},e.prototype.createFile=function(e,t,n){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if(Tn.is(t)||Rn.is(t)?r=t:n=t,void 0===r?i=Pn.create(e,n):(o=Rn.is(r)?r:this._changeAnnotations.manage(r),i=Pn.create(e,n,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o},e.prototype.renameFile=function(e,t,n,r){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var i,o,s;if(Tn.is(n)||Rn.is(n)?i=n:r=n,void 0===i?o=_n.create(e,t,r):(s=Rn.is(i)?i:this._changeAnnotations.manage(i),o=_n.create(e,t,r,s)),this._workspaceEdit.documentChanges.push(o),void 0!==s)return s},e.prototype.deleteFile=function(e,t,n){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if(Tn.is(t)||Rn.is(t)?r=t:n=t,void 0===r?i=Nn.create(e,n):(o=Rn.is(r)?r:this._changeAnnotations.manage(r),i=Nn.create(e,n,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o}}();!function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return Sr.defined(t)&&Sr.string(t.uri)}}(Bn||(Bn={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return Sr.defined(t)&&Sr.string(t.uri)&&Sr.integer(t.version)}}($n||($n={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return Sr.defined(t)&&Sr.string(t.uri)&&(null===t.version||Sr.integer(t.version))}}(qn||(qn={})),function(e){e.create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},e.is=function(e){var t=e;return Sr.defined(t)&&Sr.string(t.uri)&&Sr.string(t.languageId)&&Sr.integer(t.version)&&Sr.string(t.text)}}(Kn||(Kn={})),function(e){e.PlainText="plaintext",e.Markdown="markdown"}(Gn||(Gn={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(Gn||(Gn={})),function(e){e.is=function(e){var t=e;return Sr.objectLiteral(e)&&Gn.is(t.kind)&&Sr.string(t.value)}}(Jn||(Jn={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(Hn||(Hn={})),function(e){e.PlainText=1,e.Snippet=2}(Xn||(Xn={})),function(e){e.Deprecated=1}(Yn||(Yn={})),function(e){e.create=function(e,t,n){return{newText:e,insert:t,replace:n}},e.is=function(e){var t=e;return t&&Sr.string(t.newText)&&un.is(t.insert)&&un.is(t.replace)}}(Zn||(Zn={})),function(e){e.asIs=1,e.adjustIndentation=2}(Qn||(Qn={})),function(e){e.create=function(e){return{label:e}}}(er||(er={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(tr||(tr={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},e.is=function(e){var t=e;return Sr.string(t)||Sr.objectLiteral(t)&&Sr.string(t.language)&&Sr.string(t.value)}}(nr||(nr={})),function(e){e.is=function(e){var t=e;return!!t&&Sr.objectLiteral(t)&&(Jn.is(t.contents)||nr.is(t.contents)||Sr.typedArray(t.contents,nr.is))&&(void 0===e.range||un.is(e.range))}}(rr||(rr={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(ir||(ir={})),function(e){e.create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={label:e};return Sr.defined(t)&&(i.documentation=t),Sr.defined(n)?i.parameters=n:i.parameters=[],i}}(or||(or={})),function(e){e.Text=1,e.Read=2,e.Write=3}(sr||(sr={})),function(e){e.create=function(e,t){var n={range:e};return Sr.number(t)&&(n.kind=t),n}}(ar||(ar={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(lr||(lr={})),function(e){e.Deprecated=1}(cr||(cr={})),function(e){e.create=function(e,t,n,r,i){var o={name:e,kind:t,location:{uri:r,range:n}};return i&&(o.containerName=i),o}}(dr||(dr={})),function(e){e.create=function(e,t,n,r,i,o){var s={name:e,detail:t,kind:n,range:r,selectionRange:i};return void 0!==o&&(s.children=o),s},e.is=function(e){var t=e;return t&&Sr.string(t.name)&&Sr.number(t.kind)&&un.is(t.range)&&un.is(t.selectionRange)&&(void 0===t.detail||Sr.string(t.detail))&&(void 0===t.deprecated||Sr.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))&&(void 0===t.tags||Array.isArray(t.tags))}}(pr||(pr={})),function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"}(hr||(hr={})),function(e){e.create=function(e,t){var n={diagnostics:e};return void 0!==t&&null!==t&&(n.only=t),n},e.is=function(e){var t=e;return Sr.defined(t)&&Sr.typedArray(t.diagnostics,En.is)&&(void 0===t.only||Sr.typedArray(t.only,Sr.string))}}(mr||(mr={})),function(e){e.create=function(e,t,n){var r={title:e},i=!0;return"string"===typeof t?(i=!1,r.kind=t):zn.is(t)?r.command=t:r.edit=t,i&&void 0!==n&&(r.kind=n),r},e.is=function(e){var t=e;return t&&Sr.string(t.title)&&(void 0===t.diagnostics||Sr.typedArray(t.diagnostics,En.is))&&(void 0===t.kind||Sr.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||zn.is(t.command))&&(void 0===t.isPreferred||Sr.boolean(t.isPreferred))&&(void 0===t.edit||An.is(t.edit))}}(ur||(ur={})),function(e){e.create=function(e,t){var n={range:e};return Sr.defined(t)&&(n.data=t),n},e.is=function(e){var t=e;return Sr.defined(t)&&un.is(t.range)&&(Sr.undefined(t.command)||zn.is(t.command))}}(fr||(fr={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){var t=e;return Sr.defined(t)&&Sr.uinteger(t.tabSize)&&Sr.boolean(t.insertSpaces)}}(gr||(gr={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){var t=e;return Sr.defined(t)&&un.is(t.range)&&(Sr.undefined(t.target)||Sr.string(t.target))}}(br||(br={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){var n=t;return void 0!==n&&un.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(vr||(vr={}));var xr;!function(e){function t(e,n){if(e.length<=1)return e;var r=e.length/2|0,i=e.slice(0,r),o=e.slice(r);t(i,n),t(o,n);for(var s=0,a=0,l=0;s<i.length&&a<o.length;){var c=n(i[s],o[a]);e[l++]=c<=0?i[s++]:o[a++]}for(;s<i.length;)e[l++]=i[s++];for(;a<o.length;)e[l++]=o[a++];return e}e.create=function(e,t,n,r){return new kr(e,t,n,r)},e.is=function(e){var t=e;return!!(Sr.defined(t)&&Sr.string(t.uri)&&(Sr.undefined(t.languageId)||Sr.string(t.languageId))&&Sr.uinteger(t.lineCount)&&Sr.func(t.getText)&&Sr.func(t.positionAt)&&Sr.func(t.offsetAt))},e.applyEdits=function(e,n){for(var r=e.getText(),i=t(n,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),o=r.length,s=i.length-1;s>=0;s--){var a=i[s],l=e.offsetAt(a.range.start),c=e.offsetAt(a.range.end);if(!(c<=o))throw new Error("Overlapping edit");r=r.substring(0,l)+a.newText+r.substring(c,r.length),o=l}return r}}(xr||(xr={}));var Sr,kr=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,"uri",{get:function(){return this._uri},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"version",{get:function(){return this._version},enumerable:!1,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,r=0;r<t.length;r++){n&&(e.push(r),n=!1);var i=t.charAt(r);n="\r"===i||"\n"===i,"\r"===i&&r+1<t.length&&"\n"===t.charAt(r+1)&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return mn.create(0,e);for(;n<r;){var i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}var o=n-1;return mn.create(o,e-t[o])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!1,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return"undefined"!==typeof e},e.undefined=function(e){return"undefined"===typeof e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return"[object String]"===t.call(e)},e.number=function(e){return"[object Number]"===t.call(e)},e.numberRange=function(e,n,r){return"[object Number]"===t.call(e)&&n<=e&&e<=r},e.integer=function(e){return"[object Number]"===t.call(e)&&-2147483648<=e&&e<=2147483647},e.uinteger=function(e){return"[object Number]"===t.call(e)&&0<=e&&e<=2147483647},e.func=function(e){return"[object Function]"===t.call(e)},e.objectLiteral=function(e){return null!==e&&"object"===typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(Sr||(Sr={}));var Cr,Fr,Er,zr,Dr=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,"uri",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"version",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(t,n){for(var r=0,i=t;r<i.length;r++){var o=i[r];if(e.isIncremental(o)){var s=Ir(o.range),a=this.offsetAt(s.start),l=this.offsetAt(s.end);this._content=this._content.substring(0,a)+o.text+this._content.substring(l,this._content.length);var c=Math.max(s.start.line,0),d=Math.max(s.end.line,0),p=this._lineOffsets,h=Rr(o.text,!1,a);if(d-c===h.length)for(var m=0,u=h.length;m<u;m++)p[m+c+1]=h[m];else h.length<1e4?p.splice.apply(p,[c+1,d-c].concat(h)):this._lineOffsets=p=p.slice(0,c+1).concat(h,p.slice(d+1));var f=o.text.length-(l-a);if(0!==f)for(m=c+1+h.length,u=p.length;m<u;m++)p[m]=p[m]+f}else{if(!e.isFull(o))throw new Error("Unknown change event received");this._content=o.text,this._lineOffsets=void 0}}this._version=n},e.prototype.getLineOffsets=function(){return void 0===this._lineOffsets&&(this._lineOffsets=Rr(this._content,!0)),this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return{line:0,character:e};for(;n<r;){var i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}var o=n-1;return{line:o,character:e-t[o]}},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!0,configurable:!0}),e.isIncremental=function(e){var t=e;return void 0!==t&&null!==t&&"string"===typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||"number"===typeof t.rangeLength)},e.isFull=function(e){var t=e;return void 0!==t&&null!==t&&"string"===typeof t.text&&void 0===t.range&&void 0===t.rangeLength},e}();function Tr(e,t){if(e.length<=1)return e;var n=e.length/2|0,r=e.slice(0,n),i=e.slice(n);Tr(r,t),Tr(i,t);for(var o=0,s=0,a=0;o<r.length&&s<i.length;){var l=t(r[o],i[s]);e[a++]=l<=0?r[o++]:i[s++]}for(;o<r.length;)e[a++]=r[o++];for(;s<i.length;)e[a++]=i[s++];return e}function Rr(e,t,n){void 0===n&&(n=0);for(var r=t?[n]:[],i=0;i<e.length;i++){var o=e.charCodeAt(i);13!==o&&10!==o||(13===o&&i+1<e.length&&10===e.charCodeAt(i+1)&&i++,r.push(n+i+1))}return r}function Ir(e){var t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function Mr(e){var t=Ir(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,n,r){return new Dr(e,t,n,r)},e.update=function(e,t,n){if(e instanceof Dr)return e.update(t,n),e;throw new Error("TextDocument.update: document must be created by TextDocument.create")},e.applyEdits=function(e,t){for(var n=e.getText(),r=Tr(t.map(Mr),(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),i=0,o=[],s=0,a=r;s<a.length;s++){var l=a[s],c=e.offsetAt(l.range.start);if(c<i)throw new Error("Overlapping edit");c>i&&o.push(n.substring(i,c)),l.newText.length&&o.push(l.newText),i=e.offsetAt(l.range.end)}return o.push(n.substr(i)),o.join("")}}(Cr||(Cr={})),function(e){e.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[Gn.Markdown,Gn.PlainText]}},hover:{contentFormat:[Gn.Markdown,Gn.PlainText]}}}}(Fr||(Fr={})),function(e){e[e.Unknown=0]="Unknown",e[e.File=1]="File",e[e.Directory=2]="Directory",e[e.SymbolicLink=64]="SymbolicLink"}(Er||(Er={})),zr=function(){var e={470:function(e){function t(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var n,r="",i=0,o=-1,s=0,a=0;a<=e.length;++a){if(a<e.length)n=e.charCodeAt(a);else{if(47===n)break;n=47}if(47===n){if(o===a-1||1===s);else if(o!==a-1&&2===s){if(r.length<2||2!==i||46!==r.charCodeAt(r.length-1)||46!==r.charCodeAt(r.length-2))if(r.length>2){var l=r.lastIndexOf("/");if(l!==r.length-1){-1===l?(r="",i=0):i=(r=r.slice(0,l)).length-1-r.lastIndexOf("/"),o=a,s=0;continue}}else if(2===r.length||1===r.length){r="",i=0,o=a,s=0;continue}t&&(r.length>0?r+="/..":r="..",i=2)}else r.length>0?r+="/"+e.slice(o+1,a):r=e.slice(o+1,a),i=a-o-1;o=a,s=0}else 46===n&&-1!==s?++s:s=-1}return r}var r={resolve:function(){for(var e,r="",i=!1,o=arguments.length-1;o>=-1&&!i;o--){var s;o>=0?s=arguments[o]:(void 0===e&&(e=process.cwd()),s=e),t(s),0!==s.length&&(r=s+"/"+r,i=47===s.charCodeAt(0))}return r=n(r,!i),i?r.length>0?"/"+r:"/":r.length>0?r:"."},normalize:function(e){if(t(e),0===e.length)return".";var r=47===e.charCodeAt(0),i=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!r)).length||r||(e="."),e.length>0&&i&&(e+="/"),r?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,n=0;n<arguments.length;++n){var i=arguments[n];t(i),i.length>0&&(void 0===e?e=i:e+="/"+i)}return void 0===e?".":r.normalize(e)},relative:function(e,n){if(t(e),t(n),e===n)return"";if((e=r.resolve(e))===(n=r.resolve(n)))return"";for(var i=1;i<e.length&&47===e.charCodeAt(i);++i);for(var o=e.length,s=o-i,a=1;a<n.length&&47===n.charCodeAt(a);++a);for(var l=n.length-a,c=s<l?s:l,d=-1,p=0;p<=c;++p){if(p===c){if(l>c){if(47===n.charCodeAt(a+p))return n.slice(a+p+1);if(0===p)return n.slice(a+p)}else s>c&&(47===e.charCodeAt(i+p)?d=p:0===p&&(d=0));break}var h=e.charCodeAt(i+p);if(h!==n.charCodeAt(a+p))break;47===h&&(d=p)}var m="";for(p=i+d+1;p<=o;++p)p!==o&&47!==e.charCodeAt(p)||(0===m.length?m+="..":m+="/..");return m.length>0?m+n.slice(a+d):(a+=d,47===n.charCodeAt(a)&&++a,n.slice(a))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var n=e.charCodeAt(0),r=47===n,i=-1,o=!0,s=e.length-1;s>=1;--s)if(47===(n=e.charCodeAt(s))){if(!o){i=s;break}}else o=!1;return-1===i?r?"/":".":r&&1===i?"//":e.slice(0,i)},basename:function(e,n){if(void 0!==n&&"string"!=typeof n)throw new TypeError('"ext" argument must be a string');t(e);var r,i=0,o=-1,s=!0;if(void 0!==n&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return"";var a=n.length-1,l=-1;for(r=e.length-1;r>=0;--r){var c=e.charCodeAt(r);if(47===c){if(!s){i=r+1;break}}else-1===l&&(s=!1,l=r+1),a>=0&&(c===n.charCodeAt(a)?-1==--a&&(o=r):(a=-1,o=l))}return i===o?o=l:-1===o&&(o=e.length),e.slice(i,o)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!s){i=r+1;break}}else-1===o&&(s=!1,o=r+1);return-1===o?"":e.slice(i,o)},extname:function(e){t(e);for(var n=-1,r=0,i=-1,o=!0,s=0,a=e.length-1;a>=0;--a){var l=e.charCodeAt(a);if(47!==l)-1===i&&(o=!1,i=a+1),46===l?-1===n?n=a:1!==s&&(s=1):-1!==n&&(s=-1);else if(!o){r=a+1;break}}return-1===n||-1===i||0===s||1===s&&n===i-1&&n===r+1?"":e.slice(n,i)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var n=t.dir||t.root,r=t.base||(t.name||"")+(t.ext||"");return n?n===t.root?n+r:n+"/"+r:r}(0,e)},parse:function(e){t(e);var n={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return n;var r,i=e.charCodeAt(0),o=47===i;o?(n.root="/",r=1):r=0;for(var s=-1,a=0,l=-1,c=!0,d=e.length-1,p=0;d>=r;--d)if(47!==(i=e.charCodeAt(d)))-1===l&&(c=!1,l=d+1),46===i?-1===s?s=d:1!==p&&(p=1):-1!==s&&(p=-1);else if(!c){a=d+1;break}return-1===s||-1===l||0===p||1===p&&s===l-1&&s===a+1?-1!==l&&(n.base=n.name=0===a&&o?e.slice(1,l):e.slice(a,l)):(0===a&&o?(n.name=e.slice(1,s),n.base=e.slice(1,l)):(n.name=e.slice(a,s),n.base=e.slice(a,l)),n.ext=e.slice(s,l)),a>0?n.dir=e.slice(0,a-1):o&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};r.posix=r,e.exports=r},447:function(e,t,n){var r;if(n.r(t),n.d(t,{URI:function(){return u},Utils:function(){return F}}),"object"==typeof process)r="win32"===process.platform;else if("object"==typeof navigator){var i=navigator.userAgent;r=i.indexOf("Windows")>=0}var o,s,a=(o=function(e,t){return(o=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])})(e,t)},function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),l=/^\w[\w\d+.-]*$/,c=/^\//,d=/^\/\//,p="",h="/",m=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,u=function(){function e(e,t,n,r,i,o){void 0===o&&(o=!1),"object"==typeof e?(this.scheme=e.scheme||p,this.authority=e.authority||p,this.path=e.path||p,this.query=e.query||p,this.fragment=e.fragment||p):(this.scheme=function(e,t){return e||t?e:"file"}(e,o),this.authority=t||p,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==h&&(t=h+t):t=h}return t}(this.scheme,n||p),this.query=r||p,this.fragment=i||p,function(e,t){if(!e.scheme&&t)throw new Error('[UriError]: Scheme is missing: {scheme: "", authority: "'+e.authority+'", path: "'+e.path+'", query: "'+e.query+'", fragment: "'+e.fragment+'"}');if(e.scheme&&!l.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!c.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(d.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,o))}return e.isUri=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&&"function"==typeof t.fsPath&&"function"==typeof t.with&&"function"==typeof t.toString},Object.defineProperty(e.prototype,"fsPath",{get:function(){return w(this,!1)},enumerable:!1,configurable:!0}),e.prototype.with=function(e){if(!e)return this;var t=e.scheme,n=e.authority,r=e.path,i=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===r?r=this.path:null===r&&(r=p),void 0===i?i=this.query:null===i&&(i=p),void 0===o?o=this.fragment:null===o&&(o=p),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&o===this.fragment?this:new g(t,n,r,i,o)},e.parse=function(e,t){void 0===t&&(t=!1);var n=m.exec(e);return n?new g(n[2]||p,C(n[4]||p),C(n[5]||p),C(n[7]||p),C(n[9]||p),t):new g(p,p,p,p,p)},e.file=function(e){var t=p;if(r&&(e=e.replace(/\\/g,h)),e[0]===h&&e[1]===h){var n=e.indexOf(h,2);-1===n?(t=e.substring(2),e=h):(t=e.substring(2,n),e=e.substring(n)||h)}return new g("file",t,e,p,p)},e.from=function(e){return new g(e.scheme,e.authority,e.path,e.query,e.fragment)},e.prototype.toString=function(e){return void 0===e&&(e=!1),x(this,e)},e.prototype.toJSON=function(){return this},e.revive=function(t){if(t){if(t instanceof e)return t;var n=new g(t);return n._formatted=t.external,n._fsPath=t._sep===f?t.fsPath:null,n}return t},e}(),f=r?1:void 0,g=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return a(t,e),Object.defineProperty(t.prototype,"fsPath",{get:function(){return this._fsPath||(this._fsPath=w(this,!1)),this._fsPath},enumerable:!1,configurable:!0}),t.prototype.toString=function(e){return void 0===e&&(e=!1),e?x(this,!0):(this._formatted||(this._formatted=x(this,!1)),this._formatted)},t.prototype.toJSON=function(){var e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=f),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},t}(u),b=((s={})[58]="%3A",s[47]="%2F",s[63]="%3F",s[35]="%23",s[91]="%5B",s[93]="%5D",s[64]="%40",s[33]="%21",s[36]="%24",s[38]="%26",s[39]="%27",s[40]="%28",s[41]="%29",s[42]="%2A",s[43]="%2B",s[44]="%2C",s[59]="%3B",s[61]="%3D",s[32]="%20",s);function v(e,t){for(var n=void 0,r=-1,i=0;i<e.length;i++){var o=e.charCodeAt(i);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!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),void 0!==n&&(n+=e.charAt(i));else{void 0===n&&(n=e.substr(0,i));var s=b[o];void 0!==s?(-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),n+=s):-1===r&&(r=i)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function y(e){for(var t=void 0,n=0;n<e.length;n++){var r=e.charCodeAt(n);35===r||63===r?(void 0===t&&(t=e.substr(0,n)),t+=b[r]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function w(e,t){var n;return n=e.authority&&e.path.length>1&&"file"===e.scheme?"//"+e.authority+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,r&&(n=n.replace(/\//g,"\\")),n}function x(e,t){var n=t?y:v,r="",i=e.scheme,o=e.authority,s=e.path,a=e.query,l=e.fragment;if(i&&(r+=i,r+=":"),(o||"file"===i)&&(r+=h,r+=h),o){var c=o.indexOf("@");if(-1!==c){var d=o.substr(0,c);o=o.substr(c+1),-1===(c=d.indexOf(":"))?r+=n(d,!1):(r+=n(d.substr(0,c),!1),r+=":",r+=n(d.substr(c+1),!1)),r+="@"}-1===(c=(o=o.toLowerCase()).indexOf(":"))?r+=n(o,!1):(r+=n(o.substr(0,c),!1),r+=o.substr(c))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2))(p=s.charCodeAt(1))>=65&&p<=90&&(s="/"+String.fromCharCode(p+32)+":"+s.substr(3));else if(s.length>=2&&58===s.charCodeAt(1)){var p;(p=s.charCodeAt(0))>=65&&p<=90&&(s=String.fromCharCode(p+32)+":"+s.substr(2))}r+=n(s,!0)}return a&&(r+="?",r+=n(a,!1)),l&&(r+="#",r+=t?l:v(l,!1)),r}function S(e){try{return decodeURIComponent(e)}catch(t){return e.length>3?e.substr(0,3)+S(e.substr(3)):e}}var k=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function C(e){return e.match(k)?e.replace(k,(function(e){return S(e)})):e}var F,E=n(470),z=function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),i=0;for(t=0;t<n;t++)for(var o=arguments[t],s=0,a=o.length;s<a;s++,i++)r[i]=o[s];return r},D=E.posix||E;!function(e){e.joinPath=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return e.with({path:D.join.apply(D,z([e.path],t))})},e.resolvePath=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=e.path||"/";return e.with({path:D.resolve.apply(D,z([r],t))})},e.dirname=function(e){var t=D.dirname(e.path);return 1===t.length&&46===t.charCodeAt(0)?e:e.with({path:t})},e.basename=function(e){return D.basename(e.path)},e.extname=function(e){return D.extname(e.path)}}(F||(F={}))}},t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}return n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(447)}();var Pr=zr,_r=Pr.URI,Nr=Pr.Utils,Ar=function(e,t){for(var n=0,r=t.length,i=e.length;n<r;n++,i++)e[i]=t[n];return e};function Or(e){return Nr.dirname(_r.parse(e)).toString()}function Wr(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return Nr.joinPath.apply(Nr,Ar([_r.parse(e)],t)).toString()}var Lr=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(t){o(t)}}function a(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))},jr=function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"===typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(a){o=[6,a],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}},Ur=function(){function e(e){this.readDirectory=e,this.literalCompletions=[],this.importCompletions=[]}return e.prototype.onCssURILiteralValue=function(e){this.literalCompletions.push(e)},e.prototype.onCssImportPath=function(e){this.importCompletions.push(e)},e.prototype.computeCompletions=function(e,t){return Lr(this,void 0,void 0,(function(){var n,r,i,o,s,a,l,c,d,p,h,m,u,f,g,b,v;return jr(this,(function(y){switch(y.label){case 0:n={items:[],isIncomplete:!1},r=0,i=this.literalCompletions,y.label=1;case 1:return r<i.length?(o=i[r],s=o.uriValue,"."!==(u=Br(s))&&".."!==u?[3,2]:(n.isIncomplete=!0,[3,4])):[3,5];case 2:return[4,this.providePathSuggestions(s,o.position,o.range,e,t)];case 3:for(a=y.sent(),l=0,c=a;l<c.length;l++)v=c[l],n.items.push(v);y.label=4;case 4:return r++,[3,1];case 5:d=0,p=this.importCompletions,y.label=6;case 6:return d<p.length?(h=p[d],m=h.pathValue,"."!==(u=Br(m))&&".."!==u?[3,7]:(n.isIncomplete=!0,[3,9])):[3,10];case 7:return[4,this.providePathSuggestions(m,h.position,h.range,e,t)];case 8:for(f=y.sent(),"scss"===e.languageId&&f.forEach((function(e){Y(e.label,"_")&&Z(e.label,".scss")&&(e.textEdit?e.textEdit.newText=e.label.slice(1,-5):e.label=e.label.slice(1,-5))})),g=0,b=f;g<b.length;g++)v=b[g],n.items.push(v);y.label=9;case 9:return d++,[3,6];case 10:return[2,n]}}))}))},e.prototype.providePathSuggestions=function(e,t,n,r,i){return Lr(this,void 0,void 0,(function(){var o,s,a,l,c,d,p,h,m,u,f,g,b,v,y;return jr(this,(function(w){switch(w.label){case 0:if(o=Br(e),s=Y(e,"'")||Y(e,'"'),a=s?o.slice(0,t.character-(n.start.character+1)):o.slice(0,t.character-n.start.character),l=r.uri,c=s?function(e,t,n){var r=Kr(e.start,t),i=Kr(e.end,n);return un.create(r,i)}(n,1,-1):n,d=function(e,t,n){var r,i=e.lastIndexOf("/");if(-1===i)r=n;else{var o=t.slice(i+1),s=Kr(n.end,-o.length),a=o.indexOf(" "),l=void 0;l=-1!==a?Kr(s,a):n.end,r=un.create(s,l)}return r}(a,o,c),p=a.substring(0,a.lastIndexOf("/")+1),!(h=i.resolveReference(p||".",l)))return[3,4];w.label=1;case 1:return w.trys.push([1,3,,4]),m=[],[4,this.readDirectory(h)];case 2:for(u=w.sent(),f=0,g=u;f<g.length;f++)b=g[f],v=b[0],y=b[1],v.charCodeAt(0)===Vr||y!==Er.Directory&&Wr(h,v)===l||m.push($r(v,y===Er.Directory,d));return[2,m];case 3:return w.sent(),[3,4];case 4:return[2,[]]}}))}))},e}(),Vr=".".charCodeAt(0);function Br(e){return Y(e,"'")||Y(e,'"')?e.slice(1,-1):e}function $r(e,t,n){return t?{label:qr(e+="/"),kind:Hn.Folder,textEdit:Dn.replace(n,qr(e)),command:{title:"Suggest",command:"editor.action.triggerSuggest"}}:{label:qr(e),kind:Hn.File,textEdit:Dn.replace(n,qr(e))}}function qr(e){return e.replace(/(\s|\(|\)|,|"|')/g,"\\$1")}function Kr(e,t){return mn.create(e.line,e.character+t)}var Gr,Jr=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(t){o(t)}}function a(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))},Hr=function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"===typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(a){o=[6,a],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}},Xr=wt(),Yr=Xn.Snippet;!function(e){e.Enums=" ",e.Normal="d",e.VendorPrefixed="x",e.Term="y",e.Variable="z"}(Gr||(Gr={}));var Zr=function(){function e(e,t,n){void 0===e&&(e=null),this.variablePrefix=e,this.lsOptions=t,this.cssDataManager=n,this.completionParticipants=[]}return e.prototype.configure=function(e){this.defaultSettings=e},e.prototype.getSymbolContext=function(){return this.symbolContext||(this.symbolContext=new Vn(this.styleSheet)),this.symbolContext},e.prototype.setCompletionParticipants=function(e){this.completionParticipants=e||[]},e.prototype.doComplete2=function(e,t,n,r,i){return void 0===i&&(i=this.defaultSettings),Jr(this,void 0,void 0,(function(){var o,s,a,l;return Hr(this,(function(c){switch(c.label){case 0:if(!this.lsOptions.fileSystemProvider||!this.lsOptions.fileSystemProvider.readDirectory)return[2,this.doComplete(e,t,n,i)];o=new Ur(this.lsOptions.fileSystemProvider.readDirectory),s=this.completionParticipants,this.completionParticipants=[o].concat(s),a=this.doComplete(e,t,n,i),c.label=1;case 1:return c.trys.push([1,,3,4]),[4,o.computeCompletions(e,r)];case 2:return l=c.sent(),[2,{isIncomplete:a.isIncomplete||l.isIncomplete,items:l.items.concat(a.items)}];case 3:return this.completionParticipants=s,[7];case 4:return[2]}}))}))},e.prototype.doComplete=function(e,t,n,r){this.offset=e.offsetAt(t),this.position=t,this.currentWord=function(e,t){var n=t-1,r=e.getText();for(;n>=0&&-1===' \t\n\r":{[()]},*>+'.indexOf(r.charAt(n));)n--;return r.substring(n+1,t)}(e,this.offset),this.defaultReplaceRange=un.create(mn.create(this.position.line,this.position.character-this.currentWord.length),this.position),this.textDocument=e,this.styleSheet=n,this.documentSettings=r;try{var i={isIncomplete:!1,items:[]};this.nodePath=ie(this.styleSheet,this.offset);for(var o=this.nodePath.length-1;o>=0;o--){var s=this.nodePath[o];if(s instanceof we)this.getCompletionsForDeclarationProperty(s.getParent(),i);else if(s instanceof He)s.parent instanceof ot?this.getVariableProposals(null,i):this.getCompletionsForExpression(s,i);else if(s instanceof ue){var a=s.findAParent(ee.ExtendsReference,ee.Ruleset);if(a)if(a.type===ee.ExtendsReference)this.getCompletionsForExtendsReference(a,s,i);else{var l=a;this.getCompletionsForSelector(l,l&&l.isNested(),i)}}else if(s instanceof ke)this.getCompletionsForFunctionArgument(s,s.getParent(),i);else if(s instanceof de)this.getCompletionsForDeclarations(s,i);else if(s instanceof it)this.getCompletionsForVariableDeclaration(s,i);else if(s instanceof he)this.getCompletionsForRuleSet(s,i);else if(s instanceof ot)this.getCompletionsForInterpolation(s,i);else if(s instanceof Te)this.getCompletionsForFunctionDeclaration(s,i);else if(s instanceof dt)this.getCompletionsForMixinReference(s,i);else if(s instanceof xe)this.getCompletionsForFunctionArgument(null,s,i);else if(s instanceof Ve)this.getCompletionsForSupports(s,i);else if(s instanceof Ke)this.getCompletionsForSupportsCondition(s,i);else if(s instanceof at)this.getCompletionsForExtendsReference(s,null,i);else if(s.type===ee.URILiteral)this.getCompletionForUriLiteralValue(s,i);else if(null===s.parent)this.getCompletionForTopLevel(i);else{if(s.type!==ee.StringLiteral||!this.isImportPathParent(s.parent.type))continue;this.getCompletionForImportPath(s,i)}if(i.items.length>0||this.offset>s.offset)return this.finalize(i)}return this.getCompletionsForStylesheet(i),0===i.items.length&&this.variablePrefix&&0===this.currentWord.indexOf(this.variablePrefix)&&this.getVariableProposals(null,i),this.finalize(i)}finally{this.position=null,this.currentWord=null,this.textDocument=null,this.styleSheet=null,this.symbolContext=null,this.defaultReplaceRange=null,this.nodePath=null}},e.prototype.isImportPathParent=function(e){return e===ee.Import},e.prototype.finalize=function(e){return e},e.prototype.findInNodePath=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=this.nodePath.length-1;n>=0;n--){var r=this.nodePath[n];if(-1!==e.indexOf(r.type))return r}return null},e.prototype.getCompletionsForDeclarationProperty=function(e,t){return this.getPropertyProposals(e,t)},e.prototype.getPropertyProposals=function(e,t){var n=this,r=this.isTriggerPropertyValueCompletionEnabled,i=this.isCompletePropertyWithSemicolonEnabled;return this.cssDataManager.getProperties().forEach((function(o){var s,a,l=!1;e?(s=n.getCompletionRange(e.getProperty()),a=o.name,an(e.colonPosition)||(a+=": ",l=!0)):(s=n.getCompletionRange(null),a=o.name+": ",l=!0),!e&&i&&(a+="$0;"),e&&!e.semicolonPosition&&i&&n.offset>=n.textDocument.offsetAt(s.end)&&(a+="$0;");var c={label:o.name,documentation:Et(o,n.doesSupportMarkdown()),tags:Qr(o)?[Yn.Deprecated]:[],textEdit:Dn.replace(s,a),insertTextFormat:Xn.Snippet,kind:Hn.Property};o.restrictions||(l=!1),r&&l&&(c.command={title:"Suggest",command:"editor.action.triggerSuggest"});var d=(255-("number"===typeof o.relevance?Math.min(Math.max(o.relevance,0),99):50)).toString(16),p=Y(o.name,"-")?Gr.VendorPrefixed:Gr.Normal;c.sortText=p+"_"+d,t.items.push(c)})),this.completionParticipants.forEach((function(e){e.onCssProperty&&e.onCssProperty({propertyName:n.currentWord,range:n.defaultReplaceRange})})),t},Object.defineProperty(e.prototype,"isTriggerPropertyValueCompletionEnabled",{get:function(){var e,t;return null===(t=null===(e=this.documentSettings)||void 0===e?void 0:e.triggerPropertyValueCompletion)||void 0===t||t},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"isCompletePropertyWithSemicolonEnabled",{get:function(){var e,t;return null===(t=null===(e=this.documentSettings)||void 0===e?void 0:e.completePropertyWithSemicolon)||void 0===t||t},enumerable:!1,configurable:!0}),e.prototype.getCompletionsForDeclarationValue=function(e,t){for(var n=this,r=e.getFullPropertyName(),i=this.cssDataManager.getProperty(r),o=e.getValue()||null;o&&o.hasChildren();)o=o.findChildAtOffset(this.offset,!1);if(this.completionParticipants.forEach((function(e){e.onCssPropertyValue&&e.onCssPropertyValue({propertyName:r,propertyValue:n.currentWord,range:n.getCompletionRange(o)})})),i){if(i.restrictions)for(var s=0,a=i.restrictions;s<a.length;s++){switch(a[s]){case"color":this.getColorProposals(i,o,t);break;case"position":this.getPositionProposals(i,o,t);break;case"repeat":this.getRepeatStyleProposals(i,o,t);break;case"line-style":this.getLineStyleProposals(i,o,t);break;case"line-width":this.getLineWidthProposals(i,o,t);break;case"geometry-box":this.getGeometryBoxProposals(i,o,t);break;case"box":this.getBoxProposals(i,o,t);break;case"image":this.getImageProposals(i,o,t);break;case"timing-function":this.getTimingFunctionProposals(i,o,t);break;case"shape":this.getBasicShapeProposals(i,o,t)}}this.getValueEnumProposals(i,o,t),this.getCSSWideKeywordProposals(i,o,t),this.getUnitProposals(i,o,t)}else for(var l=function(e,t){var n=t.getFullPropertyName(),r=new ei;function i(e){return(e instanceof le||e instanceof rt||e instanceof Qe)&&r.add(e.getText()),!0}function o(e){var t=e.getFullPropertyName();return n===t}function s(e){if(e instanceof ve&&e!==t&&o(e)){var n=e.getValue();n&&n.accept(i)}return!0}return e.accept(s),r}(this.styleSheet,e),c=0,d=l.getEntries();c<d.length;c++){var p=d[c];t.items.push({label:p,textEdit:Dn.replace(this.getCompletionRange(o),p),kind:Hn.Value})}return this.getVariableProposals(o,t),this.getTermProposals(i,o,t),t},e.prototype.getValueEnumProposals=function(e,t,n){if(e.values)for(var r=0,i=e.values;r<i.length;r++){var o=i[r],s=o.name,a=void 0;if(Z(s,")")){var l=s.lastIndexOf("(");-1!==l&&(s=s.substr(0,l)+"($1)",a=Yr)}var c=Gr.Enums;Y(o.name,"-")&&(c+=Gr.VendorPrefixed);var d={label:o.name,documentation:Et(o,this.doesSupportMarkdown()),tags:Qr(e)?[Yn.Deprecated]:[],textEdit:Dn.replace(this.getCompletionRange(t),s),sortText:c,kind:Hn.Value,insertTextFormat:a};n.items.push(d)}return n},e.prototype.getCSSWideKeywordProposals=function(e,t,n){for(var r in Yt)n.items.push({label:r,documentation:Yt[r],textEdit:Dn.replace(this.getCompletionRange(t),r),kind:Hn.Value});return n},e.prototype.getCompletionsForInterpolation=function(e,t){return this.offset>=e.offset+2&&this.getVariableProposals(null,t),t},e.prototype.getVariableProposals=function(e,t){for(var n=0,r=this.getSymbolContext().findSymbolsAtOffset(this.offset,te.Variable);n<r.length;n++){var i=r[n],o=Y(i.name,"--")?"var("+i.name+")":i.name,s={label:i.name,documentation:i.value?Q(i.value):i.value,textEdit:Dn.replace(this.getCompletionRange(e),o),kind:Hn.Variable,sortText:Gr.Variable};if("string"===typeof s.documentation&&ri(s.documentation)&&(s.kind=Hn.Color),i.node.type===ee.FunctionParameter){var a=i.node.getParent();a.type===ee.MixinDeclaration&&(s.detail=Xr("completion.argument","argument from '{0}'",a.getName()))}t.items.push(s)}return t},e.prototype.getVariableProposalsForCSSVarFunction=function(e){var t=this.getSymbolContext().findSymbolsAtOffset(this.offset,te.Variable);t=t.filter((function(e){return Y(e.name,"--")}));for(var n=0,r=t;n<r.length;n++){var i=r[n],o={label:i.name,documentation:i.value?Q(i.value):i.value,textEdit:Dn.replace(this.getCompletionRange(null),i.name),kind:Hn.Variable};"string"===typeof o.documentation&&ri(o.documentation)&&(o.kind=Hn.Color),e.items.push(o)}return e},e.prototype.getUnitProposals=function(e,t,n){var r="0";if(this.currentWord.length>0){var i=this.currentWord.match(/^-?\d[\.\d+]*/);i&&(r=i[0],n.isIncomplete=r.length===this.currentWord.length)}else 0===this.currentWord.length&&(n.isIncomplete=!0);if(t&&t.parent&&t.parent.type===ee.Term&&(t=t.getParent()),e.restrictions)for(var o=0,s=e.restrictions;o<s.length;o++){var a=s[o],l=tn[a];if(l)for(var c=0,d=l;c<d.length;c++){var p=r+d[c];n.items.push({label:p,textEdit:Dn.replace(this.getCompletionRange(t),p),kind:Hn.Unit})}}return n},e.prototype.getCompletionRange=function(e){if(e&&e.offset<=this.offset&&this.offset<=e.end){var t=-1!==e.end?this.textDocument.positionAt(e.end):this.position,n=this.textDocument.positionAt(e.offset);if(n.line===t.line)return un.create(n,t)}return this.defaultReplaceRange},e.prototype.getColorProposals=function(e,t,n){for(var r in Pt)n.items.push({label:r,documentation:Pt[r],textEdit:Dn.replace(this.getCompletionRange(t),r),kind:Hn.Color});for(var r in _t)n.items.push({label:r,documentation:_t[r],textEdit:Dn.replace(this.getCompletionRange(t),r),kind:Hn.Value});var i=new ei;this.styleSheet.acceptVisitor(new ni(i,this.offset));for(var o=0,s=i.getEntries();o<s.length;o++){r=s[o];n.items.push({label:r,textEdit:Dn.replace(this.getCompletionRange(t),r),kind:Hn.Color})}for(var a=function(e){var r=1,i=e.func.replace(/\[?\$(\w+)\]?/g,(function(e,t){return"${"+r+++":"+t+"}"}));n.items.push({label:e.func.substr(0,e.func.indexOf("(")),detail:e.func,documentation:e.desc,textEdit:Dn.replace(l.getCompletionRange(t),i),insertTextFormat:Yr,kind:Hn.Function})},l=this,c=0,d=Mt;c<d.length;c++){a(d[c])}return n},e.prototype.getPositionProposals=function(e,t,n){for(var r in qt)n.items.push({label:r,documentation:qt[r],textEdit:Dn.replace(this.getCompletionRange(t),r),kind:Hn.Value});return n},e.prototype.getRepeatStyleProposals=function(e,t,n){for(var r in Kt)n.items.push({label:r,documentation:Kt[r],textEdit:Dn.replace(this.getCompletionRange(t),r),kind:Hn.Value});return n},e.prototype.getLineStyleProposals=function(e,t,n){for(var r in Gt)n.items.push({label:r,documentation:Gt[r],textEdit:Dn.replace(this.getCompletionRange(t),r),kind:Hn.Value});return n},e.prototype.getLineWidthProposals=function(e,t,n){for(var r=0,i=Jt;r<i.length;r++){var o=i[r];n.items.push({label:o,textEdit:Dn.replace(this.getCompletionRange(t),o),kind:Hn.Value})}return n},e.prototype.getGeometryBoxProposals=function(e,t,n){for(var r in Xt)n.items.push({label:r,documentation:Xt[r],textEdit:Dn.replace(this.getCompletionRange(t),r),kind:Hn.Value});return n},e.prototype.getBoxProposals=function(e,t,n){for(var r in Ht)n.items.push({label:r,documentation:Ht[r],textEdit:Dn.replace(this.getCompletionRange(t),r),kind:Hn.Value});return n},e.prototype.getImageProposals=function(e,t,n){for(var r in Zt){var i=ti(r);n.items.push({label:r,documentation:Zt[r],textEdit:Dn.replace(this.getCompletionRange(t),i),kind:Hn.Function,insertTextFormat:r!==i?Yr:void 0})}return n},e.prototype.getTimingFunctionProposals=function(e,t,n){for(var r in Qt){var i=ti(r);n.items.push({label:r,documentation:Qt[r],textEdit:Dn.replace(this.getCompletionRange(t),i),kind:Hn.Function,insertTextFormat:r!==i?Yr:void 0})}return n},e.prototype.getBasicShapeProposals=function(e,t,n){for(var r in en){var i=ti(r);n.items.push({label:r,documentation:en[r],textEdit:Dn.replace(this.getCompletionRange(t),i),kind:Hn.Function,insertTextFormat:r!==i?Yr:void 0})}return n},e.prototype.getCompletionsForStylesheet=function(e){var t=this.styleSheet.findFirstChildBeforeOffset(this.offset);return t?t instanceof he?this.getCompletionsForRuleSet(t,e):t instanceof Ve?this.getCompletionsForSupports(t,e):e:this.getCompletionForTopLevel(e)},e.prototype.getCompletionForTopLevel=function(e){var t=this;return this.cssDataManager.getAtDirectives().forEach((function(n){e.items.push({label:n.name,textEdit:Dn.replace(t.getCompletionRange(null),n.name),documentation:Et(n,t.doesSupportMarkdown()),tags:Qr(n)?[Yn.Deprecated]:[],kind:Hn.Keyword})})),this.getCompletionsForSelector(null,!1,e),e},e.prototype.getCompletionsForRuleSet=function(e,t){var n=e.getDeclarations();return n&&n.endsWith("}")&&this.offset>=n.end?this.getCompletionForTopLevel(t):!n||this.offset<=n.offset?this.getCompletionsForSelector(e,e.isNested(),t):this.getCompletionsForDeclarations(e.getDeclarations(),t)},e.prototype.getCompletionsForSelector=function(e,t,n){var r=this,i=this.findInNodePath(ee.PseudoSelector,ee.IdentifierSelector,ee.ClassSelector,ee.ElementNameSelector);if(!i&&this.hasCharacterAtPosition(this.offset-this.currentWord.length-1,":")&&(this.currentWord=":"+this.currentWord,this.hasCharacterAtPosition(this.offset-this.currentWord.length-1,":")&&(this.currentWord=":"+this.currentWord),this.defaultReplaceRange=un.create(mn.create(this.position.line,this.position.character-this.currentWord.length),this.position)),this.cssDataManager.getPseudoClasses().forEach((function(e){var t=ti(e.name),o={label:e.name,textEdit:Dn.replace(r.getCompletionRange(i),t),documentation:Et(e,r.doesSupportMarkdown()),tags:Qr(e)?[Yn.Deprecated]:[],kind:Hn.Function,insertTextFormat:e.name!==t?Yr:void 0};Y(e.name,":-")&&(o.sortText=Gr.VendorPrefixed),n.items.push(o)})),this.cssDataManager.getPseudoElements().forEach((function(e){var t=ti(e.name),o={label:e.name,textEdit:Dn.replace(r.getCompletionRange(i),t),documentation:Et(e,r.doesSupportMarkdown()),tags:Qr(e)?[Yn.Deprecated]:[],kind:Hn.Function,insertTextFormat:e.name!==t?Yr:void 0};Y(e.name,"::-")&&(o.sortText=Gr.VendorPrefixed),n.items.push(o)})),!t){for(var o=0,s=nn;o<s.length;o++){var a=s[o];n.items.push({label:a,textEdit:Dn.replace(this.getCompletionRange(i),a),kind:Hn.Keyword})}for(var l=0,c=rn;l<c.length;l++){a=c[l];n.items.push({label:a,textEdit:Dn.replace(this.getCompletionRange(i),a),kind:Hn.Keyword})}}var d={};d[this.currentWord]=!0;var p=this.textDocument.getText();if(this.styleSheet.accept((function(e){if(e.type===ee.SimpleSelector&&e.length>0){var t=p.substr(e.offset,e.length);return"."!==t.charAt(0)||d[t]||(d[t]=!0,n.items.push({label:t,textEdit:Dn.replace(r.getCompletionRange(i),t),kind:Hn.Keyword})),!1}return!0})),e&&e.isNested()){var h=e.getSelectors().findFirstChildBeforeOffset(this.offset);h&&0===e.getSelectors().getChildren().indexOf(h)&&this.getPropertyProposals(null,n)}return n},e.prototype.getCompletionsForDeclarations=function(e,t){if(!e||this.offset===e.offset)return t;var n=e.findFirstChildBeforeOffset(this.offset);if(!n)return this.getCompletionsForDeclarationProperty(null,t);if(n instanceof ge){var r=n;if(!an(r.colonPosition)||this.offset<=r.colonPosition)return this.getCompletionsForDeclarationProperty(r,t);if(an(r.semicolonPosition)&&r.semicolonPosition<this.offset)return this.offset===r.semicolonPosition+1?t:this.getCompletionsForDeclarationProperty(null,t);if(r instanceof ve)return this.getCompletionsForDeclarationValue(r,t)}else n instanceof at?this.getCompletionsForExtendsReference(n,null,t):(this.currentWord&&"@"===this.currentWord[0]||n instanceof he)&&this.getCompletionsForDeclarationProperty(null,t);return t},e.prototype.getCompletionsForVariableDeclaration=function(e,t){return this.offset&&an(e.colonPosition)&&this.offset>e.colonPosition&&this.getVariableProposals(e.getValue(),t),t},e.prototype.getCompletionsForExpression=function(e,t){var n=e.getParent();if(n instanceof ke)return this.getCompletionsForFunctionArgument(n,n.getParent(),t),t;var r=e.findParent(ee.Declaration);if(!r)return this.getTermProposals(void 0,null,t),t;var i=e.findChildAtOffset(this.offset,!0);return i?i instanceof rt||i instanceof le?this.getCompletionsForDeclarationValue(r,t):t:this.getCompletionsForDeclarationValue(r,t)},e.prototype.getCompletionsForFunctionArgument=function(e,t,n){var r=t.getIdentifier();return r&&r.matches("var")&&(t.getArguments().hasChildren()&&t.getArguments().getChild(0)!==e||this.getVariableProposalsForCSSVarFunction(n)),n},e.prototype.getCompletionsForFunctionDeclaration=function(e,t){var n=e.getDeclarations();return n&&this.offset>n.offset&&this.offset<n.end&&this.getTermProposals(void 0,null,t),t},e.prototype.getCompletionsForMixinReference=function(e,t){for(var n=this,r=0,i=this.getSymbolContext().findSymbolsAtOffset(this.offset,te.Mixin);r<i.length;r++){var o=i[r];o.node instanceof pt&&t.items.push(this.makeTermProposal(o,o.node.getParameters(),null))}var s=e.getIdentifier()||null;return this.completionParticipants.forEach((function(e){e.onCssMixinReference&&e.onCssMixinReference({mixinName:n.currentWord,range:n.getCompletionRange(s)})})),t},e.prototype.getTermProposals=function(e,t,n){for(var r=0,i=this.getSymbolContext().findSymbolsAtOffset(this.offset,te.Function);r<i.length;r++){var o=i[r];o.node instanceof Te&&n.items.push(this.makeTermProposal(o,o.node.getParameters(),t))}return n},e.prototype.makeTermProposal=function(e,t,n){e.node;var r=t.getChildren().map((function(e){return e instanceof Se?e.getName():e.getText()})),i=e.name+"("+r.map((function(e,t){return"${"+(t+1)+":"+e+"}"})).join(", ")+")";return{label:e.name,detail:e.name+"("+r.join(", ")+")",textEdit:Dn.replace(this.getCompletionRange(n),i),insertTextFormat:Yr,kind:Hn.Function,sortText:Gr.Term}},e.prototype.getCompletionsForSupportsCondition=function(e,t){var n=e.findFirstChildBeforeOffset(this.offset);if(n){if(n instanceof ve)return!an(n.colonPosition)||this.offset<=n.colonPosition?this.getCompletionsForDeclarationProperty(n,t):this.getCompletionsForDeclarationValue(n,t);if(n instanceof Ke)return this.getCompletionsForSupportsCondition(n,t)}return an(e.lParent)&&this.offset>e.lParent&&(!an(e.rParent)||this.offset<=e.rParent)?this.getCompletionsForDeclarationProperty(null,t):t},e.prototype.getCompletionsForSupports=function(e,t){var n=e.getDeclarations();if(!n||this.offset<=n.offset){var r=e.findFirstChildBeforeOffset(this.offset);return r instanceof Ke?this.getCompletionsForSupportsCondition(r,t):t}return this.getCompletionForTopLevel(t)},e.prototype.getCompletionsForExtendsReference=function(e,t,n){return n},e.prototype.getCompletionForUriLiteralValue=function(e,t){var n,r,i;if(e.hasChildren()){var o=e.getChild(0);n=o.getText(),r=this.position,i=this.getCompletionRange(o)}else{n="",r=this.position;var s=this.textDocument.positionAt(e.offset+"url(".length);i=un.create(s,s)}return this.completionParticipants.forEach((function(e){e.onCssURILiteralValue&&e.onCssURILiteralValue({uriValue:n,position:r,range:i})})),t},e.prototype.getCompletionForImportPath=function(e,t){var n=this;return this.completionParticipants.forEach((function(t){t.onCssImportPath&&t.onCssImportPath({pathValue:e.getText(),position:n.position,range:n.getCompletionRange(e)})})),t},e.prototype.hasCharacterAtPosition=function(e,t){var n=this.textDocument.getText();return e>=0&&e<n.length&&n.charAt(e)===t},e.prototype.doesSupportMarkdown=function(){var e,t,n;if(!an(this.supportsMarkdown)){if(!an(this.lsOptions.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var r=null===(n=null===(t=null===(e=this.lsOptions.clientCapabilities.textDocument)||void 0===e?void 0:e.completion)||void 0===t?void 0:t.completionItem)||void 0===n?void 0:n.documentationFormat;this.supportsMarkdown=Array.isArray(r)&&-1!==r.indexOf(Gn.Markdown)}return this.supportsMarkdown},e}();function Qr(e){return!(!e.status||"nonstandard"!==e.status&&"obsolete"!==e.status)}var ei=function(){function e(){this.entries={}}return e.prototype.add=function(e){this.entries[e]=!0},e.prototype.getEntries=function(){return Object.keys(this.entries)},e}();function ti(e){return e.replace(/\(\)$/,"($1)")}var ni=function(){function e(e,t){this.entries=e,this.currentOffset=t}return e.prototype.visitNode=function(e){return(e instanceof Qe||e instanceof xe&&At(e))&&(this.currentOffset<e.offset||e.end<this.currentOffset)&&this.entries.add(e.getText()),!0},e}();function ri(e){return e.toLowerCase()in Pt||/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e)}var ii,oi=function(){var e=function(t,n){return e=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])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),si=wt(),ai=function(){function e(){this.parent=null,this.children=null,this.attributes=null}return e.prototype.findAttribute=function(e){if(this.attributes)for(var t=0,n=this.attributes;t<n.length;t++){var r=n[t];if(r.name===e)return r.value}return null},e.prototype.addChild=function(t){t instanceof e&&(t.parent=this),this.children||(this.children=[]),this.children.push(t)},e.prototype.append=function(e){if(this.attributes){var t=this.attributes[this.attributes.length-1];t.value=t.value+e}},e.prototype.prepend=function(e){if(this.attributes){var t=this.attributes[0];t.value=e+t.value}},e.prototype.findRoot=function(){for(var e=this;e.parent&&!(e.parent instanceof li);)e=e.parent;return e},e.prototype.removeChild=function(e){if(this.children){var t=this.children.indexOf(e);if(-1!==t)return this.children.splice(t,1),!0}return!1},e.prototype.addAttr=function(e,t){this.attributes||(this.attributes=[]);for(var n=0,r=this.attributes;n<r.length;n++){var i=r[n];if(i.name===e)return void(i.value+=" "+t)}this.attributes.push({name:e,value:t})},e.prototype.clone=function(t){void 0===t&&(t=!0);var n=new e;if(this.attributes){n.attributes=[];for(var r=0,i=this.attributes;r<i.length;r++){var o=i[r];n.addAttr(o.name,o.value)}}if(t&&this.children){n.children=[];for(var s=0;s<this.children.length;s++)n.addChild(this.children[s].clone())}return n},e.prototype.cloneWithParent=function(){var e=this.clone(!1);!this.parent||this.parent instanceof li||this.parent.cloneWithParent().addChild(e);return e},e}(),li=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return oi(t,e),t}(ai),ci=function(e){function t(t){var n=e.call(this)||this;return n.addAttr("name",t),n}return oi(t,e),t}(ai),di=function(){function e(e){this.quote=e,this.result=[]}return e.prototype.print=function(e){return this.result=[],e instanceof li?e.children&&this.doPrint(e.children,0):this.doPrint([e],0),[{language:"html",value:this.result.join("\n")}]},e.prototype.doPrint=function(e,t){for(var n=0,r=e;n<r.length;n++){var i=r[n];this.doPrintElement(i,t),i.children&&this.doPrint(i.children,t+1)}},e.prototype.writeLine=function(e,t){var n=new Array(e+1).join(" ");this.result.push(n+t)},e.prototype.doPrintElement=function(e,t){var n=e.findAttribute("name");if(e instanceof ci||"\u2026"===n)this.writeLine(t,n);else{var r=["<"];if(n?r.push(n):r.push("element"),e.attributes)for(var i=0,o=e.attributes;i<o.length;i++){var s=o[i];if("name"!==s.name){r.push(" "),r.push(s.name);var a=s.value;a&&(r.push("="),r.push(ii.ensure(a,this.quote)))}}r.push(">"),this.writeLine(t,r.join(""))}},e}();!function(e){function t(e){var t=e.match(/^['"](.*)["']$/);return t?t[1]:e}e.ensure=function(e,n){return n+t(e)+n},e.remove=t}(ii||(ii={}));var pi=function(){this.id=0,this.attr=0,this.tag=0};function hi(e,t){for(var n=new ai,r=0,i=e.getChildren();r<i.length;r++){var o=i[r];switch(o.type){case ee.SelectorCombinator:if(t){var s=o.getText().split("&");if(1===s.length){n.addAttr("name",s[0]);break}if(n=t.cloneWithParent(),s[0])n.findRoot().prepend(s[0]);for(var a=1;a<s.length;a++){if(a>1){var l=t.cloneWithParent();n.addChild(l.findRoot()),n=l}n.append(s[a])}}break;case ee.SelectorPlaceholder:if(o.matches("@at-root"))return n;case ee.ElementNameSelector:var c=o.getText();n.addAttr("name","*"===c?"element":mi(c));break;case ee.ClassSelector:n.addAttr("class",mi(o.getText().substring(1)));break;case ee.IdentifierSelector:n.addAttr("id",mi(o.getText().substring(1)));break;case ee.MixinDeclaration:n.addAttr("class",o.getName());break;case ee.PseudoSelector:n.addAttr(mi(o.getText()),"");break;case ee.AttributeSelector:var d=o,p=d.getIdentifier();if(p){var h=d.getValue(),m=d.getOperator(),u=void 0;if(h&&m)switch(mi(m.getText())){case"|=":u=ii.remove(mi(h.getText()))+"-\u2026";break;case"^=":u=ii.remove(mi(h.getText()))+"\u2026";break;case"$=":u="\u2026"+ii.remove(mi(h.getText()));break;case"~=":u=" \u2026 "+ii.remove(mi(h.getText()))+" \u2026 ";break;case"*=":u="\u2026"+ii.remove(mi(h.getText()))+"\u2026";break;default:u=ii.remove(mi(h.getText()))}n.addAttr(mi(p.getText()),u)}}}return n}function mi(e){var t=new X;t.setSource(e);var n=t.scanUnquotedString();return n?n.text:e}var ui=function(){function e(e){this.cssDataManager=e}return e.prototype.selectorToMarkedString=function(e){var t=function(e){if(e.matches("@at-root"))return null;var t=new li,n=[],r=e.getParent();if(r instanceof he)for(var i=r.getParent();i&&!gi(i);){if(i instanceof he){if(i.getSelectors().matches("@at-root"))break;n.push(i)}i=i.getParent()}for(var o=new fi(t),s=n.length-1;s>=0;s--){var a=n[s].getSelectors().getChild(0);a&&o.processSelector(a)}return o.processSelector(e),t}(e);if(t){var n=new di('"').print(t);return n.push(this.selectorToSpecificityMarkedString(e)),n}return[]},e.prototype.simpleSelectorToMarkedString=function(e){var t=hi(e),n=new di('"').print(t);return n.push(this.selectorToSpecificityMarkedString(e)),n},e.prototype.isPseudoElementIdentifier=function(e){var t=e.match(/^::?([\w-]+)/);return!!t&&!!this.cssDataManager.getPseudoElement("::"+t[1])},e.prototype.selectorToSpecificityMarkedString=function(e){var t=this,n=new pi;return function e(r){for(var i=0,o=r.getChildren();i<o.length;i++){var s=o[i];switch(s.type){case ee.IdentifierSelector:n.id++;break;case ee.ClassSelector:case ee.AttributeSelector:n.attr++;break;case ee.ElementNameSelector:if(s.matches("*"))break;n.tag++;break;case ee.PseudoSelector:var a=s.getText();if(t.isPseudoElementIdentifier(a))n.tag++;else{if(a.match(/^:not/i))break;n.attr++}}s.getChildren().length>0&&e(s)}}(e),si("specificity","[Selector Specificity](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity): ({0}, {1}, {2})",n.id,n.attr,n.tag)},e}(),fi=function(){function e(e){this.prev=null,this.element=e}return e.prototype.processSelector=function(e){var t=null;if(!(this.element instanceof li)&&e.getChildren().some((function(e){return e.hasChildren()&&e.getChild(0).type===ee.SelectorCombinator}))){var n=this.element.findRoot();n.parent instanceof li&&(t=this.element,this.element=n.parent,this.element.removeChild(n),this.prev=null)}for(var r=0,i=e.getChildren();r<i.length;r++){var o=i[r];if(o instanceof ue){if(this.prev instanceof ue){var s=new ci("\u2026");this.element.addChild(s),this.element=s}else this.prev&&(this.prev.matches("+")||this.prev.matches("~"))&&this.element.parent&&(this.element=this.element.parent);this.prev&&this.prev.matches("~")&&this.element.addChild(new ci("\u22ee"));var a=hi(o,t),l=a.findRoot();this.element.addChild(l),this.element=a}(o instanceof ue||o.type===ee.SelectorCombinatorParent||o.type===ee.SelectorCombinatorShadowPiercingDescendant||o.type===ee.SelectorCombinatorSibling||o.type===ee.SelectorCombinatorAllSiblings)&&(this.prev=o)}},e}();function gi(e){switch(e.type){case ee.MixinDeclaration:case ee.Stylesheet:return!0}return!1}!function(){function e(e,t){this.clientCapabilities=e,this.cssDataManager=t,this.selectorPrinting=new ui(t)}e.prototype.configure=function(e){this.defaultSettings=e},e.prototype.doHover=function(e,t,n,r){function i(t){return un.create(e.positionAt(t.offset),e.positionAt(t.end))}void 0===r&&(r=this.defaultSettings);for(var o=ie(n,e.offsetAt(t)),s=null,a=0;a<o.length;a++){var l=o[a];if(l instanceof me){s={contents:this.selectorPrinting.selectorToMarkedString(l),range:i(l)};break}if(l instanceof ue){Y(l.getText(),"@")||(s={contents:this.selectorPrinting.simpleSelectorToMarkedString(l),range:i(l)});break}if(l instanceof ve){var c=l.getFullPropertyName();(p=this.cssDataManager.getProperty(c))&&(s=(h=Et(p,this.doesSupportMarkdown(),r))?{contents:h,range:i(l)}:null)}else if(l instanceof ht){var d=l.getText();(p=this.cssDataManager.getAtDirective(d))&&(s=(h=Et(p,this.doesSupportMarkdown(),r))?{contents:h,range:i(l)}:null)}else if(l instanceof se&&l.type===ee.PseudoSelector){var p,h,m=l.getText();(p="::"===m.slice(0,2)?this.cssDataManager.getPseudoElement(m):this.cssDataManager.getPseudoClass(m))&&(s=(h=Et(p,this.doesSupportMarkdown(),r))?{contents:h,range:i(l)}:null)}else;}return s&&(s.contents=this.convertContents(s.contents)),s},e.prototype.convertContents=function(e){return this.doesSupportMarkdown()||"string"===typeof e?e:"kind"in e?{kind:"plaintext",value:e.value}:Array.isArray(e)?e.map((function(e){return"string"===typeof e?e:e.value})):e.value},e.prototype.doesSupportMarkdown=function(){if(!an(this.supportsMarkdown)){if(!an(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;var e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.hover;this.supportsMarkdown=e&&e.contentFormat&&Array.isArray(e.contentFormat)&&-1!==e.contentFormat.indexOf(Gn.Markdown)}return this.supportsMarkdown}}();var bi=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(t){o(t)}}function a(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))},vi=function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"===typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(a){o=[6,a],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}},yi=wt(),wi=function(){function e(e){this.fileSystemProvider=e}return e.prototype.findDefinition=function(e,t,n){var r=new Vn(n),i=re(n,e.offsetAt(t));if(!i)return null;var o=r.findSymbolFromNode(i);return o?{uri:e.uri,range:xi(o.node,e)}:null},e.prototype.findReferences=function(e,t,n){return this.findDocumentHighlights(e,t,n).map((function(t){return{uri:e.uri,range:t.range}}))},e.prototype.findDocumentHighlights=function(e,t,n){var r=[],i=re(n,e.offsetAt(t));if(!i||i.type===ee.Stylesheet||i.type===ee.Declarations)return r;i.type===ee.Identifier&&i.parent&&i.parent.type===ee.ClassSelector&&(i=i.parent);var o=new Vn(n),s=o.findSymbolFromNode(i),a=i.getText();return n.accept((function(t){if(s){if(o.matchesSymbol(t,s))return r.push({kind:Si(t),range:xi(t,e)}),!1}else i&&i.type===t.type&&t.matches(a)&&r.push({kind:Si(t),range:xi(t,e)});return!0})),r},e.prototype.isRawStringDocumentLinkNode=function(e){return e.type===ee.Import},e.prototype.findDocumentLinks=function(e,t,n){for(var r=this.findUnresolvedLinks(e,t),i=0;i<r.length;i++){var o=r[i].target;if(o&&!/^\w+:\/\//g.test(o)){var s=n.resolveReference(o,e.uri);s&&(r[i].target=s)}}return r},e.prototype.findDocumentLinks2=function(e,t,n){return bi(this,void 0,void 0,(function(){var r,i,o,s,a,l,c;return vi(this,(function(d){switch(d.label){case 0:r=this.findUnresolvedLinks(e,t),i=[],o=0,s=r,d.label=1;case 1:return o<s.length?(a=s[o],!(l=a.target)||/^\w+:\/\//g.test(l)?[3,3]:[4,this.resolveRelativeReference(l,e.uri,n)]):[3,5];case 2:return void 0!==(c=d.sent())&&(a.target=c,i.push(a)),[3,4];case 3:i.push(a),d.label=4;case 4:return o++,[3,1];case 5:return[2,i]}}))}))},e.prototype.findUnresolvedLinks=function(e,t){var n=this,r=[],i=function(t){var n=t.getText(),i=xi(t,e);i.start.line===i.end.line&&i.start.character===i.end.character||((Y(n,"'")||Y(n,'"'))&&(n=n.slice(1,-1)),r.push({target:n,range:i}))};return t.accept((function(e){if(e.type===ee.URILiteral){var t=e.getChild(0);return t&&i(t),!1}if(e.parent&&n.isRawStringDocumentLinkNode(e.parent)){var r=e.getText();return(Y(r,"'")||Y(r,'"'))&&i(e),!1}return!0})),r},e.prototype.findDocumentSymbols=function(e,t){var n=[];return t.accept((function(t){var r={name:null,kind:lr.Class,location:null},i=t;if(t instanceof me)return r.name=t.getText(),(i=t.findAParent(ee.Ruleset,ee.ExtendsReference))&&(r.location=fn.create(e.uri,xi(i,e)),n.push(r)),!1;if(t instanceof it)r.name=t.getName(),r.kind=lr.Variable;else if(t instanceof pt)r.name=t.getName(),r.kind=lr.Method;else if(t instanceof Te)r.name=t.getName(),r.kind=lr.Function;else if(t instanceof Pe)r.name=yi("literal.keyframes","@keyframes {0}",t.getName());else if(t instanceof Ie)r.name=yi("literal.fontface","@font-face");else if(t instanceof Ue){var o=t.getChild(0);o instanceof $e&&(r.name="@media "+o.getText(),r.kind=lr.Module)}return r.name&&(r.location=fn.create(e.uri,xi(i,e)),n.push(r)),!0})),n},e.prototype.findDocumentColors=function(e,t){var n=[];return t.accept((function(t){var r=function(e,t){var n=$t(e);if(n){return{color:n,range:xi(e,t)}}return null}(t,e);return r&&n.push(r),!0})),n},e.prototype.getColorPresentations=function(e,t,n,r){var i,o=[],s=Math.round(255*n.red),a=Math.round(255*n.green),l=Math.round(255*n.blue);i=1===n.alpha?"rgb("+s+", "+a+", "+l+")":"rgba("+s+", "+a+", "+l+", "+n.alpha+")",o.push({label:i,textEdit:Dn.replace(r,i)}),i=1===n.alpha?"#"+ki(s)+ki(a)+ki(l):"#"+ki(s)+ki(a)+ki(l)+ki(Math.round(255*n.alpha)),o.push({label:i,textEdit:Dn.replace(r,i)});var c=function(e){var t=e.red,n=e.green,r=e.blue,i=e.alpha,o=Math.max(t,n,r),s=Math.min(t,n,r),a=0,l=0,c=(s+o)/2,d=o-s;if(d>0){switch(l=Math.min(c<=.5?d/(2*c):d/(2-2*c),1),o){case t:a=(n-r)/d+(n<r?6:0);break;case n:a=(r-t)/d+2;break;case r:a=(t-n)/d+4}a*=60,a=Math.round(a)}return{h:a,s:l,l:c,a:i}}(n);return i=1===c.a?"hsl("+c.h+", "+Math.round(100*c.s)+"%, "+Math.round(100*c.l)+"%)":"hsla("+c.h+", "+Math.round(100*c.s)+"%, "+Math.round(100*c.l)+"%, "+c.a+")",o.push({label:i,textEdit:Dn.replace(r,i)}),o},e.prototype.doRename=function(e,t,n,r){var i,o=this.findDocumentHighlights(e,t,r).map((function(e){return Dn.replace(e.range,n)}));return{changes:(i={},i[e.uri]=o,i)}},e.prototype.resolveRelativeReference=function(e,t,n){return bi(this,void 0,void 0,(function(){var r,i,o,s,a;return vi(this,(function(l){switch(l.label){case 0:return"~"===e[0]&&"/"!==e[1]&&this.fileSystemProvider?(e=e.substring(1),Y(t,"file://")?(r=function(e){if("@"===e[0])return e.substring(0,e.indexOf("/",e.indexOf("/")+1));return e.substring(0,e.indexOf("/"))}(e),i=n.resolveReference("/",t),o=Or(t),[4,this.resolvePathToModule(r,o,i)]):[3,2]):[3,3];case 1:if(s=l.sent())return a=e.substring(r.length+1),[2,Wr(s,a)];l.label=2;case 2:case 3:return[2,n.resolveReference(e,t)]}}))}))},e.prototype.resolvePathToModule=function(e,t,n){return bi(this,void 0,void 0,(function(){var r;return vi(this,(function(i){switch(i.label){case 0:return r=Wr(t,"node_modules",e,"package.json"),[4,this.fileExists(r)];case 1:return i.sent()?[2,Or(r)]:n&&t.startsWith(n)&&t.length!==n.length?[2,this.resolvePathToModule(e,Or(t),n)]:[2,void 0]}}))}))},e.prototype.fileExists=function(e){return bi(this,void 0,void 0,(function(){var t;return vi(this,(function(n){switch(n.label){case 0:if(!this.fileSystemProvider)return[2,!1];n.label=1;case 1:return n.trys.push([1,3,,4]),[4,this.fileSystemProvider.stat(e)];case 2:return(t=n.sent()).type===Er.Unknown&&-1===t.size?[2,!1]:[2,!0];case 3:return n.sent(),[2,!1];case 4:return[2]}}))}))},e}();function xi(e,t){return un.create(t.positionAt(e.offset),t.positionAt(e.end))}function Si(e){if(e.type===ee.Selector)return sr.Write;if(e instanceof le&&e.parent&&e.parent instanceof we&&e.isCustomProperty)return sr.Write;if(e.parent)switch(e.parent.type){case ee.FunctionDeclaration:case ee.MixinDeclaration:case ee.Keyframe:case ee.VariableDeclaration:case ee.FunctionParameter:return sr.Write}return sr.Read}function ki(e){var t=e.toString(16);return 2!==t.length?"0"+t:t}var Ci=wt(),Fi=oe.Warning,Ei=oe.Error,zi=oe.Ignore,Di=function(e,t,n){this.id=e,this.message=t,this.defaultValue=n},Ti=function(e,t,n){this.id=e,this.message=t,this.defaultValue=n},Ri={AllVendorPrefixes:new Di("compatibleVendorPrefixes",Ci("rule.vendorprefixes.all","When using a vendor-specific prefix make sure to also include all other vendor-specific properties"),zi),IncludeStandardPropertyWhenUsingVendorPrefix:new Di("vendorPrefix",Ci("rule.standardvendorprefix.all","When using a vendor-specific prefix also include the standard property"),Fi),DuplicateDeclarations:new Di("duplicateProperties",Ci("rule.duplicateDeclarations","Do not use duplicate style definitions"),zi),EmptyRuleSet:new Di("emptyRules",Ci("rule.emptyRuleSets","Do not use empty rulesets"),Fi),ImportStatemement:new Di("importStatement",Ci("rule.importDirective","Import statements do not load in parallel"),zi),BewareOfBoxModelSize:new Di("boxModel",Ci("rule.bewareOfBoxModelSize","Do not use width or height when using padding or border"),zi),UniversalSelector:new Di("universalSelector",Ci("rule.universalSelector","The universal selector (*) is known to be slow"),zi),ZeroWithUnit:new Di("zeroUnits",Ci("rule.zeroWidthUnit","No unit for zero needed"),zi),RequiredPropertiesForFontFace:new Di("fontFaceProperties",Ci("rule.fontFaceProperties","@font-face rule must define 'src' and 'font-family' properties"),Fi),HexColorLength:new Di("hexColorLength",Ci("rule.hexColor","Hex colors must consist of three, four, six or eight hex numbers"),Ei),ArgsInColorFunction:new Di("argumentsInColorFunction",Ci("rule.colorFunction","Invalid number of parameters"),Ei),UnknownProperty:new Di("unknownProperties",Ci("rule.unknownProperty","Unknown property."),Fi),UnknownAtRules:new Di("unknownAtRules",Ci("rule.unknownAtRules","Unknown at-rule."),Fi),IEStarHack:new Di("ieHack",Ci("rule.ieHack","IE hacks are only necessary when supporting IE7 and older"),zi),UnknownVendorSpecificProperty:new Di("unknownVendorSpecificProperties",Ci("rule.unknownVendorSpecificProperty","Unknown vendor specific property."),zi),PropertyIgnoredDueToDisplay:new Di("propertyIgnoredDueToDisplay",Ci("rule.propertyIgnoredDueToDisplay","Property is ignored due to the display."),Fi),AvoidImportant:new Di("important",Ci("rule.avoidImportant","Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."),zi),AvoidFloat:new Di("float",Ci("rule.avoidFloat","Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."),zi),AvoidIdSelector:new Di("idSelector",Ci("rule.avoidIdSelector","Selectors should not contain IDs because these rules are too tightly coupled with the HTML."),zi)},Ii={ValidProperties:new Ti("validProperties",Ci("rule.validProperties","A list of properties that are not validated against the `unknownProperties` rule."),[])},Mi=function(){function e(e){void 0===e&&(e={}),this.conf=e}return e.prototype.getRule=function(e){if(this.conf.hasOwnProperty(e.id)){var t=function(e){switch(e){case"ignore":return oe.Ignore;case"warning":return oe.Warning;case"error":return oe.Error}return null}(this.conf[e.id]);if(t)return t}return e.defaultValue},e.prototype.getSetting=function(e){return this.conf[e.id]},e}();var Pi=wt(),_i=(function(){function e(e){this.cssDataManager=e}e.prototype.doCodeActions=function(e,t,n,r){return this.doCodeActions2(e,t,n,r).map((function(t){var n=t.edit&&t.edit.documentChanges&&t.edit.documentChanges[0];return zn.create(t.title,"_css.applyCodeAction",e.uri,e.version,n&&n.edits)}))},e.prototype.doCodeActions2=function(e,t,n,r){var i=[];if(n.diagnostics)for(var o=0,s=n.diagnostics;o<s.length;o++){var a=s[o];this.appendFixesForMarker(e,r,a,i)}return i},e.prototype.getFixesForUnknownProperty=function(e,t,n,r){var i=t.getName(),o=[];this.cssDataManager.getProperties().forEach((function(e){var t=function(e,t,n){void 0===n&&(n=4);var r=Math.abs(e.length-t.length);if(r>n)return 0;var i,o,s=[],a=[];for(i=0;i<t.length+1;++i)a.push(0);for(i=0;i<e.length+1;++i)s.push(a);for(i=1;i<e.length+1;++i)for(o=1;o<t.length+1;++o)e[i-1]===t[o-1]?s[i][o]=s[i-1][o-1]+1:s[i][o]=Math.max(s[i-1][o],s[i][o-1]);return s[e.length][t.length]-Math.sqrt(r)}(i,e.name);t>=i.length/2&&o.push({property:e.name,score:t})})),o.sort((function(e,t){return t.score-e.score||e.property.localeCompare(t.property)}));for(var s=3,a=0,l=o;a<l.length;a++){var c=l[a].property,d=Pi("css.codeaction.rename","Rename to '{0}'",c),p=Dn.replace(n.range,c),h=$n.create(e.uri,e.version),m={documentChanges:[Mn.create(h,[p])]},u=ur.create(d,m,hr.QuickFix);if(u.diagnostics=[n],r.push(u),--s<=0)return}},e.prototype.appendFixesForMarker=function(e,t,n,r){if(n.code===Ri.UnknownProperty.id)for(var i=e.offsetAt(n.range.start),o=e.offsetAt(n.range.end),s=ie(t,i),a=s.length-1;a>=0;a--){var l=s[a];if(l instanceof ve){var c=l.getProperty();if(c&&c.offset===i&&c.end===o)return void this.getFixesForUnknownProperty(e,c,n,r)}}}}(),function(e){this.fullPropertyName=e.getFullPropertyName().toLowerCase(),this.node=e});function Ni(e,t,n,r){var i=e[t];i.value=n,n&&(cn(i.properties,r)||i.properties.push(r))}function Ai(e,t,n,r){"top"===t||"right"===t||"bottom"===t||"left"===t?Ni(e,t,n,r):function(e,t,n){Ni(e,"top",t,n),Ni(e,"right",t,n),Ni(e,"bottom",t,n),Ni(e,"left",t,n)}(e,n,r)}function Oi(e,t,n){switch(t.length){case 1:Ai(e,void 0,t[0],n);break;case 2:Ai(e,"top",t[0],n),Ai(e,"bottom",t[0],n),Ai(e,"right",t[1],n),Ai(e,"left",t[1],n);break;case 3:Ai(e,"top",t[0],n),Ai(e,"right",t[1],n),Ai(e,"left",t[1],n),Ai(e,"bottom",t[2],n);break;case 4:Ai(e,"top",t[0],n),Ai(e,"right",t[1],n),Ai(e,"bottom",t[2],n),Ai(e,"left",t[3],n)}}function Wi(e,t){for(var n=0,r=t;n<r.length;n++){var i=r[n];if(e.matches(i))return!0}return!1}function Li(e,t){return void 0===t&&(t=!0),(!t||!Wi(e,["initial","unset"]))&&0!==parseFloat(e.getText())}function ji(e,t){return void 0===t&&(t=!0),e.map((function(e){return Li(e,t)}))}function Ui(e,t){return void 0===t&&(t=!0),!Wi(e,["none","hidden"])&&(!t||!Wi(e,["initial","unset"]))}function Vi(e,t){return void 0===t&&(t=!0),e.map((function(e){return Ui(e,t)}))}function Bi(e){var t=e.getChildren();if(1===t.length)return Li(i=t[0])&&Ui(i);for(var n=0,r=t;n<r.length;n++){var i;if(!Li(i=r[n],!1)||!Ui(i,!1))return!1}return!0}var $i=wt(),qi=function(){function e(){this.data={}}return e.prototype.add=function(e,t,n){var r=this.data[e];r||(r={nodes:[],names:[]},this.data[e]=r),r.names.push(t),n&&r.nodes.push(n)},e}(),Ki=function(){function e(e,t,n){var r=this;this.cssDataManager=n,this.warnings=[],this.settings=t,this.documentText=e.getText(),this.keyframes=new qi,this.validProperties={};var i=t.getSetting(Ii.ValidProperties);Array.isArray(i)&&i.forEach((function(e){if("string"===typeof e){var t=e.trim().toLowerCase();t.length&&(r.validProperties[t]=!0)}}))}return e.entries=function(t,n,r,i,o){var s=new e(n,r,i);return t.acceptVisitor(s),s.completeValidations(),s.getEntries(o)},e.prototype.isValidPropertyDeclaration=function(e){var t=e.fullPropertyName;return this.validProperties[t]},e.prototype.fetch=function(e,t){for(var n=[],r=0,i=e;r<i.length;r++){var o=i[r];o.fullPropertyName===t&&n.push(o)}return n},e.prototype.fetchWithValue=function(e,t,n){for(var r=[],i=0,o=e;i<o.length;i++){var s=o[i];if(s.fullPropertyName===t){var a=s.node.getValue();a&&this.findValueInExpression(a,n)&&r.push(s)}}return r},e.prototype.findValueInExpression=function(e,t){var n=!1;return e.accept((function(e){return e.type===ee.Identifier&&e.matches(t)&&(n=!0),!n})),n},e.prototype.getEntries=function(e){return void 0===e&&(e=oe.Warning|oe.Error),this.warnings.filter((function(t){return 0!==(t.getLevel()&e)}))},e.prototype.addEntry=function(e,t,n){var r=new bt(e,t,this.settings.getRule(t),n);this.warnings.push(r)},e.prototype.getMissingNames=function(e,t){for(var n=e.slice(0),r=0;r<t.length;r++){var i=n.indexOf(t[r]);-1!==i&&(n[i]=null)}var o=null;for(r=0;r<n.length;r++){var s=n[r];s&&(o=null===o?$i("namelist.single","'{0}'",s):$i("namelist.concatenated","{0}, '{1}'",o,s))}return o},e.prototype.visitNode=function(e){switch(e.type){case ee.UnknownAtRule:return this.visitUnknownAtRule(e);case ee.Keyframe:return this.visitKeyframe(e);case ee.FontFace:return this.visitFontFace(e);case ee.Ruleset:return this.visitRuleSet(e);case ee.SimpleSelector:return this.visitSimpleSelector(e);case ee.Function:return this.visitFunction(e);case ee.NumericValue:return this.visitNumericValue(e);case ee.Import:return this.visitImport(e);case ee.HexColorValue:return this.visitHexColorValue(e);case ee.Prio:return this.visitPrio(e);case ee.IdentifierSelector:return this.visitIdentifierSelector(e)}return!0},e.prototype.completeValidations=function(){this.validateKeyframes()},e.prototype.visitUnknownAtRule=function(e){var t=e.getChild(0);return!!t&&(!this.cssDataManager.getAtDirective(t.getText())&&(this.addEntry(t,Ri.UnknownAtRules,"Unknown at rule "+t.getText()),!0))},e.prototype.visitKeyframe=function(e){var t=e.getKeyword();if(!t)return!1;var n=t.getText();return this.keyframes.add(e.getName(),n,"@keyframes"!==n?t:null),!0},e.prototype.validateKeyframes=function(){var e=["@-webkit-keyframes","@-moz-keyframes","@-o-keyframes"];for(var t in this.keyframes.data){var n=this.keyframes.data[t].names,r=-1===n.indexOf("@keyframes");if(r||1!==n.length){var i=this.getMissingNames(e,n);if(i||r)for(var o=0,s=this.keyframes.data[t].nodes;o<s.length;o++){var a=s[o];if(r){var l=$i("keyframes.standardrule.missing","Always define standard rule '@keyframes' when defining keyframes.");this.addEntry(a,Ri.IncludeStandardPropertyWhenUsingVendorPrefix,l)}if(i){l=$i("keyframes.vendorspecific.missing","Always include all vendor specific rules: Missing: {0}",i);this.addEntry(a,Ri.AllVendorPrefixes,l)}}}}return!0},e.prototype.visitSimpleSelector=function(e){var t=this.documentText.charAt(e.offset);return 1===e.length&&"*"===t&&this.addEntry(e,Ri.UniversalSelector),!0},e.prototype.visitIdentifierSelector=function(e){return this.addEntry(e,Ri.AvoidIdSelector),!0},e.prototype.visitImport=function(e){return this.addEntry(e,Ri.ImportStatemement),!0},e.prototype.visitRuleSet=function(t){var n=t.getDeclarations();if(!n)return!1;n.hasChildren()||this.addEntry(t.getSelectors(),Ri.EmptyRuleSet);for(var r=[],i=0,o=n.getChildren();i<o.length;i++){(v=o[i])instanceof ve&&r.push(new _i(v))}var s=function(e){for(var t={top:{value:!1,properties:[]},right:{value:!1,properties:[]},bottom:{value:!1,properties:[]},left:{value:!1,properties:[]}},n=0,r=e;n<r.length;n++){var i=r[n],o=i.node.value;if("undefined"!==typeof o)switch(i.fullPropertyName){case"box-sizing":return{top:{value:!1,properties:[]},right:{value:!1,properties:[]},bottom:{value:!1,properties:[]},left:{value:!1,properties:[]}};case"width":t.width=i;break;case"height":t.height=i;break;default:var s=i.fullPropertyName.split("-");switch(s[0]){case"border":switch(s[1]){case void 0:case"top":case"right":case"bottom":case"left":switch(s[2]){case void 0:Ai(t,s[1],Bi(o),i);break;case"width":Ai(t,s[1],Li(o,!1),i);break;case"style":Ai(t,s[1],Ui(o,!0),i)}break;case"width":Oi(t,ji(o.getChildren(),!1),i);break;case"style":Oi(t,Vi(o.getChildren(),!0),i)}break;case"padding":1===s.length?Oi(t,ji(o.getChildren(),!0),i):Ai(t,s[1],Li(o,!0),i)}}}return t}(r);if(s.width){var a=[];if(s.right.value&&(a=dn(a,s.right.properties)),s.left.value&&(a=dn(a,s.left.properties)),0!==a.length){for(var l=0,c=a;l<c.length;l++){var d=c[l];this.addEntry(d.node,Ri.BewareOfBoxModelSize)}this.addEntry(s.width.node,Ri.BewareOfBoxModelSize)}}if(s.height){a=[];if(s.top.value&&(a=dn(a,s.top.properties)),s.bottom.value&&(a=dn(a,s.bottom.properties)),0!==a.length){for(var p=0,h=a;p<h.length;p++){d=h[p];this.addEntry(d.node,Ri.BewareOfBoxModelSize)}this.addEntry(s.height.node,Ri.BewareOfBoxModelSize)}}var m=this.fetchWithValue(r,"display","inline-block");if(m.length>0)for(var u=this.fetch(r,"float"),f=0;f<u.length;f++){var g=u[f].node;(w=g.getValue())&&!w.matches("none")&&this.addEntry(g,Ri.PropertyIgnoredDueToDisplay,$i("rule.propertyIgnoredDueToDisplayInlineBlock","inline-block is ignored due to the float. If 'float' has a value other than 'none', the box is floated and 'display' is treated as 'block'"))}if((m=this.fetchWithValue(r,"display","block")).length>0)for(u=this.fetch(r,"vertical-align"),f=0;f<u.length;f++)this.addEntry(u[f].node,Ri.PropertyIgnoredDueToDisplay,$i("rule.propertyIgnoredDueToDisplayBlock","Property is ignored due to the display. With 'display: block', vertical-align should not be used."));var b=this.fetch(r,"float");for(f=0;f<b.length;f++){var v=b[f];this.isValidPropertyDeclaration(v)||this.addEntry(v.node,Ri.AvoidFloat)}for(var y=0;y<r.length;y++){var w;if("background"!==(v=r[y]).fullPropertyName&&!this.validProperties[v.fullPropertyName])if((w=v.node.getValue())&&"-"!==this.documentText.charAt(w.offset)){var x=this.fetch(r,v.fullPropertyName);if(x.length>1)for(var S=0;S<x.length;S++){var k=x[S].node.getValue();k&&"-"!==this.documentText.charAt(k.offset)&&x[S]!==v&&this.addEntry(v.node,Ri.DuplicateDeclarations)}}}if(!t.getSelectors().matches(":export")){for(var C=new qi,F=!1,E=0,z=r;E<z.length;E++){var D=(v=z[E]).node;if(this.isCSSDeclaration(D)){var T=v.fullPropertyName,R=T.charAt(0);if("-"===R){if("-"!==T.charAt(1)){this.cssDataManager.isKnownProperty(T)||this.validProperties[T]||this.addEntry(D.getProperty(),Ri.UnknownVendorSpecificProperty);var I=D.getNonPrefixedPropertyName();C.add(I,T,D.getProperty())}}else{var M=T;"*"!==R&&"_"!==R||(this.addEntry(D.getProperty(),Ri.IEStarHack),T=T.substr(1)),this.cssDataManager.isKnownProperty(M)||this.cssDataManager.isKnownProperty(T)||this.validProperties[T]||this.addEntry(D.getProperty(),Ri.UnknownProperty,$i("property.unknownproperty.detailed","Unknown property: '{0}'",D.getFullPropertyName())),C.add(T,T,null)}}else F=!0}if(!F)for(var P in C.data){var _=C.data[P],N=_.names,A=this.cssDataManager.isStandardProperty(P)&&-1===N.indexOf(P);if(A||1!==N.length){for(var O=[],W=(y=0,e.prefixes.length);y<W;y++){var L=e.prefixes[y];this.cssDataManager.isStandardProperty(L+P)&&O.push(L+P)}var j=this.getMissingNames(O,N);if(j||A)for(var U=0,V=_.nodes;U<V.length;U++){var B=V[U];if(A){var $=$i("property.standard.missing","Also define the standard property '{0}' for compatibility",P);this.addEntry(B,Ri.IncludeStandardPropertyWhenUsingVendorPrefix,$)}if(j){$=$i("property.vendorspecific.missing","Always include all vendor specific properties: Missing: {0}",j);this.addEntry(B,Ri.AllVendorPrefixes,$)}}}}}return!0},e.prototype.visitPrio=function(e){return this.addEntry(e,Ri.AvoidImportant),!0},e.prototype.visitNumericValue=function(e){var t=e.findParent(ee.Function);if(t&&"calc"===t.getName())return!0;var n=e.findParent(ee.Declaration);if(n&&n.getValue()){var r=e.getValue();if(!r.unit||-1===tn.length.indexOf(r.unit.toLowerCase()))return!0;0===parseFloat(r.value)&&r.unit&&!this.validProperties[n.getFullPropertyName()]&&this.addEntry(e,Ri.ZeroWithUnit)}return!0},e.prototype.visitFontFace=function(e){var t=e.getDeclarations();if(!t)return!1;for(var n=!1,r=!1,i=!1,o=0,s=t.getChildren();o<s.length;o++){var a=s[o];if(this.isCSSDeclaration(a)){var l=a.getProperty().getName().toLowerCase();"src"===l&&(n=!0),"font-family"===l&&(r=!0)}else i=!0}return i||n&&r||this.addEntry(e,Ri.RequiredPropertiesForFontFace),!0},e.prototype.isCSSDeclaration=function(e){if(e instanceof ve){if(!e.getValue())return!1;var t=e.getProperty();if(!t)return!1;var n=t.getIdentifier();return!(!n||n.containsInterpolation())}return!1},e.prototype.visitHexColorValue=function(e){var t=e.length;return 9!==t&&7!==t&&5!==t&&4!==t&&this.addEntry(e,Ri.HexColorLength),!1},e.prototype.visitFunction=function(e){var t=e.getName().toLowerCase(),n=-1,r=0;switch(t){case"rgb(":case"hsl(":n=3;break;case"rgba(":case"hsla(":n=4}return-1!==n&&(e.getArguments().accept((function(e){return!(e instanceof Xe)||(r+=1,!1)})),r!==n&&this.addEntry(e,Ri.ArgsInColorFunction)),!0},e.prefixes=["-ms-","-moz-","-o-","-webkit-"],e}(),Gi=(function(){function e(e){this.cssDataManager=e}e.prototype.configure=function(e){this.settings=e},e.prototype.doValidation=function(e,t,n){if(void 0===n&&(n=this.settings),n&&!1===n.validate)return[];var r=[];r.push.apply(r,vt.entries(t)),r.push.apply(r,Ki.entries(t,e,new Mi(n&&n.lint),this.cssDataManager));var i=[];for(var o in Ri)i.push(Ri[o].id);return r.filter((function(e){return e.getLevel()!==oe.Ignore})).map((function(t){var n=un.create(e.positionAt(t.getOffset()),e.positionAt(t.getOffset()+t.getLength())),r=e.languageId;return{code:t.getRule().id,source:r,message:t.getMessage(),severity:t.getLevel()===oe.Warning?kn.Warning:kn.Error,range:n}}))}}(),function(){var e=function(t,n){return e=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])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}()),Ji="/".charCodeAt(0),Hi="\n".charCodeAt(0),Xi="\r".charCodeAt(0),Yi="\f".charCodeAt(0),Zi="$".charCodeAt(0),Qi="#".charCodeAt(0),eo="{".charCodeAt(0),to="=".charCodeAt(0),no="!".charCodeAt(0),ro="<".charCodeAt(0),io=">".charCodeAt(0),oo=".".charCodeAt(0),so=("@".charCodeAt(0),r.CustomToken),ao=so++,lo=so++,co=(so++,so++),po=so++,ho=so++,mo=so++,uo=so++,fo=(so++,function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Gi(t,e),t.prototype.scanNext=function(t){if(this.stream.advanceIfChar(Zi)){var n=["$"];if(this.ident(n))return this.finishToken(t,ao,n.join(""));this.stream.goBackTo(t)}return this.stream.advanceIfChars([Qi,eo])?this.finishToken(t,lo):this.stream.advanceIfChars([to,to])?this.finishToken(t,co):this.stream.advanceIfChars([no,to])?this.finishToken(t,po):this.stream.advanceIfChar(ro)?this.stream.advanceIfChar(to)?this.finishToken(t,mo):this.finishToken(t,r.Delim):this.stream.advanceIfChar(io)?this.stream.advanceIfChar(to)?this.finishToken(t,ho):this.finishToken(t,r.Delim):this.stream.advanceIfChars([oo,oo,oo])?this.finishToken(t,uo):e.prototype.scanNext.call(this,t)},t.prototype.comment=function(){return!!e.prototype.comment.call(this)||!(this.inURL||!this.stream.advanceIfChars([Ji,Ji]))&&(this.stream.advanceWhileChar((function(e){switch(e){case Hi:case Xi:case Yi:return!1;default:return!0}})),!0)},t}(X)),go=wt(),bo=function(e,t){this.id=e,this.message=t},vo={FromExpected:new bo("scss-fromexpected",go("expected.from","'from' expected")),ThroughOrToExpected:new bo("scss-throughexpected",go("expected.through","'through' or 'to' expected")),InExpected:new bo("scss-fromexpected",go("expected.in","'in' expected"))},yo=function(){var e=function(t,n){return e=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])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),wo=(function(e){function t(){return e.call(this,new fo)||this}yo(t,e),t.prototype._parseStylesheetStatement=function(t){return void 0===t&&(t=!1),this.peek(r.AtKeyword)?this._parseWarnAndDebug()||this._parseControlStatement()||this._parseMixinDeclaration()||this._parseMixinContent()||this._parseMixinReference()||this._parseFunctionDeclaration()||this._parseForward()||this._parseUse()||this._parseRuleset(t)||e.prototype._parseStylesheetAtStatement.call(this,t):this._parseRuleset(!0)||this._parseVariableDeclaration()},t.prototype._parseImport=function(){if(!this.peekKeyword("@import"))return null;var e=this.create(Ne);if(this.consumeToken(),!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,kt.URIOrStringExpected);for(;this.accept(r.Comma);)if(!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,kt.URIOrStringExpected);return this.peek(r.SemiColon)||this.peek(r.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)},t.prototype._parseVariableDeclaration=function(e){if(void 0===e&&(e=[]),!this.peek(ao))return null;var t=this.create(it);if(!t.setVariable(this._parseVariable()))return null;if(!this.accept(r.Colon))return this.finish(t,kt.ColonExpected);if(this.prevToken&&(t.colonPosition=this.prevToken.offset),!t.setValue(this._parseExpr()))return this.finish(t,kt.VariableValueExpected,[],e);for(;this.peek(r.Exclamation);)if(t.addChild(this._tryParsePrio()));else{if(this.consumeToken(),!this.peekRegExp(r.Ident,/^(default|global)$/))return this.finish(t,kt.UnknownKeyword);this.consumeToken()}return this.peek(r.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseMediaContentStart=function(){return this._parseInterpolation()},t.prototype._parseMediaFeatureName=function(){return this._parseModuleMember()||this._parseFunction()||this._parseIdent()||this._parseVariable()},t.prototype._parseKeyframeSelector=function(){return this._tryParseKeyframeSelector()||this._parseControlStatement(this._parseKeyframeSelector.bind(this))||this._parseVariableDeclaration()||this._parseMixinContent()},t.prototype._parseVariable=function(){if(!this.peek(ao))return null;var e=this.create(st);return this.consumeToken(),e},t.prototype._parseModuleMember=function(){var e=this.mark(),t=this.create(gt);return t.setIdentifier(this._parseIdent([te.Module]))?this.hasWhitespace()||!this.acceptDelim(".")||this.hasWhitespace()?(this.restoreAtMark(e),null):t.addChild(this._parseVariable()||this._parseFunction())?t:this.finish(t,kt.IdentifierOrVariableExpected):null},t.prototype._parseIdent=function(e){var t=this;if(!this.peek(r.Ident)&&!this.peek(lo)&&!this.peekDelim("-"))return null;var n=this.create(le);n.referenceTypes=e,n.isCustomProperty=this.peekRegExp(r.Ident,/^--/);for(var i=!1,o=function(){var e=t.mark();return t.acceptDelim("-")&&(t.hasWhitespace()||t.acceptDelim("-"),t.hasWhitespace())?(t.restoreAtMark(e),null):t._parseInterpolation()};(this.accept(r.Ident)||n.addChild(o())||i&&this.acceptRegexp(/^[\w-]/))&&(i=!0,!this.hasWhitespace()););return i?this.finish(n):null},t.prototype._parseTermExpression=function(){return this._parseModuleMember()||this._parseVariable()||this._parseSelectorCombinator()||e.prototype._parseTermExpression.call(this)},t.prototype._parseInterpolation=function(){if(this.peek(lo)){var e=this.create(ot);return this.consumeToken(),e.addChild(this._parseExpr())||this._parseSelectorCombinator()?this.accept(r.CurlyR)?this.finish(e):this.finish(e,kt.RightCurlyExpected):this.accept(r.CurlyR)?this.finish(e):this.finish(e,kt.ExpressionExpected)}return null},t.prototype._parseOperator=function(){if(this.peek(co)||this.peek(po)||this.peek(ho)||this.peek(mo)||this.peekDelim(">")||this.peekDelim("<")||this.peekIdent("and")||this.peekIdent("or")||this.peekDelim("%")){var t=this.createNode(ee.Operator);return this.consumeToken(),this.finish(t)}return e.prototype._parseOperator.call(this)},t.prototype._parseUnaryOperator=function(){if(this.peekIdent("not")){var t=this.create(se);return this.consumeToken(),this.finish(t)}return e.prototype._parseUnaryOperator.call(this)},t.prototype._parseRuleSetDeclaration=function(){return this.peek(r.AtKeyword)?this._parseKeyframe()||this._parseImport()||this._parseMedia(!0)||this._parseFontFace()||this._parseWarnAndDebug()||this._parseControlStatement()||this._parseFunctionDeclaration()||this._parseExtends()||this._parseMixinReference()||this._parseMixinContent()||this._parseMixinDeclaration()||this._parseRuleset(!0)||this._parseSupports(!0)||e.prototype._parseRuleSetDeclarationAtStatement.call(this):this._parseVariableDeclaration()||this._tryParseRuleset(!0)||e.prototype._parseRuleSetDeclaration.call(this)},t.prototype._parseDeclaration=function(e){var t=this._tryParseCustomPropertyDeclaration(e);if(t)return t;var n=this.create(ve);if(!n.setProperty(this._parseProperty()))return null;if(!this.accept(r.Colon))return this.finish(n,kt.ColonExpected,[r.Colon],e||[r.SemiColon]);this.prevToken&&(n.colonPosition=this.prevToken.offset);var i=!1;if(n.setValue(this._parseExpr())&&(i=!0,n.addChild(this._parsePrio())),this.peek(r.CurlyL))n.setNestedProperties(this._parseNestedProperties());else if(!i)return this.finish(n,kt.PropertyValueExpected);return this.peek(r.SemiColon)&&(n.semicolonPosition=this.token.offset),this.finish(n)},t.prototype._parseNestedProperties=function(){var e=this.create(Me);return this._parseBody(e,this._parseDeclaration.bind(this))},t.prototype._parseExtends=function(){if(this.peekKeyword("@extend")){var e=this.create(at);if(this.consumeToken(),!e.getSelectors().addChild(this._parseSimpleSelector()))return this.finish(e,kt.SelectorExpected);for(;this.accept(r.Comma);)e.getSelectors().addChild(this._parseSimpleSelector());return this.accept(r.Exclamation)&&!this.acceptIdent("optional")?this.finish(e,kt.UnknownKeyword):this.finish(e)}return null},t.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||this._parseSelectorPlaceholder()||e.prototype._parseSimpleSelectorBody.call(this)},t.prototype._parseSelectorCombinator=function(){if(this.peekDelim("&")){var e=this.createNode(ee.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim("-")||this.accept(r.Num)||this.accept(r.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim("&")););return this.finish(e)}return null},t.prototype._parseSelectorPlaceholder=function(){if(this.peekDelim("%")){var e=this.createNode(ee.SelectorPlaceholder);return this.consumeToken(),this._parseIdent(),this.finish(e)}if(this.peekKeyword("@at-root")){e=this.createNode(ee.SelectorPlaceholder);return this.consumeToken(),this.finish(e)}return null},t.prototype._parseElementName=function(){var t=this.mark(),n=e.prototype._parseElementName.call(this);return n&&!this.hasWhitespace()&&this.peek(r.ParenthesisL)?(this.restoreAtMark(t),null):n},t.prototype._tryParsePseudoIdentifier=function(){return this._parseInterpolation()||e.prototype._tryParsePseudoIdentifier.call(this)},t.prototype._parseWarnAndDebug=function(){if(!this.peekKeyword("@debug")&&!this.peekKeyword("@warn")&&!this.peekKeyword("@error"))return null;var e=this.createNode(ee.Debug);return this.consumeToken(),e.addChild(this._parseExpr()),this.finish(e)},t.prototype._parseControlStatement=function(e){return void 0===e&&(e=this._parseRuleSetDeclaration.bind(this)),this.peek(r.AtKeyword)?this._parseIfStatement(e)||this._parseForStatement(e)||this._parseEachStatement(e)||this._parseWhileStatement(e):null},t.prototype._parseIfStatement=function(e){return this.peekKeyword("@if")?this._internalParseIfStatement(e):null},t.prototype._internalParseIfStatement=function(e){var t=this.create(Ce);if(this.consumeToken(),!t.setExpression(this._parseExpr(!0)))return this.finish(t,kt.ExpressionExpected);if(this._parseBody(t,e),this.acceptKeyword("@else"))if(this.peekIdent("if"))t.setElseClause(this._internalParseIfStatement(e));else if(this.peek(r.CurlyL)){var n=this.create(De);this._parseBody(n,e),t.setElseClause(n)}return this.finish(t)},t.prototype._parseForStatement=function(e){if(!this.peekKeyword("@for"))return null;var t=this.create(Fe);return this.consumeToken(),t.setVariable(this._parseVariable())?this.acceptIdent("from")?t.addChild(this._parseBinaryExpr())?this.acceptIdent("to")||this.acceptIdent("through")?t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,kt.ExpressionExpected,[r.CurlyR]):this.finish(t,vo.ThroughOrToExpected,[r.CurlyR]):this.finish(t,kt.ExpressionExpected,[r.CurlyR]):this.finish(t,vo.FromExpected,[r.CurlyR]):this.finish(t,kt.VariableNameExpected,[r.CurlyR])},t.prototype._parseEachStatement=function(e){if(!this.peekKeyword("@each"))return null;var t=this.create(Ee);this.consumeToken();var n=t.getVariables();if(!n.addChild(this._parseVariable()))return this.finish(t,kt.VariableNameExpected,[r.CurlyR]);for(;this.accept(r.Comma);)if(!n.addChild(this._parseVariable()))return this.finish(t,kt.VariableNameExpected,[r.CurlyR]);return this.finish(n),this.acceptIdent("in")?t.addChild(this._parseExpr())?this._parseBody(t,e):this.finish(t,kt.ExpressionExpected,[r.CurlyR]):this.finish(t,vo.InExpected,[r.CurlyR])},t.prototype._parseWhileStatement=function(e){if(!this.peekKeyword("@while"))return null;var t=this.create(ze);return this.consumeToken(),t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,kt.ExpressionExpected,[r.CurlyR])},t.prototype._parseFunctionBodyDeclaration=function(){return this._parseVariableDeclaration()||this._parseReturnStatement()||this._parseWarnAndDebug()||this._parseControlStatement(this._parseFunctionBodyDeclaration.bind(this))},t.prototype._parseFunctionDeclaration=function(){if(!this.peekKeyword("@function"))return null;var e=this.create(Te);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([te.Function])))return this.finish(e,kt.IdentifierExpected,[r.CurlyR]);if(!this.accept(r.ParenthesisL))return this.finish(e,kt.LeftParenthesisExpected,[r.CurlyR]);if(e.getParameters().addChild(this._parseParameterDeclaration()))for(;this.accept(r.Comma)&&!this.peek(r.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,kt.VariableNameExpected);return this.accept(r.ParenthesisR)?this._parseBody(e,this._parseFunctionBodyDeclaration.bind(this)):this.finish(e,kt.RightParenthesisExpected,[r.CurlyR])},t.prototype._parseReturnStatement=function(){if(!this.peekKeyword("@return"))return null;var e=this.createNode(ee.ReturnStatement);return this.consumeToken(),e.addChild(this._parseExpr())?this.finish(e):this.finish(e,kt.ExpressionExpected)},t.prototype._parseMixinDeclaration=function(){if(!this.peekKeyword("@mixin"))return null;var e=this.create(pt);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([te.Mixin])))return this.finish(e,kt.IdentifierExpected,[r.CurlyR]);if(this.accept(r.ParenthesisL)){if(e.getParameters().addChild(this._parseParameterDeclaration()))for(;this.accept(r.Comma)&&!this.peek(r.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,kt.VariableNameExpected);if(!this.accept(r.ParenthesisR))return this.finish(e,kt.RightParenthesisExpected,[r.CurlyR])}return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))},t.prototype._parseParameterDeclaration=function(){var e=this.create(Se);return e.setIdentifier(this._parseVariable())?(this.accept(uo),this.accept(r.Colon)&&!e.setDefaultValue(this._parseExpr(!0))?this.finish(e,kt.VariableValueExpected,[],[r.Comma,r.ParenthesisR]):this.finish(e)):null},t.prototype._parseMixinContent=function(){if(!this.peekKeyword("@content"))return null;var e=this.create(lt);if(this.consumeToken(),this.accept(r.ParenthesisL)){if(e.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(r.Comma)&&!this.peek(r.ParenthesisR);)if(!e.getArguments().addChild(this._parseFunctionArgument()))return this.finish(e,kt.ExpressionExpected);if(!this.accept(r.ParenthesisR))return this.finish(e,kt.RightParenthesisExpected)}return this.finish(e)},t.prototype._parseMixinReference=function(){if(!this.peekKeyword("@include"))return null;var e=this.create(dt);this.consumeToken();var t=this._parseIdent([te.Mixin]);if(!e.setIdentifier(t))return this.finish(e,kt.IdentifierExpected,[r.CurlyR]);if(!this.hasWhitespace()&&this.acceptDelim(".")&&!this.hasWhitespace()){var n=this._parseIdent([te.Mixin]);if(!n)return this.finish(e,kt.IdentifierExpected,[r.CurlyR]);var i=this.create(gt);t.referenceTypes=[te.Module],i.setIdentifier(t),e.setIdentifier(n),e.addChild(i)}if(this.accept(r.ParenthesisL)){if(e.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(r.Comma)&&!this.peek(r.ParenthesisR);)if(!e.getArguments().addChild(this._parseFunctionArgument()))return this.finish(e,kt.ExpressionExpected);if(!this.accept(r.ParenthesisR))return this.finish(e,kt.RightParenthesisExpected)}return(this.peekIdent("using")||this.peek(r.CurlyL))&&e.setContent(this._parseMixinContentDeclaration()),this.finish(e)},t.prototype._parseMixinContentDeclaration=function(){var e=this.create(ct);if(this.acceptIdent("using")){if(!this.accept(r.ParenthesisL))return this.finish(e,kt.LeftParenthesisExpected,[r.CurlyL]);if(e.getParameters().addChild(this._parseParameterDeclaration()))for(;this.accept(r.Comma)&&!this.peek(r.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,kt.VariableNameExpected);if(!this.accept(r.ParenthesisR))return this.finish(e,kt.RightParenthesisExpected,[r.CurlyL])}return this.peek(r.CurlyL)&&this._parseBody(e,this._parseMixinReferenceBodyStatement.bind(this)),this.finish(e)},t.prototype._parseMixinReferenceBodyStatement=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},t.prototype._parseFunctionArgument=function(){var e=this.create(ke),t=this.mark(),n=this._parseVariable();if(n)if(this.accept(r.Colon))e.setIdentifier(n);else{if(this.accept(uo))return e.setValue(n),this.finish(e);this.restoreAtMark(t)}return e.setValue(this._parseExpr(!0))?(this.accept(uo),e.addChild(this._parsePrio()),this.finish(e)):e.setValue(this._tryParsePrio())?this.finish(e):null},t.prototype._parseURLArgument=function(){var t=this.mark(),n=e.prototype._parseURLArgument.call(this);if(!n||!this.peek(r.ParenthesisR)){this.restoreAtMark(t);var i=this.create(se);return i.addChild(this._parseBinaryExpr()),this.finish(i)}return n},t.prototype._parseOperation=function(){if(!this.peek(r.ParenthesisL))return null;var e=this.create(se);for(this.consumeToken();e.addChild(this._parseListElement());)this.accept(r.Comma);return this.accept(r.ParenthesisR)?this.finish(e):this.finish(e,kt.RightParenthesisExpected)},t.prototype._parseListElement=function(){var e=this.create(mt),t=this._parseBinaryExpr();if(!t)return null;if(this.accept(r.Colon)){if(e.setKey(t),!e.setValue(this._parseBinaryExpr()))return this.finish(e,kt.ExpressionExpected)}else e.setValue(t);return this.finish(e)},t.prototype._parseUse=function(){if(!this.peekKeyword("@use"))return null;var e=this.create(Ae);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,kt.StringLiteralExpected);if(!this.peek(r.SemiColon)&&!this.peek(r.EOF)){if(!this.peekRegExp(r.Ident,/as|with/))return this.finish(e,kt.UnknownKeyword);if(this.acceptIdent("as")&&!e.setIdentifier(this._parseIdent([te.Module]))&&!this.acceptDelim("*"))return this.finish(e,kt.IdentifierOrWildcardExpected);if(this.acceptIdent("with")){if(!this.accept(r.ParenthesisL))return this.finish(e,kt.LeftParenthesisExpected,[r.ParenthesisR]);if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,kt.VariableNameExpected);for(;this.accept(r.Comma)&&!this.peek(r.ParenthesisR);)if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,kt.VariableNameExpected);if(!this.accept(r.ParenthesisR))return this.finish(e,kt.RightParenthesisExpected)}}return this.accept(r.SemiColon)||this.accept(r.EOF)?this.finish(e):this.finish(e,kt.SemiColonExpected)},t.prototype._parseModuleConfigDeclaration=function(){var e=this.create(Oe);return e.setIdentifier(this._parseVariable())?this.accept(r.Colon)&&e.setValue(this._parseExpr(!0))?!this.accept(r.Exclamation)||!this.hasWhitespace()&&this.acceptIdent("default")?this.finish(e):this.finish(e,kt.UnknownKeyword):this.finish(e,kt.VariableValueExpected,[],[r.Comma,r.ParenthesisR]):null},t.prototype._parseForward=function(){if(!this.peekKeyword("@forward"))return null;var e=this.create(We);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,kt.StringLiteralExpected);if(this.acceptIdent("with")){if(!this.accept(r.ParenthesisL))return this.finish(e,kt.LeftParenthesisExpected,[r.ParenthesisR]);if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,kt.VariableNameExpected);for(;this.accept(r.Comma)&&!this.peek(r.ParenthesisR);)if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,kt.VariableNameExpected);if(!this.accept(r.ParenthesisR))return this.finish(e,kt.RightParenthesisExpected)}if(!this.peek(r.SemiColon)&&!this.peek(r.EOF)){if(!this.peekRegExp(r.Ident,/as|hide|show/))return this.finish(e,kt.UnknownKeyword);if(this.acceptIdent("as")){var t=this._parseIdent([te.Forward]);if(!e.setIdentifier(t))return this.finish(e,kt.IdentifierExpected);if(this.hasWhitespace()||!this.acceptDelim("*"))return this.finish(e,kt.WildcardExpected)}if((this.peekIdent("hide")||this.peekIdent("show"))&&!e.addChild(this._parseForwardVisibility()))return this.finish(e,kt.IdentifierOrVariableExpected)}return this.accept(r.SemiColon)||this.accept(r.EOF)?this.finish(e):this.finish(e,kt.SemiColonExpected)},t.prototype._parseForwardVisibility=function(){var e=this.create(Le);for(e.setIdentifier(this._parseIdent());e.addChild(this._parseVariable()||this._parseIdent());)this.accept(r.Comma);return e.getChildren().length>1?e:null},t.prototype._parseSupportsCondition=function(){return this._parseInterpolation()||e.prototype._parseSupportsCondition.call(this)}}(ln),function(){var e=function(t,n){return e=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])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}()),xo=wt();!function(e){function t(n,r){var i=e.call(this,"$",n,r)||this;return So(t.scssModuleLoaders),So(t.scssModuleBuiltIns),i}wo(t,e),t.prototype.isImportPathParent=function(t){return t===ee.Forward||t===ee.Use||e.prototype.isImportPathParent.call(this,t)},t.prototype.getCompletionForImportPath=function(n,r){var i=n.getParent().type;if(i===ee.Forward||i===ee.Use)for(var o=0,s=t.scssModuleBuiltIns;o<s.length;o++){var a=s[o],l={label:a.label,documentation:a.documentation,textEdit:Dn.replace(this.getCompletionRange(n),"'"+a.label+"'"),kind:Hn.Module};r.items.push(l)}return e.prototype.getCompletionForImportPath.call(this,n,r)},t.prototype.createReplaceFunction=function(){var e=1;return function(n,r){return"\\"+r+": ${"+e+++":"+(t.variableDefaults[r]||"")+"}"}},t.prototype.createFunctionProposals=function(e,t,n,r){for(var i=0,o=e;i<o.length;i++){var s=o[i],a=s.func.replace(/\[?(\$\w+)\]?/g,this.createReplaceFunction()),l={label:s.func.substr(0,s.func.indexOf("(")),detail:s.func,documentation:s.desc,textEdit:Dn.replace(this.getCompletionRange(t),a),insertTextFormat:Xn.Snippet,kind:Hn.Function};n&&(l.sortText="z"),r.items.push(l)}return r},t.prototype.getCompletionsForSelector=function(n,r,i){return this.createFunctionProposals(t.selectorFuncs,null,!0,i),e.prototype.getCompletionsForSelector.call(this,n,r,i)},t.prototype.getTermProposals=function(n,r,i){var o=t.builtInFuncs;return n&&(o=o.filter((function(e){return!e.type||!n.restrictions||-1!==n.restrictions.indexOf(e.type)}))),this.createFunctionProposals(o,r,!0,i),e.prototype.getTermProposals.call(this,n,r,i)},t.prototype.getColorProposals=function(n,r,i){return this.createFunctionProposals(t.colorProposals,r,!1,i),e.prototype.getColorProposals.call(this,n,r,i)},t.prototype.getCompletionsForDeclarationProperty=function(t,n){return this.getCompletionForAtDirectives(n),this.getCompletionsForSelector(null,!0,n),e.prototype.getCompletionsForDeclarationProperty.call(this,t,n)},t.prototype.getCompletionsForExtendsReference=function(e,t,n){for(var r=0,i=this.getSymbolContext().findSymbolsAtOffset(this.offset,te.Rule);r<i.length;r++){var o=i[r],s={label:o.name,textEdit:Dn.replace(this.getCompletionRange(t),o.name),kind:Hn.Function};n.items.push(s)}return n},t.prototype.getCompletionForAtDirectives=function(e){var n;return(n=e.items).push.apply(n,t.scssAtDirectives),e},t.prototype.getCompletionForTopLevel=function(t){return this.getCompletionForAtDirectives(t),this.getCompletionForModuleLoaders(t),e.prototype.getCompletionForTopLevel.call(this,t),t},t.prototype.getCompletionForModuleLoaders=function(e){var n;return(n=e.items).push.apply(n,t.scssModuleLoaders),e},t.variableDefaults={$red:"1",$green:"2",$blue:"3",$alpha:"1.0",$color:"#000000",$weight:"0.5",$hue:"0",$saturation:"0%",$lightness:"0%",$degrees:"0",$amount:"0",$string:'""',$substring:'"s"',$number:"0",$limit:"1"},t.colorProposals=[{func:"red($color)",desc:xo("scss.builtin.red","Gets the red component of a color.")},{func:"green($color)",desc:xo("scss.builtin.green","Gets the green component of a color.")},{func:"blue($color)",desc:xo("scss.builtin.blue","Gets the blue component of a color.")},{func:"mix($color, $color, [$weight])",desc:xo("scss.builtin.mix","Mixes two colors together.")},{func:"hue($color)",desc:xo("scss.builtin.hue","Gets the hue component of a color.")},{func:"saturation($color)",desc:xo("scss.builtin.saturation","Gets the saturation component of a color.")},{func:"lightness($color)",desc:xo("scss.builtin.lightness","Gets the lightness component of a color.")},{func:"adjust-hue($color, $degrees)",desc:xo("scss.builtin.adjust-hue","Changes the hue of a color.")},{func:"lighten($color, $amount)",desc:xo("scss.builtin.lighten","Makes a color lighter.")},{func:"darken($color, $amount)",desc:xo("scss.builtin.darken","Makes a color darker.")},{func:"saturate($color, $amount)",desc:xo("scss.builtin.saturate","Makes a color more saturated.")},{func:"desaturate($color, $amount)",desc:xo("scss.builtin.desaturate","Makes a color less saturated.")},{func:"grayscale($color)",desc:xo("scss.builtin.grayscale","Converts a color to grayscale.")},{func:"complement($color)",desc:xo("scss.builtin.complement","Returns the complement of a color.")},{func:"invert($color)",desc:xo("scss.builtin.invert","Returns the inverse of a color.")},{func:"alpha($color)",desc:xo("scss.builtin.alpha","Gets the opacity component of a color.")},{func:"opacity($color)",desc:"Gets the alpha component (opacity) of a color."},{func:"rgba($color, $alpha)",desc:xo("scss.builtin.rgba","Changes the alpha component for a color.")},{func:"opacify($color, $amount)",desc:xo("scss.builtin.opacify","Makes a color more opaque.")},{func:"fade-in($color, $amount)",desc:xo("scss.builtin.fade-in","Makes a color more opaque.")},{func:"transparentize($color, $amount)",desc:xo("scss.builtin.transparentize","Makes a color more transparent.")},{func:"fade-out($color, $amount)",desc:xo("scss.builtin.fade-out","Makes a color more transparent.")},{func:"adjust-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])",desc:xo("scss.builtin.adjust-color","Increases or decreases one or more components of a color.")},{func:"scale-color($color, [$red], [$green], [$blue], [$saturation], [$lightness], [$alpha])",desc:xo("scss.builtin.scale-color","Fluidly scales one or more properties of a color.")},{func:"change-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])",desc:xo("scss.builtin.change-color","Changes one or more properties of a color.")},{func:"ie-hex-str($color)",desc:xo("scss.builtin.ie-hex-str","Converts a color into the format understood by IE filters.")}],t.selectorFuncs=[{func:"selector-nest($selectors\u2026)",desc:xo("scss.builtin.selector-nest","Nests selector beneath one another like they would be nested in the stylesheet.")},{func:"selector-append($selectors\u2026)",desc:xo("scss.builtin.selector-append","Appends selectors to one another without spaces in between.")},{func:"selector-extend($selector, $extendee, $extender)",desc:xo("scss.builtin.selector-extend","Extends $extendee with $extender within $selector.")},{func:"selector-replace($selector, $original, $replacement)",desc:xo("scss.builtin.selector-replace","Replaces $original with $replacement within $selector.")},{func:"selector-unify($selector1, $selector2)",desc:xo("scss.builtin.selector-unify","Unifies two selectors to produce a selector that matches elements matched by both.")},{func:"is-superselector($super, $sub)",desc:xo("scss.builtin.is-superselector","Returns whether $super matches all the elements $sub does, and possibly more.")},{func:"simple-selectors($selector)",desc:xo("scss.builtin.simple-selectors","Returns the simple selectors that comprise a compound selector.")},{func:"selector-parse($selector)",desc:xo("scss.builtin.selector-parse","Parses a selector into the format returned by &.")}],t.builtInFuncs=[{func:"unquote($string)",desc:xo("scss.builtin.unquote","Removes quotes from a string.")},{func:"quote($string)",desc:xo("scss.builtin.quote","Adds quotes to a string.")},{func:"str-length($string)",desc:xo("scss.builtin.str-length","Returns the number of characters in a string.")},{func:"str-insert($string, $insert, $index)",desc:xo("scss.builtin.str-insert","Inserts $insert into $string at $index.")},{func:"str-index($string, $substring)",desc:xo("scss.builtin.str-index","Returns the index of the first occurance of $substring in $string.")},{func:"str-slice($string, $start-at, [$end-at])",desc:xo("scss.builtin.str-slice","Extracts a substring from $string.")},{func:"to-upper-case($string)",desc:xo("scss.builtin.to-upper-case","Converts a string to upper case.")},{func:"to-lower-case($string)",desc:xo("scss.builtin.to-lower-case","Converts a string to lower case.")},{func:"percentage($number)",desc:xo("scss.builtin.percentage","Converts a unitless number to a percentage."),type:"percentage"},{func:"round($number)",desc:xo("scss.builtin.round","Rounds a number to the nearest whole number.")},{func:"ceil($number)",desc:xo("scss.builtin.ceil","Rounds a number up to the next whole number.")},{func:"floor($number)",desc:xo("scss.builtin.floor","Rounds a number down to the previous whole number.")},{func:"abs($number)",desc:xo("scss.builtin.abs","Returns the absolute value of a number.")},{func:"min($numbers)",desc:xo("scss.builtin.min","Finds the minimum of several numbers.")},{func:"max($numbers)",desc:xo("scss.builtin.max","Finds the maximum of several numbers.")},{func:"random([$limit])",desc:xo("scss.builtin.random","Returns a random number.")},{func:"length($list)",desc:xo("scss.builtin.length","Returns the length of a list.")},{func:"nth($list, $n)",desc:xo("scss.builtin.nth","Returns a specific item in a list.")},{func:"set-nth($list, $n, $value)",desc:xo("scss.builtin.set-nth","Replaces the nth item in a list.")},{func:"join($list1, $list2, [$separator])",desc:xo("scss.builtin.join","Joins together two lists into one.")},{func:"append($list1, $val, [$separator])",desc:xo("scss.builtin.append","Appends a single value onto the end of a list.")},{func:"zip($lists)",desc:xo("scss.builtin.zip","Combines several lists into a single multidimensional list.")},{func:"index($list, $value)",desc:xo("scss.builtin.index","Returns the position of a value within a list.")},{func:"list-separator(#list)",desc:xo("scss.builtin.list-separator","Returns the separator of a list.")},{func:"map-get($map, $key)",desc:xo("scss.builtin.map-get","Returns the value in a map associated with a given key.")},{func:"map-merge($map1, $map2)",desc:xo("scss.builtin.map-merge","Merges two maps together into a new map.")},{func:"map-remove($map, $keys)",desc:xo("scss.builtin.map-remove","Returns a new map with keys removed.")},{func:"map-keys($map)",desc:xo("scss.builtin.map-keys","Returns a list of all keys in a map.")},{func:"map-values($map)",desc:xo("scss.builtin.map-values","Returns a list of all values in a map.")},{func:"map-has-key($map, $key)",desc:xo("scss.builtin.map-has-key","Returns whether a map has a value associated with a given key.")},{func:"keywords($args)",desc:xo("scss.builtin.keywords","Returns the keywords passed to a function that takes variable arguments.")},{func:"feature-exists($feature)",desc:xo("scss.builtin.feature-exists","Returns whether a feature exists in the current Sass runtime.")},{func:"variable-exists($name)",desc:xo("scss.builtin.variable-exists","Returns whether a variable with the given name exists in the current scope.")},{func:"global-variable-exists($name)",desc:xo("scss.builtin.global-variable-exists","Returns whether a variable with the given name exists in the global scope.")},{func:"function-exists($name)",desc:xo("scss.builtin.function-exists","Returns whether a function with the given name exists.")},{func:"mixin-exists($name)",desc:xo("scss.builtin.mixin-exists","Returns whether a mixin with the given name exists.")},{func:"inspect($value)",desc:xo("scss.builtin.inspect","Returns the string representation of a value as it would be represented in Sass.")},{func:"type-of($value)",desc:xo("scss.builtin.type-of","Returns the type of a value.")},{func:"unit($number)",desc:xo("scss.builtin.unit","Returns the unit(s) associated with a number.")},{func:"unitless($number)",desc:xo("scss.builtin.unitless","Returns whether a number has units.")},{func:"comparable($number1, $number2)",desc:xo("scss.builtin.comparable","Returns whether two numbers can be added, subtracted, or compared.")},{func:"call($name, $args\u2026)",desc:xo("scss.builtin.call","Dynamically calls a Sass function.")}],t.scssAtDirectives=[{label:"@extend",documentation:xo("scss.builtin.@extend","Inherits the styles of another selector."),kind:Hn.Keyword},{label:"@at-root",documentation:xo("scss.builtin.@at-root","Causes one or more rules to be emitted at the root of the document."),kind:Hn.Keyword},{label:"@debug",documentation:xo("scss.builtin.@debug","Prints the value of an expression to the standard error output stream. Useful for debugging complicated Sass files."),kind:Hn.Keyword},{label:"@warn",documentation:xo("scss.builtin.@warn","Prints the value of an expression to the standard error output stream. Useful for libraries that need to warn users of deprecations or recovering from minor mixin usage mistakes. Warnings can be turned off with the `--quiet` command-line option or the `:quiet` Sass option."),kind:Hn.Keyword},{label:"@error",documentation:xo("scss.builtin.@error","Throws the value of an expression as a fatal error with stack trace. Useful for validating arguments to mixins and functions."),kind:Hn.Keyword},{label:"@if",documentation:xo("scss.builtin.@if","Includes the body if the expression does not evaluate to `false` or `null`."),insertText:"@if ${1:expr} {\n\t$0\n}",insertTextFormat:Xn.Snippet,kind:Hn.Keyword},{label:"@for",documentation:xo("scss.builtin.@for","For loop that repeatedly outputs a set of styles for each `$var` in the `from/through` or `from/to` clause."),insertText:"@for \\$${1:var} from ${2:start} ${3|to,through|} ${4:end} {\n\t$0\n}",insertTextFormat:Xn.Snippet,kind:Hn.Keyword},{label:"@each",documentation:xo("scss.builtin.@each","Each loop that sets `$var` to each item in the list or map, then outputs the styles it contains using that value of `$var`."),insertText:"@each \\$${1:var} in ${2:list} {\n\t$0\n}",insertTextFormat:Xn.Snippet,kind:Hn.Keyword},{label:"@while",documentation:xo("scss.builtin.@while","While loop that takes an expression and repeatedly outputs the nested styles until the statement evaluates to `false`."),insertText:"@while ${1:condition} {\n\t$0\n}",insertTextFormat:Xn.Snippet,kind:Hn.Keyword},{label:"@mixin",documentation:xo("scss.builtin.@mixin","Defines styles that can be re-used throughout the stylesheet with `@include`."),insertText:"@mixin ${1:name} {\n\t$0\n}",insertTextFormat:Xn.Snippet,kind:Hn.Keyword},{label:"@include",documentation:xo("scss.builtin.@include","Includes the styles defined by another mixin into the current rule."),kind:Hn.Keyword},{label:"@function",documentation:xo("scss.builtin.@function","Defines complex operations that can be re-used throughout stylesheets."),kind:Hn.Keyword}],t.scssModuleLoaders=[{label:"@use",documentation:xo("scss.builtin.@use","Loads mixins, functions, and variables from other Sass stylesheets as 'modules', and combines CSS from multiple stylesheets together."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/at-rules/use"}],insertText:"@use $0;",insertTextFormat:Xn.Snippet,kind:Hn.Keyword},{label:"@forward",documentation:xo("scss.builtin.@forward","Loads a Sass stylesheet and makes its mixins, functions, and variables available when this stylesheet is loaded with the @use rule."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/at-rules/forward"}],insertText:"@forward $0;",insertTextFormat:Xn.Snippet,kind:Hn.Keyword}],t.scssModuleBuiltIns=[{label:"sass:math",documentation:xo("scss.builtin.sass:math","Provides functions that operate on numbers."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/modules/math"}]},{label:"sass:string",documentation:xo("scss.builtin.sass:string","Makes it easy to combine, search, or split apart strings."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/modules/string"}]},{label:"sass:color",documentation:xo("scss.builtin.sass:color","Generates new colors based on existing ones, making it easy to build color themes."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/modules/color"}]},{label:"sass:list",documentation:xo("scss.builtin.sass:list","Lets you access and modify values in lists."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/modules/list"}]},{label:"sass:map",documentation:xo("scss.builtin.sass:map","Makes it possible to look up the value associated with a key in a map, and much more."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/modules/map"}]},{label:"sass:selector",documentation:xo("scss.builtin.sass:selector","Provides access to Sass\u2019s powerful selector engine."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/modules/selector"}]},{label:"sass:meta",documentation:xo("scss.builtin.sass:meta","Exposes the details of Sass\u2019s inner workings."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/modules/meta"}]}]}(Zr);function So(e){e.forEach((function(e){if(e.documentation&&e.references&&e.references.length>0){var t="string"===typeof e.documentation?{kind:"markdown",value:e.documentation}:{kind:"markdown",value:e.documentation.value};t.value+="\n\n",t.value+=e.references.map((function(e){return"["+e.name+"]("+e.url+")"})).join(" | "),e.documentation=t}}))}var ko=function(){var e=function(t,n){return e=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])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Co="/".charCodeAt(0),Fo="\n".charCodeAt(0),Eo="\r".charCodeAt(0),zo="\f".charCodeAt(0),Do="`".charCodeAt(0),To=".".charCodeAt(0),Ro=r.CustomToken,Io=Ro++,Mo=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return ko(t,e),t.prototype.scanNext=function(t){var n=this.escapedJavaScript();return null!==n?this.finishToken(t,n):this.stream.advanceIfChars([To,To,To])?this.finishToken(t,Io):e.prototype.scanNext.call(this,t)},t.prototype.comment=function(){return!!e.prototype.comment.call(this)||!(this.inURL||!this.stream.advanceIfChars([Co,Co]))&&(this.stream.advanceWhileChar((function(e){switch(e){case Fo:case Eo:case zo:return!1;default:return!0}})),!0)},t.prototype.escapedJavaScript=function(){return this.stream.peekChar()===Do?(this.stream.advance(1),this.stream.advanceWhileChar((function(e){return e!==Do})),this.stream.advanceIfChar(Do)?r.EscapedJavaScript:r.BadEscapedJavaScript):null},t}(X),Po=function(){var e=function(t,n){return e=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])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),_o=(function(e){function t(){return e.call(this,new Mo)||this}Po(t,e),t.prototype._parseStylesheetStatement=function(t){return void 0===t&&(t=!1),this.peek(r.AtKeyword)?this._parseVariableDeclaration()||this._parsePlugin()||e.prototype._parseStylesheetAtStatement.call(this,t):this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseFunction()||this._parseRuleset(!0)},t.prototype._parseImport=function(){if(!this.peekKeyword("@import")&&!this.peekKeyword("@import-once"))return null;var e=this.create(Ne);if(this.consumeToken(),this.accept(r.ParenthesisL)){if(!this.accept(r.Ident))return this.finish(e,kt.IdentifierExpected,[r.SemiColon]);do{if(!this.accept(r.Comma))break}while(this.accept(r.Ident));if(!this.accept(r.ParenthesisR))return this.finish(e,kt.RightParenthesisExpected,[r.SemiColon])}return e.addChild(this._parseURILiteral())||e.addChild(this._parseStringLiteral())?(this.peek(r.SemiColon)||this.peek(r.EOF)||e.setMedialist(this._parseMediaQueryList()),this.finish(e)):this.finish(e,kt.URIOrStringExpected,[r.SemiColon])},t.prototype._parsePlugin=function(){if(!this.peekKeyword("@plugin"))return null;var e=this.createNode(ee.Plugin);return this.consumeToken(),e.addChild(this._parseStringLiteral())?this.accept(r.SemiColon)?this.finish(e):this.finish(e,kt.SemiColonExpected):this.finish(e,kt.StringLiteralExpected)},t.prototype._parseMediaQuery=function(t){var n=e.prototype._parseMediaQuery.call(this,t);if(!n){var r=this.create(qe);return r.addChild(this._parseVariable())?this.finish(r):null}return n},t.prototype._parseMediaDeclaration=function(e){return void 0===e&&(e=!1),this._tryParseRuleset(e)||this._tryToParseDeclaration()||this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseDetachedRuleSetMixin()||this._parseStylesheetStatement(e)},t.prototype._parseMediaFeatureName=function(){return this._parseIdent()||this._parseVariable()},t.prototype._parseVariableDeclaration=function(e){void 0===e&&(e=[]);var t=this.create(it),n=this.mark();if(!t.setVariable(this._parseVariable(!0)))return null;if(!this.accept(r.Colon))return this.restoreAtMark(n),null;if(this.prevToken&&(t.colonPosition=this.prevToken.offset),t.setValue(this._parseDetachedRuleSet()))t.needsSemicolon=!1;else if(!t.setValue(this._parseExpr()))return this.finish(t,kt.VariableValueExpected,[],e);return t.addChild(this._parsePrio()),this.peek(r.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)},t.prototype._parseDetachedRuleSet=function(){var e=this.mark();if(this.peekDelim("#")||this.peekDelim(".")){if(this.consumeToken(),this.hasWhitespace()||!this.accept(r.ParenthesisL))return this.restoreAtMark(e),null;var t=this.create(pt);if(t.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(r.Comma)||this.accept(r.SemiColon))&&!this.peek(r.ParenthesisR);)t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,kt.IdentifierExpected,[],[r.ParenthesisR]);if(!this.accept(r.ParenthesisR))return this.restoreAtMark(e),null}if(!this.peek(r.CurlyL))return null;var n=this.create(pe);return this._parseBody(n,this._parseDetachedRuleSetBody.bind(this)),this.finish(n)},t.prototype._parseDetachedRuleSetBody=function(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()},t.prototype._addLookupChildren=function(e){if(!e.addChild(this._parseLookupValue()))return!1;for(var t=!1;this.peek(r.BracketL)&&(t=!0),e.addChild(this._parseLookupValue());)t=!1;return!t},t.prototype._parseLookupValue=function(){var e=this.create(se),t=this.mark();return this.accept(r.BracketL)&&((e.addChild(this._parseVariable(!1,!0))||e.addChild(this._parsePropertyIdentifier()))&&this.accept(r.BracketR)||this.accept(r.BracketR))?e:(this.restoreAtMark(t),null)},t.prototype._parseVariable=function(e,t){void 0===e&&(e=!1),void 0===t&&(t=!1);var n=!e&&this.peekDelim("$");if(!this.peekDelim("@")&&!n&&!this.peek(r.AtKeyword))return null;for(var i=this.create(st),o=this.mark();this.acceptDelim("@")||!e&&this.acceptDelim("$");)if(this.hasWhitespace())return this.restoreAtMark(o),null;return(this.accept(r.AtKeyword)||this.accept(r.Ident))&&(t||!this.peek(r.BracketL)||this._addLookupChildren(i))?i:(this.restoreAtMark(o),null)},t.prototype._parseTermExpression=function(){return this._parseVariable()||this._parseEscaped()||e.prototype._parseTermExpression.call(this)||this._tryParseMixinReference(!1)},t.prototype._parseEscaped=function(){if(this.peek(r.EscapedJavaScript)||this.peek(r.BadEscapedJavaScript)){var e=this.createNode(ee.EscapedValue);return this.consumeToken(),this.finish(e)}if(this.peekDelim("~")){e=this.createNode(ee.EscapedValue);return this.consumeToken(),this.accept(r.String)||this.accept(r.EscapedJavaScript)?this.finish(e):this.finish(e,kt.TermExpected)}return null},t.prototype._parseOperator=function(){var t=this._parseGuardOperator();return t||e.prototype._parseOperator.call(this)},t.prototype._parseGuardOperator=function(){if(this.peekDelim(">")){var e=this.createNode(ee.Operator);return this.consumeToken(),this.acceptDelim("="),e}if(this.peekDelim("=")){e=this.createNode(ee.Operator);return this.consumeToken(),this.acceptDelim("<"),e}if(this.peekDelim("<")){e=this.createNode(ee.Operator);return this.consumeToken(),this.acceptDelim("="),e}return null},t.prototype._parseRuleSetDeclaration=function(){return this.peek(r.AtKeyword)?this._parseKeyframe()||this._parseMedia(!0)||this._parseImport()||this._parseSupports(!0)||this._parseDetachedRuleSetMixin()||this._parseVariableDeclaration()||e.prototype._parseRuleSetDeclarationAtStatement.call(this):this._tryParseMixinDeclaration()||this._tryParseRuleset(!0)||this._tryParseMixinReference()||this._parseFunction()||this._parseExtend()||e.prototype._parseRuleSetDeclaration.call(this)},t.prototype._parseKeyframeIdent=function(){return this._parseIdent([te.Keyframe])||this._parseVariable()},t.prototype._parseKeyframeSelector=function(){return this._parseDetachedRuleSetMixin()||e.prototype._parseKeyframeSelector.call(this)},t.prototype._parseSimpleSelectorBody=function(){return this._parseSelectorCombinator()||e.prototype._parseSimpleSelectorBody.call(this)},t.prototype._parseSelector=function(e){var t=this.create(me),n=!1;for(e&&(n=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());){n=!0;var i=this.mark();if(t.addChild(this._parseGuard())&&this.peek(r.CurlyL))break;this.restoreAtMark(i),t.addChild(this._parseCombinator())}return n?this.finish(t):null},t.prototype._parseSelectorCombinator=function(){if(this.peekDelim("&")){var e=this.createNode(ee.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim("-")||this.accept(r.Num)||this.accept(r.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim("&")););return this.finish(e)}return null},t.prototype._parseSelectorIdent=function(){if(!this.peekInterpolatedIdent())return null;var e=this.createNode(ee.SelectorInterpolation);return this._acceptInterpolatedIdent(e)?this.finish(e):null},t.prototype._parsePropertyIdentifier=function(e){void 0===e&&(e=!1);var t=/^[\w-]+/;if(!this.peekInterpolatedIdent()&&!this.peekRegExp(this.token.type,t))return null;var n=this.mark(),r=this.create(le);r.isCustomProperty=this.acceptDelim("-")&&this.acceptDelim("-");return(e?r.isCustomProperty?r.addChild(this._parseIdent()):r.addChild(this._parseRegexp(t)):r.isCustomProperty?this._acceptInterpolatedIdent(r):this._acceptInterpolatedIdent(r,t))?(e||this.hasWhitespace()||(this.acceptDelim("+"),this.hasWhitespace()||this.acceptIdent("_")),this.finish(r)):(this.restoreAtMark(n),null)},t.prototype.peekInterpolatedIdent=function(){return this.peek(r.Ident)||this.peekDelim("@")||this.peekDelim("$")||this.peekDelim("-")},t.prototype._acceptInterpolatedIdent=function(e,t){for(var n=this,i=!1,o=function(){var e=n.mark();return n.acceptDelim("-")&&(n.hasWhitespace()||n.acceptDelim("-"),n.hasWhitespace())?(n.restoreAtMark(e),null):n._parseInterpolation()},s=t?function(){return n.acceptRegexp(t)}:function(){return n.accept(r.Ident)};(s()||e.addChild(this._parseInterpolation()||this.try(o)))&&(i=!0,!this.hasWhitespace()););return i},t.prototype._parseInterpolation=function(){var e=this.mark();if(this.peekDelim("@")||this.peekDelim("$")){var t=this.createNode(ee.Interpolation);return this.consumeToken(),this.hasWhitespace()||!this.accept(r.CurlyL)?(this.restoreAtMark(e),null):t.addChild(this._parseIdent())?this.accept(r.CurlyR)?this.finish(t):this.finish(t,kt.RightCurlyExpected):this.finish(t,kt.IdentifierExpected)}return null},t.prototype._tryParseMixinDeclaration=function(){var e=this.mark(),t=this.create(pt);if(!t.setIdentifier(this._parseMixinDeclarationIdentifier())||!this.accept(r.ParenthesisL))return this.restoreAtMark(e),null;if(t.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(r.Comma)||this.accept(r.SemiColon))&&!this.peek(r.ParenthesisR);)t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,kt.IdentifierExpected,[],[r.ParenthesisR]);return this.accept(r.ParenthesisR)?(t.setGuard(this._parseGuard()),this.peek(r.CurlyL)?this._parseBody(t,this._parseMixInBodyDeclaration.bind(this)):(this.restoreAtMark(e),null)):(this.restoreAtMark(e),null)},t.prototype._parseMixInBodyDeclaration=function(){return this._parseFontFace()||this._parseRuleSetDeclaration()},t.prototype._parseMixinDeclarationIdentifier=function(){var e;if(this.peekDelim("#")||this.peekDelim(".")){if(e=this.create(le),this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseIdent()))return null}else{if(!this.peek(r.Hash))return null;e=this.create(le),this.consumeToken()}return e.referenceTypes=[te.Mixin],this.finish(e)},t.prototype._parsePseudo=function(){if(!this.peek(r.Colon))return null;var t=this.mark(),n=this.create(at);return this.consumeToken(),this.acceptIdent("extend")?this._completeExtends(n):(this.restoreAtMark(t),e.prototype._parsePseudo.call(this))},t.prototype._parseExtend=function(){if(!this.peekDelim("&"))return null;var e=this.mark(),t=this.create(at);return this.consumeToken(),!this.hasWhitespace()&&this.accept(r.Colon)&&this.acceptIdent("extend")?this._completeExtends(t):(this.restoreAtMark(e),null)},t.prototype._completeExtends=function(e){if(!this.accept(r.ParenthesisL))return this.finish(e,kt.LeftParenthesisExpected);var t=e.getSelectors();if(!t.addChild(this._parseSelector(!0)))return this.finish(e,kt.SelectorExpected);for(;this.accept(r.Comma);)if(!t.addChild(this._parseSelector(!0)))return this.finish(e,kt.SelectorExpected);return this.accept(r.ParenthesisR)?this.finish(e):this.finish(e,kt.RightParenthesisExpected)},t.prototype._parseDetachedRuleSetMixin=function(){if(!this.peek(r.AtKeyword))return null;var e=this.mark(),t=this.create(dt);return!t.addChild(this._parseVariable(!0))||!this.hasWhitespace()&&this.accept(r.ParenthesisL)?this.accept(r.ParenthesisR)?this.finish(t):this.finish(t,kt.RightParenthesisExpected):(this.restoreAtMark(e),null)},t.prototype._tryParseMixinReference=function(e){void 0===e&&(e=!0);for(var t=this.mark(),n=this.create(dt),i=this._parseMixinDeclarationIdentifier();i;){this.acceptDelim(">");var o=this._parseMixinDeclarationIdentifier();if(!o)break;n.getNamespaces().addChild(i),i=o}if(!n.setIdentifier(i))return this.restoreAtMark(t),null;var s=!1;if(this.accept(r.ParenthesisL)){if(s=!0,n.getArguments().addChild(this._parseMixinArgument()))for(;(this.accept(r.Comma)||this.accept(r.SemiColon))&&!this.peek(r.ParenthesisR);)if(!n.getArguments().addChild(this._parseMixinArgument()))return this.finish(n,kt.ExpressionExpected);if(!this.accept(r.ParenthesisR))return this.finish(n,kt.RightParenthesisExpected);i.referenceTypes=[te.Mixin]}else i.referenceTypes=[te.Mixin,te.Rule];return this.peek(r.BracketL)?e||this._addLookupChildren(n):n.addChild(this._parsePrio()),s||this.peek(r.SemiColon)||this.peek(r.CurlyR)||this.peek(r.EOF)?this.finish(n):(this.restoreAtMark(t),null)},t.prototype._parseMixinArgument=function(){var e=this.create(ke),t=this.mark(),n=this._parseVariable();return n&&(this.accept(r.Colon)?e.setIdentifier(n):this.restoreAtMark(t)),e.setValue(this._parseDetachedRuleSet()||this._parseExpr(!0))?this.finish(e):(this.restoreAtMark(t),null)},t.prototype._parseMixinParameter=function(){var e=this.create(Se);if(this.peekKeyword("@rest")){var t=this.create(se);return this.consumeToken(),this.accept(Io)?(e.setIdentifier(this.finish(t)),this.finish(e)):this.finish(e,kt.DotExpected,[],[r.Comma,r.ParenthesisR])}if(this.peek(Io)){var n=this.create(se);return this.consumeToken(),e.setIdentifier(this.finish(n)),this.finish(e)}var i=!1;return e.setIdentifier(this._parseVariable())&&(this.accept(r.Colon),i=!0),e.setDefaultValue(this._parseDetachedRuleSet()||this._parseExpr(!0))||i?this.finish(e):null},t.prototype._parseGuard=function(){if(!this.peekIdent("when"))return null;var e=this.create(ut);if(this.consumeToken(),e.isNegated=this.acceptIdent("not"),!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,kt.ConditionExpected);for(;this.acceptIdent("and")||this.accept(r.Comma);)if(!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,kt.ConditionExpected);return this.finish(e)},t.prototype._parseGuardCondition=function(){if(!this.peek(r.ParenthesisL))return null;var e=this.create(ft);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(r.ParenthesisR)?this.finish(e):this.finish(e,kt.RightParenthesisExpected)},t.prototype._parseFunction=function(){var e=this.mark(),t=this.create(xe);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(r.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseMixinArgument()))for(;(this.accept(r.Comma)||this.accept(r.SemiColon))&&!this.peek(r.ParenthesisR);)if(!t.getArguments().addChild(this._parseMixinArgument()))return this.finish(t,kt.ExpressionExpected);return this.accept(r.ParenthesisR)?this.finish(t):this.finish(t,kt.RightParenthesisExpected)},t.prototype._parseFunctionIdentifier=function(){if(this.peekDelim("%")){var t=this.create(le);return t.referenceTypes=[te.Function],this.consumeToken(),this.finish(t)}return e.prototype._parseFunctionIdentifier.call(this)},t.prototype._parseURLArgument=function(){var t=this.mark(),n=e.prototype._parseURLArgument.call(this);if(!n||!this.peek(r.ParenthesisR)){this.restoreAtMark(t);var i=this.create(se);return i.addChild(this._parseBinaryExpr()),this.finish(i)}return n}}(ln),function(){var e=function(t,n){return e=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])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}()),No=wt();!function(e){function t(t,n){return e.call(this,"@",t,n)||this}_o(t,e),t.prototype.createFunctionProposals=function(e,t,n,r){for(var i=0,o=e;i<o.length;i++){var s=o[i],a={label:s.name,detail:s.example,documentation:s.description,textEdit:Dn.replace(this.getCompletionRange(t),s.name+"($0)"),insertTextFormat:Xn.Snippet,kind:Hn.Function};n&&(a.sortText="z"),r.items.push(a)}return r},t.prototype.getTermProposals=function(n,r,i){var o=t.builtInProposals;return n&&(o=o.filter((function(e){return!e.type||!n.restrictions||-1!==n.restrictions.indexOf(e.type)}))),this.createFunctionProposals(o,r,!0,i),e.prototype.getTermProposals.call(this,n,r,i)},t.prototype.getColorProposals=function(n,r,i){return this.createFunctionProposals(t.colorProposals,r,!1,i),e.prototype.getColorProposals.call(this,n,r,i)},t.prototype.getCompletionsForDeclarationProperty=function(t,n){return this.getCompletionsForSelector(null,!0,n),e.prototype.getCompletionsForDeclarationProperty.call(this,t,n)},t.builtInProposals=[{name:"if",example:"if(condition, trueValue [, falseValue]);",description:No("less.builtin.if","returns one of two values depending on a condition.")},{name:"boolean",example:"boolean(condition);",description:No("less.builtin.boolean",'"store" a boolean test for later evaluation in a guard or if().')},{name:"length",example:"length(@list);",description:No("less.builtin.length","returns the number of elements in a value list")},{name:"extract",example:"extract(@list, index);",description:No("less.builtin.extract","returns a value at the specified position in the list")},{name:"range",example:"range([start, ] end [, step]);",description:No("less.builtin.range","generate a list spanning a range of values")},{name:"each",example:"each(@list, ruleset);",description:No("less.builtin.each","bind the evaluation of a ruleset to each member of a list.")},{name:"escape",example:"escape(@string);",description:No("less.builtin.escape","URL encodes a string")},{name:"e",example:"e(@string);",description:No("less.builtin.e","escape string content")},{name:"replace",example:"replace(@string, @pattern, @replacement[, @flags]);",description:No("less.builtin.replace","string replace")},{name:"unit",example:"unit(@dimension, [@unit: '']);",description:No("less.builtin.unit","remove or change the unit of a dimension")},{name:"color",example:"color(@string);",description:No("less.builtin.color","parses a string to a color"),type:"color"},{name:"convert",example:"convert(@value, unit);",description:No("less.builtin.convert","converts numbers from one type into another")},{name:"data-uri",example:"data-uri([mimetype,] url);",description:No("less.builtin.data-uri","inlines a resource and falls back to `url()`"),type:"url"},{name:"abs",description:No("less.builtin.abs","absolute value of a number"),example:"abs(number);"},{name:"acos",description:No("less.builtin.acos","arccosine - inverse of cosine function"),example:"acos(number);"},{name:"asin",description:No("less.builtin.asin","arcsine - inverse of sine function"),example:"asin(number);"},{name:"ceil",example:"ceil(@number);",description:No("less.builtin.ceil","rounds up to an integer")},{name:"cos",description:No("less.builtin.cos","cosine function"),example:"cos(number);"},{name:"floor",description:No("less.builtin.floor","rounds down to an integer"),example:"floor(@number);"},{name:"percentage",description:No("less.builtin.percentage","converts to a %, e.g. 0.5 > 50%"),example:"percentage(@number);",type:"percentage"},{name:"round",description:No("less.builtin.round","rounds a number to a number of places"),example:"round(number, [places: 0]);"},{name:"sqrt",description:No("less.builtin.sqrt","calculates square root of a number"),example:"sqrt(number);"},{name:"sin",description:No("less.builtin.sin","sine function"),example:"sin(number);"},{name:"tan",description:No("less.builtin.tan","tangent function"),example:"tan(number);"},{name:"atan",description:No("less.builtin.atan","arctangent - inverse of tangent function"),example:"atan(number);"},{name:"pi",description:No("less.builtin.pi","returns pi"),example:"pi();"},{name:"pow",description:No("less.builtin.pow","first argument raised to the power of the second argument"),example:"pow(@base, @exponent);"},{name:"mod",description:No("less.builtin.mod","first argument modulus second argument"),example:"mod(number, number);"},{name:"min",description:No("less.builtin.min","returns the lowest of one or more values"),example:"min(@x, @y);"},{name:"max",description:No("less.builtin.max","returns the lowest of one or more values"),example:"max(@x, @y);"}],t.colorProposals=[{name:"argb",example:"argb(@color);",description:No("less.builtin.argb","creates a #AARRGGBB")},{name:"hsl",example:"hsl(@hue, @saturation, @lightness);",description:No("less.builtin.hsl","creates a color")},{name:"hsla",example:"hsla(@hue, @saturation, @lightness, @alpha);",description:No("less.builtin.hsla","creates a color")},{name:"hsv",example:"hsv(@hue, @saturation, @value);",description:No("less.builtin.hsv","creates a color")},{name:"hsva",example:"hsva(@hue, @saturation, @value, @alpha);",description:No("less.builtin.hsva","creates a color")},{name:"hue",example:"hue(@color);",description:No("less.builtin.hue","returns the `hue` channel of `@color` in the HSL space")},{name:"saturation",example:"saturation(@color);",description:No("less.builtin.saturation","returns the `saturation` channel of `@color` in the HSL space")},{name:"lightness",example:"lightness(@color);",description:No("less.builtin.lightness","returns the `lightness` channel of `@color` in the HSL space")},{name:"hsvhue",example:"hsvhue(@color);",description:No("less.builtin.hsvhue","returns the `hue` channel of `@color` in the HSV space")},{name:"hsvsaturation",example:"hsvsaturation(@color);",description:No("less.builtin.hsvsaturation","returns the `saturation` channel of `@color` in the HSV space")},{name:"hsvvalue",example:"hsvvalue(@color);",description:No("less.builtin.hsvvalue","returns the `value` channel of `@color` in the HSV space")},{name:"red",example:"red(@color);",description:No("less.builtin.red","returns the `red` channel of `@color`")},{name:"green",example:"green(@color);",description:No("less.builtin.green","returns the `green` channel of `@color`")},{name:"blue",example:"blue(@color);",description:No("less.builtin.blue","returns the `blue` channel of `@color`")},{name:"alpha",example:"alpha(@color);",description:No("less.builtin.alpha","returns the `alpha` channel of `@color`")},{name:"luma",example:"luma(@color);",description:No("less.builtin.luma","returns the `luma` value (perceptual brightness) of `@color`")},{name:"saturate",example:"saturate(@color, 10%);",description:No("less.builtin.saturate","return `@color` 10% points more saturated")},{name:"desaturate",example:"desaturate(@color, 10%);",description:No("less.builtin.desaturate","return `@color` 10% points less saturated")},{name:"lighten",example:"lighten(@color, 10%);",description:No("less.builtin.lighten","return `@color` 10% points lighter")},{name:"darken",example:"darken(@color, 10%);",description:No("less.builtin.darken","return `@color` 10% points darker")},{name:"fadein",example:"fadein(@color, 10%);",description:No("less.builtin.fadein","return `@color` 10% points less transparent")},{name:"fadeout",example:"fadeout(@color, 10%);",description:No("less.builtin.fadeout","return `@color` 10% points more transparent")},{name:"fade",example:"fade(@color, 50%);",description:No("less.builtin.fade","return `@color` with 50% transparency")},{name:"spin",example:"spin(@color, 10);",description:No("less.builtin.spin","return `@color` with a 10 degree larger in hue")},{name:"mix",example:"mix(@color1, @color2, [@weight: 50%]);",description:No("less.builtin.mix","return a mix of `@color1` and `@color2`")},{name:"greyscale",example:"greyscale(@color);",description:No("less.builtin.greyscale","returns a grey, 100% desaturated color")},{name:"contrast",example:"contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]);",description:No("less.builtin.contrast","return `@darkcolor` if `@color1 is> 43% luma` otherwise return `@lightcolor`, see notes")},{name:"multiply",example:"multiply(@color1, @color2);"},{name:"screen",example:"screen(@color1, @color2);"},{name:"overlay",example:"overlay(@color1, @color2);"},{name:"softlight",example:"softlight(@color1, @color2);"},{name:"hardlight",example:"hardlight(@color1, @color2);"},{name:"difference",example:"difference(@color1, @color2);"},{name:"exclusion",example:"exclusion(@color1, @color2);"},{name:"average",example:"average(@color1, @color2);"},{name:"negation",example:"negation(@color1, @color2);"}]}(Zr);var Ao={version:1.1,properties:[{name:"additive-symbols",browsers:["FF33"],syntax:"[ <integer> && <symbol> ]#",relevance:50,description:"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor. Needs to be specified if the counter system is 'additive'.",restrictions:["integer","string","image","identifier"]},{name:"align-content",values:[{name:"center",description:"Lines are packed toward the center of the flex container."},{name:"flex-end",description:"Lines are packed toward the end of the flex container."},{name:"flex-start",description:"Lines are packed toward the start of the flex container."},{name:"space-around",description:"Lines are evenly distributed in the flex container, with half-size spaces on either end."},{name:"space-between",description:"Lines are evenly distributed in the flex container."},{name:"stretch",description:"Lines stretch to take up the remaining space."}],syntax:"normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>",relevance:60,description:"Aligns a flex container\u2019s lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.",restrictions:["enum"]},{name:"align-items",values:[{name:"baseline",description:"If the flex item\u2019s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item\u2019s margin box is centered in the cross axis within the line."},{name:"flex-end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"flex-start",description:"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."}],syntax:"normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]",relevance:83,description:"Aligns flex items along the cross axis of the current line of the flex container.",restrictions:["enum"]},{name:"justify-items",values:[{name:"auto"},{name:"normal"},{name:"end"},{name:"start"},{name:"flex-end",description:'"Flex items are packed toward the end of the line."'},{name:"flex-start",description:'"Flex items are packed toward the start of the line."'},{name:"self-end",description:"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis."},{name:"self-start",description:"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.."},{name:"center",description:"The items are packed flush to each other toward the center of the of the alignment container."},{name:"left"},{name:"right"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"save"},{name:"unsave"},{name:"legacy"}],syntax:"normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]",relevance:51,description:"Defines the default justify-self for all items of the box, giving them the default way of justifying each box along the appropriate axis",restrictions:["enum"]},{name:"justify-self",values:[{name:"auto"},{name:"normal"},{name:"end"},{name:"start"},{name:"flex-end",description:'"Flex items are packed toward the end of the line."'},{name:"flex-start",description:'"Flex items are packed toward the start of the line."'},{name:"self-end",description:"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis."},{name:"self-start",description:"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.."},{name:"center",description:"The items are packed flush to each other toward the center of the of the alignment container."},{name:"left"},{name:"right"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"save"},{name:"unsave"}],syntax:"auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]",relevance:52,description:"Defines the way of justifying a box inside its container along the appropriate axis.",restrictions:["enum"]},{name:"align-self",values:[{name:"auto",description:"Computes to the value of 'align-items' on the element\u2019s parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself."},{name:"baseline",description:"If the flex item\u2019s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item\u2019s margin box is centered in the cross axis within the line."},{name:"flex-end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"flex-start",description:"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."}],syntax:"auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position>",relevance:70,description:"Allows the default alignment along the cross axis to be overridden for individual flex items.",restrictions:["enum"]},{name:"all",browsers:["E79","FF27","S9.1","C37","O24"],values:[],syntax:"initial | inherit | unset | revert",relevance:52,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/all"}],description:"Shorthand that resets all properties except 'direction' and 'unicode-bidi'.",restrictions:["enum"]},{name:"alt",browsers:["S9"],values:[],relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/alt"}],description:"Provides alternative text for assistive technology to replace the generated content of a ::before or ::after element.",restrictions:["string","enum"]},{name:"animation",values:[{name:"alternate",description:"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction."},{name:"alternate-reverse",description:"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction."},{name:"backwards",description:"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'."},{name:"both",description:"Both forwards and backwards fill modes are applied."},{name:"forwards",description:"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes."},{name:"infinite",description:"Causes the animation to repeat forever."},{name:"none",description:"No animation is performed"},{name:"normal",description:"Normal playback."},{name:"reverse",description:"All iterations of the animation are played in the reverse direction from the way they were specified."}],syntax:"<single-animation>#",relevance:80,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/animation"}],description:"Shorthand property combines six of the animation properties into a single property.",restrictions:["time","timing-function","enum","identifier","number"]},{name:"animation-delay",syntax:"<time>#",relevance:62,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/animation-delay"}],description:"Defines when the animation will start.",restrictions:["time"]},{name:"animation-direction",values:[{name:"alternate",description:"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction."},{name:"alternate-reverse",description:"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction."},{name:"normal",description:"Normal playback."},{name:"reverse",description:"All iterations of the animation are played in the reverse direction from the way they were specified."}],syntax:"<single-animation-direction>#",relevance:56,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/animation-direction"}],description:"Defines whether or not the animation should play in reverse on alternate cycles.",restrictions:["enum"]},{name:"animation-duration",syntax:"<time>#",relevance:65,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/animation-duration"}],description:"Defines the length of time that an animation takes to complete one cycle.",restrictions:["time"]},{name:"animation-fill-mode",values:[{name:"backwards",description:"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'."},{name:"both",description:"Both forwards and backwards fill modes are applied."},{name:"forwards",description:"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes."},{name:"none",description:"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes."}],syntax:"<single-animation-fill-mode>#",relevance:62,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode"}],description:"Defines what values are applied by the animation outside the time it is executing.",restrictions:["enum"]},{name:"animation-iteration-count",values:[{name:"infinite",description:"Causes the animation to repeat forever."}],syntax:"<single-animation-iteration-count>#",relevance:59,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count"}],description:"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.",restrictions:["number","enum"]},{name:"animation-name",values:[{name:"none",description:"No animation is performed"}],syntax:"[ none | <keyframes-name> ]#",relevance:65,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/animation-name"}],description:"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.",restrictions:["identifier","enum"]},{name:"animation-play-state",values:[{name:"paused",description:"A running animation will be paused."},{name:"running",description:"Resume playback of a paused animation."}],syntax:"<single-animation-play-state>#",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/animation-play-state"}],description:"Defines whether the animation is running or paused.",restrictions:["enum"]},{name:"animation-timing-function",syntax:"<easing-function>#",relevance:68,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/animation-timing-function"}],description:"Describes how the animation will progress over one cycle of its duration.",restrictions:["timing-function"]},{name:"backface-visibility",values:[{name:"hidden",description:"Back side is hidden."},{name:"visible",description:"Back side is visible."}],syntax:"visible | hidden",relevance:59,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/backface-visibility"}],description:"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.",restrictions:["enum"]},{name:"background",values:[{name:"fixed",description:"The background is fixed with regard to the viewport. In paged media where there is no viewport, a 'fixed' background is fixed with respect to the page box and therefore replicated on every page."},{name:"local",description:"The background is fixed with regard to the element's contents: if the element has a scrolling mechanism, the background scrolls with the element's contents."},{name:"none",description:"A value of 'none' counts as an image layer but draws nothing."},{name:"scroll",description:"The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element's border.)"}],syntax:"[ <bg-layer> , ]* <final-bg-layer>",relevance:93,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/background"}],description:"Shorthand property for setting most background properties at the same place in the style sheet.",restrictions:["enum","image","color","position","length","repeat","percentage","box"]},{name:"background-attachment",values:[{name:"fixed",description:"The background is fixed with regard to the viewport. In paged media where there is no viewport, a 'fixed' background is fixed with respect to the page box and therefore replicated on every page."},{name:"local",description:"The background is fixed with regard to the element\u2019s contents: if the element has a scrolling mechanism, the background scrolls with the element\u2019s contents."},{name:"scroll",description:"The background is fixed with regard to the element itself and does not scroll with its contents. (It is effectively attached to the element\u2019s border.)"}],syntax:"<attachment>#",relevance:54,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/background-attachment"}],description:"Specifies whether the background images are fixed with regard to the viewport ('fixed') or scroll along with the element ('scroll') or its contents ('local').",restrictions:["enum"]},{name:"background-blend-mode",browsers:["E79","FF30","S8","C35","O22"],values:[{name:"normal",description:"Default attribute which specifies no blending"},{name:"multiply",description:"The source color is multiplied by the destination color and replaces the destination."},{name:"screen",description:"Multiplies the complements of the backdrop and source color values, then complements the result."},{name:"overlay",description:"Multiplies or screens the colors, depending on the backdrop color value."},{name:"darken",description:"Selects the darker of the backdrop and source colors."},{name:"lighten",description:"Selects the lighter of the backdrop and source colors."},{name:"color-dodge",description:"Brightens the backdrop color to reflect the source color."},{name:"color-burn",description:"Darkens the backdrop color to reflect the source color."},{name:"hard-light",description:"Multiplies or screens the colors, depending on the source color value."},{name:"soft-light",description:"Darkens or lightens the colors, depending on the source color value."},{name:"difference",description:"Subtracts the darker of the two constituent colors from the lighter color.."},{name:"exclusion",description:"Produces an effect similar to that of the Difference mode but lower in contrast."},{name:"hue",browsers:["E79","FF30","S8","C35","O22"],description:"Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color."},{name:"saturation",browsers:["E79","FF30","S8","C35","O22"],description:"Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color."},{name:"color",browsers:["E79","FF30","S8","C35","O22"],description:"Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color."},{name:"luminosity",browsers:["E79","FF30","S8","C35","O22"],description:"Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color."}],syntax:"<blend-mode>#",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/background-blend-mode"}],description:"Defines the blending mode of each background layer.",restrictions:["enum"]},{name:"background-clip",syntax:"<box>#",relevance:67,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/background-clip"}],description:"Determines the background painting area.",restrictions:["box"]},{name:"background-color",syntax:"<color>",relevance:94,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/background-color"}],description:"Sets the background color of an element.",restrictions:["color"]},{name:"background-image",values:[{name:"none",description:"Counts as an image layer but draws nothing."}],syntax:"<bg-image>#",relevance:89,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/background-image"}],description:"Sets the background image(s) of an element.",restrictions:["image","enum"]},{name:"background-origin",syntax:"<box>#",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/background-origin"}],description:"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).",restrictions:["box"]},{name:"background-position",syntax:"<bg-position>#",relevance:88,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/background-position"}],description:"Specifies the initial position of the background image(s) (after any resizing) within their corresponding background positioning area.",restrictions:["position","length","percentage"]},{name:"background-position-x",values:[{name:"center",description:"Equivalent to '50%' ('left 50%') for the horizontal position if the horizontal position is not otherwise specified, or '50%' ('top 50%') for the vertical position if it is."},{name:"left",description:"Equivalent to '0%' for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset."},{name:"right",description:"Equivalent to '100%' for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset."}],status:"experimental",syntax:"[ center | [ [ left | right | x-start | x-end ]? <length-percentage>? ]! ]#",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/background-position-x"}],description:"If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area.",restrictions:["length","percentage"]},{name:"background-position-y",values:[{name:"bottom",description:"Equivalent to '100%' for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset."},{name:"center",description:"Equivalent to '50%' ('left 50%') for the horizontal position if the horizontal position is not otherwise specified, or '50%' ('top 50%') for the vertical position if it is."},{name:"top",description:"Equivalent to '0%' for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset."}],status:"experimental",syntax:"[ center | [ [ top | bottom | y-start | y-end ]? <length-percentage>? ]! ]#",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/background-position-y"}],description:"If background images have been specified, this property specifies their initial position (after any resizing) within their corresponding background positioning area.",restrictions:["length","percentage"]},{name:"background-repeat",values:[],syntax:"<repeat-style>#",relevance:86,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/background-repeat"}],description:"Specifies how background images are tiled after they have been sized and positioned.",restrictions:["repeat"]},{name:"background-size",values:[{name:"auto",description:"Resolved by using the image\u2019s intrinsic ratio and the size of the other dimension, or failing that, using the image\u2019s intrinsic size, or failing that, treating it as 100%."},{name:"contain",description:"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area."},{name:"cover",description:"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area."}],syntax:"<bg-size>#",relevance:86,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/background-size"}],description:"Specifies the size of the background images.",restrictions:["length","percentage"]},{name:"behavior",browsers:["IE6"],relevance:50,description:"IE only. Used to extend behaviors of the browser.",restrictions:["url"]},{name:"block-size",browsers:["E79","FF41","S12.1","C57","O44"],values:[{name:"auto",description:"Depends on the values of other properties."}],syntax:"<'width'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/block-size"}],description:"Logical 'width'. Mapping depends on the element\u2019s 'writing-mode'.",restrictions:["length","percentage"]},{name:"border",syntax:"<line-width> || <line-style> || <color>",relevance:96,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border"}],description:"Shorthand property for setting border width, style, and color.",restrictions:["length","line-width","line-style","color"]},{name:"border-block-end",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-width'> || <'border-top-style'> || <color>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-block-end"}],description:"Logical 'border-bottom'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","line-width","line-style","color"]},{name:"border-block-start",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-width'> || <'border-top-style'> || <color>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-block-start"}],description:"Logical 'border-top'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","line-width","line-style","color"]},{name:"border-block-end-color",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-color'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-block-end-color"}],description:"Logical 'border-bottom-color'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["color"]},{name:"border-block-start-color",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-color'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-block-start-color"}],description:"Logical 'border-top-color'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["color"]},{name:"border-block-end-style",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-style'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-block-end-style"}],description:"Logical 'border-bottom-style'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["line-style"]},{name:"border-block-start-style",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-style'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-block-start-style"}],description:"Logical 'border-top-style'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["line-style"]},{name:"border-block-end-width",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-width'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-block-end-width"}],description:"Logical 'border-bottom-width'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","line-width"]},{name:"border-block-start-width",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-width'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-block-start-width"}],description:"Logical 'border-top-width'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","line-width"]},{name:"border-bottom",syntax:"<line-width> || <line-style> || <color>",relevance:89,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-bottom"}],description:"Shorthand property for setting border width, style and color.",restrictions:["length","line-width","line-style","color"]},{name:"border-bottom-color",syntax:"<'border-top-color'>",relevance:71,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-bottom-color"}],description:"Sets the color of the bottom border.",restrictions:["color"]},{name:"border-bottom-left-radius",syntax:"<length-percentage>{1,2}",relevance:75,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius"}],description:"Defines the radii of the bottom left outer border edge.",restrictions:["length","percentage"]},{name:"border-bottom-right-radius",syntax:"<length-percentage>{1,2}",relevance:74,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius"}],description:"Defines the radii of the bottom right outer border edge.",restrictions:["length","percentage"]},{name:"border-bottom-style",syntax:"<line-style>",relevance:57,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-bottom-style"}],description:"Sets the style of the bottom border.",restrictions:["line-style"]},{name:"border-bottom-width",syntax:"<line-width>",relevance:62,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-bottom-width"}],description:"Sets the thickness of the bottom border.",restrictions:["length","line-width"]},{name:"border-collapse",values:[{name:"collapse",description:"Selects the collapsing borders model."},{name:"separate",description:"Selects the separated borders border model."}],syntax:"collapse | separate",relevance:75,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-collapse"}],description:"Selects a table's border model.",restrictions:["enum"]},{name:"border-color",values:[],syntax:"<color>{1,4}",relevance:87,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-color"}],description:"The color of the border around all four edges of an element.",restrictions:["color"]},{name:"border-image",values:[{name:"auto",description:"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead."},{name:"fill",description:"Causes the middle part of the border-image to be preserved."},{name:"none",description:"Use the border styles."},{name:"repeat",description:"The image is tiled (repeated) to fill the area."},{name:"round",description:"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does."},{name:"space",description:"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles."},{name:"stretch",description:"The image is stretched to fill the area."},{name:"url()"}],syntax:"<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>",relevance:52,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-image"}],description:"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.",restrictions:["length","percentage","number","url","enum"]},{name:"border-image-outset",syntax:"[ <length> | <number> ]{1,4}",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-image-outset"}],description:"The values specify the amount by which the border image area extends beyond the border box on the top, right, bottom, and left sides respectively. If the fourth value is absent, it is the same as the second. If the third one is also absent, it is the same as the first. If the second one is also absent, it is the same as the first. Numbers represent multiples of the corresponding border-width.",restrictions:["length","number"]},{name:"border-image-repeat",values:[{name:"repeat",description:"The image is tiled (repeated) to fill the area."},{name:"round",description:"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does."},{name:"space",description:"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles."},{name:"stretch",description:"The image is stretched to fill the area."}],syntax:"[ stretch | repeat | round | space ]{1,2}",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-image-repeat"}],description:"Specifies how the images for the sides and the middle part of the border image are scaled and tiled. If the second keyword is absent, it is assumed to be the same as the first.",restrictions:["enum"]},{name:"border-image-slice",values:[{name:"fill",description:"Causes the middle part of the border-image to be preserved."}],syntax:"<number-percentage>{1,4} && fill?",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-image-slice"}],description:"Specifies inward offsets from the top, right, bottom, and left edges of the image, dividing it into nine regions: four corners, four edges and a middle.",restrictions:["number","percentage"]},{name:"border-image-source",values:[{name:"none",description:"Use the border styles."}],syntax:"none | <image>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-image-source"}],description:"Specifies an image to use instead of the border styles given by the 'border-style' properties and as an additional background layer for the element. If the value is 'none' or if the image cannot be displayed, the border styles will be used.",restrictions:["image"]},{name:"border-image-width",values:[{name:"auto",description:"The border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead."}],syntax:"[ <length-percentage> | <number> | auto ]{1,4}",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-image-width"}],description:"The four values of 'border-image-width' specify offsets that are used to divide the border image area into nine parts. They represent inward distances from the top, right, bottom, and left sides of the area, respectively.",restrictions:["length","percentage","number"]},{name:"border-inline-end",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-width'> || <'border-top-style'> || <color>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-end"}],description:"Logical 'border-right'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","line-width","line-style","color"]},{name:"border-inline-start",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-width'> || <'border-top-style'> || <color>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-start"}],description:"Logical 'border-left'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","line-width","line-style","color"]},{name:"border-inline-end-color",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-color'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-color"}],description:"Logical 'border-right-color'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["color"]},{name:"border-inline-start-color",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-color'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-color"}],description:"Logical 'border-left-color'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["color"]},{name:"border-inline-end-style",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-style'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-style"}],description:"Logical 'border-right-style'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["line-style"]},{name:"border-inline-start-style",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-style'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-style"}],description:"Logical 'border-left-style'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["line-style"]},{name:"border-inline-end-width",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-width'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-width"}],description:"Logical 'border-right-width'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","line-width"]},{name:"border-inline-start-width",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'border-top-width'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-width"}],description:"Logical 'border-left-width'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","line-width"]},{name:"border-left",syntax:"<line-width> || <line-style> || <color>",relevance:83,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-left"}],description:"Shorthand property for setting border width, style and color",restrictions:["length","line-width","line-style","color"]},{name:"border-left-color",syntax:"<color>",relevance:65,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-left-color"}],description:"Sets the color of the left border.",restrictions:["color"]},{name:"border-left-style",syntax:"<line-style>",relevance:54,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-left-style"}],description:"Sets the style of the left border.",restrictions:["line-style"]},{name:"border-left-width",syntax:"<line-width>",relevance:58,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-left-width"}],description:"Sets the thickness of the left border.",restrictions:["length","line-width"]},{name:"border-radius",syntax:"<length-percentage>{1,4} [ / <length-percentage>{1,4} ]?",relevance:92,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-radius"}],description:"Defines the radii of the outer border edge.",restrictions:["length","percentage"]},{name:"border-right",syntax:"<line-width> || <line-style> || <color>",relevance:81,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-right"}],description:"Shorthand property for setting border width, style and color",restrictions:["length","line-width","line-style","color"]},{name:"border-right-color",syntax:"<color>",relevance:64,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-right-color"}],description:"Sets the color of the right border.",restrictions:["color"]},{name:"border-right-style",syntax:"<line-style>",relevance:54,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-right-style"}],description:"Sets the style of the right border.",restrictions:["line-style"]},{name:"border-right-width",syntax:"<line-width>",relevance:60,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-right-width"}],description:"Sets the thickness of the right border.",restrictions:["length","line-width"]},{name:"border-spacing",syntax:"<length> <length>?",relevance:68,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-spacing"}],description:"The lengths specify the distance that separates adjoining cell borders. If one length is specified, it gives both the horizontal and vertical spacing. If two are specified, the first gives the horizontal spacing and the second the vertical spacing. Lengths may not be negative.",restrictions:["length"]},{name:"border-style",values:[],syntax:"<line-style>{1,4}",relevance:80,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-style"}],description:"The style of the border around edges of an element.",restrictions:["line-style"]},{name:"border-top",syntax:"<line-width> || <line-style> || <color>",relevance:88,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-top"}],description:"Shorthand property for setting border width, style and color",restrictions:["length","line-width","line-style","color"]},{name:"border-top-color",syntax:"<color>",relevance:72,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-top-color"}],description:"Sets the color of the top border.",restrictions:["color"]},{name:"border-top-left-radius",syntax:"<length-percentage>{1,2}",relevance:75,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius"}],description:"Defines the radii of the top left outer border edge.",restrictions:["length","percentage"]},{name:"border-top-right-radius",syntax:"<length-percentage>{1,2}",relevance:73,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius"}],description:"Defines the radii of the top right outer border edge.",restrictions:["length","percentage"]},{name:"border-top-style",syntax:"<line-style>",relevance:57,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-top-style"}],description:"Sets the style of the top border.",restrictions:["line-style"]},{name:"border-top-width",syntax:"<line-width>",relevance:61,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-top-width"}],description:"Sets the thickness of the top border.",restrictions:["length","line-width"]},{name:"border-width",values:[],syntax:"<line-width>{1,4}",relevance:82,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-width"}],description:"Shorthand that sets the four 'border-*-width' properties. If it has four values, they set top, right, bottom and left in that order. If left is missing, it is the same as right; if bottom is missing, it is the same as top; if right is missing, it is the same as top.",restrictions:["length","line-width"]},{name:"bottom",values:[{name:"auto",description:"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well"}],syntax:"<length> | <percentage> | auto",relevance:90,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/bottom"}],description:"Specifies how far an absolutely positioned box's bottom margin edge is offset above the bottom edge of the box's 'containing block'.",restrictions:["length","percentage"]},{name:"box-decoration-break",browsers:["E79","FF32","S6.1","C22","O15"],values:[{name:"clone",description:"Each box is independently wrapped with the border and padding."},{name:"slice",description:"The effect is as though the element were rendered with no breaks present, and then sliced by the breaks afterward."}],syntax:"slice | clone",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/box-decoration-break"}],description:"Specifies whether individual boxes are treated as broken pieces of one continuous box, or whether each box is individually wrapped with the border and padding.",restrictions:["enum"]},{name:"box-shadow",values:[{name:"inset",description:"Changes the drop shadow from an outer shadow (one that shadows the box onto the canvas, as if it were lifted above the canvas) to an inner shadow (one that shadows the canvas onto the box, as if the box were cut out of the canvas and shifted behind it)."},{name:"none",description:"No shadow."}],syntax:"none | <shadow>#",relevance:90,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/box-shadow"}],description:"Attaches one or more drop-shadows to the box. The property is a comma-separated list of shadows, each specified by 2-4 length values, an optional color, and an optional 'inset' keyword. Omitted lengths are 0; omitted colors are a user agent chosen color.",restrictions:["length","color","enum"]},{name:"box-sizing",values:[{name:"border-box",description:"The specified width and height (and respective min/max properties) on this element determine the border box of the element."},{name:"content-box",description:"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element."}],syntax:"content-box | border-box",relevance:92,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/box-sizing"}],description:"Specifies the behavior of the 'width' and 'height' properties.",restrictions:["enum"]},{name:"break-after",values:[{name:"always",description:"Always force a page break before/after the generated box."},{name:"auto",description:"Neither force nor forbid a page/column break before/after the principal box."},{name:"avoid",description:"Avoid a break before/after the principal box."},{name:"avoid-column",description:"Avoid a column break before/after the principal box."},{name:"avoid-page",description:"Avoid a page break before/after the principal box."},{name:"column",description:"Always force a column break before/after the principal box."},{name:"left",description:"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page."},{name:"page",description:"Always force a page break before/after the principal box."},{name:"right",description:"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page."}],syntax:"auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region",relevance:50,description:"Describes the page/column/region break behavior after the generated box.",restrictions:["enum"]},{name:"break-before",values:[{name:"always",description:"Always force a page break before/after the generated box."},{name:"auto",description:"Neither force nor forbid a page/column break before/after the principal box."},{name:"avoid",description:"Avoid a break before/after the principal box."},{name:"avoid-column",description:"Avoid a column break before/after the principal box."},{name:"avoid-page",description:"Avoid a page break before/after the principal box."},{name:"column",description:"Always force a column break before/after the principal box."},{name:"left",description:"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page."},{name:"page",description:"Always force a page break before/after the principal box."},{name:"right",description:"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page."}],syntax:"auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region",relevance:50,description:"Describes the page/column/region break behavior before the generated box.",restrictions:["enum"]},{name:"break-inside",values:[{name:"auto",description:"Impose no additional breaking constraints within the box."},{name:"avoid",description:"Avoid breaks within the box."},{name:"avoid-column",description:"Avoid a column break within the box."},{name:"avoid-page",description:"Avoid a page break within the box."}],syntax:"auto | avoid | avoid-page | avoid-column | avoid-region",relevance:50,description:"Describes the page/column/region break behavior inside the principal box.",restrictions:["enum"]},{name:"caption-side",values:[{name:"bottom",description:"Positions the caption box below the table box."},{name:"top",description:"Positions the caption box above the table box."}],syntax:"top | bottom | block-start | block-end | inline-start | inline-end",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/caption-side"}],description:"Specifies the position of the caption box with respect to the table box.",restrictions:["enum"]},{name:"caret-color",browsers:["E79","FF53","S11.1","C57","O44"],values:[{name:"auto",description:"The user agent selects an appropriate color for the caret. This is generally currentcolor, but the user agent may choose a different color to ensure good visibility and contrast with the surrounding content, taking into account the value of currentcolor, the background, shadows, and other factors."}],syntax:"auto | <color>",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/caret-color"}],description:"Controls the color of the text insertion indicator.",restrictions:["color","enum"]},{name:"clear",values:[{name:"both",description:"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any right-floating and left-floating boxes that resulted from elements earlier in the source document."},{name:"left",description:"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any left-floating boxes that resulted from elements earlier in the source document."},{name:"none",description:"No constraint on the box's position with respect to floats."},{name:"right",description:"The clearance of the generated box is set to the amount necessary to place the top border edge below the bottom outer edge of any right-floating boxes that resulted from elements earlier in the source document."}],syntax:"none | left | right | both | inline-start | inline-end",relevance:85,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/clear"}],description:"Indicates which sides of an element's box(es) may not be adjacent to an earlier floating box. The 'clear' property does not consider floats inside the element itself or in other block formatting contexts.",restrictions:["enum"]},{name:"clip",values:[{name:"auto",description:"The element does not clip."},{name:"rect()",description:"Specifies offsets from the edges of the border box."}],syntax:"<shape> | auto",relevance:73,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/clip"}],description:"Deprecated. Use the 'clip-path' property when support allows. Defines the visible portion of an element\u2019s box.",restrictions:["enum"]},{name:"clip-path",values:[{name:"none",description:"No clipping path gets created."},{name:"url()",description:"References a <clipPath> element to create a clipping path."}],syntax:"<clip-source> | [ <basic-shape> || <geometry-box> ] | none",relevance:55,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/clip-path"}],description:"Specifies a clipping path where everything inside the path is visible and everything outside is clipped out.",restrictions:["url","shape","geometry-box","enum"]},{name:"clip-rule",browsers:["E","C5","FF3","IE10","O9","S6"],values:[{name:"evenodd",description:"Determines the \u2018insideness\u2019 of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses."},{name:"nonzero",description:"Determines the \u2018insideness\u2019 of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray."}],relevance:50,description:"Indicates the algorithm which is to be used to determine what parts of the canvas are included inside the shape.",restrictions:["enum"]},{name:"color",syntax:"<color>",relevance:95,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/color"}],description:"Sets the color of an element's text",restrictions:["color"]},{name:"color-interpolation-filters",browsers:["E","C5","FF3","IE10","O9","S6"],values:[{name:"auto",description:"Color operations are not required to occur in a particular color space."},{name:"linearRGB",description:"Color operations should occur in the linearized RGB color space."},{name:"sRGB",description:"Color operations should occur in the sRGB color space."}],relevance:50,description:"Specifies the color space for imaging operations performed via filter effects.",restrictions:["enum"]},{name:"column-count",values:[{name:"auto",description:"Determines the number of columns by the 'column-width' property and the element width."}],syntax:"<integer> | auto",relevance:52,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/column-count"}],description:"Describes the optimal number of columns into which the content of the element will be flowed.",restrictions:["integer","enum"]},{name:"column-fill",values:[{name:"auto",description:"Fills columns sequentially."},{name:"balance",description:"Balance content equally between columns, if possible."}],syntax:"auto | balance | balance-all",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/column-fill"}],description:"In continuous media, this property will only be consulted if the length of columns has been constrained. Otherwise, columns will automatically be balanced.",restrictions:["enum"]},{name:"column-gap",values:[{name:"normal",description:"User agent specific and typically equivalent to 1em."}],syntax:"normal | <length-percentage>",relevance:52,description:"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.",restrictions:["length","enum"]},{name:"column-rule",syntax:"<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/column-rule"}],description:"Shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.",restrictions:["length","line-width","line-style","color"]},{name:"column-rule-color",syntax:"<color>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/column-rule-color"}],description:"Sets the color of the column rule",restrictions:["color"]},{name:"column-rule-style",syntax:"<'border-style'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/column-rule-style"}],description:"Sets the style of the rule between columns of an element.",restrictions:["line-style"]},{name:"column-rule-width",syntax:"<'border-width'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/column-rule-width"}],description:"Sets the width of the rule between columns. Negative values are not allowed.",restrictions:["length","line-width"]},{name:"columns",values:[{name:"auto",description:"The width depends on the values of other properties."}],syntax:"<'column-width'> || <'column-count'>",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/columns"}],description:"A shorthand property which sets both 'column-width' and 'column-count'.",restrictions:["length","integer","enum"]},{name:"column-span",values:[{name:"all",description:"The element spans across all columns. Content in the normal flow that appears before the element is automatically balanced across all columns before the element appear."},{name:"none",description:"The element does not span multiple columns."}],syntax:"none | all",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/column-span"}],description:"Describes the page/column break behavior after the generated box.",restrictions:["enum"]},{name:"column-width",values:[{name:"auto",description:"The width depends on the values of other properties."}],syntax:"<length> | auto",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/column-width"}],description:"Describes the width of columns in multicol elements.",restrictions:["length","enum"]},{name:"contain",browsers:["E79","FF69","C52","O40"],values:[{name:"none",description:"Indicates that the property has no effect."},{name:"strict",description:"Turns on all forms of containment for the element."},{name:"content",description:"All containment rules except size are applied to the element."},{name:"size",description:"For properties that can have effects on more than just an element and its descendants, those effects don't escape the containing element."},{name:"layout",description:"Turns on layout containment for the element."},{name:"style",description:"Turns on style containment for the element."},{name:"paint",description:"Turns on paint containment for the element."}],syntax:"none | strict | content | [ size || layout || style || paint ]",relevance:55,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/contain"}],description:"Indicates that an element and its contents are, as much as possible, independent of the rest of the document tree.",restrictions:["enum"]},{name:"content",values:[{name:"attr()",description:"The attr(n) function returns as a string the value of attribute n for the subject of the selector."},{name:"counter(name)",description:"Counters are denoted by identifiers (see the 'counter-increment' and 'counter-reset' properties)."},{name:"icon",description:"The (pseudo-)element is replaced in its entirety by the resource referenced by its 'icon' property, and treated as a replaced element."},{name:"none",description:"On elements, this inhibits the children of the element from being rendered as children of this element, as if the element was empty. On pseudo-elements it causes the pseudo-element to have no content."},{name:"normal",description:"See http://www.w3.org/TR/css3-content/#content for computation rules."},{name:"url()"}],syntax:"normal | none | [ <content-replacement> | <content-list> ] [/ <string> ]?",relevance:89,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/content"}],description:"Determines which page-based occurrence of a given element is applied to a counter or string value.",restrictions:["string","url"]},{name:"counter-increment",values:[{name:"none",description:"This element does not alter the value of any counters."}],syntax:"[ <custom-ident> <integer>? ]+ | none",relevance:52,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/counter-increment"}],description:"Manipulate the value of existing counters.",restrictions:["identifier","integer"]},{name:"counter-reset",values:[{name:"none",description:"The counter is not modified."}],syntax:"[ <custom-ident> <integer>? ]+ | none",relevance:52,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/counter-reset"}],description:"Property accepts one or more names of counters (identifiers), each one optionally followed by an integer. The integer gives the value that the counter is set to on each occurrence of the element.",restrictions:["identifier","integer"]},{name:"cursor",values:[{name:"alias",description:"Indicates an alias of/shortcut to something is to be created. Often rendered as an arrow with a small curved arrow next to it."},{name:"all-scroll",description:"Indicates that the something can be scrolled in any direction. Often rendered as arrows pointing up, down, left, and right with a dot in the middle."},{name:"auto",description:"The UA determines the cursor to display based on the current context."},{name:"cell",description:"Indicates that a cell or set of cells may be selected. Often rendered as a thick plus-sign with a dot in the middle."},{name:"col-resize",description:"Indicates that the item/column can be resized horizontally. Often rendered as arrows pointing left and right with a vertical bar separating them."},{name:"context-menu",description:"A context menu is available for the object under the cursor. Often rendered as an arrow with a small menu-like graphic next to it."},{name:"copy",description:"Indicates something is to be copied. Often rendered as an arrow with a small plus sign next to it."},{name:"crosshair",description:"A simple crosshair (e.g., short line segments resembling a '+' sign). Often used to indicate a two dimensional bitmap selection mode."},{name:"default",description:"The platform-dependent default cursor. Often rendered as an arrow."},{name:"e-resize",description:"Indicates that east edge is to be moved."},{name:"ew-resize",description:"Indicates a bidirectional east-west resize cursor."},{name:"grab",description:"Indicates that something can be grabbed."},{name:"grabbing",description:"Indicates that something is being grabbed."},{name:"help",description:"Help is available for the object under the cursor. Often rendered as a question mark or a balloon."},{name:"move",description:"Indicates something is to be moved."},{name:"-moz-grab",description:"Indicates that something can be grabbed."},{name:"-moz-grabbing",description:"Indicates that something is being grabbed."},{name:"-moz-zoom-in",description:"Indicates that something can be zoomed (magnified) in."},{name:"-moz-zoom-out",description:"Indicates that something can be zoomed (magnified) out."},{name:"ne-resize",description:"Indicates that movement starts from north-east corner."},{name:"nesw-resize",description:"Indicates a bidirectional north-east/south-west cursor."},{name:"no-drop",description:"Indicates that the dragged item cannot be dropped at the current cursor location. Often rendered as a hand or pointer with a small circle with a line through it."},{name:"none",description:"No cursor is rendered for the element."},{name:"not-allowed",description:"Indicates that the requested action will not be carried out. Often rendered as a circle with a line through it."},{name:"n-resize",description:"Indicates that north edge is to be moved."},{name:"ns-resize",description:"Indicates a bidirectional north-south cursor."},{name:"nw-resize",description:"Indicates that movement starts from north-west corner."},{name:"nwse-resize",description:"Indicates a bidirectional north-west/south-east cursor."},{name:"pointer",description:"The cursor is a pointer that indicates a link."},{name:"progress",description:"A progress indicator. The program is performing some processing, but is different from 'wait' in that the user may still interact with the program. Often rendered as a spinning beach ball, or an arrow with a watch or hourglass."},{name:"row-resize",description:"Indicates that the item/row can be resized vertically. Often rendered as arrows pointing up and down with a horizontal bar separating them."},{name:"se-resize",description:"Indicates that movement starts from south-east corner."},{name:"s-resize",description:"Indicates that south edge is to be moved."},{name:"sw-resize",description:"Indicates that movement starts from south-west corner."},{name:"text",description:"Indicates text that may be selected. Often rendered as a vertical I-beam."},{name:"vertical-text",description:"Indicates vertical-text that may be selected. Often rendered as a horizontal I-beam."},{name:"wait",description:"Indicates that the program is busy and the user should wait. Often rendered as a watch or hourglass."},{name:"-webkit-grab",description:"Indicates that something can be grabbed."},{name:"-webkit-grabbing",description:"Indicates that something is being grabbed."},{name:"-webkit-zoom-in",description:"Indicates that something can be zoomed (magnified) in."},{name:"-webkit-zoom-out",description:"Indicates that something can be zoomed (magnified) out."},{name:"w-resize",description:"Indicates that west edge is to be moved."},{name:"zoom-in",description:"Indicates that something can be zoomed (magnified) in."},{name:"zoom-out",description:"Indicates that something can be zoomed (magnified) out."}],syntax:"[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing ] ]",relevance:92,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/cursor"}],description:"Allows control over cursor appearance in an element",restrictions:["url","number","enum"]},{name:"direction",values:[{name:"ltr",description:"Left-to-right direction."},{name:"rtl",description:"Right-to-left direction."}],syntax:"ltr | rtl",relevance:69,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/direction"}],description:"Specifies the inline base direction or directionality of any bidi paragraph, embedding, isolate, or override established by the box. Note: for HTML content use the 'dir' attribute and 'bdo' element rather than this property.",restrictions:["enum"]},{name:"display",values:[{name:"block",description:"The element generates a block-level box"},{name:"contents",description:"The element itself does not generate any boxes, but its children and pseudo-elements still generate boxes as normal."},{name:"flex",description:"The element generates a principal flex container box and establishes a flex formatting context."},{name:"flexbox",description:"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'."},{name:"flow-root",description:"The element generates a block container box, and lays out its contents using flow layout."},{name:"grid",description:"The element generates a principal grid container box, and establishes a grid formatting context."},{name:"inline",description:"The element generates an inline-level box."},{name:"inline-block",description:"A block box, which itself is flowed as a single inline box, similar to a replaced element. The inside of an inline-block is formatted as a block box, and the box itself is formatted as an inline box."},{name:"inline-flex",description:"Inline-level flex container."},{name:"inline-flexbox",description:"Inline-level flex container. Standardized as 'inline-flex'"},{name:"inline-table",description:"Inline-level table wrapper box containing table box."},{name:"list-item",description:"One or more block boxes and one marker box."},{name:"-moz-box",description:"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'."},{name:"-moz-deck"},{name:"-moz-grid"},{name:"-moz-grid-group"},{name:"-moz-grid-line"},{name:"-moz-groupbox"},{name:"-moz-inline-box",description:"Inline-level flex container. Standardized as 'inline-flex'"},{name:"-moz-inline-grid"},{name:"-moz-inline-stack"},{name:"-moz-marker"},{name:"-moz-popup"},{name:"-moz-stack"},{name:"-ms-flexbox",description:"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'."},{name:"-ms-grid",description:"The element generates a principal grid container box, and establishes a grid formatting context."},{name:"-ms-inline-flexbox",description:"Inline-level flex container. Standardized as 'inline-flex'"},{name:"-ms-inline-grid",description:"Inline-level grid container."},{name:"none",description:"The element and its descendants generates no boxes."},{name:"ruby",description:"The element generates a principal ruby container box, and establishes a ruby formatting context."},{name:"ruby-base"},{name:"ruby-base-container"},{name:"ruby-text"},{name:"ruby-text-container"},{name:"run-in",description:"The element generates a run-in box. Run-in elements act like inlines or blocks, depending on the surrounding elements."},{name:"table",description:"The element generates a principal table wrapper box containing an additionally-generated table box, and establishes a table formatting context."},{name:"table-caption"},{name:"table-cell"},{name:"table-column"},{name:"table-column-group"},{name:"table-footer-group"},{name:"table-header-group"},{name:"table-row"},{name:"table-row-group"},{name:"-webkit-box",description:"The element lays out its contents using flow layout (block-and-inline layout). Standardized as 'flex'."},{name:"-webkit-flex",description:"The element lays out its contents using flow layout (block-and-inline layout)."},{name:"-webkit-inline-box",description:"Inline-level flex container. Standardized as 'inline-flex'"},{name:"-webkit-inline-flex",description:"Inline-level flex container."}],syntax:"[ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy>",relevance:96,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/display"}],description:"In combination with 'float' and 'position', determines the type of box or boxes that are generated for an element.",restrictions:["enum"]},{name:"empty-cells",values:[{name:"hide",description:"No borders or backgrounds are drawn around/behind empty cells."},{name:"-moz-show-background"},{name:"show",description:"Borders and backgrounds are drawn around/behind empty cells (like normal cells)."}],syntax:"show | hide",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/empty-cells"}],description:"In the separated borders model, this property controls the rendering of borders and backgrounds around cells that have no visible content.",restrictions:["enum"]},{name:"enable-background",values:[{name:"accumulate",description:"If the ancestor container element has a property of new, then all graphics elements within the current container are rendered both on the parent's background image and onto the target."},{name:"new",description:"Create a new background image canvas. All children of the current container element can access the background, and they will be rendered onto both the parent's background image canvas in addition to the target device."}],relevance:50,description:"Deprecated. Use 'isolation' property instead when support allows. Specifies how the accumulation of the background image is managed.",restrictions:["integer","length","percentage","enum"]},{name:"fallback",browsers:["FF33"],syntax:"<counter-style-name>",relevance:50,description:"@counter-style descriptor. Specifies a fallback counter style to be used when the current counter style can\u2019t create a representation for a given counter value.",restrictions:["identifier"]},{name:"fill",values:[{name:"url()",description:"A URL reference to a paint server element, which is an element that defines a paint server: \u2018hatch\u2019, \u2018linearGradient\u2019, \u2018mesh\u2019, \u2018pattern\u2019, \u2018radialGradient\u2019 and \u2018solidcolor\u2019."},{name:"none",description:"No paint is applied in this layer."}],relevance:75,description:"Paints the interior of the given graphical element.",restrictions:["color","enum","url"]},{name:"fill-opacity",relevance:52,description:"Specifies the opacity of the painting operation used to paint the interior the current object.",restrictions:["number(0-1)"]},{name:"fill-rule",values:[{name:"evenodd",description:"Determines the \u2018insideness\u2019 of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses."},{name:"nonzero",description:"Determines the \u2018insideness\u2019 of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray."}],relevance:50,description:"Indicates the algorithm (or winding rule) which is to be used to determine what parts of the canvas are included inside the shape.",restrictions:["enum"]},{name:"filter",browsers:["E12","FF35","S9.1","C53","O40"],values:[{name:"none",description:"No filter effects are applied."},{name:"blur()",description:"Applies a Gaussian blur to the input image."},{name:"brightness()",description:"Applies a linear multiplier to input image, making it appear more or less bright."},{name:"contrast()",description:"Adjusts the contrast of the input."},{name:"drop-shadow()",description:"Applies a drop shadow effect to the input image."},{name:"grayscale()",description:"Converts the input image to grayscale."},{name:"hue-rotate()",description:"Applies a hue rotation on the input image. "},{name:"invert()",description:"Inverts the samples in the input image."},{name:"opacity()",description:"Applies transparency to the samples in the input image."},{name:"saturate()",description:"Saturates the input image."},{name:"sepia()",description:"Converts the input image to sepia."},{name:"url()",browsers:["E12","FF35","S9.1","C53","O40"],description:"A filter reference to a <filter> element."}],syntax:"none | <filter-function-list>",relevance:65,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/filter"}],description:"Processes an element\u2019s rendering before it is displayed in the document, by applying one or more filter effects.",restrictions:["enum","url"]},{name:"flex",values:[{name:"auto",description:"Retrieves the value of the main size property as the used 'flex-basis'."},{name:"content",description:"Indicates automatic sizing, based on the flex item\u2019s content."},{name:"none",description:"Expands to '0 0 auto'."}],syntax:"none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]",relevance:78,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/flex"}],description:"Specifies the components of a flexible length: the flex grow factor and flex shrink factor, and the flex basis.",restrictions:["length","number","percentage"]},{name:"flex-basis",values:[{name:"auto",description:"Retrieves the value of the main size property as the used 'flex-basis'."},{name:"content",description:"Indicates automatic sizing, based on the flex item\u2019s content."}],syntax:"content | <'width'>",relevance:63,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/flex-basis"}],description:"Sets the flex basis.",restrictions:["length","number","percentage"]},{name:"flex-direction",values:[{name:"column",description:"The flex container\u2019s main axis has the same orientation as the block axis of the current writing mode."},{name:"column-reverse",description:"Same as 'column', except the main-start and main-end directions are swapped."},{name:"row",description:"The flex container\u2019s main axis has the same orientation as the inline axis of the current writing mode."},{name:"row-reverse",description:"Same as 'row', except the main-start and main-end directions are swapped."}],syntax:"row | row-reverse | column | column-reverse",relevance:80,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/flex-direction"}],description:"Specifies how flex items are placed in the flex container, by setting the direction of the flex container\u2019s main axis.",restrictions:["enum"]},{name:"flex-flow",values:[{name:"column",description:"The flex container\u2019s main axis has the same orientation as the block axis of the current writing mode."},{name:"column-reverse",description:"Same as 'column', except the main-start and main-end directions are swapped."},{name:"nowrap",description:"The flex container is single-line."},{name:"row",description:"The flex container\u2019s main axis has the same orientation as the inline axis of the current writing mode."},{name:"row-reverse",description:"Same as 'row', except the main-start and main-end directions are swapped."},{name:"wrap",description:"The flexbox is multi-line."},{name:"wrap-reverse",description:"Same as 'wrap', except the cross-start and cross-end directions are swapped."}],syntax:"<'flex-direction'> || <'flex-wrap'>",relevance:59,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/flex-flow"}],description:"Specifies how flexbox items are placed in the flexbox.",restrictions:["enum"]},{name:"flex-grow",syntax:"<number>",relevance:73,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/flex-grow"}],description:"Sets the flex grow factor. Negative numbers are invalid.",restrictions:["number"]},{name:"flex-shrink",syntax:"<number>",relevance:71,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/flex-shrink"}],description:"Sets the flex shrink factor. Negative numbers are invalid.",restrictions:["number"]},{name:"flex-wrap",values:[{name:"nowrap",description:"The flex container is single-line."},{name:"wrap",description:"The flexbox is multi-line."},{name:"wrap-reverse",description:"Same as 'wrap', except the cross-start and cross-end directions are swapped."}],syntax:"nowrap | wrap | wrap-reverse",relevance:76,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/flex-wrap"}],description:"Controls whether the flex container is single-line or multi-line, and the direction of the cross-axis, which determines the direction new lines are stacked in.",restrictions:["enum"]},{name:"float",values:[{name:"inline-end",description:"A keyword indicating that the element must float on the end side of its containing block. That is the right side with ltr scripts, and the left side with rtl scripts."},{name:"inline-start",description:"A keyword indicating that the element must float on the start side of its containing block. That is the left side with ltr scripts, and the right side with rtl scripts."},{name:"left",description:"The element generates a block box that is floated to the left. Content flows on the right side of the box, starting at the top (subject to the 'clear' property)."},{name:"none",description:"The box is not floated."},{name:"right",description:"Similar to 'left', except the box is floated to the right, and content flows on the left side of the box, starting at the top."}],syntax:"left | right | none | inline-start | inline-end",relevance:92,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/float"}],description:"Specifies how a box should be floated. It may be set for any element, but only applies to elements that generate boxes that are not absolutely positioned.",restrictions:["enum"]},{name:"flood-color",browsers:["E","C5","FF3","IE10","O9","S6"],relevance:50,description:"Indicates what color to use to flood the current filter primitive subregion.",restrictions:["color"]},{name:"flood-opacity",browsers:["E","C5","FF3","IE10","O9","S6"],relevance:50,description:"Indicates what opacity to use to flood the current filter primitive subregion.",restrictions:["number(0-1)","percentage"]},{name:"font",values:[{name:"100",description:"Thin"},{name:"200",description:"Extra Light (Ultra Light)"},{name:"300",description:"Light"},{name:"400",description:"Normal"},{name:"500",description:"Medium"},{name:"600",description:"Semi Bold (Demi Bold)"},{name:"700",description:"Bold"},{name:"800",description:"Extra Bold (Ultra Bold)"},{name:"900",description:"Black (Heavy)"},{name:"bold",description:"Same as 700"},{name:"bolder",description:"Specifies the weight of the face bolder than the inherited value."},{name:"caption",description:"The font used for captioned controls (e.g., buttons, drop-downs, etc.)."},{name:"icon",description:"The font used to label icons."},{name:"italic",description:"Selects a font that is labeled 'italic', or, if that is not available, one labeled 'oblique'."},{name:"large"},{name:"larger"},{name:"lighter",description:"Specifies the weight of the face lighter than the inherited value."},{name:"medium"},{name:"menu",description:"The font used in menus (e.g., dropdown menus and menu lists)."},{name:"message-box",description:"The font used in dialog boxes."},{name:"normal",description:"Specifies a face that is not labeled as a small-caps font."},{name:"oblique",description:"Selects a font that is labeled 'oblique'."},{name:"small"},{name:"small-caps",description:"Specifies a font that is labeled as a small-caps font. If a genuine small-caps font is not available, user agents should simulate a small-caps font."},{name:"small-caption",description:"The font used for labeling small controls."},{name:"smaller"},{name:"status-bar",description:"The font used in window status bars."},{name:"x-large"},{name:"x-small"},{name:"xx-large"},{name:"xx-small"}],syntax:"[ [ <'font-style'> || <font-variant-css21> || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar",relevance:82,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font"}],description:"Shorthand property for setting 'font-style', 'font-variant', 'font-weight', 'font-size', 'line-height', and 'font-family', at the same place in the style sheet. The syntax of this property is based on a traditional typographical shorthand notation to set multiple properties related to fonts.",restrictions:["font"]},{name:"font-family",values:[{name:"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif"},{name:"Arial, Helvetica, sans-serif"},{name:"Cambria, Cochin, Georgia, Times, 'Times New Roman', serif"},{name:"'Courier New', Courier, monospace"},{name:"cursive"},{name:"fantasy"},{name:"'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif"},{name:"Georgia, 'Times New Roman', Times, serif"},{name:"'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif"},{name:"Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif"},{name:"'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif"},{name:"monospace"},{name:"sans-serif"},{name:"'Segoe UI', Tahoma, Geneva, Verdana, sans-serif"},{name:"serif"},{name:"'Times New Roman', Times, serif"},{name:"'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif"},{name:"Verdana, Geneva, Tahoma, sans-serif"}],syntax:"<family-name>",relevance:93,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-family"}],description:"Specifies a prioritized list of font family names or generic family names. A user agent iterates through the list of family names until it matches an available font that contains a glyph for the character to be rendered.",restrictions:["font"]},{name:"font-feature-settings",values:[{name:'"aalt"',description:"Access All Alternates."},{name:'"abvf"',description:"Above-base Forms. Required in Khmer script."},{name:'"abvm"',description:"Above-base Mark Positioning. Required in Indic scripts."},{name:'"abvs"',description:"Above-base Substitutions. Required in Indic scripts."},{name:'"afrc"',description:"Alternative Fractions."},{name:'"akhn"',description:"Akhand. Required in most Indic scripts."},{name:'"blwf"',description:"Below-base Form. Required in a number of Indic scripts."},{name:'"blwm"',description:"Below-base Mark Positioning. Required in Indic scripts."},{name:'"blws"',description:"Below-base Substitutions. Required in Indic scripts."},{name:'"calt"',description:"Contextual Alternates."},{name:'"case"',description:"Case-Sensitive Forms. Applies only to European scripts; particularly prominent in Spanish-language setting."},{name:'"ccmp"',description:"Glyph Composition/Decomposition."},{name:'"cfar"',description:"Conjunct Form After Ro. Required in Khmer scripts."},{name:'"cjct"',description:"Conjunct Forms. Required in Indic scripts that show similarity to Devanagari."},{name:'"clig"',description:"Contextual Ligatures."},{name:'"cpct"',description:"Centered CJK Punctuation. Used primarily in Chinese fonts."},{name:'"cpsp"',description:"Capital Spacing. Should not be used in connecting scripts (e.g. most Arabic)."},{name:'"cswh"',description:"Contextual Swash."},{name:'"curs"',description:"Cursive Positioning. Can be used in any cursive script."},{name:'"c2pc"',description:"Petite Capitals From Capitals. Applies only to bicameral scripts."},{name:'"c2sc"',description:"Small Capitals From Capitals. Applies only to bicameral scripts."},{name:'"dist"',description:"Distances. Required in Indic scripts."},{name:'"dlig"',description:"Discretionary ligatures."},{name:'"dnom"',description:"Denominators."},{name:'"dtls"',description:"Dotless Forms. Applied to math formula layout."},{name:'"expt"',description:"Expert Forms. Applies only to Japanese."},{name:'"falt"',description:"Final Glyph on Line Alternates. Can be used in any cursive script."},{name:'"fin2"',description:"Terminal Form #2. Used only with the Syriac script."},{name:'"fin3"',description:"Terminal Form #3. Used only with the Syriac script."},{name:'"fina"',description:"Terminal Forms. Can be used in any alphabetic script."},{name:'"flac"',description:"Flattened ascent forms. Applied to math formula layout."},{name:'"frac"',description:"Fractions."},{name:'"fwid"',description:"Full Widths. Applies to any script which can use monospaced forms."},{name:'"half"',description:"Half Forms. Required in Indic scripts that show similarity to Devanagari."},{name:'"haln"',description:"Halant Forms. Required in Indic scripts."},{name:'"halt"',description:"Alternate Half Widths. Used only in CJKV fonts."},{name:'"hist"',description:"Historical Forms."},{name:'"hkna"',description:"Horizontal Kana Alternates. Applies only to fonts that support kana (hiragana and katakana)."},{name:'"hlig"',description:"Historical Ligatures."},{name:'"hngl"',description:"Hangul. Korean only."},{name:'"hojo"',description:"Hojo Kanji Forms (JIS X 0212-1990 Kanji Forms). Used only with Kanji script."},{name:'"hwid"',description:"Half Widths. Generally used only in CJKV fonts."},{name:'"init"',description:"Initial Forms. Can be used in any alphabetic script."},{name:'"isol"',description:"Isolated Forms. Can be used in any cursive script."},{name:'"ital"',description:"Italics. Applies mostly to Latin; note that many non-Latin fonts contain Latin as well."},{name:'"jalt"',description:"Justification Alternates. Can be used in any cursive script."},{name:'"jp78"',description:"JIS78 Forms. Applies only to Japanese."},{name:'"jp83"',description:"JIS83 Forms. Applies only to Japanese."},{name:'"jp90"',description:"JIS90 Forms. Applies only to Japanese."},{name:'"jp04"',description:"JIS2004 Forms. Applies only to Japanese."},{name:'"kern"',description:"Kerning."},{name:'"lfbd"',description:"Left Bounds."},{name:'"liga"',description:"Standard Ligatures."},{name:'"ljmo"',description:"Leading Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported."},{name:'"lnum"',description:"Lining Figures."},{name:'"locl"',description:"Localized Forms."},{name:'"ltra"',description:"Left-to-right glyph alternates."},{name:'"ltrm"',description:"Left-to-right mirrored forms."},{name:'"mark"',description:"Mark Positioning."},{name:'"med2"',description:"Medial Form #2. Used only with the Syriac script."},{name:'"medi"',description:"Medial Forms."},{name:'"mgrk"',description:"Mathematical Greek."},{name:'"mkmk"',description:"Mark to Mark Positioning."},{name:'"nalt"',description:"Alternate Annotation Forms."},{name:'"nlck"',description:"NLC Kanji Forms. Used only with Kanji script."},{name:'"nukt"',description:"Nukta Forms. Required in Indic scripts.."},{name:'"numr"',description:"Numerators."},{name:'"onum"',description:"Oldstyle Figures."},{name:'"opbd"',description:"Optical Bounds."},{name:'"ordn"',description:"Ordinals. Applies mostly to Latin script."},{name:'"ornm"',description:"Ornaments."},{name:'"palt"',description:"Proportional Alternate Widths. Used mostly in CJKV fonts."},{name:'"pcap"',description:"Petite Capitals."},{name:'"pkna"',description:"Proportional Kana. Generally used only in Japanese fonts."},{name:'"pnum"',description:"Proportional Figures."},{name:'"pref"',description:"Pre-base Forms. Required in Khmer and Myanmar (Burmese) scripts and southern Indic scripts that may display a pre-base form of Ra."},{name:'"pres"',description:"Pre-base Substitutions. Required in Indic scripts."},{name:'"pstf"',description:"Post-base Forms. Required in scripts of south and southeast Asia that have post-base forms for consonants eg: Gurmukhi, Malayalam, Khmer."},{name:'"psts"',description:"Post-base Substitutions."},{name:'"pwid"',description:"Proportional Widths."},{name:'"qwid"',description:"Quarter Widths. Generally used only in CJKV fonts."},{name:'"rand"',description:"Randomize."},{name:'"rclt"',description:"Required Contextual Alternates. May apply to any script, but is especially important for many styles of Arabic."},{name:'"rlig"',description:"Required Ligatures. Applies to Arabic and Syriac. May apply to some other scripts."},{name:'"rkrf"',description:"Rakar Forms. Required in Devanagari and Gujarati scripts."},{name:'"rphf"',description:"Reph Form. Required in Indic scripts. E.g. Devanagari, Kannada."},{name:'"rtbd"',description:"Right Bounds."},{name:'"rtla"',description:"Right-to-left alternates."},{name:'"rtlm"',description:"Right-to-left mirrored forms."},{name:'"ruby"',description:"Ruby Notation Forms. Applies only to Japanese."},{name:'"salt"',description:"Stylistic Alternates."},{name:'"sinf"',description:"Scientific Inferiors."},{name:'"size"',description:"Optical size."},{name:'"smcp"',description:"Small Capitals. Applies only to bicameral scripts."},{name:'"smpl"',description:"Simplified Forms. Applies only to Chinese and Japanese."},{name:'"ssty"',description:"Math script style alternates."},{name:'"stch"',description:"Stretching Glyph Decomposition."},{name:'"subs"',description:"Subscript."},{name:'"sups"',description:"Superscript."},{name:'"swsh"',description:"Swash. Does not apply to ideographic scripts."},{name:'"titl"',description:"Titling."},{name:'"tjmo"',description:"Trailing Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported."},{name:'"tnam"',description:"Traditional Name Forms. Applies only to Japanese."},{name:'"tnum"',description:"Tabular Figures."},{name:'"trad"',description:"Traditional Forms. Applies only to Chinese and Japanese."},{name:'"twid"',description:"Third Widths. Generally used only in CJKV fonts."},{name:'"unic"',description:"Unicase."},{name:'"valt"',description:"Alternate Vertical Metrics. Applies only to scripts with vertical writing modes."},{name:'"vatu"',description:"Vattu Variants. Used for Indic scripts. E.g. Devanagari."},{name:'"vert"',description:"Vertical Alternates. Applies only to scripts with vertical writing modes."},{name:'"vhal"',description:"Alternate Vertical Half Metrics. Used only in CJKV fonts."},{name:'"vjmo"',description:"Vowel Jamo Forms. Required for Hangul script when Ancient Hangul writing system is supported."},{name:'"vkna"',description:"Vertical Kana Alternates. Applies only to fonts that support kana (hiragana and katakana)."},{name:'"vkrn"',description:"Vertical Kerning."},{name:'"vpal"',description:"Proportional Alternate Vertical Metrics. Used mostly in CJKV fonts."},{name:'"vrt2"',description:"Vertical Alternates and Rotation. Applies only to scripts with vertical writing modes."},{name:'"zero"',description:"Slashed Zero."},{name:"normal",description:"No change in glyph substitution or positioning occurs."},{name:"off",description:"Disable feature."},{name:"on",description:"Enable feature."}],syntax:"normal | <feature-tag-value>#",relevance:54,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-feature-settings"}],description:"Provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.",restrictions:["string","integer"]},{name:"font-kerning",browsers:["E79","FF32","S9","C33","O20"],values:[{name:"auto",description:"Specifies that kerning is applied at the discretion of the user agent."},{name:"none",description:"Specifies that kerning is not applied."},{name:"normal",description:"Specifies that kerning is applied."}],syntax:"auto | normal | none",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-kerning"}],description:"Kerning is the contextual adjustment of inter-glyph spacing. This property controls metric kerning, kerning that utilizes adjustment data contained in the font.",restrictions:["enum"]},{name:"font-language-override",browsers:["FF34"],values:[{name:"normal",description:"Implies that when rendering with OpenType fonts the language of the document is used to infer the OpenType language system, used to select language specific features when rendering."}],syntax:"normal | <string>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-language-override"}],description:"The value of 'normal' implies that when rendering with OpenType fonts the language of the document is used to infer the OpenType language system, used to select language specific features when rendering.",restrictions:["string"]},{name:"font-size",values:[{name:"large"},{name:"larger"},{name:"medium"},{name:"small"},{name:"smaller"},{name:"x-large"},{name:"x-small"},{name:"xx-large"},{name:"xx-small"}],syntax:"<absolute-size> | <relative-size> | <length-percentage>",relevance:94,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-size"}],description:"Indicates the desired height of glyphs from the font. For scalable fonts, the font-size is a scale factor applied to the EM unit of the font. (Note that certain glyphs may bleed outside their EM box.) For non-scalable fonts, the font-size is converted into absolute units and matched against the declared font-size of the font, using the same absolute coordinate space for both of the matched values.",restrictions:["length","percentage"]},{name:"font-size-adjust",browsers:["E79","FF40","C43","O30"],values:[{name:"none",description:"Do not preserve the font\u2019s x-height."}],syntax:"none | <number>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-size-adjust"}],description:"Preserves the readability of text when font fallback occurs by adjusting the font-size so that the x-height is the same regardless of the font used.",restrictions:["number"]},{name:"font-stretch",values:[{name:"condensed"},{name:"expanded"},{name:"extra-condensed"},{name:"extra-expanded"},{name:"narrower",description:"Indicates a narrower value relative to the width of the parent element."},{name:"normal"},{name:"semi-condensed"},{name:"semi-expanded"},{name:"ultra-condensed"},{name:"ultra-expanded"},{name:"wider",description:"Indicates a wider value relative to the width of the parent element."}],syntax:"<font-stretch-absolute>{1,2}",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-stretch"}],description:"Selects a normal, condensed, or expanded face from a font family.",restrictions:["enum"]},{name:"font-style",values:[{name:"italic",description:"Selects a font that is labeled as an 'italic' face, or an 'oblique' face if one is not"},{name:"normal",description:"Selects a face that is classified as 'normal'."},{name:"oblique",description:"Selects a font that is labeled as an 'oblique' face, or an 'italic' face if one is not."}],syntax:"normal | italic | oblique <angle>{0,2}",relevance:83,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-style"}],description:"Allows italic or oblique faces to be selected. Italic forms are generally cursive in nature while oblique faces are typically sloped versions of the regular face.",restrictions:["enum"]},{name:"font-synthesis",browsers:["FF34","S9"],values:[{name:"none",description:"Disallow all synthetic faces."},{name:"style",description:"Allow synthetic italic faces."},{name:"weight",description:"Allow synthetic bold faces."}],syntax:"none | [ weight || style ]",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-synthesis"}],description:"Controls whether user agents are allowed to synthesize bold or oblique font faces when a font family lacks bold or italic faces.",restrictions:["enum"]},{name:"font-variant",values:[{name:"normal",description:"Specifies a face that is not labeled as a small-caps font."},{name:"small-caps",description:"Specifies a font that is labeled as a small-caps font. If a genuine small-caps font is not available, user agents should simulate a small-caps font."}],syntax:"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> || stylistic(<feature-value-name>) || historical-forms || styleset(<feature-value-name>#) || character-variant(<feature-value-name>#) || swash(<feature-value-name>) || ornaments(<feature-value-name>) || annotation(<feature-value-name>) || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero || <east-asian-variant-values> || <east-asian-width-values> || ruby ]",relevance:64,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-variant"}],description:"Specifies variant representations of the font",restrictions:["enum"]},{name:"font-variant-alternates",browsers:["FF34"],values:[{name:"annotation()",description:"Enables display of alternate annotation forms."},{name:"character-variant()",description:"Enables display of specific character variants."},{name:"historical-forms",description:"Enables display of historical forms."},{name:"normal",description:"None of the features are enabled."},{name:"ornaments()",description:"Enables replacement of default glyphs with ornaments, if provided in the font."},{name:"styleset()",description:"Enables display with stylistic sets."},{name:"stylistic()",description:"Enables display of stylistic alternates."},{name:"swash()",description:"Enables display of swash glyphs."}],syntax:"normal | [ stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) ]",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-variant-alternates"}],description:"For any given character, fonts can provide a variety of alternate glyphs in addition to the default glyph for that character. This property provides control over the selection of these alternate glyphs.",restrictions:["enum"]},{name:"font-variant-caps",browsers:["E79","FF34","C52","O39"],values:[{name:"all-petite-caps",description:"Enables display of petite capitals for both upper and lowercase letters."},{name:"all-small-caps",description:"Enables display of small capitals for both upper and lowercase letters."},{name:"normal",description:"None of the features are enabled."},{name:"petite-caps",description:"Enables display of petite capitals."},{name:"small-caps",description:"Enables display of small capitals. Small-caps glyphs typically use the form of uppercase letters but are reduced to the size of lowercase letters."},{name:"titling-caps",description:"Enables display of titling capitals."},{name:"unicase",description:"Enables display of mixture of small capitals for uppercase letters with normal lowercase letters."}],syntax:"normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-variant-caps"}],description:"Specifies control over capitalized forms.",restrictions:["enum"]},{name:"font-variant-east-asian",browsers:["E79","FF34","C63","O50"],values:[{name:"full-width",description:"Enables rendering of full-width variants."},{name:"jis04",description:"Enables rendering of JIS04 forms."},{name:"jis78",description:"Enables rendering of JIS78 forms."},{name:"jis83",description:"Enables rendering of JIS83 forms."},{name:"jis90",description:"Enables rendering of JIS90 forms."},{name:"normal",description:"None of the features are enabled."},{name:"proportional-width",description:"Enables rendering of proportionally-spaced variants."},{name:"ruby",description:"Enables display of ruby variant glyphs."},{name:"simplified",description:"Enables rendering of simplified forms."},{name:"traditional",description:"Enables rendering of traditional forms."}],syntax:"normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-variant-east-asian"}],description:"Allows control of glyph substitute and positioning in East Asian text.",restrictions:["enum"]},{name:"font-variant-ligatures",browsers:["E79","FF34","S9.1","C34","O21"],values:[{name:"additional-ligatures",description:"Enables display of additional ligatures."},{name:"common-ligatures",description:"Enables display of common ligatures."},{name:"contextual",browsers:["E79","FF34","S9.1","C34","O21"],description:"Enables display of contextual alternates."},{name:"discretionary-ligatures",description:"Enables display of discretionary ligatures."},{name:"historical-ligatures",description:"Enables display of historical ligatures."},{name:"no-additional-ligatures",description:"Disables display of additional ligatures."},{name:"no-common-ligatures",description:"Disables display of common ligatures."},{name:"no-contextual",browsers:["E79","FF34","S9.1","C34","O21"],description:"Disables display of contextual alternates."},{name:"no-discretionary-ligatures",description:"Disables display of discretionary ligatures."},{name:"no-historical-ligatures",description:"Disables display of historical ligatures."},{name:"none",browsers:["E79","FF34","S9.1","C34","O21"],description:"Disables all ligatures."},{name:"normal",description:"Implies that the defaults set by the font are used."}],syntax:"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-variant-ligatures"}],description:"Specifies control over which ligatures are enabled or disabled. A value of \u2018normal\u2019 implies that the defaults set by the font are used.",restrictions:["enum"]},{name:"font-variant-numeric",browsers:["E79","FF34","S9.1","C52","O39"],values:[{name:"diagonal-fractions",description:"Enables display of lining diagonal fractions."},{name:"lining-nums",description:"Enables display of lining numerals."},{name:"normal",description:"None of the features are enabled."},{name:"oldstyle-nums",description:"Enables display of old-style numerals."},{name:"ordinal",description:"Enables display of letter forms used with ordinal numbers."},{name:"proportional-nums",description:"Enables display of proportional numerals."},{name:"slashed-zero",description:"Enables display of slashed zeros."},{name:"stacked-fractions",description:"Enables display of lining stacked fractions."},{name:"tabular-nums",description:"Enables display of tabular numerals."}],syntax:"normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-variant-numeric"}],description:"Specifies control over numerical forms.",restrictions:["enum"]},{name:"font-variant-position",browsers:["FF34"],values:[{name:"normal",description:"None of the features are enabled."},{name:"sub",description:"Enables display of subscript variants (OpenType feature: subs)."},{name:"super",description:"Enables display of superscript variants (OpenType feature: sups)."}],syntax:"normal | sub | super",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-variant-position"}],description:"Specifies the vertical position",restrictions:["enum"]},{name:"font-weight",values:[{name:"100",description:"Thin"},{name:"200",description:"Extra Light (Ultra Light)"},{name:"300",description:"Light"},{name:"400",description:"Normal"},{name:"500",description:"Medium"},{name:"600",description:"Semi Bold (Demi Bold)"},{name:"700",description:"Bold"},{name:"800",description:"Extra Bold (Ultra Bold)"},{name:"900",description:"Black (Heavy)"},{name:"bold",description:"Same as 700"},{name:"bolder",description:"Specifies the weight of the face bolder than the inherited value."},{name:"lighter",description:"Specifies the weight of the face lighter than the inherited value."},{name:"normal",description:"Same as 400"}],syntax:"<font-weight-absolute>{1,2}",relevance:93,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-weight"}],description:"Specifies weight of glyphs in the font, their degree of blackness or stroke thickness.",restrictions:["enum"]},{name:"glyph-orientation-horizontal",relevance:50,description:"Controls glyph orientation when the inline-progression-direction is horizontal.",restrictions:["angle","number"]},{name:"glyph-orientation-vertical",values:[{name:"auto",description:"Sets the orientation based on the fullwidth or non-fullwidth characters and the most common orientation."}],relevance:50,description:"Controls glyph orientation when the inline-progression-direction is vertical.",restrictions:["angle","number","enum"]},{name:"grid-area",browsers:["E16","FF52","S10.1","C57","O44"],values:[{name:"auto",description:"The property contributes nothing to the grid item\u2019s placement, indicating auto-placement, an automatic span, or a default span of one."},{name:"span",description:"Contributes a grid span to the grid item\u2019s placement such that the corresponding edge of the grid item\u2019s grid area is N lines from its opposite edge."}],syntax:"<grid-line> [ / <grid-line> ]{0,3}",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/grid-area"}],description:"Determine a grid item\u2019s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement. Shorthand for 'grid-row-start', 'grid-column-start', 'grid-row-end', and 'grid-column-end'.",restrictions:["identifier","integer"]},{name:"grid",browsers:["E16","FF52","S10.1","C57","O44"],syntax:"<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/grid"}],description:"The grid CSS property is a shorthand property that sets all of the explicit grid properties ('grid-template-rows', 'grid-template-columns', and 'grid-template-areas'), and all the implicit grid properties ('grid-auto-rows', 'grid-auto-columns', and 'grid-auto-flow'), in a single declaration.",restrictions:["identifier","length","percentage","string","enum"]},{name:"grid-auto-columns",values:[{name:"min-content",description:"Represents the largest min-content contribution of the grid items occupying the grid track."},{name:"max-content",description:"Represents the largest max-content contribution of the grid items occupying the grid track."},{name:"auto",description:"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track."},{name:"minmax()",description:"Defines a size range greater than or equal to min and less than or equal to max."}],syntax:"<track-size>+",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/grid-auto-columns"}],description:"Specifies the size of implicitly created columns.",restrictions:["length","percentage"]},{name:"grid-auto-flow",browsers:["E16","FF52","S10.1","C57","O44"],values:[{name:"row",description:"The auto-placement algorithm places items by filling each row in turn, adding new rows as necessary."},{name:"column",description:"The auto-placement algorithm places items by filling each column in turn, adding new columns as necessary."},{name:"dense",description:"If specified, the auto-placement algorithm uses a \u201cdense\u201d packing algorithm, which attempts to fill in holes earlier in the grid if smaller items come up later."}],syntax:"[ row | column ] || dense",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/grid-auto-flow"}],description:"Controls how the auto-placement algorithm works, specifying exactly how auto-placed items get flowed into the grid.",restrictions:["enum"]},{name:"grid-auto-rows",values:[{name:"min-content",description:"Represents the largest min-content contribution of the grid items occupying the grid track."},{name:"max-content",description:"Represents the largest max-content contribution of the grid items occupying the grid track."},{name:"auto",description:"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track."},{name:"minmax()",description:"Defines a size range greater than or equal to min and less than or equal to max."}],syntax:"<track-size>+",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/grid-auto-rows"}],description:"Specifies the size of implicitly created rows.",restrictions:["length","percentage"]},{name:"grid-column",browsers:["E16","FF52","S10.1","C57","O44"],values:[{name:"auto",description:"The property contributes nothing to the grid item\u2019s placement, indicating auto-placement, an automatic span, or a default span of one."},{name:"span",description:"Contributes a grid span to the grid item\u2019s placement such that the corresponding edge of the grid item\u2019s grid area is N lines from its opposite edge."}],syntax:"<grid-line> [ / <grid-line> ]?",relevance:52,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/grid-column"}],description:"Shorthand for 'grid-column-start' and 'grid-column-end'.",restrictions:["identifier","integer","enum"]},{name:"grid-column-end",browsers:["E16","FF52","S10.1","C57","O44"],values:[{name:"auto",description:"The property contributes nothing to the grid item\u2019s placement, indicating auto-placement, an automatic span, or a default span of one."},{name:"span",description:"Contributes a grid span to the grid item\u2019s placement such that the corresponding edge of the grid item\u2019s grid area is N lines from its opposite edge."}],syntax:"<grid-line>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/grid-column-end"}],description:"Determine a grid item\u2019s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.",restrictions:["identifier","integer","enum"]},{name:"grid-column-gap",browsers:["FF52","C57","S10.1","O44"],status:"obsolete",syntax:"<length-percentage>",relevance:1,description:"Specifies the gutters between grid columns. Replaced by 'column-gap' property.",restrictions:["length"]},{name:"grid-column-start",browsers:["E16","FF52","S10.1","C57","O44"],values:[{name:"auto",description:"The property contributes nothing to the grid item\u2019s placement, indicating auto-placement, an automatic span, or a default span of one."},{name:"span",description:"Contributes a grid span to the grid item\u2019s placement such that the corresponding edge of the grid item\u2019s grid area is N lines from its opposite edge."}],syntax:"<grid-line>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/grid-column-start"}],description:"Determine a grid item\u2019s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.",restrictions:["identifier","integer","enum"]},{name:"grid-gap",browsers:["FF52","C57","S10.1","O44"],status:"obsolete",syntax:"<'grid-row-gap'> <'grid-column-gap'>?",relevance:2,description:"Shorthand that specifies the gutters between grid columns and grid rows in one declaration. Replaced by 'gap' property.",restrictions:["length"]},{name:"grid-row",browsers:["E16","FF52","S10.1","C57","O44"],values:[{name:"auto",description:"The property contributes nothing to the grid item\u2019s placement, indicating auto-placement, an automatic span, or a default span of one."},{name:"span",description:"Contributes a grid span to the grid item\u2019s placement such that the corresponding edge of the grid item\u2019s grid area is N lines from its opposite edge."}],syntax:"<grid-line> [ / <grid-line> ]?",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/grid-row"}],description:"Shorthand for 'grid-row-start' and 'grid-row-end'.",restrictions:["identifier","integer","enum"]},{name:"grid-row-end",browsers:["E16","FF52","S10.1","C57","O44"],values:[{name:"auto",description:"The property contributes nothing to the grid item\u2019s placement, indicating auto-placement, an automatic span, or a default span of one."},{name:"span",description:"Contributes a grid span to the grid item\u2019s placement such that the corresponding edge of the grid item\u2019s grid area is N lines from its opposite edge."}],syntax:"<grid-line>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/grid-row-end"}],description:"Determine a grid item\u2019s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.",restrictions:["identifier","integer","enum"]},{name:"grid-row-gap",browsers:["FF52","C57","S10.1","O44"],status:"obsolete",syntax:"<length-percentage>",relevance:1,description:"Specifies the gutters between grid rows. Replaced by 'row-gap' property.",restrictions:["length"]},{name:"grid-row-start",browsers:["E16","FF52","S10.1","C57","O44"],values:[{name:"auto",description:"The property contributes nothing to the grid item\u2019s placement, indicating auto-placement, an automatic span, or a default span of one."},{name:"span",description:"Contributes a grid span to the grid item\u2019s placement such that the corresponding edge of the grid item\u2019s grid area is N lines from its opposite edge."}],syntax:"<grid-line>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/grid-row-start"}],description:"Determine a grid item\u2019s size and location within the grid by contributing a line, a span, or nothing (automatic) to its grid placement.",restrictions:["identifier","integer","enum"]},{name:"grid-template",browsers:["E16","FF52","S10.1","C57","O44"],values:[{name:"none",description:"Sets all three properties to their initial values."},{name:"min-content",description:"Represents the largest min-content contribution of the grid items occupying the grid track."},{name:"max-content",description:"Represents the largest max-content contribution of the grid items occupying the grid track."},{name:"auto",description:"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track."},{name:"subgrid",description:"Sets 'grid-template-rows' and 'grid-template-columns' to 'subgrid', and 'grid-template-areas' to its initial value."},{name:"minmax()",description:"Defines a size range greater than or equal to min and less than or equal to max."},{name:"repeat()",description:"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form."}],syntax:"none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/grid-template"}],description:"Shorthand for setting grid-template-columns, grid-template-rows, and grid-template-areas in a single declaration.",restrictions:["identifier","length","percentage","string","enum"]},{name:"grid-template-areas",browsers:["E16","FF52","S10.1","C57","O44"],values:[{name:"none",description:"The grid container doesn\u2019t define any named grid areas."}],syntax:"none | <string>+",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/grid-template-areas"}],description:"Specifies named grid areas, which are not associated with any particular grid item, but can be referenced from the grid-placement properties.",restrictions:["string"]},{name:"grid-template-columns",values:[{name:"none",description:"There is no explicit grid; any rows/columns will be implicitly generated."},{name:"min-content",description:"Represents the largest min-content contribution of the grid items occupying the grid track."},{name:"max-content",description:"Represents the largest max-content contribution of the grid items occupying the grid track."},{name:"auto",description:"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track."},{name:"subgrid",description:"Indicates that the grid will align to its parent grid in that axis."},{name:"minmax()",description:"Defines a size range greater than or equal to min and less than or equal to max."},{name:"repeat()",description:"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form."}],syntax:"none | <track-list> | <auto-track-list> | subgrid <line-name-list>?",relevance:56,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/grid-template-columns"}],description:"specifies, as a space-separated track list, the line names and track sizing functions of the grid.",restrictions:["identifier","length","percentage","enum"]},{name:"grid-template-rows",values:[{name:"none",description:"There is no explicit grid; any rows/columns will be implicitly generated."},{name:"min-content",description:"Represents the largest min-content contribution of the grid items occupying the grid track."},{name:"max-content",description:"Represents the largest max-content contribution of the grid items occupying the grid track."},{name:"auto",description:"As a maximum, identical to 'max-content'. As a minimum, represents the largest minimum size (as specified by min-width/min-height) of the grid items occupying the grid track."},{name:"subgrid",description:"Indicates that the grid will align to its parent grid in that axis."},{name:"minmax()",description:"Defines a size range greater than or equal to min and less than or equal to max."},{name:"repeat()",description:"Represents a repeated fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form."}],syntax:"none | <track-list> | <auto-track-list> | subgrid <line-name-list>?",relevance:52,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/grid-template-rows"}],description:"specifies, as a space-separated track list, the line names and track sizing functions of the grid.",restrictions:["identifier","length","percentage","string","enum"]},{name:"height",values:[{name:"auto",description:"The height depends on the values of other properties."},{name:"fit-content",description:"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode."},{name:"max-content",description:"Use the max-content inline size or max-content block size, as appropriate to the writing mode."},{name:"min-content",description:"Use the min-content inline size or min-content block size, as appropriate to the writing mode."}],syntax:"<viewport-length>{1,2}",relevance:96,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/height"}],description:"Specifies the height of the content area, padding area or border area (depending on 'box-sizing') of certain boxes.",restrictions:["length","percentage"]},{name:"hyphens",values:[{name:"auto",description:"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word."},{name:"manual",description:"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities"},{name:"none",description:"Words are not broken at line breaks, even if characters inside the word suggest line break points."}],syntax:"none | manual | auto",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/hyphens"}],description:"Controls whether hyphenation is allowed to create more break opportunities within a line of text.",restrictions:["enum"]},{name:"image-orientation",browsers:["E81","FF26","S13.1","C81","O67"],values:[{name:"flip",description:"After rotating by the precededing angle, the image is flipped horizontally. Defaults to 0deg if the angle is ommitted."},{name:"from-image",description:"If the image has an orientation specified in its metadata, such as EXIF, this value computes to the angle that the metadata specifies is necessary to correctly orient the image."}],syntax:"from-image | <angle> | [ <angle>? flip ]",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/image-orientation"}],description:"Specifies an orthogonal rotation to be applied to an image before it is laid out.",restrictions:["angle"]},{name:"image-rendering",browsers:["E79","FF3.6","S6","C13","O15"],values:[{name:"auto",description:"The image should be scaled with an algorithm that maximizes the appearance of the image."},{name:"crisp-edges",description:"The image must be scaled with an algorithm that preserves contrast and edges in the image, and which does not smooth colors or introduce blur to the image in the process."},{name:"-moz-crisp-edges",browsers:["E79","FF3.6","S6","C13","O15"]},{name:"optimizeQuality",description:"Deprecated."},{name:"optimizeSpeed",description:"Deprecated."},{name:"pixelated",description:"When scaling the image up, the 'nearest neighbor' or similar algorithm must be used, so that the image appears to be simply composed of very large pixels."}],syntax:"auto | crisp-edges | pixelated",relevance:55,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/image-rendering"}],description:"Provides a hint to the user-agent about what aspects of an image are most important to preserve when the image is scaled, to aid the user-agent in the choice of an appropriate scaling algorithm.",restrictions:["enum"]},{name:"ime-mode",browsers:["E12","FF3","IE5"],values:[{name:"active",description:"The input method editor is initially active; text entry is performed using it unless the user specifically dismisses it."},{name:"auto",description:"No change is made to the current input method editor state. This is the default."},{name:"disabled",description:"The input method editor is disabled and may not be activated by the user."},{name:"inactive",description:"The input method editor is initially inactive, but the user may activate it if they wish."},{name:"normal",description:"The IME state should be normal; this value can be used in a user style sheet to override the page setting."}],status:"obsolete",syntax:"auto | normal | active | inactive | disabled",relevance:0,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/ime-mode"}],description:"Controls the state of the input method editor for text fields.",restrictions:["enum"]},{name:"inline-size",browsers:["E79","FF41","S12.1","C57","O44"],values:[{name:"auto",description:"Depends on the values of other properties."}],syntax:"<'width'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/inline-size"}],description:"Logical 'height'. Mapping depends on the element\u2019s 'writing-mode'.",restrictions:["length","percentage"]},{name:"isolation",browsers:["E79","FF36","S8","C41","O30"],values:[{name:"auto",description:"Elements are not isolated unless an operation is applied that causes the creation of a stacking context."},{name:"isolate",description:"In CSS will turn the element into a stacking context."}],syntax:"auto | isolate",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/isolation"}],description:"In CSS setting to 'isolate' will turn the element into a stacking context. In SVG, it defines whether an element is isolated or not.",restrictions:["enum"]},{name:"justify-content",values:[{name:"center",description:"Flex items are packed toward the center of the line."},{name:"start",description:"The items are packed flush to each other toward the start edge of the alignment container in the main axis."},{name:"end",description:"The items are packed flush to each other toward the end edge of the alignment container in the main axis."},{name:"left",description:"The items are packed flush to each other toward the left edge of the alignment container in the main axis."},{name:"right",description:"The items are packed flush to each other toward the right edge of the alignment container in the main axis."},{name:"safe",description:"If the size of the item overflows the alignment container, the item is instead aligned as if the alignment mode were start."},{name:"unsafe",description:"Regardless of the relative sizes of the item and alignment container, the given alignment value is honored."},{name:"stretch",description:"If the combined size of the alignment subjects is less than the size of the alignment container, any auto-sized alignment subjects have their size increased equally (not proportionally), while still respecting the constraints imposed by max-height/max-width (or equivalent functionality), so that the combined size exactly fills the alignment container."},{name:"space-evenly",description:"The items are evenly distributed within the alignment container along the main axis."},{name:"flex-end",description:"Flex items are packed toward the end of the line."},{name:"flex-start",description:"Flex items are packed toward the start of the line."},{name:"space-around",description:"Flex items are evenly distributed in the line, with half-size spaces on either end."},{name:"space-between",description:"Flex items are evenly distributed in the line."},{name:"baseline",description:"Specifies participation in first-baseline alignment."},{name:"first baseline",description:"Specifies participation in first-baseline alignment."},{name:"last baseline",description:"Specifies participation in last-baseline alignment."}],syntax:"normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]",relevance:84,description:"Aligns flex items along the main axis of the current line of the flex container.",restrictions:["enum"]},{name:"kerning",values:[{name:"auto",description:"Indicates that the user agent should adjust inter-glyph spacing based on kerning tables that are included in the font that will be used."}],relevance:50,description:"Indicates whether the user agent should adjust inter-glyph spacing based on kerning tables that are included in the relevant font or instead disable auto-kerning and set inter-character spacing to a specific length.",restrictions:["length","enum"]},{name:"left",values:[{name:"auto",description:"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well"}],syntax:"<length> | <percentage> | auto",relevance:95,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/left"}],description:"Specifies how far an absolutely positioned box's left margin edge is offset to the right of the left edge of the box's 'containing block'.",restrictions:["length","percentage"]},{name:"letter-spacing",values:[{name:"normal",description:"The spacing is the normal spacing for the current font. It is typically zero-length."}],syntax:"normal | <length>",relevance:80,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/letter-spacing"}],description:"Specifies the minimum, maximum, and optimal spacing between grapheme clusters.",restrictions:["length"]},{name:"lighting-color",browsers:["E","C5","FF3","IE10","O9","S6"],relevance:50,description:"Defines the color of the light source for filter primitives 'feDiffuseLighting' and 'feSpecularLighting'.",restrictions:["color"]},{name:"line-break",values:[{name:"auto",description:"The UA determines the set of line-breaking restrictions to use for CJK scripts, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines."},{name:"loose",description:"Breaks text using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers."},{name:"normal",description:"Breaks text using the most common set of line-breaking rules."},{name:"strict",description:"Breaks CJK scripts using a more restrictive set of line-breaking rules than 'normal'."}],syntax:"auto | loose | normal | strict | anywhere",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/line-break"}],description:"Specifies what set of line breaking restrictions are in effect within the element.",restrictions:["enum"]},{name:"line-height",values:[{name:"normal",description:"Tells user agents to set the computed value to a 'reasonable' value based on the font size of the element."}],syntax:"normal | <number> | <length> | <percentage>",relevance:93,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/line-height"}],description:"Determines the block-progression dimension of the text content area of an inline box.",restrictions:["number","length","percentage"]},{name:"list-style",values:[{name:"armenian"},{name:"circle",description:"A hollow circle."},{name:"decimal"},{name:"decimal-leading-zero"},{name:"disc",description:"A filled circle."},{name:"georgian"},{name:"inside",description:"The marker box is outside the principal block box, as described in the section on the ::marker pseudo-element below."},{name:"lower-alpha"},{name:"lower-greek"},{name:"lower-latin"},{name:"lower-roman"},{name:"none"},{name:"outside",description:"The ::marker pseudo-element is an inline element placed immediately before all ::before pseudo-elements in the principal block box, after which the element's content flows."},{name:"square",description:"A filled square."},{name:"symbols()",description:"Allows a counter style to be defined inline."},{name:"upper-alpha"},{name:"upper-latin"},{name:"upper-roman"},{name:"url()"}],syntax:"<'list-style-type'> || <'list-style-position'> || <'list-style-image'>",relevance:85,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/list-style"}],description:"Shorthand for setting 'list-style-type', 'list-style-position' and 'list-style-image'",restrictions:["image","enum","url"]},{name:"list-style-image",values:[{name:"none",description:"The default contents of the of the list item\u2019s marker are given by 'list-style-type' instead."}],syntax:"<url> | none",relevance:52,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/list-style-image"}],description:"Sets the image that will be used as the list item marker. When the image is available, it will replace the marker set with the 'list-style-type' marker.",restrictions:["image"]},{name:"list-style-position",values:[{name:"inside",description:"The marker box is outside the principal block box, as described in the section on the ::marker pseudo-element below."},{name:"outside",description:"The ::marker pseudo-element is an inline element placed immediately before all ::before pseudo-elements in the principal block box, after which the element's content flows."}],syntax:"inside | outside",relevance:55,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/list-style-position"}],description:"Specifies the position of the '::marker' pseudo-element's box in the list item.",restrictions:["enum"]},{name:"list-style-type",values:[{name:"armenian",description:"Traditional uppercase Armenian numbering."},{name:"circle",description:"A hollow circle."},{name:"decimal",description:"Western decimal numbers."},{name:"decimal-leading-zero",description:"Decimal numbers padded by initial zeros."},{name:"disc",description:"A filled circle."},{name:"georgian",description:"Traditional Georgian numbering."},{name:"lower-alpha",description:"Lowercase ASCII letters."},{name:"lower-greek",description:"Lowercase classical Greek."},{name:"lower-latin",description:"Lowercase ASCII letters."},{name:"lower-roman",description:"Lowercase ASCII Roman numerals."},{name:"none",description:"No marker"},{name:"square",description:"A filled square."},{name:"symbols()",description:"Allows a counter style to be defined inline."},{name:"upper-alpha",description:"Uppercase ASCII letters."},{name:"upper-latin",description:"Uppercase ASCII letters."},{name:"upper-roman",description:"Uppercase ASCII Roman numerals."}],syntax:"<counter-style> | <string> | none",relevance:75,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/list-style-type"}],description:"Used to construct the default contents of a list item\u2019s marker",restrictions:["enum","string"]},{name:"margin",values:[{name:"auto"}],syntax:"[ <length> | <percentage> | auto ]{1,4}",relevance:95,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/margin"}],description:"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits.",restrictions:["length","percentage"]},{name:"margin-block-end",browsers:["E79","FF41","S12.1","C69","O56"],values:[{name:"auto"}],syntax:"<'margin-left'>",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/margin-block-end"}],description:"Logical 'margin-bottom'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","percentage"]},{name:"margin-block-start",browsers:["E79","FF41","S12.1","C69","O56"],values:[{name:"auto"}],syntax:"<'margin-left'>",relevance:52,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/margin-block-start"}],description:"Logical 'margin-top'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","percentage"]},{name:"margin-bottom",values:[{name:"auto"}],syntax:"<length> | <percentage> | auto",relevance:91,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/margin-bottom"}],description:"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..",restrictions:["length","percentage"]},{name:"margin-inline-end",browsers:["E79","FF41","S12.1","C69","O56"],values:[{name:"auto"}],syntax:"<'margin-left'>",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/margin-inline-end"}],description:"Logical 'margin-right'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","percentage"]},{name:"margin-inline-start",browsers:["E79","FF41","S12.1","C69","O56"],values:[{name:"auto"}],syntax:"<'margin-left'>",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/margin-inline-start"}],description:"Logical 'margin-left'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","percentage"]},{name:"margin-left",values:[{name:"auto"}],syntax:"<length> | <percentage> | auto",relevance:91,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/margin-left"}],description:"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..",restrictions:["length","percentage"]},{name:"margin-right",values:[{name:"auto"}],syntax:"<length> | <percentage> | auto",relevance:91,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/margin-right"}],description:"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..",restrictions:["length","percentage"]},{name:"margin-top",values:[{name:"auto"}],syntax:"<length> | <percentage> | auto",relevance:95,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/margin-top"}],description:"Shorthand property to set values the thickness of the margin area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. Negative values for margin properties are allowed, but there may be implementation-specific limits..",restrictions:["length","percentage"]},{name:"marker",values:[{name:"none",description:"Indicates that no marker symbol will be drawn at the given vertex or vertices."},{name:"url()",description:"Indicates that the <marker> element referenced will be used."}],relevance:50,description:"Specifies the marker symbol that shall be used for all points on the sets the value for all vertices on the given \u2018path\u2019 element or basic shape.",restrictions:["url"]},{name:"marker-end",values:[{name:"none",description:"Indicates that no marker symbol will be drawn at the given vertex or vertices."},{name:"url()",description:"Indicates that the <marker> element referenced will be used."}],relevance:50,description:"Specifies the marker that will be drawn at the last vertices of the given markable element.",restrictions:["url"]},{name:"marker-mid",values:[{name:"none",description:"Indicates that no marker symbol will be drawn at the given vertex or vertices."},{name:"url()",description:"Indicates that the <marker> element referenced will be used."}],relevance:50,description:"Specifies the marker that will be drawn at all vertices except the first and last.",restrictions:["url"]},{name:"marker-start",values:[{name:"none",description:"Indicates that no marker symbol will be drawn at the given vertex or vertices."},{name:"url()",description:"Indicates that the <marker> element referenced will be used."}],relevance:50,description:"Specifies the marker that will be drawn at the first vertices of the given markable element.",restrictions:["url"]},{name:"mask-image",browsers:["E16","FF53","S4","C1","O15"],values:[{name:"none",description:"Counts as a transparent black image layer."},{name:"url()",description:"Reference to a <mask element or to a CSS image."}],syntax:"<mask-reference>#",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-image"}],description:"Sets the mask layer image of an element.",restrictions:["url","image","enum"]},{name:"mask-mode",browsers:["FF53"],values:[{name:"alpha",description:"Alpha values of the mask layer image should be used as the mask values."},{name:"auto",description:"Use alpha values if 'mask-image' is an image, luminance if a <mask> element or a CSS image."},{name:"luminance",description:"Luminance values of the mask layer image should be used as the mask values."}],syntax:"<masking-mode>#",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-mode"}],description:"Indicates whether the mask layer image is treated as luminance mask or alpha mask.",restrictions:["url","image","enum"]},{name:"mask-origin",browsers:["E79","FF53","S4","C1","O15"],syntax:"<geometry-box>#",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-origin"}],description:"Specifies the mask positioning area.",restrictions:["geometry-box","enum"]},{name:"mask-position",browsers:["E18","FF53","S3.2","C1","O15"],syntax:"<position>#",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-position"}],description:"Specifies how mask layer images are positioned.",restrictions:["position","length","percentage"]},{name:"mask-repeat",browsers:["E18","FF53","S3.2","C1","O15"],syntax:"<repeat-style>#",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-repeat"}],description:"Specifies how mask layer images are tiled after they have been sized and positioned.",restrictions:["repeat"]},{name:"mask-size",browsers:["E18","FF53","S4","C4","O15"],values:[{name:"auto",description:"Resolved by using the image\u2019s intrinsic ratio and the size of the other dimension, or failing that, using the image\u2019s intrinsic size, or failing that, treating it as 100%."},{name:"contain",description:"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area."},{name:"cover",description:"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area."}],syntax:"<bg-size>#",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-size"}],description:"Specifies the size of the mask layer images.",restrictions:["length","percentage","enum"]},{name:"mask-type",browsers:["E79","FF35","S6.1","C24","O15"],values:[{name:"alpha",description:"Indicates that the alpha values of the mask should be used."},{name:"luminance",description:"Indicates that the luminance values of the mask should be used."}],syntax:"luminance | alpha",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-type"}],description:"Defines whether the content of the <mask> element is treated as as luminance mask or alpha mask.",restrictions:["enum"]},{name:"max-block-size",browsers:["E79","FF41","S12.1","C57","O44"],values:[{name:"none",description:"No limit on the width of the box."}],syntax:"<'max-width'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/max-block-size"}],description:"Logical 'max-width'. Mapping depends on the element\u2019s 'writing-mode'.",restrictions:["length","percentage"]},{name:"max-height",values:[{name:"none",description:"No limit on the height of the box."},{name:"fit-content",description:"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode."},{name:"max-content",description:"Use the max-content inline size or max-content block size, as appropriate to the writing mode."},{name:"min-content",description:"Use the min-content inline size or min-content block size, as appropriate to the writing mode."}],syntax:"<viewport-length>",relevance:85,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/max-height"}],description:"Allows authors to constrain content height to a certain range.",restrictions:["length","percentage"]},{name:"max-inline-size",browsers:["E79","FF41","S12.1","C57","O44"],values:[{name:"none",description:"No limit on the height of the box."}],syntax:"<'max-width'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/max-inline-size"}],description:"Logical 'max-height'. Mapping depends on the element\u2019s 'writing-mode'.",restrictions:["length","percentage"]},{name:"max-width",values:[{name:"none",description:"No limit on the width of the box."},{name:"fit-content",description:"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode."},{name:"max-content",description:"Use the max-content inline size or max-content block size, as appropriate to the writing mode."},{name:"min-content",description:"Use the min-content inline size or min-content block size, as appropriate to the writing mode."}],syntax:"<viewport-length>",relevance:90,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/max-width"}],description:"Allows authors to constrain content width to a certain range.",restrictions:["length","percentage"]},{name:"min-block-size",browsers:["E79","FF41","S12.1","C57","O44"],syntax:"<'min-width'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/min-block-size"}],description:"Logical 'min-width'. Mapping depends on the element\u2019s 'writing-mode'.",restrictions:["length","percentage"]},{name:"min-height",values:[{name:"auto"},{name:"fit-content",description:"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode."},{name:"max-content",description:"Use the max-content inline size or max-content block size, as appropriate to the writing mode."},{name:"min-content",description:"Use the min-content inline size or min-content block size, as appropriate to the writing mode."}],syntax:"<viewport-length>",relevance:89,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/min-height"}],description:"Allows authors to constrain content height to a certain range.",restrictions:["length","percentage"]},{name:"min-inline-size",browsers:["E79","FF41","S12.1","C57","O44"],syntax:"<'min-width'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/min-inline-size"}],description:"Logical 'min-height'. Mapping depends on the element\u2019s 'writing-mode'.",restrictions:["length","percentage"]},{name:"min-width",values:[{name:"auto"},{name:"fit-content",description:"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode."},{name:"max-content",description:"Use the max-content inline size or max-content block size, as appropriate to the writing mode."},{name:"min-content",description:"Use the min-content inline size or min-content block size, as appropriate to the writing mode."}],syntax:"<viewport-length>",relevance:88,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/min-width"}],description:"Allows authors to constrain content width to a certain range.",restrictions:["length","percentage"]},{name:"mix-blend-mode",browsers:["E79","FF32","S8","C41","O28"],values:[{name:"normal",description:"Default attribute which specifies no blending"},{name:"multiply",description:"The source color is multiplied by the destination color and replaces the destination."},{name:"screen",description:"Multiplies the complements of the backdrop and source color values, then complements the result."},{name:"overlay",description:"Multiplies or screens the colors, depending on the backdrop color value."},{name:"darken",description:"Selects the darker of the backdrop and source colors."},{name:"lighten",description:"Selects the lighter of the backdrop and source colors."},{name:"color-dodge",description:"Brightens the backdrop color to reflect the source color."},{name:"color-burn",description:"Darkens the backdrop color to reflect the source color."},{name:"hard-light",description:"Multiplies or screens the colors, depending on the source color value."},{name:"soft-light",description:"Darkens or lightens the colors, depending on the source color value."},{name:"difference",description:"Subtracts the darker of the two constituent colors from the lighter color.."},{name:"exclusion",description:"Produces an effect similar to that of the Difference mode but lower in contrast."},{name:"hue",browsers:["E79","FF32","S8","C41","O28"],description:"Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color."},{name:"saturation",browsers:["E79","FF32","S8","C41","O28"],description:"Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color."},{name:"color",browsers:["E79","FF32","S8","C41","O28"],description:"Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color."},{name:"luminosity",browsers:["E79","FF32","S8","C41","O28"],description:"Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color."}],syntax:"<blend-mode>",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mix-blend-mode"}],description:"Defines the formula that must be used to mix the colors with the backdrop.",restrictions:["enum"]},{name:"motion",browsers:["C46","O33"],values:[{name:"none",description:"No motion path gets created."},{name:"path()",description:"Defines an SVG path as a string, with optional 'fill-rule' as the first argument."},{name:"auto",description:"Indicates that the object is rotated by the angle of the direction of the motion path."},{name:"reverse",description:"Indicates that the object is rotated by the angle of the direction of the motion path plus 180 degrees."}],relevance:50,description:"Shorthand property for setting 'motion-path', 'motion-offset' and 'motion-rotation'.",restrictions:["url","length","percentage","angle","shape","geometry-box","enum"]},{name:"motion-offset",browsers:["C46","O33"],relevance:50,description:"A distance that describes the position along the specified motion path.",restrictions:["length","percentage"]},{name:"motion-path",browsers:["C46","O33"],values:[{name:"none",description:"No motion path gets created."},{name:"path()",description:"Defines an SVG path as a string, with optional 'fill-rule' as the first argument."}],relevance:50,description:"Specifies the motion path the element gets positioned at.",restrictions:["url","shape","geometry-box","enum"]},{name:"motion-rotation",browsers:["C46","O33"],values:[{name:"auto",description:"Indicates that the object is rotated by the angle of the direction of the motion path."},{name:"reverse",description:"Indicates that the object is rotated by the angle of the direction of the motion path plus 180 degrees."}],relevance:50,description:"Defines the direction of the element while positioning along the motion path.",restrictions:["angle"]},{name:"-moz-animation",browsers:["FF9"],values:[{name:"alternate",description:"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction."},{name:"alternate-reverse",description:"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction."},{name:"backwards",description:"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'."},{name:"both",description:"Both forwards and backwards fill modes are applied."},{name:"forwards",description:"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes."},{name:"infinite",description:"Causes the animation to repeat forever."},{name:"none",description:"No animation is performed"},{name:"normal",description:"Normal playback."},{name:"reverse",description:"All iterations of the animation are played in the reverse direction from the way they were specified."}],relevance:50,description:"Shorthand property combines six of the animation properties into a single property.",restrictions:["time","enum","timing-function","identifier","number"]},{name:"-moz-animation-delay",browsers:["FF9"],relevance:50,description:"Defines when the animation will start.",restrictions:["time"]},{name:"-moz-animation-direction",browsers:["FF9"],values:[{name:"alternate",description:"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction."},{name:"alternate-reverse",description:"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction."},{name:"normal",description:"Normal playback."},{name:"reverse",description:"All iterations of the animation are played in the reverse direction from the way they were specified."}],relevance:50,description:"Defines whether or not the animation should play in reverse on alternate cycles.",restrictions:["enum"]},{name:"-moz-animation-duration",browsers:["FF9"],relevance:50,description:"Defines the length of time that an animation takes to complete one cycle.",restrictions:["time"]},{name:"-moz-animation-iteration-count",browsers:["FF9"],values:[{name:"infinite",description:"Causes the animation to repeat forever."}],relevance:50,description:"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.",restrictions:["number","enum"]},{name:"-moz-animation-name",browsers:["FF9"],values:[{name:"none",description:"No animation is performed"}],relevance:50,description:"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.",restrictions:["identifier","enum"]},{name:"-moz-animation-play-state",browsers:["FF9"],values:[{name:"paused",description:"A running animation will be paused."},{name:"running",description:"Resume playback of a paused animation."}],relevance:50,description:"Defines whether the animation is running or paused.",restrictions:["enum"]},{name:"-moz-animation-timing-function",browsers:["FF9"],relevance:50,description:"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.",restrictions:["timing-function"]},{name:"-moz-appearance",browsers:["FF1"],values:[{name:"button"},{name:"button-arrow-down"},{name:"button-arrow-next"},{name:"button-arrow-previous"},{name:"button-arrow-up"},{name:"button-bevel"},{name:"checkbox"},{name:"checkbox-container"},{name:"checkbox-label"},{name:"dialog"},{name:"groupbox"},{name:"listbox"},{name:"menuarrow"},{name:"menuimage"},{name:"menuitem"},{name:"menuitemtext"},{name:"menulist"},{name:"menulist-button"},{name:"menulist-text"},{name:"menulist-textfield"},{name:"menupopup"},{name:"menuradio"},{name:"menuseparator"},{name:"-moz-mac-unified-toolbar"},{name:"-moz-win-borderless-glass"},{name:"-moz-win-browsertabbar-toolbox"},{name:"-moz-win-communications-toolbox"},{name:"-moz-win-glass"},{name:"-moz-win-media-toolbox"},{name:"none"},{name:"progressbar"},{name:"progresschunk"},{name:"radio"},{name:"radio-container"},{name:"radio-label"},{name:"radiomenuitem"},{name:"resizer"},{name:"resizerpanel"},{name:"scrollbarbutton-down"},{name:"scrollbarbutton-left"},{name:"scrollbarbutton-right"},{name:"scrollbarbutton-up"},{name:"scrollbar-small"},{name:"scrollbartrack-horizontal"},{name:"scrollbartrack-vertical"},{name:"separator"},{name:"spinner"},{name:"spinner-downbutton"},{name:"spinner-textfield"},{name:"spinner-upbutton"},{name:"statusbar"},{name:"statusbarpanel"},{name:"tab"},{name:"tabpanels"},{name:"tab-scroll-arrow-back"},{name:"tab-scroll-arrow-forward"},{name:"textfield"},{name:"textfield-multiline"},{name:"toolbar"},{name:"toolbox"},{name:"tooltip"},{name:"treeheadercell"},{name:"treeheadersortarrow"},{name:"treeitem"},{name:"treetwistyopen"},{name:"treeview"},{name:"treewisty"},{name:"window"}],status:"nonstandard",syntax:"none | button | button-arrow-down | button-arrow-next | button-arrow-previous | button-arrow-up | button-bevel | button-focus | caret | checkbox | checkbox-container | checkbox-label | checkmenuitem | dualbutton | groupbox | listbox | listitem | menuarrow | menubar | menucheckbox | menuimage | menuitem | menuitemtext | menulist | menulist-button | menulist-text | menulist-textfield | menupopup | menuradio | menuseparator | meterbar | meterchunk | progressbar | progressbar-vertical | progresschunk | progresschunk-vertical | radio | radio-container | radio-label | radiomenuitem | range | range-thumb | resizer | resizerpanel | scale-horizontal | scalethumbend | scalethumb-horizontal | scalethumbstart | scalethumbtick | scalethumb-vertical | scale-vertical | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | separator | sheet | spinner | spinner-downbutton | spinner-textfield | spinner-upbutton | splitter | statusbar | statusbarpanel | tab | tabpanel | tabpanels | tab-scroll-arrow-back | tab-scroll-arrow-forward | textfield | textfield-multiline | toolbar | toolbarbutton | toolbarbutton-dropdown | toolbargripper | toolbox | tooltip | treeheader | treeheadercell | treeheadersortarrow | treeitem | treeline | treetwisty | treetwistyopen | treeview | -moz-mac-unified-toolbar | -moz-win-borderless-glass | -moz-win-browsertabbar-toolbox | -moz-win-communicationstext | -moz-win-communications-toolbox | -moz-win-exclude-glass | -moz-win-glass | -moz-win-mediatext | -moz-win-media-toolbox | -moz-window-button-box | -moz-window-button-box-maximized | -moz-window-button-close | -moz-window-button-maximize | -moz-window-button-minimize | -moz-window-button-restore | -moz-window-frame-bottom | -moz-window-frame-left | -moz-window-frame-right | -moz-window-titlebar | -moz-window-titlebar-maximized",relevance:0,description:"Used in Gecko (Firefox) to display an element using a platform-native styling based on the operating system's theme.",restrictions:["enum"]},{name:"-moz-backface-visibility",browsers:["FF10"],values:[{name:"hidden"},{name:"visible"}],relevance:50,description:"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.",restrictions:["enum"]},{name:"-moz-background-clip",browsers:["FF1-3.6"],values:[{name:"padding"}],relevance:50,description:"Determines the background painting area.",restrictions:["box","enum"]},{name:"-moz-background-inline-policy",browsers:["FF1"],values:[{name:"bounding-box"},{name:"continuous"},{name:"each-box"}],relevance:50,description:"In Gecko-based applications like Firefox, the -moz-background-inline-policy CSS property specifies how the background image of an inline element is determined when the content of the inline element wraps onto multiple lines. The choice of position has significant effects on repetition.",restrictions:["enum"]},{name:"-moz-background-origin",browsers:["FF1"],relevance:50,description:"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).",restrictions:["box"]},{name:"-moz-border-bottom-colors",browsers:["FF1"],status:"nonstandard",syntax:"<color>+ | none",relevance:0,description:"Sets a list of colors for the bottom border.",restrictions:["color"]},{name:"-moz-border-image",browsers:["FF3.6"],values:[{name:"auto",description:"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead."},{name:"fill",description:"Causes the middle part of the border-image to be preserved."},{name:"none"},{name:"repeat",description:"The image is tiled (repeated) to fill the area."},{name:"round",description:"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does."},{name:"space",description:"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles."},{name:"stretch",description:"The image is stretched to fill the area."},{name:"url()"}],relevance:50,description:"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.",restrictions:["length","percentage","number","url","enum"]},{name:"-moz-border-left-colors",browsers:["FF1"],status:"nonstandard",syntax:"<color>+ | none",relevance:0,description:"Sets a list of colors for the bottom border.",restrictions:["color"]},{name:"-moz-border-right-colors",browsers:["FF1"],status:"nonstandard",syntax:"<color>+ | none",relevance:0,description:"Sets a list of colors for the bottom border.",restrictions:["color"]},{name:"-moz-border-top-colors",browsers:["FF1"],status:"nonstandard",syntax:"<color>+ | none",relevance:0,description:"Ske Firefox, -moz-border-bottom-colors sets a list of colors for the bottom border.",restrictions:["color"]},{name:"-moz-box-align",browsers:["FF1"],values:[{name:"baseline",description:"If this box orientation is inline-axis or horizontal, all children are placed with their baselines aligned, and extra space placed before or after as necessary. For block flows, the baseline of the first non-empty line box located within the element is used. For tables, the baseline of the first cell is used."},{name:"center",description:"Any extra space is divided evenly, with half placed above the child and the other half placed after the child."},{name:"end",description:"For normal direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element. For reverse direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element."},{name:"start",description:"For normal direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element. For reverse direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element."},{name:"stretch",description:"The height of each child is adjusted to that of the containing block."}],relevance:50,description:"Specifies how a XUL box aligns its contents across (perpendicular to) the direction of its layout. The effect of this is only visible if there is extra space in the box.",restrictions:["enum"]},{name:"-moz-box-direction",browsers:["FF1"],values:[{name:"normal",description:"A box with a computed value of horizontal for box-orient displays its children from left to right. A box with a computed value of vertical displays its children from top to bottom."},{name:"reverse",description:"A box with a computed value of horizontal for box-orient displays its children from right to left. A box with a computed value of vertical displays its children from bottom to top."}],relevance:50,description:"Specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).",restrictions:["enum"]},{name:"-moz-box-flex",browsers:["FF1"],relevance:50,description:"Specifies how a box grows to fill the box that contains it, in the direction of the containing box's layout.",restrictions:["number"]},{name:"-moz-box-flexgroup",browsers:["FF1"],relevance:50,description:"Flexible elements can be assigned to flex groups using the 'box-flex-group' property.",restrictions:["integer"]},{name:"-moz-box-ordinal-group",browsers:["FF1"],relevance:50,description:"Indicates the ordinal group the element belongs to. Elements with a lower ordinal group are displayed before those with a higher ordinal group.",restrictions:["integer"]},{name:"-moz-box-orient",browsers:["FF1"],values:[{name:"block-axis",description:"Elements are oriented along the box's axis."},{name:"horizontal",description:"The box displays its children from left to right in a horizontal line."},{name:"inline-axis",description:"Elements are oriented vertically."},{name:"vertical",description:"The box displays its children from stacked from top to bottom vertically."}],relevance:50,description:"In Mozilla applications, -moz-box-orient specifies whether a box lays out its contents horizontally or vertically.",restrictions:["enum"]},{name:"-moz-box-pack",browsers:["FF1"],values:[{name:"center",description:"The extra space is divided evenly, with half placed before the first child and the other half placed after the last child."},{name:"end",description:"For normal direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child. For reverse direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child."},{name:"justify",description:"The space is divided evenly in-between each child, with none of the extra space placed before the first child or after the last child. If there is only one child, treat the pack value as if it were start."},{name:"start",description:"For normal direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child. For reverse direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child."}],relevance:50,description:"Specifies how a box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box.",restrictions:["enum"]},{name:"-moz-box-sizing",browsers:["FF1"],values:[{name:"border-box",description:"The specified width and height (and respective min/max properties) on this element determine the border box of the element."},{name:"content-box",description:"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element."},{name:"padding-box",description:"The specified width and height (and respective min/max properties) on this element determine the padding box of the element."}],relevance:50,description:"Box Model addition in CSS3.",restrictions:["enum"]},{name:"-moz-column-count",browsers:["FF3.5"],values:[{name:"auto",description:"Determines the number of columns by the 'column-width' property and the element width."}],relevance:50,description:"Describes the optimal number of columns into which the content of the element will be flowed.",restrictions:["integer"]},{name:"-moz-column-gap",browsers:["FF3.5"],values:[{name:"normal",description:"User agent specific and typically equivalent to 1em."}],relevance:50,description:"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.",restrictions:["length"]},{name:"-moz-column-rule",browsers:["FF3.5"],relevance:50,description:"Shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.",restrictions:["length","line-width","line-style","color"]},{name:"-moz-column-rule-color",browsers:["FF3.5"],relevance:50,description:"Sets the color of the column rule",restrictions:["color"]},{name:"-moz-column-rule-style",browsers:["FF3.5"],relevance:50,description:"Sets the style of the rule between columns of an element.",restrictions:["line-style"]},{name:"-moz-column-rule-width",browsers:["FF3.5"],relevance:50,description:"Sets the width of the rule between columns. Negative values are not allowed.",restrictions:["length","line-width"]},{name:"-moz-columns",browsers:["FF9"],values:[{name:"auto",description:"The width depends on the values of other properties."}],relevance:50,description:"A shorthand property which sets both 'column-width' and 'column-count'.",restrictions:["length","integer"]},{name:"-moz-column-width",browsers:["FF3.5"],values:[{name:"auto",description:"The width depends on the values of other properties."}],relevance:50,description:"This property describes the width of columns in multicol elements.",restrictions:["length"]},{name:"-moz-font-feature-settings",browsers:["FF4"],values:[{name:'"c2cs"'},{name:'"dlig"'},{name:'"kern"'},{name:'"liga"'},{name:'"lnum"'},{name:'"onum"'},{name:'"smcp"'},{name:'"swsh"'},{name:'"tnum"'},{name:"normal",description:"No change in glyph substitution or positioning occurs."},{name:"off",browsers:["FF4"]},{name:"on",browsers:["FF4"]}],relevance:50,description:"Provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.",restrictions:["string","integer"]},{name:"-moz-hyphens",browsers:["FF9"],values:[{name:"auto",description:"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word."},{name:"manual",description:"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities"},{name:"none",description:"Words are not broken at line breaks, even if characters inside the word suggest line break points."}],relevance:50,description:"Controls whether hyphenation is allowed to create more break opportunities within a line of text.",restrictions:["enum"]},{name:"-moz-perspective",browsers:["FF10"],values:[{name:"none",description:"No perspective transform is applied."}],relevance:50,description:"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.",restrictions:["length"]},{name:"-moz-perspective-origin",browsers:["FF10"],relevance:50,description:"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.",restrictions:["position","percentage","length"]},{name:"-moz-text-align-last",browsers:["FF12"],values:[{name:"auto"},{name:"center",description:"The inline contents are centered within the line box."},{name:"justify",description:"The text is justified according to the method specified by the 'text-justify' property."},{name:"left",description:"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text."},{name:"right",description:"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text."}],relevance:50,description:"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.",restrictions:["enum"]},{name:"-moz-text-decoration-color",browsers:["FF6"],relevance:50,description:"Specifies the color of text decoration (underlines overlines, and line-throughs) set on the element with text-decoration-line.",restrictions:["color"]},{name:"-moz-text-decoration-line",browsers:["FF6"],values:[{name:"line-through",description:"Each line of text has a line through the middle."},{name:"none",description:"Neither produces nor inhibits text decoration."},{name:"overline",description:"Each line of text has a line above it."},{name:"underline",description:"Each line of text is underlined."}],relevance:50,description:"Specifies what line decorations, if any, are added to the element.",restrictions:["enum"]},{name:"-moz-text-decoration-style",browsers:["FF6"],values:[{name:"dashed",description:"Produces a dashed line style."},{name:"dotted",description:"Produces a dotted line."},{name:"double",description:"Produces a double line."},{name:"none",description:"Produces no line."},{name:"solid",description:"Produces a solid line."},{name:"wavy",description:"Produces a wavy line."}],relevance:50,description:"Specifies the line style for underline, line-through and overline text decoration.",restrictions:["enum"]},{name:"-moz-text-size-adjust",browsers:["FF"],values:[{name:"auto",description:"Renderers must use the default size adjustment when displaying on a small device."},{name:"none",description:"Renderers must not do size adjustment when displaying on a small device."}],relevance:50,description:"Specifies a size adjustment for displaying text content in mobile browsers.",restrictions:["enum","percentage"]},{name:"-moz-transform",browsers:["FF3.5"],values:[{name:"matrix()",description:"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]"},{name:"matrix3d()",description:"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order."},{name:"none"},{name:"perspective",description:"Specifies a perspective projection matrix."},{name:"rotate()",description:"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property."},{name:"rotate3d()",description:"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters."},{name:"rotateX('angle')",description:"Specifies a clockwise rotation by the given angle about the X axis."},{name:"rotateY('angle')",description:"Specifies a clockwise rotation by the given angle about the Y axis."},{name:"rotateZ('angle')",description:"Specifies a clockwise rotation by the given angle about the Z axis."},{name:"scale()",description:"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first."},{name:"scale3d()",description:"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters."},{name:"scaleX()",description:"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter."},{name:"scaleY()",description:"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter."},{name:"scaleZ()",description:"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter."},{name:"skew()",description:"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis)."},{name:"skewX()",description:"Specifies a skew transformation along the X axis by the given angle."},{name:"skewY()",description:"Specifies a skew transformation along the Y axis by the given angle."},{name:"translate()",description:"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter."},{name:"translate3d()",description:"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively."},{name:"translateX()",description:"Specifies a translation by the given amount in the X direction."},{name:"translateY()",description:"Specifies a translation by the given amount in the Y direction."},{name:"translateZ()",description:"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0."}],relevance:50,description:"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.",restrictions:["enum"]},{name:"-moz-transform-origin",browsers:["FF3.5"],relevance:50,description:"Establishes the origin of transformation for an element.",restrictions:["position","length","percentage"]},{name:"-moz-transition",browsers:["FF4"],values:[{name:"all",description:"Every property that is able to undergo a transition will do so."},{name:"none",description:"No property will transition."}],relevance:50,description:"Shorthand property combines four of the transition properties into a single property.",restrictions:["time","property","timing-function","enum"]},{name:"-moz-transition-delay",browsers:["FF4"],relevance:50,description:"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.",restrictions:["time"]},{name:"-moz-transition-duration",browsers:["FF4"],relevance:50,description:"Specifies how long the transition from the old value to the new value should take.",restrictions:["time"]},{name:"-moz-transition-property",browsers:["FF4"],values:[{name:"all",description:"Every property that is able to undergo a transition will do so."},{name:"none",description:"No property will transition."}],relevance:50,description:"Specifies the name of the CSS property to which the transition is applied.",restrictions:["property"]},{name:"-moz-transition-timing-function",browsers:["FF4"],relevance:50,description:"Describes how the intermediate values used during a transition will be calculated.",restrictions:["timing-function"]},{name:"-moz-user-focus",browsers:["FF1"],values:[{name:"ignore"},{name:"normal"}],status:"nonstandard",syntax:"ignore | normal | select-after | select-before | select-menu | select-same | select-all | none",relevance:0,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-user-focus"}],description:"Used to indicate whether the element can have focus."},{name:"-moz-user-select",browsers:["FF1.5"],values:[{name:"all"},{name:"element"},{name:"elements"},{name:"-moz-all"},{name:"-moz-none"},{name:"none"},{name:"text"},{name:"toggle"}],relevance:50,description:"Controls the appearance of selection.",restrictions:["enum"]},{name:"-ms-accelerator",browsers:["E","IE10"],values:[{name:"false",description:"The element does not contain an accelerator key sequence."},{name:"true",description:"The element contains an accelerator key sequence."}],status:"nonstandard",syntax:"false | true",relevance:0,description:"IE only. Has the ability to turn off its system underlines for accelerator keys until the ALT key is pressed",restrictions:["enum"]},{name:"-ms-behavior",browsers:["IE8"],relevance:50,description:"IE only. Used to extend behaviors of the browser",restrictions:["url"]},{name:"-ms-block-progression",browsers:["IE8"],values:[{name:"bt",description:"Bottom-to-top block flow. Layout is horizontal."},{name:"lr",description:"Left-to-right direction. The flow orientation is vertical."},{name:"rl",description:"Right-to-left direction. The flow orientation is vertical."},{name:"tb",description:"Top-to-bottom direction. The flow orientation is horizontal."}],status:"nonstandard",syntax:"tb | rl | bt | lr",relevance:0,description:"Sets the block-progression value and the flow orientation",restrictions:["enum"]},{name:"-ms-content-zoom-chaining",browsers:["E","IE10"],values:[{name:"chained",description:"The nearest zoomable parent element begins zooming when the user hits a zoom limit during a manipulation. No bounce effect is shown."},{name:"none",description:"A bounce effect is shown when the user hits a zoom limit during a manipulation."}],status:"nonstandard",syntax:"none | chained",relevance:0,description:"Specifies the zoom behavior that occurs when a user hits the zoom limit during a manipulation."},{name:"-ms-content-zooming",browsers:["E","IE10"],values:[{name:"none",description:"The element is not zoomable."},{name:"zoom",description:"The element is zoomable."}],status:"nonstandard",syntax:"none | zoom",relevance:0,description:"Specifies whether zooming is enabled.",restrictions:["enum"]},{name:"-ms-content-zoom-limit",browsers:["E","IE10"],status:"nonstandard",syntax:"<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>",relevance:0,description:"Shorthand property for the -ms-content-zoom-limit-min and -ms-content-zoom-limit-max properties.",restrictions:["percentage"]},{name:"-ms-content-zoom-limit-max",browsers:["E","IE10"],status:"nonstandard",syntax:"<percentage>",relevance:0,description:"Specifies the maximum zoom factor.",restrictions:["percentage"]},{name:"-ms-content-zoom-limit-min",browsers:["E","IE10"],status:"nonstandard",syntax:"<percentage>",relevance:0,description:"Specifies the minimum zoom factor.",restrictions:["percentage"]},{name:"-ms-content-zoom-snap",browsers:["E","IE10"],values:[{name:"mandatory",description:"Indicates that the motion of the content after the contact is picked up is always adjusted so that it lands on a snap-point."},{name:"none",description:"Indicates that zooming is unaffected by any defined snap-points."},{name:"proximity",description:'Indicates that the motion of the content after the contact is picked up may be adjusted if the content would normally stop "close enough" to a snap-point.'},{name:"snapInterval(100%, 100%)",description:"Specifies where the snap-points will be placed."},{name:"snapList()",description:"Specifies the position of individual snap-points as a comma-separated list of zoom factors."}],status:"nonstandard",syntax:"<'-ms-content-zoom-snap-type'> || <'-ms-content-zoom-snap-points'>",relevance:0,description:"Shorthand property for the -ms-content-zoom-snap-type and -ms-content-zoom-snap-points properties."},{name:"-ms-content-zoom-snap-points",browsers:["E","IE10"],values:[{name:"snapInterval(100%, 100%)",description:"Specifies where the snap-points will be placed."},{name:"snapList()",description:"Specifies the position of individual snap-points as a comma-separated list of zoom factors."}],status:"nonstandard",syntax:"snapInterval( <percentage>, <percentage> ) | snapList( <percentage># )",relevance:0,description:"Defines where zoom snap-points are located."},{name:"-ms-content-zoom-snap-type",browsers:["E","IE10"],values:[{name:"mandatory",description:"Indicates that the motion of the content after the contact is picked up is always adjusted so that it lands on a snap-point."},{name:"none",description:"Indicates that zooming is unaffected by any defined snap-points."},{name:"proximity",description:'Indicates that the motion of the content after the contact is picked up may be adjusted if the content would normally stop "close enough" to a snap-point.'}],status:"nonstandard",syntax:"none | proximity | mandatory",relevance:0,description:"Specifies how zooming is affected by defined snap-points.",restrictions:["enum"]},{name:"-ms-filter",browsers:["IE8-9"],status:"nonstandard",syntax:"<string>",relevance:0,description:"IE only. Used to produce visual effects.",restrictions:["string"]},{name:"-ms-flex",browsers:["IE10"],values:[{name:"auto",description:"Retrieves the value of the main size property as the used 'flex-basis'."},{name:"none",description:"Expands to '0 0 auto'."}],relevance:50,description:"specifies the parameters of a flexible length: the positive and negative flexibility, and the preferred size.",restrictions:["length","number","percentage"]},{name:"-ms-flex-align",browsers:["IE10"],values:[{name:"baseline",description:"If the flex item\u2019s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item\u2019s margin box is centered in the cross axis within the line."},{name:"end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"start",description:"The cross-start margin edge of the flexbox item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flexbox item is anything other than 'auto', this value is identical to 'start'."}],relevance:50,description:"Aligns flex items along the cross axis of the current line of the flex container.",restrictions:["enum"]},{name:"-ms-flex-direction",browsers:["IE10"],values:[{name:"column",description:"The flex container\u2019s main axis has the same orientation as the block axis of the current writing mode."},{name:"column-reverse",description:"Same as 'column', except the main-start and main-end directions are swapped."},{name:"row",description:"The flex container\u2019s main axis has the same orientation as the inline axis of the current writing mode."},{name:"row-reverse",description:"Same as 'row', except the main-start and main-end directions are swapped."}],relevance:50,description:"Specifies how flex items are placed in the flex container, by setting the direction of the flex container\u2019s main axis.",restrictions:["enum"]},{name:"-ms-flex-flow",browsers:["IE10"],values:[{name:"column",description:"The flex container\u2019s main axis has the same orientation as the block axis of the current writing mode."},{name:"column-reverse",description:"Same as 'column', except the main-start and main-end directions are swapped."},{name:"nowrap",description:"The flex container is single-line."},{name:"row",description:"The flex container\u2019s main axis has the same orientation as the inline axis of the current writing mode."},{name:"wrap",description:"The flexbox is multi-line."},{name:"wrap-reverse",description:"Same as 'wrap', except the cross-start and cross-end directions are swapped."}],relevance:50,description:"Specifies how flexbox items are placed in the flexbox.",restrictions:["enum"]},{name:"-ms-flex-item-align",browsers:["IE10"],values:[{name:"auto",description:"Computes to the value of 'align-items' on the element\u2019s parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself."},{name:"baseline",description:"If the flex item\u2019s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item\u2019s margin box is centered in the cross axis within the line."},{name:"end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"start",description:"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."}],relevance:50,description:"Allows the default alignment along the cross axis to be overridden for individual flex items.",restrictions:["enum"]},{name:"-ms-flex-line-pack",browsers:["IE10"],values:[{name:"center",description:"Lines are packed toward the center of the flex container."},{name:"distribute",description:"Lines are evenly distributed in the flex container, with half-size spaces on either end."},{name:"end",description:"Lines are packed toward the end of the flex container."},{name:"justify",description:"Lines are evenly distributed in the flex container."},{name:"start",description:"Lines are packed toward the start of the flex container."},{name:"stretch",description:"Lines stretch to take up the remaining space."}],relevance:50,description:"Aligns a flex container\u2019s lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.",restrictions:["enum"]},{name:"-ms-flex-order",browsers:["IE10"],relevance:50,description:"Controls the order in which children of a flex container appear within the flex container, by assigning them to ordinal groups.",restrictions:["integer"]},{name:"-ms-flex-pack",browsers:["IE10"],values:[{name:"center",description:"Flex items are packed toward the center of the line."},{name:"distribute",description:"Flex items are evenly distributed in the line, with half-size spaces on either end."},{name:"end",description:"Flex items are packed toward the end of the line."},{name:"justify",description:"Flex items are evenly distributed in the line."},{name:"start",description:"Flex items are packed toward the start of the line."}],relevance:50,description:"Aligns flex items along the main axis of the current line of the flex container.",restrictions:["enum"]},{name:"-ms-flex-wrap",browsers:["IE10"],values:[{name:"nowrap",description:"The flex container is single-line."},{name:"wrap",description:"The flexbox is multi-line."},{name:"wrap-reverse",description:"Same as 'wrap', except the cross-start and cross-end directions are swapped."}],relevance:50,description:"Controls whether the flex container is single-line or multi-line, and the direction of the cross-axis, which determines the direction new lines are stacked in.",restrictions:["enum"]},{name:"-ms-flow-from",browsers:["E","IE10"],values:[{name:"none",description:"The block container is not a CSS Region."}],status:"nonstandard",syntax:"[ none | <custom-ident> ]#",relevance:0,description:"Makes a block container a region and associates it with a named flow.",restrictions:["identifier"]},{name:"-ms-flow-into",browsers:["E","IE10"],values:[{name:"none",description:"The element is not moved to a named flow and normal CSS processing takes place."}],status:"nonstandard",syntax:"[ none | <custom-ident> ]#",relevance:0,description:"Places an element or its contents into a named flow.",restrictions:["identifier"]},{name:"-ms-grid-column",browsers:["E12","IE10"],values:[{name:"auto"},{name:"end"},{name:"start"}],relevance:50,description:"Used to place grid items and explicitly defined grid cells in the Grid.",restrictions:["integer","string","enum"]},{name:"-ms-grid-column-align",browsers:["E12","IE10"],values:[{name:"center",description:"Places the center of the Grid Item's margin box at the center of the Grid Item's column."},{name:"end",description:"Aligns the end edge of the Grid Item's margin box to the end edge of the Grid Item's column."},{name:"start",description:"Aligns the starting edge of the Grid Item's margin box to the starting edge of the Grid Item's column."},{name:"stretch",description:"Ensures that the Grid Item's margin box is equal to the size of the Grid Item's column."}],relevance:50,description:"Aligns the columns in a grid.",restrictions:["enum"]},{name:"-ms-grid-columns",browsers:["E","IE10"],status:"nonstandard",syntax:"none | <track-list> | <auto-track-list>",relevance:0,description:"Lays out the columns of the grid."},{name:"-ms-grid-column-span",browsers:["E12","IE10"],relevance:50,description:"Specifies the number of columns to span.",restrictions:["integer"]},{name:"-ms-grid-layer",browsers:["E","IE10"],relevance:50,description:"Grid-layer is similar in concept to z-index, but avoids overloading the meaning of the z-index property, which is applicable only to positioned elements.",restrictions:["integer"]},{name:"-ms-grid-row",browsers:["E12","IE10"],values:[{name:"auto"},{name:"end"},{name:"start"}],relevance:50,description:"grid-row is used to place grid items and explicitly defined grid cells in the Grid.",restrictions:["integer","string","enum"]},{name:"-ms-grid-row-align",browsers:["E12","IE10"],values:[{name:"center",description:"Places the center of the Grid Item's margin box at the center of the Grid Item's row."},{name:"end",description:"Aligns the end edge of the Grid Item's margin box to the end edge of the Grid Item's row."},{name:"start",description:"Aligns the starting edge of the Grid Item's margin box to the starting edge of the Grid Item's row."},{name:"stretch",description:"Ensures that the Grid Item's margin box is equal to the size of the Grid Item's row."}],relevance:50,description:"Aligns the rows in a grid.",restrictions:["enum"]},{name:"-ms-grid-rows",browsers:["E","IE10"],status:"nonstandard",syntax:"none | <track-list> | <auto-track-list>",relevance:0,description:"Lays out the columns of the grid."},{name:"-ms-grid-row-span",browsers:["E12","IE10"],relevance:50,description:"Specifies the number of rows to span.",restrictions:["integer"]},{name:"-ms-high-contrast-adjust",browsers:["E","IE10"],values:[{name:"auto",description:"Properties will be adjusted as applicable."},{name:"none",description:"No adjustments will be applied."}],status:"nonstandard",syntax:"auto | none",relevance:0,description:"Specifies if properties should be adjusted in high contrast mode.",restrictions:["enum"]},{name:"-ms-hyphenate-limit-chars",browsers:["E","IE10"],values:[{name:"auto",description:"The user agent chooses a value that adapts to the current layout."}],status:"nonstandard",syntax:"auto | <integer>{1,3}",relevance:0,description:"Specifies the minimum number of characters in a hyphenated word.",restrictions:["integer"]},{name:"-ms-hyphenate-limit-lines",browsers:["E","IE10"],values:[{name:"no-limit",description:"There is no limit."}],status:"nonstandard",syntax:"no-limit | <integer>",relevance:0,description:"Indicates the maximum number of successive hyphenated lines in an element.",restrictions:["integer"]},{name:"-ms-hyphenate-limit-zone",browsers:["E","IE10"],status:"nonstandard",syntax:"<percentage> | <length>",relevance:0,description:"Specifies the maximum amount of unfilled space (before justification) that may be left in the line box before hyphenation is triggered to pull part of a word from the next line back up into the current line.",restrictions:["percentage","length"]},{name:"-ms-hyphens",browsers:["E","IE10"],values:[{name:"auto",description:"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word."},{name:"manual",description:"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities"},{name:"none",description:"Words are not broken at line breaks, even if characters inside the word suggest line break points."}],relevance:50,description:"Controls whether hyphenation is allowed to create more break opportunities within a line of text.",restrictions:["enum"]},{name:"-ms-ime-mode",browsers:["IE10"],values:[{name:"active",description:"The input method editor is initially active; text entry is performed using it unless the user specifically dismisses it."},{name:"auto",description:"No change is made to the current input method editor state. This is the default."},{name:"disabled",description:"The input method editor is disabled and may not be activated by the user."},{name:"inactive",description:"The input method editor is initially inactive, but the user may activate it if they wish."},{name:"normal",description:"The IME state should be normal; this value can be used in a user style sheet to override the page setting."}],relevance:50,description:"Controls the state of the input method editor for text fields.",restrictions:["enum"]},{name:"-ms-interpolation-mode",browsers:["IE7"],values:[{name:"bicubic"},{name:"nearest-neighbor"}],relevance:50,description:"Gets or sets the interpolation (resampling) method used to stretch images.",restrictions:["enum"]},{name:"-ms-layout-grid",browsers:["E","IE10"],values:[{name:"char",description:"Any of the range of character values available to the -ms-layout-grid-char property."},{name:"line",description:"Any of the range of line values available to the -ms-layout-grid-line property."},{name:"mode",description:"Any of the range of mode values available to the -ms-layout-grid-mode property."},{name:"type",description:"Any of the range of type values available to the -ms-layout-grid-type property."}],relevance:50,description:"Sets or retrieves the composite document grid properties that specify the layout of text characters."},{name:"-ms-layout-grid-char",browsers:["E","IE10"],values:[{name:"auto",description:"Largest character in the font of the element is used to set the character grid."},{name:"none",description:"Default. No character grid is set."}],relevance:50,description:"Sets or retrieves the size of the character grid used for rendering the text content of an element.",restrictions:["enum","length","percentage"]},{name:"-ms-layout-grid-line",browsers:["E","IE10"],values:[{name:"auto",description:"Largest character in the font of the element is used to set the character grid."},{name:"none",description:"Default. No grid line is set."}],relevance:50,description:"Sets or retrieves the gridline value used for rendering the text content of an element.",restrictions:["length"]},{name:"-ms-layout-grid-mode",browsers:["E","IE10"],values:[{name:"both",description:"Default. Both the char and line grid modes are enabled. This setting is necessary to fully enable the layout grid on an element."},{name:"char",description:"Only a character grid is used. This is recommended for use with block-level elements, such as a blockquote, where the line grid is intended to be disabled."},{name:"line",description:"Only a line grid is used. This is recommended for use with inline elements, such as a span, to disable the horizontal grid on runs of text that act as a single entity in the grid layout."},{name:"none",description:"No grid is used."}],relevance:50,description:"Gets or sets whether the text layout grid uses two dimensions.",restrictions:["enum"]},{name:"-ms-layout-grid-type",browsers:["E","IE10"],values:[{name:"fixed",description:"Grid used for monospaced layout. All noncursive characters are treated as equal; every character is centered within a single grid space by default."},{name:"loose",description:"Default. Grid used for Japanese and Korean characters."},{name:"strict",description:"Grid used for Chinese, as well as Japanese (Genko) and Korean characters. Only the ideographs, kanas, and wide characters are snapped to the grid."}],relevance:50,description:"Sets or retrieves the type of grid used for rendering the text content of an element.",restrictions:["enum"]},{name:"-ms-line-break",browsers:["E","IE10"],values:[{name:"auto",description:"The UA determines the set of line-breaking restrictions to use for CJK scripts, and it may vary the restrictions based on the length of the line; e.g., use a less restrictive set of line-break rules for short lines."},{name:"keep-all",description:"Sequences of CJK characters can no longer break on implied break points. This option should only be used where the presence of word separator characters still creates line-breaking opportunities, as in Korean."},{name:"newspaper",description:"Breaks CJK scripts using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers."},{name:"normal",description:"Breaks CJK scripts using a normal set of line-breaking rules."},{name:"strict",description:"Breaks CJK scripts using a more restrictive set of line-breaking rules than 'normal'."}],relevance:50,description:"Specifies what set of line breaking restrictions are in effect within the element.",restrictions:["enum"]},{name:"-ms-overflow-style",browsers:["E","IE10"],values:[{name:"auto",description:"No preference, UA should use the first scrolling method in the list that it supports."},{name:"-ms-autohiding-scrollbar",description:"Indicates the element displays auto-hiding scrollbars during mouse interactions and panning indicators during touch and keyboard interactions."},{name:"none",description:"Indicates the element does not display scrollbars or panning indicators, even when its content overflows."},{name:"scrollbar",description:'Scrollbars are typically narrow strips inserted on one or two edges of an element and which often have arrows to click on and a "thumb" to drag up and down (or left and right) to move the contents of the element.'}],status:"nonstandard",syntax:"auto | none | scrollbar | -ms-autohiding-scrollbar",relevance:0,description:"Specify whether content is clipped when it overflows the element's content area.",restrictions:["enum"]},{name:"-ms-perspective",browsers:["IE10"],values:[{name:"none",description:"No perspective transform is applied."}],relevance:50,description:"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.",restrictions:["length"]},{name:"-ms-perspective-origin",browsers:["IE10"],relevance:50,description:"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.",restrictions:["position","percentage","length"]},{name:"-ms-perspective-origin-x",browsers:["IE10"],relevance:50,description:"Establishes the origin for the perspective property. It effectively sets the X position at which the viewer appears to be looking at the children of the element.",restrictions:["position","percentage","length"]},{name:"-ms-perspective-origin-y",browsers:["IE10"],relevance:50,description:"Establishes the origin for the perspective property. It effectively sets the Y position at which the viewer appears to be looking at the children of the element.",restrictions:["position","percentage","length"]},{name:"-ms-progress-appearance",browsers:["IE10"],values:[{name:"bar"},{name:"ring"}],relevance:50,description:"Gets or sets a value that specifies whether a progress control displays as a bar or a ring.",restrictions:["enum"]},{name:"-ms-scrollbar-3dlight-color",browsers:["IE8"],status:"nonstandard",syntax:"<color>",relevance:0,description:"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.",restrictions:["color"]},{name:"-ms-scrollbar-arrow-color",browsers:["IE8"],status:"nonstandard",syntax:"<color>",relevance:0,description:"Determines the color of the arrow elements of a scroll arrow.",restrictions:["color"]},{name:"-ms-scrollbar-base-color",browsers:["IE8"],status:"nonstandard",syntax:"<color>",relevance:0,description:"Determines the color of the main elements of a scroll bar, which include the scroll box, track, and scroll arrows.",restrictions:["color"]},{name:"-ms-scrollbar-darkshadow-color",browsers:["IE8"],status:"nonstandard",syntax:"<color>",relevance:0,description:"Determines the color of the gutter of a scroll bar.",restrictions:["color"]},{name:"-ms-scrollbar-face-color",browsers:["IE8"],status:"nonstandard",syntax:"<color>",relevance:0,description:"Determines the color of the scroll box and scroll arrows of a scroll bar.",restrictions:["color"]},{name:"-ms-scrollbar-highlight-color",browsers:["IE8"],status:"nonstandard",syntax:"<color>",relevance:0,description:"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.",restrictions:["color"]},{name:"-ms-scrollbar-shadow-color",browsers:["IE8"],status:"nonstandard",syntax:"<color>",relevance:0,description:"Determines the color of the bottom and right edges of the scroll box and scroll arrows of a scroll bar.",restrictions:["color"]},{name:"-ms-scrollbar-track-color",browsers:["IE5"],status:"nonstandard",syntax:"<color>",relevance:0,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-track-color"}],description:"Determines the color of the track element of a scroll bar.",restrictions:["color"]},{name:"-ms-scroll-chaining",browsers:["E","IE10"],values:[{name:"chained"},{name:"none"}],status:"nonstandard",syntax:"chained | none",relevance:0,description:"Gets or sets a value that indicates the scrolling behavior that occurs when a user hits the content boundary during a manipulation.",restrictions:["enum","length"]},{name:"-ms-scroll-limit",browsers:["E","IE10"],values:[{name:"auto"}],status:"nonstandard",syntax:"<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>",relevance:0,description:"Gets or sets a shorthand value that sets values for the -ms-scroll-limit-x-min, -ms-scroll-limit-y-min, -ms-scroll-limit-x-max, and -ms-scroll-limit-y-max properties.",restrictions:["length"]},{name:"-ms-scroll-limit-x-max",browsers:["E","IE10"],values:[{name:"auto"}],status:"nonstandard",syntax:"auto | <length>",relevance:0,description:"Gets or sets a value that specifies the maximum value for the scrollLeft property.",restrictions:["length"]},{name:"-ms-scroll-limit-x-min",browsers:["E","IE10"],status:"nonstandard",syntax:"<length>",relevance:0,description:"Gets or sets a value that specifies the minimum value for the scrollLeft property.",restrictions:["length"]},{name:"-ms-scroll-limit-y-max",browsers:["E","IE10"],values:[{name:"auto"}],status:"nonstandard",syntax:"auto | <length>",relevance:0,description:"Gets or sets a value that specifies the maximum value for the scrollTop property.",restrictions:["length"]},{name:"-ms-scroll-limit-y-min",browsers:["E","IE10"],status:"nonstandard",syntax:"<length>",relevance:0,description:"Gets or sets a value that specifies the minimum value for the scrollTop property.",restrictions:["length"]},{name:"-ms-scroll-rails",browsers:["E","IE10"],values:[{name:"none"},{name:"railed"}],status:"nonstandard",syntax:"none | railed",relevance:0,description:"Gets or sets a value that indicates whether or not small motions perpendicular to the primary axis of motion will result in either changes to both the scrollTop and scrollLeft properties or a change to the primary axis (for instance, either the scrollTop or scrollLeft properties will change, but not both).",restrictions:["enum","length"]},{name:"-ms-scroll-snap-points-x",browsers:["E","IE10"],values:[{name:"snapInterval(100%, 100%)"},{name:"snapList()"}],status:"nonstandard",syntax:"snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )",relevance:0,description:"Gets or sets a value that defines where snap-points will be located along the x-axis.",restrictions:["enum"]},{name:"-ms-scroll-snap-points-y",browsers:["E","IE10"],values:[{name:"snapInterval(100%, 100%)"},{name:"snapList()"}],status:"nonstandard",syntax:"snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )",relevance:0,description:"Gets or sets a value that defines where snap-points will be located along the y-axis.",restrictions:["enum"]},{name:"-ms-scroll-snap-type",browsers:["E","IE10"],values:[{name:"none",description:"The visual viewport of this scroll container must ignore snap points, if any, when scrolled."},{name:"mandatory",description:"The visual viewport of this scroll container is guaranteed to rest on a snap point when there are no active scrolling operations."},{name:"proximity",description:"The visual viewport of this scroll container may come to rest on a snap point at the termination of a scroll at the discretion of the UA given the parameters of the scroll."}],status:"nonstandard",syntax:"none | proximity | mandatory",relevance:0,description:"Gets or sets a value that defines what type of snap-point should be used for the current element. There are two type of snap-points, with the primary difference being whether or not the user is guaranteed to always stop on a snap-point.",restrictions:["enum"]},{name:"-ms-scroll-snap-x",browsers:["E","IE10"],values:[{name:"mandatory"},{name:"none"},{name:"proximity"},{name:"snapInterval(100%, 100%)"},{name:"snapList()"}],status:"nonstandard",syntax:"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>",relevance:0,description:"Gets or sets a shorthand value that sets values for the -ms-scroll-snap-type and -ms-scroll-snap-points-x properties.",restrictions:["enum"]},{name:"-ms-scroll-snap-y",browsers:["E","IE10"],values:[{name:"mandatory"},{name:"none"},{name:"proximity"},{name:"snapInterval(100%, 100%)"},{name:"snapList()"}],status:"nonstandard",syntax:"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>",relevance:0,description:"Gets or sets a shorthand value that sets values for the -ms-scroll-snap-type and -ms-scroll-snap-points-y properties.",restrictions:["enum"]},{name:"-ms-scroll-translation",browsers:["E","IE10"],values:[{name:"none"},{name:"vertical-to-horizontal"}],status:"nonstandard",syntax:"none | vertical-to-horizontal",relevance:0,description:"Gets or sets a value that specifies whether vertical-to-horizontal scroll wheel translation occurs on the specified element.",restrictions:["enum"]},{name:"-ms-text-align-last",browsers:["E","IE8"],values:[{name:"auto"},{name:"center",description:"The inline contents are centered within the line box."},{name:"justify",description:"The text is justified according to the method specified by the 'text-justify' property."},{name:"left",description:"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text."},{name:"right",description:"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text."}],relevance:50,description:"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.",restrictions:["enum"]},{name:"-ms-text-autospace",browsers:["E","IE8"],values:[{name:"ideograph-alpha",description:"Creates 1/4em extra spacing between runs of ideographic letters and non-ideographic letters, such as Latin-based, Cyrillic, Greek, Arabic or Hebrew."},{name:"ideograph-numeric",description:"Creates 1/4em extra spacing between runs of ideographic letters and numeric glyphs."},{name:"ideograph-parenthesis",description:"Creates extra spacing between normal (non wide) parenthesis and ideographs."},{name:"ideograph-space",description:"Extends the width of the space character while surrounded by ideographs."},{name:"none",description:"No extra space is created."},{name:"punctuation",description:"Creates extra non-breaking spacing around punctuation as required by language-specific typographic conventions."}],status:"nonstandard",syntax:"none | ideograph-alpha | ideograph-numeric | ideograph-parenthesis | ideograph-space",relevance:0,description:"Determines whether or not a full-width punctuation mark character should be trimmed if it appears at the beginning of a line, so that its 'ink' lines up with the first glyph in the line above and below.",restrictions:["enum"]},{name:"-ms-text-combine-horizontal",browsers:["E","IE11"],values:[{name:"all",description:"Attempt to typeset horizontally all consecutive characters within the box such that they take up the space of a single character within the vertical line box."},{name:"digits",description:"Attempt to typeset horizontally each maximal sequence of consecutive ASCII digits (U+0030\u2013U+0039) that has as many or fewer characters than the specified integer such that it takes up the space of a single character within the vertical line box."},{name:"none",description:"No special processing."}],relevance:50,description:"This property specifies the combination of multiple characters into the space of a single character.",restrictions:["enum","integer"]},{name:"-ms-text-justify",browsers:["E","IE8"],values:[{name:"auto",description:"The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality."},{name:"distribute",description:"Justification primarily changes spacing both at word separators and at grapheme cluster boundaries in all scripts except those in the connected and cursive groups. This value is sometimes used in e.g. Japanese, often with the 'text-align-last' property."},{name:"inter-cluster",description:"Justification primarily changes spacing at word separators and at grapheme cluster boundaries in clustered scripts. This value is typically used for Southeast Asian scripts such as Thai."},{name:"inter-ideograph",description:"Justification primarily changes spacing at word separators and at inter-graphemic boundaries in scripts that use no word spaces. This value is typically used for CJK languages."},{name:"inter-word",description:"Justification primarily changes spacing at word separators. This value is typically used for languages that separate words using spaces, like English or (sometimes) Korean."},{name:"kashida",description:"Justification primarily stretches Arabic and related scripts through the use of kashida or other calligraphic elongation."}],relevance:50,description:"Selects the justification algorithm used when 'text-align' is set to 'justify'. The property applies to block containers, but the UA may (but is not required to) also support it on inline elements.",restrictions:["enum"]},{name:"-ms-text-kashida-space",browsers:["E","IE10"],relevance:50,description:"Sets or retrieves the ratio of kashida expansion to white space expansion when justifying lines of text in the object.",restrictions:["percentage"]},{name:"-ms-text-overflow",browsers:["IE10"],values:[{name:"clip",description:"Clip inline content that overflows. Characters may be only partially rendered."},{name:"ellipsis",description:"Render an ellipsis character (U+2026) to represent clipped inline content."}],relevance:50,description:"Text can overflow for example when it is prevented from wrapping",restrictions:["enum"]},{name:"-ms-text-size-adjust",browsers:["E","IE10"],values:[{name:"auto",description:"Renderers must use the default size adjustment when displaying on a small device."},{name:"none",description:"Renderers must not do size adjustment when displaying on a small device."}],relevance:50,description:"Specifies a size adjustment for displaying text content in mobile browsers.",restrictions:["enum","percentage"]},{name:"-ms-text-underline-position",browsers:["E","IE10"],values:[{name:"alphabetic",description:"The underline is aligned with the alphabetic baseline. In this case the underline is likely to cross some descenders."},{name:"auto",description:"The user agent may use any algorithm to determine the underline's position. In horizontal line layout, the underline should be aligned as for alphabetic. In vertical line layout, if the language is set to Japanese or Korean, the underline should be aligned as for over."},{name:"over",description:"The underline is aligned with the 'top' (right in vertical writing) edge of the element's em-box. In this mode, an overline also switches sides."},{name:"under",description:"The underline is aligned with the 'bottom' (left in vertical writing) edge of the element's em-box. In this case the underline usually does not cross the descenders. This is sometimes called 'accounting' underline."}],relevance:50,description:"Sets the position of an underline specified on the same element: it does not affect underlines specified by ancestor elements.This property is typically used in vertical writing contexts such as in Japanese documents where it often desired to have the underline appear 'over' (to the right of) the affected run of text",restrictions:["enum"]},{name:"-ms-touch-action",browsers:["IE10"],values:[{name:"auto",description:"The element is a passive element, with several exceptions."},{name:"double-tap-zoom",description:"The element will zoom on double-tap."},{name:"manipulation",description:"The element is a manipulation-causing element."},{name:"none",description:"The element is a manipulation-blocking element."},{name:"pan-x",description:"The element permits touch-driven panning on the horizontal axis. The touch pan is performed on the nearest ancestor with horizontally scrollable content."},{name:"pan-y",description:"The element permits touch-driven panning on the vertical axis. The touch pan is performed on the nearest ancestor with vertically scrollable content."},{name:"pinch-zoom",description:"The element permits pinch-zooming. The pinch-zoom is performed on the nearest ancestor with zoomable content."}],relevance:50,description:"Gets or sets a value that indicates whether and how a given region can be manipulated by the user.",restrictions:["enum"]},{name:"-ms-touch-select",browsers:["E","IE10"],values:[{name:"grippers",description:"Grippers are always on."},{name:"none",description:"Grippers are always off."}],status:"nonstandard",syntax:"grippers | none",relevance:0,description:"Gets or sets a value that toggles the 'gripper' visual elements that enable touch text selection.",restrictions:["enum"]},{name:"-ms-transform",browsers:["IE9-9"],values:[{name:"matrix()",description:"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]"},{name:"matrix3d()",description:"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order."},{name:"none"},{name:"rotate()",description:"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property."},{name:"rotate3d()",description:"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters."},{name:"rotateX('angle')",description:"Specifies a clockwise rotation by the given angle about the X axis."},{name:"rotateY('angle')",description:"Specifies a clockwise rotation by the given angle about the Y axis."},{name:"rotateZ('angle')",description:"Specifies a clockwise rotation by the given angle about the Z axis."},{name:"scale()",description:"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first."},{name:"scale3d()",description:"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters."},{name:"scaleX()",description:"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter."},{name:"scaleY()",description:"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter."},{name:"scaleZ()",description:"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter."},{name:"skew()",description:"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis)."},{name:"skewX()",description:"Specifies a skew transformation along the X axis by the given angle."},{name:"skewY()",description:"Specifies a skew transformation along the Y axis by the given angle."},{name:"translate()",description:"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter."},{name:"translate3d()",description:"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively."},{name:"translateX()",description:"Specifies a translation by the given amount in the X direction."},{name:"translateY()",description:"Specifies a translation by the given amount in the Y direction."},{name:"translateZ()",description:"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0."}],relevance:50,description:"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.",restrictions:["enum"]},{name:"-ms-transform-origin",browsers:["IE9-9"],relevance:50,description:"Establishes the origin of transformation for an element.",restrictions:["position","length","percentage"]},{name:"-ms-transform-origin-x",browsers:["IE10"],relevance:50,description:"The x coordinate of the origin for transforms applied to an element with respect to its border box.",restrictions:["length","percentage"]},{name:"-ms-transform-origin-y",browsers:["IE10"],relevance:50,description:"The y coordinate of the origin for transforms applied to an element with respect to its border box.",restrictions:["length","percentage"]},{name:"-ms-transform-origin-z",browsers:["IE10"],relevance:50,description:"The z coordinate of the origin for transforms applied to an element with respect to its border box.",restrictions:["length","percentage"]},{name:"-ms-user-select",browsers:["E","IE10"],values:[{name:"element"},{name:"none"},{name:"text"}],status:"nonstandard",syntax:"none | element | text",relevance:0,description:"Controls the appearance of selection.",restrictions:["enum"]},{name:"-ms-word-break",browsers:["IE8"],values:[{name:"break-all",description:"Lines may break between any two grapheme clusters for non-CJK scripts."},{name:"keep-all",description:"Block characters can no longer create implied break points."},{name:"normal",description:"Breaks non-CJK scripts according to their own rules."}],relevance:50,description:"Specifies line break opportunities for non-CJK scripts.",restrictions:["enum"]},{name:"-ms-word-wrap",browsers:["IE8"],values:[{name:"break-word",description:"An unbreakable 'word' may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line."},{name:"normal",description:"Lines may break only at allowed break points."}],relevance:50,description:"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit.",restrictions:["enum"]},{name:"-ms-wrap-flow",browsers:["E","IE10"],values:[{name:"auto",description:"For floats an exclusion is created, for all other elements an exclusion is not created."},{name:"both",description:"Inline flow content can flow on all sides of the exclusion."},{name:"clear",description:"Inline flow content can only wrap on top and bottom of the exclusion and must leave the areas to the start and end edges of the exclusion box empty."},{name:"end",description:"Inline flow content can wrap on the end side of the exclusion area but must leave the area to the start edge of the exclusion area empty."},{name:"maximum",description:"Inline flow content can wrap on the side of the exclusion with the largest available space for the given line, and must leave the other side of the exclusion empty."},{name:"minimum",description:"Inline flow content can flow around the edge of the exclusion with the smallest available space within the flow content\u2019s containing block, and must leave the other edge of the exclusion empty."},{name:"start",description:"Inline flow content can wrap on the start edge of the exclusion area but must leave the area to end edge of the exclusion area empty."}],status:"nonstandard",syntax:"auto | both | start | end | maximum | clear",relevance:0,description:"An element becomes an exclusion when its 'wrap-flow' property has a computed value other than 'auto'.",restrictions:["enum"]},{name:"-ms-wrap-margin",browsers:["E","IE10"],status:"nonstandard",syntax:"<length>",relevance:0,description:"Gets or sets a value that is used to offset the inner wrap shape from other shapes.",restrictions:["length","percentage"]},{name:"-ms-wrap-through",browsers:["E","IE10"],values:[{name:"none",description:"The exclusion element does not inherit its parent node's wrapping context. Its descendants are only subject to exclusion shapes defined inside the element."},{name:"wrap",description:"The exclusion element inherits its parent node's wrapping context. Its descendant inline content wraps around exclusions defined outside the element."}],status:"nonstandard",syntax:"wrap | none",relevance:0,description:"Specifies if an element inherits its parent wrapping context. In other words if it is subject to the exclusions defined outside the element.",restrictions:["enum"]},{name:"-ms-writing-mode",browsers:["IE8"],values:[{name:"bt-lr"},{name:"bt-rl"},{name:"lr-bt"},{name:"lr-tb"},{name:"rl-bt"},{name:"rl-tb"},{name:"tb-lr"},{name:"tb-rl"}],relevance:50,description:"Shorthand property for both 'direction' and 'block-progression'.",restrictions:["enum"]},{name:"-ms-zoom",browsers:["IE8"],values:[{name:"normal"}],relevance:50,description:"Sets or retrieves the magnification scale of the object.",restrictions:["enum","integer","number","percentage"]},{name:"-ms-zoom-animation",browsers:["IE10"],values:[{name:"default"},{name:"none"}],relevance:50,description:"Gets or sets a value that indicates whether an animation is used when zooming.",restrictions:["enum"]},{name:"nav-down",browsers:["O9.5"],values:[{name:"auto",description:"The user agent automatically determines which element to navigate the focus to in response to directional navigational input."},{name:"current",description:"Indicates that the user agent should target the frame that the element is in."},{name:"root",description:"Indicates that the user agent should target the full window."}],relevance:50,description:"Provides an way to control directional focus navigation.",restrictions:["enum","identifier","string"]},{name:"nav-index",browsers:["O9.5"],values:[{name:"auto",description:"The element's sequential navigation order is assigned automatically by the user agent."}],relevance:50,description:"Provides an input-method-neutral way of specifying the sequential navigation order (also known as 'tabbing order').",restrictions:["number"]},{name:"nav-left",browsers:["O9.5"],values:[{name:"auto",description:"The user agent automatically determines which element to navigate the focus to in response to directional navigational input."},{name:"current",description:"Indicates that the user agent should target the frame that the element is in."},{name:"root",description:"Indicates that the user agent should target the full window."}],relevance:50,description:"Provides an way to control directional focus navigation.",restrictions:["enum","identifier","string"]},{name:"nav-right",browsers:["O9.5"],values:[{name:"auto",description:"The user agent automatically determines which element to navigate the focus to in response to directional navigational input."},{name:"current",description:"Indicates that the user agent should target the frame that the element is in."},{name:"root",description:"Indicates that the user agent should target the full window."}],relevance:50,description:"Provides an way to control directional focus navigation.",restrictions:["enum","identifier","string"]},{name:"nav-up",browsers:["O9.5"],values:[{name:"auto",description:"The user agent automatically determines which element to navigate the focus to in response to directional navigational input."},{name:"current",description:"Indicates that the user agent should target the frame that the element is in."},{name:"root",description:"Indicates that the user agent should target the full window."}],relevance:50,description:"Provides an way to control directional focus navigation.",restrictions:["enum","identifier","string"]},{name:"negative",browsers:["FF33"],syntax:"<symbol> <symbol>?",relevance:50,description:"@counter-style descriptor. Defines how to alter the representation when the counter value is negative.",restrictions:["image","identifier","string"]},{name:"-o-animation",browsers:["O12"],values:[{name:"alternate",description:"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction."},{name:"alternate-reverse",description:"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction."},{name:"backwards",description:"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'."},{name:"both",description:"Both forwards and backwards fill modes are applied."},{name:"forwards",description:"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes."},{name:"infinite",description:"Causes the animation to repeat forever."},{name:"none",description:"No animation is performed"},{name:"normal",description:"Normal playback."},{name:"reverse",description:"All iterations of the animation are played in the reverse direction from the way they were specified."}],relevance:50,description:"Shorthand property combines six of the animation properties into a single property.",restrictions:["time","enum","timing-function","identifier","number"]},{name:"-o-animation-delay",browsers:["O12"],relevance:50,description:"Defines when the animation will start.",restrictions:["time"]},{name:"-o-animation-direction",browsers:["O12"],values:[{name:"alternate",description:"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction."},{name:"alternate-reverse",description:"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction."},{name:"normal",description:"Normal playback."},{name:"reverse",description:"All iterations of the animation are played in the reverse direction from the way they were specified."}],relevance:50,description:"Defines whether or not the animation should play in reverse on alternate cycles.",restrictions:["enum"]},{name:"-o-animation-duration",browsers:["O12"],relevance:50,description:"Defines the length of time that an animation takes to complete one cycle.",restrictions:["time"]},{name:"-o-animation-fill-mode",browsers:["O12"],values:[{name:"backwards",description:"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'."},{name:"both",description:"Both forwards and backwards fill modes are applied."},{name:"forwards",description:"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes."},{name:"none",description:"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes."}],relevance:50,description:"Defines what values are applied by the animation outside the time it is executing.",restrictions:["enum"]},{name:"-o-animation-iteration-count",browsers:["O12"],values:[{name:"infinite",description:"Causes the animation to repeat forever."}],relevance:50,description:"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.",restrictions:["number","enum"]},{name:"-o-animation-name",browsers:["O12"],values:[{name:"none",description:"No animation is performed"}],relevance:50,description:"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.",restrictions:["identifier","enum"]},{name:"-o-animation-play-state",browsers:["O12"],values:[{name:"paused",description:"A running animation will be paused."},{name:"running",description:"Resume playback of a paused animation."}],relevance:50,description:"Defines whether the animation is running or paused.",restrictions:["enum"]},{name:"-o-animation-timing-function",browsers:["O12"],relevance:50,description:"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.",restrictions:["timing-function"]},{name:"object-fit",browsers:["E16","FF36","S10","C31","O19"],values:[{name:"contain",description:"The replaced content is sized to maintain its aspect ratio while fitting within the element\u2019s content box: its concrete object size is resolved as a contain constraint against the element's used width and height."},{name:"cover",description:"The replaced content is sized to maintain its aspect ratio while filling the element's entire content box: its concrete object size is resolved as a cover constraint against the element\u2019s used width and height."},{name:"fill",description:"The replaced content is sized to fill the element\u2019s content box: the object's concrete object size is the element's used width and height."},{name:"none",description:"The replaced content is not resized to fit inside the element's content box"},{name:"scale-down",description:"Size the content as if \u2018none\u2019 or \u2018contain\u2019 were specified, whichever would result in a smaller concrete object size."}],syntax:"fill | contain | cover | none | scale-down",relevance:64,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/object-fit"}],description:"Specifies how the contents of a replaced element should be scaled relative to the box established by its used height and width.",restrictions:["enum"]},{name:"object-position",browsers:["E16","FF36","S10","C31","O19"],syntax:"<position>",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/object-position"}],description:"Determines the alignment of the replaced element inside its box.",restrictions:["position","length","percentage"]},{name:"-o-border-image",browsers:["O11.6"],values:[{name:"auto",description:"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead."},{name:"fill",description:"Causes the middle part of the border-image to be preserved."},{name:"none"},{name:"repeat",description:"The image is tiled (repeated) to fill the area."},{name:"round",description:"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does."},{name:"space",description:"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles."},{name:"stretch",description:"The image is stretched to fill the area."}],relevance:50,description:"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.",restrictions:["length","percentage","number","image","enum"]},{name:"-o-object-fit",browsers:["O10.6"],values:[{name:"contain",description:"The replaced content is sized to maintain its aspect ratio while fitting within the element\u2019s content box: its concrete object size is resolved as a contain constraint against the element's used width and height."},{name:"cover",description:"The replaced content is sized to maintain its aspect ratio while filling the element's entire content box: its concrete object size is resolved as a cover constraint against the element\u2019s used width and height."},{name:"fill",description:"The replaced content is sized to fill the element\u2019s content box: the object's concrete object size is the element's used width and height."},{name:"none",description:"The replaced content is not resized to fit inside the element's content box"},{name:"scale-down",description:"Size the content as if \u2018none\u2019 or \u2018contain\u2019 were specified, whichever would result in a smaller concrete object size."}],relevance:50,description:"Specifies how the contents of a replaced element should be scaled relative to the box established by its used height and width.",restrictions:["enum"]},{name:"-o-object-position",browsers:["O10.6"],relevance:50,description:"Determines the alignment of the replaced element inside its box.",restrictions:["position","length","percentage"]},{name:"opacity",syntax:"<alpha-value>",relevance:93,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/opacity"}],description:"Opacity of an element's text, where 1 is opaque and 0 is entirely transparent.",restrictions:["number(0-1)"]},{name:"order",syntax:"<integer>",relevance:62,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/order"}],description:"Controls the order in which children of a flex container appear within the flex container, by assigning them to ordinal groups.",restrictions:["integer"]},{name:"orphans",browsers:["E12","S1.3","C25","IE8","O9.2"],syntax:"<integer>",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/orphans"}],description:"Specifies the minimum number of line boxes in a block container that must be left in a fragment before a fragmentation break.",restrictions:["integer"]},{name:"-o-table-baseline",browsers:["O9.6"],relevance:50,description:"Determines which row of a inline-table should be used as baseline of inline-table.",restrictions:["integer"]},{name:"-o-tab-size",browsers:["O10.6"],relevance:50,description:"This property determines the width of the tab character (U+0009), in space characters (U+0020), when rendered.",restrictions:["integer","length"]},{name:"-o-text-overflow",browsers:["O10"],values:[{name:"clip",description:"Clip inline content that overflows. Characters may be only partially rendered."},{name:"ellipsis",description:"Render an ellipsis character (U+2026) to represent clipped inline content."}],relevance:50,description:"Text can overflow for example when it is prevented from wrapping",restrictions:["enum"]},{name:"-o-transform",browsers:["O10.5"],values:[{name:"matrix()",description:"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]"},{name:"matrix3d()",description:"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order."},{name:"none"},{name:"rotate()",description:"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property."},{name:"rotate3d()",description:"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters."},{name:"rotateX('angle')",description:"Specifies a clockwise rotation by the given angle about the X axis."},{name:"rotateY('angle')",description:"Specifies a clockwise rotation by the given angle about the Y axis."},{name:"rotateZ('angle')",description:"Specifies a clockwise rotation by the given angle about the Z axis."},{name:"scale()",description:"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first."},{name:"scale3d()",description:"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters."},{name:"scaleX()",description:"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter."},{name:"scaleY()",description:"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter."},{name:"scaleZ()",description:"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter."},{name:"skew()",description:"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis)."},{name:"skewX()",description:"Specifies a skew transformation along the X axis by the given angle."},{name:"skewY()",description:"Specifies a skew transformation along the Y axis by the given angle."},{name:"translate()",description:"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter."},{name:"translate3d()",description:"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively."},{name:"translateX()",description:"Specifies a translation by the given amount in the X direction."},{name:"translateY()",description:"Specifies a translation by the given amount in the Y direction."},{name:"translateZ()",description:"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0."}],relevance:50,description:"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.",restrictions:["enum"]},{name:"-o-transform-origin",browsers:["O10.5"],relevance:50,description:"Establishes the origin of transformation for an element.",restrictions:["positon","length","percentage"]},{name:"-o-transition",browsers:["O11.5"],values:[{name:"all",description:"Every property that is able to undergo a transition will do so."},{name:"none",description:"No property will transition."}],relevance:50,description:"Shorthand property combines four of the transition properties into a single property.",restrictions:["time","property","timing-function","enum"]},{name:"-o-transition-delay",browsers:["O11.5"],relevance:50,description:"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.",restrictions:["time"]},{name:"-o-transition-duration",browsers:["O11.5"],relevance:50,description:"Specifies how long the transition from the old value to the new value should take.",restrictions:["time"]},{name:"-o-transition-property",browsers:["O11.5"],values:[{name:"all",description:"Every property that is able to undergo a transition will do so."},{name:"none",description:"No property will transition."}],relevance:50,description:"Specifies the name of the CSS property to which the transition is applied.",restrictions:["property"]},{name:"-o-transition-timing-function",browsers:["O11.5"],relevance:50,description:"Describes how the intermediate values used during a transition will be calculated.",restrictions:["timing-function"]},{name:"offset-block-end",browsers:["FF41"],values:[{name:"auto",description:"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well."}],relevance:50,description:"Logical 'bottom'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","percentage"]},{name:"offset-block-start",browsers:["FF41"],values:[{name:"auto",description:"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well."}],relevance:50,description:"Logical 'top'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","percentage"]},{name:"offset-inline-end",browsers:["FF41"],values:[{name:"auto",description:"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well."}],relevance:50,description:"Logical 'right'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","percentage"]},{name:"offset-inline-start",browsers:["FF41"],values:[{name:"auto",description:"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well."}],relevance:50,description:"Logical 'left'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","percentage"]},{name:"outline",values:[{name:"auto",description:"Permits the user agent to render a custom outline style, typically the default platform style."},{name:"invert",description:"Performs a color inversion on the pixels on the screen."}],syntax:"[ <'outline-color'> || <'outline-style'> || <'outline-width'> ]",relevance:88,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/outline"}],description:"Shorthand property for 'outline-style', 'outline-width', and 'outline-color'.",restrictions:["length","line-width","line-style","color","enum"]},{name:"outline-color",values:[{name:"invert",description:"Performs a color inversion on the pixels on the screen."}],syntax:"<color> | invert",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/outline-color"}],description:"The color of the outline.",restrictions:["enum","color"]},{name:"outline-offset",browsers:["E15","FF1.5","S1.2","C1","O9.5"],syntax:"<length>",relevance:65,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/outline-offset"}],description:"Offset the outline and draw it beyond the border edge.",restrictions:["length"]},{name:"outline-style",values:[{name:"auto",description:"Permits the user agent to render a custom outline style, typically the default platform style."}],syntax:"auto | <'border-style'>",relevance:61,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/outline-style"}],description:"Style of the outline.",restrictions:["line-style","enum"]},{name:"outline-width",syntax:"<line-width>",relevance:61,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/outline-width"}],description:"Width of the outline.",restrictions:["length","line-width"]},{name:"overflow",values:[{name:"auto",description:"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes."},{name:"hidden",description:"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region."},{name:"-moz-hidden-unscrollable",description:"Same as the standardized 'clip', except doesn\u2019t establish a block formatting context."},{name:"scroll",description:"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped."},{name:"visible",description:"Content is not clipped, i.e., it may be rendered outside the content box."}],syntax:"[ visible | hidden | clip | scroll | auto ]{1,2}",relevance:93,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overflow"}],description:"Shorthand for setting 'overflow-x' and 'overflow-y'.",restrictions:["enum"]},{name:"overflow-wrap",values:[{name:"break-word",description:"An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line."},{name:"normal",description:"Lines may break only at allowed break points."}],syntax:"normal | break-word | anywhere",relevance:63,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overflow-wrap"}],description:"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit within the line box.",restrictions:["enum"]},{name:"overflow-x",values:[{name:"auto",description:"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes."},{name:"hidden",description:"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region."},{name:"scroll",description:"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped."},{name:"visible",description:"Content is not clipped, i.e., it may be rendered outside the content box."}],syntax:"visible | hidden | clip | scroll | auto",relevance:80,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overflow-x"}],description:"Specifies the handling of overflow in the horizontal direction.",restrictions:["enum"]},{name:"overflow-y",values:[{name:"auto",description:"The behavior of the 'auto' value is UA-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes."},{name:"hidden",description:"Content is clipped and no scrolling mechanism should be provided to view the content outside the clipping region."},{name:"scroll",description:"Content is clipped and if the user agent uses a scrolling mechanism that is visible on the screen (such as a scroll bar or a panner), that mechanism should be displayed for a box whether or not any of its content is clipped."},{name:"visible",description:"Content is not clipped, i.e., it may be rendered outside the content box."}],syntax:"visible | hidden | clip | scroll | auto",relevance:81,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overflow-y"}],description:"Specifies the handling of overflow in the vertical direction.",restrictions:["enum"]},{name:"pad",browsers:["FF33"],syntax:"<integer> && <symbol>",relevance:50,description:"@counter-style descriptor. Specifies a \u201cfixed-width\u201d counter style, where representations shorter than the pad value are padded with a particular <symbol>",restrictions:["integer","image","string","identifier"]},{name:"padding",values:[],syntax:"[ <length> | <percentage> ]{1,4}",relevance:96,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/padding"}],description:"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.",restrictions:["length","percentage"]},{name:"padding-bottom",syntax:"<length> | <percentage>",relevance:89,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/padding-bottom"}],description:"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.",restrictions:["length","percentage"]},{name:"padding-block-end",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'padding-left'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/padding-block-end"}],description:"Logical 'padding-bottom'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","percentage"]},{name:"padding-block-start",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'padding-left'>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/padding-block-start"}],description:"Logical 'padding-top'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","percentage"]},{name:"padding-inline-end",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'padding-left'>",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/padding-inline-end"}],description:"Logical 'padding-right'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","percentage"]},{name:"padding-inline-start",browsers:["E79","FF41","S12.1","C69","O56"],syntax:"<'padding-left'>",relevance:52,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/padding-inline-start"}],description:"Logical 'padding-left'. Mapping depends on the parent element\u2019s 'writing-mode', 'direction', and 'text-orientation'.",restrictions:["length","percentage"]},{name:"padding-left",syntax:"<length> | <percentage>",relevance:90,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/padding-left"}],description:"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.",restrictions:["length","percentage"]},{name:"padding-right",syntax:"<length> | <percentage>",relevance:89,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/padding-right"}],description:"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.",restrictions:["length","percentage"]},{name:"padding-top",syntax:"<length> | <percentage>",relevance:90,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/padding-top"}],description:"Shorthand property to set values the thickness of the padding area. If left is omitted, it is the same as right. If bottom is omitted it is the same as top, if right is omitted it is the same as top. The value may not be negative.",restrictions:["length","percentage"]},{name:"page-break-after",values:[{name:"always",description:"Always force a page break after the generated box."},{name:"auto",description:"Neither force nor forbid a page break after generated box."},{name:"avoid",description:"Avoid a page break after the generated box."},{name:"left",description:"Force one or two page breaks after the generated box so that the next page is formatted as a left page."},{name:"right",description:"Force one or two page breaks after the generated box so that the next page is formatted as a right page."}],syntax:"auto | always | avoid | left | right | recto | verso",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/page-break-after"}],description:"Defines rules for page breaks after an element.",restrictions:["enum"]},{name:"page-break-before",values:[{name:"always",description:"Always force a page break before the generated box."},{name:"auto",description:"Neither force nor forbid a page break before the generated box."},{name:"avoid",description:"Avoid a page break before the generated box."},{name:"left",description:"Force one or two page breaks before the generated box so that the next page is formatted as a left page."},{name:"right",description:"Force one or two page breaks before the generated box so that the next page is formatted as a right page."}],syntax:"auto | always | avoid | left | right | recto | verso",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/page-break-before"}],description:"Defines rules for page breaks before an element.",restrictions:["enum"]},{name:"page-break-inside",values:[{name:"auto",description:"Neither force nor forbid a page break inside the generated box."},{name:"avoid",description:"Avoid a page break inside the generated box."}],syntax:"auto | avoid",relevance:52,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/page-break-inside"}],description:"Defines rules for page breaks inside an element.",restrictions:["enum"]},{name:"paint-order",browsers:["E17","FF60","S8","C35","O22"],values:[{name:"fill"},{name:"markers"},{name:"normal",description:"The element is painted with the standard order of painting operations: the 'fill' is painted first, then its 'stroke' and finally its markers."},{name:"stroke"}],syntax:"normal | [ fill || stroke || markers ]",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/paint-order"}],description:"Controls the order that the three paint operations that shapes and text are rendered with: their fill, their stroke and any markers they might have.",restrictions:["enum"]},{name:"perspective",values:[{name:"none",description:"No perspective transform is applied."}],syntax:"none | <length>",relevance:56,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/perspective"}],description:"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.",restrictions:["length","enum"]},{name:"perspective-origin",syntax:"<position>",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/perspective-origin"}],description:"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.",restrictions:["position","percentage","length"]},{name:"pointer-events",values:[{name:"all",description:"The given element can be the target element for pointer events whenever the pointer is over either the interior or the perimeter of the element."},{name:"fill",description:"The given element can be the target element for pointer events whenever the pointer is over the interior of the element."},{name:"none",description:"The given element does not receive pointer events."},{name:"painted",description:'The given element can be the target element for pointer events when the pointer is over a "painted" area. '},{name:"stroke",description:"The given element can be the target element for pointer events whenever the pointer is over the perimeter of the element."},{name:"visible",description:"The given element can be the target element for pointer events when the \u2018visibility\u2019 property is set to visible and the pointer is over either the interior or the perimete of the element."},{name:"visibleFill",description:"The given element can be the target element for pointer events when the \u2018visibility\u2019 property is set to visible and when the pointer is over the interior of the element."},{name:"visiblePainted",description:"The given element can be the target element for pointer events when the \u2018visibility\u2019 property is set to visible and when the pointer is over a \u2018painted\u2019 area."},{name:"visibleStroke",description:"The given element can be the target element for pointer events when the \u2018visibility\u2019 property is set to visible and when the pointer is over the perimeter of the element."}],syntax:"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit",relevance:81,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/pointer-events"}],description:"Specifies under what circumstances a given element can be the target element for a pointer event.",restrictions:["enum"]},{name:"position",values:[{name:"absolute",description:"The box's position (and possibly size) is specified with the 'top', 'right', 'bottom', and 'left' properties. These properties specify offsets with respect to the box's 'containing block'."},{name:"fixed",description:"The box's position is calculated according to the 'absolute' model, but in addition, the box is fixed with respect to some reference. As with the 'absolute' model, the box's margins do not collapse with any other margins."},{name:"-ms-page",description:"The box's position is calculated according to the 'absolute' model."},{name:"relative",description:"The box's position is calculated according to the normal flow (this is called the position in normal flow). Then the box is offset relative to its normal position."},{name:"static",description:"The box is a normal box, laid out according to the normal flow. The 'top', 'right', 'bottom', and 'left' properties do not apply."},{name:"sticky",description:"The box's position is calculated according to the normal flow. Then the box is offset relative to its flow root and containing block and in all cases, including table elements, does not affect the position of any following boxes."},{name:"-webkit-sticky",description:"The box's position is calculated according to the normal flow. Then the box is offset relative to its flow root and containing block and in all cases, including table elements, does not affect the position of any following boxes."}],syntax:"static | relative | absolute | sticky | fixed",relevance:96,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/position"}],description:"The position CSS property sets how an element is positioned in a document. The top, right, bottom, and left properties determine the final location of positioned elements.",restrictions:["enum"]},{name:"prefix",browsers:["FF33"],syntax:"<symbol>",relevance:50,description:"@counter-style descriptor. Specifies a <symbol> that is prepended to the marker representation.",restrictions:["image","string","identifier"]},{name:"quotes",values:[{name:"none",description:"The 'open-quote' and 'close-quote' values of the 'content' property produce no quotations marks, as if they were 'no-open-quote' and 'no-close-quote' respectively."}],syntax:"none | auto | [ <string> <string> ]+",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/quotes"}],description:"Specifies quotation marks for any number of embedded quotations.",restrictions:["string"]},{name:"range",browsers:["FF33"],values:[{name:"auto",description:"The range depends on the counter system."},{name:"infinite",description:"If used as the first value in a range, it represents negative infinity; if used as the second value, it represents positive infinity."}],syntax:"[ [ <integer> | infinite ]{2} ]# | auto",relevance:50,description:"@counter-style descriptor. Defines the ranges over which the counter style is defined.",restrictions:["integer","enum"]},{name:"resize",browsers:["E79","FF4","S3","C1","O12.1"],values:[{name:"both",description:"The UA presents a bidirectional resizing mechanism to allow the user to adjust both the height and the width of the element."},{name:"horizontal",description:"The UA presents a unidirectional horizontal resizing mechanism to allow the user to adjust only the width of the element."},{name:"none",description:"The UA does not present a resizing mechanism on the element, and the user is given no direct manipulation mechanism to resize the element."},{name:"vertical",description:"The UA presents a unidirectional vertical resizing mechanism to allow the user to adjust only the height of the element."}],syntax:"none | both | horizontal | vertical | block | inline",relevance:60,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/resize"}],description:"Specifies whether or not an element is resizable by the user, and if so, along which axis/axes.",restrictions:["enum"]},{name:"right",values:[{name:"auto",description:"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well"}],syntax:"<length> | <percentage> | auto",relevance:91,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/right"}],description:"Specifies how far an absolutely positioned box's right margin edge is offset to the left of the right edge of the box's 'containing block'.",restrictions:["length","percentage"]},{name:"ruby-align",browsers:["FF38"],values:[{name:"auto",browsers:["FF38"],description:"The user agent determines how the ruby contents are aligned. This is the initial value."},{name:"center",description:"The ruby content is centered within its box."},{name:"distribute-letter",browsers:["FF38"],description:"If the width of the ruby text is smaller than that of the base, then the ruby text contents are evenly distributed across the width of the base, with the first and last ruby text glyphs lining up with the corresponding first and last base glyphs. If the width of the ruby text is at least the width of the base, then the letters of the base are evenly distributed across the width of the ruby text."},{name:"distribute-space",browsers:["FF38"],description:"If the width of the ruby text is smaller than that of the base, then the ruby text contents are evenly distributed across the width of the base, with a certain amount of white space preceding the first and following the last character in the ruby text. That amount of white space is normally equal to half the amount of inter-character space of the ruby text."},{name:"left",description:"The ruby text content is aligned with the start edge of the base."},{name:"line-edge",browsers:["FF38"],description:"If the ruby text is not adjacent to a line edge, it is aligned as in 'auto'. If it is adjacent to a line edge, then it is still aligned as in auto, but the side of the ruby text that touches the end of the line is lined up with the corresponding edge of the base."},{name:"right",browsers:["FF38"],description:"The ruby text content is aligned with the end edge of the base."},{name:"start",browsers:["FF38"],description:"The ruby text content is aligned with the start edge of the base."},{name:"space-between",browsers:["FF38"],description:"The ruby content expands as defined for normal text justification (as defined by 'text-justify'),"},{name:"space-around",browsers:["FF38"],description:"As for 'space-between' except that there exists an extra justification opportunities whose space is distributed half before and half after the ruby content."}],status:"experimental",syntax:"start | center | space-between | space-around",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/ruby-align"}],description:"Specifies how text is distributed within the various ruby boxes when their contents do not exactly fill their respective boxes.",restrictions:["enum"]},{name:"ruby-overhang",browsers:["FF10","IE5"],values:[{name:"auto",description:"The ruby text can overhang text adjacent to the base on either side. This is the initial value."},{name:"end",description:"The ruby text can overhang the text that follows it."},{name:"none",description:"The ruby text cannot overhang any text adjacent to its base, only its own base."},{name:"start",description:"The ruby text can overhang the text that precedes it."}],relevance:50,description:"Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base.",restrictions:["enum"]},{name:"ruby-position",browsers:["E84","FF38","S6.1","C84","O70"],values:[{name:"after",description:"The ruby text appears after the base. This is a relatively rare setting used in ideographic East Asian writing systems, most easily found in educational text."},{name:"before",description:"The ruby text appears before the base. This is the most common setting used in ideographic East Asian writing systems."},{name:"inline"},{name:"right",description:"The ruby text appears on the right of the base. Unlike 'before' and 'after', this value is not relative to the text flow direction."}],status:"experimental",syntax:"over | under | inter-character",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/ruby-position"}],description:"Used by the parent of elements with display: ruby-text to control the position of the ruby text with respect to its base.",restrictions:["enum"]},{name:"ruby-span",browsers:["FF10"],values:[{name:"attr(x)",description:"The value of attribute 'x' is a string value. The string value is evaluated as a <number> to determine the number of ruby base elements to be spanned by the annotation element."},{name:"none",description:"No spanning. The computed value is '1'."}],relevance:50,description:"Determines whether, and on which side, ruby text is allowed to partially overhang any adjacent text in addition to its own base, when the ruby text is wider than the ruby base.",restrictions:["enum"]},{name:"scrollbar-3dlight-color",browsers:["IE5"],relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scrollbar-3dlight-color"}],description:"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.",restrictions:["color"]},{name:"scrollbar-arrow-color",browsers:["IE5"],relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scrollbar-arrow-color"}],description:"Determines the color of the arrow elements of a scroll arrow.",restrictions:["color"]},{name:"scrollbar-base-color",browsers:["IE5"],relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scrollbar-base-color"}],description:"Determines the color of the main elements of a scroll bar, which include the scroll box, track, and scroll arrows.",restrictions:["color"]},{name:"scrollbar-darkshadow-color",browsers:["IE5"],relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scrollbar-darkshadow-color"}],description:"Determines the color of the gutter of a scroll bar.",restrictions:["color"]},{name:"scrollbar-face-color",browsers:["IE5"],relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scrollbar-face-color"}],description:"Determines the color of the scroll box and scroll arrows of a scroll bar.",restrictions:["color"]},{name:"scrollbar-highlight-color",browsers:["IE5"],relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scrollbar-highlight-color"}],description:"Determines the color of the top and left edges of the scroll box and scroll arrows of a scroll bar.",restrictions:["color"]},{name:"scrollbar-shadow-color",browsers:["IE5"],relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scrollbar-shadow-color"}],description:"Determines the color of the bottom and right edges of the scroll box and scroll arrows of a scroll bar.",restrictions:["color"]},{name:"scrollbar-track-color",browsers:["IE6"],relevance:50,description:"Determines the color of the track element of a scroll bar.",restrictions:["color"]},{name:"scroll-behavior",browsers:["E79","FF36","S14","C61","O48"],values:[{name:"auto",description:"Scrolls in an instant fashion."},{name:"smooth",description:"Scrolls in a smooth fashion using a user-agent-defined timing function and time period."}],syntax:"auto | smooth",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-behavior"}],description:"Specifies the scrolling behavior for a scrolling box, when scrolling happens due to navigation or CSSOM scrolling APIs.",restrictions:["enum"]},{name:"scroll-snap-coordinate",browsers:["FF39"],values:[{name:"none",description:"Specifies that this element does not contribute a snap point."}],status:"obsolete",syntax:"none | <position>#",relevance:0,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-coordinate"}],description:"Defines the x and y coordinate within the element which will align with the nearest ancestor scroll container\u2019s snap-destination for the respective axis.",restrictions:["position","length","percentage","enum"]},{name:"scroll-snap-destination",browsers:["FF39"],status:"obsolete",syntax:"<position>",relevance:0,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-destination"}],description:"Define the x and y coordinate within the scroll container\u2019s visual viewport which element snap points will align with.",restrictions:["position","length","percentage"]},{name:"scroll-snap-points-x",browsers:["FF39","S9"],values:[{name:"none",description:"No snap points are defined by this scroll container."},{name:"repeat()",description:"Defines an interval at which snap points are defined, starting from the container\u2019s relevant start edge."}],status:"obsolete",syntax:"none | repeat( <length-percentage> )",relevance:0,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-points-x"}],description:"Defines the positioning of snap points along the x axis of the scroll container it is applied to.",restrictions:["enum"]},{name:"scroll-snap-points-y",browsers:["FF39","S9"],values:[{name:"none",description:"No snap points are defined by this scroll container."},{name:"repeat()",description:"Defines an interval at which snap points are defined, starting from the container\u2019s relevant start edge."}],status:"obsolete",syntax:"none | repeat( <length-percentage> )",relevance:0,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-points-y"}],description:"Defines the positioning of snap points along the y axis of the scroll container it is applied to.",restrictions:["enum"]},{name:"scroll-snap-type",values:[{name:"none",description:"The visual viewport of this scroll container must ignore snap points, if any, when scrolled."},{name:"mandatory",description:"The visual viewport of this scroll container is guaranteed to rest on a snap point when there are no active scrolling operations."},{name:"proximity",description:"The visual viewport of this scroll container may come to rest on a snap point at the termination of a scroll at the discretion of the UA given the parameters of the scroll."}],syntax:"none | [ x | y | block | inline | both ] [ mandatory | proximity ]?",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type"}],description:"Defines how strictly snap points are enforced on the scroll container.",restrictions:["enum"]},{name:"shape-image-threshold",browsers:["E79","FF62","S10.1","C37","O24"],syntax:"<alpha-value>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/shape-image-threshold"}],description:"Defines the alpha channel threshold used to extract the shape using an image. A value of 0.5 means that the shape will enclose all the pixels that are more than 50% opaque.",restrictions:["number"]},{name:"shape-margin",browsers:["E79","FF62","S10.1","C37","O24"],syntax:"<length-percentage>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/shape-margin"}],description:"Adds a margin to a 'shape-outside'. This defines a new shape that is the smallest contour that includes all the points that are the 'shape-margin' distance outward in the perpendicular direction from a point on the underlying shape.",restrictions:["url","length","percentage"]},{name:"shape-outside",browsers:["E79","FF62","S10.1","C37","O24"],values:[{name:"margin-box",description:"The background is painted within (clipped to) the margin box."},{name:"none",description:"The float area is unaffected."}],syntax:"none | <shape-box> || <basic-shape> | <image>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/shape-outside"}],description:"Specifies an orthogonal rotation to be applied to an image before it is laid out.",restrictions:["image","box","shape","enum"]},{name:"shape-rendering",values:[{name:"auto",description:"Suppresses aural rendering."},{name:"crispEdges",description:"Emphasize the contrast between clean edges of artwork over rendering speed and geometric precision."},{name:"geometricPrecision",description:"Emphasize geometric precision over speed and crisp edges."},{name:"optimizeSpeed",description:"Emphasize rendering speed over geometric precision and crisp edges."}],relevance:50,description:"Provides hints about what tradeoffs to make as it renders vector graphics elements such as <path> elements and basic shapes such as circles and rectangles.",restrictions:["enum"]},{name:"size",browsers:["C","O8"],syntax:"<length>{1,2} | auto | [ <page-size> || [ portrait | landscape ] ]",relevance:52,description:"The size CSS at-rule descriptor, used with the @page at-rule, defines the size and orientation of the box which is used to represent a page. Most of the time, this size corresponds to the target size of the printed page if applicable.",restrictions:["length"]},{name:"src",values:[{name:"url()",description:"Reference font by URL"},{name:"format()",description:"Optional hint describing the format of the font resource."},{name:"local()",description:"Format-specific string that identifies a locally available copy of a given font."}],syntax:"[ <url> [ format( <string># ) ]? | local( <family-name> ) ]#",relevance:65,description:"@font-face descriptor. Specifies the resource containing font data. It is required, whether the font is downloadable or locally installed.",restrictions:["enum","url","identifier"]},{name:"stop-color",relevance:51,description:"Indicates what color to use at that gradient stop.",restrictions:["color"]},{name:"stop-opacity",relevance:50,description:"Defines the opacity of a given gradient stop.",restrictions:["number(0-1)"]},{name:"stroke",values:[{name:"url()",description:"A URL reference to a paint server element, which is an element that defines a paint server: \u2018hatch\u2019, \u2018linearGradient\u2019, \u2018mesh\u2019, \u2018pattern\u2019, \u2018radialGradient\u2019 and \u2018solidcolor\u2019."},{name:"none",description:"No paint is applied in this layer."}],relevance:64,description:"Paints along the outline of the given graphical element.",restrictions:["color","enum","url"]},{name:"stroke-dasharray",values:[{name:"none",description:"Indicates that no dashing is used."}],relevance:59,description:"Controls the pattern of dashes and gaps used to stroke paths.",restrictions:["length","percentage","number","enum"]},{name:"stroke-dashoffset",relevance:58,description:"Specifies the distance into the dash pattern to start the dash.",restrictions:["percentage","length"]},{name:"stroke-linecap",values:[{name:"butt",description:"Indicates that the stroke for each subpath does not extend beyond its two endpoints."},{name:"round",description:"Indicates that at each end of each subpath, the shape representing the stroke will be extended by a half circle with a radius equal to the stroke width."},{name:"square",description:"Indicates that at the end of each subpath, the shape representing the stroke will be extended by a rectangle with the same width as the stroke width and whose length is half of the stroke width."}],relevance:53,description:"Specifies the shape to be used at the end of open subpaths when they are stroked.",restrictions:["enum"]},{name:"stroke-linejoin",values:[{name:"bevel",description:"Indicates that a bevelled corner is to be used to join path segments."},{name:"miter",description:"Indicates that a sharp corner is to be used to join path segments."},{name:"round",description:"Indicates that a round corner is to be used to join path segments."}],relevance:50,description:"Specifies the shape to be used at the corners of paths or basic shapes when they are stroked.",restrictions:["enum"]},{name:"stroke-miterlimit",relevance:50,description:"When two line segments meet at a sharp angle and miter joins have been specified for 'stroke-linejoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path.",restrictions:["number"]},{name:"stroke-opacity",relevance:52,description:"Specifies the opacity of the painting operation used to stroke the current object.",restrictions:["number(0-1)"]},{name:"stroke-width",relevance:61,description:"Specifies the width of the stroke on the current object.",restrictions:["percentage","length"]},{name:"suffix",browsers:["FF33"],syntax:"<symbol>",relevance:50,description:"@counter-style descriptor. Specifies a <symbol> that is appended to the marker representation.",restrictions:["image","string","identifier"]},{name:"system",browsers:["FF33"],values:[{name:"additive",description:"Represents \u201csign-value\u201d numbering systems, which, rather than using reusing digits in different positions to change their value, define additional digits with much larger values, so that the value of the number can be obtained by adding all the digits together."},{name:"alphabetic",description:'Interprets the list of counter symbols as digits to an alphabetic numbering system, similar to the default lower-alpha counter style, which wraps from "a", "b", "c", to "aa", "ab", "ac".'},{name:"cyclic",description:"Cycles repeatedly through its provided symbols, looping back to the beginning when it reaches the end of the list."},{name:"extends",description:"Use the algorithm of another counter style, but alter other aspects."},{name:"fixed",description:"Runs through its list of counter symbols once, then falls back."},{name:"numeric",description:"interprets the list of counter symbols as digits to a \"place-value\" numbering system, similar to the default 'decimal' counter style."},{name:"symbolic",description:"Cycles repeatedly through its provided symbols, doubling, tripling, etc. the symbols on each successive pass through the list."}],syntax:"cyclic | numeric | alphabetic | symbolic | additive | [ fixed <integer>? ] | [ extends <counter-style-name> ]",relevance:50,description:"@counter-style descriptor. Specifies which algorithm will be used to construct the counter\u2019s representation based on the counter value.",restrictions:["enum","integer"]},{name:"symbols",browsers:["FF33"],syntax:"<symbol>+",relevance:50,description:"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor.",restrictions:["image","string","identifier"]},{name:"table-layout",values:[{name:"auto",description:"Use any automatic table layout algorithm."},{name:"fixed",description:"Use the fixed table layout algorithm."}],syntax:"auto | fixed",relevance:60,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/table-layout"}],description:"Controls the algorithm used to lay out the table cells, rows, and columns.",restrictions:["enum"]},{name:"tab-size",browsers:["E79","FF4","S6.1","C21","O15"],syntax:"<integer> | <length>",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/tab-size"}],description:"Determines the width of the tab character (U+0009), in space characters (U+0020), when rendered.",restrictions:["integer","length"]},{name:"text-align",values:[{name:"center",description:"The inline contents are centered within the line box."},{name:"end",description:"The inline contents are aligned to the end edge of the line box."},{name:"justify",description:"The text is justified according to the method specified by the 'text-justify' property."},{name:"left",description:"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text."},{name:"right",description:"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text."},{name:"start",description:"The inline contents are aligned to the start edge of the line box."}],syntax:"start | end | left | right | center | justify | match-parent",relevance:94,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-align"}],description:"Describes how inline contents of a block are horizontally aligned if the contents do not completely fill the line box.",restrictions:["string"]},{name:"text-align-last",browsers:["E12","FF49","C47","IE5.5","O34"],values:[{name:"auto",description:"Content on the affected line is aligned per 'text-align' unless 'text-align' is set to 'justify', in which case it is 'start-aligned'."},{name:"center",description:"The inline contents are centered within the line box."},{name:"justify",description:"The text is justified according to the method specified by the 'text-justify' property."},{name:"left",description:"The inline contents are aligned to the left edge of the line box. In vertical text, 'left' aligns to the edge of the line box that would be the start edge for left-to-right text."},{name:"right",description:"The inline contents are aligned to the right edge of the line box. In vertical text, 'right' aligns to the edge of the line box that would be the end edge for left-to-right text."}],syntax:"auto | start | end | left | right | center | justify",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-align-last"}],description:"Describes how the last line of a block or a line right before a forced line break is aligned when 'text-align' is set to 'justify'.",restrictions:["enum"]},{name:"text-anchor",values:[{name:"end",description:"The rendered characters are aligned such that the end of the resulting rendered text is at the initial current text position."},{name:"middle",description:"The rendered characters are aligned such that the geometric middle of the resulting rendered text is at the initial current text position."},{name:"start",description:"The rendered characters are aligned such that the start of the resulting rendered text is at the initial current text position."}],relevance:50,description:"Used to align (start-, middle- or end-alignment) a string of text relative to a given point.",restrictions:["enum"]},{name:"text-decoration",values:[{name:"dashed",description:"Produces a dashed line style."},{name:"dotted",description:"Produces a dotted line."},{name:"double",description:"Produces a double line."},{name:"line-through",description:"Each line of text has a line through the middle."},{name:"none",description:"Produces no line."},{name:"overline",description:"Each line of text has a line above it."},{name:"solid",description:"Produces a solid line."},{name:"underline",description:"Each line of text is underlined."},{name:"wavy",description:"Produces a wavy line."}],syntax:"<'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'> || <'text-decoration-thickness'>",relevance:92,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration"}],description:"Decorations applied to font used for an element's text.",restrictions:["enum","color"]},{name:"text-decoration-color",browsers:["E79","FF36","S12.1","C57","O44"],syntax:"<color>",relevance:52,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-color"}],description:"Specifies the color of text decoration (underlines overlines, and line-throughs) set on the element with text-decoration-line.",restrictions:["color"]},{name:"text-decoration-line",browsers:["E79","FF36","S12.1","C57","O44"],values:[{name:"line-through",description:"Each line of text has a line through the middle."},{name:"none",description:"Neither produces nor inhibits text decoration."},{name:"overline",description:"Each line of text has a line above it."},{name:"underline",description:"Each line of text is underlined."}],syntax:"none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-line"}],description:"Specifies what line decorations, if any, are added to the element.",restrictions:["enum"]},{name:"text-decoration-style",browsers:["E79","FF36","S12.1","C57","O44"],values:[{name:"dashed",description:"Produces a dashed line style."},{name:"dotted",description:"Produces a dotted line."},{name:"double",description:"Produces a double line."},{name:"none",description:"Produces no line."},{name:"solid",description:"Produces a solid line."},{name:"wavy",description:"Produces a wavy line."}],syntax:"solid | double | dotted | dashed | wavy",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-style"}],description:"Specifies the line style for underline, line-through and overline text decoration.",restrictions:["enum"]},{name:"text-indent",values:[],syntax:"<length-percentage> && hanging? && each-line?",relevance:68,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-indent"}],description:"Specifies the indentation applied to lines of inline content in a block. The indentation only affects the first line of inline content in the block unless the 'hanging' keyword is specified, in which case it affects all lines except the first.",restrictions:["percentage","length"]},{name:"text-justify",browsers:["E12","FF55","C32","IE11","O19"],values:[{name:"auto",description:"The UA determines the justification algorithm to follow, based on a balance between performance and adequate presentation quality."},{name:"distribute",description:"Justification primarily changes spacing both at word separators and at grapheme cluster boundaries in all scripts except those in the connected and cursive groups. This value is sometimes used in e.g. Japanese, often with the 'text-align-last' property."},{name:"distribute-all-lines"},{name:"inter-cluster",description:"Justification primarily changes spacing at word separators and at grapheme cluster boundaries in clustered scripts. This value is typically used for Southeast Asian scripts such as Thai."},{name:"inter-ideograph",description:"Justification primarily changes spacing at word separators and at inter-graphemic boundaries in scripts that use no word spaces. This value is typically used for CJK languages."},{name:"inter-word",description:"Justification primarily changes spacing at word separators. This value is typically used for languages that separate words using spaces, like English or (sometimes) Korean."},{name:"kashida",description:"Justification primarily stretches Arabic and related scripts through the use of kashida or other calligraphic elongation."},{name:"newspaper"}],syntax:"auto | inter-character | inter-word | none",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-justify"}],description:"Selects the justification algorithm used when 'text-align' is set to 'justify'. The property applies to block containers, but the UA may (but is not required to) also support it on inline elements.",restrictions:["enum"]},{name:"text-orientation",browsers:["E79","FF41","S14","C48","O15"],values:[{name:"sideways",browsers:["E79","FF41","S14","C48","O15"],description:"This value is equivalent to 'sideways-right' in 'vertical-rl' writing mode and equivalent to 'sideways-left' in 'vertical-lr' writing mode."},{name:"sideways-right",browsers:["E79","FF41","S14","C48","O15"],description:"In vertical writing modes, this causes text to be set as if in a horizontal layout, but rotated 90\xb0 clockwise."},{name:"upright",description:"In vertical writing modes, characters from horizontal-only scripts are rendered upright, i.e. in their standard horizontal orientation."}],syntax:"mixed | upright | sideways",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-orientation"}],description:"Specifies the orientation of text within a line.",restrictions:["enum"]},{name:"text-overflow",values:[{name:"clip",description:"Clip inline content that overflows. Characters may be only partially rendered."},{name:"ellipsis",description:"Render an ellipsis character (U+2026) to represent clipped inline content."}],syntax:"[ clip | ellipsis | <string> ]{1,2}",relevance:82,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-overflow"}],description:"Text can overflow for example when it is prevented from wrapping.",restrictions:["enum","string"]},{name:"text-rendering",browsers:["E79","FF1","S5","C4","O15"],values:[{name:"auto"},{name:"geometricPrecision",description:"Indicates that the user agent shall emphasize geometric precision over legibility and rendering speed."},{name:"optimizeLegibility",description:"Indicates that the user agent shall emphasize legibility over rendering speed and geometric precision."},{name:"optimizeSpeed",description:"Indicates that the user agent shall emphasize rendering speed over legibility and geometric precision."}],syntax:"auto | optimizeSpeed | optimizeLegibility | geometricPrecision",relevance:68,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-rendering"}],description:"The creator of SVG content might want to provide a hint to the implementation about what tradeoffs to make as it renders text. The \u2018text-rendering\u2019 property provides these hints.",restrictions:["enum"]},{name:"text-shadow",values:[{name:"none",description:"No shadow."}],syntax:"none | <shadow-t>#",relevance:75,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-shadow"}],description:"Enables shadow effects to be applied to the text of the element.",restrictions:["length","color"]},{name:"text-transform",values:[{name:"capitalize",description:"Puts the first typographic letter unit of each word in titlecase."},{name:"lowercase",description:"Puts all letters in lowercase."},{name:"none",description:"No effects."},{name:"uppercase",description:"Puts all letters in uppercase."}],syntax:"none | capitalize | uppercase | lowercase | full-width | full-size-kana",relevance:85,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-transform"}],description:"Controls capitalization effects of an element\u2019s text.",restrictions:["enum"]},{name:"text-underline-position",values:[{name:"above"},{name:"auto",description:"The user agent may use any algorithm to determine the underline\u2019s position. In horizontal line layout, the underline should be aligned as for alphabetic. In vertical line layout, if the language is set to Japanese or Korean, the underline should be aligned as for over."},{name:"below",description:"The underline is aligned with the under edge of the element\u2019s content box."}],syntax:"auto | from-font | [ under || [ left | right ] ]",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-underline-position"}],description:"Sets the position of an underline specified on the same element: it does not affect underlines specified by ancestor elements. This property is typically used in vertical writing contexts such as in Japanese documents where it often desired to have the underline appear 'over' (to the right of) the affected run of text",restrictions:["enum"]},{name:"top",values:[{name:"auto",description:"For non-replaced elements, the effect of this value depends on which of related properties have the value 'auto' as well"}],syntax:"<length> | <percentage> | auto",relevance:95,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/top"}],description:"Specifies how far an absolutely positioned box's top margin edge is offset below the top edge of the box's 'containing block'.",restrictions:["length","percentage"]},{name:"touch-action",values:[{name:"auto",description:"The user agent may determine any permitted touch behaviors for touches that begin on the element."},{name:"cross-slide-x"},{name:"cross-slide-y"},{name:"double-tap-zoom"},{name:"manipulation",description:"The user agent may consider touches that begin on the element only for the purposes of scrolling and continuous zooming."},{name:"none",description:"Touches that begin on the element must not trigger default touch behaviors."},{name:"pan-x",description:"The user agent may consider touches that begin on the element only for the purposes of horizontally scrolling the element\u2019s nearest ancestor with horizontally scrollable content."},{name:"pan-y",description:"The user agent may consider touches that begin on the element only for the purposes of vertically scrolling the element\u2019s nearest ancestor with vertically scrollable content."},{name:"pinch-zoom"}],syntax:"auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] || pinch-zoom ] | manipulation",relevance:66,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/touch-action"}],description:"Determines whether touch input may trigger default behavior supplied by user agent.",restrictions:["enum"]},{name:"transform",values:[{name:"matrix()",description:"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]"},{name:"matrix3d()",description:"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order."},{name:"none"},{name:"perspective()",description:"Specifies a perspective projection matrix."},{name:"rotate()",description:"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property."},{name:"rotate3d()",description:"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters."},{name:"rotateX('angle')",description:"Specifies a clockwise rotation by the given angle about the X axis."},{name:"rotateY('angle')",description:"Specifies a clockwise rotation by the given angle about the Y axis."},{name:"rotateZ('angle')",description:"Specifies a clockwise rotation by the given angle about the Z axis."},{name:"scale()",description:"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first."},{name:"scale3d()",description:"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters."},{name:"scaleX()",description:"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter."},{name:"scaleY()",description:"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter."},{name:"scaleZ()",description:"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter."},{name:"skew()",description:"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis)."},{name:"skewX()",description:"Specifies a skew transformation along the X axis by the given angle."},{name:"skewY()",description:"Specifies a skew transformation along the Y axis by the given angle."},{name:"translate()",description:"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter."},{name:"translate3d()",description:"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively."},{name:"translateX()",description:"Specifies a translation by the given amount in the X direction."},{name:"translateY()",description:"Specifies a translation by the given amount in the Y direction."},{name:"translateZ()",description:"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0."}],syntax:"none | <transform-list>",relevance:89,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/transform"}],description:"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.",restrictions:["enum"]},{name:"transform-origin",syntax:"[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?",relevance:75,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/transform-origin"}],description:"Establishes the origin of transformation for an element.",restrictions:["position","length","percentage"]},{name:"transform-style",browsers:["E12","FF16","S9","C36","O23"],values:[{name:"flat",description:"All children of this element are rendered flattened into the 2D plane of the element."},{name:"preserve-3d",browsers:["E12","FF16","S9","C36","O23"],description:"Flattening is not performed, so children maintain their position in 3D space."}],syntax:"flat | preserve-3d",relevance:55,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/transform-style"}],description:"Defines how nested elements are rendered in 3D space.",restrictions:["enum"]},{name:"transition",values:[{name:"all",description:"Every property that is able to undergo a transition will do so."},{name:"none",description:"No property will transition."}],syntax:"<single-transition>#",relevance:88,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/transition"}],description:"Shorthand property combines four of the transition properties into a single property.",restrictions:["time","property","timing-function","enum"]},{name:"transition-delay",syntax:"<time>#",relevance:63,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/transition-delay"}],description:"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.",restrictions:["time"]},{name:"transition-duration",syntax:"<time>#",relevance:62,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/transition-duration"}],description:"Specifies how long the transition from the old value to the new value should take.",restrictions:["time"]},{name:"transition-property",values:[{name:"all",description:"Every property that is able to undergo a transition will do so."},{name:"none",description:"No property will transition."}],syntax:"none | <single-transition-property>#",relevance:64,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/transition-property"}],description:"Specifies the name of the CSS property to which the transition is applied.",restrictions:["property"]},{name:"transition-timing-function",syntax:"<easing-function>#",relevance:61,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/transition-timing-function"}],description:"Describes how the intermediate values used during a transition will be calculated.",restrictions:["timing-function"]},{name:"unicode-bidi",values:[{name:"bidi-override",description:"Inside the element, reordering is strictly in sequence according to the 'direction' property; the implicit part of the bidirectional algorithm is ignored."},{name:"embed",description:"If the element is inline-level, this value opens an additional level of embedding with respect to the bidirectional algorithm. The direction of this embedding level is given by the 'direction' property."},{name:"isolate",description:"The contents of the element are considered to be inside a separate, independent paragraph."},{name:"isolate-override",description:"This combines the isolation behavior of 'isolate' with the directional override behavior of 'bidi-override'"},{name:"normal",description:"The element does not open an additional level of embedding with respect to the bidirectional algorithm. For inline-level elements, implicit reordering works across element boundaries."},{name:"plaintext",description:"For the purposes of the Unicode bidirectional algorithm, the base directionality of each bidi paragraph for which the element forms the containing block is determined not by the element's computed 'direction'."}],syntax:"normal | embed | isolate | bidi-override | isolate-override | plaintext",relevance:58,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/unicode-bidi"}],description:"The level of embedding with respect to the bidirectional algorithm.",restrictions:["enum"]},{name:"unicode-range",values:[{name:"U+26",description:"Ampersand."},{name:"U+20-24F, U+2B0-2FF, U+370-4FF, U+1E00-1EFF, U+2000-20CF, U+2100-23FF, U+2500-26FF, U+E000-F8FF, U+FB00\u2013FB4F",description:"WGL4 character set (Pan-European)."},{name:"U+20-17F, U+2B0-2FF, U+2000-206F, U+20A0-20CF, U+2100-21FF, U+2600-26FF",description:"The Multilingual European Subset No. 1. Latin. Covers ~44 languages."},{name:"U+20-2FF, U+370-4FF, U+1E00-20CF, U+2100-23FF, U+2500-26FF, U+FB00-FB4F, U+FFF0-FFFD",description:"The Multilingual European Subset No. 2. Latin, Greek, and Cyrillic. Covers ~128 language."},{name:"U+20-4FF, U+530-58F, U+10D0-10FF, U+1E00-23FF, U+2440-245F, U+2500-26FF, U+FB00-FB4F, U+FE20-FE2F, U+FFF0-FFFD",description:"The Multilingual European Subset No. 3. Covers all characters belonging to European scripts."},{name:"U+00-7F",description:"Basic Latin (ASCII)."},{name:"U+80-FF",description:"Latin-1 Supplement. Accented characters for Western European languages, common punctuation characters, multiplication and division signs."},{name:"U+100-17F",description:"Latin Extended-A. Accented characters for for Czech, Dutch, Polish, and Turkish."},{name:"U+180-24F",description:"Latin Extended-B. Croatian, Slovenian, Romanian, Non-European and historic latin, Khoisan, Pinyin, Livonian, Sinology."},{name:"U+1E00-1EFF",description:"Latin Extended Additional. Vietnamese, German captial sharp s, Medievalist, Latin general use."},{name:"U+250-2AF",description:"International Phonetic Alphabet Extensions."},{name:"U+370-3FF",description:"Greek and Coptic."},{name:"U+1F00-1FFF",description:"Greek Extended. Accented characters for polytonic Greek."},{name:"U+400-4FF",description:"Cyrillic."},{name:"U+500-52F",description:"Cyrillic Supplement. Extra letters for Komi, Khanty, Chukchi, Mordvin, Kurdish, Aleut, Chuvash, Abkhaz, Azerbaijani, and Orok."},{name:"U+00-52F, U+1E00-1FFF, U+2200\u201322FF",description:"Latin, Greek, Cyrillic, some punctuation and symbols."},{name:"U+530\u201358F",description:"Armenian."},{name:"U+590\u20135FF",description:"Hebrew."},{name:"U+600\u20136FF",description:"Arabic."},{name:"U+750\u201377F",description:"Arabic Supplement. Additional letters for African languages, Khowar, Torwali, Burushaski, and early Persian."},{name:"U+8A0\u20138FF",description:"Arabic Extended-A. Additional letters for African languages, European and Central Asian languages, Rohingya, Tamazight, Arwi, and Koranic annotation signs."},{name:"U+700\u201374F",description:"Syriac."},{name:"U+900\u201397F",description:"Devanagari."},{name:"U+980\u20139FF",description:"Bengali."},{name:"U+A00\u2013A7F",description:"Gurmukhi."},{name:"U+A80\u2013AFF",description:"Gujarati."},{name:"U+B00\u2013B7F",description:"Oriya."},{name:"U+B80\u2013BFF",description:"Tamil."},{name:"U+C00\u2013C7F",description:"Telugu."},{name:"U+C80\u2013CFF",description:"Kannada."},{name:"U+D00\u2013D7F",description:"Malayalam."},{name:"U+D80\u2013DFF",description:"Sinhala."},{name:"U+118A0\u2013118FF",description:"Warang Citi."},{name:"U+E00\u2013E7F",description:"Thai."},{name:"U+1A20\u20131AAF",description:"Tai Tham."},{name:"U+AA80\u2013AADF",description:"Tai Viet."},{name:"U+E80\u2013EFF",description:"Lao."},{name:"U+F00\u2013FFF",description:"Tibetan."},{name:"U+1000\u2013109F",description:"Myanmar (Burmese)."},{name:"U+10A0\u201310FF",description:"Georgian."},{name:"U+1200\u2013137F",description:"Ethiopic."},{name:"U+1380\u2013139F",description:"Ethiopic Supplement. Extra Syllables for Sebatbeit, and Tonal marks"},{name:"U+2D80\u20132DDF",description:"Ethiopic Extended. Extra Syllables for Me'en, Blin, and Sebatbeit."},{name:"U+AB00\u2013AB2F",description:"Ethiopic Extended-A. Extra characters for Gamo-Gofa-Dawro, Basketo, and Gumuz."},{name:"U+1780\u201317FF",description:"Khmer."},{name:"U+1800\u201318AF",description:"Mongolian."},{name:"U+1B80\u20131BBF",description:"Sundanese."},{name:"U+1CC0\u20131CCF",description:"Sundanese Supplement. Punctuation."},{name:"U+4E00\u20139FD5",description:"CJK (Chinese, Japanese, Korean) Unified Ideographs. Most common ideographs for modern Chinese and Japanese."},{name:"U+3400\u20134DB5",description:"CJK Unified Ideographs Extension A. Rare ideographs."},{name:"U+2F00\u20132FDF",description:"Kangxi Radicals."},{name:"U+2E80\u20132EFF",description:"CJK Radicals Supplement. Alternative forms of Kangxi Radicals."},{name:"U+1100\u201311FF",description:"Hangul Jamo."},{name:"U+AC00\u2013D7AF",description:"Hangul Syllables."},{name:"U+3040\u2013309F",description:"Hiragana."},{name:"U+30A0\u201330FF",description:"Katakana."},{name:"U+A5, U+4E00-9FFF, U+30??, U+FF00-FF9F",description:"Japanese Kanji, Hiragana and Katakana characters plus Yen/Yuan symbol."},{name:"U+A4D0\u2013A4FF",description:"Lisu."},{name:"U+A000\u2013A48F",description:"Yi Syllables."},{name:"U+A490\u2013A4CF",description:"Yi Radicals."},{name:"U+2000-206F",description:"General Punctuation."},{name:"U+3000\u2013303F",description:"CJK Symbols and Punctuation."},{name:"U+2070\u2013209F",description:"Superscripts and Subscripts."},{name:"U+20A0\u201320CF",description:"Currency Symbols."},{name:"U+2100\u2013214F",description:"Letterlike Symbols."},{name:"U+2150\u2013218F",description:"Number Forms."},{name:"U+2190\u201321FF",description:"Arrows."},{name:"U+2200\u201322FF",description:"Mathematical Operators."},{name:"U+2300\u201323FF",description:"Miscellaneous Technical."},{name:"U+E000-F8FF",description:"Private Use Area."},{name:"U+FB00\u2013FB4F",description:"Alphabetic Presentation Forms. Ligatures for latin, Armenian, and Hebrew."},{name:"U+FB50\u2013FDFF",description:"Arabic Presentation Forms-A. Contextual forms / ligatures for Persian, Urdu, Sindhi, Central Asian languages, etc, Arabic pedagogical symbols, word ligatures."},{name:"U+1F600\u20131F64F",description:"Emoji: Emoticons."},{name:"U+2600\u201326FF",description:"Emoji: Miscellaneous Symbols."},{name:"U+1F300\u20131F5FF",description:"Emoji: Miscellaneous Symbols and Pictographs."},{name:"U+1F900\u20131F9FF",description:"Emoji: Supplemental Symbols and Pictographs."},{name:"U+1F680\u20131F6FF",description:"Emoji: Transport and Map Symbols."}],syntax:"<unicode-range>#",relevance:58,description:"@font-face descriptor. Defines the set of Unicode codepoints that may be supported by the font face for which it is declared.",restrictions:["unicode-range"]},{name:"user-select",values:[{name:"all",description:"The content of the element must be selected atomically"},{name:"auto"},{name:"contain",description:"UAs must not allow a selection which is started in this element to be extended outside of this element."},{name:"none",description:"The UA must not allow selections to be started in this element."},{name:"text",description:"The element imposes no constraint on the selection."}],syntax:"auto | text | none | contain | all",relevance:75,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/user-select"}],description:"Controls the appearance of selection.",restrictions:["enum"]},{name:"vertical-align",values:[{name:"auto",description:"Align the dominant baseline of the parent box with the equivalent, or heuristically reconstructed, baseline of the element inline box."},{name:"baseline",description:"Align the 'alphabetic' baseline of the element with the 'alphabetic' baseline of the parent element."},{name:"bottom",description:"Align the after edge of the extended inline box with the after-edge of the line box."},{name:"middle",description:"Align the 'middle' baseline of the inline element with the middle baseline of the parent."},{name:"sub",description:"Lower the baseline of the box to the proper position for subscripts of the parent's box. (This value has no effect on the font size of the element's text.)"},{name:"super",description:"Raise the baseline of the box to the proper position for superscripts of the parent's box. (This value has no effect on the font size of the element's text.)"},{name:"text-bottom",description:"Align the bottom of the box with the after-edge of the parent element's font."},{name:"text-top",description:"Align the top of the box with the before-edge of the parent element's font."},{name:"top",description:"Align the before edge of the extended inline box with the before-edge of the line box."},{name:"-webkit-baseline-middle"}],syntax:"baseline | sub | super | text-top | text-bottom | middle | top | bottom | <percentage> | <length>",relevance:92,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/vertical-align"}],description:"Affects the vertical positioning of the inline boxes generated by an inline-level element inside a line box.",restrictions:["percentage","length"]},{name:"visibility",values:[{name:"collapse",description:"Table-specific. If used on elements other than rows, row groups, columns, or column groups, 'collapse' has the same meaning as 'hidden'."},{name:"hidden",description:"The generated box is invisible (fully transparent, nothing is drawn), but still affects layout."},{name:"visible",description:"The generated box is visible."}],syntax:"visible | hidden | collapse",relevance:88,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/visibility"}],description:"Specifies whether the boxes generated by an element are rendered. Invisible boxes still affect layout (set the \u2018display\u2019 property to \u2018none\u2019 to suppress box generation altogether).",restrictions:["enum"]},{name:"-webkit-animation",browsers:["C","S5"],values:[{name:"alternate",description:"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction."},{name:"alternate-reverse",description:"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction."},{name:"backwards",description:"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'."},{name:"both",description:"Both forwards and backwards fill modes are applied."},{name:"forwards",description:"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes."},{name:"infinite",description:"Causes the animation to repeat forever."},{name:"none",description:"No animation is performed"},{name:"normal",description:"Normal playback."},{name:"reverse",description:"All iterations of the animation are played in the reverse direction from the way they were specified."}],relevance:50,description:"Shorthand property combines six of the animation properties into a single property.",restrictions:["time","enum","timing-function","identifier","number"]},{name:"-webkit-animation-delay",browsers:["C","S5"],relevance:50,description:"Defines when the animation will start.",restrictions:["time"]},{name:"-webkit-animation-direction",browsers:["C","S5"],values:[{name:"alternate",description:"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction."},{name:"alternate-reverse",description:"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction."},{name:"normal",description:"Normal playback."},{name:"reverse",description:"All iterations of the animation are played in the reverse direction from the way they were specified."}],relevance:50,description:"Defines whether or not the animation should play in reverse on alternate cycles.",restrictions:["enum"]},{name:"-webkit-animation-duration",browsers:["C","S5"],relevance:50,description:"Defines the length of time that an animation takes to complete one cycle.",restrictions:["time"]},{name:"-webkit-animation-fill-mode",browsers:["C","S5"],values:[{name:"backwards",description:"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'."},{name:"both",description:"Both forwards and backwards fill modes are applied."},{name:"forwards",description:"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes."},{name:"none",description:"There is no change to the property value between the time the animation is applied and the time the animation begins playing or after the animation completes."}],relevance:50,description:"Defines what values are applied by the animation outside the time it is executing.",restrictions:["enum"]},{name:"-webkit-animation-iteration-count",browsers:["C","S5"],values:[{name:"infinite",description:"Causes the animation to repeat forever."}],relevance:50,description:"Defines the number of times an animation cycle is played. The default value is one, meaning the animation will play from beginning to end once.",restrictions:["number","enum"]},{name:"-webkit-animation-name",browsers:["C","S5"],values:[{name:"none",description:"No animation is performed"}],relevance:50,description:"Defines a list of animations that apply. Each name is used to select the keyframe at-rule that provides the property values for the animation.",restrictions:["identifier","enum"]},{name:"-webkit-animation-play-state",browsers:["C","S5"],values:[{name:"paused",description:"A running animation will be paused."},{name:"running",description:"Resume playback of a paused animation."}],relevance:50,description:"Defines whether the animation is running or paused.",restrictions:["enum"]},{name:"-webkit-animation-timing-function",browsers:["C","S5"],relevance:50,description:"Describes how the animation will progress over one cycle of its duration. See the 'transition-timing-function'.",restrictions:["timing-function"]},{name:"-webkit-appearance",browsers:["C","S3"],values:[{name:"button"},{name:"button-bevel"},{name:"caps-lock-indicator"},{name:"caret"},{name:"checkbox"},{name:"default-button"},{name:"listbox"},{name:"listitem"},{name:"media-fullscreen-button"},{name:"media-mute-button"},{name:"media-play-button"},{name:"media-seek-back-button"},{name:"media-seek-forward-button"},{name:"media-slider"},{name:"media-sliderthumb"},{name:"menulist"},{name:"menulist-button"},{name:"menulist-text"},{name:"menulist-textfield"},{name:"none"},{name:"push-button"},{name:"radio"},{name:"scrollbarbutton-down"},{name:"scrollbarbutton-left"},{name:"scrollbarbutton-right"},{name:"scrollbarbutton-up"},{name:"scrollbargripper-horizontal"},{name:"scrollbargripper-vertical"},{name:"scrollbarthumb-horizontal"},{name:"scrollbarthumb-vertical"},{name:"scrollbartrack-horizontal"},{name:"scrollbartrack-vertical"},{name:"searchfield"},{name:"searchfield-cancel-button"},{name:"searchfield-decoration"},{name:"searchfield-results-button"},{name:"searchfield-results-decoration"},{name:"slider-horizontal"},{name:"sliderthumb-horizontal"},{name:"sliderthumb-vertical"},{name:"slider-vertical"},{name:"square-button"},{name:"textarea"},{name:"textfield"}],status:"nonstandard",syntax:"none | button | button-bevel | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | push-button | radio | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield | -apple-pay-button",relevance:0,description:"Changes the appearance of buttons and other controls to resemble native controls.",restrictions:["enum"]},{name:"-webkit-backdrop-filter",browsers:["S9"],values:[{name:"none",description:"No filter effects are applied."},{name:"blur()",description:"Applies a Gaussian blur to the input image."},{name:"brightness()",description:"Applies a linear multiplier to input image, making it appear more or less bright."},{name:"contrast()",description:"Adjusts the contrast of the input."},{name:"drop-shadow()",description:"Applies a drop shadow effect to the input image."},{name:"grayscale()",description:"Converts the input image to grayscale."},{name:"hue-rotate()",description:"Applies a hue rotation on the input image. "},{name:"invert()",description:"Inverts the samples in the input image."},{name:"opacity()",description:"Applies transparency to the samples in the input image."},{name:"saturate()",description:"Saturates the input image."},{name:"sepia()",description:"Converts the input image to sepia."},{name:"url()",description:"A filter reference to a <filter> element."}],relevance:50,description:"Applies a filter effect where the first filter in the list takes the element's background image as the input image.",restrictions:["enum","url"]},{name:"-webkit-backface-visibility",browsers:["C","S5"],values:[{name:"hidden"},{name:"visible"}],relevance:50,description:"Determines whether or not the 'back' side of a transformed element is visible when facing the viewer. With an identity transform, the front side of an element faces the viewer.",restrictions:["enum"]},{name:"-webkit-background-clip",browsers:["C","S3"],relevance:50,description:"Determines the background painting area.",restrictions:["box"]},{name:"-webkit-background-composite",browsers:["C","S3"],values:[{name:"border"},{name:"padding"}],relevance:50,restrictions:["enum"]},{name:"-webkit-background-origin",browsers:["C","S3"],relevance:50,description:"For elements rendered as a single box, specifies the background positioning area. For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages) specifies which boxes 'box-decoration-break' operates on to determine the background positioning area(s).",restrictions:["box"]},{name:"-webkit-border-image",browsers:["C","S5"],values:[{name:"auto",description:"If 'auto' is specified then the border image width is the intrinsic width or height (whichever is applicable) of the corresponding image slice. If the image does not have the required intrinsic dimension then the corresponding border-width is used instead."},{name:"fill",description:"Causes the middle part of the border-image to be preserved."},{name:"none"},{name:"repeat",description:"The image is tiled (repeated) to fill the area."},{name:"round",description:"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the image is rescaled so that it does."},{name:"space",description:"The image is tiled (repeated) to fill the area. If it does not fill the area with a whole number of tiles, the extra space is distributed around the tiles."},{name:"stretch",description:"The image is stretched to fill the area."},{name:"url()"}],relevance:50,description:"Shorthand property for setting 'border-image-source', 'border-image-slice', 'border-image-width', 'border-image-outset' and 'border-image-repeat'. Omitted values are set to their initial values.",restrictions:["length","percentage","number","url","enum"]},{name:"-webkit-box-align",browsers:["C","S3"],values:[{name:"baseline",description:"If this box orientation is inline-axis or horizontal, all children are placed with their baselines aligned, and extra space placed before or after as necessary. For block flows, the baseline of the first non-empty line box located within the element is used. For tables, the baseline of the first cell is used."},{name:"center",description:"Any extra space is divided evenly, with half placed above the child and the other half placed after the child."},{name:"end",description:"For normal direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element. For reverse direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element."},{name:"start",description:"For normal direction boxes, the top edge of each child is placed along the top of the box. Extra space is placed below the element. For reverse direction boxes, the bottom edge of each child is placed along the bottom of the box. Extra space is placed above the element."},{name:"stretch",description:"The height of each child is adjusted to that of the containing block."}],relevance:50,description:"Specifies the alignment of nested elements within an outer flexible box element.",restrictions:["enum"]},{name:"-webkit-box-direction",browsers:["C","S3"],values:[{name:"normal",description:"A box with a computed value of horizontal for box-orient displays its children from left to right. A box with a computed value of vertical displays its children from top to bottom."},{name:"reverse",description:"A box with a computed value of horizontal for box-orient displays its children from right to left. A box with a computed value of vertical displays its children from bottom to top."}],relevance:50,description:"In webkit applications, -webkit-box-direction specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge).",restrictions:["enum"]},{name:"-webkit-box-flex",browsers:["C","S3"],relevance:50,description:"Specifies an element's flexibility.",restrictions:["number"]},{name:"-webkit-box-flex-group",browsers:["C","S3"],relevance:50,description:"Flexible elements can be assigned to flex groups using the 'box-flex-group' property.",restrictions:["integer"]},{name:"-webkit-box-ordinal-group",browsers:["C","S3"],relevance:50,description:"Indicates the ordinal group the element belongs to. Elements with a lower ordinal group are displayed before those with a higher ordinal group.",restrictions:["integer"]},{name:"-webkit-box-orient",browsers:["C","S3"],values:[{name:"block-axis",description:"Elements are oriented along the box's axis."},{name:"horizontal",description:"The box displays its children from left to right in a horizontal line."},{name:"inline-axis",description:"Elements are oriented vertically."},{name:"vertical",description:"The box displays its children from stacked from top to bottom vertically."}],relevance:50,description:"In webkit applications, -webkit-box-orient specifies whether a box lays out its contents horizontally or vertically.",restrictions:["enum"]},{name:"-webkit-box-pack",browsers:["C","S3"],values:[{name:"center",description:"The extra space is divided evenly, with half placed before the first child and the other half placed after the last child."},{name:"end",description:"For normal direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child. For reverse direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child."},{name:"justify",description:"The space is divided evenly in-between each child, with none of the extra space placed before the first child or after the last child. If there is only one child, treat the pack value as if it were start."},{name:"start",description:"For normal direction boxes, the left edge of the first child is placed at the left side, with all extra space placed after the last child. For reverse direction boxes, the right edge of the last child is placed at the right side, with all extra space placed before the first child."}],relevance:50,description:"Specifies alignment of child elements within the current element in the direction of orientation.",restrictions:["enum"]},{name:"-webkit-box-reflect",browsers:["E79","S4","C4","O15"],values:[{name:"above",description:"The reflection appears above the border box."},{name:"below",description:"The reflection appears below the border box."},{name:"left",description:"The reflection appears to the left of the border box."},{name:"right",description:"The reflection appears to the right of the border box."}],status:"nonstandard",syntax:"[ above | below | right | left ]? <length>? <image>?",relevance:0,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-box-reflect"}],description:"Defines a reflection of a border box."},{name:"-webkit-box-sizing",browsers:["C","S3"],values:[{name:"border-box",description:"The specified width and height (and respective min/max properties) on this element determine the border box of the element."},{name:"content-box",description:"Behavior of width and height as specified by CSS2.1. The specified width and height (and respective min/max properties) apply to the width and height respectively of the content box of the element."}],relevance:50,description:"Box Model addition in CSS3.",restrictions:["enum"]},{name:"-webkit-break-after",browsers:["S7"],values:[{name:"always",description:"Always force a page break before/after the generated box."},{name:"auto",description:"Neither force nor forbid a page/column break before/after the generated box."},{name:"avoid",description:"Avoid a page/column break before/after the generated box."},{name:"avoid-column",description:"Avoid a column break before/after the generated box."},{name:"avoid-page",description:"Avoid a page break before/after the generated box."},{name:"avoid-region"},{name:"column",description:"Always force a column break before/after the generated box."},{name:"left",description:"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page."},{name:"page",description:"Always force a page break before/after the generated box."},{name:"region"},{name:"right",description:"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page."}],relevance:50,description:"Describes the page/column break behavior before the generated box.",restrictions:["enum"]},{name:"-webkit-break-before",browsers:["S7"],values:[{name:"always",description:"Always force a page break before/after the generated box."},{name:"auto",description:"Neither force nor forbid a page/column break before/after the generated box."},{name:"avoid",description:"Avoid a page/column break before/after the generated box."},{name:"avoid-column",description:"Avoid a column break before/after the generated box."},{name:"avoid-page",description:"Avoid a page break before/after the generated box."},{name:"avoid-region"},{name:"column",description:"Always force a column break before/after the generated box."},{name:"left",description:"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page."},{name:"page",description:"Always force a page break before/after the generated box."},{name:"region"},{name:"right",description:"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page."}],relevance:50,description:"Describes the page/column break behavior before the generated box.",restrictions:["enum"]},{name:"-webkit-break-inside",browsers:["S7"],values:[{name:"auto",description:"Neither force nor forbid a page/column break inside the generated box."},{name:"avoid",description:"Avoid a page/column break inside the generated box."},{name:"avoid-column",description:"Avoid a column break inside the generated box."},{name:"avoid-page",description:"Avoid a page break inside the generated box."},{name:"avoid-region"}],relevance:50,description:"Describes the page/column break behavior inside the generated box.",restrictions:["enum"]},{name:"-webkit-column-break-after",browsers:["C","S3"],values:[{name:"always",description:"Always force a page break before/after the generated box."},{name:"auto",description:"Neither force nor forbid a page/column break before/after the generated box."},{name:"avoid",description:"Avoid a page/column break before/after the generated box."},{name:"avoid-column",description:"Avoid a column break before/after the generated box."},{name:"avoid-page",description:"Avoid a page break before/after the generated box."},{name:"avoid-region"},{name:"column",description:"Always force a column break before/after the generated box."},{name:"left",description:"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page."},{name:"page",description:"Always force a page break before/after the generated box."},{name:"region"},{name:"right",description:"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page."}],relevance:50,description:"Describes the page/column break behavior before the generated box.",restrictions:["enum"]},{name:"-webkit-column-break-before",browsers:["C","S3"],values:[{name:"always",description:"Always force a page break before/after the generated box."},{name:"auto",description:"Neither force nor forbid a page/column break before/after the generated box."},{name:"avoid",description:"Avoid a page/column break before/after the generated box."},{name:"avoid-column",description:"Avoid a column break before/after the generated box."},{name:"avoid-page",description:"Avoid a page break before/after the generated box."},{name:"avoid-region"},{name:"column",description:"Always force a column break before/after the generated box."},{name:"left",description:"Force one or two page breaks before/after the generated box so that the next page is formatted as a left page."},{name:"page",description:"Always force a page break before/after the generated box."},{name:"region"},{name:"right",description:"Force one or two page breaks before/after the generated box so that the next page is formatted as a right page."}],relevance:50,description:"Describes the page/column break behavior before the generated box.",restrictions:["enum"]},{name:"-webkit-column-break-inside",browsers:["C","S3"],values:[{name:"auto",description:"Neither force nor forbid a page/column break inside the generated box."},{name:"avoid",description:"Avoid a page/column break inside the generated box."},{name:"avoid-column",description:"Avoid a column break inside the generated box."},{name:"avoid-page",description:"Avoid a page break inside the generated box."},{name:"avoid-region"}],relevance:50,description:"Describes the page/column break behavior inside the generated box.",restrictions:["enum"]},{name:"-webkit-column-count",browsers:["C","S3"],values:[{name:"auto",description:"Determines the number of columns by the 'column-width' property and the element width."}],relevance:50,description:"Describes the optimal number of columns into which the content of the element will be flowed.",restrictions:["integer"]},{name:"-webkit-column-gap",browsers:["C","S3"],values:[{name:"normal",description:"User agent specific and typically equivalent to 1em."}],relevance:50,description:"Sets the gap between columns. If there is a column rule between columns, it will appear in the middle of the gap.",restrictions:["length"]},{name:"-webkit-column-rule",browsers:["C","S3"],relevance:50,description:"This property is a shorthand for setting 'column-rule-width', 'column-rule-style', and 'column-rule-color' at the same place in the style sheet. Omitted values are set to their initial values.",restrictions:["length","line-width","line-style","color"]},{name:"-webkit-column-rule-color",browsers:["C","S3"],relevance:50,description:"Sets the color of the column rule",restrictions:["color"]},{name:"-webkit-column-rule-style",browsers:["C","S3"],relevance:50,description:"Sets the style of the rule between columns of an element.",restrictions:["line-style"]},{name:"-webkit-column-rule-width",browsers:["C","S3"],relevance:50,description:"Sets the width of the rule between columns. Negative values are not allowed.",restrictions:["length","line-width"]},{name:"-webkit-columns",browsers:["C","S3"],values:[{name:"auto",description:"The width depends on the values of other properties."}],relevance:50,description:"A shorthand property which sets both 'column-width' and 'column-count'.",restrictions:["length","integer"]},{name:"-webkit-column-span",browsers:["C","S3"],values:[{name:"all",description:"The element spans across all columns. Content in the normal flow that appears before the element is automatically balanced across all columns before the element appear."},{name:"none",description:"The element does not span multiple columns."}],relevance:50,description:"Describes the page/column break behavior after the generated box.",restrictions:["enum"]},{name:"-webkit-column-width",browsers:["C","S3"],values:[{name:"auto",description:"The width depends on the values of other properties."}],relevance:50,description:"This property describes the width of columns in multicol elements.",restrictions:["length"]},{name:"-webkit-filter",browsers:["C18","O15","S6"],values:[{name:"none",description:"No filter effects are applied."},{name:"blur()",description:"Applies a Gaussian blur to the input image."},{name:"brightness()",description:"Applies a linear multiplier to input image, making it appear more or less bright."},{name:"contrast()",description:"Adjusts the contrast of the input."},{name:"drop-shadow()",description:"Applies a drop shadow effect to the input image."},{name:"grayscale()",description:"Converts the input image to grayscale."},{name:"hue-rotate()",description:"Applies a hue rotation on the input image. "},{name:"invert()",description:"Inverts the samples in the input image."},{name:"opacity()",description:"Applies transparency to the samples in the input image."},{name:"saturate()",description:"Saturates the input image."},{name:"sepia()",description:"Converts the input image to sepia."},{name:"url()",description:"A filter reference to a <filter> element."}],relevance:50,description:"Processes an element\u2019s rendering before it is displayed in the document, by applying one or more filter effects.",restrictions:["enum","url"]},{name:"-webkit-flow-from",browsers:["S6.1"],values:[{name:"none",description:"The block container is not a CSS Region."}],relevance:50,description:"Makes a block container a region and associates it with a named flow.",restrictions:["identifier"]},{name:"-webkit-flow-into",browsers:["S6.1"],values:[{name:"none",description:"The element is not moved to a named flow and normal CSS processing takes place."}],relevance:50,description:"Places an element or its contents into a named flow.",restrictions:["identifier"]},{name:"-webkit-font-feature-settings",browsers:["C16"],values:[{name:'"c2cs"'},{name:'"dlig"'},{name:'"kern"'},{name:'"liga"'},{name:'"lnum"'},{name:'"onum"'},{name:'"smcp"'},{name:'"swsh"'},{name:'"tnum"'},{name:"normal",description:"No change in glyph substitution or positioning occurs."},{name:"off"},{name:"on"}],relevance:50,description:"This property provides low-level control over OpenType font features. It is intended as a way of providing access to font features that are not widely used but are needed for a particular use case.",restrictions:["string","integer"]},{name:"-webkit-hyphens",browsers:["S5.1"],values:[{name:"auto",description:"Conditional hyphenation characters inside a word, if present, take priority over automatic resources when determining hyphenation points within the word."},{name:"manual",description:"Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities"},{name:"none",description:"Words are not broken at line breaks, even if characters inside the word suggest line break points."}],relevance:50,description:"Controls whether hyphenation is allowed to create more break opportunities within a line of text.",restrictions:["enum"]},{name:"-webkit-line-break",browsers:["C","S3"],values:[{name:"after-white-space"},{name:"normal"}],relevance:50,description:"Specifies line-breaking rules for CJK (Chinese, Japanese, and Korean) text."},{name:"-webkit-margin-bottom-collapse",browsers:["C","S3"],values:[{name:"collapse"},{name:"discard"},{name:"separate"}],relevance:50,restrictions:["enum"]},{name:"-webkit-margin-collapse",browsers:["C","S3"],values:[{name:"collapse"},{name:"discard"},{name:"separate"}],relevance:50,restrictions:["enum"]},{name:"-webkit-margin-start",browsers:["C","S3"],values:[{name:"auto"}],relevance:50,restrictions:["percentage","length"]},{name:"-webkit-margin-top-collapse",browsers:["C","S3"],values:[{name:"collapse"},{name:"discard"},{name:"separate"}],relevance:50,restrictions:["enum"]},{name:"-webkit-mask-clip",browsers:["C","O15","S4"],status:"nonstandard",syntax:"[ <box> | border | padding | content | text ]#",relevance:0,description:"Determines the mask painting area, which determines the area that is affected by the mask.",restrictions:["box"]},{name:"-webkit-mask-image",browsers:["C","O15","S4"],values:[{name:"none",description:"Counts as a transparent black image layer."},{name:"url()",description:"Reference to a <mask element or to a CSS image."}],status:"nonstandard",syntax:"<mask-reference>#",relevance:0,description:"Sets the mask layer image of an element.",restrictions:["url","image","enum"]},{name:"-webkit-mask-origin",browsers:["C","O15","S4"],status:"nonstandard",syntax:"[ <box> | border | padding | content ]#",relevance:0,description:"Specifies the mask positioning area.",restrictions:["box"]},{name:"-webkit-mask-repeat",browsers:["C","O15","S4"],status:"nonstandard",syntax:"<repeat-style>#",relevance:0,description:"Specifies how mask layer images are tiled after they have been sized and positioned.",restrictions:["repeat"]},{name:"-webkit-mask-size",browsers:["C","O15","S4"],values:[{name:"auto",description:"Resolved by using the image\u2019s intrinsic ratio and the size of the other dimension, or failing that, using the image\u2019s intrinsic size, or failing that, treating it as 100%."},{name:"contain",description:"Scale the image, while preserving its intrinsic aspect ratio (if any), to the largest size such that both its width and its height can fit inside the background positioning area."},{name:"cover",description:"Scale the image, while preserving its intrinsic aspect ratio (if any), to the smallest size such that both its width and its height can completely cover the background positioning area."}],status:"nonstandard",syntax:"<bg-size>#",relevance:0,description:"Specifies the size of the mask layer images.",restrictions:["length","percentage","enum"]},{name:"-webkit-nbsp-mode",browsers:["C","S3"],values:[{name:"normal"},{name:"space"}],relevance:50,description:"Defines the behavior of nonbreaking spaces within text."},{name:"-webkit-overflow-scrolling",browsers:["C","S5"],values:[{name:"auto"},{name:"touch"}],status:"nonstandard",syntax:"auto | touch",relevance:0,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-overflow-scrolling"}],description:"Specifies whether to use native-style scrolling in an overflow:scroll element."},{name:"-webkit-padding-start",browsers:["C","S3"],relevance:50,restrictions:["percentage","length"]},{name:"-webkit-perspective",browsers:["C","S4"],values:[{name:"none",description:"No perspective transform is applied."}],relevance:50,description:"Applies the same transform as the perspective(<number>) transform function, except that it applies only to the positioned or transformed children of the element, not to the transform on the element itself.",restrictions:["length"]},{name:"-webkit-perspective-origin",browsers:["C","S4"],relevance:50,description:"Establishes the origin for the perspective property. It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.",restrictions:["position","percentage","length"]},{name:"-webkit-region-fragment",browsers:["S7"],values:[{name:"auto",description:"Content flows as it would in a regular content box."},{name:"break",description:"If the content fits within the CSS Region, then this property has no effect."}],relevance:50,description:"The 'region-fragment' property controls the behavior of the last region associated with a named flow.",restrictions:["enum"]},{name:"-webkit-tap-highlight-color",browsers:["E12","C16","O\u226415"],status:"nonstandard",syntax:"<color>",relevance:0,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-tap-highlight-color"}],restrictions:["color"]},{name:"-webkit-text-fill-color",browsers:["E12","FF49","S3","C1","O15"],status:"nonstandard",syntax:"<color>",relevance:0,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-fill-color"}],restrictions:["color"]},{name:"-webkit-text-size-adjust",browsers:["E","C","S3"],values:[{name:"auto",description:"Renderers must use the default size adjustment when displaying on a small device."},{name:"none",description:"Renderers must not do size adjustment when displaying on a small device."}],relevance:50,description:"Specifies a size adjustment for displaying text content in mobile browsers.",restrictions:["percentage"]},{name:"-webkit-text-stroke",browsers:["E15","FF49","S3","C4","O15"],status:"nonstandard",syntax:"<length> || <color>",relevance:0,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke"}],restrictions:["length","line-width","color","percentage"]},{name:"-webkit-text-stroke-color",browsers:["E15","FF49","S3","C1","O15"],status:"nonstandard",syntax:"<color>",relevance:0,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-color"}],restrictions:["color"]},{name:"-webkit-text-stroke-width",browsers:["E15","FF49","S3","C1","O15"],status:"nonstandard",syntax:"<length>",relevance:0,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-width"}],restrictions:["length","line-width","percentage"]},{name:"-webkit-touch-callout",browsers:["S3"],values:[{name:"none"}],status:"nonstandard",syntax:"default | none",relevance:0,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-touch-callout"}],restrictions:["enum"]},{name:"-webkit-transform",browsers:["C","O12","S3.1"],values:[{name:"matrix()",description:"Specifies a 2D transformation in the form of a transformation matrix of six values. matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix [a b c d e f]"},{name:"matrix3d()",description:"Specifies a 3D transformation as a 4x4 homogeneous matrix of 16 values in column-major order."},{name:"none"},{name:"perspective()",description:"Specifies a perspective projection matrix."},{name:"rotate()",description:"Specifies a 2D rotation by the angle specified in the parameter about the origin of the element, as defined by the transform-origin property."},{name:"rotate3d()",description:"Specifies a clockwise 3D rotation by the angle specified in last parameter about the [x,y,z] direction vector described by the first 3 parameters."},{name:"rotateX('angle')",description:"Specifies a clockwise rotation by the given angle about the X axis."},{name:"rotateY('angle')",description:"Specifies a clockwise rotation by the given angle about the Y axis."},{name:"rotateZ('angle')",description:"Specifies a clockwise rotation by the given angle about the Z axis."},{name:"scale()",description:"Specifies a 2D scale operation by the [sx,sy] scaling vector described by the 2 parameters. If the second parameter is not provided, it is takes a value equal to the first."},{name:"scale3d()",description:"Specifies a 3D scale operation by the [sx,sy,sz] scaling vector described by the 3 parameters."},{name:"scaleX()",description:"Specifies a scale operation using the [sx,1] scaling vector, where sx is given as the parameter."},{name:"scaleY()",description:"Specifies a scale operation using the [sy,1] scaling vector, where sy is given as the parameter."},{name:"scaleZ()",description:"Specifies a scale operation using the [1,1,sz] scaling vector, where sz is given as the parameter."},{name:"skew()",description:"Specifies a skew transformation along the X and Y axes. The first angle parameter specifies the skew on the X axis. The second angle parameter specifies the skew on the Y axis. If the second parameter is not given then a value of 0 is used for the Y angle (ie: no skew on the Y axis)."},{name:"skewX()",description:"Specifies a skew transformation along the X axis by the given angle."},{name:"skewY()",description:"Specifies a skew transformation along the Y axis by the given angle."},{name:"translate()",description:"Specifies a 2D translation by the vector [tx, ty], where tx is the first translation-value parameter and ty is the optional second translation-value parameter."},{name:"translate3d()",description:"Specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively."},{name:"translateX()",description:"Specifies a translation by the given amount in the X direction."},{name:"translateY()",description:"Specifies a translation by the given amount in the Y direction."},{name:"translateZ()",description:"Specifies a translation by the given amount in the Z direction. Note that percentage values are not allowed in the translateZ translation-value, and if present are evaluated as 0."}],relevance:50,description:"A two-dimensional transformation is applied to an element through the 'transform' property. This property contains a list of transform functions similar to those allowed by SVG.",restrictions:["enum"]},{name:"-webkit-transform-origin",browsers:["C","O15","S3.1"],relevance:50,description:"Establishes the origin of transformation for an element.",restrictions:["position","length","percentage"]},{name:"-webkit-transform-origin-x",browsers:["C","S3.1"],relevance:50,description:"The x coordinate of the origin for transforms applied to an element with respect to its border box.",restrictions:["length","percentage"]},{name:"-webkit-transform-origin-y",browsers:["C","S3.1"],relevance:50,description:"The y coordinate of the origin for transforms applied to an element with respect to its border box.",restrictions:["length","percentage"]},{name:"-webkit-transform-origin-z",browsers:["C","S4"],relevance:50,description:"The z coordinate of the origin for transforms applied to an element with respect to its border box.",restrictions:["length","percentage"]},{name:"-webkit-transform-style",browsers:["C","S4"],values:[{name:"flat",description:"All children of this element are rendered flattened into the 2D plane of the element."}],relevance:50,description:"Defines how nested elements are rendered in 3D space.",restrictions:["enum"]},{name:"-webkit-transition",browsers:["C","O12","S5"],values:[{name:"all",description:"Every property that is able to undergo a transition will do so."},{name:"none",description:"No property will transition."}],relevance:50,description:"Shorthand property combines four of the transition properties into a single property.",restrictions:["time","property","timing-function","enum"]},{name:"-webkit-transition-delay",browsers:["C","O12","S5"],relevance:50,description:"Defines when the transition will start. It allows a transition to begin execution some period of time from when it is applied.",restrictions:["time"]},{name:"-webkit-transition-duration",browsers:["C","O12","S5"],relevance:50,description:"Specifies how long the transition from the old value to the new value should take.",restrictions:["time"]},{name:"-webkit-transition-property",browsers:["C","O12","S5"],values:[{name:"all",description:"Every property that is able to undergo a transition will do so."},{name:"none",description:"No property will transition."}],relevance:50,description:"Specifies the name of the CSS property to which the transition is applied.",restrictions:["property"]},{name:"-webkit-transition-timing-function",browsers:["C","O12","S5"],relevance:50,description:"Describes how the intermediate values used during a transition will be calculated.",restrictions:["timing-function"]},{name:"-webkit-user-drag",browsers:["S3"],values:[{name:"auto"},{name:"element"},{name:"none"}],relevance:50,restrictions:["enum"]},{name:"-webkit-user-modify",browsers:["C","S3"],values:[{name:"read-only"},{name:"read-write"},{name:"read-write-plaintext-only"}],status:"nonstandard",syntax:"read-only | read-write | read-write-plaintext-only",relevance:0,description:"Determines whether a user can edit the content of an element.",restrictions:["enum"]},{name:"-webkit-user-select",browsers:["C","S3"],values:[{name:"auto"},{name:"none"},{name:"text"}],relevance:50,description:"Controls the appearance of selection.",restrictions:["enum"]},{name:"white-space",values:[{name:"normal",description:"Sets 'white-space-collapsing' to 'collapse' and 'text-wrap' to 'normal'."},{name:"nowrap",description:"Sets 'white-space-collapsing' to 'collapse' and 'text-wrap' to 'none'."},{name:"pre",description:"Sets 'white-space-collapsing' to 'preserve' and 'text-wrap' to 'none'."},{name:"pre-line",description:"Sets 'white-space-collapsing' to 'preserve-breaks' and 'text-wrap' to 'normal'."},{name:"pre-wrap",description:"Sets 'white-space-collapsing' to 'preserve' and 'text-wrap' to 'normal'."}],syntax:"normal | pre | nowrap | pre-wrap | pre-line | break-spaces",relevance:89,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/white-space"}],description:"Shorthand property for the 'white-space-collapsing' and 'text-wrap' properties.",restrictions:["enum"]},{name:"widows",browsers:["E12","S1.3","C25","IE8","O9.2"],syntax:"<integer>",relevance:51,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/widows"}],description:"Specifies the minimum number of line boxes of a block container that must be left in a fragment after a break.",restrictions:["integer"]},{name:"width",values:[{name:"auto",description:"The width depends on the values of other properties."},{name:"fit-content",description:"Use the fit-content inline size or fit-content block size, as appropriate to the writing mode."},{name:"max-content",description:"Use the max-content inline size or max-content block size, as appropriate to the writing mode."},{name:"min-content",description:"Use the min-content inline size or min-content block size, as appropriate to the writing mode."}],syntax:"<viewport-length>{1,2}",relevance:96,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/width"}],description:"Specifies the width of the content area, padding area or border area (depending on 'box-sizing') of certain boxes.",restrictions:["length","percentage"]},{name:"will-change",browsers:["E79","FF36","S9.1","C36","O24"],values:[{name:"auto",description:"Expresses no particular intent."},{name:"contents",description:"Indicates that the author expects to animate or change something about the element\u2019s contents in the near future."},{name:"scroll-position",description:"Indicates that the author expects to animate or change the scroll position of the element in the near future."}],syntax:"auto | <animateable-feature>#",relevance:62,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/will-change"}],description:"Provides a rendering hint to the user agent, stating what kinds of changes the author expects to perform on the element.",restrictions:["enum","identifier"]},{name:"word-break",values:[{name:"break-all",description:"Lines may break between any two grapheme clusters for non-CJK scripts."},{name:"keep-all",description:"Block characters can no longer create implied break points."},{name:"normal",description:"Breaks non-CJK scripts according to their own rules."}],syntax:"normal | break-all | keep-all | break-word",relevance:74,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/word-break"}],description:"Specifies line break opportunities for non-CJK scripts.",restrictions:["enum"]},{name:"word-spacing",values:[{name:"normal",description:"No additional spacing is applied. Computes to zero."}],syntax:"normal | <length-percentage>",relevance:58,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/word-spacing"}],description:"Specifies additional spacing between \u201cwords\u201d.",restrictions:["length","percentage"]},{name:"word-wrap",values:[{name:"break-word",description:"An otherwise unbreakable sequence of characters may be broken at an arbitrary point if there are no otherwise-acceptable break points in the line."},{name:"normal",description:"Lines may break only at allowed break points."}],syntax:"normal | break-word",relevance:78,description:"Specifies whether the UA may break within a word to prevent overflow when an otherwise-unbreakable string is too long to fit.",restrictions:["enum"]},{name:"writing-mode",values:[{name:"horizontal-tb",description:"Top-to-bottom block flow direction. The writing mode is horizontal."},{name:"sideways-lr",description:"Left-to-right block flow direction. The writing mode is vertical, while the typographic mode is horizontal."},{name:"sideways-rl",description:"Right-to-left block flow direction. The writing mode is vertical, while the typographic mode is horizontal."},{name:"vertical-lr",description:"Left-to-right block flow direction. The writing mode is vertical."},{name:"vertical-rl",description:"Right-to-left block flow direction. The writing mode is vertical."}],syntax:"horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/writing-mode"}],description:"This is a shorthand property for both 'direction' and 'block-progression'.",restrictions:["enum"]},{name:"z-index",values:[{name:"auto",description:"The stack level of the generated box in the current stacking context is 0. The box does not establish a new stacking context unless it is the root element."}],syntax:"auto | <integer>",relevance:92,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/z-index"}],description:"For a positioned box, the 'z-index' property specifies the stack level of the box in the current stacking context and whether the box establishes a local stacking context.",restrictions:["integer"]},{name:"zoom",browsers:["E12","S3.1","C1","IE5.5","O15"],values:[{name:"normal"}],syntax:"auto | <number> | <percentage>",relevance:70,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/zoom"}],description:"Non-standard. Specifies the magnification scale of the object. See 'transform: scale()' for a standards-based alternative.",restrictions:["enum","integer","number","percentage"]},{name:"-ms-ime-align",status:"nonstandard",syntax:"auto | after",relevance:0,description:"Aligns the Input Method Editor (IME) candidate window box relative to the element on which the IME composition is active."},{name:"-moz-binding",status:"nonstandard",syntax:"<url> | none",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-binding"}],description:"The -moz-binding CSS property is used by Mozilla-based applications to attach an XBL binding to a DOM element."},{name:"-moz-context-properties",status:"nonstandard",syntax:"none | [ fill | fill-opacity | stroke | stroke-opacity ]#",relevance:0,browsers:["FF55"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-context-properties"}],description:"If you reference an SVG image in a webpage (such as with the <img> element or as a background image), the SVG image can coordinate with the embedding element (its context) to have the image adopt property values set on the embedding element. To do this the embedding element needs to list the properties that are to be made available to the image by listing them as values of the -moz-context-properties property, and the image needs to opt in to using those properties by using values such as the context-fill value.\n\nThis feature is available since Firefox 55, but is only currently supported with SVG images loaded via chrome:// or resource:// URLs. To experiment with the feature in SVG on the Web it is necessary to set the svg.context-properties.content.enabled pref to true."},{name:"-moz-float-edge",status:"nonstandard",syntax:"border-box | content-box | margin-box | padding-box",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-float-edge"}],description:"The non-standard -moz-float-edge CSS property specifies whether the height and width properties of the element include the margin, border, or padding thickness."},{name:"-moz-force-broken-image-icon",status:"nonstandard",syntax:"<integer [0,1]>",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-force-broken-image-icon"}],description:"The -moz-force-broken-image-icon extended CSS property can be used to force the broken image icon to be shown even when a broken image has an alt attribute."},{name:"-moz-image-region",status:"nonstandard",syntax:"<shape> | auto",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-image-region"}],description:"For certain XUL elements and pseudo-elements that use an image from the list-style-image property, this property specifies a region of the image that is used in place of the whole image. This allows elements to use different pieces of the same image to improve performance."},{name:"-moz-orient",status:"nonstandard",syntax:"inline | block | horizontal | vertical",relevance:0,browsers:["FF6"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-orient"}],description:"The -moz-orient CSS property specifies the orientation of the element to which it's applied."},{name:"-moz-outline-radius",status:"nonstandard",syntax:"<outline-radius>{1,4} [ / <outline-radius>{1,4} ]?",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius"}],description:"In Mozilla applications like Firefox, the -moz-outline-radius CSS property can be used to give an element's outline rounded corners."},{name:"-moz-outline-radius-bottomleft",status:"nonstandard",syntax:"<outline-radius>",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-bottomleft"}],description:"In Mozilla applications, the -moz-outline-radius-bottomleft CSS property can be used to round the bottom-left corner of an element's outline."},{name:"-moz-outline-radius-bottomright",status:"nonstandard",syntax:"<outline-radius>",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-bottomright"}],description:"In Mozilla applications, the -moz-outline-radius-bottomright CSS property can be used to round the bottom-right corner of an element's outline."},{name:"-moz-outline-radius-topleft",status:"nonstandard",syntax:"<outline-radius>",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-topleft"}],description:"In Mozilla applications, the -moz-outline-radius-topleft CSS property can be used to round the top-left corner of an element's outline."},{name:"-moz-outline-radius-topright",status:"nonstandard",syntax:"<outline-radius>",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-topright"}],description:"In Mozilla applications, the -moz-outline-radius-topright CSS property can be used to round the top-right corner of an element's outline."},{name:"-moz-stack-sizing",status:"nonstandard",syntax:"ignore | stretch-to-fit",relevance:0,description:"-moz-stack-sizing is an extended CSS property. Normally, a stack will change its size so that all of its child elements are completely visible. For example, moving a child of the stack far to the right will widen the stack so the child remains visible."},{name:"-moz-text-blink",status:"nonstandard",syntax:"none | blink",relevance:0,description:"The -moz-text-blink non-standard Mozilla CSS extension specifies the blink mode."},{name:"-moz-user-input",status:"nonstandard",syntax:"auto | none | enabled | disabled",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-user-input"}],description:"In Mozilla applications, -moz-user-input determines if an element will accept user input."},{name:"-moz-user-modify",status:"nonstandard",syntax:"read-only | read-write | write-only",relevance:0,description:"The -moz-user-modify property has no effect. It was originally planned to determine whether or not the content of an element can be edited by a user."},{name:"-moz-window-dragging",status:"nonstandard",syntax:"drag | no-drag",relevance:0,description:"The -moz-window-dragging CSS property specifies whether a window is draggable or not. It only works in Chrome code, and only on Mac OS X."},{name:"-moz-window-shadow",status:"nonstandard",syntax:"default | menu | tooltip | sheet | none",relevance:0,description:"The -moz-window-shadow CSS property specifies whether a window will have a shadow. It only works on Mac OS X."},{name:"-webkit-border-before",status:"nonstandard",syntax:"<'border-width'> || <'border-style'> || <color>",relevance:0,browsers:["E79","S5.1","C8","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-border-before"}],description:"The -webkit-border-before CSS property is a shorthand property for setting the individual logical block start border property values in a single place in the style sheet."},{name:"-webkit-border-before-color",status:"nonstandard",syntax:"<color>",relevance:0,description:"The -webkit-border-before-color CSS property sets the color of the individual logical block start border in a single place in the style sheet."},{name:"-webkit-border-before-style",status:"nonstandard",syntax:"<'border-style'>",relevance:0,description:"The -webkit-border-before-style CSS property sets the style of the individual logical block start border in a single place in the style sheet."},{name:"-webkit-border-before-width",status:"nonstandard",syntax:"<'border-width'>",relevance:0,description:"The -webkit-border-before-width CSS property sets the width of the individual logical block start border in a single place in the style sheet."},{name:"-webkit-line-clamp",syntax:"none | <integer>",relevance:50,browsers:["E17","FF68","S5","C6","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-line-clamp"}],description:"The -webkit-line-clamp CSS property allows limiting of the contents of a block container to the specified number of lines."},{name:"-webkit-mask",status:"nonstandard",syntax:"[ <mask-reference> || <position> [ / <bg-size> ]? || <repeat-style> || [ <box> | border | padding | content | text ] || [ <box> | border | padding | content ] ]#",relevance:0,description:"The mask CSS property alters the visibility of an element by either partially or fully hiding it. This is accomplished by either masking or clipping the image at specific points."},{name:"-webkit-mask-attachment",status:"nonstandard",syntax:"<attachment>#",relevance:0,browsers:["S4","C1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-attachment"}],description:"If a -webkit-mask-image is specified, -webkit-mask-attachment determines whether the mask image's position is fixed within the viewport, or scrolls along with its containing block."},{name:"-webkit-mask-composite",status:"nonstandard",syntax:"<composite-style>#",relevance:0,browsers:["E18","FF53","S3.2","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-composite"}],description:"The -webkit-mask-composite property specifies the manner in which multiple mask images applied to the same element are composited with one another. Mask images are composited in the opposite order that they are declared with the -webkit-mask-image property."},{name:"-webkit-mask-position",status:"nonstandard",syntax:"<position>#",relevance:0,description:"The mask-position CSS property sets the initial position, relative to the mask position layer defined by mask-origin, for each defined mask image."},{name:"-webkit-mask-position-x",status:"nonstandard",syntax:"[ <length-percentage> | left | center | right ]#",relevance:0,browsers:["E18","FF49","S3.2","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-x"}],description:"The -webkit-mask-position-x CSS property sets the initial horizontal position of a mask image."},{name:"-webkit-mask-position-y",status:"nonstandard",syntax:"[ <length-percentage> | top | center | bottom ]#",relevance:0,browsers:["E18","FF49","S3.2","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-y"}],description:"The -webkit-mask-position-y CSS property sets the initial vertical position of a mask image."},{name:"-webkit-mask-repeat-x",status:"nonstandard",syntax:"repeat | no-repeat | space | round",relevance:0,browsers:["E18","S5","C3","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-x"}],description:"The -webkit-mask-repeat-x property specifies whether and how a mask image is repeated (tiled) horizontally."},{name:"-webkit-mask-repeat-y",status:"nonstandard",syntax:"repeat | no-repeat | space | round",relevance:0,browsers:["E18","S5","C3","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-y"}],description:"The -webkit-mask-repeat-y property specifies whether and how a mask image is repeated (tiled) vertically."},{name:"align-tracks",status:"experimental",syntax:"[ normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position> ]#",relevance:50,browsers:["FF77"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/align-tracks"}],description:"The align-tracks CSS property sets the alignment in the masonry axis for grid containers that have masonry in their block axis."},{name:"appearance",status:"experimental",syntax:"none | auto | textfield | menulist-button | <compat-auto>",relevance:60,browsers:["E84","FF80","S3","C84","O70"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/appearance"}],description:"Changes the appearance of buttons and other controls to resemble native controls."},{name:"aspect-ratio",status:"experimental",syntax:"auto | <ratio>",relevance:52,browsers:["E88","FF83","C88"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/aspect-ratio"}],description:"The aspect-ratio CSS property sets a preferred aspect ratio for the box, which will be used in the calculation of auto sizes and some other layout functions."},{name:"azimuth",status:"obsolete",syntax:"<angle> | [ [ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards",relevance:0,description:"In combination with elevation, the azimuth CSS property enables different audio sources to be positioned spatially for aural presentation. This is important in that it provides a natural way to tell several voices apart, as each can be positioned to originate at a different location on the sound stage. Stereo output produce a lateral sound stage, while binaural headphones and multi-speaker setups allow for a fully three-dimensional stage."},{name:"backdrop-filter",syntax:"none | <filter-function-list>",relevance:51,browsers:["E17","FF70","S9","C76","O34"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/backdrop-filter"}],description:"The backdrop-filter CSS property lets you apply graphical effects such as blurring or color shifting to the area behind an element. Because it applies to everything behind the element, to see the effect you must make the element or its background at least partially transparent."},{name:"border-block",syntax:"<'border-top-width'> || <'border-top-style'> || <color>",relevance:50,browsers:["E79","FF66","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-block"}],description:"The border-block CSS property is a shorthand property for setting the individual logical block border property values in a single place in the style sheet."},{name:"border-block-color",syntax:"<'border-top-color'>{1,2}",relevance:50,browsers:["E79","FF66","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-block-color"}],description:"The border-block-color CSS property defines the color of the logical block borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation."},{name:"border-block-style",syntax:"<'border-top-style'>",relevance:50,browsers:["E79","FF66","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-block-style"}],description:"The border-block-style CSS property defines the style of the logical block borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation."},{name:"border-block-width",syntax:"<'border-top-width'>",relevance:50,browsers:["E79","FF66","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-block-width"}],description:"The border-block-width CSS property defines the width of the logical block borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation."},{name:"border-end-end-radius",syntax:"<length-percentage>{1,2}",relevance:50,browsers:["FF66","C89"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-end-end-radius"}],description:"The border-end-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on on the element's writing-mode, direction, and text-orientation."},{name:"border-end-start-radius",syntax:"<length-percentage>{1,2}",relevance:50,browsers:["FF66","C89"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-end-start-radius"}],description:"The border-end-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation."},{name:"border-inline",syntax:"<'border-top-width'> || <'border-top-style'> || <color>",relevance:50,browsers:["E79","FF66","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-inline"}],description:"The border-inline CSS property is a shorthand property for setting the individual logical inline border property values in a single place in the style sheet."},{name:"border-inline-color",syntax:"<'border-top-color'>{1,2}",relevance:50,browsers:["E79","FF66","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-color"}],description:"The border-inline-color CSS property defines the color of the logical inline borders of an element, which maps to a physical border color depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-color and border-bottom-color, or border-right-color and border-left-color property depending on the values defined for writing-mode, direction, and text-orientation."},{name:"border-inline-style",syntax:"<'border-top-style'>",relevance:50,browsers:["E79","FF66","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-style"}],description:"The border-inline-style CSS property defines the style of the logical inline borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-style and border-bottom-style, or border-left-style and border-right-style properties depending on the values defined for writing-mode, direction, and text-orientation."},{name:"border-inline-width",syntax:"<'border-top-width'>",relevance:50,browsers:["E79","FF66","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-width"}],description:"The border-inline-width CSS property defines the width of the logical inline borders of an element, which maps to a physical border width depending on the element's writing mode, directionality, and text orientation. It corresponds to the border-top-width and border-bottom-width, or border-left-width, and border-right-width property depending on the values defined for writing-mode, direction, and text-orientation."},{name:"border-start-end-radius",syntax:"<length-percentage>{1,2}",relevance:50,browsers:["FF66","C89"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-start-end-radius"}],description:"The border-start-end-radius CSS property defines a logical border radius on an element, which maps to a physical border radius depending on the element's writing-mode, direction, and text-orientation."},{name:"border-start-start-radius",syntax:"<length-percentage>{1,2}",relevance:50,browsers:["FF66","C89"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/border-start-start-radius"}],description:"The border-start-start-radius CSS property defines a logical border radius on an element, which maps to a physical border radius that depends on the element's writing-mode, direction, and text-orientation."},{name:"box-align",status:"nonstandard",syntax:"start | center | end | baseline | stretch",relevance:0,browsers:["E12","FF1","S3","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/box-align"}],description:"The box-align CSS property specifies how an element aligns its contents across its layout in a perpendicular direction. The effect of the property is only visible if there is extra space in the box."},{name:"box-direction",status:"nonstandard",syntax:"normal | reverse | inherit",relevance:0,browsers:["E12","FF1","S3","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/box-direction"}],description:"The box-direction CSS property specifies whether a box lays out its contents normally (from the top or left edge), or in reverse (from the bottom or right edge)."},{name:"box-flex",status:"nonstandard",syntax:"<number>",relevance:0,browsers:["E12","FF1","S3","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/box-flex"}],description:"The -moz-box-flex and -webkit-box-flex CSS properties specify how a -moz-box or -webkit-box grows to fill the box that contains it, in the direction of the containing box's layout."},{name:"box-flex-group",status:"nonstandard",syntax:"<integer>",relevance:0,browsers:["S3","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/box-flex-group"}],description:"The box-flex-group CSS property assigns the flexbox's child elements to a flex group."},{name:"box-lines",status:"nonstandard",syntax:"single | multiple",relevance:0,browsers:["S3","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/box-lines"}],description:"The box-lines CSS property determines whether the box may have a single or multiple lines (rows for horizontally oriented boxes, columns for vertically oriented boxes)."},{name:"box-ordinal-group",status:"nonstandard",syntax:"<integer>",relevance:0,browsers:["E12","FF1","S3","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/box-ordinal-group"}],description:"The box-ordinal-group CSS property assigns the flexbox's child elements to an ordinal group."},{name:"box-orient",status:"nonstandard",syntax:"horizontal | vertical | inline-axis | block-axis | inherit",relevance:0,browsers:["E12","FF1","S3","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/box-orient"}],description:"The box-orient CSS property specifies whether an element lays out its contents horizontally or vertically."},{name:"box-pack",status:"nonstandard",syntax:"start | center | end | justify",relevance:0,browsers:["E12","FF1","S3","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/box-pack"}],description:"The -moz-box-pack and -webkit-box-pack CSS properties specify how a -moz-box or -webkit-box packs its contents in the direction of its layout. The effect of this is only visible if there is extra space in the box."},{name:"color-adjust",syntax:"economy | exact",relevance:50,browsers:["E79","FF48","S6","C49","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/color-adjust"}],description:"The color-adjust property is a non-standard CSS extension that can be used to force printing of background colors and images in browsers based on the WebKit engine."},{name:"content-visibility",syntax:"visible | auto | hidden",relevance:50,browsers:["E85","C85","O71"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/content-visibility"}],description:"Controls whether or not an element renders its contents at all, along with forcing a strong set of containments, allowing user agents to potentially omit large swathes of layout and rendering work until it becomes needed."},{name:"counter-set",syntax:"[ <custom-ident> <integer>? ]+ | none",relevance:50,browsers:["E85","FF68","C85","O71"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/counter-set"}],description:"The counter-set CSS property sets a CSS counter to a given value. It manipulates the value of existing counters, and will only create new counters if there isn't already a counter of the given name on the element."},{name:"font-optical-sizing",syntax:"auto | none",relevance:50,browsers:["E17","FF62","S11","C79","O66"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-optical-sizing"}],description:"The font-optical-sizing CSS property allows developers to control whether browsers render text with slightly differing visual representations to optimize viewing at different sizes, or not. This only works for fonts that have an optical size variation axis."},{name:"font-variation-settings",syntax:"normal | [ <string> <number> ]#",relevance:50,browsers:["E17","FF62","S11","C62","O49"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-variation-settings"}],description:"The font-variation-settings CSS property provides low-level control over OpenType or TrueType font variations, by specifying the four letter axis names of the features you want to vary, along with their variation values."},{name:"font-smooth",status:"nonstandard",syntax:"auto | never | always | <absolute-size> | <length>",relevance:0,browsers:["E79","FF25","S4","C5","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/font-smooth"}],description:"The font-smooth CSS property controls the application of anti-aliasing when fonts are rendered."},{name:"forced-color-adjust",status:"experimental",syntax:"auto | none",relevance:50,browsers:["E79","C79","IE10"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/forced-color-adjust"}],description:"Allows authors to opt certain elements out of forced colors mode. This then restores the control of those values to CSS"},{name:"gap",syntax:"<'row-gap'> <'column-gap'>?",relevance:50,browsers:["E84","FF63","S10.1","C84","O70"],description:"The gap CSS property is a shorthand property for row-gap and column-gap specifying the gutters between grid rows and columns."},{name:"hanging-punctuation",syntax:"none | [ first || [ force-end | allow-end ] || last ]",relevance:50,browsers:["S10"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/hanging-punctuation"}],description:"The hanging-punctuation CSS property specifies whether a punctuation mark should hang at the start or end of a line of text. Hanging punctuation may be placed outside the line box."},{name:"image-resolution",status:"experimental",syntax:"[ from-image || <resolution> ] && snap?",relevance:50,description:"The image-resolution property specifies the intrinsic resolution of all raster images used in or on the element. It affects both content images (e.g. replaced elements and generated content) and decorative images (such as background-image). The intrinsic resolution of an image is used to determine the image\u2019s intrinsic dimensions."},{name:"initial-letter",status:"experimental",syntax:"normal | [ <number> <integer>? ]",relevance:50,browsers:["S9"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/initial-letter"}],description:"The initial-letter CSS property specifies styling for dropped, raised, and sunken initial letters."},{name:"initial-letter-align",status:"experimental",syntax:"[ auto | alphabetic | hanging | ideographic ]",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/initial-letter-align"}],description:"The initial-letter-align CSS property specifies the alignment of initial letters within a paragraph."},{name:"inset",syntax:"<'top'>{1,4}",relevance:50,browsers:["E79","FF66","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/inset"}],description:"The inset CSS property defines the logical block and inline start and end offsets of an element, which map to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation."},{name:"inset-block",syntax:"<'top'>{1,2}",relevance:50,browsers:["E79","FF63","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/inset-block"}],description:"The inset-block CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation."},{name:"inset-block-end",syntax:"<'top'>",relevance:50,browsers:["E79","FF63","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/inset-block-end"}],description:"The inset-block-end CSS property defines the logical block end offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation."},{name:"inset-block-start",syntax:"<'top'>",relevance:50,browsers:["E79","FF63","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/inset-block-start"}],description:"The inset-block-start CSS property defines the logical block start offset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation."},{name:"inset-inline",syntax:"<'top'>{1,2}",relevance:50,browsers:["E79","FF63","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/inset-inline"}],description:"The inset-inline CSS property defines the logical block start and end offsets of an element, which maps to physical offsets depending on the element's writing mode, directionality, and text orientation. It corresponds to the top and bottom, or right and left properties depending on the values defined for writing-mode, direction, and text-orientation."},{name:"inset-inline-end",syntax:"<'top'>",relevance:50,browsers:["E79","FF63","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/inset-inline-end"}],description:"The inset-inline-end CSS property defines the logical inline end inset of an element, which maps to a physical inset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation."},{name:"inset-inline-start",syntax:"<'top'>",relevance:50,browsers:["E79","FF63","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/inset-inline-start"}],description:"The inset-inline-start CSS property defines the logical inline start inset of an element, which maps to a physical offset depending on the element's writing mode, directionality, and text orientation. It corresponds to the top, right, bottom, or left property depending on the values defined for writing-mode, direction, and text-orientation."},{name:"justify-tracks",status:"experimental",syntax:"[ normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ] ]#",relevance:50,browsers:["FF77"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/justify-tracks"}],description:"The justify-tracks CSS property sets the alignment in the masonry axis for grid containers that have masonry in their inline axis"},{name:"line-clamp",status:"experimental",syntax:"none | <integer>",relevance:50,description:"The line-clamp property allows limiting the contents of a block container to the specified number of lines; remaining content is fragmented away and neither rendered nor measured. Optionally, it also allows inserting content into the last line box to indicate the continuity of truncated/interrupted content."},{name:"line-height-step",status:"experimental",syntax:"<length>",relevance:50,browsers:["E79","C60","O47"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/line-height-step"}],description:"The line-height-step CSS property defines the step units for line box heights. When the step unit is positive, line box heights are rounded up to the closest multiple of the unit. Negative values are invalid."},{name:"margin-block",syntax:"<'margin-left'>{1,2}",relevance:50,browsers:["E79","FF66","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/margin-block"}],description:"The margin-block CSS property defines the logical block start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation."},{name:"margin-inline",syntax:"<'margin-left'>{1,2}",relevance:50,browsers:["E79","FF66","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/margin-inline"}],description:"The margin-inline CSS property defines the logical inline start and end margins of an element, which maps to physical margins depending on the element's writing mode, directionality, and text orientation."},{name:"margin-trim",status:"experimental",syntax:"none | in-flow | all",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/margin-trim"}],description:"The margin-trim property allows the container to trim the margins of its children where they adjoin the container\u2019s edges."},{name:"mask",syntax:"<mask-layer>#",relevance:50,browsers:["E12","FF2","S3.2","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask"}],description:"The mask CSS property alters the visibility of an element by either partially or fully hiding it. This is accomplished by either masking or clipping the image at specific points."},{name:"mask-border",syntax:"<'mask-border-source'> || <'mask-border-slice'> [ / <'mask-border-width'>? [ / <'mask-border-outset'> ]? ]? || <'mask-border-repeat'> || <'mask-border-mode'>",relevance:50,browsers:["E79","S3.1","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border"}],description:"The mask-border CSS property lets you create a mask along the edge of an element's border.\n\nThis property is a shorthand for mask-border-source, mask-border-slice, mask-border-width, mask-border-outset, mask-border-repeat, and mask-border-mode. As with all shorthand properties, any omitted sub-values will be set to their initial value."},{name:"mask-border-mode",syntax:"luminance | alpha",relevance:50,description:"The mask-border-mode CSS property specifies the blending mode used in a mask border."},{name:"mask-border-outset",syntax:"[ <length> | <number> ]{1,4}",relevance:50,browsers:["E79","S3.1","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-outset"}],description:"The mask-border-outset CSS property specifies the distance by which an element's mask border is set out from its border box."},{name:"mask-border-repeat",syntax:"[ stretch | repeat | round | space ]{1,2}",relevance:50,browsers:["E79","S3.1","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-repeat"}],description:"The mask-border-repeat CSS property defines how the edge regions of a source image are adjusted to fit the dimensions of an element's mask border."},{name:"mask-border-slice",syntax:"<number-percentage>{1,4} fill?",relevance:50,browsers:["E79","S3.1","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-slice"}],description:"The mask-border-slice CSS property divides the image specified by mask-border-source into regions. These regions are used to form the components of an element's mask border."},{name:"mask-border-source",syntax:"none | <image>",relevance:50,browsers:["E79","S3.1","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-source"}],description:"The mask-border-source CSS property specifies the source image used to create an element's mask border.\n\nThe mask-border-slice property is used to divide the source image into regions, which are then dynamically applied to the final mask border."},{name:"mask-border-width",syntax:"[ <length-percentage> | <number> | auto ]{1,4}",relevance:50,browsers:["E79","S3.1","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-width"}],description:"The mask-border-width CSS property specifies the width of an element's mask border."},{name:"mask-clip",syntax:"[ <geometry-box> | no-clip ]#",relevance:50,browsers:["E79","FF53","S4","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-clip"}],description:"The mask-clip CSS property determines the area, which is affected by a mask. The painted content of an element must be restricted to this area."},{name:"mask-composite",syntax:"<compositing-operator>#",relevance:50,browsers:["E18","FF53"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-composite"}],description:"The mask-composite CSS property represents a compositing operation used on the current mask layer with the mask layers below it."},{name:"masonry-auto-flow",status:"experimental",syntax:"[ pack | next ] || [ definite-first | ordered ]",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/masonry-auto-flow"}],description:"The masonry-auto-flow CSS property modifies how items are placed when using masonry in CSS Grid Layout."},{name:"math-style",syntax:"normal | compact",relevance:50,browsers:["FF83","C83"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/math-style"}],description:"The math-style property indicates whether MathML equations should render with normal or compact height."},{name:"max-lines",status:"experimental",syntax:"none | <integer>",relevance:50,description:"The max-liens property forces a break after a set number of lines"},{name:"offset",syntax:"[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?",relevance:50,browsers:["E79","FF72","C55","O42"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset"}],description:"The offset CSS property is a shorthand property for animating an element along a defined path."},{name:"offset-anchor",syntax:"auto | <position>",relevance:50,browsers:["E79","FF72","C79"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset-anchor"}],description:"Defines an anchor point of the box positioned along the path. The anchor point specifies the point of the box which is to be considered as the point that is moved along the path."},{name:"offset-distance",syntax:"<length-percentage>",relevance:50,browsers:["E79","FF72","C55","O42"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset-distance"}],description:"The offset-distance CSS property specifies a position along an offset-path."},{name:"offset-path",syntax:"none | ray( [ <angle> && <size> && contain? ] ) | <path()> | <url> | [ <basic-shape> || <geometry-box> ]",relevance:50,browsers:["E79","FF72","C55","O45"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset-path"}],description:'The offset-path CSS property specifies the offset path where the element gets positioned. The exact element\u2019s position on the offset path is determined by the offset-distance property. An offset path is either a specified path with one or multiple sub-paths or the geometry of a not-styled basic shape. Each shape or path must define an initial position for the computed value of "0" for offset-distance and an initial direction which specifies the rotation of the object to the initial position.\n\nIn this specification, a direction (or rotation) of 0 degrees is equivalent to the direction of the positive x-axis in the object\u2019s local coordinate system. In other words, a rotation of 0 degree points to the right side of the UA if the object and its ancestors have no transformation applied.'},{name:"offset-position",status:"experimental",syntax:"auto | <position>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset-position"}],description:"Specifies the initial position of the offset path. If position is specified with static, offset-position would be ignored."},{name:"offset-rotate",syntax:"[ auto | reverse ] || <angle>",relevance:50,browsers:["E79","FF72","C56","O43"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset-rotate"}],description:"The offset-rotate CSS property defines the direction of the element while positioning along the offset path."},{name:"overflow-anchor",syntax:"auto | none",relevance:52,browsers:["E79","FF66","C56","O43"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overflow-anchor"}],description:"The overflow-anchor CSS property provides a way to opt out browser scroll anchoring behavior which adjusts scroll position to minimize content shifts."},{name:"overflow-block",syntax:"visible | hidden | clip | scroll | auto",relevance:50,browsers:["FF69"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overflow-block"}],description:"The overflow-block CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the block axis."},{name:"overflow-clip-box",status:"nonstandard",syntax:"padding-box | content-box",relevance:0,browsers:["FF29"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Mozilla/Gecko/Chrome/CSS/overflow-clip-box"}],description:"The overflow-clip-box CSS property specifies relative to which box the clipping happens when there is an overflow. It is short hand for the overflow-clip-box-inline and overflow-clip-box-block properties."},{name:"overflow-inline",syntax:"visible | hidden | clip | scroll | auto",relevance:50,browsers:["FF69"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overflow-inline"}],description:"The overflow-inline CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the inline axis."},{name:"overscroll-behavior",syntax:"[ contain | none | auto ]{1,2}",relevance:50,browsers:["E18","FF59","C63","O50"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior"}],description:"The overscroll-behavior CSS property is shorthand for the overscroll-behavior-x and overscroll-behavior-y properties, which allow you to control the browser's scroll overflow behavior \u2014 what happens when the boundary of a scrolling area is reached."},{name:"overscroll-behavior-block",syntax:"contain | none | auto",relevance:50,browsers:["E79","FF73","C77","O64"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-block"}],description:"The overscroll-behavior-block CSS property sets the browser's behavior when the block direction boundary of a scrolling area is reached."},{name:"overscroll-behavior-inline",syntax:"contain | none | auto",relevance:50,browsers:["E79","FF73","C77","O64"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-inline"}],description:"The overscroll-behavior-inline CSS property sets the browser's behavior when the inline direction boundary of a scrolling area is reached."},{name:"overscroll-behavior-x",syntax:"contain | none | auto",relevance:50,browsers:["E18","FF59","C63","O50"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-x"}],description:"The overscroll-behavior-x CSS property is allows you to control the browser's scroll overflow behavior \u2014 what happens when the boundary of a scrolling area is reached \u2014 in the x axis direction."},{name:"overscroll-behavior-y",syntax:"contain | none | auto",relevance:50,browsers:["E18","FF59","C63","O50"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-y"}],description:"The overscroll-behavior-y CSS property is allows you to control the browser's scroll overflow behavior \u2014 what happens when the boundary of a scrolling area is reached \u2014 in the y axis direction."},{name:"padding-block",syntax:"<'padding-left'>{1,2}",relevance:50,browsers:["E79","FF66","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/padding-block"}],description:"The padding-block CSS property defines the logical block start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation."},{name:"padding-inline",syntax:"<'padding-left'>{1,2}",relevance:50,browsers:["E79","FF66","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/padding-inline"}],description:"The padding-inline CSS property defines the logical inline start and end padding of an element, which maps to physical padding properties depending on the element's writing mode, directionality, and text orientation."},{name:"place-content",syntax:"<'align-content'> <'justify-content'>?",relevance:50,browsers:["E79","FF53","S9","C59","O46"],description:"The place-content CSS shorthand property sets both the align-content and justify-content properties."},{name:"place-items",syntax:"<'align-items'> <'justify-items'>?",relevance:50,browsers:["E79","FF45","S11","C59","O46"],description:"The CSS place-items shorthand property sets both the align-items and justify-items properties. The first value is the align-items property value, the second the justify-items one. If the second value is not present, the first value is also used for it."},{name:"place-self",syntax:"<'align-self'> <'justify-self'>?",relevance:50,browsers:["E79","FF45","S11","C59","O46"],description:"The place-self CSS property is a shorthand property sets both the align-self and justify-self properties. The first value is the align-self property value, the second the justify-self one. If the second value is not present, the first value is also used for it."},{name:"rotate",syntax:"none | <angle> | [ x | y | z | <number>{3} ] && <angle>",relevance:50,browsers:["FF72"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/rotate"}],description:"The rotate CSS property allows you to specify rotation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value."},{name:"row-gap",syntax:"normal | <length-percentage>",relevance:50,browsers:["E84","FF63","S12.1","C84","O70"],description:"The row-gap CSS property specifies the gutter between grid rows."},{name:"ruby-merge",status:"experimental",syntax:"separate | collapse | auto",relevance:50,description:"This property controls how ruby annotation boxes should be rendered when there are more than one in a ruby container box: whether each pair should be kept separate, the annotations should be collapsed and rendered as a group, or the separation should be determined based on the space available."},{name:"scale",syntax:"none | <number>{1,3}",relevance:50,browsers:["FF72"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scale"}],description:"The scale CSS property allows you to specify scale transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value."},{name:"scrollbar-color",syntax:"auto | dark | light | <color>{2}",relevance:50,browsers:["FF64"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scrollbar-color"}],description:"The scrollbar-color CSS property sets the color of the scrollbar track and thumb."},{name:"scrollbar-gutter",syntax:"auto | [ stable | always ] && both? && force?",relevance:50,browsers:["C88"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scrollbar-gutter"}],description:"The scrollbar-gutter CSS property allows authors to reserve space for the scrollbar, preventing unwanted layout changes as the content grows while also avoiding unnecessary visuals when scrolling isn't needed."},{name:"scrollbar-width",syntax:"auto | thin | none",relevance:50,browsers:["FF64"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scrollbar-width"}],description:"The scrollbar-width property allows the author to set the maximum thickness of an element\u2019s scrollbars when they are shown. "},{name:"scroll-margin",syntax:"<length>{1,4}",relevance:50,browsers:["E79","FF68","S11","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin"}],description:"The scroll-margin property is a shorthand property which sets all of the scroll-margin longhands, assigning values much like the margin property does for the margin-* longhands."},{name:"scroll-margin-block",syntax:"<length>{1,2}",relevance:50,browsers:["E79","FF68","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block"}],description:"The scroll-margin-block property is a shorthand property which sets the scroll-margin longhands in the block dimension."},{name:"scroll-margin-block-start",syntax:"<length>",relevance:50,browsers:["E79","FF68","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-start"}],description:"The scroll-margin-block-start property defines the margin of the scroll snap area at the start of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\u2019s coordinate space), then adding the specified outsets."},{name:"scroll-margin-block-end",syntax:"<length>",relevance:50,browsers:["E79","FF68","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-end"}],description:"The scroll-margin-block-end property defines the margin of the scroll snap area at the end of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\u2019s coordinate space), then adding the specified outsets."},{name:"scroll-margin-bottom",syntax:"<length>",relevance:50,browsers:["E79","FF68","S11","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-bottom"}],description:"The scroll-margin-bottom property defines the bottom margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\u2019s coordinate space), then adding the specified outsets."},{name:"scroll-margin-inline",syntax:"<length>{1,2}",relevance:50,browsers:["FF68"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline"}],description:"The scroll-margin-inline property is a shorthand property which sets the scroll-margin longhands in the inline dimension."},{name:"scroll-margin-inline-start",syntax:"<length>",relevance:50,browsers:["E79","FF68","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-start"}],description:"The scroll-margin-inline-start property defines the margin of the scroll snap area at the start of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\u2019s coordinate space), then adding the specified outsets."},{name:"scroll-margin-inline-end",syntax:"<length>",relevance:50,browsers:["E79","FF68","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-end"}],description:"The scroll-margin-inline-end property defines the margin of the scroll snap area at the end of the inline dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\u2019s coordinate space), then adding the specified outsets."},{name:"scroll-margin-left",syntax:"<length>",relevance:50,browsers:["E79","FF68","S11","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-left"}],description:"The scroll-margin-left property defines the left margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\u2019s coordinate space), then adding the specified outsets."},{name:"scroll-margin-right",syntax:"<length>",relevance:50,browsers:["E79","FF68","S11","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-right"}],description:"The scroll-margin-right property defines the right margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\u2019s coordinate space), then adding the specified outsets."},{name:"scroll-margin-top",syntax:"<length>",relevance:50,browsers:["E79","FF68","S11","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-top"}],description:"The scroll-margin-top property defines the top margin of the scroll snap area that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container\u2019s coordinate space), then adding the specified outsets."},{name:"scroll-padding",syntax:"[ auto | <length-percentage> ]{1,4}",relevance:50,browsers:["E79","FF68","S11","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding"}],description:"The scroll-padding property is a shorthand property which sets all of the scroll-padding longhands, assigning values much like the padding property does for the padding-* longhands."},{name:"scroll-padding-block",syntax:"[ auto | <length-percentage> ]{1,2}",relevance:50,browsers:["E79","FF68","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block"}],description:"The scroll-padding-block property is a shorthand property which sets the scroll-padding longhands for the block dimension."},{name:"scroll-padding-block-start",syntax:"auto | <length-percentage>",relevance:50,browsers:["E79","FF68","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-start"}],description:"The scroll-padding-block-start property defines offsets for the start edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport."},{name:"scroll-padding-block-end",syntax:"auto | <length-percentage>",relevance:50,browsers:["E79","FF68","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-end"}],description:"The scroll-padding-block-end property defines offsets for the end edge in the block dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport."},{name:"scroll-padding-bottom",syntax:"auto | <length-percentage>",relevance:50,browsers:["E79","FF68","S11","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-bottom"}],description:"The scroll-padding-bottom property defines offsets for the bottom of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport."},{name:"scroll-padding-inline",syntax:"[ auto | <length-percentage> ]{1,2}",relevance:50,browsers:["E79","FF68","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline"}],description:"The scroll-padding-inline property is a shorthand property which sets the scroll-padding longhands for the inline dimension."},{name:"scroll-padding-inline-start",syntax:"auto | <length-percentage>",relevance:50,browsers:["E79","FF68","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-start"}],description:"The scroll-padding-inline-start property defines offsets for the start edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport."},{name:"scroll-padding-inline-end",syntax:"auto | <length-percentage>",relevance:50,browsers:["E79","FF68","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-end"}],description:"The scroll-padding-inline-end property defines offsets for the end edge in the inline dimension of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport."},{name:"scroll-padding-left",syntax:"auto | <length-percentage>",relevance:50,browsers:["E79","FF68","S11","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-left"}],description:"The scroll-padding-left property defines offsets for the left of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport."},{name:"scroll-padding-right",syntax:"auto | <length-percentage>",relevance:50,browsers:["E79","FF68","S11","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-right"}],description:"The scroll-padding-right property defines offsets for the right of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport."},{name:"scroll-padding-top",syntax:"auto | <length-percentage>",relevance:50,browsers:["E79","FF68","S11","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-top"}],description:"The scroll-padding-top property defines offsets for the top of the optimal viewing region of the scrollport: the region used as the target region for placing things in view of the user. This allows the author to exclude regions of the scrollport that are obscured by other content (such as fixed-positioned toolbars or sidebars) or simply to put more breathing room between a targeted element and the edges of the scrollport."},{name:"scroll-snap-align",syntax:"[ none | start | end | center ]{1,2}",relevance:51,browsers:["E79","FF68","S11","C69","O56"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-align"}],description:"The scroll-snap-align property specifies the box\u2019s snap position as an alignment of its snap area (as the alignment subject) within its snap container\u2019s snapport (as the alignment container). The two values specify the snapping alignment in the block axis and inline axis, respectively. If only one value is specified, the second value defaults to the same value."},{name:"scroll-snap-stop",syntax:"normal | always",relevance:50,browsers:["E79","C75","O62"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-stop"}],description:'The scroll-snap-stop CSS property defines whether the scroll container is allowed to "pass over" possible snap positions.'},{name:"scroll-snap-type-x",status:"obsolete",syntax:"none | mandatory | proximity",relevance:0,browsers:["FF39","S9"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type-x"}],description:"The scroll-snap-type-x CSS property defines how strictly snap points are enforced on the horizontal axis of the scroll container in case there is one.\n\nSpecifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent."},{name:"scroll-snap-type-y",status:"obsolete",syntax:"none | mandatory | proximity",relevance:0,browsers:["FF39"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type-y"}],description:"The scroll-snap-type-y CSS property defines how strictly snap points are enforced on the vertical axis of the scroll container in case there is one.\n\nSpecifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent."},{name:"text-combine-upright",syntax:"none | all | [ digits <integer>? ]",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-combine-upright"}],description:"The text-combine-upright CSS property specifies the combination of multiple characters into the space of a single character. If the combined text is wider than 1em, the user agent must fit the contents within 1em. The resulting composition is treated as a single upright glyph for layout and decoration. This property only has an effect in vertical writing modes.\n\nThis is used to produce an effect that is known as tate-ch\u016b-yoko (\u7e26\u4e2d\u6a2a) in Japanese, or as \u76f4\u66f8\u6a6b\u5411 in Chinese."},{name:"text-decoration-skip",status:"experimental",syntax:"none | [ objects || [ spaces | [ leading-spaces || trailing-spaces ] ] || edges || box-decoration ]",relevance:53,browsers:["S12.1","C57","O44"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip"}],description:"The text-decoration-skip CSS property specifies what parts of the element\u2019s content any text decoration affecting the element must skip over. It controls all text decoration lines drawn by the element and also any text decoration lines drawn by its ancestors."},{name:"text-decoration-skip-ink",syntax:"auto | all | none",relevance:50,browsers:["E79","FF70","C64","O50"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink"}],description:"The text-decoration-skip-ink CSS property specifies how overlines and underlines are drawn when they pass over glyph ascenders and descenders."},{name:"text-decoration-thickness",syntax:"auto | from-font | <length> | <percentage> ",relevance:50,browsers:["E87","FF70","S12.1","C87"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness"}],description:"The text-decoration-thickness CSS property sets the thickness, or width, of the decoration line that is used on text in an element, such as a line-through, underline, or overline."},{name:"text-emphasis",syntax:"<'text-emphasis-style'> || <'text-emphasis-color'>",relevance:50,browsers:["E79","FF46","S6.1","C25","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis"}],description:"The text-emphasis CSS property is a shorthand property for setting text-emphasis-style and text-emphasis-color in one declaration. This property will apply the specified emphasis mark to each character of the element's text, except separator characters, like spaces, and control characters."},{name:"text-emphasis-color",syntax:"<color>",relevance:50,browsers:["E79","FF46","S6.1","C25","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color"}],description:"The text-emphasis-color CSS property defines the color used to draw emphasis marks on text being rendered in the HTML document. This value can also be set and reset using the text-emphasis shorthand."},{name:"text-emphasis-position",syntax:"[ over | under ] && [ right | left ]",relevance:50,browsers:["E79","FF46","S6.1","C25","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position"}],description:"The text-emphasis-position CSS property describes where emphasis marks are drawn at. The effect of emphasis marks on the line height is the same as for ruby text: if there isn't enough place, the line height is increased."},{name:"text-emphasis-style",syntax:"none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>",relevance:50,browsers:["E79","FF46","S6.1","C25","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style"}],description:"The text-emphasis-style CSS property defines the type of emphasis used. It can also be set, and reset, using the text-emphasis shorthand."},{name:"text-size-adjust",status:"experimental",syntax:"none | auto | <percentage>",relevance:56,browsers:["E79","C54","O41"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-size-adjust"}],description:"The text-size-adjust CSS property controls the text inflation algorithm used on some smartphones and tablets. Other browsers will ignore this property."},{name:"text-underline-offset",syntax:"auto | <length> | <percentage> ",relevance:50,browsers:["E87","FF70","S12.1","C87"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-underline-offset"}],description:"The text-underline-offset CSS property sets the offset distance of an underline text decoration line (applied using text-decoration) from its original position."},{name:"transform-box",syntax:"content-box | border-box | fill-box | stroke-box | view-box",relevance:50,browsers:["E79","FF55","S11","C64","O51"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/transform-box"}],description:"The transform-box CSS property defines the layout box to which the transform and transform-origin properties relate."},{name:"translate",syntax:"none | <length-percentage> [ <length-percentage> <length>? ]?",relevance:50,browsers:["FF72"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/translate"}],description:"The translate CSS property allows you to specify translation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value."},{name:"speak-as",syntax:"auto | bullets | numbers | words | spell-out | <counter-style-name>",relevance:50,description:"The speak-as descriptor specifies how a counter symbol constructed with a given @counter-style will be represented in the spoken form. For example, an author can specify a counter symbol to be either spoken as its numerical value or just represented with an audio cue."},{name:"font-display",status:"experimental",syntax:"[ auto | block | swap | fallback | optional ]",relevance:54,description:"The font-display descriptor determines how a font face is displayed based on whether and when it is downloaded and ready to use."},{name:"bleed",syntax:"auto | <length>",relevance:50,description:"The bleed CSS at-rule descriptor, used with the @page at-rule, specifies the extent of the page bleed area outside the page box. This property only has effect if crop marks are enabled using the marks property."},{name:"marks",syntax:"none | [ crop || cross ]",relevance:50,description:"The marks CSS at-rule descriptor, used with the @page at-rule, adds crop and/or cross marks to the presentation of the document. Crop marks indicate where the page should be cut. Cross marks are used to align sheets."},{name:"syntax",status:"experimental",syntax:"<string>",relevance:50,description:"Specifies the syntax of the custom property registration represented by the @property rule, controlling how the property\u2019s value is parsed at computed value time."},{name:"inherits",status:"experimental",syntax:"true | false",relevance:50,description:"Specifies the inherit flag of the custom property registration represented by the @property rule, controlling whether or not the property inherits by default."},{name:"initial-value",status:"experimental",syntax:"<string>",relevance:50,description:"Specifies the initial value of the custom property registration represented by the @property rule, controlling the property\u2019s initial value."},{name:"max-zoom",syntax:"auto | <number> | <percentage>",relevance:50,description:"The max-zoom CSS descriptor sets the maximum zoom factor of a document defined by the @viewport at-rule. The browser will not zoom in any further than this, whether automatically or at the user's request.\n\nA zoom factor of 1.0 or 100% corresponds to no zooming. Larger values are zoomed in. Smaller values are zoomed out."},{name:"min-zoom",syntax:"auto | <number> | <percentage>",relevance:50,description:"The min-zoom CSS descriptor sets the minimum zoom factor of a document defined by the @viewport at-rule. The browser will not zoom out any further than this, whether automatically or at the user's request.\n\nA zoom factor of 1.0 or 100% corresponds to no zooming. Larger values are zoomed in. Smaller values are zoomed out."},{name:"orientation",syntax:"auto | portrait | landscape",relevance:50,description:"The orientation CSS @media media feature can be used to apply styles based on the orientation of the viewport (or the page box, for paged media)."},{name:"user-zoom",syntax:"zoom | fixed",relevance:50,description:"The user-zoom CSS descriptor controls whether or not the user can change the zoom factor of a document defined by @viewport."},{name:"viewport-fit",syntax:"auto | contain | cover",relevance:50,description:"The border-block-style CSS property defines the style of the logical block borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation."}],atDirectives:[{name:"@charset",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@charset"}],description:"Defines character set of the document."},{name:"@counter-style",browsers:["FF33"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@counter-style"}],description:"Defines a custom counter style."},{name:"@font-face",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@font-face"}],description:"Allows for linking to fonts that are automatically activated when needed. This permits authors to work around the limitation of 'web-safe' fonts, allowing for consistent rendering independent of the fonts available in a given user's environment."},{name:"@font-feature-values",browsers:["FF34","S9.1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@font-feature-values"}],description:"Defines named values for the indices used to select alternate glyphs for a given font family."},{name:"@import",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@import"}],description:"Includes content of another file."},{name:"@keyframes",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@keyframes"}],description:"Defines set of animation key frames."},{name:"@media",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@media"}],description:"Defines a stylesheet for a particular media type."},{name:"@-moz-document",browsers:["FF1.8"],description:"Gecko-specific at-rule that restricts the style rules contained within it based on the URL of the document."},{name:"@-moz-keyframes",browsers:["FF5"],description:"Defines set of animation key frames."},{name:"@-ms-viewport",browsers:["E","IE10"],description:"Specifies the size, zoom factor, and orientation of the viewport."},{name:"@namespace",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@namespace"}],description:"Declares a prefix and associates it with a namespace name."},{name:"@-o-keyframes",browsers:["O12"],description:"Defines set of animation key frames."},{name:"@-o-viewport",browsers:["O11"],description:"Specifies the size, zoom factor, and orientation of the viewport."},{name:"@page",browsers:["E12","FF19","C2","IE8","O6"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@page"}],description:"Directive defines various page parameters."},{name:"@supports",browsers:["E12","FF22","S9","C28","O12.1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@supports"}],description:"A conditional group rule whose condition tests whether the user agent supports CSS property:value pairs."},{name:"@-webkit-keyframes",browsers:["C","S4"],description:"Defines set of animation key frames."}],pseudoClasses:[{name:":active",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:active"}],description:"Applies while an element is being activated by the user. For example, between the times the user presses the mouse button and releases it."},{name:":any-link",browsers:["E79","FF50","S9","C65","O52"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:any-link"}],description:"Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links."},{name:":checked",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:checked"}],description:"Radio and checkbox elements can be toggled by the user. Some menu items are 'checked' when the user selects them. When such elements are toggled 'on' the :checked pseudo-class applies."},{name:":corner-present",browsers:["C","S5"],description:"Non-standard. Indicates whether or not a scrollbar corner is present."},{name:":decrement",browsers:["C","S5"],description:"Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will decrement the view\u2019s position when used."},{name:":default",browsers:["E79","FF4","S5","C10","O10"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:default"}],description:"Applies to the one or more UI elements that are the default among a set of similar elements. Typically applies to context menu items, buttons, and select lists/menus."},{name:":disabled",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:disabled"}],description:"Represents user interface elements that are in a disabled state; such elements have a corresponding enabled state."},{name:":double-button",browsers:["C","S5"],description:"Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed together at the same end of the scrollbar."},{name:":empty",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:empty"}],description:"Represents an element that has no children at all."},{name:":enabled",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:enabled"}],description:"Represents user interface elements that are in an enabled state; such elements have a corresponding disabled state."},{name:":end",browsers:["C","S5"],description:"Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed after the thumb."},{name:":first",browsers:["E12","S6","C18","IE8","O9.2"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:first"}],description:"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the page context."},{name:":first-child",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:first-child"}],description:"Same as :nth-child(1). Represents an element that is the first child of some other element."},{name:":first-of-type",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:first-of-type"}],description:"Same as :nth-of-type(1). Represents an element that is the first sibling of its type in the list of children of its parent element."},{name:":focus",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:focus"}],description:"Applies while an element has the focus (accepts keyboard or mouse events, or other forms of input)."},{name:":fullscreen",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:fullscreen"}],description:"Matches any element that has its fullscreen flag set."},{name:":future",browsers:["C","O16","S6"],description:"Represents any element that is defined to occur entirely after a :current element."},{name:":horizontal",browsers:["C","S5"],description:"Non-standard. Applies to any scrollbar pieces that have a horizontal orientation."},{name:":host",browsers:["E79","FF63","S10","C54","O41"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:host"}],description:"When evaluated in the context of a shadow tree, matches the shadow tree\u2019s host element."},{name:":host()",browsers:["C35","O22"],description:"When evaluated in the context of a shadow tree, it matches the shadow tree\u2019s host element if the host element, in its normal context, matches the selector argument."},{name:":host-context()",browsers:["C35","O22"],description:"Tests whether there is an ancestor, outside the shadow tree, which matches a particular selector."},{name:":hover",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:hover"}],description:"Applies while the user designates an element with a pointing device, but does not necessarily activate it. For example, a visual user agent could apply this pseudo-class when the cursor (mouse pointer) hovers over a box generated by the element."},{name:":increment",browsers:["C","S5"],description:"Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will increment the view\u2019s position when used."},{name:":indeterminate",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:indeterminate"}],description:"Applies to UI elements whose value is in an indeterminate state."},{name:":in-range",browsers:["E13","FF29","S5.1","C10","O11"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:in-range"}],description:"Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes."},{name:":invalid",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:invalid"}],description:"An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification."},{name:":lang()",browsers:["E","C","FF1","IE8","O8","S3"],description:"Represents an element that is in language specified."},{name:":last-child",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:last-child"}],description:"Same as :nth-last-child(1). Represents an element that is the last child of some other element."},{name:":last-of-type",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:last-of-type"}],description:"Same as :nth-last-of-type(1). Represents an element that is the last sibling of its type in the list of children of its parent element."},{name:":left",browsers:["E12","S5.1","C6","IE8","O9.2"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:left"}],description:"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the page context."},{name:":link",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:link"}],description:"Applies to links that have not yet been visited."},{name:":matches()",browsers:["S9"],description:"Takes a selector list as its argument. It represents an element that is represented by its argument."},{name:":-moz-any()",browsers:["FF4"],description:"Represents an element that is represented by the selector list passed as its argument. Standardized as :matches()."},{name:":-moz-any-link",browsers:["FF1"],description:"Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links."},{name:":-moz-broken",browsers:["FF3"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:-moz-broken"}],description:"Non-standard. Matches elements representing broken images."},{name:":-moz-drag-over",browsers:["FF1"],description:"Non-standard. Matches elements when a drag-over event applies to it."},{name:":-moz-first-node",browsers:["FF1"],description:"Non-standard. Represents an element that is the first child node of some other element."},{name:":-moz-focusring",browsers:["FF4"],description:"Non-standard. Matches an element that has focus and focus ring drawing is enabled in the browser."},{name:":-moz-full-screen",browsers:["FF9"],description:"Matches any element that has its fullscreen flag set. Standardized as :fullscreen."},{name:":-moz-last-node",browsers:["FF1"],description:"Non-standard. Represents an element that is the last child node of some other element."},{name:":-moz-loading",browsers:["FF3"],description:"Non-standard. Matches elements, such as images, that haven\u2019t started loading yet."},{name:":-moz-only-whitespace",browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:-moz-only-whitespace"}],description:"The same as :empty, except that it additionally matches elements that only contain code points affected by whitespace processing. Standardized as :blank."},{name:":-moz-placeholder",browsers:["FF4"],description:"Deprecated. Represents placeholder text in an input field. Use ::-moz-placeholder for Firefox 19+."},{name:":-moz-submit-invalid",browsers:["FF4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:-moz-submit-invalid"}],description:"Non-standard. Represents any submit button when the contents of the associated form are not valid."},{name:":-moz-suppressed",browsers:["FF3"],description:"Non-standard. Matches elements representing images that have been blocked from loading."},{name:":-moz-ui-invalid",browsers:["FF4"],description:"Non-standard. Represents any validated form element whose value isn't valid "},{name:":-moz-ui-valid",browsers:["FF4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:-moz-ui-valid"}],description:"Non-standard. Represents any validated form element whose value is valid "},{name:":-moz-user-disabled",browsers:["FF3"],description:"Non-standard. Matches elements representing images that have been disabled due to the user\u2019s preferences."},{name:":-moz-window-inactive",browsers:["FF4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:-moz-window-inactive"}],description:"Non-standard. Matches elements in an inactive window."},{name:":-ms-fullscreen",browsers:["IE11"],description:"Matches any element that has its fullscreen flag set."},{name:":-ms-input-placeholder",browsers:["IE10"],description:"Represents placeholder text in an input field. Note: for Edge use the pseudo-element ::-ms-input-placeholder. Standardized as ::placeholder."},{name:":-ms-keyboard-active",browsers:["IE10"],description:"Windows Store apps only. Applies one or more styles to an element when it has focus and the user presses the space bar."},{name:":-ms-lang()",browsers:["E","IE10"],description:"Represents an element that is in the language specified. Accepts a comma separated list of language tokens."},{name:":no-button",browsers:["C","S5"],description:"Non-standard. Applies to track pieces. Applies when there is no button at that end of the track."},{name:":not()",browsers:["E","C","FF1","IE9","O9.5","S2"],description:"The negation pseudo-class, :not(X), is a functional notation taking a simple selector (excluding the negation pseudo-class itself) as an argument. It represents an element that is not represented by its argument."},{name:":nth-child()",browsers:["E","C","FF3.5","IE9","O9.5","S3.1"],description:"Represents an element that has an+b-1 siblings before it in the document tree, for any positive integer or zero value of n, and has a parent element."},{name:":nth-last-child()",browsers:["E","C","FF3.5","IE9","O9.5","S3.1"],description:"Represents an element that has an+b-1 siblings after it in the document tree, for any positive integer or zero value of n, and has a parent element."},{name:":nth-last-of-type()",browsers:["E","C","FF3.5","IE9","O9.5","S3.1"],description:"Represents an element that has an+b-1 siblings with the same expanded element name after it in the document tree, for any zero or positive integer value of n, and has a parent element."},{name:":nth-of-type()",browsers:["E","C","FF3.5","IE9","O9.5","S3.1"],description:"Represents an element that has an+b-1 siblings with the same expanded element name before it in the document tree, for any zero or positive integer value of n, and has a parent element."},{name:":only-child",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:only-child"}],description:"Represents an element that has a parent element and whose parent element has no other element children. Same as :first-child:last-child or :nth-child(1):nth-last-child(1), but with a lower specificity."},{name:":only-of-type",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:only-of-type"}],description:"Matches every element that is the only child of its type, of its parent. Same as :first-of-type:last-of-type or :nth-of-type(1):nth-last-of-type(1), but with a lower specificity."},{name:":optional",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:optional"}],description:"A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional."},{name:":out-of-range",browsers:["E13","FF29","S5.1","C10","O11"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:out-of-range"}],description:"Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes."},{name:":past",browsers:["C","O16","S6"],description:"Represents any element that is defined to occur entirely prior to a :current element."},{name:":read-only",browsers:["E13","FF78","S4","C1","O9"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:read-only"}],description:"An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only."},{name:":read-write",browsers:["E13","FF78","S4","C1","O9"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:read-write"}],description:"An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only."},{name:":required",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:required"}],description:"A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional."},{name:":right",browsers:["E12","S5.1","C6","IE8","O9.2"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:right"}],description:"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the page context."},{name:":root",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:root"}],description:"Represents an element that is the root of the document. In HTML 4, this is always the HTML element."},{name:":scope",browsers:["E79","FF32","S7","C27","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:scope"}],description:"Represents any element that is in the contextual reference element set."},{name:":single-button",browsers:["C","S5"],description:"Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed separately at either end of the scrollbar."},{name:":start",browsers:["C","S5"],description:"Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed before the thumb."},{name:":target",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:target"}],description:"Some URIs refer to a location within a resource. This kind of URI ends with a 'number sign' (#) followed by an anchor identifier (called the fragment identifier)."},{name:":valid",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:valid"}],description:"An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification."},{name:":vertical",browsers:["C","S5"],description:"Non-standard. Applies to any scrollbar pieces that have a vertical orientation."},{name:":visited",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:visited"}],description:"Applies once the link has been visited by the user."},{name:":-webkit-any()",browsers:["C","S5"],description:"Represents an element that is represented by the selector list passed as its argument. Standardized as :matches()."},{name:":-webkit-full-screen",browsers:["C","S6"],description:"Matches any element that has its fullscreen flag set. Standardized as :fullscreen."},{name:":window-inactive",browsers:["C","S3"],description:"Non-standard. Applies to all scrollbar pieces. Indicates whether or not the window containing the scrollbar is currently active."},{name:":current",status:"experimental",description:"The :current CSS pseudo-class selector is a time-dimensional pseudo-class that represents the element, or an ancestor of the element, that is currently being displayed"},{name:":blank",status:"experimental",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:blank"}],description:"The :blank CSS pseudo-class selects empty user input elements (eg. <input> or <textarea>)."},{name:":defined",status:"experimental",browsers:["E79","FF63","S10","C54","O41"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:defined"}],description:"The :defined CSS pseudo-class represents any element that has been defined. This includes any standard element built in to the browser, and custom elements that have been successfully defined (i.e. with the CustomElementRegistry.define() method)."},{name:":dir",browsers:["FF49"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:dir"}],description:"The :dir() CSS pseudo-class matches elements based on the directionality of the text contained in them."},{name:":focus-visible",browsers:["E79","FF85","C86","O54"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:focus-visible"}],description:"The :focus-visible pseudo-class applies while an element matches the :focus pseudo-class and the UA determines via heuristics that the focus should be made evident on the element."},{name:":focus-within",browsers:["E79","FF52","S10.1","C60","O47"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:focus-within"}],description:"The :focus-within pseudo-class applies to any element for which the :focus pseudo class applies as well as to an element whose descendant in the flat tree (including non-element nodes, such as text nodes) matches the conditions for matching :focus."},{name:":has",status:"experimental",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:has"}],description:":The :has() CSS pseudo-class represents an element if any of the selectors passed as parameters (relative to the :scope of the given element), match at least one element."},{name:":is",status:"experimental",browsers:["E79","FF78","S14","C68","O55"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:is"}],description:"The :is() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list. This is useful for writing large selectors in a more compact form."},{name:":local-link",status:"experimental",description:"The :local-link CSS pseudo-class represents an link to the same document"},{name:":nth-col",status:"experimental",description:"The :nth-col() CSS pseudo-class is designed for tables and grids. It accepts the An+B notation such as used with the :nth-child selector, using this to target every nth column. "},{name:":nth-last-col",status:"experimental",description:"The :nth-last-col() CSS pseudo-class is designed for tables and grids. It accepts the An+B notation such as used with the :nth-child selector, using this to target every nth column before it, therefore counting back from the end of the set of columns."},{name:":paused",status:"experimental",description:"The :paused CSS pseudo-class selector is a resource state pseudo-class that will match an audio, video, or similar resource that is capable of being \u201cplayed\u201d or \u201cpaused\u201d, when that element is \u201cpaused\u201d."},{name:":placeholder-shown",status:"experimental",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:placeholder-shown"}],description:"The :placeholder-shown CSS pseudo-class represents any <input> or <textarea> element that is currently displaying placeholder text."},{name:":playing",status:"experimental",description:"The :playing CSS pseudo-class selector is a resource state pseudo-class that will match an audio, video, or similar resource that is capable of being \u201cplayed\u201d or \u201cpaused\u201d, when that element is \u201cplaying\u201d. "},{name:":target-within",status:"experimental",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:target-within"}],description:"The :target-within CSS pseudo-class represents an element that is a target element or contains an element that is a target. A target element is a unique element with an id matching the URL's fragment."},{name:":user-invalid",status:"experimental",browsers:["FF4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:user-invalid"}],description:"The :user-invalid CSS pseudo-class represents any validated form element whose value isn't valid based on their validation constraints, after the user has interacted with it."},{name:":where",status:"experimental",browsers:["FF78","S14","C72"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:where"}],description:"The :where() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list."},{name:":picture-in-picture",status:"experimental",description:"The :picture-in-picture CSS pseudo-class matches the element which is currently in picture-in-picture mode."}],pseudoElements:[{name:"::after",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::after"}],description:"Represents a styleable child pseudo-element immediately after the originating element\u2019s actual content."},{name:"::backdrop",browsers:["E12","FF47","C37","IE11","O24"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::backdrop"}],description:"Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen)."},{name:"::before",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::before"}],description:"Represents a styleable child pseudo-element immediately before the originating element\u2019s actual content."},{name:"::content",browsers:["C35","O22"],description:"Deprecated. Matches the distribution list itself, on elements that have one. Use ::slotted for forward compatibility."},{name:"::cue",browsers:["E79","FF55","S6.1","C26","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::cue"}]},{name:"::cue()",browsers:["C","O16","S6"]},{name:"::cue-region",browsers:["C","O16","S6"]},{name:"::cue-region()",browsers:["C","O16","S6"]},{name:"::first-letter",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::first-letter"}],description:"Represents the first letter of an element, if it is not preceded by any other content (such as images or inline tables) on its line."},{name:"::first-line",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::first-line"}],description:"Describes the contents of the first formatted line of its originating element."},{name:"::-moz-focus-inner",browsers:["FF4"]},{name:"::-moz-focus-outer",browsers:["FF4"]},{name:"::-moz-list-bullet",browsers:["FF1"],description:"Used to style the bullet of a list element. Similar to the standardized ::marker."},{name:"::-moz-list-number",browsers:["FF1"],description:"Used to style the numbers of a list element. Similar to the standardized ::marker."},{name:"::-moz-placeholder",browsers:["FF19"],description:"Represents placeholder text in an input field"},{name:"::-moz-progress-bar",browsers:["FF9"],description:"Represents the bar portion of a progress bar."},{name:"::-moz-selection",browsers:["FF1"],description:"Represents the portion of a document that has been highlighted by the user."},{name:"::-ms-backdrop",browsers:["IE11"],description:"Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen)."},{name:"::-ms-browse",browsers:["E","IE10"],description:"Represents the browse button of an input type=file control."},{name:"::-ms-check",browsers:["E","IE10"],description:"Represents the check of a checkbox or radio button input control."},{name:"::-ms-clear",browsers:["E","IE10"],description:"Represents the clear button of a text input control"},{name:"::-ms-expand",browsers:["E","IE10"],description:"Represents the drop-down button of a select control."},{name:"::-ms-fill",browsers:["E","IE10"],description:"Represents the bar portion of a progress bar."},{name:"::-ms-fill-lower",browsers:["E","IE10"],description:"Represents the portion of the slider track from its smallest value up to the value currently selected by the thumb. In a left-to-right layout, this is the portion of the slider track to the left of the thumb."},{name:"::-ms-fill-upper",browsers:["E","IE10"],description:"Represents the portion of the slider track from the value currently selected by the thumb up to the slider's largest value. In a left-to-right layout, this is the portion of the slider track to the right of the thumb."},{name:"::-ms-reveal",browsers:["E","IE10"],description:"Represents the password reveal button of an input type=password control."},{name:"::-ms-thumb",browsers:["E","IE10"],description:"Represents the portion of range input control (also known as a slider control) that the user drags."},{name:"::-ms-ticks-after",browsers:["E","IE10"],description:"Represents the tick marks of a slider that begin just after the thumb and continue up to the slider's largest value. In a left-to-right layout, these are the ticks to the right of the thumb."},{name:"::-ms-ticks-before",browsers:["E","IE10"],description:"Represents the tick marks of a slider that represent its smallest values up to the value currently selected by the thumb. In a left-to-right layout, these are the ticks to the left of the thumb."},{name:"::-ms-tooltip",browsers:["E","IE10"],description:"Represents the tooltip of a slider (input type=range)."},{name:"::-ms-track",browsers:["E","IE10"],description:"Represents the track of a slider."},{name:"::-ms-value",browsers:["E","IE10"],description:"Represents the content of a text or password input control, or a select control."},{name:"::selection",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::selection"}],description:"Represents the portion of a document that has been highlighted by the user."},{name:"::shadow",browsers:["C35","O22"],description:"Matches the shadow root if an element has a shadow tree."},{name:"::-webkit-file-upload-button",browsers:["C","O","S6"]},{name:"::-webkit-inner-spin-button",browsers:["E79","S5","C6","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-inner-spin-button"}]},{name:"::-webkit-input-placeholder",browsers:["C","S4"]},{name:"::-webkit-keygen-select",browsers:["C","O","S6"]},{name:"::-webkit-meter-bar",browsers:["E79","S5.1","C12","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-bar"}]},{name:"::-webkit-meter-even-less-good-value",browsers:["E79","S5.1","C12","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-even-less-good-value"}]},{name:"::-webkit-meter-optimum-value",browsers:["E79","S5.1","C12","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-optimum-value"}]},{name:"::-webkit-meter-suboptimum-value",browsers:["E79","S5.1","C12","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-meter-suboptimum-value"}]},{name:"::-webkit-outer-spin-button",browsers:["S5","C6"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-outer-spin-button"}]},{name:"::-webkit-progress-bar",browsers:["E79","S6.1","C25","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-bar"}]},{name:"::-webkit-progress-inner-element",browsers:["E79","S6.1","C23","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-inner-element"}]},{name:"::-webkit-progress-value",browsers:["E79","S6.1","C25","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-progress-value"}]},{name:"::-webkit-resizer",browsers:["E79","S4","C2","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar"}]},{name:"::-webkit-scrollbar",browsers:["E79","S4","C2","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar"}]},{name:"::-webkit-scrollbar-button",browsers:["E79","S4","C2","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar"}]},{name:"::-webkit-scrollbar-corner",browsers:["E79","S4","C2","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar"}]},{name:"::-webkit-scrollbar-thumb",browsers:["E79","S4","C2","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar"}]},{name:"::-webkit-scrollbar-track",browsers:["E79","S4","C2","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar"}]},{name:"::-webkit-scrollbar-track-piece",browsers:["E79","S4","C2","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-scrollbar"}]},{name:"::-webkit-search-cancel-button",browsers:["E79","S3","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-search-cancel-button"}]},{name:"::-webkit-search-decoration",browsers:["C","S4"]},{name:"::-webkit-search-results-button",browsers:["E79","S3","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-webkit-search-results-button"}]},{name:"::-webkit-search-results-decoration",browsers:["C","S4"]},{name:"::-webkit-slider-runnable-track",browsers:["C","O","S6"]},{name:"::-webkit-slider-thumb",browsers:["C","O","S6"]},{name:"::-webkit-textfield-decoration-container",browsers:["C","O","S6"]},{name:"::-webkit-validation-bubble",browsers:["C","O","S6"]},{name:"::-webkit-validation-bubble-arrow",browsers:["C","O","S6"]},{name:"::-webkit-validation-bubble-arrow-clipper",browsers:["C","O","S6"]},{name:"::-webkit-validation-bubble-heading",browsers:["C","O","S6"]},{name:"::-webkit-validation-bubble-message",browsers:["C","O","S6"]},{name:"::-webkit-validation-bubble-text-block",browsers:["C","O","S6"]},{name:"::-moz-range-progress",status:"nonstandard",browsers:["FF22"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-progress"}],description:'The ::-moz-range-progress CSS pseudo-element is a Mozilla extension that represents the lower portion of the track (i.e., groove) in which the indicator slides in an <input> of type="range". This portion corresponds to values lower than the value currently selected by the thumb (i.e., virtual knob).'},{name:"::-moz-range-thumb",status:"nonstandard",browsers:["FF21"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-thumb"}],description:'The ::-moz-range-thumb CSS pseudo-element is a Mozilla extension that represents the thumb (i.e., virtual knob) of an <input> of type="range". The user can move the thumb along the input\'s track to alter its numerical value.'},{name:"::-moz-range-track",status:"nonstandard",browsers:["FF21"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::-moz-range-track"}],description:'The ::-moz-range-track CSS pseudo-element is a Mozilla extension that represents the track (i.e., groove) in which the indicator slides in an <input> of type="range".'},{name:"::-webkit-progress-inner-value",status:"nonstandard",description:"The ::-webkit-progress-value CSS pseudo-element represents the filled-in portion of the bar of a <progress> element. It is a child of the ::-webkit-progress-bar pseudo-element.\n\nIn order to let ::-webkit-progress-value take effect, -webkit-appearance needs to be set to none on the <progress> element."},{name:"::grammar-error",status:"experimental",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::grammar-error"}],description:"The ::grammar-error CSS pseudo-element represents a text segment which the user agent has flagged as grammatically incorrect."},{name:"::marker",browsers:["E86","FF68","S11.1","C86"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::marker"}],description:"The ::marker CSS pseudo-element selects the marker box of a list item, which typically contains a bullet or number. It works on any element or pseudo-element set to display: list-item, such as the <li> and <summary> elements."},{name:"::part",status:"experimental",browsers:["E79","FF72","S13.1","C73","O60"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::part"}],description:"The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute."},{name:"::placeholder",browsers:["E12","FF51","S10.1","C57","O44"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::placeholder"}],description:"The ::placeholder CSS pseudo-element represents the placeholder text of a form element."},{name:"::slotted",browsers:["E79","FF63","S10","C50","O37"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::slotted"}],description:"The :slotted() CSS pseudo-element represents any element that has been placed into a slot inside an HTML template."},{name:"::spelling-error",status:"experimental",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::spelling-error"}],description:"The ::spelling-error CSS pseudo-element represents a text segment which the user agent has flagged as incorrectly spelled."}]},Oo=function(){function e(e){this._properties=[],this._atDirectives=[],this._pseudoClasses=[],this._pseudoElements=[],this.addData(e)}return e.prototype.provideProperties=function(){return this._properties},e.prototype.provideAtDirectives=function(){return this._atDirectives},e.prototype.providePseudoClasses=function(){return this._pseudoClasses},e.prototype.providePseudoElements=function(){return this._pseudoElements},e.prototype.addData=function(e){if(Array.isArray(e.properties))for(var t=0,n=e.properties;t<n.length;t++){var r=n[t];"string"===typeof r.name&&this._properties.push(r)}if(Array.isArray(e.atDirectives))for(var i=0,o=e.atDirectives;i<o.length;i++){Wo(r=o[i])&&this._atDirectives.push(r)}if(Array.isArray(e.pseudoClasses))for(var s=0,a=e.pseudoClasses;s<a.length;s++){Lo(r=a[s])&&this._pseudoClasses.push(r)}if(Array.isArray(e.pseudoElements))for(var l=0,c=e.pseudoElements;l<c.length;l++){jo(r=c[l])&&this._pseudoElements.push(r)}},e}();function Wo(e){return"string"===typeof e.name}function Lo(e){return"string"===typeof e.name}function jo(e){return"string"===typeof e.name}!function(){function e(e){this.dataProviders=[],this._propertySet={},this._atDirectiveSet={},this._pseudoClassSet={},this._pseudoElementSet={},this._properties=[],this._atDirectives=[],this._pseudoClasses=[],this._pseudoElements=[],this.setDataProviders(!1!==(null===e||void 0===e?void 0:e.useDefaultDataProvider),(null===e||void 0===e?void 0:e.customDataProviders)||[])}e.prototype.setDataProviders=function(e,t){var n;this.dataProviders=[],e&&this.dataProviders.push(new Oo(Ao)),(n=this.dataProviders).push.apply(n,t),this.collectData()},e.prototype.collectData=function(){var e=this;this._propertySet={},this._atDirectiveSet={},this._pseudoClassSet={},this._pseudoElementSet={},this.dataProviders.forEach((function(t){t.provideProperties().forEach((function(t){e._propertySet[t.name]||(e._propertySet[t.name]=t)})),t.provideAtDirectives().forEach((function(t){e._atDirectiveSet[t.name]||(e._atDirectiveSet[t.name]=t)})),t.providePseudoClasses().forEach((function(t){e._pseudoClassSet[t.name]||(e._pseudoClassSet[t.name]=t)})),t.providePseudoElements().forEach((function(t){e._pseudoElementSet[t.name]||(e._pseudoElementSet[t.name]=t)}))})),this._properties=sn(this._propertySet),this._atDirectives=sn(this._atDirectiveSet),this._pseudoClasses=sn(this._pseudoClassSet),this._pseudoElements=sn(this._pseudoElementSet)},e.prototype.getProperty=function(e){return this._propertySet[e]},e.prototype.getAtDirective=function(e){return this._atDirectiveSet[e]},e.prototype.getPseudoClass=function(e){return this._pseudoClassSet[e]},e.prototype.getPseudoElement=function(e){return this._pseudoElementSet[e]},e.prototype.getProperties=function(){return this._properties},e.prototype.getAtDirectives=function(){return this._atDirectives},e.prototype.getPseudoClasses=function(){return this._pseudoClasses},e.prototype.getPseudoElements=function(){return this._pseudoElements},e.prototype.isKnownProperty=function(e){return e.toLowerCase()in this._propertySet},e.prototype.isStandardProperty=function(e){return this.isKnownProperty(e)&&(!this._propertySet[e.toLowerCase()].status||"standard"===this._propertySet[e.toLowerCase()].status)}}();var Uo=function(){var e=function(t,n){return e=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])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Vo=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{l(r.next(e))}catch(t){o(t)}}function a(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))},Bo=function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"===typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(a){o=[6,a],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}};!function(e){function t(t){return e.call(this,t)||this}Uo(t,e),t.prototype.isRawStringDocumentLinkNode=function(t){return e.prototype.isRawStringDocumentLinkNode.call(this,t)||t.type===ee.Use||t.type===ee.Forward},t.prototype.resolveRelativeReference=function(t,n,r){return Vo(this,void 0,void 0,(function(){var i,o,s,a;return Bo(this,(function(l){switch(l.label){case 0:return Y(t,"sass:")?[2,void 0]:[4,e.prototype.resolveRelativeReference.call(this,t,n,r)];case 1:if(i=l.sent(),!this.fileSystemProvider||!i)return[3,8];if(!(o=_r.parse(i)).path||0!==Nr.extname(o).length)return[3,8];l.label=2;case 2:if(l.trys.push([2,7,,8]),!(s=function(e){if(""!==e.path&&!e.path.endsWith(".scss")&&!e.path.endsWith(".css")){if(e.path.endsWith("/"))return[e.with({path:e.path+"index.scss"}).toString(),e.with({path:e.path+"_index.scss"}).toString()];var t=e.path.split("/"),n=t[t.length-1],r=e.path.slice(0,-n.length);if(n.startsWith("_"))return e.path.endsWith(".scss")?void 0:[e.with({path:e.path+".scss"}).toString()];var i=n+".scss",o=function(t){return e.with({path:r+t}).toString()};return[o(i),o("_"+i),o(i.slice(0,-5)+"/index.scss"),o(i.slice(0,-5)+"/_index.scss"),o(i.slice(0,-5)+".css")]}}(o)))return[3,6];a=0,l.label=3;case 3:return a<s.length?[4,this.fileExists(s[a])]:[3,6];case 4:if(l.sent())return[2,s[a]];l.label=5;case 5:return a++,[3,3];case 6:return[2,void 0];case 7:return l.sent(),[3,8];case 8:return[2,i]}}))}))}}(wi);var $o=function(){function e(e,t,n){var r=this;this._languageId=e,this._worker=t,this._disposables=[],this._listener=Object.create(null);var o=function(e){var t,n=e.getModeId();n===r._languageId&&(r._listener[e.uri.toString()]=e.onDidChangeContent((function(){window.clearTimeout(t),t=window.setTimeout((function(){return r._doValidate(e.uri,n)}),500)})),r._doValidate(e.uri,n))},s=function(e){i.j6.setModelMarkers(e,r._languageId,[]);var t=e.uri.toString(),n=r._listener[t];n&&(n.dispose(),delete r._listener[t])};this._disposables.push(i.j6.onDidCreateModel(o)),this._disposables.push(i.j6.onWillDisposeModel(s)),this._disposables.push(i.j6.onDidChangeModelLanguage((function(e){s(e.model),o(e.model)}))),n.onDidChange((function(e){i.j6.getModels().forEach((function(e){e.getModeId()===r._languageId&&(s(e),o(e))}))})),this._disposables.push({dispose:function(){for(var e in r._listener)r._listener[e].dispose()}}),i.j6.getModels().forEach(o)}return e.prototype.dispose=function(){this._disposables.forEach((function(e){return e&&e.dispose()})),this._disposables=[]},e.prototype._doValidate=function(e,t){this._worker(e).then((function(t){return t.doValidation(e.toString())})).then((function(n){var r=n.map((function(e){return function(e,t){var n="number"===typeof t.code?String(t.code):t.code;return{severity:qo(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source}}(0,e)})),o=i.j6.getModel(e);o&&o.getModeId()===t&&i.j6.setModelMarkers(o,t,r)})).then(void 0,(function(e){console.error(e)}))},e}();function qo(e){switch(e){case kn.Error:return i.ZL.Error;case kn.Warning:return i.ZL.Warning;case kn.Information:return i.ZL.Info;case kn.Hint:return i.ZL.Hint;default:return i.ZL.Info}}function Ko(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function Go(e){if(e)return new i.e6(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function Jo(e){var t=i.Mj.CompletionItemKind;switch(e){case Hn.Text:return t.Text;case Hn.Method:return t.Method;case Hn.Function:return t.Function;case Hn.Constructor:return t.Constructor;case Hn.Field:return t.Field;case Hn.Variable:return t.Variable;case Hn.Class:return t.Class;case Hn.Interface:return t.Interface;case Hn.Module:return t.Module;case Hn.Property:return t.Property;case Hn.Unit:return t.Unit;case Hn.Value:return t.Value;case Hn.Enum:return t.Enum;case Hn.Keyword:return t.Keyword;case Hn.Snippet:return t.Snippet;case Hn.Color:return t.Color;case Hn.File:return t.File;case Hn.Reference:return t.Reference}return t.Property}function Ho(e){if(e)return{range:Go(e.range),text:e.newText}}var Xo=function(){function e(e){this._worker=e}return Object.defineProperty(e.prototype,"triggerCharacters",{get:function(){return[" ",":"]},enumerable:!1,configurable:!0}),e.prototype.provideCompletionItems=function(e,t,n,r){var o=e.uri;return this._worker(o).then((function(e){return e.doComplete(o.toString(),Ko(t))})).then((function(n){if(n){var r=e.getWordUntilPosition(t),o=new i.e6(t.lineNumber,r.startColumn,t.lineNumber,r.endColumn),s=n.items.map((function(e){var t,n={label:e.label,insertText:e.insertText||e.label,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,range:o,kind:Jo(e.kind)};return e.textEdit&&("undefined"!==typeof(t=e.textEdit).insert&&"undefined"!==typeof t.replace?n.range={insert:Go(e.textEdit.insert),replace:Go(e.textEdit.replace)}:n.range=Go(e.textEdit.range),n.insertText=e.textEdit.newText),e.additionalTextEdits&&(n.additionalTextEdits=e.additionalTextEdits.map(Ho)),e.insertTextFormat===Xn.Snippet&&(n.insertTextRules=i.Mj.CompletionItemInsertTextRule.InsertAsSnippet),n}));return{isIncomplete:n.isIncomplete,suggestions:s}}}))},e}();function Yo(e){return"string"===typeof e?{value:e}:(t=e)&&"object"===typeof t&&"string"===typeof t.kind?"plaintext"===e.kind?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:e.value}:{value:"```"+e.language+"\n"+e.value+"\n```\n"};var t}function Zo(e){if(e)return Array.isArray(e)?e.map(Yo):[Yo(e)]}var Qo=function(){function e(e){this._worker=e}return e.prototype.provideHover=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.doHover(r.toString(),Ko(t))})).then((function(e){if(e)return{range:Go(e.range),contents:Zo(e.contents)}}))},e}();function es(e){switch(e){case sr.Read:return i.Mj.DocumentHighlightKind.Read;case sr.Write:return i.Mj.DocumentHighlightKind.Write;case sr.Text:return i.Mj.DocumentHighlightKind.Text}return i.Mj.DocumentHighlightKind.Text}var ts=function(){function e(e){this._worker=e}return e.prototype.provideDocumentHighlights=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.findDocumentHighlights(r.toString(),Ko(t))})).then((function(e){if(e)return e.map((function(e){return{range:Go(e.range),kind:es(e.kind)}}))}))},e}();function ns(e){return{uri:i.Sf.parse(e.uri),range:Go(e.range)}}var rs=function(){function e(e){this._worker=e}return e.prototype.provideDefinition=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.findDefinition(r.toString(),Ko(t))})).then((function(e){if(e)return[ns(e)]}))},e}(),is=function(){function e(e){this._worker=e}return e.prototype.provideReferences=function(e,t,n,r){var i=e.uri;return this._worker(i).then((function(e){return e.findReferences(i.toString(),Ko(t))})).then((function(e){if(e)return e.map(ns)}))},e}();var os=function(){function e(e){this._worker=e}return e.prototype.provideRenameEdits=function(e,t,n,r){var o=e.uri;return this._worker(o).then((function(e){return e.doRename(o.toString(),Ko(t),n)})).then((function(e){return function(e){if(e&&e.changes){var t=[];for(var n in e.changes)for(var r=i.Sf.parse(n),o=0,s=e.changes[n];o<s.length;o++){var a=s[o];t.push({resource:r,edit:{range:Go(a.range),text:a.newText}})}return{edits:t}}}(e)}))},e}();function ss(e){var t=i.Mj.SymbolKind;switch(e){case lr.File:return t.Array;case lr.Module:return t.Module;case lr.Namespace:return t.Namespace;case lr.Package:return t.Package;case lr.Class:return t.Class;case lr.Method:return t.Method;case lr.Property:return t.Property;case lr.Field:return t.Field;case lr.Constructor:return t.Constructor;case lr.Enum:return t.Enum;case lr.Interface:return t.Interface;case lr.Function:return t.Function;case lr.Variable:return t.Variable;case lr.Constant:return t.Constant;case lr.String:return t.String;case lr.Number:return t.Number;case lr.Boolean:return t.Boolean;case lr.Array:return t.Array}return t.Function}var as=function(){function e(e){this._worker=e}return e.prototype.provideDocumentSymbols=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentSymbols(n.toString())})).then((function(e){if(e)return e.map((function(e){return{name:e.name,detail:"",containerName:e.containerName,kind:ss(e.kind),tags:[],range:Go(e.location.range),selectionRange:Go(e.location.range)}}))}))},e}(),ls=function(){function e(e){this._worker=e}return e.prototype.provideDocumentColors=function(e,t){var n=e.uri;return this._worker(n).then((function(e){return e.findDocumentColors(n.toString())})).then((function(e){if(e)return e.map((function(e){return{color:e.color,range:Go(e.range)}}))}))},e.prototype.provideColorPresentations=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.getColorPresentations(r.toString(),t.color,function(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}(t.range))})).then((function(e){if(e)return e.map((function(e){var t={label:e.label};return e.textEdit&&(t.textEdit=Ho(e.textEdit)),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(Ho)),t}))}))},e}(),cs=function(){function e(e){this._worker=e}return e.prototype.provideFoldingRanges=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.getFoldingRanges(r.toString(),t)})).then((function(e){if(e)return e.map((function(e){var t={start:e.startLine+1,end:e.endLine+1};return"undefined"!==typeof e.kind&&(t.kind=function(e){switch(e){case wn.Comment:return i.Mj.FoldingRangeKind.Comment;case wn.Imports:return i.Mj.FoldingRangeKind.Imports;case wn.Region:return i.Mj.FoldingRangeKind.Region}}(e.kind)),t}))}))},e}();var ds=function(){function e(e){this._worker=e}return e.prototype.provideSelectionRanges=function(e,t,n){var r=e.uri;return this._worker(r).then((function(e){return e.getSelectionRanges(r.toString(),t.map(Ko))})).then((function(e){if(e)return e.map((function(e){for(var t=[];e;)t.push({range:Go(e.range)}),e=e.parent;return t}))}))},e}();function ps(e){var t=[],n=[],r=new o(e);t.push(r);var s=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return r.getLanguageServiceWorker.apply(r,e)};return function(){var t=e.languageId,r=e.modeConfiguration;ms(n),r.completionItems&&n.push(i.Mj.registerCompletionItemProvider(t,new Xo(s))),r.hovers&&n.push(i.Mj.registerHoverProvider(t,new Qo(s))),r.documentHighlights&&n.push(i.Mj.registerDocumentHighlightProvider(t,new ts(s))),r.definitions&&n.push(i.Mj.registerDefinitionProvider(t,new rs(s))),r.references&&n.push(i.Mj.registerReferenceProvider(t,new is(s))),r.documentSymbols&&n.push(i.Mj.registerDocumentSymbolProvider(t,new as(s))),r.rename&&n.push(i.Mj.registerRenameProvider(t,new os(s))),r.colors&&n.push(i.Mj.registerColorProvider(t,new ls(s))),r.foldingRanges&&n.push(i.Mj.registerFoldingRangeProvider(t,new cs(s))),r.diagnostics&&n.push(new $o(t,s,e)),r.selectionRanges&&n.push(i.Mj.registerSelectionRangeProvider(t,new ds(s)))}(),t.push(hs(n)),hs(t)}function hs(e){return{dispose:function(){return ms(e)}}}function ms(e){for(;e.length;)e.pop().dispose()}}}]); -//# sourceMappingURL=6060.eb821066.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6065.b08e9640.chunk.js b/ydb/core/viewer/monitoring/static/js/6065.b08e9640.chunk.js new file mode 100644 index 000000000000..35f6e65410f6 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6065.b08e9640.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6065],{16065:function(e,_,n){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=_(e),t={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(t,null,!0),t}(n(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6135.e49ec940.chunk.js b/ydb/core/viewer/monitoring/static/js/6135.e49ec940.chunk.js deleted file mode 100644 index 7c946f848488..000000000000 --- a/ydb/core/viewer/monitoring/static/js/6135.e49ec940.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6135,698],{6135:function(e,t,n){n.r(t),n.d(t,{conf:function(){return i},language:function(){return r}});var o=n(90698),i=o.conf,r={defaultToken:"invalid",tokenPostfix:".js",keywords:["break","case","catch","class","continue","const","constructor","debugger","default","delete","do","else","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","return","set","super","switch","symbol","this","throw","true","try","typeof","undefined","var","void","while","with","yield","async","await","of"],typeKeywords:[],operators:o.language.operators,symbols:o.language.symbols,escapes:o.language.escapes,digits:o.language.digits,octaldigits:o.language.octaldigits,binarydigits:o.language.binarydigits,hexdigits:o.language.hexdigits,regexpctl:o.language.regexpctl,regexpesc:o.language.regexpesc,tokenizer:o.language.tokenizer}},90698:function(e,t,n){n.r(t),n.d(t,{conf:function(){return i},language:function(){return r}});var o=n(37456),i={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:o.Mj.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:o.Mj.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:o.Mj.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:o.Mj.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},r={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","package","private","protected","public","readonly","require","global","return","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],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]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,"delimiter.bracket"],{include:"common"}],common:[[/[a-z_$][\w$]*/,{cases:{"@keywords":"keyword","@default":"identifier"}}],[/[A-Z][\w\$]*/,"type.identifier"],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:"regexp",bracket:"@open",next:"@regexp"}],[/[()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([gimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}}}}]); -//# sourceMappingURL=6135.e49ec940.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6142.b2452554.chunk.js b/ydb/core/viewer/monitoring/static/js/6142.b2452554.chunk.js new file mode 100644 index 000000000000..2da51f2b1973 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6142.b2452554.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 6142.b2452554.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6142],{26142:(e,o,n)=>{n.r(o),n.d(o,{conf:()=>s,language:()=>t});var s={comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:"(",close:")",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}]},t={defaultToken:"",tokenPostfix:".flow",keywords:["import","require","export","forbid","native","if","else","cast","unsafe","switch","default"],types:["io","mutable","bool","int","double","string","flow","void","ref","true","false","with"],operators:["=",">","<","<=",">=","==","!","!=",":=","::=","&&","||","+","-","*","/","@","&","%",":","->","\\","$","??","^"],symbols:/[@$=><!~?:&|+\-*\\\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@keywords":"keyword","@types":"type","@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"delimiter"],[/[<>](?!@symbols)/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6142.b2452554.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/6142.b2452554.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6142.b2452554.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/6144.e1568f26.chunk.js b/ydb/core/viewer/monitoring/static/js/6144.e1568f26.chunk.js new file mode 100644 index 000000000000..28a6a21c39c6 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6144.e1568f26.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6144],{36144:function(a,s,n){a.exports=function(a){"use strict";function s(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var n=s(a),_={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(a){return a},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(_,null,!0),_}(n(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6156.0c562627.chunk.js b/ydb/core/viewer/monitoring/static/js/6156.0c562627.chunk.js new file mode 100644 index 000000000000..70c9d019399e --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6156.0c562627.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6156],{26156:function(e,t,i){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=t(e);function a(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function _(e,t,i){var _=e+" ";switch(i){case"m":return t?"minuta":"minut\u0119";case"mm":return _+(a(e)?"minuty":"minut");case"h":return t?"godzina":"godzin\u0119";case"hh":return _+(a(e)?"godziny":"godzin");case"MM":return _+(a(e)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return _+(a(e)?"lata":"lat")}}var n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_"),r="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)?n[e.month()]:r[e.month()]};u.s=r,u.f=n;var d={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:_,mm:_,h:_,hh:_,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:_,y:"rok",yy:_},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 i.default.locale(d,null,!0),d}(i(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/619.f27ddcbd.chunk.js b/ydb/core/viewer/monitoring/static/js/619.f27ddcbd.chunk.js new file mode 100644 index 000000000000..15609a48edbe --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/619.f27ddcbd.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 619.f27ddcbd.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[619],{41612:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>i,language:()=>o});var i={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},o={tokenPostfix:".pats",defaultToken:"invalid",keywords:["abstype","abst0ype","absprop","absview","absvtype","absviewtype","absvt0ype","absviewt0ype","as","and","assume","begin","classdec","datasort","datatype","dataprop","dataview","datavtype","dataviewtype","do","end","extern","extype","extvar","exception","fn","fnx","fun","prfn","prfun","praxi","castfn","if","then","else","ifcase","in","infix","infixl","infixr","prefix","postfix","implmnt","implement","primplmnt","primplement","import","let","local","macdef","macrodef","nonfix","symelim","symintr","overload","of","op","rec","sif","scase","sortdef","sta","stacst","stadef","static","staload","dynload","try","tkindef","typedef","propdef","viewdef","vtypedef","viewtypedef","prval","var","prvar","when","where","with","withtype","withprop","withview","withvtype","withviewtype"],keywords_dlr:["$delay","$ldelay","$arrpsz","$arrptrsize","$d2ctype","$effmask","$effmask_ntm","$effmask_exn","$effmask_ref","$effmask_wrt","$effmask_all","$extern","$extkind","$extype","$extype_struct","$extval","$extfcall","$extmcall","$literal","$myfilename","$mylocation","$myfunction","$lst","$lst_t","$lst_vt","$list","$list_t","$list_vt","$rec","$rec_t","$rec_vt","$record","$record_t","$record_vt","$tup","$tup_t","$tup_vt","$tuple","$tuple_t","$tuple_vt","$break","$continue","$raise","$showtype","$vcopyenv_v","$vcopyenv_vt","$tempenver","$solver_assert","$solver_verify"],keywords_srp:["#if","#ifdef","#ifndef","#then","#elif","#elifdef","#elifndef","#else","#endif","#error","#prerr","#print","#assert","#undef","#define","#include","#require","#pragma","#codegen2","#codegen3"],irregular_keyword_list:["val+","val-","val","case+","case-","case","addr@","addr","fold@","free@","fix@","fix","lam@","lam","llam@","llam","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","view+","view-","view@","view","type+","type-","type","vtype+","vtype-","vtype","vt@ype+","vt@ype-","vt@ype","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","prop+","prop-","prop","type+","type-","type","t@ype","t@ype+","t@ype-","abst@ype","abstype","absviewt@ype","absvt@ype","for*","for","while*","while"],keywords_types:["bool","double","byte","int","short","char","void","unit","long","float","string","strptr"],keywords_effects:["0","fun","clo","prf","funclo","cloptr","cloref","ref","ntm","1"],operators:["@","!","|","`",":","$",".","=","#","~","..","...","=>","=<>","=/=>","=>>","=/=>>","<",">","><",".<",">.",".<>.","->","-<>"],brackets:[{open:",(",close:")",token:"delimiter.parenthesis"},{open:"`(",close:")",token:"delimiter.parenthesis"},{open:"%(",close:")",token:"delimiter.parenthesis"},{open:"'(",close:")",token:"delimiter.parenthesis"},{open:"'{",close:"}",token:"delimiter.parenthesis"},{open:"@(",close:")",token:"delimiter.parenthesis"},{open:"@{",close:"}",token:"delimiter.brace"},{open:"@[",close:"]",token:"delimiter.square"},{open:"#[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],symbols:/[=><!~?:&|+\-*\/\^%]+/,IDENTFST:/[a-zA-Z_]/,IDENTRST:/[a-zA-Z0-9_'$]/,symbolic:/[%&+-./:=@~`^|*!$#?<>]/,digit:/[0-9]/,digitseq0:/@digit*/,xdigit:/[0-9A-Za-z]/,xdigitseq0:/@xdigit*/,INTSP:/[lLuU]/,FLOATSP:/[fFlL]/,fexponent:/[eE][+-]?[0-9]+/,fexponent_bin:/[pP][+-]?[0-9]+/,deciexp:/\.[0-9]*@fexponent?/,hexiexp:/\.[0-9a-zA-Z]*@fexponent_bin?/,irregular_keywords:/val[+-]?|case[+-]?|addr\@?|fold\@|free\@|fix\@?|lam\@?|llam\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\*?|while\*?/,ESCHAR:/[ntvbrfa\\\?'"\(\[\{]/,start:"root",tokenizer:{root:[{regex:/[ \t\r\n]+/,action:{token:""}},{regex:/\(\*\)/,action:{token:"invalid"}},{regex:/\(\*/,action:{token:"comment",next:"lexing_COMMENT_block_ml"}},{regex:/\(/,action:"@brackets"},{regex:/\)/,action:"@brackets"},{regex:/\[/,action:"@brackets"},{regex:/\]/,action:"@brackets"},{regex:/\{/,action:"@brackets"},{regex:/\}/,action:"@brackets"},{regex:/,\(/,action:"@brackets"},{regex:/,/,action:{token:"delimiter.comma"}},{regex:/;/,action:{token:"delimiter.semicolon"}},{regex:/@\(/,action:"@brackets"},{regex:/@\[/,action:"@brackets"},{regex:/@\{/,action:"@brackets"},{regex:/:</,action:{token:"keyword",next:"@lexing_EFFECT_commaseq0"}},{regex:/\.@symbolic+/,action:{token:"identifier.sym"}},{regex:/\.@digit*@fexponent@FLOATSP*/,action:{token:"number.float"}},{regex:/\.@digit+/,action:{token:"number.float"}},{regex:/\$@IDENTFST@IDENTRST*/,action:{cases:{"@keywords_dlr":{token:"keyword.dlr"},"@default":{token:"namespace"}}}},{regex:/\#@IDENTFST@IDENTRST*/,action:{cases:{"@keywords_srp":{token:"keyword.srp"},"@default":{token:"identifier"}}}},{regex:/%\(/,action:{token:"delimiter.parenthesis"}},{regex:/^%{(#|\^|\$)?/,action:{token:"keyword",next:"@lexing_EXTCODE",nextEmbedded:"text/javascript"}},{regex:/^%}/,action:{token:"keyword"}},{regex:/'\(/,action:{token:"delimiter.parenthesis"}},{regex:/'\[/,action:{token:"delimiter.bracket"}},{regex:/'\{/,action:{token:"delimiter.brace"}},[/(')(\\@ESCHAR|\\[xX]@xdigit+|\\@digit+)(')/,["string","string.escape","string"]],[/'[^\\']'/,"string"],[/"/,"string.quote","@lexing_DQUOTE"],{regex:/`\(/,action:"@brackets"},{regex:/\\/,action:{token:"punctuation"}},{regex:/@irregular_keywords(?!@IDENTRST)/,action:{token:"keyword"}},{regex:/@IDENTFST@IDENTRST*[<!\[]?/,action:{cases:{"@keywords":{token:"keyword"},"@keywords_types":{token:"type"},"@default":{token:"identifier"}}}},{regex:/\/\/\/\//,action:{token:"comment",next:"@lexing_COMMENT_rest"}},{regex:/\/\/.*$/,action:{token:"comment"}},{regex:/\/\*/,action:{token:"comment",next:"@lexing_COMMENT_block_c"}},{regex:/-<|=</,action:{token:"keyword",next:"@lexing_EFFECT_commaseq0"}},{regex:/@symbolic+/,action:{cases:{"@operators":"keyword","@default":"operator"}}},{regex:/0[xX]@xdigit+(@hexiexp|@fexponent_bin)@FLOATSP*/,action:{token:"number.float"}},{regex:/0[xX]@xdigit+@INTSP*/,action:{token:"number.hex"}},{regex:/0[0-7]+(?![0-9])@INTSP*/,action:{token:"number.octal"}},{regex:/@digit+(@fexponent|@deciexp)@FLOATSP*/,action:{token:"number.float"}},{regex:/@digit@digitseq0@INTSP*/,action:{token:"number.decimal"}},{regex:/@digit+@INTSP*/,action:{token:"number"}}],lexing_COMMENT_block_ml:[[/[^\(\*]+/,"comment"],[/\(\*/,"comment","@push"],[/\(\*/,"comment.invalid"],[/\*\)/,"comment","@pop"],[/\*/,"comment"]],lexing_COMMENT_block_c:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],lexing_COMMENT_rest:[[/$/,"comment","@pop"],[/.*/,"comment"]],lexing_EFFECT_commaseq0:[{regex:/@IDENTFST@IDENTRST+|@digit+/,action:{cases:{"@keywords_effects":{token:"type.effect"},"@default":{token:"identifier"}}}},{regex:/,/,action:{token:"punctuation"}},{regex:/>/,action:{token:"@rematch",next:"@pop"}}],lexing_EXTCODE:[{regex:/^%}/,action:{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}},{regex:/[^%]+/,action:""}],lexing_DQUOTE:[{regex:/"/,action:{token:"string.quote",next:"@pop"}},{regex:/(\{\$)(@IDENTFST@IDENTRST*)(\})/,action:[{token:"string.escape"},{token:"identifier"},{token:"string.escape"}]},{regex:/\\$/,action:{token:"string.escape"}},{regex:/\\(@ESCHAR|[xX]@xdigit+|@digit+)/,action:{token:"string.escape"}},{regex:/[^\\"]+/,action:{token:"string"}}]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/619.f27ddcbd.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/619.f27ddcbd.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/619.f27ddcbd.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/620.7aea5425.chunk.js b/ydb/core/viewer/monitoring/static/js/620.7aea5425.chunk.js new file mode 100644 index 000000000000..3459c7a1f78a --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/620.7aea5425.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[620],{20620:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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(_){return _>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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6227.fc562bbf.chunk.js b/ydb/core/viewer/monitoring/static/js/6227.fc562bbf.chunk.js new file mode 100644 index 000000000000..1b5ac7f6399f --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6227.fc562bbf.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6227],{36227:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6230.8e64216a.chunk.js b/ydb/core/viewer/monitoring/static/js/6230.8e64216a.chunk.js new file mode 100644 index 000000000000..98f549e1c360 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6230.8e64216a.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 6230.8e64216a.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6230],{16230:(e,t,s)=>{s.r(t),s.d(t,{conf:()=>o,language:()=>i});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>))")}}},n=[];["abstract","activate","and","any","array","as","asc","assert","autonomous","begin","bigdecimal","blob","boolean","break","bulk","by","case","cast","catch","char","class","collect","commit","const","continue","convertcurrency","decimal","default","delete","desc","do","double","else","end","enum","exception","exit","export","extends","false","final","finally","float","for","from","future","get","global","goto","group","having","hint","if","implements","import","in","inner","insert","instanceof","int","interface","into","join","last_90_days","last_month","last_n_days","last_week","like","limit","list","long","loop","map","merge","native","new","next_90_days","next_month","next_n_days","next_week","not","null","nulls","number","object","of","on","or","outer","override","package","parallel","pragma","private","protected","public","retrieve","return","returning","rollback","savepoint","search","select","set","short","sort","stat","static","strictfp","super","switch","synchronized","system","testmethod","then","this","this_month","this_week","throw","throws","today","tolabel","tomorrow","transaction","transient","trigger","true","try","type","undelete","update","upsert","using","virtual","void","volatile","webservice","when","where","while","yesterday"].forEach((e=>{n.push(e),n.push(e.toUpperCase()),n.push((e=>e.charAt(0).toUpperCase()+e.substr(1))(e))}));var i={defaultToken:"",tokenPostfix:".apex",keywords:n,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-z_$][\w$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/[A-Z][\w\$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"type.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"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@apexdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],apexdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6230.8e64216a.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/6230.8e64216a.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6230.8e64216a.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/6266.db91261c.chunk.js b/ydb/core/viewer/monitoring/static/js/6266.db91261c.chunk.js deleted file mode 100644 index 04af39850408..000000000000 --- a/ydb/core/viewer/monitoring/static/js/6266.db91261c.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6266],{66266:function(e,t,n){n.r(t),n.d(t,{conf:function(){return s},language:function(){return o}});var s={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},o={defaultToken:"",tokenPostfix:".cs",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["extern","alias","using","bool","decimal","sbyte","byte","short","ushort","int","uint","long","ulong","char","float","double","object","dynamic","string","assembly","is","as","ref","out","this","base","new","typeof","void","checked","unchecked","default","delegate","var","const","if","else","switch","case","while","do","for","foreach","in","break","continue","goto","return","throw","try","catch","finally","lock","yield","from","let","where","join","on","equals","into","orderby","ascending","descending","select","group","by","namespace","partial","class","field","event","method","param","public","protected","internal","private","abstract","sealed","static","struct","readonly","volatile","virtual","override","params","get","set","add","remove","operator","true","false","implicit","explicit","interface","enum","null","async","await","fixed","sizeof","stackalloc","unsafe","nameof","when"],namespaceFollows:["namespace","using"],parenFollows:["if","for","while","switch","foreach","using","catch","when"],operators:["=","??","||","&&","|","^","&","==","!=","<=",">=","<<","+","-","*","/","%","!","~","++","--","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=",">>","=>"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\@?[a-zA-Z_]\w*/,{cases:{"@namespaceFollows":{token:"keyword.$0",next:"@namespace"},"@keywords":{token:"keyword.$0",next:"@qualified"},"@default":{token:"identifier",next:"@qualified"}}}],{include:"@whitespace"},[/}/,{cases:{"$S2==interpolatedstring":{token:"string.quote",next:"@pop"},"$S2==litinterpstring":{token:"string.quote",next:"@pop"},"@default":"@brackets"}}],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01_]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",next:"@string"}],[/\$\@"/,{token:"string.quote",next:"@litinterpstring"}],[/\@"/,{token:"string.quote",next:"@litstring"}],[/\$"/,{token:"string.quote",next:"@interpolatedstring"}],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],qualified:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/\./,"delimiter"],["","","@pop"]],namespace:[{include:"@whitespace"},[/[A-Z]\w*/,"namespace"],[/[\.=]/,"delimiter"],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]],litinterpstring:[[/[^"{]+/,"string"],[/""/,"string.escape"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.litinterpstring"}],[/"/,{token:"string.quote",next:"@pop"}]],interpolatedstring:[[/[^\\"{]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.interpolatedstring"}],[/"/,{token:"string.quote",next:"@pop"}]],whitespace:[[/^[ \t\v\f]*#((r)|(load))(?=\s)/,"directive.csx"],[/^[ \t\v\f]*#\w.*$/,"namespace.cpp"],[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); -//# sourceMappingURL=6266.db91261c.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6289.51f8741e.chunk.js b/ydb/core/viewer/monitoring/static/js/6289.51f8741e.chunk.js new file mode 100644 index 000000000000..ee2142895ba3 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6289.51f8741e.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 6289.51f8741e.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6289],{66289:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>r,language:()=>s});var r={comments:{lineComment:";;"},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}],surroundingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}]},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".clj",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"}],constants:["true","false","nil"],numbers:/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,characters:/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,escapes:/^\\(?:["'\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,qualifiedSymbols:/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/,specialForms:[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],coreSymbols:["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],tokenizer:{root:[{include:"@whitespace"},[/@numbers/,"number"],[/@characters/,"string"],{include:"@string"},[/[()\[\]{}]/,"@brackets"],[/\/#"(?:\.|(?:")|[^"\n])*"\/g/,"regexp"],[/[#'@^`~]/,"meta"],[/@qualifiedSymbols/,{cases:{"^:.+$":"constant","@specialForms":"keyword","@coreSymbols":"keyword","@constants":"constant","@default":"identifier"}}]],whitespace:[[/[\s,]+/,"white"],[/;.*$/,"comment"],[/\(comment\b/,"comment","@comment"]],comment:[[/\(/,"comment","@push"],[/\)/,"comment","@pop"],[/[^()]/,"comment"]],string:[[/"/,"string","@multiLineString"]],multiLineString:[[/"/,"string","@popall"],[/@escapes/,"string.escape"],[/./,"string"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6289.51f8741e.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/6289.51f8741e.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6289.51f8741e.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/6291.e7cdf7f2.chunk.js b/ydb/core/viewer/monitoring/static/js/6291.e7cdf7f2.chunk.js new file mode 100644 index 000000000000..12f5d3af40c7 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6291.e7cdf7f2.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6291],{26291:function(_,t,e){_.exports=function(_){"use strict";function t(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var e=t(_),s="\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("_"),n="\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("_"),d=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function u(_,t,e){var s,n;return"m"===e?t?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443":"h"===e?t?"\u0433\u043e\u0434\u0438\u043d\u0430":"\u0433\u043e\u0434\u0438\u043d\u0443":_+" "+(s=+_,n={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"}[e].split("_"),s%10==1&&s%100!=11?n[0]:s%10>=2&&s%10<=4&&(s%100<10||s%100>=20)?n[1]:n[2])}var M=function(_,t){return d.test(t)?s[_.month()]:n[_.month()]};M.s=n,M.f=s;var m={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:M,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:u,mm:u,h:u,hh:u,d:"\u0434\u0435\u043d\u044c",dd:u,M:"\u043c\u0456\u0441\u044f\u0446\u044c",MM:u,y:"\u0440\u0456\u043a",yy:u},ordinal:function(_){return _},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 e.default.locale(m,null,!0),m}(e(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6300.dca75d45.chunk.js b/ydb/core/viewer/monitoring/static/js/6300.dca75d45.chunk.js new file mode 100644 index 000000000000..071547063816 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6300.dca75d45.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 6300.dca75d45.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6300],{66300:(e,t,o)=>{o.r(t),o.d(t,{conf:()=>n,language:()=>s});var n={comments:{lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},s={keywords:["namespace","open","as","operation","function","body","adjoint","newtype","controlled","if","elif","else","repeat","until","fixup","for","in","while","return","fail","within","apply","Adjoint","Controlled","Adj","Ctl","is","self","auto","distribute","invert","intrinsic","let","set","w/","new","not","and","or","use","borrow","using","borrowing","mutable","internal"],typeKeywords:["Unit","Int","BigInt","Double","Bool","String","Qubit","Result","Pauli","Range"],invalidKeywords:["abstract","base","bool","break","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","enum","event","explicit","extern","finally","fixed","float","foreach","goto","implicit","int","interface","lock","long","null","object","operator","out","override","params","private","protected","public","readonly","ref","sbyte","sealed","short","sizeof","stackalloc","static","string","struct","switch","this","throw","try","typeof","unit","ulong","unchecked","unsafe","ushort","virtual","void","volatile"],constants:["true","false","PauliI","PauliX","PauliY","PauliZ","One","Zero"],builtin:["X","Y","Z","H","HY","S","T","SWAP","CNOT","CCNOT","MultiX","R","RFrac","Rx","Ry","Rz","R1","R1Frac","Exp","ExpFrac","Measure","M","MultiM","Message","Length","Assert","AssertProb","AssertEqual"],operators:["and=","<-","->","*","*=","@","!","^","^=",":","::","..","==","...","=","=>",">",">=","<","<=","-","-=","!=","or=","%","%=","|","+","+=","?","/","/=","&&&","&&&=","^^^","^^^=",">>>",">>>=","<<<","<<<=","|||","|||=","~~~","_","w/","w/="],namespaceFollows:["namespace","open"],symbols:/[=><!~?:&|+\-*\/\^%@._]+/,escapes:/\\[\s\S]/,tokenizer:{root:[[/[a-zA-Z_$][\w$]*/,{cases:{"@namespaceFollows":{token:"keyword.$0",next:"@namespace"},"@typeKeywords":"type","@keywords":"keyword","@constants":"constant","@builtin":"keyword","@invalidKeywords":"invalid","@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],namespace:[{include:"@whitespace"},[/[A-Za-z]\w*/,"namespace"],[/[\.=]/,"delimiter"],["","","@pop"]],whitespace:[[/[ \t\r\n]+/,"white"],[/(\/\/).*/,"comment"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6300.dca75d45.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/6300.dca75d45.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6300.dca75d45.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/632.b6c03857.chunk.js b/ydb/core/viewer/monitoring/static/js/632.b6c03857.chunk.js new file mode 100644 index 000000000000..44aadc0526f6 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/632.b6c03857.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[632],{70632:function(e,_,t){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),a={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 t.default.locale(a,null,!0),a}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6321.aa3e44de.chunk.js b/ydb/core/viewer/monitoring/static/js/6321.aa3e44de.chunk.js new file mode 100644 index 000000000000..3f4d152b7a43 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6321.aa3e44de.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 6321.aa3e44de.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6321],{26321:(e,n,o)=>{o.r(n),o.d(n,{conf:()=>t,language:()=>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","implements"],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"}]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6321.aa3e44de.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/6321.aa3e44de.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6321.aa3e44de.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/6329.d78c1432.chunk.js b/ydb/core/viewer/monitoring/static/js/6329.d78c1432.chunk.js new file mode 100644 index 000000000000..cfddf790e74d --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6329.d78c1432.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 6329.d78c1432.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6329],{16329:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>u,language:()=>b});var i,r,o=n(41551),a=Object.defineProperty,d=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,p=Object.prototype.hasOwnProperty,m=(e,t,n,i)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let r of s(t))p.call(e,r)||r===n||a(e,r,{get:()=>t[r],enumerable:!(i=d(t,r))||i.enumerable});return e},l={};m(l,i=o,"default"),r&&m(r,i,"default");var c=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],u={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["\x3c!--","--\x3e"],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp("<(?!(?:".concat(c.join("|"),"))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$"),"i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:l.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(?!(?:".concat(c.join("|"),"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$"),"i"),action:{indentAction:l.languages.IndentAction.Indent}}],folding:{markers:{start:new RegExp("^\\s*\x3c!--\\s*#region\\b.*--\x3e"),end:new RegExp("^\\s*\x3c!--\\s*#endregion\\b.*--\x3e")}}},b={defaultToken:"",tokenPostfix:".html",ignoreCase:!0,tokenizer:{root:[[/<!DOCTYPE/,"metatag","@doctype"],[/<!--/,"comment","@comment"],[/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/,["delimiter","tag","","delimiter"]],[/(<)(script)/,["delimiter",{token:"tag",next:"@script"}]],[/(<)(style)/,["delimiter",{token:"tag",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/</,"delimiter"],[/[^<]+/]],doctype:[[/[^>]+/,"metatag.content"],[/>/,"metatag","@pop"]],comment:[[/-->/,"comment","@pop"],[/[^-]+/,"comment.content"],[/./,"comment.content"]],otherTag:[[/\/?>/,"delimiter","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"module"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/'module'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6329.d78c1432.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/6329.d78c1432.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6329.d78c1432.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/6361.a9f11e7a.chunk.js b/ydb/core/viewer/monitoring/static/js/6361.a9f11e7a.chunk.js new file mode 100644 index 000000000000..3576f5095f11 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6361.a9f11e7a.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6361],{56361:function(e,_,a){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=_(e),o={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 a.default.locale(o,null,!0),o}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6390.497d0ec8.chunk.js b/ydb/core/viewer/monitoring/static/js/6390.497d0ec8.chunk.js new file mode 100644 index 000000000000..21e6078d2bfe --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6390.497d0ec8.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 6390.497d0ec8.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6390],{36390:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>m,language:()=>b});var r,o,l=t(41551),a=Object.defineProperty,i=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,u=Object.prototype.hasOwnProperty,d=(e,n,t,r)=>{if(n&&"object"===typeof n||"function"===typeof n)for(let o of c(n))u.call(e,o)||o===t||a(e,o,{get:()=>n[o],enumerable:!(r=i(n,o))||r.enumerable});return e},s={};d(s,r=l,"default"),o&&d(o,r,"default");var m={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:s.languages.IndentAction.Indent}}]},b={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6390.497d0ec8.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/6390.497d0ec8.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6390.497d0ec8.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/6392.134ee5e4.chunk.js b/ydb/core/viewer/monitoring/static/js/6392.134ee5e4.chunk.js new file mode 100644 index 000000000000..2897c08251b0 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6392.134ee5e4.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6392],{80246:function(e,a,_){e.exports=function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=a(e),n={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 _.default.locale(n,null,!0),n}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6393.b0de2d9e.chunk.js b/ydb/core/viewer/monitoring/static/js/6393.b0de2d9e.chunk.js new file mode 100644 index 000000000000..4fa7a94b938f --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6393.b0de2d9e.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6393],{66393:function(e,t,_){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=t(e),d={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 _.default.locale(d,null,!0),d}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6521.371403ec.chunk.js b/ydb/core/viewer/monitoring/static/js/6521.371403ec.chunk.js new file mode 100644 index 000000000000..656acac3d73b --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6521.371403ec.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6521],{86521:function(e,_,t){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),a={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 _=e%10;return"["+e+(1===_||2===_?"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 t.default.locale(a,null,!0),a}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6531.7eac62d1.chunk.js b/ydb/core/viewer/monitoring/static/js/6531.7eac62d1.chunk.js new file mode 100644 index 000000000000..89ffe7c2c119 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6531.7eac62d1.chunk.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6531],{16531:(t,e,n)=>{n.r(e),n.d(e,{registerYQLCompletionItemProvider:()=>I});var s=n(88424),i=n(62729),a=n(41551);const r={Method:0,Function:1,Constructor:2,Field:3,Variable:4,Class:5,Struct:6,Interface:7,Module:8,Property:9,Event:10,Operator:11,Unit:12,Value:13,Constant:14,Enum:15,EnumMember:16,Keyword:17,Text:18,Color:19,File:20,Reference:21,Customcolor:22,Folder:23,TypeParameter:24,User:25,Issue:26,Snippet:27},u=/[\s'"-/@]/,o={externalDataSource:["external_data_source"],externalTable:["external_table"],replication:["replication"],table:["table","column_table"],tableStore:["column_store"],topic:["pers_queue_group"],view:["view"],tableIndex:["table_index","index"]},l=["dir","unknown"];function c(t){let e=t;return t.match(u)&&(e="`".concat(t,"`")),e}function g(t){let e=0,n=t.length;return t.startsWith("`")&&(e=1),t.endsWith("`")&&(n=-1),t.slice(e,n)}function d(t){return t.startsWith("/")?t.slice(1):t}function m(){let t=arguments.length>1?arguments[1]:void 0,e=d(g(arguments.length>0&&void 0!==arguments[0]?arguments[0]:""));const n=d(t);return e.startsWith(n)&&(e=e.slice(n.length)),d(e)}const f={suggestTemplates:0,suggestPragmas:1,suggestEntity:2,suggestColumns:3,suggestColumnAliases:4,suggestTableIndexes:5,suggestTableHints:6,suggestEntitySettings:7,suggestSimpleTypes:8,suggestKeywords:9,suggestAggregateFunctions:10,suggestTableFunctions:11,suggestWindowFunctions:12,suggestFunctions:13,suggestUdfs:14};function p(t){return f[t]}async function y(t,e,n,s){const i=m(s,n),u=await window.api.autocomplete({database:n,prefix:i,limit:1e3}),c=null===s||void 0===s?void 0:s.startsWith("`");if(u.Success){return function(t,e){const n=e.reduce(((t,e)=>{const n=o[e];return n&&n.forEach((e=>t.add(e))),t}),new Set(l));return t.filter((t=>{let{Type:e}=t;return n.has(e)}))}(u.Result.Entities,e).reduce(((e,n)=>{var s;let{Name:i,Type:u}=n;const o="dir"===u,l=o?"".concat(i,"/"):i;let g;return o&&!c&&(g="`".concat(l,"$0`")),e.push({label:l,insertText:null!==(s=g)&&void 0!==s?s:l,kind:o?r.Folder:r.Text,insertTextRules:g?a.languages.CompletionItemInsertTextRule.InsertAsSnippet:a.languages.CompletionItemInsertTextRule.None,detail:u,range:t,command:l.endsWith("/")?{id:"editor.action.triggerSuggest",title:""}:void 0,sortText:S(p("suggestEntity"))}),e}),[])}return[]}async function b(t){return(await async function(){return i.j}()).map((e=>({label:e,insertText:e,kind:r.Function,detail:"Function",range:t,sortText:S(p("suggestFunctions"))})))}async function T(t){return(await async function(){return i.vy}()).map((e=>({label:e,insertText:e,kind:r.TypeParameter,detail:"Type",range:t,sortText:S(p("suggestSimpleTypes"))})))}async function w(t){return(await async function(){return i.t6}()).map((e=>({label:e,insertText:e,kind:r.Function,detail:"UDF",range:t,sortText:S(p("suggestUdfs"))})))}async function v(t){return(await async function(){return i.JX}()).map((e=>({label:e,insertText:e,kind:r.Function,detail:"Window function",range:t,sortText:S(p("suggestWindowFunctions"))})))}async function x(t){return(await async function(){return i.yJ}()).map((e=>({label:e,insertText:e,kind:r.Function,detail:"Table function",range:t,sortText:S(p("suggestTableFunctions"))})))}async function h(t){return(await async function(){return i.Ot}()).map((e=>({label:e,insertText:e,kind:r.Function,detail:"Aggregate function",range:t,sortText:S(p("suggestAggregateFunctions"))})))}async function C(t){return(await async function(){return i.EQ}()).map((e=>({label:e,insertText:e,kind:r.Module,detail:"Pragma",range:t,sortText:S(p("suggestPragmas"))})))}async function F(t,e){const n=await async function(t){return i.S8[t]}(e);return n.map((e=>({label:e,insertText:e,kind:r.Property,detail:"Setting",range:t,sortText:S(p("suggestEntitySettings"))})))}const k="abcdefghijklmnopqrstuvwxyz";function S(t){const e=k[t];if(e)return e;const n=Math.floor(t/k.length),s=t%k.length;return k.slice(-1).repeat(n)+k[s]}function E(t){return async(e,s,i,a)=>{const u=function(t,e){const{startColumn:n,endColumn:s}=t.getWordUntilPosition(e),i="$"===t.getLineContent(e.lineNumber)[n-2]?1:0;return{startColumn:n-i,startLineNumber:e.lineNumber,endColumn:s,endLineNumber:e.lineNumber}}(e,s),o=await async function(t,e,s,i){const{parseYqlQuery:a}=await n.e(8607).then(n.bind(n,68607)),u={line:e.lineNumber,column:e.column},o=a(t.getValue(),u);let l=[],d=[],f=[],k=[],E=[],P=[],I=[],W=[],_=[];if(o.suggestEntity){const n=function(t,e){var n,s,i,a;const r=t.findPreviousMatch("\\s(`?[^\\s]*)",e,!0,!1,null,!0),u=t.findNextMatch("([^\\s]*)`?",e,!0,!1,null,!0);return"".concat(null!==(n=null===r||void 0===r||null===(s=r.matches)||void 0===s?void 0:s[1])&&void 0!==n?n:"").concat(null!==(i=null===u||void 0===u||null===(a=u.matches)||void 0===a?void 0:a[1])&&void 0!==i?i:"")}(t,e);l=await y(s,o.suggestEntity,i,n)}o.suggestFunctions&&(d=await b(s));o.suggestAggregateFunctions&&(f=await h(s));o.suggestWindowFunctions&&(k=await v(s));o.suggestTableFunctions&&(E=await x(s));o.suggestSimpleTypes&&(I=await T(s));o.suggestUdfs&&(P=await w(s));o.suggestPragmas&&(W=await C(s));o.suggestEntitySettings&&(_=await F(s,o.suggestEntitySettings));const N=await function(t,e){return e?null===e||void 0===e?void 0:e.map((e=>({label:e.name,insertText:e.name,kind:r.Field,detail:"Column alias",range:t,sortText:S(p("suggestColumnAliases"))}))):[]}(s,o.suggestColumnAliases),A=await async function(t,e,n){var s,i,a;if(null===e||void 0===e||!e.tables)return[];const u=[],o=e.tables.length>1,l=null!==(s=null===(i=e.tables)||void 0===i?void 0:i.map((t=>{let e=g(t.name);return e.endsWith("/")||(e="".concat(e,"/")),m(e,n)})))&&void 0!==s?s:[],d=Array.from(new Set(l)),f=await window.api.autocomplete({database:n,table:d,limit:1e3});if(!f.Success)return[];const y=null===(a=e.tables)||void 0===a?void 0:a.reduce(((t,e)=>{var s;const i=m(g(e.name),n),a=null!==(s=t[i])&&void 0!==s?s:[];return e.alias&&a.push(e.alias),t[i]=a,t}),{});return f.Result.Entities.forEach((e=>{if("column"!==e.Type)return;const s=c(e.Name),i=m(e.Parent,n),a=y[i];if(null!==a&&void 0!==a&&a.length)a.forEach((e=>{const n="".concat(e,".").concat(s);u.push({label:n,insertText:n,kind:r.Field,detail:"Column",range:t,sortText:S(p("suggestColumns"))})}));else{let e=s;o&&(e="".concat(c(i),".").concat(s)),u.push({label:e,insertText:e,kind:r.Field,detail:"Column",range:t,sortText:S(p("suggestColumns"))})}})),u}(s,o.suggestColumns,i),M=function(t,e){return e?null===e||void 0===e?void 0:e.map((e=>({label:e.value,insertText:e.value,kind:r.Keyword,detail:"Keyword",range:t,sortText:S(p("suggestKeywords"))}))):[]}(s,o.suggestKeywords),U=[...l,...d,...k,...E,...P,...I,...W,...N,...A,...M,...f,..._];return U}(e,s,u,t);return{suggestions:o}}}let P;function I(t){P&&P.dispose(),P=s.Mj.registerCompletionItemProvider(i.Oo,{triggerCharacters:[" ","",",",".","`","(","/"],provideCompletionItems:E(t)})}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6550.b5e85913.chunk.js b/ydb/core/viewer/monitoring/static/js/6550.b5e85913.chunk.js deleted file mode 100644 index 3753c4b037e6..000000000000 --- a/ydb/core/viewer/monitoring/static/js/6550.b5e85913.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6550],{26550:function(e,t,r){r.r(t),r.d(t,{ReactComponent:function(){return E}});var C,n,a,o,i,l,s,d,c,p,H,u,k,V=r(4519),f=["title","titleId"];function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var C in r)Object.prototype.hasOwnProperty.call(r,C)&&(e[C]=r[C])}return e},h.apply(this,arguments)}function M(e,t){if(null==e)return{};var r,C,n=function(e,t){if(null==e)return{};var r,C,n={},a=Object.keys(e);for(C=0;C<a.length;C++)r=a[C],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(C=0;C<a.length;C++)r=a[C],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Z(e,t){var r=e.title,Z=e.titleId,E=M(e,f);return V.createElement("svg",h({width:260,height:260,viewBox:"0 0 520 520",fill:"none",xmlns:"http://www.w3.org/2000/svg",ref:t,"aria-labelledby":Z},E),r?V.createElement("title",{id:Z},r):null,C||(C=V.createElement("path",{opacity:.1,d:"M228.637 445C217.178 445.049 206.065 441.074 197.233 433.768L28.4227 288.499C24.7711 285.319 22.4943 280.846 22.0715 276.02C21.6487 271.195 23.1128 266.393 26.1557 262.626L65.3512 214.612C66.9235 212.684 68.8667 211.091 71.0657 209.927C73.2646 208.764 75.6745 208.055 78.1525 207.841C80.6305 207.627 83.1263 207.913 85.4917 208.682C87.8572 209.452 90.0443 210.688 91.9234 212.319L223.682 326.793L435.516 94.088C438.811 90.4596 443.405 88.2807 448.298 88.0253C453.191 87.7699 457.987 89.4587 461.642 92.7243L507.824 134.205C509.647 135.841 511.129 137.821 512.184 140.032C513.24 142.243 513.849 144.64 513.975 147.087C514.102 149.534 513.744 151.982 512.922 154.29C512.101 156.598 510.831 158.721 509.187 160.536L265.553 428.549C260.881 433.709 255.185 437.838 248.829 440.671C242.472 443.503 235.595 444.978 228.637 445Z",fill:"#509CF5"})),n||(n=V.createElement("path",{d:"M412.933 102.332H294.933C289.433 102.332 284.933 106.832 284.933 112.332V315.432C284.933 320.932 289.433 325.432 294.933 325.432H446.433C451.933 325.432 456.433 320.932 456.433 315.432V133.732L429.933 107.332",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4.01 10.02"})),a||(a=V.createElement("path",{d:"M425.033 102.332V104.332",stroke:"#00E6C5",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round"})),o||(o=V.createElement("path",{d:"M425.033 115.031V126.331C425.033 130.431 428.333 133.731 432.433 133.731H449.033",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4.27 10.68"})),i||(i=V.createElement("path",{d:"M454.333 133.73H456.333",stroke:"#00E6C5",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round"})),l||(l=V.createElement("path",{d:"M77 397.052L89.1 409L110 388",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4.84211,strokeLinecap:"round",strokeLinejoin:"round"})),s||(s=V.createElement("path",{d:"M125 398C125 416.775 109.775 432 91 432C72.2252 432 57 416.775 57 398C57 379.225 72.2252 364 91 364C109.775 364 125 379.225 125 398Z",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4.84211,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4.84 12.11"})),d||(d=V.createElement("path",{d:"M147.5 119C147.5 117.895 146.605 117 145.5 117C144.395 117 143.5 117.895 143.5 119H147.5ZM143.5 129.8C143.5 130.905 144.395 131.8 145.5 131.8C146.605 131.8 147.5 130.905 147.5 129.8H143.5ZM147.5 152.5C147.5 151.395 146.605 150.5 145.5 150.5C144.395 150.5 143.5 151.395 143.5 152.5H147.5ZM143.5 164.2C143.5 165.305 144.395 166.2 145.5 166.2C146.605 166.2 147.5 165.305 147.5 164.2H143.5ZM168.1 143.602C169.205 143.602 170.1 142.706 170.1 141.602C170.1 140.497 169.205 139.602 168.1 139.602V143.602ZM157.2 139.602C156.096 139.602 155.2 140.497 155.2 141.602C155.2 142.706 156.096 143.602 157.2 143.602V139.602ZM133.7 143.602C134.805 143.602 135.7 142.706 135.7 141.602C135.7 140.497 134.805 139.602 133.7 139.602V143.602ZM122.9 139.602C121.795 139.602 120.9 140.497 120.9 141.602C120.9 142.706 121.795 143.602 122.9 143.602V139.602ZM143.5 119V129.8H147.5V119H143.5ZM143.5 152.5V164.2H147.5V152.5H143.5ZM168.1 139.602H157.2V143.602H168.1V139.602ZM133.7 139.602H122.9V143.602H133.7V139.602Z",fill:"#2EE5C0",fillOpacity:.8})),c||(c=V.createElement("path",{d:"M406.3 397.5C406.3 396.395 405.405 395.5 404.3 395.5C403.195 395.5 402.3 396.395 402.3 397.5H406.3ZM402.3 403.1C402.3 404.205 403.195 405.1 404.3 405.1C405.405 405.1 406.3 404.205 406.3 403.1H402.3ZM406.3 414.898C406.3 413.794 405.405 412.898 404.3 412.898C403.195 412.898 402.3 413.794 402.3 414.898H406.3ZM402.3 420.998C402.3 422.103 403.195 422.998 404.3 422.998C405.405 422.998 406.3 422.103 406.3 420.998H402.3ZM416.1 411.2C417.205 411.2 418.1 410.305 418.1 409.2C418.1 408.095 417.205 407.2 416.1 407.2V411.2ZM410.4 407.2C409.295 407.2 408.4 408.095 408.4 409.2C408.4 410.305 409.295 411.2 410.4 411.2V407.2ZM398.2 411.2C399.305 411.2 400.2 410.305 400.2 409.2C400.2 408.095 399.305 407.2 398.2 407.2V411.2ZM392.5 407.2C391.395 407.2 390.5 408.095 390.5 409.2C390.5 410.305 391.395 411.2 392.5 411.2V407.2ZM402.3 397.5V403.1H406.3V397.5H402.3ZM402.3 414.898V420.998H406.3V414.898H402.3ZM416.1 407.2H410.4V411.2H416.1V407.2ZM398.2 407.2H392.5V411.2H398.2V407.2Z",fill:"#2EE5C0",fillOpacity:.8})),p||(p=V.createElement("path",{d:"M186 385.667V394.833C186 397.264 185.012 399.596 183.254 401.315C181.496 403.034 179.111 404 176.625 404H121C115.477 404 111 399.523 111 394V249C111 243.477 115.477 239 121 239H176.625C179.111 239 181.496 239.966 183.254 241.685C185.012 243.404 186 245.736 186 248.167V385.667Z",fill:"#0067C1"})),H||(H=V.createElement("path",{d:"M177.143 375.273V384.637C177.143 387.12 176.153 389.501 174.392 391.257C172.63 393.013 170.241 394 167.75 394H112C106.477 394 102 389.522 102 384V235.465C102 229.942 106.477 225.465 112 225.465H167.75C170.241 225.465 172.63 226.451 174.392 228.207C176.153 229.963 177.143 232.345 177.143 234.828V375.273Z",fill:"#007CE9"})),u||(u=V.createElement("path",{d:"M292.385 235.185C291.545 236.543 292.529 238.321 294.126 238.321H375.327C379.067 238.242 382.784 238.917 386.255 240.305C389.726 241.693 392.879 243.765 395.524 246.398C398.169 249.031 400.252 252.169 401.646 255.623C403.041 259.078 403.718 262.778 403.639 266.5C403.639 294.679 394.201 398 356.452 398H242.081C230.712 398 219.806 393.497 211.748 385.477L206.04 379.797C205.665 379.424 205.158 379.214 204.629 379.214H191.299H179.143C178.038 379.214 177.143 378.319 177.143 377.214V239.495C177.143 238.847 177.668 238.321 178.317 238.321C195.697 238.321 212.371 231.438 224.69 219.177L233.949 209.961C240.092 203.848 245.391 196.942 249.705 189.426L267.012 159.283C275.636 144.262 293.887 133.185 306.212 145.354C312.929 151.987 316.741 160.994 316.815 170.411C316.815 171.538 316.721 172.665 316.626 173.886C314.302 197.951 298.104 225.943 292.385 235.185Z",fill:"#FFCC00"})),k||(k=V.createElement("path",{d:"M356.457 369.801H237.651C229.12 369.801 220.937 366.421 214.893 360.401C208.849 354.381 200.666 351.001 192.135 351.001H177.143V379.2H192.135C200.666 379.2 208.849 382.58 214.893 388.6C220.937 394.62 229.12 398 237.651 398H356.457C394.207 398 403.645 294.601 403.645 266.402C403.645 263.723 403.328 261.054 402.701 258.449C399.568 298.831 387.743 369.801 356.457 369.801Z",fill:"#DEB700"})))}var E=V.forwardRef(Z);t.default=r.p+"static/media/thumbsUp.d4a03fbaa64ce85a0045bf8ba77f8e2b.svg"}}]); -//# sourceMappingURL=6550.b5e85913.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6559.41bbd3a3.chunk.js b/ydb/core/viewer/monitoring/static/js/6559.41bbd3a3.chunk.js deleted file mode 100644 index 5faad96ec504..000000000000 --- a/ydb/core/viewer/monitoring/static/js/6559.41bbd3a3.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6559],{26559:function(e,n,t){t.r(n),t.d(n,{conf:function(){return i},language:function(){return r}});var i={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},r={defaultToken:"",tokenPostfix:".cpp",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["abstract","amp","array","auto","bool","break","case","catch","char","class","const","constexpr","const_cast","continue","cpu","decltype","default","delegate","delete","do","double","dynamic_cast","each","else","enum","event","explicit","export","extern","false","final","finally","float","for","friend","gcnew","generic","goto","if","in","initonly","inline","int","interface","interior_ptr","internal","literal","long","mutable","namespace","new","noexcept","nullptr","__nullptr","operator","override","partial","pascal","pin_ptr","private","property","protected","public","ref","register","reinterpret_cast","restrict","return","safe_cast","sealed","short","signed","sizeof","static","static_assert","static_cast","struct","switch","template","this","thread_local","throw","tile_static","true","try","typedef","typeid","typename","union","unsigned","using","virtual","void","volatile","wchar_t","where","while","_asm","_based","_cdecl","_declspec","_fastcall","_if_exists","_if_not_exists","_inline","_multiple_inheritance","_pascal","_single_inheritance","_stdcall","_virtual_inheritance","_w64","__abstract","__alignof","__asm","__assume","__based","__box","__builtin_alignof","__cdecl","__clrcall","__declspec","__delegate","__event","__except","__fastcall","__finally","__forceinline","__gc","__hook","__identifier","__if_exists","__if_not_exists","__inline","__int128","__int16","__int32","__int64","__int8","__interface","__leave","__m128","__m128d","__m128i","__m256","__m256d","__m256i","__m64","__multiple_inheritance","__newslot","__nogc","__noop","__nounwind","__novtordisp","__pascal","__pin","__pragma","__property","__ptr32","__ptr64","__raise","__restrict","__resume","__sealed","__single_inheritance","__stdcall","__super","__thiscall","__try","__try_cast","__typeof","__unaligned","__unhook","__uuidof","__value","__virtual_inheritance","__w64","__wchar_t"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,floatsuffix:/[fFlL]?/,encoding:/u|u8|U|L/,tokenizer:{root:[[/@encoding?R\"(?:([^ ()\\\t]*))\(/,{token:"string.raw.begin",next:"@raw.$1"}],[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/^\s*#\s*include/,{token:"keyword.directive.include",next:"@include"}],[/^\s*#\s*\w+/,"keyword.directive"],{include:"@whitespace"},[/\[\s*\[/,{token:"annotation",next:"@annotation"}],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],raw:[[/(.*)(\))(?:([^ ()\\\t"]*))(\")/,{cases:{"$3==$S2":["string.raw","string.raw.end","string.raw.end",{token:"string.raw.end",next:"@pop"}],"@default":["string.raw","string.raw","string.raw","string.raw"]}}],[/.*/,"string.raw"]],annotation:[{include:"@whitespace"},[/using|alignas/,"keyword"],[/[a-zA-Z0-9_]+/,"annotation"],[/[,:]/,"delimiter"],[/[()]/,"@brackets"],[/\]\s*\]/,{token:"annotation",next:"@pop"}]],include:[[/(\s*)(<)([^<>]*)(>)/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]],[/(\s*)(")([^"]*)(")/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]]]}}}}]); -//# sourceMappingURL=6559.41bbd3a3.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6619.9e1de7a6.chunk.js b/ydb/core/viewer/monitoring/static/js/6619.9e1de7a6.chunk.js new file mode 100644 index 000000000000..84f0d7a39973 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6619.9e1de7a6.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 6619.9e1de7a6.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6619],{16619:(e,n,o)=>{o.r(n),o.d(n,{conf:()=>t,language:()=>s});var t={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:"'"}]},s={defaultToken:"",tokenPostfix:".objective-c",keywords:["#import","#include","#define","#else","#endif","#if","#ifdef","#ifndef","#ident","#undef","@class","@defs","@dynamic","@encode","@end","@implementation","@interface","@package","@private","@protected","@property","@protocol","@public","@selector","@synthesize","__declspec","assign","auto","BOOL","break","bycopy","byref","case","char","Class","const","copy","continue","default","do","double","else","enum","extern","FALSE","false","float","for","goto","if","in","int","id","inout","IMP","long","nil","nonatomic","NULL","oneway","out","private","public","protected","readwrite","readonly","register","return","SEL","self","short","signed","sizeof","static","struct","super","switch","typedef","TRUE","true","union","unsigned","volatile","void","while"],decpart:/\d(_?\d)*/,decimal:/0|@decpart/,tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},[/[,:;]/,"delimiter"],[/[{}\[\]()<>]/,"@brackets"],[/[a-zA-Z@#]\w*/,{cases:{"@keywords":"keyword","@default":"identifier"}}],[/[<>=\\+\\-\\*\\/\\^\\|\\~,]|and\\b|or\\b|not\\b]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],numbers:[[/0[xX][0-9a-fA-F]*(_?[0-9a-fA-F])*/,"number.hex"],[/@decimal((\.@decpart)?([eE][\-+]?@decpart)?)[fF]*/,{cases:{"(\\d)*":"number",$0:"number.float"}}]],strings:[[/'$/,"string.escape","@popall"],[/'/,"string.escape","@stringBody"],[/"$/,"string.escape","@popall"],[/"/,"string.escape","@dblStringBody"]],stringBody:[[/[^\\']+$/,"string","@popall"],[/[^\\']+/,"string"],[/\\./,"string"],[/'/,"string.escape","@popall"],[/\\$/,"string"]],dblStringBody:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string"],[/"/,"string.escape","@popall"],[/\\$/,"string"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6619.9e1de7a6.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/6619.9e1de7a6.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6619.9e1de7a6.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/6679.6e0a87d5.chunk.js b/ydb/core/viewer/monitoring/static/js/6679.6e0a87d5.chunk.js new file mode 100644 index 000000000000..a681d938fdcf --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6679.6e0a87d5.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6679],{96679:function(e,n,t){e.exports=function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(e),a={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 _(e,n,t){var _=a[t];return Array.isArray(_)&&(_=_[n?0:1]),_.replace("%d",e)}var i={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:_,m:_,mm:_,h:_,hh:_,d:_,dd:_,M:_,MM:_,y:_,yy:_}};return t.default.locale(i,null,!0),i}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6692.9322b59d.chunk.js b/ydb/core/viewer/monitoring/static/js/6692.9322b59d.chunk.js new file mode 100644 index 000000000000..19a2a182ccfd --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6692.9322b59d.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 6692.9322b59d.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6692],{66692:(E,T,R)=>{R.r(T),R.d(T,{conf:()=>A,language:()=>I});var A={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:"'"}]},I={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ABORT","ABSOLUTE","ACTION","ADA","ADD","AFTER","ALL","ALLOCATE","ALTER","ALWAYS","ANALYZE","AND","ANY","ARE","AS","ASC","ASSERTION","AT","ATTACH","AUTHORIZATION","AUTOINCREMENT","AVG","BACKUP","BEFORE","BEGIN","BETWEEN","BIT","BIT_LENGTH","BOTH","BREAK","BROWSE","BULK","BY","CASCADE","CASCADED","CASE","CAST","CATALOG","CHAR","CHARACTER","CHARACTER_LENGTH","CHAR_LENGTH","CHECK","CHECKPOINT","CLOSE","CLUSTERED","COALESCE","COLLATE","COLLATION","COLUMN","COMMIT","COMPUTE","CONFLICT","CONNECT","CONNECTION","CONSTRAINT","CONSTRAINTS","CONTAINS","CONTAINSTABLE","CONTINUE","CONVERT","CORRESPONDING","COUNT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATE","DAY","DBCC","DEALLOCATE","DEC","DECIMAL","DECLARE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DENY","DESC","DESCRIBE","DESCRIPTOR","DETACH","DIAGNOSTICS","DISCONNECT","DISK","DISTINCT","DISTRIBUTED","DO","DOMAIN","DOUBLE","DROP","DUMP","EACH","ELSE","END","END-EXEC","ERRLVL","ESCAPE","EXCEPT","EXCEPTION","EXCLUDE","EXCLUSIVE","EXEC","EXECUTE","EXISTS","EXIT","EXPLAIN","EXTERNAL","EXTRACT","FAIL","FALSE","FETCH","FILE","FILLFACTOR","FILTER","FIRST","FLOAT","FOLLOWING","FOR","FOREIGN","FORTRAN","FOUND","FREETEXT","FREETEXTTABLE","FROM","FULL","FUNCTION","GENERATED","GET","GLOB","GLOBAL","GO","GOTO","GRANT","GROUP","GROUPS","HAVING","HOLDLOCK","HOUR","IDENTITY","IDENTITYCOL","IDENTITY_INSERT","IF","IGNORE","IMMEDIATE","IN","INCLUDE","INDEX","INDEXED","INDICATOR","INITIALLY","INNER","INPUT","INSENSITIVE","INSERT","INSTEAD","INT","INTEGER","INTERSECT","INTERVAL","INTO","IS","ISNULL","ISOLATION","JOIN","KEY","KILL","LANGUAGE","LAST","LEADING","LEFT","LEVEL","LIKE","LIMIT","LINENO","LOAD","LOCAL","LOWER","MATCH","MATERIALIZED","MAX","MERGE","MIN","MINUTE","MODULE","MONTH","NAMES","NATIONAL","NATURAL","NCHAR","NEXT","NO","NOCHECK","NONCLUSTERED","NONE","NOT","NOTHING","NOTNULL","NULL","NULLIF","NULLS","NUMERIC","OCTET_LENGTH","OF","OFF","OFFSET","OFFSETS","ON","ONLY","OPEN","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","OPTION","OR","ORDER","OTHERS","OUTER","OUTPUT","OVER","OVERLAPS","PAD","PARTIAL","PARTITION","PASCAL","PERCENT","PIVOT","PLAN","POSITION","PRAGMA","PRECEDING","PRECISION","PREPARE","PRESERVE","PRIMARY","PRINT","PRIOR","PRIVILEGES","PROC","PROCEDURE","PUBLIC","QUERY","RAISE","RAISERROR","RANGE","READ","READTEXT","REAL","RECONFIGURE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELATIVE","RELEASE","RENAME","REPLACE","REPLICATION","RESTORE","RESTRICT","RETURN","RETURNING","REVERT","REVOKE","RIGHT","ROLLBACK","ROW","ROWCOUNT","ROWGUIDCOL","ROWS","RULE","SAVE","SAVEPOINT","SCHEMA","SCROLL","SECOND","SECTION","SECURITYAUDIT","SELECT","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","SESSION","SESSION_USER","SET","SETUSER","SHUTDOWN","SIZE","SMALLINT","SOME","SPACE","SQL","SQLCA","SQLCODE","SQLERROR","SQLSTATE","SQLWARNING","STATISTICS","SUBSTRING","SUM","SYSTEM_USER","TABLE","TABLESAMPLE","TEMP","TEMPORARY","TEXTSIZE","THEN","TIES","TIME","TIMESTAMP","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TOP","TRAILING","TRAN","TRANSACTION","TRANSLATE","TRANSLATION","TRIGGER","TRIM","TRUE","TRUNCATE","TRY_CONVERT","TSEQUAL","UNBOUNDED","UNION","UNIQUE","UNKNOWN","UNPIVOT","UPDATE","UPDATETEXT","UPPER","USAGE","USE","USER","USING","VACUUM","VALUE","VALUES","VARCHAR","VARYING","VIEW","VIRTUAL","WAITFOR","WHEN","WHENEVER","WHERE","WHILE","WINDOW","WITH","WITHIN GROUP","WITHOUT","WORK","WRITE","WRITETEXT","YEAR","ZONE"],operators:["ALL","AND","ANY","BETWEEN","EXISTS","IN","LIKE","NOT","OR","SOME","EXCEPT","INTERSECT","UNION","APPLY","CROSS","FULL","INNER","JOIN","LEFT","OUTER","RIGHT","CONTAINS","FREETEXT","IS","NULL","PIVOT","UNPIVOT","MATCHED"],builtinFunctions:["AVG","CHECKSUM_AGG","COUNT","COUNT_BIG","GROUPING","GROUPING_ID","MAX","MIN","SUM","STDEV","STDEVP","VAR","VARP","CUME_DIST","FIRST_VALUE","LAG","LAST_VALUE","LEAD","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","COLLATE","COLLATIONPROPERTY","TERTIARY_WEIGHTS","FEDERATION_FILTERING_VALUE","CAST","CONVERT","PARSE","TRY_CAST","TRY_CONVERT","TRY_PARSE","ASYMKEY_ID","ASYMKEYPROPERTY","CERTPROPERTY","CERT_ID","CRYPT_GEN_RANDOM","DECRYPTBYASYMKEY","DECRYPTBYCERT","DECRYPTBYKEY","DECRYPTBYKEYAUTOASYMKEY","DECRYPTBYKEYAUTOCERT","DECRYPTBYPASSPHRASE","ENCRYPTBYASYMKEY","ENCRYPTBYCERT","ENCRYPTBYKEY","ENCRYPTBYPASSPHRASE","HASHBYTES","IS_OBJECTSIGNED","KEY_GUID","KEY_ID","KEY_NAME","SIGNBYASYMKEY","SIGNBYCERT","SYMKEYPROPERTY","VERIFYSIGNEDBYCERT","VERIFYSIGNEDBYASYMKEY","CURSOR_STATUS","DATALENGTH","IDENT_CURRENT","IDENT_INCR","IDENT_SEED","IDENTITY","SQL_VARIANT_PROPERTY","CURRENT_TIMESTAMP","DATEADD","DATEDIFF","DATEFROMPARTS","DATENAME","DATEPART","DATETIME2FROMPARTS","DATETIMEFROMPARTS","DATETIMEOFFSETFROMPARTS","DAY","EOMONTH","GETDATE","GETUTCDATE","ISDATE","MONTH","SMALLDATETIMEFROMPARTS","SWITCHOFFSET","SYSDATETIME","SYSDATETIMEOFFSET","SYSUTCDATETIME","TIMEFROMPARTS","TODATETIMEOFFSET","YEAR","CHOOSE","COALESCE","IIF","NULLIF","ABS","ACOS","ASIN","ATAN","ATN2","CEILING","COS","COT","DEGREES","EXP","FLOOR","LOG","LOG10","PI","POWER","RADIANS","RAND","ROUND","SIGN","SIN","SQRT","SQUARE","TAN","APP_NAME","APPLOCK_MODE","APPLOCK_TEST","ASSEMBLYPROPERTY","COL_LENGTH","COL_NAME","COLUMNPROPERTY","DATABASE_PRINCIPAL_ID","DATABASEPROPERTYEX","DB_ID","DB_NAME","FILE_ID","FILE_IDEX","FILE_NAME","FILEGROUP_ID","FILEGROUP_NAME","FILEGROUPPROPERTY","FILEPROPERTY","FULLTEXTCATALOGPROPERTY","FULLTEXTSERVICEPROPERTY","INDEX_COL","INDEXKEY_PROPERTY","INDEXPROPERTY","OBJECT_DEFINITION","OBJECT_ID","OBJECT_NAME","OBJECT_SCHEMA_NAME","OBJECTPROPERTY","OBJECTPROPERTYEX","ORIGINAL_DB_NAME","PARSENAME","SCHEMA_ID","SCHEMA_NAME","SCOPE_IDENTITY","SERVERPROPERTY","STATS_DATE","TYPE_ID","TYPE_NAME","TYPEPROPERTY","DENSE_RANK","NTILE","RANK","ROW_NUMBER","PUBLISHINGSERVERNAME","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","CERTENCODED","CERTPRIVATEKEY","CURRENT_USER","HAS_DBACCESS","HAS_PERMS_BY_NAME","IS_MEMBER","IS_ROLEMEMBER","IS_SRVROLEMEMBER","LOGINPROPERTY","ORIGINAL_LOGIN","PERMISSIONS","PWDENCRYPT","PWDCOMPARE","SESSION_USER","SESSIONPROPERTY","SUSER_ID","SUSER_NAME","SUSER_SID","SUSER_SNAME","SYSTEM_USER","USER","USER_ID","USER_NAME","ASCII","CHAR","CHARINDEX","CONCAT","DIFFERENCE","FORMAT","LEFT","LEN","LOWER","LTRIM","NCHAR","PATINDEX","QUOTENAME","REPLACE","REPLICATE","REVERSE","RIGHT","RTRIM","SOUNDEX","SPACE","STR","STUFF","SUBSTRING","UNICODE","UPPER","BINARY_CHECKSUM","CHECKSUM","CONNECTIONPROPERTY","CONTEXT_INFO","CURRENT_REQUEST_ID","ERROR_LINE","ERROR_NUMBER","ERROR_MESSAGE","ERROR_PROCEDURE","ERROR_SEVERITY","ERROR_STATE","FORMATMESSAGE","GETANSINULL","GET_FILESTREAM_TRANSACTION_CONTEXT","HOST_ID","HOST_NAME","ISNULL","ISNUMERIC","MIN_ACTIVE_ROWVERSION","NEWID","NEWSEQUENTIALID","ROWCOUNT_BIG","XACT_STATE","TEXTPTR","TEXTVALID","COLUMNS_UPDATED","EVENTDATA","TRIGGER_NESTLEVEL","UPDATE","CHANGETABLE","CHANGE_TRACKING_CONTEXT","CHANGE_TRACKING_CURRENT_VERSION","CHANGE_TRACKING_IS_COLUMN_IN_MASK","CHANGE_TRACKING_MIN_VALID_VERSION","CONTAINSTABLE","FREETEXTTABLE","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","FILETABLEROOTPATH","GETFILENAMESPACEPATH","GETPATHLOCATOR","PATHNAME","GET_TRANSMISSION_STATUS"],builtinVariables:["@@DATEFIRST","@@DBTS","@@LANGID","@@LANGUAGE","@@LOCK_TIMEOUT","@@MAX_CONNECTIONS","@@MAX_PRECISION","@@NESTLEVEL","@@OPTIONS","@@REMSERVER","@@SERVERNAME","@@SERVICENAME","@@SPID","@@TEXTSIZE","@@VERSION","@@CURSOR_ROWS","@@FETCH_STATUS","@@DATEFIRST","@@PROCID","@@ERROR","@@IDENTITY","@@ROWCOUNT","@@TRANCOUNT","@@CONNECTIONS","@@CPU_BUSY","@@IDLE","@@IO_BUSY","@@PACKET_ERRORS","@@PACK_RECEIVED","@@PACK_SENT","@@TIMETICKS","@@TOTAL_ERRORS","@@TOTAL_READ","@@TOTAL_WRITE"],pseudoColumns:["$ACTION","$IDENTITY","$ROWGUID","$PARTITION"],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@keywords":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/N'/,{token:"string",next:"@string"}],[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/\[/,{token:"identifier.quote",next:"@bracketedIdentifier"}],[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],bracketedIdentifier:[[/[^\]]+/,"identifier"],[/]]/,"identifier"],[/]/,{token:"identifier.quote",next:"@pop"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[[/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i,"keyword"],[/BEGIN\s+TRY\b/i,{token:"keyword.try"}],[/END\s+TRY\b/i,{token:"keyword.try"}],[/BEGIN\s+CATCH\b/i,{token:"keyword.catch"}],[/END\s+CATCH\b/i,{token:"keyword.catch"}],[/(BEGIN|CASE)\b/i,{token:"keyword.block"}],[/END\b/i,{token:"keyword.block"}],[/WHEN\b/i,{token:"keyword.choice"}],[/THEN\b/i,{token:"keyword.choice"}]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6692.9322b59d.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/6692.9322b59d.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6692.9322b59d.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/6708.5cf2a45c.chunk.js b/ydb/core/viewer/monitoring/static/js/6708.5cf2a45c.chunk.js deleted file mode 100644 index d8fc1c63b99e..000000000000 --- a/ydb/core/viewer/monitoring/static/js/6708.5cf2a45c.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6708],{76708:function(e,t,n){n.r(t),n.d(t,{conf:function(){return o},language:function(){return i}});var o={wordPattern:/(#?-?\d*\.\d\w*%?)|([@$#!.:]?[\w-?]+%?)|[@#!.]/g,comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},i={defaultToken:"",tokenPostfix:".scss",ws:"[ \t\n\r\f]*",identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@variabledeclaration"},{include:"@warndebug"},["[@](include)",{token:"keyword",next:"@includedeclaration"}],["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["[@](function)",{token:"keyword",next:"@functiondeclaration"}],["[@](mixin)",{token:"keyword",next:"@mixindeclaration"}],["url(\\-prefix)?\\(",{token:"meta",next:"@urldeclaration"}],{include:"@controlstatement"},{include:"@selectorname"},["[&\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.curly",next:"@selectorbody"}]],selectorbody:[["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],{include:"@selector"},["[@](extend)",{token:"keyword",next:"@extendbody"}],["[@](return)",{token:"keyword",next:"@declarationbody"}],["}",{token:"delimiter.curly",next:"@pop"}]],selectorname:[["#{",{token:"meta",next:"@variableinterpolation"}],["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["url(\\-prefix)?\\(",{token:"meta",next:"@urldeclaration"}],{include:"@functioninvocation"},{include:"@numbers"},{include:"@strings"},{include:"@variablereference"},["(and\\b|or\\b|not\\b)","operator"],{include:"@name"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","operator"],[",","delimiter"],["!default","literal"],["\\(",{token:"delimiter.parenthesis",next:"@parenthizedterm"}]],rulevalue:[{include:"@term"},["!important","literal"],[";","delimiter","@pop"],["{",{token:"delimiter.curly",switchTo:"@nestedproperty"}],["(?=})",{token:"",next:"@pop"}]],nestedproperty:[["[*_]?@identifier@ws:","attribute.name","@rulevalue"],{include:"@comments"},["}",{token:"delimiter.curly",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],variabledeclaration:[["\\$@identifier@ws:","variable.decl","@declarationbody"]],urldeclaration:[{include:"@strings"},["[^)\r\n]+","string"],["\\)",{token:"meta",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],extendbody:[{include:"@selectorname"},["!optional","literal"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],variablereference:[["\\$@identifier","variable.ref"],["\\.\\.\\.","operator"],["#{",{token:"meta",next:"@variableinterpolation"}]],variableinterpolation:[{include:"@variablereference"},["}",{token:"meta",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],name:[["@identifier","attribute.value"]],numbers:[["(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","number.hex"]],units:[["(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","number","@pop"]],functiondeclaration:[["@identifier@ws\\(",{token:"meta",next:"@parameterdeclaration"}],["{",{token:"delimiter.curly",switchTo:"@functionbody"}]],mixindeclaration:[["@identifier@ws\\(",{token:"meta",next:"@parameterdeclaration"}],["@identifier","meta"],["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],parameterdeclaration:[["\\$@identifier@ws:","variable.decl"],["\\.\\.\\.","operator"],[",","delimiter"],{include:"@term"},["\\)",{token:"meta",next:"@pop"}]],includedeclaration:[{include:"@functioninvocation"},["@identifier","meta"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}],["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],keyframedeclaration:[["@identifier","meta"],["{",{token:"delimiter.curly",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.curly",next:"@selectorbody"}],["}",{token:"delimiter.curly",next:"@pop"}]],controlstatement:[["[@](if|else|for|while|each|media)",{token:"keyword.flow",next:"@controlstatementdeclaration"}]],controlstatementdeclaration:[["(in|from|through|if|to)\\b",{token:"keyword.flow"}],{include:"@term"},["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],functionbody:[["[@](return)",{token:"keyword"}],{include:"@variabledeclaration"},{include:"@term"},{include:"@controlstatement"},[";","delimiter"],["}",{token:"delimiter.curly",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"meta",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"meta",next:"@pop"}]],strings:[['~?"',{token:"string.delimiter",next:"@stringenddoublequote"}],["~?'",{token:"string.delimiter",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string.delimiter",next:"@pop"}],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string.delimiter",next:"@pop"}],[".","string"]]}}}}]); -//# sourceMappingURL=6708.5cf2a45c.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/674.e6536250.chunk.js b/ydb/core/viewer/monitoring/static/js/674.e6536250.chunk.js new file mode 100644 index 000000000000..566d8c952ad1 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/674.e6536250.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[674],{10674:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/678.b73063ff.chunk.js b/ydb/core/viewer/monitoring/static/js/678.b73063ff.chunk.js new file mode 100644 index 000000000000..ca33b05d6f5f --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/678.b73063ff.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[678],{40678:function(_,t,e){_.exports=function(_){"use strict";function t(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var e=t(_),n="\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("_"),s="\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("_"),u="\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("_"),m=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function i(_,t,e){var n,r;return"m"===e?t?"\u043c\u0438\u043d\u0443\u0442\u0430":"\u043c\u0438\u043d\u0443\u0442\u0443":_+" "+(n=+_,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"}[e].split("_"),n%10==1&&n%100!=11?r[0]:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?r[1]:r[2])}var d=function(_,t){return m.test(t)?n[_.month()]:r[_.month()]};d.s=r,d.f=n;var M=function(_,t){return m.test(t)?s[_.month()]:u[_.month()]};M.s=u,M.f=s;var o={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:d,monthsShort:M,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:i,mm:i,h:"\u0447\u0430\u0441",hh:i,d:"\u0434\u0435\u043d\u044c",dd:i,M:"\u043c\u0435\u0441\u044f\u0446",MM:i,y:"\u0433\u043e\u0434",yy:i},ordinal:function(_){return _},meridiem:function(_){return _<4?"\u043d\u043e\u0447\u0438":_<12?"\u0443\u0442\u0440\u0430":_<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0435\u0440\u0430"}};return e.default.locale(o,null,!0),o}(e(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6795.5ec0c96a.chunk.js b/ydb/core/viewer/monitoring/static/js/6795.5ec0c96a.chunk.js new file mode 100644 index 000000000000..9e39aef92467 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6795.5ec0c96a.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 6795.5ec0c96a.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6795],{66795:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>i,language:()=>r});var i={wordPattern:/(#?-?\d*\.\d\w*%?)|((::|[@#.!:])?[\w-?]+%?)|::|[@#.!:]/g,comments:{blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},r={defaultToken:"",tokenPostfix:".css",ws:"[ \t\n\r\f]*",identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.bracket"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@strings"},["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@selectorname"},["[\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.bracket",next:"@selectorbody"}]],selectorbody:[{include:"@comments"},["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],["}",{token:"delimiter.bracket",next:"@pop"}]],selectorname:[["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@functioninvocation"},{include:"@numbers"},{include:"@name"},{include:"@strings"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","delimiter"],[",","delimiter"]],rulevalue:[{include:"@comments"},{include:"@strings"},{include:"@term"},["!important","keyword"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],urldeclaration:[{include:"@strings"},["[^)\r\n]+","string"],["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[/[^*/]+/,"comment"],[/./,"comment"]],name:[["@identifier","attribute.value"]],numbers:[["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],keyframedeclaration:[["@identifier","attribute.value"],["{",{token:"delimiter.bracket",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.bracket",next:"@selectorbody"}],["}",{token:"delimiter.bracket",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"attribute.value",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"attribute.value",next:"@pop"}]],strings:[['~?"',{token:"string",next:"@stringenddoublequote"}],["~?'",{token:"string",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string",next:"@pop"}],[/[^\\"]+/,"string"],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string",next:"@pop"}],[/[^\\']+/,"string"],[".","string"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6795.5ec0c96a.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/6795.5ec0c96a.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6795.5ec0c96a.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/6815.672badd5.chunk.js b/ydb/core/viewer/monitoring/static/js/6815.672badd5.chunk.js new file mode 100644 index 000000000000..e6d2967d92c0 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6815.672badd5.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6815],{6815:function(e,_,a){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=_(e),u={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 a.default.locale(u,null,!0),u}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6876.867b698c.chunk.js b/ydb/core/viewer/monitoring/static/js/6876.867b698c.chunk.js new file mode 100644 index 000000000000..e965e2985548 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6876.867b698c.chunk.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6876],{36876:(e,t,C)=>{C.r(t),C.d(t,{ReactComponent:()=>u,default:()=>E});var r,a,n,o,i,l,s,d,c,H,p,V,k,M=C(68963);function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var C=arguments[t];for(var r in C)Object.prototype.hasOwnProperty.call(C,r)&&(e[r]=C[r])}return e},h.apply(this,arguments)}function Z(e,t){let{title:C,titleId:Z,...u}=e;return M.createElement("svg",h({width:260,height:260,viewBox:"0 0 520 520",fill:"none",xmlns:"http://www.w3.org/2000/svg",ref:t,"aria-labelledby":Z},u),C?M.createElement("title",{id:Z},C):null,r||(r=M.createElement("path",{opacity:.1,d:"M228.637 445C217.178 445.049 206.065 441.074 197.233 433.768L28.4227 288.499C24.7711 285.319 22.4943 280.846 22.0715 276.02C21.6487 271.195 23.1128 266.393 26.1557 262.626L65.3512 214.612C66.9235 212.684 68.8667 211.091 71.0657 209.927C73.2646 208.764 75.6745 208.055 78.1525 207.841C80.6305 207.627 83.1263 207.913 85.4917 208.682C87.8572 209.452 90.0443 210.688 91.9234 212.319L223.682 326.793L435.516 94.088C438.811 90.4596 443.405 88.2807 448.298 88.0253C453.191 87.7699 457.987 89.4587 461.642 92.7243L507.824 134.205C509.647 135.841 511.129 137.821 512.184 140.032C513.24 142.243 513.849 144.64 513.975 147.087C514.102 149.534 513.744 151.982 512.922 154.29C512.101 156.598 510.831 158.721 509.187 160.536L265.553 428.549C260.881 433.709 255.185 437.838 248.829 440.671C242.472 443.503 235.595 444.978 228.637 445Z",fill:"#509CF5"})),a||(a=M.createElement("path",{d:"M412.933 102.332H294.933C289.433 102.332 284.933 106.832 284.933 112.332V315.432C284.933 320.932 289.433 325.432 294.933 325.432H446.433C451.933 325.432 456.433 320.932 456.433 315.432V133.732L429.933 107.332",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4.01 10.02"})),n||(n=M.createElement("path",{d:"M425.033 102.332V104.332",stroke:"#00E6C5",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round"})),o||(o=M.createElement("path",{d:"M425.033 115.031V126.331C425.033 130.431 428.333 133.731 432.433 133.731H449.033",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4.27 10.68"})),i||(i=M.createElement("path",{d:"M454.333 133.73H456.333",stroke:"#00E6C5",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round"})),l||(l=M.createElement("path",{d:"M77 397.052L89.1 409L110 388",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4.84211,strokeLinecap:"round",strokeLinejoin:"round"})),s||(s=M.createElement("path",{d:"M125 398C125 416.775 109.775 432 91 432C72.2252 432 57 416.775 57 398C57 379.225 72.2252 364 91 364C109.775 364 125 379.225 125 398Z",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4.84211,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4.84 12.11"})),d||(d=M.createElement("path",{d:"M147.5 119C147.5 117.895 146.605 117 145.5 117C144.395 117 143.5 117.895 143.5 119H147.5ZM143.5 129.8C143.5 130.905 144.395 131.8 145.5 131.8C146.605 131.8 147.5 130.905 147.5 129.8H143.5ZM147.5 152.5C147.5 151.395 146.605 150.5 145.5 150.5C144.395 150.5 143.5 151.395 143.5 152.5H147.5ZM143.5 164.2C143.5 165.305 144.395 166.2 145.5 166.2C146.605 166.2 147.5 165.305 147.5 164.2H143.5ZM168.1 143.602C169.205 143.602 170.1 142.706 170.1 141.602C170.1 140.497 169.205 139.602 168.1 139.602V143.602ZM157.2 139.602C156.096 139.602 155.2 140.497 155.2 141.602C155.2 142.706 156.096 143.602 157.2 143.602V139.602ZM133.7 143.602C134.805 143.602 135.7 142.706 135.7 141.602C135.7 140.497 134.805 139.602 133.7 139.602V143.602ZM122.9 139.602C121.795 139.602 120.9 140.497 120.9 141.602C120.9 142.706 121.795 143.602 122.9 143.602V139.602ZM143.5 119V129.8H147.5V119H143.5ZM143.5 152.5V164.2H147.5V152.5H143.5ZM168.1 139.602H157.2V143.602H168.1V139.602ZM133.7 139.602H122.9V143.602H133.7V139.602Z",fill:"#2EE5C0",fillOpacity:.8})),c||(c=M.createElement("path",{d:"M406.3 397.5C406.3 396.395 405.405 395.5 404.3 395.5C403.195 395.5 402.3 396.395 402.3 397.5H406.3ZM402.3 403.1C402.3 404.205 403.195 405.1 404.3 405.1C405.405 405.1 406.3 404.205 406.3 403.1H402.3ZM406.3 414.898C406.3 413.794 405.405 412.898 404.3 412.898C403.195 412.898 402.3 413.794 402.3 414.898H406.3ZM402.3 420.998C402.3 422.103 403.195 422.998 404.3 422.998C405.405 422.998 406.3 422.103 406.3 420.998H402.3ZM416.1 411.2C417.205 411.2 418.1 410.305 418.1 409.2C418.1 408.095 417.205 407.2 416.1 407.2V411.2ZM410.4 407.2C409.295 407.2 408.4 408.095 408.4 409.2C408.4 410.305 409.295 411.2 410.4 411.2V407.2ZM398.2 411.2C399.305 411.2 400.2 410.305 400.2 409.2C400.2 408.095 399.305 407.2 398.2 407.2V411.2ZM392.5 407.2C391.395 407.2 390.5 408.095 390.5 409.2C390.5 410.305 391.395 411.2 392.5 411.2V407.2ZM402.3 397.5V403.1H406.3V397.5H402.3ZM402.3 414.898V420.998H406.3V414.898H402.3ZM416.1 407.2H410.4V411.2H416.1V407.2ZM398.2 407.2H392.5V411.2H398.2V407.2Z",fill:"#2EE5C0",fillOpacity:.8})),H||(H=M.createElement("path",{d:"M186 385.667V394.833C186 397.264 185.012 399.596 183.254 401.315C181.496 403.034 179.111 404 176.625 404H121C115.477 404 111 399.523 111 394V249C111 243.477 115.477 239 121 239H176.625C179.111 239 181.496 239.966 183.254 241.685C185.012 243.404 186 245.736 186 248.167V385.667Z",fill:"#0067C1"})),p||(p=M.createElement("path",{d:"M177.143 375.273V384.637C177.143 387.12 176.153 389.501 174.392 391.257C172.63 393.013 170.241 394 167.75 394H112C106.477 394 102 389.522 102 384V235.465C102 229.942 106.477 225.465 112 225.465H167.75C170.241 225.465 172.63 226.451 174.392 228.207C176.153 229.963 177.143 232.345 177.143 234.828V375.273Z",fill:"#007CE9"})),V||(V=M.createElement("path",{d:"M292.385 235.185C291.545 236.543 292.529 238.321 294.126 238.321H375.327C379.067 238.242 382.784 238.917 386.255 240.305C389.726 241.693 392.879 243.765 395.524 246.398C398.169 249.031 400.252 252.169 401.646 255.623C403.041 259.078 403.718 262.778 403.639 266.5C403.639 294.679 394.201 398 356.452 398H242.081C230.712 398 219.806 393.497 211.748 385.477L206.04 379.797C205.665 379.424 205.158 379.214 204.629 379.214H191.299H179.143C178.038 379.214 177.143 378.319 177.143 377.214V239.495C177.143 238.847 177.668 238.321 178.317 238.321C195.697 238.321 212.371 231.438 224.69 219.177L233.949 209.961C240.092 203.848 245.391 196.942 249.705 189.426L267.012 159.283C275.636 144.262 293.887 133.185 306.212 145.354C312.929 151.987 316.741 160.994 316.815 170.411C316.815 171.538 316.721 172.665 316.626 173.886C314.302 197.951 298.104 225.943 292.385 235.185Z",fill:"#FFCC00"})),k||(k=M.createElement("path",{d:"M356.457 369.801H237.651C229.12 369.801 220.937 366.421 214.893 360.401C208.849 354.381 200.666 351.001 192.135 351.001H177.143V379.2H192.135C200.666 379.2 208.849 382.58 214.893 388.6C220.937 394.62 229.12 398 237.651 398H356.457C394.207 398 403.645 294.601 403.645 266.402C403.645 263.723 403.328 261.054 402.701 258.449C399.568 298.831 387.743 369.801 356.457 369.801Z",fill:"#DEB700"})))}const u=M.forwardRef(Z),E=C.p+"static/media/thumbsUp.d4a03fbaa64ce85a0045bf8ba77f8e2b.svg"}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6877.d2d51d98.chunk.js b/ydb/core/viewer/monitoring/static/js/6877.d2d51d98.chunk.js new file mode 100644 index 000000000000..c15823f13307 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6877.d2d51d98.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6877],{36877:function(e,a,_){e.exports=function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=a(e),n={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 _.default.locale(n,null,!0),n}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6887.0855fd66.chunk.js b/ydb/core/viewer/monitoring/static/js/6887.0855fd66.chunk.js new file mode 100644 index 000000000000..88df5a63697e --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6887.0855fd66.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6887],{96887:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),n={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(_){return _},meridiem:function(_){return _>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 t.default.locale(n,null,!0),n}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6892.2c3c2bcb.chunk.js b/ydb/core/viewer/monitoring/static/js/6892.2c3c2bcb.chunk.js new file mode 100644 index 000000000000..389b8564a351 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6892.2c3c2bcb.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6892],{46892:function(e,_,r){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=_(e),u={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 r.default.locale(u,null,!0),u}(r(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6892.3db15360.chunk.js b/ydb/core/viewer/monitoring/static/js/6892.3db15360.chunk.js deleted file mode 100644 index 652a681dbecc..000000000000 --- a/ydb/core/viewer/monitoring/static/js/6892.3db15360.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6892],{66892:function(e,t,s){s.r(t),s.d(t,{conf:function(){return r},language:function(){return o}});var r={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},o={defaultToken:"",tokenPostfix:".hcl",keywords:["var","local","path","for_each","any","string","number","bool","true","false","null","if ","else ","endif ","for ","in","endfor"],operators:["=",">=","<=","==","!=","+","-","*","/","%","&&","||","!","<",">","?","...",":"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,terraformFunctions:/(abs|ceil|floor|log|max|min|pow|signum|chomp|format|formatlist|indent|join|lower|regex|regexall|replace|split|strrev|substr|title|trimspace|upper|chunklist|coalesce|coalescelist|compact|concat|contains|distinct|element|flatten|index|keys|length|list|lookup|map|matchkeys|merge|range|reverse|setintersection|setproduct|setunion|slice|sort|transpose|values|zipmap|base64decode|base64encode|base64gzip|csvdecode|jsondecode|jsonencode|urlencode|yamldecode|yamlencode|abspath|dirname|pathexpand|basename|file|fileexists|fileset|filebase64|templatefile|formatdate|timeadd|timestamp|base64sha256|base64sha512|bcrypt|filebase64sha256|filebase64sha512|filemd5|filemd1|filesha256|filesha512|md5|rsadecrypt|sha1|sha256|sha512|uuid|uuidv5|cidrhost|cidrnetmask|cidrsubnet|tobool|tolist|tomap|tonumber|toset|tostring)/,terraformMainBlocks:/(module|data|terraform|resource|provider|variable|output|locals)/,tokenizer:{root:[[/^@terraformMainBlocks([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)(\{)/,["type","","string","","string","","@brackets"]],[/(\w+[ \t]+)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)(\{)/,["identifier","","string","","string","","@brackets"]],[/(\w+[ \t]+)([ \t]*)([\w-]+|"[\w-]+"|)([ \t]*)([\w-]+|"[\w-]+"|)(=)(\{)/,["identifier","","string","","operator","","@brackets"]],{include:"@terraform"}],terraform:[[/@terraformFunctions(\()/,["type","@brackets"]],[/[a-zA-Z_]\w*-*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"variable"}}],{include:"@whitespace"},{include:"@heredoc"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\d[\d']*/,"number"],[/\d/,"number"],[/[;,.]/,"delimiter"],[/"/,"string","@string"],[/'/,"invalid"]],heredoc:[[/<<[-]*\s*["]?([\w\-]+)["]?/,{token:"string.heredoc.delimiter",next:"@heredocBody.$1"}]],heredocBody:[[/([\w\-]+)$/,{cases:{"$1==$S2":[{token:"string.heredoc.delimiter",next:"@popall"}],"@default":"string.heredoc"}}],[/./,"string.heredoc"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"],[/#.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/\$\{/,{token:"delimiter",next:"@stringExpression"}],[/[^\\"\$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@popall"]],stringInsideExpression:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],stringExpression:[[/\}/,{token:"delimiter",next:"@pop"}],[/"/,"string","@stringInsideExpression"],{include:"@terraform"}]}}}}]); -//# sourceMappingURL=6892.3db15360.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6898.5580b941.chunk.js b/ydb/core/viewer/monitoring/static/js/6898.5580b941.chunk.js new file mode 100644 index 000000000000..8c2972aed2a7 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6898.5580b941.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 6898.5580b941.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6898],{86898:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>o,language:()=>s});var o={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""',notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""'},{open:'"',close:'"'}],folding:{offSide:!0}},s={defaultToken:"invalid",tokenPostfix:".gql",keywords:["null","true","false","query","mutation","subscription","extend","schema","directive","scalar","type","interface","union","enum","input","implements","fragment","on"],typeKeywords:["Int","Float","String","Boolean","ID"],directiveLocations:["SCHEMA","SCALAR","OBJECT","FIELD_DEFINITION","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","QUERY","MUTATION","SUBSCRIPTION","FIELD","FRAGMENT_DEFINITION","FRAGMENT_SPREAD","INLINE_FRAGMENT","VARIABLE_DEFINITION"],operators:["=","!","?",":","&","|"],symbols:/[=!?:&|]+/,escapes:/\\(?:["\\\/bfnrt]|u[0-9A-Fa-f]{4})/,tokenizer:{root:[[/[a-z_][\w$]*/,{cases:{"@keywords":"keyword","@default":"key.identifier"}}],[/[$][\w$]*/,{cases:{"@keywords":"keyword","@default":"argument.identifier"}}],[/[A-Z][\w\$]*/,{cases:{"@typeKeywords":"keyword","@default":"type.identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,{token:"annotation",log:"annotation token: $0"}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"""/,{token:"string",next:"@mlstring",nextEmbedded:"markdown"}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}]],mlstring:[[/[^"]+/,"string"],['"""',{token:"string",next:"@pop",nextEmbedded:"@pop"}]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/#.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6898.5580b941.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/6898.5580b941.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6898.5580b941.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/6919.84ed9ccc.chunk.js b/ydb/core/viewer/monitoring/static/js/6919.84ed9ccc.chunk.js new file mode 100644 index 000000000000..e5c078969dc2 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6919.84ed9ccc.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 6919.84ed9ccc.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6919],{26919:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>l,language:()=>m});var o,i,s=n(41551),r=Object.defineProperty,d=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,p=Object.prototype.hasOwnProperty,a=(e,t,n,o)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let i of c(t))p.call(e,i)||i===n||r(e,i,{get:()=>t[i],enumerable:!(o=d(t,i))||o.enumerable});return e},k={};a(k,o=s,"default"),i&&a(i,o,"default");var l={comments:{blockComment:["{/*","*/}"]},brackets:[["{","}"]],autoClosingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"\u201c",close:"\u201d"},{open:"\u2018",close:"\u2019"},{open:"`",close:"`"},{open:"{",close:"}"},{open:"(",close:")"},{open:"_",close:"_"},{open:"**",close:"**"},{open:"<",close:">"}],onEnterRules:[{beforeText:/^\s*- .+/,action:{indentAction:k.languages.IndentAction.None,appendText:"- "}},{beforeText:/^\s*\+ .+/,action:{indentAction:k.languages.IndentAction.None,appendText:"+ "}},{beforeText:/^\s*\* .+/,action:{indentAction:k.languages.IndentAction.None,appendText:"* "}},{beforeText:/^> /,action:{indentAction:k.languages.IndentAction.None,appendText:"> "}},{beforeText:/<\w+/,action:{indentAction:k.languages.IndentAction.Indent}},{beforeText:/\s+>\s*$/,action:{indentAction:k.languages.IndentAction.Indent}},{beforeText:/<\/\w+>/,action:{indentAction:k.languages.IndentAction.Outdent}},...Array.from({length:100},((e,t)=>({beforeText:new RegExp("^".concat(t,"\\. .+")),action:{indentAction:k.languages.IndentAction.None,appendText:"".concat(t+1,". ")}})))]},m={defaultToken:"",tokenPostfix:".mdx",control:/[!#()*+.[\\\]_`{}\-]/,escapes:/\\@control/,tokenizer:{root:[[/^---$/,{token:"meta.content",next:"@frontmatter",nextEmbedded:"yaml"}],[/^\s*import/,{token:"keyword",next:"@import",nextEmbedded:"js"}],[/^\s*export/,{token:"keyword",next:"@export",nextEmbedded:"js"}],[/<\w+/,{token:"type.identifier",next:"@jsx"}],[/<\/?\w+>/,"type.identifier"],[/^(\s*)(>*\s*)(#{1,6}\s)/,[{token:"white"},{token:"comment"},{token:"keyword",next:"@header"}]],[/^(\s*)(>*\s*)([*+-])(\s+)/,["white","comment","keyword","white"]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,["white","comment","number","white"]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,["white","comment","number","white"]],[/^(\s*)(>*\s*)(-{3,}|\*{3,}|_{3,})$/,["white","comment","keyword"]],[/`{3,}(\s.*)?$/,{token:"string",next:"@codeblock_backtick"}],[/~{3,}(\s.*)?$/,{token:"string",next:"@codeblock_tilde"}],[/`{3,}(\S+).*$/,{token:"string",next:"@codeblock_highlight_backtick",nextEmbedded:"$1"}],[/~{3,}(\S+).*$/,{token:"string",next:"@codeblock_highlight_tilde",nextEmbedded:"$1"}],[/^(\s*)(-{4,})$/,["white","comment"]],[/^(\s*)(>+)/,["white","comment"]],{include:"content"}],content:[[/(\[)(.+)(]\()(.+)(\s+".*")(\))/,["","string.link","","type.identifier","string.link",""]],[/(\[)(.+)(]\()(.+)(\))/,["","type.identifier","","string.link",""]],[/(\[)(.+)(]\[)(.+)(])/,["","type.identifier","","type.identifier",""]],[/(\[)(.+)(]:\s+)(\S*)/,["","type.identifier","","string.link"]],[/(\[)(.+)(])/,["","type.identifier",""]],[/`.*`/,"variable.source"],[/_/,{token:"emphasis",next:"@emphasis_underscore"}],[/\*(?!\*)/,{token:"emphasis",next:"@emphasis_asterisk"}],[/\*\*/,{token:"strong",next:"@strong"}],[/{/,{token:"delimiter.bracket",next:"@expression",nextEmbedded:"js"}]],import:[[/'\s*(;|$)/,{token:"string",next:"@pop",nextEmbedded:"@pop"}]],expression:[[/{/,{token:"delimiter.bracket",next:"@expression"}],[/}/,{token:"delimiter.bracket",next:"@pop",nextEmbedded:"@pop"}]],export:[[/^\s*$/,{token:"delimiter.bracket",next:"@pop",nextEmbedded:"@pop"}]],jsx:[[/\s+/,""],[/(\w+)(=)("(?:[^"\\]|\\.)*")/,["attribute.name","operator","string"]],[/(\w+)(=)('(?:[^'\\]|\\.)*')/,["attribute.name","operator","string"]],[/(\w+(?=\s|>|={|$))/,["attribute.name"]],[/={/,{token:"delimiter.bracket",next:"@expression",nextEmbedded:"js"}],[/>/,{token:"type.identifier",next:"@pop"}]],header:[[/.$/,{token:"keyword",next:"@pop"}],{include:"content"},[/./,{token:"keyword"}]],strong:[[/\*\*/,{token:"strong",next:"@pop"}],{include:"content"},[/./,{token:"strong"}]],emphasis_underscore:[[/_/,{token:"emphasis",next:"@pop"}],{include:"content"},[/./,{token:"emphasis"}]],emphasis_asterisk:[[/\*(?!\*)/,{token:"emphasis",next:"@pop"}],{include:"content"},[/./,{token:"emphasis"}]],frontmatter:[[/^---$/,{token:"meta.content",nextEmbedded:"@pop",next:"@pop"}]],codeblock_highlight_backtick:[[/\s*`{3,}\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/.*$/,"variable.source"]],codeblock_highlight_tilde:[[/\s*~{3,}\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/.*$/,"variable.source"]],codeblock_backtick:[[/\s*`{3,}\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]],codeblock_tilde:[[/\s*~{3,}\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6919.84ed9ccc.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/6919.84ed9ccc.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6919.84ed9ccc.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/6954.e18be130.chunk.js b/ydb/core/viewer/monitoring/static/js/6954.e18be130.chunk.js new file mode 100644 index 000000000000..c1ccbf64b07f --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6954.e18be130.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6954],{6954:function(a,i,n){a.exports=function(a){"use strict";function i(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var n=i(a),_={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(a){return a},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(_,null,!0),_}(n(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/6961.f4888ae1.chunk.js b/ydb/core/viewer/monitoring/static/js/6961.f4888ae1.chunk.js new file mode 100644 index 000000000000..7d3e7ac43eef --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/6961.f4888ae1.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[6961],{96961:function(e,_,a){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=_(e),t={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 _=["th","st","nd","rd"],a=e%100;return"["+e+(_[(a-20)%10]||_[a]||_[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 a.default.locale(t,null,!0),t}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/698.746436d5.chunk.js b/ydb/core/viewer/monitoring/static/js/698.746436d5.chunk.js deleted file mode 100644 index d4ca10f93514..000000000000 --- a/ydb/core/viewer/monitoring/static/js/698.746436d5.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[698],{90698:function(e,n,t){t.r(n),t.d(n,{conf:function(){return r},language:function(){return i}});var o=t(37456),r={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:o.Mj.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:o.Mj.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:o.Mj.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:o.Mj.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},i={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","package","private","protected","public","readonly","require","global","return","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],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]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,"delimiter.bracket"],{include:"common"}],common:[[/[a-z_$][\w$]*/,{cases:{"@keywords":"keyword","@default":"identifier"}}],[/[A-Z][\w\$]*/,"type.identifier"],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:"regexp",bracket:"@open",next:"@regexp"}],[/[()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([gimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}}}}]); -//# sourceMappingURL=698.746436d5.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7016.4a34a027.chunk.js b/ydb/core/viewer/monitoring/static/js/7016.4a34a027.chunk.js new file mode 100644 index 000000000000..b99708d6c8e3 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7016.4a34a027.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7016],{77016:function(e,t,r){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=t(e),_={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,r,a){var m=_.words[r];if(1===r.length)return"y"===r&&t?"\u0458\u0435\u0434\u043d\u0430 \u0433\u043e\u0434\u0438\u043d\u0430":a||t?m[0]:m[1];var d=_.correctGrammarCase(e,m);return"yy"===r&&t&&"%d \u0433\u043e\u0434\u0438\u043d\u0443"===d?e+" \u0433\u043e\u0434\u0438\u043d\u0430":d.replace("%d",e)}},a={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:_.relativeTimeFormatter,mm:_.relativeTimeFormatter,h:_.relativeTimeFormatter,hh:_.relativeTimeFormatter,d:_.relativeTimeFormatter,dd:_.relativeTimeFormatter,M:_.relativeTimeFormatter,MM:_.relativeTimeFormatter,y:_.relativeTimeFormatter,yy:_.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 r.default.locale(a,null,!0),a}(r(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/704.45771d88.chunk.js b/ydb/core/viewer/monitoring/static/js/704.45771d88.chunk.js new file mode 100644 index 000000000000..94c40689be0e --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/704.45771d88.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[704],{704:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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(_){return _>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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7119.e94f8dac.chunk.js b/ydb/core/viewer/monitoring/static/js/7119.e94f8dac.chunk.js new file mode 100644 index 000000000000..607cd2437a9c --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7119.e94f8dac.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7119],{97119:function(_,e,a){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var a=e(_),t={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(_){return _},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 a.default.locale(t,null,!0),t}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7168.ed7798a9.chunk.js b/ydb/core/viewer/monitoring/static/js/7168.ed7798a9.chunk.js deleted file mode 100644 index 1abe372728cc..000000000000 --- a/ydb/core/viewer/monitoring/static/js/7168.ed7798a9.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7168],{77168:function(e,t,n){n.r(t),n.d(t,{conf:function(){return i},language:function(){return o}});var i={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:'"',close:'"'}],autoClosingPairs:[{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["comment"]},{open:'"""',close:'"""'},{open:"`",close:"`",notIn:["string","comment"]},{open:"(",close:")"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"<<",close:">>"}],indentationRules:{increaseIndentPattern:/^\s*(after|else|catch|rescue|fn|[^#]*(do|<\-|\->|\{|\[|\=))\s*$/,decreaseIndentPattern:/^\s*((\}|\])\s*$|(after|else|catch|rescue|end)\b)/}},o={defaultToken:"source",tokenPostfix:".elixir",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"<<",close:">>",token:"delimiter.angle.special"}],declarationKeywords:["def","defp","defn","defnp","defguard","defguardp","defmacro","defmacrop","defdelegate","defcallback","defmacrocallback","defmodule","defprotocol","defexception","defimpl","defstruct"],operatorKeywords:["and","in","not","or","when"],namespaceKeywords:["alias","import","require","use"],otherKeywords:["after","case","catch","cond","do","else","end","fn","for","if","quote","raise","receive","rescue","super","throw","try","unless","unquote_splicing","unquote","with"],constants:["true","false","nil"],nameBuiltin:["__MODULE__","__DIR__","__ENV__","__CALLER__","__STACKTRACE__"],operator:/-[->]?|!={0,2}|\*|\/|\\\\|&{1,3}|\.\.?|\^(?:\^\^)?|\+\+?|<(?:-|<<|=|>|\|>|~>?)?|=~|={1,3}|>(?:=|>>)?|\|~>|\|>|\|{1,3}|~>>?|~~~|::/,variableName:/[a-z_][a-zA-Z0-9_]*[?!]?/,atomName:/[a-zA-Z_][a-zA-Z0-9_@]*[?!]?|@specialAtomName|@operator/,specialAtomName:/\.\.\.|<<>>|%\{\}|%|\{\}/,aliasPart:/[A-Z][a-zA-Z0-9_]*/,moduleName:/@aliasPart(?:\.@aliasPart)*/,sigilSymmetricDelimiter:/"""|'''|"|'|\/|\|/,sigilStartDelimiter:/@sigilSymmetricDelimiter|<|\{|\[|\(/,sigilEndDelimiter:/@sigilSymmetricDelimiter|>|\}|\]|\)/,decimal:/\d(?:_?\d)*/,hex:/[0-9a-fA-F](_?[0-9a-fA-F])*/,octal:/[0-7](_?[0-7])*/,binary:/[01](_?[01])*/,escape:/\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2}|\\./,tokenizer:{root:[{include:"@whitespace"},{include:"@comments"},{include:"@keywordsShorthand"},{include:"@numbers"},{include:"@identifiers"},{include:"@strings"},{include:"@atoms"},{include:"@sigils"},{include:"@attributes"},{include:"@symbols"}],whitespace:[[/\s+/,"white"]],comments:[[/(#)(.*)/,["comment.punctuation","comment"]]],keywordsShorthand:[[/(@atomName)(:)/,["constant","constant.punctuation"]],[/"(?=([^"]|#\{.*?\}|\\")*":)/,{token:"constant.delimiter",next:"@doubleQuotedStringKeyword"}],[/'(?=([^']|#\{.*?\}|\\')*':)/,{token:"constant.delimiter",next:"@singleQuotedStringKeyword"}]],doubleQuotedStringKeyword:[[/":/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringKeyword:[[/':/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],numbers:[[/0b@binary/,"number.binary"],[/0o@octal/,"number.octal"],[/0x@hex/,"number.hex"],[/@decimal\.@decimal([eE]-?@decimal)?/,"number.float"],[/@decimal/,"number"]],identifiers:[[/\b(defp?|defnp?|defmacrop?|defguardp?|defdelegate)(\s+)(@variableName)(?!\s+@operator)/,["keyword.declaration","white",{cases:{unquote:"keyword","@default":"function"}}]],[/(@variableName)(?=\s*\.?\s*\()/,{cases:{"@declarationKeywords":"keyword.declaration","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@default":"function.call"}}],[/(@moduleName)(\s*)(\.)(\s*)(@variableName)/,["type.identifier","white","operator","white","function.call"]],[/(:)(@atomName)(\s*)(\.)(\s*)(@variableName)/,["constant.punctuation","constant","white","operator","white","function.call"]],[/(\|>)(\s*)(@variableName)/,["operator","white",{cases:{"@otherKeywords":"keyword","@default":"function.call"}}]],[/(&)(\s*)(@variableName)/,["operator","white","function.call"]],[/@variableName/,{cases:{"@declarationKeywords":"keyword.declaration","@operatorKeywords":"keyword.operator","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@constants":"constant.language","@nameBuiltin":"variable.language","_.*":"comment.unused","@default":"identifier"}}],[/@moduleName/,"type.identifier"]],strings:[[/"""/,{token:"string.delimiter",next:"@doubleQuotedHeredoc"}],[/'''/,{token:"string.delimiter",next:"@singleQuotedHeredoc"}],[/"/,{token:"string.delimiter",next:"@doubleQuotedString"}],[/'/,{token:"string.delimiter",next:"@singleQuotedString"}]],doubleQuotedHeredoc:[[/"""/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedHeredoc:[[/'''/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],doubleQuotedString:[[/"/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedString:[[/'/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],atoms:[[/(:)(@atomName)/,["constant.punctuation","constant"]],[/:"/,{token:"constant.delimiter",next:"@doubleQuotedStringAtom"}],[/:'/,{token:"constant.delimiter",next:"@singleQuotedStringAtom"}]],doubleQuotedStringAtom:[[/"/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringAtom:[[/'/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],sigils:[[/~[a-z]@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.interpol"}],[/~[A-Z]@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.noInterpol"}]],sigil:[[/~([a-zA-Z])\{/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.{.}"}],[/~([a-zA-Z])\[/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.[.]"}],[/~([a-zA-Z])\(/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.(.)"}],[/~([a-zA-Z])\</,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.<.>"}],[/~([a-zA-Z])(@sigilSymmetricDelimiter)/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.$2.$2"}]],"sigilStart.interpol.s":[[/~s@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.s":[[/(@sigilEndDelimiter)[a-zA-Z]*/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContentInterpol"}],"sigilStart.noInterpol.S":[[/~S@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.S":[[/(^|[^\\])\\@sigilEndDelimiter/,"string"],[/(@sigilEndDelimiter)[a-zA-Z]*/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContent"}],"sigilStart.interpol.r":[[/~r@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.r":[[/(@sigilEndDelimiter)[a-zA-Z]*/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContentInterpol"}],"sigilStart.noInterpol.R":[[/~R@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.R":[[/(^|[^\\])\\@sigilEndDelimiter/,"regexp"],[/(@sigilEndDelimiter)[a-zA-Z]*/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContent"}],"sigilStart.interpol":[[/~([a-zA-Z])@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol":[[/(@sigilEndDelimiter)[a-zA-Z]*/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContentInterpol"}],"sigilStart.noInterpol":[[/~([a-zA-Z])@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol":[[/(^|[^\\])\\@sigilEndDelimiter/,"sigil"],[/(@sigilEndDelimiter)[a-zA-Z]*/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContent"}],attributes:[[/\@(module|type)?doc (~[sS])?"""/,{token:"comment.block.documentation",next:"@doubleQuotedHeredocDocstring"}],[/\@(module|type)?doc (~[sS])?"/,{token:"comment.block.documentation",next:"@doubleQuotedStringDocstring"}],[/\@(module|type)?doc false/,"comment.block.documentation"],[/\@(@variableName)/,"variable"]],doubleQuotedHeredocDocstring:[[/"""/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],doubleQuotedStringDocstring:[[/"/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],symbols:[[/\?(\\.|[^\\\s])/,"number.constant"],[/&\d+/,"operator"],[/<<<|>>>/,"operator"],[/[()\[\]\{\}]|<<|>>/,"@brackets"],[/\.\.\./,"identifier"],[/=>/,"punctuation"],[/@operator/,"operator"],[/[:;,.%]/,"punctuation"]],stringContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringContent"}],stringContent:[[/./,"string"]],stringConstantContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringConstantContent"}],stringConstantContent:[[/./,"constant"]],regexpContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@regexpContent"}],regexpContent:[[/(\s)(#)(\s.*)$/,["white","comment.punctuation","comment"]],[/./,"regexp"]],sigilContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@sigilContent"}],sigilContent:[[/./,"sigil"]],docstringContent:[[/./,"comment.block.documentation"]],escapeChar:[[/@escape/,"constant.character.escape"]],interpolation:[[/#{/,{token:"delimiter.bracket.embed",next:"@interpolationContinue"}]],interpolationContinue:[[/}/,{token:"delimiter.bracket.embed",next:"@pop"}],{include:"@root"}]}}}}]); -//# sourceMappingURL=7168.ed7798a9.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7202.fefd43ee.chunk.js b/ydb/core/viewer/monitoring/static/js/7202.fefd43ee.chunk.js new file mode 100644 index 000000000000..d90a6a274b47 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7202.fefd43ee.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7202],{47202:function(e,_,s){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=_(e),t={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 s.default.locale(t,null,!0),t}(s(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7257.8ce0d045.chunk.js b/ydb/core/viewer/monitoring/static/js/7257.8ce0d045.chunk.js new file mode 100644 index 000000000000..8ff2117ab9f8 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7257.8ce0d045.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7257],{7257:function(e,_,a){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=_(e),u={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 a.default.locale(u,null,!0),u}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7276.47f377a4.chunk.js b/ydb/core/viewer/monitoring/static/js/7276.47f377a4.chunk.js new file mode 100644 index 000000000000..ca3ce6bd46a8 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7276.47f377a4.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7276],{97276:function(e,_,n){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=_(e),r={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(r,null,!0),r}(n(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7388.9f447514.chunk.js b/ydb/core/viewer/monitoring/static/js/7388.9f447514.chunk.js new file mode 100644 index 000000000000..1e280897e5c6 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7388.9f447514.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7388],{27388:function(e,a,t){e.exports=function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=a(e);function u(e,a,t,u){var s={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 a?(s[t][2]?s[t][2]:s[t][1]).replace("%d",e):(u?s[t][0]:s[t][1]).replace("%d",e)}var s={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:u,m:u,mm:u,h:u,hh:u,d:u,dd:"%d p\xe4eva",M:u,MM:u,y:u,yy:u},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 t.default.locale(s,null,!0),s}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7409.4408962b.chunk.js b/ydb/core/viewer/monitoring/static/js/7409.4408962b.chunk.js new file mode 100644 index 000000000000..ff0da87a5fa8 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7409.4408962b.chunk.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7409],{77409:(e,l,t)=>{t.r(l),t.d(l,{ReactComponent:()=>m,default:()=>n});var c,a=t(68963);function h(){return h=Object.assign?Object.assign.bind():function(e){for(var l=1;l<arguments.length;l++){var t=arguments[l];for(var c in t)Object.prototype.hasOwnProperty.call(t,c)&&(e[c]=t[c])}return e},h.apply(this,arguments)}function v(e,l){let{title:t,titleId:v,...m}=e;return a.createElement("svg",h({width:349,height:356,fill:"none",xmlns:"http://www.w3.org/2000/svg",ref:l,"aria-labelledby":v},m),t?a.createElement("title",{id:v},t):null,c||(c=a.createElement("g",{opacity:.8},a.createElement("path",{d:"M275.008 84.928c0 24.7-9.9 83.9-9.9 117.1 0 33.2 0 106.3-27.8 134.1-27.8 27.8-61.9 16.1-61.9 16.1s-46.7 13-76.3-14.8c-29.6-27.8-60.1-83.5-69.1-115.3-9.9-35-26.5-49.3-27.8-56.5-1.3-7.2 3.6-12.1 12.1-12.6 8.5-.4 22.9 4 34.5 22 11.6 18 17.5 26 23.8 35.9 6.3 9.9 20.6 23.3 20.6 23.3s.4-44.9 1.3-64.1c.9-19.3-1.8-111.7 1.8-132.3 3.6-20.6 26.5-20.2 28.7-4 2.2 16.1 8.8 66.8 9.8 79.8s3.7 44.4 3.7 44.4l7.6-2.7s-.9-105.8-.9-132.9c0-29.2 28.7-29.2 32.3-4 3.6 25.2 6.7 142.8 6.7 142.8l6.7 2.7s2.2-111.7 5.8-129.6c3.6-17.9 26.5-17.5 30.1 4.9 3.6 22.4 1.3 72.2.9 94.2s-.9 43.5-.9 43.5l5.4 4s11-73.3 14.4-99.1c3.7-27.8 28.4-21.5 28.4 3.1z",fill:"#fff",fillOpacity:.07}),a.createElement("path",{d:"M279.207 266.428l-216.9 12c-7.3.4-13.3-5.2-13.3-12.5v-167.4c0-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:"#FF4645"}),a.createElement("path",{d:"M191.308 139.226l-32.3-1.4c-1.9-.1-3.8.6-5.2 1.9l-24.3 22.8c-1.4 1.3-2.2 3.2-2.2 5.2v33.7c0 2 .8 3.8 2.2 5.2l24.3 22.8c1.4 1.3 3.3 2 5.2 1.9l32.3-1.4c1.8-.1 3.6-.9 4.9-2.2l21.5-22.8c1.2-1.3 1.9-3.1 1.9-4.9v-31c0-1.8-.7-3.6-1.9-4.9l-21.5-22.8c-1.3-1.3-3.1-2.1-4.9-2.1z",fill:"#fff"}),a.createElement("path",{d:"M203.408 195.526l-58.1.6c-1.6 0-3-1.3-3-3v-17.2c0-1.6 1.3-3 3-3l58.1.6c1.6 0 2.9 1.3 2.9 3v16c0 1.7-1.3 3-2.9 3z",fill:"#FF4645"}),a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M74.707 103.727c0 3.4-2.7 6-6.1 5.8-3.4-.1-6.1-3-6.1-6.4 0-3.4 2.8-6 6.1-5.8 3.4.2 6.1 3 6.1 6.4zm19.7.9c0 3.3-2.7 5.9-6 5.8-3.3-.1-6-3-6-6.3s2.7-5.9 6-5.8c3.3.1 6 2.9 6 6.3zm13.4 6.499c3.2.2 5.8-2.4 5.8-5.7 0-3.3-2.6-6.1-5.8-6.2-3.3-.2-5.9 2.4-5.9 5.7 0 3.3 2.7 6.1 5.9 6.2z",fill:"#fff"}),a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M248.707 247.329h84.6v-62c0-22.5-18.3-40.7-40.7-40.7h-3.2c-22.5 0-40.7 18.3-40.7 40.7v62zm70.2-14.3h-56v-47.7c0-14.6 11.9-26.4 26.4-26.4h3.2c14.6 0 26.4 11.9 26.4 26.4v47.7z",fill:"#DEB700"}),a.createElement("path",{d:"M340.507 205.528s-16.3-2.7-17.3-2.7l-78.6 1.1c-7 .1-13.7 6.5-13.7 13.1v58.6c0 4.7 2.9 8.5 7 10.1 1.5.6 3.1.9 4.8.9l12.5 2.3 7.6-3.7 60.4-4.3c6.2-.4 11.2-5.8 11.2-11.9v-43.3l6.1-20.2z",fill:"#DEB700"}),a.createElement("path",{d:"M337.607 283.43l-79.6 5.7c-7 .5-12.7-4.4-12.7-11v-59.6c0-6.6 5.7-12 12.7-12.1l79.6-1.1c6.2-.1 11.2 4.8 11.2 10.9v55.4c-.1 6-5 11.3-11.2 11.8z",fill:"#FBC900"}),a.createElement("path",{d:"M313.007 236.029c0-6.3-5.2-11.4-11.7-11.4-6.7 0-12.3 5.4-12.3 12 0 5 3.2 9.1 7.6 10.7v15.5c0 2.5 2.1 4.4 4.7 4.2 2.6-.2 4.6-2.5 4.6-4.9v-15.1c4.3-2.1 7.1-6.3 7.1-11z",fill:"#00236B"}),a.createElement("path",{d:"M308.307 236.028c0-5.5-4-10.1-9.3-11.2-5.6 1.1-10 6-10 11.8 0 5 3.2 9.1 7.6 10.7v15.5c0 1.5.8 2.8 2 3.5 1.6-.9 2.6-2.5 2.6-4.3v-15.1c4.2-2 7.1-6.2 7.1-10.9z",fill:"#18123D"}),a.createElement("path",{d:"M21.708 40.727a2 2 0 1 0-4 0h4zm-4 8.2a2 2 0 0 0 4 0h-4zm4 17.198a2 2 0 0 0-4 0h4zm-4 8.9a2 2 0 1 0 4 0h-4zm19.2-15.197a2 2 0 1 0 0-4v4zm-8.3-4a2 2 0 0 0 0 4v-4zm-17.8 4a2 2 0 1 0 0-4v4zm-8.3-4a2 2 0 0 0 0 4v-4zm15.2-15.101v8.2h4v-8.2h-4zm0 25.398v8.9h4v-8.9h-4zm19.2-10.297h-8.3v4h8.3v-4zm-26.1 0h-8.3v4h8.3v-4zm284.199 259.098a2 2 0 1 0-4 0h4zm-4 6.2a2 2 0 0 0 4 0h-4zm4 13.1a2 2 0 1 0-4 0h4zm-4 6.8a2 2 0 0 0 4 0h-4zm15-11.1a2 2 0 0 0 0-4v4zm-6.2-4a2 2 0 0 0 0 4v-4zm-13.6 4a2 2 0 0 0 0-4v4zm-6.3-4a2 2 0 0 0 0 4v-4zm11.1-11v6.2h4v-6.2h-4zm0 19.3v6.8h4v-6.8h-4zm15-8.3h-6.2v4h6.2v-4zm-19.8 0h-6.3v4h6.3v-4z",fill:"#2EE5C0"}),a.createElement("path",{clipRule:"evenodd",d:"M15.207 325.426c7.18 0 13-5.821 13-13 0-7.18-5.82-13-13-13s-13 5.82-13 13c0 7.179 5.82 13 13 13z",stroke:"#2EE5C0",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round"}),a.createElement("path",{d:"M28.207 310.426a2 2 0 1 0 0 4v-4zm35.2 2h2a2 2 0 0 0-2-2v2zm-2 12.2a2 2 0 0 0 4 0h-4zm-17.1 0a2 2 0 0 0 4 0h-4zm4-12.2a2 2 0 1 0-4 0h4zm-20.1 2h35.2v-4h-35.2v4zm33.2-2v12.2h4v-12.2h-4zm-13.1 12.2v-12.2h-4v12.2h4z",fill:"#2EE5C0"}))))}const m=a.forwardRef(v),n=t.p+"static/media/403.271ae19f0d1101a2c67a904146bbd4d3.svg"}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7478.0bf003df.chunk.js b/ydb/core/viewer/monitoring/static/js/7478.0bf003df.chunk.js deleted file mode 100644 index e976b1657f4a..000000000000 --- a/ydb/core/viewer/monitoring/static/js/7478.0bf003df.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7478],{37478:function(e,t,i){i.r(t),i.d(t,{conf:function(){return n},language:function(){return o}});var n={comments:{lineComment:"COMMENT"},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:"'"},{open:":",close:"."}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|COMMENT\\s+)#region"),end:new RegExp("^\\s*(::\\s*|COMMENT\\s+)#endregion")}}},o={tokenPostfix:".lexon",ignoreCase:!0,keywords:["lexon","lex","clause","terms","contracts","may","pay","pays","appoints","into","to"],typeKeywords:["amount","person","key","time","date","asset","text"],operators:["less","greater","equal","le","gt","or","and","add","added","subtract","subtracted","multiply","multiplied","times","divide","divided","is","be","certified"],symbols:/[=><!~?:&|+\-*\/\^%]+/,tokenizer:{root:[[/^(\s*)(comment:?(?:\s.*|))$/,["","comment"]],[/"/,{token:"identifier.quote",bracket:"@open",next:"@quoted_identifier"}],["LEX$",{token:"keyword",bracket:"@open",next:"@identifier_until_period"}],["LEXON",{token:"keyword",bracket:"@open",next:"@semver"}],[":",{token:"delimiter",bracket:"@open",next:"@identifier_until_period"}],[/[a-z_$][\w$]*/,{cases:{"@operators":"operator","@typeKeywords":"keyword.type","@keywords":"keyword","@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d*\.\d*/,"number.semver"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"]],quoted_identifier:[[/[^\\"]+/,"identifier"],[/"/,{token:"identifier.quote",bracket:"@close",next:"@pop"}]],space_identifier_until_period:[[":","delimiter"],[" ",{token:"white",next:"@identifier_rest"}]],identifier_until_period:[{include:"@whitespace"},[":",{token:"delimiter",next:"@identifier_rest"}],[/[^\\.]+/,"identifier"],[/\./,{token:"delimiter",bracket:"@close",next:"@pop"}]],identifier_rest:[[/[^\\.]+/,"identifier"],[/\./,{token:"delimiter",bracket:"@close",next:"@pop"}]],semver:[{include:"@whitespace"},[":","delimiter"],[/\d*\.\d*\.\d*/,{token:"number.semver",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"]]}}}}]); -//# sourceMappingURL=7478.0bf003df.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7520.d245d6ac.chunk.js b/ydb/core/viewer/monitoring/static/js/7520.d245d6ac.chunk.js new file mode 100644 index 000000000000..f185528435b1 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7520.d245d6ac.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 7520.d245d6ac.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7520],{67520:(e,t,n)=>{n.r(t),n.d(t,{CompletionAdapter:()=>gt,DefinitionAdapter:()=>Ct,DiagnosticsAdapter:()=>ut,DocumentColorAdapter:()=>Mt,DocumentFormattingEditProvider:()=>Rt,DocumentHighlightAdapter:()=>_t,DocumentLinkAdapter:()=>Tt,DocumentRangeFormattingEditProvider:()=>Dt,DocumentSymbolAdapter:()=>xt,FoldingRangeAdapter:()=>jt,HoverAdapter:()=>vt,ReferenceAdapter:()=>Et,RenameAdapter:()=>At,SelectionRangeAdapter:()=>Ft,WorkerManager:()=>se,fromPosition:()=>lt,fromRange:()=>ht,getWorker:()=>nn,setupMode:()=>on,toRange:()=>ft,toTextEdit:()=>mt});var r,i,o=n(41551),a=Object.defineProperty,s=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,u=Object.prototype.hasOwnProperty,d=(e,t,n,r)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let i of c(t))u.call(e,i)||i===n||a(e,i,{get:()=>t[i],enumerable:!(r=s(t,i))||r.enumerable});return e},g={};d(g,r=o,"default"),i&&d(i,r,"default");var l,h,f,p,m,v,b,k,_,w,C,y,E,A,x,I,S,T,R,D,P,M,j,L,F,O,N,W,U,V,H,K,z,q,X,B,$,J,Q,G,Y,Z,ee,te,ne,re,ie,oe,ae,se=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval((()=>this._checkIfIdle()),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange((()=>this._stopWorker()))}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>12e4&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=g.editor.createWebWorker({moduleId:"vs/language/json/jsonWorker",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];let r;return this._getClient().then((e=>{r=e})).then((e=>{if(this._worker)return this._worker.withSyncedResources(t)})).then((e=>r))}};(h=l||(l={})).MIN_VALUE=-2147483648,h.MAX_VALUE=2147483647,(p=f||(f={})).MIN_VALUE=0,p.MAX_VALUE=2147483647,(v=m||(m={})).create=function(e,t){return e===Number.MAX_VALUE&&(e=f.MAX_VALUE),t===Number.MAX_VALUE&&(t=f.MAX_VALUE),{line:e,character:t}},v.is=function(e){var t=e;return st.objectLiteral(t)&&st.uinteger(t.line)&&st.uinteger(t.character)},(k=b||(b={})).create=function(e,t,n,r){if(st.uinteger(e)&&st.uinteger(t)&&st.uinteger(n)&&st.uinteger(r))return{start:m.create(e,t),end:m.create(n,r)};if(m.is(e)&&m.is(t))return{start:e,end:t};throw new Error("Range#create called with invalid arguments["+e+", "+t+", "+n+", "+r+"]")},k.is=function(e){var t=e;return st.objectLiteral(t)&&m.is(t.start)&&m.is(t.end)},(w=_||(_={})).create=function(e,t){return{uri:e,range:t}},w.is=function(e){var t=e;return st.defined(t)&&b.is(t.range)&&(st.string(t.uri)||st.undefined(t.uri))},(y=C||(C={})).create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},y.is=function(e){var t=e;return st.defined(t)&&b.is(t.targetRange)&&st.string(t.targetUri)&&(b.is(t.targetSelectionRange)||st.undefined(t.targetSelectionRange))&&(b.is(t.originSelectionRange)||st.undefined(t.originSelectionRange))},(A=E||(E={})).create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},A.is=function(e){var t=e;return st.numberRange(t.red,0,1)&&st.numberRange(t.green,0,1)&&st.numberRange(t.blue,0,1)&&st.numberRange(t.alpha,0,1)},(I=x||(x={})).create=function(e,t){return{range:e,color:t}},I.is=function(e){var t=e;return b.is(t.range)&&E.is(t.color)},(T=S||(S={})).create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},T.is=function(e){var t=e;return st.string(t.label)&&(st.undefined(t.textEdit)||q.is(t))&&(st.undefined(t.additionalTextEdits)||st.typedArray(t.additionalTextEdits,q.is))},(D=R||(R={})).Comment="comment",D.Imports="imports",D.Region="region",(M=P||(P={})).create=function(e,t,n,r,i){var o={startLine:e,endLine:t};return st.defined(n)&&(o.startCharacter=n),st.defined(r)&&(o.endCharacter=r),st.defined(i)&&(o.kind=i),o},M.is=function(e){var t=e;return st.uinteger(t.startLine)&&st.uinteger(t.startLine)&&(st.undefined(t.startCharacter)||st.uinteger(t.startCharacter))&&(st.undefined(t.endCharacter)||st.uinteger(t.endCharacter))&&(st.undefined(t.kind)||st.string(t.kind))},(L=j||(j={})).create=function(e,t){return{location:e,message:t}},L.is=function(e){var t=e;return st.defined(t)&&_.is(t.location)&&st.string(t.message)},(O=F||(F={})).Error=1,O.Warning=2,O.Information=3,O.Hint=4,(W=N||(N={})).Unnecessary=1,W.Deprecated=2,(U||(U={})).is=function(e){var t=e;return void 0!==t&&null!==t&&st.string(t.href)},(H=V||(V={})).create=function(e,t,n,r,i,o){var a={range:e,message:t};return st.defined(n)&&(a.severity=n),st.defined(r)&&(a.code=r),st.defined(i)&&(a.source=i),st.defined(o)&&(a.relatedInformation=o),a},H.is=function(e){var t,n=e;return st.defined(n)&&b.is(n.range)&&st.string(n.message)&&(st.number(n.severity)||st.undefined(n.severity))&&(st.integer(n.code)||st.string(n.code)||st.undefined(n.code))&&(st.undefined(n.codeDescription)||st.string(null===(t=n.codeDescription)||void 0===t?void 0:t.href))&&(st.string(n.source)||st.undefined(n.source))&&(st.undefined(n.relatedInformation)||st.typedArray(n.relatedInformation,j.is))},(z=K||(K={})).create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={title:e,command:t};return st.defined(n)&&n.length>0&&(i.arguments=n),i},z.is=function(e){var t=e;return st.defined(t)&&st.string(t.title)&&st.string(t.command)},(X=q||(q={})).replace=function(e,t){return{range:e,newText:t}},X.insert=function(e,t){return{range:{start:e,end:e},newText:t}},X.del=function(e){return{range:e,newText:""}},X.is=function(e){var t=e;return st.objectLiteral(t)&&st.string(t.newText)&&b.is(t.range)},($=B||(B={})).create=function(e,t,n){var r={label:e};return void 0!==t&&(r.needsConfirmation=t),void 0!==n&&(r.description=n),r},$.is=function(e){var t=e;return void 0!==t&&st.objectLiteral(t)&&st.string(t.label)&&(st.boolean(t.needsConfirmation)||void 0===t.needsConfirmation)&&(st.string(t.description)||void 0===t.description)},(J||(J={})).is=function(e){return"string"===typeof e},(G=Q||(Q={})).replace=function(e,t,n){return{range:e,newText:t,annotationId:n}},G.insert=function(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}},G.del=function(e,t){return{range:e,newText:"",annotationId:t}},G.is=function(e){var t=e;return q.is(t)&&(B.is(t.annotationId)||J.is(t.annotationId))},(Z=Y||(Y={})).create=function(e,t){return{textDocument:e,edits:t}},Z.is=function(e){var t=e;return st.defined(t)&&le.is(t.textDocument)&&Array.isArray(t.edits)},(te=ee||(ee={})).create=function(e,t,n){var r={kind:"create",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(r.options=t),void 0!==n&&(r.annotationId=n),r},te.is=function(e){var t=e;return t&&"create"===t.kind&&st.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||st.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||st.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||J.is(t.annotationId))},(re=ne||(ne={})).create=function(e,t,n,r){var i={kind:"rename",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(i.options=n),void 0!==r&&(i.annotationId=r),i},re.is=function(e){var t=e;return t&&"rename"===t.kind&&st.string(t.oldUri)&&st.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||st.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||st.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||J.is(t.annotationId))},(oe=ie||(ie={})).create=function(e,t,n){var r={kind:"delete",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(r.options=t),void 0!==n&&(r.annotationId=n),r},oe.is=function(e){var t=e;return t&&"delete"===t.kind&&st.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||st.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||st.boolean(t.options.ignoreIfNotExists)))&&(void 0===t.annotationId||J.is(t.annotationId))},(ae||(ae={})).is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return st.string(e.kind)?ee.is(e)||ne.is(e)||ie.is(e):Y.is(e)})))};var ce,ue,de,ge,le,he,fe,pe,me,ve,be,ke,_e,we,Ce,ye,Ee,Ae,xe,Ie,Se,Te,Re,De,Pe,Me,je,Le,Fe,Oe,Ne,We,Ue,Ve,He,Ke,ze,qe,Xe,Be,$e,Je,Qe,Ge,Ye,Ze,et,tt,nt,rt,it,ot=function(){function e(e,t){this.edits=e,this.changeAnnotations=t}return e.prototype.insert=function(e,t,n){var r,i;if(void 0===n?r=q.insert(e,t):J.is(n)?(i=n,r=Q.insert(e,t,n)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(n),r=Q.insert(e,t,i)),this.edits.push(r),void 0!==i)return i},e.prototype.replace=function(e,t,n){var r,i;if(void 0===n?r=q.replace(e,t):J.is(n)?(i=n,r=Q.replace(e,t,n)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(n),r=Q.replace(e,t,i)),this.edits.push(r),void 0!==i)return i},e.prototype.delete=function(e,t){var n,r;if(void 0===t?n=q.del(e):J.is(t)?(r=t,n=Q.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),r=this.changeAnnotations.manage(t),n=Q.del(e,r)),this.edits.push(n),void 0!==r)return r},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e.prototype.assertChangeAnnotations=function(e){if(void 0===e)throw new Error("Text edit change is not configured to manage change annotations.")},e}(),at=function(){function e(e){this._annotations=void 0===e?Object.create(null):e,this._counter=0,this._size=0}return e.prototype.all=function(){return this._annotations},Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),e.prototype.manage=function(e,t){var n;if(J.is(e)?n=e:(n=this.nextId(),t=e),void 0!==this._annotations[n])throw new Error("Id "+n+" is already in use.");if(void 0===t)throw new Error("No annotation provided for id "+n);return this._annotations[n]=t,this._size++,n},e.prototype.nextId=function(){return this._counter++,this._counter.toString()},e}();!function(){function e(e){var t=this;this._textEditChanges=Object.create(null),void 0!==e?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new at(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach((function(e){if(Y.is(e)){var n=new ot(e.edits,t._changeAnnotations);t._textEditChanges[e.textDocument.uri]=n}}))):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new ot(e.changes[n]);t._textEditChanges[n]=r}))):this._workspaceEdit={}}Object.defineProperty(e.prototype,"edit",{get:function(){return this.initDocumentChanges(),void 0!==this._changeAnnotations&&(0===this._changeAnnotations.size?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),e.prototype.getTextEditChange=function(e){if(le.is(e)){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var t={uri:e.uri,version:e.version};if(!(r=this._textEditChanges[t.uri])){var n={textDocument:t,edits:i=[]};this._workspaceEdit.documentChanges.push(n),r=new ot(i,this._changeAnnotations),this._textEditChanges[t.uri]=r}return r}if(this.initChanges(),void 0===this._workspaceEdit.changes)throw new Error("Workspace edit is not configured for normal text edit changes.");var r;if(!(r=this._textEditChanges[e])){var i=[];this._workspaceEdit.changes[e]=i,r=new ot(i),this._textEditChanges[e]=r}return r},e.prototype.initDocumentChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._changeAnnotations=new at,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},e.prototype.initChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._workspaceEdit.changes=Object.create(null))},e.prototype.createFile=function(e,t,n){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if(B.is(t)||J.is(t)?r=t:n=t,void 0===r?i=ee.create(e,n):(o=J.is(r)?r:this._changeAnnotations.manage(r),i=ee.create(e,n,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o},e.prototype.renameFile=function(e,t,n,r){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var i,o,a;if(B.is(n)||J.is(n)?i=n:r=n,void 0===i?o=ne.create(e,t,r):(a=J.is(i)?i:this._changeAnnotations.manage(i),o=ne.create(e,t,r,a)),this._workspaceEdit.documentChanges.push(o),void 0!==a)return a},e.prototype.deleteFile=function(e,t,n){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if(B.is(t)||J.is(t)?r=t:n=t,void 0===r?i=ie.create(e,n):(o=J.is(r)?r:this._changeAnnotations.manage(r),i=ie.create(e,n,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o}}();(ue=ce||(ce={})).create=function(e){return{uri:e}},ue.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)},(ge=de||(de={})).create=function(e,t){return{uri:e,version:t}},ge.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)&&st.integer(t.version)},(he=le||(le={})).create=function(e,t){return{uri:e,version:t}},he.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)&&(null===t.version||st.integer(t.version))},(pe=fe||(fe={})).create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},pe.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)&&st.string(t.languageId)&&st.integer(t.version)&&st.string(t.text)},(ve=me||(me={})).PlainText="plaintext",ve.Markdown="markdown",function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(me||(me={})),(be||(be={})).is=function(e){var t=e;return st.objectLiteral(e)&&me.is(t.kind)&&st.string(t.value)},(_e=ke||(ke={})).Text=1,_e.Method=2,_e.Function=3,_e.Constructor=4,_e.Field=5,_e.Variable=6,_e.Class=7,_e.Interface=8,_e.Module=9,_e.Property=10,_e.Unit=11,_e.Value=12,_e.Enum=13,_e.Keyword=14,_e.Snippet=15,_e.Color=16,_e.File=17,_e.Reference=18,_e.Folder=19,_e.EnumMember=20,_e.Constant=21,_e.Struct=22,_e.Event=23,_e.Operator=24,_e.TypeParameter=25,(Ce=we||(we={})).PlainText=1,Ce.Snippet=2,(ye||(ye={})).Deprecated=1,(Ae=Ee||(Ee={})).create=function(e,t,n){return{newText:e,insert:t,replace:n}},Ae.is=function(e){var t=e;return t&&st.string(t.newText)&&b.is(t.insert)&&b.is(t.replace)},(Ie=xe||(xe={})).asIs=1,Ie.adjustIndentation=2,(Se||(Se={})).create=function(e){return{label:e}},(Te||(Te={})).create=function(e,t){return{items:e||[],isIncomplete:!!t}},(De=Re||(Re={})).fromPlainText=function(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},De.is=function(e){var t=e;return st.string(t)||st.objectLiteral(t)&&st.string(t.language)&&st.string(t.value)},(Pe||(Pe={})).is=function(e){var t=e;return!!t&&st.objectLiteral(t)&&(be.is(t.contents)||Re.is(t.contents)||st.typedArray(t.contents,Re.is))&&(void 0===e.range||b.is(e.range))},(Me||(Me={})).create=function(e,t){return t?{label:e,documentation:t}:{label:e}},(je||(je={})).create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={label:e};return st.defined(t)&&(i.documentation=t),st.defined(n)?i.parameters=n:i.parameters=[],i},(Fe=Le||(Le={})).Text=1,Fe.Read=2,Fe.Write=3,(Oe||(Oe={})).create=function(e,t){var n={range:e};return st.number(t)&&(n.kind=t),n},(We=Ne||(Ne={})).File=1,We.Module=2,We.Namespace=3,We.Package=4,We.Class=5,We.Method=6,We.Property=7,We.Field=8,We.Constructor=9,We.Enum=10,We.Interface=11,We.Function=12,We.Variable=13,We.Constant=14,We.String=15,We.Number=16,We.Boolean=17,We.Array=18,We.Object=19,We.Key=20,We.Null=21,We.EnumMember=22,We.Struct=23,We.Event=24,We.Operator=25,We.TypeParameter=26,(Ue||(Ue={})).Deprecated=1,(Ve||(Ve={})).create=function(e,t,n,r,i){var o={name:e,kind:t,location:{uri:r,range:n}};return i&&(o.containerName=i),o},(Ke=He||(He={})).create=function(e,t,n,r,i,o){var a={name:e,detail:t,kind:n,range:r,selectionRange:i};return void 0!==o&&(a.children=o),a},Ke.is=function(e){var t=e;return t&&st.string(t.name)&&st.number(t.kind)&&b.is(t.range)&&b.is(t.selectionRange)&&(void 0===t.detail||st.string(t.detail))&&(void 0===t.deprecated||st.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))&&(void 0===t.tags||Array.isArray(t.tags))},(qe=ze||(ze={})).Empty="",qe.QuickFix="quickfix",qe.Refactor="refactor",qe.RefactorExtract="refactor.extract",qe.RefactorInline="refactor.inline",qe.RefactorRewrite="refactor.rewrite",qe.Source="source",qe.SourceOrganizeImports="source.organizeImports",qe.SourceFixAll="source.fixAll",(Be=Xe||(Xe={})).create=function(e,t){var n={diagnostics:e};return void 0!==t&&null!==t&&(n.only=t),n},Be.is=function(e){var t=e;return st.defined(t)&&st.typedArray(t.diagnostics,V.is)&&(void 0===t.only||st.typedArray(t.only,st.string))},(Je=$e||($e={})).create=function(e,t,n){var r={title:e},i=!0;return"string"===typeof t?(i=!1,r.kind=t):K.is(t)?r.command=t:r.edit=t,i&&void 0!==n&&(r.kind=n),r},Je.is=function(e){var t=e;return t&&st.string(t.title)&&(void 0===t.diagnostics||st.typedArray(t.diagnostics,V.is))&&(void 0===t.kind||st.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||K.is(t.command))&&(void 0===t.isPreferred||st.boolean(t.isPreferred))&&(void 0===t.edit||ae.is(t.edit))},(Ge=Qe||(Qe={})).create=function(e,t){var n={range:e};return st.defined(t)&&(n.data=t),n},Ge.is=function(e){var t=e;return st.defined(t)&&b.is(t.range)&&(st.undefined(t.command)||K.is(t.command))},(Ze=Ye||(Ye={})).create=function(e,t){return{tabSize:e,insertSpaces:t}},Ze.is=function(e){var t=e;return st.defined(t)&&st.uinteger(t.tabSize)&&st.boolean(t.insertSpaces)},(tt=et||(et={})).create=function(e,t,n){return{range:e,target:t,data:n}},tt.is=function(e){var t=e;return st.defined(t)&&b.is(t.range)&&(st.undefined(t.target)||st.string(t.target))},(rt=nt||(nt={})).create=function(e,t){return{range:e,parent:t}},rt.is=function(e){var t=e;return void 0!==t&&b.is(t.range)&&(void 0===t.parent||rt.is(t.parent))},function(e){function t(e,n){if(e.length<=1)return e;var r=e.length/2|0,i=e.slice(0,r),o=e.slice(r);t(i,n),t(o,n);for(var a=0,s=0,c=0;a<i.length&&s<o.length;){var u=n(i[a],o[s]);e[c++]=u<=0?i[a++]:o[s++]}for(;a<i.length;)e[c++]=i[a++];for(;s<o.length;)e[c++]=o[s++];return e}e.create=function(e,t,n,r){return new ct(e,t,n,r)},e.is=function(e){var t=e;return!!(st.defined(t)&&st.string(t.uri)&&(st.undefined(t.languageId)||st.string(t.languageId))&&st.uinteger(t.lineCount)&&st.func(t.getText)&&st.func(t.positionAt)&&st.func(t.offsetAt))},e.applyEdits=function(e,n){for(var r=e.getText(),i=t(n,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),o=r.length,a=i.length-1;a>=0;a--){var s=i[a],c=e.offsetAt(s.range.start),u=e.offsetAt(s.range.end);if(!(u<=o))throw new Error("Overlapping edit");r=r.substring(0,c)+s.newText+r.substring(u,r.length),o=c}return r}}(it||(it={}));var st,ct=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,"uri",{get:function(){return this._uri},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"version",{get:function(){return this._version},enumerable:!1,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,r=0;r<t.length;r++){n&&(e.push(r),n=!1);var i=t.charAt(r);n="\r"===i||"\n"===i,"\r"===i&&r+1<t.length&&"\n"===t.charAt(r+1)&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return m.create(0,e);for(;n<r;){var i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}var o=n-1;return m.create(o,e-t[o])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!1,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return"undefined"!==typeof e},e.undefined=function(e){return"undefined"===typeof e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return"[object String]"===t.call(e)},e.number=function(e){return"[object Number]"===t.call(e)},e.numberRange=function(e,n,r){return"[object Number]"===t.call(e)&&n<=e&&e<=r},e.integer=function(e){return"[object Number]"===t.call(e)&&-2147483648<=e&&e<=2147483647},e.uinteger=function(e){return"[object Number]"===t.call(e)&&0<=e&&e<=2147483647},e.func=function(e){return"[object Function]"===t.call(e)},e.objectLiteral=function(e){return null!==e&&"object"===typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(st||(st={}));var ut=class{constructor(e,t,n){this._languageId=e,this._worker=t,this._disposables=[],this._listener=Object.create(null);const r=e=>{let t,n=e.getLanguageId();n===this._languageId&&(this._listener[e.uri.toString()]=e.onDidChangeContent((()=>{window.clearTimeout(t),t=window.setTimeout((()=>this._doValidate(e.uri,n)),500)})),this._doValidate(e.uri,n))},i=e=>{g.editor.setModelMarkers(e,this._languageId,[]);let t=e.uri.toString(),n=this._listener[t];n&&(n.dispose(),delete this._listener[t])};this._disposables.push(g.editor.onDidCreateModel(r)),this._disposables.push(g.editor.onWillDisposeModel(i)),this._disposables.push(g.editor.onDidChangeModelLanguage((e=>{i(e.model),r(e.model)}))),this._disposables.push(n((e=>{g.editor.getModels().forEach((e=>{e.getLanguageId()===this._languageId&&(i(e),r(e))}))}))),this._disposables.push({dispose:()=>{g.editor.getModels().forEach(i);for(let e in this._listener)this._listener[e].dispose()}}),g.editor.getModels().forEach(r)}dispose(){this._disposables.forEach((e=>e&&e.dispose())),this._disposables.length=0}_doValidate(e,t){this._worker(e).then((t=>t.doValidation(e.toString()))).then((n=>{const r=n.map((e=>function(e,t){let n="number"===typeof t.code?String(t.code):t.code;return{severity:dt(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source}}(0,e)));let i=g.editor.getModel(e);i&&i.getLanguageId()===t&&g.editor.setModelMarkers(i,t,r)})).then(void 0,(e=>{console.error(e)}))}};function dt(e){switch(e){case F.Error:return g.MarkerSeverity.Error;case F.Warning:return g.MarkerSeverity.Warning;case F.Information:return g.MarkerSeverity.Info;case F.Hint:return g.MarkerSeverity.Hint;default:return g.MarkerSeverity.Info}}var gt=class{constructor(e,t){this._worker=e,this._triggerCharacters=t}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.doComplete(i.toString(),lt(t)))).then((n=>{if(!n)return;const r=e.getWordUntilPosition(t),i=new g.Range(t.lineNumber,r.startColumn,t.lineNumber,r.endColumn),o=n.items.map((e=>{const t={label:e.label,insertText:e.insertText||e.label,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,command:(n=e.command,n&&"editor.action.triggerSuggest"===n.command?{id:n.command,title:n.title,arguments:n.arguments}:void 0),range:i,kind:pt(e.kind)};var n,r;return e.textEdit&&("undefined"!==typeof(r=e.textEdit).insert&&"undefined"!==typeof r.replace?t.range={insert:ft(e.textEdit.insert),replace:ft(e.textEdit.replace)}:t.range=ft(e.textEdit.range),t.insertText=e.textEdit.newText),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(mt)),e.insertTextFormat===we.Snippet&&(t.insertTextRules=g.languages.CompletionItemInsertTextRule.InsertAsSnippet),t}));return{isIncomplete:n.isIncomplete,suggestions:o}}))}};function lt(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function ht(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function ft(e){if(e)return new g.Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function pt(e){const t=g.languages.CompletionItemKind;switch(e){case ke.Text:return t.Text;case ke.Method:return t.Method;case ke.Function:return t.Function;case ke.Constructor:return t.Constructor;case ke.Field:return t.Field;case ke.Variable:return t.Variable;case ke.Class:return t.Class;case ke.Interface:return t.Interface;case ke.Module:return t.Module;case ke.Property:return t.Property;case ke.Unit:return t.Unit;case ke.Value:return t.Value;case ke.Enum:return t.Enum;case ke.Keyword:return t.Keyword;case ke.Snippet:return t.Snippet;case ke.Color:return t.Color;case ke.File:return t.File;case ke.Reference:return t.Reference}return t.Property}function mt(e){if(e)return{range:ft(e.range),text:e.newText}}var vt=class{constructor(e){this._worker=e}provideHover(e,t,n){let r=e.uri;return this._worker(r).then((e=>e.doHover(r.toString(),lt(t)))).then((e=>{if(e)return{range:ft(e.range),contents:kt(e.contents)}}))}};function bt(e){return"string"===typeof e?{value:e}:(t=e)&&"object"===typeof t&&"string"===typeof t.kind?"plaintext"===e.kind?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:e.value}:{value:"```"+e.language+"\n"+e.value+"\n```\n"};var t}function kt(e){if(e)return Array.isArray(e)?e.map(bt):[bt(e)]}var _t=class{constructor(e){this._worker=e}provideDocumentHighlights(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.findDocumentHighlights(r.toString(),lt(t)))).then((e=>{if(e)return e.map((e=>({range:ft(e.range),kind:wt(e.kind)})))}))}};function wt(e){switch(e){case Le.Read:return g.languages.DocumentHighlightKind.Read;case Le.Write:return g.languages.DocumentHighlightKind.Write;case Le.Text:return g.languages.DocumentHighlightKind.Text}return g.languages.DocumentHighlightKind.Text}var Ct=class{constructor(e){this._worker=e}provideDefinition(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.findDefinition(r.toString(),lt(t)))).then((e=>{if(e)return[yt(e)]}))}};function yt(e){return{uri:g.Uri.parse(e.uri),range:ft(e.range)}}var Et=class{constructor(e){this._worker=e}provideReferences(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.findReferences(i.toString(),lt(t)))).then((e=>{if(e)return e.map(yt)}))}},At=class{constructor(e){this._worker=e}provideRenameEdits(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.doRename(i.toString(),lt(t),n))).then((e=>function(e){if(!e||!e.changes)return;let t=[];for(let n in e.changes){const r=g.Uri.parse(n);for(let i of e.changes[n])t.push({resource:r,versionId:void 0,textEdit:{range:ft(i.range),text:i.newText}})}return{edits:t}}(e)))}};var xt=class{constructor(e){this._worker=e}provideDocumentSymbols(e,t){const n=e.uri;return this._worker(n).then((e=>e.findDocumentSymbols(n.toString()))).then((e=>{if(e)return e.map((e=>"children"in e?It(e):{name:e.name,detail:"",containerName:e.containerName,kind:St(e.kind),range:ft(e.location.range),selectionRange:ft(e.location.range),tags:[]}))}))}};function It(e){var t,n,r;return{name:e.name,detail:null!==(t=e.detail)&&void 0!==t?t:"",kind:St(e.kind),range:ft(e.range),selectionRange:ft(e.selectionRange),tags:null!==(n=e.tags)&&void 0!==n?n:[],children:(null!==(r=e.children)&&void 0!==r?r:[]).map((e=>It(e)))}}function St(e){let t=g.languages.SymbolKind;switch(e){case Ne.File:return t.File;case Ne.Module:return t.Module;case Ne.Namespace:return t.Namespace;case Ne.Package:return t.Package;case Ne.Class:return t.Class;case Ne.Method:return t.Method;case Ne.Property:return t.Property;case Ne.Field:return t.Field;case Ne.Constructor:return t.Constructor;case Ne.Enum:return t.Enum;case Ne.Interface:return t.Interface;case Ne.Function:return t.Function;case Ne.Variable:return t.Variable;case Ne.Constant:return t.Constant;case Ne.String:return t.String;case Ne.Number:return t.Number;case Ne.Boolean:return t.Boolean;case Ne.Array:return t.Array}return t.Function}var Tt=class{constructor(e){this._worker=e}provideLinks(e,t){const n=e.uri;return this._worker(n).then((e=>e.findDocumentLinks(n.toString()))).then((e=>{if(e)return{links:e.map((e=>({range:ft(e.range),url:e.target})))}}))}},Rt=class{constructor(e){this._worker=e}provideDocumentFormattingEdits(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.format(r.toString(),null,Pt(t)).then((e=>{if(e&&0!==e.length)return e.map(mt)}))))}},Dt=class{constructor(e){this._worker=e,this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.format(i.toString(),ht(t),Pt(n)).then((e=>{if(e&&0!==e.length)return e.map(mt)}))))}};function Pt(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var Mt=class{constructor(e){this._worker=e}provideDocumentColors(e,t){const n=e.uri;return this._worker(n).then((e=>e.findDocumentColors(n.toString()))).then((e=>{if(e)return e.map((e=>({color:e.color,range:ft(e.range)})))}))}provideColorPresentations(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.getColorPresentations(r.toString(),t.color,ht(t.range)))).then((e=>{if(e)return e.map((e=>{let t={label:e.label};return e.textEdit&&(t.textEdit=mt(e.textEdit)),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(mt)),t}))}))}},jt=class{constructor(e){this._worker=e}provideFoldingRanges(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.getFoldingRanges(r.toString(),t))).then((e=>{if(e)return e.map((e=>{const t={start:e.startLine+1,end:e.endLine+1};return"undefined"!==typeof e.kind&&(t.kind=function(e){switch(e){case R.Comment:return g.languages.FoldingRangeKind.Comment;case R.Imports:return g.languages.FoldingRangeKind.Imports;case R.Region:return g.languages.FoldingRangeKind.Region}return}(e.kind)),t}))}))}};var Lt,Ft=class{constructor(e){this._worker=e}provideSelectionRanges(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.getSelectionRanges(r.toString(),t.map(lt)))).then((e=>{if(e)return e.map((e=>{const t=[];for(;e;)t.push({range:ft(e.range)}),e=e.parent;return t}))}))}};function Ot(e){return 32===e||9===e||11===e||12===e||160===e||5760===e||e>=8192&&e<=8203||8239===e||8287===e||12288===e||65279===e}function Nt(e){return 10===e||13===e||8232===e||8233===e}function Wt(e){return e>=48&&e<=57}(Lt||(Lt={})).DEFAULT={allowTrailingComma:!1};var Ut=function(e,t){void 0===t&&(t=!1);var n=e.length,r=0,i="",o=0,a=16,s=0,c=0,u=0,d=0,g=0;function l(t,n){for(var i=0,o=0;i<t||!n;){var a=e.charCodeAt(r);if(a>=48&&a<=57)o=16*o+a-48;else if(a>=65&&a<=70)o=16*o+a-65+10;else{if(!(a>=97&&a<=102))break;o=16*o+a-97+10}r++,i++}return i<t&&(o=-1),o}function h(){if(i="",g=0,o=r,c=s,d=u,r>=n)return o=n,a=17;var t=e.charCodeAt(r);if(Ot(t)){do{r++,i+=String.fromCharCode(t),t=e.charCodeAt(r)}while(Ot(t));return a=15}if(Nt(t))return r++,i+=String.fromCharCode(t),13===t&&10===e.charCodeAt(r)&&(r++,i+="\n"),s++,u=r,a=14;switch(t){case 123:return r++,a=1;case 125:return r++,a=2;case 91:return r++,a=3;case 93:return r++,a=4;case 58:return r++,a=6;case 44:return r++,a=5;case 34:return r++,i=function(){for(var t="",i=r;;){if(r>=n){t+=e.substring(i,r),g=2;break}var o=e.charCodeAt(r);if(34===o){t+=e.substring(i,r),r++;break}if(92!==o){if(o>=0&&o<=31){if(Nt(o)){t+=e.substring(i,r),g=2;break}g=6}r++}else{if(t+=e.substring(i,r),++r>=n){g=2;break}switch(e.charCodeAt(r++)){case 34:t+='"';break;case 92:t+="\\";break;case 47:t+="/";break;case 98:t+="\b";break;case 102:t+="\f";break;case 110:t+="\n";break;case 114:t+="\r";break;case 116:t+="\t";break;case 117:var a=l(4,!0);a>=0?t+=String.fromCharCode(a):g=4;break;default:g=5}i=r}}return t}(),a=10;case 47:var h=r-1;if(47===e.charCodeAt(r+1)){for(r+=2;r<n&&!Nt(e.charCodeAt(r));)r++;return i=e.substring(h,r),a=12}if(42===e.charCodeAt(r+1)){r+=2;for(var p=n-1,m=!1;r<p;){var v=e.charCodeAt(r);if(42===v&&47===e.charCodeAt(r+1)){r+=2,m=!0;break}r++,Nt(v)&&(13===v&&10===e.charCodeAt(r)&&r++,s++,u=r)}return m||(r++,g=1),i=e.substring(h,r),a=13}return i+=String.fromCharCode(t),r++,a=16;case 45:if(i+=String.fromCharCode(t),++r===n||!Wt(e.charCodeAt(r)))return a=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return i+=function(){var t=r;if(48===e.charCodeAt(r))r++;else for(r++;r<e.length&&Wt(e.charCodeAt(r));)r++;if(r<e.length&&46===e.charCodeAt(r)){if(!(++r<e.length&&Wt(e.charCodeAt(r))))return g=3,e.substring(t,r);for(r++;r<e.length&&Wt(e.charCodeAt(r));)r++}var n=r;if(r<e.length&&(69===e.charCodeAt(r)||101===e.charCodeAt(r)))if((++r<e.length&&43===e.charCodeAt(r)||45===e.charCodeAt(r))&&r++,r<e.length&&Wt(e.charCodeAt(r))){for(r++;r<e.length&&Wt(e.charCodeAt(r));)r++;n=r}else g=3;return e.substring(t,n)}(),a=11;default:for(;r<n&&f(t);)r++,t=e.charCodeAt(r);if(o!==r){switch(i=e.substring(o,r)){case"true":return a=8;case"false":return a=9;case"null":return a=7}return a=16}return i+=String.fromCharCode(t),r++,a=16}}function f(e){if(Ot(e)||Nt(e))return!1;switch(e){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}return{setPosition:function(e){r=e,i="",o=0,a=16,g=0},getPosition:function(){return r},scan:t?function(){var e;do{e=h()}while(e>=12&&e<=15);return e}:h,getToken:function(){return a},getTokenValue:function(){return i},getTokenOffset:function(){return o},getTokenLength:function(){return r-o},getTokenStartLine:function(){return c},getTokenStartCharacter:function(){return o-d},getTokenError:function(){return g}}};function Vt(e){return{getInitialState:()=>new tn(null,null,!1,null),tokenize:(t,n)=>function(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=0,o=!1;switch(n.scanError){case 2:t='"'+t,i=1;break;case 1:t="/*"+t,i=2}const a=Ut(t);let s=n.lastWasColon,c=n.parents;const u={tokens:[],endState:n.clone()};for(;;){let d=r+a.getPosition(),g="";const l=a.scan();if(17===l)break;if(d===r+a.getPosition())throw new Error("Scanner did not advance, next 3 characters are: "+t.substr(a.getPosition(),3));switch(o&&(d-=i),o=i>0,l){case 1:c=en.push(c,0),g=Kt,s=!1;break;case 2:c=en.pop(c),g=Kt,s=!1;break;case 3:c=en.push(c,1),g=zt,s=!1;break;case 4:c=en.pop(c),g=zt,s=!1;break;case 6:g=qt,s=!0;break;case 5:g=Xt,s=!1;break;case 8:case 9:g=Bt,s=!1;break;case 7:g=$t,s=!1;break;case 10:const e=c?c.type:0;g=s||1===e?Jt:Gt,s=!1;break;case 11:g=Qt,s=!1}if(e)switch(l){case 12:g=Zt;break;case 13:g=Yt}u.endState=new tn(n.getStateData(),a.getTokenError(),s,c),u.tokens.push({startIndex:d,scopes:g})}return u}(e,t,n)}}var Ht,Kt="delimiter.bracket.json",zt="delimiter.array.json",qt="delimiter.colon.json",Xt="delimiter.comma.json",Bt="keyword.json",$t="keyword.json",Jt="string.value.json",Qt="number.json",Gt="string.key.json",Yt="comment.block.json",Zt="comment.line.json",en=class e{constructor(e,t){this.parent=e,this.type=t}static pop(e){return e?e.parent:null}static push(t,n){return new e(t,n)}static equals(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;for(;e&&t;){if(e===t)return!0;if(e.type!==t.type)return!1;e=e.parent,t=t.parent}return!0}},tn=class e{constructor(e,t,n,r){this._state=e,this.scanError=t,this.lastWasColon=n,this.parents=r}clone(){return new e(this._state,this.scanError,this.lastWasColon,this.parents)}equals(t){return t===this||!!(t&&t instanceof e)&&(this.scanError===t.scanError&&this.lastWasColon===t.lastWasColon&&en.equals(this.parents,t.parents))}getStateData(){return this._state}setStateData(e){this._state=e}};function nn(){return new Promise(((e,t)=>{if(!Ht)return t("JSON not registered!");e(Ht)}))}var rn=class extends ut{constructor(e,t,n){super(e,t,n.onDidChange),this._disposables.push(g.editor.onWillDisposeModel((e=>{this._resetSchema(e.uri)}))),this._disposables.push(g.editor.onDidChangeModelLanguage((e=>{this._resetSchema(e.model.uri)})))}_resetSchema(e){this._worker().then((t=>{t.resetSchema(e.toString())}))}};function on(e){const t=[],n=[],r=new se(e);function i(){const{languageId:t,modeConfiguration:r}=e;sn(n),r.documentFormattingEdits&&n.push(g.languages.registerDocumentFormattingEditProvider(t,new Rt(Ht))),r.documentRangeFormattingEdits&&n.push(g.languages.registerDocumentRangeFormattingEditProvider(t,new Dt(Ht))),r.completionItems&&n.push(g.languages.registerCompletionItemProvider(t,new gt(Ht,[" ",":",'"']))),r.hovers&&n.push(g.languages.registerHoverProvider(t,new vt(Ht))),r.documentSymbols&&n.push(g.languages.registerDocumentSymbolProvider(t,new xt(Ht))),r.tokens&&n.push(g.languages.setTokensProvider(t,Vt(!0))),r.colors&&n.push(g.languages.registerColorProvider(t,new Mt(Ht))),r.foldingRanges&&n.push(g.languages.registerFoldingRangeProvider(t,new jt(Ht))),r.diagnostics&&n.push(new rn(t,Ht,e)),r.selectionRanges&&n.push(g.languages.registerSelectionRangeProvider(t,new Ft(Ht)))}t.push(r),Ht=function(){return r.getLanguageServiceWorker(...arguments)},i(),t.push(g.languages.setLanguageConfiguration(e.languageId,cn));let o=e.modeConfiguration;return e.onDidChange((e=>{e.modeConfiguration!==o&&(o=e.modeConfiguration,i())})),t.push(an(n)),an(t)}function an(e){return{dispose:()=>sn(e)}}function sn(e){for(;e.length;)e.pop().dispose()}var cn={wordPattern:/(-?\d*\.\d\w*)|([^\[\{\]\}\:\"\,\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:'"',close:'"',notIn:["string"]}]}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7520.d245d6ac.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/7520.d245d6ac.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7520.d245d6ac.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/7522.1a0f9c02.chunk.js b/ydb/core/viewer/monitoring/static/js/7522.1a0f9c02.chunk.js new file mode 100644 index 000000000000..c59b88c8cdb5 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7522.1a0f9c02.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7522],{87522:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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){return"W"===e?_+"\u5468":_+"\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){var t=100*_+e;return t<600?"\u51cc\u6668":t<900?"\u65e9\u4e0a":t<1100?"\u4e0a\u5348":t<1300?"\u4e2d\u5348":t<1800?"\u4e0b\u5348":"\u665a\u4e0a"}};return t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7529.ddf87a9a.chunk.js b/ydb/core/viewer/monitoring/static/js/7529.ddf87a9a.chunk.js new file mode 100644 index 000000000000..9d62b980307c --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7529.ddf87a9a.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 7529.ddf87a9a.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7529],{47529:(e,t,i)=>{i.r(t),i.d(t,{conf:()=>p,language:()=>w});var n,o,r=i(41551),l=Object.defineProperty,a=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,u=(e,t,i,n)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let o of d(t))s.call(e,o)||o===i||l(e,o,{get:()=>t[o],enumerable:!(n=a(t,o))||n.enumerable});return e},c={};u(c,n=r,"default"),o&&u(o,n,"default");var m=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],p={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,brackets:[["\x3c!--","--\x3e"],["<",">"],["{{","}}"],["{%","%}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"%",close:"%"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp("<(?!(?:".concat(m.join("|"),"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$"),"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:c.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(?!(?:".concat(m.join("|"),"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$"),"i"),action:{indentAction:c.languages.IndentAction.Indent}}]},w={defaultToken:"",tokenPostfix:"",builtinTags:["if","else","elseif","endif","render","assign","capture","endcapture","case","endcase","comment","endcomment","cycle","decrement","for","endfor","include","increment","layout","raw","endraw","render","tablerow","endtablerow","unless","endunless"],builtinFilters:["abs","append","at_least","at_most","capitalize","ceil","compact","date","default","divided_by","downcase","escape","escape_once","first","floor","join","json","last","lstrip","map","minus","modulo","newline_to_br","plus","prepend","remove","remove_first","replace","replace_first","reverse","round","rstrip","size","slice","sort","sort_natural","split","strip","strip_html","strip_newlines","times","truncate","truncatewords","uniq","upcase","url_decode","url_encode","where"],constants:["true","false"],operators:["==","!=",">","<",">=","<="],symbol:/[=><!]+/,identifier:/[a-zA-Z_][\w]*/,tokenizer:{root:[[/\{\%\s*comment\s*\%\}/,"comment.start.liquid","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@liquidState.root"}],[/\{\%/,{token:"@rematch",switchTo:"@liquidState.root"}],[/(<)([\w\-]+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)([\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/</,"delimiter.html"],[/\{/,"delimiter.html"],[/[^<{]+/]],comment:[[/\{\%\s*endcomment\s*\%\}/,"comment.end.liquid","@pop"],[/./,"comment.content.liquid"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@liquidState.otherTag"}],[/\{\%/,{token:"@rematch",switchTo:"@liquidState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],liquidState:[[/\{\{/,"delimiter.output.liquid"],[/\}\}/,{token:"delimiter.output.liquid",switchTo:"@$S2.$S3"}],[/\{\%/,"delimiter.tag.liquid"],[/raw\s*\%\}/,"delimiter.tag.liquid","@liquidRaw"],[/\%\}/,{token:"delimiter.tag.liquid",switchTo:"@$S2.$S3"}],{include:"liquidRoot"}],liquidRaw:[[/^(?!\{\%\s*endraw\s*\%\}).+/],[/\{\%/,"delimiter.tag.liquid"],[/@identifier/],[/\%\}/,{token:"delimiter.tag.liquid",next:"@root"}]],liquidRoot:[[/\d+(\.\d+)?/,"number.liquid"],[/"[^"]*"/,"string.liquid"],[/'[^']*'/,"string.liquid"],[/\s+/],[/@symbol/,{cases:{"@operators":"operator.liquid","@default":""}}],[/\./],[/@identifier/,{cases:{"@constants":"keyword.liquid","@builtinFilters":"predefined.liquid","@builtinTags":"predefined.liquid","@default":"variable.liquid"}}],[/[^}|%]/,"variable.liquid"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7529.ddf87a9a.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/7529.ddf87a9a.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7529.ddf87a9a.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/7543.3fcfd3ba.chunk.js b/ydb/core/viewer/monitoring/static/js/7543.3fcfd3ba.chunk.js new file mode 100644 index 000000000000..67033aafb726 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7543.3fcfd3ba.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 7543.3fcfd3ba.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7543],{87543:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>s,language:()=>p});var a,o,i=n(41551),r=Object.defineProperty,d=Object.getOwnPropertyDescriptor,m=Object.getOwnPropertyNames,l=Object.prototype.hasOwnProperty,c=(e,t,n,a)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let o of m(t))l.call(e,o)||o===n||r(e,o,{get:()=>t[o],enumerable:!(a=d(t,o))||a.enumerable});return e},u={};c(u,a=i,"default"),o&&c(o,a,"default");var s={comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:u.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:u.languages.IndentAction.Indent}}]},p={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/<!--/,{token:"comment",next:"@comment"}]],comment:[[/[^<\-]+/,"comment.content"],[/-->/,{token:"comment",next:"@pop"}],[/<!--/,"comment.content.invalid"],[/[<\-]/,"comment.content"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7543.3fcfd3ba.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/7543.3fcfd3ba.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7543.3fcfd3ba.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/7548.8ef3bbc0.chunk.js b/ydb/core/viewer/monitoring/static/js/7548.8ef3bbc0.chunk.js deleted file mode 100644 index e6e4b7044c32..000000000000 --- a/ydb/core/viewer/monitoring/static/js/7548.8ef3bbc0.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7548],{17548:function(e,t,n){n.r(t),n.d(t,{getJavaScriptWorker:function(){return E},getTypeScriptWorker:function(){return K},setupJavaScript:function(){return N},setupTypeScript:function(){return O}});var r,i=n(81864),o=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{u(r.next(e))}catch(t){o(t)}}function a(e){try{u(r.throw(e))}catch(t){o(t)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}u((r=r.apply(e,t||[])).next())}))},s=function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"===typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(a){o=[6,a],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}},a=function(){function e(e,t){var n=this;this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange((function(){return n._stopWorker()})),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange((function(){return n._updateExtraLibs()}))}return e.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},e.prototype.dispose=function(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()},e.prototype._updateExtraLibs=function(){return o(this,void 0,void 0,(function(){var e,t;return s(this,(function(n){switch(n.label){case 0:return this._worker?(e=++this._updateExtraLibsToken,[4,this._worker.getProxy()]):[2];case 1:return t=n.sent(),this._updateExtraLibsToken!==e?[2]:(t.updateExtraLibs(this._defaults.getExtraLibs()),[2])}}))}))},e.prototype._getClient=function(){var e=this;if(!this._client){this._worker=i.j6.createWebWorker({moduleId:"vs/language/typescript/tsWorker",label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath}});var t=this._worker.getProxy();this._defaults.getEagerModelSync()&&(t=t.then((function(t){return e._worker?e._worker.withSyncedResources(i.j6.getModels().filter((function(t){return t.getModeId()===e._modeId})).map((function(e){return e.uri}))):t}))),this._client=t}return this._client},e.prototype.getLanguageServiceWorker=function(){for(var e,t=this,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return this._getClient().then((function(t){e=t})).then((function(e){if(t._worker)return t._worker.withSyncedResources(n)})).then((function(t){return e}))},e}(),u={"lib.d.ts":!0,"lib.dom.d.ts":!0,"lib.dom.iterable.d.ts":!0,"lib.es2015.collection.d.ts":!0,"lib.es2015.core.d.ts":!0,"lib.es2015.d.ts":!0,"lib.es2015.generator.d.ts":!0,"lib.es2015.iterable.d.ts":!0,"lib.es2015.promise.d.ts":!0,"lib.es2015.proxy.d.ts":!0,"lib.es2015.reflect.d.ts":!0,"lib.es2015.symbol.d.ts":!0,"lib.es2015.symbol.wellknown.d.ts":!0,"lib.es2016.array.include.d.ts":!0,"lib.es2016.d.ts":!0,"lib.es2016.full.d.ts":!0,"lib.es2017.d.ts":!0,"lib.es2017.full.d.ts":!0,"lib.es2017.intl.d.ts":!0,"lib.es2017.object.d.ts":!0,"lib.es2017.sharedmemory.d.ts":!0,"lib.es2017.string.d.ts":!0,"lib.es2017.typedarrays.d.ts":!0,"lib.es2018.asyncgenerator.d.ts":!0,"lib.es2018.asynciterable.d.ts":!0,"lib.es2018.d.ts":!0,"lib.es2018.full.d.ts":!0,"lib.es2018.intl.d.ts":!0,"lib.es2018.promise.d.ts":!0,"lib.es2018.regexp.d.ts":!0,"lib.es2019.array.d.ts":!0,"lib.es2019.d.ts":!0,"lib.es2019.full.d.ts":!0,"lib.es2019.object.d.ts":!0,"lib.es2019.string.d.ts":!0,"lib.es2019.symbol.d.ts":!0,"lib.es2020.bigint.d.ts":!0,"lib.es2020.d.ts":!0,"lib.es2020.full.d.ts":!0,"lib.es2020.intl.d.ts":!0,"lib.es2020.promise.d.ts":!0,"lib.es2020.sharedmemory.d.ts":!0,"lib.es2020.string.d.ts":!0,"lib.es2020.symbol.wellknown.d.ts":!0,"lib.es5.d.ts":!0,"lib.es6.d.ts":!0,"lib.esnext.d.ts":!0,"lib.esnext.full.d.ts":!0,"lib.esnext.intl.d.ts":!0,"lib.esnext.promise.d.ts":!0,"lib.esnext.string.d.ts":!0,"lib.esnext.weakref.d.ts":!0,"lib.scripthost.d.ts":!0,"lib.webworker.d.ts":!0,"lib.webworker.importscripts.d.ts":!0,"lib.webworker.iterable.d.ts":!0},c=function(){var e=function(t,n){return e=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])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),l=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{u(r.next(e))}catch(t){o(t)}}function a(e){try{u(r.throw(e))}catch(t){o(t)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}u((r=r.apply(e,t||[])).next())}))},d=function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"===typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=(i=s.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(a){o=[6,a],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}};function f(e,t,n){if(void 0===n&&(n=0),"string"===typeof e)return e;if(void 0===e)return"";var r="";if(n){r+=t;for(var i=0;i<n;i++)r+=" "}if(r+=e.messageText,n++,e.next)for(var o=0,s=e.next;o<s.length;o++){r+=f(s[o],t,n)}return r}function p(e){return e?e.map((function(e){return e.text})).join(""):""}!function(e){e[e.None=0]="None",e[e.Block=1]="Block",e[e.Smart=2]="Smart"}(r||(r={}));var g,h=function(){function e(e){this._worker=e}return e.prototype._textSpanToRange=function(e,t){var n=e.getPositionAt(t.start),r=e.getPositionAt(t.start+t.length);return{startLineNumber:n.lineNumber,startColumn:n.column,endLineNumber:r.lineNumber,endColumn:r.column}},e}(),m=function(){function e(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}return e.prototype.isLibFile=function(e){return!!e&&(0===e.path.indexOf("/lib.")&&!!u[e.path.slice(1)])},e.prototype.getOrCreateModel=function(e){var t=i.j6.getModel(e);return t||(this.isLibFile(e)&&this._hasFetchedLibFiles?i.j6.createModel(this._libFiles[e.path.slice(1)],"typescript",e):null)},e.prototype._containsLibFile=function(e){for(var t=0,n=e;t<n.length;t++){var r=n[t];if(this.isLibFile(r))return!0}return!1},e.prototype.fetchLibFilesIfNecessary=function(e){return l(this,void 0,void 0,(function(){return d(this,(function(t){switch(t.label){case 0:return this._containsLibFile(e)?[4,this._fetchLibFiles()]:[2];case 1:return t.sent(),[2]}}))}))},e.prototype._fetchLibFiles=function(){var e=this;return this._fetchLibFilesPromise||(this._fetchLibFilesPromise=this._worker().then((function(e){return e.getLibFiles()})).then((function(t){e._hasFetchedLibFiles=!0,e._libFiles=t}))),this._fetchLibFilesPromise},e}();!function(e){e[e.Warning=0]="Warning",e[e.Error=1]="Error",e[e.Suggestion=2]="Suggestion",e[e.Message=3]="Message"}(g||(g={}));var b=function(e){function t(t,n,r,o){var s=e.call(this,o)||this;s._libFiles=t,s._defaults=n,s._selector=r,s._disposables=[],s._listener=Object.create(null);var a=function(e){if(e.getModeId()===r){var t,n=function(){s._defaults.getDiagnosticsOptions().onlyVisible?e.isAttachedToEditor()&&s._doValidate(e):s._doValidate(e)},o=e.onDidChangeContent((function(){clearTimeout(t),t=setTimeout(n,500)})),a=e.onDidChangeAttached((function(){s._defaults.getDiagnosticsOptions().onlyVisible&&(e.isAttachedToEditor()?n():i.j6.setModelMarkers(e,s._selector,[]))}));s._listener[e.uri.toString()]={dispose:function(){o.dispose(),a.dispose(),clearTimeout(t)}},n()}},u=function(e){i.j6.setModelMarkers(e,s._selector,[]);var t=e.uri.toString();s._listener[t]&&(s._listener[t].dispose(),delete s._listener[t])};s._disposables.push(i.j6.onDidCreateModel((function(e){return a(e)}))),s._disposables.push(i.j6.onWillDisposeModel(u)),s._disposables.push(i.j6.onDidChangeModelLanguage((function(e){u(e.model),a(e.model)}))),s._disposables.push({dispose:function(){for(var e=0,t=i.j6.getModels();e<t.length;e++){var n=t[e];u(n)}}});var c=function(){for(var e=0,t=i.j6.getModels();e<t.length;e++){var n=t[e];u(n),a(n)}};return s._disposables.push(s._defaults.onDidChange(c)),s._disposables.push(s._defaults.onDidExtraLibsChange(c)),i.j6.getModels().forEach((function(e){return a(e)})),s}return c(t,e),t.prototype.dispose=function(){this._disposables.forEach((function(e){return e&&e.dispose()})),this._disposables=[]},t.prototype._doValidate=function(e){return l(this,void 0,void 0,(function(){var t,n,r,o,s,a,u,c,l,f=this;return d(this,(function(d){switch(d.label){case 0:return[4,this._worker(e.uri)];case 1:return t=d.sent(),e.isDisposed()?[2]:(n=[],r=this._defaults.getDiagnosticsOptions(),o=r.noSyntaxValidation,s=r.noSemanticValidation,a=r.noSuggestionDiagnostics,o||n.push(t.getSyntacticDiagnostics(e.uri.toString())),s||n.push(t.getSemanticDiagnostics(e.uri.toString())),a||n.push(t.getSuggestionDiagnostics(e.uri.toString())),[4,Promise.all(n)]);case 2:return!(u=d.sent())||e.isDisposed()?[2]:(c=u.reduce((function(e,t){return t.concat(e)}),[]).filter((function(e){return-1===(f._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(e.code)})),l=c.map((function(e){return e.relatedInformation||[]})).reduce((function(e,t){return t.concat(e)}),[]).map((function(e){return e.file?i.Sf.parse(e.file.fileName):null})),[4,this._libFiles.fetchLibFilesIfNecessary(l)]);case 3:return d.sent(),e.isDisposed()?[2]:(i.j6.setModelMarkers(e,this._selector,c.map((function(t){return f._convertDiagnostics(e,t)}))),[2])}}))}))},t.prototype._convertDiagnostics=function(e,t){var n=t.start||0,r=t.length||1,o=e.getPositionAt(n),s=o.lineNumber,a=o.column,u=e.getPositionAt(n+r),c=u.lineNumber,l=u.column,d=[];return t.reportsUnnecessary&&d.push(i.eB.Unnecessary),t.reportsDeprecated&&d.push(i.eB.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:s,startColumn:a,endLineNumber:c,endColumn:l,message:f(t.messageText,"\n"),code:t.code.toString(),tags:d,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}},t.prototype._convertRelatedInformation=function(e,t){var n=this;if(t){var r=[];return t.forEach((function(t){var o=e;if(t.file){var s=i.Sf.parse(t.file.fileName);o=n._libFiles.getOrCreateModel(s)}if(o){var a=t.start||0,u=t.length||1,c=o.getPositionAt(a),l=c.lineNumber,d=c.column,p=o.getPositionAt(a+u),g=p.lineNumber,h=p.column;r.push({resource:o.uri,startLineNumber:l,startColumn:d,endLineNumber:g,endColumn:h,message:f(t.messageText,"\n")})}})),r}},t.prototype._tsDiagnosticCategoryToMarkerSeverity=function(e){switch(e){case g.Error:return i.ZL.Error;case g.Message:return i.ZL.Info;case g.Warning:return i.ZL.Warning;case g.Suggestion:return i.ZL.Hint}return i.ZL.Info},t}(h),v=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return c(t,e),Object.defineProperty(t.prototype,"triggerCharacters",{get:function(){return["."]},enumerable:!1,configurable:!0}),t.prototype.provideCompletionItems=function(e,n,r,o){return l(this,void 0,void 0,(function(){var r,o,s,a,u,c,l;return d(this,(function(d){switch(d.label){case 0:return r=e.getWordUntilPosition(n),o=new i.e6(n.lineNumber,r.startColumn,n.lineNumber,r.endColumn),s=e.uri,a=e.getOffsetAt(n),[4,this._worker(s)];case 1:return u=d.sent(),e.isDisposed()?[2]:[4,u.getCompletionsAtPosition(s.toString(),a)];case 2:return!(c=d.sent())||e.isDisposed()?[2]:(l=c.entries.map((function(r){var u,c=o;if(r.replacementSpan){var l=e.getPositionAt(r.replacementSpan.start),d=e.getPositionAt(r.replacementSpan.start+r.replacementSpan.length);c=new i.e6(l.lineNumber,l.column,d.lineNumber,d.column)}var f=[];return-1!==(null===(u=r.kindModifiers)||void 0===u?void 0:u.indexOf("deprecated"))&&f.push(i.Mj.CompletionItemTag.Deprecated),{uri:s,position:n,offset:a,range:c,label:r.name,insertText:r.name,sortText:r.sortText,kind:t.convertKind(r.kind),tags:f}})),[2,{suggestions:l}])}}))}))},t.prototype.resolveCompletionItem=function(e,n){return l(this,void 0,void 0,(function(){var n,r,i,o,s;return d(this,(function(a){switch(a.label){case 0:return r=(n=e).uri,i=n.position,o=n.offset,[4,this._worker(r)];case 1:return[4,a.sent().getCompletionEntryDetails(r.toString(),o,n.label)];case 2:return(s=a.sent())?[2,{uri:r,position:i,label:s.name,kind:t.convertKind(s.kind),detail:p(s.displayParts),documentation:{value:t.createDocumentationString(s)}}]:[2,n]}}))}))},t.convertKind=function(e){switch(e){case M.primitiveType:case M.keyword:return i.Mj.CompletionItemKind.Keyword;case M.variable:case M.localVariable:return i.Mj.CompletionItemKind.Variable;case M.memberVariable:case M.memberGetAccessor:case M.memberSetAccessor:return i.Mj.CompletionItemKind.Field;case M.function:case M.memberFunction:case M.constructSignature:case M.callSignature:case M.indexSignature:return i.Mj.CompletionItemKind.Function;case M.enum:return i.Mj.CompletionItemKind.Enum;case M.module:return i.Mj.CompletionItemKind.Module;case M.class:return i.Mj.CompletionItemKind.Class;case M.interface:return i.Mj.CompletionItemKind.Interface;case M.warning:return i.Mj.CompletionItemKind.File}return i.Mj.CompletionItemKind.Property},t.createDocumentationString=function(e){var t=p(e.documentation);if(e.tags)for(var n=0,r=e.tags;n<r.length;n++){t+="\n\n"+y(r[n])}return t},t}(h);function y(e){var t="*@"+e.name+"*";if("param"===e.name&&e.text){var n=e.text.split(" "),r=n[0],i=n.slice(1);t+="`"+r+"`",i.length>0&&(t+=" \u2014 "+i.join(" "))}else e.text&&(t+=" \u2014 "+e.text);return t}var _=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.signatureHelpTriggerCharacters=["(",","],t}return c(t,e),t._toSignatureHelpTriggerReason=function(e){switch(e.triggerKind){case i.Mj.SignatureHelpTriggerKind.TriggerCharacter:return e.triggerCharacter?e.isRetrigger?{kind:"retrigger",triggerCharacter:e.triggerCharacter}:{kind:"characterTyped",triggerCharacter:e.triggerCharacter}:{kind:"invoked"};case i.Mj.SignatureHelpTriggerKind.ContentChange:return e.isRetrigger?{kind:"retrigger"}:{kind:"invoked"};case i.Mj.SignatureHelpTriggerKind.Invoke:default:return{kind:"invoked"}}},t.prototype.provideSignatureHelp=function(e,n,r,i){return l(this,void 0,void 0,(function(){var r,o,s,a,u;return d(this,(function(c){switch(c.label){case 0:return r=e.uri,o=e.getOffsetAt(n),[4,this._worker(r)];case 1:return s=c.sent(),e.isDisposed()?[2]:[4,s.getSignatureHelpItems(r.toString(),o,{triggerReason:t._toSignatureHelpTriggerReason(i)})];case 2:return!(a=c.sent())||e.isDisposed()?[2]:(u={activeSignature:a.selectedItemIndex,activeParameter:a.argumentIndex,signatures:[]},a.items.forEach((function(e){var t={label:"",parameters:[]};t.documentation={value:p(e.documentation)},t.label+=p(e.prefixDisplayParts),e.parameters.forEach((function(n,r,i){var o=p(n.displayParts),s={label:o,documentation:{value:p(n.documentation)}};t.label+=o,t.parameters.push(s),r<i.length-1&&(t.label+=p(e.separatorDisplayParts))})),t.label+=p(e.suffixDisplayParts),u.signatures.push(t)})),[2,{value:u,dispose:function(){}}])}}))}))},t}(h),S=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return c(t,e),t.prototype.provideHover=function(e,t,n){return l(this,void 0,void 0,(function(){var n,r,i,o,s,a,u;return d(this,(function(c){switch(c.label){case 0:return n=e.uri,r=e.getOffsetAt(t),[4,this._worker(n)];case 1:return i=c.sent(),e.isDisposed()?[2]:[4,i.getQuickInfoAtPosition(n.toString(),r)];case 2:return!(o=c.sent())||e.isDisposed()?[2]:(s=p(o.documentation),a=o.tags?o.tags.map((function(e){return y(e)})).join(" \n\n"):"",u=p(o.displayParts),[2,{range:this._textSpanToRange(e,o.textSpan),contents:[{value:"```typescript\n"+u+"\n```\n"},{value:s+(a?"\n\n"+a:"")}]}])}}))}))},t}(h),w=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return c(t,e),t.prototype.provideDocumentHighlights=function(e,t,n){return l(this,void 0,void 0,(function(){var n,r,o,s,a=this;return d(this,(function(u){switch(u.label){case 0:return n=e.uri,r=e.getOffsetAt(t),[4,this._worker(n)];case 1:return o=u.sent(),e.isDisposed()?[2]:[4,o.getOccurrencesAtPosition(n.toString(),r)];case 2:return!(s=u.sent())||e.isDisposed()?[2]:[2,s.map((function(t){return{range:a._textSpanToRange(e,t.textSpan),kind:t.isWriteAccess?i.Mj.DocumentHighlightKind.Write:i.Mj.DocumentHighlightKind.Text}}))]}}))}))},t}(h),k=function(e){function t(t,n){var r=e.call(this,n)||this;return r._libFiles=t,r}return c(t,e),t.prototype.provideDefinition=function(e,t,n){return l(this,void 0,void 0,(function(){var n,r,o,s,a,u,c,l,f,p;return d(this,(function(d){switch(d.label){case 0:return n=e.uri,r=e.getOffsetAt(t),[4,this._worker(n)];case 1:return o=d.sent(),e.isDisposed()?[2]:[4,o.getDefinitionAtPosition(n.toString(),r)];case 2:return!(s=d.sent())||e.isDisposed()?[2]:[4,this._libFiles.fetchLibFilesIfNecessary(s.map((function(e){return i.Sf.parse(e.fileName)})))];case 3:if(d.sent(),e.isDisposed())return[2];for(a=[],u=0,c=s;u<c.length;u++)l=c[u],f=i.Sf.parse(l.fileName),(p=this._libFiles.getOrCreateModel(f))&&a.push({uri:f,range:this._textSpanToRange(p,l.textSpan)});return[2,a]}}))}))},t}(h),x=function(e){function t(t,n){var r=e.call(this,n)||this;return r._libFiles=t,r}return c(t,e),t.prototype.provideReferences=function(e,t,n,r){return l(this,void 0,void 0,(function(){var n,r,o,s,a,u,c,l,f,p;return d(this,(function(d){switch(d.label){case 0:return n=e.uri,r=e.getOffsetAt(t),[4,this._worker(n)];case 1:return o=d.sent(),e.isDisposed()?[2]:[4,o.getReferencesAtPosition(n.toString(),r)];case 2:return!(s=d.sent())||e.isDisposed()?[2]:[4,this._libFiles.fetchLibFilesIfNecessary(s.map((function(e){return i.Sf.parse(e.fileName)})))];case 3:if(d.sent(),e.isDisposed())return[2];for(a=[],u=0,c=s;u<c.length;u++)l=c[u],f=i.Sf.parse(l.fileName),(p=this._libFiles.getOrCreateModel(f))&&a.push({uri:f,range:this._textSpanToRange(p,l.textSpan)});return[2,a]}}))}))},t}(h),C=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return c(t,e),t.prototype.provideDocumentSymbols=function(e,t){return l(this,void 0,void 0,(function(){var t,n,r,o,s,a=this;return d(this,(function(u){switch(u.label){case 0:return t=e.uri,[4,this._worker(t)];case 1:return n=u.sent(),e.isDisposed()?[2]:[4,n.getNavigationBarItems(t.toString())];case 2:return!(r=u.sent())||e.isDisposed()?[2]:(o=function(t,n,r){var s={name:n.text,detail:"",kind:j[n.kind]||i.Mj.SymbolKind.Variable,range:a._textSpanToRange(e,n.spans[0]),selectionRange:a._textSpanToRange(e,n.spans[0]),tags:[],containerName:r};if(n.childItems&&n.childItems.length>0)for(var u=0,c=n.childItems;u<c.length;u++){var l=c[u];o(t,l,s.name)}t.push(s)},s=[],r.forEach((function(e){return o(s,e)})),[2,s])}}))}))},t}(h),M=function(){function e(){}return e.unknown="",e.keyword="keyword",e.script="script",e.module="module",e.class="class",e.interface="interface",e.type="type",e.enum="enum",e.variable="var",e.localVariable="local var",e.function="function",e.localFunction="local function",e.memberFunction="method",e.memberGetAccessor="getter",e.memberSetAccessor="setter",e.memberVariable="property",e.constructorImplementation="constructor",e.callSignature="call",e.indexSignature="index",e.constructSignature="construct",e.parameter="parameter",e.typeParameter="type parameter",e.primitiveType="primitive type",e.label="label",e.alias="alias",e.const="const",e.let="let",e.warning="warning",e}(),j=Object.create(null);j[M.module]=i.Mj.SymbolKind.Module,j[M.class]=i.Mj.SymbolKind.Class,j[M.enum]=i.Mj.SymbolKind.Enum,j[M.interface]=i.Mj.SymbolKind.Interface,j[M.memberFunction]=i.Mj.SymbolKind.Method,j[M.memberVariable]=i.Mj.SymbolKind.Property,j[M.memberGetAccessor]=i.Mj.SymbolKind.Property,j[M.memberSetAccessor]=i.Mj.SymbolKind.Property,j[M.variable]=i.Mj.SymbolKind.Variable,j[M.const]=i.Mj.SymbolKind.Variable,j[M.localVariable]=i.Mj.SymbolKind.Variable,j[M.variable]=i.Mj.SymbolKind.Variable,j[M.function]=i.Mj.SymbolKind.Function,j[M.localFunction]=i.Mj.SymbolKind.Function;var D,F,I=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return c(t,e),t._convertOptions=function(e){return{ConvertTabsToSpaces:e.insertSpaces,TabSize:e.tabSize,IndentSize:e.tabSize,IndentStyle:r.Smart,NewLineCharacter:"\n",InsertSpaceAfterCommaDelimiter:!0,InsertSpaceAfterSemicolonInForStatements:!0,InsertSpaceBeforeAndAfterBinaryOperators:!0,InsertSpaceAfterKeywordsInControlFlowStatements:!0,InsertSpaceAfterFunctionKeywordForAnonymousFunctions:!0,InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,PlaceOpenBraceOnNewLineForControlBlocks:!1,PlaceOpenBraceOnNewLineForFunctions:!1}},t.prototype._convertTextChanges=function(e,t){return{text:t.newText,range:this._textSpanToRange(e,t.span)}},t}(h),T=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return c(t,e),t.prototype.provideDocumentRangeFormattingEdits=function(e,t,n,r){return l(this,void 0,void 0,(function(){var r,i,o,s,a,u=this;return d(this,(function(c){switch(c.label){case 0:return r=e.uri,i=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),o=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),[4,this._worker(r)];case 1:return s=c.sent(),e.isDisposed()?[2]:[4,s.getFormattingEditsForRange(r.toString(),i,o,I._convertOptions(n))];case 2:return!(a=c.sent())||e.isDisposed()?[2]:[2,a.map((function(t){return u._convertTextChanges(e,t)}))]}}))}))},t}(I),P=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return c(t,e),Object.defineProperty(t.prototype,"autoFormatTriggerCharacters",{get:function(){return[";","}","\n"]},enumerable:!1,configurable:!0}),t.prototype.provideOnTypeFormattingEdits=function(e,t,n,r,i){return l(this,void 0,void 0,(function(){var i,o,s,a,u=this;return d(this,(function(c){switch(c.label){case 0:return i=e.uri,o=e.getOffsetAt(t),[4,this._worker(i)];case 1:return s=c.sent(),e.isDisposed()?[2]:[4,s.getFormattingEditsAfterKeystroke(i.toString(),o,n,I._convertOptions(r))];case 2:return!(a=c.sent())||e.isDisposed()?[2]:[2,a.map((function(t){return u._convertTextChanges(e,t)}))]}}))}))},t}(I),L=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return c(t,e),t.prototype.provideCodeActions=function(e,t,n,r){return l(this,void 0,void 0,(function(){var r,i,o,s,a,u,c,l=this;return d(this,(function(d){switch(d.label){case 0:return r=e.uri,i=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),o=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),s=I._convertOptions(e.getOptions()),a=n.markers.filter((function(e){return e.code})).map((function(e){return e.code})).map(Number),[4,this._worker(r)];case 1:return u=d.sent(),e.isDisposed()?[2]:[4,u.getCodeFixesAtPosition(r.toString(),i,o,a,s)];case 2:return!(c=d.sent())||e.isDisposed()?[2,{actions:[],dispose:function(){}}]:[2,{actions:c.filter((function(e){return 0===e.changes.filter((function(e){return e.isNewFile})).length})).map((function(t){return l._tsCodeFixActionToMonacoCodeAction(e,n,t)})),dispose:function(){}}]}}))}))},t.prototype._tsCodeFixActionToMonacoCodeAction=function(e,t,n){for(var r=[],i=0,o=n.changes;i<o.length;i++)for(var s=0,a=o[i].textChanges;s<a.length;s++){var u=a[s];r.push({resource:e.uri,edit:{range:this._textSpanToRange(e,u.span),text:u.newText}})}return{title:n.description,edit:{edits:r},diagnostics:t.markers,kind:"quickfix"}},t}(I),A=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return c(t,e),t.prototype.provideRenameEdits=function(e,t,n,r){return l(this,void 0,void 0,(function(){var r,o,s,a,u,c,l,f,p,g,h,m;return d(this,(function(d){switch(d.label){case 0:return r=e.uri,o=r.toString(),s=e.getOffsetAt(t),[4,this._worker(r)];case 1:return a=d.sent(),e.isDisposed()?[2]:[4,a.getRenameInfo(o,s,{allowRenameOfImportPath:!1})];case 2:if(!1===(u=d.sent()).canRename)return[2,{edits:[],rejectReason:u.localizedErrorMessage}];if(void 0!==u.fileToRename)throw new Error("Renaming files is not supported.");return[4,a.findRenameLocations(o,s,!1,!1,!1)];case 3:if(!(c=d.sent())||e.isDisposed())return[2];for(l=[],f=0,p=c;f<p.length;f++){if(g=p[f],h=i.Sf.parse(g.fileName),!(m=i.j6.getModel(h)))throw new Error("Unknown URI "+h+".");l.push({resource:h,edit:{range:this._textSpanToRange(m,g.textSpan),text:n}})}return[2,{edits:l}]}}))}))},t}(h);function O(e){F=R(e,"typescript")}function N(e){D=R(e,"javascript")}function E(){return new Promise((function(e,t){if(!D)return t("JavaScript not registered!");e(D)}))}function K(){return new Promise((function(e,t){if(!F)return t("TypeScript not registered!");e(F)}))}function R(e,t){var n=new a(t,e),r=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n.getLanguageServiceWorker.apply(n,e)},o=new m(r);return i.Mj.registerCompletionItemProvider(t,new v(r)),i.Mj.registerSignatureHelpProvider(t,new _(r)),i.Mj.registerHoverProvider(t,new S(r)),i.Mj.registerDocumentHighlightProvider(t,new w(r)),i.Mj.registerDefinitionProvider(t,new k(o,r)),i.Mj.registerReferenceProvider(t,new x(o,r)),i.Mj.registerDocumentSymbolProvider(t,new C(r)),i.Mj.registerDocumentRangeFormattingEditProvider(t,new T(r)),i.Mj.registerOnTypeFormattingEditProvider(t,new P(r)),i.Mj.registerCodeActionProvider(t,new L(r)),i.Mj.registerRenameProvider(t,new A(r)),new b(o,e,t,r),r}}}]); -//# sourceMappingURL=7548.8ef3bbc0.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7554.28f3da22.chunk.js b/ydb/core/viewer/monitoring/static/js/7554.28f3da22.chunk.js new file mode 100644 index 000000000000..61cab711d852 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7554.28f3da22.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 7554.28f3da22.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7554],{77554:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>o,language:()=>i});var o={wordPattern:/(#?-?\d*\.\d\w*%?)|([@$#!.:]?[\w-?]+%?)|[@#!.]/g,comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},i={defaultToken:"",tokenPostfix:".scss",ws:"[ \t\n\r\f]*",identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@variabledeclaration"},{include:"@warndebug"},["[@](include)",{token:"keyword",next:"@includedeclaration"}],["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["[@](function)",{token:"keyword",next:"@functiondeclaration"}],["[@](mixin)",{token:"keyword",next:"@mixindeclaration"}],["url(\\-prefix)?\\(",{token:"meta",next:"@urldeclaration"}],{include:"@controlstatement"},{include:"@selectorname"},["[&\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.curly",next:"@selectorbody"}]],selectorbody:[["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],{include:"@selector"},["[@](extend)",{token:"keyword",next:"@extendbody"}],["[@](return)",{token:"keyword",next:"@declarationbody"}],["}",{token:"delimiter.curly",next:"@pop"}]],selectorname:[["#{",{token:"meta",next:"@variableinterpolation"}],["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["url(\\-prefix)?\\(",{token:"meta",next:"@urldeclaration"}],{include:"@functioninvocation"},{include:"@numbers"},{include:"@strings"},{include:"@variablereference"},["(and\\b|or\\b|not\\b)","operator"],{include:"@name"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","operator"],[",","delimiter"],["!default","literal"],["\\(",{token:"delimiter.parenthesis",next:"@parenthizedterm"}]],rulevalue:[{include:"@term"},["!important","literal"],[";","delimiter","@pop"],["{",{token:"delimiter.curly",switchTo:"@nestedproperty"}],["(?=})",{token:"",next:"@pop"}]],nestedproperty:[["[*_]?@identifier@ws:","attribute.name","@rulevalue"],{include:"@comments"},["}",{token:"delimiter.curly",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],variabledeclaration:[["\\$@identifier@ws:","variable.decl","@declarationbody"]],urldeclaration:[{include:"@strings"},["[^)\r\n]+","string"],["\\)",{token:"meta",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],extendbody:[{include:"@selectorname"},["!optional","literal"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],variablereference:[["\\$@identifier","variable.ref"],["\\.\\.\\.","operator"],["#{",{token:"meta",next:"@variableinterpolation"}]],variableinterpolation:[{include:"@variablereference"},["}",{token:"meta",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],name:[["@identifier","attribute.value"]],numbers:[["(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","number.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","number","@pop"]],functiondeclaration:[["@identifier@ws\\(",{token:"meta",next:"@parameterdeclaration"}],["{",{token:"delimiter.curly",switchTo:"@functionbody"}]],mixindeclaration:[["@identifier@ws\\(",{token:"meta",next:"@parameterdeclaration"}],["@identifier","meta"],["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],parameterdeclaration:[["\\$@identifier@ws:","variable.decl"],["\\.\\.\\.","operator"],[",","delimiter"],{include:"@term"},["\\)",{token:"meta",next:"@pop"}]],includedeclaration:[{include:"@functioninvocation"},["@identifier","meta"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}],["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],keyframedeclaration:[["@identifier","meta"],["{",{token:"delimiter.curly",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.curly",next:"@selectorbody"}],["}",{token:"delimiter.curly",next:"@pop"}]],controlstatement:[["[@](if|else|for|while|each|media)",{token:"keyword.flow",next:"@controlstatementdeclaration"}]],controlstatementdeclaration:[["(in|from|through|if|to)\\b",{token:"keyword.flow"}],{include:"@term"},["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],functionbody:[["[@](return)",{token:"keyword"}],{include:"@variabledeclaration"},{include:"@term"},{include:"@controlstatement"},[";","delimiter"],["}",{token:"delimiter.curly",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"meta",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"meta",next:"@pop"}]],strings:[['~?"',{token:"string.delimiter",next:"@stringenddoublequote"}],["~?'",{token:"string.delimiter",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string.delimiter",next:"@pop"}],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string.delimiter",next:"@pop"}],[".","string"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7554.28f3da22.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/7554.28f3da22.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7554.28f3da22.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/758.2eb69c4e.chunk.js b/ydb/core/viewer/monitoring/static/js/758.2eb69c4e.chunk.js deleted file mode 100644 index 24e95ba64c8f..000000000000 --- a/ydb/core/viewer/monitoring/static/js/758.2eb69c4e.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[758],{30758:function(e,n,t){t.r(n),t.d(n,{conf:function(){return o},language:function(){return r}});var o={comments:{lineComment:"'",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"],["addhandler","end addhandler"],["class","end class"],["enum","end enum"],["event","end event"],["function","end function"],["get","end get"],["if","end if"],["interface","end interface"],["module","end module"],["namespace","end namespace"],["operator","end operator"],["property","end property"],["raiseevent","end raiseevent"],["removehandler","end removehandler"],["select","end select"],["set","end set"],["structure","end structure"],["sub","end sub"],["synclock","end synclock"],["try","end try"],["while","end while"],["with","end with"],["using","end using"],["do","loop"],["for","next"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"<",close:">",notIn:["string","comment"]}],folding:{markers:{start:new RegExp("^\\s*#Region\\b"),end:new RegExp("^\\s*#End Region\\b")}}},r={defaultToken:"",tokenPostfix:".vb",ignoreCase:!0,brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.angle",open:"<",close:">"},{token:"keyword.tag-addhandler",open:"addhandler",close:"end addhandler"},{token:"keyword.tag-class",open:"class",close:"end class"},{token:"keyword.tag-enum",open:"enum",close:"end enum"},{token:"keyword.tag-event",open:"event",close:"end event"},{token:"keyword.tag-function",open:"function",close:"end function"},{token:"keyword.tag-get",open:"get",close:"end get"},{token:"keyword.tag-if",open:"if",close:"end if"},{token:"keyword.tag-interface",open:"interface",close:"end interface"},{token:"keyword.tag-module",open:"module",close:"end module"},{token:"keyword.tag-namespace",open:"namespace",close:"end namespace"},{token:"keyword.tag-operator",open:"operator",close:"end operator"},{token:"keyword.tag-property",open:"property",close:"end property"},{token:"keyword.tag-raiseevent",open:"raiseevent",close:"end raiseevent"},{token:"keyword.tag-removehandler",open:"removehandler",close:"end removehandler"},{token:"keyword.tag-select",open:"select",close:"end select"},{token:"keyword.tag-set",open:"set",close:"end set"},{token:"keyword.tag-structure",open:"structure",close:"end structure"},{token:"keyword.tag-sub",open:"sub",close:"end sub"},{token:"keyword.tag-synclock",open:"synclock",close:"end synclock"},{token:"keyword.tag-try",open:"try",close:"end try"},{token:"keyword.tag-while",open:"while",close:"end while"},{token:"keyword.tag-with",open:"with",close:"end with"},{token:"keyword.tag-using",open:"using",close:"end using"},{token:"keyword.tag-do",open:"do",close:"loop"},{token:"keyword.tag-for",open:"for",close:"next"}],keywords:["AddHandler","AddressOf","Alias","And","AndAlso","As","Async","Boolean","ByRef","Byte","ByVal","Call","Case","Catch","CBool","CByte","CChar","CDate","CDbl","CDec","Char","CInt","Class","CLng","CObj","Const","Continue","CSByte","CShort","CSng","CStr","CType","CUInt","CULng","CUShort","Date","Decimal","Declare","Default","Delegate","Dim","DirectCast","Do","Double","Each","Else","ElseIf","End","EndIf","Enum","Erase","Error","Event","Exit","False","Finally","For","Friend","Function","Get","GetType","GetXMLNamespace","Global","GoSub","GoTo","Handles","If","Implements","Imports","In","Inherits","Integer","Interface","Is","IsNot","Let","Lib","Like","Long","Loop","Me","Mod","Module","MustInherit","MustOverride","MyBase","MyClass","NameOf","Namespace","Narrowing","New","Next","Not","Nothing","NotInheritable","NotOverridable","Object","Of","On","Operator","Option","Optional","Or","OrElse","Out","Overloads","Overridable","Overrides","ParamArray","Partial","Private","Property","Protected","Public","RaiseEvent","ReadOnly","ReDim","RemoveHandler","Resume","Return","SByte","Select","Set","Shadows","Shared","Short","Single","Static","Step","Stop","String","Structure","Sub","SyncLock","Then","Throw","To","True","Try","TryCast","TypeOf","UInteger","ULong","UShort","Using","Variant","Wend","When","While","Widening","With","WithEvents","WriteOnly","Xor"],tagwords:["If","Sub","Select","Try","Class","Enum","Function","Get","Interface","Module","Namespace","Operator","Set","Structure","Using","While","With","Do","Loop","For","Next","Property","Continue","AddHandler","RemoveHandler","Event","RaiseEvent","SyncLock"],symbols:/[=><!~?;\.,:&|+\-*\/\^%]+/,integersuffix:/U?[DI%L&S@]?/,floatsuffix:/[R#F!]?/,tokenizer:{root:[{include:"@whitespace"},[/next(?!\w)/,{token:"keyword.tag-for"}],[/loop(?!\w)/,{token:"keyword.tag-do"}],[/end\s+(?!for|do)(addhandler|class|enum|event|function|get|if|interface|module|namespace|operator|property|raiseevent|removehandler|select|set|structure|sub|synclock|try|while|with|using)/,{token:"keyword.tag-$1"}],[/[a-zA-Z_]\w*/,{cases:{"@tagwords":{token:"keyword.tag-$0"},"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/^\s*#\w+/,"keyword"],[/\d*\d+e([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+(e[\-+]?\d+)?(@floatsuffix)/,"number.float"],[/&H[0-9a-f]+(@integersuffix)/,"number.hex"],[/&0[0-7]+(@integersuffix)/,"number.octal"],[/\d+(@integersuffix)/,"number"],[/#.*#/,"number"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/["\u201c\u201d]/,{token:"string.quote",next:"@string"}]],whitespace:[[/[ \t\r\n]+/,""],[/(\'|REM(?!\w)).*$/,"comment"]],string:[[/[^"\u201c\u201d]+/,"string"],[/["\u201c\u201d]{2}/,"string.escape"],[/["\u201c\u201d]C?/,{token:"string.quote",next:"@pop"}]]}}}}]); -//# sourceMappingURL=758.2eb69c4e.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7645.6565454c.chunk.js b/ydb/core/viewer/monitoring/static/js/7645.6565454c.chunk.js new file mode 100644 index 000000000000..a2db4876fcd0 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7645.6565454c.chunk.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7645],{87645:(e,t,n)=>{n.r(t),n.d(t,{default:()=>P});var i=n(68963),o=n(38982),s=n.n(o),l=n(85198),r=n.n(l),a=n(66307),c=n(30746),u=n(64270),d=n(396),h=n(70832),f=n(3186),p=n.n(f),g=n(8978);function m(e){const t=document.createElement("span");return t.innerText=e,t.innerHTML}const _="data-series-name",v="data-series-idx",y="_tooltip",b="_tooltip-row",w=()=>"<td />",E=e=>'<td class="_tooltip-rows__bubble-td">\n <div class="_tooltip-rows__bubble-div" style="background-color:'.concat(e.seriesColor,';"></div>\n </td>'),S=e=>'<td class="'.concat("_tooltip-rows__name-td",'">\n ').concat(e.hideSeriesName?"":m(e.seriesName),"\n </td>"),x=e=>'<td class="_tooltip-rows__percent-td">\n '.concat(e.percentValue?e.percentValue+"%":"","\n </td>"),A=e=>'<td class="_tooltip-rows__value-td">\n '.concat(e.value,"\n </td>"),T=e=>'<td class="_tooltip-rows__diff-td">\n '.concat(e.diff?" (".concat(e.diff,")"):"","\n </td>"),O=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return'<td class="_tooltip-right__td '.concat(t?"_tooltip-right__td_with-split-tooltip":"",'" colspan="').concat(n||1,'">\n ').concat(e.holiday?'<div class="_tooltip-right__holiday-div">\n <div class="_tooltip-right__holiday-emoji">\ud83c\udf88</div>\n <div>\n '.concat(e.holidayText,"\n ").concat(e.region?'<span class="_tooltip-right__holiday-region">['.concat(e.region,"]</span>"):"","\n </div>\n </div>"):"","\n\n ").concat(e.commentDateText?'<div class="'.concat(e.xComments?"_tooltip-right__margin-bot":"",'">').concat(e.commentDateText,"</div>"):"","\n\n ").concat(e.xComments?e.xComments.map((e=>'<div class="_tooltip-right__traf-div '.concat(t?"_tooltip-right__traf-div_for-split-tooltip":"",'" style="border-color: ').concat(e.color,';">').concat(e.text,"</div>"))).join(""):"","\n </td>")},L=(e,t)=>{let{isSelectedLine:n,cellsRenderers:i,isSingleLine:o,allowComment:s,withDarkBackground:l,rowIndex:r}=t;const a=e.commentText||e.xyCommentText,c=s&&a,u=i.slice(),d="".concat(String(r)||"","-").concat(String(m(e.seriesName)).slice(0,20).replace(/(\r\n|\n|\r)/gm,""));return e.insertCellAt&&(Object.keys(e.insertCellAt)||[]).forEach((e=>{u.splice(Number(e),0,w)})),e.customRender?'<tr class="'.concat(b).concat(n?" _tooltip-selected-row":"").concat(o?" _tooltip-uniq-row":"").concat(l?" _tooltip-row-dark-bg":"",'" ').concat(_,'="').concat(d,'" ').concat(e.seriesIdx?"".concat(v,'="').concat(e.seriesIdx,'"'):"",">\n ").concat(0===e.customRender.trim().indexOf("<td")?e.customRender:'<td colspan="'.concat(i.length,'">').concat(e.customRender,"</td>"),"\n </tr>\n ").concat(c?'<tr class="_tooltip-comment-row'.concat(n?" _tooltip-selected-row":"").concat(l?" _tooltip-row-dark-bg":"",'">\n <td>\n ').concat(e.commentText?'<div class="_tooltip-rows__comment-div">'.concat(e.commentText,"</div>"):"","\n ").concat(e.xyCommentText?'<div class="_tooltip-rows__comment-div">'.concat(e.xyCommentText,"</div>"):"","\n </td>\n </tr>"):""):'<tr class="'.concat(b).concat(n?" _tooltip-selected-row":"").concat(o?" _tooltip-uniq-row":"").concat(l?" _tooltip-row-dark-bg":"",'" ').concat(_,'="').concat(d,'" ').concat(e.seriesIdx?"".concat(v,'="').concat(e.seriesIdx,'"'):"",">\n ").concat(u.map(((t,n)=>e.replaceCellAt&&e.replaceCellAt[n]?"string"===typeof e.replaceCellAt[n]?e.replaceCellAt[n]:e.replaceCellAt[n](e):e.insertCellAt&&e.insertCellAt[n]?"string"===typeof e.insertCellAt[n]?e.insertCellAt[n]:e.insertCellAt[n](e):t(e))).join(""),"\n </tr>\n\n ").concat(c?'<tr class="_tooltip-comment-row'.concat(n?" _tooltip-selected-row":"").concat(l?" _tooltip-row-dark-bg":"",'">\n <td colspan="4">\n ').concat(e.commentText?'<div class="_tooltip-rows__comment-div">'.concat(e.commentText,"</div>"):"","\n ").concat(e.xyCommentText?'<div class="_tooltip-rows__comment-div">'.concat(e.xyCommentText,"</div>"):"","\n </td>\n </tr>"):"")},I=(e,t)=>{const{splitTooltip:n,activeRowAlwaysFirstInTooltip:i}=e,o=e.lines.findIndex((e=>{let{selectedSeries:t}=e;return t})),s=e.lines[o],l=e.lines.slice(0,(t.lastVisibleRowIndex||e.lines.length)+1),r=[];r.push(E),e.shared&&r.push(S),e.withPercent&&r.push(x),r.push(A),e.useCompareFrom&&r.push(T);const c={isSingleLine:1===l.length,cellsRenderers:r},u={cellsRenderers:r,useCompareFrom:e.useCompareFrom,isSelectedLine:!0,allowComment:o>t.lastVisibleRowIndex},d=document.body.clientHeight/(window.visualViewport&&window.visualViewport.scale||1);let h=y;return n&&(h+=" ".concat(y,"_split-tooltip")),'\n<div class="'.concat(h,'" style="max-height: ').concat(n?"auto":"".concat(d,"px"),'">\n ').concat(e.tooltipHeader?'<div title="'.concat((document.createRange().createContextualFragment(e.tooltipHeader).textContent||"").trim(),'" class="_tooltip-date">\n ').concat(e.tooltipHeader.trim(),"\n </div>"):"","\n ").concat(n&&(e.holiday||e.commentDateText||e.xComments&&e.xComments.length)?'<table border="0" cellpadding="0" cellspacing="0">\n <tbody>\n <tr>\n '.concat(O(e,!0,r.length),"\n </tr>\n </tbody>\n </table>"):"",'\n <table border="0" cellpadding="0" cellspacing="0">\n <tr>\n <td class="_tooltip-left__td">\n <table class="_tooltip-rows__table">\n ').concat(n?"":"<thead class=".concat("_tooltip-header",">\n ").concat(s&&(i||t.lastVisibleRowIndex&&o>t.lastVisibleRowIndex)?L(s,u):"",'\n <tr class="_tooltip-fake-row">').concat(Array(r.length).fill("<td></td>").join(""),"</tr>\n </thead>"),'\n <tbody class="').concat("_tooltip-list",'">\n ').concat(l.map(((e,t)=>L(e,function(e){return Object.assign(Object.assign({},c),{rowIndex:e,isSelectedLine:l.length>1&&e===o,withDarkBackground:l.length>2&&Boolean(e%2),allowComment:e!==o||!u.allowComment})}(t)))).join(""),"\n </tbody>\n ").concat(n?"":'<tbody class="'.concat("_tooltip-footer",'">\n ').concat(t.lastVisibleRowIndex&&e.hiddenRowsNumber>0?'<tr class="'.concat(b," _hidden-rows-sum").concat(l.length%2?" _hidden-rows-sum-dark-bg":"",'">\n <td colspan="').concat(r.length-1,'" class="_hidden-rows-number">\n ').concat((0,a.a)("common","tooltip-rest")," ").concat(e.hiddenRowsNumber,'\n </td>\n <td class="_hidden-rows-value">').concat(e.hiddenRowsSum,"</td>\n </tr>"):"",'\n <tr class="_tooltip-fake-row">').concat(Array(r.length).fill("<td></td>").join(""),"</tr>\n ").concat(e.sum?'<tr class="_tooltip-rows__summ-tr">\n <td class="_tooltip-rows__summ-td" colspan="'.concat(r.length-1,'">').concat((0,a.a)("common","tooltip-sum"),'</td>\n <td class="_tooltip-rows__summ-td _tooltip-rows__summ-td-value">\n ').concat(e.sum,"\n </td>\n </tr>"):"","\n </tbody>"),"\n </table>\n </td>\n\n ").concat(!n&&(e.holiday||e.commentDateText||e.xComments&&e.xComments.length)?O(e):"","\n </tr>\n </table>\n</div>")},D=e=>"object"===typeof e&&null!==e?Object.values(e).reduce(((e,t)=>t)):e,M=e=>{var t;const{data:n,userData:i,row:o,rowIndex:s}=e,l=i.graphs[s],r=null===(t=n.yagr.getSeriesById(o.id))||void 0===t?void 0:t.lineColor;let a=o.color;if("lineColor"===(null===l||void 0===l?void 0:l.legendColorKey))r&&(a=r);else a=o.color;return a},k=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1?arguments[1]:void 0;return(n,i)=>{const o=(i[i.length-1]-i[0])/e;return i.map((n=>{const i=(0,d.CQ)({input:n/e,timeZone:t});return 0===i.hour()&&0===i.minute()&&0===i.second()?i.format("DD.MM.YY"):i.format(o<300?"HH:mm:ss":"HH:mm")}))}},C=(e,t)=>n=>{const i=n/((null===e||void 0===e?void 0:e.timeMultiplier)||1),o=(0,d.CQ)({input:i}),s=60*(o.utcOffset()-(0,d.CQ)({input:i,timeZone:t}).utcOffset())*1e3;return new Date(o.valueOf()-s)},R=e=>{var t,n;const{data:i,libraryConfig:o,theme:s}=e,l=Object.assign(Object.assign({},o),{timeline:i.timeline,series:i.graphs}),{timeZone:r}=i,a={appearance:{locale:g.X.get("lang"),theme:s}};var c;p()(a,l.chart),l.chart=a,(null===(t=l.tooltip)||void 0===t?void 0:t.show)&&(l.tooltip=l.tooltip||{},l.tooltip.render=(null===(n=l.tooltip)||void 0===n?void 0:n.render)||(c=i,e=>{const{timeZone:t}=c,n=e.yagr.config.chart.timeMultiplier||1,i=e.options,{x:o,state:s}=e;let l=0;const r=Object.values(e.scales).reduce(((e,t)=>(l+=t.sum||0,e.concat(t.rows))),[]),a=r.length,u=D(i.sum),h=D(i.maxLines),f=D(i.value),p=s.pinned?void 0:a>h?Math.abs(h-a):void 0,g=p?f(r.slice(-p).reduce(((e,t)=>{let{originalValue:n}=t;return e+(n||0)}),0)):void 0,m={activeRowAlwaysFirstInTooltip:r.length>1,tooltipHeader:(0,d.CQ)({input:o/n,timeZone:t}).format("DD MMMM YYYY HH:mm:ss"),shared:!0,lines:r.map(((t,n)=>Object.assign(Object.assign({},t),{seriesName:t.name||"Serie "+(n+1),seriesColor:M({data:e,userData:c,row:t,rowIndex:n}),selectedSeries:t.active,seriesIdx:t.seriesIdx,percentValue:"number"===typeof t.transformed?t.transformed.toFixed(1):""}))),withPercent:D(i.percent),hiddenRowsNumber:p,hiddenRowsSum:g};return u&&(m.sum=f(l)),I(m,{lastVisibleRowIndex:s.pinned?r.length-1:h-1})}),l.tooltip.className||(l.tooltip.className="chartkit-yagr-tooltip"),e.customTooltip&&(l.tooltip.virtual=!0),l.tooltip.sort=l.tooltip.sort||((e,t)=>t.rowIdx-e.rowIdx)),l.axes=l.axes||{};const u=l.axes[h.defaults.DEFAULT_X_SCALE];return l.editUplotOptions=e=>Object.assign(Object.assign({},e),{tzDate:r?C(l.chart,r):void 0}),u&&!u.values&&(u.values=k(l.chart.timeMultiplier,r)),u||(l.axes[h.defaults.DEFAULT_X_SCALE]={values:k(l.chart.timeMultiplier,r)}),l},F=i.forwardRef((function(e,t){const{id:n,data:{data:o},onLoad:l,onRender:d,onChartLoad:h,tooltip:f}=e,p=i.useRef(null),[g,m]=i.useState();if(!o||r()(o))throw new c.Dx({code:c.Wn.NO_DATA,message:(0,a.a)("error","label_no-data")});const{config:_,debug:v}=((e,t)=>{const{data:n,sources:o,libraryConfig:s}=e.data,l=(0,u.C)();return{config:i.useMemo((()=>R({data:n,libraryConfig:s,theme:l,customTooltip:Boolean(e.tooltip)})),[n,s,l,e.tooltip]),debug:i.useMemo((()=>({filename:o&&Object.values(o).map((e=>{var t;return null===(t=null===e||void 0===e?void 0:e.data)||void 0===t?void 0:t.program})).filter(Boolean).join(", ")||t})),[t,o])}})(e,n),y=i.useCallback(((e,t)=>{let{renderTime:n}=t;null===l||void 0===l||l(Object.assign(Object.assign({},o),{widget:e,widgetRendering:n})),null===d||void 0===d||d({renderTime:n}),m(e)}),[l,d,o,m]),b=i.useCallback((()=>{g&&g.reflow()}),[]);return i.useImperativeHandle(t,(()=>({reflow(){b()}})),[b]),i.useEffect((()=>{var e,t,n,i,o;if(!g||(null===(t=null===(e=g.config)||void 0===e?void 0:e.tooltip)||void 0===t?void 0:t.virtual))return;const s={mouseMove:null,mouseDown:null};null===(n=g.plugins.tooltip)||void 0===n||n.on("render",(e=>{(e=>{const t=e.querySelector(".".concat("_tooltip-header")),n=e.querySelector(".".concat("_tooltip-list"));if(!t||!n||!t.children.length)return;const i=t.children[0];for(let a=0;a<i.children.length;a++){const e=i.children[a];e.removeAttribute("style"),1===(null===n||void 0===n?void 0:n.children.length)&&(e.innerHTML=" ")}const o=n.children[0];for(let a=0;a<o.children.length;a++)o.children[a].removeAttribute("style");const s=t.children[0].getBoundingClientRect().width>n.children[0].getBoundingClientRect().width?t:n,l=Array.prototype.reduce.call(s.children[0].children,((e,t)=>(e.push(t.getBoundingClientRect().width),e)),[]),r=(s===t?n:t).children[0];for(let a=0;a<r.children.length;a++)r.children[a].setAttribute("style","width: ".concat(l[a],"px"));if(1===n.children.length)for(const a of i.children)a.innerHTML=""})(e)})),null===(i=g.plugins.tooltip)||void 0===i||i.on("pin",((e,t)=>{let{actions:n}=t;var i;s.mouseMove=(i={tooltip:e,yagr:g},e=>{var t;const{tooltip:n,yagr:o}=i;if(!o)return;const s=e.target,l=s&&n.contains(s)&&"TD"===s.tagName?null===(t=s.parentElement)||void 0===t?void 0:t.dataset.seriesIdx:void 0,r=l?o.uplot.series[Number(l)]:null;o.setFocus(r?r.id:null,!0)}),s.mouseDown=(e=>t=>{var n;const{tooltip:i,actions:o,yagr:s}=e;if(!s)return;const l=t.target;if(l instanceof Element){const e=l&&i.contains(l),t=l&&(null===(n=s.root.querySelector(".u-over"))||void 0===n?void 0:n.contains(l));e||t||(o.pin(!1),o.hide())}})({tooltip:e,actions:n,yagr:g}),document.addEventListener("mousemove",s.mouseMove),document.addEventListener("mousedown",s.mouseDown)})),null===(o=g.plugins.tooltip)||void 0===o||o.on("unpin",(()=>{s.mouseMove&&(document.removeEventListener("mousemove",s.mouseMove),s.mouseMove=null),s.mouseDown&&(document.removeEventListener("mousedown",s.mouseDown),s.mouseDown=null)}))}),[g]),i.useLayoutEffect((()=>{null===h||void 0===h||h({widget:g})}),[g,h]),i.createElement(i.Fragment,null,f&&g&&f({yagr:g}),i.createElement(s(),{ref:p,id:n,config:_,debug:v,onChartLoad:y}))})),P=F},9084:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TIME_MULTIPLIER=t.TOOLTIP_DEFAULT_MAX_LINES=t.TOOLTIP_X_OFFSET=t.TOOLTIP_Y_OFFSET=t.MIN_SELECTION_WIDTH=t.CURSOR_STYLE=t.MARKER_DIAMETER=t.SERIE_AREA_BORDER_WIDTH=t.SERIE_AREA_BORDER_COLOR=t.SERIE_LINE_WIDTH=t.SERIE_COLOR=t.PADDING_BOTH=t.PADDING_RIGHT=t.PADDING_LEFT=t.BARS_DRAW_MAX=t.BARS_DRAW_FACTOR=t.TYPES_ORDER=t.X_AXIS_INCRS=t.X_AXIS_SPACE=t.X_AXIS_SIZE=t.X_AXIS_TICK_GAP=t.DECADE=t.YEAR=t.DAY=t.HOUR=t.MINUTE=t.SECOND=t.Y_AXIS_LABEL_SIZE=t.Y_AXIS_SIZE=t.DEFAULT_Y_AXIS_LABEL_PADDING=t.DEFAULT_Y_AXIS_PADDING=t.DEFAULT_Y_AXIS_SIZE=t.Y_AXIS_TICK_GAP=t.AXIS_VALUES_FONT=t.AXIS_LABEL_FONT=t.DEFAULT_AXIS_FONT_SIZE=t.DARK_DEFAULT_LINE_COLOR=t.LIGHT_DEFAULT_LINE_COLOR=t.DEFAULT_TITLE_FONT_SIZE=t.DEFAULT_SYNC_KEY=t.DEFAULT_POINT_SIZE=t.DEFAULT_LOGARITHMIC_MIN_SCALE_VALUE=t.DEFAULT_SCALE_MIN_RANGE=t.DEFAULT_Y_AXIS_OFFSET=t.DEFAULT_MAX_TICKS=t.DEFAULT_CANVAS_PIXEL_RATIO=t.DEFAULT_FOCUS_ALPHA=t.DEFAULT_Y_SCALE=t.DEFAULT_X_SCALE=t.DEFAULT_X_SERIE_NAME=void 0,t.DEFAULT_X_SERIE_NAME="date",t.DEFAULT_X_SCALE="x",t.DEFAULT_Y_SCALE="y",t.DEFAULT_FOCUS_ALPHA=.3,t.DEFAULT_CANVAS_PIXEL_RATIO="undefined"===typeof window?1:window.devicePixelRatio,t.DEFAULT_MAX_TICKS=5,t.DEFAULT_Y_AXIS_OFFSET=.05,t.DEFAULT_SCALE_MIN_RANGE=.01,t.DEFAULT_LOGARITHMIC_MIN_SCALE_VALUE=.001,t.DEFAULT_POINT_SIZE=t.DEFAULT_CANVAS_PIXEL_RATIO>=2?4:2,t.DEFAULT_SYNC_KEY="sync",t.DEFAULT_TITLE_FONT_SIZE=14,t.LIGHT_DEFAULT_LINE_COLOR="#222222",t.DARK_DEFAULT_LINE_COLOR="#eeeeee",t.DEFAULT_AXIS_FONT_SIZE=11,t.AXIS_LABEL_FONT="normal 11px Lucida Grande, Arial, Helvetica, sans-serif",t.AXIS_VALUES_FONT="11px Lucida Grande, Arial, Helvetica, sans-serif",t.Y_AXIS_TICK_GAP=6,t.DEFAULT_Y_AXIS_SIZE=12,t.DEFAULT_Y_AXIS_PADDING=12,t.DEFAULT_Y_AXIS_LABEL_PADDING=2;t.Y_AXIS_SIZE=(e,n,i)=>{if(!n)return t.DEFAULT_Y_AXIS_SIZE;const o=n.reduce(((e,t)=>e.length>t.length?e:t)),{ctx:s}=e;s.save();const l=e.axes[i];s.font=l.font?l.font[0]:t.AXIS_VALUES_FONT;const{width:r}=s.measureText(o);s.restore();let a=0;if(l.label){a=l.labelSize||t.DEFAULT_AXIS_FONT_SIZE,s.font=l.labelFont?l.labelFont[0]:t.AXIS_LABEL_FONT;const{fontBoundingBoxAscent:e}=s.measureText(l.label);a=e,s.restore()}return a?r/t.DEFAULT_CANVAS_PIXEL_RATIO+a/t.DEFAULT_CANVAS_PIXEL_RATIO+t.DEFAULT_Y_AXIS_LABEL_PADDING:r/t.DEFAULT_CANVAS_PIXEL_RATIO+t.DEFAULT_Y_AXIS_PADDING},t.Y_AXIS_LABEL_SIZE=11,t.SECOND=1e3,t.MINUTE=60*t.SECOND,t.HOUR=60*t.MINUTE,t.DAY=24*t.HOUR,t.YEAR=365*t.DAY,t.DECADE=10*t.YEAR,t.X_AXIS_TICK_GAP=6,t.X_AXIS_SIZE=32,t.X_AXIS_SPACE=80,t.X_AXIS_INCRS=[1,10,50,100,200,500,t.SECOND,2*t.SECOND,5*t.SECOND,10*t.SECOND,15*t.SECOND,30*t.SECOND,t.MINUTE,5*t.MINUTE,10*t.MINUTE,30*t.MINUTE,t.HOUR,2*t.HOUR,3*t.HOUR,4*t.HOUR,6*t.HOUR,12*t.HOUR,t.DAY,2*t.DAY,3*t.DAY,5*t.DAY,10*t.DAY,15*t.DAY,30*t.DAY,60*t.DAY,120*t.DAY,180*t.DAY,t.YEAR,2*t.YEAR,5*t.YEAR,10*t.YEAR],t.TYPES_ORDER=["dots","line","area","column"],t.BARS_DRAW_FACTOR=.5,t.BARS_DRAW_MAX=100,t.PADDING_LEFT=[14,14,0,4],t.PADDING_RIGHT=[14,4,0,14],t.PADDING_BOTH=[14,4,0,4],t.SERIE_COLOR="rgba(0, 0, 0, 1)",t.SERIE_LINE_WIDTH=2,t.SERIE_AREA_BORDER_COLOR="rgba(0, 0, 0, 0.2)",t.SERIE_AREA_BORDER_WIDTH=1,t.MARKER_DIAMETER=8,t.CURSOR_STYLE="1px solid #ffa0a0",t.MIN_SELECTION_WIDTH=15;t.default=class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"light";this.setTheme(t),this.colors=e}setTheme(e){this.theme=e}get GRID(){return{show:!0,stroke:()=>this.colors.parse("--yagr-grid"),width:1}}get X_AXIS_TICKS(){return{size:8,...this.GRID}}get Y_AXIS_TICKS(){return{size:6,...this.GRID}}get AXIS_STROKE(){return this.colors.parse("--yagr-axis-stroke")}get BACKGROUND(){return this.colors.parse("--yagr-background")}get SHIFT(){var e;return(null===(e=this.theme)||void 0===e?void 0:e.startsWith("light"))?.68:-.6}get DEFAULT_LINE_COLOR(){var e;return(null===(e=this.theme)||void 0===e?void 0:e.startsWith("light"))?t.LIGHT_DEFAULT_LINE_COLOR:t.DARK_DEFAULT_LINE_COLOR}},t.TOOLTIP_Y_OFFSET=24,t.TOOLTIP_X_OFFSET=24,t.TOOLTIP_DEFAULT_MAX_LINES=10,t.TIME_MULTIPLIER=1},19993:function(e,t,n){var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(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)&&i(t,e,n);return o(t,e),t},l=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const r=l(n(95588)),a=l(n(6063)),c=n(36098),u=l(n(50934)),d=s(n(9084)),h=l(n(2921)),f=n(32616),p=n(24908),g=n(34730),m=n(28797),_=n(98855);class v{get isEmpty(){return this.state.isEmptyDataSet}constructor(e,t){var n=this;this.plugins={},this._meta={},this._uHooks={},this.init=()=>{var e;(null===(e=this.config.chart.size)||void 0===e?void 0:e.adaptive)&&!this.resizeOb&&(this.resizeOb=new ResizeObserver((0,c.debounce)(this.onResize,this.config.chart.size.resizeDebounceMs||100)),this.resizeOb.observe(this.root)),this.config.hooks.dispose||(this.config.hooks.dispose=[]),this.unsubscribe(),this.config.hooks.dispose.push(this.trackMouse())},this.execHooks=function(e){const t=n.config.hooks[e];if(Array.isArray(t)){for(var i=arguments.length,o=new Array(i>1?i-1:0),s=1;s<i;s++)o[s-1]=arguments[s];for(const e of t)e&&"function"===typeof e&&e(...o)}},this.initRender=(e,t)=>{var n,i,o;const s=null===(n=this.config.legend)||void 0===n?void 0:n.position;this.root.firstChild?s&&"bottom"!==s?this.root.appendChild(e.root):this.root.insertBefore(e.root,this.root.firstChild):s&&"bottom"!==s?this.root.insertBefore(e.root,this.root.firstChild):this.root.appendChild(e.root),(null===(i=this.config.legend)||void 0===i?void 0:i.show)&&(null===(o=this.plugins.legend)||void 0===o||o.init(e),this.reflow(!1)),this.initTitle(),t()},this.onResize=e=>{var t;const[n]=e;this._cache.height===n.contentRect.height&&this._cache.width===n.contentRect.width||(null===(t=this.plugins.tooltip)||void 0===t||t.reset(),this.reflow(),this.execHooks("resize",{entries:e,chart:this}))},this.initMixins(),this._startTime=performance.now(),this.state={isEmptyDataSet:!1,isMouseOver:!1,stage:"config",y2uIdx:{},subscribed:!1};const i=Object.assign({title:{},data:[],axes:{},series:[],scales:{},hooks:{},settings:{},chart:{},cursor:{},plugins:{},legend:{show:!1},tooltip:{show:!0},grid:null,markers:{}},t);this.config=i,this.inStage("config",(()=>{var t;this.id=e.id||(0,c.genId)(),this.root=e,this.root.classList.add("yagr"),this.root.id||(this.root.id=this.id);const n=new u.default,o=this.config.cursor.sync,s=this.config.chart;s.series||(s.series={type:"line"}),s.size||(s.size={adaptive:!0}),s.appearance||(s.appearance={locale:"en"}),s.select||(s.select={}),this.utils={colors:n,i18n:(0,h.default)((null===(t=i.chart.appearance)||void 0===t?void 0:t.locale)||"en"),theme:new d.default(n)},n.setContext(e),o&&(this.utils.sync=r.default.sync("string"===typeof o?o:d.DEFAULT_SYNC_KEY)),!s.size.adaptive&&s.size.width&&s.size.height&&(e.style.width=(0,c.px)(s.size.width),e.style.height=(0,c.px)(s.size.height)),this.plugins.legend=new a.default,this.setTheme(s.appearance.theme||"light"),this.createUplotOptions(),this._cache={height:this.options.height,width:this.options.width},i.editUplotOptions&&(this.options=i.editUplotOptions(this.options))})).inStage("processing",(()=>{this.transformSeries()})).inStage("uplot",(()=>{this.uplot=new r.default(this.options,this.series,this.initRender),this.canvas=e.querySelector("canvas"),this.init();const t=performance.now()-this._startTime;this._meta.processTime=t})).inStage("render")}redraw(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.uplot.redraw(e,t)}getSeriesById(e){return this.uplot.series[this.state.y2uIdx[e]]}dispose(){var e,t,n,i;this.resizeOb&&this.resizeOb.unobserve(this.root),this.unsubscribe(),null===(t=null===(e=this.plugins)||void 0===e?void 0:e.tooltip)||void 0===t||t.dispose(),null===(i=null===(n=this.plugins)||void 0===n?void 0:n.legend)||void 0===i||i.destroy(),this.uplot.destroy(),this._uHooks={},this.execHooks("dispose",{chart:this})}toDataUrl(){return this.canvas.toDataURL("img/png")}subscribe(){var e;this.state.subscribed||(null===(e=this.utils.sync)||void 0===e||e.sub(this.uplot),this.state.subscribed=!0)}unsubscribe(){var e;null===(e=this.utils.sync)||void 0===e||e.unsub(this.uplot),this.state.subscribed=!1}inStage(e,t){this.state.stage,this.execHooks("stage",{chart:this,stage:e});try{t&&t()}catch(n){console.error(n),this.onError(n)}return this}initTitle(){if(this.config.title&&this.config.title.fontSize){const e=this.config.title.fontSize,t=this.root.querySelector(".u-title");t.setAttribute("style","font-size:".concat(e,"px;line-height:").concat(e,"px;")),t.innerHTML=this.config.title.text}}onError(e){return this.execHooks("error",{stage:this.state.stage,error:e,chart:this}),e}trackMouse(){const e=()=>{this.state.isMouseOver=!0},t=()=>{this.state.isMouseOver=!1};return this.root.addEventListener("mouseover",e),this.root.addEventListener("mouseleave",t),()=>{this.root.removeEventListener("mouseover",e),this.root.removeEventListener("mouseleave",t)}}get clientHeight(){var e;const t=this.config.title.text?(this.config.title.fontSize||d.DEFAULT_TITLE_FONT_SIZE)+8:0;return this.root.clientHeight-t-((null===(e=this.plugins.legend)||void 0===e?void 0:e.state.totalSpace)||0)}reflow(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];const t=this.root.clientWidth,n=this.clientHeight;this._cache.width=t,this.options.width=t,this._cache.height=n,this.options.height=n,e&&this.uplot.setSize({width:this.options.width,height:this.options.height}),e&&this.uplot.redraw()}}(0,m.applyMixins)(v,[f.CreateUplotOptionsMixin,p.TransformSeriesMixin,g.DynamicUpdatesMixin,_.BatchMixin]),t.default=v},2921:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});const n={ru:{"hide-all":"\u0421\u043a\u0440\u044b\u0442\u044c \u0432\u0441\u0435","show-all":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0435",sum:"\u0421\u0443\u043c\u043c\u0430",scale:"\u0428\u043a\u0430\u043b\u0430",series:"\u041b\u0438\u043d\u0438\u044f",weekend:"\u0412\u044b\u0445\u043e\u0434\u043d\u043e\u0439",nodata:"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445"},en:{"hide-all":"Hide all","show-all":"Show all",sum:"Total",scale:"Scale",series:"Series",weekend:"Weekend",nodata:"No data"}};t.default=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"en";return"string"!==typeof e&&(n.custom=e,e="custom"),t=>n[e][t]||t}},98855:function(e,t,n){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.BatchMixin=void 0;const o=i(n(95588)),s=i(n(6063));t.BatchMixin=class{initMixin(){this._batch={active:!1,fns:[]}}batch(e){var t;return this._batch.active?e(this._batch):(this._batch.active=!0,e(this._batch),this._batch.reinit?this.fullUpdate():(this._batch.redrawLegend&&(null===(t=this.plugins.legend)||void 0===t||t.redraw()),this._batch.reopt&&this.createUplotOptions(!0),this._batch.recalc&&this.inStage("processing",(()=>{this.transformSeries()})).inStage("listen"),this._batch.fns.length&&this.uplot.batch((()=>this._batch.fns.forEach((e=>e(this._batch))))),this._batch.redraw&&this.uplot&&this.redraw(...this._batch.redraw),void(this._batch={active:!1,fns:[]})))}fullUpdate(){let e,t;this.inStage("dispose",(()=>{var n;if(this.uplot){const n=this.uplot.cursor;e=n.left,t=n.top,this.uplot.destroy()}null===(n=this.plugins.legend)||void 0===n||n.destroy()})).inStage("config",(()=>{this.plugins.legend=new s.default,this._batch={active:!1,fns:[]},this.createUplotOptions(!0),this.options=this.config.editUplotOptions?this.config.editUplotOptions(this.options):this.options})).inStage("processing",(()=>{this.transformSeries()})).inStage("uplot",(()=>{this.uplot=new o.default(this.options,this.series,this.initRender),e&&t&&e>0&&t>0&&this.uplot.setCursor({left:e,top:t}),this.state.subscribed||this.unsubscribe()})).inStage("listen")}}},32616:function(e,t,n){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.CreateUplotOptionsMixin=void 0;const o=i(n(36558)),s=i(n(87163)),l=n(9084),r=n(36374),a=i(n(5613)),c=n(25009),u=n(6883),d=n(77423),h=n(61579),f=i(n(20315));function p(e,t){for(const n of e||[])if(n===t)return;null===e||void 0===e||e.push(t)}t.CreateUplotOptionsMixin=class{initMixin(){this._uHooks.onDraw=()=>{if("listen"===this.state.stage)return;this.state.stage="listen",this.execHooks("stage",{chart:this,stage:this.state.stage});const e=performance.now()-this._startTime;this._meta.renderTime=e,this.execHooks("load",{chart:this,meta:this._meta})},this._uHooks.ready=()=>{const e=performance.now()-this._startTime;this._meta.initTime=e,this.execHooks("inited",{chart:this,meta:{initTime:e}})},this._uHooks.drawClear=e=>{const{ctx:t}=e;t.save(),t.fillStyle=this.utils.theme.BACKGROUND,t.fillRect(l.DEFAULT_CANVAS_PIXEL_RATIO,l.DEFAULT_CANVAS_PIXEL_RATIO,e.width*l.DEFAULT_CANVAS_PIXEL_RATIO-2*l.DEFAULT_CANVAS_PIXEL_RATIO,e.height*l.DEFAULT_CANVAS_PIXEL_RATIO-2*l.DEFAULT_CANVAS_PIXEL_RATIO),t.restore()},this._uHooks.setSelect=e=>{const{left:t,width:n}=e.select,[i,o]=[e.posToVal(t,l.DEFAULT_X_SCALE),e.posToVal(t+n,l.DEFAULT_X_SCALE)],{timeMultiplier:s=l.TIME_MULTIPLIER}=this.config.chart||{};this.execHooks("onSelect",{from:Math.ceil(i/s),to:Math.ceil(o/s),chart:this}),e.setSelect({width:0,height:0,top:0,left:0},!1)}}createUplotOptions(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];var t,n,i,g,m,_,v,y,b,w,E;const{config:S}=this,x=[];let A=null===(t=this.plugins)||void 0===t?void 0:t.tooltip;if(S.tooltip&&!1!==S.tooltip.show&&(A?A.updateOptions(S.tooltip):A=(0,o.default)(this,S.tooltip),x.push(A.uplot),this.plugins.tooltip=A),e)this.plugins.plotLines&&x.push(this.plugins.plotLines.uplot);else{const e=(0,f.default)(this.config.plotLines||{})(this);this.plugins.plotLines=e,x.push(e.uplot)}Object.entries(S.plugins).forEach((e=>{let[t,n]=e;const i=n(this);x.push(i.uplot),Object.assign(this.plugins,{[t]:i})}));const T=S.chart,O={width:this.root.clientWidth,height:this.clientHeight,title:null===(n=S.title)||void 0===n?void 0:n.text,plugins:x,focus:{alpha:l.DEFAULT_FOCUS_ALPHA},series:[{id:l.DEFAULT_X_SERIE_NAME,$c:S.timeline,scale:l.DEFAULT_X_SCALE,count:S.timeline.length}],ms:T.timeMultiplier||l.TIME_MULTIPLIER,hooks:S.hooks||{}};if(this.state.isEmptyDataSet=0===S.timeline.length||0===S.series.length||S.series.every((e=>{let{data:t}=e;return 0===t.length})),O.cursor=O.cursor||{},O.cursor.points=O.cursor.points||{},O.cursor.drag=O.cursor.drag||{dist:(null===(i=T.select)||void 0===i?void 0:i.minWidth)||l.MIN_SELECTION_WIDTH,x:null===(g=O.cursor.y)||void 0===g||g,y:null!==(m=O.cursor.y)&&void 0!==m&&m,setScale:null===(v=null===(_=T.select)||void 0===_?void 0:_.zoom)||void 0===v||v},this.utils.sync&&(O.cursor.sync=O.cursor.sync||{key:this.utils.sync.key}),S.cursor){const e=(0,s.default)(this,S.cursor);this.plugins.cursor=e,x.push(e.uplot)}const L=S.series||[],I=O.series;for(let o=L.length-1;o>=0;o--){const e=(0,r.configureSeries)(this,L[o]||{},o),t=I.push(e);this.state.y2uIdx[e.id||o]=t-1}const D=(0,a.default)(this,S);x.push(D),O.series=I,S.scales&&0!==Object.keys(S.scales).length||(S.scales={x:{},y:{}}),O.scales=O.scales||{},O.scales=(0,c.configureScales)(this,O.scales,S),O.axes=O.axes||[];return O.axes.push(...(0,u.configureAxes)(this,S)),O.hooks=S.hooks||{},O.hooks.draw=O.hooks.draw||[],O.hooks.ready=O.hooks.ready||[],O.hooks.drawClear=O.hooks.drawClear||[],O.hooks.setSelect=O.hooks.setSelect||[],p(O.hooks.draw,this._uHooks.onDraw),p(O.hooks.ready,this._uHooks.ready),p(O.hooks.drawClear,this._uHooks.drawClear),p(O.hooks.setSelect,this._uHooks.setSelect),O.drawOrder=(null===(y=T.appearance)||void 0===y?void 0:y.drawOrder)?null===(b=T.appearance)||void 0===b?void 0:b.drawOrder.filter((e=>e===h.DrawOrderKey.Series||e===h.DrawOrderKey.Axes)):[h.DrawOrderKey.Series,h.DrawOrderKey.Axes],O.legend={show:!1},O.padding=(null===(w=S.chart.size)||void 0===w?void 0:w.padding)||(0,d.getPaddingByAxes)(O),null===(E=this.plugins.legend)||void 0===E||E.preInit(this,this.config.legend,O),O.height=this.clientHeight,this.options=O,O}}},34730:function(e,t,n){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.DynamicUpdatesMixin=void 0;const o=i(n(2921)),s=n(9084),l=n(36374),r=n(6883),a=n(36098);function c(e,t,n){var i,o,s,l,r,c,u,d,h,f,p,g;if(arguments.length>3&&void 0!==arguments[3]&&arguments[3])return e.config={...e.config,...n},void(t.reinit=!0);const m=function(e,t){return function(n,i){const o=(0,a.get)(e,n),s=(0,a.get)(t,n);return i?!i(o,s):o!==s}}(e.config,n);n.title&&m("title")&&e.setTitle(n.title),(null===(o=null===(i=n.chart)||void 0===i?void 0:i.appearance)||void 0===o?void 0:o.theme)&&m("chart.appearance.theme")&&e.setTheme(null===(l=null===(s=n.chart)||void 0===s?void 0:s.appearance)||void 0===l?void 0:l.theme),(null===(c=null===(r=n.chart)||void 0===r?void 0:r.appearance)||void 0===c?void 0:c.locale)&&m("chart.appearance.locale")&&e.setLocale(null===(d=null===(u=n.chart)||void 0===u?void 0:u.appearance)||void 0===d?void 0:d.locale),n.axes&&m("axes",a.deepIsEqual)&&e.setAxes(n.axes),n.scales&&m("scales",a.deepIsEqual)&&e.setScales(n.scales);Boolean(n.series)&&function(e,t){if(e.length!==(null===t||void 0===t?void 0:t.length))return!0;const n=new Map,i=new Map;return e.forEach((e=>{n.set(e.id,e)})),t.forEach((e=>{i.set(e.id,e)})),!(!t.some((e=>{let{id:t}=e;return!n.has(t)}))&&!e.some((e=>{let{id:t}=e;return!i.has(t)})))}(e.config.series,n.series)&&(t.redrawLegend=!0),(n.series||n.timeline)&&e.setSeries(null!==(h=n.timeline)&&void 0!==h?h:e.config.timeline,null!==(f=n.series)&&void 0!==f?f:e.config.series,{incremental:!1}),n.tooltip&&m("tooltip")&&(null===(p=e.plugins.tooltip)||void 0===p||p.updateOptions(n.tooltip)),n.legend&&m("legend")&&(t.reinit=!0),null===(g=e.plugins.tooltip)||void 0===g||g.reset(),t.reopt=!0,e.config={...e.config,...n}}function u(e,t,n){let i,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{incremental:!0,splice:!1},s=[],r=[],a=null,c=!1,u=!1;if(["number","string"].includes(typeof t)?(c=!1,i=!1,r=[n],a=t):"number"===typeof t[0]?(s=t,r=n,c=Boolean(o.incremental),i=!o.incremental):(r=t,i=!0),this.isEmpty&&r.some((e=>{let{data:t}=e;return null===t||void 0===t?void 0:t.length})))e.reinit=!0;else{if(!1===i){let t=!1;if(c&&this.config.timeline.push(...s),r.forEach((n=>{var i,o;let s="number"===typeof a?this.config.series[0]:this.config.series.find((e=>{let{id:t}=e;return t===n.id||t===a})),r=null===s||void 0===s?void 0:s.id;if("number"===typeof a&&this.state.y2uIdx[a]&&(s=this.config.series[a],r=a),s&&r){const{data:a,...d}=n,h=this.state.y2uIdx[r];"dots"!==s.type&&"dots"!==n.type&&"dots"!==(null===(i=this.config.chart.series)||void 0===i?void 0:i.type)||(e.reinit=!0),c?s.data=a?s.data.concat(a):s.data:(null===a||void 0===a?void 0:a.length)&&(s.data=a,u=!0);const f=(0,l.configureSeries)(this,Object.assign(s,d),h),p=this.options.series[h],g=this.uplot.series[h];g.show!==f.show&&e.fns.push((()=>{this.uplot.setSeries(h,{show:f.show})})),null!==g._focus&&g._focus===f.focus||e.fns.push((()=>{this.uplot.setSeries(h,{focus:f.focus})})),g.color!==f.color&&(t=!0),f.scale&&(null===(o=this.config.scales[f.scale])||void 0===o?void 0:o.stacking)&&(u=!0),(0,l.overrideSeriesInUpdate)(p,f),(0,l.overrideSeriesInUpdate)(g,f)}else e.fns.push((()=>{const e=(0,l.configureSeries)(this,n,this.config.series.length);this.state.y2uIdx[e.id]=this.uplot.series.length,this.uplot.addSeries(e,this.config.series.length)})),this.config.series.push(n)})),t&&e.fns.push((()=>{var e;null===(e=this.plugins.cursor)||void 0===e||e.updatePoints()})),o.splice){const e=r[0].data.length;this.config.series.forEach((t=>{t.data.splice(0,e)})),this.config.timeline.splice(0,s.length)}}else this.config.timeline=s,this.config.series=r,e.reinit=!0;e.reinit||(this._batch.fns.push((()=>{var e,t;return null===(t=null===(e=this.plugins)||void 0===e?void 0:e.tooltip)||void 0===t?void 0:t.reset()})),(u||s.length)&&(e.recalc=!0,e.fns.push((()=>{this.uplot.setData(this.series)}))))}}t.DynamicUpdatesMixin=class{setLocale(e){this.batch((t=>function(e,t,n){e.utils.i18n=(0,o.default)(n),t.redrawLegend=!0}(this,t,e)))}setTitle(e){this.batch((t=>{this.config.title=e,this.initTitle(),t.redraw=[!0,!0]}))}setTheme(e){this.batch((t=>function(e,t,n){e.utils.theme.setTheme(t);const i=["light","light-hc","dark","dark-hc"].map((e=>"yagr_theme_".concat(e)));e.root.classList.remove(...i),e.root.classList.add("yagr_theme_"+t),n.redraw=[!1,!0]}(this,e,t)))}setAxes(e){this.batch((t=>function(e,t,n){const{x:i,...o}=n;if(i){const t=e.uplot.axes.find((e=>{let{scale:t}=e;return t===s.DEFAULT_X_SCALE}));t&&(0,r.updateAxis)(e,t,{scale:s.DEFAULT_X_SCALE,...i})}Object.entries(o).forEach((t=>{let[n,i]=t;const o=e.uplot.axes.find((e=>{let{scale:t}=e;return t===n}));o&&(0,r.updateAxis)(e,o,{scale:n,...i})})),t.redraw=(0,r.getRedrawOptionsForAxesUpdate)(n)}(this,t,e)))}setSeries(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{incremental:!0,splice:!1};this.batch((i=>u.call(this,i,e,t,n)))}setFocus(e,t){this.batch((()=>function(e,t,n){var i;const o=null===t?null:e.state.y2uIdx[t];null===(i=e.plugins.cursor)||void 0===i||i.focus(o,n),e.uplot.setSeries(o,{focus:n})}(this,e,t)))}setVisible(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];this.batch((i=>function(e,t,n,i,o){const l=null===t?null:e.state.y2uIdx[t];(null===t?e.config.series:[e.config.series.find((e=>{let{id:n}=e;return n===t}))]).forEach((e=>{e&&(e.show=n)})),o.fns.push((()=>{e.uplot.setSeries(l,{show:n})})),e.options.series=e.uplot.series;let r=!1;if(l){const t=e.uplot.series[l];t.show=n;const i=t.scale||s.DEFAULT_Y_SCALE,o=e.config.scales[i];r=Boolean(o&&o.stacking)}else r=e.options.series.reduce(((t,i)=>{var o;const{scale:s}=i;return i.show=n,Boolean(s&&(null===(o=e.config.scales[s])||void 0===o?void 0:o.stacking)||t)}),!1);r&&(o.recalc=!0,o.fns.push((()=>{var t;e.uplot.setData(e.series,!0),i&&(null===(t=e.plugins.legend)||void 0===t||t.update())})))}(this,e,t,n,i)))}setScales(e){this.batch((t=>function(e,t,n){let i=!1,o=!1;Object.entries(t).forEach((t=>{let[n,s]=t;const l=e.config.scales[n];if(l){const{stacking:e}=l,{stacking:t}=s;e!==t&&(i=!0),s.normalize===l.normalize&&s.normalizeBase===l.normalizeBase||(o=!0)}}));const l=Object.entries(t).every((t=>{let[n,i]=t;const o=e.config.scales[n],{min:s,max:l,...r}=o,{min:c,max:u,...d}=i;return!(!1===(0,a.deepIsEqual)(d,r))&&(s!==c||l!==u)})),r=Object.keys(t).includes(s.DEFAULT_X_SCALE);if(l&&!r)return Object.entries(t).forEach((t=>{let[i,o]=t;n.fns.push((()=>{e.uplot.setScale(i,{min:o.min,max:o.max})}))}));(i||o)&&(n.reinit=!0),e.config.scales=t,n.reinit=!0}(this,e,t)))}setConfig(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.batch((n=>c(this,n,e,t)))}}},24908:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TransformSeriesMixin=void 0;const i=n(9084),o=n(36098);t.TransformSeriesMixin=class{transformSeries(){const e=performance.now(),t=[],n=this.config,s=n.timeline;let l=n.processing||!1,r=this.config.series.map((e=>{let{data:t}=e;return t}));l&&l.interpolation&&(r=(0,o.preprocess)(r,s,l),l=!1);const a=Boolean(l&&l.nullValues),c=l&&l.nullValues||{},u={};for(let d=0;d<r.length;d++){let e=[];const n=d+1,l=r[d],h=this.options.series.length-n,f=this.options.series[h],p=f.scale||i.DEFAULT_Y_SCALE,g=this.config.scales[p]||{},m=g.stacking,_=f.stackGroup||0;let v=!0;m&&!u[p]&&(this.options.focus=this.options.focus||{alpha:1.1},this.options.focus.alpha=1.1,u[p]=[]),m&&!u[p][_]&&(u[p][_]=new Array(s.length).fill(0)),f.count=0;for(let t=0;t<l.length;t++){let n=l[t];if(a&&c[String(n)]&&(n=null),f.transform&&(f._transformed=!0,n=f.transform(n,r,t)),g.transform&&(f._transformed=!0,n=g.transform(n,r,t)),null===n){if("line"===f.type||"dots"===f.type){e.push(null);continue}n=m?0:null}if(v=!1,g.normalize){const e=(0,o.getSumByIdx)(this.options.series,t,p);n=e&&(null!==n&&void 0!==n?n:0)/e*(g.normalizeBase||100),f.normalizedData=f.normalizedData||[],f.normalizedData[t]=n}g.stacking&&(!1===f.show&&(n=0),n=u[p][_][t]+=null!==n&&void 0!==n?n:0),"logarithmic"===g.type&&0===n&&(n=1),f.sum=(f.sum||0)+(n||0);"number"===typeof f.$c[t]&&(f.count+=1),e.push(n)}f.avg=(f.sum||0)/f.count,f.empty=v,f.postProcess&&(e=f.postProcess(e,d,this)),t.unshift(e)}return t.unshift(this.config.timeline),this.series=t,this.execHooks("processed",{chart:this,meta:{processTime:performance.now()-e}}),this.series}}},87163:function(e,t,n){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.cursorPoint=void 0;const o=n(9084),s=i(n(50934)),l=n(36098),r=50;function a(e,t,n){if(n||(n=t.querySelector("span")),!n)return;t.style.background="".concat(e.color),n.style.background=e.color||o.SERIE_COLOR;const i=s.default.parseRgba(e.color)||[256,256,256,0];t.style.boxShadow="0px 0px 0px 1px rgba(".concat(i[0],", ").concat(i[1],", ").concat(i[2],", 0.5)")}function c(e,t){const n=e.series[t],i=(0,l.html)("span"),o=(0,l.html)("div",{class:"yagr-point","data-idx":String(t)},n.empty?void 0:i);return n.empty?(o.style.display="none",o):(a(n,o,i),o)}function u(e,t){return void 0===t?Array.from(e.querySelectorAll(".yagr-point")):[e.querySelector('.yagr-point[data-idx="'.concat(t,'"]'))]}t.cursorPoint=c,t.default=function(e,t){var n,i,s;const d=e.config.processing||{},h=Boolean(d.interpolation),f=null===(n=d.interpolation)||void 0===n?void 0:n.value,p=!1!==t.snapToValues&&(t.snapToValues||"closest"),g=!!h&&(null!==(s=null===(i=d.interpolation)||void 0===i?void 0:i.snapToValues)&&void 0!==s?s:"closest");let m={};const _=(e,t,n)=>{const i=e.series[t];if(i.scale===o.DEFAULT_X_SCALE)return n;const s=i.$c||e.data[t],r=s[n];return h&&r===f?(0,l.findDataIdx)(s,i,n,g,f):null===r?(0,l.findDataIdx)(s,i,n,p,null):n};return{showPoints:t=>{const n=e.uplot.over;if(!n)return;u(n,t).forEach((e=>{e.style.visibility="visible"}))},hidePoints:t=>{const n=e.uplot.over;if(!n)return;u(n,t).forEach((e=>{e.style.visibility="hidden"}))},pin:t=>{var n;const i=e.root.querySelector(".u-over");if(i)if(t){const e=document.createElement("div");e.classList.add("yagr-points-holder"),i.querySelectorAll(".yagr-point").forEach((t=>{const n=t.cloneNode(!0);e.appendChild(n);const i=n.dataset.idx;i&&(m[i]=n)})),i.appendChild(e)}else m={},null===(n=i.querySelector(".yagr-points-holder"))||void 0===n||n.remove()},updatePoints:()=>{e.root.querySelectorAll(".yagr-point").forEach((t=>{const n=Number(t.dataset.idx);if(isNaN(n))return;a(e.uplot.series[n],t)}))},focus:(e,t)=>{Object.entries(m).forEach((n=>{let[i,o]=n;o.style.display=null!==e?i===String(e)&&t?"block":"none":t?"block":"none"}))},uplot:{opts:(e,n)=>{var i;n.cursor=n.cursor||{};const s=n.series.filter((e=>e.empty)).length,l=n.series.length-1,a=null!==(i=null===t||void 0===t?void 0:t.maxMarkers)&&void 0!==i?i:r;n.cursor.points={show:l-s<=a&&c,size:(e,n)=>{const i=e.series[n];return(i.cursorOptions?i.cursorOptions.markersSize:null===t||void 0===t?void 0:t.markersSize)||o.MARKER_DIAMETER}},n.cursor.dataIdx=_},hooks:{...t.hideMarkers&&{setCursor:n=>{var i,o;const s=n.cursor.idx;if(!(0,l.isNil)(s))for(let l=1;l<n.series.length;l++){const r=n.series[l].$c[s];t.hideMarkers(r,l)?null===(i=e.plugins.cursor)||void 0===i||i.hidePoints(l):null===(o=e.plugins.cursor)||void 0===o||o.showPoints(l)}}},init:e=>{const n=e.root.querySelector(".u-cursor-x");n&&(t.x&&!1===t.x.visible&&(n.style.display="none"),n.style.borderRight=t.x&&t.x.style||o.CURSOR_STYLE);const i=e.root.querySelector(".u-cursor-y");i&&(t.y&&!1!==t.y.visible?i.style.borderBottom=t.y.style||o.CURSOR_STYLE:i.style.display="none")}}}}}},6063:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.hasOneVisibleLine=void 0;const i=n(9084),o=n(36098),s=n(540),l="null";t.hasOneVisibleLine=e=>e.some((e=>{let{show:t,id:n}=e;return n!==i.DEFAULT_X_SERIE_NAME&&t}));const r=(e,n)=>n.length>3&&e((0,t.hasOneVisibleLine)(n)?"hide-all":"show-all");t.default=class{constructor(){this.pagesCount=0,this.state={page:0,pages:1,pageSize:0,rowsPerPage:1,paginated:!1,requiredSpace:0,totalSpace:0},this.itemsHtml="",this.preInit=(e,t,n)=>{this.yagr=e,this.options=Object.assign({show:!1,position:"bottom",fontSize:12,maxLegendSpace:.3,className:void 0,behaviour:"basic"},t||{}),this.calc(n)},this.init=e=>{var t;this.options.show&&(this.uplot=e,null===(t=e.root.querySelector(".u-legend"))||void 0===t||t.remove(),this.render())},this.update=()=>{this.yagr.root.querySelectorAll("[data-serie-id]").forEach((e=>{var t,n;const i=e.getAttribute("data-serie-id");if(!i||i===l)return;const o=null===(n=null===(t=this.uplot)||void 0===t?void 0:t.series[this.yagr.state.y2uIdx[i]])||void 0===n?void 0:n.show;e.classList[o?"remove":"add"]("yagr-legend__item_hidden")}))},this.measureLegend=e=>{const t=this.yagr.root,n=(0,o.html)("div",{class:"yagr-legend",style:{visibility:"hidden"}},e);t.appendChild(n);const i=n.childNodes[0].getBoundingClientRect();return n.remove(),i},this.nextPage=()=>{const{state:e}=this;this.state.page+=1,this.items&&(this.items.style.transform="translate(0, ".concat(-1*e.page*e.pageSize,"px)"),this.renderPagination())},this.prevPage=()=>{const{state:e}=this;this.state.page-=1,this.items&&(this.items.style.transform="translate(0, ".concat(-1*e.page*e.pageSize,"px)"),this.renderPagination())}}redraw(){this.options.show&&this.render()}destroy(){var e;this._onDestroy&&this._onDestroy(),null===(e=this.legendEl)||void 0===e||e.remove()}applyHandlers(){const{yagr:e,uplot:n}=this;if(!n)return()=>{};const i=e.root.querySelectorAll("[data-serie-id]"),o=[],a={basic:i=>()=>{const o=i.getAttribute("data-serie-id"),s=[];if(o===l){const e=!(0,t.hasOneVisibleLine)(n.series);for(let t=1;t<n.series.length;t++)s.push([n.series[t],e])}else{const e=n.series.find((e=>{let{id:t}=e;return t===o}));if(!e)return;s.push([e,!e.show])}s.forEach((t=>{let[n,i]=t;if(n.show===i)return;const o=e.root.querySelector('[data-serie-id="'.concat(n.id,'"]'));e.setVisible(n.id,i,!1),null===o||void 0===o||o.classList[i?"remove":"add"]("yagr-legend__item_hidden")}));const a=e.root.querySelector(".yagr-legend__all-series");if(a){const e=r(this.yagr.utils.i18n,n.series);a.innerHTML=e||""}},extended:i=>{const o=(t,n)=>{const i=e.root.querySelector('[data-serie-id="'.concat(t,'"]'));e.setVisible(t,n,!1),null===i||void 0===i||i.classList[n?"remove":"add"]("yagr-legend__item_hidden")},s=e=>{this.state.startSerieRange=e;const i=n.series.filter((t=>t.id!==e.id)),s=!(0,t.hasOneVisibleLine)(i)&&!1!==e.show;n.series.forEach((t=>{const n=e.id===t.id||s;o(t.id,n)}))},l=e=>{this.state.startSerieRange||(this.state.startSerieRange=n.series[1]);const t=[];n.series.forEach(((n,i)=>{var o;n.id===e.id&&t.push(i),n.id===(null===(o=this.state.startSerieRange)||void 0===o?void 0:o.id)&&t.push(i)})),n.series.forEach(((e,n)=>{const i=n>=t[0]&&n<=t[1];o(e.id,i)}))};return e=>{const t=i.getAttribute("data-serie-id"),r=n.series.find((e=>{let{id:n}=e;return n===t}));r&&(e.preventDefault(),e.ctrlKey||e.metaKey?(e=>{o(e.id,!e.show)})(r):e.shiftKey?l(r):s(r))}}},c=t=>()=>{const n=t.getAttribute("data-serie-id");if(t.classList.contains("yagr-legend__item_hidden")||n===l)return;const i=this.yagr.uplot.series.find((e=>{let{id:t}=e;return t===n}));i&&e.setFocus(i.id,!0)},u=()=>{e.setFocus(null,!0)};i.forEach((e=>{const t=a[this.options.behaviour||"basic"](e),n=c(e);e.addEventListener("click",t),e.addEventListener("mouseenter",n),e.addEventListener("mouseleave",u),e.addEventListener("mousedown",s.preventMouseEvents),o.push((()=>{e.removeEventListener("click",t),e.removeEventListener("mouseenter",n),e.removeEventListener("mouseleave",u),e.removeEventListener("mousedown",s.preventMouseEvents)}))}));const d=()=>o.forEach((e=>e()));return this._onDestroy=d,d}render(){var e,t;let n=!1;const{uplot:i,options:s}=this;if(!i)return;let l=this.yagr.root.querySelector(".yagr-legend");if(l?n=!0:l=(0,o.html)("div",{class:"yagr-legend yagr-legend__".concat(this.options.position," ").concat((null===s||void 0===s?void 0:s.className)||"")}),l){if(n||("top"===s.position?i.root.before(l):null===(e=i.root)||void 0===e||e.after(l)),this.legendEl=l,this.itemsHtml&&!n||this.calc(this.yagr.options),l.innerHTML='<div class="yagr-legend__container" style="height: '.concat(this.state.requiredSpace,'px">').concat(this.itemsHtml,"</div>"),this.items=l.querySelector(".yagr-legend__items"),this.container=l.querySelector(".yagr-legend__container"),this.state.paginated){const e=this.renderPagination();null===(t=this.container)||void 0===t||t.after(e)}else this.items.style.justifyContent="center";this.applyHandlers()}}renderPagination(){const{state:e}=this;let t=this.yagr.root.querySelector(".yagr-legend__pagination");if(t){const e=t.querySelector(".yagr-legend__icon-down"),n=t.querySelector(".yagr-legend__icon-up");e.removeEventListener("click",this.nextPage),n.removeEventListener("click",this.prevPage)}else t=(0,o.html)("div",{class:"yagr-legend__pagination"});const n=0===e.page?"yagr-legend__icon-up_disabled":"",i=e.page===e.pages-1?"yagr-legend__icon-down_disabled":"";t.innerHTML='<span class="yagr-legend__icon-up '.concat(n,'"></span>\n<span class="yagr-legend__pagination-text">').concat(e.page+1,"/").concat(e.pages,'</span>\n<span class="yagr-legend__icon-down ').concat(i,'"></span>');const s=t.querySelector(".yagr-legend__icon-down"),l=t.querySelector(".yagr-legend__icon-up");return i||s.addEventListener("click",this.nextPage),n||l.addEventListener("click",this.prevPage),t}createIconLineElement(e){return(0,o.html)("span",{class:"yagr-legend__icon yagr-legend__icon_".concat(e.type),style:{"background-color":e.color}})}createSerieNameElement(e){const t=(0,o.html)("span");return t.innerText=e.name||"unnamed",t}renderItems(e){const t=r(this.yagr.utils.i18n,e.series),n="extended"!==this.options.behaviour&&(e=>e.length>3&&l||void 0)(e.series),i=n?[n]:[];for(let s=1;s<e.series.length;s++)i.push(e.series[s]);const o=i.map((e=>{let i,o,s=" ";if(e===l)i=t,o=n,s=" yagr-legend__all-series ";else{o=e.id;const t=this.createIconLineElement(e),n=this.createSerieNameElement(e);i="".concat(t.outerHTML).concat(n.outerHTML)}const r="string"===typeof e||!1!==e.show;return'<div class="yagr-legend__item'.concat(s).concat(r?"":"yagr-legend__item_hidden",'" data-serie-id="').concat(o,'">').concat(i,"</div>")})).join("");return'<div class="yagr-legend__items">'.concat(o,"</div>")}calc(e){if(!this.options.show)return;const t=e.height-this.VERTICAL_PADDING,n=this.renderItems(e),{height:i}=this.measureLegend(n),o=this.options.fontSize+2,s=t*this.options.maxLegendSpace,l=Math.floor(s/o),r=l-1,a=Math.min(r*o,s),c=Math.min(l*o,s),u=i>a&&a>0,d=Math.min(u?c:a,i),h=Math.ceil(i/a),f=u?this.VERTICAL_PADDING+18:this.VERTICAL_PADDING;this.state.requiredSpace=d,this.state.totalSpace=d+f,this.state.paginated=u,this.state.page=this.state.page||0,this.state.pages=h,this.state.pageSize=a,this.state.rowsPerPage=l,this.itemsHtml=n}get VERTICAL_PADDING(){return"bottom"===this.options.position?20:48}}},5613:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.drawMarkersIfRequired=t.renderCircle=void 0;const i=n(9084),o=n(36098);t.renderCircle=(e,t,n,o,s,l,r,a)=>{const{ctx:c}=e,u=Math.round(e.valToPos(t,i.DEFAULT_X_SCALE,!0)),d=Math.round(e.valToPos(n,a||i.DEFAULT_Y_SCALE,!0));if(c.beginPath(),c.arc(u,d,2*o,0,2*Math.PI),c.fillStyle=l,s){const e=c.lineWidth,t=c.strokeStyle;c.lineWidth=s,c.strokeStyle=r,c.stroke(),c.lineWidth=e,c.strokeStyle=t}c.fill(),c.closePath()},t.drawMarkersIfRequired=function(e,n,s,l){const{color:r,scale:a,spanGaps:c,count:u,pointsSize:d}=e.series[n];if(c&&u>1)return!1;let h,f=s;for(;f<=l;){const s=e.data[n][f];if(null===s){h=s,f++;continue}const l=f+1,c=e.data[n][l];(0,o.isNil)(h)&&(0,o.isNil)(c)&&(0,t.renderCircle)(e,e.data[0][f],s,null!==d&&void 0!==d?d:i.DEFAULT_POINT_SIZE/2,0,r,r,a||i.DEFAULT_Y_SCALE),h=s,f++}},t.default=function(e,n){var o;const{size:s=i.DEFAULT_POINT_SIZE,strokeWidth:l=2,strokeColor:r="#ffffff",show:a}=n.markers,c=null===(o=n.chart)||void 0===o?void 0:o.series,u=(null===c||void 0===c?void 0:c.pointsSize)||i.DEFAULT_POINT_SIZE;function d(n,o,c,d){const{scale:h,_focus:f,color:p,getFocusedColor:g,type:m}=n.series[o];let _=c;const v="dots"===m?a?s:u:s;for(;_<=d;){const s=n.data[o][_];null!==s&&(0,t.renderCircle)(n,n.data[0][_],s,v,l,(f||null===f?p:g(e,o))||p,r,h||i.DEFAULT_Y_SCALE),_++}}const h=(e,t)=>{0!==e&&null!==e&&("dots"===t.type||n.markers.show)&&(t.points=t.points||{},t.points.show=d)};return{opts:(e,t)=>{(n.markers.show||t.series.some((e=>"dots"===e.type)))&&t.series.forEach(((e,t)=>h(t,e)))},hooks:{addSeries:(e,t)=>{const n=e.series[t];h(t,n)},setSeries:(e,t,n)=>{h(t,n)}}}}},20315:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const i=n(9084),o=n(61579),s=n(36098),l=0,r={[o.DrawOrderKey.Series]:0,[o.DrawOrderKey.Axes]:1,plotLines:2};function a(e,t){return e.some((e=>(0,s.deepIsEqual)(e,t)))}const c={"012":"draw",102:"draw",201:"drawClear",210:"drawClear",120:"drawAxes","021":"drawSeries"};t.default=function(e){let t=[];return function(n){var o;const s=null===(o=n.config.chart.appearance)||void 0===o?void 0:o.drawOrder,u=(s?s.map((e=>r[e])):[0,1,2]).join(""),d=c[u]||"drawClear";function h(o){const{ctx:s}=o,{height:r,top:a,width:c,left:u}=o.bbox,d=o.data[0];for(const h of t){if(!h.scale)continue;if(e.render){e.render(o,h);continue}s.save(),s.fillStyle=n.utils.colors.parse(h.color);const{scale:t,value:f}=h;if(Array.isArray(f)){const[e,n]=f.map((e=>{if(Math.abs(e)!==1/0){if(t===i.DEFAULT_X_SCALE){if(e<d[0])return d[0];if(e>d[d.length-1])return d[d.length-1]}else{const n=o.scales[t];if(void 0!==n.min&&e<n.min)return n.min;if(void 0!==n.max&&e>n.max)return n.max}return e}const n=e>0?t===i.DEFAULT_X_SCALE?o.width:0:t===i.DEFAULT_X_SCALE?0:o.height;return o.posToVal(n,t)})),l=o.valToPos(e,t,!0),p=o.valToPos(n,t,!0),g=h.accent;t===i.DEFAULT_X_SCALE?(s.fillRect(l,a,p-l,r),g&&(s.fillStyle=g.color,s.fillRect(l,a-g.space,p-l,g.space))):(s.fillRect(u,l,c,p-l),g&&(s.fillStyle=g.color,s.fillRect(c+u,l,g.space,p-l)))}else{const e=o.valToPos(f,t,!0),n=h;if(s.beginPath(),t===i.DEFAULT_X_SCALE){const n=o.data[0][o.data[0].length-1];if(e-o.valToPos(n,t,!0)>l)continue;s.moveTo(e,a),s.lineTo(e,r+a)}else s.moveTo(u,e),s.lineTo(c+u,e);s.lineWidth=n.width||i.DEFAULT_CANVAS_PIXEL_RATIO,s.strokeStyle=n.color||"#000",n.dash&&s.setLineDash(n.dash),s.closePath(),s.stroke()}s.restore()}}const f={get:()=>t,clear:e=>{t=e?t.filter((t=>t.scale!==e)):[]},remove:e=>{t=t.filter((t=>!a(e,t)))},add:(e,n)=>{for(const i of e)t.push(n?{scale:n,...i}:i)},update:(e,n)=>{if(!e||0===e.length)return void f.clear(n);const i=e.filter((e=>!a(t,e))),o=t.filter((t=>!a(e,t)));i.length&&f.add(i,n),o.length&&f.remove(o)},uplot:{opts:()=>{const e=n.config;t=[],Object.entries(e.axes).forEach((e=>{let[n,i]=e;i.plotLines&&i.plotLines.forEach((e=>{t.push({...e,scale:n})}))}))},hooks:{[d]:"drawSeries"===d?(e,t)=>{t===e.series.length-1&&h(e)}:h}}};return f}}},43287:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const i=n(36098),o={size:["height","width"],clientSize:["clientHeight","clientWidth"],offsetSize:["offsetHeight","offsetWidth"],maxSize:["maxHeight","maxWidth"],before:["top","left"],marginBefore:["marginTop","marginLeft"],after:["bottom","right"],marginAfter:["marginBottom","marginRight"],scrollOffset:["pageYOffset","pageXOffset"],offset:["offsetY","offsetY"],offsetOpt:["yOffset","xOffset"]};function s(e){return{top:e.top,bottom:e.bottom,left:e.left,right:e.right}}t.default=function(e,t){let n,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"bottom",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};n=t instanceof Element||t instanceof Range?s(e.getBoundingClientRect()):t;const a=Object.assign({top:n.bottom||0,bottom:n.top||0,left:n.right||0,right:n.left||0},n),c={top:0,left:0,bottom:window.innerHeight,right:window.innerWidth};r.bound&&((r.bound instanceof Element||r.bound instanceof Range)&&(r.bound=s(r.bound.getBoundingClientRect())),Object.assign(c,r.bound));const u=getComputedStyle(e),{primary:d,secondary:h}=Object.entries(o).reduce(((e,t)=>{let[n,i]=t;return{primary:{...e.primary,[n]:i["top"===l||"bottom"===l?0:1]},secondary:{...e.secondary,[n]:i["top"===l||"bottom"===l?1:0]}}}),{primary:{},secondary:{}});e.style.position="absolute",e.style.maxWidth="",e.style.maxHeight="";const f=r[d.offsetOpt]||0,p=parseInt(u[h.marginBefore],10),g=p+parseInt(u[h.marginAfter],10),m=c[h.after]-c[h.before]-g,_=parseInt(u[h.maxSize],10);(!_||m<_)&&(e.style[h.maxSize]=(0,i.px)(m));const v=parseInt(u[d.marginBefore],10)+parseInt(u[d.marginAfter],10),y=a[d.before]-c[d.before]-v,b=c[d.after]-a[d.after]-v-f;(l===d.before&&e[d.offsetSize]>y||l===d.after&&e[d.offsetSize]>b)&&(l=y>b?d.before:d.after);const w=l===d.before?y:b,E=parseInt(u[d.maxSize],10);(!E||w<E)&&(e.style[d.maxSize]=(0,i.px)(w));const S=window[d.scrollOffset],x=t=>Math.max(c[d.before],Math.min(t,c[d.after]-e[d.offsetSize]-v));l===d.before?(e.style[d.before]=S+x(a[d.before]-e[d.offsetSize]-v)-f+"px",e.style[d.after]="auto"):(e.style[d.before]=(0,i.px)(S+x(a[d.after])+f),e.style[d.after]="auto");const A=window[h.scrollOffset];var T;return e.style[h.before]=(0,i.px)(A+(T=a[h.before]-p,Math.max(c[h.before],Math.min(T,c[h.after]-e[h.offsetSize]-g)))),e.style[h.after]="auto",e.dataset.side=l,{side:l,anchorRect:a,boundRect:c}}},2258:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.renderTooltip=void 0;const i=n(13135);t.renderTooltip=function(e){if(0===e.scales.length)return e.yagr.utils.i18n("nodata");const[t,n]=e.options.title?"string"===typeof e.options.title?[e.options.title,!1]:["",!0]:["",!1],o=e.scales.map((t=>{const o=(0,i.getOptionValue)(e.options.title,t.scale),s=e.scales.length>1?e.options.scales?"".concat((0,i.getOptionValue)(e.options.scales,t.scale)||""):"".concat(e.yagr.utils.i18n("scale"),": ").concat(t.scale):"";return'\n<div class="__section" data-scale='.concat(t.scale,">\n ").concat(n&&o?'<div class="_section_title">'.concat(o,"</div>"):"","\n ").concat(s?'<div class="__section_scale">'.concat(s,"</div>"):"",'\n <div class="__section_body">').concat(function(e,t,n){const o=e.slice(0,(0,i.getOptionValue)(t.maxLines,n));return o.map(((n,o)=>{let{value:s,name:l="unnamed",color:r,active:a,transformed:c,seriesIdx:u}=n;const d='\n<span class="yagr-tooltip__val">'.concat(s,"</span>\n ").concat("number"===typeof c?'<span class="yagr-tooltip__tf">'.concat(c.toFixed(2),"</span>"):"","\n");return'\n<div class="yagr-tooltip__item '.concat(a?"_active":"",'" data-series="').concat(u,'">\n ').concat(t.showIndicies?'<span class="yagr-tooltip__idx">'.concat(e.length-o,"</span>"):"",'\n <span class="yagr-tooltip__mark" style="background-color: ').concat(r,'"></span>').concat((0,i.escapeHTML)(l),"  ").concat(d,"\n</div>")})).join("")+(e.length>o.length?'<div class="yagr-tooltip__item _more">+'.concat(e.length-o.length,"</div>"):"")}(t.rows,e.options,t.scale),"</div>\n ").concat((0,i.getOptionValue)(e.options.sum,t.scale)?'\n <div class="__section_sum">\n '.concat(e.yagr.utils.i18n("sum"),": ").concat(t.sum,"\n </div>\n "):"","\n</div>")}));return"".concat(t?'<div class="__title">'.concat(t,"</div>"):"").concat(o.join(""))}},36558:function(e,t,n){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(n(43287)),s=n(9084),l=n(36098),r=n(2258),a=n(13135),c=(e,t,n,i,o)=>{var s,r,a;const c=Array.isArray(n.$c)?n.$c:t;let u=c[i];if(o&&u===o.value){const e=null!==(s=o.snapToValues)&&void 0!==s?s:"closest";u=c[(0,l.findDataIdx)(c,n,i,e,o.value)]}else if(null===u){const t=null!==(r=e.snapToValues)&&void 0!==r?r:"closest",o=null!==(a=n.snapToValues)&&void 0!==a?a:t;u=c[(0,l.findDataIdx)(c,n,i,o,null)]}return u},u={maxLines:s.TOOLTIP_DEFAULT_MAX_LINES,highlight:!0,sum:!1,render:r.renderTooltip,pinable:!0,strategy:"pin",sort:void 0,showIndicies:!1,hideNoData:!1,className:"yagr-tooltip_default",xOffset:s.TOOLTIP_X_OFFSET,yOffset:s.TOOLTIP_Y_OFFSET,virtual:!1,showEmpty:!1,onUpdate:"reset"};class d{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var n,i;this.handlers={init:[],mount:[],show:[],pin:[],unpin:[],hide:[],render:[],destroy:[],reset:[]},this.placement=o.default,this.renderTooltipCloses=()=>{},this.skipNextMouseUp=!1,this.emit=(e,t)=>{this.handlers[e].forEach((n=>{n(this.tOverlay,{state:this.state,actions:{pin:this.pin,show:this.show,hide:this.hide,dispose:this.dispose,reset:this.reset},data:t,yagr:this.yagr,event:e})}))},this.reset=()=>{var e;"none"!==this.opts.onUpdate?(this.state.visible&&this.hide(),this.state.pinned&&this.pin(!1),this.emit("reset")):null===(e=this.yagr.plugins.cursor)||void 0===e||e.pin(!1)},this.show=()=>{const e=!this.state.visible;this.state.visible=!0,this.tOverlay.style.display="block",e&&this.emit("show")},this.hide=()=>{const e=this.state.visible;this.state.visible=!1,this.tOverlay.style.display="none",this.emit("hide"),e&&this.emit("show")},this.pin=(e,t)=>{var n;this.state.pinned=e;const i=this.state.range||[];if(null===(n=this.yagr.plugins.cursor)||void 0===n||n.pin(e&&(null===i[1]||i.length<2)),this.opts.virtual)return this.emit(e?"pin":"unpin");t&&this.placement(this.tOverlay,{left:t.x+this.bLeft,top:this.bTop+t.y-(this.opts.yOffset||0)},"right",{bound:this.bound,xOffset:this.opts.xOffset,yOffset:this.opts.yOffset});const o=this.tOverlay.querySelector("._tooltip-list");e?(this.state.visible||this.show(),this.tOverlay.classList.add("yagr-tooltip_pinned"),o&&(null===o||void 0===o?void 0:o.clientHeight)&&(o.style.height=(0,l.px)(o.clientHeight)),this.opts.render===r.renderTooltip&&(document.addEventListener("mousemove",this.checkFocus),document.addEventListener("mousedown",this.detectClickOutside))):(this.tOverlay.classList.remove("yagr-tooltip_pinned"),this.opts.render===r.renderTooltip&&(document.removeEventListener("mousemove",this.checkFocus),document.removeEventListener("mousedown",this.detectClickOutside))),this.emit(e?"pin":"unpin")},this.checkFocus=e=>{const t=e.target;let n;t&&this.tOverlay.contains(t)&&t.classList.contains("yagr-tooltip__item")&&(n=t.dataset.series);const i=n?this.yagr.uplot.series[Number(n)]:null;n&&i?(this.state.focusedSeries=n,this.yagr.setFocus(i.id,!0)):this.state.focusedSeries&&(this.state.focusedSeries=null,this.yagr.setFocus(null,!0))},this.render=e=>{const t=this.yagr.uplot;let{left:n,top:i}=e;const{idx:o}=e,{opts:r,state:d}=this;if(r.show&&"function"===typeof r.show&&!1===r.show(this.yagr))return void this.hide();(n<0||i<0)&&!d.pinned&&this.isNotInDrag&&this.hide(),i=(0,l.inBetween)(i,0,t.bbox.top+t.bbox.height),n=(0,l.inBetween)(n,0,t.bbox.left+t.bbox.width);const{data:h}=t;if(null===h||(0,l.isNil)(o)||void 0===i)return;const f=h[0][o],p={},g={},m={};let _=t.series.length-1;for(;_>=1;){const e=t.series[_];if(!e.show){_-=1;continue}const n=e.scale||s.DEFAULT_Y_SCALE;m[n]=m[n]||[],m[n].push(_),_-=1}Object.entries(m).forEach((e=>{let[s,u]=e;var d;g[s]=g[s]||{rows:[]};const h=g[s],f=Number(t.posToVal(i,s).toFixed(2)),m=(0,a.getOptionValue)(r.value,s);for(const n of u){const e=t.data[n],i=t.series[n];let l=c(this.yagr.config.cursor,e,i,o,this.interpolation),u=l;"string"===typeof l&&(u=l,l=null),(0,a.getOptionValue)(r.sum,s)&&(p[s]=p[s]||0,p[s]+=l||0);const f=e[o],g=i.$c&&i.$c[o]===this.stripValue?l:f;if(null===l&&r.hideNoData||!1===i.showInTooltip)continue;const _=null!==(d=i.precision)&&void 0!==d?d:(0,a.getOptionValue)(r.precision,s),v=i.formatter?i.formatter(u,i):m(u,_),y={id:i.id,name:i.name,dataValue:i.$c[o],originalValue:l,value:v,y:g,displayY:f,color:i.color,seriesIdx:n,rowIdx:h.rows.length?h.rows[h.rows.length-1].rowIdx+1:0};i.normalizedData&&(y.transformed=i.normalizedData[o]),i._transformed&&(y.transformed=e[o]),r.omitBy&&r.omitBy(y)||h.rows.push(y)}if((0,a.getOptionValue)(r.highlight,s)&&h.rows.length){const e=(0,a.getOptionValue)(r.tracking,s);let c=0;"area"===e?c=(0,l.findInRange)(h,f,(0,a.getOptionValue)(r.stickToRanges,s)):"sticky"===e?c=(0,l.findSticky)(h,f):"function"===typeof e&&(c=e(h,f,{x:t.posToVal(n,"x"),y:t.posToVal(i,s),idx:o,scale:s,series:this.yagr.series,serieIndicies:u,interpolation:this.interpolation})),null!==c&&(h.rows[c].active=!0)}const _=(0,a.getOptionValue)(r.sort,s);_&&h.rows.sort(_)}));if(!Object.values(g).some((e=>{let{rows:t}=e;return t.length>0}))&&!r.showEmpty)return void this.hide();this.onMouseEnter();const v=this.over.getBoundingClientRect();this.bLeft=v.left,this.bTop=v.top,this.bWidth=v.width;const y={left:n+this.bLeft,top:this.bTop+i-(r.yOffset||0)};this.renderTooltipCloses=()=>{const e={scales:Object.entries(g).map((e=>{let[t,n]=e;return{scale:t,rows:n.rows,sum:p[t]}})),options:r,x:f},t=Object.values(g).some((e=>{let{rows:t}=e;return t.filter((e=>{let{id:t}=e;var n;return null===(n=this.yagr.getSeriesById(t))||void 0===n?void 0:n.show})).length>0}));t||r.showEmpty?(r.virtual||(this.tOverlay.innerHTML=r.render({...e,state:d,yagr:this.yagr,defaultRender:u.render}),this.placement(this.tOverlay,y,"right",{bound:this.bound,xOffset:r.xOffset,yOffset:r.yOffset})),this.emit("render",{...e,anchor:y})):this.hide()},d.pinned||this.renderTooltipCloses()},this.initWithUplot=e=>{this.over=e.root.querySelector(".u-over"),this.over.addEventListener("mousedown",this.onMouseDown),this.over.addEventListener("mousemove",this.onMouseMove),this.over.addEventListener("mouseenter",this.onMouseEnter),this.over.addEventListener("mouseleave",this.onMouseLeave),document.addEventListener("mouseup",this.onMouseUp)},this.setSize=()=>{const e=this.over.getBoundingClientRect();this.bLeft=e.left,this.bTop=e.top},this.dispose=()=>{this.over.removeEventListener("mousedown",this.onMouseDown),this.over.removeEventListener("mousemove",this.onMouseMove),this.over.removeEventListener("mouseenter",this.onMouseEnter),this.over.removeEventListener("mouseleave",this.onMouseLeave),document.removeEventListener("mouseup",this.onMouseUp),document.removeEventListener("mousemove",this.checkFocus),document.removeEventListener("mousedown",this.detectClickOutside),this.tOverlay.remove(),this.state.mounted=!1,this.emit("destroy")},this.updateOptions=e=>{Object.assign(this.opts,e),this.tOverlay.className="yagr-tooltip ".concat(this.opts.className||"")},this.on=(e,t)=>{this.handlers[e].push(t)},this.off=(e,t)=>{this.handlers[e]=this.handlers[e].filter((e=>e!==t))},this.detectClickOutside=e=>{const t=e.target;if(t instanceof Element){const e=t&&this.tOverlay.contains(t),n=t&&this.over.contains(t);e||n||(this.pin(!1),this.hide())}},this.onMouseDown=e=>{this.state.range=[this.getCursorPosition(),null],this.state.pinned&&(this.pin(!1),this.hide(),this.render({left:e.clientX-this.bLeft,top:e.clientY-this.bTop,idx:this.yagr.uplot.posToIdx(e.clientX-this.bLeft)}),this.skipNextMouseUp=!0)},this.onMouseMove=()=>{var e;(null===(e=this.state.range)||void 0===e?void 0:e.length)&&(this.state.range[1]=this.getCursorPosition())},this.setCursorLeaved=e=>{const t=this.over.getBoundingClientRect(),n=e.clientX,i=this.state.range,o=i[0],s=n-t.left>o.clientX,l=this.yagr.config.timeline;let r;s?(i[1]={clientX:this.bWidth,value:this.yagr.uplot.posToVal(this.bWidth,"x"),idx:l.length-1},r=i[1]):(i[1]=i[0],i[0]={clientX:0,value:this.yagr.uplot.posToVal(0,"x"),idx:0},r=i[0]),this.yagr.uplot.setCursor({left:r.clientX,top:e.clientY-t.top})},this.onMouseUp=e=>{if(null===this.state.range)return;const[t]=this.state.range||[];let n;if(n=e.target===this.over?this.getCursorPosition():this.state.range[1],"none"===this.opts.strategy)return;const i=t&&t.clientX===(null===n||void 0===n?void 0:n.clientX),o=t&&t.clientX!==(null===n||void 0===n?void 0:n.clientX),s=this.opts.strategy;(i&&!this.skipNextMouseUp&&"drag"!==s||o&&("all"===s||"drag"===s))&&(this.pin(!this.state.pinned),this.show(),this.renderTooltipCloses()),this.state.range=null,this.skipNextMouseUp=!1},this.onMouseEnter=()=>{this.show()},this.onMouseLeave=e=>{var t;const n=this.state.pinned;(null===(t=this.state.range)||void 0===t?void 0:t[0])&&this.setCursorLeaved(e),!n&&this.isNotInDrag&&this.hide()},this.defaultTooltipValueFormatter=(e,t)=>{const n=this.yagr.config.processing||{};return"string"===typeof e?n.nullValues&&n.nullValues.hasOwnProperty(e)?n.nullValues[e]:"-":"number"===typeof e?e.toFixed("number"===typeof t?t:"number"===typeof this.opts.precision?this.opts.precision:2):"-"},this.getCursorPosition=()=>{const e=this.yagr.uplot.cursor.left;return void 0===e?null:{clientX:e,value:this.yagr.uplot.posToVal(e,"x"),idx:this.yagr.uplot.posToIdx(e)}},this.yagr=e,this.over=null===(n=null===e||void 0===e?void 0:e.uplot)||void 0===n?void 0:n.over,this.opts={...u,strategy:t.pinable?"pin":u.strategy,tracking:"area"===(null===(i=e.config.chart.series)||void 0===i?void 0:i.type)?"area":"sticky",value:this.defaultTooltipValueFormatter,...t},this.bound=this.opts.boundClassName&&document.querySelector(this.opts.boundClassName)||document.body,this.renderNode=this.opts.renderClassName&&document.querySelector(this.opts.renderClassName)||document.body,this.tOverlay=document.createElement("div"),this.tOverlay.id="".concat(e.id,"_tooltip"),this.tOverlay.className="yagr-tooltip ".concat(this.opts.className||""),this.tOverlay.style.display="none",this.state={mounted:!1,pinned:!1,visible:!1,range:null,focusedSeries:null},this.bLeft=0,this.bTop=0,this.bWidth=0,this.opts.virtual?this.placement=()=>{}:(this.renderNode.appendChild(this.tOverlay),this.state.mounted=!0,this.emit("mount"))}get interpolation(){var e;return null===(e=this.yagr.config.processing)||void 0===e?void 0:e.interpolation}get stripValue(){return this.interpolation?this.interpolation.value:void 0}get isNotInDrag(){var e;return"none"===this.opts.strategy||"pin"===this.opts.strategy||!(null===(e=this.state.range)||void 0===e?void 0:e[1])}}t.default=function(e){const t=new d(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),n=()=>({hooks:{init:e=>{t.initWithUplot(e)},setSize:()=>{t.setSize()},setCursor:e=>{t.render(e.cursor)}}}),i=n();return{state:t.state,pin:t.pin,show:t.show,hide:t.hide,uplot:i,display:t.render,updateOptions:t.updateOptions,on:t.on,off:t.off,tooltip:t,dispose:t.dispose,reInit:function(e){const i=n();t.reset(),e.hooks.init.push(i.hooks.init),e.hooks.setSize.push(i.hooks.setSize),e.hooks.setCursor.push(i.hooks.setCursor)},reset:t.reset}}},78612:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},13135:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.escapeHTML=t.getOptionValue=void 0,t.getOptionValue=function(e,t){return"object"===typeof e?e[t]:e},t.escapeHTML=function(e){const t=document.createElement("span");return t.innerText=e,t.innerHTML}},33481:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6883:function(e,t,n){var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(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)&&i(t,e,n);return o(t,e),t},l=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.configureAxes=t.updateAxis=t.getRedrawOptionsForAxesUpdate=t.getTimeFormatter=t.getDefaultNumberFormatter=t.getAxisPositioning=void 0;const r=l(n(95588)),a=s(n(9084)),c=n(36098),u=n(61579),d={right:u.Axis.Side.Right,top:u.Axis.Side.Top,bottom:u.Axis.Side.Bottom,left:u.Axis.Side.Left},h={left:u.Axis.Align.Right,right:u.Axis.Align.Left,top:void 0,bottom:void 0};t.getAxisPositioning=(e,t)=>({side:e?d[e]:u.Axis.Side.Left,align:t||(e?h[e]:void 0)});t.getDefaultNumberFormatter=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return n=>{if((0,c.isNil)(n))return t;if(0===n)return"0";const i=Math.abs(n),o="auto"===e?2:e,[s,l]=(0,c.getUnitSuffix)(i),r=n/s;return("auto"===e?String(r).replace(/\.(\d{5,})/,(e=>e.slice(0,6))):(0,c.toFixed)(r,o))+l}};const f=e=>{const n=e.precision,i=(0,t.getDefaultNumberFormatter)("number"===typeof n?n:n||"auto","");return function(e,t){return t.map(i)}},p=r.default.fmtDate("{DD}.{MM}.{YYYY}"),g=r.default.fmtDate("{HH}:{mm}:{ss}"),m=r.default.fmtDate("{mm}:{ss}"),_=r.default.fmtDate("{mm}:{ss}.{fff}"),v=r.default.fmtDate("{YYYY}");function y(e,t){let n=p;const i=Math.ceil(e/t);return i<=a.SECOND?n=_:i<=a.MINUTE?n=m:i<=a.DAY?n=g:i>=a.YEAR&&(n=v),e=>n(new Date(e))}function b(e,n){var i,o;const s=n.utils.theme,l=n.config,r={splits:e.splitsCount?(u=e.splitsCount,(e,t,n,i)=>{if(u<=2)return[n,i];const o=Math.abs(i-n)/(u-1);let s=o;const l=[];for(;n+s<i;)l.push(n+s),s+=o;return[n,...l,i]}):e.splits,show:"undefined"===typeof e.show||e.show,label:e.label||void 0,labelSize:e.labelSize||a.Y_AXIS_LABEL_SIZE,labelFont:e.labelFont||a.AXIS_LABEL_FONT,font:e.font||a.AXIS_VALUES_FONT,stroke:e.stroke||(()=>s.AXIS_STROKE),ticks:e.ticks?{...s.Y_AXIS_TICKS,...e.ticks}:s.Y_AXIS_TICKS,grid:l.grid||e.grid||s.GRID};var u;return e.scale===a.DEFAULT_X_SCALE?Object.assign(r,{getFormatter:y,gap:null!==(i=e.gap)&&void 0!==i?i:a.X_AXIS_TICK_GAP,size:(0,c.asFn)(e.size)||(()=>a.X_AXIS_SIZE),values:e.values||(0,t.getTimeFormatter)(l),ticks:e.ticks?{...s.X_AXIS_TICKS,...e.ticks}:s.X_AXIS_TICKS,scale:a.DEFAULT_X_SCALE,space:e.space||(()=>a.X_AXIS_SPACE),incrs:e.incrs||(()=>a.X_AXIS_INCRS.map((e=>e*(l.chart.timeMultiplier||a.TIME_MULTIPLIER)))),side:2,stroke:e.stroke||(()=>s.AXIS_STROKE)}):(Object.assign(r,{gap:null!==(o=e.gap)&&void 0!==o?o:a.Y_AXIS_TICK_GAP,size:(0,c.asFn)(e.size)||a.Y_AXIS_SIZE,values:e.values||f(e),scale:e.scale||a.DEFAULT_Y_SCALE,getFormatter:()=>(0,t.getDefaultNumberFormatter)("number"===typeof e.precision?e.precision:e.precision||"auto",""),...(0,t.getAxisPositioning)(e.side||"left",e.align)}),e.space&&(r.space=e.space),r)}function w(e){let t,n;return[e=e.replace(/(\d+)px/,((e,i)=>(0,c.px)(t=Math.round((n=Number(i))*window.devicePixelRatio)))),t,n]}t.getTimeFormatter=e=>{const t=e.chart.timeMultiplier||a.TIME_MULTIPLIER;return(e,n)=>{const i=y((n[n.length-1]-n[0])/t,n.length);return n.map((e=>i(e/t)))}},t.getRedrawOptionsForAxesUpdate=function(e){const t=[!1,!0];return Object.values(e).forEach((e=>{["align","side","size","label","labelFont","labelGap","labelSize"].some((t=>void 0!==e[t]))&&(t[1]=!0)})),t},t.updateAxis=function(e,t,n){var i,o,s;const l=b({...n,font:t.font},e);l.ticks={...t.ticks,...l.ticks},l.grid={...t.grid,...l.grid},l.border={...t.border,...l.border},l.splits=l.splits||t.splits,n.font&&n.font!==(null===(i=t.font)||void 0===i?void 0:i[0])&&(l.font=w(n.font)),n.labelFont&&n.labelFont!==(null===(o=t.labelFont)||void 0===o?void 0:o[0])&&(l.labelFont=w(n.labelFont)),Object.assign(t,l),null===(s=e.plugins.plotLines)||void 0===s||s.update(n.plotLines,n.scale)},t.configureAxes=function(e,t){const n=[];Object.entries(t.axes).forEach((t=>{let[i,o]=t;n.push(b({...o,scale:i},e))}));const i=a.DEFAULT_X_SCALE,o=a.DEFAULT_Y_SCALE;return t.axes[i]||n.push(b({scale:i},e)),n.find((e=>{let{scale:t}=e;return t!==i}))||n.push(b({scale:o},e)),n}},77423:function(e,t,n){var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(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)&&i(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getPaddingByAxes=void 0;const l=s(n(9084));t.getPaddingByAxes=function(e){let t=!1,n=!1;return e.axes?e.axes.forEach((e=>{e.scale!==l.DEFAULT_X_SCALE&&(void 0!==e.side&&3!==e.side||(t=!0),1===e.side&&(n=!0))})):t=!0,t&&!n?l.PADDING_LEFT:n&&!t?l.PADDING_RIGHT:l.PADDING_BOTH}},50934:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getSerieFocusColors=t.getFocusedColor=void 0;const n=[0,0,0,.6];class i{static parseRgba(e){const t=e.match(/rgba?\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,?\s*(\d+\.?\d*)?\s*\)/);return t?[t[1],t[2],t[3],t[4]||1].map(Number):null}parse(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"000";const t=e.startsWith("var(--");let n,i=e,o=!0;const s=this.context,l=s.style.color;return t||e.startsWith("--")?(o=!1,n=t?e.slice(4,-1):e):e.startsWith("#")||e.startsWith("rgb")||(s.style.color=e,n="color",o=!1),i=o?i:getComputedStyle(s).getPropertyValue(n),s.style.color=l,i}setContext(e){this.context=e}rgba(e){return"rgba(".concat(e[0],", ").concat(e[1],", ").concat(e[2],", ").concat(e[3],")")}toRgba(e,t){return i.parseRgba(this.parse(e))||t}shade(e,t){let[n,i,o,s]=e;const l=t<0,r=l?0:255*t,a=l?1+t:1-t;return"rgba("+Math.round(n*a+r)+","+Math.round(i*a+r)+","+Math.round(o*a+r)+","+s+")"}}t.default=i;t.getFocusedColor=(e,t)=>{const o=e.utils.theme.SHIFT,s=e.uplot.series[t],l=i.parseRgba(s.color)||n;return e.utils.colors.shade(l,o)};t.getSerieFocusColors=(e,t)=>(n,i)=>{const o=n.series[i];return!1===o._focus?o.getFocusedColor(e,i):o[t]}},36098:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.inBetween=t.isNil=t.asPlain=t.asFn=t.deepIsEqual=t.get=t.html=t.px=t.debounce=t.exec=t.preprocess=t.genId=t.findDataIdx=t.toFixed=t.getUnitSuffix=t.findSticky=t.getSumByIdx=t.findInRange=void 0;t.findInRange=function(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const i=t>=0;let o=-1/0,s=null,l=1/0,r=null;const a=[];let c=null;for(let u=e.rows.length-1;u>=0;u--){const n=e.rows[u],{displayY:d,rowIdx:h}=n;let f;null!==d&&(d>o&&(o=d,s=n.rowIdx),d<l&&(l=d,r=n.rowIdx)),f=null===d||(i?d<0:d>=0)?null:i?t>d?null:d-t:t<d?null:Math.abs(d-t);const p=null===c?1/0:a[c],g=null===f?p:Math.min(p,f);(null!==f&&p===f||g!==p)&&(c=h)}return null===c&&n?t>=o?s:t<=l?r:null:c};t.getSumByIdx=(e,t,n)=>{let i=0,o=0;for(;o<e.length;){const s=e[e.length-o-1],l=s.$c;if(o+=1,s.scale!==n||!1===s.show)continue;const r=l[t];i+="number"===typeof r?r:0}return i};t.findSticky=(e,t)=>{let n,i,o=0;for(;!i&&o<e.rows.length;){const s=e.rows[o].displayY;null!==s&&(n=o,i=Math.abs(s-(t||0))),o+=1}if(!i||void 0===n)return null;for(o=n+1;o<e.rows.length;o++){const s=e.rows[o].displayY;if(null===s)continue;const l=Math.abs(s-t);i>l&&(i=l,n=o)}return n};t.getUnitSuffix=e=>e>=1e18?[1e18,"E"]:e>=1e15?[1e15,"P"]:e>=1e12?[1e12,"T"]:e>=1e9?[1e9,"G"]:e>=1e6?[1e6,"M"]:e>=1e3?[1e3,"K"]:[1,""],t.toFixed=function(e,t){if(0===t)return parseInt(e);if(Number.isInteger(e))return e+"."+"0".repeat(t);const[n,i]=e.toString().split(".");return i.length>=t?"".concat(n,".").concat(i.slice(0,t)):"".concat(n,".").concat(i).concat("0".repeat(t-i.length))},t.findDataIdx=function(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"closest",o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;var s;let l=n,r=n;const a=null!==(s=t.snapToValues)&&void 0!==s?s:i;if(!1===a)return n;if("left"===a||"closest"===a)for(let c=n-1;c>=0;c--)if(e[c]!==o){l=c;break}if("right"===a||"closest"===a)for(let c=n+1;c<e.length;c++)if(e[c]!==o){r=c;break}return"left"===a?l:"right"===a?r:r-n>n-l?l:r};const n=function(e,t,n,i,o,s,l){let r=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"linear",a=null;const c=e[s];switch(r){case"linear":if(null===t||null===n)return null;a=t+(c-i)*(n-t)/(o-i),(isNaN(a)||Math.abs(a)===1/0)&&(a=null);break;case"previous":a=t;break;case"next":a=n;break;case"left":a=l[l.length-1]===e.length-1||null===n?null:t;break;case"right":a=0===l[0]?null:n;break;case"closest":a=Math.abs(i-e[s])<Math.abs(o-e[s])?t:n;break;default:a=r}return a};t.genId=()=>Math.random().toString(36).substr(2,9).replace(/^\d+/,"");t.preprocess=(e,t,i)=>{const o=[],s=i.nullValues||{},l=i.interpolation;for(let r=0;r<e.length;r++){const i=e[r],a=[];let c,u,d=[],h=null,f=null;for(let e=0;e<i.length;e++){let o=i[e];if(l&&o===l.value)d.push(e);else{if(s[o]&&(o=null),d.length){f=o,u=t[e];for(const e of d)a[e]=n(t,h,f,c||t[0],u||t[t.length-1],e,d,l&&l.type);d=[]}h=o,c=t[e],a.push(o)}}if(f=null,d.length)for(const e of d)a.push(n(t,h,f,c||t[0],u||t[t.length-1],e,d,l&&l.type));o.push(a)}return o};t.exec=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(...n):e},t.debounce=function(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:300;return function(){for(var i=arguments.length,o=new Array(i),s=0;s<i;s++)o[s]=arguments[s];clearTimeout(t),t=setTimeout((()=>e(...o)),n)}};t.px=e=>e+"px";function i(e){return null===e||void 0===e}t.html=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;const i=document.createElement(e);return Object.keys(t).forEach((e=>{const n=t[e];i.setAttribute(e,"object"===typeof n?Object.entries(n).map((e=>{let[t,n]=e;return"".concat(t,":").concat(n)})).join(";"):n)})),n&&("string"===typeof n?i.innerHTML=n:i.appendChild(n)),i},t.get=function(e,t){return t.split(".").reduce(((e,t)=>{var n,i;return null!==(i=null===(n=Object.getOwnPropertyDescriptor(e,t))||void 0===n?void 0:n.value)&&void 0!==i?i:{}}),e)},t.deepIsEqual=function e(t,n){if(typeof t!==typeof n)return!1;if("function"!==typeof t&&"function"!==typeof n||(t=t.toString(),n=n.toString()),"object"!==typeof t||i(t)||i(n))return t===n;const o=t,s=n,l=Object.keys(o),r=Object.keys(s);if(l.length!==r.length)return!1;for(const i of l){if(!s.hasOwnProperty(i))return!1;if(!e(o[i],s[i]))return!1}return!0},t.asFn=function(e){return"function"===typeof e||"undefined"===typeof e?e:()=>e},t.asPlain=function(e){return"function"===typeof e?e():e},t.isNil=i,t.inBetween=function(e,t,n){return e>=t&&e<=n?e:e<t?t:n}},540:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.preventMouseEvents=void 0;t.preventMouseEvents=e=>e.preventDefault()},28797:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.applyMixins=void 0,t.applyMixins=function(e,t){const n=[];t.forEach((t=>{Object.getOwnPropertyNames(t.prototype).forEach((n=>{Object.defineProperty(e.prototype,n,Object.getOwnPropertyDescriptor(t.prototype,n)||Object.create(null))})),t.prototype.initMixin&&n.push(t.prototype.initMixin)})),e.prototype.initMixins=function(){n.forEach((e=>e.call(this)))}}},67807:function(e,t,n){var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(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)&&i(t,e,n);return o(t,e),t},l=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.pathsRenderer=void 0;const r=l(n(95588)),a=s(n(9084));t.pathsRenderer=function(e,t,n,i){const o=e.series[t],{type:s,interpolation:l}=o;let c;switch(s){case"column":c=r.default.paths.bars&&r.default.paths.bars({size:[a.BARS_DRAW_FACTOR,a.BARS_DRAW_MAX],...e.series[t].renderOptions||{}});break;case"dots":c=()=>null;break;default:switch(l){case"smooth":c=r.default.paths.spline&&r.default.paths.spline();break;case"left":c=r.default.paths.stepped&&r.default.paths.stepped({align:1});break;case"right":c=r.default.paths.stepped&&r.default.paths.stepped({align:-1});break;default:c=r.default.paths.linear&&r.default.paths.linear()}}return c?c(e,t,n,i):null}},25009:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.configureScales=t.niceScale=t.offsetScale=t.getScaleRange=void 0;const i=n(9084),o=n(61579);function s(e,t,n){const o=e>=0&&n.stacking,s=t<=0&&n.stacking;return{min:o?0:Math.round(e-Math.abs(e)*(n.offset||i.DEFAULT_Y_AXIS_OFFSET)),max:s?0:Math.round(t+Math.abs(t)*(n.offset||i.DEFAULT_Y_AXIS_OFFSET))}}function l(e,t,n){const o=e>=0&&n.stacking,s=t<=0&&n.stacking?0:"number"===typeof n.max?n.max:t,l=o?0:"number"===typeof n.min?n.min:e;if(l===s)return l>=0?{min:l,max:l+2}:{min:l-1,max:l+1};const a=r(s-l,!1),c=r(a/(i.DEFAULT_MAX_TICKS-1),!0);let u=Math.ceil(s/c)*c;u=isNaN(u)?100:u;let d=(o?Math.min(0,l):Math.floor(l/c)*c)||0;return d===u&&(d-=1,u+=1),{min:d,max:u}}function r(e,t){const n=Math.floor(Math.log10(e)),i=e/10**n;return(t?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*10**n}t.getScaleRange=(e,t)=>{const n=e.range;if("function"===typeof n)return(e,i,o)=>n(e,i,o,t);if(e.normalize)return[0,e.normalizeBase||100];if("auto"===e.range)return;let o;switch(e.range){case void 0:case"nice":o=l;break;case"offset":o=s;break;default:throw new Error("Unknown scale range type ".concat(e.range))}return(n,s,l)=>{let{min:a,max:c}=o(s,l,e,t);const u=e.minRange||i.DEFAULT_SCALE_MIN_RANGE;if(Math.abs(c-a)<u&&(a>=0?c+=u:(c+=u/2,a-=u/2)),a="number"===typeof e.min?e.min:a,c="number"===typeof e.max?e.max:c,"logarithmic"===e.type){const t="number"===typeof e.min;a<=0?a=i.DEFAULT_LOGARITHMIC_MIN_SCALE_VALUE:t||(a=Math.min(a,i.DEFAULT_LOGARITHMIC_MIN_SCALE_VALUE))}return(a>=c||c<=a)&&("number"===typeof e.max?a=c-(r(c-.1*c,!1)||1):c=a+(r(a+.1*a,!1)||1)),[a,c]}},t.offsetScale=s,t.niceScale=l,t.configureScales=function(e,n,s){const l=s.scales?{...s.scales}:{};return Object.keys(s.scales).length||(l.y={}),Object.entries(l).forEach((l=>{let[r,a]=l;n[r]=n[r]||{};const c=n[r];if(r===i.DEFAULT_X_SCALE)return;const u="number"===typeof a.min?a.min:null,d="number"===typeof a.max?a.max:null;if(null!==d&&null!==u){if(d<=u)throw new Error("Invalid scale config. .max should be > .min");c.range=[u,d]}const h="logarithmic"===a.type;if(h)return c.distr=o.Scale.Distr.Logarithmic,void(c.range=(0,t.getScaleRange)(a,s));e.isEmpty?c.range=[null===u?h?1:0:u,null===d?100:d]:c.range=(0,t.getScaleRange)(a,s)})),n.x||(n.x={time:!0}),n}},36374:function(e,t,n){var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(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)&&i(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.overrideSeriesInUpdate=t.configureSeries=void 0;const l=s(n(9084)),r=n(36098),a=n(50934),c=n(5613),u=n(67807);function d(e,t,n,i){if(void 0!==e[n])return e[n];const o=t.config.chart.series;return o&&n in o?o[n]:i}t.configureSeries=function(e,t,n){var i,o;const s=d(t,e,"type","line"),h={...t,type:s,show:null===(i=t.show)||void 0===i||i,name:t.name||"".concat(e.utils.i18n("series")," ").concat(n+1),color:t.color?e.utils.colors.parse(t.color):e.utils.theme.DEFAULT_LINE_COLOR,id:(void 0===t.id?t.name:String(t.id))||(0,r.genId)(),$c:t.data,scale:t.scale||l.DEFAULT_Y_SCALE,count:0,sum:0,avg:0,getFocusedColor:a.getFocusedColor};h.points=h.points||{};const f=(0,a.getSerieFocusColors)(e,"color");return"area"===h.type&&(h.lineColor=e.utils.colors.parse(d(t,e,"lineColor",l.SERIE_AREA_BORDER_COLOR)),h.lineWidth=d(t,e,"lineWidth",l.SERIE_AREA_BORDER_WIDTH),h.fill=f,h.stroke=(0,a.getSerieFocusColors)(e,"lineColor"),h.width=h.lineWidth,h.points.show=c.drawMarkersIfRequired,h.interpolation=d(t,e,"interpolation","linear"),h.spanGaps=d(t,e,"spanGaps",!1)),"line"===h.type&&(h.width=d(t,e,"width",l.SERIE_LINE_WIDTH),h.width=h.width||l.SERIE_LINE_WIDTH,h.stroke=f,h.points.show=c.drawMarkersIfRequired,h.interpolation=d(t,e,"interpolation","linear"),h.spanGaps=d(t,e,"spanGaps",!1)),"column"===h.type&&(h.stroke=f,h.fill=f,h.points.show=!1,h.width=null!==(o=h.width)&&void 0!==o?o:0,h.renderOptions=d(h,e,"renderOptions")),"dots"===h.type&&(h.stroke=()=>h.color,h.fill=f,h.width=2,h.pointsSize=d(h,e,"pointsSize",l.DEFAULT_POINT_SIZE)),h.paths=u.pathsRenderer,h};t.overrideSeriesInUpdate=(e,t)=>{var n,i,o,s,l,r,a,c,u,d,h,f;e.$c=null!==(n=t.$c)&&void 0!==n?n:e.$c,e.show=null!==(i=t.show)&&void 0!==i?i:e.show,e.data=null!==(o=t.data)&&void 0!==o?o:e.data,e.width=null!==(s=t.width)&&void 0!==s?s:e.width,e.pointsSize=null!==(l=t.pointsSize)&&void 0!==l?l:e.pointsSize,e.color=null!==(r=t.color)&&void 0!==r?r:e.color,e.lineColor=null!==(a=t.lineColor)&&void 0!==a?a:e.lineColor,e.lineWidth=null!==(c=t.lineWidth)&&void 0!==c?c:e.lineWidth,e.stroke=null!==(u=t.stroke)&&void 0!==u?u:e.stroke,e.getFocusedColor=null!==(d=t.getFocusedColor)&&void 0!==d?d:e.getFocusedColor,e.formatter=null!==(h=t.formatter)&&void 0!==h?h:e.formatter,e.paths=null!==(f=t.paths)&&void 0!==f?f:e.paths}},61579:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Axis=t.Scale=t.DrawOrderKey=void 0,t.DrawOrderKey={Series:"series",Axes:"axes"},t.Scale={Distr:{Linear:1,Ordinal:2,Logarithmic:3,ArcSinh:4}},t.Axis={Side:{Top:0,Right:1,Bottom:2,Left:3},Align:{Right:0,Left:1}}},70832:function(e,t,n){var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)},l=this&&this.__importStar||function(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)&&i(t,e,n);return o(t,e),t},r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.defaults=void 0,s(n(33481),t),s(n(78612),t);const a=l(n(9084));t.defaults=a;const c=r(n(19993));"undefined"!==typeof window&&Object.assign(window,{Yagr:c.default}),t.default=c.default},38982:function(e,t,n){var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(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)&&i(t,e,n);return o(t,e),t},l=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.useTooltipState=void 0;const r=s(n(68963)),a=l(n(19993));t.default=r.forwardRef((function(e,t){let{id:n,config:i,className:o="",debug:s,onChartLoad:l,onSelect:c,update:u="dynamic"}=e;const d=r.useRef(null),h=r.useRef();r.useImperativeHandle(t,(()=>({yagr:()=>h.current,domElement:()=>d.current})));const f=r.useCallback((()=>{if(d.current){i.hooks=i.hooks||{};const e=i.hooks;if(l){const t=e.load||[];t.push((e=>{let{chart:t,meta:n}=e;l(t,n)})),e.load=t}if(c){const t=e.onSelect||[];t.push((e=>{let{from:t,to:n}=e;return c(t,n)})),e.onSelect=t}h.current=new a.default(d.current,i)}}),[]);r.useEffect((()=>{var e;i&&(null===(e=h.current)||void 0===e||e.setConfig(i,"hard"===u))}),[i]),r.useEffect((()=>(f(),()=>{var e;null===(e=h.current)||void 0===e||e.dispose(),h.current=void 0})),[]);const p=r.useCallback((e=>{if(h.current&&(e.ctrlKey||e.metaKey)&&e.shiftKey){const e=h.current.toDataUrl().replace("image/png","image/octet-stream"),t=document.createElement("a");t.href=e,t.download=((null===s||void 0===s?void 0:s.filename)||h.current.id)+".png",t.click()}}),[n,h]);return r.createElement("div",{id:n,onClick:p,className:"yagr ".concat(o),ref:d})}));t.useTooltipState=(e,t)=>{r.useEffect((()=>{var n;if(!e.current||!t.current)return;const i=t.current,o=e.current.yagr();o&&(null===(n=null===o||void 0===o?void 0:o.plugins)||void 0===n?void 0:n.tooltip)&&(o.plugins.tooltip.on("render",((e,t)=>{i.onChange(t)})),o.plugins.tooltip.on("show",((e,t)=>{i.onChange(t)})),o.plugins.tooltip.on("show",((e,t)=>{i.onChange(t)})))}),[e.current])}},95588:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Ai});const i="uplot",o="u-hz",s="u-vt",l="u-title",r="u-wrap",a="u-under",c="u-over",u="u-axis",d="u-off",h="u-select",f="u-cursor-x",p="u-cursor-y",g="u-cursor-pt",m="u-legend",_="u-live",v="u-inline",y="u-series",b="u-marker",w="u-label",E="u-value",S="width",x="height",A="top",T="bottom",O="left",L="right",I="#000",D=I+"0",M="mousemove",k="mousedown",C="mouseup",R="mouseenter",F="mouseleave",P="dblclick",U="change",N="dppxchange",j="--",X="undefined"!=typeof window,z=X?document:null,H=X?window:null,Y=X?navigator:null;let B,V;function W(e,t){if(null!=t){let n=e.classList;!n.contains(t)&&n.add(t)}}function G(e,t){let n=e.classList;n.contains(t)&&n.remove(t)}function q(e,t,n){e.style[t]=n+"px"}function K(e,t,n,i){let o=z.createElement(e);return null!=t&&W(o,t),null!=n&&n.insertBefore(o,i),o}function Z(e,t){return K("div",e,t)}const $=new WeakMap;function J(e,t,n,i,o){let s="translate("+t+"px,"+n+"px)";s!=$.get(e)&&(e.style.transform=s,$.set(e,s),t<0||n<0||t>i||n>o?W(e,d):G(e,d))}const Q=new WeakMap;function ee(e,t,n){let i=t+n;i!=Q.get(e)&&(Q.set(e,i),e.style.background=t,e.style.borderColor=n)}const te=new WeakMap;function ne(e,t,n,i){let o=t+""+n;o!=te.get(e)&&(te.set(e,o),e.style.height=n+"px",e.style.width=t+"px",e.style.marginLeft=i?-t/2+"px":0,e.style.marginTop=i?-n/2+"px":0)}const ie={passive:!0},oe={...ie,capture:!0};function se(e,t,n,i){t.addEventListener(e,n,i?oe:ie)}function le(e,t,n,i){t.removeEventListener(e,n,i?oe:ie)}function re(e,t,n,i){let o;n=n||0;let s=(i=i||t.length-1)<=2147483647;for(;i-n>1;)o=s?n+i>>1:Se((n+i)/2),t[o]<e?n=o:i=o;return e-t[n]<=t[i]-e?n:i}function ae(e,t,n,i){for(let o=1==i?t:n;o>=t&&o<=n;o+=i)if(null!=e[o])return o;return-1}function ce(e,t,n,i){let o=Ie(e),s=Ie(t),l=10==n?De:Me;e==t&&(-1==o?(e*=n,t/=n):(e/=n,t*=n));let r=1==s?Ae:Se,a=(1==o?Se:Ae)(l(Ee(e))),c=r(l(Ee(t))),u=Le(n,a),d=Le(n,c);return 10==n&&(a<0&&(u=Ge(u,-a)),c<0&&(d=Ge(d,-c))),i||2==n?(e=u*o,t=d*s):(e=We(e,u),t=Ve(t,d)),[e,t]}function ue(e,t,n,i){let o=ce(e,t,n,i);return 0==e&&(o[0]=0),0==t&&(o[1]=0),o}X&&function e(){let t=devicePixelRatio;B!=t&&(B=t,V&&le(U,V,e),V=matchMedia("(min-resolution: ".concat(B-.001,"dppx) and (max-resolution: ").concat(B+.001,"dppx)")),se(U,V,e),H.dispatchEvent(new CustomEvent(N)))}();const de=.1,he={mode:3,pad:de},fe={pad:0,soft:null,mode:0},pe={min:fe,max:fe};function ge(e,t,n,i){return ot(n)?_e(e,t,n):(fe.pad=n,fe.soft=i?0:null,fe.mode=i?3:0,_e(e,t,pe))}function me(e,t){return null==e?t:e}function _e(e,t,n){let i=n.min,o=n.max,s=me(i.pad,0),l=me(o.pad,0),r=me(i.hard,-Re),a=me(o.hard,Re),c=me(i.soft,Re),u=me(o.soft,-Re),d=me(i.mode,0),h=me(o.mode,0),f=t-e,p=De(f),g=Oe(Ee(e),Ee(t)),m=De(g),_=Ee(m-p);(f<1e-9||_>10)&&(f=0,0!=e&&0!=t||(f=1e-9,2==d&&c!=Re&&(s=0),2==h&&u!=-Re&&(l=0)));let v=f||g||1e3,y=De(v),b=Le(10,Se(y)),w=Ge(We(e-v*(0==f?0==e?.1:1:s),b/10),9),E=e>=c&&(1==d||3==d&&w<=c||2==d&&w>=c)?c:Re,S=Oe(r,w<E&&e>=E?E:Te(E,w)),x=Ge(Ve(t+v*(0==f?0==t?.1:1:l),b/10),9),A=t<=u&&(1==h||3==h&&x>=u||2==h&&x<=u)?u:-Re,T=Te(a,x>A&&t<=A?A:Oe(A,x));return S==T&&0==S&&(T=100),[S,T]}const ve=new Intl.NumberFormat(X?Y.language:"en-US"),ye=e=>ve.format(e),be=Math,we=be.PI,Ee=be.abs,Se=be.floor,xe=be.round,Ae=be.ceil,Te=be.min,Oe=be.max,Le=be.pow,Ie=be.sign,De=be.log10,Me=be.log2,ke=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return be.sinh(e)*t},Ce=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return be.asinh(e/t)},Re=1/0;function Fe(e){return 1+(0|De((e^e>>31)-(e>>31)))}function Pe(e,t,n){return Te(Oe(e,t),n)}function Ue(e){return"function"==typeof e?e:()=>e}const Ne=e=>e,je=(e,t)=>t,Xe=e=>null,ze=e=>!0,He=(e,t)=>e==t,Ye=e=>Ge(e,14);function Be(e,t){return Ye(Ge(Ye(e/t))*t)}function Ve(e,t){return Ye(Ae(Ye(e/t))*t)}function We(e,t){return Ye(Se(Ye(e/t))*t)}function Ge(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(tt(e))return e;let n=10**t,i=e*n*(1+Number.EPSILON);return xe(i)/n}const qe=new Map;function Ke(e){return((""+e).split(".")[1]||"").length}function Ze(e,t,n,i){let o=[],s=i.map(Ke);for(let l=t;l<n;l++){let t=Ee(l),n=Ge(Le(e,l),t);for(let e=0;e<i.length;e++){let r=i[e]*n,a=(r>=0&&l>=0?0:t)+(l>=s[e]?0:s[e]),c=Ge(r,a);o.push(c),qe.set(c,a)}}return o}const $e={},Je=[],Qe=[null,null],et=Array.isArray,tt=Number.isInteger,nt=e=>void 0===e;function it(e){return"string"==typeof e}function ot(e){let t=!1;if(null!=e){let n=e.constructor;t=null==n||n==Object}return t}function st(e){return null!=e&&"object"==typeof e}const lt=Object.getPrototypeOf(Uint8Array);function rt(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ot;if(et(e)){let i=e.find((e=>null!=e));if(et(i)||n(i)){t=Array(e.length);for(let i=0;i<e.length;i++)t[i]=rt(e[i],n)}else t=e.slice()}else if(e instanceof lt)t=e.slice();else if(n(e)){t={};for(let i in e)t[i]=rt(e[i],n)}else t=e;return t}function at(e){let t=arguments;for(let n=1;n<t.length;n++){let i=t[n];for(let t in i)ot(e[t])?at(e[t],rt(i[t])):e[t]=rt(i[t])}return e}const ct=0,ut=1,dt=2;function ht(e,t,n){for(let i,o=0,s=-1;o<t.length;o++){let l=t[o];if(l>s){for(i=l-1;i>=0&&null==e[i];)e[i--]=null;for(i=l+1;i<n&&null==e[i];)e[s=i++]=null}}}const ft="undefined"==typeof queueMicrotask?e=>Promise.resolve().then(e):queueMicrotask;const pt=["January","February","March","April","May","June","July","August","September","October","November","December"],gt=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function mt(e){return e.slice(0,3)}const _t=gt.map(mt),vt=pt.map(mt),yt={MMMM:pt,MMM:vt,WWWW:gt,WWW:_t};function bt(e){return(e<10?"0":"")+e}const wt={YYYY:e=>e.getFullYear(),YY:e=>(e.getFullYear()+"").slice(2),MMMM:(e,t)=>t.MMMM[e.getMonth()],MMM:(e,t)=>t.MMM[e.getMonth()],MM:e=>bt(e.getMonth()+1),M:e=>e.getMonth()+1,DD:e=>bt(e.getDate()),D:e=>e.getDate(),WWWW:(e,t)=>t.WWWW[e.getDay()],WWW:(e,t)=>t.WWW[e.getDay()],HH:e=>bt(e.getHours()),H:e=>e.getHours(),h:e=>{let t=e.getHours();return 0==t?12:t>12?t-12:t},AA:e=>e.getHours()>=12?"PM":"AM",aa:e=>e.getHours()>=12?"pm":"am",a:e=>e.getHours()>=12?"p":"a",mm:e=>bt(e.getMinutes()),m:e=>e.getMinutes(),ss:e=>bt(e.getSeconds()),s:e=>e.getSeconds(),fff:e=>{return((t=e.getMilliseconds())<10?"00":t<100?"0":"")+t;var t}};function Et(e,t){t=t||yt;let n,i=[],o=/\{([a-z]+)\}|[^{]+/gi;for(;n=o.exec(e);)i.push("{"==n[0][0]?wt[n[1]]:n[0]);return e=>{let n="";for(let o=0;o<i.length;o++)n+="string"==typeof i[o]?i[o]:i[o](e,t);return n}}const St=(new Intl.DateTimeFormat).resolvedOptions().timeZone;const xt=e=>e%1==0,At=[1,2,2.5,5],Tt=Ze(10,-16,0,At),Ot=Ze(10,0,16,At),Lt=Ot.filter(xt),It=Tt.concat(Ot),Dt="{YYYY}",Mt="\n"+Dt,kt="{M}/{D}",Ct="\n"+kt,Rt=Ct+"/{YY}",Ft="{aa}",Pt="{h}:{mm}"+Ft,Ut="\n"+Pt,Nt=":{ss}",jt=null;function Xt(e){let t=1e3*e,n=60*t,i=60*n,o=24*i,s=30*o,l=365*o;return[(1==e?Ze(10,0,3,At).filter(xt):Ze(10,-3,0,At)).concat([t,5*t,10*t,15*t,30*t,n,5*n,10*n,15*n,30*n,i,2*i,3*i,4*i,6*i,8*i,12*i,o,2*o,3*o,4*o,5*o,6*o,7*o,8*o,9*o,10*o,15*o,s,2*s,3*s,4*s,6*s,l,2*l,5*l,10*l,25*l,50*l,100*l]),[[l,Dt,jt,jt,jt,jt,jt,jt,1],[28*o,"{MMM}",Mt,jt,jt,jt,jt,jt,1],[o,kt,Mt,jt,jt,jt,jt,jt,1],[i,"{h}"+Ft,Rt,jt,Ct,jt,jt,jt,1],[n,Pt,Rt,jt,Ct,jt,jt,jt,1],[t,Nt,Rt+" "+Pt,jt,Ct+" "+Pt,jt,Ut,jt,1],[e,Nt+".{fff}",Rt+" "+Pt,jt,Ct+" "+Pt,jt,Ut,jt,1]],function(t){return(r,a,c,u,d,h)=>{let f=[],p=d>=l,g=d>=s&&d<l,m=t(c),_=Ge(m*e,3),v=Kt(m.getFullYear(),p?0:m.getMonth(),g||p?1:m.getDate()),y=Ge(v*e,3);if(g||p){let n=g?d/s:0,i=p?d/l:0,o=_==y?_:Ge(Kt(v.getFullYear()+i,v.getMonth()+n,1)*e,3),r=new Date(xe(o/e)),a=r.getFullYear(),c=r.getMonth();for(let s=0;o<=u;s++){let l=Kt(a+i*s,c+n*s,1),r=l-t(Ge(l*e,3));o=Ge((+l+r)*e,3),o<=u&&f.push(o)}}else{let s=d>=o?o:d,l=y+(Se(c)-Se(_))+Ve(_-y,s);f.push(l);let p=t(l),g=p.getHours()+p.getMinutes()/n+p.getSeconds()/i,m=d/i,v=h/r.axes[a]._space;for(;l=Ge(l+d,1==e?0:3),!(l>u);)if(m>1){let e=Se(Ge(g+m,6))%24,n=t(l).getHours()-e;n>1&&(n=-1),l-=n*i,g=(g+m)%24,Ge((l-f[f.length-1])/d,3)*v>=.7&&f.push(l)}else f.push(l)}return f}}]}const[zt,Ht,Yt]=Xt(1),[Bt,Vt,Wt]=Xt(.001);function Gt(e,t){return e.map((e=>e.map(((n,i)=>0==i||8==i||null==n?n:t(1==i||0==e[8]?n:e[1]+n)))))}function qt(e,t){return(n,i,o,s,l)=>{let r,a,c,u,d,h,f=t.find((e=>l>=e[0]))||t[t.length-1];return i.map((t=>{let n=e(t),i=n.getFullYear(),o=n.getMonth(),s=n.getDate(),l=n.getHours(),p=n.getMinutes(),g=n.getSeconds(),m=i!=r&&f[2]||o!=a&&f[3]||s!=c&&f[4]||l!=u&&f[5]||p!=d&&f[6]||g!=h&&f[7]||f[1];return r=i,a=o,c=s,u=l,d=p,h=g,m(n)}))}}function Kt(e,t,n){return new Date(e,t,n)}function Zt(e,t){return t(e)}Ze(2,-53,53,[1]);const $t="{YYYY}-{MM}-{DD} {h}:{mm}{aa}";function Jt(e,t){return(n,i,o,s)=>null==s?j:t(e(i))}const Qt={show:!0,live:!0,isolate:!1,mount:()=>{},markers:{show:!0,width:2,stroke:function(e,t){let n=e.series[t];return n.width?n.stroke(e,t):n.points.width?n.points.stroke(e,t):null},fill:function(e,t){return e.series[t].fill(e,t)},dash:"solid"},idx:null,idxs:null,values:[]};const en=[0,0];function tn(e,t,n){let i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return e=>{0==e.button&&(!i||e.target==t)&&n(e)}}function nn(e,t,n){let i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return e=>{(!i||e.target==t)&&n(e)}}const on={show:!0,x:!0,y:!0,lock:!1,move:function(e,t,n){return en[0]=t,en[1]=n,en},points:{show:function(e,t){let n=e.cursor.points,i=Z(),o=n.size(e,t);q(i,S,o),q(i,x,o);let s=o/-2;q(i,"marginLeft",s),q(i,"marginTop",s);let l=n.width(e,t,o);return l&&q(i,"borderWidth",l),i},size:function(e,t){return e.series[t].points.size},width:0,stroke:function(e,t){let n=e.series[t].points;return n._stroke||n._fill},fill:function(e,t){let n=e.series[t].points;return n._fill||n._stroke}},bind:{mousedown:tn,mouseup:tn,click:tn,dblclick:tn,mousemove:nn,mouseleave:nn,mouseenter:nn},drag:{setScale:!0,x:!0,y:!1,dist:0,uni:null,click:(e,t)=>{t.stopPropagation(),t.stopImmediatePropagation()},_x:!1,_y:!1},focus:{prox:-1,bias:0},left:-10,top:-10,idx:null,dataIdx:function(e,t,n){return n},idxs:null,event:null},sn={show:!0,stroke:"rgba(0,0,0,0.07)",width:2},ln=at({},sn,{filter:je}),rn=at({},ln,{size:10}),an=at({},sn,{show:!1}),cn='12px system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',un="bold "+cn,dn={show:!0,scale:"x",stroke:I,space:50,gap:5,size:50,labelGap:0,labelSize:30,labelFont:un,side:2,grid:ln,ticks:rn,border:an,font:cn,lineGap:1.5,rotate:0},hn="Value",fn="Time",pn={show:!0,scale:"x",auto:!1,sorted:1,min:Re,max:-Re,idxs:[]};function gn(e,t,n,i,o){return t.map((e=>null==e?"":ye(e)))}function mn(e,t,n,i,o,s,l){let r=[],a=qe.get(o)||0;for(let c=n=l?n:Ge(Ve(n,o),a);c<=i;c=Ge(c+o,a))r.push(Object.is(c,-0)?0:c);return r}function _n(e,t,n,i,o,s,l){const r=[],a=e.scales[e.axes[t].scale].log,c=Se((10==a?De:Me)(n));o=Le(a,c),10==a&&c<0&&(o=Ge(o,-c));let u=n;do{r.push(u),u+=o,10==a&&(u=Ge(u,qe.get(o))),u>=o*a&&(o=u)}while(u<=i);return r}function vn(e,t,n,i,o,s,l){let r=e.scales[e.axes[t].scale].asinh,a=i>r?_n(e,t,Oe(r,n),i,o):[r],c=i>=0&&n<=0?[0]:[];return(n<-r?_n(e,t,Oe(r,-i),-n,o):[r]).reverse().map((e=>-e)).concat(c,a)}const yn=/./,bn=/[12357]/,wn=/[125]/,En=/1/,Sn=(e,t,n,i)=>e.map(((e,o)=>4==t&&0==e||o%i==0&&n.test(e.toExponential()[e<0?1:0])?e:null));function xn(e,t,n,i,o){let s=e.axes[n],l=s.scale,r=e.scales[l],a=e.valToPos,c=s._space,u=a(10,l),d=a(9,l)-u>=c?yn:a(7,l)-u>=c?bn:a(5,l)-u>=c?wn:En;if(d==En){let e=Ee(a(1,l)-u);if(e<c)return Sn(t.slice().reverse(),r.distr,d,Ae(c/e)).reverse()}return Sn(t,r.distr,d,1)}function An(e,t,n,i,o){let s=e.axes[n],l=s.scale,r=s._space,a=e.valToPos,c=Ee(a(1,l)-a(2,l));return c<r?Sn(t.slice().reverse(),3,yn,Ae(r/c)).reverse():t}function Tn(e,t,n,i){return null==i?j:null==t?"":ye(t)}const On={show:!0,scale:"y",stroke:I,space:30,gap:5,size:50,labelGap:0,labelSize:30,labelFont:un,side:3,grid:ln,ticks:rn,border:an,font:cn,lineGap:1.5,rotate:0};const Ln={scale:null,auto:!0,sorted:0,min:Re,max:-Re},In=(e,t,n,i,o)=>o,Dn={show:!0,auto:!0,sorted:0,gaps:In,alpha:1,facets:[at({},Ln,{scale:"x"}),at({},Ln,{scale:"y"})]},Mn={scale:"y",auto:!0,sorted:0,show:!0,spanGaps:!1,gaps:In,alpha:1,points:{show:function(e,t){let{scale:n,idxs:i}=e.series[0],o=e._data[0],s=e.valToPos(o[i[0]],n,!0),l=e.valToPos(o[i[1]],n,!0),r=Ee(l-s)/(e.series[t].points.space*B);return i[1]-i[0]<=r},filter:null},values:null,min:Re,max:-Re,idxs:[],path:null,clip:null};function kn(e,t,n,i,o){return n/10}const Cn={time:!0,auto:!0,distr:1,log:10,asinh:1,min:null,max:null,dir:1,ori:0},Rn=at({},Cn,{time:!1,ori:1}),Fn={};function Pn(e,t){let n=Fn[e];return n||(n={key:e,plots:[],sub(e){n.plots.push(e)},unsub(e){n.plots=n.plots.filter((t=>t!=e))},pub(e,t,i,o,s,l,r){for(let a=0;a<n.plots.length;a++)n.plots[a]!=t&&n.plots[a].pub(e,t,i,o,s,l,r)}},null!=e&&(Fn[e]=n)),n}const Un=1,Nn=2;function jn(e,t,n){const i=e.mode,o=e.series[t],s=2==i?e._data[t]:e._data,l=e.scales,r=e.bbox;let a=s[0],c=2==i?s[1]:s[t],u=2==i?l[o.facets[0].scale]:l[e.series[0].scale],d=2==i?l[o.facets[1].scale]:l[o.scale],h=r.left,f=r.top,p=r.width,g=r.height,m=e.valToPosH,_=e.valToPosV;return 0==u.ori?n(o,a,c,u,d,m,_,h,f,p,g,Gn,Kn,$n,Qn,ti):n(o,a,c,u,d,_,m,f,h,g,p,qn,Zn,Jn,ei,ni)}function Xn(e,t){let n=0,i=0,o=me(e.bands,Je);for(let s=0;s<o.length;s++){let e=o[s];e.series[0]==t?n=e.dir:e.series[1]==t&&(1==e.dir?i|=1:i|=2)}return[n,1==i?-1:2==i?1:3==i?2:0]}function zn(e,t,n,i,o){let s=e.mode,l=e.series[t],r=2==s?l.facets[1].scale:l.scale,a=e.scales[r];return-1==o?a.min:1==o?a.max:3==a.distr?1==a.dir?a.min:a.max:0}function Hn(e,t,n,i,o,s){return jn(e,t,((e,t,l,r,a,c,u,d,h,f,p)=>{let g=e.pxRound;const m=r.dir*(0==r.ori?1:-1),_=0==r.ori?Kn:Zn;let v,y;1==m?(v=n,y=i):(v=i,y=n);let b=g(c(t[v],r,f,d)),w=g(u(l[v],a,p,h)),E=g(c(t[y],r,f,d)),S=g(u(1==s?a.max:a.min,a,p,h)),x=new Path2D(o);return _(x,E,S),_(x,b,S),_(x,b,w),x}))}function Yn(e,t,n,i,o,s){let l=null;if(e.length>0){l=new Path2D;const r=0==t?$n:Jn;let a=n;for(let t=0;t<e.length;t++){let n=e[t];if(n[1]>n[0]){let e=n[0]-a;e>0&&r(l,a,i,e,i+s),a=n[1]}}let c=n+o-a,u=10;c>0&&r(l,a,i-u/2,c,i+s+u)}return l}function Bn(e,t,n,i,o,s,l){let r=[],a=e.length;for(let c=1==o?n:i;c>=n&&c<=i;c+=o){if(null===t[c]){let u=c,d=c;if(1==o)for(;++c<=i&&null===t[c];)d=c;else for(;--c>=n&&null===t[c];)d=c;let h=s(e[u]),f=d==u?h:s(e[d]),p=u-o;h=l<=0&&p>=0&&p<a?s(e[p]):h;let g=d+o;f=l>=0&&g>=0&&g<a?s(e[g]):f,f>=h&&r.push([h,f])}}return r}function Vn(e){return 0==e?Ne:1==e?xe:t=>Be(t,e)}function Wn(e){let t=0==e?Gn:qn,n=0==e?(e,t,n,i,o,s)=>{e.arcTo(t,n,i,o,s)}:(e,t,n,i,o,s)=>{e.arcTo(n,t,o,i,s)},i=0==e?(e,t,n,i,o)=>{e.rect(t,n,i,o)}:(e,t,n,i,o)=>{e.rect(n,t,o,i)};return function(e,o,s,l,r){let a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0;0==a&&0==c?i(e,o,s,l,r):(a=Te(a,l/2,r/2),c=Te(c,l/2,r/2),t(e,o+a,s),n(e,o+l,s,o+l,s+r,a),n(e,o+l,s+r,o,s+r,c),n(e,o,s+r,o,s,c),n(e,o,s,o+l,s,a),e.closePath())}}const Gn=(e,t,n)=>{e.moveTo(t,n)},qn=(e,t,n)=>{e.moveTo(n,t)},Kn=(e,t,n)=>{e.lineTo(t,n)},Zn=(e,t,n)=>{e.lineTo(n,t)},$n=Wn(0),Jn=Wn(1),Qn=(e,t,n,i,o,s)=>{e.arc(t,n,i,o,s)},ei=(e,t,n,i,o,s)=>{e.arc(n,t,i,o,s)},ti=(e,t,n,i,o,s,l)=>{e.bezierCurveTo(t,n,i,o,s,l)},ni=(e,t,n,i,o,s,l)=>{e.bezierCurveTo(n,t,o,i,l,s)};function ii(e){return(e,t,n,i,o)=>jn(e,t,((t,s,l,r,a,c,u,d,h,f,p)=>{let g,m,{pxRound:_,points:v}=t;0==r.ori?(g=Gn,m=Qn):(g=qn,m=ei);const y=Ge(v.width*B,3);let b=(v.size-v.width)/2*B,w=Ge(2*b,3),E=new Path2D,S=new Path2D,{left:x,top:A,width:T,height:O}=e.bbox;$n(S,x-w,A-w,T+2*w,O+2*w);const L=e=>{if(null!=l[e]){let t=_(c(s[e],r,f,d)),n=_(u(l[e],a,p,h));g(E,t+b,n),m(E,t,n,b,0,2*we)}};if(o)o.forEach(L);else for(let e=n;e<=i;e++)L(e);return{stroke:y>0?E:null,fill:E,clip:S,flags:Un|Nn}}))}function oi(e){return(t,n,i,o,s,l)=>{i!=o&&(s!=i&&l!=i&&e(t,n,i),s!=o&&l!=o&&e(t,n,o),e(t,n,l))}}const si=oi(Kn),li=oi(Zn);function ri(e){const t=me(null===e||void 0===e?void 0:e.alignGaps,0);return(e,n,i,o)=>jn(e,n,((s,l,r,a,c,u,d,h,f,p,g)=>{let m,_,v=s.pxRound,y=e=>v(u(e,a,p,h)),b=e=>v(d(e,c,g,f));0==a.ori?(m=Kn,_=si):(m=Zn,_=li);const w=a.dir*(0==a.ori?1:-1),E={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Un},S=E.stroke;let x,A,T,O=Re,L=-Re,I=y(l[1==w?i:o]),D=ae(r,i,o,1*w),M=ae(r,i,o,-1*w),k=y(l[D]),C=y(l[M]),R=!1;for(let e=1==w?i:o;e>=i&&e<=o;e+=w){let t=y(l[e]),n=r[e];t==I?null!=n?(A=b(n),O==Re&&(m(S,t,A),x=A),O=Te(A,O),L=Oe(A,L)):null===n&&(R=!0):(O!=Re&&(_(S,I,O,L,x,A),T=I),null!=n?(A=b(n),m(S,t,A),O=L=x=A):(O=Re,L=-Re,null===n&&(R=!0)),I=t)}O!=Re&&O!=L&&T!=I&&_(S,I,O,L,x,A);let[F,P]=Xn(e,n);if(null!=s.fill||0!=F){let t=E.fill=new Path2D(S),i=b(s.fillTo(e,n,s.min,s.max,F));m(t,C,i),m(t,k,i)}if(!s.spanGaps){let c=[];R&&c.push(...Bn(l,r,i,o,w,y,t)),E.gaps=c=s.gaps(e,n,i,o,c),E.clip=Yn(c,a.ori,h,f,p,g)}return 0!=P&&(E.band=2==P?[Hn(e,n,i,o,S,-1),Hn(e,n,i,o,S,1)]:Hn(e,n,i,o,S,P)),E}))}function ai(e,t,n,i,o,s){const l=e.length;if(l<2)return null;const r=new Path2D;if(n(r,e[0],t[0]),2==l)i(r,e[1],t[1]);else{let n=Array(l),i=Array(l-1),s=Array(l-1),a=Array(l-1);for(let o=0;o<l-1;o++)s[o]=t[o+1]-t[o],a[o]=e[o+1]-e[o],i[o]=s[o]/a[o];n[0]=i[0];for(let e=1;e<l-1;e++)0===i[e]||0===i[e-1]||i[e-1]>0!==i[e]>0?n[e]=0:(n[e]=3*(a[e-1]+a[e])/((2*a[e]+a[e-1])/i[e-1]+(a[e]+2*a[e-1])/i[e]),isFinite(n[e])||(n[e]=0));n[l-1]=i[l-2];for(let c=0;c<l-1;c++)o(r,e[c]+a[c]/3,t[c]+n[c]*a[c]/3,e[c+1]-a[c]/3,t[c+1]-n[c+1]*a[c]/3,e[c+1],t[c+1])}return r}const ci=new Set;function ui(){for(let e of ci)e.syncRect(!0)}X&&(se("resize",H,ui),se("scroll",H,ui,!0),se(N,H,(()=>{Ai.pxRatio=B})));const di=ri(),hi=ii();function fi(e,t,n,i){return(i?[e[0],e[1]].concat(e.slice(2)):[e[0]].concat(e.slice(1))).map(((e,i)=>pi(e,i,t,n)))}function pi(e,t,n,i){return at({},0==t?n:i,e)}function gi(e,t,n){return null==t?Qe:[t,n]}const mi=gi;function _i(e,t,n){return null==t?Qe:ge(t,n,de,!0)}function vi(e,t,n,i){return null==t?Qe:ce(t,n,e.scales[i].log,!1)}const yi=vi;function bi(e,t,n,i){return null==t?Qe:ue(t,n,e.scales[i].log,!1)}const wi=bi;function Ei(e,t,n,i,o){let s=Oe(Fe(e),Fe(t)),l=t-e,r=re(o/i*l,n);do{let e=n[r],t=i*e/l;if(t>=o&&s+(e<5?qe.get(e):0)<=17)return[e,t]}while(++r<n.length);return[0,0]}function Si(e){let t,n;return[e=e.replace(/(\d+)px/,((e,i)=>(t=xe((n=+i)*B))+"px")),t,n]}function xi(e){e.show&&[e.font,e.labelFont].forEach((e=>{let t=Ge(e[2]*B,1);e[0]=e[0].replace(/[0-9.]+px/,t+"px"),e[1]=t}))}function Ai(e,t,n){const I={mode:me(e.mode,1)},U=I.mode;function X(e,t){return((3==t.distr?De(e>0?e:t.clamp(I,e,t.min,t.max,t.key)):4==t.distr?Ce(e,t.asinh):e)-t._min)/(t._max-t._min)}function Y(e,t,n,i){let o=X(e,t);return i+n*(-1==t.dir?1-o:o)}function V(e,t,n,i){let o=X(e,t);return i+n*(-1==t.dir?o:1-o)}function $(e,t,n,i){return 0==t.ori?Y(e,t,n,i):V(e,t,n,i)}I.valToPosH=Y,I.valToPosV=V;let Q=!1;I.status=0;const te=I.root=Z(i);if(null!=e.id&&(te.id=e.id),W(te,e.class),e.title){Z(l,te).textContent=e.title}const ie=K("canvas"),oe=I.ctx=ie.getContext("2d"),ae=Z(r,te);se("click",ae,(e=>{if(e.target===pe){(eo!=Zi||to!=$i)&&ro.click(I,e)}}),!0);const fe=I.under=Z(a,ae);ae.appendChild(ie);const pe=I.over=Z(c,ae),_e=+me((e=rt(e)).pxAlign,1),ve=Vn(_e);(e.plugins||[]).forEach((t=>{t.opts&&(e=t.opts(I,e)||e)}));const ye=e.ms||.001,be=I.series=1==U?fi(e.series||[],pn,Mn,!1):(Se=e.series||[null],Ie=Dn,Se.map(((e,t)=>0==t?null:at({},Ie,e))));var Se,Ie;const Me=I.axes=fi(e.axes||[],dn,On,!0),Fe=I.scales={},Ne=I.bands=e.bands||[];Ne.forEach((e=>{e.fill=Ue(e.fill||null),e.dir=me(e.dir,-1)}));const Ye=2==U?be[1].facets[0].scale:be[0].scale,We={axes:function(){for(let e=0;e<Me.length;e++){let t=Me[e];if(!t.show||!t._show)continue;let n,i,o=t.side,s=o%2,l=t.stroke(I,e),r=0==o||3==o?-1:1;if(t.label){let e=t.labelGap*r,a=xe((t._lpos+e)*B);ki(t.labelFont[0],l,"center",2==o?A:T),oe.save(),1==s?(n=i=0,oe.translate(a,xe(rn+cn/2)),oe.rotate((3==o?-we:we)/2)):(n=xe(ln+an/2),i=a),oe.fillText(t.label,n,i),oe.restore()}let[a,c]=t._found;if(0==c)continue;let u=Fe[t.scale],d=0==s?an:cn,h=0==s?ln:rn,f=xe(t.gap*B),p=t._splits,g=2==u.distr?p.map((e=>Oi[e])):p,m=2==u.distr?Oi[p[1]]-Oi[p[0]]:a,_=t.ticks,v=t.border,y=_.show?xe(_.size*B):0,b=t._rotate*-we/180,w=ve(t._pos*B),E=w+(y+f)*r;i=0==s?E:0,n=1==s?E:0,ki(t.font[0],l,1==t.align?O:2==t.align?L:b>0?O:b<0?L:0==s?"center":3==o?L:O,b||1==s?"middle":2==o?A:T);let S=t.font[1]*t.lineGap,x=p.map((e=>ve($(e,u,d,h)))),D=t._values;for(let e=0;e<D.length;e++){let t=D[e];if(null!=t){0==s?n=x[e]:i=x[e],t=""+t;let o=-1==t.indexOf("\n")?[t]:t.split(/\n/gm);for(let e=0;e<o.length;e++){let t=o[e];b?(oe.save(),oe.translate(n,i+e*S),oe.rotate(b),oe.fillText(t,0,0),oe.restore()):oe.fillText(t,n,i+e*S)}}}_.show&&Xi(x,_.filter(I,g,e,c,m),s,o,w,y,Ge(_.width*B,3),_.stroke(I,e),_.dash,_.cap);let M=t.grid;M.show&&Xi(x,M.filter(I,g,e,c,m),s,0==s?2:1,0==s?rn:ln,0==s?cn:an,Ge(M.width*B,3),M.stroke(I,e),M.dash,M.cap),v.show&&Xi([w],[1],0==s?1:0,0==s?1:2,1==s?rn:ln,1==s?cn:an,Ge(v.width*B,3),v.stroke(I,e),v.dash,v.cap)}Bo("drawAxes")},series:function(){Jn>0&&(be.forEach(((e,n)=>{if(n>0&&e.show&&(Ri(n,!1),Ri(n,!0),null==e._paths)){let i=2==U?[0,t[n][0].length-1]:function(e){let t=Pe(Qn-1,0,Jn-1),n=Pe(ei+1,0,Jn-1);for(;null==e[t]&&t>0;)t--;for(;null==e[n]&&n<Jn-1;)n++;return[t,n]}(t[n]);e._paths=e.paths(I,n,i[0],i[1])}})),be.forEach(((e,t)=>{if(t>0&&e.show){Ti!=e.alpha&&(oe.globalAlpha=Ti=e.alpha),null!=e._paths&&Fi(t,!1);{let n=null!=e._paths?e._paths.gaps:null,i=e.points.show(I,t,Qn,ei,n),o=e.points.filter(I,t,i,n);(i||o)&&(e.points._paths=e.points.paths(I,t,Qn,ei,o),Fi(t,!0))}1!=Ti&&(oe.globalAlpha=Ti=1),Bo("drawSeries",t)}})))}},Ze=(e.drawOrder||["axes","series"]).map((e=>We[e]));function tt(t){let n=Fe[t];if(null==n){let i=(e.scales||$e)[t]||$e;if(null!=i.from)tt(i.from),Fe[t]=at({},Fe[i.from],i,{key:t});else{n=Fe[t]=at({},t==Ye?Cn:Rn,i),n.key=t;let e=n.time,o=n.range,s=et(o);if((t!=Ye||2==U&&!e)&&(!s||null!=o[0]&&null!=o[1]||(o={min:null==o[0]?he:{mode:1,hard:o[0],soft:o[0]},max:null==o[1]?he:{mode:1,hard:o[1],soft:o[1]}},s=!1),!s&&ot(o))){let e=o;o=(t,n,i)=>null==n?Qe:ge(n,i,e)}n.range=Ue(o||(e?mi:t==Ye?3==n.distr?yi:4==n.distr?wi:gi:3==n.distr?vi:4==n.distr?bi:_i)),n.auto=Ue(!s&&n.auto),n.clamp=Ue(n.clamp||kn),n._min=n._max=null}}}tt("x"),tt("y"),1==U&&be.forEach((e=>{tt(e.scale)})),Me.forEach((e=>{tt(e.scale)}));for(let i in e.scales)tt(i);const lt=Fe[Ye],ct=lt.distr;let ut,dt;0==lt.ori?(W(te,o),ut=Y,dt=V):(W(te,s),ut=V,dt=Y);const ht={};for(let i in Fe){let e=Fe[i];null==e.min&&null==e.max||(ht[i]={min:e.min,max:e.max},e.min=e.max=null)}const pt=e.tzDate||(e=>new Date(xe(e/ye))),gt=e.fmtDate||Et,mt=1==ye?Yt(pt):Wt(pt),_t=qt(pt,Gt(1==ye?Ht:Vt,gt)),vt=Jt(pt,Zt($t,gt)),yt=[],bt=I.legend=at({},Qt,e.legend),wt=bt.show,St=bt.markers;let xt,At,Tt;bt.idxs=yt,St.width=Ue(St.width),St.dash=Ue(St.dash),St.stroke=Ue(St.stroke),St.fill=Ue(St.fill);let Ot,Dt=[],Mt=[],kt=!1,Ct={};if(bt.live){const e=be[1]?be[1].values:null;kt=null!=e,Ot=kt?e(I,1,0):{_:0};for(let t in Ot)Ct[t]=j}if(wt)if(xt=K("table",m,te),Tt=K("tbody",null,xt),bt.mount(I,xt),kt){At=K("thead",null,xt,Tt);let e=K("tr",null,At);for(var Rt in K("th",null,e),Ot)K("th",w,e).textContent=Rt}else W(xt,v),bt.live&&W(xt,_);const Ft={show:!0},Pt={show:!1};const Ut=new Map;function Nt(e,t,n){let i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];const o=Ut.get(t)||{},s=jn.bind[e](I,t,n,i);s&&(se(e,t,o[e]=s),Ut.set(t,o))}function jt(e,t,n){const i=Ut.get(t)||{};for(let o in i)null!=e&&o!=e||(le(o,t,i[o]),delete i[o]);null==e&&Ut.delete(t)}let Xt=0,Kt=0,en=0,tn=0,nn=0,sn=0,ln=0,rn=0,an=0,cn=0;I.bbox={};let un=!1,yn=!1,bn=!1,wn=!1,En=!1,Sn=!1;function Ln(e,t,n){(n||e!=I.width||t!=I.height)&&In(e,t),Yi(!1),bn=!0,yn=!0,jn.left>=0&&(wn=Sn=!0),io()}function In(e,t){I.width=Xt=en=e,I.height=Kt=tn=t,nn=sn=0,function(){let e=!1,t=!1,n=!1,i=!1;Me.forEach(((o,s)=>{if(o.show&&o._show){let{side:s,_size:l}=o,r=s%2,a=l+(null!=o.label?o.labelSize:0);a>0&&(r?(en-=a,3==s?(nn+=a,i=!0):n=!0):(tn-=a,0==s?(sn+=a,e=!0):t=!0))}})),qn[0]=e,qn[1]=n,qn[2]=t,qn[3]=i,en-=$n[1]+$n[3],nn+=$n[3],tn-=$n[2]+$n[0],sn+=$n[0]}(),function(){let e=nn+en,t=sn+tn,n=nn,i=sn;function o(o,s){switch(o){case 1:return e+=s,e-s;case 2:return t+=s,t-s;case 3:return n-=s,n+s;case 0:return i-=s,i+s}}Me.forEach(((e,t)=>{if(e.show&&e._show){let t=e.side;e._pos=o(t,e._size),null!=e.label&&(e._lpos=o(t,e.labelSize))}}))}();let n=I.bbox;ln=n.left=Be(nn*B,.5),rn=n.top=Be(sn*B,.5),an=n.width=Be(en*B,.5),cn=n.height=Be(tn*B,.5)}const Fn=3;I.setSize=function(e){let{width:t,height:n}=e;Ln(t,n)};const jn=I.cursor=at({},on,{drag:{y:2==U}},e.cursor),Xn=e=>{jn.event=e};jn.idxs=yt,jn._lock=!1;let Hn=jn.points;Hn.show=Ue(Hn.show),Hn.size=Ue(Hn.size),Hn.stroke=Ue(Hn.stroke),Hn.width=Ue(Hn.width),Hn.fill=Ue(Hn.fill);const Yn=I.focus=at({},e.focus||{alpha:.3},jn.focus),Bn=Yn.prox>=0;let Wn=[null];function Gn(e,t){if(1==U||t>0){let t=1==U&&Fe[e.scale].time,n=e.value;e.value=t?it(n)?Jt(pt,Zt(n,gt)):n||vt:n||Tn,e.label=e.label||(t?fn:hn)}if(t>0){e.width=null==e.width?1:e.width,e.paths=e.paths||di||Xe,e.fillTo=Ue(e.fillTo||zn),e.pxAlign=+me(e.pxAlign,_e),e.pxRound=Vn(e.pxAlign),e.stroke=Ue(e.stroke||null),e.fill=Ue(e.fill||null),e._stroke=e._fill=e._paths=e._focus=null;let t=Ge((3+2*(Oe(1,e.width)||1))*1,3),n=e.points=at({},{size:t,width:Oe(1,.2*t),stroke:e.stroke,space:2*t,paths:hi,_stroke:null,_fill:null},e.points);n.show=Ue(n.show),n.filter=Ue(n.filter),n.fill=Ue(n.fill),n.stroke=Ue(n.stroke),n.paths=Ue(n.paths),n.pxAlign=e.pxAlign}if(wt){let n=function(e,t){if(0==t&&(kt||!bt.live||2==U))return Qe;let n=[],i=K("tr",y,Tt,Tt.childNodes[t]);W(i,e.class),e.show||W(i,d);let o=K("th",null,i);if(St.show){let e=Z(b,o);if(t>0){let n=St.width(I,t);n&&(e.style.border=n+"px "+St.dash(I,t)+" "+St.stroke(I,t)),e.style.background=St.fill(I,t)}}let s=Z(w,o);for(var l in s.textContent=e.label,t>0&&(St.show||(s.style.color=e.width>0?St.stroke(I,t):St.fill(I,t)),Nt("click",o,(t=>{if(jn._lock)return;Xn(t);let n=be.indexOf(e);if((t.ctrlKey||t.metaKey)!=bt.isolate){let e=be.some(((e,t)=>t>0&&t!=n&&e.show));be.forEach(((t,i)=>{i>0&&go(i,e?i==n?Ft:Pt:Ft,!0,Wo.setSeries)}))}else go(n,{show:!e.show},!0,Wo.setSeries)}),!1),Bn&&Nt(R,o,(t=>{jn._lock||(Xn(t),go(be.indexOf(e),yo,!0,Wo.setSeries))}),!1)),Ot){let e=K("td",E,i);e.textContent="--",n.push(e)}return[i,n]}(e,t);Dt.splice(t,0,n[0]),Mt.splice(t,0,n[1]),bt.values.push(null)}if(jn.show){yt.splice(t,0,null);let n=function(e,t){if(t>0){let n=jn.points.show(I,t);if(n)return W(n,g),W(n,e.class),J(n,-10,-10,en,tn),pe.insertBefore(n,Wn[t]),n}}(e,t);n&&Wn.splice(t,0,n)}Bo("addSeries",t)}I.addSeries=function(e,t){t=null==t?be.length:t,e=1==U?pi(e,t,pn,Mn):pi(e,t,null,Dn),be.splice(t,0,e),Gn(be[t],t)},I.delSeries=function(e){if(be.splice(e,1),wt){bt.values.splice(e,1),Mt.splice(e,1);let t=Dt.splice(e,1)[0];jt(null,t.firstChild),t.remove()}jn.show&&(yt.splice(e,1),Wn.length>1&&Wn.splice(e,1)[0].remove()),Bo("delSeries",e)};const qn=[!1,!1,!1,!1];function Kn(e,t,n,i){let[o,s,l,r]=n,a=t%2,c=0;return 0==a&&(r||s)&&(c=0==t&&!o||2==t&&!l?xe(dn.size/3):0),1==a&&(o||l)&&(c=1==t&&!s||3==t&&!r?xe(On.size/2):0),c}const Zn=I.padding=(e.padding||[Kn,Kn,Kn,Kn]).map((e=>Ue(me(e,Kn)))),$n=I._padding=Zn.map(((e,t)=>e(I,t,qn,0)));let Jn,Qn=null,ei=null;const ti=1==U?be[0].idxs:null;let ni,ii,oi,si,li,ri,ai,ui,Ai,Ti,Oi=null,Li=!1;function Ii(e,n){if(t=null==e?[]:rt(e,st),2==U){Jn=0;for(let e=1;e<be.length;e++)Jn+=t[e][0].length;I.data=t=e}else if(null==t[0]&&(t[0]=[]),I.data=t.slice(),Oi=t[0],Jn=Oi.length,2==ct){t[0]=Array(Jn);for(let e=0;e<Jn;e++)t[0][e]=e}if(I._data=t,Yi(!0),Bo("setData"),2==ct&&(bn=!0),!1!==n){let e=lt;e.auto(I,Li)?Di():po(Ye,e.min,e.max),wn=wn||jn.left>=0,Sn=!0,io()}}function Di(){let e,n;Li=!0,1==U&&(Jn>0?(Qn=ti[0]=0,ei=ti[1]=Jn-1,e=t[0][Qn],n=t[0][ei],2==ct?(e=Qn,n=ei):e==n&&(3==ct?[e,n]=ce(e,e,lt.log,!1):4==ct?[e,n]=ue(e,e,lt.log,!1):lt.time?n=e+xe(86400/ye):[e,n]=ge(e,n,de,!0))):(Qn=ti[0]=e=null,ei=ti[1]=n=null)),po(Ye,e,n)}function Mi(e,t,n,i,o,s){var l,r,a,c,u;null!==(l=e)&&void 0!==l||(e=D),null!==(r=n)&&void 0!==r||(n=Je),null!==(a=i)&&void 0!==a||(i="butt"),null!==(c=o)&&void 0!==c||(o=D),null!==(u=s)&&void 0!==u||(s="round"),e!=ni&&(oe.strokeStyle=ni=e),o!=ii&&(oe.fillStyle=ii=o),t!=oi&&(oe.lineWidth=oi=t),s!=li&&(oe.lineJoin=li=s),i!=ri&&(oe.lineCap=ri=i),n!=si&&oe.setLineDash(si=n)}function ki(e,t,n,i){t!=ii&&(oe.fillStyle=ii=t),e!=ai&&(oe.font=ai=e),n!=ui&&(oe.textAlign=ui=n),i!=Ai&&(oe.textBaseline=Ai=i)}function Ci(e,t,n,i){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;if(i.length>0&&e.auto(I,Li)&&(null==t||null==t.min)){let t=me(Qn,0),s=me(ei,i.length-1),l=null==n.min?3==e.distr?function(e,t,n){let i=Re,o=-Re;for(let s=t;s<=n;s++){let t=e[s];null!=t&&t>0&&(t<i&&(i=t),t>o&&(o=t))}return[i==Re?1:i,o==-Re?10:o]}(i,t,s):function(e,t,n,i){let o=Re,s=-Re;if(1==i)o=e[t],s=e[n];else if(-1==i)o=e[n],s=e[t];else for(let l=t;l<=n;l++){let t=e[l];null!=t&&(t<o&&(o=t),t>s&&(s=t))}return[o,s]}(i,t,s,o):[n.min,n.max];e.min=Te(e.min,n.min=l[0]),e.max=Oe(e.max,n.max=l[1])}}function Ri(e,t){let n=t?be[e].points:be[e];n._stroke=n.stroke(I,e),n._fill=n.fill(I,e)}function Fi(e,n){let i=n?be[e].points:be[e],{stroke:o,fill:s,clip:l,flags:r,_stroke:a=i._stroke,_fill:c=i._fill,_width:u=i.width}=i._paths;u=Ge(u*B,3);let d=null,h=u%2/2;n&&null==c&&(c=u>0?"#fff":a);let f=1==i.pxAlign&&h>0;if(f&&oe.translate(h,h),!n){let e=ln-u/2,t=rn-u/2,n=an+u,i=cn+u;d=new Path2D,d.rect(e,t,n,i)}n?Ui(a,u,i.dash,i.cap,c,o,s,r,l):function(e,n,i,o,s,l,r,a,c,u,d){let h=!1;Ne.forEach(((f,p)=>{if(f.series[0]==e){let e,g=be[f.series[1]],m=t[f.series[1]],_=(g._paths||$e).band;et(_)&&(_=1==f.dir?_[0]:_[1]);let v=null;g.show&&_&&function(e,t,n){for(t=me(t,0),n=me(n,e.length-1);t<=n;){if(null!=e[t])return!0;t++}return!1}(m,Qn,ei)?(v=f.fill(I,p)||l,e=g._paths.clip):_=null,Ui(n,i,o,s,v,r,a,c,u,d,e,_),h=!0}})),h||Ui(n,i,o,s,l,r,a,c,u,d)}(e,a,u,i.dash,i.cap,c,o,s,r,d,l),f&&oe.translate(-h,-h)}I.setData=Ii;const Pi=Un|Nn;function Ui(e,t,n,i,o,s,l,r,a,c,u,d){Mi(e,t,n,i,o),(a||c||d)&&(oe.save(),a&&oe.clip(a),c&&oe.clip(c)),d?(r&Pi)==Pi?(oe.clip(d),u&&oe.clip(u),ji(o,l),Ni(e,s,t)):r&Nn?(ji(o,l),oe.clip(d),Ni(e,s,t)):r&Un&&(oe.save(),oe.clip(d),u&&oe.clip(u),ji(o,l),oe.restore(),Ni(e,s,t)):(ji(o,l),Ni(e,s,t)),(a||c||d)&&oe.restore()}function Ni(e,t,n){n>0&&(t instanceof Map?t.forEach(((e,t)=>{oe.strokeStyle=ni=t,oe.stroke(e)})):null!=t&&e&&oe.stroke(t))}function ji(e,t){t instanceof Map?t.forEach(((e,t)=>{oe.fillStyle=ii=t,oe.fill(e)})):null!=t&&e&&oe.fill(t)}function Xi(e,t,n,i,o,s,l,r,a,c){let u=l%2/2;1==_e&&oe.translate(u,u),Mi(r,l,a,c,r),oe.beginPath();let d,h,f,p,g=o+(0==i||3==i?-s:s);0==n?(h=o,p=g):(d=o,f=g);for(let m=0;m<e.length;m++)null!=t[m]&&(0==n?d=f=e[m]:h=p=e[m],oe.moveTo(d,h),oe.lineTo(f,p));oe.stroke(),1==_e&&oe.translate(-u,-u)}function zi(e){let t=!0;return Me.forEach(((n,i)=>{if(!n.show)return;let o=Fe[n.scale];if(null==o.min)return void(n._show&&(t=!1,n._show=!1,Yi(!1)));n._show||(t=!1,n._show=!0,Yi(!1));let s=n.side,l=s%2,{min:r,max:a}=o,[c,u]=function(e,t,n,i){let o,s=Me[e];if(i<=0)o=[0,0];else{let l=s._space=s.space(I,e,t,n,i);o=Ei(t,n,s._incrs=s.incrs(I,e,t,n,i,l),i,l)}return s._found=o}(i,r,a,0==l?en:tn);if(0==u)return;let d=2==o.distr,h=n._splits=n.splits(I,i,r,a,c,u,d),f=2==o.distr?h.map((e=>Oi[e])):h,p=2==o.distr?Oi[h[1]]-Oi[h[0]]:c,g=n._values=n.values(I,n.filter(I,f,i,u,p),i,u,p);n._rotate=2==s?n.rotate(I,g,i,u):0;let m=n._size;n._size=Ae(n.size(I,g,i,e)),null!=m&&n._size!=m&&(t=!1)})),t}function Hi(e){let t=!0;return Zn.forEach(((n,i)=>{let o=n(I,i,qn,e);o!=$n[i]&&(t=!1),$n[i]=o})),t}function Yi(e){be.forEach(((t,n)=>{n>0&&(t._paths=null,e&&(1==U?(t.min=null,t.max=null):t.facets.forEach((e=>{e.min=null,e.max=null}))))}))}let Bi,Vi,Wi,Gi,qi,Ki,Zi,$i,Ji,Qi,eo,to,no=!1;function io(){no||(ft(oo),no=!0)}function oo(){un&&(!function(){let e=rt(Fe,st);for(let t in e){let n=e[t],i=ht[t];if(null!=i&&null!=i.min)at(n,i),t==Ye&&Yi(!0);else if(t!=Ye||2==U)if(0==Jn&&null==n.from){let e=n.range(I,null,null,t);n.min=e[0],n.max=e[1]}else n.min=Re,n.max=-Re}if(Jn>0){be.forEach(((n,i)=>{if(1==U){let o=n.scale,s=e[o],l=ht[o];if(0==i){let e=s.range(I,s.min,s.max,o);s.min=e[0],s.max=e[1],Qn=re(s.min,t[0]),ei=re(s.max,t[0]),ei-Qn>1&&(t[0][Qn]<s.min&&Qn++,t[0][ei]>s.max&&ei--),n.min=Oi[Qn],n.max=Oi[ei]}else n.show&&n.auto&&Ci(s,l,n,t[i],n.sorted);n.idxs[0]=Qn,n.idxs[1]=ei}else if(i>0&&n.show&&n.auto){let[o,s]=n.facets,l=o.scale,r=s.scale,[a,c]=t[i];Ci(e[l],ht[l],o,a,o.sorted),Ci(e[r],ht[r],s,c,s.sorted),n.min=s.min,n.max=s.max}}));for(let t in e){let n=e[t],i=ht[t];if(null==n.from&&(null==i||null==i.min)){let e=n.range(I,n.min==Re?null:n.min,n.max==-Re?null:n.max,t);n.min=e[0],n.max=e[1]}}}for(let t in e){let n=e[t];if(null!=n.from){let i=e[n.from];if(null==i.min)n.min=n.max=null;else{let e=n.range(I,i.min,i.max,t);n.min=e[0],n.max=e[1]}}}let n={},i=!1;for(let t in e){let o=e[t],s=Fe[t];if(s.min!=o.min||s.max!=o.max){s.min=o.min,s.max=o.max;let e=s.distr;s._min=3==e?De(s.min):4==e?Ce(s.min,s.asinh):s.min,s._max=3==e?De(s.max):4==e?Ce(s.max,s.asinh):s.max,n[t]=i=!0}}if(i){be.forEach(((e,t)=>{2==U?t>0&&n.y&&(e._paths=null):n[e.scale]&&(e._paths=null)}));for(let e in n)bn=!0,Bo("setScale",e);jn.show&&jn.left>=0&&(wn=Sn=!0)}for(let t in ht)ht[t]=null}(),un=!1),bn&&(!function(){let e=!1,t=0;for(;!e;){t++;let n=zi(t),i=Hi(t);e=t==Fn||n&&i,e||(In(I.width,I.height),yn=!0)}}(),bn=!1),yn&&(q(fe,O,nn),q(fe,A,sn),q(fe,S,en),q(fe,x,tn),q(pe,O,nn),q(pe,A,sn),q(pe,S,en),q(pe,x,tn),q(ae,S,Xt),q(ae,x,Kt),ie.width=xe(Xt*B),ie.height=xe(Kt*B),Me.forEach((e=>{let{_el:t,_show:n,_size:i,_pos:o,side:s}=e;if(null!=t)if(n){let e=s%2==1;q(t,e?"left":"top",o-(3===s||0===s?i:0)),q(t,e?"width":"height",i),q(t,e?"top":"left",e?sn:nn),q(t,e?"height":"width",e?tn:en),G(t,d)}else W(t,d)})),ni=ii=oi=li=ri=ai=ui=Ai=si=null,Ti=1,Io(!0),Bo("setSize"),yn=!1),Xt>0&&Kt>0&&(oe.clearRect(0,0,ie.width,ie.height),Bo("drawClear"),Ze.forEach((e=>e())),Bo("draw")),uo.show&&En&&(fo(uo),En=!1),jn.show&&wn&&(Oo(null,!0,!1),wn=!1),bt.show&&bt.live&&Sn&&(Ao(),Sn=!1),Q||(Q=!0,I.status=1,Bo("ready")),Li=!1,no=!1}function so(e,n){let i=Fe[e];if(null==i.from){if(0==Jn){let t=i.range(I,n.min,n.max,e);n.min=t[0],n.max=t[1]}if(n.min>n.max){let e=n.min;n.min=n.max,n.max=e}if(Jn>1&&null!=n.min&&null!=n.max&&n.max-n.min<1e-16)return;e==Ye&&2==i.distr&&Jn>0&&(n.min=re(n.min,t[0]),n.max=re(n.max,t[0]),n.min==n.max&&n.max++),ht[e]=n,un=!0,io()}}I.redraw=(e,t)=>{bn=t||!1,!1!==e?po(Ye,lt.min,lt.max):io()},I.setScale=so;let lo=!1;const ro=jn.drag;let ao=ro.x,co=ro.y;jn.show&&(jn.x&&(Bi=Z(f,pe)),jn.y&&(Vi=Z(p,pe)),0==lt.ori?(Wi=Bi,Gi=Vi):(Wi=Vi,Gi=Bi),eo=jn.left,to=jn.top);const uo=I.select=at({show:!0,over:!0,left:0,width:0,top:0,height:0},e.select),ho=uo.show?Z(h,uo.over?pe:fe):null;function fo(e,t){if(uo.show){for(let t in e)uo[t]=e[t],t in ko&&q(ho,t,e[t]);!1!==t&&Bo("setSelect")}}function po(e,t,n){so(e,{min:t,max:n})}function go(e,t,n,i){null!=t.focus&&function(e){if(e!=vo){let t=null==e,n=1!=Yn.alpha;be.forEach(((i,o)=>{let s=t||0==o||o==e;i._focus=t?null:s,n&&function(e,t){be[e].alpha=t,jn.show&&Wn[e]&&(Wn[e].style.opacity=t);wt&&Dt[e]&&(Dt[e].style.opacity=t)}(o,s?1:Yn.alpha)})),vo=e,n&&io()}}(e),null!=t.show&&be.forEach(((n,i)=>{i>0&&(e==i||null==e)&&(n.show=t.show,function(e,t){let n=be[e],i=wt?Dt[e]:null;n.show?i&&G(i,d):(i&&W(i,d),Wn.length>1&&J(Wn[e],-10,-10,en,tn))}(i,t.show),po(2==U?n.facets[1].scale:n.scale,null,null),io())})),!1!==n&&Bo("setSeries",e,t),i&&Ko("setSeries",I,e,t)}let mo,_o,vo;I.setSelect=fo,I.setSeries=go,I.addBand=function(e,t){e.fill=Ue(e.fill||null),e.dir=me(e.dir,-1),t=null==t?Ne.length:t,Ne.splice(t,0,e)},I.setBand=function(e,t){at(Ne[e],t)},I.delBand=function(e){null==e?Ne.length=0:Ne.splice(e,1)};const yo={focus:!0};function bo(e,t,n){let i=Fe[t];n&&(e=e/B-(1==i.ori?sn:nn));let o=en;1==i.ori&&(o=tn,e=o-e),-1==i.dir&&(e=o-e);let s=i._min,l=s+(i._max-s)*(e/o),r=i.distr;return 3==r?Le(10,l):4==r?ke(l,i.asinh):l}function wo(e,t){q(ho,O,uo.left=e),q(ho,S,uo.width=t)}function Eo(e,t){q(ho,A,uo.top=e),q(ho,x,uo.height=t)}wt&&Bn&&Nt(F,xt,(e=>{jn._lock||(Xn(e),null!=vo&&go(null,yo,!0,Wo.setSeries))})),I.valToIdx=e=>re(e,t[0]),I.posToIdx=function(e,n){return re(bo(e,Ye,n),t[0],Qn,ei)},I.posToVal=bo,I.valToPos=(e,t,n)=>0==Fe[t].ori?Y(e,Fe[t],n?an:en,n?ln:0):V(e,Fe[t],n?cn:tn,n?rn:0),I.batch=function(e){e(I),io()},I.setCursor=(e,t,n)=>{eo=e.left,to=e.top,Oo(null,t,n)};let So=0==lt.ori?wo:Eo,xo=1==lt.ori?wo:Eo;function Ao(e,t){null!=e&&(e.idxs?e.idxs.forEach(((e,t)=>{yt[t]=e})):nt(e.idx)||yt.fill(e.idx),bt.idx=yt[0]);for(let n=0;n<be.length;n++)(n>0||1==U&&!kt)&&To(n,yt[n]);wt&&bt.live&&function(){if(wt&&bt.live)for(let e=2==U?1:0;e<be.length;e++){if(0==e&&kt)continue;let t=bt.values[e],n=0;for(let i in t)Mt[e][n++].firstChild.nodeValue=t[i]}}(),Sn=!1,!1!==t&&Bo("setLegend")}function To(e,n){var i;let o,s=be[e],l=0==e&&2==ct?Oi:t[e];kt?o=null!==(i=s.values(I,e,n))&&void 0!==i?i:Ct:(o=s.value(I,null==n?null:l[n],e,n),o=null==o?Ct:{_:o}),bt.values[e]=o}function Oo(e,n,i){let o;Ji=eo,Qi=to,[eo,to]=jn.move(I,eo,to),jn.show&&(Wi&&J(Wi,xe(eo),0,en,tn),Gi&&J(Gi,0,xe(to),en,tn));let s=Qn>ei;mo=Re;let l=0==lt.ori?en:tn,r=1==lt.ori?en:tn;if(eo<0||0==Jn||s){o=null;for(let e=0;e<be.length;e++)e>0&&Wn.length>1&&J(Wn[e],-10,-10,en,tn);Bn&&go(null,yo,!0,null==e&&Wo.setSeries),bt.live&&(yt.fill(o),Sn=!0)}else{let e,n,i;1==U&&(e=0==lt.ori?eo:to,n=bo(e,Ye),o=re(n,t[0],Qn,ei),i=ut(t[0][o],lt,l,0));for(let s=2==U?1:0;s<be.length;s++){let e=be[s],a=yt[s],c=1==U?t[s][a]:t[s][1][a],u=jn.dataIdx(I,s,o,n),d=1==U?t[s][u]:t[s][1][u];Sn=Sn||d!=c||u!=a,yt[s]=u;let h=Ve(u==o?i:ut(1==U?t[0][u]:t[s][0][u],lt,l,0),1);if(s>0&&e.show){let t,n,i=null==d?-10:Ve(dt(d,1==U?Fe[e.scale]:Fe[e.facets[1].scale],r,0),1);if(Bn&&i>=0&&1==U){let t=Ee(i-to);if(t<mo){let n=Yn.bias;if(0!=n){let i=bo(1==lt.ori?eo:to,e.scale),o=i>=0?1:-1;o==(d>=0?1:-1)&&(1==o?1==n?d>=i:d<=i:1==n?d<=i:d>=i)&&(mo=t,_o=s)}else mo=t,_o=s}}if(0==lt.ori?(t=h,n=i):(t=i,n=h),Sn&&Wn.length>1){ee(Wn[s],jn.points.fill(I,s),jn.points.stroke(I,s));let e,i,o,l,r=!0,a=jn.points.bbox;if(null!=a){r=!1;let t=a(I,s);o=t.left,l=t.top,e=t.width,i=t.height}else o=t,l=n,e=i=jn.points.size(I,s);ne(Wn[s],e,i,r),J(Wn[s],o,l,en,tn)}}}}if(jn.idx=o,jn.left=eo,jn.top=to,Sn&&(bt.idx=o,Ao()),uo.show&&lo)if(null!=e){let[t,n]=Wo.scales,[i,o]=Wo.match,[s,a]=e.cursor.sync.scales,c=e.cursor.drag;if(ao=c._x,co=c._y,ao||co){let c,u,d,h,f,{left:p,top:g,width:m,height:_}=e.select,v=e.scales[t].ori,y=e.posToVal,b=null!=t&&i(t,s),w=null!=n&&o(n,a);b&&ao?(0==v?(c=p,u=m):(c=g,u=_),d=Fe[t],h=ut(y(c,s),d,l,0),f=ut(y(c+u,s),d,l,0),So(Te(h,f),Ee(f-h))):So(0,l),w&&co?(1==v?(c=p,u=m):(c=g,u=_),d=Fe[n],h=dt(y(c,a),d,r,0),f=dt(y(c+u,a),d,r,0),xo(Te(h,f),Ee(f-h))):xo(0,r)}else Co()}else{let e=Ee(Ji-qi),t=Ee(Qi-Ki);if(1==lt.ori){let n=e;e=t,t=n}ao=ro.x&&e>=ro.dist,co=ro.y&&t>=ro.dist;let n,i,o=ro.uni;null!=o?ao&&co&&(ao=e>=o,co=t>=o,ao||co||(t>e?co=!0:ao=!0)):ro.x&&ro.y&&(ao||co)&&(ao=co=!0),ao&&(0==lt.ori?(n=Zi,i=eo):(n=$i,i=to),So(Te(n,i),Ee(i-n)),co||xo(0,r)),co&&(1==lt.ori?(n=Zi,i=eo):(n=$i,i=to),xo(Te(n,i),Ee(i-n)),ao||So(0,l)),ao||co||(So(0,0),xo(0,0))}if(ro._x=ao,ro._y=co,null==e){if(i){if(null!=Go){let[e,t]=Wo.scales;Wo.values[0]=null!=e?bo(0==lt.ori?eo:to,e):null,Wo.values[1]=null!=t?bo(1==lt.ori?eo:to,t):null}Ko(M,I,eo,to,en,tn,o)}if(Bn){let e=i&&Wo.setSeries,t=Yn.prox;null==vo?mo<=t&&go(_o,yo,!0,e):mo>t?go(null,yo,!0,e):_o!=vo&&go(_o,yo,!0,e)}}!1!==n&&Bo("setCursor")}I.setLegend=Ao;let Lo=null;function Io(){arguments.length>0&&void 0!==arguments[0]&&arguments[0]?Lo=null:(Lo=pe.getBoundingClientRect(),Bo("syncRect",Lo))}function Do(e,t,n,i,o,s,l){jn._lock||lo&&null!=e&&0==e.movementX&&0==e.movementY||(Mo(e,t,n,i,o,s,l,!1,null!=e),null!=e?Oo(null,!0,!0):Oo(t,!0,!1))}function Mo(e,t,n,i,o,s,l,r,a){if(null==Lo&&Io(!1),Xn(e),null!=e)n=e.clientX-Lo.left,i=e.clientY-Lo.top;else{if(n<0||i<0)return eo=-10,void(to=-10);let[e,l]=Wo.scales,r=t.cursor.sync,[a,c]=r.values,[u,d]=r.scales,[h,f]=Wo.match,p=t.axes[0].side%2==1,g=0==lt.ori?en:tn,m=1==lt.ori?en:tn,_=p?s:o,v=p?o:s,y=p?i:n,b=p?n:i;if(n=null!=u?h(e,u)?$(a,Fe[e],g,0):-10:g*(y/_),i=null!=d?f(l,d)?$(c,Fe[l],m,0):-10:m*(b/v),1==lt.ori){let e=n;n=i,i=e}}a&&((n<=1||n>=en-1)&&(n=Be(n,en)),(i<=1||i>=tn-1)&&(i=Be(i,tn))),r?(qi=n,Ki=i,[Zi,$i]=jn.move(I,n,i)):(eo=n,to=i)}Object.defineProperty(I,"rect",{get:()=>(null==Lo&&Io(!1),Lo)});const ko={width:0,height:0,left:0,top:0};function Co(){fo(ko,!1)}let Ro,Fo,Po,Uo;function No(e,t,n,i,o,s,l){lo=!0,ao=co=ro._x=ro._y=!1,Mo(e,t,n,i,o,s,0,!0,!1),null!=e&&(Nt(C,z,jo,!1),Ko(k,I,Zi,$i,en,tn,null));let{left:r,top:a,width:c,height:u}=uo;Ro=r,Fo=a,Po=c,Uo=u,Co()}function jo(e,t,n,i,o,s,l){lo=ro._x=ro._y=!1,Mo(e,t,n,i,o,s,0,!1,!0);let{left:r,top:a,width:c,height:u}=uo,d=c>0||u>0,h=Ro!=r||Fo!=a||Po!=c||Uo!=u;if(d&&h&&fo(uo),ro.setScale&&d&&h){let e=r,t=c,n=a,i=u;if(1==lt.ori&&(e=a,t=u,n=r,i=c),ao&&po(Ye,bo(e,Ye),bo(e+t,Ye)),co)for(let o in Fe){let e=Fe[o];o!=Ye&&null==e.from&&e.min!=Re&&po(o,bo(n+i,o),bo(n,o))}Co()}else jn.lock&&(jn._lock=!jn._lock,jn._lock||Oo(null,!0,!1));null!=e&&(jt(C,z),Ko(C,I,eo,to,en,tn,null))}function Xo(e,t,n,i,o,s,l){jn._lock||(Xn(e),Di(),Co(),null!=e&&Ko(P,I,eo,to,en,tn,null))}function zo(){Me.forEach(xi),Ln(I.width,I.height,!0)}se(N,H,zo);const Ho={};Ho.mousedown=No,Ho.mousemove=Do,Ho.mouseup=jo,Ho.dblclick=Xo,Ho.setSeries=(e,t,n,i)=>{-1!=(n=(0,Wo.match[2])(I,t,n))&&go(n,i,!0,!1)},jn.show&&(Nt(k,pe,No),Nt(M,pe,Do),Nt(R,pe,(e=>{Xn(e),Io(!1)})),Nt(F,pe,(function(e,t,n,i,o,s,l){if(jn._lock)return;Xn(e);let r=lo;if(lo){let e,t,n=!0,i=!0,o=10;0==lt.ori?(e=ao,t=co):(e=co,t=ao),e&&t&&(n=eo<=o||eo>=en-o,i=to<=o||to>=tn-o),e&&n&&(eo=eo<Zi?0:en),t&&i&&(to=to<$i?0:tn),Oo(null,!0,!0),lo=!1}eo=-10,to=-10,Oo(null,!0,!0),r&&(lo=r)})),Nt(P,pe,Xo),ci.add(I),I.syncRect=Io);const Yo=I.hooks=e.hooks||{};function Bo(e,t,n){e in Yo&&Yo[e].forEach((e=>{e.call(null,I,t,n)}))}(e.plugins||[]).forEach((e=>{for(let t in e.hooks)Yo[t]=(Yo[t]||[]).concat(e.hooks[t])}));const Vo=(e,t,n)=>n,Wo=at({key:null,setSeries:!1,filters:{pub:ze,sub:ze},scales:[Ye,be[1]?be[1].scale:null],match:[He,He,Vo],values:[null,null]},jn.sync);2==Wo.match.length&&Wo.match.push(Vo),jn.sync=Wo;const Go=Wo.key,qo=Pn(Go);function Ko(e,t,n,i,o,s,l){Wo.filters.pub(e,t,n,i,o,s,l)&&qo.pub(e,t,n,i,o,s,l)}function Zo(){Bo("init",e,t),Ii(t||e.data,!1),ht[Ye]?so(Ye,ht[Ye]):Di(),En=uo.show&&(uo.width>0||uo.height>0),wn=Sn=!0,Ln(e.width,e.height)}return qo.sub(I),I.pub=function(e,t,n,i,o,s,l){Wo.filters.sub(e,t,n,i,o,s,l)&&Ho[e](null,t,n,i,o,s,l)},I.destroy=function(){var e;qo.unsub(I),ci.delete(I),Ut.clear(),le(N,H,zo),te.remove(),null===(e=xt)||void 0===e||e.remove(),Bo("destroy")},be.forEach(Gn),Me.forEach((function(e,t){if(e._show=e.show,e.show){let n=e.side%2,i=Fe[e.scale];null==i&&(e.scale=n?be[1].scale:Ye,i=Fe[e.scale]);let o=i.time;e.size=Ue(e.size),e.space=Ue(e.space),e.rotate=Ue(e.rotate),et(e.incrs)&&e.incrs.forEach((e=>{!qe.has(e)&&qe.set(e,Ke(e))})),e.incrs=Ue(e.incrs||(2==i.distr?Lt:o?1==ye?zt:Bt:It)),e.splits=Ue(e.splits||(o&&1==i.distr?mt:3==i.distr?_n:4==i.distr?vn:mn)),e.stroke=Ue(e.stroke),e.grid.stroke=Ue(e.grid.stroke),e.ticks.stroke=Ue(e.ticks.stroke),e.border.stroke=Ue(e.border.stroke);let s=e.values;e.values=et(s)&&!et(s[0])?Ue(s):o?et(s)?qt(pt,Gt(s,gt)):it(s)?function(e,t){let n=Et(t);return(t,i,o,s,l)=>i.map((t=>n(e(t))))}(pt,s):s||_t:s||gn,e.filter=Ue(e.filter||(i.distr>=3&&10==i.log?xn:3==i.distr&&2==i.log?An:je)),e.font=Si(e.font),e.labelFont=Si(e.labelFont),e._size=e.size(I,null,t,0),e._space=e._rotate=e._incrs=e._found=e._splits=e._values=null,e._size>0&&(qn[t]=!0,e._el=Z(u,ae))}})),n?n instanceof HTMLElement?(n.appendChild(te),Zo()):n(I,Zo):Zo(),I}Ai.assign=at,Ai.fmtNum=ye,Ai.rangeNum=ge,Ai.rangeLog=ce,Ai.rangeAsinh=ue,Ai.orient=jn,Ai.pxRatio=B,Ai.join=function(e,t){if(function(e){let t=e[0][0],n=t.length;for(let i=1;i<e.length;i++){let o=e[i][0];if(o.length!=n)return!1;if(o!=t)for(let e=0;e<n;e++)if(o[e]!=t[e])return!1}return!0}(e)){let t=e[0].slice();for(let n=1;n<e.length;n++)t.push(...e[n].slice(1));return function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;const n=e.length;if(n<=1)return!0;let i=0,o=n-1;for(;i<=o&&null==e[i];)i++;for(;o>=i&&null==e[o];)o--;if(o<=i)return!0;const s=Oe(1,Se((o-i+1)/t));for(let l=e[i],r=i+s;r<=o;r+=s){const t=e[r];if(null!=t){if(t<=l)return!1;l=t}}return!0}(t[0])||(t=function(e){let t=e[0],n=t.length,i=Array(n);for(let s=0;s<i.length;s++)i[s]=s;i.sort(((e,n)=>t[e]-t[n]));let o=[];for(let s=0;s<e.length;s++){let t=e[s],l=Array(n);for(let e=0;e<n;e++)l[e]=t[i[e]];o.push(l)}return o}(t)),t}let n=new Set;for(let l=0;l<e.length;l++){let t=e[l][0],i=t.length;for(let e=0;e<i;e++)n.add(t[e])}let i=[Array.from(n).sort(((e,t)=>e-t))],o=i[0].length,s=new Map;for(let l=0;l<o;l++)s.set(i[0][l],l);for(let l=0;l<e.length;l++){let n=e[l],r=n[0];for(let e=1;e<n.length;e++){let a=n[e],c=Array(o).fill(void 0),u=t?t[l][e]:ut,d=[];for(let e=0;e<a.length;e++){let t=a[e],n=s.get(r[e]);null===t?u!=ct&&(c[n]=t,u==dt&&d.push(n)):c[n]=t}ht(c,d,o),i.push(c)}}return i},Ai.fmtDate=Et,Ai.tzDate=function(e,t){let n;return"UTC"==t||"Etc/UTC"==t?n=new Date(+e+6e4*e.getTimezoneOffset()):t==St?n=e:(n=new Date(e.toLocaleString("en-US",{timeZone:t})),n.setMilliseconds(e.getMilliseconds())),n},Ai.sync=Pn;{Ai.addGap=function(e,t,n){let i=e[e.length-1];i&&i[0]==t?i[1]=n:e.push([t,n])},Ai.clipGaps=Yn;let e=Ai.paths={points:ii};e.linear=ri,e.stepped=function(e){const t=me(e.align,1),n=me(e.ascDesc,!1),i=me(e.alignGaps,0),o=me(e.extend,!1);return(e,s,l,r)=>jn(e,s,((a,c,u,d,h,f,p,g,m,_,v)=>{let y=a.pxRound,{left:b,width:w}=e.bbox,E=e=>y(f(e,d,_,g)),S=e=>y(p(e,h,v,m)),x=0==d.ori?Kn:Zn;const A={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Un},T=A.stroke,O=d.dir*(0==d.ori?1:-1);l=ae(u,l,r,1),r=ae(u,l,r,-1);let L=S(u[1==O?l:r]),I=E(c[1==O?l:r]),D=I,M=I;o&&-1==t&&(M=b,x(T,M,L)),x(T,I,L);for(let e=1==O?l:r;e>=l&&e<=r;e+=O){let n=u[e];if(null==n)continue;let i=E(c[e]),o=S(n);1==t?x(T,i,L):x(T,D,o),x(T,i,o),L=o,D=i}let k=D;o&&1==t&&(k=b+w,x(T,k,L));let[C,R]=Xn(e,s);if(null!=a.fill||0!=C){let t=A.fill=new Path2D(T),n=S(a.fillTo(e,s,a.min,a.max,C));x(t,k,n),x(t,M,n)}if(!a.spanGaps){let o=[];o.push(...Bn(c,u,l,r,O,E,i));let h=a.width*B/2,f=n||1==t?h:-h,p=n||-1==t?-h:h;o.forEach((e=>{e[0]+=f,e[1]+=p})),A.gaps=o=a.gaps(e,s,l,r,o),A.clip=Yn(o,d.ori,g,m,_,v)}return 0!=R&&(A.band=2==R?[Hn(e,s,l,r,T,-1),Hn(e,s,l,r,T,1)]:Hn(e,s,l,r,T,R)),A}))},e.bars=function(e){const t=me((e=e||$e).size,[.6,Re,1]),n=e.align||0,i=(e.gap||0)*B;let o=e.radius;o=null==o?[0,0]:"number"==typeof o?[o,0]:o;const s=Ue(o),l=1-t[0],r=me(t[1],Re)*B,a=me(t[2],1)*B,c=me(e.disp,$e),u=me(e.each,(e=>{})),{fill:d,stroke:h}=c;return(e,t,o,f)=>jn(e,t,((p,g,m,_,v,y,b,w,E,S,x)=>{let A,T,O=p.pxRound;0==_.ori?[A,T]=s(e,t):[T,A]=s(e,t);const L=_.dir*(0==_.ori?1:-1),I=v.dir*(1==v.ori?1:-1);let D,M,k=0==_.ori?$n:Jn,C=0==_.ori?u:(e,t,n,i,o,s,l)=>{u(e,t,n,o,i,l,s)},[R,F]=Xn(e,t),P=3==v.distr?1==R?v.max:v.min:0,U=b(P,v,x,E),N=O(p.width*B),j=!1,X=null,z=null,H=null,Y=null;null==d||0!=N&&null==h||(j=!0,X=d.values(e,t,o,f),z=new Map,new Set(X).forEach((e=>{null!=e&&z.set(e,new Path2D)})),N>0&&(H=h.values(e,t,o,f),Y=new Map,new Set(H).forEach((e=>{null!=e&&Y.set(e,new Path2D)}))));let{x0:V,size:W}=c,G=!0;if(null!=V&&null!=W){g=V.values(e,t,o,f),2==V.unit&&(g=g.map((t=>e.posToVal(w+t*S,_.key,!0))));let n=W.values(e,t,o,f);M=2==W.unit?n[0]*S:y(n[0],_,S,w)-y(0,_,S,w),N>=M/2&&(N=0),M=O(Pe(M-N,a,r)),D=1==L?-N/2:M+N/2}else{let e=S;if(g.length>1){let t=null;for(let n=0,i=1/0;n<g.length;n++)if(void 0!==m[n]){if(null!=t){let o=Ee(g[n]-g[t]);o<i&&(i=o,e=Ee(y(g[n],_,S,w)-y(g[t],_,S,w)))}t=n}}let t=e*l;M=e-t-i,N>=M/2&&(N=0),t+i<5&&(O=Ne),M=O(Pe(e-t,a,r)-N-i),D=(0==n?M/2:n==L?0:M)-n*L*i/2,M+N>e&&(G=!1)}const q={stroke:null,fill:null,clip:null,band:null,gaps:null,flags:Un|Nn};let K;0!=F&&(q.band=new Path2D,K=O(b(1==F?v.max:v.min,v,x,E)));const Z=j?null:new Path2D,$=q.band;let{y0:J,y1:Q}=c,ee=null;null!=J&&null!=Q&&(m=Q.values(e,t,o,f),ee=J.values(e,t,o,f));let te=A*M,ne=T*M;for(let n=1==L?o:f;n>=o&&n<=f;n+=L){let i=m[n];if(void 0===i)continue;let o=y(2!=_.distr||null!=c?g[n]:n,_,S,w),s=b(me(i,P),v,x,E);null!=ee&&null!=i&&(U=b(ee[n],v,x,E));let l=O(o-D),r=O(Oe(s,U)),a=O(Te(s,U)),u=r-a;if(null!=i){let o=i<0?ne:te,s=i<0?te:ne;j?(N>0&&null!=H[n]&&k(Y.get(H[n]),l,a+Se(N/2),M,Oe(0,u-N),o,s),null!=X[n]&&k(z.get(X[n]),l,a+Se(N/2),M,Oe(0,u-N),o,s)):k(Z,l,a+Se(N/2),M,Oe(0,u-N),o,s),C(e,t,n,l-N/2,a,M+N,u)}0==F||null==i&&!G||(I*F==1?(r=a,a=K):(a=r,r=K),u=r-a,k($,l-N/2,a,M+N,Oe(0,u),0,0))}if(N>0)q.stroke=j?Y:Z;else if(!j){var ie;q._fill=0==p.width?p._fill:null!==(ie=p._stroke)&&void 0!==ie?ie:p._fill,q.width=0}return q.fill=j?z:Z,q}))},e.spline=function(e){return function(e,t){const n=me(null===t||void 0===t?void 0:t.alignGaps,0);return(t,i,o,s)=>jn(t,i,((l,r,a,c,u,d,h,f,p,g,m)=>{let _,v,y,b=l.pxRound,w=e=>b(d(e,c,g,f)),E=e=>b(h(e,u,m,p));0==c.ori?(_=Gn,y=Kn,v=ti):(_=qn,y=Zn,v=ni);const S=c.dir*(0==c.ori?1:-1);o=ae(a,o,s,1),s=ae(a,o,s,-1);let x=w(r[1==S?o:s]),A=x,T=[],O=[];for(let e=1==S?o:s;e>=o&&e<=s;e+=S)if(null!=a[e]){let t=w(r[e]);T.push(A=t),O.push(E(a[e]))}const L={stroke:e(T,O,_,y,v,b),fill:null,clip:null,band:null,gaps:null,flags:Un},I=L.stroke;let[D,M]=Xn(t,i);if(null!=l.fill||0!=D){let e=L.fill=new Path2D(I),n=E(l.fillTo(t,i,l.min,l.max,D));y(e,A,n),y(e,x,n)}if(!l.spanGaps){let e=[];e.push(...Bn(r,a,o,s,S,w,n)),L.gaps=e=l.gaps(t,i,o,s,e),L.clip=Yn(e,c.ori,f,p,g,m)}return 0!=M&&(L.band=2==M?[Hn(t,i,o,s,I,-1),Hn(t,i,o,s,I,1)]:Hn(t,i,o,s,I,M)),L}))}(ai,e)}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7661.dd104c3c.chunk.js b/ydb/core/viewer/monitoring/static/js/7661.dd104c3c.chunk.js deleted file mode 100644 index 5f33ae2a519b..000000000000 --- a/ydb/core/viewer/monitoring/static/js/7661.dd104c3c.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7661],{77661:function(e,n,t){t.r(n),t.d(n,{conf:function(){return s},language:function(){return o}});var s={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*#region\\b|^\\s*\\(\\*\\s*#region(.*)\\*\\)"),end:new RegExp("^\\s*//\\s*#endregion\\b|^\\s*\\(\\*\\s*#endregion\\s*\\*\\)")}}},o={defaultToken:"",tokenPostfix:".fs",keywords:["abstract","and","atomic","as","assert","asr","base","begin","break","checked","component","const","constraint","constructor","continue","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","eager","event","external","extern","false","finally","for","fun","function","fixed","functor","global","if","in","include","inherit","inline","interface","internal","land","lor","lsl","lsr","lxor","lazy","let","match","member","mod","module","mutable","namespace","method","mixin","new","not","null","of","open","or","object","override","private","parallel","process","protected","pure","public","rec","return","static","sealed","struct","sig","then","to","true","tailcall","trait","try","type","upcast","use","val","void","virtual","volatile","when","while","with","yield"],symbols:/[=><!~?:&|+\-*\^%;\.,\/]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/[uU]?[yslnLI]?/,floatsuffix:/[fFmM]?/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/\[<.*>\]/,"annotation"],[/^#(if|else|endif)/,"keyword"],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0x[0-9a-fA-F]+LF/,"number.float"],[/0x[0-9a-fA-F]+(@integersuffix)/,"number.hex"],[/0b[0-1]+(@integersuffix)/,"number.bin"],[/\d+(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string",'@string."""'],[/"/,"string",'@string."'],[/\@"/,{token:"string.quote",next:"@litstring"}],[/'[^\\']'B?/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\(\*(?!\))/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^*(]+/,"comment"],[/\*\)/,"comment","@pop"],[/\*/,"comment"],[/\(\*\)/,"comment"],[/\(/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/("""|"B?)/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]]}}}}]); -//# sourceMappingURL=7661.dd104c3c.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7664.9f9f696d.chunk.js b/ydb/core/viewer/monitoring/static/js/7664.9f9f696d.chunk.js deleted file mode 100644 index ee53b6b36ba8..000000000000 --- a/ydb/core/viewer/monitoring/static/js/7664.9f9f696d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7664],{27664:function(t,e,r){r.r(e),r.d(e,{conf:function(){return s},language:function(){return n}});var s={brackets:[],autoClosingPairs:[],surroundingPairs:[]},n={keywords:[],typeKeywords:[],tokenPostfix:".csp",operators:[],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/child-src/,"string.quote"],[/connect-src/,"string.quote"],[/default-src/,"string.quote"],[/font-src/,"string.quote"],[/frame-src/,"string.quote"],[/img-src/,"string.quote"],[/manifest-src/,"string.quote"],[/media-src/,"string.quote"],[/object-src/,"string.quote"],[/script-src/,"string.quote"],[/style-src/,"string.quote"],[/worker-src/,"string.quote"],[/base-uri/,"string.quote"],[/plugin-types/,"string.quote"],[/sandbox/,"string.quote"],[/disown-opener/,"string.quote"],[/form-action/,"string.quote"],[/frame-ancestors/,"string.quote"],[/report-uri/,"string.quote"],[/report-to/,"string.quote"],[/upgrade-insecure-requests/,"string.quote"],[/block-all-mixed-content/,"string.quote"],[/require-sri-for/,"string.quote"],[/reflected-xss/,"string.quote"],[/referrer/,"string.quote"],[/policy-uri/,"string.quote"],[/'self'/,"string.quote"],[/'unsafe-inline'/,"string.quote"],[/'unsafe-eval'/,"string.quote"],[/'strict-dynamic'/,"string.quote"],[/'unsafe-hashed-attributes'/,"string.quote"]]}}}}]); -//# sourceMappingURL=7664.9f9f696d.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7684.a3920b72.chunk.js b/ydb/core/viewer/monitoring/static/js/7684.a3920b72.chunk.js new file mode 100644 index 000000000000..461f6053123b --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7684.a3920b72.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7684],{77684:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7768.2adb4751.chunk.js b/ydb/core/viewer/monitoring/static/js/7768.2adb4751.chunk.js deleted file mode 100644 index 328cf663187c..000000000000 --- a/ydb/core/viewer/monitoring/static/js/7768.2adb4751.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7768],{37768:function(e,n,s){s.r(n),s.d(n,{conf:function(){return t},language:function(){return o}});var t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"#",blockComment:["<#","#>"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},o={defaultToken:"",ignoreCase:!0,tokenPostfix:".ps1",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],keywords:["begin","break","catch","class","continue","data","define","do","dynamicparam","else","elseif","end","exit","filter","finally","for","foreach","from","function","if","in","param","process","return","switch","throw","trap","try","until","using","var","while","workflow","parallel","sequence","inlinescript","configuration"],helpKeywords:/SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,symbols:/[=><!~?&%|+\-*\/\^;\.,]+/,escapes:/`(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_][\w-]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":""}}],[/[ \t\r\n]+/,""],[/^:\w*/,"metatag"],[/\$(\{((global|local|private|script|using):)?[\w]+\}|((global|local|private|script|using):)?[\w]+)/,"variable"],[/<#/,"comment","@comment"],[/#.*$/,"comment"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+?/,"number"],[/[;,.]/,"delimiter"],[/\@"/,"string",'@herestring."'],[/\@'/,"string","@herestring.'"],[/"/,{cases:{"@eos":"string","@default":{token:"string",next:'@string."'}}}],[/'/,{cases:{"@eos":"string","@default":{token:"string",next:"@string.'"}}}]],string:[[/[^"'\$`]+/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/@escapes/,{cases:{"@eos":{token:"string.escape",next:"@popall"},"@default":"string.escape"}}],[/`./,{cases:{"@eos":{token:"string.escape.invalid",next:"@popall"},"@default":"string.escape.invalid"}}],[/\$[\w]+$/,{cases:{'$S2=="':{token:"variable",next:"@popall"},"@default":{token:"string",next:"@popall"}}}],[/\$[\w]+/,{cases:{'$S2=="':"variable","@default":"string"}}],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}}}]],herestring:[[/^\s*(["'])@/,{cases:{"$1==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/[^\$`]+/,"string"],[/@escapes/,"string.escape"],[/`./,"string.escape.invalid"],[/\$[\w]+/,{cases:{'$S2=="':"variable","@default":"string"}}]],comment:[[/[^#\.]+/,"comment"],[/#>/,"comment","@pop"],[/(\.)(@helpKeywords)(?!\w)/,{token:"comment.keyword.$2"}],[/[\.#]/,"comment"]]}}}}]); -//# sourceMappingURL=7768.2adb4751.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7779.9d9b07ae.chunk.js b/ydb/core/viewer/monitoring/static/js/7779.9d9b07ae.chunk.js new file mode 100644 index 000000000000..d3ff08da9cca --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7779.9d9b07ae.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7779],{77779:function(_,e,d){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var d=e(_),M={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(_){return _+"\uc77c"},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(_){return _<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 d.default.locale(M,null,!0),M}(d(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7803.a56cfca6.chunk.js b/ydb/core/viewer/monitoring/static/js/7803.a56cfca6.chunk.js new file mode 100644 index 000000000000..017d5727f940 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7803.a56cfca6.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7803],{67803:function(e,n,_){e.exports=function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=n(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 _.default.locale(i,null,!0),i}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/785.d2eae69c.chunk.js b/ydb/core/viewer/monitoring/static/js/785.d2eae69c.chunk.js new file mode 100644 index 000000000000..1aaea61aa008 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/785.d2eae69c.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 785.d2eae69c.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[785],{20785:(e,s,t)=>{t.r(s),t.d(s,{conf:()=>o,language:()=>E});var o={comments:{blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"(*",close:"*)"},{open:"<*",close:"*>"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}]},E={defaultToken:"",tokenPostfix:".m3",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["AND","ANY","ARRAY","AS","BEGIN","BITS","BRANDED","BY","CASE","CONST","DIV","DO","ELSE","ELSIF","END","EVAL","EXCEPT","EXCEPTION","EXIT","EXPORTS","FINALLY","FOR","FROM","GENERIC","IF","IMPORT","IN","INTERFACE","LOCK","LOOP","METHODS","MOD","MODULE","NOT","OBJECT","OF","OR","OVERRIDES","PROCEDURE","RAISE","RAISES","READONLY","RECORD","REF","REPEAT","RETURN","REVEAL","SET","THEN","TO","TRY","TYPE","TYPECASE","UNSAFE","UNTIL","UNTRACED","VALUE","VAR","WHILE","WITH"],reservedConstNames:["ABS","ADR","ADRSIZE","BITSIZE","BYTESIZE","CEILING","DEC","DISPOSE","FALSE","FIRST","FLOAT","FLOOR","INC","ISTYPE","LAST","LOOPHOLE","MAX","MIN","NARROW","NEW","NIL","NUMBER","ORD","ROUND","SUBARRAY","TRUE","TRUNC","TYPECODE","VAL"],reservedTypeNames:["ADDRESS","ANY","BOOLEAN","CARDINAL","CHAR","EXTENDED","INTEGER","LONGCARD","LONGINT","LONGREAL","MUTEX","NULL","REAL","REFANY","ROOT","TEXT"],operators:["+","-","*","/","&","^","."],relations:["=","#","<","<=",">",">=","<:",":"],delimiters:["|","..","=>",",",";",":="],symbols:/[>=<#.,:;+\-*/&^]+/,escapes:/\\(?:[\\fnrt"']|[0-7]{3})/,tokenizer:{root:[[/_\w*/,"invalid"],[/[a-zA-Z][a-zA-Z0-9_]*/,{cases:{"@keywords":{token:"keyword.$0"},"@reservedConstNames":{token:"constant.reserved.$0"},"@reservedTypeNames":{token:"type.reserved.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[0-9]+\.[0-9]+(?:[DdEeXx][\+\-]?[0-9]+)?/,"number.float"],[/[0-9]+(?:\_[0-9a-fA-F]+)?L?/,"number"],[/@symbols/,{cases:{"@operators":"operators","@relations":"operators","@delimiters":"delimiter","@default":"invalid"}}],[/'[^\\']'/,"string.char"],[/(')(@escapes)(')/,["string.char","string.escape","string.char"]],[/'/,"invalid"],[/"([^"\\]|\\.)*$/,"invalid"],[/"/,"string.text","@text"]],text:[[/[^\\"]+/,"string.text"],[/@escapes/,"string.escape"],[/\\./,"invalid"],[/"/,"string.text","@pop"]],comment:[[/\(\*/,"comment","@push"],[/\*\)/,"comment","@pop"],[/./,"comment"]],pragma:[[/<\*/,"keyword.pragma","@push"],[/\*>/,"keyword.pragma","@pop"],[/./,"keyword.pragma"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/<\*/,"keyword.pragma","@pragma"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/785.d2eae69c.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/785.d2eae69c.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/785.d2eae69c.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/7953.eb2256ce.chunk.js b/ydb/core/viewer/monitoring/static/js/7953.eb2256ce.chunk.js deleted file mode 100644 index e1db6a2598d6..000000000000 --- a/ydb/core/viewer/monitoring/static/js/7953.eb2256ce.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7953],{27953:function(e,n,t){t.r(n),t.d(n,{conf:function(){return i},language:function(){return o}});var i={comments:{lineComment:"*"},brackets:[["[","]"],["(",")"]]},o={defaultToken:"invalid",ignoreCase:!0,tokenPostfix:".abap",keywords:["abap-source","abbreviated","abstract","accept","accepting","according","activation","actual","add","add-corresponding","adjacent","after","alias","aliases","align","all","allocate","alpha","analysis","analyzer","append","appendage","appending","application","archive","area","arithmetic","as","ascending","aspect","assert","assign","assigned","assigning","association","asynchronous","at","attributes","authority","authority-check","avg","back","background","backup","backward","badi","base","before","begin","big","binary","bintohex","bit","black","blank","blanks","blob","block","blocks","blue","bound","boundaries","bounds","boxed","break-point","buffer","by","bypassing","byte","byte-order","call","calling","case","cast","casting","catch","center","centered","chain","chain-input","chain-request","change","changing","channels","character","char-to-hex","check","checkbox","ci_","circular","class","class-coding","class-data","class-events","class-methods","class-pool","cleanup","clear","client","clob","clock","close","coalesce","code","coding","col_background","col_group","col_heading","col_key","col_negative","col_normal","col_positive","col_total","collect","color","column","columns","comment","comments","commit","common","communication","comparing","component","components","compression","compute","concat","concat_with_space","concatenate","cond","condition","connect","connection","constants","context","contexts","continue","control","controls","conv","conversion","convert","copies","copy","corresponding","country","cover","cpi","create","creating","critical","currency","currency_conversion","current","cursor","cursor-selection","customer","customer-function","dangerous","data","database","datainfo","dataset","date","dats_add_days","dats_add_months","dats_days_between","dats_is_valid","daylight","dd/mm/yy","dd/mm/yyyy","ddmmyy","deallocate","decimal_shift","decimals","declarations","deep","default","deferred","define","defining","definition","delete","deleting","demand","department","descending","describe","destination","detail","dialog","directory","disconnect","display","display-mode","distinct","divide","divide-corresponding","division","do","dummy","duplicate","duplicates","duration","during","dynamic","dynpro","edit","editor-call","else","elseif","empty","enabled","enabling","encoding","end","endat","endcase","endcatch","endchain","endclass","enddo","endenhancement","end-enhancement-section","endexec","endform","endfunction","endian","endif","ending","endinterface","end-lines","endloop","endmethod","endmodule","end-of-definition","end-of-editing","end-of-file","end-of-page","end-of-selection","endon","endprovide","endselect","end-test-injection","end-test-seam","endtry","endwhile","endwith","engineering","enhancement","enhancement-point","enhancements","enhancement-section","entries","entry","enum","environment","errormessage","errors","escaping","event","events","exact","except","exception","exceptions","exception-table","exclude","excluding","exec","execute","exists","exit","exit-command","expand","expanding","expiration","explicit","exponent","export","exporting","extend","extended","extension","extract","fail","fetch","field","field-groups","fields","field-symbol","field-symbols","file","filter","filters","filter-table","final","first","first-line","fixed-point","fkeq","fkge","flush","font","for","form","format","forward","found","frame","frames","free","friends","from","function","functionality","function-pool","further","gaps","generate","get","giving","gkeq","gkge","global","grant","green","group","groups","handle","handler","harmless","hashed","having","hdb","header","headers","heading","head-lines","help-id","help-request","hextobin","hide","high","hint","hold","hotspot","icon","id","identification","identifier","ids","if","ignore","ignoring","immediately","implementation","implementations","implemented","implicit","import","importing","inactive","incl","include","includes","including","increment","index","index-line","infotypes","inheriting","init","initial","initialization","inner","inout","input","instance","instances","instr","intensified","interface","interface-pool","interfaces","internal","intervals","into","inverse","inverted-date","is","iso","job","join","keep","keeping","kernel","key","keys","keywords","kind","language","last","late","layout","leading","leave","left","left-justified","leftplus","leftspace","legacy","length","let","level","levels","like","line","line-count","linefeed","line-selection","line-size","list","listbox","list-processing","little","llang","load","load-of-program","lob","local","locale","locator","logfile","logical","log-point","long","loop","low","lower","lpad","lpi","ltrim","mail","main","major-id","mapping","margin","mark","mask","matchcode","max","maximum","medium","members","memory","mesh","message","message-id","messages","messaging","method","methods","min","minimum","minor-id","mm/dd/yy","mm/dd/yyyy","mmddyy","mode","modif","modifier","modify","module","move","move-corresponding","multiply","multiply-corresponding","name","nametab","native","nested","nesting","new","new-line","new-page","new-section","next","no","node","nodes","no-display","no-extension","no-gap","no-gaps","no-grouping","no-heading","non-unicode","non-unique","no-scrolling","no-sign","no-title","no-topofpage","no-zero","null","number","object","objects","obligatory","occurrence","occurrences","occurs","of","off","offset","ole","on","only","open","option","optional","options","order","other","others","out","outer","output","output-length","overflow","overlay","pack","package","pad","padding","page","pages","parameter","parameters","parameter-table","part","partially","pattern","percentage","perform","performing","person","pf1","pf10","pf11","pf12","pf13","pf14","pf15","pf2","pf3","pf4","pf5","pf6","pf7","pf8","pf9","pf-status","pink","places","pool","pos_high","pos_low","position","pragmas","precompiled","preferred","preserving","primary","print","print-control","priority","private","procedure","process","program","property","protected","provide","public","push","pushbutton","put","queue-only","quickinfo","radiobutton","raise","raising","range","ranges","read","reader","read-only","receive","received","receiver","receiving","red","redefinition","reduce","reduced","ref","reference","refresh","regex","reject","remote","renaming","replacement","replacing","report","request","requested","reserve","reset","resolution","respecting","responsible","result","results","resumable","resume","retry","return","returncode","returning","returns","right","right-justified","rightplus","rightspace","risk","rmc_communication_failure","rmc_invalid_status","rmc_system_failure","role","rollback","rows","rpad","rtrim","run","sap","sap-spool","saving","scale_preserving","scale_preserving_scientific","scan","scientific","scientific_with_leading_zero","scroll","scroll-boundary","scrolling","search","secondary","seconds","section","select","selection","selections","selection-screen","selection-set","selection-sets","selection-table","select-options","send","separate","separated","set","shared","shift","short","shortdump-id","sign_as_postfix","single","size","skip","skipping","smart","some","sort","sortable","sorted","source","specified","split","spool","spots","sql","sqlscript","stable","stamp","standard","starting","start-of-editing","start-of-selection","state","statement","statements","static","statics","statusinfo","step-loop","stop","structure","structures","style","subkey","submatches","submit","subroutine","subscreen","subtract","subtract-corresponding","suffix","sum","summary","summing","supplied","supply","suppress","switch","switchstates","symbol","syncpoints","syntax","syntax-check","syntax-trace","system-call","system-exceptions","system-exit","tab","tabbed","tables","tableview","tabstrip","target","task","tasks","test","testing","test-injection","test-seam","text","textpool","then","throw","time","times","timestamp","timezone","tims_is_valid","title","titlebar","title-lines","to","tokenization","tokens","top-lines","top-of-page","trace-file","trace-table","trailing","transaction","transfer","transformation","transporting","trmac","truncate","truncation","try","tstmp_add_seconds","tstmp_current_utctimestamp","tstmp_is_valid","tstmp_seconds_between","type","type-pool","type-pools","types","uline","unassign","under","unicode","union","unique","unit_conversion","unix","unpack","until","unwind","up","update","upper","user","user-command","using","utf-8","valid","value","value-request","values","vary","varying","verification-message","version","via","view","visible","wait","warning","when","whenever","where","while","width","window","windows","with","with-heading","without","with-title","word","work","write","writer","xml","xsd","yellow","yes","yymmdd","zero","zone","abs","acos","asin","atan","bit-set","boolc","boolx","ceil","char_off","charlen","cmax","cmin","concat_lines_of","condense","contains","contains_any_not_of","contains_any_of","cos","cosh","count","count_any_not_of","count_any_of","dbmaxlen","distance","escape","exp","find","find_any_not_of","find_any_of","find_end","floor","frac","from_mixed","insert","ipow","line_exists","line_index","lines","log","log10","match","matches","nmax","nmin","numofchar","repeat","replace","rescale","reverse","round","segment","shift_left","shift_right","sign","sin","sinh","sqrt","strlen","substring","substring_after","substring_before","substring_from","substring_to","tan","tanh","to_lower","to_mixed","to_upper","translate","trunc","utclong_add","utclong_current","utclong_diff","xsdbool","xstrlen"],typeKeywords:["b","c","d","decfloat16","decfloat34","f","i","int8","n","p","s","string","t","utclong","x","xstring","any","clike","csequence","decfloat","numeric","simple","xsequence","table","hashed","index","sorted","standard","accp","char","clnt","cuky","curr","dats","dec","df16_dec","df16_raw","df34_dec","df34_raw","fltp","int1","int2","int4","lang","lchr","lraw","numc","quan","raw","rawstring","sstring","tims","unit","df16_scl","df34_scl","prec","varc","abap_bool","space","me","syst","sy","screen"],operators:[" +"," -","/","*","**","div","mod","=","#","@","&","&&","bit-and","bit-not","bit-or","bit-xor","m","o","z","and","equiv","not","or"," < "," > ","<=",">=","<>","><","=<","=>","between","bt","byte-ca","byte-cn","byte-co","byte-cs","byte-na","byte-ns","ca","cn","co","cp","cs","eq","ge","gt","in","le","lt","na","nb","ne","np","ns"],symbols:/[=><!~?&+\-*\/\^%#@]+/,tokenizer:{root:[[/[a-z_$][\w-$]*/,{cases:{"@typeKeywords":"keyword","@keywords":"keyword","@operators":"operator","@default":"identifier"}}],[/<[\w]+>/,"identifier"],{include:"@whitespace"},[/[:,.]/,"delimiter"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/'/,{token:"string",bracket:"@open",next:"@stringquote"}],[/`/,{token:"string",bracket:"@open",next:"@stringping"}],[/\|/,{token:"string",bracket:"@open",next:"@stringtemplate"}],[/\d+/,"number"]],stringtemplate:[[/[^\\\|]+/,"string"],[/\\\|/,"string"],[/\|/,{token:"string",bracket:"@close",next:"@pop"}]],stringping:[[/[^\\`]+/,"string"],[/`/,{token:"string",bracket:"@close",next:"@pop"}]],stringquote:[[/[^\\']+/,"string"],[/'/,{token:"string",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/^\*.*$/,"comment"],[/\".*$/,"comment"]]}}}}]); -//# sourceMappingURL=7953.eb2256ce.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7992.20690745.chunk.js b/ydb/core/viewer/monitoring/static/js/7992.20690745.chunk.js new file mode 100644 index 000000000000..1efbc3ce6be3 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7992.20690745.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7992],{17992:function(a,u,_){a.exports=function(a){"use strict";function u(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var _=u(a),t={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(a){return a},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 _.default.locale(t,null,!0),t}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/7999.bdf4fe79.chunk.js b/ydb/core/viewer/monitoring/static/js/7999.bdf4fe79.chunk.js new file mode 100644 index 000000000000..a6e901033fb7 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/7999.bdf4fe79.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[7999],{47999:function(e,n,t){e.exports=function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=n(e);function r(e){return e>1&&e<5&&1!=~~(e/10)}function s(e,n,t,s){var _=e+" ";switch(t){case"s":return n||s?"p\xe1r sekund":"p\xe1r sekundami";case"m":return n?"minuta":s?"minutu":"minutou";case"mm":return n||s?_+(r(e)?"minuty":"minut"):_+"minutami";case"h":return n?"hodina":s?"hodinu":"hodinou";case"hh":return n||s?_+(r(e)?"hodiny":"hodin"):_+"hodinami";case"d":return n||s?"den":"dnem";case"dd":return n||s?_+(r(e)?"dny":"dn\xed"):_+"dny";case"M":return n||s?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return n||s?_+(r(e)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):_+"m\u011bs\xedci";case"y":return n||s?"rok":"rokem";case"yy":return n||s?_+(r(e)?"roky":"let"):_+"lety"}}var _={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:s,m:s,mm:s,h:s,hh:s,d:s,dd:s,M:s,MM:s,y:s,yy:s}};return t.default.locale(_,null,!0),_}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8005.9c209154.chunk.js b/ydb/core/viewer/monitoring/static/js/8005.9c209154.chunk.js deleted file mode 100644 index b60cb228799b..000000000000 --- a/ydb/core/viewer/monitoring/static/js/8005.9c209154.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8005],{58005:function(e,o,n){n.r(o),n.d(o,{conf:function(){return t},language:function(){return s}});var t={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:"'"}]},s={defaultToken:"",tokenPostfix:".pascaligo",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["begin","block","case","const","else","end","fail","for","from","function","if","is","nil","of","remove","return","skip","then","type","var","while","with","option","None","transaction"],typeKeywords:["bool","int","list","map","nat","record","string","unit","address","map","mtz","xtz"],operators:["=",">","<","<=",">=","<>",":",":=","and","mod","or","+","-","*","/","@","&","^","%"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\(\*]+/,"comment"],[/\*\)/,"comment","@pop"],[/\(\*/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); -//# sourceMappingURL=8005.9c209154.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8011.4fed4307.chunk.js b/ydb/core/viewer/monitoring/static/js/8011.4fed4307.chunk.js new file mode 100644 index 000000000000..00fb91f647e2 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8011.4fed4307.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8011],{8011:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/805.d67f39bf.chunk.js b/ydb/core/viewer/monitoring/static/js/805.d67f39bf.chunk.js deleted file mode 100644 index 7afef774321e..000000000000 --- a/ydb/core/viewer/monitoring/static/js/805.d67f39bf.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[805],{50805:function(e,t,n){n.r(t),n.d(t,{conf:function(){return s},language:function(){return o}});var s={comments:{lineComment:"#"}},o={defaultToken:"keyword",ignoreCase:!0,tokenPostfix:".azcli",str:/[^#\s]/,tokenizer:{root:[{include:"@comment"},[/\s-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}],[/^-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}]],type:[{include:"@comment"},[/-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":"key.identifier"}}],[/@str+\s*/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}]],comment:[[/#.*$/,{cases:{"@eos":{token:"comment",next:"@popall"}}}]]}}}}]); -//# sourceMappingURL=805.d67f39bf.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8065.666ef449.chunk.js b/ydb/core/viewer/monitoring/static/js/8065.666ef449.chunk.js new file mode 100644 index 000000000000..c5bba38f26dc --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8065.666ef449.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 8065.666ef449.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8065],{18065:(e,t,n)=>{n.r(t),n.d(t,{CompletionAdapter:()=>gt,DefinitionAdapter:()=>yt,DiagnosticsAdapter:()=>ct,DocumentColorAdapter:()=>Mt,DocumentFormattingEditProvider:()=>Tt,DocumentHighlightAdapter:()=>bt,DocumentLinkAdapter:()=>Rt,DocumentRangeFormattingEditProvider:()=>Dt,DocumentSymbolAdapter:()=>It,FoldingRangeAdapter:()=>Ft,HoverAdapter:()=>mt,ReferenceAdapter:()=>Ct,RenameAdapter:()=>xt,SelectionRangeAdapter:()=>Lt,WorkerManager:()=>se,fromPosition:()=>lt,fromRange:()=>ht,setupMode:()=>Nt,setupMode1:()=>Ot,toRange:()=>ft,toTextEdit:()=>vt});var r,i,o=n(41551),a=Object.defineProperty,s=Object.getOwnPropertyDescriptor,u=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,d=(e,t,n,r)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let i of u(t))c.call(e,i)||i===n||a(e,i,{get:()=>t[i],enumerable:!(r=s(t,i))||r.enumerable});return e},g={};d(g,r=o,"default"),i&&d(i,r,"default");var l,h,f,p,v,m,_,w,b,k,y,E,C,x,I,A,S,R,T,D,P,M,F,L,j,O,N,U,W,V,H,K,z,X,B,$,q,Q,G,J,Y,Z,ee,te,ne,re,ie,oe,ae,se=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval((()=>this._checkIfIdle()),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange((()=>this._stopWorker()))}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>12e4&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=g.editor.createWebWorker({moduleId:"vs/language/html/htmlWorker",createData:{languageSettings:this._defaults.options,languageId:this._defaults.languageId},label:this._defaults.languageId}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];let r;return this._getClient().then((e=>{r=e})).then((e=>{if(this._worker)return this._worker.withSyncedResources(t)})).then((e=>r))}};(h=l||(l={})).MIN_VALUE=-2147483648,h.MAX_VALUE=2147483647,(p=f||(f={})).MIN_VALUE=0,p.MAX_VALUE=2147483647,(m=v||(v={})).create=function(e,t){return e===Number.MAX_VALUE&&(e=f.MAX_VALUE),t===Number.MAX_VALUE&&(t=f.MAX_VALUE),{line:e,character:t}},m.is=function(e){var t=e;return st.objectLiteral(t)&&st.uinteger(t.line)&&st.uinteger(t.character)},(w=_||(_={})).create=function(e,t,n,r){if(st.uinteger(e)&&st.uinteger(t)&&st.uinteger(n)&&st.uinteger(r))return{start:v.create(e,t),end:v.create(n,r)};if(v.is(e)&&v.is(t))return{start:e,end:t};throw new Error("Range#create called with invalid arguments["+e+", "+t+", "+n+", "+r+"]")},w.is=function(e){var t=e;return st.objectLiteral(t)&&v.is(t.start)&&v.is(t.end)},(k=b||(b={})).create=function(e,t){return{uri:e,range:t}},k.is=function(e){var t=e;return st.defined(t)&&_.is(t.range)&&(st.string(t.uri)||st.undefined(t.uri))},(E=y||(y={})).create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},E.is=function(e){var t=e;return st.defined(t)&&_.is(t.targetRange)&&st.string(t.targetUri)&&(_.is(t.targetSelectionRange)||st.undefined(t.targetSelectionRange))&&(_.is(t.originSelectionRange)||st.undefined(t.originSelectionRange))},(x=C||(C={})).create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},x.is=function(e){var t=e;return st.numberRange(t.red,0,1)&&st.numberRange(t.green,0,1)&&st.numberRange(t.blue,0,1)&&st.numberRange(t.alpha,0,1)},(A=I||(I={})).create=function(e,t){return{range:e,color:t}},A.is=function(e){var t=e;return _.is(t.range)&&C.is(t.color)},(R=S||(S={})).create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},R.is=function(e){var t=e;return st.string(t.label)&&(st.undefined(t.textEdit)||X.is(t))&&(st.undefined(t.additionalTextEdits)||st.typedArray(t.additionalTextEdits,X.is))},(D=T||(T={})).Comment="comment",D.Imports="imports",D.Region="region",(M=P||(P={})).create=function(e,t,n,r,i){var o={startLine:e,endLine:t};return st.defined(n)&&(o.startCharacter=n),st.defined(r)&&(o.endCharacter=r),st.defined(i)&&(o.kind=i),o},M.is=function(e){var t=e;return st.uinteger(t.startLine)&&st.uinteger(t.startLine)&&(st.undefined(t.startCharacter)||st.uinteger(t.startCharacter))&&(st.undefined(t.endCharacter)||st.uinteger(t.endCharacter))&&(st.undefined(t.kind)||st.string(t.kind))},(L=F||(F={})).create=function(e,t){return{location:e,message:t}},L.is=function(e){var t=e;return st.defined(t)&&b.is(t.location)&&st.string(t.message)},(O=j||(j={})).Error=1,O.Warning=2,O.Information=3,O.Hint=4,(U=N||(N={})).Unnecessary=1,U.Deprecated=2,(W||(W={})).is=function(e){var t=e;return void 0!==t&&null!==t&&st.string(t.href)},(H=V||(V={})).create=function(e,t,n,r,i,o){var a={range:e,message:t};return st.defined(n)&&(a.severity=n),st.defined(r)&&(a.code=r),st.defined(i)&&(a.source=i),st.defined(o)&&(a.relatedInformation=o),a},H.is=function(e){var t,n=e;return st.defined(n)&&_.is(n.range)&&st.string(n.message)&&(st.number(n.severity)||st.undefined(n.severity))&&(st.integer(n.code)||st.string(n.code)||st.undefined(n.code))&&(st.undefined(n.codeDescription)||st.string(null===(t=n.codeDescription)||void 0===t?void 0:t.href))&&(st.string(n.source)||st.undefined(n.source))&&(st.undefined(n.relatedInformation)||st.typedArray(n.relatedInformation,F.is))},(z=K||(K={})).create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={title:e,command:t};return st.defined(n)&&n.length>0&&(i.arguments=n),i},z.is=function(e){var t=e;return st.defined(t)&&st.string(t.title)&&st.string(t.command)},(B=X||(X={})).replace=function(e,t){return{range:e,newText:t}},B.insert=function(e,t){return{range:{start:e,end:e},newText:t}},B.del=function(e){return{range:e,newText:""}},B.is=function(e){var t=e;return st.objectLiteral(t)&&st.string(t.newText)&&_.is(t.range)},(q=$||($={})).create=function(e,t,n){var r={label:e};return void 0!==t&&(r.needsConfirmation=t),void 0!==n&&(r.description=n),r},q.is=function(e){var t=e;return void 0!==t&&st.objectLiteral(t)&&st.string(t.label)&&(st.boolean(t.needsConfirmation)||void 0===t.needsConfirmation)&&(st.string(t.description)||void 0===t.description)},(Q||(Q={})).is=function(e){return"string"===typeof e},(J=G||(G={})).replace=function(e,t,n){return{range:e,newText:t,annotationId:n}},J.insert=function(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}},J.del=function(e,t){return{range:e,newText:"",annotationId:t}},J.is=function(e){var t=e;return X.is(t)&&($.is(t.annotationId)||Q.is(t.annotationId))},(Z=Y||(Y={})).create=function(e,t){return{textDocument:e,edits:t}},Z.is=function(e){var t=e;return st.defined(t)&&le.is(t.textDocument)&&Array.isArray(t.edits)},(te=ee||(ee={})).create=function(e,t,n){var r={kind:"create",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(r.options=t),void 0!==n&&(r.annotationId=n),r},te.is=function(e){var t=e;return t&&"create"===t.kind&&st.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||st.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||st.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||Q.is(t.annotationId))},(re=ne||(ne={})).create=function(e,t,n,r){var i={kind:"rename",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(i.options=n),void 0!==r&&(i.annotationId=r),i},re.is=function(e){var t=e;return t&&"rename"===t.kind&&st.string(t.oldUri)&&st.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||st.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||st.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||Q.is(t.annotationId))},(oe=ie||(ie={})).create=function(e,t,n){var r={kind:"delete",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(r.options=t),void 0!==n&&(r.annotationId=n),r},oe.is=function(e){var t=e;return t&&"delete"===t.kind&&st.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||st.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||st.boolean(t.options.ignoreIfNotExists)))&&(void 0===t.annotationId||Q.is(t.annotationId))},(ae||(ae={})).is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return st.string(e.kind)?ee.is(e)||ne.is(e)||ie.is(e):Y.is(e)})))};var ue,ce,de,ge,le,he,fe,pe,ve,me,_e,we,be,ke,ye,Ee,Ce,xe,Ie,Ae,Se,Re,Te,De,Pe,Me,Fe,Le,je,Oe,Ne,Ue,We,Ve,He,Ke,ze,Xe,Be,$e,qe,Qe,Ge,Je,Ye,Ze,et,tt,nt,rt,it,ot=function(){function e(e,t){this.edits=e,this.changeAnnotations=t}return e.prototype.insert=function(e,t,n){var r,i;if(void 0===n?r=X.insert(e,t):Q.is(n)?(i=n,r=G.insert(e,t,n)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(n),r=G.insert(e,t,i)),this.edits.push(r),void 0!==i)return i},e.prototype.replace=function(e,t,n){var r,i;if(void 0===n?r=X.replace(e,t):Q.is(n)?(i=n,r=G.replace(e,t,n)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(n),r=G.replace(e,t,i)),this.edits.push(r),void 0!==i)return i},e.prototype.delete=function(e,t){var n,r;if(void 0===t?n=X.del(e):Q.is(t)?(r=t,n=G.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),r=this.changeAnnotations.manage(t),n=G.del(e,r)),this.edits.push(n),void 0!==r)return r},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e.prototype.assertChangeAnnotations=function(e){if(void 0===e)throw new Error("Text edit change is not configured to manage change annotations.")},e}(),at=function(){function e(e){this._annotations=void 0===e?Object.create(null):e,this._counter=0,this._size=0}return e.prototype.all=function(){return this._annotations},Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),e.prototype.manage=function(e,t){var n;if(Q.is(e)?n=e:(n=this.nextId(),t=e),void 0!==this._annotations[n])throw new Error("Id "+n+" is already in use.");if(void 0===t)throw new Error("No annotation provided for id "+n);return this._annotations[n]=t,this._size++,n},e.prototype.nextId=function(){return this._counter++,this._counter.toString()},e}();!function(){function e(e){var t=this;this._textEditChanges=Object.create(null),void 0!==e?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new at(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach((function(e){if(Y.is(e)){var n=new ot(e.edits,t._changeAnnotations);t._textEditChanges[e.textDocument.uri]=n}}))):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new ot(e.changes[n]);t._textEditChanges[n]=r}))):this._workspaceEdit={}}Object.defineProperty(e.prototype,"edit",{get:function(){return this.initDocumentChanges(),void 0!==this._changeAnnotations&&(0===this._changeAnnotations.size?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),e.prototype.getTextEditChange=function(e){if(le.is(e)){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var t={uri:e.uri,version:e.version};if(!(r=this._textEditChanges[t.uri])){var n={textDocument:t,edits:i=[]};this._workspaceEdit.documentChanges.push(n),r=new ot(i,this._changeAnnotations),this._textEditChanges[t.uri]=r}return r}if(this.initChanges(),void 0===this._workspaceEdit.changes)throw new Error("Workspace edit is not configured for normal text edit changes.");var r;if(!(r=this._textEditChanges[e])){var i=[];this._workspaceEdit.changes[e]=i,r=new ot(i),this._textEditChanges[e]=r}return r},e.prototype.initDocumentChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._changeAnnotations=new at,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},e.prototype.initChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._workspaceEdit.changes=Object.create(null))},e.prototype.createFile=function(e,t,n){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if($.is(t)||Q.is(t)?r=t:n=t,void 0===r?i=ee.create(e,n):(o=Q.is(r)?r:this._changeAnnotations.manage(r),i=ee.create(e,n,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o},e.prototype.renameFile=function(e,t,n,r){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var i,o,a;if($.is(n)||Q.is(n)?i=n:r=n,void 0===i?o=ne.create(e,t,r):(a=Q.is(i)?i:this._changeAnnotations.manage(i),o=ne.create(e,t,r,a)),this._workspaceEdit.documentChanges.push(o),void 0!==a)return a},e.prototype.deleteFile=function(e,t,n){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if($.is(t)||Q.is(t)?r=t:n=t,void 0===r?i=ie.create(e,n):(o=Q.is(r)?r:this._changeAnnotations.manage(r),i=ie.create(e,n,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o}}();(ce=ue||(ue={})).create=function(e){return{uri:e}},ce.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)},(ge=de||(de={})).create=function(e,t){return{uri:e,version:t}},ge.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)&&st.integer(t.version)},(he=le||(le={})).create=function(e,t){return{uri:e,version:t}},he.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)&&(null===t.version||st.integer(t.version))},(pe=fe||(fe={})).create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},pe.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)&&st.string(t.languageId)&&st.integer(t.version)&&st.string(t.text)},(me=ve||(ve={})).PlainText="plaintext",me.Markdown="markdown",function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(ve||(ve={})),(_e||(_e={})).is=function(e){var t=e;return st.objectLiteral(e)&&ve.is(t.kind)&&st.string(t.value)},(be=we||(we={})).Text=1,be.Method=2,be.Function=3,be.Constructor=4,be.Field=5,be.Variable=6,be.Class=7,be.Interface=8,be.Module=9,be.Property=10,be.Unit=11,be.Value=12,be.Enum=13,be.Keyword=14,be.Snippet=15,be.Color=16,be.File=17,be.Reference=18,be.Folder=19,be.EnumMember=20,be.Constant=21,be.Struct=22,be.Event=23,be.Operator=24,be.TypeParameter=25,(ye=ke||(ke={})).PlainText=1,ye.Snippet=2,(Ee||(Ee={})).Deprecated=1,(xe=Ce||(Ce={})).create=function(e,t,n){return{newText:e,insert:t,replace:n}},xe.is=function(e){var t=e;return t&&st.string(t.newText)&&_.is(t.insert)&&_.is(t.replace)},(Ae=Ie||(Ie={})).asIs=1,Ae.adjustIndentation=2,(Se||(Se={})).create=function(e){return{label:e}},(Re||(Re={})).create=function(e,t){return{items:e||[],isIncomplete:!!t}},(De=Te||(Te={})).fromPlainText=function(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},De.is=function(e){var t=e;return st.string(t)||st.objectLiteral(t)&&st.string(t.language)&&st.string(t.value)},(Pe||(Pe={})).is=function(e){var t=e;return!!t&&st.objectLiteral(t)&&(_e.is(t.contents)||Te.is(t.contents)||st.typedArray(t.contents,Te.is))&&(void 0===e.range||_.is(e.range))},(Me||(Me={})).create=function(e,t){return t?{label:e,documentation:t}:{label:e}},(Fe||(Fe={})).create=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];var i={label:e};return st.defined(t)&&(i.documentation=t),st.defined(n)?i.parameters=n:i.parameters=[],i},(je=Le||(Le={})).Text=1,je.Read=2,je.Write=3,(Oe||(Oe={})).create=function(e,t){var n={range:e};return st.number(t)&&(n.kind=t),n},(Ue=Ne||(Ne={})).File=1,Ue.Module=2,Ue.Namespace=3,Ue.Package=4,Ue.Class=5,Ue.Method=6,Ue.Property=7,Ue.Field=8,Ue.Constructor=9,Ue.Enum=10,Ue.Interface=11,Ue.Function=12,Ue.Variable=13,Ue.Constant=14,Ue.String=15,Ue.Number=16,Ue.Boolean=17,Ue.Array=18,Ue.Object=19,Ue.Key=20,Ue.Null=21,Ue.EnumMember=22,Ue.Struct=23,Ue.Event=24,Ue.Operator=25,Ue.TypeParameter=26,(We||(We={})).Deprecated=1,(Ve||(Ve={})).create=function(e,t,n,r,i){var o={name:e,kind:t,location:{uri:r,range:n}};return i&&(o.containerName=i),o},(Ke=He||(He={})).create=function(e,t,n,r,i,o){var a={name:e,detail:t,kind:n,range:r,selectionRange:i};return void 0!==o&&(a.children=o),a},Ke.is=function(e){var t=e;return t&&st.string(t.name)&&st.number(t.kind)&&_.is(t.range)&&_.is(t.selectionRange)&&(void 0===t.detail||st.string(t.detail))&&(void 0===t.deprecated||st.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))&&(void 0===t.tags||Array.isArray(t.tags))},(Xe=ze||(ze={})).Empty="",Xe.QuickFix="quickfix",Xe.Refactor="refactor",Xe.RefactorExtract="refactor.extract",Xe.RefactorInline="refactor.inline",Xe.RefactorRewrite="refactor.rewrite",Xe.Source="source",Xe.SourceOrganizeImports="source.organizeImports",Xe.SourceFixAll="source.fixAll",($e=Be||(Be={})).create=function(e,t){var n={diagnostics:e};return void 0!==t&&null!==t&&(n.only=t),n},$e.is=function(e){var t=e;return st.defined(t)&&st.typedArray(t.diagnostics,V.is)&&(void 0===t.only||st.typedArray(t.only,st.string))},(Qe=qe||(qe={})).create=function(e,t,n){var r={title:e},i=!0;return"string"===typeof t?(i=!1,r.kind=t):K.is(t)?r.command=t:r.edit=t,i&&void 0!==n&&(r.kind=n),r},Qe.is=function(e){var t=e;return t&&st.string(t.title)&&(void 0===t.diagnostics||st.typedArray(t.diagnostics,V.is))&&(void 0===t.kind||st.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||K.is(t.command))&&(void 0===t.isPreferred||st.boolean(t.isPreferred))&&(void 0===t.edit||ae.is(t.edit))},(Je=Ge||(Ge={})).create=function(e,t){var n={range:e};return st.defined(t)&&(n.data=t),n},Je.is=function(e){var t=e;return st.defined(t)&&_.is(t.range)&&(st.undefined(t.command)||K.is(t.command))},(Ze=Ye||(Ye={})).create=function(e,t){return{tabSize:e,insertSpaces:t}},Ze.is=function(e){var t=e;return st.defined(t)&&st.uinteger(t.tabSize)&&st.boolean(t.insertSpaces)},(tt=et||(et={})).create=function(e,t,n){return{range:e,target:t,data:n}},tt.is=function(e){var t=e;return st.defined(t)&&_.is(t.range)&&(st.undefined(t.target)||st.string(t.target))},(rt=nt||(nt={})).create=function(e,t){return{range:e,parent:t}},rt.is=function(e){var t=e;return void 0!==t&&_.is(t.range)&&(void 0===t.parent||rt.is(t.parent))},function(e){function t(e,n){if(e.length<=1)return e;var r=e.length/2|0,i=e.slice(0,r),o=e.slice(r);t(i,n),t(o,n);for(var a=0,s=0,u=0;a<i.length&&s<o.length;){var c=n(i[a],o[s]);e[u++]=c<=0?i[a++]:o[s++]}for(;a<i.length;)e[u++]=i[a++];for(;s<o.length;)e[u++]=o[s++];return e}e.create=function(e,t,n,r){return new ut(e,t,n,r)},e.is=function(e){var t=e;return!!(st.defined(t)&&st.string(t.uri)&&(st.undefined(t.languageId)||st.string(t.languageId))&&st.uinteger(t.lineCount)&&st.func(t.getText)&&st.func(t.positionAt)&&st.func(t.offsetAt))},e.applyEdits=function(e,n){for(var r=e.getText(),i=t(n,(function(e,t){var n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n})),o=r.length,a=i.length-1;a>=0;a--){var s=i[a],u=e.offsetAt(s.range.start),c=e.offsetAt(s.range.end);if(!(c<=o))throw new Error("Overlapping edit");r=r.substring(0,u)+s.newText+r.substring(c,r.length),o=u}return r}}(it||(it={}));var st,ut=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,"uri",{get:function(){return this._uri},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"version",{get:function(){return this._version},enumerable:!1,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,r=0;r<t.length;r++){n&&(e.push(r),n=!1);var i=t.charAt(r);n="\r"===i||"\n"===i,"\r"===i&&r+1<t.length&&"\n"===t.charAt(r+1)&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return v.create(0,e);for(;n<r;){var i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}var o=n-1;return v.create(o,e-t[o])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)},Object.defineProperty(e.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!1,configurable:!0}),e}();!function(e){var t=Object.prototype.toString;e.defined=function(e){return"undefined"!==typeof e},e.undefined=function(e){return"undefined"===typeof e},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return"[object String]"===t.call(e)},e.number=function(e){return"[object Number]"===t.call(e)},e.numberRange=function(e,n,r){return"[object Number]"===t.call(e)&&n<=e&&e<=r},e.integer=function(e){return"[object Number]"===t.call(e)&&-2147483648<=e&&e<=2147483647},e.uinteger=function(e){return"[object Number]"===t.call(e)&&0<=e&&e<=2147483647},e.func=function(e){return"[object Function]"===t.call(e)},e.objectLiteral=function(e){return null!==e&&"object"===typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(st||(st={}));var ct=class{constructor(e,t,n){this._languageId=e,this._worker=t,this._disposables=[],this._listener=Object.create(null);const r=e=>{let t,n=e.getLanguageId();n===this._languageId&&(this._listener[e.uri.toString()]=e.onDidChangeContent((()=>{window.clearTimeout(t),t=window.setTimeout((()=>this._doValidate(e.uri,n)),500)})),this._doValidate(e.uri,n))},i=e=>{g.editor.setModelMarkers(e,this._languageId,[]);let t=e.uri.toString(),n=this._listener[t];n&&(n.dispose(),delete this._listener[t])};this._disposables.push(g.editor.onDidCreateModel(r)),this._disposables.push(g.editor.onWillDisposeModel(i)),this._disposables.push(g.editor.onDidChangeModelLanguage((e=>{i(e.model),r(e.model)}))),this._disposables.push(n((e=>{g.editor.getModels().forEach((e=>{e.getLanguageId()===this._languageId&&(i(e),r(e))}))}))),this._disposables.push({dispose:()=>{g.editor.getModels().forEach(i);for(let e in this._listener)this._listener[e].dispose()}}),g.editor.getModels().forEach(r)}dispose(){this._disposables.forEach((e=>e&&e.dispose())),this._disposables.length=0}_doValidate(e,t){this._worker(e).then((t=>t.doValidation(e.toString()))).then((n=>{const r=n.map((e=>function(e,t){let n="number"===typeof t.code?String(t.code):t.code;return{severity:dt(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source}}(0,e)));let i=g.editor.getModel(e);i&&i.getLanguageId()===t&&g.editor.setModelMarkers(i,t,r)})).then(void 0,(e=>{console.error(e)}))}};function dt(e){switch(e){case j.Error:return g.MarkerSeverity.Error;case j.Warning:return g.MarkerSeverity.Warning;case j.Information:return g.MarkerSeverity.Info;case j.Hint:return g.MarkerSeverity.Hint;default:return g.MarkerSeverity.Info}}var gt=class{constructor(e,t){this._worker=e,this._triggerCharacters=t}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.doComplete(i.toString(),lt(t)))).then((n=>{if(!n)return;const r=e.getWordUntilPosition(t),i=new g.Range(t.lineNumber,r.startColumn,t.lineNumber,r.endColumn),o=n.items.map((e=>{const t={label:e.label,insertText:e.insertText||e.label,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,command:(n=e.command,n&&"editor.action.triggerSuggest"===n.command?{id:n.command,title:n.title,arguments:n.arguments}:void 0),range:i,kind:pt(e.kind)};var n,r;return e.textEdit&&("undefined"!==typeof(r=e.textEdit).insert&&"undefined"!==typeof r.replace?t.range={insert:ft(e.textEdit.insert),replace:ft(e.textEdit.replace)}:t.range=ft(e.textEdit.range),t.insertText=e.textEdit.newText),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(vt)),e.insertTextFormat===ke.Snippet&&(t.insertTextRules=g.languages.CompletionItemInsertTextRule.InsertAsSnippet),t}));return{isIncomplete:n.isIncomplete,suggestions:o}}))}};function lt(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function ht(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function ft(e){if(e)return new g.Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function pt(e){const t=g.languages.CompletionItemKind;switch(e){case we.Text:return t.Text;case we.Method:return t.Method;case we.Function:return t.Function;case we.Constructor:return t.Constructor;case we.Field:return t.Field;case we.Variable:return t.Variable;case we.Class:return t.Class;case we.Interface:return t.Interface;case we.Module:return t.Module;case we.Property:return t.Property;case we.Unit:return t.Unit;case we.Value:return t.Value;case we.Enum:return t.Enum;case we.Keyword:return t.Keyword;case we.Snippet:return t.Snippet;case we.Color:return t.Color;case we.File:return t.File;case we.Reference:return t.Reference}return t.Property}function vt(e){if(e)return{range:ft(e.range),text:e.newText}}var mt=class{constructor(e){this._worker=e}provideHover(e,t,n){let r=e.uri;return this._worker(r).then((e=>e.doHover(r.toString(),lt(t)))).then((e=>{if(e)return{range:ft(e.range),contents:wt(e.contents)}}))}};function _t(e){return"string"===typeof e?{value:e}:(t=e)&&"object"===typeof t&&"string"===typeof t.kind?"plaintext"===e.kind?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:e.value}:{value:"```"+e.language+"\n"+e.value+"\n```\n"};var t}function wt(e){if(e)return Array.isArray(e)?e.map(_t):[_t(e)]}var bt=class{constructor(e){this._worker=e}provideDocumentHighlights(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.findDocumentHighlights(r.toString(),lt(t)))).then((e=>{if(e)return e.map((e=>({range:ft(e.range),kind:kt(e.kind)})))}))}};function kt(e){switch(e){case Le.Read:return g.languages.DocumentHighlightKind.Read;case Le.Write:return g.languages.DocumentHighlightKind.Write;case Le.Text:return g.languages.DocumentHighlightKind.Text}return g.languages.DocumentHighlightKind.Text}var yt=class{constructor(e){this._worker=e}provideDefinition(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.findDefinition(r.toString(),lt(t)))).then((e=>{if(e)return[Et(e)]}))}};function Et(e){return{uri:g.Uri.parse(e.uri),range:ft(e.range)}}var Ct=class{constructor(e){this._worker=e}provideReferences(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.findReferences(i.toString(),lt(t)))).then((e=>{if(e)return e.map(Et)}))}},xt=class{constructor(e){this._worker=e}provideRenameEdits(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.doRename(i.toString(),lt(t),n))).then((e=>function(e){if(!e||!e.changes)return;let t=[];for(let n in e.changes){const r=g.Uri.parse(n);for(let i of e.changes[n])t.push({resource:r,versionId:void 0,textEdit:{range:ft(i.range),text:i.newText}})}return{edits:t}}(e)))}};var It=class{constructor(e){this._worker=e}provideDocumentSymbols(e,t){const n=e.uri;return this._worker(n).then((e=>e.findDocumentSymbols(n.toString()))).then((e=>{if(e)return e.map((e=>"children"in e?At(e):{name:e.name,detail:"",containerName:e.containerName,kind:St(e.kind),range:ft(e.location.range),selectionRange:ft(e.location.range),tags:[]}))}))}};function At(e){var t,n,r;return{name:e.name,detail:null!==(t=e.detail)&&void 0!==t?t:"",kind:St(e.kind),range:ft(e.range),selectionRange:ft(e.selectionRange),tags:null!==(n=e.tags)&&void 0!==n?n:[],children:(null!==(r=e.children)&&void 0!==r?r:[]).map((e=>At(e)))}}function St(e){let t=g.languages.SymbolKind;switch(e){case Ne.File:return t.File;case Ne.Module:return t.Module;case Ne.Namespace:return t.Namespace;case Ne.Package:return t.Package;case Ne.Class:return t.Class;case Ne.Method:return t.Method;case Ne.Property:return t.Property;case Ne.Field:return t.Field;case Ne.Constructor:return t.Constructor;case Ne.Enum:return t.Enum;case Ne.Interface:return t.Interface;case Ne.Function:return t.Function;case Ne.Variable:return t.Variable;case Ne.Constant:return t.Constant;case Ne.String:return t.String;case Ne.Number:return t.Number;case Ne.Boolean:return t.Boolean;case Ne.Array:return t.Array}return t.Function}var Rt=class{constructor(e){this._worker=e}provideLinks(e,t){const n=e.uri;return this._worker(n).then((e=>e.findDocumentLinks(n.toString()))).then((e=>{if(e)return{links:e.map((e=>({range:ft(e.range),url:e.target})))}}))}},Tt=class{constructor(e){this._worker=e}provideDocumentFormattingEdits(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.format(r.toString(),null,Pt(t)).then((e=>{if(e&&0!==e.length)return e.map(vt)}))))}},Dt=class{constructor(e){this._worker=e,this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.format(i.toString(),ht(t),Pt(n)).then((e=>{if(e&&0!==e.length)return e.map(vt)}))))}};function Pt(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var Mt=class{constructor(e){this._worker=e}provideDocumentColors(e,t){const n=e.uri;return this._worker(n).then((e=>e.findDocumentColors(n.toString()))).then((e=>{if(e)return e.map((e=>({color:e.color,range:ft(e.range)})))}))}provideColorPresentations(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.getColorPresentations(r.toString(),t.color,ht(t.range)))).then((e=>{if(e)return e.map((e=>{let t={label:e.label};return e.textEdit&&(t.textEdit=vt(e.textEdit)),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(vt)),t}))}))}},Ft=class{constructor(e){this._worker=e}provideFoldingRanges(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.getFoldingRanges(r.toString(),t))).then((e=>{if(e)return e.map((e=>{const t={start:e.startLine+1,end:e.endLine+1};return"undefined"!==typeof e.kind&&(t.kind=function(e){switch(e){case T.Comment:return g.languages.FoldingRangeKind.Comment;case T.Imports:return g.languages.FoldingRangeKind.Imports;case T.Region:return g.languages.FoldingRangeKind.Region}return}(e.kind)),t}))}))}};var Lt=class{constructor(e){this._worker=e}provideSelectionRanges(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.getSelectionRanges(r.toString(),t.map(lt)))).then((e=>{if(e)return e.map((e=>{const t=[];for(;e;)t.push({range:ft(e.range)}),e=e.parent;return t}))}))}},jt=class extends gt{constructor(e){super(e,[".",":","<",'"',"=","/"])}};function Ot(e){const t=new se(e),n=function(){return t.getLanguageServiceWorker(...arguments)};let r=e.languageId;g.languages.registerCompletionItemProvider(r,new jt(n)),g.languages.registerHoverProvider(r,new mt(n)),g.languages.registerDocumentHighlightProvider(r,new bt(n)),g.languages.registerLinkProvider(r,new Rt(n)),g.languages.registerFoldingRangeProvider(r,new Ft(n)),g.languages.registerDocumentSymbolProvider(r,new It(n)),g.languages.registerSelectionRangeProvider(r,new Lt(n)),g.languages.registerRenameProvider(r,new xt(n)),"html"===r&&(g.languages.registerDocumentFormattingEditProvider(r,new Tt(n)),g.languages.registerDocumentRangeFormattingEditProvider(r,new Dt(n)))}function Nt(e){const t=[],n=[],r=new se(e);t.push(r);const i=function(){return r.getLanguageServiceWorker(...arguments)};return function(){const{languageId:t,modeConfiguration:r}=e;Wt(n),r.completionItems&&n.push(g.languages.registerCompletionItemProvider(t,new jt(i))),r.hovers&&n.push(g.languages.registerHoverProvider(t,new mt(i))),r.documentHighlights&&n.push(g.languages.registerDocumentHighlightProvider(t,new bt(i))),r.links&&n.push(g.languages.registerLinkProvider(t,new Rt(i))),r.documentSymbols&&n.push(g.languages.registerDocumentSymbolProvider(t,new It(i))),r.rename&&n.push(g.languages.registerRenameProvider(t,new xt(i))),r.foldingRanges&&n.push(g.languages.registerFoldingRangeProvider(t,new Ft(i))),r.selectionRanges&&n.push(g.languages.registerSelectionRangeProvider(t,new Lt(i))),r.documentFormattingEdits&&n.push(g.languages.registerDocumentFormattingEditProvider(t,new Tt(i))),r.documentRangeFormattingEdits&&n.push(g.languages.registerDocumentRangeFormattingEditProvider(t,new Dt(i)))}(),t.push(Ut(n)),Ut(t)}function Ut(e){return{dispose:()=>Wt(e)}}function Wt(e){for(;e.length;)e.pop().dispose()}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8065.666ef449.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/8065.666ef449.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8065.666ef449.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/8133.2afc4db4.chunk.js b/ydb/core/viewer/monitoring/static/js/8133.2afc4db4.chunk.js new file mode 100644 index 000000000000..37d784241529 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8133.2afc4db4.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8133],{18133:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8140.8d8e9309.chunk.js b/ydb/core/viewer/monitoring/static/js/8140.8d8e9309.chunk.js new file mode 100644 index 000000000000..8e7ff5e5a6c6 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8140.8d8e9309.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8140],{18140:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8167.b9a90da5.chunk.js b/ydb/core/viewer/monitoring/static/js/8167.b9a90da5.chunk.js new file mode 100644 index 000000000000..09b24f6f9034 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8167.b9a90da5.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8167],{68167:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ 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.d2f5a912.chunk.js deleted file mode 100644 index 3037834323df..000000000000 --- a/ydb/core/viewer/monitoring/static/js/8206.d2f5a912.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"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 diff --git a/ydb/core/viewer/monitoring/static/js/8322.c2b160c6.chunk.js b/ydb/core/viewer/monitoring/static/js/8322.c2b160c6.chunk.js deleted file mode 100644 index ceb56942cc07..000000000000 --- a/ydb/core/viewer/monitoring/static/js/8322.c2b160c6.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8322],{78322:function(e,t,n){n.r(t),n.d(t,{conf:function(){return s},language:function(){return o}});var s={comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*\x3c!--\\s*#?region\\b.*--\x3e"),end:new RegExp("^\\s*\x3c!--\\s*#?endregion\\b.*--\x3e")}}},o={defaultToken:"",tokenPostfix:".md",control:/[\\`*_\[\]{}()#+\-\.!]/,noncontrol:/[^\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,jsescapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],tokenizer:{root:[[/^\s*\|/,"@rematch","@table_header"],[/^(\s{0,3})(#+)((?:[^\\#]|@escapes)+)((?:#+)?)/,["white","keyword","keyword","keyword"]],[/^\s*(=+|\-+)\s*$/,"keyword"],[/^\s*((\*[ ]?)+)\s*$/,"meta.separator"],[/^\s*>+/,"comment"],[/^\s*([\*\-+:]|\d+\.)\s/,"keyword"],[/^(\t|[ ]{4})[^ ].*$/,"string"],[/^\s*~~~\s*((?:\w|[\/\-#])+)?\s*$/,{token:"string",next:"@codeblock"}],[/^\s*```\s*((?:\w|[\/\-#])+).*$/,{token:"string",next:"@codeblockgh",nextEmbedded:"$1"}],[/^\s*```\s*$/,{token:"string",next:"@codeblock"}],{include:"@linecontent"}],table_header:[{include:"@table_common"},[/[^\|]+/,"keyword.table.header"]],table_body:[{include:"@table_common"},{include:"@linecontent"}],table_common:[[/\s*[\-:]+\s*/,{token:"keyword",switchTo:"table_body"}],[/^\s*\|/,"keyword.table.left"],[/^\s*[^\|]/,"@rematch","@pop"],[/^\s*$/,"@rematch","@pop"],[/\|/,{cases:{"@eos":"keyword.table.right","@default":"keyword.table.middle"}}]],codeblock:[[/^\s*~~~\s*$/,{token:"string",next:"@pop"}],[/^\s*```\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]],codeblockgh:[[/```\s*$/,{token:"variable.source",next:"@pop",nextEmbedded:"@pop"}],[/[^`]+/,"variable.source"]],linecontent:[[/&\w+;/,"string.escape"],[/@escapes/,"escape"],[/\b__([^\\_]|@escapes|_(?!_))+__\b/,"strong"],[/\*\*([^\\*]|@escapes|\*(?!\*))+\*\*/,"strong"],[/\b_[^_]+_\b/,"emphasis"],[/\*([^\\*]|@escapes)+\*/,"emphasis"],[/`([^\\`]|@escapes)+`/,"variable"],[/\{+[^}]+\}+/,"string.target"],[/(!?\[)((?:[^\]\\]|@escapes)*)(\]\([^\)]+\))/,["string.link","","string.link"]],[/(!?\[)((?:[^\]\\]|@escapes)*)(\])/,"string.link"],{include:"html"}],html:[[/<(\w+)\/>/,"tag"],[/<(\w+)/,{cases:{"@empty":{token:"tag",next:"@tag.$1"},"@default":{token:"tag",next:"@tag.$1"}}}],[/<\/(\w+)\s*>/,{token:"tag"}],[/<!--/,"comment","@comment"]],comment:[[/[^<\-]+/,"comment.content"],[/-->/,"comment","@pop"],[/<!--/,"comment.content.invalid"],[/[<\-]/,"comment.content"]],tag:[[/[ \t\r\n]+/,"white"],[/(type)(\s*=\s*)(")([^"]+)(")/,["attribute.name.html","delimiter.html","string.html",{token:"string.html",switchTo:"@tag.$S2.$4"},"string.html"]],[/(type)(\s*=\s*)(')([^']+)(')/,["attribute.name.html","delimiter.html","string.html",{token:"string.html",switchTo:"@tag.$S2.$4"},"string.html"]],[/(\w+)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name.html","delimiter.html","string.html"]],[/\w+/,"attribute.name.html"],[/\/>/,"tag","@pop"],[/>/,{cases:{"$S2==style":{token:"tag",switchTo:"embeddedStyle",nextEmbedded:"text/css"},"$S2==script":{cases:{$S3:{token:"tag",switchTo:"embeddedScript",nextEmbedded:"$S3"},"@default":{token:"tag",switchTo:"embeddedScript",nextEmbedded:"text/javascript"}}},"@default":{token:"tag",next:"@pop"}}}]],embeddedStyle:[[/[^<]+/,""],[/<\/style\s*>/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/</,""]],embeddedScript:[[/[^<]+/,""],[/<\/script\s*>/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/</,""]]}}}}]); -//# sourceMappingURL=8322.c2b160c6.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8335.9ed734ba.chunk.js b/ydb/core/viewer/monitoring/static/js/8335.9ed734ba.chunk.js deleted file mode 100644 index e08c726ae35f..000000000000 --- a/ydb/core/viewer/monitoring/static/js/8335.9ed734ba.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8335],{28335:function(e,t,s){s.r(t),s.d(t,{conf:function(){return o},language:function(){return r}});var o={comments:{blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"(*",close:"*)"},{open:"<*",close:"*>"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}]},r={defaultToken:"",tokenPostfix:".m3",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["AND","ANY","ARRAY","AS","BEGIN","BITS","BRANDED","BY","CASE","CONST","DIV","DO","ELSE","ELSIF","END","EVAL","EXCEPT","EXCEPTION","EXIT","EXPORTS","FINALLY","FOR","FROM","GENERIC","IF","IMPORT","IN","INTERFACE","LOCK","LOOP","METHODS","MOD","MODULE","NOT","OBJECT","OF","OR","OVERRIDES","PROCEDURE","RAISE","RAISES","READONLY","RECORD","REF","REPEAT","RETURN","REVEAL","SET","THEN","TO","TRY","TYPE","TYPECASE","UNSAFE","UNTIL","UNTRACED","VALUE","VAR","WHILE","WITH"],reservedConstNames:["ABS","ADR","ADRSIZE","BITSIZE","BYTESIZE","CEILING","DEC","DISPOSE","FALSE","FIRST","FLOAT","FLOOR","INC","ISTYPE","LAST","LOOPHOLE","MAX","MIN","NARROW","NEW","NIL","NUMBER","ORD","ROUND","SUBARRAY","TRUE","TRUNC","TYPECODE","VAL"],reservedTypeNames:["ADDRESS","ANY","BOOLEAN","CARDINAL","CHAR","EXTENDED","INTEGER","LONGCARD","LONGINT","LONGREAL","MUTEX","NULL","REAL","REFANY","ROOT","TEXT"],operators:["+","-","*","/","&","^","."],relations:["=","#","<","<=",">",">=","<:",":"],delimiters:["|","..","=>",",",";",":="],symbols:/[>=<#.,:;+\-*/&^]+/,escapes:/\\(?:[\\fnrt"']|[0-7]{3})/,tokenizer:{root:[[/_\w*/,"invalid"],[/[a-zA-Z][a-zA-Z0-9_]*/,{cases:{"@keywords":{token:"keyword.$0"},"@reservedConstNames":{token:"constant.reserved.$0"},"@reservedTypeNames":{token:"type.reserved.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[0-9]+\.[0-9]+(?:[DdEeXx][\+\-]?[0-9]+)?/,"number.float"],[/[0-9]+(?:\_[0-9a-fA-F]+)?L?/,"number"],[/@symbols/,{cases:{"@operators":"operators","@relations":"operators","@delimiters":"delimiter","@default":"invalid"}}],[/'[^\\']'/,"string.char"],[/(')(@escapes)(')/,["string.char","string.escape","string.char"]],[/'/,"invalid"],[/"([^"\\]|\\.)*$/,"invalid"],[/"/,"string.text","@text"]],text:[[/[^\\"]+/,"string.text"],[/@escapes/,"string.escape"],[/\\./,"invalid"],[/"/,"string.text","@pop"]],comment:[[/\(\*/,"comment","@push"],[/\*\)/,"comment","@pop"],[/./,"comment"]],pragma:[[/<\*/,"keyword.pragma","@push"],[/\*>/,"keyword.pragma","@pop"],[/./,"keyword.pragma"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/<\*/,"keyword.pragma","@pragma"]]}}}}]); -//# sourceMappingURL=8335.9ed734ba.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/842.bd21ee9f.chunk.js b/ydb/core/viewer/monitoring/static/js/842.bd21ee9f.chunk.js deleted file mode 100644 index ebb3111240eb..000000000000 --- a/ydb/core/viewer/monitoring/static/js/842.bd21ee9f.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[842],{60842:function(e,n,s){s.r(n),s.d(n,{conf:function(){return i},language:function(){return t}});var i={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*\x3c!--\\s*#?region\\b.*--\x3e"),end:new RegExp("^\\s*\x3c!--\\s*#?endregion\\b.*--\x3e")}}},t={defaultToken:"",tokenPostfix:".rst",control:/[\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],alphanumerics:/[A-Za-z0-9]/,alphanumericsplus:/[A-Za-z0-9-_+:.]/,simpleRefNameWithoutBq:/(?:@alphanumerics@alphanumericsplus*@alphanumerics)+|(?:@alphanumerics+)/,simpleRefName:/(?:`@simpleRefNameWithoutBq`|@simpleRefNameWithoutBq)/,phrase:/@simpleRefName(?:\s@simpleRefName)*/,citationName:/[A-Za-z][A-Za-z0-9-_.]*/,blockLiteralStart:/(?:[!"#$%&'()*+,-./:;<=>?@\[\]^_`{|}~]|[\s])/,precedingChars:/(?:[ -:/'"<([{])/,followingChars:/(?:[ -.,:;!?/'")\]}>]|$)/,punctuation:/(=|-|~|`|#|"|\^|\+|\*|:|\.|'|_|\+)/,tokenizer:{root:[[/^(@punctuation{3,}$){1,1}?/,"keyword"],[/^\s*([\*\-+\u2023\u2022]|[a-zA-Z0-9]+\.|\([a-zA-Z0-9]+\)|[a-zA-Z0-9]+\))\s/,"keyword"],[/([ ]::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],[/(::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],{include:"@tables"},{include:"@explicitMarkupBlocks"},{include:"@inlineMarkup"}],explicitMarkupBlocks:[{include:"@citations"},{include:"@footnotes"},[/^(\.\.\s)(@simpleRefName)(::\s)(.*)$/,[{token:"",next:"subsequentLines"},"keyword","",""]],[/^(\.\.)(\s+)(_)(@simpleRefName)(:)(\s+)(.*)/,[{token:"",next:"hyperlinks"},"","","string.link","","","string.link"]],[/^((?:(?:\.\.)(?:\s+))?)(__)(:)(\s+)(.*)/,[{token:"",next:"subsequentLines"},"","","","string.link"]],[/^(__\s+)(.+)/,["","string.link"]],[/^(\.\.)( \|)([^| ]+[^|]*[^| ]*)(\| )(@simpleRefName)(:: .*)/,[{token:"",next:"subsequentLines"},"","string.link","","keyword",""],"@rawBlocks"],[/(\|)([^| ]+[^|]*[^| ]*)(\|_{0,2})/,["","string.link",""]],[/^(\.\.)([ ].*)$/,[{token:"",next:"@comments"},"comment"]]],inlineMarkup:[{include:"@citationsReference"},{include:"@footnotesReference"},[/(@simpleRefName)(_{1,2})/,["string.link",""]],[/(`)([^<`]+\s+)(<)(.*)(>)(`)(_)/,["","string.link","","string.link","","",""]],[/\*\*([^\\*]|\*(?!\*))+\*\*/,"strong"],[/\*[^*]+\*/,"emphasis"],[/(``)((?:[^`]|\`(?!`))+)(``)/,["","keyword",""]],[/(__\s+)(.+)/,["","keyword"]],[/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/,["","keyword","","",""]],[/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/,["","","","keyword",""]],[/(`)([^`]+)(`)/,""],[/(_`)(@phrase)(`)/,["","string.link",""]]],citations:[[/^(\.\.\s+\[)((?:@citationName))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],citationsReference:[[/(\[)(@citationName)(\]_)/,["","string.link",""]]],footnotes:[[/^(\.\.\s+\[)((?:[0-9]+))(\]\s+.*)/,[{token:"",next:"@subsequentLines"},"string.link",""]],[/^(\.\.\s+\[)((?:#@simpleRefName?))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]],[/^(\.\.\s+\[)((?:\*))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],footnotesReference:[[/(\[)([0-9]+)(\])(_)/,["","string.link","",""]],[/(\[)(#@simpleRefName?)(\])(_)/,["","string.link","",""]],[/(\[)(\*)(\])(_)/,["","string.link","",""]]],blankLineOfLiteralBlocks:[[/^$/,"","@subsequentLinesOfLiteralBlocks"],[/^.*$/,"","@pop"]],subsequentLinesOfLiteralBlocks:[[/(@blockLiteralStart+)(.*)/,["keyword",""]],[/^(?!blockLiteralStart)/,"","@popall"]],subsequentLines:[[/^[\s]+.*/,""],[/^(?!\s)/,"","@pop"]],hyperlinks:[[/^[\s]+.*/,"string.link"],[/^(?!\s)/,"","@pop"]],comments:[[/^[\s]+.*/,"comment"],[/^(?!\s)/,"","@pop"]],tables:[[/\+-[+-]+/,"keyword"],[/\+=[+=]+/,"keyword"]]}}}}]); -//# sourceMappingURL=842.bd21ee9f.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8424.5b5c42b5.chunk.js b/ydb/core/viewer/monitoring/static/js/8424.5b5c42b5.chunk.js new file mode 100644 index 000000000000..baa14f30764b --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8424.5b5c42b5.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 8424.5b5c42b5.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8424],{88424:(e,t,i)=>{i.d(t,{Mj:()=>s.languages});var o,n,s=i(41551),r=Object.defineProperty,a=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,d=Object.prototype.hasOwnProperty,c=(e,t,i,o)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let n of l(t))d.call(e,n)||n===i||r(e,n,{get:()=>t[n],enumerable:!(o=a(t,n))||o.enumerable});return e},h={};c(h,o=s,"default"),n&&c(n,o,"default");var u={},g={},p=class e{static getOrCreate(t){return g[t]||(g[t]=new e(t)),g[t]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise(((e,t)=>{this._lazyLoadPromiseResolve=e,this._lazyLoadPromiseReject=t}))}load(){return this._loadingTriggered||(this._loadingTriggered=!0,u[this._languageId].loader().then((e=>this._lazyLoadPromiseResolve(e)),(e=>this._lazyLoadPromiseReject(e)))),this._lazyLoadPromise}};function m(e){const t=e.id;u[t]=e,h.languages.register(e);const i=p.getOrCreate(t);h.languages.registerTokensProviderFactory(t,{create:async()=>(await i.load()).language}),h.languages.onLanguageEncountered(t,(async()=>{const e=await i.load();h.languages.setLanguageConfiguration(t,e.conf)}))}m({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>i.e(1155).then(i.bind(i,71155))}),m({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>i.e(6230).then(i.bind(i,16230))}),m({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>i.e(337).then(i.bind(i,80337))}),m({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>i.e(451).then(i.bind(i,80451))}),m({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>i.e(2322).then(i.bind(i,32322))}),m({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>i.e(4123).then(i.bind(i,14123))}),m({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>i.e(6289).then(i.bind(i,66289))}),m({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>i.e(4635).then(i.bind(i,74635))}),m({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>i.e(4345).then(i.bind(i,44345))}),m({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>i.e(4345).then(i.bind(i,44345))}),m({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>i.e(9319).then(i.bind(i,49319))}),m({id:"csp",extensions:[],aliases:["CSP","csp"],loader:()=>i.e(924).then(i.bind(i,90924))}),m({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>i.e(6795).then(i.bind(i,66795))}),m({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>i.e(2302).then(i.bind(i,92302))}),m({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>i.e(4388).then(i.bind(i,34388))}),m({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>i.e(4046).then(i.bind(i,44046))}),m({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>i.e(2190).then(i.bind(i,72190))}),m({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>i.e(3358).then(i.bind(i,13358))}),m({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>i.e(6142).then(i.bind(i,26142))}),m({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>i.e(2962).then(i.bind(i,92962))}),m({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>i.e(214).then(i.bind(i,10214)).then((e=>e.TagAutoInterpolationDollar))}),m({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>i.e(214).then(i.bind(i,10214)).then((e=>e.TagAngleInterpolationDollar))}),m({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>i.e(214).then(i.bind(i,10214)).then((e=>e.TagBracketInterpolationDollar))}),m({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>i.e(214).then(i.bind(i,10214)).then((e=>e.TagAngleInterpolationBracket))}),m({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>i.e(214).then(i.bind(i,10214)).then((e=>e.TagBracketInterpolationBracket))}),m({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>i.e(214).then(i.bind(i,10214)).then((e=>e.TagAutoInterpolationDollar))}),m({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>i.e(214).then(i.bind(i,10214)).then((e=>e.TagAutoInterpolationBracket))}),m({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>i.e(8791).then(i.bind(i,98791))}),m({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>i.e(6898).then(i.bind(i,86898))}),m({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>i.e(9173).then(i.bind(i,39173))}),m({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>i.e(2532).then(i.bind(i,22532))}),m({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:()=>i.e(6329).then(i.bind(i,16329))}),m({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>i.e(2840).then(i.bind(i,2840))}),m({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>i.e(5311).then(i.bind(i,45311))}),m({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>i.e(2403).then(i.bind(i,92403))}),m({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>i.e(1747).then(i.bind(i,11747))}),m({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>i.e(3498).then(i.bind(i,53498))}),m({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>i.e(185).then(i.bind(i,90185))}),m({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>i.e(8450).then(i.bind(i,58450))}),m({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>i.e(3771).then(i.bind(i,23771))}),m({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>i.e(7529).then(i.bind(i,47529))}),m({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>i.e(785).then(i.bind(i,20785))}),m({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>i.e(5107).then(i.bind(i,85107))}),m({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>i.e(6919).then(i.bind(i,26919))}),m({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>i.e(2104).then(i.bind(i,52104))}),m({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>i.e(9433).then(i.bind(i,49433))}),m({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>i.e(1956).then(i.bind(i,71956))}),m({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>i.e(6619).then(i.bind(i,16619))}),m({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>i.e(2492).then(i.bind(i,82492))}),m({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>i.e(2194).then(i.bind(i,32194))}),m({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>i.e(9526).then(i.bind(i,29526))}),m({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>i.e(5790).then(i.bind(i,65790))}),m({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>i.e(8905).then(i.bind(i,98905))}),m({id:"pla",extensions:[".pla"],loader:()=>i.e(5168).then(i.bind(i,25168))}),m({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>i.e(619).then(i.bind(i,41612))}),m({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>i.e(4550).then(i.bind(i,74550))}),m({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>i.e(3644).then(i.bind(i,93644))}),m({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>i.e(8797).then(i.bind(i,98797))}),m({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>i.e(2521).then(i.bind(i,52521))}),m({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>i.e(1478).then(i.bind(i,11478))}),m({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>i.e(6300).then(i.bind(i,66300))}),m({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>i.e(3074).then(i.bind(i,63074))}),m({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>i.e(9371).then(i.bind(i,29371))}),m({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>i.e(9923).then(i.bind(i,39923))}),m({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>i.e(358).then(i.bind(i,80358))}),m({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>i.e(86).then(i.bind(i,10086))}),m({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>i.e(5661).then(i.bind(i,55661))}),m({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>i.e(3621).then(i.bind(i,13621))}),m({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>i.e(2994).then(i.bind(i,82994))}),m({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:()=>i.e(4812).then(i.bind(i,14812))}),m({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>i.e(9621).then(i.bind(i,19621))}),m({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>i.e(7554).then(i.bind(i,77554))}),m({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>i.e(425).then(i.bind(i,425))}),m({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>i.e(6044).then(i.bind(i,96044))}),m({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>i.e(2141).then(i.bind(i,2141))}),m({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>i.e(919).then(i.bind(i,50919))}),m({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>i.e(6692).then(i.bind(i,66692))}),m({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>i.e(6321).then(i.bind(i,26321))}),m({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>i.e(2931).then(i.bind(i,62931))}),m({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>i.e(2876).then(i.bind(i,12876))}),m({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>i.e(2876).then(i.bind(i,12876))}),m({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>i.e(5868).then(i.bind(i,5868))}),m({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>i.e(2553).then(i.bind(i,12553))}),m({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>i.e(9876).then(i.bind(i,89876))}),m({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>i.e(5378).then(i.bind(i,65378))}),m({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>i.e(2183).then(i.bind(i,42183))}),m({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",aliases:["XML","xml"],mimetypes:["text/xml","application/xml","application/xaml+xml","application/xml-dtd"],loader:()=>i.e(7543).then(i.bind(i,87543))}),m({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>i.e(6390).then(i.bind(i,36390))});var _=Object.defineProperty,f=Object.getOwnPropertyDescriptor,v=Object.getOwnPropertyNames,b=Object.prototype.hasOwnProperty,C=(e,t,i,o)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let n of v(t))b.call(e,n)||n===i||_(e,n,{get:()=>t[n],enumerable:!(o=f(t,n))||o.enumerable});return e},S={};((e,t,i)=>{C(e,t,"default"),i&&C(i,t,"default")})(S,s);var y=class{constructor(e,t,i){this._onDidChange=new S.Emitter,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},w={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"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},x={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},N=new y("css",w,x),L=new y("scss",w,x),k=new y("less",w,x);function D(){return i.e(2118).then(i.bind(i,52118))}S.languages.css={cssDefaults:N,lessDefaults:k,scssDefaults:L},S.languages.onLanguage("less",(()=>{D().then((e=>e.setupMode(k)))})),S.languages.onLanguage("scss",(()=>{D().then((e=>e.setupMode(L)))})),S.languages.onLanguage("css",(()=>{D().then((e=>e.setupMode(N)))}));var I=Object.defineProperty,R=Object.getOwnPropertyDescriptor,P=Object.getOwnPropertyNames,M=Object.prototype.hasOwnProperty,T=(e,t,i,o)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let n of P(t))M.call(e,n)||n===i||I(e,n,{get:()=>t[n],enumerable:!(o=R(t,n))||o.enumerable});return e},E={};((e,t,i)=>{T(e,t,"default"),i&&T(i,t,"default")})(E,s);var A=class{constructor(e,t,i){this._onDidChange=new E.Emitter,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},O={format:{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:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},suggest:{},data:{useDefaultDataProvider:!0}};function F(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===W,documentFormattingEdits:e===W,documentRangeFormattingEdits:e===W}}var W="html",H="handlebars",V="razor",B=G(W,O,F(W)),z=B.defaults,U=G(H,O,F(H)),K=U.defaults,j=G(V,O,F(V)),q=j.defaults;function G(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:F(e);const n=new A(e,t,o);let s;const r=E.languages.onLanguage(e,(async()=>{s=(await i.e(8065).then(i.bind(i,18065))).setupMode(n)}));return{defaults:n,dispose(){var e;r.dispose(),null===(e=s)||void 0===e||e.dispose(),s=void 0}}}E.languages.html={htmlDefaults:z,razorDefaults:q,handlebarDefaults:K,htmlLanguageService:B,handlebarLanguageService:U,razorLanguageService:j,registerHTMLLanguageService:G};var Q=new class{constructor(e,t,i){this._onDidChange=new s.Emitter,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}}("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});function Z(){return i.e(7520).then(i.bind(i,67520))}s.languages.json={jsonDefaults:Q,getWorker:()=>Z().then((e=>e.getWorker()))},s.languages.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]}),s.languages.onLanguage("json",(()=>{Z().then((e=>e.setupMode(Q)))}));i(13746);var Y=i(70469),J=i(76025),$=i(62974),X=i(85714),ee=i(23001),te=i(38119),ie=i(95233),oe=i(54081),ne=i(71721),se=i(48489),re=i(25195),ae=i(24920);i(94817);class le extends se.Ke{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:(0,ne.vv)("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:$.l.map,toggled:ae.Ao.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:ae.Ao.has("isInDiffEditor"),menu:{when:ae.Ao.has("isInDiffEditor"),id:se.eH.EditorTitle,order:22,group:"navigation"}})}run(e){const t=e.get(re.Ui),i=!t.getValue("diffEditor.hideUnchangedRegions.enabled");t.updateValue("diffEditor.hideUnchangedRegions.enabled",i)}}class de extends se.Ke{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:(0,ne.vv)("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:ae.Ao.has("isInDiffEditor")})}run(e){const t=e.get(re.Ui),i=!t.getValue("diffEditor.experimental.showMoves");t.updateValue("diffEditor.experimental.showMoves",i)}}class ce extends se.Ke{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:(0,ne.vv)("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:ae.Ao.has("isInDiffEditor")})}run(e){const t=e.get(re.Ui),i=!t.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");t.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",i)}}const he=(0,ne.vv)("diffEditor","Diff Editor");class ue extends ee.x1{constructor(){super({id:"diffEditor.switchSide",title:(0,ne.vv)("switchSide","Switch Side"),icon:$.l.arrowSwap,precondition:ae.Ao.has("isInDiffEditor"),f1:!0,category:he})}runEditorCommand(e,t,i){const o=Ce(e);if(o instanceof ie.p){if(i&&i.dryRun)return{destinationSelection:o.mapToOtherSide().destinationSelection};o.switchSide()}}}class ge extends ee.x1{constructor(){super({id:"diffEditor.exitCompareMove",title:(0,ne.vv)("exitCompareMove","Exit Compare Move"),icon:$.l.close,precondition:oe.u.comparingMovedCode,f1:!1,category:he,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t){const i=Ce(e);i instanceof ie.p&&i.exitCompareMove()}}class pe extends ee.x1{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:(0,ne.vv)("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:$.l.fold,precondition:ae.Ao.has("isInDiffEditor"),f1:!0,category:he})}runEditorCommand(e,t){const i=Ce(e);i instanceof ie.p&&i.collapseAllUnchangedRegions()}}class me extends ee.x1{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:(0,ne.vv)("showAllUnchangedRegions","Show All Unchanged Regions"),icon:$.l.unfold,precondition:ae.Ao.has("isInDiffEditor"),f1:!0,category:he})}runEditorCommand(e,t){const i=Ce(e);i instanceof ie.p&&i.showAllUnchangedRegions()}}class _e extends se.Ke{constructor(){super({id:"diffEditor.revert",title:(0,ne.vv)("revert","Revert"),f1:!1,category:he})}run(e,t){var i;const o=function(e,t,i){const o=e.get(te.$);return o.listDiffEditors().find((e=>{var o,n;const s=e.getModifiedEditor(),r=e.getOriginalEditor();return s&&(null===(o=s.getModel())||void 0===o?void 0:o.uri.toString())===i.toString()&&r&&(null===(n=r.getModel())||void 0===n?void 0:n.uri.toString())===t.toString()}))||null}(e,t.originalUri,t.modifiedUri);o instanceof ie.p&&o.revertRangeMappings(null!==(i=t.mapping.innerChanges)&&void 0!==i?i:[])}}const fe=(0,ne.vv)("accessibleDiffViewer","Accessible Diff Viewer");class ve extends se.Ke{constructor(){super({id:ve.id,title:(0,ne.vv)("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:fe,precondition:ae.Ao.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=Ce(e);null===t||void 0===t||t.accessibleDiffViewerNext()}}ve.id="editor.action.accessibleDiffViewer.next";class be extends se.Ke{constructor(){super({id:be.id,title:(0,ne.vv)("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:fe,precondition:ae.Ao.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=Ce(e);null===t||void 0===t||t.accessibleDiffViewerPrev()}}function Ce(e){const t=e.get(te.$).listDiffEditors(),i=(0,X.vY)();if(i)for(const o of t){if(Se(o.getContainerDomNode(),i))return o}return null}function Se(e,t){let i=t;for(;i;){if(i===e)return!0;i=i.parentElement}return!1}be.id="editor.action.accessibleDiffViewer.prev";var ye=i(60982);(0,se.r1)(le),(0,se.r1)(de),(0,se.r1)(ce),se.BH.appendMenuItem(se.eH.EditorTitle,{command:{id:(new ce).desc.id,title:(0,ne.NC)("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:ae.Ao.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:ae.Ao.has("isInDiffEditor")},order:11,group:"1_diff",when:ae.Ao.and(oe.u.diffEditorRenderSideBySideInlineBreakpointReached,ae.Ao.has("isInDiffEditor"))}),se.BH.appendMenuItem(se.eH.EditorTitle,{command:{id:(new de).desc.id,title:(0,ne.NC)("showMoves","Show Moved Code Blocks"),icon:$.l.move,toggled:ae.cP.create("config.diffEditor.experimental.showMoves",!0),precondition:ae.Ao.has("isInDiffEditor")},order:10,group:"1_diff",when:ae.Ao.has("isInDiffEditor")}),(0,se.r1)(_e);for(const Ex of[{icon:$.l.arrowRight,key:oe.u.diffEditorInlineMode.toNegated()},{icon:$.l.discard,key:oe.u.diffEditorInlineMode}])se.BH.appendMenuItem(se.eH.DiffEditorHunkToolbar,{command:{id:(new _e).desc.id,title:(0,ne.NC)("revertHunk","Revert Block"),icon:Ex.icon},when:ae.Ao.and(oe.u.diffEditorModifiedWritable,Ex.key),order:5,group:"primary"}),se.BH.appendMenuItem(se.eH.DiffEditorSelectionToolbar,{command:{id:(new _e).desc.id,title:(0,ne.NC)("revertSelection","Revert Selection"),icon:Ex.icon},when:ae.Ao.and(oe.u.diffEditorModifiedWritable,Ex.key),order:5,group:"primary"});(0,se.r1)(ue),(0,se.r1)(ge),(0,se.r1)(pe),(0,se.r1)(me),se.BH.appendMenuItem(se.eH.EditorTitle,{command:{id:ve.id,title:(0,ne.NC)("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:ae.Ao.has("isInDiffEditor")},order:10,group:"2_diff",when:ae.Ao.and(oe.u.accessibleDiffViewerVisible.negate(),ae.Ao.has("isInDiffEditor"))}),ye.P.registerCommandAlias("editor.action.diffReview.next",ve.id),(0,se.r1)(ve),ye.P.registerCommandAlias("editor.action.diffReview.prev",be.id),(0,se.r1)(be);var we,xe=i(70036),Ne=i(32936),Le=i(67925),ke=i(67078),De=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ie=function(e,t){return function(i,o){t(i,o,e)}};const Re=new ae.uy("selectionAnchorSet",!1);let Pe=we=class{static get(e){return e.getContribution(we.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=Re.bindTo(t),this.modelChangeListener=e.onDidChangeModel((()=>this.selectionAnchorSetContextKey.reset()))}setSelectionAnchor(){if(this.editor.hasModel()){const e=this.editor.getPosition();this.editor.changeDecorations((t=>{this.decorationId&&t.removeDecoration(this.decorationId),this.decorationId=t.addDecoration(ke.Y.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:(new Ne.W5).appendText((0,ne.NC)("selectionAnchor","Selection Anchor")),className:"selection-anchor"})})),this.selectionAnchorSetContextKey.set(!!this.decorationId),(0,xe.Z9)((0,ne.NC)("anchorSet","Anchor set at {0}:{1}",e.lineNumber,e.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);e&&this.editor.setPosition(e.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);if(e){const t=this.editor.getPosition();this.editor.setSelection(ke.Y.fromPositions(e.getStartPosition(),t)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const e=this.decorationId;this.editor.changeDecorations((t=>{t.removeDecoration(e),this.decorationId=void 0})),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}};Pe.ID="editor.contrib.selectionAnchorController",Pe=we=De([Ie(1,ae.i6)],Pe);class Me extends ee.R6{constructor(){super({id:"editor.action.setSelectionAnchor",label:(0,ne.NC)("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2080),weight:100}})}async run(e,t){var i;null===(i=Pe.get(t))||void 0===i||i.setSelectionAnchor()}}class Te extends ee.R6{constructor(){super({id:"editor.action.goToSelectionAnchor",label:(0,ne.NC)("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:Re})}async run(e,t){var i;null===(i=Pe.get(t))||void 0===i||i.goToSelectionAnchor()}}class Ee extends ee.R6{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:(0,ne.NC)("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:Re,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2089),weight:100}})}async run(e,t){var i;null===(i=Pe.get(t))||void 0===i||i.selectFromAnchorToCursor()}}class Ae extends ee.R6{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:(0,ne.NC)("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:Re,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;null===(i=Pe.get(t))||void 0===i||i.cancelSelectionAnchor()}}(0,ee._K)(Pe.ID,Pe,4),(0,ee.Qr)(Me),(0,ee.Qr)(Te),(0,ee.Qr)(Ee),(0,ee.Qr)(Ae);var Oe=i(60282),Fe=i(89599),We=i(2067),He=i(10670),Ve=i(27127),Be=i(22659),ze=i(87701),Ue=i(17903);const Ke=(0,ze.P6G)("editorOverviewRuler.bracketMatchForeground",{dark:"#A0A0A0",light:"#A0A0A0",hcDark:"#A0A0A0",hcLight:"#A0A0A0"},ne.NC("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class je extends ee.R6{constructor(){super({id:"editor.action.jumpToBracket",label:ne.NC("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;null===(i=Ze.get(t))||void 0===i||i.jumpToBracket()}}class qe extends ee.R6{constructor(){super({id:"editor.action.selectToBracket",label:ne.NC("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:ne.vv("smartSelect.selectToBracketDescription","Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(e,t,i){var o;let n=!0;i&&!1===i.selectBrackets&&(n=!1),null===(o=Ze.get(t))||void 0===o||o.selectToBracket(n)}}class Ge extends ee.R6{constructor(){super({id:"editor.action.removeBrackets",label:ne.NC("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;null===(i=Ze.get(t))||void 0===i||i.removeBrackets(this.id)}}class Qe{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}class Ze extends Fe.JT{static get(e){return e.getContribution(Ze.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new Oe.pY((()=>this._updateBrackets()),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(e.onDidChangeCursorPosition((e=>{"never"!==this._matchBrackets&&this._updateBracketsSoon.schedule()}))),this._register(e.onDidChangeModelContent((e=>{this._updateBracketsSoon.schedule()}))),this._register(e.onDidChangeModel((e=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()}))),this._register(e.onDidChangeModelLanguageConfiguration((e=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()}))),this._register(e.onDidChangeConfiguration((e=>{e.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())}))),this._register(e.onDidBlurEditorWidget((()=>{this._updateBracketsSoon.schedule()}))),this._register(e.onDidFocusEditorWidget((()=>{this._updateBracketsSoon.schedule()})))}jumpToBracket(){if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getSelections().map((t=>{const i=t.getStartPosition(),o=e.bracketPairs.matchBracket(i);let n=null;if(o)o[0].containsPosition(i)&&!o[1].containsPosition(i)?n=o[1].getStartPosition():o[1].containsPosition(i)&&(n=o[0].getStartPosition());else{const t=e.bracketPairs.findEnclosingBrackets(i);if(t)n=t[1].getStartPosition();else{const t=e.bracketPairs.findNextBracket(i);t&&t.range&&(n=t.range.getStartPosition())}}return n?new ke.Y(n.lineNumber,n.column,n.lineNumber,n.column):new ke.Y(i.lineNumber,i.column,i.lineNumber,i.column)}));this._editor.setSelections(t),this._editor.revealRange(t[0])}selectToBracket(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=[];this._editor.getSelections().forEach((o=>{const n=o.getStartPosition();let s=t.bracketPairs.matchBracket(n);if(!s&&(s=t.bracketPairs.findEnclosingBrackets(n),!s)){const e=t.bracketPairs.findNextBracket(n);e&&e.range&&(s=t.bracketPairs.matchBracket(e.range.getStartPosition()))}let r=null,a=null;if(s){s.sort(He.e.compareRangesUsingStarts);const[t,i]=s;if(r=e?t.getStartPosition():t.getEndPosition(),a=e?i.getEndPosition():i.getStartPosition(),i.containsPosition(n)){const e=r;r=a,a=e}}r&&a&&i.push(new ke.Y(r.lineNumber,r.column,a.lineNumber,a.column))})),i.length>0&&(this._editor.setSelections(i),this._editor.revealRange(i[0]))}removeBrackets(e){if(!this._editor.hasModel())return;const t=this._editor.getModel();this._editor.getSelections().forEach((i=>{const o=i.getPosition();let n=t.bracketPairs.matchBracket(o);n||(n=t.bracketPairs.findEnclosingBrackets(o)),n&&(this._editor.pushUndoStop(),this._editor.executeEdits(e,[{range:n[0],text:""},{range:n[1],text:""}]),this._editor.pushUndoStop())}))}_updateBrackets(){if("never"===this._matchBrackets)return;this._recomputeBrackets();const e=[];let t=0;for(const i of this._lastBracketsData){const o=i.brackets;o&&(e[t++]={range:o[0],options:i.options},e[t++]={range:o[1],options:i.options})}this._decorations.set(e)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus())return this._lastBracketsData=[],void(this._lastVersionId=0);const e=this._editor.getSelections();if(e.length>100)return this._lastBracketsData=[],void(this._lastVersionId=0);const t=this._editor.getModel(),i=t.getVersionId();let o=[];this._lastVersionId===i&&(o=this._lastBracketsData);const n=[];let s=0;for(let c=0,h=e.length;c<h;c++){const t=e[c];t.isEmpty()&&(n[s++]=t.getStartPosition())}n.length>1&&n.sort(We.L.compare);const r=[];let a=0,l=0;const d=o.length;for(let c=0,h=n.length;c<h;c++){const e=n[c];for(;l<d&&o[l].position.isBefore(e);)l++;if(l<d&&o[l].position.equals(e))r[a++]=o[l];else{let i=t.bracketPairs.matchBracket(e,20),o=Ze._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;i||"always"!==this._matchBrackets||(i=t.bracketPairs.findEnclosingBrackets(e,20),o=Ze._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),r[a++]=new Qe(e,i,o)}}this._lastBracketsData=r,this._lastVersionId=i}}Ze.ID="editor.contrib.bracketMatchingController",Ze._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=Be.qx.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:(0,Ue.EN)(Ke),position:Ve.sh.Center}}),Ze._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=Be.qx.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"}),(0,ee._K)(Ze.ID,Ze,1),(0,ee.Qr)(qe),(0,ee.Qr)(je),(0,ee.Qr)(Ge),se.BH.appendMenuItem(se.eH.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:ne.NC({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});class Ye{constructor(e,t){this._selection=e,this._isMovingLeft=t}getEditOperations(e,t){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const i=this._selection.startLineNumber,o=this._selection.startColumn,n=this._selection.endColumn;if((!this._isMovingLeft||1!==o)&&(this._isMovingLeft||n!==e.getLineMaxColumn(i)))if(this._isMovingLeft){const s=new He.e(i,o-1,i,o),r=e.getValueInRange(s);t.addEditOperation(s,null),t.addEditOperation(new He.e(i,n,i,n),r)}else{const s=new He.e(i,n,i,n+1),r=e.getValueInRange(s);t.addEditOperation(s,null),t.addEditOperation(new He.e(i,o,i,o),r)}}computeCursorState(e,t){return this._isMovingLeft?new ke.Y(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new ke.Y(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class Je extends ee.R6{constructor(e,t){super(t),this.left=e}run(e,t){if(!t.hasModel())return;const i=[],o=t.getSelections();for(const n of o)i.push(new Ye(n,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}(0,ee.Qr)(class extends Je{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:ne.NC("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:oe.u.writable})}}),(0,ee.Qr)(class extends Je{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:ne.NC("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:oe.u.writable})}});var $e=i(27121),Xe=i(96939);class et extends ee.R6{constructor(){super({id:"editor.action.transposeLetters",label:ne.NC("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(e,t){if(!t.hasModel())return;const i=t.getModel(),o=[],n=t.getSelections();for(const s of n){if(!s.isEmpty())continue;const e=s.startLineNumber,t=s.startColumn,n=i.getLineMaxColumn(e);if(1===e&&(1===t||2===t&&2===n))continue;const r=t===n?s.getPosition():Xe.o.rightPosition(i,s.getPosition().lineNumber,s.getPosition().column),a=Xe.o.leftPosition(i,r),l=Xe.o.leftPosition(i,a),d=i.getValueInRange(He.e.fromPositions(l,a)),c=i.getValueInRange(He.e.fromPositions(a,r)),h=He.e.fromPositions(l,r);o.push(new $e.T4(h,c+d))}o.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop())}}(0,ee.Qr)(et);var tt=i(42606),it=i(21511),ot=i(73451),nt=i(75629),st=i(36952);const rt=function(){if("object"===typeof crypto&&"function"===typeof crypto.randomUUID)return crypto.randomUUID.bind(crypto);let e;e="object"===typeof crypto&&"function"===typeof crypto.getRandomValues?crypto.getRandomValues.bind(crypto):function(e){for(let t=0;t<e.length;t++)e[t]=Math.floor(256*Math.random());return e};const t=new Uint8Array(16),i=[];for(let o=0;o<256;o++)i.push(o.toString(16).padStart(2,"0"));return function(){e(t),t[6]=15&t[6]|64,t[8]=63&t[8]|128;let o=0,n="";return n+=i[t[o++]],n+=i[t[o++]],n+=i[t[o++]],n+=i[t[o++]],n+="-",n+=i[t[o++]],n+=i[t[o++]],n+="-",n+=i[t[o++]],n+=i[t[o++]],n+="-",n+=i[t[o++]],n+=i[t[o++]],n+="-",n+=i[t[o++]],n+=i[t[o++]],n+=i[t[o++]],n+=i[t[o++]],n+=i[t[o++]],n+=i[t[o++]],n}}();function at(e){return{asString:async()=>e,asFile:()=>{},value:"string"===typeof e?e:void 0}}class lt{constructor(){this._entries=new Map}get size(){let e=0;for(const t of this._entries)e++;return e}has(e){return this._entries.has(this.toKey(e))}matches(e){const t=[...this._entries.keys()];return st.$.some(this,(e=>{let[t,i]=e;return i.asFile()}))&&t.push("files"),ht(dt(e),t)}get(e){var t;return null===(t=this._entries.get(this.toKey(e)))||void 0===t?void 0:t[0]}append(e,t){const i=this._entries.get(e);i?i.push(t):this._entries.set(this.toKey(e),[t])}replace(e,t){this._entries.set(this.toKey(e),[t])}delete(e){this._entries.delete(this.toKey(e))}*[Symbol.iterator](){for(const[e,t]of this._entries)for(const i of t)yield[e,i]}toKey(e){return dt(e)}}function dt(e){return e.toLowerCase()}function ct(e,t){return ht(dt(e),t.map(dt))}function ht(e,t){if("*/*"===e)return t.length>0;if(t.includes(e))return!0;const i=e.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!i)return!1;const[o,n,s]=i;return"*"===s&&t.some((e=>e.startsWith(n+"/")))}const ut=Object.freeze({create:e=>(0,nt.EB)(e.map((e=>e.toString()))).join("\r\n"),split:e=>e.split("\r\n"),parse:e=>ut.split(e).filter((e=>!e.startsWith("#")))});class gt{constructor(e){this.value=e}equals(e){return this.value===e.value}contains(e){return this.equals(e)||""===this.value||e.value.startsWith(this.value+gt.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return new gt((this.value?[this.value,...t]:t).join(gt.sep))}}gt.sep=".",gt.None=new gt("@@none@@"),gt.Empty=new gt("");var pt=i(51572),mt=i(86487),_t=i(82682),ft=i(70311);const vt="CodeEditors",bt="CodeFiles";ft.B.add("workbench.contributions.dragAndDrop",new class{});class Ct{constructor(){}static getInstance(){return Ct.INSTANCE}hasData(e){return e&&e===this.proto}getData(e){if(this.hasData(e))return this.data}}function St(e){const t=new lt;for(const i of e.items){const e=i.type;if("string"===i.kind){const o=new Promise((e=>i.getAsString(e)));t.append(e,at(o))}else if("file"===i.kind){const o=i.getAsFile();o&&t.append(e,yt(o))}}return t}function yt(e){const t=e.path?_t.o.parse(e.path):void 0;return function(e,t,i){const o={id:rt(),name:e,uri:t,data:i};return{asString:async()=>"",asFile:()=>o,value:void 0}}(e.name,t,(async()=>new Uint8Array(await e.arrayBuffer())))}Ct.INSTANCE=new Ct;const wt=Object.freeze([vt,bt,mt.g.RESOURCES,mt.g.INTERNAL_URI_LIST]);function xt(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const i=St(e),o=i.get(mt.g.INTERNAL_URI_LIST);if(o)i.replace(pt.v.uriList,o);else if(t||!i.has(pt.v.uriList)){const t=[];for(const i of e.items){const e=i.getAsFile();if(e){const i=e.path;try{i?t.push(_t.o.file(i).toString()):t.push(_t.o.parse(e.name,!0).toString())}catch(wa){}}}t.length&&i.replace(pt.v.uriList,at(ut.create(t)))}for(const n of wt)i.delete(n);return i}var Nt=i(621),Lt=i(761),kt=i(89752),Dt=i(33211),It=i(55694),Rt=i(73449),Pt=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Mt=function(e,t){return function(i,o){t(i,o,e)}};class Tt{async provideDocumentPasteEdits(e,t,i,o,n){const s=await this.getEdit(i,n);if(s)return{dispose(){},edits:[{insertText:s.insertText,title:s.title,kind:s.kind,handledMimeType:s.handledMimeType,yieldTo:s.yieldTo}]}}async provideDocumentOnDropEdits(e,t,i,o){const n=await this.getEdit(i,o);return n?[{insertText:n.insertText,title:n.title,kind:n.kind,handledMimeType:n.handledMimeType,yieldTo:n.yieldTo}]:void 0}}class Et extends Tt{constructor(){super(...arguments),this.kind=Et.kind,this.dropMimeTypes=[pt.v.text],this.pasteMimeTypes=[pt.v.text]}async getEdit(e,t){const i=e.get(pt.v.text);if(!i)return;if(e.has(pt.v.uriList))return;const o=await i.asString();return{handledMimeType:pt.v.text,title:(0,ne.NC)("text.label","Insert Plain Text"),insertText:o,kind:this.kind}}}Et.id="text",Et.kind=new gt("text.plain");class At extends Tt{constructor(){super(...arguments),this.kind=new gt("uri.absolute"),this.dropMimeTypes=[pt.v.uriList],this.pasteMimeTypes=[pt.v.uriList]}async getEdit(e,t){const i=await Wt(e);if(!i.length||t.isCancellationRequested)return;let o=0;const n=i.map((e=>{let{uri:t,originalText:i}=e;return t.scheme===Dt.lg.file?t.fsPath:(o++,i)})).join(" ");let s;return s=o>0?i.length>1?(0,ne.NC)("defaultDropProvider.uriList.uris","Insert Uris"):(0,ne.NC)("defaultDropProvider.uriList.uri","Insert Uri"):i.length>1?(0,ne.NC)("defaultDropProvider.uriList.paths","Insert Paths"):(0,ne.NC)("defaultDropProvider.uriList.path","Insert Path"),{handledMimeType:pt.v.uriList,insertText:n,title:s,kind:this.kind}}}let Ot=class extends Tt{constructor(e){super(),this._workspaceContextService=e,this.kind=new gt("uri.relative"),this.dropMimeTypes=[pt.v.uriList],this.pasteMimeTypes=[pt.v.uriList]}async getEdit(e,t){const i=await Wt(e);if(!i.length||t.isCancellationRequested)return;const o=(0,nt.kX)(i.map((e=>{let{uri:t}=e;const i=this._workspaceContextService.getWorkspaceFolder(t);return i?(0,It.lX)(i.uri,t):void 0})));return o.length?{handledMimeType:pt.v.uriList,insertText:o.join(" "),title:i.length>1?(0,ne.NC)("defaultDropProvider.uriList.relativePaths","Insert Relative Paths"):(0,ne.NC)("defaultDropProvider.uriList.relativePath","Insert Relative Path"),kind:this.kind}:void 0}};Ot=Pt([Mt(0,Rt.ec)],Ot);class Ft{constructor(){this.kind=new gt("html"),this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:pt.v.text}]}async provideDocumentPasteEdits(e,t,i,o,n){var s;if(o.triggerKind!==Lt.Nq.PasteAs&&!(null===(s=o.only)||void 0===s?void 0:s.contains(this.kind)))return;const r=i.get("text/html"),a=await(null===r||void 0===r?void 0:r.asString());return a&&!n.isCancellationRequested?{dispose(){},edits:[{insertText:a,yieldTo:this._yieldTo,title:(0,ne.NC)("pasteHtmlLabel","Insert HTML"),kind:this.kind}]}:void 0}}async function Wt(e){const t=e.get(pt.v.uriList);if(!t)return[];const i=await t.asString(),o=[];for(const n of ut.parse(i))try{o.push({uri:_t.o.parse(n),originalText:n})}catch(wa){}return o}let Ht=class extends Fe.JT{constructor(e,t){super(),this._register(e.documentOnDropEditProvider.register("*",new Et)),this._register(e.documentOnDropEditProvider.register("*",new At)),this._register(e.documentOnDropEditProvider.register("*",new Ot(t)))}};Ht=Pt([Mt(0,kt.p),Mt(1,Rt.ec)],Ht);let Vt=class extends Fe.JT{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register("*",new Et)),this._register(e.documentPasteEditProvider.register("*",new At)),this._register(e.documentPasteEditProvider.register("*",new Ot(t))),this._register(e.documentPasteEditProvider.register("*",new Ft))}};Vt=Pt([Mt(0,kt.p),Mt(1,Rt.ec)],Vt);class Bt{constructor(){this.value="",this.pos=0}static isDigitCharacter(e){return e>=48&&e<=57}static isVariableCharacter(e){return 95===e||e>=97&&e<=122||e>=65&&e<=90}text(e){this.value=e,this.pos=0}tokenText(e){return this.value.substr(e.pos,e.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};const e=this.pos;let t,i=0,o=this.value.charCodeAt(e);if(t=Bt._table[o],"number"===typeof t)return this.pos+=1,{type:t,pos:e,len:1};if(Bt.isDigitCharacter(o)){t=8;do{i+=1,o=this.value.charCodeAt(e+i)}while(Bt.isDigitCharacter(o));return this.pos+=i,{type:t,pos:e,len:i}}if(Bt.isVariableCharacter(o)){t=9;do{o=this.value.charCodeAt(e+ ++i)}while(Bt.isVariableCharacter(o)||Bt.isDigitCharacter(o));return this.pos+=i,{type:t,pos:e,len:i}}t=10;do{i+=1,o=this.value.charCodeAt(e+i)}while(!isNaN(o)&&"undefined"===typeof Bt._table[o]&&!Bt.isDigitCharacter(o)&&!Bt.isVariableCharacter(o));return this.pos+=i,{type:t,pos:e,len:i}}}Bt._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};class zt{constructor(){this._children=[]}appendChild(e){return e instanceof Ut&&this._children[this._children.length-1]instanceof Ut?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}replace(e,t){const{parent:i}=e,o=i.children.indexOf(e),n=i.children.slice(0);n.splice(o,1,...t),i._children=n,function e(t,i){for(const o of t)o.parent=i,e(o.children,o)}(t,i)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let e=this;for(;;){if(!e)return;if(e instanceof Jt)return e;e=e.parent}}toString(){return this.children.reduce(((e,t)=>e+t.toString()),"")}len(){return 0}}class Ut extends zt{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new Ut(this.value)}}class Kt extends zt{}class jt extends Kt{static compareByIndex(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop||e.index<t.index?-1:e.index>t.index?1:0}constructor(e){super(),this.index=e}get isFinalTabstop(){return 0===this.index}get choice(){return 1===this._children.length&&this._children[0]instanceof qt?this._children[0]:void 0}clone(){const e=new jt(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map((e=>e.clone())),e}}class qt extends zt{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof Ut&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const e=new qt;return this.options.forEach(e.appendChild,e),e}}class Gt extends zt{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(e){const t=this;let i=!1,o=e.replace(this.regexp,(function(){return i=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))}));return!i&&this._children.some((e=>e instanceof Qt&&Boolean(e.elseValue)))&&(o=this._replace([])),o}_replace(e){let t="";for(const i of this._children)if(i instanceof Qt){let o=e[i.index]||"";o=i.resolve(o),t+=o}else t+=i.toString();return t}toString(){return""}clone(){const e=new Gt;return e.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),e._children=this.children.map((e=>e.clone())),e}}class Qt extends zt{constructor(e,t,i,o){super(),this.index=e,this.shorthandName=t,this.ifValue=i,this.elseValue=o}resolve(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):"":"camelcase"===this.shorthandName?e?this._toCamelCase(e):"":Boolean(e)&&"string"===typeof this.ifValue?this.ifValue:Boolean(e)||"string"!==typeof this.elseValue?e||"":this.elseValue}_toPascalCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map((e=>e.charAt(0).toUpperCase()+e.substr(1))).join(""):e}_toCamelCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map(((e,t)=>0===t?e.charAt(0).toLowerCase()+e.substr(1):e.charAt(0).toUpperCase()+e.substr(1))).join(""):e}clone(){return new Qt(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class Zt extends Kt{constructor(e){super(),this.name=e}resolve(e){let t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||"")),void 0!==t&&(this._children=[new Ut(t)],!0)}clone(){const e=new Zt(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map((e=>e.clone())),e}}function Yt(e,t){const i=[...e];for(;i.length>0;){const e=i.shift();if(!t(e))break;i.unshift(...e.children)}}class Jt extends zt{get placeholderInfo(){if(!this._placeholders){const e=[];let t;this.walk((function(i){return i instanceof jt&&(e.push(i),t=!t||t.index<i.index?i:t),!0})),this._placeholders={all:e,last:t}}return this._placeholders}get placeholders(){const{all:e}=this.placeholderInfo;return e}offset(e){let t=0,i=!1;return this.walk((o=>o===e?(i=!0,!1):(t+=o.len(),!0))),i?t:-1}fullLen(e){let t=0;return Yt([e],(e=>(t+=e.len(),!0))),t}enclosingPlaceholders(e){const t=[];let{parent:i}=e;for(;i;)i instanceof jt&&t.push(i),i=i.parent;return t}resolveVariables(e){return this.walk((t=>(t instanceof Zt&&t.resolve(e)&&(this._placeholders=void 0),!0))),this}appendChild(e){return this._placeholders=void 0,super.appendChild(e)}replace(e,t){return this._placeholders=void 0,super.replace(e,t)}clone(){const e=new Jt;return this._children=this.children.map((e=>e.clone())),e}walk(e){Yt(this.children,e)}}class $t{constructor(){this._scanner=new Bt,this._token={type:14,pos:0,len:0}}static escape(e){return e.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(e){return/\${?CLIPBOARD/.test(e)}parse(e,t,i){const o=new Jt;return this.parseFragment(e,o),this.ensureFinalTabstop(o,null!==i&&void 0!==i&&i,null!==t&&void 0!==t&&t),o}parseFragment(e,t){const i=t.children.length;for(this._scanner.text(e),this._token=this._scanner.next();this._parse(t););const o=new Map,n=[];t.walk((e=>(e instanceof jt&&(e.isFinalTabstop?o.set(0,void 0):!o.has(e.index)&&e.children.length>0?o.set(e.index,e.children):n.push(e)),!0)));const s=(e,i)=>{const n=o.get(e.index);if(!n)return;const r=new jt(e.index);r.transform=e.transform;for(const t of n){const e=t.clone();r.appendChild(e),e instanceof jt&&o.has(e.index)&&!i.has(e.index)&&(i.add(e.index),s(e,i),i.delete(e.index))}t.replace(e,[r])},r=new Set;for(const a of n)s(a,r);return t.children.slice(i)}ensureFinalTabstop(e,t,i){if(t||i&&e.placeholders.length>0){e.placeholders.find((e=>0===e.index))||e.appendChild(new jt(0))}}_accept(e,t){if(void 0===e||this._token.type===e){const e=!t||this._scanner.tokenText(this._token);return this._token=this._scanner.next(),e}return!1}_backTo(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}_until(e){const t=this._token;for(;this._token.type!==e;){if(14===this._token.type)return!1;if(5===this._token.type){const e=this._scanner.next();if(0!==e.type&&4!==e.type&&5!==e.type)return!1}this._token=this._scanner.next()}const i=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),i}_parse(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}_parseEscaped(e){let t;return!!(t=this._accept(5,!0))&&(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new Ut(t)),!0)}_parseTabstopOrVariableName(e){let t;const i=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\d+$/.test(t)?new jt(Number(t)):new Zt(t)),!0):this._backTo(i)}_parseComplexPlaceholder(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(i);const o=new jt(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(o),!0;if(!this._parse(o))return e.appendChild(new Ut("${"+t+":")),o.children.forEach(e.appendChild,e),!0}else{if(!(o.index>0&&this._accept(7)))return this._accept(6)?this._parseTransform(o)?(e.appendChild(o),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(o),!0):this._backTo(i);{const t=new qt;for(;;){if(this._parseChoiceElement(t)){if(this._accept(2))continue;if(this._accept(7)&&(o.appendChild(t),this._accept(4)))return e.appendChild(o),!0}return this._backTo(i),!1}}}}_parseChoiceElement(e){const t=this._token,i=[];for(;2!==this._token.type&&7!==this._token.type;){let e;if(e=(e=this._accept(5,!0))?this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||e:this._accept(void 0,!0),!e)return this._backTo(t),!1;i.push(e)}return 0===i.length?(this._backTo(t),!1):(e.appendChild(new Ut(i.join(""))),!0)}_parseComplexVariable(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(i);const o=new Zt(t);if(!this._accept(1))return this._accept(6)?this._parseTransform(o)?(e.appendChild(o),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(o),!0):this._backTo(i);for(;;){if(this._accept(4))return e.appendChild(o),!0;if(!this._parse(o))return e.appendChild(new Ut("${"+t+":")),o.children.forEach(e.appendChild,e),!0}}_parseTransform(e){const t=new Gt;let i="",o="";for(;!this._accept(6);){let e;if(e=this._accept(5,!0))e=this._accept(6,!0)||e,i+=e;else{if(14===this._token.type)return!1;i+=this._accept(void 0,!0)}}for(;!this._accept(6);){let e;if(e=this._accept(5,!0))e=this._accept(5,!0)||this._accept(6,!0)||e,t.appendChild(new Ut(e));else if(!this._parseFormatString(t)&&!this._parseAnything(t))return!1}for(;!this._accept(4);){if(14===this._token.type)return!1;o+=this._accept(void 0,!0)}try{t.regexp=new RegExp(i,o)}catch(n){return!1}return e.transform=t,!0}_parseFormatString(e){const t=this._token;if(!this._accept(0))return!1;let i=!1;this._accept(3)&&(i=!0);const o=this._accept(8,!0);if(!o)return this._backTo(t),!1;if(!i)return e.appendChild(new Qt(Number(o))),!0;if(this._accept(4))return e.appendChild(new Qt(Number(o))),!0;if(!this._accept(1))return this._backTo(t),!1;if(this._accept(6)){const i=this._accept(9,!0);return i&&this._accept(4)?(e.appendChild(new Qt(Number(o),i)),!0):(this._backTo(t),!1)}if(this._accept(11)){const t=this._until(4);if(t)return e.appendChild(new Qt(Number(o),void 0,t,void 0)),!0}else if(this._accept(12)){const t=this._until(4);if(t)return e.appendChild(new Qt(Number(o),void 0,void 0,t)),!0}else if(this._accept(13)){const t=this._until(1);if(t){const i=this._until(4);if(i)return e.appendChild(new Qt(Number(o),void 0,t,i)),!0}}else{const t=this._until(4);if(t)return e.appendChild(new Qt(Number(o),void 0,void 0,t)),!0}return this._backTo(t),!1}_parseAnything(e){return 14!==this._token.type&&(e.appendChild(new Ut(this._scanner.tokenText(this._token))),this._accept(void 0),!0)}}function Xt(e,t,i){var o,n,s,r;return("string"===typeof i.insertText?""===i.insertText:""===i.insertText.snippet)?{edits:null!==(n=null===(o=i.additionalEdit)||void 0===o?void 0:o.edits)&&void 0!==n?n:[]}:{edits:[...t.map((t=>new Nt.Gl(e,{range:t,text:"string"===typeof i.insertText?$t.escape(i.insertText)+"$0":i.insertText.snippet,insertAsSnippet:!0}))),...null!==(r=null===(s=i.additionalEdit)||void 0===s?void 0:s.edits)&&void 0!==r?r:[]]}}function ei(e){var t;function i(e,t){return"mimeType"in e?e.mimeType===t.handledMimeType:!!t.kind&&e.kind.contains(t.kind)}const o=new Map;for(const r of e)for(const n of null!==(t=r.yieldTo)&&void 0!==t?t:[])for(const t of e)if(t!==r&&i(n,t)){let e=o.get(r);e||(e=[],o.set(r,e)),e.push(t)}if(!o.size)return Array.from(e);const n=new Set,s=[];return function e(t){if(!t.length)return[];const i=t[0];if(s.includes(i))return console.warn("Yield to cycle detected",i),t;if(n.has(i))return e(t.slice(1));let r=[];const a=o.get(i);return a&&(s.push(i),r=e(a),s.pop()),n.add(i),[...r,i,...e(t.slice(1))]}(Array.from(e))}var ti=i(15176),ii=i(25085),oi=i(62502),ni=i(34304),si=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ri=function(e,t){return function(i,o){t(i,o,e)}};const ai=Be.qx.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:ii.B4,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}});class li extends Fe.JT{constructor(e,t,i,o,n){super(),this.typeId=e,this.editor=t,this.range=i,this.delegate=n,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(o),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(e){this.domNode=X.$(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=e;const t=X.$("span.icon");this.domNode.append(t),t.classList.add(...oi.k.asClassNameArray($.l.loading),"codicon-modifier-spin");const i=()=>{const e=this.editor.getOption(67);this.domNode.style.height="".concat(e,"px"),this.domNode.style.width="".concat(Math.ceil(.8*e),"px")};i(),this._register(this.editor.onDidChangeConfiguration((e=>{(e.hasChanged(52)||e.hasChanged(67))&&i()}))),this._register(X.nm(this.domNode,X.tw.CLICK,(e=>{this.delegate.cancel()})))}getId(){return li.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}}li.baseId="editor.widget.inlineProgressWidget";let di=class extends Fe.JT{constructor(e,t,i){super(),this.id=e,this._editor=t,this._instantiationService=i,this._showDelay=500,this._showPromise=this._register(new Fe.XK),this._currentWidget=new Fe.XK,this._operationIdPool=0,this._currentDecorations=t.createDecorationsCollection()}async showWhile(e,t,i){const o=this._operationIdPool++;this._currentOperation=o,this.clear(),this._showPromise.value=(0,Oe.Vg)((()=>{const o=He.e.fromPositions(e);this._currentDecorations.set([{range:o,options:ai}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(li,this.id,this._editor,o,t,i))}),this._showDelay);try{return await i}finally{this._currentOperation===o&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};di=si([ri(2,ni.TG)],di);var ci,hi=i(21687),ui=i(24219),gi=i(36281),pi=i(51460),mi=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},_i=function(e,t){return function(i,o){t(i,o,e)}};let fi=ci=class{static get(e){return e.getContribution(ci.ID)}constructor(e,t,i){this._openerService=i,this._messageWidget=new Fe.XK,this._messageListeners=new Fe.SL,this._mouseOverMessage=!1,this._editor=e,this._visible=ci.MESSAGE_VISIBLE.bindTo(t)}dispose(){var e;null===(e=this._message)||void 0===e||e.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(e,t){let i;(0,xe.Z9)((0,Ne.Fr)(e)?e.value:e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=(0,Ne.Fr)(e)?(0,hi.ap)(e,{actionHandler:{callback:t=>{this.closeMessage(),(0,gi.N)(this._openerService,t,(0,Ne.Fr)(e)?e.isTrusted:void 0)},disposables:this._messageListeners}}):void 0,this._messageWidget.value=new bi(this._editor,t,"string"===typeof e?e:this._message.element),this._messageListeners.add(ui.ju.debounce(this._editor.onDidBlurEditorText,((e,t)=>t),0)((()=>{this._mouseOverMessage||this._messageWidget.value&&X.jg(X.vY(),this._messageWidget.value.getDomNode())||this.closeMessage()}))),this._messageListeners.add(this._editor.onDidChangeCursorPosition((()=>this.closeMessage()))),this._messageListeners.add(this._editor.onDidDispose((()=>this.closeMessage()))),this._messageListeners.add(this._editor.onDidChangeModel((()=>this.closeMessage()))),this._messageListeners.add(X.nm(this._messageWidget.value.getDomNode(),X.tw.MOUSE_ENTER,(()=>this._mouseOverMessage=!0),!0)),this._messageListeners.add(X.nm(this._messageWidget.value.getDomNode(),X.tw.MOUSE_LEAVE,(()=>this._mouseOverMessage=!1),!0)),this._messageListeners.add(this._editor.onMouseMove((e=>{e.target.position&&(i?i.containsPosition(e.target.position)||this.closeMessage():i=new He.e(t.lineNumber-3,1,e.target.position.lineNumber+3,1))})))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(bi.fadeOut(this._messageWidget.value))}};fi.ID="editor.contrib.messageController",fi.MESSAGE_VISIBLE=new ae.uy("messageVisible",!1,ne.NC("messageVisible","Whether the editor is currently showing an inline message")),fi=ci=mi([_i(1,ae.i6),_i(2,pi.v)],fi);const vi=ee._l.bindToContribution(fi.get);(0,ee.fK)(new vi({id:"leaveEditorMessage",precondition:fi.MESSAGE_VISIBLE,handler:e=>e.closeMessage(),kbOpts:{weight:130,primary:9}}));class bi{static fadeOut(e){const t=()=>{e.dispose(),clearTimeout(i),e.getDomNode().removeEventListener("animationend",t)},i=setTimeout(t,110);return e.getDomNode().addEventListener("animationend",t),e.getDomNode().classList.add("fadeOut"),{dispose:t}}constructor(e,t,i){let{lineNumber:o,column:n}=t;this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(o,o,0),this._position={lineNumber:o,column:n},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const s=document.createElement("div");s.classList.add("anchor","top"),this._domNode.appendChild(s);const r=document.createElement("div");"string"===typeof i?(r.classList.add("message"),r.textContent=i):(i.classList.add("message"),r.appendChild(i)),this._domNode.appendChild(r);const a=document.createElement("div");a.classList.add("anchor","below"),this._domNode.appendChild(a),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(e){this._domNode.classList.toggle("below",2===e)}}(0,ee._K)(fi.ID,fi,4);var Ci,Si=i(85729),yi=i(39040),wi=i(35786),xi=i(56925),Ni=i(22337),Li=i(58868),ki=i(46765),Di=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ii=function(e,t){return function(i,o){t(i,o,e)}};let Ri=Ci=class extends Fe.JT{constructor(e,t,i,o,n,s,r,a,l,d){super(),this.typeId=e,this.editor=t,this.showCommand=o,this.range=n,this.edits=s,this.onSelectNewEdit=r,this._contextMenuService=a,this._keybindingService=d,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=i.bindTo(l),this.visibleContext.set(!0),this._register((0,Fe.OF)((()=>this.visibleContext.reset()))),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register((0,Fe.OF)((()=>this.editor.removeContentWidget(this)))),this._register(this.editor.onDidChangeCursorPosition((e=>{n.containsPosition(e.position)||this.dispose()}))),this._register(ui.ju.runAndSubscribe(d.onDidUpdateKeybindings,(()=>{this._updateButtonTitle()})))}_updateButtonTitle(){var e;const t=null===(e=this._keybindingService.lookupKeybinding(this.showCommand.id))||void 0===e?void 0:e.getLabel();this.button.element.title=this.showCommand.label+(t?" (".concat(t,")"):"")}create(){this.domNode=X.$(".post-edit-widget"),this.button=this._register(new xi.z(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(X.nm(this.domNode,X.tw.CLICK,(()=>this.showSelector())))}getId(){return Ci.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{const e=X.i(this.button.element);return{x:e.left+e.width,y:e.top+e.height}},getActions:()=>this.edits.allEdits.map(((e,t)=>(0,Ni.xw)({id:"",label:e.title,checked:t===this.edits.activeEditIndex,run:()=>{if(t!==this.edits.activeEditIndex)return this.onSelectNewEdit(t)}})))})}};Ri.baseId="editor.widget.postEditWidget",Ri=Ci=Di([Ii(7,Li.i),Ii(8,ae.i6),Ii(9,ki.d)],Ri);let Pi=class extends Fe.JT{constructor(e,t,i,o,n,s){super(),this._id=e,this._editor=t,this._visibleContext=i,this._showCommand=o,this._instantiationService=n,this._bulkEditService=s,this._currentWidget=this._register(new Fe.XK),this._register(ui.ju.any(t.onDidChangeModel,t.onDidChangeModelContent)((()=>this.clear())))}async applyEditAndShowIfNeeded(e,t,i,o,n){const s=this._editor.getModel();if(!s||!e.length)return;const r=t.allEdits.at(t.activeEditIndex);if(!r)return;const a=await o(r,n),l=Xt(s.uri,e,a),d=e[0],c=s.deltaDecorations([],[{range:d,options:{description:"paste-line-suffix",stickiness:0}}]);let h,u;try{h=await this._bulkEditService.apply(l,{editor:this._editor,token:n}),u=s.getDecorationRange(c[0])}finally{s.deltaDecorations(c,[])}i&&h.isApplied&&t.allEdits.length>1&&this.show(null!==u&&void 0!==u?u:d,t,(async s=>{const r=this._editor.getModel();r&&(await r.undo(),this.applyEditAndShowIfNeeded(e,{activeEditIndex:s,allEdits:t.allEdits},i,o,n))}))}show(e,t,i){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(Ri,this._id,this._editor,this._visibleContext,this._showCommand,e,t,i))}clear(){this._currentWidget.clear()}tryShowSelector(){var e;null===(e=this._currentWidget.value)||void 0===e||e.showSelector()}};Pi=Di([Ii(4,ni.TG),Ii(5,Nt.vu)],Pi);var Mi,Ti=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ei=function(e,t){return function(i,o){t(i,o,e)}};const Ai="editor.changePasteType",Oi=new ae.uy("pasteWidgetVisible",!1,(0,ne.NC)("pasteWidgetVisible","Whether the paste widget is showing")),Fi="application/vnd.code.copyMetadata";let Wi=Mi=class extends Fe.JT{static get(e){return e.getContribution(Mi.ID)}constructor(e,t,i,o,n,s,r){super(),this._bulkEditService=i,this._clipboardService=o,this._languageFeaturesService=n,this._quickInputService=s,this._progressService=r,this._editor=e;const a=e.getContainerDomNode();this._register((0,X.nm)(a,"copy",(e=>this.handleCopy(e)))),this._register((0,X.nm)(a,"cut",(e=>this.handleCopy(e)))),this._register((0,X.nm)(a,"paste",(e=>this.handlePaste(e)),!0)),this._pasteProgressManager=this._register(new di("pasteIntoEditor",e,t)),this._postPasteWidgetManager=this._register(t.createInstance(Pi,"pasteIntoEditor",e,Oi,{id:Ai,label:(0,ne.NC)("postPasteWidgetTitle","Show paste options...")}))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}pasteAs(e){this._editor.focus();try{this._pasteAsActionContext={preferred:e},(0,X.uP)().execCommand("paste")}finally{this._pasteAsActionContext=void 0}}clearWidgets(){this._postPasteWidgetManager.clear()}isPasteAsEnabled(){return this._editor.getOption(85).enabled&&!this._editor.getOption(91)}async finishedPaste(){await this._currentPasteOperation}handleCopy(e){var t,i;if(!this._editor.hasTextFocus())return;if(it.$L&&this._clipboardService.writeResources([]),!e.clipboardData||!this.isPasteAsEnabled())return;const o=this._editor.getModel(),n=this._editor.getSelections();if(!o||!(null===n||void 0===n?void 0:n.length))return;const s=this._editor.getOption(37);let r=n;const a=1===n.length&&n[0].isEmpty();if(a){if(!s)return;r=[new He.e(r[0].startLineNumber,1,r[0].startLineNumber,1+o.getLineLength(r[0].startLineNumber))]}const l=null===(t=this._editor._getViewModel())||void 0===t?void 0:t.getPlainTextToCopy(n,s,it.ED),d={multicursorText:Array.isArray(l)?l:null,pasteOnNewLine:a,mode:null},c=this._languageFeaturesService.documentPasteEditProvider.ordered(o).filter((e=>!!e.prepareDocumentPaste));if(!c.length)return void this.setCopyMetadata(e.clipboardData,{defaultPastePayload:d});const h=St(e.clipboardData),u=c.flatMap((e=>{var t;return null!==(t=e.copyMimeTypes)&&void 0!==t?t:[]})),g=rt();this.setCopyMetadata(e.clipboardData,{id:g,providerCopyMimeTypes:u,defaultPastePayload:d});const p=(0,Oe.PG)((async e=>{const t=(0,nt.kX)(await Promise.all(c.map((async t=>{try{return await t.prepareDocumentPaste(o,r,h,e)}catch(i){return void console.error(i)}}))));t.reverse();for(const i of t)for(const[e,t]of i)h.replace(e,t);return h}));null===(i=Mi._currentCopyOperation)||void 0===i||i.dataTransferPromise.cancel(),Mi._currentCopyOperation={handle:g,dataTransferPromise:p}}async handlePaste(e){var t,i,o,n;if(!e.clipboardData||!this._editor.hasTextFocus())return;null===(t=fi.get(this._editor))||void 0===t||t.closeMessage(),null===(i=this._currentPasteOperation)||void 0===i||i.cancel(),this._currentPasteOperation=void 0;const s=this._editor.getModel(),r=this._editor.getSelections();if(!(null===r||void 0===r?void 0:r.length)||!s)return;if(!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;const a=this.fetchCopyMetadata(e),l=xt(e.clipboardData);l.delete(Fi);const d=[...e.clipboardData.types,...null!==(o=null===a||void 0===a?void 0:a.providerCopyMimeTypes)&&void 0!==o?o:[],pt.v.uriList],c=this._languageFeaturesService.documentPasteEditProvider.ordered(s).filter((e=>{var t,i;const o=null===(t=this._pasteAsActionContext)||void 0===t?void 0:t.preferred;return!(o&&e.providedPasteEditKinds&&!this.providerMatchesPreference(e,o))&&(null===(i=e.pasteMimeTypes)||void 0===i?void 0:i.some((e=>ct(e,d))))}));c.length?(e.preventDefault(),e.stopImmediatePropagation(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferred,c,r,l,a):this.doPasteInline(c,r,l,a,e)):(null===(n=this._pasteAsActionContext)||void 0===n?void 0:n.preferred)&&this.showPasteAsNoEditMessage(r,this._pasteAsActionContext.preferred)}showPasteAsNoEditMessage(e,t){var i;null===(i=fi.get(this._editor))||void 0===i||i.showMessage((0,ne.NC)("pasteAsError","No paste edits for '{0}' found",t instanceof gt?t.value:t.providerId),e[0].getStartPosition())}doPasteInline(e,t,i,o,n){const s=(0,Oe.PG)((async r=>{const a=this._editor;if(!a.hasModel())return;const l=a.getModel(),d=new ti.Dl(a,3,void 0,r);try{if(await this.mergeInDataFromCopy(i,o,d.token),d.token.isCancellationRequested)return;const s=e.filter((e=>this.isSupportedPasteProvider(e,i)));if(!s.length||1===s.length&&s[0]instanceof Et)return this.applyDefaultPasteHandler(i,o,d.token,n);const r={triggerKind:Lt.Nq.Automatic},c=await this.getPasteEdits(s,i,l,t,r,d.token);if(d.token.isCancellationRequested)return;if(1===c.length&&c[0].provider instanceof Et)return this.applyDefaultPasteHandler(i,o,d.token,n);if(c.length){const e="afterPaste"===a.getOption(85).showPasteSelector;return this._postPasteWidgetManager.applyEditAndShowIfNeeded(t,{activeEditIndex:0,allEdits:c},e,(async(e,t)=>{var i,o;const n=await(null===(o=(i=e.provider).resolveDocumentPasteEdit)||void 0===o?void 0:o.call(i,e,t));return n&&(e.additionalEdit=n.additionalEdit),e}),d.token)}await this.applyDefaultPasteHandler(i,o,d.token,n)}finally{d.dispose(),this._currentPasteOperation===s&&(this._currentPasteOperation=void 0)}}));this._pasteProgressManager.showWhile(t[0].getEndPosition(),(0,ne.NC)("pasteIntoEditorProgress","Running paste handlers. Click to cancel"),s),this._currentPasteOperation=s}showPasteAsPick(e,t,i,o,n){const s=(0,Oe.PG)((async r=>{const a=this._editor;if(!a.hasModel())return;const l=a.getModel(),d=new ti.Dl(a,3,void 0,r);try{if(await this.mergeInDataFromCopy(o,n,d.token),d.token.isCancellationRequested)return;let s=t.filter((t=>this.isSupportedPasteProvider(t,o,e)));e&&(s=s.filter((t=>this.providerMatchesPreference(t,e))));const r={triggerKind:Lt.Nq.PasteAs,only:e&&e instanceof gt?e:void 0};let a,c=await this.getPasteEdits(s,o,l,i,r,d.token);if(d.token.isCancellationRequested)return;if(e&&(c=c.filter((t=>e instanceof gt?e.contains(t.kind):e.providerId===t.provider.id))),!c.length)return void(r.only&&this.showPasteAsNoEditMessage(i,r.only));if(e)a=c.at(0);else{const e=await this._quickInputService.pick(c.map((e=>{var t;return{label:e.title,description:null===(t=e.kind)||void 0===t?void 0:t.value,edit:e}})),{placeHolder:(0,ne.NC)("pasteAsPickerPlaceholder","Select Paste Action")});a=null===e||void 0===e?void 0:e.edit}if(!a)return;const h=Xt(l.uri,i,a);await this._bulkEditService.apply(h,{editor:this._editor})}finally{d.dispose(),this._currentPasteOperation===s&&(this._currentPasteOperation=void 0)}}));this._progressService.withProgress({location:10,title:(0,ne.NC)("pasteAsProgress","Running paste handlers")},(()=>s))}setCopyMetadata(e,t){e.setData(Fi,JSON.stringify(t))}fetchCopyMetadata(e){var t;if(!e.clipboardData)return;const i=e.clipboardData.getData(Fi);if(i)try{return JSON.parse(i)}catch(xa){return}const[o,n]=ot.b6.getTextData(e.clipboardData);return n?{defaultPastePayload:{mode:n.mode,multicursorText:null!==(t=n.multicursorText)&&void 0!==t?t:null,pasteOnNewLine:!!n.isFromEmptySelection}}:void 0}async mergeInDataFromCopy(e,t,i){var o;if((null===t||void 0===t?void 0:t.id)&&(null===(o=Mi._currentCopyOperation)||void 0===o?void 0:o.handle)===t.id){const t=await Mi._currentCopyOperation.dataTransferPromise;if(i.isCancellationRequested)return;for(const[i,o]of t)e.replace(i,o)}if(!e.has(pt.v.uriList)){const t=await this._clipboardService.readResources();if(i.isCancellationRequested)return;t.length&&e.append(pt.v.uriList,at(ut.create(t)))}}async getPasteEdits(e,t,i,o,n,s){const r=await(0,Oe.eP)(Promise.all(e.map((async e=>{var r,a;try{const l=await(null===(r=e.provideDocumentPasteEdits)||void 0===r?void 0:r.call(e,i,o,t,n,s));return null===(a=null===l||void 0===l?void 0:l.edits)||void 0===a?void 0:a.map((t=>({...t,provider:e})))}catch(l){console.error(l)}}))),s);return ei((0,nt.kX)(null!==r&&void 0!==r?r:[]).flat().filter((e=>!n.only||n.only.contains(e.kind))))}async applyDefaultPasteHandler(e,t,i,o){var n,s,r,a;const l=null!==(n=e.get(pt.v.text))&&void 0!==n?n:e.get("text"),d=null!==(s=await(null===l||void 0===l?void 0:l.asString()))&&void 0!==s?s:"";if(i.isCancellationRequested)return;const c={clipboardEvent:o,text:d,pasteOnNewLine:null!==(r=null===t||void 0===t?void 0:t.defaultPastePayload.pasteOnNewLine)&&void 0!==r&&r,multicursorText:null!==(a=null===t||void 0===t?void 0:t.defaultPastePayload.multicursorText)&&void 0!==a?a:null,mode:null};this._editor.trigger("keyboard","paste",c)}isSupportedPasteProvider(e,t,i){var o;return!!(null===(o=e.pasteMimeTypes)||void 0===o?void 0:o.some((e=>t.matches(e))))&&(!i||this.providerMatchesPreference(e,i))}providerMatchesPreference(e,t){return t instanceof gt?!e.providedPasteEditKinds||e.providedPasteEditKinds.some((e=>t.contains(e))):e.id===t.providerId}};Wi.ID="editor.contrib.copyPasteActionController",Wi=Mi=Ti([Ei(1,ni.TG),Ei(2,Nt.vu),Ei(3,Si.p),Ei(4,kt.p),Ei(5,wi.eJ),Ei(6,yi.R9)],Wi);const Hi="9_cutcopypaste",Vi=it.tY||document.queryCommandSupported("cut"),Bi=it.tY||document.queryCommandSupported("copy"),zi="undefined"!==typeof navigator.clipboard&&!tt.vU||document.queryCommandSupported("paste");function Ui(e){return e.register(),e}const Ki=Vi?Ui(new ee.AJ({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:it.tY?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:se.eH.MenubarEditMenu,group:"2_ccp",title:ne.NC({key:"miCut",comment:["&& denotes a mnemonic"]},"Cu&&t"),order:1},{menuId:se.eH.EditorContext,group:Hi,title:ne.NC("actions.clipboard.cutLabel","Cut"),when:oe.u.writable,order:1},{menuId:se.eH.CommandPalette,group:"",title:ne.NC("actions.clipboard.cutLabel","Cut"),order:1},{menuId:se.eH.SimpleEditorContext,group:Hi,title:ne.NC("actions.clipboard.cutLabel","Cut"),when:oe.u.writable,order:1}]})):void 0,ji=Bi?Ui(new ee.AJ({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:it.tY?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:se.eH.MenubarEditMenu,group:"2_ccp",title:ne.NC({key:"miCopy",comment:["&& denotes a mnemonic"]},"&&Copy"),order:2},{menuId:se.eH.EditorContext,group:Hi,title:ne.NC("actions.clipboard.copyLabel","Copy"),order:2},{menuId:se.eH.CommandPalette,group:"",title:ne.NC("actions.clipboard.copyLabel","Copy"),order:1},{menuId:se.eH.SimpleEditorContext,group:Hi,title:ne.NC("actions.clipboard.copyLabel","Copy"),order:2}]})):void 0;se.BH.appendMenuItem(se.eH.MenubarEditMenu,{submenu:se.eH.MenubarCopy,title:ne.vv("copy as","Copy As"),group:"2_ccp",order:3}),se.BH.appendMenuItem(se.eH.EditorContext,{submenu:se.eH.EditorContextCopy,title:ne.vv("copy as","Copy As"),group:Hi,order:3}),se.BH.appendMenuItem(se.eH.EditorContext,{submenu:se.eH.EditorContextShare,title:ne.vv("share","Share"),group:"11_share",order:-1,when:ae.Ao.and(ae.Ao.notEquals("resourceScheme","output"),oe.u.editorTextFocus)}),se.BH.appendMenuItem(se.eH.EditorTitleContext,{submenu:se.eH.EditorTitleContextShare,title:ne.vv("share","Share"),group:"11_share",order:-1}),se.BH.appendMenuItem(se.eH.ExplorerContext,{submenu:se.eH.ExplorerContextShare,title:ne.vv("share","Share"),group:"11_share",order:-1});const qi=zi?Ui(new ee.AJ({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:it.tY?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:se.eH.MenubarEditMenu,group:"2_ccp",title:ne.NC({key:"miPaste",comment:["&& denotes a mnemonic"]},"&&Paste"),order:4},{menuId:se.eH.EditorContext,group:Hi,title:ne.NC("actions.clipboard.pasteLabel","Paste"),when:oe.u.writable,order:4},{menuId:se.eH.CommandPalette,group:"",title:ne.NC("actions.clipboard.pasteLabel","Paste"),order:1},{menuId:se.eH.SimpleEditorContext,group:Hi,title:ne.NC("actions.clipboard.pasteLabel","Paste"),when:oe.u.writable,order:4}]})):void 0;class Gi extends ee.R6{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:ne.NC("actions.clipboard.copyWithSyntaxHighlightingLabel","Copy With Syntax Highlighting"),alias:"Copy With Syntax Highlighting",precondition:void 0,kbOpts:{kbExpr:oe.u.textInputFocus,primary:0,weight:100}})}run(e,t){if(!t.hasModel())return;!t.getOption(37)&&t.getSelection().isEmpty()||(ot.RA.forceCopyWithSyntaxHighlighting=!0,t.focus(),t.getContainerDomNode().ownerDocument.execCommand("copy"),ot.RA.forceCopyWithSyntaxHighlighting=!1)}}function Qi(e,t){e&&(e.addImplementation(1e4,"code-editor",((e,i)=>{const o=e.get(te.$).getFocusedCodeEditor();if(o&&o.hasTextFocus()){const e=o.getOption(37),i=o.getSelection();return i&&i.isEmpty()&&!e||o.getContainerDomNode().ownerDocument.execCommand(t),!0}return!1})),e.addImplementation(0,"generic-dom",((e,i)=>((0,X.uP)().execCommand(t),!0))))}Qi(Ki,"cut"),Qi(ji,"copy"),qi&&(qi.addImplementation(1e4,"code-editor",((e,t)=>{var i,o;const n=e.get(te.$),s=e.get(Si.p),r=n.getFocusedCodeEditor();if(r&&r.hasTextFocus()){return r.getContainerDomNode().ownerDocument.execCommand("paste")?null!==(o=null===(i=Wi.get(r))||void 0===i?void 0:i.finishedPaste())&&void 0!==o?o:Promise.resolve():!it.$L||(async()=>{const e=await s.readText();if(""!==e){const t=ot.Nl.INSTANCE.get(e);let i=!1,o=null,n=null;t&&(i=r.getOption(37)&&!!t.isFromEmptySelection,o="undefined"!==typeof t.multicursorText?t.multicursorText:null,n=t.mode),r.trigger("keyboard","paste",{text:e,pasteOnNewLine:i,multicursorText:o,mode:n})}})()}return!1})),qi.addImplementation(0,"generic-dom",((e,t)=>((0,X.uP)().execCommand("paste"),!0)))),Bi&&(0,ee.Qr)(Gi);var Zi=i(65175),Yi=i(16113),Ji=i(85108),$i=i(42175),Xi=i(13200),eo=i(38015);const to=new class{constructor(){this.QuickFix=new gt("quickfix"),this.Refactor=new gt("refactor"),this.RefactorExtract=this.Refactor.append("extract"),this.RefactorInline=this.Refactor.append("inline"),this.RefactorMove=this.Refactor.append("move"),this.RefactorRewrite=this.Refactor.append("rewrite"),this.Notebook=new gt("notebook"),this.Source=new gt("source"),this.SourceOrganizeImports=this.Source.append("organizeImports"),this.SourceFixAll=this.Source.append("fixAll"),this.SurroundWith=this.Refactor.append("surround")}};var io;function oo(e,t,i){return!!t.contains(e)&&(!i||!t.contains(i))}!function(e){e.Refactor="refactor",e.RefactorPreview="refactor preview",e.Lightbulb="lightbulb",e.Default="other (default)",e.SourceAction="source action",e.QuickFix="quick fix action",e.FixAll="fix all",e.OrganizeImports="organize imports",e.AutoFix="auto fix",e.QuickFixHover="quick fix hover window",e.OnSave="save participants",e.ProblemsView="problems view"}(io||(io={}));class no{static fromUser(e,t){return e&&"object"===typeof e?new no(no.getKindFromUser(e,t.kind),no.getApplyFromUser(e,t.apply),no.getPreferredUser(e)):new no(t.kind,t.apply,!1)}static getApplyFromUser(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}}static getKindFromUser(e,t){return"string"===typeof e.kind?new gt(e.kind):t}static getPreferredUser(e){return"boolean"===typeof e.preferred&&e.preferred}constructor(e,t,i){this.kind=e,this.apply=t,this.preferred=i}}class so{constructor(e,t,i){this.action=e,this.provider=t,this.highlightRange=i}async resolve(e){var t;if((null===(t=this.provider)||void 0===t?void 0:t.resolveCodeAction)&&!this.action.edit){let t;try{t=await this.provider.resolveCodeAction(this.action,e)}catch(i){(0,Ji.Cp)(i)}t&&(this.action.edit=t.edit)}return this}}const ro="editor.action.codeAction",ao="editor.action.quickFix",lo="editor.action.autoFix",co="editor.action.refactor",ho="editor.action.sourceAction",uo="editor.action.organizeImports",go="editor.action.fixAll";class po extends Fe.JT{static codeActionsPreferredComparator(e,t){return e.isPreferred&&!t.isPreferred?-1:!e.isPreferred&&t.isPreferred?1:0}static codeActionsComparator(e,t){let{action:i}=e,{action:o}=t;return i.isAI&&!o.isAI?1:!i.isAI&&o.isAI?-1:(0,nt.Of)(i.diagnostics)?(0,nt.Of)(o.diagnostics)?po.codeActionsPreferredComparator(i,o):-1:(0,nt.Of)(o.diagnostics)?1:po.codeActionsPreferredComparator(i,o)}constructor(e,t,i){super(),this.documentation=t,this._register(i),this.allActions=[...e].sort(po.codeActionsComparator),this.validActions=this.allActions.filter((e=>{let{action:t}=e;return!t.disabled}))}get hasAutoFix(){return this.validActions.some((e=>{let{action:t}=e;return!!t.kind&&to.QuickFix.contains(new gt(t.kind))&&!!t.isPreferred}))}get hasAIFix(){return this.validActions.some((e=>{let{action:t}=e;return!!t.isAI}))}get allAIFixes(){return this.validActions.every((e=>{let{action:t}=e;return!!t.isAI}))}}const mo={actions:[],documentation:void 0};async function _o(e,t,i,o,n,s){var r;const a=o.filter||{},l={...a,excludes:[...a.excludes||[],to.Notebook]},d={only:null===(r=a.include)||void 0===r?void 0:r.value,trigger:o.type},c=new ti.YQ(t,s),h=2===o.type,u=function(e,t,i){return e.all(t).filter((e=>!e.providedCodeActionKinds||e.providedCodeActionKinds.some((e=>function(e,t){return!(e.include&&!e.include.intersects(t))&&(!e.excludes||!e.excludes.some((i=>oo(t,i,e.include))))&&!(!e.includeSourceActions&&to.Source.contains(t))}(i,new gt(e))))))}(e,t,h?l:a),g=new Fe.SL,p=u.map((async e=>{try{n.report(e);const o=await e.provideCodeActions(t,i,d,c.token);if(o&&g.add(o),c.token.isCancellationRequested)return mo;const s=((null===o||void 0===o?void 0:o.actions)||[]).filter((e=>e&&function(e,t){const i=t.kind?new gt(t.kind):void 0;return!!(!e.include||i&&e.include.contains(i))&&!(e.excludes&&i&&e.excludes.some((t=>oo(i,t,e.include))))&&!(!e.includeSourceActions&&i&&to.Source.contains(i))&&!(e.onlyIncludePreferredActions&&!t.isPreferred)}(a,e))),r=function(e,t,i){if(!e.documentation)return;const o=e.documentation.map((e=>({kind:new gt(e.kind),command:e.command})));if(i){let e;for(const t of o)t.kind.contains(i)&&(e?e.kind.contains(t.kind)&&(e=t):e=t);if(e)return null===e||void 0===e?void 0:e.command}for(const n of t)if(n.kind)for(const e of o)if(e.kind.contains(new gt(n.kind)))return e.command;return}(e,s,a.include);return{actions:s.map((t=>new so(t,e))),documentation:r}}catch(o){if((0,Ji.n2)(o))throw o;return(0,Ji.Cp)(o),mo}})),m=e.onDidChange((()=>{const i=e.all(t);(0,nt.fS)(i,u)||c.cancel()}));try{const i=await Promise.all(p),n=i.map((e=>e.actions)).flat(),s=[...(0,nt.kX)(i.map((e=>e.documentation))),...fo(e,t,o,n)];return new po(n,s,g)}finally{m.dispose(),c.dispose()}}function*fo(e,t,i,o){var n,s,r;if(t&&o.length)for(const a of e.all(t))a._getAdditionalMenuItems&&(yield*null===(n=a._getAdditionalMenuItems)||void 0===n?void 0:n.call(a,{trigger:i.type,only:null===(r=null===(s=i.filter)||void 0===s?void 0:s.include)||void 0===r?void 0:r.value},o.map((e=>e.action))))}var vo;async function bo(e,t,i,o){let n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Yi.T.None;var s;const r=e.get(Nt.vu),a=e.get(ye.H),l=e.get(eo.b),d=e.get(Xi.lT);if(l.publicLog2("codeAction.applyCodeAction",{codeActionTitle:t.action.title,codeActionKind:t.action.kind,codeActionIsPreferred:!!t.action.isPreferred,reason:i}),await t.resolve(n),!n.isCancellationRequested){if(null===(s=t.action.edit)||void 0===s?void 0:s.edits.length){if(!(await r.apply(t.action.edit,{editor:null===o||void 0===o?void 0:o.editor,label:t.action.title,quotableLabel:t.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:i!==vo.OnSave,showPreview:null===o||void 0===o?void 0:o.preview})).isApplied)return}if(t.action.command)try{await a.executeCommand(t.action.command.id,...t.action.command.arguments||[])}catch(c){const e=function(e){return"string"===typeof e?e:e instanceof Error&&"string"===typeof e.message?e.message:void 0}(c);d.error("string"===typeof e?e:ne.NC("applyCodeActionFailed","An unknown error occurred while applying the code action"))}}}!function(e){e.OnSave="onSave",e.FromProblemsView="fromProblemsView",e.FromCodeActions="fromCodeActions",e.FromAILightbulb="fromAILightbulb"}(vo||(vo={})),ye.P.registerCommand("_executeCodeActionProvider",(async function(e,t,i,o,n){if(!(t instanceof _t.o))throw(0,Ji.b1)();const{codeActionProvider:s}=e.get(kt.p),r=e.get($i.q).getModel(t);if(!r)throw(0,Ji.b1)();const a=ke.Y.isISelection(i)?ke.Y.liftSelection(i):He.e.isIRange(i)?r.validateRange(i):void 0;if(!a)throw(0,Ji.b1)();const l="string"===typeof o?new gt(o):void 0,d=await _o(s,r,a,{type:1,triggerAction:io.Default,filter:{includeSourceActions:!0,include:l}},yi.Ex.None,Yi.T.None),c=[],h=Math.min(d.validActions.length,"number"===typeof n?n:0);for(let u=0;u<h;u++)c.push(d.validActions[u].resolve(Yi.T.None));try{return await Promise.all(c),d.validActions.map((e=>e.action))}finally{setTimeout((()=>d.dispose()),100)}}));var Co,So=i(73187),yo=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},wo=function(e,t){return function(i,o){t(i,o,e)}};let xo=Co=class{constructor(e){this.keybindingService=e}getResolver(){const e=new So.o((()=>this.keybindingService.getKeybindings().filter((e=>Co.codeActionCommands.indexOf(e.command)>=0)).filter((e=>e.resolvedKeybinding)).map((e=>{let t=e.commandArgs;return e.command===uo?t={kind:to.SourceOrganizeImports.value}:e.command===go&&(t={kind:to.SourceFixAll.value}),{resolvedKeybinding:e.resolvedKeybinding,...no.fromUser(t,{kind:gt.None,apply:"never"})}}))));return t=>{if(t.kind){const i=this.bestKeybindingForCodeAction(t,e.value);return null===i||void 0===i?void 0:i.resolvedKeybinding}}}bestKeybindingForCodeAction(e,t){if(!e.kind)return;const i=new gt(e.kind);return t.filter((e=>e.kind.contains(i))).filter((t=>!t.preferred||e.isPreferred)).reduceRight(((e,t)=>e?e.kind.contains(t.kind)?t:e:t),void 0)}};xo.codeActionCommands=[co,ro,ho,uo,go],xo=Co=yo([wo(0,ki.d)],xo);(0,ze.P6G)("symbolIcon.arrayForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.arrayForeground","The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.booleanForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.booleanForeground","The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,ne.NC)("symbolIcon.classForeground","The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.colorForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.colorForeground","The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.constantForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.constantForeground","The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,ne.NC)("symbolIcon.constructorForeground","The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,ne.NC)("symbolIcon.enumeratorForeground","The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,ne.NC)("symbolIcon.enumeratorMemberForeground","The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,ne.NC)("symbolIcon.eventForeground","The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,ne.NC)("symbolIcon.fieldForeground","The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.fileForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.fileForeground","The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.folderForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.folderForeground","The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,ne.NC)("symbolIcon.functionForeground","The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,ne.NC)("symbolIcon.interfaceForeground","The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.keyForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.keyForeground","The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.keywordForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.keywordForeground","The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,ne.NC)("symbolIcon.methodForeground","The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.moduleForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.moduleForeground","The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.namespaceForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.namespaceForeground","The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.nullForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.nullForeground","The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.numberForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.numberForeground","The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.objectForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.objectForeground","The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.operatorForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.operatorForeground","The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.packageForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.packageForeground","The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.propertyForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.propertyForeground","The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.referenceForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.referenceForeground","The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.snippetForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.snippetForeground","The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.stringForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.stringForeground","The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.structForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.structForeground","The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.textForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.textForeground","The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.typeParameterForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.typeParameterForeground","The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.unitForeground",{dark:ze.dRz,light:ze.dRz,hcDark:ze.dRz,hcLight:ze.dRz},(0,ne.NC)("symbolIcon.unitForeground","The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),(0,ze.P6G)("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,ne.NC)("symbolIcon.variableForeground","The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));const No=Object.freeze({kind:gt.Empty,title:(0,ne.NC)("codeAction.widget.id.more","More Actions...")}),Lo=Object.freeze([{kind:to.QuickFix,title:(0,ne.NC)("codeAction.widget.id.quickfix","Quick Fix")},{kind:to.RefactorExtract,title:(0,ne.NC)("codeAction.widget.id.extract","Extract"),icon:$.l.wrench},{kind:to.RefactorInline,title:(0,ne.NC)("codeAction.widget.id.inline","Inline"),icon:$.l.wrench},{kind:to.RefactorRewrite,title:(0,ne.NC)("codeAction.widget.id.convert","Rewrite"),icon:$.l.wrench},{kind:to.RefactorMove,title:(0,ne.NC)("codeAction.widget.id.move","Move"),icon:$.l.wrench},{kind:to.SurroundWith,title:(0,ne.NC)("codeAction.widget.id.surround","Surround With"),icon:$.l.surroundWith},{kind:to.Source,title:(0,ne.NC)("codeAction.widget.id.source","Source Action"),icon:$.l.symbolFile},No]);var ko,Do,Io=i(48688),Ro=i(29430),Po=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Mo=function(e,t){return function(i,o){t(i,o,e)}};!function(e){e.Hidden={type:0};e.Showing=class{constructor(e,t,i,o){this.actions=e,this.trigger=t,this.editorPosition=i,this.widgetPosition=o,this.type=1}}}(Do||(Do={}));let To=ko=class extends Fe.JT{constructor(e,t,i){super(),this._editor=e,this._keybindingService=t,this._onClick=this._register(new ui.Q5),this.onClick=this._onClick.event,this._state=Do.Hidden,this._iconClasses=[],this._domNode=X.$("div.lightBulbWidget"),this._register(Io.o.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent((e=>{const t=this._editor.getModel();(1!==this.state.type||!t||this.state.editorPosition.lineNumber>=t.getLineCount())&&this.hide()}))),this._register(X.GQ(this._domNode,(e=>{if(1!==this.state.type)return;this._editor.focus(),e.preventDefault();const{top:t,height:i}=X.i(this._domNode),o=this._editor.getOption(67);let n=Math.floor(o/3);null!==this.state.widgetPosition.position&&this.state.widgetPosition.position.lineNumber<this.state.editorPosition.lineNumber&&(n+=o),this._onClick.fire({x:e.posx,y:t+i+n,actions:this.state.actions,trigger:this.state.trigger})}))),this._register(X.nm(this._domNode,"mouseenter",(e=>{1===(1&e.buttons)&&this.hide()}))),this._register(ui.ju.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,(()=>{var e,t,i,o;this._preferredKbLabel=null!==(t=null===(e=this._keybindingService.lookupKeybinding(lo))||void 0===e?void 0:e.getLabel())&&void 0!==t?t:void 0,this._quickFixKbLabel=null!==(o=null===(i=this._keybindingService.lookupKeybinding(ao))||void 0===i?void 0:i.getLabel())&&void 0!==o?o:void 0,this._updateLightBulbTitleAndIcon()})))}dispose(){super.dispose(),this._editor.removeContentWidget(this)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){return 1===this._state.type?this._state.widgetPosition:null}update(e,t,i){if(e.validActions.length<=0)return this.hide();if(!this._editor.getOptions().get(65).enabled)return this.hide();const o=this._editor.getModel();if(!o)return this.hide();const{lineNumber:n,column:s}=o.validatePosition(i),r=o.getOptions().tabSize,a=this._editor.getOptions().get(50),l=o.getLineContent(n),d=(0,Ro.q)(l,r),c=e=>e>2&&this._editor.getTopForLineNumber(e)===this._editor.getTopForLineNumber(e-1);let h=n,u=1;if(!(a.spaceWidth*d>22)){if(n>1&&!c(n-1))h-=1;else if(n<o.getLineCount()&&!c(n+1))h+=1;else if(s*a.spaceWidth<22)return this.hide();u=/^\S\s*$/.test(o.getLineContent(h))?2:1}this.state=new Do.Showing(e,t,i,{position:{lineNumber:h,column:u},preference:ko._posPref}),this._editor.layoutContentWidget(this)}hide(){this.state!==Do.Hidden&&(this.state=Do.Hidden,this._editor.layoutContentWidget(this))}get state(){return this._state}set state(e){this._state=e,this._updateLightBulbTitleAndIcon()}_updateLightBulbTitleAndIcon(){if(this._domNode.classList.remove(...this._iconClasses),this._iconClasses=[],1!==this.state.type)return;let e,t=!1;this.state.actions.allAIFixes?(e=$.l.sparkleFilled,1===this.state.actions.validActions.length&&(t=!0)):e=this.state.actions.hasAutoFix?this.state.actions.hasAIFix?$.l.lightbulbSparkleAutofix:$.l.lightbulbAutofix:this.state.actions.hasAIFix?$.l.lightbulbSparkle:$.l.lightBulb,this._updateLightbulbTitle(this.state.actions.hasAutoFix,t),this._iconClasses=oi.k.asClassNameArray(e),this._domNode.classList.add(...this._iconClasses)}_updateLightbulbTitle(e,t){1===this.state.type&&(t?this.title=ne.NC("codeActionAutoRun","Run: {0}",this.state.actions.validActions[0].action.title):e&&this._preferredKbLabel?this.title=ne.NC("preferredcodeActionWithKb","Show Code Actions. Preferred Quick Fix Available ({0})",this._preferredKbLabel):!e&&this._quickFixKbLabel?this.title=ne.NC("codeActionWithKb","Show Code Actions ({0})",this._quickFixKbLabel):e||(this.title=ne.NC("codeAction","Show Code Actions")))}set title(e){this._domNode.title=e}};To.ID="editor.contrib.lightbulbWidget",To._posPref=[0],To=ko=Po([Mo(1,ki.d),Mo(2,ye.H)],To);var Eo=i(65122),Ao=i(75404),Oo=i(53430),Fo=i(29581),Wo=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ho=function(e,t){return function(i,o){t(i,o,e)}};const Vo="acceptSelectedCodeAction",Bo="previewSelectedCodeAction";class zo{get templateId(){return"header"}renderTemplate(e){e.classList.add("group-header");const t=document.createElement("span");return e.append(t),{container:e,text:t}}renderElement(e,t,i){var o,n;i.text.textContent=null!==(n=null===(o=e.group)||void 0===o?void 0:o.title)&&void 0!==n?n:""}disposeTemplate(e){}}let Uo=class{get templateId(){return"action"}constructor(e,t){this._supportsPreview=e,this._keybindingService=t}renderTemplate(e){e.classList.add(this.templateId);const t=document.createElement("div");t.className="icon",e.append(t);const i=document.createElement("span");i.className="title",e.append(i);return{container:e,icon:t,text:i,keybinding:new Ao.e(e,it.OS)}}renderElement(e,t,i){var o,n,s;if((null===(o=e.group)||void 0===o?void 0:o.icon)?(i.icon.className=oi.k.asClassName(e.group.icon),e.group.icon.color&&(i.icon.style.color=(0,ze.n_1)(e.group.icon.color.id))):(i.icon.className=oi.k.asClassName($.l.lightBulb),i.icon.style.color="var(--vscode-editorLightBulb-foreground)"),!e.item||!e.label)return;i.text.textContent=Qo(e.label),i.keybinding.set(e.keybinding),X.iJ(!!e.keybinding,i.keybinding.element);const r=null===(n=this._keybindingService.lookupKeybinding(Vo))||void 0===n?void 0:n.getLabel(),a=null===(s=this._keybindingService.lookupKeybinding(Bo))||void 0===s?void 0:s.getLabel();i.container.classList.toggle("option-disabled",e.disabled),e.disabled?i.container.title=e.label:r&&a?this._supportsPreview&&e.canPreview?i.container.title=(0,ne.NC)({key:"label-preview",comment:['placeholders are keybindings, e.g "F2 to Apply, Shift+F2 to Preview"']},"{0} to Apply, {1} to Preview",r,a):i.container.title=(0,ne.NC)({key:"label",comment:['placeholder is a keybinding, e.g "F2 to Apply"']},"{0} to Apply",r):i.container.title=""}disposeTemplate(e){e.keybinding.dispose()}};Uo=Wo([Ho(1,ki.d)],Uo);class Ko extends UIEvent{constructor(){super("acceptSelectedAction")}}class jo extends UIEvent{constructor(){super("previewSelectedAction")}}function qo(e){if("action"===e.kind)return e.label}let Go=class extends Fe.JT{constructor(e,t,i,o,n,s){super(),this._delegate=o,this._contextViewService=n,this._keybindingService=s,this._actionLineHeight=24,this._headerLineHeight=26,this.cts=this._register(new Yi.A),this.domNode=document.createElement("div"),this.domNode.classList.add("actionList");const r={getHeight:e=>"header"===e.kind?this._headerLineHeight:this._actionLineHeight,getTemplateId:e=>e.kind};this._list=this._register(new Oo.aV(e,this.domNode,r,[new Uo(t,this._keybindingService),new zo],{keyboardSupport:!1,typeNavigationEnabled:!0,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:qo},accessibilityProvider:{getAriaLabel:e=>{if("action"===e.kind){let t=e.label?Qo(null===e||void 0===e?void 0:e.label):"";return e.disabled&&(t=(0,ne.NC)({key:"customQuickFixWidget.labels",comment:["Action widget labels for accessibility."]},"{0}, Disabled Reason: {1}",t,e.disabled)),t}return null},getWidgetAriaLabel:()=>(0,ne.NC)({key:"customQuickFixWidget",comment:["An action widget option"]},"Action Widget"),getRole:e=>"action"===e.kind?"option":"separator",getWidgetRole:()=>"listbox"}})),this._list.style(Fo.O2),this._register(this._list.onMouseClick((e=>this.onListClick(e)))),this._register(this._list.onMouseOver((e=>this.onListHover(e)))),this._register(this._list.onDidChangeFocus((()=>this.onFocus()))),this._register(this._list.onDidChangeSelection((e=>this.onListSelection(e)))),this._allMenuItems=i,this._list.splice(0,this._list.length,this._allMenuItems),this._list.length&&this.focusNext()}focusCondition(e){return!e.disabled&&"action"===e.kind}hide(e){this._delegate.onHide(e),this.cts.cancel(),this._contextViewService.hideContextView()}layout(e){const t=this._allMenuItems.filter((e=>"header"===e.kind)).length,i=this._allMenuItems.length*this._actionLineHeight+t*this._headerLineHeight-t*this._actionLineHeight;this._list.layout(i);let o=e;if(this._allMenuItems.length>=50)o=380;else{const t=this._allMenuItems.map(((e,t)=>{const i=this.domNode.ownerDocument.getElementById(this._list.getElementID(t));if(i){i.style.width="auto";const e=i.getBoundingClientRect().width;return i.style.width="",e}return 0}));o=Math.max(...t,e)}const n=Math.min(i,.7*this.domNode.ownerDocument.body.clientHeight);return this._list.layout(n,o),this.domNode.style.height="".concat(n,"px"),this._list.domFocus(),o}focusPrevious(){this._list.focusPrevious(1,!0,void 0,this.focusCondition)}focusNext(){this._list.focusNext(1,!0,void 0,this.focusCondition)}acceptSelected(e){const t=this._list.getFocus();if(0===t.length)return;const i=t[0],o=this._list.element(i);if(!this.focusCondition(o))return;const n=e?new jo:new Ko;this._list.setSelection([i],n)}onListSelection(e){if(!e.elements.length)return;const t=e.elements[0];t.item&&this.focusCondition(t)?this._delegate.onSelect(t.item,e.browserEvent instanceof jo):this._list.setSelection([])}onFocus(){var e,t;const i=this._list.getFocus();if(0===i.length)return;const o=i[0],n=this._list.element(o);null===(t=(e=this._delegate).onFocus)||void 0===t||t.call(e,n.item)}async onListHover(e){const t=e.element;if(t&&t.item&&this.focusCondition(t)){if(this._delegate.onHover&&!t.disabled&&"action"===t.kind){const e=await this._delegate.onHover(t.item,this.cts.token);t.canPreview=e?e.canPreview:void 0}e.index&&this._list.splice(e.index,1,[t])}this._list.setFocus("number"===typeof e.index?[e.index]:[])}onListClick(e){e.element&&this.focusCondition(e.element)&&this._list.setFocus([])}};function Qo(e){return e.replace(/\r\n|\r|\n/g," ")}Go=Wo([Ho(4,Li.u),Ho(5,ki.d)],Go);var Zo=i(43837),Yo=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Jo=function(e,t){return function(i,o){t(i,o,e)}};(0,ze.P6G)("actionBar.toggledBackground",{dark:ze.XEs,light:ze.XEs,hcDark:ze.XEs,hcLight:ze.XEs},(0,ne.NC)("actionBar.toggledBackground","Background color for toggled action items in action bar."));const $o={Visible:new ae.uy("codeActionMenuVisible",!1,(0,ne.NC)("codeActionMenuVisible","Whether the action widget list is visible"))},Xo=(0,ni.yh)("actionWidgetService");let en=class extends Fe.JT{get isVisible(){return $o.Visible.getValue(this._contextKeyService)||!1}constructor(e,t,i){super(),this._contextViewService=e,this._contextKeyService=t,this._instantiationService=i,this._list=this._register(new Fe.XK)}show(e,t,i,o,n,s,r){const a=$o.Visible.bindTo(this._contextKeyService),l=this._instantiationService.createInstance(Go,e,t,i,o);this._contextViewService.showContextView({getAnchor:()=>n,render:e=>(a.set(!0),this._renderWidget(e,l,null!==r&&void 0!==r?r:[])),onHide:e=>{a.reset(),this._onWidgetClosed(e)}},s,!1)}acceptSelected(e){var t;null===(t=this._list.value)||void 0===t||t.acceptSelected(e)}focusPrevious(){var e,t;null===(t=null===(e=this._list)||void 0===e?void 0:e.value)||void 0===t||t.focusPrevious()}focusNext(){var e,t;null===(t=null===(e=this._list)||void 0===e?void 0:e.value)||void 0===t||t.focusNext()}hide(){var e;null===(e=this._list.value)||void 0===e||e.hide(),this._list.clear()}_renderWidget(e,t,i){var o;const n=document.createElement("div");if(n.classList.add("action-widget"),e.appendChild(n),this._list.value=t,!this._list.value)throw new Error("List has no value");n.appendChild(this._list.value.domNode);const s=new Fe.SL,r=document.createElement("div"),a=e.appendChild(r);a.classList.add("context-view-block"),s.add(X.nm(a,X.tw.MOUSE_DOWN,(e=>e.stopPropagation())));const l=document.createElement("div"),d=e.appendChild(l);d.classList.add("context-view-pointerBlock"),s.add(X.nm(d,X.tw.POINTER_MOVE,(()=>d.remove()))),s.add(X.nm(d,X.tw.MOUSE_DOWN,(()=>d.remove())));let c=0;if(i.length){const e=this._createActionBar(".action-widget-action-bar",i);e&&(n.appendChild(e.getContainer().parentElement),s.add(e),c=e.getContainer().offsetWidth)}const h=null===(o=this._list.value)||void 0===o?void 0:o.layout(c);n.style.width="".concat(h,"px");const u=s.add(X.go(e));return s.add(u.onDidBlur((()=>this.hide()))),s}_createActionBar(e,t){if(!t.length)return;const i=X.$(e),o=new Eo.o(i);return o.push(t,{icon:!1,label:!0}),o}_onWidgetClosed(e){var t;null===(t=this._list.value)||void 0===t||t.hide(e)}};en=Yo([Jo(0,Li.u),Jo(1,ae.i6),Jo(2,ni.TG)],en),(0,Zo.z)(Xo,en,1);const tn=1100;(0,se.r1)(class extends se.Ke{constructor(){super({id:"hideCodeActionWidget",title:(0,ne.vv)("hideCodeActionWidget.title","Hide action widget"),precondition:$o.Visible,keybinding:{weight:tn,primary:9,secondary:[1033]}})}run(e){e.get(Xo).hide()}}),(0,se.r1)(class extends se.Ke{constructor(){super({id:"selectPrevCodeAction",title:(0,ne.vv)("selectPrevCodeAction.title","Select previous action"),precondition:$o.Visible,keybinding:{weight:tn,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(e){const t=e.get(Xo);t instanceof en&&t.focusPrevious()}}),(0,se.r1)(class extends se.Ke{constructor(){super({id:"selectNextCodeAction",title:(0,ne.vv)("selectNextCodeAction.title","Select next action"),precondition:$o.Visible,keybinding:{weight:tn,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(e){const t=e.get(Xo);t instanceof en&&t.focusNext()}}),(0,se.r1)(class extends se.Ke{constructor(){super({id:Vo,title:(0,ne.vv)("acceptSelected.title","Accept selected action"),precondition:$o.Visible,keybinding:{weight:tn,primary:3,secondary:[2137]}})}run(e){const t=e.get(Xo);t instanceof en&&t.acceptSelected()}}),(0,se.r1)(class extends se.Ke{constructor(){super({id:Bo,title:(0,ne.vv)("previewSelected.title","Preview selected action"),precondition:$o.Visible,keybinding:{weight:tn,primary:2051}})}run(e){const t=e.get(Xo);t instanceof en&&t.acceptSelected(!0)}});var on=i(41911),nn=i(75826),sn=i(38092);const rn=new ae.uy("supportedCodeAction",""),an="_typescript.applyFixAllCodeAction";class ln extends Fe.JT{constructor(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:250;super(),this._editor=e,this._markerService=t,this._signalChange=i,this._delay=o,this._autoTriggerTimer=this._register(new Oe._F),this._register(this._markerService.onMarkerChanged((e=>this._onMarkerChanges(e)))),this._register(this._editor.onDidChangeCursorPosition((()=>this._tryAutoTrigger())))}trigger(e){const t=this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);this._signalChange(t?{trigger:e,selection:t}:void 0)}_onMarkerChanges(e){const t=this._editor.getModel();t&&e.some((e=>(0,It.Xy)(e,t.uri)))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet((()=>{this.trigger({type:2,triggerAction:io.Default})}),this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(e){if(!this._editor.hasModel())return;const t=this._editor.getSelection();if(1===e.type)return t;const i=this._editor.getOption(65).enabled;if(i!==sn.$r.Off){if(i===sn.$r.On)return t;if(i===sn.$r.OnCode){if(!t.isEmpty())return t;const e=this._editor.getModel(),{lineNumber:i,column:o}=t.getPosition(),n=e.getLineContent(i);if(0===n.length)return;if(1===o){if(/\s/.test(n[0]))return}else if(o===e.getLineMaxColumn(i)){if(/\s/.test(n[n.length-1]))return}else if(/\s/.test(n[o-2])&&/\s/.test(n[o-1]))return}return t}}}var dn;!function(e){e.Empty={type:0};e.Triggered=class{constructor(e,t,i){this.trigger=e,this.position=t,this._cancellablePromise=i,this.type=1,this.actions=i.catch((e=>{if((0,Ji.n2)(e))return cn;throw e}))}cancel(){this._cancellablePromise.cancel()}}}(dn||(dn={}));const cn=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class hn extends Fe.JT{constructor(e,t,i,o,n,s){super(),this._editor=e,this._registry=t,this._markerService=i,this._progressService=n,this._configurationService=s,this._codeActionOracle=this._register(new Fe.XK),this._state=dn.Empty,this._onDidChangeState=this._register(new ui.Q5),this.onDidChangeState=this._onDidChangeState.event,this._disposed=!1,this._supportedCodeActions=rn.bindTo(o),this._register(this._editor.onDidChangeModel((()=>this._update()))),this._register(this._editor.onDidChangeModelLanguage((()=>this._update()))),this._register(this._registry.onDidChange((()=>this._update()))),this._register(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(65)&&this._update()}))),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(dn.Empty,!0))}_settingEnabledNearbyQuickfixes(){var e;const t=null===(e=this._editor)||void 0===e?void 0:e.getModel();return!!this._configurationService&&this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:null===t||void 0===t?void 0:t.uri})}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(dn.Empty);const e=this._editor.getModel();if(e&&this._registry.has(e)&&!this._editor.getOption(91)){const t=this._registry.all(e).flatMap((e=>{var t;return null!==(t=e.providedCodeActionKinds)&&void 0!==t?t:[]}));this._supportedCodeActions.set(t.join(" ")),this._codeActionOracle.value=new ln(this._editor,this._markerService,(t=>{var i;if(!t)return void this.setState(dn.Empty);const o=t.selection.getStartPosition(),n=(0,Oe.PG)((async i=>{var o,n,s,r,a,l,d,c,h,u;if(this._settingEnabledNearbyQuickfixes()&&1===t.trigger.type&&(t.trigger.triggerAction===io.QuickFix||(null===(n=null===(o=t.trigger.filter)||void 0===o?void 0:o.include)||void 0===n?void 0:n.contains(to.QuickFix)))){const o=await _o(this._registry,e,t.selection,t.trigger,yi.Ex.None,i),n=[...o.allActions];if(i.isCancellationRequested)return cn;const g=null===(s=o.validActions)||void 0===s?void 0:s.some((e=>!!e.action.kind&&to.QuickFix.contains(new gt(e.action.kind)))),p=this._markerService.read({resource:e.uri});if(g){for(const e of o.validActions)(null===(a=null===(r=e.action.command)||void 0===r?void 0:r.arguments)||void 0===a?void 0:a.some((e=>"string"===typeof e&&e.includes(an))))&&(e.action.diagnostics=[...p.filter((e=>e.relatedInformation))]);return{validActions:o.validActions,allActions:n,documentation:o.documentation,hasAutoFix:o.hasAutoFix,hasAIFix:o.hasAIFix,allAIFixes:o.allAIFixes,dispose:()=>{o.dispose()}}}if(!g&&p.length>0){const s=t.selection.getPosition();let r=s,a=Number.MAX_VALUE;const g=[...o.validActions];for(const _ of p){const m=_.endColumn,f=_.endLineNumber,v=_.startLineNumber;if(f===s.lineNumber||v===s.lineNumber){r=new We.L(f,m);const _={type:t.trigger.type,triggerAction:t.trigger.triggerAction,filter:{include:(null===(l=t.trigger.filter)||void 0===l?void 0:l.include)?null===(d=t.trigger.filter)||void 0===d?void 0:d.include:to.QuickFix},autoApply:t.trigger.autoApply,context:{notAvailableMessage:(null===(c=t.trigger.context)||void 0===c?void 0:c.notAvailableMessage)||"",position:r}},v=new ke.Y(r.lineNumber,r.column,r.lineNumber,r.column),b=await _o(this._registry,e,v,_,yi.Ex.None,i);if(0!==b.validActions.length){for(const e of b.validActions)(null===(u=null===(h=e.action.command)||void 0===h?void 0:h.arguments)||void 0===u?void 0:u.some((e=>"string"===typeof e&&e.includes(an))))&&(e.action.diagnostics=[...p.filter((e=>e.relatedInformation))]);0===o.allActions.length&&n.push(...b.allActions),Math.abs(s.column-m)<a?g.unshift(...b.validActions):g.push(...b.validActions)}a=Math.abs(s.column-m)}}const m=g.filter(((e,t,i)=>i.findIndex((t=>t.action.title===e.action.title))===t));return m.sort(((e,t)=>e.action.isPreferred&&!t.action.isPreferred?-1:!e.action.isPreferred&&t.action.isPreferred||e.action.isAI&&!t.action.isAI?1:!e.action.isAI&&t.action.isAI?-1:0)),{validActions:m,allActions:n,documentation:o.documentation,hasAutoFix:o.hasAutoFix,hasAIFix:o.hasAIFix,allAIFixes:o.allAIFixes,dispose:()=>{o.dispose()}}}}return _o(this._registry,e,t.selection,t.trigger,yi.Ex.None,i)}));1===t.trigger.type&&(null===(i=this._progressService)||void 0===i||i.showWhile(n,250));const s=new dn.Triggered(t.trigger,o,n);let r=!1;1===this._state.type&&(r=1===this._state.trigger.type&&1===s.type&&2===s.trigger.type&&this._state.position!==s.position),r||this.setState(s)}),void 0),this._codeActionOracle.value.trigger({type:2,triggerAction:io.Default})}else this._supportedCodeActions.reset()}trigger(e){var t;null===(t=this._codeActionOracle.value)||void 0===t||t.trigger(e)}setState(e,t){e!==this._state&&(1===this._state.type&&this._state.cancel(),this._state=e,t||this._disposed||this._onDidChangeState.fire(e))}}var un,gn=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},pn=function(e,t){return function(i,o){t(i,o,e)}};let mn=un=class extends Fe.JT{static get(e){return e.getContribution(un.ID)}constructor(e,t,i,o,n,s,r,a,l,d){super(),this._commandService=r,this._configurationService=a,this._actionWidgetService=l,this._instantiationService=d,this._activeCodeActions=this._register(new Fe.XK),this._showDisabled=!1,this._disposed=!1,this._editor=e,this._model=this._register(new hn(this._editor,n.codeActionProvider,t,i,s,a)),this._register(this._model.onDidChangeState((e=>this.update(e)))),this._lightBulbWidget=new So.o((()=>{const e=this._editor.getContribution(To.ID);return e&&this._register(e.onClick((e=>this.showCodeActionsFromLightbulb(e.actions,e)))),e})),this._resolver=o.createInstance(xo),this._register(this._editor.onDidLayoutChange((()=>this._actionWidgetService.hide())))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(e,t){if(e.allAIFixes&&1===e.validActions.length){const t=e.validActions[0],i=t.action.command;return i&&"inlineChat.start"===i.id&&i.arguments&&i.arguments.length>=1&&(i.arguments[0]={...i.arguments[0],autoSend:!1}),void await this._applyCodeAction(t,!1,!1,vo.FromAILightbulb)}await this.showCodeActionList(e,t,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(e,t,i){return this.showCodeActionList(t,i,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(e,t,i,o){var n;if(!this._editor.hasModel())return;null===(n=fi.get(this._editor))||void 0===n||n.closeMessage();const s=this._editor.getPosition();this._trigger({type:1,triggerAction:t,filter:i,autoApply:o,context:{notAvailableMessage:e,position:s}})}_trigger(e){return this._model.trigger(e)}async _applyCodeAction(e,t,i,o){try{await this._instantiationService.invokeFunction(bo,e,o,{preview:i,editor:this._editor})}finally{t&&this._trigger({type:2,triggerAction:io.QuickFix,filter:{}})}}async update(e){var t,i,o,n,s,r,a;if(1!==e.type)return void(null===(t=this._lightBulbWidget.rawValue)||void 0===t||t.hide());let l;try{l=await e.actions}catch(d){return void(0,Ji.dL)(d)}if(!this._disposed)if(null===(i=this._lightBulbWidget.value)||void 0===i||i.update(l,e.trigger,e.position),1===e.trigger.type){if(null===(o=e.trigger.filter)||void 0===o?void 0:o.include){const t=this.tryGetValidActionToApply(e.trigger,l);if(t){try{null===(n=this._lightBulbWidget.value)||void 0===n||n.hide(),await this._applyCodeAction(t,!1,!1,vo.FromCodeActions)}finally{l.dispose()}return}if(e.trigger.context){const t=this.getInvalidActionThatWouldHaveBeenApplied(e.trigger,l);if(t&&t.action.disabled)return null===(s=fi.get(this._editor))||void 0===s||s.showMessage(t.action.disabled,e.trigger.context.position),void l.dispose()}}const t=!!(null===(r=e.trigger.filter)||void 0===r?void 0:r.include);if(e.trigger.context&&(!l.allActions.length||!t&&!l.validActions.length))return null===(a=fi.get(this._editor))||void 0===a||a.showMessage(e.trigger.context.notAvailableMessage,e.trigger.context.position),this._activeCodeActions.value=l,void l.dispose();this._activeCodeActions.value=l,this.showCodeActionList(l,this.toCoords(e.position),{includeDisabledActions:t,fromLightbulb:!1})}else this._actionWidgetService.isVisible?l.dispose():this._activeCodeActions.value=l}getInvalidActionThatWouldHaveBeenApplied(e,t){if(t.allActions.length)return"first"===e.autoApply&&0===t.validActions.length||"ifSingle"===e.autoApply&&1===t.allActions.length?t.allActions.find((e=>{let{action:t}=e;return t.disabled})):void 0}tryGetValidActionToApply(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}async showCodeActionList(e,t,i){const o=this._editor.createDecorationsCollection(),n=this._editor.getDomNode();if(!n)return;const s=i.includeDisabledActions&&(this._showDisabled||0===e.validActions.length)?e.allActions:e.validActions;if(!s.length)return;const r=We.L.isIPosition(t)?this.toCoords(t):t,a={onSelect:async(e,t)=>{this._applyCodeAction(e,!0,!!t,vo.FromCodeActions),this._actionWidgetService.hide(),o.clear()},onHide:()=>{var e;null===(e=this._editor)||void 0===e||e.focus(),o.clear()},onHover:async(e,t)=>{var i;if(t.isCancellationRequested)return;let o=!1;const n=e.action.kind;if(n){const e=new gt(n);o=[to.RefactorExtract,to.RefactorInline,to.RefactorRewrite].some((t=>t.contains(e)))}return{canPreview:o||!!(null===(i=e.action.edit)||void 0===i?void 0:i.edits.length)}},onFocus:e=>{var t,i;if(e&&e.action){const n=e.action.ranges,s=e.action.diagnostics;if(o.clear(),n&&n.length>0){const e=s&&(null===s||void 0===s?void 0:s.length)>1?s.map((e=>({range:e,options:un.DECORATION}))):n.map((e=>({range:e,options:un.DECORATION})));o.set(e)}else if(s&&s.length>0){const e=s.map((e=>({range:e,options:un.DECORATION})));o.set(e);const n=s[0];if(n.startLineNumber&&n.startColumn){const e=null===(i=null===(t=this._editor.getModel())||void 0===t?void 0:t.getWordAtPosition({lineNumber:n.startLineNumber,column:n.startColumn}))||void 0===i?void 0:i.word;xe.i7((0,ne.NC)("editingNewSelection","Context: {0} at line {1} and column {2}.",e,n.startLineNumber,n.startColumn))}}}else o.clear()}};this._actionWidgetService.show("codeActionWidget",!0,function(e,t,i){if(!t)return e.map((e=>{var t;return{kind:"action",item:e,group:No,disabled:!!e.action.disabled,label:e.action.disabled||e.action.title,canPreview:!!(null===(t=e.action.edit)||void 0===t?void 0:t.edits.length)}}));const o=Lo.map((e=>({group:e,actions:[]})));for(const s of e){const e=s.action.kind?new gt(s.action.kind):gt.None;for(const t of o)if(t.group.kind.contains(e)){t.actions.push(s);break}}const n=[];for(const s of o)if(s.actions.length){n.push({kind:"header",group:s.group});for(const e of s.actions){const t=s.group;n.push({kind:"action",item:e,group:e.action.isAI?{title:t.title,kind:t.kind,icon:$.l.sparkle}:t,label:e.action.title,disabled:!!e.action.disabled,keybinding:i(e.action)})}}return n}(s,this._shouldShowHeaders(),this._resolver.getResolver()),a,r,n,this._getActionBarActions(e,t,i))}toCoords(e){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(e,1),this._editor.render();const t=this._editor.getScrolledVisiblePosition(e),i=(0,X.i)(this._editor.getDomNode());return{x:i.left+t.left,y:i.top+t.top+t.height}}_shouldShowHeaders(){var e;const t=null===(e=this._editor)||void 0===e?void 0:e.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:null===t||void 0===t?void 0:t.uri})}_getActionBarActions(e,t,i){if(i.fromLightbulb)return[];const o=e.documentation.map((e=>{var t;return{id:e.id,label:e.title,tooltip:null!==(t=e.tooltip)&&void 0!==t?t:"",class:void 0,enabled:!0,run:()=>{var t;return this._commandService.executeCommand(e.id,...null!==(t=e.arguments)&&void 0!==t?t:[])}}}));return i.includeDisabledActions&&e.validActions.length>0&&e.allActions.length!==e.validActions.length&&o.push(this._showDisabled?{id:"hideMoreActions",label:(0,ne.NC)("hideMoreActions","Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(e,t,i))}:{id:"showMoreActions",label:(0,ne.NC)("showMoreActions","Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(e,t,i))}),o}};function _n(e){return ae.Ao.regex(rn.keys()[0],new RegExp("(\\s|^)"+(0,ii.ec)(e.value)+"\\b"))}mn.ID="editor.contrib.codeActionController",mn.DECORATION=Be.qx.register({description:"quickfix-highlight",className:"quickfix-edit-highlight"}),mn=un=gn([pn(1,on.lT),pn(2,ae.i6),pn(3,ni.TG),pn(4,kt.p),pn(5,yi.ek),pn(6,ye.H),pn(7,re.Ui),pn(8,Xo),pn(9,ni.TG)],mn),(0,Ue.Ic)(((e,t)=>{var i,o;i=".quickfix-edit-highlight",(o=e.getColor(ze.MUv))&&t.addRule(".monaco-editor ".concat(i," { background-color: ").concat(o,"; }"));const n=e.getColor(ze.EiJ);n&&t.addRule(".monaco-editor .quickfix-edit-highlight { border: 1px ".concat((0,nn.c3)(e.type)?"dotted":"solid"," ").concat(n,"; box-sizing: border-box; }"))}));const fn={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:ne.NC("args.schema.kind","Kind of the code action to run.")},apply:{type:"string",description:ne.NC("args.schema.apply","Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[ne.NC("args.schema.apply.first","Always apply the first returned code action."),ne.NC("args.schema.apply.ifSingle","Apply the first returned code action if it is the only one."),ne.NC("args.schema.apply.never","Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:ne.NC("args.schema.preferred","Controls if only preferred code actions should be returned.")}}};function vn(e,t,i,o){let n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:io.Default;if(e.hasModel()){const s=mn.get(e);null===s||void 0===s||s.manualTriggerAtCurrentPosition(t,n,i,o)}}class bn extends ee.R6{constructor(){super({id:ao,label:ne.NC("quickfix.trigger.label","Quick Fix..."),alias:"Quick Fix...",precondition:ae.Ao.and(oe.u.writable,oe.u.hasCodeActionsProvider),kbOpts:{kbExpr:oe.u.textInputFocus,primary:2137,weight:100}})}run(e,t){return vn(t,ne.NC("editor.action.quickFix.noneMessage","No code actions available"),void 0,void 0,io.QuickFix)}}class Cn extends ee._l{constructor(){super({id:ro,precondition:ae.Ao.and(oe.u.writable,oe.u.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:fn}]}})}runEditorCommand(e,t,i){const o=no.fromUser(i,{kind:gt.Empty,apply:"ifSingle"});return vn(t,"string"===typeof(null===i||void 0===i?void 0:i.kind)?o.preferred?ne.NC("editor.action.codeAction.noneMessage.preferred.kind","No preferred code actions for '{0}' available",i.kind):ne.NC("editor.action.codeAction.noneMessage.kind","No code actions for '{0}' available",i.kind):o.preferred?ne.NC("editor.action.codeAction.noneMessage.preferred","No preferred code actions available"):ne.NC("editor.action.codeAction.noneMessage","No code actions available"),{include:o.kind,includeSourceActions:!0,onlyIncludePreferredActions:o.preferred},o.apply)}}class Sn extends ee.R6{constructor(){super({id:co,label:ne.NC("refactor.label","Refactor..."),alias:"Refactor...",precondition:ae.Ao.and(oe.u.writable,oe.u.hasCodeActionsProvider),kbOpts:{kbExpr:oe.u.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:ae.Ao.and(oe.u.writable,_n(to.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:fn}]}})}run(e,t,i){const o=no.fromUser(i,{kind:to.Refactor,apply:"never"});return vn(t,"string"===typeof(null===i||void 0===i?void 0:i.kind)?o.preferred?ne.NC("editor.action.refactor.noneMessage.preferred.kind","No preferred refactorings for '{0}' available",i.kind):ne.NC("editor.action.refactor.noneMessage.kind","No refactorings for '{0}' available",i.kind):o.preferred?ne.NC("editor.action.refactor.noneMessage.preferred","No preferred refactorings available"):ne.NC("editor.action.refactor.noneMessage","No refactorings available"),{include:to.Refactor.contains(o.kind)?o.kind:gt.None,onlyIncludePreferredActions:o.preferred},o.apply,io.Refactor)}}class yn extends ee.R6{constructor(){super({id:ho,label:ne.NC("source.label","Source Action..."),alias:"Source Action...",precondition:ae.Ao.and(oe.u.writable,oe.u.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:ae.Ao.and(oe.u.writable,_n(to.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:fn}]}})}run(e,t,i){const o=no.fromUser(i,{kind:to.Source,apply:"never"});return vn(t,"string"===typeof(null===i||void 0===i?void 0:i.kind)?o.preferred?ne.NC("editor.action.source.noneMessage.preferred.kind","No preferred source actions for '{0}' available",i.kind):ne.NC("editor.action.source.noneMessage.kind","No source actions for '{0}' available",i.kind):o.preferred?ne.NC("editor.action.source.noneMessage.preferred","No preferred source actions available"):ne.NC("editor.action.source.noneMessage","No source actions available"),{include:to.Source.contains(o.kind)?o.kind:gt.None,includeSourceActions:!0,onlyIncludePreferredActions:o.preferred},o.apply,io.SourceAction)}}class wn extends ee.R6{constructor(){super({id:uo,label:ne.NC("organizeImports.label","Organize Imports"),alias:"Organize Imports",precondition:ae.Ao.and(oe.u.writable,_n(to.SourceOrganizeImports)),kbOpts:{kbExpr:oe.u.textInputFocus,primary:1581,weight:100}})}run(e,t){return vn(t,ne.NC("editor.action.organize.noneMessage","No organize imports action available"),{include:to.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",io.OrganizeImports)}}class xn extends ee.R6{constructor(){super({id:go,label:ne.NC("fixAll.label","Fix All"),alias:"Fix All",precondition:ae.Ao.and(oe.u.writable,_n(to.SourceFixAll))})}run(e,t){return vn(t,ne.NC("fixAll.noneMessage","No fix all action available"),{include:to.SourceFixAll,includeSourceActions:!0},"ifSingle",io.FixAll)}}class Nn extends ee.R6{constructor(){super({id:lo,label:ne.NC("autoFix.label","Auto Fix..."),alias:"Auto Fix...",precondition:ae.Ao.and(oe.u.writable,_n(to.QuickFix)),kbOpts:{kbExpr:oe.u.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(e,t){return vn(t,ne.NC("editor.action.autoFix.noneMessage","No auto fixes available"),{include:to.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",io.AutoFix)}}var Ln=i(9694);(0,ee._K)(mn.ID,mn,3),(0,ee._K)(To.ID,To,4),(0,ee.Qr)(bn),(0,ee.Qr)(Sn),(0,ee.Qr)(yn),(0,ee.Qr)(wn),(0,ee.Qr)(Nn),(0,ee.Qr)(xn),(0,ee.fK)(new Cn),ft.B.as(Ln.IP.Configuration).registerConfiguration({...Zi.wk,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:5,description:ne.NC("showCodeActionHeaders","Enable/disable showing group headers in the Code Action menu."),default:!0}}}),ft.B.as(Ln.IP.Configuration).registerConfiguration({...Zi.wk,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:5,description:ne.NC("includeNearbyQuickFixes","Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}});var kn=i(1135),Dn=i(63686);class In{constructor(){this.lenses=[],this._disposables=new Fe.SL}dispose(){this._disposables.dispose()}get isDisposed(){return this._disposables.isDisposed}add(e,t){this._disposables.add(e);for(const i of e.lenses)this.lenses.push({symbol:i,provider:t})}}async function Rn(e,t,i){const o=e.ordered(t),n=new Map,s=new In,r=o.map((async(e,o)=>{n.set(e,o);try{const o=await Promise.resolve(e.provideCodeLenses(t,i));o&&s.add(o,e)}catch(r){(0,Ji.Cp)(r)}}));return await Promise.all(r),s.lenses=s.lenses.sort(((e,t)=>e.symbol.range.startLineNumber<t.symbol.range.startLineNumber?-1:e.symbol.range.startLineNumber>t.symbol.range.startLineNumber?1:n.get(e.provider)<n.get(t.provider)?-1:n.get(e.provider)>n.get(t.provider)?1:e.symbol.range.startColumn<t.symbol.range.startColumn?-1:e.symbol.range.startColumn>t.symbol.range.startColumn?1:0)),s}ye.P.registerCommand("_executeCodeLensProvider",(function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];let[n,s]=i;(0,Dn.p_)(_t.o.isUri(n)),(0,Dn.p_)("number"===typeof s||!s);const{codeLensProvider:r}=e.get(kt.p),a=e.get($i.q).getModel(n);if(!a)throw(0,Ji.b1)();const l=[],d=new Fe.SL;return Rn(r,a,Yi.T.None).then((e=>{d.add(e);const t=[];for(const i of e.lenses)void 0===s||null===s||Boolean(i.symbol.command)?l.push(i.symbol):s-- >0&&i.provider.resolveCodeLens&&t.push(Promise.resolve(i.provider.resolveCodeLens(a,i.symbol,Yi.T.None)).then((e=>l.push(e||i.symbol))));return Promise.all(t)})).then((()=>l)).finally((()=>{setTimeout((()=>d.dispose()),100)}))}));var Pn=i(65549),Mn=i(89965),Tn=i(29880),En=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},An=function(e,t){return function(i,o){t(i,o,e)}};const On=(0,ni.yh)("ICodeLensCache");class Fn{constructor(e,t){this.lineCount=e,this.data=t}}let Wn=class{constructor(e){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new Pn.z6(20,.75);(0,X.se)(Tn.E,(()=>e.remove("codelens/cache",1)));const t="codelens/cache2",i=e.get(t,1,"{}");this._deserialize(i),ui.ju.once(e.onWillSaveState)((i=>{i.reason===Mn.fk.SHUTDOWN&&e.store(t,this._serialize(),1,1)}))}put(e,t){const i=t.lenses.map((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}}})),o=new In;o.add({lenses:i,dispose:()=>{}},this._fakeProvider);const n=new Fn(e.getLineCount(),o);this._cache.set(e.uri.toString(),n)}get(e){const t=this._cache.get(e.uri.toString());return t&&t.lineCount===e.getLineCount()?t.data:void 0}delete(e){this._cache.delete(e.uri.toString())}_serialize(){const e=Object.create(null);for(const[t,i]of this._cache){const o=new Set;for(const e of i.data.lenses)o.add(e.symbol.range.startLineNumber);e[t]={lineCount:i.lineCount,lines:[...o.values()]}}return JSON.stringify(e)}_deserialize(e){try{const t=JSON.parse(e);for(const e in t){const i=t[e],o=[];for(const e of i.lines)o.push({range:new He.e(e,1,e,11)});const n=new In;n.add({lenses:o,dispose(){}},this._fakeProvider),this._cache.set(e,new Fn(i.lineCount,n))}}catch(wa){}}};Wn=En([An(0,Mn.Uy)],Wn),(0,Zo.z)(On,Wn,1);var Hn=i(76272);class Vn{constructor(e,t,i){this.afterColumn=1073741824,this.afterLineNumber=e,this.heightInPx=t,this._onHeight=i,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(e){void 0===this._lastHeight?this._lastHeight=e:this._lastHeight!==e&&(this._lastHeight=e,this._onHeight())}isVisible(){return 0!==this._lastHeight&&this.domNode.hasAttribute("monaco-visible-view-zone")}}class Bn{constructor(e,t){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=e,this._id="codelens.widget-".concat(Bn._idPool++),this.updatePosition(t),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(e,t){this._commands.clear();const i=[];let o=!1;for(let n=0;n<e.length;n++){const t=e[n];if(t&&(o=!0,t.command)){const o=(0,Hn.T)(t.command.title.trim());if(t.command.id){const e="c".concat(Bn._idPool++);i.push(X.$("a",{id:e,title:t.command.tooltip,role:"button"},...o)),this._commands.set(e,t.command)}else i.push(X.$("span",{title:t.command.tooltip},...o));n+1<e.length&&i.push(X.$("span",void 0,"\xa0|\xa0"))}}o?(X.mc(this._domNode,...i),this._isEmpty&&t&&this._domNode.classList.add("fadein"),this._isEmpty=!1):X.mc(this._domNode,X.$("span",void 0,"no commands"))}getCommand(e){return e.parentElement===this._domNode?this._commands.get(e.id):void 0}getId(){return this._id}getDomNode(){return this._domNode}updatePosition(e){const t=this._editor.getModel().getLineFirstNonWhitespaceColumn(e);this._widgetPosition={position:{lineNumber:e,column:t},preference:[1]}}getPosition(){return this._widgetPosition||null}}Bn._idPool=0;class zn{constructor(){this._removeDecorations=[],this._addDecorations=[],this._addDecorationsCallbacks=[]}addDecoration(e,t){this._addDecorations.push(e),this._addDecorationsCallbacks.push(t)}removeDecoration(e){this._removeDecorations.push(e)}commit(e){const t=e.deltaDecorations(this._removeDecorations,this._addDecorations);for(let i=0,o=t.length;i<o;i++)this._addDecorationsCallbacks[i](t[i])}}const Un=Be.qx.register({collapseOnReplaceEdit:!0,description:"codelens"});class Kn{constructor(e,t,i,o,n,s){let r;this._isDisposed=!1,this._editor=t,this._data=e,this._decorationIds=[];const a=[];this._data.forEach(((e,t)=>{e.symbol.command&&a.push(e.symbol),i.addDecoration({range:e.symbol.range,options:Un},(e=>this._decorationIds[t]=e)),r=r?He.e.plusRange(r,e.symbol.range):He.e.lift(e.symbol.range)})),this._viewZone=new Vn(r.startLineNumber-1,n,s),this._viewZoneId=o.addZone(this._viewZone),a.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(a,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new Bn(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(e,t){this._decorationIds.forEach(e.removeDecoration,e),this._decorationIds=[],null===t||void 0===t||t.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some(((e,t)=>{const i=this._editor.getModel().getDecorationRange(e),o=this._data[t].symbol;return!(!i||He.e.isEmpty(o.range)!==i.isEmpty())}))}updateCodeLensSymbols(e,t){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=e,this._data.forEach(((e,i)=>{t.addDecoration({range:e.symbol.range,options:Un},(e=>this._decorationIds[i]=e))}))}updateHeight(e,t){this._viewZone.heightInPx=e,t.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(e){if(!this._viewZone.isVisible())return null;for(let t=0;t<this._decorationIds.length;t++){const i=e.getDecorationRange(this._decorationIds[t]);i&&(this._data[t].symbol.range=i)}return this._data}updateCommands(e){this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(e,!0);for(let t=0;t<this._data.length;t++){const i=e[t];if(i){const{symbol:e}=this._data[t];e.command=i.command||e.command}}}getCommand(e){var t;return null===(t=this._contentWidget)||void 0===t?void 0:t.getCommand(e)}getLineNumber(){const e=this._editor.getModel().getDecorationRange(this._decorationIds[0]);return e?e.startLineNumber:-1}update(e){if(this.isValid()){const 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)))}}}var jn=i(25233),qn=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Gn=function(e,t){return function(i,o){t(i,o,e)}};let Qn=class{constructor(e,t,i,o,n,s){this._editor=e,this._languageFeaturesService=t,this._commandService=o,this._notificationService=n,this._codeLensCache=s,this._disposables=new Fe.SL,this._localToDispose=new Fe.SL,this._lenses=[],this._oldCodeLensModels=new Fe.SL,this._provideCodeLensDebounce=i.for(t.codeLensProvider,"CodeLensProvide",{min:250}),this._resolveCodeLensesDebounce=i.for(t.codeLensProvider,"CodeLensResolve",{min:250,salt:"resolve"}),this._resolveCodeLensesScheduler=new Oe.pY((()=>this._resolveCodeLensesInViewport()),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel((()=>this._onModelChange()))),this._disposables.add(this._editor.onDidChangeModelLanguage((()=>this._onModelChange()))),this._disposables.add(this._editor.onDidChangeConfiguration((e=>{(e.hasChanged(50)||e.hasChanged(19)||e.hasChanged(18))&&this._updateLensStyle(),e.hasChanged(17)&&this._onModelChange()}))),this._disposables.add(t.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){var e;this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),null===(e=this._currentCodeLensModel)||void 0===e||e.dispose()}_getLayoutInfo(){const e=Math.max(1.3,this._editor.getOption(67)/this._editor.getOption(52));let t=this._editor.getOption(19);return(!t||t<5)&&(t=.9*this._editor.getOption(52)|0),{fontSize:t,codeLensHeight:t*e|0}}_updateLensStyle(){const{codeLensHeight:e,fontSize:t}=this._getLayoutInfo(),i=this._editor.getOption(18),o=this._editor.getOption(50),{style:n}=this._editor.getContainerDomNode();n.setProperty("--vscode-editorCodeLens-lineHeight","".concat(e,"px")),n.setProperty("--vscode-editorCodeLens-fontSize","".concat(t,"px")),n.setProperty("--vscode-editorCodeLens-fontFeatureSettings",o.fontFeatureSettings),i&&(n.setProperty("--vscode-editorCodeLens-fontFamily",i),n.setProperty("--vscode-editorCodeLens-fontFamilyDefault",sn.hL.fontFamily)),this._editor.changeViewZones((t=>{for(const i of this._lenses)i.updateHeight(e,t)}))}_localDispose(){var e,t,i;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===(i=this._currentCodeLensModel)||void 0===i||i.dispose()}_onModelChange(){this._localDispose();const e=this._editor.getModel();if(!e)return;if(!this._editor.getOption(17)||e.isTooLargeForTokenization())return;const t=this._codeLensCache.get(e);if(t&&this._renderCodeLensSymbols(t),!this._languageFeaturesService.codeLensProvider.has(e))return void(t&&(0,Oe.Vg)((()=>{const i=this._codeLensCache.get(e);t===i&&(this._codeLensCache.delete(e),this._onModelChange())}),3e4,this._localToDispose));for(const o of this._languageFeaturesService.codeLensProvider.all(e))if("function"===typeof o.onDidChange){const e=o.onDidChange((()=>i.schedule()));this._localToDispose.add(e)}const i=new Oe.pY((()=>{var t;const o=Date.now();null===(t=this._getCodeLensModelPromise)||void 0===t||t.cancel(),this._getCodeLensModelPromise=(0,Oe.PG)((t=>Rn(this._languageFeaturesService.codeLensProvider,e,t))),this._getCodeLensModelPromise.then((t=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=t,this._codeLensCache.put(e,t);const n=this._provideCodeLensDebounce.update(e,Date.now()-o);i.delay=n,this._renderCodeLensSymbols(t),this._resolveCodeLensesInViewportSoon()}),Ji.dL)}),this._provideCodeLensDebounce.get(e));this._localToDispose.add(i),this._localToDispose.add((0,Fe.OF)((()=>this._resolveCodeLensesScheduler.cancel()))),this._localToDispose.add(this._editor.onDidChangeModelContent((()=>{var e;this._editor.changeDecorations((e=>{this._editor.changeViewZones((t=>{const i=[];let o=-1;this._lenses.forEach((e=>{e.isValid()&&o!==e.getLineNumber()?(e.update(t),o=e.getLineNumber()):i.push(e)}));const n=new zn;i.forEach((e=>{e.dispose(n,t),this._lenses.splice(this._lenses.indexOf(e),1)})),n.commit(e)}))})),i.schedule(),this._resolveCodeLensesScheduler.cancel(),null===(e=this._resolveCodeLensesPromise)||void 0===e||e.cancel(),this._resolveCodeLensesPromise=void 0}))),this._localToDispose.add(this._editor.onDidFocusEditorWidget((()=>{i.schedule()}))),this._localToDispose.add(this._editor.onDidBlurEditorText((()=>{i.cancel()}))),this._localToDispose.add(this._editor.onDidScrollChange((e=>{e.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()}))),this._localToDispose.add(this._editor.onDidLayoutChange((()=>{this._resolveCodeLensesInViewportSoon()}))),this._localToDispose.add((0,Fe.OF)((()=>{if(this._editor.getModel()){const e=kn.Z.capture(this._editor);this._editor.changeDecorations((e=>{this._editor.changeViewZones((t=>{this._disposeAllLenses(e,t)}))})),e.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)}))),this._localToDispose.add(this._editor.onMouseDown((e=>{if(9!==e.target.type)return;let t=e.target.element;if("SPAN"===(null===t||void 0===t?void 0:t.tagName)&&(t=t.parentElement),"A"===(null===t||void 0===t?void 0:t.tagName))for(const i of this._lenses){const e=i.getCommand(t);if(e){this._commandService.executeCommand(e.id,...e.arguments||[]).catch((e=>this._notificationService.error(e)));break}}}))),i.schedule()}_disposeAllLenses(e,t){const i=new zn;for(const o of this._lenses)o.dispose(i,t);e&&i.commit(e),this._lenses.length=0}_renderCodeLensSymbols(e){if(!this._editor.hasModel())return;const t=this._editor.getModel().getLineCount(),i=[];let o;for(const r of e.lenses){const e=r.symbol.range.startLineNumber;e<1||e>t||(o&&o[o.length-1].symbol.range.startLineNumber===e?o.push(r):(o=[r],i.push(o)))}if(!i.length&&!this._lenses.length)return;const n=kn.Z.capture(this._editor),s=this._getLayoutInfo();this._editor.changeDecorations((e=>{this._editor.changeViewZones((t=>{const o=new zn;let n=0,r=0;for(;r<i.length&&n<this._lenses.length;){const e=i[r][0].symbol.range.startLineNumber,a=this._lenses[n].getLineNumber();a<e?(this._lenses[n].dispose(o,t),this._lenses.splice(n,1)):a===e?(this._lenses[n].updateCodeLensSymbols(i[r],o),r++,n++):(this._lenses.splice(n,0,new Kn(i[r],this._editor,o,t,s.codeLensHeight,(()=>this._resolveCodeLensesInViewportSoon()))),n++,r++)}for(;n<this._lenses.length;)this._lenses[n].dispose(o,t),this._lenses.splice(n,1);for(;r<i.length;)this._lenses.push(new Kn(i[r],this._editor,o,t,s.codeLensHeight,(()=>this._resolveCodeLensesInViewportSoon()))),r++;o.commit(e)}))})),n.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){var e;null===(e=this._resolveCodeLensesPromise)||void 0===e||e.cancel(),this._resolveCodeLensesPromise=void 0;const t=this._editor.getModel();if(!t)return;const i=[],o=[];if(this._lenses.forEach((e=>{const n=e.computeIfNecessary(t);n&&(i.push(n),o.push(e))})),0===i.length)return;const n=Date.now(),s=(0,Oe.PG)((e=>{const n=i.map(((i,n)=>{const s=new Array(i.length),r=i.map(((i,o)=>i.symbol.command||"function"!==typeof i.provider.resolveCodeLens?(s[o]=i.symbol,Promise.resolve(void 0)):Promise.resolve(i.provider.resolveCodeLens(t,i.symbol,e)).then((e=>{s[o]=e}),Ji.Cp)));return Promise.all(r).then((()=>{e.isCancellationRequested||o[n].isDisposed()||o[n].updateCommands(s)}))}));return Promise.all(n)}));this._resolveCodeLensesPromise=s,this._resolveCodeLensesPromise.then((()=>{const e=this._resolveCodeLensesDebounce.update(t,Date.now()-n);this._resolveCodeLensesScheduler.delay=e,this._currentCodeLensModel&&this._codeLensCache.put(t,this._currentCodeLensModel),this._oldCodeLensModels.clear(),s===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)}),(e=>{(0,Ji.dL)(e),s===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)}))}async getModel(){var e;return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,(null===(e=this._currentCodeLensModel)||void 0===e?void 0:e.isDisposed)?void 0:this._currentCodeLensModel}};Qn.ID="css.editor.codeLens",Qn=qn([Gn(1,kt.p),Gn(2,jn.A),Gn(3,ye.H),Gn(4,Xi.lT),Gn(5,On)],Qn),(0,ee._K)(Qn.ID,Qn,1),(0,ee.Qr)(class extends ee.R6{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:oe.u.hasCodeLensProvider,label:(0,ne.NC)("showLensOnLine","Show CodeLens Commands For Current Line"),alias:"Show CodeLens Commands For Current Line"})}async run(e,t){if(!t.hasModel())return;const i=e.get(wi.eJ),o=e.get(ye.H),n=e.get(Xi.lT),s=t.getSelection().positionLineNumber,r=t.getContribution(Qn.ID);if(!r)return;const a=await r.getModel();if(!a)return;const l=[];for(const u of a.lenses)u.symbol.command&&u.symbol.range.startLineNumber===s&&l.push({label:u.symbol.command.title,command:u.symbol.command});if(0===l.length)return;const d=await i.pick(l,{canPickMany:!1,placeHolder:(0,ne.NC)("placeHolder","Select a command")});if(!d)return;let c=d.command;if(a.isDisposed){const e=await r.getModel(),t=null===e||void 0===e?void 0:e.lenses.find((e=>{var t;return e.symbol.range.startLineNumber===s&&(null===(t=e.symbol.command)||void 0===t?void 0:t.title)===c.title}));if(!t||!t.symbol.command)return;c=t.symbol.command}try{await o.executeCommand(c.id,...c.arguments||[])}catch(h){n.error(h)}}});var Zn=i(89652),Yn=i(6459),Jn=i(64370),$n=i(56965),Xn=i(40801),es=i(78278),ts=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},is=function(e,t){return function(i,o){t(i,o,e)}};class os{constructor(e,t){this._editorWorkerClient=new $n.Q8(e,!1,"editorWorkerService",t)}async provideDocumentColors(e,t){return this._editorWorkerClient.computeDefaultDocumentColors(e.uri)}provideColorPresentations(e,t,i){const o=t.range,n=t.color,s=n.alpha,r=new Zn.Il(new Zn.VS(Math.round(255*n.red),Math.round(255*n.green),Math.round(255*n.blue),s)),a=s?Zn.Il.Format.CSS.formatRGB(r):Zn.Il.Format.CSS.formatRGBA(r),l=s?Zn.Il.Format.CSS.formatHSL(r):Zn.Il.Format.CSS.formatHSLA(r),d=s?Zn.Il.Format.CSS.formatHex(r):Zn.Il.Format.CSS.formatHexA(r),c=[];return c.push({label:a,textEdit:{range:o,text:a}}),c.push({label:l,textEdit:{range:o,text:l}}),c.push({label:d,textEdit:{range:o,text:d}}),c}}let ns=class extends Fe.JT{constructor(e,t,i){super(),this._register(i.colorProvider.register("*",new os(e,t)))}};async function ss(e,t,i){let o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return cs(new as,e,t,i,o)}function rs(e,t,i,o){return Promise.resolve(i.provideColorPresentations(e,t,o))}ns=ts([is(0,$i.q),is(1,Xn.c_),is(2,kt.p)],ns),(0,es.y)(ns);class as{constructor(){}async compute(e,t,i,o){const n=await e.provideDocumentColors(t,i);if(Array.isArray(n))for(const s of n)o.push({colorInfo:s,provider:e});return Array.isArray(n)}}class ls{constructor(){}async compute(e,t,i,o){const n=await e.provideDocumentColors(t,i);if(Array.isArray(n))for(const s of n)o.push({range:s.range,color:[s.color.red,s.color.green,s.color.blue,s.color.alpha]});return Array.isArray(n)}}class ds{constructor(e){this.colorInfo=e}async compute(e,t,i,o){const n=await e.provideColorPresentations(t,this.colorInfo,Yi.T.None);return Array.isArray(n)&&o.push(...n),Array.isArray(n)}}async function cs(e,t,i,o,n){let s,r=!1;const a=[],l=t.ordered(i);for(let c=l.length-1;c>=0;c--){const t=l[c];if(t instanceof os)s=t;else try{await e.compute(t,i,o,a)&&(r=!0)}catch(d){(0,Ji.Cp)(d)}}return r?a:s&&n?(await e.compute(s,i,o,a),a):[]}function hs(e,t){const{colorProvider:i}=e.get(kt.p),o=e.get($i.q).getModel(t);if(!o)throw(0,Ji.b1)();return{model:o,colorProviderRegistry:i,isDefaultColorDecoratorsEnabled:e.get(re.Ui).getValue("editor.defaultColorDecorators",{resource:t})}}ye.P.registerCommand("_executeDocumentColorProvider",(function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];const[n]=i;if(!(n instanceof _t.o))throw(0,Ji.b1)();const{model:s,colorProviderRegistry:r,isDefaultColorDecoratorsEnabled:a}=hs(e,n);return cs(new ls,r,s,Yi.T.None,a)})),ye.P.registerCommand("_executeColorPresentationProvider",(function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];const[n,s]=i,{uri:r,range:a}=s;if(!(r instanceof _t.o)||!Array.isArray(n)||4!==n.length||!He.e.isIRange(a))throw(0,Ji.b1)();const{model:l,colorProviderRegistry:d,isDefaultColorDecoratorsEnabled:c}=hs(e,r),[h,u,g,p]=n;return cs(new ds({range:a,color:{red:h,green:u,blue:g,alpha:p}}),d,l,Yi.T.None,c)}));var us,gs=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ps=function(e,t){return function(i,o){t(i,o,e)}};const ms=Object.create({});let _s=us=class extends Fe.JT{constructor(e,t,i,o){super(),this._editor=e,this._configurationService=t,this._languageFeaturesService=i,this._localToDispose=this._register(new Fe.SL),this._decorationsIds=[],this._colorDatas=new Map,this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=new Jn.t7(this._editor),this._decoratorLimitReporter=new fs,this._colorDecorationClassRefs=this._register(new Fe.SL),this._debounceInformation=o.for(i.colorProvider,"Document Colors",{min:us.RECOMPUTE_TIME}),this._register(e.onDidChangeModel((()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()}))),this._register(e.onDidChangeModelLanguage((()=>this.updateColors()))),this._register(i.colorProvider.onDidChange((()=>this.updateColors()))),this._register(e.onDidChangeConfiguration((e=>{const t=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(147);const i=t!==this._isColorDecoratorsEnabled||e.hasChanged(21),o=e.hasChanged(147);(i||o)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())}))),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(147),this.updateColors()}isEnabled(){const e=this._editor.getModel();if(!e)return!1;const t=e.getLanguageId(),i=this._configurationService.getValue(t);if(i&&"object"===typeof i){const e=i.colorDecorators;if(e&&void 0!==e.enable&&!e.enable)return e.enable}return this._editor.getOption(20)}static get(e){return e.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;const e=this._editor.getModel();e&&this._languageFeaturesService.colorProvider.has(e)&&(this._localToDispose.add(this._editor.onDidChangeModelContent((()=>{this._timeoutTimer||(this._timeoutTimer=new Oe._F,this._timeoutTimer.cancelAndSet((()=>{this._timeoutTimer=null,this.beginCompute()}),this._debounceInformation.get(e)))}))),this.beginCompute())}async beginCompute(){this._computePromise=(0,Oe.PG)((async e=>{const t=this._editor.getModel();if(!t)return[];const i=new Yn.G(!1),o=await ss(this._languageFeaturesService.colorProvider,t,e,this._isDefaultColorDecoratorsEnabled);return this._debounceInformation.update(t,i.elapsed()),o}));try{const e=await this._computePromise;this.updateDecorations(e),this.updateColorDecorators(e),this._computePromise=null}catch(e){(0,Ji.dL)(e)}}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(e){const t=e.map((e=>({range:{startLineNumber:e.colorInfo.range.startLineNumber,startColumn:e.colorInfo.range.startColumn,endLineNumber:e.colorInfo.range.endLineNumber,endColumn:e.colorInfo.range.endColumn},options:Be.qx.EMPTY})));this._editor.changeDecorations((i=>{this._decorationsIds=i.deltaDecorations(this._decorationsIds,t),this._colorDatas=new Map,this._decorationsIds.forEach(((t,i)=>this._colorDatas.set(t,e[i])))}))}updateColorDecorators(e){this._colorDecorationClassRefs.clear();const t=[],i=this._editor.getOption(21);for(let n=0;n<e.length&&t.length<i;n++){const{red:i,green:o,blue:s,alpha:r}=e[n].colorInfo.color,a=new Zn.VS(Math.round(255*i),Math.round(255*o),Math.round(255*s),r),l="rgba(".concat(a.r,", ").concat(a.g,", ").concat(a.b,", ").concat(a.a,")"),d=this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({backgroundColor:l}));t.push({range:{startLineNumber:e[n].colorInfo.range.startLineNumber,startColumn:e[n].colorInfo.range.startColumn,endLineNumber:e[n].colorInfo.range.endLineNumber,endColumn:e[n].colorInfo.range.endColumn},options:{description:"colorDetector",before:{content:ii.B4,inlineClassName:"".concat(d.className," colorpicker-color-decoration"),inlineClassNameAffectsLetterSpacing:!0,attachedData:ms}}})}const o=i<e.length&&i;this._decoratorLimitReporter.update(e.length,o),this._colorDecoratorIds.set(t)}removeAllDecorations(){this._editor.removeDecorations(this._decorationsIds),this._decorationsIds=[],this._colorDecoratorIds.clear(),this._colorDecorationClassRefs.clear()}getColorData(e){const t=this._editor.getModel();if(!t)return null;const i=t.getDecorationsInRange(He.e.fromPositions(e,e)).filter((e=>this._colorDatas.has(e.id)));return 0===i.length?null:this._colorDatas.get(i[0].id)}isColorDecoration(e){return this._colorDecoratorIds.has(e)}};_s.ID="editor.contrib.colorDetector",_s.RECOMPUTE_TIME=1e3,_s=us=gs([ps(1,re.Ui),ps(2,kt.p),ps(3,jn.A)],_s);class fs{constructor(){this._onDidChange=new ui.Q5,this._computed=0,this._limited=!1}update(e,t){e===this._computed&&t===this._limited||(this._computed=e,this._limited=t,this._onDidChange.fire())}}(0,ee._K)(_s.ID,_s,1);class vs{get color(){return this._color}set color(e){this._color.equals(e)||(this._color=e,this._onDidChangeColor.fire(e))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(e){this._colorPresentations=e,this.presentationIndex>e.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}constructor(e,t,i){this.presentationIndex=i,this._onColorFlushed=new ui.Q5,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new ui.Q5,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new ui.Q5,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=e,this._color=e,this._colorPresentations=t}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(e,t){let i=-1;for(let o=0;o<this.colorPresentations.length;o++)if(t.toLowerCase()===this.colorPresentations[o].label){i=o;break}if(-1===i){const e=t.split("(")[0].toLowerCase();for(let t=0;t<this.colorPresentations.length;t++)if(this.colorPresentations[t].label.toLowerCase().startsWith(e)){i=t;break}}-1!==i&&i!==this.presentationIndex&&(this.presentationIndex=i,this._onDidChangePresentation.fire(this.presentation))}flushColor(){this._onColorFlushed.fire(this._color)}}var bs=i(39830),Cs=i(13505),Ss=i(74812),ys=i(38261);const ws=X.$;class xs extends Fe.JT{constructor(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];super(),this.model=t,this.showingStandaloneColorPicker=o,this._closeButton=null,this._domNode=ws(".colorpicker-header"),X.R3(e,this._domNode),this._pickedColorNode=X.R3(this._domNode,ws(".picked-color")),X.R3(this._pickedColorNode,ws("span.codicon.codicon-color-mode")),this._pickedColorPresentation=X.R3(this._pickedColorNode,document.createElement("span")),this._pickedColorPresentation.classList.add("picked-color-presentation");const n=(0,ne.NC)("clickToToggleColorOptions","Click to toggle color options (rgb/hsl/hex)");this._pickedColorNode.setAttribute("title",n),this._originalColorNode=X.R3(this._domNode,ws(".original-color")),this._originalColorNode.style.backgroundColor=Zn.Il.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=i.getColorTheme().getColor(ze.yJx)||Zn.Il.white,this._register(i.onDidColorThemeChange((e=>{this.backgroundColor=e.getColor(ze.yJx)||Zn.Il.white}))),this._register(X.nm(this._pickedColorNode,X.tw.CLICK,(()=>this.model.selectNextColorPresentation()))),this._register(X.nm(this._originalColorNode,X.tw.CLICK,(()=>{this.model.color=this.model.originalColor,this.model.flushColor()}))),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this._register(t.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=Zn.Il.Format.CSS.format(t.color)||"",this._pickedColorNode.classList.toggle("light",t.color.rgba.a<.5?this.backgroundColor.isLighter():t.color.isLighter()),this.onDidChangeColor(this.model.color),this.showingStandaloneColorPicker&&(this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new Ns(this._domNode)))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(e){this._pickedColorNode.style.backgroundColor=Zn.Il.Format.CSS.format(e)||"",this._pickedColorNode.classList.toggle("light",e.rgba.a<.5?this.backgroundColor.isLighter():e.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}class Ns extends Fe.JT{constructor(e){super(),this._onClicked=this._register(new ui.Q5),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),X.R3(e,this._button);const t=document.createElement("div");t.classList.add("close-button-inner-div"),X.R3(this._button,t);X.R3(t,ws(".button"+oi.k.asCSSSelector((0,ys.q5)("color-picker-close",$.l.close,(0,ne.NC)("closeIcon","Icon to close the color picker"))))).classList.add("close-icon"),this._register(X.nm(this._button,X.tw.CLICK,(()=>{this._onClicked.fire()})))}}class Ls extends Fe.JT{constructor(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];super(),this.model=t,this.pixelRatio=i,this._insertButton=null,this._domNode=ws(".colorpicker-body"),X.R3(e,this._domNode),this._saturationBox=new ks(this._domNode,this.model,this.pixelRatio),this._register(this._saturationBox),this._register(this._saturationBox.onDidChange(this.onDidSaturationValueChange,this)),this._register(this._saturationBox.onColorFlushed(this.flushColor,this)),this._opacityStrip=new Is(this._domNode,this.model,o),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new Rs(this._domNode,this.model,o),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),o&&(this._insertButton=this._register(new Ps(this._domNode)),this._domNode.classList.add("standalone-colorpicker"))}flushColor(){this.model.flushColor()}onDidSaturationValueChange(e){let{s:t,v:i}=e;const o=this.model.color.hsva;this.model.color=new Zn.Il(new Zn.tx(o.h,t,i,o.a))}onDidOpacityChange(e){const t=this.model.color.hsva;this.model.color=new Zn.Il(new Zn.tx(t.h,t.s,t.v,e))}onDidHueChange(e){const t=this.model.color.hsva,i=360*(1-e);this.model.color=new Zn.Il(new Zn.tx(360===i?0:i,t.s,t.v,t.a))}get domNode(){return this._domNode}get saturationBox(){return this._saturationBox}get enterButton(){return this._insertButton}layout(){this._saturationBox.layout(),this._opacityStrip.layout(),this._hueStrip.layout()}}class ks extends Fe.JT{constructor(e,t,i){super(),this.model=t,this.pixelRatio=i,this._onDidChange=new ui.Q5,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new ui.Q5,this.onColorFlushed=this._onColorFlushed.event,this._domNode=ws(".saturation-wrap"),X.R3(e,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",X.R3(this._domNode,this._canvas),this.selection=ws(".saturation-selection"),X.R3(this._domNode,this.selection),this.layout(),this._register(X.nm(this._domNode,X.tw.POINTER_DOWN,(e=>this.onPointerDown(e)))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(e){if(!e.target||!(e.target instanceof Element))return;this.monitor=this._register(new Cs.C);const t=X.i(this._domNode);e.target!==this.selection&&this.onDidChangePosition(e.offsetX,e.offsetY),this.monitor.startMonitoring(e.target,e.pointerId,e.buttons,(e=>this.onDidChangePosition(e.pageX-t.left,e.pageY-t.top)),(()=>null));const i=X.nm(e.target.ownerDocument,X.tw.POINTER_UP,(()=>{this._onColorFlushed.fire(),i.dispose(),this.monitor&&(this.monitor.stopMonitoring(!0),this.monitor=null)}),!0)}onDidChangePosition(e,t){const i=Math.max(0,Math.min(1,e/this.width)),o=Math.max(0,Math.min(1,1-t/this.height));this.paintSelection(i,o),this._onDidChange.fire({s:i,v:o})}layout(){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();const e=this.model.color.hsva;this.paintSelection(e.s,e.v)}paint(){const e=this.model.color.hsva,t=new Zn.Il(new Zn.tx(e.h,1,1,1)),i=this._canvas.getContext("2d"),o=i.createLinearGradient(0,0,this._canvas.width,0);o.addColorStop(0,"rgba(255, 255, 255, 1)"),o.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),o.addColorStop(1,"rgba(255, 255, 255, 0)");const n=i.createLinearGradient(0,0,0,this._canvas.height);n.addColorStop(0,"rgba(0, 0, 0, 0)"),n.addColorStop(1,"rgba(0, 0, 0, 1)"),i.rect(0,0,this._canvas.width,this._canvas.height),i.fillStyle=Zn.Il.Format.CSS.format(t),i.fill(),i.fillStyle=o,i.fill(),i.fillStyle=n,i.fill()}paintSelection(e,t){this.selection.style.left="".concat(e*this.width,"px"),this.selection.style.top="".concat(this.height-t*this.height,"px")}onDidChangeColor(e){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();const t=e.hsva;this.paintSelection(t.s,t.v)}}class Ds extends Fe.JT{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];super(),this.model=t,this._onDidChange=new ui.Q5,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new ui.Q5,this.onColorFlushed=this._onColorFlushed.event,i?(this.domNode=X.R3(e,ws(".standalone-strip")),this.overlay=X.R3(this.domNode,ws(".standalone-overlay"))):(this.domNode=X.R3(e,ws(".strip")),this.overlay=X.R3(this.domNode,ws(".overlay"))),this.slider=X.R3(this.domNode,ws(".slider")),this.slider.style.top="0px",this._register(X.nm(this.domNode,X.tw.POINTER_DOWN,(e=>this.onPointerDown(e)))),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;const e=this.getValue(this.model.color);this.updateSliderPosition(e)}onDidChangeColor(e){const t=this.getValue(e);this.updateSliderPosition(t)}onPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=this._register(new Cs.C),i=X.i(this.domNode);this.domNode.classList.add("grabbing"),e.target!==this.slider&&this.onDidChangeTop(e.offsetY),t.startMonitoring(e.target,e.pointerId,e.buttons,(e=>this.onDidChangeTop(e.pageY-i.top)),(()=>null));const o=X.nm(e.target.ownerDocument,X.tw.POINTER_UP,(()=>{this._onColorFlushed.fire(),o.dispose(),t.stopMonitoring(!0),this.domNode.classList.remove("grabbing")}),!0)}onDidChangeTop(e){const t=Math.max(0,Math.min(1,1-e/this.height));this.updateSliderPosition(t),this._onDidChange.fire(t)}updateSliderPosition(e){this.slider.style.top="".concat((1-e)*this.height,"px")}}class Is extends Ds{constructor(e,t){super(e,t,arguments.length>2&&void 0!==arguments[2]&&arguments[2]),this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(e){super.onDidChangeColor(e);const{r:t,g:i,b:o}=e.rgba,n=new Zn.Il(new Zn.VS(t,i,o,1)),s=new Zn.Il(new Zn.VS(t,i,o,0));this.overlay.style.background="linear-gradient(to bottom, ".concat(n," 0%, ").concat(s," 100%)")}getValue(e){return e.hsva.a}}class Rs extends Ds{constructor(e,t){super(e,t,arguments.length>2&&void 0!==arguments[2]&&arguments[2]),this.domNode.classList.add("hue-strip")}getValue(e){return 1-e.hsva.h/360}}class Ps extends Fe.JT{constructor(e){super(),this._onClicked=this._register(new ui.Q5),this.onClicked=this._onClicked.event,this._button=X.R3(e,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._register(X.nm(this._button,X.tw.CLICK,(()=>{this._onClicked.fire()})))}get button(){return this._button}}class Ms extends Ss.${constructor(e,t,i,o){let n=arguments.length>4&&void 0!==arguments[4]&&arguments[4];super(),this.model=t,this.pixelRatio=i,this._register(bs.T.getInstance(X.Jj(e)).onDidChange((()=>this.layout())));const s=ws(".colorpicker-widget");e.appendChild(s),this.header=this._register(new xs(s,this.model,o,n)),this.body=this._register(new Ls(s,this.model,this.pixelRatio,n))}layout(){this.body.layout()}}var Ts=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Es=function(e,t){return function(i,o){t(i,o,e)}};class As{constructor(e,t,i,o){this.owner=e,this.range=t,this.model=i,this.provider=o,this.forceShowAtRange=!0}isValidForHoverAnchor(e){return 1===e.type&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let Os=class{constructor(e,t){this._editor=e,this._themeService=t,this.hoverOrdinal=2}computeSync(e,t){return[]}computeAsync(e,t,i){return Oe.Aq.fromPromise(this._computeAsync(e,t,i))}async _computeAsync(e,t,i){if(!this._editor.hasModel())return[];const o=_s.get(this._editor);if(!o)return[];for(const n of t){if(!o.isColorDecoration(n))continue;const e=o.getColorData(n.range.getStartPosition());if(e){return[await Hs(this,this._editor.getModel(),e.colorInfo,e.provider)]}}return[]}renderHoverParts(e,t){return Vs(this,this._editor,this._themeService,t,e)}};Os=Ts([Es(1,Ue.XE)],Os);class Fs{constructor(e,t,i,o){this.owner=e,this.range=t,this.model=i,this.provider=o}}let Ws=class{constructor(e,t){this._editor=e,this._themeService=t,this._color=null}async createColorHover(e,t,i){if(!this._editor.hasModel())return null;if(!_s.get(this._editor))return null;const o=await ss(i,this._editor.getModel(),Yi.T.None);let n=null,s=null;for(const d of o){const t=d.colorInfo;He.e.containsRange(t.range,e.range)&&(n=t,s=d.provider)}const r=null!==n&&void 0!==n?n:e,a=null!==s&&void 0!==s?s:t,l=!!n;return{colorHover:await Hs(this,this._editor.getModel(),r,a),foundInEditor:l}}async updateEditorModel(e){if(!this._editor.hasModel())return;const t=e.model;let i=new He.e(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn);this._color&&(await zs(this._editor.getModel(),t,this._color,i,e),i=Bs(this._editor,i,t))}renderHoverParts(e,t){return Vs(this,this._editor,this._themeService,t,e)}set color(e){this._color=e}get color(){return this._color}};async function Hs(e,t,i,o){const n=t.getValueInRange(i.range),{red:s,green:r,blue:a,alpha:l}=i.color,d=new Zn.VS(Math.round(255*s),Math.round(255*r),Math.round(255*a),l),c=new Zn.Il(d),h=await rs(t,i,o,Yi.T.None),u=new vs(c,[],0);return u.colorPresentations=h||[],u.guessColorPresentation(c,n),e instanceof Os?new As(e,He.e.lift(i.range),u,o):new Fs(e,He.e.lift(i.range),u,o)}function Vs(e,t,i,o,n){if(0===o.length||!t.hasModel())return Fe.JT.None;if(n.setMinimumDimensions){const e=t.getOption(67)+8;n.setMinimumDimensions(new X.Ro(302,e))}const s=new Fe.SL,r=o[0],a=t.getModel(),l=r.model,d=s.add(new Ms(n.fragment,l,t.getOption(143),i,e instanceof Ws));n.setColorPicker(d);let c=!1,h=new He.e(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn);if(e instanceof Ws){const t=o[0].model.color;e.color=t,zs(a,l,t,h,r),s.add(l.onColorFlushed((t=>{e.color=t})))}else s.add(l.onColorFlushed((async e=>{await zs(a,l,e,h,r),c=!0,h=Bs(t,h,l)})));return s.add(l.onDidChangeColor((e=>{zs(a,l,e,h,r)}))),s.add(t.onDidChangeModelContent((e=>{c?c=!1:(n.hide(),t.focus())}))),s}function Bs(e,t,i){var o,n;const s=[],r=null!==(o=i.presentation.textEdit)&&void 0!==o?o:{range:t,text:i.presentation.label,forceMoveMarkers:!1};s.push(r),i.presentation.additionalTextEdits&&s.push(...i.presentation.additionalTextEdits);const a=He.e.lift(r.range),l=e.getModel()._setTrackedRange(null,a,3);return e.executeEdits("colorpicker",s),e.pushUndoStop(),null!==(n=e.getModel()._getTrackedRange(l))&&void 0!==n?n:a}async function zs(e,t,i,o,n){const s=await rs(e,{range:o,color:{red:i.rgba.r/255,green:i.rgba.g/255,blue:i.rgba.b/255,alpha:i.rgba.a}},n.provider,Yi.T.None);t.colorPresentations=s||[]}Ws=Ts([Es(1,Ue.XE)],Ws);var Us=i(69311),Ks=i(93984);function js(e,t){return!!e[t]}class qs{constructor(e,t){this.target=e.target,this.isLeftClick=e.event.leftButton,this.isMiddleClick=e.event.middleButton,this.isRightClick=e.event.rightButton,this.hasTriggerModifier=js(e.event,t.triggerModifier),this.hasSideBySideModifier=js(e.event,t.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=e.event.detail<=1}}class Gs{constructor(e,t){this.keyCodeIsTriggerKey=e.keyCode===t.triggerKey,this.keyCodeIsSideBySideKey=e.keyCode===t.triggerSideBySideKey,this.hasTriggerModifier=js(e,t.triggerModifier)}}class Qs{constructor(e,t,i,o){this.triggerKey=e,this.triggerModifier=t,this.triggerSideBySideKey=i,this.triggerSideBySideModifier=o}equals(e){return this.triggerKey===e.triggerKey&&this.triggerModifier===e.triggerModifier&&this.triggerSideBySideKey===e.triggerSideBySideKey&&this.triggerSideBySideModifier===e.triggerSideBySideModifier}}function Zs(e){return"altKey"===e?it.dz?new Qs(57,"metaKey",6,"altKey"):new Qs(5,"ctrlKey",6,"altKey"):it.dz?new Qs(6,"altKey",57,"metaKey"):new Qs(6,"altKey",5,"ctrlKey")}class Ys extends Fe.JT{constructor(e,t){var i;super(),this._onMouseMoveOrRelevantKeyDown=this._register(new ui.Q5),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new ui.Q5),this.onExecute=this._onExecute.event,this._onCancel=this._register(new ui.Q5),this.onCancel=this._onCancel.event,this._editor=e,this._extractLineNumberFromMouseEvent=null!==(i=null===t||void 0===t?void 0:t.extractLineNumberFromMouseEvent)&&void 0!==i?i:e=>e.target.position?e.target.position.lineNumber:0,this._opts=Zs(this._editor.getOption(78)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration((e=>{if(e.hasChanged(78)){const e=Zs(this._editor.getOption(78));if(this._opts.equals(e))return;this._opts=e,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}}))),this._register(this._editor.onMouseMove((e=>this._onEditorMouseMove(new qs(e,this._opts))))),this._register(this._editor.onMouseDown((e=>this._onEditorMouseDown(new qs(e,this._opts))))),this._register(this._editor.onMouseUp((e=>this._onEditorMouseUp(new qs(e,this._opts))))),this._register(this._editor.onKeyDown((e=>this._onEditorKeyDown(new Gs(e,this._opts))))),this._register(this._editor.onKeyUp((e=>this._onEditorKeyUp(new Gs(e,this._opts))))),this._register(this._editor.onMouseDrag((()=>this._resetHandler()))),this._register(this._editor.onDidChangeCursorSelection((e=>this._onDidChangeCursorSelection(e)))),this._register(this._editor.onDidChangeModel((e=>this._resetHandler()))),this._register(this._editor.onDidChangeModelContent((()=>this._resetHandler()))),this._register(this._editor.onDidScrollChange((e=>{(e.scrollTopChanged||e.scrollLeftChanged)&&this._resetHandler()})))}_onDidChangeCursorSelection(e){e.selection&&e.selection.startColumn!==e.selection.endColumn&&this._resetHandler()}_onEditorMouseMove(e){this._lastMouseMoveEvent=e,this._onMouseMoveOrRelevantKeyDown.fire([e,null])}_onEditorMouseDown(e){this._hasTriggerKeyOnMouseDown=e.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(e)}_onEditorMouseUp(e){const t=this._extractLineNumberFromMouseEvent(e);this._hasTriggerKeyOnMouseDown&&this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===t&&this._onExecute.fire(e)}_onEditorKeyDown(e){this._lastMouseMoveEvent&&(e.keyCodeIsTriggerKey||e.keyCodeIsSideBySideKey&&e.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,e]):e.hasTriggerModifier&&this._onCancel.fire()}_onEditorKeyUp(e){e.keyCodeIsTriggerKey&&this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}var Js=i(10451),$s=i(46385),Xs=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},er=function(e,t){return function(i,o){t(i,o,e)}};let tr=class extends J.Gm{constructor(e,t,i,o,n,s,r,a,l,d,c,h,u){super(e,{...o.getRawOptions(),overflowWidgetsDomNode:o.getOverflowWidgetsDomNode()},i,n,s,r,a,l,d,c,h,u),this._parentEditor=o,this._overwriteOptions=t,super.updateOptions(this._overwriteOptions),this._register(o.onDidChangeConfiguration((e=>this._onParentConfigurationChanged(e))))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(e){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(e){Js.jB(this._overwriteOptions,e,!0),super.updateOptions(this._overwriteOptions)}};tr=Xs([er(4,ni.TG),er(5,te.$),er(6,ye.H),er(7,ae.i6),er(8,Ue.XE),er(9,Xi.lT),er(10,$s.F),er(11,Xn.c_),er(12,kt.p)],tr);var ir=i(38059),or=i(58276);const nr=new Zn.Il(new Zn.VS(0,122,204)),sr={showArrow:!0,showFrame:!0,className:"",frameColor:nr,arrowColor:nr,keepEditorSelection:!1};class rr{constructor(e,t,i,o,n,s,r,a){this.id="",this.domNode=e,this.afterLineNumber=t,this.afterColumn=i,this.heightInLines=o,this.showInHiddenAreas=r,this.ordinal=a,this._onDomNodeTop=n,this._onComputedHeight=s}onDomNodeTop(e){this._onDomNodeTop(e)}onComputedHeight(e){this._onComputedHeight(e)}}class ar{constructor(e,t){this._id=e,this._domNode=t}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}class lr{constructor(e){this._editor=e,this._ruleName=lr._IdGenerator.nextId(),this._decorations=this._editor.createDecorationsCollection(),this._color=null,this._height=-1}dispose(){this.hide(),X.uN(this._ruleName)}set color(e){this._color!==e&&(this._color=e,this._updateStyle())}set height(e){this._height!==e&&(this._height=e,this._updateStyle())}_updateStyle(){X.uN(this._ruleName),X.fk(".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 !important; margin-left: -").concat(this._height,"px; "))}show(e){1===e.column&&(e={lineNumber:e.lineNumber,column:2}),this._decorations.set([{range:He.e.fromPositions(e),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}lr._IdGenerator=new or.R(".arrow-decoration-");class dr{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._viewZone=null,this._disposables=new Fe.SL,this.container=null,this._isShowing=!1,this.editor=e,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=Js.I8(t),Js.jB(this.options,sr,!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((e=>{const t=this._getWidth(e);this.domNode.style.width=t+"px",this.domNode.style.left=this._getLeft(e)+"px",this._onWidth(t)})))}dispose(){this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones((e=>{this._viewZone&&e.removeZone(this._viewZone.id),this._viewZone=null})),this._positionMarkerId.clear(),this._disposables.dispose()}create(){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 lr(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(e){e.frameColor&&(this.options.frameColor=e.frameColor),e.arrowColor&&(this.options.arrowColor=e.arrowColor),this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){const e=this.options.frameColor.toString();this.container.style.borderTopColor=e,this.container.style.borderBottomColor=e}if(this._arrow&&this.options.arrowColor){const e=this.options.arrowColor.toString();this._arrow.color=e}}_getWidth(e){return e.width-e.minimap.minimapWidth-e.verticalScrollbarWidth}_getLeft(e){return e.minimap.minimapWidth>0&&0===e.minimap.minimapLeft?e.minimap.minimapWidth:0}_onViewZoneTop(e){this.domNode.style.top=e+"px"}_onViewZoneHeight(e){var t;if(this.domNode.style.height="".concat(e,"px"),this.container){const t=e-this._decoratingElementsHeight();this.container.style.height="".concat(t,"px");const i=this.editor.getLayoutInfo();this._doLayout(t,this._getWidth(i))}null===(t=this._resizeSash)||void 0===t||t.layout()}get position(){const e=this._positionMarkerId.getRange(0);if(e)return e.getStartPosition()}show(e,t){const i=He.e.isIRange(e)?He.e.lift(e):He.e.fromPositions(e);this._isShowing=!0,this._showImpl(i,t),this._isShowing=!1,this._positionMarkerId.set([{range:i,options:Be.qx.EMPTY}])}hide(){var e;this._viewZone&&(this.editor.changeViewZones((e=>{this._viewZone&&e.removeZone(this._viewZone.id)})),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),null===(e=this._arrow)||void 0===e||e.hide(),this._positionMarkerId.clear()}_decoratingElementsHeight(){const e=this.editor.getOption(67);let t=0;if(this.options.showArrow){t+=2*Math.round(e/3)}if(this.options.showFrame){t+=2*Math.round(e/9)}return t}_showImpl(e,t){const i=e.getStartPosition(),o=this.editor.getLayoutInfo(),n=this._getWidth(o);this.domNode.style.width="".concat(n,"px"),this.domNode.style.left=this._getLeft(o)+"px";const s=document.createElement("div");s.style.overflow="hidden";const r=this.editor.getOption(67);if(!this.options.allowUnlimitedHeight){const e=Math.max(12,this.editor.getLayoutInfo().height/r*.8);t=Math.min(t,e)}let a=0,l=0;if(this._arrow&&this.options.showArrow&&(a=Math.round(r/3),this._arrow.height=a,this._arrow.show(i)),this.options.showFrame&&(l=Math.round(r/9)),this.editor.changeViewZones((e=>{this._viewZone&&e.removeZone(this._viewZone.id),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this.domNode.style.top="-1000px",this._viewZone=new rr(s,i.lineNumber,i.column,t,(e=>this._onViewZoneTop(e)),(e=>this._onViewZoneHeight(e)),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=e.addZone(this._viewZone),this._overlayWidget=new ar("vs.editor.contrib.zoneWidget"+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)})),this.container&&this.options.showFrame){const e=this.options.frameWidth?this.options.frameWidth:l;this.container.style.borderTopWidth=e+"px",this.container.style.borderBottomWidth=e+"px"}const d=t*r-this._decoratingElementsHeight();this.container&&(this.container.style.top=a+"px",this.container.style.height=d+"px",this.container.style.overflow="hidden"),this._doLayout(d,n),this.options.keepEditorSelection||this.editor.setSelection(e);const c=this.editor.getModel();if(c){const t=c.validateRange(new He.e(e.startLineNumber,1,e.endLineNumber+1,1));this.revealRange(t,t.startLineNumber===c.getLineCount())}}revealRange(e,t){t?this.editor.revealLineNearTop(e.endLineNumber,0):this.editor.revealRange(e,0)}setCssClass(e,t){this.container&&(t&&this.container.classList.remove(t),this.container.classList.add(e))}_onWidth(e){}_doLayout(e,t){}_relayout(e){this._viewZone&&this._viewZone.heightInLines!==e&&this.editor.changeViewZones((t=>{this._viewZone&&(this._viewZone.heightInLines=e,t.layoutZone(this._viewZone.id))}))}_initSash(){if(this._resizeSash)return;let e;this._resizeSash=this._disposables.add(new ir.g(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.state=0),this._disposables.add(this._resizeSash.onDidStart((t=>{this._viewZone&&(e={startY:t.startY,heightInLines:this._viewZone.heightInLines})}))),this._disposables.add(this._resizeSash.onDidEnd((()=>{e=void 0}))),this._disposables.add(this._resizeSash.onDidChange((t=>{if(e){const i=(t.currentY-e.startY)/this.editor.getOption(67),o=i<0?Math.ceil(i):Math.floor(i),n=e.heightInLines+o;n>5&&n<35&&this._relayout(n)}})))}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(null===this.domNode.style.height?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){const e=this.editor.getLayoutInfo();return e.width-e.minimap.minimapWidth}}var cr=i(69833),hr=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ur=function(e,t){return function(i,o){t(i,o,e)}};const gr=(0,ni.yh)("IPeekViewService");var pr;(0,Zo.z)(gr,class{constructor(){this._widgets=new Map}addExclusiveWidget(e,t){const i=this._widgets.get(e);i&&(i.listener.dispose(),i.widget.dispose());this._widgets.set(e,{widget:t,listener:t.onDidClose((()=>{const i=this._widgets.get(e);i&&i.widget===t&&(i.listener.dispose(),this._widgets.delete(e))}))})}},1),function(e){e.inPeekEditor=new ae.uy("inReferenceSearchEditor",!0,ne.NC("inReferenceSearchEditor","Whether the current code editor is embedded inside peek")),e.notInPeekEditor=e.inPeekEditor.toNegated()}(pr||(pr={}));let mr=class{constructor(e,t){e instanceof tr&&pr.inPeekEditor.bindTo(t)}dispose(){}};mr.ID="editor.contrib.referenceController",mr=hr([ur(1,ae.i6)],mr),(0,ee._K)(mr.ID,mr,0);const _r={headerBackgroundColor:Zn.Il.white,primaryHeadingColor:Zn.Il.fromHex("#333333"),secondaryHeadingColor:Zn.Il.fromHex("#6c6c6cb3")};let fr=class extends dr{constructor(e,t,i){super(e,t),this.instantiationService=i,this._onDidClose=new ui.Q5,this.onDidClose=this._onDidClose.event,Js.jB(this.options,_r,!1)}dispose(){this.disposed||(this.disposed=!0,super.dispose(),this._onDidClose.fire(this))}style(e){const t=this.options;e.headerBackgroundColor&&(t.headerBackgroundColor=e.headerBackgroundColor),e.primaryHeadingColor&&(t.primaryHeadingColor=e.primaryHeadingColor),e.secondaryHeadingColor&&(t.secondaryHeadingColor=e.secondaryHeadingColor),super.style(e)}_applyStyles(){super._applyStyles();const 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())}_fillContainer(e){this.setCssClass("peekview-widget"),this._headElement=X.$(".head"),this._bodyElement=X.$(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),e.appendChild(this._headElement),e.appendChild(this._bodyElement)}_fillHead(e,t){this._titleElement=X.$(".peekview-title"),this.options.supportOnTitleClick&&(this._titleElement.classList.add("clickable"),X.mu(this._titleElement,"click",(e=>this._onTitleClick(e)))),X.R3(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=X.$("span.filename"),this._secondaryHeading=X.$("span.dirname"),this._metaHeading=X.$("span.meta"),X.R3(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);const i=X.$(".peekview-actions");X.R3(this._headElement,i);const o=this._getActionBarOptions();this._actionbarWidget=new Eo.o(i,o),this._disposables.add(this._actionbarWidget),t||this._actionbarWidget.push(new Ni.aU("peekview.close",ne.NC("label.close","Close"),oi.k.asClassName($.l.close),!0,(()=>(this.dispose(),Promise.resolve()))),{label:!1,icon:!0})}_fillTitleIcon(e){}_getActionBarOptions(){return{actionViewItemProvider:cr.Id.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(e){}setTitle(e,t){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=e,this._primaryHeading.setAttribute("title",e),t?this._secondaryHeading.innerText=t:X.PO(this._secondaryHeading))}setMetaTitle(e){this._metaHeading&&(e?(this._metaHeading.innerText=e,X.$Z(this._metaHeading)):X.Cp(this._metaHeading))}_doLayout(e,t){if(!this._isShowing&&e<0)return void this.dispose();const i=Math.ceil(1.2*this.editor.getOption(67)),o=Math.round(e-(i+2));this._doLayoutHead(i,t),this._doLayoutBody(o,t)}_doLayoutHead(e,t){this._headElement&&(this._headElement.style.height="".concat(e,"px"),this._headElement.style.lineHeight=this._headElement.style.height)}_doLayoutBody(e,t){this._bodyElement&&(this._bodyElement.style.height="".concat(e,"px"))}};fr=hr([ur(2,ni.TG)],fr);const vr=(0,ze.P6G)("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:Zn.Il.black,hcLight:Zn.Il.white},ne.NC("peekViewTitleBackground","Background color of the peek view title area.")),br=(0,ze.P6G)("peekViewTitleLabel.foreground",{dark:Zn.Il.white,light:Zn.Il.black,hcDark:Zn.Il.white,hcLight:ze.NOs},ne.NC("peekViewTitleForeground","Color of the peek view title.")),Cr=(0,ze.P6G)("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},ne.NC("peekViewTitleInfoForeground","Color of the peek view title info.")),Sr=(0,ze.P6G)("peekView.border",{dark:ze.c63,light:ze.c63,hcDark:ze.lRK,hcLight:ze.lRK},ne.NC("peekViewBorder","Color of the peek view borders and arrow.")),yr=(0,ze.P6G)("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:Zn.Il.black,hcLight:Zn.Il.white},ne.NC("peekViewResultsBackground","Background color of the peek view result list.")),wr=((0,ze.P6G)("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:Zn.Il.white,hcLight:ze.NOs},ne.NC("peekViewResultsMatchForeground","Foreground color for line nodes in the peek view result list.")),(0,ze.P6G)("peekViewResult.fileForeground",{dark:Zn.Il.white,light:"#1E1E1E",hcDark:Zn.Il.white,hcLight:ze.NOs},ne.NC("peekViewResultsFileForeground","Foreground color for file nodes in the peek view result list.")),(0,ze.P6G)("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},ne.NC("peekViewResultsSelectionBackground","Background color of the selected entry in the peek view result list.")),(0,ze.P6G)("peekViewResult.selectionForeground",{dark:Zn.Il.white,light:"#6C6C6C",hcDark:Zn.Il.white,hcLight:ze.NOs},ne.NC("peekViewResultsSelectionForeground","Foreground color of the selected entry in the peek view result list.")),(0,ze.P6G)("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:Zn.Il.black,hcLight:Zn.Il.white},ne.NC("peekViewEditorBackground","Background color of the peek view editor.")));(0,ze.P6G)("peekViewEditorGutter.background",{dark:wr,light:wr,hcDark:wr,hcLight:wr},ne.NC("peekViewEditorGutterBackground","Background color of the gutter in the peek view editor.")),(0,ze.P6G)("peekViewEditorStickyScroll.background",{dark:wr,light:wr,hcDark:wr,hcLight:wr},ne.NC("peekViewEditorStickScrollBackground","Background color of sticky scroll in the peek view editor.")),(0,ze.P6G)("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},ne.NC("peekViewResultsMatchHighlight","Match highlight color in the peek view result list.")),(0,ze.P6G)("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},ne.NC("peekViewEditorMatchHighlight","Match highlight color in the peek view editor.")),(0,ze.P6G)("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:ze.xL1,hcLight:ze.xL1},ne.NC("peekViewEditorMatchHighlightBorder","Match highlight border in the peek view editor."));var xr=i(20411),Nr=i(86728),Lr=i(51927);class kr{constructor(e,t,i,o){this.isProviderFirst=e,this.parent=t,this.link=i,this._rangeCallback=o,this.id=or.a.nextId()}get uri(){return this.link.uri}get range(){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 range(e){this._range=e,this._rangeCallback(this)}get ariaMessage(){var e;const t=null===(e=this.parent.getPreview(this))||void 0===e?void 0:e.preview(this.range);return t?(0,ne.NC)({key:"aria.oneReference.preview",comment:["Placeholders are: 0: filename, 1:line number, 2: column number, 3: preview snippet of source code"]},"{0} in {1} on line {2} at column {3}",t.value,(0,It.EZ)(this.uri),this.range.startLineNumber,this.range.startColumn):(0,ne.NC)("aria.oneReference","in {0} on line {1} at column {2}",(0,It.EZ)(this.uri),this.range.startLineNumber,this.range.startColumn)}}class Dr{constructor(e){this._modelReference=e}dispose(){this._modelReference.dispose()}preview(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;const i=this._modelReference.object.textEditorModel;if(!i)return;const{startLineNumber:o,startColumn:n,endLineNumber:s,endColumn:r}=e,a=i.getWordUntilPosition({lineNumber:o,column:n-t}),l=new He.e(o,a.startColumn,o,n),d=new He.e(s,r,s,1073741824),c=i.getValueInRange(l).replace(/^\s+/,""),h=i.getValueInRange(e);return{value:c+h+i.getValueInRange(d).replace(/\s+$/,""),highlight:{start:c.length,end:c.length+h.length}}}}class Ir{constructor(e,t){this.parent=e,this.uri=t,this.children=[],this._previews=new Pn.Y9}dispose(){(0,Fe.B9)(this._previews.values()),this._previews.clear()}getPreview(e){return this._previews.get(e.uri)}get ariaMessage(){const e=this.children.length;return 1===e?(0,ne.NC)("aria.fileReferences.1","1 symbol in {0}, full path {1}",(0,It.EZ)(this.uri),this.uri.fsPath):(0,ne.NC)("aria.fileReferences.N","{0} symbols in {1}, full path {2}",e,(0,It.EZ)(this.uri),this.uri.fsPath)}async resolve(e){if(0!==this._previews.size)return this;for(const i of this.children)if(!this._previews.has(i.uri))try{const t=await e.createModelReference(i.uri);this._previews.set(i.uri,new Dr(t))}catch(t){(0,Ji.dL)(t)}return this}}class Rr{constructor(e,t){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new ui.Q5,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=e,this._title=t;const[i]=e;let o;e.sort(Rr._compareReferences);for(const n of e)if(o&&It.SF.isEqual(o.uri,n.uri,!0)||(o=new Ir(this,n.uri),this.groups.push(o)),0===o.children.length||0!==Rr._compareReferences(n,o.children[o.children.length-1])){const e=new kr(i===n,o,n,(e=>this._onDidChangeReferenceRange.fire(e)));this.references.push(e),o.children.push(e)}}dispose(){(0,Fe.B9)(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new Rr(this._links,this._title)}get title(){return this._title}get isEmpty(){return 0===this.groups.length}get ariaMessage(){return this.isEmpty?(0,ne.NC)("aria.result.0","No results found"):1===this.references.length?(0,ne.NC)("aria.result.1","Found 1 symbol in {0}",this.references[0].uri.fsPath):1===this.groups.length?(0,ne.NC)("aria.result.n1","Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):(0,ne.NC)("aria.result.nm","Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(e,t){const{parent:i}=e;let o=i.children.indexOf(e);const n=i.children.length,s=i.parent.groups.length;return 1===s||t&&o+1<n||!t&&o>0?(o=t?(o+1)%n:(o+n-1)%n,i.children[o]):(o=i.parent.groups.indexOf(i),t?(o=(o+1)%s,i.parent.groups[o].children[0]):(o=(o+s-1)%s,i.parent.groups[o].children[i.parent.groups[o].children.length-1]))}nearestReference(e,t){const i=this.references.map(((i,o)=>({idx:o,prefixLen:ii.Mh(i.uri.toString(),e.toString()),offsetDist:100*Math.abs(i.range.startLineNumber-t.lineNumber)+Math.abs(i.range.startColumn-t.column)}))).sort(((e,t)=>e.prefixLen>t.prefixLen?-1:e.prefixLen<t.prefixLen?1:e.offsetDist<t.offsetDist?-1:e.offsetDist>t.offsetDist?1:0))[0];if(i)return this.references[i.idx]}referenceAt(e,t){for(const i of this.references)if(i.uri.toString()===e.toString()&&He.e.containsPosition(i.range,t))return i}firstReference(){for(const e of this.references)if(e.isProviderFirst)return e;return this.references[0]}static _compareReferences(e,t){return It.SF.compare(e.uri,t.uri)||He.e.compareRangesUsingStarts(e.range,t.range)}}var Pr,Mr=i(45660),Tr=i(68150),Er=i(87699),Ar=i(81878),Or=i(25938),Fr=i(66835),Wr=i(82611),Hr=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Vr=function(e,t){return function(i,o){t(i,o,e)}};let Br=class{constructor(e){this._resolverService=e}hasChildren(e){return e instanceof Rr||e instanceof Ir}getChildren(e){if(e instanceof Rr)return e.groups;if(e instanceof Ir)return e.resolve(this._resolverService).then((e=>e.children));throw new Error("bad tree")}};Br=Hr([Vr(0,Ks.S)],Br);class zr{getHeight(){return 23}getTemplateId(e){return e instanceof Ir?qr.id:Qr.id}}let Ur=class{constructor(e){this._keybindingService=e}getKeyboardNavigationLabel(e){var t;if(e instanceof kr){const i=null===(t=e.parent.getPreview(e))||void 0===t?void 0:t.preview(e.range);if(i)return i.value}return(0,It.EZ)(e.uri)}};Ur=Hr([Vr(0,ki.d)],Ur);class Kr{getId(e){return e instanceof kr?e.id:e.uri}}let jr=class extends Fe.JT{constructor(e,t){super(),this._labelService=t;const i=document.createElement("div");i.classList.add("reference-file"),this.file=this._register(new Or.g(i,{supportHighlights:!0})),this.badge=new Er.Z(X.R3(i,X.$(".count")),{},Fo.ku),e.appendChild(i)}set(e,t){const i=(0,It.XX)(e.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(e.uri),this._labelService.getUriLabel(i,{relative:!0}),{title:this._labelService.getUriLabel(e.uri),matches:t});const o=e.children.length;this.badge.setCount(o),o>1?this.badge.setTitleFormat((0,ne.NC)("referencesCount","{0} references",o)):this.badge.setTitleFormat((0,ne.NC)("referenceCount","{0} reference",o))}};jr=Hr([Vr(1,Wr.e)],jr);let qr=Pr=class{constructor(e){this._instantiationService=e,this.templateId=Pr.id}renderTemplate(e){return this._instantiationService.createInstance(jr,e)}renderElement(e,t,i){i.set(e.element,(0,Fr.mB)(e.filterData))}disposeTemplate(e){e.dispose()}};qr.id="FileReferencesRenderer",qr=Pr=Hr([Vr(0,ni.TG)],qr);class Gr extends Fe.JT{constructor(e){super(),this.label=this._register(new Ar.q(e))}set(e,t){var i;const o=null===(i=e.parent.getPreview(e))||void 0===i?void 0:i.preview(e.range);if(o&&o.value){const{value:e,highlight:i}=o;t&&!Fr.CL.isDefault(t)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(e,(0,Fr.mB)(t))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(e,[i]))}else this.label.set("".concat((0,It.EZ)(e.uri),":").concat(e.range.startLineNumber+1,":").concat(e.range.startColumn+1))}}class Qr{constructor(){this.templateId=Qr.id}renderTemplate(e){return new Gr(e)}renderElement(e,t,i){i.set(e.element,e.filterData)}disposeTemplate(e){e.dispose()}}Qr.id="OneReferenceRenderer";class Zr{getWidgetAriaLabel(){return(0,ne.NC)("treeAriaLabel","References")}getAriaLabel(e){return e.ariaMessage}}var Yr=i(96484),Jr=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},$r=function(e,t){return function(i,o){t(i,o,e)}};class Xr{constructor(e,t){this._editor=e,this._model=t,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new Fe.SL,this._callOnModelChange=new Fe.SL,this._callOnDispose.add(this._editor.onDidChangeModel((()=>this._onModelChanged()))),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();const e=this._editor.getModel();if(e)for(const t of this._model.references)if(t.uri.toString()===e.uri.toString())return void this._addDecorations(t.parent)}_addDecorations(e){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations((()=>this._onDecorationChanged())));const t=[],i=[];for(let o=0,n=e.children.length;o<n;o++){const n=e.children[o];this._decorationIgnoreSet.has(n.id)||n.uri.toString()===this._editor.getModel().uri.toString()&&(t.push({range:n.range,options:Xr.DecorationOptions}),i.push(o))}this._editor.changeDecorations((o=>{const n=o.deltaDecorations([],t);for(let t=0;t<n.length;t++)this._decorations.set(n[t],e.children[i[t]])}))}_onDecorationChanged(){const e=[],t=this._editor.getModel();if(t){for(const[i,o]of this._decorations){const n=t.getDecorationRange(i);if(!n)continue;let s=!1;if(!He.e.equalsRange(n,o.range)){if(He.e.spansMultipleLines(n))s=!0;else{o.range.endColumn-o.range.startColumn!==n.endColumn-n.startColumn&&(s=!0)}s?(this._decorationIgnoreSet.add(o.id),e.push(i)):o.range=n}}for(let t=0,i=e.length;t<i;t++)this._decorations.delete(e[t]);this._editor.removeDecorations(e)}}removeDecorations(){this._editor.removeDecorations([...this._decorations.keys()]),this._decorations.clear()}}Xr.DecorationOptions=Be.qx.register({description:"reference-decoration",stickiness:1,className:"reference-decoration"});class ea{constructor(){this.ratio=.7,this.heightInLines=18}static fromJSON(e){let t,i;try{const o=JSON.parse(e);t=o.ratio,i=o.heightInLines}catch(wa){}return{ratio:t||.7,heightInLines:i||18}}}class ta extends Lr.ls{}let ia=class extends fr{constructor(e,t,i,o,n,s,r,a,l,d,c,h){super(e,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0,supportOnTitleClick:!0},s),this._defaultTreeKeyboardSupport=t,this.layoutData=i,this._textModelResolverService=n,this._instantiationService=s,this._peekViewService=r,this._uriLabel=a,this._undoRedoService=l,this._keybindingService=d,this._languageService=c,this._languageConfigurationService=h,this._disposeOnNewModel=new Fe.SL,this._callOnDispose=new Fe.SL,this._onDidSelectReference=new ui.Q5,this.onDidSelectReference=this._onDidSelectReference.event,this._dim=new X.Ro(0,0),this._applyTheme(o.getColorTheme()),this._callOnDispose.add(o.onDidColorThemeChange(this._applyTheme.bind(this))),this._peekViewService.addExclusiveWidget(e,this),this.create()}dispose(){this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),(0,Fe.B9)(this._preview),(0,Fe.B9)(this._previewNotAvailableMessage),(0,Fe.B9)(this._tree),(0,Fe.B9)(this._previewModelReference),this._splitView.dispose(),super.dispose()}_applyTheme(e){const t=e.getColor(Sr)||Zn.Il.transparent;this.style({arrowColor:t,frameColor:t,headerBackgroundColor:e.getColor(vr)||Zn.Il.transparent,primaryHeadingColor:e.getColor(br),secondaryHeadingColor:e.getColor(Cr)})}show(e){super.show(e,this.layoutData.heightInLines||18)}focusOnReferenceTree(){this._tree.domFocus()}focusOnPreviewEditor(){this._preview.focus()}isPreviewEditorFocused(){return this._preview.hasTextFocus()}_onTitleClick(e){this._preview&&this._preview.getModel()&&this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:e.ctrlKey||e.metaKey||e.altKey?"side":"open",source:"title"})}_fillBody(e){this.setCssClass("reference-zone-widget"),this._messageContainer=X.R3(e,X.$("div.messages")),X.Cp(this._messageContainer),this._splitView=new Mr.z(e,{orientation:1}),this._previewContainer=X.R3(e,X.$("div.preview.inline"));this._preview=this._instantiationService.createInstance(tr,this._previewContainer,{scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:14,horizontal:"auto",useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,alwaysConsumeMouseWheel:!0},overviewRulerLanes:2,fixedOverflowWidgets:!0,minimap:{enabled:!1}},{},this.editor),X.Cp(this._previewContainer),this._previewNotAvailableMessage=new Be.yO(ne.NC("missingPreviewMessage","no preview available"),Tr.bd,Be.yO.DEFAULT_CREATION_OPTIONS,null,this._undoRedoService,this._languageService,this._languageConfigurationService),this._treeContainer=X.R3(e,X.$("div.ref-tree.inline"));const t={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new Zr,keyboardNavigationLabelProvider:this._instantiationService.createInstance(Ur),identityProvider:new Kr,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:yr}};this._defaultTreeKeyboardSupport&&this._callOnDispose.add(X.mu(this._treeContainer,"keydown",(e=>{e.equals(9)&&(this._keybindingService.dispatchEvent(e,e.target),e.stopPropagation())}),!0)),this._tree=this._instantiationService.createInstance(ta,"ReferencesWidget",this._treeContainer,new zr,[this._instantiationService.createInstance(qr),this._instantiationService.createInstance(Qr)],this._instantiationService.createInstance(Br),t),this._splitView.addView({onDidChange:ui.ju.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:e=>{this._preview.layout({height:this._dim.height,width:e})}},Mr.M.Distribute),this._splitView.addView({onDidChange:ui.ju.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:e=>{this._treeContainer.style.height="".concat(this._dim.height,"px"),this._treeContainer.style.width="".concat(e,"px"),this._tree.layout(this._dim.height,e)}},Mr.M.Distribute),this._disposables.add(this._splitView.onDidSashChange((()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)}),void 0));const i=(e,t)=>{e instanceof kr&&("show"===t&&this._revealReference(e,!1),this._onDidSelectReference.fire({element:e,kind:t,source:"tree"}))};this._tree.onDidOpen((e=>{e.sideBySide?i(e.element,"side"):e.editorOptions.pinned?i(e.element,"goto"):i(e.element,"show")})),X.Cp(this._treeContainer)}_onWidth(e){this._dim&&this._doLayoutBody(this._dim.height,e)}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._dim=new X.Ro(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)}setSelection(e){return this._revealReference(e,!0).then((()=>{this._model&&(this._tree.setSelection([e]),this._tree.setFocus([e]))}))}setModel(e){return this._disposeOnNewModel.clear(),this._model=e,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=ne.NC("noResults","No results"),X.$Z(this._messageContainer),Promise.resolve(void 0)):(X.Cp(this._messageContainer),this._decorationsManager=new Xr(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange((e=>this._tree.rerender(e)))),this._disposeOnNewModel.add(this._preview.onMouseDown((e=>{const{event:t,target:i}=e;if(2!==t.detail)return;const o=this._getFocusedReference();o&&this._onDidSelectReference.fire({element:{uri:o.uri,range:i.range},kind:t.ctrlKey||t.metaKey||t.altKey?"side":"open",source:"editor"})}))),this.container.classList.add("results-loaded"),X.$Z(this._treeContainer),X.$Z(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)}_getFocusedReference(){const[e]=this._tree.getFocus();return e instanceof kr?e:e instanceof Ir&&e.children.length>0?e.children[0]:void 0}async revealReference(e){await this._revealReference(e,!1),this._onDidSelectReference.fire({element:e,kind:"goto",source:"tree"})}async _revealReference(e,t){if(this._revealedReference===e)return;this._revealedReference=e,e.uri.scheme!==Dt.lg.inMemory?this.setTitle((0,It.Hx)(e.uri),this._uriLabel.getUriLabel((0,It.XX)(e.uri))):this.setTitle(ne.NC("peekView.alternateTitle","References"));const i=this._textModelResolverService.createModelReference(e.uri);this._tree.getInput()===e.parent||(t&&this._tree.reveal(e.parent),await this._tree.expand(e.parent)),this._tree.reveal(e);const o=await i;if(!this._model)return void o.dispose();(0,Fe.B9)(this._previewModelReference);const n=o.object;if(n){const t=this._preview.getModel()===n.textEditorModel?0:1,i=He.e.lift(e.range).collapseToStart();this._previewModelReference=o,this._preview.setModel(n.textEditorModel),this._preview.setSelection(i),this._preview.revealRangeInCenter(i,t)}else this._preview.setModel(this._previewNotAvailableMessage),o.dispose()}};ia=Jr([$r(3,Ue.XE),$r(4,Ks.S),$r(5,ni.TG),$r(6,gr),$r(7,Wr.e),$r(8,Yr.tJ),$r(9,ki.d),$r(10,Us.O),$r(11,Xn.c_)],ia);var oa,na=i(57341),sa=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ra=function(e,t){return function(i,o){t(i,o,e)}};const aa=new ae.uy("referenceSearchVisible",!1,ne.NC("referenceSearchVisible","Whether reference peek is visible, like 'Peek References' or 'Peek Definition'"));let la=oa=class{static get(e){return e.getContribution(oa.ID)}constructor(e,t,i,o,n,s,r,a){this._defaultTreeKeyboardSupport=e,this._editor=t,this._editorService=o,this._notificationService=n,this._instantiationService=s,this._storageService=r,this._configurationService=a,this._disposables=new Fe.SL,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=aa.bindTo(i)}dispose(){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}toggleWidget(e,t,i){let o;if(this._widget&&(o=this._widget.position),this.closeWidget(),o&&e.containsPosition(o))return;this._peekMode=i,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage((()=>{this.closeWidget()}))),this._disposables.add(this._editor.onDidChangeModel((()=>{this._ignoreModelChangeEvent||this.closeWidget()})));const n="peekViewLayout",s=ea.fromJSON(this._storageService.get(n,0,"{}"));this._widget=this._instantiationService.createInstance(ia,this._editor,this._defaultTreeKeyboardSupport,s),this._widget.setTitle(ne.NC("labelLoading","Loading...")),this._widget.show(e),this._disposables.add(this._widget.onDidClose((()=>{t.cancel(),this._widget&&(this._storageService.store(n,JSON.stringify(this._widget.layoutData),0,1),this._widget=void 0),this.closeWidget()}))),this._disposables.add(this._widget.onDidSelectReference((e=>{const{element:t,kind:o}=e;if(t)switch(o){case"open":"editor"===e.source&&this._configurationService.getValue("editor.stablePeek")||this.openReference(t,!1,!1);break;case"side":this.openReference(t,!0,!1);break;case"goto":i?this._gotoReference(t,!0):this.openReference(t,!1,!0)}})));const r=++this._requestIdPool;t.then((t=>{var i;if(r===this._requestIdPool&&this._widget)return null===(i=this._model)||void 0===i||i.dispose(),this._model=t,this._widget.setModel(this._model).then((()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(""):this._widget.setMetaTitle(ne.NC("metaTitle.N","{0} ({1})",this._model.title,this._model.references.length));const t=this._editor.getModel().uri,i=new We.L(e.startLineNumber,e.startColumn),o=this._model.nearestReference(t,i);if(o)return this._widget.setSelection(o).then((()=>{this._widget&&"editor"===this._editor.getOption(87)&&this._widget.focusOnPreviewEditor()}))}}));t.dispose()}),(e=>{this._notificationService.error(e)}))}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}async goToNextOrPreviousReference(e){if(!this._editor.hasModel()||!this._model||!this._widget)return;const t=this._widget.position;if(!t)return;const i=this._model.nearestReference(this._editor.getModel().uri,t);if(!i)return;const o=this._model.nextOrPreviousReference(i,e),n=this._editor.hasTextFocus(),s=this._widget.isPreviewEditorFocused();await this._widget.setSelection(o),await this._gotoReference(o,!1),n?this._editor.focus():this._widget&&s&&this._widget.focusOnPreviewEditor()}async revealReference(e){this._editor.hasModel()&&this._model&&this._widget&&await this._widget.revealReference(e)}closeWidget(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];var t,i;null===(t=this._widget)||void 0===t||t.dispose(),null===(i=this._model)||void 0===i||i.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,e&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(e,t){var i;null===(i=this._widget)||void 0===i||i.hide(),this._ignoreModelChangeEvent=!0;const o=He.e.lift(e.range).collapseToStart();return this._editorService.openCodeEditor({resource:e.uri,options:{selection:o,selectionSource:"code.jump",pinned:t}},this._editor).then((e=>{var t;if(this._ignoreModelChangeEvent=!1,e&&this._widget)if(this._editor===e)this._widget.show(o),this._widget.focusOnReferenceTree();else{const i=oa.get(e),n=this._model.clone();this.closeWidget(),e.focus(),null===i||void 0===i||i.toggleWidget(o,(0,Oe.PG)((e=>Promise.resolve(n))),null!==(t=this._peekMode)&&void 0!==t&&t)}else this.closeWidget()}),(e=>{this._ignoreModelChangeEvent=!1,(0,Ji.dL)(e)}))}openReference(e,t,i){t||this.closeWidget();const{uri:o,range:n}=e;this._editorService.openCodeEditor({resource:o,options:{selection:n,selectionSource:"code.jump",pinned:i}},this._editor,t)}};function da(e,t){const i=function(e){const t=e.get(te.$).getFocusedCodeEditor();return t instanceof tr?t.getParentEditor():t}(e);if(!i)return;const o=la.get(i);o&&t(o)}la.ID="editor.contrib.referencesController",la=oa=sa([ra(2,ae.i6),ra(3,te.$),ra(4,Xi.lT),ra(5,ni.TG),ra(6,Mn.Uy),ra(7,re.Ui)],la),Nr.W.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:(0,Le.gx)(2089,60),when:ae.Ao.or(aa,pr.inPeekEditor),handler(e){da(e,(e=>{e.changeFocusBetweenPreviewAndReferences()}))}}),Nr.W.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:ae.Ao.or(aa,pr.inPeekEditor),handler(e){da(e,(e=>{e.goToNextOrPreviousReference(!0)}))}}),Nr.W.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:ae.Ao.or(aa,pr.inPeekEditor),handler(e){da(e,(e=>{e.goToNextOrPreviousReference(!1)}))}}),ye.P.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference"),ye.P.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference"),ye.P.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch"),ye.P.registerCommand("closeReferenceSearch",(e=>da(e,(e=>e.closeWidget())))),Nr.W.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:ae.Ao.and(pr.inPeekEditor,ae.Ao.not("config.editor.stablePeek"))}),Nr.W.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:ae.Ao.and(aa,ae.Ao.not("config.editor.stablePeek"),ae.Ao.or(oe.u.editorTextFocus,na.Ul.negate()))}),Nr.W.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:ae.Ao.and(aa,Lr.CQ,Lr.PS.negate(),Lr.uJ.negate()),handler(e){var t;const i=null===(t=e.get(Lr.Lw).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(i)&&i[0]instanceof kr&&da(e,(e=>e.revealReference(i[0])))}}),Nr.W.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:ae.Ao.and(aa,Lr.CQ,Lr.PS.negate(),Lr.uJ.negate()),handler(e){var t;const i=null===(t=e.get(Lr.Lw).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(i)&&i[0]instanceof kr&&da(e,(e=>e.openReference(i[0],!0,!0)))}}),ye.P.registerCommand("openReference",(e=>{var t;const i=null===(t=e.get(Lr.Lw).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(i)&&i[0]instanceof kr&&da(e,(e=>e.openReference(i[0],!1,!0)))}));var ca=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ha=function(e,t){return function(i,o){t(i,o,e)}};const ua=new ae.uy("hasSymbols",!1,(0,ne.NC)("hasSymbols","Whether there are symbol locations that can be navigated via keyboard-only.")),ga=(0,ni.yh)("ISymbolNavigationService");let pa=class{constructor(e,t,i,o){this._editorService=t,this._notificationService=i,this._keybindingService=o,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=ua.bindTo(e)}reset(){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}put(e){const t=e.parent.parent;if(t.references.length<=1)return void this.reset();this._currentModel=t,this._currentIdx=t.references.indexOf(e),this._ctxHasSymbols.set(!0),this._showMessage();const i=new ma(this._editorService),o=i.onDidChange((e=>{if(this._ignoreEditorChange)return;const i=this._editorService.getActiveCodeEditor();if(!i)return;const o=i.getModel(),n=i.getPosition();if(!o||!n)return;let s=!1,r=!1;for(const a of t.references)if((0,It.Xy)(a.uri,o.uri))s=!0,r=r||He.e.containsPosition(a.range,n);else if(s)break;s&&r||this.reset()}));this._currentState=(0,Fe.F8)(i,o)}revealNext(e){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;const t=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:t.uri,options:{selection:He.e.collapseToStart(t.range),selectionRevealType:3}},e).finally((()=>{this._ignoreEditorChange=!1}))}_showMessage(){var e;null===(e=this._currentMessage)||void 0===e||e.dispose();const t=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),i=t?(0,ne.NC)("location.kb","Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,t.getLabel()):(0,ne.NC)("location","Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(i)}};pa=ca([ha(0,ae.i6),ha(1,te.$),ha(2,Xi.lT),ha(3,ki.d)],pa),(0,Zo.z)(ga,pa,1),(0,ee.fK)(new class extends ee._l{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:ua,kbOpts:{weight:100,primary:70}})}runEditorCommand(e,t){return e.get(ga).revealNext(t)}}),Nr.W.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:ua,primary:9,handler(e){e.get(ga).reset()}});let ma=class{constructor(e){this._listener=new Map,this._disposables=new Fe.SL,this._onDidChange=new ui.Q5,this.onDidChange=this._onDidChange.event,this._disposables.add(e.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(e.onCodeEditorAdd(this._onDidAddEditor,this)),e.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),(0,Fe.B9)(this._listener.values())}_onDidAddEditor(e){this._listener.set(e,(0,Fe.F8)(e.onDidChangeCursorPosition((t=>this._onDidChange.fire({editor:e}))),e.onDidChangeModelContent((t=>this._onDidChange.fire({editor:e})))))}_onDidRemoveEditor(e){var t;null===(t=this._listener.get(e))||void 0===t||t.dispose(),this._listener.delete(e)}};async function _a(e,t,i,o){const n=i.ordered(e).map((i=>Promise.resolve(o(i,e,t)).then(void 0,(e=>{(0,Ji.Cp)(e)})))),s=await Promise.all(n);return(0,nt.kX)(s.flat())}function fa(e,t,i,o){return _a(t,i,e,((e,t,i)=>e.provideDefinition(t,i,o)))}function va(e,t,i,o){return _a(t,i,e,((e,t,i)=>e.provideDeclaration(t,i,o)))}function ba(e,t,i,o){return _a(t,i,e,((e,t,i)=>e.provideImplementation(t,i,o)))}function Ca(e,t,i,o){return _a(t,i,e,((e,t,i)=>e.provideTypeDefinition(t,i,o)))}function Sa(e,t,i,o,n){return _a(t,i,e,(async(e,t,i)=>{const s=await e.provideReferences(t,i,{includeDeclaration:!0},n);if(!o||!s||2!==s.length)return s;const r=await e.provideReferences(t,i,{includeDeclaration:!1},n);return r&&1===r.length?r:s}))}async function ya(e){const t=await e(),i=new Rr(t,""),o=i.references.map((e=>e.link));return i.dispose(),o}var wa,xa,Na,La,ka,Da,Ia,Ra;ma=ca([ha(0,te.$)],ma),(0,ee.sb)("_executeDefinitionProvider",((e,t,i)=>{const o=fa(e.get(kt.p).definitionProvider,t,i,Yi.T.None);return ya((()=>o))})),(0,ee.sb)("_executeTypeDefinitionProvider",((e,t,i)=>{const o=Ca(e.get(kt.p).typeDefinitionProvider,t,i,Yi.T.None);return ya((()=>o))})),(0,ee.sb)("_executeDeclarationProvider",((e,t,i)=>{const o=va(e.get(kt.p).declarationProvider,t,i,Yi.T.None);return ya((()=>o))})),(0,ee.sb)("_executeReferenceProvider",((e,t,i)=>{const o=Sa(e.get(kt.p).referenceProvider,t,i,!1,Yi.T.None);return ya((()=>o))})),(0,ee.sb)("_executeImplementationProvider",((e,t,i)=>{const o=ba(e.get(kt.p).implementationProvider,t,i,Yi.T.None);return ya((()=>o))})),se.BH.appendMenuItem(se.eH.EditorContext,{submenu:se.eH.EditorContextPeek,title:ne.NC("peek.submenu","Peek"),group:"navigation",order:100});class Pa{static is(e){return!(!e||"object"!==typeof e)&&(e instanceof Pa||!(!We.L.isIPosition(e.position)||!e.model))}constructor(e,t){this.model=e,this.position=t}}class Ma extends ee.x1{static all(){return Ma._allSymbolNavigationCommands.values()}static _patchConfig(e){const t={...e,f1:!0};if(t.menu)for(const i of st.$.wrap(t.menu))i.id!==se.eH.EditorContext&&i.id!==se.eH.EditorContextPeek||(i.when=ae.Ao.and(e.precondition,i.when));return t}constructor(e,t){super(Ma._patchConfig(t)),this.configuration=e,Ma._allSymbolNavigationCommands.set(t.id,this)}runEditorCommand(e,t,i,o){if(!t.hasModel())return Promise.resolve(void 0);const n=e.get(Xi.lT),s=e.get(te.$),r=e.get(yi.ek),a=e.get(ga),l=e.get(kt.p),d=e.get(ni.TG),c=t.getModel(),h=t.getPosition(),u=Pa.is(i)?i:new Pa(c,h),g=new ti.Dl(t,5),p=(0,Oe.eP)(this._getLocationModel(l,u.model,u.position,g.token),g.token).then((async e=>{var n;if(!e||g.token.isCancellationRequested)return;let r;if((0,xe.Z9)(e.ariaMessage),e.referenceAt(c.uri,h)){const e=this._getAlternativeCommand(t);!Ma._activeAlternativeCommands.has(e)&&Ma._allSymbolNavigationCommands.has(e)&&(r=Ma._allSymbolNavigationCommands.get(e))}const l=e.references.length;if(0===l){if(!this.configuration.muteMessage){const e=c.getWordAtPosition(h);null===(n=fi.get(t))||void 0===n||n.showMessage(this._getNoResultFoundMessage(e),h)}}else{if(1!==l||!r)return this._onResult(s,a,t,e,o);Ma._activeAlternativeCommands.add(this.desc.id),d.invokeFunction((e=>r.runEditorCommand(e,t,i,o).finally((()=>{Ma._activeAlternativeCommands.delete(this.desc.id)}))))}}),(e=>{n.error(e)})).finally((()=>{g.dispose()}));return r.showWhile(p,250),p}async _onResult(e,t,i,o,n){const s=this._getGoToPreference(i);if(i instanceof tr||!(this.configuration.openInPeek||"peek"===s&&o.references.length>1)){const r=o.firstReference(),a=o.references.length>1&&"gotoAndPeek"===s,l=await this._openReference(i,e,r,this.configuration.openToSide,!a);a&&l?this._openInPeek(l,o,n):o.dispose(),"goto"===s&&t.put(r)}else this._openInPeek(i,o,n)}async _openReference(e,t,i,o,n){let s;if((0,Lt.vx)(i)&&(s=i.targetSelectionRange),s||(s=i.range),!s)return;const r=await t.openCodeEditor({resource:i.uri,options:{selection:He.e.collapseToStart(s),selectionRevealType:3,selectionSource:"code.jump"}},e,o);if(r){if(n){const e=r.getModel(),t=r.createDecorationsCollection([{range:s,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout((()=>{r.getModel()===e&&t.clear()}),350)}return r}}_openInPeek(e,t,i){const o=la.get(e);o&&e.hasModel()?o.toggleWidget(null!==i&&void 0!==i?i:e.getSelection(),(0,Oe.PG)((e=>Promise.resolve(t))),this.configuration.openInPeek):t.dispose()}}Ma._allSymbolNavigationCommands=new Map,Ma._activeAlternativeCommands=new Set;class Ta extends Ma{async _getLocationModel(e,t,i,o){return new Rr(await fa(e.definitionProvider,t,i,o),ne.NC("def.title","Definitions"))}_getNoResultFoundMessage(e){return e&&e.word?ne.NC("noResultWord","No definition found for '{0}'",e.word):ne.NC("generic.noResults","No definition found")}_getAlternativeCommand(e){return e.getOption(58).alternativeDefinitionCommand}_getGoToPreference(e){return e.getOption(58).multipleDefinitions}}(0,se.r1)(((wa=class extends Ta{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:wa.id,title:{...ne.vv("actions.goToDecl.label","Go to Definition"),mnemonicTitle:ne.NC({key:"miGotoDefinition",comment:["&& denotes a mnemonic"]},"Go to &&Definition")},precondition:oe.u.hasDefinitionProvider,keybinding:[{when:oe.u.editorTextFocus,primary:70,weight:100},{when:ae.Ao.and(oe.u.editorTextFocus,na.Pf),primary:2118,weight:100}],menu:[{id:se.eH.EditorContext,group:"navigation",order:1.1},{id:se.eH.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]}),ye.P.registerCommandAlias("editor.action.goToDeclaration",wa.id)}}).id="editor.action.revealDefinition",wa)),(0,se.r1)(((xa=class extends Ta{constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:xa.id,title:ne.vv("actions.goToDeclToSide.label","Open Definition to the Side"),precondition:ae.Ao.and(oe.u.hasDefinitionProvider,oe.u.isInEmbeddedEditor.toNegated()),keybinding:[{when:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,70),weight:100},{when:ae.Ao.and(oe.u.editorTextFocus,na.Pf),primary:(0,Le.gx)(2089,2118),weight:100}]}),ye.P.registerCommandAlias("editor.action.openDeclarationToTheSide",xa.id)}}).id="editor.action.revealDefinitionAside",xa)),(0,se.r1)(((Na=class extends Ta{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:Na.id,title:ne.vv("actions.previewDecl.label","Peek Definition"),precondition:ae.Ao.and(oe.u.hasDefinitionProvider,pr.notInPeekEditor,oe.u.isInEmbeddedEditor.toNegated()),keybinding:{when:oe.u.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:se.eH.EditorContextPeek,group:"peek",order:2}}),ye.P.registerCommandAlias("editor.action.previewDeclaration",Na.id)}}).id="editor.action.peekDefinition",Na));class Ea extends Ma{async _getLocationModel(e,t,i,o){return new Rr(await va(e.declarationProvider,t,i,o),ne.NC("decl.title","Declarations"))}_getNoResultFoundMessage(e){return e&&e.word?ne.NC("decl.noResultWord","No declaration found for '{0}'",e.word):ne.NC("decl.generic.noResults","No declaration found")}_getAlternativeCommand(e){return e.getOption(58).alternativeDeclarationCommand}_getGoToPreference(e){return e.getOption(58).multipleDeclarations}}(0,se.r1)(((La=class extends Ea{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:La.id,title:{...ne.vv("actions.goToDeclaration.label","Go to Declaration"),mnemonicTitle:ne.NC({key:"miGotoDeclaration",comment:["&& denotes a mnemonic"]},"Go to &&Declaration")},precondition:ae.Ao.and(oe.u.hasDeclarationProvider,oe.u.isInEmbeddedEditor.toNegated()),menu:[{id:se.eH.EditorContext,group:"navigation",order:1.3},{id:se.eH.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(e){return e&&e.word?ne.NC("decl.noResultWord","No declaration found for '{0}'",e.word):ne.NC("decl.generic.noResults","No declaration found")}}).id="editor.action.revealDeclaration",La)),(0,se.r1)(class extends Ea{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:ne.vv("actions.peekDecl.label","Peek Declaration"),precondition:ae.Ao.and(oe.u.hasDeclarationProvider,pr.notInPeekEditor,oe.u.isInEmbeddedEditor.toNegated()),menu:{id:se.eH.EditorContextPeek,group:"peek",order:3}})}});class Aa extends Ma{async _getLocationModel(e,t,i,o){return new Rr(await Ca(e.typeDefinitionProvider,t,i,o),ne.NC("typedef.title","Type Definitions"))}_getNoResultFoundMessage(e){return e&&e.word?ne.NC("goToTypeDefinition.noResultWord","No type definition found for '{0}'",e.word):ne.NC("goToTypeDefinition.generic.noResults","No type definition found")}_getAlternativeCommand(e){return e.getOption(58).alternativeTypeDefinitionCommand}_getGoToPreference(e){return e.getOption(58).multipleTypeDefinitions}}(0,se.r1)(((ka=class extends Aa{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:ka.ID,title:{...ne.vv("actions.goToTypeDefinition.label","Go to Type Definition"),mnemonicTitle:ne.NC({key:"miGotoTypeDefinition",comment:["&& denotes a mnemonic"]},"Go to &&Type Definition")},precondition:oe.u.hasTypeDefinitionProvider,keybinding:{when:oe.u.editorTextFocus,primary:0,weight:100},menu:[{id:se.eH.EditorContext,group:"navigation",order:1.4},{id:se.eH.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}}).ID="editor.action.goToTypeDefinition",ka)),(0,se.r1)(((Da=class extends Aa{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:Da.ID,title:ne.vv("actions.peekTypeDefinition.label","Peek Type Definition"),precondition:ae.Ao.and(oe.u.hasTypeDefinitionProvider,pr.notInPeekEditor,oe.u.isInEmbeddedEditor.toNegated()),menu:{id:se.eH.EditorContextPeek,group:"peek",order:4}})}}).ID="editor.action.peekTypeDefinition",Da));class Oa extends Ma{async _getLocationModel(e,t,i,o){return new Rr(await ba(e.implementationProvider,t,i,o),ne.NC("impl.title","Implementations"))}_getNoResultFoundMessage(e){return e&&e.word?ne.NC("goToImplementation.noResultWord","No implementation found for '{0}'",e.word):ne.NC("goToImplementation.generic.noResults","No implementation found")}_getAlternativeCommand(e){return e.getOption(58).alternativeImplementationCommand}_getGoToPreference(e){return e.getOption(58).multipleImplementations}}(0,se.r1)(((Ia=class extends Oa{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:Ia.ID,title:{...ne.vv("actions.goToImplementation.label","Go to Implementations"),mnemonicTitle:ne.NC({key:"miGotoImplementation",comment:["&& denotes a mnemonic"]},"Go to &&Implementations")},precondition:oe.u.hasImplementationProvider,keybinding:{when:oe.u.editorTextFocus,primary:2118,weight:100},menu:[{id:se.eH.EditorContext,group:"navigation",order:1.45},{id:se.eH.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}}).ID="editor.action.goToImplementation",Ia)),(0,se.r1)(((Ra=class extends Oa{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:Ra.ID,title:ne.vv("actions.peekImplementation.label","Peek Implementations"),precondition:ae.Ao.and(oe.u.hasImplementationProvider,pr.notInPeekEditor,oe.u.isInEmbeddedEditor.toNegated()),keybinding:{when:oe.u.editorTextFocus,primary:3142,weight:100},menu:{id:se.eH.EditorContextPeek,group:"peek",order:5}})}}).ID="editor.action.peekImplementation",Ra));class Fa extends Ma{_getNoResultFoundMessage(e){return e?ne.NC("references.no","No references found for '{0}'",e.word):ne.NC("references.noGeneric","No references found")}_getAlternativeCommand(e){return e.getOption(58).alternativeReferenceCommand}_getGoToPreference(e){return e.getOption(58).multipleReferences}}(0,se.r1)(class extends Fa{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{...ne.vv("goToReferences.label","Go to References"),mnemonicTitle:ne.NC({key:"miGotoReference",comment:["&& denotes a mnemonic"]},"Go to &&References")},precondition:ae.Ao.and(oe.u.hasReferenceProvider,pr.notInPeekEditor,oe.u.isInEmbeddedEditor.toNegated()),keybinding:{when:oe.u.editorTextFocus,primary:1094,weight:100},menu:[{id:se.eH.EditorContext,group:"navigation",order:1.45},{id:se.eH.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(e,t,i,o){return new Rr(await Sa(e.referenceProvider,t,i,!0,o),ne.NC("ref.title","References"))}}),(0,se.r1)(class extends Fa{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:ne.vv("references.action.label","Peek References"),precondition:ae.Ao.and(oe.u.hasReferenceProvider,pr.notInPeekEditor,oe.u.isInEmbeddedEditor.toNegated()),menu:{id:se.eH.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(e,t,i,o){return new Rr(await Sa(e.referenceProvider,t,i,!1,o),ne.NC("ref.title","References"))}});class Wa extends Ma{constructor(e,t,i){super(e,{id:"editor.action.goToLocation",title:ne.vv("label.generic","Go to Any Symbol"),precondition:ae.Ao.and(pr.notInPeekEditor,oe.u.isInEmbeddedEditor.toNegated())}),this._references=t,this._gotoMultipleBehaviour=i}async _getLocationModel(e,t,i,o){return new Rr(this._references,ne.NC("generic.title","Locations"))}_getNoResultFoundMessage(e){return e&&ne.NC("generic.noResult","No results for '{0}'",e.word)||""}_getGoToPreference(e){var t;return null!==(t=this._gotoMultipleBehaviour)&&void 0!==t?t:e.getOption(58).multipleReferences}_getAlternativeCommand(){return""}}ye.P.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:_t.o},{name:"position",description:"The position at which to start",constraint:We.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:async(e,t,i,o,n,s,r)=>{(0,Dn.p_)(_t.o.isUri(t)),(0,Dn.p_)(We.L.isIPosition(i)),(0,Dn.p_)(Array.isArray(o)),(0,Dn.p_)("undefined"===typeof n||"string"===typeof n),(0,Dn.p_)("undefined"===typeof r||"boolean"===typeof r);const a=e.get(te.$),l=await a.openCodeEditor({resource:t},a.getFocusedCodeEditor());if((0,xr.CL)(l))return l.setPosition(i),l.revealPositionInCenterIfOutsideViewport(i,0),l.invokeWithinContext((e=>{const t=new class extends Wa{_getNoResultFoundMessage(e){return s||super._getNoResultFoundMessage(e)}}({muteMessage:!Boolean(s),openInPeek:Boolean(r),openToSide:!1},o,n);e.get(ni.TG).invokeFunction(t.run.bind(t),l)}))}}),ye.P.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:_t.o},{name:"position",description:"The position at which to start",constraint:We.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:async(e,t,i,o,n)=>{e.get(ye.H).executeCommand("editor.action.goToLocations",t,i,o,n,void 0,!0)}}),ye.P.registerCommand({id:"editor.action.findReferences",handler:(e,t,i)=>{(0,Dn.p_)(_t.o.isUri(t)),(0,Dn.p_)(We.L.isIPosition(i));const o=e.get(kt.p),n=e.get(te.$);return n.openCodeEditor({resource:t},n.getFocusedCodeEditor()).then((e=>{if(!(0,xr.CL)(e)||!e.hasModel())return;const t=la.get(e);if(!t)return;const n=(0,Oe.PG)((t=>Sa(o.referenceProvider,e.getModel(),We.L.lift(i),!1,t).then((e=>new Rr(e,ne.NC("ref.title","References")))))),s=new He.e(i.lineNumber,i.column,i.lineNumber,i.column);return Promise.resolve(t.toggleWidget(s,n,!1))}))}}),ye.P.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");var Ha,Va=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ba=function(e,t){return function(i,o){t(i,o,e)}};let za=Ha=class{constructor(e,t,i,o){this.textModelResolverService=t,this.languageService=i,this.languageFeaturesService=o,this.toUnhook=new Fe.SL,this.toUnhookForKeyboard=new Fe.SL,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=e,this.linkDecorations=this.editor.createDecorationsCollection();const n=new Ys(e);this.toUnhook.add(n),this.toUnhook.add(n.onMouseMoveOrRelevantKeyDown((e=>{let[t,i]=e;this.startFindDefinitionFromMouse(t,null!==i&&void 0!==i?i:void 0)}))),this.toUnhook.add(n.onExecute((e=>{this.isEnabled(e)&&this.gotoDefinition(e.target.position,e.hasSideBySideModifier).catch((e=>{(0,Ji.dL)(e)})).finally((()=>{this.removeLinkDecorations()}))}))),this.toUnhook.add(n.onCancel((()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null})))}static get(e){return e.getContribution(Ha.ID)}async startFindDefinitionFromCursor(e){await this.startFindDefinition(e),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition((()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()}))),this.toUnhookForKeyboard.add(this.editor.onKeyDown((e=>{e&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())})))}startFindDefinitionFromMouse(e,t){if(9===e.target.type&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(e,t))return this.currentWordAtPosition=null,void this.removeLinkDecorations();const i=e.target.position;this.startFindDefinition(i)}async startFindDefinition(e){var t;this.toUnhookForKeyboard.clear();const i=e?null===(t=this.editor.getModel())||void 0===t?void 0:t.getWordAtPosition(e):null;if(!i)return this.currentWordAtPosition=null,void this.removeLinkDecorations();if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===i.startColumn&&this.currentWordAtPosition.endColumn===i.endColumn&&this.currentWordAtPosition.word===i.word)return;this.currentWordAtPosition=i;const o=new ti.yy(this.editor,15);let n;this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=(0,Oe.PG)((t=>this.findDefinition(e,t)));try{n=await this.previousPromise}catch(r){return void(0,Ji.dL)(r)}if(!n||!n.length||!o.validate(this.editor))return void this.removeLinkDecorations();const s=n[0].originSelectionRange?He.e.lift(n[0].originSelectionRange):new He.e(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn);if(n.length>1){let e=s;for(const{originSelectionRange:t}of n)t&&(e=He.e.plusRange(e,t));this.addDecoration(e,(new Ne.W5).appendText(ne.NC("multipleResults","Click to show {0} definitions.",n.length)))}else{const e=n[0];if(!e.uri)return;this.textModelResolverService.createModelReference(e.uri).then((t=>{if(!t.object||!t.object.textEditorModel)return void t.dispose();const{object:{textEditorModel:i}}=t,{startLineNumber:o}=e.range;if(o<1||o>i.getLineCount())return void t.dispose();const n=this.getPreviewValue(i,o,e),r=this.languageService.guessLanguageIdByFilepathOrFirstLine(i.uri);this.addDecoration(s,n?(new Ne.W5).appendCodeblock(r||"",n):void 0),t.dispose()}))}}getPreviewValue(e,t,i){let o=i.range;o.endLineNumber-o.startLineNumber>=Ha.MAX_SOURCE_PREVIEW_LINES&&(o=this.getPreviewRangeBasedOnIndentation(e,t));return this.stripIndentationFromPreviewRange(e,t,o)}stripIndentationFromPreviewRange(e,t,i){let o=e.getLineFirstNonWhitespaceColumn(t);for(let n=t+1;n<i.endLineNumber;n++){const t=e.getLineFirstNonWhitespaceColumn(n);o=Math.min(o,t)}return e.getValueInRange(i).replace(new RegExp("^\\s{".concat(o-1,"}"),"gm"),"").trim()}getPreviewRangeBasedOnIndentation(e,t){const i=e.getLineFirstNonWhitespaceColumn(t),o=Math.min(e.getLineCount(),t+Ha.MAX_SOURCE_PREVIEW_LINES);let n=t+1;for(;n<o;n++){if(i===e.getLineFirstNonWhitespaceColumn(n))break}return new He.e(t,1,n+1,1)}addDecoration(e,t){const i={range:e,options:{description:"goto-definition-link",inlineClassName:"goto-definition-link",hoverMessage:t}};this.linkDecorations.set([i])}removeLinkDecorations(){this.linkDecorations.clear()}isEnabled(e,t){var i;return this.editor.hasModel()&&e.isLeftClick&&e.isNoneOrSingleMouseDown&&6===e.target.type&&!((null===(i=e.target.detail.injectedText)||void 0===i?void 0:i.options)instanceof Be.HS)&&(e.hasTriggerModifier||!!t&&t.keyCodeIsTriggerKey)&&this.languageFeaturesService.definitionProvider.has(this.editor.getModel())}findDefinition(e,t){const i=this.editor.getModel();return i?fa(this.languageFeaturesService.definitionProvider,i,e,t):Promise.resolve(null)}gotoDefinition(e,t){return this.editor.setPosition(e),this.editor.invokeWithinContext((e=>{const i=!t&&this.editor.getOption(88)&&!this.isInPeekEditor(e);return new Ta({openToSide:t,openInPeek:i,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(e)}))}isInPeekEditor(e){const t=e.get(ae.i6);return pr.inPeekEditor.getValue(t)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};za.ID="editor.contrib.gotodefinitionatposition",za.MAX_SOURCE_PREVIEW_LINES=8,za=Ha=Va([Ba(1,Ks.S),Ba(2,Us.O),Ba(3,kt.p)],za),(0,ee._K)(za.ID,za,2);var Ua=i(89883);class Ka{constructor(e,t,i){this.value=e,this.isComplete=t,this.hasLoadingMessage=i}}class ja extends Fe.JT{constructor(e,t){super(),this._editor=e,this._computer=t,this._onResult=this._register(new ui.Q5),this.onResult=this._onResult.event,this._firstWaitScheduler=this._register(new Oe.pY((()=>this._triggerAsyncComputation()),0)),this._secondWaitScheduler=this._register(new Oe.pY((()=>this._triggerSyncComputation()),0)),this._loadingMessageScheduler=this._register(new Oe.pY((()=>this._triggerLoadingMessage()),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),super.dispose()}get _hoverTime(){return this._editor.getOption(60).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this._state=e,t&&this._fireResult()}_triggerAsyncComputation(){this._setState(2),this._secondWaitScheduler.schedule(this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=(0,Oe.zS)((e=>this._computer.computeAsync(e))),(async()=>{try{for await(const e of this._asyncIterable)e&&(this._result.push(e),this._fireResult());this._asyncIterableDone=!0,3!==this._state&&4!==this._state||this._setState(0)}catch(e){(0,Ji.dL)(e)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync())),this._setState(this._asyncIterableDone?0:3)}_triggerLoadingMessage(){3===this._state&&this._setState(4)}_fireResult(){if(1===this._state||2===this._state)return;const e=0===this._state,t=4===this._state;this._onResult.fire(new Ka(this._result.slice(0),e,t))}start(e){if(0===e)0===this._state&&(this._setState(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()}}cancel(){this._firstWaitScheduler.cancel(),this._secondWaitScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._result=[],this._setState(0,!1)}}class qa{constructor(e,t,i,o){this.priority=e,this.range=t,this.initialMousePosX=i,this.initialMousePosY=o,this.type=1}equals(e){return 1===e.type&&this.range.equalsRange(e.range)}canAdoptVisibleHover(e,t){return 1===e.type&&t.lineNumber===this.range.startLineNumber}}class Ga{constructor(e,t,i,o,n,s){this.priority=e,this.owner=t,this.range=i,this.initialMousePosX=o,this.initialMousePosY=n,this.supportsMarkerHover=s,this.type=2}equals(e){return 2===e.type&&this.owner===e.owner}canAdoptVisibleHover(e,t){return 2===e.type&&this.owner===e.owner}}const Qa=new class{constructor(){this._participants=[]}register(e){this._participants.push(e)}getAll(){return this._participants}};class Za{constructor(){let e;this._onDidWillResize=new ui.Q5,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new ui.Q5,this.onDidResize=this._onDidResize.event,this._sashListener=new Fe.SL,this._size=new X.Ro(0,0),this._minSize=new X.Ro(0,0),this._maxSize=new X.Ro(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new ir.g(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new ir.g(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new ir.g(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:ir.l.North}),this._southSash=new ir.g(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:ir.l.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let t=0,i=0;this._sashListener.add(ui.ju.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)((()=>{void 0===e&&(this._onDidWillResize.fire(),e=this._size,t=0,i=0)}))),this._sashListener.add(ui.ju.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)((()=>{void 0!==e&&(e=void 0,t=0,i=0,this._onDidResize.fire({dimension:this._size,done:!0}))}))),this._sashListener.add(this._eastSash.onDidChange((o=>{e&&(i=o.currentX-o.startX,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))}))),this._sashListener.add(this._westSash.onDidChange((o=>{e&&(i=-(o.currentX-o.startX),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))}))),this._sashListener.add(this._northSash.onDidChange((o=>{e&&(t=-(o.currentY-o.startY),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))}))),this._sashListener.add(this._southSash.onDidChange((o=>{e&&(t=o.currentY-o.startY,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))}))),this._sashListener.add(ui.ju.any(this._eastSash.onDidReset,this._westSash.onDidReset)((e=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))),this._sashListener.add(ui.ju.any(this._northSash.onDidReset,this._southSash.onDidReset)((e=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))})))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(e,t,i,o){this._northSash.state=e?3:0,this._eastSash.state=t?3:0,this._southSash.state=i?3:0,this._westSash.state=o?3:0}layout(){let 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;const{height:i,width:o}=this._minSize,{height:n,width:s}=this._maxSize;e=Math.max(i,Math.min(n,e)),t=Math.max(o,Math.min(s,t));const r=new X.Ro(t,e);X.Ro.equals(r,this._size)||(this.domNode.style.height=e+"px",this.domNode.style.width=t+"px",this._size=r,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(e){this._maxSize=e}get maxSize(){return this._maxSize}set minSize(e){this._minSize=e}get minSize(){return this._minSize}set preferredSize(e){this._preferredSize=e}get preferredSize(){return this._preferredSize}}class Ya extends Fe.JT{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new X.Ro(10,10);super(),this._editor=e,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new Za),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=X.Ro.lift(t),this._resizableNode.layout(t.height,t.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize((e=>{this._resize(new X.Ro(e.dimension.width,e.dimension.height)),e.done&&(this._isResizing=!1)}))),this._register(this._resizableNode.onDidWillResize((()=>{this._isResizing=!0})))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){var e;return(null===(e=this._contentPosition)||void 0===e?void 0:e.position)?We.L.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(e){const t=this._editor.getDomNode(),i=this._editor.getScrolledVisiblePosition(e);if(!t||!i)return;return X.i(t).top+i.top-30}_availableVerticalSpaceBelow(e){const t=this._editor.getDomNode(),i=this._editor.getScrolledVisiblePosition(e);if(!t||!i)return;const o=X.i(t),n=X.D6(t.ownerDocument.body),s=o.top+i.top+i.height;return n.height-s-24}_findPositionPreference(e,t){var i,o;const n=Math.min(null!==(i=this._availableVerticalSpaceBelow(t))&&void 0!==i?i:1/0,e),s=Math.min(null!==(o=this._availableVerticalSpaceAbove(t))&&void 0!==o?o:1/0,e),r=Math.min(Math.max(s,n),e),a=Math.min(e,r);let l;return l=this._editor.getOption(60).above?a<=s?1:2:a<=n?2:1,1===l?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),l}_resize(e){this._resizableNode.layout(e.height,e.width)}}var Ja,$a,Xa=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},el=function(e,t){return function(i,o){t(i,o,e)}};const tl=X.$;let il=Ja=class extends Fe.JT{constructor(e,t,i){super(),this._editor=e,this._instantiationService=t,this._keybindingService=i,this._currentResult=null,this._widget=this._register(this._instantiationService.createInstance(rl,this._editor)),this._participants=[];for(const o of Qa.getAll())this._participants.push(this._instantiationService.createInstance(o,this._editor));this._participants.sort(((e,t)=>e.hoverOrdinal-t.hoverOrdinal)),this._computer=new ll(this._editor,this._participants),this._hoverOperation=this._register(new ja(this._editor,this._computer)),this._register(this._hoverOperation.onResult((e=>{if(!this._computer.anchor)return;const t=e.hasLoadingMessage?this._addLoadingMessage(e.value):e.value;this._withResult(new ol(this._computer.anchor,t,e.isComplete))}))),this._register(X.mu(this._widget.getDomNode(),"keydown",(e=>{e.equals(9)&&this.hide()}))),this._register(Lt.RW.onDidChange((()=>{this._widget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)})))}_startShowingOrUpdateHover(e,t,i,o,n){if(!this._widget.position||!this._currentResult)return!!e&&(this._startHoverOperationIfNecessary(e,t,i,o,!1),!0);return this._editor.getOption(60).sticky&&n&&this._widget.isMouseGettingCloser(n.event.posx,n.event.posy)?(e&&this._startHoverOperationIfNecessary(e,t,i,o,!0),!0):e?!(!e||!this._currentResult.anchor.equals(e))||(e.canAdoptVisibleHover(this._currentResult.anchor,this._widget.position)?(this._setCurrentResult(this._currentResult.filter(e)),this._startHoverOperationIfNecessary(e,t,i,o,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(e,t,i,o,!1),!0)):(this._setCurrentResult(null),!1)}_startHoverOperationIfNecessary(e,t,i,o,n){this._computer.anchor&&this._computer.anchor.equals(e)||(this._hoverOperation.cancel(),this._computer.anchor=e,this._computer.shouldFocus=o,this._computer.source=i,this._computer.insistOnKeepingHoverVisible=n,this._hoverOperation.start(t))}_setCurrentResult(e){this._currentResult!==e&&(e&&0===e.messages.length&&(e=null),this._currentResult=e,this._currentResult?this._renderMessages(this._currentResult.anchor,this._currentResult.messages):this._widget.hide())}_addLoadingMessage(e){if(this._computer.anchor)for(const t of this._participants)if(t.createLoadingMessage){const i=t.createLoadingMessage(this._computer.anchor);if(i)return e.slice(0).concat([i])}return e}_withResult(e){if(this._widget.position&&this._currentResult&&this._currentResult.isComplete){if(!e.isComplete)return;if(this._computer.insistOnKeepingHoverVisible&&0===e.messages.length)return}this._setCurrentResult(e)}_renderMessages(e,t){const{showAtPosition:i,showAtSecondaryPosition:o,highlightRange:n}=Ja.computeHoverRanges(this._editor,e.range,t),s=new Fe.SL,r=s.add(new al(this._keybindingService)),a=document.createDocumentFragment();let l=null;const d={fragment:a,statusBar:r,setColorPicker:e=>l=e,onContentsChanged:()=>this._widget.onContentsChanged(),setMinimumDimensions:e=>this._widget.setMinimumDimensions(e),hide:()=>this.hide()};for(const h of this._participants){const e=t.filter((e=>e.owner===h));e.length>0&&s.add(h.renderHoverParts(d,e))}const c=t.some((e=>e.isBeforeContent));if(r.hasContent&&a.appendChild(r.hoverElement),a.hasChildNodes()){if(n){const e=this._editor.createDecorationsCollection();e.set([{range:n,options:Ja._DECORATION_OPTIONS}]),s.add((0,Fe.OF)((()=>{e.clear()})))}this._widget.showAt(a,new sl(e.initialMousePosX,e.initialMousePosY,l,i,o,this._editor.getOption(60).above,this._computer.shouldFocus,this._computer.source,c,s))}else s.dispose()}static computeHoverRanges(e,t,i){let o=1;if(e.hasModel()){const i=e._getViewModel(),n=i.coordinatesConverter,s=n.convertModelRangeToViewRange(t),r=new We.L(s.startLineNumber,i.getLineMinColumn(s.startLineNumber));o=n.convertViewPositionToModelPosition(r).column}const n=t.startLineNumber;let s=t.startColumn,r=i[0].range,a=null;for(const l of i)r=He.e.plusRange(r,l.range),l.range.startLineNumber===n&&l.range.endLineNumber===n&&(s=Math.max(Math.min(s,l.range.startColumn),o)),l.forceShowAtRange&&(a=l.range);return{showAtPosition:a?a.getStartPosition():new We.L(n,t.startColumn),showAtSecondaryPosition:a?a.getStartPosition():new We.L(n,s),highlightRange:r}}showsOrWillShow(e){if(this._widget.isResizing)return!0;const t=[];for(const o of this._participants)if(o.suggestHoverAnchor){const i=o.suggestHoverAnchor(e);i&&t.push(i)}const i=e.target;if(6===i.type&&t.push(new qa(0,i.range,e.event.posx,e.event.posy)),7===i.type){const o=this._editor.getOption(50).typicalHalfwidthCharacterWidth/2;!i.detail.isAfterLines&&"number"===typeof i.detail.horizontalDistanceToText&&i.detail.horizontalDistanceToText<o&&t.push(new qa(0,i.range,e.event.posx,e.event.posy))}return 0===t.length?this._startShowingOrUpdateHover(null,0,0,!1,e):(t.sort(((e,t)=>t.priority-e.priority)),this._startShowingOrUpdateHover(t[0],0,0,!1,e))}startShowingAtRange(e,t,i,o){this._startShowingOrUpdateHover(new qa(0,e,void 0,void 0),t,i,o,null)}containsNode(e){return!!e&&this._widget.getDomNode().contains(e)}focus(){this._widget.focus()}scrollUp(){this._widget.scrollUp()}scrollDown(){this._widget.scrollDown()}scrollLeft(){this._widget.scrollLeft()}scrollRight(){this._widget.scrollRight()}pageUp(){this._widget.pageUp()}pageDown(){this._widget.pageDown()}goToTop(){this._widget.goToTop()}goToBottom(){this._widget.goToBottom()}hide(){this._computer.anchor=null,this._hoverOperation.cancel(),this._setCurrentResult(null)}get isColorPickerVisible(){return this._widget.isColorPickerVisible}get isVisibleFromKeyboard(){return this._widget.isVisibleFromKeyboard}get isVisible(){return this._widget.isVisible}get isFocused(){return this._widget.isFocused}get isResizing(){return this._widget.isResizing}get widget(){return this._widget}};il._DECORATION_OPTIONS=Be.qx.register({description:"content-hover-highlight",className:"hoverHighlight"}),il=Ja=Xa([el(1,ni.TG),el(2,ki.d)],il);class ol{constructor(e,t,i){this.anchor=e,this.messages=t,this.isComplete=i}filter(e){const t=this.messages.filter((t=>t.isValidForHoverAnchor(e)));return t.length===this.messages.length?this:new nl(this,this.anchor,t,this.isComplete)}}class nl extends ol{constructor(e,t,i,o){super(t,i,o),this.original=e}filter(e){return this.original.filter(e)}}class sl{constructor(e,t,i,o,n,s,r,a,l,d){this.initialMousePosX=e,this.initialMousePosY=t,this.colorPicker=i,this.showAtPosition=o,this.showAtSecondaryPosition=n,this.preferAbove=s,this.stoleFocus=r,this.source=a,this.isBeforeContent=l,this.disposables=d,this.closestMouseDistance=void 0}}let rl=$a=class extends Ya{get isColorPickerVisible(){var e;return Boolean(null===(e=this._visibleData)||void 0===e?void 0:e.colorPicker)}get isVisibleFromKeyboard(){var e;return 1===(null===(e=this._visibleData)||void 0===e?void 0:e.source)}get isVisible(){var e;return null!==(e=this._hoverVisibleKey.get())&&void 0!==e&&e}get isFocused(){var e;return null!==(e=this._hoverFocusedKey.get())&&void 0!==e&&e}constructor(e,t,i,o,n){const s=e.getOption(67)+8,r=new X.Ro(150,s);super(e,r),this._configurationService=i,this._accessibilityService=o,this._keybindingService=n,this._hover=this._register(new Ua.c8),this._minimumSize=r,this._hoverVisibleKey=oe.u.hoverVisible.bindTo(t),this._hoverFocusedKey=oe.u.hoverFocused.bindTo(t),X.R3(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._register(this._editor.onDidLayoutChange((()=>{this.isVisible&&this._updateMaxDimensions()}))),this._register(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(50)&&this._updateFont()})));const a=this._register(X.go(this._resizableNode.domNode));this._register(a.onDidFocus((()=>{this._hoverFocusedKey.set(!0)}))),this._register(a.onDidBlur((()=>{this._hoverFocusedKey.set(!1)}))),this._setHoverData(void 0),this._editor.addContentWidget(this)}dispose(){var e;super.dispose(),null===(e=this._visibleData)||void 0===e||e.disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return $a.ID}static _applyDimensions(e,t,i){const o="number"===typeof t?"".concat(t,"px"):t,n="number"===typeof i?"".concat(i,"px"):i;e.style.width=o,e.style.height=n}_setContentsDomNodeDimensions(e,t){const i=this._hover.contentsDomNode;return $a._applyDimensions(i,e,t)}_setContainerDomNodeDimensions(e,t){const i=this._hover.containerDomNode;return $a._applyDimensions(i,e,t)}_setHoverWidgetDimensions(e,t){this._setContentsDomNodeDimensions(e,t),this._setContainerDomNodeDimensions(e,t),this._layoutContentWidget()}static _applyMaxDimensions(e,t,i){const o="number"===typeof t?"".concat(t,"px"):t,n="number"===typeof i?"".concat(i,"px"):i;e.style.maxWidth=o,e.style.maxHeight=n}_setHoverWidgetMaxDimensions(e,t){$a._applyMaxDimensions(this._hover.contentsDomNode,e,t),$a._applyMaxDimensions(this._hover.containerDomNode,e,t),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth","number"===typeof e?"".concat(e,"px"):e),this._layoutContentWidget()}_hasHorizontalScrollbar(){const e=this._hover.scrollbar.getScrollDimensions();return e.scrollWidth>e.width}_adjustContentsBottomPadding(){const e=this._hover.contentsDomNode,t="".concat(this._hover.scrollbar.options.horizontalScrollbarSize,"px");e.style.paddingBottom!==t&&(e.style.paddingBottom=t)}_setAdjustedHoverWidgetDimensions(e){this._setHoverWidgetMaxDimensions("none","none");const t=e.width,i=e.height;this._setHoverWidgetDimensions(t,i),this._hasHorizontalScrollbar()&&(this._adjustContentsBottomPadding(),this._setContentsDomNodeDimensions(t,i-10))}_updateResizableNodeMaxDimensions(){var e,t;const i=null!==(e=this._findMaximumRenderingWidth())&&void 0!==e?e:1/0,o=null!==(t=this._findMaximumRenderingHeight())&&void 0!==t?t:1/0;this._resizableNode.maxSize=new X.Ro(i,o),this._setHoverWidgetMaxDimensions(i,o)}_resize(e){var t,i;$a._lastDimensions=new X.Ro(e.width,e.height),this._setAdjustedHoverWidgetDimensions(e),this._resizableNode.layout(e.height,e.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),null===(i=null===(t=this._visibleData)||void 0===t?void 0:t.colorPicker)||void 0===i||i.layout()}_findAvailableSpaceVertically(){var e;const t=null===(e=this._visibleData)||void 0===e?void 0:e.showAtPosition;if(t)return 1===this._positionPreference?this._availableVerticalSpaceAbove(t):this._availableVerticalSpaceBelow(t)}_findMaximumRenderingHeight(){const e=this._findAvailableSpaceVertically();if(!e)return;let t=6;return Array.from(this._hover.contentsDomNode.children).forEach((e=>{t+=e.clientHeight})),this._hasHorizontalScrollbar()&&(t+=10),Math.min(e,t)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");const e=Array.from(this._hover.contentsDomNode.children).some((e=>e.scrollWidth>e.clientWidth));return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),e}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;const e=this._isHoverTextOverflowing(),t="undefined"===typeof this._contentWidth?0:this._contentWidth-2;if(e||this._hover.containerDomNode.clientWidth<t){return X.D6(this._hover.containerDomNode.ownerDocument.body).width-14}return this._hover.containerDomNode.clientWidth+2}isMouseGettingCloser(e,t){if(!this._visibleData)return!1;if("undefined"===typeof this._visibleData.initialMousePosX||"undefined"===typeof this._visibleData.initialMousePosY)return this._visibleData.initialMousePosX=e,this._visibleData.initialMousePosY=t,!1;const i=X.i(this.getDomNode());"undefined"===typeof this._visibleData.closestMouseDistance&&(this._visibleData.closestMouseDistance=dl(this._visibleData.initialMousePosX,this._visibleData.initialMousePosY,i.left,i.top,i.width,i.height));const o=dl(e,t,i.left,i.top,i.width,i.height);return!(o>this._visibleData.closestMouseDistance+4)&&(this._visibleData.closestMouseDistance=Math.min(this._visibleData.closestMouseDistance,o),!0)}_setHoverData(e){var t;null===(t=this._visibleData)||void 0===t||t.disposables.dispose(),this._visibleData=e,this._hoverVisibleKey.set(!!e),this._hover.containerDomNode.classList.toggle("hidden",!e)}_updateFont(){const{fontSize:e,lineHeight:t}=this._editor.getOption(50),i=this._hover.contentsDomNode;i.style.fontSize="".concat(e,"px"),i.style.lineHeight="".concat(t/e);Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((e=>this._editor.applyFontInfo(e)))}_updateContent(e){const t=this._hover.contentsDomNode;t.style.paddingBottom="",t.textContent="",t.appendChild(e)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){const e=Math.max(this._editor.getLayoutInfo().height/4,250,$a._lastDimensions.height),t=Math.max(.66*this._editor.getLayoutInfo().width,500,$a._lastDimensions.width);this._setHoverWidgetMaxDimensions(t,e)}_render(e,t){this._setHoverData(t),this._updateFont(),this._updateContent(e),this._updateMaxDimensions(),this.onContentsChanged(),this._editor.render()}getPosition(){var e;return this._visibleData?{position:this._visibleData.showAtPosition,secondaryPosition:this._visibleData.showAtSecondaryPosition,positionAffinity:this._visibleData.isBeforeContent?3:void 0,preference:[null!==(e=this._positionPreference)&&void 0!==e?e:1]}:null}showAt(e,t){var i,o,n,s;if(!this._editor||!this._editor.hasModel())return;this._render(e,t);const r=X.wn(this._hover.containerDomNode),a=t.showAtPosition;this._positionPreference=null!==(i=this._findPositionPreference(r,a))&&void 0!==i?i:1,this.onContentsChanged(),t.stoleFocus&&this._hover.containerDomNode.focus(),null===(o=t.colorPicker)||void 0===o||o.layout();const l=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&(0,Ua.uX)(!0===this._configurationService.getValue("accessibility.verbosity.hover")&&this._accessibilityService.isScreenReaderOptimized(),null!==(s=null===(n=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))||void 0===n?void 0:n.getAriaLabel())&&void 0!==s?s:"");l&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+l)}hide(){if(!this._visibleData)return;const e=this._visibleData.stoleFocus||this._hoverFocusedKey.get();this._setHoverData(void 0),this._resizableNode.maxSize=new X.Ro(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),e&&this._editor.focus()}_removeConstraintsRenderNormally(){const e=this._editor.getLayoutInfo();this._resizableNode.layout(e.height,e.width),this._setHoverWidgetDimensions("auto","auto")}_adjustHoverHeightForScrollbar(e){var t;const i=this._hover.containerDomNode,o=this._hover.contentsDomNode,n=null!==(t=this._findMaximumRenderingHeight())&&void 0!==t?t:1/0;this._setContainerDomNodeDimensions(X.w(i),Math.min(n,e)),this._setContentsDomNodeDimensions(X.w(o),Math.min(n,e-10))}setMinimumDimensions(e){this._minimumSize=new X.Ro(Math.max(this._minimumSize.width,e.width),Math.max(this._minimumSize.height,e.height)),this._updateMinimumWidth()}_updateMinimumWidth(){const e="undefined"===typeof this._contentWidth?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new X.Ro(e,this._minimumSize.height)}onContentsChanged(){var e;this._removeConstraintsRenderNormally();const t=this._hover.containerDomNode;let i=X.wn(t),o=X.w(t);if(this._resizableNode.layout(i,o),this._setHoverWidgetDimensions(o,i),i=X.wn(t),o=X.w(t),this._contentWidth=o,this._updateMinimumWidth(),this._resizableNode.layout(i,o),this._hasHorizontalScrollbar()&&(this._adjustContentsBottomPadding(),this._adjustHoverHeightForScrollbar(i)),null===(e=this._visibleData)||void 0===e?void 0:e.showAtPosition){const e=X.wn(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(e,this._visibleData.showAtPosition)}this._layoutContentWidget()}focus(){this._hover.containerDomNode.focus()}scrollUp(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:e-t.lineHeight})}scrollDown(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:e+t.lineHeight})}scrollLeft(){const e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e-30})}scrollRight(){const e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e+30})}pageUp(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e-t})}pageDown(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e+t})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};rl.ID="editor.contrib.resizableContentHoverWidget",rl._lastDimensions=new X.Ro(0,0),rl=$a=Xa([el(1,ae.i6),el(2,re.Ui),el(3,$s.F),el(4,ki.d)],rl);let al=class extends Fe.JT{get hasContent(){return this._hasContent}constructor(e){super(),this._keybindingService=e,this._hasContent=!1,this.hoverElement=tl("div.hover-row.status-bar"),this.actionsElement=X.R3(this.hoverElement,tl("div.actions"))}addAction(e){const t=this._keybindingService.lookupKeybinding(e.commandId),i=t?t.getLabel():null;return this._hasContent=!0,this._register(Ua.Sr.render(this.actionsElement,e,i))}append(e){const t=X.R3(this.actionsElement,e);return this._hasContent=!0,t}};al=Xa([el(0,ki.d)],al);class ll{get anchor(){return this._anchor}set anchor(e){this._anchor=e}get shouldFocus(){return this._shouldFocus}set shouldFocus(e){this._shouldFocus=e}get source(){return this._source}set source(e){this._source=e}get insistOnKeepingHoverVisible(){return this._insistOnKeepingHoverVisible}set insistOnKeepingHoverVisible(e){this._insistOnKeepingHoverVisible=e}constructor(e,t){this._editor=e,this._participants=t,this._anchor=null,this._shouldFocus=!1,this._source=0,this._insistOnKeepingHoverVisible=!1}static _getLineDecorations(e,t){if(1!==t.type&&!t.supportsMarkerHover)return[];const i=e.getModel(),o=t.range.startLineNumber;if(o>i.getLineCount())return[];const n=i.getLineMaxColumn(o);return e.getLineDecorations(o).filter((e=>{if(e.options.isWholeLine)return!0;const i=e.range.startLineNumber===o?e.range.startColumn:1,s=e.range.endLineNumber===o?e.range.endColumn:n;if(e.options.showIfCollapsed){if(i>t.range.startColumn+1||t.range.endColumn-1>s)return!1}else if(i>t.range.startColumn||t.range.endColumn>s)return!1;return!0}))}computeAsync(e){const t=this._anchor;if(!this._editor.hasModel()||!t)return Oe.Aq.EMPTY;const i=ll._getLineDecorations(this._editor,t);return Oe.Aq.merge(this._participants.map((o=>o.computeAsync?o.computeAsync(t,i,e):Oe.Aq.EMPTY)))}computeSync(){if(!this._editor.hasModel()||!this._anchor)return[];const e=ll._getLineDecorations(this._editor,this._anchor);let t=[];for(const i of this._participants)t=t.concat(i.computeSync(this._anchor,e));return(0,nt.kX)(t)}}function dl(e,t,i,o,n,s){const r=i+n/2,a=o+s/2,l=Math.max(Math.abs(e-r)-n/2,0),d=Math.max(Math.abs(t-a)-s/2,0);return Math.sqrt(l*l+d*d)}const cl=X.$;class hl extends Fe.JT{constructor(e,t,i){super(),this._renderDisposeables=this._register(new Fe.SL),this._editor=e,this._isVisible=!1,this._messages=[],this._hover=this._register(new Ua.c8),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._markdownRenderer=this._register(new gi.$({editor:this._editor},t,i)),this._computer=new ul(this._editor),this._hoverOperation=this._register(new ja(this._editor,this._computer)),this._register(this._hoverOperation.onResult((e=>{this._withResult(e.value)}))),this._register(this._editor.onDidChangeModelDecorations((()=>this._onModelDecorationsChanged()))),this._register(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(50)&&this._updateFont()}))),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return hl.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((e=>this._editor.applyFontInfo(e)))}_onModelDecorationsChanged(){this._isVisible&&(this._hoverOperation.cancel(),this._hoverOperation.start(0))}startShowingAt(e,t){this._computer.lineNumber===e&&this._computer.lane===t||(this._hoverOperation.cancel(),this.hide(),this._computer.lineNumber=e,this._computer.lane=t,this._hoverOperation.start(0))}hide(){this._computer.lineNumber=-1,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(e){this._messages=e,this._messages.length>0?this._renderMessages(this._computer.lineNumber,this._messages):this.hide()}_renderMessages(e,t){this._renderDisposeables.clear();const i=document.createDocumentFragment();for(const o of t){const e=cl("div.hover-row.markdown-hover"),t=X.R3(e,cl("div.hover-contents")),n=this._renderDisposeables.add(this._markdownRenderer.render(o.value));t.appendChild(n.element),i.appendChild(e)}this._updateContents(i),this._showAt(e)}_updateContents(e){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(e),this._updateFont()}_showAt(e){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const t=this._editor.getLayoutInfo(),i=this._editor.getTopForLineNumber(e),o=this._editor.getScrollTop(),n=this._editor.getOption(67),s=i-o-(this._hover.containerDomNode.clientHeight-n)/2,r=t.glyphMarginLeft+t.glyphMarginWidth+("lineNo"===this._computer.lane?t.lineNumbersWidth:0);this._hover.containerDomNode.style.left="".concat(r,"px"),this._hover.containerDomNode.style.top="".concat(Math.max(Math.round(s),0),"px")}}hl.ID="editor.contrib.modesGlyphHoverWidget";class ul{get lineNumber(){return this._lineNumber}set lineNumber(e){this._lineNumber=e}get lane(){return this._laneOrLine}set lane(e){this._laneOrLine=e}constructor(e){this._editor=e,this._lineNumber=-1,this._laneOrLine=Ve.U.Center}computeSync(){var e,t;const i=e=>({value:e}),o=this._editor.getLineDecorations(this._lineNumber),n=[],s="lineNo"===this._laneOrLine;if(!o)return n;for(const r of o){const o=null!==(t=null===(e=r.options.glyphMargin)||void 0===e?void 0:e.position)&&void 0!==t?t:Ve.U.Center;if(!s&&o!==this._laneOrLine)continue;const a=s?r.options.lineNumberHoverMessage:r.options.glyphMarginHoverMessage;a&&!(0,Ne.CP)(a)&&n.push(...(0,nt._2)(a).map(i))}return n}}class gl{constructor(e,t,i){this.provider=e,this.hover=t,this.ordinal=i}}function pl(e,t,i,o){const n=e.ordered(t).map(((e,n)=>async function(e,t,i,o,n){try{const s=await Promise.resolve(e.provideHover(i,o,n));if(s&&function(e){const t="undefined"!==typeof e.range,i="undefined"!==typeof e.contents&&e.contents&&e.contents.length>0;return t&&i}(s))return new gl(e,s,t)}catch(s){(0,Ji.Cp)(s)}}(e,n,t,i,o)));return Oe.Aq.fromPromises(n).coalesce()}(0,ee.sb)("_executeHoverProvider",((e,t,i)=>function(e,t,i,o){return pl(e,t,i,o).map((e=>e.hover)).toPromise()}(e.get(kt.p).hoverProvider,t,i,Yi.T.None)));var ml=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},_l=function(e,t){return function(i,o){t(i,o,e)}};const fl=X.$;class vl{constructor(e,t,i,o,n){this.owner=e,this.range=t,this.contents=i,this.isBeforeContent=o,this.ordinal=n}isValidForHoverAnchor(e){return 1===e.type&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let bl=class{constructor(e,t,i,o,n){this._editor=e,this._languageService=t,this._openerService=i,this._configurationService=o,this._languageFeaturesService=n,this.hoverOrdinal=3}createLoadingMessage(e){return new vl(this,e.range,[(new Ne.W5).appendText(ne.NC("modesContentHover.loading","Loading..."))],!1,2e3)}computeSync(e,t){if(!this._editor.hasModel()||1!==e.type)return[];const i=this._editor.getModel(),o=e.range.startLineNumber,n=i.getLineMaxColumn(o),s=[];let r=1e3;const a=i.getLineLength(o),l=i.getLanguageIdAtPosition(e.range.startLineNumber,e.range.startColumn),d=this._editor.getOption(117),c=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:l});let h=!1;d>=0&&a>d&&e.range.startColumn>=d&&(h=!0,s.push(new vl(this,e.range,[{value:ne.NC("stopped rendering","Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.")}],!1,r++))),!h&&"number"===typeof c&&a>=c&&s.push(new vl(this,e.range,[{value:ne.NC("too many characters","Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.")}],!1,r++));let u=!1;for(const g of t){const t=g.range.startLineNumber===o?g.range.startColumn:1,i=g.range.endLineNumber===o?g.range.endColumn:n,a=g.options.hoverMessage;if(!a||(0,Ne.CP)(a))continue;g.options.beforeContentClassName&&(u=!0);const l=new He.e(e.range.startLineNumber,t,e.range.startLineNumber,i);s.push(new vl(this,l,(0,nt._2)(a),u,r++))}return s}computeAsync(e,t,i){if(!this._editor.hasModel()||1!==e.type)return Oe.Aq.EMPTY;const o=this._editor.getModel();if(!this._languageFeaturesService.hoverProvider.has(o))return Oe.Aq.EMPTY;const n=new We.L(e.range.startLineNumber,e.range.startColumn);return pl(this._languageFeaturesService.hoverProvider,o,n,i).filter((e=>!(0,Ne.CP)(e.hover.contents))).map((t=>{const i=t.hover.range?He.e.lift(t.hover.range):e.range;return new vl(this,i,t.hover.contents,!1,t.ordinal)}))}renderHoverParts(e,t){return Cl(e,t,this._editor,this._languageService,this._openerService)}};function Cl(e,t,i,o,n){t.sort(((e,t)=>e.ordinal-t.ordinal));const s=new Fe.SL;for(const r of t)for(const t of r.contents){if((0,Ne.CP)(t))continue;const r=fl("div.hover-row.markdown-hover"),a=X.R3(r,fl("div.hover-contents")),l=s.add(new gi.$({editor:i},o,n));s.add(l.onDidRenderAsync((()=>{a.className="hover-contents code-hover-contents",e.onContentsChanged()})));const d=s.add(l.render(t));a.appendChild(d.element),e.fragment.appendChild(r)}return s}bl=ml([_l(1,Us.O),_l(2,pi.v),_l(3,re.Ui),_l(4,kt.p)],bl);var Sl=i(11974),yl=i(44713),wl=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},xl=function(e,t){return function(i,o){t(i,o,e)}};class Nl{constructor(e,t,i){this.marker=e,this.index=t,this.total=i}}let Ll=class{constructor(e,t,i){this._markerService=t,this._configService=i,this._onDidChange=new ui.Q5,this.onDidChange=this._onDidChange.event,this._dispoables=new Fe.SL,this._markers=[],this._nextIdx=-1,_t.o.isUri(e)?this._resourceFilter=t=>t.toString()===e.toString():e&&(this._resourceFilter=e);const o=this._configService.getValue("problems.sortOrder"),n=(e,t)=>{let i=(0,ii.qu)(e.resource.toString(),t.resource.toString());return 0===i&&(i="position"===o?He.e.compareRangesUsingStarts(e,t)||on.ZL.compare(e.severity,t.severity):on.ZL.compare(e.severity,t.severity)||He.e.compareRangesUsingStarts(e,t)),i},s=()=>{this._markers=this._markerService.read({resource:_t.o.isUri(e)?e:void 0,severities:on.ZL.Error|on.ZL.Warning|on.ZL.Info}),"function"===typeof e&&(this._markers=this._markers.filter((e=>this._resourceFilter(e.resource)))),this._markers.sort(n)};s(),this._dispoables.add(t.onMarkerChanged((e=>{this._resourceFilter&&!e.some((e=>this._resourceFilter(e)))||(s(),this._nextIdx=-1,this._onDidChange.fire())})))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(e){return!this._resourceFilter&&!e||!(!this._resourceFilter||!e)&&this._resourceFilter(e)}get selected(){const e=this._markers[this._nextIdx];return e&&new Nl(e,this._nextIdx+1,this._markers.length)}_initIdx(e,t,i){let o=!1,n=this._markers.findIndex((t=>t.resource.toString()===e.uri.toString()));n<0&&(n=(0,nt.ry)(this._markers,{resource:e.uri},((e,t)=>(0,ii.qu)(e.resource.toString(),t.resource.toString()))),n<0&&(n=~n));for(let s=n;s<this._markers.length;s++){let i=He.e.lift(this._markers[s]);if(i.isEmpty()){const t=e.getWordAtPosition(i.getStartPosition());t&&(i=new He.e(i.startLineNumber,t.startColumn,i.startLineNumber,t.endColumn))}if(t&&(i.containsPosition(t)||t.isBeforeOrEqual(i.getStartPosition()))){this._nextIdx=s,o=!0;break}if(this._markers[s].resource.toString()!==e.uri.toString())break}o||(this._nextIdx=i?0:this._markers.length-1),this._nextIdx<0&&(this._nextIdx=this._markers.length-1)}resetIndex(){this._nextIdx=-1}move(e,t,i){if(0===this._markers.length)return!1;const o=this._nextIdx;return-1===this._nextIdx?this._initIdx(t,i,e):e?this._nextIdx=(this._nextIdx+1)%this._markers.length:e||(this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length),o!==this._nextIdx}find(e,t){let i=this._markers.findIndex((t=>t.resource.toString()===e.toString()));if(!(i<0))for(;i<this._markers.length;i++)if(He.e.containsPosition(this._markers[i],t))return new Nl(this._markers[i],i+1,this._markers.length)}};Ll=wl([xl(1,on.lT),xl(2,re.Ui)],Ll);const kl=(0,ni.yh)("IMarkerNavigationService");let Dl=class{constructor(e,t){this._markerService=e,this._configService=t,this._provider=new yl.S}getMarkerList(e){for(const t of this._provider){const i=t.getMarkerList(e);if(i)return i}return new Ll(e,this._markerService,this._configService)}};Dl=wl([xl(0,on.lT),xl(1,re.Ui)],Dl),(0,Zo.z)(kl,Dl,1);var Il,Rl=i(66561),Pl=i(6225);!function(e){e.className=function(e){switch(e){case Pl.Z.Ignore:return"severity-ignore "+oi.k.asClassName($.l.info);case Pl.Z.Info:return oi.k.asClassName($.l.info);case Pl.Z.Warning:return oi.k.asClassName($.l.warning);case Pl.Z.Error:return oi.k.asClassName($.l.error);default:return""}}}(Il||(Il={}));var Ml,Tl=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},El=function(e,t){return function(i,o){t(i,o,e)}};class Al{constructor(e,t,i,o,n){this._openerService=o,this._labelService=n,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new Fe.SL,this._editor=t;const s=document.createElement("div");s.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),s.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),s.appendChild(this._relatedBlock),this._disposables.add(X.mu(this._relatedBlock,"click",(e=>{e.preventDefault();const t=this._relatedDiagnostics.get(e.target);t&&i(t)}))),this._scrollable=new Rl.NB(s,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),e.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll((e=>{s.style.left="-".concat(e.scrollLeft,"px"),s.style.top="-".concat(e.scrollTop,"px")}))),this._disposables.add(this._scrollable)}dispose(){(0,Fe.B9)(this._disposables)}update(e){const{source:t,message:i,relatedInformation:o,code:n}=e;let s=((null===t||void 0===t?void 0:t.length)||0)+"()".length;n&&(s+="string"===typeof n?n.length:n.value.length);const r=(0,ii.uq)(i);this._lines=r.length,this._longestLineLength=0;for(const h of r)this._longestLineLength=Math.max(h.length+s,this._longestLineLength);X.PO(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(e)),this._editor.applyFontInfo(this._messageBlock);let a=this._messageBlock;for(const h of r)a=document.createElement("div"),a.innerText=h,""===h&&(a.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(a);if(t||n){const e=document.createElement("span");if(e.classList.add("details"),a.appendChild(e),t){const i=document.createElement("span");i.innerText=t,i.classList.add("source"),e.appendChild(i)}if(n)if("string"===typeof n){const t=document.createElement("span");t.innerText="(".concat(n,")"),t.classList.add("code"),e.appendChild(t)}else{this._codeLink=X.$("a.code-link"),this._codeLink.setAttribute("href","".concat(n.target.toString())),this._codeLink.onclick=e=>{this._openerService.open(n.target,{allowCommands:!0}),e.preventDefault(),e.stopPropagation()};X.R3(this._codeLink,X.$("span")).innerText=n.value,e.appendChild(this._codeLink)}}if(X.PO(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),(0,nt.Of)(o)){const e=this._relatedBlock.appendChild(document.createElement("div"));e.style.paddingTop="".concat(Math.floor(.66*this._editor.getOption(67)),"px"),this._lines+=1;for(const t of o){const i=document.createElement("div"),o=document.createElement("a");o.classList.add("filename"),o.innerText="".concat(this._labelService.getUriBasenameLabel(t.resource),"(").concat(t.startLineNumber,", ").concat(t.startColumn,"): "),o.title=this._labelService.getUriLabel(t.resource),this._relatedDiagnostics.set(o,t);const n=document.createElement("span");n.innerText=t.message,i.appendChild(o),i.appendChild(n),this._lines+=1,e.appendChild(i)}}const l=this._editor.getOption(50),d=Math.ceil(l.typicalFullwidthCharacterWidth*this._longestLineLength*.75),c=l.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:d,scrollHeight:c})}layout(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})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(e){let t="";switch(e.severity){case on.ZL.Error:t=ne.NC("Error","Error");break;case on.ZL.Warning:t=ne.NC("Warning","Warning");break;case on.ZL.Info:t=ne.NC("Info","Info");break;case on.ZL.Hint:t=ne.NC("Hint","Hint")}let i=ne.NC("marker aria","{0} at {1}. ",t,e.startLineNumber+":"+e.startColumn);const o=this._editor.getModel();if(o&&e.startLineNumber<=o.getLineCount()&&e.startLineNumber>=1){const t=o.getLineContent(e.startLineNumber);i="".concat(t,", ").concat(i)}return i}}let Ol=Ml=class extends fr{constructor(e,t,i,o,n,s,r){super(e,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},n),this._themeService=t,this._openerService=i,this._menuService=o,this._contextKeyService=s,this._labelService=r,this._callOnDispose=new Fe.SL,this._onDidSelectRelatedInformation=new ui.Q5,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=on.ZL.Warning,this._backgroundColor=Zn.Il.white,this._applyTheme(t.getColorTheme()),this._callOnDispose.add(t.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(e){this._backgroundColor=e.getColor(ql);let t=Vl,i=Bl;this._severity===on.ZL.Warning?(t=zl,i=Ul):this._severity===on.ZL.Info&&(t=Kl,i=jl);const o=e.getColor(t),n=e.getColor(i);this.style({arrowColor:o,frameColor:o,headerBackgroundColor:n,primaryHeadingColor:e.getColor(br),secondaryHeadingColor:e.getColor(Cr)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(e){super._fillHead(e),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun((e=>this.editor.focus())));const t=[],i=this._menuService.createMenu(Ml.TitleMenu,this._contextKeyService);(0,cr.vr)(i,void 0,t),this._actionbarWidget.push(t,{label:!1,icon:!0,index:0}),i.dispose()}_fillTitleIcon(e){this._icon=X.R3(e,X.$(""))}_fillBody(e){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 Al(this._container,this.editor,(e=>this._onDidSelectRelatedInformation.fire(e)),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw new Error("call showAtMarker")}showAtMarker(e,t,i){this._container.classList.remove("stale"),this._message.update(e),this._severity=e.severity,this._applyTheme(this._themeService.getColorTheme());const o=He.e.lift(e),n=this.editor.getPosition(),s=n&&o.containsPosition(n)?n:o.getStartPosition();super.show(s,this.computeRequiredHeight());const r=this.editor.getModel();if(r){const e=i>1?ne.NC("problems","{0} of {1} problems",t,i):ne.NC("change","{0} of {1} problem",t,i);this.setTitle((0,It.EZ)(r.uri),e)}this._icon.className="codicon ".concat(Il.className(on.ZL.toSeverity(this._severity))),this.editor.revealPositionNearTop(s,0),this.editor.focus()}updateMarker(e){this._container.classList.remove("stale"),this._message.update(e)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._heightInPixel=e,this._message.layout(e,t),this._container.style.height="".concat(e,"px")}_onWidth(e){this._message.layout(this._heightInPixel,e)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};Ol.TitleMenu=new se.eH("gotoErrorTitleMenu"),Ol=Ml=Tl([El(1,Ue.XE),El(2,pi.v),El(3,se.co),El(4,ni.TG),El(5,ae.i6),El(6,Wr.e)],Ol);const Fl=(0,ze.kwl)(ze.lXJ,ze.b6y),Wl=(0,ze.kwl)(ze.uoC,ze.pW3),Hl=(0,ze.kwl)(ze.c63,ze.T83),Vl=(0,ze.P6G)("editorMarkerNavigationError.background",{dark:Fl,light:Fl,hcDark:ze.lRK,hcLight:ze.lRK},ne.NC("editorMarkerNavigationError","Editor marker navigation widget error color.")),Bl=(0,ze.P6G)("editorMarkerNavigationError.headerBackground",{dark:(0,ze.ZnX)(Vl,.1),light:(0,ze.ZnX)(Vl,.1),hcDark:null,hcLight:null},ne.NC("editorMarkerNavigationErrorHeaderBackground","Editor marker navigation widget error heading background.")),zl=(0,ze.P6G)("editorMarkerNavigationWarning.background",{dark:Wl,light:Wl,hcDark:ze.lRK,hcLight:ze.lRK},ne.NC("editorMarkerNavigationWarning","Editor marker navigation widget warning color.")),Ul=(0,ze.P6G)("editorMarkerNavigationWarning.headerBackground",{dark:(0,ze.ZnX)(zl,.1),light:(0,ze.ZnX)(zl,.1),hcDark:"#0C141F",hcLight:(0,ze.ZnX)(zl,.2)},ne.NC("editorMarkerNavigationWarningBackground","Editor marker navigation widget warning heading background.")),Kl=(0,ze.P6G)("editorMarkerNavigationInfo.background",{dark:Hl,light:Hl,hcDark:ze.lRK,hcLight:ze.lRK},ne.NC("editorMarkerNavigationInfo","Editor marker navigation widget info color.")),jl=(0,ze.P6G)("editorMarkerNavigationInfo.headerBackground",{dark:(0,ze.ZnX)(Kl,.1),light:(0,ze.ZnX)(Kl,.1),hcDark:null,hcLight:null},ne.NC("editorMarkerNavigationInfoHeaderBackground","Editor marker navigation widget info heading background.")),ql=(0,ze.P6G)("editorMarkerNavigation.background",{dark:ze.cvW,light:ze.cvW,hcDark:ze.cvW,hcLight:ze.cvW},ne.NC("editorMarkerNavigationBackground","Editor marker navigation widget background."));var Gl,Ql=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Zl=function(e,t){return function(i,o){t(i,o,e)}};let Yl=Gl=class{static get(e){return e.getContribution(Gl.ID)}constructor(e,t,i,o,n){this._markerNavigationService=t,this._contextKeyService=i,this._editorService=o,this._instantiationService=n,this._sessionDispoables=new Fe.SL,this._editor=e,this._widgetVisible=ed.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(e){if(this._model&&this._model.matches(e))return this._model;let t=!1;return this._model&&(t=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(e),t&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(Ol,this._editor),this._widget.onDidClose((()=>this.close()),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition((e=>{var t,i,o;(null===(t=this._model)||void 0===t?void 0:t.selected)&&He.e.containsPosition(null===(i=this._model)||void 0===i?void 0:i.selected.marker,e.position)||null===(o=this._model)||void 0===o||o.resetIndex()}))),this._sessionDispoables.add(this._model.onDidChange((()=>{if(!this._widget||!this._widget.position||!this._model)return;const e=this._model.find(this._editor.getModel().uri,this._widget.position);e?this._widget.updateMarker(e.marker):this._widget.showStale()}))),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation((e=>{this._editorService.openCodeEditor({resource:e.resource,options:{pinned:!0,revealIfOpened:!0,selection:He.e.lift(e).collapseToStart()}},this._editor),this.close(!1)}))),this._sessionDispoables.add(this._editor.onDidChangeModel((()=>this._cleanUp()))),this._model}close(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this._cleanUp(),e&&this._editor.focus()}showAtMarker(e){if(this._editor.hasModel()){const t=this._getOrCreateModel(this._editor.getModel().uri);t.resetIndex(),t.move(!0,this._editor.getModel(),new We.L(e.startLineNumber,e.startColumn)),t.selected&&this._widget.showAtMarker(t.selected.marker,t.selected.index,t.selected.total)}}async nagivate(e,t){var i,o;if(this._editor.hasModel()){const n=this._getOrCreateModel(t?void 0:this._editor.getModel().uri);if(n.move(e,this._editor.getModel(),this._editor.getPosition()),!n.selected)return;if(n.selected.marker.resource.toString()!==this._editor.getModel().uri.toString()){this._cleanUp();const s=await this._editorService.openCodeEditor({resource:n.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:n.selected.marker}},this._editor);s&&(null===(i=Gl.get(s))||void 0===i||i.close(),null===(o=Gl.get(s))||void 0===o||o.nagivate(e,t))}else this._widget.showAtMarker(n.selected.marker,n.selected.index,n.selected.total)}}};Yl.ID="editor.contrib.markerController",Yl=Gl=Ql([Zl(1,kl),Zl(2,ae.i6),Zl(3,te.$),Zl(4,ni.TG)],Yl);class Jl extends ee.R6{constructor(e,t,i){super(i),this._next=e,this._multiFile=t}async run(e,t){var i;t.hasModel()&&(null===(i=Yl.get(t))||void 0===i||i.nagivate(this._next,this._multiFile))}}class $l extends Jl{constructor(){super(!0,!1,{id:$l.ID,label:$l.LABEL,alias:"Go to Next Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:oe.u.focus,primary:578,weight:100},menuOpts:{menuId:Ol.TitleMenu,title:$l.LABEL,icon:(0,ys.q5)("marker-navigation-next",$.l.arrowDown,ne.NC("nextMarkerIcon","Icon for goto next marker.")),group:"navigation",order:1}})}}$l.ID="editor.action.marker.next",$l.LABEL=ne.NC("markerAction.next.label","Go to Next Problem (Error, Warning, Info)");class Xl extends Jl{constructor(){super(!1,!1,{id:Xl.ID,label:Xl.LABEL,alias:"Go to Previous Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:oe.u.focus,primary:1602,weight:100},menuOpts:{menuId:Ol.TitleMenu,title:Xl.LABEL,icon:(0,ys.q5)("marker-navigation-previous",$.l.arrowUp,ne.NC("previousMarkerIcon","Icon for goto previous marker.")),group:"navigation",order:2}})}}Xl.ID="editor.action.marker.prev",Xl.LABEL=ne.NC("markerAction.previous.label","Go to Previous Problem (Error, Warning, Info)");(0,ee._K)(Yl.ID,Yl,4),(0,ee.Qr)($l),(0,ee.Qr)(Xl),(0,ee.Qr)(class extends Jl{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:ne.NC("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:oe.u.focus,primary:66,weight:100},menuOpts:{menuId:se.eH.MenubarGoMenu,title:ne.NC({key:"miGotoNextProblem",comment:["&& denotes a mnemonic"]},"Next &&Problem"),group:"6_problem_nav",order:1}})}}),(0,ee.Qr)(class extends Jl{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:ne.NC("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:oe.u.focus,primary:1090,weight:100},menuOpts:{menuId:se.eH.MenubarGoMenu,title:ne.NC({key:"miGotoPreviousProblem",comment:["&& denotes a mnemonic"]},"Previous &&Problem"),group:"6_problem_nav",order:2}})}});const ed=new ae.uy("markersNavigationVisible",!1),td=ee._l.bindToContribution(Yl.get);(0,ee.fK)(new td({id:"closeMarkersNavigation",precondition:ed,handler:e=>e.close(),kbOpts:{weight:150,kbExpr:oe.u.focus,primary:9,secondary:[1033]}}));var id=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},od=function(e,t){return function(i,o){t(i,o,e)}};const nd=X.$;class sd{constructor(e,t,i){this.owner=e,this.range=t,this.marker=i}isValidForHoverAnchor(e){return 1===e.type&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}const rd={type:1,filter:{include:to.QuickFix},triggerAction:io.QuickFixHover};let ad=class{constructor(e,t,i,o){this._editor=e,this._markerDecorationsService=t,this._openerService=i,this._languageFeaturesService=o,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(e,t){if(!this._editor.hasModel()||1!==e.type&&!e.supportsMarkerHover)return[];const i=this._editor.getModel(),o=e.range.startLineNumber,n=i.getLineMaxColumn(o),s=[];for(const r of t){const t=r.range.startLineNumber===o?r.range.startColumn:1,a=r.range.endLineNumber===o?r.range.endColumn:n,l=this._markerDecorationsService.getMarker(i.uri,r);if(!l)continue;const d=new He.e(e.range.startLineNumber,t,e.range.startLineNumber,a);s.push(new sd(this,d,l))}return s}renderHoverParts(e,t){if(!t.length)return Fe.JT.None;const i=new Fe.SL;t.forEach((t=>e.fragment.appendChild(this.renderMarkerHover(t,i))));const o=1===t.length?t[0]:t.sort(((e,t)=>on.ZL.compare(e.marker.severity,t.marker.severity)))[0];return this.renderMarkerStatusbar(e,o,i),i}renderMarkerHover(e,t){const i=nd("div.hover-row"),o=X.R3(i,nd("div.marker.hover-contents")),{source:n,message:s,code:r,relatedInformation:a}=e.marker;this._editor.applyFontInfo(o);const l=X.R3(o,nd("span"));if(l.style.whiteSpace="pre-wrap",l.innerText=s,n||r)if(r&&"string"!==typeof r){const e=nd("span");if(n){X.R3(e,nd("span")).innerText=n}const i=X.R3(e,nd("a.code-link"));i.setAttribute("href",r.target.toString()),t.add(X.nm(i,"click",(e=>{this._openerService.open(r.target,{allowCommands:!0}),e.preventDefault(),e.stopPropagation()})));X.R3(i,nd("span")).innerText=r.value;const s=X.R3(o,e);s.style.opacity="0.6",s.style.paddingLeft="6px"}else{const e=X.R3(o,nd("span"));e.style.opacity="0.6",e.style.paddingLeft="6px",e.innerText=n&&r?"".concat(n,"(").concat(r,")"):n||"(".concat(r,")")}if((0,nt.Of)(a))for(const{message:d,resource:c,startLineNumber:h,startColumn:u}of a){const e=X.R3(o,nd("div"));e.style.marginTop="8px";const i=X.R3(e,nd("a"));i.innerText="".concat((0,It.EZ)(c),"(").concat(h,", ").concat(u,"): "),i.style.cursor="pointer",t.add(X.nm(i,"click",(e=>{e.stopPropagation(),e.preventDefault(),this._openerService&&this._openerService.open(c,{fromUserGesture:!0,editorOptions:{selection:{startLineNumber:h,startColumn:u}}}).catch(Ji.dL)})));const n=X.R3(e,nd("span"));n.innerText=d,this._editor.applyFontInfo(n)}return i}renderMarkerStatusbar(e,t,i){if(t.marker.severity===on.ZL.Error||t.marker.severity===on.ZL.Warning||t.marker.severity===on.ZL.Info){const i=Yl.get(this._editor);i&&e.statusBar.addAction({label:ne.NC("view problem","View Problem"),commandId:$l.ID,run:()=>{e.hide(),i.showAtMarker(t.marker),this._editor.focus()}})}if(!this._editor.getOption(91)){const o=e.statusBar.append(nd("div"));this.recentMarkerCodeActionsInfo&&(on.H0.makeKey(this.recentMarkerCodeActionsInfo.marker)===on.H0.makeKey(t.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(o.textContent=ne.NC("noQuickFixes","No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const n=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?Fe.JT.None:(0,Oe.Vg)((()=>o.textContent=ne.NC("checkingForQuickFixes","Checking for quick fixes...")),200,i);o.textContent||(o.textContent=String.fromCharCode(160));const s=this.getCodeActions(t.marker);i.add((0,Fe.OF)((()=>s.cancel()))),s.then((s=>{if(n.dispose(),this.recentMarkerCodeActionsInfo={marker:t.marker,hasCodeActions:s.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions)return s.dispose(),void(o.textContent=ne.NC("noQuickFixes","No quick fixes available"));o.style.display="none";let r=!1;i.add((0,Fe.OF)((()=>{r||s.dispose()}))),e.statusBar.addAction({label:ne.NC("quick fixes","Quick Fix..."),commandId:ao,run:t=>{r=!0;const i=mn.get(this._editor),o=X.i(t);e.hide(),null===i||void 0===i||i.showCodeActions(rd,s,{x:o.left,y:o.top,width:o.width,height:o.height})}})}),Ji.dL)}}getCodeActions(e){return(0,Oe.PG)((t=>_o(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new He.e(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),rd,yi.Ex.None,t)))}};ad=id([od(1,Sl.i),od(2,pi.v),od(3,kt.p)],ad);var ld=i(66193),dd=i(59130);const cd="editor.action.inlineSuggest.commit",hd="editor.action.inlineSuggest.showPrevious",ud="editor.action.inlineSuggest.showNext";var gd,pd=i(60548),md=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},_d=function(e,t){return function(i,o){t(i,o,e)}};let fd=class extends Fe.JT{constructor(e,t,i){super(),this.editor=e,this.model=t,this.instantiationService=i,this.alwaysShowToolbar=(0,dd.rD)(this.editor.onDidChangeConfiguration,(()=>"always"===this.editor.getOption(62).showToolbar)),this.sessionPosition=void 0,this.position=(0,dd.nK)(this,(e=>{var t,i,o;const n=null===(t=this.model.read(e))||void 0===t?void 0:t.primaryGhostText.read(e);if(!this.alwaysShowToolbar.read(e)||!n||0===n.parts.length)return this.sessionPosition=void 0,null;const s=n.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==n.lineNumber&&(this.sessionPosition=void 0);const r=new We.L(n.lineNumber,Math.min(s,null!==(o=null===(i=this.sessionPosition)||void 0===i?void 0:i.column)&&void 0!==o?o:Number.MAX_SAFE_INTEGER));return this.sessionPosition=r,r})),this._register((0,dd.gp)(((t,i)=>{const o=this.model.read(t);if(!o||!this.alwaysShowToolbar.read(t))return;const n=i.add(this.instantiationService.createInstance(Cd,this.editor,!0,this.position,o.selectedInlineCompletionIndex,o.inlineCompletionsCount,o.selectedInlineCompletion.map((e=>{var t;return null!==(t=null===e||void 0===e?void 0:e.inlineCompletion.source.inlineCompletions.commands)&&void 0!==t?t:[]}))));e.addContentWidget(n),i.add((0,Fe.OF)((()=>e.removeContentWidget(n)))),i.add((0,dd.EH)((e=>{this.position.read(e)&&o.lastTriggerKind.read(e)!==Lt.bw.Explicit&&o.triggerExplicitly()})))})))}};fd=md([_d(2,ni.TG)],fd);const vd=(0,ys.q5)("inline-suggestion-hints-next",$.l.chevronRight,(0,ne.NC)("parameterHintsNextIcon","Icon for show next parameter hint.")),bd=(0,ys.q5)("inline-suggestion-hints-previous",$.l.chevronLeft,(0,ne.NC)("parameterHintsPreviousIcon","Icon for show previous parameter hint."));let Cd=gd=class extends Fe.JT{static get dropDownVisible(){return this._dropDownVisible}createCommandAction(e,t,i){const o=new Ni.aU(e,t,i,!0,(()=>this._commandService.executeCommand(e))),n=this.keybindingService.lookupKeybinding(e,this._contextKeyService);let s=t;return n&&(s=(0,ne.NC)({key:"content",comment:["A label","A keybinding"]},"{0} ({1})",t,n.getLabel())),o.tooltip=s,o}constructor(e,t,i,o,n,s,r,a,l,d,c){super(),this.editor=e,this.withBorder=t,this._position=i,this._currentSuggestionIdx=o,this._suggestionCount=n,this._extraCommands=s,this._commandService=r,this.keybindingService=l,this._contextKeyService=d,this._menuService=c,this.id="InlineSuggestionHintsContentWidget".concat(gd.id++),this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=(0,X.h)("div.inlineSuggestionsHints",{className:this.withBorder?".withBorder":""},[(0,X.h)("div@toolBar")]),this.previousAction=this.createCommandAction(hd,(0,ne.NC)("previous","Previous"),oi.k.asClassName(bd)),this.availableSuggestionCountAction=new Ni.aU("inlineSuggestionHints.availableSuggestionCount","",void 0,!1),this.nextAction=this.createCommandAction(ud,(0,ne.NC)("next","Next"),oi.k.asClassName(vd)),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(se.eH.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new Oe.pY((()=>{this.availableSuggestionCountAction.label=""}),100)),this.disableButtonsDebounced=this._register(new Oe.pY((()=>{this.previousAction.enabled=this.nextAction.enabled=!1}),100)),this.lastCommands=[],this.toolBar=this._register(a.createInstance(wd,this.nodes.toolBar,se.eH.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:e=>e.startsWith("primary")},actionViewItemProvider:(e,t)=>{if(e instanceof se.U8)return a.createInstance(yd,e,void 0);if(e===this.availableSuggestionCountAction){const t=new Sd(void 0,e,{label:!0,icon:!1});return t.setClass("availableSuggestionCount"),t}},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility((e=>{gd._dropDownVisible=e}))),this._register((0,dd.EH)((e=>{this._position.read(e),this.editor.layoutContentWidget(this)}))),this._register((0,dd.EH)((e=>{const t=this._suggestionCount.read(e),i=this._currentSuggestionIdx.read(e);void 0!==t?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label="".concat(i+1,"/").concat(t)):this.clearAvailableSuggestionCountLabelDebounced.schedule(),void 0!==t&&t>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()}))),this._register((0,dd.EH)((e=>{const t=this._extraCommands.read(e);if((0,nt.fS)(this.lastCommands,t))return;this.lastCommands=t;const i=t.map((e=>({class:void 0,id:e.id,enabled:!0,tooltip:e.tooltip||"",label:e.title,run:t=>this._commandService.executeCommand(e.id)})));for(const[o,n]of this.inlineCompletionsActionsMenus.getActions())for(const e of n)e instanceof se.U8&&i.push(e);i.length>0&&i.unshift(new Ni.Z0),this.toolBar.setAdditionalSecondaryActions(i)})))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};Cd._dropDownVisible=!1,Cd.id=0,Cd=gd=md([_d(6,ye.H),_d(7,ni.TG),_d(8,ki.d),_d(9,ae.i6),_d(10,se.co)],Cd);class Sd extends ld.gU{constructor(){super(...arguments),this._className=void 0}setClass(e){this._className=e}render(e){super.render(e),this._className&&e.classList.add(this._className)}updateTooltip(){}}class yd extends cr.Mm{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();if(this.label){const t=(0,X.h)("div.keybinding").root;this._register(new Ao.e(t,it.OS,{disableTitle:!0,...Ao.F})).set(e),this.label.textContent=this._action.label,this.label.appendChild(t),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}}let wd=class extends pd.T{constructor(e,t,i,o,n,s,r,a){super(e,{resetMenu:t,...i},o,n,s,r,a),this.menuId=t,this.options2=i,this.menuService=o,this.contextKeyService=n,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange((()=>this.updateToolbar()))),this.updateToolbar()}updateToolbar(){var e,t,i,o,n,s,r;const a=[],l=[];(0,cr.vr)(this.menu,null===(e=this.options2)||void 0===e?void 0:e.menuOptions,{primary:a,secondary:l},null===(i=null===(t=this.options2)||void 0===t?void 0:t.toolbarOptions)||void 0===i?void 0:i.primaryGroup,null===(n=null===(o=this.options2)||void 0===o?void 0:o.toolbarOptions)||void 0===n?void 0:n.shouldInlineSubmenu,null===(r=null===(s=this.options2)||void 0===s?void 0:s.toolbarOptions)||void 0===r?void 0:r.useSeparatorsInPrimaryActions),l.push(...this.additionalActions),a.unshift(...this.prependedPrimaryActions),this.setActions(a,l)}setPrependedPrimaryActions(e){(0,nt.fS)(this.prependedPrimaryActions,e,((e,t)=>e===t))||(this.prependedPrimaryActions=e,this.updateToolbar())}setAdditionalSecondaryActions(e){(0,nt.fS)(this.additionalActions,e,((e,t)=>e===t))||(this.additionalActions=e,this.updateToolbar())}};wd=md([_d(3,se.co),_d(4,ae.i6),_d(5,Li.i),_d(6,ki.d),_d(7,eo.b)],wd);var xd,Nd=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ld=function(e,t){return function(i,o){t(i,o,e)}};let kd=xd=class extends Fe.JT{constructor(e,t,i,o,n){super(),this._editor=e,this._instantiationService=t,this._openerService=i,this._languageService=o,this._keybindingService=n,this._listenersStore=new Fe.SL,this._hoverState={mouseDown:!1,contentHoverFocused:!1,activatedByDecoratorClick:!1},this._reactToEditorMouseMoveRunner=this._register(new Oe.pY((()=>this._reactToEditorMouseMove(this._mouseMoveEvent)),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(60)&&(this._unhookListeners(),this._hookListeners())})))}static get(e){return e.getContribution(xd.ID)}_hookListeners(){const e=this._editor.getOption(60);this._hoverSettings={enabled:e.enabled,sticky:e.sticky,hidingDelay:e.delay},e.enabled?(this._listenersStore.add(this._editor.onMouseDown((e=>this._onEditorMouseDown(e)))),this._listenersStore.add(this._editor.onMouseUp((()=>this._onEditorMouseUp()))),this._listenersStore.add(this._editor.onMouseMove((e=>this._onEditorMouseMove(e)))),this._listenersStore.add(this._editor.onKeyDown((e=>this._onKeyDown(e))))):(this._listenersStore.add(this._editor.onMouseMove((e=>this._onEditorMouseMove(e)))),this._listenersStore.add(this._editor.onKeyDown((e=>this._onKeyDown(e))))),this._listenersStore.add(this._editor.onMouseLeave((e=>this._onEditorMouseLeave(e)))),this._listenersStore.add(this._editor.onDidChangeModel((()=>{this._cancelScheduler(),this._hideWidgets()}))),this._listenersStore.add(this._editor.onDidChangeModelContent((()=>this._cancelScheduler()))),this._listenersStore.add(this._editor.onDidScrollChange((e=>this._onEditorScrollChanged(e))))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(e){var t;this._hoverState.mouseDown=!0;const i=e.target;9!==i.type||i.detail!==rl.ID?12===i.type&&i.detail===hl.ID||(12!==i.type&&(this._hoverState.contentHoverFocused=!1),(null===(t=this._contentWidget)||void 0===t?void 0:t.widget.isResizing)||this._hideWidgets()):this._hoverState.contentHoverFocused=!0}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(e){var t,i;this._cancelScheduler();const o=e.event.browserEvent.relatedTarget;(null===(t=this._contentWidget)||void 0===t?void 0:t.widget.isResizing)||(null===(i=this._contentWidget)||void 0===i?void 0:i.containsNode(o))||this._hideWidgets()}_isMouseOverWidget(e){var t,i,o,n,s;const r=e.target,a=this._hoverSettings.sticky;return!(!a||9!==r.type||r.detail!==rl.ID)||(!(!a||!(null===(t=this._contentWidget)||void 0===t?void 0:t.containsNode(null===(i=e.event.browserEvent.view)||void 0===i?void 0:i.document.activeElement))||(null===(n=null===(o=e.event.browserEvent.view)||void 0===o?void 0:o.getSelection())||void 0===n?void 0:n.isCollapsed))||(!(a||9!==r.type||r.detail!==rl.ID||!(null===(s=this._contentWidget)||void 0===s?void 0:s.isColorPickerVisible))||!(!a||12!==r.type||r.detail!==hl.ID)))}_onEditorMouseMove(e){var t,i,o,n;if(this._mouseMoveEvent=e,(null===(t=this._contentWidget)||void 0===t?void 0:t.isFocused)||(null===(i=this._contentWidget)||void 0===i?void 0:i.isResizing))return;if(this._hoverState.mouseDown&&this._hoverState.contentHoverFocused)return;const s=this._hoverSettings.sticky;if(s&&(null===(o=this._contentWidget)||void 0===o?void 0:o.isVisibleFromKeyboard))return;if(this._isMouseOverWidget(e))return void this._reactToEditorMouseMoveRunner.cancel();const r=this._hoverSettings.hidingDelay;(null===(n=this._contentWidget)||void 0===n?void 0:n.isVisible)&&s&&r>0?this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(r):this._reactToEditorMouseMove(e)}_reactToEditorMouseMove(e){var t,i,o,n;if(!e)return;const s=e.target,r=null===(t=s.element)||void 0===t?void 0:t.classList.contains("colorpicker-color-decoration"),a=this._editor.getOption(148),l=this._hoverSettings.enabled,d=this._hoverState.activatedByDecoratorClick;if(r&&("click"===a&&!d||"hover"===a&&!l||"clickAndHover"===a&&!l&&!d)||!r&&!l&&!d)return void this._hideWidgets();if(this._getOrCreateContentWidget().showsOrWillShow(e))null===(i=this._glyphWidget)||void 0===i||i.hide();else if(2===s.type&&s.position&&s.detail.glyphMarginLane){null===(o=this._contentWidget)||void 0===o||o.hide();this._getOrCreateGlyphWidget().startShowingAt(s.position.lineNumber,s.detail.glyphMarginLane)}else if(3===s.type&&s.position){null===(n=this._contentWidget)||void 0===n||n.hide();this._getOrCreateGlyphWidget().startShowingAt(s.position.lineNumber,"lineNo")}else this._hideWidgets()}_onKeyDown(e){var t;if(!this._editor.hasModel())return;const i=this._keybindingService.softDispatch(e,this._editor.getDomNode()),o=1===i.kind||2===i.kind&&"editor.action.showHover"===i.commandId&&(null===(t=this._contentWidget)||void 0===t?void 0:t.isVisible);5===e.keyCode||6===e.keyCode||57===e.keyCode||4===e.keyCode||o||this._hideWidgets()}_hideWidgets(){var e,t,i;this._hoverState.mouseDown&&this._hoverState.contentHoverFocused&&(null===(e=this._contentWidget)||void 0===e?void 0:e.isColorPickerVisible)||Cd.dropDownVisible||(this._hoverState.activatedByDecoratorClick=!1,this._hoverState.contentHoverFocused=!1,null===(t=this._glyphWidget)||void 0===t||t.hide(),null===(i=this._contentWidget)||void 0===i||i.hide())}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(il,this._editor)),this._contentWidget}_getOrCreateGlyphWidget(){return this._glyphWidget||(this._glyphWidget=new hl(this._editor,this._languageService,this._openerService)),this._glyphWidget}showContentHover(e,t,i,o){let n=arguments.length>4&&void 0!==arguments[4]&&arguments[4];this._hoverState.activatedByDecoratorClick=n,this._getOrCreateContentWidget().startShowingAtRange(e,t,i,o)}focus(){var e;null===(e=this._contentWidget)||void 0===e||e.focus()}scrollUp(){var e;null===(e=this._contentWidget)||void 0===e||e.scrollUp()}scrollDown(){var e;null===(e=this._contentWidget)||void 0===e||e.scrollDown()}scrollLeft(){var e;null===(e=this._contentWidget)||void 0===e||e.scrollLeft()}scrollRight(){var e;null===(e=this._contentWidget)||void 0===e||e.scrollRight()}pageUp(){var e;null===(e=this._contentWidget)||void 0===e||e.pageUp()}pageDown(){var e;null===(e=this._contentWidget)||void 0===e||e.pageDown()}goToTop(){var e;null===(e=this._contentWidget)||void 0===e||e.goToTop()}goToBottom(){var e;null===(e=this._contentWidget)||void 0===e||e.goToBottom()}get isColorPickerVisible(){var e;return null===(e=this._contentWidget)||void 0===e?void 0:e.isColorPickerVisible}get isHoverVisible(){var e;return null===(e=this._contentWidget)||void 0===e?void 0:e.isVisible}dispose(){var e,t;super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),null===(e=this._glyphWidget)||void 0===e||e.dispose(),null===(t=this._contentWidget)||void 0===t||t.dispose()}};var Dd;kd.ID="editor.contrib.hover",kd=xd=Nd([Ld(1,ni.TG),Ld(2,pi.v),Ld(3,Us.O),Ld(4,ki.d)],kd),function(e){e.NoAutoFocus="noAutoFocus",e.FocusIfVisible="focusIfVisible",e.AutoFocusImmediately="autoFocusImmediately"}(Dd||(Dd={}));class Id extends ee.R6{constructor(){super({id:"editor.action.showHover",label:ne.NC({key:"showOrFocusHover",comment:["Label for action that will trigger the showing/focusing of a hover in the editor.","If the hover is not visible, it will show the hover.","This allows for users to show the hover without using the mouse."]},"Show or Focus Hover"),metadata:{description:"Show or Focus Hover",args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if and when the hover should take focus upon being triggered by this action.",enum:[Dd.NoAutoFocus,Dd.FocusIfVisible,Dd.AutoFocusImmediately],enumDescriptions:[ne.NC("showOrFocusHover.focus.noAutoFocus","The hover will not automatically take focus."),ne.NC("showOrFocusHover.focus.focusIfVisible","The hover will take focus only if it is already visible."),ne.NC("showOrFocusHover.focus.autoFocusImmediately","The hover will automatically take focus when it appears.")],default:Dd.FocusIfVisible}}}}]},alias:"Show or Focus Hover",precondition:void 0,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2087),weight:100}})}run(e,t,i){if(!t.hasModel())return;const o=kd.get(t);if(!o)return;const n=null===i||void 0===i?void 0:i.focus;let s=Dd.FocusIfVisible;Object.values(Dd).includes(n)?s=n:"boolean"===typeof n&&n&&(s=Dd.AutoFocusImmediately);const r=e=>{const i=t.getPosition(),n=new He.e(i.lineNumber,i.column,i.lineNumber,i.column);o.showContentHover(n,1,1,e)},a=2===t.getOption(2);o.isHoverVisible?s!==Dd.NoAutoFocus?o.focus():r(a):r(a||s===Dd.AutoFocusImmediately)}}class Rd extends ee.R6{constructor(){super({id:"editor.action.showDefinitionPreviewHover",label:ne.NC({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})}run(e,t){const i=kd.get(t);if(!i)return;const o=t.getPosition();if(!o)return;const n=new He.e(o.lineNumber,o.column,o.lineNumber,o.column),s=za.get(t);if(!s)return;s.startFindDefinitionFromCursor(o).then((()=>{i.showContentHover(n,1,1,!0)}))}}class Pd extends ee.R6{constructor(){super({id:"editor.action.scrollUpHover",label:ne.NC({key:"scrollUpHover",comment:["Action that allows to scroll up in the hover widget with the up arrow when the hover widget is focused."]},"Scroll Up Hover"),alias:"Scroll Up Hover",precondition:oe.u.hoverFocused,kbOpts:{kbExpr:oe.u.hoverFocused,primary:16,weight:100}})}run(e,t){const i=kd.get(t);i&&i.scrollUp()}}class Md extends ee.R6{constructor(){super({id:"editor.action.scrollDownHover",label:ne.NC({key:"scrollDownHover",comment:["Action that allows to scroll down in the hover widget with the up arrow when the hover widget is focused."]},"Scroll Down Hover"),alias:"Scroll Down Hover",precondition:oe.u.hoverFocused,kbOpts:{kbExpr:oe.u.hoverFocused,primary:18,weight:100}})}run(e,t){const i=kd.get(t);i&&i.scrollDown()}}class Td extends ee.R6{constructor(){super({id:"editor.action.scrollLeftHover",label:ne.NC({key:"scrollLeftHover",comment:["Action that allows to scroll left in the hover widget with the left arrow when the hover widget is focused."]},"Scroll Left Hover"),alias:"Scroll Left Hover",precondition:oe.u.hoverFocused,kbOpts:{kbExpr:oe.u.hoverFocused,primary:15,weight:100}})}run(e,t){const i=kd.get(t);i&&i.scrollLeft()}}class Ed extends ee.R6{constructor(){super({id:"editor.action.scrollRightHover",label:ne.NC({key:"scrollRightHover",comment:["Action that allows to scroll right in the hover widget with the right arrow when the hover widget is focused."]},"Scroll Right Hover"),alias:"Scroll Right Hover",precondition:oe.u.hoverFocused,kbOpts:{kbExpr:oe.u.hoverFocused,primary:17,weight:100}})}run(e,t){const i=kd.get(t);i&&i.scrollRight()}}class Ad extends ee.R6{constructor(){super({id:"editor.action.pageUpHover",label:ne.NC({key:"pageUpHover",comment:["Action that allows to page up in the hover widget with the page up command when the hover widget is focused."]},"Page Up Hover"),alias:"Page Up Hover",precondition:oe.u.hoverFocused,kbOpts:{kbExpr:oe.u.hoverFocused,primary:11,secondary:[528],weight:100}})}run(e,t){const i=kd.get(t);i&&i.pageUp()}}class Od extends ee.R6{constructor(){super({id:"editor.action.pageDownHover",label:ne.NC({key:"pageDownHover",comment:["Action that allows to page down in the hover widget with the page down command when the hover widget is focused."]},"Page Down Hover"),alias:"Page Down Hover",precondition:oe.u.hoverFocused,kbOpts:{kbExpr:oe.u.hoverFocused,primary:12,secondary:[530],weight:100}})}run(e,t){const i=kd.get(t);i&&i.pageDown()}}class Fd extends ee.R6{constructor(){super({id:"editor.action.goToTopHover",label:ne.NC({key:"goToTopHover",comment:["Action that allows to go to the top of the hover widget with the home command when the hover widget is focused."]},"Go To Top Hover"),alias:"Go To Bottom Hover",precondition:oe.u.hoverFocused,kbOpts:{kbExpr:oe.u.hoverFocused,primary:14,secondary:[2064],weight:100}})}run(e,t){const i=kd.get(t);i&&i.goToTop()}}class Wd extends ee.R6{constructor(){super({id:"editor.action.goToBottomHover",label:ne.NC({key:"goToBottomHover",comment:["Action that allows to go to the bottom in the hover widget with the end command when the hover widget is focused."]},"Go To Bottom Hover"),alias:"Go To Bottom Hover",precondition:oe.u.hoverFocused,kbOpts:{kbExpr:oe.u.hoverFocused,primary:13,secondary:[2066],weight:100}})}run(e,t){const i=kd.get(t);i&&i.goToBottom()}}(0,ee._K)(kd.ID,kd,2),(0,ee.Qr)(Id),(0,ee.Qr)(Rd),(0,ee.Qr)(Pd),(0,ee.Qr)(Md),(0,ee.Qr)(Td),(0,ee.Qr)(Ed),(0,ee.Qr)(Ad),(0,ee.Qr)(Od),(0,ee.Qr)(Fd),(0,ee.Qr)(Wd),Qa.register(bl),Qa.register(ad),(0,Ue.Ic)(((e,t)=>{const i=e.getColor(ze.CNo);i&&(t.addRule(".monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ".concat(i.transparent(.5),"; }")),t.addRule(".monaco-editor .monaco-hover hr { border-top: 1px solid ".concat(i.transparent(.5),"; }")),t.addRule(".monaco-editor .monaco-hover hr { border-bottom: 0px solid ".concat(i.transparent(.5),"; }")))}));class Hd extends Fe.JT{constructor(e){super(),this._editor=e,this._register(e.onMouseDown((e=>this.onMouseDown(e))))}dispose(){super.dispose()}onMouseDown(e){const t=this._editor.getOption(148);if("click"!==t&&"clickAndHover"!==t)return;const i=e.target;if(6!==i.type)return;if(!i.detail.injectedText)return;if(i.detail.injectedText.options.attachedData!==ms)return;if(!i.range)return;const o=this._editor.getContribution(kd.ID);if(o&&!o.isColorPickerVisible){const e=new He.e(i.range.startLineNumber,i.range.startColumn+1,i.range.endLineNumber,i.range.endColumn+1);o.showContentHover(e,1,0,!1,!0)}}}Hd.ID="editor.contrib.colorContribution",(0,ee._K)(Hd.ID,Hd,2),Qa.register(Os);var Vd,Bd,zd=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ud=function(e,t){return function(i,o){t(i,o,e)}};let Kd=Vd=class extends Fe.JT{constructor(e,t,i,o,n,s,r){super(),this._editor=e,this._modelService=i,this._keybindingService=o,this._instantiationService=n,this._languageFeatureService=s,this._languageConfigurationService=r,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=oe.u.standaloneColorPickerVisible.bindTo(t),this._standaloneColorPickerFocused=oe.u.standaloneColorPickerFocused.bindTo(t)}showOrFocus(){var e;this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||null===(e=this._standaloneColorPickerWidget)||void 0===e||e.focus():this._standaloneColorPickerWidget=new jd(this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused,this._instantiationService,this._modelService,this._keybindingService,this._languageFeatureService,this._languageConfigurationService))}hide(){var e;this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),null===(e=this._standaloneColorPickerWidget)||void 0===e||e.hide(),this._editor.focus()}insertColor(){var e;null===(e=this._standaloneColorPickerWidget)||void 0===e||e.updateEditor(),this.hide()}static get(e){return e.getContribution(Vd.ID)}};Kd.ID="editor.contrib.standaloneColorPickerController",Kd=Vd=zd([Ud(1,ae.i6),Ud(2,$i.q),Ud(3,ki.d),Ud(4,ni.TG),Ud(5,kt.p),Ud(6,Xn.c_)],Kd),(0,ee._K)(Kd.ID,Kd,1);let jd=Bd=class extends Fe.JT{constructor(e,t,i,o,n,s,r,a){var l;super(),this._editor=e,this._standaloneColorPickerVisible=t,this._standaloneColorPickerFocused=i,this._modelService=n,this._keybindingService=s,this._languageFeaturesService=r,this._languageConfigurationService=a,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement("div"),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new ui.Q5),this.onResult=this._onResult.event,this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=o.createInstance(Ws,this._editor),this._position=null===(l=this._editor._getViewModel())||void 0===l?void 0:l.getPrimaryCursorState().modelState.position;const d=this._editor.getSelection(),c=d?{startLineNumber:d.startLineNumber,startColumn:d.startColumn,endLineNumber:d.endLineNumber,endColumn:d.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},h=this._register(X.go(this._body));this._register(h.onDidBlur((e=>{this.hide()}))),this._register(h.onDidFocus((e=>{this.focus()}))),this._register(this._editor.onDidChangeCursorPosition((()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()}))),this._register(this._editor.onMouseMove((e=>{var t;const i=null===(t=e.target.element)||void 0===t?void 0:t.classList;i&&i.contains("colorpicker-color-decoration")&&this.hide()}))),this._register(this.onResult((e=>{this._render(e.value,e.foundInEditor)}))),this._start(c),this._body.style.zIndex="50",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return Bd.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;const e=this._editor.getOption(60).above;return{position:this._position,secondaryPosition:this._position,preference:e?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}async _start(e){const t=await this._computeAsync(e);t&&this._onResult.fire(new qd(t.result,t.foundInEditor))}async _computeAsync(e){if(!this._editor.hasModel())return null;const t={range:e,color:{red:0,green:0,blue:0,alpha:1}},i=await this._standaloneColorPickerParticipant.createColorHover(t,new os(this._modelService,this._languageConfigurationService),this._languageFeaturesService.colorProvider);return i?{result:i.colorHover,foundInEditor:i.foundInEditor}:null}_render(e,t){const i=document.createDocumentFragment();let o;const n={fragment:i,statusBar:this._register(new al(this._keybindingService)),setColorPicker:e=>o=e,onContentsChanged:()=>{},hide:()=>this.hide()};if(this._colorHover=e,this._register(this._standaloneColorPickerParticipant.renderHoverParts(n,[e])),void 0===o)return;this._body.classList.add("standalone-colorpicker-body"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+"px",this._body.style.maxWidth=Math.max(.66*this._editor.getLayoutInfo().width,500)+"px",this._body.tabIndex=0,this._body.appendChild(i),o.layout();const s=o.body,r=s.saturationBox.domNode.clientWidth,a=s.domNode.clientWidth-r-22-8,l=o.body.enterButton;null===l||void 0===l||l.onClicked((()=>{this.updateEditor(),this.hide()}));const d=o.header;d.pickedColorNode.style.width=r+8+"px";d.originalColorNode.style.width=a+"px";const c=o.header.closeButton;null===c||void 0===c||c.onClicked((()=>{this.hide()})),t&&(l&&(l.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(e.range)),this._editor.layoutContentWidget(this)}};jd.ID="editor.contrib.standaloneColorPickerWidget",jd=Bd=zd([Ud(3,ni.TG),Ud(4,$i.q),Ud(5,ki.d),Ud(6,kt.p),Ud(7,Xn.c_)],jd);class qd{constructor(e,t){this.value=e,this.foundInEditor=t}}class Gd extends ee.x1{constructor(){super({id:"editor.action.showOrFocusStandaloneColorPicker",title:{...(0,ne.vv)("showOrFocusStandaloneColorPicker","Show or Focus Standalone Color Picker"),mnemonicTitle:(0,ne.NC)({key:"mishowOrFocusStandaloneColorPicker",comment:["&& denotes a mnemonic"]},"&&Show or Focus Standalone Color Picker")},precondition:void 0,menu:[{id:se.eH.CommandPalette}]})}runEditorCommand(e,t){var i;null===(i=Kd.get(t))||void 0===i||i.showOrFocus()}}class Qd extends ee.R6{constructor(){super({id:"editor.action.hideColorPicker",label:(0,ne.NC)({key:"hideColorPicker",comment:["Action that hides the color picker"]},"Hide the Color Picker"),alias:"Hide the Color Picker",precondition:oe.u.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100}})}run(e,t){var i;null===(i=Kd.get(t))||void 0===i||i.hide()}}class Zd extends ee.R6{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:(0,ne.NC)({key:"insertColorWithStandaloneColorPicker",comment:["Action that inserts color with standalone color picker"]},"Insert Color with Standalone Color Picker"),alias:"Insert Color with Standalone Color Picker",precondition:oe.u.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100}})}run(e,t){var i;null===(i=Kd.get(t))||void 0===i||i.insertColor()}}(0,ee.Qr)(Qd),(0,ee.Qr)(Zd),(0,se.r1)(Gd);var Yd=i(39376);class Jd{constructor(e,t,i){this.languageConfigurationService=i,this._selection=e,this._insertSpace=t,this._usedEndToken=null}static _haystackHasNeedleAtOffset(e,t,i){if(i<0)return!1;const o=t.length;if(i+o>e.length)return!1;for(let n=0;n<o;n++){const o=e.charCodeAt(i+n),s=t.charCodeAt(n);if(o!==s&&(!(o>=65&&o<=90&&o+32===s)&&!(s>=65&&s<=90&&s+32===o)))return!1}return!0}_createOperationsForBlockComment(e,t,i,o,n,s){const r=e.startLineNumber,a=e.startColumn,l=e.endLineNumber,d=e.endColumn,c=n.getLineContent(r),h=n.getLineContent(l);let u,g=c.lastIndexOf(t,a-1+t.length),p=h.indexOf(i,d-1-i.length);if(-1!==g&&-1!==p)if(r===l){c.substring(g+t.length,p).indexOf(i)>=0&&(g=-1,p=-1)}else{const e=c.substring(g+t.length),o=h.substring(0,p);(e.indexOf(i)>=0||o.indexOf(i)>=0)&&(g=-1,p=-1)}-1!==g&&-1!==p?(o&&g+t.length<c.length&&32===c.charCodeAt(g+t.length)&&(t+=" "),o&&p>0&&32===h.charCodeAt(p-1)&&(i=" "+i,p-=1),u=Jd._createRemoveBlockCommentOperations(new He.e(r,g+t.length+1,l,p+1),t,i)):(u=Jd._createAddBlockCommentOperations(e,t,i,this._insertSpace),this._usedEndToken=1===u.length?i:null);for(const m of u)s.addTrackedEditOperation(m.range,m.text)}static _createRemoveBlockCommentOperations(e,t,i){const o=[];return He.e.isEmpty(e)?o.push(Yd.h.delete(new He.e(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+i.length))):(o.push(Yd.h.delete(new He.e(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),o.push(Yd.h.delete(new He.e(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+i.length)))),o}static _createAddBlockCommentOperations(e,t,i,o){const n=[];return He.e.isEmpty(e)?n.push(Yd.h.replace(new He.e(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+" "+i)):(n.push(Yd.h.insert(new We.L(e.startLineNumber,e.startColumn),t+(o?" ":""))),n.push(Yd.h.insert(new We.L(e.endLineNumber,e.endColumn),(o?" ":"")+i))),n}getEditOperations(e,t){const i=this._selection.startLineNumber,o=this._selection.startColumn;e.tokenization.tokenizeIfCheap(i);const n=e.getLanguageIdAtPosition(i,o),s=this.languageConfigurationService.getLanguageConfiguration(n).comments;s&&s.blockCommentStartToken&&s.blockCommentEndToken&&this._createOperationsForBlockComment(this._selection,s.blockCommentStartToken,s.blockCommentEndToken,this._insertSpace,e,t)}computeCursorState(e,t){const i=t.getInverseEditOperations();if(2===i.length){const e=i[0],t=i[1];return new ke.Y(e.range.endLineNumber,e.range.endColumn,t.range.startLineNumber,t.range.startColumn)}{const e=i[0].range,t=this._usedEndToken?-this._usedEndToken.length-1:0;return new ke.Y(e.endLineNumber,e.endColumn+t,e.endLineNumber,e.endColumn+t)}}}class $d{constructor(e,t,i,o,n,s,r){this.languageConfigurationService=e,this._selection=t,this._indentSize=i,this._type=o,this._insertSpace=n,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=s,this._ignoreFirstLine=r||!1}static _gatherPreflightCommentStrings(e,t,i,o){e.tokenization.tokenizeIfCheap(t);const n=e.getLanguageIdAtPosition(t,1),s=o.getLanguageConfiguration(n).comments,r=s?s.lineCommentToken:null;if(!r)return null;const a=[];for(let l=0,d=i-t+1;l<d;l++)a[l]={ignore:!1,commentStr:r,commentStrOffset:0,commentStrLength:r.length};return a}static _analyzeLines(e,t,i,o,n,s,r,a){let l,d=!0;l=0===e||1!==e;for(let c=0,h=o.length;c<h;c++){const a=o[c],h=n+c;if(h===n&&r){a.ignore=!0;continue}const u=i.getLineContent(h),g=ii.LC(u);if(-1!==g){if(d=!1,a.ignore=!1,a.commentStrOffset=g,l&&!Jd._haystackHasNeedleAtOffset(u,a.commentStr,g)&&(0===e?l=!1:1===e||(a.ignore=!0)),l&&t){const e=g+a.commentStrLength;e<u.length&&32===u.charCodeAt(e)&&(a.commentStrLength+=1)}}else a.ignore=s,a.commentStrOffset=u.length}if(0===e&&d){l=!1;for(let e=0,t=o.length;e<t;e++)o[e].ignore=!1}return{supported:!0,shouldRemoveComments:l,lines:o}}static _gatherPreflightData(e,t,i,o,n,s,r,a){const l=$d._gatherPreflightCommentStrings(i,o,n,a);return null===l?{supported:!1}:$d._analyzeLines(e,t,i,l,o,s,r,a)}_executeLineComments(e,t,i,o){let n;i.shouldRemoveComments?n=$d._createRemoveLineCommentsOperations(i.lines,o.startLineNumber):($d._normalizeInsertionPoint(e,i.lines,o.startLineNumber,this._indentSize),n=this._createAddLineCommentsOperations(i.lines,o.startLineNumber));const s=new We.L(o.positionLineNumber,o.positionColumn);for(let r=0,a=n.length;r<a;r++)if(t.addEditOperation(n[r].range,n[r].text),He.e.isEmpty(n[r].range)&&He.e.getStartPosition(n[r].range).equals(s)){e.getLineContent(s.lineNumber).length+1===s.column&&(this._deltaColumn=(n[r].text||"").length)}this._selectionId=t.trackSelection(o)}_attemptRemoveBlockComment(e,t,i,o){let n=t.startLineNumber,s=t.endLineNumber;const r=o.length+Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber),t.startColumn);let a=e.getLineContent(n).lastIndexOf(i,r-1),l=e.getLineContent(s).indexOf(o,t.endColumn-1-i.length);return-1!==a&&-1===l&&(l=e.getLineContent(n).indexOf(o,a+i.length),s=n),-1===a&&-1!==l&&(a=e.getLineContent(s).lastIndexOf(i,l),n=s),!t.isEmpty()||-1!==a&&-1!==l||(a=e.getLineContent(n).indexOf(i),-1!==a&&(l=e.getLineContent(n).indexOf(o,a+i.length))),-1!==a&&32===e.getLineContent(n).charCodeAt(a+i.length)&&(i+=" "),-1!==l&&32===e.getLineContent(s).charCodeAt(l-1)&&(o=" "+o,l-=1),-1!==a&&-1!==l?Jd._createRemoveBlockCommentOperations(new He.e(n,a+i.length+1,s,l+1),i,o):null}_executeBlockComment(e,t,i){e.tokenization.tokenizeIfCheap(i.startLineNumber);const o=e.getLanguageIdAtPosition(i.startLineNumber,1),n=this.languageConfigurationService.getLanguageConfiguration(o).comments;if(!n||!n.blockCommentStartToken||!n.blockCommentEndToken)return;const s=n.blockCommentStartToken,r=n.blockCommentEndToken;let a=this._attemptRemoveBlockComment(e,i,s,r);if(!a){if(i.isEmpty()){const t=e.getLineContent(i.startLineNumber);let o=ii.LC(t);-1===o&&(o=t.length),a=Jd._createAddBlockCommentOperations(new He.e(i.startLineNumber,o+1,i.startLineNumber,t.length+1),s,r,this._insertSpace)}else a=Jd._createAddBlockCommentOperations(new He.e(i.startLineNumber,e.getLineFirstNonWhitespaceColumn(i.startLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),s,r,this._insertSpace);1===a.length&&(this._deltaColumn=s.length+1)}this._selectionId=t.trackSelection(i);for(const l of a)t.addEditOperation(l.range,l.text)}getEditOperations(e,t){let i=this._selection;if(this._moveEndPositionDown=!1,i.startLineNumber===i.endLineNumber&&this._ignoreFirstLine)return t.addEditOperation(new He.e(i.startLineNumber,e.getLineMaxColumn(i.startLineNumber),i.startLineNumber+1,1),i.startLineNumber===e.getLineCount()?"":"\n"),void(this._selectionId=t.trackSelection(i));i.startLineNumber<i.endLineNumber&&1===i.endColumn&&(this._moveEndPositionDown=!0,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));const o=$d._gatherPreflightData(this._type,this._insertSpace,e,i.startLineNumber,i.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);return o.supported?this._executeLineComments(e,t,o,i):this._executeBlockComment(e,t,i)}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(i=i.setEndPosition(i.endLineNumber+1,1)),new ke.Y(i.selectionStartLineNumber,i.selectionStartColumn+this._deltaColumn,i.positionLineNumber,i.positionColumn+this._deltaColumn)}static _createRemoveLineCommentsOperations(e,t){const i=[];for(let o=0,n=e.length;o<n;o++){const n=e[o];n.ignore||i.push(Yd.h.delete(new He.e(t+o,n.commentStrOffset+1,t+o,n.commentStrOffset+n.commentStrLength+1)))}return i}_createAddLineCommentsOperations(e,t){const i=[],o=this._insertSpace?" ":"";for(let n=0,s=e.length;n<s;n++){const s=e[n];s.ignore||i.push(Yd.h.insert(new We.L(t+n,s.commentStrOffset+1),s.commentStr+o))}return i}static nextVisibleColumn(e,t,i,o){return i?e+(t-e%t):e+o}static _normalizeInsertionPoint(e,t,i,o){let n,s,r=1073741824;for(let a=0,l=t.length;a<l;a++){if(t[a].ignore)continue;const n=e.getLineContent(i+a);let s=0;for(let e=0,i=t[a].commentStrOffset;s<r&&e<i;e++)s=$d.nextVisibleColumn(s,o,9===n.charCodeAt(e),1);s<r&&(r=s)}r=Math.floor(r/o)*o;for(let a=0,l=t.length;a<l;a++){if(t[a].ignore)continue;const l=e.getLineContent(i+a);let d=0;for(n=0,s=t[a].commentStrOffset;d<r&&n<s;n++)d=$d.nextVisibleColumn(d,o,9===l.charCodeAt(n),1);t[a].commentStrOffset=d>r?n-1:n}}}class Xd extends ee.R6{constructor(e,t){super(t),this._type=e}run(e,t){const i=e.get(Xn.c_);if(!t.hasModel())return;const o=[],n=t.getModel().getOptions(),s=t.getOption(23),r=t.getSelections().map(((e,t)=>({selection:e,index:t,ignoreFirstLine:!1})));r.sort(((e,t)=>He.e.compareRangesUsingStarts(e.selection,t.selection)));let a=r[0];for(let l=1;l<r.length;l++){const e=r[l];a.selection.endLineNumber===e.selection.startLineNumber&&(a.index<e.index?e.ignoreFirstLine=!0:(a.ignoreFirstLine=!0,a=e))}for(const l of r)o.push(new $d(i,l.selection,n.indentSize,this._type,s.insertSpace,s.ignoreEmptyLines,l.ignoreFirstLine));t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}class ec extends ee.R6{constructor(){super({id:"editor.action.blockComment",label:ne.NC("comment.block","Toggle Block Comment"),alias:"Toggle Block Comment",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:se.eH.MenubarEditMenu,group:"5_insert",title:ne.NC({key:"miToggleBlockComment",comment:["&& denotes a mnemonic"]},"Toggle &&Block Comment"),order:2}})}run(e,t){const i=e.get(Xn.c_);if(!t.hasModel())return;const o=t.getOption(23),n=[],s=t.getSelections();for(const r of s)n.push(new Jd(r,o.insertSpace,i));t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}(0,ee.Qr)(class extends Xd{constructor(){super(0,{id:"editor.action.commentLine",label:ne.NC("comment.line","Toggle Line Comment"),alias:"Toggle Line Comment",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:2138,weight:100},menuOpts:{menuId:se.eH.MenubarEditMenu,group:"5_insert",title:ne.NC({key:"miToggleLineComment",comment:["&& denotes a mnemonic"]},"&&Toggle Line Comment"),order:1}})}}),(0,ee.Qr)(class extends Xd{constructor(){super(1,{id:"editor.action.addCommentLine",label:ne.NC("comment.line.add","Add Line Comment"),alias:"Add Line Comment",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2081),weight:100}})}}),(0,ee.Qr)(class extends Xd{constructor(){super(2,{id:"editor.action.removeCommentLine",label:ne.NC("comment.line.remove","Remove Line Comment"),alias:"Remove Line Comment",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2099),weight:100}})}}),(0,ee.Qr)(ec);var tc,ic=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},oc=function(e,t){return function(i,o){t(i,o,e)}};let nc=tc=class{static get(e){return e.getContribution(tc.ID)}constructor(e,t,i,o,n,s,r,a){this._contextMenuService=t,this._contextViewService=i,this._contextKeyService=o,this._keybindingService=n,this._menuService=s,this._configurationService=r,this._workspaceContextService=a,this._toDispose=new Fe.SL,this._contextMenuIsBeingShownCount=0,this._editor=e,this._toDispose.add(this._editor.onContextMenu((e=>this._onContextMenu(e)))),this._toDispose.add(this._editor.onMouseWheel((e=>{if(this._contextMenuIsBeingShownCount>0){const t=this._contextViewService.getContextViewElement(),i=e.srcElement;i.shadowRoot&&X.Ay(t)===i.shadowRoot||this._contextViewService.hideContextView()}}))),this._toDispose.add(this._editor.onKeyDown((e=>{this._editor.getOption(24)&&58===e.keyCode&&(e.preventDefault(),e.stopPropagation(),this.showContextMenu())})))}_onContextMenu(e){if(!this._editor.hasModel())return;if(!this._editor.getOption(24))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)return;if(6===e.target.type&&e.target.detail.injectedText)return;if(e.event.preventDefault(),e.event.stopPropagation(),11===e.target.type)return this._showScrollbarContextMenu(e.event);if(6!==e.target.type&&7!==e.target.type&&1!==e.target.type)return;if(this._editor.focus(),e.target.position){let t=!1;for(const i of this._editor.getSelections())if(i.containsPosition(e.target.position)){t=!0;break}t||this._editor.setPosition(e.target.position)}let t=null;1!==e.target.type&&(t=e.event),this.showContextMenu(t)}showContextMenu(e){if(!this._editor.getOption(24))return;if(!this._editor.hasModel())return;const t=this._getMenuActions(this._editor.getModel(),this._editor.isSimpleWidget?se.eH.SimpleEditorContext:se.eH.EditorContext);t.length>0&&this._doShowContextMenu(t,e)}_getMenuActions(e,t){const i=[],o=this._menuService.createMenu(t,this._contextKeyService),n=o.getActions({arg:e.uri});o.dispose();for(const s of n){const[,t]=s;let o=0;for(const n of t)if(n instanceof se.NZ){const t=this._getMenuActions(e,n.item.submenu);t.length>0&&(i.push(new Ni.wY(n.id,n.label,t)),o++)}else i.push(n),o++;o&&i.push(new Ni.Z0)}return i.length&&i.pop(),i}_doShowContextMenu(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!this._editor.hasModel())return;const i=this._editor.getOption(60);this._editor.updateOptions({hover:{enabled:!1}});let o=t;if(!o){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const e=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),t=X.i(this._editor.getDomNode()),i=t.left+e.left,n=t.top+e.top+e.height;o={x:i,y:n}}const n=this._editor.getOption(127)&&!it.gn;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:n?this._editor.getDomNode():void 0,getAnchor:()=>o,getActions:()=>e,getActionViewItem:e=>{const t=this._keybindingFor(e);if(t)return new ld.gU(e,e,{label:!0,keybinding:t.getLabel(),isMenu:!0});const i=e;return"function"===typeof i.getActionViewItem?i.getActionViewItem():new ld.gU(e,e,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:e=>this._keybindingFor(e),onHide:e=>{this._contextMenuIsBeingShownCount--,this._editor.updateOptions({hover:i})}})}_showScrollbarContextMenu(e){if(!this._editor.hasModel())return;if((0,Rt.x)(this._workspaceContextService.getWorkspace()))return;const t=this._editor.getOption(73);let i=0;const o=e=>({id:"menu-action-".concat(++i),label:e.label,tooltip:"",class:void 0,enabled:"undefined"===typeof e.enabled||e.enabled,checked:e.checked,run:e.run}),n=(e,t,n,s,r)=>{if(!t)return o({label:e,enabled:t,run:()=>{}});const a=e=>()=>{this._configurationService.updateValue(n,e)},l=[];for(const i of r)l.push(o({label:i.label,checked:s===i.value,run:a(i.value)}));return((e,t)=>new Ni.wY("menu-action-".concat(++i),e,t,void 0))(e,l)},s=[];s.push(o({label:ne.NC("context.minimap.minimap","Minimap"),checked:t.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!t.enabled)}})),s.push(new Ni.Z0),s.push(o({label:ne.NC("context.minimap.renderCharacters","Render Characters"),enabled:t.enabled,checked:t.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!t.renderCharacters)}})),s.push(n(ne.NC("context.minimap.size","Vertical size"),t.enabled,"editor.minimap.size",t.size,[{label:ne.NC("context.minimap.size.proportional","Proportional"),value:"proportional"},{label:ne.NC("context.minimap.size.fill","Fill"),value:"fill"},{label:ne.NC("context.minimap.size.fit","Fit"),value:"fit"}])),s.push(n(ne.NC("context.minimap.slider","Slider"),t.enabled,"editor.minimap.showSlider",t.showSlider,[{label:ne.NC("context.minimap.slider.mouseover","Mouse Over"),value:"mouseover"},{label:ne.NC("context.minimap.slider.always","Always"),value:"always"}]));const r=this._editor.getOption(127)&&!it.gn;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:r?this._editor.getDomNode():void 0,getAnchor:()=>e,getActions:()=>s,onHide:e=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(e){return this._keybindingService.lookupKeybinding(e.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}};nc.ID="editor.contrib.contextmenu",nc=tc=ic([oc(1,Li.i),oc(2,Li.u),oc(3,ae.i6),oc(4,ki.d),oc(5,se.co),oc(6,re.Ui),oc(7,Rt.ec)],nc);class sc extends ee.R6{constructor(){super({id:"editor.action.showContextMenu",label:ne.NC("action.showContextMenu.label","Show Editor Context Menu"),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:oe.u.textInputFocus,primary:1092,weight:100}})}run(e,t){var i;null===(i=nc.get(t))||void 0===i||i.showContextMenu()}}(0,ee._K)(nc.ID,nc,2),(0,ee.Qr)(sc);class rc{constructor(e){this.selections=e}equals(e){const t=this.selections.length;if(t!==e.selections.length)return!1;for(let i=0;i<t;i++)if(!this.selections[i].equalsSelection(e.selections[i]))return!1;return!0}}class ac{constructor(e,t,i){this.cursorState=e,this.scrollTop=t,this.scrollLeft=i}}class lc extends Fe.JT{static get(e){return e.getContribution(lc.ID)}constructor(e){super(),this._editor=e,this._isCursorUndoRedo=!1,this._undoStack=[],this._redoStack=[],this._register(e.onDidChangeModel((e=>{this._undoStack=[],this._redoStack=[]}))),this._register(e.onDidChangeModelContent((e=>{this._undoStack=[],this._redoStack=[]}))),this._register(e.onDidChangeCursorSelection((t=>{if(this._isCursorUndoRedo)return;if(!t.oldSelections)return;if(t.oldModelVersionId!==t.modelVersionId)return;const i=new rc(t.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(i)||(this._undoStack.push(new ac(i,e.getScrollTop(),e.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())})))}cursorUndo(){this._editor.hasModel()&&0!==this._undoStack.length&&(this._redoStack.push(new ac(new rc(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){this._editor.hasModel()&&0!==this._redoStack.length&&(this._undoStack.push(new ac(new rc(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(e){this._isCursorUndoRedo=!0,this._editor.setSelections(e.cursorState.selections),this._editor.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}),this._isCursorUndoRedo=!1}}lc.ID="editor.contrib.cursorUndoRedoController";class dc extends ee.R6{constructor(){super({id:"cursorUndo",label:ne.NC("cursor.undo","Cursor Undo"),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:oe.u.textInputFocus,primary:2099,weight:100}})}run(e,t,i){var o;null===(o=lc.get(t))||void 0===o||o.cursorUndo()}}class cc extends ee.R6{constructor(){super({id:"cursorRedo",label:ne.NC("cursor.redo","Cursor Redo"),alias:"Cursor Redo",precondition:void 0})}run(e,t,i){var o;null===(o=lc.get(t))||void 0===o||o.cursorRedo()}}(0,ee._K)(lc.ID,lc,0),(0,ee.Qr)(dc),(0,ee.Qr)(cc);class hc{constructor(e,t,i){this.selection=e,this.targetPosition=t,this.copy=i,this.targetSelection=null}getEditOperations(e,t){const i=e.getValueInRange(this.selection);this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new He.e(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),i),!this.selection.containsPosition(this.targetPosition)||this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition))?this.copy?this.targetSelection=new ke.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 ke.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 ke.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 ke.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 ke.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}computeCursorState(e,t){return this.targetSelection}}function uc(e){return it.dz?e.altKey:e.ctrlKey}class gc extends Fe.JT{constructor(e){super(),this._editor=e,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown((e=>this._onEditorMouseDown(e)))),this._register(this._editor.onMouseUp((e=>this._onEditorMouseUp(e)))),this._register(this._editor.onMouseDrag((e=>this._onEditorMouseDrag(e)))),this._register(this._editor.onMouseDrop((e=>this._onEditorMouseDrop(e)))),this._register(this._editor.onMouseDropCanceled((()=>this._onEditorMouseDropCanceled()))),this._register(this._editor.onKeyDown((e=>this.onEditorKeyDown(e)))),this._register(this._editor.onKeyUp((e=>this.onEditorKeyUp(e)))),this._register(this._editor.onDidBlurEditorWidget((()=>this.onEditorBlur()))),this._register(this._editor.onDidBlurEditorText((()=>this.onEditorBlur()))),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(e){this._editor.getOption(35)&&!this._editor.getOption(22)&&(uc(e)&&(this._modifierPressed=!0),this._mouseDown&&uc(e)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(e){this._editor.getOption(35)&&!this._editor.getOption(22)&&(uc(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===gc.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}_onEditorMouseDown(e){this._mouseDown=!0}_onEditorMouseUp(e){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(e){const t=e.target;if(null===this._dragSelection){const e=(this._editor.getSelections()||[]).filter((e=>t.position&&e.containsPosition(t.position)));if(1!==e.length)return;this._dragSelection=e[0]}uc(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))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(e){if(e.target&&(this._hitContent(e.target)||this._hitMargin(e.target))&&e.target.position){const t=new We.L(e.target.position.lineNumber,e.target.position.column);if(null===this._dragSelection){let i=null;if(e.event.shiftKey){const e=this._editor.getSelection();if(e){const{selectionStartLineNumber:o,selectionStartColumn:n}=e;i=[new ke.Y(o,n,t.lineNumber,t.column)]}}else i=(this._editor.getSelections()||[]).map((e=>e.containsPosition(t)?new ke.Y(t.lineNumber,t.column,t.lineNumber,t.column):e));this._editor.setSelections(i||[],"mouse",3)}else(!this._dragSelection.containsPosition(t)||(uc(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(t)||this._dragSelection.getStartPosition().equals(t)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(gc.ID,new hc(this._dragSelection,t,uc(e.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}showAt(e){this._dndDecorationIds.set([{range:new He.e(e.lineNumber,e.column,e.lineNumber,e.column),options:gc._DECORATION_OPTIONS}]),this._editor.revealPosition(e,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(e){return 6===e.type||7===e.type}_hitMargin(e){return 2===e.type||3===e.type||4===e.type}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}var pc;gc.ID="editor.contrib.dragAndDrop",gc.TRIGGER_KEY_VALUE=it.dz?6:5,gc._DECORATION_OPTIONS=Be.qx.register({description:"dnd-target",className:"dnd-target"}),(0,ee._K)(gc.ID,gc,2),(0,ee._K)(Wi.ID,Wi,0),(0,es.y)(Vt),(0,ee.fK)(new class extends ee._l{constructor(){super({id:Ai,precondition:Oi,kbOpts:{weight:100,primary:2137}})}runEditorCommand(e,t){var i;return null===(i=Wi.get(t))||void 0===i?void 0:i.changePasteType()}}),(0,ee.fK)(new class extends ee._l{constructor(){super({id:"editor.hidePasteWidget",precondition:Oi,kbOpts:{weight:100,primary:9}})}runEditorCommand(e,t){var i;null===(i=Wi.get(t))||void 0===i||i.clearWidgets()}}),(0,ee.Qr)((pc=class extends ee.R6{constructor(){super({id:"editor.action.pasteAs",label:ne.NC("pasteAs","Paste As..."),alias:"Paste As...",precondition:oe.u.writable,metadata:{description:"Paste as",args:[{name:"args",schema:pc.argsSchema}]}})}run(e,t,i){var o;let n="string"===typeof(null===i||void 0===i?void 0:i.kind)?i.kind:void 0;return!n&&i&&(n="string"===typeof i.id?i.id:void 0),null===(o=Wi.get(t))||void 0===o?void 0:o.pasteAs(n?new gt(n):void 0)}},pc.argsSchema={type:"object",properties:{kind:{type:"string",description:ne.NC("pasteAs.kind","The kind of the paste edit to try applying. If not provided or there are multiple edits for this kind, the editor will show a picker.")}}},pc)),(0,ee.Qr)(class extends ee.R6{constructor(){super({id:"editor.action.pasteAsText",label:ne.NC("pasteAsText","Paste as Text"),alias:"Paste as Text",precondition:oe.u.writable})}run(e,t){var i;return null===(i=Wi.get(t))||void 0===i?void 0:i.pasteAs({providerId:Et.id})}});class mc{constructor(e){this.identifier=e}}const _c=(0,ni.yh)("treeViewsDndService");(0,Zo.z)(_c,class{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(e){if(e&&this._dragOperations.has(e)){const t=this._dragOperations.get(e);return this._dragOperations.delete(e),t}}},1);var fc,vc=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},bc=function(e,t){return function(i,o){t(i,o,e)}};const Cc="editor.experimental.dropIntoEditor.defaultProvider",Sc="editor.changeDropType",yc=new ae.uy("dropWidgetVisible",!1,(0,ne.NC)("dropWidgetVisible","Whether the drop widget is showing"));let wc=fc=class extends Fe.JT{static get(e){return e.getContribution(fc.ID)}constructor(e,t,i,o,n){super(),this._configService=i,this._languageFeaturesService=o,this._treeViewsDragAndDropService=n,this.treeItemsTransfer=Ct.getInstance(),this._dropProgressManager=this._register(t.createInstance(di,"dropIntoEditor",e)),this._postDropWidgetManager=this._register(t.createInstance(Pi,"dropIntoEditor",e,yc,{id:Sc,label:(0,ne.NC)("postDropWidgetTitle","Show drop options...")})),this._register(e.onDropIntoEditor((t=>this.onDropIntoEditor(e,t.position,t.event))))}clearWidgets(){this._postDropWidgetManager.clear()}changeDropType(){this._postDropWidgetManager.tryShowSelector()}async onDropIntoEditor(e,t,i){var o;if(!i.dataTransfer||!e.hasModel())return;null===(o=this._currentOperation)||void 0===o||o.cancel(),e.focus(),e.setPosition(t);const n=(0,Oe.PG)((async o=>{const s=new ti.Dl(e,1,void 0,o);try{const n=await this.extractDataTransferData(i);if(0===n.size||s.token.isCancellationRequested)return;const r=e.getModel();if(!r)return;const a=this._languageFeaturesService.documentOnDropEditProvider.ordered(r).filter((e=>!e.dropMimeTypes||e.dropMimeTypes.some((e=>n.matches(e))))),l=await this.getDropEdits(a,r,t,n,s);if(s.token.isCancellationRequested)return;if(l.length){const i=this.getInitialActiveEditIndex(r,l),n="afterDrop"===e.getOption(36).showDropSelector;await this._postDropWidgetManager.applyEditAndShowIfNeeded([He.e.fromPositions(t)],{activeEditIndex:i,allEdits:l},n,(async e=>e),o)}}finally{s.dispose(),this._currentOperation===n&&(this._currentOperation=void 0)}}));this._dropProgressManager.showWhile(t,(0,ne.NC)("dropIntoEditorProgress","Running drop handlers. Click to cancel"),n),this._currentOperation=n}async getDropEdits(e,t,i,o,n){const s=await(0,Oe.eP)(Promise.all(e.map((async e=>{try{const s=await e.provideDocumentOnDropEdits(t,i,o,n.token);return null===s||void 0===s?void 0:s.map((t=>({...t,providerId:e.id})))}catch(s){console.error(s)}}))),n.token);return ei((0,nt.kX)(null!==s&&void 0!==s?s:[]).flat())}getInitialActiveEditIndex(e,t){const i=this._configService.getValue(Cc,{resource:e.uri});for(const[o,n]of Object.entries(i)){const e=new gt(n),i=t.findIndex((t=>e.value===t.providerId&&t.handledMimeType&&ct(o,[t.handledMimeType])));if(i>=0)return i}return 0}async extractDataTransferData(e){if(!e.dataTransfer)return new lt;const t=xt(e.dataTransfer);if(this.treeItemsTransfer.hasData(mc.prototype)){const e=this.treeItemsTransfer.getData(mc.prototype);if(Array.isArray(e))for(const i of e){const e=await this._treeViewsDragAndDropService.removeDragOperationTransfer(i.identifier);if(e)for(const[i,o]of e)t.replace(i,o)}}return t}};wc.ID="editor.contrib.dropIntoEditorController",wc=fc=vc([bc(1,ni.TG),bc(2,re.Ui),bc(3,kt.p),bc(4,_c)],wc),(0,ee._K)(wc.ID,wc,2),(0,es.y)(Ht),(0,ee.fK)(new class extends ee._l{constructor(){super({id:Sc,precondition:yc,kbOpts:{weight:100,primary:2137}})}runEditorCommand(e,t,i){var o;null===(o=wc.get(t))||void 0===o||o.changeDropType()}}),(0,ee.fK)(new class extends ee._l{constructor(){super({id:"editor.hideDropWidget",precondition:yc,kbOpts:{weight:100,primary:9}})}runEditorCommand(e,t,i){var o;null===(o=wc.get(t))||void 0===o||o.clearWidgets()}}),ft.B.as(Ln.IP.Configuration).registerConfiguration({...Zi.wk,properties:{[Cc]:{type:"object",scope:5,description:ne.NC("defaultProviderDescription","Configures the default drop provider to use for content of a given mime type."),default:{},additionalProperties:{type:"string"}}}});var xc=i(36729),Nc=i(52910),Lc=i(90255);class kc{constructor(e){this._editor=e,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const e=this._findScopeDecorationIds.map((e=>this._editor.getModel().getDecorationRange(e))).filter((e=>!!e));if(e.length)return e}return null}getStartPosition(){return this._startPosition}setStartPosition(e){this._startPosition=e,this.setCurrentFindMatch(null)}_getDecorationIndex(e){const t=this._decorations.indexOf(e);return t>=0?t+1:1}getDecorationRangeAt(e){const t=e<this._decorations.length?this._decorations[e]:null;return t?this._editor.getModel().getDecorationRange(t):null}getCurrentMatchesPosition(e){const t=this._editor.getModel().getDecorationsInRange(e);for(const i of t){const e=i.options;if(e===kc._FIND_MATCH_DECORATION||e===kc._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(i.id)}return 0}setCurrentFindMatch(e){let t=null,i=0;if(e)for(let o=0,n=this._decorations.length;o<n;o++){const n=this._editor.getModel().getDecorationRange(this._decorations[o]);if(e.equalsRange(n)){t=this._decorations[o],i=o+1;break}}return null===this._highlightedDecorationId&&null===t||this._editor.changeDecorations((e=>{if(null!==this._highlightedDecorationId&&(e.changeDecorationOptions(this._highlightedDecorationId,kc._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),null!==t&&(this._highlightedDecorationId=t,e.changeDecorationOptions(this._highlightedDecorationId,kc._CURRENT_FIND_MATCH_DECORATION)),null!==this._rangeHighlightDecorationId&&(e.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),null!==t){let i=this._editor.getModel().getDecorationRange(t);if(i.startLineNumber!==i.endLineNumber&&1===i.endColumn){const e=i.endLineNumber-1,t=this._editor.getModel().getLineMaxColumn(e);i=new He.e(i.startLineNumber,i.startColumn,e,t)}this._rangeHighlightDecorationId=e.addDecoration(i,kc._RANGE_HIGHLIGHT_DECORATION)}})),i}set(e,t){this._editor.changeDecorations((i=>{let o=kc._FIND_MATCH_DECORATION;const n=[];if(e.length>1e3){o=kc._FIND_MATCH_NO_OVERVIEW_DECORATION;const t=this._editor.getModel().getLineCount(),i=this._editor.getLayoutInfo().height/t,s=Math.max(2,Math.ceil(3/i));let r=e[0].range.startLineNumber,a=e[0].range.endLineNumber;for(let o=1,l=e.length;o<l;o++){const t=e[o].range;a+s>=t.startLineNumber?t.endLineNumber>a&&(a=t.endLineNumber):(n.push({range:new He.e(r,1,a,1),options:kc._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),r=t.startLineNumber,a=t.endLineNumber)}n.push({range:new He.e(r,1,a,1),options:kc._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const s=new Array(e.length);for(let t=0,r=e.length;t<r;t++)s[t]={range:e[t].range,options:o};this._decorations=i.deltaDecorations(this._decorations,s),this._overviewRulerApproximateDecorations=i.deltaDecorations(this._overviewRulerApproximateDecorations,n),this._rangeHighlightDecorationId&&(i.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),this._findScopeDecorationIds.length&&(this._findScopeDecorationIds.forEach((e=>i.removeDecoration(e))),this._findScopeDecorationIds=[]),(null===t||void 0===t?void 0:t.length)&&(this._findScopeDecorationIds=t.map((e=>i.addDecoration(e,kc._FIND_SCOPE_DECORATION))))}))}matchBeforePosition(e){if(0===this._decorations.length)return null;for(let t=this._decorations.length-1;t>=0;t--){const i=this._decorations[t],o=this._editor.getModel().getDecorationRange(i);if(o&&!(o.endLineNumber>e.lineNumber)){if(o.endLineNumber<e.lineNumber)return o;if(!(o.endColumn>e.column))return o}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(e){if(0===this._decorations.length)return null;for(let t=0,i=this._decorations.length;t<i;t++){const i=this._decorations[t],o=this._editor.getModel().getDecorationRange(i);if(o&&!(o.startLineNumber<e.lineNumber)){if(o.startLineNumber>e.lineNumber)return o;if(!(o.startColumn<e.column))return o}}return this._editor.getModel().getDecorationRange(this._decorations[0])}_allDecorations(){let e=[];return e=e.concat(this._decorations),e=e.concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length&&e.push(...this._findScopeDecorationIds),this._rangeHighlightDecorationId&&e.push(this._rangeHighlightDecorationId),e}}kc._CURRENT_FIND_MATCH_DECORATION=Be.qx.register({description:"current-find-match",stickiness:1,zIndex:13,className:"currentFindMatch",showIfCollapsed:!0,overviewRuler:{color:(0,Ue.EN)(ze.Fm_),position:Ve.sh.Center},minimap:{color:(0,Ue.EN)(ze.SUY),position:1}}),kc._FIND_MATCH_DECORATION=Be.qx.register({description:"find-match",stickiness:1,zIndex:10,className:"findMatch",showIfCollapsed:!0,overviewRuler:{color:(0,Ue.EN)(ze.Fm_),position:Ve.sh.Center},minimap:{color:(0,Ue.EN)(ze.SUY),position:1}}),kc._FIND_MATCH_NO_OVERVIEW_DECORATION=Be.qx.register({description:"find-match-no-overview",stickiness:1,className:"findMatch",showIfCollapsed:!0}),kc._FIND_MATCH_ONLY_OVERVIEW_DECORATION=Be.qx.register({description:"find-match-only-overview",stickiness:1,overviewRuler:{color:(0,Ue.EN)(ze.Fm_),position:Ve.sh.Center}}),kc._RANGE_HIGHLIGHT_DECORATION=Be.qx.register({description:"find-range-highlight",stickiness:1,className:"rangeHighlight",isWholeLine:!0}),kc._FIND_SCOPE_DECORATION=Be.qx.register({description:"find-scope",className:"findScope",isWholeLine:!0});class Dc{constructor(e,t,i){this._editorSelection=e,this._ranges=t,this._replaceStrings=i,this._trackedEditorSelectionId=null}getEditOperations(e,t){if(this._ranges.length>0){const e=[];for(let t=0;t<this._ranges.length;t++)e.push({range:this._ranges[t],text:this._replaceStrings[t]});e.sort(((e,t)=>He.e.compareRangesUsingStarts(e.range,t.range)));const i=[];let o=e[0];for(let t=1;t<e.length;t++)o.range.endLineNumber===e[t].range.startLineNumber&&o.range.endColumn===e[t].range.startColumn?(o.range=o.range.plusRange(e[t].range),o.text=o.text+e[t].text):(i.push(o),o=e[t]);i.push(o);for(const n of i)t.addEditOperation(n.range,n.text)}this._trackedEditorSelectionId=t.trackSelection(this._editorSelection)}computeCursorState(e,t){return t.getTrackedSelection(this._trackedEditorSelectionId)}}function Ic(e,t){if(e&&""!==e[0]){const i=Rc(e,t,"-"),o=Rc(e,t,"_");return i&&!o?Pc(e,t,"-"):!i&&o?Pc(e,t,"_"):e[0].toUpperCase()===e[0]?t.toUpperCase():e[0].toLowerCase()===e[0]?t.toLowerCase():ii.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 Rc(e,t,i){return-1!==e[0].indexOf(i)&&-1!==t.indexOf(i)&&e[0].split(i).length===t.split(i).length}function Pc(e,t,i){const o=t.split(i),n=e[0].split(i);let s="";return o.forEach(((e,t)=>{s+=Ic([n[t]],e)+i})),s.slice(0,-1)}class Mc{constructor(e){this.staticValue=e,this.kind=0}}class Tc{constructor(e){this.pieces=e,this.kind=1}}class Ec{static fromStaticValue(e){return new Ec([Ac.staticValue(e)])}get hasReplacementPatterns(){return 1===this._state.kind}constructor(e){e&&0!==e.length?1===e.length&&null!==e[0].staticValue?this._state=new Mc(e[0].staticValue):this._state=new Tc(e):this._state=new Mc("")}buildReplaceString(e,t){if(0===this._state.kind)return t?Ic(e,this._state.staticValue):this._state.staticValue;let i="";for(let o=0,n=this._state.pieces.length;o<n;o++){const t=this._state.pieces[o];if(null!==t.staticValue){i+=t.staticValue;continue}let n=Ec._substitute(t.matchIndex,e);if(null!==t.caseOps&&t.caseOps.length>0){const e=[],i=t.caseOps.length;let o=0;for(let s=0,r=n.length;s<r;s++){if(o>=i){e.push(n.slice(s));break}switch(t.caseOps[o]){case"U":e.push(n[s].toUpperCase());break;case"u":e.push(n[s].toUpperCase()),o++;break;case"L":e.push(n[s].toLowerCase());break;case"l":e.push(n[s].toLowerCase()),o++;break;default:e.push(n[s])}}n=e.join("")}i+=n}return i}static _substitute(e,t){if(null===t)return"";if(0===e)return t[0];let i="";for(;e>0;){if(e<t.length){return(t[e]||"")+i}i=String(e%10)+i,e=Math.floor(e/10)}return"$"+i}}class Ac{static staticValue(e){return new Ac(e,-1,null)}static caseOps(e,t){return new Ac(null,e,t)}constructor(e,t,i){this.staticValue=e,this.matchIndex=t,i&&0!==i.length?this.caseOps=i.slice(0):this.caseOps=null}}class Oc{constructor(e){this._source=e,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=""}emitUnchanged(e){this._emitStatic(this._source.substring(this._lastCharIndex,e)),this._lastCharIndex=e}emitStatic(e,t){this._emitStatic(e),this._lastCharIndex=t}_emitStatic(e){0!==e.length&&(this._currentStaticPiece+=e)}emitMatchIndex(e,t,i){0!==this._currentStaticPiece.length&&(this._result[this._resultLen++]=Ac.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),this._result[this._resultLen++]=Ac.caseOps(e,i),this._lastCharIndex=t}finalize(){return this.emitUnchanged(this._source.length),0!==this._currentStaticPiece.length&&(this._result[this._resultLen++]=Ac.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),new Ec(this._result)}}const Fc=new ae.uy("findWidgetVisible",!1),Wc=(Fc.toNegated(),new ae.uy("findInputFocussed",!1)),Hc=new ae.uy("replaceInputFocussed",!1),Vc={primary:545,mac:{primary:2593}},Bc={primary:565,mac:{primary:2613}},zc={primary:560,mac:{primary:2608}},Uc={primary:554,mac:{primary:2602}},Kc={primary:558,mac:{primary:2606}},jc="actions.find",qc="actions.findWithSelection",Gc="editor.actions.findWithArgs",Qc="editor.action.nextMatchFindAction",Zc="editor.action.previousMatchFindAction",Yc="editor.action.goToMatchFindAction",Jc="editor.action.nextSelectionMatchFindAction",$c="editor.action.previousSelectionMatchFindAction",Xc="editor.action.startFindReplaceAction",eh="closeFindWidget",th="toggleFindCaseSensitive",ih="toggleFindWholeWord",oh="toggleFindRegex",nh="toggleFindInSelection",sh="togglePreserveCase",rh="editor.action.replaceOne",ah="editor.action.replaceAll",lh="editor.action.selectAllMatches",dh=19999;class ch{constructor(e,t){this._toDispose=new Fe.SL,this._editor=e,this._state=t,this._isDisposed=!1,this._startSearchingTimer=new Oe._F,this._decorations=new kc(e),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new Oe.pY((()=>this.research(!1)),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition((e=>{3!==e.reason&&5!==e.reason&&6!==e.reason||this._decorations.setStartPosition(this._editor.getPosition())}))),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent((e=>{this._ignoreModelContentChanged||(e.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())}))),this._toDispose.add(this._state.onFindReplaceStateChange((e=>this._onStateChanged(e)))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,(0,Fe.B9)(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(e){if(!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((()=>{e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)}),240)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)}}static _getSearchRange(e,t){return t||e.getFullModelRange()}research(e,t){let i=null;"undefined"!==typeof t?null!==t&&(i=Array.isArray(t)?t:[t]):i=this._decorations.getFindScopes(),null!==i&&(i=i.map((e=>{if(e.startLineNumber!==e.endLineNumber){let t=e.endLineNumber;return 1===e.endColumn&&(t-=1),new He.e(e.startLineNumber,1,t,this._editor.getModel().getLineMaxColumn(t))}return e})));const o=this._findMatches(i,!1,dh);this._decorations.set(o,i);const n=this._editor.getSelection();let s=this._decorations.getCurrentMatchesPosition(n);if(0===s&&o.length>0){const e=(0,Nc.J_)(o.map((e=>e.range)),(e=>He.e.compareRangesUsingStarts(e,n)>=0));s=e>0?e-1+1:s}this._state.changeMatchInfo(s,this._decorations.getCount(),void 0),e&&this._editor.getOption(41).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1}_setCurrentFindMatch(e){const t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)}_prevSearchPosition(e){const t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:o}=e;const n=this._editor.getModel();return t||1===o?(1===i?i=n.getLineCount():i--,o=n.getLineMaxColumn(i)):o--,new We.L(i,o)}_moveToPrevMatch(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this._state.canNavigateBack()){const t=this._decorations.matchAfterPosition(e);return void(t&&this._setCurrentFindMatch(t))}if(this._decorations.getCount()<dh){let t=this._decorations.matchBeforePosition(e);return t&&t.isEmpty()&&t.getStartPosition().equals(e)&&(e=this._prevSearchPosition(e),t=this._decorations.matchBeforePosition(e)),void(t&&this._setCurrentFindMatch(t))}if(this._cannotFind())return;const i=this._decorations.getFindScope(),o=ch._getSearchRange(this._editor.getModel(),i);o.getEndPosition().isBefore(e)&&(e=o.getEndPosition()),e.isBefore(o.getStartPosition())&&(e=o.getEndPosition());const{lineNumber:n,column:s}=e,r=this._editor.getModel();let a=new We.L(n,s),l=r.findPreviousMatch(this._state.searchString,a,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(131):null,!1);return l&&l.range.isEmpty()&&l.range.getStartPosition().equals(a)&&(a=this._prevSearchPosition(a),l=r.findPreviousMatch(this._state.searchString,a,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(131):null,!1)),l?t||o.containsRange(l.range)?void this._setCurrentFindMatch(l.range):this._moveToPrevMatch(l.range.getStartPosition(),!0):void 0}moveToPrevMatch(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}_nextSearchPosition(e){const t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:o}=e;const n=this._editor.getModel();return t||o===n.getLineMaxColumn(i)?(i===n.getLineCount()?i=1:i++,o=1):o++,new We.L(i,o)}_moveToNextMatch(e){if(!this._state.canNavigateForward()){const t=this._decorations.matchBeforePosition(e);return void(t&&this._setCurrentFindMatch(t))}if(this._decorations.getCount()<dh){let 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))}const t=this._getNextMatch(e,!1,!0);t&&this._setCurrentFindMatch(t.range)}_getNextMatch(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(this._cannotFind())return null;const n=this._decorations.getFindScope(),s=ch._getSearchRange(this._editor.getModel(),n);s.getEndPosition().isBefore(e)&&(e=s.getStartPosition()),e.isBefore(s.getStartPosition())&&(e=s.getStartPosition());const{lineNumber:r,column:a}=e,l=this._editor.getModel();let d=new We.L(r,a),c=l.findNextMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(131):null,t);return i&&c&&c.range.isEmpty()&&c.range.getStartPosition().equals(d)&&(d=this._nextSearchPosition(d),c=l.findNextMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(131):null,t)),c?o||s.containsRange(c.range)?c:this._getNextMatch(c.range.getEndPosition(),t,i,!0):null}moveToNextMatch(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}_moveToMatch(e){const t=this._decorations.getDecorationRangeAt(e);t&&this._setCurrentFindMatch(t)}moveToMatch(e){this._moveToMatch(e)}_getReplacePattern(){return this._state.isRegex?function(e){if(!e||0===e.length)return new Ec(null);const t=[],i=new Oc(e);for(let o=0,n=e.length;o<n;o++){const s=e.charCodeAt(o);if(92!==s){if(36===s){if(o++,o>=n)break;const s=e.charCodeAt(o);if(36===s){i.emitUnchanged(o-1),i.emitStatic("$",o+1);continue}if(48===s||38===s){i.emitUnchanged(o-1),i.emitMatchIndex(0,o+1,t),t.length=0;continue}if(49<=s&&s<=57){let r=s-48;if(o+1<n){const n=e.charCodeAt(o+1);if(48<=n&&n<=57){o++,r=10*r+(n-48),i.emitUnchanged(o-2),i.emitMatchIndex(r,o+1,t),t.length=0;continue}}i.emitUnchanged(o-1),i.emitMatchIndex(r,o+1,t),t.length=0;continue}}}else{if(o++,o>=n)break;const s=e.charCodeAt(o);switch(s){case 92:i.emitUnchanged(o-1),i.emitStatic("\\",o+1);break;case 110:i.emitUnchanged(o-1),i.emitStatic("\n",o+1);break;case 116:i.emitUnchanged(o-1),i.emitStatic("\t",o+1);break;case 117:case 85:case 108:case 76:i.emitUnchanged(o-1),i.emitStatic("",o+1),t.push(String.fromCharCode(s))}}}return i.finalize()}(this._state.replaceString):Ec.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;const e=this._getReplacePattern(),t=this._editor.getSelection(),i=this._getNextMatch(t.getStartPosition(),!0,!1);if(i)if(t.equalsRange(i.range)){const o=e.buildReplaceString(i.matches,this._state.preserveCase),n=new $e.T4(t,o);this._executeEditorCommand("replace",n),this._decorations.setStartPosition(new We.L(t.startLineNumber,t.startColumn+o.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(i.range)}_findMatches(e,t,i){const o=(e||[null]).map((e=>ch._getSearchRange(this._editor.getModel(),e)));return this._editor.getModel().findMatches(this._state.searchString,o,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(131):null,t,i)}replaceAll(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();null===e&&this._state.matchesCount>=dh?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}_largeReplaceAll(){const e=new Lc.bc(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(131):null).parseSearchRequest();if(!e)return;let t=e.regex;if(!t.multiline){let e="mu";t.ignoreCase&&(e+="i"),t.global&&(e+="g"),t=new RegExp(t.source,e)}const i=this._editor.getModel(),o=i.getValue(1),n=i.getFullModelRange(),s=this._getReplacePattern();let r;const a=this._state.preserveCase;r=s.hasReplacementPatterns||a?o.replace(t,(function(){return s.buildReplaceString(arguments,a)})):o.replace(t,s.buildReplaceString(null,a));const l=new $e.hP(n,r,this._editor.getSelection());this._executeEditorCommand("replaceAll",l)}_regularReplaceAll(e){const t=this._getReplacePattern(),i=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),o=[];for(let s=0,r=i.length;s<r;s++)o[s]=t.buildReplaceString(i[s].matches,this._state.preserveCase);const n=new Dc(this._editor.getSelection(),i.map((e=>e.range)),o);this._executeEditorCommand("replaceAll",n)}selectAllMatches(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();let t=this._findMatches(e,!1,1073741824).map((e=>new ke.Y(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)));const i=this._editor.getSelection();for(let o=0,n=t.length;o<n;o++){if(t[o].equalsRange(i)){t=[i].concat(t.slice(0,o)).concat(t.slice(o+1));break}}this._editor.setSelections(t)}_executeEditorCommand(e,t){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(e,t),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}var hh=i(14456),uh=i(14561);class gh extends Ss.${constructor(e,t,i){super(),this._hideSoon=this._register(new Oe.pY((()=>this._hide()),2e3)),this._isVisible=!1,this._editor=e,this._state=t,this._keybindingService=i,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const o={inputActiveOptionBorder:(0,ze.n_1)(ze.PRb),inputActiveOptionForeground:(0,ze.n_1)(ze.Pvw),inputActiveOptionBackground:(0,ze.n_1)(ze.XEs)},n=this._register((0,uh.p0)());this.caseSensitive=this._register(new hh.rk({appendTitle:this._keybindingLabelFor(th),isChecked:this._state.matchCase,hoverDelegate:n,...o})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange((()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)}))),this.wholeWords=this._register(new hh.Qx({appendTitle:this._keybindingLabelFor(ih),isChecked:this._state.wholeWord,hoverDelegate:n,...o})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange((()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)}))),this.regex=this._register(new hh.eH({appendTitle:this._keybindingLabelFor(oh),isChecked:this._state.isRegex,hoverDelegate:n,...o})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange((()=>{this._state.change({isRegex:this.regex.checked},!1)}))),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange((e=>{let t=!1;e.isRegex&&(this.regex.checked=this._state.isRegex,t=!0),e.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,t=!0),e.matchCase&&(this.caseSensitive.checked=this._state.matchCase,t=!0),!this._state.isRevealed&&t&&this._revealTemporarily()}))),this._register(X.nm(this._domNode,X.tw.MOUSE_LEAVE,(e=>this._onMouseLeave()))),this._register(X.nm(this._domNode,"mouseover",(e=>this._onMouseOver())))}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?" (".concat(t.getLabel(),")"):""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return gh.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}}function ph(e,t){return 1===e||2!==e&&t}gh.ID="editor.contrib.findOptionsWidget";class mh extends Fe.JT{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return ph(this._isRegexOverride,this._isRegex)}get wholeWord(){return ph(this._wholeWordOverride,this._wholeWord)}get matchCase(){return ph(this._matchCaseOverride,this._matchCase)}get preserveCase(){return ph(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super(),this._onFindReplaceStateChange=this._register(new ui.Q5),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(e,t,i){const o={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,isSearching:!1,filters:!1};let n=!1;0===t&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,o.matchesPosition=!0,n=!0),this._matchesCount!==t&&(this._matchesCount=t,o.matchesCount=!0,n=!0),"undefined"!==typeof i&&(He.e.equalsRange(this._currentMatch,i)||(this._currentMatch=i,o.currentMatch=!0,n=!0)),n&&this._onFindReplaceStateChange.fire(o)}change(e,t){var i;const o={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,isSearching:!1,filters:!1};let n=!1;const s=this.isRegex,r=this.wholeWord,a=this.matchCase,l=this.preserveCase;"undefined"!==typeof e.searchString&&this._searchString!==e.searchString&&(this._searchString=e.searchString,o.searchString=!0,n=!0),"undefined"!==typeof e.replaceString&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,o.replaceString=!0,n=!0),"undefined"!==typeof e.isRevealed&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,o.isRevealed=!0,n=!0),"undefined"!==typeof e.isReplaceRevealed&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,o.isReplaceRevealed=!0,n=!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===(i=e.searchScope)||void 0===i?void 0:i.every((e=>{var t;return null===(t=this._searchScope)||void 0===t?void 0:t.some((t=>!He.e.equalsRange(t,e)))})))||(this._searchScope=e.searchScope,o.searchScope=!0,n=!0)),"undefined"!==typeof e.loop&&this._loop!==e.loop&&(this._loop=e.loop,o.loop=!0,n=!0),"undefined"!==typeof e.isSearching&&this._isSearching!==e.isSearching&&(this._isSearching=e.isSearching,o.isSearching=!0,n=!0),"undefined"!==typeof e.filters&&(this._filters?this._filters.update(e.filters):this._filters=e.filters,o.filters=!0,n=!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,s!==this.isRegex&&(n=!0,o.isRegex=!0),r!==this.wholeWord&&(n=!0,o.wholeWord=!0),a!==this.matchCase&&(n=!0,o.matchCase=!0),l!==this.preserveCase&&(n=!0,o.preserveCase=!0),n&&this._onFindReplaceStateChange.fire(o)}canNavigateBack(){return this.canNavigateInLoop()||1!==this.matchesPosition}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=dh}}var _h=i(79242),fh=i(51459),vh=i(92707);i(35542);const bh=ne.NC("defaultLabel","input"),Ch=ne.NC("label.preserveCaseToggle","Preserve Case");class Sh extends _h.Z{constructor(e){var t;super({icon:$.l.preserveCase,title:Ch+e.appendTitle,isChecked:e.isChecked,hoverDelegate:null!==(t=e.hoverDelegate)&&void 0!==t?t:(0,uh.tM)("element"),inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class yh extends Ss.${constructor(e,t,i,o){super(),this._showOptionButtons=i,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new ui.Q5),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new ui.Q5),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new ui.Q5),this._onInput=this._register(new ui.Q5),this._onKeyUp=this._register(new ui.Q5),this._onPreserveCaseKeyDown=this._register(new ui.Q5),this.onPreserveCaseKeyDown=this._onPreserveCaseKeyDown.event,this.contextViewProvider=t,this.placeholder=o.placeholder||"",this.validation=o.validation,this.label=o.label||bh;const n=o.appendPreserveCaseLabel||"",s=o.history||[],r=!!o.flexibleHeight,a=!!o.flexibleWidth,l=o.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new vh.pG(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:s,showHistoryHint:o.showHistoryHint,flexibleHeight:r,flexibleWidth:a,flexibleMaxHeight:l,inputBoxStyles:o.inputBoxStyles})),this.preserveCase=this._register(new Sh({appendTitle:n,isChecked:!1,...o.toggleStyles})),this._register(this.preserveCase.onChange((e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()}))),this._register(this.preserveCase.onKeyDown((e=>{this._onPreserveCaseKeyDown.fire(e)}))),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;const d=[this.preserveCase.domNode];this.onkeydown(this.domNode,(e=>{if(e.equals(15)||e.equals(17)||e.equals(9)){const t=d.indexOf(this.domNode.ownerDocument.activeElement);if(t>=0){let i=-1;e.equals(17)?i=(t+1)%d.length:e.equals(15)&&(i=0===t?d.length-1:t-1),e.equals(9)?(d[t].blur(),this.inputBox.focus()):i>=0&&d[i].focus(),X.zB.stop(e,!0)}}}));const c=document.createElement("div");c.className="controls",c.style.display=this._showOptionButtons?"block":"none",c.appendChild(this.preserveCase.domNode),this.domNode.appendChild(c),null===e||void 0===e||e.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,(e=>this._onKeyDown.fire(e))),this.onkeyup(this.inputBox.inputElement,(e=>this._onKeyUp.fire(e))),this.oninput(this.inputBox.inputElement,(e=>this._onInput.fire())),this.onmousedown(this.inputBox.inputElement,(e=>this._onMouseDown.fire(e)))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(e){e?this.enable():this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(e){this.preserveCase.checked=e}focusOnPreserve(){this.preserveCase.focus()}validate(){var e;null===(e=this.inputBox)||void 0===e||e.validate()}set width(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=e+"px"}dispose(){super.dispose()}}var wh=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},xh=function(e,t){return function(i,o){t(i,o,e)}};const Nh=new ae.uy("suggestWidgetVisible",!1,(0,ne.NC)("suggestWidgetVisible","Whether suggestion are visible")),Lh="historyNavigationWidgetFocus",kh="historyNavigationForwardsEnabled",Dh="historyNavigationBackwardsEnabled";let Ih;const Rh=[];function Ph(e,t){if(Rh.includes(t))throw new Error("Cannot register the same widget multiple times");Rh.push(t);const i=new Fe.SL,o=new ae.uy(Lh,!1).bindTo(e),n=new ae.uy(kh,!0).bindTo(e),s=new ae.uy(Dh,!0).bindTo(e),r=()=>{o.set(!0),Ih=t},a=()=>{o.set(!1),Ih===t&&(Ih=void 0)};return(0,X.H9)(t.element)&&r(),i.add(t.onDidFocus((()=>r()))),i.add(t.onDidBlur((()=>a()))),i.add((0,Fe.OF)((()=>{Rh.splice(Rh.indexOf(t),1),a()}))),{historyNavigationForwardsEnablement:n,historyNavigationBackwardsEnablement:s,dispose(){i.dispose()}}}let Mh=class extends fh.V{constructor(e,t,i,o){super(e,t,i);const n=this._register(o.createScoped(this.inputBox.element));this._register(Ph(n,this.inputBox))}};Mh=wh([xh(3,ae.i6)],Mh);let Th=class extends yh{constructor(e,t,i,o){super(e,t,arguments.length>4&&void 0!==arguments[4]&&arguments[4],i);const n=this._register(o.createScoped(this.inputBox.element));this._register(Ph(n,this.inputBox))}};function Eh(e){var t,i;return"Up"===(null===(t=e.lookupKeybinding("history.showPrevious"))||void 0===t?void 0:t.getElectronAccelerator())&&"Down"===(null===(i=e.lookupKeybinding("history.showNext"))||void 0===i?void 0:i.getElectronAccelerator())}Th=wh([xh(3,ae.i6)],Th),Nr.W.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:ae.Ao.and(ae.Ao.has(Lh),ae.Ao.equals(Dh,!0),ae.Ao.not("isComposing"),Nh.isEqualTo(!1)),primary:16,secondary:[528],handler:e=>{null===Ih||void 0===Ih||Ih.showPreviousValue()}}),Nr.W.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:ae.Ao.and(ae.Ao.has(Lh),ae.Ao.equals(kh,!0),ae.Ao.not("isComposing"),Nh.isEqualTo(!1)),primary:18,secondary:[530],handler:e=>{null===Ih||void 0===Ih||Ih.showNextValue()}});var Ah=i(34392);const Oh=(0,ys.q5)("find-selection",$.l.selection,ne.NC("findSelectionIcon","Icon for 'Find in Selection' in the editor find widget.")),Fh=(0,ys.q5)("find-collapsed",$.l.chevronRight,ne.NC("findCollapsedIcon","Icon to indicate that the editor find widget is collapsed.")),Wh=(0,ys.q5)("find-expanded",$.l.chevronDown,ne.NC("findExpandedIcon","Icon to indicate that the editor find widget is expanded.")),Hh=(0,ys.q5)("find-replace",$.l.replace,ne.NC("findReplaceIcon","Icon for 'Replace' in the editor find widget.")),Vh=(0,ys.q5)("find-replace-all",$.l.replaceAll,ne.NC("findReplaceAllIcon","Icon for 'Replace All' in the editor find widget.")),Bh=(0,ys.q5)("find-previous-match",$.l.arrowUp,ne.NC("findPreviousMatchIcon","Icon for 'Find Previous' in the editor find widget.")),zh=(0,ys.q5)("find-next-match",$.l.arrowDown,ne.NC("findNextMatchIcon","Icon for 'Find Next' in the editor find widget.")),Uh=ne.NC("label.findDialog","Find / Replace"),Kh=ne.NC("label.find","Find"),jh=ne.NC("placeholder.find","Find"),qh=ne.NC("label.previousMatchButton","Previous Match"),Gh=ne.NC("label.nextMatchButton","Next Match"),Qh=ne.NC("label.toggleSelectionFind","Find in Selection"),Zh=ne.NC("label.closeButton","Close"),Yh=ne.NC("label.replace","Replace"),Jh=ne.NC("placeholder.replace","Replace"),$h=ne.NC("label.replaceButton","Replace"),Xh=ne.NC("label.replaceAllButton","Replace All"),eu=ne.NC("label.toggleReplaceButton","Toggle Replace"),tu=ne.NC("title.matchesCountLimit","Only the first {0} results are highlighted, but all find operations work on the entire text.",dh),iu=ne.NC("label.matchesLocation","{0} of {1}"),ou=ne.NC("label.noResults","No results"),nu=419;let su=69;const ru="ctrlEnterReplaceAll.windows.donotask",au=it.dz?256:2048;class lu{constructor(e){this.afterLineNumber=e,this.heightInPx=33,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function du(e,t,i){const o=!!t.match(/\n/);i&&o&&i.selectionStart>0&&e.stopPropagation()}function cu(e,t,i){const o=!!t.match(/\n/);i&&o&&i.selectionEnd<i.value.length&&e.stopPropagation()}class hu extends Ss.${constructor(e,t,i,o,n,s,r,a,l){super(),this._cachedHeight=null,this._revealTimeouts=[],this._codeEditor=e,this._controller=t,this._state=i,this._contextViewProvider=o,this._keybindingService=n,this._contextKeyService=s,this._storageService=a,this._notificationService=l,this._ctrlEnterReplaceAllWarningPrompted=!!a.getBoolean(ru,0),this._isVisible=!1,this._isReplaceVisible=!1,this._ignoreChangeEvent=!1,this._updateHistoryDelayer=new Oe.vp(500),this._register((0,Fe.OF)((()=>this._updateHistoryDelayer.cancel()))),this._register(this._state.onFindReplaceStateChange((e=>this._onStateChanged(e)))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration((e=>{if(e.hasChanged(91)&&(this._codeEditor.getOption(91)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),e.hasChanged(145)&&this._tryUpdateWidgetWidth(),e.hasChanged(2)&&this.updateAccessibilitySupport(),e.hasChanged(41)){const e=this._codeEditor.getOption(41).loop;this._state.change({loop:e},!1);const t=this._codeEditor.getOption(41).addExtraSpaceOnTop;t&&!this._viewZone&&(this._viewZone=new lu(0),this._showViewZone()),!t&&this._viewZone&&this._removeViewZone()}}))),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection((()=>{this._isVisible&&this._updateToggleSelectionFindButton()}))),this._register(this._codeEditor.onDidFocusEditorWidget((async()=>{if(this._isVisible){const e=await this._controller.getGlobalBufferTerm();e&&e!==this._state.searchString&&(this._state.change({searchString:e},!1),this._findInput.select())}}))),this._findInputFocused=Wc.bindTo(s),this._findFocusTracker=this._register(X.go(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus((()=>{this._findInputFocused.set(!0),this._updateSearchScope()}))),this._register(this._findFocusTracker.onDidBlur((()=>{this._findInputFocused.set(!1)}))),this._replaceInputFocused=Hc.bindTo(s),this._replaceFocusTracker=this._register(X.go(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus((()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()}))),this._register(this._replaceFocusTracker.onDidBlur((()=>{this._replaceInputFocused.set(!1)}))),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(41).addExtraSpaceOnTop&&(this._viewZone=new lu(0)),this._register(this._codeEditor.onDidChangeModel((()=>{this._isVisible&&(this._viewZoneId=void 0)}))),this._register(this._codeEditor.onDidScrollChange((e=>{e.scrollTopChanged?this._layoutViewZone():setTimeout((()=>{this._layoutViewZone()}),0)})))}getId(){return hu.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(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(91)||this._isReplaceVisible||(this._isReplaceVisible=!0,this._replaceInput.width=X.w(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){const e=this._state.searchString.length>0&&0===this._state.matchesCount;this._domNode.classList.toggle("no-results",e),this._updateMatchesCount(),this._updateButtons()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory(),e.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,Ji.dL)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){let e;if(this._matchesCount.style.minWidth=su+"px",this._state.matchesCount>=dh?this._matchesCount.title=tu:this._matchesCount.title="",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild),this._state.matchesCount>0){let t=String(this._state.matchesCount);this._state.matchesCount>=dh&&(t+="+");let i=String(this._state.matchesPosition);"0"===i&&(i="?"),e=ii.WU(iu,i,t)}else e=ou;this._matchesCount.appendChild(document.createTextNode(e)),(0,xe.Z9)(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),su=Math.max(su,this._matchesCount.clientWidth)}_getAriaLabel(e,t,i){if(e===ou)return""===i?ne.NC("ariaSearchNoResultEmpty","{0} found",e):ne.NC("ariaSearchNoResult","{0} found for '{1}'",e,i);if(t){const o=ne.NC("ariaSearchNoResultWithLineNum","{0} found for '{1}', at {2}",e,i,t.startLineNumber+":"+t.startColumn),n=this._codeEditor.getModel();if(n&&t.startLineNumber<=n.getLineCount()&&t.startLineNumber>=1){const e=n.getLineContent(t.startLineNumber);return"".concat(e,", ").concat(o)}return o}return ne.NC("ariaSearchNoResultWithLineNumNoCurrentMatch","{0} found for '{1}'",e,i)}_updateToggleSelectionFindButton(){const e=this._codeEditor.getSelection(),t=!!e&&(e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn),i=this._toggleSelectionFind.checked;this._isVisible&&(i||t)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);const 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);const i=!this._codeEditor.getOption(91);this._toggleReplaceBtn.setEnabled(this._isVisible&&i)}_reveal(){if(this._revealTimeouts.forEach((e=>{clearTimeout(e)})),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const e=this._codeEditor.getSelection();switch(this._codeEditor.getOption(41).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{const t=!!e&&e.startLineNumber!==e.endLineNumber;this._toggleSelectionFind.checked=t;break}}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout((()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false")}),0)),this._revealTimeouts.push(setTimeout((()=>{this._findInput.validate()}),200)),this._codeEditor.layoutOverlayWidget(this);let t=!0;if(this._codeEditor.getOption(41).seedSearchStringFromSelection&&e){const i=this._codeEditor.getDomNode();if(i){const o=X.i(i),n=this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()),s=o.left+(n?n.left:0),r=n?n.top:0;if(this._viewZone&&r<this._viewZone.heightInPx){e.endLineNumber>e.startLineNumber&&(t=!1);const i=X.xQ(this._domNode).left;s>i&&(t=!1);const n=this._codeEditor.getScrolledVisiblePosition(e.getEndPosition());o.left+(n?n.left:0)>i&&(t=!1)}}}this._showViewZone(t)}}_hide(e){this._revealTimeouts.forEach((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())}_layoutViewZone(e){if(!this._codeEditor.getOption(41).addExtraSpaceOnTop)return void this._removeViewZone();if(!this._isVisible)return;const t=this._viewZone;void 0===this._viewZoneId&&t&&this._codeEditor.changeViewZones((i=>{t.heightInPx=this._getHeight(),this._viewZoneId=i.addZone(t),this._codeEditor.setScrollTop(e||this._codeEditor.getScrollTop()+t.heightInPx)}))}_showViewZone(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(!this._isVisible)return;if(!this._codeEditor.getOption(41).addExtraSpaceOnTop)return;void 0===this._viewZone&&(this._viewZone=new lu(0));const t=this._viewZone;this._codeEditor.changeViewZones((i=>{if(void 0!==this._viewZoneId){const o=this._getHeight();if(o===t.heightInPx)return;const n=o-t.heightInPx;return t.heightInPx=o,i.layoutZone(this._viewZoneId),void(e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+n))}{let o=this._getHeight();if(o-=this._codeEditor.getOption(84).top,o<=0)return;t.heightInPx=o,this._viewZoneId=i.addZone(t),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+o)}}))}_removeViewZone(){this._codeEditor.changeViewZones((e=>{void 0!==this._viewZoneId&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))}))}_tryUpdateWidgetWidth(){if(!this._isVisible)return;if(!this._domNode.isConnected)return;const e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0)return void this._domNode.classList.add("hiddenEditor");this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const t=e.width,i=e.minimap.minimapWidth;let o=!1,n=!1,s=!1;if(this._resized){if(X.w(this._domNode)>nu)return this._domNode.style.maxWidth="".concat(t-28-i-15,"px"),void(this._replaceInput.width=X.w(this._findInput.domNode))}if(447+i>=t&&(n=!0),447+i-su>=t&&(s=!0),447+i-su>=t+50&&(o=!0),this._domNode.classList.toggle("collapsed-find-widget",o),this._domNode.classList.toggle("narrow-find-widget",s),this._domNode.classList.toggle("reduced-find-widget",n),s||o||(this._domNode.style.maxWidth="".concat(t-28-i-15,"px")),this._findInput.layout({collapsedFindWidget:o,narrowFindWidget:s,reducedFindWidget:n}),this._resized){const e=this._findInput.inputBox.element.clientWidth;e>0&&(this._replaceInput.width=e)}else this._isReplaceVisible&&(this._replaceInput.width=X.w(this._findInput.domNode))}_getHeight(){let e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4,e}_tryUpdateHeight(){const e=this._getHeight();return(null===this._cachedHeight||this._cachedHeight!==e)&&(this._cachedHeight=e,this._domNode.style.height="".concat(e,"px"),!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){const e=this._codeEditor.getSelections();e.map((e=>{1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber-1)));const t=this._state.currentMatch;return e.startLineNumber===e.endLineNumber||He.e.equalsRange(e,t)?null:e})).filter((e=>!!e)),e.length&&this._state.change({searchScope:e},!0)}}_onFindInputMouseDown(e){e.middleButton&&e.stopPropagation()}_onFindInputKeyDown(e){return e.equals(3|au)?(this._keybindingService.dispatchEvent(e,e.target)||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)?du(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):e.equals(18)?cu(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):void 0}_onReplaceInputKeyDown(e){return e.equals(3|au)?(this._keybindingService.dispatchEvent(e,e.target)||(it.ED&&it.tY&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(ne.NC("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(ru,!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)?du(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):e.equals(18)?cu(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):void 0}getVerticalSashLeft(e){return 0}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?" (".concat(t.getLabel(),")"):""}_buildDomNode(){this._findInput=this._register(new Mh(null,this._contextViewProvider,{width:221,label:Kh,placeholder:jh,appendCaseSensitiveLabel:this._keybindingLabelFor(th),appendWholeWordsLabel:this._keybindingLabelFor(ih),appendRegexLabel:this._keybindingLabelFor(oh),validation:e=>{if(0===e.length||!this._findInput.getRegex())return null;try{return new RegExp(e,"gu"),null}catch(t){return{content:t.message}}},flexibleHeight:true,flexibleWidth:true,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>Eh(this._keybindingService),inputBoxStyles:Fo.Hc,toggleStyles:Fo.pl},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown((e=>this._onFindInputKeyDown(e)))),this._register(this._findInput.inputBox.onDidChange((()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)}))),this._register(this._findInput.onDidOptionChange((()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)}))),this._register(this._findInput.onCaseSensitiveKeyDown((e=>{e.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),e.preventDefault())}))),this._register(this._findInput.onRegexKeyDown((e=>{e.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),e.preventDefault())}))),this._register(this._findInput.inputBox.onDidHeightChange((e=>{this._tryUpdateHeight()&&this._showViewZone()}))),it.IJ&&this._register(this._findInput.onMouseDown((e=>this._onFindInputMouseDown(e)))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount();const e=this._register((0,uh.p0)());this._prevBtn=this._register(new uu({label:qh+this._keybindingLabelFor(Zc),icon:Bh,hoverDelegate:e,onTrigger:()=>{(0,Dn.cW)(this._codeEditor.getAction(Zc)).run().then(void 0,Ji.dL)}})),this._nextBtn=this._register(new uu({label:Gh+this._keybindingLabelFor(Qc),icon:zh,hoverDelegate:e,onTrigger:()=>{(0,Dn.cW)(this._codeEditor.getAction(Qc)).run().then(void 0,Ji.dL)}}));const t=document.createElement("div");t.className="find-part",t.appendChild(this._findInput.domNode);const i=document.createElement("div");i.className="find-actions",t.appendChild(i),i.appendChild(this._matchesCount),i.appendChild(this._prevBtn.domNode),i.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new _h.Z({icon:Oh,title:Qh+this._keybindingLabelFor(nh),isChecked:!1,hoverDelegate:e,inputActiveOptionBackground:(0,ze.n_1)(ze.XEs),inputActiveOptionBorder:(0,ze.n_1)(ze.PRb),inputActiveOptionForeground:(0,ze.n_1)(ze.Pvw)})),this._register(this._toggleSelectionFind.onChange((()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let e=this._codeEditor.getSelections();e=e.map((e=>(1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber-1))),e.isEmpty()?null:e))).filter((e=>!!e)),e.length&&this._state.change({searchScope:e},!0)}}else this._state.change({searchScope:null},!0)}))),i.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new uu({label:Zh+this._keybindingLabelFor(eh),icon:ys.s_,hoverDelegate:e,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:e=>{e.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),e.preventDefault())}})),this._replaceInput=this._register(new Th(null,void 0,{label:Yh,placeholder:Jh,appendPreserveCaseLabel:this._keybindingLabelFor(sh),history:[],flexibleHeight:true,flexibleWidth:true,flexibleMaxHeight:118,showHistoryHint:()=>Eh(this._keybindingService),inputBoxStyles:Fo.Hc,toggleStyles:Fo.pl},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown((e=>this._onReplaceInputKeyDown(e)))),this._register(this._replaceInput.inputBox.onDidChange((()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)}))),this._register(this._replaceInput.inputBox.onDidHeightChange((e=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()}))),this._register(this._replaceInput.onDidOptionChange((()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)}))),this._register(this._replaceInput.onPreserveCaseKeyDown((e=>{e.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),e.preventDefault())})));const o=this._register((0,uh.p0)());this._replaceBtn=this._register(new uu({label:$h+this._keybindingLabelFor(rh),icon:Hh,hoverDelegate:o,onTrigger:()=>{this._controller.replace()},onKeyDown:e=>{e.equals(1026)&&(this._closeBtn.focus(),e.preventDefault())}})),this._replaceAllBtn=this._register(new uu({label:Xh+this._keybindingLabelFor(ah),icon:Vh,hoverDelegate:o,onTrigger:()=>{this._controller.replaceAll()}}));const n=document.createElement("div");n.className="replace-part",n.appendChild(this._replaceInput.domNode);const s=document.createElement("div");s.className="replace-actions",n.appendChild(s),s.appendChild(this._replaceBtn.domNode),s.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new uu({label:eu,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=X.w(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._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.ariaLabel=Uh,this._domNode.role="dialog",this._domNode.style.width="".concat(nu,"px"),this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(t),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(n),this._resizeSash=this._register(new ir.g(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let r=nu;this._register(this._resizeSash.onDidStart((()=>{r=X.w(this._domNode)}))),this._register(this._resizeSash.onDidChange((e=>{this._resized=!0;const t=r+e.startX-e.currentX;if(t<nu)return;t>(parseFloat(X.Dx(this._domNode).maxWidth)||0)||(this._domNode.style.width="".concat(t,"px"),this._isReplaceVisible&&(this._replaceInput.width=X.w(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())}))),this._register(this._resizeSash.onDidReset((()=>{const e=X.w(this._domNode);if(e<nu)return;let t=nu;if(!this._resized||e===nu){const e=this._codeEditor.getLayoutInfo();t=e.width-28-e.minimap.minimapWidth-15,this._resized=!0}this._domNode.style.width="".concat(t,"px"),this._isReplaceVisible&&(this._replaceInput.width=X.w(this._findInput.domNode)),this._findInput.inputBox.layout()})))}updateAccessibilitySupport(){const e=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(2!==e)}}hu.ID="editor.contrib.findWidget";class uu extends Ss.${constructor(e){var t;super(),this._opts=e;let i="button";this._opts.className&&(i=i+" "+this._opts.className),this._opts.icon&&(i=i+" "+oi.k.asClassName(this._opts.icon)),this._domNode=document.createElement("div"),this._domNode.tabIndex=0,this._domNode.className=i,this._domNode.setAttribute("role","button"),this._domNode.setAttribute("aria-label",this._opts.label),this._register((0,Ah.g)(null!==(t=e.hoverDelegate)&&void 0!==t?t:(0,uh.tM)("element"),this._domNode,this._opts.label)),this.onclick(this._domNode,(e=>{this._opts.onTrigger(),e.preventDefault()})),this.onkeydown(this._domNode,(e=>{var t,i;if(e.equals(10)||e.equals(3))return this._opts.onTrigger(),void e.preventDefault();null===(i=(t=this._opts).onKeyDown)||void 0===i||i.call(t,e)}))}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(e){this._domNode.classList.toggle("disabled",!e),this._domNode.setAttribute("aria-disabled",String(!e)),this._domNode.tabIndex=e?0:-1}setExpanded(e){this._domNode.setAttribute("aria-expanded",String(!!e)),e?(this._domNode.classList.remove(...oi.k.asClassNameArray(Fh)),this._domNode.classList.add(...oi.k.asClassNameArray(Wh))):(this._domNode.classList.remove(...oi.k.asClassNameArray(Wh)),this._domNode.classList.add(...oi.k.asClassNameArray(Fh)))}}(0,Ue.Ic)(((e,t)=>{const i=e.getColor(ze.EiJ);i&&t.addRule(".monaco-editor .findMatch { border: 1px ".concat((0,nn.c3)(e.type)?"dotted":"solid"," ").concat(i,"; box-sizing: border-box; }"));const o=e.getColor(ze.gkn);o&&t.addRule(".monaco-editor .findScope { border: 1px ".concat((0,nn.c3)(e.type)?"dashed":"solid"," ").concat(o,"; }"));const n=e.getColor(ze.lRK);n&&t.addRule(".monaco-editor .find-widget { border: 1px solid ".concat(n,"; }"))}));var gu,pu=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},mu=function(e,t){return function(i,o){t(i,o,e)}};const _u=524288;function fu(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"single",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e.hasModel())return null;const o=e.getSelection();if("single"===t&&o.startLineNumber===o.endLineNumber||"multiple"===t)if(o.isEmpty()){const t=e.getConfiguredWordAtPosition(o.getStartPosition());if(t&&!1===i)return t.word}else if(e.getModel().getValueLengthInRange(o)<_u)return e.getModel().getValueInRange(o);return null}let vu=gu=class extends Fe.JT{get editor(){return this._editor}static get(e){return e.getContribution(gu.ID)}constructor(e,t,i,o,n){super(),this._editor=e,this._findWidgetVisible=Fc.bindTo(t),this._contextKeyService=t,this._storageService=i,this._clipboardService=o,this._notificationService=n,this._updateHistoryDelayer=new Oe.vp(500),this._state=this._register(new mh),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange((e=>this._onStateChanged(e)))),this._model=null,this._register(this._editor.onDidChangeModel((()=>{const e=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),e&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(41).loop})})))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(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)}saveQueryState(e){e.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1),e.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1),e.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1),e.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,1)}loadQueryState(){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)}isFindInputFocused(){return!!Wc.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let e=this._editor.getSelections();e=e.map((e=>(1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._editor.getModel().getLineMaxColumn(e.endLineNumber-1))),e.isEmpty()?null:e))).filter((e=>!!e)),e.length&&this._state.change({searchScope:e},!0)}}setSearchString(e){this._state.isRegex&&(e=ii.ec(e)),this._state.change({searchString:e},!1)}highlightFindOptions(){}async _start(e,t){if(this.disposeModel(),!this._editor.hasModel())return;const i={...t,isRevealed:!0};if("single"===e.seedSearchStringFromSelection){const t=fu(this._editor,e.seedSearchStringFromSelection,e.seedSearchStringFromNonEmptySelection);t&&(this._state.isRegex?i.searchString=ii.ec(t):i.searchString=t)}else if("multiple"===e.seedSearchStringFromSelection&&!e.updateSearchScope){const t=fu(this._editor,e.seedSearchStringFromSelection);t&&(i.searchString=t)}if(!i.searchString&&e.seedSearchStringFromGlobalClipboard){const e=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;e&&(i.searchString=e)}if(e.forceRevealReplace||i.isReplaceRevealed?i.isReplaceRevealed=!0:this._findWidgetVisible.get()||(i.isReplaceRevealed=!1),e.updateSearchScope){const e=this._editor.getSelections();e.some((e=>!e.isEmpty()))&&(i.searchScope=e)}i.loop=e.loop,this._state.change(i,!1),this._model||(this._model=new ch(this._editor,this._state))}start(e,t){return this._start(e,t)}moveToNextMatch(){return!!this._model&&(this._model.moveToNextMatch(),!0)}moveToPrevMatch(){return!!this._model&&(this._model.moveToPrevMatch(),!0)}goToMatch(e){return!!this._model&&(this._model.moveToMatch(e),!0)}replace(){return!!this._model&&(this._model.replace(),!0)}replaceAll(){var e;return!!this._model&&((null===(e=this._editor.getModel())||void 0===e?void 0:e.isTooLargeForHeapOperation())?(this._notificationService.warn(ne.NC("too.large.for.replaceall","The file is too large to perform a replace all operation.")),!1):(this._model.replaceAll(),!0))}selectAllMatches(){return!!this._model&&(this._model.selectAllMatches(),this._editor.focus(),!0)}async getGlobalBufferTerm(){return this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}setGlobalBufferTerm(e){this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}};vu.ID="editor.contrib.findController",vu=gu=pu([mu(1,ae.i6),mu(2,Mn.Uy),mu(3,Si.p),mu(4,Xi.lT)],vu);let bu=class extends vu{constructor(e,t,i,o,n,s,r,a){super(e,i,r,a,s),this._contextViewService=t,this._keybindingService=o,this._themeService=n,this._widget=null,this._findOptionsWidget=null}async _start(e,t){this._widget||this._createFindWidget();const i=this._editor.getSelection();let o=!1;switch(this._editor.getOption(41).autoFindInSelection){case"always":o=!0;break;case"never":o=!1;break;case"multiline":o=!!i&&i.startLineNumber!==i.endLineNumber;break}e.updateSearchScope=e.updateSearchScope||o,await super._start(e,t),this._widget&&(2===e.shouldFocus?this._widget.focusReplaceInput():1===e.shouldFocus&&this._widget.focusFindInput())}highlightFindOptions(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._widget||this._createFindWidget(),this._state.isRevealed&&!e?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new hu(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService)),this._findOptionsWidget=this._register(new gh(this._editor,this._state,this._keybindingService))}};bu=pu([mu(1,Li.u),mu(2,ae.i6),mu(3,ki.d),mu(4,Ue.XE),mu(5,Xi.lT),mu(6,Mn.Uy),mu(7,Si.p)],bu);(0,ee.rn)(new ee.jY({id:jc,label:ne.NC("startFindAction","Find"),alias:"Find",precondition:ae.Ao.or(oe.u.focus,ae.Ao.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:se.eH.MenubarEditMenu,group:"3_find",title:ne.NC({key:"miFind",comment:["&& denotes a mnemonic"]},"&&Find"),order:1}})).addImplementation(0,((e,t,i)=>{const o=vu.get(t);return!!o&&o.start({forceRevealReplace:!1,seedSearchStringFromSelection:"never"!==t.getOption(41).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===t.getOption(41).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:t.getOption(41).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop})}));const Cu={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},isRegex:{type:"boolean"},matchWholeWord:{type:"boolean"},isCaseSensitive:{type:"boolean"},preserveCase:{type:"boolean"},findInSelection:{type:"boolean"}}}}]};class Su extends ee.R6{constructor(){super({id:Gc,label:ne.NC("startFindWithArgsAction","Find With Arguments"),alias:"Find With Arguments",precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:Cu})}async run(e,t,i){const o=vu.get(t);if(o){const e=i?{searchString:i.searchString,replaceString:i.replaceString,isReplaceRevealed:void 0!==i.replaceString,isRegex:i.isRegex,wholeWord:i.matchWholeWord,matchCase:i.isCaseSensitive,preserveCase:i.preserveCase}:{};await o.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===o.getState().searchString.length&&"never"!==t.getOption(41).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===t.getOption(41).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:(null===i||void 0===i?void 0:i.findInSelection)||!1,loop:t.getOption(41).loop},e),o.setGlobalBufferTerm(o.getState().searchString)}}}class yu extends ee.R6{constructor(){super({id:qc,label:ne.NC("startFindWithSelectionAction","Find With Selection"),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(e,t){const i=vu.get(t);i&&(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),i.setGlobalBufferTerm(i.getState().searchString))}}class wu extends ee.R6{async run(e,t){const i=vu.get(t);i&&!this._run(i)&&(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===i.getState().searchString.length&&"never"!==t.getOption(41).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===t.getOption(41).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),this._run(i))}}class xu extends ee.R6{constructor(){super({id:Yc,label:ne.NC("findMatchAction.goToMatch","Go to Match..."),alias:"Go to Match...",precondition:Fc}),this._highlightDecorations=[]}run(e,t,i){const o=vu.get(t);if(!o)return;const n=o.getState().matchesCount;if(n<1){return void e.get(Xi.lT).notify({severity:Xi.zb.Warning,message:ne.NC("findMatchAction.noResults","No matches. Try searching for something else.")})}const s=e.get(wi.eJ).createInputBox();s.placeholder=ne.NC("findMatchAction.inputPlaceHolder","Type a number to go to a specific match (between 1 and {0})",n);const r=e=>{const t=parseInt(e);if(isNaN(t))return;const i=o.getState().matchesCount;return t>0&&t<=i?t-1:t<0&&t>=-i?i+t:void 0},a=e=>{const i=r(e);if("number"===typeof i){s.validationMessage=void 0,o.goToMatch(i);const e=o.getState().currentMatch;e&&this.addDecorations(t,e)}else s.validationMessage=ne.NC("findMatchAction.inputValidationMessage","Please type a number between 1 and {0}",o.getState().matchesCount),this.clearDecorations(t)};s.onDidChangeValue((e=>{a(e)})),s.onDidAccept((()=>{const e=r(s.value);"number"===typeof e?(o.goToMatch(e),s.hide()):s.validationMessage=ne.NC("findMatchAction.inputValidationMessage","Please type a number between 1 and {0}",o.getState().matchesCount)})),s.onDidHide((()=>{this.clearDecorations(t),s.dispose()})),s.show()}clearDecorations(e){e.changeDecorations((e=>{this._highlightDecorations=e.deltaDecorations(this._highlightDecorations,[])}))}addDecorations(e,t){e.changeDecorations((e=>{this._highlightDecorations=e.deltaDecorations(this._highlightDecorations,[{range:t,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:(0,Ue.EN)(xc.m9),position:Ve.sh.Full}}}])}))}}class Nu extends ee.R6{async run(e,t){const i=vu.get(t);if(!i)return;const o=fu(t,"single",!1);o&&i.setSearchString(o),this._run(i)||(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),this._run(i))}}(0,ee.rn)(new ee.jY({id:Xc,label:ne.NC("startReplace","Replace"),alias:"Replace",precondition:ae.Ao.or(oe.u.focus,ae.Ao.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:se.eH.MenubarEditMenu,group:"3_find",title:ne.NC({key:"miReplace",comment:["&& denotes a mnemonic"]},"&&Replace"),order:2}})).addImplementation(0,((e,t,i)=>{if(!t.hasModel()||t.getOption(91))return!1;const o=vu.get(t);if(!o)return!1;const n=t.getSelection(),s=o.isFindInputFocused(),r=!n.isEmpty()&&n.startLineNumber===n.endLineNumber&&"never"!==t.getOption(41).seedSearchStringFromSelection&&!s,a=s||r?2:1;return o.start({forceRevealReplace:!0,seedSearchStringFromSelection:r?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===t.getOption(41).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:"never"!==t.getOption(41).seedSearchStringFromSelection,shouldFocus:a,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop})})),(0,ee._K)(vu.ID,bu,0),(0,ee.Qr)(Su),(0,ee.Qr)(yu),(0,ee.Qr)(class extends wu{constructor(){super({id:Qc,label:ne.NC("findNextMatchAction","Find Next"),alias:"Find Next",precondition:void 0,kbOpts:[{kbExpr:oe.u.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:ae.Ao.and(oe.u.focus,Wc),primary:3,weight:100}]})}_run(e){return!!e.moveToNextMatch()&&(e.editor.pushUndoStop(),!0)}}),(0,ee.Qr)(class extends wu{constructor(){super({id:Zc,label:ne.NC("findPreviousMatchAction","Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:[{kbExpr:oe.u.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:ae.Ao.and(oe.u.focus,Wc),primary:1027,weight:100}]})}_run(e){return e.moveToPrevMatch()}}),(0,ee.Qr)(xu),(0,ee.Qr)(class extends Nu{constructor(){super({id:Jc,label:ne.NC("nextSelectionMatchFindAction","Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:oe.u.focus,primary:2109,weight:100}})}_run(e){return e.moveToNextMatch()}}),(0,ee.Qr)(class extends Nu{constructor(){super({id:$c,label:ne.NC("previousSelectionMatchFindAction","Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:oe.u.focus,primary:3133,weight:100}})}_run(e){return e.moveToPrevMatch()}});const Lu=ee._l.bindToContribution(vu.get);(0,ee.fK)(new Lu({id:eh,precondition:Fc,handler:e=>e.closeFindWidget(),kbOpts:{weight:105,kbExpr:ae.Ao.and(oe.u.focus,ae.Ao.not("isComposing")),primary:9,secondary:[1033]}})),(0,ee.fK)(new Lu({id:th,precondition:void 0,handler:e=>e.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:oe.u.focus,primary:Vc.primary,mac:Vc.mac,win:Vc.win,linux:Vc.linux}})),(0,ee.fK)(new Lu({id:ih,precondition:void 0,handler:e=>e.toggleWholeWords(),kbOpts:{weight:105,kbExpr:oe.u.focus,primary:Bc.primary,mac:Bc.mac,win:Bc.win,linux:Bc.linux}})),(0,ee.fK)(new Lu({id:oh,precondition:void 0,handler:e=>e.toggleRegex(),kbOpts:{weight:105,kbExpr:oe.u.focus,primary:zc.primary,mac:zc.mac,win:zc.win,linux:zc.linux}})),(0,ee.fK)(new Lu({id:nh,precondition:void 0,handler:e=>e.toggleSearchScope(),kbOpts:{weight:105,kbExpr:oe.u.focus,primary:Uc.primary,mac:Uc.mac,win:Uc.win,linux:Uc.linux}})),(0,ee.fK)(new Lu({id:sh,precondition:void 0,handler:e=>e.togglePreserveCase(),kbOpts:{weight:105,kbExpr:oe.u.focus,primary:Kc.primary,mac:Kc.mac,win:Kc.win,linux:Kc.linux}})),(0,ee.fK)(new Lu({id:rh,precondition:Fc,handler:e=>e.replace(),kbOpts:{weight:105,kbExpr:oe.u.focus,primary:3094}})),(0,ee.fK)(new Lu({id:rh,precondition:Fc,handler:e=>e.replace(),kbOpts:{weight:105,kbExpr:ae.Ao.and(oe.u.focus,Hc),primary:3}})),(0,ee.fK)(new Lu({id:ah,precondition:Fc,handler:e=>e.replaceAll(),kbOpts:{weight:105,kbExpr:oe.u.focus,primary:2563}})),(0,ee.fK)(new Lu({id:ah,precondition:Fc,handler:e=>e.replaceAll(),kbOpts:{weight:105,kbExpr:ae.Ao.and(oe.u.focus,Hc),primary:void 0,mac:{primary:2051}}})),(0,ee.fK)(new Lu({id:lh,precondition:Fc,handler:e=>e.selectAllMatches(),kbOpts:{weight:105,kbExpr:oe.u.focus,primary:515}}));const ku={0:" ",1:"u",2:"r"},Du=16777215,Iu=4278190080;class Ru{constructor(e){const t=Math.ceil(e/32);this._states=new Uint32Array(t)}get(e){const t=e/32|0,i=e%32;return 0!==(this._states[t]&1<<i)}set(e,t){const i=e/32|0,o=e%32,n=this._states[i];this._states[i]=t?n|1<<o:n&~(1<<o)}}class Pu{constructor(e,t,i){if(e.length!==t.length||e.length>65535)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=e,this._endIndexes=t,this._collapseStates=new Ru(e.length),this._userDefinedStates=new Ru(e.length),this._recoveredStates=new Ru(e.length),this._types=i,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const e=[],t=(t,i)=>{const o=e[e.length-1];return this.getStartLineNumber(o)<=t&&this.getEndLineNumber(o)>=i};for(let i=0,o=this._startIndexes.length;i<o;i++){const o=this._startIndexes[i],n=this._endIndexes[i];if(o>Du||n>Du)throw new Error("startLineNumber or endLineNumber must not exceed "+Du);for(;e.length>0&&!t(o,n);)e.pop();const s=e.length>0?e[e.length-1]:-1;e.push(i),this._startIndexes[i]=o+((255&s)<<24),this._endIndexes[i]=n+((65280&s)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(e){return this._startIndexes[e]&Du}getEndLineNumber(e){return this._endIndexes[e]&Du}getType(e){return this._types?this._types[e]:void 0}hasTypes(){return!!this._types}isCollapsed(e){return this._collapseStates.get(e)}setCollapsed(e,t){this._collapseStates.set(e,t)}isUserDefined(e){return this._userDefinedStates.get(e)}setUserDefined(e,t){return this._userDefinedStates.set(e,t)}isRecovered(e){return this._recoveredStates.get(e)}setRecovered(e,t){return this._recoveredStates.set(e,t)}getSource(e){return this.isUserDefined(e)?1:this.isRecovered(e)?2:0}setSource(e,t){1===t?(this.setUserDefined(e,!0),this.setRecovered(e,!1)):2===t?(this.setUserDefined(e,!1),this.setRecovered(e,!0)):(this.setUserDefined(e,!1),this.setRecovered(e,!1))}setCollapsedAllOfType(e,t){let i=!1;if(this._types)for(let o=0;o<this._types.length;o++)this._types[o]===e&&(this.setCollapsed(o,t),i=!0);return i}toRegion(e){return new Mu(this,e)}getParentIndex(e){this.ensureParentIndices();const t=((this._startIndexes[e]&Iu)>>>24)+((this._endIndexes[e]&Iu)>>>16);return 65535===t?-1:t}contains(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t}findIndex(e){let t=0,i=this._startIndexes.length;if(0===i)return-1;for(;t<i;){const o=Math.floor((t+i)/2);e<this.getStartLineNumber(o)?i=o:t=o+1}return t-1}findRange(e){let 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}toString(){const e=[];for(let t=0;t<this.length;t++)e[t]="[".concat(ku[this.getSource(t)]).concat(this.isCollapsed(t)?"+":"-","] ").concat(this.getStartLineNumber(t),"/").concat(this.getEndLineNumber(t));return e.join(", ")}toFoldRange(e){return{startLineNumber:this._startIndexes[e]&Du,endLineNumber:this._endIndexes[e]&Du,type:this._types?this._types[e]:void 0,isCollapsed:this.isCollapsed(e),source:this.getSource(e)}}static fromFoldRanges(e){const t=e.length,i=new Uint32Array(t),o=new Uint32Array(t);let n=[],s=!1;for(let a=0;a<t;a++){const t=e[a];i[a]=t.startLineNumber,o[a]=t.endLineNumber,n.push(t.type),t.type&&(s=!0)}s||(n=void 0);const r=new Pu(i,o,n);for(let a=0;a<t;a++)e[a].isCollapsed&&r.setCollapsed(a,!0),r.setSource(a,e[a].source);return r}static sanitizeAndMerge(e,t,i){i=null!==i&&void 0!==i?i:Number.MAX_VALUE;const o=(e,t)=>Array.isArray(e)?i=>i<t?e[i]:void 0:i=>i<t?e.toFoldRange(i):void 0,n=o(e,e.length),s=o(t,t.length);let r=0,a=0,l=n(0),d=s(0);const c=[];let h,u=0;const g=[];for(;l||d;){let e;if(d&&(!l||l.startLineNumber>=d.startLineNumber))l&&l.startLineNumber===d.startLineNumber?(1===d.source?e=d:(e=l,e.isCollapsed=d.isCollapsed&&l.endLineNumber===d.endLineNumber,e.source=0),l=n(++r)):(e=d,d.isCollapsed&&0===d.source&&(e.source=2)),d=s(++a);else{let t=a,i=d;for(;;){if(!i||i.startLineNumber>l.endLineNumber){e=l;break}if(1===i.source&&i.endLineNumber>l.endLineNumber)break;i=s(++t)}l=n(++r)}if(e){for(;h&&h.endLineNumber<e.startLineNumber;)h=c.pop();e.endLineNumber>e.startLineNumber&&e.startLineNumber>u&&e.endLineNumber<=i&&(!h||h.endLineNumber>=e.endLineNumber)&&(g.push(e),u=e.startLineNumber,h&&c.push(h),h=e)}}return g}}class Mu{constructor(e,t){this.ranges=e,this.index=t}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(e){return e.startLineNumber<=this.startLineNumber&&e.endLineNumber>=this.endLineNumber}containsLine(e){return this.startLineNumber<=e&&e<=this.endLineNumber}}var Tu=i(48367);class Eu{get regions(){return this._regions}get textModel(){return this._textModel}constructor(e,t){this._updateEventEmitter=new ui.Q5,this.onDidChange=this._updateEventEmitter.event,this._textModel=e,this._decorationProvider=t,this._regions=new Pu(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(e){if(!e.length)return;e=e.sort(((e,t)=>e.regionIndex-t.regionIndex));const t={};this._decorationProvider.changeDecorations((i=>{let o=0,n=-1,s=-1;const r=e=>{for(;o<e;){const e=this._regions.getEndLineNumber(o),t=this._regions.isCollapsed(o);if(e<=n){const n=0!==this.regions.getSource(o);i.changeDecorationOptions(this._editorDecorationIds[o],this._decorationProvider.getDecorationOption(t,e<=s,n))}t&&e>s&&(s=e),o++}};for(const a of e){const e=a.regionIndex,i=this._editorDecorationIds[e];if(i&&!t[i]){t[i]=!0,r(e);const o=!this._regions.isCollapsed(e);this._regions.setCollapsed(e,o),n=Math.max(n,this._regions.getEndLineNumber(e))}}r(this._regions.length)})),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}removeManualRanges(e){const t=new Array,i=t=>{for(const i of e)if(!(i.startLineNumber>t.endLineNumber||t.startLineNumber>i.endLineNumber))return!0;return!1};for(let o=0;o<this._regions.length;o++){const e=this._regions.toFoldRange(o);0!==e.source&&i(e)||t.push(e)}this.updatePost(Pu.fromFoldRanges(t))}update(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const i=this._currentFoldedOrManualRanges(t),o=Pu.sanitizeAndMerge(e,i,this._textModel.getLineCount());this.updatePost(Pu.fromFoldRanges(o))}updatePost(e){const t=[];let i=-1;for(let o=0,n=e.length;o<n;o++){const n=e.getStartLineNumber(o),s=e.getEndLineNumber(o),r=e.isCollapsed(o),a=0!==e.getSource(o),l={startLineNumber:n,startColumn:this._textModel.getLineMaxColumn(n),endLineNumber:s,endColumn:this._textModel.getLineMaxColumn(s)+1};t.push({range:l,options:this._decorationProvider.getDecorationOption(r,s<=i,a)}),r&&s>i&&(i=s)}this._decorationProvider.changeDecorations((e=>this._editorDecorationIds=e.deltaDecorations(this._editorDecorationIds,t))),this._regions=e,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t=(t,i)=>{for(const o of e)if(t<o&&o<=i)return!0;return!1},i=[];for(let o=0,n=this._regions.length;o<n;o++){let e=this.regions.isCollapsed(o);const n=this.regions.getSource(o);if(e||0!==n){const s=this._regions.toFoldRange(o),r=this._textModel.getDecorationRange(this._editorDecorationIds[o]);r&&(e&&t(r.startLineNumber,r.endLineNumber)&&(e=!1),i.push({startLineNumber:r.startLineNumber,endLineNumber:r.endLineNumber,type:s.type,isCollapsed:e,source:n}))}}return i}getMemento(){const e=this._currentFoldedOrManualRanges(),t=[],i=this._textModel.getLineCount();for(let o=0,n=e.length;o<n;o++){const n=e[o];if(n.startLineNumber>=n.endLineNumber||n.startLineNumber<1||n.endLineNumber>i)continue;const s=this._getLinesChecksum(n.startLineNumber+1,n.endLineNumber);t.push({startLineNumber:n.startLineNumber,endLineNumber:n.endLineNumber,isCollapsed:n.isCollapsed,source:n.source,checksum:s})}return t.length>0?t:void 0}applyMemento(e){var t,i;if(!Array.isArray(e))return;const o=[],n=this._textModel.getLineCount();for(const r of e){if(r.startLineNumber>=r.endLineNumber||r.startLineNumber<1||r.endLineNumber>n)continue;const e=this._getLinesChecksum(r.startLineNumber+1,r.endLineNumber);r.checksum&&e!==r.checksum||o.push({startLineNumber:r.startLineNumber,endLineNumber:r.endLineNumber,type:void 0,isCollapsed:null===(t=r.isCollapsed)||void 0===t||t,source:null!==(i=r.source)&&void 0!==i?i:0})}const s=Pu.sanitizeAndMerge(this._regions,o,n);this.updatePost(Pu.fromFoldRanges(s))}_getLinesChecksum(e,t){return(0,Tu.vp)(this._textModel.getLineContent(e)+this._textModel.getLineContent(t))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(e,t){const i=[];if(this._regions){let o=this._regions.findRange(e),n=1;for(;o>=0;){const e=this._regions.toRegion(o);t&&!t(e,n)||i.push(e),n++,o=e.parentIndex}}return i}getRegionAtLine(e){if(this._regions){const t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null}getRegionsInside(e,t){const i=[],o=e?e.regionIndex+1:0,n=e?e.endLineNumber:Number.MAX_VALUE;if(t&&2===t.length){const e=[];for(let s=o,r=this._regions.length;s<r;s++){const o=this._regions.toRegion(s);if(!(this._regions.getStartLineNumber(s)<n))break;for(;e.length>0&&!o.containedBy(e[e.length-1]);)e.pop();e.push(o),t(o,e.length)&&i.push(o)}}else for(let s=o,r=this._regions.length;s<r;s++){const e=this._regions.toRegion(s);if(!(this._regions.getStartLineNumber(s)<n))break;t&&!t(e)||i.push(e)}return i}}function Au(e,t,i){const o=[];for(const n of i){const i=e.getRegionAtLine(n);if(i){const n=!i.isCollapsed;if(o.push(i),t>1){const s=e.getRegionsInside(i,((e,i)=>e.isCollapsed!==n&&i<t));o.push(...s)}}}e.toggleCollapseState(o)}function Ou(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.MAX_VALUE,o=arguments.length>3?arguments[3]:void 0;const n=[];if(o&&o.length>0)for(const s of o){const o=e.getRegionAtLine(s);if(o&&(o.isCollapsed!==t&&n.push(o),i>1)){const s=e.getRegionsInside(o,((e,o)=>e.isCollapsed!==t&&o<i));n.push(...s)}}else{const o=e.getRegionsInside(null,((e,o)=>e.isCollapsed!==t&&o<i));n.push(...o)}e.toggleCollapseState(n)}function Fu(e,t,i,o){const n=[];for(const s of o){const o=e.getAllRegionsAtLine(s,((e,o)=>e.isCollapsed!==t&&o<=i));n.push(...o)}e.toggleCollapseState(n)}function Wu(e,t,i){const o=[];for(const s of i){const t=e.getAllRegionsAtLine(s,void 0);t.length>0&&o.push(t[0])}const n=e.getRegionsInside(null,(e=>o.every((t=>!t.containedBy(e)&&!e.containedBy(t)))&&e.isCollapsed!==t));e.toggleCollapseState(n)}function Hu(e,t,i){const o=e.textModel,n=e.regions,s=[];for(let r=n.length-1;r>=0;r--)if(i!==n.isCollapsed(r)){const e=n.getStartLineNumber(r);t.test(o.getLineContent(e))&&s.push(n.toRegion(r))}e.toggleCollapseState(s)}function Vu(e,t,i){const o=e.regions,n=[];for(let s=o.length-1;s>=0;s--)i!==o.isCollapsed(s)&&t===o.getType(s)&&n.push(o.toRegion(s));e.toggleCollapseState(n)}var Bu=i(55494);class zu{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(e){this._updateEventEmitter=new ui.Q5,this._hasLineChanges=!1,this._foldingModel=e,this._foldingModelListener=e.onDidChange((e=>this.updateHiddenRanges())),this._hiddenRanges=[],e.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(e){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=e.changes.some((e=>e.range.endLineNumber!==e.range.startLineNumber||0!==(0,Bu.Q)(e.text)[0])))}updateHiddenRanges(){let e=!1;const t=[];let i=0,o=0,n=Number.MAX_VALUE,s=-1;const r=this._foldingModel.regions;for(;i<r.length;i++){if(!r.isCollapsed(i))continue;const a=r.getStartLineNumber(i)+1,l=r.getEndLineNumber(i);n<=a&&l<=s||(!e&&o<this._hiddenRanges.length&&this._hiddenRanges[o].startLineNumber===a&&this._hiddenRanges[o].endLineNumber===l?(t.push(this._hiddenRanges[o]),o++):(e=!0,t.push(new He.e(a,1,l,1))),n=a,s=l)}(this._hasLineChanges||e||o<this._hiddenRanges.length)&&this.applyHiddenRanges(t)}applyHiddenRanges(e){this._hiddenRanges=e,this._hasLineChanges=!1,this._updateEventEmitter.fire(e)}hasRanges(){return this._hiddenRanges.length>0}isHidden(e){return null!==Uu(this._hiddenRanges,e)}adjustSelections(e){let t=!1;const i=this._foldingModel.textModel;let o=null;const n=e=>(o&&function(e,t){return e>=t.startLineNumber&&e<=t.endLineNumber}(e,o)||(o=Uu(this._hiddenRanges,e)),o?o.startLineNumber-1:null);for(let s=0,r=e.length;s<r;s++){let o=e[s];const r=n(o.startLineNumber);r&&(o=o.setStartPosition(r,i.getLineMaxColumn(r)),t=!0);const a=n(o.endLineNumber);a&&(o=o.setEndPosition(a,i.getLineMaxColumn(a)),t=!0),e[s]=o}return t}dispose(){this.hiddenRanges.length>0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}function Uu(e,t){const i=(0,Nc.J_)(e,(e=>t<e.startLineNumber))-1;return i>=0&&e[i].endLineNumber>=t?e[i]:null}class Ku{constructor(e,t,i){this.editorModel=e,this.languageConfigurationService=t,this.foldingRangesLimit=i,this.id="indent"}dispose(){}compute(e){const t=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,i=t&&!!t.offSide,o=t&&t.markers;return Promise.resolve(function(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:qu;const n=e.getOptions().tabSize,s=new ju(o);let r;i&&(r=new RegExp("(".concat(i.start.source,")|(?:").concat(i.end.source,")")));const a=[],l=e.getLineCount()+1;a.push({indent:-1,endAbove:l,line:l});for(let d=e.getLineCount();d>0;d--){const i=e.getLineContent(d),o=(0,Ro.q)(i,n);let l,c=a[a.length-1];if(-1!==o){if(r&&(l=i.match(r))){if(!l[1]){a.push({indent:-2,endAbove:d,line:d});continue}{let e=a.length-1;for(;e>0&&-2!==a[e].indent;)e--;if(e>0){a.length=e+1,c=a[e],s.insertFirst(d,c.line,o),c.line=d,c.indent=o,c.endAbove=d;continue}}}if(c.indent>o){do{a.pop(),c=a[a.length-1]}while(c.indent>o);const e=c.endAbove-1;e-d>=1&&s.insertFirst(d,e,o)}c.indent===o?c.endAbove=d:a.push({indent:o,endAbove:d,line:d})}else t&&(c.endAbove=d)}return s.toIndentRanges(e)}(this.editorModel,i,o,this.foldingRangesLimit))}}class ju{constructor(e){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}insertFirst(e,t,i){if(e>Du||t>Du)return;const o=this._length;this._startIndexes[o]=e,this._endIndexes[o]=t,this._length++,i<1e3&&(this._indentOccurrences[i]=(this._indentOccurrences[i]||0)+1)}toIndentRanges(e){const t=this._foldingRangesLimit.limit;if(this._length<=t){this._foldingRangesLimit.update(this._length,!1);const e=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let i=this._length-1,o=0;i>=0;i--,o++)e[o]=this._startIndexes[i],t[o]=this._endIndexes[i];return new Pu(e,t)}{this._foldingRangesLimit.update(this._length,t);let i=0,o=this._indentOccurrences.length;for(let e=0;e<this._indentOccurrences.length;e++){const n=this._indentOccurrences[e];if(n){if(n+i>t){o=e;break}i+=n}}const n=e.getOptions().tabSize,s=new Uint32Array(t),r=new Uint32Array(t);for(let a=this._length-1,l=0;a>=0;a--){const d=this._startIndexes[a],c=e.getLineContent(d),h=(0,Ro.q)(c,n);(h<o||h===o&&i++<t)&&(s[l]=d,r[l]=this._endIndexes[a],l++)}return new Pu(s,r)}}}const qu={limit:5e3,update:()=>{}};const Gu=(0,ze.P6G)("editor.foldBackground",{light:(0,ze.ZnX)(ze.hEj,.3),dark:(0,ze.ZnX)(ze.hEj,.3),hcDark:null,hcLight:null},(0,ne.NC)("foldBackgroundBackground","Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);(0,ze.P6G)("editorGutter.foldingControlForeground",{dark:ze.XZx,light:ze.XZx,hcDark:ze.XZx,hcLight:ze.XZx},(0,ne.NC)("editorGutter.foldingControlForeground","Color of the folding control in the editor gutter."));const Qu=(0,ys.q5)("folding-expanded",$.l.chevronDown,(0,ne.NC)("foldingExpandedIcon","Icon for expanded ranges in the editor glyph margin.")),Zu=(0,ys.q5)("folding-collapsed",$.l.chevronRight,(0,ne.NC)("foldingCollapsedIcon","Icon for collapsed ranges in the editor glyph margin.")),Yu=(0,ys.q5)("folding-manual-collapsed",Zu,(0,ne.NC)("foldingManualCollapedIcon","Icon for manually collapsed ranges in the editor glyph margin.")),Ju=(0,ys.q5)("folding-manual-expanded",Qu,(0,ne.NC)("foldingManualExpandedIcon","Icon for manually expanded ranges in the editor glyph margin.")),$u={color:(0,Ue.EN)(Gu),position:1},Xu=(0,ne.NC)("linesCollapsed","Click to expand the range."),eg=(0,ne.NC)("linesExpanded","Click to collapse the range.");class tg{constructor(e){this.editor=e,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(e,t,i){return t?tg.HIDDEN_RANGE_DECORATION:"never"===this.showFoldingControls?e?this.showFoldingHighlights?tg.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:tg.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:tg.NO_CONTROLS_EXPANDED_RANGE_DECORATION:e?i?this.showFoldingHighlights?tg.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:tg.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?tg.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:tg.COLLAPSED_VISUAL_DECORATION:"mouseover"===this.showFoldingControls?i?tg.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:tg.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:i?tg.MANUALLY_EXPANDED_VISUAL_DECORATION:tg.EXPANDED_VISUAL_DECORATION}changeDecorations(e){return this.editor.changeDecorations(e)}removeDecorations(e){this.editor.removeDecorations(e)}}tg.COLLAPSED_VISUAL_DECORATION=Be.qx.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Xu,firstLineDecorationClassName:oi.k.asClassName(Zu)}),tg.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=Be.qx.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:$u,isWholeLine:!0,linesDecorationsTooltip:Xu,firstLineDecorationClassName:oi.k.asClassName(Zu)}),tg.MANUALLY_COLLAPSED_VISUAL_DECORATION=Be.qx.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Xu,firstLineDecorationClassName:oi.k.asClassName(Yu)}),tg.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=Be.qx.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:$u,isWholeLine:!0,linesDecorationsTooltip:Xu,firstLineDecorationClassName:oi.k.asClassName(Yu)}),tg.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=Be.qx.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Xu}),tg.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=Be.qx.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:$u,isWholeLine:!0,linesDecorationsTooltip:Xu}),tg.EXPANDED_VISUAL_DECORATION=Be.qx.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+oi.k.asClassName(Qu),linesDecorationsTooltip:eg}),tg.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=Be.qx.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:oi.k.asClassName(Qu),linesDecorationsTooltip:eg}),tg.MANUALLY_EXPANDED_VISUAL_DECORATION=Be.qx.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+oi.k.asClassName(Ju),linesDecorationsTooltip:eg}),tg.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=Be.qx.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:oi.k.asClassName(Ju),linesDecorationsTooltip:eg}),tg.NO_CONTROLS_EXPANDED_RANGE_DECORATION=Be.qx.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0}),tg.HIDDEN_RANGE_DECORATION=Be.qx.register({description:"folding-hidden-range-decoration",stickiness:1});const ig={};class og{constructor(e,t,i,o,n){this.editorModel=e,this.providers=t,this.handleFoldingRangesChange=i,this.foldingRangesLimit=o,this.fallbackRangeProvider=n,this.id="syntax",this.disposables=new Fe.SL,n&&this.disposables.add(n);for(const s of t)"function"===typeof s.onDidChange&&this.disposables.add(s.onDidChange(i))}compute(e){return function(e,t,i){let o=null;const n=e.map(((e,n)=>Promise.resolve(e.provideFoldingRanges(t,ig,i)).then((e=>{if(!i.isCancellationRequested&&Array.isArray(e)){Array.isArray(o)||(o=[]);const i=t.getLineCount();for(const t of e)t.start>0&&t.end>t.start&&t.end<=i&&o.push({start:t.start,end:t.end,rank:n,kind:t.kind})}}),Ji.Cp)));return Promise.all(n).then((e=>o))}(this.providers,this.editorModel,e).then((t=>{var i,o;if(t){const e=function(e,t){const i=e.sort(((e,t)=>{let i=e.start-t.start;return 0===i&&(i=e.rank-t.rank),i})),o=new ng(t);let n;const s=[];for(const r of i)if(n){if(r.start>n.start)if(r.end<=n.end)s.push(n),n=r,o.add(r.start,r.end,r.kind&&r.kind.value,s.length);else{if(r.start>n.end){do{n=s.pop()}while(n&&r.start>n.end);n&&s.push(n),n=r}o.add(r.start,r.end,r.kind&&r.kind.value,s.length)}}else n=r,o.add(r.start,r.end,r.kind&&r.kind.value,s.length);return o.toIndentRanges()}(t,this.foldingRangesLimit);return e}return null!==(o=null===(i=this.fallbackRangeProvider)||void 0===i?void 0:i.compute(e))&&void 0!==o?o:null}))}dispose(){this.disposables.dispose()}}class ng{constructor(e){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}add(e,t,i,o){if(e>Du||t>Du)return;const n=this._length;this._startIndexes[n]=e,this._endIndexes[n]=t,this._nestingLevels[n]=o,this._types[n]=i,this._length++,o<30&&(this._nestingLevelCounts[o]=(this._nestingLevelCounts[o]||0)+1)}toIndentRanges(){const e=this._foldingRangesLimit.limit;if(this._length<=e){this._foldingRangesLimit.update(this._length,!1);const e=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let i=0;i<this._length;i++)e[i]=this._startIndexes[i],t[i]=this._endIndexes[i];return new Pu(e,t,this._types)}{this._foldingRangesLimit.update(this._length,e);let t=0,i=this._nestingLevelCounts.length;for(let r=0;r<this._nestingLevelCounts.length;r++){const o=this._nestingLevelCounts[r];if(o){if(o+t>e){i=r;break}t+=o}}const o=new Uint32Array(e),n=new Uint32Array(e),s=[];for(let r=0,a=0;r<this._length;r++){const l=this._nestingLevels[r];(l<i||l===i&&t++<e)&&(o[a]=this._startIndexes[r],n[a]=this._endIndexes[r],s[a]=this._types[r],a++)}return new Pu(o,n,s)}}}var sg,rg=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ag=function(e,t){return function(i,o){t(i,o,e)}};const lg=new ae.uy("foldingEnabled",!1);let dg=sg=class extends Fe.JT{static get(e){return e.getContribution(sg.ID)}static getFoldingRangeProviders(e,t){var i,o;const n=e.foldingRangeProvider.ordered(t);return null!==(o=null===(i=sg._foldingRangeSelector)||void 0===i?void 0:i.call(sg,n,t))&&void 0!==o?o:n}constructor(e,t,i,o,n,s){super(),this.contextKeyService=t,this.languageConfigurationService=i,this.languageFeaturesService=s,this.localToDispose=this._register(new Fe.SL),this.editor=e,this._foldingLimitReporter=new cg(e);const r=this.editor.getOptions();this._isEnabled=r.get(43),this._useFoldingProviders="indentation"!==r.get(44),this._unfoldOnClickAfterEndOfLine=r.get(48),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=r.get(46),this.updateDebounceInfo=n.for(s.foldingRangeProvider,"Folding",{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new tg(e),this.foldingDecorationProvider.showFoldingControls=r.get(110),this.foldingDecorationProvider.showFoldingHighlights=r.get(45),this.foldingEnabled=lg.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel((()=>this.onModelChanged()))),this._register(this.editor.onDidChangeConfiguration((e=>{if(e.hasChanged(43)&&(this._isEnabled=this.editor.getOptions().get(43),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),e.hasChanged(47)&&this.onModelChanged(),e.hasChanged(110)||e.hasChanged(45)){const e=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=e.get(110),this.foldingDecorationProvider.showFoldingHighlights=e.get(45),this.triggerFoldingModelChanged()}e.hasChanged(44)&&(this._useFoldingProviders="indentation"!==this.editor.getOptions().get(44),this.onFoldingStrategyChanged()),e.hasChanged(48)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(48)),e.hasChanged(46)&&(this._foldingImportsByDefault=this.editor.getOptions().get(46))}))),this.onModelChanged()}saveViewState(){const e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){const t=this.foldingModel.getMemento(),i=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:i,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(e){const t=this.editor.getModel();if(t&&this._isEnabled&&!t.isTooLargeForTokenization()&&this.hiddenRangeModel&&e&&(this._currentModelHasFoldedImports=!!e.foldedImports,e.collapsedRegions&&e.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(e.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const e=this.editor.getModel();this._isEnabled&&e&&!e.isTooLargeForTokenization()&&(this._currentModelHasFoldedImports=!1,this.foldingModel=new Eu(e,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new zu(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((e=>this.onHiddenRangesChanges(e)))),this.updateScheduler=new Oe.vp(this.updateDebounceInfo.get(e)),this.cursorChangedScheduler=new Oe.pY((()=>this.revealCursor()),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange((()=>this.onFoldingStrategyChanged()))),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration((()=>this.onFoldingStrategyChanged()))),this.localToDispose.add(this.editor.onDidChangeModelContent((e=>this.onDidChangeModelContent(e)))),this.localToDispose.add(this.editor.onDidChangeCursorPosition((()=>this.onCursorPositionChanged()))),this.localToDispose.add(this.editor.onMouseDown((e=>this.onEditorMouseDown(e)))),this.localToDispose.add(this.editor.onMouseUp((e=>this.onEditorMouseUp(e)))),this.localToDispose.add({dispose:()=>{var e,t;this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),null===(e=this.updateScheduler)||void 0===e||e.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,null===(t=this.rangeProvider)||void 0===t||t.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){var e;null===(e=this.rangeProvider)||void 0===e||e.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(e){if(this.rangeProvider)return this.rangeProvider;const t=new Ku(e,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=t,this._useFoldingProviders&&this.foldingModel){const i=sg.getFoldingRangeProviders(this.languageFeaturesService,e);i.length>0&&(this.rangeProvider=new og(e,i,(()=>this.triggerFoldingModelChanged()),this._foldingLimitReporter,t))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(e){var t;null===(t=this.hiddenRangeModel)||void 0===t||t.notifyChangeModelContent(e),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger((()=>{const e=this.foldingModel;if(!e)return null;const t=new Yn.G,i=this.getRangeProvider(e.textModel),o=this.foldingRegionPromise=(0,Oe.PG)((e=>i.compute(e)));return o.then((i=>{if(i&&o===this.foldingRegionPromise){let o;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const e=i.setCollapsedAllOfType(Lt.AD.Imports.value,!0);e&&(o=kn.Z.capture(this.editor),this._currentModelHasFoldedImports=e)}const n=this.editor.getSelections(),s=n?n.map((e=>e.startLineNumber)):[];e.update(i,s),null===o||void 0===o||o.restore(this.editor);const r=this.updateDebounceInfo.update(e.textModel,t.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=r)}return e}))})).then(void 0,(e=>((0,Ji.dL)(e),null))))}onHiddenRangesChanges(e){if(this.hiddenRangeModel&&e.length&&!this._restoringViewState){const e=this.editor.getSelections();e&&this.hiddenRangeModel.adjustSelections(e)&&this.editor.setSelections(e)}this.editor.setHiddenAreas(e,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const e=this.getFoldingModel();e&&e.then((e=>{if(e){const t=this.editor.getSelections();if(t&&t.length>0){const i=[];for(const o of t){const t=o.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(t)&&i.push(...e.getAllRegionsAtLine(t,(e=>e.isCollapsed&&t>e.startLineNumber)))}i.length&&(e.toggleCollapseState(i),this.reveal(t[0].getPosition()))}}})).then(void 0,Ji.dL)}onEditorMouseDown(e){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!e.target||!e.target.range)return;if(!e.event.leftButton&&!e.event.middleButton)return;const t=e.target.range;let i=!1;switch(e.target.type){case 4:{const t=e.target.detail,o=e.target.element.offsetLeft;if(t.offsetX-o<4)return;i=!0;break}case 7:if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()){if(!e.target.detail.isAfterLines)break}return;case 6:if(this.hiddenRangeModel.hasRanges()){const e=this.editor.getModel();if(e&&t.startColumn===e.getLineMaxColumn(t.startLineNumber))break}return;default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:i}}onEditorMouseUp(e){const t=this.foldingModel;if(!t||!this.mouseDownInfo||!e.target)return;const i=this.mouseDownInfo.lineNumber,o=this.mouseDownInfo.iconClicked,n=e.target.range;if(!n||n.startLineNumber!==i)return;if(o){if(4!==e.target.type)return}else{const e=this.editor.getModel();if(!e||n.startColumn!==e.getLineMaxColumn(i))return}const s=t.getRegionAtLine(i);if(s&&s.startLineNumber===i){const n=s.isCollapsed;if(o||n){let o=[];if(e.event.altKey){const e=e=>!e.containedBy(s)&&!s.containedBy(e),i=t.getRegionsInside(null,e);for(const t of i)t.isCollapsed&&o.push(t);0===o.length&&(o=i)}else{const i=e.event.middleButton||e.event.shiftKey;if(i)for(const e of t.getRegionsInside(s))e.isCollapsed===n&&o.push(e);!n&&i&&0!==o.length||o.push(s)}t.toggleCollapseState(o),this.reveal({lineNumber:i,column:1})}}}reveal(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}};dg.ID="editor.contrib.folding",dg=sg=rg([ag(1,ae.i6),ag(2,Xn.c_),ag(3,Xi.lT),ag(4,jn.A),ag(5,kt.p)],dg);class cg{constructor(e){this.editor=e,this._onDidChange=new ui.Q5,this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(47)}update(e,t){e===this._computed&&t===this._limited||(this._computed=e,this._limited=t,this._onDidChange.fire())}}class hg extends ee.R6{runEditorCommand(e,t,i){const o=e.get(Xn.c_),n=dg.get(t);if(!n)return;const s=n.getFoldingModel();return s?(this.reportTelemetry(e,t),s.then((e=>{if(e){this.invoke(n,e,t,i,o);const s=t.getSelection();s&&n.reveal(s.getStartPosition())}}))):void 0}getSelectedLines(e){const t=e.getSelections();return t?t.map((e=>e.startLineNumber)):[]}getLineNumbers(e,t){return e&&e.selectionLines?e.selectionLines.map((e=>e+1)):this.getSelectedLines(t)}run(e,t){}}function ug(e){if(!Dn.o8(e)){if(!Dn.Kn(e))return!1;const t=e;if(!Dn.o8(t.levels)&&!Dn.hj(t.levels))return!1;if(!Dn.o8(t.direction)&&!Dn.HD(t.direction))return!1;if(!Dn.o8(t.selectionLines)&&(!Array.isArray(t.selectionLines)||!t.selectionLines.every(Dn.hj)))return!1}return!0}class gg extends hg{getFoldingLevel(){return parseInt(this.id.substr(gg.ID_PREFIX.length))}invoke(e,t,i){!function(e,t,i,o){const n=e.getRegionsInside(null,((e,n)=>n===t&&e.isCollapsed!==i&&!o.some((t=>e.containsLine(t)))));e.toggleCollapseState(n)}(t,this.getFoldingLevel(),!0,this.getSelectedLines(i))}}gg.ID_PREFIX="editor.foldLevel",gg.ID=e=>gg.ID_PREFIX+e;(0,ee._K)(dg.ID,dg,0),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.unfold",label:ne.NC("unfoldAction.label","Unfold"),alias:"Unfold",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{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': Array of 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:ug,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,o){const n=o&&o.levels||1,s=this.getLineNumbers(o,i);o&&"up"===o.direction?Fu(t,!1,n,s):Ou(t,!1,n,s)}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.unfoldRecursively",label:ne.NC("unFoldRecursivelyAction.label","Unfold Recursively"),alias:"Unfold Recursively",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2142),weight:100}})}invoke(e,t,i,o){Ou(t,!1,Number.MAX_VALUE,this.getSelectedLines(i))}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.fold",label:ne.NC("foldAction.label","Fold"),alias:"Fold",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{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': Array of 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:ug,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,o){const n=this.getLineNumbers(o,i),s=o&&o.levels,r=o&&o.direction;"number"!==typeof s&&"string"!==typeof r?function(e,t,i){const o=[];for(const n of i){const i=e.getAllRegionsAtLine(n,(e=>e.isCollapsed!==t));i.length>0&&o.push(i[0])}e.toggleCollapseState(o)}(t,!0,n):"up"===r?Fu(t,!0,s||1,n):Ou(t,!0,s||1,n)}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.foldRecursively",label:ne.NC("foldRecursivelyAction.label","Fold Recursively"),alias:"Fold Recursively",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2140),weight:100}})}invoke(e,t,i){const o=this.getSelectedLines(i);Ou(t,!0,Number.MAX_VALUE,o)}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.foldAll",label:ne.NC("foldAllAction.label","Fold All"),alias:"Fold All",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2069),weight:100}})}invoke(e,t,i){Ou(t,!0)}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.unfoldAll",label:ne.NC("unfoldAllAction.label","Unfold All"),alias:"Unfold All",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2088),weight:100}})}invoke(e,t,i){Ou(t,!1)}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.foldAllBlockComments",label:ne.NC("foldAllBlockComments.label","Fold All Block Comments"),alias:"Fold All Block Comments",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2138),weight:100}})}invoke(e,t,i,o,n){if(t.regions.hasTypes())Vu(t,Lt.AD.Comment.value,!0);else{const e=i.getModel();if(!e)return;const o=n.getLanguageConfiguration(e.getLanguageId()).comments;if(o&&o.blockCommentStartToken){Hu(t,new RegExp("^\\s*"+(0,ii.ec)(o.blockCommentStartToken)),!0)}}}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.foldAllMarkerRegions",label:ne.NC("foldAllMarkerRegions.label","Fold All Regions"),alias:"Fold All Regions",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2077),weight:100}})}invoke(e,t,i,o,n){if(t.regions.hasTypes())Vu(t,Lt.AD.Region.value,!0);else{const e=i.getModel();if(!e)return;const o=n.getLanguageConfiguration(e.getLanguageId()).foldingRules;if(o&&o.markers&&o.markers.start){Hu(t,new RegExp(o.markers.start),!0)}}}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:ne.NC("unfoldAllMarkerRegions.label","Unfold All Regions"),alias:"Unfold All Regions",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2078),weight:100}})}invoke(e,t,i,o,n){if(t.regions.hasTypes())Vu(t,Lt.AD.Region.value,!1);else{const e=i.getModel();if(!e)return;const o=n.getLanguageConfiguration(e.getLanguageId()).foldingRules;if(o&&o.markers&&o.markers.start){Hu(t,new RegExp(o.markers.start),!1)}}}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.foldAllExcept",label:ne.NC("foldAllExcept.label","Fold All Except Selected"),alias:"Fold All Except Selected",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2136),weight:100}})}invoke(e,t,i){Wu(t,!0,this.getSelectedLines(i))}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.unfoldAllExcept",label:ne.NC("unfoldAllExcept.label","Unfold All Except Selected"),alias:"Unfold All Except Selected",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2134),weight:100}})}invoke(e,t,i){Wu(t,!1,this.getSelectedLines(i))}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.toggleFold",label:ne.NC("toggleFoldAction.label","Toggle Fold"),alias:"Toggle Fold",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2090),weight:100}})}invoke(e,t,i){Au(t,1,this.getSelectedLines(i))}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.gotoParentFold",label:ne.NC("gotoParentFold.label","Go to Parent Fold"),alias:"Go to Parent Fold",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,weight:100}})}invoke(e,t,i){const o=this.getSelectedLines(i);if(o.length>0){const e=function(e,t){let i=null;const o=t.getRegionAtLine(e);if(null!==o&&(i=o.startLineNumber,e===i)){const e=o.parentIndex;i=-1!==e?t.regions.getStartLineNumber(e):null}return i}(o[0],t);null!==e&&i.setSelection({startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1})}}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.gotoPreviousFold",label:ne.NC("gotoPreviousFold.label","Go to Previous Folding Range"),alias:"Go to Previous Folding Range",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,weight:100}})}invoke(e,t,i){const o=this.getSelectedLines(i);if(o.length>0){const e=function(e,t){let i=t.getRegionAtLine(e);if(null!==i&&i.startLineNumber===e){if(e!==i.startLineNumber)return i.startLineNumber;{const e=i.parentIndex;let o=0;for(-1!==e&&(o=t.regions.getStartLineNumber(i.parentIndex));null!==i;){if(!(i.regionIndex>0))return null;if(i=t.regions.toRegion(i.regionIndex-1),i.startLineNumber<=o)return null;if(i.parentIndex===e)return i.startLineNumber}}}else if(t.regions.length>0)for(i=t.regions.toRegion(t.regions.length-1);null!==i;){if(i.startLineNumber<e)return i.startLineNumber;i=i.regionIndex>0?t.regions.toRegion(i.regionIndex-1):null}return null}(o[0],t);null!==e&&i.setSelection({startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1})}}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.gotoNextFold",label:ne.NC("gotoNextFold.label","Go to Next Folding Range"),alias:"Go to Next Folding Range",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,weight:100}})}invoke(e,t,i){const o=this.getSelectedLines(i);if(o.length>0){const e=function(e,t){let i=t.getRegionAtLine(e);if(null!==i&&i.startLineNumber===e){const e=i.parentIndex;let o=0;if(-1!==e)o=t.regions.getEndLineNumber(i.parentIndex);else{if(0===t.regions.length)return null;o=t.regions.getEndLineNumber(t.regions.length-1)}for(;null!==i;){if(!(i.regionIndex<t.regions.length))return null;if(i=t.regions.toRegion(i.regionIndex+1),i.startLineNumber>=o)return null;if(i.parentIndex===e)return i.startLineNumber}}else if(t.regions.length>0)for(i=t.regions.toRegion(0);null!==i;){if(i.startLineNumber>e)return i.startLineNumber;i=i.regionIndex<t.regions.length?t.regions.toRegion(i.regionIndex+1):null}return null}(o[0],t);null!==e&&i.setSelection({startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1})}}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:ne.NC("createManualFoldRange.label","Create Folding Range from Selection"),alias:"Create Folding Range from Selection",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2135),weight:100}})}invoke(e,t,i){var o;const n=[],s=i.getSelections();if(s){for(const e of s){let t=e.endLineNumber;1===e.endColumn&&--t,t>e.startLineNumber&&(n.push({startLineNumber:e.startLineNumber,endLineNumber:t,type:void 0,isCollapsed:!0,source:1}),i.setSelection({startLineNumber:e.startLineNumber,startColumn:1,endLineNumber:e.startLineNumber,endColumn:1}))}if(n.length>0){n.sort(((e,t)=>e.startLineNumber-t.startLineNumber));const e=Pu.sanitizeAndMerge(t.regions,n,null===(o=i.getModel())||void 0===o?void 0:o.getLineCount());t.updatePost(Pu.fromFoldRanges(e))}}}}),(0,ee.Qr)(class extends hg{constructor(){super({id:"editor.removeManualFoldingRanges",label:ne.NC("removeManualFoldingRanges.label","Remove Manual Folding Ranges"),alias:"Remove Manual Folding Ranges",precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2137),weight:100}})}invoke(e,t,i){const o=i.getSelections();if(o){const i=[];for(const e of o){const{startLineNumber:t,endLineNumber:o}=e;i.push(o>=t?{startLineNumber:t,endLineNumber:o}:{endLineNumber:o,startLineNumber:t})}t.removeManualRanges(i),e.triggerFoldingModelChanged()}}});for(let Ex=1;Ex<=7;Ex++)(0,ee.QG)(new gg({id:gg.ID(Ex),label:ne.NC("foldLevelAction.label","Fold Level {0}",Ex),alias:"Fold Level ".concat(Ex),precondition:lg,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2048|21+Ex),weight:100}}));ye.P.registerCommand("_executeFoldingRangeProvider",(async function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];const[n]=i;if(!(n instanceof _t.o))throw(0,Ji.b1)();const s=e.get(kt.p),r=e.get($i.q).getModel(n);if(!r)throw(0,Ji.b1)();const a=e.get(re.Ui);if(!a.getValue("editor.folding",{resource:n}))return[];const l=e.get(Xn.c_),d=a.getValue("editor.foldingStrategy",{resource:n}),c={get limit(){return a.getValue("editor.foldingMaximumRegions",{resource:n})},update:(e,t)=>{}},h=new Ku(r,l,c);let u=h;if("indentation"!==d){const e=dg.getFoldingRangeProviders(s,r);e.length&&(u=new og(r,e,(()=>{}),c,h))}const g=await u.compute(Yi.T.None),p=[];try{if(g)for(let e=0;e<g.length;e++){const t=g.getType(e);p.push({start:g.getStartLineNumber(e),end:g.getEndLineNumber(e),kind:t?Lt.AD.fromValue(t):void 0})}return p}finally{u.dispose()}}));var pg=i(15804);class mg extends ee.R6{constructor(){super({id:"editor.action.fontZoomIn",label:ne.NC("EditorFontZoomIn.label","Increase Editor Font Size"),alias:"Increase Editor Font Size",precondition:void 0})}run(e,t){pg.C.setZoomLevel(pg.C.getZoomLevel()+1)}}class _g extends ee.R6{constructor(){super({id:"editor.action.fontZoomOut",label:ne.NC("EditorFontZoomOut.label","Decrease Editor Font Size"),alias:"Decrease Editor Font Size",precondition:void 0})}run(e,t){pg.C.setZoomLevel(pg.C.getZoomLevel()-1)}}class fg extends ee.R6{constructor(){super({id:"editor.action.fontZoomReset",label:ne.NC("EditorFontZoomReset.label","Reset Editor Font Size"),alias:"Reset Editor Font Size",precondition:void 0})}run(e,t){pg.C.setZoomLevel(0)}}(0,ee.Qr)(mg),(0,ee.Qr)(_g),(0,ee.Qr)(fg);var vg=i(89505),bg=i(60918),Cg=i(44492),Sg=i(58028),yg=i(68633),wg=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},xg=function(e,t){return function(i,o){t(i,o,e)}};let Ng=class{constructor(e,t,i,o){this._editor=e,this._languageFeaturesService=t,this._workerService=i,this._accessibilitySignalService=o,this._disposables=new Fe.SL,this._sessionDisposables=new Fe.SL,this._disposables.add(t.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(e.onDidChangeModel((()=>this._update()))),this._disposables.add(e.onDidChangeModelLanguage((()=>this._update()))),this._disposables.add(e.onDidChangeConfiguration((e=>{e.hasChanged(56)&&this._update()}))),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(56))return;if(!this._editor.hasModel())return;const e=this._editor.getModel(),[t]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(e);if(!t||!t.autoFormatTriggerCharacters)return;const i=new vg.q;for(const o of t.autoFormatTriggerCharacters)i.add(o.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType((e=>{const t=e.charCodeAt(e.length-1);i.has(t)&&this._trigger(String.fromCharCode(t))})))}_trigger(e){if(!this._editor.hasModel())return;if(this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const t=this._editor.getModel(),i=this._editor.getPosition(),o=new Yi.A,n=this._editor.onDidChangeModelContent((e=>{if(e.isFlush)return o.cancel(),void n.dispose();for(let t=0,s=e.changes.length;t<s;t++){if(e.changes[t].range.endLineNumber<=i.lineNumber)return o.cancel(),void n.dispose()}}));(0,Cg.Qs)(this._workerService,this._languageFeaturesService,t,i,e,t.getFormattingOptions(),o.token).then((e=>{o.token.isCancellationRequested||(0,nt.Of)(e)&&(this._accessibilitySignalService.playSignal(yg.iP.format,{userGesture:!1}),Sg.V.execute(this._editor,e,!0))})).finally((()=>{n.dispose()}))}};Ng.ID="editor.contrib.autoFormat",Ng=wg([xg(1,kt.p),xg(2,bg.p),xg(3,yg.IV)],Ng);let Lg=class{constructor(e,t,i){this.editor=e,this._languageFeaturesService=t,this._instantiationService=i,this._callOnDispose=new Fe.SL,this._callOnModel=new Fe.SL,this._callOnDispose.add(e.onDidChangeConfiguration((()=>this._update()))),this._callOnDispose.add(e.onDidChangeModel((()=>this._update()))),this._callOnDispose.add(e.onDidChangeModelLanguage((()=>this._update()))),this._callOnDispose.add(t.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(55)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste((e=>{let{range:t}=e;return this._trigger(t)})))}_trigger(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(Cg.x$,this.editor,e,2,yi.Ex.None,Yi.T.None,!1).catch(Ji.dL))}};Lg.ID="editor.contrib.formatOnPaste",Lg=wg([xg(1,kt.p),xg(2,ni.TG)],Lg);class kg extends ee.R6{constructor(){super({id:"editor.action.formatDocument",label:ne.NC("formatDocument.label","Format Document"),alias:"Format Document",precondition:ae.Ao.and(oe.u.notInCompositeEditor,oe.u.writable,oe.u.hasDocumentFormattingProvider),kbOpts:{kbExpr:oe.u.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(e,t){if(t.hasModel()){const i=e.get(ni.TG),o=e.get(yi.ek);await o.showWhile(i.invokeFunction(Cg.Qq,t,1,yi.Ex.None,Yi.T.None,!0),250)}}}class Dg extends ee.R6{constructor(){super({id:"editor.action.formatSelection",label:ne.NC("formatSelection.label","Format Selection"),alias:"Format Selection",precondition:ae.Ao.and(oe.u.writable,oe.u.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2084),weight:100},contextMenuOpts:{when:oe.u.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(e,t){if(!t.hasModel())return;const i=e.get(ni.TG),o=t.getModel(),n=t.getSelections().map((e=>e.isEmpty()?new He.e(e.startLineNumber,1,e.startLineNumber,o.getLineMaxColumn(e.startLineNumber)):e)),s=e.get(yi.ek);await s.showWhile(i.invokeFunction(Cg.x$,t,n,1,yi.Ex.None,Yi.T.None,!0),250)}}(0,ee._K)(Ng.ID,Ng,2),(0,ee._K)(Lg.ID,Lg,2),(0,ee.Qr)(kg),(0,ee.Qr)(Dg),ye.P.registerCommand("editor.action.format",(async e=>{const t=e.get(te.$).getFocusedCodeEditor();if(!t||!t.hasModel())return;const i=e.get(ye.H);t.getSelection().isEmpty()?await i.executeCommand("editor.action.formatDocument"):await i.executeCommand("editor.action.formatSelection")}));var Ig=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Rg=function(e,t){return function(i,o){t(i,o,e)}};class Pg{remove(){var e;null===(e=this.parent)||void 0===e||e.children.delete(this.id)}static findId(e,t){let i;"string"===typeof e?i="".concat(t.id,"/").concat(e):(i="".concat(t.id,"/").concat(e.name),void 0!==t.children.get(i)&&(i="".concat(t.id,"/").concat(e.name,"_").concat(e.range.startLineNumber,"_").concat(e.range.startColumn)));let o=i;for(let n=0;void 0!==t.children.get(o);n++)o="".concat(i,"_").concat(n);return o}static empty(e){return 0===e.children.size}}class Mg extends Pg{constructor(e,t,i){super(),this.id=e,this.parent=t,this.symbol=i,this.children=new Map}}class Tg extends Pg{constructor(e,t,i,o){super(),this.id=e,this.parent=t,this.label=i,this.order=o,this.children=new Map}}class Eg extends Pg{static create(e,t,i){const o=new Yi.A(i),n=new Eg(t.uri),s=e.ordered(t),r=s.map(((e,i)=>{var s;const r=Pg.findId("provider_".concat(i),n),a=new Tg(r,n,null!==(s=e.displayName)&&void 0!==s?s:"Unknown Outline Provider",i);return Promise.resolve(e.provideDocumentSymbols(t,o.token)).then((e=>{for(const t of e||[])Eg._makeOutlineElement(t,a);return a}),(e=>((0,Ji.Cp)(e),a))).then((e=>{Pg.empty(e)?e.remove():n._groups.set(r,e)}))})),a=e.onDidChange((()=>{const i=e.ordered(t);(0,nt.fS)(i,s)||o.cancel()}));return Promise.all(r).then((()=>o.token.isCancellationRequested&&!i.isCancellationRequested?Eg.create(e,t,i):n._compact())).finally((()=>{o.dispose(),a.dispose(),o.dispose()}))}static _makeOutlineElement(e,t){const i=Pg.findId(e,t),o=new Mg(i,t,e);if(e.children)for(const n of e.children)Eg._makeOutlineElement(n,o);t.children.set(o.id,o)}constructor(e){super(),this.uri=e,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let e=0;for(const[t,i]of this._groups)0===i.children.size?this._groups.delete(t):e+=1;if(1!==e)this.children=this._groups;else{const e=st.$.first(this._groups.values());for(const[,t]of e.children)t.parent=this,this.children.set(t.id,t)}return this}getTopLevelSymbols(){const e=[];for(const t of this.children.values())t instanceof Mg?e.push(t.symbol):e.push(...st.$.map(t.children.values(),(e=>e.symbol)));return e.sort(((e,t)=>He.e.compareRangesUsingStarts(e.range,t.range)))}asListOfDocumentSymbols(){const e=this.getTopLevelSymbols(),t=[];return Eg._flattenDocumentSymbols(t,e,""),t.sort(((e,t)=>We.L.compare(He.e.getStartPosition(e.range),He.e.getStartPosition(t.range))||We.L.compare(He.e.getEndPosition(t.range),He.e.getEndPosition(e.range))))}static _flattenDocumentSymbols(e,t,i){for(const o of t)e.push({kind:o.kind,tags:o.tags,name:o.name,detail:o.detail,containerName:o.containerName||i,range:o.range,selectionRange:o.selectionRange,children:void 0}),o.children&&Eg._flattenDocumentSymbols(e,o.children,o.name)}}const Ag=(0,ni.yh)("IOutlineModelService");let Og=class{constructor(e,t,i){this._languageFeaturesService=e,this._disposables=new Fe.SL,this._cache=new Pn.z6(10,.7),this._debounceInformation=t.for(e.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(i.onModelRemoved((e=>{this._cache.delete(e.id)})))}dispose(){this._disposables.dispose()}async getOrCreate(e,t){const i=this._languageFeaturesService.documentSymbolProvider,o=i.ordered(e);let n=this._cache.get(e.id);if(!n||n.versionId!==e.getVersionId()||!(0,nt.fS)(n.provider,o)){const t=new Yi.A;n={versionId:e.getVersionId(),provider:o,promiseCnt:0,source:t,promise:Eg.create(i,e,t.token),model:void 0},this._cache.set(e.id,n);const s=Date.now();n.promise.then((t=>{n.model=t,this._debounceInformation.update(e,Date.now()-s)})).catch((t=>{this._cache.delete(e.id)}))}if(n.model)return n.model;n.promiseCnt+=1;const s=t.onCancellationRequested((()=>{0===--n.promiseCnt&&(n.source.cancel(),this._cache.delete(e.id))}));try{return await n.promise}finally{s.dispose()}}};Og=Ig([Rg(0,kt.p),Rg(1,jn.A),Rg(2,$i.q)],Og),(0,Zo.z)(Ag,Og,1),ye.P.registerCommand("_executeDocumentSymbolProvider",(async function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];const[n]=i;(0,Dn.p_)(_t.o.isUri(n));const s=e.get(Ag),r=e.get(Ks.S),a=await r.createModelReference(n);try{return(await s.getOrCreate(a.object.textEditorModel,Yi.T.None)).getTopLevelSymbols()}finally{a.dispose()}}));var Fg=i(52938),Wg=i(5255);class Hg extends Fe.JT{constructor(e,t){super(),this.contextKeyService=e,this.model=t,this.inlineCompletionVisible=Hg.inlineSuggestionVisible.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentation=Hg.inlineSuggestionHasIndentation.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentationLessThanTabSize=Hg.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService),this.suppressSuggestions=Hg.suppressSuggestions.bindTo(this.contextKeyService),this._register((0,dd.EH)((e=>{const t=this.model.read(e),i=null===t||void 0===t?void 0:t.state.read(e),o=!!(null===i||void 0===i?void 0:i.inlineCompletion)&&void 0!==(null===i||void 0===i?void 0:i.primaryGhostText)&&!(null===i||void 0===i?void 0:i.primaryGhostText.isEmpty());this.inlineCompletionVisible.set(o),(null===i||void 0===i?void 0:i.primaryGhostText)&&(null===i||void 0===i?void 0:i.inlineCompletion)&&this.suppressSuggestions.set(i.inlineCompletion.inlineCompletion.source.inlineCompletions.suppressSuggestions)}))),this._register((0,dd.EH)((e=>{const t=this.model.read(e);let i=!1,o=!0;const n=null===t||void 0===t?void 0:t.primaryGhostText.read(e);if((null===t||void 0===t?void 0:t.selectedSuggestItem)&&n&&n.parts.length>0){const{column:e,lines:s}=n.parts[0],r=s[0];if(e<=t.textModel.getLineIndentColumn(n.lineNumber)){let e=(0,ii.LC)(r);-1===e&&(e=r.length-1),i=e>0;const n=t.textModel.getOptions().tabSize;o=Wg.i.visibleColumnFromColumn(r,e+1,n)<n}}this.inlineCompletionSuggestsIndentation.set(i),this.inlineCompletionSuggestsIndentationLessThanTabSize.set(o)})))}}Hg.inlineSuggestionVisible=new ae.uy("inlineSuggestionVisible",!1,(0,ne.NC)("inlineSuggestionVisible","Whether an inline suggestion is visible")),Hg.inlineSuggestionHasIndentation=new ae.uy("inlineSuggestionHasIndentation",!1,(0,ne.NC)("inlineSuggestionHasIndentation","Whether the inline suggestion starts with whitespace")),Hg.inlineSuggestionHasIndentationLessThanTabSize=new ae.uy("inlineSuggestionHasIndentationLessThanTabSize",!0,(0,ne.NC)("inlineSuggestionHasIndentationLessThanTabSize","Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab")),Hg.suppressSuggestions=new ae.uy("inlineSuggestionSuppressSuggestions",void 0,(0,ne.NC)("suppressSuggestions","Whether suggestions should be suppressed for the current suggestion"));var Vg=i(52047),Bg=i(99916),zg=i(76071),Ug=i(43471),Kg=i(85766),jg=i(34543),qg=i(24272);class Gg{constructor(e,t){this.lineNumber=e,this.parts=t}equals(e){return this.lineNumber===e.lineNumber&&this.parts.length===e.parts.length&&this.parts.every(((t,i)=>t.equals(e.parts[i])))}renderForScreenReader(e){if(0===this.parts.length)return"";const t=this.parts[this.parts.length-1],i=e.substr(0,t.column-1);return new qg.PY([...this.parts.map((e=>new qg.At(He.e.fromPositions(new We.L(1,e.column)),e.lines.join("\n"))))]).applyToString(i).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every((e=>0===e.lines.length))}get lineCount(){return 1+this.parts.reduce(((e,t)=>e+t.lines.length-1),0)}}class Qg{constructor(e,t,i){this.column=e,this.text=t,this.preview=i,this.lines=(0,ii.uq)(this.text)}equals(e){return this.column===e.column&&this.lines.length===e.lines.length&&this.lines.every(((t,i)=>t===e.lines[i]))}}class Zg{constructor(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;this.lineNumber=e,this.columnRange=t,this.text=i,this.additionalReservedLineCount=o,this.parts=[new Qg(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=(0,ii.uq)(this.text)}renderForScreenReader(e){return this.newLines.join("\n")}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every((e=>0===e.lines.length))}equals(e){return this.lineNumber===e.lineNumber&&this.columnRange.equals(e.columnRange)&&this.newLines.length===e.newLines.length&&this.newLines.every(((t,i)=>t===e.newLines[i]))&&this.additionalReservedLineCount===e.additionalReservedLineCount}}function Yg(e,t){return(0,nt.fS)(e,t,Jg)}function Jg(e,t){return e===t||!(!e||!t)&&((e instanceof Gg&&t instanceof Gg||e instanceof Zg&&t instanceof Zg)&&e.equals(t))}const $g=[];class Xg{constructor(e,t){if(this.startColumn=e,this.endColumnExclusive=t,e>t)throw new Ji.he("startColumn ".concat(e," cannot be after endColumnExclusive ").concat(t))}toRange(e){return new He.e(e,this.startColumn,e,this.endColumnExclusive)}equals(e){return this.startColumn===e.startColumn&&this.endColumnExclusive===e.endColumnExclusive}}function ep(e,t){const i=new Fe.SL,o=e.createDecorationsCollection();return i.add((0,dd.UV)({debugName:()=>"Apply decorations from ".concat(t.debugName)},(e=>{const i=t.read(e);o.set(i)}))),i.add({dispose:()=>{o.clear()}}),i}function tp(e,t){return new We.L(e.lineNumber-t.lineNumber+1,e.lineNumber-t.lineNumber===0?e.column-t.column+1:e.column)}var ip=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},op=function(e,t){return function(i,o){t(i,o,e)}};const np="ghost-text";let sp=class extends Fe.JT{constructor(e,t,i){super(),this.editor=e,this.model=t,this.languageService=i,this.isDisposed=(0,dd.uh)(this,!1),this.currentTextModel=(0,dd.rD)(this.editor.onDidChangeModel,(()=>this.editor.getModel())),this.uiState=(0,dd.nK)(this,(e=>{if(this.isDisposed.read(e))return;const t=this.currentTextModel.read(e);if(t!==this.model.targetTextModel.read(e))return;const i=this.model.ghostText.read(e);if(!i)return;const o=i instanceof Zg?i.columnRange:void 0,n=[],s=[];function r(e,t){if(s.length>0){const i=s[s.length-1];t&&i.decorations.push(new Kg.Kp(i.content.length+1,i.content.length+1+e[0].length,t,0)),i.content+=e[0],e=e.slice(1)}for(const i of e)s.push({content:i,decorations:t?[new Kg.Kp(1,i.length+1,t,0)]:[]})}const a=t.getLineContent(i.lineNumber);let l,d=0;for(const h of i.parts){let e=h.lines;void 0===l?(n.push({column:h.column,text:e[0],preview:h.preview}),e=e.slice(1)):r([a.substring(d,h.column-1)],void 0),e.length>0&&(r(e,np),void 0===l&&h.column<=a.length&&(l=h.column)),d=h.column-1}void 0!==l&&r([a.substring(d)],void 0);const c=void 0!==l?new Xg(l,a.length+1):void 0;return{replacedRange:o,inlineTexts:n,additionalLines:s,hiddenRange:c,lineNumber:i.lineNumber,additionalReservedLineCount:this.model.minReservedLineCount.read(e),targetTextModel:t}})),this.decorations=(0,dd.nK)(this,(e=>{const t=this.uiState.read(e);if(!t)return[];const i=[];t.replacedRange&&i.push({range:t.replacedRange.toRange(t.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace",description:"GhostTextReplacement"}}),t.hiddenRange&&i.push({range:t.hiddenRange.toRange(t.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(const o of t.inlineTexts)i.push({range:He.e.fromPositions(new We.L(t.lineNumber,o.column)),options:{description:np,after:{content:o.text,inlineClassName:o.preview?"ghost-text-decoration-preview":"ghost-text-decoration",cursorStops:Ve.RM.Left},showIfCollapsed:!0}});return i})),this.additionalLinesWidget=this._register(new rp(this.editor,this.languageService.languageIdCodec,(0,dd.nK)((e=>{const t=this.uiState.read(e);return t?{lineNumber:t.lineNumber,additionalLines:t.additionalLines,minReservedLineCount:t.additionalReservedLineCount,targetTextModel:t.targetTextModel}:void 0})))),this._register((0,Fe.OF)((()=>{this.isDisposed.set(!0,void 0)}))),this._register(ep(this.editor,this.decorations))}ownsViewZone(e){return this.additionalLinesWidget.viewZoneId===e}};sp=ip([op(2,Us.O)],sp);class rp extends Fe.JT{get viewZoneId(){return this._viewZoneId}constructor(e,t,i){super(),this.editor=e,this.languageIdCodec=t,this.lines=i,this._viewZoneId=void 0,this.editorOptionsChanged=(0,dd.aq)("editorOptionChanged",ui.ju.filter(this.editor.onDidChangeConfiguration,(e=>e.hasChanged(33)||e.hasChanged(117)||e.hasChanged(99)||e.hasChanged(94)||e.hasChanged(51)||e.hasChanged(50)||e.hasChanged(67)))),this._register((0,dd.EH)((e=>{const t=this.lines.read(e);this.editorOptionsChanged.read(e),t?this.updateLines(t.lineNumber,t.additionalLines,t.minReservedLineCount):this.clear()})))}dispose(){super.dispose(),this.clear()}clear(){this.editor.changeViewZones((e=>{this._viewZoneId&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0)}))}updateLines(e,t,i){const o=this.editor.getModel();if(!o)return;const{tabSize:n}=o.getOptions();this.editor.changeViewZones((o=>{this._viewZoneId&&(o.removeZone(this._viewZoneId),this._viewZoneId=void 0);const s=Math.max(t.length,i);if(s>0){const i=document.createElement("div");!function(e,t,i,o,n){const s=o.get(33),r=o.get(117),a="none",l=o.get(94),d=o.get(51),c=o.get(50),h=o.get(67),u=new zg.HT(1e4);u.appendString('<div class="suggest-preview-text">');for(let m=0,_=i.length;m<_;m++){const e=i[m],o=e.content;u.appendString('<div class="view-line'),u.appendString('" style="top:'),u.appendString(String(m*h)),u.appendString('px;width:1000000px;">');const g=ii.$i(o),p=ii.Ut(o),_=Ug.A.createEmpty(o,n);(0,jg.d1)(new jg.IJ(c.isMonospace&&!s,c.canUseHalfwidthRightwardsArrow,o,!1,g,p,0,_,e.decorations,t,0,c.spaceWidth,c.middotWidth,c.wsmiddotWidth,r,a,l,d!==sn.n0.OFF,null),u),u.appendString("</div>")}u.appendString("</div>"),(0,Bg.N)(e,c);const g=u.build(),p=ap?ap.createHTML(g):g;e.innerHTML=p}(i,n,t,this.editor.getOptions(),this.languageIdCodec),this._viewZoneId=o.addZone({afterLineNumber:e,heightInLines:s,domNode:i,afterColumnAffinity:1})}}))}}const ap=(0,Vg.Z)("editorGhostText",{createHTML:e=>e});var lp=i(39880),dp=i(43328),cp=i(59321),hp=i(3596),up=i(36779),gp=i(85421);class pp{constructor(e){this.lines=e,this.tokenization={getLineTokens:e=>this.lines[e-1]}}getLineCount(){return this.lines.length}getLineLength(e){return this.lines[e-1].getLineContent().length}}async function mp(e,t,i,o){let n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Yi.T.None,s=arguments.length>5?arguments[5]:void 0;const r=function(e,t){const i=t.getWordAtPosition(e),o=t.getLineMaxColumn(e.lineNumber);return i?new He.e(e.lineNumber,i.startColumn,e.lineNumber,o):He.e.fromPositions(e,e.with(void 0,o))}(t,i),a=e.all(i),l=new Pn.ri;for(const f of a)f.groupId&&l.add(f.groupId,f);function d(e){if(!e.yieldsToGroupIds)return[];const t=[];for(const i of e.yieldsToGroupIds||[]){const e=l.get(i);for(const i of e)t.push(i)}return t}const c=new Map,h=new Set;function u(e,t){if(t=[...t,e],h.has(e))return t;h.add(e);try{const i=d(e);for(const e of i){const i=u(e,t);if(i)return i}}finally{h.delete(e)}}function g(e){const s=c.get(e);if(s)return s;const r=u(e,[]);r&&(0,Ji.Cp)(new Error("Inline completions: cyclic yield-to dependency detected. Path: ".concat(r.map((e=>e.toString?e.toString():""+e)).join(" -> "))));const a=new Oe.CR;return c.set(e,a.p),(async()=>{if(!r){const t=d(e);for(const e of t){const t=await g(e);if(t&&t.items.length>0)return}}try{return await e.provideInlineCompletions(i,t,o,n)}catch(s){return void(0,Ji.Cp)(s)}})().then((e=>a.complete(e)),(e=>a.error(e))),a.p}const p=await Promise.all(a.map((async e=>({provider:e,completions:await g(e)})))),m=new Map,_=[];for(const f of p){const e=f.completions;if(!e)continue;const t=new fp(e,f.provider);_.push(t);for(const o of e.items){const e=vp.from(o,t,r,i,s);m.set(e.hash(),e)}}return new _p(Array.from(m.values()),new Set(m.keys()),_)}class _p{constructor(e,t,i){this.completions=e,this.hashs=t,this.providerResults=i}has(e){return this.hashs.has(e.hash())}dispose(){for(const e of this.providerResults)e.removeRef()}}class fp{constructor(e,t){this.inlineCompletions=e,this.provider=t,this.refCount=1}addRef(){this.refCount++}removeRef(){this.refCount--,0===this.refCount&&this.provider.freeInlineCompletions(this.inlineCompletions)}}class vp{static from(e,t,i,o,n){let s,r,a=e.range?He.e.lift(e.range):i;if("string"===typeof e.insertText){if(s=e.insertText,n&&e.completeBracketPairs){s=bp(s,a.getStartPosition(),o,n);const t=s.length-e.insertText.length;0!==t&&(a=new He.e(a.startLineNumber,a.startColumn,a.endLineNumber,a.endColumn+t))}r=void 0}else if("snippet"in e.insertText){const t=e.insertText.snippet.length;if(n&&e.completeBracketPairs){e.insertText.snippet=bp(e.insertText.snippet,a.getStartPosition(),o,n);const i=e.insertText.snippet.length-t;0!==i&&(a=new He.e(a.startLineNumber,a.startColumn,a.endLineNumber,a.endColumn+i))}const i=(new $t).parse(e.insertText.snippet);1===i.children.length&&i.children[0]instanceof Ut?(s=i.children[0].value,r=void 0):(s=i.toString(),r={snippet:e.insertText.snippet,range:a})}else(0,lp.vE)(e.insertText);return new vp(s,e.command,a,s,r,e.additionalTextEdits||$g,e,t)}constructor(e,t,i,o,n,s,r,a){this.filterText=e,this.command=t,this.range=i,this.insertText=o,this.snippetInfo=n,this.additionalTextEdits=s,this.sourceInlineCompletion=r,this.source=a,o=(e=e.replace(/\r\n|\r/g,"\n")).replace(/\r\n|\r/g,"\n")}withRange(e){return new vp(this.filterText,this.command,e,this.insertText,this.snippetInfo,this.additionalTextEdits,this.sourceInlineCompletion,this.source)}hash(){return JSON.stringify({insertText:this.insertText,range:this.range.toString()})}}function bp(e,t,i,o){const n=i.getLineContent(t.lineNumber).substring(0,t.column-1)+e,s=i.tokenization.tokenizeLineWithEdit(t,n.length-(t.column-1),e),r=null===s||void 0===s?void 0:s.sliceAndInflate(t.column-1,n.length,0);if(!r)return e;const a=function(e,t){const i=new up.FE,o=new dp.Z(i,(e=>t.getLanguageConfiguration(e))),n=new gp.xH(new pp([e]),o),s=(0,hp.w)(n,[],void 0,!0);let r="";const a=e.getLineContent();return function e(t,i){if(2===t.kind)if(e(t.openingBracket,i),i=(0,cp.Ii)(i,t.openingBracket.length),t.child&&(e(t.child,i),i=(0,cp.Ii)(i,t.child.length)),t.closingBracket)e(t.closingBracket,i),i=(0,cp.Ii)(i,t.closingBracket.length);else{const e=o.getSingleLanguageBracketTokens(t.openingBracket.languageId).findClosingTokenText(t.openingBracket.bracketIds);r+=e}else if(3===t.kind);else if(0===t.kind||1===t.kind)r+=a.substring((0,cp.F_)(i),(0,cp.F_)((0,cp.Ii)(i,t.length)));else if(4===t.kind)for(const o of t.children)e(o,i),i=(0,cp.Ii)(i,o.length)}(s,cp.xl),r}(r,o);return a}var Cp=i(24323),Sp=i(59122);function yp(e,t,i){const o=i?e.range.intersectRanges(i):e.range;if(!o)return e;const n=t.getValueInRange(o,1),s=(0,ii.Mh)(n,e.text),r=Sp.A.ofText(n.substring(0,s)).addToPosition(e.range.getStartPosition()),a=e.text.substring(s),l=He.e.fromPositions(r,e.range.getEndPosition());return new qg.At(l,a)}function wp(e,t){return e.text.startsWith(t.text)&&(i=e.range,(o=t.range).getStartPosition().equals(i.getStartPosition())&&o.getEndPosition().isBeforeOrEqual(i.getEndPosition()));var i,o}function xp(e,t,i,o){let n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,s=yp(e,t);if(s.range.endLineNumber!==s.range.startLineNumber)return;const r=t.getLineContent(s.range.startLineNumber),a=(0,ii.V8)(r).length;if(s.range.startColumn-1<=a){const e=(0,ii.V8)(s.text).length,t=r.substring(s.range.startColumn-1,a),[i,o]=[s.range.getStartPosition(),s.range.getEndPosition()],n=i.column+t.length<=o.column?i.delta(0,t.length):o,l=He.e.fromPositions(n,o),d=s.text.startsWith(t)?s.text.substring(t.length):s.text.substring(e);s=new qg.At(l,d)}const l=t.getValueInRange(s.range),d=function(e,t){if((null===Np||void 0===Np?void 0:Np.originalValue)===e&&(null===Np||void 0===Np?void 0:Np.newValue)===t)return null===Np||void 0===Np?void 0:Np.changes;{let i=kp(e,t,!0);if(i){const o=Lp(i);if(o>0){const n=kp(e,t,!1);n&&Lp(n)<o&&(i=n)}}return Np={originalValue:e,newValue:t,changes:i},i}}(l,s.text);if(!d)return;const c=s.range.startLineNumber,h=new Array;if("prefix"===i){const e=d.filter((e=>0===e.originalLength));if(e.length>1||1===e.length&&e[0].originalStart!==l.length)return}const u=s.text.length-n;for(const g of d){const e=s.range.startColumn+g.originalStart+g.originalLength;if("subwordSmart"===i&&o&&o.lineNumber===s.range.startLineNumber&&e<o.column)return;if(g.originalLength>0)return;if(0===g.modifiedLength)continue;const t=g.modifiedStart+g.modifiedLength,n=Math.max(g.modifiedStart,Math.min(t,u)),r=s.text.substring(g.modifiedStart,n),a=s.text.substring(n,Math.max(g.modifiedStart,t));r.length>0&&h.push(new Qg(e,r,!1)),a.length>0&&h.push(new Qg(e,a,!0))}return new Gg(c,h)}let Np;function Lp(e){let t=0;for(const i of e)t+=i.originalLength;return t}function kp(e,t,i){if(e.length>5e3||t.length>5e3)return;function o(e){let t=0;for(let i=0,o=e.length;i<o;i++){const o=e.charCodeAt(i);o>t&&(t=o)}return t}const n=Math.max(o(e),o(t));function s(e){if(e<0)throw new Error("unexpected");return n+e+1}function r(e){let t=0,o=0;const n=new Int32Array(e.length);for(let r=0,a=e.length;r<a;r++)if(i&&"("===e[r]){const e=100*o+t;n[r]=s(2*e),t++}else if(i&&")"===e[r]){t=Math.max(t-1,0);const e=100*o+t;n[r]=s(2*e+1),0===t&&o++}else n[r]=e.charCodeAt(r);return n}const a=r(e),l=r(t);return new Cp.Hs({getElements:()=>a},{getElements:()=>l}).ComputeDiff(!1).changes}var Dp=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ip=function(e,t){return function(i,o){t(i,o,e)}};let Rp=class extends Fe.JT{constructor(e,t,i,o,n){super(),this.textModel=e,this.versionId=t,this._debounceValue=i,this.languageFeaturesService=o,this.languageConfigurationService=n,this._updateOperation=this._register(new Fe.XK),this.inlineCompletions=(0,dd.DN)("inlineCompletions",void 0),this.suggestWidgetInlineCompletions=(0,dd.DN)("suggestWidgetInlineCompletions",void 0),this._register(this.textModel.onDidChangeContent((()=>{this._updateOperation.clear()})))}fetch(e,t,i){var o,n;const s=new Pp(e,t,this.textModel.getVersionId()),r=t.selectedSuggestionInfo?this.suggestWidgetInlineCompletions:this.inlineCompletions;if(null===(o=this._updateOperation.value)||void 0===o?void 0:o.request.satisfies(s))return this._updateOperation.value.promise;if(null===(n=r.get())||void 0===n?void 0:n.request.satisfies(s))return Promise.resolve(!0);const a=!!this._updateOperation.value;this._updateOperation.clear();const l=new Yi.A,d=(async()=>{var o,n;if((a||t.triggerKind===Lt.bw.Automatic)&&await(o=this._debounceValue.get(this.textModel),n=l.token,new Promise((e=>{let t;const i=setTimeout((()=>{t&&t.dispose(),e()}),o);n&&(t=n.onCancellationRequested((()=>{clearTimeout(i),t&&t.dispose(),e()})))}))),l.token.isCancellationRequested||this.textModel.getVersionId()!==s.versionId)return!1;const d=new Date,c=await mp(this.languageFeaturesService.inlineCompletionsProvider,e,this.textModel,t,l.token,this.languageConfigurationService);if(l.token.isCancellationRequested||this.textModel.getVersionId()!==s.versionId)return!1;const h=new Date;this._debounceValue.update(this.textModel,h.getTime()-d.getTime());const u=new Tp(c,s,this.textModel,this.versionId);if(i){const t=i.toInlineCompletion(void 0);i.canBeReused(this.textModel,e)&&!c.has(t)&&u.prepend(i.inlineCompletion,t.range,!0)}return this._updateOperation.clear(),(0,dd.PS)((e=>{r.set(u,e)})),!0})(),c=new Mp(s,l,d);return this._updateOperation.value=c,d}clear(e){this._updateOperation.clear(),this.inlineCompletions.set(void 0,e),this.suggestWidgetInlineCompletions.set(void 0,e)}clearSuggestWidgetInlineCompletions(e){var t;(null===(t=this._updateOperation.value)||void 0===t?void 0:t.request.context.selectedSuggestionInfo)&&this._updateOperation.clear(),this.suggestWidgetInlineCompletions.set(void 0,e)}cancelUpdate(){this._updateOperation.clear()}};Rp=Dp([Ip(3,kt.p),Ip(4,Xn.c_)],Rp);class Pp{constructor(e,t,i){this.position=e,this.context=t,this.versionId=i}satisfies(e){return this.position.equals(e.position)&&function(e,t,i){if(!e||!t)return e===t;return i(e,t)}(this.context.selectedSuggestionInfo,e.context.selectedSuggestionInfo,((e,t)=>e.equals(t)))&&(e.context.triggerKind===Lt.bw.Automatic||this.context.triggerKind===Lt.bw.Explicit)&&this.versionId===e.versionId}}class Mp{constructor(e,t,i){this.request=e,this.cancellationTokenSource=t,this.promise=i}dispose(){this.cancellationTokenSource.cancel()}}class Tp{get inlineCompletions(){return this._inlineCompletions}constructor(e,t,i,o){this.inlineCompletionProviderResult=e,this.request=t,this.textModel=i,this.versionId=o,this._refCount=1,this._prependedInlineCompletionItems=[],this._rangeVersionIdValue=0,this._rangeVersionId=(0,dd.nK)(this,(e=>{this.versionId.read(e);let t=!1;for(const i of this._inlineCompletions)t=t||i._updateRange(this.textModel);return t&&this._rangeVersionIdValue++,this._rangeVersionIdValue}));const n=i.deltaDecorations([],e.completions.map((e=>({range:e.range,options:{description:"inline-completion-tracking-range"}}))));this._inlineCompletions=e.completions.map(((e,t)=>new Ep(e,n[t],this._rangeVersionId)))}clone(){return this._refCount++,this}dispose(){if(this._refCount--,0===this._refCount){setTimeout((()=>{this.textModel.isDisposed()||this.textModel.deltaDecorations(this._inlineCompletions.map((e=>e.decorationId)),[])}),0),this.inlineCompletionProviderResult.dispose();for(const e of this._prependedInlineCompletionItems)e.source.removeRef()}}prepend(e,t,i){i&&e.source.addRef();const o=this.textModel.deltaDecorations([],[{range:t,options:{description:"inline-completion-tracking-range"}}])[0];this._inlineCompletions.unshift(new Ep(e,o,this._rangeVersionId,t)),this._prependedInlineCompletionItems.push(e)}}class Ep{get forwardStable(){var e;return null!==(e=this.inlineCompletion.source.inlineCompletions.enableForwardStability)&&void 0!==e&&e}constructor(e,t,i,o){this.inlineCompletion=e,this.decorationId=t,this.rangeVersion=i,this.semanticId=JSON.stringify([this.inlineCompletion.filterText,this.inlineCompletion.insertText,this.inlineCompletion.range.getStartPosition().toString()]),this._isValid=!0,this._updatedRange=null!==o&&void 0!==o?o:e.range}toInlineCompletion(e){return this.inlineCompletion.withRange(this._getUpdatedRange(e))}toSingleTextEdit(e){return new qg.At(this._getUpdatedRange(e),this.inlineCompletion.insertText)}isVisible(e,t,i){const o=yp(this._toFilterTextReplacement(i),e);if(!this._isValid||!this.inlineCompletion.range.getStartPosition().equals(this._getUpdatedRange(i).getStartPosition())||t.lineNumber!==o.range.startLineNumber)return!1;const n=e.getValueInRange(o.range,1),s=o.text,r=Math.max(0,t.column-o.range.startColumn);let a=s.substring(0,r),l=s.substring(r),d=n.substring(0,r),c=n.substring(r);const h=e.getLineIndentColumn(o.range.startLineNumber);return o.range.startColumn<=h&&(d=d.trimStart(),0===d.length&&(c=c.trimStart()),a=a.trimStart(),0===a.length&&(l=l.trimStart())),a.startsWith(d)&&!!(0,Fr.Sy)(c,l)}canBeReused(e,t){return this._isValid&&this._getUpdatedRange(void 0).containsPosition(t)&&this.isVisible(e,t,void 0)&&!this._isSmallerThanOriginal(void 0)}_toFilterTextReplacement(e){return new qg.At(this._getUpdatedRange(e),this.inlineCompletion.filterText)}_isSmallerThanOriginal(e){return Ap(this._getUpdatedRange(e)).isBefore(Ap(this.inlineCompletion.range))}_getUpdatedRange(e){return this.rangeVersion.read(e),this._updatedRange}_updateRange(e){const t=e.getDecorationRange(this.decorationId);return t?!this._updatedRange.equalsRange(t)&&(this._updatedRange=t,!0):(this._isValid=!1,!0)}}function Ap(e){return e.startLineNumber===e.endLineNumber?new We.L(1,1+e.endColumn-e.startColumn):new We.L(1+e.endLineNumber-e.startLineNumber,e.endColumn)}const Op={Visible:Nh,HasFocusedSuggestion:new ae.uy("suggestWidgetHasFocusedSuggestion",!1,(0,ne.NC)("suggestWidgetHasSelection","Whether any suggestion is focused")),DetailsVisible:new ae.uy("suggestWidgetDetailsVisible",!1,(0,ne.NC)("suggestWidgetDetailsVisible","Whether suggestion details are visible")),MultipleSuggestions:new ae.uy("suggestWidgetMultipleSuggestions",!1,(0,ne.NC)("suggestWidgetMultipleSuggestions","Whether there are multiple suggestions to pick from")),MakesTextEdit:new ae.uy("suggestionMakesTextEdit",!0,(0,ne.NC)("suggestionMakesTextEdit","Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new ae.uy("acceptSuggestionOnEnter",!0,(0,ne.NC)("acceptSuggestionOnEnter","Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new ae.uy("suggestionHasInsertAndReplaceRange",!1,(0,ne.NC)("suggestionHasInsertAndReplaceRange","Whether the current suggestion has insert and replace behaviour")),InsertMode:new ae.uy("suggestionInsertMode",void 0,{type:"string",description:(0,ne.NC)("suggestionInsertMode","Whether the default behaviour is to insert or replace")}),CanResolve:new ae.uy("suggestionCanResolve",!1,(0,ne.NC)("suggestionCanResolve","Whether the current suggestion supports to resolve further details"))},Fp=new se.eH("suggestWidgetStatusBar");class Wp{constructor(e,t,i,o){var n;this.position=e,this.completion=t,this.container=i,this.provider=o,this.isInvalid=!1,this.score=Fr.CL.Default,this.distance=0,this.textLabel="string"===typeof t.label?t.label:null===(n=t.label)||void 0===n?void 0:n.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=t.sortText&&t.sortText.toLowerCase(),this.filterTextLow=t.filterText&&t.filterText.toLowerCase(),this.extensionId=t.extensionId,He.e.isIRange(t.range)?(this.editStart=new We.L(t.range.startLineNumber,t.range.startColumn),this.editInsertEnd=new We.L(t.range.endLineNumber,t.range.endColumn),this.editReplaceEnd=new We.L(t.range.endLineNumber,t.range.endColumn),this.isInvalid=this.isInvalid||He.e.spansMultipleLines(t.range)||t.range.startLineNumber!==e.lineNumber):(this.editStart=new We.L(t.range.insert.startLineNumber,t.range.insert.startColumn),this.editInsertEnd=new We.L(t.range.insert.endLineNumber,t.range.insert.endColumn),this.editReplaceEnd=new We.L(t.range.replace.endLineNumber,t.range.replace.endColumn),this.isInvalid=this.isInvalid||He.e.spansMultipleLines(t.range.insert)||He.e.spansMultipleLines(t.range.replace)||t.range.insert.startLineNumber!==e.lineNumber||t.range.replace.startLineNumber!==e.lineNumber||t.range.insert.startColumn!==t.range.replace.startColumn),"function"!==typeof o.resolveCompletionItem&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return void 0!==this._resolveDuration}get resolveDuration(){return void 0!==this._resolveDuration?this._resolveDuration:-1}async resolve(e){if(!this._resolveCache){const t=e.onCancellationRequested((()=>{this._resolveCache=void 0,this._resolveDuration=void 0})),i=new Yn.G(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,e)).then((e=>{Object.assign(this.completion,e),this._resolveDuration=i.elapsed()}),(e=>{(0,Ji.n2)(e)&&(this._resolveCache=void 0,this._resolveDuration=void 0)})).finally((()=>{t.dispose()}))}return this._resolveCache}}class Hp{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:2,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:new Map,n=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];this.snippetSortOrder=e,this.kindFilter=t,this.providerFilter=i,this.providerItemsToReuse=o,this.showDeprecated=n}}let Vp;Hp.default=new Hp;class Bp{constructor(e,t,i,o){this.items=e,this.needsClipboard=t,this.durations=i,this.disposable=o}}async function zp(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Hp.default,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{triggerKind:0},s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:Yi.T.None;const r=new Yn.G;i=i.clone();const a=t.getWordAtPosition(i),l=a?new He.e(i.lineNumber,a.startColumn,i.lineNumber,a.endColumn):He.e.fromPositions(i),d={replace:l,insert:l.setEndPosition(i.lineNumber,i.column)},c=[],h=new Fe.SL,u=[];let g=!1;const p=(e,t,n)=>{var s,r,a;let l=!1;if(!t)return l;for(const h of t.suggestions)if(!o.kindFilter.has(h.kind)){if(!o.showDeprecated&&(null===(s=null===h||void 0===h?void 0:h.tags)||void 0===s?void 0:s.includes(1)))continue;h.range||(h.range=d),h.sortText||(h.sortText="string"===typeof h.label?h.label:h.label.label),!g&&h.insertTextRules&&4&h.insertTextRules&&(g=$t.guessNeedsClipboard(h.insertText)),c.push(new Wp(i,h,t,e)),l=!0}return(0,Fe.Wf)(t)&&h.add(t),u.push({providerName:null!==(r=e._debugDisplayName)&&void 0!==r?r:"unknown_provider",elapsedProvider:null!==(a=t.duration)&&void 0!==a?a:-1,elapsedOverall:n.elapsed()}),l},m=(async()=>{if(!Vp||o.kindFilter.has(27))return;const e=o.providerItemsToReuse.get(Vp);if(e)return void e.forEach((e=>c.push(e)));if(o.providerFilter.size>0&&!o.providerFilter.has(Vp))return;const r=new Yn.G,a=await Vp.provideCompletionItems(t,i,n,s);p(Vp,a,r)})();for(const f of e.orderedGroups(t)){let e=!1;if(await Promise.all(f.map((async r=>{if(o.providerItemsToReuse.has(r)){const t=o.providerItemsToReuse.get(r);return t.forEach((e=>c.push(e))),void(e=e||t.length>0)}if(!(o.providerFilter.size>0)||o.providerFilter.has(r))try{const o=new Yn.G,a=await r.provideCompletionItems(t,i,n,s);e=p(r,a,o)||e}catch(a){(0,Ji.Cp)(a)}}))),e||s.isCancellationRequested)break}return await m,s.isCancellationRequested?(h.dispose(),Promise.reject(new Ji.FU)):new Bp(c.sort((_=o.snippetSortOrder,Kp.get(_))),g,{entries:u,elapsed:r.elapsed()},h);var _}function Up(e,t){if(e.sortTextLow&&t.sortTextLow){if(e.sortTextLow<t.sortTextLow)return-1;if(e.sortTextLow>t.sortTextLow)return 1}return e.textLabel<t.textLabel?-1:e.textLabel>t.textLabel?1:e.completion.kind-t.completion.kind}const Kp=new Map;Kp.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 Up(e,t)})),Kp.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 Up(e,t)})),Kp.set(1,Up),ye.P.registerCommand("_executeCompletionItemProvider",(async function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];const[n,s,r,a]=i;(0,Dn.p_)(_t.o.isUri(n)),(0,Dn.p_)(We.L.isIPosition(s)),(0,Dn.p_)("string"===typeof r||!r),(0,Dn.p_)("number"===typeof a||!a);const{completionProvider:l}=e.get(kt.p),d=await e.get(Ks.S).createModelReference(n);try{const e={incomplete:!1,suggestions:[]},t=[],i=d.object.textEditorModel.validatePosition(s),o=await zp(l,d.object.textEditorModel,i,void 0,{triggerCharacter:null!==r&&void 0!==r?r:void 0,triggerKind:r?1:0});for(const n of o.items)t.length<(null!==a&&void 0!==a?a:0)&&t.push(n.resolve(Yi.T.None)),e.incomplete=e.incomplete||n.container.incomplete,e.suggestions.push(n.completion);try{return await Promise.all(t),e}finally{setTimeout((()=>o.disposable.dispose()),100)}}finally{d.dispose()}}));class jp{static isAllOff(e){return"off"===e.other&&"off"===e.comments&&"off"===e.strings}static isAllOn(e){return"on"===e.other&&"on"===e.comments&&"on"===e.strings}static valueFor(e,t){switch(t){case 1:return e.comments;case 2:return e.strings;default:return e.other}}}var qp=i(83717),Gp=i(9861);function Qp(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:it.ED;return(0,Gp.oP)(e,t)?e.charAt(0).toUpperCase()+e.slice(1):e}Object.create(null);var Zp=i(51169),Yp=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Jp=function(e,t){return function(i,o){t(i,o,e)}};Object.freeze({CURRENT_YEAR:!0,CURRENT_YEAR_SHORT:!0,CURRENT_MONTH:!0,CURRENT_DATE:!0,CURRENT_HOUR:!0,CURRENT_MINUTE:!0,CURRENT_SECOND:!0,CURRENT_DAY_NAME:!0,CURRENT_DAY_NAME_SHORT:!0,CURRENT_MONTH_NAME:!0,CURRENT_MONTH_NAME_SHORT:!0,CURRENT_SECONDS_UNIX:!0,CURRENT_TIMEZONE_OFFSET:!0,SELECTION:!0,CLIPBOARD:!0,TM_SELECTED_TEXT:!0,TM_CURRENT_LINE:!0,TM_CURRENT_WORD:!0,TM_LINE_INDEX:!0,TM_LINE_NUMBER:!0,TM_FILENAME:!0,TM_FILENAME_BASE:!0,TM_DIRECTORY:!0,TM_FILEPATH:!0,CURSOR_INDEX:!0,CURSOR_NUMBER:!0,RELATIVE_FILEPATH:!0,BLOCK_COMMENT_START:!0,BLOCK_COMMENT_END:!0,LINE_COMMENT:!0,WORKSPACE_NAME:!0,WORKSPACE_FOLDER:!0,RANDOM:!0,RANDOM_HEX:!0,UUID:!0});class $p{constructor(e){this._delegates=e}resolve(e){for(const t of this._delegates){const i=t.resolve(e);if(void 0!==i)return i}}}class Xp{constructor(e,t,i,o){this._model=e,this._selection=t,this._selectionIdx=i,this._overtypingCapturer=o}resolve(e){const{name:t}=e;if("SELECTION"===t||"TM_SELECTED_TEXT"===t){let t=this._model.getValueInRange(this._selection)||void 0,i=this._selection.startLineNumber!==this._selection.endLineNumber;if(!t&&this._overtypingCapturer){const e=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);e&&(t=e.value,i=e.multiline)}if(t&&i&&e.snippet){const i=this._model.getLineContent(this._selection.startLineNumber),o=(0,ii.V8)(i,0,this._selection.startColumn-1);let n=o;e.snippet.walk((t=>t!==e&&(t instanceof Ut&&(n=(0,ii.V8)((0,ii.uq)(t.value).pop())),!0)));const s=(0,ii.Mh)(n,o);t=t.replace(/(\r\n|\r|\n)(.*)/g,((e,t,i)=>"".concat(t).concat(n.substr(s)).concat(i)))}return t}if("TM_CURRENT_LINE"===t)return this._model.getLineContent(this._selection.positionLineNumber);if("TM_CURRENT_WORD"===t){const e=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return e&&e.word||void 0}return"TM_LINE_INDEX"===t?String(this._selection.positionLineNumber-1):"TM_LINE_NUMBER"===t?String(this._selection.positionLineNumber):"CURSOR_INDEX"===t?String(this._selectionIdx):"CURSOR_NUMBER"===t?String(this._selectionIdx+1):void 0}}class em{constructor(e,t){this._labelService=e,this._model=t}resolve(e){const{name:t}=e;if("TM_FILENAME"===t)return Zp.EZ(this._model.uri.fsPath);if("TM_FILENAME_BASE"===t){const e=Zp.EZ(this._model.uri.fsPath),t=e.lastIndexOf(".");return t<=0?e:e.slice(0,t)}return"TM_DIRECTORY"===t?"."===Zp.XX(this._model.uri.fsPath)?"":this._labelService.getUriLabel((0,It.XX)(this._model.uri)):"TM_FILEPATH"===t?this._labelService.getUriLabel(this._model.uri):"RELATIVE_FILEPATH"===t?this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0}):void 0}}class tm{constructor(e,t,i,o){this._readClipboardText=e,this._selectionIdx=t,this._selectionCount=i,this._spread=o}resolve(e){if("CLIPBOARD"!==e.name)return;const t=this._readClipboardText();if(t){if(this._spread){const e=t.split(/\r\n|\n|\r/).filter((e=>!(0,ii.m5)(e)));if(e.length===this._selectionCount)return e[this._selectionIdx]}return t}}}let im=class{constructor(e,t,i){this._model=e,this._selection=t,this._languageConfigurationService=i}resolve(e){const{name:t}=e,i=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),o=this._languageConfigurationService.getLanguageConfiguration(i).comments;if(o)return"LINE_COMMENT"===t?o.lineCommentToken||void 0:"BLOCK_COMMENT_START"===t?o.blockCommentStartToken||void 0:"BLOCK_COMMENT_END"===t&&o.blockCommentEndToken||void 0}};im=Yp([Jp(2,Xn.c_)],im);class om{constructor(){this._date=new Date}resolve(e){const{name:t}=e;if("CURRENT_YEAR"===t)return String(this._date.getFullYear());if("CURRENT_YEAR_SHORT"===t)return String(this._date.getFullYear()).slice(-2);if("CURRENT_MONTH"===t)return String(this._date.getMonth().valueOf()+1).padStart(2,"0");if("CURRENT_DATE"===t)return String(this._date.getDate().valueOf()).padStart(2,"0");if("CURRENT_HOUR"===t)return String(this._date.getHours().valueOf()).padStart(2,"0");if("CURRENT_MINUTE"===t)return String(this._date.getMinutes().valueOf()).padStart(2,"0");if("CURRENT_SECOND"===t)return String(this._date.getSeconds().valueOf()).padStart(2,"0");if("CURRENT_DAY_NAME"===t)return om.dayNames[this._date.getDay()];if("CURRENT_DAY_NAME_SHORT"===t)return om.dayNamesShort[this._date.getDay()];if("CURRENT_MONTH_NAME"===t)return om.monthNames[this._date.getMonth()];if("CURRENT_MONTH_NAME_SHORT"===t)return om.monthNamesShort[this._date.getMonth()];if("CURRENT_SECONDS_UNIX"===t)return String(Math.floor(this._date.getTime()/1e3));if("CURRENT_TIMEZONE_OFFSET"===t){const e=this._date.getTimezoneOffset(),t=e>0?"-":"+",i=Math.trunc(Math.abs(e/60)),o=i<10?"0"+i:i,n=Math.abs(e)-60*i;return t+o+":"+(n<10?"0"+n:n)}}}om.dayNames=[ne.NC("Sunday","Sunday"),ne.NC("Monday","Monday"),ne.NC("Tuesday","Tuesday"),ne.NC("Wednesday","Wednesday"),ne.NC("Thursday","Thursday"),ne.NC("Friday","Friday"),ne.NC("Saturday","Saturday")],om.dayNamesShort=[ne.NC("SundayShort","Sun"),ne.NC("MondayShort","Mon"),ne.NC("TuesdayShort","Tue"),ne.NC("WednesdayShort","Wed"),ne.NC("ThursdayShort","Thu"),ne.NC("FridayShort","Fri"),ne.NC("SaturdayShort","Sat")],om.monthNames=[ne.NC("January","January"),ne.NC("February","February"),ne.NC("March","March"),ne.NC("April","April"),ne.NC("May","May"),ne.NC("June","June"),ne.NC("July","July"),ne.NC("August","August"),ne.NC("September","September"),ne.NC("October","October"),ne.NC("November","November"),ne.NC("December","December")],om.monthNamesShort=[ne.NC("JanuaryShort","Jan"),ne.NC("FebruaryShort","Feb"),ne.NC("MarchShort","Mar"),ne.NC("AprilShort","Apr"),ne.NC("MayShort","May"),ne.NC("JuneShort","Jun"),ne.NC("JulyShort","Jul"),ne.NC("AugustShort","Aug"),ne.NC("SeptemberShort","Sep"),ne.NC("OctoberShort","Oct"),ne.NC("NovemberShort","Nov"),ne.NC("DecemberShort","Dec")];class nm{constructor(e){this._workspaceService=e}resolve(e){if(!this._workspaceService)return;const t=(0,Rt.uT)(this._workspaceService.getWorkspace());return(0,Rt.c$)(t)?void 0:"WORKSPACE_NAME"===e.name?this._resolveWorkspaceName(t):"WORKSPACE_FOLDER"===e.name?this._resoveWorkspacePath(t):void 0}_resolveWorkspaceName(e){if((0,Rt.eb)(e))return Zp.EZ(e.uri.path);let t=Zp.EZ(e.configPath.path);return t.endsWith(Rt.A6)&&(t=t.substr(0,t.length-Rt.A6.length-1)),t}_resoveWorkspacePath(e){if((0,Rt.eb)(e))return Qp(e.uri.fsPath);const t=Zp.EZ(e.configPath.path);let i=e.configPath.fsPath;return i.endsWith(t)&&(i=i.substr(0,i.length-t.length-1)),i?Qp(i):"/"}}class sm{resolve(e){const{name:t}=e;return"RANDOM"===t?Math.random().toString().slice(-6):"RANDOM_HEX"===t?Math.random().toString(16).slice(-6):"UUID"===t?rt():void 0}}var rm,am=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},lm=function(e,t){return function(i,o){t(i,o,e)}};class dm{constructor(e,t,i){this._editor=e,this._snippet=t,this._snippetLineLeadingWhitespace=i,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=(0,nt.vM)(t.placeholders,jt.compareByIndex),this._placeholderGroupsIdx=-1}initialize(e){this._offset=e.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(-1===this._offset)throw new Error("Snippet not initialized!");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;const e=this._editor.getModel();this._editor.changeDecorations((t=>{for(const i of this._snippet.placeholders){const o=this._snippet.offset(i),n=this._snippet.fullLen(i),s=He.e.fromPositions(e.getPositionAt(this._offset+o),e.getPositionAt(this._offset+o+n)),r=i.isFinalTabstop?dm._decor.inactiveFinal:dm._decor.inactive,a=t.addDecoration(s,r);this._placeholderDecorations.set(i,a)}}))}move(e){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){const e=[];for(const t of this._placeholderGroups[this._placeholderGroupsIdx])if(t.transform){const i=this._placeholderDecorations.get(t),o=this._editor.getModel().getDecorationRange(i),n=this._editor.getModel().getValueInRange(o),s=t.transform.resolve(n).split(/\r\n|\r|\n/);for(let e=1;e<s.length;e++)s[e]=this._editor.getModel().normalizeIndentation(this._snippetLineLeadingWhitespace+s[e]);e.push(Yd.h.replace(o,s.join(this._editor.getModel().getEOL())))}e.length>0&&this._editor.executeEdits("snippet.placeholderTransform",e)}let t=!1;!0===e&&this._placeholderGroupsIdx<this._placeholderGroups.length-1?(this._placeholderGroupsIdx+=1,t=!0):!1===e&&this._placeholderGroupsIdx>0&&(this._placeholderGroupsIdx-=1,t=!0);const i=this._editor.getModel().changeDecorations((e=>{const i=new Set,o=[];for(const n of this._placeholderGroups[this._placeholderGroupsIdx]){const s=this._placeholderDecorations.get(n),r=this._editor.getModel().getDecorationRange(s);o.push(new ke.Y(r.startLineNumber,r.startColumn,r.endLineNumber,r.endColumn)),t=t&&this._hasPlaceholderBeenCollapsed(n),e.changeDecorationOptions(s,n.isFinalTabstop?dm._decor.activeFinal:dm._decor.active),i.add(n);for(const t of this._snippet.enclosingPlaceholders(n)){const o=this._placeholderDecorations.get(t);e.changeDecorationOptions(o,t.isFinalTabstop?dm._decor.activeFinal:dm._decor.active),i.add(t)}}for(const[t,n]of this._placeholderDecorations)i.has(t)||e.changeDecorationOptions(n,t.isFinalTabstop?dm._decor.inactiveFinal:dm._decor.inactive);return o}));return t?this.move(e):null!==i&&void 0!==i?i:[]}_hasPlaceholderBeenCollapsed(e){let t=e;for(;t;){if(t instanceof jt){const e=this._placeholderDecorations.get(t);if(this._editor.getModel().getDecorationRange(e).isEmpty()&&t.toString().length>0)return!0}t=t.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||0===this._placeholderGroups.length}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(0===this._snippet.placeholders.length)return!0;if(1===this._snippet.placeholders.length){const[e]=this._snippet.placeholders;if(e.isFinalTabstop&&this._snippet.rightMostDescendant===e)return!0}return!1}computePossibleSelections(){const e=new Map;for(const t of this._placeholderGroups){let i;for(const o of t){if(o.isFinalTabstop)break;i||(i=[],e.set(o.index,i));const t=this._placeholderDecorations.get(o),n=this._editor.getModel().getDecorationRange(t);if(!n){e.delete(o.index);break}i.push(n)}}return e}get activeChoice(){if(!this._placeholderDecorations)return;const e=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!(null===e||void 0===e?void 0:e.choice))return;const t=this._placeholderDecorations.get(e);if(!t)return;const i=this._editor.getModel().getDecorationRange(t);return i?{range:i,choice:e.choice}:void 0}get hasChoice(){let e=!1;return this._snippet.walk((t=>(e=t instanceof qt,!e))),e}merge(e){const t=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations((i=>{for(const o of this._placeholderGroups[this._placeholderGroupsIdx]){const n=e.shift();console.assert(-1!==n._offset),console.assert(!n._placeholderDecorations);const s=n._snippet.placeholderInfo.last.index;for(const e of n._snippet.placeholderInfo.all)e.isFinalTabstop?e.index=o.index+(s+1)/this._nestingLevel:e.index=o.index+e.index/this._nestingLevel;this._snippet.replace(o,n._snippet.children);const r=this._placeholderDecorations.get(o);i.removeDecoration(r),this._placeholderDecorations.delete(o);for(const e of n._snippet.placeholders){const o=n._snippet.offset(e),s=n._snippet.fullLen(e),r=He.e.fromPositions(t.getPositionAt(n._offset+o),t.getPositionAt(n._offset+o+s)),a=i.addDecoration(r,dm._decor.inactive);this._placeholderDecorations.set(e,a)}}this._placeholderGroups=(0,nt.vM)(this._snippet.placeholders,jt.compareByIndex)}))}}dm._decor={active:Be.qx.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:Be.qx.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:Be.qx.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:Be.qx.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})};const cm={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let hm=rm=class{static adjustWhitespace(e,t,i,o,n){const s=e.getLineContent(t.lineNumber),r=(0,ii.V8)(s,0,t.column-1);let a;return o.walk((t=>{if(!(t instanceof Ut)||t.parent instanceof qt)return!0;if(n&&!n.has(t))return!0;const s=t.value.split(/\r\n|\r|\n/);if(i){const i=o.offset(t);if(0===i)s[0]=e.normalizeIndentation(s[0]);else{a=null!==a&&void 0!==a?a:o.toString();const t=a.charCodeAt(i-1);10!==t&&13!==t||(s[0]=e.normalizeIndentation(r+s[0]))}for(let t=1;t<s.length;t++)s[t]=e.normalizeIndentation(r+s[t])}const l=s.join(e.getEOL());return l!==t.value&&(t.parent.replace(t,[new Ut(l)]),a=void 0),!0})),r}static adjustSelection(e,t,i,o){if(0!==i||0!==o){const{positionLineNumber:n,positionColumn:s}=t,r=s-i,a=s+o,l=e.validateRange({startLineNumber:n,startColumn:r,endLineNumber:n,endColumn:a});t=ke.Y.createWithDirection(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn,t.getDirection())}return t}static createEditsAndSnippetsFromSelections(e,t,i,o,n,s,r,a,l){const d=[],c=[];if(!e.hasModel())return{edits:d,snippets:c};const h=e.getModel(),u=e.invokeWithinContext((e=>e.get(Rt.ec))),g=e.invokeWithinContext((e=>new em(e.get(Wr.e),h))),p=()=>r,m=h.getValueInRange(rm.adjustSelection(h,e.getSelection(),i,0)),_=h.getValueInRange(rm.adjustSelection(h,e.getSelection(),0,o)),f=h.getLineFirstNonWhitespaceColumn(e.getSelection().positionLineNumber),v=e.getSelections().map(((e,t)=>({selection:e,idx:t}))).sort(((e,t)=>He.e.compareRangesUsingStarts(e.selection,t.selection)));for(const{selection:b,idx:C}of v){let r=rm.adjustSelection(h,b,i,0),S=rm.adjustSelection(h,b,0,o);m!==h.getValueInRange(r)&&(r=b),_!==h.getValueInRange(S)&&(S=b);const y=b.setStartPosition(r.startLineNumber,r.startColumn).setEndPosition(S.endLineNumber,S.endColumn),w=(new $t).parse(t,!0,n),x=y.getStartPosition(),N=rm.adjustWhitespace(h,x,s||C>0&&f!==h.getLineFirstNonWhitespaceColumn(b.positionLineNumber),w);w.resolveVariables(new $p([g,new tm(p,C,v.length,"spread"===e.getOption(79)),new Xp(h,b,C,a),new im(h,b,l),new om,new nm(u),new sm])),d[C]=Yd.h.replace(y,w.toString()),d[C].identifier={major:C,minor:0},d[C]._isTracked=!0,c[C]=new dm(e,w,N)}return{edits:d,snippets:c}}static createEditsAndSnippetsFromEdits(e,t,i,o,n,s,r){if(!e.hasModel()||0===t.length)return{edits:[],snippets:[]};const a=[],l=e.getModel(),d=new $t,c=new Jt,h=new $p([e.invokeWithinContext((e=>new em(e.get(Wr.e),l))),new tm((()=>n),0,e.getSelections().length,"spread"===e.getOption(79)),new Xp(l,e.getSelection(),0,s),new im(l,e.getSelection(),r),new om,new nm(e.invokeWithinContext((e=>e.get(Rt.ec)))),new sm]);t=t.sort(((e,t)=>He.e.compareRangesUsingStarts(e.range,t.range)));let u=0;for(let g=0;g<t.length;g++){const{range:e,template:i}=t[g];if(g>0){const i=t[g-1].range,o=He.e.fromPositions(i.getEndPosition(),e.getStartPosition()),n=new Ut(l.getValueInRange(o));c.appendChild(n),u+=n.value.length}const o=d.parseFragment(i,c);rm.adjustWhitespace(l,e.getStartPosition(),!0,c,new Set(o)),c.resolveVariables(h);const n=c.toString(),s=n.slice(u);u=n.length;const r=Yd.h.replace(e,s);r.identifier={major:g,minor:0},r._isTracked=!0,a.push(r)}return d.ensureFinalTabstop(c,i,!0),{edits:a,snippets:[new dm(e,c,"")]}}constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:cm,o=arguments.length>3?arguments[3]:void 0;this._editor=e,this._template=t,this._options=i,this._languageConfigurationService=o,this._templateMerges=[],this._snippets=[]}dispose(){(0,Fe.B9)(this._snippets)}_logInfo(){return'template="'.concat(this._template,'", merged_templates="').concat(this._templateMerges.join(" -> "),'"')}insert(){if(!this._editor.hasModel())return;const{edits:e,snippets:t}="string"===typeof this._template?rm.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):rm.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=t,this._editor.executeEdits("snippet",e,(e=>{const i=e.filter((e=>!!e.identifier));for(let o=0;o<t.length;o++)t[o].initialize(i[o].textChange);return this._snippets[0].hasPlaceholder?this._move(!0):i.map((e=>ke.Y.fromPositions(e.range.getEndPosition())))})),this._editor.revealRange(this._editor.getSelections()[0])}merge(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:cm;if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,e]);const{edits:i,snippets:o}=rm.createEditsAndSnippetsFromSelections(this._editor,e,t.overwriteBefore,t.overwriteAfter,!0,t.adjustWhitespace,t.clipboardText,t.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",i,(e=>{const t=e.filter((e=>!!e.identifier));for(let n=0;n<o.length;n++)o[n].initialize(t[n].textChange);const i=o[0].isTrivialSnippet;if(!i){for(const e of this._snippets)e.merge(o);console.assert(0===o.length)}return this._snippets[0].hasPlaceholder&&!i?this._move(void 0):t.map((e=>ke.Y.fromPositions(e.range.getEndPosition())))}))}next(){const e=this._move(!0);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}prev(){const e=this._move(!1);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}_move(e){const t=[];for(const i of this._snippets){const o=i.move(e);t.push(...o)}return t}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;const e=this._editor.getSelections();if(e.length<this._snippets.length)return!1;const t=new Map;for(const i of this._snippets){const o=i.computePossibleSelections();if(0===t.size)for(const[i,n]of o){n.sort(He.e.compareRangesUsingStarts);for(const o of e)if(n[0].containsRange(o)){t.set(i,[]);break}}if(0===t.size)return!1;t.forEach(((e,t)=>{e.push(...o.get(t))}))}e.sort(He.e.compareRangesUsingStarts);for(const[i,o]of t)if(o.length===e.length){o.sort(He.e.compareRangesUsingStarts);for(let n=0;n<o.length;n++)o[n].containsRange(e[n])||t.delete(i)}else t.delete(i);return t.size>0}};hm=rm=am([lm(3,Xn.c_)],hm);var um,gm=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},pm=function(e,t){return function(i,o){t(i,o,e)}};const mm={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let _m=um=class{static get(e){return e.getContribution(um.ID)}constructor(e,t,i,o,n){this._editor=e,this._logService=t,this._languageFeaturesService=i,this._languageConfigurationService=n,this._snippetListener=new Fe.SL,this._modelVersionId=-1,this._inSnippet=um.InSnippetMode.bindTo(o),this._hasNextTabstop=um.HasNextTabstop.bindTo(o),this._hasPrevTabstop=um.HasPrevTabstop.bindTo(o)}dispose(){var e;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),null===(e=this._session)||void 0===e||e.dispose(),this._snippetListener.dispose()}insert(e,t){try{this._doInsert(e,"undefined"===typeof t?mm:{...mm,...t})}catch(i){this.cancel(),this._logService.error(i),this._logService.error("snippet_error"),this._logService.error("insert_template=",e),this._logService.error("existing_template=",this._session?this._session._logInfo():"<no_session>")}}_doInsert(e,t){var i;if(this._editor.hasModel()){if(this._snippetListener.clear(),t.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&"string"!==typeof e&&this.cancel(),this._session?((0,Dn.p_)("string"===typeof e),this._session.merge(e,t)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new hm(this._editor,e,t,this._languageConfigurationService),this._session.insert()),t.undoStopAfter&&this._editor.getModel().pushStackElement(),null===(i=this._session)||void 0===i?void 0:i.hasChoice){const e={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(e,t)=>{if(!this._session||e!==this._editor.getModel()||!We.L.equals(this._editor.getPosition(),t))return;const{activeChoice:i}=this._session;if(!i||0===i.choice.options.length)return;const o=e.getValueInRange(i.range),n=Boolean(i.choice.options.find((e=>e.value===o))),s=[];for(let r=0;r<i.choice.options.length;r++){const e=i.choice.options[r];s.push({kind:13,label:e.value,insertText:e.value,sortText:"a".repeat(r+1),range:i.range,filterText:n?"".concat(o,"_").concat(e.value):void 0,command:{id:"jumpToNextSnippetPlaceholder",title:(0,ne.NC)("next","Go to next placeholder...")}})}return{suggestions:s}}},t=this._editor.getModel();let i,o=!1;const n=()=>{null===i||void 0===i||i.dispose(),o=!1},s=()=>{o||(i=this._languageFeaturesService.completionProvider.register({language:t.getLanguageId(),pattern:t.uri.fsPath,scheme:t.uri.scheme,exclusive:!0},e),this._snippetListener.add(i),o=!0)};this._choiceCompletions={provider:e,enable:s,disable:n}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent((e=>e.isFlush&&this.cancel()))),this._snippetListener.add(this._editor.onDidChangeModel((()=>this.cancel()))),this._snippetListener.add(this._editor.onDidChangeCursorSelection((()=>this._updateState())))}}_updateState(){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._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){var e;if(!this._session||!this._editor.hasModel())return void(this._currentChoice=void 0);const{activeChoice:t}=this._session;if(!t||!this._choiceCompletions)return null===(e=this._choiceCompletions)||void 0===e||e.disable(),void(this._currentChoice=void 0);this._currentChoice!==t.choice&&(this._currentChoice=t.choice,this._choiceCompletions.enable(),queueMicrotask((()=>{!function(e,t){var i;null===(i=e.getContribution("editor.contrib.suggestController"))||void 0===i||i.triggerSuggest((new Set).add(t),void 0,!0)}(this._editor,this._choiceCompletions.provider)})))}finish(){for(;this._inSnippet.get();)this.next()}cancel(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];var t;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),this._currentChoice=void 0,null===(t=this._session)||void 0===t||t.dispose(),this._session=void 0,this._modelVersionId=-1,e&&this._editor.setSelections([this._editor.getSelection()])}prev(){var e;null===(e=this._session)||void 0===e||e.prev(),this._updateState()}next(){var e;null===(e=this._session)||void 0===e||e.next(),this._updateState()}isInSnippet(){return Boolean(this._inSnippet.get())}};_m.ID="snippetController2",_m.InSnippetMode=new ae.uy("inSnippetMode",!1,(0,ne.NC)("inSnippetMode","Whether the editor in current in snippet mode")),_m.HasNextTabstop=new ae.uy("hasNextTabstop",!1,(0,ne.NC)("hasNextTabstop","Whether there is a next tab stop when in snippet mode")),_m.HasPrevTabstop=new ae.uy("hasPrevTabstop",!1,(0,ne.NC)("hasPrevTabstop","Whether there is a previous tab stop when in snippet mode")),_m=um=gm([pm(1,qp.VZ),pm(2,kt.p),pm(3,ae.i6),pm(4,Xn.c_)],_m),(0,ee._K)(_m.ID,_m,4);const fm=ee._l.bindToContribution(_m.get);(0,ee.fK)(new fm({id:"jumpToNextSnippetPlaceholder",precondition:ae.Ao.and(_m.InSnippetMode,_m.HasNextTabstop),handler:e=>e.next(),kbOpts:{weight:130,kbExpr:oe.u.editorTextFocus,primary:2}})),(0,ee.fK)(new fm({id:"jumpToPrevSnippetPlaceholder",precondition:ae.Ao.and(_m.InSnippetMode,_m.HasPrevTabstop),handler:e=>e.prev(),kbOpts:{weight:130,kbExpr:oe.u.editorTextFocus,primary:1026}})),(0,ee.fK)(new fm({id:"leaveSnippet",precondition:_m.InSnippetMode,handler:e=>e.cancel(!0),kbOpts:{weight:130,kbExpr:oe.u.editorTextFocus,primary:9,secondary:[1033]}})),(0,ee.fK)(new fm({id:"acceptSnippet",precondition:_m.InSnippetMode,handler:e=>e.finish()}));var vm,bm=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Cm=function(e,t){return function(i,o){t(i,o,e)}};!function(e){e[e.Undo=0]="Undo",e[e.Redo=1]="Redo",e[e.AcceptWord=2]="AcceptWord",e[e.Other=3]="Other"}(vm||(vm={}));let Sm=class extends Fe.JT{get isAcceptingPartially(){return this._isAcceptingPartially}constructor(e,t,i,o,n,s,r,a,l,d,c,h){let u;super(),this.textModel=e,this.selectedSuggestItem=t,this.textModelVersionId=i,this._positions=o,this._debounceValue=n,this._suggestPreviewEnabled=s,this._suggestPreviewMode=r,this._inlineSuggestMode=a,this._enabled=l,this._instantiationService=d,this._commandService=c,this._languageConfigurationService=h,this._source=this._register(this._instantiationService.createInstance(Rp,this.textModel,this.textModelVersionId,this._debounceValue)),this._isActive=(0,dd.uh)(this,!1),this._forceUpdateSignal=(0,dd.GN)("forceUpdate"),this._selectedInlineCompletionId=(0,dd.uh)(this,void 0),this._primaryPosition=(0,dd.nK)(this,(e=>{var t;return null!==(t=this._positions.read(e)[0])&&void 0!==t?t:new We.L(1,1)})),this._isAcceptingPartially=!1,this._preserveCurrentCompletionReasons=new Set([vm.Redo,vm.Undo,vm.AcceptWord]),this._fetchInlineCompletions=(0,dd.aK)({owner:this,createEmptyChangeSummary:()=>({preserveCurrentCompletion:!1,inlineCompletionTriggerKind:Lt.bw.Automatic}),handleChange:(e,t)=>(e.didChange(this.textModelVersionId)&&this._preserveCurrentCompletionReasons.has(e.change)?t.preserveCurrentCompletion=!0:e.didChange(this._forceUpdateSignal)&&(t.inlineCompletionTriggerKind=e.change),!0)},((e,t)=>{this._forceUpdateSignal.read(e);if(!(this._enabled.read(e)&&this.selectedSuggestItem.read(e)||this._isActive.read(e)))return void this._source.cancelUpdate();this.textModelVersionId.read(e);const i=this.selectedInlineCompletion.get(),o=t.preserveCurrentCompletion||(null===i||void 0===i?void 0:i.forwardStable)?i:void 0,n=this._source.suggestWidgetInlineCompletions.get(),s=this.selectedSuggestItem.read(e);if(n&&!s){const e=this._source.inlineCompletions.get();(0,dd.PS)((t=>{(!e||n.request.versionId>e.request.versionId)&&this._source.inlineCompletions.set(n.clone(),t),this._source.clearSuggestWidgetInlineCompletions(t)}))}const r=this._primaryPosition.read(e),a={triggerKind:t.inlineCompletionTriggerKind,selectedSuggestionInfo:null===s||void 0===s?void 0:s.toSelectedSuggestionInfo()};return this._source.fetch(r,a,o)})),this._filteredInlineCompletionItems=(0,dd.nK)(this,(e=>{const t=this._source.inlineCompletions.read(e);if(!t)return[];const i=this._primaryPosition.read(e),o=t.inlineCompletions.filter((t=>t.isVisible(this.textModel,i,e)));return o})),this.selectedInlineCompletionIndex=(0,dd.nK)(this,(e=>{const t=this._selectedInlineCompletionId.read(e),i=this._filteredInlineCompletionItems.read(e),o=void 0===this._selectedInlineCompletionId?-1:i.findIndex((e=>e.semanticId===t));return-1===o?(this._selectedInlineCompletionId.set(void 0,void 0),0):o})),this.selectedInlineCompletion=(0,dd.nK)(this,(e=>this._filteredInlineCompletionItems.read(e)[this.selectedInlineCompletionIndex.read(e)])),this.lastTriggerKind=this._source.inlineCompletions.map(this,(e=>null===e||void 0===e?void 0:e.request.context.triggerKind)),this.inlineCompletionsCount=(0,dd.nK)(this,(e=>this.lastTriggerKind.read(e)===Lt.bw.Explicit?this._filteredInlineCompletionItems.read(e).length:void 0)),this.state=(0,dd.bk)({owner:this,equalityComparer:(e,t)=>e&&t?Yg(e.ghostTexts,t.ghostTexts)&&e.inlineCompletion===t.inlineCompletion&&e.suggestItem===t.suggestItem:e===t},(e=>{var t,i;const o=this.textModel,n=this.selectedSuggestItem.read(e);if(n){const s=yp(n.toSingleTextEdit(),o),r=this._computeAugmentation(s,e);if(!this._suggestPreviewEnabled.read(e)&&!r)return;const a=null!==(t=null===r||void 0===r?void 0:r.edit)&&void 0!==t?t:s,l=r?r.edit.text.length-s.text.length:0,d=this._suggestPreviewMode.read(e),c=this._positions.read(e),h=[a,...ym(this.textModel,c,a)],u=h.map(((e,t)=>xp(e,o,d,c[t],l))).filter(Dn.$K);return{edits:h,primaryGhostText:null!==(i=u[0])&&void 0!==i?i:new Gg(a.range.endLineNumber,[]),ghostTexts:u,inlineCompletion:null===r||void 0===r?void 0:r.completion,suggestItem:n}}{if(!this._isActive.read(e))return;const t=this.selectedInlineCompletion.read(e);if(!t)return;const i=t.toSingleTextEdit(e),n=this._inlineSuggestMode.read(e),s=this._positions.read(e),r=[i,...ym(this.textModel,s,i)],a=r.map(((e,t)=>xp(e,o,n,s[t],0))).filter(Dn.$K);if(!a[0])return;return{edits:r,primaryGhostText:a[0],ghostTexts:a,inlineCompletion:t,suggestItem:void 0}}})),this.ghostTexts=(0,dd.bk)({owner:this,equalityComparer:Yg},(e=>{const t=this.state.read(e);if(t)return t.ghostTexts})),this.primaryGhostText=(0,dd.bk)({owner:this,equalityComparer:Jg},(e=>{const t=this.state.read(e);if(t)return null===t||void 0===t?void 0:t.primaryGhostText})),this._register((0,dd.jx)(this._fetchInlineCompletions)),this._register((0,dd.EH)((e=>{var t,i;const o=this.state.read(e),n=null===o||void 0===o?void 0:o.inlineCompletion;if((null===n||void 0===n?void 0:n.semanticId)!==(null===u||void 0===u?void 0:u.semanticId)&&(u=n,n)){const e=n.inlineCompletion,o=e.source;null===(i=(t=o.provider).handleItemDidShow)||void 0===i||i.call(t,o.inlineCompletions,e.sourceInlineCompletion,e.insertText)}})))}async trigger(e){this._isActive.set(!0,e),await this._fetchInlineCompletions.get()}async triggerExplicitly(e){(0,dd.c8)(e,(e=>{this._isActive.set(!0,e),this._forceUpdateSignal.trigger(e,Lt.bw.Explicit)})),await this._fetchInlineCompletions.get()}stop(e){(0,dd.c8)(e,(e=>{this._isActive.set(!1,e),this._source.clear(e)}))}_computeAugmentation(e,t){const i=this.textModel,o=this._source.suggestWidgetInlineCompletions.read(t),n=o?o.inlineCompletions:[this.selectedInlineCompletion.read(t)].filter(Dn.$K);return(0,Nc.Fr)(n,(o=>{let n=o.toSingleTextEdit(t);return n=yp(n,i,He.e.fromPositions(n.range.getStartPosition(),e.range.getEndPosition())),wp(n,e)?{completion:o,edit:n}:void 0}))}async _deltaSelectedInlineCompletionIndex(e){await this.triggerExplicitly();const t=this._filteredInlineCompletionItems.get()||[];if(t.length>0){const i=(this.selectedInlineCompletionIndex.get()+e+t.length)%t.length;this._selectedInlineCompletionId.set(t[i].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(e){var t;if(e.getModel()!==this.textModel)throw new Ji.he;const i=this.state.get();if(!i||i.primaryGhostText.isEmpty()||!i.inlineCompletion)return;const o=i.inlineCompletion.toInlineCompletion(void 0);if(e.pushUndoStop(),o.snippetInfo)e.executeEdits("inlineSuggestion.accept",[Yd.h.replaceMove(o.range,""),...o.additionalTextEdits]),e.setPosition(o.snippetInfo.range.getStartPosition(),"inlineCompletionAccept"),null===(t=_m.get(e))||void 0===t||t.insert(o.snippetInfo.snippet,{undoStopBefore:!1});else{const t=i.edits,n=wm(t).map((e=>ke.Y.fromPositions(e)));e.executeEdits("inlineSuggestion.accept",[...t.map((e=>Yd.h.replaceMove(e.range,e.text))),...o.additionalTextEdits]),e.setSelections(n,"inlineCompletionAccept")}o.command&&o.source.addRef(),(0,dd.PS)((e=>{this._source.clear(e),this._isActive.set(!1,e)})),o.command&&(await this._commandService.executeCommand(o.command.id,...o.command.arguments||[]).then(void 0,Ji.Cp),o.source.removeRef())}async acceptNextWord(e){await this._acceptNext(e,((e,t)=>{const i=this.textModel.getLanguageIdAtPosition(e.lineNumber,e.column),o=this._languageConfigurationService.getLanguageConfiguration(i),n=new RegExp(o.wordDefinition.source,o.wordDefinition.flags.replace("g","")),s=t.match(n);let r=0;r=s&&void 0!==s.index?0===s.index?s[0].length:s.index:t.length;const a=/\s+/g.exec(t);return a&&void 0!==a.index&&a.index+a[0].length<r&&(r=a.index+a[0].length),r}),0)}async acceptNextLine(e){await this._acceptNext(e,((e,t)=>{const i=t.match(/\n/);return i&&void 0!==i.index?i.index+1:t.length}),1)}async _acceptNext(e,t,i){if(e.getModel()!==this.textModel)throw new Ji.he;const o=this.state.get();if(!o||o.primaryGhostText.isEmpty()||!o.inlineCompletion)return;const n=o.primaryGhostText,s=o.inlineCompletion.toInlineCompletion(void 0);if(s.snippetInfo||s.filterText!==s.insertText)return void await this.accept(e);const r=n.parts[0],a=new We.L(n.lineNumber,r.column),l=r.text,d=t(a,l);if(d===l.length&&1===n.parts.length)return void this.accept(e);const c=l.substring(0,d),h=this._positions.get(),u=h[0];s.source.addRef();try{this._isAcceptingPartially=!0;try{e.pushUndoStop();const t=He.e.fromPositions(u,a),i=e.getModel().getValueInRange(t)+c,o=new qg.At(t,i),n=[o,...ym(this.textModel,h,o)],s=wm(n).map((e=>ke.Y.fromPositions(e)));e.executeEdits("inlineSuggestion.accept",n.map((e=>Yd.h.replaceMove(e.range,e.text)))),e.setSelections(s,"inlineCompletionPartialAccept")}finally{this._isAcceptingPartially=!1}if(s.source.provider.handlePartialAccept){const t=He.e.fromPositions(s.range.getStartPosition(),Sp.A.ofText(c).addToPosition(a)),o=e.getModel().getValueInRange(t,1);s.source.provider.handlePartialAccept(s.source.inlineCompletions,s.sourceInlineCompletion,o.length,{kind:i})}}finally{s.source.removeRef()}}handleSuggestAccepted(e){var t,i;const o=yp(e.toSingleTextEdit(),this.textModel),n=this._computeAugmentation(o,void 0);if(!n)return;const s=n.completion.inlineCompletion;null===(i=(t=s.source.provider).handlePartialAccept)||void 0===i||i.call(t,s.source.inlineCompletions,s.sourceInlineCompletion,o.text.length,{kind:2})}};function ym(e,t,i){if(1===t.length)return[];const o=t[0],n=t.slice(1),s=i.range.getStartPosition(),r=i.range.getEndPosition(),a=e.getValueInRange(He.e.fromPositions(o,r)),l=tp(o,s);if(l.lineNumber<1)return(0,Ji.dL)(new Ji.he("positionWithinTextEdit line number should be bigger than 0.\n\t\t\tInvalid subtraction between ".concat(o.toString()," and ").concat(s.toString()))),[];const d=function(e,t){let i="";const o=(0,ii.Fw)(e);for(let n=t.lineNumber-1;n<o.length;n++)i+=o[n].substring(n===t.lineNumber-1?t.column-1:0);return i}(i.text,l);return n.map((t=>{const i=(o=tp(t,s),n=r,new We.L(o.lineNumber+n.lineNumber-1,1===n.lineNumber?o.column+n.column-1:n.column));var o,n;const l=e.getValueInRange(He.e.fromPositions(t,i)),c=(0,ii.Mh)(a,l),h=He.e.fromPositions(t,t.delta(0,c));return new qg.At(h,d)}))}function wm(e){const t=nt._i.createSortPermutation(e,((e,t)=>He.e.compareRangesUsingStarts(e.range,t.range))),i=new qg.PY(t.apply(e)).getNewRanges();return t.inverse().apply(i).map((e=>e.getEndPosition()))}Sm=bm([Cm(9,ni.TG),Cm(10,ye.H),Cm(11,Xn.c_)],Sm);var xm,Nm=i(97162),Lm=i(737),km=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Dm=function(e,t){return function(i,o){t(i,o,e)}};class Im{constructor(e){this.name=e}select(e,t,i){if(0===i.length)return 0;const o=i[0].score[0];for(let n=0;n<i.length;n++){const{score:e,completion:t}=i[n];if(e[0]!==o)break;if(t.preselect)return n}return 0}}class Rm extends Im{constructor(){super("first")}memorize(e,t,i){}toJSON(){}fromJSON(){}}let Pm=xm=class{constructor(e,t){this._storageService=e,this._configService=t,this._disposables=new Fe.SL,this._persistSoon=new Oe.pY((()=>this._saveState()),500),this._disposables.add(e.onWillSaveState((e=>{e.reason===Mn.fk.SHUTDOWN&&this._saveState()})))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(e,t,i){this._withStrategy(e,t).memorize(e,t,i),this._persistSoon.schedule()}select(e,t,i){return this._withStrategy(e,t).select(e,t,i)}_withStrategy(e,t){var i;const o=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:e.getLanguageIdAtPosition(t.lineNumber,t.column),resource:e.uri});if((null===(i=this._strategy)||void 0===i?void 0:i.name)!==o){this._saveState();const e=xm._strategyCtors.get(o)||Rm;this._strategy=new e;try{const e=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,t=this._storageService.get("".concat(xm._storagePrefix,"/").concat(o),e);t&&this._strategy.fromJSON(JSON.parse(t))}catch(n){}}return this._strategy}_saveState(){if(this._strategy){const e=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,t=JSON.stringify(this._strategy);this._storageService.store("".concat(xm._storagePrefix,"/").concat(this._strategy.name),t,e,1)}}};Pm._strategyCtors=new Map([["recentlyUsedByPrefix",class extends Im{constructor(){super("recentlyUsedByPrefix"),this._trie=Lm.Id.forStrings(),this._seq=0}memorize(e,t,i){const{word:o}=e.getWordUntilPosition(t),n="".concat(e.getLanguageId(),"/").concat(o);this._trie.set(n,{type:i.completion.kind,insertText:i.completion.insertText,touch:this._seq++})}select(e,t,i){const{word:o}=e.getWordUntilPosition(t);if(!o)return super.select(e,t,i);const n="".concat(e.getLanguageId(),"/").concat(o);let s=this._trie.get(n);if(s||(s=this._trie.findSubstr(n)),s)for(let r=0;r<i.length;r++){const{kind:e,insertText:t}=i[r].completion;if(e===s.type&&t===s.insertText)return r}return super.select(e,t,i)}toJSON(){const e=[];return this._trie.forEach(((t,i)=>e.push([i,t]))),e.sort(((e,t)=>-(e[1].touch-t[1].touch))).forEach(((e,t)=>e[1].touch=t)),e.slice(0,200)}fromJSON(e){if(this._trie.clear(),e.length>0){this._seq=e[0][1].touch+1;for(const[t,i]of e)i.type="number"===typeof i.type?i.type:Lt.gX.fromString(i.type),this._trie.set(t,i)}}}],["recentlyUsed",class extends Im{constructor(){super("recentlyUsed"),this._cache=new Pn.z6(300,.66),this._seq=0}memorize(e,t,i){const o="".concat(e.getLanguageId(),"/").concat(i.textLabel);this._cache.set(o,{touch:this._seq++,type:i.completion.kind,insertText:i.completion.insertText})}select(e,t,i){if(0===i.length)return 0;const o=e.getLineContent(t.lineNumber).substr(t.column-10,t.column-1);if(/\s$/.test(o))return super.select(e,t,i);const n=i[0].score[0];let s=-1,r=-1,a=-1;for(let l=0;l<i.length&&i[l].score[0]===n;l++){const t="".concat(e.getLanguageId(),"/").concat(i[l].textLabel),o=this._cache.peek(t);if(o&&o.touch>a&&o.type===i[l].completion.kind&&o.insertText===i[l].completion.insertText&&(a=o.touch,r=l),i[l].completion.preselect&&-1===s)return l}return-1!==r?r:-1!==s?s:0}toJSON(){return this._cache.toJSON()}fromJSON(e){this._cache.clear();for(const[t,i]of e)i.touch=0,i.type="number"===typeof i.type?i.type:Lt.gX.fromString(i.type),this._cache.set(t,i);this._seq=this._cache.size}}],["first",Rm]]),Pm._storagePrefix="suggest/memories",Pm=xm=km([Dm(0,Mn.Uy),Dm(1,re.Ui)],Pm);const Mm=(0,ni.yh)("ISuggestMemories");(0,Zo.z)(Mm,Pm,1);var Tm,Em=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Am=function(e,t){return function(i,o){t(i,o,e)}};let Om=Tm=class{constructor(e,t){this._editor=e,this._enabled=!1,this._ckAtEnd=Tm.AtEnd.bindTo(t),this._configListener=this._editor.onDidChangeConfiguration((e=>e.hasChanged(123)&&this._update())),this._update()}dispose(){var e;this._configListener.dispose(),null===(e=this._selectionListener)||void 0===e||e.dispose(),this._ckAtEnd.reset()}_update(){const e="on"===this._editor.getOption(123);if(this._enabled!==e)if(this._enabled=e,this._enabled){const e=()=>{if(!this._editor.hasModel())return void this._ckAtEnd.set(!1);const e=this._editor.getModel(),t=this._editor.getSelection(),i=e.getWordAtPosition(t.getStartPosition());i?this._ckAtEnd.set(i.endColumn===t.getStartPosition().column):this._ckAtEnd.set(!1)};this._selectionListener=this._editor.onDidChangeCursorSelection(e),e()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}};Om.AtEnd=new ae.uy("atEndOfWord",!1),Om=Tm=Em([Am(1,ae.i6)],Om);var Fm,Wm=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Hm=function(e,t){return function(i,o){t(i,o,e)}};let Vm=Fm=class{constructor(e,t){this._editor=e,this._index=0,this._ckOtherSuggestions=Fm.OtherSuggestions.bindTo(t)}dispose(){this.reset()}reset(){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}set(e,t){let{model:i,index:o}=e;if(0===i.items.length)return void this.reset();Fm._moveIndex(!0,i,o)!==o?(this._acceptNext=t,this._model=i,this._index=o,this._listener=this._editor.onDidChangeCursorPosition((()=>{this._ignore||this.reset()})),this._ckOtherSuggestions.set(!0)):this.reset()}static _moveIndex(e,t,i){let o=i;for(let n=t.items.length;n>0&&(o=(o+t.items.length+(e?1:-1))%t.items.length,o!==i)&&t.items[o].completion.additionalTextEdits;n--);return o}next(){this._move(!0)}prev(){this._move(!1)}_move(e){if(this._model)try{this._ignore=!0,this._index=Fm._moveIndex(e,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};Vm.OtherSuggestions=new ae.uy("hasOtherSuggestions",!1),Vm=Fm=Wm([Hm(1,ae.i6)],Vm);class Bm{constructor(e,t,i,o){this._disposables=new Fe.SL,this._disposables.add(i.onDidSuggest((e=>{0===e.completionModel.items.length&&this.reset()}))),this._disposables.add(i.onDidCancel((e=>{this.reset()}))),this._disposables.add(t.onDidShow((()=>this._onItem(t.getFocusedItem())))),this._disposables.add(t.onDidFocus(this._onItem,this)),this._disposables.add(t.onDidHide(this.reset,this)),this._disposables.add(e.onWillType((n=>{if(this._active&&!t.isFrozen()&&0!==i.state){const t=n.charCodeAt(n.length-1);this._active.acceptCharacters.has(t)&&e.getOption(0)&&o(this._active.item)}})))}_onItem(e){if(!e||!(0,nt.Of)(e.item.completion.commitCharacters))return void this.reset();if(this._active&&this._active.item.item===e.item)return;const t=new vg.q;for(const i of e.item.completion.commitCharacters)i.length>0&&t.add(i.charCodeAt(0));this._active={acceptCharacters:t,item:e}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}class zm{async provideSelectionRanges(e,t){const i=[];for(const o of t){const t=[];i.push(t);const n=new Map;await new Promise((t=>zm._bracketsRightYield(t,0,e,o,n))),await new Promise((i=>zm._bracketsLeftYield(i,0,e,o,n,t)))}return i}static _bracketsRightYield(e,t,i,o,n){const s=new Map,r=Date.now();for(;;){if(t>=zm._maxRounds){e();break}if(!o){e();break}const a=i.bracketPairs.findNextBracket(o);if(!a){e();break}if(Date.now()-r>zm._maxDuration){setTimeout((()=>zm._bracketsRightYield(e,t+1,i,o,n)));break}if(a.bracketInfo.isOpeningBracket){const e=a.bracketInfo.bracketText,t=s.has(e)?s.get(e):0;s.set(e,t+1)}else{const e=a.bracketInfo.getOpeningBrackets()[0].bracketText;let t=s.has(e)?s.get(e):0;if(t-=1,s.set(e,Math.max(0,t)),t<0){let t=n.get(e);t||(t=new yl.S,n.set(e,t)),t.push(a.range)}}o=a.range.getEndPosition()}}static _bracketsLeftYield(e,t,i,o,n,s){const r=new Map,a=Date.now();for(;;){if(t>=zm._maxRounds&&0===n.size){e();break}if(!o){e();break}const l=i.bracketPairs.findPrevBracket(o);if(!l){e();break}if(Date.now()-a>zm._maxDuration){setTimeout((()=>zm._bracketsLeftYield(e,t+1,i,o,n,s)));break}if(l.bracketInfo.isOpeningBracket){const e=l.bracketInfo.bracketText;let t=r.has(e)?r.get(e):0;if(t-=1,r.set(e,Math.max(0,t)),t<0){const t=n.get(e);if(t){const o=t.shift();0===t.size&&n.delete(e);const r=He.e.fromPositions(l.range.getEndPosition(),o.getStartPosition()),a=He.e.fromPositions(l.range.getStartPosition(),o.getEndPosition());s.push({range:r}),s.push({range:a}),zm._addBracketLeading(i,a,s)}}}else{const e=l.bracketInfo.getOpeningBrackets()[0].bracketText,t=r.has(e)?r.get(e):0;r.set(e,t+1)}o=l.range.getStartPosition()}}static _addBracketLeading(e,t,i){if(t.startLineNumber===t.endLineNumber)return;const o=t.startLineNumber,n=e.getLineFirstNonWhitespaceColumn(o);0!==n&&n!==t.startColumn&&(i.push({range:He.e.fromPositions(new We.L(o,n),t.getEndPosition())}),i.push({range:He.e.fromPositions(new We.L(o,1),t.getEndPosition())}));const s=o-1;if(s>0){const o=e.getLineFirstNonWhitespaceColumn(s);o===t.startColumn&&o!==e.getLineLastNonWhitespaceColumn(s)&&(i.push({range:He.e.fromPositions(new We.L(s,o),t.getEndPosition())}),i.push({range:He.e.fromPositions(new We.L(s,1),t.getEndPosition())}))}}}zm._maxDuration=30,zm._maxRounds=2;class Um{static async create(e,t){if(!t.getOption(118).localityBonus)return Um.None;if(!t.hasModel())return Um.None;const i=t.getModel(),o=t.getPosition();if(!e.canComputeWordRanges(i.uri))return Um.None;const[n]=await(new zm).provideSelectionRanges(i,[o]);if(0===n.length)return Um.None;const s=await e.computeWordRanges(i.uri,n[0].range);if(!s)return Um.None;const r=i.getWordUntilPosition(o);return delete s[r.word],new class extends Um{distance(e,i){if(!o.equals(t.getPosition()))return 0;if(17===i.kind)return 2<<20;const r="string"===typeof i.label?i.label:i.label.label,a=s[r];if((0,nt.XY)(a))return 2<<20;const l=(0,nt.ry)(a,He.e.fromPositions(e),He.e.compareRangesUsingStarts),d=l>=0?a[l]:a[Math.max(0,~l-1)];let c=n.length;for(const t of n){if(!He.e.containsRange(t.range,d))break;c-=1}return c}}}}Um.None=new class extends Um{distance(){return 0}};class Km{constructor(e,t){this.leadingLineContent=e,this.characterCountDelta=t}}class jm{constructor(e,t,i,o,n,s){let r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:Fr.mX.default,a=arguments.length>7&&void 0!==arguments[7]?arguments[7]:void 0;this.clipboardText=a,this._snippetCompareFn=jm._compareCompletionItems,this._items=e,this._column=t,this._wordDistance=o,this._options=n,this._refilterKind=1,this._lineContext=i,this._fuzzyScoreOptions=r,"top"===s?this._snippetCompareFn=jm._compareCompletionItemsSnippetsUp:"bottom"===s&&(this._snippetCompareFn=jm._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(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)}get items(){return this._ensureCachedState(),this._filteredItems}getItemsByProvider(){return this._ensureCachedState(),this._itemsByProvider}getIncompleteProvider(){this._ensureCachedState();const e=new Set;for(const[t,i]of this.getItemsByProvider())i.length>0&&i[0].container.incomplete&&e.add(t);return e}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){0!==this._refilterKind&&this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;const e=[],{leadingLineContent:t,characterCountDelta:i}=this._lineContext;let o="",n="";const s=1===this._refilterKind?this._items:this._filteredItems,r=[],a=!this._options.filterGraceful||s.length>2e3?Fr.EW:Fr.l7;for(let l=0;l<s.length;l++){const d=s[l];if(d.isInvalid)continue;const c=this._itemsByProvider.get(d.provider);c?c.push(d):this._itemsByProvider.set(d.provider,[d]);const h=d.position.column-d.editStart.column,u=h+i-(d.position.column-this._column);if(o.length!==u&&(o=0===u?"":t.slice(-u),n=o.toLowerCase()),d.word=o,0===u)d.score=Fr.CL.Default;else{let e=0;for(;e<h;){const t=o.charCodeAt(e);if(32!==t&&9!==t)break;e+=1}if(e>=u)d.score=Fr.CL.Default;else if("string"===typeof d.completion.filterText){const t=a(o,n,e,d.completion.filterText,d.filterTextLow,0,this._fuzzyScoreOptions);if(!t)continue;0===(0,ii.zY)(d.completion.filterText,d.textLabel)?d.score=t:(d.score=(0,Fr.jB)(o,n,e,d.textLabel,d.labelLow,0),d.score[0]=t[0])}else{const t=a(o,n,e,d.textLabel,d.labelLow,0,this._fuzzyScoreOptions);if(!t)continue;d.score=t}}d.idx=l,d.distance=this._wordDistance.distance(d.position,d.completion),r.push(d),e.push(d.textLabel.length)}this._filteredItems=r.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:e.length?(0,nt.HW)(e.length-.85,e,((e,t)=>e-t)):0}}static _compareCompletionItems(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}static _compareCompletionItemsSnippetsDown(e,t){if(e.completion.kind!==t.completion.kind){if(27===e.completion.kind)return 1;if(27===t.completion.kind)return-1}return jm._compareCompletionItems(e,t)}static _compareCompletionItemsSnippetsUp(e,t){if(e.completion.kind!==t.completion.kind){if(27===e.completion.kind)return-1;if(27===t.completion.kind)return 1}return jm._compareCompletionItems(e,t)}}var qm,Gm=i(33473),Qm=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Zm=function(e,t){return function(i,o){t(i,o,e)}};class Ym{static shouldAutoTrigger(e){if(!e.hasModel())return!1;const t=e.getModel(),i=e.getPosition();t.tokenization.tokenizeIfCheap(i.lineNumber);const o=t.getWordAtPosition(i);return!!o&&((o.endColumn===i.column||o.startColumn+1===i.column)&&!!isNaN(Number(o.word)))}constructor(e,t,i){this.leadingLineContent=e.getLineContent(t.lineNumber).substr(0,t.column-1),this.leadingWord=e.getWordUntilPosition(t),this.lineNumber=t.lineNumber,this.column=t.column,this.triggerOptions=i}}let Jm=qm=class{constructor(e,t,i,o,n,s,r,a,l){this._editor=e,this._editorWorkerService=t,this._clipboardService=i,this._telemetryService=o,this._logService=n,this._contextKeyService=s,this._configurationService=r,this._languageFeaturesService=a,this._envService=l,this._toDispose=new Fe.SL,this._triggerCharacterListener=new Fe.SL,this._triggerQuickSuggest=new Oe._F,this._triggerState=void 0,this._completionDisposables=new Fe.SL,this._onDidCancel=new ui.Q5,this._onDidTrigger=new ui.Q5,this._onDidSuggest=new ui.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 ke.Y(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel((()=>{this._updateTriggerCharacters(),this.cancel()}))),this._toDispose.add(this._editor.onDidChangeModelLanguage((()=>{this._updateTriggerCharacters(),this.cancel()}))),this._toDispose.add(this._editor.onDidChangeConfiguration((()=>{this._updateTriggerCharacters()}))),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange((()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()})));let d=!1;this._toDispose.add(this._editor.onDidCompositionStart((()=>{d=!0}))),this._toDispose.add(this._editor.onDidCompositionEnd((()=>{d=!1,this._onCompositionEnd()}))),this._toDispose.add(this._editor.onDidChangeCursorSelection((e=>{d||this._onCursorChange(e)}))),this._toDispose.add(this._editor.onDidChangeModelContent((()=>{d||void 0===this._triggerState||this._refilterCompletionItems()}))),this._updateTriggerCharacters()}dispose(){(0,Fe.B9)(this._triggerCharacterListener),(0,Fe.B9)([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(91)||!this._editor.hasModel()||!this._editor.getOption(121))return;const e=new Map;for(const i of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(const t of i.triggerCharacters||[]){let o=e.get(t);o||(o=new Set,o.add(Vp),e.set(t,o)),o.add(i)}const t=t=>{var i;if(!function(e,t,i){if(!Boolean(t.getContextKeyValue("inlineSuggestionVisible")))return!0;const o=t.getContextKeyValue(Hg.suppressSuggestions.key);return void 0!==o?!o:!e.getOption(62).suppressSuggestions}(this._editor,this._contextKeyService,this._configurationService))return;if(Ym.shouldAutoTrigger(this._editor))return;if(!t){const e=this._editor.getPosition();t=this._editor.getModel().getLineContent(e.lineNumber).substr(0,e.column-1)}let o="";(0,ii.YK)(t.charCodeAt(t.length-1))?(0,ii.ZG)(t.charCodeAt(t.length-2))&&(o=t.substr(t.length-2)):o=t.charAt(t.length-1);const n=e.get(o);if(n){const e=new Map;if(this._completionModel)for(const[t,i]of this._completionModel.getItemsByProvider())n.has(t)||e.set(t,i);this.trigger({auto:!0,triggerKind:1,triggerCharacter:o,retrigger:Boolean(this._completionModel),clipboardText:null===(i=this._completionModel)||void 0===i?void 0:i.clipboardText,completionOptions:{providerFilter:n,providerItemsToReuse:e}})}};this._triggerCharacterListener.add(this._editor.onDidType(t)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd((()=>t())))}get state(){return this._triggerState?this._triggerState.auto?2:1:0}cancel(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];var t;void 0!==this._triggerState&&(this._triggerQuickSuggest.cancel(),null===(t=this._requestToken)||void 0===t||t.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:e}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){void 0!==this._triggerState&&(this._editor.hasModel()&&this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.trigger({auto:this._triggerState.auto,retrigger:!0}):this.cancel())}_onCursorChange(e){if(!this._editor.hasModel())return;const t=this._currentSelection;this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||0!==e.reason&&3!==e.reason||"keyboard"!==e.source&&"deleteLeft"!==e.source?this.cancel():void 0===this._triggerState&&0===e.reason?(t.containsRange(this._currentSelection)||t.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():void 0!==this._triggerState&&3===e.reason&&this._refilterCompletionItems()}_onCompositionEnd(){void 0===this._triggerState?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){var e;jp.isAllOff(this._editor.getOption(89))||this._editor.getOption(118).snippetsPreventQuickSuggestions&&(null===(e=_m.get(this._editor))||void 0===e?void 0:e.isInSnippet())||(this.cancel(),this._triggerQuickSuggest.cancelAndSet((()=>{if(void 0!==this._triggerState)return;if(!Ym.shouldAutoTrigger(this._editor))return;if(!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;const e=this._editor.getModel(),t=this._editor.getPosition(),i=this._editor.getOption(89);if(!jp.isAllOff(i)){if(!jp.isAllOn(i)){e.tokenization.tokenizeIfCheap(t.lineNumber);const o=e.tokenization.getLineTokens(t.lineNumber),n=o.getStandardTokenType(o.findTokenIndexAtOffset(Math.max(t.column-1-1,0)));if("on"!==jp.valueFor(i,n))return}(function(e,t,i){if(!Boolean(t.getContextKeyValue(Hg.inlineSuggestionVisible.key)))return!0;const o=t.getContextKeyValue(Hg.suppressSuggestions.key);return void 0!==o?!o:!e.getOption(62).suppressSuggestions})(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(e)&&this.trigger({auto:!0})}}),this._editor.getOption(90)))}_refilterCompletionItems(){(0,Dn.p_)(this._editor.hasModel()),(0,Dn.p_)(void 0!==this._triggerState);const e=this._editor.getModel(),t=this._editor.getPosition(),i=new Ym(e,t,{...this._triggerState,refilter:!0});this._onNewContext(i)}trigger(e){var t,i,o,n,s,r;if(!this._editor.hasModel())return;const a=this._editor.getModel(),l=new Ym(a,this._editor.getPosition(),e);this.cancel(e.retrigger),this._triggerState=e,this._onDidTrigger.fire({auto:e.auto,shy:null!==(t=e.shy)&&void 0!==t&&t,position:this._editor.getPosition()}),this._context=l;let d={triggerKind:null!==(i=e.triggerKind)&&void 0!==i?i:0};e.triggerCharacter&&(d={triggerKind:1,triggerCharacter:e.triggerCharacter}),this._requestToken=new Yi.A;let c=1;switch(this._editor.getOption(112)){case"top":c=0;break;case"bottom":c=2}const{itemKind:h,showDeprecated:u}=qm.createSuggestFilter(this._editor),g=new Hp(c,null!==(n=null===(o=e.completionOptions)||void 0===o?void 0:o.kindFilter)&&void 0!==n?n:h,null===(s=e.completionOptions)||void 0===s?void 0:s.providerFilter,null===(r=e.completionOptions)||void 0===r?void 0:r.providerItemsToReuse,u),p=Um.create(this._editorWorkerService,this._editor),m=zp(this._languageFeaturesService.completionProvider,a,this._editor.getPosition(),g,d,this._requestToken.token);Promise.all([m,p]).then((async t=>{let[i,o]=t;var n;if(null===(n=this._requestToken)||void 0===n||n.dispose(),!this._editor.hasModel())return;let s=null===e||void 0===e?void 0:e.clipboardText;if(!s&&i.needsClipboard&&(s=await this._clipboardService.readText()),void 0===this._triggerState)return;const r=this._editor.getModel(),a=new Ym(r,this._editor.getPosition(),e),l={...Fr.mX.default,firstMatchCanBeWeak:!this._editor.getOption(118).matchOnWordStartOnly};if(this._completionModel=new jm(i.items,this._context.column,{leadingLineContent:a.leadingLineContent,characterCountDelta:a.column-this._context.column},o,this._editor.getOption(118),this._editor.getOption(112),l,s),this._completionDisposables.add(i.disposable),this._onNewContext(a),this._reportDurationsTelemetry(i.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(const e of i.items)e.isInvalid&&this._logService.warn("[suggest] did IGNORE invalid completion item from ".concat(e.provider._debugDisplayName),e.completion)})).catch(Ji.dL)}_reportDurationsTelemetry(e){this._telemetryGate++%230===0&&setTimeout((()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(e)}),this._logService.debug("suggest.durations.json",e)}))}static createSuggestFilter(e){const t=new Set;"none"===e.getOption(112)&&t.add(27);const i=e.getOption(118);return i.showMethods||t.add(0),i.showFunctions||t.add(1),i.showConstructors||t.add(2),i.showFields||t.add(3),i.showVariables||t.add(4),i.showClasses||t.add(5),i.showStructs||t.add(6),i.showInterfaces||t.add(7),i.showModules||t.add(8),i.showProperties||t.add(9),i.showEvents||t.add(10),i.showOperators||t.add(11),i.showUnits||t.add(12),i.showValues||t.add(13),i.showConstants||t.add(14),i.showEnums||t.add(15),i.showEnumMembers||t.add(16),i.showKeywords||t.add(17),i.showWords||t.add(18),i.showColors||t.add(19),i.showFiles||t.add(20),i.showReferences||t.add(21),i.showColors||t.add(22),i.showFolders||t.add(23),i.showTypeParameters||t.add(24),i.showSnippets||t.add(27),i.showUsers||t.add(25),i.showIssues||t.add(26),{itemKind:t,showDeprecated:i.showDeprecated}}_onNewContext(e){if(this._context)if(e.lineNumber===this._context.lineNumber)if((0,ii.V8)(e.leadingLineContent)===(0,ii.V8)(this._context.leadingLineContent)){if(e.column<this._context.column)e.leadingWord.word?this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0}):this.cancel();else if(this._completionModel)if(0!==e.leadingWord.word.length&&e.leadingWord.startColumn>this._context.leadingWord.startColumn){if(Ym.shouldAutoTrigger(this._editor)&&this._context){const e=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:e}})}}else if(e.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&0!==e.leadingWord.word.length){const e=new Map,t=new Set;for(const[i,o]of this._completionModel.getItemsByProvider())o.length>0&&o[0].container.incomplete?t.add(i):e.set(i,o);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:t,providerItemsToReuse:e}})}else{const t=this._completionModel.lineContext;let i=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},0===this._completionModel.items.length){const o=Ym.shouldAutoTrigger(this._editor);if(!this._context)return void this.cancel();if(o&&this._context.leadingWord.endColumn<e.leadingWord.startColumn)return void this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});if(this._context.triggerOptions.auto)return void this.cancel();if(this._completionModel.lineContext=t,i=this._completionModel.items.length>0,i&&0===e.leadingWord.word.length)return void this.cancel()}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:e.triggerOptions,isFrozen:i})}}else this.cancel();else this.cancel()}};Jm=qm=Qm([Zm(1,bg.p),Zm(2,Si.p),Zm(3,eo.b),Zm(4,qp.VZ),Zm(5,ae.i6),Zm(6,re.Ui),Zm(7,kt.p),Zm(8,Gm.Y)],Jm);class $m{constructor(e,t){this._disposables=new Fe.SL,this._lastOvertyped=[],this._locked=!1,this._disposables.add(e.onWillType((()=>{if(this._locked||!e.hasModel())return;const t=e.getSelections(),i=t.length;let o=!1;for(let e=0;e<i;e++)if(!t[e].isEmpty()){o=!0;break}if(!o)return void(0!==this._lastOvertyped.length&&(this._lastOvertyped.length=0));this._lastOvertyped=[];const n=e.getModel();for(let e=0;e<i;e++){const i=t[e];if(n.getValueLengthInRange(i)>$m._maxSelectionLength)return;this._lastOvertyped[e]={value:n.getValueInRange(i),multiline:i.startLineNumber!==i.endLineNumber}}}))),this._disposables.add(t.onDidTrigger((e=>{this._locked=!0}))),this._disposables.add(t.onDidCancel((e=>{this._locked=!1})))}getLastOvertypedInfo(e){if(e>=0&&e<this._lastOvertyped.length)return this._lastOvertyped[e]}dispose(){this._disposables.dispose()}}$m._maxSelectionLength=51200;var Xm=i(63229),e_=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},t_=function(e,t){return function(i,o){t(i,o,e)}};class i_ extends cr.Mm{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();this.label&&(this.label.textContent=(0,ne.NC)({key:"content",comment:["A label","A keybinding"]},"{0} ({1})",this._action.label,i_.symbolPrintEnter(e)))}static symbolPrintEnter(e){var t;return null===(t=e.getLabel())||void 0===t?void 0:t.replace(/\benter\b/gi,"\u23ce")}}let o_=class{constructor(e,t,i,o,n){this._menuId=t,this._menuService=o,this._contextKeyService=n,this._menuDisposables=new Fe.SL,this.element=X.R3(e,X.$(".suggest-status-bar"));const s=e=>e instanceof se.U8?i.createInstance(i_,e,void 0):void 0;this._leftActions=new Eo.o(this.element,{actionViewItemProvider:s}),this._rightActions=new Eo.o(this.element,{actionViewItemProvider:s}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){const e=this._menuService.createMenu(this._menuId,this._contextKeyService),t=()=>{const t=[],i=[];for(const[o,n]of e.getActions())"left"===o?t.push(...n):i.push(...n);this._leftActions.clear(),this._leftActions.push(t),this._rightActions.clear(),this._rightActions.push(i)};this._menuDisposables.add(e.onDidChange((()=>t()))),this._menuDisposables.add(e)}hide(){this._menuDisposables.clear()}};o_=e_([t_(2,ni.TG),t_(3,se.co),t_(4,ae.i6)],o_);var n_=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},s_=function(e,t){return function(i,o){t(i,o,e)}};function r_(e){return!!e&&Boolean(e.completion.documentation||e.completion.detail&&e.completion.detail!==e.completion.label)}let a_=class{constructor(e,t){this._editor=e,this._onDidClose=new ui.Q5,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new ui.Q5,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new Fe.SL,this._renderDisposeable=new Fe.SL,this._borderWidth=1,this._size=new X.Ro(330,0),this.domNode=X.$(".suggest-details"),this.domNode.classList.add("no-docs"),this._markdownRenderer=t.createInstance(gi.$,{editor:e}),this._body=X.$(".body"),this._scrollbar=new Rl.s$(this._body,{alwaysConsumeMouseWheel:!0}),X.R3(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=X.R3(this._body,X.$(".header")),this._close=X.R3(this._header,X.$("span"+oi.k.asCSSSelector($.l.close))),this._close.title=ne.NC("details.close","Close"),this._type=X.R3(this._header,X.$("p.type")),this._docs=X.R3(this._body,X.$("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(50)&&this._configureFont()})))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose()}_configureFont(){const e=this._editor.getOptions(),t=e.get(50),i=t.getMassagedFontFamily(),o=e.get(119)||t.fontSize,n=e.get(120)||t.lineHeight,s=t.fontWeight,r="".concat(o,"px"),a="".concat(n,"px");this.domNode.style.fontSize=r,this.domNode.style.lineHeight="".concat(n/o),this.domNode.style.fontWeight=s,this.domNode.style.fontFeatureSettings=t.fontFeatureSettings,this._type.style.fontFamily=i,this._close.style.height=a,this._close.style.width=a}getLayoutInfo(){const e=this._editor.getOption(120)||this._editor.getOption(50).lineHeight,t=this._borderWidth;return{lineHeight:e,borderWidth:t,borderHeight:2*t,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=ne.NC("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)}renderItem(e,t){var i,o;this._renderDisposeable.clear();let{detail:n,documentation:s}=e.completion;if(t){let t="";t+="score: ".concat(e.score[0],"\n"),t+="prefix: ".concat(null!==(i=e.word)&&void 0!==i?i:"(no prefix)","\n"),t+="word: ".concat(e.completion.filterText?e.completion.filterText+" (filterText)":e.textLabel,"\n"),t+="distance: ".concat(e.distance," (localityBonus-setting)\n"),t+="index: ".concat(e.idx,", based on ").concat(e.completion.sortText&&'sortText: "'.concat(e.completion.sortText,'"')||"label","\n"),t+="commit_chars: ".concat(null===(o=e.completion.commitCharacters)||void 0===o?void 0:o.join(""),"\n"),s=(new Ne.W5).appendCodeblock("empty",t),n="Provider: ".concat(e.provider._debugDisplayName)}if(t||r_(e)){if(this.domNode.classList.remove("no-docs","no-type"),n){const e=n.length>1e5?"".concat(n.substr(0,1e5),"\u2026"):n;this._type.textContent=e,this._type.title=e,X.$Z(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gim.test(e))}else X.PO(this._type),this._type.title="",X.Cp(this._type),this.domNode.classList.add("no-type");if(X.PO(this._docs),"string"===typeof s)this._docs.classList.remove("markdown-docs"),this._docs.textContent=s;else if(s){this._docs.classList.add("markdown-docs"),X.PO(this._docs);const e=this._markdownRenderer.render(s);this._docs.appendChild(e.element),this._renderDisposeable.add(e),this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync((()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)})))}this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=e=>{e.preventDefault(),e.stopPropagation()},this._close.onclick=e=>{e.preventDefault(),e.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}else this.clearContents()}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get isEmpty(){return this.domNode.classList.contains("no-docs")}get size(){return this._size}layout(e,t){const i=new X.Ro(e,t);X.Ro.equals(i,this._size)||(this._size=i,X.dp(this.domNode,e,t)),this._scrollbar.scanDomNode()}scrollDown(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;this._body.scrollTop+=e}scrollUp(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;this._body.scrollTop-=e}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}set borderWidth(e){this._borderWidth=e}get borderWidth(){return this._borderWidth}};a_=n_([s_(1,ni.TG)],a_);class l_{constructor(e,t){let i,o;this.widget=e,this._editor=t,this.allowEditorOverflow=!0,this._disposables=new Fe.SL,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new Za,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(e.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let n=0,s=0;this._disposables.add(this._resizable.onDidWillResize((()=>{i=this._topLeft,o=this._resizable.size}))),this._disposables.add(this._resizable.onDidResize((e=>{if(i&&o){this.widget.layout(e.dimension.width,e.dimension.height);let t=!1;e.west&&(s=o.width-e.dimension.width,t=!0),e.north&&(n=o.height-e.dimension.height,t=!0),t&&this._applyTopLeft({top:i.top+n,left:i.left+s})}e.done&&(i=void 0,o=void 0,n=0,s=0,this._userSize=e.dimension)}))),this._disposables.add(this.widget.onDidChangeContents((()=>{var e;this._anchorBox&&this._placeAtAnchor(this._anchorBox,null!==(e=this._userSize)&&void 0!==e?e:this.widget.size,this._preferAlignAtTop)})))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){this._added||(this._editor.addOverlayWidget(this),this._added=!0)}hide(){let 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())}placeAtAnchor(e,t){var i;const o=e.getBoundingClientRect();this._anchorBox=o,this._preferAlignAtTop=t,this._placeAtAnchor(this._anchorBox,null!==(i=this._userSize)&&void 0!==i?i:this.widget.size,t)}_placeAtAnchor(e,t,i){var o;const n=X.D6(this.getDomNode().ownerDocument.body),s=this.widget.getLayoutInfo(),r=new X.Ro(220,2*s.lineHeight),a=e.top,l=function(){const i=n.width-(e.left+e.width+s.borderWidth+s.horizontalPadding),o=-s.borderWidth+e.left+e.width,l=new X.Ro(i,n.height-e.top-s.borderHeight-s.verticalPadding),d=l.with(void 0,e.top+e.height-s.borderHeight-s.verticalPadding);return{top:a,left:o,fit:i-t.width,maxSizeTop:l,maxSizeBottom:d,minSize:r.with(Math.min(i,r.width))}}(),d=function(){const i=e.left-s.borderWidth-s.horizontalPadding,o=Math.max(s.horizontalPadding,e.left-t.width-s.borderWidth),l=new X.Ro(i,n.height-e.top-s.borderHeight-s.verticalPadding),d=l.with(void 0,e.top+e.height-s.borderHeight-s.verticalPadding);return{top:a,left:o,fit:i-t.width,maxSizeTop:l,maxSizeBottom:d,minSize:r.with(Math.min(i,r.width))}}(),c=function(){const i=e.left,o=-s.borderWidth+e.top+e.height,a=new X.Ro(e.width-s.borderHeight,n.height-e.top-e.height-s.verticalPadding);return{top:o,left:i,fit:a.height-t.height,maxSizeBottom:a,maxSizeTop:a,minSize:r.with(a.width)}}(),h=[l,d,c],u=null!==(o=h.find((e=>e.fit>=0)))&&void 0!==o?o:h.sort(((e,t)=>t.fit-e.fit))[0],g=e.top+e.height-s.borderHeight;let p,m=t.height;const _=Math.max(u.maxSizeTop.height,u.maxSizeBottom.height);let f;m>_&&(m=_),i?m<=u.maxSizeTop.height?(p=!0,f=u.maxSizeTop):(p=!1,f=u.maxSizeBottom):m<=u.maxSizeBottom.height?(p=!1,f=u.maxSizeBottom):(p=!0,f=u.maxSizeTop);let{top:v,left:b}=u;!p&&m>e.height&&(v=g-m);const C=this._editor.getDomNode();if(C){const e=C.getBoundingClientRect();v-=e.top,b-=e.left}this._applyTopLeft({left:b,top:v}),this._resizable.enableSashes(!p,u===l,p,u!==l),this._resizable.minSize=u.minSize,this._resizable.maxSize=f,this._resizable.layout(m,Math.min(f.width,t.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(e){this._topLeft=e,this._editor.layoutOverlayWidget(this)}}var d_;!function(e){e[e.FILE=0]="FILE",e[e.FOLDER=1]="FOLDER",e[e.ROOT_FOLDER=2]="ROOT_FOLDER"}(d_||(d_={}));const c_=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function h_(e,t,i,o,n){if(n)return["codicon-".concat(n.id),"predefined-file-icon"];const s=o===d_.ROOT_FOLDER?["rootfolder-icon"]:o===d_.FOLDER?["folder-icon"]:["file-icon"];if(i){let n;if(i.scheme===Dt.lg.data){n=It.Vb.parseMetaData(i).get(It.Vb.META_DATA_LABEL)}else{const e=i.path.match(c_);e?(n=u_(e[2].toLowerCase()),e[1]&&s.push("".concat(u_(e[1].toLowerCase()),"-name-dir-icon"))):n=u_(i.authority.toLowerCase())}if(o===d_.ROOT_FOLDER)s.push("".concat(n,"-root-name-folder-icon"));else if(o===d_.FOLDER)s.push("".concat(n,"-name-folder-icon"));else{if(n){if(s.push("".concat(n,"-name-file-icon")),s.push("name-file-icon"),n.length<=255){const e=n.split(".");for(let t=1;t<e.length;t++)s.push("".concat(e.slice(t).join("."),"-ext-file-icon"))}s.push("ext-file-icon")}const o=function(e,t,i){if(!i)return null;let o=null;if(i.scheme===Dt.lg.data){const e=It.Vb.parseMetaData(i).get(It.Vb.META_DATA_MIME);e&&(o=t.getLanguageIdByMimeType(e))}else{const t=e.getModel(i);t&&(o=t.getLanguageId())}if(o&&o!==Tr.bd)return o;return t.guessLanguageIdByFilepathOrFirstLine(i)}(e,t,i);o&&s.push("".concat(u_(o),"-lang-file-icon"))}}return s}function u_(e){return e.replace(/[\11\12\14\15\40]/g,"/")}var g_,p_=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},m_=function(e,t){return function(i,o){t(i,o,e)}};function __(e){return"suggest-aria-id:".concat(e)}const f_=(0,ys.q5)("suggest-more-info",$.l.chevronRight,ne.NC("suggestMoreInfoIcon","Icon for more information in the suggest widget.")),v_=new((g_=class{extract(e,t){if(e.textLabel.match(g_._regexStrict))return t[0]=e.textLabel,!0;if(e.completion.detail&&e.completion.detail.match(g_._regexStrict))return t[0]=e.completion.detail,!0;if(e.completion.documentation){const i="string"===typeof e.completion.documentation?e.completion.documentation:e.completion.documentation.value,o=g_._regexRelaxed.exec(i);if(o&&(0===o.index||o.index+o[0].length===i.length))return t[0]=o[0],!0}return!1}})._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*\))/,g_._regexStrict=new RegExp("^".concat(g_._regexRelaxed.source,"$"),"i"),g_);let b_=class{constructor(e,t,i,o){this._editor=e,this._modelService=t,this._languageService=i,this._themeService=o,this._onDidToggleDetails=new ui.Q5,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(e){const t=new Fe.SL,i=e;i.classList.add("show-file-icons");const o=(0,X.R3)(e,(0,X.$)(".icon")),n=(0,X.R3)(o,(0,X.$)("span.colorspan")),s=(0,X.R3)(e,(0,X.$)(".contents")),r=(0,X.R3)(s,(0,X.$)(".main")),a=(0,X.R3)(r,(0,X.$)(".icon-label.codicon")),l=(0,X.R3)(r,(0,X.$)("span.left")),d=(0,X.R3)(r,(0,X.$)("span.right")),c=new Or.g(l,{supportHighlights:!0,supportIcons:!0});t.add(c);const h=(0,X.R3)(l,(0,X.$)("span.signature-label")),u=(0,X.R3)(l,(0,X.$)("span.qualifier-label")),g=(0,X.R3)(d,(0,X.$)("span.details-label")),p=(0,X.R3)(d,(0,X.$)("span.readMore"+oi.k.asCSSSelector(f_)));p.title=ne.NC("readMore","Read More");return{root:i,left:l,right:d,icon:o,colorspan:n,iconLabel:c,iconContainer:a,parametersLabel:h,qualifierLabel:u,detailsLabel:g,readMore:p,disposables:t,configureFont:()=>{const e=this._editor.getOptions(),t=e.get(50),n=t.getMassagedFontFamily(),s=t.fontFeatureSettings,a=e.get(119)||t.fontSize,l=e.get(120)||t.lineHeight,d=t.fontWeight,c=t.letterSpacing,h="".concat(a,"px"),u="".concat(l,"px"),g="".concat(c,"px");i.style.fontSize=h,i.style.fontWeight=d,i.style.letterSpacing=g,r.style.fontFamily=n,r.style.fontFeatureSettings=s,r.style.lineHeight=u,o.style.height=u,o.style.width=u,p.style.height=u,p.style.width=u}}}renderElement(e,t,i){i.configureFont();const{completion:o}=e;i.root.id=__(t),i.colorspan.style.backgroundColor="";const n={labelEscapeNewLines:!0,matches:(0,Fr.mB)(e.score)},s=[];if(19===o.kind&&v_.extract(e,s))i.icon.className="icon customcolor",i.iconContainer.className="icon hide",i.colorspan.style.backgroundColor=s[0];else if(20===o.kind&&this._themeService.getFileIconTheme().hasFileIcons){i.icon.className="icon hide",i.iconContainer.className="icon hide";const t=h_(this._modelService,this._languageService,_t.o.from({scheme:"fake",path:e.textLabel}),d_.FILE),s=h_(this._modelService,this._languageService,_t.o.from({scheme:"fake",path:o.detail}),d_.FILE);n.extraClasses=t.length>s.length?t:s}else 23===o.kind&&this._themeService.getFileIconTheme().hasFolderIcons?(i.icon.className="icon hide",i.iconContainer.className="icon hide",n.extraClasses=[h_(this._modelService,this._languageService,_t.o.from({scheme:"fake",path:e.textLabel}),d_.FOLDER),h_(this._modelService,this._languageService,_t.o.from({scheme:"fake",path:o.detail}),d_.FOLDER)].flat()):(i.icon.className="icon hide",i.iconContainer.className="",i.iconContainer.classList.add("suggest-icon",...oi.k.asClassNameArray(Lt.gX.toIcon(o.kind))));o.tags&&o.tags.indexOf(1)>=0&&(n.extraClasses=(n.extraClasses||[]).concat(["deprecated"]),n.matches=[]),i.iconLabel.setLabel(e.textLabel,void 0,n),"string"===typeof o.label?(i.parametersLabel.textContent="",i.detailsLabel.textContent=C_(o.detail||""),i.root.classList.add("string-label")):(i.parametersLabel.textContent=C_(o.label.detail||""),i.detailsLabel.textContent=C_(o.label.description||""),i.root.classList.remove("string-label")),this._editor.getOption(118).showInlineDetails?(0,X.$Z)(i.detailsLabel):(0,X.Cp)(i.detailsLabel),r_(e)?(i.right.classList.add("can-expand-details"),(0,X.$Z)(i.readMore),i.readMore.onmousedown=e=>{e.stopPropagation(),e.preventDefault()},i.readMore.onclick=e=>{e.stopPropagation(),e.preventDefault(),this._onDidToggleDetails.fire()}):(i.right.classList.remove("can-expand-details"),(0,X.Cp)(i.readMore),i.readMore.onmousedown=null,i.readMore.onclick=null)}disposeTemplate(e){e.disposables.dispose()}};function C_(e){return e.replace(/\r\n|\r|\n/g,"")}b_=p_([m_(1,$i.q),m_(2,Us.O),m_(3,Ue.XE)],b_);var S_,y_=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},w_=function(e,t){return function(i,o){t(i,o,e)}};(0,ze.P6G)("editorSuggestWidget.background",{dark:ze.D0T,light:ze.D0T,hcDark:ze.D0T,hcLight:ze.D0T},ne.NC("editorSuggestWidgetBackground","Background color of the suggest widget.")),(0,ze.P6G)("editorSuggestWidget.border",{dark:ze.D1_,light:ze.D1_,hcDark:ze.D1_,hcLight:ze.D1_},ne.NC("editorSuggestWidgetBorder","Border color of the suggest widget."));const x_=(0,ze.P6G)("editorSuggestWidget.foreground",{dark:ze.NOs,light:ze.NOs,hcDark:ze.NOs,hcLight:ze.NOs},ne.NC("editorSuggestWidgetForeground","Foreground color of the suggest widget."));(0,ze.P6G)("editorSuggestWidget.selectedForeground",{dark:ze.NPS,light:ze.NPS,hcDark:ze.NPS,hcLight:ze.NPS},ne.NC("editorSuggestWidgetSelectedForeground","Foreground color of the selected entry in the suggest widget.")),(0,ze.P6G)("editorSuggestWidget.selectedIconForeground",{dark:ze.cbQ,light:ze.cbQ,hcDark:ze.cbQ,hcLight:ze.cbQ},ne.NC("editorSuggestWidgetSelectedIconForeground","Icon foreground color of the selected entry in the suggest widget."));const N_=(0,ze.P6G)("editorSuggestWidget.selectedBackground",{dark:ze.Vqd,light:ze.Vqd,hcDark:ze.Vqd,hcLight:ze.Vqd},ne.NC("editorSuggestWidgetSelectedBackground","Background color of the selected entry in the suggest widget."));(0,ze.P6G)("editorSuggestWidget.highlightForeground",{dark:ze.Gwp,light:ze.Gwp,hcDark:ze.Gwp,hcLight:ze.Gwp},ne.NC("editorSuggestWidgetHighlightForeground","Color of the match highlights in the suggest widget.")),(0,ze.P6G)("editorSuggestWidget.focusHighlightForeground",{dark:ze.PX0,light:ze.PX0,hcDark:ze.PX0,hcLight:ze.PX0},ne.NC("editorSuggestWidgetFocusHighlightForeground","Color of the match highlights in the suggest widget when an item is focused.")),(0,ze.P6G)("editorSuggestWidgetStatus.foreground",{dark:(0,ze.ZnX)(x_,.5),light:(0,ze.ZnX)(x_,.5),hcDark:(0,ze.ZnX)(x_,.5),hcLight:(0,ze.ZnX)(x_,.5)},ne.NC("editorSuggestWidgetStatusForeground","Foreground color of the suggest widget status."));class L_{constructor(e,t){this._service=e,this._key="suggestWidget.size/".concat(t.getEditorType(),"/").concat(t instanceof tr)}restore(){var e;const t=null!==(e=this._service.get(this._key,0))&&void 0!==e?e:"";try{const e=JSON.parse(t);if(X.Ro.is(e))return X.Ro.lift(e)}catch(xa){}}store(e){this._service.store(this._key,JSON.stringify(e),0,1)}reset(){this._service.remove(this._key,0)}}let k_=S_=class{constructor(e,t,i,o,n){this.editor=e,this._storageService=t,this._state=0,this._isAuto=!1,this._pendingLayout=new Fe.XK,this._pendingShowDetails=new Fe.XK,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new Oe._F,this._disposables=new Fe.SL,this._onDidSelect=new ui.K3,this._onDidFocus=new ui.K3,this._onDidHide=new ui.Q5,this._onDidShow=new ui.Q5,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new ui.Q5,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new Za,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new D_(this,e),this._persistedSize=new L_(t,e);class s{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];this.persistedSize=e,this.currentSize=t,this.persistHeight=i,this.persistWidth=o}}let r;this._disposables.add(this.element.onDidWillResize((()=>{this._contentWidget.lockPreference(),r=new s(this._persistedSize.restore(),this.element.size)}))),this._disposables.add(this.element.onDidResize((e=>{var t,i,o,n;if(this._resize(e.dimension.width,e.dimension.height),r&&(r.persistHeight=r.persistHeight||!!e.north||!!e.south,r.persistWidth=r.persistWidth||!!e.east||!!e.west),e.done){if(r){const{itemHeight:e,defaultSize:s}=this.getLayoutInfo(),a=Math.round(e/2);let{width:l,height:d}=this.element.size;(!r.persistHeight||Math.abs(r.currentSize.height-d)<=a)&&(d=null!==(i=null===(t=r.persistedSize)||void 0===t?void 0:t.height)&&void 0!==i?i:s.height),(!r.persistWidth||Math.abs(r.currentSize.width-l)<=a)&&(l=null!==(n=null===(o=r.persistedSize)||void 0===o?void 0:o.width)&&void 0!==n?n:s.width),this._persistedSize.store(new X.Ro(l,d))}this._contentWidget.unlockPreference(),r=void 0}}))),this._messageElement=X.R3(this.element.domNode,X.$(".message")),this._listElement=X.R3(this.element.domNode,X.$(".tree"));const a=this._disposables.add(n.createInstance(a_,this.editor));a.onDidClose(this.toggleDetails,this,this._disposables),this._details=new l_(a,this.editor);const l=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(118).showIcons);l();const d=n.createInstance(b_,this.editor);this._disposables.add(d),this._disposables.add(d.onDidToggleDetails((()=>this.toggleDetails()))),this._list=new Oo.aV("SuggestWidget",this._listElement,{getHeight:e=>this.getLayoutInfo().itemHeight,getTemplateId:e=>"suggestion"},[d],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>"option",getWidgetAriaLabel:()=>ne.NC("suggest","Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:e=>{let t=e.textLabel;if("string"!==typeof e.completion.label){const{detail:i,description:o}=e.completion.label;i&&o?t=ne.NC("label.full","{0} {1}, {2}",t,i,o):i?t=ne.NC("label.detail","{0} {1}",t,i):o&&(t=ne.NC("label.desc","{0}, {1}",t,o))}if(!e.isResolved||!this._isDetailsVisible())return t;const{documentation:i,detail:o}=e.completion,n=ii.WU("{0}{1}",o||"",i?"string"===typeof i?i:i.value:"");return ne.NC("ariaCurrenttSuggestionReadDetails","{0}, docs: {1}",t,n)}}}),this._list.style((0,Fo.TU)({listInactiveFocusBackground:N_,listInactiveFocusOutline:ze.xL1})),this._status=n.createInstance(o_,this.element.domNode,Fp);const c=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(118).showStatusBar);c(),this._disposables.add(o.onDidColorThemeChange((e=>this._onThemeChange(e)))),this._onThemeChange(o.getColorTheme()),this._disposables.add(this._list.onMouseDown((e=>this._onListMouseDownOrTap(e)))),this._disposables.add(this._list.onTap((e=>this._onListMouseDownOrTap(e)))),this._disposables.add(this._list.onDidChangeSelection((e=>this._onListSelection(e)))),this._disposables.add(this._list.onDidChangeFocus((e=>this._onListFocus(e)))),this._disposables.add(this.editor.onDidChangeCursorSelection((()=>this._onCursorSelectionChanged()))),this._disposables.add(this.editor.onDidChangeConfiguration((e=>{e.hasChanged(118)&&(c(),l()),this._completionModel&&(e.hasChanged(50)||e.hasChanged(119)||e.hasChanged(120))&&this._list.splice(0,this._list.length,this._completionModel.items)}))),this._ctxSuggestWidgetVisible=Op.Visible.bindTo(i),this._ctxSuggestWidgetDetailsVisible=Op.DetailsVisible.bindTo(i),this._ctxSuggestWidgetMultipleSuggestions=Op.MultipleSuggestions.bindTo(i),this._ctxSuggestWidgetHasFocusedSuggestion=Op.HasFocusedSuggestion.bindTo(i),this._disposables.add(X.mu(this._details.widget.domNode,"keydown",(e=>{this._onDetailsKeydown.fire(e)}))),this._disposables.add(this.editor.onMouseDown((e=>this._onEditorMouseDown(e))))}dispose(){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._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}_onEditorMouseDown(e){this._details.widget.domNode.contains(e.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(e.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){0!==this._state&&this._contentWidget.layout()}_onListMouseDownOrTap(e){"undefined"!==typeof e.element&&"undefined"!==typeof e.index&&(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation(),this._select(e.element,e.index))}_onListSelection(e){e.elements.length&&this._select(e.elements[0],e.indexes[0])}_select(e,t){const i=this._completionModel;i&&(this._onDidSelect.fire({item:e,index:t,model:i}),this.editor.focus())}_onThemeChange(e){this._details.widget.borderWidth=(0,nn.c3)(e.type)?2:1}_onListFocus(e){var t;if(this._ignoreFocusEvents)return;if(!e.elements.length)return this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),void this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);const i=e.elements[0],o=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(o),this._currentSuggestionDetails=(0,Oe.PG)((async e=>{const t=(0,Oe.Vg)((()=>{this._isDetailsVisible()&&this.showDetails(!0)}),250),o=e.onCancellationRequested((()=>t.dispose()));try{return await i.resolve(e)}finally{t.dispose(),o.dispose()}})),this._currentSuggestionDetails.then((()=>{o>=this._list.length||i!==this._list.element(o)||(this._ignoreFocusEvents=!0,this._list.splice(o,1,[i]),this._list.setFocus([o]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this.showDetails(!1):this.element.domNode.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:__(o)}))})).catch(Ji.dL)),this._onDidFocus.fire({item:i,index:o,model:this._completionModel})}_setState(e){if(this._state!==e)switch(this._state=e,this.element.domNode.classList.toggle("frozen",4===e),this.element.domNode.classList.remove("message"),e){case 0:X.Cp(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.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=S_.LOADING_MESSAGE,X.Cp(this._listElement,this._status.element),X.$Z(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,(0,xe.i7)(S_.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=S_.NO_SUGGESTIONS_MESSAGE,X.Cp(this._listElement,this._status.element),X.$Z(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,(0,xe.i7)(S_.NO_SUGGESTIONS_MESSAGE);break;case 3:case 4:X.Cp(this._messageElement),X.$Z(this._listElement,this._status.element),this._show();break;case 5:X.Cp(this._messageElement),X.$Z(this._listElement,this._status.element),this._details.show(),this._show()}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet((()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)}),100)}showTriggered(e,t){0===this._state&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!e,this._isAuto||(this._loadingTimeout=(0,Oe.Vg)((()=>this._setState(1)),t)))}showSuggestions(e,t,i,o,n){var s,r;if(this._contentWidget.setPosition(this.editor.getPosition()),null===(s=this._loadingTimeout)||void 0===s||s.dispose(),null===(r=this._currentSuggestionDetails)||void 0===r||r.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==e&&(this._completionModel=e),i&&2!==this._state&&0!==this._state)return void this._setState(4);const a=this._completionModel.items.length,l=0===a;if(this._ctxSuggestWidgetMultipleSuggestions.set(a>1),l)return this._setState(o?0:2),void(this._completionModel=void 0);this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(i?4:3),this._list.reveal(t,0),this._list.setFocus(n?[]:[t])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=X.lI(X.Jj(this.element.domNode),(()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")}))}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){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}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){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}}selectPreviousPage(){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}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){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}}getFocusedItem(){if(0!==this._state&&2!==this._state&&1!==this._state&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){5===this._state?(this._setState(3),this._details.widget.domNode.classList.remove("focused")):3===this._state&&this._isDetailsVisible()&&(this._setState(5),this._details.widget.domNode.classList.add("focused"))}toggleDetails(){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):!r_(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))}showDetails(e){this._pendingShowDetails.value=X.lI(X.Jj(this.element.domNode),(()=>{this._pendingShowDetails.clear(),this._details.show(),e?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._details.widget.isEmpty?this._details.hide():(this._positionDetails(),this.element.domNode.classList.add("shows-details")),this.editor.focus()}))}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this.showDetails(!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){var e;this._pendingLayout.clear(),this._pendingShowDetails.clear(),null===(e=this._loadingTimeout)||void 0===e||e.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const t=this._persistedSize.restore(),i=Math.ceil(4.3*this.getLayoutInfo().itemHeight);t&&t.height<i&&this._persistedSize.store(t.with(void 0,i))}isFrozen(){return 4===this._state}_afterRender(e){null!==e?2!==this._state&&1!==this._state&&(this._isDetailsVisible()&&!this._details.widget.isEmpty&&this._details.show(),this._positionDetails()):this._isDetailsVisible()&&this._details.hide()}_layout(e){var t,i,o;if(!this.editor.hasModel())return;if(!this.editor.getDomNode())return;const n=X.D6(this.element.domNode.ownerDocument.body),s=this.getLayoutInfo();e||(e=s.defaultSize);let r=e.height,a=e.width;if(this._status.element.style.height="".concat(s.itemHeight,"px"),2===this._state||1===this._state)r=s.itemHeight+s.borderHeight,a=s.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new X.Ro(a,r),this._contentWidget.setPreference(2);else{const l=n.width-s.borderHeight-2*s.horizontalPadding;a>l&&(a=l);const d=this._completionModel?this._completionModel.stats.pLabelLen*s.typicalHalfwidthCharacterWidth:a,c=s.statusBarHeight+this._list.contentHeight+s.borderHeight,h=s.itemHeight+s.statusBarHeight,u=X.i(this.editor.getDomNode()),g=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),p=u.top+g.top+g.height,m=Math.min(n.height-p-s.verticalPadding,c),_=u.top+g.top-s.verticalPadding,f=Math.min(_,c);let v=Math.min(Math.max(f,m)+s.borderHeight,c);r===(null===(t=this._cappedHeight)||void 0===t?void 0:t.capped)&&(r=this._cappedHeight.wanted),r<h&&(r=h),r>v&&(r=v);const b=150;r>m||this._forceRenderingAbove&&_>b?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),v=f):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),v=m),this.element.preferredSize=new X.Ro(d,s.defaultSize.height),this.element.maxSize=new X.Ro(l,v),this.element.minSize=new X.Ro(220,h),this._cappedHeight=r===c?{wanted:null!==(o=null===(i=this._cappedHeight)||void 0===i?void 0:i.wanted)&&void 0!==o?o:e.height,capped:r}:void 0}this._resize(a,r)}_resize(e,t){const{width:i,height:o}=this.element.maxSize;e=Math.min(i,e),t=Math.min(o,t);const{statusBarHeight:n}=this.getLayoutInfo();this._list.layout(t-n,e),this._listElement.style.height="".concat(t-n,"px"),this.element.layout(t,e),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){var e;this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,2===(null===(e=this._contentWidget.getPosition())||void 0===e?void 0:e.preference[0]))}getLayoutInfo(){const e=this.editor.getOption(50),t=(0,Xm.uZ)(this.editor.getOption(120)||e.lineHeight,8,1e3),i=this.editor.getOption(118).showStatusBar&&2!==this._state&&1!==this._state?t:0,o=this._details.widget.borderWidth,n=2*o;return{itemHeight:t,statusBarHeight:i,borderWidth:o,borderHeight:n,typicalHalfwidthCharacterWidth:e.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new X.Ro(430,i+12*t+n)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(e){this._storageService.store("expandSuggestionDocs",e,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};k_.LOADING_MESSAGE=ne.NC("suggestWidget.loading","Loading..."),k_.NO_SUGGESTIONS_MESSAGE=ne.NC("suggestWidget.noSuggestions","No suggestions."),k_=S_=y_([w_(1,Mn.Uy),w_(2,ae.i6),w_(3,Ue.XE),w_(4,ni.TG)],k_);class D_{constructor(e,t){this._widget=e,this._editor=t,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return!this._hidden&&this._position&&this._preference?{position:this._position,preference:[this._preference]}:null}beforeRender(){const{height:e,width:t}=this._widget.element.size,{borderWidth:i,horizontalPadding:o}=this._widget.getLayoutInfo();return new X.Ro(t+2*i+o,e+2*i)}afterRender(e){this._widget._afterRender(e)}setPreference(e){this._preferenceLocked||(this._preference=e)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(e){this._position=e}}var I_,R_=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},P_=function(e,t){return function(i,o){t(i,o,e)}};class M_{constructor(e,t){this._model=e,this._position=t,this._decorationOptions=Be.qx.register({description:"suggest-line-suffix",stickiness:1});if(e.getLineMaxColumn(t.lineNumber)!==t.column){const i=e.getOffsetAt(t),o=e.getPositionAt(i+1);e.changeDecorations((e=>{this._marker&&e.removeDecoration(this._marker),this._marker=e.addDecoration(He.e.fromPositions(t,o),this._decorationOptions)}))}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.changeDecorations((e=>{e.removeDecoration(this._marker),this._marker=void 0}))}delta(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){const t=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}return this._model.getLineMaxColumn(e.lineNumber)-e.column}}let T_=I_=class{static get(e){return e.getContribution(I_.ID)}constructor(e,t,i,o,n,s,r){this._memoryService=t,this._commandService=i,this._contextKeyService=o,this._instantiationService=n,this._logService=s,this._telemetryService=r,this._lineSuffix=new Fe.XK,this._toDispose=new Fe.SL,this._selectors=new E_((e=>e.priority)),this._onWillInsertSuggestItem=new ui.Q5,this.onWillInsertSuggestItem=this._onWillInsertSuggestItem.event,this.editor=e,this.model=n.createInstance(Jm,this.editor),this._selectors.register({priority:0,select:(e,t,i)=>this._memoryService.select(e,t,i)});const a=Op.InsertMode.bindTo(o);a.set(e.getOption(118).insertMode),this._toDispose.add(this.model.onDidTrigger((()=>a.set(e.getOption(118).insertMode)))),this.widget=this._toDispose.add(new X.vx((0,X.Jj)(e.getDomNode()),(()=>{const e=this._instantiationService.createInstance(k_,this.editor);this._toDispose.add(e),this._toDispose.add(e.onDidSelect((e=>this._insertSuggestion(e,0)),this));const t=new Bm(this.editor,e,this.model,(e=>this._insertSuggestion(e,2)));this._toDispose.add(t);const i=Op.MakesTextEdit.bindTo(this._contextKeyService),o=Op.HasInsertAndReplaceRange.bindTo(this._contextKeyService),n=Op.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add((0,Fe.OF)((()=>{i.reset(),o.reset(),n.reset()}))),this._toDispose.add(e.onDidFocus((e=>{let{item:t}=e;const s=this.editor.getPosition(),r=t.editStart.column,a=s.column;let l=!0;if("smart"===this.editor.getOption(1)&&2===this.model.state&&!t.completion.additionalTextEdits&&!(4&t.completion.insertTextRules)&&a-r===t.completion.insertText.length){l=this.editor.getModel().getValueInRange({startLineNumber:s.lineNumber,startColumn:r,endLineNumber:s.lineNumber,endColumn:a})!==t.completion.insertText}i.set(l),o.set(!We.L.equals(t.editInsertEnd,t.editReplaceEnd)),n.set(Boolean(t.provider.resolveCompletionItem)||Boolean(t.completion.documentation)||t.completion.detail!==t.completion.label)}))),this._toDispose.add(e.onDetailsKeyDown((e=>{e.toKeyCodeChord().equals(new Nm.$M(!0,!1,!1,!1,33))||it.dz&&e.toKeyCodeChord().equals(new Nm.$M(!1,!1,!1,!0,33))?e.stopPropagation():e.toKeyCodeChord().isModifierKey()||this.editor.focus()}))),e}))),this._overtypingCapturer=this._toDispose.add(new X.vx((0,X.Jj)(e.getDomNode()),(()=>this._toDispose.add(new $m(this.editor,this.model))))),this._alternatives=this._toDispose.add(new X.vx((0,X.Jj)(e.getDomNode()),(()=>this._toDispose.add(new Vm(this.editor,this._contextKeyService))))),this._toDispose.add(n.createInstance(Om,e)),this._toDispose.add(this.model.onDidTrigger((e=>{this.widget.value.showTriggered(e.auto,e.shy?250:50),this._lineSuffix.value=new M_(this.editor.getModel(),e.position)}))),this._toDispose.add(this.model.onDidSuggest((e=>{if(e.triggerOptions.shy)return;let t=-1;for(const o of this._selectors.itemsOrderedByPriorityDesc)if(t=o.select(this.editor.getModel(),this.editor.getPosition(),e.completionModel.items),-1!==t)break;if(-1===t&&(t=0),0===this.model.state)return;let i=!1;if(e.triggerOptions.auto){const t=this.editor.getOption(118);"never"===t.selectionMode||"always"===t.selectionMode?i="never"===t.selectionMode:"whenTriggerCharacter"===t.selectionMode?i=1!==e.triggerOptions.triggerKind:"whenQuickSuggestion"===t.selectionMode&&(i=1===e.triggerOptions.triggerKind&&!e.triggerOptions.refilter)}this.widget.value.showSuggestions(e.completionModel,t,e.isFrozen,e.triggerOptions.auto,i)}))),this._toDispose.add(this.model.onDidCancel((e=>{e.retrigger||this.widget.value.hideWidget()}))),this._toDispose.add(this.editor.onDidBlurEditorWidget((()=>{this.model.cancel(),this.model.clear()})));const l=Op.AcceptSuggestionsOnEnter.bindTo(o),d=()=>{const e=this.editor.getOption(1);l.set("on"===e||"smart"===e)};this._toDispose.add(this.editor.onDidChangeConfiguration((()=>d()))),d()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(e,t){if(!e||!e.item)return this._alternatives.value.reset(),this.model.cancel(),void this.model.clear();if(!this.editor.hasModel())return;const i=_m.get(this.editor);if(!i)return;this._onWillInsertSuggestItem.fire({item:e.item});const o=this.editor.getModel(),n=o.getAlternativeVersionId(),{item:s}=e,r=[],a=new Yi.A;1&t||this.editor.pushUndoStop();const l=this.getOverwriteInfo(s,Boolean(8&t));this._memoryService.memorize(o,this.editor.getPosition(),s);const d=s.isResolved;let c=-1,h=-1;if(Array.isArray(s.completion.additionalTextEdits)){this.model.cancel();const e=kn.Z.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",s.completion.additionalTextEdits.map((e=>{let t=He.e.lift(e.range);if(t.startLineNumber===s.position.lineNumber&&t.startColumn>s.position.column){const e=this.editor.getPosition().column-s.position.column,i=e,o=He.e.spansMultipleLines(t)?0:e;t=new He.e(t.startLineNumber,t.startColumn+i,t.endLineNumber,t.endColumn+o)}return Yd.h.replaceMove(t,e.text)}))),e.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!d){const e=new Yn.G;let i;const n=o.onDidChangeContent((e=>{if(e.isFlush)return a.cancel(),void n.dispose();for(const t of e.changes){const e=He.e.getEndPosition(t.range);i&&!We.L.isBefore(e,i)||(i=e)}})),l=t;t|=2;let d=!1;const c=this.editor.onWillType((()=>{c.dispose(),d=!0,2&l||this.editor.pushUndoStop()}));r.push(s.resolve(a.token).then((()=>{if(!s.completion.additionalTextEdits||a.token.isCancellationRequested)return;if(i&&s.completion.additionalTextEdits.some((e=>We.L.isBefore(i,He.e.getStartPosition(e.range)))))return!1;d&&this.editor.pushUndoStop();const e=kn.Z.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",s.completion.additionalTextEdits.map((e=>Yd.h.replaceMove(He.e.lift(e.range),e.text)))),e.restoreRelativeVerticalPositionOfCursor(this.editor),!d&&2&l||this.editor.pushUndoStop(),!0})).then((t=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",e.elapsed(),t),h=!0===t?1:!1===t?0:-2})).finally((()=>{n.dispose(),c.dispose()})))}let{insertText:u}=s.completion;if(4&s.completion.insertTextRules||(u=$t.escape(u)),this.model.cancel(),i.insert(u,{overwriteBefore:l.overwriteBefore,overwriteAfter:l.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(1&s.completion.insertTextRules),clipboardText:e.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),2&t||this.editor.pushUndoStop(),s.completion.command)if(s.completion.command.id===A_.id)this.model.trigger({auto:!0,retrigger:!0});else{const e=new Yn.G;r.push(this._commandService.executeCommand(s.completion.command.id,...s.completion.command.arguments?[...s.completion.command.arguments]:[]).catch((e=>{s.completion.extensionId?(0,Ji.Cp)(e):(0,Ji.dL)(e)})).finally((()=>{c=e.elapsed()})))}4&t&&this._alternatives.value.set(e,(e=>{for(a.cancel();o.canUndo();){n!==o.getAlternativeVersionId()&&o.undo(),this._insertSuggestion(e,3|(8&t?8:0));break}})),this._alertCompletionItem(s),Promise.all(r).finally((()=>{this._reportSuggestionAcceptedTelemetry(s,o,d,c,h),this.model.clear(),a.dispose()}))}_reportSuggestionAcceptedTelemetry(e,t,i,o,n){var s,r,a;0!==Math.floor(100*Math.random())&&this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:null!==(r=null===(s=e.extensionId)||void 0===s?void 0:s.value)&&void 0!==r?r:"unknown",providerId:null!==(a=e.provider._debugDisplayName)&&void 0!==a?a:"unknown",kind:e.completion.kind,basenameHash:(0,Tu.vp)((0,It.EZ)(t.uri)).toString(16),languageId:t.getLanguageId(),fileExtension:(0,It.DZ)(t.uri),resolveInfo:e.provider.resolveCompletionItem?i?1:0:-1,resolveDuration:e.resolveDuration,commandDuration:o,additionalEditsAsync:n})}getOverwriteInfo(e,t){(0,Dn.p_)(this.editor.hasModel());let i="replace"===this.editor.getOption(118).insertMode;t&&(i=!i);const o=e.position.column-e.editStart.column,n=(i?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column;return{overwriteBefore:o+(this.editor.getPosition().column-e.position.column),overwriteAfter:n+(this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0)}}_alertCompletionItem(e){if((0,nt.Of)(e.completion.additionalTextEdits)){const t=ne.NC("aria.alert.snippet","Accepting '{0}' made {1} additional edits",e.textLabel,e.completion.additionalTextEdits.length);(0,xe.Z9)(t)}}triggerSuggest(e,t,i){this.editor.hasModel()&&(this.model.trigger({auto:null!==t&&void 0!==t&&t,completionOptions:{providerFilter:e,kindFilter:i?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(e){if(!this.editor.hasModel())return;const t=this.editor.getPosition(),i=()=>{t.equals(this.editor.getPosition())&&this._commandService.executeCommand(e.fallback)},o=e=>{if(4&e.completion.insertTextRules||e.completion.additionalTextEdits)return!0;const t=this.editor.getPosition(),i=e.editStart.column,o=t.column;if(o-i!==e.completion.insertText.length)return!0;return this.editor.getModel().getValueInRange({startLineNumber:t.lineNumber,startColumn:i,endLineNumber:t.lineNumber,endColumn:o})!==e.completion.insertText};ui.ju.once(this.model.onDidTrigger)((e=>{const t=[];ui.ju.any(this.model.onDidTrigger,this.model.onDidCancel)((()=>{(0,Fe.B9)(t),i()}),void 0,t),this.model.onDidSuggest((e=>{let{completionModel:n}=e;if((0,Fe.B9)(t),0===n.items.length)return void i();const s=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),n.items),r=n.items[s];o(r)?(this.editor.pushUndoStop(),this._insertSuggestion({index:s,item:r,model:n},7)):i()}),void 0,t)})),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(t,0),this.editor.focus()}acceptSelectedSuggestion(e,t){const i=this.widget.value.getFocusedItem();let o=0;e&&(o|=4),t&&(o|=8),this._insertSuggestion(i,o)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.value.forceRenderingAbove()}stopForceRenderingAbove(){this.widget.isInitialized&&this.widget.value.stopForceRenderingAbove()}registerSelector(e){return this._selectors.register(e)}};T_.ID="editor.contrib.suggestController",T_=I_=R_([P_(1,Mm),P_(2,ye.H),P_(3,ae.i6),P_(4,ni.TG),P_(5,qp.VZ),P_(6,eo.b)],T_);class E_{constructor(e){this.prioritySelector=e,this._items=new Array}register(e){if(-1!==this._items.indexOf(e))throw new Error("Value is already registered");return this._items.push(e),this._items.sort(((e,t)=>this.prioritySelector(t)-this.prioritySelector(e))),{dispose:()=>{const t=this._items.indexOf(e);t>=0&&this._items.splice(t,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class A_ extends ee.R6{constructor(){super({id:A_.id,label:ne.NC("suggest.trigger.label","Trigger Suggest"),alias:"Trigger Suggest",precondition:ae.Ao.and(oe.u.writable,oe.u.hasCompletionItemProvider,Op.Visible.toNegated()),kbOpts:{kbExpr:oe.u.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(e,t,i){const o=T_.get(t);if(!o)return;let n;i&&"object"===typeof i&&!0===i.auto&&(n=!0),o.triggerSuggest(void 0,n,void 0)}}A_.id="editor.action.triggerSuggest",(0,ee._K)(T_.ID,T_,2),(0,ee.Qr)(A_);const O_=190,F_=ee._l.bindToContribution(T_.get);(0,ee.fK)(new F_({id:"acceptSelectedSuggestion",precondition:ae.Ao.and(Op.Visible,Op.HasFocusedSuggestion),handler(e){e.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:ae.Ao.and(Op.Visible,oe.u.textInputFocus),weight:O_},{primary:3,kbExpr:ae.Ao.and(Op.Visible,oe.u.textInputFocus,Op.AcceptSuggestionsOnEnter,Op.MakesTextEdit),weight:O_}],menuOpts:[{menuId:Fp,title:ne.NC("accept.insert","Insert"),group:"left",order:1,when:Op.HasInsertAndReplaceRange.toNegated()},{menuId:Fp,title:ne.NC("accept.insert","Insert"),group:"left",order:1,when:ae.Ao.and(Op.HasInsertAndReplaceRange,Op.InsertMode.isEqualTo("insert"))},{menuId:Fp,title:ne.NC("accept.replace","Replace"),group:"left",order:1,when:ae.Ao.and(Op.HasInsertAndReplaceRange,Op.InsertMode.isEqualTo("replace"))}]})),(0,ee.fK)(new F_({id:"acceptAlternativeSelectedSuggestion",precondition:ae.Ao.and(Op.Visible,oe.u.textInputFocus,Op.HasFocusedSuggestion),kbOpts:{weight:O_,kbExpr:oe.u.textInputFocus,primary:1027,secondary:[1026]},handler(e){e.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:Fp,group:"left",order:2,when:ae.Ao.and(Op.HasInsertAndReplaceRange,Op.InsertMode.isEqualTo("insert")),title:ne.NC("accept.replace","Replace")},{menuId:Fp,group:"left",order:2,when:ae.Ao.and(Op.HasInsertAndReplaceRange,Op.InsertMode.isEqualTo("replace")),title:ne.NC("accept.insert","Insert")}]})),ye.P.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion"),(0,ee.fK)(new F_({id:"hideSuggestWidget",precondition:Op.Visible,handler:e=>e.cancelSuggestWidget(),kbOpts:{weight:O_,kbExpr:oe.u.textInputFocus,primary:9,secondary:[1033]}})),(0,ee.fK)(new F_({id:"selectNextSuggestion",precondition:ae.Ao.and(Op.Visible,ae.Ao.or(Op.MultipleSuggestions,Op.HasFocusedSuggestion.negate())),handler:e=>e.selectNextSuggestion(),kbOpts:{weight:O_,kbExpr:oe.u.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),(0,ee.fK)(new F_({id:"selectNextPageSuggestion",precondition:ae.Ao.and(Op.Visible,ae.Ao.or(Op.MultipleSuggestions,Op.HasFocusedSuggestion.negate())),handler:e=>e.selectNextPageSuggestion(),kbOpts:{weight:O_,kbExpr:oe.u.textInputFocus,primary:12,secondary:[2060]}})),(0,ee.fK)(new F_({id:"selectLastSuggestion",precondition:ae.Ao.and(Op.Visible,ae.Ao.or(Op.MultipleSuggestions,Op.HasFocusedSuggestion.negate())),handler:e=>e.selectLastSuggestion()})),(0,ee.fK)(new F_({id:"selectPrevSuggestion",precondition:ae.Ao.and(Op.Visible,ae.Ao.or(Op.MultipleSuggestions,Op.HasFocusedSuggestion.negate())),handler:e=>e.selectPrevSuggestion(),kbOpts:{weight:O_,kbExpr:oe.u.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),(0,ee.fK)(new F_({id:"selectPrevPageSuggestion",precondition:ae.Ao.and(Op.Visible,ae.Ao.or(Op.MultipleSuggestions,Op.HasFocusedSuggestion.negate())),handler:e=>e.selectPrevPageSuggestion(),kbOpts:{weight:O_,kbExpr:oe.u.textInputFocus,primary:11,secondary:[2059]}})),(0,ee.fK)(new F_({id:"selectFirstSuggestion",precondition:ae.Ao.and(Op.Visible,ae.Ao.or(Op.MultipleSuggestions,Op.HasFocusedSuggestion.negate())),handler:e=>e.selectFirstSuggestion()})),(0,ee.fK)(new F_({id:"focusSuggestion",precondition:ae.Ao.and(Op.Visible,Op.HasFocusedSuggestion.negate()),handler:e=>e.focusSuggestion(),kbOpts:{weight:O_,kbExpr:oe.u.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}})),(0,ee.fK)(new F_({id:"focusAndAcceptSuggestion",precondition:ae.Ao.and(Op.Visible,Op.HasFocusedSuggestion.negate()),handler:e=>{e.focusSuggestion(),e.acceptSelectedSuggestion(!0,!1)}})),(0,ee.fK)(new F_({id:"toggleSuggestionDetails",precondition:ae.Ao.and(Op.Visible,Op.HasFocusedSuggestion),handler:e=>e.toggleSuggestionDetails(),kbOpts:{weight:O_,kbExpr:oe.u.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:Fp,group:"right",order:1,when:ae.Ao.and(Op.DetailsVisible,Op.CanResolve),title:ne.NC("detail.more","show less")},{menuId:Fp,group:"right",order:1,when:ae.Ao.and(Op.DetailsVisible.toNegated(),Op.CanResolve),title:ne.NC("detail.less","show more")}]})),(0,ee.fK)(new F_({id:"toggleExplainMode",precondition:Op.Visible,handler:e=>e.toggleExplainMode(),kbOpts:{weight:100,primary:2138}})),(0,ee.fK)(new F_({id:"toggleSuggestionFocus",precondition:Op.Visible,handler:e=>e.toggleSuggestionFocus(),kbOpts:{weight:O_,kbExpr:oe.u.textInputFocus,primary:2570,mac:{primary:778}}})),(0,ee.fK)(new F_({id:"insertBestCompletion",precondition:ae.Ao.and(oe.u.textInputFocus,ae.Ao.equals("config.editor.tabCompletion","on"),Om.AtEnd,Op.Visible.toNegated(),Vm.OtherSuggestions.toNegated(),_m.InSnippetMode.toNegated()),handler:(e,t)=>{e.triggerSuggestAndAcceptBest((0,Dn.Kn)(t)?{fallback:"tab",...t}:{fallback:"tab"})},kbOpts:{weight:O_,primary:2}})),(0,ee.fK)(new F_({id:"insertNextSuggestion",precondition:ae.Ao.and(oe.u.textInputFocus,ae.Ao.equals("config.editor.tabCompletion","on"),Vm.OtherSuggestions,Op.Visible.toNegated(),_m.InSnippetMode.toNegated()),handler:e=>e.acceptNextSuggestion(),kbOpts:{weight:O_,kbExpr:oe.u.textInputFocus,primary:2}})),(0,ee.fK)(new F_({id:"insertPrevSuggestion",precondition:ae.Ao.and(oe.u.textInputFocus,ae.Ao.equals("config.editor.tabCompletion","on"),Vm.OtherSuggestions,Op.Visible.toNegated(),_m.InSnippetMode.toNegated()),handler:e=>e.acceptPrevSuggestion(),kbOpts:{weight:O_,kbExpr:oe.u.textInputFocus,primary:1026}})),(0,ee.Qr)(class extends ee.R6{constructor(){super({id:"editor.action.resetSuggestSize",label:ne.NC("suggest.reset.label","Reset Suggest Widget Size"),alias:"Reset Suggest Widget Size",precondition:void 0})}run(e,t){var i;null===(i=T_.get(t))||void 0===i||i.resetWidgetSize()}});class W_ extends Fe.JT{get selectedItem(){return this._selectedItem}constructor(e,t,i,o){super(),this.editor=e,this.suggestControllerPreselector=t,this.checkModelVersion=i,this.onWillAccept=o,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._selectedItem=(0,dd.uh)(this,void 0),this._register(e.onKeyDown((e=>{e.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))}))),this._register(e.onKeyUp((e=>{e.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))})));const n=T_.get(this.editor);if(n){this._register(n.registerSelector({priority:100,select:(e,t,i)=>{(0,dd.PS)((e=>this.checkModelVersion(e)));const o=this.editor.getModel();if(!o)return-1;const s=this.suggestControllerPreselector(),r=s?yp(s,o):void 0;if(!r)return-1;const a=We.L.lift(t),l=i.map(((e,t)=>{const i=yp(H_.fromSuggestion(n,o,a,e,this.isShiftKeyPressed).toSingleTextEdit(),o);return{index:t,valid:wp(r,i),prefixLength:i.text.length,suggestItem:e}})).filter((e=>e&&e.valid&&e.prefixLength>0)),d=(0,Nc.dI)(l,(0,nt.tT)((e=>e.prefixLength),nt.fv));return d?d.index:-1}}));let e=!1;const t=()=>{e||(e=!0,this._register(n.widget.value.onDidShow((()=>{this.isSuggestWidgetVisible=!0,this.update(!0)}))),this._register(n.widget.value.onDidHide((()=>{this.isSuggestWidgetVisible=!1,this.update(!1)}))),this._register(n.widget.value.onDidFocus((()=>{this.isSuggestWidgetVisible=!0,this.update(!0)}))))};this._register(ui.ju.once(n.model.onDidTrigger)((e=>{t()}))),this._register(n.onWillInsertSuggestItem((e=>{const t=this.editor.getPosition(),i=this.editor.getModel();if(!t||!i)return;const o=H_.fromSuggestion(n,i,t,e.item,this.isShiftKeyPressed);this.onWillAccept(o)})))}this.update(this._isActive)}update(e){const t=this.getSuggestItemInfo();this._isActive===e&&function(e,t){if(e===t)return!0;if(!e||!t)return!1;return e.equals(t)}(this._currentSuggestItemInfo,t)||(this._isActive=e,this._currentSuggestItemInfo=t,(0,dd.PS)((e=>{this.checkModelVersion(e),this._selectedItem.set(this._isActive?this._currentSuggestItemInfo:void 0,e)})))}getSuggestItemInfo(){const e=T_.get(this.editor);if(!e||!this.isSuggestWidgetVisible)return;const t=e.widget.value.getFocusedItem(),i=this.editor.getPosition(),o=this.editor.getModel();return t&&i&&o?H_.fromSuggestion(e,o,i,t.item,this.isShiftKeyPressed):void 0}stopForceRenderingAbove(){const e=T_.get(this.editor);null===e||void 0===e||e.stopForceRenderingAbove()}forceRenderingAbove(){const e=T_.get(this.editor);null===e||void 0===e||e.forceRenderingAbove()}}class H_{static fromSuggestion(e,t,i,o,n){let{insertText:s}=o.completion,r=!1;if(4&o.completion.insertTextRules){const e=(new $t).parse(s);e.children.length<100&&hm.adjustWhitespace(t,i,!0,e),s=e.toString(),r=!0}const a=e.getOverwriteInfo(o,n);return new H_(He.e.fromPositions(i.delta(0,-a.overwriteBefore),i.delta(0,Math.max(a.overwriteAfter,0))),s,o.completion.kind,r)}constructor(e,t,i,o){this.range=e,this.insertText=t,this.completionItemKind=i,this.isSnippetText=o}equals(e){return this.range.equalsRange(e.range)&&this.insertText===e.insertText&&this.completionItemKind===e.completionItemKind&&this.isSnippetText===e.isSnippetText}toSelectedSuggestionInfo(){return new Lt.ln(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}toSingleTextEdit(){return new qg.At(this.range,this.insertText)}}var V_,B_=i(90094),z_=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},U_=function(e,t){return function(i,o){t(i,o,e)}};let K_=V_=class extends Fe.JT{static get(e){return e.getContribution(V_.ID)}constructor(e,t,i,o,n,s,r,a,l){super(),this.editor=e,this._instantiationService=t,this._contextKeyService=i,this._configurationService=o,this._commandService=n,this._debounceService=s,this._languageFeaturesService=r,this._accessibilitySignalService=a,this._keybindingService=l,this.model=this._register((0,dd.DN)("inlineCompletionModel",void 0)),this._textModelVersionId=(0,dd.uh)(this,-1),this._positions=(0,dd.uh)(this,[new We.L(1,1)]),this._suggestWidgetAdaptor=this._register(new W_(this.editor,(()=>{var e,t;return null===(t=null===(e=this.model.get())||void 0===e?void 0:e.selectedInlineCompletion.get())||void 0===t?void 0:t.toSingleTextEdit(void 0)}),(e=>this.updateObservables(e,vm.Other)),(e=>{(0,dd.PS)((t=>{var i;this.updateObservables(t,vm.Other),null===(i=this.model.get())||void 0===i||i.handleSuggestAccepted(e)}))}))),this._enabled=(0,dd.rD)(this.editor.onDidChangeConfiguration,(()=>this.editor.getOption(62).enabled)),this._fontFamily=(0,dd.rD)(this.editor.onDidChangeConfiguration,(()=>this.editor.getOption(62).fontFamily)),this._ghostTexts=(0,dd.nK)(this,(e=>{var t;const i=this.model.read(e);return null!==(t=null===i||void 0===i?void 0:i.ghostTexts.read(e))&&void 0!==t?t:[]})),this._stablizedGhostTexts=function(e,t){const i=(0,dd.uh)("result",[]),o=[];return t.add((0,dd.EH)((t=>{const n=e.read(t);(0,dd.PS)((e=>{if(n.length!==o.length){o.length=n.length;for(let e=0;e<o.length;e++)o[e]||(o[e]=(0,dd.uh)("item",n[e]));i.set([...o],e)}o.forEach(((t,i)=>t.set(n[i],e)))}))}))),i}(this._ghostTexts,this._store),this._ghostTextWidgets=(0,B_.Zg)(this,this._stablizedGhostTexts,((e,t)=>t.add(this._instantiationService.createInstance(sp,this.editor,{ghostText:e,minReservedLineCount:(0,dd.Dz)(0),targetTextModel:this.model.map((e=>null===e||void 0===e?void 0:e.textModel))})))).recomputeInitiallyAndOnChange(this._store),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this._playAccessibilitySignal=(0,dd.GN)(this),this._isReadonly=(0,dd.rD)(this.editor.onDidChangeConfiguration,(()=>this.editor.getOption(91))),this._textModel=(0,dd.rD)(this.editor.onDidChangeModel,(()=>this.editor.getModel())),this._textModelIfWritable=(0,dd.nK)((e=>this._isReadonly.read(e)?void 0:this._textModel.read(e))),this._register(new Hg(this._contextKeyService,this.model)),this._register((0,dd.EH)((i=>{const o=this._textModelIfWritable.read(i);(0,dd.PS)((i=>{if(this.model.set(void 0,i),this.updateObservables(i,vm.Other),o){const n=t.createInstance(Sm,o,this._suggestWidgetAdaptor.selectedItem,this._textModelVersionId,this._positions,this._debounceValue,(0,dd.rD)(e.onDidChangeConfiguration,(()=>e.getOption(118).preview)),(0,dd.rD)(e.onDidChangeConfiguration,(()=>e.getOption(118).previewMode)),(0,dd.rD)(e.onDidChangeConfiguration,(()=>e.getOption(62).mode)),this._enabled);this.model.set(n,i)}}))})));const d=this._register((0,X.aU)());this._register((0,dd.EH)((e=>{const t=this._fontFamily.read(e);d.setStyle(""===t||"default"===t?"":"\n.monaco-editor .ghost-text-decoration,\n.monaco-editor .ghost-text-decoration-preview,\n.monaco-editor .ghost-text {\n\tfont-family: ".concat(t,";\n}"))})));const c=e=>{var t;return e.isUndoing?vm.Undo:e.isRedoing?vm.Redo:(null===(t=this.model.get())||void 0===t?void 0:t.isAcceptingPartially)?vm.AcceptWord:vm.Other};let h;this._register(e.onDidChangeModelContent((e=>(0,dd.PS)((t=>this.updateObservables(t,c(e))))))),this._register(e.onDidChangeCursorPosition((e=>(0,dd.PS)((t=>{var i;this.updateObservables(t,vm.Other),3!==e.reason&&"api"!==e.source||null===(i=this.model.get())||void 0===i||i.stop(t)}))))),this._register(e.onDidType((()=>(0,dd.PS)((e=>{var t;this.updateObservables(e,vm.Other),this._enabled.get()&&(null===(t=this.model.get())||void 0===t||t.trigger(e))}))))),this._register(this._commandService.onDidExecuteCommand((t=>{new Set([Y.wk.Tab.id,Y.wk.DeleteLeft.id,Y.wk.DeleteRight.id,cd,"acceptSelectedSuggestion"]).has(t.commandId)&&e.hasTextFocus()&&this._enabled.get()&&(0,dd.PS)((e=>{var t;null===(t=this.model.get())||void 0===t||t.trigger(e)}))}))),this._register(this.editor.onDidBlurEditorWidget((()=>{this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||e.getOption(62).keepOnBlur||Cd.dropDownVisible||(0,dd.PS)((e=>{var t;null===(t=this.model.get())||void 0===t||t.stop(e)}))}))),this._register((0,dd.EH)((e=>{var t;const i=null===(t=this.model.read(e))||void 0===t?void 0:t.state.read(e);(null===i||void 0===i?void 0:i.suggestItem)?i.primaryGhostText.lineCount>=2&&this._suggestWidgetAdaptor.forceRenderingAbove():this._suggestWidgetAdaptor.stopForceRenderingAbove()}))),this._register((0,Fe.OF)((()=>{this._suggestWidgetAdaptor.stopForceRenderingAbove()}))),this._register((0,dd.nJ)({handleChange:(e,t)=>(e.didChange(this._playAccessibilitySignal)&&(h=void 0),!0)},(async e=>{this._playAccessibilitySignal.read(e);const t=this.model.read(e),i=null===t||void 0===t?void 0:t.state.read(e);if(t&&i&&i.inlineCompletion){if(i.inlineCompletion.semanticId!==h){h=i.inlineCompletion.semanticId;const e=t.textModel.getLineContent(i.primaryGhostText.lineNumber);this._accessibilitySignalService.playSignal(yg.iP.inlineSuggestion).then((()=>{this.editor.getOption(8)&&this.provideScreenReaderUpdate(i.primaryGhostText.renderForScreenReader(e))}))}}else h=void 0}))),this._register(new fd(this.editor,this.model,this._instantiationService)),this._register(this._configurationService.onDidChangeConfiguration((e=>{e.affectsConfiguration("accessibility.verbosity.inlineCompletions")&&this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})}))),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})}playAccessibilitySignal(e){this._playAccessibilitySignal.trigger(e)}provideScreenReaderUpdate(e){const t=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),i=this._keybindingService.lookupKeybinding("editor.action.accessibleView");let o;!t&&i&&this.editor.getOption(149)&&(o=(0,ne.NC)("showAccessibleViewHint","Inspect this in the accessible view ({0})",i.getAriaLabel())),o?(0,xe.Z9)(e+", "+o):(0,xe.Z9)(e)}updateObservables(e,t){var i,o,n;const s=this.editor.getModel();this._textModelVersionId.set(null!==(i=null===s||void 0===s?void 0:s.getVersionId())&&void 0!==i?i:-1,e,t),this._positions.set(null!==(n=null===(o=this.editor.getSelections())||void 0===o?void 0:o.map((e=>e.getPosition())))&&void 0!==n?n:[new We.L(1,1)],e)}shouldShowHoverAt(e){var t;const i=null===(t=this.model.get())||void 0===t?void 0:t.primaryGhostText.get();return!!i&&i.parts.some((t=>e.containsPosition(new We.L(i.lineNumber,t.column))))}shouldShowHoverAtViewZone(e){var t,i;return null!==(i=null===(t=this._ghostTextWidgets.get()[0])||void 0===t?void 0:t.ownsViewZone(e))&&void 0!==i&&i}};K_.ID="editor.contrib.inlineCompletionsController",K_=V_=z_([U_(1,ni.TG),U_(2,ae.i6),U_(3,re.Ui),U_(4,ye.H),U_(5,jn.A),U_(6,kt.p),U_(7,yg.IV),U_(8,ki.d)],K_);class j_ extends ee.R6{constructor(){super({id:j_.ID,label:ne.NC("action.inlineSuggest.showNext","Show Next Inline Suggestion"),alias:"Show Next Inline Suggestion",precondition:ae.Ao.and(oe.u.writable,Hg.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(e,t){var i;const o=K_.get(t);null===(i=null===o||void 0===o?void 0:o.model.get())||void 0===i||i.next()}}j_.ID=ud;class q_ extends ee.R6{constructor(){super({id:q_.ID,label:ne.NC("action.inlineSuggest.showPrevious","Show Previous Inline Suggestion"),alias:"Show Previous Inline Suggestion",precondition:ae.Ao.and(oe.u.writable,Hg.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(e,t){var i;const o=K_.get(t);null===(i=null===o||void 0===o?void 0:o.model.get())||void 0===i||i.previous()}}q_.ID=hd;class G_ extends ee.R6{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:ne.NC("action.inlineSuggest.trigger","Trigger Inline Suggestion"),alias:"Trigger Inline Suggestion",precondition:oe.u.writable})}async run(e,t){const i=K_.get(t);await(0,Fg.Hr)((async e=>{var t;await(null===(t=null===i||void 0===i?void 0:i.model.get())||void 0===t?void 0:t.triggerExplicitly(e)),null===i||void 0===i||i.playAccessibilitySignal(e)}))}}class Q_ extends ee.R6{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:ne.NC("action.inlineSuggest.acceptNextWord","Accept Next Word Of Inline Suggestion"),alias:"Accept Next Word Of Inline Suggestion",precondition:ae.Ao.and(oe.u.writable,Hg.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:ae.Ao.and(oe.u.writable,Hg.inlineSuggestionVisible)},menuOpts:[{menuId:se.eH.InlineSuggestionToolbar,title:ne.NC("acceptWord","Accept Word"),group:"primary",order:2}]})}async run(e,t){var i;const o=K_.get(t);await(null===(i=null===o||void 0===o?void 0:o.model.get())||void 0===i?void 0:i.acceptNextWord(o.editor))}}class Z_ extends ee.R6{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:ne.NC("action.inlineSuggest.acceptNextLine","Accept Next Line Of Inline Suggestion"),alias:"Accept Next Line Of Inline Suggestion",precondition:ae.Ao.and(oe.u.writable,Hg.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:se.eH.InlineSuggestionToolbar,title:ne.NC("acceptLine","Accept Line"),group:"secondary",order:2}]})}async run(e,t){var i;const o=K_.get(t);await(null===(i=null===o||void 0===o?void 0:o.model.get())||void 0===i?void 0:i.acceptNextLine(o.editor))}}class Y_ extends ee.R6{constructor(){super({id:cd,label:ne.NC("action.inlineSuggest.accept","Accept Inline Suggestion"),alias:"Accept Inline Suggestion",precondition:Hg.inlineSuggestionVisible,menuOpts:[{menuId:se.eH.InlineSuggestionToolbar,title:ne.NC("accept","Accept"),group:"primary",order:1}],kbOpts:{primary:2,weight:200,kbExpr:ae.Ao.and(Hg.inlineSuggestionVisible,oe.u.tabMovesFocus.toNegated(),Hg.inlineSuggestionHasIndentationLessThanTabSize,Op.Visible.toNegated(),oe.u.hoverFocused.toNegated())}})}async run(e,t){var i;const o=K_.get(t);o&&(null===(i=o.model.get())||void 0===i||i.accept(o.editor),o.editor.focus())}}class J_ extends ee.R6{constructor(){super({id:J_.ID,label:ne.NC("action.inlineSuggest.hide","Hide Inline Suggestion"),alias:"Hide Inline Suggestion",precondition:Hg.inlineSuggestionVisible,kbOpts:{weight:100,primary:9}})}async run(e,t){const i=K_.get(t);(0,dd.PS)((e=>{var t;null===(t=null===i||void 0===i?void 0:i.model.get())||void 0===t||t.stop(e)}))}}J_.ID="editor.action.inlineSuggest.hide";class $_ extends se.Ke{constructor(){super({id:$_.ID,title:ne.NC("action.inlineSuggest.alwaysShowToolbar","Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:se.eH.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:ae.Ao.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(e,t){const i=e.get(re.Ui),o="always"===i.getValue("editor.inlineSuggest.showToolbar")?"onHover":"always";i.updateValue("editor.inlineSuggest.showToolbar",o)}}$_.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar";var X_=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ef=function(e,t){return function(i,o){t(i,o,e)}};class tf{constructor(e,t,i){this.owner=e,this.range=t,this.controller=i}isValidForHoverAnchor(e){return 1===e.type&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let of=class{constructor(e,t,i,o,n,s){this._editor=e,this._languageService=t,this._openerService=i,this.accessibilityService=o,this._instantiationService=n,this._telemetryService=s,this.hoverOrdinal=4}suggestHoverAnchor(e){const t=K_.get(this._editor);if(!t)return null;const i=e.target;if(8===i.type){const o=i.detail;if(t.shouldShowHoverAtViewZone(o.viewZoneId))return new Ga(1e3,this,He.e.fromPositions(this._editor.getModel().validatePosition(o.positionBefore||o.position)),e.event.posx,e.event.posy,!1)}if(7===i.type&&t.shouldShowHoverAt(i.range))return new Ga(1e3,this,i.range,e.event.posx,e.event.posy,!1);if(6===i.type){if(i.detail.mightBeForeignElement&&t.shouldShowHoverAt(i.range))return new Ga(1e3,this,i.range,e.event.posx,e.event.posy,!1)}return null}computeSync(e,t){if("onHover"!==this._editor.getOption(62).showToolbar)return[];const i=K_.get(this._editor);return i&&i.shouldShowHoverAt(e.range)?[new tf(this,e.range,i)]:[]}renderHoverParts(e,t){const i=new Fe.SL,o=t[0];this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(8)&&this.renderScreenReaderText(e,o,i);const n=o.controller.model.get(),s=this._instantiationService.createInstance(Cd,this._editor,!1,(0,dd.Dz)(null),n.selectedInlineCompletionIndex,n.inlineCompletionsCount,n.selectedInlineCompletion.map((e=>{var t;return null!==(t=null===e||void 0===e?void 0:e.inlineCompletion.source.inlineCompletions.commands)&&void 0!==t?t:[]})));return e.fragment.appendChild(s.getDomNode()),n.triggerExplicitly(),i.add(s),i}renderScreenReaderText(e,t,i){const o=X.$,n=o("div.hover-row.markdown-hover"),s=X.R3(n,o("div.hover-contents",{"aria-live":"assertive"})),r=i.add(new gi.$({editor:this._editor},this._languageService,this._openerService));i.add((0,dd.EH)((o=>{var n;const a=null===(n=t.controller.model.read(o))||void 0===n?void 0:n.primaryGhostText.read(o);if(a){const t=this._editor.getModel().getLineContent(a.lineNumber);(t=>{i.add(r.onDidRenderAsync((()=>{s.className="hover-contents code-hover-contents",e.onContentsChanged()})));const o=ne.NC("inlineSuggestionFollows","Suggestion:"),n=i.add(r.render((new Ne.W5).appendText(o).appendCodeblock("text",t)));s.replaceChildren(n.element)})(a.renderForScreenReader(t))}else X.mc(s)}))),e.fragment.appendChild(n)}};of=X_([ef(1,Us.O),ef(2,pi.v),ef(3,$s.F),ef(4,ni.TG),ef(5,eo.b)],of),(0,ee._K)(K_.ID,K_,3),(0,ee.Qr)(G_),(0,ee.Qr)(j_),(0,ee.Qr)(q_),(0,ee.Qr)(Q_),(0,ee.Qr)(Z_),(0,ee.Qr)(Y_),(0,ee.Qr)(J_),(0,se.r1)($_),Qa.register(of);var nf=i(42443);function sf(e,t){let i=0;for(let o=0;o<e.length;o++)"\t"===e.charAt(o)?i+=t:i++;return i}function rf(e,t,i){e=e<0?0:e;let o="";if(!i){const i=Math.floor(e/t);e%=t;for(let e=0;e<i;e++)o+="\t"}for(let n=0;n<e;n++)o+=" ";return o}var af=i(1761),lf=i(48941);function df(e,t,i,o,n){if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return[];const s=t.getLanguageConfiguration(e.getLanguageId()).indentationRules;if(!s)return[];for(o=Math.min(o,e.getLineCount());i<=o&&s.unIndentedLinePattern;){const t=e.getLineContent(i);if(!s.unIndentedLinePattern.test(t))break;i++}if(i>o-1)return[];const{tabSize:r,indentSize:a,insertSpaces:l}=e.getOptions(),d=(e,t)=>(t=t||1,nf.U.shiftIndent(e,e.length+t,r,a,l)),c=(e,t)=>(t=t||1,nf.U.unshiftIndent(e,e.length+t,r,a,l)),h=[];let u;const g=e.getLineContent(i);let p=g;if(void 0!==n&&null!==n){u=n;const e=ii.V8(g);p=u+g.substring(e.length),s.decreaseIndentPattern&&s.decreaseIndentPattern.test(p)&&(u=c(u),p=u+g.substring(e.length)),g!==p&&h.push(Yd.h.replaceMove(new ke.Y(i,1,i,e.length+1),(0,lf.x)(u,a,l)))}else u=ii.V8(g);let m=u;s.increaseIndentPattern&&s.increaseIndentPattern.test(p)?(m=d(m),u=d(u)):s.indentNextLinePattern&&s.indentNextLinePattern.test(p)&&(m=d(m));for(let _=++i;_<=o;_++){const t=e.getLineContent(_),i=ii.V8(t),o=m+t.substring(i.length);s.decreaseIndentPattern&&s.decreaseIndentPattern.test(o)&&(m=c(m),u=c(u)),i!==m&&h.push(Yd.h.replaceMove(new ke.Y(_,1,_,i.length+1),(0,lf.x)(m,a,l))),s.unIndentedLinePattern&&s.unIndentedLinePattern.test(t)||(s.increaseIndentPattern&&s.increaseIndentPattern.test(o)?(u=d(u),m=u):m=s.indentNextLinePattern&&s.indentNextLinePattern.test(o)?d(m):u)}return h}var cf=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},hf=function(e,t){return function(i,o){t(i,o,e)}};class uf extends ee.R6{constructor(){super({id:uf.ID,label:ne.NC("indentationToSpaces","Convert Indentation to Spaces"),alias:"Convert Indentation to Spaces",precondition:oe.u.writable})}run(e,t){const i=t.getModel();if(!i)return;const o=i.getOptions(),n=t.getSelection();if(!n)return;const s=new xf(n,o.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop(),i.updateOptions({insertSpaces:!0})}}uf.ID="editor.action.indentationToSpaces";class gf extends ee.R6{constructor(){super({id:gf.ID,label:ne.NC("indentationToTabs","Convert Indentation to Tabs"),alias:"Convert Indentation to Tabs",precondition:oe.u.writable})}run(e,t){const i=t.getModel();if(!i)return;const o=i.getOptions(),n=t.getSelection();if(!n)return;const s=new Nf(n,o.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop(),i.updateOptions({insertSpaces:!1})}}gf.ID="editor.action.indentationToTabs";class pf extends ee.R6{constructor(e,t,i){super(i),this.insertSpaces=e,this.displaySizeOnly=t}run(e,t){const i=e.get(wi.eJ),o=e.get($i.q),n=t.getModel();if(!n)return;const s=o.getCreationOptions(n.getLanguageId(),n.uri,n.isForSimpleWidget),r=n.getOptions(),a=[1,2,3,4,5,6,7,8].map((e=>({id:e.toString(),label:e.toString(),description:e===s.tabSize&&e===r.tabSize?ne.NC("configuredTabSize","Configured Tab Size"):e===s.tabSize?ne.NC("defaultTabSize","Default Tab Size"):e===r.tabSize?ne.NC("currentTabSize","Current Tab Size"):void 0}))),l=Math.min(n.getOptions().tabSize-1,7);setTimeout((()=>{i.pick(a,{placeHolder:ne.NC({key:"selectTabWidth",comment:["Tab corresponds to the tab key"]},"Select Tab Size for Current File"),activeItem:a[l]}).then((e=>{if(e&&n&&!n.isDisposed()){const t=parseInt(e.label,10);this.displaySizeOnly?n.updateOptions({tabSize:t}):n.updateOptions({tabSize:t,indentSize:t,insertSpaces:this.insertSpaces})}}))}),50)}}class mf extends pf{constructor(){super(!1,!1,{id:mf.ID,label:ne.NC("indentUsingTabs","Indent Using Tabs"),alias:"Indent Using Tabs",precondition:void 0})}}mf.ID="editor.action.indentUsingTabs";class _f extends pf{constructor(){super(!0,!1,{id:_f.ID,label:ne.NC("indentUsingSpaces","Indent Using Spaces"),alias:"Indent Using Spaces",precondition:void 0})}}_f.ID="editor.action.indentUsingSpaces";class ff extends pf{constructor(){super(!0,!0,{id:ff.ID,label:ne.NC("changeTabDisplaySize","Change Tab Display Size"),alias:"Change Tab Display Size",precondition:void 0})}}ff.ID="editor.action.changeTabDisplaySize";class vf extends ee.R6{constructor(){super({id:vf.ID,label:ne.NC("detectIndentation","Detect Indentation from Content"),alias:"Detect Indentation from Content",precondition:void 0})}run(e,t){const i=e.get($i.q),o=t.getModel();if(!o)return;const n=i.getCreationOptions(o.getLanguageId(),o.uri,o.isForSimpleWidget);o.detectIndentation(n.insertSpaces,n.tabSize)}}vf.ID="editor.action.detectIndentation";class bf extends ee.R6{constructor(){super({id:"editor.action.reindentlines",label:ne.NC("editor.reindentlines","Reindent Lines"),alias:"Reindent Lines",precondition:oe.u.writable})}run(e,t){const i=e.get(Xn.c_),o=t.getModel();if(!o)return;const n=df(o,i,1,o.getLineCount());n.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,n),t.pushUndoStop())}}class Cf extends ee.R6{constructor(){super({id:"editor.action.reindentselectedlines",label:ne.NC("editor.reindentselectedlines","Reindent Selected Lines"),alias:"Reindent Selected Lines",precondition:oe.u.writable})}run(e,t){const i=e.get(Xn.c_),o=t.getModel();if(!o)return;const n=t.getSelections();if(null===n)return;const s=[];for(const r of n){let e=r.startLineNumber,t=r.endLineNumber;if(e!==t&&1===r.endColumn&&t--,1===e){if(e===t)continue}else e--;const n=df(o,i,e,t);s.push(...n)}s.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,s),t.pushUndoStop())}}class Sf{constructor(e,t){this._initialSelection=t,this._edits=[],this._selectionId=null;for(const i of e)i.range&&"string"===typeof i.text&&this._edits.push(i)}getEditOperations(e,t){for(const o of this._edits)t.addEditOperation(He.e.lift(o.range),o.text);let i=!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?(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!1))),i||(this._selectionId=t.trackSelection(this._initialSelection))}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}let yf=class{constructor(e,t){this.editor=e,this._languageConfigurationService=t,this.callOnDispose=new Fe.SL,this.callOnModel=new Fe.SL,this.callOnDispose.add(e.onDidChangeConfiguration((()=>this.update()))),this.callOnDispose.add(e.onDidChangeModel((()=>this.update()))),this.callOnDispose.add(e.onDidChangeModelLanguage((()=>this.update())))}update(){this.callOnModel.clear(),this.editor.getOption(12)<4||this.editor.getOption(55)||this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste((e=>{let{range:t}=e;this.trigger(t)})))}trigger(e){const t=this.editor.getSelections();if(null===t||t.length>1)return;const i=this.editor.getModel();if(!i)return;if(!i.tokenization.isCheapToTokenize(e.getStartPosition().lineNumber))return;const o=this.editor.getOption(12),{tabSize:n,indentSize:s,insertSpaces:r}=i.getOptions(),a=[],l={shiftIndent:e=>nf.U.shiftIndent(e,e.length+1,n,s,r),unshiftIndent:e=>nf.U.unshiftIndent(e,e.length+1,n,s,r)};let d=e.startLineNumber;for(;d<=e.endLineNumber&&this.shouldIgnoreLine(i,d);)d++;if(d>e.endLineNumber)return;let c=i.getLineContent(d);if(!/\S/.test(c.substring(0,e.startColumn-1))){const e=(0,af.n8)(o,i,i.getLanguageId(),d,l,this._languageConfigurationService);if(null!==e){const t=ii.V8(c),o=sf(e,n);if(o!==sf(t,n)){const e=rf(o,n,r);a.push({range:new He.e(d,1,d,t.length+1),text:e}),c=e+c.substr(t.length)}else{const e=(0,af.tI)(i,d,this._languageConfigurationService);if(0===e||8===e)return}}}const h=d;for(;d<e.endLineNumber&&!/\S/.test(i.getLineContent(d+1));)d++;if(d!==e.endLineNumber){const t={tokenization:{getLineTokens:e=>i.tokenization.getLineTokens(e),getLanguageId:()=>i.getLanguageId(),getLanguageIdAtPosition:(e,t)=>i.getLanguageIdAtPosition(e,t)},getLineContent:e=>e===h?c:i.getLineContent(e)},s=(0,af.n8)(o,t,i.getLanguageId(),d+1,l,this._languageConfigurationService);if(null!==s){const t=sf(s,n),o=sf(ii.V8(i.getLineContent(d+1)),n);if(t!==o){const s=t-o;for(let t=d+1;t<=e.endLineNumber;t++){const e=i.getLineContent(t),o=ii.V8(e),l=rf(sf(o,n)+s,n,r);l!==o&&a.push({range:new He.e(t,1,t,o.length+1),text:l})}}}}if(a.length>0){this.editor.pushUndoStop();const e=new Sf(a,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",e),this.editor.pushUndoStop()}}shouldIgnoreLine(e,t){e.tokenization.forceTokenization(t);const i=e.getLineFirstNonWhitespaceColumn(t);if(0===i)return!0;const o=e.tokenization.getLineTokens(t);if(o.getCount()>0){const e=o.findTokenIndexAtOffset(i);if(e>=0&&1===o.getStandardTokenType(e))return!0}return!1}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};function wf(e,t,i,o){if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return;let n="";for(let r=0;r<i;r++)n+=" ";const s=new RegExp(n,"gi");for(let r=1,a=e.getLineCount();r<=a;r++){let i=e.getLineFirstNonWhitespaceColumn(r);if(0===i&&(i=e.getLineMaxColumn(r)),1===i)continue;const a=new He.e(r,1,r,i),l=e.getValueInRange(a),d=o?l.replace(/\t/gi,n):l.replace(s,"\t");t.addEditOperation(a,d)}}yf.ID="editor.contrib.autoIndentOnPaste",yf=cf([hf(1,Xn.c_)],yf);class xf{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),wf(e,t,this.tabSize,!0)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}}class Nf{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),wf(e,t,this.tabSize,!1)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}}(0,ee._K)(yf.ID,yf,2),(0,ee.Qr)(uf),(0,ee.Qr)(gf),(0,ee.Qr)(mf),(0,ee.Qr)(_f),(0,ee.Qr)(ff),(0,ee.Qr)(vf),(0,ee.Qr)(bf),(0,ee.Qr)(Cf);class Lf{constructor(e,t){this.range=e,this.direction=t}}class kf{constructor(e,t,i){this.hint=e,this.anchor=t,this.provider=i,this._isResolved=!1}with(e){const t=new kf(this.hint,e.anchor,this.provider);return t._isResolved=this._isResolved,t._currentResolve=this._currentResolve,t}async resolve(e){if("function"===typeof this.provider.resolveInlayHint){if(this._currentResolve){if(await this._currentResolve,e.isCancellationRequested)return;return this.resolve(e)}this._isResolved||(this._currentResolve=this._doResolve(e).finally((()=>this._currentResolve=void 0))),await this._currentResolve}}async _doResolve(e){var t,i,o;try{const n=await Promise.resolve(this.provider.resolveInlayHint(this.hint,e));this.hint.tooltip=null!==(t=null===n||void 0===n?void 0:n.tooltip)&&void 0!==t?t:this.hint.tooltip,this.hint.label=null!==(i=null===n||void 0===n?void 0:n.label)&&void 0!==i?i:this.hint.label,this.hint.textEdits=null!==(o=null===n||void 0===n?void 0:n.textEdits)&&void 0!==o?o:this.hint.textEdits,this._isResolved=!0}catch(n){(0,Ji.Cp)(n),this._isResolved=!1}}}class Df{static async create(e,t,i,o){const n=[],s=e.ordered(t).reverse().map((e=>i.map((async i=>{try{const s=await e.provideInlayHints(t,i,o);((null===s||void 0===s?void 0:s.hints.length)||e.onDidChangeInlayHints)&&n.push([null!==s&&void 0!==s?s:Df._emptyInlayHintList,e])}catch(s){(0,Ji.Cp)(s)}}))));if(await Promise.all(s.flat()),o.isCancellationRequested||t.isDisposed())throw new Ji.FU;return new Df(i,n,t)}constructor(e,t,i){this._disposables=new Fe.SL,this.ranges=e,this.provider=new Set;const o=[];for(const[n,s]of t){this._disposables.add(n),this.provider.add(s);for(const e of n.hints){const t=i.validatePosition(e.position);let n="before";const r=Df._getRangeAtPosition(i,t);let a;r.getStartPosition().isBefore(t)?(a=He.e.fromPositions(r.getStartPosition(),t),n="after"):(a=He.e.fromPositions(t,r.getEndPosition()),n="before"),o.push(new kf(e,new Lf(a,n),s))}}this.items=o.sort(((e,t)=>We.L.compare(e.hint.position,t.hint.position)))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(e,t){const i=t.lineNumber,o=e.getWordAtPosition(t);if(o)return new He.e(i,o.startColumn,i,o.endColumn);e.tokenization.tokenizeIfCheap(i);const n=e.tokenization.getLineTokens(i),s=t.column-1,r=n.findTokenIndexAtOffset(s);let a=n.getStartOffset(r),l=n.getEndOffset(r);return l-a===1&&(a===s&&r>1?(a=n.getStartOffset(r-1),l=n.getEndOffset(r-1)):l===s&&r<n.getCount()-1&&(a=n.getStartOffset(r+1),l=n.getEndOffset(r+1))),new He.e(i,a+1,i,l+1)}}async function If(e,t,i,o){var n;const s=e.get(Ks.S),r=e.get(Li.i),a=e.get(ye.H),l=e.get(ni.TG),d=e.get(Xi.lT);if(await o.item.resolve(Yi.T.None),!o.part.location)return;const c=o.part.location,h=[],u=new Set(se.BH.getMenuItems(se.eH.EditorContext).map((e=>(0,se.vr)(e)?e.command.id:rt())));for(const p of Ma.all())u.has(p.desc.id)&&h.push(new Ni.aU(p.desc.id,se.U8.label(p.desc,{renderShortTitle:!0}),void 0,!0,(async()=>{const e=await s.createModelReference(c.uri);try{const i=new Pa(e.object.textEditorModel,He.e.getStartPosition(c.range)),n=o.item.anchor.range;await l.invokeFunction(p.runEditorCommand.bind(p),t,i,n)}finally{e.dispose()}})));if(o.part.command){const{command:e}=o.part;h.push(new Ni.Z0),h.push(new Ni.aU(e.id,e.title,void 0,!0,(async()=>{var t;try{await a.executeCommand(e.id,...null!==(t=e.arguments)&&void 0!==t?t:[])}catch(i){d.notify({severity:Xi.zb.Error,source:o.item.provider.displayName,message:i})}})))}const g=t.getOption(127);r.showContextMenu({domForShadowRoot:g&&null!==(n=t.getDomNode())&&void 0!==n?n:void 0,getAnchor:()=>{const e=X.i(i);return{x:e.left,y:e.top+e.height+8}},getActions:()=>h,onHide:()=>{t.focus()},autoSelectFirstItem:!0})}async function Rf(e,t,i,o){const n=e.get(Ks.S),s=await n.createModelReference(o.uri);await i.invokeWithinContext((async e=>{const n=t.hasSideBySideModifier,r=e.get(ae.i6),a=pr.inPeekEditor.getValue(r),l=!n&&i.getOption(88)&&!a;return new Ta({openToSide:n,openInPeek:l,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(e,new Pa(s.object.textEditorModel,He.e.getStartPosition(o.range)),He.e.lift(o.range))})),s.dispose()}Df._emptyInlayHintList=Object.freeze({dispose(){},hints:[]});var Pf,Mf=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Tf=function(e,t){return function(i,o){t(i,o,e)}};class Ef{constructor(){this._entries=new Pn.z6(50)}get(e){const t=Ef._key(e);return this._entries.get(t)}set(e,t){const i=Ef._key(e);this._entries.set(i,t)}static _key(e){return"".concat(e.uri.toString(),"/").concat(e.getVersionId())}}const Af=(0,ni.yh)("IInlayHintsCache");(0,Zo.z)(Af,Ef,1);class Of{constructor(e,t){this.item=e,this.index=t}get part(){const e=this.item.hint.label;return"string"===typeof e?{label:e}:e[this.index]}}class Ff{constructor(e,t){this.part=e,this.hasTriggerModifier=t}}let Wf=Pf=class{static get(e){var t;return null!==(t=e.getContribution(Pf.ID))&&void 0!==t?t:void 0}constructor(e,t,i,o,n,s,r){this._editor=e,this._languageFeaturesService=t,this._inlayHintsCache=o,this._commandService=n,this._notificationService=s,this._instaService=r,this._disposables=new Fe.SL,this._sessionDisposables=new Fe.SL,this._decorationsMetadata=new Map,this._ruleFactory=new Jn.t7(this._editor),this._activeRenderMode=0,this._debounceInfo=i.for(t.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(t.inlayHintsProvider.onDidChange((()=>this._update()))),this._disposables.add(e.onDidChangeModel((()=>this._update()))),this._disposables.add(e.onDidChangeModelLanguage((()=>this._update()))),this._disposables.add(e.onDidChangeConfiguration((e=>{e.hasChanged(141)&&this._update()}))),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const e=this._editor.getOption(141);if("off"===e.enabled)return;const t=this._editor.getModel();if(!t||!this._languageFeaturesService.inlayHintsProvider.has(t))return;if("on"===e.enabled)this._activeRenderMode=0;else{let t,i;"onUnlessPressed"===e.enabled?(t=0,i=1):(t=1,i=0),this._activeRenderMode=t,this._sessionDisposables.add(X._q.getInstance().event((e=>{if(!this._editor.hasModel())return;const o=e.altKey&&e.ctrlKey&&!e.shiftKey&&!e.metaKey?i:t;if(o!==this._activeRenderMode){this._activeRenderMode=o;const e=this._editor.getModel(),t=this._copyInlayHintsWithCurrentAnchor(e);this._updateHintsDecorators([e.getFullModelRange()],t),s.schedule(0)}})))}const i=this._inlayHintsCache.get(t);let o;i&&this._updateHintsDecorators([t.getFullModelRange()],i),this._sessionDisposables.add((0,Fe.OF)((()=>{t.isDisposed()||this._cacheHintsForFastRestore(t)})));const n=new Set,s=new Oe.pY((async()=>{const e=Date.now();null===o||void 0===o||o.dispose(!0),o=new Yi.A;const i=t.onWillDispose((()=>null===o||void 0===o?void 0:o.cancel()));try{const i=o.token,r=await Df.create(this._languageFeaturesService.inlayHintsProvider,t,this._getHintsRanges(),i);if(s.delay=this._debounceInfo.update(t,Date.now()-e),i.isCancellationRequested)return void r.dispose();for(const e of r.provider)"function"!==typeof e.onDidChangeInlayHints||n.has(e)||(n.add(e),this._sessionDisposables.add(e.onDidChangeInlayHints((()=>{s.isScheduled()||s.schedule()}))));this._sessionDisposables.add(r),this._updateHintsDecorators(r.ranges,r.items),this._cacheHintsForFastRestore(t)}catch(r){(0,Ji.dL)(r)}finally{o.dispose(),i.dispose()}}),this._debounceInfo.get(t));this._sessionDisposables.add(s),this._sessionDisposables.add((0,Fe.OF)((()=>null===o||void 0===o?void 0:o.dispose(!0)))),s.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange((e=>{!e.scrollTopChanged&&s.isScheduled()||s.schedule()}))),this._sessionDisposables.add(this._editor.onDidChangeModelContent((e=>{null===o||void 0===o||o.cancel();const t=Math.max(s.delay,1250);s.schedule(t)}))),this._sessionDisposables.add(this._installDblClickGesture((()=>s.schedule(0)))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const e=new Fe.SL,t=e.add(new Ys(this._editor)),i=new Fe.SL;return e.add(i),e.add(t.onMouseMoveOrRelevantKeyDown((e=>{const[t]=e,o=this._getInlayHintLabelPart(t),n=this._editor.getModel();if(!o||!n)return void i.clear();const s=new Yi.A;i.add((0,Fe.OF)((()=>s.dispose(!0)))),o.item.resolve(s.token),this._activeInlayHintPart=o.part.command||o.part.location?new Ff(o,t.hasTriggerModifier):void 0;const r=n.validatePosition(o.item.hint.position).lineNumber,a=new He.e(r,1,r,n.getLineMaxColumn(r)),l=this._getInlineHintsForRange(a);this._updateHintsDecorators([a],l),i.add((0,Fe.OF)((()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([a],l)})))}))),e.add(t.onCancel((()=>i.clear()))),e.add(t.onExecute((async e=>{const t=this._getInlayHintLabelPart(e);if(t){const i=t.part;i.location?this._instaService.invokeFunction(Rf,e,this._editor,i.location):Lt.mY.is(i.command)&&await this._invokeCommand(i.command,t.item)}}))),e}_getInlineHintsForRange(e){const t=new Set;for(const i of this._decorationsMetadata.values())e.containsRange(i.item.anchor.range)&&t.add(i.item);return Array.from(t)}_installDblClickGesture(e){return this._editor.onMouseUp((async t=>{if(2!==t.event.detail)return;const i=this._getInlayHintLabelPart(t);if(i&&(t.event.preventDefault(),await i.item.resolve(Yi.T.None),(0,nt.Of)(i.item.hint.textEdits))){const t=i.item.hint.textEdits.map((e=>Yd.h.replace(He.e.lift(e.range),e.text)));this._editor.executeEdits("inlayHint.default",t),e()}}))}_installContextMenu(){return this._editor.onContextMenu((async e=>{if(!(e.event.target instanceof HTMLElement))return;const t=this._getInlayHintLabelPart(e);t&&await this._instaService.invokeFunction(If,this._editor,e.event.target,t)}))}_getInlayHintLabelPart(e){var t;if(6!==e.target.type)return;const i=null===(t=e.target.detail.injectedText)||void 0===t?void 0:t.options;return i instanceof Be.HS&&(null===i||void 0===i?void 0:i.attachedData)instanceof Of?i.attachedData:void 0}async _invokeCommand(e,t){var i;try{await this._commandService.executeCommand(e.id,...null!==(i=e.arguments)&&void 0!==i?i:[])}catch(o){this._notificationService.notify({severity:Xi.zb.Error,source:t.provider.displayName,message:o})}}_cacheHintsForFastRestore(e){const t=this._copyInlayHintsWithCurrentAnchor(e);this._inlayHintsCache.set(e,t)}_copyInlayHintsWithCurrentAnchor(e){const t=new Map;for(const[i,o]of this._decorationsMetadata){if(t.has(o.item))continue;const n=e.getDecorationRange(i);if(n){const e=new Lf(n,o.item.anchor.direction),i=o.item.with({anchor:e});t.set(o.item,i)}}return Array.from(t.values())}_getHintsRanges(){const e=this._editor.getModel(),t=this._editor.getVisibleRangesPlusViewportAboveBelow(),i=[];for(const o of t.sort(He.e.compareRangesUsingStarts)){const t=e.validateRange(new He.e(o.startLineNumber-30,o.startColumn,o.endLineNumber+30,o.endColumn));0!==i.length&&He.e.areIntersectingOrTouching(i[i.length-1],t)?i[i.length-1]=He.e.plusRange(i[i.length-1],t):i.push(t)}return i}_updateHintsDecorators(e,t){var i,o;const n=[],s=(e,t,i,o,s)=>{const r={content:i,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:t.className,cursorStops:o,attachedData:s};n.push({item:e,classNameRef:t,decoration:{range:e.anchor.range,options:{description:"InlayHint",showIfCollapsed:e.anchor.range.isEmpty(),collapseOnReplaceEdit:!e.anchor.range.isEmpty(),stickiness:0,[e.anchor.direction]:0===this._activeRenderMode?r:void 0}}})},r=(e,t)=>{const i=this._ruleFactory.createClassNameRef({width:"".concat(a/3|0,"px"),display:"inline-block"});s(e,i,"\u200a",t?Ve.RM.Right:Ve.RM.None)},{fontSize:a,fontFamily:l,padding:d,isUniform:c}=this._getLayoutInfo(),h="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(h,l);let u={line:0,totalLen:0};for(const m of t){if(u.line!==m.anchor.range.startLineNumber&&(u={line:m.anchor.range.startLineNumber,totalLen:0}),u.totalLen>Pf._MAX_LABEL_LEN)continue;m.hint.paddingLeft&&r(m,!1);const e="string"===typeof m.hint.label?[{label:m.hint.label}]:m.hint.label;for(let t=0;t<e.length;t++){const o=e[t],n=0===t,r=t===e.length-1,l={fontSize:"".concat(a,"px"),fontFamily:"var(".concat(h,"), ").concat(sn.hL.fontFamily),verticalAlign:c?"baseline":"middle",unicodeBidi:"isolate"};(0,nt.Of)(m.hint.textEdits)&&(l.cursor="default"),this._fillInColors(l,m.hint),(o.command||o.location)&&(null===(i=this._activeInlayHintPart)||void 0===i?void 0:i.part.item)===m&&this._activeInlayHintPart.part.index===t&&(l.textDecoration="underline",this._activeInlayHintPart.hasTriggerModifier&&(l.color=(0,Ue.EN)(ze._Yy),l.cursor="pointer")),d&&(n&&r?(l.padding="1px ".concat(0|Math.max(1,a/4),"px"),l.borderRadius="".concat(a/4|0,"px")):n?(l.padding="1px 0 1px ".concat(0|Math.max(1,a/4),"px"),l.borderRadius="".concat(a/4|0,"px 0 0 ").concat(a/4|0,"px")):r?(l.padding="1px ".concat(0|Math.max(1,a/4),"px 1px 0"),l.borderRadius="0 ".concat(a/4|0,"px ").concat(a/4|0,"px 0")):l.padding="1px 0 1px 0");let g=o.label;u.totalLen+=g.length;let p=!1;const _=u.totalLen-Pf._MAX_LABEL_LEN;if(_>0&&(g=g.slice(0,-_)+"\u2026",p=!0),s(m,this._ruleFactory.createClassNameRef(l),Hf(g),r&&!m.hint.paddingRight?Ve.RM.Right:Ve.RM.None,new Of(m,t)),p)break}if(m.hint.paddingRight&&r(m,!0),n.length>Pf._MAX_DECORATORS)break}const g=[];for(const[m,_]of this._decorationsMetadata){const t=null===(o=this._editor.getModel())||void 0===o?void 0:o.getDecorationRange(m);t&&e.some((e=>e.containsRange(t)))&&(g.push(m),_.classNameRef.dispose(),this._decorationsMetadata.delete(m))}const p=kn.Z.capture(this._editor);this._editor.changeDecorations((e=>{const t=e.deltaDecorations(g,n.map((e=>e.decoration)));for(let i=0;i<t.length;i++){const e=n[i];this._decorationsMetadata.set(t[i],e)}})),p.restore(this._editor)}_fillInColors(e,t){t.kind===Lt.gl.Parameter?(e.backgroundColor=(0,Ue.EN)(ze.phM),e.color=(0,Ue.EN)(ze.HCL)):t.kind===Lt.gl.Type?(e.backgroundColor=(0,Ue.EN)(ze.bKB),e.color=(0,Ue.EN)(ze.hX8)):(e.backgroundColor=(0,Ue.EN)(ze.PpC),e.color=(0,Ue.EN)(ze.VVv))}_getLayoutInfo(){const e=this._editor.getOption(141),t=e.padding,i=this._editor.getOption(52),o=this._editor.getOption(49);let n=e.fontSize;(!n||n<5||n>i)&&(n=i);const s=e.fontFamily||o;return{fontSize:n,fontFamily:s,padding:t,isUniform:!t&&s===o&&n===i}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const e of this._decorationsMetadata.values())e.classNameRef.dispose();this._decorationsMetadata.clear()}};function Hf(e){return e.replace(/[ \t]/g,"\xa0")}Wf.ID="editor.contrib.InlayHints",Wf._MAX_DECORATORS=1500,Wf._MAX_LABEL_LEN=43,Wf=Pf=Mf([Tf(1,kt.p),Tf(2,jn.A),Tf(3,Af),Tf(4,ye.H),Tf(5,Xi.lT),Tf(6,ni.TG)],Wf),ye.P.registerCommand("_executeInlayHintProvider",(async function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];const[n,s]=i;(0,Dn.p_)(_t.o.isUri(n)),(0,Dn.p_)(He.e.isIRange(s));const{inlayHintsProvider:r}=e.get(kt.p),a=await e.get(Ks.S).createModelReference(n);try{const e=await Df.create(r,a.object.textEditorModel,[He.e.lift(s)],Yi.T.None),t=e.items.map((e=>e.hint));return setTimeout((()=>e.dispose()),0),t}finally{a.dispose()}}));var Vf=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Bf=function(e,t){return function(i,o){t(i,o,e)}};class zf extends Ga{constructor(e,t,i,o){super(10,t,e.item.anchor.range,i,o,!0),this.part=e}}let Uf=class extends bl{constructor(e,t,i,o,n,s){super(e,t,i,o,s),this._resolverService=n,this.hoverOrdinal=6}suggestHoverAnchor(e){var t;if(!Wf.get(this._editor))return null;if(6!==e.target.type)return null;const i=null===(t=e.target.detail.injectedText)||void 0===t?void 0:t.options;return i instanceof Be.HS&&i.attachedData instanceof Of?new zf(i.attachedData,this,e.event.posx,e.event.posy):null}computeSync(){return[]}computeAsync(e,t,i){return e instanceof zf?new Oe.Aq((async t=>{const{part:o}=e;if(await o.item.resolve(i),i.isCancellationRequested)return;let n,s;if("string"===typeof o.item.hint.tooltip?n=(new Ne.W5).appendText(o.item.hint.tooltip):o.item.hint.tooltip&&(n=o.item.hint.tooltip),n&&t.emitOne(new vl(this,e.range,[n],!1,0)),(0,nt.Of)(o.item.hint.textEdits)&&t.emitOne(new vl(this,e.range,[(new Ne.W5).appendText((0,ne.NC)("hint.dbl","Double-click to insert"))],!1,10001)),"string"===typeof o.part.tooltip?s=(new Ne.W5).appendText(o.part.tooltip):o.part.tooltip&&(s=o.part.tooltip),s&&t.emitOne(new vl(this,e.range,[s],!1,1)),o.part.location||o.part.command){let i;const n="altKey"===this._editor.getOption(78)?it.dz?(0,ne.NC)("links.navigate.kb.meta.mac","cmd + click"):(0,ne.NC)("links.navigate.kb.meta","ctrl + click"):it.dz?(0,ne.NC)("links.navigate.kb.alt.mac","option + click"):(0,ne.NC)("links.navigate.kb.alt","alt + click");o.part.location&&o.part.command?i=(new Ne.W5).appendText((0,ne.NC)("hint.defAndCommand","Go to Definition ({0}), right click for more",n)):o.part.location?i=(new Ne.W5).appendText((0,ne.NC)("hint.def","Go to Definition ({0})",n)):o.part.command&&(i=new Ne.W5("[".concat((0,ne.NC)("hint.cmd","Execute Command"),"](").concat((r=o.part.command,_t.o.from({scheme:Dt.lg.command,path:r.id,query:r.arguments&&encodeURIComponent(JSON.stringify(r.arguments))}).toString()),' "').concat(o.part.command.title,'") (').concat(n,")"),{isTrusted:!0})),i&&t.emitOne(new vl(this,e.range,[i],!1,1e4))}var r;const a=await this._resolveInlayHintLabelPartHover(o,i);for await(const e of a)t.emitOne(e)})):Oe.Aq.EMPTY}async _resolveInlayHintLabelPartHover(e,t){if(!e.part.location)return Oe.Aq.EMPTY;const{uri:i,range:o}=e.part.location,n=await this._resolverService.createModelReference(i);try{const i=n.object.textEditorModel;return this._languageFeaturesService.hoverProvider.has(i)?pl(this._languageFeaturesService.hoverProvider,i,new We.L(o.startLineNumber,o.startColumn),t).filter((e=>!(0,Ne.CP)(e.hover.contents))).map((t=>new vl(this,e.item.anchor.range,t.hover.contents,!1,2+t.ordinal))):Oe.Aq.EMPTY}finally{n.dispose()}}};Uf=Vf([Bf(1,Us.O),Bf(2,pi.v),Bf(3,re.Ui),Bf(4,Ks.S),Bf(5,kt.p)],Uf),(0,ee._K)(Wf.ID,Wf,1),Qa.register(Uf);class Kf{constructor(e,t,i){this._editRange=e,this._originalSelection=t,this._text=i}getEditOperations(e,t){t.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(e,t){const i=t.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new ke.Y(i.endLineNumber,Math.min(this._originalSelection.positionColumn,i.endColumn),i.endLineNumber,Math.min(this._originalSelection.positionColumn,i.endColumn)):new ke.Y(i.endLineNumber,i.endColumn-this._text.length,i.endLineNumber,i.endColumn)}}var jf,qf=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Gf=function(e,t){return function(i,o){t(i,o,e)}};let Qf=jf=class{static get(e){return e.getContribution(jf.ID)}constructor(e,t){this.editor=e,this.editorWorkerService=t,this.decorations=this.editor.createDecorationsCollection()}dispose(){}run(e,t){var i;null===(i=this.currentRequest)||void 0===i||i.cancel();const o=this.editor.getSelection(),n=this.editor.getModel();if(!n||!o)return;let s=o;if(s.startLineNumber!==s.endLineNumber)return;const r=new ti.yy(this.editor,5),a=n.uri;return this.editorWorkerService.canNavigateValueSet(a)?(this.currentRequest=(0,Oe.PG)((e=>this.editorWorkerService.navigateValueSet(a,s,t))),this.currentRequest.then((t=>{var i;if(!t||!t.range||!t.value)return;if(!r.validate(this.editor))return;const o=He.e.lift(t.range);let n=t.range;const a=t.value.length-(s.endColumn-s.startColumn);n={startLineNumber:n.startLineNumber,startColumn:n.startColumn,endLineNumber:n.endLineNumber,endColumn:n.startColumn+t.value.length},a>1&&(s=new ke.Y(s.startLineNumber,s.startColumn,s.endLineNumber,s.endColumn+a-1));const l=new Kf(o,s,t.value);this.editor.pushUndoStop(),this.editor.executeCommand(e,l),this.editor.pushUndoStop(),this.decorations.set([{range:n,options:jf.DECORATION}]),null===(i=this.decorationRemover)||void 0===i||i.cancel(),this.decorationRemover=(0,Oe.Vs)(350),this.decorationRemover.then((()=>this.decorations.clear())).catch(Ji.dL)})).catch(Ji.dL)):Promise.resolve(void 0)}};Qf.ID="editor.contrib.inPlaceReplaceController",Qf.DECORATION=Be.qx.register({description:"in-place-replace",className:"valueSetReplacement"}),Qf=jf=qf([Gf(1,bg.p)],Qf);class Zf extends ee.R6{constructor(){super({id:"editor.action.inPlaceReplace.up",label:ne.NC("InPlaceReplaceAction.previous.label","Replace with Previous Value"),alias:"Replace with Previous Value",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:3159,weight:100}})}run(e,t){const i=Qf.get(t);return i?i.run(this.id,!1):Promise.resolve(void 0)}}class Yf extends ee.R6{constructor(){super({id:"editor.action.inPlaceReplace.down",label:ne.NC("InPlaceReplaceAction.next.label","Replace with Next Value"),alias:"Replace with Next Value",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:3161,weight:100}})}run(e,t){const i=Qf.get(t);return i?i.run(this.id,!0):Promise.resolve(void 0)}}(0,ee._K)(Qf.ID,Qf,4),(0,ee.Qr)(Zf),(0,ee.Qr)(Yf);var Jf=i(82999);class $f extends ee.R6{constructor(){super({id:"expandLineSelection",label:ne.NC("expandLineSelection","Expand Line Selection"),alias:"Expand Line Selection",precondition:void 0,kbOpts:{weight:0,kbExpr:oe.u.textInputFocus,primary:2090}})}run(e,t,i){if(i=i||{},!t.hasModel())return;const o=t._getViewModel();o.model.pushStackElement(),o.setCursorStates(i.source,3,Jf.P.expandLineSelection(o,o.getCursorStates())),o.revealAllCursors(i.source,!0)}}(0,ee.Qr)($f);class Xf{constructor(e,t,i){this._selection=e,this._cursors=t,this._selectionId=null,this._trimInRegexesAndStrings=i}getEditOperations(e,t){const i=function(e,t,i){t.sort(((e,t)=>e.lineNumber===t.lineNumber?e.column-t.column:e.lineNumber-t.lineNumber));for(let a=t.length-2;a>=0;a--)t[a].lineNumber===t[a+1].lineNumber&&t.splice(a,1);const o=[];let n=0,s=0;const r=t.length;for(let a=1,l=e.getLineCount();a<=l;a++){const l=e.getLineContent(a),d=l.length+1;let c=0;if(s<r&&t[s].lineNumber===a&&(c=t[s].column,s++,c===d))continue;if(0===l.length)continue;const h=ii.ow(l);let u=0;if(-1===h)u=1;else{if(h===l.length-1)continue;u=h+2}if(!i){if(!e.tokenization.hasAccurateTokensForLine(a))continue;const t=e.tokenization.getLineTokens(a),i=t.getStandardTokenType(t.findTokenIndexAtOffset(u));if(2===i||3===i)continue}u=Math.max(c,u),o[n++]=Yd.h.delete(new He.e(a,u,a,d))}return o}(e,this._cursors,this._trimInRegexesAndStrings);for(let o=0,n=i.length;o<n;o++){const e=i[o];t.addEditOperation(e.range,e.text)}this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}var ev=i(67016);class tv{constructor(e,t,i){this._selection=e,this._isCopyingDown=t,this._noop=i||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(e,t){let i=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,i.startLineNumber<i.endLineNumber&&1===i.endColumn&&(this._endLineNumberDelta=1,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));const o=[];for(let s=i.startLineNumber;s<=i.endLineNumber;s++)o.push(e.getLineContent(s));const n=o.join("\n");""===n&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._noop?t.addEditOperation(new He.e(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber+1,1),i.endLineNumber===e.getLineCount()?"":"\n"):this._isCopyingDown?t.addEditOperation(new He.e(i.startLineNumber,1,i.startLineNumber,1),n+"\n"):t.addEditOperation(new He.e(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),"\n"+n),this._selectionId=t.trackSelection(i),this._selectionDirection=this._selection.getDirection()}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);if(0!==this._startLineNumberDelta||0!==this._endLineNumberDelta){let e=i.startLineNumber,t=i.startColumn,o=i.endLineNumber,n=i.endColumn;0!==this._startLineNumberDelta&&(e+=this._startLineNumberDelta,t=1),0!==this._endLineNumberDelta&&(o+=this._endLineNumberDelta,n=1),i=ke.Y.createWithDirection(e,t,o,n,this._selectionDirection)}return i}}var iv=i(10405),ov=i(16726),nv=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},sv=function(e,t){return function(i,o){t(i,o,e)}};let rv=class{constructor(e,t,i,o){this._languageConfigurationService=o,this._selection=e,this._isMovingDown=t,this._autoIndent=i,this._selectionId=null,this._moveEndLineSelectionShrink=!1}getEditOperations(e,t){const i=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===i)return void(this._selectionId=t.trackSelection(this._selection));if(!this._isMovingDown&&1===this._selection.startLineNumber)return void(this._selectionId=t.trackSelection(this._selection));this._moveEndPositionDown=!1;let o=this._selection;o.startLineNumber<o.endLineNumber&&1===o.endColumn&&(this._moveEndPositionDown=!0,o=o.setEndPosition(o.endLineNumber-1,e.getLineMaxColumn(o.endLineNumber-1)));const{tabSize:n,indentSize:s,insertSpaces:r}=e.getOptions(),a=this.buildIndentConverter(n,s,r),l={tokenization:{getLineTokens:t=>e.tokenization.getLineTokens(t),getLanguageId:()=>e.getLanguageId(),getLanguageIdAtPosition:(t,i)=>e.getLanguageIdAtPosition(t,i)},getLineContent:null};if(o.startLineNumber===o.endLineNumber&&1===e.getLineMaxColumn(o.startLineNumber)){const i=o.startLineNumber,n=this._isMovingDown?i+1:i-1;1===e.getLineMaxColumn(n)?t.addEditOperation(new He.e(1,1,1,1),null):(t.addEditOperation(new He.e(i,1,i,1),e.getLineContent(n)),t.addEditOperation(new He.e(n,1,n,e.getLineMaxColumn(n)),null)),o=new ke.Y(n,1,n,1)}else{let i,s;if(this._isMovingDown){i=o.endLineNumber+1,s=e.getLineContent(i),t.addEditOperation(new He.e(i-1,e.getLineMaxColumn(i-1),i,e.getLineMaxColumn(i)),null);let d=s;if(this.shouldAutoIndent(e,o)){const c=this.matchEnterRule(e,a,n,i,o.startLineNumber-1);if(null!==c){const t=rf(c+sf(ii.V8(e.getLineContent(i)),n),n,r);d=t+this.trimStart(s)}else{l.getLineContent=t=>t===o.startLineNumber?e.getLineContent(i):e.getLineContent(t);const t=(0,af.n8)(this._autoIndent,l,e.getLanguageIdAtPosition(i,1),o.startLineNumber,a,this._languageConfigurationService);if(null!==t){const o=ii.V8(e.getLineContent(i)),a=sf(t,n);if(a!==sf(o,n)){const e=rf(a,n,r);d=e+this.trimStart(s)}}}t.addEditOperation(new He.e(o.startLineNumber,1,o.startLineNumber,1),d+"\n");const h=this.matchEnterRuleMovingDown(e,a,n,o.startLineNumber,i,d);if(null!==h)0!==h&&this.getIndentEditsOfMovingBlock(e,t,o,n,r,h);else{l.getLineContent=t=>t===o.startLineNumber?d:t>=o.startLineNumber+1&&t<=o.endLineNumber+1?e.getLineContent(t-1):e.getLineContent(t);const s=(0,af.n8)(this._autoIndent,l,e.getLanguageIdAtPosition(i,1),o.startLineNumber+1,a,this._languageConfigurationService);if(null!==s){const i=ii.V8(e.getLineContent(o.startLineNumber)),a=sf(s,n),l=sf(i,n);if(a!==l){const i=a-l;this.getIndentEditsOfMovingBlock(e,t,o,n,r,i)}}}}else t.addEditOperation(new He.e(o.startLineNumber,1,o.startLineNumber,1),d+"\n")}else if(i=o.startLineNumber-1,s=e.getLineContent(i),t.addEditOperation(new He.e(i,1,i+1,1),null),t.addEditOperation(new He.e(o.endLineNumber,e.getLineMaxColumn(o.endLineNumber),o.endLineNumber,e.getLineMaxColumn(o.endLineNumber)),"\n"+s),this.shouldAutoIndent(e,o)){l.getLineContent=t=>t===i?e.getLineContent(o.startLineNumber):e.getLineContent(t);const s=this.matchEnterRule(e,a,n,o.startLineNumber,o.startLineNumber-2);if(null!==s)0!==s&&this.getIndentEditsOfMovingBlock(e,t,o,n,r,s);else{const s=(0,af.n8)(this._autoIndent,l,e.getLanguageIdAtPosition(o.startLineNumber,1),i,a,this._languageConfigurationService);if(null!==s){const i=ii.V8(e.getLineContent(o.startLineNumber)),a=sf(s,n),l=sf(i,n);if(a!==l){const i=a-l;this.getIndentEditsOfMovingBlock(e,t,o,n,r,i)}}}}}this._selectionId=t.trackSelection(o)}buildIndentConverter(e,t,i){return{shiftIndent:o=>nf.U.shiftIndent(o,o.length+1,e,t,i),unshiftIndent:o=>nf.U.unshiftIndent(o,o.length+1,e,t,i)}}parseEnterResult(e,t,i,o,n){if(n){let s=n.indentation;n.indentAction===iv.wU.None||n.indentAction===iv.wU.Indent?s=n.indentation+n.appendText:n.indentAction===iv.wU.IndentOutdent?s=n.indentation:n.indentAction===iv.wU.Outdent&&(s=t.unshiftIndent(n.indentation)+n.appendText);const r=e.getLineContent(o);if(this.trimStart(r).indexOf(this.trimStart(s))>=0){const n=ii.V8(e.getLineContent(o));let r=ii.V8(s);const a=(0,af.tI)(e,o,this._languageConfigurationService);null!==a&&2&a&&(r=t.unshiftIndent(r));return sf(r,i)-sf(n,i)}}return null}matchEnterRuleMovingDown(e,t,i,o,n,s){if(ii.ow(s)>=0){const s=e.getLineMaxColumn(n),r=(0,ov.A)(this._autoIndent,e,new He.e(n,s,n,s),this._languageConfigurationService);return this.parseEnterResult(e,t,i,o,r)}{let n=o-1;for(;n>=1;){const t=e.getLineContent(n);if(ii.ow(t)>=0)break;n--}if(n<1||o>e.getLineCount())return null;const s=e.getLineMaxColumn(n),r=(0,ov.A)(this._autoIndent,e,new He.e(n,s,n,s),this._languageConfigurationService);return this.parseEnterResult(e,t,i,o,r)}}matchEnterRule(e,t,i,o,n,s){let r=n;for(;r>=1;){let t;t=r===n&&void 0!==s?s:e.getLineContent(r);if(ii.ow(t)>=0)break;r--}if(r<1||o>e.getLineCount())return null;const a=e.getLineMaxColumn(r),l=(0,ov.A)(this._autoIndent,e,new He.e(r,a,r,a),this._languageConfigurationService);return this.parseEnterResult(e,t,i,o,l)}trimStart(e){return e.replace(/^\s+/,"")}shouldAutoIndent(e,t){if(this._autoIndent<4)return!1;if(!e.tokenization.isCheapToTokenize(t.startLineNumber))return!1;const i=e.getLanguageIdAtPosition(t.startLineNumber,1);return i===e.getLanguageIdAtPosition(t.endLineNumber,1)&&null!==this._languageConfigurationService.getLanguageConfiguration(i).indentRulesSupport}getIndentEditsOfMovingBlock(e,t,i,o,n,s){for(let r=i.startLineNumber;r<=i.endLineNumber;r++){const a=e.getLineContent(r),l=ii.V8(a),d=rf(sf(l,o)+s,o,n);d!==l&&(t.addEditOperation(new He.e(r,1,r,l.length+1),d),r===i.endLineNumber&&i.endColumn<=l.length+1&&""===d&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(i=i.setEndPosition(i.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&i.startLineNumber<i.endLineNumber&&(i=i.setEndPosition(i.endLineNumber,2)),i}};rv=nv([sv(3,Xn.c_)],rv);class av{static getCollator(){return av._COLLATOR||(av._COLLATOR=new Intl.Collator),av._COLLATOR}constructor(e,t){this.selection=e,this.descending=t,this.selectionId=null}getEditOperations(e,t){const i=function(e,t,i){const o=lv(e,t,i);if(!o)return null;return Yd.h.replace(new He.e(o.startLineNumber,1,o.endLineNumber,e.getLineMaxColumn(o.endLineNumber)),o.after.join("\n"))}(e,this.selection,this.descending);i&&t.addEditOperation(i.range,i.text),this.selectionId=t.trackSelection(this.selection)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}static canRun(e,t,i){if(null===e)return!1;const o=lv(e,t,i);if(!o)return!1;for(let n=0,s=o.before.length;n<s;n++)if(o.before[n]!==o.after[n])return!0;return!1}}function lv(e,t,i){const o=t.startLineNumber;let n=t.endLineNumber;if(1===t.endColumn&&n--,o>=n)return null;const s=[];for(let a=o;a<=n;a++)s.push(e.getLineContent(a));let r=s.slice(0);return r.sort(av.getCollator().compare),!0===i&&(r=r.reverse()),{startLineNumber:o,endLineNumber:n,before:s,after:r}}av._COLLATOR=null;class dv extends ee.R6{constructor(e,t){super(t),this.down=e}run(e,t){if(!t.hasModel())return;const i=t.getSelections().map(((e,t)=>({selection:e,index:t,ignore:!1})));i.sort(((e,t)=>He.e.compareRangesUsingStarts(e.selection,t.selection)));let o=i[0];for(let s=1;s<i.length;s++){const e=i[s];o.selection.endLineNumber===e.selection.startLineNumber&&(o.index<e.index?e.ignore=!0:(o.ignore=!0,o=e))}const n=[];for(const s of i)n.push(new tv(s.selection,this.down,s.ignore));t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}class cv extends ee.R6{constructor(){super({id:"editor.action.duplicateSelection",label:ne.NC("duplicateSelection","Duplicate Selection"),alias:"Duplicate Selection",precondition:oe.u.writable,menuOpts:{menuId:se.eH.MenubarSelectionMenu,group:"2_line",title:ne.NC({key:"miDuplicateSelection",comment:["&& denotes a mnemonic"]},"&&Duplicate Selection"),order:5}})}run(e,t,i){if(!t.hasModel())return;const o=[],n=t.getSelections(),s=t.getModel();for(const r of n)if(r.isEmpty())o.push(new tv(r,!0));else{const e=new ke.Y(r.endLineNumber,r.endColumn,r.endLineNumber,r.endColumn);o.push(new $e.OY(e,s.getValueInRange(r)))}t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}class hv extends ee.R6{constructor(e,t){super(t),this.down=e}run(e,t){const i=e.get(Xn.c_),o=[],n=t.getSelections()||[],s=t.getOption(12);for(const r of n)o.push(new rv(r,this.down,s,i));t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}class uv extends ee.R6{constructor(e,t){super(t),this.descending=e}run(e,t){if(!t.hasModel())return;const i=t.getModel();let o=t.getSelections();1===o.length&&o[0].isEmpty()&&(o=[new ke.Y(1,1,i.getLineCount(),i.getLineMaxColumn(i.getLineCount()))]);for(const s of o)if(!av.canRun(t.getModel(),s,this.descending))return;const n=[];for(let s=0,r=o.length;s<r;s++)n[s]=new av(o[s],this.descending);t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}class gv extends ee.R6{constructor(){super({id:"editor.action.removeDuplicateLines",label:ne.NC("lines.deleteDuplicates","Delete Duplicate Lines"),alias:"Delete Duplicate Lines",precondition:oe.u.writable})}run(e,t){if(!t.hasModel())return;const i=t.getModel();if(1===i.getLineCount()&&1===i.getLineMaxColumn(1))return;const o=[],n=[];let s=0,r=!0,a=t.getSelections();1===a.length&&a[0].isEmpty()&&(a=[new ke.Y(1,1,i.getLineCount(),i.getLineMaxColumn(i.getLineCount()))],r=!1);for(const l of a){const e=new Set,t=[];for(let o=l.startLineNumber;o<=l.endLineNumber;o++){const n=i.getLineContent(o);e.has(n)||(t.push(n),e.add(n))}const r=new ke.Y(l.startLineNumber,1,l.endLineNumber,i.getLineMaxColumn(l.endLineNumber)),a=l.startLineNumber-s,d=new ke.Y(a,1,a+t.length-1,t[t.length-1].length);o.push(Yd.h.replace(r,t.join("\n"))),n.push(d),s+=l.endLineNumber-l.startLineNumber+1-t.length}t.pushUndoStop(),t.executeEdits(this.id,o,r?n:void 0),t.pushUndoStop()}}class pv extends ee.R6{constructor(){super({id:pv.ID,label:ne.NC("lines.trimTrailingWhitespace","Trim Trailing Whitespace"),alias:"Trim Trailing Whitespace",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:(0,Le.gx)(2089,2102),weight:100}})}run(e,t,i){let o=[];"auto-save"===i.reason&&(o=(t.getSelections()||[]).map((e=>new We.L(e.positionLineNumber,e.positionColumn))));const n=t.getSelection();if(null===n)return;const s=e.get(re.Ui),r=t.getModel(),a=s.getValue("files.trimTrailingWhitespaceInRegexAndStrings",{overrideIdentifier:null===r||void 0===r?void 0:r.getLanguageId(),resource:null===r||void 0===r?void 0:r.uri}),l=new Xf(n,o,a);t.pushUndoStop(),t.executeCommands(this.id,[l]),t.pushUndoStop()}}pv.ID="editor.action.trimTrailingWhitespace";class mv extends ee.R6{constructor(){super({id:"editor.action.deleteLines",label:ne.NC("lines.delete","Delete Line"),alias:"Delete Line",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.textInputFocus,primary:3113,weight:100}})}run(e,t){if(!t.hasModel())return;const i=this._getLinesToRemove(t),o=t.getModel();if(1===o.getLineCount()&&1===o.getLineMaxColumn(1))return;let n=0;const s=[],r=[];for(let a=0,l=i.length;a<l;a++){const e=i[a];let t=e.startLineNumber,l=e.endLineNumber,d=1,c=o.getLineMaxColumn(l);l<o.getLineCount()?(l+=1,c=1):t>1&&(t-=1,d=o.getLineMaxColumn(t)),s.push(Yd.h.replace(new ke.Y(t,d,l,c),"")),r.push(new ke.Y(t-n,e.positionColumn,t-n,e.positionColumn)),n+=e.endLineNumber-e.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,s,r),t.pushUndoStop()}_getLinesToRemove(e){const t=e.getSelections().map((e=>{let 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(((e,t)=>e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber));const i=[];let o=t[0];for(let n=1;n<t.length;n++)o.endLineNumber+1>=t[n].startLineNumber?o.endLineNumber=t[n].endLineNumber:(i.push(o),o=t[n]);return i.push(o),i}}class _v extends ee.R6{constructor(){super({id:"editor.action.indentLines",label:ne.NC("lines.indent","Indent Line"),alias:"Indent Line",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:2142,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,ev.u6.indent(i.cursorConfig,t.getModel(),t.getSelections())),t.pushUndoStop())}}class fv extends ee.R6{constructor(){super({id:"editor.action.outdentLines",label:ne.NC("lines.outdent","Outdent Line"),alias:"Outdent Line",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:2140,weight:100}})}run(e,t){Y.wk.Outdent.runEditorCommand(e,t,null)}}class vv extends ee.R6{constructor(){super({id:"editor.action.insertLineBefore",label:ne.NC("lines.insertBefore","Insert Line Above"),alias:"Insert Line Above",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:3075,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,ev.u6.lineInsertBefore(i.cursorConfig,t.getModel(),t.getSelections())))}}class bv extends ee.R6{constructor(){super({id:"editor.action.insertLineAfter",label:ne.NC("lines.insertAfter","Insert Line Below"),alias:"Insert Line Below",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:2051,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,ev.u6.lineInsertAfter(i.cursorConfig,t.getModel(),t.getSelections())))}}class Cv extends ee.R6{run(e,t){if(!t.hasModel())return;const i=t.getSelection(),o=this._getRangesToDelete(t),n=[];for(let a=0,l=o.length-1;a<l;a++){const e=o[a],t=o[a+1];null===He.e.intersectRanges(e,t)?n.push(e):o[a+1]=He.e.plusRange(e,t)}n.push(o[o.length-1]);const s=this._getEndCursorState(i,n),r=n.map((e=>Yd.h.replace(e,"")));t.pushUndoStop(),t.executeEdits(this.id,r,s),t.pushUndoStop()}}class Sv extends ee.R6{constructor(){super({id:"editor.action.joinLines",label:ne.NC("lines.joinLines","Join Lines"),alias:"Join Lines",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}run(e,t){const i=t.getSelections();if(null===i)return;let o=t.getSelection();if(null===o)return;i.sort(He.e.compareRangesUsingStarts);const n=[],s=i.reduce(((e,t)=>e.isEmpty()?e.endLineNumber===t.startLineNumber?(o.equalsSelection(e)&&(o=t),t):t.startLineNumber>e.endLineNumber+1?(n.push(e),t):new ke.Y(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn):t.startLineNumber>e.endLineNumber?(n.push(e),t):new ke.Y(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn)));n.push(s);const r=t.getModel();if(null===r)return;const a=[],l=[];let d=o,c=0;for(let h=0,u=n.length;h<u;h++){const e=n[h],t=e.startLineNumber,i=1;let s,u,g=0;const p=r.getLineLength(e.endLineNumber)-e.endColumn;if(e.isEmpty()||e.startLineNumber===e.endLineNumber){const i=e.getStartPosition();i.lineNumber<r.getLineCount()?(s=t+1,u=r.getLineMaxColumn(s)):(s=i.lineNumber,u=r.getLineMaxColumn(i.lineNumber))}else s=e.endLineNumber,u=r.getLineMaxColumn(s);let m=r.getLineContent(t);for(let o=t+1;o<=s;o++){const e=r.getLineContent(o),t=r.getLineFirstNonWhitespaceColumn(o);if(t>=1){let i=!0;""===m&&(i=!1),!i||" "!==m.charAt(m.length-1)&&"\t"!==m.charAt(m.length-1)||(i=!1,m=m.replace(/[\s\uFEFF\xA0]+$/g," "));const o=e.substr(t-1);m+=(i?" ":"")+o,g=i?o.length+1:o.length}else g=0}const _=new He.e(t,i,s,u);if(!_.isEmpty()){let i;e.isEmpty()?(a.push(Yd.h.replace(_,m)),i=new ke.Y(_.startLineNumber-c,m.length-g+1,t-c,m.length-g+1)):e.startLineNumber===e.endLineNumber?(a.push(Yd.h.replace(_,m)),i=new ke.Y(e.startLineNumber-c,e.startColumn,e.endLineNumber-c,e.endColumn)):(a.push(Yd.h.replace(_,m)),i=new ke.Y(e.startLineNumber-c,e.startColumn,e.startLineNumber-c,m.length-p)),null!==He.e.intersectRanges(_,o)?d=i:l.push(i)}c+=_.endLineNumber-_.startLineNumber}l.unshift(d),t.pushUndoStop(),t.executeEdits(this.id,a,l),t.pushUndoStop()}}class yv extends ee.R6{constructor(){super({id:"editor.action.transpose",label:ne.NC("editor.transpose","Transpose Characters around the Cursor"),alias:"Transpose Characters around the Cursor",precondition:oe.u.writable})}run(e,t){const i=t.getSelections();if(null===i)return;const o=t.getModel();if(null===o)return;const n=[];for(let s=0,r=i.length;s<r;s++){const e=i[s];if(!e.isEmpty())continue;const t=e.getStartPosition(),r=o.getLineMaxColumn(t.lineNumber);if(t.column>=r){if(t.lineNumber===o.getLineCount())continue;const e=new He.e(t.lineNumber,Math.max(1,t.column-1),t.lineNumber+1,1),i=o.getValueInRange(e).split("").reverse().join("");n.push(new $e.T4(new ke.Y(t.lineNumber,Math.max(1,t.column-1),t.lineNumber+1,1),i))}else{const e=new He.e(t.lineNumber,Math.max(1,t.column-1),t.lineNumber,t.column+1),i=o.getValueInRange(e).split("").reverse().join("");n.push(new $e.hP(e,i,new ke.Y(t.lineNumber,t.column+1,t.lineNumber,t.column+1)))}}t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}class wv extends ee.R6{run(e,t){const i=t.getSelections();if(null===i)return;const o=t.getModel();if(null===o)return;const n=t.getOption(131),s=[];for(const r of i)if(r.isEmpty()){const e=r.getStartPosition(),i=t.getConfiguredWordAtPosition(e);if(!i)continue;const a=new He.e(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn),l=o.getValueInRange(a);s.push(Yd.h.replace(a,this._modifyText(l,n)))}else{const e=o.getValueInRange(r);s.push(Yd.h.replace(r,this._modifyText(e,n)))}t.pushUndoStop(),t.executeEdits(this.id,s),t.pushUndoStop()}}class xv{constructor(e,t){this._pattern=e,this._flags=t,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch(e){}}return this._actual}isSupported(){return null!==this.get()}}class Nv extends wv{constructor(){super({id:"editor.action.transformToTitlecase",label:ne.NC("editor.transformToTitlecase","Transform to Title Case"),alias:"Transform to Title Case",precondition:oe.u.writable})}_modifyText(e,t){const i=Nv.titleBoundary.get();return i?e.toLocaleLowerCase().replace(i,(e=>e.toLocaleUpperCase())):e}}Nv.titleBoundary=new xv("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu");class Lv extends wv{constructor(){super({id:"editor.action.transformToSnakecase",label:ne.NC("editor.transformToSnakecase","Transform to Snake Case"),alias:"Transform to Snake Case",precondition:oe.u.writable})}_modifyText(e,t){const i=Lv.caseBoundary.get(),o=Lv.singleLetters.get();return i&&o?e.replace(i,"$1_$2").replace(o,"$1_$2$3").toLocaleLowerCase():e}}Lv.caseBoundary=new xv("(\\p{Ll})(\\p{Lu})","gmu"),Lv.singleLetters=new xv("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu");class kv extends wv{constructor(){super({id:"editor.action.transformToCamelcase",label:ne.NC("editor.transformToCamelcase","Transform to Camel Case"),alias:"Transform to Camel Case",precondition:oe.u.writable})}_modifyText(e,t){const i=kv.wordBoundary.get();if(!i)return e;const o=e.split(i);return o.shift()+o.map((e=>e.substring(0,1).toLocaleUpperCase()+e.substring(1))).join("")}}kv.wordBoundary=new xv("[_\\s-]","gm");class Dv extends wv{constructor(){super({id:"editor.action.transformToPascalcase",label:ne.NC("editor.transformToPascalcase","Transform to Pascal Case"),alias:"Transform to Pascal Case",precondition:oe.u.writable})}_modifyText(e,t){const i=Dv.wordBoundary.get(),o=Dv.wordBoundaryToMaintain.get();if(!i||!o)return e;return e.split(o).map((e=>e.split(i))).flat().map((e=>e.substring(0,1).toLocaleUpperCase()+e.substring(1))).join("")}}Dv.wordBoundary=new xv("[_\\s-]","gm"),Dv.wordBoundaryToMaintain=new xv("(?<=\\.)","gm");class Iv extends wv{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every((e=>e.isSupported()))}constructor(){super({id:"editor.action.transformToKebabcase",label:ne.NC("editor.transformToKebabcase","Transform to Kebab Case"),alias:"Transform to Kebab Case",precondition:oe.u.writable})}_modifyText(e,t){const i=Iv.caseBoundary.get(),o=Iv.singleLetters.get(),n=Iv.underscoreBoundary.get();return i&&o&&n?e.replace(n,"$1-$3").replace(i,"$1-$2").replace(o,"$1-$2").toLocaleLowerCase():e}}Iv.caseBoundary=new xv("(\\p{Ll})(\\p{Lu})","gmu"),Iv.singleLetters=new xv("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu"),Iv.underscoreBoundary=new xv("(\\S)(_)(\\S)","gm"),(0,ee.Qr)(class extends dv{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:ne.NC("lines.copyUp","Copy Line Up"),alias:"Copy Line Up",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:se.eH.MenubarSelectionMenu,group:"2_line",title:ne.NC({key:"miCopyLinesUp",comment:["&& denotes a mnemonic"]},"&&Copy Line Up"),order:1}})}}),(0,ee.Qr)(class extends dv{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:ne.NC("lines.copyDown","Copy Line Down"),alias:"Copy Line Down",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:se.eH.MenubarSelectionMenu,group:"2_line",title:ne.NC({key:"miCopyLinesDown",comment:["&& denotes a mnemonic"]},"Co&&py Line Down"),order:2}})}}),(0,ee.Qr)(cv),(0,ee.Qr)(class extends hv{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:ne.NC("lines.moveUp","Move Line Up"),alias:"Move Line Up",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:se.eH.MenubarSelectionMenu,group:"2_line",title:ne.NC({key:"miMoveLinesUp",comment:["&& denotes a mnemonic"]},"Mo&&ve Line Up"),order:3}})}}),(0,ee.Qr)(class extends hv{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:ne.NC("lines.moveDown","Move Line Down"),alias:"Move Line Down",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:se.eH.MenubarSelectionMenu,group:"2_line",title:ne.NC({key:"miMoveLinesDown",comment:["&& denotes a mnemonic"]},"Move &&Line Down"),order:4}})}}),(0,ee.Qr)(class extends uv{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:ne.NC("lines.sortAscending","Sort Lines Ascending"),alias:"Sort Lines Ascending",precondition:oe.u.writable})}}),(0,ee.Qr)(class extends uv{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:ne.NC("lines.sortDescending","Sort Lines Descending"),alias:"Sort Lines Descending",precondition:oe.u.writable})}}),(0,ee.Qr)(gv),(0,ee.Qr)(pv),(0,ee.Qr)(mv),(0,ee.Qr)(_v),(0,ee.Qr)(fv),(0,ee.Qr)(vv),(0,ee.Qr)(bv),(0,ee.Qr)(class extends Cv{constructor(){super({id:"deleteAllLeft",label:ne.NC("lines.deleteAllLeft","Delete All Left"),alias:"Delete All Left",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}_getEndCursorState(e,t){let i=null;const o=[];let n=0;return t.forEach((t=>{let s;if(1===t.endColumn&&n>0){const e=t.startLineNumber-n;s=new ke.Y(e,t.startColumn,e,t.startColumn)}else s=new ke.Y(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn);n+=t.endLineNumber-t.startLineNumber,t.intersectRanges(e)?i=s:o.push(s)})),i&&o.unshift(i),o}_getRangesToDelete(e){const t=e.getSelections();if(null===t)return[];let i=t;const o=e.getModel();return null===o?[]:(i.sort(He.e.compareRangesUsingStarts),i=i.map((e=>{if(e.isEmpty()){if(1===e.startColumn){const t=Math.max(1,e.startLineNumber-1),i=1===e.startLineNumber?1:o.getLineLength(t)+1;return new He.e(t,i,e.startLineNumber,1)}return new He.e(e.startLineNumber,1,e.startLineNumber,e.startColumn)}return new He.e(e.startLineNumber,1,e.endLineNumber,e.endColumn)})),i)}}),(0,ee.Qr)(class extends Cv{constructor(){super({id:"deleteAllRight",label:ne.NC("lines.deleteAllRight","Delete All Right"),alias:"Delete All Right",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}_getEndCursorState(e,t){let i=null;const o=[];for(let n=0,s=t.length,r=0;n<s;n++){const s=t[n],a=new ke.Y(s.startLineNumber-r,s.startColumn,s.startLineNumber-r,s.startColumn);s.intersectRanges(e)?i=a:o.push(a)}return i&&o.unshift(i),o}_getRangesToDelete(e){const t=e.getModel();if(null===t)return[];const i=e.getSelections();if(null===i)return[];const o=i.map((e=>{if(e.isEmpty()){const i=t.getLineMaxColumn(e.startLineNumber);return e.startColumn===i?new He.e(e.startLineNumber,e.startColumn,e.startLineNumber+1,1):new He.e(e.startLineNumber,e.startColumn,e.startLineNumber,i)}return e}));return o.sort(He.e.compareRangesUsingStarts),o}}),(0,ee.Qr)(Sv),(0,ee.Qr)(yv),(0,ee.Qr)(class extends wv{constructor(){super({id:"editor.action.transformToUppercase",label:ne.NC("editor.transformToUppercase","Transform to Uppercase"),alias:"Transform to Uppercase",precondition:oe.u.writable})}_modifyText(e,t){return e.toLocaleUpperCase()}}),(0,ee.Qr)(class extends wv{constructor(){super({id:"editor.action.transformToLowercase",label:ne.NC("editor.transformToLowercase","Transform to Lowercase"),alias:"Transform to Lowercase",precondition:oe.u.writable})}_modifyText(e,t){return e.toLocaleLowerCase()}}),Lv.caseBoundary.isSupported()&&Lv.singleLetters.isSupported()&&(0,ee.Qr)(Lv),kv.wordBoundary.isSupported()&&(0,ee.Qr)(kv),Dv.wordBoundary.isSupported()&&(0,ee.Qr)(Dv),Nv.titleBoundary.isSupported()&&(0,ee.Qr)(Nv),Iv.isSupported()&&(0,ee.Qr)(Iv);var Rv,Pv=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Mv=function(e,t){return function(i,o){t(i,o,e)}};const Tv=new ae.uy("LinkedEditingInputVisible",!1);let Ev=Rv=class extends Fe.JT{static get(e){return e.getContribution(Rv.ID)}constructor(e,t,i,o,n){super(),this.languageConfigurationService=o,this._syncRangesToken=0,this._localToDispose=this._register(new Fe.SL),this._editor=e,this._providers=i.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=Tv.bindTo(t),this._debounceInformation=n.for(this._providers,"Linked Editing",{max:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new Fe.SL),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequestCts=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel((()=>this.reinitialize(!0)))),this._register(this._editor.onDidChangeConfiguration((e=>{(e.hasChanged(70)||e.hasChanged(93))&&this.reinitialize(!1)}))),this._register(this._providers.onDidChange((()=>this.reinitialize(!1)))),this._register(this._editor.onDidChangeModelLanguage((()=>this.reinitialize(!0)))),this.reinitialize(!0)}reinitialize(e){const t=this._editor.getModel(),i=null!==t&&(this._editor.getOption(70)||this._editor.getOption(93))&&this._providers.has(t);if(i===this._enabled&&!e)return;if(this._enabled=i,this.clearRanges(),this._localToDispose.clear(),!i||null===t)return;this._localToDispose.add(ui.ju.runAndSubscribe(t.onDidChangeLanguageConfiguration,(()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(t.getLanguageId()).getWordDefinition()})));const o=new Oe.vp(this._debounceInformation.get(t)),n=()=>{var e;this._rangeUpdateTriggerPromise=o.trigger((()=>this.updateRanges()),null!==(e=this._debounceDuration)&&void 0!==e?e:this._debounceInformation.get(t))},s=new Oe.vp(0),r=e=>{this._rangeSyncTriggerPromise=s.trigger((()=>this._syncRanges(e)))};this._localToDispose.add(this._editor.onDidChangeCursorPosition((()=>{n()}))),this._localToDispose.add(this._editor.onDidChangeModelContent((e=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const t=this._currentDecorations.getRange(0);if(t&&e.changes.every((e=>t.intersectRanges(e.range))))return void r(this._syncRangesToken)}n()}))),this._localToDispose.add({dispose:()=>{o.dispose(),s.dispose()}}),this.updateRanges()}_syncRanges(e){if(!this._editor.hasModel()||e!==this._syncRangesToken||0===this._currentDecorations.length)return;const t=this._editor.getModel(),i=this._currentDecorations.getRange(0);if(!i||i.startLineNumber!==i.endLineNumber)return this.clearRanges();const o=t.getValueInRange(i);if(this._currentWordPattern){const e=o.match(this._currentWordPattern);if((e?e[0].length:0)!==o.length)return this.clearRanges()}const n=[];for(let s=1,r=this._currentDecorations.length;s<r;s++){const e=this._currentDecorations.getRange(s);if(e)if(e.startLineNumber!==e.endLineNumber)n.push({range:e,text:o});else{let i=t.getValueInRange(e),s=o,r=e.startColumn,a=e.endColumn;const l=ii.Mh(i,s);r+=l,i=i.substr(l),s=s.substr(l);const d=ii.P1(i,s);a-=d,i=i.substr(0,i.length-d),s=s.substr(0,s.length-d),r===a&&0===s.length||n.push({range:new He.e(e.startLineNumber,r,e.endLineNumber,a),text:s})}}if(0!==n.length)try{this._editor.popUndoStop(),this._ignoreChangeEvent=!0;const e=this._editor._getViewModel().getPrevEditOperationType();this._editor.executeEdits("linkedEditing",n),this._editor._getViewModel().setPrevEditOperationType(e)}finally{this._ignoreChangeEvent=!1}}dispose(){this.clearRanges(),super.dispose()}clearRanges(){this._visibleContextKey.set(!1),this._currentDecorations.clear(),this._currentRequestCts&&(this._currentRequestCts.cancel(),this._currentRequestCts=null,this._currentRequestPosition=null)}async updateRanges(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this._editor.hasModel())return void this.clearRanges();const t=this._editor.getPosition();if(!this._enabled&&!e||this._editor.getSelections().length>1)return void this.clearRanges();const i=this._editor.getModel(),o=i.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===o){if(t.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const e=this._currentDecorations.getRange(0);if(e&&e.containsPosition(t))return}}this.clearRanges(),this._currentRequestPosition=t,this._currentRequestModelVersion=o;const n=this._currentRequestCts=new Yi.A;try{const e=new Yn.G(!1),s=await Fv(this._providers,i,t,n.token);if(this._debounceInformation.update(i,e.elapsed()),n!==this._currentRequestCts)return;if(this._currentRequestCts=null,o!==i.getVersionId())return;let r=[];(null===s||void 0===s?void 0:s.ranges)&&(r=s.ranges),this._currentWordPattern=(null===s||void 0===s?void 0:s.wordPattern)||this._languageWordPattern;let a=!1;for(let i=0,o=r.length;i<o;i++)if(He.e.containsPosition(r[i],t)){if(a=!0,0!==i){const e=r[i];r.splice(i,1),r.unshift(e)}break}if(!a)return void this.clearRanges();const l=r.map((e=>({range:e,options:Rv.DECORATION})));this._visibleContextKey.set(!0),this._currentDecorations.set(l),this._syncRangesToken++}catch(s){(0,Ji.n2)(s)||(0,Ji.dL)(s),this._currentRequestCts!==n&&this._currentRequestCts||this.clearRanges()}}};Ev.ID="editor.contrib.linkedEditing",Ev.DECORATION=Be.qx.register({description:"linked-editing",stickiness:0,className:"linked-editing-decoration"}),Ev=Rv=Pv([Mv(1,ae.i6),Mv(2,kt.p),Mv(3,Xn.c_),Mv(4,jn.A)],Ev);class Av extends ee.R6{constructor(){super({id:"editor.action.linkedEditing",label:ne.NC("linkedEditing.label","Start Linked Editing"),alias:"Start Linked Editing",precondition:ae.Ao.and(oe.u.writable,oe.u.hasRenameProvider),kbOpts:{kbExpr:oe.u.editorTextFocus,primary:3132,weight:100}})}runCommand(e,t){const i=e.get(te.$),[o,n]=Array.isArray(t)&&t||[void 0,void 0];return _t.o.isUri(o)&&We.L.isIPosition(n)?i.openCodeEditor({resource:o},i.getActiveCodeEditor()).then((e=>{e&&(e.setPosition(n),e.invokeWithinContext((t=>(this.reportTelemetry(t,e),this.run(t,e)))))}),Ji.dL):super.runCommand(e,t)}run(e,t){const i=Ev.get(t);return i?Promise.resolve(i.updateRanges(!0)):Promise.resolve()}}const Ov=ee._l.bindToContribution(Ev.get);function Fv(e,t,i,o){const n=e.ordered(t);return(0,Oe.Ps)(n.map((e=>async()=>{try{return await e.provideLinkedEditingRanges(t,i,o)}catch(n){return void(0,Ji.Cp)(n)}})),(e=>!!e&&nt.Of(null===e||void 0===e?void 0:e.ranges)))}(0,ee.fK)(new Ov({id:"cancelLinkedEditingInput",precondition:Tv,handler:e=>e.clearRanges(),kbOpts:{kbExpr:oe.u.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));(0,ze.P6G)("editor.linkedEditingBackground",{dark:Zn.Il.fromHex("#f00").transparent(.3),light:Zn.Il.fromHex("#f00").transparent(.3),hcDark:Zn.Il.fromHex("#f00").transparent(.3),hcLight:Zn.Il.white},ne.NC("editorLinkedEditingBackground","Background color when the editor auto renames on type."));(0,ee.sb)("_executeLinkedEditingProvider",((e,t,i)=>{const{linkedEditingRangeProvider:o}=e.get(kt.p);return Fv(o,t,i,Yi.T.None)})),(0,ee._K)(Ev.ID,Ev,1),(0,ee.Qr)(Av);class Wv{constructor(e,t){this._link=e,this._provider=t}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(e){return this._link.url?this._link.url:"function"===typeof this._provider.resolveLink?Promise.resolve(this._provider.resolveLink(this._link,e)).then((t=>(this._link=t||this._link,this._link.url?this.resolve(e):Promise.reject(new Error("missing"))))):Promise.reject(new Error("missing"))}}class Hv{constructor(e){this._disposables=new Fe.SL;let t=[];for(const[i,o]of e){const e=i.links.map((e=>new Wv(e,o)));t=Hv._union(t,e),(0,Fe.Wf)(i)&&this._disposables.add(i)}this.links=t}dispose(){this._disposables.dispose(),this.links.length=0}static _union(e,t){const i=[];let o,n,s,r;for(o=0,s=0,n=e.length,r=t.length;o<n&&s<r;){const n=e[o],r=t[s];if(He.e.areIntersectingOrTouching(n.range,r.range)){o++;continue}He.e.compareRangesUsingStarts(n.range,r.range)<0?(i.push(n),o++):(i.push(r),s++)}for(;o<n;o++)i.push(e[o]);for(;s<r;s++)i.push(t[s]);return i}}function Vv(e,t,i){const o=[],n=e.ordered(t).reverse().map(((e,n)=>Promise.resolve(e.provideLinks(t,i)).then((t=>{t&&(o[n]=[t,e])}),Ji.Cp)));return Promise.all(n).then((()=>{const e=new Hv((0,nt.kX)(o));return i.isCancellationRequested?(e.dispose(),new Hv([])):e}))}ye.P.registerCommand("_executeLinkProvider",(async function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];let[n,s]=i;(0,Dn.p_)(n instanceof _t.o),"number"!==typeof s&&(s=0);const{linkProvider:r}=e.get(kt.p),a=e.get($i.q).getModel(n);if(!a)return[];const l=await Vv(r,a,Yi.T.None);if(!l)return[];for(let c=0;c<Math.min(s,l.links.length);c++)await l.links[c].resolve(Yi.T.None);const d=l.links.slice(0);return l.dispose(),d}));var Bv,zv=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Uv=function(e,t){return function(i,o){t(i,o,e)}};let Kv=Bv=class extends Fe.JT{static get(e){return e.getContribution(Bv.ID)}constructor(e,t,i,o,n){super(),this.editor=e,this.openerService=t,this.notificationService=i,this.languageFeaturesService=o,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=n.for(this.providers,"Links",{min:1e3,max:4e3}),this.computeLinks=this._register(new Oe.pY((()=>this.computeLinksNow()),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const s=this._register(new Ys(e));this._register(s.onMouseMoveOrRelevantKeyDown((e=>{let[t,i]=e;this._onEditorMouseMove(t,i)}))),this._register(s.onExecute((e=>{this.onEditorMouseUp(e)}))),this._register(s.onCancel((e=>{this.cleanUpActiveLinkDecoration()}))),this._register(e.onDidChangeConfiguration((e=>{e.hasChanged(71)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))}))),this._register(e.onDidChangeModelContent((e=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))}))),this._register(e.onDidChangeModel((e=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)}))),this._register(e.onDidChangeModelLanguage((e=>{this.stop(),this.computeLinks.schedule(0)}))),this._register(this.providers.onDidChange((e=>{this.stop(),this.computeLinks.schedule(0)}))),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(71))return;const e=this.editor.getModel();if(!e.isTooLargeForSyncing()&&this.providers.has(e)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=(0,Oe.PG)((t=>Vv(this.providers,e,t)));try{const t=new Yn.G(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(e,t.elapsed()),e.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(t){(0,Ji.dL)(t)}finally{this.computePromise=null}}}updateDecorations(e){const t="altKey"===this.editor.getOption(78),i=[],o=Object.keys(this.currentOccurrences);for(const s of o){const e=this.currentOccurrences[s];i.push(e.decorationId)}const n=[];if(e)for(const s of e)n.push(Gv.decoration(s,t));this.editor.changeDecorations((t=>{const o=t.deltaDecorations(i,n);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let i=0,n=o.length;i<n;i++){const t=new Gv(e[i],o[i]);this.currentOccurrences[t.decorationId]=t}}))}_onEditorMouseMove(e,t){const i="altKey"===this.editor.getOption(78);if(this.isEnabled(e,t)){this.cleanUpActiveLinkDecoration();const t=this.getLinkOccurrence(e.target.position);t&&this.editor.changeDecorations((e=>{t.activate(e,i),this.activeLinkDecorationId=t.decorationId}))}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const e="altKey"===this.editor.getOption(78);if(this.activeLinkDecorationId){const t=this.currentOccurrences[this.activeLinkDecorationId];t&&this.editor.changeDecorations((i=>{t.deactivate(i,e)})),this.activeLinkDecorationId=null}}onEditorMouseUp(e){if(!this.isEnabled(e))return;const t=this.getLinkOccurrence(e.target.position);t&&this.openLinkOccurrence(t,e.hasSideBySideModifier,!0)}openLinkOccurrence(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!this.openerService)return;const{link:o}=e;o.resolve(Yi.T.None).then((e=>{if("string"===typeof e&&this.editor.hasModel()){const t=this.editor.getModel().uri;if(t.scheme===Dt.lg.file&&e.startsWith("".concat(Dt.lg.file,":"))){const i=_t.o.parse(e);if(i.scheme===Dt.lg.file){const o=It.z_(i);let n=null;o.startsWith("/./")||o.startsWith("\\.\\")?n=".".concat(o.substr(1)):(o.startsWith("//./")||o.startsWith("\\\\.\\"))&&(n=".".concat(o.substr(2))),n&&(e=It.Vo(t,n))}}}return this.openerService.open(e,{openToSide:t,fromUserGesture:i,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})}),(e=>{const t=e instanceof Error?e.message:e;"invalid"===t?this.notificationService.warn(ne.NC("invalid.url","Failed to open this link because it is not well-formed: {0}",o.url.toString())):"missing"===t?this.notificationService.warn(ne.NC("missing.url","Failed to open this link because its target is missing.")):(0,Ji.dL)(e)}))}getLinkOccurrence(e){if(!this.editor.hasModel()||!e)return null;const t=this.editor.getModel().getDecorationsInRange({startLineNumber:e.lineNumber,startColumn:e.column,endLineNumber:e.lineNumber,endColumn:e.column},0,!0);for(const i of t){const e=this.currentOccurrences[i.id];if(e)return e}return null}isEnabled(e,t){return Boolean(6===e.target.type&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey))}stop(){var e;this.computeLinks.cancel(),this.activeLinksList&&(null===(e=this.activeLinksList)||void 0===e||e.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}};Kv.ID="editor.linkDetector",Kv=Bv=zv([Uv(1,pi.v),Uv(2,Xi.lT),Uv(3,kt.p),Uv(4,jn.A)],Kv);const jv=Be.qx.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),qv=Be.qx.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"});class Gv{static decoration(e,t){return{range:e.range,options:Gv._getOptions(e,t,!1)}}static _getOptions(e,t,i){const o={...i?qv:jv};return o.hoverMessage=function(e,t){const i=e.url&&/^command:/i.test(e.url.toString()),o=e.tooltip?e.tooltip:i?ne.NC("links.navigate.executeCmd","Execute command"):ne.NC("links.navigate.follow","Follow link"),n=t?it.dz?ne.NC("links.navigate.kb.meta.mac","cmd + click"):ne.NC("links.navigate.kb.meta","ctrl + click"):it.dz?ne.NC("links.navigate.kb.alt.mac","option + click"):ne.NC("links.navigate.kb.alt","alt + click");if(e.url){let t="";if(/^command:/i.test(e.url.toString())){const i=e.url.toString().match(/^command:([^?#]+)/);if(i){const e=i[1];t=ne.NC("tooltip.explanation","Execute command {0}",e)}}return new Ne.W5("",!0).appendLink(e.url.toString(!0).replace(/ /g,"%20"),o,t).appendMarkdown(" (".concat(n,")"))}return(new Ne.W5).appendText("".concat(o," (").concat(n,")"))}(e,t),o}constructor(e,t){this.link=e,this.decorationId=t}activate(e,t){e.changeDecorationOptions(this.decorationId,Gv._getOptions(this.link,t,!0))}deactivate(e,t){e.changeDecorationOptions(this.decorationId,Gv._getOptions(this.link,t,!1))}}class Qv extends ee.R6{constructor(){super({id:"editor.action.openLink",label:ne.NC("label","Open Link"),alias:"Open Link",precondition:void 0})}run(e,t){const i=Kv.get(t);if(!i)return;if(!t.hasModel())return;const o=t.getSelections();for(const n of o){const e=i.getLinkOccurrence(n.getEndPosition());e&&i.openLinkOccurrence(e,!1)}}}(0,ee._K)(Kv.ID,Kv,1),(0,ee.Qr)(Qv);class Zv extends Fe.JT{constructor(e){super(),this._editor=e,this._register(this._editor.onMouseDown((e=>{const t=this._editor.getOption(117);t>=0&&6===e.target.type&&e.target.position.column>=t&&this._editor.updateOptions({stopRenderingLineAfter:-1})})))}}Zv.ID="editor.contrib.longLinesHelper",(0,ee._K)(Zv.ID,Zv,2);const Yv=(0,ze.P6G)("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},ne.NC("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);(0,ze.P6G)("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},ne.NC("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),(0,ze.P6G)("editor.wordHighlightTextBackground",{light:Yv,dark:Yv,hcDark:Yv,hcLight:Yv},ne.NC("wordHighlightText","Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0);const Jv=(0,ze.P6G)("editor.wordHighlightBorder",{light:null,dark:null,hcDark:ze.xL1,hcLight:ze.xL1},ne.NC("wordHighlightBorder","Border color of a symbol during read-access, like reading a variable."));(0,ze.P6G)("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:ze.xL1,hcLight:ze.xL1},ne.NC("wordHighlightStrongBorder","Border color of a symbol during write-access, like writing to a variable.")),(0,ze.P6G)("editor.wordHighlightTextBorder",{light:Jv,dark:Jv,hcDark:Jv,hcLight:Jv},ne.NC("wordHighlightTextBorder","Border color of a textual occurrence for a symbol."));const $v=(0,ze.P6G)("editorOverviewRuler.wordHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},ne.NC("overviewRulerWordHighlightForeground","Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),Xv=(0,ze.P6G)("editorOverviewRuler.wordHighlightStrongForeground",{dark:"#C0A0C0CC",light:"#C0A0C0CC",hcDark:"#C0A0C0CC",hcLight:"#C0A0C0CC"},ne.NC("overviewRulerWordHighlightStrongForeground","Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),eb=(0,ze.P6G)("editorOverviewRuler.wordHighlightTextForeground",{dark:ze.SPM,light:ze.SPM,hcDark:ze.SPM,hcLight:ze.SPM},ne.NC("overviewRulerWordHighlightTextForeground","Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0),tb=Be.qx.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:(0,Ue.EN)(Xv),position:Ve.sh.Center},minimap:{color:(0,Ue.EN)(ze.IYc),position:1}}),ib=Be.qx.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:(0,Ue.EN)(eb),position:Ve.sh.Center},minimap:{color:(0,Ue.EN)(ze.IYc),position:1}}),ob=Be.qx.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:(0,Ue.EN)(ze.SPM),position:Ve.sh.Center},minimap:{color:(0,Ue.EN)(ze.IYc),position:1}}),nb=Be.qx.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),sb=Be.qx.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:(0,Ue.EN)($v),position:Ve.sh.Center},minimap:{color:(0,Ue.EN)(ze.IYc),position:1}});function rb(e){return e?nb:ob}(0,Ue.Ic)(((e,t)=>{const i=e.getColor(ze.Rzx);i&&t.addRule(".monaco-editor .selectionHighlight { background-color: ".concat(i.transparent(.5),"; }"))}));var ab,lb=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},db=function(e,t){return function(i,o){t(i,o,e)}};function cb(e,t){const i=t.filter((t=>!e.find((e=>e.equals(t)))));if(i.length>=1){const e=i.map((e=>"line ".concat(e.viewState.position.lineNumber," column ").concat(e.viewState.position.column))).join(", "),t=1===i.length?ne.NC("cursorAdded","Cursor added: {0}",e):ne.NC("cursorsAdded","Cursors added: {0}",e);(0,xe.i7)(t)}}class hb extends ee.R6{constructor(){super({id:"editor.action.insertCursorAbove",label:ne.NC("mutlicursor.insertAbove","Add Cursor Above"),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:se.eH.MenubarSelectionMenu,group:"3_multi",title:ne.NC({key:"miInsertCursorAbove",comment:["&& denotes a mnemonic"]},"&&Add Cursor Above"),order:2}})}run(e,t,i){if(!t.hasModel())return;let o=!0;i&&!1===i.logicalLine&&(o=!1);const n=t._getViewModel();if(n.cursorConfig.readOnly)return;n.model.pushStackElement();const s=n.getCursorStates();n.setCursorStates(i.source,3,Jf.P.addCursorUp(n,s,o)),n.revealTopMostCursor(i.source),cb(s,n.getCursorStates())}}class ub extends ee.R6{constructor(){super({id:"editor.action.insertCursorBelow",label:ne.NC("mutlicursor.insertBelow","Add Cursor Below"),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:se.eH.MenubarSelectionMenu,group:"3_multi",title:ne.NC({key:"miInsertCursorBelow",comment:["&& denotes a mnemonic"]},"A&&dd Cursor Below"),order:3}})}run(e,t,i){if(!t.hasModel())return;let o=!0;i&&!1===i.logicalLine&&(o=!1);const n=t._getViewModel();if(n.cursorConfig.readOnly)return;n.model.pushStackElement();const s=n.getCursorStates();n.setCursorStates(i.source,3,Jf.P.addCursorDown(n,s,o)),n.revealBottomMostCursor(i.source),cb(s,n.getCursorStates())}}class gb extends ee.R6{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:ne.NC("mutlicursor.insertAtEndOfEachLineSelected","Add Cursors to Line Ends"),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:se.eH.MenubarSelectionMenu,group:"3_multi",title:ne.NC({key:"miInsertCursorAtEndOfEachLineSelected",comment:["&& denotes a mnemonic"]},"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(e,t,i){if(!e.isEmpty()){for(let o=e.startLineNumber;o<e.endLineNumber;o++){const e=t.getLineMaxColumn(o);i.push(new ke.Y(o,e,o,e))}e.endColumn>1&&i.push(new ke.Y(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}}run(e,t){if(!t.hasModel())return;const i=t.getModel(),o=t.getSelections(),n=t._getViewModel(),s=n.getCursorStates(),r=[];o.forEach((e=>this.getCursorsForSelection(e,i,r))),r.length>0&&t.setSelections(r),cb(s,n.getCursorStates())}}class pb extends ee.R6{constructor(){super({id:"editor.action.addCursorsToBottom",label:ne.NC("mutlicursor.addCursorsToBottom","Add Cursors To Bottom"),alias:"Add Cursors To Bottom",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),o=t.getModel().getLineCount(),n=[];for(let a=i[0].startLineNumber;a<=o;a++)n.push(new ke.Y(a,i[0].startColumn,a,i[0].endColumn));const s=t._getViewModel(),r=s.getCursorStates();n.length>0&&t.setSelections(n),cb(r,s.getCursorStates())}}class mb extends ee.R6{constructor(){super({id:"editor.action.addCursorsToTop",label:ne.NC("mutlicursor.addCursorsToTop","Add Cursors To Top"),alias:"Add Cursors To Top",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),o=[];for(let r=i[0].startLineNumber;r>=1;r--)o.push(new ke.Y(r,i[0].startColumn,r,i[0].endColumn));const n=t._getViewModel(),s=n.getCursorStates();o.length>0&&t.setSelections(o),cb(s,n.getCursorStates())}}class _b{constructor(e,t,i){this.selections=e,this.revealRange=t,this.revealScrollType=i}}class fb{static create(e,t){if(!e.hasModel())return null;const i=t.getState();if(!e.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new fb(e,t,!1,i.searchString,i.wholeWord,i.matchCase,null);let o,n,s=!1;const r=e.getSelections();1===r.length&&r[0].isEmpty()?(s=!0,o=!0,n=!0):(o=i.wholeWord,n=i.matchCase);const a=e.getSelection();let l,d=null;if(a.isEmpty()){const t=e.getConfiguredWordAtPosition(a.getStartPosition());if(!t)return null;l=t.word,d=new ke.Y(a.startLineNumber,t.startColumn,a.startLineNumber,t.endColumn)}else l=e.getModel().getValueInRange(a).replace(/\r\n/g,"\n");return new fb(e,t,s,l,o,n,d)}constructor(e,t,i,o,n,s,r){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=i,this.searchText=o,this.wholeWord=n,this.matchCase=s,this.currentMatch=r}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new _b(t.concat(e),e,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new _b(t.slice(0,t.length-1).concat(e),e,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findNextMatch(this.searchText,t.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(131):null,!1);return i?new ke.Y(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new _b(t.concat(e),e,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new _b(t.slice(0,t.length-1).concat(e),e,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findPreviousMatch(this.searchText,t.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(131):null,!1);return i?new ke.Y(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}selectAll(e){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();const t=this._editor.getModel();return e?t.findMatches(this.searchText,e,!1,this.matchCase,this.wholeWord?this._editor.getOption(131):null,!1,1073741824):t.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(131):null,!1,1073741824)}}class vb extends Fe.JT{static get(e){return e.getContribution(vb.ID)}constructor(e){super(),this._sessionDispose=this._register(new Fe.SL),this._editor=e,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(e){if(!this._session){const t=fb.create(this._editor,e);if(!t)return;this._session=t;const 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((e=>{this._ignoreSelectionChange||this._endSession()}))),this._sessionDispose.add(this._editor.onDidBlurEditorText((()=>{this._endSession()}))),this._sessionDispose.add(e.getState().onFindReplaceStateChange((e=>{(e.matchCase||e.wholeWord)&&this._endSession()})))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const e={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(e,!1)}this._session=null}_setSelections(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),this._ignoreSelectionChange=!1}_expandEmptyToWord(e,t){if(!t.isEmpty())return t;const i=this._editor.getConfiguredWordAtPosition(t.getStartPosition());return i?new ke.Y(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):t}_applySessionResult(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))}getSession(e){return this._session}addSelectionToNextFindMatch(e){if(this._editor.hasModel()){if(!this._session){const t=this._editor.getSelections();if(t.length>1){const i=e.getState().matchCase;if(!yb(this._editor.getModel(),t,i)){const e=this._editor.getModel(),i=[];for(let o=0,n=t.length;o<n;o++)i[o]=this._expandEmptyToWord(e,t[o]);return void this._editor.setSelections(i)}}}this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToNextFindMatch())}}addSelectionToPreviousFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToPreviousFindMatch())}moveSelectionToNextFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToNextFindMatch())}moveSelectionToPreviousFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())}selectAll(e){if(!this._editor.hasModel())return;let t=null;const i=e.getState();if(i.isRevealed&&i.searchString.length>0&&i.isRegex){const e=this._editor.getModel();t=i.searchScope?e.findMatches(i.searchString,i.searchScope,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(131):null,!1,1073741824):e.findMatches(i.searchString,!0,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(131):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll(i.searchScope)}if(t.length>0){const e=this._editor.getSelection();for(let i=0,o=t.length;i<o;i++){const o=t[i];if(o.range.intersectRanges(e)){t[i]=t[0],t[0]=o;break}}this._setSelections(t.map((e=>new ke.Y(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn))))}}}vb.ID="editor.contrib.multiCursorController";class bb extends ee.R6{run(e,t){const i=vb.get(t);if(!i)return;const o=t._getViewModel();if(o){const n=o.getCursorStates(),s=vu.get(t);if(s)this._run(i,s);else{const o=e.get(ni.TG).createInstance(vu,t);this._run(i,o),o.dispose()}cb(n,o.getCursorStates())}}}class Cb{constructor(e,t,i,o,n){this._model=e,this._searchText=t,this._matchCase=i,this._wordSeparators=o,this._modelVersionId=this._model.getVersionId(),this._cachedFindMatches=null,n&&this._model===n._model&&this._searchText===n._searchText&&this._matchCase===n._matchCase&&this._wordSeparators===n._wordSeparators&&this._modelVersionId===n._modelVersionId&&(this._cachedFindMatches=n._cachedFindMatches)}findMatches(){return null===this._cachedFindMatches&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map((e=>e.range)),this._cachedFindMatches.sort(He.e.compareRangesUsingStarts)),this._cachedFindMatches}}let Sb=ab=class extends Fe.JT{constructor(e,t){super(),this._languageFeaturesService=t,this.editor=e,this._isEnabled=e.getOption(108),this._decorations=e.createDecorationsCollection(),this.updateSoon=this._register(new Oe.pY((()=>this._update()),300)),this.state=null,this._register(e.onDidChangeConfiguration((t=>{this._isEnabled=e.getOption(108)}))),this._register(e.onDidChangeCursorSelection((e=>{this._isEnabled&&(e.selection.isEmpty()?3===e.reason?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())}))),this._register(e.onDidChangeModel((e=>{this._setState(null)}))),this._register(e.onDidChangeModelContent((e=>{this._isEnabled&&this.updateSoon.schedule()})));const i=vu.get(e);i&&this._register(i.getState().onFindReplaceStateChange((e=>{this._update()}))),this.updateSoon.schedule()}_update(){this._setState(ab._createState(this.state,this._isEnabled,this.editor))}static _createState(e,t,i){if(!t)return null;if(!i.hasModel())return null;const o=i.getSelection();if(o.startLineNumber!==o.endLineNumber)return null;const n=vb.get(i);if(!n)return null;const s=vu.get(i);if(!s)return null;let r=n.getSession(s);if(!r){const e=i.getSelections();if(e.length>1){const t=s.getState().matchCase;if(!yb(i.getModel(),e,t))return null}r=fb.create(i,s)}if(!r)return null;if(r.currentMatch)return null;if(/^[ \t]+$/.test(r.searchText))return null;if(r.searchText.length>200)return null;const a=s.getState(),l=a.matchCase;if(a.isRevealed){let e=a.searchString;l||(e=e.toLowerCase());let t=r.searchText;if(l||(t=t.toLowerCase()),e===t&&r.matchCase===a.matchCase&&r.wholeWord===a.wholeWord&&!a.isRegex)return null}return new Cb(i.getModel(),r.searchText,r.matchCase,r.wholeWord?i.getOption(131):null,e)}_setState(e){if(this.state=e,!this.state)return void this._decorations.clear();if(!this.editor.hasModel())return;const t=this.editor.getModel();if(t.isTooLargeForTokenization())return;const i=this.state.findMatches(),o=this.editor.getSelections();o.sort(He.e.compareRangesUsingStarts);const n=[];for(let l=0,d=0,c=i.length,h=o.length;l<c;){const e=i[l];if(d>=h)n.push(e),l++;else{const t=He.e.compareRangesUsingStarts(e,o[d]);t<0?(!o[d].isEmpty()&&He.e.areIntersecting(e,o[d])||n.push(e),l++):(t>0||l++,d++)}}const s="off"!==this.editor.getOption(81),r=this._languageFeaturesService.documentHighlightProvider.has(t)&&s,a=n.map((e=>({range:e,options:rb(r)})));this._decorations.set(a)}dispose(){this._setState(null),super.dispose()}};function yb(e,t,i){const o=wb(e,t[0],!i);for(let n=1,s=t.length;n<s;n++){const s=t[n];if(s.isEmpty())return!1;if(o!==wb(e,s,!i))return!1}return!0}function wb(e,t,i){const o=e.getValueInRange(t);return i?o.toLowerCase():o}Sb.ID="editor.contrib.selectionHighlighter",Sb=ab=lb([db(1,kt.p)],Sb);class xb extends ee.R6{constructor(){super({id:"editor.action.focusNextCursor",label:ne.NC("mutlicursor.focusNextCursor","Focus Next Cursor"),metadata:{description:ne.NC("mutlicursor.focusNextCursor.description","Focuses the next cursor"),args:[]},alias:"Focus Next Cursor",precondition:void 0})}run(e,t,i){if(!t.hasModel())return;const o=t._getViewModel();if(o.cursorConfig.readOnly)return;o.model.pushStackElement();const n=Array.from(o.getCursorStates()),s=n.shift();s&&(n.push(s),o.setCursorStates(i.source,3,n),o.revealPrimaryCursor(i.source,!0),cb(n,o.getCursorStates()))}}class Nb extends ee.R6{constructor(){super({id:"editor.action.focusPreviousCursor",label:ne.NC("mutlicursor.focusPreviousCursor","Focus Previous Cursor"),metadata:{description:ne.NC("mutlicursor.focusPreviousCursor.description","Focuses the previous cursor"),args:[]},alias:"Focus Previous Cursor",precondition:void 0})}run(e,t,i){if(!t.hasModel())return;const o=t._getViewModel();if(o.cursorConfig.readOnly)return;o.model.pushStackElement();const n=Array.from(o.getCursorStates()),s=n.pop();s&&(n.unshift(s),o.setCursorStates(i.source,3,n),o.revealPrimaryCursor(i.source,!0),cb(n,o.getCursorStates()))}}(0,ee._K)(vb.ID,vb,4),(0,ee._K)(Sb.ID,Sb,1),(0,ee.Qr)(hb),(0,ee.Qr)(ub),(0,ee.Qr)(gb),(0,ee.Qr)(class extends bb{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:ne.NC("addSelectionToNextFindMatch","Add Selection To Next Find Match"),alias:"Add Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:oe.u.focus,primary:2082,weight:100},menuOpts:{menuId:se.eH.MenubarSelectionMenu,group:"3_multi",title:ne.NC({key:"miAddSelectionToNextFindMatch",comment:["&& denotes a mnemonic"]},"Add &&Next Occurrence"),order:5}})}_run(e,t){e.addSelectionToNextFindMatch(t)}}),(0,ee.Qr)(class extends bb{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:ne.NC("addSelectionToPreviousFindMatch","Add Selection To Previous Find Match"),alias:"Add Selection To Previous Find Match",precondition:void 0,menuOpts:{menuId:se.eH.MenubarSelectionMenu,group:"3_multi",title:ne.NC({key:"miAddSelectionToPreviousFindMatch",comment:["&& denotes a mnemonic"]},"Add P&&revious Occurrence"),order:6}})}_run(e,t){e.addSelectionToPreviousFindMatch(t)}}),(0,ee.Qr)(class extends bb{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:ne.NC("moveSelectionToNextFindMatch","Move Last Selection To Next Find Match"),alias:"Move Last Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:oe.u.focus,primary:(0,Le.gx)(2089,2082),weight:100}})}_run(e,t){e.moveSelectionToNextFindMatch(t)}}),(0,ee.Qr)(class extends bb{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:ne.NC("moveSelectionToPreviousFindMatch","Move Last Selection To Previous Find Match"),alias:"Move Last Selection To Previous Find Match",precondition:void 0})}_run(e,t){e.moveSelectionToPreviousFindMatch(t)}}),(0,ee.Qr)(class extends bb{constructor(){super({id:"editor.action.selectHighlights",label:ne.NC("selectAllOccurrencesOfFindMatch","Select All Occurrences of Find Match"),alias:"Select All Occurrences of Find Match",precondition:void 0,kbOpts:{kbExpr:oe.u.focus,primary:3114,weight:100},menuOpts:{menuId:se.eH.MenubarSelectionMenu,group:"3_multi",title:ne.NC({key:"miSelectHighlights",comment:["&& denotes a mnemonic"]},"Select All &&Occurrences"),order:7}})}_run(e,t){e.selectAll(t)}}),(0,ee.Qr)(class extends bb{constructor(){super({id:"editor.action.changeAll",label:ne.NC("changeAll.label","Change All Occurrences"),alias:"Change All Occurrences",precondition:ae.Ao.and(oe.u.writable,oe.u.editorTextFocus),kbOpts:{kbExpr:oe.u.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(e,t){e.selectAll(t)}}),(0,ee.Qr)(pb),(0,ee.Qr)(mb),(0,ee.Qr)(xb),(0,ee.Qr)(Nb);var Lb=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},kb=function(e,t){return function(i,o){t(i,o,e)}};const Db="inline-edit";let Ib=class extends Fe.JT{constructor(e,t,i){super(),this.editor=e,this.model=t,this.languageService=i,this.isDisposed=(0,dd.uh)(this,!1),this.currentTextModel=(0,dd.rD)(this.editor.onDidChangeModel,(()=>this.editor.getModel())),this.uiState=(0,dd.nK)(this,(e=>{var t;if(this.isDisposed.read(e))return;const i=this.currentTextModel.read(e);if(i!==this.model.targetTextModel.read(e))return;const o=this.model.ghostText.read(e);if(!o)return;let n=null===(t=this.model.range)||void 0===t?void 0:t.read(e);n&&n.startLineNumber===n.endLineNumber&&n.startColumn===n.endColumn&&(n=void 0);const s=(!n||n.startLineNumber===n.endLineNumber)&&1===o.parts.length&&1===o.parts[0].lines.length,r=1===o.parts.length&&o.parts[0].lines.every((e=>0===e.length)),a=[],l=[];function d(e,t){if(l.length>0){const i=l[l.length-1];t&&i.decorations.push(new Kg.Kp(i.content.length+1,i.content.length+1+e[0].length,t,0)),i.content+=e[0],e=e.slice(1)}for(const i of e)l.push({content:i,decorations:t?[new Kg.Kp(1,i.length+1,t,0)]:[]})}const c=i.getLineContent(o.lineNumber);let h,u=0;if(!r){for(const e of o.parts){let t=e.lines;n&&!s&&(d(t,Db),t=[]),void 0===h?(a.push({column:e.column,text:t[0],preview:e.preview}),t=t.slice(1)):d([c.substring(u,e.column-1)],void 0),t.length>0&&(d(t,Db),void 0===h&&e.column<=c.length&&(h=e.column)),u=e.column-1}void 0!==h&&d([c.substring(u)],void 0)}const g=void 0!==h?new Xg(h,c.length+1):void 0,p=s||!n?o.lineNumber:n.endLineNumber-1;return{inlineTexts:a,additionalLines:l,hiddenRange:g,lineNumber:p,additionalReservedLineCount:this.model.minReservedLineCount.read(e),targetTextModel:i,range:n,isSingleLine:s,isPureRemove:r,backgroundColoring:this.model.backgroundColoring.read(e)}})),this.decorations=(0,dd.nK)(this,(e=>{const t=this.uiState.read(e);if(!t)return[];const i=[];if(t.hiddenRange&&i.push({range:t.hiddenRange.toRange(t.lineNumber),options:{inlineClassName:"inline-edit-hidden",description:"inline-edit-hidden"}}),t.range){const e=[];if(t.isSingleLine)e.push(t.range);else if(t.isPureRemove){const i=t.range.endLineNumber-t.range.startLineNumber;for(let o=0;o<i;o++){const i=t.range.startLineNumber+o,n=t.targetTextModel.getLineFirstNonWhitespaceColumn(i),s=t.targetTextModel.getLineLastNonWhitespaceColumn(i),r=new He.e(i,n,i,s);e.push(r)}}else{const i=t.range.endLineNumber-t.range.startLineNumber;for(let o=0;o<i;o++){const i=t.range.startLineNumber+o,n=t.targetTextModel.getLineFirstNonWhitespaceColumn(i),s=t.targetTextModel.getLineLastNonWhitespaceColumn(i),r=new He.e(i,n,i,s);e.push(r)}}const o=t.backgroundColoring?"inline-edit-remove backgroundColoring":"inline-edit-remove";for(const t of e)i.push({range:t,options:{inlineClassName:o,description:"inline-edit-remove"}})}for(const o of t.inlineTexts)i.push({range:He.e.fromPositions(new We.L(t.lineNumber,o.column)),options:{description:Db,after:{content:o.text,inlineClassName:o.preview?"inline-edit-decoration-preview":"inline-edit-decoration",cursorStops:Ve.RM.Left},showIfCollapsed:!0}});return i})),this.additionalLinesWidget=this._register(new rp(this.editor,this.languageService.languageIdCodec,(0,dd.nK)((e=>{const t=this.uiState.read(e);return t&&!t.isPureRemove?{lineNumber:t.lineNumber,additionalLines:t.additionalLines,minReservedLineCount:t.additionalReservedLineCount,targetTextModel:t.targetTextModel}:void 0})))),this._register((0,Fe.OF)((()=>{this.isDisposed.set(!0,void 0)}))),this._register(ep(this.editor,this.decorations))}ownsViewZone(e){return this.additionalLinesWidget.viewZoneId===e}};Ib=Lb([kb(2,Us.O)],Ib);var Rb,Pb=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Mb=function(e,t){return function(i,o){t(i,o,e)}};let Tb=class extends Fe.JT{constructor(e,t,i){super(),this.editor=e,this.model=t,this.instantiationService=i,this.alwaysShowToolbar=(0,dd.rD)(this.editor.onDidChangeConfiguration,(()=>"always"===this.editor.getOption(63).showToolbar)),this.sessionPosition=void 0,this.position=(0,dd.nK)(this,(e=>{var t,i,o;const n=null===(t=this.model.read(e))||void 0===t?void 0:t.widget.model.ghostText.read(e);if(!this.alwaysShowToolbar.read(e)||!n||0===n.parts.length)return this.sessionPosition=void 0,null;const s=n.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==n.lineNumber&&(this.sessionPosition=void 0);const r=new We.L(n.lineNumber,Math.min(s,null!==(o=null===(i=this.sessionPosition)||void 0===i?void 0:i.column)&&void 0!==o?o:Number.MAX_SAFE_INTEGER));return this.sessionPosition=r,r})),this._register((0,dd.gp)(((t,i)=>{if(!this.model.read(t)||!this.alwaysShowToolbar.read(t))return;const o=i.add(this.instantiationService.createInstance(Eb,this.editor,!0,this.position));e.addContentWidget(o),i.add((0,Fe.OF)((()=>e.removeContentWidget(o))))})))}};Tb=Pb([Mb(2,ni.TG)],Tb);let Eb=Rb=class extends Fe.JT{constructor(e,t,i,o,n,s){super(),this.editor=e,this.withBorder=t,this._position=i,this._contextKeyService=n,this._menuService=s,this.id="InlineEditHintsContentWidget".concat(Rb.id++),this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=(0,X.h)("div.inlineEditHints",{className:this.withBorder?".withBorder":""},[(0,X.h)("div@toolBar")]),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(se.eH.InlineEditActions,this._contextKeyService)),this.toolBar=this._register(o.createInstance(Ob,this.nodes.toolBar,this.editor,se.eH.InlineEditToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:e=>e.startsWith("primary")},actionViewItemProvider:(e,t)=>{if(e instanceof se.U8)return o.createInstance(Ab,e,void 0)},telemetrySource:"InlineEditToolbar"})),this._register(this.toolBar.onDidChangeDropdownVisibility((e=>{Rb._dropDownVisible=e}))),this._register((0,dd.EH)((e=>{this._position.read(e),this.editor.layoutContentWidget(this)}))),this._register((0,dd.EH)((e=>{const t=[];for(const[i,o]of this.inlineCompletionsActionsMenus.getActions())for(const e of o)e instanceof se.U8&&t.push(e);t.length>0&&t.unshift(new Ni.Z0),this.toolBar.setAdditionalSecondaryActions(t)})))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};Eb._dropDownVisible=!1,Eb.id=0,Eb=Rb=Pb([Mb(3,ni.TG),Mb(4,ae.i6),Mb(5,se.co)],Eb);class Ab extends cr.Mm{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();if(this.label){const t=(0,X.h)("div.keybinding").root;this._register(new Ao.e(t,it.OS,{disableTitle:!0,...Ao.F})).set(e),this.label.textContent=this._action.label,this.label.appendChild(t),this.label.classList.add("inlineEditStatusBarItemLabel")}}updateTooltip(){}}let Ob=class extends pd.T{constructor(e,t,i,o,n,s,r,a,l){super(e,{resetMenu:i,...o},n,s,r,a,l),this.editor=t,this.menuId=i,this.options2=o,this.menuService=n,this.contextKeyService=s,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange((()=>this.updateToolbar()))),this._store.add(this.editor.onDidChangeCursorPosition((()=>this.updateToolbar()))),this.updateToolbar()}updateToolbar(){var e,t,i,o,n,s,r;const a=[],l=[];(0,cr.vr)(this.menu,null===(e=this.options2)||void 0===e?void 0:e.menuOptions,{primary:a,secondary:l},null===(i=null===(t=this.options2)||void 0===t?void 0:t.toolbarOptions)||void 0===i?void 0:i.primaryGroup,null===(n=null===(o=this.options2)||void 0===o?void 0:o.toolbarOptions)||void 0===n?void 0:n.shouldInlineSubmenu,null===(r=null===(s=this.options2)||void 0===s?void 0:s.toolbarOptions)||void 0===r?void 0:r.useSeparatorsInPrimaryActions),l.push(...this.additionalActions),a.unshift(...this.prependedPrimaryActions),this.setActions(a,l)}setAdditionalSecondaryActions(e){(0,nt.fS)(this.additionalActions,e,((e,t)=>e===t))||(this.additionalActions=e,this.updateToolbar())}};Ob=Pb([Mb(4,se.co),Mb(5,ae.i6),Mb(6,Li.i),Mb(7,ki.d),Mb(8,eo.b)],Ob);var Fb,Wb=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Hb=function(e,t){return function(i,o){t(i,o,e)}};class Vb{constructor(e,t){this.widget=e,this.edit=t}dispose(){this.widget.dispose()}}let Bb=Fb=class extends Fe.JT{static get(e){return e.getContribution(Fb.ID)}constructor(e,t,i,o,n,s){super(),this.editor=e,this.instantiationService=t,this.contextKeyService=i,this.languageFeaturesService=o,this._commandService=n,this._configurationService=s,this._isVisibleContext=Fb.inlineEditVisibleContext.bindTo(this.contextKeyService),this._isCursorAtInlineEditContext=Fb.cursorAtInlineEditContext.bindTo(this.contextKeyService),this._currentEdit=this._register((0,dd.DN)(this,void 0)),this._isAccepting=(0,dd.uh)(this,!1),this._enabled=(0,dd.rD)(this.editor.onDidChangeConfiguration,(()=>this.editor.getOption(63).enabled)),this._fontFamily=(0,dd.rD)(this.editor.onDidChangeConfiguration,(()=>this.editor.getOption(63).fontFamily)),this._backgroundColoring=(0,dd.rD)(this.editor.onDidChangeConfiguration,(()=>this.editor.getOption(63).backgroundColoring));const r=(0,dd.aq)("InlineEditController.modelContentChangedSignal",e.onDidChangeModelContent);this._register((0,dd.EH)((t=>{this._enabled.read(t)&&(r.read(t),this._isAccepting.read(t)||this.getInlineEdit(e,!0))})));const a=(0,dd.rD)(e.onDidChangeCursorPosition,(()=>e.getPosition()));this._register((0,dd.EH)((e=>{if(!this._enabled.read(e))return;const t=a.read(e);t&&this.checkCursorPosition(t)}))),this._register((0,dd.EH)((t=>{const i=this._currentEdit.read(t);if(this._isCursorAtInlineEditContext.set(!1),!i)return void this._isVisibleContext.set(!1);this._isVisibleContext.set(!0);const o=e.getPosition();o&&this.checkCursorPosition(o)})));const l=(0,dd.aq)("InlineEditController.editorBlurSignal",e.onDidBlurEditorWidget);this._register((0,dd.EH)((async t=>{var i;this._enabled.read(t)&&(l.read(t),this._configurationService.getValue("editor.experimentalInlineEdit.keepOnBlur")||e.getOption(63).keepOnBlur||(null===(i=this._currentRequestCts)||void 0===i||i.dispose(!0),this._currentRequestCts=void 0,await this.clear(!1)))})));const d=(0,dd.aq)("InlineEditController.editorFocusSignal",e.onDidFocusEditorText);this._register((0,dd.EH)((t=>{this._enabled.read(t)&&(d.read(t),this.getInlineEdit(e,!0))})));const c=this._register((0,X.aU)());this._register((0,dd.EH)((e=>{const t=this._fontFamily.read(e);c.setStyle(""===t||"default"===t?"":"\n.monaco-editor .inline-edit-decoration,\n.monaco-editor .inline-edit-decoration-preview,\n.monaco-editor .inline-edit {\n\tfont-family: ".concat(t,";\n}"))}))),this._register(new Tb(this.editor,this._currentEdit,this.instantiationService))}checkCursorPosition(e){var t;if(!this._currentEdit)return void this._isCursorAtInlineEditContext.set(!1);const i=null===(t=this._currentEdit.get())||void 0===t?void 0:t.edit;i?this._isCursorAtInlineEditContext.set(He.e.containsPosition(i.range,e)):this._isCursorAtInlineEditContext.set(!1)}validateInlineEdit(e,t){var i,o;if(t.text.includes("\n")&&t.range.startLineNumber!==t.range.endLineNumber&&t.range.startColumn!==t.range.endColumn){if(1!==t.range.startColumn)return!1;const n=t.range.endLineNumber;if(t.range.endColumn!==(null!==(o=null===(i=e.getModel())||void 0===i?void 0:i.getLineLength(n))&&void 0!==o?o:0)+1)return!1}return!0}async fetchInlineEdit(e,t){this._currentRequestCts&&this._currentRequestCts.dispose(!0);const i=e.getModel();if(!i)return;const o=i.getVersionId(),n=this.languageFeaturesService.inlineEditProvider.all(i);if(0===n.length)return;const s=n[0];this._currentRequestCts=new Yi.A;const r=this._currentRequestCts.token,a=t?Lt.rn.Automatic:Lt.rn.Invoke;var l,d;if(t&&await(l=50,d=r,new Promise((e=>{let t;const i=setTimeout((()=>{t&&t.dispose(),e()}),l);d&&(t=d.onCancellationRequested((()=>{clearTimeout(i),t&&t.dispose(),e()})))}))),r.isCancellationRequested||i.isDisposed()||i.getVersionId()!==o)return;const c=await s.provideInlineEdit(i,{triggerKind:a},r);return c&&!r.isCancellationRequested&&!i.isDisposed()&&i.getVersionId()===o&&this.validateInlineEdit(e,c)?c:void 0}async getInlineEdit(e,t){var i;this._isCursorAtInlineEditContext.set(!1),await this.clear();const o=await this.fetchInlineEdit(e,t);if(!o)return;const n=o.range.endLineNumber,s=o.range.endColumn,r=new Gg(n,[new Qg(s,o.text,!1)]),a=this.instantiationService.createInstance(Ib,this.editor,{ghostText:(0,dd.Dz)(r),minReservedLineCount:(0,dd.Dz)(0),targetTextModel:(0,dd.Dz)(null!==(i=this.editor.getModel())&&void 0!==i?i:void 0),range:(0,dd.Dz)(o.range),backgroundColoring:this._backgroundColoring});this._currentEdit.set(new Vb(a,o),void 0)}async trigger(){await this.getInlineEdit(this.editor,!1)}async jumpBack(){this._jumpBackPosition&&(this.editor.setPosition(this._jumpBackPosition),this.editor.revealPositionInCenterIfOutsideViewport(this._jumpBackPosition))}async accept(){var e;this._isAccepting.set(!0,void 0);const t=null===(e=this._currentEdit.get())||void 0===e?void 0:e.edit;if(!t)return;let i=t.text;t.text.startsWith("\n")&&(i=t.text.substring(1)),this.editor.pushUndoStop(),this.editor.executeEdits("acceptCurrent",[Yd.h.replace(He.e.lift(t.range),i)]),t.accepted&&await this._commandService.executeCommand(t.accepted.id,...t.accepted.arguments||[]).then(void 0,Ji.Cp),this.freeEdit(t),(0,dd.PS)((e=>{this._currentEdit.set(void 0,e),this._isAccepting.set(!1,e)}))}jumpToCurrent(){var e,t;this._jumpBackPosition=null===(e=this.editor.getSelection())||void 0===e?void 0:e.getStartPosition();const i=null===(t=this._currentEdit.get())||void 0===t?void 0:t.edit;if(!i)return;const o=We.L.lift({lineNumber:i.range.startLineNumber,column:i.range.startColumn});this.editor.setPosition(o),this.editor.revealPositionInCenterIfOutsideViewport(o)}async clear(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];var t;const i=null===(t=this._currentEdit.get())||void 0===t?void 0:t.edit;i&&(null===i||void 0===i?void 0:i.rejected)&&e&&await this._commandService.executeCommand(i.rejected.id,...i.rejected.arguments||[]).then(void 0,Ji.Cp),i&&this.freeEdit(i),this._currentEdit.set(void 0,void 0)}freeEdit(e){const t=this.editor.getModel();if(!t)return;const i=this.languageFeaturesService.inlineEditProvider.all(t);0!==i.length&&i[0].freeInlineEdit(e)}shouldShowHoverAt(e){const t=this._currentEdit.get();if(!t)return!1;const i=t.edit,o=t.widget.model;if(He.e.containsPosition(i.range,e.getStartPosition())||He.e.containsPosition(i.range,e.getEndPosition()))return!0;const n=o.ghostText.get();return!!n&&n.parts.some((t=>e.containsPosition(new We.L(n.lineNumber,t.column))))}shouldShowHoverAtViewZone(e){var t,i;return null!==(i=null===(t=this._currentEdit.get())||void 0===t?void 0:t.widget.ownsViewZone(e))&&void 0!==i&&i}};Bb.ID="editor.contrib.inlineEditController",Bb.inlineEditVisibleKey="inlineEditVisible",Bb.inlineEditVisibleContext=new ae.uy(Fb.inlineEditVisibleKey,!1),Bb.cursorAtInlineEditKey="cursorAtInlineEdit",Bb.cursorAtInlineEditContext=new ae.uy(Fb.cursorAtInlineEditKey,!1),Bb=Fb=Wb([Hb(1,ni.TG),Hb(2,ae.i6),Hb(3,kt.p),Hb(4,ye.H),Hb(5,re.Ui)],Bb);class zb extends ee.R6{constructor(){super({id:"editor.action.inlineEdit.accept",label:"Accept Inline Edit",alias:"Accept Inline Edit",precondition:ae.Ao.and(oe.u.writable,Bb.inlineEditVisibleContext),kbOpts:[{weight:101,primary:2,kbExpr:ae.Ao.and(oe.u.writable,Bb.inlineEditVisibleContext,Bb.cursorAtInlineEditContext)}],menuOpts:[{menuId:se.eH.InlineEditToolbar,title:"Accept",group:"primary",order:1}]})}async run(e,t){const i=Bb.get(t);await(null===i||void 0===i?void 0:i.accept())}}class Ub extends ee.R6{constructor(){const e=ae.Ao.and(oe.u.writable,ae.Ao.not(Bb.inlineEditVisibleKey));super({id:"editor.action.inlineEdit.trigger",label:"Trigger Inline Edit",alias:"Trigger Inline Edit",precondition:e,kbOpts:{weight:101,primary:2646,kbExpr:e}})}async run(e,t){const i=Bb.get(t);null===i||void 0===i||i.trigger()}}class Kb extends ee.R6{constructor(){const e=ae.Ao.and(oe.u.writable,Bb.inlineEditVisibleContext,ae.Ao.not(Bb.cursorAtInlineEditKey));super({id:"editor.action.inlineEdit.jumpTo",label:"Jump to Inline Edit",alias:"Jump to Inline Edit",precondition:e,kbOpts:{weight:101,primary:2646,kbExpr:e},menuOpts:[{menuId:se.eH.InlineEditToolbar,title:"Jump To Edit",group:"primary",order:3,when:e}]})}async run(e,t){const i=Bb.get(t);null===i||void 0===i||i.jumpToCurrent()}}class jb extends ee.R6{constructor(){const e=ae.Ao.and(oe.u.writable,Bb.cursorAtInlineEditContext);super({id:"editor.action.inlineEdit.jumpBack",label:"Jump Back from Inline Edit",alias:"Jump Back from Inline Edit",precondition:e,kbOpts:{weight:110,primary:2646,kbExpr:e},menuOpts:[{menuId:se.eH.InlineEditToolbar,title:"Jump Back",group:"primary",order:3,when:e}]})}async run(e,t){const i=Bb.get(t);null===i||void 0===i||i.jumpBack()}}class qb extends ee.R6{constructor(){const e=ae.Ao.and(oe.u.writable,Bb.inlineEditVisibleContext);super({id:"editor.action.inlineEdit.reject",label:"Reject Inline Edit",alias:"Reject Inline Edit",precondition:e,kbOpts:{weight:100,primary:9,kbExpr:e},menuOpts:[{menuId:se.eH.InlineEditToolbar,title:"Reject",group:"secondary",order:2}]})}async run(e,t){const i=Bb.get(t);await(null===i||void 0===i?void 0:i.clear())}}var Gb=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Qb=function(e,t){return function(i,o){t(i,o,e)}};class Zb{constructor(e,t,i){this.owner=e,this.range=t,this.controller=i}isValidForHoverAnchor(e){return 1===e.type&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let Yb=class{constructor(e,t,i){this._editor=e,this._instantiationService=t,this._telemetryService=i,this.hoverOrdinal=5}suggestHoverAnchor(e){const t=Bb.get(this._editor);if(!t)return null;const i=e.target;if(8===i.type){const o=i.detail;if(t.shouldShowHoverAtViewZone(o.viewZoneId)){const t=i.range;return new Ga(1e3,this,t,e.event.posx,e.event.posy,!1)}}if(7===i.type&&t.shouldShowHoverAt(i.range))return new Ga(1e3,this,i.range,e.event.posx,e.event.posy,!1);if(6===i.type){if(i.detail.mightBeForeignElement&&t.shouldShowHoverAt(i.range))return new Ga(1e3,this,i.range,e.event.posx,e.event.posy,!1)}return null}computeSync(e,t){if("onHover"!==this._editor.getOption(63).showToolbar)return[];const i=Bb.get(this._editor);return i&&i.shouldShowHoverAt(e.range)?[new Zb(this,e.range,i)]:[]}renderHoverParts(e,t){const i=new Fe.SL;this._telemetryService.publicLog2("inlineEditHover.shown");const o=this._instantiationService.createInstance(Eb,this._editor,!1,(0,dd.Dz)(null));return e.fragment.appendChild(o.getDomNode()),i.add(o),i}};Yb=Gb([Qb(1,ni.TG),Qb(2,eo.b)],Yb),(0,ee.Qr)(zb),(0,ee.Qr)(qb),(0,ee.Qr)(Kb),(0,ee.Qr)(jb),(0,ee.Qr)(Ub),(0,ee._K)(Bb.ID,Bb,3),Qa.register(Yb);const Jb={Visible:new ae.uy("parameterHintsVisible",!1),MultipleSignatures:new ae.uy("parameterHintsMultipleSignatures",!1)};async function $b(e,t,i,o,n){const s=e.ordered(t);for(const a of s)try{const e=await a.provideSignatureHelp(t,i,n,o);if(e)return e}catch(r){(0,Ji.Cp)(r)}}var Xb;ye.P.registerCommand("_executeSignatureHelpProvider",(async function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];const[n,s,r]=i;(0,Dn.p_)(_t.o.isUri(n)),(0,Dn.p_)(We.L.isIPosition(s)),(0,Dn.p_)("string"===typeof r||!r);const a=e.get(kt.p),l=await e.get(Ks.S).createModelReference(n);try{const e=await $b(a.signatureHelpProvider,l.object.textEditorModel,We.L.lift(s),{triggerKind:Lt.WW.Invoke,isRetrigger:!1,triggerCharacter:r},Yi.T.None);if(!e)return;return setTimeout((()=>e.dispose()),0),e.value}finally{l.dispose()}})),function(e){e.Default={type:0};e.Pending=class{constructor(e,t){this.request=e,this.previouslyActiveHints=t,this.type=2}};e.Active=class{constructor(e){this.hints=e,this.type=1}}}(Xb||(Xb={}));class eC extends Fe.JT{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:eC.DEFAULT_DELAY;super(),this._onChangedHints=this._register(new ui.Q5),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=Xb.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new Fe.XK),this.triggerChars=new vg.q,this.retriggerChars=new vg.q,this.triggerId=0,this.editor=e,this.providers=t,this.throttledDelayer=new Oe.vp(i),this._register(this.editor.onDidBlurEditorWidget((()=>this.cancel()))),this._register(this.editor.onDidChangeConfiguration((()=>this.onEditorConfigurationChange()))),this._register(this.editor.onDidChangeModel((e=>this.onModelChanged()))),this._register(this.editor.onDidChangeModelLanguage((e=>this.onModelChanged()))),this._register(this.editor.onDidChangeCursorSelection((e=>this.onCursorChange(e)))),this._register(this.editor.onDidChangeModelContent((e=>this.onModelContentChange()))),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType((e=>this.onDidType(e)))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(e){2===this._state.type&&this._state.request.cancel(),this._state=e}cancel(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.state=Xb.Default,this.throttledDelayer.cancel(),e||this._onChangedHints.fire(void 0)}trigger(e,t){const i=this.editor.getModel();if(!i||!this.providers.has(i))return;const o=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger((()=>this.doTrigger(o)),t).catch(Ji.dL)}next(){if(1!==this.state.type)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t%e===e-1,o=this.editor.getOption(86).cycle;!(e<2||i)||o?this.updateActiveSignature(i&&o?0:t+1):this.cancel()}previous(){if(1!==this.state.type)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=0===t,o=this.editor.getOption(86).cycle;!(e<2||i)||o?this.updateActiveSignature(i&&o?e-1:t-1):this.cancel()}updateActiveSignature(e){1===this.state.type&&(this.state=new Xb.Active({...this.state.hints,activeSignature:e}),this._onChangedHints.fire(this.state.hints))}async doTrigger(e){const t=1===this.state.type||2===this.state.type,i=this.getLastActiveHints();if(this.cancel(!0),0===this._pendingTriggers.length)return!1;const o=this._pendingTriggers.reduce(tC);this._pendingTriggers=[];const n={triggerKind:o.triggerKind,triggerCharacter:o.triggerCharacter,isRetrigger:t,activeSignatureHelp:i};if(!this.editor.hasModel())return!1;const s=this.editor.getModel(),r=this.editor.getPosition();this.state=new Xb.Pending((0,Oe.PG)((e=>$b(this.providers,s,r,n,e))),i);try{const t=await this.state.request;return e!==this.triggerId?(null===t||void 0===t||t.dispose(),!1):t&&t.value.signatures&&0!==t.value.signatures.length?(this.state=new Xb.Active(t.value),this._lastSignatureHelpResult.value=t,this._onChangedHints.fire(this.state.hints),!0):(null===t||void 0===t||t.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1)}catch(a){return e===this.triggerId&&(this.state=Xb.Default),(0,Ji.dL)(a),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return 1===this.state.type||2===this.state.type||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();const e=this.editor.getModel();if(e)for(const t of this.providers.ordered(e)){for(const e of t.signatureHelpTriggerCharacters||[])if(e.length){const t=e.charCodeAt(0);this.triggerChars.add(t),this.retriggerChars.add(t)}for(const e of t.signatureHelpRetriggerCharacters||[])e.length&&this.retriggerChars.add(e.charCodeAt(0))}}onDidType(e){if(!this.triggerOnType)return;const t=e.length-1,i=e.charCodeAt(t);(this.triggerChars.has(i)||this.isTriggered&&this.retriggerChars.has(i))&&this.trigger({triggerKind:Lt.WW.TriggerCharacter,triggerCharacter:e.charAt(t)})}onCursorChange(e){"mouse"===e.source?this.cancel():this.isTriggered&&this.trigger({triggerKind:Lt.WW.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:Lt.WW.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(86).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}}function tC(e,t){switch(t.triggerKind){case Lt.WW.Invoke:return t;case Lt.WW.ContentChange:return e;case Lt.WW.TriggerCharacter:default:return t}}eC.DEFAULT_DELAY=120;var iC,oC=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},nC=function(e,t){return function(i,o){t(i,o,e)}};const sC=X.$,rC=(0,ys.q5)("parameter-hints-next",$.l.chevronDown,ne.NC("parameterHintsNextIcon","Icon for show next parameter hint.")),aC=(0,ys.q5)("parameter-hints-previous",$.l.chevronUp,ne.NC("parameterHintsPreviousIcon","Icon for show previous parameter hint."));let lC=iC=class extends Fe.JT{constructor(e,t,i,o,n){super(),this.editor=e,this.model=t,this.renderDisposeables=this._register(new Fe.SL),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new gi.$({editor:e},n,o)),this.keyVisible=Jb.Visible.bindTo(i),this.keyMultipleSignatures=Jb.MultipleSignatures.bindTo(i)}createParameterHintDOMNodes(){const e=sC(".editor-widget.parameter-hints-widget"),t=X.R3(e,sC(".phwrapper"));t.tabIndex=-1;const i=X.R3(t,sC(".controls")),o=X.R3(i,sC(".button"+oi.k.asCSSSelector(aC))),n=X.R3(i,sC(".overloads")),s=X.R3(i,sC(".button"+oi.k.asCSSSelector(rC)));this._register(X.nm(o,"click",(e=>{X.zB.stop(e),this.previous()}))),this._register(X.nm(s,"click",(e=>{X.zB.stop(e),this.next()})));const r=sC(".body"),a=new Rl.s$(r,{alwaysConsumeMouseWheel:!0});this._register(a),t.appendChild(a.getDomNode());const l=X.R3(r,sC(".signature")),d=X.R3(r,sC(".docs"));e.style.userSelect="text",this.domNodes={element:e,signature:l,overloads:n,docs:d,scrollbar:a},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection((e=>{this.visible&&this.editor.layoutContentWidget(this)})));const c=()=>{if(!this.domNodes)return;const e=this.editor.getOption(50);this.domNodes.element.style.fontSize="".concat(e.fontSize,"px"),this.domNodes.element.style.lineHeight="".concat(e.lineHeight/e.fontSize)};c(),this._register(ui.ju.chain(this.editor.onDidChangeConfiguration.bind(this.editor),(e=>e.filter((e=>e.hasChanged(50)))))(c)),this._register(this.editor.onDidLayoutChange((e=>this.updateMaxHeight()))),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout((()=>{var e;null===(e=this.domNodes)||void 0===e||e.element.classList.add("visible")}),100),this.editor.layoutContentWidget(this))}hide(){var e;this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,null===(e=this.domNodes)||void 0===e||e.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(e){var t;if(this.renderDisposeables.clear(),!this.domNodes)return;const i=e.signatures.length>1;this.domNodes.element.classList.toggle("multiple",i),this.keyMultipleSignatures.set(i),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const o=e.signatures[e.activeSignature];if(!o)return;const n=X.R3(this.domNodes.signature,sC(".code")),s=this.editor.getOption(50);n.style.fontSize="".concat(s.fontSize,"px"),n.style.fontFamily=s.fontFamily;const r=o.parameters.length>0,a=null!==(t=o.activeParameter)&&void 0!==t?t:e.activeParameter;if(r)this.renderParameters(n,o,a);else{X.R3(n,sC("span")).textContent=o.label}const l=o.parameters[a];if(null===l||void 0===l?void 0:l.documentation){const e=sC("span.documentation");if("string"===typeof l.documentation)e.textContent=l.documentation;else{const t=this.renderMarkdownDocs(l.documentation);e.appendChild(t.element)}X.R3(this.domNodes.docs,sC("p",{},e))}if(void 0===o.documentation);else if("string"===typeof o.documentation)X.R3(this.domNodes.docs,sC("p",{},o.documentation));else{const e=this.renderMarkdownDocs(o.documentation);X.R3(this.domNodes.docs,e.element)}const d=this.hasDocs(o,l);if(this.domNodes.signature.classList.toggle("has-docs",d),this.domNodes.docs.classList.toggle("empty",!d),this.domNodes.overloads.textContent=String(e.activeSignature+1).padStart(e.signatures.length.toString().length,"0")+"/"+e.signatures.length,l){let e="";const t=o.parameters[a];e=Array.isArray(t.label)?o.label.substring(t.label[0],t.label[1]):t.label,t.documentation&&(e+="string"===typeof t.documentation?", ".concat(t.documentation):", ".concat(t.documentation.value)),o.documentation&&(e+="string"===typeof o.documentation?", ".concat(o.documentation):", ".concat(o.documentation.value)),this.announcedLabel!==e&&(xe.Z9(ne.NC("hint","{0}, hint",e)),this.announcedLabel=e)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(e){const t=this.renderDisposeables.add(this.markdownRenderer.render(e,{asyncRenderCallback:()=>{var e;null===(e=this.domNodes)||void 0===e||e.scrollbar.scanDomNode()}}));return t.element.classList.add("markdown-docs"),t}hasDocs(e,t){return!!(t&&"string"===typeof t.documentation&&(0,Dn.cW)(t.documentation).length>0)||(!!(t&&"object"===typeof t.documentation&&(0,Dn.cW)(t.documentation).value.length>0)||(!!(e.documentation&&"string"===typeof e.documentation&&(0,Dn.cW)(e.documentation).length>0)||!!(e.documentation&&"object"===typeof e.documentation&&(0,Dn.cW)(e.documentation.value).length>0)))}renderParameters(e,t,i){const[o,n]=this.getParameterLabelOffsets(t,i),s=document.createElement("span");s.textContent=t.label.substring(0,o);const r=document.createElement("span");r.textContent=t.label.substring(o,n),r.className="parameter active";const a=document.createElement("span");a.textContent=t.label.substring(n),X.R3(e,s,r,a)}getParameterLabelOffsets(e,t){const i=e.parameters[t];if(i){if(Array.isArray(i.label))return i.label;if(i.label.length){const t=new RegExp("(\\W|^)".concat((0,ii.ec)(i.label),"(?=\\W|$)"),"g");t.test(e.label);const o=t.lastIndex-i.label.length;return o>=0?[o,t.lastIndex]:[0,0]}return[0,0]}return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return iC.ID}updateMaxHeight(){if(!this.domNodes)return;const e=Math.max(this.editor.getLayoutInfo().height/4,250),t="".concat(e,"px");this.domNodes.element.style.maxHeight=t;const i=this.domNodes.element.getElementsByClassName("phwrapper");i.length&&(i[0].style.maxHeight=t)}};lC.ID="editor.widget.parameterHintsWidget",lC=iC=oC([nC(2,ae.i6),nC(3,pi.v),nC(4,Us.O)],lC),(0,ze.P6G)("editorHoverWidget.highlightForeground",{dark:ze.Gwp,light:ze.Gwp,hcDark:ze.Gwp,hcLight:ze.Gwp},ne.NC("editorHoverWidgetHighlightForeground","Foreground color of the active item in the parameter hint."));var dC,cC=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},hC=function(e,t){return function(i,o){t(i,o,e)}};let uC=dC=class extends Fe.JT{static get(e){return e.getContribution(dC.ID)}constructor(e,t,i){super(),this.editor=e,this.model=this._register(new eC(e,i.signatureHelpProvider)),this._register(this.model.onChangedHints((e=>{var t;e?(this.widget.value.show(),this.widget.value.render(e)):null===(t=this.widget.rawValue)||void 0===t||t.hide()}))),this.widget=new So.o((()=>this._register(t.createInstance(lC,this.editor,this.model))))}cancel(){this.model.cancel()}previous(){var e;null===(e=this.widget.rawValue)||void 0===e||e.previous()}next(){var e;null===(e=this.widget.rawValue)||void 0===e||e.next()}trigger(e){this.model.trigger(e,0)}};uC.ID="editor.controller.parameterHints",uC=dC=cC([hC(1,ni.TG),hC(2,kt.p)],uC);class gC extends ee.R6{constructor(){super({id:"editor.action.triggerParameterHints",label:ne.NC("parameterHints.trigger.label","Trigger Parameter Hints"),alias:"Trigger Parameter Hints",precondition:oe.u.hasSignatureHelpProvider,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:3082,weight:100}})}run(e,t){const i=uC.get(t);null===i||void 0===i||i.trigger({triggerKind:Lt.WW.Invoke})}}(0,ee._K)(uC.ID,uC,2),(0,ee.Qr)(gC);const pC=ee._l.bindToContribution(uC.get);(0,ee.fK)(new pC({id:"closeParameterHints",precondition:Jb.Visible,handler:e=>e.cancel(),kbOpts:{weight:175,kbExpr:oe.u.focus,primary:9,secondary:[1033]}})),(0,ee.fK)(new pC({id:"showPrevParameterHint",precondition:ae.Ao.and(Jb.Visible,Jb.MultipleSignatures),handler:e=>e.previous(),kbOpts:{weight:175,kbExpr:oe.u.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),(0,ee.fK)(new pC({id:"showNextParameterHint",precondition:ae.Ao.and(Jb.Visible,Jb.MultipleSignatures),handler:e=>e.next(),kbOpts:{weight:175,kbExpr:oe.u.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var mC=i(61315),_C=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},fC=function(e,t){return function(i,o){t(i,o,e)}};const vC=new ae.uy("renameInputVisible",!1,(0,ne.NC)("renameInputVisible","Whether the rename input widget is visible"));new ae.uy("renameInputFocused",!1,(0,ne.NC)("renameInputFocused","Whether the rename input widget is focused"));let bC=class{constructor(e,t,i,o,n,s){this._editor=e,this._acceptKeybindings=t,this._themeService=i,this._keybindingService=o,this._logService=s,this.allowEditorOverflow=!0,this._disposables=new Fe.SL,this._visibleContextKey=vC.bindTo(n),this._isEditingRenameCandidate=!1,this._beforeFirstInputFieldEditSW=new Yn.G,this._input=new SC,this._disposables.add(this._input),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(50)&&this._updateFont()}))),this._disposables.add(i.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._domNode.appendChild(this._input.domNode),this._renameCandidateListView=this._disposables.add(new CC(this._domNode,{fontInfo:this._editor.getOption(50),onFocusChange:e=>{this._input.domNode.value=e,this._isEditingRenameCandidate=!1},onSelectionChange:()=>{this._isEditingRenameCandidate=!1,this.acceptInput(!1)}})),this._disposables.add(this._input.onDidChange((()=>{var e,t,i,o;void 0!==(null===(e=this._renameCandidateListView)||void 0===e?void 0:e.focusedCandidate)&&(this._isEditingRenameCandidate=!0),null!==(t=this._timeBeforeFirstInputFieldEdit)&&void 0!==t||(this._timeBeforeFirstInputFieldEdit=this._beforeFirstInputFieldEditSW.elapsed()),!1===(null===(i=this._renameCandidateProvidersCts)||void 0===i?void 0:i.token.isCancellationRequested)&&this._renameCandidateProvidersCts.cancel(),null===(o=this._renameCandidateListView)||void 0===o||o.clearFocus()}))),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(e){var t,i,o,n;if(!this._domNode)return;const s=e.getColor(ze.rh),r=e.getColor(ze.A42);this._domNode.style.backgroundColor=String(null!==(t=e.getColor(ze.D0T))&&void 0!==t?t:""),this._domNode.style.boxShadow=s?" 0 0 8px 2px ".concat(s):"",this._domNode.style.border=r?"1px solid ".concat(r):"",this._domNode.style.color=String(null!==(i=e.getColor(ze.zJb))&&void 0!==i?i:""),this._input.domNode.style.backgroundColor=String(null!==(o=e.getColor(ze.sEe))&&void 0!==o?o:"");const a=e.getColor(ze.dt_);this._input.domNode.style.borderWidth=a?"1px":"0px",this._input.domNode.style.borderStyle=a?"solid":"none",this._input.domNode.style.borderColor=null!==(n=null===a||void 0===a?void 0:a.toString())&&void 0!==n?n:"none"}_updateFont(){if(void 0===this._domNode)return;(0,Dn.p_)(void 0!==this._label,"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined"),this._editor.applyFontInfo(this._input.domNode);const e=this._editor.getOption(50);this._label.style.fontSize="".concat(this._computeLabelFontSize(e.fontSize),"px")}_computeLabelFontSize(e){return.8*e}getPosition(){if(!this._visible)return null;if(!this._editor.hasModel()||!this._editor.getDomNode())return null;const e=X.D6(this.getDomNode().ownerDocument.body),t=X.i(this._editor.getDomNode()),i=this._getTopForPosition();this._nPxAvailableAbove=i+t.top,this._nPxAvailableBelow=e.height-this._nPxAvailableAbove;const o=this._editor.getOption(67),{totalHeight:n}=yC.getLayoutInfo({lineHeight:o}),s=this._nPxAvailableBelow>6*n?[2,1]:[1,2];return{position:this._position,preference:s}}beforeRender(){var e,t;const[i,o]=this._acceptKeybindings;return this._label.innerText=(0,ne.NC)({key:"label",comment:['placeholders are keybindings, e.g "F2 to Rename, Shift+F2 to Preview"']},"{0} to Rename, {1} to Preview",null===(e=this._keybindingService.lookupKeybinding(i))||void 0===e?void 0:e.getLabel(),null===(t=this._keybindingService.lookupKeybinding(o))||void 0===t?void 0:t.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(e){if(this._trace("invoking afterRender, position: ",e?"not null":"null"),null===e)return void this.cancelInput(!0,"afterRender (because position is null)");if(!this._editor.hasModel()||!this._editor.getDomNode())return;(0,Dn.p_)(this._renameCandidateListView),(0,Dn.p_)(void 0!==this._nPxAvailableAbove),(0,Dn.p_)(void 0!==this._nPxAvailableBelow);const t=X.wn(this._input.domNode),i=X.wn(this._label);let o;o=2===e?this._nPxAvailableBelow:this._nPxAvailableAbove,this._renameCandidateListView.layout({height:o-i-t,width:X.w(this._input.domNode)})}acceptInput(e){var t;this._trace("invoking acceptInput"),null===(t=this._currentAcceptInput)||void 0===t||t.call(this,e)}cancelInput(e,t){var i;this._trace("invoking cancelInput, caller: ".concat(t,", _currentCancelInput: ").concat(this._currentAcceptInput?"not undefined":"undefined")),null===(i=this._currentCancelInput)||void 0===i||i.call(this,e)}focusNextRenameSuggestion(){var e;(null===(e=this._renameCandidateListView)||void 0===e?void 0:e.focusNext())||(this._input.domNode.value=this._currentName)}focusPreviousRenameSuggestion(){var e;(null===(e=this._renameCandidateListView)||void 0===e?void 0:e.focusPrevious())||(this._input.domNode.value=this._currentName)}getInput(e,t,i,o,n){const{start:s,end:r}=this._getSelection(e,t);this._renameCandidateProvidersCts=new Yi.A;const a=o(this._renameCandidateProvidersCts.token);this._updateRenameCandidates(a,t,n.token),this._isEditingRenameCandidate=!1,this._domNode.classList.toggle("preview",i),this._position=new We.L(e.startLineNumber,e.startColumn),this._currentName=t,this._input.domNode.value=t,this._input.domNode.setAttribute("selectionStart",s.toString()),this._input.domNode.setAttribute("selectionEnd",r.toString()),this._input.domNode.size=Math.max(1.1*(e.endColumn-e.startColumn),20),this._beforeFirstInputFieldEditSW.reset();const l=new Fe.SL;l.add((0,Fe.OF)((()=>n.dispose(!0)))),l.add((0,Fe.OF)((()=>{void 0!==this._renameCandidateProvidersCts&&(this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0)})));const d=new Oe.CR;return d.p.finally((()=>{l.dispose(),this._hide()})),this._currentCancelInput=e=>{var t;return this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,null===(t=this._renameCandidateListView)||void 0===t||t.clearCandidates(),d.complete(e),!0},this._currentAcceptInput=e=>{this._trace("invoking _currentAcceptInput"),(0,Dn.p_)(void 0!==this._renameCandidateListView);const o=this._renameCandidateListView.nCandidates;let n,s;const r=this._renameCandidateListView.focusedCandidate;void 0!==r?(this._trace("using new name from renameSuggestion"),n=r,s={k:"renameSuggestion"}):(this._trace("using new name from inputField"),n=this._input.domNode.value,s=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"}),n!==t&&0!==n.trim().length?(this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView.clearCandidates(),d.complete({newName:n,wantsPreview:i&&e,stats:{source:s,nRenameSuggestions:o,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit}})):this.cancelInput(!0,"_currentAcceptInput (because newName === value || newName.trim().length === 0)")},l.add(n.token.onCancellationRequested((()=>this.cancelInput(!0,"cts.token.onCancellationRequested")))),l.add(this._editor.onDidBlurEditorWidget((()=>{var e;return this.cancelInput(!(null===(e=this._domNode)||void 0===e?void 0:e.ownerDocument.hasFocus()),"editor.onDidBlurEditorWidget")}))),this._show(),d.p}_getSelection(e,t){(0,Dn.p_)(this._editor.hasModel());const i=this._editor.getSelection();let o=0,n=t.length;return He.e.isEmpty(i)||He.e.spansMultipleLines(i)||!He.e.containsRange(e,i)||(o=Math.max(0,i.startColumn-e.startColumn),n=Math.min(e.endColumn,i.endColumn)-e.startColumn),{start:o,end:n}}_show(){this._trace("invoking _show"),this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout((()=>{this._input.domNode.focus(),this._input.domNode.setSelectionRange(parseInt(this._input.domNode.getAttribute("selectionStart")),parseInt(this._input.domNode.getAttribute("selectionEnd")))}),100)}async _updateRenameCandidates(e,t,i){var o=this;const n=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return o._trace("_updateRenameCandidates",...t)};n("start");const s=await(0,Oe.eP)(Promise.allSettled(e),i);if(void 0===s)return void n("returning early - received updateRenameCandidates results - undefined");const r=s.flatMap((e=>"fulfilled"===e.status&&(0,Dn.$K)(e.value)?e.value:[]));n("received updateRenameCandidates results - total (unfiltered) ".concat(r.length," candidates."));const a=nt.EB(r,(e=>e.newSymbolName));n("distinct candidates - ".concat(a.length," candidates."));const l=a.filter((e=>{let{newSymbolName:i}=e;return i.trim().length>0&&i!==this._input.domNode.value&&i!==t}));n("valid distinct candidates - ".concat(r.length," candidates.")),l.length<1?n("returning early - no valid distinct candidates"):(n("setting candidates"),this._renameCandidateListView.setCandidates(l),n("asking editor to re-layout"),this._editor.layoutContentWidget(this))}_hide(){this._trace("invoked _hide"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){const e=this._editor.getVisibleRanges();let t;return e.length>0?t=e[0].startLineNumber:(this._logService.warn("RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty"),t=Math.max(1,this._position.lineNumber-5)),this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(t)}_trace(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this._logService.trace("RenameWidget",...t)}};bC=_C([fC(2,Ue.XE),fC(3,ki.d),fC(4,ae.i6),fC(5,qp.VZ)],bC);class CC{constructor(e,t){this._disposables=new Fe.SL,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=t.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=t.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),e.appendChild(this._listContainer),this._listWidget=CC._createListWidget(this._listContainer,this._candidateViewHeight,t.fontInfo),this._listWidget.onDidChangeFocus((e=>{1===e.elements.length&&t.onFocusChange(e.elements[0].newSymbolName)}),this._disposables),this._listWidget.onDidChangeSelection((e=>{1===e.elements.length&&t.onSelectionChange()}),this._disposables),this._disposables.add(this._listWidget.onDidBlur((e=>{this._listWidget.setFocus([])}))),this._listWidget.style((0,Fo.TU)({listInactiveFocusForeground:ze.NPS,listInactiveFocusBackground:ze.Vqd}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout(e){let{height:t,width:i}=e;this._availableHeight=t,this._minimumWidth=i}setCandidates(e){this._listWidget.splice(0,0,e);const t=this._pickListHeight(e.length),i=this._pickListWidth(e);this._listWidget.layout(t,i),this._listContainer.style.height="".concat(t,"px"),this._listContainer.style.width="".concat(i,"px"),xe.i7((0,ne.NC)("renameSuggestionsReceivedAria","Received {0} rename suggestions",e.length))}clearCandidates(){this._listContainer.style.height="0px",this._listContainer.style.width="0px",this._listWidget.splice(0,this._listWidget.length,[])}get nCandidates(){return this._listWidget.length}get focusedCandidate(){if(0===this._listWidget.length)return;const e=this._listWidget.getSelectedElements()[0];if(void 0!==e)return e.newSymbolName;const t=this._listWidget.getFocusedElements()[0];return void 0!==t?t.newSymbolName:void 0}focusNext(){if(0===this._listWidget.length)return!1;const e=this._listWidget.getFocus();return 0===e.length?(this._listWidget.focusFirst(),!0):e[0]===this._listWidget.length-1?(this._listWidget.setFocus([]),!1):(this._listWidget.focusNext(),!0)}focusPrevious(){if(0===this._listWidget.length)return!1;const e=this._listWidget.getFocus();return 0===e.length?(this._listWidget.focusLast(),!0):0===e[0]?(this._listWidget.setFocus([]),!1):(this._listWidget.focusPrevious(),!0)}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){const{totalHeight:e}=yC.getLayoutInfo({lineHeight:this._lineHeight});return e}_pickListHeight(e){const t=this._candidateViewHeight*e;return Math.min(t,this._availableHeight,7*this._candidateViewHeight)}_pickListWidth(e){const t=Math.ceil(Math.max(...e.map((e=>e.newSymbolName.length)))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+t+10)}static _createListWidget(e,t,i){const o=new class{getTemplateId(e){return"candidate"}getHeight(e){return t}},n=new class{constructor(){this.templateId="candidate"}renderTemplate(e){return new yC(e,i)}renderElement(e,t,i){i.populate(e)}disposeTemplate(e){e.dispose()}};return new Oo.aV("NewSymbolNameCandidates",e,o,[n],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class SC{constructor(){this._onDidChange=new ui.Q5,this.onDidChange=this._onDidChange.event,this._disposables=new Fe.SL}get domNode(){return this._domNode||(this._domNode=document.createElement("input"),this._domNode.className="rename-input",this._domNode.type="text",this._domNode.setAttribute("aria-label",(0,ne.NC)("renameAriaLabel","Rename input. Type new name and press Enter to commit.")),this._disposables.add(X.nm(this._domNode,"input",(()=>this._onDidChange.fire())))),this._domNode}dispose(){this._onDidChange.dispose(),this._disposables.dispose()}}class yC{constructor(e,t){this._domNode=document.createElement("div"),this._domNode.style.display="flex",this._domNode.style.columnGap="5px",this._domNode.style.alignItems="center",this._domNode.style.height="".concat(t.lineHeight,"px"),this._domNode.style.padding="".concat(yC._PADDING,"px");const i=document.createElement("div");i.style.display="flex",i.style.alignItems="center",i.style.width=i.style.height="".concat(.8*t.lineHeight,"px"),this._domNode.appendChild(i),this._icon=(0,Hn.h)($.l.sparkle),this._icon.style.display="none",i.appendChild(this._icon),this._label=document.createElement("div"),(0,Bg.N)(this._label,t),this._domNode.appendChild(this._label),e.appendChild(this._domNode)}populate(e){this._updateIcon(e),this._updateLabel(e)}_updateIcon(e){var t;const i=!!(null===(t=e.tags)||void 0===t?void 0:t.includes(Lt.w.AIGenerated));this._icon.style.display=i?"inherit":"none"}_updateLabel(e){this._label.innerText=e.newSymbolName}static getLayoutInfo(e){let{lineHeight:t}=e;return{totalHeight:t+2*yC._PADDING}}dispose(){}}yC._PADDING=2;var wC,xC=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},NC=function(e,t){return function(i,o){t(i,o,e)}};class LC{constructor(e,t,i){this.model=e,this.position=t,this._providerRenameIdx=0,this._providers=i.ordered(e)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(e){const t=[];for(this._providerRenameIdx=0;this._providerRenameIdx<this._providers.length;this._providerRenameIdx++){const i=this._providers[this._providerRenameIdx];if(!i.resolveRenameLocation)break;const o=await i.resolveRenameLocation(this.model,this.position,e);if(o){if(!o.rejectReason)return o;t.push(o.rejectReason)}}this._providerRenameIdx=0;const i=this.model.getWordAtPosition(this.position);return i?{range:new He.e(this.position.lineNumber,i.startColumn,this.position.lineNumber,i.endColumn),text:i.word,rejectReason:t.length>0?t.join("\n"):void 0}:{range:He.e.fromPositions(this.position),text:"",rejectReason:t.length>0?t.join("\n"):void 0}}async provideRenameEdits(e,t){return this._provideRenameEdits(e,this._providerRenameIdx,[],t)}async _provideRenameEdits(e,t,i,o){const n=this._providers[t];if(!n)return{edits:[],rejectReason:i.join("\n")};const s=await n.provideRenameEdits(this.model,this.position,e,o);return s?s.rejectReason?this._provideRenameEdits(e,t+1,i.concat(s.rejectReason),o):s:this._provideRenameEdits(e,t+1,i.concat(ne.NC("no result","No result.")),o)}}let kC=wC=class{static get(e){return e.getContribution(wC.ID)}constructor(e,t,i,o,n,s,r,a,l){this.editor=e,this._instaService=t,this._notificationService=i,this._bulkEditService=o,this._progressService=n,this._logService=s,this._configService=r,this._languageFeaturesService=a,this._telemetryService=l,this._disposableStore=new Fe.SL,this._cts=new Yi.A,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(bC,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){var e,t;const i=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new Yi.A,!this.editor.hasModel())return void i("editor has no model");const o=this.editor.getPosition(),n=new LC(this.editor.getModel(),o,this._languageFeaturesService.renameProvider);if(!n.hasProvider())return void i("skeleton has no provider");const s=new ti.Dl(this.editor,5,void 0,this._cts.token);let r;try{i("resolving rename location");const e=n.resolveRenameLocation(s.token);this._progressService.showWhile(e,250),r=await e,i("resolved rename location")}catch(g){return void(g instanceof Ji.FU?i("resolve rename location cancelled",JSON.stringify(g,null,"\t")):(i("resolve rename location failed",g instanceof Error?g:JSON.stringify(g,null,"\t")),("string"===typeof g||(0,Ne.Fr)(g))&&(null===(e=fi.get(this.editor))||void 0===e||e.showMessage(g||ne.NC("resolveRenameLocationFailed","An unknown error occurred while resolving rename location"),o))))}finally{s.dispose()}if(!r)return void i("returning early - no loc");if(r.rejectReason)return i("returning early - rejected with reason: ".concat(r.rejectReason),r.rejectReason),void(null===(t=fi.get(this.editor))||void 0===t||t.showMessage(r.rejectReason,o));if(s.token.isCancellationRequested)return void i("returning early - cts1 cancelled");const a=new ti.Dl(this.editor,5,r.range,this._cts.token),l=this.editor.getModel(),d=this._languageFeaturesService.newSymbolNamesProvider.all(l);i("creating rename input field and awaiting its result");const c=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),h=await this._renameWidget.getInput(r.range,r.text,c,(e=>d.map((t=>t.provideNewSymbolNames(l,r.range,e)))),a);if(i("received response from rename input field"),d.length>0&&this._reportTelemetry(d.length,l.getLanguageId(),h),"boolean"===typeof h)return i("returning early - rename input field response - ".concat(h)),h&&this.editor.focus(),void a.dispose();this.editor.focus(),i("requesting rename edits");const u=(0,Oe.eP)(n.provideRenameEdits(h.newName,a.token),a.token).then((async e=>{if(e)if(this.editor.hasModel()){if(e.rejectReason)return i("returning early - rejected with reason: ".concat(e.rejectReason)),void this._notificationService.info(e.rejectReason);this.editor.setSelection(He.e.fromPositions(this.editor.getSelection().getPosition())),i("applying edits"),this._bulkEditService.apply(e,{editor:this.editor,showPreview:h.wantsPreview,label:ne.NC("label","Renaming '{0}' to '{1}'",null===r||void 0===r?void 0:r.text,h.newName),code:"undoredo.rename",quotableLabel:ne.NC("quotableLabel","Renaming {0} to {1}",null===r||void 0===r?void 0:r.text,h.newName),respectAutoSaveConfig:!0}).then((e=>{i("edits applied"),e.ariaSummary&&(0,xe.Z9)(ne.NC("aria","Successfully renamed '{0}' to '{1}'. Summary: {2}",r.text,h.newName,e.ariaSummary))})).catch((e=>{i("error when applying edits ".concat(JSON.stringify(e,null,"\t"))),this._notificationService.error(ne.NC("rename.failedApply","Rename failed to apply edits")),this._logService.error(e)}))}else i("returning early - no model after rename edits are provided");else i("returning early - no rename edits result")}),(e=>{i("error when providing rename edits",JSON.stringify(e,null,"\t")),this._notificationService.error(ne.NC("rename.failed","Rename failed to compute edits")),this._logService.error(e)})).finally((()=>{a.dispose()}));return i("returning rename operation"),this._progressService.showWhile(u,250),u}acceptRenameInput(e){this._renameWidget.acceptInput(e)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}_reportTelemetry(e,t,i){const o="boolean"===typeof i?{kind:"cancelled",languageId:t,nRenameSuggestionProviders:e}:{kind:"accepted",languageId:t,nRenameSuggestionProviders:e,source:i.stats.source.k,nRenameSuggestions:i.stats.nRenameSuggestions,timeBeforeFirstInputFieldEdit:i.stats.timeBeforeFirstInputFieldEdit,wantsPreview:i.wantsPreview};this._telemetryService.publicLog2("renameInvokedEvent",o)}};kC.ID="editor.contrib.renameController",kC=wC=xC([NC(1,ni.TG),NC(2,Xi.lT),NC(3,Nt.vu),NC(4,yi.ek),NC(5,qp.VZ),NC(6,mC.V),NC(7,kt.p),NC(8,eo.b)],kC);class DC extends ee.R6{constructor(){super({id:"editor.action.rename",label:ne.NC("rename.label","Rename Symbol"),alias:"Rename Symbol",precondition:ae.Ao.and(oe.u.writable,oe.u.hasRenameProvider),kbOpts:{kbExpr:oe.u.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}runCommand(e,t){const i=e.get(te.$),[o,n]=Array.isArray(t)&&t||[void 0,void 0];return _t.o.isUri(o)&&We.L.isIPosition(n)?i.openCodeEditor({resource:o},i.getActiveCodeEditor()).then((e=>{e&&(e.setPosition(n),e.invokeWithinContext((t=>(this.reportTelemetry(t,e),this.run(t,e)))))}),Ji.dL):super.runCommand(e,t)}run(e,t){const i=e.get(qp.VZ),o=kC.get(t);return o?(i.trace("[RenameAction] got controller, running..."),o.run()):(i.trace("[RenameAction] returning early - controller missing"),Promise.resolve())}}(0,ee._K)(kC.ID,kC,4),(0,ee.Qr)(DC);const IC=ee._l.bindToContribution(kC.get);(0,ee.fK)(new IC({id:"acceptRenameInput",precondition:vC,handler:e=>e.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:ae.Ao.and(oe.u.focus,ae.Ao.not("isComposing")),primary:3}})),(0,ee.fK)(new IC({id:"acceptRenameInputWithPreview",precondition:ae.Ao.and(vC,ae.Ao.has("config.editor.rename.enablePreview")),handler:e=>e.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:ae.Ao.and(oe.u.focus,ae.Ao.not("isComposing")),primary:2051}})),(0,ee.fK)(new IC({id:"cancelRenameInput",precondition:vC,handler:e=>e.cancelRenameInput(),kbOpts:{weight:199,kbExpr:oe.u.focus,primary:9,secondary:[1033]}})),(0,se.r1)(class extends se.Ke{constructor(){super({id:"focusNextRenameSuggestion",title:{...ne.vv("focusNextRenameSuggestion","Focus Next Rename Suggestion")},precondition:vC,keybinding:[{primary:2,secondary:[18],weight:199}]})}run(e){const t=e.get(te.$).getFocusedCodeEditor();if(!t)return;const i=kC.get(t);i&&i.focusNextRenameSuggestion()}}),(0,se.r1)(class extends se.Ke{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...ne.vv("focusPreviousRenameSuggestion","Focus Previous Rename Suggestion")},precondition:vC,keybinding:[{primary:1026,secondary:[16],weight:199}]})}run(e){const t=e.get(te.$).getFocusedCodeEditor();if(!t)return;const i=kC.get(t);i&&i.focusPreviousRenameSuggestion()}}),(0,ee.sb)("_executeDocumentRenameProvider",(function(e,t,i){for(var o=arguments.length,n=new Array(o>3?o-3:0),s=3;s<o;s++)n[s-3]=arguments[s];const[r]=n;(0,Dn.p_)("string"===typeof r);const{renameProvider:a}=e.get(kt.p);return async function(e,t,i,o){const n=new LC(t,i,e),s=await n.resolveRenameLocation(Yi.T.None);return(null===s||void 0===s?void 0:s.rejectReason)?{edits:[],rejectReason:s.rejectReason}:n.provideRenameEdits(o,Yi.T.None)}(a,t,i,r)})),(0,ee.sb)("_executePrepareRename",(async function(e,t,i){const{renameProvider:o}=e.get(kt.p),n=new LC(t,i,o),s=await n.resolveRenameLocation(Yi.T.None);if(null===s||void 0===s?void 0:s.rejectReason)throw new Error(s.rejectReason);return s})),ft.B.as(Ln.IP.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:ne.NC("enablePreview","Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var RC=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},PC=function(e,t){return function(i,o){t(i,o,e)}};let MC=class extends Fe.JT{constructor(e,t,i){super(),this.editor=e,this.languageConfigurationService=t,this.editorWorkerService=i,this.decorations=this.editor.createDecorationsCollection(),this.options=this.createOptions(e.getOption(73)),this.computePromise=null,this.currentOccurrences={},this._register(e.onDidChangeModel((t=>{this.currentOccurrences={},this.options=this.createOptions(e.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)}))),this._register(e.onDidChangeModelLanguage((t=>{this.currentOccurrences={},this.options=this.createOptions(e.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)}))),this._register(t.onDidChange((t=>{var i;const o=null===(i=this.editor.getModel())||void 0===i?void 0:i.getLanguageId();o&&t.affects(o)&&(this.currentOccurrences={},this.options=this.createOptions(e.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0))}))),this._register(e.onDidChangeConfiguration((t=>{this.options&&!t.hasChanged(73)||(this.options=this.createOptions(e.getOption(73)),this.updateDecorations([]),this.stop(),this.computeSectionHeaders.schedule(0))}))),this._register(this.editor.onDidChangeModelContent((e=>{this.computeSectionHeaders.schedule()}))),this.computeSectionHeaders=this._register(new Oe.pY((()=>{this.findSectionHeaders()}),250)),this.computeSectionHeaders.schedule(0)}createOptions(e){if(!e||!this.editor.hasModel())return;const t=this.editor.getModel().getLanguageId();if(!t)return;const i=this.languageConfigurationService.getLanguageConfiguration(t).comments,o=this.languageConfigurationService.getLanguageConfiguration(t).foldingRules;return i||(null===o||void 0===o?void 0:o.markers)?{foldingRules:o,findMarkSectionHeaders:e.showMarkSectionHeaders,findRegionSectionHeaders:e.showRegionSectionHeaders}:void 0}findSectionHeaders(){var e,t;if(!this.editor.hasModel()||!(null===(e=this.options)||void 0===e?void 0:e.findMarkSectionHeaders)&&!(null===(t=this.options)||void 0===t?void 0:t.findRegionSectionHeaders))return;const i=this.editor.getModel();if(i.isDisposed()||i.isTooLargeForSyncing())return;const o=i.getVersionId();this.editorWorkerService.findSectionHeaders(i.uri,this.options).then((e=>{i.isDisposed()||i.getVersionId()!==o||this.updateDecorations(e)}))}updateDecorations(e){const t=this.editor.getModel();t&&(e=e.filter((e=>{if(!e.shouldBeInComments)return!0;const i=t.validateRange(e.range),o=t.tokenization.getLineTokens(i.startLineNumber),n=o.findTokenIndexAtOffset(i.startColumn-1),s=o.getStandardTokenType(n);return o.getLanguageId(n)===t.getLanguageId()&&1===s})));const i=Object.values(this.currentOccurrences).map((e=>e.decorationId)),o=e.map((e=>function(e){return{range:e.range,options:Be.qx.createDynamic({description:"section-header",stickiness:3,collapseOnReplaceEdit:!0,minimap:{color:void 0,position:1,sectionHeaderStyle:e.hasSeparatorLine?2:1,sectionHeaderText:e.text}})}}(e)));this.editor.changeDecorations((t=>{const n=t.deltaDecorations(i,o);this.currentOccurrences={};for(let i=0,o=n.length;i<o;i++){const t={sectionHeader:e[i],decorationId:n[i]};this.currentOccurrences[t.decorationId]=t}}))}stop(){this.computeSectionHeaders.cancel(),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop(),this.decorations.clear()}};MC.ID="editor.sectionHeaderDetector",MC=RC([PC(1,Xn.c_),PC(2,bg.p)],MC),(0,ee._K)(MC.ID,MC,1);var TC=i(24415),EC=i(12966);function AC(e){const t=new Uint32Array(function(e){let t=0;if(t+=2,"full"===e.type)t+=1+e.data.length;else{t+=1,t+=3*e.deltas.length;for(const i of e.deltas)i.data&&(t+=i.data.length)}return t}(e));let i=0;if(t[i++]=e.id,"full"===e.type)t[i++]=1,t[i++]=e.data.length,t.set(e.data,i),i+=e.data.length;else{t[i++]=2,t[i++]=e.deltas.length;for(const o of e.deltas)t[i++]=o.start,t[i++]=o.deleteCount,o.data?(t[i++]=o.data.length,t.set(o.data,i),i+=o.data.length):t[i++]=0}return function(e){const t=new Uint8Array(e.buffer,e.byteOffset,4*e.length);return it.r()||function(e){for(let t=0,i=e.length;t<i;t+=4){const i=e[t+0],o=e[t+1],n=e[t+2],s=e[t+3];e[t+0]=s,e[t+1]=n,e[t+2]=o,e[t+3]=i}}(t),EC.KN.wrap(t)}(t)}function OC(e){return e&&!!e.data}function FC(e){return e&&Array.isArray(e.edits)}class WC{constructor(e,t,i){this.provider=e,this.tokens=t,this.error=i}}function HC(e,t){return e.has(t)}async function VC(e,t,i,o,n){const s=function(e,t){const i=e.orderedGroups(t);return i.length>0?i[0]:[]}(e,t),r=await Promise.all(s.map((async e=>{let s,r=null;try{s=await e.provideDocumentSemanticTokens(t,e===i?o:null,n)}catch(a){r=a,s=null}return s&&(OC(s)||FC(s))||(s=null),new WC(e,s,r)})));for(const a of r){if(a.error)throw a.error;if(a.tokens)return a}return r.length>0?r[0]:null}class BC{constructor(e,t){this.provider=e,this.tokens=t}}function zC(e,t){const i=e.orderedGroups(t);return i.length>0?i[0]:[]}async function UC(e,t,i,o){const n=zC(e,t),s=await Promise.all(n.map((async e=>{let n;try{n=await e.provideDocumentRangeSemanticTokens(t,i,o)}catch(s){(0,Ji.Cp)(s),n=null}return n&&OC(n)||(n=null),new BC(e,n)})));for(const r of s)if(r.tokens)return r;return s.length>0?s[0]:null}ye.P.registerCommand("_provideDocumentSemanticTokensLegend",(async function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];const[n]=i;(0,Dn.p_)(n instanceof _t.o);const s=e.get($i.q).getModel(n);if(!s)return;const{documentSemanticTokensProvider:r}=e.get(kt.p),a=function(e,t){const i=e.orderedGroups(t);return i.length>0?i[0]:null}(r,s);return a?a[0].getLegend():e.get(ye.H).executeCommand("_provideDocumentRangeSemanticTokensLegend",n)})),ye.P.registerCommand("_provideDocumentSemanticTokens",(async function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];const[n]=i;(0,Dn.p_)(n instanceof _t.o);const s=e.get($i.q).getModel(n);if(!s)return;const{documentSemanticTokensProvider:r}=e.get(kt.p);if(!HC(r,s))return e.get(ye.H).executeCommand("_provideDocumentRangeSemanticTokens",n,s.getFullModelRange());const a=await VC(r,s,null,null,Yi.T.None);if(!a)return;const{provider:l,tokens:d}=a;if(!d||!OC(d))return;const c=AC({id:0,type:"full",data:d.data});return d.resultId&&l.releaseDocumentSemanticTokens(d.resultId),c})),ye.P.registerCommand("_provideDocumentRangeSemanticTokensLegend",(async function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];const[n,s]=i;(0,Dn.p_)(n instanceof _t.o);const r=e.get($i.q).getModel(n);if(!r)return;const{documentRangeSemanticTokensProvider:a}=e.get(kt.p),l=zC(a,r);if(0===l.length)return;if(1===l.length)return l[0].getLegend();if(!s||!He.e.isIRange(s))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),l[0].getLegend();const d=await UC(a,r,He.e.lift(s),Yi.T.None);return d?d.provider.getLegend():void 0})),ye.P.registerCommand("_provideDocumentRangeSemanticTokens",(async function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];const[n,s]=i;(0,Dn.p_)(n instanceof _t.o),(0,Dn.p_)(He.e.isIRange(s));const r=e.get($i.q).getModel(n);if(!r)return;const{documentRangeSemanticTokensProvider:a}=e.get(kt.p),l=await UC(a,r,He.e.lift(s),Yi.T.None);return l&&l.tokens?AC({id:0,type:"full",data:l.tokens.data}):void 0}));var KC=i(35157);const jC="editor.semanticHighlighting";function qC(e,t,i){var o;const n=null===(o=i.getValue(jC,{overrideIdentifier:e.getLanguageId(),resource:e.uri}))||void 0===o?void 0:o.enabled;return"boolean"===typeof n?n:t.getColorTheme().semanticHighlighting}var GC,QC=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ZC=function(e,t){return function(i,o){t(i,o,e)}};let YC=class extends Fe.JT{constructor(e,t,i,o,n,s){super(),this._watchers=Object.create(null);const r=t=>{this._watchers[t.uri.toString()]=new JC(t,e,i,n,s)},a=(e,t)=>{t.dispose(),delete this._watchers[e.uri.toString()]},l=()=>{for(const e of t.getModels()){const t=this._watchers[e.uri.toString()];qC(e,i,o)?t||r(e):t&&a(e,t)}};t.getModels().forEach((e=>{qC(e,i,o)&&r(e)})),this._register(t.onModelAdded((e=>{qC(e,i,o)&&r(e)}))),this._register(t.onModelRemoved((e=>{const t=this._watchers[e.uri.toString()];t&&a(e,t)}))),this._register(o.onDidChangeConfiguration((e=>{e.affectsConfiguration(jC)&&l()}))),this._register(i.onDidColorThemeChange(l))}dispose(){for(const e of Object.values(this._watchers))e.dispose();super.dispose()}};YC=QC([ZC(0,KC.s),ZC(1,$i.q),ZC(2,Ue.XE),ZC(3,re.Ui),ZC(4,jn.A),ZC(5,kt.p)],YC);let JC=GC=class extends Fe.JT{constructor(e,t,i,o,n){super(),this._semanticTokensStylingService=t,this._isDisposed=!1,this._model=e,this._provider=n.documentSemanticTokensProvider,this._debounceInformation=o.for(this._provider,"DocumentSemanticTokens",{min:GC.REQUEST_MIN_DELAY,max:GC.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new Oe.pY((()=>this._fetchDocumentSemanticTokensNow()),GC.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent((()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}))),this._register(this._model.onDidChangeAttached((()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}))),this._register(this._model.onDidChangeLanguage((()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)})));const s=()=>{(0,Fe.B9)(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const t of this._provider.all(e))"function"===typeof t.onDidChange&&this._documentProvidersChangeListeners.push(t.onDidChange((()=>{this._currentDocumentRequestCancellationTokenSource?this._providersChangedDuringRequest=!0:this._fetchDocumentSemanticTokens.schedule(0)})))};s(),this._register(this._provider.onDidChange((()=>{s(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}))),this._register(i.onDidColorThemeChange((e=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))}))),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),(0,Fe.B9)(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!HC(this._provider,this._model))return void(this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1));if(!this._model.isAttachedToEditor())return;const e=new Yi.A,t=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,i=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,o=VC(this._provider,this._model,t,i,e.token);this._currentDocumentRequestCancellationTokenSource=e,this._providersChangedDuringRequest=!1;const n=[],s=this._model.onDidChangeContent((e=>{n.push(e)})),r=new Yn.G(!1);o.then((e=>{if(this._debounceInformation.update(this._model,r.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,s.dispose(),e){const{provider:t,tokens:i}=e,o=this._semanticTokensStylingService.getStyling(t);this._setDocumentSemanticTokens(t,i||null,o,n)}else this._setDocumentSemanticTokens(null,null,null,n)}),(e=>{e&&(Ji.n2(e)||"string"===typeof e.message&&-1!==e.message.indexOf("busy"))||Ji.dL(e),this._currentDocumentRequestCancellationTokenSource=null,s.dispose(),(n.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))}))}static _copy(e,t,i,o,n){n=Math.min(n,i.length-o,e.length-t);for(let s=0;s<n;s++)i[o+s]=e[t+s]}_setDocumentSemanticTokens(e,t,i,o){const n=this._currentDocumentResponse,s=()=>{(o.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};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.tokenization.setSemanticTokens(null,!0),void s();if(FC(t)){if(!n)return void this._model.tokenization.setSemanticTokens(null,!0);if(0===t.edits.length)t={resultId:t.resultId,data:n.data};else{let e=0;for(const i of t.edits)e+=(i.data?i.data.length:0)-i.deleteCount;const o=n.data,s=new Uint32Array(o.length+e);let r=o.length,a=s.length;for(let l=t.edits.length-1;l>=0;l--){const e=t.edits[l];if(e.start>o.length)return i.warnInvalidEditStart(n.resultId,t.resultId,l,e.start,o.length),void this._model.tokenization.setSemanticTokens(null,!0);const d=r-(e.start+e.deleteCount);d>0&&(GC._copy(o,r-d,s,a-d,d),a-=d),e.data&&(GC._copy(e.data,0,s,a-e.data.length,e.data.length),a-=e.data.length),r=e.start}r>0&&GC._copy(o,0,s,0,r),t={resultId:t.resultId,data:s}}}if(OC(t)){this._currentDocumentResponse=new $C(e,t.resultId,t.data);const n=(0,TC.h)(t,i,this._model.getLanguageId());if(o.length>0)for(const e of o)for(const t of n)for(const i of e.changes)t.applyEdit(i.range,i.text);this._model.tokenization.setSemanticTokens(n,!0)}else this._model.tokenization.setSemanticTokens(null,!0);s()}else this._model.tokenization.setSemanticTokens(null,!1)}};JC.REQUEST_MIN_DELAY=300,JC.REQUEST_MAX_DELAY=2e3,JC=GC=QC([ZC(1,KC.s),ZC(2,Ue.XE),ZC(3,jn.A),ZC(4,kt.p)],JC);class $C{constructor(e,t,i){this.provider=e,this.resultId=t,this.data=i}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}(0,es.y)(YC);var XC=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},eS=function(e,t){return function(i,o){t(i,o,e)}};let tS=class extends Fe.JT{constructor(e,t,i,o,n,s){super(),this._semanticTokensStylingService=t,this._themeService=i,this._configurationService=o,this._editor=e,this._provider=s.documentRangeSemanticTokensProvider,this._debounceInformation=n.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new Oe.pY((()=>this._tokenizeViewportNow()),100)),this._outstandingRequests=[];const r=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))};this._register(this._editor.onDidScrollChange((()=>{r()}))),this._register(this._editor.onDidChangeModel((()=>{this._cancelAll(),r()}))),this._register(this._editor.onDidChangeModelContent((e=>{this._cancelAll(),r()}))),this._register(this._provider.onDidChange((()=>{this._cancelAll(),r()}))),this._register(this._configurationService.onDidChangeConfiguration((e=>{e.affectsConfiguration(jC)&&(this._cancelAll(),r())}))),this._register(this._themeService.onDidColorThemeChange((()=>{this._cancelAll(),r()}))),r()}_cancelAll(){for(const e of this._outstandingRequests)e.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(e){for(let t=0,i=this._outstandingRequests.length;t<i;t++)if(this._outstandingRequests[t]===e)return void this._outstandingRequests.splice(t,1)}_tokenizeViewportNow(){if(!this._editor.hasModel())return;const e=this._editor.getModel();if(e.tokenization.hasCompleteSemanticTokens())return;if(!qC(e,this._themeService,this._configurationService))return void(e.tokenization.hasSomeSemanticTokens()&&e.tokenization.setSemanticTokens(null,!1));if(!function(e,t){return e.has(t)}(this._provider,e))return void(e.tokenization.hasSomeSemanticTokens()&&e.tokenization.setSemanticTokens(null,!1));const t=this._editor.getVisibleRangesPlusViewportAboveBelow();this._outstandingRequests=this._outstandingRequests.concat(t.map((t=>this._requestRange(e,t))))}_requestRange(e,t){const i=e.getVersionId(),o=(0,Oe.PG)((i=>Promise.resolve(UC(this._provider,e,t,i)))),n=new Yn.G(!1);return o.then((o=>{if(this._debounceInformation.update(e,n.elapsed()),!o||!o.tokens||e.isDisposed()||e.getVersionId()!==i)return;const{provider:s,tokens:r}=o,a=this._semanticTokensStylingService.getStyling(s);e.tokenization.setPartialSemanticTokens(t,(0,TC.h)(r,a,e.getLanguageId()))})).then((()=>this._removeOutstandingRequest(o)),(()=>this._removeOutstandingRequest(o))),o}};tS.ID="editor.contrib.viewportSemanticTokens",tS=XC([eS(1,KC.s),eS(2,Ue.XE),eS(3,re.Ui),eS(4,jn.A),eS(5,kt.p)],tS),(0,ee._K)(tS.ID,tS,1);class iS{constructor(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.selectSubwords=e}provideSelectionRanges(e,t){const i=[];for(const o of t){const t=[];i.push(t),this.selectSubwords&&this._addInWordRanges(t,e,o),this._addWordRanges(t,e,o),this._addWhitespaceLine(t,e,o),t.push({range:e.getFullModelRange()})}return i}_addInWordRanges(e,t,i){const o=t.getWordAtPosition(i);if(!o)return;const{word:n,startColumn:s}=o,r=i.column-s;let a=r,l=r,d=0;for(;a>=0;a--){const e=n.charCodeAt(a);if(a!==r&&(95===e||45===e))break;if((0,ii.mK)(e)&&(0,ii.df)(d))break;d=e}for(a+=1;l<n.length;l++){const e=n.charCodeAt(l);if((0,ii.df)(e)&&(0,ii.mK)(d))break;if(95===e||45===e)break;d=e}a<l&&e.push({range:new He.e(i.lineNumber,s+a,i.lineNumber,s+l)})}_addWordRanges(e,t,i){const o=t.getWordAtPosition(i);o&&e.push({range:new He.e(i.lineNumber,o.startColumn,i.lineNumber,o.endColumn)})}_addWhitespaceLine(e,t,i){t.getLineLength(i.lineNumber)>0&&0===t.getLineFirstNonWhitespaceColumn(i.lineNumber)&&0===t.getLineLastNonWhitespaceColumn(i.lineNumber)&&e.push({range:new He.e(i.lineNumber,1,i.lineNumber,t.getLineMaxColumn(i.lineNumber))})}}var oS,nS=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},sS=function(e,t){return function(i,o){t(i,o,e)}};class rS{constructor(e,t){this.index=e,this.ranges=t}mov(e){const t=this.index+(e?1:-1);if(t<0||t>=this.ranges.length)return this;const i=new rS(t,this.ranges);return i.ranges[t].equalsRange(this.ranges[this.index])?i.mov(e):i}}let aS=oS=class{static get(e){return e.getContribution(oS.ID)}constructor(e,t){this._editor=e,this._languageFeaturesService=t,this._ignoreSelection=!1}dispose(){var e;null===(e=this._selectionListener)||void 0===e||e.dispose()}async run(e){if(!this._editor.hasModel())return;const t=this._editor.getSelections(),i=this._editor.getModel();if(this._state||await dS(this._languageFeaturesService.selectionRangeProvider,i,t.map((e=>e.getPosition())),this._editor.getOption(113),Yi.T.None).then((e=>{var i;if(nt.Of(e)&&e.length===t.length&&this._editor.hasModel()&&nt.fS(this._editor.getSelections(),t,((e,t)=>e.equalsSelection(t)))){for(let i=0;i<e.length;i++)e[i]=e[i].filter((e=>e.containsPosition(t[i].getStartPosition())&&e.containsPosition(t[i].getEndPosition()))),e[i].unshift(t[i]);this._state=e.map((e=>new rS(0,e))),null===(i=this._selectionListener)||void 0===i||i.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition((()=>{var e;this._ignoreSelection||(null===(e=this._selectionListener)||void 0===e||e.dispose(),this._state=void 0)}))}})),!this._state)return;this._state=this._state.map((t=>t.mov(e)));const o=this._state.map((e=>ke.Y.fromPositions(e.ranges[e.index].getStartPosition(),e.ranges[e.index].getEndPosition())));this._ignoreSelection=!0;try{this._editor.setSelections(o)}finally{this._ignoreSelection=!1}}};aS.ID="editor.contrib.smartSelectController",aS=oS=nS([sS(1,kt.p)],aS);class lS extends ee.R6{constructor(e,t){super(t),this._forward=e}async run(e,t){const i=aS.get(t);i&&await i.run(this._forward)}}ye.P.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");async function dS(e,t,i,o,n){const s=e.all(t).concat(new iS(o.selectSubwords));1===s.length&&s.unshift(new zm);const r=[],a=[];for(const l of s)r.push(Promise.resolve(l.provideSelectionRanges(t,i,n)).then((e=>{if(nt.Of(e)&&e.length===i.length)for(let t=0;t<i.length;t++){a[t]||(a[t]=[]);for(const o of e[t])He.e.isIRange(o.range)&&He.e.containsPosition(o.range,i[t])&&a[t].push(He.e.lift(o.range))}}),Ji.Cp));return await Promise.all(r),a.map((e=>{if(0===e.length)return[];e.sort(((e,t)=>We.L.isBefore(e.getStartPosition(),t.getStartPosition())?1:We.L.isBefore(t.getStartPosition(),e.getStartPosition())||We.L.isBefore(e.getEndPosition(),t.getEndPosition())?-1:We.L.isBefore(t.getEndPosition(),e.getEndPosition())?1:0));const i=[];let n;for(const t of e)(!n||He.e.containsRange(t,n)&&!He.e.equalsRange(t,n))&&(i.push(t),n=t);if(!o.selectLeadingAndTrailingWhitespace)return i;const s=[i[0]];for(let o=1;o<i.length;o++){const e=i[o-1],n=i[o];if(n.startLineNumber!==e.startLineNumber||n.endLineNumber!==e.endLineNumber){const i=new He.e(e.startLineNumber,t.getLineFirstNonWhitespaceColumn(e.startLineNumber),e.endLineNumber,t.getLineLastNonWhitespaceColumn(e.endLineNumber));i.containsRange(e)&&!i.equalsRange(e)&&n.containsRange(i)&&!n.equalsRange(i)&&s.push(i);const o=new He.e(e.startLineNumber,1,e.endLineNumber,t.getLineMaxColumn(e.endLineNumber));o.containsRange(e)&&!o.equalsRange(i)&&n.containsRange(o)&&!n.equalsRange(o)&&s.push(o)}s.push(n)}return s}))}(0,ee._K)(aS.ID,aS,4),(0,ee.Qr)(class extends lS{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:ne.NC("smartSelect.expand","Expand Selection"),alias:"Expand Selection",precondition:void 0,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:se.eH.MenubarSelectionMenu,group:"1_basic",title:ne.NC({key:"miSmartSelectGrow",comment:["&& denotes a mnemonic"]},"&&Expand Selection"),order:2}})}}),(0,ee.Qr)(class extends lS{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:ne.NC("smartSelect.shrink","Shrink Selection"),alias:"Shrink Selection",precondition:void 0,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:se.eH.MenubarSelectionMenu,group:"1_basic",title:ne.NC({key:"miSmartSelectShrink",comment:["&& denotes a mnemonic"]},"&&Shrink Selection"),order:3}})}}),ye.P.registerCommand("_executeSelectionRangeProvider",(async function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];const[n,s]=i;(0,Dn.p_)(_t.o.isUri(n));const r=e.get(kt.p).selectionRangeProvider,a=await e.get(Ks.S).createModelReference(n);try{return dS(r,a.object.textEditorModel,s,{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},Yi.T.None)}finally{a.dispose()}}));const cS=Object.freeze({View:(0,ne.vv)("view","View"),Help:(0,ne.vv)("help","Help"),Test:(0,ne.vv)("test","Test"),File:(0,ne.vv)("file","File"),Preferences:(0,ne.vv)("preferences","Preferences"),Developer:(0,ne.vv)({key:"developer",comment:["A developer on Code itself or someone diagnosing issues in Code"]},"Developer")});var hS=i(86115);class uS{constructor(e,t,i){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;this.startLineNumbers=e,this.endLineNumbers=t,this.lastLineRelativePosition=i,this.showEndForLine=o}equals(e){return!!e&&this.lastLineRelativePosition===e.lastLineRelativePosition&&this.showEndForLine===e.showEndForLine&&(0,nt.fS)(this.startLineNumbers,e.startLineNumbers)&&(0,nt.fS)(this.endLineNumbers,e.endLineNumbers)}}const gS=(0,Vg.Z)("stickyScrollViewLayer",{createHTML:e=>e}),pS="data-sticky-line-index",mS="data-sticky-is-line",_S="data-sticky-is-folding-icon";class fS extends Fe.JT{constructor(e){super(),this._editor=e,this._foldingIconStore=new Fe.SL,this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._lineHeight=this._editor.getOption(67),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",e instanceof tr),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable);const t=()=>{this._linesDomNode.style.left=this._editor.getOption(115).scrollWithEditor?"-".concat(this._editor.getScrollLeft(),"px"):"0px"};this._register(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(115)&&t(),e.hasChanged(67)&&(this._lineHeight=this._editor.getOption(67))}))),this._register(this._editor.onDidScrollChange((e=>{e.scrollLeftChanged&&t(),e.scrollWidthChanged&&this._updateWidgetWidth()}))),this._register(this._editor.onDidChangeModel((()=>{t(),this._updateWidgetWidth()}))),this._register(this._foldingIconStore),t(),this._register(this._editor.onDidLayoutChange((e=>{this._updateWidgetWidth()}))),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(e){return this._renderedStickyLines.find((t=>t.lineNumber===e))}getCurrentLines(){return this._lineNumbers}setState(e,t,i){if(void 0===i&&(!this._previousState&&!e||this._previousState&&this._previousState.equals(e)))return;const o=this._isWidgetHeightZero(e),n=o?void 0:e,s=o?0:this._findLineToRebuildWidgetFrom(e,i);this._renderRootNode(n,t,s),this._previousState=e}_isWidgetHeightZero(e){if(!e)return!0;const t=e.startLineNumbers.length*this._lineHeight+e.lastLineRelativePosition;if(t>0){this._lastLineRelativePosition=e.lastLineRelativePosition;const t=[...e.startLineNumbers];null!==e.showEndForLine&&(t[e.showEndForLine]=e.endLineNumbers[e.showEndForLine]),this._lineNumbers=t}else this._lastLineRelativePosition=0,this._lineNumbers=[];return 0===t}_findLineToRebuildWidgetFrom(e,t){if(!e||!this._previousState)return 0;if(void 0!==t)return t;const i=this._previousState,o=e.startLineNumbers.findIndex((e=>!i.startLineNumbers.includes(e)));return-1===o?0:o}_updateWidgetWidth(){const e=this._editor.getLayoutInfo(),t=e.contentLeft;this._lineNumbersDomNode.style.width="".concat(t,"px"),this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth","".concat(this._editor.getScrollWidth()-e.verticalScrollbarWidth,"px")),this._rootDomNode.style.width="".concat(e.width-e.verticalScrollbarWidth,"px")}_clearStickyLinesFromLine(e){this._foldingIconStore.clear();for(let t=e;t<this._renderedStickyLines.length;t++){const e=this._renderedStickyLines[t];e.lineNumberDomNode.remove(),e.lineDomNode.remove()}this._renderedStickyLines=this._renderedStickyLines.slice(0,e),this._rootDomNode.style.display="none"}_useFoldingOpacityTransition(e){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition","opacity ".concat(e?.5:0,"s"))}_setFoldingIconsVisibility(e){for(const t of this._renderedStickyLines){const i=t.foldingIcon;i&&i.setVisible(!!e||i.isCollapsed)}}async _renderRootNode(e,t,i){if(this._clearStickyLinesFromLine(i),!e)return;for(const r of this._renderedStickyLines)this._updateTopAndZIndexOfStickyLine(r);const o=this._editor.getLayoutInfo(),n=this._lineNumbers.slice(i);for(const[r,a]of n.entries()){const e=this._renderChildNode(r+i,a,t,o);e&&(this._linesDomNode.appendChild(e.lineDomNode),this._lineNumbersDomNode.appendChild(e.lineNumberDomNode),this._renderedStickyLines.push(e))}t&&(this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin));const s=this._lineNumbers.length*this._lineHeight+this._lastLineRelativePosition;this._rootDomNode.style.display="block",this._lineNumbersDomNode.style.height="".concat(s,"px"),this._linesDomNodeScrollable.style.height="".concat(s,"px"),this._rootDomNode.style.height="".concat(s,"px"),this._rootDomNode.style.marginLeft="0px",this._minContentWidthInPx=Math.max(...this._renderedStickyLines.map((e=>e.scrollWidth)))+o.verticalScrollbarWidth,this._editor.layoutOverlayWidget(this)}_setFoldingHoverListeners(){"mouseover"===this._editor.getOption(110)&&(this._foldingIconStore.add(X.nm(this._lineNumbersDomNode,X.tw.MOUSE_ENTER,(()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)}))),this._foldingIconStore.add(X.nm(this._lineNumbersDomNode,X.tw.MOUSE_LEAVE,(()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)}))))}_renderChildNode(e,t,i,o){const n=this._editor._getViewModel();if(!n)return;const s=n.coordinatesConverter.convertModelPositionToViewPosition(new We.L(t,1)).lineNumber,r=n.getViewLineRenderingData(s),a=this._editor.getOption(68);let l;try{l=Kg.Kp.filter(r.inlineDecorations,s,r.minColumn,r.maxColumn)}catch(b){l=[]}const d=new jg.IJ(!0,!0,r.content,r.continuesWithWrappedLine,r.isBasicASCII,r.containsRTL,0,r.tokens,l,r.tabSize,r.startVisibleColumn,1,1,1,500,"none",!0,!0,null),c=new zg.HT(2e3),h=(0,jg.d1)(d,c);let u;u=gS?gS.createHTML(c.build()):c.build();const g=document.createElement("span");g.setAttribute(pS,String(e)),g.setAttribute(mS,""),g.setAttribute("role","listitem"),g.tabIndex=0,g.className="sticky-line-content",g.classList.add("stickyLine".concat(t)),g.style.lineHeight="".concat(this._lineHeight,"px"),g.innerHTML=u;const p=document.createElement("span");p.setAttribute(pS,String(e)),p.setAttribute("data-sticky-is-line-number",""),p.className="sticky-line-number",p.style.lineHeight="".concat(this._lineHeight,"px");const m=o.contentLeft;p.style.width="".concat(m,"px");const _=document.createElement("span");1===a.renderType||3===a.renderType&&t%10===0?_.innerText=t.toString():2===a.renderType&&(_.innerText=Math.abs(t-this._editor.getPosition().lineNumber).toString()),_.className="sticky-line-number-inner",_.style.lineHeight="".concat(this._lineHeight,"px"),_.style.width="".concat(o.lineNumbersWidth,"px"),_.style.paddingLeft="".concat(o.lineNumbersLeft,"px"),p.appendChild(_);const f=this._renderFoldingIconForLine(i,t);f&&p.appendChild(f.domNode),this._editor.applyFontInfo(g),this._editor.applyFontInfo(_),p.style.lineHeight="".concat(this._lineHeight,"px"),g.style.lineHeight="".concat(this._lineHeight,"px"),p.style.height="".concat(this._lineHeight,"px"),g.style.height="".concat(this._lineHeight,"px");const v=new vS(e,t,g,p,f,h.characterMapping,g.scrollWidth);return this._updateTopAndZIndexOfStickyLine(v)}_updateTopAndZIndexOfStickyLine(e){var t;const i=e.index,o=e.lineDomNode,n=e.lineNumberDomNode,s=i===this._lineNumbers.length-1;o.style.zIndex=s?"0":"1",n.style.zIndex=s?"0":"1";const r="".concat(i*this._lineHeight+this._lastLineRelativePosition+((null===(t=e.foldingIcon)||void 0===t?void 0:t.isCollapsed)?1:0),"px"),a="".concat(i*this._lineHeight,"px");return o.style.top=s?r:a,n.style.top=s?r:a,e}_renderFoldingIconForLine(e,t){const i=this._editor.getOption(110);if(!e||"never"===i)return;const o=e.regions,n=o.findRange(t),s=o.getStartLineNumber(n);if(!(t===s))return;const r=o.isCollapsed(n),a=new bS(r,s,o.getEndLineNumber(n),this._lineHeight);return a.setVisible(!!this._isOnGlyphMargin||(r||"always"===i)),a.domNode.setAttribute(_S,""),a}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:null}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(e){0<=e&&e<this._renderedStickyLines.length&&this._renderedStickyLines[e].lineDomNode.focus()}getEditorPositionFromNode(e){if(!e||e.children.length>0)return null;const t=this._getRenderedStickyLineFromChildDomNode(e);if(!t)return null;const i=(0,hS.dL)(t.characterMapping,e,0);return new We.L(t.lineNumber,i)}getLineNumberFromChildDomNode(e){var t,i;return null!==(i=null===(t=this._getRenderedStickyLineFromChildDomNode(e))||void 0===t?void 0:t.lineNumber)&&void 0!==i?i:null}_getRenderedStickyLineFromChildDomNode(e){const t=this.getLineIndexFromChildDomNode(e);return null===t||t<0||t>=this._renderedStickyLines.length?null:this._renderedStickyLines[t]}getLineIndexFromChildDomNode(e){const t=this._getAttributeValue(e,pS);return t?parseInt(t,10):null}isInStickyLine(e){return void 0!==this._getAttributeValue(e,mS)}isInFoldingIconDomNode(e){return void 0!==this._getAttributeValue(e,_S)}_getAttributeValue(e,t){for(;e&&e!==this._rootDomNode;){const i=e.getAttribute(t);if(null!==i)return i;e=e.parentElement}}}class vS{constructor(e,t,i,o,n,s,r){this.index=e,this.lineNumber=t,this.lineDomNode=i,this.lineNumberDomNode=o,this.foldingIcon=n,this.characterMapping=s,this.scrollWidth=r}}class bS{constructor(e,t,i,o){this.isCollapsed=e,this.foldingStartLine=t,this.foldingEndLine=i,this.dimension=o,this.domNode=document.createElement("div"),this.domNode.style.width="".concat(o,"px"),this.domNode.style.height="".concat(o,"px"),this.domNode.className=oi.k.asClassName(e?Zu:Qu)}setVisible(e){this.domNode.style.cursor=e?"pointer":"default",this.domNode.style.opacity=e?"1":"0"}}class CS{constructor(e,t){this.startLineNumber=e,this.endLineNumber=t}}class SS{constructor(e,t,i){this.range=e,this.children=t,this.parent=i}}class yS{constructor(e,t,i,o){this.uri=e,this.version=t,this.element=i,this.outlineProviderId=o}}var wS,xS,NS=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},LS=function(e,t){return function(i,o){t(i,o,e)}};!function(e){e.OUTLINE_MODEL="outlineModel",e.FOLDING_PROVIDER_MODEL="foldingProviderModel",e.INDENTATION_MODEL="indentationModel"}(wS||(wS={})),function(e){e[e.VALID=0]="VALID",e[e.INVALID=1]="INVALID",e[e.CANCELED=2]="CANCELED"}(xS||(xS={}));let kS=class extends Fe.JT{constructor(e,t,i,o){switch(super(),this._editor=e,this._languageConfigurationService=i,this._languageFeaturesService=o,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new Oe.vp(300)),this._updateOperation=this._register(new Fe.SL),this._editor.getOption(115).defaultModel){case wS.OUTLINE_MODEL:this._modelProviders.push(new IS(this._editor,o));case wS.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new MS(this._editor,t,o));case wS.INDENTATION_MODEL:this._modelProviders.push(new PS(this._editor,i))}}dispose(){this._modelProviders.forEach((e=>e.dispose())),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(e){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger((async()=>{for(const t of this._modelProviders){const{statusPromise:i,modelPromise:o}=t.computeStickyModel(e);this._modelPromise=o;const n=await i;if(this._modelPromise!==o)return null;switch(n){case xS.CANCELED:return this._updateOperation.clear(),null;case xS.VALID:return t.stickyModel}}return null})).catch((e=>((0,Ji.dL)(e),null)))}};kS=NS([LS(2,ni.TG),LS(3,kt.p)],kS);class DS extends Fe.JT{constructor(e){super(),this._editor=e,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,xS.INVALID}computeStickyModel(e){if(e.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};const t=(0,Oe.PG)((e=>this.createModelFromProvider(e)));return{statusPromise:t.then((t=>this.isModelValid(t)?e.isCancellationRequested?xS.CANCELED:(this._stickyModel=this.createStickyModel(e,t),xS.VALID):this._invalid())).then(void 0,(e=>((0,Ji.dL)(e),xS.CANCELED))),modelPromise:t}}isModelValid(e){return!0}isProviderValid(){return!0}}let IS=class extends DS{constructor(e,t){super(e),this._languageFeaturesService=t}createModelFromProvider(e){return Eg.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),e)}createStickyModel(e,t){var i;const{stickyOutlineElement:o,providerID:n}=this._stickyModelFromOutlineModel(t,null===(i=this._stickyModel)||void 0===i?void 0:i.outlineProviderId),s=this._editor.getModel();return new yS(s.uri,s.getVersionId(),o,n)}isModelValid(e){return e&&e.children.size>0}_stickyModelFromOutlineModel(e,t){let i;if(st.$.first(e.children.values())instanceof Tg){const o=st.$.find(e.children.values(),(e=>e.id===t));if(o)i=o.children;else{let o,n="",s=-1;for(const[t,i]of e.children.entries()){const e=this._findSumOfRangesOfGroup(i);e>s&&(o=i,s=e,n=i.id)}t=n,i=o.children}}else i=e.children;const o=[],n=Array.from(i.values()).sort(((e,t)=>{const i=new CS(e.symbol.range.startLineNumber,e.symbol.range.endLineNumber),o=new CS(t.symbol.range.startLineNumber,t.symbol.range.endLineNumber);return this._comparator(i,o)}));for(const s of n)o.push(this._stickyModelFromOutlineElement(s,s.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new SS(void 0,o,void 0),providerID:t}}_stickyModelFromOutlineElement(e,t){const i=[];for(const n of e.children.values())if(n.symbol.selectionRange.startLineNumber!==n.symbol.range.endLineNumber)if(n.symbol.selectionRange.startLineNumber!==t)i.push(this._stickyModelFromOutlineElement(n,n.symbol.selectionRange.startLineNumber));else for(const e of n.children.values())i.push(this._stickyModelFromOutlineElement(e,n.symbol.selectionRange.startLineNumber));i.sort(((e,t)=>this._comparator(e.range,t.range)));const o=new CS(e.symbol.selectionRange.startLineNumber,e.symbol.range.endLineNumber);return new SS(o,i,void 0)}_comparator(e,t){return e.startLineNumber!==t.startLineNumber?e.startLineNumber-t.startLineNumber:t.endLineNumber-e.endLineNumber}_findSumOfRangesOfGroup(e){let t=0;for(const i of e.children.values())t+=this._findSumOfRangesOfGroup(i);return e instanceof Mg?t+e.symbol.range.endLineNumber-e.symbol.selectionRange.startLineNumber:t}};IS=NS([LS(1,kt.p)],IS);class RS extends DS{constructor(e){super(e),this._foldingLimitReporter=new cg(e)}createStickyModel(e,t){const i=this._fromFoldingRegions(t),o=this._editor.getModel();return new yS(o.uri,o.getVersionId(),i,void 0)}isModelValid(e){return null!==e}_fromFoldingRegions(e){const t=e.length,i=[],o=new SS(void 0,[],void 0);for(let n=0;n<t;n++){const t=e.getParentIndex(n);let s;s=-1!==t?i[t]:o;const r=new SS(new CS(e.getStartLineNumber(n),e.getEndLineNumber(n)+1),[],s);s.children.push(r),i.push(r)}return o}}let PS=class extends RS{constructor(e,t){super(e),this._languageConfigurationService=t,this.provider=this._register(new Ku(e.getModel(),this._languageConfigurationService,this._foldingLimitReporter))}async createModelFromProvider(e){return this.provider.compute(e)}};PS=NS([LS(1,Xn.c_)],PS);let MS=class extends RS{constructor(e,t,i){super(e),this._languageFeaturesService=i;const o=dg.getFoldingRangeProviders(this._languageFeaturesService,e.getModel());o.length>0&&(this.provider=this._register(new og(e.getModel(),o,t,this._foldingLimitReporter,void 0)))}isProviderValid(){return void 0!==this.provider}async createModelFromProvider(e){var t,i;return null!==(i=null===(t=this.provider)||void 0===t?void 0:t.compute(e))&&void 0!==i?i:null}};MS=NS([LS(2,kt.p)],MS);var TS=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ES=function(e,t){return function(i,o){t(i,o,e)}};class AS{constructor(e,t,i){this.startLineNumber=e,this.endLineNumber=t,this.nestingDepth=i}}let OS=class extends Fe.JT{constructor(e,t,i){super(),this._languageFeaturesService=t,this._languageConfigurationService=i,this._onDidChangeStickyScroll=this._register(new ui.Q5),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=e,this._sessionStore=this._register(new Fe.SL),this._updateSoon=this._register(new Oe.pY((()=>this.update()),50)),this._register(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(115)&&this.readConfiguration()}))),this.readConfiguration()}readConfiguration(){this._sessionStore.clear();this._editor.getOption(115).enabled&&(this._sessionStore.add(this._editor.onDidChangeModel((()=>{this._model=null,this.updateStickyModelProvider(),this._onDidChangeStickyScroll.fire(),this.update()}))),this._sessionStore.add(this._editor.onDidChangeHiddenAreas((()=>this.update()))),this._sessionStore.add(this._editor.onDidChangeModelContent((()=>this._updateSoon.schedule()))),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange((()=>this.update()))),this._sessionStore.add((0,Fe.OF)((()=>{var e;null===(e=this._stickyModelProvider)||void 0===e||e.dispose(),this._stickyModelProvider=null}))),this.updateStickyModelProvider(),this.update())}getVersionId(){var e;return null===(e=this._model)||void 0===e?void 0:e.version}updateStickyModelProvider(){var e;null===(e=this._stickyModelProvider)||void 0===e||e.dispose(),this._stickyModelProvider=null;const t=this._editor;t.hasModel()&&(this._stickyModelProvider=new kS(t,(()=>this._updateSoon.schedule()),this._languageConfigurationService,this._languageFeaturesService))}async update(){var e;null===(e=this._cts)||void 0===e||e.dispose(!0),this._cts=new Yi.A,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(e){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization())return void(this._model=null);const t=await this._stickyModelProvider.update(e);e.isCancellationRequested||(this._model=t)}updateIndex(e){return-1===e?e=0:e<0&&(e=-e-2),e}getCandidateStickyLinesIntersectingFromStickyModel(e,t,i,o,n){if(0===t.children.length)return;let s=n;const r=[];for(let d=0;d<t.children.length;d++){const e=t.children[d];e.range&&r.push(e.range.startLineNumber)}const a=this.updateIndex((0,nt.ry)(r,e.startLineNumber,((e,t)=>e-t))),l=this.updateIndex((0,nt.ry)(r,e.startLineNumber+o,((e,t)=>e-t)));for(let d=a;d<=l;d++){const r=t.children[d];if(!r)return;if(r.range){const t=r.range.startLineNumber,n=r.range.endLineNumber;e.startLineNumber<=n+1&&t-1<=e.endLineNumber&&t!==s&&(s=t,i.push(new AS(t,n-1,o+1)),this.getCandidateStickyLinesIntersectingFromStickyModel(e,r,i,o+1,t))}else this.getCandidateStickyLinesIntersectingFromStickyModel(e,r,i,o,n)}}getCandidateStickyLinesIntersecting(e){var t,i;if(!(null===(t=this._model)||void 0===t?void 0:t.element))return[];let o=[];this.getCandidateStickyLinesIntersectingFromStickyModel(e,this._model.element,o,0,-1);const n=null===(i=this._editor._getViewModel())||void 0===i?void 0:i.getHiddenAreas();if(n)for(const s of n)o=o.filter((e=>!(e.startLineNumber>=s.startLineNumber&&e.endLineNumber<=s.endLineNumber+1)));return o}};OS=TS([ES(1,kt.p),ES(2,Xn.c_)],OS);var FS,WS=i(21494),HS=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},VS=function(e,t){return function(i,o){t(i,o,e)}};let BS=FS=class extends Fe.JT{constructor(e,t,i,o,n,s,r){super(),this._editor=e,this._contextMenuService=t,this._languageFeaturesService=i,this._instaService=o,this._contextKeyService=r,this._sessionStore=new Fe.SL,this._foldingModel=null,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._showEndForLine=null,this._stickyScrollWidget=new fS(this._editor),this._stickyLineCandidateProvider=new OS(this._editor,i,n),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=new uS([],[],0),this._onDidResize(),this._readConfiguration();const a=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeConfiguration((e=>{(e.hasChanged(115)||e.hasChanged(73)||e.hasChanged(67)||e.hasChanged(110))&&this._readConfiguration()}))),this._register(X.nm(a,X.tw.CONTEXT_MENU,(async e=>{this._onContextMenu(X.Jj(a),e)}))),this._stickyScrollFocusedContextKey=oe.u.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=oe.u.stickyScrollVisible.bindTo(this._contextKeyService);const l=this._register(X.go(a));this._register(l.onDidBlur((e=>{!1===this._positionRevealed&&0===a.clientHeight?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()}))),this._register(l.onDidFocus((e=>{this.focus()}))),this._registerMouseListeners(),this._register(X.nm(a,X.tw.MOUSE_DOWN,(e=>{this._onMouseDown=!0})))}static get(e){return e.getContribution(FS.ID)}_disposeFocusStickyScrollStore(){var e;this._stickyScrollFocusedContextKey.set(!1),null===(e=this._focusDisposableStore)||void 0===e||e.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}focus(){if(this._onMouseDown)return this._onMouseDown=!1,void this._editor.focus();!0!==this._stickyScrollFocusedContextKey.get()&&(this._focused=!0,this._focusDisposableStore=new Fe.SL,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex<this._stickyScrollWidget.lineNumberCount-1&&this._focusNav(!0)}focusPrevious(){this._focusedStickyElementIndex>0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(e){this._focusedStickyElementIndex=e?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const e=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:e[this._focusedStickyElementIndex],column:1})}_revealPosition(e){this._reveaInEditor(e,(()=>this._editor.revealPosition(e)))}_revealLineInCenterIfOutsideViewport(e){this._reveaInEditor(e,(()=>this._editor.revealLineInCenterIfOutsideViewport(e.lineNumber,0)))}_reveaInEditor(e,t){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,t(),this._editor.setSelection(He.e.fromPositions(e)),this._editor.focus()}_registerMouseListeners(){const e=this._register(new Fe.SL),t=this._register(new Ys(this._editor,{extractLineNumberFromMouseEvent:e=>{const t=this._stickyScrollWidget.getEditorPositionFromNode(e.target.element);return t?t.lineNumber:0}})),i=e=>{if(!this._editor.hasModel())return null;if(12!==e.target.type||e.target.detail!==this._stickyScrollWidget.getId())return null;const t=e.target.element;if(!t||t.innerText!==t.innerHTML)return null;const i=this._stickyScrollWidget.getEditorPositionFromNode(t);return i?{range:new He.e(i.lineNumber,i.column,i.lineNumber,i.column+t.innerText.length),textElement:t}:null},o=this._stickyScrollWidget.getDomNode();this._register(X.mu(o,X.tw.CLICK,(e=>{if(e.ctrlKey||e.altKey||e.metaKey)return;if(!e.leftButton)return;if(e.shiftKey){const t=this._stickyScrollWidget.getLineIndexFromChildDomNode(e.target);if(null===t)return;const i=new We.L(this._endLineNumbers[t],1);return void this._revealLineInCenterIfOutsideViewport(i)}if(this._stickyScrollWidget.isInFoldingIconDomNode(e.target)){const t=this._stickyScrollWidget.getLineNumberFromChildDomNode(e.target);return void this._toggleFoldingRegionForLine(t)}if(!this._stickyScrollWidget.isInStickyLine(e.target))return;let t=this._stickyScrollWidget.getEditorPositionFromNode(e.target);if(!t){const i=this._stickyScrollWidget.getLineNumberFromChildDomNode(e.target);if(null===i)return;t=new We.L(i,1)}this._revealPosition(t)}))),this._register(X.mu(o,X.tw.MOUSE_MOVE,(e=>{if(e.shiftKey){const t=this._stickyScrollWidget.getLineIndexFromChildDomNode(e.target);if(null===t||null!==this._showEndForLine&&this._showEndForLine===t)return;return this._showEndForLine=t,void this._renderStickyScroll()}null!==this._showEndForLine&&(this._showEndForLine=null,this._renderStickyScroll())}))),this._register(X.nm(o,X.tw.MOUSE_LEAVE,(e=>{null!==this._showEndForLine&&(this._showEndForLine=null,this._renderStickyScroll())}))),this._register(t.onMouseMoveOrRelevantKeyDown((t=>{let[o,n]=t;const s=i(o);if(!s||!o.hasTriggerModifier||!this._editor.hasModel())return void e.clear();const{range:r,textElement:a}=s;if(r.equalsRange(this._stickyRangeProjectedOnEditor)){if("underline"===a.style.textDecoration)return}else this._stickyRangeProjectedOnEditor=r,e.clear();const l=new Yi.A;let d;e.add((0,Fe.OF)((()=>l.dispose(!0)))),fa(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new We.L(r.startLineNumber,r.startColumn+1),l.token).then((t=>{if(!l.token.isCancellationRequested)if(0!==t.length){this._candidateDefinitionsLength=t.length;const i=a;d!==i?(e.clear(),d=i,d.style.textDecoration="underline",e.add((0,Fe.OF)((()=>{d.style.textDecoration="none"})))):d||(d=i,d.style.textDecoration="underline",e.add((0,Fe.OF)((()=>{d.style.textDecoration="none"}))))}else e.clear()}))}))),this._register(t.onCancel((()=>{e.clear()}))),this._register(t.onExecute((async e=>{if(12!==e.target.type||e.target.detail!==this._stickyScrollWidget.getId())return;const t=this._stickyScrollWidget.getEditorPositionFromNode(e.target.element);t&&this._editor.hasModel()&&this._stickyRangeProjectedOnEditor&&(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:t.lineNumber,column:1})),this._instaService.invokeFunction(Rf,e,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor}))})))}_onContextMenu(e,t){const i=new WS.n(e,t);this._contextMenuService.showContextMenu({menuId:se.eH.StickyScrollContext,getAnchor:()=>i})}_toggleFoldingRegionForLine(e){if(!this._foldingModel||null===e)return;const t=this._stickyScrollWidget.getRenderedStickyLine(e),i=null===t||void 0===t?void 0:t.foldingIcon;if(!i)return;Au(this._foldingModel,Number.MAX_VALUE,[e]),i.isCollapsed=!i.isCollapsed;const o=(i.isCollapsed?this._editor.getTopForLineNumber(i.foldingEndLine):this._editor.getTopForLineNumber(i.foldingStartLine))-this._editor.getOption(67)*t.index+1;this._editor.setScrollTop(o),this._renderStickyScroll(e)}_readConfiguration(){const e=this._editor.getOption(115);if(!1===e.enabled)return this._editor.removeOverlayWidget(this._stickyScrollWidget),this._sessionStore.clear(),void(this._enabled=!1);e.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange((e=>{e.scrollTopChanged&&(this._showEndForLine=null,this._renderStickyScroll())}))),this._sessionStore.add(this._editor.onDidLayoutChange((()=>this._onDidResize()))),this._sessionStore.add(this._editor.onDidChangeModelTokens((e=>this._onTokensChange(e)))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll((()=>{this._showEndForLine=null,this._renderStickyScroll()}))),this._enabled=!0);2===this._editor.getOption(68).renderType&&this._sessionStore.add(this._editor.onDidChangeCursorPosition((()=>{this._showEndForLine=null,this._renderStickyScroll(0)})))}_needsUpdate(e){const t=this._stickyScrollWidget.getCurrentLines();for(const i of t)for(const t of e.ranges)if(i>=t.fromLineNumber&&i<=t.toLineNumber)return!0;return!1}_onTokensChange(e){this._needsUpdate(e)&&this._renderStickyScroll(0)}_onDidResize(){const e=this._editor.getLayoutInfo().height/this._editor.getOption(67);this._maxStickyLines=Math.round(.25*e)}async _renderStickyScroll(e){var t,i;const o=this._editor.getModel();if(!o||o.isTooLargeForTokenization())return this._foldingModel=null,void this._stickyScrollWidget.setState(void 0,null);const n=this._stickyLineCandidateProvider.getVersionId();if(void 0===n||n===o.getVersionId())if(this._foldingModel=null!==(i=await(null===(t=dg.get(this._editor))||void 0===t?void 0:t.getFoldingModel()))&&void 0!==i?i:null,this._widgetState=this.findScrollWidgetState(),this._stickyScrollVisibleContextKey.set(!(0===this._widgetState.startLineNumbers.length)),this._focused)if(-1===this._focusedStickyElementIndex)this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,-1!==this._focusedStickyElementIndex&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const t=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];if(this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e),0===this._stickyScrollWidget.lineNumberCount)this._focusedStickyElementIndex=-1;else{this._stickyScrollWidget.lineNumbers.includes(t)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}}else this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e)}findScrollWidgetState(){const e=this._editor.getOption(67),t=Math.min(this._maxStickyLines,this._editor.getOption(115).maxLineCount),i=this._editor.getScrollTop();let o=0;const n=[],s=[],r=this._editor.getVisibleRanges();if(0!==r.length){const a=new CS(r[0].startLineNumber,r[r.length-1].endLineNumber),l=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(a);for(const r of l){const a=r.startLineNumber,l=r.endLineNumber,d=r.nestingDepth;if(l-a>0){const r=(d-1)*e,c=d*e,h=this._editor.getBottomForLineNumber(a)-i,u=this._editor.getTopForLineNumber(l)-i,g=this._editor.getBottomForLineNumber(l)-i;if(r>u&&r<=g){n.push(a),s.push(l+1),o=g-c;break}if(c>h&&c<=g&&(n.push(a),s.push(l+1)),n.length===t)break}}}return this._endLineNumbers=s,new uS(n,s,o,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};BS.ID="store.contrib.stickyScrollController",BS=FS=HS([VS(1,Li.i),VS(2,kt.p),VS(3,ni.TG),VS(4,Xn.c_),VS(5,jn.A),VS(6,ae.i6)],BS);class zS extends se.Ke{constructor(){super({id:"editor.action.toggleStickyScroll",title:{...(0,ne.vv)("toggleEditorStickyScroll","Toggle Editor Sticky Scroll"),mnemonicTitle:(0,ne.NC)({key:"mitoggleStickyScroll",comment:["&& denotes a mnemonic"]},"&&Toggle Editor Sticky Scroll")},category:cS.View,toggled:{condition:ae.Ao.equals("config.editor.stickyScroll.enabled",!0),title:(0,ne.NC)("stickyScroll","Sticky Scroll"),mnemonicTitle:(0,ne.NC)({key:"miStickyScroll",comment:["&& denotes a mnemonic"]},"&&Sticky Scroll")},menu:[{id:se.eH.CommandPalette},{id:se.eH.MenubarAppearanceMenu,group:"4_editor",order:3},{id:se.eH.StickyScrollContext}]})}async run(e){const t=e.get(re.Ui),i=!t.getValue("editor.stickyScroll.enabled");return t.updateValue("editor.stickyScroll.enabled",i)}}const US=100;class KS extends ee.x1{constructor(){super({id:"editor.action.focusStickyScroll",title:{...(0,ne.vv)("focusStickyScroll","Focus Sticky Scroll"),mnemonicTitle:(0,ne.NC)({key:"mifocusStickyScroll",comment:["&& denotes a mnemonic"]},"&&Focus Sticky Scroll")},precondition:ae.Ao.and(ae.Ao.has("config.editor.stickyScroll.enabled"),oe.u.stickyScrollVisible),menu:[{id:se.eH.CommandPalette}]})}runEditorCommand(e,t){var i;null===(i=BS.get(t))||void 0===i||i.focus()}}class jS extends ee.x1{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:(0,ne.vv)("selectNextStickyScrollLine.title","Select next sticky scroll line"),precondition:oe.u.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:US,primary:18}})}runEditorCommand(e,t){var i;null===(i=BS.get(t))||void 0===i||i.focusNext()}}class qS extends ee.x1{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:(0,ne.vv)("selectPreviousStickyScrollLine.title","Select previous sticky scroll line"),precondition:oe.u.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:US,primary:16}})}runEditorCommand(e,t){var i;null===(i=BS.get(t))||void 0===i||i.focusPrevious()}}class GS extends ee.x1{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:(0,ne.vv)("goToFocusedStickyScrollLine.title","Go to focused sticky scroll line"),precondition:oe.u.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:US,primary:3}})}runEditorCommand(e,t){var i;null===(i=BS.get(t))||void 0===i||i.goToFocused()}}class QS extends ee.x1{constructor(){super({id:"editor.action.selectEditor",title:(0,ne.vv)("selectEditor.title","Select Editor"),precondition:oe.u.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:US,primary:9}})}runEditorCommand(e,t){var i;null===(i=BS.get(t))||void 0===i||i.selectEditor()}}(0,ee._K)(BS.ID,BS,1),(0,se.r1)(zS),(0,se.r1)(KS),(0,se.r1)(qS),(0,se.r1)(jS),(0,se.r1)(GS),(0,se.r1)(QS);var ZS=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},YS=function(e,t){return function(i,o){t(i,o,e)}};class JS{constructor(e,t,i,o,n,s){this.range=e,this.insertText=t,this.filterText=i,this.additionalTextEdits=o,this.command=n,this.completion=s}}let $S=class extends Fe.L6{constructor(e,t,i,o,n,s){super(n.disposable),this.model=e,this.line=t,this.word=i,this.completionModel=o,this._suggestMemoryService=s}canBeReused(e,t,i){return this.model===e&&this.line===t&&this.word.word.length>0&&this.word.startColumn===i.startColumn&&this.word.endColumn<i.endColumn&&0===this.completionModel.getIncompleteProvider().size}get items(){var e;const t=[],{items:i}=this.completionModel,o=this._suggestMemoryService.select(this.model,{lineNumber:this.line,column:this.word.endColumn+this.completionModel.lineContext.characterCountDelta},i),n=st.$.slice(i,o),s=st.$.slice(i,0,o);let r=5;for(const a of st.$.concat(n,s)){if(a.score===Fr.CL.Default)continue;const i=new He.e(a.editStart.lineNumber,a.editStart.column,a.editInsertEnd.lineNumber,a.editInsertEnd.column+this.completionModel.lineContext.characterCountDelta),o=a.completion.insertTextRules&&4&a.completion.insertTextRules?{snippet:a.completion.insertText}:a.completion.insertText;t.push(new JS(i,o,null!==(e=a.filterTextLow)&&void 0!==e?e:a.labelLow,a.completion.additionalTextEdits,a.completion.command,a)),r-- >=0&&a.resolve(Yi.T.None)}return t}};$S=ZS([YS(5,Mm)],$S);let XS=class extends Fe.JT{constructor(e,t,i,o){super(),this._languageFeatureService=e,this._clipboardService=t,this._suggestMemoryService=i,this._editorService=o,this._store.add(e.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(e,t,i,o){var n;if(i.selectedSuggestionInfo)return;let s;for(const g of this._editorService.listCodeEditors())if(g.getModel()===e){s=g;break}if(!s)return;const r=s.getOption(89);if(jp.isAllOff(r))return;e.tokenization.tokenizeIfCheap(t.lineNumber);const a=e.tokenization.getLineTokens(t.lineNumber),l=a.getStandardTokenType(a.findTokenIndexAtOffset(Math.max(t.column-1-1,0)));if("inline"!==jp.valueFor(r,l))return;let d,c,h=e.getWordAtPosition(t);if((null===h||void 0===h?void 0:h.word)||(d=this._getTriggerCharacterInfo(e,t)),!(null===h||void 0===h?void 0:h.word)&&!d)return;if(h||(h=e.getWordUntilPosition(t)),h.endColumn!==t.column)return;const u=e.getValueInRange(new He.e(t.lineNumber,1,t.lineNumber,t.column));if(!d&&(null===(n=this._lastResult)||void 0===n?void 0:n.canBeReused(e,t.lineNumber,h))){const e=new Km(u,t.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=e,this._lastResult.acquire(),c=this._lastResult}else{const i=await zp(this._languageFeatureService.completionProvider,e,t,new Hp(void 0,Jm.createSuggestFilter(s).itemKind,null===d||void 0===d?void 0:d.providers),d&&{triggerKind:1,triggerCharacter:d.ch},o);let n;i.needsClipboard&&(n=await this._clipboardService.readText());const r=new jm(i.items,t.column,new Km(u,0),Um.None,s.getOption(118),s.getOption(112),{boostFullMatch:!1,firstMatchCanBeWeak:!1},n);c=new $S(e,t.lineNumber,h,r,i,this._suggestMemoryService)}return this._lastResult=c,c}handleItemDidShow(e,t){t.completion.resolve(Yi.T.None)}freeInlineCompletions(e){e.release()}_getTriggerCharacterInfo(e,t){var i;const o=e.getValueInRange(He.e.fromPositions({lineNumber:t.lineNumber,column:t.column-1},t)),n=new Set;for(const s of this._languageFeatureService.completionProvider.all(e))(null===(i=s.triggerCharacters)||void 0===i?void 0:i.includes(o))&&n.add(s);if(0!==n.size)return{providers:n,ch:o}}};XS=ZS([YS(0,kt.p),YS(1,Si.p),YS(2,Mm),YS(3,te.$)],XS),(0,es.y)(XS);class ey extends ee.R6{constructor(){super({id:"editor.action.forceRetokenize",label:ne.NC("forceRetokenize","Developer: Force Retokenize"),alias:"Developer: Force Retokenize",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getModel();i.tokenization.resetTokenization();const o=new Yn.G;i.tokenization.forceTokenization(i.getLineCount()),o.stop(),console.log("tokenization took ".concat(o.elapsed()))}}(0,ee.Qr)(ey);var ty=i(25391);class iy extends se.Ke{constructor(){super({id:iy.ID,title:ne.vv({key:"toggle.tabMovesFocus",comment:["Turn on/off use of tab key for moving focus around VS Code"]},"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},f1:!0})}run(){const e=!ty.n.getTabFocusMode();ty.n.setTabFocusMode(e),e?(0,xe.Z9)(ne.NC("toggle.tabMovesFocus.on","Pressing Tab will now move focus to the next focusable element")):(0,xe.Z9)(ne.NC("toggle.tabMovesFocus.off","Pressing Tab will now insert the tab character"))}}iy.ID="editor.action.toggleTabFocusMode",(0,se.r1)(iy);var oy=i(90428),ny=i(19907),sy=i(3640),ry=i(39341),ay=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ly=function(e,t){return function(i,o){t(i,o,e)}};let dy=class extends Fe.JT{get enabled(){return this._enabled}set enabled(e){e?(this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1):(this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0),this._enabled=e}constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;var n,s;super(),this._link=t,this._enabled=!0,this.el=(0,X.R3)(e,(0,X.$)("a.monaco-link",{tabIndex:null!==(n=t.tabIndex)&&void 0!==n?n:0,href:t.href},t.label)),this.hoverDelegate=null!==(s=i.hoverDelegate)&&void 0!==s?s:(0,uh.tM)("mouse"),this.setTooltip(t.title),this.el.setAttribute("role","button");const r=this._register(new sy.Y(this.el,"click")),a=this._register(new sy.Y(this.el,"keypress")),l=ui.ju.chain(a.event,(e=>e.map((e=>new ry.y(e))).filter((e=>3===e.keyCode)))),d=this._register(new sy.Y(this.el,Io.t.Tap)).event;this._register(Io.o.addTarget(this.el));const c=ui.ju.any(r.event,l,d);this._register(c((e=>{this.enabled&&(X.zB.stop(e,!0),(null===i||void 0===i?void 0:i.opener)?i.opener(this._link.href):o.open(this._link.href,{allowCommands:!0}))}))),this.enabled=!0}setTooltip(e){this.hoverDelegate.showNativeHover?this.el.title=null!==e&&void 0!==e?e:"":!this.hover&&e?this.hover=this._register((0,Ah.g)(this.hoverDelegate,this.el,e)):this.hover&&this.hover.update(e)}};dy=ay([ly(3,pi.v)],dy);var cy=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},hy=function(e,t){return function(i,o){t(i,o,e)}};let uy=class extends Fe.JT{constructor(e,t){super(),this._editor=e,this.instantiationService=t,this.banner=this._register(this.instantiationService.createInstance(gy))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(e){this.banner.show({...e,onClose:()=>{var t;this.hide(),null===(t=e.onClose)||void 0===t||t.call(e)}}),this._editor.setBanner(this.banner.element,26)}};uy=cy([hy(1,ni.TG)],uy);let gy=class extends Fe.JT{constructor(e){super(),this.instantiationService=e,this.markdownRenderer=this.instantiationService.createInstance(gi.$,{}),this.element=(0,X.$)("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(e){return e.ariaLabel?e.ariaLabel:"string"===typeof e.message?e.message:void 0}getBannerMessage(e){if("string"===typeof e){const t=(0,X.$)("span");return t.innerText=e,t}return this.markdownRenderer.render(e).element}clear(){(0,X.PO)(this.element)}show(e){(0,X.PO)(this.element);const t=this.getAriaLabel(e);t&&this.element.setAttribute("aria-label",t);const i=(0,X.R3)(this.element,(0,X.$)("div.icon-container"));i.setAttribute("aria-hidden","true"),e.icon&&i.appendChild((0,X.$)("div".concat(oi.k.asCSSSelector(e.icon))));const o=(0,X.R3)(this.element,(0,X.$)("div.message-container"));if(o.setAttribute("aria-hidden","true"),o.appendChild(this.getBannerMessage(e.message)),this.messageActionsContainer=(0,X.R3)(this.element,(0,X.$)("div.message-actions-container")),e.actions)for(const s of e.actions)this._register(this.instantiationService.createInstance(dy,this.messageActionsContainer,{...s,tabIndex:-1},{}));const n=(0,X.R3)(this.element,(0,X.$)("div.action-container"));this.actionBar=this._register(new Eo.o(n)),this.actionBar.push(this._register(new Ni.aU("banner.close","Close Banner",oi.k.asClassName(ys.s_),!0,(()=>{"function"===typeof e.onClose&&e.onClose()}))),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};gy=cy([hy(0,ni.TG)],gy);var py=i(20790),my=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},_y=function(e,t){return function(i,o){t(i,o,e)}};const fy=(0,ys.q5)("extensions-warning-message",$.l.warning,ne.NC("warningIcon","Icon shown with a warning message in the extensions editor."));let vy=class extends Fe.JT{constructor(e,t,i,o){super(),this._editor=e,this._editorWorkerService=t,this._workspaceTrustService=i,this._highlighter=null,this._bannerClosed=!1,this._updateState=e=>{if(e&&e.hasMore){if(this._bannerClosed)return;const t=Math.max(e.ambiguousCharacterCount,e.nonBasicAsciiCharacterCount,e.invisibleCharacterCount);let i;if(e.nonBasicAsciiCharacterCount>=t)i={message:ne.NC("unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters","This document contains many non-basic ASCII unicode characters"),command:new Py};else if(e.ambiguousCharacterCount>=t)i={message:ne.NC("unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters","This document contains many ambiguous unicode characters"),command:new Iy};else{if(!(e.invisibleCharacterCount>=t))throw new Error("Unreachable");i={message:ne.NC("unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters","This document contains many invisible unicode characters"),command:new Ry}}this._bannerController.show({id:"unicodeHighlightBanner",message:i.message,icon:fy,actions:[{label:i.command.shortLabel,href:"command:".concat(i.command.id)}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(o.createInstance(uy,e)),this._register(this._editor.onDidChangeModel((()=>{this._bannerClosed=!1,this._updateHighlighter()}))),this._options=e.getOption(125),this._register(i.onDidChangeTrust((e=>{this._updateHighlighter()}))),this._register(e.onDidChangeConfiguration((t=>{t.hasChanged(125)&&(this._options=e.getOption(125),this._updateHighlighter())}))),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const e=function(e,t){return{nonBasicASCII:t.nonBasicASCII===sn.Av?!e:t.nonBasicASCII,ambiguousCharacters:t.ambiguousCharacters,invisibleCharacters:t.invisibleCharacters,includeComments:t.includeComments===sn.Av?!e:t.includeComments,includeStrings:t.includeStrings===sn.Av?!e:t.includeStrings,allowedCharacters:t.allowedCharacters,allowedLocales:t.allowedLocales}}(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([e.nonBasicASCII,e.ambiguousCharacters,e.invisibleCharacters].every((e=>!1===e)))return;const t={nonBasicASCII:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments,includeStrings:e.includeStrings,allowedCodePoints:Object.keys(e.allowedCharacters).map((e=>e.codePointAt(0))),allowedLocales:Object.keys(e.allowedLocales).map((e=>{if("_os"===e){return(new Intl.NumberFormat).resolvedOptions().locale}return"_vscode"===e?it.dK:e}))};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new by(this._editor,t,this._updateState,this._editorWorkerService):this._highlighter=new Cy(this._editor,t,this._updateState)}getDecorationInfo(e){return this._highlighter?this._highlighter.getDecorationInfo(e):null}};vy.ID="editor.contrib.unicodeHighlighter",vy=my([_y(1,bg.p),_y(2,py.Y),_y(3,ni.TG)],vy);let by=class extends Fe.JT{constructor(e,t,i,o){super(),this._editor=e,this._options=t,this._updateState=i,this._editorWorkerService=o,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new Oe.pY((()=>this._update()),250)),this._register(this._editor.onDidChangeModelContent((()=>{this._updateSoon.schedule()}))),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII())return void this._decorations.clear();const e=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then((t=>{if(this._model.isDisposed())return;if(this._model.getVersionId()!==e)return;this._updateState(t);const i=[];if(!t.hasMore)for(const e of t.ranges)i.push({range:e,options:Ly.instance.getDecorationFromOptions(this._options)});this._decorations.set(i)}))}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel();if(!(0,ny.Fd)(t,e))return null;return{reason:Ny(t.getValueInRange(e.range),this._options),inComment:(0,ny.$t)(t,e),inString:(0,ny.zg)(t,e)}}};by=my([_y(3,bg.p)],by);class Cy extends Fe.JT{constructor(e,t,i){super(),this._editor=e,this._options=t,this._updateState=i,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new Oe.pY((()=>this._update()),250)),this._register(this._editor.onDidLayoutChange((()=>{this._updateSoon.schedule()}))),this._register(this._editor.onDidScrollChange((()=>{this._updateSoon.schedule()}))),this._register(this._editor.onDidChangeHiddenAreas((()=>{this._updateSoon.schedule()}))),this._register(this._editor.onDidChangeModelContent((()=>{this._updateSoon.schedule()}))),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII())return void this._decorations.clear();const e=this._editor.getVisibleRanges(),t=[],i={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const o of e){const e=oy.a.computeUnicodeHighlights(this._model,this._options,o);for(const t of e.ranges)i.ranges.push(t);i.ambiguousCharacterCount+=i.ambiguousCharacterCount,i.invisibleCharacterCount+=i.invisibleCharacterCount,i.nonBasicAsciiCharacterCount+=i.nonBasicAsciiCharacterCount,i.hasMore=i.hasMore||e.hasMore}if(!i.hasMore)for(const o of i.ranges)t.push({range:o,options:Ly.instance.getDecorationFromOptions(this._options)});this._updateState(i),this._decorations.set(t)}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel(),i=t.getValueInRange(e.range);return(0,ny.Fd)(t,e)?{reason:Ny(i,this._options),inComment:(0,ny.$t)(t,e),inString:(0,ny.zg)(t,e)}:null}}const Sy=ne.NC("unicodeHighlight.configureUnicodeHighlightOptions","Configure Unicode Highlight Options");let yy=class{constructor(e,t,i){this._editor=e,this._languageService=t,this._openerService=i,this.hoverOrdinal=5}computeSync(e,t){if(!this._editor.hasModel()||1!==e.type)return[];const i=this._editor.getModel(),o=this._editor.getContribution(vy.ID);if(!o)return[];const n=[],s=new Set;let r=300;for(const a of t){const e=o.getDecorationInfo(a);if(!e)continue;const t=i.getValueInRange(a.range).codePointAt(0),l=xy(t);let d;switch(e.reason.kind){case 0:d=(0,ii.$i)(e.reason.confusableWith)?ne.NC("unicodeHighlight.characterIsAmbiguousASCII","The character {0} could be confused with the ASCII character {1}, which is more common in source code.",l,xy(e.reason.confusableWith.codePointAt(0))):ne.NC("unicodeHighlight.characterIsAmbiguous","The character {0} could be confused with the character {1}, which is more common in source code.",l,xy(e.reason.confusableWith.codePointAt(0)));break;case 1:d=ne.NC("unicodeHighlight.characterIsInvisible","The character {0} is invisible.",l);break;case 2:d=ne.NC("unicodeHighlight.characterIsNonBasicAscii","The character {0} is not a basic ASCII character.",l)}if(s.has(d))continue;s.add(d);const c={codePoint:t,reason:e.reason,inComment:e.inComment,inString:e.inString},h=ne.NC("unicodeHighlight.adjustSettings","Adjust settings"),u="command:".concat(My.ID,"?").concat(encodeURIComponent(JSON.stringify(c))),g=new Ne.W5("",!0).appendMarkdown(d).appendText(" ").appendLink(u,h,Sy);n.push(new vl(this,a.range,[g],!1,r++))}return n}renderHoverParts(e,t){return Cl(e,t,this._editor,this._languageService,this._openerService)}};function wy(e){return"U+".concat(e.toString(16).padStart(4,"0"))}function xy(e){let t="`".concat(wy(e),"`");return ii.vU.isInvisibleCharacter(e)||(t+=' "'.concat("".concat(function(e){if(96===e)return"`` ` ``";return"`"+String.fromCodePoint(e)+"`"}(e)),'"')),t}function Ny(e,t){return oy.a.computeUnicodeHighlightReason(e,t)}yy=my([_y(1,Us.O),_y(2,pi.v)],yy);class Ly{constructor(){this.map=new Map}getDecorationFromOptions(e){return this.getDecoration(!e.includeComments,!e.includeStrings)}getDecoration(e,t){const i="".concat(e).concat(t);let o=this.map.get(i);return o||(o=Be.qx.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:e,hideInStringTokens:t}),this.map.set(i,o)),o}}Ly.instance=new Ly;class ky extends ee.R6{constructor(){super({id:Iy.ID,label:ne.NC("action.unicodeHighlight.disableHighlightingInComments","Disable highlighting of characters in comments"),alias:"Disable highlighting of characters in comments",precondition:void 0}),this.shortLabel=ne.NC("unicodeHighlight.disableHighlightingInComments.shortLabel","Disable Highlight In Comments")}async run(e,t,i){const o=null===e||void 0===e?void 0:e.get(re.Ui);o&&this.runAction(o)}async runAction(e){await e.updateValue(sn.qt.includeComments,!1,2)}}class Dy extends ee.R6{constructor(){super({id:Iy.ID,label:ne.NC("action.unicodeHighlight.disableHighlightingInStrings","Disable highlighting of characters in strings"),alias:"Disable highlighting of characters in strings",precondition:void 0}),this.shortLabel=ne.NC("unicodeHighlight.disableHighlightingInStrings.shortLabel","Disable Highlight In Strings")}async run(e,t,i){const o=null===e||void 0===e?void 0:e.get(re.Ui);o&&this.runAction(o)}async runAction(e){await e.updateValue(sn.qt.includeStrings,!1,2)}}class Iy extends ee.R6{constructor(){super({id:Iy.ID,label:ne.NC("action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters","Disable highlighting of ambiguous characters"),alias:"Disable highlighting of ambiguous characters",precondition:void 0}),this.shortLabel=ne.NC("unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel","Disable Ambiguous Highlight")}async run(e,t,i){const o=null===e||void 0===e?void 0:e.get(re.Ui);o&&this.runAction(o)}async runAction(e){await e.updateValue(sn.qt.ambiguousCharacters,!1,2)}}Iy.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters";class Ry extends ee.R6{constructor(){super({id:Ry.ID,label:ne.NC("action.unicodeHighlight.disableHighlightingOfInvisibleCharacters","Disable highlighting of invisible characters"),alias:"Disable highlighting of invisible characters",precondition:void 0}),this.shortLabel=ne.NC("unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel","Disable Invisible Highlight")}async run(e,t,i){const o=null===e||void 0===e?void 0:e.get(re.Ui);o&&this.runAction(o)}async runAction(e){await e.updateValue(sn.qt.invisibleCharacters,!1,2)}}Ry.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters";class Py extends ee.R6{constructor(){super({id:Py.ID,label:ne.NC("action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters","Disable highlighting of non basic ASCII characters"),alias:"Disable highlighting of non basic ASCII characters",precondition:void 0}),this.shortLabel=ne.NC("unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel","Disable Non ASCII Highlight")}async run(e,t,i){const o=null===e||void 0===e?void 0:e.get(re.Ui);o&&this.runAction(o)}async runAction(e){await e.updateValue(sn.qt.nonBasicASCII,!1,2)}}Py.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters";class My extends ee.R6{constructor(){super({id:My.ID,label:ne.NC("action.unicodeHighlight.showExcludeOptions","Show Exclude Options"),alias:"Show Exclude Options",precondition:void 0})}async run(e,t,i){const{codePoint:o,reason:n,inString:s,inComment:r}=i,a=String.fromCodePoint(o),l=e.get(wi.eJ),d=e.get(re.Ui);const c=[];if(0===n.kind)for(const u of n.notAmbiguousInLocales)c.push({label:ne.NC("unicodeHighlight.allowCommonCharactersInLanguage",'Allow unicode characters that are more common in the language "{0}".',u),run:async()=>{Ty(d,[u])}});if(c.push({label:function(e){return ii.vU.isInvisibleCharacter(e)?ne.NC("unicodeHighlight.excludeInvisibleCharFromBeingHighlighted","Exclude {0} (invisible character) from being highlighted",wy(e)):ne.NC("unicodeHighlight.excludeCharFromBeingHighlighted","Exclude {0} from being highlighted","".concat(wy(e),' "').concat(a,'"'))}(o),run:()=>async function(e,t){const i=e.getValue(sn.qt.allowedCharacters);let o;o="object"===typeof i&&i?i:{};for(const n of t)o[String.fromCodePoint(n)]=!0;await e.updateValue(sn.qt.allowedCharacters,o,2)}(d,[o])}),r){const e=new ky;c.push({label:e.label,run:async()=>e.runAction(d)})}else if(s){const e=new Dy;c.push({label:e.label,run:async()=>e.runAction(d)})}if(0===n.kind){const e=new Iy;c.push({label:e.label,run:async()=>e.runAction(d)})}else if(1===n.kind){const e=new Ry;c.push({label:e.label,run:async()=>e.runAction(d)})}else if(2===n.kind){const e=new Py;c.push({label:e.label,run:async()=>e.runAction(d)})}else!function(e){throw new Error("Unexpected value: ".concat(e))}(n);const h=await l.pick(c,{title:Sy});h&&await h.run()}}async function Ty(e,t){var i;const o=null===(i=e.inspect(sn.qt.allowedLocales).user)||void 0===i?void 0:i.value;let n;n="object"===typeof o&&o?Object.assign({},o):{};for(const s of t)n[s]=!0;await e.updateValue(sn.qt.allowedLocales,n,2)}My.ID="editor.action.unicodeHighlight.showExcludeOptions",(0,ee.Qr)(Iy),(0,ee.Qr)(Ry),(0,ee.Qr)(Py),(0,ee.Qr)(My),(0,ee._K)(vy.ID,vy,1),Qa.register(yy);var Ey=i(78025),Ay=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Oy=function(e,t){return function(i,o){t(i,o,e)}};const Fy="ignoreUnusualLineTerminators";let Wy=class extends Fe.JT{constructor(e,t,i){super(),this._editor=e,this._dialogService=t,this._codeEditorService=i,this._isPresentingDialog=!1,this._config=this._editor.getOption(126),this._register(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(126)&&(this._config=this._editor.getOption(126),this._checkForUnusualLineTerminators())}))),this._register(this._editor.onDidChangeModel((()=>{this._checkForUnusualLineTerminators()}))),this._register(this._editor.onDidChangeModelContent((e=>{e.isUndoing||this._checkForUnusualLineTerminators()}))),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if("off"===this._config)return;if(!this._editor.hasModel())return;const e=this._editor.getModel();if(!e.mightContainUnusualLineTerminators())return;const t=function(e,t){return e.getModelProperty(t.uri,Fy)}(this._codeEditorService,e);if(!0===t)return;if(this._editor.getOption(91))return;if("auto"===this._config)return void e.removeUnusualLineTerminators(this._editor.getSelections());if(this._isPresentingDialog)return;let i;try{this._isPresentingDialog=!0,i=await this._dialogService.confirm({title:ne.NC("unusualLineTerminators.title","Unusual Line Terminators"),message:ne.NC("unusualLineTerminators.message","Detected unusual line terminators"),detail:ne.NC("unusualLineTerminators.detail","The file '{0}' 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`.",(0,It.EZ)(e.uri)),primaryButton:ne.NC({key:"unusualLineTerminators.fix",comment:["&& denotes a mnemonic"]},"&&Remove Unusual Line Terminators"),cancelButton:ne.NC("unusualLineTerminators.ignore","Ignore")})}finally{this._isPresentingDialog=!1}i.confirmed?e.removeUnusualLineTerminators(this._editor.getSelections()):function(e,t,i){e.setModelProperty(t.uri,Fy,i)}(this._codeEditorService,e,!0)}};Wy.ID="editor.contrib.unusualLineTerminatorsDetector",Wy=Ay([Oy(1,Ey.S),Oy(2,te.$)],Wy),(0,ee._K)(Wy.ID,Wy,1);var Hy,Vy,By=i(6440),zy=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Uy=function(e,t){return function(i,o){t(i,o,e)}};const Ky=new ae.uy("hasWordHighlights",!1);function jy(e,t,i,o){const n=e.ordered(t);return(0,Oe.Ps)(n.map((e=>()=>Promise.resolve(e.provideDocumentHighlights(t,i,o)).then(void 0,Ji.Cp))),nt.Of).then((e=>{if(e){const i=new Pn.Y9;return i.set(t.uri,e),i}return new Pn.Y9}))}class qy{constructor(e,t,i){this._model=e,this._selection=t,this._wordSeparators=i,this._wordRange=this._getCurrentWordRange(e,t),this._result=null}get result(){return this._result||(this._result=(0,Oe.PG)((e=>this._compute(this._model,this._selection,this._wordSeparators,e)))),this._result}_getCurrentWordRange(e,t){const i=e.getWordAtPosition(t.getPosition());return i?new He.e(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):null}isValid(e,t,i){const o=t.startLineNumber,n=t.startColumn,s=t.endColumn,r=this._getCurrentWordRange(e,t);let a=Boolean(this._wordRange&&this._wordRange.equalsRange(r));for(let l=0,d=i.length;!a&&l<d;l++){const e=i.getRange(l);e&&e.startLineNumber===o&&e.startColumn<=n&&e.endColumn>=s&&(a=!0)}return a}cancel(){this.result.cancel()}}class Gy extends qy{constructor(e,t,i,o){super(e,t,i),this._providers=o}_compute(e,t,i,o){return jy(this._providers,e,t.getPosition(),o).then((e=>e||new Pn.Y9))}}class Qy extends qy{constructor(e,t,i,o,n){super(e,t,i),this._providers=o,this._otherModels=n}_compute(e,t,i,o){return function(e,t,i,o,n,s){const r=e.ordered(t);return(0,Oe.Ps)(r.map((e=>()=>{const o=s.filter((e=>(0,Ve.pt)(e))).filter((t=>(0,By.G)(e.selector,t.uri,t.getLanguageId(),!0,void 0,void 0)>0));return Promise.resolve(e.provideMultiDocumentHighlights(t,i,o,n)).then(void 0,Ji.Cp)})),(e=>e instanceof Pn.Y9&&e.size>0))}(this._providers,e,t.getPosition(),0,o,this._otherModels).then((e=>e||new Pn.Y9))}}class Zy extends qy{constructor(e,t,i,o,n){super(e,t,o),this._otherModels=n,this._selectionIsEmpty=t.isEmpty(),this._word=i}_compute(e,t,i,o){return(0,Oe.Vs)(250,o).then((()=>{const o=new Pn.Y9;let n;if(n=this._word?this._word:e.getWordAtPosition(t.getPosition()),!n)return new Pn.Y9;const s=[e,...this._otherModels];for(const e of s){if(e.isDisposed())continue;const t=e.findMatches(n.word,!0,!1,!0,i,!1).map((e=>({range:e.range,kind:Lt.MY.Text})));t&&o.set(e.uri,t)}return o}))}isValid(e,t,i){const o=t.isEmpty();return this._selectionIsEmpty===o&&super.isValid(e,t,i)}}(0,ee.sb)("_executeDocumentHighlights",(async(e,t,i)=>{const o=e.get(kt.p),n=await jy(o.documentHighlightProvider,t,i,Yi.T.None);return null===n||void 0===n?void 0:n.get(t.uri)}));let Yy=Hy=class{constructor(e,t,i,o,n){this.toUnhook=new Fe.SL,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new Pn.Y9,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=e,this.providers=t,this.multiDocumentProviders=i,this.codeEditorService=n,this._hasWordHighlights=Ky.bindTo(o),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(81),this.model=this.editor.getModel(),this.toUnhook.add(e.onDidChangeCursorPosition((e=>{this._ignorePositionChangeEvent||"off"!==this.occurrencesHighlight&&this._onPositionChanged(e)}))),this.toUnhook.add(e.onDidFocusEditorText((e=>{"off"!==this.occurrencesHighlight&&(this.workerRequest||this._run())}))),this.toUnhook.add(e.onDidChangeModelContent((e=>{this._stopAll()}))),this.toUnhook.add(e.onDidChangeModel((e=>{!e.newModelUrl&&e.oldModelUrl?this._stopSingular():Hy.query&&this._run()}))),this.toUnhook.add(e.onDidChangeConfiguration((e=>{const t=this.editor.getOption(81);this.occurrencesHighlight!==t&&(this.occurrencesHighlight=t,this._stopAll())}))),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,Hy.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(){"off"!==this.occurrencesHighlight&&this._run()}_getSortedHighlights(){return this.decorations.getRanges().sort(He.e.compareRangesUsingStarts)}moveNext(){const e=this._getSortedHighlights(),t=(e.findIndex((e=>e.containsPosition(this.editor.getPosition())))+1)%e.length,i=e[t];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(i.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(i);const o=this._getWord();if(o){const n=this.editor.getModel().getLineContent(i.startLineNumber);(0,xe.Z9)("".concat(n,", ").concat(t+1," of ").concat(e.length," for '").concat(o.word,"'"))}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const e=this._getSortedHighlights(),t=(e.findIndex((e=>e.containsPosition(this.editor.getPosition())))-1+e.length)%e.length,i=e[t];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(i.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(i);const o=this._getWord();if(o){const n=this.editor.getModel().getLineContent(i.startLineNumber);(0,xe.Z9)("".concat(n,", ").concat(t+1," of ").concat(e.length," for '").concat(o.word,"'"))}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const e=Hy.storedDecorations.get(this.editor.getModel().uri);e&&(this.editor.removeDecorations(e),Hy.storedDecorations.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(){const e=this.codeEditorService.listCodeEditors(),t=[];for(const i of e){if(!i.hasModel())continue;const e=Hy.storedDecorations.get(i.getModel().uri);if(!e)continue;i.removeDecorations(e),t.push(i.getModel().uri);const o=Jy.get(i);(null===o||void 0===o?void 0:o.wordHighlighter)&&(o.wordHighlighter.decorations.length>0&&(o.wordHighlighter.decorations.clear(),o.wordHighlighter.workerRequest=null,o.wordHighlighter._hasWordHighlights.set(!1)))}for(const i of t)Hy.storedDecorations.delete(i)}_stopSingular(){var e,t,i,o;this._removeSingleDecorations(),this.editor.hasTextFocus()&&((null===(e=this.editor.getModel())||void 0===e?void 0:e.uri.scheme)!==Dt.lg.vscodeNotebookCell&&(null===(i=null===(t=Hy.query)||void 0===t?void 0:t.modelInfo)||void 0===i?void 0:i.model.uri.scheme)!==Dt.lg.vscodeNotebookCell?(Hy.query=null,this._run()):(null===(o=Hy.query)||void 0===o?void 0:o.modelInfo)&&(Hy.query.modelInfo=null)),-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)}_stopAll(){this._removeAllDecorations(),-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)}_onPositionChanged(e){var t;"off"!==this.occurrencesHighlight&&(3===e.reason||(null===(t=this.editor.getModel())||void 0===t?void 0:t.uri.scheme)===Dt.lg.vscodeNotebookCell)?this._run():this._stopAll()}_getWord(){const e=this.editor.getSelection(),t=e.startLineNumber,i=e.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:t,column:i})}getOtherModelsToHighlight(e){if(!e)return[];if(e.uri.scheme===Dt.lg.vscodeNotebookCell){const t=[],i=this.codeEditorService.listCodeEditors();for(const o of i){const i=o.getModel();i&&i!==e&&i.uri.scheme===Dt.lg.vscodeNotebookCell&&t.push(i)}return t}const t=[],i=this.codeEditorService.listCodeEditors();for(const o of i){if(!(0,xr.QI)(o))continue;const i=o.getModel();i&&(e===i.modified&&t.push(i.modified))}if(t.length)return t;if("singleFile"===this.occurrencesHighlight)return[];for(const o of i){const i=o.getModel();i&&i!==e&&t.push(i)}return t}_run(){var e;let t;if(this.editor.hasTextFocus()){const e=this.editor.getSelection();if(!e||e.startLineNumber!==e.endLineNumber)return Hy.query=null,void this._stopAll();const i=e.startColumn,o=e.endColumn,n=this._getWord();if(!n||n.startColumn>i||n.endColumn<o)return Hy.query=null,void this._stopAll();t=this.workerRequest&&this.workerRequest.isValid(this.model,e,this.decorations),Hy.query={modelInfo:{model:this.model,selection:e},word:n}}else if(!Hy.query)return;if(this.lastCursorPositionChangeTime=(new Date).getTime(),t)this.workerRequestCompleted&&-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1,this._beginRenderDecorations());else{this._stopAll();const t=++this.workerRequestTokenId;this.workerRequestCompleted=!1;const i=this.getOtherModelsToHighlight(this.editor.getModel());if(!Hy.query.modelInfo||Hy.query.modelInfo.model.isDisposed())return;this.workerRequest=this.computeWithModel(Hy.query.modelInfo.model,Hy.query.modelInfo.selection,Hy.query.word,i),null===(e=this.workerRequest)||void 0===e||e.result.then((e=>{t===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=e||[],this._beginRenderDecorations())}),Ji.dL)}}computeWithModel(e,t,i,o){return o.length?function(e,t,i,o,n,s){return e.has(t)?new Qy(t,i,n,e,s):new Zy(t,i,o,n,s)}(this.multiDocumentProviders,e,t,i,this.editor.getOption(131),o):function(e,t,i,o,n){return e.has(t)?new Gy(t,i,n,e):new Zy(t,i,o,n,[])}(this.providers,e,t,i,this.editor.getOption(131))}_beginRenderDecorations(){const e=(new Date).getTime(),t=this.lastCursorPositionChangeTime+250;e>=t?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout((()=>{this.renderDecorations()}),t-e)}renderDecorations(){var e,t,i;this.renderDecorationsTimer=-1;const o=this.codeEditorService.listCodeEditors();for(const s of o){const o=Jy.get(s);if(!o)continue;const r=[],a=null===(e=s.getModel())||void 0===e?void 0:e.uri;if(a&&this.workerRequestValue.has(a)){const e=Hy.storedDecorations.get(a),l=this.workerRequestValue.get(a);if(l)for(const t of l)t.range&&r.push({range:t.range,options:(n=t.kind,n===Lt.MY.Write?tb:n===Lt.MY.Text?ib:sb)});let d=[];s.changeDecorations((t=>{d=t.deltaDecorations(null!==e&&void 0!==e?e:[],r)})),Hy.storedDecorations=Hy.storedDecorations.set(a,d),r.length>0&&(null===(t=o.wordHighlighter)||void 0===t||t.decorations.set(r),null===(i=o.wordHighlighter)||void 0===i||i._hasWordHighlights.set(!0))}}var n}dispose(){this._stopSingular(),this.toUnhook.dispose()}};Yy.storedDecorations=new Pn.Y9,Yy.query=null,Yy=Hy=zy([Uy(4,te.$)],Yy);let Jy=Vy=class extends Fe.JT{static get(e){return e.getContribution(Vy.ID)}constructor(e,t,i,o){super(),this._wordHighlighter=null;const n=()=>{e.hasModel()&&!e.getModel().isTooLargeForTokenization()&&(this._wordHighlighter=new Yy(e,i.documentHighlightProvider,i.multiDocumentHighlightProvider,t,o))};this._register(e.onDidChangeModel((e=>{this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),n()}))),n()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!(!this._wordHighlighter||!this._wordHighlighter.hasDecorations())}moveNext(){var e;null===(e=this._wordHighlighter)||void 0===e||e.moveNext()}moveBack(){var e;null===(e=this._wordHighlighter)||void 0===e||e.moveBack()}restoreViewState(e){this._wordHighlighter&&e&&this._wordHighlighter.restore()}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}};Jy.ID="editor.contrib.wordHighlighter",Jy=Vy=zy([Uy(1,ae.i6),Uy(2,kt.p),Uy(3,te.$)],Jy);class $y extends ee.R6{constructor(e,t){super(t),this._isNext=e}run(e,t){const i=Jy.get(t);i&&(this._isNext?i.moveNext():i.moveBack())}}class Xy extends ee.R6{constructor(){super({id:"editor.action.wordHighlight.trigger",label:ne.NC("wordHighlight.trigger.label","Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:Ky.toNegated(),kbOpts:{kbExpr:oe.u.editorTextFocus,primary:0,weight:100}})}run(e,t,i){const o=Jy.get(t);o&&o.restoreViewState(!0)}}(0,ee._K)(Jy.ID,Jy,0),(0,ee.Qr)(class extends $y{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:ne.NC("wordHighlight.next.label","Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:Ky,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:65,weight:100}})}}),(0,ee.Qr)(class extends $y{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:ne.NC("wordHighlight.previous.label","Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:Ky,kbOpts:{kbExpr:oe.u.editorTextFocus,primary:1089,weight:100}})}}),(0,ee.Qr)(Xy);var ew=i(68170),tw=i(78626),iw=i(67055);class ow extends ee._l{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){if(!t.hasModel())return;const o=(0,iw.u)(t.getOption(131),t.getOption(130)),n=t.getModel(),s=t.getSelections().map((e=>{const t=new We.L(e.positionLineNumber,e.positionColumn),i=this._move(o,n,t,this._wordNavigationType);return this._moveTo(e,i,this._inSelectionMode)}));if(n.pushStackElement(),t._getViewModel().setCursorStates("moveWordCommand",3,s.map((e=>ew.Vi.fromModelSelection(e)))),1===s.length){const e=new We.L(s[0].positionLineNumber,s[0].positionColumn);t.revealPosition(e,0)}}_moveTo(e,t,i){return i?new ke.Y(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new ke.Y(t.lineNumber,t.column,t.lineNumber,t.column)}}class nw extends ow{_move(e,t,i,o){return tw.w.moveWordLeft(e,t,i,o)}}class sw extends ow{_move(e,t,i,o){return tw.w.moveWordRight(e,t,i,o)}}class rw extends ee._l{constructor(e){super(e),this._whitespaceHeuristics=e.whitespaceHeuristics,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){const o=e.get(Xn.c_);if(!t.hasModel())return;const n=(0,iw.u)(t.getOption(131),t.getOption(130)),s=t.getModel(),r=t.getSelections(),a=t.getOption(6),l=t.getOption(11),d=o.getLanguageConfiguration(s.getLanguageId()).getAutoClosingPairs(),c=t._getViewModel(),h=r.map((e=>{const i=this._delete({wordSeparators:n,model:s,selection:e,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:t.getOption(9),autoClosingBrackets:a,autoClosingQuotes:l,autoClosingPairs:d,autoClosedCharacters:c.getCursorAutoClosedCharacters()},this._wordNavigationType);return new $e.T4(i,"")}));t.pushUndoStop(),t.executeCommands(this.id,h),t.pushUndoStop()}}class aw extends rw{_delete(e,t){const i=tw.w.deleteWordLeft(e,t);return i||new He.e(1,1,1,1)}}class lw extends rw{_delete(e,t){const i=tw.w.deleteWordRight(e,t);if(i)return i;const o=e.model.getLineCount(),n=e.model.getLineMaxColumn(o);return new He.e(o,n,o,n)}}class dw extends ee.R6{constructor(){super({id:"deleteInsideWord",precondition:oe.u.writable,label:ne.NC("deleteInsideWord","Delete Word"),alias:"Delete Word"})}run(e,t,i){if(!t.hasModel())return;const o=(0,iw.u)(t.getOption(131),t.getOption(130)),n=t.getModel(),s=t.getSelections().map((e=>{const t=tw.w.deleteInsideWord(o,n,e);return new $e.T4(t,"")}));t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}(0,ee.fK)(new class extends nw{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}),(0,ee.fK)(new class extends nw{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}),(0,ee.fK)(new class extends nw{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:ae.Ao.and(oe.u.textInputFocus,null===(e=ae.Ao.and($s.U,na.cv))||void 0===e?void 0:e.negate()),primary:2063,mac:{primary:527},weight:100}})}}),(0,ee.fK)(new class extends nw{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}),(0,ee.fK)(new class extends nw{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}),(0,ee.fK)(new class extends nw{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:ae.Ao.and(oe.u.textInputFocus,null===(e=ae.Ao.and($s.U,na.cv))||void 0===e?void 0:e.negate()),primary:3087,mac:{primary:1551},weight:100}})}}),(0,ee.fK)(new class extends sw{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}),(0,ee.fK)(new class extends sw{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:ae.Ao.and(oe.u.textInputFocus,null===(e=ae.Ao.and($s.U,na.cv))||void 0===e?void 0:e.negate()),primary:2065,mac:{primary:529},weight:100}})}}),(0,ee.fK)(new class extends sw{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}),(0,ee.fK)(new class extends sw{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}),(0,ee.fK)(new class extends sw{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:ae.Ao.and(oe.u.textInputFocus,null===(e=ae.Ao.and($s.U,na.cv))||void 0===e?void 0:e.negate()),primary:3089,mac:{primary:1553},weight:100}})}}),(0,ee.fK)(new class extends sw{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}),(0,ee.fK)(new class extends nw{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(e,t,i,o){return super._move((0,iw.u)(sn.BH.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,o)}}),(0,ee.fK)(new class extends nw{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(e,t,i,o){return super._move((0,iw.u)(sn.BH.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,o)}}),(0,ee.fK)(new class extends sw{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(e,t,i,o){return super._move((0,iw.u)(sn.BH.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,o)}}),(0,ee.fK)(new class extends sw{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(e,t,i,o){return super._move((0,iw.u)(sn.BH.wordSeparators.defaultValue,e.intlSegmenterLocales),t,i,o)}}),(0,ee.fK)(new class extends aw{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:oe.u.writable})}}),(0,ee.fK)(new class extends aw{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:oe.u.writable})}}),(0,ee.fK)(new class extends aw{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}),(0,ee.fK)(new class extends lw{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:oe.u.writable})}}),(0,ee.fK)(new class extends lw{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:oe.u.writable})}}),(0,ee.fK)(new class extends lw{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}),(0,ee.Qr)(dw);class cw extends ow{_move(e,t,i,o){return tw.L.moveWordPartLeft(e,t,i)}}ye.P.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");ye.P.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class hw extends ow{_move(e,t,i,o){return tw.L.moveWordPartRight(e,t,i)}}(0,ee.fK)(new class extends rw{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(e,t){const i=tw.L.deleteWordPartLeft(e);return i||new He.e(1,1,1,1)}}),(0,ee.fK)(new class extends rw{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:oe.u.writable,kbOpts:{kbExpr:oe.u.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(e,t){const i=tw.L.deleteWordPartRight(e);if(i)return i;const o=e.model.getLineCount(),n=e.model.getLineMaxColumn(o);return new He.e(o,n,o,n)}}),(0,ee.fK)(new class extends cw{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:oe.u.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}),(0,ee.fK)(new class extends cw{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:oe.u.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}),(0,ee.fK)(new class extends hw{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:oe.u.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}),(0,ee.fK)(new class extends hw{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:oe.u.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}});class uw extends Fe.JT{constructor(e){super(),this.editor=e,this._register(this.editor.onDidAttemptReadOnlyEdit((()=>this._onDidAttemptReadOnlyEdit())))}_onDidAttemptReadOnlyEdit(){const e=fi.get(this.editor);if(e&&this.editor.hasModel()){let t=this.editor.getOptions().get(92);t||(t=this.editor.isSimpleWidget?new Ne.W5(ne.NC("editor.simple.readonly","Cannot edit in read-only input")):new Ne.W5(ne.NC("editor.readonly","Cannot edit in read-only editor"))),e.showMessage(t,this.editor.getPosition())}}}uw.ID="editor.contrib.readOnlyMessageController",(0,ee._K)(uw.ID,uw,2);var gw=i(39196),pw=i(5545),mw=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},_w=function(e,t){return function(i,o){t(i,o,e)}};let fw=class extends Fe.JT{constructor(e,t,i){super(),this._textModel=e,this._languageFeaturesService=t,this._outlineModelService=i,this._currentModel=(0,dd.uh)(this,void 0);const o=(0,dd.aq)("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),n=(0,dd.aq)("_textModel.onDidChangeContent",ui.ju.debounce((e=>this._textModel.onDidChangeContent(e)),(()=>{}),100));this._register((0,dd.gp)((async(e,t)=>{o.read(e),n.read(e);const i=t.add(new pw.t2),s=await this._outlineModelService.getOrCreate(this._textModel,i.token);t.isDisposed||this._currentModel.set(s,void 0)})))}getBreadcrumbItems(e,t){const i=this._currentModel.read(t);if(!i)return[];const o=i.asListOfDocumentSymbols().filter((t=>e.contains(t.range.startLineNumber)&&!e.contains(t.range.endLineNumber)));return o.sort((0,nt.BV)((0,nt.tT)((e=>e.range.endLineNumber-e.range.startLineNumber),nt.fv))),o.map((e=>({name:e.name,kind:e.kind,startLineNumber:e.range.startLineNumber})))}};fw=mw([_w(1,kt.p),_w(2,Ag)],fw),gw.O.setBreadcrumbsSourceFactory(((e,t)=>t.createInstance(fw,e)));var vw=i(36334);class bw extends Fe.JT{constructor(e){super(),this.editor=e,this.widget=null,it.gn&&(this._register(e.onDidChangeConfiguration((()=>this.update()))),this.update())}update(){const e=!this.editor.getOption(91);!this.widget&&e?this.widget=new Cw(this.editor):this.widget&&!e&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}}bw.ID="editor.contrib.iPadShowKeyboard";class Cw extends Fe.JT{constructor(e){super(),this.editor=e,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(X.nm(this._domNode,"touchstart",(e=>{this.editor.focus()}))),this._register(X.nm(this._domNode,"focus",(e=>{this.editor.focus()}))),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return Cw.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}}Cw.ID="editor.contrib.ShowKeyboardWidget",(0,ee._K)(bw.ID,bw,3);var Sw,yw=i(55562),ww=i(22191),xw=i(24587),Nw=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Lw=function(e,t){return function(i,o){t(i,o,e)}};let kw=Sw=class extends Fe.JT{static get(e){return e.getContribution(Sw.ID)}constructor(e,t,i){super(),this._editor=e,this._languageService=i,this._widget=null,this._register(this._editor.onDidChangeModel((e=>this.stop()))),this._register(this._editor.onDidChangeModelLanguage((e=>this.stop()))),this._register(Lt.RW.onDidChange((e=>this.stop()))),this._register(this._editor.onKeyUp((e=>9===e.keyCode&&this.stop())))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new Iw(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}};kw.ID="editor.contrib.inspectTokens",kw=Sw=Nw([Lw(1,xw.Z),Lw(2,Us.O)],kw);class Dw extends ee.R6{constructor(){super({id:"editor.action.inspectTokens",label:vw.ug.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(e,t){const i=kw.get(t);null===i||void 0===i||i.launch()}}class Iw extends Fe.JT{constructor(e,t){super(),this.allowEditorOverflow=!0,this._editor=e,this._languageService=t,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=function(e,t){const i=Lt.RW.get(t);if(i)return i;const o=e.encodeLanguageId(t);return{getInitialState:()=>ww.TJ,tokenize:(e,i,o)=>(0,ww.Ri)(t,o),tokenizeEncoded:(e,t,i)=>(0,ww.Dy)(o,i)}}(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition((e=>this._compute(this._editor.getPosition())))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return Iw._ID}_compute(e){const t=this._getTokensAtLine(e.lineNumber);let i=0;for(let a=t.tokens1.length-1;a>=0;a--){const o=t.tokens1[a];if(e.column-1>=o.offset){i=a;break}}let o=0;for(let a=t.tokens2.length>>>1;a>=0;a--)if(e.column-1>=t.tokens2[a<<1]){o=a;break}const n=this._model.getLineContent(e.lineNumber);let s="";if(i<t.tokens1.length){const e=t.tokens1[i].offset,o=i+1<t.tokens1.length?t.tokens1[i+1].offset:n.length;s=n.substring(e,o)}(0,X.mc)(this._domNode,(0,X.$)("h2.tm-token",void 0,function(e){let t="";for(let i=0,o=e.length;i<o;i++){const o=e.charCodeAt(i);switch(o){case 9:t+="\u2192";break;case 32:t+="\xb7";break;default:t+=String.fromCharCode(o)}}return t}(s),(0,X.$)("span.tm-token-length",void 0,"".concat(s.length," ").concat(1===s.length?"char":"chars")))),(0,X.R3)(this._domNode,(0,X.$)("hr.tokens-inspect-separator",{style:"clear:both"}));const r=1+(o<<1)<t.tokens2.length?this._decodeMetadata(t.tokens2[1+(o<<1)]):null;(0,X.R3)(this._domNode,(0,X.$)("table.tm-metadata-table",void 0,(0,X.$)("tbody",void 0,(0,X.$)("tr",void 0,(0,X.$)("td.tm-metadata-key",void 0,"language"),(0,X.$)("td.tm-metadata-value",void 0,"".concat(r?r.languageId:"-?-"))),(0,X.$)("tr",void 0,(0,X.$)("td.tm-metadata-key",void 0,"token type"),(0,X.$)("td.tm-metadata-value",void 0,"".concat(r?this._tokenTypeToString(r.tokenType):"-?-"))),(0,X.$)("tr",void 0,(0,X.$)("td.tm-metadata-key",void 0,"font style"),(0,X.$)("td.tm-metadata-value",void 0,"".concat(r?this._fontStyleToString(r.fontStyle):"-?-"))),(0,X.$)("tr",void 0,(0,X.$)("td.tm-metadata-key",void 0,"foreground"),(0,X.$)("td.tm-metadata-value",void 0,"".concat(r?Zn.Il.Format.CSS.formatHex(r.foreground):"-?-"))),(0,X.$)("tr",void 0,(0,X.$)("td.tm-metadata-key",void 0,"background"),(0,X.$)("td.tm-metadata-value",void 0,"".concat(r?Zn.Il.Format.CSS.formatHex(r.background):"-?-")))))),(0,X.R3)(this._domNode,(0,X.$)("hr.tokens-inspect-separator")),i<t.tokens1.length&&(0,X.R3)(this._domNode,(0,X.$)("span.tm-token-type",void 0,t.tokens1[i].type)),this._editor.layoutContentWidget(this)}_decodeMetadata(e){const t=Lt.RW.getColorMap(),i=yw.N.getLanguageId(e),o=yw.N.getTokenType(e),n=yw.N.getFontStyle(e),s=yw.N.getForeground(e),r=yw.N.getBackground(e);return{languageId:this._languageService.languageIdCodec.decodeLanguageId(i),tokenType:o,fontStyle:n,foreground:t[s],background:t[r]}}_tokenTypeToString(e){switch(e){case 0:return"Other";case 1:return"Comment";case 2:return"String";case 3:return"RegEx";default:return"??"}}_fontStyleToString(e){let t="";return 1&e&&(t+="italic "),2&e&&(t+="bold "),4&e&&(t+="underline "),8&e&&(t+="strikethrough "),0===t.length&&(t="---"),t}_getTokensAtLine(e){const t=this._getStateBeforeLine(e),i=this._tokenizationSupport.tokenize(this._model.getLineContent(e),!0,t),o=this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(e),!0,t);return{startState:t,tokens1:i.tokens,tokens2:o.tokens,endState:i.endState}}_getStateBeforeLine(e){let t=this._tokenizationSupport.getInitialState();for(let i=1;i<e;i++){t=this._tokenizationSupport.tokenize(this._model.getLineContent(i),!0,t).endState}return t}getDomNode(){return this._domNode}getPosition(){return{position:this._editor.getPosition(),preference:[2,1]}}}Iw._ID="editor.contrib.inspectTokensWidget",(0,ee._K)(kw.ID,kw,4),(0,ee.Qr)(Dw);var Rw,Pw=i(53643),Mw=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Tw=function(e,t){return function(i,o){t(i,o,e)}};let Ew=Rw=class{constructor(e,t){this.quickInputService=e,this.keybindingService=t,this.registry=ft.B.as(Pw.IP.Quickaccess)}provide(e){const t=new Fe.SL;return t.add(e.onDidAccept((()=>{const[t]=e.selectedItems;t&&this.quickInputService.quickAccess.show(t.prefix,{preserveValue:!0})}))),t.add(e.onDidChangeValue((e=>{const t=this.registry.getQuickAccessProvider(e.substr(Rw.PREFIX.length));t&&t.prefix&&t.prefix!==Rw.PREFIX&&this.quickInputService.quickAccess.show(t.prefix,{preserveValue:!0})}))),e.items=this.getQuickAccessProviders().filter((e=>e.prefix!==Rw.PREFIX)),t}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort(((e,t)=>e.prefix.localeCompare(t.prefix))).flatMap((e=>this.createPicks(e)))}createPicks(e){return e.helpEntries.map((t=>{const i=t.prefix||e.prefix,o=i||"\u2026";return{prefix:i,label:o,keybinding:t.commandId?this.keybindingService.lookupKeybinding(t.commandId):void 0,ariaLabel:(0,ne.NC)("helpPickAriaLabel","{0}, {1}",o,t.description),description:t.description}}))}};Ew.PREFIX="?",Ew=Rw=Mw([Tw(0,wi.eJ),Tw(1,ki.d)],Ew),ft.B.as(Pw.IP.Quickaccess).registerQuickAccessProvider({ctor:Ew,prefix:"",helpEntries:[{description:vw.ld.helpQuickAccessActionLabel}]});var Aw=i(75937);class Ow{constructor(e){this.options=e,this.rangeHighlightDecorationId=void 0}provide(e,t){var i;const o=new Fe.SL;e.canAcceptInBackground=!!(null===(i=this.options)||void 0===i?void 0:i.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;const n=o.add(new Fe.XK);return n.value=this.doProvide(e,t),o.add(this.onDidActiveTextEditorControlChange((()=>{n.value=void 0,n.value=this.doProvide(e,t)}))),o}doProvide(e,t){var i;const o=new Fe.SL,n=this.activeTextEditorControl;if(n&&this.canProvideWithTextEditor(n)){const s={editor:n},r=(0,xr.Pi)(n);if(r){let e=null!==(i=n.saveViewState())&&void 0!==i?i:void 0;o.add(r.onDidChangeCursorPosition((()=>{var t;e=null!==(t=n.saveViewState())&&void 0!==t?t:void 0}))),s.restoreViewState=()=>{e&&n===this.activeTextEditorControl&&n.restoreViewState(e)},o.add((0,Aw.M)(t.onCancellationRequested)((()=>{var e;return null===(e=s.restoreViewState)||void 0===e?void 0:e.call(s)})))}o.add((0,Fe.OF)((()=>this.clearDecorations(n)))),o.add(this.provideWithTextEditor(s,e,t))}else o.add(this.provideWithoutTextEditor(e,t));return o}canProvideWithTextEditor(e){return!0}gotoLocation(e,t){let{editor:i}=e;i.setSelection(t.range,"code.jump"),i.revealRangeInCenter(t.range,0),t.preserveFocus||i.focus();const o=i.getModel();o&&"getLineContent"in o&&(0,xe.i7)("".concat(o.getLineContent(t.range.startLineNumber)))}getModel(e){var t;return(0,xr.QI)(e)?null===(t=e.getModel())||void 0===t?void 0:t.modified:e.getModel()}addDecorations(e,t){e.changeDecorations((e=>{const i=[];this.rangeHighlightDecorationId&&(i.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),i.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const o=[{range:t,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:(0,Ue.EN)(xc.m9),position:Ve.sh.Full}}}],[n,s]=e.deltaDecorations(i,o);this.rangeHighlightDecorationId={rangeHighlightId:n,overviewRulerDecorationId:s}}))}clearDecorations(e){const t=this.rangeHighlightDecorationId;t&&(e.changeDecorations((e=>{e.deltaDecorations([t.overviewRulerDecorationId,t.rangeHighlightId],[])})),this.rangeHighlightDecorationId=void 0)}}class Fw extends Ow{constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(e){const t=(0,ne.NC)("cannotRunGotoLine","Open a text editor first to go to a line.");return e.items=[{label:t}],e.ariaLabel=t,Fe.JT.None}provideWithTextEditor(e,t,i){const o=e.editor,n=new Fe.SL;n.add(t.onDidAccept((i=>{const[n]=t.selectedItems;if(n){if(!this.isValidLineNumber(o,n.lineNumber))return;this.gotoLocation(e,{range:this.toRange(n.lineNumber,n.column),keyMods:t.keyMods,preserveFocus:i.inBackground}),i.inBackground||t.hide()}})));const s=()=>{const e=this.parsePosition(o,t.value.trim().substr(Fw.PREFIX.length)),i=this.getPickLabel(o,e.lineNumber,e.column);if(t.items=[{lineNumber:e.lineNumber,column:e.column,label:i}],t.ariaLabel=i,!this.isValidLineNumber(o,e.lineNumber))return void this.clearDecorations(o);const n=this.toRange(e.lineNumber,e.column);o.revealRangeInCenter(n,0),this.addDecorations(o,n)};s(),n.add(t.onDidChangeValue((()=>s())));const r=(0,xr.Pi)(o);if(r){2===r.getOptions().get(68).renderType&&(r.updateOptions({lineNumbers:"on"}),n.add((0,Fe.OF)((()=>r.updateOptions({lineNumbers:"relative"})))))}return n}toRange(){let 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}}parsePosition(e,t){const i=t.split(/,|:|#/).map((e=>parseInt(e,10))).filter((e=>!isNaN(e))),o=this.lineCount(e)+1;return{lineNumber:i[0]>0?i[0]:o+i[0],column:i[1]}}getPickLabel(e,t,i){if(this.isValidLineNumber(e,t))return this.isValidColumn(e,t,i)?(0,ne.NC)("gotoLineColumnLabel","Go to line {0} and character {1}.",t,i):(0,ne.NC)("gotoLineLabel","Go to line {0}.",t);const o=e.getPosition()||{lineNumber:1,column:1},n=this.lineCount(e);return n>1?(0,ne.NC)("gotoLineLabelEmptyWithLimit","Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.",o.lineNumber,o.column,n):(0,ne.NC)("gotoLineLabelEmpty","Current Line: {0}, Character: {1}. Type a line number to navigate to.",o.lineNumber,o.column)}isValidLineNumber(e,t){return!(!t||"number"!==typeof t)&&(t>0&&t<=this.lineCount(e))}isValidColumn(e,t,i){if(!i||"number"!==typeof i)return!1;const o=this.getModel(e);if(!o)return!1;const n={lineNumber:t,column:i};return o.validatePosition(n).equals(n)}lineCount(e){var t,i;return null!==(i=null===(t=this.getModel(e))||void 0===t?void 0:t.getLineCount())&&void 0!==i?i:0}}Fw.PREFIX=":";var Ww=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Hw=function(e,t){return function(i,o){t(i,o,e)}};let Vw=class extends Fw{constructor(e){super(),this.editorService=e,this.onDidActiveTextEditorControlChange=ui.ju.None}get activeTextEditorControl(){var e;return null!==(e=this.editorService.getFocusedCodeEditor())&&void 0!==e?e:void 0}};Vw=Ww([Hw(0,te.$)],Vw);class Bw extends ee.R6{constructor(){super({id:Bw.ID,label:vw.qq.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:oe.u.focus,primary:2085,mac:{primary:293},weight:100}})}run(e){e.get(wi.eJ).quickAccess.show(Vw.PREFIX)}}Bw.ID="editor.action.gotoLine",(0,ee.Qr)(Bw),ft.B.as(Pw.IP.Quickaccess).registerQuickAccessProvider({ctor:Vw,prefix:Vw.PREFIX,helpEntries:[{description:vw.qq.gotoLineActionLabel,commandId:Bw.ID}]});const zw=[void 0,[]];function Uw(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;const n=t;return n.values&&n.values.length>1?function(e,t,i,o){let n=0;const s=[];for(const r of t){const[t,a]=Kw(e,r,i,o);if("number"!==typeof t)return zw;n+=t,s.push(...a)}return[n,jw(s)]}(e,n.values,i,o):Kw(e,t,i,o)}function Kw(e,t,i,o){const n=(0,Fr.EW)(t.original,t.originalLowercase,i,e,e.toLowerCase(),o,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return n?[n[0],(0,Fr.mB)(n)]:zw}Object.freeze({score:0});function jw(e){const t=e.sort(((e,t)=>e.start-t.start)),i=[];let o;for(const n of t)o&&qw(o,n)?(o.start=Math.min(o.start,n.start),o.end=Math.max(o.end,n.end)):(o=n,i.push(n));return i}function qw(e,t){return!(e.end<t.start)&&!(t.end<e.start)}function Gw(e){return e.startsWith('"')&&e.endsWith('"')}const Qw=" ";function Zw(e){"string"!==typeof e&&(e="");const t=e.toLowerCase(),{pathNormalized:i,normalized:o,normalizedLowercase:n}=Yw(e),s=i.indexOf(Zp.ir)>=0,r=Gw(e);let a;const l=e.split(Qw);if(l.length>1)for(const d of l){const e=Gw(d),{pathNormalized:t,normalized:i,normalizedLowercase:o}=Yw(d);i&&(a||(a=[]),a.push({original:d,originalLowercase:d.toLowerCase(),pathNormalized:t,normalized:i,normalizedLowercase:o,expectContiguousMatch:e}))}return{original:e,originalLowercase:t,pathNormalized:i,normalized:o,normalizedLowercase:n,values:a,containsPathSeparator:s,expectContiguousMatch:r}}function Yw(e){let t;t=it.ED?e.replace(/\//g,Zp.ir):e.replace(/\\/g,Zp.ir);const i=(0,ii.R1)(t).replace(/\s|"/g,"");return{pathNormalized:t,normalized:i,normalizedLowercase:i.toLowerCase()}}function Jw(e){return Array.isArray(e)?Zw(e.map((e=>e.original)).join(Qw)):Zw(e.original)}var $w,Xw=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ex=function(e,t){return function(i,o){t(i,o,e)}};let tx=$w=class extends Ow{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Object.create(null);super(i),this._languageFeaturesService=e,this._outlineModelService=t,this.options=i,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(e){return this.provideLabelPick(e,(0,ne.NC)("cannotRunGotoSymbolWithoutEditor","To go to a symbol, first open a text editor with symbol information.")),Fe.JT.None}provideWithTextEditor(e,t,i){const o=e.editor,n=this.getModel(o);return n?this._languageFeaturesService.documentSymbolProvider.has(n)?this.doProvideWithEditorSymbols(e,n,t,i):this.doProvideWithoutEditorSymbols(e,n,t,i):Fe.JT.None}doProvideWithoutEditorSymbols(e,t,i,o){const n=new Fe.SL;return this.provideLabelPick(i,(0,ne.NC)("cannotRunGotoSymbolWithoutSymbolProvider","The active text editor does not provide symbol information.")),(async()=>{await this.waitForLanguageSymbolRegistry(t,n)&&!o.isCancellationRequested&&n.add(this.doProvideWithEditorSymbols(e,t,i,o))})(),n}provideLabelPick(e,t){e.items=[{label:t,index:0,kind:14}],e.ariaLabel=t}async waitForLanguageSymbolRegistry(e,t){if(this._languageFeaturesService.documentSymbolProvider.has(e))return!0;const i=new Oe.CR,o=t.add(this._languageFeaturesService.documentSymbolProvider.onDidChange((()=>{this._languageFeaturesService.documentSymbolProvider.has(e)&&(o.dispose(),i.complete(!0))})));return t.add((0,Fe.OF)((()=>i.complete(!1)))),i.p}doProvideWithEditorSymbols(e,t,i,o){var n;const s=e.editor,r=new Fe.SL;r.add(i.onDidAccept((t=>{const[o]=i.selectedItems;o&&o.range&&(this.gotoLocation(e,{range:o.range.selection,keyMods:i.keyMods,preserveFocus:t.inBackground}),t.inBackground||i.hide())}))),r.add(i.onDidTriggerItemButton((t=>{let{item:o}=t;o&&o.range&&(this.gotoLocation(e,{range:o.range.selection,keyMods:i.keyMods,forceSideBySide:!0}),i.hide())})));const a=this.getDocumentSymbols(t,o);let l;const d=async e=>{null===l||void 0===l||l.dispose(!0),i.busy=!1,l=new Yi.A(o),i.busy=!0;try{const t=Zw(i.value.substr($w.PREFIX.length).trim()),n=await this.doGetSymbolPicks(a,t,void 0,l.token);if(o.isCancellationRequested)return;if(n.length>0){if(i.items=n,e&&0===t.original.length){const t=(0,Nc.dF)(n,(t=>Boolean("separator"!==t.type&&t.range&&He.e.containsPosition(t.range.decoration,e))));t&&(i.activeItems=[t])}}else t.original.length>0?this.provideLabelPick(i,(0,ne.NC)("noMatchingSymbolResults","No matching editor symbols")):this.provideLabelPick(i,(0,ne.NC)("noSymbolResults","No editor symbols"))}finally{o.isCancellationRequested||(i.busy=!1)}};return r.add(i.onDidChangeValue((()=>d(void 0)))),d(null===(n=s.getSelection())||void 0===n?void 0:n.getPosition()),r.add(i.onDidChangeActive((()=>{const[e]=i.activeItems;e&&e.range&&(s.revealRangeInCenter(e.range.selection,0),this.addDecorations(s,e.range.decoration))}))),r}async doGetSymbolPicks(e,t,i,o){var n,s;const r=await e;if(o.isCancellationRequested)return[];const a=0===t.original.indexOf($w.SCOPE_PREFIX),l=a?1:0;let d,c,h;t.values&&t.values.length>1?(d=Jw(t.values[0]),c=Jw(t.values.slice(1))):d=t;const u=null===(s=null===(n=this.options)||void 0===n?void 0:n.openSideBySideDirection)||void 0===s?void 0:s.call(n);u&&(h=[{iconClass:"right"===u?oi.k.asClassName($.l.splitHorizontal):oi.k.asClassName($.l.splitVertical),tooltip:"right"===u?(0,ne.NC)("openToSide","Open to the Side"):(0,ne.NC)("openToBottom","Open to the Bottom")}]);const g=[];for(let _=0;_<r.length;_++){const f=r[_],v=(0,ii.fy)(f.name),b="$(".concat(Lt.uZ.toIcon(f.kind).id,") ").concat(v),C=b.length-v.length;let S,y,w,x,N=f.containerName;if((null===i||void 0===i?void 0:i.extraContainerLabel)&&(N=N?"".concat(i.extraContainerLabel," \u2022 ").concat(N):i.extraContainerLabel),t.original.length>l){let k=!1;if(d!==t&&([S,y]=Uw(b,{...t,values:void 0},l,C),"number"===typeof S&&(k=!0)),"number"!==typeof S&&([S,y]=Uw(b,d,l,C),"number"!==typeof S))continue;if(!k&&c){if(N&&c.original.length>0&&([w,x]=Uw(N,c)),"number"!==typeof w)continue;"number"===typeof S&&(S+=w)}}const L=f.tags&&f.tags.indexOf(1)>=0;g.push({index:_,kind:f.kind,score:S,label:b,ariaLabel:(0,Lt.R4)(f.name,f.kind),description:N,highlights:L?void 0:{label:y,description:x},range:{selection:He.e.collapseToStart(f.selectionRange),decoration:f.range},strikethrough:L,buttons:h})}const p=g.sort(((e,t)=>a?this.compareByKindAndScore(e,t):this.compareByScore(e,t)));let m=[];if(a){let D,I,R=0;function P(){I&&"number"===typeof D&&R>0&&(I.label=(0,ii.WU)(ox[D]||ix,R))}for(const M of p)D!==M.kind?(P(),D=M.kind,R=1,I={type:"separator"},m.push(I)):R++,m.push(M);P()}else p.length>0&&(m=[{label:(0,ne.NC)("symbols","symbols ({0})",g.length),type:"separator"},...p]);return m}compareByScore(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}compareByKindAndScore(e,t){const i=ox[e.kind]||ix,o=ox[t.kind]||ix,n=i.localeCompare(o);return 0===n?this.compareByScore(e,t):n}async getDocumentSymbols(e,t){const i=await this._outlineModelService.getOrCreate(e,t);return t.isCancellationRequested?[]:i.asListOfDocumentSymbols()}};tx.PREFIX="@",tx.SCOPE_PREFIX=":",tx.PREFIX_BY_CATEGORY="".concat($w.PREFIX).concat($w.SCOPE_PREFIX),tx=$w=Xw([ex(0,kt.p),ex(1,Ag)],tx);const ix=(0,ne.NC)("property","properties ({0})"),ox={5:(0,ne.NC)("method","methods ({0})"),11:(0,ne.NC)("function","functions ({0})"),8:(0,ne.NC)("_constructor","constructors ({0})"),12:(0,ne.NC)("variable","variables ({0})"),4:(0,ne.NC)("class","classes ({0})"),22:(0,ne.NC)("struct","structs ({0})"),23:(0,ne.NC)("event","events ({0})"),24:(0,ne.NC)("operator","operators ({0})"),10:(0,ne.NC)("interface","interfaces ({0})"),2:(0,ne.NC)("namespace","namespaces ({0})"),3:(0,ne.NC)("package","packages ({0})"),25:(0,ne.NC)("typeParameter","type parameters ({0})"),1:(0,ne.NC)("modules","modules ({0})"),6:(0,ne.NC)("property","properties ({0})"),9:(0,ne.NC)("enum","enumerations ({0})"),21:(0,ne.NC)("enumMember","enumeration members ({0})"),14:(0,ne.NC)("string","strings ({0})"),0:(0,ne.NC)("file","files ({0})"),17:(0,ne.NC)("array","arrays ({0})"),15:(0,ne.NC)("number","numbers ({0})"),16:(0,ne.NC)("boolean","booleans ({0})"),18:(0,ne.NC)("object","objects ({0})"),19:(0,ne.NC)("key","keys ({0})"),7:(0,ne.NC)("field","fields ({0})"),13:(0,ne.NC)("constant","constants ({0})")};var nx=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},sx=function(e,t){return function(i,o){t(i,o,e)}};let rx=class extends tx{constructor(e,t,i){super(t,i),this.editorService=e,this.onDidActiveTextEditorControlChange=ui.ju.None}get activeTextEditorControl(){var e;return null!==(e=this.editorService.getFocusedCodeEditor())&&void 0!==e?e:void 0}};rx=nx([sx(0,te.$),sx(1,kt.p),sx(2,Ag)],rx);class ax extends ee.R6{constructor(){super({id:ax.ID,label:vw.aq.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:oe.u.hasDocumentSymbolProvider,kbOpts:{kbExpr:oe.u.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(e){e.get(wi.eJ).quickAccess.show(tx.PREFIX,{itemActivation:wi.jG.NONE})}}ax.ID="editor.action.quickOutline",(0,ee.Qr)(ax),ft.B.as(Pw.IP.Quickaccess).registerQuickAccessProvider({ctor:rx,prefix:tx.PREFIX,helpEntries:[{description:vw.aq.quickOutlineActionLabel,prefix:tx.PREFIX,commandId:ax.ID},{description:vw.aq.quickOutlineByCategoryActionLabel,prefix:tx.PREFIX_BY_CATEGORY}]});var lx,dx=i(43020);function cx(e,t){return t&&(e.stack||e.stacktrace)?ne.NC("stackTrace.format","{0}: {1}",ux(e),hx(e.stack)||hx(e.stacktrace)):ux(e)}function hx(e){return Array.isArray(e)?e.join("\n"):e}function ux(e){return"ERR_UNC_HOST_NOT_ALLOWED"===e.code?"".concat(e.message,". Please update the 'security.allowedUNCHosts' setting if you want to allow this host."):"string"===typeof e.code&&"number"===typeof e.errno&&"string"===typeof e.syscall?ne.NC("nodeExceptionMessage","A system error occurred ({0})",e.message):e.message||ne.NC("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}function gx(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!e)return ne.NC("error.defaultMessage","An unknown error occurred. Please consult the log for more details.");if(Array.isArray(e)){const i=nt.kX(e),o=gx(i[0],t);return i.length>1?ne.NC("error.moreErrors","{0} ({1} errors in total)",o,i.length):o}if(Dn.HD(e))return e;if(e.detail){const i=e.detail;if(i.error)return cx(i.error,t);if(i.exception)return cx(i.exception,t)}return e.stack?cx(e,t):e.message?e.message:ne.NC("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}class px{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(e,t){const i=this.computeEmbedding(e),o=new Map,n=[];for(const[s,r]of this.documents){if(t.isCancellationRequested)return[];for(const e of r.chunks){const t=this.computeSimilarityScore(e,i,o);t>0&&n.push({key:s,score:t})}}return n}static termFrequencies(e){return function(e){var t;const i=new Map;for(const o of e)i.set(o,(null!==(t=i.get(o))&&void 0!==t?t:0)+1);return i}(px.splitTerms(e))}static*splitTerms(e){const t=e=>e.toLowerCase();for(const[i]of e.matchAll(/\b\p{Letter}[\p{Letter}\d]{2,}\b/gu)){yield t(i);const e=i.replace(/([a-z])([A-Z])/g,"$1 $2").split(/\s+/g);if(e.length>1)for(const i of e)i.length>2&&/\p{Letter}{3,}/gu.test(i)&&(yield t(i))}}updateDocuments(e){var t;for(const{key:i}of e)this.deleteDocument(i);for(const i of e){const e=[];for(const o of i.textChunks){const i=px.termFrequencies(o);for(const e of i.keys())this.chunkOccurrences.set(e,(null!==(t=this.chunkOccurrences.get(e))&&void 0!==t?t:0)+1);e.push({text:o,tf:i})}this.chunkCount+=e.length,this.documents.set(i.key,{chunks:e})}return this}deleteDocument(e){const t=this.documents.get(e);if(t){this.documents.delete(e),this.chunkCount-=t.chunks.length;for(const e of t.chunks)for(const t of e.tf.keys()){const e=this.chunkOccurrences.get(t);if("number"===typeof e){const i=e-1;i<=0?this.chunkOccurrences.delete(t):this.chunkOccurrences.set(t,i)}}}}computeSimilarityScore(e,t,i){let o=0;for(const[n,s]of Object.entries(t)){const t=e.tf.get(n);if(!t)continue;let r=i.get(n);"number"!==typeof r&&(r=this.computeIdf(n),i.set(n,r));o+=t*r*s}return o}computeEmbedding(e){const t=px.termFrequencies(e);return this.computeTfidf(t)}computeIdf(e){var t;const i=null!==(t=this.chunkOccurrences.get(e))&&void 0!==t?t:0;return i>0?Math.log((this.chunkCount+1)/i):0}computeTfidf(e){const t=Object.create(null);for(const[i,o]of e){const e=this.computeIdf(i);e>0&&(t[i]=o*e)}return t}}function mx(e){const t=e;return Array.isArray(t.items)}function _x(e){const 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"}(lx||(lx={}));class fx extends Fe.JT{constructor(e,t){super(),this.prefix=e,this.options=t}provide(e,t,i){var o;const n=new Fe.SL;let s;e.canAcceptInBackground=!!(null===(o=this.options)||void 0===o?void 0:o.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;const r=n.add(new Fe.XK),a=async()=>{var o;const n=r.value=new Fe.SL;null===s||void 0===s||s.dispose(!0),e.busy=!1,s=new Yi.A(t);const a=s.token;let l=e.value.substring(this.prefix.length);(null===(o=this.options)||void 0===o?void 0:o.shouldSkipTrimPickFilter)||(l=l.trim());const d=this._getPicks(l,n,a,i),c=(t,i)=>{var o;let n,s;if(mx(t)?(n=t.items,s=t.active):n=t,0===n.length){if(i)return!1;(l.length>0||e.hideInput)&&(null===(o=this.options)||void 0===o?void 0:o.noResultsPick)&&(n=(0,Dn.mf)(this.options.noResultsPick)?[this.options.noResultsPick(l)]:[this.options.noResultsPick])}return e.items=n,s&&(e.activeItems=[s]),!0},h=async t=>{let i=!1,o=!1;await Promise.all([(async()=>{"number"===typeof t.mergeDelay&&(await(0,Oe.Vs)(t.mergeDelay),a.isCancellationRequested)||o||(i=c(t.picks,!0))})(),(async()=>{e.busy=!0;try{const o=await t.additionalPicks;if(a.isCancellationRequested)return;let n,s,r,l;if(mx(t.picks)?(n=t.picks.items,s=t.picks.active):n=t.picks,mx(o)?(r=o.items,l=o.active):r=o,r.length>0||!i){let t;if(!s&&!l){const i=e.activeItems[0];i&&-1!==n.indexOf(i)&&(t=i)}c({items:[...n,...r],active:s||l||t})}}finally{a.isCancellationRequested||(e.busy=!1),o=!0}})()])};if(null===d);else if(_x(d))await h(d);else if(d instanceof Promise){e.busy=!0;try{const e=await d;if(a.isCancellationRequested)return;_x(e)?await h(e):c(e)}finally{a.isCancellationRequested||(e.busy=!1)}}else c(d)};n.add(e.onDidChangeValue((()=>a()))),a(),n.add(e.onDidAccept((t=>{const[i]=e.selectedItems;"function"===typeof(null===i||void 0===i?void 0:i.accept)&&(t.inBackground||e.hide(),i.accept(e.keyMods,t))})));const l=async(i,o)=>{var n,s;if("function"!==typeof o.trigger)return;const r=null!==(s=null===(n=o.buttons)||void 0===n?void 0:n.indexOf(i))&&void 0!==s?s:-1;if(r>=0){const i=o.trigger(r,e.keyMods),n="number"===typeof i?i:await i;if(t.isCancellationRequested)return;switch(n){case lx.NO_ACTION:break;case lx.CLOSE_PICKER:e.hide();break;case lx.REFRESH_PICKER:a();break;case lx.REMOVE_ITEM:{const t=e.items.indexOf(o);if(-1!==t){const i=e.items.slice(),o=i.splice(t,1),n=e.activeItems.filter((e=>e!==o[0])),s=e.keepScrollPosition;e.keepScrollPosition=!0,e.items=i,n&&(e.activeItems=n),e.keepScrollPosition=s}break}}}};return n.add(e.onDidTriggerItemButton((e=>{let{button:t,item:i}=e;return l(t,i)}))),n.add(e.onDidTriggerSeparatorButton((e=>{let{button:t,separator:i}=e;return l(t,i)}))),n}}var vx,bx,Cx=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Sx=function(e,t){return function(i,o){t(i,o,e)}};let yx=vx=class extends fx{constructor(e,t,i,o,n,s){super(vx.PREFIX,e),this.instantiationService=t,this.keybindingService=i,this.commandService=o,this.telemetryService=n,this.dialogService=s,this.commandsHistory=this._register(this.instantiationService.createInstance(wx)),this.options=e}async _getPicks(e,t,i,o){var n,s,r,a;const l=await this.getCommandPicks(i);if(i.isCancellationRequested)return[];const d=(0,Aw.M)((()=>{const t=new px;t.updateDocuments(l.map((e=>({key:e.commandId,textChunks:[this.getTfIdfChunk(e)]}))));return function(e){var t,i;const o=e.slice(0);o.sort(((e,t)=>t.score-e.score));const n=null!==(i=null===(t=o[0])||void 0===t?void 0:t.score)&&void 0!==i?i:0;if(n>0)for(const s of o)s.score/=n;return o}(t.calculateScores(e,i)).filter((e=>e.score>vx.TFIDF_THRESHOLD)).slice(0,vx.TFIDF_MAX_RESULTS)})),c=[];for(const _ of l){const t=null!==(n=vx.WORD_FILTER(e,_.label))&&void 0!==n?n:void 0,o=_.commandAlias&&null!==(s=vx.WORD_FILTER(e,_.commandAlias))&&void 0!==s?s:void 0;if(t||o)_.highlights={label:t,detail:this.options.showAlias?o:void 0},c.push(_);else if(e===_.commandId)c.push(_);else if(e.length>=3){const e=d();if(i.isCancellationRequested)return[];const t=e.find((e=>e.key===_.commandId));t&&(_.tfIdfScore=t.score,c.push(_))}}const h=new Map;for(const _ of c){const e=h.get(_.label);e?(_.description=_.commandId,e.description=e.commandId):h.set(_.label,_)}c.sort(((e,t)=>{if(e.tfIdfScore&&t.tfIdfScore)return e.tfIdfScore===t.tfIdfScore?e.label.localeCompare(t.label):t.tfIdfScore-e.tfIdfScore;if(e.tfIdfScore)return 1;if(t.tfIdfScore)return-1;const i=this.commandsHistory.peek(e.commandId),o=this.commandsHistory.peek(t.commandId);if(i&&o)return i>o?-1:1;if(i)return-1;if(o)return 1;if(this.options.suggestedCommandIds){const i=this.options.suggestedCommandIds.has(e.commandId),o=this.options.suggestedCommandIds.has(t.commandId);if(i&&o)return 0;if(i)return-1;if(o)return 1}return e.label.localeCompare(t.label)}));const u=[];let g=!1,p=!0,m=!!this.options.suggestedCommandIds;for(let _=0;_<c.length;_++){const e=c[_];0===_&&this.commandsHistory.peek(e.commandId)&&(u.push({type:"separator",label:(0,ne.NC)("recentlyUsed","recently used")}),g=!0),p&&void 0!==e.tfIdfScore&&(u.push({type:"separator",label:(0,ne.NC)("suggested","similar commands")}),p=!1),m&&void 0===e.tfIdfScore&&!this.commandsHistory.peek(e.commandId)&&(null===(r=this.options.suggestedCommandIds)||void 0===r?void 0:r.has(e.commandId))&&(u.push({type:"separator",label:(0,ne.NC)("commonlyUsed","commonly used")}),g=!0,m=!1),!g||void 0!==e.tfIdfScore||this.commandsHistory.peek(e.commandId)||(null===(a=this.options.suggestedCommandIds)||void 0===a?void 0:a.has(e.commandId))||(u.push({type:"separator",label:(0,ne.NC)("morecCommands","other commands")}),g=!1),u.push(this.toCommandPick(e,o))}return this.hasAdditionalCommandPicks(e,i)?{picks:u,additionalPicks:(async()=>{var t;const n=await this.getAdditionalCommandPicks(l,c,e,i);if(i.isCancellationRequested)return[];const s=n.map((e=>this.toCommandPick(e,o)));return p&&"separator"!==(null===(t=s[0])||void 0===t?void 0:t.type)&&s.unshift({type:"separator",label:(0,ne.NC)("suggested","similar commands")}),s})()}:u}toCommandPick(e,t){if("separator"===e.type)return e;const i=this.keybindingService.lookupKeybinding(e.commandId),o=i?(0,ne.NC)("commandPickAriaLabelWithKeybinding","{0}, {1}",e.label,i.getAriaLabel()):e.label;return{...e,ariaLabel:o,detail:this.options.showAlias&&e.commandAlias!==e.label?e.commandAlias:void 0,keybinding:i,accept:async()=>{var i,o;this.commandsHistory.push(e.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.commandId,from:null!==(i=null===t||void 0===t?void 0:t.from)&&void 0!==i?i:"quick open"});try{(null===(o=e.args)||void 0===o?void 0:o.length)?await this.commandService.executeCommand(e.commandId,...e.args):await this.commandService.executeCommand(e.commandId)}catch(n){(0,Ji.n2)(n)||this.dialogService.error((0,ne.NC)("canNotRun","Command '{0}' resulted in an error",e.label),gx(n))}}}}getTfIdfChunk(e){let{label:t,commandAlias:i,commandDescription:o}=e,n=t;return i&&i!==t&&(n+=" - ".concat(i)),o&&o.value!==t&&(n+=" - ".concat(o.value===o.original?o.value:"".concat(o.value," (").concat(o.original,")"))),n}};yx.PREFIX=">",yx.TFIDF_THRESHOLD=.5,yx.TFIDF_MAX_RESULTS=5,yx.WORD_FILTER=(0,Fr.or)(Fr.Ji,Fr.KZ,Fr.ir),yx=vx=Cx([Sx(1,ni.TG),Sx(2,ki.d),Sx(3,ye.H),Sx(4,eo.b),Sx(5,Ey.S)],yx);let wx=bx=class extends Fe.JT{constructor(e,t,i){super(),this.storageService=e,this.configurationService=t,this.logService=i,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration((e=>this.updateConfiguration(e)))),this._register(this.storageService.onWillSaveState((e=>{e.reason===Mn.fk.SHUTDOWN&&this.saveState()})))}updateConfiguration(e){e&&!e.affectsConfiguration("workbench.commandPalette.history")||(this.configuredCommandsHistoryLength=bx.getConfiguredCommandHistoryLength(this.configurationService),bx.cache&&bx.cache.limit!==this.configuredCommandsHistoryLength&&(bx.cache.limit=this.configuredCommandsHistoryLength,bx.hasChanges=!0))}load(){const e=this.storageService.get(bx.PREF_KEY_CACHE,0);let t;if(e)try{t=JSON.parse(e)}catch(o){this.logService.error("[CommandsHistory] invalid data: ".concat(o))}const i=bx.cache=new Pn.z6(this.configuredCommandsHistoryLength,1);if(t){let e;e=t.usesLRU?t.entries:t.entries.sort(((e,t)=>e.value-t.value)),e.forEach((e=>i.set(e.key,e.value)))}bx.counter=this.storageService.getNumber(bx.PREF_KEY_COUNTER,0,bx.counter)}push(e){bx.cache&&(bx.cache.set(e,bx.counter++),bx.hasChanges=!0)}peek(e){var t;return null===(t=bx.cache)||void 0===t?void 0:t.peek(e)}saveState(){if(!bx.cache)return;if(!bx.hasChanges)return;const e={usesLRU:!0,entries:[]};bx.cache.forEach(((t,i)=>e.entries.push({key:i,value:t}))),this.storageService.store(bx.PREF_KEY_CACHE,JSON.stringify(e),0,0),this.storageService.store(bx.PREF_KEY_COUNTER,bx.counter,0,0),bx.hasChanges=!1}static getConfiguredCommandHistoryLength(e){var t,i;const o=null===(i=null===(t=e.getValue().workbench)||void 0===t?void 0:t.commandPalette)||void 0===i?void 0:i.history;return"number"===typeof o?o:bx.DEFAULT_COMMANDS_HISTORY_LENGTH}};wx.DEFAULT_COMMANDS_HISTORY_LENGTH=50,wx.PREF_KEY_CACHE="commandPalette.mru.cache",wx.PREF_KEY_COUNTER="commandPalette.mru.counter",wx.counter=1,wx.hasChanges=!1,wx=bx=Cx([Sx(0,Mn.Uy),Sx(1,re.Ui),Sx(2,qp.VZ)],wx);class xx extends yx{constructor(e,t,i,o,n,s){super(e,t,i,o,n,s)}getCodeEditorCommandPicks(){const e=this.activeTextEditorControl;if(!e)return[];const t=[];for(const i of e.getSupportedActions())t.push({commandId:i.id,commandAlias:i.alias,label:(0,dx.x$)(i.label)||i.id});return t}}var Nx=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Lx=function(e,t){return function(i,o){t(i,o,e)}};let kx=class extends xx{get activeTextEditorControl(){var e;return null!==(e=this.codeEditorService.getFocusedCodeEditor())&&void 0!==e?e:void 0}constructor(e,t,i,o,n,s){super({showAlias:!1},e,i,o,n,s),this.codeEditorService=t}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};kx=Nx([Lx(0,ni.TG),Lx(1,te.$),Lx(2,ki.d),Lx(3,ye.H),Lx(4,eo.b),Lx(5,Ey.S)],kx);class Dx extends ee.R6{constructor(){super({id:Dx.ID,label:vw.UX.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:oe.u.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(e){e.get(wi.eJ).quickAccess.show(kx.PREFIX)}}Dx.ID="editor.action.quickCommand",(0,ee.Qr)(Dx),ft.B.as(Pw.IP.Quickaccess).registerQuickAccessProvider({ctor:kx,prefix:kx.PREFIX,helpEntries:[{description:vw.UX.quickCommandHelp,commandId:Dx.ID}]});var Ix=function(e,t,i,o){var n,s=arguments.length,r=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"===typeof Reflect&&"function"===typeof Reflect.decorate)r=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(r=(s<3?n(r):s>3?n(t,i,r):n(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Rx=function(e,t){return function(i,o){t(i,o,e)}};let Px=class extends la{constructor(e,t,i,o,n,s,r){super(!0,e,t,i,o,n,s,r)}};Px=Ix([Rx(1,ae.i6),Rx(2,te.$),Rx(3,Xi.lT),Rx(4,ni.TG),Rx(5,Mn.Uy),Rx(6,re.Ui)],Px),(0,ee._K)(la.ID,Px,4);var Mx=i(16049);class Tx extends ee.R6{constructor(){super({id:"editor.action.toggleHighContrast",label:vw.xi.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(e,t){const i=e.get(xw.Z),o=i.getColorTheme();(0,nn.c3)(o.type)?(i.setTheme(this._originalThemeName||((0,nn._T)(o.type)?Mx.rW:Mx.TG)),this._originalThemeName=null):(i.setTheme((0,nn._T)(o.type)?Mx.kR:Mx.MU),this._originalThemeName=o.themeName)}}(0,ee.Qr)(Tx)},13746:(e,t,i)=>{i.d(t,{TG:()=>b});var o,n,s=i(41551),r=Object.defineProperty,a=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,d=Object.prototype.hasOwnProperty,c=(e,t,i,o)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let n of l(t))d.call(e,n)||n===i||r(e,n,{get:()=>t[n],enumerable:!(o=a(t,n))||o.enumerable});return e},h={};c(h,o=s,"default"),n&&c(n,o,"default");var u=(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",e))(u||{}),g=(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",e))(g||{}),p=(e=>(e[e.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",e[e.LineFeed=1]="LineFeed",e))(p||{}),m=(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",e))(m||{}),_=(e=>(e[e.Classic=1]="Classic",e[e.NodeJs=2]="NodeJs",e))(_||{}),f=class{constructor(e,t,i,o,n){this._onDidChange=new h.Emitter,this._onDidExtraLibsChange=new h.Emitter,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(i),this.setInlayHintsOptions(o),this.setModeConfiguration(n),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let i;if(i="undefined"===typeof t?"ts:extralib-".concat(Math.random().toString(36).substring(2,15)):t,this._extraLibs[i]&&this._extraLibs[i].content===e)return{dispose:()=>{}};let o=1;return this._removedExtraLibs[i]&&(o=this._removedExtraLibs[i]+1),this._extraLibs[i]&&(o=this._extraLibs[i].version+1),this._extraLibs[i]={content:e,version:o},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let e=this._extraLibs[i];e&&e.version===o&&(delete this._extraLibs[i],this._removedExtraLibs[i]=o,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(const t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(const t of e){const e=t.filePath||"ts:extralib-".concat(Math.random().toString(36).substring(2,15)),i=t.content;let o=1;this._removedExtraLibs[e]&&(o=this._removedExtraLibs[e]+1),this._extraLibs[e]={content:i,version:o}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){-1===this._onDidExtraLibsChangeTimeout&&(this._onDidExtraLibsChangeTimeout=window.setTimeout((()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)}),0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(void 0)}},v={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},b=new f({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},v),C=new f({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},v);function S(){return i.e(4789).then(i.bind(i,14789))}h.languages.typescript={ModuleKind:u,JsxEmit:g,NewLineKind:p,ScriptTarget:m,ModuleResolutionKind:_,typescriptVersion:"5.0.2",typescriptDefaults:b,javascriptDefaults:C,getTypeScriptWorker:()=>S().then((e=>e.getTypeScriptWorker())),getJavaScriptWorker:()=>S().then((e=>e.getJavaScriptWorker()))},h.languages.onLanguage("typescript",(()=>S().then((e=>e.setupTypeScript(b))))),h.languages.onLanguage("javascript",(()=>S().then((e=>e.setupJavaScript(C)))))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8424.5b5c42b5.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/8424.5b5c42b5.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8424.5b5c42b5.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/8450.baf3a89d.chunk.js b/ydb/core/viewer/monitoring/static/js/8450.baf3a89d.chunk.js new file mode 100644 index 000000000000..cdfc7967802c --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8450.baf3a89d.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 8450.baf3a89d.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8450],{58450:(e,t,i)=>{i.r(t),i.d(t,{conf:()=>o,language:()=>n});var o={comments:{lineComment:"COMMENT"},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:"'"},{open:":",close:"."}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|COMMENT\\s+)#region"),end:new RegExp("^\\s*(::\\s*|COMMENT\\s+)#endregion")}}},n={tokenPostfix:".lexon",ignoreCase:!0,keywords:["lexon","lex","clause","terms","contracts","may","pay","pays","appoints","into","to"],typeKeywords:["amount","person","key","time","date","asset","text"],operators:["less","greater","equal","le","gt","or","and","add","added","subtract","subtracted","multiply","multiplied","times","divide","divided","is","be","certified"],symbols:/[=><!~?:&|+\-*\/\^%]+/,tokenizer:{root:[[/^(\s*)(comment:?(?:\s.*|))$/,["","comment"]],[/"/,{token:"identifier.quote",bracket:"@open",next:"@quoted_identifier"}],["LEX$",{token:"keyword",bracket:"@open",next:"@identifier_until_period"}],["LEXON",{token:"keyword",bracket:"@open",next:"@semver"}],[":",{token:"delimiter",bracket:"@open",next:"@identifier_until_period"}],[/[a-z_$][\w$]*/,{cases:{"@operators":"operator","@typeKeywords":"keyword.type","@keywords":"keyword","@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d*\.\d*/,"number.semver"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"]],quoted_identifier:[[/[^\\"]+/,"identifier"],[/"/,{token:"identifier.quote",bracket:"@close",next:"@pop"}]],space_identifier_until_period:[[":","delimiter"],[" ",{token:"white",next:"@identifier_rest"}]],identifier_until_period:[{include:"@whitespace"},[":",{token:"delimiter",next:"@identifier_rest"}],[/[^\\.]+/,"identifier"],[/\./,{token:"delimiter",bracket:"@close",next:"@pop"}]],identifier_rest:[[/[^\\.]+/,"identifier"],[/\./,{token:"delimiter",bracket:"@close",next:"@pop"}]],semver:[{include:"@whitespace"},[":","delimiter"],[/\d*\.\d*\.\d*/,{token:"number.semver",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8450.baf3a89d.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/8450.baf3a89d.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8450.baf3a89d.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/8520.616efa9f.chunk.js b/ydb/core/viewer/monitoring/static/js/8520.616efa9f.chunk.js deleted file mode 100644 index fb903e029b22..000000000000 --- a/ydb/core/viewer/monitoring/static/js/8520.616efa9f.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8520],{18520:function(_,e,E){E.r(e),E.d(e,{conf:function(){return t},language:function(){return T}});var t={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:"'"}]},T={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["A","ABORT","ABS","ABSENT","ABSOLUTE","ACCESS","ACCORDING","ACTION","ADA","ADD","ADMIN","AFTER","AGGREGATE","ALL","ALLOCATE","ALSO","ALTER","ALWAYS","ANALYSE","ANALYZE","AND","ANY","ARE","ARRAY","ARRAY_AGG","ARRAY_MAX_CARDINALITY","AS","ASC","ASENSITIVE","ASSERTION","ASSIGNMENT","ASYMMETRIC","AT","ATOMIC","ATTRIBUTE","ATTRIBUTES","AUTHORIZATION","AVG","BACKWARD","BASE64","BEFORE","BEGIN","BEGIN_FRAME","BEGIN_PARTITION","BERNOULLI","BETWEEN","BIGINT","BINARY","BIT","BIT_LENGTH","BLOB","BLOCKED","BOM","BOOLEAN","BOTH","BREADTH","BY","C","CACHE","CALL","CALLED","CARDINALITY","CASCADE","CASCADED","CASE","CAST","CATALOG","CATALOG_NAME","CEIL","CEILING","CHAIN","CHAR","CHARACTER","CHARACTERISTICS","CHARACTERS","CHARACTER_LENGTH","CHARACTER_SET_CATALOG","CHARACTER_SET_NAME","CHARACTER_SET_SCHEMA","CHAR_LENGTH","CHECK","CHECKPOINT","CLASS","CLASS_ORIGIN","CLOB","CLOSE","CLUSTER","COALESCE","COBOL","COLLATE","COLLATION","COLLATION_CATALOG","COLLATION_NAME","COLLATION_SCHEMA","COLLECT","COLUMN","COLUMNS","COLUMN_NAME","COMMAND_FUNCTION","COMMAND_FUNCTION_CODE","COMMENT","COMMENTS","COMMIT","COMMITTED","CONCURRENTLY","CONDITION","CONDITION_NUMBER","CONFIGURATION","CONFLICT","CONNECT","CONNECTION","CONNECTION_NAME","CONSTRAINT","CONSTRAINTS","CONSTRAINT_CATALOG","CONSTRAINT_NAME","CONSTRAINT_SCHEMA","CONSTRUCTOR","CONTAINS","CONTENT","CONTINUE","CONTROL","CONVERSION","CONVERT","COPY","CORR","CORRESPONDING","COST","COUNT","COVAR_POP","COVAR_SAMP","CREATE","CROSS","CSV","CUBE","CUME_DIST","CURRENT","CURRENT_CATALOG","CURRENT_DATE","CURRENT_DEFAULT_TRANSFORM_GROUP","CURRENT_PATH","CURRENT_ROLE","CURRENT_ROW","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TRANSFORM_GROUP_FOR_TYPE","CURRENT_USER","CURSOR","CURSOR_NAME","CYCLE","DATA","DATABASE","DATALINK","DATE","DATETIME_INTERVAL_CODE","DATETIME_INTERVAL_PRECISION","DAY","DB","DEALLOCATE","DEC","DECIMAL","DECLARE","DEFAULT","DEFAULTS","DEFERRABLE","DEFERRED","DEFINED","DEFINER","DEGREE","DELETE","DELIMITER","DELIMITERS","DENSE_RANK","DEPENDS","DEPTH","DEREF","DERIVED","DESC","DESCRIBE","DESCRIPTOR","DETERMINISTIC","DIAGNOSTICS","DICTIONARY","DISABLE","DISCARD","DISCONNECT","DISPATCH","DISTINCT","DLNEWCOPY","DLPREVIOUSCOPY","DLURLCOMPLETE","DLURLCOMPLETEONLY","DLURLCOMPLETEWRITE","DLURLPATH","DLURLPATHONLY","DLURLPATHWRITE","DLURLSCHEME","DLURLSERVER","DLVALUE","DO","DOCUMENT","DOMAIN","DOUBLE","DROP","DYNAMIC","DYNAMIC_FUNCTION","DYNAMIC_FUNCTION_CODE","EACH","ELEMENT","ELSE","EMPTY","ENABLE","ENCODING","ENCRYPTED","END","END-EXEC","END_FRAME","END_PARTITION","ENFORCED","ENUM","EQUALS","ESCAPE","EVENT","EVERY","EXCEPT","EXCEPTION","EXCLUDE","EXCLUDING","EXCLUSIVE","EXEC","EXECUTE","EXISTS","EXP","EXPLAIN","EXPRESSION","EXTENSION","EXTERNAL","EXTRACT","FALSE","FAMILY","FETCH","FILE","FILTER","FINAL","FIRST","FIRST_VALUE","FLAG","FLOAT","FLOOR","FOLLOWING","FOR","FORCE","FOREIGN","FORTRAN","FORWARD","FOUND","FRAME_ROW","FREE","FREEZE","FROM","FS","FULL","FUNCTION","FUNCTIONS","FUSION","G","GENERAL","GENERATED","GET","GLOBAL","GO","GOTO","GRANT","GRANTED","GREATEST","GROUP","GROUPING","GROUPS","HANDLER","HAVING","HEADER","HEX","HIERARCHY","HOLD","HOUR","ID","IDENTITY","IF","IGNORE","ILIKE","IMMEDIATE","IMMEDIATELY","IMMUTABLE","IMPLEMENTATION","IMPLICIT","IMPORT","IN","INCLUDING","INCREMENT","INDENT","INDEX","INDEXES","INDICATOR","INHERIT","INHERITS","INITIALLY","INLINE","INNER","INOUT","INPUT","INSENSITIVE","INSERT","INSTANCE","INSTANTIABLE","INSTEAD","INT","INTEGER","INTEGRITY","INTERSECT","INTERSECTION","INTERVAL","INTO","INVOKER","IS","ISNULL","ISOLATION","JOIN","K","KEY","KEY_MEMBER","KEY_TYPE","LABEL","LAG","LANGUAGE","LARGE","LAST","LAST_VALUE","LATERAL","LEAD","LEADING","LEAKPROOF","LEAST","LEFT","LENGTH","LEVEL","LIBRARY","LIKE","LIKE_REGEX","LIMIT","LINK","LISTEN","LN","LOAD","LOCAL","LOCALTIME","LOCALTIMESTAMP","LOCATION","LOCATOR","LOCK","LOCKED","LOGGED","LOWER","M","MAP","MAPPING","MATCH","MATCHED","MATERIALIZED","MAX","MAXVALUE","MAX_CARDINALITY","MEMBER","MERGE","MESSAGE_LENGTH","MESSAGE_OCTET_LENGTH","MESSAGE_TEXT","METHOD","MIN","MINUTE","MINVALUE","MOD","MODE","MODIFIES","MODULE","MONTH","MORE","MOVE","MULTISET","MUMPS","NAME","NAMES","NAMESPACE","NATIONAL","NATURAL","NCHAR","NCLOB","NESTING","NEW","NEXT","NFC","NFD","NFKC","NFKD","NIL","NO","NONE","NORMALIZE","NORMALIZED","NOT","NOTHING","NOTIFY","NOTNULL","NOWAIT","NTH_VALUE","NTILE","NULL","NULLABLE","NULLIF","NULLS","NUMBER","NUMERIC","OBJECT","OCCURRENCES_REGEX","OCTETS","OCTET_LENGTH","OF","OFF","OFFSET","OIDS","OLD","ON","ONLY","OPEN","OPERATOR","OPTION","OPTIONS","OR","ORDER","ORDERING","ORDINALITY","OTHERS","OUT","OUTER","OUTPUT","OVER","OVERLAPS","OVERLAY","OVERRIDING","OWNED","OWNER","P","PAD","PARALLEL","PARAMETER","PARAMETER_MODE","PARAMETER_NAME","PARAMETER_ORDINAL_POSITION","PARAMETER_SPECIFIC_CATALOG","PARAMETER_SPECIFIC_NAME","PARAMETER_SPECIFIC_SCHEMA","PARSER","PARTIAL","PARTITION","PASCAL","PASSING","PASSTHROUGH","PASSWORD","PATH","PERCENT","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","PERIOD","PERMISSION","PLACING","PLANS","PLI","POLICY","PORTION","POSITION","POSITION_REGEX","POWER","PRECEDES","PRECEDING","PRECISION","PREPARE","PREPARED","PRESERVE","PRIMARY","PRIOR","PRIVILEGES","PROCEDURAL","PROCEDURE","PROGRAM","PUBLIC","QUOTE","RANGE","RANK","READ","READS","REAL","REASSIGN","RECHECK","RECOVERY","RECURSIVE","REF","REFERENCES","REFERENCING","REFRESH","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","REINDEX","RELATIVE","RELEASE","RENAME","REPEATABLE","REPLACE","REPLICA","REQUIRING","RESET","RESPECT","RESTART","RESTORE","RESTRICT","RESULT","RETURN","RETURNED_CARDINALITY","RETURNED_LENGTH","RETURNED_OCTET_LENGTH","RETURNED_SQLSTATE","RETURNING","RETURNS","REVOKE","RIGHT","ROLE","ROLLBACK","ROLLUP","ROUTINE","ROUTINE_CATALOG","ROUTINE_NAME","ROUTINE_SCHEMA","ROW","ROWS","ROW_COUNT","ROW_NUMBER","RULE","SAVEPOINT","SCALE","SCHEMA","SCHEMA_NAME","SCOPE","SCOPE_CATALOG","SCOPE_NAME","SCOPE_SCHEMA","SCROLL","SEARCH","SECOND","SECTION","SECURITY","SELECT","SELECTIVE","SELF","SENSITIVE","SEQUENCE","SEQUENCES","SERIALIZABLE","SERVER","SERVER_NAME","SESSION","SESSION_USER","SET","SETOF","SETS","SHARE","SHOW","SIMILAR","SIMPLE","SIZE","SKIP","SMALLINT","SNAPSHOT","SOME","SOURCE","SPACE","SPECIFIC","SPECIFICTYPE","SPECIFIC_NAME","SQL","SQLCODE","SQLERROR","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQRT","STABLE","STANDALONE","START","STATE","STATEMENT","STATIC","STATISTICS","STDDEV_POP","STDDEV_SAMP","STDIN","STDOUT","STORAGE","STRICT","STRIP","STRUCTURE","STYLE","SUBCLASS_ORIGIN","SUBMULTISET","SUBSTRING","SUBSTRING_REGEX","SUCCEEDS","SUM","SYMMETRIC","SYSID","SYSTEM","SYSTEM_TIME","SYSTEM_USER","T","TABLE","TABLES","TABLESAMPLE","TABLESPACE","TABLE_NAME","TEMP","TEMPLATE","TEMPORARY","TEXT","THEN","TIES","TIME","TIMESTAMP","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TOKEN","TOP_LEVEL_COUNT","TRAILING","TRANSACTION","TRANSACTIONS_COMMITTED","TRANSACTIONS_ROLLED_BACK","TRANSACTION_ACTIVE","TRANSFORM","TRANSFORMS","TRANSLATE","TRANSLATE_REGEX","TRANSLATION","TREAT","TRIGGER","TRIGGER_CATALOG","TRIGGER_NAME","TRIGGER_SCHEMA","TRIM","TRIM_ARRAY","TRUE","TRUNCATE","TRUSTED","TYPE","TYPES","UESCAPE","UNBOUNDED","UNCOMMITTED","UNDER","UNENCRYPTED","UNION","UNIQUE","UNKNOWN","UNLINK","UNLISTEN","UNLOGGED","UNNAMED","UNNEST","UNTIL","UNTYPED","UPDATE","UPPER","URI","USAGE","USER","USER_DEFINED_TYPE_CATALOG","USER_DEFINED_TYPE_CODE","USER_DEFINED_TYPE_NAME","USER_DEFINED_TYPE_SCHEMA","USING","VACUUM","VALID","VALIDATE","VALIDATOR","VALUE","VALUES","VALUE_OF","VARBINARY","VARCHAR","VARIADIC","VARYING","VAR_POP","VAR_SAMP","VERBOSE","VERSION","VERSIONING","VIEW","VIEWS","VOLATILE","WHEN","WHENEVER","WHERE","WHITESPACE","WIDTH_BUCKET","WINDOW","WITH","WITHIN","WITHOUT","WORK","WRAPPER","WRITE","XML","XMLAGG","XMLATTRIBUTES","XMLBINARY","XMLCAST","XMLCOMMENT","XMLCONCAT","XMLDECLARATION","XMLDOCUMENT","XMLELEMENT","XMLEXISTS","XMLFOREST","XMLITERATE","XMLNAMESPACES","XMLPARSE","XMLPI","XMLQUERY","XMLROOT","XMLSCHEMA","XMLSERIALIZE","XMLTABLE","XMLTEXT","XMLVALIDATE","YEAR","YES","ZONE"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["abbrev","abs","acos","acosd","age","any","area","array_agg","array_append","array_cat","array_dims","array_fill","array_length","array_lower","array_ndims","array_position","array_positions","array_prepend","array_remove","array_replace","array_to_json","array_to_string","array_to_tsvector","array_upper","ascii","asin","asind","atan","atan2","atan2d","atand","avg","bit","bit_and","bit_length","bit_or","bool_and","bool_or","bound_box","box","brin_summarize_new_values","broadcast","btrim","cardinality","cbrt","ceil","ceiling","center","char_length","character_length","chr","circle","clock_timestamp","coalesce","col_description","concat","concat_ws","convert","convert_from","convert_to","corr","cos","cosd","cot","cotd","count","covar_pop","covar_samp","cume_dist","current_catalog","current_database","current_date","current_query","current_role","current_schema","current_schemas","current_setting","current_time","current_timestamp","current_user","currval","cursor_to_xml","date_part","date_trunc","decode","degrees","dense_rank","diameter","div","encode","enum_first","enum_last","enum_range","every","exp","extract","family","first_value","floor","format","format_type","generate_series","generate_subscripts","get_bit","get_byte","get_current_ts_config","gin_clean_pending_list","greatest","grouping","has_any_column_privilege","has_column_privilege","has_database_privilege","has_foreign_data_wrapper_privilege","has_function_privilege","has_language_privilege","has_schema_privilege","has_sequence_privilege","has_server_privilege","has_table_privilege","has_tablespace_privilege","has_type_privilege","height","host","hostmask","inet_client_addr","inet_client_port","inet_merge","inet_same_family","inet_server_addr","inet_server_port","initcap","isclosed","isempty","isfinite","isopen","json_agg","json_object","json_object_agg","json_populate_record","json_populate_recordset","json_to_record","json_to_recordset","jsonb_agg","jsonb_object_agg","justify_days","justify_hours","justify_interval","lag","last_value","lastval","lead","least","left","length","line","ln","localtime","localtimestamp","log","lower","lower_inc","lower_inf","lpad","lseg","ltrim","make_date","make_interval","make_time","make_timestamp","make_timestamptz","masklen","max","md5","min","mod","mode","netmask","network","nextval","now","npoints","nth_value","ntile","nullif","num_nonnulls","num_nulls","numnode","obj_description","octet_length","overlay","parse_ident","path","pclose","percent_rank","percentile_cont","percentile_disc","pg_advisory_lock","pg_advisory_lock_shared","pg_advisory_unlock","pg_advisory_unlock_all","pg_advisory_unlock_shared","pg_advisory_xact_lock","pg_advisory_xact_lock_shared","pg_backend_pid","pg_backup_start_time","pg_blocking_pids","pg_cancel_backend","pg_client_encoding","pg_collation_is_visible","pg_column_size","pg_conf_load_time","pg_control_checkpoint","pg_control_init","pg_control_recovery","pg_control_system","pg_conversion_is_visible","pg_create_logical_replication_slot","pg_create_physical_replication_slot","pg_create_restore_point","pg_current_xlog_flush_location","pg_current_xlog_insert_location","pg_current_xlog_location","pg_database_size","pg_describe_object","pg_drop_replication_slot","pg_export_snapshot","pg_filenode_relation","pg_function_is_visible","pg_get_constraintdef","pg_get_expr","pg_get_function_arguments","pg_get_function_identity_arguments","pg_get_function_result","pg_get_functiondef","pg_get_indexdef","pg_get_keywords","pg_get_object_address","pg_get_owned_sequence","pg_get_ruledef","pg_get_serial_sequence","pg_get_triggerdef","pg_get_userbyid","pg_get_viewdef","pg_has_role","pg_identify_object","pg_identify_object_as_address","pg_index_column_has_property","pg_index_has_property","pg_indexam_has_property","pg_indexes_size","pg_is_in_backup","pg_is_in_recovery","pg_is_other_temp_schema","pg_is_xlog_replay_paused","pg_last_committed_xact","pg_last_xact_replay_timestamp","pg_last_xlog_receive_location","pg_last_xlog_replay_location","pg_listening_channels","pg_logical_emit_message","pg_logical_slot_get_binary_changes","pg_logical_slot_get_changes","pg_logical_slot_peek_binary_changes","pg_logical_slot_peek_changes","pg_ls_dir","pg_my_temp_schema","pg_notification_queue_usage","pg_opclass_is_visible","pg_operator_is_visible","pg_opfamily_is_visible","pg_options_to_table","pg_postmaster_start_time","pg_read_binary_file","pg_read_file","pg_relation_filenode","pg_relation_filepath","pg_relation_size","pg_reload_conf","pg_replication_origin_create","pg_replication_origin_drop","pg_replication_origin_oid","pg_replication_origin_progress","pg_replication_origin_session_is_setup","pg_replication_origin_session_progress","pg_replication_origin_session_reset","pg_replication_origin_session_setup","pg_replication_origin_xact_reset","pg_replication_origin_xact_setup","pg_rotate_logfile","pg_size_bytes","pg_size_pretty","pg_sleep","pg_sleep_for","pg_sleep_until","pg_start_backup","pg_stat_file","pg_stop_backup","pg_switch_xlog","pg_table_is_visible","pg_table_size","pg_tablespace_databases","pg_tablespace_location","pg_tablespace_size","pg_terminate_backend","pg_total_relation_size","pg_trigger_depth","pg_try_advisory_lock","pg_try_advisory_lock_shared","pg_try_advisory_xact_lock","pg_try_advisory_xact_lock_shared","pg_ts_config_is_visible","pg_ts_dict_is_visible","pg_ts_parser_is_visible","pg_ts_template_is_visible","pg_type_is_visible","pg_typeof","pg_xact_commit_timestamp","pg_xlog_location_diff","pg_xlog_replay_pause","pg_xlog_replay_resume","pg_xlogfile_name","pg_xlogfile_name_offset","phraseto_tsquery","pi","plainto_tsquery","point","polygon","popen","position","power","pqserverversion","query_to_xml","querytree","quote_ident","quote_literal","quote_nullable","radians","radius","random","range_merge","rank","regexp_matches","regexp_replace","regexp_split_to_array","regexp_split_to_table","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","repeat","replace","reverse","right","round","row_number","row_security_active","row_to_json","rpad","rtrim","scale","session_user","set_bit","set_byte","set_config","set_masklen","setseed","setval","setweight","shobj_description","sign","sin","sind","split_part","sprintf","sqrt","statement_timestamp","stddev","stddev_pop","stddev_samp","string_agg","string_to_array","strip","strpos","substr","substring","sum","table_to_xml","table_to_xml_and_xmlschema","tan","tand","text","timeofday","timezone","to_ascii","to_char","to_date","to_hex","to_json","to_number","to_regclass","to_regnamespace","to_regoper","to_regoperator","to_regproc","to_regprocedure","to_regrole","to_regtype","to_timestamp","to_tsquery","to_tsvector","transaction_timestamp","translate","trim","trunc","ts_debug","ts_delete","ts_filter","ts_headline","ts_lexize","ts_parse","ts_rank","ts_rank_cd","ts_rewrite","ts_stat","ts_token_type","tsquery_phrase","tsvector_to_array","tsvector_update_trigger","tsvector_update_trigger_column","txid_current","txid_current_snapshot","txid_snapshot_xip","txid_snapshot_xmax","txid_snapshot_xmin","txid_visible_in_snapshot","unnest","upper","upper_inc","upper_inf","user","var_pop","var_samp","variance","version","width","width_bucket","xml_is_well_formed","xml_is_well_formed_content","xml_is_well_formed_document","xmlagg","xmlcomment","xmlconcat","xmlelement","xmlexists","xmlforest","xmlparse","xmlpi","xmlroot","xmlserialize","xpath","xpath_exists"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}}}}]); -//# sourceMappingURL=8520.616efa9f.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8546.79cce20d.chunk.js b/ydb/core/viewer/monitoring/static/js/8546.79cce20d.chunk.js deleted file mode 100644 index 37e2fdd3d651..000000000000 --- a/ydb/core/viewer/monitoring/static/js/8546.79cce20d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8546],{38546:function(e,t,n){n.r(t),n.d(t,{TopPanel:function(){return O}});var l=n(29439),a=n(4519),i=n(84480),o=n(20970),r=n(133),c=n(67119),s=(0,c.Ge)("card"),d=a.forwardRef((function(e,t){var n=e.type,l=void 0===n?"container":n,i=e.theme,o=e.view,c=e.size,d=void 0===c?"m":c,u=e.children,v=e.className,m=e.onClick,f=e.disabled,p=e.selected,w=e.style,g=e.qa,h="selection"===l,E="container"===l,y=("action"===l||h)&&Boolean(m)&&!(f||p),b=E?"normal":void 0,Z=E||h?"outlined":void 0,x=y?m:void 0,C=(0,r.b)(m).onKeyDown;return a.createElement("div",{style:w,ref:t,role:y?"button":void 0,className:s({theme:i||b,view:o||Z,type:l,selected:p,size:d,disabled:f,clickable:y},v),onClick:x,onKeyDown:y?C:void 0,tabIndex:y?0:void 0,"data-qa":g},u)})),u=n(88216),v=n(12490),m=n(4452),f=(0,c.Ge)("s"),p=function(e,t){var n=[];for(var l in e)if(Object.prototype.hasOwnProperty.call(e,l)){var a=e[l];"undefined"!==typeof a&&n.push(f("".concat(l,"_").concat((0,m.cA)(a))))}return t&&n.push(t),n.join(" ")},w=n(11598),g=(0,c.Ge)("alert"),h=function(e){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14ZM6.53 5.47a.75.75 0 0 0-1.06 1.06L6.94 8 5.47 9.47a.75.75 0 1 0 1.06 1.06L8 9.06l1.47 1.47a.75.75 0 1 0 1.06-1.06L9.06 8l1.47-1.47a.75.75 0 1 0-1.06-1.06L8 6.94 6.53 5.47Z",clipRule:"evenodd"}))},E=function(e){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M13.5 8a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0ZM15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM6.53 5.47a.75.75 0 0 0-1.06 1.06L6.94 8 5.47 9.47a.75.75 0 1 0 1.06 1.06L8 9.06l1.47 1.47a.75.75 0 1 0 1.06-1.06L9.06 8l1.47-1.47a.75.75 0 1 0-1.06-1.06L8 6.94 6.53 5.47Z",clipRule:"evenodd"}))},y=function(e){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14Zm1-9.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM8 7.75a.75.75 0 0 1 .75.75V11a.75.75 0 0 1-1.5 0V8.5A.75.75 0 0 1 8 7.75Z",clipRule:"evenodd"}))},b=n(72697),Z=function(e){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14Zm3.1-8.55a.75.75 0 1 0-1.2-.9L7.419 8.858 6.03 7.47a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.13-.08l3-4Z",clipRule:"evenodd"}))},x=n(96434),C=function(e){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M5.836 2.244c.962-1.665 3.366-1.665 4.328 0l4.917 8.505c.964 1.666-.239 3.751-2.164 3.751H3.083c-1.925 0-3.128-2.085-2.164-3.751l4.917-8.505ZM8 5a.75.75 0 0 1 .75.75v2a.75.75 0 1 1-1.5 0v-2A.75.75 0 0 1 8 5Zm1 5.75a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z",clipRule:"evenodd"}))},k=n(82024),A=function(e){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",d:"m14.61 6.914-7.632 8.08a1.614 1.614 0 0 1-2.69-1.66L5.5 10H2.677A1.677 1.677 0 0 1 1.12 7.7l2.323-5.807A2.216 2.216 0 0 1 5.5.5h4c.968 0 1.637.967 1.298 1.873L10 4.5h3.569a1.431 1.431 0 0 1 1.04 2.414Z"}))},L=n(15557),N={danger:{filled:h,outlined:E},info:{filled:y,outlined:b.Z},positive:{filled:Z,outlined:x.Z},success:{filled:Z,outlined:x.Z},warning:{filled:C,outlined:k.Z},utility:{filled:A,outlined:L.Z},normal:null},z=n(92673),R=function e(t){var n=t.theme,l=void 0===n?"normal":n,r=t.view,c=void 0===r?"filled":r,s=t.layout,m=void 0===s?"vertical":s,f=t.message,h=t.className,E=t.corners,y=t.style,b=t.onClose,Z=t.align,x=t.qa,C=t.icon||a.createElement(e.Icon,{theme:l,view:c}),k="string"===typeof t.title?a.createElement(e.Title,{text:t.title}):t.title,A=Array.isArray(t.actions)?a.createElement(e.Actions,{items:t.actions,parentLayout:m}):t.actions;return a.createElement(d,{style:y,className:g({corners:E},p({py:4,px:5},h)),theme:l,view:c,qa:x},a.createElement(w.k,{gap:"3",alignItems:Z},C,a.createElement(w.k,{direction:"vertical"===m?"column":"row",gap:"5",grow:!0},a.createElement(w.k,{gap:"2",grow:!0,className:g("text-content")},a.createElement(w.k,{direction:"column",gap:"1",grow:!0,justifyContent:Z},k,f)),A),b&&a.createElement(o.z,{view:"flat",onClick:b},a.createElement(u.J,{data:i.Z,size:18,className:(0,v.V)({color:"secondary"})}))))};R.Icon=function(e){var t,n=e.className,l=e.theme,i=e.view,o=void 0===i?"filled":i,r=e.size,c=void 0===r?18:r,s=N[l];return s?("success"===l?t="positive":"normal"!==l&&(t=l),a.createElement("div",{className:g("icon",(0,v.V)({color:t},n))},a.createElement(u.J,{data:s[o],size:c}))):null},R.Title=function(e){var t=e.text,n=e.className;return a.createElement(z.x,{variant:"subheader-2",className:g("title",n)},t)},R.Actions=function(e){var t=e.items,n=e.children,l=e.parentLayout,i=void 0===l?"vertical":l,r=e.className;return a.createElement(w.k,{className:g("actions",{minContent:"horizontal"===i},r),direction:"row",gap:"3",wrap:!0,alignItems:"horizontal"===i?"center":"flex-start"},(null===t||void 0===t?void 0:t.map((function(e,t){var n=e.handler,l=e.text;return a.createElement(o.z,{key:t,onClick:n},l)})))||n)};var M=n(44591),j=n(95234),B=(n(50348),function(e){var t=e.topAlert,n=a.useRef(null),i=function(e){var t=a.useState(0),n=(0,l.Z)(t,2),i=n[0],o=n[1];return a.useEffect((function(){if(e.current){var t=e.current;o(t.clientHeight)}}),[e]),i}(n),o=a.useCallback((function(e){var t=document.getElementsByClassName("g-root").item(0);null===t||void 0===t||t.style.setProperty("--gn-aside-top-panel-height",e+"px")}),[]),r=a.useCallback((function(){var e;n.current&&o((null===(e=n.current)||void 0===e?void 0:e.clientHeight)||0)}),[n,o]);return a.useLayoutEffect((function(){var e=(0,j.d)(r,200,{leading:!0});return t&&(window.addEventListener("resize",e),e()),function(){window.removeEventListener("resize",e),o(0)}}),[t,i,n,r,o]),{topRef:n,updateTopSize:r}}),O=function(e){var t=e.topAlert,n=B({topAlert:t}),i=n.topRef,o=n.updateTopSize,r=a.useState(!0),c=(0,l.Z)(r,2),s=c[0],d=c[1],u=a.useCallback((function(){var e;d(!1),null===(e=null===t||void 0===t?void 0:t.onCloseTopAlert)||void 0===e||e.call(t)}),[t]);return a.useEffect((function(){s||o()}),[s,o]),t&&t.message?a.createElement("div",{ref:i,className:(0,M.b)("pane-top",{opened:s})},s&&a.createElement(a.Fragment,null,a.createElement(R,{className:(0,M.b)("pane-top-alert",{centered:t.centered,dense:t.dense}),corners:"square",layout:"horizontal",theme:t.theme||"warning",icon:t.icon,title:t.title,message:t.message,actions:t.actions,onClose:t.closable?u:void 0}),a.createElement("div",{className:(0,M.b)("pane-top-divider")}))):null}}}]); -//# sourceMappingURL=8546.79cce20d.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8558.47b3557b.chunk.js b/ydb/core/viewer/monitoring/static/js/8558.47b3557b.chunk.js deleted file mode 100644 index c3f8996846db..000000000000 --- a/ydb/core/viewer/monitoring/static/js/8558.47b3557b.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8558],{78558:function(e,t,o){o.r(t),o.d(t,{conf:function(){return r},language:function(){return n}});var r={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:"'"}],folding:{markers:{start:new RegExp("^\\s*\\{\\$REGION(\\s\\'.*\\')?\\}"),end:new RegExp("^\\s*\\{\\$ENDREGION\\}")}}},n={defaultToken:"",tokenPostfix:".pascal",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["absolute","abstract","all","and_then","array","as","asm","attribute","begin","bindable","case","class","const","contains","default","div","else","end","except","exports","external","far","file","finalization","finally","forward","generic","goto","if","implements","import","in","index","inherited","initialization","interrupt","is","label","library","mod","module","name","near","not","object","of","on","only","operator","or_else","otherwise","override","package","packed","pow","private","program","protected","public","published","interface","implementation","qualified","read","record","resident","requires","resourcestring","restricted","segment","set","shl","shr","specialize","stored","then","threadvar","to","try","type","unit","uses","var","view","virtual","dynamic","overload","reintroduce","with","write","xor","true","false","procedure","function","constructor","destructor","property","break","continue","exit","abort","while","do","for","raise","repeat","until"],typeKeywords:["boolean","double","byte","integer","shortint","char","longint","float","string"],operators:["=",">","<","<=",">=","<>",":",":=","and","or","+","-","*","/","@","&","^","%"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\*\}]+/,"comment"],[/\}/,"comment","@pop"],[/[\{]/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\{/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); -//# sourceMappingURL=8558.47b3557b.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8590.b8446f1d.chunk.js b/ydb/core/viewer/monitoring/static/js/8590.b8446f1d.chunk.js deleted file mode 100644 index cb70442b303c..000000000000 --- a/ydb/core/viewer/monitoring/static/js/8590.b8446f1d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8590],{18590:function(E,T,S){S.r(T),S.d(T,{conf:function(){return R},language:function(){return A}});var R={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:"'"}]},A={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ACCESSIBLE","ACCOUNT","ACTION","ADD","AFTER","AGAINST","AGGREGATE","ALGORITHM","ALL","ALTER","ALWAYS","ANALYSE","ANALYZE","AND","ANY","AS","ASC","ASCII","ASENSITIVE","AT","AUTOEXTEND_SIZE","AUTO_INCREMENT","AVG","AVG_ROW_LENGTH","BACKUP","BEFORE","BEGIN","BETWEEN","BIGINT","BINARY","BINLOG","BIT","BLOB","BLOCK","BOOL","BOOLEAN","BOTH","BTREE","BY","BYTE","CACHE","CALL","CASCADE","CASCADED","CASE","CATALOG_NAME","CHAIN","CHANGE","CHANGED","CHANNEL","CHAR","CHARACTER","CHARSET","CHECK","CHECKSUM","CIPHER","CLASS_ORIGIN","CLIENT","CLOSE","COALESCE","CODE","COLLATE","COLLATION","COLUMN","COLUMNS","COLUMN_FORMAT","COLUMN_NAME","COMMENT","COMMIT","COMMITTED","COMPACT","COMPLETION","COMPRESSED","COMPRESSION","CONCURRENT","CONDITION","CONNECTION","CONSISTENT","CONSTRAINT","CONSTRAINT_CATALOG","CONSTRAINT_NAME","CONSTRAINT_SCHEMA","CONTAINS","CONTEXT","CONTINUE","CONVERT","CPU","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","CURSOR_NAME","DATA","DATABASE","DATABASES","DATAFILE","DATE","DATETIME","DAY","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DEALLOCATE","DEC","DECIMAL","DECLARE","DEFAULT","DEFAULT_AUTH","DEFINER","DELAYED","DELAY_KEY_WRITE","DELETE","DESC","DESCRIBE","DES_KEY_FILE","DETERMINISTIC","DIAGNOSTICS","DIRECTORY","DISABLE","DISCARD","DISK","DISTINCT","DISTINCTROW","DIV","DO","DOUBLE","DROP","DUAL","DUMPFILE","DUPLICATE","DYNAMIC","EACH","ELSE","ELSEIF","ENABLE","ENCLOSED","ENCRYPTION","END","ENDS","ENGINE","ENGINES","ENUM","ERROR","ERRORS","ESCAPE","ESCAPED","EVENT","EVENTS","EVERY","EXCHANGE","EXECUTE","EXISTS","EXIT","EXPANSION","EXPIRE","EXPLAIN","EXPORT","EXTENDED","EXTENT_SIZE","FALSE","FAST","FAULTS","FETCH","FIELDS","FILE","FILE_BLOCK_SIZE","FILTER","FIRST","FIXED","FLOAT","FLOAT4","FLOAT8","FLUSH","FOLLOWS","FOR","FORCE","FOREIGN","FORMAT","FOUND","FROM","FULL","FULLTEXT","FUNCTION","GENERAL","GENERATED","GEOMETRY","GEOMETRYCOLLECTION","GET","GET_FORMAT","GLOBAL","GRANT","GRANTS","GROUP","GROUP_REPLICATION","HANDLER","HASH","HAVING","HELP","HIGH_PRIORITY","HOST","HOSTS","HOUR","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IDENTIFIED","IF","IGNORE","IGNORE_SERVER_IDS","IMPORT","INDEX","INDEXES","INFILE","INITIAL_SIZE","INNER","INOUT","INSENSITIVE","INSERT","INSERT_METHOD","INSTALL","INSTANCE","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","INTERVAL","INTO","INVOKER","IO","IO_AFTER_GTIDS","IO_BEFORE_GTIDS","IO_THREAD","IPC","ISOLATION","ISSUER","ITERATE","JOIN","JSON","KEY","KEYS","KEY_BLOCK_SIZE","KILL","LANGUAGE","LAST","LEADING","LEAVE","LEAVES","LEFT","LESS","LEVEL","LIKE","LIMIT","LINEAR","LINES","LINESTRING","LIST","LOAD","LOCAL","LOCALTIME","LOCALTIMESTAMP","LOCK","LOCKS","LOGFILE","LOGS","LONG","LONGBLOB","LONGTEXT","LOOP","LOW_PRIORITY","MASTER","MASTER_AUTO_POSITION","MASTER_BIND","MASTER_CONNECT_RETRY","MASTER_DELAY","MASTER_HEARTBEAT_PERIOD","MASTER_HOST","MASTER_LOG_FILE","MASTER_LOG_POS","MASTER_PASSWORD","MASTER_PORT","MASTER_RETRY_COUNT","MASTER_SERVER_ID","MASTER_SSL","MASTER_SSL_CA","MASTER_SSL_CAPATH","MASTER_SSL_CERT","MASTER_SSL_CIPHER","MASTER_SSL_CRL","MASTER_SSL_CRLPATH","MASTER_SSL_KEY","MASTER_SSL_VERIFY_SERVER_CERT","MASTER_TLS_VERSION","MASTER_USER","MATCH","MAXVALUE","MAX_CONNECTIONS_PER_HOUR","MAX_QUERIES_PER_HOUR","MAX_ROWS","MAX_SIZE","MAX_STATEMENT_TIME","MAX_UPDATES_PER_HOUR","MAX_USER_CONNECTIONS","MEDIUM","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MEMORY","MERGE","MESSAGE_TEXT","MICROSECOND","MIDDLEINT","MIGRATE","MINUTE","MINUTE_MICROSECOND","MINUTE_SECOND","MIN_ROWS","MOD","MODE","MODIFIES","MODIFY","MONTH","MULTILINESTRING","MULTIPOINT","MULTIPOLYGON","MUTEX","MYSQL_ERRNO","NAME","NAMES","NATIONAL","NATURAL","NCHAR","NDB","NDBCLUSTER","NEVER","NEW","NEXT","NO","NODEGROUP","NONBLOCKING","NONE","NO_WAIT","NO_WRITE_TO_BINLOG","NUMBER","NUMERIC","NVARCHAR","OFFSET","OLD_PASSWORD","ON","ONE","ONLY","OPEN","OPTIMIZE","OPTIMIZER_COSTS","OPTION","OPTIONALLY","OPTIONS","OR","ORDER","OUT","OUTER","OUTFILE","OWNER","PACK_KEYS","PAGE","PARSER","PARSE_GCOL_EXPR","PARTIAL","PARTITION","PARTITIONING","PARTITIONS","PASSWORD","PHASE","PLUGIN","PLUGINS","PLUGIN_DIR","POINT","POLYGON","PORT","PRECEDES","PRECISION","PREPARE","PRESERVE","PREV","PRIMARY","PRIVILEGES","PROCEDURE","PROCESSLIST","PROFILE","PROFILES","PROXY","PURGE","QUARTER","QUERY","QUICK","RANGE","READ","READS","READ_ONLY","READ_WRITE","REAL","REBUILD","RECOVER","REDOFILE","REDO_BUFFER_SIZE","REDUNDANT","REFERENCES","REGEXP","RELAY","RELAYLOG","RELAY_LOG_FILE","RELAY_LOG_POS","RELAY_THREAD","RELEASE","RELOAD","REMOVE","RENAME","REORGANIZE","REPAIR","REPEAT","REPEATABLE","REPLACE","REPLICATE_DO_DB","REPLICATE_DO_TABLE","REPLICATE_IGNORE_DB","REPLICATE_IGNORE_TABLE","REPLICATE_REWRITE_DB","REPLICATE_WILD_DO_TABLE","REPLICATE_WILD_IGNORE_TABLE","REPLICATION","REQUIRE","RESET","RESIGNAL","RESTORE","RESTRICT","RESUME","RETURN","RETURNED_SQLSTATE","RETURNS","REVERSE","REVOKE","RIGHT","RLIKE","ROLLBACK","ROLLUP","ROTATE","ROUTINE","ROW","ROWS","ROW_COUNT","ROW_FORMAT","RTREE","SAVEPOINT","SCHEDULE","SCHEMA","SCHEMAS","SCHEMA_NAME","SECOND","SECOND_MICROSECOND","SECURITY","SELECT","SENSITIVE","SEPARATOR","SERIAL","SERIALIZABLE","SERVER","SESSION","SET","SHARE","SHOW","SHUTDOWN","SIGNAL","SIGNED","SIMPLE","SLAVE","SLOW","SMALLINT","SNAPSHOT","SOCKET","SOME","SONAME","SOUNDS","SOURCE","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_AFTER_GTIDS","SQL_AFTER_MTS_GAPS","SQL_BEFORE_GTIDS","SQL_BIG_RESULT","SQL_BUFFER_RESULT","SQL_CACHE","SQL_CALC_FOUND_ROWS","SQL_NO_CACHE","SQL_SMALL_RESULT","SQL_THREAD","SQL_TSI_DAY","SQL_TSI_HOUR","SQL_TSI_MINUTE","SQL_TSI_MONTH","SQL_TSI_QUARTER","SQL_TSI_SECOND","SQL_TSI_WEEK","SQL_TSI_YEAR","SSL","STACKED","START","STARTING","STARTS","STATS_AUTO_RECALC","STATS_PERSISTENT","STATS_SAMPLE_PAGES","STATUS","STOP","STORAGE","STORED","STRAIGHT_JOIN","STRING","SUBCLASS_ORIGIN","SUBJECT","SUBPARTITION","SUBPARTITIONS","SUPER","SUSPEND","SWAPS","SWITCHES","TABLE","TABLES","TABLESPACE","TABLE_CHECKSUM","TABLE_NAME","TEMPORARY","TEMPTABLE","TERMINATED","TEXT","THAN","THEN","TIME","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TINYBLOB","TINYINT","TINYTEXT","TO","TRAILING","TRANSACTION","TRIGGER","TRIGGERS","TRUE","TRUNCATE","TYPE","TYPES","UNCOMMITTED","UNDEFINED","UNDO","UNDOFILE","UNDO_BUFFER_SIZE","UNICODE","UNINSTALL","UNION","UNIQUE","UNKNOWN","UNLOCK","UNSIGNED","UNTIL","UPDATE","UPGRADE","USAGE","USE","USER","USER_RESOURCES","USE_FRM","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALIDATION","VALUE","VALUES","VARBINARY","VARCHAR","VARCHARACTER","VARIABLES","VARYING","VIEW","VIRTUAL","WAIT","WARNINGS","WEEK","WEIGHT_STRING","WHEN","WHERE","WHILE","WITH","WITHOUT","WORK","WRAPPER","WRITE","X509","XA","XID","XML","XOR","YEAR","YEAR_MONTH","ZEROFILL"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","Area","AsBinary","AsWKB","ASCII","ASIN","AsText","AsWKT","ASYMMETRIC_DECRYPT","ASYMMETRIC_DERIVE","ASYMMETRIC_ENCRYPT","ASYMMETRIC_SIGN","ASYMMETRIC_VERIFY","ATAN","ATAN2","ATAN","AVG","BENCHMARK","BIN","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","Buffer","CAST","CEIL","CEILING","Centroid","CHAR","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","Contains","CONV","CONVERT","CONVERT_TZ","ConvexHull","COS","COT","COUNT","CRC32","CREATE_ASYMMETRIC_PRIV_KEY","CREATE_ASYMMETRIC_PUB_KEY","CREATE_DH_PARAMETERS","CREATE_DIGEST","Crosses","CURDATE","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT","DEGREES","DES_DECRYPT","DES_ENCRYPT","Dimension","Disjoint","Distance","ELT","ENCODE","ENCRYPT","EndPoint","Envelope","Equals","EXP","EXPORT_SET","ExteriorRing","EXTRACT","ExtractValue","FIELD","FIND_IN_SET","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GeomCollFromText","GeometryCollectionFromText","GeomCollFromWKB","GeometryCollectionFromWKB","GeometryCollection","GeometryN","GeometryType","GeomFromText","GeometryFromText","GeomFromWKB","GeometryFromWKB","GET_FORMAT","GET_LOCK","GLength","GREATEST","GROUP_CONCAT","GTID_SUBSET","GTID_SUBTRACT","HEX","HOUR","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INSERT","INSTR","InteriorRingN","Intersects","INTERVAL","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS_USED_LOCK","IsClosed","IsEmpty","ISNULL","IsSimple","JSON_APPEND","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MERGE","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SEARCH","JSON_SET","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","LAST_INSERT_ID","LCASE","LEAST","LEFT","LENGTH","LineFromText","LineStringFromText","LineFromWKB","LineStringFromWKB","LineString","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASTER_POS_WAIT","MAX","MBRContains","MBRCoveredBy","MBRCovers","MBRDisjoint","MBREqual","MBREquals","MBRIntersects","MBROverlaps","MBRTouches","MBRWithin","MD5","MICROSECOND","MID","MIN","MINUTE","MLineFromText","MultiLineStringFromText","MLineFromWKB","MultiLineStringFromWKB","MOD","MONTH","MONTHNAME","MPointFromText","MultiPointFromText","MPointFromWKB","MultiPointFromWKB","MPolyFromText","MultiPolygonFromText","MPolyFromWKB","MultiPolygonFromWKB","MultiLineString","MultiPoint","MultiPolygon","NAME_CONST","NOT IN","NOW","NULLIF","NumGeometries","NumInteriorRings","NumPoints","OCT","OCTET_LENGTH","OLD_PASSWORD","ORD","Overlaps","PASSWORD","PERIOD_ADD","PERIOD_DIFF","PI","Point","PointFromText","PointFromWKB","PointN","PolyFromText","PolygonFromText","PolyFromWKB","PolygonFromWKB","Polygon","POSITION","POW","POWER","PROCEDURE ANALYSE","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","ROUND","ROW_COUNT","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SHA1","SHA","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SPACE","SQRT","SRID","ST_Area","ST_AsBinary","ST_AsWKB","ST_AsGeoJSON","ST_AsText","ST_AsWKT","ST_Buffer","ST_Buffer_Strategy","ST_Centroid","ST_Contains","ST_ConvexHull","ST_Crosses","ST_Difference","ST_Dimension","ST_Disjoint","ST_Distance","ST_Distance_Sphere","ST_EndPoint","ST_Envelope","ST_Equals","ST_ExteriorRing","ST_GeoHash","ST_GeomCollFromText","ST_GeometryCollectionFromText","ST_GeomCollFromTxt","ST_GeomCollFromWKB","ST_GeometryCollectionFromWKB","ST_GeometryN","ST_GeometryType","ST_GeomFromGeoJSON","ST_GeomFromText","ST_GeometryFromText","ST_GeomFromWKB","ST_GeometryFromWKB","ST_InteriorRingN","ST_Intersection","ST_Intersects","ST_IsClosed","ST_IsEmpty","ST_IsSimple","ST_IsValid","ST_LatFromGeoHash","ST_Length","ST_LineFromText","ST_LineStringFromText","ST_LineFromWKB","ST_LineStringFromWKB","ST_LongFromGeoHash","ST_MakeEnvelope","ST_MLineFromText","ST_MultiLineStringFromText","ST_MLineFromWKB","ST_MultiLineStringFromWKB","ST_MPointFromText","ST_MultiPointFromText","ST_MPointFromWKB","ST_MultiPointFromWKB","ST_MPolyFromText","ST_MultiPolygonFromText","ST_MPolyFromWKB","ST_MultiPolygonFromWKB","ST_NumGeometries","ST_NumInteriorRing","ST_NumInteriorRings","ST_NumPoints","ST_Overlaps","ST_PointFromGeoHash","ST_PointFromText","ST_PointFromWKB","ST_PointN","ST_PolyFromText","ST_PolygonFromText","ST_PolyFromWKB","ST_PolygonFromWKB","ST_Simplify","ST_SRID","ST_StartPoint","ST_SymDifference","ST_Touches","ST_Union","ST_Validate","ST_Within","ST_X","ST_Y","StartPoint","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","Touches","TRIM","TRUNCATE","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UpdateXML","UPPER","USER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","VALIDATE_PASSWORD_STRENGTH","VALUES","VAR_POP","VAR_SAMP","VARIANCE","VERSION","WAIT_FOR_EXECUTED_GTID_SET","WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","Within","X","Y","YEAR","YEARWEEK"],builtinVariables:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/#+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}],[/"/,{token:"string.double",next:"@stringDouble"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],stringDouble:[[/[^"]+/,"string.double"],[/""/,"string.double"],[/"/,{token:"string.double",next:"@pop"}]],complexIdentifiers:[[/`/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^`]+/,"identifier"],[/``/,"identifier"],[/`/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}}}}]); -//# sourceMappingURL=8590.b8446f1d.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8591.93172fe9.chunk.js b/ydb/core/viewer/monitoring/static/js/8591.93172fe9.chunk.js new file mode 100644 index 000000000000..d720cec9476f --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8591.93172fe9.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8591],{98591:function(t,_,e){t.exports=function(t){"use strict";function _(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var e=_(t),r={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(t){return t},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 e.default.locale(r,null,!0),r}(e(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/86.ad271bdc.chunk.js b/ydb/core/viewer/monitoring/static/js/86.ad271bdc.chunk.js new file mode 100644 index 000000000000..93797a600bf5 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/86.ad271bdc.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 86.ad271bdc.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[86],{10086:(e,n,s)=>{s.r(n),s.d(n,{conf:()=>i,language:()=>t});var i={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*\x3c!--\\s*#?region\\b.*--\x3e"),end:new RegExp("^\\s*\x3c!--\\s*#?endregion\\b.*--\x3e")}}},t={defaultToken:"",tokenPostfix:".rst",control:/[\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],alphanumerics:/[A-Za-z0-9]/,simpleRefNameWithoutBq:/(?:@alphanumerics[-_+:.]*@alphanumerics)+|(?:@alphanumerics+)/,simpleRefName:/(?:`@phrase`|@simpleRefNameWithoutBq)/,phrase:/@simpleRefNameWithoutBq(?:\s@simpleRefNameWithoutBq)*/,citationName:/[A-Za-z][A-Za-z0-9-_.]*/,blockLiteralStart:/(?:[!"#$%&'()*+,-./:;<=>?@\[\]^_`{|}~]|[\s])/,precedingChars:/(?:[ -:/'"<([{])/,followingChars:/(?:[ -.,:;!?/'")\]}>]|$)/,punctuation:/(=|-|~|`|#|"|\^|\+|\*|:|\.|'|_|\+)/,tokenizer:{root:[[/^(@punctuation{3,}$){1,1}?/,"keyword"],[/^\s*([\*\-+\u2023\u2022]|[a-zA-Z0-9]+\.|\([a-zA-Z0-9]+\)|[a-zA-Z0-9]+\))\s/,"keyword"],[/([ ]::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],[/(::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],{include:"@tables"},{include:"@explicitMarkupBlocks"},{include:"@inlineMarkup"}],explicitMarkupBlocks:[{include:"@citations"},{include:"@footnotes"},[/^(\.\.\s)(@simpleRefName)(::\s)(.*)$/,[{token:"",next:"subsequentLines"},"keyword","",""]],[/^(\.\.)(\s+)(_)(@simpleRefName)(:)(\s+)(.*)/,[{token:"",next:"hyperlinks"},"","","string.link","","","string.link"]],[/^((?:(?:\.\.)(?:\s+))?)(__)(:)(\s+)(.*)/,[{token:"",next:"subsequentLines"},"","","","string.link"]],[/^(__\s+)(.+)/,["","string.link"]],[/^(\.\.)( \|)([^| ]+[^|]*[^| ]*)(\| )(@simpleRefName)(:: .*)/,[{token:"",next:"subsequentLines"},"","string.link","","keyword",""],"@rawBlocks"],[/(\|)([^| ]+[^|]*[^| ]*)(\|_{0,2})/,["","string.link",""]],[/^(\.\.)([ ].*)$/,[{token:"",next:"@comments"},"comment"]]],inlineMarkup:[{include:"@citationsReference"},{include:"@footnotesReference"},[/(@simpleRefName)(_{1,2})/,["string.link",""]],[/(`)([^<`]+\s+)(<)(.*)(>)(`)(_)/,["","string.link","","string.link","","",""]],[/\*\*([^\\*]|\*(?!\*))+\*\*/,"strong"],[/\*[^*]+\*/,"emphasis"],[/(``)((?:[^`]|\`(?!`))+)(``)/,["","keyword",""]],[/(__\s+)(.+)/,["","keyword"]],[/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/,["","keyword","","",""]],[/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/,["","","","keyword",""]],[/(`)([^`]+)(`)/,""],[/(_`)(@phrase)(`)/,["","string.link",""]]],citations:[[/^(\.\.\s+\[)((?:@citationName))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],citationsReference:[[/(\[)(@citationName)(\]_)/,["","string.link",""]]],footnotes:[[/^(\.\.\s+\[)((?:[0-9]+))(\]\s+.*)/,[{token:"",next:"@subsequentLines"},"string.link",""]],[/^(\.\.\s+\[)((?:#@simpleRefName?))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]],[/^(\.\.\s+\[)((?:\*))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],footnotesReference:[[/(\[)([0-9]+)(\])(_)/,["","string.link","",""]],[/(\[)(#@simpleRefName?)(\])(_)/,["","string.link","",""]],[/(\[)(\*)(\])(_)/,["","string.link","",""]]],blankLineOfLiteralBlocks:[[/^$/,"","@subsequentLinesOfLiteralBlocks"],[/^.*$/,"","@pop"]],subsequentLinesOfLiteralBlocks:[[/(@blockLiteralStart+)(.*)/,["keyword",""]],[/^(?!blockLiteralStart)/,"","@popall"]],subsequentLines:[[/^[\s]+.*/,""],[/^(?!\s)/,"","@pop"]],hyperlinks:[[/^[\s]+.*/,"string.link"],[/^(?!\s)/,"","@pop"]],comments:[[/^[\s]+.*/,"comment"],[/^(?!\s)/,"","@pop"]],tables:[[/\+-[+-]+/,"keyword"],[/\+=[+=]+/,"keyword"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/86.ad271bdc.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/86.ad271bdc.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/86.ad271bdc.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/8607.1e377882.chunk.js b/ydb/core/viewer/monitoring/static/js/8607.1e377882.chunk.js new file mode 100644 index 000000000000..bbfd94bb25ef --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8607.1e377882.chunk.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8607],{68607:(t,e,s)=>{function a(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}function r(t,e,s){a(t,e),e.set(t,s)}s.r(e),s.d(e,{TableOrViewSuggestion:()=>tn,parseClickHouseQuery:()=>$K,parseClickHouseQueryWithoutCursor:()=>zK,parseMySqlQuery:()=>ZK,parseMySqlQueryWithoutCursor:()=>JK,parsePostgreSqlQuery:()=>jK,parsePostgreSqlQueryWithoutCursor:()=>qK,parseYqQuery:()=>aQ,parseYqQueryWithoutCursor:()=>sQ,parseYqlQuery:()=>eQ,parseYqlQueryWithoutCursor:()=>tQ});var i,c,n,h,E,T,o,R,A,S,l,O,I,u,N,L,C,_,P,M,d,U,m,D,p,g,x,k,H,G,F,v,B,y,f,Y,w,b,W,V,X,K,Q,J,Z,q,j,z,$,tt,et,st,at,rt,it,ct,nt,ht,Et,Tt,ot,Rt,At,St,lt,Ot,It,ut,Nt,Lt,Ct,_t,Pt,Mt,dt,Ut,mt,Dt,pt,gt,xt,kt,Ht,Gt,Ft,vt,Bt,yt,ft,Yt,wt,bt,Wt,Vt,Xt,Kt,Qt,Jt,Zt,qt,jt,zt,$t,te,ee,se,ae,re,ie,ce,ne,he,Ee,Te,oe,Re,Ae,Se,le,Oe,Ie,ue,Ne,Le,Ce,_e,Pe,Me,de,Ue,me,De,pe,ge,xe,ke,He,Ge,Fe,ve,Be,ye,fe,Ye,we,be,We,Ve,Xe,Ke,Qe,Je,Ze,qe,je,ze,$e,ts,es,ss,as,rs,is,cs,ns,hs,Es,Ts,os,Rs,As,Ss,ls,Os,Is,us,Ns,Ls,Cs,_s,Ps,Ms,ds,Us,ms,Ds,ps,gs,xs,ks,Hs,Gs,Fs,vs,Bs,ys,fs,Ys,ws,bs,Ws,Vs,Xs,Ks,Qs,Js,Zs,qs,js=s(64572);function zs(t,e,s){if(!e.has(t))throw new TypeError("attempted to "+s+" private field on non-instance");return e.get(t)}function $s(t,e,s){return function(t,e,s){if(e.set)e.set.call(t,s);else{if(!e.writable)throw new TypeError("attempted to set read only private field");e.value=s}}(t,zs(t,e,"set"),s),s}function ta(t,e){return e.get?e.get.call(t):e.value}function ea(t,e){return ta(t,zs(t,e,"get"))}function sa(t,e,s){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return s}function aa(t,e,s){return function(t,e){if(t!==e)throw new TypeError("Private static access of wrong provenance")}(t,e),function(t,e){if(void 0===t)throw new TypeError("attempted to "+e+" private static field before its declaration")}(s,"get"),ta(t,s)}var ra,ia,ca,na,ha=Object.defineProperty,Ea=(t,e)=>ha(t,"name",{value:e,configurable:!0});(ia=ra||(ra={})).EOF=-1,ia.UNKNOWN_SOURCE_NAME="<unknown>",(na=ca||(ca={})).INVALID_TYPE=0,na.EPSILON=-2,na.MIN_USER_TOKEN_TYPE=1,na.EOF=ra.EOF,na.DEFAULT_CHANNEL=0,na.HIDDEN_CHANNEL=1,na.MIN_USER_CHANNEL_VALUE=2;var Ta=Ea((t=>{const e=t;return void 0!==e.tokenSource&&void 0!==e.channel}),"isToken"),oa=(c=new WeakMap,i=class t{constructor(t,e){(0,js.Z)(this,"start",void 0),(0,js.Z)(this,"stop",void 0),r(this,c,{writable:!0,value:void 0}),this.start=t,this.stop=e,$s(this,c,Math.imul(651+t,31)+e)}static of(e,s){return e!==s||e<0||e>t.INTERVAL_POOL_MAX_VALUE?new t(e,s):(aa(t,i,n)[e]||(aa(t,i,n)[e]=new t(e,e)),aa(t,i,n)[e])}equals(t){return this.start===t.start&&this.stop===t.stop}hashCode(){return ea(this,c)}startsBeforeDisjoint(t){return this.start<t.start&&this.stop<t.start}startsBeforeNonDisjoint(t){return this.start<=t.start&&this.stop>=t.start}startsAfter(t){return this.start>t.start}startsAfterDisjoint(t){return this.start>t.stop}startsAfterNonDisjoint(t){return this.start>t.start&&this.start<=t.stop}disjoint(t){return this.startsBeforeDisjoint(t)||this.startsAfterDisjoint(t)}adjacent(t){return this.start===t.stop+1||this.stop===t.start-1}properlyContains(t){return t.start>=this.start&&t.stop<=this.stop}union(e){return t.of(Math.min(this.start,e.start),Math.max(this.stop,e.stop))}intersection(e){return t.of(Math.max(this.start,e.start),Math.min(this.stop,e.stop))}differenceNotProperlyContained(e){let s=null;return e.startsBeforeNonDisjoint(this)?s=t.of(Math.max(this.start,e.stop+1),this.stop):e.startsAfterNonDisjoint(this)&&(s=t.of(this.start,e.start-1)),s}toString(){return this.start===this.stop?this.start.toString():this.start.toString()+".."+this.stop.toString()}get length(){return this.stop<this.start?0:this.stop-this.start+1}},Ea(i,"Interval"),(0,js.Z)(i,"INVALID_INTERVAL",new i(-1,-2)),(0,js.Z)(i,"INTERVAL_POOL_MAX_VALUE",1e3),n={writable:!0,value:[]},i),Ra=(h=class t{constructor(e,s,a){(0,js.Z)(this,"maxTokenType",void 0),(0,js.Z)(this,"literalNames",void 0),(0,js.Z)(this,"symbolicNames",void 0),(0,js.Z)(this,"displayNames",void 0),this.literalNames=null!==e&&void 0!==e?e:t.EMPTY_NAMES,this.symbolicNames=null!==s&&void 0!==s?s:t.EMPTY_NAMES,this.displayNames=null!==a&&void 0!==a?a:t.EMPTY_NAMES,this.maxTokenType=Math.max(this.displayNames.length,Math.max(this.literalNames.length,this.symbolicNames.length))-1}static fromTokenNames(e){if(null==e||0===e.length)return t.EMPTY_VOCABULARY;const s=[...e],a=[...e];for(let t=0;t<e.length;t++){const r=e[t];if(null!=r){if((null===r||void 0===r?void 0:r.length)>0){const e=r.charAt(0);if("'"===e){a[t]=null;continue}if(e.toUpperCase()===e){s[t]=null;continue}}s[t]=null,a[t]=null}}return new t(s,a,e)}getMaxTokenType(){return this.maxTokenType}getLiteralName(t){return t>=0&&t<this.literalNames.length?this.literalNames[t]:null}getSymbolicName(t){return t>=0&&t<this.symbolicNames.length?this.symbolicNames[t]:t===ca.EOF?"EOF":null}getDisplayName(t){if(t>=0&&t<this.displayNames.length){const e=this.displayNames[t];if(null!=e)return e}const e=this.getLiteralName(t);if(null!=e)return e;const s=this.getSymbolicName(t);return null!=s?s:"".concat(t)}getLiteralNames(){return this.literalNames}getSymbolicNames(){return this.symbolicNames}getDisplayNames(){return this.displayNames}},Ea(h,"Vocabulary"),(0,js.Z)(h,"EMPTY_NAMES",[]),(0,js.Z)(h,"EMPTY_VOCABULARY",new h(h.EMPTY_NAMES,h.EMPTY_NAMES,h.EMPTY_NAMES)),h),Aa=(Ea(E=class t{constructor(){}static initialize(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:aa(t,E,T)}static updateFromComparable(t,e){var s;return this.update(t,null!==(s=null===e||void 0===e?void 0:e.hashCode())&&void 0!==s?s:0)}static update(t,e){return e=(e=Math.imul(e,3432918353))<<15|e>>>17,t=(t^=e=Math.imul(e,461845907))<<13|t>>>19,t=Math.imul(t,5)+3864292196}},"MurmurHash"),T={writable:!0,value:701},(0,js.Z)(E,"finish",((t,e)=>(t^=4*e,t^=t>>>16,t=Math.imul(t,2246822507),t^=t>>>13,t=Math.imul(t,3266489909),t^=t>>>16))),(0,js.Z)(E,"hashCode",((t,e)=>E.finish(E.update(null!==e&&void 0!==e?e:aa(E,E,T),t),1))),E),Sa=(R=new WeakMap,A=new WeakMap,o=class t{constructor(t){r(this,R,{writable:!0,value:[]}),r(this,A,{writable:!0,value:void 0}),t&&this.addSet(t)}static of(e,s){const a=new t;return a.addRange(e,s),a}[Symbol.iterator](){return ea(this,R)[Symbol.iterator]()}get(t){return ea(this,R)[t]}get minElement(){return 0===ea(this,R).length?ca.INVALID_TYPE:ea(this,R)[0].start}get maxElement(){return 0===ea(this,R).length?ca.INVALID_TYPE:ea(this,R)[ea(this,R).length-1].stop}clear(){$s(this,A,void 0),$s(this,R,[])}addOne(t){this.addInterval(new oa(t,t))}addRange(t,e){this.addInterval(new oa(t,e))}addInterval(t){if($s(this,A,void 0),0===ea(this,R).length)ea(this,R).push(t);else{for(let e=0;e<ea(this,R).length;e++){const s=ea(this,R)[e];if(t.equals(s))return;if(t.adjacent(s)||!t.disjoint(s)){const a=t.union(s);ea(this,R)[e]=a;for(let t=e+1;t<ea(this,R).length;){const s=ea(this,R)[t];if(!a.adjacent(s)&&a.disjoint(s))break;ea(this,R).splice(t,1),ea(this,R)[e]=a.union(s)}return}if(t.startsBeforeDisjoint(s))return void ea(this,R).splice(e,0,t)}ea(this,R).push(t)}}addSet(t){return ea(t,R).forEach((t=>this.addInterval(t)),this),this}complementWithVocabulary(e){const s=new t;return e?0===e.length?s:(s.addSet(e),s.subtract(this)):s}complement(e,s){const a=new t;return a.addInterval(new oa(e,s)),a.subtract(this)}or(e){const s=new t;return s.addSet(this),e.forEach((t=>s.addSet(t))),s}and(e){if(0===e.length)return new t;const s=ea(this,R),a=ea(e,R);let r;const i=s.length,c=a.length;let n=0,h=0;for(;n<i&&h<c;){const e=s[n],i=a[h];e.startsBeforeDisjoint(i)?n++:i.startsBeforeDisjoint(e)?h++:e.properlyContains(i)?(r||(r=new t),r.addInterval(e.intersection(i)),h++):i.properlyContains(e)?(r||(r=new t),r.addInterval(e.intersection(i)),n++):e.disjoint(i)||(r||(r=new t),r.addInterval(e.intersection(i)),e.startsAfterNonDisjoint(i)?h++:i.startsAfterNonDisjoint(e)&&n++)}return r||new t}subtract(e){if(0===this.length)return new t;const s=new t(this);if(0===e.length)return s;let a=0,r=0;for(;a<ea(s,R).length&&r<ea(e,R).length;){const t=ea(s,R)[a],i=ea(e,R)[r];if(i.stop<t.start){r++;continue}if(i.start>t.stop){a++;continue}let c,n;i.start>t.start&&(c=new oa(t.start,i.start-1)),i.stop<t.stop&&(n=new oa(i.stop+1,t.stop)),c?n?(ea(s,R)[a]=c,ea(s,R).splice(a+1,0,n),a++,r++):(ea(s,R)[a]=c,a++):n?(ea(s,R)[a]=n,r++):ea(s,R).splice(a,1)}return s}contains(t){let e=0,s=ea(this,R).length-1;for(;e<=s;){const a=Math.floor((e+s)/2),r=ea(this,R)[a];if(r.stop<t)e=a+1;else{if(!(r.start>t))return!0;s=a-1}}return!1}removeRange(t){if($s(this,A,void 0),t.start===t.stop)this.removeOne(t.start);else if(null!==ea(this,R)){let e=0;for(const s of ea(this,R)){if(t.stop<=s.start)return;if(t.start>s.start&&t.stop<s.stop){ea(this,R)[e]=new oa(s.start,t.start);const a=new oa(t.stop,s.stop);return void ea(this,R).splice(e,0,a)}t.start<=s.start&&t.stop>=s.stop?(ea(this,R).splice(e,1),e-=1):t.start<s.stop?ea(this,R)[e]=new oa(s.start,t.start):t.stop<s.stop&&(ea(this,R)[e]=new oa(t.stop,s.stop)),e+=1}}}removeOne(t){$s(this,A,void 0);for(let e=0;e<ea(this,R).length;e++){const s=ea(this,R)[e];if(t<s.start)return;if(t===s.start&&t===s.stop)return void ea(this,R).splice(e,1);if(t===s.start)return void(ea(this,R)[e]=new oa(s.start+1,s.stop));if(t===s.stop)return void(ea(this,R)[e]=new oa(s.start,s.stop));if(t<s.stop){const a=new oa(s.start,t);return ea(this,R)[e]=new oa(t+1,s.stop),void ea(this,R).splice(e,0,a)}}}hashCode(){if(void 0===ea(this,A)){let t=Aa.initialize();for(const e of ea(this,R))t=Aa.update(t,e.start),t=Aa.update(t,e.stop);$s(this,A,Aa.finish(t,2*ea(this,R).length))}return ea(this,A)}equals(t){if(this===t)return!0;if(ea(this,R).length!==ea(t,R).length)return!1;for(let e=0;e<ea(this,R).length;e++)if(!ea(this,R)[e].equals(ea(t,R)[e]))return!1;return!0}toString(t){if(0===ea(this,R).length)return"{}";let e="";this.length>1&&(e+="{");for(let s=0;s<ea(this,R).length;++s){const a=ea(this,R)[s],r=a.start,i=a.stop;r===i?r===ca.EOF?e+="<EOF>":e+=t?"'"+String.fromCodePoint(r)+"'":r:e+=t?"'"+String.fromCodePoint(r)+"'..'"+String.fromCodePoint(i)+"'":r+".."+i,s<ea(this,R).length-1&&(e+=", ")}return this.length>1&&(e+="}"),e}toStringWithVocabulary(t){if(0===ea(this,R).length)return"{}";let e="";this.length>1&&(e+="{");for(let s=0;s<ea(this,R).length;++s){const a=ea(this,R)[s],r=a.start,i=a.stop;if(r===i)r===ca.EOF?e+="<EOF>":e+=this.elementName(t,r);else for(let s=r;s<=i;++s)s>r&&(e+=", "),e+=this.elementName(t,s);s<ea(this,R).length-1&&(e+=", ")}return this.length>1&&(e+="}"),e}toStringWithRuleNames(t){if(0===ea(this,R).length)return"{}";let e="";this.length>1&&(e+="{");const s=Ra.fromTokenNames(t);for(let a=0;a<ea(this,R).length;++a){const t=ea(this,R)[a],r=t.start,i=t.stop;if(r===i)r===ca.EOF?e+="<EOF>":e+=this.elementName(s,r);else for(let a=r;a<=i;++a)a>r&&(e+=", "),e+=this.elementName(s,a);a<ea(this,R).length-1&&(e+=", ")}return this.length>1&&(e+="}"),e}toArray(){const t=[];for(const e of ea(this,R))for(let s=e.start;s<=e.stop;s++)t.push(s);return t}get length(){let t=0;if(1===ea(this,R).length){const t=ea(this,R)[0];return t.stop-t.start+1}for(const e of ea(this,R))t+=e.length;return t}elementName(t,e){return e===ca.EOF?"<EOF>":e===ca.EPSILON?"<EPSILON>":t.getDisplayName(e)}},Ea(o,"IntervalSet"),o),la=(Ea(S=class{constructor(t){(0,js.Z)(this,"target",void 0),this.target=t}get isEpsilon(){return!1}get label(){return null}},"Transition"),(0,js.Z)(S,"INVALID",0),(0,js.Z)(S,"EPSILON",1),(0,js.Z)(S,"RANGE",2),(0,js.Z)(S,"RULE",3),(0,js.Z)(S,"PREDICATE",4),(0,js.Z)(S,"ATOM",5),(0,js.Z)(S,"ACTION",6),(0,js.Z)(S,"SET",7),(0,js.Z)(S,"NOT_SET",8),(0,js.Z)(S,"WILDCARD",9),(0,js.Z)(S,"PRECEDENCE",10),S),Oa=(Ea(l=class extends la{constructor(t,e){super(t),(0,js.Z)(this,"set",void 0),this.set=e||Sa.of(ca.INVALID_TYPE,ca.INVALID_TYPE)}get transitionType(){return la.SET}get label(){return this.set}matches(t,e,s){return this.set.contains(t)}toString(){return this.set.toString()}},"SetTransition"),l),Ia=(Ea(O=class extends Oa{get transitionType(){return la.NOT_SET}matches(t,e,s){return t>=e&&t<=s&&!super.matches(t,e,s)}toString(){return"~"+super.toString()}},"NotSetTransition"),O),ua=(u=new WeakMap,Ea(I=class t{constructor(t){r(this,u,{writable:!0,value:void 0}),$s(this,u,t)}static calculateEmptyHashCode(){let t=Aa.initialize(31);return t=Aa.finish(t,0),t}static calculateHashCodeSingle(t,e){let s=Aa.initialize(31);return s=Aa.updateFromComparable(s,t),s=Aa.update(s,e),s=Aa.finish(s,2),s}static calculateHashCodeList(t,e){let s=Aa.initialize(31);for(const a of t)s=Aa.updateFromComparable(s,a);for(const a of e)s=Aa.update(s,a);return s=Aa.finish(s,2*t.length),s}isEmpty(){return!1}hasEmptyPath(){return this.getReturnState(this.length-1)===t.EMPTY_RETURN_STATE}hashCode(){return ea(this,u)}toString(t){return""}},"PredictionContext"),(0,js.Z)(I,"EMPTY_RETURN_STATE",2147483647),(0,js.Z)(I,"EMPTY",void 0),(0,js.Z)(I,"traceATNSimulator",!1),I),Na=Ea((t=>null===t?"null":t),"valueToString"),La=Ea((t=>Array.isArray(t)?"["+t.map(Na).join(", ")+"]":"null"),"arrayToString"),Ca=Ea(((t,e)=>{if(t===e)return!0;if(t.length!==e.length)return!1;for(let s=0;s<t.length;s++){const a=t[s],r=e[s];if(a!==r&&(!a||!a.equals(r)))return!1}return!0}),"equalArrays"),_a=Ea(((t,e)=>{if(t===e)return!0;if(t.length!==e.length)return!1;for(let s=0;s<t.length;s++)if(t[s]!==e[s])return!1;return!0}),"equalNumberArrays"),Pa=Ea((function(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t=t.replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r"),e&&(t=t.replace(/ /g,"\xb7")),t}),"escapeWhitespace"),Ma=(N=class t extends ua{constructor(t,e){return super(ua.calculateHashCodeList(t,e)),(0,js.Z)(this,"parents",[]),(0,js.Z)(this,"returnStates",[]),this.parents=t,this.returnStates=e,this}isEmpty(){return this.returnStates[0]===ua.EMPTY_RETURN_STATE}get length(){return this.returnStates.length}getParent(t){return this.parents[t]}getReturnState(t){return this.returnStates[t]}equals(e){return this===e||e instanceof t&&this.hashCode()===e.hashCode()&&(_a(this.returnStates,e.returnStates)&&Ca(this.parents,e.parents))}toString(){if(this.isEmpty())return"[]";const t=[];for(let e=0;e<this.returnStates.length;e++)this.returnStates[e]!==ua.EMPTY_RETURN_STATE?(t.push(this.returnStates[e].toString()),this.parents[e]?t.push(this.parents[e].toString()):t.push("null")):t.push("$");return"[".concat(t.join(", "),"]")}},Ea(N,"ArrayPredictionContext"),N),da=(L=class t extends ua{constructor(t,e){super(t?ua.calculateHashCodeSingle(t,e):ua.calculateEmptyHashCode()),(0,js.Z)(this,"parent",void 0),(0,js.Z)(this,"returnState",void 0),this.parent=null!==t&&void 0!==t?t:null,this.returnState=e}static create(e,s){return s===ua.EMPTY_RETURN_STATE&&null===e?ua.EMPTY:new t(e,s)}getParent(t){return this.parent}getReturnState(t){return this.returnState}equals(e){return this===e||e instanceof t&&(this.hashCode()===e.hashCode()&&(this.returnState===e.returnState&&(null==this.parent?null==e.parent:this.parent.equals(e.parent))))}toString(){const t=null===this.parent?"":this.parent.toString();return 0===t.length?this.returnState===ua.EMPTY_RETURN_STATE?"$":""+this.returnState:this.returnState+" "+t}get length(){return 1}},Ea(L,"SingletonPredictionContext"),L),Ua=(Ea(C=class extends da{constructor(){super(void 0,ua.EMPTY_RETURN_STATE)}isEmpty(){return!0}getParent(){return null}getReturnState(){return this.returnState}equals(t){return this===t}toString(){return"$"}},"EmptyPredictionContext"),(0,js.Z)(C,"instance",new C),ua.EMPTY=new C,C),ma=(Ea(_=class{constructor(t){(0,js.Z)(this,"parent",null),(0,js.Z)(this,"symbol",void 0),this.symbol=t}getChild(t){return null}getSymbol(){return this.symbol}getPayload(){return this.symbol}getSourceInterval(){if(null===this.symbol)return oa.INVALID_INTERVAL;const t=this.symbol.tokenIndex;return new oa(t,t)}getChildCount(){return 0}accept(t){return t.visitTerminal(this)}getText(){var t,e;return null!==(t=null===(e=this.symbol)||void 0===e?void 0:e.text)&&void 0!==t?t:""}toString(){var t,e,s;return(null===(t=this.symbol)||void 0===t?void 0:t.type)===ca.EOF?"<EOF>":null!==(e=null===(s=this.symbol)||void 0===s?void 0:s.text)&&void 0!==e?e:""}toStringTree(){return this.toString()}},"TerminalNode"),_),Da=(Ea(P=class extends ma{accept(t){return t.visitErrorNode(this)}},"ErrorNode"),P),pa=(M=class t{static toStringTree(e,s,a){var r,i;s=null!==(r=s)&&void 0!==r?r:null,null!==(a=null!==(i=a)&&void 0!==i?i:null)&&(s=a.ruleNames);let c=t.getNodeText(e,s);c=Pa(c,!1);const n=e.getChildCount();if(0===n)return c;let h="("+c+" ";n>0&&(c=t.toStringTree(e.getChild(0),s),h=h.concat(c));for(let E=1;E<n;E++)c=t.toStringTree(e.getChild(E),s),h=h.concat(" "+c);return h=h.concat(")"),h}static getNodeText(t,e,s){var a,r;if(e=null!==(a=e)&&void 0!==a?a:null,null!==(s=null!==(r=s)&&void 0!==r?r:null)&&(e=s.ruleNames),null!==e){if(t instanceof ga){const s=t.ruleContext.getAltNumber();return 0!==s?e[t.ruleIndex]+":"+s:e[t.ruleIndex]}if(t instanceof Da)return t.toString();if(t instanceof ma&&null!==t.symbol)return t.symbol.text}const i=t.getPayload();return Ta(i)?i.text:String(t.getPayload())}static getChildren(t){const e=[];for(let s=0;s<t.getChildCount();s++)e.push(t.getChild(s));return e}static getAncestors(t){if(null===t.parent)return[];let e=[],s=t.parent;for(;null!==s;)e=[s].concat(e),s=s.parent;return e}static findAllTokenNodes(e,s){return t.findAllNodes(e,s,!0)}static findAllRuleNodes(e,s){return t.findAllNodes(e,s,!1)}static findAllNodes(e,s,a){const r=[];return t.doFindAllNodes(e,s,a,r),r}static descendants(e){let s=[e];for(let a=0;a<e.getChildCount();a++)s=s.concat(t.descendants(e.getChild(a)));return s}static doFindAllNodes(e,s,a,r){var i;a&&e instanceof ma?(null===(i=e.symbol)||void 0===i?void 0:i.type)===s&&r.push(e):!a&&e instanceof ga&&e.ruleIndex===s&&r.push(e);for(let c=0;c<e.getChildCount();c++)t.doFindAllNodes(e.getChild(c),s,a,r)}},Ea(M,"Trees"),M),ga=(U=new WeakMap,d=class{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;(0,js.Z)(this,"start",null),(0,js.Z)(this,"stop",null),(0,js.Z)(this,"children",[]),(0,js.Z)(this,"invokingState",void 0),r(this,U,{writable:!0,value:void 0}),$s(this,U,t),this.invokingState=e}copyFrom(t){$s(this,U,ea(t,U)),this.invokingState=t.invokingState,this.children.slice(0,this.children.length),this.start=t.start,this.stop=t.stop,t.children&&t.children.forEach((t=>{t instanceof Da&&(this.children.push(t),t.parent=this)}))}enterRule(t){}exitRule(t){}addChild(t){return this.children.push(t),t}removeLastChild(){this.children.pop()}addTokenNode(t){const e=new ma(t);return this.children.push(e),e.parent=this,e}addErrorNode(t){return t.parent=this,this.children.push(t),t}getChild(t,e){if(t<0||t>=this.children.length)return null;if(!e)return this.children[t];for(const s of this.children)if(s instanceof e){if(0===t)return s;t-=1}return null}getToken(t,e){if(e<0||e>=this.children.length)return null;for(const a of this.children){var s;if("symbol"in a)if((null===(s=a.symbol)||void 0===s?void 0:s.type)===t){if(0===e)return a;e-=1}}return null}getTokens(t){const e=[];for(const a of this.children){var s;if("symbol"in a)(null===(s=a.symbol)||void 0===s?void 0:s.type)===t&&e.push(a)}return e}getRuleContext(t,e){return this.getChild(t,e)}getRuleContexts(t){const e=[];for(const s of this.children)s instanceof t&&e.push(s);return e}getChildCount(){return this.children.length}getSourceInterval(){return null===this.start||null===this.stop?oa.INVALID_INTERVAL:new oa(this.start.tokenIndex,this.stop.tokenIndex)}get parent(){return ea(this,U)}set parent(t){$s(this,U,t)}depth(){let t=0,e=this;for(;null!==e;)e=e.parent,t+=1;return t}isEmpty(){return-1===this.invokingState}get ruleContext(){return this}get ruleIndex(){return-1}getPayload(){return this}getText(){return 0===this.children.length?"":this.children.map((t=>t.getText())).join("")}getAltNumber(){return ja.INVALID_ALT_NUMBER}setAltNumber(t){}accept(t){return t.visitChildren(this)}toStringTree(){return 1===arguments.length?pa.toStringTree(this,null,arguments.length<=0?void 0:arguments[0]):pa.toStringTree(this,arguments.length<=0?void 0:arguments[0],arguments.length<=1?void 0:arguments[1])}toString(t,e){var s,a;t=null!==(s=t)&&void 0!==s?s:null,e=null!==(a=e)&&void 0!==a?a:null;let r=this,i="[";for(;null!==r&&r!==e;){if(null===t)r.isEmpty()||(i+=r.invokingState);else{const e=r.ruleIndex;i+=e>=0&&e<t.length?t[e]:""+e}null===r.parent||null===t&&r.parent.isEmpty()||(i+=" "),r=r.parent}return i+="]",i}},Ea(d,"ParserRuleContext"),(0,js.Z)(d,"empty",new d(null)),d),xa=(m=class{hashCode(t){return null==t?0:t.hashCode()}equals(t,e){return null==t?null==e:t.equals(e)}},Ea(m,"ObjectEqualityComparator"),(0,js.Z)(m,"instance",new m),m),ka=(D=class{hashCode(t){return null==t?0:xa.instance.hashCode(t)}equals(t,e){return null==t?null==e:"string"===typeof t||"number"===typeof t?t===e:xa.instance.equals(t,e)}},Ea(D,"DefaultEqualityComparator"),(0,js.Z)(D,"instance",new D),D),Ha=(g=new WeakMap,x=new WeakMap,k=new WeakMap,H=new WeakMap,p=class t{constructor(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:aa(t,p,F);if(r(this,g,{writable:!0,value:void 0}),r(this,x,{writable:!0,value:void 0}),r(this,k,{writable:!0,value:0}),r(this,H,{writable:!0,value:void 0}),e instanceof t){$s(this,g,ea(e,g)),$s(this,x,ea(e,x).slice(0));for(let t=0;t<ea(this,x).length;t++){const e=ea(this,x)[t];e&&(ea(this,x)[t]=e.slice(0))}$s(this,k,ea(e,k)),$s(this,H,ea(e,H))}else $s(this,g,null!==e&&void 0!==e?e:ka.instance),$s(this,x,this.createBuckets(s)),$s(this,H,Math.floor(aa(t,p,F)*aa(t,p,G)))}getOrAdd(t){var e;ea(this,k)>ea(this,H)&&this.expand();const s=this.getBucket(t);let a=ea(this,x)[s];var r;if(!a)return a=[t],ea(this,x)[s]=a,$s(this,k,(r=ea(this,k),++r)),t;for(const i of a)if(ea(this,g).equals(i,t))return i;return a.push(t),$s(this,k,(e=ea(this,k),++e)),t}get(t){if(null==t)return t;const e=this.getBucket(t),s=ea(this,x)[e];if(s)for(const a of s)if(ea(this,g).equals(a,t))return a}hashCode(){let t=Aa.initialize();for(const e of ea(this,x))if(null!=e)for(const s of e){if(null==s)break;t=Aa.update(t,ea(this,g).hashCode(s))}return t=Aa.finish(t,this.size),t}equals(e){return e===this||e instanceof t&&(e.size===this.size&&this.containsAll(e))}add(t){return this.getOrAdd(t)===t}contains(t){return this.containsFast(t)}containsFast(t){return null!=t&&void 0!==this.get(t)}*[Symbol.iterator](){yield*this.toArray()}toArray(){const t=new Array(this.size);let e=0;for(const s of ea(this,x))if(null!=s)for(const a of s){if(null==a)break;t[e++]=a}return t}containsAll(e){if(e instanceof t){for(const t of ea(e,x))if(null!=t)for(const e of t){if(null==e)break;if(!this.containsFast(e))return!1}}else for(const t of e)if(!this.containsFast(t))return!1;return!0}addAll(t){let e=!1;for(const s of t){this.getOrAdd(s)!==s&&(e=!0)}return e}clear(){$s(this,x,this.createBuckets(aa(t,p,F))),$s(this,k,0),$s(this,H,Math.floor(aa(t,p,F)*aa(t,p,G)))}toString(){if(0===this.size)return"{}";let t="{",e=!0;for(const s of ea(this,x))if(null!=s)for(const a of s){if(null==a)break;e?e=!1:t+=", ",t+=a.toString()}return t+="}",t}toTableString(){let t="";for(const e of ea(this,x)){if(null==e){t+="null\n";continue}t+="[";let s=!0;for(const a of e)s?s=!1:t+=" ",t+=null==a?"_":a.toString();t+="]\n"}return t}getBucket(t){return ea(this,g).hashCode(t)&ea(this,x).length-1}expand(){const e=ea(this,x),s=2*ea(this,x).length,a=this.createBuckets(s);$s(this,x,a),$s(this,H,Math.floor(s*aa(t,p,G)));for(const t of e)if(t)for(const e of t){const t=this.getBucket(e);let s=ea(this,x)[t];s||(s=[],ea(this,x)[t]=s),s.push(e)}}get size(){return ea(this,k)}get isEmpty(){return 0===ea(this,k)}createBuckets(t){return new Array(t)}},Ea(p,"HashSet"),G={writable:!0,value:.75},F={writable:!0,value:16},p),Ga=(v=class{constructor(t){(0,js.Z)(this,"keyComparator",void 0),this.keyComparator=t}hashCode(t){return this.keyComparator.hashCode(t.key)}equals(t,e){return this.keyComparator.equals(t.key,e.key)}},Ea(v,"MapKeyEqualityComparator"),v),Fa=(Ea(B=class t{constructor(e){(0,js.Z)(this,"backingStore",void 0),this.backingStore=new Ha(e instanceof t?e.backingStore:new Ga(e))}clear(){this.backingStore.clear()}containsKey(t){return this.backingStore.contains({key:t})}get(t){const e=this.backingStore.get({key:t});if(e)return e.value}get isEmpty(){return this.backingStore.isEmpty}set(t,e){const s=this.backingStore.get({key:t,value:e});let a;return s?(a=s.value,s.value=e):this.backingStore.add({key:t,value:e}),a}setIfAbsent(t,e){const s=this.backingStore.get({key:t,value:e});let a;return s?a=s.value:this.backingStore.add({key:t,value:e}),a}values(){return this.backingStore.toArray().map((t=>t.value))}get size(){return this.backingStore.size}hashCode(){return this.backingStore.hashCode()}equals(t){return this.backingStore.equals(t.backingStore)}},"HashMap"),B),va=Ea(((t,e)=>{if(e||(e=ga.empty),!e.parent||e===ga.empty)return ua.EMPTY;const s=va(t,e.parent),a=t.states[e.invokingState].transitions[0];return da.create(s,a.followState.stateNumber)}),"predictionContextFromRuleContext"),Ba=Ea(((t,e,s)=>{if(t.isEmpty())return t;let a=s.get(t);if(a)return a;if(a=e.get(t),a)return s.set(t,a),a;let r,i=!1,c=[];for(let h=0;h<c.length;h++){const a=Ba(t.getParent(h),e,s);if(i||a!==t.getParent(h)){if(!i){c=[];for(let e=0;e<t.length;e++)c[e]=t.getParent(e);i=!0}c[h]=a}}if(!i)return e.add(t),s.set(t,t),t;if(0===c.length)r=ua.EMPTY;else if(1===c.length){var n;r=da.create(null!==(n=c[0])&&void 0!==n?n:void 0,t.getReturnState(0))}else r=new Ma(c,t.returnStates);return e.add(r),s.set(r,r),s.set(t,r),r}),"getCachedPredictionContext"),ya=Ea(((t,e,s,a)=>{if(t===e)return t;if(t instanceof da&&e instanceof da)return wa(t,e,s,a);if(s){if(t instanceof Ua)return t;if(e instanceof Ua)return e}return t instanceof da&&(t=new Ma([t.parent],[t.returnState])),e instanceof da&&(e=new Ma([e.parent],[e.returnState])),fa(t,e,s,a)}),"merge"),fa=Ea(((t,e,s,a)=>{if(a){let s=a.get(t,e);if(s)return s;if(s=a.get(e,t),s)return s}let r=0,i=0,c=0,n=new Array(t.returnStates.length+e.returnStates.length).fill(0),h=new Array(t.returnStates.length+e.returnStates.length).fill(null);for(;r<t.returnStates.length&&i<e.returnStates.length;){const E=t.parents[r],T=e.parents[i];if(t.returnStates[r]===e.returnStates[i]){const e=t.returnStates[r];e===ua.EMPTY_RETURN_STATE&&null===E&&null===T||null!==E&&null!==T&&E===T?(h[c]=E,n[c]=e):(h[c]=ya(E,T,s,a),n[c]=e),r+=1,i+=1}else t.returnStates[r]<e.returnStates[i]?(h[c]=E,n[c]=t.returnStates[r],r+=1):(h[c]=T,n[c]=e.returnStates[i],i+=1);c+=1}if(r<t.returnStates.length)for(let o=r;o<t.returnStates.length;o++)h[c]=t.parents[o],n[c]=t.returnStates[o],c+=1;else for(let o=i;o<e.returnStates.length;o++)h[c]=e.parents[o],n[c]=e.returnStates[o],c+=1;if(c<h.length){if(1===c){var E;const s=da.create(null!==(E=h[0])&&void 0!==E?E:void 0,n[0]);return null!==a&&a.set(t,e,s),s}h=h.slice(0,c),n=n.slice(0,c)}const T=new Ma(h,n);return T.equals(t)?(null!==a&&a.set(t,e,t),ua.traceATNSimulator&&console.log("mergeArrays a="+t+",b="+e+" -> a"),t):T.equals(e)?(null!==a&&a.set(t,e,e),e):(Ya(h),null!==a&&a.set(t,e,T),ua.traceATNSimulator&&console.log("mergeArrays a="+t+",b="+e+" -> "+T),T)}),"mergeArrays"),Ya=Ea((t=>{const e=new Fa(xa.instance);for(const a of t)a&&(e.containsKey(a)||e.set(a,a));for(let a=0;a<t.length;a++){var s;if(t[a])t[a]=null!==(s=e.get(t[a]))&&void 0!==s?s:null}}),"combineCommonParents"),wa=Ea(((t,e,s,a)=>{if(null!==a){let s=a.get(t,e);if(null!==s)return s;if(s=a.get(e,t),null!==s)return s}const r=ba(t,e,s);if(null!==r)return null!==a&&a.set(t,e,r),r;if(t.returnState===e.returnState){const r=ya(t.parent,e.parent,s,a);if(r===t.parent)return t;if(r===e.parent)return e;const i=da.create(r,t.returnState);return null!==a&&a.set(t,e,i),i}{let s=null;if((t===e||null!==t.parent&&t.parent===e.parent)&&(s=t.parent),null!==s){const r=[t.returnState,e.returnState];t.returnState>e.returnState&&(r[0]=e.returnState,r[1]=t.returnState);const i=new Ma([s,s],r);return null!==a&&a.set(t,e,i),i}const r=[t.returnState,e.returnState];let i=[t.parent,e.parent];t.returnState>e.returnState&&(r[0]=e.returnState,r[1]=t.returnState,i=[e.parent,t.parent]);const c=new Ma(i,r);return null!==a&&a.set(t,e,c),c}}),"mergeSingletons"),ba=Ea(((t,e,s)=>{if(s){if(t===ua.EMPTY||e===ua.EMPTY)return ua.EMPTY}else{if(t===ua.EMPTY&&e===ua.EMPTY)return ua.EMPTY;if(t===ua.EMPTY){const t=[e.returnState,ua.EMPTY_RETURN_STATE],s=[e.parent,null];return new Ma(s,t)}if(e===ua.EMPTY){const e=[t.returnState,ua.EMPTY_RETURN_STATE],s=[t.parent,null];return new Ma(s,e)}}return null}),"mergeRoot"),Wa=(y=class{constructor(t){(0,js.Z)(this,"data",void 0),this.data=t?new Uint32Array(t.map((t=>t>>>0))):new Uint32Array(1)}[Symbol.iterator](){const t=this.data.length;let e=0,s=this.data[e];const a=this.data;return{[Symbol.iterator](){return this},next:()=>{for(;e<t;){if(0!==s){const t=s&-s,a=(e<<5)+this.bitCount(t-1);return s^=t,{done:!1,value:a}}e++,e<t&&(s=a[e])}return{done:!0,value:void 0}}}}clear(t){void 0===t?this.data=new Uint32Array:(this.resize(t),this.data[t>>>5]&=~(1<<t))}or(t){const e=Math.min(this.data.length,t.data.length);for(let s=0;s<e;++s)this.data[s]|=t.data[s];if(this.data.length<t.data.length){this.resize((t.data.length<<5)-1);const s=t.data.length;for(let a=e;a<s;++a)this.data[a]=t.data[a]}}get(t){if(t<0)throw new RangeError("index cannot be negative");const e=t>>>5;return!(e>=this.data.length)&&0!==(this.data[e]&1<<t%32)}get length(){let t=0;const e=this.data.length,s=this.data;for(let a=0;a<e;a++)t+=this.bitCount(s[a]);return t}values(){const t=new Array(this.length);let e=0;const s=this.data.length;for(let a=0;a<s;++a){let s=this.data[a];for(;0!==s;){const r=s&-s;t[e++]=(a<<5)+this.bitCount(r-1),s^=r}}return t}nextSetBit(t){if(t<0)throw new RangeError("index cannot be negative");for(const e of this)if(e>t)return e}set(t){if(t<0)throw new RangeError("index cannot be negative");this.resize(t),this.data[t>>>5]|=1<<t%32}toString(){return"{"+this.values().join(", ")+"}"}resize(t){const e=t+32>>>5;if(e<=this.data.length)return;const s=new Uint32Array(e);s.set(this.data),s.fill(0,this.data.length),this.data=s}bitCount(t){return t=(t=(858993459&(t-=t>>1&1431655765))+(t>>2&858993459))+(t>>4)&252645135,t+=t>>8,63&(t+=t>>16)}},Ea(y,"BitSet"),y),Va=(f=class{constructor(){(0,js.Z)(this,"stateNumber",0),(0,js.Z)(this,"ruleIndex",0),(0,js.Z)(this,"epsilonOnlyTransitions",!1),(0,js.Z)(this,"nextTokenWithinRule",void 0),(0,js.Z)(this,"transitions",[])}hashCode(){return this.stateNumber}equals(t){return this.stateNumber===t.stateNumber}toString(){return"".concat(this.stateNumber)}addTransitionAtIndex(t,e){0===this.transitions.length?this.epsilonOnlyTransitions=e.isEpsilon:this.epsilonOnlyTransitions!==e.isEpsilon&&(this.epsilonOnlyTransitions=!1),this.transitions.splice(t,1,e)}addTransition(t){0===this.transitions.length?this.epsilonOnlyTransitions=t.isEpsilon:this.epsilonOnlyTransitions!==t.isEpsilon&&(this.epsilonOnlyTransitions=!1),this.transitions.push(t)}setTransition(t,e){this.transitions.splice(t,1,e)}removeTransition(t){return this.transitions.splice(t,1)[0]}},Ea(f,"ATNState"),(0,js.Z)(f,"INVALID_STATE_NUMBER",-1),(0,js.Z)(f,"INVALID_TYPE",0),(0,js.Z)(f,"BASIC",1),(0,js.Z)(f,"RULE_START",2),(0,js.Z)(f,"BLOCK_START",3),(0,js.Z)(f,"PLUS_BLOCK_START",4),(0,js.Z)(f,"STAR_BLOCK_START",5),(0,js.Z)(f,"TOKEN_START",6),(0,js.Z)(f,"RULE_STOP",7),(0,js.Z)(f,"BLOCK_END",8),(0,js.Z)(f,"STAR_LOOP_BACK",9),(0,js.Z)(f,"STAR_LOOP_ENTRY",10),(0,js.Z)(f,"PLUS_LOOP_BACK",11),(0,js.Z)(f,"LOOP_END",12),(0,js.Z)(f,"stateType",f.INVALID_STATE_NUMBER),f),Xa=(Y=class t{constructor(){(0,js.Z)(this,"cachedHashCode",void 0)}static andContext(e,s){if(null===e||e===t.NONE)return s;if(null===s||s===t.NONE)return e;const a=new Ka(e,s);return 1===a.operands.length?a.operands[0]:a}static orContext(e,s){if(null===e)return s;if(null===s)return e;if(e===t.NONE||s===t.NONE)return t.NONE;const a=new Qa(e,s);return 1===a.operands.length?a.operands[0]:a}static filterPrecedencePredicates(e){const s=[];for(const a of e)a instanceof t.PrecedencePredicate&&s.push(a);return s}evalPrecedence(t,e){return this}},Ea(Y,"SemanticContext"),Y),Ka=(w=class t extends Xa{constructor(e,s){super(),(0,js.Z)(this,"operands",void 0);const a=new Ha;e instanceof t?e.operands.forEach((t=>{a.add(t)})):a.add(e),s instanceof t?s.operands.forEach((t=>{a.add(t)})):a.add(s);const r=Xa.filterPrecedencePredicates(a);if(r.length>0){let t=null;r.forEach((e=>{(null===t||e.precedence<t.precedence)&&(t=e)})),t&&a.add(t)}this.operands=a.toArray()}equals(e){return this===e||e instanceof t&&Ca(this.operands,e.operands)}hashCode(){if(void 0===this.cachedHashCode){let t=Aa.initialize();for(const e of this.operands)t=Aa.updateFromComparable(t,e);t=Aa.update(t,3813686060),this.cachedHashCode=Aa.finish(t,this.operands.length+1)}return this.cachedHashCode}evaluate(t,e){for(const s of this.operands)if(!s.evaluate(t,e))return!1;return!0}evalPrecedence(t,e){let s=!1;const a=[];for(const i of this.operands){const r=i.evalPrecedence(t,e);if(s||(s=r!==i),null===r)return null;r!==Xa.NONE&&a.push(r)}if(!s)return this;if(0===a.length)return Xa.NONE;let r=null;return a.forEach((t=>{r=null===r?t:Xa.andContext(r,t)})),r}toString(){const t=this.operands.map((t=>t.toString()));return(t.length>3?t.slice(3):t).join("&&")}},Ea(w,"AND"),w),Qa=(b=class t extends Xa{constructor(e,s){super(),(0,js.Z)(this,"operands",void 0);const a=new Ha;e instanceof t?e.operands.forEach((t=>{a.add(t)})):a.add(e),s instanceof t?s.operands.forEach((t=>{a.add(t)})):a.add(s);const r=Xa.filterPrecedencePredicates(a);if(r.length>0){const t=r.sort(((t,e)=>t.compareTo(e))),e=t[t.length-1];a.add(e)}this.operands=a.toArray()}equals(e){return this===e||e instanceof t&&Ca(this.operands,e.operands)}hashCode(){if(void 0===this.cachedHashCode){let t=Aa.initialize();for(const e of this.operands)t=Aa.updateFromComparable(t,e);t=Aa.update(t,3383313031),this.cachedHashCode=Aa.finish(t,this.operands.length+1)}return this.cachedHashCode}evaluate(t,e){for(const s of this.operands)if(s.evaluate(t,e))return!0;return!1}evalPrecedence(t,e){let s=!1;const a=[];for(const i of this.operands){const r=i.evalPrecedence(t,e);if(s||(s=r!==i),r===Xa.NONE)return Xa.NONE;null!==r&&a.push(r)}if(!s)return this;if(0===a.length)return null;let r=null;return a.forEach((t=>{r=null===r?t:Xa.orContext(r,t)})),r}toString(){const t=this.operands.map((t=>t.toString()));return(t.length>3?t.slice(3):t).join("||")}},Ea(b,"OR"),b);(t=>{class e extends t{constructor(t,e,s){super(),(0,js.Z)(this,"ruleIndex",void 0),(0,js.Z)(this,"predIndex",void 0),(0,js.Z)(this,"isCtxDependent",void 0),this.ruleIndex=null!==t&&void 0!==t?t:-1,this.predIndex=null!==e&&void 0!==e?e:-1,this.isCtxDependent=null!==s&&void 0!==s&&s}evaluate(t,e){const s=this.isCtxDependent?e:null;return t.sempred(s,this.ruleIndex,this.predIndex)}hashCode(){if(void 0===this.cachedHashCode){let t=Aa.initialize();t=Aa.update(t,this.ruleIndex),t=Aa.update(t,this.predIndex),t=Aa.update(t,this.isCtxDependent?1:0),t=Aa.finish(t,3),this.cachedHashCode=t}return this.cachedHashCode}equals(t){return this===t||this.ruleIndex===t.ruleIndex&&this.predIndex===t.predIndex&&this.isCtxDependent===t.isCtxDependent}toString(){return"{"+this.ruleIndex+":"+this.predIndex+"}?"}}Ea(e,"Predicate"),t.Predicate=e;class s extends t{constructor(t){super(),(0,js.Z)(this,"precedence",void 0),this.precedence=null!==t&&void 0!==t?t:0}evaluate(t,e){return t.precpred(e,this.precedence)}evalPrecedence(e,s){return e.precpred(null!==s&&void 0!==s?s:null,this.precedence)?t.NONE:null}compareTo(t){return this.precedence-t.precedence}hashCode(){return 31+this.precedence}equals(t){return this===t||this.precedence===t.precedence}toString(){return"{"+this.precedence+">=prec}?"}}Ea(s,"PrecedencePredicate"),t.PrecedencePredicate=s,t.NONE=new e})(Xa||(Xa={}));var Ja,Za=(V=new WeakMap,X=new WeakMap,W=class t{get semanticContext(){return ea(this,X)}constructor(t,e,s,a){(0,js.Z)(this,"state",void 0),(0,js.Z)(this,"alt",void 0),(0,js.Z)(this,"reachesIntoOuterContext",!1),(0,js.Z)(this,"precedenceFilterSuppressed",!1),(0,js.Z)(this,"cachedHashCode",void 0),r(this,V,{writable:!0,value:null}),r(this,X,{writable:!0,value:void 0}),this.state=e,this.alt=t.alt,this.context=s,$s(this,X,null!==a&&void 0!==a?a:Xa.NONE),this.reachesIntoOuterContext=t.reachesIntoOuterContext,void 0!==t.precedenceFilterSuppressed&&(this.precedenceFilterSuppressed=t.precedenceFilterSuppressed)}static duplicate(e,s){return new t(e,e.state,e.context,null!==s&&void 0!==s?s:e.semanticContext)}static createWithContext(e,s,a,r){return new t({alt:s},e,a,r)}static createWithConfig(e,s,a){return new t(s,e,null!==a&&void 0!==a?a:s.context,s.semanticContext)}static createWithSemanticContext(e,s,a){return new t(s,null!==e&&void 0!==e?e:s.state,s.context,a)}hashCode(){if(void 0===this.cachedHashCode){let t=Aa.initialize(7);t=Aa.update(t,this.state.stateNumber),t=Aa.update(t,this.alt),t=Aa.updateFromComparable(t,ea(this,V)),t=Aa.updateFromComparable(t,this.semanticContext),t=Aa.finish(t,4),this.cachedHashCode=t}return this.cachedHashCode}get context(){return ea(this,V)}set context(t){$s(this,V,t),this.cachedHashCode=void 0}equals(t){return this===t||this.state.stateNumber===t.state.stateNumber&&this.alt===t.alt&&(null===this.context?null===t.context:this.context.equals(t.context))&&this.semanticContext.equals(t.semanticContext)&&this.precedenceFilterSuppressed===t.precedenceFilterSuppressed}toString(t){let e="";return(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&(e=","+this.alt),"("+this.state+e+(null!==this.context?",["+this.context.toString()+"]":"")+(this.semanticContext!==Xa.NONE?","+this.semanticContext.toString():"")+(this.reachesIntoOuterContext?",up="+this.reachesIntoOuterContext:"")+")"}},Ea(W,"ATNConfig"),W),qa=(Q=new WeakMap,K=class t{constructor(){r(this,Q,{writable:!0,value:void 0})}getDecisionLookahead(e){if(!e)return;const s=e.transitions.length,a=new Array(s);for(let r=0;r<s;r++){const s=new Sa,i=new Ha;this.doLook(e.transitions[r].target,void 0,ua.EMPTY,s,i,new Wa,!1,!1),s.length>0&&!s.contains(t.hitPredicate)&&(a[r]=s)}return a}look(t,e,s,a){$s(this,Q,t);const r=new Sa,i=a?va(t,a):null;return this.doLook(e,s,i,r,new Ha,new Wa,!0,!0),r}doLook(e,s,a,r,i,c,n,h){const E=Za.createWithContext(e,0,a);if(!i.get(E)){if(i.add(E),e===s){if(!a)return void r.addOne(ca.EPSILON);if(a.isEmpty()&&h)return void r.addOne(ca.EOF)}if(e.constructor.stateType===Va.RULE_STOP){if(!a)return void r.addOne(ca.EPSILON);if(a.isEmpty()&&h)return void r.addOne(ca.EOF);if(a!==ua.EMPTY){const t=c.get(e.ruleIndex);try{c.clear(e.ruleIndex);for(let t=0;t<a.length;t++){const e=ea(this,Q).states[a.getReturnState(t)];this.doLook(e,s,a.getParent(t),r,i,c,n,h)}}finally{t&&c.set(e.ruleIndex)}return}}for(const E of e.transitions)switch(E.transitionType){case la.RULE:{if(c.get(E.target.ruleIndex))continue;const t=da.create(null!==a&&void 0!==a?a:void 0,E.followState.stateNumber);try{c.set(E.target.ruleIndex),this.doLook(E.target,s,t,r,i,c,n,h)}finally{c.clear(E.target.ruleIndex)}break}case la.PREDICATE:case la.PRECEDENCE:n?this.doLook(E.target,s,a,r,i,c,n,h):r.addOne(t.hitPredicate);break;case la.WILDCARD:r.addRange(ca.MIN_USER_TOKEN_TYPE,ea(this,Q).maxTokenType);break;default:if(E.isEpsilon)this.doLook(E.target,s,a,r,i,c,n,h);else{let t=E.label;t&&(E instanceof Ia&&(t=t.complement(ca.MIN_USER_TOKEN_TYPE,ea(this,Q).maxTokenType)),r.addSet(t))}}}}},Ea(K,"LL1Analyzer"),(0,js.Z)(K,"hitPredicate",ca.INVALID_TYPE),K),ja=(J=class t{constructor(t,e){(0,js.Z)(this,"grammarType",void 0),(0,js.Z)(this,"maxTokenType",void 0),(0,js.Z)(this,"states",[]),(0,js.Z)(this,"decisionToState",[]),(0,js.Z)(this,"ruleToStartState",[]),(0,js.Z)(this,"ruleToStopState",[]),(0,js.Z)(this,"modeNameToStartState",new Map),(0,js.Z)(this,"ruleToTokenType",[]),(0,js.Z)(this,"lexerActions",[]),(0,js.Z)(this,"modeToStartState",[]),this.grammarType=t,this.maxTokenType=e}nextTokens(e,s){if(!s&&e.nextTokenWithinRule)return e.nextTokenWithinRule;const a=aa(t,J,Z).look(this,e,void 0,s);return s||(e.nextTokenWithinRule=a),a}addState(t){t&&(t.stateNumber=this.states.length),this.states.push(t)}removeState(t){this.states[t.stateNumber]=null}defineDecisionState(t){return this.decisionToState.push(t),t.decision=this.decisionToState.length-1,t.decision}getDecisionState(t){return 0===this.decisionToState.length?null:this.decisionToState[t]}getNumberOfDecisions(){return this.decisionToState.length}getExpectedTokens(t,e){if(t<0||t>=this.states.length)throw new Error("Invalid state number.");const s=this.states[t];let a=this.nextTokens(s);if(!a.contains(ca.EPSILON))return a;let r=e;const i=new Sa;for(i.addSet(a),i.removeOne(ca.EPSILON);null!==r&&r.invokingState>=0&&a.contains(ca.EPSILON);){const t=this.states[r.invokingState].transitions[0];a=this.nextTokens(t.followState),i.addSet(a),i.removeOne(ca.EPSILON),r=r.parent}return a.contains(ca.EPSILON)&&i.addOne(ca.EOF),i}},Ea(J,"ATN"),(0,js.Z)(J,"INVALID_ALT_NUMBER",0),(0,js.Z)(J,"LEXER",0),(0,js.Z)(J,"PARSER",1),Z={writable:!0,value:new qa},J),za=(q=class{hashCode(t){let e=7;return e=31*e+t.state.stateNumber,e=31*e+t.alt,e=31*e+t.semanticContext.hashCode(),e}equals(t,e){return t===e||t.state.stateNumber===e.state.stateNumber&&t.alt===e.alt&&t.semanticContext.equals(e.semanticContext)}},Ea(q,"KeyTypeEqualityComparer"),(0,js.Z)(q,"instance",new q),q),$a=(z=new WeakMap,j=class{constructor(t){if((0,js.Z)(this,"configLookup",new Ha(za.instance)),(0,js.Z)(this,"configs",[]),(0,js.Z)(this,"uniqueAlt",0),(0,js.Z)(this,"hasSemanticContext",!1),(0,js.Z)(this,"dipsIntoOuterContext",!1),(0,js.Z)(this,"fullCtx",!1),(0,js.Z)(this,"readOnly",!1),(0,js.Z)(this,"conflictingAlts",null),(0,js.Z)(this,"firstStopState",void 0),r(this,z,{writable:!0,value:-1}),void 0!==t)if("boolean"===typeof t)this.fullCtx=null===t||void 0===t||t;else{const e=t;this.addAll(e.configs),this.uniqueAlt=e.uniqueAlt,this.conflictingAlts=e.conflictingAlts,this.hasSemanticContext=e.hasSemanticContext,this.dipsIntoOuterContext=e.dipsIntoOuterContext}}[Symbol.iterator](){return this.configs[Symbol.iterator]()}add(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(this.readOnly)throw new Error("This set is readonly");this.firstStopState||t.state.constructor.stateType!==Va.RULE_STOP||(this.firstStopState=t),this.hasSemanticContext||(this.hasSemanticContext=t.semanticContext!==Xa.NONE),this.dipsIntoOuterContext||(this.dipsIntoOuterContext=t.reachesIntoOuterContext);const s=this.configLookup.getOrAdd(t);if(s===t)return $s(this,z,-1),void this.configs.push(t);const a=!this.fullCtx,r=ya(s.context,t.context,a,e);s.reachesIntoOuterContext||(s.reachesIntoOuterContext=t.reachesIntoOuterContext),s.precedenceFilterSuppressed||(s.precedenceFilterSuppressed=t.precedenceFilterSuppressed),s.context=r}get elements(){return this.configs}getAlts(){const t=new Wa;for(const e of this.configs)t.set(e.alt);return t}getPredicates(){const t=[];for(const e of this.configs)e.semanticContext!==Xa.NONE&&t.push(e.semanticContext);return t}getStates(){const t=new Ha;for(const e of this.configs)t.add(e.state);return t}optimizeConfigs(t){if(this.readOnly)throw new Error("This set is readonly");if(0!==this.configLookup.size)for(const e of this.configs)e.context=t.getCachedContext(e.context)}addAll(t){for(const e of t)this.add(e);return!1}equals(t){return this===t||!(this.fullCtx!==t.fullCtx||this.uniqueAlt!==t.uniqueAlt||this.conflictingAlts!==t.conflictingAlts||this.hasSemanticContext!==t.hasSemanticContext||this.dipsIntoOuterContext!==t.dipsIntoOuterContext||!Ca(this.configs,t.configs))}hashCode(){return-1===ea(this,z)&&$s(this,z,this.computeHashCode()),ea(this,z)}get length(){return this.configs.length}isEmpty(){return 0===this.configs.length}contains(t){if(null===this.configLookup)throw new Error("This method is not implemented for readonly sets.");return this.configLookup.contains(t)}containsFast(t){if(null===this.configLookup)throw new Error("This method is not implemented for readonly sets.");return this.configLookup.contains(t)}clear(){if(this.readOnly)throw new Error("This set is readonly");this.configs=[],$s(this,z,-1),this.configLookup=new Ha(za.instance)}setReadonly(t){this.readOnly=t,t&&(this.configLookup=null)}toString(){return La(this.configs)+(this.hasSemanticContext?",hasSemanticContext="+this.hasSemanticContext:"")+(this.uniqueAlt!==ja.INVALID_ALT_NUMBER?",uniqueAlt="+this.uniqueAlt:"")+(null!==this.conflictingAlts?",conflictingAlts="+this.conflictingAlts:"")+(this.dipsIntoOuterContext?",dipsIntoOuterContext":"")}computeHashCode(){let t=Aa.initialize();return this.configs.forEach((e=>{t=Aa.update(t,e.hashCode())})),t=Aa.finish(t,this.configs.length),t}},Ea(j,"ATNConfigSet"),j),tr=(Ea($=class extends Va{},"BasicState"),(0,js.Z)($,"stateType",Va.BASIC),$),er=(Ea(tt=class extends Va{constructor(){super(...arguments),(0,js.Z)(this,"decision",-1),(0,js.Z)(this,"nonGreedy",!1)}},"DecisionState"),tt),sr=(Ea(et=class extends er{constructor(){super(...arguments),(0,js.Z)(this,"endState",void 0)}},"BlockStartState"),et),ar=(Ea(st=class extends Va{constructor(){super(...arguments),(0,js.Z)(this,"startState",void 0)}},"BlockEndState"),(0,js.Z)(st,"stateType",Va.BLOCK_END),st),rr=(Ea(at=class extends Va{constructor(){super(...arguments),(0,js.Z)(this,"loopBackState",void 0)}},"LoopEndState"),(0,js.Z)(at,"stateType",Va.LOOP_END),at),ir=(Ea(rt=class extends Va{constructor(){super(...arguments),(0,js.Z)(this,"stopState",void 0),(0,js.Z)(this,"isLeftRecursiveRule",!1),(0,js.Z)(this,"isPrecedenceRule",!1)}},"RuleStartState"),(0,js.Z)(rt,"stateType",Va.RULE_START),rt),cr=(Ea(it=class extends Va{},"RuleStopState"),(0,js.Z)(it,"stateType",Va.RULE_STOP),it),nr=(Ea(ct=class extends er{},"TokensStartState"),(0,js.Z)(ct,"stateType",Va.TOKEN_START),ct),hr=(Ea(nt=class extends er{},"PlusLoopbackState"),(0,js.Z)(nt,"stateType",Va.PLUS_LOOP_BACK),nt),Er=(Ea(ht=class extends Va{},"StarLoopbackState"),(0,js.Z)(ht,"stateType",Va.STAR_LOOP_BACK),ht),Tr=(Ea(Et=class extends er{constructor(){super(...arguments),(0,js.Z)(this,"loopBackState",void 0),(0,js.Z)(this,"precedenceRuleDecision",!1)}},"StarLoopEntryState"),(0,js.Z)(Et,"stateType",Va.STAR_LOOP_ENTRY),Et),or=(Ea(Tt=class extends sr{constructor(){super(...arguments),(0,js.Z)(this,"loopBackState",void 0)}},"PlusBlockStartState"),(0,js.Z)(Tt,"stateType",Va.PLUS_BLOCK_START),Tt),Rr=(Ea(ot=class extends sr{},"StarBlockStartState"),(0,js.Z)(ot,"stateType",Va.STAR_BLOCK_START),ot),Ar=(Ea(Rt=class extends sr{},"BasicBlockStartState"),(0,js.Z)(Rt,"stateType",Va.BLOCK_START),Rt),Sr=(St=new WeakMap,Ea(At=class extends la{constructor(t,e){super(t),(0,js.Z)(this,"labelValue",void 0),r(this,St,{writable:!0,value:void 0}),this.labelValue=e,$s(this,St,Sa.of(e,e))}get label(){return ea(this,St)}get transitionType(){return la.ATOM}matches(t){return this.labelValue===t}toString(){return this.labelValue.toString()}},"AtomTransition"),At),lr=(Ea(lt=class extends la{constructor(t,e,s,a){super(t),(0,js.Z)(this,"ruleIndex",void 0),(0,js.Z)(this,"precedence",void 0),(0,js.Z)(this,"followState",void 0),this.ruleIndex=e,this.precedence=s,this.followState=a}get isEpsilon(){return!0}get transitionType(){return la.RULE}matches(t,e,s){return!1}},"RuleTransition"),lt),Or=(It=new WeakMap,Ea(Ot=class extends la{constructor(t,e,s){super(t),(0,js.Z)(this,"start",void 0),(0,js.Z)(this,"stop",void 0),r(this,It,{writable:!0,value:new Sa}),this.start=e,this.stop=s,ea(this,It).addRange(e,s)}get label(){return ea(this,It)}get transitionType(){return la.RANGE}matches(t,e,s){return t>=this.start&&t<=this.stop}toString(){return"'"+String.fromCharCode(this.start)+"'..'"+String.fromCharCode(this.stop)+"'"}},"RangeTransition"),Ot),Ir=(Ea(ut=class extends la{constructor(t,e,s,a){super(t),(0,js.Z)(this,"ruleIndex",void 0),(0,js.Z)(this,"actionIndex",void 0),(0,js.Z)(this,"isCtxDependent",void 0),this.ruleIndex=e,this.actionIndex=void 0===s?-1:s,this.isCtxDependent=void 0!==a&&a}get isEpsilon(){return!0}get transitionType(){return la.ACTION}matches(t,e,s){return!1}toString(){return"action_"+this.ruleIndex+":"+this.actionIndex}},"ActionTransition"),ut),ur=(Lt=new WeakMap,Ea(Nt=class extends la{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;super(t),r(this,Lt,{writable:!0,value:void 0}),$s(this,Lt,e)}get outermostPrecedenceReturn(){return ea(this,Lt)}get isEpsilon(){return!0}get transitionType(){return la.EPSILON}matches(){return!1}toString(){return"epsilon"}},"EpsilonTransition"),Nt),Nr=(Ea(Ct=class extends la{get transitionType(){return la.WILDCARD}matches(t,e,s){return t>=e&&t<=s}toString(){return"."}},"WildcardTransition"),Ct),Lr=(Ea(_t=class extends la{constructor(t){super(t)}},"AbstractPredicateTransition"),_t),Cr=(Ea(Pt=class extends Lr{constructor(t,e,s,a){super(t),(0,js.Z)(this,"ruleIndex",void 0),(0,js.Z)(this,"predIndex",void 0),(0,js.Z)(this,"isCtxDependent",void 0),this.ruleIndex=e,this.predIndex=s,this.isCtxDependent=a}get isEpsilon(){return!0}matches(t,e,s){return!1}get transitionType(){return la.PREDICATE}getPredicate(){return new Xa.Predicate(this.ruleIndex,this.predIndex,this.isCtxDependent)}toString(){return"pred_"+this.ruleIndex+":"+this.predIndex}},"PredicateTransition"),Pt),_r=(Ea(Mt=class extends Lr{constructor(t,e){super(t),(0,js.Z)(this,"precedence",void 0),this.precedence=e}get isEpsilon(){return!0}matches(t,e,s){return!1}getPredicate(){return new Xa.PrecedencePredicate(this.precedence)}get transitionType(){return la.PRECEDENCE}toString(){return this.precedence+" >= _p"}},"PrecedencePredicateTransition"),Mt),Pr=0,Mr=1,dr=2,Ur=3,mr=4,Dr=5,pr=6,gr=7,xr=(Ea(dt=class{constructor(){(0,js.Z)(this,"actionType",void 0),(0,js.Z)(this,"isPositionDependent",!1),this.actionType=pr}equals(t){return t===this}hashCode(){return pr}execute(t){t.skip()}toString(){return"skip"}},"LexerSkipAction"),(0,js.Z)(dt,"instance",new dt),dt),kr=(mt=new WeakMap,Ea(Ut=class t{constructor(t){(0,js.Z)(this,"channel",void 0),(0,js.Z)(this,"actionType",void 0),(0,js.Z)(this,"isPositionDependent",!1),r(this,mt,{writable:!0,value:void 0}),this.actionType=Pr,this.channel=t}execute(t){t.channel=this.channel}hashCode(){if(void 0===ea(this,mt)){let t=Aa.initialize();t=Aa.update(t,this.actionType),t=Aa.update(t,this.channel),$s(this,mt,Aa.finish(t,2))}return ea(this,mt)}equals(e){return this===e||e instanceof t&&this.channel===e.channel}toString(){return"channel("+this.channel+")"}},"LexerChannelAction"),Ut),Hr=(pt=new WeakMap,Ea(Dt=class t{constructor(t,e){(0,js.Z)(this,"ruleIndex",void 0),(0,js.Z)(this,"actionIndex",void 0),(0,js.Z)(this,"actionType",void 0),(0,js.Z)(this,"isPositionDependent",!0),r(this,pt,{writable:!0,value:void 0}),this.actionType=Mr,this.ruleIndex=t,this.actionIndex=e}execute(t){t.action(null,this.ruleIndex,this.actionIndex)}hashCode(){if(void 0===ea(this,pt)){let t=Aa.initialize();t=Aa.update(t,this.actionType),t=Aa.update(t,this.ruleIndex),t=Aa.update(t,this.actionIndex),$s(this,pt,Aa.finish(t,3))}return ea(this,pt)}equals(e){return this===e||e instanceof t&&(this.ruleIndex===e.ruleIndex&&this.actionIndex===e.actionIndex)}},"LexerCustomAction"),Dt),Gr=(Ea(gt=class{constructor(){(0,js.Z)(this,"actionType",void 0),(0,js.Z)(this,"isPositionDependent",!1),this.actionType=Ur}equals(t){return t===this}hashCode(){return Ur}execute(t){t.more()}toString(){return"more"}},"LexerMoreAction"),(0,js.Z)(gt,"instance",new gt),gt),Fr=(kt=new WeakMap,Ea(xt=class t{constructor(t){(0,js.Z)(this,"type",void 0),(0,js.Z)(this,"actionType",void 0),(0,js.Z)(this,"isPositionDependent",!1),r(this,kt,{writable:!0,value:void 0}),this.actionType=gr,this.type=t}execute(t){t.type=this.type}hashCode(){if(void 0===ea(this,kt)){let t=Aa.initialize();t=Aa.update(t,this.actionType),t=Aa.update(t,this.type),$s(this,kt,Aa.finish(t,2))}return ea(this,kt)}equals(e){return this===e||e instanceof t&&this.type===e.type}toString(){return"type("+this.type+")"}},"LexerTypeAction"),xt),vr=(Gt=new WeakMap,Ea(Ht=class t{constructor(t){(0,js.Z)(this,"mode",void 0),(0,js.Z)(this,"actionType",void 0),(0,js.Z)(this,"isPositionDependent",!1),r(this,Gt,{writable:!0,value:void 0}),this.actionType=Dr,this.mode=t}execute(t){t.pushMode(this.mode)}hashCode(){if(void 0===ea(this,Gt)){let t=Aa.initialize();t=Aa.update(t,this.actionType),t=Aa.update(t,this.mode),$s(this,Gt,Aa.finish(t,2))}return ea(this,Gt)}equals(e){return this===e||e instanceof t&&this.mode===e.mode}toString(){return"pushMode("+this.mode+")"}},"LexerPushModeAction"),Ht),Br=(Ea(Ft=class{constructor(){(0,js.Z)(this,"actionType",void 0),(0,js.Z)(this,"isPositionDependent",!1),this.actionType=mr}equals(t){return t===this}hashCode(){return mr}execute(t){t.popMode()}toString(){return"popMode"}},"LexerPopModeAction"),(0,js.Z)(Ft,"instance",new Ft),Ft),yr=(Bt=new WeakMap,Ea(vt=class t{constructor(t){(0,js.Z)(this,"mode",void 0),(0,js.Z)(this,"actionType",void 0),(0,js.Z)(this,"isPositionDependent",!1),r(this,Bt,{writable:!0,value:void 0}),this.actionType=dr,this.mode=t}execute(t){t.mode=this.mode}hashCode(){if(void 0===ea(this,Bt)){let t=Aa.initialize();t=Aa.update(t,this.actionType),t=Aa.update(t,this.mode),$s(this,Bt,Aa.finish(t,2))}return ea(this,Bt)}equals(e){return this===e||e instanceof t&&this.mode===e.mode}toString(){return"mode("+this.mode+")"}},"LexerModeAction"),vt),fr=(yt=class t{constructor(t){(0,js.Z)(this,"data",[]),(0,js.Z)(this,"pos",0),(0,js.Z)(this,"deserializationOptions",void 0),(0,js.Z)(this,"actionFactories",void 0),t||(t={readOnly:!1,verifyATN:!0,generateRuleBypassTransitions:!1}),this.deserializationOptions=t}deserialize(t){this.data=t,this.checkVersion();const e=this.readATN();this.readStates(e),this.readRules(e),this.readModes(e);const s=[];return this.readSets(e,s),this.readEdges(e,s),this.readDecisions(e),this.readLexerActions(e),this.markPrecedenceDecisions(e),this.verifyATN(e),this.deserializationOptions.generateRuleBypassTransitions&&e.grammarType===ja.PARSER&&(this.generateRuleBypassTransitions(e),this.verifyATN(e)),e}checkVersion(){const e=this.data[this.pos++];if(e!==t.SERIALIZED_VERSION)throw new Error("Could not deserialize ATN with version "+e+" (expected "+t.SERIALIZED_VERSION+").")}readATN(){const t=this.data[this.pos++],e=this.data[this.pos++];return new ja(t,e)}readStates(t){let e,s;const a=[],r=[],i=this.data[this.pos++];for(let E=0;E<i;E++){const e=this.data[this.pos++];if(e===Va.INVALID_TYPE){t.addState(null);continue}const s=this.data[this.pos++],i=this.stateFactory(e,s);if(e===Va.LOOP_END){const t=this.data[this.pos++];a.push([i,t])}else if(i instanceof sr){const t=this.data[this.pos++];r.push([i,t])}t.addState(i)}for(e=0;e<a.length;e++){var c;const s=a[e];s[0].loopBackState=null!==(c=t.states[s[1]])&&void 0!==c?c:void 0}for(e=0;e<r.length;e++){const s=r[e];s[0].endState=t.states[s[1]]}const n=this.data[this.pos++];for(e=0;e<n;e++)s=this.data[this.pos++],t.states[s].nonGreedy=!0;const h=this.data[this.pos++];for(e=0;e<h;e++)s=this.data[this.pos++],t.states[s].isPrecedenceRule=!0}readRules(t){let e;const s=this.data[this.pos++];for(t.grammarType===ja.LEXER&&(t.ruleToTokenType=new Array(s),t.ruleToTokenType.fill(0)),t.ruleToStartState=new Array(s),t.ruleToStartState.fill(null),e=0;e<s;e++){const s=this.data[this.pos++];if(t.ruleToStartState[e]=t.states[s],t.grammarType===ja.LEXER){const s=this.data[this.pos++];t.ruleToTokenType[e]=s}}for(t.ruleToStopState=new Array(s),t.ruleToStopState.fill(null),e=0;e<t.states.length;e++){const s=t.states[e];s instanceof cr&&(t.ruleToStopState[s.ruleIndex]=s,t.ruleToStartState[s.ruleIndex].stopState=s)}}readModes(t){const e=this.data[this.pos++];for(let s=0;s<e;s++){const e=this.data[this.pos++];t.modeToStartState.push(t.states[e])}}readSets(t,e){const s=this.data[this.pos++];for(let a=0;a<s;a++){const t=new Sa;e.push(t);const s=this.data[this.pos++];0!==this.data[this.pos++]&&t.addOne(-1);for(let e=0;e<s;e++){const e=this.data[this.pos++],s=this.data[this.pos++];t.addRange(e,s)}}}readEdges(t,e){let s,a,r,i,c;const n=this.data[this.pos++];for(s=0;s<n;s++){const s=this.data[this.pos++],a=this.data[this.pos++],r=this.data[this.pos++],c=this.data[this.pos++],n=this.data[this.pos++],h=this.data[this.pos++];i=this.edgeFactory(t,r,a,c,n,h,e);t.states[s].addTransition(i)}for(s=0;s<t.states.length;s++)for(r=t.states[s],a=0;a<r.transitions.length;a++){const e=r.transitions[a];if(!(e instanceof lr))continue;let s=-1;t.ruleToStartState[e.target.ruleIndex].isPrecedenceRule&&0===e.precedence&&(s=e.target.ruleIndex),i=new ur(e.followState,s),t.ruleToStopState[e.target.ruleIndex].addTransition(i)}for(s=0;s<t.states.length;s++){if(r=t.states[s],r instanceof sr){if(!r.endState)throw new Error("IllegalState");if(r.endState.startState)throw new Error("IllegalState");r.endState.startState=r}if(r instanceof hr)for(a=0;a<r.transitions.length;a++)c=r.transitions[a].target,c instanceof or&&(c.loopBackState=r);else if(r instanceof Er)for(a=0;a<r.transitions.length;a++)c=r.transitions[a].target,c instanceof Tr&&(c.loopBackState=r)}}readDecisions(t){const e=this.data[this.pos++];for(let s=0;s<e;s++){const e=this.data[this.pos++],a=t.states[e];t.decisionToState.push(a),a.decision=s}}readLexerActions(t){if(t.grammarType===ja.LEXER){const e=this.data[this.pos++];t.lexerActions=[];for(let s=0;s<e;s++){const e=this.data[this.pos++],s=this.data[this.pos++],a=this.data[this.pos++];t.lexerActions.push(this.lexerActionFactory(e,s,a))}}}generateRuleBypassTransitions(t){let e;const s=t.ruleToStartState.length;for(e=0;e<s;e++)t.ruleToTokenType[e]=t.maxTokenType+e+1;for(e=0;e<s;e++)this.generateRuleBypassTransition(t,e)}generateRuleBypassTransition(t,e){let s,a;const r=new Ar;r.ruleIndex=e,t.addState(r);const i=new ar;i.ruleIndex=e,t.addState(i),r.endState=i,t.defineDecisionState(r),i.startState=r;let c=null,n=null;if(t.ruleToStartState[e].isPrecedenceRule){for(n=null,s=0;s<t.states.length;s++)if(a=t.states[s],this.stateIsEndStateFor(a,e)){n=a,c=a.loopBackState.transitions[0];break}if(null===c)throw new Error("Couldn't identify final state of the precedence rule prefix section.")}else n=t.ruleToStopState[e];for(s=0;s<t.states.length;s++){a=t.states[s];for(const t of a.transitions)t!==c&&t.target===n&&(t.target=i)}const h=t.ruleToStartState[e],E=h.transitions.length;for(;E>0;)r.addTransition(h.transitions[E-1]),h.transitions=h.transitions.slice(-1);t.ruleToStartState[e].addTransition(new ur(r)),n&&i.addTransition(new ur(n));const T=new tr;t.addState(T),T.addTransition(new Sr(i,t.ruleToTokenType[e])),r.addTransition(new ur(T))}stateIsEndStateFor(t,e){if(t.ruleIndex!==e)return null;if(!(t instanceof Tr))return null;const s=t.transitions[t.transitions.length-1].target;return s instanceof rr&&s.epsilonOnlyTransitions&&s.transitions[0].target instanceof cr?t:null}markPrecedenceDecisions(t){for(const e of t.states)if(e instanceof Tr&&t.ruleToStartState[e.ruleIndex].isPrecedenceRule){const t=e.transitions[e.transitions.length-1].target;t instanceof rr&&t.epsilonOnlyTransitions&&t.transitions[0].target instanceof cr&&(e.precedenceRuleDecision=!0)}}verifyATN(t){if(this.deserializationOptions.verifyATN)for(const e of t.states)if(null!==e)if(this.checkCondition(e.epsilonOnlyTransitions||e.transitions.length<=1),e instanceof or)this.checkCondition(null!==e.loopBackState);else if(e instanceof Tr)if(this.checkCondition(null!==e.loopBackState),this.checkCondition(2===e.transitions.length),e.transitions[0].target instanceof Rr)this.checkCondition(e.transitions[1].target instanceof rr),this.checkCondition(!e.nonGreedy);else{if(!(e.transitions[0].target instanceof rr))throw new Error("IllegalState");this.checkCondition(e.transitions[1].target instanceof Rr),this.checkCondition(e.nonGreedy)}else e instanceof Er?(this.checkCondition(1===e.transitions.length),this.checkCondition(e.transitions[0].target instanceof Tr)):e instanceof rr?this.checkCondition(null!==e.loopBackState):e instanceof ir?this.checkCondition(null!==e.stopState):e instanceof sr?this.checkCondition(null!==e.endState):e instanceof ar?this.checkCondition(null!==e.startState):e instanceof er?this.checkCondition(e.transitions.length<=1||e.decision>=0):this.checkCondition(e.transitions.length<=1||e instanceof cr)}checkCondition(t,e){if(!t)throw void 0!==e&&null!==e||(e="IllegalState"),e}edgeFactory(t,e,s,a,r,i,c){const n=t.states[s];switch(e){case la.EPSILON:return new ur(n);case la.RANGE:return new Or(n,0!==i?ca.EOF:a,r);case la.RULE:return new lr(t.states[a],r,i,n);case la.PREDICATE:return new Cr(n,a,r,0!==i);case la.PRECEDENCE:return new _r(n,a);case la.ATOM:return new Sr(n,0!==i?ca.EOF:a);case la.ACTION:return new Ir(n,a,r,0!==i);case la.SET:return new Oa(n,c[a]);case la.NOT_SET:return new Ia(n,c[a]);case la.WILDCARD:return new Nr(n);default:throw new Error("The specified transition type: "+e+" is not valid.")}}stateFactory(e,s){const a=t.stateTypeMapper.get(e);if(!a)throw new Error("The specified state type "+e+" is not valid.");const r=new a;return r.ruleIndex=s,r}lexerActionFactory(e,s,a){const r=t.lexerActionFactoryMapper.get(e);if(!r)throw new Error("The specified lexer action type "+e+" is not valid.");return r(s,a)}},Ea(yt,"ATNDeserializer"),(0,js.Z)(yt,"SERIALIZED_VERSION",4),(0,js.Z)(yt,"stateTypeMapper",new Map([[Va.INVALID_TYPE,void 0],[Va.BASIC,tr],[Va.RULE_START,ir],[Va.BLOCK_START,Ar],[Va.PLUS_BLOCK_START,or],[Va.STAR_BLOCK_START,Rr],[Va.TOKEN_START,nr],[Va.RULE_STOP,cr],[Va.BLOCK_END,ar],[Va.STAR_LOOP_BACK,Er],[Va.STAR_LOOP_ENTRY,Tr],[Va.PLUS_LOOP_BACK,hr],[Va.LOOP_END,rr]])),(0,js.Z)(yt,"lexerActionFactoryMapper",new Map([[Pr,t=>new kr(t)],[Mr,(t,e)=>new Hr(t,e)],[dr,t=>new yr(t)],[Ur,()=>Gr.instance],[mr,()=>Br.instance],[Dr,t=>new vr(t)],[pr,()=>xr.instance],[gr,t=>new Fr(t)]])),yt),Yr=(Yt=new WeakMap,Ea(ft=class t extends Fa{constructor(){super(...arguments),r(this,Yt,{writable:!0,value:[]})}clear(){super.clear(),$s(this,Yt,[])}get(t){return super.get(t)}set(t,e){const s=super.set(t,e);return void 0===s&&ea(this,Yt).push(t),s}setIfAbsent(t,e){const s=super.setIfAbsent(t,e);return void 0===s&&ea(this,Yt).push(t),s}values(){return{[Symbol.iterator]:()=>{let t=0;return{next:()=>t<ea(this,Yt).length?{done:!1,value:super.get(ea(this,Yt)[t++])}:{done:!0,value:void 0}}}}}keys(){return ea(this,Yt)[Symbol.iterator]()}equals(e){return e instanceof t&&super.equals(e)}},"OrderedHashMap"),ft),wr=(wt=class t{constructor(t){(0,js.Z)(this,"atn",void 0),(0,js.Z)(this,"data",[]),(0,js.Z)(this,"sets",new Yr(xa.instance)),(0,js.Z)(this,"nonGreedyStates",[]),(0,js.Z)(this,"precedenceStates",[]),this.atn=t}static getSerialized(e){return new t(e).serialize()}static serializeSets(t,e){t.push(e.length);for(const s of e){const e=s.contains(ca.EOF);e&&s.get(0).stop===ca.EOF?t.push(s.length-1):t.push(s.length),t.push(e?1:0);for(const a of s){if(a.start===ca.EOF){if(a.stop===ca.EOF)continue;t.push(0)}else t.push(a.start);t.push(a.stop)}}}serialize(){this.addPreamble();const t=this.addEdges();this.addNonGreedyStates(),this.addPrecedenceStates(),this.addRuleStatesAndLexerTokenTypes(),this.addModeStartStates();let e=null;return e=this.addSets(),this.addEdges(t,e),this.addDecisionStartStates(),this.addLexerActions(),this.data}addPreamble(){this.data.push(fr.SERIALIZED_VERSION),this.data.push(this.atn.grammarType),this.data.push(this.atn.maxTokenType)}addLexerActions(){if(this.atn.grammarType===ja.LEXER){this.data.push(this.atn.lexerActions.length);for(const t of this.atn.lexerActions)switch(this.data.push(t.actionType),t.actionType){case Pr:{const e=t.channel;this.data.push(e),this.data.push(0);break}case Mr:{const e=t.ruleIndex,s=t.actionIndex;this.data.push(e),this.data.push(s);break}case dr:{const e=t.mode;this.data.push(e),this.data.push(0);break}case Ur:case mr:this.data.push(0),this.data.push(0);break;case Dr:{const e=t.mode;this.data.push(e),this.data.push(0);break}case pr:this.data.push(0),this.data.push(0);break;case gr:{const e=t.type;this.data.push(e),this.data.push(0);break}default:throw new Error("The specified lexer action type ".concat(t.actionType," is not valid."))}}}addDecisionStartStates(){this.data.push(this.atn.decisionToState.length);for(const t of this.atn.decisionToState)this.data.push(t.stateNumber)}addEdges(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];switch(e.length){case 0:{let t=0;this.data.push(this.atn.states.length);for(const e of this.atn.states){if(null===e){this.data.push(Va.INVALID_TYPE);continue}const s=e.constructor.stateType;e instanceof er&&e.nonGreedy&&this.nonGreedyStates.push(e.stateNumber),e instanceof ir&&e.isLeftRecursiveRule&&this.precedenceStates.push(e.stateNumber),this.data.push(s),this.data.push(e.ruleIndex),e.constructor.stateType===Va.LOOP_END?this.data.push(e.loopBackState.stateNumber):e instanceof sr&&this.data.push(e.endState.stateNumber),e.constructor.stateType!==Va.RULE_STOP&&(t+=e.transitions.length);for(const t of e.transitions){const e=t.transitionType;if(e===la.SET||e===la.NOT_SET){const e=t;this.sets.set(e.set,!0)}}}return t}case 2:{const[t,s]=e;this.data.push(t);for(const e of this.atn.states)if(null!==e&&e.constructor.stateType!==Va.RULE_STOP)for(const t of e.transitions){if(null===this.atn.states[t.target.stateNumber])throw new Error("Cannot serialize a transition to a removed state.");const a=e.stateNumber;let r=t.target.stateNumber;const i=t.transitionType;let c=0,n=0,h=0;switch(i){case la.RULE:r=t.followState.stateNumber,c=t.target.stateNumber,n=t.ruleIndex,h=t.precedence;break;case la.PRECEDENCE:c=t.precedence;break;case la.PREDICATE:{const e=t;c=e.ruleIndex,n=e.predIndex,h=e.isCtxDependent?1:0;break}case la.RANGE:c=t.start,n=t.stop,c===ca.EOF&&(c=0,h=1);break;case la.ATOM:c=t.labelValue,c===ca.EOF&&(c=0,h=1);break;case la.ACTION:{const e=t;c=e.ruleIndex,n=e.actionIndex,h=e.isCtxDependent?1:0;break}case la.SET:case la.NOT_SET:c=s.get(t.set)}this.data.push(a),this.data.push(r),this.data.push(i),this.data.push(c),this.data.push(n),this.data.push(h)}break}default:throw new Error("Invalid number of arguments")}}addSets(){t.serializeSets(this.data,[...this.sets.keys()]);const e=new Map;let s=0;for(const t of this.sets.keys())e.set(t,s++);return e}addModeStartStates(){const t=this.atn.modeToStartState.length;if(this.data.push(t),t>0)for(const e of this.atn.modeToStartState)this.data.push(e.stateNumber)}addRuleStatesAndLexerTokenTypes(){const t=this.atn.ruleToStartState.length;this.data.push(t);for(let e=0;e<t;e++){const t=this.atn.ruleToStartState[e];this.data.push(t.stateNumber),this.atn.grammarType===ja.LEXER&&this.data.push(this.atn.ruleToTokenType[e])}}addPrecedenceStates(){this.data.push(this.precedenceStates.length);for(const t of this.precedenceStates)this.data.push(t)}addNonGreedyStates(){this.data.push(this.nonGreedyStates.length);for(const t of this.nonGreedyStates)this.data.push(t)}},Ea(wt,"ATNSerializer"),bt=class t{constructor(t){(0,js.Z)(this,"stateNumber",-1),(0,js.Z)(this,"configs",void 0),(0,js.Z)(this,"edges",[]),(0,js.Z)(this,"isAcceptState",!1),(0,js.Z)(this,"prediction",-1),(0,js.Z)(this,"lexerActionExecutor",null),(0,js.Z)(this,"requiresFullContext",!1),(0,js.Z)(this,"predicates",null),t&&(this.configs=t)}static fromState(e){const s=new t;return s.stateNumber=e,s}static fromConfigs(e){return new t(e)}static hashCode(t){return t.configs.hashCode()}static equals(t,e){return t.configs.equals(e.configs)}toString(){let t="";return t+=this.stateNumber,t+=":",t+=this.configs?this.configs.toString():"",this.isAcceptState&&(t+="=>",this.predicates?t+=La(this.predicates):t+=this.prediction),t.toString()}},Ea(bt,"DFAState"),bt),br=(Ea(Wt=class{constructor(t,e){return(0,js.Z)(this,"atn",void 0),(0,js.Z)(this,"sharedContextCache",void 0),this.atn=t,this.sharedContextCache=e,this}getCachedContext(t){if(!this.sharedContextCache)return t;const e=new Fa(xa.instance);return Ba(t,this.sharedContextCache,e)}},"ATNSimulator"),(0,js.Z)(Wt,"ERROR",wr.fromState(2147483647)),Wt),Wr=(Ea(Vt=class t{static createWithCodePoint(e,s){return t.createWithCodePointRange(e,s,s)}static createWithCodePointRange(t,e,s){return e===s?new Sr(t,e):new Or(t,e,s)}},"CodePointTransitions"),Ea(Xt=class{constructor(t){(0,js.Z)(this,"decision",0),(0,js.Z)(this,"invocations",0),(0,js.Z)(this,"timeInPrediction",0),(0,js.Z)(this,"sllTotalLook",0),(0,js.Z)(this,"sllMinLook",0),(0,js.Z)(this,"sllMaxLook",0),(0,js.Z)(this,"sllMaxLookEvent",void 0),(0,js.Z)(this,"llTotalLook",0),(0,js.Z)(this,"llMinLook",0),(0,js.Z)(this,"llMaxLook",0),(0,js.Z)(this,"llMaxLookEvent",void 0),(0,js.Z)(this,"contextSensitivities",void 0),(0,js.Z)(this,"errors",void 0),(0,js.Z)(this,"ambiguities",void 0),(0,js.Z)(this,"predicateEvals",void 0),(0,js.Z)(this,"sllATNTransitions",0),(0,js.Z)(this,"sllDFATransitions",0),(0,js.Z)(this,"llFallback",0),(0,js.Z)(this,"llATNTransitions",0),(0,js.Z)(this,"llDFATransitions",0),this.decision=t,this.contextSensitivities=[],this.errors=[],this.ambiguities=[],this.predicateEvals=[]}toString1(){return"{decision="+this.decision+", contextSensitivities="+this.contextSensitivities.length+", errors="+this.errors.length+", ambiguities="+this.ambiguities.length+", sllLookahead="+this.sllTotalLook+", sllATNTransitions="+this.sllATNTransitions+", sllDFATransitions="+this.sllDFATransitions+", llFallback="+this.llFallback+", llLookahead="+this.llTotalLook+", llATNTransitions="+this.llATNTransitions+"}"}},"DecisionInfo"),Xt),Vr=(Ea(Kt=class t extends Za{constructor(e,s,a,r){var i;return super(e,s,null!==a&&void 0!==a?a:e.context,a?Xa.NONE:e.semanticContext),(0,js.Z)(this,"lexerActionExecutor",void 0),(0,js.Z)(this,"passedThroughNonGreedyDecision",void 0),this.lexerActionExecutor=a?r:null!==(i=e.lexerActionExecutor)&&void 0!==i?i:null,this.passedThroughNonGreedyDecision=t.checkNonGreedyDecision(e,this.state),this}static createWithExecutor(e,s,a){return new t(e,s,e.context,a)}static createWithConfig(e,s,a){return new t(s,e,null!==a&&void 0!==a?a:null,s.lexerActionExecutor)}static createWithContext(e,s,a){return new t({alt:s},e,a,null)}static checkNonGreedyDecision(t,e){return t.passedThroughNonGreedyDecision||"nonGreedy"in e&&e.nonGreedy}hashCode(){if(void 0===this.cachedHashCode){let t=Aa.initialize(7);t=Aa.update(t,this.state.stateNumber),t=Aa.update(t,this.alt),t=Aa.updateFromComparable(t,this.context),t=Aa.updateFromComparable(t,this.semanticContext),t=Aa.update(t,this.passedThroughNonGreedyDecision?1:0),t=Aa.updateFromComparable(t,this.lexerActionExecutor),t=Aa.finish(t,6),this.cachedHashCode=t}return this.cachedHashCode}equals(t){return this===t||this.passedThroughNonGreedyDecision===t.passedThroughNonGreedyDecision&&(this.lexerActionExecutor&&t.lexerActionExecutor?this.lexerActionExecutor.equals(t.lexerActionExecutor):!t.lexerActionExecutor)&&super.equals(t)}},"LexerATNConfig"),Kt),Xr=(Ea(Qt=class{syntaxError(t,e,s,a,r,i){}reportAmbiguity(t,e,s,a,r,i,c){}reportAttemptingFullContext(t,e,s,a,r,i){}reportContextSensitivity(t,e,s,a,r,i){}},"BaseErrorListener"),Qt),Kr=(Ea(Jt=class extends Xr{syntaxError(t,e,s,a,r,i){console.error("line "+s+":"+a+" "+r)}},"ConsoleErrorListener"),(0,js.Z)(Jt,"instance",new Jt),Jt),Qr=(Zt=class extends Xr{constructor(t){return super(),this.delegates=t,this}syntaxError(t,e,s,a,r,i){this.delegates.forEach((c=>{c.syntaxError(t,e,s,a,r,i)}))}reportAmbiguity(t,e,s,a,r,i,c){this.delegates.forEach((n=>{n.reportAmbiguity(t,e,s,a,r,i,c)}))}reportAttemptingFullContext(t,e,s,a,r,i){this.delegates.forEach((c=>{c.reportAttemptingFullContext(t,e,s,a,r,i)}))}reportContextSensitivity(t,e,s,a,r,i){this.delegates.forEach((c=>{c.reportContextSensitivity(t,e,s,a,r,i)}))}},Ea(Zt,"ProxyErrorListener"),Zt),Jr=(jt=new WeakMap,zt=new WeakMap,qt=class t{constructor(){(0,js.Z)(this,"interpreter",void 0),r(this,jt,{writable:!0,value:[Kr.instance]}),r(this,zt,{writable:!0,value:-1})}checkVersion(t){const e="4.13.1";e!==t&&console.error("ANTLR runtime and generated code versions disagree: "+e+"!="+t)}addErrorListener(t){ea(this,jt).push(t)}removeErrorListeners(){$s(this,jt,[])}removeErrorListener(t){for(let e=0;e<ea(this,jt).length;e++)if(ea(this,jt)[e]===t)return void ea(this,jt).splice(e,1)}getErrorListeners(){return ea(this,jt)}getTokenTypeMap(){const e=this.vocabulary;let s=t.tokenTypeMapCache.get(e);if(!s){s=new Map;for(let t=0;t<=this.atn.maxTokenType;t++){const a=e.getLiteralName(t);a&&s.set(a,t);const r=e.getSymbolicName(t);r&&s.set(r,t)}s.set("EOF",ca.EOF),t.tokenTypeMapCache.set(e,s)}return s}getRuleIndexMap(){const e=this.ruleNames;let s=t.ruleIndexMapCache.get(e);return s||(s=new Map,e.forEach(((t,e)=>s.set(t,e))),t.ruleIndexMapCache.set(e,s)),s}getTokenType(t){const e=this.getTokenTypeMap().get(t);return e||ca.INVALID_TYPE}getErrorHeader(t){var e,s;return"line "+(null===(e=t.offendingToken)||void 0===e?void 0:e.line)+":"+(null===(s=t.offendingToken)||void 0===s?void 0:s.column)}get errorListenerDispatch(){return new Qr(ea(this,jt))}sempred(t,e,s){return!0}precpred(t,e){return!0}action(t,e,s){}get atn(){return this.interpreter.atn}get state(){return ea(this,zt)}set state(t){$s(this,zt,t)}getSerializedATN(){throw new Error("there is no serialized ATN")}getParseInfo(){return null}},Ea(qt,"Recognizer"),(0,js.Z)(qt,"EOF",-1),(0,js.Z)(qt,"tokenTypeMapCache",new Map),(0,js.Z)(qt,"ruleIndexMapCache",new Map),qt),Zr=(te=new WeakMap,$t=class t{constructor(t){var e,s,a,i,c,n;(0,js.Z)(this,"source",void 0),(0,js.Z)(this,"tokenIndex",void 0),(0,js.Z)(this,"start",void 0),(0,js.Z)(this,"stop",void 0),(0,js.Z)(this,"type",void 0),(0,js.Z)(this,"line",void 0),(0,js.Z)(this,"column",void 0),(0,js.Z)(this,"channel",void 0),r(this,te,{writable:!0,value:void 0}),this.type=t.type,this.source=t.source,this.tokenIndex=null!==(e=t.tokenIndex)&&void 0!==e?e:-1,this.line=null!==(s=t.line)&&void 0!==s?s:0,this.column=null!==(a=t.column)&&void 0!==a?a:-1,this.channel=null!==(i=t.channel)&&void 0!==i?i:ca.DEFAULT_CHANNEL,this.start=null!==(c=t.start)&&void 0!==c?c:0,this.stop=null!==(n=t.stop)&&void 0!==n?n:0,$s(this,te,t.text),null!==t.source[0]&&(this.line=t.source[0].line,this.column=t.source[0].column)}static fromToken(e){let s;return s="source"in e?e.source:[e.tokenSource,e.inputStream],new t({type:e.type,line:e.line,tokenIndex:e.tokenIndex,column:e.column,channel:e.channel,start:e.start,stop:e.stop,text:e.text,source:s})}static fromType(e,s){return new t({type:e,text:s,source:t.EMPTY_SOURCE})}static fromSource(e,s,a,r,i){return new t({type:s,channel:a,start:r,stop:i,source:e})}get tokenSource(){return this.source[0]}get inputStream(){return this.source[1]}clone(){return new t({source:this.source,type:this.type,channel:this.channel,start:this.start,stop:this.stop,tokenIndex:this.tokenIndex,line:this.line,column:this.column,text:ea(this,te)})}toString(t){let e="";this.channel>0&&(e=",channel="+this.channel);let s=this.text;s?(s=s.replace(/\n/g,"\\n"),s=s.replace(/\r/g,"\\r"),s=s.replace(/\t/g,"\\t")):s="<no text>";let a=String(this.type);var r;t&&(a=null!==(r=t.vocabulary.getDisplayName(this.type))&&void 0!==r?r:"<unknown>");return"[@"+this.tokenIndex+","+this.start+":"+this.stop+"='"+s+"',<"+a+">"+e+","+this.line+":"+this.column+"]"}get text(){if(ea(this,te))return ea(this,te);const t=this.inputStream;if(!t)return;const e=t.size;return this.start<e&&this.stop<e?t.getTextFromRange(this.start,this.stop):"<EOF>"}set text(t){$s(this,te,t)}setText(t){$s(this,te,t)}setType(t){this.type=t}setLine(t){this.line=t}setCharPositionInLine(t){this.column=t}setChannel(t){this.channel=t}setTokenIndex(t){this.tokenIndex=t}},Ea($t,"CommonToken"),(0,js.Z)($t,"EMPTY_SOURCE",[null,null]),$t),qr=(Ea(ee=class{constructor(t){(0,js.Z)(this,"copyText",!1),this.copyText=null!==t&&void 0!==t&&t}create(t,e,s,a,r,i,c,n){const h=Zr.fromSource(t,e,a,r,i);return h.line=c,h.column=n,s?h.text=s:this.copyText&&null!==t[1]&&(h.text=t[1].getTextFromRange(r,i)),h}},"CommonTokenFactory"),(0,js.Z)(ee,"DEFAULT",new ee),ee),jr=(se=class t extends Error{constructor(e){super(e.message),(0,js.Z)(this,"ctx",void 0),(0,js.Z)(this,"offendingToken",null),(0,js.Z)(this,"offendingState",-1),(0,js.Z)(this,"recognizer",void 0),(0,js.Z)(this,"input",void 0),Error.captureStackTrace&&Error.captureStackTrace(this,t),this.message=e.message,this.recognizer=e.recognizer,this.input=e.input,this.ctx=e.ctx,null!==this.recognizer&&(this.offendingState=this.recognizer.state)}getExpectedTokens(){return null!==this.recognizer&&null!==this.ctx?this.recognizer.atn.getExpectedTokens(this.offendingState,this.ctx):null}toString(){return this.message}},Ea(se,"RecognitionException"),se),zr=(Ea(ae=class extends jr{constructor(t,e,s,a){super({message:"",recognizer:t,input:e,ctx:null}),(0,js.Z)(this,"startIndex",void 0),(0,js.Z)(this,"deadEndConfigs",void 0),this.startIndex=s,this.deadEndConfigs=a}toString(){let t="";return this.input&&this.startIndex>=0&&this.startIndex<this.input.size&&(t=this.input.getTextFromRange(this.startIndex,this.startIndex)),"LexerNoViableAltException"+t}},"LexerNoViableAltException"),ae),$r=(ie=new WeakMap,ce=new WeakMap,ne=new WeakMap,he=new WeakMap,Ee=new WeakMap,Te=new WeakMap,re=class t extends Jr{constructor(e,s){super(),(0,js.Z)(this,"options",{minDFAEdge:0,maxDFAEdge:256,minCodePoint:0,maxCodePoint:1114111}),(0,js.Z)(this,"tokenStartCharIndex",-1),(0,js.Z)(this,"channel",0),(0,js.Z)(this,"type",0),(0,js.Z)(this,"mode",t.DEFAULT_MODE),(0,js.Z)(this,"currentTokenColumn",0),(0,js.Z)(this,"currentTokenStartLine",0),r(this,ie,{writable:!0,value:void 0}),r(this,ce,{writable:!0,value:null}),r(this,ne,{writable:!0,value:!1}),r(this,he,{writable:!0,value:[]}),r(this,Ee,{writable:!0,value:void 0}),r(this,Te,{writable:!0,value:void 0}),this.options={...this.options,...s},$s(this,ie,e),$s(this,Te,qr.DEFAULT)}reset(){(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&ea(this,ie).seek(0),$s(this,ce,null),this.type=ca.INVALID_TYPE,this.channel=ca.DEFAULT_CHANNEL,this.tokenStartCharIndex=-1,this.currentTokenColumn=-1,this.currentTokenStartLine=-1,$s(this,Ee,void 0),$s(this,ne,!1),this.mode=t.DEFAULT_MODE,$s(this,he,[]),this.interpreter.reset()}nextToken(){if(null===ea(this,ie))throw new Error("nextToken requires a non-null input stream.");const e=ea(this,ie).mark();try{for(;;){if(ea(this,ne))return this.emitEOF(),ea(this,ce);$s(this,ce,null),this.channel=ca.DEFAULT_CHANNEL,this.tokenStartCharIndex=ea(this,ie).index,this.currentTokenColumn=this.interpreter.column,this.currentTokenStartLine=this.interpreter.line,$s(this,Ee,void 0);let e=!1;for(;;){this.type=ca.INVALID_TYPE;let a=t.SKIP;try{a=this.interpreter.match(ea(this,ie),this.mode)}catch(s){if(!(s instanceof zr))throw s;this.notifyListeners(s),this.recover(s)}if(ea(this,ie).LA(1)===ca.EOF&&$s(this,ne,!0),this.type===ca.INVALID_TYPE&&(this.type=a),this.type===t.SKIP){e=!0;break}if(this.type!==t.MORE)break}if(!e)return null===ea(this,ce)&&this.emit(),ea(this,ce)}}finally{ea(this,ie).release(e)}}skip(){this.type=t.SKIP}more(){this.type=t.MORE}pushMode(t){hi.debug&&console.log("pushMode "+t),ea(this,he).push(this.mode),this.mode=t}popMode(){if(0===ea(this,he).length)throw new Error("Empty Stack");return hi.debug&&console.log("popMode back to "+ea(this,he).slice(0,-1)),this.mode=ea(this,he).pop(),this.mode}get modeStack(){return ea(this,he)}emitToken(t){$s(this,ce,t)}emit(){const t=ea(this,Te).create([this,ea(this,ie)],this.type,ea(this,Ee),this.channel,this.tokenStartCharIndex,this.getCharIndex()-1,this.currentTokenStartLine,this.currentTokenColumn);return this.emitToken(t),t}emitEOF(){const t=ea(this,Te).create([this,ea(this,ie)],ca.EOF,void 0,ca.DEFAULT_CHANNEL,ea(this,ie).index,ea(this,ie).index-1,this.line,this.column);return this.emitToken(t),t}getCharIndex(){return ea(this,ie).index}getAllTokens(){const t=[];let e=this.nextToken();for(;e.type!==ca.EOF;)t.push(e),e=this.nextToken();return t}notifyListeners(t){const e=this.tokenStartCharIndex,s=ea(this,ie).index,a=ea(this,ie).getTextFromRange(e,s),r="token recognition error at: '"+this.getErrorDisplay(a)+"'";this.errorListenerDispatch.syntaxError(this,null,this.currentTokenStartLine,this.currentTokenColumn,r,t)}getErrorDisplay(t){return t}getErrorDisplayForChar(t){return t.charCodeAt(0)===ca.EOF?"<EOF>":"\n"===t?"\\n":"\t"===t?"\\t":"\r"===t?"\\r":t}getCharErrorDisplay(t){return"'"+this.getErrorDisplayForChar(t)+"'"}recover(t){ea(this,ie).LA(1)!==ca.EOF&&(t instanceof zr?this.interpreter.consume(ea(this,ie)):ea(this,ie).consume())}get inputStream(){return ea(this,ie)}set inputStream(t){this.reset(!1),$s(this,ie,t)}set tokenFactory(t){$s(this,Te,t)}get tokenFactory(){return ea(this,Te)}get sourceName(){return ea(this,ie).getSourceName()}get line(){return this.interpreter.line}set line(t){this.interpreter.line=t}get column(){return this.interpreter.column}set column(t){this.interpreter.column=t}get text(){return ea(this,Ee)?ea(this,Ee):this.interpreter.getText(ea(this,ie))}set text(t){$s(this,Ee,t)}},Ea(re,"Lexer"),(0,js.Z)(re,"DEFAULT_MODE",0),(0,js.Z)(re,"MORE",-2),(0,js.Z)(re,"SKIP",-3),(0,js.Z)(re,"DEFAULT_TOKEN_CHANNEL",ca.DEFAULT_CHANNEL),(0,js.Z)(re,"HIDDEN",ca.HIDDEN_CHANNEL),re),ti=(oe=class t extends Error{constructor(e){super(),Error.captureStackTrace(this,t)}},Ea(oe,"ParseCancellationException"),oe),ei=(Re=class{static parseInterpreterData(t){const e=[],s=[],a=[],r=[],i=[],c=t.split("\n");let n=0,h=c[n++];if("token literal names:"!==h)throw new Error("Unexpected data entry");for(;;){if(h=c[n++],0===h.length)break;r.push("null"===h?null:h)}if(h=c[n++],"token symbolic names:"!==h)throw new Error("Unexpected data entry");for(;;){if(h=c[n++],0===h.length)break;i.push("null"===h?null:h)}if(h=c[n++],"rule names:"!==h)throw new Error("Unexpected data entry");for(;;){if(h=c[n++],0===h.length)break;e.push(h)}if(h=c[n++],"channel names:"===h){for(;;){if(h=c[n++],0===h.length)break;s.push(h)}if(h=c[n++],"mode names:"!==h)throw new Error("Unexpected data entry");for(;;){if(h=c[n++],0===h.length)break;a.push(h)}}if(h=c[n++],"atn:"!==h)throw new Error("Unexpected data entry");h=c[n++];const E=h.split(",");let T;const o=[];for(let R=0;R<E.length;++R){const t=E[R];T=t.startsWith("[")?Number(t.substring(1).trim()):t.endsWith("]")?Number(t.substring(0,t.length-1).trim()):Number(t.trim()),o[R]=T}return{atn:(new fr).deserialize(o),vocabulary:new Ra(r,i,[]),ruleNames:e,channels:s.length>0?s:void 0,modes:a.length>0?a:void 0}}},Ea(Re,"InterpreterDataReader"),Se=new WeakMap,Ae=class t extends Ha{constructor(){super(...arguments),r(this,Se,{writable:!0,value:[]})}getOrAdd(t){const e=this.size,s=super.getOrAdd(t);return this.size>e&&ea(this,Se).push(t),s}equals(e){return e instanceof t&&super.equals(e)}add(t){return!!super.add(t)&&(ea(this,Se).push(t),!0)}clear(){super.clear(),$s(this,Se,[])}*[Symbol.iterator](){yield*ea(this,Se)}toArray(){return ea(this,Se).slice(0)}},Ea(Ae,"OrderedHashSet"),Ae),si=(Ea(le=class extends $a{constructor(){super(),this.configLookup=new ei}},"OrderedATNConfigSet"),le),ai=(Ie=new WeakMap,Ea(Oe=class t{constructor(t,e){(0,js.Z)(this,"offset",void 0),(0,js.Z)(this,"action",void 0),(0,js.Z)(this,"actionType",void 0),(0,js.Z)(this,"isPositionDependent",!0),r(this,Ie,{writable:!0,value:void 0}),this.actionType=e.actionType,this.offset=t,this.action=e}execute(t){this.action.execute(t)}hashCode(){if(void 0===ea(this,Ie)){let t=Aa.initialize();t=Aa.update(t,this.offset),t=Aa.updateFromComparable(t,this.action),$s(this,Ie,Aa.finish(t,2))}return ea(this,Ie)}equals(e){return this===e||e instanceof t&&(this.offset===e.offset&&this.action===e.action)}},"LexerIndexedCustomAction"),Oe),ri=(Ne=new WeakMap,ue=class t{constructor(t){return(0,js.Z)(this,"lexerActions",void 0),(0,js.Z)(this,"actionType",void 0),(0,js.Z)(this,"isPositionDependent",!1),r(this,Ne,{writable:!0,value:void 0}),this.actionType=-1,this.lexerActions=null!==t&&void 0!==t?t:[],this}static append(e,s){if(null===e)return new t([s]);const a=e.lexerActions.concat([s]);return new t(a)}fixOffsetBeforeMatch(e){let s=null;for(let t=0;t<this.lexerActions.length;t++)!this.lexerActions[t].isPositionDependent||this.lexerActions[t]instanceof ai||(null===s&&(s=this.lexerActions.concat([])),s[t]=new ai(e,this.lexerActions[t]));return null===s?this:new t(s)}execute(t,e,s){if(void 0===e||void 0===s)return;let a=!1;const r=e.index;try{for(const i of this.lexerActions){let c=i;if(i instanceof ai){const t=i.offset;e.seek(s+t),c=i.action,a=s+t!==r}else i.isPositionDependent&&(e.seek(r),a=!1);c.execute(t)}}finally{a&&e.seek(r)}}hashCode(){if(void 0===ea(this,Ne)){let t=Aa.initialize(7);for(const e of this.lexerActions)t=Aa.update(t,e.hashCode());$s(this,Ne,Aa.finish(t,this.lexerActions.length))}return ea(this,Ne)}equals(t){return this===t||ea(this,Ne)===ea(t,Ne)&&(this.lexerActions.length===t.lexerActions.length&&this.lexerActions.every(((e,s)=>e.equals(t.lexerActions[s]))))}},Ea(ue,"LexerActionExecutor"),ue),ii=(Le=class{constructor(t,e){(0,js.Z)(this,"dfa",void 0),(0,js.Z)(this,"vocabulary",void 0),this.dfa=t,this.vocabulary=e}toString(){if(!this.dfa.s0)return"";let t="";const e=this.dfa.getStates();for(const s of e){let e=0;e=s.edges.length;for(let a=0;a<e;a++){const e=s.edges[a];if(e&&2147483647!==e.stateNumber){t+=this.getStateString(s);t+="-",t+=this.getEdgeLabel(a),t+="->",t+=this.getStateString(e),t+="\n"}}}return t}getEdgeLabel(t){const e=this.vocabulary.getDisplayName(t-1);return"".concat(e)}getStateString(t){const e=t.stateNumber,s=(t.isAcceptState?":":"")+"s"+e+(t.requiresFullContext?"^":"");return t.isAcceptState?null!==t.predicates?"".concat(s,"=>").concat(t.predicates.toString()):"".concat(s,"=>").concat(t.prediction):"".concat(s)}},Ea(Le,"DFASerializer"),Le),ci=(Ce=class extends ii{constructor(t){super(t,Ra.EMPTY_VOCABULARY),(0,js.Z)(this,"getEdgeLabel",(t=>"'"+String.fromCharCode(t)+"'"))}},Ea(Ce,"LexerDFASerializer"),Ce),ni=(Pe=new WeakMap,_e=class{constructor(t,e){(0,js.Z)(this,"s0",void 0),(0,js.Z)(this,"decision",void 0),(0,js.Z)(this,"atnStartState",void 0),(0,js.Z)(this,"isPrecedenceDfa",void 0),r(this,Pe,{writable:!0,value:new Map}),(0,js.Z)(this,Symbol.iterator,(()=>ea(this,Pe).values()[Symbol.iterator]())),(0,js.Z)(this,"getPrecedenceStartState",(t=>{if(!this.isPrecedenceDfa)throw new Error("Only precedence DFAs may contain a precedence start state.");if(!(!this.s0||!this.s0.edges||t<0||t>=this.s0.edges.length))return this.s0.edges[t]})),(0,js.Z)(this,"setPrecedenceStartState",((t,e)=>{if(!this.isPrecedenceDfa)throw new Error("Only precedence DFAs may contain a precedence start state.");t<0||!this.s0||(this.s0.edges[t]=e)})),this.atnStartState=t,this.decision=null!==e&&void 0!==e?e:0;let s=!1;t instanceof Tr&&t.precedenceRuleDecision&&(s=!0,this.s0=wr.fromState(-1)),this.isPrecedenceDfa=s}getStates(){const t=[...ea(this,Pe).values()];return t.sort(((t,e)=>t.stateNumber-e.stateNumber)),t}getState(t){var e;return null!==(e=ea(this,Pe).get(t.configs.hashCode()))&&void 0!==e?e:null}getStateForConfigs(t){var e;return null!==(e=ea(this,Pe).get(t.hashCode()))&&void 0!==e?e:null}addState(t){const e=t.configs.hashCode();ea(this,Pe).has(e)||(ea(this,Pe).set(e,t),t.stateNumber=ea(this,Pe).size-1)}toString(t){var e;if(!t)return this.toString(Ra.EMPTY_VOCABULARY);if(!this.s0)return"";return null!==(e=new ii(this,t).toString())&&void 0!==e?e:""}toLexerString(){var t;if(!this.s0)return"";return null!==(t=new ci(this).toString())&&void 0!==t?t:""}get length(){return ea(this,Pe).size}},Ea(_e,"DFA"),_e),hi=(de=new WeakMap,Ue=new WeakMap,me=new WeakMap,Me=class t extends br{constructor(t,e,s,a){super(e,a),(0,js.Z)(this,"decisionToDFA",void 0),(0,js.Z)(this,"recognizer",null),(0,js.Z)(this,"startIndex",-1),(0,js.Z)(this,"line",1),(0,js.Z)(this,"column",0),(0,js.Z)(this,"mode",$r.DEFAULT_MODE),r(this,de,{writable:!0,value:void 0}),r(this,Ue,{writable:!0,value:void 0}),r(this,me,{writable:!0,value:void 0}),this.decisionToDFA=s,this.recognizer=t,t&&$s(this,Ue,t.options)}match(t,e){this.mode=e;const s=t.mark();try{this.startIndex=t.index,$s(this,de,void 0);const s=this.decisionToDFA[e];return s.s0?this.execATN(t,s.s0):this.matchATN(t)}finally{t.release(s)}}reset(){$s(this,de,void 0),this.startIndex=-1,this.line=1,this.column=0,this.mode=$r.DEFAULT_MODE}clearDFA(){for(let t=0;t<this.decisionToDFA.length;t++)this.decisionToDFA[t]=new ni(this.atn.getDecisionState(t),t)}getDFA(t){return this.decisionToDFA[t]}getText(t){return t.getTextFromRange(this.startIndex,t.index-1)}consume(t){t.LA(1)==="\n".charCodeAt(0)?(this.line+=1,this.column=0):this.column+=1,t.consume()}getTokenName(t){return t===ca.EOF?"EOF":"'"+String.fromCharCode(t)+"'"}matchATN(e){const s=this.atn.modeToStartState[this.mode];t.debug&&console.log("matchATN mode "+this.mode+" start: "+s);const a=this.mode,r=this.computeStartState(e,s),i=r.hasSemanticContext;r.hasSemanticContext=!1;const c=this.addDFAState(r);i||(this.decisionToDFA[this.mode].s0=c);const n=this.execATN(e,c);return t.debug&&console.log("DFA after matchATN: "+this.decisionToDFA[a].toLexerString()),n}execATN(e,s){t.debug&&console.log("start state closure="+s.configs),s.isAcceptState&&this.captureSimState(e,s);let a=e.LA(1);for(;;){t.debug&&console.log("execATN loop starting closure: "+s.configs);let r=this.getExistingTargetState(s,a);if(r||(r=this.computeTargetState(e,s,a)),r===br.ERROR)break;if(a!==ca.EOF&&this.consume(e),r.isAcceptState&&(this.captureSimState(e,r),a===ca.EOF))break;a=e.LA(1),s=r}return this.failOrAccept(e,s.configs,a)}getExistingTargetState(e,s){if(s>=ea(this,Ue).minDFAEdge&&s<=ea(this,Ue).maxDFAEdge){const a=e.edges[s-ea(this,Ue).minDFAEdge];return t.debug&&a&&console.log("reuse state "+e.stateNumber+" edge to "+a.stateNumber),a}}computeTargetState(t,e,s){const a=new si;return this.getReachableConfigSet(t,e.configs,a,s),0===a.length?(a.hasSemanticContext||this.addDFAEdge(e,s,br.ERROR),br.ERROR):this.addDFAEdge(e,s,null,a)}failOrAccept(t,e,s){var a;if(null!==(a=ea(this,de))&&void 0!==a&&a.dfaState){const{dfaState:e,index:s,line:a,column:r}=ea(this,de);return this.accept(t,e.lexerActionExecutor,this.startIndex,s,a,r),e.prediction}if(s===ca.EOF&&t.index===this.startIndex)return ca.EOF;throw new zr(this.recognizer,t,this.startIndex,e)}getReachableConfigSet(e,s,a,r){let i=ja.INVALID_ALT_NUMBER;for(const c of s){const s=c.alt===i;if(!s||!c.passedThroughNonGreedyDecision){t.debug&&console.log("testing %s at %s\n",this.getTokenName(r),c.toString(this.recognizer,!0));for(const t of c.state.transitions){const n=this.getReachableTarget(t,r);if(n){let t=c.lexerActionExecutor;t&&(t=t.fixOffsetBeforeMatch(e.index-this.startIndex));const h=r===ca.EOF,E=Vr.createWithExecutor(c,n,t);this.closure(e,E,a,s,!0,h)&&(i=c.alt)}}}}}accept(e,s,a,r,i,c){t.debug&&console.log("ACTION %s\n",s),e.seek(r),this.line=i,this.column=c,s&&this.recognizer&&s.execute(this.recognizer,e,a)}getReachableTarget(t,e){return t.matches(e,ea(this,Ue).minCodePoint,ea(this,Ue).maxCodePoint)?t.target:void 0}computeStartState(t,e){const s=ua.EMPTY,a=new si;for(let r=0;r<e.transitions.length;r++){const i=e.transitions[r].target,c=Vr.createWithContext(i,r+1,s);this.closure(t,c,a,!1,!1,!1)}return a}closure(e,s,a,r,i,c){let n=null;if(t.debug&&console.log("closure("+s.toString(this.recognizer,!0)+")"),s.state.constructor.stateType===Va.RULE_STOP){if(t.debug&&(null!==this.recognizer?console.log("closure at %s rule stop %s\n",this.recognizer.ruleNames[s.state.ruleIndex],s):console.log("closure at rule stop %s\n",s)),!s.context||s.context.hasEmptyPath()){if(!s.context||s.context.isEmpty())return a.add(s),!0;a.add(Vr.createWithConfig(s.state,s,ua.EMPTY)),r=!0}if(s.context&&!s.context.isEmpty())for(let t=0;t<s.context.length;t++)if(s.context.getReturnState(t)!==ua.EMPTY_RETURN_STATE){const h=s.context.getParent(t),E=this.atn.states[s.context.getReturnState(t)];n=Vr.createWithConfig(E,s,h),r=this.closure(e,n,a,r,i,c)}return r}s.state.epsilonOnlyTransitions||r&&s.passedThroughNonGreedyDecision||a.add(s);for(const t of s.state.transitions)n=this.getEpsilonTarget(e,s,t,a,i,c),n&&(r=this.closure(e,n,a,r,i,c));return r}getEpsilonTarget(t,e,s,a,r,i){ea(this,me)||this.setupATNFactoryLookup();const c=ea(this,me)[s.transitionType];return c?c(t,e,s,a,r,i):null}setupATNFactoryLookup(){$s(this,me,[]),ea(this,me)[la.RULE]=(t,e,s)=>{var a;const r=da.create(null!==(a=e.context)&&void 0!==a?a:void 0,s.followState.stateNumber);return Vr.createWithConfig(s.target,e,r)},ea(this,me)[la.PRECEDENCE]=()=>{throw new Error("Precedence predicates are not supported in lexers.")},ea(this,me)[la.PREDICATE]=(e,s,a,r,i)=>{const c=a;return t.debug&&console.log("EVAL rule "+c.ruleIndex+":"+c.predIndex),r.hasSemanticContext=!0,this.evaluatePredicate(e,c.ruleIndex,c.predIndex,i)?Vr.createWithConfig(a.target,s):null},ea(this,me)[la.ACTION]=(t,e,s)=>{if(null===e.context||e.context.hasEmptyPath()){const t=ri.append(e.lexerActionExecutor,this.atn.lexerActions[s.actionIndex]);return Vr.createWithExecutor(e,s.target,t)}return Vr.createWithConfig(s.target,e)},ea(this,me)[la.EPSILON]=(t,e,s)=>Vr.createWithConfig(s.target,e);const e=Ea(((t,e,s,a,r,i)=>i&&s.matches(ca.EOF,ea(this,Ue).minCodePoint,ea(this,Ue).maxCodePoint)?Vr.createWithConfig(s.target,e):null),"simple");ea(this,me)[la.ATOM]=e,ea(this,me)[la.RANGE]=e,ea(this,me)[la.SET]=e}evaluatePredicate(t,e,s,a){if(!this.recognizer)return!0;if(!a)return this.recognizer.sempred(null,e,s);const r=this.column,i=this.line,c=t.index,n=t.mark();try{return this.consume(t),this.recognizer.sempred(null,e,s)}finally{this.column=r,this.line=i,t.seek(c),t.release(n)}}captureSimState(t,e){$s(this,de,{index:t.index,line:this.line,column:this.column,dfaState:e})}addDFAEdge(e,s,a,r){if(!a&&r){const t=r.hasSemanticContext;if(r.hasSemanticContext=!1,a=this.addDFAState(r),t)return a}return s<ea(this,Ue).minDFAEdge||s>ea(this,Ue).maxDFAEdge||(t.debug&&console.log("EDGE "+e+" -> "+a+" upon "+s),e.edges[s-ea(this,Ue).minDFAEdge]=a),a}addDFAState(t){const e=this.decisionToDFA[this.mode],s=e.getStateForConfigs(t);if(s)return s;const a=wr.fromConfigs(t),r=t.firstStopState;return r&&(a.isAcceptState=!0,a.lexerActionExecutor=r.lexerActionExecutor,a.prediction=this.atn.ruleToTokenType[r.state.ruleIndex]),t.setReadonly(!0),e.addState(a),a}},Ea(Me,"LexerATNSimulator"),(0,js.Z)(Me,"debug",!1),Me),Ei=(De=class{constructor(t){(0,js.Z)(this,"atnSimulator",void 0),this.atnSimulator=t}getDecisionInfo(){return this.atnSimulator.getDecisionInfo()}getLLDecisions(){const t=this.atnSimulator.getDecisionInfo(),e=new Array;for(let s=0;s<t.length;s++){t[s].llFallback>0&&e.push(s)}return e}getTotalTimeInPrediction(){const t=this.atnSimulator.getDecisionInfo();let e=0;for(const s of t)e+=s.timeInPrediction;return e}getTotalSLLLookaheadOps(){const t=this.atnSimulator.getDecisionInfo();let e=0;for(const s of t)e+=s.sllTotalLook;return e}getTotalLLLookaheadOps(){const t=this.atnSimulator.getDecisionInfo();let e=0;for(const s of t)e+=s.llTotalLook;return e}getTotalSLLATNLookaheadOps(){const t=this.atnSimulator.getDecisionInfo();let e=0;for(const s of t)e+=s.sllATNTransitions;return e}getTotalLLATNLookaheadOps(){const t=this.atnSimulator.getDecisionInfo();let e=0;for(const s of t)e+=s.llATNTransitions;return e}getTotalATNLookaheadOps(){const t=this.atnSimulator.getDecisionInfo();let e=0;for(const s of t)e+=s.sllATNTransitions,e+=s.llATNTransitions;return e}getDFASize(t){if(void 0===t){let t=0;const e=this.atnSimulator.decisionToDFA;for(let s=0;s<e.length;s++)t+=this.getDFASize(s);return t}return this.atnSimulator.decisionToDFA[t].length}},Ea(De,"ParseInfo"),Ea(pe=class extends jr{constructor(t){var e,s,a,r;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,h=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,E=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null;E=null!==(e=E)&&void 0!==e?e:t.context,n=null!==(s=n)&&void 0!==s?s:t.getCurrentToken(),c=null!==(a=c)&&void 0!==a?a:t.getCurrentToken(),i=null!==(r=i)&&void 0!==r?r:t.inputStream,super({message:"",recognizer:t,input:i,ctx:E}),(0,js.Z)(this,"deadEndConfigs",null),(0,js.Z)(this,"startToken",void 0),this.deadEndConfigs=h,this.startToken=c,this.offendingToken=n}},"NoViableAltException"),pe),Ti=(ge=class{constructor(){(0,js.Z)(this,"cacheMap",void 0),this.cacheMap=new Fa(ka.instance)}get(t,e){var s,a;const r=null!==(s=this.cacheMap.get(t))&&void 0!==s?s:null;return null===r?null:null!==(a=r.get(e))&&void 0!==a?a:null}set(t,e,s){let a=this.cacheMap.get(t);a||(a=new Fa(ka.instance),this.cacheMap.set(t,a)),a.set(e,s)}},Ea(ge,"DoubleDict"),ge),oi=(xe=class{hashCode(t){let e=Aa.initialize(7);return e=Aa.update(e,t.state.stateNumber),e=Aa.updateFromComparable(e,t.context),e=Aa.finish(e,2),e}equals(t,e){var s,a;return t.state.stateNumber===e.state.stateNumber&&(null===(s=null===(a=t.context)||void 0===a?void 0:a.equals(e.context))||void 0===s||s)}},Ea(xe,"SubsetEqualityComparer"),(0,js.Z)(xe,"instance",new xe),xe),Ri=(ke=class t{static hasSLLConflictTerminatingPrediction(e,s){if(t.allConfigsInRuleStopStates(s))return!0;if(e===t.SLL&&s.hasSemanticContext){const t=new $a;for(let e of s)e=Za.duplicate(e,Xa.NONE),t.add(e);s=t}const a=t.getConflictingAltSubsets(s);return t.hasConflictingAltSet(a)&&!t.hasStateAssociatedWithOneAlt(s)}static hasConfigInRuleStopState(t){for(const e of t)if(e.state instanceof cr)return!0;return!1}static allConfigsInRuleStopStates(t){for(const e of t)if(!(e.state instanceof cr))return!1;return!0}static resolvesToJustOneViableAlt(e){return t.getSingleViableAlt(e)}static allSubsetsConflict(e){return!t.hasNonConflictingAltSet(e)}static hasNonConflictingAltSet(t){for(const e of t)if(1===e.length)return!0;return!1}static hasConflictingAltSet(t){for(const e of t)if(e.length>1)return!0;return!1}static allSubsetsEqual(t){let e=null;for(const s of t)if(null===e)e=s;else if(s!==e)return!1;return!0}static getUniqueAlt(e){const s=t.getAlts(e);return 1===s.length?s.nextSetBit(0):ja.INVALID_ALT_NUMBER}static getAlts(t){const e=new Wa;return t.forEach((t=>{e.or(t)})),e}static getConflictingAltSubsets(t){const e=new Fa(oi.instance);for(const s of t){let t=e.get(s);t||(t=new Wa,e.set(s,t)),t.set(s.alt)}return Array.from(e.values())}static getStateToAltMap(t){const e=new Fa(xa.instance);for(const s of t){let t=e.get(s.state);t||(t=new Wa,e.set(s.state,t)),t.set(s.alt)}return e}static hasStateAssociatedWithOneAlt(t){const e={};for(const s of t){const t=s.state.stateNumber;e[t]||(e[t]=0),e[t]++}return Object.values(e).some((t=>1===t))}static getSingleViableAlt(t){var e;let s=null;for(const a of t){const t=a.nextSetBit(0);if(null===s)s=t;else if(s!==t)return ja.INVALID_ALT_NUMBER}return null!==(e=s)&&void 0!==e?e:0}},Ea(ke,"PredictionMode"),(0,js.Z)(ke,"SLL",0),(0,js.Z)(ke,"LL",1),(0,js.Z)(ke,"LL_EXACT_AMBIG_DETECTION",2),ke),Ai=(He=class t extends br{constructor(t,e,s,a){super(e,a),(0,js.Z)(this,"predictionMode",void 0),(0,js.Z)(this,"decisionToDFA",void 0),(0,js.Z)(this,"parser",void 0),(0,js.Z)(this,"mergeCache",new Ti),(0,js.Z)(this,"predictionState",void 0),this.parser=t,this.decisionToDFA=s}static getUniqueAlt(t){let e=ja.INVALID_ALT_NUMBER;for(const s of t)if(e===ja.INVALID_ALT_NUMBER)e=s.alt;else if(s.alt!==e)return ja.INVALID_ALT_NUMBER;return e}reset(){}clearDFA(){for(let t=0;t<this.decisionToDFA.length;t++)this.decisionToDFA[t]=new ni(this.atn.getDecisionState(t),t)}adaptivePredict(e,s,a){var r;(t.debug||t.traceATNSimulator)&&console.log("adaptivePredict decision "+s+" exec LA(1)=="+this.getLookaheadName(e)+" line "+e.LT(1).line+":"+e.LT(1).column);const i=this.decisionToDFA[s];this.predictionState={input:e,startIndex:e.index,outerContext:null!==(r=a)&&void 0!==r?r:void 0,dfa:i};const c=e.mark(),n=e.index;try{let s;if(s=i.isPrecedenceDfa?i.getPrecedenceStartState(this.parser.getPrecedence()):i.s0,!s){a||(a=ga.empty),t.debug&&console.log("predictATN decision "+i.decision+" exec LA(1)=="+this.getLookaheadName(e)+", outerContext="+a.toString(this.parser.ruleNames));const r=!1;let c=this.computeStartState(i.atnStartState,ga.empty,r);i.isPrecedenceDfa?(c=this.applyPrecedenceFilter(c),s=this.addDFAState(i,wr.fromConfigs(c)),i.setPrecedenceStartState(this.parser.getPrecedence(),s)):(s=this.addDFAState(i,wr.fromConfigs(c)),i.s0=s)}const r=this.execATN(i,s,e,n,a);return t.debug&&console.log("DFA after predictATN: "+i.toString(this.parser.vocabulary)),r}finally{this.predictionState.dfa=void 0,this.mergeCache=new Ti,e.seek(n),e.release(c)}}execATN(e,s,a,r,i){let c;(t.debug||t.traceATNSimulator)&&console.log("execATN decision "+e.decision+", DFA state "+s+", LA(1)=="+this.getLookaheadName(a)+" line "+a.LT(1).line+":"+a.LT(1).column);let n=s,h=a.LA(1);for(;;){let s=this.getExistingTargetState(n,h);if(s||(s=this.computeTargetState(e,n,h)),s===br.ERROR){const t=this.noViableAlt(a,i,n.configs,r);if(a.seek(r),c=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(n.configs,i),c!==ja.INVALID_ALT_NUMBER)return c;throw t}if(s.requiresFullContext&&this.predictionMode!==Ri.SLL){let n=null;if(null!==s.predicates){t.debug&&console.log("DFA state has preds in DFA sim LL failover");const e=a.index;if(e!==r&&a.seek(r),n=this.evalSemanticContext(s.predicates,i,!0),1===n.length)return t.debug&&console.log("Full LL avoided"),n.nextSetBit(0);e!==r&&a.seek(e)}t.dfaDebug&&console.log("ctx sensitive state "+i+" in "+s);const h=!0,E=this.computeStartState(e.atnStartState,i,h);return this.reportAttemptingFullContext(e,n,s.configs,r,a.index),c=this.execATNWithFullContext(e,s,E,a,r,i),c}if(s.isAcceptState){if(null===s.predicates)return s.prediction;const t=a.index;a.seek(r);const c=this.evalSemanticContext(s.predicates,i,!0);if(0===c.length)throw this.noViableAlt(a,i,s.configs,r);return 1===c.length||this.reportAmbiguity(e,s,r,t,!1,c,s.configs),c.nextSetBit(0)}n=s,h!==ca.EOF&&(a.consume(),h=a.LA(1))}}getExistingTargetState(t,e){return t.edges[e+1]}computeTargetState(e,s,a){const r=this.computeReachSet(s.configs,a,!1);if(null===r)return this.addDFAEdge(e,s,a,br.ERROR),br.ERROR;let i=wr.fromConfigs(r);const c=t.getUniqueAlt(r);if(t.debug){const t=Ri.getConflictingAltSubsets(r);console.log("SLL altSubSets="+La(t)+", configs="+r+", predict="+c+", allSubsetsConflict="+Ri.allSubsetsConflict(t)+", conflictingAlts="+this.getConflictingAlts(r))}return c!==ja.INVALID_ALT_NUMBER?(i.isAcceptState=!0,i.configs.uniqueAlt=c,i.prediction=c):Ri.hasSLLConflictTerminatingPrediction(this.predictionMode,r)&&(i.configs.conflictingAlts=this.getConflictingAlts(r),i.requiresFullContext=!0,i.isAcceptState=!0,i.prediction=i.configs.conflictingAlts.nextSetBit(0)),i.isAcceptState&&i.configs.hasSemanticContext&&(this.predicateDFAState(i,this.atn.getDecisionState(e.decision)),null!==i.predicates&&(i.prediction=ja.INVALID_ALT_NUMBER)),i=this.addDFAEdge(e,s,a,i),i}getRuleName(t){return null!==this.parser&&t>=0?this.parser.ruleNames[t]:"<rule "+t+">"}getTokenName(t){var e,s;if(t===ca.EOF)return"EOF";const a=(null!==(e=null===(s=this.parser)||void 0===s?void 0:s.vocabulary)&&void 0!==e?e:Ra.EMPTY_VOCABULARY).getDisplayName(t);return a===t.toString()?a:a+"<"+t+">"}getLookaheadName(t){return this.getTokenName(t.LA(1))}dumpDeadEndConfigs(t){console.log("dead end configs: ");const e=t.deadEndConfigs;for(const s of e){let t="no edges";if(s.state.transitions.length>0){const e=s.state.transitions[0];if(e instanceof Sr)t="Atom "+this.getTokenName(e.labelValue);else if(e instanceof Oa){t=(e instanceof Ia?"~":"")+"Set "+e.label}}console.error(s.toString(this.parser,!0)+":"+t)}}predicateDFAState(t,e){const s=e.transitions.length,a=this.getConflictingAltsOrUniqueAlt(t.configs),r=this.getPredsForAmbigAlts(a,t.configs,s);null!==r?(t.predicates=this.getPredicatePredictions(a,r),t.prediction=ja.INVALID_ALT_NUMBER):t.prediction=a.nextSetBit(0)}execATNWithFullContext(e,s,a,r,i,c){(t.debug||t.traceATNSimulator)&&console.log("execATNWithFullContext "+a);let n,h=!1,E=a;r.seek(i);let T=r.LA(1),o=-1;for(;;){if(n=this.computeReachSet(E,T,true),null===n){const t=this.noViableAlt(r,c,E,i);r.seek(i);const e=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(E,c);if(e!==ja.INVALID_ALT_NUMBER)return e;throw t}const e=Ri.getConflictingAltSubsets(n);if(t.debug&&console.log("LL altSubSets="+e+", predict="+Ri.getUniqueAlt(e)+", resolvesToJustOneViableAlt="+Ri.resolvesToJustOneViableAlt(e)),n.uniqueAlt=t.getUniqueAlt(n),n.uniqueAlt!==ja.INVALID_ALT_NUMBER){o=n.uniqueAlt;break}if(this.predictionMode!==Ri.LL_EXACT_AMBIG_DETECTION){if(o=Ri.resolvesToJustOneViableAlt(e),o!==ja.INVALID_ALT_NUMBER)break}else if(Ri.allSubsetsConflict(e)&&Ri.allSubsetsEqual(e)){h=!0,o=Ri.getSingleViableAlt(e);break}E=n,T!==ca.EOF&&(r.consume(),T=r.LA(1))}return n.uniqueAlt!==ja.INVALID_ALT_NUMBER?(this.reportContextSensitivity(e,o,n,i,r.index),o):(this.reportAmbiguity(e,s,i,r.index,h,void 0,n),o)}computeReachSet(e,s,a){t.debug&&console.log("in computeReachSet, starting closure: "+e);const r=new $a(a);let i=null;for(const n of e)if(t.debug&&console.log("testing "+this.getTokenName(s)+" at "+n),n.state instanceof cr)(a||s===ca.EOF)&&(null===i&&(i=[]),i.push(n));else for(const e of n.state.transitions){const a=this.getReachableTarget(e,s);if(null!==a){const e=Za.createWithConfig(a,n);r.add(e,this.mergeCache),t.debugAdd&&console.log("added "+e+" to intermediate")}}let c=null;if(null===i&&s!==ca.EOF&&(1===r.length||t.getUniqueAlt(r)!==ja.INVALID_ALT_NUMBER)&&(c=r),null===c){c=new $a(a);const t=new Ha,e=s===ca.EOF;for(const s of r)this.closure(s,c,t,!1,a,e)}if(s===ca.EOF&&(c=this.removeAllConfigsNotInRuleStopState(c,c===r)),null!==i&&(!a||!Ri.hasConfigInRuleStopState(c)))for(const t of i)c.add(t,this.mergeCache);return t.traceATNSimulator&&console.log("computeReachSet "+e+" -> "+c),0===c.length?null:c}removeAllConfigsNotInRuleStopState(t,e){if(Ri.allConfigsInRuleStopStates(t))return t;const s=new $a(t.fullCtx);for(const a of t)if(a.state instanceof cr)s.add(a,this.mergeCache);else if(e&&a.state.epsilonOnlyTransitions){if(this.atn.nextTokens(a.state).contains(ca.EPSILON)){const t=this.atn.ruleToStopState[a.state.ruleIndex];s.add(Za.createWithConfig(t,a),this.mergeCache)}}return s}computeStartState(e,s,a){const r=va(this.atn,s),i=new $a(a);t.traceATNSimulator&&console.log("computeStartState from ATN state "+e+" initialContext="+r.toString(this.parser));for(let t=0;t<e.transitions.length;t++){const s=e.transitions[t].target,c=Za.createWithContext(s,t+1,r),n=new Ha;this.closure(c,i,n,!0,a,!1)}return i}applyPrecedenceFilter(t){const e=[],s=new $a(t.fullCtx);for(const a of t){if(1!==a.alt)continue;const t=a.semanticContext.evalPrecedence(this.parser,this.predictionState.outerContext);null!==t&&(e[a.state.stateNumber]=a.context,t!==a.semanticContext?s.add(Za.duplicate(a,t),this.mergeCache):s.add(a,this.mergeCache))}for(const a of t)if(1!==a.alt){if(!a.precedenceFilterSuppressed){const t=e[a.state.stateNumber]||null;if(null!==t&&t.equals(a.context))continue}s.add(a,this.mergeCache)}return s}getReachableTarget(t,e){return t.matches(e,0,this.atn.maxTokenType)?t.target:null}getPredsForAmbigAlts(e,s,a){let r=[];for(const t of s){var i;if(e.get(t.alt))r[t.alt]=Xa.orContext(null!==(i=r[t.alt])&&void 0!==i?i:null,t.semanticContext)}let c=0;for(let t=1;t<a+1;t++){var n;const e=null!==(n=r[t])&&void 0!==n?n:null;null===e?r[t]=Xa.NONE:e!==Xa.NONE&&(c+=1)}return 0===c&&(r=null),t.debug&&console.log("getPredsForAmbigAlts result "+La(r)),r}getPredicatePredictions(t,e){const s=[];let a=!1;for(let r=1;r<e.length;r++){const i=e[r];t.get(r)&&s.push({pred:i,alt:r}),i!==Xa.NONE&&(a=!0)}return a?s:null}getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(t,e){const s=this.splitAccordingToSemanticValidity(t,e),a=s[0],r=s[1];let i=this.getAltThatFinishedDecisionEntryRule(a);return i!==ja.INVALID_ALT_NUMBER||r.length>0&&(i=this.getAltThatFinishedDecisionEntryRule(r),i!==ja.INVALID_ALT_NUMBER)?i:ja.INVALID_ALT_NUMBER}getAltThatFinishedDecisionEntryRule(t){const e=[];for(const s of t)(s.reachesIntoOuterContext||s.state instanceof cr&&s.context.hasEmptyPath())&&e.indexOf(s.alt)<0&&e.push(s.alt);return 0===e.length?ja.INVALID_ALT_NUMBER:Math.min(...e)}splitAccordingToSemanticValidity(t,e){const s=new $a(t.fullCtx),a=new $a(t.fullCtx);for(const r of t)if(r.semanticContext!==Xa.NONE){r.semanticContext.evaluate(this.parser,e)?s.add(r):a.add(r)}else s.add(r);return[s,a]}evalSemanticContext(e,s,a){const r=new Wa;for(const i of e){if(i.pred===Xa.NONE){if(r.set(i.alt),!a)break;continue}const e=i.pred.evaluate(this.parser,s);if((t.debug||t.dfaDebug)&&console.log("eval pred "+i+"="+e),e&&(r.set(i.alt),!a))break}return r}closure(t,e,s,a,r,i){this.closureCheckingStopState(t,e,s,a,r,0,i)}closureCheckingStopState(e,s,a,r,i,c,n){if((t.traceATNSimulator||t.debugClosure)&&console.log("closure("+e.toString(this.parser,!0)+")"),e.state instanceof cr){if(e.context&&!e.context.isEmpty()){for(let h=0;h<e.context.length;h++){if(e.context.getReturnState(h)===ua.EMPTY_RETURN_STATE){if(i){s.add(Za.createWithConfig(e.state,e,ua.EMPTY),this.mergeCache);continue}t.debug&&console.log("FALLING off rule "+this.getRuleName(e.state.ruleIndex)),this.closure_(e,s,a,r,i,c,n);continue}const E=this.atn.states[e.context.getReturnState(h)],T=e.context.getParent(h),o=Za.createWithContext(E,e.alt,T,e.semanticContext);o.reachesIntoOuterContext=e.reachesIntoOuterContext,this.closureCheckingStopState(o,s,a,r,i,c-1,n)}return}if(i)return void s.add(e,this.mergeCache);t.debug&&console.log("FALLING off rule "+this.getRuleName(e.state.ruleIndex))}this.closure_(e,s,a,r,i,c,n)}closure_(e,s,a,r,i,c,n){const h=e.state;h.epsilonOnlyTransitions||s.add(e,this.mergeCache);for(let R=0;R<h.transitions.length;R++){if(0===R&&this.canDropLoopEntryEdgeInLeftRecursiveRule(e))continue;const A=h.transitions[R],S=r&&!(A instanceof Ir),l=this.getEpsilonTarget(e,A,S,0===c,i,n);if(l){let r=c;if(e.state.constructor.stateType===Va.RULE_STOP){var E;if(this.predictionState.dfa&&null!==(E=this.predictionState)&&void 0!==E&&E.dfa.isPrecedenceDfa){var T,o;A.outermostPrecedenceReturn===(null===(T=this.predictionState)||void 0===T||null===(o=T.dfa.atnStartState)||void 0===o?void 0:o.ruleIndex)&&(l.precedenceFilterSuppressed=!0)}if(l.reachesIntoOuterContext=!0,a.getOrAdd(l)!==l)continue;s.dipsIntoOuterContext=!0,r-=1,t.debug&&console.log("dips into outer ctx: "+l)}else{if(!A.isEpsilon&&a.getOrAdd(l)!==l)continue;A instanceof lr&&r>=0&&(r+=1)}this.closureCheckingStopState(l,s,a,S,i,r,n)}}}canDropLoopEntryEdgeInLeftRecursiveRule(t){const e=t.state;if(e.constructor.stateType!==Va.STAR_LOOP_ENTRY||!t.context)return!1;if(!e.precedenceRuleDecision||t.context.isEmpty()||t.context.hasEmptyPath())return!1;const s=t.context.length;for(let i=0;i<s;i++){if(this.atn.states[t.context.getReturnState(i)].ruleIndex!==e.ruleIndex)return!1}const a=e.transitions[0].target.endState.stateNumber,r=this.atn.states[a];for(let i=0;i<s;i++){const s=t.context.getReturnState(i),a=this.atn.states[s];if(1!==a.transitions.length||!a.transitions[0].isEpsilon)return!1;const c=a.transitions[0].target;if((a.constructor.stateType!==Va.BLOCK_END||c!==e)&&(a!==r&&c!==r&&(c.constructor.stateType!==Va.BLOCK_END||1!==c.transitions.length||!c.transitions[0].isEpsilon||c.transitions[0].target!==e)))return!1}return!0}getEpsilonTarget(e,s,a,r,i,c){switch(s.transitionType){case la.RULE:return this.ruleTransition(e,s);case la.PRECEDENCE:return this.precedenceTransition(e,s,a,r,i);case la.PREDICATE:return this.predTransition(e,s,a,r,i);case la.ACTION:if(t.debug){const t=s,e=-1===t.actionIndex?65535:t.actionIndex;console.log("ACTION edge "+t.ruleIndex+":"+e)}return Za.createWithConfig(s.target,e);case la.EPSILON:return Za.createWithConfig(s.target,e);case la.ATOM:case la.RANGE:case la.SET:return c&&s.matches(ca.EOF,0,1)?Za.createWithConfig(s.target,e):null;default:return null}}precedenceTransition(e,s,a,r,i){t.debug&&(console.log("PRED (collectPredicates="+a+") "+s.precedence+">=_p, ctx dependent=true"),null!==this.parser&&console.log("context surrounding pred is "+La(this.parser.getRuleInvocationStack())));let c=null;var n;if(a&&r)if(i&&null!==(n=this.predictionState)&&void 0!==n&&n.input){const t=this.predictionState.input.index;this.predictionState.input.seek(this.predictionState.startIndex);const a=s.getPredicate().evaluate(this.parser,this.predictionState.outerContext);this.predictionState.input.seek(t),a&&(c=Za.createWithConfig(s.target,e))}else{const t=Xa.andContext(e.semanticContext,s.getPredicate());c=Za.createWithSemanticContext(s.target,e,t)}else c=Za.createWithConfig(s.target,e);return t.debug&&console.log("config from pred transition="+c),c}predTransition(e,s,a,r,i){t.debug&&(console.log("PRED (collectPredicates="+a+") "+s.ruleIndex+":"+s.predIndex+", ctx dependent="+s.isCtxDependent),null!==this.parser&&console.log("context surrounding pred is "+La(this.parser.getRuleInvocationStack())));let c=null;var n;if(a&&(s.isCtxDependent&&r||!s.isCtxDependent))if(i&&null!==(n=this.predictionState)&&void 0!==n&&n.input){const t=this.predictionState.input.index;this.predictionState.input.seek(this.predictionState.startIndex);const a=s.getPredicate().evaluate(this.parser,this.predictionState.outerContext);this.predictionState.input.seek(t),a&&(c=Za.createWithConfig(s.target,e))}else{const t=Xa.andContext(e.semanticContext,s.getPredicate());c=Za.createWithSemanticContext(s.target,e,t)}else c=Za.createWithConfig(s.target,e);return t.debug&&console.log("config from pred transition="+c),c}ruleTransition(e,s){var a;t.debug&&console.log("CALL rule "+this.getRuleName(s.target.ruleIndex)+", ctx="+e.context);const r=s.followState,i=da.create(null!==(a=e.context)&&void 0!==a?a:void 0,r.stateNumber);return Za.createWithConfig(s.target,e,i)}getConflictingAlts(t){const e=Ri.getConflictingAltSubsets(t);return Ri.getAlts(e)}getConflictingAltsOrUniqueAlt(t){let e;return t.uniqueAlt!==ja.INVALID_ALT_NUMBER?(e=new Wa,e.set(t.uniqueAlt)):e=t.conflictingAlts,e}noViableAlt(t,e,s,a){return new Ei(this.parser,t,t.get(a),t.LT(1),s,e)}addDFAEdge(e,s,a,r){return t.debug&&console.log("EDGE "+s+" -> "+r+" upon "+this.getTokenName(a)),r=this.addDFAState(e,r),a<-1||a>this.atn.maxTokenType||(t.debug&&console.log("DFA=\n"+e.toString(null!=this.parser?this.parser.vocabulary:Ra.EMPTY_VOCABULARY)),s.edges[a+1]=r),r}addDFAState(e,s){if(s===br.ERROR)return s;const a=e.getState(s);return null!==a?a:(s.configs.readOnly||(s.configs.optimizeConfigs(this),s.configs.setReadonly(!0)),t.traceATNSimulator&&console.log("addDFAState new "+s),e.addState(s),s)}reportAttemptingFullContext(e,s,a,r,i){if(t.debug||t.retryDebug){const t=new oa(r,i+1);console.log("reportAttemptingFullContext decision="+e.decision+":"+a+", input="+this.parser.tokenStream.getTextFromInterval(t))}this.parser.errorListenerDispatch.reportAttemptingFullContext(this.parser,e,r,i,s,a)}reportContextSensitivity(e,s,a,r,i){if(t.debug||t.retryDebug){const t=new oa(r,i+1);console.log("reportContextSensitivity decision="+e.decision+":"+a+", input="+this.parser.tokenStream.getTextFromInterval(t))}this.parser.errorListenerDispatch.reportContextSensitivity(this.parser,e,r,i,s,a)}reportAmbiguity(e,s,a,r,i,c,n){if(t.debug||t.retryDebug){const t=new oa(a,r+1);console.log("reportAmbiguity "+c+":"+n+", input="+this.parser.tokenStream.getTextFromInterval(t))}this.parser.errorListenerDispatch.reportAmbiguity(this.parser,e,a,r,i,c,n)}},Ea(He,"ParserATNSimulator"),(0,js.Z)(He,"traceATNSimulator",!1),(0,js.Z)(He,"debug",void 0),(0,js.Z)(He,"debugAdd",!1),(0,js.Z)(He,"debugClosure",!1),(0,js.Z)(He,"dfaDebug",!1),(0,js.Z)(He,"retryDebug",!1),He),Si=(Ea(Ge=class{constructor(){(0,js.Z)(this,"cache",new Fa(xa.instance))}add(t){if(t===ua.EMPTY)return t;const e=this.cache.get(t);return e||(this.cache.set(t,t),t)}get(t){return this.cache.get(t)}get length(){return this.cache.size}},"PredictionContextCache"),Ge),li=(ve=new WeakMap,Be=new WeakMap,Fe=class extends Ai{constructor(t){const e=t.interpreter.sharedContextCache;if(super(t,t.interpreter.atn,t.interpreter.decisionToDFA,e),(0,js.Z)(this,"decisions",void 0),(0,js.Z)(this,"numDecisions",0),(0,js.Z)(this,"currentDecision",0),(0,js.Z)(this,"currentState",void 0),(0,js.Z)(this,"conflictingAltResolvedBySLL",void 0),r(this,ve,{writable:!0,value:0}),r(this,Be,{writable:!0,value:0}),e){this.numDecisions=this.atn.decisionToState.length,this.decisions=new Array(this.numDecisions);for(let t=0;t<this.numDecisions;t++)this.decisions[t]=new Wr(t)}}adaptivePredict(t,e,s){try{$s(this,ve,-1),$s(this,Be,-1),this.currentDecision=e;const a=performance.now(),r=super.adaptivePredict(t,e,s),i=performance.now();this.decisions[e].timeInPrediction+=i-a,this.decisions[e].invocations++;const c=ea(this,ve)-this.predictionState.startIndex+1;if(this.decisions[e].sllTotalLook+=c,this.decisions[e].sllMinLook=0===this.decisions[e].sllMinLook?c:Math.min(this.decisions[e].sllMinLook,c),c>this.decisions[e].sllMaxLook&&(this.decisions[e].sllMaxLook=c,this.decisions[e].sllMaxLookEvent={decision:e,configs:null,predictedAlt:r,input:t,startIndex:this.predictionState.startIndex,stopIndex:ea(this,ve),fullCtx:!1}),ea(this,Be)>=0){const s=ea(this,Be)-this.predictionState.startIndex+1;this.decisions[e].llTotalLook+=s,this.decisions[e].llMinLook=0===this.decisions[e].llMinLook?s:Math.min(this.decisions[e].llMinLook,s),s>this.decisions[e].llMaxLook&&(this.decisions[e].llMaxLook=s,this.decisions[e].llMaxLookEvent={decision:e,configs:null,predictedAlt:r,input:t,startIndex:this.predictionState.startIndex,stopIndex:ea(this,Be),fullCtx:!0})}return r}finally{this.currentDecision=-1}}getExistingTargetState(t,e){var s;if(null!==(s=this.predictionState)&&void 0!==s&&s.input){$s(this,ve,this.predictionState.input.index);const s=super.getExistingTargetState(t,e);return null!==s&&(this.decisions[this.currentDecision].sllDFATransitions++,s===br.ERROR&&this.decisions[this.currentDecision].errors.push({decision:this.currentDecision,configs:t.configs,input:this.predictionState.input,startIndex:this.predictionState.startIndex,stopIndex:ea(this,ve),fullCtx:!1})),this.currentState=s,s}}computeTargetState(t,e,s){const a=super.computeTargetState(t,e,s);return this.currentState=a,a}computeReachSet(t,e,s){var a,r;s&&null!==(a=this.predictionState)&&void 0!==a&&a.input&&$s(this,Be,this.predictionState.input.index);const i=super.computeReachSet(t,e,s);return null!==(r=this.predictionState)&&void 0!==r&&r.input&&(s?(this.decisions[this.currentDecision].llATNTransitions++,null===i&&this.decisions[this.currentDecision].errors.push({decision:this.currentDecision,configs:t,input:this.predictionState.input,startIndex:this.predictionState.startIndex,stopIndex:ea(this,ve),fullCtx:!0})):(this.decisions[this.currentDecision].sllATNTransitions++,null===i&&this.decisions[this.currentDecision].errors.push({decision:this.currentDecision,configs:t,input:this.predictionState.input,startIndex:this.predictionState.startIndex,stopIndex:ea(this,ve),fullCtx:!1}))),i}reportAttemptingFullContext(t,e,s,a,r){this.conflictingAltResolvedBySLL=null!==e?e.nextSetBit(0):s.getAlts().nextSetBit(0),this.decisions[this.currentDecision].llFallback++,e&&super.reportAttemptingFullContext(t,e,s,a,r)}reportContextSensitivity(t,e,s,a,r){e!==this.conflictingAltResolvedBySLL&&this.predictionState.input&&this.decisions[this.currentDecision].contextSensitivities.push({decision:this.currentDecision,configs:s,input:this.predictionState.input,startIndex:a,stopIndex:r,fullCtx:!0}),super.reportContextSensitivity(t,e,s,a,r)}reportAmbiguity(t,e,s,a,r,i,c){var n;let h;h=i?i.nextSetBit(0):c.getAlts().nextSetBit(0),null!==(n=this.predictionState)&&void 0!==n&&n.input&&(c.fullCtx&&h!==this.conflictingAltResolvedBySLL&&this.decisions[this.currentDecision].contextSensitivities.push({decision:this.currentDecision,configs:c,input:this.predictionState.input,startIndex:s,stopIndex:a,fullCtx:!0}),this.decisions[this.currentDecision].ambiguities.push({ambigAlts:i,decision:this.currentDecision,configs:c,input:this.predictionState.input,startIndex:s,stopIndex:a,fullCtx:c.fullCtx})),super.reportAmbiguity(t,e,s,a,r,i,c)}getDecisionInfo(){return this.decisions}getCurrentState(){return this.currentState}},Ea(Fe,"ProfilingATNSimulator"),Fe);(Ja||(Ja={})).toString=Ea((t=>"(".concat(t.pred,", ").concat(t.alt,")")),"toString");var Oi,Ii=(ye=class{visit(t){return t.accept(this)}visitChildren(t){let e=this.defaultResult();const s=t.getChildCount();for(let a=0;a<s&&this.shouldVisitNextChild(t,e);a++){const s=t.getChild(a);if(s){const t=s.accept(this);e=this.aggregateResult(e,t)}}return e}visitTerminal(t){return this.defaultResult()}visitErrorNode(t){return this.defaultResult()}defaultResult(){return null}shouldVisitNextChild(t,e){return!0}aggregateResult(t,e){return e}},Ea(ye,"AbstractParseTreeVisitor"),ye);fe=class{walk(t,e){if(e instanceof Da)t.visitErrorNode(e);else if(e instanceof ma)t.visitTerminal(e);else{const s=e;this.enterRule(t,s);for(let a=0;a<e.getChildCount();a++)this.walk(t,e.getChild(a));this.exitRule(t,s)}}enterRule(t,e){const s=e.ruleContext;t.enterEveryRule(s),s.enterRule(t)}exitRule(t,e){const s=e.ruleContext;s.exitRule(t),t.exitEveryRule(s)}},Ea(fe,"ParseTreeWalker"),(0,js.Z)(fe,"DEFAULT",new fe);(Oi||(Oi={})).fromString=Ea((t=>new ui(t)),"fromString");var ui=(we=new WeakSet,Ea(Ye=class{constructor(t){var e,s;a(e=this,s=we),s.add(e),(0,js.Z)(this,"name",""),(0,js.Z)(this,"index",0),(0,js.Z)(this,"data",void 0);const r=[];for(const a of t)r.push(a.codePointAt(0));this.data=new Uint32Array(r)}reset(){this.index=0}consume(){if(this.index>=this.data.length)throw new Error("cannot consume EOF");this.index+=1}LA(t){if(0===t)return 0;t<0&&(t+=1);const e=this.index+t-1;return e<0||e>=this.data.length?ca.EOF:this.data[e]}mark(){return-1}release(t){}seek(t){t<=this.index?this.index=t:this.index=Math.min(t,this.data.length)}getTextFromRange(t,e){var s;return(e=null!==(s=e)&&void 0!==s?s:this.data.length-1)>=this.data.length&&(e=this.data.length-1),t>=this.data.length?"":sa(this,we,Ni).call(this,t,e+1)}getTextFromInterval(t){const e=t.start;let s=t.stop;return s>=this.data.length&&(s=this.data.length-1),e>=this.data.length?"":sa(this,we,Ni).call(this,e,s+1)}toString(){return sa(this,we,Ni).call(this,0)}get size(){return this.data.length}getSourceName(){return this.name?this.name:ra.UNKNOWN_SOURCE_NAME}},"CharStreamImpl"),Ye);function Ni(t,e){const s=this.data.slice(t,e);let a="";return s.forEach((t=>{a+=String.fromCodePoint(t)})),a}var Li,Ci,_i,Pi,Mi,di,Ui,mi,Di,pi,gi,xi,ki,Hi,Gi,Fi,vi,Bi,yi,fi,Yi,wi,bi,Wi,Vi,Xi,Ki,Qi,Ji,Zi,qi,ji,zi=(be=class{constructor(t){(0,js.Z)(this,"tokenSource",void 0),(0,js.Z)(this,"tokens",[]),(0,js.Z)(this,"p",-1),(0,js.Z)(this,"fetchedEOF",!1),this.tokenSource=t}mark(){return 0}release(t){}reset(){this.seek(0)}seek(t){this.lazyInit(),this.p=this.adjustSeekIndex(t)}get size(){return this.tokens.length}get index(){return this.p}get(t){return this.lazyInit(),this.tokens[t]}consume(){let t=!1;if(t=this.p>=0&&(this.fetchedEOF?this.p<this.tokens.length-1:this.p<this.tokens.length),!t&&this.LA(1)===ca.EOF)throw new Error("cannot consume EOF");this.sync(this.p+1)&&(this.p=this.adjustSeekIndex(this.p+1))}sync(t){const e=t-this.tokens.length+1;if(e>0){return this.fetch(e)>=e}return!0}fetch(t){if(this.fetchedEOF)return 0;for(let e=0;e<t;e++){const t=this.tokenSource.nextToken();if(t.tokenIndex=this.tokens.length,this.tokens.push(t),t.type===ca.EOF)return this.fetchedEOF=!0,e+1}return t}getTokens(t,e,s){var a;if(this.lazyInit(),void 0===t&&void 0===e)return this.tokens;if(null!==(a=t)&&void 0!==a||(t=0),void 0===e&&(e=this.tokens.length-1),t<0||e>=this.tokens.length||e<0||t>=this.tokens.length)throw new RangeError("start "+t+" or stop "+e+" not in 0.."+(this.tokens.length-1));if(t>e)return[];if(void 0===s)return this.tokens.slice(t,e+1);const r=[];e>=this.tokens.length&&(e=this.tokens.length-1);for(let i=t;i<e;i++){const t=this.tokens[i];if(t.type===ca.EOF){r.push(t);break}s.has(t.type)&&r.push(t)}return r}LA(t){var e,s;return null!==(e=null===(s=this.LT(t))||void 0===s?void 0:s.type)&&void 0!==e?e:ca.INVALID_TYPE}LB(t){return this.p-t<0?null:this.tokens[this.p-t]}LT(t){if(this.lazyInit(),0===t)return null;if(t<0)return this.LB(-t);const e=this.p+t-1;return this.sync(e),e>=this.tokens.length?this.tokens[this.tokens.length-1]:this.tokens[e]}adjustSeekIndex(t){return t}lazyInit(){-1===this.p&&this.setup()}setup(){this.sync(0),this.p=this.adjustSeekIndex(0)}setTokenSource(t){this.tokenSource=t,this.tokens=[],this.p=-1,this.fetchedEOF=!1}nextTokenOnChannel(t,e){if(this.sync(t),t>=this.tokens.length)return-1;let s=this.tokens[t];for(;s.channel!==e;){if(s.type===ca.EOF)return-1;t+=1,this.sync(t),s=this.tokens[t]}return t}previousTokenOnChannel(t,e){for(;t>=0&&this.tokens[t].channel!==e;)t-=1;return t}getHiddenTokensToRight(t,e){if(void 0===e&&(e=-1),this.lazyInit(),t<0||t>=this.tokens.length)throw new Error("".concat(t," not in 0..").concat(this.tokens.length-1));const s=this.nextTokenOnChannel(t+1,$r.DEFAULT_TOKEN_CHANNEL),a=t+1,r=-1===s?this.tokens.length-1:s;return this.filterForChannel(a,r,e)}getHiddenTokensToLeft(t,e){if(void 0===e&&(e=-1),this.lazyInit(),t<0||t>=this.tokens.length)throw new Error("".concat(t," not in 0..").concat(this.tokens.length-1));const s=this.previousTokenOnChannel(t-1,$r.DEFAULT_TOKEN_CHANNEL);if(s===t-1)return;const a=s+1,r=t-1;return this.filterForChannel(a,r,e)}filterForChannel(t,e,s){const a=[];for(let r=t;r<e+1;r++){const t=this.tokens[r];-1===s?t.channel!==$r.DEFAULT_TOKEN_CHANNEL&&a.push(t):t.channel===s&&a.push(t)}if(0!==a.length)return a}getSourceName(){return this.tokenSource.sourceName}getText(){return this.getTextFromInterval(oa.of(0,this.size-1))}getTextFromInterval(t){const e=t.start;let s=t.stop;if(e<0||s<0)return"";this.sync(s),s>=this.tokens.length&&(s=this.tokens.length-1);let a="";for(let r=e;r<=s;++r){const t=this.tokens[r];if(t.type===ca.EOF)break;a+=t.text}return a}getTextFromContext(t){return this.getTextFromInterval(t.getSourceInterval())}getTextFromRange(t,e){return null!==t&&null!==e?this.getTextFromInterval(oa.of(t.tokenIndex,e.tokenIndex)):""}fill(){for(this.lazyInit();1e3===this.fetch(1e3););}},Ea(be,"BufferedTokenStream"),be),$i=(We=class extends zi{constructor(t,e){super(t),(0,js.Z)(this,"channel",ca.DEFAULT_CHANNEL),this.channel=null!==e&&void 0!==e?e:ca.DEFAULT_CHANNEL}adjustSeekIndex(t){return this.nextTokenOnChannel(t,this.channel)}LB(t){if(0===t||this.index-t<0)return null;let e=this.index,s=1;for(;s<=t;)e=this.previousTokenOnChannel(e-1,this.channel),s+=1;return e<0?null:this.tokens[e]}LT(t){if(this.lazyInit(),0===t)return null;if(t<0)return this.LB(-t);let e=this.index,s=1;for(;s<t;)this.sync(e+1)&&(e=this.nextTokenOnChannel(e+1,this.channel)),s+=1;return this.tokens[e]}getNumberOfOnChannelTokens(){let t=0;this.fill();for(const e of this.tokens)if(e.channel===this.channel&&(t+=1),e.type===ca.EOF)break;return t}},Ea(We,"CommonTokenStream"),We),tc=(Ea(Ve=class t extends $r{constructor(e){super(e),this.interpreter=new hi(this,t._ATN,t.decisionsToDFA,new Si)}get grammarFileName(){return"XPathLexer.g4"}get literalNames(){return t.literalNames}get symbolicNames(){return t.symbolicNames}get ruleNames(){return t.ruleNames}get serializedATN(){return t._serializedATN}get channelNames(){return t.channelNames}get modeNames(){return t.modeNames}action(t,e,s){if(4===e)this.ID_action(t,s)}ID_action(e,s){if(0===s){const e=this.text;e.charAt(0)===e.charAt(0).toUpperCase()?this.type=t.TOKEN_REF:this.type=t.RULE_REF}}static get _ATN(){return t.__ATN||(t.__ATN=(new fr).deserialize(t._serializedATN)),t.__ATN}get vocabulary(){return t.vocabulary}},"XPathLexer"),(0,js.Z)(Ve,"TOKEN_REF",1),(0,js.Z)(Ve,"RULE_REF",2),(0,js.Z)(Ve,"ANYWHERE",3),(0,js.Z)(Ve,"ROOT",4),(0,js.Z)(Ve,"WILDCARD",5),(0,js.Z)(Ve,"BANG",6),(0,js.Z)(Ve,"ID",7),(0,js.Z)(Ve,"STRING",8),(0,js.Z)(Ve,"channelNames",["DEFAULT_TOKEN_CHANNEL","HIDDEN"]),(0,js.Z)(Ve,"literalNames",[null,null,null,"'//'","'/'","'*'","'!'"]),(0,js.Z)(Ve,"symbolicNames",[null,"TOKEN_REF","RULE_REF","ANYWHERE","ROOT","WILDCARD","BANG","ID","STRING"]),(0,js.Z)(Ve,"modeNames",["DEFAULT_MODE"]),(0,js.Z)(Ve,"ruleNames",["ANYWHERE","ROOT","WILDCARD","BANG","ID","NameChar","NameStartChar","STRING"]),(0,js.Z)(Ve,"_serializedATN",[4,0,8,48,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,1,0,1,0,1,0,1,1,1,1,1,2,1,2,1,3,1,3,1,4,1,4,5,4,29,8,4,10,4,12,4,32,9,4,1,4,1,4,1,5,1,5,1,6,1,6,1,7,1,7,5,7,42,8,7,10,7,12,7,45,9,7,1,7,1,7,1,43,0,8,1,3,3,4,5,5,7,6,9,7,11,0,13,0,15,8,1,0,2,784,0,0,8,14,27,48,57,65,90,95,95,97,122,127,159,170,170,173,173,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1536,1541,1552,1562,1564,1564,1568,1641,1646,1747,1749,1757,1759,1768,1770,1788,1791,1791,1807,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2190,2192,2193,2200,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3165,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3293,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6862,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8203,8207,8234,8238,8255,8256,8276,8276,8288,8292,8294,8303,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65279,65279,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65529,65531,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69248,69289,69291,69292,69296,69297,69373,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69821,69821,69826,69826,69837,69837,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73472,73488,73490,73530,73534,73538,73552,73561,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78933,82944,83526,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94193,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,113824,113827,118528,118573,118576,118598,119141,119145,119149,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,194560,195101,196608,201546,201552,205743,917505,917505,917536,917631,917760,917999,662,0,65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2190,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3165,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3293,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6276,6279,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69248,69289,69296,69297,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,82944,83526,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,194560,195101,196608,201546,201552,205743,47,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,15,1,0,0,0,1,17,1,0,0,0,3,20,1,0,0,0,5,22,1,0,0,0,7,24,1,0,0,0,9,26,1,0,0,0,11,35,1,0,0,0,13,37,1,0,0,0,15,39,1,0,0,0,17,18,5,47,0,0,18,19,5,47,0,0,19,2,1,0,0,0,20,21,5,47,0,0,21,4,1,0,0,0,22,23,5,42,0,0,23,6,1,0,0,0,24,25,5,33,0,0,25,8,1,0,0,0,26,30,3,13,6,0,27,29,3,11,5,0,28,27,1,0,0,0,29,32,1,0,0,0,30,28,1,0,0,0,30,31,1,0,0,0,31,33,1,0,0,0,32,30,1,0,0,0,33,34,6,4,0,0,34,10,1,0,0,0,35,36,7,0,0,0,36,12,1,0,0,0,37,38,7,1,0,0,38,14,1,0,0,0,39,43,5,39,0,0,40,42,9,0,0,0,41,40,1,0,0,0,42,45,1,0,0,0,43,44,1,0,0,0,43,41,1,0,0,0,44,46,1,0,0,0,45,43,1,0,0,0,46,47,5,39,0,0,47,16,1,0,0,0,3,0,30,43,1,1,4,0]),(0,js.Z)(Ve,"__ATN",void 0),(0,js.Z)(Ve,"vocabulary",new Ra(Ve.literalNames,Ve.symbolicNames,[])),(0,js.Z)(Ve,"decisionsToDFA",Ve._ATN.decisionToState.map(((t,e)=>new ni(t,e)))),Ve),ec=(Ea(Xe=class extends Xr{syntaxError(t,e,s,a,r,i){}},"XPathLexerErrorListener"),Xe),sc=(Ea(Ke=class{constructor(t){(0,js.Z)(this,"invert",void 0),(0,js.Z)(this,"nodeName",void 0),this.nodeName=t,this.invert=!1}toString(){return"XPathElement["+(this.invert?"!":"")+this.nodeName+"]"}},"XPathElement"),Ke),ac=(Ea(Qe=class extends sc{constructor(t,e){super(t),(0,js.Z)(this,"ruleIndex",void 0),this.ruleIndex=e}evaluate(t){return pa.findAllRuleNodes(t,this.ruleIndex)}toString(){return"XPathRuleAnywhereElement["+(this.invert?"!":"")+this.nodeName+"]"}},"XPathRuleAnywhereElement"),Qe),rc=(Je=class extends sc{constructor(t,e){super(t),(0,js.Z)(this,"ruleIndex",void 0),this.ruleIndex=e}evaluate(t){const e=[];for(const s of pa.getChildren(t))s instanceof ga&&(s.ruleIndex===this.ruleIndex&&!this.invert||s.ruleIndex!==this.ruleIndex&&this.invert)&&e.push(s);return e}toString(){return"XPathRuleElement["+(this.invert?"!":"")+this.nodeName+"]"}},Ea(Je,"XPathRuleElement"),Je),ic=(Ea(Ze=class extends sc{constructor(t,e){super(t),(0,js.Z)(this,"tokenType",void 0),this.tokenType=e}evaluate(t){return pa.findAllTokenNodes(t,this.tokenType)}toString(){return"XPathTokenAnywhereElement["+(this.invert?"!":"")+this.nodeName+"]"}},"XPathTokenAnywhereElement"),Ze),cc=(qe=class extends sc{constructor(t,e){super(t),(0,js.Z)(this,"tokenType",void 0),this.tokenType=e}evaluate(t){const e=[];for(const s of pa.getChildren(t))s instanceof ma&&s.symbol&&(s.symbol.type===this.tokenType&&!this.invert||s.symbol.type!==this.tokenType&&this.invert)&&e.push(s);return e}toString(){return"XPathTokenElement["+(this.invert?"!":"")+this.nodeName+"]"}},Ea(qe,"XPathTokenElement"),qe),nc=(Ea(je=class extends sc{constructor(){super(Ec.WILDCARD)}evaluate(t){return this.invert?[]:pa.descendants(t)}toString(){return"XPathWildcardAnywhereElement["+(this.invert?"!":"")+this.nodeName+"]"}},"XPathWildcardAnywhereElement"),je),hc=(ze=class extends sc{constructor(){super(Ec.WILDCARD)}evaluate(t){const e=[];if(this.invert)return e;for(const s of pa.getChildren(t))e.push(s);return e}toString(){return"XPathWildcardElement["+(this.invert?"!":"")+this.nodeName+"]"}},Ea(ze,"XPathWildcardElement"),ze),Ec=($e=class t{constructor(t,e){(0,js.Z)(this,"path",void 0),(0,js.Z)(this,"elements",void 0),(0,js.Z)(this,"parser",void 0),this.parser=t,this.path=e,this.elements=this.split(e)}static findAll(e,s,a){return new t(a,s).evaluate(e)}split(t){const e=new tc(Oi.fromString(t));e.recover=t=>{throw t},e.removeErrorListeners(),e.addErrorListener(new ec);const s=new $i(e);try{s.fill()}catch(n){if(n instanceof zr){const s="Invalid tokens or characters at index "+e.column+" in path '"+t+"' -- "+n.message;throw new RangeError(s)}throw n}const a=s.getTokens(),r=[],i=a.length;let c=0;t:for(;c<i;){const t=a[c];let e;switch(t.type){case tc.ROOT:case tc.ANYWHERE:const s=t.type===tc.ANYWHERE;c++,e=a[c];const i=e.type===tc.BANG;i&&(c++,e=a[c]);const n=this.getXPathElement(e,s);n.invert=i,r.push(n),c++;break;case tc.TOKEN_REF:case tc.RULE_REF:case tc.WILDCARD:r.push(this.getXPathElement(t,!1)),++c;break;case ca.EOF:break t;default:throw new Error("Unknown path element "+t)}}return r}evaluate(t){const e=new ga(null);e.addChild(t);let s=new Set([e]),a=0;for(;a<this.elements.length;){const t=new Set;for(const e of s)if(e.getChildCount()>0){this.elements[a].evaluate(e).forEach((e=>{t.add(e)}),t)}a++,s=t}return s}getXPathElement(t,e){if(t.type===ca.EOF)throw new Error("Missing path element at end of path");const s=t.text;if(null==s)throw new Error("Expected wordToken to have text content.");const a=this.parser.getTokenType(s),r=this.parser.getRuleIndex(s);switch(t.type){case tc.WILDCARD:return e?new nc:new hc;case tc.TOKEN_REF:case tc.STRING:if(a===ca.INVALID_TYPE)throw new Error(s+" at index "+t.start+" isn't a valid token name");return e?new ic(s,a):new cc(s,a);default:if(-1===r)throw new Error(s+" at index "+t.start+" isn't a valid rule name");return e?new ac(s,r):new rc(s,r)}}},Ea($e,"XPath"),(0,js.Z)($e,"WILDCARD","*"),(0,js.Z)($e,"NOT","!"),$e),Tc=(Ea(ts=class{},"Chunk"),ts),oc=(Ea(es=class{constructor(t,e,s,a){(0,js.Z)(this,"tree",void 0),(0,js.Z)(this,"pattern",void 0),(0,js.Z)(this,"labels",void 0),(0,js.Z)(this,"mismatchedNode",void 0),this.tree=t,this.pattern=e,this.labels=s,this.mismatchedNode=a}get(t){const e=this.labels.get(t);return e&&0!==e.length?e[e.length-1]:null}getAll(t){const e=this.labels.get(t);return null!==e&&void 0!==e?e:[]}getLabels(){return this.labels}getMismatchedNode(){return this.mismatchedNode}succeeded(){return!this.mismatchedNode}getPattern(){return this.pattern}getTree(){return this.tree}toString(){return"Match ".concat(this.succeeded()?"succeeded":"failed","; found ").concat(this.getLabels().size," labels")}},"ParseTreeMatch"),es),Rc=(Ea(ss=class{constructor(t,e,s,a){(0,js.Z)(this,"patternRuleIndex",void 0),(0,js.Z)(this,"pattern",void 0),(0,js.Z)(this,"patternTree",void 0),(0,js.Z)(this,"matcher",void 0),this.matcher=t,this.patternRuleIndex=s,this.pattern=e,this.patternTree=a}match(t){return this.matcher.match(t,this)}matches(t){return this.matcher.match(t,this).succeeded()}findAll(t,e){const s=Ec.findAll(t,e,this.matcher.getParser()),a=new Array;for(const r of s){const t=this.match(r);t.succeeded()&&a.push(t)}return a}getMatcher(){return this.matcher}getPattern(){return this.pattern}getPatternRuleIndex(){return this.patternRuleIndex}getPatternTree(){return this.patternTree}},"ParseTreePattern"),ss),Ac=(Ea(as=class extends jr{constructor(t){super({message:"",recognizer:t,input:t.inputStream,ctx:t.context}),this.offendingToken=t.getCurrentToken()}},"InputMismatchException"),as),Sc=(Ea(rs=class extends jr{constructor(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;super({message:lc(null!==e&&void 0!==e?e:"no predicate",null!==s&&void 0!==s?s:null),recognizer:t,input:t.inputStream,ctx:t.context}),(0,js.Z)(this,"ruleIndex",0),(0,js.Z)(this,"predicateIndex",0),(0,js.Z)(this,"predicate",void 0);const a=t.atn.states[t.state].transitions[0];a instanceof Cr?(this.ruleIndex=a.ruleIndex,this.predicateIndex=a.predIndex):(this.ruleIndex=0,this.predicateIndex=0),this.predicate=e,this.offendingToken=t.getCurrentToken()}},"FailedPredicateException"),rs),lc=Ea(((t,e)=>null!==e?e:"failed predicate: {"+t+"}?"),"formatMessage"),Oc=(is=class{constructor(){(0,js.Z)(this,"errorRecoveryMode",!1),(0,js.Z)(this,"lastErrorIndex",-1),(0,js.Z)(this,"lastErrorStates",new Sa),(0,js.Z)(this,"nextTokensContext",null),(0,js.Z)(this,"nextTokenState",0)}reset(t){this.endErrorCondition(t)}beginErrorCondition(t){this.errorRecoveryMode=!0}inErrorRecoveryMode(t){return this.errorRecoveryMode}endErrorCondition(t){this.errorRecoveryMode=!1,this.lastErrorStates=new Sa,this.lastErrorIndex=-1}reportMatch(t){this.endErrorCondition(t)}reportError(t,e){this.inErrorRecoveryMode(t)||(this.beginErrorCondition(t),e instanceof Ei?this.reportNoViableAlternative(t,e):e instanceof Ac?this.reportInputMismatch(t,e):e instanceof Sc?this.reportFailedPredicate(t,e):t.notifyErrorListeners(e.message,e.offendingToken,e))}recover(t,e){var s,a,r;this.lastErrorIndex===(null===(s=t.inputStream)||void 0===s?void 0:s.index)&&this.lastErrorStates.contains(t.state)&&t.consume(),this.lastErrorIndex=null!==(a=null===(r=t.inputStream)||void 0===r?void 0:r.index)&&void 0!==a?a:0,this.lastErrorStates.addOne(t.state);const i=this.getErrorRecoverySet(t);this.consumeUntil(t,i)}sync(t){if(this.inErrorRecoveryMode(t))return;const e=t.atn.states[t.state],s=t.tokenStream.LA(1),a=t.atn.nextTokens(e);if(a.contains(s))return this.nextTokensContext=null,void(this.nextTokenState=Va.INVALID_STATE_NUMBER);if(a.contains(ca.EPSILON))null===this.nextTokensContext&&(this.nextTokensContext=t.context,this.nextTokenState=t.state);else switch(e.constructor.stateType){case Va.BLOCK_START:case Va.STAR_BLOCK_START:case Va.PLUS_BLOCK_START:case Va.STAR_LOOP_ENTRY:if(null!==this.singleTokenDeletion(t))return;throw new Ac(t);case Va.PLUS_LOOP_BACK:case Va.STAR_LOOP_BACK:{this.reportUnwantedToken(t);const e=new Sa;e.addSet(t.getExpectedTokens());const s=e.addSet(this.getErrorRecoverySet(t));this.consumeUntil(t,s);break}}}reportNoViableAlternative(t,e){if(e.message.length>0)return void t.notifyErrorListeners(e.message,e.offendingToken,e);const s=t.tokenStream;let a;a=null!==s&&e.startToken?e.startToken.type===ca.EOF?"<EOF>":s.getTextFromRange(e.startToken,e.offendingToken):"<unknown input>";const r="no viable alternative at input "+this.escapeWSAndQuote(a);t.notifyErrorListeners(r,e.offendingToken,e)}reportInputMismatch(t,e){if(e.message.length>0)return void t.notifyErrorListeners(e.message,e.offendingToken,e);const s="mismatched input "+this.getTokenErrorDisplay(e.offendingToken)+" expecting "+e.getExpectedTokens().toStringWithVocabulary(t.vocabulary);t.notifyErrorListeners(s,e.offendingToken,e)}reportFailedPredicate(t,e){const s="rule "+t.ruleNames[t.context.ruleIndex]+" "+e.message;t.notifyErrorListeners(s,e.offendingToken,e)}reportUnwantedToken(t){if(this.inErrorRecoveryMode(t))return;this.beginErrorCondition(t);const e=t.getCurrentToken(),s="extraneous input "+this.getTokenErrorDisplay(e)+" expecting "+this.getExpectedTokens(t).toStringWithVocabulary(t.vocabulary);t.notifyErrorListeners(s,e,null)}reportMissingToken(t){if(this.inErrorRecoveryMode(t))return;this.beginErrorCondition(t);const e=t.getCurrentToken(),s="missing "+this.getExpectedTokens(t).toStringWithVocabulary(t.vocabulary)+" at "+this.getTokenErrorDisplay(e);t.notifyErrorListeners(s,e,null)}recoverInline(t){const e=this.singleTokenDeletion(t);if(e)return t.consume(),e;if(this.singleTokenInsertion(t))return this.getMissingSymbol(t);throw new Ac(t)}singleTokenInsertion(t){var e,s,a;const r=null!==(e=null===(s=t.tokenStream)||void 0===s?void 0:s.LA(1))&&void 0!==e?e:-1,i=t.atn,c=i.states[t.state].transitions[0].target;return!!i.nextTokens(c,null!==(a=t.context)&&void 0!==a?a:void 0).contains(r)&&(this.reportMissingToken(t),!0)}singleTokenDeletion(t){var e,s;const a=null!==(e=null===(s=t.tokenStream)||void 0===s?void 0:s.LA(2))&&void 0!==e?e:-1;if(this.getExpectedTokens(t).contains(a)){this.reportUnwantedToken(t),t.consume();const e=t.getCurrentToken();return this.reportMatch(t),e}return null}getMissingSymbol(t){var e;const s=t.getCurrentToken(),a=this.getExpectedTokens(t);let r,i=ca.INVALID_TYPE;0!==a.length&&(i=a.minElement),r=i===ca.EOF?"<missing EOF>":"<missing "+t.vocabulary.getDisplayName(i)+">";let c=s;const n=null===(e=t.tokenStream)||void 0===e?void 0:e.LT(-1);return c.type===ca.EOF&&null!==n&&(c=n),t.getTokenFactory().create(c.source,i,r,ca.DEFAULT_CHANNEL,-1,-1,c.line,c.column)}getExpectedTokens(t){return t.getExpectedTokens()}getTokenErrorDisplay(t){if(null===t)return"<no token>";let e=t.text;return e||(e=t.type===ca.EOF?"<EOF>":"<"+t.type+">"),this.escapeWSAndQuote(e)}escapeWSAndQuote(t){return"'"+(t=(t=(t=t.replace(/\n/g,"\\n")).replace(/\r/g,"\\r")).replace(/\t/g,"\\t"))+"'"}getErrorRecoverySet(t){const e=t.atn;let s=t.context;const a=new Sa;for(;null!==s&&s.invokingState>=0;){const t=e.states[s.invokingState].transitions[0],r=e.nextTokens(t.followState);a.addSet(r),s=s.parent}return a.removeOne(ca.EPSILON),a}consumeUntil(t,e){var s,a;let r=null!==(s=null===(a=t.tokenStream)||void 0===a?void 0:a.LA(1))&&void 0!==s?s:-1;for(;r!==ca.EOF&&!e.contains(r);){var i,c;t.consume(),r=null!==(i=null===(c=t.tokenStream)||void 0===c?void 0:c.LA(1))&&void 0!==i?i:-1}}},Ea(is,"DefaultErrorStrategy"),is),Ic=(Ea(cs=class extends Oc{recover(t,e){throw new ti(e)}recoverInline(t){const e=new Ac(t);throw new ti(e)}sync(t){}},"BailErrorStrategy"),cs),uc=(Ea(ns=class{constructor(t,e){(0,js.Z)(this,"sourceName",void 0),(0,js.Z)(this,"tokenFactory",qr.DEFAULT),(0,js.Z)(this,"tokens",void 0),(0,js.Z)(this,"i",void 0),(0,js.Z)(this,"eofToken",void 0),this.tokens=t,this.sourceName=null!==e&&void 0!==e?e:""}get column(){if(this.i<this.tokens.length)return this.tokens[this.i].column;if(null!==this.eofToken)return this.eofToken.column;if(this.tokens.length>0){const t=this.tokens[this.tokens.length-1],e=t.text;if(e){const t=e.lastIndexOf("\n");if(t>=0)return e.length-t-1}return t.column+t.stop-t.start+1}return 0}nextToken(){if(this.i>=this.tokens.length){if(null===this.eofToken){let t=-1;if(this.tokens.length>0){const e=this.tokens[this.tokens.length-1].stop;-1!==e&&(t=e+1)}const e=Math.max(-1,t-1);this.eofToken=this.tokenFactory.create([this,this.inputStream],ca.EOF,"EOF",ca.DEFAULT_CHANNEL,t,e,this.line,this.column)}return this.eofToken}const t=this.tokens[this.i];return this.i===this.tokens.length-1&&t.type===ca.EOF&&(this.eofToken=t),this.i++,t}get line(){if(this.i<this.tokens.length)return this.tokens[this.i].line;if(null!==this.eofToken)return this.eofToken.line;if(this.tokens.length>0){const t=this.tokens[this.tokens.length-1];let e=t.line;const s=t.text;if(s)for(const a of s)"\n"===a&&e++;return e}return 1}get inputStream(){return this.i<this.tokens.length?this.tokens[this.i].inputStream:null!==this.eofToken?this.eofToken.inputStream:this.tokens.length>0?this.tokens[this.tokens.length-1].inputStream:null}getSourceName(){if(null!==this.sourceName)return this.sourceName;const t=this.inputStream;return null!==t?t.getSourceName():"List"}},"ListTokenSource"),ns),Nc=(Es=new WeakMap,Ea(hs=class extends ga{constructor(t,e,s){super(e,s),r(this,Es,{writable:!0,value:void 0}),$s(this,Es,t)}get ruleIndex(){return ea(this,Es)}},"InterpreterRuleContext"),hs),Lc=(Ea(Ts=class{constructor(t){(0,js.Z)(this,"parser",void 0),this.parser=t}enterEveryRule(t){var e,s;console.log("enter "+this.parser.ruleNames[t.ruleIndex]+", LT(1)="+(null===(e=this.parser.inputStream)||void 0===e||null===(s=e.LT(1))||void 0===s?void 0:s.text))}visitTerminal(t){console.log("consume "+t.getSymbol()+" rule "+this.parser.ruleNames[this.parser.context.ruleIndex])}exitEveryRule(t){var e,s;console.log("exit "+this.parser.ruleNames[t.ruleIndex]+", LT(1)="+(null===(e=this.parser.inputStream)||void 0===e||null===(s=e.LT(1))||void 0===s?void 0:s.text))}visitErrorNode(t){}},"TraceListener"),Ts),Cc=(Rs=new WeakMap,As=new WeakMap,Ss=new WeakMap,os=class extends Jr{constructor(t){super(),(0,js.Z)(this,"printer",null),(0,js.Z)(this,"buildParseTrees",!0),(0,js.Z)(this,"errorHandler",new Oc),(0,js.Z)(this,"context",null),(0,js.Z)(this,"precedenceStack",[]),(0,js.Z)(this,"parseListeners",null),(0,js.Z)(this,"syntaxErrors",0),(0,js.Z)(this,"matchedEOF",!1),r(this,Rs,{writable:!0,value:null}),r(this,As,{writable:!0,value:null}),r(this,Ss,{writable:!0,value:void 0}),this.precedenceStack.push(0),this.syntaxErrors=0,$s(this,Ss,t)}reset(){(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&this.inputStream.seek(0),this.errorHandler.reset(this),this.context=null,this.syntaxErrors=0,this.setTrace(!1),this.precedenceStack=[],this.precedenceStack.push(0),this.interpreter&&this.interpreter.reset()}match(t){let e=this.getCurrentToken();return e.type===t?(this.errorHandler.reportMatch(this),this.consume()):(e=this.errorHandler.recoverInline(this),this.buildParseTrees&&-1===e.tokenIndex&&this.context.addErrorNode(this.createErrorNode(this.context,e))),e}matchWildcard(){let t=this.getCurrentToken();return t.type>0?(this.errorHandler.reportMatch(this),this.consume()):(t=this.errorHandler.recoverInline(this),this.buildParseTrees&&-1===t.tokenIndex&&this.context.addErrorNode(this.createErrorNode(this.context,t))),t}getParseListeners(){var t;return null!==(t=this.parseListeners)&&void 0!==t?t:[]}addParseListener(t){if(null===t)throw new Error("listener");null===this.parseListeners&&(this.parseListeners=[]),this.parseListeners.push(t)}removeParseListener(t){if(null!==this.parseListeners&&null!==t){const e=this.parseListeners.indexOf(t);e>=0&&this.parseListeners.splice(e,1),0===this.parseListeners.length&&(this.parseListeners=null)}}removeParseListeners(){this.parseListeners=null}triggerEnterRuleEvent(){if(null!==this.parseListeners){const t=this.context;this.parseListeners.forEach((e=>{e.enterEveryRule(t),t.enterRule(e)}))}}triggerExitRuleEvent(){if(null!==this.parseListeners){const t=this.context;this.parseListeners.slice(0).reverse().forEach((e=>{t.exitRule(e),e.exitEveryRule(t)}))}}getTokenFactory(){return this.inputStream.tokenSource.tokenFactory}setTokenFactory(t){this.inputStream.tokenSource.tokenFactory=t}compileParseTreePattern(t,e,s){if(!s&&null!==this.tokenStream){const t=this.tokenStream.tokenSource;t instanceof $r&&(s=t)}if(!s)throw new Error("Parser can't discover a lexer to use");return new Dc(s,this).compile(t,e)}getATNWithBypassAlts(){const t=this.getSerializedATN();if(null===t)throw new Error("The current parser does not support an ATN with bypass alternatives.");if(null!==ea(this,As))return ea(this,As);return $s(this,As,new fr({readOnly:!1,verifyATN:!0,generateRuleBypassTransitions:!0}).deserialize(t)),ea(this,As)}get numberOfSyntaxErrors(){return this.syntaxErrors}get inputStream(){return ea(this,Ss)}set inputStream(t){this.tokenStream=t}get tokenStream(){return ea(this,Ss)}set tokenStream(t){this.reset(!1),$s(this,Ss,t)}getCurrentToken(){return this.inputStream.LT(1)}notifyErrorListeners(t,e,s){var a,r;s=null!==(r=s)&&void 0!==r?r:null,null===(e=null!==(a=e)&&void 0!==a?a:null)&&(e=this.getCurrentToken()),this.syntaxErrors+=1;const i=e.line,c=e.column;this.errorListenerDispatch.syntaxError(this,e,i,c,t,s)}consume(){const t=this.getCurrentToken();t.type!==ca.EOF&&this.tokenStream.consume();const e=null!==this.parseListeners&&this.parseListeners.length>0;if(this.buildParseTrees||e){let s;s=this.errorHandler.inErrorRecoveryMode(this)?this.context.addErrorNode(this.createErrorNode(this.context,t)):this.context.addTokenNode(t),e&&this.parseListeners.forEach((t=>{s instanceof Da?t.visitErrorNode(s):t.visitTerminal(s)}))}return t}addContextToParseTree(){var t;null!==(null===(t=this.context)||void 0===t?void 0:t.parent)&&this.context.parent.addChild(this.context)}enterRule(t,e,s){this.state=e,this.context=t,this.context.start=this.inputStream.LT(1),this.buildParseTrees&&this.addContextToParseTree(),this.triggerEnterRuleEvent()}exitRule(){this.context.stop=this.inputStream.LT(-1),this.triggerExitRuleEvent(),this.state=this.context.invokingState,this.context=this.context.parent}enterOuterAlt(t,e){t.setAltNumber(e),this.buildParseTrees&&this.context!==t&&null!==this.context.parent&&(this.context.parent.removeLastChild(),this.context.parent.addChild(t)),this.context=t}getPrecedence(){return 0===this.precedenceStack.length?-1:this.precedenceStack[this.precedenceStack.length-1]}enterRecursionRule(t,e,s,a){this.state=e,this.precedenceStack.push(a),this.context=t,this.context.start=this.inputStream.LT(1),this.triggerEnterRuleEvent()}pushNewRecursionContext(t,e,s){const a=this.context;a.parent=t,a.invokingState=e,a.stop=this.inputStream.LT(-1),this.context=t,this.context.start=a.start,this.buildParseTrees&&this.context.addChild(a),this.triggerEnterRuleEvent()}unrollRecursionContexts(t){this.precedenceStack.pop(),this.context.stop=this.inputStream.LT(-1);const e=this.context,s=this.getParseListeners();if(null!==s&&s.length>0)for(;this.context!==t;)this.triggerExitRuleEvent(),this.context=this.context.parent;else this.context=t;e.parent=t,this.buildParseTrees&&null!==t&&t.addChild(e)}getInvokingContext(t){let e=this.context;for(;null!==e;){if(e.ruleIndex===t)return e;e=e.parent}return null}precpred(t,e){return e>=this.precedenceStack[this.precedenceStack.length-1]}inContext(t){return!1}isExpectedToken(t){const e=this.interpreter.atn;let s=this.context;const a=e.states[this.state];let r=e.nextTokens(a);if(r.contains(t))return!0;if(!r.contains(ca.EPSILON))return!1;for(;null!==s&&s.invokingState>=0&&r.contains(ca.EPSILON);){const a=e.states[s.invokingState].transitions[0];if(r=e.nextTokens(a.followState),r.contains(t))return!0;s=s.parent}return!(!r.contains(ca.EPSILON)||t!==ca.EOF)}getExpectedTokens(){return this.interpreter.atn.getExpectedTokens(this.state,this.context)}getExpectedTokensWithinCurrentRule(){const t=this.interpreter.atn,e=t.states[this.state];return t.nextTokens(e)}getRuleIndex(t){var e;return null!==(e=this.getRuleIndexMap().get(t))&&void 0!==e?e:-1}getRuleInvocationStack(t){var e;null===(t=null!==(e=t)&&void 0!==e?e:null)&&(t=this.context);const s=[];for(;null!==t;){const e=t.ruleIndex;e<0?s.push("n/a"):s.push(this.ruleNames[e]),t=t.parent}return s}getDFAStrings(){return this.interpreter.decisionToDFA.toString()}dumpDFA(){let t=!1;for(const e of this.interpreter.decisionToDFA)e.length>0&&(t&&console.log(),this.printer&&(this.printer.println("Decision "+e.decision+":"),this.printer.print(e.toString(this.vocabulary))),t=!0)}getSourceName(){return this.inputStream.getSourceName()}setProfile(t){const e=this.interpreter,s=e.predictionMode;if(t)e instanceof li||(this.interpreter=new li(this));else if(e instanceof li){const t=e.sharedContextCache;if(t){const s=new Ai(this,this.atn,e.decisionToDFA,t);this.interpreter=s}}this.interpreter.predictionMode=s}setTrace(t){t?(null!==ea(this,Rs)&&this.removeParseListener(ea(this,Rs)),$s(this,Rs,new Lc(this)),this.addParseListener(ea(this,Rs))):(this.removeParseListener(ea(this,Rs)),$s(this,Rs,null))}createTerminalNode(t,e){return new ma(e)}createErrorNode(t,e){return new Da(e)}},Ea(os,"Parser"),os),_c=(Os=new WeakMap,Is=new WeakMap,us=new WeakMap,Ns=new WeakMap,Ls=new WeakMap,Cs=new WeakMap,_s=new WeakMap,Ps=new WeakMap,Ms=new WeakMap,ds=new WeakMap,Us=new WeakMap,ms=new WeakMap,ls=class extends Cc{constructor(t,e,s,a,i){super(i),(0,js.Z)(this,"rootContext",void 0),(0,js.Z)(this,"parentContextStack",[]),r(this,Os,{writable:!0,value:-1}),r(this,Is,{writable:!0,value:-1}),r(this,us,{writable:!0,value:-1}),r(this,Ns,{writable:!0,value:!1}),r(this,Ls,{writable:!0,value:null}),r(this,Cs,{writable:!0,value:void 0}),r(this,_s,{writable:!0,value:void 0}),r(this,Ps,{writable:!0,value:void 0}),r(this,Ms,{writable:!0,value:void 0}),r(this,ds,{writable:!0,value:void 0}),r(this,Us,{writable:!0,value:new Si}),r(this,ms,{writable:!0,value:void 0}),$s(this,Cs,t),$s(this,_s,a),$s(this,Ps,s.slice(0)),$s(this,Ms,e),$s(this,ms,new Wa);for(const r of a.states)r instanceof Tr&&r.precedenceRuleDecision&&ea(this,ms).set(r.stateNumber);$s(this,ds,a.decisionToState.map(((t,e)=>new ni(t,e)))),this.interpreter=new Ai(this,a,ea(this,ds),ea(this,Us))}reset(){super.reset(),$s(this,Ns,!1),$s(this,Ls,null)}get atn(){return ea(this,_s)}get vocabulary(){return ea(this,Ms)}get ruleNames(){return ea(this,Ps)}get grammarFileName(){return ea(this,Cs)}get atnState(){return ea(this,_s).states[this.state]}parse(t){var e;const s=ea(this,_s).ruleToStartState[t];for(this.rootContext=this.createInterpreterRuleContext(null,Va.INVALID_STATE_NUMBER,t),s.isPrecedenceRule?this.enterRecursionRule(this.rootContext,s.stateNumber,t,0):this.enterRule(this.rootContext,s.stateNumber,t);;){const t=this.atnState;if(t.constructor.stateType===Va.RULE_STOP){if(null!==(e=this.context)&&void 0!==e&&e.isEmpty){if(s.isPrecedenceRule){const t=this.context,e=this.parentContextStack.pop();return this.unrollRecursionContexts(e[0]),t}return this.exitRule(),this.rootContext}this.visitRuleStopState(t)}else try{this.visitState(t)}catch(a){if(!(a instanceof jr))throw a;this.state=ea(this,_s).ruleToStopState[t.ruleIndex].stateNumber,this.errorHandler.reportError(this,a),this.recover(a)}}}addDecisionOverride(t,e,s){$s(this,Os,t),$s(this,Is,e),$s(this,us,s)}get overrideDecisionRoot(){return ea(this,Ls)}enterRecursionRule(t,e,s,a){this.parentContextStack.push([this.context,t.invokingState]),super.enterRecursionRule(t,e,s,a)}visitState(t){let e=1;t instanceof er&&(e=this.visitDecisionState(t));const s=t.transitions[e-1];switch(s.transitionType){case la.EPSILON:if(ea(this,ms).get(t.stateNumber)&&s.target.constructor.stateType!==Va.LOOP_END){const e=this.parentContextStack[this.parentContextStack.length-1],s=this.createInterpreterRuleContext(e[0],e[1],this.context.ruleIndex);this.pushNewRecursionContext(s,ea(this,_s).ruleToStartState[t.ruleIndex].stateNumber,this.context.ruleIndex)}break;case la.ATOM:this.match(s.label.minElement);break;case la.RANGE:case la.SET:case la.NOT_SET:s.matches(this.inputStream.LA(1),ca.MIN_USER_TOKEN_TYPE,65535)||this.recoverInline(),this.matchWildcard();break;case la.WILDCARD:this.matchWildcard();break;case la.RULE:const e=s.target,a=e.ruleIndex,r=this.createInterpreterRuleContext(this.context,t.stateNumber,a);e.isPrecedenceRule?this.enterRecursionRule(r,e.stateNumber,a,s.precedence):this.enterRule(r,s.target.stateNumber,a);break;case la.PREDICATE:const i=s;if(!this.sempred(this.context,i.ruleIndex,i.predIndex))throw new Sc(this);break;case la.ACTION:const c=s;this.action(this.context,c.ruleIndex,c.actionIndex);break;case la.PRECEDENCE:if(!this.precpred(this.context,s.precedence)){const t=s.precedence;throw new Sc(this,"precpred(_ctx, ".concat(t,")"))}break;default:throw new Error("UnsupportedOperationException: Unrecognized ATN transition type.")}this.state=s.target.stateNumber}visitDecisionState(t){let e=1;if(t.transitions.length>1){this.errorHandler.sync(this);const s=t.decision;s!==ea(this,Os)||this.inputStream.index!==ea(this,Is)||ea(this,Ns)?e=this.interpreter.adaptivePredict(this.inputStream,s,this.context):(e=ea(this,us),$s(this,Ns,!0))}return e}createInterpreterRuleContext(t,e,s){return new Nc(s,t,e)}visitRuleStopState(t){if(ea(this,_s).ruleToStartState[t.ruleIndex].isPrecedenceRule){const[t,e]=this.parentContextStack.pop();this.unrollRecursionContexts(t),this.state=e}else this.exitRule();const e=ea(this,_s).states[this.state].transitions[0];this.state=e.followState.stateNumber}recover(t){const e=this.inputStream.index;if(this.errorHandler.recover(this,t),this.inputStream.index===e){var s;const e=t.offendingToken;if(!e)throw new Error("Expected exception to have an offending token");const a=e.tokenSource,r=[a,null!==(s=null===a||void 0===a?void 0:a.inputStream)&&void 0!==s?s:null];if(t instanceof Ac){const s=t.getExpectedTokens();if(!s)throw new Error("Expected the exception to provide expected tokens");let a=ca.INVALID_TYPE;0!==s.length&&(a=s.minElement);const i=this.getTokenFactory().create(r,a,e.text,ca.DEFAULT_CHANNEL,-1,-1,e.line,e.column);this.context.addErrorNode(this.createErrorNode(this.context,i))}else{const t=this.getTokenFactory().create(r,ca.INVALID_TYPE,e.text,ca.DEFAULT_CHANNEL,-1,-1,e.line,e.column);this.context.addErrorNode(this.createErrorNode(this.context,t))}}}recoverInline(){return this.errorHandler.recoverInline(this)}},Ea(ls,"ParserInterpreter"),ls),Pc=(Ds=class extends Map{map(t,e){let s=this.get(t);s||(s=new Array,this.set(t,s)),s.push(e)}getPairs(){const t=new Array;for(const s of this.keys()){var e;const a=null!==(e=this.get(s))&&void 0!==e?e:[];for(const e of a)t.push([s,e])}return t}},Ea(Ds,"MultiMap"),Ds),Mc=(Ea(ps=class{constructor(t,e,s){(0,js.Z)(this,"label",void 0),(0,js.Z)(this,"ruleName",void 0),(0,js.Z)(this,"bypassTokenType",void 0),this.ruleName=t,this.bypassTokenType=e,this.label=s}get channel(){return ca.DEFAULT_CHANNEL}get text(){return null!==this.label?"<"+this.label+":"+this.ruleName+">":"<"+this.ruleName+">"}get type(){return this.bypassTokenType}get line(){return 0}get column(){return-1}get tokenIndex(){return-1}get start(){return-1}get stop(){return-1}get tokenSource(){return null}get inputStream(){return null}toString(){return this.ruleName+":"+this.bypassTokenType}},"RuleTagToken"),ps),dc=(Ea(gs=class extends Tc{constructor(){let t,e;if(1===arguments.length?e=arguments.length<=0?void 0:arguments[0]:(t=arguments.length<=0?void 0:arguments[0],e=arguments.length<=1?void 0:arguments[1]),super(),(0,js.Z)(this,"tag",void 0),(0,js.Z)(this,"label",void 0),!e)throw new Error("tag cannot be null or empty");this.label=t,this.tag=e}toString(){return null!==this.label?this.label+":"+this.tag:this.tag}},"TagChunk"),gs),Uc=(Ea(xs=class extends Tc{constructor(t){super(),(0,js.Z)(this,"text",void 0),this.text=t}toString(){return"'"+this.text+"'"}},"TextChunk"),xs),mc=(Ea(ks=class extends Zr{constructor(t,e,s){super({type:e,source:Zr.EMPTY_SOURCE}),(0,js.Z)(this,"tokenName",void 0),(0,js.Z)(this,"label",void 0),this.tokenName=t,this.label=s}get text(){return null!==this.label?"<"+this.label+":"+this.tokenName+">":"<"+this.tokenName+">"}toString(){return this.tokenName+":"+this.type}},"TokenTagToken"),ks),Dc=(Hs=class t{constructor(t,e){(0,js.Z)(this,"start","<"),(0,js.Z)(this,"stop",">"),(0,js.Z)(this,"escape","\\"),(0,js.Z)(this,"lexer",void 0),(0,js.Z)(this,"parser",void 0),this.lexer=t,this.parser=e}setDelimiters(t,e,s){if(null===t||0===t.length)throw new Error("start cannot be null or empty");if(null===e||0===e.length)throw new Error("stop cannot be null or empty");this.start=t,this.stop=e,this.escape=s}matches(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];switch(e.length){case 2:{const[t,s]=e,a=new Pc;return null===this.matchImpl(t,s.getPatternTree(),a)}case 3:{const[t,s,a]=e,r=this.compile(s,a);return this.matches(t,r)}default:throw new Error("Invalid number of arguments")}}match(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];switch(e.length){case 2:{const[t,s]=e,a=new Pc,r=this.matchImpl(t,s.getPatternTree(),a);return new oc(t,s,a,r)}case 3:{const[t,s,a]=e,r=this.compile(s,a);return this.match(t,r)}default:throw new Error("Invalid number of arguments")}}compile(e,s){const a=this.tokenize(e),r=new uc(a),i=new $i(r),c=new _c(this.parser.grammarFileName,this.parser.vocabulary,this.parser.ruleNames,this.parser.getATNWithBypassAlts(),i);let n=null;try{c.errorHandler=new Ic,n=c.parse(s)}catch(h){if(h instanceof ti){throw h.cause}throw h instanceof jr?h:h instanceof Error?new t.CannotInvokeStartRule(h):h}if(i.LA(1)!==ca.EOF)throw new t.StartRuleDoesNotConsumeFullPattern;return new Rc(this,e,s,n)}getLexer(){return this.lexer}getParser(){return this.parser}tokenize(t){const e=this.split(t),s=new Array;for(const a of e)if(a instanceof dc){const e=a,r=e.tag[0];if(r===r.toUpperCase()){const a=this.parser.getTokenType(e.tag);if(a===ca.INVALID_TYPE)throw new Error("Unknown token "+e.tag+" in pattern: "+t);const r=new mc(e.tag,a,e.label);s.push(r)}else{if(r!==r.toLowerCase())throw new Error("invalid tag: "+e.tag+" in pattern: "+t);{const a=this.parser.getRuleIndex(e.tag);if(-1===a)throw new Error("Unknown rule "+e.tag+" in pattern: "+t);const r=this.parser.getATNWithBypassAlts().ruleToTokenType[a];s.push(new Mc(e.tag,r,e.label))}}}else{const t=a,e=Oi.fromString(t.text);this.lexer.inputStream=e;let r=this.lexer.nextToken();for(;r.type!==ca.EOF;)s.push(r),r=this.lexer.nextToken()}return s}split(t){let e=0;const s=t.length,a=new Array,r=new Array,i=new Array;for(;e<s;)e===t.indexOf(this.escape+this.start,e)?e+=this.escape.length+this.start.length:e===t.indexOf(this.escape+this.stop,e)?e+=this.escape.length+this.stop.length:e===t.indexOf(this.start,e)?(r.push(e),e+=this.start.length):e===t.indexOf(this.stop,e)?(i.push(e),e+=this.stop.length):e++;if(r.length>i.length)throw new Error("unterminated tag in pattern: "+t);if(r.length<i.length)throw new Error("missing start tag in pattern: "+t);const c=r.length;for(let n=0;n<c;n++)if(r[n]>=i[n])throw new Error("tag delimiters out of order in pattern: "+t);if(0===c){const e=t.substring(0,s);a.push(new Uc(e))}if(c>0&&r[0]>0){const e=t.substring(0,r[0]);a.push(new Uc(e))}for(let n=0;n<c;n++){const e=t.substring(r[n]+this.start.length,i[n]);let s,h=e;const E=e.indexOf(":");if(E>=0&&(s=e.substring(0,E),h=e.substring(E+1,e.length)),a.push(new dc(s,h)),n+1<c){const e=t.substring(i[n]+this.stop.length,r[n+1]);a.push(new Uc(e))}}if(c>0){const e=i[c-1]+this.stop.length;if(e<s){const r=t.substring(e,s);a.push(new Uc(r))}}for(let n=0;n<a.length;n++){const t=a[n];if(t instanceof Uc){const e=t,s=e.text.replace(this.escape,"");s.length<e.text.length&&(a[n]=new Uc(s))}}return a}matchImpl(t,e,s){if(t instanceof ma&&e instanceof ma){const a=t,r=e;let i;if(a.getSymbol().type===r.getSymbol().type)if(r.getSymbol()instanceof mc){const e=r.getSymbol();s.map(e.tokenName,t),void 0!==e.label&&s.map(e.label,t)}else a.getText()===r.getText()||i||(i=a);else i||(i=a);return i}if(t instanceof ga&&e instanceof ga){let a;const r=this.getRuleTagToken(e);if(r)return t.ruleIndex===e.ruleIndex?(s.map(r.ruleName,t),r.label&&s.map(r.label,t)):a||(a=t),a;if(t.getChildCount()!==e.getChildCount())return a||(a=t),a;const i=t.getChildCount();for(let c=0;c<i;c++){const a=this.matchImpl(t.getChild(c),e.getChild(c),s);if(a)return a}return a}return t}getRuleTagToken(t){if(t instanceof ga&&1===t.getChildCount()&&t.getChild(0)instanceof ma){const e=t.getChild(0);if(e.getSymbol()instanceof Mc)return e.getSymbol()}}},Ea(Hs,"ParseTreePatternMatcher"),(0,js.Z)(Hs,"CannotInvokeStartRule",(Gs=class extends Error{constructor(t){super(),this.cause=t}},Ea(Gs,"CannotInvokeStartRule"),Gs)),(0,js.Z)(Hs,"StartRuleDoesNotConsumeFullPattern",(Fs=class extends Error{},Ea(Fs,"StartRuleDoesNotConsumeFullPattern"),Fs)),Hs),pc=(vs=class extends Xr{constructor(t){super(),(0,js.Z)(this,"exactOnly",void 0),(0,js.Z)(this,"reportAmbiguity",((t,e,s,a,r,i,c)=>{var n;if(this.exactOnly&&!r)return;const h=this.getDecisionDescription(t,e),E=this.getConflictingAlts(i,c),T=null===(n=t.tokenStream)||void 0===n?void 0:n.getTextFromInterval(oa.of(s,a)),o="reportAmbiguity d=".concat(h,": ambigAlts=").concat(E,", input='").concat(T,"'");t.notifyErrorListeners(o,null,null)})),(0,js.Z)(this,"reportAttemptingFullContext",((t,e,s,a,r,i)=>{var c;const n=this.getDecisionDescription(t,e),h=null===(c=t.tokenStream)||void 0===c?void 0:c.getTextFromInterval(oa.of(s,a)),E="reportAttemptingFullContext d=".concat(n,", input='").concat(h,"'");t.notifyErrorListeners(E,null,null)})),(0,js.Z)(this,"reportContextSensitivity",((t,e,s,a,r,i)=>{var c;const n=this.getDecisionDescription(t,e),h=null===(c=t.tokenStream)||void 0===c?void 0:c.getTextFromInterval(oa.of(s,a)),E="reportContextSensitivity d=".concat(n,", input='").concat(h,"'");t.notifyErrorListeners(E,null,null)})),(0,js.Z)(this,"getDecisionDescription",((t,e)=>{const s=e.decision,a=e.atnStartState.ruleIndex,r=t.ruleNames;if(a<0||a>=r.length)return s.toString();const i=r[a];return 0===i.length?s.toString():"".concat(s," (").concat(i,")")})),(0,js.Z)(this,"getConflictingAlts",((t,e)=>{if(t)return t;const s=new Wa;for(let a=0;a<e.configs.length;a++)s.set(e.configs[a].alt);return s})),this.exactOnly=null===t||void 0===t||t}},Ea(vs,"DiagnosticErrorListener"),ys=new WeakMap,fs=new WeakMap,Ys=new WeakMap,ws=new WeakMap,bs=new WeakMap,Ws=new WeakMap,Vs=new WeakMap,Xs=new WeakMap,Bs=class extends $r{constructor(t,e,s,a,i,c,n){if(super(n),r(this,ys,{writable:!0,value:void 0}),r(this,fs,{writable:!0,value:void 0}),r(this,Ys,{writable:!0,value:void 0}),r(this,ws,{writable:!0,value:void 0}),r(this,bs,{writable:!0,value:void 0}),r(this,Ws,{writable:!0,value:void 0}),r(this,Vs,{writable:!0,value:void 0}),r(this,Xs,{writable:!0,value:new Si}),c.grammarType!==ja.LEXER)throw new Error("IllegalArgumentException: The ATN must be a lexer ATN.");$s(this,ys,t),$s(this,fs,c),$s(this,Ys,s.slice(0)),$s(this,ws,a.slice(0)),$s(this,bs,i.slice(0)),$s(this,Ws,e),$s(this,Vs,c.decisionToState.map(((t,e)=>new ni(t,e)))),this.interpreter=new hi(this,c,ea(this,Vs),ea(this,Xs))}get atn(){return ea(this,fs)}get grammarFileName(){return ea(this,ys)}get ruleNames(){return ea(this,Ys)}get channelNames(){return ea(this,ws)}get modeNames(){return ea(this,bs)}get vocabulary(){return ea(this,Ws)}},Ea(Bs,"LexerInterpreter"),Ks=class t{constructor(t){(0,js.Z)(this,"tokens",void 0),(0,js.Z)(this,"programs",new Map),(0,js.Z)(this,"lastRewriteTokenIndexes",void 0),this.tokens=t}getTokenStream(){return this.tokens}insertAfter(e,s){let a,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.DEFAULT_PROGRAM_NAME;a="number"===typeof e?e:e.tokenIndex;const i=this.getProgram(r),c=new xc(this.tokens,a,i.length,s);i.push(c)}insertBefore(e,s){let a,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.DEFAULT_PROGRAM_NAME;a="number"===typeof e?e:e.tokenIndex;const i=this.getProgram(r),c=new gc(this.tokens,a,i.length,s);i.push(c)}replaceSingle(e,s){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.DEFAULT_PROGRAM_NAME;this.replace(e,e,s,a)}replace(e,s,a){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.DEFAULT_PROGRAM_NAME;if("number"!==typeof e&&(e=e.tokenIndex),"number"!==typeof s&&(s=s.tokenIndex),e>s||e<0||s<0||s>=this.tokens.size)throw new RangeError("replace: range invalid: ".concat(e,"..").concat(s,"(size=").concat(this.tokens.size,")"));const i=this.getProgram(r),c=new kc(this.tokens,e,s,i.length,a);i.push(c)}delete(e,s){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.DEFAULT_PROGRAM_NAME;null==s&&(s=e),this.replace(e,s,null,a)}getProgram(t){let e=this.programs.get(t);return null==e&&(e=this.initializeProgram(t)),e}initializeProgram(t){const e=[];return this.programs.set(t,e),e}getText(e){let s,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t.DEFAULT_PROGRAM_NAME;s=e instanceof oa?e:new oa(0,this.tokens.size-1),"string"===typeof e&&(a=e);const r=this.programs.get(a);let i=s.start,c=s.stop;if(c>this.tokens.size-1&&(c=this.tokens.size-1),i<0&&(i=0),null==r||0===r.length)return this.tokens.getTextFromInterval(new oa(i,c));const n=[],h=this.reduceToSingleOperationPerIndex(r);let E=i;for(;E<=c&&E<this.tokens.size;){const t=h.get(E);h.delete(E);const e=this.tokens.get(E);null==t?(e.type!==ca.EOF&&n.push(String(e.text)),E++):E=t.execute(n)}if(c===this.tokens.size-1)for(const t of h.values())t&&t.index>=this.tokens.size-1&&n.push(String(t.text));return n.join("")}reduceToSingleOperationPerIndex(t){for(let s=0;s<t.length;s++){const e=t[s];if(null==e)continue;if(!(e instanceof kc))continue;const a=e,r=this.getKindOfOps(t,gc,s);for(const s of r)s.index===a.index?(t[s.instructionIndex]=null,a.text=String(s.text)+(null!=a.text?a.text.toString():"")):s.index>a.index&&s.index<=a.lastIndex&&(t[s.instructionIndex]=null);const i=this.getKindOfOps(t,kc,s);for(const s of i){if(s.index>=a.index&&s.lastIndex<=a.lastIndex){t[s.instructionIndex]=null;continue}const e=s.lastIndex<a.index||s.index>a.lastIndex;if(null!=s.text||null!=a.text||e){if(!e)throw new Error("replace op boundaries of ".concat(a," overlap with previous ").concat(s))}else t[s.instructionIndex]=null,a.index=Math.min(s.index,a.index),a.lastIndex=Math.max(s.lastIndex,a.lastIndex)}}for(let s=0;s<t.length;s++){const e=t[s];if(null==e)continue;if(!(e instanceof gc))continue;const a=e,r=this.getKindOfOps(t,gc,s);for(const s of r)s.index===a.index&&(s instanceof xc?(a.text=this.catOpText(s.text,a.text),t[s.instructionIndex]=null):s instanceof gc&&(a.text=this.catOpText(a.text,s.text),t[s.instructionIndex]=null));const i=this.getKindOfOps(t,kc,s);for(const c of i)if(a.index!==c.index){if(a.index>=c.index&&a.index<=c.lastIndex)throw new Error("insert op ".concat(a," within boundaries of previous ").concat(c))}else c.text=this.catOpText(a.text,c.text),t[s]=null}const e=new Map;for(const s of t)if(null!=s){if(null!=e.get(s.index))throw new Error("should only be one op per index");e.set(s.index,s)}return e}catOpText(t,e){let s="",a="";return null!=t&&(s=t.toString()),null!=e&&(a=e.toString()),s+a}getKindOfOps(t,e,s){return t.slice(0,s).filter((t=>t&&t instanceof e))}},Ea(Ks,"TokenStreamRewriter"),(0,js.Z)(Ks,"DEFAULT_PROGRAM_NAME","default"),(0,js.Z)(Ks,"PROGRAM_INIT_SIZE",100),(0,js.Z)(Ks,"MIN_TOKEN_INDEX",0),Ea(Qs=class{constructor(t,e,s,a){(0,js.Z)(this,"instructionIndex",void 0),(0,js.Z)(this,"index",void 0),(0,js.Z)(this,"text",void 0),(0,js.Z)(this,"tokens",void 0),this.tokens=t,this.instructionIndex=s,this.index=e,this.text=void 0===a?"":a}execute(t){return this.index}toString(){return"<RewriteOperation@"+this.tokens.get(this.index)+':"'+this.text+'">'}},"RewriteOperation"),Qs),gc=(Ea(Js=class extends pc{constructor(t,e,s,a){super(t,e,s,a)}execute(t){return this.text&&t.push(this.text.toString()),this.tokens.get(this.index).type!==ca.EOF&&t.push(String(this.tokens.get(this.index).text)),this.index+1}toString(){return"<InsertBeforeOp@"+this.tokens.get(this.index)+':"'+this.text+'">'}},"InsertBeforeOp"),Js),xc=(Ea(Zs=class extends gc{constructor(t,e,s,a){super(t,e+1,s,a)}toString(){return"<InsertAfterOp@"+this.tokens.get(this.index)+':"'+this.text+'">'}},"InsertAfterOp"),Zs),kc=(qs=class extends pc{constructor(t,e,s,a,r){super(t,e,a,r),(0,js.Z)(this,"lastIndex",void 0),this.lastIndex=s}execute(t){return this.text&&t.push(this.text.toString()),this.lastIndex+1}toString(){return null==this.text?"<DeleteOp@"+this.tokens.get(this.index)+".."+this.tokens.get(this.lastIndex)+">":"<ReplaceOp@"+this.tokens.get(this.index)+".."+this.tokens.get(this.lastIndex)+':"'+this.text+'">'}},Ea(qs,"ReplaceOp"),qs),Hc=Object.defineProperty,Gc=(t,e)=>Hc(t,"name",{value:e,configurable:!0}),Fc=(Ci=new WeakMap,Gc(Li=class{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";(0,js.Z)(this,"name",void 0),(0,js.Z)(this,"context",void 0),(0,js.Z)(this,"modifiers",new Set),(0,js.Z)(this,"visibility",0),r(this,Ci,{writable:!0,value:void 0}),this.name=t}get parent(){return ea(this,Ci)}get firstSibling(){var t;if(ea(this,Ci))return null===(t=ea(this,Ci))||void 0===t?void 0:t.firstChild}get previousSibling(){if(ea(this,Ci))return ea(this,Ci)?ea(this,Ci).previousSiblingOf(this):this}get nextSibling(){var t;return null===(t=ea(this,Ci))||void 0===t?void 0:t.nextSiblingOf(this)}get lastSibling(){var t;return null===(t=ea(this,Ci))||void 0===t?void 0:t.lastChild}get next(){var t;return null===(t=ea(this,Ci))||void 0===t?void 0:t.nextOf(this)}get root(){let t=ea(this,Ci);for(;t;){if(!t.parent||this.isSymbolTable(t.parent))return t;t=t.parent}return t}get symbolTable(){if(this.isSymbolTable(this))return this;let t=ea(this,Ci);for(;t;){if(this.isSymbolTable(t))return t;t=t.parent}}get symbolPath(){const t=[];let e=this;for(;e&&(t.push(e),e.parent);)e=e.parent;return t}setParent(t){$s(this,Ci,t)}removeFromParent(){var t;null===(t=ea(this,Ci))||void 0===t||t.removeSymbol(this),$s(this,Ci,void 0)}async resolve(t){var e;let s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return null===(e=ea(this,Ci))||void 0===e?void 0:e.resolve(t,s)}resolveSync(t){var e;let s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return null===(e=ea(this,Ci))||void 0===e?void 0:e.resolveSync(t,s)}getParentOfType(t){let e=ea(this,Ci);for(;e;){if(e instanceof t)return e;e=e.parent}}qualifiedName(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!s&&0===this.name.length)return"";let a=0===this.name.length?"<anonymous>":this.name,r=ea(this,Ci);for(;r&&((s||r.name.length>0)&&(a=(0===r.name.length?"<anonymous>":r.name)+t+a),e&&r.parent);)r=r.parent;return a}isSymbolTable(t){return void 0!==t.info}},"BaseSymbol"),Li),vc=(Gc(_i=class extends Fc{constructor(t,e,s){let a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;super(t),(0,js.Z)(this,"elementType",void 0),(0,js.Z)(this,"size",void 0),(0,js.Z)(this,"referenceKind",void 0),this.referenceKind=e,this.elementType=s,this.size=a}get baseTypes(){return[]}get kind(){return 9}get reference(){return this.referenceKind}},"ArrayType"),Pi=class extends Error{},Gc(Pi,"DuplicateSymbolError"),Pi),Bc=(di=new WeakMap,Ui=new WeakMap,Gc(Mi=class t extends Fc{constructor(){super(arguments.length>0&&void 0!==arguments[0]?arguments[0]:""),r(this,di,{writable:!0,value:[]}),r(this,Ui,{writable:!0,value:new Map})}get directScopes(){return this.getSymbolsOfType(t)}get children(){return ea(this,di)}get firstChild(){if(ea(this,di).length>0)return ea(this,di)[0]}get lastChild(){if(ea(this,di).length>0)return ea(this,di)[ea(this,di).length-1]}clear(){$s(this,di,[]),ea(this,Ui).clear()}addSymbol(t){t.removeFromParent();const e=this.symbolTable,s=ea(this,Ui).get(t.name);if(e&&e.options.allowDuplicateSymbols)ea(this,Ui).set(t.name,void 0===s?1:s+1);else{var a;if(void 0!==s)throw new vc("Attempt to add duplicate symbol '"+(null!==(a=t.name)&&void 0!==a?a:"<anonymous>")+"'");ea(this,Ui).set(t.name,1);var r;if(ea(this,di).indexOf(t)>-1)throw new vc("Attempt to add duplicate symbol '"+(null!==(r=t.name)&&void 0!==r?r:"<anonymous>")+"'")}ea(this,di).push(t),t.setParent(this)}removeSymbol(t){const e=ea(this,di).indexOf(t);if(e>-1){ea(this,di).splice(e,1),t.setParent(void 0);const s=ea(this,Ui).get(t.name);void 0!==s&&(1===s?ea(this,Ui).delete(t.name):ea(this,Ui).set(t.name,s-1))}}async getNestedSymbolsOfType(e){const s=[],a=[];ea(this,di).forEach((r=>{r instanceof e&&s.push(r),r instanceof t&&a.push(r.getNestedSymbolsOfType(e))}));return(await Promise.all(a)).forEach((t=>{s.push(...t)})),s}getNestedSymbolsOfTypeSync(e){const s=[];return ea(this,di).forEach((a=>{a instanceof e&&s.push(a),a instanceof t&&s.push(...a.getNestedSymbolsOfTypeSync(e))})),s}async getAllNestedSymbols(e){const s=[],a=[];ea(this,di).forEach((r=>{e&&r.name!==e||s.push(r),r instanceof t&&a.push(r.getAllNestedSymbols(e))}));return(await Promise.all(a)).forEach((t=>{s.push(...t)})),s}getAllNestedSymbolsSync(e){const s=[];return ea(this,di).forEach((a=>{e&&a.name!==e||s.push(a),a instanceof t&&s.push(...a.getAllNestedSymbolsSync(e))})),s}getSymbolsOfType(t){return new Promise((e=>{const s=[];ea(this,di).forEach((e=>{e instanceof t&&s.push(e)})),e(s)}))}async getAllSymbols(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const s=[];for(const a of ea(this,di))if(a instanceof t&&s.push(a),this.isNamespace(a)){const e=await a.getAllSymbols(t,!0);s.push(...e)}if(!e&&this.parent){const e=await this.getAllSymbols(t,!0);s.push(...e)}return s}getAllSymbolsSync(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const s=[];for(const a of ea(this,di))if(a instanceof t&&s.push(a),this.isNamespace(a)){const e=a.getAllSymbolsSync(t,!0);s.push(...e)}if(!e&&this.parent){const e=this.getAllSymbolsSync(t,!0);s.push(...e)}return s}async resolve(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise((s=>{for(const e of ea(this,di))if(e.name===t)return void s(e);e||!this.parent?s(void 0):s(this.parent.resolve(t,!1))}))}resolveSync(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(const s of ea(this,di))if(s.name===t)return s;if(!e&&this.parent)return this.parent.resolveSync(t,!1)}symbolFromPath(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:".";const a=e.split(s);let r=0;a[0]!==this.name&&0!==a[0].length||++r;let i=this;for(;r<a.length;){if(!(i instanceof t))return;const e=i.children.find((t=>t.name===a[r]));if(!e)return;i=e,++r}return i}indexOfChild(t){return ea(this,di).findIndex((e=>e===t))}nextSiblingOf(t){const e=this.indexOfChild(t);if(!(-1===e||e>=ea(this,di).length-1))return ea(this,di)[e+1]}previousSiblingOf(t){const e=this.indexOfChild(t);if(!(e<1))return ea(this,di)[e-1]}nextOf(e){if(!e.parent)return;if(e.parent!==this)return e.parent.nextOf(e);if(e instanceof t&&e.children.length>0)return e.children[0];const s=this.nextSiblingOf(e);return s||this.parent.nextOf(this)}isNamespace(t){return void 0!==t.inline&&void 0!==t.attributes}},"ScopedSymbol"),Mi),yc=(Gc(mi=class extends Bc{},"BlockSymbol"),Gc(Di=class extends Fc{constructor(t,e){super(t),(0,js.Z)(this,"type",void 0),this.type=e}},"TypedSymbol"),Di),fc=(Gc(pi=class extends yc{constructor(t,e,s){super(t,s),(0,js.Z)(this,"value",void 0),this.value=e}},"VariableSymbol"),pi),Yc=(Gc(gi=class extends fc{constructor(){super(...arguments),(0,js.Z)(this,"setter",void 0),(0,js.Z)(this,"getter",void 0)}},"FieldSymbol"),gi),wc=(Gc(xi=class extends fc{},"ParameterSymbol"),xi),bc=(Gc(ki=class extends Bc{constructor(t,e){super(t),(0,js.Z)(this,"returnType",void 0),this.returnType=e}getVariables(){return this.getSymbolsOfType(fc)}getParameters(){return this.getSymbolsOfType(wc)}},"RoutineSymbol"),ki),Wc=(Gc(Hi=class extends bc{constructor(){super(...arguments),(0,js.Z)(this,"methodFlags",0)}},"MethodSymbol"),Hi),Vc=(Gc(Gi=class extends Bc{constructor(t,e,s){super(t),(0,js.Z)(this,"isStruct",!1),(0,js.Z)(this,"reference",0),(0,js.Z)(this,"extends",void 0),(0,js.Z)(this,"implements",void 0),this.extends=e,this.implements=s}get baseTypes(){return this.extends}get kind(){return 7}getMethods(){return this.getSymbolsOfType(Wc)}getFields(){return this.getSymbolsOfType(Yc)}},"ClassSymbol"),Gc(Fi=class{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;(0,js.Z)(this,"name",void 0),(0,js.Z)(this,"typeKind",void 0),(0,js.Z)(this,"referenceKind",void 0),this.name=t,this.typeKind=e,this.referenceKind=s}get baseTypes(){return[]}get kind(){return this.typeKind}get reference(){return this.referenceKind}},"FundamentalType"),(0,js.Z)(Fi,"integerType",new Fi("int",1,3)),(0,js.Z)(Fi,"floatType",new Fi("float",2,3)),(0,js.Z)(Fi,"stringType",new Fi("string",4,3)),(0,js.Z)(Fi,"boolType",new Fi("bool",6,3)),Gc(vi=class extends Bc{constructor(t,e){super(t),(0,js.Z)(this,"reference",0),(0,js.Z)(this,"extends",void 0),this.extends=e}get baseTypes(){return this.extends}get kind(){return 8}getMethods(){return this.getSymbolsOfType(Wc)}getFields(){return this.getSymbolsOfType(Yc)}},"InterfaceSymbol"),Gc(Bi=class extends yc{constructor(t,e,s){super(t,s),(0,js.Z)(this,"value",void 0),this.value=e}},"LiteralSymbol"),Gc(yi=class extends Bc{constructor(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];super(t),(0,js.Z)(this,"inline",void 0),(0,js.Z)(this,"attributes",void 0),this.inline=e,this.attributes=s}},"NamespaceSymbol"),yi),Xc=(Gc(fi=class extends Fc{constructor(t,e){super(t),(0,js.Z)(this,"targetType",void 0),this.targetType=e}get baseTypes(){return[this.targetType]}get kind(){return 12}get reference(){return 0}},"TypeAlias"),Gc(((t,e)=>{if(!t||!e)return[];let s;for(s=0;s<Math.min(t.length,e.length)&&t[s]===e[s];s++);return t.slice(0,s)}),"longestCommonPrefix")),Kc=(Gc(Yi=class{constructor(){(0,js.Z)(this,"tokens",new Map),(0,js.Z)(this,"rules",new Map)}},"CandidatesCollection"),Yi),Qc=(Gc(wi=class{constructor(){(0,js.Z)(this,"intervals",void 0),(0,js.Z)(this,"path",[]),(0,js.Z)(this,"following",[])}},"FollowSetWithPath"),wi),Jc=(bi=class t{constructor(t){(0,js.Z)(this,"showResult",!1),(0,js.Z)(this,"showDebugOutput",!1),(0,js.Z)(this,"debugOutputWithTransitions",!1),(0,js.Z)(this,"showRuleStack",!1),(0,js.Z)(this,"ignoredTokens",void 0),(0,js.Z)(this,"preferredRules",void 0),(0,js.Z)(this,"translateRulesTopDown",!1),(0,js.Z)(this,"parser",void 0),(0,js.Z)(this,"atn",void 0),(0,js.Z)(this,"vocabulary",void 0),(0,js.Z)(this,"ruleNames",void 0),(0,js.Z)(this,"tokens",void 0),(0,js.Z)(this,"precedenceStack",void 0),(0,js.Z)(this,"tokenStartIndex",0),(0,js.Z)(this,"statesProcessed",0),(0,js.Z)(this,"shortcutMap",new Map),(0,js.Z)(this,"candidates",new Kc),this.parser=t,this.atn=t.atn,this.vocabulary=t.vocabulary,this.ruleNames=t.ruleNames,this.ignoredTokens=new Set,this.preferredRules=new Set}collectCandidates(t,e){this.shortcutMap.clear(),this.candidates.rules.clear(),this.candidates.tokens.clear(),this.statesProcessed=0,this.precedenceStack=[],this.tokenStartIndex=null!==e&&void 0!==e&&e.start?e.start.tokenIndex:0;const s=this.parser.tokenStream;this.tokens=[];let a=this.tokenStartIndex;for(;;){const e=s.get(a++);if(!e)break;if(e.channel===ca.DEFAULT_CHANNEL&&(this.tokens.push(e),e.tokenIndex>=t||e.type===ca.EOF))break;if(e.type===ca.EOF)break}const r=e?e.ruleIndex:0;if(this.processRule(this.atn.ruleToStartState[r],0,[],0,0),this.showResult){console.log("States processed: ".concat(this.statesProcessed)),console.log("\n\nCollected rules:\n");for(const e of this.candidates.rules){let t="";for(const s of e[1].ruleList)t+=this.ruleNames[s]+" ";console.log(this.ruleNames[e[0]]+", path: ",t)}const t=new Set;for(const e of this.candidates.tokens){var i;let s=null!==(i=this.vocabulary.getDisplayName(e[0]))&&void 0!==i?i:"";for(const t of e[1])s+=" "+this.vocabulary.getDisplayName(t);t.add(s)}console.log("\n\nCollected tokens:\n");for(const e of t)console.log(e);console.log("\n\n")}return this.candidates}checkPredicate(t){return t.getPredicate().evaluate(this.parser,ga.empty)}translateStackToRuleIndex(t){if(0===this.preferredRules.size)return!1;if(this.translateRulesTopDown){for(let e=t.length-1;e>=0;e--)if(this.translateToRuleIndex(e,t))return!0}else for(let e=0;e<t.length;e++)if(this.translateToRuleIndex(e,t))return!0;return!1}translateToRuleIndex(t,e){const{ruleIndex:s,startTokenIndex:a}=e[t];if(this.preferredRules.has(s)){const r=e.slice(0,t).map((t=>{let{ruleIndex:e}=t;return e}));let i=!0;for(const t of this.candidates.rules)if(t[0]===s&&t[1].ruleList.length===r.length&&r.every(((e,s)=>e===t[1].ruleList[s]))){i=!1;break}return i&&(this.candidates.rules.set(s,{startTokenIndex:a,ruleList:r}),this.showDebugOutput&&console.log("=====> collected: ",this.ruleNames[s])),!0}return!1}getFollowingTokens(t){const e=[],s=[t.target];for(;s.length>0;){const t=s.pop();t&&t.transitions.forEach((t=>{if(t.transitionType===la.ATOM)if(t.isEpsilon)s.push(t.target);else{const a=t.label.toArray();1!==a.length||this.ignoredTokens.has(a[0])||(e.push(a[0]),s.push(t.target))}}))}return e}determineFollowSets(t,e){const s=[],a=this.collectFollowSets(t,e,s,[],[]),r=new Sa;for(const i of s)r.addSet(i.intervals);return{sets:s,isExhaustive:a,combined:r}}collectFollowSets(t,e,s,a,r){if(a.find((e=>e===t)))return!0;if(a.push(t),t===e||t.constructor.stateType===Va.RULE_STOP)return a.pop(),!1;let i=!0;for(const n of t.transitions)if(n.transitionType===la.RULE){const t=n;if(-1!==r.indexOf(t.target.ruleIndex))continue;r.push(t.target.ruleIndex);const c=this.collectFollowSets(n.target,e,s,a,r);if(r.pop(),!c){const c=this.collectFollowSets(t.followState,e,s,a,r);i&&(i=c)}}else if(n.transitionType===la.PREDICATE){if(this.checkPredicate(n)){const t=this.collectFollowSets(n.target,e,s,a,r);i&&(i=t)}}else if(n.isEpsilon){const t=this.collectFollowSets(n.target,e,s,a,r);i&&(i=t)}else if(n.transitionType===la.WILDCARD){const t=new Qc;t.intervals=Sa.of(ca.MIN_USER_TOKEN_TYPE,this.atn.maxTokenType),t.path=r.slice(),s.push(t)}else{let t=n.label;if(t&&t.length>0){var c;n.transitionType===la.NOT_SET&&(t=t.complement(ca.MIN_USER_TOKEN_TYPE,this.atn.maxTokenType));const e=new Qc;e.intervals=null!==(c=t)&&void 0!==c?c:new Sa,e.path=r.slice(),e.following=this.getFollowingTokens(n),s.push(e)}}return a.pop(),i}processRule(e,s,a,r,i){let c=this.shortcutMap.get(e.ruleIndex);if(c){if(c.has(s))return this.showDebugOutput&&console.log("=====> shortcut"),c.get(s)}else c=new Map,this.shortcutMap.set(e.ruleIndex,c);const n=new Set;let h=t.followSetsByATN.get(this.parser.constructor.name);h||(h=new Map,t.followSetsByATN.set(this.parser.constructor.name,h));let E=h.get(e.stateNumber);if(!E){const t=this.atn.ruleToStopState[e.ruleIndex];E=this.determineFollowSets(e,t),h.set(e.stateNumber,E)}const T=this.tokens[s].tokenIndex;if(a.push({startTokenIndex:T,ruleIndex:e.ruleIndex}),s>=this.tokens.length-1){if(this.preferredRules.has(e.ruleIndex))this.translateStackToRuleIndex(a);else for(const t of E.sets){const e=a.slice(),s=t.path.map((t=>({startTokenIndex:T,ruleIndex:t})));if(e.push(...s),!this.translateStackToRuleIndex(e))for(const a of t.intervals.toArray())this.ignoredTokens.has(a)||(this.showDebugOutput&&console.log("=====> collected: ",this.vocabulary.getDisplayName(a)),this.candidates.tokens.has(a)?this.candidates.tokens.get(a)!==t.following&&this.candidates.tokens.set(a,[]):this.candidates.tokens.set(a,t.following))}return E.isExhaustive||n.add(s),a.pop(),n}{const t=this.tokens[s].type;if(E.isExhaustive&&!E.combined.contains(t))return a.pop(),n}e.isPrecedenceRule&&this.precedenceStack.push(r);const o=[];let R;for(o.push({state:e,tokenListIndex:s});o.length>0;){R=o.pop(),++this.statesProcessed;const t=this.tokens[R.tokenListIndex].type,e=R.tokenListIndex>=this.tokens.length-1;if(this.showDebugOutput&&(this.printDescription(i,R.state,this.generateBaseDescription(R.state),R.tokenListIndex),this.showRuleStack&&this.printRuleState(a)),R.state.constructor.stateType===Va.RULE_STOP){n.add(R.tokenListIndex);continue}const s=R.state.transitions;for(const r of s)switch(r.transitionType){case la.RULE:{const t=r,e=this.processRule(r.target,R.tokenListIndex,a,t.precedence,i+1);for(const s of e)o.push({state:r.followState,tokenListIndex:s});break}case la.PREDICATE:this.checkPredicate(r)&&o.push({state:r.target,tokenListIndex:R.tokenListIndex});break;case la.PRECEDENCE:r.precedence>=this.precedenceStack[this.precedenceStack.length-1]&&o.push({state:r.target,tokenListIndex:R.tokenListIndex});break;case la.WILDCARD:if(e){if(!this.translateStackToRuleIndex(a))for(const t of Sa.of(ca.MIN_USER_TOKEN_TYPE,this.atn.maxTokenType).toArray())this.ignoredTokens.has(t)||this.candidates.tokens.set(t,[])}else o.push({state:r.target,tokenListIndex:R.tokenListIndex+1});break;default:{if(r.isEpsilon){o.push({state:r.target,tokenListIndex:R.tokenListIndex});continue}let s=r.label;if(s&&s.length>0)if(r.transitionType===la.NOT_SET&&(s=s.complement(ca.MIN_USER_TOKEN_TYPE,this.atn.maxTokenType)),e){if(!this.translateStackToRuleIndex(a)){const t=s.toArray(),e=1===t.length;for(const s of t)if(!this.ignoredTokens.has(s)){this.showDebugOutput&&console.log("=====> collected: ",this.vocabulary.getDisplayName(s));const t=e?this.getFollowingTokens(r):[];this.candidates.tokens.has(s)?this.candidates.tokens.set(s,Xc(t,this.candidates.tokens.get(s))):this.candidates.tokens.set(s,t)}}}else s.contains(t)&&(this.showDebugOutput&&console.log("=====> consumed: ",this.vocabulary.getDisplayName(t)),o.push({state:r.target,tokenListIndex:R.tokenListIndex+1}))}}}return a.pop(),e.isPrecedenceRule&&this.precedenceStack.pop(),c.set(s,n),n}generateBaseDescription(e){const s=e.stateNumber===Va.INVALID_STATE_NUMBER?"Invalid":e.stateNumber,a=t.atnStateTypeMap[e.constructor.stateType];return"[".concat(s," ").concat(a,"] in ").concat(this.ruleNames[e.ruleIndex])}printDescription(e,s,a,r){const i=" ".repeat(e);let c=i,n="";if(this.debugOutputWithTransitions)for(const h of s.transitions){let e="";const s=h.label?h.label.toArray():[];if(s.length>2)e=this.vocabulary.getDisplayName(s[0])+" .. "+this.vocabulary.getDisplayName(s[s.length-1]);else for(const t of s)e.length>0&&(e+=", "),e+=this.vocabulary.getDisplayName(t);0===e.length&&(e="\u03b5");const a=t.atnStateTypeMap[h.target.constructor.stateType];n+="\n".concat(i,"\t(").concat(e,") [").concat(h.target.stateNumber," ").concat(a,"] in ").concat(this.ruleNames[h.target.ruleIndex])}r>=this.tokens.length-1?c+="<<".concat(this.tokenStartIndex+r,">> "):c+="<".concat(this.tokenStartIndex+r,"> "),console.log(c+"Current state: "+a+n)}printRuleState(t){if(0!==t.length)for(const e of t)console.log(this.ruleNames[e.ruleIndex]);else console.log("<empty stack>")}},Gc(bi,"CodeCompletionCore"),(0,js.Z)(bi,"followSetsByATN",new Map),(0,js.Z)(bi,"atnStateTypeMap",["invalid","basic","rule start","block start","plus block start","star block start","token start","rule stop","block end","star loop back","star loop entry","plus loop back","loop end"]),bi),Zc=(Wi=class extends Bc{constructor(t,e){super(t),(0,js.Z)(this,"dependencies",new Set),this.options=e}get info(){return{dependencyCount:this.dependencies.size,symbolCount:this.children.length}}clear(){super.clear(),this.dependencies.clear()}addDependencies(){for(var t=arguments.length,e=new Array(t),s=0;s<t;s++)e[s]=arguments[s];e.forEach((t=>{this.dependencies.add(t)}))}removeDependency(t){this.dependencies.has(t)&&this.dependencies.delete(t)}addNewSymbolOfType(t,e){for(var s=arguments.length,a=new Array(s>2?s-2:0),r=2;r<s;r++)a[r-2]=arguments[r];const i=new t(...a);return e&&e!==this?e.addSymbol(i):this.addSymbol(i),i}async addNewNamespaceFromPath(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";const a=e.split(s);let r=0,i=void 0===t?this:t;for(;r<a.length-1;){let t=await i.resolve(a[r],!0);void 0===t&&(t=this.addNewSymbolOfType(Vc,i,a[r])),i=t,++r}return this.addNewSymbolOfType(Vc,i,a[a.length-1])}addNewNamespaceFromPathSync(t,e){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";const a=e.split(s);let r=0,i=void 0===t?this:t;for(;r<a.length-1;){let t=i.resolveSync(a[r],!0);void 0===t&&(t=this.addNewSymbolOfType(Vc,i,a[r])),i=t,++r}return this.addNewSymbolOfType(Vc,i,a[a.length-1])}async getAllSymbols(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const s=await super.getAllSymbols(t,e);if(!e){(await Promise.all([...this.dependencies].map((s=>s.getAllSymbols(t,e))))).forEach((t=>{s.push(...t)}))}return s}getAllSymbolsSync(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const s=super.getAllSymbolsSync(t,e);return e||this.dependencies.forEach((a=>{s.push(...a.getAllSymbolsSync(t,e))})),s}async symbolWithContext(t){const e=Gc((s=>{if(s.context===t)return s;if(s instanceof Bc)for(const t of s.children){const s=e(t);if(s)return s}}),"findRecursive");let s=await this.getAllSymbols(Fc);for(const a of s){const t=e(a);if(t)return t}for(const a of this.dependencies){s=await a.getAllSymbols(Fc);for(const t of s){const s=e(t);if(s)return s}}}symbolWithContextSync(t){const e=Gc((s=>{if(s.context===t)return s;if(s instanceof Bc)for(const t of s.children){const s=e(t);if(s)return s}}),"findRecursive");let s=this.getAllSymbolsSync(Fc);for(const a of s){const t=e(a);if(t)return t}for(const a of this.dependencies){s=a.getAllSymbolsSync(Fc);for(const t of s){const s=e(t);if(s)return s}}}async resolve(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=await super.resolve(t,e);if(!s&&!e)for(const a of this.dependencies)if(s=await a.resolve(t,!1),s)return s;return s}resolveSync(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=super.resolveSync(t,e);if(!s&&!e)for(const a of this.dependencies)if(s=a.resolveSync(t,!1),s)return s;return s}},Gc(Wi,"SymbolTable"),Wi),qc=class extends yc{constructor(t,e,s){super(t,s),this.name=t,this.alias=e}};function jc(t){return function(){let t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).reduce(((t,e)=>{var s;let a=null!==(s=t[e.name])&&void 0!==s?s:new Set;return e.alias&&a.add(e.alias),t[e.name]=a,t}),{});return Object.keys(t).reduce(((e,s)=>{let a=t[s];return a.size>0?null===a||void 0===a||a.forEach((t=>{e.push({name:s,alias:t})})):e.push({name:s}),e}),[])}(t.symbolTable.getNestedSymbolsOfTypeSync(qc))}var zc=class extends yc{constructor(t,e){super(t,e),this.name=t}};var $c,tn=($c=tn||{},$c.ALL="ALL",$c.TABLES="TABLES",$c.VIEWS="VIEWS",$c),en=/^\p{L}+$/u,sn=class extends $r{constructor(){super(...arguments),this.tags=[]}pushTag(){this.tags.push(this.text)}isTag(){return this.text===this.tags[0]}popTag(){this.tags.shift()}checkLA(t){return this.inputStream.LA(1)!==t}charIsLetter(){return en.test(this.inputStream.LA(-1))}HandleNumericFail(){this.inputStream.seek(this.inputStream.index-2),this.type=658}HandleLessLessGreaterGreater(){"<<"==this.text?this.type=18:">>"==this.text&&(this.type=19)}UnterminatedBlockCommentDebugAssert(){}CheckIfUtf32Letter(){let t,e=this.inputStream.LA(-2)<<8+this.inputStream.LA(-1);return e<65536?t=[e]:(e-=65536,t=[e/1024+55296,e%1024+56320]),en.test("".concat(t[0]))}},an=(Vi=class t extends sn{constructor(e){super(e),this.interpreter=new hi(this,t._ATN,t.decisionsToDFA,new Si)}get grammarFileName(){return"PostgreSqlLexer.g4"}get literalNames(){return t.literalNames}get symbolicNames(){return t.symbolicNames}get ruleNames(){return t.ruleNames}get serializedATN(){return t._serializedATN}get channelNames(){return t.channelNames}get modeNames(){return t.modeNames}action(t,e,s){switch(e){case 28:this.Operator_action(t,s);break;case 656:this.BeginDollarStringConstant_action(t,s);break;case 667:this.NumericFail_action(t,s);break;case 676:this.UnterminatedBlockComment_action(t,s);break;case 688:this.AfterEscapeStringConstantMode_NotContinued_action(t,s);break;case 692:this.AfterEscapeStringConstantWithNewlineMode_NotContinued_action(t,s);break;case 694:this.EndDollarStringConstant_action(t,s)}}Operator_action(t,e){if(0===e)this.HandleLessLessGreaterGreater()}BeginDollarStringConstant_action(t,e){if(1===e)this.pushTag()}NumericFail_action(t,e){if(2===e)this.HandleNumericFail()}UnterminatedBlockComment_action(t,e){if(3===e)this.UnterminatedBlockCommentDebugAssert()}AfterEscapeStringConstantMode_NotContinued_action(t,e){e}AfterEscapeStringConstantWithNewlineMode_NotContinued_action(t,e){e}EndDollarStringConstant_action(t,e){if(6===e)this.popTag()}sempred(t,e,s){switch(e){case 28:return this.Operator_sempred(t,s);case 29:return this.OperatorEndingWithPlusMinus_sempred(t,s);case 640:return this.IdentifierStartChar_sempred(t,s);case 694:return this.EndDollarStringConstant_sempred(t,s)}return!0}Operator_sempred(t,e){switch(e){case 0:return this.checkLA("-");case 1:case 2:return this.checkLA("*")}return!0}OperatorEndingWithPlusMinus_sempred(t,e){switch(e){case 3:case 5:return this.checkLA("-");case 4:return this.checkLA("*")}return!0}IdentifierStartChar_sempred(t,e){switch(e){case 6:return this.charIsLetter();case 7:return}return!0}EndDollarStringConstant_sempred(t,e){return 8!==e||this.isTag()}static get _ATN(){return t.__ATN||(t.__ATN=(new fr).deserialize(t._serializedATN)),t.__ATN}get vocabulary(){return t.vocabulary}},Vi.Dollar=1,Vi.OPEN_PAREN=2,Vi.CLOSE_PAREN=3,Vi.OPEN_BRACKET=4,Vi.CLOSE_BRACKET=5,Vi.COMMA=6,Vi.SEMI=7,Vi.COLON=8,Vi.STAR=9,Vi.EQUAL=10,Vi.DOT=11,Vi.PLUS=12,Vi.MINUS=13,Vi.SLASH=14,Vi.CARET=15,Vi.LT=16,Vi.GT=17,Vi.LESS_LESS=18,Vi.GREATER_GREATER=19,Vi.COLON_EQUALS=20,Vi.LESS_EQUALS=21,Vi.EQUALS_GREATER=22,Vi.GREATER_EQUALS=23,Vi.DOT_DOT=24,Vi.NOT_EQUALS=25,Vi.TYPECAST=26,Vi.PERCENT=27,Vi.PARAM=28,Vi.Operator=29,Vi.ALL=30,Vi.ANALYSE=31,Vi.ANALYZE=32,Vi.AND=33,Vi.ANY=34,Vi.ARRAY=35,Vi.AS=36,Vi.ASC=37,Vi.ASYMMETRIC=38,Vi.BOTH=39,Vi.CASE=40,Vi.CAST=41,Vi.CHECK=42,Vi.COLLATE=43,Vi.COLUMN=44,Vi.CONSTRAINT=45,Vi.CREATE=46,Vi.CURRENT_CATALOG=47,Vi.CURRENT_DATE=48,Vi.CURRENT_ROLE=49,Vi.CURRENT_TIME=50,Vi.CURRENT_TIMESTAMP=51,Vi.CURRENT_USER=52,Vi.DEFAULT=53,Vi.DEFERRABLE=54,Vi.DESC=55,Vi.DISTINCT=56,Vi.DO=57,Vi.ELSE=58,Vi.EXCEPT=59,Vi.FALSE_P=60,Vi.FETCH=61,Vi.FOR=62,Vi.FOREIGN=63,Vi.FROM=64,Vi.GRANT=65,Vi.GROUP_P=66,Vi.HAVING=67,Vi.IN_P=68,Vi.INITIALLY=69,Vi.INTERSECT=70,Vi.INTO=71,Vi.LATERAL_P=72,Vi.LEADING=73,Vi.LIMIT=74,Vi.LOCALTIME=75,Vi.LOCALTIMESTAMP=76,Vi.NOT=77,Vi.NULL_P=78,Vi.OFFSET=79,Vi.ON=80,Vi.ONLY=81,Vi.OR=82,Vi.ORDER=83,Vi.PLACING=84,Vi.PRIMARY=85,Vi.REFERENCES=86,Vi.RETURNING=87,Vi.SELECT=88,Vi.SESSION_USER=89,Vi.SOME=90,Vi.SYMMETRIC=91,Vi.TABLE=92,Vi.THEN=93,Vi.TO=94,Vi.TRAILING=95,Vi.TRUE_P=96,Vi.UNION=97,Vi.UNIQUE=98,Vi.USER=99,Vi.USING=100,Vi.VARIADIC=101,Vi.WHEN=102,Vi.WHERE=103,Vi.WINDOW=104,Vi.WITH=105,Vi.AUTHORIZATION=106,Vi.BINARY=107,Vi.COLLATION=108,Vi.CONCURRENTLY=109,Vi.CROSS=110,Vi.CURRENT_SCHEMA=111,Vi.FREEZE=112,Vi.FULL=113,Vi.ILIKE=114,Vi.INNER_P=115,Vi.IS=116,Vi.ISNULL=117,Vi.JOIN=118,Vi.LEFT=119,Vi.LIKE=120,Vi.NATURAL=121,Vi.NOTNULL=122,Vi.OUTER_P=123,Vi.OVER=124,Vi.OVERLAPS=125,Vi.RIGHT=126,Vi.SIMILAR=127,Vi.VERBOSE=128,Vi.ABORT_P=129,Vi.ABSOLUTE_P=130,Vi.ACCESS=131,Vi.ACTION=132,Vi.ADD_P=133,Vi.ADMIN=134,Vi.AFTER=135,Vi.AGGREGATE=136,Vi.ALSO=137,Vi.ALTER=138,Vi.ALWAYS=139,Vi.ASSERTION=140,Vi.ASSIGNMENT=141,Vi.AT=142,Vi.ATTRIBUTE=143,Vi.BACKWARD=144,Vi.BEFORE=145,Vi.BEGIN_P=146,Vi.BY=147,Vi.CACHE=148,Vi.CALLED=149,Vi.CASCADE=150,Vi.CASCADED=151,Vi.CATALOG=152,Vi.CHAIN=153,Vi.CHARACTERISTICS=154,Vi.CHECKPOINT=155,Vi.CLASS=156,Vi.CLOSE=157,Vi.CLUSTER=158,Vi.COMMENT=159,Vi.COMMENTS=160,Vi.COMMIT=161,Vi.COMMITTED=162,Vi.CONFIGURATION=163,Vi.CONNECTION=164,Vi.CONSTRAINTS=165,Vi.CONTENT_P=166,Vi.CONTINUE_P=167,Vi.CONVERSION_P=168,Vi.COPY=169,Vi.COST=170,Vi.CSV=171,Vi.CURSOR=172,Vi.CYCLE=173,Vi.DATA_P=174,Vi.DATABASE=175,Vi.DAY_P=176,Vi.DEALLOCATE=177,Vi.DECLARE=178,Vi.DEFAULTS=179,Vi.DEFERRED=180,Vi.DEFINER=181,Vi.DELETE_P=182,Vi.DELIMITER=183,Vi.DELIMITERS=184,Vi.DICTIONARY=185,Vi.DISABLE_P=186,Vi.DISCARD=187,Vi.DOCUMENT_P=188,Vi.DOMAIN_P=189,Vi.DOUBLE_P=190,Vi.DROP=191,Vi.EACH=192,Vi.ENABLE_P=193,Vi.ENCODING=194,Vi.ENCRYPTED=195,Vi.ENUM_P=196,Vi.ESCAPE=197,Vi.EVENT=198,Vi.EXCLUDE=199,Vi.EXCLUDING=200,Vi.EXCLUSIVE=201,Vi.EXECUTE=202,Vi.EXPLAIN=203,Vi.EXTENSION=204,Vi.EXTERNAL=205,Vi.FAMILY=206,Vi.FIRST_P=207,Vi.FOLLOWING=208,Vi.FORCE=209,Vi.FORWARD=210,Vi.FUNCTION=211,Vi.FUNCTIONS=212,Vi.GLOBAL=213,Vi.GRANTED=214,Vi.HANDLER=215,Vi.HEADER_P=216,Vi.HOLD=217,Vi.HOUR_P=218,Vi.IDENTITY_P=219,Vi.IF_P=220,Vi.IMMEDIATE=221,Vi.IMMUTABLE=222,Vi.IMPLICIT_P=223,Vi.INCLUDING=224,Vi.INCREMENT=225,Vi.INDEX=226,Vi.INDEXES=227,Vi.INHERIT=228,Vi.INHERITS=229,Vi.INLINE_P=230,Vi.INSENSITIVE=231,Vi.INSERT=232,Vi.INSTEAD=233,Vi.INVOKER=234,Vi.ISOLATION=235,Vi.KEY=236,Vi.LABEL=237,Vi.LANGUAGE=238,Vi.LARGE_P=239,Vi.LAST_P=240,Vi.LEAKPROOF=241,Vi.LEVEL=242,Vi.LISTEN=243,Vi.LOAD=244,Vi.LOCAL=245,Vi.LOCATION=246,Vi.LOCK_P=247,Vi.MAPPING=248,Vi.MATCH=249,Vi.MATCHED=250,Vi.MATERIALIZED=251,Vi.MAXVALUE=252,Vi.MERGE=253,Vi.MINUTE_P=254,Vi.MINVALUE=255,Vi.MODE=256,Vi.MONTH_P=257,Vi.MOVE=258,Vi.NAME_P=259,Vi.NAMES=260,Vi.NEXT=261,Vi.NO=262,Vi.NOTHING=263,Vi.NOTIFY=264,Vi.NOWAIT=265,Vi.NULLS_P=266,Vi.OBJECT_P=267,Vi.OF=268,Vi.OFF=269,Vi.OIDS=270,Vi.OPERATOR=271,Vi.OPTION=272,Vi.OPTIONS=273,Vi.OWNED=274,Vi.OWNER=275,Vi.PARSER=276,Vi.PARTIAL=277,Vi.PARTITION=278,Vi.PASSING=279,Vi.PASSWORD=280,Vi.PLANS=281,Vi.PRECEDING=282,Vi.PREPARE=283,Vi.PREPARED=284,Vi.PRESERVE=285,Vi.PRIOR=286,Vi.PRIVILEGES=287,Vi.PROCEDURAL=288,Vi.PROCEDURE=289,Vi.PROGRAM=290,Vi.QUOTE=291,Vi.RANGE=292,Vi.READ=293,Vi.REASSIGN=294,Vi.RECHECK=295,Vi.RECURSIVE=296,Vi.REF=297,Vi.REFRESH=298,Vi.REINDEX=299,Vi.RELATIVE_P=300,Vi.RELEASE=301,Vi.RENAME=302,Vi.REPEATABLE=303,Vi.REPLACE=304,Vi.REPLICA=305,Vi.RESET=306,Vi.RESTART=307,Vi.RESTRICT=308,Vi.RETURNS=309,Vi.REVOKE=310,Vi.ROLE=311,Vi.ROLLBACK=312,Vi.ROWS=313,Vi.RULE=314,Vi.SAVEPOINT=315,Vi.SCHEMA=316,Vi.SCROLL=317,Vi.SEARCH=318,Vi.SECOND_P=319,Vi.SECURITY=320,Vi.SEQUENCE=321,Vi.SEQUENCES=322,Vi.SERIALIZABLE=323,Vi.SERVER=324,Vi.SESSION=325,Vi.SET=326,Vi.SHARE=327,Vi.SHOW=328,Vi.SIMPLE=329,Vi.SNAPSHOT=330,Vi.STABLE=331,Vi.STANDALONE_P=332,Vi.START=333,Vi.STATEMENT=334,Vi.STATISTICS=335,Vi.STDIN=336,Vi.STDOUT=337,Vi.STORAGE=338,Vi.STRICT_P=339,Vi.STRIP_P=340,Vi.SYSID=341,Vi.SYSTEM_P=342,Vi.TABLES=343,Vi.TABLESPACE=344,Vi.TEMP=345,Vi.TEMPLATE=346,Vi.TEMPORARY=347,Vi.TEXT_P=348,Vi.TRANSACTION=349,Vi.TRIGGER=350,Vi.TRUNCATE=351,Vi.TRUSTED=352,Vi.TYPE_P=353,Vi.TYPES_P=354,Vi.UNBOUNDED=355,Vi.UNCOMMITTED=356,Vi.UNENCRYPTED=357,Vi.UNKNOWN=358,Vi.UNLISTEN=359,Vi.UNLOGGED=360,Vi.UNTIL=361,Vi.UPDATE=362,Vi.VACUUM=363,Vi.VALID=364,Vi.VALIDATE=365,Vi.VALIDATOR=366,Vi.VARYING=367,Vi.VERSION_P=368,Vi.VIEW=369,Vi.VOLATILE=370,Vi.WHITESPACE_P=371,Vi.WITHOUT=372,Vi.WORK=373,Vi.WRAPPER=374,Vi.WRITE=375,Vi.XML_P=376,Vi.YEAR_P=377,Vi.YES_P=378,Vi.ZONE=379,Vi.BETWEEN=380,Vi.BIGINT=381,Vi.BIT=382,Vi.BOOLEAN_P=383,Vi.CHAR_P=384,Vi.CHARACTER=385,Vi.COALESCE=386,Vi.DEC=387,Vi.DECIMAL_P=388,Vi.EXISTS=389,Vi.EXTRACT=390,Vi.FLOAT_P=391,Vi.GREATEST=392,Vi.INOUT=393,Vi.INT_P=394,Vi.INTEGER=395,Vi.INTERVAL=396,Vi.LEAST=397,Vi.NATIONAL=398,Vi.NCHAR=399,Vi.NONE=400,Vi.NULLIF=401,Vi.NUMERIC=402,Vi.OVERLAY=403,Vi.POSITION=404,Vi.PRECISION=405,Vi.REAL=406,Vi.ROW=407,Vi.SETOF=408,Vi.SMALLINT=409,Vi.SUBSTRING=410,Vi.TIME=411,Vi.TIMESTAMP=412,Vi.TREAT=413,Vi.TRIM=414,Vi.VALUES=415,Vi.VARCHAR=416,Vi.XMLATTRIBUTES=417,Vi.XMLCOMMENT=418,Vi.XMLAGG=419,Vi.XML_IS_WELL_FORMED=420,Vi.XML_IS_WELL_FORMED_DOCUMENT=421,Vi.XML_IS_WELL_FORMED_CONTENT=422,Vi.XPATH=423,Vi.XPATH_EXISTS=424,Vi.XMLCONCAT=425,Vi.XMLELEMENT=426,Vi.XMLEXISTS=427,Vi.XMLFOREST=428,Vi.XMLPARSE=429,Vi.XMLPI=430,Vi.XMLROOT=431,Vi.XMLSERIALIZE=432,Vi.CALL=433,Vi.CURRENT_P=434,Vi.ATTACH=435,Vi.DETACH=436,Vi.EXPRESSION=437,Vi.GENERATED=438,Vi.LOGGED=439,Vi.STORED=440,Vi.INCLUDE=441,Vi.ROUTINE=442,Vi.TRANSFORM=443,Vi.IMPORT_P=444,Vi.POLICY=445,Vi.METHOD=446,Vi.REFERENCING=447,Vi.NEW=448,Vi.OLD=449,Vi.VALUE_P=450,Vi.SUBSCRIPTION=451,Vi.PUBLICATION=452,Vi.OUT_P=453,Vi.END_P=454,Vi.ROUTINES=455,Vi.SCHEMAS=456,Vi.PROCEDURES=457,Vi.INPUT_P=458,Vi.SUPPORT=459,Vi.PARALLEL=460,Vi.SQL_P=461,Vi.DEPENDS=462,Vi.OVERRIDING=463,Vi.CONFLICT=464,Vi.SKIP_P=465,Vi.LOCKED=466,Vi.TIES=467,Vi.ROLLUP=468,Vi.CUBE=469,Vi.GROUPING=470,Vi.SETS=471,Vi.TABLESAMPLE=472,Vi.ORDINALITY=473,Vi.XMLTABLE=474,Vi.COLUMNS=475,Vi.XMLNAMESPACES=476,Vi.ROWTYPE=477,Vi.NORMALIZED=478,Vi.WITHIN=479,Vi.FILTER=480,Vi.GROUPS=481,Vi.OTHERS=482,Vi.NFC=483,Vi.NFD=484,Vi.NFKC=485,Vi.NFKD=486,Vi.UESCAPE=487,Vi.VIEWS=488,Vi.NORMALIZE=489,Vi.DUMP=490,Vi.PRINT_STRICT_PARAMS=491,Vi.VARIABLE_CONFLICT=492,Vi.ERROR=493,Vi.USE_VARIABLE=494,Vi.USE_COLUMN=495,Vi.ALIAS=496,Vi.CONSTANT=497,Vi.PERFORM=498,Vi.GET=499,Vi.DIAGNOSTICS=500,Vi.STACKED=501,Vi.ELSIF=502,Vi.WHILE=503,Vi.REVERSE=504,Vi.FOREACH=505,Vi.SLICE=506,Vi.EXIT=507,Vi.RETURN=508,Vi.QUERY=509,Vi.RAISE=510,Vi.SQLSTATE=511,Vi.DEBUG=512,Vi.LOG=513,Vi.INFO=514,Vi.NOTICE=515,Vi.WARNING=516,Vi.EXCEPTION=517,Vi.ASSERT=518,Vi.LOOP=519,Vi.OPEN=520,Vi.ABS=521,Vi.CBRT=522,Vi.CEIL=523,Vi.CEILING=524,Vi.DEGREES=525,Vi.DIV=526,Vi.EXP=527,Vi.FACTORIAL=528,Vi.FLOOR=529,Vi.GCD=530,Vi.LCM=531,Vi.LN=532,Vi.LOG10=533,Vi.MIN_SCALE=534,Vi.MOD=535,Vi.PI=536,Vi.POWER=537,Vi.RADIANS=538,Vi.ROUND=539,Vi.SCALE=540,Vi.SIGN=541,Vi.SQRT=542,Vi.TRIM_SCALE=543,Vi.TRUNC=544,Vi.WIDTH_BUCKET=545,Vi.RANDOM=546,Vi.SETSEED=547,Vi.ACOS=548,Vi.ACOSD=549,Vi.ASIN=550,Vi.ASIND=551,Vi.ATAN=552,Vi.ATAND=553,Vi.ATAN2=554,Vi.ATAN2D=555,Vi.COS=556,Vi.COSD=557,Vi.COT=558,Vi.COTD=559,Vi.SIN=560,Vi.SIND=561,Vi.TAN=562,Vi.TAND=563,Vi.SINH=564,Vi.COSH=565,Vi.TANH=566,Vi.ASINH=567,Vi.ACOSH=568,Vi.ATANH=569,Vi.BIT_LENGTH=570,Vi.CHAR_LENGTH=571,Vi.CHARACTER_LENGTH=572,Vi.LOWER=573,Vi.OCTET_LENGTH=574,Vi.UPPER=575,Vi.ASCII=576,Vi.BTRIM=577,Vi.CHR=578,Vi.CONCAT=579,Vi.CONCAT_WS=580,Vi.FORMAT=581,Vi.INITCAP=582,Vi.LENGTH=583,Vi.LPAD=584,Vi.LTRIM=585,Vi.MD5=586,Vi.PARSE_IDENT=587,Vi.PG_CLIENT_ENCODING=588,Vi.QUOTE_IDENT=589,Vi.QUOTE_LITERAL=590,Vi.QUOTE_NULLABLE=591,Vi.REGEXP_COUNT=592,Vi.REGEXP_INSTR=593,Vi.REGEXP_LIKE=594,Vi.REGEXP_MATCH=595,Vi.REGEXP_MATCHES=596,Vi.REGEXP_REPLACE=597,Vi.REGEXP_SPLIT_TO_ARRAY=598,Vi.REGEXP_SPLIT_TO_TABLE=599,Vi.REGEXP_SUBSTR=600,Vi.REPEAT=601,Vi.RPAD=602,Vi.RTRIM=603,Vi.SPLIT_PART=604,Vi.STARTS_WITH=605,Vi.STRING_TO_ARRAY=606,Vi.STRING_TO_TABLE=607,Vi.STRPOS=608,Vi.SUBSTR=609,Vi.TO_ASCII=610,Vi.TO_HEX=611,Vi.TRANSLATE=612,Vi.UNISTR=613,Vi.AGE=614,Vi.CLOCK_TIMESTAMP=615,Vi.DATE_BIN=616,Vi.DATE_PART=617,Vi.DATE_TRUNC=618,Vi.ISFINITE=619,Vi.JUSTIFY_DAYS=620,Vi.JUSTIFY_HOURS=621,Vi.JUSTIFY_INTERVAL=622,Vi.MAKE_DATE=623,Vi.MAKE_INTERVAL=624,Vi.MAKE_TIME=625,Vi.MAKE_TIMESTAMP=626,Vi.MAKE_TIMESTAMPTZ=627,Vi.NOW=628,Vi.STATEMENT_TIMESTAMP=629,Vi.TIMEOFDAY=630,Vi.TRANSACTION_TIMESTAMP=631,Vi.TO_TIMESTAMP=632,Vi.TO_CHAR=633,Vi.TO_DATE=634,Vi.TO_NUMBER=635,Vi.Identifier=636,Vi.QuotedIdentifier=637,Vi.UnterminatedQuotedIdentifier=638,Vi.InvalidQuotedIdentifier=639,Vi.InvalidUnterminatedQuotedIdentifier=640,Vi.UnicodeQuotedIdentifier=641,Vi.UnterminatedUnicodeQuotedIdentifier=642,Vi.InvalidUnicodeQuotedIdentifier=643,Vi.InvalidUnterminatedUnicodeQuotedIdentifier=644,Vi.StringConstant=645,Vi.UnterminatedStringConstant=646,Vi.UnicodeEscapeStringConstant=647,Vi.UnterminatedUnicodeEscapeStringConstant=648,Vi.BeginDollarStringConstant=649,Vi.BinaryStringConstant=650,Vi.UnterminatedBinaryStringConstant=651,Vi.InvalidBinaryStringConstant=652,Vi.InvalidUnterminatedBinaryStringConstant=653,Vi.HexadecimalStringConstant=654,Vi.UnterminatedHexadecimalStringConstant=655,Vi.InvalidHexadecimalStringConstant=656,Vi.InvalidUnterminatedHexadecimalStringConstant=657,Vi.Integral=658,Vi.NumericFail=659,Vi.Numeric=660,Vi.PLSQLVARIABLENAME=661,Vi.PLSQLIDENTIFIER=662,Vi.Whitespace=663,Vi.Newline=664,Vi.LineComment=665,Vi.BlockComment=666,Vi.UnterminatedBlockComment=667,Vi.MetaCommand=668,Vi.EndMetaCommand=669,Vi.ErrorCharacter=670,Vi.EscapeStringConstant=671,Vi.UnterminatedEscapeStringConstant=672,Vi.InvalidEscapeStringConstant=673,Vi.InvalidUnterminatedEscapeStringConstant=674,Vi.AfterEscapeStringConstantMode_NotContinued=675,Vi.AfterEscapeStringConstantWithNewlineMode_NotContinued=676,Vi.DollarText=677,Vi.EndDollarStringConstant=678,Vi.AfterEscapeStringConstantWithNewlineMode_Continued=679,Vi.EscapeStringConstantMode=1,Vi.AfterEscapeStringConstantMode=2,Vi.AfterEscapeStringConstantWithNewlineMode=3,Vi.DollarQuotedStringMode=4,Vi.channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"],Vi.literalNames=[null,"'$'","'('","')'","'['","']'","','","';'","':'","'*'","'='","'.'","'+'","'-'","'/'","'^'","'<'","'>'","'<<'","'>>'","':='","'<='","'=>'","'>='","'..'","'<>'","'::'","'%'",null,null,"'ALL'","'ANALYSE'","'ANALYZE'","'AND'","'ANY'","'ARRAY'","'AS'","'ASC'","'ASYMMETRIC'","'BOTH'","'CASE'","'CAST'","'CHECK'","'COLLATE'","'COLUMN'","'CONSTRAINT'","'CREATE'","'CURRENT_CATALOG'","'CURRENT_DATE'","'CURRENT_ROLE'","'CURRENT_TIME'","'CURRENT_TIMESTAMP'","'CURRENT_USER'","'DEFAULT'","'DEFERRABLE'","'DESC'","'DISTINCT'","'DO'","'ELSE'","'EXCEPT'","'FALSE'","'FETCH'","'FOR'","'FOREIGN'","'FROM'","'GRANT'","'GROUP'","'HAVING'","'IN'","'INITIALLY'","'INTERSECT'","'INTO'","'LATERAL'","'LEADING'","'LIMIT'","'LOCALTIME'","'LOCALTIMESTAMP'","'NOT'","'NULL'","'OFFSET'","'ON'","'ONLY'","'OR'","'ORDER'","'PLACING'","'PRIMARY'","'REFERENCES'","'RETURNING'","'SELECT'","'SESSION_USER'","'SOME'","'SYMMETRIC'","'TABLE'","'THEN'","'TO'","'TRAILING'","'TRUE'","'UNION'","'UNIQUE'","'USER'","'USING'","'VARIADIC'","'WHEN'","'WHERE'","'WINDOW'","'WITH'","'AUTHORIZATION'","'BINARY'","'COLLATION'","'CONCURRENTLY'","'CROSS'","'CURRENT_SCHEMA'","'FREEZE'","'FULL'","'ILIKE'","'INNER'","'IS'","'ISNULL'","'JOIN'","'LEFT'","'LIKE'","'NATURAL'","'NOTNULL'","'OUTER'","'OVER'","'OVERLAPS'","'RIGHT'","'SIMILAR'","'VERBOSE'","'ABORT'","'ABSOLUTE'","'ACCESS'","'ACTION'","'ADD'","'ADMIN'","'AFTER'","'AGGREGATE'","'ALSO'","'ALTER'","'ALWAYS'","'ASSERTION'","'ASSIGNMENT'","'AT'","'ATTRIBUTE'","'BACKWARD'","'BEFORE'","'BEGIN'","'BY'","'CACHE'","'CALLED'","'CASCADE'","'CASCADED'","'CATALOG'","'CHAIN'","'CHARACTERISTICS'","'CHECKPOINT'","'CLASS'","'CLOSE'","'CLUSTER'","'COMMENT'","'COMMENTS'","'COMMIT'","'COMMITTED'","'CONFIGURATION'","'CONNECTION'","'CONSTRAINTS'","'CONTENT'","'CONTINUE'","'CONVERSION'","'COPY'","'COST'","'CSV'","'CURSOR'","'CYCLE'","'DATA'","'DATABASE'","'DAY'","'DEALLOCATE'","'DECLARE'","'DEFAULTS'","'DEFERRED'","'DEFINER'","'DELETE'","'DELIMITER'","'DELIMITERS'","'DICTIONARY'","'DISABLE'","'DISCARD'","'DOCUMENT'","'DOMAIN'","'DOUBLE'","'DROP'","'EACH'","'ENABLE'","'ENCODING'","'ENCRYPTED'","'ENUM'","'ESCAPE'","'EVENT'","'EXCLUDE'","'EXCLUDING'","'EXCLUSIVE'","'EXECUTE'","'EXPLAIN'","'EXTENSION'","'EXTERNAL'","'FAMILY'","'FIRST'","'FOLLOWING'","'FORCE'","'FORWARD'","'FUNCTION'","'FUNCTIONS'","'GLOBAL'","'GRANTED'","'HANDLER'","'HEADER'","'HOLD'","'HOUR'","'IDENTITY'","'IF'","'IMMEDIATE'","'IMMUTABLE'","'IMPLICIT'","'INCLUDING'","'INCREMENT'","'INDEX'","'INDEXES'","'INHERIT'","'INHERITS'","'INLINE'","'INSENSITIVE'","'INSERT'","'INSTEAD'","'INVOKER'","'ISOLATION'","'KEY'","'LABEL'","'LANGUAGE'","'LARGE'","'LAST'","'LEAKPROOF'","'LEVEL'","'LISTEN'","'LOAD'","'LOCAL'","'LOCATION'","'LOCK'","'MAPPING'","'MATCH'","'MATCHED'","'MATERIALIZED'","'MAXVALUE'","'MERGE'","'MINUTE'","'MINVALUE'","'MODE'","'MONTH'","'MOVE'","'NAME'","'NAMES'","'NEXT'","'NO'","'NOTHING'","'NOTIFY'","'NOWAIT'","'NULLS'","'OBJECT'","'OF'","'OFF'","'OIDS'","'OPERATOR'","'OPTION'","'OPTIONS'","'OWNED'","'OWNER'","'PARSER'","'PARTIAL'","'PARTITION'","'PASSING'","'PASSWORD'","'PLANS'","'PRECEDING'","'PREPARE'","'PREPARED'","'PRESERVE'","'PRIOR'","'PRIVILEGES'","'PROCEDURAL'","'PROCEDURE'","'PROGRAM'","'QUOTE'","'RANGE'","'READ'","'REASSIGN'","'RECHECK'","'RECURSIVE'","'REF'","'REFRESH'","'REINDEX'","'RELATIVE'","'RELEASE'","'RENAME'","'REPEATABLE'","'REPLACE'","'REPLICA'","'RESET'","'RESTART'","'RESTRICT'","'RETURNS'","'REVOKE'","'ROLE'","'ROLLBACK'","'ROWS'","'RULE'","'SAVEPOINT'","'SCHEMA'","'SCROLL'","'SEARCH'","'SECOND'","'SECURITY'","'SEQUENCE'","'SEQUENCES'","'SERIALIZABLE'","'SERVER'","'SESSION'","'SET'","'SHARE'","'SHOW'","'SIMPLE'","'SNAPSHOT'","'STABLE'","'STANDALONE'","'START'","'STATEMENT'","'STATISTICS'","'STDIN'","'STDOUT'","'STORAGE'","'STRICT'","'STRIP'","'SYSID'","'SYSTEM'","'TABLES'","'TABLESPACE'","'TEMP'","'TEMPLATE'","'TEMPORARY'","'TEXT'","'TRANSACTION'","'TRIGGER'","'TRUNCATE'","'TRUSTED'","'TYPE'","'TYPES'","'UNBOUNDED'","'UNCOMMITTED'","'UNENCRYPTED'","'UNKNOWN'","'UNLISTEN'","'UNLOGGED'","'UNTIL'","'UPDATE'","'VACUUM'","'VALID'","'VALIDATE'","'VALIDATOR'","'VARYING'","'VERSION'","'VIEW'","'VOLATILE'","'WHITESPACE'","'WITHOUT'","'WORK'","'WRAPPER'","'WRITE'","'XML'","'YEAR'","'YES'","'ZONE'","'BETWEEN'","'BIGINT'","'BIT'","'BOOLEAN'","'CHAR'","'CHARACTER'","'COALESCE'","'DEC'","'DECIMAL'","'EXISTS'","'EXTRACT'","'FLOAT'","'GREATEST'","'INOUT'","'INT'","'INTEGER'","'INTERVAL'","'LEAST'","'NATIONAL'","'NCHAR'","'NONE'","'NULLIF'","'NUMERIC'","'OVERLAY'","'POSITION'","'PRECISION'","'REAL'","'ROW'","'SETOF'","'SMALLINT'","'SUBSTRING'","'TIME'","'TIMESTAMP'","'TREAT'","'TRIM'","'VALUES'","'VARCHAR'","'XMLATTRIBUTES'","'XMLCOMMENT'","'XMLAGG'","'XML_IS_WELL_FORMED'","'XML_IS_WELL_FORMED_DOCUMENT'","'XML_IS_WELL_FORMED_CONTENT'","'XPATH'","'XPATH_EXISTS'","'XMLCONCAT'","'XMLELEMENT'","'XMLEXISTS'","'XMLFOREST'","'XMLPARSE'","'XMLPI'","'XMLROOT'","'XMLSERIALIZE'","'CALL'","'CURRENT'","'ATTACH'","'DETACH'","'EXPRESSION'","'GENERATED'","'LOGGED'","'STORED'","'INCLUDE'","'ROUTINE'","'TRANSFORM'","'IMPORT'","'POLICY'","'METHOD'","'REFERENCING'","'NEW'","'OLD'","'VALUE'","'SUBSCRIPTION'","'PUBLICATION'","'OUT'","'END'","'ROUTINES'","'SCHEMAS'","'PROCEDURES'","'INPUT'","'SUPPORT'","'PARALLEL'","'SQL'","'DEPENDS'","'OVERRIDING'","'CONFLICT'","'SKIP'","'LOCKED'","'TIES'","'ROLLUP'","'CUBE'","'GROUPING'","'SETS'","'TABLESAMPLE'","'ORDINALITY'","'XMLTABLE'","'COLUMNS'","'XMLNAMESPACES'","'ROWTYPE'","'NORMALIZED'","'WITHIN'","'FILTER'","'GROUPS'","'OTHERS'","'NFC'","'NFD'","'NFKC'","'NFKD'","'UESCAPE'","'VIEWS'","'NORMALIZE'","'DUMP'","'PRINT_STRICT_PARAMS'","'VARIABLE_CONFLICT'","'ERROR'","'USE_VARIABLE'","'USE_COLUMN'","'ALIAS'","'CONSTANT'","'PERFORM'","'GET'","'DIAGNOSTICS'","'STACKED'","'ELSIF'","'WHILE'","'REVERSE'","'FOREACH'","'SLICE'","'EXIT'","'RETURN'","'QUERY'","'RAISE'","'SQLSTATE'","'DEBUG'","'LOG'","'INFO'","'NOTICE'","'WARNING'","'EXCEPTION'","'ASSERT'","'LOOP'","'OPEN'","'ABS'","'CBRT'","'CEIL'","'CEILING'","'DEGREES'","'DIV'","'EXP'","'FACTORIAL'","'FLOOR'","'GCD'","'LCM'","'LN'","'LOG10'","'MIN_SCALE'","'MOD'","'PI'","'POWER'","'RADIANS'","'ROUND'","'SCALE'","'SIGN'","'SQRT'","'TRIM_SCALE'","'TRUNC'","'WIDTH_BUCKET'","'RANDOM'","'SETSEED'","'ACOS'","'ACOSD'","'ASIN'","'ASIND'","'ATAN'","'ATAND'","'ATAN2'","'ATAN2D'","'COS'","'COSD'","'COT'","'COTD'","'SIN'","'SIND'","'TAN'","'TAND'","'SINH'","'COSH'","'TANH'","'ASINH'","'ACOSH'","'ATANH'","'BIT_LENGTH'","'CHAR_LENGTH'","'CHARACTER_LENGTH'","'LOWER'","'OCTET_LENGTH'","'UPPER'","'ASCII'","'BTRIM'","'CHR'","'CONCAT'","'CONCAT_WS'","'FORMAT'","'INITCAP'","'LENGTH'","'LPAD'","'LTRIM'","'MD5'","'PARSE_IDENT'","'PG_CLIENT_ENCODING'","'QUOTE_IDENT'","'QUOTE_LITERAL'","'QUOTE_NULLABLE'","'REGEXP_COUNT'","'REGEXP_INSTR'","'REGEXP_LIKE'","'REGEXP_MATCH'","'REGEXP_MATCHES'","'REGEXP_REPLACE'","'REGEXP_SPLIT_TO_ARRAY'","'REGEXP_SPLIT_TO_TABLE'","'REGEXP_SUBSTR'","'REPEAT'","'RPAD'","'RTRIM'","'SPLIT_PART'","'STARTS_WITH'","'STRING_TO_ARRAY'","'STRING_TO_TABLE'","'STRPOS'","'SUBSTR'","'TO_ASCII'","'TO_HEX'","'TRANSLATE'","'UNISTR'","'AGE'","'CLOCK_TIMESTAMP'","'DATE_BIN'","'DATE_PART'","'DATE_TRUNC'","'ISFINITE'","'JUSTIFY_DAYS'","'JUSTIFY_HOURS'","'JUSTIFY_INTERVAL'","'MAKE_DATE'","'MAKE_INTERVAL'","'MAKE_TIME'","'MAKE_TIMESTAMP'","'MAKE_TIMESTAMPTZ'","'NOW'","'STATEMENT_TIMESTAMP'","'TIMEOFDAY'","'TRANSACTION_TIMESTAMP'","'TO_TIMESTAMP'","'TO_CHAR'","'TO_DATE'","'TO_NUMBER'",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"'\\'",null,null,null,null,null,null,null,null,null,"'''"],Vi.symbolicNames=[null,"Dollar","OPEN_PAREN","CLOSE_PAREN","OPEN_BRACKET","CLOSE_BRACKET","COMMA","SEMI","COLON","STAR","EQUAL","DOT","PLUS","MINUS","SLASH","CARET","LT","GT","LESS_LESS","GREATER_GREATER","COLON_EQUALS","LESS_EQUALS","EQUALS_GREATER","GREATER_EQUALS","DOT_DOT","NOT_EQUALS","TYPECAST","PERCENT","PARAM","Operator","ALL","ANALYSE","ANALYZE","AND","ANY","ARRAY","AS","ASC","ASYMMETRIC","BOTH","CASE","CAST","CHECK","COLLATE","COLUMN","CONSTRAINT","CREATE","CURRENT_CATALOG","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DEFAULT","DEFERRABLE","DESC","DISTINCT","DO","ELSE","EXCEPT","FALSE_P","FETCH","FOR","FOREIGN","FROM","GRANT","GROUP_P","HAVING","IN_P","INITIALLY","INTERSECT","INTO","LATERAL_P","LEADING","LIMIT","LOCALTIME","LOCALTIMESTAMP","NOT","NULL_P","OFFSET","ON","ONLY","OR","ORDER","PLACING","PRIMARY","REFERENCES","RETURNING","SELECT","SESSION_USER","SOME","SYMMETRIC","TABLE","THEN","TO","TRAILING","TRUE_P","UNION","UNIQUE","USER","USING","VARIADIC","WHEN","WHERE","WINDOW","WITH","AUTHORIZATION","BINARY","COLLATION","CONCURRENTLY","CROSS","CURRENT_SCHEMA","FREEZE","FULL","ILIKE","INNER_P","IS","ISNULL","JOIN","LEFT","LIKE","NATURAL","NOTNULL","OUTER_P","OVER","OVERLAPS","RIGHT","SIMILAR","VERBOSE","ABORT_P","ABSOLUTE_P","ACCESS","ACTION","ADD_P","ADMIN","AFTER","AGGREGATE","ALSO","ALTER","ALWAYS","ASSERTION","ASSIGNMENT","AT","ATTRIBUTE","BACKWARD","BEFORE","BEGIN_P","BY","CACHE","CALLED","CASCADE","CASCADED","CATALOG","CHAIN","CHARACTERISTICS","CHECKPOINT","CLASS","CLOSE","CLUSTER","COMMENT","COMMENTS","COMMIT","COMMITTED","CONFIGURATION","CONNECTION","CONSTRAINTS","CONTENT_P","CONTINUE_P","CONVERSION_P","COPY","COST","CSV","CURSOR","CYCLE","DATA_P","DATABASE","DAY_P","DEALLOCATE","DECLARE","DEFAULTS","DEFERRED","DEFINER","DELETE_P","DELIMITER","DELIMITERS","DICTIONARY","DISABLE_P","DISCARD","DOCUMENT_P","DOMAIN_P","DOUBLE_P","DROP","EACH","ENABLE_P","ENCODING","ENCRYPTED","ENUM_P","ESCAPE","EVENT","EXCLUDE","EXCLUDING","EXCLUSIVE","EXECUTE","EXPLAIN","EXTENSION","EXTERNAL","FAMILY","FIRST_P","FOLLOWING","FORCE","FORWARD","FUNCTION","FUNCTIONS","GLOBAL","GRANTED","HANDLER","HEADER_P","HOLD","HOUR_P","IDENTITY_P","IF_P","IMMEDIATE","IMMUTABLE","IMPLICIT_P","INCLUDING","INCREMENT","INDEX","INDEXES","INHERIT","INHERITS","INLINE_P","INSENSITIVE","INSERT","INSTEAD","INVOKER","ISOLATION","KEY","LABEL","LANGUAGE","LARGE_P","LAST_P","LEAKPROOF","LEVEL","LISTEN","LOAD","LOCAL","LOCATION","LOCK_P","MAPPING","MATCH","MATCHED","MATERIALIZED","MAXVALUE","MERGE","MINUTE_P","MINVALUE","MODE","MONTH_P","MOVE","NAME_P","NAMES","NEXT","NO","NOTHING","NOTIFY","NOWAIT","NULLS_P","OBJECT_P","OF","OFF","OIDS","OPERATOR","OPTION","OPTIONS","OWNED","OWNER","PARSER","PARTIAL","PARTITION","PASSING","PASSWORD","PLANS","PRECEDING","PREPARE","PREPARED","PRESERVE","PRIOR","PRIVILEGES","PROCEDURAL","PROCEDURE","PROGRAM","QUOTE","RANGE","READ","REASSIGN","RECHECK","RECURSIVE","REF","REFRESH","REINDEX","RELATIVE_P","RELEASE","RENAME","REPEATABLE","REPLACE","REPLICA","RESET","RESTART","RESTRICT","RETURNS","REVOKE","ROLE","ROLLBACK","ROWS","RULE","SAVEPOINT","SCHEMA","SCROLL","SEARCH","SECOND_P","SECURITY","SEQUENCE","SEQUENCES","SERIALIZABLE","SERVER","SESSION","SET","SHARE","SHOW","SIMPLE","SNAPSHOT","STABLE","STANDALONE_P","START","STATEMENT","STATISTICS","STDIN","STDOUT","STORAGE","STRICT_P","STRIP_P","SYSID","SYSTEM_P","TABLES","TABLESPACE","TEMP","TEMPLATE","TEMPORARY","TEXT_P","TRANSACTION","TRIGGER","TRUNCATE","TRUSTED","TYPE_P","TYPES_P","UNBOUNDED","UNCOMMITTED","UNENCRYPTED","UNKNOWN","UNLISTEN","UNLOGGED","UNTIL","UPDATE","VACUUM","VALID","VALIDATE","VALIDATOR","VARYING","VERSION_P","VIEW","VOLATILE","WHITESPACE_P","WITHOUT","WORK","WRAPPER","WRITE","XML_P","YEAR_P","YES_P","ZONE","BETWEEN","BIGINT","BIT","BOOLEAN_P","CHAR_P","CHARACTER","COALESCE","DEC","DECIMAL_P","EXISTS","EXTRACT","FLOAT_P","GREATEST","INOUT","INT_P","INTEGER","INTERVAL","LEAST","NATIONAL","NCHAR","NONE","NULLIF","NUMERIC","OVERLAY","POSITION","PRECISION","REAL","ROW","SETOF","SMALLINT","SUBSTRING","TIME","TIMESTAMP","TREAT","TRIM","VALUES","VARCHAR","XMLATTRIBUTES","XMLCOMMENT","XMLAGG","XML_IS_WELL_FORMED","XML_IS_WELL_FORMED_DOCUMENT","XML_IS_WELL_FORMED_CONTENT","XPATH","XPATH_EXISTS","XMLCONCAT","XMLELEMENT","XMLEXISTS","XMLFOREST","XMLPARSE","XMLPI","XMLROOT","XMLSERIALIZE","CALL","CURRENT_P","ATTACH","DETACH","EXPRESSION","GENERATED","LOGGED","STORED","INCLUDE","ROUTINE","TRANSFORM","IMPORT_P","POLICY","METHOD","REFERENCING","NEW","OLD","VALUE_P","SUBSCRIPTION","PUBLICATION","OUT_P","END_P","ROUTINES","SCHEMAS","PROCEDURES","INPUT_P","SUPPORT","PARALLEL","SQL_P","DEPENDS","OVERRIDING","CONFLICT","SKIP_P","LOCKED","TIES","ROLLUP","CUBE","GROUPING","SETS","TABLESAMPLE","ORDINALITY","XMLTABLE","COLUMNS","XMLNAMESPACES","ROWTYPE","NORMALIZED","WITHIN","FILTER","GROUPS","OTHERS","NFC","NFD","NFKC","NFKD","UESCAPE","VIEWS","NORMALIZE","DUMP","PRINT_STRICT_PARAMS","VARIABLE_CONFLICT","ERROR","USE_VARIABLE","USE_COLUMN","ALIAS","CONSTANT","PERFORM","GET","DIAGNOSTICS","STACKED","ELSIF","WHILE","REVERSE","FOREACH","SLICE","EXIT","RETURN","QUERY","RAISE","SQLSTATE","DEBUG","LOG","INFO","NOTICE","WARNING","EXCEPTION","ASSERT","LOOP","OPEN","ABS","CBRT","CEIL","CEILING","DEGREES","DIV","EXP","FACTORIAL","FLOOR","GCD","LCM","LN","LOG10","MIN_SCALE","MOD","PI","POWER","RADIANS","ROUND","SCALE","SIGN","SQRT","TRIM_SCALE","TRUNC","WIDTH_BUCKET","RANDOM","SETSEED","ACOS","ACOSD","ASIN","ASIND","ATAN","ATAND","ATAN2","ATAN2D","COS","COSD","COT","COTD","SIN","SIND","TAN","TAND","SINH","COSH","TANH","ASINH","ACOSH","ATANH","BIT_LENGTH","CHAR_LENGTH","CHARACTER_LENGTH","LOWER","OCTET_LENGTH","UPPER","ASCII","BTRIM","CHR","CONCAT","CONCAT_WS","FORMAT","INITCAP","LENGTH","LPAD","LTRIM","MD5","PARSE_IDENT","PG_CLIENT_ENCODING","QUOTE_IDENT","QUOTE_LITERAL","QUOTE_NULLABLE","REGEXP_COUNT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","REGEXP_SUBSTR","REPEAT","RPAD","RTRIM","SPLIT_PART","STARTS_WITH","STRING_TO_ARRAY","STRING_TO_TABLE","STRPOS","SUBSTR","TO_ASCII","TO_HEX","TRANSLATE","UNISTR","AGE","CLOCK_TIMESTAMP","DATE_BIN","DATE_PART","DATE_TRUNC","ISFINITE","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","MAKE_DATE","MAKE_INTERVAL","MAKE_TIME","MAKE_TIMESTAMP","MAKE_TIMESTAMPTZ","NOW","STATEMENT_TIMESTAMP","TIMEOFDAY","TRANSACTION_TIMESTAMP","TO_TIMESTAMP","TO_CHAR","TO_DATE","TO_NUMBER","Identifier","QuotedIdentifier","UnterminatedQuotedIdentifier","InvalidQuotedIdentifier","InvalidUnterminatedQuotedIdentifier","UnicodeQuotedIdentifier","UnterminatedUnicodeQuotedIdentifier","InvalidUnicodeQuotedIdentifier","InvalidUnterminatedUnicodeQuotedIdentifier","StringConstant","UnterminatedStringConstant","UnicodeEscapeStringConstant","UnterminatedUnicodeEscapeStringConstant","BeginDollarStringConstant","BinaryStringConstant","UnterminatedBinaryStringConstant","InvalidBinaryStringConstant","InvalidUnterminatedBinaryStringConstant","HexadecimalStringConstant","UnterminatedHexadecimalStringConstant","InvalidHexadecimalStringConstant","InvalidUnterminatedHexadecimalStringConstant","Integral","NumericFail","Numeric","PLSQLVARIABLENAME","PLSQLIDENTIFIER","Whitespace","Newline","LineComment","BlockComment","UnterminatedBlockComment","MetaCommand","EndMetaCommand","ErrorCharacter","EscapeStringConstant","UnterminatedEscapeStringConstant","InvalidEscapeStringConstant","InvalidUnterminatedEscapeStringConstant","AfterEscapeStringConstantMode_NotContinued","AfterEscapeStringConstantWithNewlineMode_NotContinued","DollarText","EndDollarStringConstant","AfterEscapeStringConstantWithNewlineMode_Continued"],Vi.modeNames=["DEFAULT_MODE","EscapeStringConstantMode","AfterEscapeStringConstantMode","AfterEscapeStringConstantWithNewlineMode","DollarQuotedStringMode"],Vi.ruleNames=["Dollar","OPEN_PAREN","CLOSE_PAREN","OPEN_BRACKET","CLOSE_BRACKET","COMMA","SEMI","COLON","STAR","EQUAL","DOT","PLUS","MINUS","SLASH","CARET","LT","GT","LESS_LESS","GREATER_GREATER","COLON_EQUALS","LESS_EQUALS","EQUALS_GREATER","GREATER_EQUALS","DOT_DOT","NOT_EQUALS","TYPECAST","PERCENT","PARAM","Operator","OperatorEndingWithPlusMinus","OperatorCharacter","OperatorCharacterNotAllowPlusMinusAtEnd","OperatorCharacterAllowPlusMinusAtEnd","ALL","ANALYSE","ANALYZE","AND","ANY","ARRAY","AS","ASC","ASYMMETRIC","BOTH","CASE","CAST","CHECK","COLLATE","COLUMN","CONSTRAINT","CREATE","CURRENT_CATALOG","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DEFAULT","DEFERRABLE","DESC","DISTINCT","DO","ELSE","EXCEPT","FALSE_P","FETCH","FOR","FOREIGN","FROM","GRANT","GROUP_P","HAVING","IN_P","INITIALLY","INTERSECT","INTO","LATERAL_P","LEADING","LIMIT","LOCALTIME","LOCALTIMESTAMP","NOT","NULL_P","OFFSET","ON","ONLY","OR","ORDER","PLACING","PRIMARY","REFERENCES","RETURNING","SELECT","SESSION_USER","SOME","SYMMETRIC","TABLE","THEN","TO","TRAILING","TRUE_P","UNION","UNIQUE","USER","USING","VARIADIC","WHEN","WHERE","WINDOW","WITH","AUTHORIZATION","BINARY","COLLATION","CONCURRENTLY","CROSS","CURRENT_SCHEMA","FREEZE","FULL","ILIKE","INNER_P","IS","ISNULL","JOIN","LEFT","LIKE","NATURAL","NOTNULL","OUTER_P","OVER","OVERLAPS","RIGHT","SIMILAR","VERBOSE","ABORT_P","ABSOLUTE_P","ACCESS","ACTION","ADD_P","ADMIN","AFTER","AGGREGATE","ALSO","ALTER","ALWAYS","ASSERTION","ASSIGNMENT","AT","ATTRIBUTE","BACKWARD","BEFORE","BEGIN_P","BY","CACHE","CALLED","CASCADE","CASCADED","CATALOG","CHAIN","CHARACTERISTICS","CHECKPOINT","CLASS","CLOSE","CLUSTER","COMMENT","COMMENTS","COMMIT","COMMITTED","CONFIGURATION","CONNECTION","CONSTRAINTS","CONTENT_P","CONTINUE_P","CONVERSION_P","COPY","COST","CSV","CURSOR","CYCLE","DATA_P","DATABASE","DAY_P","DEALLOCATE","DECLARE","DEFAULTS","DEFERRED","DEFINER","DELETE_P","DELIMITER","DELIMITERS","DICTIONARY","DISABLE_P","DISCARD","DOCUMENT_P","DOMAIN_P","DOUBLE_P","DROP","EACH","ENABLE_P","ENCODING","ENCRYPTED","ENUM_P","ESCAPE","EVENT","EXCLUDE","EXCLUDING","EXCLUSIVE","EXECUTE","EXPLAIN","EXTENSION","EXTERNAL","FAMILY","FIRST_P","FOLLOWING","FORCE","FORWARD","FUNCTION","FUNCTIONS","GLOBAL","GRANTED","HANDLER","HEADER_P","HOLD","HOUR_P","IDENTITY_P","IF_P","IMMEDIATE","IMMUTABLE","IMPLICIT_P","INCLUDING","INCREMENT","INDEX","INDEXES","INHERIT","INHERITS","INLINE_P","INSENSITIVE","INSERT","INSTEAD","INVOKER","ISOLATION","KEY","LABEL","LANGUAGE","LARGE_P","LAST_P","LEAKPROOF","LEVEL","LISTEN","LOAD","LOCAL","LOCATION","LOCK_P","MAPPING","MATCH","MATCHED","MATERIALIZED","MAXVALUE","MERGE","MINUTE_P","MINVALUE","MODE","MONTH_P","MOVE","NAME_P","NAMES","NEXT","NO","NOTHING","NOTIFY","NOWAIT","NULLS_P","OBJECT_P","OF","OFF","OIDS","OPERATOR","OPTION","OPTIONS","OWNED","OWNER","PARSER","PARTIAL","PARTITION","PASSING","PASSWORD","PLANS","PRECEDING","PREPARE","PREPARED","PRESERVE","PRIOR","PRIVILEGES","PROCEDURAL","PROCEDURE","PROGRAM","QUOTE","RANGE","READ","REASSIGN","RECHECK","RECURSIVE","REF","REFRESH","REINDEX","RELATIVE_P","RELEASE","RENAME","REPEATABLE","REPLACE","REPLICA","RESET","RESTART","RESTRICT","RETURNS","REVOKE","ROLE","ROLLBACK","ROWS","RULE","SAVEPOINT","SCHEMA","SCROLL","SEARCH","SECOND_P","SECURITY","SEQUENCE","SEQUENCES","SERIALIZABLE","SERVER","SESSION","SET","SHARE","SHOW","SIMPLE","SNAPSHOT","STABLE","STANDALONE_P","START","STATEMENT","STATISTICS","STDIN","STDOUT","STORAGE","STRICT_P","STRIP_P","SYSID","SYSTEM_P","TABLES","TABLESPACE","TEMP","TEMPLATE","TEMPORARY","TEXT_P","TRANSACTION","TRIGGER","TRUNCATE","TRUSTED","TYPE_P","TYPES_P","UNBOUNDED","UNCOMMITTED","UNENCRYPTED","UNKNOWN","UNLISTEN","UNLOGGED","UNTIL","UPDATE","VACUUM","VALID","VALIDATE","VALIDATOR","VARYING","VERSION_P","VIEW","VOLATILE","WHITESPACE_P","WITHOUT","WORK","WRAPPER","WRITE","XML_P","YEAR_P","YES_P","ZONE","BETWEEN","BIGINT","BIT","BOOLEAN_P","CHAR_P","CHARACTER","COALESCE","DEC","DECIMAL_P","EXISTS","EXTRACT","FLOAT_P","GREATEST","INOUT","INT_P","INTEGER","INTERVAL","LEAST","NATIONAL","NCHAR","NONE","NULLIF","NUMERIC","OVERLAY","POSITION","PRECISION","REAL","ROW","SETOF","SMALLINT","SUBSTRING","TIME","TIMESTAMP","TREAT","TRIM","VALUES","VARCHAR","XMLATTRIBUTES","XMLCOMMENT","XMLAGG","XML_IS_WELL_FORMED","XML_IS_WELL_FORMED_DOCUMENT","XML_IS_WELL_FORMED_CONTENT","XPATH","XPATH_EXISTS","XMLCONCAT","XMLELEMENT","XMLEXISTS","XMLFOREST","XMLPARSE","XMLPI","XMLROOT","XMLSERIALIZE","CALL","CURRENT_P","ATTACH","DETACH","EXPRESSION","GENERATED","LOGGED","STORED","INCLUDE","ROUTINE","TRANSFORM","IMPORT_P","POLICY","METHOD","REFERENCING","NEW","OLD","VALUE_P","SUBSCRIPTION","PUBLICATION","OUT_P","END_P","ROUTINES","SCHEMAS","PROCEDURES","INPUT_P","SUPPORT","PARALLEL","SQL_P","DEPENDS","OVERRIDING","CONFLICT","SKIP_P","LOCKED","TIES","ROLLUP","CUBE","GROUPING","SETS","TABLESAMPLE","ORDINALITY","XMLTABLE","COLUMNS","XMLNAMESPACES","ROWTYPE","NORMALIZED","WITHIN","FILTER","GROUPS","OTHERS","NFC","NFD","NFKC","NFKD","UESCAPE","VIEWS","NORMALIZE","DUMP","PRINT_STRICT_PARAMS","VARIABLE_CONFLICT","ERROR","USE_VARIABLE","USE_COLUMN","ALIAS","CONSTANT","PERFORM","GET","DIAGNOSTICS","STACKED","ELSIF","WHILE","REVERSE","FOREACH","SLICE","EXIT","RETURN","QUERY","RAISE","SQLSTATE","DEBUG","LOG","INFO","NOTICE","WARNING","EXCEPTION","ASSERT","LOOP","OPEN","ABS","CBRT","CEIL","CEILING","DEGREES","DIV","EXP","FACTORIAL","FLOOR","GCD","LCM","LN","LOG10","MIN_SCALE","MOD","PI","POWER","RADIANS","ROUND","SCALE","SIGN","SQRT","TRIM_SCALE","TRUNC","WIDTH_BUCKET","RANDOM","SETSEED","ACOS","ACOSD","ASIN","ASIND","ATAN","ATAND","ATAN2","ATAN2D","COS","COSD","COT","COTD","SIN","SIND","TAN","TAND","SINH","COSH","TANH","ASINH","ACOSH","ATANH","BIT_LENGTH","CHAR_LENGTH","CHARACTER_LENGTH","LOWER","OCTET_LENGTH","UPPER","ASCII","BTRIM","CHR","CONCAT","CONCAT_WS","FORMAT","INITCAP","LENGTH","LPAD","LTRIM","MD5","PARSE_IDENT","PG_CLIENT_ENCODING","QUOTE_IDENT","QUOTE_LITERAL","QUOTE_NULLABLE","REGEXP_COUNT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","REGEXP_SUBSTR","REPEAT","RPAD","RTRIM","SPLIT_PART","STARTS_WITH","STRING_TO_ARRAY","STRING_TO_TABLE","STRPOS","SUBSTR","TO_ASCII","TO_HEX","TRANSLATE","UNISTR","AGE","CLOCK_TIMESTAMP","DATE_BIN","DATE_PART","DATE_TRUNC","ISFINITE","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","MAKE_DATE","MAKE_INTERVAL","MAKE_TIME","MAKE_TIMESTAMP","MAKE_TIMESTAMPTZ","NOW","STATEMENT_TIMESTAMP","TIMEOFDAY","TRANSACTION_TIMESTAMP","TO_TIMESTAMP","TO_CHAR","TO_DATE","TO_NUMBER","Identifier","IdentifierStartChar","IdentifierChar","StrictIdentifierChar","QuotedIdentifier","UnterminatedQuotedIdentifier","InvalidQuotedIdentifier","InvalidUnterminatedQuotedIdentifier","UnicodeQuotedIdentifier","UnterminatedUnicodeQuotedIdentifier","InvalidUnicodeQuotedIdentifier","InvalidUnterminatedUnicodeQuotedIdentifier","StringConstant","UnterminatedStringConstant","BeginEscapeStringConstant","UnicodeEscapeStringConstant","UnterminatedUnicodeEscapeStringConstant","BeginDollarStringConstant","Tag","BinaryStringConstant","UnterminatedBinaryStringConstant","InvalidBinaryStringConstant","InvalidUnterminatedBinaryStringConstant","HexadecimalStringConstant","UnterminatedHexadecimalStringConstant","InvalidHexadecimalStringConstant","InvalidUnterminatedHexadecimalStringConstant","Integral","NumericFail","Numeric","Digits","PLSQLVARIABLENAME","PLSQLIDENTIFIER","Whitespace","Newline","LineComment","BlockComment","UnterminatedBlockComment","MetaCommand","EndMetaCommand","ErrorCharacter","EscapeStringConstant","UnterminatedEscapeStringConstant","EscapeStringText","InvalidEscapeStringConstant","InvalidUnterminatedEscapeStringConstant","InvalidEscapeStringText","AfterEscapeStringConstantMode_Whitespace","AfterEscapeStringConstantMode_Newline","AfterEscapeStringConstantMode_NotContinued","AfterEscapeStringConstantWithNewlineMode_Whitespace","AfterEscapeStringConstantWithNewlineMode_Newline","AfterEscapeStringConstantWithNewlineMode_Continued","AfterEscapeStringConstantWithNewlineMode_NotContinued","DollarText","EndDollarStringConstant"],Vi._serializedATN=[4,0,679,6791,6,-1,6,-1,6,-1,6,-1,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,2,230,7,230,2,231,7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,235,7,235,2,236,7,236,2,237,7,237,2,238,7,238,2,239,7,239,2,240,7,240,2,241,7,241,2,242,7,242,2,243,7,243,2,244,7,244,2,245,7,245,2,246,7,246,2,247,7,247,2,248,7,248,2,249,7,249,2,250,7,250,2,251,7,251,2,252,7,252,2,253,7,253,2,254,7,254,2,255,7,255,2,256,7,256,2,257,7,257,2,258,7,258,2,259,7,259,2,260,7,260,2,261,7,261,2,262,7,262,2,263,7,263,2,264,7,264,2,265,7,265,2,266,7,266,2,267,7,267,2,268,7,268,2,269,7,269,2,270,7,270,2,271,7,271,2,272,7,272,2,273,7,273,2,274,7,274,2,275,7,275,2,276,7,276,2,277,7,277,2,278,7,278,2,279,7,279,2,280,7,280,2,281,7,281,2,282,7,282,2,283,7,283,2,284,7,284,2,285,7,285,2,286,7,286,2,287,7,287,2,288,7,288,2,289,7,289,2,290,7,290,2,291,7,291,2,292,7,292,2,293,7,293,2,294,7,294,2,295,7,295,2,296,7,296,2,297,7,297,2,298,7,298,2,299,7,299,2,300,7,300,2,301,7,301,2,302,7,302,2,303,7,303,2,304,7,304,2,305,7,305,2,306,7,306,2,307,7,307,2,308,7,308,2,309,7,309,2,310,7,310,2,311,7,311,2,312,7,312,2,313,7,313,2,314,7,314,2,315,7,315,2,316,7,316,2,317,7,317,2,318,7,318,2,319,7,319,2,320,7,320,2,321,7,321,2,322,7,322,2,323,7,323,2,324,7,324,2,325,7,325,2,326,7,326,2,327,7,327,2,328,7,328,2,329,7,329,2,330,7,330,2,331,7,331,2,332,7,332,2,333,7,333,2,334,7,334,2,335,7,335,2,336,7,336,2,337,7,337,2,338,7,338,2,339,7,339,2,340,7,340,2,341,7,341,2,342,7,342,2,343,7,343,2,344,7,344,2,345,7,345,2,346,7,346,2,347,7,347,2,348,7,348,2,349,7,349,2,350,7,350,2,351,7,351,2,352,7,352,2,353,7,353,2,354,7,354,2,355,7,355,2,356,7,356,2,357,7,357,2,358,7,358,2,359,7,359,2,360,7,360,2,361,7,361,2,362,7,362,2,363,7,363,2,364,7,364,2,365,7,365,2,366,7,366,2,367,7,367,2,368,7,368,2,369,7,369,2,370,7,370,2,371,7,371,2,372,7,372,2,373,7,373,2,374,7,374,2,375,7,375,2,376,7,376,2,377,7,377,2,378,7,378,2,379,7,379,2,380,7,380,2,381,7,381,2,382,7,382,2,383,7,383,2,384,7,384,2,385,7,385,2,386,7,386,2,387,7,387,2,388,7,388,2,389,7,389,2,390,7,390,2,391,7,391,2,392,7,392,2,393,7,393,2,394,7,394,2,395,7,395,2,396,7,396,2,397,7,397,2,398,7,398,2,399,7,399,2,400,7,400,2,401,7,401,2,402,7,402,2,403,7,403,2,404,7,404,2,405,7,405,2,406,7,406,2,407,7,407,2,408,7,408,2,409,7,409,2,410,7,410,2,411,7,411,2,412,7,412,2,413,7,413,2,414,7,414,2,415,7,415,2,416,7,416,2,417,7,417,2,418,7,418,2,419,7,419,2,420,7,420,2,421,7,421,2,422,7,422,2,423,7,423,2,424,7,424,2,425,7,425,2,426,7,426,2,427,7,427,2,428,7,428,2,429,7,429,2,430,7,430,2,431,7,431,2,432,7,432,2,433,7,433,2,434,7,434,2,435,7,435,2,436,7,436,2,437,7,437,2,438,7,438,2,439,7,439,2,440,7,440,2,441,7,441,2,442,7,442,2,443,7,443,2,444,7,444,2,445,7,445,2,446,7,446,2,447,7,447,2,448,7,448,2,449,7,449,2,450,7,450,2,451,7,451,2,452,7,452,2,453,7,453,2,454,7,454,2,455,7,455,2,456,7,456,2,457,7,457,2,458,7,458,2,459,7,459,2,460,7,460,2,461,7,461,2,462,7,462,2,463,7,463,2,464,7,464,2,465,7,465,2,466,7,466,2,467,7,467,2,468,7,468,2,469,7,469,2,470,7,470,2,471,7,471,2,472,7,472,2,473,7,473,2,474,7,474,2,475,7,475,2,476,7,476,2,477,7,477,2,478,7,478,2,479,7,479,2,480,7,480,2,481,7,481,2,482,7,482,2,483,7,483,2,484,7,484,2,485,7,485,2,486,7,486,2,487,7,487,2,488,7,488,2,489,7,489,2,490,7,490,2,491,7,491,2,492,7,492,2,493,7,493,2,494,7,494,2,495,7,495,2,496,7,496,2,497,7,497,2,498,7,498,2,499,7,499,2,500,7,500,2,501,7,501,2,502,7,502,2,503,7,503,2,504,7,504,2,505,7,505,2,506,7,506,2,507,7,507,2,508,7,508,2,509,7,509,2,510,7,510,2,511,7,511,2,512,7,512,2,513,7,513,2,514,7,514,2,515,7,515,2,516,7,516,2,517,7,517,2,518,7,518,2,519,7,519,2,520,7,520,2,521,7,521,2,522,7,522,2,523,7,523,2,524,7,524,2,525,7,525,2,526,7,526,2,527,7,527,2,528,7,528,2,529,7,529,2,530,7,530,2,531,7,531,2,532,7,532,2,533,7,533,2,534,7,534,2,535,7,535,2,536,7,536,2,537,7,537,2,538,7,538,2,539,7,539,2,540,7,540,2,541,7,541,2,542,7,542,2,543,7,543,2,544,7,544,2,545,7,545,2,546,7,546,2,547,7,547,2,548,7,548,2,549,7,549,2,550,7,550,2,551,7,551,2,552,7,552,2,553,7,553,2,554,7,554,2,555,7,555,2,556,7,556,2,557,7,557,2,558,7,558,2,559,7,559,2,560,7,560,2,561,7,561,2,562,7,562,2,563,7,563,2,564,7,564,2,565,7,565,2,566,7,566,2,567,7,567,2,568,7,568,2,569,7,569,2,570,7,570,2,571,7,571,2,572,7,572,2,573,7,573,2,574,7,574,2,575,7,575,2,576,7,576,2,577,7,577,2,578,7,578,2,579,7,579,2,580,7,580,2,581,7,581,2,582,7,582,2,583,7,583,2,584,7,584,2,585,7,585,2,586,7,586,2,587,7,587,2,588,7,588,2,589,7,589,2,590,7,590,2,591,7,591,2,592,7,592,2,593,7,593,2,594,7,594,2,595,7,595,2,596,7,596,2,597,7,597,2,598,7,598,2,599,7,599,2,600,7,600,2,601,7,601,2,602,7,602,2,603,7,603,2,604,7,604,2,605,7,605,2,606,7,606,2,607,7,607,2,608,7,608,2,609,7,609,2,610,7,610,2,611,7,611,2,612,7,612,2,613,7,613,2,614,7,614,2,615,7,615,2,616,7,616,2,617,7,617,2,618,7,618,2,619,7,619,2,620,7,620,2,621,7,621,2,622,7,622,2,623,7,623,2,624,7,624,2,625,7,625,2,626,7,626,2,627,7,627,2,628,7,628,2,629,7,629,2,630,7,630,2,631,7,631,2,632,7,632,2,633,7,633,2,634,7,634,2,635,7,635,2,636,7,636,2,637,7,637,2,638,7,638,2,639,7,639,2,640,7,640,2,641,7,641,2,642,7,642,2,643,7,643,2,644,7,644,2,645,7,645,2,646,7,646,2,647,7,647,2,648,7,648,2,649,7,649,2,650,7,650,2,651,7,651,2,652,7,652,2,653,7,653,2,654,7,654,2,655,7,655,2,656,7,656,2,657,7,657,2,658,7,658,2,659,7,659,2,660,7,660,2,661,7,661,2,662,7,662,2,663,7,663,2,664,7,664,2,665,7,665,2,666,7,666,2,667,7,667,2,668,7,668,2,669,7,669,2,670,7,670,2,671,7,671,2,672,7,672,2,673,7,673,2,674,7,674,2,675,7,675,2,676,7,676,2,677,7,677,2,678,7,678,2,679,7,679,2,680,7,680,2,681,7,681,2,682,7,682,2,683,7,683,2,684,7,684,2,685,7,685,2,686,7,686,2,687,7,687,2,688,7,688,2,689,7,689,2,690,7,690,2,691,7,691,2,692,7,692,2,693,7,693,2,694,7,694,1,0,1,0,1,1,1,1,1,2,1,2,1,3,1,3,1,4,1,4,1,5,1,5,1,6,1,6,1,7,1,7,1,8,1,8,1,9,1,9,1,10,1,10,1,11,1,11,1,12,1,12,1,13,1,13,1,14,1,14,1,15,1,15,1,16,1,16,1,17,1,17,1,17,1,18,1,18,1,18,1,19,1,19,1,19,1,20,1,20,1,20,1,21,1,21,1,21,1,22,1,22,1,22,1,23,1,23,1,23,1,24,1,24,1,24,1,25,1,25,1,25,1,26,1,26,1,27,1,27,4,27,1461,8,27,11,27,12,27,1462,1,28,1,28,1,28,1,28,4,28,1469,8,28,11,28,12,28,1470,1,28,1,28,1,28,3,28,1476,8,28,1,28,1,28,4,28,1480,8,28,11,28,12,28,1481,1,28,3,28,1485,8,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,5,29,1494,8,29,10,29,12,29,1497,9,29,1,29,1,29,3,29,1501,8,29,1,29,1,29,1,29,4,29,1506,8,29,11,29,12,29,1507,1,29,1,29,1,30,1,30,1,31,1,31,1,32,1,32,1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,58,1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,72,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,77,1,77,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,85,1,86,1,86,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,95,1,95,1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,102,1,102,1,102,1,102,1,102,1,103,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,1,106,1,106,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,108,1,108,1,108,1,108,1,108,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,113,1,113,1,113,1,113,1,113,1,113,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,117,1,117,1,118,1,118,1,118,1,118,1,118,1,118,1,119,1,119,1,119,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,121,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,132,1,132,1,132,1,132,1,132,1,132,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,136,1,136,1,136,1,136,1,137,1,137,1,137,1,137,1,137,1,137,1,138,1,138,1,138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,140,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1,141,1,141,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,145,1,145,1,145,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,149,1,149,1,149,1,149,1,149,1,149,1,150,1,150,1,150,1,151,1,151,1,151,1,151,1,151,1,151,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,156,1,156,1,156,1,156,1,156,1,156,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,159,1,159,1,159,1,159,1,159,1,159,1,160,1,160,1,160,1,160,1,160,1,160,1,161,1,161,1,161,1,161,1,161,1,161,1,161,1,161,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,172,1,172,1,172,1,172,1,172,1,173,1,173,1,173,1,173,1,173,1,174,1,174,1,174,1,174,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,176,1,176,1,176,1,176,1,176,1,176,1,177,1,177,1,177,1,177,1,177,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,179,1,179,1,179,1,179,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,184,1,184,1,184,1,184,1,184,1,184,1,184,1,184,1,185,1,185,1,185,1,185,1,185,1,185,1,185,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,190,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,194,1,194,1,194,1,194,1,194,1,195,1,195,1,195,1,195,1,195,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,197,1,197,1,197,1,197,1,197,1,197,1,197,1,197,1,197,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,199,1,199,1,199,1,199,1,199,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,201,1,201,1,201,1,201,1,201,1,201,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,203,1,203,1,203,1,203,1,203,1,203,1,203,1,203,1,203,1,203,1,204,1,204,1,204,1,204,1,204,1,204,1,204,1,204,1,204,1,204,1,205,1,205,1,205,1,205,1,205,1,205,1,205,1,205,1,206,1,206,1,206,1,206,1,206,1,206,1,206,1,206,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,208,1,208,1,208,1,208,1,208,1,208,1,208,1,208,1,208,1,209,1,209,1,209,1,209,1,209,1,209,1,209,1,210,1,210,1,210,1,210,1,210,1,210,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,212,1,212,1,212,1,212,1,212,1,212,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,220,1,220,1,220,1,220,1,220,1,221,1,221,1,221,1,221,1,221,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,223,1,223,1,223,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,227,1,227,1,227,1,227,1,227,1,227,1,227,1,227,1,227,1,227,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,229,1,229,1,229,1,229,1,229,1,229,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,239,1,239,1,239,1,239,1,240,1,240,1,240,1,240,1,240,1,240,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,242,1,242,1,242,1,242,1,242,1,242,1,243,1,243,1,243,1,243,1,243,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,245,1,245,1,245,1,245,1,245,1,245,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,247,1,247,1,247,1,247,1,247,1,248,1,248,1,248,1,248,1,248,1,248,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,250,1,250,1,250,1,250,1,250,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,252,1,252,1,252,1,252,1,252,1,252,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,256,1,256,1,256,1,256,1,256,1,256,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,259,1,259,1,259,1,259,1,259,1,260,1,260,1,260,1,260,1,260,1,260,1,261,1,261,1,261,1,261,1,261,1,262,1,262,1,262,1,262,1,262,1,263,1,263,1,263,1,263,1,263,1,263,1,264,1,264,1,264,1,264,1,264,1,265,1,265,1,265,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,269,1,269,1,269,1,269,1,269,1,269,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,271,1,271,1,271,1,272,1,272,1,272,1,272,1,273,1,273,1,273,1,273,1,273,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,277,1,277,1,277,1,277,1,277,1,277,1,278,1,278,1,278,1,278,1,278,1,278,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,282,1,282,1,282,1,282,1,282,1,282,1,282,1,282,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,284,1,284,1,284,1,284,1,284,1,284,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,287,1,287,1,287,1,287,1,287,1,287,1,287,1,287,1,287,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,289,1,289,1,289,1,289,1,289,1,289,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,292,1,292,1,292,1,292,1,292,1,292,1,292,1,292,1,292,1,292,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,294,1,294,1,294,1,294,1,294,1,294,1,295,1,295,1,295,1,295,1,295,1,295,1,296,1,296,1,296,1,296,1,296,1,297,1,297,1,297,1,297,1,297,1,297,1,297,1,297,1,297,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,299,1,299,1,299,1,299,1,299,1,299,1,299,1,299,1,299,1,299,1,300,1,300,1,300,1,300,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,305,1,305,1,305,1,305,1,305,1,305,1,305,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,307,1,307,1,307,1,307,1,307,1,307,1,307,1,307,1,308,1,308,1,308,1,308,1,308,1,308,1,308,1,308,1,309,1,309,1,309,1,309,1,309,1,309,1,310,1,310,1,310,1,310,1,310,1,310,1,310,1,310,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,312,1,312,1,312,1,312,1,312,1,312,1,312,1,312,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,314,1,314,1,314,1,314,1,314,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,316,1,316,1,316,1,316,1,316,1,317,1,317,1,317,1,317,1,317,1,318,1,318,1,318,1,318,1,318,1,318,1,318,1,318,1,318,1,318,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1,320,1,320,1,320,1,320,1,320,1,320,1,320,1,321,1,321,1,321,1,321,1,321,1,321,1,321,1,322,1,322,1,322,1,322,1,322,1,322,1,322,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,324,1,324,1,324,1,324,1,324,1,324,1,324,1,324,1,324,1,325,1,325,1,325,1,325,1,325,1,325,1,325,1,325,1,325,1,325,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,328,1,328,1,328,1,328,1,328,1,328,1,328,1,328,1,329,1,329,1,329,1,329,1,330,1,330,1,330,1,330,1,330,1,330,1,331,1,331,1,331,1,331,1,331,1,332,1,332,1,332,1,332,1,332,1,332,1,332,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,334,1,334,1,334,1,334,1,334,1,334,1,334,1,335,1,335,1,335,1,335,1,335,1,335,1,335,1,335,1,335,1,335,1,335,1,336,1,336,1,336,1,336,1,336,1,336,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,339,1,339,1,339,1,339,1,339,1,339,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,343,1,343,1,343,1,343,1,343,1,343,1,344,1,344,1,344,1,344,1,344,1,344,1,345,1,345,1,345,1,345,1,345,1,345,1,345,1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,347,1,347,1,347,1,347,1,347,1,347,1,347,1,347,1,347,1,347,1,347,1,348,1,348,1,348,1,348,1,348,1,349,1,349,1,349,1,349,1,349,1,349,1,349,1,349,1,349,1,350,1,350,1,350,1,350,1,350,1,350,1,350,1,350,1,350,1,350,1,351,1,351,1,351,1,351,1,351,1,352,1,352,1,352,1,352,1,352,1,352,1,352,1,352,1,352,1,352,1,352,1,352,1,353,1,353,1,353,1,353,1,353,1,353,1,353,1,353,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,355,1,355,1,355,1,355,1,355,1,355,1,355,1,355,1,356,1,356,1,356,1,356,1,356,1,357,1,357,1,357,1,357,1,357,1,357,1,358,1,358,1,358,1,358,1,358,1,358,1,358,1,358,1,358,1,358,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,361,1,361,1,361,1,361,1,361,1,361,1,361,1,361,1,362,1,362,1,362,1,362,1,362,1,362,1,362,1,362,1,362,1,363,1,363,1,363,1,363,1,363,1,363,1,363,1,363,1,363,1,364,1,364,1,364,1,364,1,364,1,364,1,365,1,365,1,365,1,365,1,365,1,365,1,365,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,367,1,367,1,367,1,367,1,367,1,367,1,368,1,368,1,368,1,368,1,368,1,368,1,368,1,368,1,368,1,369,1,369,1,369,1,369,1,369,1,369,1,369,1,369,1,369,1,369,1,370,1,370,1,370,1,370,1,370,1,370,1,370,1,370,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,372,1,372,1,372,1,372,1,372,1,373,1,373,1,373,1,373,1,373,1,373,1,373,1,373,1,373,1,374,1,374,1,374,1,374,1,374,1,374,1,374,1,374,1,374,1,374,1,374,1,375,1,375,1,375,1,375,1,375,1,375,1,375,1,375,1,376,1,376,1,376,1,376,1,376,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,378,1,378,1,378,1,378,1,378,1,378,1,379,1,379,1,379,1,379,1,380,1,380,1,380,1,380,1,380,1,381,1,381,1,381,1,381,1,382,1,382,1,382,1,382,1,382,1,383,1,383,1,383,1,383,1,383,1,383,1,383,1,383,1,384,1,384,1,384,1,384,1,384,1,384,1,384,1,385,1,385,1,385,1,385,1,386,1,386,1,386,1,386,1,386,1,386,1,386,1,386,1,387,1,387,1,387,1,387,1,387,1,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,1,389,1,389,1,389,1,389,1,389,1,389,1,389,1,389,1,389,1,390,1,390,1,390,1,390,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,392,1,392,1,392,1,392,1,392,1,392,1,392,1,393,1,393,1,393,1,393,1,393,1,393,1,393,1,393,1,394,1,394,1,394,1,394,1,394,1,394,1,395,1,395,1,395,1,395,1,395,1,395,1,395,1,395,1,395,1,396,1,396,1,396,1,396,1,396,1,396,1,397,1,397,1,397,1,397,1,398,1,398,1,398,1,398,1,398,1,398,1,398,1,398,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,400,1,400,1,400,1,400,1,400,1,400,1,401,1,401,1,401,1,401,1,401,1,401,1,401,1,401,1,401,1,402,1,402,1,402,1,402,1,402,1,402,1,403,1,403,1,403,1,403,1,403,1,404,1,404,1,404,1,404,1,404,1,404,1,404,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,406,1,406,1,406,1,406,1,406,1,406,1,406,1,406,1,407,1,407,1,407,1,407,1,407,1,407,1,407,1,407,1,407,1,408,1,408,1,408,1,408,1,408,1,408,1,408,1,408,1,408,1,408,1,409,1,409,1,409,1,409,1,409,1,410,1,410,1,410,1,410,1,411,1,411,1,411,1,411,1,411,1,411,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,413,1,413,1,413,1,413,1,413,1,413,1,413,1,413,1,413,1,413,1,414,1,414,1,414,1,414,1,414,1,415,1,415,1,415,1,415,1,415,1,415,1,415,1,415,1,415,1,415,1,416,1,416,1,416,1,416,1,416,1,416,1,417,1,417,1,417,1,417,1,417,1,418,1,418,1,418,1,418,1,418,1,418,1,418,1,419,1,419,1,419,1,419,1,419,1,419,1,419,1,419,1,420,1,420,1,420,1,420,1,420,1,420,1,420,1,420,1,420,1,420,1,420,1,420,1,420,1,420,1,421,1,421,1,421,1,421,1,421,1,421,1,421,1,421,1,421,1,421,1,421,1,422,1,422,1,422,1,422,1,422,1,422,1,422,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,426,1,426,1,426,1,426,1,426,1,426,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,428,1,428,1,428,1,428,1,428,1,428,1,428,1,428,1,428,1,428,1,429,1,429,1,429,1,429,1,429,1,429,1,429,1,429,1,429,1,429,1,429,1,430,1,430,1,430,1,430,1,430,1,430,1,430,1,430,1,430,1,430,1,431,1,431,1,431,1,431,1,431,1,431,1,431,1,431,1,431,1,431,1,432,1,432,1,432,1,432,1,432,1,432,1,432,1,432,1,432,1,433,1,433,1,433,1,433,1,433,1,433,1,434,1,434,1,434,1,434,1,434,1,434,1,434,1,434,1,435,1,435,1,435,1,435,1,435,1,435,1,435,1,435,1,435,1,435,1,435,1,435,1,435,1,436,1,436,1,436,1,436,1,436,1,437,1,437,1,437,1,437,1,437,1,437,1,437,1,437,1,438,1,438,1,438,1,438,1,438,1,438,1,438,1,439,1,439,1,439,1,439,1,439,1,439,1,439,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,441,1,441,1,441,1,441,1,441,1,441,1,441,1,441,1,441,1,441,1,442,1,442,1,442,1,442,1,442,1,442,1,442,1,443,1,443,1,443,1,443,1,443,1,443,1,443,1,444,1,444,1,444,1,444,1,444,1,444,1,444,1,444,1,445,1,445,1,445,1,445,1,445,1,445,1,445,1,445,1,446,1,446,1,446,1,446,1,446,1,446,1,446,1,446,1,446,1,446,1,447,1,447,1,447,1,447,1,447,1,447,1,447,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,449,1,449,1,449,1,449,1,449,1,449,1,449,1,450,1,450,1,450,1,450,1,450,1,450,1,450,1,450,1,450,1,450,1,450,1,450,1,451,1,451,1,451,1,451,1,452,1,452,1,452,1,452,1,453,1,453,1,453,1,453,1,453,1,453,1,454,1,454,1,454,1,454,1,454,1,454,1,454,1,454,1,454,1,454,1,454,1,454,1,454,1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,456,1,456,1,456,1,456,1,457,1,457,1,457,1,457,1,458,1,458,1,458,1,458,1,458,1,458,1,458,1,458,1,458,1,459,1,459,1,459,1,459,1,459,1,459,1,459,1,459,1,460,1,460,1,460,1,460,1,460,1,460,1,460,1,460,1,460,1,460,1,460,1,461,1,461,1,461,1,461,1,461,1,461,1,462,1,462,1,462,1,462,1,462,1,462,1,462,1,462,1,463,1,463,1,463,1,463,1,463,1,463,1,463,1,463,1,463,1,464,1,464,1,464,1,464,1,465,1,465,1,465,1,465,1,465,1,465,1,465,1,465,1,466,1,466,1,466,1,466,1,466,1,466,1,466,1,466,1,466,1,466,1,466,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,468,1,468,1,468,1,468,1,468,1,469,1,469,1,469,1,469,1,469,1,469,1,469,1,470,1,470,1,470,1,470,1,470,1,471,1,471,1,471,1,471,1,471,1,471,1,471,1,472,1,472,1,472,1,472,1,472,1,473,1,473,1,473,1,473,1,473,1,473,1,473,1,473,1,473,1,474,1,474,1,474,1,474,1,474,1,475,1,475,1,475,1,475,1,475,1,475,1,475,1,475,1,475,1,475,1,475,1,475,1,476,1,476,1,476,1,476,1,476,1,476,1,476,1,476,1,476,1,476,1,476,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,481,1,481,1,481,1,481,1,481,1,481,1,481,1,481,1,481,1,481,1,481,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1,483,1,483,1,483,1,483,1,483,1,483,1,483,1,484,1,484,1,484,1,484,1,484,1,484,1,484,1,485,1,485,1,485,1,485,1,485,1,485,1,485,1,486,1,486,1,486,1,486,1,487,1,487,1,487,1,487,1,488,1,488,1,488,1,488,1,488,1,489,1,489,1,489,1,489,1,489,1,490,1,490,1,490,1,490,1,490,1,490,1,490,1,490,1,491,1,491,1,491,1,491,1,491,1,491,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,493,1,493,1,493,1,493,1,493,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,496,1,496,1,496,1,496,1,496,1,496,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,499,1,499,1,499,1,499,1,499,1,499,1,500,1,500,1,500,1,500,1,500,1,500,1,500,1,500,1,500,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,502,1,502,1,502,1,502,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,504,1,504,1,504,1,504,1,504,1,504,1,504,1,504,1,505,1,505,1,505,1,505,1,505,1,505,1,506,1,506,1,506,1,506,1,506,1,506,1,507,1,507,1,507,1,507,1,507,1,507,1,507,1,507,1,508,1,508,1,508,1,508,1,508,1,508,1,508,1,508,1,509,1,509,1,509,1,509,1,509,1,509,1,510,1,510,1,510,1,510,1,510,1,511,1,511,1,511,1,511,1,511,1,511,1,511,1,512,1,512,1,512,1,512,1,512,1,512,1,513,1,513,1,513,1,513,1,513,1,513,1,514,1,514,1,514,1,514,1,514,1,514,1,514,1,514,1,514,1,515,1,515,1,515,1,515,1,515,1,515,1,516,1,516,1,516,1,516,1,517,1,517,1,517,1,517,1,517,1,518,1,518,1,518,1,518,1,518,1,518,1,518,1,519,1,519,1,519,1,519,1,519,1,519,1,519,1,519,1,520,1,520,1,520,1,520,1,520,1,520,1,520,1,520,1,520,1,520,1,521,1,521,1,521,1,521,1,521,1,521,1,521,1,522,1,522,1,522,1,522,1,522,1,523,1,523,1,523,1,523,1,523,1,524,1,524,1,524,1,524,1,525,1,525,1,525,1,525,1,525,1,526,1,526,1,526,1,526,1,526,1,527,1,527,1,527,1,527,1,527,1,527,1,527,1,527,1,528,1,528,1,528,1,528,1,528,1,528,1,528,1,528,1,529,1,529,1,529,1,529,1,530,1,530,1,530,1,530,1,531,1,531,1,531,1,531,1,531,1,531,1,531,1,531,1,531,1,531,1,532,1,532,1,532,1,532,1,532,1,532,1,533,1,533,1,533,1,533,1,534,1,534,1,534,1,534,1,535,1,535,1,535,1,536,1,536,1,536,1,536,1,536,1,536,1,537,1,537,1,537,1,537,1,537,1,537,1,537,1,537,1,537,1,537,1,538,1,538,1,538,1,538,1,539,1,539,1,539,1,540,1,540,1,540,1,540,1,540,1,540,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,542,1,542,1,542,1,542,1,542,1,542,1,543,1,543,1,543,1,543,1,543,1,543,1,544,1,544,1,544,1,544,1,544,1,545,1,545,1,545,1,545,1,545,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,547,1,547,1,547,1,547,1,547,1,547,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,549,1,549,1,549,1,549,1,549,1,549,1,549,1,550,1,550,1,550,1,550,1,550,1,550,1,550,1,550,1,551,1,551,1,551,1,551,1,551,1,552,1,552,1,552,1,552,1,552,1,552,1,553,1,553,1,553,1,553,1,553,1,554,1,554,1,554,1,554,1,554,1,554,1,555,1,555,1,555,1,555,1,555,1,556,1,556,1,556,1,556,1,556,1,556,1,557,1,557,1,557,1,557,1,557,1,557,1,558,1,558,1,558,1,558,1,558,1,558,1,558,1,559,1,559,1,559,1,559,1,560,1,560,1,560,1,560,1,560,1,561,1,561,1,561,1,561,1,562,1,562,1,562,1,562,1,562,1,563,1,563,1,563,1,563,1,564,1,564,1,564,1,564,1,564,1,565,1,565,1,565,1,565,1,566,1,566,1,566,1,566,1,566,1,567,1,567,1,567,1,567,1,567,1,568,1,568,1,568,1,568,1,568,1,569,1,569,1,569,1,569,1,569,1,570,1,570,1,570,1,570,1,570,1,570,1,571,1,571,1,571,1,571,1,571,1,571,1,572,1,572,1,572,1,572,1,572,1,572,1,573,1,573,1,573,1,573,1,573,1,573,1,573,1,573,1,573,1,573,1,573,1,574,1,574,1,574,1,574,1,574,1,574,1,574,1,574,1,574,1,574,1,574,1,574,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,576,1,576,1,576,1,576,1,576,1,576,1,577,1,577,1,577,1,577,1,577,1,577,1,577,1,577,1,577,1,577,1,577,1,577,1,577,1,578,1,578,1,578,1,578,1,578,1,578,1,579,1,579,1,579,1,579,1,579,1,579,1,580,1,580,1,580,1,580,1,580,1,580,1,581,1,581,1,581,1,581,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,587,1,587,1,587,1,587,1,587,1,588,1,588,1,588,1,588,1,588,1,588,1,589,1,589,1,589,1,589,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,592,1,592,1,592,1,592,1,592,1,592,1,592,1,592,1,592,1,592,1,592,1,592,1,593,1,593,1,593,1,593,1,593,1,593,1,593,1,593,1,593,1,593,1,593,1,593,1,593,1,593,1,594,1,594,1,594,1,594,1,594,1,594,1,594,1,594,1,594,1,594,1,594,1,594,1,594,1,594,1,594,1,595,1,595,1,595,1,595,1,595,1,595,1,595,1,595,1,595,1,595,1,595,1,595,1,595,1,596,1,596,1,596,1,596,1,596,1,596,1,596,1,596,1,596,1,596,1,596,1,596,1,596,1,597,1,597,1,597,1,597,1,597,1,597,1,597,1,597,1,597,1,597,1,597,1,597,1,598,1,598,1,598,1,598,1,598,1,598,1,598,1,598,1,598,1,598,1,598,1,598,1,598,1,599,1,599,1,599,1,599,1,599,1,599,1,599,1,599,1,599,1,599,1,599,1,599,1,599,1,599,1,599,1,600,1,600,1,600,1,600,1,600,1,600,1,600,1,600,1,600,1,600,1,600,1,600,1,600,1,600,1,600,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,602,1,603,1,603,1,603,1,603,1,603,1,603,1,603,1,603,1,603,1,603,1,603,1,603,1,603,1,603,1,604,1,604,1,604,1,604,1,604,1,604,1,604,1,605,1,605,1,605,1,605,1,605,1,606,1,606,1,606,1,606,1,606,1,606,1,607,1,607,1,607,1,607,1,607,1,607,1,607,1,607,1,607,1,607,1,607,1,608,1,608,1,608,1,608,1,608,1,608,1,608,1,608,1,608,1,608,1,608,1,608,1,609,1,609,1,609,1,609,1,609,1,609,1,609,1,609,1,609,1,609,1,609,1,609,1,609,1,609,1,609,1,609,1,610,1,610,1,610,1,610,1,610,1,610,1,610,1,610,1,610,1,610,1,610,1,610,1,610,1,610,1,610,1,610,1,611,1,611,1,611,1,611,1,611,1,611,1,611,1,612,1,612,1,612,1,612,1,612,1,612,1,612,1,613,1,613,1,613,1,613,1,613,1,613,1,613,1,613,1,613,1,614,1,614,1,614,1,614,1,614,1,614,1,614,1,615,1,615,1,615,1,615,1,615,1,615,1,615,1,615,1,615,1,615,1,616,1,616,1,616,1,616,1,616,1,616,1,616,1,617,1,617,1,617,1,617,1,618,1,618,1,618,1,618,1,618,1,618,1,618,1,618,1,618,1,618,1,618,1,618,1,618,1,618,1,618,1,618,1,619,1,619,1,619,1,619,1,619,1,619,1,619,1,619,1,619,1,620,1,620,1,620,1,620,1,620,1,620,1,620,1,620,1,620,1,620,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,626,1,626,1,626,1,626,1,626,1,626,1,626,1,626,1,626,1,626,1,627,1,627,1,627,1,627,1,627,1,627,1,627,1,627,1,627,1,627,1,627,1,627,1,627,1,627,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,628,1,629,1,629,1,629,1,629,1,629,1,629,1,629,1,629,1,629,1,629,1,629,1,629,1,629,1,629,1,629,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,631,1,631,1,631,1,631,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,633,1,633,1,633,1,633,1,633,1,633,1,633,1,633,1,633,1,633,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,635,1,635,1,635,1,635,1,635,1,635,1,635,1,635,1,635,1,635,1,635,1,635,1,635,1,636,1,636,1,636,1,636,1,636,1,636,1,636,1,636,1,637,1,637,1,637,1,637,1,637,1,637,1,637,1,637,1,638,1,638,1,638,1,638,1,638,1,638,1,638,1,638,1,638,1,638,1,639,1,639,5,639,6323,8,639,10,639,12,639,6326,9,639,1,640,1,640,1,640,1,640,1,640,1,640,3,640,6334,8,640,1,641,1,641,3,641,6338,8,641,1,642,1,642,3,642,6342,8,642,1,643,1,643,1,643,1,644,1,644,1,644,1,644,5,644,6351,8,644,10,644,12,644,6354,9,644,1,645,1,645,1,645,1,646,1,646,1,646,1,646,5,646,6363,8,646,10,646,12,646,6366,9,646,1,647,1,647,1,647,1,647,1,648,1,648,1,648,1,648,1,649,1,649,1,649,1,649,1,650,1,650,1,650,1,650,1,651,1,651,1,651,1,652,1,652,1,652,1,652,5,652,6391,8,652,10,652,12,652,6394,9,652,1,653,1,653,1,653,1,653,1,653,1,653,1,654,1,654,1,654,1,655,1,655,1,655,1,655,1,656,1,656,3,656,6411,8,656,1,656,1,656,1,656,1,656,1,656,1,657,1,657,5,657,6420,8,657,10,657,12,657,6423,9,657,1,658,1,658,1,658,1,659,1,659,1,659,5,659,6431,8,659,10,659,12,659,6434,9,659,1,660,1,660,1,660,1,661,1,661,1,661,1,662,1,662,1,662,1,663,1,663,1,663,5,663,6448,8,663,10,663,12,663,6451,9,663,1,664,1,664,1,664,1,665,1,665,1,665,1,666,1,666,1,667,1,667,1,667,1,667,1,667,1,667,1,668,1,668,1,668,3,668,6470,8,668,1,668,1,668,3,668,6474,8,668,1,668,3,668,6477,8,668,1,668,1,668,1,668,1,668,3,668,6483,8,668,1,668,3,668,6486,8,668,1,668,1,668,1,668,3,668,6491,8,668,1,668,1,668,3,668,6495,8,668,1,669,4,669,6498,8,669,11,669,12,669,6499,1,670,1,670,1,670,5,670,6505,8,670,10,670,12,670,6508,9,670,1,671,1,671,1,671,1,671,1,671,1,671,1,671,1,671,5,671,6518,8,671,10,671,12,671,6521,9,671,1,671,1,671,1,672,4,672,6526,8,672,11,672,12,672,6527,1,672,1,672,1,673,1,673,3,673,6534,8,673,1,673,3,673,6537,8,673,1,673,1,673,1,674,1,674,1,674,1,674,5,674,6545,8,674,10,674,12,674,6548,9,674,1,674,1,674,1,675,1,675,1,675,1,675,5,675,6556,8,675,10,675,12,675,6559,9,675,1,675,1,675,1,675,4,675,6564,8,675,11,675,12,675,6565,1,675,1,675,4,675,6570,8,675,11,675,12,675,6571,1,675,5,675,6575,8,675,10,675,12,675,6578,9,675,1,675,5,675,6581,8,675,10,675,12,675,6584,9,675,1,675,1,675,1,675,1,675,1,675,1,676,1,676,1,676,1,676,5,676,6595,8,676,10,676,12,676,6598,9,676,1,676,1,676,1,676,4,676,6603,8,676,11,676,12,676,6604,1,676,1,676,4,676,6609,8,676,11,676,12,676,6610,1,676,3,676,6614,8,676,5,676,6616,8,676,10,676,12,676,6619,9,676,1,676,4,676,6622,8,676,11,676,12,676,6623,1,676,4,676,6627,8,676,11,676,12,676,6628,1,676,5,676,6632,8,676,10,676,12,676,6635,9,676,1,676,3,676,6638,8,676,1,676,1,676,1,677,1,677,1,677,1,677,5,677,6646,8,677,10,677,12,677,6649,9,677,1,677,5,677,6652,8,677,10,677,12,677,6655,9,677,1,677,1,677,5,677,6659,8,677,10,677,12,677,6662,9,677,3,677,6664,8,677,1,678,1,678,1,678,1,679,1,679,1,680,1,680,1,680,1,680,1,680,1,681,1,681,3,681,6678,8,681,1,681,1,681,1,682,1,682,1,682,1,682,1,682,1,682,1,682,1,682,1,682,1,682,1,682,1,682,1,682,1,682,1,682,1,682,1,682,1,682,1,682,1,682,3,682,6702,8,682,1,682,5,682,6705,8,682,10,682,12,682,6708,9,682,1,683,1,683,1,683,1,683,1,683,1,684,1,684,3,684,6717,8,684,1,684,1,684,1,685,1,685,1,685,1,685,1,685,5,685,6726,8,685,10,685,12,685,6729,9,685,1,686,1,686,1,686,1,686,1,686,1,687,1,687,1,687,1,687,1,687,1,687,1,688,1,688,1,688,1,688,1,688,1,689,1,689,1,689,1,689,1,689,1,690,1,690,1,690,1,690,1,690,1,691,1,691,1,691,1,691,1,691,1,692,1,692,1,692,1,692,1,692,1,693,4,693,6768,8,693,11,693,12,693,6769,1,693,1,693,5,693,6774,8,693,10,693,12,693,6777,9,693,3,693,6779,8,693,1,694,1,694,3,694,6783,8,694,1,694,1,694,1,694,1,694,1,694,1,694,1,694,0,0,695,5,1,7,2,9,3,11,4,13,5,15,6,17,7,19,8,21,9,23,10,25,11,27,12,29,13,31,14,33,15,35,16,37,17,39,18,41,19,43,20,45,21,47,22,49,23,51,24,53,25,55,26,57,27,59,28,61,29,63,0,65,0,67,0,69,0,71,30,73,31,75,32,77,33,79,34,81,35,83,36,85,37,87,38,89,39,91,40,93,41,95,42,97,43,99,44,101,45,103,46,105,47,107,48,109,49,111,50,113,51,115,52,117,53,119,54,121,55,123,56,125,57,127,58,129,59,131,60,133,61,135,62,137,63,139,64,141,65,143,66,145,67,147,68,149,69,151,70,153,71,155,72,157,73,159,74,161,75,163,76,165,77,167,78,169,79,171,80,173,81,175,82,177,83,179,84,181,85,183,86,185,87,187,88,189,89,191,90,193,91,195,92,197,93,199,94,201,95,203,96,205,97,207,98,209,99,211,100,213,101,215,102,217,103,219,104,221,105,223,106,225,107,227,108,229,109,231,110,233,111,235,112,237,113,239,114,241,115,243,116,245,117,247,118,249,119,251,120,253,121,255,122,257,123,259,124,261,125,263,126,265,127,267,128,269,129,271,130,273,131,275,132,277,133,279,134,281,135,283,136,285,137,287,138,289,139,291,140,293,141,295,142,297,143,299,144,301,145,303,146,305,147,307,148,309,149,311,150,313,151,315,152,317,153,319,154,321,155,323,156,325,157,327,158,329,159,331,160,333,161,335,162,337,163,339,164,341,165,343,166,345,167,347,168,349,169,351,170,353,171,355,172,357,173,359,174,361,175,363,176,365,177,367,178,369,179,371,180,373,181,375,182,377,183,379,184,381,185,383,186,385,187,387,188,389,189,391,190,393,191,395,192,397,193,399,194,401,195,403,196,405,197,407,198,409,199,411,200,413,201,415,202,417,203,419,204,421,205,423,206,425,207,427,208,429,209,431,210,433,211,435,212,437,213,439,214,441,215,443,216,445,217,447,218,449,219,451,220,453,221,455,222,457,223,459,224,461,225,463,226,465,227,467,228,469,229,471,230,473,231,475,232,477,233,479,234,481,235,483,236,485,237,487,238,489,239,491,240,493,241,495,242,497,243,499,244,501,245,503,246,505,247,507,248,509,249,511,250,513,251,515,252,517,253,519,254,521,255,523,256,525,257,527,258,529,259,531,260,533,261,535,262,537,263,539,264,541,265,543,266,545,267,547,268,549,269,551,270,553,271,555,272,557,273,559,274,561,275,563,276,565,277,567,278,569,279,571,280,573,281,575,282,577,283,579,284,581,285,583,286,585,287,587,288,589,289,591,290,593,291,595,292,597,293,599,294,601,295,603,296,605,297,607,298,609,299,611,300,613,301,615,302,617,303,619,304,621,305,623,306,625,307,627,308,629,309,631,310,633,311,635,312,637,313,639,314,641,315,643,316,645,317,647,318,649,319,651,320,653,321,655,322,657,323,659,324,661,325,663,326,665,327,667,328,669,329,671,330,673,331,675,332,677,333,679,334,681,335,683,336,685,337,687,338,689,339,691,340,693,341,695,342,697,343,699,344,701,345,703,346,705,347,707,348,709,349,711,350,713,351,715,352,717,353,719,354,721,355,723,356,725,357,727,358,729,359,731,360,733,361,735,362,737,363,739,364,741,365,743,366,745,367,747,368,749,369,751,370,753,371,755,372,757,373,759,374,761,375,763,376,765,377,767,378,769,379,771,380,773,381,775,382,777,383,779,384,781,385,783,386,785,387,787,388,789,389,791,390,793,391,795,392,797,393,799,394,801,395,803,396,805,397,807,398,809,399,811,400,813,401,815,402,817,403,819,404,821,405,823,406,825,407,827,408,829,409,831,410,833,411,835,412,837,413,839,414,841,415,843,416,845,417,847,418,849,419,851,420,853,421,855,422,857,423,859,424,861,425,863,426,865,427,867,428,869,429,871,430,873,431,875,432,877,433,879,434,881,435,883,436,885,437,887,438,889,439,891,440,893,441,895,442,897,443,899,444,901,445,903,446,905,447,907,448,909,449,911,450,913,451,915,452,917,453,919,454,921,455,923,456,925,457,927,458,929,459,931,460,933,461,935,462,937,463,939,464,941,465,943,466,945,467,947,468,949,469,951,470,953,471,955,472,957,473,959,474,961,475,963,476,965,477,967,478,969,479,971,480,973,481,975,482,977,483,979,484,981,485,983,486,985,487,987,488,989,489,991,490,993,491,995,492,997,493,999,494,1001,495,1003,496,1005,497,1007,498,1009,499,1011,500,1013,501,1015,502,1017,503,1019,504,1021,505,1023,506,1025,507,1027,508,1029,509,1031,510,1033,511,1035,512,1037,513,1039,514,1041,515,1043,516,1045,517,1047,518,1049,519,1051,520,1053,521,1055,522,1057,523,1059,524,1061,525,1063,526,1065,527,1067,528,1069,529,1071,530,1073,531,1075,532,1077,533,1079,534,1081,535,1083,536,1085,537,1087,538,1089,539,1091,540,1093,541,1095,542,1097,543,1099,544,1101,545,1103,546,1105,547,1107,548,1109,549,1111,550,1113,551,1115,552,1117,553,1119,554,1121,555,1123,556,1125,557,1127,558,1129,559,1131,560,1133,561,1135,562,1137,563,1139,564,1141,565,1143,566,1145,567,1147,568,1149,569,1151,570,1153,571,1155,572,1157,573,1159,574,1161,575,1163,576,1165,577,1167,578,1169,579,1171,580,1173,581,1175,582,1177,583,1179,584,1181,585,1183,586,1185,587,1187,588,1189,589,1191,590,1193,591,1195,592,1197,593,1199,594,1201,595,1203,596,1205,597,1207,598,1209,599,1211,600,1213,601,1215,602,1217,603,1219,604,1221,605,1223,606,1225,607,1227,608,1229,609,1231,610,1233,611,1235,612,1237,613,1239,614,1241,615,1243,616,1245,617,1247,618,1249,619,1251,620,1253,621,1255,622,1257,623,1259,624,1261,625,1263,626,1265,627,1267,628,1269,629,1271,630,1273,631,1275,632,1277,633,1279,634,1281,635,1283,636,1285,0,1287,0,1289,0,1291,637,1293,638,1295,639,1297,640,1299,641,1301,642,1303,643,1305,644,1307,645,1309,646,1311,0,1313,647,1315,648,1317,649,1319,0,1321,650,1323,651,1325,652,1327,653,1329,654,1331,655,1333,656,1335,657,1337,658,1339,659,1341,660,1343,0,1345,661,1347,662,1349,663,1351,664,1353,665,1355,666,1357,667,1359,668,1361,669,1363,670,1365,671,1367,672,1369,0,1371,673,1373,674,1375,0,1377,0,1379,0,1381,675,1383,0,1385,0,1387,679,1389,676,1391,677,1393,678,5,0,1,2,3,4,51,1,0,48,57,2,0,43,43,45,45,9,0,33,33,35,35,37,38,42,42,60,64,94,94,96,96,124,124,126,126,2,0,42,43,60,62,8,0,33,33,35,35,37,38,63,64,94,94,96,96,124,124,126,126,2,0,65,65,97,97,2,0,76,76,108,108,2,0,78,78,110,110,2,0,89,89,121,121,2,0,83,83,115,115,2,0,69,69,101,101,2,0,90,90,122,122,2,0,68,68,100,100,2,0,82,82,114,114,2,0,67,67,99,99,2,0,77,77,109,109,2,0,84,84,116,116,2,0,73,73,105,105,2,0,66,66,98,98,2,0,79,79,111,111,2,0,72,72,104,104,2,0,75,75,107,107,2,0,85,85,117,117,2,0,71,71,103,103,2,0,80,80,112,112,2,0,70,70,102,102,2,0,88,88,120,120,2,0,86,86,118,118,2,0,81,81,113,113,2,0,87,87,119,119,2,0,74,74,106,106,9,0,65,90,95,95,97,122,170,170,181,181,186,186,192,214,216,246,248,255,2,0,256,55295,57344,65535,1,0,55296,56319,1,0,56320,57343,2,0,0,0,34,34,1,0,34,34,1,0,39,39,1,0,48,49,3,0,48,57,65,70,97,102,3,0,65,90,95,95,97,122,5,0,36,36,48,57,65,90,95,95,97,122,2,0,34,34,92,92,2,0,9,9,32,32,2,0,10,10,13,13,2,0,42,42,47,47,4,0,10,10,13,13,34,34,92,92,3,0,10,10,13,13,34,34,3,0,85,85,117,117,120,120,2,0,39,39,92,92,1,0,36,36,6863,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0,0,199,1,0,0,0,0,201,1,0,0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207,1,0,0,0,0,209,1,0,0,0,0,211,1,0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,0,217,1,0,0,0,0,219,1,0,0,0,0,221,1,0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,0,227,1,0,0,0,0,229,1,0,0,0,0,231,1,0,0,0,0,233,1,0,0,0,0,235,1,0,0,0,0,237,1,0,0,0,0,239,1,0,0,0,0,241,1,0,0,0,0,243,1,0,0,0,0,245,1,0,0,0,0,247,1,0,0,0,0,249,1,0,0,0,0,251,1,0,0,0,0,253,1,0,0,0,0,255,1,0,0,0,0,257,1,0,0,0,0,259,1,0,0,0,0,261,1,0,0,0,0,263,1,0,0,0,0,265,1,0,0,0,0,267,1,0,0,0,0,269,1,0,0,0,0,271,1,0,0,0,0,273,1,0,0,0,0,275,1,0,0,0,0,277,1,0,0,0,0,279,1,0,0,0,0,281,1,0,0,0,0,283,1,0,0,0,0,285,1,0,0,0,0,287,1,0,0,0,0,289,1,0,0,0,0,291,1,0,0,0,0,293,1,0,0,0,0,295,1,0,0,0,0,297,1,0,0,0,0,299,1,0,0,0,0,301,1,0,0,0,0,303,1,0,0,0,0,305,1,0,0,0,0,307,1,0,0,0,0,309,1,0,0,0,0,311,1,0,0,0,0,313,1,0,0,0,0,315,1,0,0,0,0,317,1,0,0,0,0,319,1,0,0,0,0,321,1,0,0,0,0,323,1,0,0,0,0,325,1,0,0,0,0,327,1,0,0,0,0,329,1,0,0,0,0,331,1,0,0,0,0,333,1,0,0,0,0,335,1,0,0,0,0,337,1,0,0,0,0,339,1,0,0,0,0,341,1,0,0,0,0,343,1,0,0,0,0,345,1,0,0,0,0,347,1,0,0,0,0,349,1,0,0,0,0,351,1,0,0,0,0,353,1,0,0,0,0,355,1,0,0,0,0,357,1,0,0,0,0,359,1,0,0,0,0,361,1,0,0,0,0,363,1,0,0,0,0,365,1,0,0,0,0,367,1,0,0,0,0,369,1,0,0,0,0,371,1,0,0,0,0,373,1,0,0,0,0,375,1,0,0,0,0,377,1,0,0,0,0,379,1,0,0,0,0,381,1,0,0,0,0,383,1,0,0,0,0,385,1,0,0,0,0,387,1,0,0,0,0,389,1,0,0,0,0,391,1,0,0,0,0,393,1,0,0,0,0,395,1,0,0,0,0,397,1,0,0,0,0,399,1,0,0,0,0,401,1,0,0,0,0,403,1,0,0,0,0,405,1,0,0,0,0,407,1,0,0,0,0,409,1,0,0,0,0,411,1,0,0,0,0,413,1,0,0,0,0,415,1,0,0,0,0,417,1,0,0,0,0,419,1,0,0,0,0,421,1,0,0,0,0,423,1,0,0,0,0,425,1,0,0,0,0,427,1,0,0,0,0,429,1,0,0,0,0,431,1,0,0,0,0,433,1,0,0,0,0,435,1,0,0,0,0,437,1,0,0,0,0,439,1,0,0,0,0,441,1,0,0,0,0,443,1,0,0,0,0,445,1,0,0,0,0,447,1,0,0,0,0,449,1,0,0,0,0,451,1,0,0,0,0,453,1,0,0,0,0,455,1,0,0,0,0,457,1,0,0,0,0,459,1,0,0,0,0,461,1,0,0,0,0,463,1,0,0,0,0,465,1,0,0,0,0,467,1,0,0,0,0,469,1,0,0,0,0,471,1,0,0,0,0,473,1,0,0,0,0,475,1,0,0,0,0,477,1,0,0,0,0,479,1,0,0,0,0,481,1,0,0,0,0,483,1,0,0,0,0,485,1,0,0,0,0,487,1,0,0,0,0,489,1,0,0,0,0,491,1,0,0,0,0,493,1,0,0,0,0,495,1,0,0,0,0,497,1,0,0,0,0,499,1,0,0,0,0,501,1,0,0,0,0,503,1,0,0,0,0,505,1,0,0,0,0,507,1,0,0,0,0,509,1,0,0,0,0,511,1,0,0,0,0,513,1,0,0,0,0,515,1,0,0,0,0,517,1,0,0,0,0,519,1,0,0,0,0,521,1,0,0,0,0,523,1,0,0,0,0,525,1,0,0,0,0,527,1,0,0,0,0,529,1,0,0,0,0,531,1,0,0,0,0,533,1,0,0,0,0,535,1,0,0,0,0,537,1,0,0,0,0,539,1,0,0,0,0,541,1,0,0,0,0,543,1,0,0,0,0,545,1,0,0,0,0,547,1,0,0,0,0,549,1,0,0,0,0,551,1,0,0,0,0,553,1,0,0,0,0,555,1,0,0,0,0,557,1,0,0,0,0,559,1,0,0,0,0,561,1,0,0,0,0,563,1,0,0,0,0,565,1,0,0,0,0,567,1,0,0,0,0,569,1,0,0,0,0,571,1,0,0,0,0,573,1,0,0,0,0,575,1,0,0,0,0,577,1,0,0,0,0,579,1,0,0,0,0,581,1,0,0,0,0,583,1,0,0,0,0,585,1,0,0,0,0,587,1,0,0,0,0,589,1,0,0,0,0,591,1,0,0,0,0,593,1,0,0,0,0,595,1,0,0,0,0,597,1,0,0,0,0,599,1,0,0,0,0,601,1,0,0,0,0,603,1,0,0,0,0,605,1,0,0,0,0,607,1,0,0,0,0,609,1,0,0,0,0,611,1,0,0,0,0,613,1,0,0,0,0,615,1,0,0,0,0,617,1,0,0,0,0,619,1,0,0,0,0,621,1,0,0,0,0,623,1,0,0,0,0,625,1,0,0,0,0,627,1,0,0,0,0,629,1,0,0,0,0,631,1,0,0,0,0,633,1,0,0,0,0,635,1,0,0,0,0,637,1,0,0,0,0,639,1,0,0,0,0,641,1,0,0,0,0,643,1,0,0,0,0,645,1,0,0,0,0,647,1,0,0,0,0,649,1,0,0,0,0,651,1,0,0,0,0,653,1,0,0,0,0,655,1,0,0,0,0,657,1,0,0,0,0,659,1,0,0,0,0,661,1,0,0,0,0,663,1,0,0,0,0,665,1,0,0,0,0,667,1,0,0,0,0,669,1,0,0,0,0,671,1,0,0,0,0,673,1,0,0,0,0,675,1,0,0,0,0,677,1,0,0,0,0,679,1,0,0,0,0,681,1,0,0,0,0,683,1,0,0,0,0,685,1,0,0,0,0,687,1,0,0,0,0,689,1,0,0,0,0,691,1,0,0,0,0,693,1,0,0,0,0,695,1,0,0,0,0,697,1,0,0,0,0,699,1,0,0,0,0,701,1,0,0,0,0,703,1,0,0,0,0,705,1,0,0,0,0,707,1,0,0,0,0,709,1,0,0,0,0,711,1,0,0,0,0,713,1,0,0,0,0,715,1,0,0,0,0,717,1,0,0,0,0,719,1,0,0,0,0,721,1,0,0,0,0,723,1,0,0,0,0,725,1,0,0,0,0,727,1,0,0,0,0,729,1,0,0,0,0,731,1,0,0,0,0,733,1,0,0,0,0,735,1,0,0,0,0,737,1,0,0,0,0,739,1,0,0,0,0,741,1,0,0,0,0,743,1,0,0,0,0,745,1,0,0,0,0,747,1,0,0,0,0,749,1,0,0,0,0,751,1,0,0,0,0,753,1,0,0,0,0,755,1,0,0,0,0,757,1,0,0,0,0,759,1,0,0,0,0,761,1,0,0,0,0,763,1,0,0,0,0,765,1,0,0,0,0,767,1,0,0,0,0,769,1,0,0,0,0,771,1,0,0,0,0,773,1,0,0,0,0,775,1,0,0,0,0,777,1,0,0,0,0,779,1,0,0,0,0,781,1,0,0,0,0,783,1,0,0,0,0,785,1,0,0,0,0,787,1,0,0,0,0,789,1,0,0,0,0,791,1,0,0,0,0,793,1,0,0,0,0,795,1,0,0,0,0,797,1,0,0,0,0,799,1,0,0,0,0,801,1,0,0,0,0,803,1,0,0,0,0,805,1,0,0,0,0,807,1,0,0,0,0,809,1,0,0,0,0,811,1,0,0,0,0,813,1,0,0,0,0,815,1,0,0,0,0,817,1,0,0,0,0,819,1,0,0,0,0,821,1,0,0,0,0,823,1,0,0,0,0,825,1,0,0,0,0,827,1,0,0,0,0,829,1,0,0,0,0,831,1,0,0,0,0,833,1,0,0,0,0,835,1,0,0,0,0,837,1,0,0,0,0,839,1,0,0,0,0,841,1,0,0,0,0,843,1,0,0,0,0,845,1,0,0,0,0,847,1,0,0,0,0,849,1,0,0,0,0,851,1,0,0,0,0,853,1,0,0,0,0,855,1,0,0,0,0,857,1,0,0,0,0,859,1,0,0,0,0,861,1,0,0,0,0,863,1,0,0,0,0,865,1,0,0,0,0,867,1,0,0,0,0,869,1,0,0,0,0,871,1,0,0,0,0,873,1,0,0,0,0,875,1,0,0,0,0,877,1,0,0,0,0,879,1,0,0,0,0,881,1,0,0,0,0,883,1,0,0,0,0,885,1,0,0,0,0,887,1,0,0,0,0,889,1,0,0,0,0,891,1,0,0,0,0,893,1,0,0,0,0,895,1,0,0,0,0,897,1,0,0,0,0,899,1,0,0,0,0,901,1,0,0,0,0,903,1,0,0,0,0,905,1,0,0,0,0,907,1,0,0,0,0,909,1,0,0,0,0,911,1,0,0,0,0,913,1,0,0,0,0,915,1,0,0,0,0,917,1,0,0,0,0,919,1,0,0,0,0,921,1,0,0,0,0,923,1,0,0,0,0,925,1,0,0,0,0,927,1,0,0,0,0,929,1,0,0,0,0,931,1,0,0,0,0,933,1,0,0,0,0,935,1,0,0,0,0,937,1,0,0,0,0,939,1,0,0,0,0,941,1,0,0,0,0,943,1,0,0,0,0,945,1,0,0,0,0,947,1,0,0,0,0,949,1,0,0,0,0,951,1,0,0,0,0,953,1,0,0,0,0,955,1,0,0,0,0,957,1,0,0,0,0,959,1,0,0,0,0,961,1,0,0,0,0,963,1,0,0,0,0,965,1,0,0,0,0,967,1,0,0,0,0,969,1,0,0,0,0,971,1,0,0,0,0,973,1,0,0,0,0,975,1,0,0,0,0,977,1,0,0,0,0,979,1,0,0,0,0,981,1,0,0,0,0,983,1,0,0,0,0,985,1,0,0,0,0,987,1,0,0,0,0,989,1,0,0,0,0,991,1,0,0,0,0,993,1,0,0,0,0,995,1,0,0,0,0,997,1,0,0,0,0,999,1,0,0,0,0,1001,1,0,0,0,0,1003,1,0,0,0,0,1005,1,0,0,0,0,1007,1,0,0,0,0,1009,1,0,0,0,0,1011,1,0,0,0,0,1013,1,0,0,0,0,1015,1,0,0,0,0,1017,1,0,0,0,0,1019,1,0,0,0,0,1021,1,0,0,0,0,1023,1,0,0,0,0,1025,1,0,0,0,0,1027,1,0,0,0,0,1029,1,0,0,0,0,1031,1,0,0,0,0,1033,1,0,0,0,0,1035,1,0,0,0,0,1037,1,0,0,0,0,1039,1,0,0,0,0,1041,1,0,0,0,0,1043,1,0,0,0,0,1045,1,0,0,0,0,1047,1,0,0,0,0,1049,1,0,0,0,0,1051,1,0,0,0,0,1053,1,0,0,0,0,1055,1,0,0,0,0,1057,1,0,0,0,0,1059,1,0,0,0,0,1061,1,0,0,0,0,1063,1,0,0,0,0,1065,1,0,0,0,0,1067,1,0,0,0,0,1069,1,0,0,0,0,1071,1,0,0,0,0,1073,1,0,0,0,0,1075,1,0,0,0,0,1077,1,0,0,0,0,1079,1,0,0,0,0,1081,1,0,0,0,0,1083,1,0,0,0,0,1085,1,0,0,0,0,1087,1,0,0,0,0,1089,1,0,0,0,0,1091,1,0,0,0,0,1093,1,0,0,0,0,1095,1,0,0,0,0,1097,1,0,0,0,0,1099,1,0,0,0,0,1101,1,0,0,0,0,1103,1,0,0,0,0,1105,1,0,0,0,0,1107,1,0,0,0,0,1109,1,0,0,0,0,1111,1,0,0,0,0,1113,1,0,0,0,0,1115,1,0,0,0,0,1117,1,0,0,0,0,1119,1,0,0,0,0,1121,1,0,0,0,0,1123,1,0,0,0,0,1125,1,0,0,0,0,1127,1,0,0,0,0,1129,1,0,0,0,0,1131,1,0,0,0,0,1133,1,0,0,0,0,1135,1,0,0,0,0,1137,1,0,0,0,0,1139,1,0,0,0,0,1141,1,0,0,0,0,1143,1,0,0,0,0,1145,1,0,0,0,0,1147,1,0,0,0,0,1149,1,0,0,0,0,1151,1,0,0,0,0,1153,1,0,0,0,0,1155,1,0,0,0,0,1157,1,0,0,0,0,1159,1,0,0,0,0,1161,1,0,0,0,0,1163,1,0,0,0,0,1165,1,0,0,0,0,1167,1,0,0,0,0,1169,1,0,0,0,0,1171,1,0,0,0,0,1173,1,0,0,0,0,1175,1,0,0,0,0,1177,1,0,0,0,0,1179,1,0,0,0,0,1181,1,0,0,0,0,1183,1,0,0,0,0,1185,1,0,0,0,0,1187,1,0,0,0,0,1189,1,0,0,0,0,1191,1,0,0,0,0,1193,1,0,0,0,0,1195,1,0,0,0,0,1197,1,0,0,0,0,1199,1,0,0,0,0,1201,1,0,0,0,0,1203,1,0,0,0,0,1205,1,0,0,0,0,1207,1,0,0,0,0,1209,1,0,0,0,0,1211,1,0,0,0,0,1213,1,0,0,0,0,1215,1,0,0,0,0,1217,1,0,0,0,0,1219,1,0,0,0,0,1221,1,0,0,0,0,1223,1,0,0,0,0,1225,1,0,0,0,0,1227,1,0,0,0,0,1229,1,0,0,0,0,1231,1,0,0,0,0,1233,1,0,0,0,0,1235,1,0,0,0,0,1237,1,0,0,0,0,1239,1,0,0,0,0,1241,1,0,0,0,0,1243,1,0,0,0,0,1245,1,0,0,0,0,1247,1,0,0,0,0,1249,1,0,0,0,0,1251,1,0,0,0,0,1253,1,0,0,0,0,1255,1,0,0,0,0,1257,1,0,0,0,0,1259,1,0,0,0,0,1261,1,0,0,0,0,1263,1,0,0,0,0,1265,1,0,0,0,0,1267,1,0,0,0,0,1269,1,0,0,0,0,1271,1,0,0,0,0,1273,1,0,0,0,0,1275,1,0,0,0,0,1277,1,0,0,0,0,1279,1,0,0,0,0,1281,1,0,0,0,0,1283,1,0,0,0,0,1291,1,0,0,0,0,1293,1,0,0,0,0,1295,1,0,0,0,0,1297,1,0,0,0,0,1299,1,0,0,0,0,1301,1,0,0,0,0,1303,1,0,0,0,0,1305,1,0,0,0,0,1307,1,0,0,0,0,1309,1,0,0,0,0,1311,1,0,0,0,0,1313,1,0,0,0,0,1315,1,0,0,0,0,1317,1,0,0,0,0,1321,1,0,0,0,0,1323,1,0,0,0,0,1325,1,0,0,0,0,1327,1,0,0,0,0,1329,1,0,0,0,0,1331,1,0,0,0,0,1333,1,0,0,0,0,1335,1,0,0,0,0,1337,1,0,0,0,0,1339,1,0,0,0,0,1341,1,0,0,0,0,1345,1,0,0,0,0,1347,1,0,0,0,0,1349,1,0,0,0,0,1351,1,0,0,0,0,1353,1,0,0,0,0,1355,1,0,0,0,0,1357,1,0,0,0,0,1359,1,0,0,0,0,1361,1,0,0,0,0,1363,1,0,0,0,1,1365,1,0,0,0,1,1367,1,0,0,0,1,1371,1,0,0,0,1,1373,1,0,0,0,2,1377,1,0,0,0,2,1379,1,0,0,0,2,1381,1,0,0,0,3,1383,1,0,0,0,3,1385,1,0,0,0,3,1387,1,0,0,0,3,1389,1,0,0,0,4,1391,1,0,0,0,4,1393,1,0,0,0,5,1395,1,0,0,0,7,1397,1,0,0,0,9,1399,1,0,0,0,11,1401,1,0,0,0,13,1403,1,0,0,0,15,1405,1,0,0,0,17,1407,1,0,0,0,19,1409,1,0,0,0,21,1411,1,0,0,0,23,1413,1,0,0,0,25,1415,1,0,0,0,27,1417,1,0,0,0,29,1419,1,0,0,0,31,1421,1,0,0,0,33,1423,1,0,0,0,35,1425,1,0,0,0,37,1427,1,0,0,0,39,1429,1,0,0,0,41,1432,1,0,0,0,43,1435,1,0,0,0,45,1438,1,0,0,0,47,1441,1,0,0,0,49,1444,1,0,0,0,51,1447,1,0,0,0,53,1450,1,0,0,0,55,1453,1,0,0,0,57,1456,1,0,0,0,59,1458,1,0,0,0,61,1484,1,0,0,0,63,1495,1,0,0,0,65,1511,1,0,0,0,67,1513,1,0,0,0,69,1515,1,0,0,0,71,1517,1,0,0,0,73,1521,1,0,0,0,75,1529,1,0,0,0,77,1537,1,0,0,0,79,1541,1,0,0,0,81,1545,1,0,0,0,83,1551,1,0,0,0,85,1554,1,0,0,0,87,1558,1,0,0,0,89,1569,1,0,0,0,91,1574,1,0,0,0,93,1579,1,0,0,0,95,1584,1,0,0,0,97,1590,1,0,0,0,99,1598,1,0,0,0,101,1605,1,0,0,0,103,1616,1,0,0,0,105,1623,1,0,0,0,107,1639,1,0,0,0,109,1652,1,0,0,0,111,1665,1,0,0,0,113,1678,1,0,0,0,115,1696,1,0,0,0,117,1709,1,0,0,0,119,1717,1,0,0,0,121,1728,1,0,0,0,123,1733,1,0,0,0,125,1742,1,0,0,0,127,1745,1,0,0,0,129,1750,1,0,0,0,131,1757,1,0,0,0,133,1763,1,0,0,0,135,1769,1,0,0,0,137,1773,1,0,0,0,139,1781,1,0,0,0,141,1786,1,0,0,0,143,1792,1,0,0,0,145,1798,1,0,0,0,147,1805,1,0,0,0,149,1808,1,0,0,0,151,1818,1,0,0,0,153,1828,1,0,0,0,155,1833,1,0,0,0,157,1841,1,0,0,0,159,1849,1,0,0,0,161,1855,1,0,0,0,163,1865,1,0,0,0,165,1880,1,0,0,0,167,1884,1,0,0,0,169,1889,1,0,0,0,171,1896,1,0,0,0,173,1899,1,0,0,0,175,1904,1,0,0,0,177,1907,1,0,0,0,179,1913,1,0,0,0,181,1921,1,0,0,0,183,1929,1,0,0,0,185,1940,1,0,0,0,187,1950,1,0,0,0,189,1957,1,0,0,0,191,1970,1,0,0,0,193,1975,1,0,0,0,195,1985,1,0,0,0,197,1991,1,0,0,0,199,1996,1,0,0,0,201,1999,1,0,0,0,203,2008,1,0,0,0,205,2013,1,0,0,0,207,2019,1,0,0,0,209,2026,1,0,0,0,211,2031,1,0,0,0,213,2037,1,0,0,0,215,2046,1,0,0,0,217,2051,1,0,0,0,219,2057,1,0,0,0,221,2064,1,0,0,0,223,2069,1,0,0,0,225,2083,1,0,0,0,227,2090,1,0,0,0,229,2100,1,0,0,0,231,2113,1,0,0,0,233,2119,1,0,0,0,235,2134,1,0,0,0,237,2141,1,0,0,0,239,2146,1,0,0,0,241,2152,1,0,0,0,243,2158,1,0,0,0,245,2161,1,0,0,0,247,2168,1,0,0,0,249,2173,1,0,0,0,251,2178,1,0,0,0,253,2183,1,0,0,0,255,2191,1,0,0,0,257,2199,1,0,0,0,259,2205,1,0,0,0,261,2210,1,0,0,0,263,2219,1,0,0,0,265,2225,1,0,0,0,267,2233,1,0,0,0,269,2241,1,0,0,0,271,2247,1,0,0,0,273,2256,1,0,0,0,275,2263,1,0,0,0,277,2270,1,0,0,0,279,2274,1,0,0,0,281,2280,1,0,0,0,283,2286,1,0,0,0,285,2296,1,0,0,0,287,2301,1,0,0,0,289,2307,1,0,0,0,291,2314,1,0,0,0,293,2324,1,0,0,0,295,2335,1,0,0,0,297,2338,1,0,0,0,299,2348,1,0,0,0,301,2357,1,0,0,0,303,2364,1,0,0,0,305,2370,1,0,0,0,307,2373,1,0,0,0,309,2379,1,0,0,0,311,2386,1,0,0,0,313,2394,1,0,0,0,315,2403,1,0,0,0,317,2411,1,0,0,0,319,2417,1,0,0,0,321,2433,1,0,0,0,323,2444,1,0,0,0,325,2450,1,0,0,0,327,2456,1,0,0,0,329,2464,1,0,0,0,331,2472,1,0,0,0,333,2481,1,0,0,0,335,2488,1,0,0,0,337,2498,1,0,0,0,339,2512,1,0,0,0,341,2523,1,0,0,0,343,2535,1,0,0,0,345,2543,1,0,0,0,347,2552,1,0,0,0,349,2563,1,0,0,0,351,2568,1,0,0,0,353,2573,1,0,0,0,355,2577,1,0,0,0,357,2584,1,0,0,0,359,2590,1,0,0,0,361,2595,1,0,0,0,363,2604,1,0,0,0,365,2608,1,0,0,0,367,2619,1,0,0,0,369,2627,1,0,0,0,371,2636,1,0,0,0,373,2645,1,0,0,0,375,2653,1,0,0,0,377,2660,1,0,0,0,379,2670,1,0,0,0,381,2681,1,0,0,0,383,2692,1,0,0,0,385,2700,1,0,0,0,387,2708,1,0,0,0,389,2717,1,0,0,0,391,2724,1,0,0,0,393,2731,1,0,0,0,395,2736,1,0,0,0,397,2741,1,0,0,0,399,2748,1,0,0,0,401,2757,1,0,0,0,403,2767,1,0,0,0,405,2772,1,0,0,0,407,2779,1,0,0,0,409,2785,1,0,0,0,411,2793,1,0,0,0,413,2803,1,0,0,0,415,2813,1,0,0,0,417,2821,1,0,0,0,419,2829,1,0,0,0,421,2839,1,0,0,0,423,2848,1,0,0,0,425,2855,1,0,0,0,427,2861,1,0,0,0,429,2871,1,0,0,0,431,2877,1,0,0,0,433,2885,1,0,0,0,435,2894,1,0,0,0,437,2904,1,0,0,0,439,2911,1,0,0,0,441,2919,1,0,0,0,443,2927,1,0,0,0,445,2934,1,0,0,0,447,2939,1,0,0,0,449,2944,1,0,0,0,451,2953,1,0,0,0,453,2956,1,0,0,0,455,2966,1,0,0,0,457,2976,1,0,0,0,459,2985,1,0,0,0,461,2995,1,0,0,0,463,3005,1,0,0,0,465,3011,1,0,0,0,467,3019,1,0,0,0,469,3027,1,0,0,0,471,3036,1,0,0,0,473,3043,1,0,0,0,475,3055,1,0,0,0,477,3062,1,0,0,0,479,3070,1,0,0,0,481,3078,1,0,0,0,483,3088,1,0,0,0,485,3092,1,0,0,0,487,3098,1,0,0,0,489,3107,1,0,0,0,491,3113,1,0,0,0,493,3118,1,0,0,0,495,3128,1,0,0,0,497,3134,1,0,0,0,499,3141,1,0,0,0,501,3146,1,0,0,0,503,3152,1,0,0,0,505,3161,1,0,0,0,507,3166,1,0,0,0,509,3174,1,0,0,0,511,3180,1,0,0,0,513,3188,1,0,0,0,515,3201,1,0,0,0,517,3210,1,0,0,0,519,3216,1,0,0,0,521,3223,1,0,0,0,523,3232,1,0,0,0,525,3237,1,0,0,0,527,3243,1,0,0,0,529,3248,1,0,0,0,531,3253,1,0,0,0,533,3259,1,0,0,0,535,3264,1,0,0,0,537,3267,1,0,0,0,539,3275,1,0,0,0,541,3282,1,0,0,0,543,3289,1,0,0,0,545,3295,1,0,0,0,547,3302,1,0,0,0,549,3305,1,0,0,0,551,3309,1,0,0,0,553,3314,1,0,0,0,555,3323,1,0,0,0,557,3330,1,0,0,0,559,3338,1,0,0,0,561,3344,1,0,0,0,563,3350,1,0,0,0,565,3357,1,0,0,0,567,3365,1,0,0,0,569,3375,1,0,0,0,571,3383,1,0,0,0,573,3392,1,0,0,0,575,3398,1,0,0,0,577,3408,1,0,0,0,579,3416,1,0,0,0,581,3425,1,0,0,0,583,3434,1,0,0,0,585,3440,1,0,0,0,587,3451,1,0,0,0,589,3462,1,0,0,0,591,3472,1,0,0,0,593,3480,1,0,0,0,595,3486,1,0,0,0,597,3492,1,0,0,0,599,3497,1,0,0,0,601,3506,1,0,0,0,603,3514,1,0,0,0,605,3524,1,0,0,0,607,3528,1,0,0,0,609,3536,1,0,0,0,611,3544,1,0,0,0,613,3553,1,0,0,0,615,3561,1,0,0,0,617,3568,1,0,0,0,619,3579,1,0,0,0,621,3587,1,0,0,0,623,3595,1,0,0,0,625,3601,1,0,0,0,627,3609,1,0,0,0,629,3618,1,0,0,0,631,3626,1,0,0,0,633,3633,1,0,0,0,635,3638,1,0,0,0,637,3647,1,0,0,0,639,3652,1,0,0,0,641,3657,1,0,0,0,643,3667,1,0,0,0,645,3674,1,0,0,0,647,3681,1,0,0,0,649,3688,1,0,0,0,651,3695,1,0,0,0,653,3704,1,0,0,0,655,3713,1,0,0,0,657,3723,1,0,0,0,659,3736,1,0,0,0,661,3743,1,0,0,0,663,3751,1,0,0,0,665,3755,1,0,0,0,667,3761,1,0,0,0,669,3766,1,0,0,0,671,3773,1,0,0,0,673,3782,1,0,0,0,675,3789,1,0,0,0,677,3800,1,0,0,0,679,3806,1,0,0,0,681,3816,1,0,0,0,683,3827,1,0,0,0,685,3833,1,0,0,0,687,3840,1,0,0,0,689,3848,1,0,0,0,691,3855,1,0,0,0,693,3861,1,0,0,0,695,3867,1,0,0,0,697,3874,1,0,0,0,699,3881,1,0,0,0,701,3892,1,0,0,0,703,3897,1,0,0,0,705,3906,1,0,0,0,707,3916,1,0,0,0,709,3921,1,0,0,0,711,3933,1,0,0,0,713,3941,1,0,0,0,715,3950,1,0,0,0,717,3958,1,0,0,0,719,3963,1,0,0,0,721,3969,1,0,0,0,723,3979,1,0,0,0,725,3991,1,0,0,0,727,4003,1,0,0,0,729,4011,1,0,0,0,731,4020,1,0,0,0,733,4029,1,0,0,0,735,4035,1,0,0,0,737,4042,1,0,0,0,739,4049,1,0,0,0,741,4055,1,0,0,0,743,4064,1,0,0,0,745,4074,1,0,0,0,747,4082,1,0,0,0,749,4090,1,0,0,0,751,4095,1,0,0,0,753,4104,1,0,0,0,755,4115,1,0,0,0,757,4123,1,0,0,0,759,4128,1,0,0,0,761,4136,1,0,0,0,763,4142,1,0,0,0,765,4146,1,0,0,0,767,4151,1,0,0,0,769,4155,1,0,0,0,771,4160,1,0,0,0,773,4168,1,0,0,0,775,4175,1,0,0,0,777,4179,1,0,0,0,779,4187,1,0,0,0,781,4192,1,0,0,0,783,4202,1,0,0,0,785,4211,1,0,0,0,787,4215,1,0,0,0,789,4223,1,0,0,0,791,4230,1,0,0,0,793,4238,1,0,0,0,795,4244,1,0,0,0,797,4253,1,0,0,0,799,4259,1,0,0,0,801,4263,1,0,0,0,803,4271,1,0,0,0,805,4280,1,0,0,0,807,4286,1,0,0,0,809,4295,1,0,0,0,811,4301,1,0,0,0,813,4306,1,0,0,0,815,4313,1,0,0,0,817,4321,1,0,0,0,819,4329,1,0,0,0,821,4338,1,0,0,0,823,4348,1,0,0,0,825,4353,1,0,0,0,827,4357,1,0,0,0,829,4363,1,0,0,0,831,4372,1,0,0,0,833,4382,1,0,0,0,835,4387,1,0,0,0,837,4397,1,0,0,0,839,4403,1,0,0,0,841,4408,1,0,0,0,843,4415,1,0,0,0,845,4423,1,0,0,0,847,4437,1,0,0,0,849,4448,1,0,0,0,851,4455,1,0,0,0,853,4474,1,0,0,0,855,4502,1,0,0,0,857,4529,1,0,0,0,859,4535,1,0,0,0,861,4548,1,0,0,0,863,4558,1,0,0,0,865,4569,1,0,0,0,867,4579,1,0,0,0,869,4589,1,0,0,0,871,4598,1,0,0,0,873,4604,1,0,0,0,875,4612,1,0,0,0,877,4625,1,0,0,0,879,4630,1,0,0,0,881,4638,1,0,0,0,883,4645,1,0,0,0,885,4652,1,0,0,0,887,4663,1,0,0,0,889,4673,1,0,0,0,891,4680,1,0,0,0,893,4687,1,0,0,0,895,4695,1,0,0,0,897,4703,1,0,0,0,899,4713,1,0,0,0,901,4720,1,0,0,0,903,4727,1,0,0,0,905,4734,1,0,0,0,907,4746,1,0,0,0,909,4750,1,0,0,0,911,4754,1,0,0,0,913,4760,1,0,0,0,915,4773,1,0,0,0,917,4785,1,0,0,0,919,4789,1,0,0,0,921,4793,1,0,0,0,923,4802,1,0,0,0,925,4810,1,0,0,0,927,4821,1,0,0,0,929,4827,1,0,0,0,931,4835,1,0,0,0,933,4844,1,0,0,0,935,4848,1,0,0,0,937,4856,1,0,0,0,939,4867,1,0,0,0,941,4876,1,0,0,0,943,4881,1,0,0,0,945,4888,1,0,0,0,947,4893,1,0,0,0,949,4900,1,0,0,0,951,4905,1,0,0,0,953,4914,1,0,0,0,955,4919,1,0,0,0,957,4931,1,0,0,0,959,4942,1,0,0,0,961,4951,1,0,0,0,963,4959,1,0,0,0,965,4973,1,0,0,0,967,4981,1,0,0,0,969,4992,1,0,0,0,971,4999,1,0,0,0,973,5006,1,0,0,0,975,5013,1,0,0,0,977,5020,1,0,0,0,979,5024,1,0,0,0,981,5028,1,0,0,0,983,5033,1,0,0,0,985,5038,1,0,0,0,987,5046,1,0,0,0,989,5052,1,0,0,0,991,5062,1,0,0,0,993,5067,1,0,0,0,995,5087,1,0,0,0,997,5105,1,0,0,0,999,5111,1,0,0,0,1001,5124,1,0,0,0,1003,5135,1,0,0,0,1005,5141,1,0,0,0,1007,5150,1,0,0,0,1009,5158,1,0,0,0,1011,5162,1,0,0,0,1013,5174,1,0,0,0,1015,5182,1,0,0,0,1017,5188,1,0,0,0,1019,5194,1,0,0,0,1021,5202,1,0,0,0,1023,5210,1,0,0,0,1025,5216,1,0,0,0,1027,5221,1,0,0,0,1029,5228,1,0,0,0,1031,5234,1,0,0,0,1033,5240,1,0,0,0,1035,5249,1,0,0,0,1037,5255,1,0,0,0,1039,5259,1,0,0,0,1041,5264,1,0,0,0,1043,5271,1,0,0,0,1045,5279,1,0,0,0,1047,5289,1,0,0,0,1049,5296,1,0,0,0,1051,5301,1,0,0,0,1053,5306,1,0,0,0,1055,5310,1,0,0,0,1057,5315,1,0,0,0,1059,5320,1,0,0,0,1061,5328,1,0,0,0,1063,5336,1,0,0,0,1065,5340,1,0,0,0,1067,5344,1,0,0,0,1069,5354,1,0,0,0,1071,5360,1,0,0,0,1073,5364,1,0,0,0,1075,5368,1,0,0,0,1077,5371,1,0,0,0,1079,5377,1,0,0,0,1081,5387,1,0,0,0,1083,5391,1,0,0,0,1085,5394,1,0,0,0,1087,5400,1,0,0,0,1089,5408,1,0,0,0,1091,5414,1,0,0,0,1093,5420,1,0,0,0,1095,5425,1,0,0,0,1097,5430,1,0,0,0,1099,5441,1,0,0,0,1101,5447,1,0,0,0,1103,5460,1,0,0,0,1105,5467,1,0,0,0,1107,5475,1,0,0,0,1109,5480,1,0,0,0,1111,5486,1,0,0,0,1113,5491,1,0,0,0,1115,5497,1,0,0,0,1117,5502,1,0,0,0,1119,5508,1,0,0,0,1121,5514,1,0,0,0,1123,5521,1,0,0,0,1125,5525,1,0,0,0,1127,5530,1,0,0,0,1129,5534,1,0,0,0,1131,5539,1,0,0,0,1133,5543,1,0,0,0,1135,5548,1,0,0,0,1137,5552,1,0,0,0,1139,5557,1,0,0,0,1141,5562,1,0,0,0,1143,5567,1,0,0,0,1145,5572,1,0,0,0,1147,5578,1,0,0,0,1149,5584,1,0,0,0,1151,5590,1,0,0,0,1153,5601,1,0,0,0,1155,5613,1,0,0,0,1157,5630,1,0,0,0,1159,5636,1,0,0,0,1161,5649,1,0,0,0,1163,5655,1,0,0,0,1165,5661,1,0,0,0,1167,5667,1,0,0,0,1169,5671,1,0,0,0,1171,5678,1,0,0,0,1173,5688,1,0,0,0,1175,5695,1,0,0,0,1177,5703,1,0,0,0,1179,5710,1,0,0,0,1181,5715,1,0,0,0,1183,5721,1,0,0,0,1185,5725,1,0,0,0,1187,5737,1,0,0,0,1189,5756,1,0,0,0,1191,5768,1,0,0,0,1193,5782,1,0,0,0,1195,5797,1,0,0,0,1197,5810,1,0,0,0,1199,5823,1,0,0,0,1201,5835,1,0,0,0,1203,5848,1,0,0,0,1205,5863,1,0,0,0,1207,5878,1,0,0,0,1209,5900,1,0,0,0,1211,5922,1,0,0,0,1213,5936,1,0,0,0,1215,5943,1,0,0,0,1217,5948,1,0,0,0,1219,5954,1,0,0,0,1221,5965,1,0,0,0,1223,5977,1,0,0,0,1225,5993,1,0,0,0,1227,6009,1,0,0,0,1229,6016,1,0,0,0,1231,6023,1,0,0,0,1233,6032,1,0,0,0,1235,6039,1,0,0,0,1237,6049,1,0,0,0,1239,6056,1,0,0,0,1241,6060,1,0,0,0,1243,6076,1,0,0,0,1245,6085,1,0,0,0,1247,6095,1,0,0,0,1249,6106,1,0,0,0,1251,6115,1,0,0,0,1253,6128,1,0,0,0,1255,6142,1,0,0,0,1257,6159,1,0,0,0,1259,6169,1,0,0,0,1261,6183,1,0,0,0,1263,6193,1,0,0,0,1265,6208,1,0,0,0,1267,6225,1,0,0,0,1269,6229,1,0,0,0,1271,6249,1,0,0,0,1273,6259,1,0,0,0,1275,6281,1,0,0,0,1277,6294,1,0,0,0,1279,6302,1,0,0,0,1281,6310,1,0,0,0,1283,6320,1,0,0,0,1285,6333,1,0,0,0,1287,6337,1,0,0,0,1289,6341,1,0,0,0,1291,6343,1,0,0,0,1293,6346,1,0,0,0,1295,6355,1,0,0,0,1297,6358,1,0,0,0,1299,6367,1,0,0,0,1301,6371,1,0,0,0,1303,6375,1,0,0,0,1305,6379,1,0,0,0,1307,6383,1,0,0,0,1309,6386,1,0,0,0,1311,6395,1,0,0,0,1313,6401,1,0,0,0,1315,6404,1,0,0,0,1317,6408,1,0,0,0,1319,6417,1,0,0,0,1321,6424,1,0,0,0,1323,6427,1,0,0,0,1325,6435,1,0,0,0,1327,6438,1,0,0,0,1329,6441,1,0,0,0,1331,6444,1,0,0,0,1333,6452,1,0,0,0,1335,6455,1,0,0,0,1337,6458,1,0,0,0,1339,6460,1,0,0,0,1341,6494,1,0,0,0,1343,6497,1,0,0,0,1345,6501,1,0,0,0,1347,6509,1,0,0,0,1349,6525,1,0,0,0,1351,6536,1,0,0,0,1353,6540,1,0,0,0,1355,6551,1,0,0,0,1357,6590,1,0,0,0,1359,6641,1,0,0,0,1361,6665,1,0,0,0,1363,6668,1,0,0,0,1365,6670,1,0,0,0,1367,6675,1,0,0,0,1369,6706,1,0,0,0,1371,6709,1,0,0,0,1373,6714,1,0,0,0,1375,6727,1,0,0,0,1377,6730,1,0,0,0,1379,6735,1,0,0,0,1381,6741,1,0,0,0,1383,6746,1,0,0,0,1385,6751,1,0,0,0,1387,6756,1,0,0,0,1389,6761,1,0,0,0,1391,6778,1,0,0,0,1393,6780,1,0,0,0,1395,1396,5,36,0,0,1396,6,1,0,0,0,1397,1398,5,40,0,0,1398,8,1,0,0,0,1399,1400,5,41,0,0,1400,10,1,0,0,0,1401,1402,5,91,0,0,1402,12,1,0,0,0,1403,1404,5,93,0,0,1404,14,1,0,0,0,1405,1406,5,44,0,0,1406,16,1,0,0,0,1407,1408,5,59,0,0,1408,18,1,0,0,0,1409,1410,5,58,0,0,1410,20,1,0,0,0,1411,1412,5,42,0,0,1412,22,1,0,0,0,1413,1414,5,61,0,0,1414,24,1,0,0,0,1415,1416,5,46,0,0,1416,26,1,0,0,0,1417,1418,5,43,0,0,1418,28,1,0,0,0,1419,1420,5,45,0,0,1420,30,1,0,0,0,1421,1422,5,47,0,0,1422,32,1,0,0,0,1423,1424,5,94,0,0,1424,34,1,0,0,0,1425,1426,5,60,0,0,1426,36,1,0,0,0,1427,1428,5,62,0,0,1428,38,1,0,0,0,1429,1430,5,60,0,0,1430,1431,5,60,0,0,1431,40,1,0,0,0,1432,1433,5,62,0,0,1433,1434,5,62,0,0,1434,42,1,0,0,0,1435,1436,5,58,0,0,1436,1437,5,61,0,0,1437,44,1,0,0,0,1438,1439,5,60,0,0,1439,1440,5,61,0,0,1440,46,1,0,0,0,1441,1442,5,61,0,0,1442,1443,5,62,0,0,1443,48,1,0,0,0,1444,1445,5,62,0,0,1445,1446,5,61,0,0,1446,50,1,0,0,0,1447,1448,5,46,0,0,1448,1449,5,46,0,0,1449,52,1,0,0,0,1450,1451,5,60,0,0,1451,1452,5,62,0,0,1452,54,1,0,0,0,1453,1454,5,58,0,0,1454,1455,5,58,0,0,1455,56,1,0,0,0,1456,1457,5,37,0,0,1457,58,1,0,0,0,1458,1460,5,36,0,0,1459,1461,7,0,0,0,1460,1459,1,0,0,0,1461,1462,1,0,0,0,1462,1460,1,0,0,0,1462,1463,1,0,0,0,1463,60,1,0,0,0,1464,1480,3,65,30,0,1465,1469,5,43,0,0,1466,1467,5,45,0,0,1467,1469,4,28,0,0,1468,1465,1,0,0,0,1468,1466,1,0,0,0,1469,1470,1,0,0,0,1470,1468,1,0,0,0,1470,1471,1,0,0,0,1471,1475,1,0,0,0,1472,1476,3,65,30,0,1473,1474,5,47,0,0,1474,1476,4,28,1,0,1475,1472,1,0,0,0,1475,1473,1,0,0,0,1476,1480,1,0,0,0,1477,1478,5,47,0,0,1478,1480,4,28,2,0,1479,1464,1,0,0,0,1479,1468,1,0,0,0,1479,1477,1,0,0,0,1480,1481,1,0,0,0,1481,1479,1,0,0,0,1481,1482,1,0,0,0,1482,1485,1,0,0,0,1483,1485,7,1,0,0,1484,1479,1,0,0,0,1484,1483,1,0,0,0,1485,1486,1,0,0,0,1486,1487,6,28,0,0,1487,62,1,0,0,0,1488,1494,3,67,31,0,1489,1490,5,45,0,0,1490,1494,4,29,3,0,1491,1492,5,47,0,0,1492,1494,4,29,4,0,1493,1488,1,0,0,0,1493,1489,1,0,0,0,1493,1491,1,0,0,0,1494,1497,1,0,0,0,1495,1493,1,0,0,0,1495,1496,1,0,0,0,1496,1498,1,0,0,0,1497,1495,1,0,0,0,1498,1500,3,69,32,0,1499,1501,3,61,28,0,1500,1499,1,0,0,0,1500,1501,1,0,0,0,1501,1505,1,0,0,0,1502,1506,5,43,0,0,1503,1504,5,45,0,0,1504,1506,4,29,5,0,1505,1502,1,0,0,0,1505,1503,1,0,0,0,1506,1507,1,0,0,0,1507,1505,1,0,0,0,1507,1508,1,0,0,0,1508,1509,1,0,0,0,1509,1510,6,29,1,0,1510,64,1,0,0,0,1511,1512,7,2,0,0,1512,66,1,0,0,0,1513,1514,7,3,0,0,1514,68,1,0,0,0,1515,1516,7,4,0,0,1516,70,1,0,0,0,1517,1518,7,5,0,0,1518,1519,7,6,0,0,1519,1520,7,6,0,0,1520,72,1,0,0,0,1521,1522,7,5,0,0,1522,1523,7,7,0,0,1523,1524,7,5,0,0,1524,1525,7,6,0,0,1525,1526,7,8,0,0,1526,1527,7,9,0,0,1527,1528,7,10,0,0,1528,74,1,0,0,0,1529,1530,7,5,0,0,1530,1531,7,7,0,0,1531,1532,7,5,0,0,1532,1533,7,6,0,0,1533,1534,7,8,0,0,1534,1535,7,11,0,0,1535,1536,7,10,0,0,1536,76,1,0,0,0,1537,1538,7,5,0,0,1538,1539,7,7,0,0,1539,1540,7,12,0,0,1540,78,1,0,0,0,1541,1542,7,5,0,0,1542,1543,7,7,0,0,1543,1544,7,8,0,0,1544,80,1,0,0,0,1545,1546,7,5,0,0,1546,1547,7,13,0,0,1547,1548,7,13,0,0,1548,1549,7,5,0,0,1549,1550,7,8,0,0,1550,82,1,0,0,0,1551,1552,7,5,0,0,1552,1553,7,9,0,0,1553,84,1,0,0,0,1554,1555,7,5,0,0,1555,1556,7,9,0,0,1556,1557,7,14,0,0,1557,86,1,0,0,0,1558,1559,7,5,0,0,1559,1560,7,9,0,0,1560,1561,7,8,0,0,1561,1562,7,15,0,0,1562,1563,7,15,0,0,1563,1564,7,10,0,0,1564,1565,7,16,0,0,1565,1566,7,13,0,0,1566,1567,7,17,0,0,1567,1568,7,14,0,0,1568,88,1,0,0,0,1569,1570,7,18,0,0,1570,1571,7,19,0,0,1571,1572,7,16,0,0,1572,1573,7,20,0,0,1573,90,1,0,0,0,1574,1575,7,14,0,0,1575,1576,7,5,0,0,1576,1577,7,9,0,0,1577,1578,7,10,0,0,1578,92,1,0,0,0,1579,1580,7,14,0,0,1580,1581,7,5,0,0,1581,1582,7,9,0,0,1582,1583,7,16,0,0,1583,94,1,0,0,0,1584,1585,7,14,0,0,1585,1586,7,20,0,0,1586,1587,7,10,0,0,1587,1588,7,14,0,0,1588,1589,7,21,0,0,1589,96,1,0,0,0,1590,1591,7,14,0,0,1591,1592,7,19,0,0,1592,1593,7,6,0,0,1593,1594,7,6,0,0,1594,1595,7,5,0,0,1595,1596,7,16,0,0,1596,1597,7,10,0,0,1597,98,1,0,0,0,1598,1599,7,14,0,0,1599,1600,7,19,0,0,1600,1601,7,6,0,0,1601,1602,7,22,0,0,1602,1603,7,15,0,0,1603,1604,7,7,0,0,1604,100,1,0,0,0,1605,1606,7,14,0,0,1606,1607,7,19,0,0,1607,1608,7,7,0,0,1608,1609,7,9,0,0,1609,1610,7,16,0,0,1610,1611,7,13,0,0,1611,1612,7,5,0,0,1612,1613,7,17,0,0,1613,1614,7,7,0,0,1614,1615,7,16,0,0,1615,102,1,0,0,0,1616,1617,7,14,0,0,1617,1618,7,13,0,0,1618,1619,7,10,0,0,1619,1620,7,5,0,0,1620,1621,7,16,0,0,1621,1622,7,10,0,0,1622,104,1,0,0,0,1623,1624,7,14,0,0,1624,1625,7,22,0,0,1625,1626,7,13,0,0,1626,1627,7,13,0,0,1627,1628,7,10,0,0,1628,1629,7,7,0,0,1629,1630,7,16,0,0,1630,1631,5,95,0,0,1631,1632,7,14,0,0,1632,1633,7,5,0,0,1633,1634,7,16,0,0,1634,1635,7,5,0,0,1635,1636,7,6,0,0,1636,1637,7,19,0,0,1637,1638,7,23,0,0,1638,106,1,0,0,0,1639,1640,7,14,0,0,1640,1641,7,22,0,0,1641,1642,7,13,0,0,1642,1643,7,13,0,0,1643,1644,7,10,0,0,1644,1645,7,7,0,0,1645,1646,7,16,0,0,1646,1647,5,95,0,0,1647,1648,7,12,0,0,1648,1649,7,5,0,0,1649,1650,7,16,0,0,1650,1651,7,10,0,0,1651,108,1,0,0,0,1652,1653,7,14,0,0,1653,1654,7,22,0,0,1654,1655,7,13,0,0,1655,1656,7,13,0,0,1656,1657,7,10,0,0,1657,1658,7,7,0,0,1658,1659,7,16,0,0,1659,1660,5,95,0,0,1660,1661,7,13,0,0,1661,1662,7,19,0,0,1662,1663,7,6,0,0,1663,1664,7,10,0,0,1664,110,1,0,0,0,1665,1666,7,14,0,0,1666,1667,7,22,0,0,1667,1668,7,13,0,0,1668,1669,7,13,0,0,1669,1670,7,10,0,0,1670,1671,7,7,0,0,1671,1672,7,16,0,0,1672,1673,5,95,0,0,1673,1674,7,16,0,0,1674,1675,7,17,0,0,1675,1676,7,15,0,0,1676,1677,7,10,0,0,1677,112,1,0,0,0,1678,1679,7,14,0,0,1679,1680,7,22,0,0,1680,1681,7,13,0,0,1681,1682,7,13,0,0,1682,1683,7,10,0,0,1683,1684,7,7,0,0,1684,1685,7,16,0,0,1685,1686,5,95,0,0,1686,1687,7,16,0,0,1687,1688,7,17,0,0,1688,1689,7,15,0,0,1689,1690,7,10,0,0,1690,1691,7,9,0,0,1691,1692,7,16,0,0,1692,1693,7,5,0,0,1693,1694,7,15,0,0,1694,1695,7,24,0,0,1695,114,1,0,0,0,1696,1697,7,14,0,0,1697,1698,7,22,0,0,1698,1699,7,13,0,0,1699,1700,7,13,0,0,1700,1701,7,10,0,0,1701,1702,7,7,0,0,1702,1703,7,16,0,0,1703,1704,5,95,0,0,1704,1705,7,22,0,0,1705,1706,7,9,0,0,1706,1707,7,10,0,0,1707,1708,7,13,0,0,1708,116,1,0,0,0,1709,1710,7,12,0,0,1710,1711,7,10,0,0,1711,1712,7,25,0,0,1712,1713,7,5,0,0,1713,1714,7,22,0,0,1714,1715,7,6,0,0,1715,1716,7,16,0,0,1716,118,1,0,0,0,1717,1718,7,12,0,0,1718,1719,7,10,0,0,1719,1720,7,25,0,0,1720,1721,7,10,0,0,1721,1722,7,13,0,0,1722,1723,7,13,0,0,1723,1724,7,5,0,0,1724,1725,7,18,0,0,1725,1726,7,6,0,0,1726,1727,7,10,0,0,1727,120,1,0,0,0,1728,1729,7,12,0,0,1729,1730,7,10,0,0,1730,1731,7,9,0,0,1731,1732,7,14,0,0,1732,122,1,0,0,0,1733,1734,7,12,0,0,1734,1735,7,17,0,0,1735,1736,7,9,0,0,1736,1737,7,16,0,0,1737,1738,7,17,0,0,1738,1739,7,7,0,0,1739,1740,7,14,0,0,1740,1741,7,16,0,0,1741,124,1,0,0,0,1742,1743,7,12,0,0,1743,1744,7,19,0,0,1744,126,1,0,0,0,1745,1746,7,10,0,0,1746,1747,7,6,0,0,1747,1748,7,9,0,0,1748,1749,7,10,0,0,1749,128,1,0,0,0,1750,1751,7,10,0,0,1751,1752,7,26,0,0,1752,1753,7,14,0,0,1753,1754,7,10,0,0,1754,1755,7,24,0,0,1755,1756,7,16,0,0,1756,130,1,0,0,0,1757,1758,7,25,0,0,1758,1759,7,5,0,0,1759,1760,7,6,0,0,1760,1761,7,9,0,0,1761,1762,7,10,0,0,1762,132,1,0,0,0,1763,1764,7,25,0,0,1764,1765,7,10,0,0,1765,1766,7,16,0,0,1766,1767,7,14,0,0,1767,1768,7,20,0,0,1768,134,1,0,0,0,1769,1770,7,25,0,0,1770,1771,7,19,0,0,1771,1772,7,13,0,0,1772,136,1,0,0,0,1773,1774,7,25,0,0,1774,1775,7,19,0,0,1775,1776,7,13,0,0,1776,1777,7,10,0,0,1777,1778,7,17,0,0,1778,1779,7,23,0,0,1779,1780,7,7,0,0,1780,138,1,0,0,0,1781,1782,7,25,0,0,1782,1783,7,13,0,0,1783,1784,7,19,0,0,1784,1785,7,15,0,0,1785,140,1,0,0,0,1786,1787,7,23,0,0,1787,1788,7,13,0,0,1788,1789,7,5,0,0,1789,1790,7,7,0,0,1790,1791,7,16,0,0,1791,142,1,0,0,0,1792,1793,7,23,0,0,1793,1794,7,13,0,0,1794,1795,7,19,0,0,1795,1796,7,22,0,0,1796,1797,7,24,0,0,1797,144,1,0,0,0,1798,1799,7,20,0,0,1799,1800,7,5,0,0,1800,1801,7,27,0,0,1801,1802,7,17,0,0,1802,1803,7,7,0,0,1803,1804,7,23,0,0,1804,146,1,0,0,0,1805,1806,7,17,0,0,1806,1807,7,7,0,0,1807,148,1,0,0,0,1808,1809,7,17,0,0,1809,1810,7,7,0,0,1810,1811,7,17,0,0,1811,1812,7,16,0,0,1812,1813,7,17,0,0,1813,1814,7,5,0,0,1814,1815,7,6,0,0,1815,1816,7,6,0,0,1816,1817,7,8,0,0,1817,150,1,0,0,0,1818,1819,7,17,0,0,1819,1820,7,7,0,0,1820,1821,7,16,0,0,1821,1822,7,10,0,0,1822,1823,7,13,0,0,1823,1824,7,9,0,0,1824,1825,7,10,0,0,1825,1826,7,14,0,0,1826,1827,7,16,0,0,1827,152,1,0,0,0,1828,1829,7,17,0,0,1829,1830,7,7,0,0,1830,1831,7,16,0,0,1831,1832,7,19,0,0,1832,154,1,0,0,0,1833,1834,7,6,0,0,1834,1835,7,5,0,0,1835,1836,7,16,0,0,1836,1837,7,10,0,0,1837,1838,7,13,0,0,1838,1839,7,5,0,0,1839,1840,7,6,0,0,1840,156,1,0,0,0,1841,1842,7,6,0,0,1842,1843,7,10,0,0,1843,1844,7,5,0,0,1844,1845,7,12,0,0,1845,1846,7,17,0,0,1846,1847,7,7,0,0,1847,1848,7,23,0,0,1848,158,1,0,0,0,1849,1850,7,6,0,0,1850,1851,7,17,0,0,1851,1852,7,15,0,0,1852,1853,7,17,0,0,1853,1854,7,16,0,0,1854,160,1,0,0,0,1855,1856,7,6,0,0,1856,1857,7,19,0,0,1857,1858,7,14,0,0,1858,1859,7,5,0,0,1859,1860,7,6,0,0,1860,1861,7,16,0,0,1861,1862,7,17,0,0,1862,1863,7,15,0,0,1863,1864,7,10,0,0,1864,162,1,0,0,0,1865,1866,7,6,0,0,1866,1867,7,19,0,0,1867,1868,7,14,0,0,1868,1869,7,5,0,0,1869,1870,7,6,0,0,1870,1871,7,16,0,0,1871,1872,7,17,0,0,1872,1873,7,15,0,0,1873,1874,7,10,0,0,1874,1875,7,9,0,0,1875,1876,7,16,0,0,1876,1877,7,5,0,0,1877,1878,7,15,0,0,1878,1879,7,24,0,0,1879,164,1,0,0,0,1880,1881,7,7,0,0,1881,1882,7,19,0,0,1882,1883,7,16,0,0,1883,166,1,0,0,0,1884,1885,7,7,0,0,1885,1886,7,22,0,0,1886,1887,7,6,0,0,1887,1888,7,6,0,0,1888,168,1,0,0,0,1889,1890,7,19,0,0,1890,1891,7,25,0,0,1891,1892,7,25,0,0,1892,1893,7,9,0,0,1893,1894,7,10,0,0,1894,1895,7,16,0,0,1895,170,1,0,0,0,1896,1897,7,19,0,0,1897,1898,7,7,0,0,1898,172,1,0,0,0,1899,1900,7,19,0,0,1900,1901,7,7,0,0,1901,1902,7,6,0,0,1902,1903,7,8,0,0,1903,174,1,0,0,0,1904,1905,7,19,0,0,1905,1906,7,13,0,0,1906,176,1,0,0,0,1907,1908,7,19,0,0,1908,1909,7,13,0,0,1909,1910,7,12,0,0,1910,1911,7,10,0,0,1911,1912,7,13,0,0,1912,178,1,0,0,0,1913,1914,7,24,0,0,1914,1915,7,6,0,0,1915,1916,7,5,0,0,1916,1917,7,14,0,0,1917,1918,7,17,0,0,1918,1919,7,7,0,0,1919,1920,7,23,0,0,1920,180,1,0,0,0,1921,1922,7,24,0,0,1922,1923,7,13,0,0,1923,1924,7,17,0,0,1924,1925,7,15,0,0,1925,1926,7,5,0,0,1926,1927,7,13,0,0,1927,1928,7,8,0,0,1928,182,1,0,0,0,1929,1930,7,13,0,0,1930,1931,7,10,0,0,1931,1932,7,25,0,0,1932,1933,7,10,0,0,1933,1934,7,13,0,0,1934,1935,7,10,0,0,1935,1936,7,7,0,0,1936,1937,7,14,0,0,1937,1938,7,10,0,0,1938,1939,7,9,0,0,1939,184,1,0,0,0,1940,1941,7,13,0,0,1941,1942,7,10,0,0,1942,1943,7,16,0,0,1943,1944,7,22,0,0,1944,1945,7,13,0,0,1945,1946,7,7,0,0,1946,1947,7,17,0,0,1947,1948,7,7,0,0,1948,1949,7,23,0,0,1949,186,1,0,0,0,1950,1951,7,9,0,0,1951,1952,7,10,0,0,1952,1953,7,6,0,0,1953,1954,7,10,0,0,1954,1955,7,14,0,0,1955,1956,7,16,0,0,1956,188,1,0,0,0,1957,1958,7,9,0,0,1958,1959,7,10,0,0,1959,1960,7,9,0,0,1960,1961,7,9,0,0,1961,1962,7,17,0,0,1962,1963,7,19,0,0,1963,1964,7,7,0,0,1964,1965,5,95,0,0,1965,1966,7,22,0,0,1966,1967,7,9,0,0,1967,1968,7,10,0,0,1968,1969,7,13,0,0,1969,190,1,0,0,0,1970,1971,7,9,0,0,1971,1972,7,19,0,0,1972,1973,7,15,0,0,1973,1974,7,10,0,0,1974,192,1,0,0,0,1975,1976,7,9,0,0,1976,1977,7,8,0,0,1977,1978,7,15,0,0,1978,1979,7,15,0,0,1979,1980,7,10,0,0,1980,1981,7,16,0,0,1981,1982,7,13,0,0,1982,1983,7,17,0,0,1983,1984,7,14,0,0,1984,194,1,0,0,0,1985,1986,7,16,0,0,1986,1987,7,5,0,0,1987,1988,7,18,0,0,1988,1989,7,6,0,0,1989,1990,7,10,0,0,1990,196,1,0,0,0,1991,1992,7,16,0,0,1992,1993,7,20,0,0,1993,1994,7,10,0,0,1994,1995,7,7,0,0,1995,198,1,0,0,0,1996,1997,7,16,0,0,1997,1998,7,19,0,0,1998,200,1,0,0,0,1999,2e3,7,16,0,0,2e3,2001,7,13,0,0,2001,2002,7,5,0,0,2002,2003,7,17,0,0,2003,2004,7,6,0,0,2004,2005,7,17,0,0,2005,2006,7,7,0,0,2006,2007,7,23,0,0,2007,202,1,0,0,0,2008,2009,7,16,0,0,2009,2010,7,13,0,0,2010,2011,7,22,0,0,2011,2012,7,10,0,0,2012,204,1,0,0,0,2013,2014,7,22,0,0,2014,2015,7,7,0,0,2015,2016,7,17,0,0,2016,2017,7,19,0,0,2017,2018,7,7,0,0,2018,206,1,0,0,0,2019,2020,7,22,0,0,2020,2021,7,7,0,0,2021,2022,7,17,0,0,2022,2023,7,28,0,0,2023,2024,7,22,0,0,2024,2025,7,10,0,0,2025,208,1,0,0,0,2026,2027,7,22,0,0,2027,2028,7,9,0,0,2028,2029,7,10,0,0,2029,2030,7,13,0,0,2030,210,1,0,0,0,2031,2032,7,22,0,0,2032,2033,7,9,0,0,2033,2034,7,17,0,0,2034,2035,7,7,0,0,2035,2036,7,23,0,0,2036,212,1,0,0,0,2037,2038,7,27,0,0,2038,2039,7,5,0,0,2039,2040,7,13,0,0,2040,2041,7,17,0,0,2041,2042,7,5,0,0,2042,2043,7,12,0,0,2043,2044,7,17,0,0,2044,2045,7,14,0,0,2045,214,1,0,0,0,2046,2047,7,29,0,0,2047,2048,7,20,0,0,2048,2049,7,10,0,0,2049,2050,7,7,0,0,2050,216,1,0,0,0,2051,2052,7,29,0,0,2052,2053,7,20,0,0,2053,2054,7,10,0,0,2054,2055,7,13,0,0,2055,2056,7,10,0,0,2056,218,1,0,0,0,2057,2058,7,29,0,0,2058,2059,7,17,0,0,2059,2060,7,7,0,0,2060,2061,7,12,0,0,2061,2062,7,19,0,0,2062,2063,7,29,0,0,2063,220,1,0,0,0,2064,2065,7,29,0,0,2065,2066,7,17,0,0,2066,2067,7,16,0,0,2067,2068,7,20,0,0,2068,222,1,0,0,0,2069,2070,7,5,0,0,2070,2071,7,22,0,0,2071,2072,7,16,0,0,2072,2073,7,20,0,0,2073,2074,7,19,0,0,2074,2075,7,13,0,0,2075,2076,7,17,0,0,2076,2077,7,11,0,0,2077,2078,7,5,0,0,2078,2079,7,16,0,0,2079,2080,7,17,0,0,2080,2081,7,19,0,0,2081,2082,7,7,0,0,2082,224,1,0,0,0,2083,2084,7,18,0,0,2084,2085,7,17,0,0,2085,2086,7,7,0,0,2086,2087,7,5,0,0,2087,2088,7,13,0,0,2088,2089,7,8,0,0,2089,226,1,0,0,0,2090,2091,7,14,0,0,2091,2092,7,19,0,0,2092,2093,7,6,0,0,2093,2094,7,6,0,0,2094,2095,7,5,0,0,2095,2096,7,16,0,0,2096,2097,7,17,0,0,2097,2098,7,19,0,0,2098,2099,7,7,0,0,2099,228,1,0,0,0,2100,2101,7,14,0,0,2101,2102,7,19,0,0,2102,2103,7,7,0,0,2103,2104,7,14,0,0,2104,2105,7,22,0,0,2105,2106,7,13,0,0,2106,2107,7,13,0,0,2107,2108,7,10,0,0,2108,2109,7,7,0,0,2109,2110,7,16,0,0,2110,2111,7,6,0,0,2111,2112,7,8,0,0,2112,230,1,0,0,0,2113,2114,7,14,0,0,2114,2115,7,13,0,0,2115,2116,7,19,0,0,2116,2117,7,9,0,0,2117,2118,7,9,0,0,2118,232,1,0,0,0,2119,2120,7,14,0,0,2120,2121,7,22,0,0,2121,2122,7,13,0,0,2122,2123,7,13,0,0,2123,2124,7,10,0,0,2124,2125,7,7,0,0,2125,2126,7,16,0,0,2126,2127,5,95,0,0,2127,2128,7,9,0,0,2128,2129,7,14,0,0,2129,2130,7,20,0,0,2130,2131,7,10,0,0,2131,2132,7,15,0,0,2132,2133,7,5,0,0,2133,234,1,0,0,0,2134,2135,7,25,0,0,2135,2136,7,13,0,0,2136,2137,7,10,0,0,2137,2138,7,10,0,0,2138,2139,7,11,0,0,2139,2140,7,10,0,0,2140,236,1,0,0,0,2141,2142,7,25,0,0,2142,2143,7,22,0,0,2143,2144,7,6,0,0,2144,2145,7,6,0,0,2145,238,1,0,0,0,2146,2147,7,17,0,0,2147,2148,7,6,0,0,2148,2149,7,17,0,0,2149,2150,7,21,0,0,2150,2151,7,10,0,0,2151,240,1,0,0,0,2152,2153,7,17,0,0,2153,2154,7,7,0,0,2154,2155,7,7,0,0,2155,2156,7,10,0,0,2156,2157,7,13,0,0,2157,242,1,0,0,0,2158,2159,7,17,0,0,2159,2160,7,9,0,0,2160,244,1,0,0,0,2161,2162,7,17,0,0,2162,2163,7,9,0,0,2163,2164,7,7,0,0,2164,2165,7,22,0,0,2165,2166,7,6,0,0,2166,2167,7,6,0,0,2167,246,1,0,0,0,2168,2169,7,30,0,0,2169,2170,7,19,0,0,2170,2171,7,17,0,0,2171,2172,7,7,0,0,2172,248,1,0,0,0,2173,2174,7,6,0,0,2174,2175,7,10,0,0,2175,2176,7,25,0,0,2176,2177,7,16,0,0,2177,250,1,0,0,0,2178,2179,7,6,0,0,2179,2180,7,17,0,0,2180,2181,7,21,0,0,2181,2182,7,10,0,0,2182,252,1,0,0,0,2183,2184,7,7,0,0,2184,2185,7,5,0,0,2185,2186,7,16,0,0,2186,2187,7,22,0,0,2187,2188,7,13,0,0,2188,2189,7,5,0,0,2189,2190,7,6,0,0,2190,254,1,0,0,0,2191,2192,7,7,0,0,2192,2193,7,19,0,0,2193,2194,7,16,0,0,2194,2195,7,7,0,0,2195,2196,7,22,0,0,2196,2197,7,6,0,0,2197,2198,7,6,0,0,2198,256,1,0,0,0,2199,2200,7,19,0,0,2200,2201,7,22,0,0,2201,2202,7,16,0,0,2202,2203,7,10,0,0,2203,2204,7,13,0,0,2204,258,1,0,0,0,2205,2206,7,19,0,0,2206,2207,7,27,0,0,2207,2208,7,10,0,0,2208,2209,7,13,0,0,2209,260,1,0,0,0,2210,2211,7,19,0,0,2211,2212,7,27,0,0,2212,2213,7,10,0,0,2213,2214,7,13,0,0,2214,2215,7,6,0,0,2215,2216,7,5,0,0,2216,2217,7,24,0,0,2217,2218,7,9,0,0,2218,262,1,0,0,0,2219,2220,7,13,0,0,2220,2221,7,17,0,0,2221,2222,7,23,0,0,2222,2223,7,20,0,0,2223,2224,7,16,0,0,2224,264,1,0,0,0,2225,2226,7,9,0,0,2226,2227,7,17,0,0,2227,2228,7,15,0,0,2228,2229,7,17,0,0,2229,2230,7,6,0,0,2230,2231,7,5,0,0,2231,2232,7,13,0,0,2232,266,1,0,0,0,2233,2234,7,27,0,0,2234,2235,7,10,0,0,2235,2236,7,13,0,0,2236,2237,7,18,0,0,2237,2238,7,19,0,0,2238,2239,7,9,0,0,2239,2240,7,10,0,0,2240,268,1,0,0,0,2241,2242,7,5,0,0,2242,2243,7,18,0,0,2243,2244,7,19,0,0,2244,2245,7,13,0,0,2245,2246,7,16,0,0,2246,270,1,0,0,0,2247,2248,7,5,0,0,2248,2249,7,18,0,0,2249,2250,7,9,0,0,2250,2251,7,19,0,0,2251,2252,7,6,0,0,2252,2253,7,22,0,0,2253,2254,7,16,0,0,2254,2255,7,10,0,0,2255,272,1,0,0,0,2256,2257,7,5,0,0,2257,2258,7,14,0,0,2258,2259,7,14,0,0,2259,2260,7,10,0,0,2260,2261,7,9,0,0,2261,2262,7,9,0,0,2262,274,1,0,0,0,2263,2264,7,5,0,0,2264,2265,7,14,0,0,2265,2266,7,16,0,0,2266,2267,7,17,0,0,2267,2268,7,19,0,0,2268,2269,7,7,0,0,2269,276,1,0,0,0,2270,2271,7,5,0,0,2271,2272,7,12,0,0,2272,2273,7,12,0,0,2273,278,1,0,0,0,2274,2275,7,5,0,0,2275,2276,7,12,0,0,2276,2277,7,15,0,0,2277,2278,7,17,0,0,2278,2279,7,7,0,0,2279,280,1,0,0,0,2280,2281,7,5,0,0,2281,2282,7,25,0,0,2282,2283,7,16,0,0,2283,2284,7,10,0,0,2284,2285,7,13,0,0,2285,282,1,0,0,0,2286,2287,7,5,0,0,2287,2288,7,23,0,0,2288,2289,7,23,0,0,2289,2290,7,13,0,0,2290,2291,7,10,0,0,2291,2292,7,23,0,0,2292,2293,7,5,0,0,2293,2294,7,16,0,0,2294,2295,7,10,0,0,2295,284,1,0,0,0,2296,2297,7,5,0,0,2297,2298,7,6,0,0,2298,2299,7,9,0,0,2299,2300,7,19,0,0,2300,286,1,0,0,0,2301,2302,7,5,0,0,2302,2303,7,6,0,0,2303,2304,7,16,0,0,2304,2305,7,10,0,0,2305,2306,7,13,0,0,2306,288,1,0,0,0,2307,2308,7,5,0,0,2308,2309,7,6,0,0,2309,2310,7,29,0,0,2310,2311,7,5,0,0,2311,2312,7,8,0,0,2312,2313,7,9,0,0,2313,290,1,0,0,0,2314,2315,7,5,0,0,2315,2316,7,9,0,0,2316,2317,7,9,0,0,2317,2318,7,10,0,0,2318,2319,7,13,0,0,2319,2320,7,16,0,0,2320,2321,7,17,0,0,2321,2322,7,19,0,0,2322,2323,7,7,0,0,2323,292,1,0,0,0,2324,2325,7,5,0,0,2325,2326,7,9,0,0,2326,2327,7,9,0,0,2327,2328,7,17,0,0,2328,2329,7,23,0,0,2329,2330,7,7,0,0,2330,2331,7,15,0,0,2331,2332,7,10,0,0,2332,2333,7,7,0,0,2333,2334,7,16,0,0,2334,294,1,0,0,0,2335,2336,7,5,0,0,2336,2337,7,16,0,0,2337,296,1,0,0,0,2338,2339,7,5,0,0,2339,2340,7,16,0,0,2340,2341,7,16,0,0,2341,2342,7,13,0,0,2342,2343,7,17,0,0,2343,2344,7,18,0,0,2344,2345,7,22,0,0,2345,2346,7,16,0,0,2346,2347,7,10,0,0,2347,298,1,0,0,0,2348,2349,7,18,0,0,2349,2350,7,5,0,0,2350,2351,7,14,0,0,2351,2352,7,21,0,0,2352,2353,7,29,0,0,2353,2354,7,5,0,0,2354,2355,7,13,0,0,2355,2356,7,12,0,0,2356,300,1,0,0,0,2357,2358,7,18,0,0,2358,2359,7,10,0,0,2359,2360,7,25,0,0,2360,2361,7,19,0,0,2361,2362,7,13,0,0,2362,2363,7,10,0,0,2363,302,1,0,0,0,2364,2365,7,18,0,0,2365,2366,7,10,0,0,2366,2367,7,23,0,0,2367,2368,7,17,0,0,2368,2369,7,7,0,0,2369,304,1,0,0,0,2370,2371,7,18,0,0,2371,2372,7,8,0,0,2372,306,1,0,0,0,2373,2374,7,14,0,0,2374,2375,7,5,0,0,2375,2376,7,14,0,0,2376,2377,7,20,0,0,2377,2378,7,10,0,0,2378,308,1,0,0,0,2379,2380,7,14,0,0,2380,2381,7,5,0,0,2381,2382,7,6,0,0,2382,2383,7,6,0,0,2383,2384,7,10,0,0,2384,2385,7,12,0,0,2385,310,1,0,0,0,2386,2387,7,14,0,0,2387,2388,7,5,0,0,2388,2389,7,9,0,0,2389,2390,7,14,0,0,2390,2391,7,5,0,0,2391,2392,7,12,0,0,2392,2393,7,10,0,0,2393,312,1,0,0,0,2394,2395,7,14,0,0,2395,2396,7,5,0,0,2396,2397,7,9,0,0,2397,2398,7,14,0,0,2398,2399,7,5,0,0,2399,2400,7,12,0,0,2400,2401,7,10,0,0,2401,2402,7,12,0,0,2402,314,1,0,0,0,2403,2404,7,14,0,0,2404,2405,7,5,0,0,2405,2406,7,16,0,0,2406,2407,7,5,0,0,2407,2408,7,6,0,0,2408,2409,7,19,0,0,2409,2410,7,23,0,0,2410,316,1,0,0,0,2411,2412,7,14,0,0,2412,2413,7,20,0,0,2413,2414,7,5,0,0,2414,2415,7,17,0,0,2415,2416,7,7,0,0,2416,318,1,0,0,0,2417,2418,7,14,0,0,2418,2419,7,20,0,0,2419,2420,7,5,0,0,2420,2421,7,13,0,0,2421,2422,7,5,0,0,2422,2423,7,14,0,0,2423,2424,7,16,0,0,2424,2425,7,10,0,0,2425,2426,7,13,0,0,2426,2427,7,17,0,0,2427,2428,7,9,0,0,2428,2429,7,16,0,0,2429,2430,7,17,0,0,2430,2431,7,14,0,0,2431,2432,7,9,0,0,2432,320,1,0,0,0,2433,2434,7,14,0,0,2434,2435,7,20,0,0,2435,2436,7,10,0,0,2436,2437,7,14,0,0,2437,2438,7,21,0,0,2438,2439,7,24,0,0,2439,2440,7,19,0,0,2440,2441,7,17,0,0,2441,2442,7,7,0,0,2442,2443,7,16,0,0,2443,322,1,0,0,0,2444,2445,7,14,0,0,2445,2446,7,6,0,0,2446,2447,7,5,0,0,2447,2448,7,9,0,0,2448,2449,7,9,0,0,2449,324,1,0,0,0,2450,2451,7,14,0,0,2451,2452,7,6,0,0,2452,2453,7,19,0,0,2453,2454,7,9,0,0,2454,2455,7,10,0,0,2455,326,1,0,0,0,2456,2457,7,14,0,0,2457,2458,7,6,0,0,2458,2459,7,22,0,0,2459,2460,7,9,0,0,2460,2461,7,16,0,0,2461,2462,7,10,0,0,2462,2463,7,13,0,0,2463,328,1,0,0,0,2464,2465,7,14,0,0,2465,2466,7,19,0,0,2466,2467,7,15,0,0,2467,2468,7,15,0,0,2468,2469,7,10,0,0,2469,2470,7,7,0,0,2470,2471,7,16,0,0,2471,330,1,0,0,0,2472,2473,7,14,0,0,2473,2474,7,19,0,0,2474,2475,7,15,0,0,2475,2476,7,15,0,0,2476,2477,7,10,0,0,2477,2478,7,7,0,0,2478,2479,7,16,0,0,2479,2480,7,9,0,0,2480,332,1,0,0,0,2481,2482,7,14,0,0,2482,2483,7,19,0,0,2483,2484,7,15,0,0,2484,2485,7,15,0,0,2485,2486,7,17,0,0,2486,2487,7,16,0,0,2487,334,1,0,0,0,2488,2489,7,14,0,0,2489,2490,7,19,0,0,2490,2491,7,15,0,0,2491,2492,7,15,0,0,2492,2493,7,17,0,0,2493,2494,7,16,0,0,2494,2495,7,16,0,0,2495,2496,7,10,0,0,2496,2497,7,12,0,0,2497,336,1,0,0,0,2498,2499,7,14,0,0,2499,2500,7,19,0,0,2500,2501,7,7,0,0,2501,2502,7,25,0,0,2502,2503,7,17,0,0,2503,2504,7,23,0,0,2504,2505,7,22,0,0,2505,2506,7,13,0,0,2506,2507,7,5,0,0,2507,2508,7,16,0,0,2508,2509,7,17,0,0,2509,2510,7,19,0,0,2510,2511,7,7,0,0,2511,338,1,0,0,0,2512,2513,7,14,0,0,2513,2514,7,19,0,0,2514,2515,7,7,0,0,2515,2516,7,7,0,0,2516,2517,7,10,0,0,2517,2518,7,14,0,0,2518,2519,7,16,0,0,2519,2520,7,17,0,0,2520,2521,7,19,0,0,2521,2522,7,7,0,0,2522,340,1,0,0,0,2523,2524,7,14,0,0,2524,2525,7,19,0,0,2525,2526,7,7,0,0,2526,2527,7,9,0,0,2527,2528,7,16,0,0,2528,2529,7,13,0,0,2529,2530,7,5,0,0,2530,2531,7,17,0,0,2531,2532,7,7,0,0,2532,2533,7,16,0,0,2533,2534,7,9,0,0,2534,342,1,0,0,0,2535,2536,7,14,0,0,2536,2537,7,19,0,0,2537,2538,7,7,0,0,2538,2539,7,16,0,0,2539,2540,7,10,0,0,2540,2541,7,7,0,0,2541,2542,7,16,0,0,2542,344,1,0,0,0,2543,2544,7,14,0,0,2544,2545,7,19,0,0,2545,2546,7,7,0,0,2546,2547,7,16,0,0,2547,2548,7,17,0,0,2548,2549,7,7,0,0,2549,2550,7,22,0,0,2550,2551,7,10,0,0,2551,346,1,0,0,0,2552,2553,7,14,0,0,2553,2554,7,19,0,0,2554,2555,7,7,0,0,2555,2556,7,27,0,0,2556,2557,7,10,0,0,2557,2558,7,13,0,0,2558,2559,7,9,0,0,2559,2560,7,17,0,0,2560,2561,7,19,0,0,2561,2562,7,7,0,0,2562,348,1,0,0,0,2563,2564,7,14,0,0,2564,2565,7,19,0,0,2565,2566,7,24,0,0,2566,2567,7,8,0,0,2567,350,1,0,0,0,2568,2569,7,14,0,0,2569,2570,7,19,0,0,2570,2571,7,9,0,0,2571,2572,7,16,0,0,2572,352,1,0,0,0,2573,2574,7,14,0,0,2574,2575,7,9,0,0,2575,2576,7,27,0,0,2576,354,1,0,0,0,2577,2578,7,14,0,0,2578,2579,7,22,0,0,2579,2580,7,13,0,0,2580,2581,7,9,0,0,2581,2582,7,19,0,0,2582,2583,7,13,0,0,2583,356,1,0,0,0,2584,2585,7,14,0,0,2585,2586,7,8,0,0,2586,2587,7,14,0,0,2587,2588,7,6,0,0,2588,2589,7,10,0,0,2589,358,1,0,0,0,2590,2591,7,12,0,0,2591,2592,7,5,0,0,2592,2593,7,16,0,0,2593,2594,7,5,0,0,2594,360,1,0,0,0,2595,2596,7,12,0,0,2596,2597,7,5,0,0,2597,2598,7,16,0,0,2598,2599,7,5,0,0,2599,2600,7,18,0,0,2600,2601,7,5,0,0,2601,2602,7,9,0,0,2602,2603,7,10,0,0,2603,362,1,0,0,0,2604,2605,7,12,0,0,2605,2606,7,5,0,0,2606,2607,7,8,0,0,2607,364,1,0,0,0,2608,2609,7,12,0,0,2609,2610,7,10,0,0,2610,2611,7,5,0,0,2611,2612,7,6,0,0,2612,2613,7,6,0,0,2613,2614,7,19,0,0,2614,2615,7,14,0,0,2615,2616,7,5,0,0,2616,2617,7,16,0,0,2617,2618,7,10,0,0,2618,366,1,0,0,0,2619,2620,7,12,0,0,2620,2621,7,10,0,0,2621,2622,7,14,0,0,2622,2623,7,6,0,0,2623,2624,7,5,0,0,2624,2625,7,13,0,0,2625,2626,7,10,0,0,2626,368,1,0,0,0,2627,2628,7,12,0,0,2628,2629,7,10,0,0,2629,2630,7,25,0,0,2630,2631,7,5,0,0,2631,2632,7,22,0,0,2632,2633,7,6,0,0,2633,2634,7,16,0,0,2634,2635,7,9,0,0,2635,370,1,0,0,0,2636,2637,7,12,0,0,2637,2638,7,10,0,0,2638,2639,7,25,0,0,2639,2640,7,10,0,0,2640,2641,7,13,0,0,2641,2642,7,13,0,0,2642,2643,7,10,0,0,2643,2644,7,12,0,0,2644,372,1,0,0,0,2645,2646,7,12,0,0,2646,2647,7,10,0,0,2647,2648,7,25,0,0,2648,2649,7,17,0,0,2649,2650,7,7,0,0,2650,2651,7,10,0,0,2651,2652,7,13,0,0,2652,374,1,0,0,0,2653,2654,7,12,0,0,2654,2655,7,10,0,0,2655,2656,7,6,0,0,2656,2657,7,10,0,0,2657,2658,7,16,0,0,2658,2659,7,10,0,0,2659,376,1,0,0,0,2660,2661,7,12,0,0,2661,2662,7,10,0,0,2662,2663,7,6,0,0,2663,2664,7,17,0,0,2664,2665,7,15,0,0,2665,2666,7,17,0,0,2666,2667,7,16,0,0,2667,2668,7,10,0,0,2668,2669,7,13,0,0,2669,378,1,0,0,0,2670,2671,7,12,0,0,2671,2672,7,10,0,0,2672,2673,7,6,0,0,2673,2674,7,17,0,0,2674,2675,7,15,0,0,2675,2676,7,17,0,0,2676,2677,7,16,0,0,2677,2678,7,10,0,0,2678,2679,7,13,0,0,2679,2680,7,9,0,0,2680,380,1,0,0,0,2681,2682,7,12,0,0,2682,2683,7,17,0,0,2683,2684,7,14,0,0,2684,2685,7,16,0,0,2685,2686,7,17,0,0,2686,2687,7,19,0,0,2687,2688,7,7,0,0,2688,2689,7,5,0,0,2689,2690,7,13,0,0,2690,2691,7,8,0,0,2691,382,1,0,0,0,2692,2693,7,12,0,0,2693,2694,7,17,0,0,2694,2695,7,9,0,0,2695,2696,7,5,0,0,2696,2697,7,18,0,0,2697,2698,7,6,0,0,2698,2699,7,10,0,0,2699,384,1,0,0,0,2700,2701,7,12,0,0,2701,2702,7,17,0,0,2702,2703,7,9,0,0,2703,2704,7,14,0,0,2704,2705,7,5,0,0,2705,2706,7,13,0,0,2706,2707,7,12,0,0,2707,386,1,0,0,0,2708,2709,7,12,0,0,2709,2710,7,19,0,0,2710,2711,7,14,0,0,2711,2712,7,22,0,0,2712,2713,7,15,0,0,2713,2714,7,10,0,0,2714,2715,7,7,0,0,2715,2716,7,16,0,0,2716,388,1,0,0,0,2717,2718,7,12,0,0,2718,2719,7,19,0,0,2719,2720,7,15,0,0,2720,2721,7,5,0,0,2721,2722,7,17,0,0,2722,2723,7,7,0,0,2723,390,1,0,0,0,2724,2725,7,12,0,0,2725,2726,7,19,0,0,2726,2727,7,22,0,0,2727,2728,7,18,0,0,2728,2729,7,6,0,0,2729,2730,7,10,0,0,2730,392,1,0,0,0,2731,2732,7,12,0,0,2732,2733,7,13,0,0,2733,2734,7,19,0,0,2734,2735,7,24,0,0,2735,394,1,0,0,0,2736,2737,7,10,0,0,2737,2738,7,5,0,0,2738,2739,7,14,0,0,2739,2740,7,20,0,0,2740,396,1,0,0,0,2741,2742,7,10,0,0,2742,2743,7,7,0,0,2743,2744,7,5,0,0,2744,2745,7,18,0,0,2745,2746,7,6,0,0,2746,2747,7,10,0,0,2747,398,1,0,0,0,2748,2749,7,10,0,0,2749,2750,7,7,0,0,2750,2751,7,14,0,0,2751,2752,7,19,0,0,2752,2753,7,12,0,0,2753,2754,7,17,0,0,2754,2755,7,7,0,0,2755,2756,7,23,0,0,2756,400,1,0,0,0,2757,2758,7,10,0,0,2758,2759,7,7,0,0,2759,2760,7,14,0,0,2760,2761,7,13,0,0,2761,2762,7,8,0,0,2762,2763,7,24,0,0,2763,2764,7,16,0,0,2764,2765,7,10,0,0,2765,2766,7,12,0,0,2766,402,1,0,0,0,2767,2768,7,10,0,0,2768,2769,7,7,0,0,2769,2770,7,22,0,0,2770,2771,7,15,0,0,2771,404,1,0,0,0,2772,2773,7,10,0,0,2773,2774,7,9,0,0,2774,2775,7,14,0,0,2775,2776,7,5,0,0,2776,2777,7,24,0,0,2777,2778,7,10,0,0,2778,406,1,0,0,0,2779,2780,7,10,0,0,2780,2781,7,27,0,0,2781,2782,7,10,0,0,2782,2783,7,7,0,0,2783,2784,7,16,0,0,2784,408,1,0,0,0,2785,2786,7,10,0,0,2786,2787,7,26,0,0,2787,2788,7,14,0,0,2788,2789,7,6,0,0,2789,2790,7,22,0,0,2790,2791,7,12,0,0,2791,2792,7,10,0,0,2792,410,1,0,0,0,2793,2794,7,10,0,0,2794,2795,7,26,0,0,2795,2796,7,14,0,0,2796,2797,7,6,0,0,2797,2798,7,22,0,0,2798,2799,7,12,0,0,2799,2800,7,17,0,0,2800,2801,7,7,0,0,2801,2802,7,23,0,0,2802,412,1,0,0,0,2803,2804,7,10,0,0,2804,2805,7,26,0,0,2805,2806,7,14,0,0,2806,2807,7,6,0,0,2807,2808,7,22,0,0,2808,2809,7,9,0,0,2809,2810,7,17,0,0,2810,2811,7,27,0,0,2811,2812,7,10,0,0,2812,414,1,0,0,0,2813,2814,7,10,0,0,2814,2815,7,26,0,0,2815,2816,7,10,0,0,2816,2817,7,14,0,0,2817,2818,7,22,0,0,2818,2819,7,16,0,0,2819,2820,7,10,0,0,2820,416,1,0,0,0,2821,2822,7,10,0,0,2822,2823,7,26,0,0,2823,2824,7,24,0,0,2824,2825,7,6,0,0,2825,2826,7,5,0,0,2826,2827,7,17,0,0,2827,2828,7,7,0,0,2828,418,1,0,0,0,2829,2830,7,10,0,0,2830,2831,7,26,0,0,2831,2832,7,16,0,0,2832,2833,7,10,0,0,2833,2834,7,7,0,0,2834,2835,7,9,0,0,2835,2836,7,17,0,0,2836,2837,7,19,0,0,2837,2838,7,7,0,0,2838,420,1,0,0,0,2839,2840,7,10,0,0,2840,2841,7,26,0,0,2841,2842,7,16,0,0,2842,2843,7,10,0,0,2843,2844,7,13,0,0,2844,2845,7,7,0,0,2845,2846,7,5,0,0,2846,2847,7,6,0,0,2847,422,1,0,0,0,2848,2849,7,25,0,0,2849,2850,7,5,0,0,2850,2851,7,15,0,0,2851,2852,7,17,0,0,2852,2853,7,6,0,0,2853,2854,7,8,0,0,2854,424,1,0,0,0,2855,2856,7,25,0,0,2856,2857,7,17,0,0,2857,2858,7,13,0,0,2858,2859,7,9,0,0,2859,2860,7,16,0,0,2860,426,1,0,0,0,2861,2862,7,25,0,0,2862,2863,7,19,0,0,2863,2864,7,6,0,0,2864,2865,7,6,0,0,2865,2866,7,19,0,0,2866,2867,7,29,0,0,2867,2868,7,17,0,0,2868,2869,7,7,0,0,2869,2870,7,23,0,0,2870,428,1,0,0,0,2871,2872,7,25,0,0,2872,2873,7,19,0,0,2873,2874,7,13,0,0,2874,2875,7,14,0,0,2875,2876,7,10,0,0,2876,430,1,0,0,0,2877,2878,7,25,0,0,2878,2879,7,19,0,0,2879,2880,7,13,0,0,2880,2881,7,29,0,0,2881,2882,7,5,0,0,2882,2883,7,13,0,0,2883,2884,7,12,0,0,2884,432,1,0,0,0,2885,2886,7,25,0,0,2886,2887,7,22,0,0,2887,2888,7,7,0,0,2888,2889,7,14,0,0,2889,2890,7,16,0,0,2890,2891,7,17,0,0,2891,2892,7,19,0,0,2892,2893,7,7,0,0,2893,434,1,0,0,0,2894,2895,7,25,0,0,2895,2896,7,22,0,0,2896,2897,7,7,0,0,2897,2898,7,14,0,0,2898,2899,7,16,0,0,2899,2900,7,17,0,0,2900,2901,7,19,0,0,2901,2902,7,7,0,0,2902,2903,7,9,0,0,2903,436,1,0,0,0,2904,2905,7,23,0,0,2905,2906,7,6,0,0,2906,2907,7,19,0,0,2907,2908,7,18,0,0,2908,2909,7,5,0,0,2909,2910,7,6,0,0,2910,438,1,0,0,0,2911,2912,7,23,0,0,2912,2913,7,13,0,0,2913,2914,7,5,0,0,2914,2915,7,7,0,0,2915,2916,7,16,0,0,2916,2917,7,10,0,0,2917,2918,7,12,0,0,2918,440,1,0,0,0,2919,2920,7,20,0,0,2920,2921,7,5,0,0,2921,2922,7,7,0,0,2922,2923,7,12,0,0,2923,2924,7,6,0,0,2924,2925,7,10,0,0,2925,2926,7,13,0,0,2926,442,1,0,0,0,2927,2928,7,20,0,0,2928,2929,7,10,0,0,2929,2930,7,5,0,0,2930,2931,7,12,0,0,2931,2932,7,10,0,0,2932,2933,7,13,0,0,2933,444,1,0,0,0,2934,2935,7,20,0,0,2935,2936,7,19,0,0,2936,2937,7,6,0,0,2937,2938,7,12,0,0,2938,446,1,0,0,0,2939,2940,7,20,0,0,2940,2941,7,19,0,0,2941,2942,7,22,0,0,2942,2943,7,13,0,0,2943,448,1,0,0,0,2944,2945,7,17,0,0,2945,2946,7,12,0,0,2946,2947,7,10,0,0,2947,2948,7,7,0,0,2948,2949,7,16,0,0,2949,2950,7,17,0,0,2950,2951,7,16,0,0,2951,2952,7,8,0,0,2952,450,1,0,0,0,2953,2954,7,17,0,0,2954,2955,7,25,0,0,2955,452,1,0,0,0,2956,2957,7,17,0,0,2957,2958,7,15,0,0,2958,2959,7,15,0,0,2959,2960,7,10,0,0,2960,2961,7,12,0,0,2961,2962,7,17,0,0,2962,2963,7,5,0,0,2963,2964,7,16,0,0,2964,2965,7,10,0,0,2965,454,1,0,0,0,2966,2967,7,17,0,0,2967,2968,7,15,0,0,2968,2969,7,15,0,0,2969,2970,7,22,0,0,2970,2971,7,16,0,0,2971,2972,7,5,0,0,2972,2973,7,18,0,0,2973,2974,7,6,0,0,2974,2975,7,10,0,0,2975,456,1,0,0,0,2976,2977,7,17,0,0,2977,2978,7,15,0,0,2978,2979,7,24,0,0,2979,2980,7,6,0,0,2980,2981,7,17,0,0,2981,2982,7,14,0,0,2982,2983,7,17,0,0,2983,2984,7,16,0,0,2984,458,1,0,0,0,2985,2986,7,17,0,0,2986,2987,7,7,0,0,2987,2988,7,14,0,0,2988,2989,7,6,0,0,2989,2990,7,22,0,0,2990,2991,7,12,0,0,2991,2992,7,17,0,0,2992,2993,7,7,0,0,2993,2994,7,23,0,0,2994,460,1,0,0,0,2995,2996,7,17,0,0,2996,2997,7,7,0,0,2997,2998,7,14,0,0,2998,2999,7,13,0,0,2999,3e3,7,10,0,0,3e3,3001,7,15,0,0,3001,3002,7,10,0,0,3002,3003,7,7,0,0,3003,3004,7,16,0,0,3004,462,1,0,0,0,3005,3006,7,17,0,0,3006,3007,7,7,0,0,3007,3008,7,12,0,0,3008,3009,7,10,0,0,3009,3010,7,26,0,0,3010,464,1,0,0,0,3011,3012,7,17,0,0,3012,3013,7,7,0,0,3013,3014,7,12,0,0,3014,3015,7,10,0,0,3015,3016,7,26,0,0,3016,3017,7,10,0,0,3017,3018,7,9,0,0,3018,466,1,0,0,0,3019,3020,7,17,0,0,3020,3021,7,7,0,0,3021,3022,7,20,0,0,3022,3023,7,10,0,0,3023,3024,7,13,0,0,3024,3025,7,17,0,0,3025,3026,7,16,0,0,3026,468,1,0,0,0,3027,3028,7,17,0,0,3028,3029,7,7,0,0,3029,3030,7,20,0,0,3030,3031,7,10,0,0,3031,3032,7,13,0,0,3032,3033,7,17,0,0,3033,3034,7,16,0,0,3034,3035,7,9,0,0,3035,470,1,0,0,0,3036,3037,7,17,0,0,3037,3038,7,7,0,0,3038,3039,7,6,0,0,3039,3040,7,17,0,0,3040,3041,7,7,0,0,3041,3042,7,10,0,0,3042,472,1,0,0,0,3043,3044,7,17,0,0,3044,3045,7,7,0,0,3045,3046,7,9,0,0,3046,3047,7,10,0,0,3047,3048,7,7,0,0,3048,3049,7,9,0,0,3049,3050,7,17,0,0,3050,3051,7,16,0,0,3051,3052,7,17,0,0,3052,3053,7,27,0,0,3053,3054,7,10,0,0,3054,474,1,0,0,0,3055,3056,7,17,0,0,3056,3057,7,7,0,0,3057,3058,7,9,0,0,3058,3059,7,10,0,0,3059,3060,7,13,0,0,3060,3061,7,16,0,0,3061,476,1,0,0,0,3062,3063,7,17,0,0,3063,3064,7,7,0,0,3064,3065,7,9,0,0,3065,3066,7,16,0,0,3066,3067,7,10,0,0,3067,3068,7,5,0,0,3068,3069,7,12,0,0,3069,478,1,0,0,0,3070,3071,7,17,0,0,3071,3072,7,7,0,0,3072,3073,7,27,0,0,3073,3074,7,19,0,0,3074,3075,7,21,0,0,3075,3076,7,10,0,0,3076,3077,7,13,0,0,3077,480,1,0,0,0,3078,3079,7,17,0,0,3079,3080,7,9,0,0,3080,3081,7,19,0,0,3081,3082,7,6,0,0,3082,3083,7,5,0,0,3083,3084,7,16,0,0,3084,3085,7,17,0,0,3085,3086,7,19,0,0,3086,3087,7,7,0,0,3087,482,1,0,0,0,3088,3089,7,21,0,0,3089,3090,7,10,0,0,3090,3091,7,8,0,0,3091,484,1,0,0,0,3092,3093,7,6,0,0,3093,3094,7,5,0,0,3094,3095,7,18,0,0,3095,3096,7,10,0,0,3096,3097,7,6,0,0,3097,486,1,0,0,0,3098,3099,7,6,0,0,3099,3100,7,5,0,0,3100,3101,7,7,0,0,3101,3102,7,23,0,0,3102,3103,7,22,0,0,3103,3104,7,5,0,0,3104,3105,7,23,0,0,3105,3106,7,10,0,0,3106,488,1,0,0,0,3107,3108,7,6,0,0,3108,3109,7,5,0,0,3109,3110,7,13,0,0,3110,3111,7,23,0,0,3111,3112,7,10,0,0,3112,490,1,0,0,0,3113,3114,7,6,0,0,3114,3115,7,5,0,0,3115,3116,7,9,0,0,3116,3117,7,16,0,0,3117,492,1,0,0,0,3118,3119,7,6,0,0,3119,3120,7,10,0,0,3120,3121,7,5,0,0,3121,3122,7,21,0,0,3122,3123,7,24,0,0,3123,3124,7,13,0,0,3124,3125,7,19,0,0,3125,3126,7,19,0,0,3126,3127,7,25,0,0,3127,494,1,0,0,0,3128,3129,7,6,0,0,3129,3130,7,10,0,0,3130,3131,7,27,0,0,3131,3132,7,10,0,0,3132,3133,7,6,0,0,3133,496,1,0,0,0,3134,3135,7,6,0,0,3135,3136,7,17,0,0,3136,3137,7,9,0,0,3137,3138,7,16,0,0,3138,3139,7,10,0,0,3139,3140,7,7,0,0,3140,498,1,0,0,0,3141,3142,7,6,0,0,3142,3143,7,19,0,0,3143,3144,7,5,0,0,3144,3145,7,12,0,0,3145,500,1,0,0,0,3146,3147,7,6,0,0,3147,3148,7,19,0,0,3148,3149,7,14,0,0,3149,3150,7,5,0,0,3150,3151,7,6,0,0,3151,502,1,0,0,0,3152,3153,7,6,0,0,3153,3154,7,19,0,0,3154,3155,7,14,0,0,3155,3156,7,5,0,0,3156,3157,7,16,0,0,3157,3158,7,17,0,0,3158,3159,7,19,0,0,3159,3160,7,7,0,0,3160,504,1,0,0,0,3161,3162,7,6,0,0,3162,3163,7,19,0,0,3163,3164,7,14,0,0,3164,3165,7,21,0,0,3165,506,1,0,0,0,3166,3167,7,15,0,0,3167,3168,7,5,0,0,3168,3169,7,24,0,0,3169,3170,7,24,0,0,3170,3171,7,17,0,0,3171,3172,7,7,0,0,3172,3173,7,23,0,0,3173,508,1,0,0,0,3174,3175,7,15,0,0,3175,3176,7,5,0,0,3176,3177,7,16,0,0,3177,3178,7,14,0,0,3178,3179,7,20,0,0,3179,510,1,0,0,0,3180,3181,7,15,0,0,3181,3182,7,5,0,0,3182,3183,7,16,0,0,3183,3184,7,14,0,0,3184,3185,7,20,0,0,3185,3186,7,10,0,0,3186,3187,7,12,0,0,3187,512,1,0,0,0,3188,3189,7,15,0,0,3189,3190,7,5,0,0,3190,3191,7,16,0,0,3191,3192,7,10,0,0,3192,3193,7,13,0,0,3193,3194,7,17,0,0,3194,3195,7,5,0,0,3195,3196,7,6,0,0,3196,3197,7,17,0,0,3197,3198,7,11,0,0,3198,3199,7,10,0,0,3199,3200,7,12,0,0,3200,514,1,0,0,0,3201,3202,7,15,0,0,3202,3203,7,5,0,0,3203,3204,7,26,0,0,3204,3205,7,27,0,0,3205,3206,7,5,0,0,3206,3207,7,6,0,0,3207,3208,7,22,0,0,3208,3209,7,10,0,0,3209,516,1,0,0,0,3210,3211,7,15,0,0,3211,3212,7,10,0,0,3212,3213,7,13,0,0,3213,3214,7,23,0,0,3214,3215,7,10,0,0,3215,518,1,0,0,0,3216,3217,7,15,0,0,3217,3218,7,17,0,0,3218,3219,7,7,0,0,3219,3220,7,22,0,0,3220,3221,7,16,0,0,3221,3222,7,10,0,0,3222,520,1,0,0,0,3223,3224,7,15,0,0,3224,3225,7,17,0,0,3225,3226,7,7,0,0,3226,3227,7,27,0,0,3227,3228,7,5,0,0,3228,3229,7,6,0,0,3229,3230,7,22,0,0,3230,3231,7,10,0,0,3231,522,1,0,0,0,3232,3233,7,15,0,0,3233,3234,7,19,0,0,3234,3235,7,12,0,0,3235,3236,7,10,0,0,3236,524,1,0,0,0,3237,3238,7,15,0,0,3238,3239,7,19,0,0,3239,3240,7,7,0,0,3240,3241,7,16,0,0,3241,3242,7,20,0,0,3242,526,1,0,0,0,3243,3244,7,15,0,0,3244,3245,7,19,0,0,3245,3246,7,27,0,0,3246,3247,7,10,0,0,3247,528,1,0,0,0,3248,3249,7,7,0,0,3249,3250,7,5,0,0,3250,3251,7,15,0,0,3251,3252,7,10,0,0,3252,530,1,0,0,0,3253,3254,7,7,0,0,3254,3255,7,5,0,0,3255,3256,7,15,0,0,3256,3257,7,10,0,0,3257,3258,7,9,0,0,3258,532,1,0,0,0,3259,3260,7,7,0,0,3260,3261,7,10,0,0,3261,3262,7,26,0,0,3262,3263,7,16,0,0,3263,534,1,0,0,0,3264,3265,7,7,0,0,3265,3266,7,19,0,0,3266,536,1,0,0,0,3267,3268,7,7,0,0,3268,3269,7,19,0,0,3269,3270,7,16,0,0,3270,3271,7,20,0,0,3271,3272,7,17,0,0,3272,3273,7,7,0,0,3273,3274,7,23,0,0,3274,538,1,0,0,0,3275,3276,7,7,0,0,3276,3277,7,19,0,0,3277,3278,7,16,0,0,3278,3279,7,17,0,0,3279,3280,7,25,0,0,3280,3281,7,8,0,0,3281,540,1,0,0,0,3282,3283,7,7,0,0,3283,3284,7,19,0,0,3284,3285,7,29,0,0,3285,3286,7,5,0,0,3286,3287,7,17,0,0,3287,3288,7,16,0,0,3288,542,1,0,0,0,3289,3290,7,7,0,0,3290,3291,7,22,0,0,3291,3292,7,6,0,0,3292,3293,7,6,0,0,3293,3294,7,9,0,0,3294,544,1,0,0,0,3295,3296,7,19,0,0,3296,3297,7,18,0,0,3297,3298,7,30,0,0,3298,3299,7,10,0,0,3299,3300,7,14,0,0,3300,3301,7,16,0,0,3301,546,1,0,0,0,3302,3303,7,19,0,0,3303,3304,7,25,0,0,3304,548,1,0,0,0,3305,3306,7,19,0,0,3306,3307,7,25,0,0,3307,3308,7,25,0,0,3308,550,1,0,0,0,3309,3310,7,19,0,0,3310,3311,7,17,0,0,3311,3312,7,12,0,0,3312,3313,7,9,0,0,3313,552,1,0,0,0,3314,3315,7,19,0,0,3315,3316,7,24,0,0,3316,3317,7,10,0,0,3317,3318,7,13,0,0,3318,3319,7,5,0,0,3319,3320,7,16,0,0,3320,3321,7,19,0,0,3321,3322,7,13,0,0,3322,554,1,0,0,0,3323,3324,7,19,0,0,3324,3325,7,24,0,0,3325,3326,7,16,0,0,3326,3327,7,17,0,0,3327,3328,7,19,0,0,3328,3329,7,7,0,0,3329,556,1,0,0,0,3330,3331,7,19,0,0,3331,3332,7,24,0,0,3332,3333,7,16,0,0,3333,3334,7,17,0,0,3334,3335,7,19,0,0,3335,3336,7,7,0,0,3336,3337,7,9,0,0,3337,558,1,0,0,0,3338,3339,7,19,0,0,3339,3340,7,29,0,0,3340,3341,7,7,0,0,3341,3342,7,10,0,0,3342,3343,7,12,0,0,3343,560,1,0,0,0,3344,3345,7,19,0,0,3345,3346,7,29,0,0,3346,3347,7,7,0,0,3347,3348,7,10,0,0,3348,3349,7,13,0,0,3349,562,1,0,0,0,3350,3351,7,24,0,0,3351,3352,7,5,0,0,3352,3353,7,13,0,0,3353,3354,7,9,0,0,3354,3355,7,10,0,0,3355,3356,7,13,0,0,3356,564,1,0,0,0,3357,3358,7,24,0,0,3358,3359,7,5,0,0,3359,3360,7,13,0,0,3360,3361,7,16,0,0,3361,3362,7,17,0,0,3362,3363,7,5,0,0,3363,3364,7,6,0,0,3364,566,1,0,0,0,3365,3366,7,24,0,0,3366,3367,7,5,0,0,3367,3368,7,13,0,0,3368,3369,7,16,0,0,3369,3370,7,17,0,0,3370,3371,7,16,0,0,3371,3372,7,17,0,0,3372,3373,7,19,0,0,3373,3374,7,7,0,0,3374,568,1,0,0,0,3375,3376,7,24,0,0,3376,3377,7,5,0,0,3377,3378,7,9,0,0,3378,3379,7,9,0,0,3379,3380,7,17,0,0,3380,3381,7,7,0,0,3381,3382,7,23,0,0,3382,570,1,0,0,0,3383,3384,7,24,0,0,3384,3385,7,5,0,0,3385,3386,7,9,0,0,3386,3387,7,9,0,0,3387,3388,7,29,0,0,3388,3389,7,19,0,0,3389,3390,7,13,0,0,3390,3391,7,12,0,0,3391,572,1,0,0,0,3392,3393,7,24,0,0,3393,3394,7,6,0,0,3394,3395,7,5,0,0,3395,3396,7,7,0,0,3396,3397,7,9,0,0,3397,574,1,0,0,0,3398,3399,7,24,0,0,3399,3400,7,13,0,0,3400,3401,7,10,0,0,3401,3402,7,14,0,0,3402,3403,7,10,0,0,3403,3404,7,12,0,0,3404,3405,7,17,0,0,3405,3406,7,7,0,0,3406,3407,7,23,0,0,3407,576,1,0,0,0,3408,3409,7,24,0,0,3409,3410,7,13,0,0,3410,3411,7,10,0,0,3411,3412,7,24,0,0,3412,3413,7,5,0,0,3413,3414,7,13,0,0,3414,3415,7,10,0,0,3415,578,1,0,0,0,3416,3417,7,24,0,0,3417,3418,7,13,0,0,3418,3419,7,10,0,0,3419,3420,7,24,0,0,3420,3421,7,5,0,0,3421,3422,7,13,0,0,3422,3423,7,10,0,0,3423,3424,7,12,0,0,3424,580,1,0,0,0,3425,3426,7,24,0,0,3426,3427,7,13,0,0,3427,3428,7,10,0,0,3428,3429,7,9,0,0,3429,3430,7,10,0,0,3430,3431,7,13,0,0,3431,3432,7,27,0,0,3432,3433,7,10,0,0,3433,582,1,0,0,0,3434,3435,7,24,0,0,3435,3436,7,13,0,0,3436,3437,7,17,0,0,3437,3438,7,19,0,0,3438,3439,7,13,0,0,3439,584,1,0,0,0,3440,3441,7,24,0,0,3441,3442,7,13,0,0,3442,3443,7,17,0,0,3443,3444,7,27,0,0,3444,3445,7,17,0,0,3445,3446,7,6,0,0,3446,3447,7,10,0,0,3447,3448,7,23,0,0,3448,3449,7,10,0,0,3449,3450,7,9,0,0,3450,586,1,0,0,0,3451,3452,7,24,0,0,3452,3453,7,13,0,0,3453,3454,7,19,0,0,3454,3455,7,14,0,0,3455,3456,7,10,0,0,3456,3457,7,12,0,0,3457,3458,7,22,0,0,3458,3459,7,13,0,0,3459,3460,7,5,0,0,3460,3461,7,6,0,0,3461,588,1,0,0,0,3462,3463,7,24,0,0,3463,3464,7,13,0,0,3464,3465,7,19,0,0,3465,3466,7,14,0,0,3466,3467,7,10,0,0,3467,3468,7,12,0,0,3468,3469,7,22,0,0,3469,3470,7,13,0,0,3470,3471,7,10,0,0,3471,590,1,0,0,0,3472,3473,7,24,0,0,3473,3474,7,13,0,0,3474,3475,7,19,0,0,3475,3476,7,23,0,0,3476,3477,7,13,0,0,3477,3478,7,5,0,0,3478,3479,7,15,0,0,3479,592,1,0,0,0,3480,3481,7,28,0,0,3481,3482,7,22,0,0,3482,3483,7,19,0,0,3483,3484,7,16,0,0,3484,3485,7,10,0,0,3485,594,1,0,0,0,3486,3487,7,13,0,0,3487,3488,7,5,0,0,3488,3489,7,7,0,0,3489,3490,7,23,0,0,3490,3491,7,10,0,0,3491,596,1,0,0,0,3492,3493,7,13,0,0,3493,3494,7,10,0,0,3494,3495,7,5,0,0,3495,3496,7,12,0,0,3496,598,1,0,0,0,3497,3498,7,13,0,0,3498,3499,7,10,0,0,3499,3500,7,5,0,0,3500,3501,7,9,0,0,3501,3502,7,9,0,0,3502,3503,7,17,0,0,3503,3504,7,23,0,0,3504,3505,7,7,0,0,3505,600,1,0,0,0,3506,3507,7,13,0,0,3507,3508,7,10,0,0,3508,3509,7,14,0,0,3509,3510,7,20,0,0,3510,3511,7,10,0,0,3511,3512,7,14,0,0,3512,3513,7,21,0,0,3513,602,1,0,0,0,3514,3515,7,13,0,0,3515,3516,7,10,0,0,3516,3517,7,14,0,0,3517,3518,7,22,0,0,3518,3519,7,13,0,0,3519,3520,7,9,0,0,3520,3521,7,17,0,0,3521,3522,7,27,0,0,3522,3523,7,10,0,0,3523,604,1,0,0,0,3524,3525,7,13,0,0,3525,3526,7,10,0,0,3526,3527,7,25,0,0,3527,606,1,0,0,0,3528,3529,7,13,0,0,3529,3530,7,10,0,0,3530,3531,7,25,0,0,3531,3532,7,13,0,0,3532,3533,7,10,0,0,3533,3534,7,9,0,0,3534,3535,7,20,0,0,3535,608,1,0,0,0,3536,3537,7,13,0,0,3537,3538,7,10,0,0,3538,3539,7,17,0,0,3539,3540,7,7,0,0,3540,3541,7,12,0,0,3541,3542,7,10,0,0,3542,3543,7,26,0,0,3543,610,1,0,0,0,3544,3545,7,13,0,0,3545,3546,7,10,0,0,3546,3547,7,6,0,0,3547,3548,7,5,0,0,3548,3549,7,16,0,0,3549,3550,7,17,0,0,3550,3551,7,27,0,0,3551,3552,7,10,0,0,3552,612,1,0,0,0,3553,3554,7,13,0,0,3554,3555,7,10,0,0,3555,3556,7,6,0,0,3556,3557,7,10,0,0,3557,3558,7,5,0,0,3558,3559,7,9,0,0,3559,3560,7,10,0,0,3560,614,1,0,0,0,3561,3562,7,13,0,0,3562,3563,7,10,0,0,3563,3564,7,7,0,0,3564,3565,7,5,0,0,3565,3566,7,15,0,0,3566,3567,7,10,0,0,3567,616,1,0,0,0,3568,3569,7,13,0,0,3569,3570,7,10,0,0,3570,3571,7,24,0,0,3571,3572,7,10,0,0,3572,3573,7,5,0,0,3573,3574,7,16,0,0,3574,3575,7,5,0,0,3575,3576,7,18,0,0,3576,3577,7,6,0,0,3577,3578,7,10,0,0,3578,618,1,0,0,0,3579,3580,7,13,0,0,3580,3581,7,10,0,0,3581,3582,7,24,0,0,3582,3583,7,6,0,0,3583,3584,7,5,0,0,3584,3585,7,14,0,0,3585,3586,7,10,0,0,3586,620,1,0,0,0,3587,3588,7,13,0,0,3588,3589,7,10,0,0,3589,3590,7,24,0,0,3590,3591,7,6,0,0,3591,3592,7,17,0,0,3592,3593,7,14,0,0,3593,3594,7,5,0,0,3594,622,1,0,0,0,3595,3596,7,13,0,0,3596,3597,7,10,0,0,3597,3598,7,9,0,0,3598,3599,7,10,0,0,3599,3600,7,16,0,0,3600,624,1,0,0,0,3601,3602,7,13,0,0,3602,3603,7,10,0,0,3603,3604,7,9,0,0,3604,3605,7,16,0,0,3605,3606,7,5,0,0,3606,3607,7,13,0,0,3607,3608,7,16,0,0,3608,626,1,0,0,0,3609,3610,7,13,0,0,3610,3611,7,10,0,0,3611,3612,7,9,0,0,3612,3613,7,16,0,0,3613,3614,7,13,0,0,3614,3615,7,17,0,0,3615,3616,7,14,0,0,3616,3617,7,16,0,0,3617,628,1,0,0,0,3618,3619,7,13,0,0,3619,3620,7,10,0,0,3620,3621,7,16,0,0,3621,3622,7,22,0,0,3622,3623,7,13,0,0,3623,3624,7,7,0,0,3624,3625,7,9,0,0,3625,630,1,0,0,0,3626,3627,7,13,0,0,3627,3628,7,10,0,0,3628,3629,7,27,0,0,3629,3630,7,19,0,0,3630,3631,7,21,0,0,3631,3632,7,10,0,0,3632,632,1,0,0,0,3633,3634,7,13,0,0,3634,3635,7,19,0,0,3635,3636,7,6,0,0,3636,3637,7,10,0,0,3637,634,1,0,0,0,3638,3639,7,13,0,0,3639,3640,7,19,0,0,3640,3641,7,6,0,0,3641,3642,7,6,0,0,3642,3643,7,18,0,0,3643,3644,7,5,0,0,3644,3645,7,14,0,0,3645,3646,7,21,0,0,3646,636,1,0,0,0,3647,3648,7,13,0,0,3648,3649,7,19,0,0,3649,3650,7,29,0,0,3650,3651,7,9,0,0,3651,638,1,0,0,0,3652,3653,7,13,0,0,3653,3654,7,22,0,0,3654,3655,7,6,0,0,3655,3656,7,10,0,0,3656,640,1,0,0,0,3657,3658,7,9,0,0,3658,3659,7,5,0,0,3659,3660,7,27,0,0,3660,3661,7,10,0,0,3661,3662,7,24,0,0,3662,3663,7,19,0,0,3663,3664,7,17,0,0,3664,3665,7,7,0,0,3665,3666,7,16,0,0,3666,642,1,0,0,0,3667,3668,7,9,0,0,3668,3669,7,14,0,0,3669,3670,7,20,0,0,3670,3671,7,10,0,0,3671,3672,7,15,0,0,3672,3673,7,5,0,0,3673,644,1,0,0,0,3674,3675,7,9,0,0,3675,3676,7,14,0,0,3676,3677,7,13,0,0,3677,3678,7,19,0,0,3678,3679,7,6,0,0,3679,3680,7,6,0,0,3680,646,1,0,0,0,3681,3682,7,9,0,0,3682,3683,7,10,0,0,3683,3684,7,5,0,0,3684,3685,7,13,0,0,3685,3686,7,14,0,0,3686,3687,7,20,0,0,3687,648,1,0,0,0,3688,3689,7,9,0,0,3689,3690,7,10,0,0,3690,3691,7,14,0,0,3691,3692,7,19,0,0,3692,3693,7,7,0,0,3693,3694,7,12,0,0,3694,650,1,0,0,0,3695,3696,7,9,0,0,3696,3697,7,10,0,0,3697,3698,7,14,0,0,3698,3699,7,22,0,0,3699,3700,7,13,0,0,3700,3701,7,17,0,0,3701,3702,7,16,0,0,3702,3703,7,8,0,0,3703,652,1,0,0,0,3704,3705,7,9,0,0,3705,3706,7,10,0,0,3706,3707,7,28,0,0,3707,3708,7,22,0,0,3708,3709,7,10,0,0,3709,3710,7,7,0,0,3710,3711,7,14,0,0,3711,3712,7,10,0,0,3712,654,1,0,0,0,3713,3714,7,9,0,0,3714,3715,7,10,0,0,3715,3716,7,28,0,0,3716,3717,7,22,0,0,3717,3718,7,10,0,0,3718,3719,7,7,0,0,3719,3720,7,14,0,0,3720,3721,7,10,0,0,3721,3722,7,9,0,0,3722,656,1,0,0,0,3723,3724,7,9,0,0,3724,3725,7,10,0,0,3725,3726,7,13,0,0,3726,3727,7,17,0,0,3727,3728,7,5,0,0,3728,3729,7,6,0,0,3729,3730,7,17,0,0,3730,3731,7,11,0,0,3731,3732,7,5,0,0,3732,3733,7,18,0,0,3733,3734,7,6,0,0,3734,3735,7,10,0,0,3735,658,1,0,0,0,3736,3737,7,9,0,0,3737,3738,7,10,0,0,3738,3739,7,13,0,0,3739,3740,7,27,0,0,3740,3741,7,10,0,0,3741,3742,7,13,0,0,3742,660,1,0,0,0,3743,3744,7,9,0,0,3744,3745,7,10,0,0,3745,3746,7,9,0,0,3746,3747,7,9,0,0,3747,3748,7,17,0,0,3748,3749,7,19,0,0,3749,3750,7,7,0,0,3750,662,1,0,0,0,3751,3752,7,9,0,0,3752,3753,7,10,0,0,3753,3754,7,16,0,0,3754,664,1,0,0,0,3755,3756,7,9,0,0,3756,3757,7,20,0,0,3757,3758,7,5,0,0,3758,3759,7,13,0,0,3759,3760,7,10,0,0,3760,666,1,0,0,0,3761,3762,7,9,0,0,3762,3763,7,20,0,0,3763,3764,7,19,0,0,3764,3765,7,29,0,0,3765,668,1,0,0,0,3766,3767,7,9,0,0,3767,3768,7,17,0,0,3768,3769,7,15,0,0,3769,3770,7,24,0,0,3770,3771,7,6,0,0,3771,3772,7,10,0,0,3772,670,1,0,0,0,3773,3774,7,9,0,0,3774,3775,7,7,0,0,3775,3776,7,5,0,0,3776,3777,7,24,0,0,3777,3778,7,9,0,0,3778,3779,7,20,0,0,3779,3780,7,19,0,0,3780,3781,7,16,0,0,3781,672,1,0,0,0,3782,3783,7,9,0,0,3783,3784,7,16,0,0,3784,3785,7,5,0,0,3785,3786,7,18,0,0,3786,3787,7,6,0,0,3787,3788,7,10,0,0,3788,674,1,0,0,0,3789,3790,7,9,0,0,3790,3791,7,16,0,0,3791,3792,7,5,0,0,3792,3793,7,7,0,0,3793,3794,7,12,0,0,3794,3795,7,5,0,0,3795,3796,7,6,0,0,3796,3797,7,19,0,0,3797,3798,7,7,0,0,3798,3799,7,10,0,0,3799,676,1,0,0,0,3800,3801,7,9,0,0,3801,3802,7,16,0,0,3802,3803,7,5,0,0,3803,3804,7,13,0,0,3804,3805,7,16,0,0,3805,678,1,0,0,0,3806,3807,7,9,0,0,3807,3808,7,16,0,0,3808,3809,7,5,0,0,3809,3810,7,16,0,0,3810,3811,7,10,0,0,3811,3812,7,15,0,0,3812,3813,7,10,0,0,3813,3814,7,7,0,0,3814,3815,7,16,0,0,3815,680,1,0,0,0,3816,3817,7,9,0,0,3817,3818,7,16,0,0,3818,3819,7,5,0,0,3819,3820,7,16,0,0,3820,3821,7,17,0,0,3821,3822,7,9,0,0,3822,3823,7,16,0,0,3823,3824,7,17,0,0,3824,3825,7,14,0,0,3825,3826,7,9,0,0,3826,682,1,0,0,0,3827,3828,7,9,0,0,3828,3829,7,16,0,0,3829,3830,7,12,0,0,3830,3831,7,17,0,0,3831,3832,7,7,0,0,3832,684,1,0,0,0,3833,3834,7,9,0,0,3834,3835,7,16,0,0,3835,3836,7,12,0,0,3836,3837,7,19,0,0,3837,3838,7,22,0,0,3838,3839,7,16,0,0,3839,686,1,0,0,0,3840,3841,7,9,0,0,3841,3842,7,16,0,0,3842,3843,7,19,0,0,3843,3844,7,13,0,0,3844,3845,7,5,0,0,3845,3846,7,23,0,0,3846,3847,7,10,0,0,3847,688,1,0,0,0,3848,3849,7,9,0,0,3849,3850,7,16,0,0,3850,3851,7,13,0,0,3851,3852,7,17,0,0,3852,3853,7,14,0,0,3853,3854,7,16,0,0,3854,690,1,0,0,0,3855,3856,7,9,0,0,3856,3857,7,16,0,0,3857,3858,7,13,0,0,3858,3859,7,17,0,0,3859,3860,7,24,0,0,3860,692,1,0,0,0,3861,3862,7,9,0,0,3862,3863,7,8,0,0,3863,3864,7,9,0,0,3864,3865,7,17,0,0,3865,3866,7,12,0,0,3866,694,1,0,0,0,3867,3868,7,9,0,0,3868,3869,7,8,0,0,3869,3870,7,9,0,0,3870,3871,7,16,0,0,3871,3872,7,10,0,0,3872,3873,7,15,0,0,3873,696,1,0,0,0,3874,3875,7,16,0,0,3875,3876,7,5,0,0,3876,3877,7,18,0,0,3877,3878,7,6,0,0,3878,3879,7,10,0,0,3879,3880,7,9,0,0,3880,698,1,0,0,0,3881,3882,7,16,0,0,3882,3883,7,5,0,0,3883,3884,7,18,0,0,3884,3885,7,6,0,0,3885,3886,7,10,0,0,3886,3887,7,9,0,0,3887,3888,7,24,0,0,3888,3889,7,5,0,0,3889,3890,7,14,0,0,3890,3891,7,10,0,0,3891,700,1,0,0,0,3892,3893,7,16,0,0,3893,3894,7,10,0,0,3894,3895,7,15,0,0,3895,3896,7,24,0,0,3896,702,1,0,0,0,3897,3898,7,16,0,0,3898,3899,7,10,0,0,3899,3900,7,15,0,0,3900,3901,7,24,0,0,3901,3902,7,6,0,0,3902,3903,7,5,0,0,3903,3904,7,16,0,0,3904,3905,7,10,0,0,3905,704,1,0,0,0,3906,3907,7,16,0,0,3907,3908,7,10,0,0,3908,3909,7,15,0,0,3909,3910,7,24,0,0,3910,3911,7,19,0,0,3911,3912,7,13,0,0,3912,3913,7,5,0,0,3913,3914,7,13,0,0,3914,3915,7,8,0,0,3915,706,1,0,0,0,3916,3917,7,16,0,0,3917,3918,7,10,0,0,3918,3919,7,26,0,0,3919,3920,7,16,0,0,3920,708,1,0,0,0,3921,3922,7,16,0,0,3922,3923,7,13,0,0,3923,3924,7,5,0,0,3924,3925,7,7,0,0,3925,3926,7,9,0,0,3926,3927,7,5,0,0,3927,3928,7,14,0,0,3928,3929,7,16,0,0,3929,3930,7,17,0,0,3930,3931,7,19,0,0,3931,3932,7,7,0,0,3932,710,1,0,0,0,3933,3934,7,16,0,0,3934,3935,7,13,0,0,3935,3936,7,17,0,0,3936,3937,7,23,0,0,3937,3938,7,23,0,0,3938,3939,7,10,0,0,3939,3940,7,13,0,0,3940,712,1,0,0,0,3941,3942,7,16,0,0,3942,3943,7,13,0,0,3943,3944,7,22,0,0,3944,3945,7,7,0,0,3945,3946,7,14,0,0,3946,3947,7,5,0,0,3947,3948,7,16,0,0,3948,3949,7,10,0,0,3949,714,1,0,0,0,3950,3951,7,16,0,0,3951,3952,7,13,0,0,3952,3953,7,22,0,0,3953,3954,7,9,0,0,3954,3955,7,16,0,0,3955,3956,7,10,0,0,3956,3957,7,12,0,0,3957,716,1,0,0,0,3958,3959,7,16,0,0,3959,3960,7,8,0,0,3960,3961,7,24,0,0,3961,3962,7,10,0,0,3962,718,1,0,0,0,3963,3964,7,16,0,0,3964,3965,7,8,0,0,3965,3966,7,24,0,0,3966,3967,7,10,0,0,3967,3968,7,9,0,0,3968,720,1,0,0,0,3969,3970,7,22,0,0,3970,3971,7,7,0,0,3971,3972,7,18,0,0,3972,3973,7,19,0,0,3973,3974,7,22,0,0,3974,3975,7,7,0,0,3975,3976,7,12,0,0,3976,3977,7,10,0,0,3977,3978,7,12,0,0,3978,722,1,0,0,0,3979,3980,7,22,0,0,3980,3981,7,7,0,0,3981,3982,7,14,0,0,3982,3983,7,19,0,0,3983,3984,7,15,0,0,3984,3985,7,15,0,0,3985,3986,7,17,0,0,3986,3987,7,16,0,0,3987,3988,7,16,0,0,3988,3989,7,10,0,0,3989,3990,7,12,0,0,3990,724,1,0,0,0,3991,3992,7,22,0,0,3992,3993,7,7,0,0,3993,3994,7,10,0,0,3994,3995,7,7,0,0,3995,3996,7,14,0,0,3996,3997,7,13,0,0,3997,3998,7,8,0,0,3998,3999,7,24,0,0,3999,4e3,7,16,0,0,4e3,4001,7,10,0,0,4001,4002,7,12,0,0,4002,726,1,0,0,0,4003,4004,7,22,0,0,4004,4005,7,7,0,0,4005,4006,7,21,0,0,4006,4007,7,7,0,0,4007,4008,7,19,0,0,4008,4009,7,29,0,0,4009,4010,7,7,0,0,4010,728,1,0,0,0,4011,4012,7,22,0,0,4012,4013,7,7,0,0,4013,4014,7,6,0,0,4014,4015,7,17,0,0,4015,4016,7,9,0,0,4016,4017,7,16,0,0,4017,4018,7,10,0,0,4018,4019,7,7,0,0,4019,730,1,0,0,0,4020,4021,7,22,0,0,4021,4022,7,7,0,0,4022,4023,7,6,0,0,4023,4024,7,19,0,0,4024,4025,7,23,0,0,4025,4026,7,23,0,0,4026,4027,7,10,0,0,4027,4028,7,12,0,0,4028,732,1,0,0,0,4029,4030,7,22,0,0,4030,4031,7,7,0,0,4031,4032,7,16,0,0,4032,4033,7,17,0,0,4033,4034,7,6,0,0,4034,734,1,0,0,0,4035,4036,7,22,0,0,4036,4037,7,24,0,0,4037,4038,7,12,0,0,4038,4039,7,5,0,0,4039,4040,7,16,0,0,4040,4041,7,10,0,0,4041,736,1,0,0,0,4042,4043,7,27,0,0,4043,4044,7,5,0,0,4044,4045,7,14,0,0,4045,4046,7,22,0,0,4046,4047,7,22,0,0,4047,4048,7,15,0,0,4048,738,1,0,0,0,4049,4050,7,27,0,0,4050,4051,7,5,0,0,4051,4052,7,6,0,0,4052,4053,7,17,0,0,4053,4054,7,12,0,0,4054,740,1,0,0,0,4055,4056,7,27,0,0,4056,4057,7,5,0,0,4057,4058,7,6,0,0,4058,4059,7,17,0,0,4059,4060,7,12,0,0,4060,4061,7,5,0,0,4061,4062,7,16,0,0,4062,4063,7,10,0,0,4063,742,1,0,0,0,4064,4065,7,27,0,0,4065,4066,7,5,0,0,4066,4067,7,6,0,0,4067,4068,7,17,0,0,4068,4069,7,12,0,0,4069,4070,7,5,0,0,4070,4071,7,16,0,0,4071,4072,7,19,0,0,4072,4073,7,13,0,0,4073,744,1,0,0,0,4074,4075,7,27,0,0,4075,4076,7,5,0,0,4076,4077,7,13,0,0,4077,4078,7,8,0,0,4078,4079,7,17,0,0,4079,4080,7,7,0,0,4080,4081,7,23,0,0,4081,746,1,0,0,0,4082,4083,7,27,0,0,4083,4084,7,10,0,0,4084,4085,7,13,0,0,4085,4086,7,9,0,0,4086,4087,7,17,0,0,4087,4088,7,19,0,0,4088,4089,7,7,0,0,4089,748,1,0,0,0,4090,4091,7,27,0,0,4091,4092,7,17,0,0,4092,4093,7,10,0,0,4093,4094,7,29,0,0,4094,750,1,0,0,0,4095,4096,7,27,0,0,4096,4097,7,19,0,0,4097,4098,7,6,0,0,4098,4099,7,5,0,0,4099,4100,7,16,0,0,4100,4101,7,17,0,0,4101,4102,7,6,0,0,4102,4103,7,10,0,0,4103,752,1,0,0,0,4104,4105,7,29,0,0,4105,4106,7,20,0,0,4106,4107,7,17,0,0,4107,4108,7,16,0,0,4108,4109,7,10,0,0,4109,4110,7,9,0,0,4110,4111,7,24,0,0,4111,4112,7,5,0,0,4112,4113,7,14,0,0,4113,4114,7,10,0,0,4114,754,1,0,0,0,4115,4116,7,29,0,0,4116,4117,7,17,0,0,4117,4118,7,16,0,0,4118,4119,7,20,0,0,4119,4120,7,19,0,0,4120,4121,7,22,0,0,4121,4122,7,16,0,0,4122,756,1,0,0,0,4123,4124,7,29,0,0,4124,4125,7,19,0,0,4125,4126,7,13,0,0,4126,4127,7,21,0,0,4127,758,1,0,0,0,4128,4129,7,29,0,0,4129,4130,7,13,0,0,4130,4131,7,5,0,0,4131,4132,7,24,0,0,4132,4133,7,24,0,0,4133,4134,7,10,0,0,4134,4135,7,13,0,0,4135,760,1,0,0,0,4136,4137,7,29,0,0,4137,4138,7,13,0,0,4138,4139,7,17,0,0,4139,4140,7,16,0,0,4140,4141,7,10,0,0,4141,762,1,0,0,0,4142,4143,7,26,0,0,4143,4144,7,15,0,0,4144,4145,7,6,0,0,4145,764,1,0,0,0,4146,4147,7,8,0,0,4147,4148,7,10,0,0,4148,4149,7,5,0,0,4149,4150,7,13,0,0,4150,766,1,0,0,0,4151,4152,7,8,0,0,4152,4153,7,10,0,0,4153,4154,7,9,0,0,4154,768,1,0,0,0,4155,4156,7,11,0,0,4156,4157,7,19,0,0,4157,4158,7,7,0,0,4158,4159,7,10,0,0,4159,770,1,0,0,0,4160,4161,7,18,0,0,4161,4162,7,10,0,0,4162,4163,7,16,0,0,4163,4164,7,29,0,0,4164,4165,7,10,0,0,4165,4166,7,10,0,0,4166,4167,7,7,0,0,4167,772,1,0,0,0,4168,4169,7,18,0,0,4169,4170,7,17,0,0,4170,4171,7,23,0,0,4171,4172,7,17,0,0,4172,4173,7,7,0,0,4173,4174,7,16,0,0,4174,774,1,0,0,0,4175,4176,7,18,0,0,4176,4177,7,17,0,0,4177,4178,7,16,0,0,4178,776,1,0,0,0,4179,4180,7,18,0,0,4180,4181,7,19,0,0,4181,4182,7,19,0,0,4182,4183,7,6,0,0,4183,4184,7,10,0,0,4184,4185,7,5,0,0,4185,4186,7,7,0,0,4186,778,1,0,0,0,4187,4188,7,14,0,0,4188,4189,7,20,0,0,4189,4190,7,5,0,0,4190,4191,7,13,0,0,4191,780,1,0,0,0,4192,4193,7,14,0,0,4193,4194,7,20,0,0,4194,4195,7,5,0,0,4195,4196,7,13,0,0,4196,4197,7,5,0,0,4197,4198,7,14,0,0,4198,4199,7,16,0,0,4199,4200,7,10,0,0,4200,4201,7,13,0,0,4201,782,1,0,0,0,4202,4203,7,14,0,0,4203,4204,7,19,0,0,4204,4205,7,5,0,0,4205,4206,7,6,0,0,4206,4207,7,10,0,0,4207,4208,7,9,0,0,4208,4209,7,14,0,0,4209,4210,7,10,0,0,4210,784,1,0,0,0,4211,4212,7,12,0,0,4212,4213,7,10,0,0,4213,4214,7,14,0,0,4214,786,1,0,0,0,4215,4216,7,12,0,0,4216,4217,7,10,0,0,4217,4218,7,14,0,0,4218,4219,7,17,0,0,4219,4220,7,15,0,0,4220,4221,7,5,0,0,4221,4222,7,6,0,0,4222,788,1,0,0,0,4223,4224,7,10,0,0,4224,4225,7,26,0,0,4225,4226,7,17,0,0,4226,4227,7,9,0,0,4227,4228,7,16,0,0,4228,4229,7,9,0,0,4229,790,1,0,0,0,4230,4231,7,10,0,0,4231,4232,7,26,0,0,4232,4233,7,16,0,0,4233,4234,7,13,0,0,4234,4235,7,5,0,0,4235,4236,7,14,0,0,4236,4237,7,16,0,0,4237,792,1,0,0,0,4238,4239,7,25,0,0,4239,4240,7,6,0,0,4240,4241,7,19,0,0,4241,4242,7,5,0,0,4242,4243,7,16,0,0,4243,794,1,0,0,0,4244,4245,7,23,0,0,4245,4246,7,13,0,0,4246,4247,7,10,0,0,4247,4248,7,5,0,0,4248,4249,7,16,0,0,4249,4250,7,10,0,0,4250,4251,7,9,0,0,4251,4252,7,16,0,0,4252,796,1,0,0,0,4253,4254,7,17,0,0,4254,4255,7,7,0,0,4255,4256,7,19,0,0,4256,4257,7,22,0,0,4257,4258,7,16,0,0,4258,798,1,0,0,0,4259,4260,7,17,0,0,4260,4261,7,7,0,0,4261,4262,7,16,0,0,4262,800,1,0,0,0,4263,4264,7,17,0,0,4264,4265,7,7,0,0,4265,4266,7,16,0,0,4266,4267,7,10,0,0,4267,4268,7,23,0,0,4268,4269,7,10,0,0,4269,4270,7,13,0,0,4270,802,1,0,0,0,4271,4272,7,17,0,0,4272,4273,7,7,0,0,4273,4274,7,16,0,0,4274,4275,7,10,0,0,4275,4276,7,13,0,0,4276,4277,7,27,0,0,4277,4278,7,5,0,0,4278,4279,7,6,0,0,4279,804,1,0,0,0,4280,4281,7,6,0,0,4281,4282,7,10,0,0,4282,4283,7,5,0,0,4283,4284,7,9,0,0,4284,4285,7,16,0,0,4285,806,1,0,0,0,4286,4287,7,7,0,0,4287,4288,7,5,0,0,4288,4289,7,16,0,0,4289,4290,7,17,0,0,4290,4291,7,19,0,0,4291,4292,7,7,0,0,4292,4293,7,5,0,0,4293,4294,7,6,0,0,4294,808,1,0,0,0,4295,4296,7,7,0,0,4296,4297,7,14,0,0,4297,4298,7,20,0,0,4298,4299,7,5,0,0,4299,4300,7,13,0,0,4300,810,1,0,0,0,4301,4302,7,7,0,0,4302,4303,7,19,0,0,4303,4304,7,7,0,0,4304,4305,7,10,0,0,4305,812,1,0,0,0,4306,4307,7,7,0,0,4307,4308,7,22,0,0,4308,4309,7,6,0,0,4309,4310,7,6,0,0,4310,4311,7,17,0,0,4311,4312,7,25,0,0,4312,814,1,0,0,0,4313,4314,7,7,0,0,4314,4315,7,22,0,0,4315,4316,7,15,0,0,4316,4317,7,10,0,0,4317,4318,7,13,0,0,4318,4319,7,17,0,0,4319,4320,7,14,0,0,4320,816,1,0,0,0,4321,4322,7,19,0,0,4322,4323,7,27,0,0,4323,4324,7,10,0,0,4324,4325,7,13,0,0,4325,4326,7,6,0,0,4326,4327,7,5,0,0,4327,4328,7,8,0,0,4328,818,1,0,0,0,4329,4330,7,24,0,0,4330,4331,7,19,0,0,4331,4332,7,9,0,0,4332,4333,7,17,0,0,4333,4334,7,16,0,0,4334,4335,7,17,0,0,4335,4336,7,19,0,0,4336,4337,7,7,0,0,4337,820,1,0,0,0,4338,4339,7,24,0,0,4339,4340,7,13,0,0,4340,4341,7,10,0,0,4341,4342,7,14,0,0,4342,4343,7,17,0,0,4343,4344,7,9,0,0,4344,4345,7,17,0,0,4345,4346,7,19,0,0,4346,4347,7,7,0,0,4347,822,1,0,0,0,4348,4349,7,13,0,0,4349,4350,7,10,0,0,4350,4351,7,5,0,0,4351,4352,7,6,0,0,4352,824,1,0,0,0,4353,4354,7,13,0,0,4354,4355,7,19,0,0,4355,4356,7,29,0,0,4356,826,1,0,0,0,4357,4358,7,9,0,0,4358,4359,7,10,0,0,4359,4360,7,16,0,0,4360,4361,7,19,0,0,4361,4362,7,25,0,0,4362,828,1,0,0,0,4363,4364,7,9,0,0,4364,4365,7,15,0,0,4365,4366,7,5,0,0,4366,4367,7,6,0,0,4367,4368,7,6,0,0,4368,4369,7,17,0,0,4369,4370,7,7,0,0,4370,4371,7,16,0,0,4371,830,1,0,0,0,4372,4373,7,9,0,0,4373,4374,7,22,0,0,4374,4375,7,18,0,0,4375,4376,7,9,0,0,4376,4377,7,16,0,0,4377,4378,7,13,0,0,4378,4379,7,17,0,0,4379,4380,7,7,0,0,4380,4381,7,23,0,0,4381,832,1,0,0,0,4382,4383,7,16,0,0,4383,4384,7,17,0,0,4384,4385,7,15,0,0,4385,4386,7,10,0,0,4386,834,1,0,0,0,4387,4388,7,16,0,0,4388,4389,7,17,0,0,4389,4390,7,15,0,0,4390,4391,7,10,0,0,4391,4392,7,9,0,0,4392,4393,7,16,0,0,4393,4394,7,5,0,0,4394,4395,7,15,0,0,4395,4396,7,24,0,0,4396,836,1,0,0,0,4397,4398,7,16,0,0,4398,4399,7,13,0,0,4399,4400,7,10,0,0,4400,4401,7,5,0,0,4401,4402,7,16,0,0,4402,838,1,0,0,0,4403,4404,7,16,0,0,4404,4405,7,13,0,0,4405,4406,7,17,0,0,4406,4407,7,15,0,0,4407,840,1,0,0,0,4408,4409,7,27,0,0,4409,4410,7,5,0,0,4410,4411,7,6,0,0,4411,4412,7,22,0,0,4412,4413,7,10,0,0,4413,4414,7,9,0,0,4414,842,1,0,0,0,4415,4416,7,27,0,0,4416,4417,7,5,0,0,4417,4418,7,13,0,0,4418,4419,7,14,0,0,4419,4420,7,20,0,0,4420,4421,7,5,0,0,4421,4422,7,13,0,0,4422,844,1,0,0,0,4423,4424,7,26,0,0,4424,4425,7,15,0,0,4425,4426,7,6,0,0,4426,4427,7,5,0,0,4427,4428,7,16,0,0,4428,4429,7,16,0,0,4429,4430,7,13,0,0,4430,4431,7,17,0,0,4431,4432,7,18,0,0,4432,4433,7,22,0,0,4433,4434,7,16,0,0,4434,4435,7,10,0,0,4435,4436,7,9,0,0,4436,846,1,0,0,0,4437,4438,7,26,0,0,4438,4439,7,15,0,0,4439,4440,7,6,0,0,4440,4441,7,14,0,0,4441,4442,7,19,0,0,4442,4443,7,15,0,0,4443,4444,7,15,0,0,4444,4445,7,10,0,0,4445,4446,7,7,0,0,4446,4447,7,16,0,0,4447,848,1,0,0,0,4448,4449,7,26,0,0,4449,4450,7,15,0,0,4450,4451,7,6,0,0,4451,4452,7,5,0,0,4452,4453,7,23,0,0,4453,4454,7,23,0,0,4454,850,1,0,0,0,4455,4456,7,26,0,0,4456,4457,7,15,0,0,4457,4458,7,6,0,0,4458,4459,5,95,0,0,4459,4460,7,17,0,0,4460,4461,7,9,0,0,4461,4462,5,95,0,0,4462,4463,7,29,0,0,4463,4464,7,10,0,0,4464,4465,7,6,0,0,4465,4466,7,6,0,0,4466,4467,5,95,0,0,4467,4468,7,25,0,0,4468,4469,7,19,0,0,4469,4470,7,13,0,0,4470,4471,7,15,0,0,4471,4472,7,10,0,0,4472,4473,7,12,0,0,4473,852,1,0,0,0,4474,4475,7,26,0,0,4475,4476,7,15,0,0,4476,4477,7,6,0,0,4477,4478,5,95,0,0,4478,4479,7,17,0,0,4479,4480,7,9,0,0,4480,4481,5,95,0,0,4481,4482,7,29,0,0,4482,4483,7,10,0,0,4483,4484,7,6,0,0,4484,4485,7,6,0,0,4485,4486,5,95,0,0,4486,4487,7,25,0,0,4487,4488,7,19,0,0,4488,4489,7,13,0,0,4489,4490,7,15,0,0,4490,4491,7,10,0,0,4491,4492,7,12,0,0,4492,4493,5,95,0,0,4493,4494,7,12,0,0,4494,4495,7,19,0,0,4495,4496,7,14,0,0,4496,4497,7,22,0,0,4497,4498,7,15,0,0,4498,4499,7,10,0,0,4499,4500,7,7,0,0,4500,4501,7,16,0,0,4501,854,1,0,0,0,4502,4503,7,26,0,0,4503,4504,7,15,0,0,4504,4505,7,6,0,0,4505,4506,5,95,0,0,4506,4507,7,17,0,0,4507,4508,7,9,0,0,4508,4509,5,95,0,0,4509,4510,7,29,0,0,4510,4511,7,10,0,0,4511,4512,7,6,0,0,4512,4513,7,6,0,0,4513,4514,5,95,0,0,4514,4515,7,25,0,0,4515,4516,7,19,0,0,4516,4517,7,13,0,0,4517,4518,7,15,0,0,4518,4519,7,10,0,0,4519,4520,7,12,0,0,4520,4521,5,95,0,0,4521,4522,7,14,0,0,4522,4523,7,19,0,0,4523,4524,7,7,0,0,4524,4525,7,16,0,0,4525,4526,7,10,0,0,4526,4527,7,7,0,0,4527,4528,7,16,0,0,4528,856,1,0,0,0,4529,4530,7,26,0,0,4530,4531,7,24,0,0,4531,4532,7,5,0,0,4532,4533,7,16,0,0,4533,4534,7,20,0,0,4534,858,1,0,0,0,4535,4536,7,26,0,0,4536,4537,7,24,0,0,4537,4538,7,5,0,0,4538,4539,7,16,0,0,4539,4540,7,20,0,0,4540,4541,5,95,0,0,4541,4542,7,10,0,0,4542,4543,7,26,0,0,4543,4544,7,17,0,0,4544,4545,7,9,0,0,4545,4546,7,16,0,0,4546,4547,7,9,0,0,4547,860,1,0,0,0,4548,4549,7,26,0,0,4549,4550,7,15,0,0,4550,4551,7,6,0,0,4551,4552,7,14,0,0,4552,4553,7,19,0,0,4553,4554,7,7,0,0,4554,4555,7,14,0,0,4555,4556,7,5,0,0,4556,4557,7,16,0,0,4557,862,1,0,0,0,4558,4559,7,26,0,0,4559,4560,7,15,0,0,4560,4561,7,6,0,0,4561,4562,7,10,0,0,4562,4563,7,6,0,0,4563,4564,7,10,0,0,4564,4565,7,15,0,0,4565,4566,7,10,0,0,4566,4567,7,7,0,0,4567,4568,7,16,0,0,4568,864,1,0,0,0,4569,4570,7,26,0,0,4570,4571,7,15,0,0,4571,4572,7,6,0,0,4572,4573,7,10,0,0,4573,4574,7,26,0,0,4574,4575,7,17,0,0,4575,4576,7,9,0,0,4576,4577,7,16,0,0,4577,4578,7,9,0,0,4578,866,1,0,0,0,4579,4580,7,26,0,0,4580,4581,7,15,0,0,4581,4582,7,6,0,0,4582,4583,7,25,0,0,4583,4584,7,19,0,0,4584,4585,7,13,0,0,4585,4586,7,10,0,0,4586,4587,7,9,0,0,4587,4588,7,16,0,0,4588,868,1,0,0,0,4589,4590,7,26,0,0,4590,4591,7,15,0,0,4591,4592,7,6,0,0,4592,4593,7,24,0,0,4593,4594,7,5,0,0,4594,4595,7,13,0,0,4595,4596,7,9,0,0,4596,4597,7,10,0,0,4597,870,1,0,0,0,4598,4599,7,26,0,0,4599,4600,7,15,0,0,4600,4601,7,6,0,0,4601,4602,7,24,0,0,4602,4603,7,17,0,0,4603,872,1,0,0,0,4604,4605,7,26,0,0,4605,4606,7,15,0,0,4606,4607,7,6,0,0,4607,4608,7,13,0,0,4608,4609,7,19,0,0,4609,4610,7,19,0,0,4610,4611,7,16,0,0,4611,874,1,0,0,0,4612,4613,7,26,0,0,4613,4614,7,15,0,0,4614,4615,7,6,0,0,4615,4616,7,9,0,0,4616,4617,7,10,0,0,4617,4618,7,13,0,0,4618,4619,7,17,0,0,4619,4620,7,5,0,0,4620,4621,7,6,0,0,4621,4622,7,17,0,0,4622,4623,7,11,0,0,4623,4624,7,10,0,0,4624,876,1,0,0,0,4625,4626,7,14,0,0,4626,4627,7,5,0,0,4627,4628,7,6,0,0,4628,4629,7,6,0,0,4629,878,1,0,0,0,4630,4631,7,14,0,0,4631,4632,7,22,0,0,4632,4633,7,13,0,0,4633,4634,7,13,0,0,4634,4635,7,10,0,0,4635,4636,7,7,0,0,4636,4637,7,16,0,0,4637,880,1,0,0,0,4638,4639,7,5,0,0,4639,4640,7,16,0,0,4640,4641,7,16,0,0,4641,4642,7,5,0,0,4642,4643,7,14,0,0,4643,4644,7,20,0,0,4644,882,1,0,0,0,4645,4646,7,12,0,0,4646,4647,7,10,0,0,4647,4648,7,16,0,0,4648,4649,7,5,0,0,4649,4650,7,14,0,0,4650,4651,7,20,0,0,4651,884,1,0,0,0,4652,4653,7,10,0,0,4653,4654,7,26,0,0,4654,4655,7,24,0,0,4655,4656,7,13,0,0,4656,4657,7,10,0,0,4657,4658,7,9,0,0,4658,4659,7,9,0,0,4659,4660,7,17,0,0,4660,4661,7,19,0,0,4661,4662,7,7,0,0,4662,886,1,0,0,0,4663,4664,7,23,0,0,4664,4665,7,10,0,0,4665,4666,7,7,0,0,4666,4667,7,10,0,0,4667,4668,7,13,0,0,4668,4669,7,5,0,0,4669,4670,7,16,0,0,4670,4671,7,10,0,0,4671,4672,7,12,0,0,4672,888,1,0,0,0,4673,4674,7,6,0,0,4674,4675,7,19,0,0,4675,4676,7,23,0,0,4676,4677,7,23,0,0,4677,4678,7,10,0,0,4678,4679,7,12,0,0,4679,890,1,0,0,0,4680,4681,7,9,0,0,4681,4682,7,16,0,0,4682,4683,7,19,0,0,4683,4684,7,13,0,0,4684,4685,7,10,0,0,4685,4686,7,12,0,0,4686,892,1,0,0,0,4687,4688,7,17,0,0,4688,4689,7,7,0,0,4689,4690,7,14,0,0,4690,4691,7,6,0,0,4691,4692,7,22,0,0,4692,4693,7,12,0,0,4693,4694,7,10,0,0,4694,894,1,0,0,0,4695,4696,7,13,0,0,4696,4697,7,19,0,0,4697,4698,7,22,0,0,4698,4699,7,16,0,0,4699,4700,7,17,0,0,4700,4701,7,7,0,0,4701,4702,7,10,0,0,4702,896,1,0,0,0,4703,4704,7,16,0,0,4704,4705,7,13,0,0,4705,4706,7,5,0,0,4706,4707,7,7,0,0,4707,4708,7,9,0,0,4708,4709,7,25,0,0,4709,4710,7,19,0,0,4710,4711,7,13,0,0,4711,4712,7,15,0,0,4712,898,1,0,0,0,4713,4714,7,17,0,0,4714,4715,7,15,0,0,4715,4716,7,24,0,0,4716,4717,7,19,0,0,4717,4718,7,13,0,0,4718,4719,7,16,0,0,4719,900,1,0,0,0,4720,4721,7,24,0,0,4721,4722,7,19,0,0,4722,4723,7,6,0,0,4723,4724,7,17,0,0,4724,4725,7,14,0,0,4725,4726,7,8,0,0,4726,902,1,0,0,0,4727,4728,7,15,0,0,4728,4729,7,10,0,0,4729,4730,7,16,0,0,4730,4731,7,20,0,0,4731,4732,7,19,0,0,4732,4733,7,12,0,0,4733,904,1,0,0,0,4734,4735,7,13,0,0,4735,4736,7,10,0,0,4736,4737,7,25,0,0,4737,4738,7,10,0,0,4738,4739,7,13,0,0,4739,4740,7,10,0,0,4740,4741,7,7,0,0,4741,4742,7,14,0,0,4742,4743,7,17,0,0,4743,4744,7,7,0,0,4744,4745,7,23,0,0,4745,906,1,0,0,0,4746,4747,7,7,0,0,4747,4748,7,10,0,0,4748,4749,7,29,0,0,4749,908,1,0,0,0,4750,4751,7,19,0,0,4751,4752,7,6,0,0,4752,4753,7,12,0,0,4753,910,1,0,0,0,4754,4755,7,27,0,0,4755,4756,7,5,0,0,4756,4757,7,6,0,0,4757,4758,7,22,0,0,4758,4759,7,10,0,0,4759,912,1,0,0,0,4760,4761,7,9,0,0,4761,4762,7,22,0,0,4762,4763,7,18,0,0,4763,4764,7,9,0,0,4764,4765,7,14,0,0,4765,4766,7,13,0,0,4766,4767,7,17,0,0,4767,4768,7,24,0,0,4768,4769,7,16,0,0,4769,4770,7,17,0,0,4770,4771,7,19,0,0,4771,4772,7,7,0,0,4772,914,1,0,0,0,4773,4774,7,24,0,0,4774,4775,7,22,0,0,4775,4776,7,18,0,0,4776,4777,7,6,0,0,4777,4778,7,17,0,0,4778,4779,7,14,0,0,4779,4780,7,5,0,0,4780,4781,7,16,0,0,4781,4782,7,17,0,0,4782,4783,7,19,0,0,4783,4784,7,7,0,0,4784,916,1,0,0,0,4785,4786,7,19,0,0,4786,4787,7,22,0,0,4787,4788,7,16,0,0,4788,918,1,0,0,0,4789,4790,7,10,0,0,4790,4791,7,7,0,0,4791,4792,7,12,0,0,4792,920,1,0,0,0,4793,4794,7,13,0,0,4794,4795,7,19,0,0,4795,4796,7,22,0,0,4796,4797,7,16,0,0,4797,4798,7,17,0,0,4798,4799,7,7,0,0,4799,4800,7,10,0,0,4800,4801,7,9,0,0,4801,922,1,0,0,0,4802,4803,7,9,0,0,4803,4804,7,14,0,0,4804,4805,7,20,0,0,4805,4806,7,10,0,0,4806,4807,7,15,0,0,4807,4808,7,5,0,0,4808,4809,7,9,0,0,4809,924,1,0,0,0,4810,4811,7,24,0,0,4811,4812,7,13,0,0,4812,4813,7,19,0,0,4813,4814,7,14,0,0,4814,4815,7,10,0,0,4815,4816,7,12,0,0,4816,4817,7,22,0,0,4817,4818,7,13,0,0,4818,4819,7,10,0,0,4819,4820,7,9,0,0,4820,926,1,0,0,0,4821,4822,7,17,0,0,4822,4823,7,7,0,0,4823,4824,7,24,0,0,4824,4825,7,22,0,0,4825,4826,7,16,0,0,4826,928,1,0,0,0,4827,4828,7,9,0,0,4828,4829,7,22,0,0,4829,4830,7,24,0,0,4830,4831,7,24,0,0,4831,4832,7,19,0,0,4832,4833,7,13,0,0,4833,4834,7,16,0,0,4834,930,1,0,0,0,4835,4836,7,24,0,0,4836,4837,7,5,0,0,4837,4838,7,13,0,0,4838,4839,7,5,0,0,4839,4840,7,6,0,0,4840,4841,7,6,0,0,4841,4842,7,10,0,0,4842,4843,7,6,0,0,4843,932,1,0,0,0,4844,4845,7,9,0,0,4845,4846,7,28,0,0,4846,4847,7,6,0,0,4847,934,1,0,0,0,4848,4849,7,12,0,0,4849,4850,7,10,0,0,4850,4851,7,24,0,0,4851,4852,7,10,0,0,4852,4853,7,7,0,0,4853,4854,7,12,0,0,4854,4855,7,9,0,0,4855,936,1,0,0,0,4856,4857,7,19,0,0,4857,4858,7,27,0,0,4858,4859,7,10,0,0,4859,4860,7,13,0,0,4860,4861,7,13,0,0,4861,4862,7,17,0,0,4862,4863,7,12,0,0,4863,4864,7,17,0,0,4864,4865,7,7,0,0,4865,4866,7,23,0,0,4866,938,1,0,0,0,4867,4868,7,14,0,0,4868,4869,7,19,0,0,4869,4870,7,7,0,0,4870,4871,7,25,0,0,4871,4872,7,6,0,0,4872,4873,7,17,0,0,4873,4874,7,14,0,0,4874,4875,7,16,0,0,4875,940,1,0,0,0,4876,4877,7,9,0,0,4877,4878,7,21,0,0,4878,4879,7,17,0,0,4879,4880,7,24,0,0,4880,942,1,0,0,0,4881,4882,7,6,0,0,4882,4883,7,19,0,0,4883,4884,7,14,0,0,4884,4885,7,21,0,0,4885,4886,7,10,0,0,4886,4887,7,12,0,0,4887,944,1,0,0,0,4888,4889,7,16,0,0,4889,4890,7,17,0,0,4890,4891,7,10,0,0,4891,4892,7,9,0,0,4892,946,1,0,0,0,4893,4894,7,13,0,0,4894,4895,7,19,0,0,4895,4896,7,6,0,0,4896,4897,7,6,0,0,4897,4898,7,22,0,0,4898,4899,7,24,0,0,4899,948,1,0,0,0,4900,4901,7,14,0,0,4901,4902,7,22,0,0,4902,4903,7,18,0,0,4903,4904,7,10,0,0,4904,950,1,0,0,0,4905,4906,7,23,0,0,4906,4907,7,13,0,0,4907,4908,7,19,0,0,4908,4909,7,22,0,0,4909,4910,7,24,0,0,4910,4911,7,17,0,0,4911,4912,7,7,0,0,4912,4913,7,23,0,0,4913,952,1,0,0,0,4914,4915,7,9,0,0,4915,4916,7,10,0,0,4916,4917,7,16,0,0,4917,4918,7,9,0,0,4918,954,1,0,0,0,4919,4920,7,16,0,0,4920,4921,7,5,0,0,4921,4922,7,18,0,0,4922,4923,7,6,0,0,4923,4924,7,10,0,0,4924,4925,7,9,0,0,4925,4926,7,5,0,0,4926,4927,7,15,0,0,4927,4928,7,24,0,0,4928,4929,7,6,0,0,4929,4930,7,10,0,0,4930,956,1,0,0,0,4931,4932,7,19,0,0,4932,4933,7,13,0,0,4933,4934,7,12,0,0,4934,4935,7,17,0,0,4935,4936,7,7,0,0,4936,4937,7,5,0,0,4937,4938,7,6,0,0,4938,4939,7,17,0,0,4939,4940,7,16,0,0,4940,4941,7,8,0,0,4941,958,1,0,0,0,4942,4943,7,26,0,0,4943,4944,7,15,0,0,4944,4945,7,6,0,0,4945,4946,7,16,0,0,4946,4947,7,5,0,0,4947,4948,7,18,0,0,4948,4949,7,6,0,0,4949,4950,7,10,0,0,4950,960,1,0,0,0,4951,4952,7,14,0,0,4952,4953,7,19,0,0,4953,4954,7,6,0,0,4954,4955,7,22,0,0,4955,4956,7,15,0,0,4956,4957,7,7,0,0,4957,4958,7,9,0,0,4958,962,1,0,0,0,4959,4960,7,26,0,0,4960,4961,7,15,0,0,4961,4962,7,6,0,0,4962,4963,7,7,0,0,4963,4964,7,5,0,0,4964,4965,7,15,0,0,4965,4966,7,10,0,0,4966,4967,7,9,0,0,4967,4968,7,24,0,0,4968,4969,7,5,0,0,4969,4970,7,14,0,0,4970,4971,7,10,0,0,4971,4972,7,9,0,0,4972,964,1,0,0,0,4973,4974,7,13,0,0,4974,4975,7,19,0,0,4975,4976,7,29,0,0,4976,4977,7,16,0,0,4977,4978,7,8,0,0,4978,4979,7,24,0,0,4979,4980,7,10,0,0,4980,966,1,0,0,0,4981,4982,7,7,0,0,4982,4983,7,19,0,0,4983,4984,7,13,0,0,4984,4985,7,15,0,0,4985,4986,7,5,0,0,4986,4987,7,6,0,0,4987,4988,7,17,0,0,4988,4989,7,11,0,0,4989,4990,7,10,0,0,4990,4991,7,12,0,0,4991,968,1,0,0,0,4992,4993,7,29,0,0,4993,4994,7,17,0,0,4994,4995,7,16,0,0,4995,4996,7,20,0,0,4996,4997,7,17,0,0,4997,4998,7,7,0,0,4998,970,1,0,0,0,4999,5e3,7,25,0,0,5e3,5001,7,17,0,0,5001,5002,7,6,0,0,5002,5003,7,16,0,0,5003,5004,7,10,0,0,5004,5005,7,13,0,0,5005,972,1,0,0,0,5006,5007,7,23,0,0,5007,5008,7,13,0,0,5008,5009,7,19,0,0,5009,5010,7,22,0,0,5010,5011,7,24,0,0,5011,5012,7,9,0,0,5012,974,1,0,0,0,5013,5014,7,19,0,0,5014,5015,7,16,0,0,5015,5016,7,20,0,0,5016,5017,7,10,0,0,5017,5018,7,13,0,0,5018,5019,7,9,0,0,5019,976,1,0,0,0,5020,5021,7,7,0,0,5021,5022,7,25,0,0,5022,5023,7,14,0,0,5023,978,1,0,0,0,5024,5025,7,7,0,0,5025,5026,7,25,0,0,5026,5027,7,12,0,0,5027,980,1,0,0,0,5028,5029,7,7,0,0,5029,5030,7,25,0,0,5030,5031,7,21,0,0,5031,5032,7,14,0,0,5032,982,1,0,0,0,5033,5034,7,7,0,0,5034,5035,7,25,0,0,5035,5036,7,21,0,0,5036,5037,7,12,0,0,5037,984,1,0,0,0,5038,5039,7,22,0,0,5039,5040,7,10,0,0,5040,5041,7,9,0,0,5041,5042,7,14,0,0,5042,5043,7,5,0,0,5043,5044,7,24,0,0,5044,5045,7,10,0,0,5045,986,1,0,0,0,5046,5047,7,27,0,0,5047,5048,7,17,0,0,5048,5049,7,10,0,0,5049,5050,7,29,0,0,5050,5051,7,9,0,0,5051,988,1,0,0,0,5052,5053,7,7,0,0,5053,5054,7,19,0,0,5054,5055,7,13,0,0,5055,5056,7,15,0,0,5056,5057,7,5,0,0,5057,5058,7,6,0,0,5058,5059,7,17,0,0,5059,5060,7,11,0,0,5060,5061,7,10,0,0,5061,990,1,0,0,0,5062,5063,7,12,0,0,5063,5064,7,22,0,0,5064,5065,7,15,0,0,5065,5066,7,24,0,0,5066,992,1,0,0,0,5067,5068,7,24,0,0,5068,5069,7,13,0,0,5069,5070,7,17,0,0,5070,5071,7,7,0,0,5071,5072,7,16,0,0,5072,5073,5,95,0,0,5073,5074,7,9,0,0,5074,5075,7,16,0,0,5075,5076,7,13,0,0,5076,5077,7,17,0,0,5077,5078,7,14,0,0,5078,5079,7,16,0,0,5079,5080,5,95,0,0,5080,5081,7,24,0,0,5081,5082,7,5,0,0,5082,5083,7,13,0,0,5083,5084,7,5,0,0,5084,5085,7,15,0,0,5085,5086,7,9,0,0,5086,994,1,0,0,0,5087,5088,7,27,0,0,5088,5089,7,5,0,0,5089,5090,7,13,0,0,5090,5091,7,17,0,0,5091,5092,7,5,0,0,5092,5093,7,18,0,0,5093,5094,7,6,0,0,5094,5095,7,10,0,0,5095,5096,5,95,0,0,5096,5097,7,14,0,0,5097,5098,7,19,0,0,5098,5099,7,7,0,0,5099,5100,7,25,0,0,5100,5101,7,6,0,0,5101,5102,7,17,0,0,5102,5103,7,14,0,0,5103,5104,7,16,0,0,5104,996,1,0,0,0,5105,5106,7,10,0,0,5106,5107,7,13,0,0,5107,5108,7,13,0,0,5108,5109,7,19,0,0,5109,5110,7,13,0,0,5110,998,1,0,0,0,5111,5112,7,22,0,0,5112,5113,7,9,0,0,5113,5114,7,10,0,0,5114,5115,5,95,0,0,5115,5116,7,27,0,0,5116,5117,7,5,0,0,5117,5118,7,13,0,0,5118,5119,7,17,0,0,5119,5120,7,5,0,0,5120,5121,7,18,0,0,5121,5122,7,6,0,0,5122,5123,7,10,0,0,5123,1e3,1,0,0,0,5124,5125,7,22,0,0,5125,5126,7,9,0,0,5126,5127,7,10,0,0,5127,5128,5,95,0,0,5128,5129,7,14,0,0,5129,5130,7,19,0,0,5130,5131,7,6,0,0,5131,5132,7,22,0,0,5132,5133,7,15,0,0,5133,5134,7,7,0,0,5134,1002,1,0,0,0,5135,5136,7,5,0,0,5136,5137,7,6,0,0,5137,5138,7,17,0,0,5138,5139,7,5,0,0,5139,5140,7,9,0,0,5140,1004,1,0,0,0,5141,5142,7,14,0,0,5142,5143,7,19,0,0,5143,5144,7,7,0,0,5144,5145,7,9,0,0,5145,5146,7,16,0,0,5146,5147,7,5,0,0,5147,5148,7,7,0,0,5148,5149,7,16,0,0,5149,1006,1,0,0,0,5150,5151,7,24,0,0,5151,5152,7,10,0,0,5152,5153,7,13,0,0,5153,5154,7,25,0,0,5154,5155,7,19,0,0,5155,5156,7,13,0,0,5156,5157,7,15,0,0,5157,1008,1,0,0,0,5158,5159,7,23,0,0,5159,5160,7,10,0,0,5160,5161,7,16,0,0,5161,1010,1,0,0,0,5162,5163,7,12,0,0,5163,5164,7,17,0,0,5164,5165,7,5,0,0,5165,5166,7,23,0,0,5166,5167,7,7,0,0,5167,5168,7,19,0,0,5168,5169,7,9,0,0,5169,5170,7,16,0,0,5170,5171,7,17,0,0,5171,5172,7,14,0,0,5172,5173,7,9,0,0,5173,1012,1,0,0,0,5174,5175,7,9,0,0,5175,5176,7,16,0,0,5176,5177,7,5,0,0,5177,5178,7,14,0,0,5178,5179,7,21,0,0,5179,5180,7,10,0,0,5180,5181,7,12,0,0,5181,1014,1,0,0,0,5182,5183,7,10,0,0,5183,5184,7,6,0,0,5184,5185,7,9,0,0,5185,5186,7,17,0,0,5186,5187,7,25,0,0,5187,1016,1,0,0,0,5188,5189,7,29,0,0,5189,5190,7,20,0,0,5190,5191,7,17,0,0,5191,5192,7,6,0,0,5192,5193,7,10,0,0,5193,1018,1,0,0,0,5194,5195,7,13,0,0,5195,5196,7,10,0,0,5196,5197,7,27,0,0,5197,5198,7,10,0,0,5198,5199,7,13,0,0,5199,5200,7,9,0,0,5200,5201,7,10,0,0,5201,1020,1,0,0,0,5202,5203,7,25,0,0,5203,5204,7,19,0,0,5204,5205,7,13,0,0,5205,5206,7,10,0,0,5206,5207,7,5,0,0,5207,5208,7,14,0,0,5208,5209,7,20,0,0,5209,1022,1,0,0,0,5210,5211,7,9,0,0,5211,5212,7,6,0,0,5212,5213,7,17,0,0,5213,5214,7,14,0,0,5214,5215,7,10,0,0,5215,1024,1,0,0,0,5216,5217,7,10,0,0,5217,5218,7,26,0,0,5218,5219,7,17,0,0,5219,5220,7,16,0,0,5220,1026,1,0,0,0,5221,5222,7,13,0,0,5222,5223,7,10,0,0,5223,5224,7,16,0,0,5224,5225,7,22,0,0,5225,5226,7,13,0,0,5226,5227,7,7,0,0,5227,1028,1,0,0,0,5228,5229,7,28,0,0,5229,5230,7,22,0,0,5230,5231,7,10,0,0,5231,5232,7,13,0,0,5232,5233,7,8,0,0,5233,1030,1,0,0,0,5234,5235,7,13,0,0,5235,5236,7,5,0,0,5236,5237,7,17,0,0,5237,5238,7,9,0,0,5238,5239,7,10,0,0,5239,1032,1,0,0,0,5240,5241,7,9,0,0,5241,5242,7,28,0,0,5242,5243,7,6,0,0,5243,5244,7,9,0,0,5244,5245,7,16,0,0,5245,5246,7,5,0,0,5246,5247,7,16,0,0,5247,5248,7,10,0,0,5248,1034,1,0,0,0,5249,5250,7,12,0,0,5250,5251,7,10,0,0,5251,5252,7,18,0,0,5252,5253,7,22,0,0,5253,5254,7,23,0,0,5254,1036,1,0,0,0,5255,5256,7,6,0,0,5256,5257,7,19,0,0,5257,5258,7,23,0,0,5258,1038,1,0,0,0,5259,5260,7,17,0,0,5260,5261,7,7,0,0,5261,5262,7,25,0,0,5262,5263,7,19,0,0,5263,1040,1,0,0,0,5264,5265,7,7,0,0,5265,5266,7,19,0,0,5266,5267,7,16,0,0,5267,5268,7,17,0,0,5268,5269,7,14,0,0,5269,5270,7,10,0,0,5270,1042,1,0,0,0,5271,5272,7,29,0,0,5272,5273,7,5,0,0,5273,5274,7,13,0,0,5274,5275,7,7,0,0,5275,5276,7,17,0,0,5276,5277,7,7,0,0,5277,5278,7,23,0,0,5278,1044,1,0,0,0,5279,5280,7,10,0,0,5280,5281,7,26,0,0,5281,5282,7,14,0,0,5282,5283,7,10,0,0,5283,5284,7,24,0,0,5284,5285,7,16,0,0,5285,5286,7,17,0,0,5286,5287,7,19,0,0,5287,5288,7,7,0,0,5288,1046,1,0,0,0,5289,5290,7,5,0,0,5290,5291,7,9,0,0,5291,5292,7,9,0,0,5292,5293,7,10,0,0,5293,5294,7,13,0,0,5294,5295,7,16,0,0,5295,1048,1,0,0,0,5296,5297,7,6,0,0,5297,5298,7,19,0,0,5298,5299,7,19,0,0,5299,5300,7,24,0,0,5300,1050,1,0,0,0,5301,5302,7,19,0,0,5302,5303,7,24,0,0,5303,5304,7,10,0,0,5304,5305,7,7,0,0,5305,1052,1,0,0,0,5306,5307,7,5,0,0,5307,5308,7,18,0,0,5308,5309,7,9,0,0,5309,1054,1,0,0,0,5310,5311,7,14,0,0,5311,5312,7,18,0,0,5312,5313,7,13,0,0,5313,5314,7,16,0,0,5314,1056,1,0,0,0,5315,5316,7,14,0,0,5316,5317,7,10,0,0,5317,5318,7,17,0,0,5318,5319,7,6,0,0,5319,1058,1,0,0,0,5320,5321,7,14,0,0,5321,5322,7,10,0,0,5322,5323,7,17,0,0,5323,5324,7,6,0,0,5324,5325,7,17,0,0,5325,5326,7,7,0,0,5326,5327,7,23,0,0,5327,1060,1,0,0,0,5328,5329,7,12,0,0,5329,5330,7,10,0,0,5330,5331,7,23,0,0,5331,5332,7,13,0,0,5332,5333,7,10,0,0,5333,5334,7,10,0,0,5334,5335,7,9,0,0,5335,1062,1,0,0,0,5336,5337,7,12,0,0,5337,5338,7,17,0,0,5338,5339,7,27,0,0,5339,1064,1,0,0,0,5340,5341,7,10,0,0,5341,5342,7,26,0,0,5342,5343,7,24,0,0,5343,1066,1,0,0,0,5344,5345,7,25,0,0,5345,5346,7,5,0,0,5346,5347,7,14,0,0,5347,5348,7,16,0,0,5348,5349,7,19,0,0,5349,5350,7,13,0,0,5350,5351,7,17,0,0,5351,5352,7,5,0,0,5352,5353,7,6,0,0,5353,1068,1,0,0,0,5354,5355,7,25,0,0,5355,5356,7,6,0,0,5356,5357,7,19,0,0,5357,5358,7,19,0,0,5358,5359,7,13,0,0,5359,1070,1,0,0,0,5360,5361,7,23,0,0,5361,5362,7,14,0,0,5362,5363,7,12,0,0,5363,1072,1,0,0,0,5364,5365,7,6,0,0,5365,5366,7,14,0,0,5366,5367,7,15,0,0,5367,1074,1,0,0,0,5368,5369,7,6,0,0,5369,5370,7,7,0,0,5370,1076,1,0,0,0,5371,5372,7,6,0,0,5372,5373,7,19,0,0,5373,5374,7,23,0,0,5374,5375,5,49,0,0,5375,5376,5,48,0,0,5376,1078,1,0,0,0,5377,5378,7,15,0,0,5378,5379,7,17,0,0,5379,5380,7,7,0,0,5380,5381,5,95,0,0,5381,5382,7,9,0,0,5382,5383,7,14,0,0,5383,5384,7,5,0,0,5384,5385,7,6,0,0,5385,5386,7,10,0,0,5386,1080,1,0,0,0,5387,5388,7,15,0,0,5388,5389,7,19,0,0,5389,5390,7,12,0,0,5390,1082,1,0,0,0,5391,5392,7,24,0,0,5392,5393,7,17,0,0,5393,1084,1,0,0,0,5394,5395,7,24,0,0,5395,5396,7,19,0,0,5396,5397,7,29,0,0,5397,5398,7,10,0,0,5398,5399,7,13,0,0,5399,1086,1,0,0,0,5400,5401,7,13,0,0,5401,5402,7,5,0,0,5402,5403,7,12,0,0,5403,5404,7,17,0,0,5404,5405,7,5,0,0,5405,5406,7,7,0,0,5406,5407,7,9,0,0,5407,1088,1,0,0,0,5408,5409,7,13,0,0,5409,5410,7,19,0,0,5410,5411,7,22,0,0,5411,5412,7,7,0,0,5412,5413,7,12,0,0,5413,1090,1,0,0,0,5414,5415,7,9,0,0,5415,5416,7,14,0,0,5416,5417,7,5,0,0,5417,5418,7,6,0,0,5418,5419,7,10,0,0,5419,1092,1,0,0,0,5420,5421,7,9,0,0,5421,5422,7,17,0,0,5422,5423,7,23,0,0,5423,5424,7,7,0,0,5424,1094,1,0,0,0,5425,5426,7,9,0,0,5426,5427,7,28,0,0,5427,5428,7,13,0,0,5428,5429,7,16,0,0,5429,1096,1,0,0,0,5430,5431,7,16,0,0,5431,5432,7,13,0,0,5432,5433,7,17,0,0,5433,5434,7,15,0,0,5434,5435,5,95,0,0,5435,5436,7,9,0,0,5436,5437,7,14,0,0,5437,5438,7,5,0,0,5438,5439,7,6,0,0,5439,5440,7,10,0,0,5440,1098,1,0,0,0,5441,5442,7,16,0,0,5442,5443,7,13,0,0,5443,5444,7,22,0,0,5444,5445,7,7,0,0,5445,5446,7,14,0,0,5446,1100,1,0,0,0,5447,5448,7,29,0,0,5448,5449,7,17,0,0,5449,5450,7,12,0,0,5450,5451,7,16,0,0,5451,5452,7,20,0,0,5452,5453,5,95,0,0,5453,5454,7,18,0,0,5454,5455,7,22,0,0,5455,5456,7,14,0,0,5456,5457,7,21,0,0,5457,5458,7,10,0,0,5458,5459,7,16,0,0,5459,1102,1,0,0,0,5460,5461,7,13,0,0,5461,5462,7,5,0,0,5462,5463,7,7,0,0,5463,5464,7,12,0,0,5464,5465,7,19,0,0,5465,5466,7,15,0,0,5466,1104,1,0,0,0,5467,5468,7,9,0,0,5468,5469,7,10,0,0,5469,5470,7,16,0,0,5470,5471,7,9,0,0,5471,5472,7,10,0,0,5472,5473,7,10,0,0,5473,5474,7,12,0,0,5474,1106,1,0,0,0,5475,5476,7,5,0,0,5476,5477,7,14,0,0,5477,5478,7,19,0,0,5478,5479,7,9,0,0,5479,1108,1,0,0,0,5480,5481,7,5,0,0,5481,5482,7,14,0,0,5482,5483,7,19,0,0,5483,5484,7,9,0,0,5484,5485,7,12,0,0,5485,1110,1,0,0,0,5486,5487,7,5,0,0,5487,5488,7,9,0,0,5488,5489,7,17,0,0,5489,5490,7,7,0,0,5490,1112,1,0,0,0,5491,5492,7,5,0,0,5492,5493,7,9,0,0,5493,5494,7,17,0,0,5494,5495,7,7,0,0,5495,5496,7,12,0,0,5496,1114,1,0,0,0,5497,5498,7,5,0,0,5498,5499,7,16,0,0,5499,5500,7,5,0,0,5500,5501,7,7,0,0,5501,1116,1,0,0,0,5502,5503,7,5,0,0,5503,5504,7,16,0,0,5504,5505,7,5,0,0,5505,5506,7,7,0,0,5506,5507,7,12,0,0,5507,1118,1,0,0,0,5508,5509,7,5,0,0,5509,5510,7,16,0,0,5510,5511,7,5,0,0,5511,5512,7,7,0,0,5512,5513,5,50,0,0,5513,1120,1,0,0,0,5514,5515,7,5,0,0,5515,5516,7,16,0,0,5516,5517,7,5,0,0,5517,5518,7,7,0,0,5518,5519,5,50,0,0,5519,5520,7,12,0,0,5520,1122,1,0,0,0,5521,5522,7,14,0,0,5522,5523,7,19,0,0,5523,5524,7,9,0,0,5524,1124,1,0,0,0,5525,5526,7,14,0,0,5526,5527,7,19,0,0,5527,5528,7,9,0,0,5528,5529,7,12,0,0,5529,1126,1,0,0,0,5530,5531,7,14,0,0,5531,5532,7,19,0,0,5532,5533,7,16,0,0,5533,1128,1,0,0,0,5534,5535,7,14,0,0,5535,5536,7,19,0,0,5536,5537,7,16,0,0,5537,5538,7,12,0,0,5538,1130,1,0,0,0,5539,5540,7,9,0,0,5540,5541,7,17,0,0,5541,5542,7,7,0,0,5542,1132,1,0,0,0,5543,5544,7,9,0,0,5544,5545,7,17,0,0,5545,5546,7,7,0,0,5546,5547,7,12,0,0,5547,1134,1,0,0,0,5548,5549,7,16,0,0,5549,5550,7,5,0,0,5550,5551,7,7,0,0,5551,1136,1,0,0,0,5552,5553,7,16,0,0,5553,5554,7,5,0,0,5554,5555,7,7,0,0,5555,5556,7,12,0,0,5556,1138,1,0,0,0,5557,5558,7,9,0,0,5558,5559,7,17,0,0,5559,5560,7,7,0,0,5560,5561,7,20,0,0,5561,1140,1,0,0,0,5562,5563,7,14,0,0,5563,5564,7,19,0,0,5564,5565,7,9,0,0,5565,5566,7,20,0,0,5566,1142,1,0,0,0,5567,5568,7,16,0,0,5568,5569,7,5,0,0,5569,5570,7,7,0,0,5570,5571,7,20,0,0,5571,1144,1,0,0,0,5572,5573,7,5,0,0,5573,5574,7,9,0,0,5574,5575,7,17,0,0,5575,5576,7,7,0,0,5576,5577,7,20,0,0,5577,1146,1,0,0,0,5578,5579,7,5,0,0,5579,5580,7,14,0,0,5580,5581,7,19,0,0,5581,5582,7,9,0,0,5582,5583,7,20,0,0,5583,1148,1,0,0,0,5584,5585,7,5,0,0,5585,5586,7,16,0,0,5586,5587,7,5,0,0,5587,5588,7,7,0,0,5588,5589,7,20,0,0,5589,1150,1,0,0,0,5590,5591,7,18,0,0,5591,5592,7,17,0,0,5592,5593,7,16,0,0,5593,5594,5,95,0,0,5594,5595,7,6,0,0,5595,5596,7,10,0,0,5596,5597,7,7,0,0,5597,5598,7,23,0,0,5598,5599,7,16,0,0,5599,5600,7,20,0,0,5600,1152,1,0,0,0,5601,5602,7,14,0,0,5602,5603,7,20,0,0,5603,5604,7,5,0,0,5604,5605,7,13,0,0,5605,5606,5,95,0,0,5606,5607,7,6,0,0,5607,5608,7,10,0,0,5608,5609,7,7,0,0,5609,5610,7,23,0,0,5610,5611,7,16,0,0,5611,5612,7,20,0,0,5612,1154,1,0,0,0,5613,5614,7,14,0,0,5614,5615,7,20,0,0,5615,5616,7,5,0,0,5616,5617,7,13,0,0,5617,5618,7,5,0,0,5618,5619,7,14,0,0,5619,5620,7,16,0,0,5620,5621,7,10,0,0,5621,5622,7,13,0,0,5622,5623,5,95,0,0,5623,5624,7,6,0,0,5624,5625,7,10,0,0,5625,5626,7,7,0,0,5626,5627,7,23,0,0,5627,5628,7,16,0,0,5628,5629,7,20,0,0,5629,1156,1,0,0,0,5630,5631,7,6,0,0,5631,5632,7,19,0,0,5632,5633,7,29,0,0,5633,5634,7,10,0,0,5634,5635,7,13,0,0,5635,1158,1,0,0,0,5636,5637,7,19,0,0,5637,5638,7,14,0,0,5638,5639,7,16,0,0,5639,5640,7,10,0,0,5640,5641,7,16,0,0,5641,5642,5,95,0,0,5642,5643,7,6,0,0,5643,5644,7,10,0,0,5644,5645,7,7,0,0,5645,5646,7,23,0,0,5646,5647,7,16,0,0,5647,5648,7,20,0,0,5648,1160,1,0,0,0,5649,5650,7,22,0,0,5650,5651,7,24,0,0,5651,5652,7,24,0,0,5652,5653,7,10,0,0,5653,5654,7,13,0,0,5654,1162,1,0,0,0,5655,5656,7,5,0,0,5656,5657,7,9,0,0,5657,5658,7,14,0,0,5658,5659,7,17,0,0,5659,5660,7,17,0,0,5660,1164,1,0,0,0,5661,5662,7,18,0,0,5662,5663,7,16,0,0,5663,5664,7,13,0,0,5664,5665,7,17,0,0,5665,5666,7,15,0,0,5666,1166,1,0,0,0,5667,5668,7,14,0,0,5668,5669,7,20,0,0,5669,5670,7,13,0,0,5670,1168,1,0,0,0,5671,5672,7,14,0,0,5672,5673,7,19,0,0,5673,5674,7,7,0,0,5674,5675,7,14,0,0,5675,5676,7,5,0,0,5676,5677,7,16,0,0,5677,1170,1,0,0,0,5678,5679,7,14,0,0,5679,5680,7,19,0,0,5680,5681,7,7,0,0,5681,5682,7,14,0,0,5682,5683,7,5,0,0,5683,5684,7,16,0,0,5684,5685,5,95,0,0,5685,5686,7,29,0,0,5686,5687,7,9,0,0,5687,1172,1,0,0,0,5688,5689,7,25,0,0,5689,5690,7,19,0,0,5690,5691,7,13,0,0,5691,5692,7,15,0,0,5692,5693,7,5,0,0,5693,5694,7,16,0,0,5694,1174,1,0,0,0,5695,5696,7,17,0,0,5696,5697,7,7,0,0,5697,5698,7,17,0,0,5698,5699,7,16,0,0,5699,5700,7,14,0,0,5700,5701,7,5,0,0,5701,5702,7,24,0,0,5702,1176,1,0,0,0,5703,5704,7,6,0,0,5704,5705,7,10,0,0,5705,5706,7,7,0,0,5706,5707,7,23,0,0,5707,5708,7,16,0,0,5708,5709,7,20,0,0,5709,1178,1,0,0,0,5710,5711,7,6,0,0,5711,5712,7,24,0,0,5712,5713,7,5,0,0,5713,5714,7,12,0,0,5714,1180,1,0,0,0,5715,5716,7,6,0,0,5716,5717,7,16,0,0,5717,5718,7,13,0,0,5718,5719,7,17,0,0,5719,5720,7,15,0,0,5720,1182,1,0,0,0,5721,5722,7,15,0,0,5722,5723,7,12,0,0,5723,5724,5,53,0,0,5724,1184,1,0,0,0,5725,5726,7,24,0,0,5726,5727,7,5,0,0,5727,5728,7,13,0,0,5728,5729,7,9,0,0,5729,5730,7,10,0,0,5730,5731,5,95,0,0,5731,5732,7,17,0,0,5732,5733,7,12,0,0,5733,5734,7,10,0,0,5734,5735,7,7,0,0,5735,5736,7,16,0,0,5736,1186,1,0,0,0,5737,5738,7,24,0,0,5738,5739,7,23,0,0,5739,5740,5,95,0,0,5740,5741,7,14,0,0,5741,5742,7,6,0,0,5742,5743,7,17,0,0,5743,5744,7,10,0,0,5744,5745,7,7,0,0,5745,5746,7,16,0,0,5746,5747,5,95,0,0,5747,5748,7,10,0,0,5748,5749,7,7,0,0,5749,5750,7,14,0,0,5750,5751,7,19,0,0,5751,5752,7,12,0,0,5752,5753,7,17,0,0,5753,5754,7,7,0,0,5754,5755,7,23,0,0,5755,1188,1,0,0,0,5756,5757,7,28,0,0,5757,5758,7,22,0,0,5758,5759,7,19,0,0,5759,5760,7,16,0,0,5760,5761,7,10,0,0,5761,5762,5,95,0,0,5762,5763,7,17,0,0,5763,5764,7,12,0,0,5764,5765,7,10,0,0,5765,5766,7,7,0,0,5766,5767,7,16,0,0,5767,1190,1,0,0,0,5768,5769,7,28,0,0,5769,5770,7,22,0,0,5770,5771,7,19,0,0,5771,5772,7,16,0,0,5772,5773,7,10,0,0,5773,5774,5,95,0,0,5774,5775,7,6,0,0,5775,5776,7,17,0,0,5776,5777,7,16,0,0,5777,5778,7,10,0,0,5778,5779,7,13,0,0,5779,5780,7,5,0,0,5780,5781,7,6,0,0,5781,1192,1,0,0,0,5782,5783,7,28,0,0,5783,5784,7,22,0,0,5784,5785,7,19,0,0,5785,5786,7,16,0,0,5786,5787,7,10,0,0,5787,5788,5,95,0,0,5788,5789,7,7,0,0,5789,5790,7,22,0,0,5790,5791,7,6,0,0,5791,5792,7,6,0,0,5792,5793,7,5,0,0,5793,5794,7,18,0,0,5794,5795,7,6,0,0,5795,5796,7,10,0,0,5796,1194,1,0,0,0,5797,5798,7,13,0,0,5798,5799,7,10,0,0,5799,5800,7,23,0,0,5800,5801,7,10,0,0,5801,5802,7,26,0,0,5802,5803,7,24,0,0,5803,5804,5,95,0,0,5804,5805,7,14,0,0,5805,5806,7,19,0,0,5806,5807,7,22,0,0,5807,5808,7,7,0,0,5808,5809,7,16,0,0,5809,1196,1,0,0,0,5810,5811,7,13,0,0,5811,5812,7,10,0,0,5812,5813,7,23,0,0,5813,5814,7,10,0,0,5814,5815,7,26,0,0,5815,5816,7,24,0,0,5816,5817,5,95,0,0,5817,5818,7,17,0,0,5818,5819,7,7,0,0,5819,5820,7,9,0,0,5820,5821,7,16,0,0,5821,5822,7,13,0,0,5822,1198,1,0,0,0,5823,5824,7,13,0,0,5824,5825,7,10,0,0,5825,5826,7,23,0,0,5826,5827,7,10,0,0,5827,5828,7,26,0,0,5828,5829,7,24,0,0,5829,5830,5,95,0,0,5830,5831,7,6,0,0,5831,5832,7,17,0,0,5832,5833,7,21,0,0,5833,5834,7,10,0,0,5834,1200,1,0,0,0,5835,5836,7,13,0,0,5836,5837,7,10,0,0,5837,5838,7,23,0,0,5838,5839,7,10,0,0,5839,5840,7,26,0,0,5840,5841,7,24,0,0,5841,5842,5,95,0,0,5842,5843,7,15,0,0,5843,5844,7,5,0,0,5844,5845,7,16,0,0,5845,5846,7,14,0,0,5846,5847,7,20,0,0,5847,1202,1,0,0,0,5848,5849,7,13,0,0,5849,5850,7,10,0,0,5850,5851,7,23,0,0,5851,5852,7,10,0,0,5852,5853,7,26,0,0,5853,5854,7,24,0,0,5854,5855,5,95,0,0,5855,5856,7,15,0,0,5856,5857,7,5,0,0,5857,5858,7,16,0,0,5858,5859,7,14,0,0,5859,5860,7,20,0,0,5860,5861,7,10,0,0,5861,5862,7,9,0,0,5862,1204,1,0,0,0,5863,5864,7,13,0,0,5864,5865,7,10,0,0,5865,5866,7,23,0,0,5866,5867,7,10,0,0,5867,5868,7,26,0,0,5868,5869,7,24,0,0,5869,5870,5,95,0,0,5870,5871,7,13,0,0,5871,5872,7,10,0,0,5872,5873,7,24,0,0,5873,5874,7,6,0,0,5874,5875,7,5,0,0,5875,5876,7,14,0,0,5876,5877,7,10,0,0,5877,1206,1,0,0,0,5878,5879,7,13,0,0,5879,5880,7,10,0,0,5880,5881,7,23,0,0,5881,5882,7,10,0,0,5882,5883,7,26,0,0,5883,5884,7,24,0,0,5884,5885,5,95,0,0,5885,5886,7,9,0,0,5886,5887,7,24,0,0,5887,5888,7,6,0,0,5888,5889,7,17,0,0,5889,5890,7,16,0,0,5890,5891,5,95,0,0,5891,5892,7,16,0,0,5892,5893,7,19,0,0,5893,5894,5,95,0,0,5894,5895,7,5,0,0,5895,5896,7,13,0,0,5896,5897,7,13,0,0,5897,5898,7,5,0,0,5898,5899,7,8,0,0,5899,1208,1,0,0,0,5900,5901,7,13,0,0,5901,5902,7,10,0,0,5902,5903,7,23,0,0,5903,5904,7,10,0,0,5904,5905,7,26,0,0,5905,5906,7,24,0,0,5906,5907,5,95,0,0,5907,5908,7,9,0,0,5908,5909,7,24,0,0,5909,5910,7,6,0,0,5910,5911,7,17,0,0,5911,5912,7,16,0,0,5912,5913,5,95,0,0,5913,5914,7,16,0,0,5914,5915,7,19,0,0,5915,5916,5,95,0,0,5916,5917,7,16,0,0,5917,5918,7,5,0,0,5918,5919,7,18,0,0,5919,5920,7,6,0,0,5920,5921,7,10,0,0,5921,1210,1,0,0,0,5922,5923,7,13,0,0,5923,5924,7,10,0,0,5924,5925,7,23,0,0,5925,5926,7,10,0,0,5926,5927,7,26,0,0,5927,5928,7,24,0,0,5928,5929,5,95,0,0,5929,5930,7,9,0,0,5930,5931,7,22,0,0,5931,5932,7,18,0,0,5932,5933,7,9,0,0,5933,5934,7,16,0,0,5934,5935,7,13,0,0,5935,1212,1,0,0,0,5936,5937,7,13,0,0,5937,5938,7,10,0,0,5938,5939,7,24,0,0,5939,5940,7,10,0,0,5940,5941,7,5,0,0,5941,5942,7,16,0,0,5942,1214,1,0,0,0,5943,5944,7,13,0,0,5944,5945,7,24,0,0,5945,5946,7,5,0,0,5946,5947,7,12,0,0,5947,1216,1,0,0,0,5948,5949,7,13,0,0,5949,5950,7,16,0,0,5950,5951,7,13,0,0,5951,5952,7,17,0,0,5952,5953,7,15,0,0,5953,1218,1,0,0,0,5954,5955,7,9,0,0,5955,5956,7,24,0,0,5956,5957,7,6,0,0,5957,5958,7,17,0,0,5958,5959,7,16,0,0,5959,5960,5,95,0,0,5960,5961,7,24,0,0,5961,5962,7,5,0,0,5962,5963,7,13,0,0,5963,5964,7,16,0,0,5964,1220,1,0,0,0,5965,5966,7,9,0,0,5966,5967,7,16,0,0,5967,5968,7,5,0,0,5968,5969,7,13,0,0,5969,5970,7,16,0,0,5970,5971,7,9,0,0,5971,5972,5,95,0,0,5972,5973,7,29,0,0,5973,5974,7,17,0,0,5974,5975,7,16,0,0,5975,5976,7,20,0,0,5976,1222,1,0,0,0,5977,5978,7,9,0,0,5978,5979,7,16,0,0,5979,5980,7,13,0,0,5980,5981,7,17,0,0,5981,5982,7,7,0,0,5982,5983,7,23,0,0,5983,5984,5,95,0,0,5984,5985,7,16,0,0,5985,5986,7,19,0,0,5986,5987,5,95,0,0,5987,5988,7,5,0,0,5988,5989,7,13,0,0,5989,5990,7,13,0,0,5990,5991,7,5,0,0,5991,5992,7,8,0,0,5992,1224,1,0,0,0,5993,5994,7,9,0,0,5994,5995,7,16,0,0,5995,5996,7,13,0,0,5996,5997,7,17,0,0,5997,5998,7,7,0,0,5998,5999,7,23,0,0,5999,6e3,5,95,0,0,6e3,6001,7,16,0,0,6001,6002,7,19,0,0,6002,6003,5,95,0,0,6003,6004,7,16,0,0,6004,6005,7,5,0,0,6005,6006,7,18,0,0,6006,6007,7,6,0,0,6007,6008,7,10,0,0,6008,1226,1,0,0,0,6009,6010,7,9,0,0,6010,6011,7,16,0,0,6011,6012,7,13,0,0,6012,6013,7,24,0,0,6013,6014,7,19,0,0,6014,6015,7,9,0,0,6015,1228,1,0,0,0,6016,6017,7,9,0,0,6017,6018,7,22,0,0,6018,6019,7,18,0,0,6019,6020,7,9,0,0,6020,6021,7,16,0,0,6021,6022,7,13,0,0,6022,1230,1,0,0,0,6023,6024,7,16,0,0,6024,6025,7,19,0,0,6025,6026,5,95,0,0,6026,6027,7,5,0,0,6027,6028,7,9,0,0,6028,6029,7,14,0,0,6029,6030,7,17,0,0,6030,6031,7,17,0,0,6031,1232,1,0,0,0,6032,6033,7,16,0,0,6033,6034,7,19,0,0,6034,6035,5,95,0,0,6035,6036,7,20,0,0,6036,6037,7,10,0,0,6037,6038,7,26,0,0,6038,1234,1,0,0,0,6039,6040,7,16,0,0,6040,6041,7,13,0,0,6041,6042,7,5,0,0,6042,6043,7,7,0,0,6043,6044,7,9,0,0,6044,6045,7,6,0,0,6045,6046,7,5,0,0,6046,6047,7,16,0,0,6047,6048,7,10,0,0,6048,1236,1,0,0,0,6049,6050,7,22,0,0,6050,6051,7,7,0,0,6051,6052,7,17,0,0,6052,6053,7,9,0,0,6053,6054,7,16,0,0,6054,6055,7,13,0,0,6055,1238,1,0,0,0,6056,6057,7,5,0,0,6057,6058,7,23,0,0,6058,6059,7,10,0,0,6059,1240,1,0,0,0,6060,6061,7,14,0,0,6061,6062,7,6,0,0,6062,6063,7,19,0,0,6063,6064,7,14,0,0,6064,6065,7,21,0,0,6065,6066,5,95,0,0,6066,6067,7,16,0,0,6067,6068,7,17,0,0,6068,6069,7,15,0,0,6069,6070,7,10,0,0,6070,6071,7,9,0,0,6071,6072,7,16,0,0,6072,6073,7,5,0,0,6073,6074,7,15,0,0,6074,6075,7,24,0,0,6075,1242,1,0,0,0,6076,6077,7,12,0,0,6077,6078,7,5,0,0,6078,6079,7,16,0,0,6079,6080,7,10,0,0,6080,6081,5,95,0,0,6081,6082,7,18,0,0,6082,6083,7,17,0,0,6083,6084,7,7,0,0,6084,1244,1,0,0,0,6085,6086,7,12,0,0,6086,6087,7,5,0,0,6087,6088,7,16,0,0,6088,6089,7,10,0,0,6089,6090,5,95,0,0,6090,6091,7,24,0,0,6091,6092,7,5,0,0,6092,6093,7,13,0,0,6093,6094,7,16,0,0,6094,1246,1,0,0,0,6095,6096,7,12,0,0,6096,6097,7,5,0,0,6097,6098,7,16,0,0,6098,6099,7,10,0,0,6099,6100,5,95,0,0,6100,6101,7,16,0,0,6101,6102,7,13,0,0,6102,6103,7,22,0,0,6103,6104,7,7,0,0,6104,6105,7,14,0,0,6105,1248,1,0,0,0,6106,6107,7,17,0,0,6107,6108,7,9,0,0,6108,6109,7,25,0,0,6109,6110,7,17,0,0,6110,6111,7,7,0,0,6111,6112,7,17,0,0,6112,6113,7,16,0,0,6113,6114,7,10,0,0,6114,1250,1,0,0,0,6115,6116,7,30,0,0,6116,6117,7,22,0,0,6117,6118,7,9,0,0,6118,6119,7,16,0,0,6119,6120,7,17,0,0,6120,6121,7,25,0,0,6121,6122,7,8,0,0,6122,6123,5,95,0,0,6123,6124,7,12,0,0,6124,6125,7,5,0,0,6125,6126,7,8,0,0,6126,6127,7,9,0,0,6127,1252,1,0,0,0,6128,6129,7,30,0,0,6129,6130,7,22,0,0,6130,6131,7,9,0,0,6131,6132,7,16,0,0,6132,6133,7,17,0,0,6133,6134,7,25,0,0,6134,6135,7,8,0,0,6135,6136,5,95,0,0,6136,6137,7,20,0,0,6137,6138,7,19,0,0,6138,6139,7,22,0,0,6139,6140,7,13,0,0,6140,6141,7,9,0,0,6141,1254,1,0,0,0,6142,6143,7,30,0,0,6143,6144,7,22,0,0,6144,6145,7,9,0,0,6145,6146,7,16,0,0,6146,6147,7,17,0,0,6147,6148,7,25,0,0,6148,6149,7,8,0,0,6149,6150,5,95,0,0,6150,6151,7,17,0,0,6151,6152,7,7,0,0,6152,6153,7,16,0,0,6153,6154,7,10,0,0,6154,6155,7,13,0,0,6155,6156,7,27,0,0,6156,6157,7,5,0,0,6157,6158,7,6,0,0,6158,1256,1,0,0,0,6159,6160,7,15,0,0,6160,6161,7,5,0,0,6161,6162,7,21,0,0,6162,6163,7,10,0,0,6163,6164,5,95,0,0,6164,6165,7,12,0,0,6165,6166,7,5,0,0,6166,6167,7,16,0,0,6167,6168,7,10,0,0,6168,1258,1,0,0,0,6169,6170,7,15,0,0,6170,6171,7,5,0,0,6171,6172,7,21,0,0,6172,6173,7,10,0,0,6173,6174,5,95,0,0,6174,6175,7,17,0,0,6175,6176,7,7,0,0,6176,6177,7,16,0,0,6177,6178,7,10,0,0,6178,6179,7,13,0,0,6179,6180,7,27,0,0,6180,6181,7,5,0,0,6181,6182,7,6,0,0,6182,1260,1,0,0,0,6183,6184,7,15,0,0,6184,6185,7,5,0,0,6185,6186,7,21,0,0,6186,6187,7,10,0,0,6187,6188,5,95,0,0,6188,6189,7,16,0,0,6189,6190,7,17,0,0,6190,6191,7,15,0,0,6191,6192,7,10,0,0,6192,1262,1,0,0,0,6193,6194,7,15,0,0,6194,6195,7,5,0,0,6195,6196,7,21,0,0,6196,6197,7,10,0,0,6197,6198,5,95,0,0,6198,6199,7,16,0,0,6199,6200,7,17,0,0,6200,6201,7,15,0,0,6201,6202,7,10,0,0,6202,6203,7,9,0,0,6203,6204,7,16,0,0,6204,6205,7,5,0,0,6205,6206,7,15,0,0,6206,6207,7,24,0,0,6207,1264,1,0,0,0,6208,6209,7,15,0,0,6209,6210,7,5,0,0,6210,6211,7,21,0,0,6211,6212,7,10,0,0,6212,6213,5,95,0,0,6213,6214,7,16,0,0,6214,6215,7,17,0,0,6215,6216,7,15,0,0,6216,6217,7,10,0,0,6217,6218,7,9,0,0,6218,6219,7,16,0,0,6219,6220,7,5,0,0,6220,6221,7,15,0,0,6221,6222,7,24,0,0,6222,6223,7,16,0,0,6223,6224,7,11,0,0,6224,1266,1,0,0,0,6225,6226,7,7,0,0,6226,6227,7,19,0,0,6227,6228,7,29,0,0,6228,1268,1,0,0,0,6229,6230,7,9,0,0,6230,6231,7,16,0,0,6231,6232,7,5,0,0,6232,6233,7,16,0,0,6233,6234,7,10,0,0,6234,6235,7,15,0,0,6235,6236,7,10,0,0,6236,6237,7,7,0,0,6237,6238,7,16,0,0,6238,6239,5,95,0,0,6239,6240,7,16,0,0,6240,6241,7,17,0,0,6241,6242,7,15,0,0,6242,6243,7,10,0,0,6243,6244,7,9,0,0,6244,6245,7,16,0,0,6245,6246,7,5,0,0,6246,6247,7,15,0,0,6247,6248,7,24,0,0,6248,1270,1,0,0,0,6249,6250,7,16,0,0,6250,6251,7,17,0,0,6251,6252,7,15,0,0,6252,6253,7,10,0,0,6253,6254,7,19,0,0,6254,6255,7,25,0,0,6255,6256,7,12,0,0,6256,6257,7,5,0,0,6257,6258,7,8,0,0,6258,1272,1,0,0,0,6259,6260,7,16,0,0,6260,6261,7,13,0,0,6261,6262,7,5,0,0,6262,6263,7,7,0,0,6263,6264,7,9,0,0,6264,6265,7,5,0,0,6265,6266,7,14,0,0,6266,6267,7,16,0,0,6267,6268,7,17,0,0,6268,6269,7,19,0,0,6269,6270,7,7,0,0,6270,6271,5,95,0,0,6271,6272,7,16,0,0,6272,6273,7,17,0,0,6273,6274,7,15,0,0,6274,6275,7,10,0,0,6275,6276,7,9,0,0,6276,6277,7,16,0,0,6277,6278,7,5,0,0,6278,6279,7,15,0,0,6279,6280,7,24,0,0,6280,1274,1,0,0,0,6281,6282,7,16,0,0,6282,6283,7,19,0,0,6283,6284,5,95,0,0,6284,6285,7,16,0,0,6285,6286,7,17,0,0,6286,6287,7,15,0,0,6287,6288,7,10,0,0,6288,6289,7,9,0,0,6289,6290,7,16,0,0,6290,6291,7,5,0,0,6291,6292,7,15,0,0,6292,6293,7,24,0,0,6293,1276,1,0,0,0,6294,6295,7,16,0,0,6295,6296,7,19,0,0,6296,6297,5,95,0,0,6297,6298,7,14,0,0,6298,6299,7,20,0,0,6299,6300,7,5,0,0,6300,6301,7,13,0,0,6301,1278,1,0,0,0,6302,6303,7,16,0,0,6303,6304,7,19,0,0,6304,6305,5,95,0,0,6305,6306,7,12,0,0,6306,6307,7,5,0,0,6307,6308,7,16,0,0,6308,6309,7,10,0,0,6309,1280,1,0,0,0,6310,6311,7,16,0,0,6311,6312,7,19,0,0,6312,6313,5,95,0,0,6313,6314,7,7,0,0,6314,6315,7,22,0,0,6315,6316,7,15,0,0,6316,6317,7,18,0,0,6317,6318,7,10,0,0,6318,6319,7,13,0,0,6319,1282,1,0,0,0,6320,6324,3,1285,640,0,6321,6323,3,1287,641,0,6322,6321,1,0,0,0,6323,6326,1,0,0,0,6324,6322,1,0,0,0,6324,6325,1,0,0,0,6325,1284,1,0,0,0,6326,6324,1,0,0,0,6327,6334,7,31,0,0,6328,6329,7,32,0,0,6329,6334,4,640,6,0,6330,6331,7,33,0,0,6331,6332,7,34,0,0,6332,6334,4,640,7,0,6333,6327,1,0,0,0,6333,6328,1,0,0,0,6333,6330,1,0,0,0,6334,1286,1,0,0,0,6335,6338,3,1289,642,0,6336,6338,5,36,0,0,6337,6335,1,0,0,0,6337,6336,1,0,0,0,6338,1288,1,0,0,0,6339,6342,3,1285,640,0,6340,6342,7,0,0,0,6341,6339,1,0,0,0,6341,6340,1,0,0,0,6342,1290,1,0,0,0,6343,6344,3,1293,644,0,6344,6345,5,34,0,0,6345,1292,1,0,0,0,6346,6352,5,34,0,0,6347,6348,5,34,0,0,6348,6351,5,34,0,0,6349,6351,8,35,0,0,6350,6347,1,0,0,0,6350,6349,1,0,0,0,6351,6354,1,0,0,0,6352,6350,1,0,0,0,6352,6353,1,0,0,0,6353,1294,1,0,0,0,6354,6352,1,0,0,0,6355,6356,3,1297,646,0,6356,6357,5,34,0,0,6357,1296,1,0,0,0,6358,6364,5,34,0,0,6359,6360,5,34,0,0,6360,6363,5,34,0,0,6361,6363,8,36,0,0,6362,6359,1,0,0,0,6362,6361,1,0,0,0,6363,6366,1,0,0,0,6364,6362,1,0,0,0,6364,6365,1,0,0,0,6365,1298,1,0,0,0,6366,6364,1,0,0,0,6367,6368,7,22,0,0,6368,6369,5,38,0,0,6369,6370,3,1291,643,0,6370,1300,1,0,0,0,6371,6372,7,22,0,0,6372,6373,5,38,0,0,6373,6374,3,1293,644,0,6374,1302,1,0,0,0,6375,6376,7,22,0,0,6376,6377,5,38,0,0,6377,6378,3,1295,645,0,6378,1304,1,0,0,0,6379,6380,7,22,0,0,6380,6381,5,38,0,0,6381,6382,3,1297,646,0,6382,1306,1,0,0,0,6383,6384,3,1309,652,0,6384,6385,5,39,0,0,6385,1308,1,0,0,0,6386,6392,5,39,0,0,6387,6388,5,39,0,0,6388,6391,5,39,0,0,6389,6391,8,37,0,0,6390,6387,1,0,0,0,6390,6389,1,0,0,0,6391,6394,1,0,0,0,6392,6390,1,0,0,0,6392,6393,1,0,0,0,6393,1310,1,0,0,0,6394,6392,1,0,0,0,6395,6396,7,10,0,0,6396,6397,5,39,0,0,6397,6398,1,0,0,0,6398,6399,6,653,2,0,6399,6400,6,653,3,0,6400,1312,1,0,0,0,6401,6402,3,1315,655,0,6402,6403,5,39,0,0,6403,1314,1,0,0,0,6404,6405,7,22,0,0,6405,6406,5,38,0,0,6406,6407,3,1309,652,0,6407,1316,1,0,0,0,6408,6410,5,36,0,0,6409,6411,3,1319,657,0,6410,6409,1,0,0,0,6410,6411,1,0,0,0,6411,6412,1,0,0,0,6412,6413,5,36,0,0,6413,6414,6,656,4,0,6414,6415,1,0,0,0,6415,6416,6,656,5,0,6416,1318,1,0,0,0,6417,6421,3,1285,640,0,6418,6420,3,1289,642,0,6419,6418,1,0,0,0,6420,6423,1,0,0,0,6421,6419,1,0,0,0,6421,6422,1,0,0,0,6422,1320,1,0,0,0,6423,6421,1,0,0,0,6424,6425,3,1323,659,0,6425,6426,5,39,0,0,6426,1322,1,0,0,0,6427,6428,7,18,0,0,6428,6432,5,39,0,0,6429,6431,7,38,0,0,6430,6429,1,0,0,0,6431,6434,1,0,0,0,6432,6430,1,0,0,0,6432,6433,1,0,0,0,6433,1324,1,0,0,0,6434,6432,1,0,0,0,6435,6436,3,1327,661,0,6436,6437,5,39,0,0,6437,1326,1,0,0,0,6438,6439,7,18,0,0,6439,6440,3,1309,652,0,6440,1328,1,0,0,0,6441,6442,3,1331,663,0,6442,6443,5,39,0,0,6443,1330,1,0,0,0,6444,6445,7,26,0,0,6445,6449,5,39,0,0,6446,6448,7,39,0,0,6447,6446,1,0,0,0,6448,6451,1,0,0,0,6449,6447,1,0,0,0,6449,6450,1,0,0,0,6450,1332,1,0,0,0,6451,6449,1,0,0,0,6452,6453,3,1335,665,0,6453,6454,5,39,0,0,6454,1334,1,0,0,0,6455,6456,7,26,0,0,6456,6457,3,1309,652,0,6457,1336,1,0,0,0,6458,6459,3,1343,669,0,6459,1338,1,0,0,0,6460,6461,3,1343,669,0,6461,6462,5,46,0,0,6462,6463,5,46,0,0,6463,6464,1,0,0,0,6464,6465,6,667,6,0,6465,1340,1,0,0,0,6466,6467,3,1343,669,0,6467,6469,5,46,0,0,6468,6470,3,1343,669,0,6469,6468,1,0,0,0,6469,6470,1,0,0,0,6470,6476,1,0,0,0,6471,6473,7,10,0,0,6472,6474,7,1,0,0,6473,6472,1,0,0,0,6473,6474,1,0,0,0,6474,6475,1,0,0,0,6475,6477,3,1343,669,0,6476,6471,1,0,0,0,6476,6477,1,0,0,0,6477,6495,1,0,0,0,6478,6479,5,46,0,0,6479,6485,3,1343,669,0,6480,6482,7,10,0,0,6481,6483,7,1,0,0,6482,6481,1,0,0,0,6482,6483,1,0,0,0,6483,6484,1,0,0,0,6484,6486,3,1343,669,0,6485,6480,1,0,0,0,6485,6486,1,0,0,0,6486,6495,1,0,0,0,6487,6488,3,1343,669,0,6488,6490,7,10,0,0,6489,6491,7,1,0,0,6490,6489,1,0,0,0,6490,6491,1,0,0,0,6491,6492,1,0,0,0,6492,6493,3,1343,669,0,6493,6495,1,0,0,0,6494,6466,1,0,0,0,6494,6478,1,0,0,0,6494,6487,1,0,0,0,6495,1342,1,0,0,0,6496,6498,7,0,0,0,6497,6496,1,0,0,0,6498,6499,1,0,0,0,6499,6497,1,0,0,0,6499,6500,1,0,0,0,6500,1344,1,0,0,0,6501,6502,5,58,0,0,6502,6506,7,40,0,0,6503,6505,7,41,0,0,6504,6503,1,0,0,0,6505,6508,1,0,0,0,6506,6504,1,0,0,0,6506,6507,1,0,0,0,6507,1346,1,0,0,0,6508,6506,1,0,0,0,6509,6510,5,58,0,0,6510,6511,5,34,0,0,6511,6519,1,0,0,0,6512,6513,5,92,0,0,6513,6518,9,0,0,0,6514,6515,5,34,0,0,6515,6518,5,34,0,0,6516,6518,8,42,0,0,6517,6512,1,0,0,0,6517,6514,1,0,0,0,6517,6516,1,0,0,0,6518,6521,1,0,0,0,6519,6517,1,0,0,0,6519,6520,1,0,0,0,6520,6522,1,0,0,0,6521,6519,1,0,0,0,6522,6523,5,34,0,0,6523,1348,1,0,0,0,6524,6526,7,43,0,0,6525,6524,1,0,0,0,6526,6527,1,0,0,0,6527,6525,1,0,0,0,6527,6528,1,0,0,0,6528,6529,1,0,0,0,6529,6530,6,672,7,0,6530,1350,1,0,0,0,6531,6533,5,13,0,0,6532,6534,5,10,0,0,6533,6532,1,0,0,0,6533,6534,1,0,0,0,6534,6537,1,0,0,0,6535,6537,5,10,0,0,6536,6531,1,0,0,0,6536,6535,1,0,0,0,6537,6538,1,0,0,0,6538,6539,6,673,7,0,6539,1352,1,0,0,0,6540,6541,5,45,0,0,6541,6542,5,45,0,0,6542,6546,1,0,0,0,6543,6545,8,44,0,0,6544,6543,1,0,0,0,6545,6548,1,0,0,0,6546,6544,1,0,0,0,6546,6547,1,0,0,0,6547,6549,1,0,0,0,6548,6546,1,0,0,0,6549,6550,6,674,8,0,6550,1354,1,0,0,0,6551,6552,5,47,0,0,6552,6553,5,42,0,0,6553,6576,1,0,0,0,6554,6556,5,47,0,0,6555,6554,1,0,0,0,6556,6559,1,0,0,0,6557,6555,1,0,0,0,6557,6558,1,0,0,0,6558,6560,1,0,0,0,6559,6557,1,0,0,0,6560,6575,3,1355,675,0,6561,6575,8,45,0,0,6562,6564,5,47,0,0,6563,6562,1,0,0,0,6564,6565,1,0,0,0,6565,6563,1,0,0,0,6565,6566,1,0,0,0,6566,6567,1,0,0,0,6567,6575,8,45,0,0,6568,6570,5,42,0,0,6569,6568,1,0,0,0,6570,6571,1,0,0,0,6571,6569,1,0,0,0,6571,6572,1,0,0,0,6572,6573,1,0,0,0,6573,6575,8,45,0,0,6574,6557,1,0,0,0,6574,6561,1,0,0,0,6574,6563,1,0,0,0,6574,6569,1,0,0,0,6575,6578,1,0,0,0,6576,6574,1,0,0,0,6576,6577,1,0,0,0,6577,6582,1,0,0,0,6578,6576,1,0,0,0,6579,6581,5,42,0,0,6580,6579,1,0,0,0,6581,6584,1,0,0,0,6582,6580,1,0,0,0,6582,6583,1,0,0,0,6583,6585,1,0,0,0,6584,6582,1,0,0,0,6585,6586,5,42,0,0,6586,6587,5,47,0,0,6587,6588,1,0,0,0,6588,6589,6,675,8,0,6589,1356,1,0,0,0,6590,6591,5,47,0,0,6591,6592,5,42,0,0,6592,6617,1,0,0,0,6593,6595,5,47,0,0,6594,6593,1,0,0,0,6595,6598,1,0,0,0,6596,6594,1,0,0,0,6596,6597,1,0,0,0,6597,6599,1,0,0,0,6598,6596,1,0,0,0,6599,6616,3,1355,675,0,6600,6616,8,45,0,0,6601,6603,5,47,0,0,6602,6601,1,0,0,0,6603,6604,1,0,0,0,6604,6602,1,0,0,0,6604,6605,1,0,0,0,6605,6606,1,0,0,0,6606,6614,8,45,0,0,6607,6609,5,42,0,0,6608,6607,1,0,0,0,6609,6610,1,0,0,0,6610,6608,1,0,0,0,6610,6611,1,0,0,0,6611,6612,1,0,0,0,6612,6614,8,45,0,0,6613,6602,1,0,0,0,6613,6608,1,0,0,0,6614,6616,1,0,0,0,6615,6596,1,0,0,0,6615,6600,1,0,0,0,6615,6613,1,0,0,0,6616,6619,1,0,0,0,6617,6615,1,0,0,0,6617,6618,1,0,0,0,6618,6637,1,0,0,0,6619,6617,1,0,0,0,6620,6622,5,47,0,0,6621,6620,1,0,0,0,6622,6623,1,0,0,0,6623,6621,1,0,0,0,6623,6624,1,0,0,0,6624,6638,1,0,0,0,6625,6627,5,42,0,0,6626,6625,1,0,0,0,6627,6628,1,0,0,0,6628,6626,1,0,0,0,6628,6629,1,0,0,0,6629,6638,1,0,0,0,6630,6632,5,47,0,0,6631,6630,1,0,0,0,6632,6635,1,0,0,0,6633,6631,1,0,0,0,6633,6634,1,0,0,0,6634,6636,1,0,0,0,6635,6633,1,0,0,0,6636,6638,3,1357,676,0,6637,6621,1,0,0,0,6637,6626,1,0,0,0,6637,6633,1,0,0,0,6637,6638,1,0,0,0,6638,6639,1,0,0,0,6639,6640,6,676,9,0,6640,1358,1,0,0,0,6641,6653,5,92,0,0,6642,6652,8,46,0,0,6643,6647,5,34,0,0,6644,6646,8,47,0,0,6645,6644,1,0,0,0,6646,6649,1,0,0,0,6647,6645,1,0,0,0,6647,6648,1,0,0,0,6648,6650,1,0,0,0,6649,6647,1,0,0,0,6650,6652,5,34,0,0,6651,6642,1,0,0,0,6651,6643,1,0,0,0,6652,6655,1,0,0,0,6653,6651,1,0,0,0,6653,6654,1,0,0,0,6654,6663,1,0,0,0,6655,6653,1,0,0,0,6656,6660,5,34,0,0,6657,6659,8,47,0,0,6658,6657,1,0,0,0,6659,6662,1,0,0,0,6660,6658,1,0,0,0,6660,6661,1,0,0,0,6661,6664,1,0,0,0,6662,6660,1,0,0,0,6663,6656,1,0,0,0,6663,6664,1,0,0,0,6664,1360,1,0,0,0,6665,6666,5,92,0,0,6666,6667,5,92,0,0,6667,1362,1,0,0,0,6668,6669,9,0,0,0,6669,1364,1,0,0,0,6670,6671,3,1369,682,0,6671,6672,5,39,0,0,6672,6673,1,0,0,0,6673,6674,6,680,10,0,6674,1366,1,0,0,0,6675,6677,3,1369,682,0,6676,6678,5,92,0,0,6677,6676,1,0,0,0,6677,6678,1,0,0,0,6678,6679,1,0,0,0,6679,6680,5,0,0,1,6680,1368,1,0,0,0,6681,6682,5,39,0,0,6682,6705,5,39,0,0,6683,6701,5,92,0,0,6684,6685,5,120,0,0,6685,6702,7,39,0,0,6686,6687,5,117,0,0,6687,6688,7,39,0,0,6688,6689,7,39,0,0,6689,6690,7,39,0,0,6690,6702,7,39,0,0,6691,6692,5,85,0,0,6692,6693,7,39,0,0,6693,6694,7,39,0,0,6694,6695,7,39,0,0,6695,6696,7,39,0,0,6696,6697,7,39,0,0,6697,6698,7,39,0,0,6698,6699,7,39,0,0,6699,6702,7,39,0,0,6700,6702,8,48,0,0,6701,6684,1,0,0,0,6701,6686,1,0,0,0,6701,6691,1,0,0,0,6701,6700,1,0,0,0,6702,6705,1,0,0,0,6703,6705,8,49,0,0,6704,6681,1,0,0,0,6704,6683,1,0,0,0,6704,6703,1,0,0,0,6705,6708,1,0,0,0,6706,6704,1,0,0,0,6706,6707,1,0,0,0,6707,1370,1,0,0,0,6708,6706,1,0,0,0,6709,6710,3,1375,685,0,6710,6711,5,39,0,0,6711,6712,1,0,0,0,6712,6713,6,683,10,0,6713,1372,1,0,0,0,6714,6716,3,1375,685,0,6715,6717,5,92,0,0,6716,6715,1,0,0,0,6716,6717,1,0,0,0,6717,6718,1,0,0,0,6718,6719,5,0,0,1,6719,1374,1,0,0,0,6720,6721,5,39,0,0,6721,6726,5,39,0,0,6722,6723,5,92,0,0,6723,6726,9,0,0,0,6724,6726,8,49,0,0,6725,6720,1,0,0,0,6725,6722,1,0,0,0,6725,6724,1,0,0,0,6726,6729,1,0,0,0,6727,6725,1,0,0,0,6727,6728,1,0,0,0,6728,1376,1,0,0,0,6729,6727,1,0,0,0,6730,6731,3,1349,672,0,6731,6732,1,0,0,0,6732,6733,6,686,11,0,6733,6734,6,686,7,0,6734,1378,1,0,0,0,6735,6736,3,1351,673,0,6736,6737,1,0,0,0,6737,6738,6,687,12,0,6738,6739,6,687,7,0,6739,6740,6,687,13,0,6740,1380,1,0,0,0,6741,6742,6,688,14,0,6742,6743,1,0,0,0,6743,6744,6,688,8,0,6744,6745,6,688,15,0,6745,1382,1,0,0,0,6746,6747,3,1349,672,0,6747,6748,1,0,0,0,6748,6749,6,689,11,0,6749,6750,6,689,7,0,6750,1384,1,0,0,0,6751,6752,3,1351,673,0,6752,6753,1,0,0,0,6753,6754,6,690,12,0,6754,6755,6,690,7,0,6755,1386,1,0,0,0,6756,6757,5,39,0,0,6757,6758,1,0,0,0,6758,6759,6,691,2,0,6759,6760,6,691,16,0,6760,1388,1,0,0,0,6761,6762,6,692,17,0,6762,6763,1,0,0,0,6763,6764,6,692,8,0,6764,6765,6,692,15,0,6765,1390,1,0,0,0,6766,6768,8,50,0,0,6767,6766,1,0,0,0,6768,6769,1,0,0,0,6769,6767,1,0,0,0,6769,6770,1,0,0,0,6770,6779,1,0,0,0,6771,6775,5,36,0,0,6772,6774,8,50,0,0,6773,6772,1,0,0,0,6774,6777,1,0,0,0,6775,6773,1,0,0,0,6775,6776,1,0,0,0,6776,6779,1,0,0,0,6777,6775,1,0,0,0,6778,6767,1,0,0,0,6778,6771,1,0,0,0,6779,1392,1,0,0,0,6780,6782,5,36,0,0,6781,6783,3,1319,657,0,6782,6781,1,0,0,0,6782,6783,1,0,0,0,6783,6784,1,0,0,0,6784,6785,5,36,0,0,6785,6786,1,0,0,0,6786,6787,4,694,8,0,6787,6788,6,694,18,0,6788,6789,1,0,0,0,6789,6790,6,694,15,0,6790,1394,1,0,0,0,78,0,1,2,3,4,1462,1468,1470,1475,1479,1481,1484,1493,1495,1500,1505,1507,6324,6333,6337,6341,6350,6352,6362,6364,6390,6392,6410,6421,6432,6449,6469,6473,6476,6482,6485,6490,6494,6499,6506,6517,6519,6527,6533,6536,6546,6557,6565,6571,6574,6576,6582,6596,6604,6610,6613,6615,6617,6623,6628,6633,6637,6647,6651,6653,6660,6663,6677,6701,6704,6706,6716,6725,6727,6769,6775,6778,6782,19,1,28,0,7,29,0,3,0,0,5,1,0,1,656,1,5,4,0,1,667,2,0,1,0,6,0,0,1,676,3,2,2,0,7,663,0,7,664,0,2,3,0,1,688,4,4,0,0,2,1,0,1,692,5,1,694,6],Vi.vocabulary=new Ra(Vi.literalNames,Vi.symbolicNames,[]),Vi.decisionsToDFA=Vi._ATN.decisionToState.map(((t,e)=>new ni(t,e))),Vi),rn=class extends Cc{ParseRoutineBody(t){let e=null;for(let S of t.createFunctionOptionItem()){var s,a,r,i,c,n;if(null!==S.LANGUAGE()&&null!==S.nonReservedWordOrSconst()&&null!==(null===(s=S.nonReservedWordOrSconst())||void 0===s?void 0:s.nonReservedWord())&&null!==(null===(a=S.nonReservedWordOrSconst())||void 0===a||null===(r=a.nonReservedWord())||void 0===r?void 0:r.identifier())&&null!==(null===(i=S.nonReservedWordOrSconst())||void 0===i||null===(c=i.nonReservedWord())||void 0===c||null===(n=c.identifier())||void 0===n?void 0:n.Identifier())){var h,E,T,o;e=null===(h=S.nonReservedWordOrSconst())||void 0===h||null===(E=h.nonReservedWord())||void 0===E||null===(T=E.identifier())||void 0===T||null===(o=T.Identifier())||void 0===o?void 0:o.getText();break}}if(null===e)return;let R=null;for(let S of t.createFunctionOptionItem())if(null!==S.functionAs()){R=S;break}if(null!==R){var A;let t=this.GetRoutineBodyString(null===(A=R.functionAs())||void 0===A?void 0:A.sconst(0)),s=this.getPostgreSQLParser(t);switch(e){case"plpgsql":R.functionAs().Definition=s.plsqlroot();break;case"sql":R.functionAs().Definition=s.root()}}}unquote(t){let e=t.length,s="",a=0;for(;a<e;){let r=t.charAt(a);s+=r,"'"===r&&a<e-1&&"'"===t.charAt(a+1)&&a++,a++}return s}GetRoutineBodyString(t){let e=t.anySconst(),s=e.StringConstant();if(null!==s)return this.unquote(this.TrimQuotes(s.getText()));let a=e.UnicodeEscapeStringConstant();if(null!==a)return this.TrimQuotes(a.getText());let r=e.EscapeStringConstant();if(null!==r)return this.TrimQuotes(r.getText());let i="",c=e.DollarText();for(let n of c)i+=n.getText();return i}getPostgreSQLParser(t){let e=Oi.fromString(t),s=new an(e),a=new $i(s);return new cn(a)}TrimQuotes(t){return null===t||0===t.length?t:t.substring(1,t.length-1)}},cn=(Xi=class t extends rn{get grammarFileName(){return"PostgreSqlParser.g4"}get literalNames(){return t.literalNames}get symbolicNames(){return t.symbolicNames}get ruleNames(){return t.ruleNames}get serializedATN(){return t._serializedATN}createFailedPredicateException(t,e){return new Sc(this,t,e)}constructor(e){super(e),this.interpreter=new Ai(this,t._ATN,t.decisionsToDFA,new Si)}root(){let e,s=new nn(this.context,this.state);this.enterRule(s,0,t.RULE_root);try{this.enterOuterAlt(s,1),this.state=1509,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(2===e||31===e||!(e-32&-32)&&1<<e-32&570441729||!(e-65&-32)&&1<<e-65&142606337||105===e||129===e||!(e-138&-32)&&1<<e-138&2159673601||!(e-177&-32)&&1<<e-177&100680739||!(e-232&-32)&&1<<e-232&69244929||!(e-264&-32)&&1<<e-264&1074266113||!(e-298&-32)&&1<<e-298&1346523403||!(e-333&-32)&&1<<e-333&1677983745||!(e-415&-32)&&1<<e-415&537133057||454===e||668===e)&&(this.state=1508,this.statements()),this.state=1511,this.match(t.EOF)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}plsqlRoot(){let e=new hn(this.context,this.state);this.enterRule(e,2,t.RULE_plsqlRoot);try{this.enterOuterAlt(e,1),this.state=1513,this.plsqlFunction()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statements(){let e,s=new En(this.context,this.state);this.enterRule(s,4,t.RULE_statements);try{switch(this.state=1523,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,2,this.context)){case 1:this.enterOuterAlt(s,1),this.state=1515,this.statement(),this.state=1517,this.errorHandler.sync(this),e=this.tokenStream.LA(1),7===e&&(this.state=1516,this.match(t.SEMI));break;case 2:this.enterOuterAlt(s,2),this.state=1519,this.statement(),this.state=1520,this.match(t.SEMI),this.state=1521,this.statements()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}statement(){let e=new Tn(this.context,this.state);this.enterRule(e,6,t.RULE_statement);try{switch(this.state=1647,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,3,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1525,this.alterEventTriggerStatement();break;case 2:this.enterOuterAlt(e,2),this.state=1526,this.alterCollationStatement();break;case 3:this.enterOuterAlt(e,3),this.state=1527,this.alterDatabaseStatement();break;case 4:this.enterOuterAlt(e,4),this.state=1528,this.alterDatabaseSetStatement();break;case 5:this.enterOuterAlt(e,5),this.state=1529,this.alterDefaultPrivilegesStatement();break;case 6:this.enterOuterAlt(e,6),this.state=1530,this.alterDomainStatement();break;case 7:this.enterOuterAlt(e,7),this.state=1531,this.alterEnumStatement();break;case 8:this.enterOuterAlt(e,8),this.state=1532,this.alterExtensionStatement();break;case 9:this.enterOuterAlt(e,9),this.state=1533,this.alterExtensionContentsStatement();break;case 10:this.enterOuterAlt(e,10),this.state=1534,this.alterForeignDataWrapperStatement();break;case 11:this.enterOuterAlt(e,11),this.state=1535,this.alterForeignServerStatement();break;case 12:this.enterOuterAlt(e,12),this.state=1536,this.alterFunctionStatement();break;case 13:this.enterOuterAlt(e,13),this.state=1537,this.alterObjectDependsStatement();break;case 14:this.enterOuterAlt(e,14),this.state=1538,this.alterObjectSchemaStatement();break;case 15:this.enterOuterAlt(e,15),this.state=1539,this.alterOwnerStatement();break;case 16:this.enterOuterAlt(e,16),this.state=1540,this.alterOperatorStatement();break;case 17:this.enterOuterAlt(e,17),this.state=1541,this.alterTypeStatement();break;case 18:this.enterOuterAlt(e,18),this.state=1542,this.alterPolicyStatement();break;case 19:this.enterOuterAlt(e,19),this.state=1543,this.alterSequenceStatement();break;case 20:this.enterOuterAlt(e,20),this.state=1544,this.alterSystemStatement();break;case 21:this.enterOuterAlt(e,21),this.state=1545,this.alterTableStatement();break;case 22:this.enterOuterAlt(e,22),this.state=1546,this.alterTablespaceStatement();break;case 23:this.enterOuterAlt(e,23),this.state=1547,this.alterCompositeTypeStatement();break;case 24:this.enterOuterAlt(e,24),this.state=1548,this.alterPublicationStatement();break;case 25:this.enterOuterAlt(e,25),this.state=1549,this.alterRoleSetStatement();break;case 26:this.enterOuterAlt(e,26),this.state=1550,this.alterRoleStatement();break;case 27:this.enterOuterAlt(e,27),this.state=1551,this.alterSubscriptionStatement();break;case 28:this.enterOuterAlt(e,28),this.state=1552,this.alterStatsStatement();break;case 29:this.enterOuterAlt(e,29),this.state=1553,this.altertsConfigurationStatement();break;case 30:this.enterOuterAlt(e,30),this.state=1554,this.altertsDictionaryStatement();break;case 31:this.enterOuterAlt(e,31),this.state=1555,this.alterUserMappingStatement();break;case 32:this.enterOuterAlt(e,32),this.state=1556,this.analyzeStatement();break;case 33:this.enterOuterAlt(e,33),this.state=1557,this.callStatement();break;case 34:this.enterOuterAlt(e,34),this.state=1558,this.checkpointStatement();break;case 35:this.enterOuterAlt(e,35),this.state=1559,this.closePortalStatement();break;case 36:this.enterOuterAlt(e,36),this.state=1560,this.clusterStatement();break;case 37:this.enterOuterAlt(e,37),this.state=1561,this.commentStatement();break;case 38:this.enterOuterAlt(e,38),this.state=1562,this.setConstraintsStatement();break;case 39:this.enterOuterAlt(e,39),this.state=1563,this.copyStatement();break;case 40:this.enterOuterAlt(e,40),this.state=1564,this.createAccessMethodStatement();break;case 41:this.enterOuterAlt(e,41),this.state=1565,this.createAsStatement();break;case 42:this.enterOuterAlt(e,42),this.state=1566,this.createAssertionStatement();break;case 43:this.enterOuterAlt(e,43),this.state=1567,this.createCastStatement();break;case 44:this.enterOuterAlt(e,44),this.state=1568,this.createConversionStatement();break;case 45:this.enterOuterAlt(e,45),this.state=1569,this.createDomainStatement();break;case 46:this.enterOuterAlt(e,46),this.state=1570,this.createExtensionStatement();break;case 47:this.enterOuterAlt(e,47),this.state=1571,this.createForeignDataWrapperStatement();break;case 48:this.enterOuterAlt(e,48),this.state=1572,this.createForeignServerStatement();break;case 49:this.enterOuterAlt(e,49),this.state=1573,this.createForeignTableStatement();break;case 50:this.enterOuterAlt(e,50),this.state=1574,this.createFunctionStatement();break;case 51:this.enterOuterAlt(e,51),this.state=1575,this.createMaterializedViewStatement();break;case 52:this.enterOuterAlt(e,52),this.state=1576,this.createOperatorClassStatement();break;case 53:this.enterOuterAlt(e,53),this.state=1577,this.createOperatorFamilyStatement();break;case 54:this.enterOuterAlt(e,54),this.state=1578,this.createPublicationStatement();break;case 55:this.enterOuterAlt(e,55),this.state=1579,this.alterOperatorFamilyStatement();break;case 56:this.enterOuterAlt(e,56),this.state=1580,this.createPolicyStatement();break;case 57:this.enterOuterAlt(e,57),this.state=1581,this.createProcedureLangStatement();break;case 58:this.enterOuterAlt(e,58),this.state=1582,this.createSchemaStatement();break;case 59:this.enterOuterAlt(e,59),this.state=1583,this.createSequenceStatement();break;case 60:this.enterOuterAlt(e,60),this.state=1584,this.createStatement();break;case 61:this.enterOuterAlt(e,61),this.state=1585,this.createSubscriptionStatement();break;case 62:this.enterOuterAlt(e,62),this.state=1586,this.createStatsStatement();break;case 63:this.enterOuterAlt(e,63),this.state=1587,this.createTablespaceStatement();break;case 64:this.enterOuterAlt(e,64),this.state=1588,this.createTransformStatement();break;case 65:this.enterOuterAlt(e,65),this.state=1589,this.createTriggerStatement();break;case 66:this.enterOuterAlt(e,66),this.state=1590,this.createEventTriggerStatement();break;case 67:this.enterOuterAlt(e,67),this.state=1591,this.createRoleStatement();break;case 68:this.enterOuterAlt(e,68),this.state=1592,this.createUserMappingStatement();break;case 69:this.enterOuterAlt(e,69),this.state=1593,this.createDatabaseStatement();break;case 70:this.enterOuterAlt(e,70),this.state=1594,this.deallocateStatement();break;case 71:this.enterOuterAlt(e,71),this.state=1595,this.declareCursorStatement();break;case 72:this.enterOuterAlt(e,72),this.state=1596,this.defineStatement();break;case 73:this.enterOuterAlt(e,73),this.state=1597,this.deleteStatement();break;case 74:this.enterOuterAlt(e,74),this.state=1598,this.discardStatement();break;case 75:this.enterOuterAlt(e,75),this.state=1599,this.doStatement();break;case 76:this.enterOuterAlt(e,76),this.state=1600,this.dropCastStatement();break;case 77:this.enterOuterAlt(e,77),this.state=1601,this.dropOperatorClassStatement();break;case 78:this.enterOuterAlt(e,78),this.state=1602,this.dropOperatorFamilyStatement();break;case 79:this.enterOuterAlt(e,79),this.state=1603,this.dropOwnedStatement();break;case 80:this.enterOuterAlt(e,80),this.state=1604,this.dropStatement();break;case 81:this.enterOuterAlt(e,81),this.state=1605,this.dropSubscriptionStatement();break;case 82:this.enterOuterAlt(e,82),this.state=1606,this.dropTablespaceStatement();break;case 83:this.enterOuterAlt(e,83),this.state=1607,this.dropTransformStatement();break;case 84:this.enterOuterAlt(e,84),this.state=1608,this.dropRoleStatement();break;case 85:this.enterOuterAlt(e,85),this.state=1609,this.dropUserMappingStatement();break;case 86:this.enterOuterAlt(e,86),this.state=1610,this.dropDatabaseStatement();break;case 87:this.enterOuterAlt(e,87),this.state=1611,this.executeStatement();break;case 88:this.enterOuterAlt(e,88),this.state=1612,this.explainStatement();break;case 89:this.enterOuterAlt(e,89),this.state=1613,this.fetchStatement();break;case 90:this.enterOuterAlt(e,90),this.state=1614,this.grantStatement();break;case 91:this.enterOuterAlt(e,91),this.state=1615,this.grantPrivilegeStatement();break;case 92:this.enterOuterAlt(e,92),this.state=1616,this.importForeignSchemaStatement();break;case 93:this.enterOuterAlt(e,93),this.state=1617,this.indexStatement();break;case 94:this.enterOuterAlt(e,94),this.state=1618,this.insertStatement();break;case 95:this.enterOuterAlt(e,95),this.state=1619,this.mergeStatement();break;case 96:this.enterOuterAlt(e,96),this.state=1620,this.listenStatement();break;case 97:this.enterOuterAlt(e,97),this.state=1621,this.refreshMaterializedViewStatement();break;case 98:this.enterOuterAlt(e,98),this.state=1622,this.loadStatement();break;case 99:this.enterOuterAlt(e,99),this.state=1623,this.lockStatement();break;case 100:this.enterOuterAlt(e,100),this.state=1624,this.notifyStatement();break;case 101:this.enterOuterAlt(e,101),this.state=1625,this.prepareStatement();break;case 102:this.enterOuterAlt(e,102),this.state=1626,this.reassignOwnedStatement();break;case 103:this.enterOuterAlt(e,103),this.state=1627,this.reindexStatement();break;case 104:this.enterOuterAlt(e,104),this.state=1628,this.removeAggregateStatement();break;case 105:this.enterOuterAlt(e,105),this.state=1629,this.removeFunctionStatement();break;case 106:this.enterOuterAlt(e,106),this.state=1630,this.removeOperatorStatement();break;case 107:this.enterOuterAlt(e,107),this.state=1631,this.renameStatement();break;case 108:this.enterOuterAlt(e,108),this.state=1632,this.revokeStatement();break;case 109:this.enterOuterAlt(e,109),this.state=1633,this.revokePrivilegeStatement();break;case 110:this.enterOuterAlt(e,110),this.state=1634,this.ruleStatement();break;case 111:this.enterOuterAlt(e,111),this.state=1635,this.securityLabelStatement();break;case 112:this.enterOuterAlt(e,112),this.state=1636,this.selectStatement();break;case 113:this.enterOuterAlt(e,113),this.state=1637,this.transactionStatement();break;case 114:this.enterOuterAlt(e,114),this.state=1638,this.truncateStatement();break;case 115:this.enterOuterAlt(e,115),this.state=1639,this.unlistenStatement();break;case 116:this.enterOuterAlt(e,116),this.state=1640,this.updateStatement();break;case 117:this.enterOuterAlt(e,117),this.state=1641,this.vacuumStatement();break;case 118:this.enterOuterAlt(e,118),this.state=1642,this.variableResetStatement();break;case 119:this.enterOuterAlt(e,119),this.state=1643,this.variableSetStatement();break;case 120:this.enterOuterAlt(e,120),this.state=1644,this.variableShowStatement();break;case 121:this.enterOuterAlt(e,121),this.state=1645,this.viewStatement();break;case 122:this.enterOuterAlt(e,122),this.state=1646,this.plsqlConsoleCommand()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}plsqlConsoleCommand(){let e,s=new on(this.context,this.state);this.enterRule(s,8,t.RULE_plsqlConsoleCommand);try{this.enterOuterAlt(s,1),this.state=1649,this.match(t.MetaCommand),this.state=1651,this.errorHandler.sync(this),e=this.tokenStream.LA(1),669===e&&(this.state=1650,this.match(t.EndMetaCommand))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}callStatement(){let e=new Rn(this.context,this.state);this.enterRule(e,10,t.RULE_callStatement);try{this.enterOuterAlt(e,1),this.state=1653,this.match(t.CALL),this.state=1654,this.functionApplication()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalWith(){let e=new An(this.context,this.state);this.enterRule(e,12,t.RULE_optionalWith);try{switch(this.state=1658,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WITH:this.enterOuterAlt(e,1),this.state=1656,this.match(t.WITH);break;case t.EOF:case t.OPEN_PAREN:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.PLUS:case t.MINUS:case t.AND:case t.ARRAY:case t.AS:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CREATE:case t.DEFAULT:case t.DO:case t.FETCH:case t.FROM:case t.GRANT:case t.GROUP_P:case t.IN_P:case t.INTO:case t.NULL_P:case t.TABLE:case t.USER:case t.WHERE:case t.BINARY:case t.FREEZE:case t.IS:case t.OUTER_P:case t.ABSOLUTE_P:case t.ADMIN:case t.BACKWARD:case t.CACHE:case t.CASCADE:case t.CHAIN:case t.CLOSE:case t.COMMIT:case t.CONNECTION:case t.CONTINUE_P:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DELIMITER:case t.ENCODING:case t.ENCRYPTED:case t.ESCAPE:case t.FIRST_P:case t.FORCE:case t.FORWARD:case t.HEADER_P:case t.INCREMENT:case t.INHERIT:case t.INSERT:case t.LAST_P:case t.LOCATION:case t.MAXVALUE:case t.MINVALUE:case t.MOVE:case t.NEXT:case t.NO:case t.OPTION:case t.OWNED:case t.OWNER:case t.PASSWORD:case t.PRIOR:case t.QUOTE:case t.RELATIVE_P:case t.RESET:case t.RESTART:case t.ROLE:case t.ROLLBACK:case t.SCHEMA:case t.SCROLL:case t.SEQUENCE:case t.SET:case t.START:case t.SYSID:case t.TABLESPACE:case t.TEMPLATE:case t.TYPE_P:case t.UNENCRYPTED:case t.VALID:case t.VERSION_P:case t.CALL:case t.CURRENT_P:case t.ROWTYPE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.Integral:case t.Numeric:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalRoleList(){let e,s=new Sn(this.context,this.state);this.enterRule(s,14,t.RULE_optionalRoleList);try{for(this.enterOuterAlt(s,1),this.state=1663,this.errorHandler.sync(this),e=this.tokenStream.LA(1);!(e-33&-32)&&1<<e-33&286268421||!(e-66&-32)&&1<<e-66&67108869||!(e-99&-32)&&1<<e-99&2164391937||!(e-134&-32)&&1<<e-134&1216873473||!(e-167&-32)&&1<<e-167&268435489||!(e-207&-32)&&1<<e-207&35651593||!(e-240&-32)&&1<<e-240&6553601||!(e-272&-32)&&1<<e-272&268452097||!(e-306&-32)&&1<<e-306&1051745||!(e-341&-32)&&1<<e-341&8458241||433===e||434===e||!(e-477&-32)&&1<<e-477&3825197057||!(e-509&-32)&&1<<e-509&3055||!(e-636&-32)&&1<<e-636&100663331;)this.state=1660,this.createRoleElement(),this.state=1665,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterOptionalRoleList(){let e,s=new ln(this.context,this.state);this.enterRule(s,16,t.RULE_alterOptionalRoleList);try{for(this.enterOuterAlt(s,1),this.state=1669,this.errorHandler.sync(this),e=this.tokenStream.LA(1);!(e-33&-32)&&1<<e-33&286268421||66===e||92===e||!(e-99&-32)&&1<<e-99&2164391937||!(e-144&-32)&&1<<e-144&278012417||!(e-195&-32)&&1<<e-195&36865||!(e-228&-32)&&1<<e-228&1073745937||!(e-261&-32)&&1<<e-261&34080771||!(e-300&-32)&&1<<e-300&67311681||!(e-353&-32)&&1<<e-353&2065||433===e||434===e||!(e-477&-32)&&1<<e-477&3825197057||!(e-509&-32)&&1<<e-509&3055||!(e-636&-32)&&1<<e-636&100663331;)this.state=1666,this.alterRoleElemement(),this.state=1671,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterRoleElemement(){let e,s=new On(this.context,this.state);this.enterRule(s,18,t.RULE_alterRoleElemement);try{switch(this.state=1691,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.PASSWORD:switch(this.enterOuterAlt(s,1),this.state=1672,this.match(t.PASSWORD),this.state=1675,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.EscapeStringConstant:this.state=1673,this.sconst();break;case t.NULL_P:this.state=1674,this.match(t.NULL_P);break;default:throw new Ei(this)}break;case t.ENCRYPTED:case t.UNENCRYPTED:this.enterOuterAlt(s,2),this.state=1677,e=this.tokenStream.LA(1),195===e||357===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1678,this.match(t.PASSWORD),this.state=1679,this.sconst();break;case t.INHERIT:this.enterOuterAlt(s,3),this.state=1680,this.match(t.INHERIT);break;case t.CONNECTION:this.enterOuterAlt(s,4),this.state=1681,this.match(t.CONNECTION),this.state=1682,this.match(t.LIMIT),this.state=1683,this.signedIconst();break;case t.VALID:this.enterOuterAlt(s,5),this.state=1684,this.match(t.VALID),this.state=1685,this.match(t.UNTIL),this.state=1686,this.sconst();break;case t.GROUP_P:case t.USER:case t.ROLE:this.enterOuterAlt(s,6),this.state=1687,this.roleOrAliases(),this.state=1688,this.roleNameList();break;case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.OUTER_P:case t.ABSOLUTE_P:case t.BACKWARD:case t.CHAIN:case t.CLOSE:case t.COMMIT:case t.CONTINUE_P:case t.CURSOR:case t.FIRST_P:case t.FORWARD:case t.INSERT:case t.LAST_P:case t.MOVE:case t.NEXT:case t.NO:case t.OPTION:case t.PRIOR:case t.RELATIVE_P:case t.RESET:case t.ROLLBACK:case t.SCHEMA:case t.SCROLL:case t.SET:case t.TYPE_P:case t.CALL:case t.CURRENT_P:case t.ROWTYPE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(s,7),this.state=1690,this.identifier();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createRoleElement(){let e,s=new In(this.context,this.state);this.enterRule(s,20,t.RULE_createRoleElement);try{switch(this.state=1704,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,11,this.context)){case 1:this.enterOuterAlt(s,1),this.state=1693,this.alterRoleElemement();break;case 2:this.enterOuterAlt(s,2),this.state=1694,this.match(t.SYSID),this.state=1695,this.iconst();break;case 3:this.enterOuterAlt(s,3),this.state=1696,this.match(t.ADMIN),this.state=1697,this.roleNameList();break;case 4:this.enterOuterAlt(s,4),this.state=1699,this.errorHandler.sync(this),e=this.tokenStream.LA(1),68===e&&(this.state=1698,this.match(t.IN_P)),this.state=1701,this.roleOrAliases(),this.state=1702,this.roleNameList()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createRoleStatement(){let e=new un(this.context,this.state);this.enterRule(e,22,t.RULE_createRoleStatement);try{this.enterOuterAlt(e,1),this.state=1706,this.match(t.CREATE),this.state=1707,this.roleOrAliases(),this.state=1708,this.roleName(),this.state=1709,this.optionalWith(),this.state=1710,this.optionalRoleList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterRoleStatement(){let e=new Nn(this.context,this.state);this.enterRule(e,24,t.RULE_alterRoleStatement);try{this.enterOuterAlt(e,1),this.state=1712,this.match(t.ALTER),this.state=1713,this.roleOrAliases(),this.state=1714,this.roleName(),this.state=1715,this.optionalWith(),this.state=1716,this.alterOptionalRoleList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalInDatabase(){let e=new Ln(this.context,this.state);this.enterRule(e,26,t.RULE_optionalInDatabase);try{switch(this.state=1722,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.RESET:case t.SET:this.enterOuterAlt(e,1);break;case t.IN_P:this.enterOuterAlt(e,2),this.state=1719,this.match(t.IN_P),this.state=1720,this.match(t.DATABASE),this.state=1721,this.databaseName();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterRoleSetStatement(){let e,s=new Cn(this.context,this.state);this.enterRule(s,28,t.RULE_alterRoleSetStatement);try{this.enterOuterAlt(s,1),this.state=1724,this.match(t.ALTER),this.state=1725,this.roleOrAliases(),this.state=1727,this.errorHandler.sync(this),e=this.tokenStream.LA(1),30===e&&(this.state=1726,this.match(t.ALL)),this.state=1729,this.roleName(),this.state=1730,this.optionalInDatabase(),this.state=1731,this.setResetClause()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}dropRoleStatement(){let e=new _n(this.context,this.state);this.enterRule(e,30,t.RULE_dropRoleStatement);try{if(this.enterOuterAlt(e,1),1===(this.state=1733,this.match(t.DROP),this.state=1734,this.roleOrAliases(),this.state=1737,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,14,this.context)))this.state=1735,this.match(t.IF_P),this.state=1736,this.match(t.EXISTS);this.state=1739,this.roleNameList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}addOrDrop(){let e,s=new Pn(this.context,this.state);this.enterRule(s,32,t.RULE_addOrDrop);try{this.enterOuterAlt(s,1),this.state=1741,e=this.tokenStream.LA(1),133===e||191===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createSchemaStatement(){let e=new Mn(this.context,this.state);this.enterRule(e,34,t.RULE_createSchemaStatement);try{if(this.enterOuterAlt(e,1),1===(this.state=1743,this.match(t.CREATE),this.state=1744,this.match(t.SCHEMA),this.state=1748,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,15,this.context)))this.state=1745,this.match(t.IF_P),this.state=1746,this.match(t.NOT),this.state=1747,this.match(t.EXISTS);switch(this.state=1755,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,16,this.context)){case 1:this.state=1750,this.optionalSchemaName(),this.state=1751,this.match(t.AUTHORIZATION),this.state=1752,this.roleName();break;case 2:this.state=1754,this.columnId()}this.state=1757,this.optionalSchemaList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalSchemaName(){let e=new dn(this.context,this.state);this.enterRule(e,36,t.RULE_optionalSchemaName);try{switch(this.state=1761,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,1),this.state=1759,this.columnId();break;case t.AUTHORIZATION:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalSchemaList(){let e,s=new Un(this.context,this.state);this.enterRule(s,38,t.RULE_optionalSchemaList);try{for(this.enterOuterAlt(s,1),this.state=1766,this.errorHandler.sync(this),e=this.tokenStream.LA(1);46===e||65===e;)this.state=1763,this.schemaStatement(),this.state=1768,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}schemaStatement(){let e=new mn(this.context,this.state);this.enterRule(e,40,t.RULE_schemaStatement);try{switch(this.state=1775,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,19,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1769,this.createStatement();break;case 2:this.enterOuterAlt(e,2),this.state=1770,this.indexStatement();break;case 3:this.enterOuterAlt(e,3),this.state=1771,this.createSequenceStatement();break;case 4:this.enterOuterAlt(e,4),this.state=1772,this.createTriggerStatement();break;case 5:this.enterOuterAlt(e,5),this.state=1773,this.grantStatement();break;case 6:this.enterOuterAlt(e,6),this.state=1774,this.viewStatement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}variableSetStatement(){let e,s=new Dn(this.context,this.state);this.enterRule(s,42,t.RULE_variableSetStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=1777,this.match(t.SET),this.state=1779,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,20,this.context)))this.state=1778,e=this.tokenStream.LA(1),245===e||325===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);this.state=1781,this.setStatementEnding()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}setStatementEnding(){let e=new pn(this.context,this.state);this.enterRule(e,44,t.RULE_setStatementEnding);try{switch(this.state=1791,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,21,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1783,this.match(t.TRANSACTION),this.state=1784,this.transactionModeList();break;case 2:this.enterOuterAlt(e,2),this.state=1785,this.match(t.SESSION),this.state=1786,this.match(t.CHARACTERISTICS),this.state=1787,this.match(t.AS),this.state=1788,this.match(t.TRANSACTION),this.state=1789,this.transactionModeList();break;case 3:this.enterOuterAlt(e,3),this.state=1790,this.setStatementMore()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}genericSetClause(){let e,s=new gn(this.context,this.state);this.enterRule(s,46,t.RULE_genericSetClause);try{this.enterOuterAlt(s,1),this.state=1793,this.variableName(),this.state=1794,e=this.tokenStream.LA(1),10===e||94===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1795,this.variableList()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}setStatementMore(){let e=new xn(this.context,this.state);this.enterRule(e,48,t.RULE_setStatementMore);try{switch(this.state=1823,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,22,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1797,this.genericSetClause();break;case 2:this.enterOuterAlt(e,2),this.state=1798,this.variableName(),this.state=1799,this.match(t.FROM),this.state=1800,this.match(t.CURRENT_P);break;case 3:this.enterOuterAlt(e,3),this.state=1802,this.match(t.TIME),this.state=1803,this.match(t.ZONE),this.state=1804,this.zoneValue();break;case 4:this.enterOuterAlt(e,4),this.state=1805,this.match(t.CATALOG),this.state=1806,this.sconst();break;case 5:this.enterOuterAlt(e,5),this.state=1807,this.match(t.SCHEMA),this.state=1808,this.schemaName();break;case 6:this.enterOuterAlt(e,6),this.state=1809,this.match(t.NAMES),this.state=1810,this.optionalEncoding();break;case 7:this.enterOuterAlt(e,7),this.state=1811,this.roleOrAliases(),this.state=1812,this.nonReservedWordOrSconst();break;case 8:this.enterOuterAlt(e,8),this.state=1814,this.match(t.SESSION),this.state=1815,this.match(t.AUTHORIZATION),this.state=1816,this.nonReservedWordOrSconst();break;case 9:this.enterOuterAlt(e,9),this.state=1817,this.match(t.XML_P),this.state=1818,this.match(t.OPTION),this.state=1819,this.documentOrContent();break;case 10:this.enterOuterAlt(e,10),this.state=1820,this.match(t.TRANSACTION),this.state=1821,this.match(t.SNAPSHOT),this.state=1822,this.sconst()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}variableName(){let e,s=new kn(this.context,this.state);this.enterRule(s,50,t.RULE_variableName);try{for(this.enterOuterAlt(s,1),this.state=1825,this.columnId(),this.state=1830,this.errorHandler.sync(this),e=this.tokenStream.LA(1);11===e;)this.state=1826,this.match(t.DOT),this.state=1827,this.columnId(),this.state=1832,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}variableList(){let e,s=new Hn(this.context,this.state);this.enterRule(s,52,t.RULE_variableList);try{for(this.enterOuterAlt(s,1),this.state=1833,this.variableValue(),this.state=1838,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=1834,this.match(t.COMMA),this.state=1835,this.variableValue(),this.state=1840,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}variableValue(){let e=new Gn(this.context,this.state);this.enterRule(e,54,t.RULE_variableValue);try{switch(this.state=1843,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FALSE_P:case t.FETCH:case t.ON:case t.TABLE:case t.TRUE_P:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:this.enterOuterAlt(e,1),this.state=1841,this.booleanOrString();break;case t.PLUS:case t.MINUS:case t.Integral:case t.Numeric:this.enterOuterAlt(e,2),this.state=1842,this.numericOnly();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}isoLevel(){let e,s=new Fn(this.context,this.state);this.enterRule(s,56,t.RULE_isoLevel);try{switch(this.state=1850,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.READ:this.enterOuterAlt(s,1),this.state=1845,this.match(t.READ),this.state=1846,e=this.tokenStream.LA(1),162===e||356===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case t.REPEATABLE:this.enterOuterAlt(s,2),this.state=1847,this.match(t.REPEATABLE),this.state=1848,this.match(t.READ);break;case t.SERIALIZABLE:this.enterOuterAlt(s,3),this.state=1849,this.match(t.SERIALIZABLE);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}booleanOrString(){let e=new vn(this.context,this.state);this.enterRule(e,58,t.RULE_booleanOrString);try{switch(this.state=1856,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.TRUE_P:this.enterOuterAlt(e,1),this.state=1852,this.match(t.TRUE_P);break;case t.FALSE_P:this.enterOuterAlt(e,2),this.state=1853,this.match(t.FALSE_P);break;case t.ON:this.enterOuterAlt(e,3),this.state=1854,this.match(t.ON);break;case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:this.enterOuterAlt(e,4),this.state=1855,this.nonReservedWordOrSconst();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}zoneValue(){let e=new Bn(this.context,this.state);this.enterRule(e,60,t.RULE_zoneValue);try{switch(this.state=1873,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,28,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1858,this.sconst();break;case 2:this.enterOuterAlt(e,2),this.state=1859,this.identifier();break;case 3:this.enterOuterAlt(e,3),this.state=1860,this.constInterval(),this.state=1861,this.sconst(),this.state=1862,this.optionalInterval();break;case 4:this.enterOuterAlt(e,4),this.state=1864,this.constInterval(),this.state=1865,this.match(t.OPEN_PAREN),this.state=1866,this.iconst(),this.state=1867,this.match(t.CLOSE_PAREN),this.state=1868,this.sconst();break;case 5:this.enterOuterAlt(e,5),this.state=1870,this.numericOnly();break;case 6:this.enterOuterAlt(e,6),this.state=1871,this.match(t.DEFAULT);break;case 7:this.enterOuterAlt(e,7),this.state=1872,this.match(t.LOCAL)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalEncoding(){let e=new yn(this.context,this.state);this.enterRule(e,62,t.RULE_optionalEncoding);try{switch(this.state=1878,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.EscapeStringConstant:this.enterOuterAlt(e,1),this.state=1875,this.sconst();break;case t.DEFAULT:this.enterOuterAlt(e,2),this.state=1876,this.match(t.DEFAULT);break;case t.EOF:case t.SEMI:case t.AS:case t.INTO:case t.NOT:case t.WINDOW:case t.CALLED:case t.COST:case t.EXTERNAL:case t.IMMUTABLE:case t.LANGUAGE:case t.LEAKPROOF:case t.RESET:case t.RESTRICT:case t.RETURNS:case t.ROWS:case t.SECURITY:case t.SET:case t.STABLE:case t.STRICT_P:case t.VOLATILE:case t.TRANSFORM:case t.SUPPORT:case t.PARALLEL:this.enterOuterAlt(e,3);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}nonReservedWordOrSconst(){let e=new fn(this.context,this.state);this.enterRule(e,64,t.RULE_nonReservedWordOrSconst);try{switch(this.state=1882,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,1),this.state=1880,this.nonReservedWord();break;case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.EscapeStringConstant:this.enterOuterAlt(e,2),this.state=1881,this.sconst();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}variableResetStatement(){let e=new Yn(this.context,this.state);this.enterRule(e,66,t.RULE_variableResetStatement);try{this.enterOuterAlt(e,1),this.state=1884,this.match(t.RESET),this.state=1885,this.resetClauseRest()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}resetClauseRest(){let e=new wn(this.context,this.state);this.enterRule(e,68,t.RULE_resetClauseRest);try{switch(this.state=1895,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,31,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1887,this.genericResetClause();break;case 2:this.enterOuterAlt(e,2),this.state=1888,this.match(t.TIME),this.state=1889,this.match(t.ZONE);break;case 3:this.enterOuterAlt(e,3),this.state=1890,this.match(t.TRANSACTION),this.state=1891,this.match(t.ISOLATION),this.state=1892,this.match(t.LEVEL);break;case 4:this.enterOuterAlt(e,4),this.state=1893,this.match(t.SESSION),this.state=1894,this.match(t.AUTHORIZATION)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}genericResetClause(){let e=new bn(this.context,this.state);this.enterRule(e,70,t.RULE_genericResetClause);try{switch(this.state=1899,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,1),this.state=1897,this.variableName();break;case t.ALL:this.enterOuterAlt(e,2),this.state=1898,this.match(t.ALL);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}setResetClause(){let e=new Wn(this.context,this.state);this.enterRule(e,72,t.RULE_setResetClause);try{switch(this.state=1904,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SET:this.enterOuterAlt(e,1),this.state=1901,this.match(t.SET),this.state=1902,this.setStatementEnding();break;case t.RESET:this.enterOuterAlt(e,2),this.state=1903,this.variableResetStatement();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}functionSetResetClause(){let e=new Vn(this.context,this.state);this.enterRule(e,74,t.RULE_functionSetResetClause);try{switch(this.state=1909,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SET:this.enterOuterAlt(e,1),this.state=1906,this.match(t.SET),this.state=1907,this.setStatementMore();break;case t.RESET:this.enterOuterAlt(e,2),this.state=1908,this.variableResetStatement();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}variableShowStatement(){let e=new Xn(this.context,this.state);this.enterRule(e,76,t.RULE_variableShowStatement);try{switch(this.enterOuterAlt(e,1),this.state=1911,this.match(t.SHOW),this.state=1921,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,35,this.context)){case 1:this.state=1912,this.variableName();break;case 2:this.state=1913,this.match(t.TIME),this.state=1914,this.match(t.ZONE);break;case 3:this.state=1915,this.match(t.TRANSACTION),this.state=1916,this.match(t.ISOLATION),this.state=1917,this.match(t.LEVEL);break;case 4:this.state=1918,this.match(t.SESSION),this.state=1919,this.match(t.AUTHORIZATION);break;case 5:this.state=1920,this.match(t.ALL)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}setConstraintsStatement(){let e=new Kn(this.context,this.state);this.enterRule(e,78,t.RULE_setConstraintsStatement);try{this.enterOuterAlt(e,1),this.state=1923,this.match(t.SET),this.state=1924,this.match(t.CONSTRAINTS),this.state=1925,this.constraintsSetList(),this.state=1926,this.constraintsSetMode()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}constraintsSetList(){let e=new Qn(this.context,this.state);this.enterRule(e,80,t.RULE_constraintsSetList);try{switch(this.state=1930,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ALL:this.enterOuterAlt(e,1),this.state=1928,this.match(t.ALL);break;case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,2),this.state=1929,this.qualifiedNameList();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}constraintsSetMode(){let e,s=new Jn(this.context,this.state);this.enterRule(s,82,t.RULE_constraintsSetMode);try{this.enterOuterAlt(s,1),this.state=1932,e=this.tokenStream.LA(1),180===e||221===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}checkpointStatement(){let e=new Zn(this.context,this.state);this.enterRule(e,84,t.RULE_checkpointStatement);try{this.enterOuterAlt(e,1),this.state=1934,this.match(t.CHECKPOINT)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}discardStatement(){let e,s=new qn(this.context,this.state);this.enterRule(s,86,t.RULE_discardStatement);try{this.enterOuterAlt(s,1),this.state=1936,this.match(t.DISCARD),this.state=1937,e=this.tokenStream.LA(1),30===e||281===e||!(e-322&-32)&&1<<e-322&41943041?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterTableStatement(){let e,s=new jn(this.context,this.state);this.enterRule(s,88,t.RULE_alterTableStatement);try{switch(this.state=2039,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,47,this.context)){case 1:if(this.enterOuterAlt(s,1),1===(this.state=1939,this.match(t.ALTER),this.state=1940,this.match(t.TABLE),this.state=1943,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,37,this.context)))this.state=1941,this.match(t.IF_P),this.state=1942,this.match(t.EXISTS);switch(this.state=1945,this.relationExpression(),this.state=1948,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NOT:case t.ADD_P:case t.ALTER:case t.CLUSTER:case t.DISABLE_P:case t.DROP:case t.ENABLE_P:case t.FORCE:case t.INHERIT:case t.NO:case t.OF:case t.OPTIONS:case t.OWNER:case t.REPLICA:case t.RESET:case t.SET:case t.VALIDATE:this.state=1946,this.alterTableCommands();break;case t.ATTACH:case t.DETACH:this.state=1947,this.partitionCommand();break;default:throw new Ei(this)}break;case 2:this.enterOuterAlt(s,2),this.state=1950,this.match(t.ALTER),this.state=1951,this.match(t.TABLE),this.state=1952,this.match(t.ALL),this.state=1953,this.match(t.IN_P),this.state=1954,this.match(t.TABLESPACE),this.state=1955,this.name(),this.state=1959,this.errorHandler.sync(this),e=this.tokenStream.LA(1),274===e&&(this.state=1956,this.match(t.OWNED),this.state=1957,this.match(t.BY),this.state=1958,this.roleNameList()),this.state=1961,this.match(t.SET),this.state=1962,this.match(t.TABLESPACE),this.state=1963,this.name(),this.state=1964,this.optionalNowait();break;case 3:if(this.enterOuterAlt(s,3),1===(this.state=1966,this.match(t.ALTER),this.state=1967,this.match(t.INDEX),this.state=1970,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,40,this.context)))this.state=1968,this.match(t.IF_P),this.state=1969,this.match(t.EXISTS);switch(this.state=1972,this.indexName(),this.state=1975,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NOT:case t.ADD_P:case t.ALTER:case t.CLUSTER:case t.DISABLE_P:case t.DROP:case t.ENABLE_P:case t.FORCE:case t.INHERIT:case t.NO:case t.OF:case t.OPTIONS:case t.OWNER:case t.REPLICA:case t.RESET:case t.SET:case t.VALIDATE:this.state=1973,this.alterTableCommands();break;case t.ATTACH:this.state=1974,this.indexPartitionCommand();break;default:throw new Ei(this)}break;case 4:this.enterOuterAlt(s,4),this.state=1977,this.match(t.ALTER),this.state=1978,this.match(t.INDEX),this.state=1979,this.match(t.ALL),this.state=1980,this.match(t.IN_P),this.state=1981,this.match(t.TABLESPACE),this.state=1982,this.name(),this.state=1986,this.errorHandler.sync(this),e=this.tokenStream.LA(1),274===e&&(this.state=1983,this.match(t.OWNED),this.state=1984,this.match(t.BY),this.state=1985,this.roleNameList()),this.state=1988,this.match(t.SET),this.state=1989,this.match(t.TABLESPACE),this.state=1990,this.name(),this.state=1991,this.optionalNowait();break;case 5:if(this.enterOuterAlt(s,5),1===(this.state=1993,this.match(t.ALTER),this.state=1994,this.match(t.VIEW),this.state=1997,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,43,this.context)))this.state=1995,this.match(t.IF_P),this.state=1996,this.match(t.EXISTS);this.state=1999,this.viewName(),this.state=2e3,this.alterTableCommands();break;case 6:if(this.enterOuterAlt(s,6),1===(this.state=2002,this.match(t.ALTER),this.state=2003,this.match(t.MATERIALIZED),this.state=2004,this.match(t.VIEW),this.state=2007,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,44,this.context)))this.state=2005,this.match(t.IF_P),this.state=2006,this.match(t.EXISTS);this.state=2009,this.qualifiedName(),this.state=2010,this.alterTableCommands();break;case 7:this.enterOuterAlt(s,7),this.state=2012,this.match(t.ALTER),this.state=2013,this.match(t.MATERIALIZED),this.state=2014,this.match(t.VIEW),this.state=2015,this.match(t.ALL),this.state=2016,this.match(t.IN_P),this.state=2017,this.match(t.TABLESPACE),this.state=2018,this.name(),this.state=2022,this.errorHandler.sync(this),e=this.tokenStream.LA(1),274===e&&(this.state=2019,this.match(t.OWNED),this.state=2020,this.match(t.BY),this.state=2021,this.roleNameList()),this.state=2024,this.match(t.SET),this.state=2025,this.match(t.TABLESPACE),this.state=2026,this.name(),this.state=2027,this.optionalNowait();break;case 8:if(this.enterOuterAlt(s,8),1===(this.state=2029,this.match(t.ALTER),this.state=2030,this.match(t.FOREIGN),this.state=2031,this.match(t.TABLE),this.state=2034,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,46,this.context)))this.state=2032,this.match(t.IF_P),this.state=2033,this.match(t.EXISTS);this.state=2036,this.relationExpression(),this.state=2037,this.alterTableCommands()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterTableCommands(){let e,s=new zn(this.context,this.state);this.enterRule(s,90,t.RULE_alterTableCommands);try{for(this.enterOuterAlt(s,1),this.state=2041,this.alterTableCommand(),this.state=2046,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=2042,this.match(t.COMMA),this.state=2043,this.alterTableCommand(),this.state=2048,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}partitionCommand(){let e=new $n(this.context,this.state);this.enterRule(e,92,t.RULE_partitionCommand);try{switch(this.state=2057,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ATTACH:this.enterOuterAlt(e,1),this.state=2049,this.match(t.ATTACH),this.state=2050,this.match(t.PARTITION),this.state=2051,this.qualifiedName(),this.state=2052,this.partitionBoundSpecification();break;case t.DETACH:this.enterOuterAlt(e,2),this.state=2054,this.match(t.DETACH),this.state=2055,this.match(t.PARTITION),this.state=2056,this.qualifiedName();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}indexPartitionCommand(){let e=new th(this.context,this.state);this.enterRule(e,94,t.RULE_indexPartitionCommand);try{this.enterOuterAlt(e,1),this.state=2059,this.match(t.ATTACH),this.state=2060,this.match(t.PARTITION),this.state=2061,this.qualifiedName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterTableCommand(){let e,s=new eh(this.context,this.state);this.enterRule(s,96,t.RULE_alterTableCommand);try{switch(this.state=2304,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,53,this.context)){case 1:this.enterOuterAlt(s,1),this.state=2063,this.match(t.ADD_P),this.state=2064,this.columnDefinition();break;case 2:this.enterOuterAlt(s,2),this.state=2065,this.match(t.ADD_P),this.state=2066,this.match(t.IF_P),this.state=2067,this.match(t.NOT),this.state=2068,this.match(t.EXISTS),this.state=2069,this.columnDefinition();break;case 3:this.enterOuterAlt(s,3),this.state=2070,this.match(t.ADD_P),this.state=2071,this.match(t.COLUMN),this.state=2072,this.columnDefinition();break;case 4:this.enterOuterAlt(s,4),this.state=2073,this.match(t.ADD_P),this.state=2074,this.match(t.COLUMN),this.state=2075,this.match(t.IF_P),this.state=2076,this.match(t.NOT),this.state=2077,this.match(t.EXISTS),this.state=2078,this.columnDefinition();break;case 5:this.enterOuterAlt(s,5),this.state=2079,this.match(t.ALTER),this.state=2080,this.optionalColumn(),this.state=2081,this.columnId(),this.state=2082,this.alterColumnDefault();break;case 6:this.enterOuterAlt(s,6),this.state=2084,this.match(t.ALTER),this.state=2085,this.optionalColumn(),this.state=2086,this.columnId(),this.state=2087,this.match(t.DROP),this.state=2088,this.match(t.NOT),this.state=2089,this.match(t.NULL_P);break;case 7:this.enterOuterAlt(s,7),this.state=2091,this.match(t.ALTER),this.state=2092,this.optionalColumn(),this.state=2093,this.columnId(),this.state=2094,this.match(t.SET),this.state=2095,this.match(t.NOT),this.state=2096,this.match(t.NULL_P);break;case 8:this.enterOuterAlt(s,8),this.state=2098,this.match(t.ALTER),this.state=2099,this.optionalColumn(),this.state=2100,this.columnId(),this.state=2101,this.match(t.DROP),this.state=2102,this.match(t.EXPRESSION);break;case 9:this.enterOuterAlt(s,9),this.state=2104,this.match(t.ALTER),this.state=2105,this.optionalColumn(),this.state=2106,this.columnId(),this.state=2107,this.match(t.DROP),this.state=2108,this.match(t.EXPRESSION),this.state=2109,this.match(t.IF_P),this.state=2110,this.match(t.EXISTS);break;case 10:this.enterOuterAlt(s,10),this.state=2112,this.match(t.ALTER),this.state=2113,this.optionalColumn(),this.state=2114,this.columnId(),this.state=2115,this.match(t.SET),this.state=2116,this.match(t.STATISTICS),this.state=2117,this.signedIconst();break;case 11:this.enterOuterAlt(s,11),this.state=2119,this.match(t.ALTER),this.state=2120,this.optionalColumn(),this.state=2121,this.iconst(),this.state=2122,this.match(t.SET),this.state=2123,this.match(t.STATISTICS),this.state=2124,this.signedIconst();break;case 12:this.enterOuterAlt(s,12),this.state=2126,this.match(t.ALTER),this.state=2127,this.optionalColumn(),this.state=2128,this.columnId(),this.state=2129,this.match(t.SET),this.state=2130,this.relOptions();break;case 13:this.enterOuterAlt(s,13),this.state=2132,this.match(t.ALTER),this.state=2133,this.optionalColumn(),this.state=2134,this.columnId(),this.state=2135,this.match(t.RESET),this.state=2136,this.relOptions();break;case 14:this.enterOuterAlt(s,14),this.state=2138,this.match(t.ALTER),this.state=2139,this.optionalColumn(),this.state=2140,this.columnId(),this.state=2141,this.match(t.SET),this.state=2142,this.match(t.STORAGE),this.state=2143,this.columnId();break;case 15:this.enterOuterAlt(s,15),this.state=2145,this.match(t.ALTER),this.state=2146,this.optionalColumn(),this.state=2147,this.columnId(),this.state=2148,this.match(t.ADD_P),this.state=2149,this.match(t.GENERATED),this.state=2150,this.generatedWhen(),this.state=2151,this.match(t.AS),this.state=2152,this.match(t.IDENTITY_P),this.state=2153,this.optionalParenthesizedSeqOptionsList();break;case 16:this.enterOuterAlt(s,16),this.state=2155,this.match(t.ALTER),this.state=2156,this.optionalColumn(),this.state=2157,this.columnId(),this.state=2158,this.alterIdentityColumnOptionList();break;case 17:this.enterOuterAlt(s,17),this.state=2160,this.match(t.ALTER),this.state=2161,this.optionalColumn(),this.state=2162,this.columnId(),this.state=2163,this.match(t.DROP),this.state=2164,this.match(t.IDENTITY_P);break;case 18:this.enterOuterAlt(s,18),this.state=2166,this.match(t.ALTER),this.state=2167,this.optionalColumn(),this.state=2168,this.columnId(),this.state=2169,this.match(t.DROP),this.state=2170,this.match(t.IDENTITY_P),this.state=2171,this.match(t.IF_P),this.state=2172,this.match(t.EXISTS);break;case 19:this.enterOuterAlt(s,19),this.state=2174,this.match(t.DROP),this.state=2175,this.optionalColumn(),this.state=2176,this.match(t.IF_P),this.state=2177,this.match(t.EXISTS),this.state=2178,this.columnId(),this.state=2179,this.optionalDropBehavior();break;case 20:this.enterOuterAlt(s,20),this.state=2181,this.match(t.DROP),this.state=2182,this.optionalColumn(),this.state=2183,this.columnId(),this.state=2184,this.optionalDropBehavior();break;case 21:this.enterOuterAlt(s,21),this.state=2186,this.match(t.ALTER),this.state=2187,this.optionalColumn(),this.state=2188,this.columnId(),this.state=2189,this.optionalSetData(),this.state=2190,this.match(t.TYPE_P),this.state=2191,this.typeName(),this.state=2192,this.optionalCollateClause(),this.state=2193,this.alterUsing();break;case 22:this.enterOuterAlt(s,22),this.state=2195,this.match(t.ALTER),this.state=2196,this.optionalColumn(),this.state=2197,this.columnId(),this.state=2198,this.alterGenericOptions();break;case 23:this.enterOuterAlt(s,23),this.state=2200,this.match(t.ADD_P),this.state=2201,this.tableConstraint();break;case 24:this.enterOuterAlt(s,24),this.state=2202,this.match(t.ALTER),this.state=2203,this.match(t.CONSTRAINT),this.state=2204,this.constraintName(),this.state=2206,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=2205,this.constraintAttributeElement(),this.state=2208,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(!(e-54&-32)&&1<<e-54&8421377||262===e);break;case 25:this.enterOuterAlt(s,25),this.state=2210,this.match(t.VALIDATE),this.state=2211,this.match(t.CONSTRAINT),this.state=2212,this.constraintName();break;case 26:if(this.enterOuterAlt(s,26),1===(this.state=2213,this.match(t.DROP),this.state=2214,this.match(t.CONSTRAINT),this.state=2217,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,51,this.context)))this.state=2215,this.match(t.IF_P),this.state=2216,this.match(t.EXISTS);this.state=2219,this.constraintName(),this.state=2220,this.optionalDropBehavior();break;case 27:this.enterOuterAlt(s,27),this.state=2222,this.match(t.SET),this.state=2223,this.match(t.WITHOUT),this.state=2224,this.match(t.OIDS);break;case 28:this.enterOuterAlt(s,28),this.state=2225,this.match(t.CLUSTER),this.state=2226,this.match(t.ON),this.state=2227,this.name();break;case 29:this.enterOuterAlt(s,29),this.state=2228,this.match(t.SET),this.state=2229,this.match(t.WITHOUT),this.state=2230,this.match(t.CLUSTER);break;case 30:this.enterOuterAlt(s,30),this.state=2231,this.match(t.SET),this.state=2232,this.match(t.LOGGED);break;case 31:this.enterOuterAlt(s,31),this.state=2233,this.match(t.SET),this.state=2234,this.match(t.UNLOGGED);break;case 32:this.enterOuterAlt(s,32),this.state=2235,this.match(t.ENABLE_P),this.state=2237,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(139===e||305===e)&&(this.state=2236,e=this.tokenStream.LA(1),139===e||305===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2239,this.match(t.TRIGGER),this.state=2240,this.triggerName();break;case 33:this.enterOuterAlt(s,33),this.state=2241,this.match(t.ENABLE_P),this.state=2242,this.match(t.TRIGGER),this.state=2243,e=this.tokenStream.LA(1),30===e||99===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case 34:this.enterOuterAlt(s,34),this.state=2244,this.match(t.DISABLE_P),this.state=2245,this.match(t.TRIGGER),this.state=2246,this.triggerName();break;case 35:this.enterOuterAlt(s,35),this.state=2247,this.match(t.DISABLE_P),this.state=2248,this.match(t.TRIGGER),this.state=2249,e=this.tokenStream.LA(1),30===e||99===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case 36:this.enterOuterAlt(s,36),this.state=2250,this.match(t.ENABLE_P),this.state=2251,this.match(t.RULE),this.state=2252,this.name();break;case 37:this.enterOuterAlt(s,37),this.state=2253,this.match(t.ENABLE_P),this.state=2254,this.match(t.ALWAYS),this.state=2255,this.match(t.RULE),this.state=2256,this.name();break;case 38:this.enterOuterAlt(s,38),this.state=2257,this.match(t.ENABLE_P),this.state=2258,this.match(t.REPLICA),this.state=2259,this.match(t.RULE),this.state=2260,this.name();break;case 39:this.enterOuterAlt(s,39),this.state=2261,this.match(t.DISABLE_P),this.state=2262,this.match(t.RULE),this.state=2263,this.name();break;case 40:this.enterOuterAlt(s,40),this.state=2264,this.match(t.INHERIT),this.state=2265,this.qualifiedName();break;case 41:this.enterOuterAlt(s,41),this.state=2266,this.match(t.NO),this.state=2267,this.match(t.INHERIT),this.state=2268,this.qualifiedName();break;case 42:this.enterOuterAlt(s,42),this.state=2269,this.match(t.OF),this.state=2270,this.anyName();break;case 43:this.enterOuterAlt(s,43),this.state=2271,this.match(t.NOT),this.state=2272,this.match(t.OF);break;case 44:this.enterOuterAlt(s,44),this.state=2273,this.match(t.OWNER),this.state=2274,this.match(t.TO),this.state=2275,this.roleName();break;case 45:this.enterOuterAlt(s,45),this.state=2276,this.match(t.SET),this.state=2277,this.match(t.TABLESPACE),this.state=2278,this.name();break;case 46:this.enterOuterAlt(s,46),this.state=2279,this.match(t.SET),this.state=2280,this.relOptions();break;case 47:this.enterOuterAlt(s,47),this.state=2281,this.match(t.RESET),this.state=2282,this.relOptions();break;case 48:this.enterOuterAlt(s,48),this.state=2283,this.match(t.REPLICA),this.state=2284,this.match(t.IDENTITY_P),this.state=2285,this.replicaIdentity();break;case 49:this.enterOuterAlt(s,49),this.state=2286,this.match(t.ENABLE_P),this.state=2287,this.match(t.ROW),this.state=2288,this.match(t.LEVEL),this.state=2289,this.match(t.SECURITY);break;case 50:this.enterOuterAlt(s,50),this.state=2290,this.match(t.DISABLE_P),this.state=2291,this.match(t.ROW),this.state=2292,this.match(t.LEVEL),this.state=2293,this.match(t.SECURITY);break;case 51:this.enterOuterAlt(s,51),this.state=2294,this.match(t.FORCE),this.state=2295,this.match(t.ROW),this.state=2296,this.match(t.LEVEL),this.state=2297,this.match(t.SECURITY);break;case 52:this.enterOuterAlt(s,52),this.state=2298,this.match(t.NO),this.state=2299,this.match(t.FORCE),this.state=2300,this.match(t.ROW),this.state=2301,this.match(t.LEVEL),this.state=2302,this.match(t.SECURITY);break;case 53:this.enterOuterAlt(s,53),this.state=2303,this.alterGenericOptions()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterColumnDefault(){let e=new sh(this.context,this.state);this.enterRule(e,98,t.RULE_alterColumnDefault);try{switch(this.state=2311,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SET:this.enterOuterAlt(e,1),this.state=2306,this.match(t.SET),this.state=2307,this.match(t.DEFAULT),this.state=2308,this.expression1();break;case t.DROP:this.enterOuterAlt(e,2),this.state=2309,this.match(t.DROP),this.state=2310,this.match(t.DEFAULT);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalDropBehavior(){let e=new ah(this.context,this.state);this.enterRule(e,100,t.RULE_optionalDropBehavior);try{switch(this.state=2316,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CASCADE:this.enterOuterAlt(e,1),this.state=2313,this.match(t.CASCADE);break;case t.RESTRICT:this.enterOuterAlt(e,2),this.state=2314,this.match(t.RESTRICT);break;case t.EOF:case t.COMMA:case t.SEMI:case t.INTO:this.enterOuterAlt(e,3);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalCollateClause(){let e=new rh(this.context,this.state);this.enterRule(e,102,t.RULE_optionalCollateClause);try{switch(this.state=2321,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.COLLATE:this.enterOuterAlt(e,1),this.state=2318,this.match(t.COLLATE),this.state=2319,this.anyName();break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.INTO:case t.USING:case t.CASCADE:case t.RESTRICT:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterUsing(){let e=new ih(this.context,this.state);this.enterRule(e,104,t.RULE_alterUsing);try{switch(this.state=2326,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.USING:this.enterOuterAlt(e,1),this.state=2323,this.match(t.USING),this.state=2324,this.expression1();break;case t.EOF:case t.COMMA:case t.SEMI:case t.INTO:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}replicaIdentity(){let e=new ch(this.context,this.state);this.enterRule(e,106,t.RULE_replicaIdentity);try{switch(this.state=2334,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NOTHING:this.enterOuterAlt(e,1),this.state=2328,this.match(t.NOTHING);break;case t.FULL:this.enterOuterAlt(e,2),this.state=2329,this.match(t.FULL);break;case t.DEFAULT:this.enterOuterAlt(e,3),this.state=2330,this.match(t.DEFAULT);break;case t.USING:this.enterOuterAlt(e,4),this.state=2331,this.match(t.USING),this.state=2332,this.match(t.INDEX),this.state=2333,this.indexName();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}relOptions(){let e=new nh(this.context,this.state);this.enterRule(e,108,t.RULE_relOptions);try{this.enterOuterAlt(e,1),this.state=2336,this.match(t.OPEN_PAREN),this.state=2337,this.relOptionList(),this.state=2338,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalRelOptions(){let e=new hh(this.context,this.state);this.enterRule(e,110,t.RULE_optionalRelOptions);try{switch(this.state=2343,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WITH:this.enterOuterAlt(e,1),this.state=2340,this.match(t.WITH),this.state=2341,this.relOptions();break;case t.EOF:case t.SEMI:case t.AS:case t.CREATE:case t.GRANT:case t.INTO:case t.WHERE:case t.TABLESPACE:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}relOptionList(){let e,s=new Eh(this.context,this.state);this.enterRule(s,112,t.RULE_relOptionList);try{for(this.enterOuterAlt(s,1),this.state=2345,this.relOptionElem(),this.state=2350,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=2346,this.match(t.COMMA),this.state=2347,this.relOptionElem(),this.state=2352,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}relOptionElem(){let e,s=new Th(this.context,this.state);this.enterRule(s,114,t.RULE_relOptionElem);try{switch(this.enterOuterAlt(s,1),this.state=2353,this.columnLabel(),this.state=2362,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.EQUAL:this.state=2354,this.match(t.EQUAL),this.state=2355,this.definitionArgument();break;case t.DOT:this.state=2356,this.match(t.DOT),this.state=2357,this.columnLabel(),this.state=2360,this.errorHandler.sync(this),e=this.tokenStream.LA(1),10===e&&(this.state=2358,this.match(t.EQUAL),this.state=2359,this.definitionArgument());case t.CLOSE_PAREN:case t.COMMA:}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterIdentityColumnOptionList(){let e,s=new oh(this.context,this.state);this.enterRule(s,116,t.RULE_alterIdentityColumnOptionList);try{this.enterOuterAlt(s,1),this.state=2365,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=2364,this.alterIdentityColumnOption(),this.state=2367,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(307===e||326===e)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterIdentityColumnOption(){let e,s=new Rh(this.context,this.state);this.enterRule(s,118,t.RULE_alterIdentityColumnOption);try{switch(this.state=2381,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.RESTART:this.enterOuterAlt(s,1),this.state=2369,this.match(t.RESTART),this.state=2373,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(12===e||13===e||105===e||658===e||660===e)&&(this.state=2370,this.optionalWith(),this.state=2371,this.numericOnly());break;case t.SET:switch(this.enterOuterAlt(s,2),this.state=2375,this.match(t.SET),this.state=2379,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AS:case t.CACHE:case t.CYCLE:case t.INCREMENT:case t.MAXVALUE:case t.MINVALUE:case t.NO:case t.OWNED:case t.RESTART:case t.SEQUENCE:case t.START:this.state=2376,this.sequenceOptionItem();break;case t.GENERATED:this.state=2377,this.match(t.GENERATED),this.state=2378,this.generatedWhen();break;default:throw new Ei(this)}break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}partitionBoundSpecification(){let e=new Ah(this.context,this.state);this.enterRule(e,120,t.RULE_partitionBoundSpecification);try{switch(this.state=2409,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,67,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2383,this.match(t.FOR),this.state=2384,this.match(t.VALUES),this.state=2385,this.match(t.WITH),this.state=2386,this.match(t.OPEN_PAREN),this.state=2387,this.hashPartitionBound(),this.state=2388,this.match(t.CLOSE_PAREN);break;case 2:this.enterOuterAlt(e,2),this.state=2390,this.match(t.FOR),this.state=2391,this.match(t.VALUES),this.state=2392,this.match(t.IN_P),this.state=2393,this.match(t.OPEN_PAREN),this.state=2394,this.expressionList(),this.state=2395,this.match(t.CLOSE_PAREN);break;case 3:this.enterOuterAlt(e,3),this.state=2397,this.match(t.FOR),this.state=2398,this.match(t.VALUES),this.state=2399,this.match(t.FROM),this.state=2400,this.match(t.OPEN_PAREN),this.state=2401,this.expressionList(),this.state=2402,this.match(t.CLOSE_PAREN),this.state=2403,this.match(t.TO),this.state=2404,this.match(t.OPEN_PAREN),this.state=2405,this.expressionList(),this.state=2406,this.match(t.CLOSE_PAREN);break;case 4:this.enterOuterAlt(e,4),this.state=2408,this.match(t.DEFAULT)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}hashPartitionBoundElement(){let e=new Sh(this.context,this.state);this.enterRule(e,122,t.RULE_hashPartitionBoundElement);try{this.enterOuterAlt(e,1),this.state=2411,this.nonReservedWord(),this.state=2412,this.iconst()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}hashPartitionBound(){let e,s=new lh(this.context,this.state);this.enterRule(s,124,t.RULE_hashPartitionBound);try{for(this.enterOuterAlt(s,1),this.state=2414,this.hashPartitionBoundElement(),this.state=2419,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=2415,this.match(t.COMMA),this.state=2416,this.hashPartitionBoundElement(),this.state=2421,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterCompositeTypeStatement(){let e=new Oh(this.context,this.state);this.enterRule(e,126,t.RULE_alterCompositeTypeStatement);try{this.enterOuterAlt(e,1),this.state=2422,this.match(t.ALTER),this.state=2423,this.match(t.TYPE_P),this.state=2424,this.anyName(),this.state=2425,this.alterTypeCommands()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterTypeCommands(){let e,s=new Ih(this.context,this.state);this.enterRule(s,128,t.RULE_alterTypeCommands);try{for(this.enterOuterAlt(s,1),this.state=2427,this.alterTypeCommand(),this.state=2432,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=2428,this.match(t.COMMA),this.state=2429,this.alterTypeCommand(),this.state=2434,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterTypeCommand(){let e=new uh(this.context,this.state);this.enterRule(e,130,t.RULE_alterTypeCommand);try{switch(this.state=2458,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ADD_P:this.enterOuterAlt(e,1),this.state=2435,this.match(t.ADD_P),this.state=2436,this.match(t.ATTRIBUTE),this.state=2437,this.tableFunctionElement(),this.state=2438,this.optionalDropBehavior();break;case t.DROP:if(this.enterOuterAlt(e,2),1===(this.state=2440,this.match(t.DROP),this.state=2441,this.match(t.ATTRIBUTE),this.state=2444,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,70,this.context)))this.state=2442,this.match(t.IF_P),this.state=2443,this.match(t.EXISTS);this.state=2446,this.columnId(),this.state=2447,this.optionalDropBehavior();break;case t.ALTER:this.enterOuterAlt(e,3),this.state=2449,this.match(t.ALTER),this.state=2450,this.match(t.ATTRIBUTE),this.state=2451,this.columnId(),this.state=2452,this.optionalSetData(),this.state=2453,this.match(t.TYPE_P),this.state=2454,this.typeName(),this.state=2455,this.optionalCollateClause(),this.state=2456,this.optionalDropBehavior();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}closePortalStatement(){let e=new Nh(this.context,this.state);this.enterRule(e,132,t.RULE_closePortalStatement);try{switch(this.enterOuterAlt(e,1),this.state=2460,this.match(t.CLOSE),this.state=2463,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.state=2461,this.cursorName();break;case t.ALL:this.state=2462,this.match(t.ALL);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}copyStatement(){let e,s=new Lh(this.context,this.state);this.enterRule(s,134,t.RULE_copyStatement);try{switch(this.state=2493,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,76,this.context)){case 1:this.enterOuterAlt(s,1),this.state=2465,this.match(t.COPY),this.state=2467,this.errorHandler.sync(this),e=this.tokenStream.LA(1),107===e&&(this.state=2466,this.match(t.BINARY)),this.state=2469,this.qualifiedName(),this.state=2470,this.columnListWithParentheses(),this.state=2471,this.fromOrTo(),this.state=2473,this.errorHandler.sync(this),e=this.tokenStream.LA(1),290===e&&(this.state=2472,this.match(t.PROGRAM)),this.state=2475,this.copyFileName(),this.state=2476,this.copyDelimiter(),this.state=2477,this.optionalWith(),this.state=2478,this.copyOptions(),this.state=2479,this.whereClause();break;case 2:this.enterOuterAlt(s,2),this.state=2481,this.match(t.COPY),this.state=2482,this.match(t.OPEN_PAREN),this.state=2483,this.preparableStatement(),this.state=2484,this.match(t.CLOSE_PAREN),this.state=2485,this.match(t.TO),this.state=2487,this.errorHandler.sync(this),e=this.tokenStream.LA(1),290===e&&(this.state=2486,this.match(t.PROGRAM)),this.state=2489,this.copyFileName(),this.state=2490,this.optionalWith(),this.state=2491,this.copyOptions()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}fromOrTo(){let e,s=new Ch(this.context,this.state);this.enterRule(s,136,t.RULE_fromOrTo);try{this.enterOuterAlt(s,1),this.state=2495,e=this.tokenStream.LA(1),64===e||94===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}copyFileName(){let e=new _h(this.context,this.state);this.enterRule(e,138,t.RULE_copyFileName);try{switch(this.state=2500,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.EscapeStringConstant:this.enterOuterAlt(e,1),this.state=2497,this.sconst();break;case t.STDIN:this.enterOuterAlt(e,2),this.state=2498,this.match(t.STDIN);break;case t.STDOUT:this.enterOuterAlt(e,3),this.state=2499,this.match(t.STDOUT);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}copyOptions(){let e,s=new Ph(this.context,this.state);this.enterRule(s,140,t.RULE_copyOptions);try{switch(this.state=2512,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.EOF:case t.SEMI:case t.INTO:case t.NULL_P:case t.WHERE:case t.BINARY:case t.FREEZE:case t.CSV:case t.DELIMITER:case t.ENCODING:case t.ESCAPE:case t.FORCE:case t.HEADER_P:case t.QUOTE:for(this.enterOuterAlt(s,1),this.state=2505,this.errorHandler.sync(this),e=this.tokenStream.LA(1);78===e||107===e||112===e||!(e-171&-32)&&1<<e-171&75501569||209===e||216===e||291===e;)this.state=2502,this.copyOptionsItem(),this.state=2507,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case t.OPEN_PAREN:this.enterOuterAlt(s,2),this.state=2508,this.match(t.OPEN_PAREN),this.state=2509,this.copyGenericOptionList(),this.state=2510,this.match(t.CLOSE_PAREN);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}copyOptionsItem(){let e=new Mh(this.context,this.state);this.enterRule(e,142,t.RULE_copyOptionsItem);try{switch(this.state=2549,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,80,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2514,this.match(t.BINARY);break;case 2:this.enterOuterAlt(e,2),this.state=2515,this.match(t.FREEZE);break;case 3:this.enterOuterAlt(e,3),this.state=2516,this.match(t.DELIMITER),this.state=2517,this.optionalAs(),this.state=2518,this.sconst();break;case 4:this.enterOuterAlt(e,4),this.state=2520,this.match(t.NULL_P),this.state=2521,this.optionalAs(),this.state=2522,this.sconst();break;case 5:this.enterOuterAlt(e,5),this.state=2524,this.match(t.CSV);break;case 6:this.enterOuterAlt(e,6),this.state=2525,this.match(t.HEADER_P);break;case 7:this.enterOuterAlt(e,7),this.state=2526,this.match(t.QUOTE),this.state=2527,this.optionalAs(),this.state=2528,this.sconst();break;case 8:this.enterOuterAlt(e,8),this.state=2530,this.match(t.ESCAPE),this.state=2531,this.optionalAs(),this.state=2532,this.sconst();break;case 9:this.enterOuterAlt(e,9),this.state=2534,this.match(t.FORCE),this.state=2535,this.match(t.QUOTE),this.state=2536,this.columnList();break;case 10:this.enterOuterAlt(e,10),this.state=2537,this.match(t.FORCE),this.state=2538,this.match(t.QUOTE),this.state=2539,this.match(t.STAR);break;case 11:this.enterOuterAlt(e,11),this.state=2540,this.match(t.FORCE),this.state=2541,this.match(t.NOT),this.state=2542,this.match(t.NULL_P),this.state=2543,this.columnList();break;case 12:this.enterOuterAlt(e,12),this.state=2544,this.match(t.FORCE),this.state=2545,this.match(t.NULL_P),this.state=2546,this.columnList();break;case 13:this.enterOuterAlt(e,13),this.state=2547,this.match(t.ENCODING),this.state=2548,this.sconst()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}copyDelimiter(){let e,s=new dh(this.context,this.state);this.enterRule(s,144,t.RULE_copyDelimiter);try{switch(this.state=2557,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.USING:case t.DELIMITERS:this.enterOuterAlt(s,1),this.state=2552,this.errorHandler.sync(this),e=this.tokenStream.LA(1),100===e&&(this.state=2551,this.match(t.USING)),this.state=2554,this.match(t.DELIMITERS),this.state=2555,this.sconst();break;case t.EOF:case t.OPEN_PAREN:case t.SEMI:case t.INTO:case t.NULL_P:case t.WHERE:case t.WITH:case t.BINARY:case t.FREEZE:case t.CSV:case t.DELIMITER:case t.ENCODING:case t.ESCAPE:case t.FORCE:case t.HEADER_P:case t.QUOTE:this.enterOuterAlt(s,2);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}copyGenericOptionList(){let e,s=new Uh(this.context,this.state);this.enterRule(s,146,t.RULE_copyGenericOptionList);try{for(this.enterOuterAlt(s,1),this.state=2559,this.copyGenericOptionElem(),this.state=2564,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=2560,this.match(t.COMMA),this.state=2561,this.copyGenericOptionElem(),this.state=2566,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}copyGenericOptionElem(){let e=new mh(this.context,this.state);this.enterRule(e,148,t.RULE_copyGenericOptionElem);try{this.enterOuterAlt(e,1),this.state=2567,this.columnLabel(),this.state=2568,this.copyGenericOptionArgument()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}copyGenericOptionArgument(){let e,s=new Dh(this.context,this.state);this.enterRule(s,150,t.RULE_copyGenericOptionArgument);try{switch(this.state=2585,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FALSE_P:case t.FETCH:case t.ON:case t.TABLE:case t.TRUE_P:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:this.enterOuterAlt(s,1),this.state=2570,this.booleanOrString();break;case t.PLUS:case t.MINUS:case t.Integral:case t.Numeric:this.enterOuterAlt(s,2),this.state=2571,this.numericOnly();break;case t.STAR:this.enterOuterAlt(s,3),this.state=2572,this.match(t.STAR);break;case t.OPEN_PAREN:for(this.enterOuterAlt(s,4),this.state=2573,this.match(t.OPEN_PAREN),this.state=2574,this.booleanOrString(),this.state=2579,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=2575,this.match(t.COMMA),this.state=2576,this.booleanOrString(),this.state=2581,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2582,this.match(t.CLOSE_PAREN);break;case t.CLOSE_PAREN:case t.COMMA:this.enterOuterAlt(s,5);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createStatement(){let e=new ph(this.context,this.state);this.enterRule(e,152,t.RULE_createStatement);try{if(this.enterOuterAlt(e,1),1===(this.state=2587,this.match(t.CREATE),this.state=2588,this.temporaryOption(),this.state=2589,this.match(t.TABLE),this.state=2593,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,86,this.context)))this.state=2590,this.match(t.IF_P),this.state=2591,this.match(t.NOT),this.state=2592,this.match(t.EXISTS);switch(this.state=2595,this.qualifiedName(),this.state=2626,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:this.state=2596,this.match(t.OPEN_PAREN),this.state=2597,this.optionalTableElementList(),this.state=2598,this.match(t.CLOSE_PAREN),this.state=2599,this.inheritClause(),this.state=2600,this.optionalPartitionSpecification(),this.state=2601,this.optionalTableAccessMethodClause(),this.state=2602,this.with_(),this.state=2603,this.onCommitOption(),this.state=2604,this.optionalTablespace();break;case t.OF:this.state=2606,this.match(t.OF),this.state=2607,this.anyName(),this.state=2608,this.optionalTypedTableElementList(),this.state=2609,this.optionalPartitionSpecification(),this.state=2610,this.optionalTableAccessMethodClause(),this.state=2611,this.with_(),this.state=2612,this.onCommitOption(),this.state=2613,this.optionalTablespace();break;case t.PARTITION:this.state=2615,this.match(t.PARTITION),this.state=2616,this.match(t.OF),this.state=2617,this.qualifiedName(),this.state=2618,this.optionalTypedTableElementList(),this.state=2619,this.partitionBoundSpecification(),this.state=2620,this.optionalPartitionSpecification(),this.state=2621,this.optionalTableAccessMethodClause(),this.state=2622,this.with_(),this.state=2623,this.onCommitOption(),this.state=2624,this.optionalTablespace();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}temporaryOption(){let e,s=new gh(this.context,this.state);this.enterRule(s,154,t.RULE_temporaryOption);try{switch(this.state=2636,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.TEMPORARY:this.enterOuterAlt(s,1),this.state=2628,this.match(t.TEMPORARY);break;case t.TEMP:this.enterOuterAlt(s,2),this.state=2629,this.match(t.TEMP);break;case t.LOCAL:this.enterOuterAlt(s,3),this.state=2630,this.match(t.LOCAL),this.state=2631,e=this.tokenStream.LA(1),345===e||347===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case t.GLOBAL:this.enterOuterAlt(s,4),this.state=2632,this.match(t.GLOBAL),this.state=2633,e=this.tokenStream.LA(1),345===e||347===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case t.UNLOGGED:this.enterOuterAlt(s,5),this.state=2634,this.match(t.UNLOGGED);break;case t.TABLE:case t.RECURSIVE:case t.SEQUENCE:case t.VIEW:this.enterOuterAlt(s,6);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalTableElementList(){let e=new xh(this.context,this.state);this.enterRule(e,156,t.RULE_optionalTableElementList);try{switch(this.state=2640,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.FOREIGN:case t.PRIMARY:case t.TABLE:case t.UNIQUE:case t.IS:case t.LEFT:case t.LIKE:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,1),this.state=2638,this.tableElementList();break;case t.CLOSE_PAREN:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalTypedTableElementList(){let e=new kh(this.context,this.state);this.enterRule(e,158,t.RULE_optionalTypedTableElementList);try{switch(this.state=2647,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:this.enterOuterAlt(e,1),this.state=2642,this.match(t.OPEN_PAREN),this.state=2643,this.typedTableElementList(),this.state=2644,this.match(t.CLOSE_PAREN);break;case t.EOF:case t.SEMI:case t.CREATE:case t.DEFAULT:case t.FOR:case t.GRANT:case t.INTO:case t.ON:case t.USING:case t.WITH:case t.PARTITION:case t.TABLESPACE:case t.WITHOUT:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableElementList(){let e,s=new Hh(this.context,this.state);this.enterRule(s,160,t.RULE_tableElementList);try{for(this.enterOuterAlt(s,1),this.state=2649,this.tableElement(),this.state=2654,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=2650,this.match(t.COMMA),this.state=2651,this.tableElement(),this.state=2656,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}typedTableElementList(){let e,s=new Gh(this.context,this.state);this.enterRule(s,162,t.RULE_typedTableElementList);try{for(this.enterOuterAlt(s,1),this.state=2657,this.typedTableElement(),this.state=2662,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=2658,this.match(t.COMMA),this.state=2659,this.typedTableElement(),this.state=2664,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableElement(){let e=new Fh(this.context,this.state);this.enterRule(e,164,t.RULE_tableElement);try{switch(this.state=2668,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,93,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2665,this.tableConstraint();break;case 2:this.enterOuterAlt(e,2),this.state=2666,this.tableLikeClause();break;case 3:this.enterOuterAlt(e,3),this.state=2667,this.columnDefinition()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}typedTableElement(){let e=new vh(this.context,this.state);this.enterRule(e,166,t.RULE_typedTableElement);try{switch(this.state=2672,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,94,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2670,this.columnOptions();break;case 2:this.enterOuterAlt(e,2),this.state=2671,this.tableConstraint()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}columnDefinition(){let e=new Bh(this.context,this.state);this.enterRule(e,168,t.RULE_columnDefinition);try{this.enterOuterAlt(e,1),this.state=2674,this.columnId(),this.state=2675,this.typeName(),this.state=2676,this.createGenericOptions(),this.state=2677,this.columnQualifierList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}columnOptions(){let e,s=new yh(this.context,this.state);this.enterRule(s,170,t.RULE_columnOptions);try{this.enterOuterAlt(s,1),this.state=2679,this.columnId(),this.state=2682,this.errorHandler.sync(this),e=this.tokenStream.LA(1),105===e&&(this.state=2680,this.match(t.WITH),this.state=2681,this.match(t.OPTIONS)),this.state=2684,this.columnQualifierList()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}columnQualifierList(){let e,s=new fh(this.context,this.state);this.enterRule(s,172,t.RULE_columnQualifierList);try{for(this.enterOuterAlt(s,1),this.state=2689,this.errorHandler.sync(this),e=this.tokenStream.LA(1);!(e-42&-32)&&1<<e-42&134223883||!(e-77&-32)&&1<<e-77&2097923||438===e;)this.state=2686,this.columnConstraint(),this.state=2691,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}columnConstraint(){let e=new Yh(this.context,this.state);this.enterRule(e,174,t.RULE_columnConstraint);try{switch(this.state=2700,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,97,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2692,this.match(t.CONSTRAINT),this.state=2693,this.name(),this.state=2694,this.columnConstraintElement();break;case 2:this.enterOuterAlt(e,2),this.state=2696,this.columnConstraintElement();break;case 3:this.enterOuterAlt(e,3),this.state=2697,this.constraintAttribute();break;case 4:this.enterOuterAlt(e,4),this.state=2698,this.match(t.COLLATE),this.state=2699,this.anyName()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}columnConstraintElement(){let e,s=new wh(this.context,this.state);this.enterRule(s,176,t.RULE_columnConstraintElement);try{switch(this.state=2742,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NOT:this.enterOuterAlt(s,1),this.state=2702,this.match(t.NOT),this.state=2703,this.match(t.NULL_P);break;case t.NULL_P:this.enterOuterAlt(s,2),this.state=2704,this.match(t.NULL_P);break;case t.UNIQUE:this.enterOuterAlt(s,3),this.state=2705,this.match(t.UNIQUE),this.state=2706,this.optionalDefinition(),this.state=2707,this.usingIndexTablespace();break;case t.PRIMARY:this.enterOuterAlt(s,4),this.state=2709,this.match(t.PRIMARY),this.state=2710,this.match(t.KEY),this.state=2711,this.optionalDefinition(),this.state=2712,this.usingIndexTablespace();break;case t.CHECK:this.enterOuterAlt(s,5),this.state=2714,this.match(t.CHECK),this.state=2715,this.match(t.OPEN_PAREN),this.state=2716,this.expression1(),this.state=2717,this.match(t.CLOSE_PAREN),this.state=2720,this.errorHandler.sync(this),e=this.tokenStream.LA(1),262===e&&(this.state=2718,this.match(t.NO),this.state=2719,this.match(t.INHERIT));break;case t.DEFAULT:this.enterOuterAlt(s,6),this.state=2722,this.match(t.DEFAULT),this.state=2723,this.expression2(0);break;case t.GENERATED:switch(this.enterOuterAlt(s,7),this.state=2724,this.match(t.GENERATED),this.state=2725,this.generatedWhen(),this.state=2726,this.match(t.AS),this.state=2734,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.IDENTITY_P:this.state=2727,this.match(t.IDENTITY_P),this.state=2728,this.optionalParenthesizedSeqOptionsList();break;case t.OPEN_PAREN:this.state=2729,this.match(t.OPEN_PAREN),this.state=2730,this.expression1(),this.state=2731,this.match(t.CLOSE_PAREN),this.state=2732,this.match(t.STORED);break;default:throw new Ei(this)}break;case t.REFERENCES:this.enterOuterAlt(s,8),this.state=2736,this.match(t.REFERENCES),this.state=2737,this.qualifiedName(),this.state=2738,this.columnListWithParentheses(),this.state=2739,this.matchClause(),this.state=2740,this.keyActions();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}generatedWhen(){let e=new bh(this.context,this.state);this.enterRule(e,178,t.RULE_generatedWhen);try{switch(this.state=2747,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ALWAYS:this.enterOuterAlt(e,1),this.state=2744,this.match(t.ALWAYS);break;case t.BY:this.enterOuterAlt(e,2),this.state=2745,this.match(t.BY),this.state=2746,this.match(t.DEFAULT);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}constraintAttribute(){let e,s=new Wh(this.context,this.state);this.enterRule(s,180,t.RULE_constraintAttribute);try{switch(this.state=2754,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DEFERRABLE:this.enterOuterAlt(s,1),this.state=2749,this.match(t.DEFERRABLE);break;case t.NOT:this.enterOuterAlt(s,2),this.state=2750,this.match(t.NOT),this.state=2751,this.match(t.DEFERRABLE);break;case t.INITIALLY:this.enterOuterAlt(s,3),this.state=2752,this.match(t.INITIALLY),this.state=2753,e=this.tokenStream.LA(1),180===e||221===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableLikeClause(){let e=new Vh(this.context,this.state);this.enterRule(e,182,t.RULE_tableLikeClause);try{this.enterOuterAlt(e,1),this.state=2756,this.match(t.LIKE),this.state=2757,this.qualifiedName(),this.state=2758,this.tableLikeOptionList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableLikeOptionList(){let e,s=new Xh(this.context,this.state);this.enterRule(s,184,t.RULE_tableLikeOptionList);try{for(this.enterOuterAlt(s,1),this.state=2764,this.errorHandler.sync(this),e=this.tokenStream.LA(1);200===e||224===e;)this.state=2760,e=this.tokenStream.LA(1),200===e||224===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2761,this.tableLikeOption(),this.state=2766,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableLikeOption(){let e,s=new Kh(this.context,this.state);this.enterRule(s,186,t.RULE_tableLikeOption);try{this.enterOuterAlt(s,1),this.state=2767,e=this.tokenStream.LA(1),30===e||!(e-160&-32)&&1<<e-160&524321||219===e||227===e||335===e||338===e||438===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableConstraint(){let e=new Qh(this.context,this.state);this.enterRule(e,188,t.RULE_tableConstraint);try{switch(this.state=2774,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CONSTRAINT:this.enterOuterAlt(e,1),this.state=2769,this.match(t.CONSTRAINT),this.state=2770,this.name(),this.state=2771,this.constraintElement();break;case t.CHECK:case t.FOREIGN:case t.PRIMARY:case t.UNIQUE:case t.EXCLUDE:this.enterOuterAlt(e,2),this.state=2773,this.constraintElement();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}constraintElement(){let e=new Jh(this.context,this.state);this.enterRule(e,190,t.RULE_constraintElement);try{switch(this.state=2834,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CHECK:this.enterOuterAlt(e,1),this.state=2776,this.match(t.CHECK),this.state=2777,this.match(t.OPEN_PAREN),this.state=2778,this.expression1(),this.state=2779,this.match(t.CLOSE_PAREN),this.state=2780,this.constraintAttributeSpecification();break;case t.UNIQUE:switch(this.enterOuterAlt(e,2),this.state=2782,this.match(t.UNIQUE),this.state=2794,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:this.state=2783,this.match(t.OPEN_PAREN),this.state=2784,this.columnList(),this.state=2785,this.match(t.CLOSE_PAREN),this.state=2786,this.optionalColumnListInclude(),this.state=2787,this.optionalDefinition(),this.state=2788,this.usingIndexTablespace(),this.state=2789,this.constraintAttributeSpecification();break;case t.USING:this.state=2791,this.existingIndex(),this.state=2792,this.constraintAttributeSpecification();break;default:throw new Ei(this)}break;case t.PRIMARY:switch(this.enterOuterAlt(e,3),this.state=2796,this.match(t.PRIMARY),this.state=2797,this.match(t.KEY),this.state=2809,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:this.state=2798,this.match(t.OPEN_PAREN),this.state=2799,this.columnList(),this.state=2800,this.match(t.CLOSE_PAREN),this.state=2801,this.optionalColumnListInclude(),this.state=2802,this.optionalDefinition(),this.state=2803,this.usingIndexTablespace(),this.state=2804,this.constraintAttributeSpecification();break;case t.USING:this.state=2806,this.existingIndex(),this.state=2807,this.constraintAttributeSpecification();break;default:throw new Ei(this)}break;case t.EXCLUDE:this.enterOuterAlt(e,4),this.state=2811,this.match(t.EXCLUDE),this.state=2812,this.optionalAccessMethodClause(),this.state=2813,this.match(t.OPEN_PAREN),this.state=2814,this.exclusionConstraintList(),this.state=2815,this.match(t.CLOSE_PAREN),this.state=2816,this.optionalColumnListInclude(),this.state=2817,this.optionalDefinition(),this.state=2818,this.usingIndexTablespace(),this.state=2819,this.exclusionWhereClause(),this.state=2820,this.constraintAttributeSpecification();break;case t.FOREIGN:this.enterOuterAlt(e,5),this.state=2822,this.match(t.FOREIGN),this.state=2823,this.match(t.KEY),this.state=2824,this.match(t.OPEN_PAREN),this.state=2825,this.columnList(),this.state=2826,this.match(t.CLOSE_PAREN),this.state=2827,this.match(t.REFERENCES),this.state=2828,this.qualifiedName(),this.state=2829,this.columnListWithParentheses(),this.state=2830,this.matchClause(),this.state=2831,this.keyActions(),this.state=2832,this.constraintAttributeSpecification();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}columnListWithParentheses(){let e=new Zh(this.context,this.state);this.enterRule(e,192,t.RULE_columnListWithParentheses);try{switch(this.state=2841,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:this.enterOuterAlt(e,1),this.state=2836,this.match(t.OPEN_PAREN),this.state=2837,this.columnList(),this.state=2838,this.match(t.CLOSE_PAREN);break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.AS:case t.CHECK:case t.COLLATE:case t.CONSTRAINT:case t.DEFAULT:case t.DEFERRABLE:case t.FROM:case t.INITIALLY:case t.INTO:case t.NOT:case t.NULL_P:case t.ON:case t.PRIMARY:case t.REFERENCES:case t.TO:case t.UNIQUE:case t.USING:case t.WITH:case t.MATCH:case t.NO:case t.TABLESPACE:case t.WITHOUT:case t.GENERATED:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}columnList(){let e,s=new qh(this.context,this.state);this.enterRule(s,194,t.RULE_columnList);try{for(this.enterOuterAlt(s,1),this.state=2843,this.columnElement(),this.state=2848,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=2844,this.match(t.COMMA),this.state=2845,this.columnElement(),this.state=2850,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}columnElement(){let e=new jh(this.context,this.state);this.enterRule(e,196,t.RULE_columnElement);try{this.enterOuterAlt(e,1),this.state=2851,this.columnId()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalColumnListInclude(){let e=new zh(this.context,this.state);this.enterRule(e,198,t.RULE_optionalColumnListInclude);try{switch(this.state=2859,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.INCLUDE:this.enterOuterAlt(e,1),this.state=2853,this.match(t.INCLUDE),this.state=2854,this.match(t.OPEN_PAREN),this.state=2855,this.columnList(),this.state=2856,this.match(t.CLOSE_PAREN);break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.DEFERRABLE:case t.INITIALLY:case t.INTO:case t.NOT:case t.USING:case t.WHERE:case t.WITH:case t.NO:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}matchClause(){let e,s=new $h(this.context,this.state);this.enterRule(s,200,t.RULE_matchClause);try{switch(this.state=2864,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.MATCH:this.enterOuterAlt(s,1),this.state=2861,this.match(t.MATCH),this.state=2862,e=this.tokenStream.LA(1),113===e||277===e||329===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.CHECK:case t.COLLATE:case t.CONSTRAINT:case t.DEFAULT:case t.DEFERRABLE:case t.INITIALLY:case t.INTO:case t.NOT:case t.NULL_P:case t.ON:case t.PRIMARY:case t.REFERENCES:case t.UNIQUE:case t.NO:case t.GENERATED:this.enterOuterAlt(s,2);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}exclusionConstraintList(){let e,s=new tE(this.context,this.state);this.enterRule(s,202,t.RULE_exclusionConstraintList);try{for(this.enterOuterAlt(s,1),this.state=2866,this.exclusionConstraintElement(),this.state=2871,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=2867,this.match(t.COMMA),this.state=2868,this.exclusionConstraintElement(),this.state=2873,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}exclusionConstraintElement(){let e=new eE(this.context,this.state);this.enterRule(e,204,t.RULE_exclusionConstraintElement);try{switch(this.enterOuterAlt(e,1),this.state=2874,this.indexElement(),this.state=2875,this.match(t.WITH),this.state=2882,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,113,this.context)){case 1:this.state=2876,this.anyOperator();break;case 2:this.state=2877,this.match(t.OPERATOR),this.state=2878,this.match(t.OPEN_PAREN),this.state=2879,this.anyOperator(),this.state=2880,this.match(t.CLOSE_PAREN)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}exclusionWhereClause(){let e=new sE(this.context,this.state);this.enterRule(e,206,t.RULE_exclusionWhereClause);try{switch(this.state=2890,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WHERE:this.enterOuterAlt(e,1),this.state=2884,this.match(t.WHERE),this.state=2885,this.match(t.OPEN_PAREN),this.state=2886,this.expression1(),this.state=2887,this.match(t.CLOSE_PAREN);break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.DEFERRABLE:case t.INITIALLY:case t.INTO:case t.NOT:case t.NO:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}keyActions(){let e=new aE(this.context,this.state);this.enterRule(e,208,t.RULE_keyActions);try{switch(this.state=2901,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,115,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2892,this.onKeyUpdateClause();break;case 2:this.enterOuterAlt(e,2),this.state=2893,this.onKeyDeleteClause();break;case 3:this.enterOuterAlt(e,3),this.state=2894,this.onKeyUpdateClause(),this.state=2895,this.onKeyDeleteClause();break;case 4:this.enterOuterAlt(e,4),this.state=2897,this.onKeyDeleteClause(),this.state=2898,this.onKeyUpdateClause();break;case 5:this.enterOuterAlt(e,5)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}onKeyUpdateClause(){let e=new rE(this.context,this.state);this.enterRule(e,210,t.RULE_onKeyUpdateClause);try{this.enterOuterAlt(e,1),this.state=2903,this.match(t.ON),this.state=2904,this.match(t.UPDATE),this.state=2905,this.keyAction()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}onKeyDeleteClause(){let e=new iE(this.context,this.state);this.enterRule(e,212,t.RULE_onKeyDeleteClause);try{this.enterOuterAlt(e,1),this.state=2907,this.match(t.ON),this.state=2908,this.match(t.DELETE_P),this.state=2909,this.keyAction()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}keyAction(){let e,s=new cE(this.context,this.state);this.enterRule(s,214,t.RULE_keyAction);try{switch(this.state=2917,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NO:this.enterOuterAlt(s,1),this.state=2911,this.match(t.NO),this.state=2912,this.match(t.ACTION);break;case t.RESTRICT:this.enterOuterAlt(s,2),this.state=2913,this.match(t.RESTRICT);break;case t.CASCADE:this.enterOuterAlt(s,3),this.state=2914,this.match(t.CASCADE);break;case t.SET:this.enterOuterAlt(s,4),this.state=2915,this.match(t.SET),this.state=2916,e=this.tokenStream.LA(1),53===e||78===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}inheritClause(){let e=new nE(this.context,this.state);this.enterRule(e,216,t.RULE_inheritClause);try{switch(this.state=2925,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.INHERITS:this.enterOuterAlt(e,1),this.state=2919,this.match(t.INHERITS),this.state=2920,this.match(t.OPEN_PAREN),this.state=2921,this.qualifiedNameList(),this.state=2922,this.match(t.CLOSE_PAREN);break;case t.EOF:case t.SEMI:case t.CREATE:case t.GRANT:case t.INTO:case t.ON:case t.USING:case t.WITH:case t.PARTITION:case t.SERVER:case t.TABLESPACE:case t.WITHOUT:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalPartitionSpecification(){let e=new hE(this.context,this.state);this.enterRule(e,218,t.RULE_optionalPartitionSpecification);try{switch(this.state=2929,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.PARTITION:this.enterOuterAlt(e,1),this.state=2927,this.partitionSpecification();break;case t.EOF:case t.SEMI:case t.CREATE:case t.GRANT:case t.INTO:case t.ON:case t.USING:case t.WITH:case t.TABLESPACE:case t.WITHOUT:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}partitionSpecification(){let e=new EE(this.context,this.state);this.enterRule(e,220,t.RULE_partitionSpecification);try{this.enterOuterAlt(e,1),this.state=2931,this.match(t.PARTITION),this.state=2932,this.match(t.BY),this.state=2933,this.columnId(),this.state=2934,this.match(t.OPEN_PAREN),this.state=2935,this.partitionElements(),this.state=2936,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}partitionElements(){let e,s=new TE(this.context,this.state);this.enterRule(s,222,t.RULE_partitionElements);try{for(this.enterOuterAlt(s,1),this.state=2938,this.partitionElement(),this.state=2943,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=2939,this.match(t.COMMA),this.state=2940,this.partitionElement(),this.state=2945,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}partitionElement(){let e=new oE(this.context,this.state);this.enterRule(e,224,t.RULE_partitionElement);try{switch(this.state=2960,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,120,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2946,this.columnId(),this.state=2947,this.optionalCollate(),this.state=2948,this.optionalClass();break;case 2:this.enterOuterAlt(e,2),this.state=2950,this.functionExpressionWindowless(),this.state=2951,this.optionalCollate(),this.state=2952,this.optionalClass();break;case 3:this.enterOuterAlt(e,3),this.state=2954,this.match(t.OPEN_PAREN),this.state=2955,this.expression1(),this.state=2956,this.match(t.CLOSE_PAREN),this.state=2957,this.optionalCollate(),this.state=2958,this.optionalClass()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalTableAccessMethodClause(){let e=new RE(this.context,this.state);this.enterRule(e,226,t.RULE_optionalTableAccessMethodClause);try{switch(this.state=2965,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.USING:this.enterOuterAlt(e,1),this.state=2962,this.match(t.USING),this.state=2963,this.name();break;case t.EOF:case t.SEMI:case t.AS:case t.CREATE:case t.GRANT:case t.INTO:case t.ON:case t.WITH:case t.TABLESPACE:case t.WITHOUT:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}with_(){let e=new AE(this.context,this.state);this.enterRule(e,228,t.RULE_with);try{switch(this.state=2972,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WITH:this.enterOuterAlt(e,1),this.state=2967,this.match(t.WITH),this.state=2968,this.relOptions();break;case t.WITHOUT:this.enterOuterAlt(e,2),this.state=2969,this.match(t.WITHOUT),this.state=2970,this.match(t.OIDS);break;case t.EOF:case t.SEMI:case t.AS:case t.CREATE:case t.GRANT:case t.INTO:case t.ON:case t.TABLESPACE:this.enterOuterAlt(e,3);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}onCommitOption(){let e=new SE(this.context,this.state);this.enterRule(e,230,t.RULE_onCommitOption);try{switch(this.state=2984,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ON:switch(this.enterOuterAlt(e,1),this.state=2974,this.match(t.ON),this.state=2975,this.match(t.COMMIT),this.state=2981,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DROP:this.state=2976,this.match(t.DROP);break;case t.DELETE_P:this.state=2977,this.match(t.DELETE_P),this.state=2978,this.match(t.ROWS);break;case t.PRESERVE:this.state=2979,this.match(t.PRESERVE),this.state=2980,this.match(t.ROWS);break;default:throw new Ei(this)}break;case t.EOF:case t.SEMI:case t.AS:case t.CREATE:case t.GRANT:case t.INTO:case t.TABLESPACE:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalTablespace(){let e=new lE(this.context,this.state);this.enterRule(e,232,t.RULE_optionalTablespace);try{switch(this.state=2989,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.TABLESPACE:this.enterOuterAlt(e,1),this.state=2986,this.match(t.TABLESPACE),this.state=2987,this.name();break;case t.EOF:case t.SEMI:case t.AS:case t.CREATE:case t.GRANT:case t.INTO:case t.WHERE:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}usingIndexTablespace(){let e=new OE(this.context,this.state);this.enterRule(e,234,t.RULE_usingIndexTablespace);try{switch(this.state=2996,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.USING:this.enterOuterAlt(e,1),this.state=2991,this.match(t.USING),this.state=2992,this.match(t.INDEX),this.state=2993,this.match(t.TABLESPACE),this.state=2994,this.name();break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.CHECK:case t.COLLATE:case t.CONSTRAINT:case t.DEFAULT:case t.DEFERRABLE:case t.INITIALLY:case t.INTO:case t.NOT:case t.NULL_P:case t.PRIMARY:case t.REFERENCES:case t.UNIQUE:case t.WHERE:case t.NO:case t.GENERATED:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}existingIndex(){let e=new IE(this.context,this.state);this.enterRule(e,236,t.RULE_existingIndex);try{this.enterOuterAlt(e,1),this.state=2998,this.match(t.USING),this.state=2999,this.match(t.INDEX),this.state=3e3,this.indexName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createStatsStatement(){let e=new uE(this.context,this.state);this.enterRule(e,238,t.RULE_createStatsStatement);try{if(this.enterOuterAlt(e,1),1===(this.state=3002,this.match(t.CREATE),this.state=3003,this.match(t.STATISTICS),this.state=3007,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,127,this.context)))this.state=3004,this.match(t.IF_P),this.state=3005,this.match(t.NOT),this.state=3006,this.match(t.EXISTS);this.state=3009,this.anyName(),this.state=3010,this.optionalNameList(),this.state=3011,this.match(t.ON),this.state=3012,this.expressionList(),this.state=3013,this.match(t.FROM),this.state=3014,this.fromList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterStatsStatement(){let e=new NE(this.context,this.state);this.enterRule(e,240,t.RULE_alterStatsStatement);try{if(this.enterOuterAlt(e,1),1===(this.state=3016,this.match(t.ALTER),this.state=3017,this.match(t.STATISTICS),this.state=3020,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,128,this.context)))this.state=3018,this.match(t.IF_P),this.state=3019,this.match(t.EXISTS);this.state=3022,this.anyName(),this.state=3023,this.match(t.SET),this.state=3024,this.match(t.STATISTICS),this.state=3025,this.signedIconst()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createAsStatement(){let e=new LE(this.context,this.state);this.enterRule(e,242,t.RULE_createAsStatement);try{if(this.enterOuterAlt(e,1),1===(this.state=3027,this.match(t.CREATE),this.state=3028,this.temporaryOption(),this.state=3029,this.match(t.TABLE),this.state=3033,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,129,this.context)))this.state=3030,this.match(t.IF_P),this.state=3031,this.match(t.NOT),this.state=3032,this.match(t.EXISTS);this.state=3035,this.createAsTarget(),this.state=3036,this.match(t.AS),this.state=3037,this.selectStatement(),this.state=3038,this.withData()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createAsTarget(){let e=new CE(this.context,this.state);this.enterRule(e,244,t.RULE_createAsTarget);try{this.enterOuterAlt(e,1),this.state=3040,this.qualifiedName(),this.state=3041,this.columnListWithParentheses(),this.state=3042,this.optionalTableAccessMethodClause(),this.state=3043,this.with_(),this.state=3044,this.onCommitOption(),this.state=3045,this.optionalTablespace()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}withData(){let e=new _E(this.context,this.state);this.enterRule(e,246,t.RULE_withData);try{switch(this.state=3054,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WITH:switch(this.enterOuterAlt(e,1),this.state=3047,this.match(t.WITH),this.state=3051,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DATA_P:this.state=3048,this.match(t.DATA_P);break;case t.NO:this.state=3049,this.match(t.NO),this.state=3050,this.match(t.DATA_P);break;default:throw new Ei(this)}break;case t.EOF:case t.SEMI:case t.INTO:case t.LOOP:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createMaterializedViewStatement(){let e,s=new PE(this.context,this.state);this.enterRule(s,248,t.RULE_createMaterializedViewStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=3056,this.match(t.CREATE),this.state=3058,this.errorHandler.sync(this),e=this.tokenStream.LA(1),360===e&&(this.state=3057,this.match(t.UNLOGGED)),this.state=3060,this.match(t.MATERIALIZED),this.state=3061,this.match(t.VIEW),this.state=3065,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,133,this.context)))this.state=3062,this.match(t.IF_P),this.state=3063,this.match(t.NOT),this.state=3064,this.match(t.EXISTS);this.state=3067,this.createMaterializedViewTarget(),this.state=3068,this.match(t.AS),this.state=3069,this.selectStatement(),this.state=3070,this.withData()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createMaterializedViewTarget(){let e=new ME(this.context,this.state);this.enterRule(e,250,t.RULE_createMaterializedViewTarget);try{this.enterOuterAlt(e,1),this.state=3072,this.qualifiedName(),this.state=3073,this.columnListWithParentheses(),this.state=3074,this.optionalTableAccessMethodClause(),this.state=3075,this.optionalRelOptions(),this.state=3076,this.optionalTablespace()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}refreshMaterializedViewStatement(){let e,s=new dE(this.context,this.state);this.enterRule(s,252,t.RULE_refreshMaterializedViewStatement);try{this.enterOuterAlt(s,1),this.state=3078,this.match(t.REFRESH),this.state=3079,this.match(t.MATERIALIZED),this.state=3080,this.match(t.VIEW),this.state=3082,this.errorHandler.sync(this),e=this.tokenStream.LA(1),109===e&&(this.state=3081,this.match(t.CONCURRENTLY)),this.state=3084,this.qualifiedName(),this.state=3085,this.withData()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createSequenceStatement(){let e,s=new UE(this.context,this.state);this.enterRule(s,254,t.RULE_createSequenceStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=3087,this.match(t.CREATE),this.state=3088,this.temporaryOption(),this.state=3089,this.match(t.SEQUENCE),this.state=3093,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,135,this.context)))this.state=3090,this.match(t.IF_P),this.state=3091,this.match(t.NOT),this.state=3092,this.match(t.EXISTS);this.state=3095,this.qualifiedName(),this.state=3097,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(36===e||148===e||173===e||!(e-225&-32)&&1<<e-225&1207959553||262===e||274===e||!(e-307&-32)&&1<<e-307&67125249)&&(this.state=3096,this.sequenceOptionList())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterSequenceStatement(){let e=new mE(this.context,this.state);this.enterRule(e,256,t.RULE_alterSequenceStatement);try{if(this.enterOuterAlt(e,1),1===(this.state=3099,this.match(t.ALTER),this.state=3100,this.match(t.SEQUENCE),this.state=3103,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,137,this.context)))this.state=3101,this.match(t.IF_P),this.state=3102,this.match(t.EXISTS);this.state=3105,this.sequenceName(),this.state=3106,this.sequenceOptionList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalParenthesizedSeqOptionsList(){let e=new DE(this.context,this.state);this.enterRule(e,258,t.RULE_optionalParenthesizedSeqOptionsList);try{switch(this.state=3113,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:this.enterOuterAlt(e,1),this.state=3108,this.match(t.OPEN_PAREN),this.state=3109,this.sequenceOptionList(),this.state=3110,this.match(t.CLOSE_PAREN);break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.CHECK:case t.COLLATE:case t.CONSTRAINT:case t.DEFAULT:case t.DEFERRABLE:case t.INITIALLY:case t.INTO:case t.NOT:case t.NULL_P:case t.PRIMARY:case t.REFERENCES:case t.UNIQUE:case t.GENERATED:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}sequenceOptionList(){let e,s=new pE(this.context,this.state);this.enterRule(s,260,t.RULE_sequenceOptionList);try{this.enterOuterAlt(s,1),this.state=3116,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=3115,this.sequenceOptionItem(),this.state=3118,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(36===e||148===e||173===e||!(e-225&-32)&&1<<e-225&1207959553||262===e||274===e||!(e-307&-32)&&1<<e-307&67125249)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}sequenceOptionItem(){let e,s=new gE(this.context,this.state);this.enterRule(s,262,t.RULE_sequenceOptionItem);try{switch(this.state=3151,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AS:this.enterOuterAlt(s,1),this.state=3120,this.match(t.AS),this.state=3121,this.simpleTypeName();break;case t.CACHE:this.enterOuterAlt(s,2),this.state=3122,this.match(t.CACHE),this.state=3123,this.numericOnly();break;case t.CYCLE:this.enterOuterAlt(s,3),this.state=3124,this.match(t.CYCLE);break;case t.INCREMENT:this.enterOuterAlt(s,4),this.state=3125,this.match(t.INCREMENT),this.state=3127,this.errorHandler.sync(this),e=this.tokenStream.LA(1),147===e&&(this.state=3126,this.match(t.BY)),this.state=3129,this.numericOnly();break;case t.MAXVALUE:this.enterOuterAlt(s,5),this.state=3130,this.match(t.MAXVALUE),this.state=3131,this.numericOnly();break;case t.MINVALUE:this.enterOuterAlt(s,6),this.state=3132,this.match(t.MINVALUE),this.state=3133,this.numericOnly();break;case t.NO:this.enterOuterAlt(s,7),this.state=3134,this.match(t.NO),this.state=3135,e=this.tokenStream.LA(1),173===e||252===e||255===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case t.OWNED:this.enterOuterAlt(s,8),this.state=3136,this.match(t.OWNED),this.state=3137,this.match(t.BY),this.state=3138,this.anyName();break;case t.SEQUENCE:this.enterOuterAlt(s,9),this.state=3139,this.match(t.SEQUENCE),this.state=3140,this.match(t.NAME_P),this.state=3141,this.anyName();break;case t.START:this.enterOuterAlt(s,10),this.state=3142,this.match(t.START),this.state=3143,this.optionalWith(),this.state=3144,this.numericOnly();break;case t.RESTART:this.enterOuterAlt(s,11),this.state=3146,this.match(t.RESTART),this.state=3147,this.optionalWith(),this.state=3149,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(12===e||13===e||658===e||660===e)&&(this.state=3148,this.numericOnly());break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}numericOnly(){let e=new xE(this.context,this.state);this.enterRule(e,264,t.RULE_numericOnly);try{switch(this.state=3159,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,143,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3153,this.fconst();break;case 2:this.enterOuterAlt(e,2),this.state=3154,this.match(t.PLUS),this.state=3155,this.fconst();break;case 3:this.enterOuterAlt(e,3),this.state=3156,this.match(t.MINUS),this.state=3157,this.fconst();break;case 4:this.enterOuterAlt(e,4),this.state=3158,this.signedIconst()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}numericOnlyList(){let e,s=new kE(this.context,this.state);this.enterRule(s,266,t.RULE_numericOnlyList);try{for(this.enterOuterAlt(s,1),this.state=3161,this.numericOnly(),this.state=3166,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=3162,this.match(t.COMMA),this.state=3163,this.numericOnly(),this.state=3168,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createProcedureLangStatement(){let e,s=new HE(this.context,this.state);this.enterRule(s,268,t.RULE_createProcedureLangStatement);try{this.enterOuterAlt(s,1),this.state=3169,this.match(t.CREATE),this.state=3170,this.optionalOrReplace(),this.state=3172,this.errorHandler.sync(this),e=this.tokenStream.LA(1),352===e&&(this.state=3171,this.match(t.TRUSTED)),this.state=3174,this.optionalProcedural(),this.state=3175,this.match(t.LANGUAGE),this.state=3176,this.name(),this.state=3183,this.errorHandler.sync(this),e=this.tokenStream.LA(1),215===e&&(this.state=3177,this.match(t.HANDLER),this.state=3178,this.handlerName(),this.state=3179,this.optionalInlineHandler(),this.state=3181,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(262===e||366===e)&&(this.state=3180,this.validatorClause()))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}handlerName(){let e,s=new GE(this.context,this.state);this.enterRule(s,270,t.RULE_handlerName);try{this.enterOuterAlt(s,1),this.state=3185,this.name(),this.state=3187,this.errorHandler.sync(this),e=this.tokenStream.LA(1),11===e&&(this.state=3186,this.attributes())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalInlineHandler(){let e=new FE(this.context,this.state);this.enterRule(e,272,t.RULE_optionalInlineHandler);try{switch(this.state=3192,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.INLINE_P:this.enterOuterAlt(e,1),this.state=3189,this.match(t.INLINE_P),this.state=3190,this.handlerName();break;case t.EOF:case t.SEMI:case t.INTO:case t.NO:case t.VALIDATOR:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}validatorClause(){let e=new vE(this.context,this.state);this.enterRule(e,274,t.RULE_validatorClause);try{switch(this.state=3198,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.VALIDATOR:this.enterOuterAlt(e,1),this.state=3194,this.match(t.VALIDATOR),this.state=3195,this.handlerName();break;case t.NO:this.enterOuterAlt(e,2),this.state=3196,this.match(t.NO),this.state=3197,this.match(t.VALIDATOR);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalProcedural(){let e=new BE(this.context,this.state);this.enterRule(e,276,t.RULE_optionalProcedural);try{switch(this.state=3202,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.PROCEDURAL:this.enterOuterAlt(e,1),this.state=3200,this.match(t.PROCEDURAL);break;case t.LANGUAGE:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createTablespaceStatement(){let e=new yE(this.context,this.state);this.enterRule(e,278,t.RULE_createTablespaceStatement);try{this.enterOuterAlt(e,1),this.state=3204,this.match(t.CREATE),this.state=3205,this.match(t.TABLESPACE),this.state=3206,this.name(),this.state=3207,this.optionalTablespaceOwner(),this.state=3208,this.match(t.LOCATION),this.state=3209,this.sconst(),this.state=3210,this.optionalRelOptions()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalTablespaceOwner(){let e=new fE(this.context,this.state);this.enterRule(e,280,t.RULE_optionalTablespaceOwner);try{switch(this.state=3215,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OWNER:this.enterOuterAlt(e,1),this.state=3212,this.match(t.OWNER),this.state=3213,this.roleName();break;case t.LOCATION:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropTablespaceStatement(){let e=new YE(this.context,this.state);this.enterRule(e,282,t.RULE_dropTablespaceStatement);try{if(this.enterOuterAlt(e,1),1===(this.state=3217,this.match(t.DROP),this.state=3218,this.match(t.TABLESPACE),this.state=3221,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,153,this.context)))this.state=3219,this.match(t.IF_P),this.state=3220,this.match(t.EXISTS);this.state=3223,this.name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createExtensionStatement(){let e,s=new wE(this.context,this.state);this.enterRule(s,284,t.RULE_createExtensionStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=3225,this.match(t.CREATE),this.state=3226,this.match(t.EXTENSION),this.state=3230,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,154,this.context)))this.state=3227,this.match(t.IF_P),this.state=3228,this.match(t.NOT),this.state=3229,this.match(t.EXISTS);for(this.state=3232,this.name(),this.state=3233,this.optionalWith(),this.state=3237,this.errorHandler.sync(this),e=this.tokenStream.LA(1);64===e||150===e||316===e||368===e;)this.state=3234,this.createExtensionOptionItem(),this.state=3239,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createExtensionOptionItem(){let e=new bE(this.context,this.state);this.enterRule(e,286,t.RULE_createExtensionOptionItem);try{switch(this.state=3247,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SCHEMA:this.enterOuterAlt(e,1),this.state=3240,this.match(t.SCHEMA),this.state=3241,this.schemaName();break;case t.VERSION_P:this.enterOuterAlt(e,2),this.state=3242,this.match(t.VERSION_P),this.state=3243,this.nonReservedWordOrSconst();break;case t.FROM:this.enterOuterAlt(e,3),this.state=3244,this.match(t.FROM),this.state=3245,this.nonReservedWordOrSconst();break;case t.CASCADE:this.enterOuterAlt(e,4),this.state=3246,this.match(t.CASCADE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterExtensionStatement(){let e,s=new WE(this.context,this.state);this.enterRule(s,288,t.RULE_alterExtensionStatement);try{for(this.enterOuterAlt(s,1),this.state=3249,this.match(t.ALTER),this.state=3250,this.match(t.EXTENSION),this.state=3251,this.name(),this.state=3252,this.match(t.UPDATE),this.state=3256,this.errorHandler.sync(this),e=this.tokenStream.LA(1);94===e;)this.state=3253,this.alterExtensionOptionItem(),this.state=3258,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterExtensionOptionItem(){let e=new VE(this.context,this.state);this.enterRule(e,290,t.RULE_alterExtensionOptionItem);try{this.enterOuterAlt(e,1),this.state=3259,this.match(t.TO),this.state=3260,this.nonReservedWordOrSconst()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterExtensionContentsStatement(){let e=new XE(this.context,this.state);this.enterRule(e,292,t.RULE_alterExtensionContentsStatement);try{switch(this.state=3401,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,158,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3262,this.match(t.ALTER),this.state=3263,this.match(t.EXTENSION),this.state=3264,this.name(),this.state=3265,this.addOrDrop(),this.state=3266,this.objectTypeName(),this.state=3267,this.name();break;case 2:this.enterOuterAlt(e,2),this.state=3269,this.match(t.ALTER),this.state=3270,this.match(t.EXTENSION),this.state=3271,this.name(),this.state=3272,this.addOrDrop(),this.state=3273,this.match(t.ROLE),this.state=3274,this.roleName();break;case 3:this.enterOuterAlt(e,3),this.state=3276,this.match(t.ALTER),this.state=3277,this.match(t.EXTENSION),this.state=3278,this.name(),this.state=3279,this.addOrDrop(),this.state=3280,this.match(t.DATABASE),this.state=3281,this.databaseName();break;case 4:this.enterOuterAlt(e,4),this.state=3283,this.match(t.ALTER),this.state=3284,this.match(t.EXTENSION),this.state=3285,this.name(),this.state=3286,this.addOrDrop(),this.state=3287,this.match(t.SCHEMA),this.state=3288,this.schemaName();break;case 5:this.enterOuterAlt(e,5),this.state=3290,this.match(t.ALTER),this.state=3291,this.match(t.EXTENSION),this.state=3292,this.name(),this.state=3293,this.addOrDrop(),this.state=3294,this.match(t.INDEX),this.state=3295,this.indexName();break;case 6:this.enterOuterAlt(e,6),this.state=3297,this.match(t.ALTER),this.state=3298,this.match(t.EXTENSION),this.state=3299,this.name(),this.state=3300,this.addOrDrop(),this.state=3301,this.objectTypeAnyName(),this.state=3302,this.anyName();break;case 7:this.enterOuterAlt(e,7),this.state=3304,this.match(t.ALTER),this.state=3305,this.match(t.EXTENSION),this.state=3306,this.name(),this.state=3307,this.addOrDrop(),this.state=3308,this.match(t.SEQUENCE),this.state=3309,this.sequenceName();break;case 8:this.enterOuterAlt(e,8),this.state=3311,this.match(t.ALTER),this.state=3312,this.match(t.EXTENSION),this.state=3313,this.name(),this.state=3314,this.addOrDrop(),this.state=3315,this.match(t.AGGREGATE),this.state=3316,this.aggregateWithArgumentTypes();break;case 9:this.enterOuterAlt(e,9),this.state=3318,this.match(t.ALTER),this.state=3319,this.match(t.EXTENSION),this.state=3320,this.name(),this.state=3321,this.addOrDrop(),this.state=3322,this.match(t.CAST),this.state=3323,this.match(t.OPEN_PAREN),this.state=3324,this.typeName(),this.state=3325,this.match(t.AS),this.state=3326,this.typeName(),this.state=3327,this.match(t.CLOSE_PAREN);break;case 10:this.enterOuterAlt(e,10),this.state=3329,this.match(t.ALTER),this.state=3330,this.match(t.EXTENSION),this.state=3331,this.name(),this.state=3332,this.addOrDrop(),this.state=3333,this.match(t.DOMAIN_P),this.state=3334,this.typeName();break;case 11:this.enterOuterAlt(e,11),this.state=3336,this.match(t.ALTER),this.state=3337,this.match(t.EXTENSION),this.state=3338,this.name(),this.state=3339,this.addOrDrop(),this.state=3340,this.match(t.FUNCTION),this.state=3341,this.functionWithArgumentTypes();break;case 12:this.enterOuterAlt(e,12),this.state=3343,this.match(t.ALTER),this.state=3344,this.match(t.EXTENSION),this.state=3345,this.name(),this.state=3346,this.addOrDrop(),this.state=3347,this.match(t.OPERATOR),this.state=3348,this.operatorWithArgumentTypes();break;case 13:this.enterOuterAlt(e,13),this.state=3350,this.match(t.ALTER),this.state=3351,this.match(t.EXTENSION),this.state=3352,this.name(),this.state=3353,this.addOrDrop(),this.state=3354,this.match(t.OPERATOR),this.state=3355,this.match(t.CLASS),this.state=3356,this.anyName(),this.state=3357,this.match(t.USING),this.state=3358,this.name();break;case 14:this.enterOuterAlt(e,14),this.state=3360,this.match(t.ALTER),this.state=3361,this.match(t.EXTENSION),this.state=3362,this.name(),this.state=3363,this.addOrDrop(),this.state=3364,this.match(t.OPERATOR),this.state=3365,this.match(t.FAMILY),this.state=3366,this.anyName(),this.state=3367,this.match(t.USING),this.state=3368,this.name();break;case 15:this.enterOuterAlt(e,15),this.state=3370,this.match(t.ALTER),this.state=3371,this.match(t.EXTENSION),this.state=3372,this.name(),this.state=3373,this.addOrDrop(),this.state=3374,this.match(t.PROCEDURE),this.state=3375,this.functionWithArgumentTypes();break;case 16:this.enterOuterAlt(e,16),this.state=3377,this.match(t.ALTER),this.state=3378,this.match(t.EXTENSION),this.state=3379,this.name(),this.state=3380,this.addOrDrop(),this.state=3381,this.match(t.ROUTINE),this.state=3382,this.functionWithArgumentTypes();break;case 17:this.enterOuterAlt(e,17),this.state=3384,this.match(t.ALTER),this.state=3385,this.match(t.EXTENSION),this.state=3386,this.name(),this.state=3387,this.addOrDrop(),this.state=3388,this.match(t.TRANSFORM),this.state=3389,this.match(t.FOR),this.state=3390,this.typeName(),this.state=3391,this.match(t.LANGUAGE),this.state=3392,this.name();break;case 18:this.enterOuterAlt(e,18),this.state=3394,this.match(t.ALTER),this.state=3395,this.match(t.EXTENSION),this.state=3396,this.name(),this.state=3397,this.addOrDrop(),this.state=3398,this.match(t.TYPE_P),this.state=3399,this.typeName()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createForeignDataWrapperStatement(){let e,s=new KE(this.context,this.state);this.enterRule(s,294,t.RULE_createForeignDataWrapperStatement);try{this.enterOuterAlt(s,1),this.state=3403,this.match(t.CREATE),this.state=3404,this.match(t.FOREIGN),this.state=3405,this.match(t.DATA_P),this.state=3406,this.match(t.WRAPPER),this.state=3407,this.name(),this.state=3409,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(215===e||262===e||366===e)&&(this.state=3408,this.forwardOptions()),this.state=3411,this.createGenericOptions()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}forwardOption(){let e=new QE(this.context,this.state);this.enterRule(e,296,t.RULE_forwardOption);try{switch(this.state=3421,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,160,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3413,this.match(t.HANDLER),this.state=3414,this.handlerName();break;case 2:this.enterOuterAlt(e,2),this.state=3415,this.match(t.NO),this.state=3416,this.match(t.HANDLER);break;case 3:this.enterOuterAlt(e,3),this.state=3417,this.match(t.VALIDATOR),this.state=3418,this.handlerName();break;case 4:this.enterOuterAlt(e,4),this.state=3419,this.match(t.NO),this.state=3420,this.match(t.VALIDATOR)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}forwardOptions(){let e,s=new JE(this.context,this.state);this.enterRule(s,298,t.RULE_forwardOptions);try{this.enterOuterAlt(s,1),this.state=3424,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=3423,this.forwardOption(),this.state=3426,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(215===e||262===e||366===e)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterForeignDataWrapperStatement(){let e,s=new ZE(this.context,this.state);this.enterRule(s,300,t.RULE_alterForeignDataWrapperStatement);try{switch(this.state=3445,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,163,this.context)){case 1:this.enterOuterAlt(s,1),this.state=3428,this.match(t.ALTER),this.state=3429,this.match(t.FOREIGN),this.state=3430,this.match(t.DATA_P),this.state=3431,this.match(t.WRAPPER),this.state=3432,this.name(),this.state=3434,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(215===e||262===e||366===e)&&(this.state=3433,this.forwardOptions()),this.state=3436,this.alterGenericOptions();break;case 2:this.enterOuterAlt(s,2),this.state=3438,this.match(t.ALTER),this.state=3439,this.match(t.FOREIGN),this.state=3440,this.match(t.DATA_P),this.state=3441,this.match(t.WRAPPER),this.state=3442,this.name(),this.state=3443,this.forwardOptions()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createGenericOptions(){let e=new qE(this.context,this.state);this.enterRule(e,302,t.RULE_createGenericOptions);try{switch(this.state=3453,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPTIONS:this.enterOuterAlt(e,1),this.state=3447,this.match(t.OPTIONS),this.state=3448,this.match(t.OPEN_PAREN),this.state=3449,this.genericOptionList(),this.state=3450,this.match(t.CLOSE_PAREN);break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.CHECK:case t.COLLATE:case t.CONSTRAINT:case t.DEFAULT:case t.DEFERRABLE:case t.INITIALLY:case t.INTO:case t.NOT:case t.NULL_P:case t.PRIMARY:case t.REFERENCES:case t.UNIQUE:case t.GENERATED:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}genericOptionList(){let e,s=new jE(this.context,this.state);this.enterRule(s,304,t.RULE_genericOptionList);try{for(this.enterOuterAlt(s,1),this.state=3455,this.genericOptionElement(),this.state=3460,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=3456,this.match(t.COMMA),this.state=3457,this.genericOptionElement(),this.state=3462,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterGenericOptions(){let e=new zE(this.context,this.state);this.enterRule(e,306,t.RULE_alterGenericOptions);try{this.enterOuterAlt(e,1),this.state=3463,this.match(t.OPTIONS),this.state=3464,this.match(t.OPEN_PAREN),this.state=3465,this.alterGenericOptionList(),this.state=3466,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterGenericOptionList(){let e,s=new $E(this.context,this.state);this.enterRule(s,308,t.RULE_alterGenericOptionList);try{for(this.enterOuterAlt(s,1),this.state=3468,this.alterGenericOptionElem(),this.state=3473,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=3469,this.match(t.COMMA),this.state=3470,this.alterGenericOptionElem(),this.state=3475,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterGenericOptionElem(){let e=new tT(this.context,this.state);this.enterRule(e,310,t.RULE_alterGenericOptionElem);try{switch(this.state=3483,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,167,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3476,this.genericOptionElement();break;case 2:this.enterOuterAlt(e,2),this.state=3477,this.match(t.SET),this.state=3478,this.genericOptionElement();break;case 3:this.enterOuterAlt(e,3),this.state=3479,this.match(t.ADD_P),this.state=3480,this.genericOptionElement();break;case 4:this.enterOuterAlt(e,4),this.state=3481,this.match(t.DROP),this.state=3482,this.genericOptionName()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}genericOptionElement(){let e=new eT(this.context,this.state);this.enterRule(e,312,t.RULE_genericOptionElement);try{this.enterOuterAlt(e,1),this.state=3485,this.genericOptionName(),this.state=3486,this.genericOptionArgument()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}genericOptionName(){let e=new sT(this.context,this.state);this.enterRule(e,314,t.RULE_genericOptionName);try{this.enterOuterAlt(e,1),this.state=3488,this.columnLabel()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}genericOptionArgument(){let e=new aT(this.context,this.state);this.enterRule(e,316,t.RULE_genericOptionArgument);try{this.enterOuterAlt(e,1),this.state=3490,this.sconst()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createForeignServerStatement(){let e,s=new rT(this.context,this.state);this.enterRule(s,318,t.RULE_createForeignServerStatement);try{switch(this.state=3521,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,170,this.context)){case 1:this.enterOuterAlt(s,1),this.state=3492,this.match(t.CREATE),this.state=3493,this.match(t.SERVER),this.state=3494,this.name(),this.state=3495,this.optionalType(),this.state=3497,this.errorHandler.sync(this),e=this.tokenStream.LA(1),368===e&&(this.state=3496,this.foreignServerVersion()),this.state=3499,this.match(t.FOREIGN),this.state=3500,this.match(t.DATA_P),this.state=3501,this.match(t.WRAPPER),this.state=3502,this.name(),this.state=3503,this.createGenericOptions();break;case 2:this.enterOuterAlt(s,2),this.state=3505,this.match(t.CREATE),this.state=3506,this.match(t.SERVER),this.state=3507,this.match(t.IF_P),this.state=3508,this.match(t.NOT),this.state=3509,this.match(t.EXISTS),this.state=3510,this.name(),this.state=3511,this.optionalType(),this.state=3513,this.errorHandler.sync(this),e=this.tokenStream.LA(1),368===e&&(this.state=3512,this.foreignServerVersion()),this.state=3515,this.match(t.FOREIGN),this.state=3516,this.match(t.DATA_P),this.state=3517,this.match(t.WRAPPER),this.state=3518,this.name(),this.state=3519,this.createGenericOptions()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalType(){let e=new iT(this.context,this.state);this.enterRule(e,320,t.RULE_optionalType);try{switch(this.state=3526,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.TYPE_P:this.enterOuterAlt(e,1),this.state=3523,this.match(t.TYPE_P),this.state=3524,this.sconst();break;case t.FOREIGN:case t.VERSION_P:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}foreignServerVersion(){let e=new cT(this.context,this.state);this.enterRule(e,322,t.RULE_foreignServerVersion);try{switch(this.enterOuterAlt(e,1),this.state=3528,this.match(t.VERSION_P),this.state=3531,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.EscapeStringConstant:this.state=3529,this.sconst();break;case t.NULL_P:this.state=3530,this.match(t.NULL_P);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterForeignServerStatement(){let e,s=new nT(this.context,this.state);this.enterRule(s,324,t.RULE_alterForeignServerStatement);try{switch(this.enterOuterAlt(s,1),this.state=3533,this.match(t.ALTER),this.state=3534,this.match(t.SERVER),this.state=3535,this.name(),this.state=3541,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPTIONS:this.state=3536,this.alterGenericOptions();break;case t.VERSION_P:this.state=3537,this.foreignServerVersion(),this.state=3539,this.errorHandler.sync(this),e=this.tokenStream.LA(1),273===e&&(this.state=3538,this.alterGenericOptions());break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createForeignTableStatement(){let e=new hT(this.context,this.state);this.enterRule(e,326,t.RULE_createForeignTableStatement);try{switch(this.state=3599,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,175,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3543,this.match(t.CREATE),this.state=3544,this.match(t.FOREIGN),this.state=3545,this.match(t.TABLE),this.state=3546,this.qualifiedName(),this.state=3547,this.match(t.OPEN_PAREN),this.state=3548,this.optionalTableElementList(),this.state=3549,this.match(t.CLOSE_PAREN),this.state=3550,this.inheritClause(),this.state=3551,this.match(t.SERVER),this.state=3552,this.name(),this.state=3553,this.createGenericOptions();break;case 2:this.enterOuterAlt(e,2),this.state=3555,this.match(t.CREATE),this.state=3556,this.match(t.FOREIGN),this.state=3557,this.match(t.TABLE),this.state=3558,this.match(t.IF_P),this.state=3559,this.match(t.NOT),this.state=3560,this.match(t.EXISTS),this.state=3561,this.qualifiedName(),this.state=3562,this.match(t.OPEN_PAREN),this.state=3563,this.optionalTableElementList(),this.state=3564,this.match(t.CLOSE_PAREN),this.state=3565,this.inheritClause(),this.state=3566,this.match(t.SERVER),this.state=3567,this.name(),this.state=3568,this.createGenericOptions();break;case 3:this.enterOuterAlt(e,3),this.state=3570,this.match(t.CREATE),this.state=3571,this.match(t.FOREIGN),this.state=3572,this.match(t.TABLE),this.state=3573,this.qualifiedName(),this.state=3574,this.match(t.PARTITION),this.state=3575,this.match(t.OF),this.state=3576,this.qualifiedName(),this.state=3577,this.optionalTypedTableElementList(),this.state=3578,this.partitionBoundSpecification(),this.state=3579,this.match(t.SERVER),this.state=3580,this.name(),this.state=3581,this.createGenericOptions();break;case 4:this.enterOuterAlt(e,4),this.state=3583,this.match(t.CREATE),this.state=3584,this.match(t.FOREIGN),this.state=3585,this.match(t.TABLE),this.state=3586,this.match(t.IF_P),this.state=3587,this.match(t.NOT),this.state=3588,this.match(t.EXISTS),this.state=3589,this.qualifiedName(),this.state=3590,this.match(t.PARTITION),this.state=3591,this.match(t.OF),this.state=3592,this.qualifiedName(),this.state=3593,this.optionalTypedTableElementList(),this.state=3594,this.partitionBoundSpecification(),this.state=3595,this.match(t.SERVER),this.state=3596,this.name(),this.state=3597,this.createGenericOptions()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}importForeignSchemaStatement(){let e=new ET(this.context,this.state);this.enterRule(e,328,t.RULE_importForeignSchemaStatement);try{this.enterOuterAlt(e,1),this.state=3601,this.match(t.IMPORT_P),this.state=3602,this.match(t.FOREIGN),this.state=3603,this.match(t.SCHEMA),this.state=3604,this.name(),this.state=3605,this.importQualification(),this.state=3606,this.match(t.FROM),this.state=3607,this.match(t.SERVER),this.state=3608,this.name(),this.state=3609,this.match(t.INTO),this.state=3610,this.name(),this.state=3611,this.createGenericOptions()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}importQualificationType(){let e=new TT(this.context,this.state);this.enterRule(e,330,t.RULE_importQualificationType);try{switch(this.state=3616,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LIMIT:this.enterOuterAlt(e,1),this.state=3613,this.match(t.LIMIT),this.state=3614,this.match(t.TO);break;case t.EXCEPT:this.enterOuterAlt(e,2),this.state=3615,this.match(t.EXCEPT);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}importQualification(){let e=new oT(this.context,this.state);this.enterRule(e,332,t.RULE_importQualification);try{switch(this.state=3624,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.EXCEPT:case t.LIMIT:this.enterOuterAlt(e,1),this.state=3618,this.importQualificationType(),this.state=3619,this.match(t.OPEN_PAREN),this.state=3620,this.relationExpressionList(),this.state=3621,this.match(t.CLOSE_PAREN);break;case t.FROM:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createUserMappingStatement(){let e=new RT(this.context,this.state);this.enterRule(e,334,t.RULE_createUserMappingStatement);try{switch(this.state=3647,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,178,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3626,this.match(t.CREATE),this.state=3627,this.match(t.USER),this.state=3628,this.match(t.MAPPING),this.state=3629,this.match(t.FOR),this.state=3630,this.authIdentifier(),this.state=3631,this.match(t.SERVER),this.state=3632,this.name(),this.state=3633,this.createGenericOptions();break;case 2:this.enterOuterAlt(e,2),this.state=3635,this.match(t.CREATE),this.state=3636,this.match(t.USER),this.state=3637,this.match(t.MAPPING),this.state=3638,this.match(t.IF_P),this.state=3639,this.match(t.NOT),this.state=3640,this.match(t.EXISTS),this.state=3641,this.match(t.FOR),this.state=3642,this.authIdentifier(),this.state=3643,this.match(t.SERVER),this.state=3644,this.name(),this.state=3645,this.createGenericOptions()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}authIdentifier(){let e=new AT(this.context,this.state);this.enterRule(e,336,t.RULE_authIdentifier);try{switch(this.state=3651,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CURRENT_USER:case t.DEFAULT:case t.DO:case t.FETCH:case t.SESSION_USER:case t.TABLE:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,1),this.state=3649,this.roleName();break;case t.USER:this.enterOuterAlt(e,2),this.state=3650,this.match(t.USER);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropUserMappingStatement(){let e=new ST(this.context,this.state);this.enterRule(e,338,t.RULE_dropUserMappingStatement);try{switch(this.state=3671,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,180,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3653,this.match(t.DROP),this.state=3654,this.match(t.USER),this.state=3655,this.match(t.MAPPING),this.state=3656,this.match(t.FOR),this.state=3657,this.authIdentifier(),this.state=3658,this.match(t.SERVER),this.state=3659,this.name();break;case 2:this.enterOuterAlt(e,2),this.state=3661,this.match(t.DROP),this.state=3662,this.match(t.USER),this.state=3663,this.match(t.MAPPING),this.state=3664,this.match(t.IF_P),this.state=3665,this.match(t.EXISTS),this.state=3666,this.match(t.FOR),this.state=3667,this.authIdentifier(),this.state=3668,this.match(t.SERVER),this.state=3669,this.name()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterUserMappingStatement(){let e=new lT(this.context,this.state);this.enterRule(e,340,t.RULE_alterUserMappingStatement);try{this.enterOuterAlt(e,1),this.state=3673,this.match(t.ALTER),this.state=3674,this.match(t.USER),this.state=3675,this.match(t.MAPPING),this.state=3676,this.match(t.FOR),this.state=3677,this.authIdentifier(),this.state=3678,this.match(t.SERVER),this.state=3679,this.name(),this.state=3680,this.alterGenericOptions()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createPolicyStatement(){let e=new OT(this.context,this.state);this.enterRule(e,342,t.RULE_createPolicyStatement);try{this.enterOuterAlt(e,1),this.state=3682,this.match(t.CREATE),this.state=3683,this.match(t.POLICY),this.state=3684,this.name(),this.state=3685,this.match(t.ON),this.state=3686,this.qualifiedName(),this.state=3687,this.rowSecurityDefaultPermissive(),this.state=3688,this.rowSecurityDefaultForCmd(),this.state=3689,this.rowSecurityOptionalToUser(),this.state=3690,this.rowSecurityOptionalExpression(),this.state=3691,this.rowSecurityOptionalWithCheck()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterPolicyStatement(){let e=new IT(this.context,this.state);this.enterRule(e,344,t.RULE_alterPolicyStatement);try{this.enterOuterAlt(e,1),this.state=3693,this.match(t.ALTER),this.state=3694,this.match(t.POLICY),this.state=3695,this.name(),this.state=3696,this.match(t.ON),this.state=3697,this.qualifiedName(),this.state=3698,this.rowSecurityOptionalToUser(),this.state=3699,this.rowSecurityOptionalExpression(),this.state=3700,this.rowSecurityOptionalWithCheck()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}rowSecurityOptionalExpression(){let e=new uT(this.context,this.state);this.enterRule(e,346,t.RULE_rowSecurityOptionalExpression);try{switch(this.state=3708,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.USING:this.enterOuterAlt(e,1),this.state=3702,this.match(t.USING),this.state=3703,this.match(t.OPEN_PAREN),this.state=3704,this.expression1(),this.state=3705,this.match(t.CLOSE_PAREN);break;case t.EOF:case t.SEMI:case t.INTO:case t.WITH:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}rowSecurityOptionalWithCheck(){let e=new NT(this.context,this.state);this.enterRule(e,348,t.RULE_rowSecurityOptionalWithCheck);try{switch(this.state=3717,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WITH:this.enterOuterAlt(e,1),this.state=3710,this.match(t.WITH),this.state=3711,this.match(t.CHECK),this.state=3712,this.match(t.OPEN_PAREN),this.state=3713,this.expression1(),this.state=3714,this.match(t.CLOSE_PAREN);break;case t.EOF:case t.SEMI:case t.INTO:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}rowSecurityOptionalToUser(){let e=new LT(this.context,this.state);this.enterRule(e,350,t.RULE_rowSecurityOptionalToUser);try{switch(this.state=3722,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.TO:this.enterOuterAlt(e,1),this.state=3719,this.match(t.TO),this.state=3720,this.roleNameList();break;case t.EOF:case t.SEMI:case t.INTO:case t.USING:case t.WITH:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}rowSecurityDefaultPermissive(){let e=new CT(this.context,this.state);this.enterRule(e,352,t.RULE_rowSecurityDefaultPermissive);try{switch(this.state=3727,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AS:this.enterOuterAlt(e,1),this.state=3724,this.match(t.AS),this.state=3725,this.identifier();break;case t.EOF:case t.SEMI:case t.FOR:case t.INTO:case t.TO:case t.USING:case t.WITH:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}rowSecurityDefaultForCmd(){let e=new _T(this.context,this.state);this.enterRule(e,354,t.RULE_rowSecurityDefaultForCmd);try{switch(this.state=3732,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FOR:this.enterOuterAlt(e,1),this.state=3729,this.match(t.FOR),this.state=3730,this.rowSecurityCommand();break;case t.EOF:case t.SEMI:case t.INTO:case t.TO:case t.USING:case t.WITH:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}rowSecurityCommand(){let e,s=new PT(this.context,this.state);this.enterRule(s,356,t.RULE_rowSecurityCommand);try{this.enterOuterAlt(s,1),this.state=3734,e=this.tokenStream.LA(1),30===e||88===e||182===e||232===e||362===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createAccessMethodStatement(){let e=new MT(this.context,this.state);this.enterRule(e,358,t.RULE_createAccessMethodStatement);try{this.enterOuterAlt(e,1),this.state=3736,this.match(t.CREATE),this.state=3737,this.match(t.ACCESS),this.state=3738,this.match(t.METHOD),this.state=3739,this.name(),this.state=3740,this.match(t.TYPE_P),this.state=3741,this.accessMethodType(),this.state=3742,this.match(t.HANDLER),this.state=3743,this.handlerName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}accessMethodType(){let e,s=new dT(this.context,this.state);this.enterRule(s,360,t.RULE_accessMethodType);try{this.enterOuterAlt(s,1),this.state=3745,e=this.tokenStream.LA(1),92===e||226===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createTriggerStatement(){let e=new UT(this.context,this.state);this.enterRule(e,362,t.RULE_createTriggerStatement);try{switch(this.state=3785,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,186,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3747,this.match(t.CREATE),this.state=3748,this.match(t.TRIGGER),this.state=3749,this.name(),this.state=3750,this.triggerActionTime(),this.state=3751,this.triggerEvents(),this.state=3752,this.match(t.ON),this.state=3753,this.qualifiedName(),this.state=3754,this.triggerReferencing(),this.state=3755,this.triggerForSpec(),this.state=3756,this.triggerWhen(),this.state=3757,this.match(t.EXECUTE),this.state=3758,this.functionOrProcedure(),this.state=3759,this.functionName(),this.state=3760,this.match(t.OPEN_PAREN),this.state=3761,this.triggerFunctionArguments(),this.state=3762,this.match(t.CLOSE_PAREN);break;case 2:this.enterOuterAlt(e,2),this.state=3764,this.match(t.CREATE),this.state=3765,this.match(t.CONSTRAINT),this.state=3766,this.match(t.TRIGGER),this.state=3767,this.name(),this.state=3768,this.match(t.AFTER),this.state=3769,this.triggerEvents(),this.state=3770,this.match(t.ON),this.state=3771,this.qualifiedName(),this.state=3772,this.optionalConstraintFromTable(),this.state=3773,this.constraintAttributeSpecification(),this.state=3774,this.match(t.FOR),this.state=3775,this.match(t.EACH),this.state=3776,this.match(t.ROW),this.state=3777,this.triggerWhen(),this.state=3778,this.match(t.EXECUTE),this.state=3779,this.functionOrProcedure(),this.state=3780,this.functionName(),this.state=3781,this.match(t.OPEN_PAREN),this.state=3782,this.triggerFunctionArguments(),this.state=3783,this.match(t.CLOSE_PAREN)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}triggerActionTime(){let e=new mT(this.context,this.state);this.enterRule(e,364,t.RULE_triggerActionTime);try{switch(this.state=3791,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.BEFORE:this.enterOuterAlt(e,1),this.state=3787,this.match(t.BEFORE);break;case t.AFTER:this.enterOuterAlt(e,2),this.state=3788,this.match(t.AFTER);break;case t.INSTEAD:this.enterOuterAlt(e,3),this.state=3789,this.match(t.INSTEAD),this.state=3790,this.match(t.OF);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}triggerEvents(){let e,s=new DT(this.context,this.state);this.enterRule(s,366,t.RULE_triggerEvents);try{for(this.enterOuterAlt(s,1),this.state=3793,this.triggerOneEvent(),this.state=3798,this.errorHandler.sync(this),e=this.tokenStream.LA(1);82===e;)this.state=3794,this.match(t.OR),this.state=3795,this.triggerOneEvent(),this.state=3800,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}triggerOneEvent(){let e=new pT(this.context,this.state);this.enterRule(e,368,t.RULE_triggerOneEvent);try{switch(this.state=3808,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,189,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3801,this.match(t.INSERT);break;case 2:this.enterOuterAlt(e,2),this.state=3802,this.match(t.DELETE_P);break;case 3:this.enterOuterAlt(e,3),this.state=3803,this.match(t.UPDATE);break;case 4:this.enterOuterAlt(e,4),this.state=3804,this.match(t.UPDATE),this.state=3805,this.match(t.OF),this.state=3806,this.columnList();break;case 5:this.enterOuterAlt(e,5),this.state=3807,this.match(t.TRUNCATE)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}triggerReferencing(){let e=new gT(this.context,this.state);this.enterRule(e,370,t.RULE_triggerReferencing);try{switch(this.state=3813,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.REFERENCING:this.enterOuterAlt(e,1),this.state=3810,this.match(t.REFERENCING),this.state=3811,this.triggerTransitions();break;case t.FOR:case t.WHEN:case t.EXECUTE:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}triggerTransitions(){let e,s=new xT(this.context,this.state);this.enterRule(s,372,t.RULE_triggerTransitions);try{this.enterOuterAlt(s,1),this.state=3816,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=3815,this.triggerTransition(),this.state=3818,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(448===e||449===e)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}triggerTransition(){let e=new kT(this.context,this.state);this.enterRule(e,374,t.RULE_triggerTransition);try{this.enterOuterAlt(e,1),this.state=3820,this.transitionOldOrNew(),this.state=3821,this.transitionRowOrTable(),this.state=3822,this.optionalAs(),this.state=3823,this.transitionRelName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}transitionOldOrNew(){let e,s=new HT(this.context,this.state);this.enterRule(s,376,t.RULE_transitionOldOrNew);try{this.enterOuterAlt(s,1),this.state=3825,e=this.tokenStream.LA(1),448===e||449===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}transitionRowOrTable(){let e,s=new GT(this.context,this.state);this.enterRule(s,378,t.RULE_transitionRowOrTable);try{this.enterOuterAlt(s,1),this.state=3827,e=this.tokenStream.LA(1),92===e||407===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}transitionRelName(){let e=new FT(this.context,this.state);this.enterRule(e,380,t.RULE_transitionRelName);try{this.enterOuterAlt(e,1),this.state=3829,this.columnId()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}triggerForSpec(){let e,s=new vT(this.context,this.state);this.enterRule(s,382,t.RULE_triggerForSpec);try{switch(this.state=3837,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FOR:this.enterOuterAlt(s,1),this.state=3831,this.match(t.FOR),this.state=3833,this.errorHandler.sync(this),e=this.tokenStream.LA(1),192===e&&(this.state=3832,this.match(t.EACH)),this.state=3835,this.triggerForType();break;case t.WHEN:case t.EXECUTE:this.enterOuterAlt(s,2);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}triggerForType(){let e,s=new BT(this.context,this.state);this.enterRule(s,384,t.RULE_triggerForType);try{this.enterOuterAlt(s,1),this.state=3839,e=this.tokenStream.LA(1),334===e||407===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}triggerWhen(){let e=new yT(this.context,this.state);this.enterRule(e,386,t.RULE_triggerWhen);try{switch(this.state=3847,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WHEN:this.enterOuterAlt(e,1),this.state=3841,this.match(t.WHEN),this.state=3842,this.match(t.OPEN_PAREN),this.state=3843,this.expression1(),this.state=3844,this.match(t.CLOSE_PAREN);break;case t.EXECUTE:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}functionOrProcedure(){let e,s=new fT(this.context,this.state);this.enterRule(s,388,t.RULE_functionOrProcedure);try{this.enterOuterAlt(s,1),this.state=3849,e=this.tokenStream.LA(1),211===e||289===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}triggerFunctionArguments(){let e,s=new YT(this.context,this.state);this.enterRule(s,390,t.RULE_triggerFunctionArguments);try{switch(this.enterOuterAlt(s,1),this.state=3853,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ALL:case t.ANALYSE:case t.ANALYZE:case t.AND:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASYMMETRIC:case t.BOTH:case t.CASE:case t.CAST:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CREATE:case t.CURRENT_CATALOG:case t.CURRENT_DATE:case t.CURRENT_ROLE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.CURRENT_USER:case t.DEFAULT:case t.DEFERRABLE:case t.DESC:case t.DISTINCT:case t.DO:case t.ELSE:case t.EXCEPT:case t.FALSE_P:case t.FETCH:case t.FOR:case t.FOREIGN:case t.FROM:case t.GRANT:case t.GROUP_P:case t.HAVING:case t.IN_P:case t.INITIALLY:case t.INTERSECT:case t.LATERAL_P:case t.LEADING:case t.LIMIT:case t.LOCALTIME:case t.LOCALTIMESTAMP:case t.NOT:case t.NULL_P:case t.OFFSET:case t.ON:case t.ONLY:case t.OR:case t.ORDER:case t.PLACING:case t.PRIMARY:case t.REFERENCES:case t.RETURNING:case t.SELECT:case t.SESSION_USER:case t.SOME:case t.SYMMETRIC:case t.TABLE:case t.THEN:case t.TO:case t.TRAILING:case t.TRUE_P:case t.UNION:case t.UNIQUE:case t.USER:case t.USING:case t.VARIADIC:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.END_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.Integral:case t.Numeric:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:this.state=3851,this.triggerFunctionArgument();break;case t.CLOSE_PAREN:case t.COMMA:break;default:throw new Ei(this)}for(this.state=3859,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=3855,this.match(t.COMMA),this.state=3856,this.triggerFunctionArgument(),this.state=3861,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}triggerFunctionArgument(){let e=new wT(this.context,this.state);this.enterRule(e,392,t.RULE_triggerFunctionArgument);try{switch(this.state=3866,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.Integral:this.enterOuterAlt(e,1),this.state=3862,this.iconst();break;case t.Numeric:this.enterOuterAlt(e,2),this.state=3863,this.fconst();break;case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.EscapeStringConstant:this.enterOuterAlt(e,3),this.state=3864,this.sconst();break;case t.ALL:case t.ANALYSE:case t.ANALYZE:case t.AND:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASYMMETRIC:case t.BOTH:case t.CASE:case t.CAST:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CREATE:case t.CURRENT_CATALOG:case t.CURRENT_DATE:case t.CURRENT_ROLE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.CURRENT_USER:case t.DEFAULT:case t.DEFERRABLE:case t.DESC:case t.DISTINCT:case t.DO:case t.ELSE:case t.EXCEPT:case t.FALSE_P:case t.FETCH:case t.FOR:case t.FOREIGN:case t.FROM:case t.GRANT:case t.GROUP_P:case t.HAVING:case t.IN_P:case t.INITIALLY:case t.INTERSECT:case t.LATERAL_P:case t.LEADING:case t.LIMIT:case t.LOCALTIME:case t.LOCALTIMESTAMP:case t.NOT:case t.NULL_P:case t.OFFSET:case t.ON:case t.ONLY:case t.OR:case t.ORDER:case t.PLACING:case t.PRIMARY:case t.REFERENCES:case t.RETURNING:case t.SELECT:case t.SESSION_USER:case t.SOME:case t.SYMMETRIC:case t.TABLE:case t.THEN:case t.TO:case t.TRAILING:case t.TRUE_P:case t.UNION:case t.UNIQUE:case t.USER:case t.USING:case t.VARIADIC:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.END_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,4),this.state=3865,this.columnLabel();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalConstraintFromTable(){let e=new bT(this.context,this.state);this.enterRule(e,394,t.RULE_optionalConstraintFromTable);try{switch(this.state=3871,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FROM:this.enterOuterAlt(e,1),this.state=3868,this.match(t.FROM),this.state=3869,this.qualifiedName();break;case t.DEFERRABLE:case t.FOR:case t.INITIALLY:case t.NOT:case t.NO:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}constraintAttributeSpecification(){let e,s=new WT(this.context,this.state);this.enterRule(s,396,t.RULE_constraintAttributeSpecification);try{for(this.enterOuterAlt(s,1),this.state=3876,this.errorHandler.sync(this),e=this.tokenStream.LA(1);!(e-54&-32)&&1<<e-54&8421377||262===e;)this.state=3873,this.constraintAttributeElement(),this.state=3878,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}constraintAttributeElement(){let e=new VT(this.context,this.state);this.enterRule(e,398,t.RULE_constraintAttributeElement);try{switch(this.state=3890,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,200,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3879,this.match(t.NOT),this.state=3880,this.match(t.DEFERRABLE);break;case 2:this.enterOuterAlt(e,2),this.state=3881,this.match(t.DEFERRABLE);break;case 3:this.enterOuterAlt(e,3),this.state=3882,this.match(t.INITIALLY),this.state=3883,this.match(t.IMMEDIATE);break;case 4:this.enterOuterAlt(e,4),this.state=3884,this.match(t.INITIALLY),this.state=3885,this.match(t.DEFERRED);break;case 5:this.enterOuterAlt(e,5),this.state=3886,this.match(t.NOT),this.state=3887,this.match(t.VALID);break;case 6:this.enterOuterAlt(e,6),this.state=3888,this.match(t.NO),this.state=3889,this.match(t.INHERIT)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createEventTriggerStatement(){let e=new XT(this.context,this.state);this.enterRule(e,400,t.RULE_createEventTriggerStatement);try{switch(this.state=3918,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,201,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3892,this.match(t.CREATE),this.state=3893,this.match(t.EVENT),this.state=3894,this.match(t.TRIGGER),this.state=3895,this.name(),this.state=3896,this.match(t.ON),this.state=3897,this.columnLabel(),this.state=3898,this.match(t.EXECUTE),this.state=3899,this.functionOrProcedure(),this.state=3900,this.functionName(),this.state=3901,this.match(t.OPEN_PAREN),this.state=3902,this.match(t.CLOSE_PAREN);break;case 2:this.enterOuterAlt(e,2),this.state=3904,this.match(t.CREATE),this.state=3905,this.match(t.EVENT),this.state=3906,this.match(t.TRIGGER),this.state=3907,this.name(),this.state=3908,this.match(t.ON),this.state=3909,this.columnLabel(),this.state=3910,this.match(t.WHEN),this.state=3911,this.eventTriggerWhenList(),this.state=3912,this.match(t.EXECUTE),this.state=3913,this.functionOrProcedure(),this.state=3914,this.functionName(),this.state=3915,this.match(t.OPEN_PAREN),this.state=3916,this.match(t.CLOSE_PAREN)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}eventTriggerWhenList(){let e,s=new KT(this.context,this.state);this.enterRule(s,402,t.RULE_eventTriggerWhenList);try{for(this.enterOuterAlt(s,1),this.state=3920,this.eventTriggerWhenItem(),this.state=3925,this.errorHandler.sync(this),e=this.tokenStream.LA(1);33===e;)this.state=3921,this.match(t.AND),this.state=3922,this.eventTriggerWhenItem(),this.state=3927,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}eventTriggerWhenItem(){let e=new QT(this.context,this.state);this.enterRule(e,404,t.RULE_eventTriggerWhenItem);try{this.enterOuterAlt(e,1),this.state=3928,this.columnId(),this.state=3929,this.match(t.IN_P),this.state=3930,this.match(t.OPEN_PAREN),this.state=3931,this.eventTriggerValueList(),this.state=3932,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}eventTriggerValueList(){let e,s=new JT(this.context,this.state);this.enterRule(s,406,t.RULE_eventTriggerValueList);try{for(this.enterOuterAlt(s,1),this.state=3934,this.sconst(),this.state=3939,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=3935,this.match(t.COMMA),this.state=3936,this.sconst(),this.state=3941,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterEventTriggerStatement(){let e=new ZT(this.context,this.state);this.enterRule(e,408,t.RULE_alterEventTriggerStatement);try{this.enterOuterAlt(e,1),this.state=3942,this.match(t.ALTER),this.state=3943,this.match(t.EVENT),this.state=3944,this.match(t.TRIGGER),this.state=3945,this.name(),this.state=3946,this.enableTrigger()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}enableTrigger(){let e=new qT(this.context,this.state);this.enterRule(e,410,t.RULE_enableTrigger);try{switch(this.state=3954,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,204,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3948,this.match(t.ENABLE_P);break;case 2:this.enterOuterAlt(e,2),this.state=3949,this.match(t.ENABLE_P),this.state=3950,this.match(t.REPLICA);break;case 3:this.enterOuterAlt(e,3),this.state=3951,this.match(t.ENABLE_P),this.state=3952,this.match(t.ALWAYS);break;case 4:this.enterOuterAlt(e,4),this.state=3953,this.match(t.DISABLE_P)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createAssertionStatement(){let e=new jT(this.context,this.state);this.enterRule(e,412,t.RULE_createAssertionStatement);try{this.enterOuterAlt(e,1),this.state=3956,this.match(t.CREATE),this.state=3957,this.match(t.ASSERTION),this.state=3958,this.anyName(),this.state=3959,this.match(t.CHECK),this.state=3960,this.match(t.OPEN_PAREN),this.state=3961,this.expression1(),this.state=3962,this.match(t.CLOSE_PAREN),this.state=3963,this.constraintAttributeSpecification()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}defineStatement(){let e,s=new zT(this.context,this.state);this.enterRule(s,414,t.RULE_defineStatement);try{switch(this.state=4073,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,206,this.context)){case 1:this.enterOuterAlt(s,1),this.state=3965,this.match(t.CREATE),this.state=3966,this.optionalOrReplace(),this.state=3967,this.match(t.AGGREGATE),this.state=3968,this.functionName(),this.state=3969,this.aggregateArguments(),this.state=3970,this.definition();break;case 2:this.enterOuterAlt(s,2),this.state=3972,this.match(t.CREATE),this.state=3973,this.optionalOrReplace(),this.state=3974,this.match(t.AGGREGATE),this.state=3975,this.functionName(),this.state=3976,this.oldAggregateDefinition();break;case 3:this.enterOuterAlt(s,3),this.state=3978,this.match(t.CREATE),this.state=3979,this.match(t.OPERATOR),this.state=3980,this.anyOperator(),this.state=3981,this.definition();break;case 4:this.enterOuterAlt(s,4),this.state=3983,this.match(t.CREATE),this.state=3984,this.match(t.TYPE_P),this.state=3985,this.anyName(),this.state=3986,this.definition();break;case 5:this.enterOuterAlt(s,5),this.state=3988,this.match(t.CREATE),this.state=3989,this.match(t.TYPE_P),this.state=3990,this.anyName();break;case 6:this.enterOuterAlt(s,6),this.state=3991,this.match(t.CREATE),this.state=3992,this.match(t.TYPE_P),this.state=3993,this.anyName(),this.state=3994,this.match(t.AS),this.state=3995,this.match(t.OPEN_PAREN),this.state=3996,this.optionalTableFunctionElementList(),this.state=3997,this.match(t.CLOSE_PAREN);break;case 7:this.enterOuterAlt(s,7),this.state=3999,this.match(t.CREATE),this.state=4e3,this.match(t.TYPE_P),this.state=4001,this.anyName(),this.state=4002,this.match(t.AS),this.state=4003,this.match(t.ENUM_P),this.state=4004,this.match(t.OPEN_PAREN),this.state=4006,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-645&-32)&&1<<e-645&67108885&&(this.state=4005,this.enumValueList()),this.state=4008,this.match(t.CLOSE_PAREN);break;case 8:this.enterOuterAlt(s,8),this.state=4010,this.match(t.CREATE),this.state=4011,this.match(t.TYPE_P),this.state=4012,this.anyName(),this.state=4013,this.match(t.AS),this.state=4014,this.match(t.RANGE),this.state=4015,this.definition();break;case 9:this.enterOuterAlt(s,9),this.state=4017,this.match(t.CREATE),this.state=4018,this.match(t.TEXT_P),this.state=4019,this.match(t.SEARCH),this.state=4020,this.match(t.PARSER),this.state=4021,this.anyName(),this.state=4022,this.definition();break;case 10:this.enterOuterAlt(s,10),this.state=4024,this.match(t.CREATE),this.state=4025,this.match(t.TEXT_P),this.state=4026,this.match(t.SEARCH),this.state=4027,this.match(t.DICTIONARY),this.state=4028,this.anyName(),this.state=4029,this.definition();break;case 11:this.enterOuterAlt(s,11),this.state=4031,this.match(t.CREATE),this.state=4032,this.match(t.TEXT_P),this.state=4033,this.match(t.SEARCH),this.state=4034,this.match(t.TEMPLATE),this.state=4035,this.anyName(),this.state=4036,this.definition();break;case 12:this.enterOuterAlt(s,12),this.state=4038,this.match(t.CREATE),this.state=4039,this.match(t.TEXT_P),this.state=4040,this.match(t.SEARCH),this.state=4041,this.match(t.CONFIGURATION),this.state=4042,this.anyName(),this.state=4043,this.definition();break;case 13:this.enterOuterAlt(s,13),this.state=4045,this.match(t.CREATE),this.state=4046,this.match(t.COLLATION),this.state=4047,this.anyName(),this.state=4048,this.definition();break;case 14:this.enterOuterAlt(s,14),this.state=4050,this.match(t.CREATE),this.state=4051,this.match(t.COLLATION),this.state=4052,this.match(t.IF_P),this.state=4053,this.match(t.NOT),this.state=4054,this.match(t.EXISTS),this.state=4055,this.anyName(),this.state=4056,this.definition();break;case 15:this.enterOuterAlt(s,15),this.state=4058,this.match(t.CREATE),this.state=4059,this.match(t.COLLATION),this.state=4060,this.anyName(),this.state=4061,this.match(t.FROM),this.state=4062,this.anyName();break;case 16:this.enterOuterAlt(s,16),this.state=4064,this.match(t.CREATE),this.state=4065,this.match(t.COLLATION),this.state=4066,this.match(t.IF_P),this.state=4067,this.match(t.NOT),this.state=4068,this.match(t.EXISTS),this.state=4069,this.anyName(),this.state=4070,this.match(t.FROM),this.state=4071,this.anyName()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}definition(){let e,s=new $T(this.context,this.state);this.enterRule(s,416,t.RULE_definition);try{for(this.enterOuterAlt(s,1),this.state=4075,this.match(t.OPEN_PAREN),this.state=4076,this.definitionElement(),this.state=4081,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=4077,this.match(t.COMMA),this.state=4078,this.definitionElement(),this.state=4083,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=4084,this.match(t.CLOSE_PAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}definitionElement(){let e,s=new to(this.context,this.state);this.enterRule(s,418,t.RULE_definitionElement);try{this.enterOuterAlt(s,1),this.state=4086,this.columnLabel(),this.state=4089,this.errorHandler.sync(this),e=this.tokenStream.LA(1),10===e&&(this.state=4087,this.match(t.EQUAL),this.state=4088,this.definitionArgument())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}definitionArgument(){let e=new eo(this.context,this.state);this.enterRule(e,420,t.RULE_definitionArgument);try{switch(this.state=4097,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,209,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4091,this.functionType();break;case 2:this.enterOuterAlt(e,2),this.state=4092,this.reservedKeyword();break;case 3:this.enterOuterAlt(e,3),this.state=4093,this.allOperatorQualifier();break;case 4:this.enterOuterAlt(e,4),this.state=4094,this.numericOnly();break;case 5:this.enterOuterAlt(e,5),this.state=4095,this.sconst();break;case 6:this.enterOuterAlt(e,6),this.state=4096,this.match(t.NONE)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}oldAggregateDefinition(){let e,s=new so(this.context,this.state);this.enterRule(s,422,t.RULE_oldAggregateDefinition);try{for(this.enterOuterAlt(s,1),this.state=4099,this.match(t.OPEN_PAREN),this.state=4100,this.oldAggregateElement(),this.state=4105,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=4101,this.match(t.COMMA),this.state=4102,this.oldAggregateElement(),this.state=4107,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=4108,this.match(t.CLOSE_PAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}oldAggregateElement(){let e=new ao(this.context,this.state);this.enterRule(e,424,t.RULE_oldAggregateElement);try{this.enterOuterAlt(e,1),this.state=4110,this.identifier(),this.state=4111,this.match(t.EQUAL),this.state=4112,this.definitionArgument()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}enumValueList(){let e,s=new ro(this.context,this.state);this.enterRule(s,426,t.RULE_enumValueList);try{for(this.enterOuterAlt(s,1),this.state=4114,this.sconst(),this.state=4119,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=4115,this.match(t.COMMA),this.state=4116,this.sconst(),this.state=4121,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterEnumStatement(){let e=new io(this.context,this.state);this.enterRule(e,428,t.RULE_alterEnumStatement);try{switch(this.state=4159,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,212,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4122,this.match(t.ALTER),this.state=4123,this.match(t.TYPE_P),this.state=4124,this.anyName(),this.state=4125,this.match(t.ADD_P),this.state=4126,this.match(t.VALUE_P),this.state=4127,this.optionalIfNotExists(),this.state=4128,this.sconst();break;case 2:this.enterOuterAlt(e,2),this.state=4130,this.match(t.ALTER),this.state=4131,this.match(t.TYPE_P),this.state=4132,this.anyName(),this.state=4133,this.match(t.ADD_P),this.state=4134,this.match(t.VALUE_P),this.state=4135,this.optionalIfNotExists(),this.state=4136,this.sconst(),this.state=4137,this.match(t.BEFORE),this.state=4138,this.sconst();break;case 3:this.enterOuterAlt(e,3),this.state=4140,this.match(t.ALTER),this.state=4141,this.match(t.TYPE_P),this.state=4142,this.anyName(),this.state=4143,this.match(t.ADD_P),this.state=4144,this.match(t.VALUE_P),this.state=4145,this.optionalIfNotExists(),this.state=4146,this.sconst(),this.state=4147,this.match(t.AFTER),this.state=4148,this.sconst();break;case 4:this.enterOuterAlt(e,4),this.state=4150,this.match(t.ALTER),this.state=4151,this.match(t.TYPE_P),this.state=4152,this.anyName(),this.state=4153,this.match(t.RENAME),this.state=4154,this.match(t.VALUE_P),this.state=4155,this.sconst(),this.state=4156,this.match(t.TO),this.state=4157,this.sconst()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalIfNotExists(){let e=new co(this.context,this.state);this.enterRule(e,430,t.RULE_optionalIfNotExists);try{switch(this.state=4165,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.IF_P:this.enterOuterAlt(e,1),this.state=4161,this.match(t.IF_P),this.state=4162,this.match(t.NOT),this.state=4163,this.match(t.EXISTS);break;case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.EscapeStringConstant:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createOperatorClassStatement(){let e,s=new no(this.context,this.state);this.enterRule(s,432,t.RULE_createOperatorClassStatement);try{this.enterOuterAlt(s,1),this.state=4167,this.match(t.CREATE),this.state=4168,this.match(t.OPERATOR),this.state=4169,this.match(t.CLASS),this.state=4170,this.anyName(),this.state=4172,this.errorHandler.sync(this),e=this.tokenStream.LA(1),53===e&&(this.state=4171,this.match(t.DEFAULT)),this.state=4174,this.match(t.FOR),this.state=4175,this.match(t.TYPE_P),this.state=4176,this.typeName(),this.state=4177,this.match(t.USING),this.state=4178,this.name(),this.state=4179,this.optionalOperatorFamily(),this.state=4180,this.match(t.AS),this.state=4181,this.operatorClassItemList()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}operatorClassItemList(){let e,s=new ho(this.context,this.state);this.enterRule(s,434,t.RULE_operatorClassItemList);try{for(this.enterOuterAlt(s,1),this.state=4183,this.operatorClassItem(),this.state=4188,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=4184,this.match(t.COMMA),this.state=4185,this.operatorClassItem(),this.state=4190,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}operatorClassItem(){let e,s=new Eo(this.context,this.state);this.enterRule(s,436,t.RULE_operatorClassItem);try{switch(this.state=4218,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,218,this.context)){case 1:this.enterOuterAlt(s,1),this.state=4191,this.match(t.OPERATOR),this.state=4192,this.iconst(),this.state=4193,this.anyOperator(),this.state=4194,this.operatorClassPurpose(),this.state=4196,this.errorHandler.sync(this),e=this.tokenStream.LA(1),295===e&&(this.state=4195,this.match(t.RECHECK));break;case 2:this.enterOuterAlt(s,2),this.state=4198,this.match(t.OPERATOR),this.state=4199,this.iconst(),this.state=4200,this.operatorWithArgumentTypes(),this.state=4201,this.operatorClassPurpose(),this.state=4203,this.errorHandler.sync(this),e=this.tokenStream.LA(1),295===e&&(this.state=4202,this.match(t.RECHECK));break;case 3:this.enterOuterAlt(s,3),this.state=4205,this.match(t.FUNCTION),this.state=4206,this.iconst(),this.state=4207,this.functionWithArgumentTypes();break;case 4:this.enterOuterAlt(s,4),this.state=4209,this.match(t.FUNCTION),this.state=4210,this.iconst(),this.state=4211,this.match(t.OPEN_PAREN),this.state=4212,this.typeList(),this.state=4213,this.match(t.CLOSE_PAREN),this.state=4214,this.functionWithArgumentTypes();break;case 5:this.enterOuterAlt(s,5),this.state=4216,this.match(t.STORAGE),this.state=4217,this.typeName()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalOperatorFamily(){let e=new To(this.context,this.state);this.enterRule(e,438,t.RULE_optionalOperatorFamily);try{switch(this.state=4223,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FAMILY:this.enterOuterAlt(e,1),this.state=4220,this.match(t.FAMILY),this.state=4221,this.anyName();break;case t.AS:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}operatorClassPurpose(){let e=new oo(this.context,this.state);this.enterRule(e,440,t.RULE_operatorClassPurpose);try{switch(this.state=4232,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,220,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4225,this.match(t.FOR),this.state=4226,this.match(t.SEARCH);break;case 2:this.enterOuterAlt(e,2),this.state=4227,this.match(t.FOR),this.state=4228,this.match(t.ORDER),this.state=4229,this.match(t.BY),this.state=4230,this.anyName();break;case 3:this.enterOuterAlt(e,3)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createOperatorFamilyStatement(){let e=new Ro(this.context,this.state);this.enterRule(e,442,t.RULE_createOperatorFamilyStatement);try{this.enterOuterAlt(e,1),this.state=4234,this.match(t.CREATE),this.state=4235,this.match(t.OPERATOR),this.state=4236,this.match(t.FAMILY),this.state=4237,this.anyName(),this.state=4238,this.match(t.USING),this.state=4239,this.name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterOperatorFamilyStatement(){let e=new Ao(this.context,this.state);this.enterRule(e,444,t.RULE_alterOperatorFamilyStatement);try{switch(this.state=4259,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,221,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4241,this.match(t.ALTER),this.state=4242,this.match(t.OPERATOR),this.state=4243,this.match(t.FAMILY),this.state=4244,this.anyName(),this.state=4245,this.match(t.USING),this.state=4246,this.name(),this.state=4247,this.match(t.ADD_P),this.state=4248,this.operatorClassItemList();break;case 2:this.enterOuterAlt(e,2),this.state=4250,this.match(t.ALTER),this.state=4251,this.match(t.OPERATOR),this.state=4252,this.match(t.FAMILY),this.state=4253,this.anyName(),this.state=4254,this.match(t.USING),this.state=4255,this.name(),this.state=4256,this.match(t.DROP),this.state=4257,this.operatorClassDropList()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}operatorClassDropList(){let e,s=new So(this.context,this.state);this.enterRule(s,446,t.RULE_operatorClassDropList);try{for(this.enterOuterAlt(s,1),this.state=4261,this.operatorClassDrop(),this.state=4266,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=4262,this.match(t.COMMA),this.state=4263,this.operatorClassDrop(),this.state=4268,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}operatorClassDrop(){let e=new lo(this.context,this.state);this.enterRule(e,448,t.RULE_operatorClassDrop);try{switch(this.state=4281,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPERATOR:this.enterOuterAlt(e,1),this.state=4269,this.match(t.OPERATOR),this.state=4270,this.iconst(),this.state=4271,this.match(t.OPEN_PAREN),this.state=4272,this.typeList(),this.state=4273,this.match(t.CLOSE_PAREN);break;case t.FUNCTION:this.enterOuterAlt(e,2),this.state=4275,this.match(t.FUNCTION),this.state=4276,this.iconst(),this.state=4277,this.match(t.OPEN_PAREN),this.state=4278,this.typeList(),this.state=4279,this.match(t.CLOSE_PAREN);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropOperatorClassStatement(){let e=new Oo(this.context,this.state);this.enterRule(e,450,t.RULE_dropOperatorClassStatement);try{switch(this.state=4301,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,224,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4283,this.match(t.DROP),this.state=4284,this.match(t.OPERATOR),this.state=4285,this.match(t.CLASS),this.state=4286,this.anyName(),this.state=4287,this.match(t.USING),this.state=4288,this.name(),this.state=4289,this.optionalDropBehavior();break;case 2:this.enterOuterAlt(e,2),this.state=4291,this.match(t.DROP),this.state=4292,this.match(t.OPERATOR),this.state=4293,this.match(t.CLASS),this.state=4294,this.match(t.IF_P),this.state=4295,this.match(t.EXISTS),this.state=4296,this.anyName(),this.state=4297,this.match(t.USING),this.state=4298,this.name(),this.state=4299,this.optionalDropBehavior()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropOperatorFamilyStatement(){let e=new Io(this.context,this.state);this.enterRule(e,452,t.RULE_dropOperatorFamilyStatement);try{switch(this.state=4321,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,225,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4303,this.match(t.DROP),this.state=4304,this.match(t.OPERATOR),this.state=4305,this.match(t.FAMILY),this.state=4306,this.anyName(),this.state=4307,this.match(t.USING),this.state=4308,this.name(),this.state=4309,this.optionalDropBehavior();break;case 2:this.enterOuterAlt(e,2),this.state=4311,this.match(t.DROP),this.state=4312,this.match(t.OPERATOR),this.state=4313,this.match(t.FAMILY),this.state=4314,this.match(t.IF_P),this.state=4315,this.match(t.EXISTS),this.state=4316,this.anyName(),this.state=4317,this.match(t.USING),this.state=4318,this.name(),this.state=4319,this.optionalDropBehavior()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropOwnedStatement(){let e=new uo(this.context,this.state);this.enterRule(e,454,t.RULE_dropOwnedStatement);try{this.enterOuterAlt(e,1),this.state=4323,this.match(t.DROP),this.state=4324,this.match(t.OWNED),this.state=4325,this.match(t.BY),this.state=4326,this.roleNameList(),this.state=4327,this.optionalDropBehavior()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}reassignOwnedStatement(){let e=new No(this.context,this.state);this.enterRule(e,456,t.RULE_reassignOwnedStatement);try{this.enterOuterAlt(e,1),this.state=4329,this.match(t.REASSIGN),this.state=4330,this.match(t.OWNED),this.state=4331,this.match(t.BY),this.state=4332,this.roleNameList(),this.state=4333,this.match(t.TO),this.state=4334,this.roleName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropStatement(){let e=new Lo(this.context,this.state);this.enterRule(e,458,t.RULE_dropStatement);try{switch(this.state=4441,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,233,this.context)){case 1:if(this.enterOuterAlt(e,1),1===(this.state=4336,this.match(t.DROP),this.state=4337,this.objectTypeAnyName(),this.state=4340,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,226,this.context)))this.state=4338,this.match(t.IF_P),this.state=4339,this.match(t.EXISTS);this.state=4342,this.anyNameList(),this.state=4343,this.optionalDropBehavior();break;case 2:if(this.enterOuterAlt(e,2),1===(this.state=4345,this.match(t.DROP),this.state=4346,this.match(t.SEQUENCE),this.state=4349,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,227,this.context)))this.state=4347,this.match(t.IF_P),this.state=4348,this.match(t.EXISTS);this.state=4351,this.sequenceNameList(),this.state=4352,this.optionalDropBehavior();break;case 3:if(this.enterOuterAlt(e,3),1===(this.state=4354,this.match(t.DROP),this.state=4355,this.match(t.INDEX),this.state=4358,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,228,this.context)))this.state=4356,this.match(t.IF_P),this.state=4357,this.match(t.EXISTS);this.state=4360,this.indexNameList(),this.state=4361,this.optionalDropBehavior();break;case 4:if(this.enterOuterAlt(e,4),1===(this.state=4363,this.match(t.DROP),this.state=4364,this.match(t.SCHEMA),this.state=4367,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,229,this.context)))this.state=4365,this.match(t.IF_P),this.state=4366,this.match(t.EXISTS);this.state=4369,this.schemaNameList(),this.state=4370,this.optionalDropBehavior();break;case 5:if(this.enterOuterAlt(e,5),1===(this.state=4372,this.match(t.DROP),this.state=4373,this.dropTypeName(),this.state=4376,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,230,this.context)))this.state=4374,this.match(t.IF_P),this.state=4375,this.match(t.EXISTS);this.state=4378,this.nameList(),this.state=4379,this.optionalDropBehavior();break;case 6:if(this.enterOuterAlt(e,6),1===(this.state=4381,this.match(t.DROP),this.state=4382,this.objectTypeNameOnAnyName(),this.state=4385,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,231,this.context)))this.state=4383,this.match(t.IF_P),this.state=4384,this.match(t.EXISTS);this.state=4387,this.name(),this.state=4388,this.match(t.ON),this.state=4389,this.anyName(),this.state=4390,this.optionalDropBehavior();break;case 7:if(this.enterOuterAlt(e,7),1===(this.state=4392,this.match(t.DROP),this.state=4393,this.match(t.TRIGGER),this.state=4396,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,232,this.context)))this.state=4394,this.match(t.IF_P),this.state=4395,this.match(t.EXISTS);this.state=4398,this.triggerName(),this.state=4399,this.match(t.ON),this.state=4400,this.anyName(),this.state=4401,this.optionalDropBehavior();break;case 8:this.enterOuterAlt(e,8),this.state=4403,this.match(t.DROP),this.state=4404,this.match(t.TYPE_P),this.state=4405,this.typeNameList(),this.state=4406,this.optionalDropBehavior();break;case 9:this.enterOuterAlt(e,9),this.state=4408,this.match(t.DROP),this.state=4409,this.match(t.TYPE_P),this.state=4410,this.match(t.IF_P),this.state=4411,this.match(t.EXISTS),this.state=4412,this.typeNameList(),this.state=4413,this.optionalDropBehavior();break;case 10:this.enterOuterAlt(e,10),this.state=4415,this.match(t.DROP),this.state=4416,this.match(t.DOMAIN_P),this.state=4417,this.typeNameList(),this.state=4418,this.optionalDropBehavior();break;case 11:this.enterOuterAlt(e,11),this.state=4420,this.match(t.DROP),this.state=4421,this.match(t.DOMAIN_P),this.state=4422,this.match(t.IF_P),this.state=4423,this.match(t.EXISTS),this.state=4424,this.typeNameList(),this.state=4425,this.optionalDropBehavior();break;case 12:this.enterOuterAlt(e,12),this.state=4427,this.match(t.DROP),this.state=4428,this.match(t.INDEX),this.state=4429,this.match(t.CONCURRENTLY),this.state=4430,this.indexName(),this.state=4431,this.optionalDropBehavior();break;case 13:this.enterOuterAlt(e,13),this.state=4433,this.match(t.DROP),this.state=4434,this.match(t.INDEX),this.state=4435,this.match(t.CONCURRENTLY),this.state=4436,this.match(t.IF_P),this.state=4437,this.match(t.EXISTS),this.state=4438,this.indexName(),this.state=4439,this.optionalDropBehavior()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}objectTypeAnyName(){let e=new Co(this.context,this.state);this.enterRule(e,460,t.RULE_objectTypeAnyName);try{switch(this.state=4464,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,234,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4443,this.match(t.TABLE);break;case 2:this.enterOuterAlt(e,2),this.state=4444,this.match(t.VIEW);break;case 3:this.enterOuterAlt(e,3),this.state=4445,this.match(t.MATERIALIZED),this.state=4446,this.match(t.VIEW);break;case 4:this.enterOuterAlt(e,4),this.state=4447,this.match(t.FOREIGN),this.state=4448,this.match(t.TABLE);break;case 5:this.enterOuterAlt(e,5),this.state=4449,this.match(t.COLLATION);break;case 6:this.enterOuterAlt(e,6),this.state=4450,this.match(t.CONVERSION_P);break;case 7:this.enterOuterAlt(e,7),this.state=4451,this.match(t.STATISTICS);break;case 8:this.enterOuterAlt(e,8),this.state=4452,this.match(t.TEXT_P),this.state=4453,this.match(t.SEARCH),this.state=4454,this.match(t.PARSER);break;case 9:this.enterOuterAlt(e,9),this.state=4455,this.match(t.TEXT_P),this.state=4456,this.match(t.SEARCH),this.state=4457,this.match(t.DICTIONARY);break;case 10:this.enterOuterAlt(e,10),this.state=4458,this.match(t.TEXT_P),this.state=4459,this.match(t.SEARCH),this.state=4460,this.match(t.TEMPLATE);break;case 11:this.enterOuterAlt(e,11),this.state=4461,this.match(t.TEXT_P),this.state=4462,this.match(t.SEARCH),this.state=4463,this.match(t.CONFIGURATION)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}objectTypeName(){let e=new _o(this.context,this.state);this.enterRule(e,462,t.RULE_objectTypeName);try{switch(this.state=4469,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FOREIGN:case t.ACCESS:case t.EVENT:case t.EXTENSION:case t.LANGUAGE:case t.PROCEDURAL:case t.SERVER:case t.PUBLICATION:this.enterOuterAlt(e,1),this.state=4466,this.dropTypeName();break;case t.SUBSCRIPTION:this.enterOuterAlt(e,2),this.state=4467,this.match(t.SUBSCRIPTION);break;case t.TABLESPACE:this.enterOuterAlt(e,3),this.state=4468,this.match(t.TABLESPACE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropTypeName(){let e=new Po(this.context,this.state);this.enterRule(e,464,t.RULE_dropTypeName);try{switch(this.state=4484,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ACCESS:this.enterOuterAlt(e,1),this.state=4471,this.match(t.ACCESS),this.state=4472,this.match(t.METHOD);break;case t.EVENT:this.enterOuterAlt(e,2),this.state=4473,this.match(t.EVENT),this.state=4474,this.match(t.TRIGGER);break;case t.EXTENSION:this.enterOuterAlt(e,3),this.state=4475,this.match(t.EXTENSION);break;case t.FOREIGN:this.enterOuterAlt(e,4),this.state=4476,this.match(t.FOREIGN),this.state=4477,this.match(t.DATA_P),this.state=4478,this.match(t.WRAPPER);break;case t.LANGUAGE:case t.PROCEDURAL:this.enterOuterAlt(e,5),this.state=4479,this.optionalProcedural(),this.state=4480,this.match(t.LANGUAGE);break;case t.PUBLICATION:this.enterOuterAlt(e,6),this.state=4482,this.match(t.PUBLICATION);break;case t.SERVER:this.enterOuterAlt(e,7),this.state=4483,this.match(t.SERVER);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}objectTypeNameOnAnyName(){let e,s=new Mo(this.context,this.state);this.enterRule(s,466,t.RULE_objectTypeNameOnAnyName);try{this.enterOuterAlt(s,1),this.state=4486,e=this.tokenStream.LA(1),314===e||445===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}anyNameList(){let e,s=new Uo(this.context,this.state);this.enterRule(s,468,t.RULE_anyNameList);try{for(this.enterOuterAlt(s,1),this.state=4488,this.anyName(),this.state=4493,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=4489,this.match(t.COMMA),this.state=4490,this.anyName(),this.state=4495,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}anyName(){let e,s=new mo(this.context,this.state);this.enterRule(s,470,t.RULE_anyName);try{this.enterOuterAlt(s,1),this.state=4496,this.columnId(),this.state=4498,this.errorHandler.sync(this),e=this.tokenStream.LA(1),11===e&&(this.state=4497,this.attributes())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}attributes(){let e=new Do(this.context,this.state);this.enterRule(e,472,t.RULE_attributes);try{let s;this.enterOuterAlt(e,1),this.state=4502,this.errorHandler.sync(this),s=1;do{if(1!==s)throw new Ei(this);this.state=4500,this.match(t.DOT),this.state=4501,this.attributeName(),this.state=4504,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,239,this.context)}while(2!==s&&s!==ja.INVALID_ALT_NUMBER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}typeNameList(){let e,s=new po(this.context,this.state);this.enterRule(s,474,t.RULE_typeNameList);try{for(this.enterOuterAlt(s,1),this.state=4506,this.typeName(),this.state=4511,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=4507,this.match(t.COMMA),this.state=4508,this.typeName(),this.state=4513,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}truncateStatement(){let e=new go(this.context,this.state);this.enterRule(e,476,t.RULE_truncateStatement);try{this.enterOuterAlt(e,1),this.state=4514,this.match(t.TRUNCATE),this.state=4515,this.optionalTable(),this.state=4516,this.relationExpressionList(),this.state=4517,this.optionalRestartSequences(),this.state=4518,this.optionalDropBehavior()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalRestartSequences(){let e=new xo(this.context,this.state);this.enterRule(e,478,t.RULE_optionalRestartSequences);try{switch(this.state=4525,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CONTINUE_P:this.enterOuterAlt(e,1),this.state=4520,this.match(t.CONTINUE_P),this.state=4521,this.match(t.IDENTITY_P);break;case t.RESTART:this.enterOuterAlt(e,2),this.state=4522,this.match(t.RESTART),this.state=4523,this.match(t.IDENTITY_P);break;case t.EOF:case t.SEMI:case t.INTO:case t.CASCADE:case t.RESTRICT:this.enterOuterAlt(e,3);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}commentStatement(){let e=new ko(this.context,this.state);this.enterRule(e,480,t.RULE_commentStatement);try{switch(this.state=4711,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,243,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4527,this.match(t.COMMENT),this.state=4528,this.match(t.ON),this.state=4529,this.objectTypeAnyName(),this.state=4530,this.anyName(),this.state=4531,this.match(t.IS),this.state=4532,this.commentText();break;case 2:this.enterOuterAlt(e,2),this.state=4534,this.match(t.COMMENT),this.state=4535,this.match(t.ON),this.state=4536,this.match(t.SEQUENCE),this.state=4537,this.sequenceName(),this.state=4538,this.match(t.IS),this.state=4539,this.commentText();break;case 3:this.enterOuterAlt(e,3),this.state=4541,this.match(t.COMMENT),this.state=4542,this.match(t.ON),this.state=4543,this.match(t.INDEX),this.state=4544,this.indexName(),this.state=4545,this.match(t.IS),this.state=4546,this.commentText();break;case 4:this.enterOuterAlt(e,4),this.state=4548,this.match(t.COMMENT),this.state=4549,this.match(t.ON),this.state=4550,this.match(t.COLUMN),this.state=4551,this.anyName(),this.state=4552,this.match(t.IS),this.state=4553,this.commentText();break;case 5:this.enterOuterAlt(e,5),this.state=4555,this.match(t.COMMENT),this.state=4556,this.match(t.ON),this.state=4557,this.objectTypeName(),this.state=4558,this.name(),this.state=4559,this.match(t.IS),this.state=4560,this.commentText();break;case 6:this.enterOuterAlt(e,6),this.state=4562,this.match(t.COMMENT),this.state=4563,this.match(t.ON),this.state=4564,this.match(t.ROLE),this.state=4565,this.roleName(),this.state=4566,this.match(t.IS),this.state=4567,this.commentText();break;case 7:this.enterOuterAlt(e,7),this.state=4569,this.match(t.COMMENT),this.state=4570,this.match(t.ON),this.state=4571,this.match(t.DATABASE),this.state=4572,this.databaseName(),this.state=4573,this.match(t.IS),this.state=4574,this.commentText();break;case 8:this.enterOuterAlt(e,8),this.state=4576,this.match(t.COMMENT),this.state=4577,this.match(t.ON),this.state=4578,this.match(t.SCHEMA),this.state=4579,this.schemaName(),this.state=4580,this.match(t.IS),this.state=4581,this.commentText();break;case 9:this.enterOuterAlt(e,9),this.state=4583,this.match(t.COMMENT),this.state=4584,this.match(t.ON),this.state=4585,this.match(t.TYPE_P),this.state=4586,this.typeName(),this.state=4587,this.match(t.IS),this.state=4588,this.commentText();break;case 10:this.enterOuterAlt(e,10),this.state=4590,this.match(t.COMMENT),this.state=4591,this.match(t.ON),this.state=4592,this.match(t.DOMAIN_P),this.state=4593,this.typeName(),this.state=4594,this.match(t.IS),this.state=4595,this.commentText();break;case 11:this.enterOuterAlt(e,11),this.state=4597,this.match(t.COMMENT),this.state=4598,this.match(t.ON),this.state=4599,this.match(t.AGGREGATE),this.state=4600,this.aggregateWithArgumentTypes(),this.state=4601,this.match(t.IS),this.state=4602,this.commentText();break;case 12:this.enterOuterAlt(e,12),this.state=4604,this.match(t.COMMENT),this.state=4605,this.match(t.ON),this.state=4606,this.match(t.FUNCTION),this.state=4607,this.functionWithArgumentTypes(),this.state=4608,this.match(t.IS),this.state=4609,this.commentText();break;case 13:this.enterOuterAlt(e,13),this.state=4611,this.match(t.COMMENT),this.state=4612,this.match(t.ON),this.state=4613,this.match(t.OPERATOR),this.state=4614,this.operatorWithArgumentTypes(),this.state=4615,this.match(t.IS),this.state=4616,this.commentText();break;case 14:if(this.enterOuterAlt(e,14),1===(this.state=4618,this.match(t.COMMENT),this.state=4619,this.match(t.ON),this.state=4620,this.match(t.CONSTRAINT),this.state=4621,this.constraintName(),this.state=4622,this.match(t.ON),this.state=4624,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,242,this.context)))this.state=4623,this.match(t.DOMAIN_P);this.state=4626,this.anyName(),this.state=4627,this.match(t.IS),this.state=4628,this.commentText();break;case 15:this.enterOuterAlt(e,15),this.state=4630,this.match(t.COMMENT),this.state=4631,this.match(t.ON),this.state=4632,this.objectTypeNameOnAnyName(),this.state=4633,this.name(),this.state=4634,this.match(t.ON),this.state=4635,this.anyName(),this.state=4636,this.match(t.IS),this.state=4637,this.commentText();break;case 16:this.enterOuterAlt(e,16),this.state=4639,this.match(t.COMMENT),this.state=4640,this.match(t.ON),this.state=4641,this.match(t.TRIGGER),this.state=4642,this.triggerName(),this.state=4643,this.match(t.ON),this.state=4644,this.anyName(),this.state=4645,this.match(t.IS),this.state=4646,this.commentText();break;case 17:this.enterOuterAlt(e,17),this.state=4648,this.match(t.COMMENT),this.state=4649,this.match(t.ON),this.state=4650,this.match(t.PROCEDURE),this.state=4651,this.functionWithArgumentTypes(),this.state=4652,this.match(t.IS),this.state=4653,this.commentText();break;case 18:this.enterOuterAlt(e,18),this.state=4655,this.match(t.COMMENT),this.state=4656,this.match(t.ON),this.state=4657,this.match(t.ROUTINE),this.state=4658,this.functionWithArgumentTypes(),this.state=4659,this.match(t.IS),this.state=4660,this.commentText();break;case 19:this.enterOuterAlt(e,19),this.state=4662,this.match(t.COMMENT),this.state=4663,this.match(t.ON),this.state=4664,this.match(t.TRANSFORM),this.state=4665,this.match(t.FOR),this.state=4666,this.typeName(),this.state=4667,this.match(t.LANGUAGE),this.state=4668,this.name(),this.state=4669,this.match(t.IS),this.state=4670,this.commentText();break;case 20:this.enterOuterAlt(e,20),this.state=4672,this.match(t.COMMENT),this.state=4673,this.match(t.ON),this.state=4674,this.match(t.OPERATOR),this.state=4675,this.match(t.CLASS),this.state=4676,this.anyName(),this.state=4677,this.match(t.USING),this.state=4678,this.name(),this.state=4679,this.match(t.IS),this.state=4680,this.commentText();break;case 21:this.enterOuterAlt(e,21),this.state=4682,this.match(t.COMMENT),this.state=4683,this.match(t.ON),this.state=4684,this.match(t.OPERATOR),this.state=4685,this.match(t.FAMILY),this.state=4686,this.anyName(),this.state=4687,this.match(t.USING),this.state=4688,this.name(),this.state=4689,this.match(t.IS),this.state=4690,this.commentText();break;case 22:this.enterOuterAlt(e,22),this.state=4692,this.match(t.COMMENT),this.state=4693,this.match(t.ON),this.state=4694,this.match(t.LARGE_P),this.state=4695,this.match(t.OBJECT_P),this.state=4696,this.numericOnly(),this.state=4697,this.match(t.IS),this.state=4698,this.commentText();break;case 23:this.enterOuterAlt(e,23),this.state=4700,this.match(t.COMMENT),this.state=4701,this.match(t.ON),this.state=4702,this.match(t.CAST),this.state=4703,this.match(t.OPEN_PAREN),this.state=4704,this.typeName(),this.state=4705,this.match(t.AS),this.state=4706,this.typeName(),this.state=4707,this.match(t.CLOSE_PAREN),this.state=4708,this.match(t.IS),this.state=4709,this.commentText()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}commentText(){let e=new Ho(this.context,this.state);this.enterRule(e,482,t.RULE_commentText);try{switch(this.state=4715,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.EscapeStringConstant:this.enterOuterAlt(e,1),this.state=4713,this.sconst();break;case t.NULL_P:this.enterOuterAlt(e,2),this.state=4714,this.match(t.NULL_P);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}securityLabelStatement(){let e=new Go(this.context,this.state);this.enterRule(e,484,t.RULE_securityLabelStatement);try{switch(this.state=4853,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,245,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4717,this.match(t.SECURITY),this.state=4718,this.match(t.LABEL),this.state=4719,this.optionalProvider(),this.state=4720,this.match(t.ON),this.state=4721,this.objectTypeAnyName(),this.state=4722,this.anyName(),this.state=4723,this.match(t.IS),this.state=4724,this.securityLabel();break;case 2:this.enterOuterAlt(e,2),this.state=4726,this.match(t.SECURITY),this.state=4727,this.match(t.LABEL),this.state=4728,this.optionalProvider(),this.state=4729,this.match(t.ON),this.state=4730,this.match(t.SEQUENCE),this.state=4731,this.sequenceName(),this.state=4732,this.match(t.IS),this.state=4733,this.securityLabel();break;case 3:this.enterOuterAlt(e,3),this.state=4735,this.match(t.SECURITY),this.state=4736,this.match(t.LABEL),this.state=4737,this.optionalProvider(),this.state=4738,this.match(t.ON),this.state=4739,this.match(t.INDEX),this.state=4740,this.indexName(),this.state=4741,this.match(t.IS),this.state=4742,this.securityLabel();break;case 4:this.enterOuterAlt(e,4),this.state=4744,this.match(t.SECURITY),this.state=4745,this.match(t.LABEL),this.state=4746,this.optionalProvider(),this.state=4747,this.match(t.ON),this.state=4748,this.match(t.COLUMN),this.state=4749,this.anyName(),this.state=4750,this.match(t.IS),this.state=4751,this.securityLabel();break;case 5:this.enterOuterAlt(e,5),this.state=4753,this.match(t.SECURITY),this.state=4754,this.match(t.LABEL),this.state=4755,this.optionalProvider(),this.state=4756,this.match(t.ON),this.state=4757,this.objectTypeName(),this.state=4758,this.name(),this.state=4759,this.match(t.IS),this.state=4760,this.securityLabel();break;case 6:this.enterOuterAlt(e,6),this.state=4762,this.match(t.SECURITY),this.state=4763,this.match(t.LABEL),this.state=4764,this.optionalProvider(),this.state=4765,this.match(t.ON),this.state=4766,this.match(t.ROLE),this.state=4767,this.roleName(),this.state=4768,this.match(t.IS),this.state=4769,this.securityLabel();break;case 7:this.enterOuterAlt(e,7),this.state=4771,this.match(t.SECURITY),this.state=4772,this.match(t.LABEL),this.state=4773,this.optionalProvider(),this.state=4774,this.match(t.ON),this.state=4775,this.match(t.DATABASE),this.state=4776,this.databaseName(),this.state=4777,this.match(t.IS),this.state=4778,this.securityLabel();break;case 8:this.enterOuterAlt(e,8),this.state=4780,this.match(t.SECURITY),this.state=4781,this.match(t.LABEL),this.state=4782,this.optionalProvider(),this.state=4783,this.match(t.ON),this.state=4784,this.match(t.SCHEMA),this.state=4785,this.schemaName(),this.state=4786,this.match(t.IS),this.state=4787,this.securityLabel();break;case 9:this.enterOuterAlt(e,9),this.state=4789,this.match(t.SECURITY),this.state=4790,this.match(t.LABEL),this.state=4791,this.optionalProvider(),this.state=4792,this.match(t.ON),this.state=4793,this.match(t.TYPE_P),this.state=4794,this.typeName(),this.state=4795,this.match(t.IS),this.state=4796,this.securityLabel();break;case 10:this.enterOuterAlt(e,10),this.state=4798,this.match(t.SECURITY),this.state=4799,this.match(t.LABEL),this.state=4800,this.optionalProvider(),this.state=4801,this.match(t.ON),this.state=4802,this.match(t.DOMAIN_P),this.state=4803,this.typeName(),this.state=4804,this.match(t.IS),this.state=4805,this.securityLabel();break;case 11:this.enterOuterAlt(e,11),this.state=4807,this.match(t.SECURITY),this.state=4808,this.match(t.LABEL),this.state=4809,this.optionalProvider(),this.state=4810,this.match(t.ON),this.state=4811,this.match(t.AGGREGATE),this.state=4812,this.aggregateWithArgumentTypes(),this.state=4813,this.match(t.IS),this.state=4814,this.securityLabel();break;case 12:this.enterOuterAlt(e,12),this.state=4816,this.match(t.SECURITY),this.state=4817,this.match(t.LABEL),this.state=4818,this.optionalProvider(),this.state=4819,this.match(t.ON),this.state=4820,this.match(t.FUNCTION),this.state=4821,this.functionWithArgumentTypes(),this.state=4822,this.match(t.IS),this.state=4823,this.securityLabel();break;case 13:this.enterOuterAlt(e,13),this.state=4825,this.match(t.SECURITY),this.state=4826,this.match(t.LABEL),this.state=4827,this.optionalProvider(),this.state=4828,this.match(t.ON),this.state=4829,this.match(t.LARGE_P),this.state=4830,this.match(t.OBJECT_P),this.state=4831,this.numericOnly(),this.state=4832,this.match(t.IS),this.state=4833,this.securityLabel();break;case 14:this.enterOuterAlt(e,14),this.state=4835,this.match(t.SECURITY),this.state=4836,this.match(t.LABEL),this.state=4837,this.optionalProvider(),this.state=4838,this.match(t.ON),this.state=4839,this.match(t.PROCEDURE),this.state=4840,this.functionWithArgumentTypes(),this.state=4841,this.match(t.IS),this.state=4842,this.securityLabel();break;case 15:this.enterOuterAlt(e,15),this.state=4844,this.match(t.SECURITY),this.state=4845,this.match(t.LABEL),this.state=4846,this.optionalProvider(),this.state=4847,this.match(t.ON),this.state=4848,this.match(t.ROUTINE),this.state=4849,this.functionWithArgumentTypes(),this.state=4850,this.match(t.IS),this.state=4851,this.securityLabel()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalProvider(){let e=new Fo(this.context,this.state);this.enterRule(e,486,t.RULE_optionalProvider);try{switch(this.state=4858,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FOR:this.enterOuterAlt(e,1),this.state=4855,this.match(t.FOR),this.state=4856,this.nonReservedWordOrSconst();break;case t.ON:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}securityLabel(){let e=new vo(this.context,this.state);this.enterRule(e,488,t.RULE_securityLabel);try{switch(this.state=4862,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.EscapeStringConstant:this.enterOuterAlt(e,1),this.state=4860,this.sconst();break;case t.NULL_P:this.enterOuterAlt(e,2),this.state=4861,this.match(t.NULL_P);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}fetchStatement(){let e=new Bo(this.context,this.state);this.enterRule(e,490,t.RULE_fetchStatement);try{switch(this.state=4868,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FETCH:this.enterOuterAlt(e,1),this.state=4864,this.match(t.FETCH),this.state=4865,this.fetchArguments();break;case t.MOVE:this.enterOuterAlt(e,2),this.state=4866,this.match(t.MOVE),this.state=4867,this.fetchArguments();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}fetchArguments(){let e=new yo(this.context,this.state);this.enterRule(e,492,t.RULE_fetchArguments);try{switch(this.state=4936,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,249,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4870,this.cursorName();break;case 2:this.enterOuterAlt(e,2),this.state=4871,this.fromOrIn(),this.state=4872,this.cursorName();break;case 3:this.enterOuterAlt(e,3),this.state=4874,this.match(t.NEXT),this.state=4875,this.optionalFromOrIn(),this.state=4876,this.cursorName();break;case 4:this.enterOuterAlt(e,4),this.state=4878,this.match(t.PRIOR),this.state=4879,this.optionalFromOrIn(),this.state=4880,this.cursorName();break;case 5:this.enterOuterAlt(e,5),this.state=4882,this.match(t.FIRST_P),this.state=4883,this.optionalFromOrIn(),this.state=4884,this.cursorName();break;case 6:this.enterOuterAlt(e,6),this.state=4886,this.match(t.LAST_P),this.state=4887,this.optionalFromOrIn(),this.state=4888,this.cursorName();break;case 7:this.enterOuterAlt(e,7),this.state=4890,this.match(t.ABSOLUTE_P),this.state=4891,this.signedIconst(),this.state=4892,this.optionalFromOrIn(),this.state=4893,this.cursorName();break;case 8:this.enterOuterAlt(e,8),this.state=4895,this.match(t.RELATIVE_P),this.state=4896,this.signedIconst(),this.state=4897,this.optionalFromOrIn(),this.state=4898,this.cursorName();break;case 9:this.enterOuterAlt(e,9),this.state=4900,this.signedIconst(),this.state=4901,this.optionalFromOrIn(),this.state=4902,this.cursorName();break;case 10:this.enterOuterAlt(e,10),this.state=4904,this.match(t.ALL),this.state=4905,this.optionalFromOrIn(),this.state=4906,this.cursorName();break;case 11:this.enterOuterAlt(e,11),this.state=4908,this.match(t.FORWARD),this.state=4909,this.optionalFromOrIn(),this.state=4910,this.cursorName();break;case 12:this.enterOuterAlt(e,12),this.state=4912,this.match(t.FORWARD),this.state=4913,this.signedIconst(),this.state=4914,this.optionalFromOrIn(),this.state=4915,this.cursorName();break;case 13:this.enterOuterAlt(e,13),this.state=4917,this.match(t.FORWARD),this.state=4918,this.match(t.ALL),this.state=4919,this.optionalFromOrIn(),this.state=4920,this.cursorName();break;case 14:this.enterOuterAlt(e,14),this.state=4922,this.match(t.BACKWARD),this.state=4923,this.optionalFromOrIn(),this.state=4924,this.cursorName();break;case 15:this.enterOuterAlt(e,15),this.state=4926,this.match(t.BACKWARD),this.state=4927,this.signedIconst(),this.state=4928,this.optionalFromOrIn(),this.state=4929,this.cursorName();break;case 16:this.enterOuterAlt(e,16),this.state=4931,this.match(t.BACKWARD),this.state=4932,this.match(t.ALL),this.state=4933,this.optionalFromOrIn(),this.state=4934,this.cursorName()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}fromOrIn(){let e,s=new fo(this.context,this.state);this.enterRule(s,494,t.RULE_fromOrIn);try{this.enterOuterAlt(s,1),this.state=4938,e=this.tokenStream.LA(1),64===e||68===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalFromOrIn(){let e=new Yo(this.context,this.state);this.enterRule(e,496,t.RULE_optionalFromOrIn);try{switch(this.state=4942,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FROM:case t.IN_P:this.enterOuterAlt(e,1),this.state=4940,this.fromOrIn();break;case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}grantStatement(){let e=new wo(this.context,this.state);this.enterRule(e,498,t.RULE_grantStatement);try{this.enterOuterAlt(e,1),this.state=4944,this.match(t.GRANT),this.state=4945,this.privileges(),this.state=4946,this.match(t.ON),this.state=4947,this.privilegeTarget(),this.state=4948,this.match(t.TO),this.state=4949,this.granteeList(),this.state=4950,this.optionalWithGrantOption()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}revokeStatement(){let e=new bo(this.context,this.state);this.enterRule(e,500,t.RULE_revokeStatement);try{switch(this.state=4971,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,251,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4952,this.match(t.REVOKE),this.state=4953,this.privileges(),this.state=4954,this.match(t.ON),this.state=4955,this.privilegeTarget(),this.state=4956,this.match(t.FROM),this.state=4957,this.granteeList(),this.state=4958,this.optionalDropBehavior();break;case 2:this.enterOuterAlt(e,2),this.state=4960,this.match(t.REVOKE),this.state=4961,this.match(t.GRANT),this.state=4962,this.match(t.OPTION),this.state=4963,this.match(t.FOR),this.state=4964,this.privileges(),this.state=4965,this.match(t.ON),this.state=4966,this.privilegeTarget(),this.state=4967,this.match(t.FROM),this.state=4968,this.granteeList(),this.state=4969,this.optionalDropBehavior()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}privileges(){let e=new Wo(this.context,this.state);this.enterRule(e,502,t.RULE_privileges);try{switch(this.state=4988,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,252,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4973,this.privilegeList();break;case 2:this.enterOuterAlt(e,2),this.state=4974,this.match(t.ALL);break;case 3:this.enterOuterAlt(e,3),this.state=4975,this.match(t.ALL),this.state=4976,this.match(t.PRIVILEGES);break;case 4:this.enterOuterAlt(e,4),this.state=4977,this.match(t.ALL),this.state=4978,this.match(t.OPEN_PAREN),this.state=4979,this.columnList(),this.state=4980,this.match(t.CLOSE_PAREN);break;case 5:this.enterOuterAlt(e,5),this.state=4982,this.match(t.ALL),this.state=4983,this.match(t.PRIVILEGES),this.state=4984,this.match(t.OPEN_PAREN),this.state=4985,this.columnList(),this.state=4986,this.match(t.CLOSE_PAREN)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}privilegeList(){let e,s=new Vo(this.context,this.state);this.enterRule(s,504,t.RULE_privilegeList);try{for(this.enterOuterAlt(s,1),this.state=4990,this.privilege(),this.state=4995,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=4991,this.match(t.COMMA),this.state=4992,this.privilege(),this.state=4997,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}privilege(){let e=new Xo(this.context,this.state);this.enterRule(e,506,t.RULE_privilege);try{switch(this.state=5007,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SELECT:this.enterOuterAlt(e,1),this.state=4998,this.match(t.SELECT),this.state=4999,this.columnListWithParentheses();break;case t.REFERENCES:this.enterOuterAlt(e,2),this.state=5e3,this.match(t.REFERENCES),this.state=5001,this.columnListWithParentheses();break;case t.CREATE:this.enterOuterAlt(e,3),this.state=5002,this.match(t.CREATE),this.state=5003,this.columnListWithParentheses();break;case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,4),this.state=5004,this.columnId(),this.state=5005,this.columnListWithParentheses();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}privilegeTarget(){let e,s=new Ko(this.context,this.state);this.enterRule(s,508,t.RULE_privilegeTarget);try{switch(this.state=5047,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,255,this.context)){case 1:this.enterOuterAlt(s,1),this.state=5009,this.qualifiedNameList();break;case 2:this.enterOuterAlt(s,2),this.state=5010,this.match(t.TABLE),this.state=5011,this.qualifiedNameList();break;case 3:this.enterOuterAlt(s,3),this.state=5012,this.match(t.SEQUENCE),this.state=5013,this.sequenceNameList();break;case 4:this.enterOuterAlt(s,4),this.state=5014,this.match(t.FOREIGN),this.state=5015,this.match(t.DATA_P),this.state=5016,this.match(t.WRAPPER),this.state=5017,this.nameList();break;case 5:this.enterOuterAlt(s,5),this.state=5018,this.match(t.FOREIGN),this.state=5019,this.match(t.SERVER),this.state=5020,this.nameList();break;case 6:this.enterOuterAlt(s,6),this.state=5021,this.match(t.FUNCTION),this.state=5022,this.functionWithArgumentTypesList();break;case 7:this.enterOuterAlt(s,7),this.state=5023,this.match(t.PROCEDURE),this.state=5024,this.functionWithArgumentTypesList();break;case 8:this.enterOuterAlt(s,8),this.state=5025,this.match(t.ROUTINE),this.state=5026,this.functionWithArgumentTypesList();break;case 9:this.enterOuterAlt(s,9),this.state=5027,this.match(t.DATABASE),this.state=5028,this.databaseNameList();break;case 10:this.enterOuterAlt(s,10),this.state=5029,this.match(t.DOMAIN_P),this.state=5030,this.anyNameList();break;case 11:this.enterOuterAlt(s,11),this.state=5031,this.match(t.LANGUAGE),this.state=5032,this.nameList();break;case 12:this.enterOuterAlt(s,12),this.state=5033,this.match(t.LARGE_P),this.state=5034,this.match(t.OBJECT_P),this.state=5035,this.numericOnlyList();break;case 13:this.enterOuterAlt(s,13),this.state=5036,this.match(t.SCHEMA),this.state=5037,this.schemaNameList();break;case 14:this.enterOuterAlt(s,14),this.state=5038,this.match(t.TABLESPACE),this.state=5039,this.nameList();break;case 15:this.enterOuterAlt(s,15),this.state=5040,this.match(t.TYPE_P),this.state=5041,this.anyNameList();break;case 16:this.enterOuterAlt(s,16),this.state=5042,this.match(t.ALL),this.state=5043,e=this.tokenStream.LA(1),212===e||322===e||343===e||455===e||457===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=5044,this.match(t.IN_P),this.state=5045,this.match(t.SCHEMA),this.state=5046,this.schemaNameList()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}granteeList(){let e,s=new Qo(this.context,this.state);this.enterRule(s,510,t.RULE_granteeList);try{for(this.enterOuterAlt(s,1),this.state=5049,this.grantee(),this.state=5054,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=5050,this.match(t.COMMA),this.state=5051,this.grantee(),this.state=5056,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}grantee(){let e=new Jo(this.context,this.state);this.enterRule(e,512,t.RULE_grantee);try{switch(this.state=5060,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CURRENT_USER:case t.DEFAULT:case t.DO:case t.FETCH:case t.SESSION_USER:case t.TABLE:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,1),this.state=5057,this.roleName();break;case t.GROUP_P:this.enterOuterAlt(e,2),this.state=5058,this.match(t.GROUP_P),this.state=5059,this.roleName();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalWithGrantOption(){let e=new Zo(this.context,this.state);this.enterRule(e,514,t.RULE_optionalWithGrantOption);try{switch(this.state=5066,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WITH:this.enterOuterAlt(e,1),this.state=5062,this.match(t.WITH),this.state=5063,this.match(t.GRANT),this.state=5064,this.match(t.OPTION);break;case t.EOF:case t.SEMI:case t.CREATE:case t.GRANT:case t.INTO:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}grantPrivilegeStatement(){let e=new qo(this.context,this.state);this.enterRule(e,516,t.RULE_grantPrivilegeStatement);try{this.enterOuterAlt(e,1),this.state=5068,this.match(t.GRANT),this.state=5069,this.privilegeList(),this.state=5070,this.match(t.TO),this.state=5071,this.roleNameList(),this.state=5072,this.optionalGrantAdminOption(),this.state=5073,this.optionalGrantedBy()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}revokePrivilegeStatement(){let e=new jo(this.context,this.state);this.enterRule(e,518,t.RULE_revokePrivilegeStatement);try{switch(this.state=5092,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,259,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5075,this.match(t.REVOKE),this.state=5076,this.privilegeList(),this.state=5077,this.match(t.FROM),this.state=5078,this.roleNameList(),this.state=5079,this.optionalGrantedBy(),this.state=5080,this.optionalDropBehavior();break;case 2:this.enterOuterAlt(e,2),this.state=5082,this.match(t.REVOKE),this.state=5083,this.match(t.ADMIN),this.state=5084,this.match(t.OPTION),this.state=5085,this.match(t.FOR),this.state=5086,this.privilegeList(),this.state=5087,this.match(t.FROM),this.state=5088,this.roleNameList(),this.state=5089,this.optionalGrantedBy(),this.state=5090,this.optionalDropBehavior()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalGrantAdminOption(){let e=new zo(this.context,this.state);this.enterRule(e,520,t.RULE_optionalGrantAdminOption);try{switch(this.state=5098,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WITH:this.enterOuterAlt(e,1),this.state=5094,this.match(t.WITH),this.state=5095,this.match(t.ADMIN),this.state=5096,this.match(t.OPTION);break;case t.EOF:case t.SEMI:case t.INTO:case t.GRANTED:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalGrantedBy(){let e=new $o(this.context,this.state);this.enterRule(e,522,t.RULE_optionalGrantedBy);try{switch(this.state=5104,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.GRANTED:this.enterOuterAlt(e,1),this.state=5100,this.match(t.GRANTED),this.state=5101,this.match(t.BY),this.state=5102,this.roleName();break;case t.EOF:case t.SEMI:case t.INTO:case t.CASCADE:case t.RESTRICT:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterDefaultPrivilegesStatement(){let e,s=new tR(this.context,this.state);this.enterRule(s,524,t.RULE_alterDefaultPrivilegesStatement);try{for(this.enterOuterAlt(s,1),this.state=5106,this.match(t.ALTER),this.state=5107,this.match(t.DEFAULT),this.state=5108,this.match(t.PRIVILEGES),this.state=5112,this.errorHandler.sync(this),e=this.tokenStream.LA(1);62===e||68===e;)this.state=5109,this.defultPrivilegeOption(),this.state=5114,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=5115,this.defaultPrivelegeAction()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}defultPrivilegeOption(){let e=new eR(this.context,this.state);this.enterRule(e,526,t.RULE_defultPrivilegeOption);try{switch(this.state=5124,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.IN_P:this.enterOuterAlt(e,1),this.state=5117,this.match(t.IN_P),this.state=5118,this.match(t.SCHEMA),this.state=5119,this.schemaNameList();break;case t.FOR:this.enterOuterAlt(e,2),this.state=5120,this.match(t.FOR),this.state=5121,this.roleOrAliases(),this.state=5122,this.roleNameList();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}defaultPrivelegeAction(){let e=new sR(this.context,this.state);this.enterRule(e,528,t.RULE_defaultPrivelegeAction);try{switch(this.state=5153,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,264,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5126,this.match(t.GRANT),this.state=5127,this.privileges(),this.state=5128,this.match(t.ON),this.state=5129,this.defultPrivilegeTarget(),this.state=5130,this.match(t.TO),this.state=5131,this.granteeList(),this.state=5132,this.optionalWithGrantOption();break;case 2:this.enterOuterAlt(e,2),this.state=5134,this.match(t.REVOKE),this.state=5135,this.privileges(),this.state=5136,this.match(t.ON),this.state=5137,this.defultPrivilegeTarget(),this.state=5138,this.match(t.FROM),this.state=5139,this.granteeList(),this.state=5140,this.optionalDropBehavior();break;case 3:this.enterOuterAlt(e,3),this.state=5142,this.match(t.REVOKE),this.state=5143,this.match(t.GRANT),this.state=5144,this.match(t.OPTION),this.state=5145,this.match(t.FOR),this.state=5146,this.privileges(),this.state=5147,this.match(t.ON),this.state=5148,this.defultPrivilegeTarget(),this.state=5149,this.match(t.FROM),this.state=5150,this.granteeList(),this.state=5151,this.optionalDropBehavior()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}defultPrivilegeTarget(){let e,s=new aR(this.context,this.state);this.enterRule(s,530,t.RULE_defultPrivilegeTarget);try{this.enterOuterAlt(s,1),this.state=5155,e=this.tokenStream.LA(1),212===e||322===e||343===e||354===e||455===e||456===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}indexStatement(){let e,s=new rR(this.context,this.state);this.enterRule(s,532,t.RULE_indexStatement);try{switch(this.state=5202,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,270,this.context)){case 1:this.enterOuterAlt(s,1),this.state=5157,this.match(t.CREATE),this.state=5159,this.errorHandler.sync(this),e=this.tokenStream.LA(1),98===e&&(this.state=5158,this.match(t.UNIQUE)),this.state=5161,this.match(t.INDEX),this.state=5163,this.errorHandler.sync(this),e=this.tokenStream.LA(1),109===e&&(this.state=5162,this.match(t.CONCURRENTLY)),this.state=5166,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(e-33&-32)&&1<<e-33&286268421||!(e-92&-32)&&1<<e-92&2298478593||!(e-124&-32)&&1<<e-124&4294967269||!(e-156&-32)&&1<<e-156&4294967295||!(e-188&-32)&&1<<e-188&4294967295||!(e-220&-32)&&1<<e-220&3221225471||!(e-252&-32)&&1<<e-252&4294967293||!(e-284&-32)&&1<<e-284&4294967295||!(e-316&-32)&&1<<e-316&4294967295||!(e-348&-32)&&1<<e-348&4294967295||!(e-380&-32)&&1<<e-380&4294967295||!(e-412&-32)&&1<<e-412&4294967295||!(e-444&-32)&&1<<e-444&4026530815||!(e-476&-32)&&1<<e-476&3623878655||!(e-508&-32)&&1<<e-508&4294965247||!(e-540&-32)&&1<<e-540&4294967295||!(e-572&-32)&&1<<e-572&4294967295||!(e-604&-32)&&1<<e-604&4294967295||!(e-636&-32)&&1<<e-636&100663331)&&(this.state=5165,this.name()),this.state=5168,this.match(t.ON),this.state=5169,this.relationExpression(),this.state=5170,this.optionalAccessMethodClause(),this.state=5171,this.match(t.OPEN_PAREN),this.state=5172,this.indexParameters(),this.state=5173,this.match(t.CLOSE_PAREN),this.state=5174,this.optionalInclude(),this.state=5175,this.optionalRelOptions(),this.state=5176,this.optionalTablespace(),this.state=5177,this.whereClause();break;case 2:this.enterOuterAlt(s,2),this.state=5179,this.match(t.CREATE),this.state=5181,this.errorHandler.sync(this),e=this.tokenStream.LA(1),98===e&&(this.state=5180,this.match(t.UNIQUE)),this.state=5183,this.match(t.INDEX),this.state=5185,this.errorHandler.sync(this),e=this.tokenStream.LA(1),109===e&&(this.state=5184,this.match(t.CONCURRENTLY)),this.state=5187,this.match(t.IF_P),this.state=5188,this.match(t.NOT),this.state=5189,this.match(t.EXISTS),this.state=5190,this.name(),this.state=5191,this.match(t.ON),this.state=5192,this.relationExpression(),this.state=5193,this.optionalAccessMethodClause(),this.state=5194,this.match(t.OPEN_PAREN),this.state=5195,this.indexParameters(),this.state=5196,this.match(t.CLOSE_PAREN),this.state=5197,this.optionalInclude(),this.state=5198,this.optionalRelOptions(),this.state=5199,this.optionalTablespace(),this.state=5200,this.whereClause()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalAccessMethodClause(){let e=new iR(this.context,this.state);this.enterRule(e,534,t.RULE_optionalAccessMethodClause);try{switch(this.state=5207,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.USING:this.enterOuterAlt(e,1),this.state=5204,this.match(t.USING),this.state=5205,this.name();break;case t.OPEN_PAREN:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}indexParameters(){let e,s=new cR(this.context,this.state);this.enterRule(s,536,t.RULE_indexParameters);try{for(this.enterOuterAlt(s,1),this.state=5209,this.indexElement(),this.state=5214,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=5210,this.match(t.COMMA),this.state=5211,this.indexElement(),this.state=5216,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}indexElemOptions(){let e=new nR(this.context,this.state);this.enterRule(e,538,t.RULE_indexElemOptions);try{switch(this.state=5228,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,273,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5217,this.optionalCollate(),this.state=5218,this.optionalClass(),this.state=5219,this.optionalAscOrDesc(),this.state=5220,this.optionalNullsOrder();break;case 2:this.enterOuterAlt(e,2),this.state=5222,this.optionalCollate(),this.state=5223,this.anyName(),this.state=5224,this.relOptions(),this.state=5225,this.optionalAscOrDesc(),this.state=5226,this.optionalNullsOrder()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}indexElement(){let e=new hR(this.context,this.state);this.enterRule(e,540,t.RULE_indexElement);try{switch(this.state=5241,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,274,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5230,this.columnId(),this.state=5231,this.indexElemOptions();break;case 2:this.enterOuterAlt(e,2),this.state=5233,this.functionExpressionWindowless(),this.state=5234,this.indexElemOptions();break;case 3:this.enterOuterAlt(e,3),this.state=5236,this.match(t.OPEN_PAREN),this.state=5237,this.expression1(),this.state=5238,this.match(t.CLOSE_PAREN),this.state=5239,this.indexElemOptions()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalInclude(){let e,s=new ER(this.context,this.state);this.enterRule(s,542,t.RULE_optionalInclude);try{switch(this.state=5256,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.INCLUDE:for(this.enterOuterAlt(s,1),this.state=5243,this.match(t.INCLUDE),this.state=5244,this.match(t.OPEN_PAREN),this.state=5245,this.indexElement(),this.state=5250,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=5246,this.match(t.COMMA),this.state=5247,this.indexElement(),this.state=5252,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=5253,this.match(t.CLOSE_PAREN);break;case t.EOF:case t.SEMI:case t.CREATE:case t.GRANT:case t.INTO:case t.WHERE:case t.WITH:case t.TABLESPACE:this.enterOuterAlt(s,2);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalCollate(){let e=new TR(this.context,this.state);this.enterRule(e,544,t.RULE_optionalCollate);try{switch(this.state=5261,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,277,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5258,this.match(t.COLLATE),this.state=5259,this.anyName();break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalClass(){let e=new oR(this.context,this.state);this.enterRule(e,546,t.RULE_optionalClass);try{switch(this.state=5265,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,278,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5263,this.anyName();break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalAscOrDesc(){let e=new RR(this.context,this.state);this.enterRule(e,548,t.RULE_optionalAscOrDesc);try{switch(this.state=5270,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ASC:this.enterOuterAlt(e,1),this.state=5267,this.match(t.ASC);break;case t.DESC:this.enterOuterAlt(e,2),this.state=5268,this.match(t.DESC);break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.CREATE:case t.FETCH:case t.FOR:case t.GRANT:case t.INTO:case t.LIMIT:case t.OFFSET:case t.ON:case t.RETURNING:case t.WITH:case t.NULLS_P:case t.RANGE:case t.ROWS:case t.GROUPS:case t.LOOP:this.enterOuterAlt(e,3);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalNullsOrder(){let e=new AR(this.context,this.state);this.enterRule(e,550,t.RULE_optionalNullsOrder);try{switch(this.state=5277,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,280,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5272,this.match(t.NULLS_P),this.state=5273,this.match(t.FIRST_P);break;case 2:this.enterOuterAlt(e,2),this.state=5274,this.match(t.NULLS_P),this.state=5275,this.match(t.LAST_P);break;case 3:this.enterOuterAlt(e,3)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createFunctionStatement(){let e,s=new SR(this.context,this.state);this.enterRule(s,552,t.RULE_createFunctionStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=5279,this.match(t.CREATE),this.state=5280,this.optionalOrReplace(),this.state=5281,e=this.tokenStream.LA(1),211===e||289===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=5282,this.functionName(),this.state=5283,this.match(t.OPEN_PAREN),this.state=5285,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(e-33&-32)&&1<<e-33&286268421||68===e||92===e||!(e-101&-32)&&1<<e-101&4294967265||!(e-133&-32)&&1<<e-133&4294967295||!(e-165&-32)&&1<<e-165&4294967295||!(e-197&-32)&&1<<e-197&4294967295||!(e-229&-32)&&1<<e-229&4276092927||!(e-261&-32)&&1<<e-261&4294967295||!(e-293&-32)&&1<<e-293&4294967295||!(e-325&-32)&&1<<e-325&4294967295||!(e-357&-32)&&1<<e-357&4294967295||!(e-389&-32)&&1<<e-389&4294967295||!(e-421&-32)&&1<<e-421&4294967295||!(e-453&-32)&&1<<e-453&4294967293||!(e-485&-32)&&1<<e-485&4293656575||!(e-517&-32)&&1<<e-517&4294967291||!(e-549&-32)&&1<<e-549&4294967295||!(e-581&-32)&&1<<e-581&4294967295||!(e-613&-32)&&1<<e-613&301989887||661===e||662===e)&&(this.state=5284,this.functionArgumentsWithDefaultsList()),this.state=5287,this.match(t.CLOSE_PAREN),this.state=5297,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,283,this.context)))switch(this.state=5288,this.match(t.RETURNS),this.state=5295,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,282,this.context)){case 1:this.state=5289,this.functionReturn();break;case 2:this.state=5290,this.match(t.TABLE),this.state=5291,this.match(t.OPEN_PAREN),this.state=5292,this.tableFunctionColumnList(),this.state=5293,this.match(t.CLOSE_PAREN)}this.state=5299,this.createFunctionOptionList()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalOrReplace(){let e=new lR(this.context,this.state);this.enterRule(e,554,t.RULE_optionalOrReplace);try{switch(this.state=5304,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OR:this.enterOuterAlt(e,1),this.state=5301,this.match(t.OR),this.state=5302,this.match(t.REPLACE);break;case t.AGGREGATE:case t.FUNCTION:case t.LANGUAGE:case t.PROCEDURAL:case t.PROCEDURE:case t.RULE:case t.TRUSTED:case t.TRANSFORM:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}functionArgumentsList(){let e,s=new OR(this.context,this.state);this.enterRule(s,556,t.RULE_functionArgumentsList);try{for(this.enterOuterAlt(s,1),this.state=5306,this.functionArgument(),this.state=5311,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=5307,this.match(t.COMMA),this.state=5308,this.functionArgument(),this.state=5313,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}functionWithArgumentTypesList(){let e,s=new IR(this.context,this.state);this.enterRule(s,558,t.RULE_functionWithArgumentTypesList);try{for(this.enterOuterAlt(s,1),this.state=5314,this.functionWithArgumentTypes(),this.state=5319,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=5315,this.match(t.COMMA),this.state=5316,this.functionWithArgumentTypes(),this.state=5321,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}functionWithArgumentTypes(){let e,s=new uR(this.context,this.state);this.enterRule(s,560,t.RULE_functionWithArgumentTypes);try{switch(this.state=5334,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,289,this.context)){case 1:this.enterOuterAlt(s,1),this.state=5322,this.functionName(),this.state=5323,this.match(t.OPEN_PAREN),this.state=5325,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(e-33&-32)&&1<<e-33&286268421||68===e||92===e||!(e-101&-32)&&1<<e-101&4294967265||!(e-133&-32)&&1<<e-133&4294967295||!(e-165&-32)&&1<<e-165&4294967295||!(e-197&-32)&&1<<e-197&4294967295||!(e-229&-32)&&1<<e-229&4276092927||!(e-261&-32)&&1<<e-261&4294967295||!(e-293&-32)&&1<<e-293&4294967295||!(e-325&-32)&&1<<e-325&4294967295||!(e-357&-32)&&1<<e-357&4294967295||!(e-389&-32)&&1<<e-389&4294967295||!(e-421&-32)&&1<<e-421&4294967295||!(e-453&-32)&&1<<e-453&4294967293||!(e-485&-32)&&1<<e-485&4293656575||!(e-517&-32)&&1<<e-517&4294967291||!(e-549&-32)&&1<<e-549&4294967295||!(e-581&-32)&&1<<e-581&4294967295||!(e-613&-32)&&1<<e-613&301989887||661===e||662===e)&&(this.state=5324,this.functionArgumentsList()),this.state=5327,this.match(t.CLOSE_PAREN);break;case 2:this.enterOuterAlt(s,2),this.state=5329,this.typeFunctionNameKeyword();break;case 3:this.enterOuterAlt(s,3),this.state=5330,this.columnId(),this.state=5332,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(4===e||11===e)&&(this.state=5331,this.indirection())}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}functionArgumentsWithDefaultsList(){let e,s=new NR(this.context,this.state);this.enterRule(s,562,t.RULE_functionArgumentsWithDefaultsList);try{for(this.enterOuterAlt(s,1),this.state=5336,this.functionArgumentWithDefault(),this.state=5341,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=5337,this.match(t.COMMA),this.state=5338,this.functionArgumentWithDefault(),this.state=5343,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}functionArgumentWithDefault(){let e,s=new LR(this.context,this.state);this.enterRule(s,564,t.RULE_functionArgumentWithDefault);try{this.enterOuterAlt(s,1),this.state=5344,this.functionArgument(),this.state=5347,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(10===e||53===e)&&(this.state=5345,e=this.tokenStream.LA(1),10===e||53===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=5346,this.expression1())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}functionArgument(){let e=new CR(this.context,this.state);this.enterRule(e,566,t.RULE_functionArgument);try{switch(this.state=5362,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,294,this.context)){case 1:if(this.enterOuterAlt(e,1),1===(this.state=5349,this.argumentClass(),this.state=5351,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,292,this.context)))this.state=5350,this.parameterName();this.state=5353,this.functionType();break;case 2:if(this.enterOuterAlt(e,2),1===(this.state=5355,this.parameterName(),this.state=5357,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,293,this.context)))this.state=5356,this.argumentClass();this.state=5359,this.functionType();break;case 3:this.enterOuterAlt(e,3),this.state=5361,this.functionType()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}argumentClass(){let e=new _R(this.context,this.state);this.enterRule(e,568,t.RULE_argumentClass);try{switch(this.state=5371,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.IN_P:if(1===(this.enterOuterAlt(e,1),this.state=5364,this.match(t.IN_P),this.state=5366,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,295,this.context)))this.state=5365,this.match(t.OUT_P);break;case t.OUT_P:this.enterOuterAlt(e,2),this.state=5368,this.match(t.OUT_P);break;case t.INOUT:this.enterOuterAlt(e,3),this.state=5369,this.match(t.INOUT);break;case t.VARIADIC:this.enterOuterAlt(e,4),this.state=5370,this.match(t.VARIADIC);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}parameterName(){let e=new PR(this.context,this.state);this.enterRule(e,570,t.RULE_parameterName);try{switch(this.state=5377,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.COLUMNS:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,1),this.state=5373,this.typeFunctionName();break;case t.REPLACE:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.REVERSE:case t.LOG:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:this.enterOuterAlt(e,2),this.state=5374,this.builtinFunctionName();break;case t.LEFT:this.enterOuterAlt(e,3),this.state=5375,this.match(t.LEFT);break;case t.RIGHT:this.enterOuterAlt(e,4),this.state=5376,this.match(t.RIGHT);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}functionReturn(){let e=new MR(this.context,this.state);this.enterRule(e,572,t.RULE_functionReturn);try{this.enterOuterAlt(e,1),this.state=5379,this.functionType()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}functionType(){let e,s=new dR(this.context,this.state);this.enterRule(s,574,t.RULE_functionType);try{switch(this.state=5395,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,300,this.context)){case 1:this.enterOuterAlt(s,1),this.state=5381,this.typeName();break;case 2:switch(this.enterOuterAlt(s,2),this.state=5383,this.errorHandler.sync(this),e=this.tokenStream.LA(1),408===e&&(this.state=5382,this.match(t.SETOF)),this.state=5389,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.REPLACE:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.REVERSE:case t.LOG:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:this.state=5385,this.builtinFunctionName();break;case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.COLUMNS:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.state=5386,this.typeFunctionName();break;case t.LEFT:this.state=5387,this.match(t.LEFT);break;case t.RIGHT:this.state=5388,this.match(t.RIGHT);break;default:throw new Ei(this)}this.state=5391,this.attributes(),this.state=5392,this.match(t.PERCENT),this.state=5393,this.match(t.TYPE_P)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}aggregateArguments(){let e=new UR(this.context,this.state);this.enterRule(e,576,t.RULE_aggregateArguments);try{switch(this.enterOuterAlt(e,1),this.state=5397,this.match(t.OPEN_PAREN),this.state=5408,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,301,this.context)){case 1:this.state=5398,this.match(t.STAR);break;case 2:this.state=5399,this.aggregateArgumentsList();break;case 3:this.state=5400,this.match(t.ORDER),this.state=5401,this.match(t.BY),this.state=5402,this.aggregateArgumentsList();break;case 4:this.state=5403,this.aggregateArgumentsList(),this.state=5404,this.match(t.ORDER),this.state=5405,this.match(t.BY),this.state=5406,this.aggregateArgumentsList()}this.state=5410,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}aggregateArgumentsList(){let e,s=new mR(this.context,this.state);this.enterRule(s,578,t.RULE_aggregateArgumentsList);try{for(this.enterOuterAlt(s,1),this.state=5412,this.functionArgument(),this.state=5417,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=5413,this.match(t.COMMA),this.state=5414,this.functionArgument(),this.state=5419,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}aggregateWithArgumentTypes(){let e=new DR(this.context,this.state);this.enterRule(e,580,t.RULE_aggregateWithArgumentTypes);try{this.enterOuterAlt(e,1),this.state=5420,this.functionName(),this.state=5421,this.aggregateArguments()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}aggregateWithArgumentTypesList(){let e,s=new pR(this.context,this.state);this.enterRule(s,582,t.RULE_aggregateWithArgumentTypesList);try{for(this.enterOuterAlt(s,1),this.state=5423,this.aggregateWithArgumentTypes(),this.state=5428,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=5424,this.match(t.COMMA),this.state=5425,this.aggregateWithArgumentTypes(),this.state=5430,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createFunctionOptionList(){let e,s=new gR(this.context,this.state);this.enterRule(s,584,t.RULE_createFunctionOptionList);try{this.enterOuterAlt(s,1),this.state=5432,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=5431,this.createFunctionOptionItem(),this.state=5434,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(36===e||77===e||104===e||149===e||170===e||205===e||222===e||238===e||241===e||!(e-306&-32)&&1<<e-306&34619529||339===e||370===e||!(e-443&-32)&&1<<e-443&196609);this.ParseRoutineBody(s)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}commonFunctionOptionItem(){let e=new xR(this.context,this.state);this.enterRule(e,586,t.RULE_commonFunctionOptionItem);try{switch(this.state=5473,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,305,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5438,this.match(t.CALLED),this.state=5439,this.match(t.ON),this.state=5440,this.match(t.NULL_P),this.state=5441,this.match(t.INPUT_P);break;case 2:this.enterOuterAlt(e,2),this.state=5442,this.match(t.RETURNS),this.state=5443,this.match(t.NULL_P),this.state=5444,this.match(t.ON),this.state=5445,this.match(t.NULL_P),this.state=5446,this.match(t.INPUT_P);break;case 3:this.enterOuterAlt(e,3),this.state=5447,this.match(t.STRICT_P);break;case 4:this.enterOuterAlt(e,4),this.state=5448,this.match(t.IMMUTABLE);break;case 5:this.enterOuterAlt(e,5),this.state=5449,this.match(t.STABLE);break;case 6:this.enterOuterAlt(e,6),this.state=5450,this.match(t.VOLATILE);break;case 7:this.enterOuterAlt(e,7),this.state=5451,this.match(t.EXTERNAL),this.state=5452,this.match(t.SECURITY),this.state=5453,this.match(t.DEFINER);break;case 8:this.enterOuterAlt(e,8),this.state=5454,this.match(t.EXTERNAL),this.state=5455,this.match(t.SECURITY),this.state=5456,this.match(t.INVOKER);break;case 9:this.enterOuterAlt(e,9),this.state=5457,this.match(t.SECURITY),this.state=5458,this.match(t.DEFINER);break;case 10:this.enterOuterAlt(e,10),this.state=5459,this.match(t.SECURITY),this.state=5460,this.match(t.INVOKER);break;case 11:this.enterOuterAlt(e,11),this.state=5461,this.match(t.LEAKPROOF);break;case 12:this.enterOuterAlt(e,12),this.state=5462,this.match(t.NOT),this.state=5463,this.match(t.LEAKPROOF);break;case 13:this.enterOuterAlt(e,13),this.state=5464,this.match(t.COST),this.state=5465,this.numericOnly();break;case 14:this.enterOuterAlt(e,14),this.state=5466,this.match(t.ROWS),this.state=5467,this.numericOnly();break;case 15:this.enterOuterAlt(e,15),this.state=5468,this.match(t.SUPPORT),this.state=5469,this.anyName();break;case 16:this.enterOuterAlt(e,16),this.state=5470,this.functionSetResetClause();break;case 17:this.enterOuterAlt(e,17),this.state=5471,this.match(t.PARALLEL),this.state=5472,this.columnId()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createFunctionOptionItem(){let e=new kR(this.context,this.state);this.enterRule(e,588,t.RULE_createFunctionOptionItem);try{switch(this.state=5483,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AS:this.enterOuterAlt(e,1),this.state=5475,this.match(t.AS),this.state=5476,this.functionAs();break;case t.LANGUAGE:this.enterOuterAlt(e,2),this.state=5477,this.match(t.LANGUAGE),this.state=5478,this.nonReservedWordOrSconst();break;case t.TRANSFORM:this.enterOuterAlt(e,3),this.state=5479,this.match(t.TRANSFORM),this.state=5480,this.transformTypeList();break;case t.WINDOW:this.enterOuterAlt(e,4),this.state=5481,this.match(t.WINDOW);break;case t.NOT:case t.CALLED:case t.COST:case t.EXTERNAL:case t.IMMUTABLE:case t.LEAKPROOF:case t.RESET:case t.RETURNS:case t.ROWS:case t.SECURITY:case t.SET:case t.STABLE:case t.STRICT_P:case t.VOLATILE:case t.SUPPORT:case t.PARALLEL:this.enterOuterAlt(e,5),this.state=5482,this.commonFunctionOptionItem();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}functionAs(){let e=new HR(this.context,this.state);this.enterRule(e,590,t.RULE_functionAs);try{switch(this.state=5490,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,307,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5485,e._def=this.sconst();break;case 2:this.enterOuterAlt(e,2),this.state=5486,this.sconst(),this.state=5487,this.match(t.COMMA),this.state=5488,this.sconst()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}transformTypeList(){let e,s=new GR(this.context,this.state);this.enterRule(s,592,t.RULE_transformTypeList);try{for(this.enterOuterAlt(s,1),this.state=5492,this.match(t.FOR),this.state=5493,this.match(t.TYPE_P),this.state=5494,this.typeName(),this.state=5501,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=5495,this.match(t.COMMA),this.state=5496,this.match(t.FOR),this.state=5497,this.match(t.TYPE_P),this.state=5498,this.typeName(),this.state=5503,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalDefinition(){let e=new FR(this.context,this.state);this.enterRule(e,594,t.RULE_optionalDefinition);try{switch(this.state=5507,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WITH:this.enterOuterAlt(e,1),this.state=5504,this.match(t.WITH),this.state=5505,this.definition();break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.CHECK:case t.COLLATE:case t.CONSTRAINT:case t.DEFAULT:case t.DEFERRABLE:case t.INITIALLY:case t.INTO:case t.NOT:case t.NULL_P:case t.PRIMARY:case t.REFERENCES:case t.UNIQUE:case t.USING:case t.WHERE:case t.NO:case t.GENERATED:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableFunctionColumn(){let e=new vR(this.context,this.state);this.enterRule(e,596,t.RULE_tableFunctionColumn);try{this.enterOuterAlt(e,1),this.state=5509,this.parameterName(),this.state=5510,this.functionType()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableFunctionColumnList(){let e,s=new BR(this.context,this.state);this.enterRule(s,598,t.RULE_tableFunctionColumnList);try{for(this.enterOuterAlt(s,1),this.state=5512,this.tableFunctionColumn(),this.state=5517,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=5513,this.match(t.COMMA),this.state=5514,this.tableFunctionColumn(),this.state=5519,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterFunctionStatement(){let e,s=new yR(this.context,this.state);this.enterRule(s,600,t.RULE_alterFunctionStatement);try{this.enterOuterAlt(s,1),this.state=5520,this.match(t.ALTER),this.state=5521,e=this.tokenStream.LA(1),211===e||289===e||442===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=5522,this.functionWithArgumentTypes(),this.state=5524,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=5523,this.commonFunctionOptionItem(),this.state=5526,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(77===e||149===e||170===e||205===e||222===e||241===e||!(e-306&-32)&&1<<e-306&34619529||339===e||370===e||459===e||460===e);this.state=5529,this.errorHandler.sync(this),e=this.tokenStream.LA(1),308===e&&(this.state=5528,this.match(t.RESTRICT))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}removeFunctionStatement(){let e=new fR(this.context,this.state);this.enterRule(e,602,t.RULE_removeFunctionStatement);try{switch(this.state=5567,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,313,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5531,this.match(t.DROP),this.state=5532,this.match(t.FUNCTION),this.state=5533,this.functionWithArgumentTypesList(),this.state=5534,this.optionalDropBehavior();break;case 2:this.enterOuterAlt(e,2),this.state=5536,this.match(t.DROP),this.state=5537,this.match(t.FUNCTION),this.state=5538,this.match(t.IF_P),this.state=5539,this.match(t.EXISTS),this.state=5540,this.functionWithArgumentTypesList(),this.state=5541,this.optionalDropBehavior();break;case 3:this.enterOuterAlt(e,3),this.state=5543,this.match(t.DROP),this.state=5544,this.match(t.PROCEDURE),this.state=5545,this.functionWithArgumentTypesList(),this.state=5546,this.optionalDropBehavior();break;case 4:this.enterOuterAlt(e,4),this.state=5548,this.match(t.DROP),this.state=5549,this.match(t.PROCEDURE),this.state=5550,this.match(t.IF_P),this.state=5551,this.match(t.EXISTS),this.state=5552,this.functionWithArgumentTypesList(),this.state=5553,this.optionalDropBehavior();break;case 5:this.enterOuterAlt(e,5),this.state=5555,this.match(t.DROP),this.state=5556,this.match(t.ROUTINE),this.state=5557,this.functionWithArgumentTypesList(),this.state=5558,this.optionalDropBehavior();break;case 6:this.enterOuterAlt(e,6),this.state=5560,this.match(t.DROP),this.state=5561,this.match(t.ROUTINE),this.state=5562,this.match(t.IF_P),this.state=5563,this.match(t.EXISTS),this.state=5564,this.functionWithArgumentTypesList(),this.state=5565,this.optionalDropBehavior()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}removeAggregateStatement(){let e=new YR(this.context,this.state);this.enterRule(e,604,t.RULE_removeAggregateStatement);try{switch(this.state=5581,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,314,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5569,this.match(t.DROP),this.state=5570,this.match(t.AGGREGATE),this.state=5571,this.aggregateWithArgumentTypesList(),this.state=5572,this.optionalDropBehavior();break;case 2:this.enterOuterAlt(e,2),this.state=5574,this.match(t.DROP),this.state=5575,this.match(t.AGGREGATE),this.state=5576,this.match(t.IF_P),this.state=5577,this.match(t.EXISTS),this.state=5578,this.aggregateWithArgumentTypesList(),this.state=5579,this.optionalDropBehavior()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}removeOperatorStatement(){let e=new wR(this.context,this.state);this.enterRule(e,606,t.RULE_removeOperatorStatement);try{switch(this.state=5595,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,315,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5583,this.match(t.DROP),this.state=5584,this.match(t.OPERATOR),this.state=5585,this.operatorWithArgumentTypesList(),this.state=5586,this.optionalDropBehavior();break;case 2:this.enterOuterAlt(e,2),this.state=5588,this.match(t.DROP),this.state=5589,this.match(t.OPERATOR),this.state=5590,this.match(t.IF_P),this.state=5591,this.match(t.EXISTS),this.state=5592,this.operatorWithArgumentTypesList(),this.state=5593,this.optionalDropBehavior()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}operatorArgumentTypes(){let e=new bR(this.context,this.state);this.enterRule(e,608,t.RULE_operatorArgumentTypes);try{switch(this.state=5619,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,316,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5597,this.match(t.OPEN_PAREN),this.state=5598,this.typeName(),this.state=5599,this.match(t.CLOSE_PAREN);break;case 2:this.enterOuterAlt(e,2),this.state=5601,this.match(t.OPEN_PAREN),this.state=5602,this.typeName(),this.state=5603,this.match(t.COMMA),this.state=5604,this.typeName(),this.state=5605,this.match(t.CLOSE_PAREN);break;case 3:this.enterOuterAlt(e,3),this.state=5607,this.match(t.OPEN_PAREN),this.state=5608,this.match(t.NONE),this.state=5609,this.match(t.COMMA),this.state=5610,this.typeName(),this.state=5611,this.match(t.CLOSE_PAREN);break;case 4:this.enterOuterAlt(e,4),this.state=5613,this.match(t.OPEN_PAREN),this.state=5614,this.typeName(),this.state=5615,this.match(t.COMMA),this.state=5616,this.match(t.NONE),this.state=5617,this.match(t.CLOSE_PAREN)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}anyOperator(){let e,s=new WR(this.context,this.state);this.enterRule(s,610,t.RULE_anyOperator);try{for(this.enterOuterAlt(s,1),this.state=5626,this.errorHandler.sync(this),e=this.tokenStream.LA(1);!(e-33&-32)&&1<<e-33&286268421||!(e-92&-32)&&1<<e-92&2298478593||!(e-124&-32)&&1<<e-124&4294967269||!(e-156&-32)&&1<<e-156&4294967295||!(e-188&-32)&&1<<e-188&4294967295||!(e-220&-32)&&1<<e-220&3221225471||!(e-252&-32)&&1<<e-252&4294967293||!(e-284&-32)&&1<<e-284&4294967295||!(e-316&-32)&&1<<e-316&4294967295||!(e-348&-32)&&1<<e-348&4294967295||!(e-380&-32)&&1<<e-380&4294967295||!(e-412&-32)&&1<<e-412&4294967295||!(e-444&-32)&&1<<e-444&4026530815||!(e-476&-32)&&1<<e-476&3623878655||!(e-508&-32)&&1<<e-508&4294965247||!(e-540&-32)&&1<<e-540&4294967295||!(e-572&-32)&&1<<e-572&4294967295||!(e-604&-32)&&1<<e-604&4294967295||!(e-636&-32)&&1<<e-636&100663331;)this.state=5621,this.columnId(),this.state=5622,this.match(t.DOT),this.state=5628,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=5629,this.allOperator()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}operatorWithArgumentTypesList(){let e,s=new VR(this.context,this.state);this.enterRule(s,612,t.RULE_operatorWithArgumentTypesList);try{for(this.enterOuterAlt(s,1),this.state=5631,this.operatorWithArgumentTypes(),this.state=5636,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=5632,this.match(t.COMMA),this.state=5633,this.operatorWithArgumentTypes(),this.state=5638,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}operatorWithArgumentTypes(){let e=new XR(this.context,this.state);this.enterRule(e,614,t.RULE_operatorWithArgumentTypes);try{this.enterOuterAlt(e,1),this.state=5639,this.anyOperator(),this.state=5640,this.operatorArgumentTypes()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}doStatement(){let e=new KR(this.context,this.state);this.enterRule(e,616,t.RULE_doStatement);try{this.enterOuterAlt(e,1),this.state=5642,this.match(t.DO),this.state=5643,this.doStatementOptionsList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}doStatementOptionsList(){let e,s=new QR(this.context,this.state);this.enterRule(s,618,t.RULE_doStatementOptionsList);try{this.enterOuterAlt(s,1),this.state=5646,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=5645,this.doStatementOptionItem(),this.state=5648,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(238===e||!(e-645&-32)&&1<<e-645&67108885)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}doStatementOptionItem(){let e=new JR(this.context,this.state);this.enterRule(e,620,t.RULE_doStatementOptionItem);try{switch(this.state=5653,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.EscapeStringConstant:this.enterOuterAlt(e,1),this.state=5650,this.sconst();break;case t.LANGUAGE:this.enterOuterAlt(e,2),this.state=5651,this.match(t.LANGUAGE),this.state=5652,this.nonReservedWordOrSconst();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createCastStatement(){let e=new ZR(this.context,this.state);this.enterRule(e,622,t.RULE_createCastStatement);try{switch(this.state=5689,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,321,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5655,this.match(t.CREATE),this.state=5656,this.match(t.CAST),this.state=5657,this.match(t.OPEN_PAREN),this.state=5658,this.typeName(),this.state=5659,this.match(t.AS),this.state=5660,this.typeName(),this.state=5661,this.match(t.CLOSE_PAREN),this.state=5662,this.match(t.WITH),this.state=5663,this.match(t.FUNCTION),this.state=5664,this.functionWithArgumentTypes(),this.state=5665,this.castContext();break;case 2:this.enterOuterAlt(e,2),this.state=5667,this.match(t.CREATE),this.state=5668,this.match(t.CAST),this.state=5669,this.match(t.OPEN_PAREN),this.state=5670,this.typeName(),this.state=5671,this.match(t.AS),this.state=5672,this.typeName(),this.state=5673,this.match(t.CLOSE_PAREN),this.state=5674,this.match(t.WITHOUT),this.state=5675,this.match(t.FUNCTION),this.state=5676,this.castContext();break;case 3:this.enterOuterAlt(e,3),this.state=5678,this.match(t.CREATE),this.state=5679,this.match(t.CAST),this.state=5680,this.match(t.OPEN_PAREN),this.state=5681,this.typeName(),this.state=5682,this.match(t.AS),this.state=5683,this.typeName(),this.state=5684,this.match(t.CLOSE_PAREN),this.state=5685,this.match(t.WITH),this.state=5686,this.match(t.INOUT),this.state=5687,this.castContext()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}castContext(){let e=new qR(this.context,this.state);this.enterRule(e,624,t.RULE_castContext);try{switch(this.state=5696,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,322,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5691,this.match(t.AS),this.state=5692,this.match(t.IMPLICIT_P);break;case 2:this.enterOuterAlt(e,2),this.state=5693,this.match(t.AS),this.state=5694,this.match(t.ASSIGNMENT);break;case 3:this.enterOuterAlt(e,3)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropCastStatement(){let e=new jR(this.context,this.state);this.enterRule(e,626,t.RULE_dropCastStatement);try{this.enterOuterAlt(e,1),this.state=5698,this.match(t.DROP),this.state=5699,this.match(t.CAST),this.state=5700,this.optionalIfExists(),this.state=5701,this.match(t.OPEN_PAREN),this.state=5702,this.typeName(),this.state=5703,this.match(t.AS),this.state=5704,this.typeName(),this.state=5705,this.match(t.CLOSE_PAREN),this.state=5706,this.optionalDropBehavior()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalIfExists(){let e=new zR(this.context,this.state);this.enterRule(e,628,t.RULE_optionalIfExists);try{switch(this.state=5711,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.IF_P:this.enterOuterAlt(e,1),this.state=5708,this.match(t.IF_P),this.state=5709,this.match(t.EXISTS);break;case t.OPEN_PAREN:case t.FOR:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createTransformStatement(){let e=new $R(this.context,this.state);this.enterRule(e,630,t.RULE_createTransformStatement);try{this.enterOuterAlt(e,1),this.state=5713,this.match(t.CREATE),this.state=5714,this.optionalOrReplace(),this.state=5715,this.match(t.TRANSFORM),this.state=5716,this.match(t.FOR),this.state=5717,this.typeName(),this.state=5718,this.match(t.LANGUAGE),this.state=5719,this.name(),this.state=5720,this.match(t.OPEN_PAREN),this.state=5721,this.transformElementList(),this.state=5722,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}transformElementList(){let e=new tA(this.context,this.state);this.enterRule(e,632,t.RULE_transformElementList);try{switch(this.state=5758,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,324,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5724,this.match(t.FROM),this.state=5725,this.match(t.SQL_P),this.state=5726,this.match(t.WITH),this.state=5727,this.match(t.FUNCTION),this.state=5728,this.functionWithArgumentTypes(),this.state=5729,this.match(t.COMMA),this.state=5730,this.match(t.TO),this.state=5731,this.match(t.SQL_P),this.state=5732,this.match(t.WITH),this.state=5733,this.match(t.FUNCTION),this.state=5734,this.functionWithArgumentTypes();break;case 2:this.enterOuterAlt(e,2),this.state=5736,this.match(t.TO),this.state=5737,this.match(t.SQL_P),this.state=5738,this.match(t.WITH),this.state=5739,this.match(t.FUNCTION),this.state=5740,this.functionWithArgumentTypes(),this.state=5741,this.match(t.COMMA),this.state=5742,this.match(t.FROM),this.state=5743,this.match(t.SQL_P),this.state=5744,this.match(t.WITH),this.state=5745,this.match(t.FUNCTION),this.state=5746,this.functionWithArgumentTypes();break;case 3:this.enterOuterAlt(e,3),this.state=5748,this.match(t.FROM),this.state=5749,this.match(t.SQL_P),this.state=5750,this.match(t.WITH),this.state=5751,this.match(t.FUNCTION),this.state=5752,this.functionWithArgumentTypes();break;case 4:this.enterOuterAlt(e,4),this.state=5753,this.match(t.TO),this.state=5754,this.match(t.SQL_P),this.state=5755,this.match(t.WITH),this.state=5756,this.match(t.FUNCTION),this.state=5757,this.functionWithArgumentTypes()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropTransformStatement(){let e=new eA(this.context,this.state);this.enterRule(e,634,t.RULE_dropTransformStatement);try{this.enterOuterAlt(e,1),this.state=5760,this.match(t.DROP),this.state=5761,this.match(t.TRANSFORM),this.state=5762,this.optionalIfExists(),this.state=5763,this.match(t.FOR),this.state=5764,this.typeName(),this.state=5765,this.match(t.LANGUAGE),this.state=5766,this.name(),this.state=5767,this.optionalDropBehavior()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}reindexStatement(){let e,s=new sA(this.context,this.state);this.enterRule(s,636,t.RULE_reindexStatement);try{switch(this.state=5830,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,335,this.context)){case 1:this.enterOuterAlt(s,1),this.state=5769,this.match(t.REINDEX),this.state=5774,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e&&(this.state=5770,this.match(t.OPEN_PAREN),this.state=5771,this.reindexOptionList(),this.state=5772,this.match(t.CLOSE_PAREN)),this.state=5776,this.reindexTargetType(),this.state=5778,this.errorHandler.sync(this),e=this.tokenStream.LA(1),109===e&&(this.state=5777,this.match(t.CONCURRENTLY)),this.state=5780,this.qualifiedName();break;case 2:this.enterOuterAlt(s,2),this.state=5782,this.match(t.REINDEX),this.state=5787,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e&&(this.state=5783,this.match(t.OPEN_PAREN),this.state=5784,this.reindexOptionList(),this.state=5785,this.match(t.CLOSE_PAREN)),this.state=5789,this.match(t.DATABASE),this.state=5791,this.errorHandler.sync(this),e=this.tokenStream.LA(1),109===e&&(this.state=5790,this.match(t.CONCURRENTLY)),this.state=5793,this.databaseName();break;case 3:this.enterOuterAlt(s,3),this.state=5794,this.match(t.REINDEX),this.state=5799,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e&&(this.state=5795,this.match(t.OPEN_PAREN),this.state=5796,this.reindexOptionList(),this.state=5797,this.match(t.CLOSE_PAREN)),this.state=5801,this.match(t.SCHEMA),this.state=5803,this.errorHandler.sync(this),e=this.tokenStream.LA(1),109===e&&(this.state=5802,this.match(t.CONCURRENTLY)),this.state=5805,this.schemaName();break;case 4:this.enterOuterAlt(s,4),this.state=5806,this.match(t.REINDEX),this.state=5811,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e&&(this.state=5807,this.match(t.OPEN_PAREN),this.state=5808,this.reindexOptionList(),this.state=5809,this.match(t.CLOSE_PAREN)),this.state=5813,this.match(t.INDEX),this.state=5815,this.errorHandler.sync(this),e=this.tokenStream.LA(1),109===e&&(this.state=5814,this.match(t.CONCURRENTLY)),this.state=5817,this.indexName();break;case 5:this.enterOuterAlt(s,5),this.state=5818,this.match(t.REINDEX),this.state=5823,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e&&(this.state=5819,this.match(t.OPEN_PAREN),this.state=5820,this.reindexOptionList(),this.state=5821,this.match(t.CLOSE_PAREN)),this.state=5825,this.match(t.SYSTEM_P),this.state=5827,this.errorHandler.sync(this),e=this.tokenStream.LA(1),109===e&&(this.state=5826,this.match(t.CONCURRENTLY)),this.state=5829,this.name()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}reindexTargetType(){let e,s=new aA(this.context,this.state);this.enterRule(s,638,t.RULE_reindexTargetType);try{this.enterOuterAlt(s,1),this.state=5832,e=this.tokenStream.LA(1),92===e||342===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}reindexOptionList(){let e,s=new rA(this.context,this.state);this.enterRule(s,640,t.RULE_reindexOptionList);try{for(this.enterOuterAlt(s,1),this.state=5834,this.reindexOptionElement(),this.state=5839,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=5835,this.match(t.COMMA),this.state=5836,this.reindexOptionElement(),this.state=5841,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}reindexOptionElement(){let e,s=new iA(this.context,this.state);this.enterRule(s,642,t.RULE_reindexOptionElement);try{this.enterOuterAlt(s,1),this.state=5842,e=this.tokenStream.LA(1),109===e||128===e||344===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterTablespaceStatement(){let e=new cA(this.context,this.state);this.enterRule(e,644,t.RULE_alterTablespaceStatement);try{switch(this.state=5856,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,337,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5844,this.match(t.ALTER),this.state=5845,this.match(t.TABLESPACE),this.state=5846,this.name(),this.state=5847,this.match(t.SET),this.state=5848,this.relOptions();break;case 2:this.enterOuterAlt(e,2),this.state=5850,this.match(t.ALTER),this.state=5851,this.match(t.TABLESPACE),this.state=5852,this.name(),this.state=5853,this.match(t.RESET),this.state=5854,this.relOptions()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}renameStatement(){let e=new nA(this.context,this.state);this.enterRule(e,646,t.RULE_renameStatement);try{switch(this.state=6295,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,341,this.context)){case 1:this.enterOuterAlt(e,1),this.state=5858,this.match(t.ALTER),this.state=5859,this.match(t.AGGREGATE),this.state=5860,this.aggregateWithArgumentTypes(),this.state=5861,this.match(t.RENAME),this.state=5862,this.match(t.TO),this.state=5863,this.name();break;case 2:this.enterOuterAlt(e,2),this.state=5865,this.match(t.ALTER),this.state=5866,this.match(t.COLLATION),this.state=5867,this.anyName(),this.state=5868,this.match(t.RENAME),this.state=5869,this.match(t.TO),this.state=5870,this.name();break;case 3:this.enterOuterAlt(e,3),this.state=5872,this.match(t.ALTER),this.state=5873,this.match(t.CONVERSION_P),this.state=5874,this.anyName(),this.state=5875,this.match(t.RENAME),this.state=5876,this.match(t.TO),this.state=5877,this.name();break;case 4:this.enterOuterAlt(e,4),this.state=5879,this.match(t.ALTER),this.state=5880,this.match(t.DATABASE),this.state=5881,this.databaseName(),this.state=5882,this.match(t.RENAME),this.state=5883,this.match(t.TO),this.state=5884,this.name();break;case 5:this.enterOuterAlt(e,5),this.state=5886,this.match(t.ALTER),this.state=5887,this.match(t.DOMAIN_P),this.state=5888,this.anyName(),this.state=5889,this.match(t.RENAME),this.state=5890,this.match(t.TO),this.state=5891,this.name();break;case 6:this.enterOuterAlt(e,6),this.state=5893,this.match(t.ALTER),this.state=5894,this.match(t.DOMAIN_P),this.state=5895,this.anyName(),this.state=5896,this.match(t.RENAME),this.state=5897,this.match(t.CONSTRAINT),this.state=5898,this.constraintName(),this.state=5899,this.match(t.TO),this.state=5900,this.name();break;case 7:this.enterOuterAlt(e,7),this.state=5902,this.match(t.ALTER),this.state=5903,this.match(t.FOREIGN),this.state=5904,this.match(t.DATA_P),this.state=5905,this.match(t.WRAPPER),this.state=5906,this.name(),this.state=5907,this.match(t.RENAME),this.state=5908,this.match(t.TO),this.state=5909,this.name();break;case 8:this.enterOuterAlt(e,8),this.state=5911,this.match(t.ALTER),this.state=5912,this.match(t.FUNCTION),this.state=5913,this.functionWithArgumentTypes(),this.state=5914,this.match(t.RENAME),this.state=5915,this.match(t.TO),this.state=5916,this.name();break;case 9:this.enterOuterAlt(e,9),this.state=5918,this.match(t.ALTER),this.state=5919,this.optionalProcedural(),this.state=5920,this.match(t.LANGUAGE),this.state=5921,this.name(),this.state=5922,this.match(t.RENAME),this.state=5923,this.match(t.TO),this.state=5924,this.name();break;case 10:this.enterOuterAlt(e,10),this.state=5926,this.match(t.ALTER),this.state=5927,this.match(t.OPERATOR),this.state=5928,this.match(t.CLASS),this.state=5929,this.anyName(),this.state=5930,this.match(t.USING),this.state=5931,this.name(),this.state=5932,this.match(t.RENAME),this.state=5933,this.match(t.TO),this.state=5934,this.name();break;case 11:this.enterOuterAlt(e,11),this.state=5936,this.match(t.ALTER),this.state=5937,this.match(t.OPERATOR),this.state=5938,this.match(t.FAMILY),this.state=5939,this.anyName(),this.state=5940,this.match(t.USING),this.state=5941,this.name(),this.state=5942,this.match(t.RENAME),this.state=5943,this.match(t.TO),this.state=5944,this.name();break;case 12:this.enterOuterAlt(e,12),this.state=5946,this.match(t.ALTER),this.state=5947,this.match(t.POLICY),this.state=5948,this.name(),this.state=5949,this.match(t.ON),this.state=5950,this.qualifiedName(),this.state=5951,this.match(t.RENAME),this.state=5952,this.match(t.TO),this.state=5953,this.name();break;case 13:this.enterOuterAlt(e,13),this.state=5955,this.match(t.ALTER),this.state=5956,this.match(t.POLICY),this.state=5957,this.match(t.IF_P),this.state=5958,this.match(t.EXISTS),this.state=5959,this.name(),this.state=5960,this.match(t.ON),this.state=5961,this.qualifiedName(),this.state=5962,this.match(t.RENAME),this.state=5963,this.match(t.TO),this.state=5964,this.name();break;case 14:this.enterOuterAlt(e,14),this.state=5966,this.match(t.ALTER),this.state=5967,this.match(t.PROCEDURE),this.state=5968,this.functionWithArgumentTypes(),this.state=5969,this.match(t.RENAME),this.state=5970,this.match(t.TO),this.state=5971,this.name();break;case 15:this.enterOuterAlt(e,15),this.state=5973,this.match(t.ALTER),this.state=5974,this.match(t.PUBLICATION),this.state=5975,this.name(),this.state=5976,this.match(t.RENAME),this.state=5977,this.match(t.TO),this.state=5978,this.name();break;case 16:this.enterOuterAlt(e,16),this.state=5980,this.match(t.ALTER),this.state=5981,this.match(t.ROUTINE),this.state=5982,this.functionWithArgumentTypes(),this.state=5983,this.match(t.RENAME),this.state=5984,this.match(t.TO),this.state=5985,this.name();break;case 17:this.enterOuterAlt(e,17),this.state=5987,this.match(t.ALTER),this.state=5988,this.match(t.SCHEMA),this.state=5989,this.schemaName(),this.state=5990,this.match(t.RENAME),this.state=5991,this.match(t.TO),this.state=5992,this.name();break;case 18:this.enterOuterAlt(e,18),this.state=5994,this.match(t.ALTER),this.state=5995,this.match(t.SERVER),this.state=5996,this.name(),this.state=5997,this.match(t.RENAME),this.state=5998,this.match(t.TO),this.state=5999,this.name();break;case 19:this.enterOuterAlt(e,19),this.state=6001,this.match(t.ALTER),this.state=6002,this.match(t.SUBSCRIPTION),this.state=6003,this.name(),this.state=6004,this.match(t.RENAME),this.state=6005,this.match(t.TO),this.state=6006,this.name();break;case 20:this.enterOuterAlt(e,20),this.state=6008,this.match(t.ALTER),this.state=6009,this.match(t.TABLE),this.state=6010,this.relationExpression(),this.state=6011,this.match(t.RENAME),this.state=6012,this.match(t.TO),this.state=6013,this.name();break;case 21:this.enterOuterAlt(e,21),this.state=6015,this.match(t.ALTER),this.state=6016,this.match(t.TABLE),this.state=6017,this.match(t.IF_P),this.state=6018,this.match(t.EXISTS),this.state=6019,this.relationExpression(),this.state=6020,this.match(t.RENAME),this.state=6021,this.match(t.TO),this.state=6022,this.name();break;case 22:if(this.enterOuterAlt(e,22),1===(this.state=6024,this.match(t.ALTER),this.state=6025,this.match(t.SEQUENCE),this.state=6028,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,338,this.context)))this.state=6026,this.match(t.IF_P),this.state=6027,this.match(t.EXISTS);this.state=6030,this.sequenceName(),this.state=6031,this.match(t.RENAME),this.state=6032,this.match(t.TO),this.state=6033,this.name();break;case 23:this.enterOuterAlt(e,23),this.state=6035,this.match(t.ALTER),this.state=6036,this.match(t.VIEW),this.state=6037,this.qualifiedName(),this.state=6038,this.match(t.RENAME),this.state=6039,this.match(t.TO),this.state=6040,this.name();break;case 24:this.enterOuterAlt(e,24),this.state=6042,this.match(t.ALTER),this.state=6043,this.match(t.VIEW),this.state=6044,this.match(t.IF_P),this.state=6045,this.match(t.EXISTS),this.state=6046,this.qualifiedName(),this.state=6047,this.match(t.RENAME),this.state=6048,this.match(t.TO),this.state=6049,this.name();break;case 25:this.enterOuterAlt(e,25),this.state=6051,this.match(t.ALTER),this.state=6052,this.match(t.MATERIALIZED),this.state=6053,this.match(t.VIEW),this.state=6054,this.qualifiedName(),this.state=6055,this.match(t.RENAME),this.state=6056,this.match(t.TO),this.state=6057,this.name();break;case 26:this.enterOuterAlt(e,26),this.state=6059,this.match(t.ALTER),this.state=6060,this.match(t.MATERIALIZED),this.state=6061,this.match(t.VIEW),this.state=6062,this.match(t.IF_P),this.state=6063,this.match(t.EXISTS),this.state=6064,this.qualifiedName(),this.state=6065,this.match(t.RENAME),this.state=6066,this.match(t.TO),this.state=6067,this.name();break;case 27:if(this.enterOuterAlt(e,27),1===(this.state=6069,this.match(t.ALTER),this.state=6070,this.match(t.INDEX),this.state=6073,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,339,this.context)))this.state=6071,this.match(t.IF_P),this.state=6072,this.match(t.EXISTS);this.state=6075,this.indexName(),this.state=6076,this.match(t.RENAME),this.state=6077,this.match(t.TO),this.state=6078,this.name();break;case 28:this.enterOuterAlt(e,28),this.state=6080,this.match(t.ALTER),this.state=6081,this.match(t.FOREIGN),this.state=6082,this.match(t.TABLE),this.state=6083,this.relationExpression(),this.state=6084,this.match(t.RENAME),this.state=6085,this.match(t.TO),this.state=6086,this.name();break;case 29:this.enterOuterAlt(e,29),this.state=6088,this.match(t.ALTER),this.state=6089,this.match(t.FOREIGN),this.state=6090,this.match(t.TABLE),this.state=6091,this.match(t.IF_P),this.state=6092,this.match(t.EXISTS),this.state=6093,this.relationExpression(),this.state=6094,this.match(t.RENAME),this.state=6095,this.match(t.TO),this.state=6096,this.name();break;case 30:this.enterOuterAlt(e,30),this.state=6098,this.match(t.ALTER),this.state=6099,this.match(t.TABLE),this.state=6100,this.relationExpression(),this.state=6101,this.match(t.RENAME),this.state=6102,this.optionalColumn(),this.state=6103,this.name(),this.state=6104,this.match(t.TO),this.state=6105,this.name();break;case 31:this.enterOuterAlt(e,31),this.state=6107,this.match(t.ALTER),this.state=6108,this.match(t.TABLE),this.state=6109,this.match(t.IF_P),this.state=6110,this.match(t.EXISTS),this.state=6111,this.relationExpression(),this.state=6112,this.match(t.RENAME),this.state=6113,this.optionalColumn(),this.state=6114,this.name(),this.state=6115,this.match(t.TO),this.state=6116,this.name();break;case 32:this.enterOuterAlt(e,32),this.state=6118,this.match(t.ALTER),this.state=6119,this.match(t.VIEW),this.state=6120,this.qualifiedName(),this.state=6121,this.match(t.RENAME),this.state=6122,this.optionalColumn(),this.state=6123,this.name(),this.state=6124,this.match(t.TO),this.state=6125,this.name();break;case 33:this.enterOuterAlt(e,33),this.state=6127,this.match(t.ALTER),this.state=6128,this.match(t.VIEW),this.state=6129,this.match(t.IF_P),this.state=6130,this.match(t.EXISTS),this.state=6131,this.qualifiedName(),this.state=6132,this.match(t.RENAME),this.state=6133,this.optionalColumn(),this.state=6134,this.name(),this.state=6135,this.match(t.TO),this.state=6136,this.name();break;case 34:this.enterOuterAlt(e,34),this.state=6138,this.match(t.ALTER),this.state=6139,this.match(t.MATERIALIZED),this.state=6140,this.match(t.VIEW),this.state=6141,this.qualifiedName(),this.state=6142,this.match(t.RENAME),this.state=6143,this.optionalColumn(),this.state=6144,this.name(),this.state=6145,this.match(t.TO),this.state=6146,this.name();break;case 35:this.enterOuterAlt(e,35),this.state=6148,this.match(t.ALTER),this.state=6149,this.match(t.MATERIALIZED),this.state=6150,this.match(t.VIEW),this.state=6151,this.match(t.IF_P),this.state=6152,this.match(t.EXISTS),this.state=6153,this.qualifiedName(),this.state=6154,this.match(t.RENAME),this.state=6155,this.optionalColumn(),this.state=6156,this.name(),this.state=6157,this.match(t.TO),this.state=6158,this.name();break;case 36:if(this.enterOuterAlt(e,36),1===(this.state=6160,this.match(t.ALTER),this.state=6161,this.match(t.TABLE),this.state=6164,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,340,this.context)))this.state=6162,this.match(t.IF_P),this.state=6163,this.match(t.EXISTS);this.state=6166,this.relationExpression(),this.state=6167,this.match(t.RENAME),this.state=6168,this.match(t.CONSTRAINT),this.state=6169,this.constraintName(),this.state=6170,this.match(t.TO),this.state=6171,this.name();break;case 37:this.enterOuterAlt(e,37),this.state=6173,this.match(t.ALTER),this.state=6174,this.match(t.FOREIGN),this.state=6175,this.match(t.TABLE),this.state=6176,this.relationExpression(),this.state=6177,this.match(t.RENAME),this.state=6178,this.optionalColumn(),this.state=6179,this.name(),this.state=6180,this.match(t.TO),this.state=6181,this.name();break;case 38:this.enterOuterAlt(e,38),this.state=6183,this.match(t.ALTER),this.state=6184,this.match(t.FOREIGN),this.state=6185,this.match(t.TABLE),this.state=6186,this.match(t.IF_P),this.state=6187,this.match(t.EXISTS),this.state=6188,this.relationExpression(),this.state=6189,this.match(t.RENAME),this.state=6190,this.optionalColumn(),this.state=6191,this.name(),this.state=6192,this.match(t.TO),this.state=6193,this.name();break;case 39:this.enterOuterAlt(e,39),this.state=6195,this.match(t.ALTER),this.state=6196,this.match(t.RULE),this.state=6197,this.name(),this.state=6198,this.match(t.ON),this.state=6199,this.qualifiedName(),this.state=6200,this.match(t.RENAME),this.state=6201,this.match(t.TO),this.state=6202,this.name();break;case 40:this.enterOuterAlt(e,40),this.state=6204,this.match(t.ALTER),this.state=6205,this.match(t.TRIGGER),this.state=6206,this.triggerName(),this.state=6207,this.match(t.ON),this.state=6208,this.qualifiedName(),this.state=6209,this.match(t.RENAME),this.state=6210,this.match(t.TO),this.state=6211,this.name();break;case 41:this.enterOuterAlt(e,41),this.state=6213,this.match(t.ALTER),this.state=6214,this.match(t.EVENT),this.state=6215,this.match(t.TRIGGER),this.state=6216,this.name(),this.state=6217,this.match(t.RENAME),this.state=6218,this.match(t.TO),this.state=6219,this.name();break;case 42:this.enterOuterAlt(e,42),this.state=6221,this.match(t.ALTER),this.state=6222,this.roleOrAliases(),this.state=6223,this.roleName(),this.state=6224,this.match(t.RENAME),this.state=6225,this.match(t.TO),this.state=6226,this.roleName();break;case 43:this.enterOuterAlt(e,43),this.state=6228,this.match(t.ALTER),this.state=6229,this.match(t.TABLESPACE),this.state=6230,this.name(),this.state=6231,this.match(t.RENAME),this.state=6232,this.match(t.TO),this.state=6233,this.name();break;case 44:this.enterOuterAlt(e,44),this.state=6235,this.match(t.ALTER),this.state=6236,this.match(t.STATISTICS),this.state=6237,this.anyName(),this.state=6238,this.match(t.RENAME),this.state=6239,this.match(t.TO),this.state=6240,this.name();break;case 45:this.enterOuterAlt(e,45),this.state=6242,this.match(t.ALTER),this.state=6243,this.match(t.TEXT_P),this.state=6244,this.match(t.SEARCH),this.state=6245,this.match(t.PARSER),this.state=6246,this.anyName(),this.state=6247,this.match(t.RENAME),this.state=6248,this.match(t.TO),this.state=6249,this.name();break;case 46:this.enterOuterAlt(e,46),this.state=6251,this.match(t.ALTER),this.state=6252,this.match(t.TEXT_P),this.state=6253,this.match(t.SEARCH),this.state=6254,this.match(t.DICTIONARY),this.state=6255,this.anyName(),this.state=6256,this.match(t.RENAME),this.state=6257,this.match(t.TO),this.state=6258,this.name();break;case 47:this.enterOuterAlt(e,47),this.state=6260,this.match(t.ALTER),this.state=6261,this.match(t.TEXT_P),this.state=6262,this.match(t.SEARCH),this.state=6263,this.match(t.TEMPLATE),this.state=6264,this.anyName(),this.state=6265,this.match(t.RENAME),this.state=6266,this.match(t.TO),this.state=6267,this.name();break;case 48:this.enterOuterAlt(e,48),this.state=6269,this.match(t.ALTER),this.state=6270,this.match(t.TEXT_P),this.state=6271,this.match(t.SEARCH),this.state=6272,this.match(t.CONFIGURATION),this.state=6273,this.anyName(),this.state=6274,this.match(t.RENAME),this.state=6275,this.match(t.TO),this.state=6276,this.name();break;case 49:this.enterOuterAlt(e,49),this.state=6278,this.match(t.ALTER),this.state=6279,this.match(t.TYPE_P),this.state=6280,this.anyName(),this.state=6281,this.match(t.RENAME),this.state=6282,this.match(t.TO),this.state=6283,this.name();break;case 50:this.enterOuterAlt(e,50),this.state=6285,this.match(t.ALTER),this.state=6286,this.match(t.TYPE_P),this.state=6287,this.anyName(),this.state=6288,this.match(t.RENAME),this.state=6289,this.match(t.ATTRIBUTE),this.state=6290,this.name(),this.state=6291,this.match(t.TO),this.state=6292,this.name(),this.state=6293,this.optionalDropBehavior()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalColumn(){let e=new hA(this.context,this.state);this.enterRule(e,648,t.RULE_optionalColumn);try{switch(this.state=6299,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,342,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6297,this.match(t.COLUMN);break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalSetData(){let e=new EA(this.context,this.state);this.enterRule(e,650,t.RULE_optionalSetData);try{switch(this.state=6304,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SET:this.enterOuterAlt(e,1),this.state=6301,this.match(t.SET),this.state=6302,this.match(t.DATA_P);break;case t.TYPE_P:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterObjectDependsStatement(){let e,s=new TA(this.context,this.state);this.enterRule(s,652,t.RULE_alterObjectDependsStatement);try{switch(this.state=6375,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,350,this.context)){case 1:this.enterOuterAlt(s,1),this.state=6306,this.match(t.ALTER),this.state=6307,this.match(t.FUNCTION),this.state=6308,this.functionWithArgumentTypes(),this.state=6310,this.errorHandler.sync(this),e=this.tokenStream.LA(1),262===e&&(this.state=6309,this.match(t.NO)),this.state=6312,this.match(t.DEPENDS),this.state=6313,this.match(t.ON),this.state=6314,this.match(t.EXTENSION),this.state=6315,this.name();break;case 2:this.enterOuterAlt(s,2),this.state=6317,this.match(t.ALTER),this.state=6318,this.match(t.PROCEDURE),this.state=6319,this.functionWithArgumentTypes(),this.state=6321,this.errorHandler.sync(this),e=this.tokenStream.LA(1),262===e&&(this.state=6320,this.match(t.NO)),this.state=6323,this.match(t.DEPENDS),this.state=6324,this.match(t.ON),this.state=6325,this.match(t.EXTENSION),this.state=6326,this.name();break;case 3:this.enterOuterAlt(s,3),this.state=6328,this.match(t.ALTER),this.state=6329,this.match(t.ROUTINE),this.state=6330,this.functionWithArgumentTypes(),this.state=6332,this.errorHandler.sync(this),e=this.tokenStream.LA(1),262===e&&(this.state=6331,this.match(t.NO)),this.state=6334,this.match(t.DEPENDS),this.state=6335,this.match(t.ON),this.state=6336,this.match(t.EXTENSION),this.state=6337,this.name();break;case 4:this.enterOuterAlt(s,4),this.state=6339,this.match(t.ALTER),this.state=6340,this.match(t.TRIGGER),this.state=6341,this.triggerName(),this.state=6342,this.match(t.ON),this.state=6343,this.qualifiedName(),this.state=6345,this.errorHandler.sync(this),e=this.tokenStream.LA(1),262===e&&(this.state=6344,this.match(t.NO)),this.state=6347,this.match(t.DEPENDS),this.state=6348,this.match(t.ON),this.state=6349,this.match(t.EXTENSION),this.state=6350,this.name();break;case 5:this.enterOuterAlt(s,5),this.state=6352,this.match(t.ALTER),this.state=6353,this.match(t.MATERIALIZED),this.state=6354,this.match(t.VIEW),this.state=6355,this.qualifiedName(),this.state=6357,this.errorHandler.sync(this),e=this.tokenStream.LA(1),262===e&&(this.state=6356,this.match(t.NO)),this.state=6359,this.match(t.DEPENDS),this.state=6360,this.match(t.ON),this.state=6361,this.match(t.EXTENSION),this.state=6362,this.name();break;case 6:this.enterOuterAlt(s,6),this.state=6364,this.match(t.ALTER),this.state=6365,this.match(t.INDEX),this.state=6366,this.indexName(),this.state=6368,this.errorHandler.sync(this),e=this.tokenStream.LA(1),262===e&&(this.state=6367,this.match(t.NO)),this.state=6370,this.match(t.DEPENDS),this.state=6371,this.match(t.ON),this.state=6372,this.match(t.EXTENSION),this.state=6373,this.name()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterObjectSchemaStatement(){let e=new oA(this.context,this.state);this.enterRule(e,654,t.RULE_alterObjectSchemaStatement);try{switch(this.state=6589,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,352,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6377,this.match(t.ALTER),this.state=6378,this.match(t.AGGREGATE),this.state=6379,this.aggregateWithArgumentTypes(),this.state=6380,this.match(t.SET),this.state=6381,this.match(t.SCHEMA),this.state=6382,this.schemaName();break;case 2:this.enterOuterAlt(e,2),this.state=6384,this.match(t.ALTER),this.state=6385,this.match(t.COLLATION),this.state=6386,this.anyName(),this.state=6387,this.match(t.SET),this.state=6388,this.match(t.SCHEMA),this.state=6389,this.schemaName();break;case 3:this.enterOuterAlt(e,3),this.state=6391,this.match(t.ALTER),this.state=6392,this.match(t.CONVERSION_P),this.state=6393,this.anyName(),this.state=6394,this.match(t.SET),this.state=6395,this.match(t.SCHEMA),this.state=6396,this.schemaName();break;case 4:this.enterOuterAlt(e,4),this.state=6398,this.match(t.ALTER),this.state=6399,this.match(t.DOMAIN_P),this.state=6400,this.anyName(),this.state=6401,this.match(t.SET),this.state=6402,this.match(t.SCHEMA),this.state=6403,this.schemaName();break;case 5:this.enterOuterAlt(e,5),this.state=6405,this.match(t.ALTER),this.state=6406,this.match(t.EXTENSION),this.state=6407,this.name(),this.state=6408,this.match(t.SET),this.state=6409,this.match(t.SCHEMA),this.state=6410,this.schemaName();break;case 6:this.enterOuterAlt(e,6),this.state=6412,this.match(t.ALTER),this.state=6413,this.match(t.FUNCTION),this.state=6414,this.functionWithArgumentTypes(),this.state=6415,this.match(t.SET),this.state=6416,this.match(t.SCHEMA),this.state=6417,this.schemaName();break;case 7:this.enterOuterAlt(e,7),this.state=6419,this.match(t.ALTER),this.state=6420,this.match(t.OPERATOR),this.state=6421,this.operatorWithArgumentTypes(),this.state=6422,this.match(t.SET),this.state=6423,this.match(t.SCHEMA),this.state=6424,this.schemaName();break;case 8:this.enterOuterAlt(e,8),this.state=6426,this.match(t.ALTER),this.state=6427,this.match(t.OPERATOR),this.state=6428,this.match(t.CLASS),this.state=6429,this.anyName(),this.state=6430,this.match(t.USING),this.state=6431,this.name(),this.state=6432,this.match(t.SET),this.state=6433,this.match(t.SCHEMA),this.state=6434,this.schemaName();break;case 9:this.enterOuterAlt(e,9),this.state=6436,this.match(t.ALTER),this.state=6437,this.match(t.OPERATOR),this.state=6438,this.match(t.FAMILY),this.state=6439,this.anyName(),this.state=6440,this.match(t.USING),this.state=6441,this.name(),this.state=6442,this.match(t.SET),this.state=6443,this.match(t.SCHEMA),this.state=6444,this.schemaName();break;case 10:this.enterOuterAlt(e,10),this.state=6446,this.match(t.ALTER),this.state=6447,this.match(t.PROCEDURE),this.state=6448,this.functionWithArgumentTypes(),this.state=6449,this.match(t.SET),this.state=6450,this.match(t.SCHEMA),this.state=6451,this.schemaName();break;case 11:this.enterOuterAlt(e,11),this.state=6453,this.match(t.ALTER),this.state=6454,this.match(t.ROUTINE),this.state=6455,this.functionWithArgumentTypes(),this.state=6456,this.match(t.SET),this.state=6457,this.match(t.SCHEMA),this.state=6458,this.schemaName();break;case 12:this.enterOuterAlt(e,12),this.state=6460,this.match(t.ALTER),this.state=6461,this.match(t.TABLE),this.state=6462,this.relationExpression(),this.state=6463,this.match(t.SET),this.state=6464,this.match(t.SCHEMA),this.state=6465,this.schemaName();break;case 13:this.enterOuterAlt(e,13),this.state=6467,this.match(t.ALTER),this.state=6468,this.match(t.TABLE),this.state=6469,this.match(t.IF_P),this.state=6470,this.match(t.EXISTS),this.state=6471,this.relationExpression(),this.state=6472,this.match(t.SET),this.state=6473,this.match(t.SCHEMA),this.state=6474,this.schemaName();break;case 14:this.enterOuterAlt(e,14),this.state=6476,this.match(t.ALTER),this.state=6477,this.match(t.STATISTICS),this.state=6478,this.anyName(),this.state=6479,this.match(t.SET),this.state=6480,this.match(t.SCHEMA),this.state=6481,this.schemaName();break;case 15:this.enterOuterAlt(e,15),this.state=6483,this.match(t.ALTER),this.state=6484,this.match(t.TEXT_P),this.state=6485,this.match(t.SEARCH),this.state=6486,this.match(t.PARSER),this.state=6487,this.anyName(),this.state=6488,this.match(t.SET),this.state=6489,this.match(t.SCHEMA),this.state=6490,this.schemaName();break;case 16:this.enterOuterAlt(e,16),this.state=6492,this.match(t.ALTER),this.state=6493,this.match(t.TEXT_P),this.state=6494,this.match(t.SEARCH),this.state=6495,this.match(t.DICTIONARY),this.state=6496,this.anyName(),this.state=6497,this.match(t.SET),this.state=6498,this.match(t.SCHEMA),this.state=6499,this.schemaName();break;case 17:this.enterOuterAlt(e,17),this.state=6501,this.match(t.ALTER),this.state=6502,this.match(t.TEXT_P),this.state=6503,this.match(t.SEARCH),this.state=6504,this.match(t.TEMPLATE),this.state=6505,this.anyName(),this.state=6506,this.match(t.SET),this.state=6507,this.match(t.SCHEMA),this.state=6508,this.schemaName();break;case 18:this.enterOuterAlt(e,18),this.state=6510,this.match(t.ALTER),this.state=6511,this.match(t.TEXT_P),this.state=6512,this.match(t.SEARCH),this.state=6513,this.match(t.CONFIGURATION),this.state=6514,this.anyName(),this.state=6515,this.match(t.SET),this.state=6516,this.match(t.SCHEMA),this.state=6517,this.schemaName();break;case 19:if(this.enterOuterAlt(e,19),1===(this.state=6519,this.match(t.ALTER),this.state=6520,this.match(t.SEQUENCE),this.state=6523,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,351,this.context)))this.state=6521,this.match(t.IF_P),this.state=6522,this.match(t.EXISTS);this.state=6525,this.sequenceName(),this.state=6526,this.match(t.SET),this.state=6527,this.match(t.SCHEMA),this.state=6528,this.schemaName();break;case 20:this.enterOuterAlt(e,20),this.state=6530,this.match(t.ALTER),this.state=6531,this.match(t.VIEW),this.state=6532,this.qualifiedName(),this.state=6533,this.match(t.SET),this.state=6534,this.match(t.SCHEMA),this.state=6535,this.schemaName();break;case 21:this.enterOuterAlt(e,21),this.state=6537,this.match(t.ALTER),this.state=6538,this.match(t.VIEW),this.state=6539,this.match(t.IF_P),this.state=6540,this.match(t.EXISTS),this.state=6541,this.qualifiedName(),this.state=6542,this.match(t.SET),this.state=6543,this.match(t.SCHEMA),this.state=6544,this.schemaName();break;case 22:this.enterOuterAlt(e,22),this.state=6546,this.match(t.ALTER),this.state=6547,this.match(t.MATERIALIZED),this.state=6548,this.match(t.VIEW),this.state=6549,this.qualifiedName(),this.state=6550,this.match(t.SET),this.state=6551,this.match(t.SCHEMA),this.state=6552,this.schemaName();break;case 23:this.enterOuterAlt(e,23),this.state=6554,this.match(t.ALTER),this.state=6555,this.match(t.MATERIALIZED),this.state=6556,this.match(t.VIEW),this.state=6557,this.match(t.IF_P),this.state=6558,this.match(t.EXISTS),this.state=6559,this.qualifiedName(),this.state=6560,this.match(t.SET),this.state=6561,this.match(t.SCHEMA),this.state=6562,this.schemaName();break;case 24:this.enterOuterAlt(e,24),this.state=6564,this.match(t.ALTER),this.state=6565,this.match(t.FOREIGN),this.state=6566,this.match(t.TABLE),this.state=6567,this.relationExpression(),this.state=6568,this.match(t.SET),this.state=6569,this.match(t.SCHEMA),this.state=6570,this.schemaName();break;case 25:this.enterOuterAlt(e,25),this.state=6572,this.match(t.ALTER),this.state=6573,this.match(t.FOREIGN),this.state=6574,this.match(t.TABLE),this.state=6575,this.match(t.IF_P),this.state=6576,this.match(t.EXISTS),this.state=6577,this.relationExpression(),this.state=6578,this.match(t.SET),this.state=6579,this.match(t.SCHEMA),this.state=6580,this.schemaName();break;case 26:this.enterOuterAlt(e,26),this.state=6582,this.match(t.ALTER),this.state=6583,this.match(t.TYPE_P),this.state=6584,this.anyName(),this.state=6585,this.match(t.SET),this.state=6586,this.match(t.SCHEMA),this.state=6587,this.schemaName()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterOperatorStatement(){let e=new RA(this.context,this.state);this.enterRule(e,656,t.RULE_alterOperatorStatement);try{this.enterOuterAlt(e,1),this.state=6591,this.match(t.ALTER),this.state=6592,this.match(t.OPERATOR),this.state=6593,this.operatorWithArgumentTypes(),this.state=6594,this.match(t.SET),this.state=6595,this.match(t.OPEN_PAREN),this.state=6596,this.operatorDefinitionList(),this.state=6597,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}operatorDefinitionList(){let e,s=new AA(this.context,this.state);this.enterRule(s,658,t.RULE_operatorDefinitionList);try{for(this.enterOuterAlt(s,1),this.state=6599,this.operatorDefinitionElement(),this.state=6604,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=6600,this.match(t.COMMA),this.state=6601,this.operatorDefinitionElement(),this.state=6606,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}operatorDefinitionElement(){let e=new SA(this.context,this.state);this.enterRule(e,660,t.RULE_operatorDefinitionElement);try{switch(this.state=6615,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,354,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6607,this.columnLabel(),this.state=6608,this.match(t.EQUAL),this.state=6609,this.match(t.NONE);break;case 2:this.enterOuterAlt(e,2),this.state=6611,this.columnLabel(),this.state=6612,this.match(t.EQUAL),this.state=6613,this.operatorDefinitionArgument()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}operatorDefinitionArgument(){let e=new lA(this.context,this.state);this.enterRule(e,662,t.RULE_operatorDefinitionArgument);try{switch(this.state=6622,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,355,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6617,this.functionType();break;case 2:this.enterOuterAlt(e,2),this.state=6618,this.reservedKeyword();break;case 3:this.enterOuterAlt(e,3),this.state=6619,this.allOperatorQualifier();break;case 4:this.enterOuterAlt(e,4),this.state=6620,this.numericOnly();break;case 5:this.enterOuterAlt(e,5),this.state=6621,this.sconst()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterTypeStatement(){let e=new OA(this.context,this.state);this.enterRule(e,664,t.RULE_alterTypeStatement);try{this.enterOuterAlt(e,1),this.state=6624,this.match(t.ALTER),this.state=6625,this.match(t.TYPE_P),this.state=6626,this.anyName(),this.state=6627,this.match(t.SET),this.state=6628,this.match(t.OPEN_PAREN),this.state=6629,this.operatorDefinitionList(),this.state=6630,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterOwnerStatement(){let e=new IA(this.context,this.state);this.enterRule(e,666,t.RULE_alterOwnerStatement);try{switch(this.state=6815,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,356,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6632,this.match(t.ALTER),this.state=6633,this.match(t.AGGREGATE),this.state=6634,this.aggregateWithArgumentTypes(),this.state=6635,this.match(t.OWNER),this.state=6636,this.match(t.TO),this.state=6637,this.roleName();break;case 2:this.enterOuterAlt(e,2),this.state=6639,this.match(t.ALTER),this.state=6640,this.match(t.COLLATION),this.state=6641,this.anyName(),this.state=6642,this.match(t.OWNER),this.state=6643,this.match(t.TO),this.state=6644,this.roleName();break;case 3:this.enterOuterAlt(e,3),this.state=6646,this.match(t.ALTER),this.state=6647,this.match(t.CONVERSION_P),this.state=6648,this.anyName(),this.state=6649,this.match(t.OWNER),this.state=6650,this.match(t.TO),this.state=6651,this.roleName();break;case 4:this.enterOuterAlt(e,4),this.state=6653,this.match(t.ALTER),this.state=6654,this.match(t.DATABASE),this.state=6655,this.databaseName(),this.state=6656,this.match(t.OWNER),this.state=6657,this.match(t.TO),this.state=6658,this.roleName();break;case 5:this.enterOuterAlt(e,5),this.state=6660,this.match(t.ALTER),this.state=6661,this.match(t.DOMAIN_P),this.state=6662,this.anyName(),this.state=6663,this.match(t.OWNER),this.state=6664,this.match(t.TO),this.state=6665,this.roleName();break;case 6:this.enterOuterAlt(e,6),this.state=6667,this.match(t.ALTER),this.state=6668,this.match(t.FUNCTION),this.state=6669,this.functionWithArgumentTypes(),this.state=6670,this.match(t.OWNER),this.state=6671,this.match(t.TO),this.state=6672,this.roleName();break;case 7:this.enterOuterAlt(e,7),this.state=6674,this.match(t.ALTER),this.state=6675,this.optionalProcedural(),this.state=6676,this.match(t.LANGUAGE),this.state=6677,this.name(),this.state=6678,this.match(t.OWNER),this.state=6679,this.match(t.TO),this.state=6680,this.roleName();break;case 8:this.enterOuterAlt(e,8),this.state=6682,this.match(t.ALTER),this.state=6683,this.match(t.LARGE_P),this.state=6684,this.match(t.OBJECT_P),this.state=6685,this.numericOnly(),this.state=6686,this.match(t.OWNER),this.state=6687,this.match(t.TO),this.state=6688,this.roleName();break;case 9:this.enterOuterAlt(e,9),this.state=6690,this.match(t.ALTER),this.state=6691,this.match(t.OPERATOR),this.state=6692,this.operatorWithArgumentTypes(),this.state=6693,this.match(t.OWNER),this.state=6694,this.match(t.TO),this.state=6695,this.roleName();break;case 10:this.enterOuterAlt(e,10),this.state=6697,this.match(t.ALTER),this.state=6698,this.match(t.OPERATOR),this.state=6699,this.match(t.CLASS),this.state=6700,this.anyName(),this.state=6701,this.match(t.USING),this.state=6702,this.name(),this.state=6703,this.match(t.OWNER),this.state=6704,this.match(t.TO),this.state=6705,this.roleName();break;case 11:this.enterOuterAlt(e,11),this.state=6707,this.match(t.ALTER),this.state=6708,this.match(t.OPERATOR),this.state=6709,this.match(t.FAMILY),this.state=6710,this.anyName(),this.state=6711,this.match(t.USING),this.state=6712,this.name(),this.state=6713,this.match(t.OWNER),this.state=6714,this.match(t.TO),this.state=6715,this.roleName();break;case 12:this.enterOuterAlt(e,12),this.state=6717,this.match(t.ALTER),this.state=6718,this.match(t.PROCEDURE),this.state=6719,this.functionWithArgumentTypes(),this.state=6720,this.match(t.OWNER),this.state=6721,this.match(t.TO),this.state=6722,this.roleName();break;case 13:this.enterOuterAlt(e,13),this.state=6724,this.match(t.ALTER),this.state=6725,this.match(t.ROUTINE),this.state=6726,this.functionWithArgumentTypes(),this.state=6727,this.match(t.OWNER),this.state=6728,this.match(t.TO),this.state=6729,this.roleName();break;case 14:this.enterOuterAlt(e,14),this.state=6731,this.match(t.ALTER),this.state=6732,this.match(t.SCHEMA),this.state=6733,this.schemaName(),this.state=6734,this.match(t.OWNER),this.state=6735,this.match(t.TO),this.state=6736,this.roleName();break;case 15:this.enterOuterAlt(e,15),this.state=6738,this.match(t.ALTER),this.state=6739,this.match(t.TYPE_P),this.state=6740,this.anyName(),this.state=6741,this.match(t.OWNER),this.state=6742,this.match(t.TO),this.state=6743,this.roleName();break;case 16:this.enterOuterAlt(e,16),this.state=6745,this.match(t.ALTER),this.state=6746,this.match(t.TABLESPACE),this.state=6747,this.name(),this.state=6748,this.match(t.OWNER),this.state=6749,this.match(t.TO),this.state=6750,this.roleName();break;case 17:this.enterOuterAlt(e,17),this.state=6752,this.match(t.ALTER),this.state=6753,this.match(t.STATISTICS),this.state=6754,this.anyName(),this.state=6755,this.match(t.OWNER),this.state=6756,this.match(t.TO),this.state=6757,this.roleName();break;case 18:this.enterOuterAlt(e,18),this.state=6759,this.match(t.ALTER),this.state=6760,this.match(t.TEXT_P),this.state=6761,this.match(t.SEARCH),this.state=6762,this.match(t.DICTIONARY),this.state=6763,this.anyName(),this.state=6764,this.match(t.OWNER),this.state=6765,this.match(t.TO),this.state=6766,this.roleName();break;case 19:this.enterOuterAlt(e,19),this.state=6768,this.match(t.ALTER),this.state=6769,this.match(t.TEXT_P),this.state=6770,this.match(t.SEARCH),this.state=6771,this.match(t.CONFIGURATION),this.state=6772,this.anyName(),this.state=6773,this.match(t.OWNER),this.state=6774,this.match(t.TO),this.state=6775,this.roleName();break;case 20:this.enterOuterAlt(e,20),this.state=6777,this.match(t.ALTER),this.state=6778,this.match(t.FOREIGN),this.state=6779,this.match(t.DATA_P),this.state=6780,this.match(t.WRAPPER),this.state=6781,this.name(),this.state=6782,this.match(t.OWNER),this.state=6783,this.match(t.TO),this.state=6784,this.roleName();break;case 21:this.enterOuterAlt(e,21),this.state=6786,this.match(t.ALTER),this.state=6787,this.match(t.SERVER),this.state=6788,this.name(),this.state=6789,this.match(t.OWNER),this.state=6790,this.match(t.TO),this.state=6791,this.roleName();break;case 22:this.enterOuterAlt(e,22),this.state=6793,this.match(t.ALTER),this.state=6794,this.match(t.EVENT),this.state=6795,this.match(t.TRIGGER),this.state=6796,this.name(),this.state=6797,this.match(t.OWNER),this.state=6798,this.match(t.TO),this.state=6799,this.roleName();break;case 23:this.enterOuterAlt(e,23),this.state=6801,this.match(t.ALTER),this.state=6802,this.match(t.PUBLICATION),this.state=6803,this.name(),this.state=6804,this.match(t.OWNER),this.state=6805,this.match(t.TO),this.state=6806,this.roleName();break;case 24:this.enterOuterAlt(e,24),this.state=6808,this.match(t.ALTER),this.state=6809,this.match(t.SUBSCRIPTION),this.state=6810,this.name(),this.state=6811,this.match(t.OWNER),this.state=6812,this.match(t.TO),this.state=6813,this.roleName()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createPublicationStatement(){let e=new uA(this.context,this.state);this.enterRule(e,668,t.RULE_createPublicationStatement);try{this.enterOuterAlt(e,1),this.state=6817,this.match(t.CREATE),this.state=6818,this.match(t.PUBLICATION),this.state=6819,this.name(),this.state=6820,this.optionalPublicationForTables(),this.state=6821,this.optionalDefinition()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalPublicationForTables(){let e=new NA(this.context,this.state);this.enterRule(e,670,t.RULE_optionalPublicationForTables);try{switch(this.state=6825,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FOR:this.enterOuterAlt(e,1),this.state=6823,this.publicationForTables();break;case t.EOF:case t.SEMI:case t.INTO:case t.WITH:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}publicationForTables(){let e=new LA(this.context,this.state);this.enterRule(e,672,t.RULE_publicationForTables);try{switch(this.state=6833,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,358,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6827,this.match(t.FOR),this.state=6828,this.match(t.TABLE),this.state=6829,this.relationExpressionList();break;case 2:this.enterOuterAlt(e,2),this.state=6830,this.match(t.FOR),this.state=6831,this.match(t.ALL),this.state=6832,this.match(t.TABLES)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterPublicationStatement(){let e=new CA(this.context,this.state);this.enterRule(e,674,t.RULE_alterPublicationStatement);try{switch(this.state=6862,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,359,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6835,this.match(t.ALTER),this.state=6836,this.match(t.PUBLICATION),this.state=6837,this.name(),this.state=6838,this.match(t.SET),this.state=6839,this.definition();break;case 2:this.enterOuterAlt(e,2),this.state=6841,this.match(t.ALTER),this.state=6842,this.match(t.PUBLICATION),this.state=6843,this.name(),this.state=6844,this.match(t.ADD_P),this.state=6845,this.match(t.TABLE),this.state=6846,this.relationExpressionList();break;case 3:this.enterOuterAlt(e,3),this.state=6848,this.match(t.ALTER),this.state=6849,this.match(t.PUBLICATION),this.state=6850,this.name(),this.state=6851,this.match(t.SET),this.state=6852,this.match(t.TABLE),this.state=6853,this.relationExpressionList();break;case 4:this.enterOuterAlt(e,4),this.state=6855,this.match(t.ALTER),this.state=6856,this.match(t.PUBLICATION),this.state=6857,this.name(),this.state=6858,this.match(t.DROP),this.state=6859,this.match(t.TABLE),this.state=6860,this.relationExpressionList()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createSubscriptionStatement(){let e=new _A(this.context,this.state);this.enterRule(e,676,t.RULE_createSubscriptionStatement);try{this.enterOuterAlt(e,1),this.state=6864,this.match(t.CREATE),this.state=6865,this.match(t.SUBSCRIPTION),this.state=6866,this.name(),this.state=6867,this.match(t.CONNECTION),this.state=6868,this.sconst(),this.state=6869,this.match(t.PUBLICATION),this.state=6870,this.publicationNameList(),this.state=6871,this.optionalDefinition()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}publicationNameList(){let e,s=new PA(this.context,this.state);this.enterRule(s,678,t.RULE_publicationNameList);try{for(this.enterOuterAlt(s,1),this.state=6873,this.publicationNameItem(),this.state=6878,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=6874,this.match(t.COMMA),this.state=6875,this.publicationNameItem(),this.state=6880,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}publicationNameItem(){let e=new MA(this.context,this.state);this.enterRule(e,680,t.RULE_publicationNameItem);try{this.enterOuterAlt(e,1),this.state=6881,this.columnLabel()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterSubscriptionStatement(){let e=new dA(this.context,this.state);this.enterRule(e,682,t.RULE_alterSubscriptionStatement);try{switch(this.state=6920,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,361,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6883,this.match(t.ALTER),this.state=6884,this.match(t.SUBSCRIPTION),this.state=6885,this.name(),this.state=6886,this.match(t.SET),this.state=6887,this.definition();break;case 2:this.enterOuterAlt(e,2),this.state=6889,this.match(t.ALTER),this.state=6890,this.match(t.SUBSCRIPTION),this.state=6891,this.name(),this.state=6892,this.match(t.CONNECTION),this.state=6893,this.sconst();break;case 3:this.enterOuterAlt(e,3),this.state=6895,this.match(t.ALTER),this.state=6896,this.match(t.SUBSCRIPTION),this.state=6897,this.name(),this.state=6898,this.match(t.REFRESH),this.state=6899,this.match(t.PUBLICATION),this.state=6900,this.optionalDefinition();break;case 4:this.enterOuterAlt(e,4),this.state=6902,this.match(t.ALTER),this.state=6903,this.match(t.SUBSCRIPTION),this.state=6904,this.name(),this.state=6905,this.match(t.SET),this.state=6906,this.match(t.PUBLICATION),this.state=6907,this.publicationNameList(),this.state=6908,this.optionalDefinition();break;case 5:this.enterOuterAlt(e,5),this.state=6910,this.match(t.ALTER),this.state=6911,this.match(t.SUBSCRIPTION),this.state=6912,this.name(),this.state=6913,this.match(t.ENABLE_P);break;case 6:this.enterOuterAlt(e,6),this.state=6915,this.match(t.ALTER),this.state=6916,this.match(t.SUBSCRIPTION),this.state=6917,this.name(),this.state=6918,this.match(t.DISABLE_P)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropSubscriptionStatement(){let e=new UA(this.context,this.state);this.enterRule(e,684,t.RULE_dropSubscriptionStatement);try{switch(this.state=6934,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,362,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6922,this.match(t.DROP),this.state=6923,this.match(t.SUBSCRIPTION),this.state=6924,this.name(),this.state=6925,this.optionalDropBehavior();break;case 2:this.enterOuterAlt(e,2),this.state=6927,this.match(t.DROP),this.state=6928,this.match(t.SUBSCRIPTION),this.state=6929,this.match(t.IF_P),this.state=6930,this.match(t.EXISTS),this.state=6931,this.name(),this.state=6932,this.optionalDropBehavior()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}ruleStatement(){let e=new mA(this.context,this.state);this.enterRule(e,686,t.RULE_ruleStatement);try{this.enterOuterAlt(e,1),this.state=6936,this.match(t.CREATE),this.state=6937,this.optionalOrReplace(),this.state=6938,this.match(t.RULE),this.state=6939,this.name(),this.state=6940,this.match(t.AS),this.state=6941,this.match(t.ON),this.state=6942,this.event(),this.state=6943,this.match(t.TO),this.state=6944,this.qualifiedName(),this.state=6945,this.whereClause(),this.state=6946,this.match(t.DO),this.state=6947,this.optionalInstead(),this.state=6948,this.ruleActionList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}ruleActionList(){let e=new DA(this.context,this.state);this.enterRule(e,688,t.RULE_ruleActionList);try{switch(this.state=6956,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,363,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6950,this.match(t.NOTHING);break;case 2:this.enterOuterAlt(e,2),this.state=6951,this.ruleActionStatement();break;case 3:this.enterOuterAlt(e,3),this.state=6952,this.match(t.OPEN_PAREN),this.state=6953,this.ruleActionMulti(),this.state=6954,this.match(t.CLOSE_PAREN)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}ruleActionMulti(){let e,s=new pA(this.context,this.state);this.enterRule(s,690,t.RULE_ruleActionMulti);try{for(this.enterOuterAlt(s,1),this.state=6958,this.ruleActionStatementOrEmpty(),this.state=6963,this.errorHandler.sync(this),e=this.tokenStream.LA(1);7===e;)this.state=6959,this.match(t.SEMI),this.state=6960,this.ruleActionStatementOrEmpty(),this.state=6965,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}ruleActionStatement(){let e=new gA(this.context,this.state);this.enterRule(e,692,t.RULE_ruleActionStatement);try{switch(this.state=6971,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,365,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6966,this.selectStatement();break;case 2:this.enterOuterAlt(e,2),this.state=6967,this.insertStatement();break;case 3:this.enterOuterAlt(e,3),this.state=6968,this.updateStatement();break;case 4:this.enterOuterAlt(e,4),this.state=6969,this.deleteStatement();break;case 5:this.enterOuterAlt(e,5),this.state=6970,this.notifyStatement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}ruleActionStatementOrEmpty(){let e=new xA(this.context,this.state);this.enterRule(e,694,t.RULE_ruleActionStatementOrEmpty);try{switch(this.state=6975,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:case t.SELECT:case t.TABLE:case t.WITH:case t.DELETE_P:case t.INSERT:case t.NOTIFY:case t.UPDATE:case t.VALUES:this.enterOuterAlt(e,1),this.state=6973,this.ruleActionStatement();break;case t.CLOSE_PAREN:case t.SEMI:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}event(){let e,s=new kA(this.context,this.state);this.enterRule(s,696,t.RULE_event);try{this.enterOuterAlt(s,1),this.state=6977,e=this.tokenStream.LA(1),88===e||182===e||232===e||362===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalInstead(){let e=new HA(this.context,this.state);this.enterRule(e,698,t.RULE_optionalInstead);try{switch(this.state=6982,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.INSTEAD:this.enterOuterAlt(e,1),this.state=6979,this.match(t.INSTEAD);break;case t.ALSO:this.enterOuterAlt(e,2),this.state=6980,this.match(t.ALSO);break;case t.OPEN_PAREN:case t.SELECT:case t.TABLE:case t.WITH:case t.DELETE_P:case t.INSERT:case t.NOTHING:case t.NOTIFY:case t.UPDATE:case t.VALUES:this.enterOuterAlt(e,3);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}notifyStatement(){let e=new GA(this.context,this.state);this.enterRule(e,700,t.RULE_notifyStatement);try{this.enterOuterAlt(e,1),this.state=6984,this.match(t.NOTIFY),this.state=6985,this.columnId(),this.state=6986,this.notifyPayload()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}notifyPayload(){let e=new FA(this.context,this.state);this.enterRule(e,702,t.RULE_notifyPayload);try{switch(this.state=6991,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.COMMA:this.enterOuterAlt(e,1),this.state=6988,this.match(t.COMMA),this.state=6989,this.sconst();break;case t.EOF:case t.CLOSE_PAREN:case t.SEMI:case t.INTO:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}listenStatement(){let e=new vA(this.context,this.state);this.enterRule(e,704,t.RULE_listenStatement);try{this.enterOuterAlt(e,1),this.state=6993,this.match(t.LISTEN),this.state=6994,this.columnId()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}unlistenStatement(){let e=new BA(this.context,this.state);this.enterRule(e,706,t.RULE_unlistenStatement);try{switch(this.state=7e3,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,369,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6996,this.match(t.UNLISTEN),this.state=6997,this.columnId();break;case 2:this.enterOuterAlt(e,2),this.state=6998,this.match(t.UNLISTEN),this.state=6999,this.match(t.STAR)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}transactionStatement(){let e,s=new yA(this.context,this.state);this.enterRule(s,708,t.RULE_transactionStatement);try{switch(this.state=7055,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,372,this.context)){case 1:this.enterOuterAlt(s,1),this.state=7002,this.match(t.ABORT_P),this.state=7003,this.optionalTransaction(),this.state=7004,this.optionalTransactionChain();break;case 2:this.enterOuterAlt(s,2),this.state=7006,this.match(t.BEGIN_P),this.state=7007,this.optionalTransaction(),this.state=7009,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(54===e||77===e||235===e||293===e)&&(this.state=7008,this.transactionModeList());break;case 3:this.enterOuterAlt(s,3),this.state=7011,this.match(t.START),this.state=7012,this.match(t.TRANSACTION),this.state=7014,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(54===e||77===e||235===e||293===e)&&(this.state=7013,this.transactionModeList());break;case 4:this.enterOuterAlt(s,4),this.state=7016,this.match(t.COMMIT),this.state=7017,this.optionalTransaction(),this.state=7018,this.optionalTransactionChain();break;case 5:this.enterOuterAlt(s,5),this.state=7020,this.match(t.END_P),this.state=7021,this.optionalTransaction(),this.state=7022,this.optionalTransactionChain();break;case 6:this.enterOuterAlt(s,6),this.state=7024,this.match(t.ROLLBACK),this.state=7025,this.optionalTransaction(),this.state=7026,this.optionalTransactionChain();break;case 7:this.enterOuterAlt(s,7),this.state=7028,this.match(t.SAVEPOINT),this.state=7029,this.columnId();break;case 8:this.enterOuterAlt(s,8),this.state=7030,this.match(t.RELEASE),this.state=7031,this.match(t.SAVEPOINT),this.state=7032,this.columnId();break;case 9:this.enterOuterAlt(s,9),this.state=7033,this.match(t.RELEASE),this.state=7034,this.columnId();break;case 10:this.enterOuterAlt(s,10),this.state=7035,this.match(t.ROLLBACK),this.state=7036,this.optionalTransaction(),this.state=7037,this.match(t.TO),this.state=7038,this.match(t.SAVEPOINT),this.state=7039,this.columnId();break;case 11:this.enterOuterAlt(s,11),this.state=7041,this.match(t.ROLLBACK),this.state=7042,this.optionalTransaction(),this.state=7043,this.match(t.TO),this.state=7044,this.columnId();break;case 12:this.enterOuterAlt(s,12),this.state=7046,this.match(t.PREPARE),this.state=7047,this.match(t.TRANSACTION),this.state=7048,this.sconst();break;case 13:this.enterOuterAlt(s,13),this.state=7049,this.match(t.COMMIT),this.state=7050,this.match(t.PREPARED),this.state=7051,this.sconst();break;case 14:this.enterOuterAlt(s,14),this.state=7052,this.match(t.ROLLBACK),this.state=7053,this.match(t.PREPARED),this.state=7054,this.sconst()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalTransaction(){let e=new fA(this.context,this.state);this.enterRule(e,710,t.RULE_optionalTransaction);try{switch(this.state=7060,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WORK:this.enterOuterAlt(e,1),this.state=7057,this.match(t.WORK);break;case t.TRANSACTION:this.enterOuterAlt(e,2),this.state=7058,this.match(t.TRANSACTION);break;case t.EOF:case t.SEMI:case t.AND:case t.DEFERRABLE:case t.INTO:case t.NOT:case t.TO:case t.ISOLATION:case t.READ:this.enterOuterAlt(e,3);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}transactionModeItem(){let e=new YA(this.context,this.state);this.enterRule(e,712,t.RULE_transactionModeItem);try{switch(this.state=7072,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,374,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7062,this.match(t.ISOLATION),this.state=7063,this.match(t.LEVEL),this.state=7064,this.isoLevel();break;case 2:this.enterOuterAlt(e,2),this.state=7065,this.match(t.READ),this.state=7066,this.match(t.ONLY);break;case 3:this.enterOuterAlt(e,3),this.state=7067,this.match(t.READ),this.state=7068,this.match(t.WRITE);break;case 4:this.enterOuterAlt(e,4),this.state=7069,this.match(t.DEFERRABLE);break;case 5:this.enterOuterAlt(e,5),this.state=7070,this.match(t.NOT),this.state=7071,this.match(t.DEFERRABLE)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}transactionModeList(){let e,s=new wA(this.context,this.state);this.enterRule(s,714,t.RULE_transactionModeList);try{for(this.enterOuterAlt(s,1),this.state=7074,this.transactionModeItem(),this.state=7081,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e||54===e||77===e||235===e||293===e;)this.state=7076,this.errorHandler.sync(this),e=this.tokenStream.LA(1),6===e&&(this.state=7075,this.match(t.COMMA)),this.state=7078,this.transactionModeItem(),this.state=7083,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalTransactionChain(){let e,s=new bA(this.context,this.state);this.enterRule(s,716,t.RULE_optionalTransactionChain);try{switch(this.state=7090,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:this.enterOuterAlt(s,1),this.state=7084,this.match(t.AND),this.state=7086,this.errorHandler.sync(this),e=this.tokenStream.LA(1),262===e&&(this.state=7085,this.match(t.NO)),this.state=7088,this.match(t.CHAIN);break;case t.EOF:case t.SEMI:case t.INTO:this.enterOuterAlt(s,2);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}viewStatement(){let e,s=new WA(this.context,this.state);this.enterRule(s,718,t.RULE_viewStatement);try{switch(this.enterOuterAlt(s,1),this.state=7092,this.match(t.CREATE),this.state=7095,this.errorHandler.sync(this),e=this.tokenStream.LA(1),82===e&&(this.state=7093,this.match(t.OR),this.state=7094,this.match(t.REPLACE)),this.state=7097,this.temporaryOption(),this.state=7111,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.VIEW:this.state=7098,this.match(t.VIEW),this.state=7099,this.qualifiedName(),this.state=7100,this.columnListWithParentheses(),this.state=7101,this.optionalRelOptions();break;case t.RECURSIVE:this.state=7103,this.match(t.RECURSIVE),this.state=7104,this.match(t.VIEW),this.state=7105,this.qualifiedName(),this.state=7106,this.match(t.OPEN_PAREN),this.state=7107,this.columnList(),this.state=7108,this.match(t.CLOSE_PAREN),this.state=7109,this.optionalRelOptions();break;default:throw new Ei(this)}this.state=7113,this.match(t.AS),this.state=7114,this.selectStatement(),this.state=7115,this.optionalCheckOption()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalCheckOption(){let e,s=new VA(this.context,this.state);this.enterRule(s,720,t.RULE_optionalCheckOption);try{switch(this.state=7124,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WITH:this.enterOuterAlt(s,1),this.state=7117,this.match(t.WITH),this.state=7119,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(151===e||245===e)&&(this.state=7118,e=this.tokenStream.LA(1),151===e||245===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=7121,this.match(t.CHECK),this.state=7122,this.match(t.OPTION);break;case t.EOF:case t.SEMI:case t.CREATE:case t.GRANT:case t.INTO:this.enterOuterAlt(s,2);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}loadStatement(){let e=new XA(this.context,this.state);this.enterRule(e,722,t.RULE_loadStatement);try{this.enterOuterAlt(e,1),this.state=7126,this.match(t.LOAD),this.state=7127,this.fileName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createDatabaseStatement(){let e=new KA(this.context,this.state);this.enterRule(e,724,t.RULE_createDatabaseStatement);try{this.enterOuterAlt(e,1),this.state=7129,this.match(t.CREATE),this.state=7130,this.match(t.DATABASE),this.state=7131,this.name(),this.state=7132,this.optionalWith(),this.state=7133,this.createDatabaseOptionList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createDatabaseOptionList(){let e,s=new QA(this.context,this.state);this.enterRule(s,726,t.RULE_createDatabaseOptionList);try{switch(this.state=7141,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.OUTER_P:case t.ABSOLUTE_P:case t.BACKWARD:case t.CHAIN:case t.CLOSE:case t.COMMIT:case t.CONNECTION:case t.CONTINUE_P:case t.CURSOR:case t.ENCODING:case t.FIRST_P:case t.FORWARD:case t.INSERT:case t.LAST_P:case t.LOCATION:case t.MOVE:case t.NEXT:case t.NO:case t.OPTION:case t.OWNER:case t.PRIOR:case t.RELATIVE_P:case t.RESET:case t.ROLLBACK:case t.SCHEMA:case t.SCROLL:case t.SET:case t.TABLESPACE:case t.TEMPLATE:case t.TYPE_P:case t.CALL:case t.CURRENT_P:case t.ROWTYPE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(s,1),this.state=7136,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=7135,this.createDatabaseOptionItem(),this.state=7138,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(!(e-33&-32)&&1<<e-33&286268421||!(e-92&-32)&&1<<e-92&2164260865||!(e-130&-32)&&1<<e-130&2290106369||!(e-164&-32)&&1<<e-164&1073742089||!(e-207&-32)&&1<<e-207&33554441||!(e-240&-32)&&1<<e-240&6553665||!(e-272&-32)&&1<<e-272&268451849||!(e-306&-32)&&1<<e-306&1051713||!(e-344&-32)&&1<<e-344&517||433===e||434===e||!(e-477&-32)&&1<<e-477&3825197057||!(e-509&-32)&&1<<e-509&3055||!(e-636&-32)&&1<<e-636&100663331);break;case t.EOF:case t.SEMI:case t.INTO:this.enterOuterAlt(s,2);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createDatabaseOptionItem(){let e,s=new JA(this.context,this.state);this.enterRule(s,728,t.RULE_createDatabaseOptionItem);try{switch(this.enterOuterAlt(s,1),this.state=7143,this.createDatabaseOptionName(),this.state=7145,this.errorHandler.sync(this),e=this.tokenStream.LA(1),10===e&&(this.state=7144,this.match(t.EQUAL)),this.state=7150,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,386,this.context)){case 1:this.state=7147,this.signedIconst();break;case 2:this.state=7148,this.booleanOrString();break;case 3:this.state=7149,this.match(t.DEFAULT)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createDatabaseOptionName(){let e=new ZA(this.context,this.state);this.enterRule(e,730,t.RULE_createDatabaseOptionName);try{switch(this.state=7160,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.OUTER_P:case t.ABSOLUTE_P:case t.BACKWARD:case t.CHAIN:case t.CLOSE:case t.COMMIT:case t.CONTINUE_P:case t.CURSOR:case t.FIRST_P:case t.FORWARD:case t.INSERT:case t.LAST_P:case t.MOVE:case t.NEXT:case t.NO:case t.OPTION:case t.PRIOR:case t.RELATIVE_P:case t.RESET:case t.ROLLBACK:case t.SCHEMA:case t.SCROLL:case t.SET:case t.TYPE_P:case t.CALL:case t.CURRENT_P:case t.ROWTYPE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,1),this.state=7152,this.identifier();break;case t.CONNECTION:this.enterOuterAlt(e,2),this.state=7153,this.match(t.CONNECTION),this.state=7154,this.match(t.LIMIT);break;case t.ENCODING:this.enterOuterAlt(e,3),this.state=7155,this.match(t.ENCODING);break;case t.LOCATION:this.enterOuterAlt(e,4),this.state=7156,this.match(t.LOCATION);break;case t.OWNER:this.enterOuterAlt(e,5),this.state=7157,this.match(t.OWNER);break;case t.TABLESPACE:this.enterOuterAlt(e,6),this.state=7158,this.match(t.TABLESPACE);break;case t.TEMPLATE:this.enterOuterAlt(e,7),this.state=7159,this.match(t.TEMPLATE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterDatabaseStatement(){let e=new qA(this.context,this.state);this.enterRule(e,732,t.RULE_alterDatabaseStatement);try{switch(this.enterOuterAlt(e,1),this.state=7162,this.match(t.ALTER),this.state=7163,this.match(t.DATABASE),this.state=7164,this.databaseName(),this.state=7171,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,388,this.context)){case 1:this.state=7165,this.match(t.WITH),this.state=7166,this.createDatabaseOptionList();break;case 2:this.state=7167,this.createDatabaseOptionList();break;case 3:this.state=7168,this.match(t.SET),this.state=7169,this.match(t.TABLESPACE),this.state=7170,this.name()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterDatabaseSetStatement(){let e=new jA(this.context,this.state);this.enterRule(e,734,t.RULE_alterDatabaseSetStatement);try{this.enterOuterAlt(e,1),this.state=7173,this.match(t.ALTER),this.state=7174,this.match(t.DATABASE),this.state=7175,this.databaseName(),this.state=7176,this.setResetClause()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropDatabaseStatement(){let e,s=new zA(this.context,this.state);this.enterRule(s,736,t.RULE_dropDatabaseStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=7178,this.match(t.DROP),this.state=7179,this.match(t.DATABASE),this.state=7182,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,389,this.context)))this.state=7180,this.match(t.IF_P),this.state=7181,this.match(t.EXISTS);if(this.state=7184,this.databaseName(),this.state=7197,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e||105===e){for(this.state=7185,this.optionalWith(),this.state=7186,this.match(t.OPEN_PAREN),this.state=7187,this.match(t.FORCE),this.state=7192,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=7188,this.match(t.COMMA),this.state=7189,this.match(t.FORCE),this.state=7194,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=7195,this.match(t.CLOSE_PAREN)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterCollationStatement(){let e=new $A(this.context,this.state);this.enterRule(e,738,t.RULE_alterCollationStatement);try{this.enterOuterAlt(e,1),this.state=7199,this.match(t.ALTER),this.state=7200,this.match(t.COLLATION),this.state=7201,this.anyName(),this.state=7202,this.match(t.REFRESH),this.state=7203,this.match(t.VERSION_P)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterSystemStatement(){let e,s=new tS(this.context,this.state);this.enterRule(s,740,t.RULE_alterSystemStatement);try{this.enterOuterAlt(s,1),this.state=7205,this.match(t.ALTER),this.state=7206,this.match(t.SYSTEM_P),this.state=7207,e=this.tokenStream.LA(1),306===e||326===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=7208,this.genericSetClause()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createDomainStatement(){let e=new eS(this.context,this.state);this.enterRule(e,742,t.RULE_createDomainStatement);try{this.enterOuterAlt(e,1),this.state=7210,this.match(t.CREATE),this.state=7211,this.match(t.DOMAIN_P),this.state=7212,this.anyName(),this.state=7213,this.optionalAs(),this.state=7214,this.typeName(),this.state=7215,this.columnQualifierList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterDomainStatement(){let e=new sS(this.context,this.state);this.enterRule(e,744,t.RULE_alterDomainStatement);try{this.enterOuterAlt(e,1),this.state=7217,this.match(t.ALTER),this.state=7218,this.match(t.DOMAIN_P),this.state=7219,this.anyName(),this.state=7220,this.alterDomainCommand()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterDomainCommand(){let e=new aS(this.context,this.state);this.enterRule(e,746,t.RULE_alterDomainCommand);try{switch(this.state=7243,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,393,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7222,this.alterColumnDefault();break;case 2:this.enterOuterAlt(e,2),this.state=7223,this.match(t.DROP),this.state=7224,this.match(t.NOT),this.state=7225,this.match(t.NULL_P);break;case 3:this.enterOuterAlt(e,3),this.state=7226,this.match(t.SET),this.state=7227,this.match(t.NOT),this.state=7228,this.match(t.NULL_P);break;case 4:this.enterOuterAlt(e,4),this.state=7229,this.match(t.ADD_P),this.state=7230,this.tableConstraint();break;case 5:if(this.enterOuterAlt(e,5),1===(this.state=7231,this.match(t.DROP),this.state=7232,this.match(t.CONSTRAINT),this.state=7235,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,392,this.context)))this.state=7233,this.match(t.IF_P),this.state=7234,this.match(t.EXISTS);this.state=7237,this.constraintName(),this.state=7238,this.optionalDropBehavior();break;case 6:this.enterOuterAlt(e,6),this.state=7240,this.match(t.VALIDATE),this.state=7241,this.match(t.CONSTRAINT),this.state=7242,this.constraintName()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalAs(){let e=new rS(this.context,this.state);this.enterRule(e,748,t.RULE_optionalAs);try{switch(this.state=7247,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AS:this.enterOuterAlt(e,1),this.state=7245,this.match(t.AS);break;case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LEFT:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.RIGHT:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}altertsDictionaryStatement(){let e=new iS(this.context,this.state);this.enterRule(e,750,t.RULE_altertsDictionaryStatement);try{this.enterOuterAlt(e,1),this.state=7249,this.match(t.ALTER),this.state=7250,this.match(t.TEXT_P),this.state=7251,this.match(t.SEARCH),this.state=7252,this.match(t.DICTIONARY),this.state=7253,this.anyName(),this.state=7254,this.definition()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}altertsConfigurationStatement(){let e=new cS(this.context,this.state);this.enterRule(e,752,t.RULE_altertsConfigurationStatement);try{switch(this.state=7328,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,395,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7256,this.match(t.ALTER),this.state=7257,this.match(t.TEXT_P),this.state=7258,this.match(t.SEARCH),this.state=7259,this.match(t.CONFIGURATION),this.state=7260,this.anyName(),this.state=7261,this.match(t.ADD_P),this.state=7262,this.match(t.MAPPING),this.state=7263,this.match(t.FOR),this.state=7264,this.nameList(),this.state=7265,this.match(t.WITH),this.state=7266,this.anyNameList();break;case 2:this.enterOuterAlt(e,2),this.state=7268,this.match(t.ALTER),this.state=7269,this.match(t.TEXT_P),this.state=7270,this.match(t.SEARCH),this.state=7271,this.match(t.CONFIGURATION),this.state=7272,this.anyName(),this.state=7273,this.match(t.ALTER),this.state=7274,this.match(t.MAPPING),this.state=7275,this.match(t.FOR),this.state=7276,this.nameList(),this.state=7277,this.match(t.WITH),this.state=7278,this.anyNameList();break;case 3:this.enterOuterAlt(e,3),this.state=7280,this.match(t.ALTER),this.state=7281,this.match(t.TEXT_P),this.state=7282,this.match(t.SEARCH),this.state=7283,this.match(t.CONFIGURATION),this.state=7284,this.anyName(),this.state=7285,this.match(t.ALTER),this.state=7286,this.match(t.MAPPING),this.state=7287,this.match(t.REPLACE),this.state=7288,this.anyName(),this.state=7289,this.match(t.WITH),this.state=7290,this.anyName();break;case 4:this.enterOuterAlt(e,4),this.state=7292,this.match(t.ALTER),this.state=7293,this.match(t.TEXT_P),this.state=7294,this.match(t.SEARCH),this.state=7295,this.match(t.CONFIGURATION),this.state=7296,this.anyName(),this.state=7297,this.match(t.ALTER),this.state=7298,this.match(t.MAPPING),this.state=7299,this.match(t.FOR),this.state=7300,this.nameList(),this.state=7301,this.match(t.REPLACE),this.state=7302,this.anyName(),this.state=7303,this.match(t.WITH),this.state=7304,this.anyName();break;case 5:this.enterOuterAlt(e,5),this.state=7306,this.match(t.ALTER),this.state=7307,this.match(t.TEXT_P),this.state=7308,this.match(t.SEARCH),this.state=7309,this.match(t.CONFIGURATION),this.state=7310,this.anyName(),this.state=7311,this.match(t.DROP),this.state=7312,this.match(t.MAPPING),this.state=7313,this.match(t.FOR),this.state=7314,this.nameList();break;case 6:this.enterOuterAlt(e,6),this.state=7316,this.match(t.ALTER),this.state=7317,this.match(t.TEXT_P),this.state=7318,this.match(t.SEARCH),this.state=7319,this.match(t.CONFIGURATION),this.state=7320,this.anyName(),this.state=7321,this.match(t.DROP),this.state=7322,this.match(t.MAPPING),this.state=7323,this.match(t.IF_P),this.state=7324,this.match(t.EXISTS),this.state=7325,this.match(t.FOR),this.state=7326,this.nameList()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createConversionStatement(){let e,s=new nS(this.context,this.state);this.enterRule(s,754,t.RULE_createConversionStatement);try{this.enterOuterAlt(s,1),this.state=7330,this.match(t.CREATE),this.state=7332,this.errorHandler.sync(this),e=this.tokenStream.LA(1),53===e&&(this.state=7331,this.match(t.DEFAULT)),this.state=7334,this.match(t.CONVERSION_P),this.state=7335,this.anyName(),this.state=7336,this.match(t.FOR),this.state=7337,this.sconst(),this.state=7338,this.match(t.TO),this.state=7339,this.sconst(),this.state=7340,this.match(t.FROM),this.state=7341,this.anyName()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}clusterStatement(){let e=new hS(this.context,this.state);this.enterRule(e,756,t.RULE_clusterStatement);try{switch(this.state=7356,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,397,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7343,this.match(t.CLUSTER),this.state=7344,this.optionalVerbose(),this.state=7345,this.qualifiedName(),this.state=7346,this.clusterIndexSpecification();break;case 2:this.enterOuterAlt(e,2),this.state=7348,this.match(t.CLUSTER),this.state=7349,this.optionalVerbose();break;case 3:this.enterOuterAlt(e,3),this.state=7350,this.match(t.CLUSTER),this.state=7351,this.optionalVerbose(),this.state=7352,this.name(),this.state=7353,this.match(t.ON),this.state=7354,this.qualifiedName()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}clusterIndexSpecification(){let e=new ES(this.context,this.state);this.enterRule(e,758,t.RULE_clusterIndexSpecification);try{switch(this.state=7361,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.USING:this.enterOuterAlt(e,1),this.state=7358,this.match(t.USING),this.state=7359,this.name();break;case t.EOF:case t.SEMI:case t.INTO:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}vacuumStatement(){let e,s=new TS(this.context,this.state);this.enterRule(s,760,t.RULE_vacuumStatement);try{switch(this.state=7382,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,402,this.context)){case 1:this.enterOuterAlt(s,1),this.state=7363,this.match(t.VACUUM),this.state=7365,this.errorHandler.sync(this),e=this.tokenStream.LA(1),113===e&&(this.state=7364,this.match(t.FULL)),this.state=7368,this.errorHandler.sync(this),e=this.tokenStream.LA(1),112===e&&(this.state=7367,this.match(t.FREEZE)),this.state=7370,this.optionalVerbose(),this.state=7372,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(31===e||32===e)&&(this.state=7371,this.analyzeKeyword()),this.state=7374,this.optionalVacuumRelationList();break;case 2:this.enterOuterAlt(s,2),this.state=7376,this.match(t.VACUUM),this.state=7377,this.match(t.OPEN_PAREN),this.state=7378,this.vacuumAnalyzeOptionList(),this.state=7379,this.match(t.CLOSE_PAREN),this.state=7380,this.optionalVacuumRelationList()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}analyzeStatement(){let e=new oS(this.context,this.state);this.enterRule(e,762,t.RULE_analyzeStatement);try{switch(this.state=7394,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,403,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7384,this.analyzeKeyword(),this.state=7385,this.optionalVerbose(),this.state=7386,this.optionalVacuumRelationList();break;case 2:this.enterOuterAlt(e,2),this.state=7388,this.analyzeKeyword(),this.state=7389,this.match(t.OPEN_PAREN),this.state=7390,this.vacuumAnalyzeOptionList(),this.state=7391,this.match(t.CLOSE_PAREN),this.state=7392,this.optionalVacuumRelationList()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}vacuumAnalyzeOptionList(){let e,s=new RS(this.context,this.state);this.enterRule(s,764,t.RULE_vacuumAnalyzeOptionList);try{for(this.enterOuterAlt(s,1),this.state=7396,this.vacuumAnalyzeOptionElement(),this.state=7401,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=7397,this.match(t.COMMA),this.state=7398,this.vacuumAnalyzeOptionElement(),this.state=7403,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}analyzeKeyword(){let e,s=new AS(this.context,this.state);this.enterRule(s,766,t.RULE_analyzeKeyword);try{this.enterOuterAlt(s,1),this.state=7404,e=this.tokenStream.LA(1),31===e||32===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}vacuumAnalyzeOptionElement(){let e=new SS(this.context,this.state);this.enterRule(e,768,t.RULE_vacuumAnalyzeOptionElement);try{this.enterOuterAlt(e,1),this.state=7406,this.vacuumAnalyzeOptionName(),this.state=7407,this.vacuumAnalyzeOptionArgument()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}vacuumAnalyzeOptionName(){let e=new lS(this.context,this.state);this.enterRule(e,770,t.RULE_vacuumAnalyzeOptionName);try{switch(this.state=7411,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,1),this.state=7409,this.nonReservedWord();break;case t.ANALYSE:case t.ANALYZE:this.enterOuterAlt(e,2),this.state=7410,this.analyzeKeyword();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}vacuumAnalyzeOptionArgument(){let e=new OS(this.context,this.state);this.enterRule(e,772,t.RULE_vacuumAnalyzeOptionArgument);try{switch(this.state=7416,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FALSE_P:case t.FETCH:case t.ON:case t.TABLE:case t.TRUE_P:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:this.enterOuterAlt(e,1),this.state=7413,this.booleanOrString();break;case t.PLUS:case t.MINUS:case t.Integral:case t.Numeric:this.enterOuterAlt(e,2),this.state=7414,this.numericOnly();break;case t.CLOSE_PAREN:case t.COMMA:this.enterOuterAlt(e,3);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalVerbose(){let e=new IS(this.context,this.state);this.enterRule(e,774,t.RULE_optionalVerbose);try{switch(this.state=7420,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.VERBOSE:this.enterOuterAlt(e,1),this.state=7418,this.match(t.VERBOSE);break;case t.EOF:case t.OPEN_PAREN:case t.SEMI:case t.ANALYSE:case t.ANALYZE:case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CREATE:case t.DEFAULT:case t.DO:case t.FETCH:case t.INTO:case t.SELECT:case t.TABLE:case t.WITH:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalNameList(){let e=new uS(this.context,this.state);this.enterRule(e,776,t.RULE_optionalNameList);try{switch(this.state=7427,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:this.enterOuterAlt(e,1),this.state=7422,this.match(t.OPEN_PAREN),this.state=7423,this.nameList(),this.state=7424,this.match(t.CLOSE_PAREN);break;case t.EOF:case t.COMMA:case t.SEMI:case t.AS:case t.INTO:case t.ON:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}vacuumRelation(){let e=new NS(this.context,this.state);this.enterRule(e,778,t.RULE_vacuumRelation);try{this.enterOuterAlt(e,1),this.state=7429,this.qualifiedName(),this.state=7430,this.optionalNameList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalVacuumRelationList(){let e,s=new LS(this.context,this.state);this.enterRule(s,780,t.RULE_optionalVacuumRelationList);try{switch(this.state=7441,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:for(this.enterOuterAlt(s,1),this.state=7432,this.vacuumRelation(),this.state=7437,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=7433,this.match(t.COMMA),this.state=7434,this.vacuumRelation(),this.state=7439,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case t.EOF:case t.SEMI:case t.INTO:this.enterOuterAlt(s,2);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}explainStatement(){let e,s=new CS(this.context,this.state);this.enterRule(s,782,t.RULE_explainStatement);try{switch(this.state=7466,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,412,this.context)){case 1:this.enterOuterAlt(s,1),this.state=7443,this.match(t.EXPLAIN),this.state=7444,this.explainableStatement();break;case 2:this.enterOuterAlt(s,2),this.state=7445,this.match(t.EXPLAIN),this.state=7446,this.analyzeKeyword(),this.state=7447,this.optionalVerbose(),this.state=7448,this.explainableStatement();break;case 3:this.enterOuterAlt(s,3),this.state=7450,this.match(t.EXPLAIN),this.state=7451,this.match(t.VERBOSE),this.state=7452,this.explainableStatement();break;case 4:for(this.enterOuterAlt(s,4),this.state=7453,this.match(t.EXPLAIN),this.state=7454,this.match(t.OPEN_PAREN),this.state=7455,this.explainOptionElement(),this.state=7460,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=7456,this.match(t.COMMA),this.state=7457,this.explainOptionElement(),this.state=7462,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=7463,this.match(t.CLOSE_PAREN),this.state=7464,this.explainableStatement()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}explainableStatement(){let e=new _S(this.context,this.state);this.enterRule(e,784,t.RULE_explainableStatement);try{switch(this.state=7477,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,413,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7468,this.selectStatement();break;case 2:this.enterOuterAlt(e,2),this.state=7469,this.insertStatement();break;case 3:this.enterOuterAlt(e,3),this.state=7470,this.updateStatement();break;case 4:this.enterOuterAlt(e,4),this.state=7471,this.deleteStatement();break;case 5:this.enterOuterAlt(e,5),this.state=7472,this.declareCursorStatement();break;case 6:this.enterOuterAlt(e,6),this.state=7473,this.createAsStatement();break;case 7:this.enterOuterAlt(e,7),this.state=7474,this.createMaterializedViewStatement();break;case 8:this.enterOuterAlt(e,8),this.state=7475,this.refreshMaterializedViewStatement();break;case 9:this.enterOuterAlt(e,9),this.state=7476,this.executeStatement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}explainOptionElement(){let e=new PS(this.context,this.state);this.enterRule(e,786,t.RULE_explainOptionElement);try{this.enterOuterAlt(e,1),this.state=7479,this.explainOptionName(),this.state=7480,this.explainOptionArgument()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}explainOptionName(){let e=new MS(this.context,this.state);this.enterRule(e,788,t.RULE_explainOptionName);try{switch(this.state=7484,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,1),this.state=7482,this.nonReservedWord();break;case t.ANALYSE:case t.ANALYZE:this.enterOuterAlt(e,2),this.state=7483,this.analyzeKeyword();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}explainOptionArgument(){let e=new dS(this.context,this.state);this.enterRule(e,790,t.RULE_explainOptionArgument);try{switch(this.state=7489,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FALSE_P:case t.FETCH:case t.ON:case t.TABLE:case t.TRUE_P:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:this.enterOuterAlt(e,1),this.state=7486,this.booleanOrString();break;case t.PLUS:case t.MINUS:case t.Integral:case t.Numeric:this.enterOuterAlt(e,2),this.state=7487,this.numericOnly();break;case t.CLOSE_PAREN:case t.COMMA:this.enterOuterAlt(e,3);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}prepareStatement(){let e=new US(this.context,this.state);this.enterRule(e,792,t.RULE_prepareStatement);try{this.enterOuterAlt(e,1),this.state=7491,this.match(t.PREPARE),this.state=7492,this.name(),this.state=7493,this.prepareTypeClause(),this.state=7494,this.match(t.AS),this.state=7495,this.preparableStatement()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}prepareTypeClause(){let e=new mS(this.context,this.state);this.enterRule(e,794,t.RULE_prepareTypeClause);try{switch(this.state=7502,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:this.enterOuterAlt(e,1),this.state=7497,this.match(t.OPEN_PAREN),this.state=7498,this.typeList(),this.state=7499,this.match(t.CLOSE_PAREN);break;case t.AS:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}preparableStatement(){let e=new DS(this.context,this.state);this.enterRule(e,796,t.RULE_preparableStatement);try{switch(this.state=7508,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,417,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7504,this.selectStatement();break;case 2:this.enterOuterAlt(e,2),this.state=7505,this.insertStatement();break;case 3:this.enterOuterAlt(e,3),this.state=7506,this.updateStatement();break;case 4:this.enterOuterAlt(e,4),this.state=7507,this.deleteStatement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}executeStatement(){let e=new pS(this.context,this.state);this.enterRule(e,798,t.RULE_executeStatement);try{switch(this.state=7537,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,418,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7510,this.match(t.EXECUTE),this.state=7511,this.name(),this.state=7512,this.executeParameterClause();break;case 2:this.enterOuterAlt(e,2),this.state=7514,this.match(t.CREATE),this.state=7515,this.temporaryOption(),this.state=7516,this.match(t.TABLE),this.state=7517,this.createAsTarget(),this.state=7518,this.match(t.AS),this.state=7519,this.match(t.EXECUTE),this.state=7520,this.name(),this.state=7521,this.executeParameterClause(),this.state=7522,this.withData();break;case 3:this.enterOuterAlt(e,3),this.state=7524,this.match(t.CREATE),this.state=7525,this.temporaryOption(),this.state=7526,this.match(t.TABLE),this.state=7527,this.match(t.IF_P),this.state=7528,this.match(t.NOT),this.state=7529,this.match(t.EXISTS),this.state=7530,this.createAsTarget(),this.state=7531,this.match(t.AS),this.state=7532,this.match(t.EXECUTE),this.state=7533,this.name(),this.state=7534,this.executeParameterClause(),this.state=7535,this.withData()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}executeParameterClause(){let e=new gS(this.context,this.state);this.enterRule(e,800,t.RULE_executeParameterClause);try{switch(this.state=7544,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:this.enterOuterAlt(e,1),this.state=7539,this.match(t.OPEN_PAREN),this.state=7540,this.expressionList(),this.state=7541,this.match(t.CLOSE_PAREN);break;case t.EOF:case t.SEMI:case t.INTO:case t.WITH:case t.LOOP:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}deallocateStatement(){let e=new xS(this.context,this.state);this.enterRule(e,802,t.RULE_deallocateStatement);try{switch(this.state=7556,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,420,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7546,this.match(t.DEALLOCATE),this.state=7547,this.name();break;case 2:this.enterOuterAlt(e,2),this.state=7548,this.match(t.DEALLOCATE),this.state=7549,this.match(t.PREPARE),this.state=7550,this.name();break;case 3:this.enterOuterAlt(e,3),this.state=7551,this.match(t.DEALLOCATE),this.state=7552,this.match(t.ALL);break;case 4:this.enterOuterAlt(e,4),this.state=7553,this.match(t.DEALLOCATE),this.state=7554,this.match(t.PREPARE),this.state=7555,this.match(t.ALL)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}insertStatement(){let e,s=new kS(this.context,this.state);this.enterRule(s,804,t.RULE_insertStatement);try{this.enterOuterAlt(s,1),this.state=7559,this.errorHandler.sync(this),e=this.tokenStream.LA(1),105===e&&(this.state=7558,this.withClause()),this.state=7561,this.match(t.INSERT),this.state=7562,this.match(t.INTO),this.state=7563,this.insertTarget(),this.state=7564,this.insertRest(),this.state=7565,this.optionalOnConflict(),this.state=7566,this.returningClause()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}insertTarget(){let e,s=new HS(this.context,this.state);this.enterRule(s,806,t.RULE_insertTarget);try{this.enterOuterAlt(s,1),this.state=7568,this.qualifiedName(),this.state=7571,this.errorHandler.sync(this),e=this.tokenStream.LA(1),36===e&&(this.state=7569,this.match(t.AS),this.state=7570,this.columnId())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}insertRest(){let e,s=new GS(this.context,this.state);this.enterRule(s,808,t.RULE_insertRest);try{switch(this.state=7592,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,424,this.context)){case 1:this.enterOuterAlt(s,1),this.state=7573,this.selectStatement();break;case 2:this.enterOuterAlt(s,2),this.state=7574,this.match(t.OVERRIDING),this.state=7575,this.overrideKind(),this.state=7576,this.match(t.VALUE_P),this.state=7577,this.selectStatement();break;case 3:this.enterOuterAlt(s,3),this.state=7579,this.match(t.OPEN_PAREN),this.state=7580,this.insertColumnList(),this.state=7581,this.match(t.CLOSE_PAREN),this.state=7586,this.errorHandler.sync(this),e=this.tokenStream.LA(1),463===e&&(this.state=7582,this.match(t.OVERRIDING),this.state=7583,this.overrideKind(),this.state=7584,this.match(t.VALUE_P)),this.state=7588,this.selectStatement();break;case 4:this.enterOuterAlt(s,4),this.state=7590,this.match(t.DEFAULT),this.state=7591,this.match(t.VALUES)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}overrideKind(){let e,s=new FS(this.context,this.state);this.enterRule(s,810,t.RULE_overrideKind);try{this.enterOuterAlt(s,1),this.state=7594,e=this.tokenStream.LA(1),99===e||342===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}insertColumnList(){let e,s=new vS(this.context,this.state);this.enterRule(s,812,t.RULE_insertColumnList);try{for(this.enterOuterAlt(s,1),this.state=7596,this.insertColumnItem(),this.state=7601,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=7597,this.match(t.COMMA),this.state=7598,this.insertColumnItem(),this.state=7603,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}insertColumnItem(){let e=new BS(this.context,this.state);this.enterRule(e,814,t.RULE_insertColumnItem);try{this.enterOuterAlt(e,1),this.state=7604,this.columnId(),this.state=7605,this.optionalIndirection()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalOnConflict(){let e=new yS(this.context,this.state);this.enterRule(e,816,t.RULE_optionalOnConflict);try{switch(this.state=7620,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ON:switch(this.enterOuterAlt(e,1),this.state=7607,this.match(t.ON),this.state=7608,this.match(t.CONFLICT),this.state=7609,this.optionalConflictExpr(),this.state=7610,this.match(t.DO),this.state=7617,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.UPDATE:this.state=7611,this.match(t.UPDATE),this.state=7612,this.match(t.SET),this.state=7613,this.setClauseList(),this.state=7614,this.whereClause();break;case t.NOTHING:this.state=7616,this.match(t.NOTHING);break;default:throw new Ei(this)}break;case t.EOF:case t.CLOSE_PAREN:case t.SEMI:case t.INTO:case t.RETURNING:case t.LOOP:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalConflictExpr(){let e=new fS(this.context,this.state);this.enterRule(e,818,t.RULE_optionalConflictExpr);try{switch(this.state=7631,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:this.enterOuterAlt(e,1),this.state=7622,this.match(t.OPEN_PAREN),this.state=7623,this.indexParameters(),this.state=7624,this.match(t.CLOSE_PAREN),this.state=7625,this.whereClause();break;case t.ON:this.enterOuterAlt(e,2),this.state=7627,this.match(t.ON),this.state=7628,this.match(t.CONSTRAINT),this.state=7629,this.constraintName();break;case t.DO:this.enterOuterAlt(e,3);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}returningClause(){let e=new YS(this.context,this.state);this.enterRule(e,820,t.RULE_returningClause);try{switch(this.state=7636,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.RETURNING:this.enterOuterAlt(e,1),this.state=7633,this.match(t.RETURNING),this.state=7634,this.targetList();break;case t.EOF:case t.CLOSE_PAREN:case t.SEMI:case t.INTO:case t.LOOP:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}mergeStatement(){let e,s=new wS(this.context,this.state);this.enterRule(s,822,t.RULE_mergeStatement);try{switch(this.enterOuterAlt(s,1),this.state=7638,this.match(t.MERGE),this.state=7640,this.errorHandler.sync(this),e=this.tokenStream.LA(1),71===e&&(this.state=7639,this.match(t.INTO)),this.state=7642,this.qualifiedName(),this.state=7644,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(e-33&-32)&&1<<e-33&286268429||!(e-92&-32)&&1<<e-92&2298478593||!(e-124&-32)&&1<<e-124&4294967269||!(e-156&-32)&&1<<e-156&4294967295||!(e-188&-32)&&1<<e-188&4294967295||!(e-220&-32)&&1<<e-220&3221225471||!(e-252&-32)&&1<<e-252&4294967293||!(e-284&-32)&&1<<e-284&4294967295||!(e-316&-32)&&1<<e-316&4294967295||!(e-348&-32)&&1<<e-348&4294967295||!(e-380&-32)&&1<<e-380&4294967295||!(e-412&-32)&&1<<e-412&4294967295||!(e-444&-32)&&1<<e-444&4026530815||!(e-476&-32)&&1<<e-476&3623878655||!(e-508&-32)&&1<<e-508&4294965247||!(e-540&-32)&&1<<e-540&4294967295||!(e-572&-32)&&1<<e-572&4294967295||!(e-604&-32)&&1<<e-604&4294967295||!(e-636&-32)&&1<<e-636&100663331)&&(this.state=7643,this.aliasClause()),this.state=7646,this.match(t.USING),this.state=7649,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:this.state=7647,this.selectWithParenthesis();break;case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.state=7648,this.qualifiedName();break;default:throw new Ei(this)}switch(this.state=7652,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(e-33&-32)&&1<<e-33&286268429||!(e-92&-32)&&1<<e-92&2298478593||!(e-124&-32)&&1<<e-124&4294967269||!(e-156&-32)&&1<<e-156&4294967295||!(e-188&-32)&&1<<e-188&4294967295||!(e-220&-32)&&1<<e-220&3221225471||!(e-252&-32)&&1<<e-252&4294967293||!(e-284&-32)&&1<<e-284&4294967295||!(e-316&-32)&&1<<e-316&4294967295||!(e-348&-32)&&1<<e-348&4294967295||!(e-380&-32)&&1<<e-380&4294967295||!(e-412&-32)&&1<<e-412&4294967295||!(e-444&-32)&&1<<e-444&4026530815||!(e-476&-32)&&1<<e-476&3623878655||!(e-508&-32)&&1<<e-508&4294965247||!(e-540&-32)&&1<<e-540&4294967295||!(e-572&-32)&&1<<e-572&4294967295||!(e-604&-32)&&1<<e-604&4294967295||!(e-636&-32)&&1<<e-636&100663331)&&(this.state=7651,this.aliasClause()),this.state=7654,this.match(t.ON),this.state=7655,this.expression1(),this.state=7664,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,436,this.context)){case 1:if(1===(this.state=7656,this.mergeInsertClause(),this.state=7658,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,434,this.context)))this.state=7657,this.mergeUpdateClause();break;case 2:if(1===(this.state=7660,this.mergeUpdateClause(),this.state=7662,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,435,this.context)))this.state=7661,this.mergeInsertClause()}this.state=7667,this.errorHandler.sync(this),e=this.tokenStream.LA(1),102===e&&(this.state=7666,this.mergeDeleteClause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}mergeInsertClause(){let e,s=new bS(this.context,this.state);this.enterRule(s,824,t.RULE_mergeInsertClause);try{this.enterOuterAlt(s,1),this.state=7669,this.match(t.WHEN),this.state=7670,this.match(t.NOT),this.state=7671,this.match(t.MATCHED),this.state=7674,this.errorHandler.sync(this),e=this.tokenStream.LA(1),33===e&&(this.state=7672,this.match(t.AND),this.state=7673,this.expression1()),this.state=7677,this.errorHandler.sync(this),e=this.tokenStream.LA(1),93===e&&(this.state=7676,this.match(t.THEN)),this.state=7679,this.match(t.INSERT),this.state=7684,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e&&(this.state=7680,this.match(t.OPEN_PAREN),this.state=7681,this.insertColumnList(),this.state=7682,this.match(t.CLOSE_PAREN)),this.state=7686,this.valuesClause()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}mergeUpdateClause(){let e,s=new WS(this.context,this.state);this.enterRule(s,826,t.RULE_mergeUpdateClause);try{this.enterOuterAlt(s,1),this.state=7688,this.match(t.WHEN),this.state=7689,this.match(t.MATCHED),this.state=7692,this.errorHandler.sync(this),e=this.tokenStream.LA(1),33===e&&(this.state=7690,this.match(t.AND),this.state=7691,this.expression1()),this.state=7695,this.errorHandler.sync(this),e=this.tokenStream.LA(1),93===e&&(this.state=7694,this.match(t.THEN)),this.state=7697,this.match(t.UPDATE),this.state=7698,this.match(t.SET),this.state=7699,this.setClauseList()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}mergeDeleteClause(){let e,s=new VS(this.context,this.state);this.enterRule(s,828,t.RULE_mergeDeleteClause);try{this.enterOuterAlt(s,1),this.state=7701,this.match(t.WHEN),this.state=7702,this.match(t.MATCHED),this.state=7704,this.errorHandler.sync(this),e=this.tokenStream.LA(1),93===e&&(this.state=7703,this.match(t.THEN)),this.state=7706,this.match(t.DELETE_P)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}deleteStatement(){let e,s=new XS(this.context,this.state);this.enterRule(s,830,t.RULE_deleteStatement);try{this.enterOuterAlt(s,1),this.state=7709,this.errorHandler.sync(this),e=this.tokenStream.LA(1),105===e&&(this.state=7708,this.withClause()),this.state=7711,this.match(t.DELETE_P),this.state=7712,this.match(t.FROM),this.state=7713,this.relationExpressionOptionalAlias(),this.state=7714,this.usingClause(),this.state=7715,this.whereOrCurrentClause(),this.state=7716,this.returningClause()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}usingClause(){let e=new KS(this.context,this.state);this.enterRule(e,832,t.RULE_usingClause);try{switch(this.state=7721,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.USING:this.enterOuterAlt(e,1),this.state=7718,this.match(t.USING),this.state=7719,this.fromList();break;case t.EOF:case t.CLOSE_PAREN:case t.SEMI:case t.INTO:case t.RETURNING:case t.WHERE:case t.LOOP:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}lockStatement(){let e=new QS(this.context,this.state);this.enterRule(e,834,t.RULE_lockStatement);try{this.enterOuterAlt(e,1),this.state=7723,this.match(t.LOCK_P),this.state=7724,this.optionalTable(),this.state=7725,this.relationExpressionList(),this.state=7726,this.optionalLock(),this.state=7727,this.optionalNowait()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalLock(){let e=new JS(this.context,this.state);this.enterRule(e,836,t.RULE_optionalLock);try{switch(this.state=7734,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.IN_P:this.enterOuterAlt(e,1),this.state=7729,this.match(t.IN_P),this.state=7730,this.lockType(),this.state=7731,this.match(t.MODE);break;case t.EOF:case t.SEMI:case t.INTO:case t.NOWAIT:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}lockType(){let e,s=new ZS(this.context,this.state);this.enterRule(s,838,t.RULE_lockType);try{switch(this.state=7748,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ACCESS:this.enterOuterAlt(s,1),this.state=7736,this.match(t.ACCESS),this.state=7737,e=this.tokenStream.LA(1),201===e||327===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case t.ROW:this.enterOuterAlt(s,2),this.state=7738,this.match(t.ROW),this.state=7739,e=this.tokenStream.LA(1),201===e||327===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case t.SHARE:switch(this.enterOuterAlt(s,3),this.state=7740,this.match(t.SHARE),this.state=7745,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.UPDATE:this.state=7741,this.match(t.UPDATE),this.state=7742,this.match(t.EXCLUSIVE);break;case t.ROW:this.state=7743,this.match(t.ROW),this.state=7744,this.match(t.EXCLUSIVE);case t.MODE:}break;case t.EXCLUSIVE:this.enterOuterAlt(s,4),this.state=7747,this.match(t.EXCLUSIVE);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalNowait(){let e=new qS(this.context,this.state);this.enterRule(e,840,t.RULE_optionalNowait);try{switch(this.state=7752,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NOWAIT:this.enterOuterAlt(e,1),this.state=7750,this.match(t.NOWAIT);break;case t.EOF:case t.SEMI:case t.INTO:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalNowaitOrSkip(){let e=new jS(this.context,this.state);this.enterRule(e,842,t.RULE_optionalNowaitOrSkip);try{switch(this.state=7758,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NOWAIT:this.enterOuterAlt(e,1),this.state=7754,this.match(t.NOWAIT);break;case t.SKIP_P:this.enterOuterAlt(e,2),this.state=7755,this.match(t.SKIP_P),this.state=7756,this.match(t.LOCKED);break;case t.EOF:case t.CLOSE_PAREN:case t.SEMI:case t.CREATE:case t.FETCH:case t.FOR:case t.GRANT:case t.INTO:case t.LIMIT:case t.OFFSET:case t.ON:case t.RETURNING:case t.WITH:case t.LOOP:this.enterOuterAlt(e,3);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}updateStatement(){let e,s=new zS(this.context,this.state);this.enterRule(s,844,t.RULE_updateStatement);try{this.enterOuterAlt(s,1),this.state=7761,this.errorHandler.sync(this),e=this.tokenStream.LA(1),105===e&&(this.state=7760,this.withClause()),this.state=7763,this.match(t.UPDATE),this.state=7764,this.relationExpressionOptionalAlias(),this.state=7765,this.match(t.SET),this.state=7766,this.setClauseList(),this.state=7767,this.fromClause(),this.state=7768,this.whereOrCurrentClause(),this.state=7769,this.returningClause()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}setClauseList(){let e,s=new $S(this.context,this.state);this.enterRule(s,846,t.RULE_setClauseList);try{for(this.enterOuterAlt(s,1),this.state=7771,this.setClause(),this.state=7776,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=7772,this.match(t.COMMA),this.state=7773,this.setClause(),this.state=7778,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}setClause(){let e,s=new tl(this.context,this.state);this.enterRule(s,848,t.RULE_setClause);try{switch(this.state=7796,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(s,1),this.state=7779,this.setTarget(),this.state=7780,this.match(t.EQUAL),this.state=7781,this.expression1();break;case t.OPEN_PAREN:for(this.enterOuterAlt(s,2),this.state=7783,this.match(t.OPEN_PAREN),this.state=7784,this.setTarget(),this.state=7789,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=7785,this.match(t.COMMA),this.state=7786,this.setTarget(),this.state=7791,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=7792,this.match(t.CLOSE_PAREN),this.state=7793,this.match(t.EQUAL),this.state=7794,this.expression1();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}setTarget(){let e=new el(this.context,this.state);this.enterRule(e,850,t.RULE_setTarget);try{this.enterOuterAlt(e,1),this.state=7798,this.columnId(),this.state=7799,this.optionalIndirection()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareCursorStatement(){let e,s=new sl(this.context,this.state);this.enterRule(s,852,t.RULE_declareCursorStatement);try{for(this.enterOuterAlt(s,1),this.state=7801,this.match(t.DECLARE),this.state=7802,this.cursorName(),this.state=7810,this.errorHandler.sync(this),e=this.tokenStream.LA(1);107===e||231===e||262===e||317===e;){switch(this.state=7808,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NO:this.state=7803,this.match(t.NO),this.state=7804,this.match(t.SCROLL);break;case t.SCROLL:this.state=7805,this.match(t.SCROLL);break;case t.BINARY:this.state=7806,this.match(t.BINARY);break;case t.INSENSITIVE:this.state=7807,this.match(t.INSENSITIVE);break;default:throw new Ei(this)}this.state=7812,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}this.state=7813,this.match(t.CURSOR),this.state=7814,this.optionalHold(),this.state=7815,this.match(t.FOR),this.state=7816,this.selectStatement()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}cursorName(){let e=new al(this.context,this.state);this.enterRule(e,854,t.RULE_cursorName);try{this.enterOuterAlt(e,1),this.state=7818,this.name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalHold(){let e=new rl(this.context,this.state);this.enterRule(e,856,t.RULE_optionalHold);try{switch(this.state=7825,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FOR:this.enterOuterAlt(e,1);break;case t.WITH:this.enterOuterAlt(e,2),this.state=7821,this.match(t.WITH),this.state=7822,this.match(t.HOLD);break;case t.WITHOUT:this.enterOuterAlt(e,3),this.state=7823,this.match(t.WITHOUT),this.state=7824,this.match(t.HOLD);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}selectStatement(){let e=new il(this.context,this.state);this.enterRule(e,858,t.RULE_selectStatement);try{switch(this.state=7829,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,458,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7827,this.selectWithoutParenthesis();break;case 2:this.enterOuterAlt(e,2),this.state=7828,this.selectWithParenthesis()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}selectWithParenthesis(){let e=new cl(this.context,this.state);this.enterRule(e,860,t.RULE_selectWithParenthesis);try{switch(this.state=7839,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,459,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7831,this.match(t.OPEN_PAREN),this.state=7832,this.selectWithoutParenthesis(),this.state=7833,this.match(t.CLOSE_PAREN);break;case 2:this.enterOuterAlt(e,2),this.state=7835,this.match(t.OPEN_PAREN),this.state=7836,this.selectWithParenthesis(),this.state=7837,this.match(t.CLOSE_PAREN)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}selectWithoutParenthesis(){let e,s=new nl(this.context,this.state);this.enterRule(s,862,t.RULE_selectWithoutParenthesis);try{switch(this.state=7864,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:case t.SELECT:case t.TABLE:case t.VALUES:switch(this.enterOuterAlt(s,1),this.state=7841,this.selectClause(),this.state=7842,this.optionalSortClause(),this.state=7850,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FOR:this.state=7843,this.forLockingClause(),this.state=7844,this.optionalSelectLimit();break;case t.FETCH:case t.LIMIT:case t.OFFSET:this.state=7846,this.selectLimit(),this.state=7848,this.errorHandler.sync(this),e=this.tokenStream.LA(1),62===e&&(this.state=7847,this.forLockingClause());case t.EOF:case t.CLOSE_PAREN:case t.SEMI:case t.CREATE:case t.GRANT:case t.INTO:case t.ON:case t.RETURNING:case t.WITH:case t.LOOP:}break;case t.WITH:switch(this.enterOuterAlt(s,2),this.state=7852,this.withClause(),this.state=7853,this.selectClause(),this.state=7854,this.optionalSortClause(),this.state=7862,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FOR:this.state=7855,this.forLockingClause(),this.state=7856,this.optionalSelectLimit();break;case t.FETCH:case t.LIMIT:case t.OFFSET:this.state=7858,this.selectLimit(),this.state=7860,this.errorHandler.sync(this),e=this.tokenStream.LA(1),62===e&&(this.state=7859,this.forLockingClause());case t.EOF:case t.CLOSE_PAREN:case t.SEMI:case t.CREATE:case t.GRANT:case t.INTO:case t.ON:case t.RETURNING:case t.WITH:case t.LOOP:}break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}selectClause(){let e,s=new hl(this.context,this.state);this.enterRule(s,864,t.RULE_selectClause);try{for(this.enterOuterAlt(s,1),this.state=7866,this.simpleSelectIntersect(),this.state=7873,this.errorHandler.sync(this),e=this.tokenStream.LA(1);59===e||97===e;)this.state=7867,e=this.tokenStream.LA(1),59===e||97===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=7868,this.allOrDistinct(),this.state=7869,this.simpleSelectIntersect(),this.state=7875,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}simpleSelectIntersect(){let e,s=new El(this.context,this.state);this.enterRule(s,866,t.RULE_simpleSelectIntersect);try{for(this.enterOuterAlt(s,1),this.state=7876,this.simpleSelectPramary(),this.state=7883,this.errorHandler.sync(this),e=this.tokenStream.LA(1);70===e;)this.state=7877,this.match(t.INTERSECT),this.state=7878,this.allOrDistinct(),this.state=7879,this.simpleSelectPramary(),this.state=7885,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}simpleSelectStart(){let e=new Tl(this.context,this.state);this.enterRule(e,868,t.RULE_simpleSelectStart);try{switch(this.state=7901,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:case t.STAR:case t.PLUS:case t.MINUS:case t.PARAM:case t.Operator:case t.AND:case t.ARRAY:case t.CASE:case t.CAST:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CURRENT_CATALOG:case t.CURRENT_DATE:case t.CURRENT_ROLE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.CURRENT_USER:case t.DEFAULT:case t.DO:case t.FALSE_P:case t.FETCH:case t.LOCALTIME:case t.LOCALTIMESTAMP:case t.NOT:case t.NULL_P:case t.SESSION_USER:case t.TABLE:case t.TRUE_P:case t.UNIQUE:case t.USER:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LEFT:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.RIGHT:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.BinaryStringConstant:case t.HexadecimalStringConstant:case t.Integral:case t.Numeric:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:if(1===(this.enterOuterAlt(e,1),this.state=7886,this.targetList(),this.state=7888,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,467,this.context)))this.state=7887,this.intoClause();break;case t.ALL:if(1===(this.enterOuterAlt(e,2),this.state=7890,this.allClause(),this.state=7891,this.optionalTargetList(),this.state=7893,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,468,this.context)))this.state=7892,this.intoClause();break;case t.DISTINCT:if(1===(this.enterOuterAlt(e,3),this.state=7895,this.distinctClause(),this.state=7896,this.targetList(),this.state=7898,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,469,this.context)))this.state=7897,this.intoClause();break;case t.INTO:this.enterOuterAlt(e,4),this.state=7900,this.intoClause();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}simpleSelectPramary(){let e=new ol(this.context,this.state);this.enterRule(e,870,t.RULE_simpleSelectPramary);try{switch(this.state=7915,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SELECT:this.enterOuterAlt(e,1),this.state=7903,this.match(t.SELECT),this.state=7904,this.simpleSelectStart(),this.state=7905,this.fromClause(),this.state=7906,this.whereClause(),this.state=7907,this.groupClause(),this.state=7908,this.havingClause(),this.state=7909,this.windowClause();break;case t.VALUES:this.enterOuterAlt(e,2),this.state=7911,this.valuesClause();break;case t.TABLE:this.enterOuterAlt(e,3),this.state=7912,this.match(t.TABLE),this.state=7913,this.relationExpression();break;case t.OPEN_PAREN:this.enterOuterAlt(e,4),this.state=7914,this.selectWithParenthesis();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}withClause(){let e,s=new Rl(this.context,this.state);this.enterRule(s,872,t.RULE_withClause);try{if(this.enterOuterAlt(s,1),1===(this.state=7917,this.match(t.WITH),this.state=7919,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,472,this.context)))this.state=7918,this.match(t.RECURSIVE);for(this.state=7921,this.commonTableExpression(),this.state=7926,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=7922,this.match(t.COMMA),this.state=7923,this.commonTableExpression(),this.state=7928,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}commonTableExpression(){let e=new Al(this.context,this.state);this.enterRule(e,874,t.RULE_commonTableExpression);try{this.enterOuterAlt(e,1),this.state=7929,this.name(),this.state=7930,this.optionalNameList(),this.state=7931,this.match(t.AS),this.state=7932,this.optionalMaterialized(),this.state=7933,this.match(t.OPEN_PAREN),this.state=7934,this.preparableStatement(),this.state=7935,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalMaterialized(){let e=new Sl(this.context,this.state);this.enterRule(e,876,t.RULE_optionalMaterialized);try{switch(this.state=7941,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.MATERIALIZED:this.enterOuterAlt(e,1),this.state=7937,this.match(t.MATERIALIZED);break;case t.NOT:this.enterOuterAlt(e,2),this.state=7938,this.match(t.NOT),this.state=7939,this.match(t.MATERIALIZED);break;case t.OPEN_PAREN:this.enterOuterAlt(e,3);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}intoClause(){let e=new ll(this.context,this.state);this.enterRule(e,878,t.RULE_intoClause);try{switch(this.enterOuterAlt(e,1),this.state=7943,this.match(t.INTO),this.state=7949,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,476,this.context)){case 1:if(1===(this.state=7945,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,475,this.context)))this.state=7944,this.match(t.STRICT_P);this.state=7947,this.optionalTemporaryTableName();break;case 2:this.state=7948,this.intoTarget()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalTemporaryTableName(){let e,s=new Ol(this.context,this.state);this.enterRule(s,880,t.RULE_optionalTemporaryTableName);try{switch(this.state=7965,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,478,this.context)){case 1:this.enterOuterAlt(s,1),this.state=7952,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(213===e||245===e)&&(this.state=7951,e=this.tokenStream.LA(1),213===e||245===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=7954,e=this.tokenStream.LA(1),345===e||347===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=7955,this.optionalTable(),this.state=7956,this.qualifiedName();break;case 2:this.enterOuterAlt(s,2),this.state=7958,this.match(t.UNLOGGED),this.state=7959,this.optionalTable(),this.state=7960,this.qualifiedName();break;case 3:this.enterOuterAlt(s,3),this.state=7962,this.match(t.TABLE),this.state=7963,this.qualifiedName();break;case 4:this.enterOuterAlt(s,4),this.state=7964,this.qualifiedName()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalTable(){let e=new Il(this.context,this.state);this.enterRule(e,882,t.RULE_optionalTable);try{switch(this.state=7969,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,479,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7967,this.match(t.TABLE);break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}allOrDistinct(){let e=new ul(this.context,this.state);this.enterRule(e,884,t.RULE_allOrDistinct);try{switch(this.state=7974,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ALL:this.enterOuterAlt(e,1),this.state=7971,this.match(t.ALL);break;case t.DISTINCT:this.enterOuterAlt(e,2),this.state=7972,this.match(t.DISTINCT);break;case t.OPEN_PAREN:case t.SELECT:case t.TABLE:case t.VALUES:this.enterOuterAlt(e,3);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}distinctClause(){let e,s=new Nl(this.context,this.state);this.enterRule(s,886,t.RULE_distinctClause);try{this.enterOuterAlt(s,1),this.state=7976,this.match(t.DISTINCT),this.state=7982,this.errorHandler.sync(this),e=this.tokenStream.LA(1),80===e&&(this.state=7977,this.match(t.ON),this.state=7978,this.match(t.OPEN_PAREN),this.state=7979,this.expressionList(),this.state=7980,this.match(t.CLOSE_PAREN))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}allClause(){let e=new Ll(this.context,this.state);this.enterRule(e,888,t.RULE_allClause);try{this.enterOuterAlt(e,1),this.state=7984,this.match(t.ALL)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalSortClause(){let e=new Cl(this.context,this.state);this.enterRule(e,890,t.RULE_optionalSortClause);try{switch(this.state=7988,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ORDER:this.enterOuterAlt(e,1),this.state=7986,this.sortClause();break;case t.EOF:case t.CLOSE_PAREN:case t.SEMI:case t.CREATE:case t.FETCH:case t.FOR:case t.GRANT:case t.INTO:case t.LIMIT:case t.OFFSET:case t.ON:case t.RETURNING:case t.WITH:case t.RANGE:case t.ROWS:case t.GROUPS:case t.LOOP:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}sortClause(){let e=new _l(this.context,this.state);this.enterRule(e,892,t.RULE_sortClause);try{this.enterOuterAlt(e,1),this.state=7990,this.match(t.ORDER),this.state=7991,this.match(t.BY),this.state=7992,this.sortByList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}sortByList(){let e,s=new Pl(this.context,this.state);this.enterRule(s,894,t.RULE_sortByList);try{for(this.enterOuterAlt(s,1),this.state=7994,this.sortBy(),this.state=7999,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=7995,this.match(t.COMMA),this.state=7996,this.sortBy(),this.state=8001,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}sortBy(){let e=new Ml(this.context,this.state);this.enterRule(e,896,t.RULE_sortBy);try{switch(this.enterOuterAlt(e,1),this.state=8002,this.expression1(),this.state=8006,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.USING:this.state=8003,this.match(t.USING),this.state=8004,this.allOperatorQualifier();break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.ASC:case t.CREATE:case t.DESC:case t.FETCH:case t.FOR:case t.GRANT:case t.INTO:case t.LIMIT:case t.OFFSET:case t.ON:case t.RETURNING:case t.WITH:case t.NULLS_P:case t.RANGE:case t.ROWS:case t.GROUPS:case t.LOOP:this.state=8005,this.optionalAscOrDesc();break;default:throw new Ei(this)}this.state=8008,this.optionalNullsOrder()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}selectLimit(){let e,s=new dl(this.context,this.state);this.enterRule(s,898,t.RULE_selectLimit);try{switch(this.state=8018,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FETCH:case t.LIMIT:this.enterOuterAlt(s,1),this.state=8010,this.limitClause(),this.state=8012,this.errorHandler.sync(this),e=this.tokenStream.LA(1),79===e&&(this.state=8011,this.offsetClause());break;case t.OFFSET:this.enterOuterAlt(s,2),this.state=8014,this.offsetClause(),this.state=8016,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(61===e||74===e)&&(this.state=8015,this.limitClause());break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalSelectLimit(){let e=new Ul(this.context,this.state);this.enterRule(e,900,t.RULE_optionalSelectLimit);try{switch(this.state=8022,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FETCH:case t.LIMIT:case t.OFFSET:this.enterOuterAlt(e,1),this.state=8020,this.selectLimit();break;case t.EOF:case t.CLOSE_PAREN:case t.SEMI:case t.CREATE:case t.GRANT:case t.INTO:case t.ON:case t.RETURNING:case t.WITH:case t.LOOP:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}limitClause(){let e,s=new ml(this.context,this.state);this.enterRule(s,902,t.RULE_limitClause);try{switch(this.state=8047,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LIMIT:this.enterOuterAlt(s,1),this.state=8024,this.match(t.LIMIT),this.state=8025,this.selectLimitValue(),this.state=8028,this.errorHandler.sync(this),e=this.tokenStream.LA(1),6===e&&(this.state=8026,this.match(t.COMMA),this.state=8027,this.selectOffsetValue());break;case t.FETCH:switch(this.enterOuterAlt(s,2),this.state=8030,this.match(t.FETCH),this.state=8031,this.firstOrNext(),this.state=8045,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,492,this.context)){case 1:switch(this.state=8032,this.selectFetchFirstValue(),this.state=8033,this.rowOrRows(),this.state=8037,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ONLY:this.state=8034,this.match(t.ONLY);break;case t.WITH:this.state=8035,this.match(t.WITH),this.state=8036,this.match(t.TIES);break;default:throw new Ei(this)}break;case 2:switch(this.state=8039,this.rowOrRows(),this.state=8043,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ONLY:this.state=8040,this.match(t.ONLY);break;case t.WITH:this.state=8041,this.match(t.WITH),this.state=8042,this.match(t.TIES);break;default:throw new Ei(this)}}break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}offsetClause(){let e=new Dl(this.context,this.state);this.enterRule(e,904,t.RULE_offsetClause);try{switch(this.enterOuterAlt(e,1),this.state=8049,this.match(t.OFFSET),this.state=8054,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,494,this.context)){case 1:this.state=8050,this.selectOffsetValue();break;case 2:this.state=8051,this.selectFetchFirstValue(),this.state=8052,this.rowOrRows()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}selectLimitValue(){let e=new pl(this.context,this.state);this.enterRule(e,906,t.RULE_selectLimitValue);try{switch(this.state=8058,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:case t.PLUS:case t.MINUS:case t.PARAM:case t.Operator:case t.AND:case t.ARRAY:case t.CASE:case t.CAST:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CURRENT_CATALOG:case t.CURRENT_DATE:case t.CURRENT_ROLE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.CURRENT_USER:case t.DEFAULT:case t.DO:case t.FALSE_P:case t.FETCH:case t.LOCALTIME:case t.LOCALTIMESTAMP:case t.NOT:case t.NULL_P:case t.SESSION_USER:case t.TABLE:case t.TRUE_P:case t.UNIQUE:case t.USER:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LEFT:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.RIGHT:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.BinaryStringConstant:case t.HexadecimalStringConstant:case t.Integral:case t.Numeric:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:this.enterOuterAlt(e,1),this.state=8056,this.expression1();break;case t.ALL:this.enterOuterAlt(e,2),this.state=8057,this.match(t.ALL);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}selectOffsetValue(){let e=new gl(this.context,this.state);this.enterRule(e,908,t.RULE_selectOffsetValue);try{this.enterOuterAlt(e,1),this.state=8060,this.expression1()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}selectFetchFirstValue(){let e=new xl(this.context,this.state);this.enterRule(e,910,t.RULE_selectFetchFirstValue);try{switch(this.state=8067,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:case t.PARAM:case t.AND:case t.ARRAY:case t.CASE:case t.CAST:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CURRENT_CATALOG:case t.CURRENT_DATE:case t.CURRENT_ROLE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.CURRENT_USER:case t.DEFAULT:case t.DO:case t.FALSE_P:case t.FETCH:case t.LOCALTIME:case t.LOCALTIMESTAMP:case t.NULL_P:case t.SESSION_USER:case t.TABLE:case t.TRUE_P:case t.UNIQUE:case t.USER:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LEFT:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.RIGHT:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.BinaryStringConstant:case t.HexadecimalStringConstant:case t.Integral:case t.Numeric:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:this.enterOuterAlt(e,1),this.state=8062,this.expression3();break;case t.PLUS:this.enterOuterAlt(e,2),this.state=8063,this.match(t.PLUS),this.state=8064,this.anyConst();break;case t.MINUS:this.enterOuterAlt(e,3),this.state=8065,this.match(t.MINUS),this.state=8066,this.anyConst();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}anyConst(){let e=new kl(this.context,this.state);this.enterRule(e,912,t.RULE_anyConst);try{switch(this.state=8071,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.Integral:this.enterOuterAlt(e,1),this.state=8069,this.iconst();break;case t.Numeric:this.enterOuterAlt(e,2),this.state=8070,this.fconst();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}rowOrRows(){let e,s=new Hl(this.context,this.state);this.enterRule(s,914,t.RULE_rowOrRows);try{this.enterOuterAlt(s,1),this.state=8073,e=this.tokenStream.LA(1),313===e||407===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}firstOrNext(){let e,s=new Gl(this.context,this.state);this.enterRule(s,916,t.RULE_firstOrNext);try{this.enterOuterAlt(s,1),this.state=8075,e=this.tokenStream.LA(1),207===e||261===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}groupClause(){let e=new Fl(this.context,this.state);this.enterRule(e,918,t.RULE_groupClause);try{switch(this.state=8081,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.GROUP_P:this.enterOuterAlt(e,1),this.state=8077,this.match(t.GROUP_P),this.state=8078,this.match(t.BY),this.state=8079,this.groupByList();break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.CREATE:case t.EXCEPT:case t.FETCH:case t.FOR:case t.GRANT:case t.HAVING:case t.INTERSECT:case t.INTO:case t.LIMIT:case t.OFFSET:case t.ON:case t.ORDER:case t.RETURNING:case t.THEN:case t.UNION:case t.USING:case t.WHEN:case t.WINDOW:case t.WITH:case t.LOOP:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}groupByList(){let e=new vl(this.context,this.state);this.enterRule(e,920,t.RULE_groupByList);try{let s;for(this.enterOuterAlt(e,1),this.state=8083,this.groupByItem(),this.state=8088,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,499,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=8084,this.match(t.COMMA),this.state=8085,this.groupByItem()),this.state=8090,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,499,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}groupByItem(){let e=new Bl(this.context,this.state);this.enterRule(e,922,t.RULE_groupByItem);try{switch(this.state=8110,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,500,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8091,this.expression1();break;case 2:this.enterOuterAlt(e,2),this.state=8092,this.match(t.OPEN_PAREN),this.state=8093,this.match(t.CLOSE_PAREN);break;case 3:this.enterOuterAlt(e,3),this.state=8094,this.match(t.CUBE),this.state=8095,this.match(t.OPEN_PAREN),this.state=8096,this.expressionList(),this.state=8097,this.match(t.CLOSE_PAREN);break;case 4:this.enterOuterAlt(e,4),this.state=8099,this.match(t.ROLLUP),this.state=8100,this.match(t.OPEN_PAREN),this.state=8101,this.expressionList(),this.state=8102,this.match(t.CLOSE_PAREN);break;case 5:this.enterOuterAlt(e,5),this.state=8104,this.match(t.GROUPING),this.state=8105,this.match(t.SETS),this.state=8106,this.match(t.OPEN_PAREN),this.state=8107,this.groupByList(),this.state=8108,this.match(t.CLOSE_PAREN)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}havingClause(){let e=new yl(this.context,this.state);this.enterRule(e,924,t.RULE_havingClause);try{switch(this.state=8115,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.HAVING:this.enterOuterAlt(e,1),this.state=8112,this.match(t.HAVING),this.state=8113,this.expression1();break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.CREATE:case t.EXCEPT:case t.FETCH:case t.FOR:case t.GRANT:case t.INTERSECT:case t.INTO:case t.LIMIT:case t.OFFSET:case t.ON:case t.ORDER:case t.RETURNING:case t.THEN:case t.UNION:case t.USING:case t.WHEN:case t.WINDOW:case t.WITH:case t.LOOP:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}forLockingClause(){let e,s=new fl(this.context,this.state);this.enterRule(s,926,t.RULE_forLockingClause);try{switch(this.state=8125,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,503,this.context)){case 1:this.enterOuterAlt(s,1),this.state=8118,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=8117,this.forLockingItem(),this.state=8120,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(62===e);break;case 2:this.enterOuterAlt(s,2),this.state=8122,this.match(t.FOR),this.state=8123,this.match(t.READ),this.state=8124,this.match(t.ONLY)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}forLockingItem(){let e=new Yl(this.context,this.state);this.enterRule(e,928,t.RULE_forLockingItem);try{this.enterOuterAlt(e,1),this.state=8127,this.forLockingStrength(),this.state=8128,this.lockedRelationsList(),this.state=8129,this.optionalNowaitOrSkip()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}forLockingStrength(){let e,s=new wl(this.context,this.state);this.enterRule(s,930,t.RULE_forLockingStrength);try{switch(this.enterOuterAlt(s,1),this.state=8131,this.match(t.FOR),this.state=8141,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NO:case t.UPDATE:this.state=8134,this.errorHandler.sync(this),e=this.tokenStream.LA(1),262===e&&(this.state=8132,this.match(t.NO),this.state=8133,this.match(t.KEY)),this.state=8136,this.match(t.UPDATE);break;case t.KEY:case t.SHARE:this.state=8138,this.errorHandler.sync(this),e=this.tokenStream.LA(1),236===e&&(this.state=8137,this.match(t.KEY)),this.state=8140,this.match(t.SHARE);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}lockedRelationsList(){let e=new bl(this.context,this.state);this.enterRule(e,932,t.RULE_lockedRelationsList);try{switch(this.state=8146,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OF:this.enterOuterAlt(e,1),this.state=8143,this.match(t.OF),this.state=8144,this.qualifiedNameList();break;case t.EOF:case t.CLOSE_PAREN:case t.SEMI:case t.CREATE:case t.FETCH:case t.FOR:case t.GRANT:case t.INTO:case t.LIMIT:case t.OFFSET:case t.ON:case t.RETURNING:case t.WITH:case t.NOWAIT:case t.SKIP_P:case t.LOOP:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}valuesClause(){let e,s=new Wl(this.context,this.state);this.enterRule(s,934,t.RULE_valuesClause);try{for(this.enterOuterAlt(s,1),this.state=8148,this.match(t.VALUES),this.state=8149,this.match(t.OPEN_PAREN),this.state=8150,this.expressionList(),this.state=8151,this.match(t.CLOSE_PAREN),this.state=8159,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=8152,this.match(t.COMMA),this.state=8153,this.match(t.OPEN_PAREN),this.state=8154,this.expressionList(),this.state=8155,this.match(t.CLOSE_PAREN),this.state=8161,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}fromClause(){let e=new Vl(this.context,this.state);this.enterRule(e,936,t.RULE_fromClause);try{switch(this.state=8165,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FROM:this.enterOuterAlt(e,1),this.state=8162,this.match(t.FROM),this.state=8163,this.fromList();break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.CREATE:case t.EXCEPT:case t.FETCH:case t.FOR:case t.GRANT:case t.GROUP_P:case t.HAVING:case t.INTERSECT:case t.INTO:case t.LIMIT:case t.OFFSET:case t.ON:case t.ORDER:case t.RETURNING:case t.THEN:case t.UNION:case t.USING:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.LOOP:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}fromList(){let e=new Xl(this.context,this.state);this.enterRule(e,938,t.RULE_fromList);try{let s;switch(this.state=8176,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,511,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8167,this.nonAnsiJoin();break;case 2:for(this.enterOuterAlt(e,2),this.state=8168,this.tableReference(),this.state=8173,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,510,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=8169,this.match(t.COMMA),this.state=8170,this.tableReference()),this.state=8175,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,510,this.context)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}nonAnsiJoin(){let e=new Kl(this.context,this.state);this.enterRule(e,940,t.RULE_nonAnsiJoin);try{let s;this.enterOuterAlt(e,1),this.state=8178,this.tableReference(),this.state=8181,this.errorHandler.sync(this),s=1;do{if(1!==s)throw new Ei(this);this.state=8179,this.match(t.COMMA),this.state=8180,this.tableReference(),this.state=8183,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,512,this.context)}while(2!==s&&s!==ja.INVALID_ALT_NUMBER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableReference(){let e,s=new Ql(this.context,this.state);this.enterRule(s,942,t.RULE_tableReference);try{let a;switch(this.enterOuterAlt(s,1),this.state=8234,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,518,this.context)){case 1:this.state=8185,this.relationExpression(),this.state=8186,this.optionalAliasClause(),this.state=8188,this.errorHandler.sync(this),e=this.tokenStream.LA(1),472===e&&(this.state=8187,this.tableSampleClause());break;case 2:this.state=8190,this.functionTable(),this.state=8191,this.functionAliasClause();break;case 3:this.state=8193,this.xmlTable(),this.state=8194,this.optionalAliasClause();break;case 4:this.state=8196,this.selectWithParenthesis(),this.state=8197,this.optionalAliasClause();break;case 5:switch(this.state=8199,this.match(t.LATERAL_P),this.state=8209,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,514,this.context)){case 1:this.state=8200,this.xmlTable(),this.state=8201,this.optionalAliasClause();break;case 2:this.state=8203,this.functionTable(),this.state=8204,this.functionAliasClause();break;case 3:this.state=8206,this.selectWithParenthesis(),this.state=8207,this.optionalAliasClause()}break;case 6:switch(this.state=8211,this.match(t.OPEN_PAREN),this.state=8212,this.tableReference(),this.state=8229,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CROSS:this.state=8213,this.match(t.CROSS),this.state=8214,this.match(t.JOIN),this.state=8215,this.tableReference();break;case t.NATURAL:this.state=8216,this.match(t.NATURAL),this.state=8218,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-113&-32)&&1<<e-113&8261&&(this.state=8217,this.joinType()),this.state=8220,this.match(t.JOIN),this.state=8221,this.tableReference();break;case t.FULL:case t.INNER_P:case t.JOIN:case t.LEFT:case t.RIGHT:this.state=8223,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-113&-32)&&1<<e-113&8261&&(this.state=8222,this.joinType()),this.state=8225,this.match(t.JOIN),this.state=8226,this.tableReference(),this.state=8227,this.joinQualifier();case t.CLOSE_PAREN:}this.state=8231,this.match(t.CLOSE_PAREN),this.state=8232,this.optionalAliasClause()}for(this.state=8254,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,522,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;){if(1===a)switch(this.state=8252,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CROSS:this.state=8236,this.match(t.CROSS),this.state=8237,this.match(t.JOIN),this.state=8238,this.tableReference();break;case t.NATURAL:this.state=8239,this.match(t.NATURAL),this.state=8241,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-113&-32)&&1<<e-113&8261&&(this.state=8240,this.joinType()),this.state=8243,this.match(t.JOIN),this.state=8244,this.tableReference();break;case t.FULL:case t.INNER_P:case t.JOIN:case t.LEFT:case t.RIGHT:this.state=8246,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-113&-32)&&1<<e-113&8261&&(this.state=8245,this.joinType()),this.state=8248,this.match(t.JOIN),this.state=8249,this.tableReference(),this.state=8250,this.joinQualifier();break;default:throw new Ei(this)}this.state=8256,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,522,this.context)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}aliasClause(){let e,s=new Jl(this.context,this.state);this.enterRule(s,944,t.RULE_aliasClause);try{this.enterOuterAlt(s,1),this.state=8258,this.errorHandler.sync(this),e=this.tokenStream.LA(1),36===e&&(this.state=8257,this.match(t.AS)),this.state=8260,this.columnId(),this.state=8265,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e&&(this.state=8261,this.match(t.OPEN_PAREN),this.state=8262,this.nameList(),this.state=8263,this.match(t.CLOSE_PAREN))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalAliasClause(){let e=new Zl(this.context,this.state);this.enterRule(e,946,t.RULE_optionalAliasClause);try{switch(this.state=8269,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,525,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8267,this.tableAliasClause();break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableAliasClause(){let e,s=new ql(this.context,this.state);this.enterRule(s,948,t.RULE_tableAliasClause);try{this.enterOuterAlt(s,1),this.state=8272,this.errorHandler.sync(this),e=this.tokenStream.LA(1),36===e&&(this.state=8271,this.match(t.AS)),this.state=8274,this.tableAlias(),this.state=8279,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e&&(this.state=8275,this.match(t.OPEN_PAREN),this.state=8276,this.nameList(),this.state=8277,this.match(t.CLOSE_PAREN))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}functionAliasClause(){let e,s=new jl(this.context,this.state);this.enterRule(s,950,t.RULE_functionAliasClause);try{switch(this.state=8294,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,530,this.context)){case 1:this.enterOuterAlt(s,1),this.state=8281,this.aliasClause();break;case 2:switch(this.enterOuterAlt(s,2),this.state=8287,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AS:this.state=8282,this.match(t.AS),this.state=8284,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(e-33&-32)&&1<<e-33&286268421||!(e-92&-32)&&1<<e-92&2298478593||!(e-124&-32)&&1<<e-124&4294967269||!(e-156&-32)&&1<<e-156&4294967295||!(e-188&-32)&&1<<e-188&4294967295||!(e-220&-32)&&1<<e-220&3221225471||!(e-252&-32)&&1<<e-252&4294967293||!(e-284&-32)&&1<<e-284&4294967295||!(e-316&-32)&&1<<e-316&4294967295||!(e-348&-32)&&1<<e-348&4294967295||!(e-380&-32)&&1<<e-380&4294967295||!(e-412&-32)&&1<<e-412&4294967295||!(e-444&-32)&&1<<e-444&4026530815||!(e-476&-32)&&1<<e-476&3623878655||!(e-508&-32)&&1<<e-508&4294965247||!(e-540&-32)&&1<<e-540&4294967295||!(e-572&-32)&&1<<e-572&4294967295||!(e-604&-32)&&1<<e-604&4294967295||!(e-636&-32)&&1<<e-636&100663331)&&(this.state=8283,this.columnId());break;case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.state=8286,this.columnId();break;default:throw new Ei(this)}this.state=8289,this.match(t.OPEN_PAREN),this.state=8290,this.tableFunctionElementList(),this.state=8291,this.match(t.CLOSE_PAREN);break;case 3:this.enterOuterAlt(s,3)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}joinType(){let e,s=new zl(this.context,this.state);this.enterRule(s,952,t.RULE_joinType);try{this.enterOuterAlt(s,1),this.state=8296,e=this.tokenStream.LA(1),!(e-113&-32)&&1<<e-113&8261?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=8298,this.errorHandler.sync(this),e=this.tokenStream.LA(1),123===e&&(this.state=8297,this.match(t.OUTER_P))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}joinQualifier(){let e=new $l(this.context,this.state);this.enterRule(e,954,t.RULE_joinQualifier);try{switch(this.state=8307,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.USING:this.enterOuterAlt(e,1),this.state=8300,this.match(t.USING),this.state=8301,this.match(t.OPEN_PAREN),this.state=8302,this.nameList(),this.state=8303,this.match(t.CLOSE_PAREN);break;case t.ON:this.enterOuterAlt(e,2),this.state=8305,this.match(t.ON),this.state=8306,this.expression1();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}viewName(){let e=new tO(this.context,this.state);this.enterRule(e,956,t.RULE_viewName);try{this.enterOuterAlt(e,1),this.state=8309,this.qualifiedName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}relationExpression(){let e,s=new eO(this.context,this.state);this.enterRule(s,958,t.RULE_relationExpression);try{switch(this.state=8323,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(s,1),this.state=8311,this.qualifiedName(),this.state=8313,this.errorHandler.sync(this),e=this.tokenStream.LA(1),9===e&&(this.state=8312,this.match(t.STAR));break;case t.ONLY:switch(this.enterOuterAlt(s,2),this.state=8315,this.match(t.ONLY),this.state=8321,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.state=8316,this.qualifiedName();break;case t.OPEN_PAREN:this.state=8317,this.match(t.OPEN_PAREN),this.state=8318,this.qualifiedName(),this.state=8319,this.match(t.CLOSE_PAREN);break;default:throw new Ei(this)}break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}relationExpressionList(){let e,s=new sO(this.context,this.state);this.enterRule(s,960,t.RULE_relationExpressionList);try{for(this.enterOuterAlt(s,1),this.state=8325,this.relationExpression(),this.state=8330,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=8326,this.match(t.COMMA),this.state=8327,this.relationExpression(),this.state=8332,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}relationExpressionOptionalAlias(){let e,s=new aO(this.context,this.state);this.enterRule(s,962,t.RULE_relationExpressionOptionalAlias);try{if(1===(this.enterOuterAlt(s,1),this.state=8333,this.relationExpression(),this.state=8338,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,538,this.context)))this.state=8335,this.errorHandler.sync(this),e=this.tokenStream.LA(1),36===e&&(this.state=8334,this.match(t.AS)),this.state=8337,this.columnId()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableSampleClause(){let e=new rO(this.context,this.state);this.enterRule(e,964,t.RULE_tableSampleClause);try{this.enterOuterAlt(e,1),this.state=8340,this.match(t.TABLESAMPLE),this.state=8341,this.functionName(),this.state=8342,this.match(t.OPEN_PAREN),this.state=8343,this.expressionList(),this.state=8344,this.match(t.CLOSE_PAREN),this.state=8345,this.match(t.REPEATABLE),this.state=8346,this.match(t.OPEN_PAREN),this.state=8347,this.expression1(),this.state=8348,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}functionTable(){let e,s=new iO(this.context,this.state);this.enterRule(s,966,t.RULE_functionTable);try{switch(this.state=8367,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,540,this.context)){case 1:this.enterOuterAlt(s,1),this.state=8350,this.functionExpressionWindowless(),this.state=8351,this.optionalOrdinality();break;case 2:for(this.enterOuterAlt(s,2),this.state=8353,this.match(t.ROWS),this.state=8354,this.match(t.FROM),this.state=8355,this.match(t.OPEN_PAREN),this.state=8356,this.rowsFromItem(),this.state=8361,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=8357,this.match(t.COMMA),this.state=8358,this.rowsFromItem(),this.state=8363,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=8364,this.match(t.CLOSE_PAREN),this.state=8365,this.optionalOrdinality()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}rowsFromItem(){let e=new cO(this.context,this.state);this.enterRule(e,968,t.RULE_rowsFromItem);try{this.enterOuterAlt(e,1),this.state=8369,this.functionExpressionWindowless(),this.state=8370,this.optionalColumnDefinitionList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalColumnDefinitionList(){let e=new nO(this.context,this.state);this.enterRule(e,970,t.RULE_optionalColumnDefinitionList);try{switch(this.state=8378,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AS:this.enterOuterAlt(e,1),this.state=8372,this.match(t.AS),this.state=8373,this.match(t.OPEN_PAREN),this.state=8374,this.tableFunctionElementList(),this.state=8375,this.match(t.CLOSE_PAREN);break;case t.CLOSE_PAREN:case t.COMMA:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalOrdinality(){let e=new hO(this.context,this.state);this.enterRule(e,972,t.RULE_optionalOrdinality);try{switch(this.state=8383,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,542,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8380,this.match(t.WITH),this.state=8381,this.match(t.ORDINALITY);break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}whereClause(){let e=new EO(this.context,this.state);this.enterRule(e,974,t.RULE_whereClause);try{switch(this.state=8388,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WHERE:this.enterOuterAlt(e,1),this.state=8385,this.match(t.WHERE),this.state=8386,this.expression1();break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.CREATE:case t.DO:case t.EXCEPT:case t.FETCH:case t.FOR:case t.GRANT:case t.GROUP_P:case t.HAVING:case t.INTERSECT:case t.INTO:case t.LIMIT:case t.OFFSET:case t.ON:case t.ORDER:case t.RETURNING:case t.THEN:case t.UNION:case t.USING:case t.WHEN:case t.WINDOW:case t.WITH:case t.LOOP:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}whereOrCurrentClause(){let e=new TO(this.context,this.state);this.enterRule(e,976,t.RULE_whereOrCurrentClause);try{switch(this.state=8398,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WHERE:switch(this.enterOuterAlt(e,1),this.state=8390,this.match(t.WHERE),this.state=8395,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,544,this.context)){case 1:this.state=8391,this.match(t.CURRENT_P),this.state=8392,this.match(t.OF),this.state=8393,this.cursorName();break;case 2:this.state=8394,this.expression1()}break;case t.EOF:case t.CLOSE_PAREN:case t.SEMI:case t.INTO:case t.RETURNING:case t.LOOP:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalTableFunctionElementList(){let e=new oO(this.context,this.state);this.enterRule(e,978,t.RULE_optionalTableFunctionElementList);try{switch(this.state=8402,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,1),this.state=8400,this.tableFunctionElementList();break;case t.CLOSE_PAREN:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableFunctionElementList(){let e,s=new RO(this.context,this.state);this.enterRule(s,980,t.RULE_tableFunctionElementList);try{for(this.enterOuterAlt(s,1),this.state=8404,this.tableFunctionElement(),this.state=8409,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=8405,this.match(t.COMMA),this.state=8406,this.tableFunctionElement(),this.state=8411,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableFunctionElement(){let e=new AO(this.context,this.state);this.enterRule(e,982,t.RULE_tableFunctionElement);try{this.enterOuterAlt(e,1),this.state=8412,this.columnId(),this.state=8413,this.typeName(),this.state=8414,this.optionalCollateClause()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}xmlTable(){let e,s=new SO(this.context,this.state);this.enterRule(s,984,t.RULE_xmlTable);try{switch(this.enterOuterAlt(s,1),this.state=8416,this.match(t.XMLTABLE),this.state=8417,this.match(t.OPEN_PAREN),this.state=8445,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,550,this.context)){case 1:for(this.state=8418,this.expression3(),this.state=8419,this.xmlExistsArgument(),this.state=8420,this.match(t.COLUMNS),this.state=8421,this.xmlTableColumnElement(),this.state=8426,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=8422,this.match(t.COMMA),this.state=8423,this.xmlTableColumnElement(),this.state=8428,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case 2:for(this.state=8429,this.match(t.XMLNAMESPACES),this.state=8430,this.match(t.OPEN_PAREN),this.state=8431,this.xmlNamespaceList(),this.state=8432,this.match(t.CLOSE_PAREN),this.state=8433,this.match(t.COMMA),this.state=8434,this.expression3(),this.state=8435,this.xmlExistsArgument(),this.state=8436,this.match(t.COLUMNS),this.state=8437,this.xmlTableColumnElement(),this.state=8442,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=8438,this.match(t.COMMA),this.state=8439,this.xmlTableColumnElement(),this.state=8444,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}this.state=8447,this.match(t.CLOSE_PAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}xmlTableColumnElement(){let e,s=new lO(this.context,this.state);this.enterRule(s,986,t.RULE_xmlTableColumnElement);try{switch(this.enterOuterAlt(s,1),this.state=8449,this.columnId(),this.state=8456,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LEFT:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.RIGHT:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.state=8450,this.typeName(),this.state=8452,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(e-33&-32)&&1<<e-33&286268421||!(e-77&-32)&&1<<e-77&32771||!(e-116&-32)&&1<<e-116&268451969||!(e-153&-32)&&1<<e-153&540945||!(e-207&-32)&&1<<e-207&33554441||!(e-240&-32)&&1<<e-240&6553601||!(e-272&-32)&&1<<e-272&268451841||!(e-306&-32)&&1<<e-306&1051713||353===e||433===e||434===e||!(e-477&-32)&&1<<e-477&3825197057||!(e-509&-32)&&1<<e-509&3055||!(e-636&-32)&&1<<e-636&100663331)&&(this.state=8451,this.xmlTableColumnOptionList());break;case t.FOR:this.state=8454,this.match(t.FOR),this.state=8455,this.match(t.ORDINALITY);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}xmlTableColumnOptionList(){let e,s=new OO(this.context,this.state);this.enterRule(s,988,t.RULE_xmlTableColumnOptionList);try{this.enterOuterAlt(s,1),this.state=8459,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=8458,this.xmlTableColumnOptionElement(),this.state=8461,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(!(e-33&-32)&&1<<e-33&286268421||!(e-77&-32)&&1<<e-77&32771||!(e-116&-32)&&1<<e-116&268451969||!(e-153&-32)&&1<<e-153&540945||!(e-207&-32)&&1<<e-207&33554441||!(e-240&-32)&&1<<e-240&6553601||!(e-272&-32)&&1<<e-272&268451841||!(e-306&-32)&&1<<e-306&1051713||353===e||433===e||434===e||!(e-477&-32)&&1<<e-477&3825197057||!(e-509&-32)&&1<<e-509&3055||!(e-636&-32)&&1<<e-636&100663331)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}xmlTableColumnOptionElement(){let e=new IO(this.context,this.state);this.enterRule(e,990,t.RULE_xmlTableColumnOptionElement);try{switch(this.state=8471,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,554,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8463,this.match(t.DEFAULT),this.state=8464,this.expression1();break;case 2:this.enterOuterAlt(e,2),this.state=8465,this.identifier(),this.state=8466,this.expression1();break;case 3:this.enterOuterAlt(e,3),this.state=8468,this.match(t.NOT),this.state=8469,this.match(t.NULL_P);break;case 4:this.enterOuterAlt(e,4),this.state=8470,this.match(t.NULL_P)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}xmlNamespaceList(){let e,s=new uO(this.context,this.state);this.enterRule(s,992,t.RULE_xmlNamespaceList);try{for(this.enterOuterAlt(s,1),this.state=8473,this.xmlNamespaceElement(),this.state=8478,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=8474,this.match(t.COMMA),this.state=8475,this.xmlNamespaceElement(),this.state=8480,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}xmlNamespaceElement(){let e=new NO(this.context,this.state);this.enterRule(e,994,t.RULE_xmlNamespaceElement);try{switch(this.state=8487,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,556,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8481,this.expression2(0),this.state=8482,this.match(t.AS),this.state=8483,this.columnLabel();break;case 2:this.enterOuterAlt(e,2),this.state=8485,this.match(t.DEFAULT),this.state=8486,this.expression2(0)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}typeName(){let e,s=new LO(this.context,this.state);this.enterRule(s,996,t.RULE_typeName);try{let a;switch(this.state=8516,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,562,this.context)){case 1:switch(this.enterOuterAlt(s,1),this.state=8490,this.errorHandler.sync(this),e=this.tokenStream.LA(1),408===e&&(this.state=8489,this.match(t.SETOF)),this.state=8492,this.simpleTypeName(),this.state=8510,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,561,this.context)){case 1:for(this.state=8500,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,559,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=8493,this.match(t.OPEN_BRACKET),this.state=8495,this.errorHandler.sync(this),e=this.tokenStream.LA(1),658===e&&(this.state=8494,this.iconst()),this.state=8497,this.match(t.CLOSE_BRACKET)),this.state=8502,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,559,this.context);break;case 2:if(1===(this.state=8503,this.match(t.ARRAY),this.state=8508,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,560,this.context)))this.state=8504,this.match(t.OPEN_BRACKET),this.state=8505,this.iconst(),this.state=8506,this.match(t.CLOSE_BRACKET)}break;case 2:this.enterOuterAlt(s,2),this.state=8512,this.qualifiedName(),this.state=8513,this.match(t.PERCENT),this.state=8514,e=this.tokenStream.LA(1),353===e||477===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}simpleTypeName(){let e=new CO(this.context,this.state);this.enterRule(e,998,t.RULE_simpleTypeName);try{switch(this.state=8531,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,564,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8518,this.genericType();break;case 2:this.enterOuterAlt(e,2),this.state=8519,this.numeric();break;case 3:this.enterOuterAlt(e,3),this.state=8520,this.bit();break;case 4:this.enterOuterAlt(e,4),this.state=8521,this.character();break;case 5:this.enterOuterAlt(e,5),this.state=8522,this.constDateTime();break;case 6:switch(this.enterOuterAlt(e,6),this.state=8523,this.constInterval(),this.state=8529,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,563,this.context)){case 1:this.state=8524,this.optionalInterval();break;case 2:this.state=8525,this.match(t.OPEN_PAREN),this.state=8526,this.iconst(),this.state=8527,this.match(t.CLOSE_PAREN)}}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}constTypeName(){let e=new _O(this.context,this.state);this.enterRule(e,1e3,t.RULE_constTypeName);try{switch(this.state=8537,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DOUBLE_P:case t.BIGINT:case t.BOOLEAN_P:case t.DEC:case t.DECIMAL_P:case t.FLOAT_P:case t.INT_P:case t.INTEGER:case t.NUMERIC:case t.REAL:case t.SMALLINT:this.enterOuterAlt(e,1),this.state=8533,this.numeric();break;case t.BIT:this.enterOuterAlt(e,2),this.state=8534,this.constBit();break;case t.CHAR_P:case t.CHARACTER:case t.NATIONAL:case t.NCHAR:case t.VARCHAR:this.enterOuterAlt(e,3),this.state=8535,this.constCharacter();break;case t.TIME:case t.TIMESTAMP:this.enterOuterAlt(e,4),this.state=8536,this.constDateTime();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}genericType(){let e=new PO(this.context,this.state);this.enterRule(e,1002,t.RULE_genericType);try{switch(this.enterOuterAlt(e,1),this.state=8543,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.REPLACE:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.REVERSE:case t.LOG:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:this.state=8539,this.builtinFunctionName();break;case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.COLUMNS:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.state=8540,this.typeFunctionName();break;case t.LEFT:this.state=8541,this.match(t.LEFT);break;case t.RIGHT:this.state=8542,this.match(t.RIGHT);break;default:throw new Ei(this)}if(1===(this.state=8546,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,567,this.context)))this.state=8545,this.attributes();this.state=8548,this.optionalTypeModifiers()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalTypeModifiers(){let e=new MO(this.context,this.state);this.enterRule(e,1004,t.RULE_optionalTypeModifiers);try{switch(this.state=8555,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,568,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8550,this.match(t.OPEN_PAREN),this.state=8551,this.expressionList(),this.state=8552,this.match(t.CLOSE_PAREN);break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}numeric(){let e=new dO(this.context,this.state);this.enterRule(e,1006,t.RULE_numeric);try{switch(this.state=8573,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.INT_P:this.enterOuterAlt(e,1),this.state=8557,this.match(t.INT_P);break;case t.INTEGER:this.enterOuterAlt(e,2),this.state=8558,this.match(t.INTEGER);break;case t.SMALLINT:this.enterOuterAlt(e,3),this.state=8559,this.match(t.SMALLINT);break;case t.BIGINT:this.enterOuterAlt(e,4),this.state=8560,this.match(t.BIGINT);break;case t.REAL:this.enterOuterAlt(e,5),this.state=8561,this.match(t.REAL);break;case t.FLOAT_P:this.enterOuterAlt(e,6),this.state=8562,this.match(t.FLOAT_P),this.state=8563,this.optionalFloat();break;case t.DOUBLE_P:this.enterOuterAlt(e,7),this.state=8564,this.match(t.DOUBLE_P),this.state=8565,this.match(t.PRECISION);break;case t.DECIMAL_P:this.enterOuterAlt(e,8),this.state=8566,this.match(t.DECIMAL_P),this.state=8567,this.optionalTypeModifiers();break;case t.DEC:this.enterOuterAlt(e,9),this.state=8568,this.match(t.DEC),this.state=8569,this.optionalTypeModifiers();break;case t.NUMERIC:this.enterOuterAlt(e,10),this.state=8570,this.match(t.NUMERIC),this.state=8571,this.optionalTypeModifiers();break;case t.BOOLEAN_P:this.enterOuterAlt(e,11),this.state=8572,this.match(t.BOOLEAN_P);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalFloat(){let e=new UO(this.context,this.state);this.enterRule(e,1008,t.RULE_optionalFloat);try{switch(this.state=8580,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,570,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8575,this.match(t.OPEN_PAREN),this.state=8576,this.iconst(),this.state=8577,this.match(t.CLOSE_PAREN);break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}bit(){let e=new mO(this.context,this.state);this.enterRule(e,1010,t.RULE_bit);try{switch(this.state=8584,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,571,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8582,this.bitWithLength();break;case 2:this.enterOuterAlt(e,2),this.state=8583,this.bitWithoutLength()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}constBit(){let e=new DO(this.context,this.state);this.enterRule(e,1012,t.RULE_constBit);try{switch(this.state=8588,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,572,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8586,this.bitWithLength();break;case 2:this.enterOuterAlt(e,2),this.state=8587,this.bitWithoutLength()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}bitWithLength(){let e=new pO(this.context,this.state);this.enterRule(e,1014,t.RULE_bitWithLength);try{this.enterOuterAlt(e,1),this.state=8590,this.match(t.BIT),this.state=8591,this.optionalVarying(),this.state=8592,this.match(t.OPEN_PAREN),this.state=8593,this.expressionList(),this.state=8594,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}bitWithoutLength(){let e=new gO(this.context,this.state);this.enterRule(e,1016,t.RULE_bitWithoutLength);try{this.enterOuterAlt(e,1),this.state=8596,this.match(t.BIT),this.state=8597,this.optionalVarying()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}character(){let e=new xO(this.context,this.state);this.enterRule(e,1018,t.RULE_character);try{if(1===(this.enterOuterAlt(e,1),this.state=8599,this.characterChar(),this.state=8604,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,573,this.context)))this.state=8600,this.match(t.OPEN_PAREN),this.state=8601,this.iconst(),this.state=8602,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}constCharacter(){let e,s=new kO(this.context,this.state);this.enterRule(s,1020,t.RULE_constCharacter);try{this.enterOuterAlt(s,1),this.state=8606,this.characterChar(),this.state=8611,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e&&(this.state=8607,this.match(t.OPEN_PAREN),this.state=8608,this.iconst(),this.state=8609,this.match(t.CLOSE_PAREN))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}characterChar(){let e,s=new HO(this.context,this.state);this.enterRule(s,1022,t.RULE_characterChar);try{switch(this.state=8619,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CHAR_P:case t.CHARACTER:case t.NCHAR:this.enterOuterAlt(s,1),this.state=8613,e=this.tokenStream.LA(1),!(e-384&-32)&&1<<e-384&32771?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=8614,this.optionalVarying();break;case t.VARCHAR:this.enterOuterAlt(s,2),this.state=8615,this.match(t.VARCHAR);break;case t.NATIONAL:this.enterOuterAlt(s,3),this.state=8616,this.match(t.NATIONAL),this.state=8617,e=this.tokenStream.LA(1),384===e||385===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=8618,this.optionalVarying();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalVarying(){let e=new GO(this.context,this.state);this.enterRule(e,1024,t.RULE_optionalVarying);try{switch(this.state=8623,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,576,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8621,this.match(t.VARYING);break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}constDateTime(){let e,s=new FO(this.context,this.state);this.enterRule(s,1026,t.RULE_constDateTime);try{if(this.enterOuterAlt(s,1),1===(this.state=8625,e=this.tokenStream.LA(1),411===e||412===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=8630,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,577,this.context)))this.state=8626,this.match(t.OPEN_PAREN),this.state=8627,this.iconst(),this.state=8628,this.match(t.CLOSE_PAREN);this.state=8632,this.optionalTimezone()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}constInterval(){let e=new vO(this.context,this.state);this.enterRule(e,1028,t.RULE_constInterval);try{this.enterOuterAlt(e,1),this.state=8634,this.match(t.INTERVAL)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalTimezone(){let e=new BO(this.context,this.state);this.enterRule(e,1030,t.RULE_optionalTimezone);try{switch(this.state=8643,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,578,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8636,this.match(t.WITH),this.state=8637,this.match(t.TIME),this.state=8638,this.match(t.ZONE);break;case 2:this.enterOuterAlt(e,2),this.state=8639,this.match(t.WITHOUT),this.state=8640,this.match(t.TIME),this.state=8641,this.match(t.ZONE);break;case 3:this.enterOuterAlt(e,3)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalInterval(){let e=new yO(this.context,this.state);this.enterRule(e,1032,t.RULE_optionalInterval);try{switch(this.state=8671,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,581,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8645,this.match(t.YEAR_P);break;case 2:this.enterOuterAlt(e,2),this.state=8646,this.match(t.MONTH_P);break;case 3:this.enterOuterAlt(e,3),this.state=8647,this.match(t.DAY_P);break;case 4:this.enterOuterAlt(e,4),this.state=8648,this.match(t.HOUR_P);break;case 5:this.enterOuterAlt(e,5),this.state=8649,this.match(t.MINUTE_P);break;case 6:this.enterOuterAlt(e,6),this.state=8650,this.intervalSecond();break;case 7:this.enterOuterAlt(e,7),this.state=8651,this.match(t.YEAR_P),this.state=8652,this.match(t.TO),this.state=8653,this.match(t.MONTH_P);break;case 8:switch(this.enterOuterAlt(e,8),this.state=8654,this.match(t.DAY_P),this.state=8655,this.match(t.TO),this.state=8659,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.HOUR_P:this.state=8656,this.match(t.HOUR_P);break;case t.MINUTE_P:this.state=8657,this.match(t.MINUTE_P);break;case t.SECOND_P:this.state=8658,this.intervalSecond();break;default:throw new Ei(this)}break;case 9:switch(this.enterOuterAlt(e,9),this.state=8661,this.match(t.HOUR_P),this.state=8662,this.match(t.TO),this.state=8665,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.MINUTE_P:this.state=8663,this.match(t.MINUTE_P);break;case t.SECOND_P:this.state=8664,this.intervalSecond();break;default:throw new Ei(this)}break;case 10:this.enterOuterAlt(e,10),this.state=8667,this.match(t.MINUTE_P),this.state=8668,this.match(t.TO),this.state=8669,this.intervalSecond();break;case 11:this.enterOuterAlt(e,11)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}intervalSecond(){let e=new fO(this.context,this.state);this.enterRule(e,1034,t.RULE_intervalSecond);try{if(1===(this.enterOuterAlt(e,1),this.state=8673,this.match(t.SECOND_P),this.state=8678,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,582,this.context)))this.state=8674,this.match(t.OPEN_PAREN),this.state=8675,this.iconst(),this.state=8676,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalEscape(){let e=new YO(this.context,this.state);this.enterRule(e,1036,t.RULE_optionalEscape);try{switch(this.state=8683,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,583,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8680,this.match(t.ESCAPE),this.state=8681,this.expression1();break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expression1(){let e=new wO(this.context,this.state);this.enterRule(e,1038,t.RULE_expression1);try{this.enterOuterAlt(e,1),this.state=8685,this.expression1Qualifier()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expression1Qualifier(){let e=new bO(this.context,this.state);this.enterRule(e,1040,t.RULE_expression1Qualifier);try{if(1===(this.enterOuterAlt(e,1),this.state=8687,this.expression1LessLess(),this.state=8689,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,584,this.context)))this.state=8688,this.operatorQualifier()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expression1LessLess(){let e,s=new WO(this.context,this.state);this.enterRule(s,1042,t.RULE_expression1LessLess);try{let t;for(this.enterOuterAlt(s,1),this.state=8691,this.expression1Or(),this.state=8696,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,585,this.context);2!==t&&t!==ja.INVALID_ALT_NUMBER;)1===t&&(this.state=8692,e=this.tokenStream.LA(1),18===e||19===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=8693,this.expression1Or()),this.state=8698,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,585,this.context)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expression1Or(){let e=new VO(this.context,this.state);this.enterRule(e,1044,t.RULE_expression1Or);try{let s;for(this.enterOuterAlt(e,1),this.state=8699,this.expression1And(),this.state=8704,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,586,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=8700,this.match(t.OR),this.state=8701,this.expression1And()),this.state=8706,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,586,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expression1And(){let e=new XO(this.context,this.state);this.enterRule(e,1046,t.RULE_expression1And);try{let s;for(this.enterOuterAlt(e,1),this.state=8707,this.expression1Between(),this.state=8712,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,587,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=8708,this.match(t.AND),this.state=8709,this.expression1Between()),this.state=8714,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,587,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expression1Between(){let e,s=new KO(this.context,this.state);this.enterRule(s,1048,t.RULE_expression1Between);try{if(1===(this.enterOuterAlt(s,1),this.state=8715,this.expression1In(),this.state=8727,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,590,this.context)))this.state=8717,this.errorHandler.sync(this),e=this.tokenStream.LA(1),77===e&&(this.state=8716,this.match(t.NOT)),this.state=8719,this.match(t.BETWEEN),this.state=8721,this.errorHandler.sync(this),e=this.tokenStream.LA(1),91===e&&(this.state=8720,this.match(t.SYMMETRIC)),this.state=8723,this.expression1In(),this.state=8724,this.match(t.AND),this.state=8725,this.expression1In()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expression1In(){let e,s=new QO(this.context,this.state);this.enterRule(s,1050,t.RULE_expression1In);try{if(1===(this.enterOuterAlt(s,1),this.state=8729,this.expression1UnaryNot(),this.state=8735,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,592,this.context)))this.state=8731,this.errorHandler.sync(this),e=this.tokenStream.LA(1),77===e&&(this.state=8730,this.match(t.NOT)),this.state=8733,this.match(t.IN_P),this.state=8734,this.inExpression()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expression1UnaryNot(){let e,s=new JO(this.context,this.state);this.enterRule(s,1052,t.RULE_expression1UnaryNot);try{this.enterOuterAlt(s,1),this.state=8738,this.errorHandler.sync(this),e=this.tokenStream.LA(1),77===e&&(this.state=8737,this.match(t.NOT)),this.state=8740,this.expression1IsNull()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expression1IsNull(){let e,s=new ZO(this.context,this.state);this.enterRule(s,1054,t.RULE_expression1IsNull);try{if(1===(this.enterOuterAlt(s,1),this.state=8742,this.expression1IsNot(),this.state=8744,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,594,this.context)))this.state=8743,e=this.tokenStream.LA(1),117===e||122===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expression1IsNot(){let e,s=new qO(this.context,this.state);this.enterRule(s,1056,t.RULE_expression1IsNot);try{if(1===(this.enterOuterAlt(s,1),this.state=8746,this.expression1Compare(),this.state=8770,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,598,this.context)))switch(this.state=8747,this.match(t.IS),this.state=8749,this.errorHandler.sync(this),e=this.tokenStream.LA(1),77===e&&(this.state=8748,this.match(t.NOT)),this.state=8768,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NULL_P:this.state=8751,this.match(t.NULL_P);break;case t.TRUE_P:this.state=8752,this.match(t.TRUE_P);break;case t.FALSE_P:this.state=8753,this.match(t.FALSE_P);break;case t.UNKNOWN:this.state=8754,this.match(t.UNKNOWN);break;case t.DISTINCT:this.state=8755,this.match(t.DISTINCT),this.state=8756,this.match(t.FROM),this.state=8757,this.expression1();break;case t.OF:this.state=8758,this.match(t.OF),this.state=8759,this.match(t.OPEN_PAREN),this.state=8760,this.typeList(),this.state=8761,this.match(t.CLOSE_PAREN);break;case t.DOCUMENT_P:this.state=8763,this.match(t.DOCUMENT_P);break;case t.NORMALIZED:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:this.state=8765,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-483&-32)&&1<<e-483&15&&(this.state=8764,this.unicodeNormalForm()),this.state=8767,this.match(t.NORMALIZED);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expression1Compare(){let e,s=new jO(this.context,this.state);this.enterRule(s,1058,t.RULE_expression1Compare);try{switch(this.enterOuterAlt(s,1),this.state=8772,this.expression1Like(),this.state=8784,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,600,this.context)){case 1:this.state=8773,e=this.tokenStream.LA(1),!(-32&e)&&1<<e&44237824?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=8774,this.expression1Like();break;case 2:switch(this.state=8775,this.subqueryOperator(),this.state=8776,this.subType(),this.state=8782,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,599,this.context)){case 1:this.state=8777,this.selectWithParenthesis();break;case 2:this.state=8778,this.match(t.OPEN_PAREN),this.state=8779,this.expression1(),this.state=8780,this.match(t.CLOSE_PAREN)}}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expression1Like(){let e,s=new zO(this.context,this.state);this.enterRule(s,1060,t.RULE_expression1Like);try{if(1===(this.enterOuterAlt(s,1),this.state=8786,this.expression1qualifierOperator(),this.state=8799,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,603,this.context))){switch(this.state=8788,this.errorHandler.sync(this),e=this.tokenStream.LA(1),77===e&&(this.state=8787,this.match(t.NOT)),this.state=8794,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LIKE:this.state=8790,this.match(t.LIKE);break;case t.ILIKE:this.state=8791,this.match(t.ILIKE);break;case t.SIMILAR:this.state=8792,this.match(t.SIMILAR),this.state=8793,this.match(t.TO);break;default:throw new Ei(this)}this.state=8796,this.expression1qualifierOperator(),this.state=8797,this.optionalEscape()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expression1qualifierOperator(){let e=new $O(this.context,this.state);this.enterRule(e,1062,t.RULE_expression1qualifierOperator);try{let t;for(this.enterOuterAlt(e,1),this.state=8801,this.expression1UnaryQualifierOperator(),this.state=8807,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,604,this.context);2!==t&&t!==ja.INVALID_ALT_NUMBER;)1===t&&(this.state=8802,this.operatorQualifier(),this.state=8803,this.expression1UnaryQualifierOperator()),this.state=8809,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,604,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expression1UnaryQualifierOperator(){let e=new tI(this.context,this.state);this.enterRule(e,1064,t.RULE_expression1UnaryQualifierOperator);try{if(this.enterOuterAlt(e,1),1===(this.state=8811,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,605,this.context)))this.state=8810,this.operatorQualifier();this.state=8813,this.expression1Add()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expression1Add(){let e,s=new eI(this.context,this.state);this.enterRule(s,1066,t.RULE_expression1Add);try{let t;for(this.enterOuterAlt(s,1),this.state=8815,this.expressionMultiply(),this.state=8820,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,606,this.context);2!==t&&t!==ja.INVALID_ALT_NUMBER;)1===t&&(this.state=8816,e=this.tokenStream.LA(1),12===e||13===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=8817,this.expressionMultiply()),this.state=8822,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,606,this.context)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expressionMultiply(){let e,s=new sI(this.context,this.state);this.enterRule(s,1068,t.RULE_expressionMultiply);try{let t;for(this.enterOuterAlt(s,1),this.state=8823,this.expression1Caret(),this.state=8828,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,607,this.context);2!==t&&t!==ja.INVALID_ALT_NUMBER;)1===t&&(this.state=8824,e=this.tokenStream.LA(1),!(-32&e)&&1<<e&134234624?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=8825,this.expression1Caret()),this.state=8830,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,607,this.context)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expression1Caret(){let e=new aI(this.context,this.state);this.enterRule(e,1070,t.RULE_expression1Caret);try{if(1===(this.enterOuterAlt(e,1),this.state=8831,this.expression1UnarySign(),this.state=8834,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,608,this.context)))this.state=8832,this.match(t.CARET),this.state=8833,this.expression1()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expression1UnarySign(){let e,s=new rI(this.context,this.state);this.enterRule(s,1072,t.RULE_expression1UnarySign);try{this.enterOuterAlt(s,1),this.state=8837,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(12===e||13===e)&&(this.state=8836,e=this.tokenStream.LA(1),12===e||13===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=8839,this.expression1AtTimeZone()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expression1AtTimeZone(){let e=new iI(this.context,this.state);this.enterRule(e,1074,t.RULE_expression1AtTimeZone);try{if(1===(this.enterOuterAlt(e,1),this.state=8841,this.expression1Collate(),this.state=8846,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,610,this.context)))this.state=8842,this.match(t.AT),this.state=8843,this.match(t.TIME),this.state=8844,this.match(t.ZONE),this.state=8845,this.expression1()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expression1Collate(){let e=new cI(this.context,this.state);this.enterRule(e,1076,t.RULE_expression1Collate);try{if(1===(this.enterOuterAlt(e,1),this.state=8848,this.expression1Typecast(),this.state=8851,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,611,this.context)))this.state=8849,this.match(t.COLLATE),this.state=8850,this.anyName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expression1Typecast(){let e,s=new nI(this.context,this.state);this.enterRule(s,1078,t.RULE_expression1Typecast);try{for(this.enterOuterAlt(s,1),this.state=8853,this.expression3(),this.state=8858,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=8854,this.match(t.TYPECAST),this.state=8855,this.typeName(),this.state=8860,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expression2(e){void 0===e&&(e=0);let s,a=this.context,r=this.state,i=new hI(this.context,r),c=i,n=1080;this.enterRecursionRule(i,1080,t.RULE_expression2,e);try{let e;switch(this.enterOuterAlt(i,1),this.state=8868,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,613,this.context)){case 1:this.state=8862,this.expression3();break;case 2:this.state=8863,s=this.tokenStream.LA(1),12===s||13===s?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=8864,this.expression2(9);break;case 3:this.state=8865,this.operatorQualifier(),this.state=8866,this.expression2(3)}for(this.context.stop=this.tokenStream.LT(-1),this.state=8909,this.errorHandler.sync(this),e=this.interpreter.adaptivePredict(this.tokenStream,617,this.context);2!==e&&e!==ja.INVALID_ALT_NUMBER;){if(1===e)switch(null!=this.parseListeners&&this.triggerExitRuleEvent(),c=i,this.state=8907,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,616,this.context)){case 1:if(i=new hI(a,r),this.pushNewRecursionContext(i,n,t.RULE_expression2),this.state=8870,!this.precpred(this.context,8))throw this.createFailedPredicateException("this.precpred(this.context, 8)");this.state=8871,this.match(t.CARET),this.state=8872,this.expression2(9);break;case 2:if(i=new hI(a,r),this.pushNewRecursionContext(i,n,t.RULE_expression2),this.state=8873,!this.precpred(this.context,7))throw this.createFailedPredicateException("this.precpred(this.context, 7)");this.state=8874,s=this.tokenStream.LA(1),!(-32&s)&&1<<s&134234624?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=8875,this.expression2(8);break;case 3:if(i=new hI(a,r),this.pushNewRecursionContext(i,n,t.RULE_expression2),this.state=8876,!this.precpred(this.context,6))throw this.createFailedPredicateException("this.precpred(this.context, 6)");this.state=8877,s=this.tokenStream.LA(1),12===s||13===s?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=8878,this.expression2(7);break;case 4:if(i=new hI(a,r),this.pushNewRecursionContext(i,n,t.RULE_expression2),this.state=8879,!this.precpred(this.context,5))throw this.createFailedPredicateException("this.precpred(this.context, 5)");this.state=8880,this.operatorQualifier(),this.state=8881,this.expression2(6);break;case 5:if(i=new hI(a,r),this.pushNewRecursionContext(i,n,t.RULE_expression2),this.state=8883,!this.precpred(this.context,4))throw this.createFailedPredicateException("this.precpred(this.context, 4)");this.state=8884,s=this.tokenStream.LA(1),!(-32&s)&&1<<s&44237824?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=8885,this.expression2(5);break;case 6:if(i=new hI(a,r),this.pushNewRecursionContext(i,n,t.RULE_expression2),this.state=8886,!this.precpred(this.context,10))throw this.createFailedPredicateException("this.precpred(this.context, 10)");this.state=8887,this.match(t.TYPECAST),this.state=8888,this.typeName();break;case 7:if(i=new hI(a,r),this.pushNewRecursionContext(i,n,t.RULE_expression2),this.state=8889,!this.precpred(this.context,2))throw this.createFailedPredicateException("this.precpred(this.context, 2)");this.state=8890,this.operatorQualifier();break;case 8:if(i=new hI(a,r),this.pushNewRecursionContext(i,n,t.RULE_expression2),this.state=8891,!this.precpred(this.context,1))throw this.createFailedPredicateException("this.precpred(this.context, 1)");switch(this.state=8892,this.match(t.IS),this.state=8894,this.errorHandler.sync(this),s=this.tokenStream.LA(1),77===s&&(this.state=8893,this.match(t.NOT)),this.state=8905,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DISTINCT:this.state=8896,this.match(t.DISTINCT),this.state=8897,this.match(t.FROM),this.state=8898,this.expression2(0);break;case t.OF:this.state=8899,this.match(t.OF),this.state=8900,this.match(t.OPEN_PAREN),this.state=8901,this.typeList(),this.state=8902,this.match(t.CLOSE_PAREN);break;case t.DOCUMENT_P:this.state=8904,this.match(t.DOCUMENT_P);break;default:throw new Ei(this)}}this.state=8911,this.errorHandler.sync(this),e=this.interpreter.adaptivePredict(this.tokenStream,617,this.context)}}catch(h){if(!(h instanceof jr))throw h;this.errorHandler.reportError(this,h),this.errorHandler.recover(this,h)}finally{this.unrollRecursionContexts(a)}return i}expression3(){let e=new EI(this.context,this.state);this.enterRule(e,1082,t.RULE_expression3);try{switch(this.state=8948,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,620,this.context)){case 1:e=new TI(e),this.enterOuterAlt(e,1),this.state=8912,this.match(t.EXISTS),this.state=8913,this.selectWithParenthesis();break;case 2:switch(e=new RI(e),this.enterOuterAlt(e,2),this.state=8914,this.match(t.ARRAY),this.state=8917,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:this.state=8915,this.selectWithParenthesis();break;case t.OPEN_BRACKET:this.state=8916,this.arrayExpression();break;default:throw new Ei(this)}break;case 3:e=new RI(e),this.enterOuterAlt(e,3),this.state=8919,this.match(t.PARAM),this.state=8920,this.optionalIndirection();break;case 4:e=new RI(e),this.enterOuterAlt(e,4),this.state=8921,this.match(t.GROUPING),this.state=8922,this.match(t.OPEN_PAREN),this.state=8923,this.expressionList(),this.state=8924,this.match(t.CLOSE_PAREN);break;case 5:e=new RI(e),this.enterOuterAlt(e,5),this.state=8926,this.match(t.UNIQUE),this.state=8927,this.selectWithParenthesis();break;case 6:e=new RI(e),this.enterOuterAlt(e,6),this.state=8928,this.columnReference();break;case 7:e=new RI(e),this.enterOuterAlt(e,7),this.state=8929,this.aExpressionConst();break;case 8:e=new RI(e),this.enterOuterAlt(e,8),this.state=8930,this.plsqlVariableName();break;case 9:e=new RI(e),this.enterOuterAlt(e,9),this.state=8931,this.match(t.OPEN_PAREN),this.state=8932,e._a_expr_in_parens=this.expression1(),this.state=8933,this.match(t.CLOSE_PAREN),this.state=8934,this.optionalIndirection();break;case 10:e=new oI(e),this.enterOuterAlt(e,10),this.state=8936,this.caseExpression();break;case 11:e=new RI(e),this.enterOuterAlt(e,11),this.state=8937,this.functionExpression();break;case 12:if(1===(e=new RI(e),this.enterOuterAlt(e,12),this.state=8938,this.selectWithParenthesis(),this.state=8940,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,619,this.context)))this.state=8939,this.indirection();break;case 13:e=new RI(e),this.enterOuterAlt(e,13),this.state=8942,this.explicitRow();break;case 14:e=new RI(e),this.enterOuterAlt(e,14),this.state=8943,this.implicitRow();break;case 15:e=new RI(e),this.enterOuterAlt(e,15),this.state=8944,this.row(),this.state=8945,this.match(t.OVERLAPS),this.state=8946,this.row()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}plsqlVariableName(){let e=new AI(this.context,this.state);this.enterRule(e,1084,t.RULE_plsqlVariableName);try{this.enterOuterAlt(e,1),this.state=8950,this.match(t.PLSQLVARIABLENAME)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}functionApplication(){let e,s=new SI(this.context,this.state);this.enterRule(s,1086,t.RULE_functionApplication);try{switch(this.enterOuterAlt(s,1),this.state=8952,this.functionName(),this.state=8953,this.match(t.OPEN_PAREN),this.state=8972,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:case t.PLUS:case t.MINUS:case t.PARAM:case t.Operator:case t.AND:case t.ARRAY:case t.CASE:case t.CAST:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CURRENT_CATALOG:case t.CURRENT_DATE:case t.CURRENT_ROLE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.CURRENT_USER:case t.DEFAULT:case t.DO:case t.FALSE_P:case t.FETCH:case t.LOCALTIME:case t.LOCALTIMESTAMP:case t.NOT:case t.NULL_P:case t.SESSION_USER:case t.TABLE:case t.TRUE_P:case t.UNIQUE:case t.USER:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LEFT:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.RIGHT:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.BinaryStringConstant:case t.HexadecimalStringConstant:case t.Integral:case t.Numeric:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:this.state=8954,this.functionArgumentList(),this.state=8958,this.errorHandler.sync(this),e=this.tokenStream.LA(1),6===e&&(this.state=8955,this.match(t.COMMA),this.state=8956,this.match(t.VARIADIC),this.state=8957,this.functionArgumentExpression()),this.state=8960,this.optionalSortClause();break;case t.VARIADIC:this.state=8962,this.match(t.VARIADIC),this.state=8963,this.functionArgumentExpression(),this.state=8964,this.optionalSortClause();break;case t.ALL:case t.DISTINCT:this.state=8966,e=this.tokenStream.LA(1),30===e||56===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=8967,this.functionArgumentList(),this.state=8968,this.optionalSortClause();break;case t.STAR:this.state=8970,this.match(t.STAR);break;case t.CLOSE_PAREN:break;default:throw new Ei(this)}this.state=8974,this.match(t.CLOSE_PAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}functionExpression(){let e=new lI(this.context,this.state);this.enterRule(e,1088,t.RULE_functionExpression);try{switch(this.state=8982,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,623,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8976,this.functionApplication(),this.state=8977,this.withinGroupClause(),this.state=8978,this.filterClause(),this.state=8979,this.overClause();break;case 2:this.enterOuterAlt(e,2),this.state=8981,this.functionExpressionCommonSubexpr()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}functionExpressionWindowless(){let e=new OI(this.context,this.state);this.enterRule(e,1090,t.RULE_functionExpressionWindowless);try{switch(this.state=8986,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,624,this.context)){case 1:this.enterOuterAlt(e,1),this.state=8984,this.functionApplication();break;case 2:this.enterOuterAlt(e,2),this.state=8985,this.functionExpressionCommonSubexpr()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}functionExpressionCommonSubexpr(){let e,s=new II(this.context,this.state);this.enterRule(s,1092,t.RULE_functionExpressionCommonSubexpr);try{switch(this.state=9165,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.COLLATION:this.enterOuterAlt(s,1),this.state=8988,this.match(t.COLLATION),this.state=8989,this.match(t.FOR),this.state=8990,this.match(t.OPEN_PAREN),this.state=8991,this.expression1(),this.state=8992,this.match(t.CLOSE_PAREN);break;case t.CURRENT_DATE:this.enterOuterAlt(s,2),this.state=8994,this.match(t.CURRENT_DATE);break;case t.CURRENT_TIME:if(1===(this.enterOuterAlt(s,3),this.state=8995,this.match(t.CURRENT_TIME),this.state=9e3,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,625,this.context)))this.state=8996,this.match(t.OPEN_PAREN),this.state=8997,this.iconst(),this.state=8998,this.match(t.CLOSE_PAREN);break;case t.CURRENT_TIMESTAMP:if(1===(this.enterOuterAlt(s,4),this.state=9002,this.match(t.CURRENT_TIMESTAMP),this.state=9007,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,626,this.context)))this.state=9003,this.match(t.OPEN_PAREN),this.state=9004,this.iconst(),this.state=9005,this.match(t.CLOSE_PAREN);break;case t.LOCALTIME:if(1===(this.enterOuterAlt(s,5),this.state=9009,this.match(t.LOCALTIME),this.state=9014,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,627,this.context)))this.state=9010,this.match(t.OPEN_PAREN),this.state=9011,this.iconst(),this.state=9012,this.match(t.CLOSE_PAREN);break;case t.LOCALTIMESTAMP:if(1===(this.enterOuterAlt(s,6),this.state=9016,this.match(t.LOCALTIMESTAMP),this.state=9021,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,628,this.context)))this.state=9017,this.match(t.OPEN_PAREN),this.state=9018,this.iconst(),this.state=9019,this.match(t.CLOSE_PAREN);break;case t.CURRENT_ROLE:this.enterOuterAlt(s,7),this.state=9023,this.match(t.CURRENT_ROLE);break;case t.CURRENT_USER:this.enterOuterAlt(s,8),this.state=9024,this.match(t.CURRENT_USER);break;case t.SESSION_USER:this.enterOuterAlt(s,9),this.state=9025,this.match(t.SESSION_USER);break;case t.USER:this.enterOuterAlt(s,10),this.state=9026,this.match(t.USER);break;case t.CURRENT_CATALOG:this.enterOuterAlt(s,11),this.state=9027,this.match(t.CURRENT_CATALOG);break;case t.CURRENT_SCHEMA:this.enterOuterAlt(s,12),this.state=9028,this.match(t.CURRENT_SCHEMA);break;case t.CAST:this.enterOuterAlt(s,13),this.state=9029,this.match(t.CAST),this.state=9030,this.match(t.OPEN_PAREN),this.state=9031,this.expression1(),this.state=9032,this.match(t.AS),this.state=9033,this.typeName(),this.state=9034,this.match(t.CLOSE_PAREN);break;case t.EXTRACT:this.enterOuterAlt(s,14),this.state=9036,this.match(t.EXTRACT),this.state=9037,this.match(t.OPEN_PAREN),this.state=9038,this.extractList(),this.state=9039,this.match(t.CLOSE_PAREN);break;case t.NORMALIZE:this.enterOuterAlt(s,15),this.state=9041,this.match(t.NORMALIZE),this.state=9042,this.match(t.OPEN_PAREN),this.state=9043,this.expression1(),this.state=9046,this.errorHandler.sync(this),e=this.tokenStream.LA(1),6===e&&(this.state=9044,this.match(t.COMMA),this.state=9045,this.unicodeNormalForm()),this.state=9048,this.match(t.CLOSE_PAREN);break;case t.OVERLAY:this.enterOuterAlt(s,16),this.state=9050,this.match(t.OVERLAY),this.state=9051,this.match(t.OPEN_PAREN),this.state=9052,this.overlayList(),this.state=9053,this.match(t.CLOSE_PAREN);break;case t.POSITION:this.enterOuterAlt(s,17),this.state=9055,this.match(t.POSITION),this.state=9056,this.match(t.OPEN_PAREN),this.state=9057,this.positionList(),this.state=9058,this.match(t.CLOSE_PAREN);break;case t.SUBSTRING:this.enterOuterAlt(s,18),this.state=9060,this.match(t.SUBSTRING),this.state=9061,this.match(t.OPEN_PAREN),this.state=9062,this.substrList(),this.state=9063,this.match(t.CLOSE_PAREN);break;case t.TREAT:this.enterOuterAlt(s,19),this.state=9065,this.match(t.TREAT),this.state=9066,this.match(t.OPEN_PAREN),this.state=9067,this.expression1(),this.state=9068,this.match(t.AS),this.state=9069,this.typeName(),this.state=9070,this.match(t.CLOSE_PAREN);break;case t.TRIM:this.enterOuterAlt(s,20),this.state=9072,this.match(t.TRIM),this.state=9073,this.match(t.OPEN_PAREN),this.state=9075,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(39===e||73===e||95===e)&&(this.state=9074,e=this.tokenStream.LA(1),39===e||73===e||95===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=9077,this.trimList(),this.state=9078,this.match(t.CLOSE_PAREN);break;case t.NULLIF:this.enterOuterAlt(s,21),this.state=9080,this.match(t.NULLIF),this.state=9081,this.match(t.OPEN_PAREN),this.state=9082,this.expression1(),this.state=9083,this.match(t.COMMA),this.state=9084,this.expression1(),this.state=9085,this.match(t.CLOSE_PAREN);break;case t.COALESCE:this.enterOuterAlt(s,22),this.state=9087,this.match(t.COALESCE),this.state=9088,this.match(t.OPEN_PAREN),this.state=9089,this.expressionList(),this.state=9090,this.match(t.CLOSE_PAREN);break;case t.GREATEST:this.enterOuterAlt(s,23),this.state=9092,this.match(t.GREATEST),this.state=9093,this.match(t.OPEN_PAREN),this.state=9094,this.expressionList(),this.state=9095,this.match(t.CLOSE_PAREN);break;case t.LEAST:this.enterOuterAlt(s,24),this.state=9097,this.match(t.LEAST),this.state=9098,this.match(t.OPEN_PAREN),this.state=9099,this.expressionList(),this.state=9100,this.match(t.CLOSE_PAREN);break;case t.XMLCONCAT:this.enterOuterAlt(s,25),this.state=9102,this.match(t.XMLCONCAT),this.state=9103,this.match(t.OPEN_PAREN),this.state=9104,this.expressionList(),this.state=9105,this.match(t.CLOSE_PAREN);break;case t.XMLELEMENT:if(this.enterOuterAlt(s,26),this.state=9107,this.match(t.XMLELEMENT),this.state=9108,this.match(t.OPEN_PAREN),this.state=9109,this.match(t.NAME_P),this.state=9110,this.columnLabel(),this.state=9116,this.errorHandler.sync(this),e=this.tokenStream.LA(1),6===e)switch(this.state=9111,this.match(t.COMMA),this.state=9114,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,631,this.context)){case 1:this.state=9112,this.xmlAttributes();break;case 2:this.state=9113,this.expressionList()}this.state=9118,this.match(t.CLOSE_PAREN);break;case t.XMLEXISTS:this.enterOuterAlt(s,27),this.state=9120,this.match(t.XMLEXISTS),this.state=9121,this.match(t.OPEN_PAREN),this.state=9122,this.expression3(),this.state=9123,this.xmlExistsArgument(),this.state=9124,this.match(t.CLOSE_PAREN);break;case t.XMLFOREST:this.enterOuterAlt(s,28),this.state=9126,this.match(t.XMLFOREST),this.state=9127,this.match(t.OPEN_PAREN),this.state=9128,this.xmlAttributeList(),this.state=9129,this.match(t.CLOSE_PAREN);break;case t.XMLPARSE:this.enterOuterAlt(s,29),this.state=9131,this.match(t.XMLPARSE),this.state=9132,this.match(t.OPEN_PAREN),this.state=9133,this.documentOrContent(),this.state=9134,this.expression1(),this.state=9135,this.xmlWhitespaceOption(),this.state=9136,this.match(t.CLOSE_PAREN);break;case t.XMLPI:this.enterOuterAlt(s,30),this.state=9138,this.match(t.XMLPI),this.state=9139,this.match(t.OPEN_PAREN),this.state=9140,this.match(t.NAME_P),this.state=9141,this.columnLabel(),this.state=9144,this.errorHandler.sync(this),e=this.tokenStream.LA(1),6===e&&(this.state=9142,this.match(t.COMMA),this.state=9143,this.expression1()),this.state=9146,this.match(t.CLOSE_PAREN);break;case t.XMLROOT:this.enterOuterAlt(s,31),this.state=9148,this.match(t.XMLROOT),this.state=9149,this.match(t.OPEN_PAREN),this.state=9150,this.match(t.XML_P),this.state=9151,this.expression1(),this.state=9152,this.match(t.COMMA),this.state=9153,this.xmlRootVersion(),this.state=9154,this.optionalXmlRootStandalone(),this.state=9155,this.match(t.CLOSE_PAREN);break;case t.XMLSERIALIZE:this.enterOuterAlt(s,32),this.state=9157,this.match(t.XMLSERIALIZE),this.state=9158,this.match(t.OPEN_PAREN),this.state=9159,this.documentOrContent(),this.state=9160,this.expression1(),this.state=9161,this.match(t.AS),this.state=9162,this.simpleTypeName(),this.state=9163,this.match(t.CLOSE_PAREN);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}xmlRootVersion(){let e=new uI(this.context,this.state);this.enterRule(e,1094,t.RULE_xmlRootVersion);try{switch(this.state=9172,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,635,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9167,this.match(t.VERSION_P),this.state=9168,this.expression1();break;case 2:this.enterOuterAlt(e,2),this.state=9169,this.match(t.VERSION_P),this.state=9170,this.match(t.NO),this.state=9171,this.match(t.VALUE_P)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalXmlRootStandalone(){let e=new NI(this.context,this.state);this.enterRule(e,1096,t.RULE_optionalXmlRootStandalone);try{switch(this.state=9185,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,636,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9174,this.match(t.COMMA),this.state=9175,this.match(t.STANDALONE_P),this.state=9176,this.match(t.YES_P);break;case 2:this.enterOuterAlt(e,2),this.state=9177,this.match(t.COMMA),this.state=9178,this.match(t.STANDALONE_P),this.state=9179,this.match(t.NO);break;case 3:this.enterOuterAlt(e,3),this.state=9180,this.match(t.COMMA),this.state=9181,this.match(t.STANDALONE_P),this.state=9182,this.match(t.NO),this.state=9183,this.match(t.VALUE_P);break;case 4:this.enterOuterAlt(e,4)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}xmlAttributes(){let e=new LI(this.context,this.state);this.enterRule(e,1098,t.RULE_xmlAttributes);try{this.enterOuterAlt(e,1),this.state=9187,this.match(t.XMLATTRIBUTES),this.state=9188,this.match(t.OPEN_PAREN),this.state=9189,this.xmlAttributeList(),this.state=9190,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}xmlAttributeList(){let e,s=new CI(this.context,this.state);this.enterRule(s,1100,t.RULE_xmlAttributeList);try{for(this.enterOuterAlt(s,1),this.state=9192,this.xmlAttributeElement(),this.state=9197,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=9193,this.match(t.COMMA),this.state=9194,this.xmlAttributeElement(),this.state=9199,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}xmlAttributeElement(){let e,s=new _I(this.context,this.state);this.enterRule(s,1102,t.RULE_xmlAttributeElement);try{this.enterOuterAlt(s,1),this.state=9200,this.expression1(),this.state=9203,this.errorHandler.sync(this),e=this.tokenStream.LA(1),36===e&&(this.state=9201,this.match(t.AS),this.state=9202,this.columnLabel())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}documentOrContent(){let e,s=new PI(this.context,this.state);this.enterRule(s,1104,t.RULE_documentOrContent);try{this.enterOuterAlt(s,1),this.state=9205,e=this.tokenStream.LA(1),166===e||188===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}xmlWhitespaceOption(){let e=new MI(this.context,this.state);this.enterRule(e,1106,t.RULE_xmlWhitespaceOption);try{switch(this.state=9212,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.PRESERVE:this.enterOuterAlt(e,1),this.state=9207,this.match(t.PRESERVE),this.state=9208,this.match(t.WHITESPACE_P);break;case t.STRIP_P:this.enterOuterAlt(e,2),this.state=9209,this.match(t.STRIP_P),this.state=9210,this.match(t.WHITESPACE_P);break;case t.CLOSE_PAREN:this.enterOuterAlt(e,3);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}xmlExistsArgument(){let e=new dI(this.context,this.state);this.enterRule(e,1108,t.RULE_xmlExistsArgument);try{switch(this.state=9229,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,640,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9214,this.match(t.PASSING),this.state=9215,this.expression3();break;case 2:this.enterOuterAlt(e,2),this.state=9216,this.match(t.PASSING),this.state=9217,this.expression3(),this.state=9218,this.xmlPassingMech();break;case 3:this.enterOuterAlt(e,3),this.state=9220,this.match(t.PASSING),this.state=9221,this.xmlPassingMech(),this.state=9222,this.expression3();break;case 4:this.enterOuterAlt(e,4),this.state=9224,this.match(t.PASSING),this.state=9225,this.xmlPassingMech(),this.state=9226,this.expression3(),this.state=9227,this.xmlPassingMech()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}xmlPassingMech(){let e,s=new UI(this.context,this.state);this.enterRule(s,1110,t.RULE_xmlPassingMech);try{this.enterOuterAlt(s,1),this.state=9231,this.match(t.BY),this.state=9232,e=this.tokenStream.LA(1),297===e||450===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}withinGroupClause(){let e=new mI(this.context,this.state);this.enterRule(e,1112,t.RULE_withinGroupClause);try{switch(this.state=9241,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,641,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9234,this.match(t.WITHIN),this.state=9235,this.match(t.GROUP_P),this.state=9236,this.match(t.OPEN_PAREN),this.state=9237,this.sortClause(),this.state=9238,this.match(t.CLOSE_PAREN);break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}filterClause(){let e=new DI(this.context,this.state);this.enterRule(e,1114,t.RULE_filterClause);try{switch(this.state=9250,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,642,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9243,this.match(t.FILTER),this.state=9244,this.match(t.OPEN_PAREN),this.state=9245,this.match(t.WHERE),this.state=9246,this.expression1(),this.state=9247,this.match(t.CLOSE_PAREN);break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}windowClause(){let e=new pI(this.context,this.state);this.enterRule(e,1116,t.RULE_windowClause);try{switch(this.state=9255,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WINDOW:this.enterOuterAlt(e,1),this.state=9252,this.match(t.WINDOW),this.state=9253,this.windowDefinitionList();break;case t.EOF:case t.CLOSE_PAREN:case t.COMMA:case t.SEMI:case t.CREATE:case t.EXCEPT:case t.FETCH:case t.FOR:case t.GRANT:case t.INTERSECT:case t.INTO:case t.LIMIT:case t.OFFSET:case t.ON:case t.ORDER:case t.RETURNING:case t.THEN:case t.UNION:case t.USING:case t.WHEN:case t.WITH:case t.LOOP:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}windowDefinitionList(){let e=new gI(this.context,this.state);this.enterRule(e,1118,t.RULE_windowDefinitionList);try{let s;for(this.enterOuterAlt(e,1),this.state=9257,this.windowDefinition(),this.state=9262,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,644,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=9258,this.match(t.COMMA),this.state=9259,this.windowDefinition()),this.state=9264,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,644,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}windowDefinition(){let e=new xI(this.context,this.state);this.enterRule(e,1120,t.RULE_windowDefinition);try{this.enterOuterAlt(e,1),this.state=9265,this.columnId(),this.state=9266,this.match(t.AS),this.state=9267,this.windowSpecification()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}overClause(){let e=new kI(this.context,this.state);this.enterRule(e,1122,t.RULE_overClause);try{switch(this.state=9275,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,646,this.context)){case 1:switch(this.enterOuterAlt(e,1),this.state=9269,this.match(t.OVER),this.state=9272,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:this.state=9270,this.windowSpecification();break;case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.state=9271,this.columnId();break;default:throw new Ei(this)}break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}windowSpecification(){let e=new HI(this.context,this.state);this.enterRule(e,1124,t.RULE_windowSpecification);try{this.enterOuterAlt(e,1),this.state=9277,this.match(t.OPEN_PAREN),this.state=9278,this.optionalExistingWindowName(),this.state=9279,this.optionalPartitionClause(),this.state=9280,this.optionalSortClause(),this.state=9281,this.optionalFrameClause(),this.state=9282,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalExistingWindowName(){let e=new GI(this.context,this.state);this.enterRule(e,1126,t.RULE_optionalExistingWindowName);try{switch(this.state=9286,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,647,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9284,this.columnId();break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalPartitionClause(){let e=new FI(this.context,this.state);this.enterRule(e,1128,t.RULE_optionalPartitionClause);try{switch(this.state=9292,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.PARTITION:this.enterOuterAlt(e,1),this.state=9288,this.match(t.PARTITION),this.state=9289,this.match(t.BY),this.state=9290,this.expressionList();break;case t.CLOSE_PAREN:case t.ORDER:case t.RANGE:case t.ROWS:case t.GROUPS:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalFrameClause(){let e=new vI(this.context,this.state);this.enterRule(e,1130,t.RULE_optionalFrameClause);try{switch(this.state=9307,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.RANGE:this.enterOuterAlt(e,1),this.state=9294,this.match(t.RANGE),this.state=9295,this.frameExtent(),this.state=9296,this.optionalWindowExclusionClause();break;case t.ROWS:this.enterOuterAlt(e,2),this.state=9298,this.match(t.ROWS),this.state=9299,this.frameExtent(),this.state=9300,this.optionalWindowExclusionClause();break;case t.GROUPS:this.enterOuterAlt(e,3),this.state=9302,this.match(t.GROUPS),this.state=9303,this.frameExtent(),this.state=9304,this.optionalWindowExclusionClause();break;case t.CLOSE_PAREN:this.enterOuterAlt(e,4);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}frameExtent(){let e=new BI(this.context,this.state);this.enterRule(e,1132,t.RULE_frameExtent);try{switch(this.state=9315,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,650,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9309,this.frameBound();break;case 2:this.enterOuterAlt(e,2),this.state=9310,this.match(t.BETWEEN),this.state=9311,this.frameBound(),this.state=9312,this.match(t.AND),this.state=9313,this.frameBound()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}frameBound(){let e,s=new yI(this.context,this.state);this.enterRule(s,1134,t.RULE_frameBound);try{switch(this.state=9324,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,651,this.context)){case 1:this.enterOuterAlt(s,1),this.state=9317,this.match(t.UNBOUNDED),this.state=9318,e=this.tokenStream.LA(1),208===e||282===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case 2:this.enterOuterAlt(s,2),this.state=9319,this.match(t.CURRENT_P),this.state=9320,this.match(t.ROW);break;case 3:this.enterOuterAlt(s,3),this.state=9321,this.expression1(),this.state=9322,e=this.tokenStream.LA(1),208===e||282===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalWindowExclusionClause(){let e=new fI(this.context,this.state);this.enterRule(e,1136,t.RULE_optionalWindowExclusionClause);try{switch(this.state=9336,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.EXCLUDE:switch(this.enterOuterAlt(e,1),this.state=9326,this.match(t.EXCLUDE),this.state=9333,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CURRENT_P:this.state=9327,this.match(t.CURRENT_P),this.state=9328,this.match(t.ROW);break;case t.GROUP_P:this.state=9329,this.match(t.GROUP_P);break;case t.TIES:this.state=9330,this.match(t.TIES);break;case t.NO:this.state=9331,this.match(t.NO),this.state=9332,this.match(t.OTHERS);break;default:throw new Ei(this)}break;case t.CLOSE_PAREN:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}row(){let e,s=new YI(this.context,this.state);this.enterRule(s,1138,t.RULE_row);try{switch(this.state=9350,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ROW:this.enterOuterAlt(s,1),this.state=9338,this.match(t.ROW),this.state=9339,this.match(t.OPEN_PAREN),this.state=9341,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&805318660||!(e-33&-32)&&1<<e-33&421518725||!(e-75&-32)&&1<<e-75&2174894095||!(e-107&-32)&&1<<e-107&4294967295||!(e-139&-32)&&1<<e-139&4294967295||!(e-171&-32)&&1<<e-171&4294967295||!(e-203&-32)&&1<<e-203&4294967295||!(e-235&-32)&&1<<e-235&4294672383||!(e-267&-32)&&1<<e-267&4294967295||!(e-299&-32)&&1<<e-299&4294967295||!(e-331&-32)&&1<<e-331&4294967295||!(e-363&-32)&&1<<e-363&4294967295||!(e-395&-32)&&1<<e-395&4294967295||!(e-427&-32)&&1<<e-427&4160749567||!(e-459&-32)&&1<<e-459&4294967295||!(e-491&-32)&&1<<e-491&4026511359||!(e-523&-32)&&1<<e-523&4294967295||!(e-555&-32)&&1<<e-555&4294967295||!(e-587&-32)&&1<<e-587&4294967295||!(e-619&-32)&&1<<e-619&3561488383||!(e-654&-32)&&1<<e-654&131537)&&(this.state=9340,this.expressionList()),this.state=9343,this.match(t.CLOSE_PAREN);break;case t.OPEN_PAREN:this.enterOuterAlt(s,2),this.state=9344,this.match(t.OPEN_PAREN),this.state=9345,this.expressionList(),this.state=9346,this.match(t.COMMA),this.state=9347,this.expression1(),this.state=9348,this.match(t.CLOSE_PAREN);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}explicitRow(){let e,s=new wI(this.context,this.state);this.enterRule(s,1140,t.RULE_explicitRow);try{this.enterOuterAlt(s,1),this.state=9352,this.match(t.ROW),this.state=9353,this.match(t.OPEN_PAREN),this.state=9355,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&805318660||!(e-33&-32)&&1<<e-33&421518725||!(e-75&-32)&&1<<e-75&2174894095||!(e-107&-32)&&1<<e-107&4294967295||!(e-139&-32)&&1<<e-139&4294967295||!(e-171&-32)&&1<<e-171&4294967295||!(e-203&-32)&&1<<e-203&4294967295||!(e-235&-32)&&1<<e-235&4294672383||!(e-267&-32)&&1<<e-267&4294967295||!(e-299&-32)&&1<<e-299&4294967295||!(e-331&-32)&&1<<e-331&4294967295||!(e-363&-32)&&1<<e-363&4294967295||!(e-395&-32)&&1<<e-395&4294967295||!(e-427&-32)&&1<<e-427&4160749567||!(e-459&-32)&&1<<e-459&4294967295||!(e-491&-32)&&1<<e-491&4026511359||!(e-523&-32)&&1<<e-523&4294967295||!(e-555&-32)&&1<<e-555&4294967295||!(e-587&-32)&&1<<e-587&4294967295||!(e-619&-32)&&1<<e-619&3561488383||!(e-654&-32)&&1<<e-654&131537)&&(this.state=9354,this.expressionList()),this.state=9357,this.match(t.CLOSE_PAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}implicitRow(){let e=new bI(this.context,this.state);this.enterRule(e,1142,t.RULE_implicitRow);try{this.enterOuterAlt(e,1),this.state=9359,this.match(t.OPEN_PAREN),this.state=9360,this.expressionList(),this.state=9361,this.match(t.COMMA),this.state=9362,this.expression1(),this.state=9363,this.match(t.CLOSE_PAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}subType(){let e,s=new WI(this.context,this.state);this.enterRule(s,1144,t.RULE_subType);try{this.enterOuterAlt(s,1),this.state=9365,e=this.tokenStream.LA(1),30===e||34===e||90===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}allOperator(){let e=new VI(this.context,this.state);this.enterRule(e,1146,t.RULE_allOperator);try{switch(this.state=9369,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.Operator:this.enterOuterAlt(e,1),this.state=9367,this.match(t.Operator);break;case t.STAR:case t.EQUAL:case t.PLUS:case t.MINUS:case t.SLASH:case t.CARET:case t.LT:case t.GT:case t.LESS_EQUALS:case t.GREATER_EQUALS:case t.NOT_EQUALS:case t.PERCENT:this.enterOuterAlt(e,2),this.state=9368,this.mathOperator();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}mathOperator(){let e,s=new XI(this.context,this.state);this.enterRule(s,1148,t.RULE_mathOperator);try{this.enterOuterAlt(s,1),this.state=9371,e=this.tokenStream.LA(1),!(-32&e)&&1<<e&178517504?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}operatorQualifier(){let e=new KI(this.context,this.state);this.enterRule(e,1150,t.RULE_operatorQualifier);try{switch(this.state=9379,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.Operator:this.enterOuterAlt(e,1),this.state=9373,this.match(t.Operator);break;case t.OPERATOR:this.enterOuterAlt(e,2),this.state=9374,this.match(t.OPERATOR),this.state=9375,this.match(t.OPEN_PAREN),this.state=9376,this.anyOperator(),this.state=9377,this.match(t.CLOSE_PAREN);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}allOperatorQualifier(){let e=new QI(this.context,this.state);this.enterRule(e,1152,t.RULE_allOperatorQualifier);try{switch(this.state=9387,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.STAR:case t.EQUAL:case t.PLUS:case t.MINUS:case t.SLASH:case t.CARET:case t.LT:case t.GT:case t.LESS_EQUALS:case t.GREATER_EQUALS:case t.NOT_EQUALS:case t.PERCENT:case t.Operator:this.enterOuterAlt(e,1),this.state=9381,this.allOperator();break;case t.OPERATOR:this.enterOuterAlt(e,2),this.state=9382,this.match(t.OPERATOR),this.state=9383,this.match(t.OPEN_PAREN),this.state=9384,this.anyOperator(),this.state=9385,this.match(t.CLOSE_PAREN);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}subqueryOperator(){let e=new JI(this.context,this.state);this.enterRule(e,1154,t.RULE_subqueryOperator);try{switch(this.state=9401,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,660,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9389,this.allOperator();break;case 2:this.enterOuterAlt(e,2),this.state=9390,this.match(t.OPERATOR),this.state=9391,this.match(t.OPEN_PAREN),this.state=9392,this.anyOperator(),this.state=9393,this.match(t.CLOSE_PAREN);break;case 3:this.enterOuterAlt(e,3),this.state=9395,this.match(t.LIKE);break;case 4:this.enterOuterAlt(e,4),this.state=9396,this.match(t.NOT),this.state=9397,this.match(t.LIKE);break;case 5:this.enterOuterAlt(e,5),this.state=9398,this.match(t.ILIKE);break;case 6:this.enterOuterAlt(e,6),this.state=9399,this.match(t.NOT),this.state=9400,this.match(t.ILIKE)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expressionList(){let e=new ZI(this.context,this.state);this.enterRule(e,1156,t.RULE_expressionList);try{let s;for(this.enterOuterAlt(e,1),this.state=9403,this.expression1(),this.state=9408,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,661,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=9404,this.match(t.COMMA),this.state=9405,this.expression1()),this.state=9410,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,661,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}functionArgumentList(){let e=new qI(this.context,this.state);this.enterRule(e,1158,t.RULE_functionArgumentList);try{let s;for(this.enterOuterAlt(e,1),this.state=9411,this.functionArgumentExpression(),this.state=9416,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,662,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=9412,this.match(t.COMMA),this.state=9413,this.functionArgumentExpression()),this.state=9418,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,662,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}functionArgumentExpression(){let e,s=new jI(this.context,this.state);this.enterRule(s,1160,t.RULE_functionArgumentExpression);try{switch(this.state=9424,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,663,this.context)){case 1:this.enterOuterAlt(s,1),this.state=9419,this.expression1();break;case 2:this.enterOuterAlt(s,2),this.state=9420,this.parameterName(),this.state=9421,e=this.tokenStream.LA(1),20===e||22===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=9422,this.expression1()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}typeList(){let e,s=new zI(this.context,this.state);this.enterRule(s,1162,t.RULE_typeList);try{for(this.enterOuterAlt(s,1),this.state=9426,this.typeName(),this.state=9431,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=9427,this.match(t.COMMA),this.state=9428,this.typeName(),this.state=9433,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}arrayExpression(){let e=new $I(this.context,this.state);this.enterRule(e,1164,t.RULE_arrayExpression);try{switch(this.enterOuterAlt(e,1),this.state=9434,this.match(t.OPEN_BRACKET),this.state=9437,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:case t.PLUS:case t.MINUS:case t.PARAM:case t.Operator:case t.AND:case t.ARRAY:case t.CASE:case t.CAST:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CURRENT_CATALOG:case t.CURRENT_DATE:case t.CURRENT_ROLE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.CURRENT_USER:case t.DEFAULT:case t.DO:case t.FALSE_P:case t.FETCH:case t.LOCALTIME:case t.LOCALTIMESTAMP:case t.NOT:case t.NULL_P:case t.SESSION_USER:case t.TABLE:case t.TRUE_P:case t.UNIQUE:case t.USER:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LEFT:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.RIGHT:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.BinaryStringConstant:case t.HexadecimalStringConstant:case t.Integral:case t.Numeric:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:this.state=9435,this.expressionList();break;case t.OPEN_BRACKET:this.state=9436,this.arrayExpressionList();case t.CLOSE_BRACKET:}this.state=9439,this.match(t.CLOSE_BRACKET)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}arrayExpressionList(){let e,s=new tu(this.context,this.state);this.enterRule(s,1166,t.RULE_arrayExpressionList);try{for(this.enterOuterAlt(s,1),this.state=9441,this.arrayExpression(),this.state=9446,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=9442,this.match(t.COMMA),this.state=9443,this.arrayExpression(),this.state=9448,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}extractList(){let e=new eu(this.context,this.state);this.enterRule(e,1168,t.RULE_extractList);try{switch(this.state=9454,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.OUTER_P:case t.ABSOLUTE_P:case t.BACKWARD:case t.CHAIN:case t.CLOSE:case t.COMMIT:case t.CONTINUE_P:case t.CURSOR:case t.DAY_P:case t.FIRST_P:case t.FORWARD:case t.HOUR_P:case t.INSERT:case t.LAST_P:case t.MINUTE_P:case t.MONTH_P:case t.MOVE:case t.NEXT:case t.NO:case t.OPTION:case t.PRIOR:case t.RELATIVE_P:case t.RESET:case t.ROLLBACK:case t.SCHEMA:case t.SCROLL:case t.SECOND_P:case t.SET:case t.TYPE_P:case t.YEAR_P:case t.CALL:case t.CURRENT_P:case t.ROWTYPE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:this.enterOuterAlt(e,1),this.state=9449,this.extractArgument(),this.state=9450,this.match(t.FROM),this.state=9451,this.expression1();break;case t.CLOSE_PAREN:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}extractArgument(){let e=new su(this.context,this.state);this.enterRule(e,1170,t.RULE_extractArgument);try{switch(this.state=9464,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.OUTER_P:case t.ABSOLUTE_P:case t.BACKWARD:case t.CHAIN:case t.CLOSE:case t.COMMIT:case t.CONTINUE_P:case t.CURSOR:case t.FIRST_P:case t.FORWARD:case t.INSERT:case t.LAST_P:case t.MOVE:case t.NEXT:case t.NO:case t.OPTION:case t.PRIOR:case t.RELATIVE_P:case t.RESET:case t.ROLLBACK:case t.SCHEMA:case t.SCROLL:case t.SET:case t.TYPE_P:case t.CALL:case t.CURRENT_P:case t.ROWTYPE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,1),this.state=9456,this.identifier();break;case t.YEAR_P:this.enterOuterAlt(e,2),this.state=9457,this.match(t.YEAR_P);break;case t.MONTH_P:this.enterOuterAlt(e,3),this.state=9458,this.match(t.MONTH_P);break;case t.DAY_P:this.enterOuterAlt(e,4),this.state=9459,this.match(t.DAY_P);break;case t.HOUR_P:this.enterOuterAlt(e,5),this.state=9460,this.match(t.HOUR_P);break;case t.MINUTE_P:this.enterOuterAlt(e,6),this.state=9461,this.match(t.MINUTE_P);break;case t.SECOND_P:this.enterOuterAlt(e,7),this.state=9462,this.match(t.SECOND_P);break;case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.EscapeStringConstant:this.enterOuterAlt(e,8),this.state=9463,this.sconst();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}unicodeNormalForm(){let e,s=new au(this.context,this.state);this.enterRule(s,1172,t.RULE_unicodeNormalForm);try{this.enterOuterAlt(s,1),this.state=9466,e=this.tokenStream.LA(1),!(e-483&-32)&&1<<e-483&15?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}overlayList(){let e,s=new ru(this.context,this.state);this.enterRule(s,1174,t.RULE_overlayList);try{this.enterOuterAlt(s,1),this.state=9468,this.expression1(),this.state=9469,this.match(t.PLACING),this.state=9470,this.expression1(),this.state=9471,this.match(t.FROM),this.state=9472,this.expression1(),this.state=9475,this.errorHandler.sync(this),e=this.tokenStream.LA(1),62===e&&(this.state=9473,this.match(t.FOR),this.state=9474,this.expression1())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}positionList(){let e=new iu(this.context,this.state);this.enterRule(e,1176,t.RULE_positionList);try{switch(this.state=9482,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:case t.PLUS:case t.MINUS:case t.PARAM:case t.Operator:case t.AND:case t.ARRAY:case t.CASE:case t.CAST:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CURRENT_CATALOG:case t.CURRENT_DATE:case t.CURRENT_ROLE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.CURRENT_USER:case t.DEFAULT:case t.DO:case t.FALSE_P:case t.FETCH:case t.LOCALTIME:case t.LOCALTIMESTAMP:case t.NULL_P:case t.SESSION_USER:case t.TABLE:case t.TRUE_P:case t.UNIQUE:case t.USER:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LEFT:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.RIGHT:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.BinaryStringConstant:case t.HexadecimalStringConstant:case t.Integral:case t.Numeric:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:this.enterOuterAlt(e,1),this.state=9477,this.expression2(0),this.state=9478,this.match(t.IN_P),this.state=9479,this.expression2(0);break;case t.CLOSE_PAREN:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}substrList(){let e=new cu(this.context,this.state);this.enterRule(e,1178,t.RULE_substrList);try{switch(this.state=9511,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,671,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9484,this.expression1(),this.state=9485,this.match(t.FROM),this.state=9486,this.expression1(),this.state=9487,this.match(t.FOR),this.state=9488,this.expression1();break;case 2:this.enterOuterAlt(e,2),this.state=9490,this.expression1(),this.state=9491,this.match(t.FOR),this.state=9492,this.expression1(),this.state=9493,this.match(t.FROM),this.state=9494,this.expression1();break;case 3:this.enterOuterAlt(e,3),this.state=9496,this.expression1(),this.state=9497,this.match(t.FROM),this.state=9498,this.expression1();break;case 4:this.enterOuterAlt(e,4),this.state=9500,this.expression1(),this.state=9501,this.match(t.FOR),this.state=9502,this.expression1();break;case 5:this.enterOuterAlt(e,5),this.state=9504,this.expression1(),this.state=9505,this.match(t.SIMILAR),this.state=9506,this.expression1(),this.state=9507,this.match(t.ESCAPE),this.state=9508,this.expression1();break;case 6:this.enterOuterAlt(e,6),this.state=9510,this.expressionList()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}trimList(){let e=new nu(this.context,this.state);this.enterRule(e,1180,t.RULE_trimList);try{switch(this.state=9520,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,672,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9513,this.expression1(),this.state=9514,this.match(t.FROM),this.state=9515,this.expressionList();break;case 2:this.enterOuterAlt(e,2),this.state=9517,this.match(t.FROM),this.state=9518,this.expressionList();break;case 3:this.enterOuterAlt(e,3),this.state=9519,this.expressionList()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}inExpression(){let e=new hu(this.context,this.state);this.enterRule(e,1182,t.RULE_inExpression);try{switch(this.state=9527,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,673,this.context)){case 1:e=new Tu(e),this.enterOuterAlt(e,1),this.state=9522,this.selectWithParenthesis();break;case 2:e=new Eu(e),this.enterOuterAlt(e,2),this.state=9523,this.match(t.OPEN_PAREN),this.state=9524,this.expressionList(),this.state=9525,this.match(t.CLOSE_PAREN)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}caseExpression(){let e=new ou(this.context,this.state);this.enterRule(e,1184,t.RULE_caseExpression);try{this.enterOuterAlt(e,1),this.state=9529,this.match(t.CASE),this.state=9530,this.caseArg(),this.state=9531,this.whenClauseList(),this.state=9532,this.caseDefault(),this.state=9533,this.match(t.END_P)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}whenClauseList(){let e,s=new Ru(this.context,this.state);this.enterRule(s,1186,t.RULE_whenClauseList);try{this.enterOuterAlt(s,1),this.state=9536,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=9535,this.whenClause(),this.state=9538,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(102===e)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}whenClause(){let e=new Au(this.context,this.state);this.enterRule(e,1188,t.RULE_whenClause);try{this.enterOuterAlt(e,1),this.state=9540,this.match(t.WHEN),this.state=9541,this.expression1(),this.state=9542,this.match(t.THEN),this.state=9543,this.expression1()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}caseDefault(){let e=new Su(this.context,this.state);this.enterRule(e,1190,t.RULE_caseDefault);try{switch(this.state=9548,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ELSE:this.enterOuterAlt(e,1),this.state=9545,this.match(t.ELSE),this.state=9546,this.expression1();break;case t.END_P:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}caseArg(){let e=new lu(this.context,this.state);this.enterRule(e,1192,t.RULE_caseArg);try{switch(this.state=9552,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:case t.PLUS:case t.MINUS:case t.PARAM:case t.Operator:case t.AND:case t.ARRAY:case t.CASE:case t.CAST:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CURRENT_CATALOG:case t.CURRENT_DATE:case t.CURRENT_ROLE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.CURRENT_USER:case t.DEFAULT:case t.DO:case t.FALSE_P:case t.FETCH:case t.LOCALTIME:case t.LOCALTIMESTAMP:case t.NOT:case t.NULL_P:case t.SESSION_USER:case t.TABLE:case t.TRUE_P:case t.UNIQUE:case t.USER:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LEFT:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.RIGHT:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.BinaryStringConstant:case t.HexadecimalStringConstant:case t.Integral:case t.Numeric:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:this.enterOuterAlt(e,1),this.state=9550,this.expression1();break;case t.WHEN:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}columnReference(){let e=new Ou(this.context,this.state);this.enterRule(e,1194,t.RULE_columnReference);try{if(1===(this.enterOuterAlt(e,1),this.state=9554,this.columnId(),this.state=9556,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,677,this.context)))this.state=9555,this.indirection()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}indirectionElement(){let e,s=new Iu(this.context,this.state);this.enterRule(s,1196,t.RULE_indirectionElement);try{switch(this.state=9575,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DOT:switch(this.enterOuterAlt(s,1),this.state=9558,this.match(t.DOT),this.state=9561,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ALL:case t.ANALYSE:case t.ANALYZE:case t.AND:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASYMMETRIC:case t.BOTH:case t.CASE:case t.CAST:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CREATE:case t.CURRENT_CATALOG:case t.CURRENT_DATE:case t.CURRENT_ROLE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.CURRENT_USER:case t.DEFAULT:case t.DEFERRABLE:case t.DESC:case t.DISTINCT:case t.DO:case t.ELSE:case t.EXCEPT:case t.FALSE_P:case t.FETCH:case t.FOR:case t.FOREIGN:case t.FROM:case t.GRANT:case t.GROUP_P:case t.HAVING:case t.IN_P:case t.INITIALLY:case t.INTERSECT:case t.LATERAL_P:case t.LEADING:case t.LIMIT:case t.LOCALTIME:case t.LOCALTIMESTAMP:case t.NOT:case t.NULL_P:case t.OFFSET:case t.ON:case t.ONLY:case t.OR:case t.ORDER:case t.PLACING:case t.PRIMARY:case t.REFERENCES:case t.RETURNING:case t.SELECT:case t.SESSION_USER:case t.SOME:case t.SYMMETRIC:case t.TABLE:case t.THEN:case t.TO:case t.TRAILING:case t.TRUE_P:case t.UNION:case t.UNIQUE:case t.USER:case t.USING:case t.VARIADIC:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.END_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.state=9559,this.attributeName();break;case t.STAR:this.state=9560,this.match(t.STAR);break;default:throw new Ei(this)}break;case t.OPEN_BRACKET:switch(this.enterOuterAlt(s,2),this.state=9563,this.match(t.OPEN_BRACKET),this.state=9572,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,681,this.context)){case 1:this.state=9564,this.expression1();break;case 2:this.state=9566,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&805318660||!(e-33&-32)&&1<<e-33&421518725||!(e-75&-32)&&1<<e-75&2174894095||!(e-107&-32)&&1<<e-107&4294967295||!(e-139&-32)&&1<<e-139&4294967295||!(e-171&-32)&&1<<e-171&4294967295||!(e-203&-32)&&1<<e-203&4294967295||!(e-235&-32)&&1<<e-235&4294672383||!(e-267&-32)&&1<<e-267&4294967295||!(e-299&-32)&&1<<e-299&4294967295||!(e-331&-32)&&1<<e-331&4294967295||!(e-363&-32)&&1<<e-363&4294967295||!(e-395&-32)&&1<<e-395&4294967295||!(e-427&-32)&&1<<e-427&4160749567||!(e-459&-32)&&1<<e-459&4294967295||!(e-491&-32)&&1<<e-491&4026511359||!(e-523&-32)&&1<<e-523&4294967295||!(e-555&-32)&&1<<e-555&4294967295||!(e-587&-32)&&1<<e-587&4294967295||!(e-619&-32)&&1<<e-619&3561488383||!(e-654&-32)&&1<<e-654&131537)&&(this.state=9565,this.expression1()),this.state=9568,this.match(t.COLON),this.state=9570,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&805318660||!(e-33&-32)&&1<<e-33&421518725||!(e-75&-32)&&1<<e-75&2174894095||!(e-107&-32)&&1<<e-107&4294967295||!(e-139&-32)&&1<<e-139&4294967295||!(e-171&-32)&&1<<e-171&4294967295||!(e-203&-32)&&1<<e-203&4294967295||!(e-235&-32)&&1<<e-235&4294672383||!(e-267&-32)&&1<<e-267&4294967295||!(e-299&-32)&&1<<e-299&4294967295||!(e-331&-32)&&1<<e-331&4294967295||!(e-363&-32)&&1<<e-363&4294967295||!(e-395&-32)&&1<<e-395&4294967295||!(e-427&-32)&&1<<e-427&4160749567||!(e-459&-32)&&1<<e-459&4294967295||!(e-491&-32)&&1<<e-491&4026511359||!(e-523&-32)&&1<<e-523&4294967295||!(e-555&-32)&&1<<e-555&4294967295||!(e-587&-32)&&1<<e-587&4294967295||!(e-619&-32)&&1<<e-619&3561488383||!(e-654&-32)&&1<<e-654&131537)&&(this.state=9569,this.expression1())}this.state=9574,this.match(t.CLOSE_BRACKET);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}indirection(){let e=new uu(this.context,this.state);this.enterRule(e,1198,t.RULE_indirection);try{let t;this.enterOuterAlt(e,1),this.state=9578,this.errorHandler.sync(this),t=1;do{if(1!==t)throw new Ei(this);this.state=9577,this.indirectionElement(),this.state=9580,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,683,this.context)}while(2!==t&&t!==ja.INVALID_ALT_NUMBER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalIndirection(){let e=new Nu(this.context,this.state);this.enterRule(e,1200,t.RULE_optionalIndirection);try{let t;for(this.enterOuterAlt(e,1),this.state=9585,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,684,this.context);2!==t&&t!==ja.INVALID_ALT_NUMBER;)1===t&&(this.state=9582,this.indirectionElement()),this.state=9587,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,684,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalTargetList(){let e=new Lu(this.context,this.state);this.enterRule(e,1202,t.RULE_optionalTargetList);try{switch(this.state=9590,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,685,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9588,this.targetList();break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}targetList(){let e=new Cu(this.context,this.state);this.enterRule(e,1204,t.RULE_targetList);try{let s;for(this.enterOuterAlt(e,1),this.state=9592,this.targetElement(),this.state=9597,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,686,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=9593,this.match(t.COMMA),this.state=9594,this.targetElement()),this.state=9599,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,686,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}targetElement(){let e=new _u(this.context,this.state);this.enterRule(e,1206,t.RULE_targetElement);try{switch(this.state=9608,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.STAR:e=new Pu(e),this.enterOuterAlt(e,1),this.state=9600,this.match(t.STAR);break;case t.OPEN_PAREN:case t.PLUS:case t.MINUS:case t.PARAM:case t.Operator:case t.AND:case t.ARRAY:case t.CASE:case t.CAST:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CURRENT_CATALOG:case t.CURRENT_DATE:case t.CURRENT_ROLE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.CURRENT_USER:case t.DEFAULT:case t.DO:case t.FALSE_P:case t.FETCH:case t.LOCALTIME:case t.LOCALTIMESTAMP:case t.NOT:case t.NULL_P:case t.SESSION_USER:case t.TABLE:case t.TRUE_P:case t.UNIQUE:case t.USER:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LEFT:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.RIGHT:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.BinaryStringConstant:case t.HexadecimalStringConstant:case t.Integral:case t.Numeric:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:switch(e=new Mu(e),this.enterOuterAlt(e,2),this.state=9601,this.expression1(),this.state=9606,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,687,this.context)){case 1:this.state=9602,this.match(t.AS),this.state=9603,this.columnLabel();break;case 2:this.state=9604,this.identifier()}break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}qualifiedNameList(){let e,s=new du(this.context,this.state);this.enterRule(s,1208,t.RULE_qualifiedNameList);try{for(this.enterOuterAlt(s,1),this.state=9610,this.qualifiedName(),this.state=9615,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=9611,this.match(t.COMMA),this.state=9612,this.qualifiedName(),this.state=9617,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}databaseName(){let e=new Uu(this.context,this.state);this.enterRule(e,1210,t.RULE_databaseName);try{this.enterOuterAlt(e,1),this.state=9618,this.name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}databaseNameList(){let e,s=new mu(this.context,this.state);this.enterRule(s,1212,t.RULE_databaseNameList);try{for(this.enterOuterAlt(s,1),this.state=9620,this.databaseName(),this.state=9625,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=9621,this.match(t.COMMA),this.state=9622,this.databaseName(),this.state=9627,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}schemaName(){let e=new Du(this.context,this.state);this.enterRule(e,1214,t.RULE_schemaName);try{this.enterOuterAlt(e,1),this.state=9628,this.name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}schemaNameList(){let e,s=new pu(this.context,this.state);this.enterRule(s,1216,t.RULE_schemaNameList);try{for(this.enterOuterAlt(s,1),this.state=9630,this.schemaName(),this.state=9635,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=9631,this.match(t.COMMA),this.state=9632,this.schemaName(),this.state=9637,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}indexName(){let e=new gu(this.context,this.state);this.enterRule(e,1218,t.RULE_indexName);try{this.enterOuterAlt(e,1),this.state=9638,this.qualifiedName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}indexNameList(){let e,s=new xu(this.context,this.state);this.enterRule(s,1220,t.RULE_indexNameList);try{for(this.enterOuterAlt(s,1),this.state=9640,this.indexName(),this.state=9645,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=9641,this.match(t.COMMA),this.state=9642,this.indexName(),this.state=9647,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}triggerName(){let e=new ku(this.context,this.state);this.enterRule(e,1222,t.RULE_triggerName);try{this.enterOuterAlt(e,1),this.state=9648,this.name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}constraintName(){let e=new Hu(this.context,this.state);this.enterRule(e,1224,t.RULE_constraintName);try{this.enterOuterAlt(e,1),this.state=9650,this.name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}sequenceName(){let e=new Gu(this.context,this.state);this.enterRule(e,1226,t.RULE_sequenceName);try{this.enterOuterAlt(e,1),this.state=9652,this.qualifiedName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}sequenceNameList(){let e,s=new Fu(this.context,this.state);this.enterRule(s,1228,t.RULE_sequenceNameList);try{for(this.enterOuterAlt(s,1),this.state=9654,this.sequenceName(),this.state=9659,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=9655,this.match(t.COMMA),this.state=9656,this.sequenceName(),this.state=9661,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}qualifiedName(){let e,s=new vu(this.context,this.state);this.enterRule(s,1230,t.RULE_qualifiedName);try{this.enterOuterAlt(s,1),this.state=9662,this.columnId(),this.state=9664,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(4===e||11===e)&&(this.state=9663,this.indirection())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}nameList(){let e,s=new Bu(this.context,this.state);this.enterRule(s,1232,t.RULE_nameList);try{for(this.enterOuterAlt(s,1),this.state=9666,this.name(),this.state=9671,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=9667,this.match(t.COMMA),this.state=9668,this.name(),this.state=9673,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}name(){let e=new yu(this.context,this.state);this.enterRule(e,1234,t.RULE_name);try{this.enterOuterAlt(e,1),this.state=9674,this.columnId()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}attributeName(){let e=new fu(this.context,this.state);this.enterRule(e,1236,t.RULE_attributeName);try{this.enterOuterAlt(e,1),this.state=9676,this.columnLabel()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}fileName(){let e=new Yu(this.context,this.state);this.enterRule(e,1238,t.RULE_fileName);try{this.enterOuterAlt(e,1),this.state=9678,this.sconst()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}functionName(){let e=new wu(this.context,this.state);this.enterRule(e,1240,t.RULE_functionName);try{switch(this.state=9687,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,696,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9680,this.builtinFunctionName();break;case 2:this.enterOuterAlt(e,2),this.state=9681,this.typeFunctionName();break;case 3:this.enterOuterAlt(e,3),this.state=9682,this.columnId(),this.state=9683,this.indirection();break;case 4:this.enterOuterAlt(e,4),this.state=9685,this.match(t.LEFT);break;case 5:this.enterOuterAlt(e,5),this.state=9686,this.match(t.RIGHT)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}aExpressionConst(){let e=new bu(this.context,this.state);this.enterRule(e,1242,t.RULE_aExpressionConst);try{switch(this.state=9721,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,699,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9689,this.iconst();break;case 2:this.enterOuterAlt(e,2),this.state=9690,this.fconst();break;case 3:this.enterOuterAlt(e,3),this.state=9691,this.sconst();break;case 4:this.enterOuterAlt(e,4),this.state=9692,this.bconst();break;case 5:this.enterOuterAlt(e,5),this.state=9693,this.xconst();break;case 6:switch(this.enterOuterAlt(e,6),this.state=9694,this.functionName(),this.state=9702,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.EscapeStringConstant:this.state=9695,this.sconst();break;case t.OPEN_PAREN:this.state=9696,this.match(t.OPEN_PAREN),this.state=9697,this.functionArgumentList(),this.state=9698,this.optionalSortClause(),this.state=9699,this.match(t.CLOSE_PAREN),this.state=9700,this.sconst();break;default:throw new Ei(this)}break;case 7:this.enterOuterAlt(e,7),this.state=9704,this.constTypeName(),this.state=9705,this.sconst();break;case 8:switch(this.enterOuterAlt(e,8),this.state=9707,this.constInterval(),this.state=9716,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.EscapeStringConstant:this.state=9708,this.sconst(),this.state=9709,this.optionalInterval();break;case t.OPEN_PAREN:this.state=9711,this.match(t.OPEN_PAREN),this.state=9712,this.iconst(),this.state=9713,this.match(t.CLOSE_PAREN),this.state=9714,this.sconst();break;default:throw new Ei(this)}break;case 9:this.enterOuterAlt(e,9),this.state=9718,this.match(t.TRUE_P);break;case 10:this.enterOuterAlt(e,10),this.state=9719,this.match(t.FALSE_P);break;case 11:this.enterOuterAlt(e,11),this.state=9720,this.match(t.NULL_P)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}xconst(){let e=new Wu(this.context,this.state);this.enterRule(e,1244,t.RULE_xconst);try{this.enterOuterAlt(e,1),this.state=9723,this.match(t.HexadecimalStringConstant)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}bconst(){let e=new Vu(this.context,this.state);this.enterRule(e,1246,t.RULE_bconst);try{this.enterOuterAlt(e,1),this.state=9725,this.match(t.BinaryStringConstant)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}fconst(){let e=new Xu(this.context,this.state);this.enterRule(e,1248,t.RULE_fconst);try{this.enterOuterAlt(e,1),this.state=9727,this.match(t.Numeric)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}iconst(){let e=new Ku(this.context,this.state);this.enterRule(e,1250,t.RULE_iconst);try{this.enterOuterAlt(e,1),this.state=9729,this.match(t.Integral)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}sconst(){let e=new Qu(this.context,this.state);this.enterRule(e,1252,t.RULE_sconst);try{this.enterOuterAlt(e,1),this.state=9731,this.anySconst(),this.state=9732,this.optionalUescape()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}anySconst(){let e,s=new Ju(this.context,this.state);this.enterRule(s,1254,t.RULE_anySconst);try{switch(this.state=9745,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.StringConstant:this.enterOuterAlt(s,1),this.state=9734,this.match(t.StringConstant);break;case t.UnicodeEscapeStringConstant:this.enterOuterAlt(s,2),this.state=9735,this.match(t.UnicodeEscapeStringConstant);break;case t.BeginDollarStringConstant:for(this.enterOuterAlt(s,3),this.state=9736,this.match(t.BeginDollarStringConstant),this.state=9740,this.errorHandler.sync(this),e=this.tokenStream.LA(1);677===e;)this.state=9737,this.match(t.DollarText),this.state=9742,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=9743,this.match(t.EndDollarStringConstant);break;case t.EscapeStringConstant:this.enterOuterAlt(s,4),this.state=9744,this.match(t.EscapeStringConstant);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalUescape(){let e=new Zu(this.context,this.state);this.enterRule(e,1256,t.RULE_optionalUescape);try{switch(this.state=9750,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,702,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9747,this.match(t.UESCAPE),this.state=9748,this.anySconst();break;case 2:this.enterOuterAlt(e,2)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}signedIconst(){let e=new qu(this.context,this.state);this.enterRule(e,1258,t.RULE_signedIconst);try{switch(this.state=9757,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.Integral:this.enterOuterAlt(e,1),this.state=9752,this.iconst();break;case t.PLUS:this.enterOuterAlt(e,2),this.state=9753,this.match(t.PLUS),this.state=9754,this.iconst();break;case t.MINUS:this.enterOuterAlt(e,3),this.state=9755,this.match(t.MINUS),this.state=9756,this.iconst();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}roleName(){let e=new ju(this.context,this.state);this.enterRule(e,1260,t.RULE_roleName);try{switch(this.state=9762,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,1),this.state=9759,this.nonReservedWord();break;case t.CURRENT_USER:this.enterOuterAlt(e,2),this.state=9760,this.match(t.CURRENT_USER);break;case t.SESSION_USER:this.enterOuterAlt(e,3),this.state=9761,this.match(t.SESSION_USER);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}roleNameList(){let e,s=new zu(this.context,this.state);this.enterRule(s,1262,t.RULE_roleNameList);try{for(this.enterOuterAlt(s,1),this.state=9764,this.roleName(),this.state=9769,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=9765,this.match(t.COMMA),this.state=9766,this.roleName(),this.state=9771,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}columnId(){let e=new $u(this.context,this.state);this.enterRule(e,1264,t.RULE_columnId);try{switch(this.state=9778,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,706,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9772,this.identifier();break;case 2:this.enterOuterAlt(e,2),this.state=9773,this.unreservedKeyword();break;case 3:this.enterOuterAlt(e,3),this.state=9774,this.columnNameKeyword();break;case 4:this.enterOuterAlt(e,4),this.state=9775,this.plsqlUnreservedKeyword();break;case 5:this.enterOuterAlt(e,5),this.state=9776,this.match(t.LEFT);break;case 6:this.enterOuterAlt(e,6),this.state=9777,this.match(t.RIGHT)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableAlias(){let e=new tN(this.context,this.state);this.enterRule(e,1266,t.RULE_tableAlias);try{switch(this.state=9784,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,707,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9780,this.identifier();break;case 2:this.enterOuterAlt(e,2),this.state=9781,this.unreservedKeyword();break;case 3:this.enterOuterAlt(e,3),this.state=9782,this.columnNameKeyword();break;case 4:this.enterOuterAlt(e,4),this.state=9783,this.plsqlUnreservedKeyword()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}typeFunctionName(){let e=new eN(this.context,this.state);this.enterRule(e,1268,t.RULE_typeFunctionName);try{switch(this.state=9790,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,708,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9786,this.identifier();break;case 2:this.enterOuterAlt(e,2),this.state=9787,this.unreservedKeyword();break;case 3:this.enterOuterAlt(e,3),this.state=9788,this.plsqlUnreservedKeyword();break;case 4:this.enterOuterAlt(e,4),this.state=9789,this.typeFunctionNameKeyword()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}nonReservedWord(){let e=new sN(this.context,this.state);this.enterRule(e,1270,t.RULE_nonReservedWord);try{switch(this.state=9796,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,709,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9792,this.identifier();break;case 2:this.enterOuterAlt(e,2),this.state=9793,this.unreservedKeyword();break;case 3:this.enterOuterAlt(e,3),this.state=9794,this.columnNameKeyword();break;case 4:this.enterOuterAlt(e,4),this.state=9795,this.typeFunctionNameKeyword()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}columnLabel(){let e=new aN(this.context,this.state);this.enterRule(e,1272,t.RULE_columnLabel);try{switch(this.state=9804,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,710,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9798,this.identifier();break;case 2:this.enterOuterAlt(e,2),this.state=9799,this.plsqlUnreservedKeyword();break;case 3:this.enterOuterAlt(e,3),this.state=9800,this.unreservedKeyword();break;case 4:this.enterOuterAlt(e,4),this.state=9801,this.columnNameKeyword();break;case 5:this.enterOuterAlt(e,5),this.state=9802,this.typeFunctionNameKeyword();break;case 6:this.enterOuterAlt(e,6),this.state=9803,this.reservedKeyword()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}identifier(){let e=new rN(this.context,this.state);this.enterRule(e,1274,t.RULE_identifier);try{switch(this.state=9813,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.Identifier:this.enterOuterAlt(e,1),this.state=9806,this.match(t.Identifier),this.state=9807,this.optionalUescape();break;case t.QuotedIdentifier:this.enterOuterAlt(e,2),this.state=9808,this.match(t.QuotedIdentifier);break;case t.UnicodeQuotedIdentifier:this.enterOuterAlt(e,3),this.state=9809,this.match(t.UnicodeQuotedIdentifier);break;case t.PLSQLVARIABLENAME:this.enterOuterAlt(e,4),this.state=9810,this.plsqlVariableName();break;case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,5),this.state=9811,this.plsqlIdentifier();break;case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.OUTER_P:case t.ABSOLUTE_P:case t.BACKWARD:case t.CHAIN:case t.CLOSE:case t.COMMIT:case t.CONTINUE_P:case t.CURSOR:case t.FIRST_P:case t.FORWARD:case t.INSERT:case t.LAST_P:case t.MOVE:case t.NEXT:case t.NO:case t.OPTION:case t.PRIOR:case t.RELATIVE_P:case t.RESET:case t.ROLLBACK:case t.SCHEMA:case t.SCROLL:case t.SET:case t.TYPE_P:case t.CALL:case t.CURRENT_P:case t.ROWTYPE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:this.enterOuterAlt(e,6),this.state=9812,this.plsqlUnreservedKeyword();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}plsqlIdentifier(){let e=new iN(this.context,this.state);this.enterRule(e,1276,t.RULE_plsqlIdentifier);try{this.enterOuterAlt(e,1),this.state=9815,this.match(t.PLSQLIDENTIFIER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}unreservedKeyword(){let e,s=new cN(this.context,this.state);this.enterRule(s,1278,t.RULE_unreservedKeyword);try{this.enterOuterAlt(s,1),this.state=9817,e=this.tokenStream.LA(1),!(e-124&-32)&&1<<e-124&4294967265||!(e-156&-32)&&1<<e-156&4294967295||!(e-188&-32)&&1<<e-188&4294967295||!(e-220&-32)&&1<<e-220&3221225471||!(e-252&-32)&&1<<e-252&4294967293||!(e-284&-32)&&1<<e-284&4293918719||!(e-316&-32)&&1<<e-316&4294967295||!(e-348&-32)&&1<<e-348&4294967295||!(e-433&-32)&&1<<e-433&4291821567||!(e-465&-32)&&1<<e-465&16770399?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}columnNameKeyword(){let e=new nN(this.context,this.state);this.enterRule(e,1280,t.RULE_columnNameKeyword);try{switch(this.state=9871,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,712,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9819,this.match(t.BETWEEN);break;case 2:this.enterOuterAlt(e,2),this.state=9820,this.match(t.BIGINT);break;case 3:this.enterOuterAlt(e,3),this.state=9821,this.bit();break;case 4:this.enterOuterAlt(e,4),this.state=9822,this.match(t.BOOLEAN_P);break;case 5:this.enterOuterAlt(e,5),this.state=9823,this.match(t.CHAR_P);break;case 6:this.enterOuterAlt(e,6),this.state=9824,this.character();break;case 7:this.enterOuterAlt(e,7),this.state=9825,this.match(t.COALESCE);break;case 8:this.enterOuterAlt(e,8),this.state=9826,this.match(t.DEC);break;case 9:this.enterOuterAlt(e,9),this.state=9827,this.match(t.DECIMAL_P);break;case 10:this.enterOuterAlt(e,10),this.state=9828,this.match(t.EXISTS);break;case 11:this.enterOuterAlt(e,11),this.state=9829,this.match(t.EXTRACT);break;case 12:this.enterOuterAlt(e,12),this.state=9830,this.match(t.FLOAT_P);break;case 13:this.enterOuterAlt(e,13),this.state=9831,this.match(t.GREATEST);break;case 14:this.enterOuterAlt(e,14),this.state=9832,this.match(t.GROUPING);break;case 15:this.enterOuterAlt(e,15),this.state=9833,this.match(t.INOUT);break;case 16:this.enterOuterAlt(e,16),this.state=9834,this.match(t.INT_P);break;case 17:this.enterOuterAlt(e,17),this.state=9835,this.match(t.INTEGER);break;case 18:this.enterOuterAlt(e,18),this.state=9836,this.match(t.INTERVAL);break;case 19:this.enterOuterAlt(e,19),this.state=9837,this.match(t.LEAST);break;case 20:this.enterOuterAlt(e,20),this.state=9838,this.match(t.NATIONAL);break;case 21:this.enterOuterAlt(e,21),this.state=9839,this.match(t.NCHAR);break;case 22:this.enterOuterAlt(e,22),this.state=9840,this.match(t.NONE);break;case 23:this.enterOuterAlt(e,23),this.state=9841,this.match(t.NORMALIZE);break;case 24:this.enterOuterAlt(e,24),this.state=9842,this.match(t.NULLIF);break;case 25:this.enterOuterAlt(e,25),this.state=9843,this.numeric();break;case 26:this.enterOuterAlt(e,26),this.state=9844,this.match(t.OUT_P);break;case 27:this.enterOuterAlt(e,27),this.state=9845,this.match(t.OVERLAY);break;case 28:this.enterOuterAlt(e,28),this.state=9846,this.match(t.POSITION);break;case 29:this.enterOuterAlt(e,29),this.state=9847,this.match(t.PRECISION);break;case 30:this.enterOuterAlt(e,30),this.state=9848,this.match(t.REAL);break;case 31:this.enterOuterAlt(e,31),this.state=9849,this.match(t.ROW);break;case 32:this.enterOuterAlt(e,32),this.state=9850,this.match(t.SETOF);break;case 33:this.enterOuterAlt(e,33),this.state=9851,this.match(t.SMALLINT);break;case 34:this.enterOuterAlt(e,34),this.state=9852,this.match(t.SUBSTRING);break;case 35:this.enterOuterAlt(e,35),this.state=9853,this.match(t.TIME);break;case 36:this.enterOuterAlt(e,36),this.state=9854,this.match(t.TIMESTAMP);break;case 37:this.enterOuterAlt(e,37),this.state=9855,this.match(t.TREAT);break;case 38:this.enterOuterAlt(e,38),this.state=9856,this.match(t.TRIM);break;case 39:this.enterOuterAlt(e,39),this.state=9857,this.match(t.VALUES);break;case 40:this.enterOuterAlt(e,40),this.state=9858,this.match(t.VARCHAR);break;case 41:this.enterOuterAlt(e,41),this.state=9859,this.match(t.XMLATTRIBUTES);break;case 42:this.enterOuterAlt(e,42),this.state=9860,this.match(t.XMLCONCAT);break;case 43:this.enterOuterAlt(e,43),this.state=9861,this.match(t.XMLELEMENT);break;case 44:this.enterOuterAlt(e,44),this.state=9862,this.match(t.XMLEXISTS);break;case 45:this.enterOuterAlt(e,45),this.state=9863,this.match(t.XMLFOREST);break;case 46:this.enterOuterAlt(e,46),this.state=9864,this.match(t.XMLNAMESPACES);break;case 47:this.enterOuterAlt(e,47),this.state=9865,this.match(t.XMLPARSE);break;case 48:this.enterOuterAlt(e,48),this.state=9866,this.match(t.XMLPI);break;case 49:this.enterOuterAlt(e,49),this.state=9867,this.match(t.XMLROOT);break;case 50:this.enterOuterAlt(e,50),this.state=9868,this.match(t.XMLSERIALIZE);break;case 51:this.enterOuterAlt(e,51),this.state=9869,this.match(t.XMLTABLE);break;case 52:this.enterOuterAlt(e,52),this.state=9870,this.builtinFunctionName()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}typeFunctionNameKeyword(){let e,s=new hN(this.context,this.state);this.enterRule(s,1282,t.RULE_typeFunctionNameKeyword);try{this.enterOuterAlt(s,1),this.state=9873,e=this.tokenStream.LA(1),!(e-106&-32)&&1<<e-106&7069695||472===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}reservedKeyword(){let e,s=new EN(this.context,this.state);this.enterRule(s,1284,t.RULE_reservedKeyword);try{this.enterOuterAlt(s,1),this.state=9875,e=this.tokenStream.LA(1),!(e-30&-32)&&1<<e-30&4286578687||!(e-62&-32)&&1<<e-62&4294966783||!(e-94&-32)&&1<<e-94&4095||454===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}builtinFunctionName(){let e,s=new TN(this.context,this.state);this.enterRule(s,1286,t.RULE_builtinFunctionName);try{this.enterOuterAlt(s,1),this.state=9877,e=this.tokenStream.LA(1),304===e||!(e-418&-32)&&1<<e-418&127||!(e-504&-32)&&1<<e-504&4294836737||!(e-536&-32)&&1<<e-536&4294967295||!(e-568&-32)&&1<<e-568&4294967295||!(e-600&-32)&&1<<e-600&4294967295||!(e-632&-32)&&1<<e-632&15?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}plsqlFunction(){let e=new oN(this.context,this.state);this.enterRule(e,1288,t.RULE_plsqlFunction);try{this.enterOuterAlt(e,1),this.state=9879,this.computeOptions(),this.state=9880,this.plsqlBlock(),this.state=9881,this.optionalSemi()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}computeOptions(){let e,s=new RN(this.context,this.state);this.enterRule(s,1290,t.RULE_computeOptions);try{for(this.enterOuterAlt(s,1),this.state=9886,this.errorHandler.sync(this),e=this.tokenStream.LA(1);29===e;)this.state=9883,this.computeOption(),this.state=9888,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}computeOption(){let e=new AN(this.context,this.state);this.enterRule(e,1292,t.RULE_computeOption);try{switch(this.state=9909,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,714,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9889,this.sharp(),this.state=9890,this.match(t.OPTION),this.state=9891,this.match(t.DUMP);break;case 2:this.enterOuterAlt(e,2),this.state=9893,this.sharp(),this.state=9894,this.match(t.PRINT_STRICT_PARAMS),this.state=9895,this.optionValue();break;case 3:this.enterOuterAlt(e,3),this.state=9897,this.sharp(),this.state=9898,this.match(t.VARIABLE_CONFLICT),this.state=9899,this.match(t.ERROR);break;case 4:this.enterOuterAlt(e,4),this.state=9901,this.sharp(),this.state=9902,this.match(t.VARIABLE_CONFLICT),this.state=9903,this.match(t.USE_VARIABLE);break;case 5:this.enterOuterAlt(e,5),this.state=9905,this.sharp(),this.state=9906,this.match(t.VARIABLE_CONFLICT),this.state=9907,this.match(t.USE_COLUMN)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}sharp(){let e=new SN(this.context,this.state);this.enterRule(e,1294,t.RULE_sharp);try{this.enterOuterAlt(e,1),this.state=9911,this.match(t.Operator)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionValue(){let e=new lN(this.context,this.state);this.enterRule(e,1296,t.RULE_optionValue);try{switch(this.state=9917,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,715,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9913,this.sconst();break;case 2:this.enterOuterAlt(e,2),this.state=9914,this.reservedKeyword();break;case 3:this.enterOuterAlt(e,3),this.state=9915,this.plsqlUnreservedKeyword();break;case 4:this.enterOuterAlt(e,4),this.state=9916,this.unreservedKeyword()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalSemi(){let e=new ON(this.context,this.state);this.enterRule(e,1298,t.RULE_optionalSemi);try{switch(this.state=9921,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.EOF:this.enterOuterAlt(e,1);break;case t.SEMI:this.enterOuterAlt(e,2),this.state=9920,this.match(t.SEMI);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}plsqlBlock(){let e=new IN(this.context,this.state);this.enterRule(e,1300,t.RULE_plsqlBlock);try{this.enterOuterAlt(e,1),this.state=9923,this.declareSection(),this.state=9924,this.match(t.BEGIN_P),this.state=9925,this.procedureSection(),this.state=9926,this.exceptionSection(),this.state=9927,this.match(t.END_P),this.state=9928,this.optionalLabel()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareSection(){let e,s=new uN(this.context,this.state);this.enterRule(s,1302,t.RULE_declareSection);try{if(this.enterOuterAlt(s,1),this.state=9930,this.optionalBlockLabel(),this.state=9935,this.errorHandler.sync(this),e=this.tokenStream.LA(1),178===e&&1===(this.state=9931,this.declareStart(),this.state=9933,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,717,this.context)))this.state=9932,this.declareStatements()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}declareStart(){let e=new NN(this.context,this.state);this.enterRule(e,1304,t.RULE_declareStart);try{this.enterOuterAlt(e,1),this.state=9937,this.match(t.DECLARE)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareStatements(){let e=new LN(this.context,this.state);this.enterRule(e,1306,t.RULE_declareStatements);try{let t;this.enterOuterAlt(e,1),this.state=9940,this.errorHandler.sync(this),t=1;do{if(1!==t)throw new Ei(this);this.state=9939,this.declareStatement(),this.state=9942,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,719,this.context)}while(2!==t&&t!==ja.INVALID_ALT_NUMBER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}labelDeclaration(){let e=new CN(this.context,this.state);this.enterRule(e,1308,t.RULE_labelDeclaration);try{this.enterOuterAlt(e,1),this.state=9944,this.match(t.LESS_LESS),this.state=9945,this.anyIdentifier(),this.state=9946,this.match(t.GREATER_GREATER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareStatement(){let e=new _N(this.context,this.state);this.enterRule(e,1310,t.RULE_declareStatement);try{switch(this.state=9951,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,720,this.context)){case 1:this.enterOuterAlt(e,1),this.state=9948,this.declareStatement2();break;case 2:this.enterOuterAlt(e,2),this.state=9949,this.match(t.DECLARE);break;case 3:this.enterOuterAlt(e,3),this.state=9950,this.labelDeclaration()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareStatement2(){let e=new PN(this.context,this.state);this.enterRule(e,1312,t.RULE_declareStatement2);try{switch(this.enterOuterAlt(e,1),this.state=9953,this.declareVarname(),this.state=9969,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,721,this.context)){case 1:this.state=9954,this.match(t.ALIAS),this.state=9955,this.match(t.FOR),this.state=9956,this.declareAliasItem();break;case 2:this.state=9957,this.declareConst(),this.state=9958,this.declareDatatype(),this.state=9959,this.declareCollate(),this.state=9960,this.declareNotNull(),this.state=9961,this.declareDefaultValue();break;case 3:this.state=9963,this.optionalScrollable(),this.state=9964,this.match(t.CURSOR),this.state=9965,this.declareCursorArgs(),this.state=9966,this.declareIsOrFor(),this.state=9967,this.declareCursorQuery()}this.state=9971,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalScrollable(){let e=new MN(this.context,this.state);this.enterRule(e,1314,t.RULE_optionalScrollable);try{switch(this.state=9977,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CURSOR:this.enterOuterAlt(e,1);break;case t.NO:this.enterOuterAlt(e,2),this.state=9974,this.match(t.NO),this.state=9975,this.match(t.SCROLL);break;case t.SCROLL:this.enterOuterAlt(e,3),this.state=9976,this.match(t.SCROLL);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareCursorQuery(){let e=new dN(this.context,this.state);this.enterRule(e,1316,t.RULE_declareCursorQuery);try{this.enterOuterAlt(e,1),this.state=9979,this.selectStatement()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareCursorArgs(){let e=new UN(this.context,this.state);this.enterRule(e,1318,t.RULE_declareCursorArgs);try{switch(this.state=9986,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FOR:case t.IS:this.enterOuterAlt(e,1);break;case t.OPEN_PAREN:this.enterOuterAlt(e,2),this.state=9982,this.match(t.OPEN_PAREN),this.state=9983,this.declareCursorArglist(),this.state=9984,this.match(t.CLOSE_PAREN);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareCursorArglist(){let e,s=new mN(this.context,this.state);this.enterRule(s,1320,t.RULE_declareCursorArglist);try{for(this.enterOuterAlt(s,1),this.state=9988,this.declareCursorArg(),this.state=9993,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=9989,this.match(t.COMMA),this.state=9990,this.declareCursorArg(),this.state=9995,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}declareCursorArg(){let e=new DN(this.context,this.state);this.enterRule(e,1322,t.RULE_declareCursorArg);try{this.enterOuterAlt(e,1),this.state=9996,this.declareVarname(),this.state=9997,this.declareDatatype()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareIsOrFor(){let e,s=new pN(this.context,this.state);this.enterRule(s,1324,t.RULE_declareIsOrFor);try{this.enterOuterAlt(s,1),this.state=9999,e=this.tokenStream.LA(1),62===e||116===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}declareAliasItem(){let e=new gN(this.context,this.state);this.enterRule(e,1326,t.RULE_declareAliasItem);try{switch(this.state=10003,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.PARAM:this.enterOuterAlt(e,1),this.state=10001,this.match(t.PARAM);break;case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,2),this.state=10002,this.columnId();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareVarname(){let e=new xN(this.context,this.state);this.enterRule(e,1328,t.RULE_declareVarname);try{this.enterOuterAlt(e,1),this.state=10005,this.anyIdentifier()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareConst(){let e=new kN(this.context,this.state);this.enterRule(e,1330,t.RULE_declareConst);try{switch(this.state=10009,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,726,this.context)){case 1:this.enterOuterAlt(e,1);break;case 2:this.enterOuterAlt(e,2),this.state=10008,this.match(t.CONSTANT)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareDatatype(){let e=new HN(this.context,this.state);this.enterRule(e,1332,t.RULE_declareDatatype);try{this.enterOuterAlt(e,1),this.state=10011,this.typeName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareCollate(){let e=new GN(this.context,this.state);this.enterRule(e,1334,t.RULE_declareCollate);try{switch(this.state=10016,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SEMI:case t.EQUAL:case t.COLON_EQUALS:case t.DEFAULT:case t.NOT:this.enterOuterAlt(e,1);break;case t.COLLATE:this.enterOuterAlt(e,2),this.state=10014,this.match(t.COLLATE),this.state=10015,this.anyName();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareNotNull(){let e=new FN(this.context,this.state);this.enterRule(e,1336,t.RULE_declareNotNull);try{switch(this.state=10021,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SEMI:case t.EQUAL:case t.COLON_EQUALS:case t.DEFAULT:this.enterOuterAlt(e,1);break;case t.NOT:this.enterOuterAlt(e,2),this.state=10019,this.match(t.NOT),this.state=10020,this.match(t.NULL_P);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareDefaultValue(){let e=new vN(this.context,this.state);this.enterRule(e,1338,t.RULE_declareDefaultValue);try{switch(this.state=10027,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SEMI:this.enterOuterAlt(e,1);break;case t.EQUAL:case t.COLON_EQUALS:case t.DEFAULT:this.enterOuterAlt(e,2),this.state=10024,this.declareDefaultKey(),this.state=10025,this.sqlExpression();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareDefaultKey(){let e=new BN(this.context,this.state);this.enterRule(e,1340,t.RULE_declareDefaultKey);try{switch(this.state=10031,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.EQUAL:case t.COLON_EQUALS:this.enterOuterAlt(e,1),this.state=10029,this.assignOperator();break;case t.DEFAULT:this.enterOuterAlt(e,2),this.state=10030,this.match(t.DEFAULT);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}assignOperator(){let e,s=new yN(this.context,this.state);this.enterRule(s,1342,t.RULE_assignOperator);try{this.enterOuterAlt(s,1),this.state=10033,e=this.tokenStream.LA(1),10===e||20===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}procedureSection(){let e=new fN(this.context,this.state);this.enterRule(e,1344,t.RULE_procedureSection);try{let t;for(this.enterOuterAlt(e,1),this.state=10038,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,731,this.context);2!==t&&t!==ja.INVALID_ALT_NUMBER;)1===t&&(this.state=10035,this.proceduralStatement()),this.state=10040,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,731,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}proceduralStatement(){let e=new YN(this.context,this.state);this.enterRule(e,1346,t.RULE_proceduralStatement);try{switch(this.state=10068,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,732,this.context)){case 1:this.enterOuterAlt(e,1),this.state=10041,this.plsqlBlock(),this.state=10042,this.match(t.SEMI);break;case 2:this.enterOuterAlt(e,2),this.state=10044,this.statementReturn();break;case 3:this.enterOuterAlt(e,3),this.state=10045,this.statementRaise();break;case 4:this.enterOuterAlt(e,4),this.state=10046,this.statementAssign();break;case 5:this.enterOuterAlt(e,5),this.state=10047,this.statementIf();break;case 6:this.enterOuterAlt(e,6),this.state=10048,this.statementCase();break;case 7:this.enterOuterAlt(e,7),this.state=10049,this.statementLoop();break;case 8:this.enterOuterAlt(e,8),this.state=10050,this.statementWhile();break;case 9:this.enterOuterAlt(e,9),this.state=10051,this.statementFor();break;case 10:this.enterOuterAlt(e,10),this.state=10052,this.statementForeachA();break;case 11:this.enterOuterAlt(e,11),this.state=10053,this.statementExit();break;case 12:this.enterOuterAlt(e,12),this.state=10054,this.statementAssert();break;case 13:this.enterOuterAlt(e,13),this.state=10055,this.statementExecSql();break;case 14:this.enterOuterAlt(e,14),this.state=10056,this.statementDynExecute();break;case 15:this.enterOuterAlt(e,15),this.state=10057,this.statementPerform();break;case 16:this.enterOuterAlt(e,16),this.state=10058,this.statementCall();break;case 17:this.enterOuterAlt(e,17),this.state=10059,this.statementGetDiagram();break;case 18:this.enterOuterAlt(e,18),this.state=10060,this.statementOpen();break;case 19:this.enterOuterAlt(e,19),this.state=10061,this.statementFetch();break;case 20:this.enterOuterAlt(e,20),this.state=10062,this.statementMove();break;case 21:this.enterOuterAlt(e,21),this.state=10063,this.statementClose();break;case 22:this.enterOuterAlt(e,22),this.state=10064,this.statementNull();break;case 23:this.enterOuterAlt(e,23),this.state=10065,this.statementCommit();break;case 24:this.enterOuterAlt(e,24),this.state=10066,this.statementRollback();break;case 25:this.enterOuterAlt(e,25),this.state=10067,this.statementSet()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementPerform(){let e=new wN(this.context,this.state);this.enterRule(e,1348,t.RULE_statementPerform);try{this.enterOuterAlt(e,1),this.state=10070,this.match(t.PERFORM),this.state=10071,this.expressionUntilSemi(),this.state=10072,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementCall(){let e=new bN(this.context,this.state);this.enterRule(e,1350,t.RULE_statementCall);try{switch(this.state=10088,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CALL:this.enterOuterAlt(e,1),this.state=10074,this.match(t.CALL),this.state=10075,this.anyIdentifier(),this.state=10076,this.match(t.OPEN_PAREN),this.state=10077,this.optionalExpressionList(),this.state=10078,this.match(t.CLOSE_PAREN),this.state=10079,this.match(t.SEMI);break;case t.DO:this.enterOuterAlt(e,2),this.state=10081,this.match(t.DO),this.state=10082,this.anyIdentifier(),this.state=10083,this.match(t.OPEN_PAREN),this.state=10084,this.optionalExpressionList(),this.state=10085,this.match(t.CLOSE_PAREN),this.state=10086,this.match(t.SEMI);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalExpressionList(){let e=new WN(this.context,this.state);this.enterRule(e,1352,t.RULE_optionalExpressionList);try{switch(this.state=10092,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CLOSE_PAREN:this.enterOuterAlt(e,1);break;case t.OPEN_PAREN:case t.PLUS:case t.MINUS:case t.PARAM:case t.Operator:case t.AND:case t.ARRAY:case t.CASE:case t.CAST:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.CURRENT_CATALOG:case t.CURRENT_DATE:case t.CURRENT_ROLE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.CURRENT_USER:case t.DEFAULT:case t.DO:case t.FALSE_P:case t.FETCH:case t.LOCALTIME:case t.LOCALTIMESTAMP:case t.NOT:case t.NULL_P:case t.SESSION_USER:case t.TABLE:case t.TRUE_P:case t.UNIQUE:case t.USER:case t.AUTHORIZATION:case t.BINARY:case t.COLLATION:case t.CONCURRENTLY:case t.CROSS:case t.CURRENT_SCHEMA:case t.FREEZE:case t.FULL:case t.ILIKE:case t.INNER_P:case t.IS:case t.ISNULL:case t.JOIN:case t.LEFT:case t.LIKE:case t.NATURAL:case t.NOTNULL:case t.OUTER_P:case t.OVER:case t.OVERLAPS:case t.RIGHT:case t.SIMILAR:case t.VERBOSE:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.TABLESAMPLE:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.StringConstant:case t.UnicodeEscapeStringConstant:case t.BeginDollarStringConstant:case t.BinaryStringConstant:case t.HexadecimalStringConstant:case t.Integral:case t.Numeric:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:case t.EscapeStringConstant:this.enterOuterAlt(e,2),this.state=10091,this.expressionList();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementAssign(){let e=new VN(this.context,this.state);this.enterRule(e,1354,t.RULE_statementAssign);try{this.enterOuterAlt(e,1),this.state=10094,this.assignVariable(),this.state=10095,this.assignOperator(),this.state=10096,this.sqlExpression(),this.state=10097,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementGetDiagram(){let e=new XN(this.context,this.state);this.enterRule(e,1356,t.RULE_statementGetDiagram);try{this.enterOuterAlt(e,1),this.state=10099,this.match(t.GET),this.state=10100,this.optionalGetDiagramArea(),this.state=10101,this.match(t.DIAGNOSTICS),this.state=10102,this.getDiagramList(),this.state=10103,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalGetDiagramArea(){let e=new KN(this.context,this.state);this.enterRule(e,1358,t.RULE_optionalGetDiagramArea);try{switch(this.state=10108,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DIAGNOSTICS:this.enterOuterAlt(e,1);break;case t.CURRENT_P:this.enterOuterAlt(e,2),this.state=10106,this.match(t.CURRENT_P);break;case t.STACKED:this.enterOuterAlt(e,3),this.state=10107,this.match(t.STACKED);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}getDiagramList(){let e,s=new QN(this.context,this.state);this.enterRule(s,1360,t.RULE_getDiagramList);try{for(this.enterOuterAlt(s,1),this.state=10110,this.getDiagramListItem(),this.state=10115,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=10111,this.match(t.COMMA),this.state=10112,this.getDiagramListItem(),this.state=10117,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}getDiagramListItem(){let e=new JN(this.context,this.state);this.enterRule(e,1362,t.RULE_getDiagramListItem);try{this.enterOuterAlt(e,1),this.state=10118,this.getDiagramTarget(),this.state=10119,this.assignOperator(),this.state=10120,this.getDiagramItem()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}getDiagramItem(){let e=new ZN(this.context,this.state);this.enterRule(e,1364,t.RULE_getDiagramItem);try{this.enterOuterAlt(e,1),this.state=10122,this.columnId()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}getDiagramTarget(){let e=new qN(this.context,this.state);this.enterRule(e,1366,t.RULE_getDiagramTarget);try{this.enterOuterAlt(e,1),this.state=10124,this.assignVariable()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}assignVariable(){let e,s=new jN(this.context,this.state);this.enterRule(s,1368,t.RULE_assignVariable);try{switch(this.enterOuterAlt(s,1),this.state=10128,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.state=10126,this.anyName();break;case t.PARAM:this.state=10127,this.match(t.PARAM);break;default:throw new Ei(this)}for(this.state=10136,this.errorHandler.sync(this),e=this.tokenStream.LA(1);4===e;)this.state=10130,this.match(t.OPEN_BRACKET),this.state=10131,this.expressionUntilRightbracket(),this.state=10132,this.match(t.CLOSE_BRACKET),this.state=10138,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}statementIf(){let e=new zN(this.context,this.state);this.enterRule(e,1370,t.RULE_statementIf);try{this.enterOuterAlt(e,1),this.state=10139,this.match(t.IF_P),this.state=10140,this.expressionUntilThen(),this.state=10141,this.match(t.THEN),this.state=10142,this.procedureSection(),this.state=10143,this.statementElsifs(),this.state=10144,this.statementElse(),this.state=10145,this.match(t.END_P),this.state=10146,this.match(t.IF_P),this.state=10147,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementElsifs(){let e,s=new $N(this.context,this.state);this.enterRule(s,1372,t.RULE_statementElsifs);try{for(this.enterOuterAlt(s,1),this.state=10156,this.errorHandler.sync(this),e=this.tokenStream.LA(1);502===e;)this.state=10149,this.match(t.ELSIF),this.state=10150,this.expression1(),this.state=10151,this.match(t.THEN),this.state=10152,this.procedureSection(),this.state=10158,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}statementElse(){let e=new tL(this.context,this.state);this.enterRule(e,1374,t.RULE_statementElse);try{switch(this.state=10162,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.END_P:this.enterOuterAlt(e,1);break;case t.ELSE:this.enterOuterAlt(e,2),this.state=10160,this.match(t.ELSE),this.state=10161,this.procedureSection();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementCase(){let e=new eL(this.context,this.state);this.enterRule(e,1376,t.RULE_statementCase);try{this.enterOuterAlt(e,1),this.state=10164,this.match(t.CASE),this.state=10165,this.optionalExpressionUntilWhen(),this.state=10166,this.caseWhenList(),this.state=10167,this.optionalCaseElse(),this.state=10168,this.match(t.END_P),this.state=10169,this.match(t.CASE),this.state=10170,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalExpressionUntilWhen(){let e=new sL(this.context,this.state);this.enterRule(e,1378,t.RULE_optionalExpressionUntilWhen);try{switch(this.state=10174,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,741,this.context)){case 1:this.enterOuterAlt(e,1);break;case 2:this.enterOuterAlt(e,2),this.state=10173,this.sqlExpression()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}caseWhenList(){let e,s=new aL(this.context,this.state);this.enterRule(s,1380,t.RULE_caseWhenList);try{this.enterOuterAlt(s,1),this.state=10177,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=10176,this.caseWhen(),this.state=10179,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(102===e)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}caseWhen(){let e=new rL(this.context,this.state);this.enterRule(e,1382,t.RULE_caseWhen);try{this.enterOuterAlt(e,1),this.state=10181,this.match(t.WHEN),this.state=10182,this.expressionList(),this.state=10183,this.match(t.THEN),this.state=10184,this.procedureSection()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalCaseElse(){let e=new iL(this.context,this.state);this.enterRule(e,1384,t.RULE_optionalCaseElse);try{switch(this.state=10189,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.END_P:this.enterOuterAlt(e,1);break;case t.ELSE:this.enterOuterAlt(e,2),this.state=10187,this.match(t.ELSE),this.state=10188,this.procedureSection();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementLoop(){let e=new cL(this.context,this.state);this.enterRule(e,1386,t.RULE_statementLoop);try{this.enterOuterAlt(e,1),this.state=10191,this.optionalLoopLabel(),this.state=10192,this.loopBody()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementWhile(){let e=new nL(this.context,this.state);this.enterRule(e,1388,t.RULE_statementWhile);try{this.enterOuterAlt(e,1),this.state=10194,this.optionalLoopLabel(),this.state=10195,this.match(t.WHILE),this.state=10196,this.expressionUntilLoop(),this.state=10197,this.loopBody()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementFor(){let e=new hL(this.context,this.state);this.enterRule(e,1390,t.RULE_statementFor);try{this.enterOuterAlt(e,1),this.state=10199,this.optionalLoopLabel(),this.state=10200,this.match(t.FOR),this.state=10201,this.forControl(),this.state=10202,this.loopBody()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}forControl(){let e=new EL(this.context,this.state);this.enterRule(e,1392,t.RULE_forControl);try{switch(this.enterOuterAlt(e,1),this.state=10204,this.forVariable(),this.state=10205,this.match(t.IN_P),this.state=10221,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,744,this.context)){case 1:this.state=10206,this.cursorName(),this.state=10207,this.optionalCursorParameters();break;case 2:this.state=10209,this.selectStatement();break;case 3:this.state=10210,this.explainStatement();break;case 4:this.state=10211,this.match(t.EXECUTE),this.state=10212,this.expression1(),this.state=10213,this.optionalForUsingExpression();break;case 5:this.state=10215,this.optionalReverse(),this.state=10216,this.expression1(),this.state=10217,this.match(t.DOT_DOT),this.state=10218,this.expression1(),this.state=10219,this.optionalByExpression()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalForUsingExpression(){let e=new TL(this.context,this.state);this.enterRule(e,1394,t.RULE_optionalForUsingExpression);try{switch(this.state=10226,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SEMI:case t.LOOP:this.enterOuterAlt(e,1);break;case t.USING:this.enterOuterAlt(e,2),this.state=10224,this.match(t.USING),this.state=10225,this.expressionList();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalCursorParameters(){let e,s=new oL(this.context,this.state);this.enterRule(s,1396,t.RULE_optionalCursorParameters);try{switch(this.state=10240,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LOOP:this.enterOuterAlt(s,1);break;case t.OPEN_PAREN:for(this.enterOuterAlt(s,2),this.state=10229,this.match(t.OPEN_PAREN),this.state=10230,this.expression1(),this.state=10235,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=10231,this.match(t.COMMA),this.state=10232,this.expression1(),this.state=10237,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=10238,this.match(t.CLOSE_PAREN);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalReverse(){let e=new RL(this.context,this.state);this.enterRule(e,1398,t.RULE_optionalReverse);try{switch(this.state=10244,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,748,this.context)){case 1:this.enterOuterAlt(e,1);break;case 2:this.enterOuterAlt(e,2),this.state=10243,this.match(t.REVERSE)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalByExpression(){let e=new AL(this.context,this.state);this.enterRule(e,1400,t.RULE_optionalByExpression);try{switch(this.state=10249,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LOOP:this.enterOuterAlt(e,1);break;case t.BY:this.enterOuterAlt(e,2),this.state=10247,this.match(t.BY),this.state=10248,this.expression1();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}forVariable(){let e=new SL(this.context,this.state);this.enterRule(e,1402,t.RULE_forVariable);try{this.enterOuterAlt(e,1),this.state=10251,this.anyNameList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementForeachA(){let e=new lL(this.context,this.state);this.enterRule(e,1404,t.RULE_statementForeachA);try{this.enterOuterAlt(e,1),this.state=10253,this.optionalLoopLabel(),this.state=10254,this.match(t.FOREACH),this.state=10255,this.forVariable(),this.state=10256,this.foreachSlice(),this.state=10257,this.match(t.IN_P),this.state=10258,this.match(t.ARRAY),this.state=10259,this.expression1(),this.state=10260,this.loopBody()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}foreachSlice(){let e=new OL(this.context,this.state);this.enterRule(e,1406,t.RULE_foreachSlice);try{switch(this.state=10265,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.IN_P:this.enterOuterAlt(e,1);break;case t.SLICE:this.enterOuterAlt(e,2),this.state=10263,this.match(t.SLICE),this.state=10264,this.iconst();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementExit(){let e=new IL(this.context,this.state);this.enterRule(e,1408,t.RULE_statementExit);try{this.enterOuterAlt(e,1),this.state=10267,this.exitType(),this.state=10268,this.optionalLabel(),this.state=10269,this.optionalExitCondition(),this.state=10270,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}exitType(){let e,s=new uL(this.context,this.state);this.enterRule(s,1410,t.RULE_exitType);try{this.enterOuterAlt(s,1),this.state=10272,e=this.tokenStream.LA(1),167===e||507===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}statementReturn(){let e=new NL(this.context,this.state);this.enterRule(e,1412,t.RULE_statementReturn);try{switch(this.enterOuterAlt(e,1),this.state=10274,this.match(t.RETURN),this.state=10286,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,752,this.context)){case 1:this.state=10275,this.match(t.NEXT),this.state=10276,this.sqlExpression();break;case 2:switch(this.state=10277,this.match(t.QUERY),this.state=10283,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.EXECUTE:this.state=10278,this.match(t.EXECUTE),this.state=10279,this.expression1(),this.state=10280,this.optionalForUsingExpression();break;case t.OPEN_PAREN:case t.SELECT:case t.TABLE:case t.WITH:case t.VALUES:this.state=10282,this.selectStatement();break;default:throw new Ei(this)}break;case 3:this.state=10285,this.optionalReturnResult()}this.state=10288,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalReturnResult(){let e=new LL(this.context,this.state);this.enterRule(e,1414,t.RULE_optionalReturnResult);try{switch(this.state=10292,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,753,this.context)){case 1:this.enterOuterAlt(e,1);break;case 2:this.enterOuterAlt(e,2),this.state=10291,this.sqlExpression()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementRaise(){let e=new CL(this.context,this.state);this.enterRule(e,1416,t.RULE_statementRaise);try{switch(this.state=10320,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,754,this.context)){case 1:this.enterOuterAlt(e,1),this.state=10294,this.match(t.RAISE),this.state=10295,this.optionalStatementRaiseLevel(),this.state=10296,this.sconst(),this.state=10297,this.optionalRaiseList(),this.state=10298,this.optionalRaiseUsing(),this.state=10299,this.match(t.SEMI);break;case 2:this.enterOuterAlt(e,2),this.state=10301,this.match(t.RAISE),this.state=10302,this.optionalStatementRaiseLevel(),this.state=10303,this.identifier(),this.state=10304,this.optionalRaiseUsing(),this.state=10305,this.match(t.SEMI);break;case 3:this.enterOuterAlt(e,3),this.state=10307,this.match(t.RAISE),this.state=10308,this.optionalStatementRaiseLevel(),this.state=10309,this.match(t.SQLSTATE),this.state=10310,this.sconst(),this.state=10311,this.optionalRaiseUsing(),this.state=10312,this.match(t.SEMI);break;case 4:this.enterOuterAlt(e,4),this.state=10314,this.match(t.RAISE),this.state=10315,this.optionalStatementRaiseLevel(),this.state=10316,this.optionalRaiseUsing(),this.state=10317,this.match(t.SEMI);break;case 5:this.enterOuterAlt(e,5),this.state=10319,this.match(t.RAISE)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalStatementRaiseLevel(){let e=new _L(this.context,this.state);this.enterRule(e,1418,t.RULE_optionalStatementRaiseLevel);try{switch(this.state=10330,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,755,this.context)){case 1:this.enterOuterAlt(e,1);break;case 2:this.enterOuterAlt(e,2);break;case 3:this.enterOuterAlt(e,3),this.state=10324,this.match(t.DEBUG);break;case 4:this.enterOuterAlt(e,4),this.state=10325,this.match(t.LOG);break;case 5:this.enterOuterAlt(e,5),this.state=10326,this.match(t.INFO);break;case 6:this.enterOuterAlt(e,6),this.state=10327,this.match(t.NOTICE);break;case 7:this.enterOuterAlt(e,7),this.state=10328,this.match(t.WARNING);break;case 8:this.enterOuterAlt(e,8),this.state=10329,this.match(t.EXCEPTION)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalRaiseList(){let e,s=new PL(this.context,this.state);this.enterRule(s,1420,t.RULE_optionalRaiseList);try{switch(this.state=10339,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SEMI:case t.USING:this.enterOuterAlt(s,1);break;case t.COMMA:this.enterOuterAlt(s,2),this.state=10335,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=10333,this.match(t.COMMA),this.state=10334,this.expression1(),this.state=10337,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(6===e);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalRaiseUsing(){let e,s=new ML(this.context,this.state);this.enterRule(s,1422,t.RULE_optionalRaiseUsing);try{switch(this.state=10351,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SEMI:this.enterOuterAlt(s,1);break;case t.USING:for(this.enterOuterAlt(s,2),this.state=10342,this.match(t.USING),this.state=10343,this.optionalRaiseUsingElement(),this.state=10348,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=10344,this.match(t.COMMA),this.state=10345,this.optionalRaiseUsingElement(),this.state=10350,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalRaiseUsingElement(){let e=new dL(this.context,this.state);this.enterRule(e,1424,t.RULE_optionalRaiseUsingElement);try{this.enterOuterAlt(e,1),this.state=10353,this.identifier(),this.state=10354,this.match(t.EQUAL),this.state=10355,this.expression1()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementAssert(){let e=new UL(this.context,this.state);this.enterRule(e,1426,t.RULE_statementAssert);try{this.enterOuterAlt(e,1),this.state=10357,this.match(t.ASSERT),this.state=10358,this.sqlExpression(),this.state=10359,this.optionalStatementAssertMessage(),this.state=10360,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalStatementAssertMessage(){let e=new mL(this.context,this.state);this.enterRule(e,1428,t.RULE_optionalStatementAssertMessage);try{switch(this.state=10365,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SEMI:this.enterOuterAlt(e,1);break;case t.COMMA:this.enterOuterAlt(e,2),this.state=10363,this.match(t.COMMA),this.state=10364,this.sqlExpression();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}loopBody(){let e=new DL(this.context,this.state);this.enterRule(e,1430,t.RULE_loopBody);try{this.enterOuterAlt(e,1),this.state=10367,this.match(t.LOOP),this.state=10368,this.procedureSection(),this.state=10369,this.match(t.END_P),this.state=10370,this.match(t.LOOP),this.state=10371,this.optionalLabel(),this.state=10372,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementExecSql(){let e=new pL(this.context,this.state);this.enterRule(e,1432,t.RULE_statementExecSql);try{this.enterOuterAlt(e,1),this.state=10374,this.makeExecuteSqlStatement(),this.state=10375,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementDynExecute(){let e=new gL(this.context,this.state);this.enterRule(e,1434,t.RULE_statementDynExecute);try{switch(this.enterOuterAlt(e,1),this.state=10377,this.match(t.EXECUTE),this.state=10378,this.expression1(),this.state=10386,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,761,this.context)){case 1:this.state=10379,this.optionalExecuteInto(),this.state=10380,this.optionalExecuteUsing();break;case 2:this.state=10382,this.optionalExecuteUsing(),this.state=10383,this.optionalExecuteInto()}this.state=10388,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalExecuteUsing(){let e=new xL(this.context,this.state);this.enterRule(e,1436,t.RULE_optionalExecuteUsing);try{switch(this.state=10393,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SEMI:case t.INTO:this.enterOuterAlt(e,1);break;case t.USING:this.enterOuterAlt(e,2),this.state=10391,this.match(t.USING),this.state=10392,this.optionalExecuteUsingList();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalExecuteUsingList(){let e,s=new kL(this.context,this.state);this.enterRule(s,1438,t.RULE_optionalExecuteUsingList);try{for(this.enterOuterAlt(s,1),this.state=10395,this.expression1(),this.state=10400,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=10396,this.match(t.COMMA),this.state=10397,this.expression1(),this.state=10402,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalExecuteInto(){let e=new HL(this.context,this.state);this.enterRule(e,1440,t.RULE_optionalExecuteInto);try{switch(this.state=10409,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SEMI:case t.USING:this.enterOuterAlt(e,1);break;case t.INTO:if(this.enterOuterAlt(e,2),1===(this.state=10404,this.match(t.INTO),this.state=10406,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,764,this.context)))this.state=10405,this.match(t.STRICT_P);this.state=10408,this.intoTarget();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementOpen(){let e,s=new GL(this.context,this.state);this.enterRule(s,1442,t.RULE_statementOpen);try{switch(this.enterOuterAlt(s,1),this.state=10411,this.match(t.OPEN),this.state=10440,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,770,this.context)){case 1:switch(this.state=10412,this.cursorVariable(),this.state=10414,this.errorHandler.sync(this),e=this.tokenStream.LA(1),262===e&&(this.state=10413,this.match(t.NO)),this.state=10416,this.match(t.SCROLL),this.state=10417,this.match(t.FOR),this.state=10424,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPEN_PAREN:case t.SELECT:case t.TABLE:case t.WITH:case t.VALUES:this.state=10418,this.selectStatement();break;case t.EXECUTE:this.state=10419,this.match(t.EXECUTE),this.state=10420,this.sqlExpression(),this.state=10421,this.match(t.USING),this.state=10422,this.expressionList();break;default:throw new Ei(this)}break;case 2:if(this.state=10426,this.columnId(),this.state=10438,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e){for(this.state=10427,this.match(t.OPEN_PAREN),this.state=10428,this.optionalOpenBoundListItem(),this.state=10433,this.errorHandler.sync(this),e=this.tokenStream.LA(1);6===e;)this.state=10429,this.match(t.COMMA),this.state=10430,this.optionalOpenBoundListItem(),this.state=10435,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=10436,this.match(t.CLOSE_PAREN)}}this.state=10442,this.match(t.SEMI)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optionalOpenBoundListItem(){let e=new FL(this.context,this.state);this.enterRule(e,1444,t.RULE_optionalOpenBoundListItem);try{switch(this.state=10449,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,771,this.context)){case 1:this.enterOuterAlt(e,1),this.state=10444,this.columnId(),this.state=10445,this.match(t.COLON_EQUALS),this.state=10446,this.expression1();break;case 2:this.enterOuterAlt(e,2),this.state=10448,this.expression1()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementFetch(){let e=new vL(this.context,this.state);this.enterRule(e,1446,t.RULE_statementFetch);try{this.enterOuterAlt(e,1),this.state=10451,this.match(t.FETCH),this.state=10452,e._direction=this.optionalFetchDirection(),this.state=10453,this.optionalCursorFrom(),this.state=10454,this.cursorVariable(),this.state=10455,this.match(t.INTO),this.state=10456,this.intoTarget(),this.state=10457,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}intoTarget(){let e=new BL(this.context,this.state);this.enterRule(e,1448,t.RULE_intoTarget);try{this.enterOuterAlt(e,1),this.state=10459,this.expressionList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalCursorFrom(){let e=new yL(this.context,this.state);this.enterRule(e,1450,t.RULE_optionalCursorFrom);try{switch(this.state=10464,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.PARAM:case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,1);break;case t.FROM:this.enterOuterAlt(e,2),this.state=10462,this.match(t.FROM);break;case t.IN_P:this.enterOuterAlt(e,3),this.state=10463,this.match(t.IN_P);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalFetchDirection(){let e,s=new fL(this.context,this.state);this.enterRule(s,1452,t.RULE_optionalFetchDirection);try{switch(this.state=10483,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,774,this.context)){case 1:this.enterOuterAlt(s,1);break;case 2:this.enterOuterAlt(s,2);break;case 3:this.enterOuterAlt(s,3),this.state=10468,this.match(t.NEXT);break;case 4:this.enterOuterAlt(s,4),this.state=10469,this.match(t.PRIOR);break;case 5:this.enterOuterAlt(s,5),this.state=10470,this.match(t.FIRST_P);break;case 6:this.enterOuterAlt(s,6),this.state=10471,this.match(t.LAST_P);break;case 7:this.enterOuterAlt(s,7),this.state=10472,this.match(t.ABSOLUTE_P),this.state=10473,this.expression1();break;case 8:this.enterOuterAlt(s,8),this.state=10474,this.match(t.RELATIVE_P),this.state=10475,this.expression1();break;case 9:this.enterOuterAlt(s,9),this.state=10476,this.expression1();break;case 10:this.enterOuterAlt(s,10),this.state=10477,this.match(t.ALL);break;case 11:switch(this.enterOuterAlt(s,11),this.state=10478,e=this.tokenStream.LA(1),144===e||210===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=10481,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,773,this.context)){case 1:this.state=10479,this.expression1();break;case 2:this.state=10480,this.match(t.ALL)}}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}statementMove(){let e=new YL(this.context,this.state);this.enterRule(e,1454,t.RULE_statementMove);try{this.enterOuterAlt(e,1),this.state=10485,this.match(t.MOVE),this.state=10486,this.optionalFetchDirection(),this.state=10487,this.cursorVariable(),this.state=10488,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementClose(){let e=new wL(this.context,this.state);this.enterRule(e,1456,t.RULE_statementClose);try{this.enterOuterAlt(e,1),this.state=10490,this.match(t.CLOSE),this.state=10491,this.cursorVariable(),this.state=10492,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementNull(){let e=new bL(this.context,this.state);this.enterRule(e,1458,t.RULE_statementNull);try{this.enterOuterAlt(e,1),this.state=10494,this.match(t.NULL_P),this.state=10495,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementCommit(){let e=new WL(this.context,this.state);this.enterRule(e,1460,t.RULE_statementCommit);try{this.enterOuterAlt(e,1),this.state=10497,this.match(t.COMMIT),this.state=10498,this.plsqlOptionalTransactionChain(),this.state=10499,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}statementRollback(){let e=new VL(this.context,this.state);this.enterRule(e,1462,t.RULE_statementRollback);try{this.enterOuterAlt(e,1),this.state=10501,this.match(t.ROLLBACK),this.state=10502,this.plsqlOptionalTransactionChain(),this.state=10503,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}plsqlOptionalTransactionChain(){let e,s=new XL(this.context,this.state);this.enterRule(s,1464,t.RULE_plsqlOptionalTransactionChain);try{switch(this.state=10511,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:this.enterOuterAlt(s,1),this.state=10505,this.match(t.AND),this.state=10507,this.errorHandler.sync(this),e=this.tokenStream.LA(1),262===e&&(this.state=10506,this.match(t.NO)),this.state=10509,this.match(t.CHAIN);break;case t.SEMI:this.enterOuterAlt(s,2);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}statementSet(){let e=new KL(this.context,this.state);this.enterRule(e,1466,t.RULE_statementSet);try{switch(this.state=10525,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SET:this.enterOuterAlt(e,1),this.state=10513,this.match(t.SET),this.state=10514,this.anyName(),this.state=10515,this.match(t.TO),this.state=10516,this.match(t.DEFAULT),this.state=10517,this.match(t.SEMI);break;case t.RESET:switch(this.enterOuterAlt(e,2),this.state=10519,this.match(t.RESET),this.state=10522,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.state=10520,this.anyName();break;case t.ALL:this.state=10521,this.match(t.ALL);break;default:throw new Ei(this)}this.state=10524,this.match(t.SEMI);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}cursorVariable(){let e=new QL(this.context,this.state);this.enterRule(e,1468,t.RULE_cursorVariable);try{switch(this.state=10529,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,1),this.state=10527,this.columnId();break;case t.PARAM:this.enterOuterAlt(e,2),this.state=10528,this.match(t.PARAM);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}exceptionSection(){let e=new JL(this.context,this.state);this.enterRule(e,1470,t.RULE_exceptionSection);try{switch(this.state=10534,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.END_P:this.enterOuterAlt(e,1);break;case t.EXCEPTION:this.enterOuterAlt(e,2),this.state=10532,this.match(t.EXCEPTION),this.state=10533,this.procedureExceptions();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}procedureExceptions(){let e,s=new ZL(this.context,this.state);this.enterRule(s,1472,t.RULE_procedureExceptions);try{this.enterOuterAlt(s,1),this.state=10537,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=10536,this.procedureException(),this.state=10539,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(102===e)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}procedureException(){let e=new qL(this.context,this.state);this.enterRule(e,1474,t.RULE_procedureException);try{this.enterOuterAlt(e,1),this.state=10541,this.match(t.WHEN),this.state=10542,this.procedureConditions(),this.state=10543,this.match(t.THEN),this.state=10544,this.procedureSection()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}procedureConditions(){let e,s=new jL(this.context,this.state);this.enterRule(s,1476,t.RULE_procedureConditions);try{for(this.enterOuterAlt(s,1),this.state=10546,this.procedureCondition(),this.state=10551,this.errorHandler.sync(this),e=this.tokenStream.LA(1);82===e;)this.state=10547,this.match(t.OR),this.state=10548,this.procedureCondition(),this.state=10553,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}procedureCondition(){let e=new zL(this.context,this.state);this.enterRule(e,1478,t.RULE_procedureCondition);try{switch(this.state=10557,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,783,this.context)){case 1:this.enterOuterAlt(e,1),this.state=10554,this.anyIdentifier();break;case 2:this.enterOuterAlt(e,2),this.state=10555,this.match(t.SQLSTATE),this.state=10556,this.sconst()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalBlockLabel(){let e=new $L(this.context,this.state);this.enterRule(e,1480,t.RULE_optionalBlockLabel);try{switch(this.state=10561,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.BEGIN_P:case t.DECLARE:this.enterOuterAlt(e,1);break;case t.LESS_LESS:this.enterOuterAlt(e,2),this.state=10560,this.labelDeclaration();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalLoopLabel(){let e=new tC(this.context,this.state);this.enterRule(e,1482,t.RULE_optionalLoopLabel);try{switch(this.state=10565,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FOR:case t.WHILE:case t.FOREACH:case t.LOOP:this.enterOuterAlt(e,1);break;case t.LESS_LESS:this.enterOuterAlt(e,2),this.state=10564,this.labelDeclaration();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalLabel(){let e=new eC(this.context,this.state);this.enterRule(e,1484,t.RULE_optionalLabel);try{switch(this.state=10569,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.EOF:case t.SEMI:case t.WHEN:this.enterOuterAlt(e,1);break;case t.AND:case t.ARRAY:case t.COLLATE:case t.COLUMN:case t.CONSTRAINT:case t.DEFAULT:case t.DO:case t.FETCH:case t.TABLE:case t.IS:case t.LEFT:case t.OUTER_P:case t.OVER:case t.RIGHT:case t.ABORT_P:case t.ABSOLUTE_P:case t.ACCESS:case t.ACTION:case t.ADD_P:case t.ADMIN:case t.AFTER:case t.AGGREGATE:case t.ALSO:case t.ALTER:case t.ALWAYS:case t.ASSERTION:case t.ASSIGNMENT:case t.AT:case t.ATTRIBUTE:case t.BACKWARD:case t.BEFORE:case t.BEGIN_P:case t.BY:case t.CACHE:case t.CALLED:case t.CASCADE:case t.CASCADED:case t.CATALOG:case t.CHAIN:case t.CHARACTERISTICS:case t.CHECKPOINT:case t.CLASS:case t.CLOSE:case t.CLUSTER:case t.COMMENT:case t.COMMENTS:case t.COMMIT:case t.COMMITTED:case t.CONFIGURATION:case t.CONNECTION:case t.CONSTRAINTS:case t.CONTENT_P:case t.CONTINUE_P:case t.CONVERSION_P:case t.COPY:case t.COST:case t.CSV:case t.CURSOR:case t.CYCLE:case t.DATA_P:case t.DATABASE:case t.DAY_P:case t.DEALLOCATE:case t.DECLARE:case t.DEFAULTS:case t.DEFERRED:case t.DEFINER:case t.DELETE_P:case t.DELIMITER:case t.DELIMITERS:case t.DICTIONARY:case t.DISABLE_P:case t.DISCARD:case t.DOCUMENT_P:case t.DOMAIN_P:case t.DOUBLE_P:case t.DROP:case t.EACH:case t.ENABLE_P:case t.ENCODING:case t.ENCRYPTED:case t.ENUM_P:case t.ESCAPE:case t.EVENT:case t.EXCLUDE:case t.EXCLUDING:case t.EXCLUSIVE:case t.EXECUTE:case t.EXPLAIN:case t.EXTENSION:case t.EXTERNAL:case t.FAMILY:case t.FIRST_P:case t.FOLLOWING:case t.FORCE:case t.FORWARD:case t.FUNCTION:case t.FUNCTIONS:case t.GLOBAL:case t.GRANTED:case t.HANDLER:case t.HEADER_P:case t.HOLD:case t.HOUR_P:case t.IDENTITY_P:case t.IF_P:case t.IMMEDIATE:case t.IMMUTABLE:case t.IMPLICIT_P:case t.INCLUDING:case t.INCREMENT:case t.INDEX:case t.INDEXES:case t.INHERIT:case t.INHERITS:case t.INLINE_P:case t.INSENSITIVE:case t.INSERT:case t.INSTEAD:case t.INVOKER:case t.ISOLATION:case t.KEY:case t.LABEL:case t.LANGUAGE:case t.LARGE_P:case t.LAST_P:case t.LEAKPROOF:case t.LEVEL:case t.LISTEN:case t.LOAD:case t.LOCAL:case t.LOCATION:case t.LOCK_P:case t.MAPPING:case t.MATCH:case t.MATERIALIZED:case t.MAXVALUE:case t.MINUTE_P:case t.MINVALUE:case t.MODE:case t.MONTH_P:case t.MOVE:case t.NAME_P:case t.NAMES:case t.NEXT:case t.NO:case t.NOTHING:case t.NOTIFY:case t.NOWAIT:case t.NULLS_P:case t.OBJECT_P:case t.OF:case t.OFF:case t.OIDS:case t.OPERATOR:case t.OPTION:case t.OPTIONS:case t.OWNED:case t.OWNER:case t.PARSER:case t.PARTIAL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PLANS:case t.PRECEDING:case t.PREPARE:case t.PREPARED:case t.PRESERVE:case t.PRIOR:case t.PRIVILEGES:case t.PROCEDURAL:case t.PROCEDURE:case t.PROGRAM:case t.QUOTE:case t.RANGE:case t.READ:case t.REASSIGN:case t.RECHECK:case t.RECURSIVE:case t.REF:case t.REFRESH:case t.REINDEX:case t.RELATIVE_P:case t.RELEASE:case t.RENAME:case t.REPEATABLE:case t.REPLACE:case t.REPLICA:case t.RESET:case t.RESTART:case t.RESTRICT:case t.RETURNS:case t.REVOKE:case t.ROLE:case t.ROLLBACK:case t.ROWS:case t.RULE:case t.SAVEPOINT:case t.SCHEMA:case t.SCROLL:case t.SEARCH:case t.SECOND_P:case t.SECURITY:case t.SEQUENCE:case t.SEQUENCES:case t.SERIALIZABLE:case t.SERVER:case t.SESSION:case t.SET:case t.SHARE:case t.SHOW:case t.SIMPLE:case t.SNAPSHOT:case t.STABLE:case t.STANDALONE_P:case t.START:case t.STATEMENT:case t.STATISTICS:case t.STDIN:case t.STDOUT:case t.STORAGE:case t.STRICT_P:case t.STRIP_P:case t.SYSID:case t.SYSTEM_P:case t.TABLES:case t.TABLESPACE:case t.TEMP:case t.TEMPLATE:case t.TEMPORARY:case t.TEXT_P:case t.TRANSACTION:case t.TRIGGER:case t.TRUNCATE:case t.TRUSTED:case t.TYPE_P:case t.TYPES_P:case t.UNBOUNDED:case t.UNCOMMITTED:case t.UNENCRYPTED:case t.UNKNOWN:case t.UNLISTEN:case t.UNLOGGED:case t.UNTIL:case t.UPDATE:case t.VACUUM:case t.VALID:case t.VALIDATE:case t.VALIDATOR:case t.VARYING:case t.VERSION_P:case t.VIEW:case t.VOLATILE:case t.WHITESPACE_P:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.WRITE:case t.XML_P:case t.YEAR_P:case t.YES_P:case t.ZONE:case t.BETWEEN:case t.BIGINT:case t.BIT:case t.BOOLEAN_P:case t.CHAR_P:case t.CHARACTER:case t.COALESCE:case t.DEC:case t.DECIMAL_P:case t.EXISTS:case t.EXTRACT:case t.FLOAT_P:case t.GREATEST:case t.INOUT:case t.INT_P:case t.INTEGER:case t.INTERVAL:case t.LEAST:case t.NATIONAL:case t.NCHAR:case t.NONE:case t.NULLIF:case t.NUMERIC:case t.OVERLAY:case t.POSITION:case t.PRECISION:case t.REAL:case t.ROW:case t.SETOF:case t.SMALLINT:case t.SUBSTRING:case t.TIME:case t.TIMESTAMP:case t.TREAT:case t.TRIM:case t.VALUES:case t.VARCHAR:case t.XMLATTRIBUTES:case t.XMLCOMMENT:case t.XMLAGG:case t.XML_IS_WELL_FORMED:case t.XML_IS_WELL_FORMED_DOCUMENT:case t.XML_IS_WELL_FORMED_CONTENT:case t.XPATH:case t.XPATH_EXISTS:case t.XMLCONCAT:case t.XMLELEMENT:case t.XMLEXISTS:case t.XMLFOREST:case t.XMLPARSE:case t.XMLPI:case t.XMLROOT:case t.XMLSERIALIZE:case t.CALL:case t.CURRENT_P:case t.ATTACH:case t.DETACH:case t.EXPRESSION:case t.GENERATED:case t.LOGGED:case t.STORED:case t.INCLUDE:case t.ROUTINE:case t.TRANSFORM:case t.IMPORT_P:case t.POLICY:case t.METHOD:case t.REFERENCING:case t.NEW:case t.OLD:case t.VALUE_P:case t.SUBSCRIPTION:case t.PUBLICATION:case t.OUT_P:case t.ROUTINES:case t.SCHEMAS:case t.PROCEDURES:case t.INPUT_P:case t.SUPPORT:case t.PARALLEL:case t.SQL_P:case t.DEPENDS:case t.OVERRIDING:case t.CONFLICT:case t.SKIP_P:case t.LOCKED:case t.TIES:case t.ROLLUP:case t.CUBE:case t.GROUPING:case t.SETS:case t.ORDINALITY:case t.XMLTABLE:case t.COLUMNS:case t.XMLNAMESPACES:case t.ROWTYPE:case t.NORMALIZED:case t.WITHIN:case t.FILTER:case t.GROUPS:case t.OTHERS:case t.NFC:case t.NFD:case t.NFKC:case t.NFKD:case t.UESCAPE:case t.VIEWS:case t.NORMALIZE:case t.DUMP:case t.PRINT_STRICT_PARAMS:case t.VARIABLE_CONFLICT:case t.ERROR:case t.USE_VARIABLE:case t.USE_COLUMN:case t.ALIAS:case t.CONSTANT:case t.PERFORM:case t.GET:case t.DIAGNOSTICS:case t.STACKED:case t.ELSIF:case t.REVERSE:case t.SLICE:case t.EXIT:case t.RETURN:case t.QUERY:case t.RAISE:case t.SQLSTATE:case t.DEBUG:case t.LOG:case t.INFO:case t.NOTICE:case t.WARNING:case t.EXCEPTION:case t.ASSERT:case t.OPEN:case t.ABS:case t.CBRT:case t.CEIL:case t.CEILING:case t.DEGREES:case t.DIV:case t.EXP:case t.FACTORIAL:case t.FLOOR:case t.GCD:case t.LCM:case t.LN:case t.LOG10:case t.MIN_SCALE:case t.MOD:case t.PI:case t.POWER:case t.RADIANS:case t.ROUND:case t.SCALE:case t.SIGN:case t.SQRT:case t.TRIM_SCALE:case t.TRUNC:case t.WIDTH_BUCKET:case t.RANDOM:case t.SETSEED:case t.ACOS:case t.ACOSD:case t.ASIN:case t.ASIND:case t.ATAN:case t.ATAND:case t.ATAN2:case t.ATAN2D:case t.COS:case t.COSD:case t.COT:case t.COTD:case t.SIN:case t.SIND:case t.TAN:case t.TAND:case t.SINH:case t.COSH:case t.TANH:case t.ASINH:case t.ACOSH:case t.ATANH:case t.BIT_LENGTH:case t.CHAR_LENGTH:case t.CHARACTER_LENGTH:case t.LOWER:case t.OCTET_LENGTH:case t.UPPER:case t.ASCII:case t.BTRIM:case t.CHR:case t.CONCAT:case t.CONCAT_WS:case t.FORMAT:case t.INITCAP:case t.LENGTH:case t.LPAD:case t.LTRIM:case t.MD5:case t.PARSE_IDENT:case t.PG_CLIENT_ENCODING:case t.QUOTE_IDENT:case t.QUOTE_LITERAL:case t.QUOTE_NULLABLE:case t.REGEXP_COUNT:case t.REGEXP_INSTR:case t.REGEXP_LIKE:case t.REGEXP_MATCH:case t.REGEXP_MATCHES:case t.REGEXP_REPLACE:case t.REGEXP_SPLIT_TO_ARRAY:case t.REGEXP_SPLIT_TO_TABLE:case t.REGEXP_SUBSTR:case t.REPEAT:case t.RPAD:case t.RTRIM:case t.SPLIT_PART:case t.STARTS_WITH:case t.STRING_TO_ARRAY:case t.STRING_TO_TABLE:case t.STRPOS:case t.SUBSTR:case t.TO_ASCII:case t.TO_HEX:case t.TRANSLATE:case t.UNISTR:case t.AGE:case t.CLOCK_TIMESTAMP:case t.DATE_BIN:case t.DATE_PART:case t.DATE_TRUNC:case t.ISFINITE:case t.JUSTIFY_DAYS:case t.JUSTIFY_HOURS:case t.JUSTIFY_INTERVAL:case t.MAKE_DATE:case t.MAKE_INTERVAL:case t.MAKE_TIME:case t.MAKE_TIMESTAMP:case t.MAKE_TIMESTAMPTZ:case t.NOW:case t.STATEMENT_TIMESTAMP:case t.TIMEOFDAY:case t.TRANSACTION_TIMESTAMP:case t.TO_TIMESTAMP:case t.TO_CHAR:case t.TO_DATE:case t.TO_NUMBER:case t.Identifier:case t.QuotedIdentifier:case t.UnicodeQuotedIdentifier:case t.PLSQLVARIABLENAME:case t.PLSQLIDENTIFIER:this.enterOuterAlt(e,2),this.state=10568,this.anyIdentifier();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalExitCondition(){let e=new sC(this.context,this.state);this.enterRule(e,1486,t.RULE_optionalExitCondition);try{switch(this.state=10574,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WHEN:this.enterOuterAlt(e,1),this.state=10571,this.match(t.WHEN),this.state=10572,this.expressionUntilSemi();break;case t.SEMI:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}anyIdentifier(){let e=new aC(this.context,this.state);this.enterRule(e,1488,t.RULE_anyIdentifier);try{switch(this.state=10578,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,788,this.context)){case 1:this.enterOuterAlt(e,1),this.state=10576,this.columnId();break;case 2:this.enterOuterAlt(e,2),this.state=10577,this.plsqlUnreservedKeyword()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}plsqlUnreservedKeyword(){let e,s=new rC(this.context,this.state);this.enterRule(s,1490,t.RULE_plsqlUnreservedKeyword);try{this.enterOuterAlt(s,1),this.state=10580,e=this.tokenStream.LA(1),!(e-33&-32)&&1<<e-33&286268421||!(e-92&-32)&&1<<e-92&2164260865||!(e-130&-32)&&1<<e-130&2290106369||167===e||172===e||!(e-207&-32)&&1<<e-207&33554441||!(e-240&-32)&&1<<e-240&6553601||!(e-272&-32)&&1<<e-272&268451841||!(e-306&-32)&&1<<e-306&1051713||353===e||433===e||434===e||!(e-477&-32)&&1<<e-477&3825197057||!(e-509&-32)&&1<<e-509&3055?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}sqlExpression(){let e,s=new iC(this.context,this.state);this.enterRule(s,1492,t.RULE_sqlExpression);try{this.enterOuterAlt(s,1),this.state=10582,this.optionalTargetList(),this.state=10584,this.errorHandler.sync(this),e=this.tokenStream.LA(1),71===e&&(this.state=10583,this.intoClause()),this.state=10586,this.fromClause(),this.state=10587,this.whereClause(),this.state=10588,this.groupClause(),this.state=10589,this.havingClause(),this.state=10590,this.windowClause()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expressionUntilThen(){let e=new cC(this.context,this.state);this.enterRule(e,1494,t.RULE_expressionUntilThen);try{this.enterOuterAlt(e,1),this.state=10592,this.sqlExpression()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expressionUntilSemi(){let e=new nC(this.context,this.state);this.enterRule(e,1496,t.RULE_expressionUntilSemi);try{this.enterOuterAlt(e,1),this.state=10594,this.sqlExpression()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expressionUntilRightbracket(){let e=new hC(this.context,this.state);this.enterRule(e,1498,t.RULE_expressionUntilRightbracket);try{this.enterOuterAlt(e,1),this.state=10596,this.expression1()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expressionUntilLoop(){let e=new EC(this.context,this.state);this.enterRule(e,1500,t.RULE_expressionUntilLoop);try{this.enterOuterAlt(e,1),this.state=10598,this.expression1()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}makeExecuteSqlStatement(){let e=new TC(this.context,this.state);this.enterRule(e,1502,t.RULE_makeExecuteSqlStatement);try{this.enterOuterAlt(e,1),this.state=10600,this.statement(),this.state=10601,this.optionalReturningClauseInto()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}optionalReturningClauseInto(){let e=new oC(this.context,this.state);this.enterRule(e,1504,t.RULE_optionalReturningClauseInto);try{switch(this.state=10609,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.INTO:if(this.enterOuterAlt(e,1),1===(this.state=10603,this.match(t.INTO),this.state=10605,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,790,this.context)))this.state=10604,this.match(t.STRICT_P);this.state=10607,this.intoTarget();break;case t.SEMI:this.enterOuterAlt(e,2);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}roleOrAliases(){let e,s=new RC(this.context,this.state);this.enterRule(s,1506,t.RULE_roleOrAliases);try{this.enterOuterAlt(s,1),this.state=10611,e=this.tokenStream.LA(1),66===e||99===e||311===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}sempred(t,e,s){return 540!==e||this.expression2_sempred(t,s)}expression2_sempred(t,e){switch(e){case 0:return this.precpred(this.context,8);case 1:return this.precpred(this.context,7);case 2:return this.precpred(this.context,6);case 3:return this.precpred(this.context,5);case 4:return this.precpred(this.context,4);case 5:return this.precpred(this.context,10);case 6:return this.precpred(this.context,2);case 7:return this.precpred(this.context,1)}return!0}static get _ATN(){return t.__ATN||(t.__ATN=(new fr).deserialize(t._serializedATN)),t.__ATN}get vocabulary(){return t.vocabulary}},Xi.Dollar=1,Xi.OPEN_PAREN=2,Xi.CLOSE_PAREN=3,Xi.OPEN_BRACKET=4,Xi.CLOSE_BRACKET=5,Xi.COMMA=6,Xi.SEMI=7,Xi.COLON=8,Xi.STAR=9,Xi.EQUAL=10,Xi.DOT=11,Xi.PLUS=12,Xi.MINUS=13,Xi.SLASH=14,Xi.CARET=15,Xi.LT=16,Xi.GT=17,Xi.LESS_LESS=18,Xi.GREATER_GREATER=19,Xi.COLON_EQUALS=20,Xi.LESS_EQUALS=21,Xi.EQUALS_GREATER=22,Xi.GREATER_EQUALS=23,Xi.DOT_DOT=24,Xi.NOT_EQUALS=25,Xi.TYPECAST=26,Xi.PERCENT=27,Xi.PARAM=28,Xi.Operator=29,Xi.ALL=30,Xi.ANALYSE=31,Xi.ANALYZE=32,Xi.AND=33,Xi.ANY=34,Xi.ARRAY=35,Xi.AS=36,Xi.ASC=37,Xi.ASYMMETRIC=38,Xi.BOTH=39,Xi.CASE=40,Xi.CAST=41,Xi.CHECK=42,Xi.COLLATE=43,Xi.COLUMN=44,Xi.CONSTRAINT=45,Xi.CREATE=46,Xi.CURRENT_CATALOG=47,Xi.CURRENT_DATE=48,Xi.CURRENT_ROLE=49,Xi.CURRENT_TIME=50,Xi.CURRENT_TIMESTAMP=51,Xi.CURRENT_USER=52,Xi.DEFAULT=53,Xi.DEFERRABLE=54,Xi.DESC=55,Xi.DISTINCT=56,Xi.DO=57,Xi.ELSE=58,Xi.EXCEPT=59,Xi.FALSE_P=60,Xi.FETCH=61,Xi.FOR=62,Xi.FOREIGN=63,Xi.FROM=64,Xi.GRANT=65,Xi.GROUP_P=66,Xi.HAVING=67,Xi.IN_P=68,Xi.INITIALLY=69,Xi.INTERSECT=70,Xi.INTO=71,Xi.LATERAL_P=72,Xi.LEADING=73,Xi.LIMIT=74,Xi.LOCALTIME=75,Xi.LOCALTIMESTAMP=76,Xi.NOT=77,Xi.NULL_P=78,Xi.OFFSET=79,Xi.ON=80,Xi.ONLY=81,Xi.OR=82,Xi.ORDER=83,Xi.PLACING=84,Xi.PRIMARY=85,Xi.REFERENCES=86,Xi.RETURNING=87,Xi.SELECT=88,Xi.SESSION_USER=89,Xi.SOME=90,Xi.SYMMETRIC=91,Xi.TABLE=92,Xi.THEN=93,Xi.TO=94,Xi.TRAILING=95,Xi.TRUE_P=96,Xi.UNION=97,Xi.UNIQUE=98,Xi.USER=99,Xi.USING=100,Xi.VARIADIC=101,Xi.WHEN=102,Xi.WHERE=103,Xi.WINDOW=104,Xi.WITH=105,Xi.AUTHORIZATION=106,Xi.BINARY=107,Xi.COLLATION=108,Xi.CONCURRENTLY=109,Xi.CROSS=110,Xi.CURRENT_SCHEMA=111,Xi.FREEZE=112,Xi.FULL=113,Xi.ILIKE=114,Xi.INNER_P=115,Xi.IS=116,Xi.ISNULL=117,Xi.JOIN=118,Xi.LEFT=119,Xi.LIKE=120,Xi.NATURAL=121,Xi.NOTNULL=122,Xi.OUTER_P=123,Xi.OVER=124,Xi.OVERLAPS=125,Xi.RIGHT=126,Xi.SIMILAR=127,Xi.VERBOSE=128,Xi.ABORT_P=129,Xi.ABSOLUTE_P=130,Xi.ACCESS=131,Xi.ACTION=132,Xi.ADD_P=133,Xi.ADMIN=134,Xi.AFTER=135,Xi.AGGREGATE=136,Xi.ALSO=137,Xi.ALTER=138,Xi.ALWAYS=139,Xi.ASSERTION=140,Xi.ASSIGNMENT=141,Xi.AT=142,Xi.ATTRIBUTE=143,Xi.BACKWARD=144,Xi.BEFORE=145,Xi.BEGIN_P=146,Xi.BY=147,Xi.CACHE=148,Xi.CALLED=149,Xi.CASCADE=150,Xi.CASCADED=151,Xi.CATALOG=152,Xi.CHAIN=153,Xi.CHARACTERISTICS=154,Xi.CHECKPOINT=155,Xi.CLASS=156,Xi.CLOSE=157,Xi.CLUSTER=158,Xi.COMMENT=159,Xi.COMMENTS=160,Xi.COMMIT=161,Xi.COMMITTED=162,Xi.CONFIGURATION=163,Xi.CONNECTION=164,Xi.CONSTRAINTS=165,Xi.CONTENT_P=166,Xi.CONTINUE_P=167,Xi.CONVERSION_P=168,Xi.COPY=169,Xi.COST=170,Xi.CSV=171,Xi.CURSOR=172,Xi.CYCLE=173,Xi.DATA_P=174,Xi.DATABASE=175,Xi.DAY_P=176,Xi.DEALLOCATE=177,Xi.DECLARE=178,Xi.DEFAULTS=179,Xi.DEFERRED=180,Xi.DEFINER=181,Xi.DELETE_P=182,Xi.DELIMITER=183,Xi.DELIMITERS=184,Xi.DICTIONARY=185,Xi.DISABLE_P=186,Xi.DISCARD=187,Xi.DOCUMENT_P=188,Xi.DOMAIN_P=189,Xi.DOUBLE_P=190,Xi.DROP=191,Xi.EACH=192,Xi.ENABLE_P=193,Xi.ENCODING=194,Xi.ENCRYPTED=195,Xi.ENUM_P=196,Xi.ESCAPE=197,Xi.EVENT=198,Xi.EXCLUDE=199,Xi.EXCLUDING=200,Xi.EXCLUSIVE=201,Xi.EXECUTE=202,Xi.EXPLAIN=203,Xi.EXTENSION=204,Xi.EXTERNAL=205,Xi.FAMILY=206,Xi.FIRST_P=207,Xi.FOLLOWING=208,Xi.FORCE=209,Xi.FORWARD=210,Xi.FUNCTION=211,Xi.FUNCTIONS=212,Xi.GLOBAL=213,Xi.GRANTED=214,Xi.HANDLER=215,Xi.HEADER_P=216,Xi.HOLD=217,Xi.HOUR_P=218,Xi.IDENTITY_P=219,Xi.IF_P=220,Xi.IMMEDIATE=221,Xi.IMMUTABLE=222,Xi.IMPLICIT_P=223,Xi.INCLUDING=224,Xi.INCREMENT=225,Xi.INDEX=226,Xi.INDEXES=227,Xi.INHERIT=228,Xi.INHERITS=229,Xi.INLINE_P=230,Xi.INSENSITIVE=231,Xi.INSERT=232,Xi.INSTEAD=233,Xi.INVOKER=234,Xi.ISOLATION=235,Xi.KEY=236,Xi.LABEL=237,Xi.LANGUAGE=238,Xi.LARGE_P=239,Xi.LAST_P=240,Xi.LEAKPROOF=241,Xi.LEVEL=242,Xi.LISTEN=243,Xi.LOAD=244,Xi.LOCAL=245,Xi.LOCATION=246,Xi.LOCK_P=247,Xi.MAPPING=248,Xi.MATCH=249,Xi.MATCHED=250,Xi.MATERIALIZED=251,Xi.MAXVALUE=252,Xi.MERGE=253,Xi.MINUTE_P=254,Xi.MINVALUE=255,Xi.MODE=256,Xi.MONTH_P=257,Xi.MOVE=258,Xi.NAME_P=259,Xi.NAMES=260,Xi.NEXT=261,Xi.NO=262,Xi.NOTHING=263,Xi.NOTIFY=264,Xi.NOWAIT=265,Xi.NULLS_P=266,Xi.OBJECT_P=267,Xi.OF=268,Xi.OFF=269,Xi.OIDS=270,Xi.OPERATOR=271,Xi.OPTION=272,Xi.OPTIONS=273,Xi.OWNED=274,Xi.OWNER=275,Xi.PARSER=276,Xi.PARTIAL=277,Xi.PARTITION=278,Xi.PASSING=279,Xi.PASSWORD=280,Xi.PLANS=281,Xi.PRECEDING=282,Xi.PREPARE=283,Xi.PREPARED=284,Xi.PRESERVE=285,Xi.PRIOR=286,Xi.PRIVILEGES=287,Xi.PROCEDURAL=288,Xi.PROCEDURE=289,Xi.PROGRAM=290,Xi.QUOTE=291,Xi.RANGE=292,Xi.READ=293,Xi.REASSIGN=294,Xi.RECHECK=295,Xi.RECURSIVE=296,Xi.REF=297,Xi.REFRESH=298,Xi.REINDEX=299,Xi.RELATIVE_P=300,Xi.RELEASE=301,Xi.RENAME=302,Xi.REPEATABLE=303,Xi.REPLACE=304,Xi.REPLICA=305,Xi.RESET=306,Xi.RESTART=307,Xi.RESTRICT=308,Xi.RETURNS=309,Xi.REVOKE=310,Xi.ROLE=311,Xi.ROLLBACK=312,Xi.ROWS=313,Xi.RULE=314,Xi.SAVEPOINT=315,Xi.SCHEMA=316,Xi.SCROLL=317,Xi.SEARCH=318,Xi.SECOND_P=319,Xi.SECURITY=320,Xi.SEQUENCE=321,Xi.SEQUENCES=322,Xi.SERIALIZABLE=323,Xi.SERVER=324,Xi.SESSION=325,Xi.SET=326,Xi.SHARE=327,Xi.SHOW=328,Xi.SIMPLE=329,Xi.SNAPSHOT=330,Xi.STABLE=331,Xi.STANDALONE_P=332,Xi.START=333,Xi.STATEMENT=334,Xi.STATISTICS=335,Xi.STDIN=336,Xi.STDOUT=337,Xi.STORAGE=338,Xi.STRICT_P=339,Xi.STRIP_P=340,Xi.SYSID=341,Xi.SYSTEM_P=342,Xi.TABLES=343,Xi.TABLESPACE=344,Xi.TEMP=345,Xi.TEMPLATE=346,Xi.TEMPORARY=347,Xi.TEXT_P=348,Xi.TRANSACTION=349,Xi.TRIGGER=350,Xi.TRUNCATE=351,Xi.TRUSTED=352,Xi.TYPE_P=353,Xi.TYPES_P=354,Xi.UNBOUNDED=355,Xi.UNCOMMITTED=356,Xi.UNENCRYPTED=357,Xi.UNKNOWN=358,Xi.UNLISTEN=359,Xi.UNLOGGED=360,Xi.UNTIL=361,Xi.UPDATE=362,Xi.VACUUM=363,Xi.VALID=364,Xi.VALIDATE=365,Xi.VALIDATOR=366,Xi.VARYING=367,Xi.VERSION_P=368,Xi.VIEW=369,Xi.VOLATILE=370,Xi.WHITESPACE_P=371,Xi.WITHOUT=372,Xi.WORK=373,Xi.WRAPPER=374,Xi.WRITE=375,Xi.XML_P=376,Xi.YEAR_P=377,Xi.YES_P=378,Xi.ZONE=379,Xi.BETWEEN=380,Xi.BIGINT=381,Xi.BIT=382,Xi.BOOLEAN_P=383,Xi.CHAR_P=384,Xi.CHARACTER=385,Xi.COALESCE=386,Xi.DEC=387,Xi.DECIMAL_P=388,Xi.EXISTS=389,Xi.EXTRACT=390,Xi.FLOAT_P=391,Xi.GREATEST=392,Xi.INOUT=393,Xi.INT_P=394,Xi.INTEGER=395,Xi.INTERVAL=396,Xi.LEAST=397,Xi.NATIONAL=398,Xi.NCHAR=399,Xi.NONE=400,Xi.NULLIF=401,Xi.NUMERIC=402,Xi.OVERLAY=403,Xi.POSITION=404,Xi.PRECISION=405,Xi.REAL=406,Xi.ROW=407,Xi.SETOF=408,Xi.SMALLINT=409,Xi.SUBSTRING=410,Xi.TIME=411,Xi.TIMESTAMP=412,Xi.TREAT=413,Xi.TRIM=414,Xi.VALUES=415,Xi.VARCHAR=416,Xi.XMLATTRIBUTES=417,Xi.XMLCOMMENT=418,Xi.XMLAGG=419,Xi.XML_IS_WELL_FORMED=420,Xi.XML_IS_WELL_FORMED_DOCUMENT=421,Xi.XML_IS_WELL_FORMED_CONTENT=422,Xi.XPATH=423,Xi.XPATH_EXISTS=424,Xi.XMLCONCAT=425,Xi.XMLELEMENT=426,Xi.XMLEXISTS=427,Xi.XMLFOREST=428,Xi.XMLPARSE=429,Xi.XMLPI=430,Xi.XMLROOT=431,Xi.XMLSERIALIZE=432,Xi.CALL=433,Xi.CURRENT_P=434,Xi.ATTACH=435,Xi.DETACH=436,Xi.EXPRESSION=437,Xi.GENERATED=438,Xi.LOGGED=439,Xi.STORED=440,Xi.INCLUDE=441,Xi.ROUTINE=442,Xi.TRANSFORM=443,Xi.IMPORT_P=444,Xi.POLICY=445,Xi.METHOD=446,Xi.REFERENCING=447,Xi.NEW=448,Xi.OLD=449,Xi.VALUE_P=450,Xi.SUBSCRIPTION=451,Xi.PUBLICATION=452,Xi.OUT_P=453,Xi.END_P=454,Xi.ROUTINES=455,Xi.SCHEMAS=456,Xi.PROCEDURES=457,Xi.INPUT_P=458,Xi.SUPPORT=459,Xi.PARALLEL=460,Xi.SQL_P=461,Xi.DEPENDS=462,Xi.OVERRIDING=463,Xi.CONFLICT=464,Xi.SKIP_P=465,Xi.LOCKED=466,Xi.TIES=467,Xi.ROLLUP=468,Xi.CUBE=469,Xi.GROUPING=470,Xi.SETS=471,Xi.TABLESAMPLE=472,Xi.ORDINALITY=473,Xi.XMLTABLE=474,Xi.COLUMNS=475,Xi.XMLNAMESPACES=476,Xi.ROWTYPE=477,Xi.NORMALIZED=478,Xi.WITHIN=479,Xi.FILTER=480,Xi.GROUPS=481,Xi.OTHERS=482,Xi.NFC=483,Xi.NFD=484,Xi.NFKC=485,Xi.NFKD=486,Xi.UESCAPE=487,Xi.VIEWS=488,Xi.NORMALIZE=489,Xi.DUMP=490,Xi.PRINT_STRICT_PARAMS=491,Xi.VARIABLE_CONFLICT=492,Xi.ERROR=493,Xi.USE_VARIABLE=494,Xi.USE_COLUMN=495,Xi.ALIAS=496,Xi.CONSTANT=497,Xi.PERFORM=498,Xi.GET=499,Xi.DIAGNOSTICS=500,Xi.STACKED=501,Xi.ELSIF=502,Xi.WHILE=503,Xi.REVERSE=504,Xi.FOREACH=505,Xi.SLICE=506,Xi.EXIT=507,Xi.RETURN=508,Xi.QUERY=509,Xi.RAISE=510,Xi.SQLSTATE=511,Xi.DEBUG=512,Xi.LOG=513,Xi.INFO=514,Xi.NOTICE=515,Xi.WARNING=516,Xi.EXCEPTION=517,Xi.ASSERT=518,Xi.LOOP=519,Xi.OPEN=520,Xi.ABS=521,Xi.CBRT=522,Xi.CEIL=523,Xi.CEILING=524,Xi.DEGREES=525,Xi.DIV=526,Xi.EXP=527,Xi.FACTORIAL=528,Xi.FLOOR=529,Xi.GCD=530,Xi.LCM=531,Xi.LN=532,Xi.LOG10=533,Xi.MIN_SCALE=534,Xi.MOD=535,Xi.PI=536,Xi.POWER=537,Xi.RADIANS=538,Xi.ROUND=539,Xi.SCALE=540,Xi.SIGN=541,Xi.SQRT=542,Xi.TRIM_SCALE=543,Xi.TRUNC=544,Xi.WIDTH_BUCKET=545,Xi.RANDOM=546,Xi.SETSEED=547,Xi.ACOS=548,Xi.ACOSD=549,Xi.ASIN=550,Xi.ASIND=551,Xi.ATAN=552,Xi.ATAND=553,Xi.ATAN2=554,Xi.ATAN2D=555,Xi.COS=556,Xi.COSD=557,Xi.COT=558,Xi.COTD=559,Xi.SIN=560,Xi.SIND=561,Xi.TAN=562,Xi.TAND=563,Xi.SINH=564,Xi.COSH=565,Xi.TANH=566,Xi.ASINH=567,Xi.ACOSH=568,Xi.ATANH=569,Xi.BIT_LENGTH=570,Xi.CHAR_LENGTH=571,Xi.CHARACTER_LENGTH=572,Xi.LOWER=573,Xi.OCTET_LENGTH=574,Xi.UPPER=575,Xi.ASCII=576,Xi.BTRIM=577,Xi.CHR=578,Xi.CONCAT=579,Xi.CONCAT_WS=580,Xi.FORMAT=581,Xi.INITCAP=582,Xi.LENGTH=583,Xi.LPAD=584,Xi.LTRIM=585,Xi.MD5=586,Xi.PARSE_IDENT=587,Xi.PG_CLIENT_ENCODING=588,Xi.QUOTE_IDENT=589,Xi.QUOTE_LITERAL=590,Xi.QUOTE_NULLABLE=591,Xi.REGEXP_COUNT=592,Xi.REGEXP_INSTR=593,Xi.REGEXP_LIKE=594,Xi.REGEXP_MATCH=595,Xi.REGEXP_MATCHES=596,Xi.REGEXP_REPLACE=597,Xi.REGEXP_SPLIT_TO_ARRAY=598,Xi.REGEXP_SPLIT_TO_TABLE=599,Xi.REGEXP_SUBSTR=600,Xi.REPEAT=601,Xi.RPAD=602,Xi.RTRIM=603,Xi.SPLIT_PART=604,Xi.STARTS_WITH=605,Xi.STRING_TO_ARRAY=606,Xi.STRING_TO_TABLE=607,Xi.STRPOS=608,Xi.SUBSTR=609,Xi.TO_ASCII=610,Xi.TO_HEX=611,Xi.TRANSLATE=612,Xi.UNISTR=613,Xi.AGE=614,Xi.CLOCK_TIMESTAMP=615,Xi.DATE_BIN=616,Xi.DATE_PART=617,Xi.DATE_TRUNC=618,Xi.ISFINITE=619,Xi.JUSTIFY_DAYS=620,Xi.JUSTIFY_HOURS=621,Xi.JUSTIFY_INTERVAL=622,Xi.MAKE_DATE=623,Xi.MAKE_INTERVAL=624,Xi.MAKE_TIME=625,Xi.MAKE_TIMESTAMP=626,Xi.MAKE_TIMESTAMPTZ=627,Xi.NOW=628,Xi.STATEMENT_TIMESTAMP=629,Xi.TIMEOFDAY=630,Xi.TRANSACTION_TIMESTAMP=631,Xi.TO_TIMESTAMP=632,Xi.TO_CHAR=633,Xi.TO_DATE=634,Xi.TO_NUMBER=635,Xi.Identifier=636,Xi.QuotedIdentifier=637,Xi.UnterminatedQuotedIdentifier=638,Xi.InvalidQuotedIdentifier=639,Xi.InvalidUnterminatedQuotedIdentifier=640,Xi.UnicodeQuotedIdentifier=641,Xi.UnterminatedUnicodeQuotedIdentifier=642,Xi.InvalidUnicodeQuotedIdentifier=643,Xi.InvalidUnterminatedUnicodeQuotedIdentifier=644,Xi.StringConstant=645,Xi.UnterminatedStringConstant=646,Xi.UnicodeEscapeStringConstant=647,Xi.UnterminatedUnicodeEscapeStringConstant=648,Xi.BeginDollarStringConstant=649,Xi.BinaryStringConstant=650,Xi.UnterminatedBinaryStringConstant=651,Xi.InvalidBinaryStringConstant=652,Xi.InvalidUnterminatedBinaryStringConstant=653,Xi.HexadecimalStringConstant=654,Xi.UnterminatedHexadecimalStringConstant=655,Xi.InvalidHexadecimalStringConstant=656,Xi.InvalidUnterminatedHexadecimalStringConstant=657,Xi.Integral=658,Xi.NumericFail=659,Xi.Numeric=660,Xi.PLSQLVARIABLENAME=661,Xi.PLSQLIDENTIFIER=662,Xi.Whitespace=663,Xi.Newline=664,Xi.LineComment=665,Xi.BlockComment=666,Xi.UnterminatedBlockComment=667,Xi.MetaCommand=668,Xi.EndMetaCommand=669,Xi.ErrorCharacter=670,Xi.EscapeStringConstant=671,Xi.UnterminatedEscapeStringConstant=672,Xi.InvalidEscapeStringConstant=673,Xi.InvalidUnterminatedEscapeStringConstant=674,Xi.AfterEscapeStringConstantMode_NotContinued=675,Xi.AfterEscapeStringConstantWithNewlineMode_NotContinued=676,Xi.DollarText=677,Xi.EndDollarStringConstant=678,Xi.AfterEscapeStringConstantWithNewlineMode_Continued=679,Xi.RULE_root=0,Xi.RULE_plsqlRoot=1,Xi.RULE_statements=2,Xi.RULE_statement=3,Xi.RULE_plsqlConsoleCommand=4,Xi.RULE_callStatement=5,Xi.RULE_optionalWith=6,Xi.RULE_optionalRoleList=7,Xi.RULE_alterOptionalRoleList=8,Xi.RULE_alterRoleElemement=9,Xi.RULE_createRoleElement=10,Xi.RULE_createRoleStatement=11,Xi.RULE_alterRoleStatement=12,Xi.RULE_optionalInDatabase=13,Xi.RULE_alterRoleSetStatement=14,Xi.RULE_dropRoleStatement=15,Xi.RULE_addOrDrop=16,Xi.RULE_createSchemaStatement=17,Xi.RULE_optionalSchemaName=18,Xi.RULE_optionalSchemaList=19,Xi.RULE_schemaStatement=20,Xi.RULE_variableSetStatement=21,Xi.RULE_setStatementEnding=22,Xi.RULE_genericSetClause=23,Xi.RULE_setStatementMore=24,Xi.RULE_variableName=25,Xi.RULE_variableList=26,Xi.RULE_variableValue=27,Xi.RULE_isoLevel=28,Xi.RULE_booleanOrString=29,Xi.RULE_zoneValue=30,Xi.RULE_optionalEncoding=31,Xi.RULE_nonReservedWordOrSconst=32,Xi.RULE_variableResetStatement=33,Xi.RULE_resetClauseRest=34,Xi.RULE_genericResetClause=35,Xi.RULE_setResetClause=36,Xi.RULE_functionSetResetClause=37,Xi.RULE_variableShowStatement=38,Xi.RULE_setConstraintsStatement=39,Xi.RULE_constraintsSetList=40,Xi.RULE_constraintsSetMode=41,Xi.RULE_checkpointStatement=42,Xi.RULE_discardStatement=43,Xi.RULE_alterTableStatement=44,Xi.RULE_alterTableCommands=45,Xi.RULE_partitionCommand=46,Xi.RULE_indexPartitionCommand=47,Xi.RULE_alterTableCommand=48,Xi.RULE_alterColumnDefault=49,Xi.RULE_optionalDropBehavior=50,Xi.RULE_optionalCollateClause=51,Xi.RULE_alterUsing=52,Xi.RULE_replicaIdentity=53,Xi.RULE_relOptions=54,Xi.RULE_optionalRelOptions=55,Xi.RULE_relOptionList=56,Xi.RULE_relOptionElem=57,Xi.RULE_alterIdentityColumnOptionList=58,Xi.RULE_alterIdentityColumnOption=59,Xi.RULE_partitionBoundSpecification=60,Xi.RULE_hashPartitionBoundElement=61,Xi.RULE_hashPartitionBound=62,Xi.RULE_alterCompositeTypeStatement=63,Xi.RULE_alterTypeCommands=64,Xi.RULE_alterTypeCommand=65,Xi.RULE_closePortalStatement=66,Xi.RULE_copyStatement=67,Xi.RULE_fromOrTo=68,Xi.RULE_copyFileName=69,Xi.RULE_copyOptions=70,Xi.RULE_copyOptionsItem=71,Xi.RULE_copyDelimiter=72,Xi.RULE_copyGenericOptionList=73,Xi.RULE_copyGenericOptionElem=74,Xi.RULE_copyGenericOptionArgument=75,Xi.RULE_createStatement=76,Xi.RULE_temporaryOption=77,Xi.RULE_optionalTableElementList=78,Xi.RULE_optionalTypedTableElementList=79,Xi.RULE_tableElementList=80,Xi.RULE_typedTableElementList=81,Xi.RULE_tableElement=82,Xi.RULE_typedTableElement=83,Xi.RULE_columnDefinition=84,Xi.RULE_columnOptions=85,Xi.RULE_columnQualifierList=86,Xi.RULE_columnConstraint=87,Xi.RULE_columnConstraintElement=88,Xi.RULE_generatedWhen=89,Xi.RULE_constraintAttribute=90,Xi.RULE_tableLikeClause=91,Xi.RULE_tableLikeOptionList=92,Xi.RULE_tableLikeOption=93,Xi.RULE_tableConstraint=94,Xi.RULE_constraintElement=95,Xi.RULE_columnListWithParentheses=96,Xi.RULE_columnList=97,Xi.RULE_columnElement=98,Xi.RULE_optionalColumnListInclude=99,Xi.RULE_matchClause=100,Xi.RULE_exclusionConstraintList=101,Xi.RULE_exclusionConstraintElement=102,Xi.RULE_exclusionWhereClause=103,Xi.RULE_keyActions=104,Xi.RULE_onKeyUpdateClause=105,Xi.RULE_onKeyDeleteClause=106,Xi.RULE_keyAction=107,Xi.RULE_inheritClause=108,Xi.RULE_optionalPartitionSpecification=109,Xi.RULE_partitionSpecification=110,Xi.RULE_partitionElements=111,Xi.RULE_partitionElement=112,Xi.RULE_optionalTableAccessMethodClause=113,Xi.RULE_with=114,Xi.RULE_onCommitOption=115,Xi.RULE_optionalTablespace=116,Xi.RULE_usingIndexTablespace=117,Xi.RULE_existingIndex=118,Xi.RULE_createStatsStatement=119,Xi.RULE_alterStatsStatement=120,Xi.RULE_createAsStatement=121,Xi.RULE_createAsTarget=122,Xi.RULE_withData=123,Xi.RULE_createMaterializedViewStatement=124,Xi.RULE_createMaterializedViewTarget=125,Xi.RULE_refreshMaterializedViewStatement=126,Xi.RULE_createSequenceStatement=127,Xi.RULE_alterSequenceStatement=128,Xi.RULE_optionalParenthesizedSeqOptionsList=129,Xi.RULE_sequenceOptionList=130,Xi.RULE_sequenceOptionItem=131,Xi.RULE_numericOnly=132,Xi.RULE_numericOnlyList=133,Xi.RULE_createProcedureLangStatement=134,Xi.RULE_handlerName=135,Xi.RULE_optionalInlineHandler=136,Xi.RULE_validatorClause=137,Xi.RULE_optionalProcedural=138,Xi.RULE_createTablespaceStatement=139,Xi.RULE_optionalTablespaceOwner=140,Xi.RULE_dropTablespaceStatement=141,Xi.RULE_createExtensionStatement=142,Xi.RULE_createExtensionOptionItem=143,Xi.RULE_alterExtensionStatement=144,Xi.RULE_alterExtensionOptionItem=145,Xi.RULE_alterExtensionContentsStatement=146,Xi.RULE_createForeignDataWrapperStatement=147,Xi.RULE_forwardOption=148,Xi.RULE_forwardOptions=149,Xi.RULE_alterForeignDataWrapperStatement=150,Xi.RULE_createGenericOptions=151,Xi.RULE_genericOptionList=152,Xi.RULE_alterGenericOptions=153,Xi.RULE_alterGenericOptionList=154,Xi.RULE_alterGenericOptionElem=155,Xi.RULE_genericOptionElement=156,Xi.RULE_genericOptionName=157,Xi.RULE_genericOptionArgument=158,Xi.RULE_createForeignServerStatement=159,Xi.RULE_optionalType=160,Xi.RULE_foreignServerVersion=161,Xi.RULE_alterForeignServerStatement=162,Xi.RULE_createForeignTableStatement=163,Xi.RULE_importForeignSchemaStatement=164,Xi.RULE_importQualificationType=165,Xi.RULE_importQualification=166,Xi.RULE_createUserMappingStatement=167,Xi.RULE_authIdentifier=168,Xi.RULE_dropUserMappingStatement=169,Xi.RULE_alterUserMappingStatement=170,Xi.RULE_createPolicyStatement=171,Xi.RULE_alterPolicyStatement=172,Xi.RULE_rowSecurityOptionalExpression=173,Xi.RULE_rowSecurityOptionalWithCheck=174,Xi.RULE_rowSecurityOptionalToUser=175,Xi.RULE_rowSecurityDefaultPermissive=176,Xi.RULE_rowSecurityDefaultForCmd=177,Xi.RULE_rowSecurityCommand=178,Xi.RULE_createAccessMethodStatement=179,Xi.RULE_accessMethodType=180,Xi.RULE_createTriggerStatement=181,Xi.RULE_triggerActionTime=182,Xi.RULE_triggerEvents=183,Xi.RULE_triggerOneEvent=184,Xi.RULE_triggerReferencing=185,Xi.RULE_triggerTransitions=186,Xi.RULE_triggerTransition=187,Xi.RULE_transitionOldOrNew=188,Xi.RULE_transitionRowOrTable=189,Xi.RULE_transitionRelName=190,Xi.RULE_triggerForSpec=191,Xi.RULE_triggerForType=192,Xi.RULE_triggerWhen=193,Xi.RULE_functionOrProcedure=194,Xi.RULE_triggerFunctionArguments=195,Xi.RULE_triggerFunctionArgument=196,Xi.RULE_optionalConstraintFromTable=197,Xi.RULE_constraintAttributeSpecification=198,Xi.RULE_constraintAttributeElement=199,Xi.RULE_createEventTriggerStatement=200,Xi.RULE_eventTriggerWhenList=201,Xi.RULE_eventTriggerWhenItem=202,Xi.RULE_eventTriggerValueList=203,Xi.RULE_alterEventTriggerStatement=204,Xi.RULE_enableTrigger=205,Xi.RULE_createAssertionStatement=206,Xi.RULE_defineStatement=207,Xi.RULE_definition=208,Xi.RULE_definitionElement=209,Xi.RULE_definitionArgument=210,Xi.RULE_oldAggregateDefinition=211,Xi.RULE_oldAggregateElement=212,Xi.RULE_enumValueList=213,Xi.RULE_alterEnumStatement=214,Xi.RULE_optionalIfNotExists=215,Xi.RULE_createOperatorClassStatement=216,Xi.RULE_operatorClassItemList=217,Xi.RULE_operatorClassItem=218,Xi.RULE_optionalOperatorFamily=219,Xi.RULE_operatorClassPurpose=220,Xi.RULE_createOperatorFamilyStatement=221,Xi.RULE_alterOperatorFamilyStatement=222,Xi.RULE_operatorClassDropList=223,Xi.RULE_operatorClassDrop=224,Xi.RULE_dropOperatorClassStatement=225,Xi.RULE_dropOperatorFamilyStatement=226,Xi.RULE_dropOwnedStatement=227,Xi.RULE_reassignOwnedStatement=228,Xi.RULE_dropStatement=229,Xi.RULE_objectTypeAnyName=230,Xi.RULE_objectTypeName=231,Xi.RULE_dropTypeName=232,Xi.RULE_objectTypeNameOnAnyName=233,Xi.RULE_anyNameList=234,Xi.RULE_anyName=235,Xi.RULE_attributes=236,Xi.RULE_typeNameList=237,Xi.RULE_truncateStatement=238,Xi.RULE_optionalRestartSequences=239,Xi.RULE_commentStatement=240,Xi.RULE_commentText=241,Xi.RULE_securityLabelStatement=242,Xi.RULE_optionalProvider=243,Xi.RULE_securityLabel=244,Xi.RULE_fetchStatement=245,Xi.RULE_fetchArguments=246,Xi.RULE_fromOrIn=247,Xi.RULE_optionalFromOrIn=248,Xi.RULE_grantStatement=249,Xi.RULE_revokeStatement=250,Xi.RULE_privileges=251,Xi.RULE_privilegeList=252,Xi.RULE_privilege=253,Xi.RULE_privilegeTarget=254,Xi.RULE_granteeList=255,Xi.RULE_grantee=256,Xi.RULE_optionalWithGrantOption=257,Xi.RULE_grantPrivilegeStatement=258,Xi.RULE_revokePrivilegeStatement=259,Xi.RULE_optionalGrantAdminOption=260,Xi.RULE_optionalGrantedBy=261,Xi.RULE_alterDefaultPrivilegesStatement=262,Xi.RULE_defultPrivilegeOption=263,Xi.RULE_defaultPrivelegeAction=264,Xi.RULE_defultPrivilegeTarget=265,Xi.RULE_indexStatement=266,Xi.RULE_optionalAccessMethodClause=267,Xi.RULE_indexParameters=268,Xi.RULE_indexElemOptions=269,Xi.RULE_indexElement=270,Xi.RULE_optionalInclude=271,Xi.RULE_optionalCollate=272,Xi.RULE_optionalClass=273,Xi.RULE_optionalAscOrDesc=274,Xi.RULE_optionalNullsOrder=275,Xi.RULE_createFunctionStatement=276,Xi.RULE_optionalOrReplace=277,Xi.RULE_functionArgumentsList=278,Xi.RULE_functionWithArgumentTypesList=279,Xi.RULE_functionWithArgumentTypes=280,Xi.RULE_functionArgumentsWithDefaultsList=281,Xi.RULE_functionArgumentWithDefault=282,Xi.RULE_functionArgument=283,Xi.RULE_argumentClass=284,Xi.RULE_parameterName=285,Xi.RULE_functionReturn=286,Xi.RULE_functionType=287,Xi.RULE_aggregateArguments=288,Xi.RULE_aggregateArgumentsList=289,Xi.RULE_aggregateWithArgumentTypes=290,Xi.RULE_aggregateWithArgumentTypesList=291,Xi.RULE_createFunctionOptionList=292,Xi.RULE_commonFunctionOptionItem=293,Xi.RULE_createFunctionOptionItem=294,Xi.RULE_functionAs=295,Xi.RULE_transformTypeList=296,Xi.RULE_optionalDefinition=297,Xi.RULE_tableFunctionColumn=298,Xi.RULE_tableFunctionColumnList=299,Xi.RULE_alterFunctionStatement=300,Xi.RULE_removeFunctionStatement=301,Xi.RULE_removeAggregateStatement=302,Xi.RULE_removeOperatorStatement=303,Xi.RULE_operatorArgumentTypes=304,Xi.RULE_anyOperator=305,Xi.RULE_operatorWithArgumentTypesList=306,Xi.RULE_operatorWithArgumentTypes=307,Xi.RULE_doStatement=308,Xi.RULE_doStatementOptionsList=309,Xi.RULE_doStatementOptionItem=310,Xi.RULE_createCastStatement=311,Xi.RULE_castContext=312,Xi.RULE_dropCastStatement=313,Xi.RULE_optionalIfExists=314,Xi.RULE_createTransformStatement=315,Xi.RULE_transformElementList=316,Xi.RULE_dropTransformStatement=317,Xi.RULE_reindexStatement=318,Xi.RULE_reindexTargetType=319,Xi.RULE_reindexOptionList=320,Xi.RULE_reindexOptionElement=321,Xi.RULE_alterTablespaceStatement=322,Xi.RULE_renameStatement=323,Xi.RULE_optionalColumn=324,Xi.RULE_optionalSetData=325,Xi.RULE_alterObjectDependsStatement=326,Xi.RULE_alterObjectSchemaStatement=327,Xi.RULE_alterOperatorStatement=328,Xi.RULE_operatorDefinitionList=329,Xi.RULE_operatorDefinitionElement=330,Xi.RULE_operatorDefinitionArgument=331,Xi.RULE_alterTypeStatement=332,Xi.RULE_alterOwnerStatement=333,Xi.RULE_createPublicationStatement=334,Xi.RULE_optionalPublicationForTables=335,Xi.RULE_publicationForTables=336,Xi.RULE_alterPublicationStatement=337,Xi.RULE_createSubscriptionStatement=338,Xi.RULE_publicationNameList=339,Xi.RULE_publicationNameItem=340,Xi.RULE_alterSubscriptionStatement=341,Xi.RULE_dropSubscriptionStatement=342,Xi.RULE_ruleStatement=343,Xi.RULE_ruleActionList=344,Xi.RULE_ruleActionMulti=345,Xi.RULE_ruleActionStatement=346,Xi.RULE_ruleActionStatementOrEmpty=347,Xi.RULE_event=348,Xi.RULE_optionalInstead=349,Xi.RULE_notifyStatement=350,Xi.RULE_notifyPayload=351,Xi.RULE_listenStatement=352,Xi.RULE_unlistenStatement=353,Xi.RULE_transactionStatement=354,Xi.RULE_optionalTransaction=355,Xi.RULE_transactionModeItem=356,Xi.RULE_transactionModeList=357,Xi.RULE_optionalTransactionChain=358,Xi.RULE_viewStatement=359,Xi.RULE_optionalCheckOption=360,Xi.RULE_loadStatement=361,Xi.RULE_createDatabaseStatement=362,Xi.RULE_createDatabaseOptionList=363,Xi.RULE_createDatabaseOptionItem=364,Xi.RULE_createDatabaseOptionName=365,Xi.RULE_alterDatabaseStatement=366,Xi.RULE_alterDatabaseSetStatement=367,Xi.RULE_dropDatabaseStatement=368,Xi.RULE_alterCollationStatement=369,Xi.RULE_alterSystemStatement=370,Xi.RULE_createDomainStatement=371,Xi.RULE_alterDomainStatement=372,Xi.RULE_alterDomainCommand=373,Xi.RULE_optionalAs=374,Xi.RULE_altertsDictionaryStatement=375,Xi.RULE_altertsConfigurationStatement=376,Xi.RULE_createConversionStatement=377,Xi.RULE_clusterStatement=378,Xi.RULE_clusterIndexSpecification=379,Xi.RULE_vacuumStatement=380,Xi.RULE_analyzeStatement=381,Xi.RULE_vacuumAnalyzeOptionList=382,Xi.RULE_analyzeKeyword=383,Xi.RULE_vacuumAnalyzeOptionElement=384,Xi.RULE_vacuumAnalyzeOptionName=385,Xi.RULE_vacuumAnalyzeOptionArgument=386,Xi.RULE_optionalVerbose=387,Xi.RULE_optionalNameList=388,Xi.RULE_vacuumRelation=389,Xi.RULE_optionalVacuumRelationList=390,Xi.RULE_explainStatement=391,Xi.RULE_explainableStatement=392,Xi.RULE_explainOptionElement=393,Xi.RULE_explainOptionName=394,Xi.RULE_explainOptionArgument=395,Xi.RULE_prepareStatement=396,Xi.RULE_prepareTypeClause=397,Xi.RULE_preparableStatement=398,Xi.RULE_executeStatement=399,Xi.RULE_executeParameterClause=400,Xi.RULE_deallocateStatement=401,Xi.RULE_insertStatement=402,Xi.RULE_insertTarget=403,Xi.RULE_insertRest=404,Xi.RULE_overrideKind=405,Xi.RULE_insertColumnList=406,Xi.RULE_insertColumnItem=407,Xi.RULE_optionalOnConflict=408,Xi.RULE_optionalConflictExpr=409,Xi.RULE_returningClause=410,Xi.RULE_mergeStatement=411,Xi.RULE_mergeInsertClause=412,Xi.RULE_mergeUpdateClause=413,Xi.RULE_mergeDeleteClause=414,Xi.RULE_deleteStatement=415,Xi.RULE_usingClause=416,Xi.RULE_lockStatement=417,Xi.RULE_optionalLock=418,Xi.RULE_lockType=419,Xi.RULE_optionalNowait=420,Xi.RULE_optionalNowaitOrSkip=421,Xi.RULE_updateStatement=422,Xi.RULE_setClauseList=423,Xi.RULE_setClause=424,Xi.RULE_setTarget=425,Xi.RULE_declareCursorStatement=426,Xi.RULE_cursorName=427,Xi.RULE_optionalHold=428,Xi.RULE_selectStatement=429,Xi.RULE_selectWithParenthesis=430,Xi.RULE_selectWithoutParenthesis=431,Xi.RULE_selectClause=432,Xi.RULE_simpleSelectIntersect=433,Xi.RULE_simpleSelectStart=434,Xi.RULE_simpleSelectPramary=435,Xi.RULE_withClause=436,Xi.RULE_commonTableExpression=437,Xi.RULE_optionalMaterialized=438,Xi.RULE_intoClause=439,Xi.RULE_optionalTemporaryTableName=440,Xi.RULE_optionalTable=441,Xi.RULE_allOrDistinct=442,Xi.RULE_distinctClause=443,Xi.RULE_allClause=444,Xi.RULE_optionalSortClause=445,Xi.RULE_sortClause=446,Xi.RULE_sortByList=447,Xi.RULE_sortBy=448,Xi.RULE_selectLimit=449,Xi.RULE_optionalSelectLimit=450,Xi.RULE_limitClause=451,Xi.RULE_offsetClause=452,Xi.RULE_selectLimitValue=453,Xi.RULE_selectOffsetValue=454,Xi.RULE_selectFetchFirstValue=455,Xi.RULE_anyConst=456,Xi.RULE_rowOrRows=457,Xi.RULE_firstOrNext=458,Xi.RULE_groupClause=459,Xi.RULE_groupByList=460,Xi.RULE_groupByItem=461,Xi.RULE_havingClause=462,Xi.RULE_forLockingClause=463,Xi.RULE_forLockingItem=464,Xi.RULE_forLockingStrength=465,Xi.RULE_lockedRelationsList=466,Xi.RULE_valuesClause=467,Xi.RULE_fromClause=468,Xi.RULE_fromList=469,Xi.RULE_nonAnsiJoin=470,Xi.RULE_tableReference=471,Xi.RULE_aliasClause=472,Xi.RULE_optionalAliasClause=473,Xi.RULE_tableAliasClause=474,Xi.RULE_functionAliasClause=475,Xi.RULE_joinType=476,Xi.RULE_joinQualifier=477,Xi.RULE_viewName=478,Xi.RULE_relationExpression=479,Xi.RULE_relationExpressionList=480,Xi.RULE_relationExpressionOptionalAlias=481,Xi.RULE_tableSampleClause=482,Xi.RULE_functionTable=483,Xi.RULE_rowsFromItem=484,Xi.RULE_optionalColumnDefinitionList=485,Xi.RULE_optionalOrdinality=486,Xi.RULE_whereClause=487,Xi.RULE_whereOrCurrentClause=488,Xi.RULE_optionalTableFunctionElementList=489,Xi.RULE_tableFunctionElementList=490,Xi.RULE_tableFunctionElement=491,Xi.RULE_xmlTable=492,Xi.RULE_xmlTableColumnElement=493,Xi.RULE_xmlTableColumnOptionList=494,Xi.RULE_xmlTableColumnOptionElement=495,Xi.RULE_xmlNamespaceList=496,Xi.RULE_xmlNamespaceElement=497,Xi.RULE_typeName=498,Xi.RULE_simpleTypeName=499,Xi.RULE_constTypeName=500,Xi.RULE_genericType=501,Xi.RULE_optionalTypeModifiers=502,Xi.RULE_numeric=503,Xi.RULE_optionalFloat=504,Xi.RULE_bit=505,Xi.RULE_constBit=506,Xi.RULE_bitWithLength=507,Xi.RULE_bitWithoutLength=508,Xi.RULE_character=509,Xi.RULE_constCharacter=510,Xi.RULE_characterChar=511,Xi.RULE_optionalVarying=512,Xi.RULE_constDateTime=513,Xi.RULE_constInterval=514,Xi.RULE_optionalTimezone=515,Xi.RULE_optionalInterval=516,Xi.RULE_intervalSecond=517,Xi.RULE_optionalEscape=518,Xi.RULE_expression1=519,Xi.RULE_expression1Qualifier=520,Xi.RULE_expression1LessLess=521,Xi.RULE_expression1Or=522,Xi.RULE_expression1And=523,Xi.RULE_expression1Between=524,Xi.RULE_expression1In=525,Xi.RULE_expression1UnaryNot=526,Xi.RULE_expression1IsNull=527,Xi.RULE_expression1IsNot=528,Xi.RULE_expression1Compare=529,Xi.RULE_expression1Like=530,Xi.RULE_expression1qualifierOperator=531,Xi.RULE_expression1UnaryQualifierOperator=532,Xi.RULE_expression1Add=533,Xi.RULE_expressionMultiply=534,Xi.RULE_expression1Caret=535,Xi.RULE_expression1UnarySign=536,Xi.RULE_expression1AtTimeZone=537,Xi.RULE_expression1Collate=538,Xi.RULE_expression1Typecast=539,Xi.RULE_expression2=540,Xi.RULE_expression3=541,Xi.RULE_plsqlVariableName=542,Xi.RULE_functionApplication=543,Xi.RULE_functionExpression=544,Xi.RULE_functionExpressionWindowless=545,Xi.RULE_functionExpressionCommonSubexpr=546,Xi.RULE_xmlRootVersion=547,Xi.RULE_optionalXmlRootStandalone=548,Xi.RULE_xmlAttributes=549,Xi.RULE_xmlAttributeList=550,Xi.RULE_xmlAttributeElement=551,Xi.RULE_documentOrContent=552,Xi.RULE_xmlWhitespaceOption=553,Xi.RULE_xmlExistsArgument=554,Xi.RULE_xmlPassingMech=555,Xi.RULE_withinGroupClause=556,Xi.RULE_filterClause=557,Xi.RULE_windowClause=558,Xi.RULE_windowDefinitionList=559,Xi.RULE_windowDefinition=560,Xi.RULE_overClause=561,Xi.RULE_windowSpecification=562,Xi.RULE_optionalExistingWindowName=563,Xi.RULE_optionalPartitionClause=564,Xi.RULE_optionalFrameClause=565,Xi.RULE_frameExtent=566,Xi.RULE_frameBound=567,Xi.RULE_optionalWindowExclusionClause=568,Xi.RULE_row=569,Xi.RULE_explicitRow=570,Xi.RULE_implicitRow=571,Xi.RULE_subType=572,Xi.RULE_allOperator=573,Xi.RULE_mathOperator=574,Xi.RULE_operatorQualifier=575,Xi.RULE_allOperatorQualifier=576,Xi.RULE_subqueryOperator=577,Xi.RULE_expressionList=578,Xi.RULE_functionArgumentList=579,Xi.RULE_functionArgumentExpression=580,Xi.RULE_typeList=581,Xi.RULE_arrayExpression=582,Xi.RULE_arrayExpressionList=583,Xi.RULE_extractList=584,Xi.RULE_extractArgument=585,Xi.RULE_unicodeNormalForm=586,Xi.RULE_overlayList=587,Xi.RULE_positionList=588,Xi.RULE_substrList=589,Xi.RULE_trimList=590,Xi.RULE_inExpression=591,Xi.RULE_caseExpression=592,Xi.RULE_whenClauseList=593,Xi.RULE_whenClause=594,Xi.RULE_caseDefault=595,Xi.RULE_caseArg=596,Xi.RULE_columnReference=597,Xi.RULE_indirectionElement=598,Xi.RULE_indirection=599,Xi.RULE_optionalIndirection=600,Xi.RULE_optionalTargetList=601,Xi.RULE_targetList=602,Xi.RULE_targetElement=603,Xi.RULE_qualifiedNameList=604,Xi.RULE_databaseName=605,Xi.RULE_databaseNameList=606,Xi.RULE_schemaName=607,Xi.RULE_schemaNameList=608,Xi.RULE_indexName=609,Xi.RULE_indexNameList=610,Xi.RULE_triggerName=611,Xi.RULE_constraintName=612,Xi.RULE_sequenceName=613,Xi.RULE_sequenceNameList=614,Xi.RULE_qualifiedName=615,Xi.RULE_nameList=616,Xi.RULE_name=617,Xi.RULE_attributeName=618,Xi.RULE_fileName=619,Xi.RULE_functionName=620,Xi.RULE_aExpressionConst=621,Xi.RULE_xconst=622,Xi.RULE_bconst=623,Xi.RULE_fconst=624,Xi.RULE_iconst=625,Xi.RULE_sconst=626,Xi.RULE_anySconst=627,Xi.RULE_optionalUescape=628,Xi.RULE_signedIconst=629,Xi.RULE_roleName=630,Xi.RULE_roleNameList=631,Xi.RULE_columnId=632,Xi.RULE_tableAlias=633,Xi.RULE_typeFunctionName=634,Xi.RULE_nonReservedWord=635,Xi.RULE_columnLabel=636,Xi.RULE_identifier=637,Xi.RULE_plsqlIdentifier=638,Xi.RULE_unreservedKeyword=639,Xi.RULE_columnNameKeyword=640,Xi.RULE_typeFunctionNameKeyword=641,Xi.RULE_reservedKeyword=642,Xi.RULE_builtinFunctionName=643,Xi.RULE_plsqlFunction=644,Xi.RULE_computeOptions=645,Xi.RULE_computeOption=646,Xi.RULE_sharp=647,Xi.RULE_optionValue=648,Xi.RULE_optionalSemi=649,Xi.RULE_plsqlBlock=650,Xi.RULE_declareSection=651,Xi.RULE_declareStart=652,Xi.RULE_declareStatements=653,Xi.RULE_labelDeclaration=654,Xi.RULE_declareStatement=655,Xi.RULE_declareStatement2=656,Xi.RULE_optionalScrollable=657,Xi.RULE_declareCursorQuery=658,Xi.RULE_declareCursorArgs=659,Xi.RULE_declareCursorArglist=660,Xi.RULE_declareCursorArg=661,Xi.RULE_declareIsOrFor=662,Xi.RULE_declareAliasItem=663,Xi.RULE_declareVarname=664,Xi.RULE_declareConst=665,Xi.RULE_declareDatatype=666,Xi.RULE_declareCollate=667,Xi.RULE_declareNotNull=668,Xi.RULE_declareDefaultValue=669,Xi.RULE_declareDefaultKey=670,Xi.RULE_assignOperator=671,Xi.RULE_procedureSection=672,Xi.RULE_proceduralStatement=673,Xi.RULE_statementPerform=674,Xi.RULE_statementCall=675,Xi.RULE_optionalExpressionList=676,Xi.RULE_statementAssign=677,Xi.RULE_statementGetDiagram=678,Xi.RULE_optionalGetDiagramArea=679,Xi.RULE_getDiagramList=680,Xi.RULE_getDiagramListItem=681,Xi.RULE_getDiagramItem=682,Xi.RULE_getDiagramTarget=683,Xi.RULE_assignVariable=684,Xi.RULE_statementIf=685,Xi.RULE_statementElsifs=686,Xi.RULE_statementElse=687,Xi.RULE_statementCase=688,Xi.RULE_optionalExpressionUntilWhen=689,Xi.RULE_caseWhenList=690,Xi.RULE_caseWhen=691,Xi.RULE_optionalCaseElse=692,Xi.RULE_statementLoop=693,Xi.RULE_statementWhile=694,Xi.RULE_statementFor=695,Xi.RULE_forControl=696,Xi.RULE_optionalForUsingExpression=697,Xi.RULE_optionalCursorParameters=698,Xi.RULE_optionalReverse=699,Xi.RULE_optionalByExpression=700,Xi.RULE_forVariable=701,Xi.RULE_statementForeachA=702,Xi.RULE_foreachSlice=703,Xi.RULE_statementExit=704,Xi.RULE_exitType=705,Xi.RULE_statementReturn=706,Xi.RULE_optionalReturnResult=707,Xi.RULE_statementRaise=708,Xi.RULE_optionalStatementRaiseLevel=709,Xi.RULE_optionalRaiseList=710,Xi.RULE_optionalRaiseUsing=711,Xi.RULE_optionalRaiseUsingElement=712,Xi.RULE_statementAssert=713,Xi.RULE_optionalStatementAssertMessage=714,Xi.RULE_loopBody=715,Xi.RULE_statementExecSql=716,Xi.RULE_statementDynExecute=717,Xi.RULE_optionalExecuteUsing=718,Xi.RULE_optionalExecuteUsingList=719,Xi.RULE_optionalExecuteInto=720,Xi.RULE_statementOpen=721,Xi.RULE_optionalOpenBoundListItem=722,Xi.RULE_statementFetch=723,Xi.RULE_intoTarget=724,Xi.RULE_optionalCursorFrom=725,Xi.RULE_optionalFetchDirection=726,Xi.RULE_statementMove=727,Xi.RULE_statementClose=728,Xi.RULE_statementNull=729,Xi.RULE_statementCommit=730,Xi.RULE_statementRollback=731,Xi.RULE_plsqlOptionalTransactionChain=732,Xi.RULE_statementSet=733,Xi.RULE_cursorVariable=734,Xi.RULE_exceptionSection=735,Xi.RULE_procedureExceptions=736,Xi.RULE_procedureException=737,Xi.RULE_procedureConditions=738,Xi.RULE_procedureCondition=739,Xi.RULE_optionalBlockLabel=740,Xi.RULE_optionalLoopLabel=741,Xi.RULE_optionalLabel=742,Xi.RULE_optionalExitCondition=743,Xi.RULE_anyIdentifier=744,Xi.RULE_plsqlUnreservedKeyword=745,Xi.RULE_sqlExpression=746,Xi.RULE_expressionUntilThen=747,Xi.RULE_expressionUntilSemi=748,Xi.RULE_expressionUntilRightbracket=749,Xi.RULE_expressionUntilLoop=750,Xi.RULE_makeExecuteSqlStatement=751,Xi.RULE_optionalReturningClauseInto=752,Xi.RULE_roleOrAliases=753,Xi.literalNames=[null,"'$'","'('","')'","'['","']'","','","';'","':'","'*'","'='","'.'","'+'","'-'","'/'","'^'","'<'","'>'","'<<'","'>>'","':='","'<='","'=>'","'>='","'..'","'<>'","'::'","'%'",null,null,"'ALL'","'ANALYSE'","'ANALYZE'","'AND'","'ANY'","'ARRAY'","'AS'","'ASC'","'ASYMMETRIC'","'BOTH'","'CASE'","'CAST'","'CHECK'","'COLLATE'","'COLUMN'","'CONSTRAINT'","'CREATE'","'CURRENT_CATALOG'","'CURRENT_DATE'","'CURRENT_ROLE'","'CURRENT_TIME'","'CURRENT_TIMESTAMP'","'CURRENT_USER'","'DEFAULT'","'DEFERRABLE'","'DESC'","'DISTINCT'","'DO'","'ELSE'","'EXCEPT'","'FALSE'","'FETCH'","'FOR'","'FOREIGN'","'FROM'","'GRANT'","'GROUP'","'HAVING'","'IN'","'INITIALLY'","'INTERSECT'","'INTO'","'LATERAL'","'LEADING'","'LIMIT'","'LOCALTIME'","'LOCALTIMESTAMP'","'NOT'","'NULL'","'OFFSET'","'ON'","'ONLY'","'OR'","'ORDER'","'PLACING'","'PRIMARY'","'REFERENCES'","'RETURNING'","'SELECT'","'SESSION_USER'","'SOME'","'SYMMETRIC'","'TABLE'","'THEN'","'TO'","'TRAILING'","'TRUE'","'UNION'","'UNIQUE'","'USER'","'USING'","'VARIADIC'","'WHEN'","'WHERE'","'WINDOW'","'WITH'","'AUTHORIZATION'","'BINARY'","'COLLATION'","'CONCURRENTLY'","'CROSS'","'CURRENT_SCHEMA'","'FREEZE'","'FULL'","'ILIKE'","'INNER'","'IS'","'ISNULL'","'JOIN'","'LEFT'","'LIKE'","'NATURAL'","'NOTNULL'","'OUTER'","'OVER'","'OVERLAPS'","'RIGHT'","'SIMILAR'","'VERBOSE'","'ABORT'","'ABSOLUTE'","'ACCESS'","'ACTION'","'ADD'","'ADMIN'","'AFTER'","'AGGREGATE'","'ALSO'","'ALTER'","'ALWAYS'","'ASSERTION'","'ASSIGNMENT'","'AT'","'ATTRIBUTE'","'BACKWARD'","'BEFORE'","'BEGIN'","'BY'","'CACHE'","'CALLED'","'CASCADE'","'CASCADED'","'CATALOG'","'CHAIN'","'CHARACTERISTICS'","'CHECKPOINT'","'CLASS'","'CLOSE'","'CLUSTER'","'COMMENT'","'COMMENTS'","'COMMIT'","'COMMITTED'","'CONFIGURATION'","'CONNECTION'","'CONSTRAINTS'","'CONTENT'","'CONTINUE'","'CONVERSION'","'COPY'","'COST'","'CSV'","'CURSOR'","'CYCLE'","'DATA'","'DATABASE'","'DAY'","'DEALLOCATE'","'DECLARE'","'DEFAULTS'","'DEFERRED'","'DEFINER'","'DELETE'","'DELIMITER'","'DELIMITERS'","'DICTIONARY'","'DISABLE'","'DISCARD'","'DOCUMENT'","'DOMAIN'","'DOUBLE'","'DROP'","'EACH'","'ENABLE'","'ENCODING'","'ENCRYPTED'","'ENUM'","'ESCAPE'","'EVENT'","'EXCLUDE'","'EXCLUDING'","'EXCLUSIVE'","'EXECUTE'","'EXPLAIN'","'EXTENSION'","'EXTERNAL'","'FAMILY'","'FIRST'","'FOLLOWING'","'FORCE'","'FORWARD'","'FUNCTION'","'FUNCTIONS'","'GLOBAL'","'GRANTED'","'HANDLER'","'HEADER'","'HOLD'","'HOUR'","'IDENTITY'","'IF'","'IMMEDIATE'","'IMMUTABLE'","'IMPLICIT'","'INCLUDING'","'INCREMENT'","'INDEX'","'INDEXES'","'INHERIT'","'INHERITS'","'INLINE'","'INSENSITIVE'","'INSERT'","'INSTEAD'","'INVOKER'","'ISOLATION'","'KEY'","'LABEL'","'LANGUAGE'","'LARGE'","'LAST'","'LEAKPROOF'","'LEVEL'","'LISTEN'","'LOAD'","'LOCAL'","'LOCATION'","'LOCK'","'MAPPING'","'MATCH'","'MATCHED'","'MATERIALIZED'","'MAXVALUE'","'MERGE'","'MINUTE'","'MINVALUE'","'MODE'","'MONTH'","'MOVE'","'NAME'","'NAMES'","'NEXT'","'NO'","'NOTHING'","'NOTIFY'","'NOWAIT'","'NULLS'","'OBJECT'","'OF'","'OFF'","'OIDS'","'OPERATOR'","'OPTION'","'OPTIONS'","'OWNED'","'OWNER'","'PARSER'","'PARTIAL'","'PARTITION'","'PASSING'","'PASSWORD'","'PLANS'","'PRECEDING'","'PREPARE'","'PREPARED'","'PRESERVE'","'PRIOR'","'PRIVILEGES'","'PROCEDURAL'","'PROCEDURE'","'PROGRAM'","'QUOTE'","'RANGE'","'READ'","'REASSIGN'","'RECHECK'","'RECURSIVE'","'REF'","'REFRESH'","'REINDEX'","'RELATIVE'","'RELEASE'","'RENAME'","'REPEATABLE'","'REPLACE'","'REPLICA'","'RESET'","'RESTART'","'RESTRICT'","'RETURNS'","'REVOKE'","'ROLE'","'ROLLBACK'","'ROWS'","'RULE'","'SAVEPOINT'","'SCHEMA'","'SCROLL'","'SEARCH'","'SECOND'","'SECURITY'","'SEQUENCE'","'SEQUENCES'","'SERIALIZABLE'","'SERVER'","'SESSION'","'SET'","'SHARE'","'SHOW'","'SIMPLE'","'SNAPSHOT'","'STABLE'","'STANDALONE'","'START'","'STATEMENT'","'STATISTICS'","'STDIN'","'STDOUT'","'STORAGE'","'STRICT'","'STRIP'","'SYSID'","'SYSTEM'","'TABLES'","'TABLESPACE'","'TEMP'","'TEMPLATE'","'TEMPORARY'","'TEXT'","'TRANSACTION'","'TRIGGER'","'TRUNCATE'","'TRUSTED'","'TYPE'","'TYPES'","'UNBOUNDED'","'UNCOMMITTED'","'UNENCRYPTED'","'UNKNOWN'","'UNLISTEN'","'UNLOGGED'","'UNTIL'","'UPDATE'","'VACUUM'","'VALID'","'VALIDATE'","'VALIDATOR'","'VARYING'","'VERSION'","'VIEW'","'VOLATILE'","'WHITESPACE'","'WITHOUT'","'WORK'","'WRAPPER'","'WRITE'","'XML'","'YEAR'","'YES'","'ZONE'","'BETWEEN'","'BIGINT'","'BIT'","'BOOLEAN'","'CHAR'","'CHARACTER'","'COALESCE'","'DEC'","'DECIMAL'","'EXISTS'","'EXTRACT'","'FLOAT'","'GREATEST'","'INOUT'","'INT'","'INTEGER'","'INTERVAL'","'LEAST'","'NATIONAL'","'NCHAR'","'NONE'","'NULLIF'","'NUMERIC'","'OVERLAY'","'POSITION'","'PRECISION'","'REAL'","'ROW'","'SETOF'","'SMALLINT'","'SUBSTRING'","'TIME'","'TIMESTAMP'","'TREAT'","'TRIM'","'VALUES'","'VARCHAR'","'XMLATTRIBUTES'","'XMLCOMMENT'","'XMLAGG'","'XML_IS_WELL_FORMED'","'XML_IS_WELL_FORMED_DOCUMENT'","'XML_IS_WELL_FORMED_CONTENT'","'XPATH'","'XPATH_EXISTS'","'XMLCONCAT'","'XMLELEMENT'","'XMLEXISTS'","'XMLFOREST'","'XMLPARSE'","'XMLPI'","'XMLROOT'","'XMLSERIALIZE'","'CALL'","'CURRENT'","'ATTACH'","'DETACH'","'EXPRESSION'","'GENERATED'","'LOGGED'","'STORED'","'INCLUDE'","'ROUTINE'","'TRANSFORM'","'IMPORT'","'POLICY'","'METHOD'","'REFERENCING'","'NEW'","'OLD'","'VALUE'","'SUBSCRIPTION'","'PUBLICATION'","'OUT'","'END'","'ROUTINES'","'SCHEMAS'","'PROCEDURES'","'INPUT'","'SUPPORT'","'PARALLEL'","'SQL'","'DEPENDS'","'OVERRIDING'","'CONFLICT'","'SKIP'","'LOCKED'","'TIES'","'ROLLUP'","'CUBE'","'GROUPING'","'SETS'","'TABLESAMPLE'","'ORDINALITY'","'XMLTABLE'","'COLUMNS'","'XMLNAMESPACES'","'ROWTYPE'","'NORMALIZED'","'WITHIN'","'FILTER'","'GROUPS'","'OTHERS'","'NFC'","'NFD'","'NFKC'","'NFKD'","'UESCAPE'","'VIEWS'","'NORMALIZE'","'DUMP'","'PRINT_STRICT_PARAMS'","'VARIABLE_CONFLICT'","'ERROR'","'USE_VARIABLE'","'USE_COLUMN'","'ALIAS'","'CONSTANT'","'PERFORM'","'GET'","'DIAGNOSTICS'","'STACKED'","'ELSIF'","'WHILE'","'REVERSE'","'FOREACH'","'SLICE'","'EXIT'","'RETURN'","'QUERY'","'RAISE'","'SQLSTATE'","'DEBUG'","'LOG'","'INFO'","'NOTICE'","'WARNING'","'EXCEPTION'","'ASSERT'","'LOOP'","'OPEN'","'ABS'","'CBRT'","'CEIL'","'CEILING'","'DEGREES'","'DIV'","'EXP'","'FACTORIAL'","'FLOOR'","'GCD'","'LCM'","'LN'","'LOG10'","'MIN_SCALE'","'MOD'","'PI'","'POWER'","'RADIANS'","'ROUND'","'SCALE'","'SIGN'","'SQRT'","'TRIM_SCALE'","'TRUNC'","'WIDTH_BUCKET'","'RANDOM'","'SETSEED'","'ACOS'","'ACOSD'","'ASIN'","'ASIND'","'ATAN'","'ATAND'","'ATAN2'","'ATAN2D'","'COS'","'COSD'","'COT'","'COTD'","'SIN'","'SIND'","'TAN'","'TAND'","'SINH'","'COSH'","'TANH'","'ASINH'","'ACOSH'","'ATANH'","'BIT_LENGTH'","'CHAR_LENGTH'","'CHARACTER_LENGTH'","'LOWER'","'OCTET_LENGTH'","'UPPER'","'ASCII'","'BTRIM'","'CHR'","'CONCAT'","'CONCAT_WS'","'FORMAT'","'INITCAP'","'LENGTH'","'LPAD'","'LTRIM'","'MD5'","'PARSE_IDENT'","'PG_CLIENT_ENCODING'","'QUOTE_IDENT'","'QUOTE_LITERAL'","'QUOTE_NULLABLE'","'REGEXP_COUNT'","'REGEXP_INSTR'","'REGEXP_LIKE'","'REGEXP_MATCH'","'REGEXP_MATCHES'","'REGEXP_REPLACE'","'REGEXP_SPLIT_TO_ARRAY'","'REGEXP_SPLIT_TO_TABLE'","'REGEXP_SUBSTR'","'REPEAT'","'RPAD'","'RTRIM'","'SPLIT_PART'","'STARTS_WITH'","'STRING_TO_ARRAY'","'STRING_TO_TABLE'","'STRPOS'","'SUBSTR'","'TO_ASCII'","'TO_HEX'","'TRANSLATE'","'UNISTR'","'AGE'","'CLOCK_TIMESTAMP'","'DATE_BIN'","'DATE_PART'","'DATE_TRUNC'","'ISFINITE'","'JUSTIFY_DAYS'","'JUSTIFY_HOURS'","'JUSTIFY_INTERVAL'","'MAKE_DATE'","'MAKE_INTERVAL'","'MAKE_TIME'","'MAKE_TIMESTAMP'","'MAKE_TIMESTAMPTZ'","'NOW'","'STATEMENT_TIMESTAMP'","'TIMEOFDAY'","'TRANSACTION_TIMESTAMP'","'TO_TIMESTAMP'","'TO_CHAR'","'TO_DATE'","'TO_NUMBER'",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"'\\'",null,null,null,null,null,null,null,null,null,"'''"],Xi.symbolicNames=[null,"Dollar","OPEN_PAREN","CLOSE_PAREN","OPEN_BRACKET","CLOSE_BRACKET","COMMA","SEMI","COLON","STAR","EQUAL","DOT","PLUS","MINUS","SLASH","CARET","LT","GT","LESS_LESS","GREATER_GREATER","COLON_EQUALS","LESS_EQUALS","EQUALS_GREATER","GREATER_EQUALS","DOT_DOT","NOT_EQUALS","TYPECAST","PERCENT","PARAM","Operator","ALL","ANALYSE","ANALYZE","AND","ANY","ARRAY","AS","ASC","ASYMMETRIC","BOTH","CASE","CAST","CHECK","COLLATE","COLUMN","CONSTRAINT","CREATE","CURRENT_CATALOG","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DEFAULT","DEFERRABLE","DESC","DISTINCT","DO","ELSE","EXCEPT","FALSE_P","FETCH","FOR","FOREIGN","FROM","GRANT","GROUP_P","HAVING","IN_P","INITIALLY","INTERSECT","INTO","LATERAL_P","LEADING","LIMIT","LOCALTIME","LOCALTIMESTAMP","NOT","NULL_P","OFFSET","ON","ONLY","OR","ORDER","PLACING","PRIMARY","REFERENCES","RETURNING","SELECT","SESSION_USER","SOME","SYMMETRIC","TABLE","THEN","TO","TRAILING","TRUE_P","UNION","UNIQUE","USER","USING","VARIADIC","WHEN","WHERE","WINDOW","WITH","AUTHORIZATION","BINARY","COLLATION","CONCURRENTLY","CROSS","CURRENT_SCHEMA","FREEZE","FULL","ILIKE","INNER_P","IS","ISNULL","JOIN","LEFT","LIKE","NATURAL","NOTNULL","OUTER_P","OVER","OVERLAPS","RIGHT","SIMILAR","VERBOSE","ABORT_P","ABSOLUTE_P","ACCESS","ACTION","ADD_P","ADMIN","AFTER","AGGREGATE","ALSO","ALTER","ALWAYS","ASSERTION","ASSIGNMENT","AT","ATTRIBUTE","BACKWARD","BEFORE","BEGIN_P","BY","CACHE","CALLED","CASCADE","CASCADED","CATALOG","CHAIN","CHARACTERISTICS","CHECKPOINT","CLASS","CLOSE","CLUSTER","COMMENT","COMMENTS","COMMIT","COMMITTED","CONFIGURATION","CONNECTION","CONSTRAINTS","CONTENT_P","CONTINUE_P","CONVERSION_P","COPY","COST","CSV","CURSOR","CYCLE","DATA_P","DATABASE","DAY_P","DEALLOCATE","DECLARE","DEFAULTS","DEFERRED","DEFINER","DELETE_P","DELIMITER","DELIMITERS","DICTIONARY","DISABLE_P","DISCARD","DOCUMENT_P","DOMAIN_P","DOUBLE_P","DROP","EACH","ENABLE_P","ENCODING","ENCRYPTED","ENUM_P","ESCAPE","EVENT","EXCLUDE","EXCLUDING","EXCLUSIVE","EXECUTE","EXPLAIN","EXTENSION","EXTERNAL","FAMILY","FIRST_P","FOLLOWING","FORCE","FORWARD","FUNCTION","FUNCTIONS","GLOBAL","GRANTED","HANDLER","HEADER_P","HOLD","HOUR_P","IDENTITY_P","IF_P","IMMEDIATE","IMMUTABLE","IMPLICIT_P","INCLUDING","INCREMENT","INDEX","INDEXES","INHERIT","INHERITS","INLINE_P","INSENSITIVE","INSERT","INSTEAD","INVOKER","ISOLATION","KEY","LABEL","LANGUAGE","LARGE_P","LAST_P","LEAKPROOF","LEVEL","LISTEN","LOAD","LOCAL","LOCATION","LOCK_P","MAPPING","MATCH","MATCHED","MATERIALIZED","MAXVALUE","MERGE","MINUTE_P","MINVALUE","MODE","MONTH_P","MOVE","NAME_P","NAMES","NEXT","NO","NOTHING","NOTIFY","NOWAIT","NULLS_P","OBJECT_P","OF","OFF","OIDS","OPERATOR","OPTION","OPTIONS","OWNED","OWNER","PARSER","PARTIAL","PARTITION","PASSING","PASSWORD","PLANS","PRECEDING","PREPARE","PREPARED","PRESERVE","PRIOR","PRIVILEGES","PROCEDURAL","PROCEDURE","PROGRAM","QUOTE","RANGE","READ","REASSIGN","RECHECK","RECURSIVE","REF","REFRESH","REINDEX","RELATIVE_P","RELEASE","RENAME","REPEATABLE","REPLACE","REPLICA","RESET","RESTART","RESTRICT","RETURNS","REVOKE","ROLE","ROLLBACK","ROWS","RULE","SAVEPOINT","SCHEMA","SCROLL","SEARCH","SECOND_P","SECURITY","SEQUENCE","SEQUENCES","SERIALIZABLE","SERVER","SESSION","SET","SHARE","SHOW","SIMPLE","SNAPSHOT","STABLE","STANDALONE_P","START","STATEMENT","STATISTICS","STDIN","STDOUT","STORAGE","STRICT_P","STRIP_P","SYSID","SYSTEM_P","TABLES","TABLESPACE","TEMP","TEMPLATE","TEMPORARY","TEXT_P","TRANSACTION","TRIGGER","TRUNCATE","TRUSTED","TYPE_P","TYPES_P","UNBOUNDED","UNCOMMITTED","UNENCRYPTED","UNKNOWN","UNLISTEN","UNLOGGED","UNTIL","UPDATE","VACUUM","VALID","VALIDATE","VALIDATOR","VARYING","VERSION_P","VIEW","VOLATILE","WHITESPACE_P","WITHOUT","WORK","WRAPPER","WRITE","XML_P","YEAR_P","YES_P","ZONE","BETWEEN","BIGINT","BIT","BOOLEAN_P","CHAR_P","CHARACTER","COALESCE","DEC","DECIMAL_P","EXISTS","EXTRACT","FLOAT_P","GREATEST","INOUT","INT_P","INTEGER","INTERVAL","LEAST","NATIONAL","NCHAR","NONE","NULLIF","NUMERIC","OVERLAY","POSITION","PRECISION","REAL","ROW","SETOF","SMALLINT","SUBSTRING","TIME","TIMESTAMP","TREAT","TRIM","VALUES","VARCHAR","XMLATTRIBUTES","XMLCOMMENT","XMLAGG","XML_IS_WELL_FORMED","XML_IS_WELL_FORMED_DOCUMENT","XML_IS_WELL_FORMED_CONTENT","XPATH","XPATH_EXISTS","XMLCONCAT","XMLELEMENT","XMLEXISTS","XMLFOREST","XMLPARSE","XMLPI","XMLROOT","XMLSERIALIZE","CALL","CURRENT_P","ATTACH","DETACH","EXPRESSION","GENERATED","LOGGED","STORED","INCLUDE","ROUTINE","TRANSFORM","IMPORT_P","POLICY","METHOD","REFERENCING","NEW","OLD","VALUE_P","SUBSCRIPTION","PUBLICATION","OUT_P","END_P","ROUTINES","SCHEMAS","PROCEDURES","INPUT_P","SUPPORT","PARALLEL","SQL_P","DEPENDS","OVERRIDING","CONFLICT","SKIP_P","LOCKED","TIES","ROLLUP","CUBE","GROUPING","SETS","TABLESAMPLE","ORDINALITY","XMLTABLE","COLUMNS","XMLNAMESPACES","ROWTYPE","NORMALIZED","WITHIN","FILTER","GROUPS","OTHERS","NFC","NFD","NFKC","NFKD","UESCAPE","VIEWS","NORMALIZE","DUMP","PRINT_STRICT_PARAMS","VARIABLE_CONFLICT","ERROR","USE_VARIABLE","USE_COLUMN","ALIAS","CONSTANT","PERFORM","GET","DIAGNOSTICS","STACKED","ELSIF","WHILE","REVERSE","FOREACH","SLICE","EXIT","RETURN","QUERY","RAISE","SQLSTATE","DEBUG","LOG","INFO","NOTICE","WARNING","EXCEPTION","ASSERT","LOOP","OPEN","ABS","CBRT","CEIL","CEILING","DEGREES","DIV","EXP","FACTORIAL","FLOOR","GCD","LCM","LN","LOG10","MIN_SCALE","MOD","PI","POWER","RADIANS","ROUND","SCALE","SIGN","SQRT","TRIM_SCALE","TRUNC","WIDTH_BUCKET","RANDOM","SETSEED","ACOS","ACOSD","ASIN","ASIND","ATAN","ATAND","ATAN2","ATAN2D","COS","COSD","COT","COTD","SIN","SIND","TAN","TAND","SINH","COSH","TANH","ASINH","ACOSH","ATANH","BIT_LENGTH","CHAR_LENGTH","CHARACTER_LENGTH","LOWER","OCTET_LENGTH","UPPER","ASCII","BTRIM","CHR","CONCAT","CONCAT_WS","FORMAT","INITCAP","LENGTH","LPAD","LTRIM","MD5","PARSE_IDENT","PG_CLIENT_ENCODING","QUOTE_IDENT","QUOTE_LITERAL","QUOTE_NULLABLE","REGEXP_COUNT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","REGEXP_SUBSTR","REPEAT","RPAD","RTRIM","SPLIT_PART","STARTS_WITH","STRING_TO_ARRAY","STRING_TO_TABLE","STRPOS","SUBSTR","TO_ASCII","TO_HEX","TRANSLATE","UNISTR","AGE","CLOCK_TIMESTAMP","DATE_BIN","DATE_PART","DATE_TRUNC","ISFINITE","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","MAKE_DATE","MAKE_INTERVAL","MAKE_TIME","MAKE_TIMESTAMP","MAKE_TIMESTAMPTZ","NOW","STATEMENT_TIMESTAMP","TIMEOFDAY","TRANSACTION_TIMESTAMP","TO_TIMESTAMP","TO_CHAR","TO_DATE","TO_NUMBER","Identifier","QuotedIdentifier","UnterminatedQuotedIdentifier","InvalidQuotedIdentifier","InvalidUnterminatedQuotedIdentifier","UnicodeQuotedIdentifier","UnterminatedUnicodeQuotedIdentifier","InvalidUnicodeQuotedIdentifier","InvalidUnterminatedUnicodeQuotedIdentifier","StringConstant","UnterminatedStringConstant","UnicodeEscapeStringConstant","UnterminatedUnicodeEscapeStringConstant","BeginDollarStringConstant","BinaryStringConstant","UnterminatedBinaryStringConstant","InvalidBinaryStringConstant","InvalidUnterminatedBinaryStringConstant","HexadecimalStringConstant","UnterminatedHexadecimalStringConstant","InvalidHexadecimalStringConstant","InvalidUnterminatedHexadecimalStringConstant","Integral","NumericFail","Numeric","PLSQLVARIABLENAME","PLSQLIDENTIFIER","Whitespace","Newline","LineComment","BlockComment","UnterminatedBlockComment","MetaCommand","EndMetaCommand","ErrorCharacter","EscapeStringConstant","UnterminatedEscapeStringConstant","InvalidEscapeStringConstant","InvalidUnterminatedEscapeStringConstant","AfterEscapeStringConstantMode_NotContinued","AfterEscapeStringConstantWithNewlineMode_NotContinued","DollarText","EndDollarStringConstant","AfterEscapeStringConstantWithNewlineMode_Continued"],Xi.ruleNames=["root","plsqlRoot","statements","statement","plsqlConsoleCommand","callStatement","optionalWith","optionalRoleList","alterOptionalRoleList","alterRoleElemement","createRoleElement","createRoleStatement","alterRoleStatement","optionalInDatabase","alterRoleSetStatement","dropRoleStatement","addOrDrop","createSchemaStatement","optionalSchemaName","optionalSchemaList","schemaStatement","variableSetStatement","setStatementEnding","genericSetClause","setStatementMore","variableName","variableList","variableValue","isoLevel","booleanOrString","zoneValue","optionalEncoding","nonReservedWordOrSconst","variableResetStatement","resetClauseRest","genericResetClause","setResetClause","functionSetResetClause","variableShowStatement","setConstraintsStatement","constraintsSetList","constraintsSetMode","checkpointStatement","discardStatement","alterTableStatement","alterTableCommands","partitionCommand","indexPartitionCommand","alterTableCommand","alterColumnDefault","optionalDropBehavior","optionalCollateClause","alterUsing","replicaIdentity","relOptions","optionalRelOptions","relOptionList","relOptionElem","alterIdentityColumnOptionList","alterIdentityColumnOption","partitionBoundSpecification","hashPartitionBoundElement","hashPartitionBound","alterCompositeTypeStatement","alterTypeCommands","alterTypeCommand","closePortalStatement","copyStatement","fromOrTo","copyFileName","copyOptions","copyOptionsItem","copyDelimiter","copyGenericOptionList","copyGenericOptionElem","copyGenericOptionArgument","createStatement","temporaryOption","optionalTableElementList","optionalTypedTableElementList","tableElementList","typedTableElementList","tableElement","typedTableElement","columnDefinition","columnOptions","columnQualifierList","columnConstraint","columnConstraintElement","generatedWhen","constraintAttribute","tableLikeClause","tableLikeOptionList","tableLikeOption","tableConstraint","constraintElement","columnListWithParentheses","columnList","columnElement","optionalColumnListInclude","matchClause","exclusionConstraintList","exclusionConstraintElement","exclusionWhereClause","keyActions","onKeyUpdateClause","onKeyDeleteClause","keyAction","inheritClause","optionalPartitionSpecification","partitionSpecification","partitionElements","partitionElement","optionalTableAccessMethodClause","with","onCommitOption","optionalTablespace","usingIndexTablespace","existingIndex","createStatsStatement","alterStatsStatement","createAsStatement","createAsTarget","withData","createMaterializedViewStatement","createMaterializedViewTarget","refreshMaterializedViewStatement","createSequenceStatement","alterSequenceStatement","optionalParenthesizedSeqOptionsList","sequenceOptionList","sequenceOptionItem","numericOnly","numericOnlyList","createProcedureLangStatement","handlerName","optionalInlineHandler","validatorClause","optionalProcedural","createTablespaceStatement","optionalTablespaceOwner","dropTablespaceStatement","createExtensionStatement","createExtensionOptionItem","alterExtensionStatement","alterExtensionOptionItem","alterExtensionContentsStatement","createForeignDataWrapperStatement","forwardOption","forwardOptions","alterForeignDataWrapperStatement","createGenericOptions","genericOptionList","alterGenericOptions","alterGenericOptionList","alterGenericOptionElem","genericOptionElement","genericOptionName","genericOptionArgument","createForeignServerStatement","optionalType","foreignServerVersion","alterForeignServerStatement","createForeignTableStatement","importForeignSchemaStatement","importQualificationType","importQualification","createUserMappingStatement","authIdentifier","dropUserMappingStatement","alterUserMappingStatement","createPolicyStatement","alterPolicyStatement","rowSecurityOptionalExpression","rowSecurityOptionalWithCheck","rowSecurityOptionalToUser","rowSecurityDefaultPermissive","rowSecurityDefaultForCmd","rowSecurityCommand","createAccessMethodStatement","accessMethodType","createTriggerStatement","triggerActionTime","triggerEvents","triggerOneEvent","triggerReferencing","triggerTransitions","triggerTransition","transitionOldOrNew","transitionRowOrTable","transitionRelName","triggerForSpec","triggerForType","triggerWhen","functionOrProcedure","triggerFunctionArguments","triggerFunctionArgument","optionalConstraintFromTable","constraintAttributeSpecification","constraintAttributeElement","createEventTriggerStatement","eventTriggerWhenList","eventTriggerWhenItem","eventTriggerValueList","alterEventTriggerStatement","enableTrigger","createAssertionStatement","defineStatement","definition","definitionElement","definitionArgument","oldAggregateDefinition","oldAggregateElement","enumValueList","alterEnumStatement","optionalIfNotExists","createOperatorClassStatement","operatorClassItemList","operatorClassItem","optionalOperatorFamily","operatorClassPurpose","createOperatorFamilyStatement","alterOperatorFamilyStatement","operatorClassDropList","operatorClassDrop","dropOperatorClassStatement","dropOperatorFamilyStatement","dropOwnedStatement","reassignOwnedStatement","dropStatement","objectTypeAnyName","objectTypeName","dropTypeName","objectTypeNameOnAnyName","anyNameList","anyName","attributes","typeNameList","truncateStatement","optionalRestartSequences","commentStatement","commentText","securityLabelStatement","optionalProvider","securityLabel","fetchStatement","fetchArguments","fromOrIn","optionalFromOrIn","grantStatement","revokeStatement","privileges","privilegeList","privilege","privilegeTarget","granteeList","grantee","optionalWithGrantOption","grantPrivilegeStatement","revokePrivilegeStatement","optionalGrantAdminOption","optionalGrantedBy","alterDefaultPrivilegesStatement","defultPrivilegeOption","defaultPrivelegeAction","defultPrivilegeTarget","indexStatement","optionalAccessMethodClause","indexParameters","indexElemOptions","indexElement","optionalInclude","optionalCollate","optionalClass","optionalAscOrDesc","optionalNullsOrder","createFunctionStatement","optionalOrReplace","functionArgumentsList","functionWithArgumentTypesList","functionWithArgumentTypes","functionArgumentsWithDefaultsList","functionArgumentWithDefault","functionArgument","argumentClass","parameterName","functionReturn","functionType","aggregateArguments","aggregateArgumentsList","aggregateWithArgumentTypes","aggregateWithArgumentTypesList","createFunctionOptionList","commonFunctionOptionItem","createFunctionOptionItem","functionAs","transformTypeList","optionalDefinition","tableFunctionColumn","tableFunctionColumnList","alterFunctionStatement","removeFunctionStatement","removeAggregateStatement","removeOperatorStatement","operatorArgumentTypes","anyOperator","operatorWithArgumentTypesList","operatorWithArgumentTypes","doStatement","doStatementOptionsList","doStatementOptionItem","createCastStatement","castContext","dropCastStatement","optionalIfExists","createTransformStatement","transformElementList","dropTransformStatement","reindexStatement","reindexTargetType","reindexOptionList","reindexOptionElement","alterTablespaceStatement","renameStatement","optionalColumn","optionalSetData","alterObjectDependsStatement","alterObjectSchemaStatement","alterOperatorStatement","operatorDefinitionList","operatorDefinitionElement","operatorDefinitionArgument","alterTypeStatement","alterOwnerStatement","createPublicationStatement","optionalPublicationForTables","publicationForTables","alterPublicationStatement","createSubscriptionStatement","publicationNameList","publicationNameItem","alterSubscriptionStatement","dropSubscriptionStatement","ruleStatement","ruleActionList","ruleActionMulti","ruleActionStatement","ruleActionStatementOrEmpty","event","optionalInstead","notifyStatement","notifyPayload","listenStatement","unlistenStatement","transactionStatement","optionalTransaction","transactionModeItem","transactionModeList","optionalTransactionChain","viewStatement","optionalCheckOption","loadStatement","createDatabaseStatement","createDatabaseOptionList","createDatabaseOptionItem","createDatabaseOptionName","alterDatabaseStatement","alterDatabaseSetStatement","dropDatabaseStatement","alterCollationStatement","alterSystemStatement","createDomainStatement","alterDomainStatement","alterDomainCommand","optionalAs","altertsDictionaryStatement","altertsConfigurationStatement","createConversionStatement","clusterStatement","clusterIndexSpecification","vacuumStatement","analyzeStatement","vacuumAnalyzeOptionList","analyzeKeyword","vacuumAnalyzeOptionElement","vacuumAnalyzeOptionName","vacuumAnalyzeOptionArgument","optionalVerbose","optionalNameList","vacuumRelation","optionalVacuumRelationList","explainStatement","explainableStatement","explainOptionElement","explainOptionName","explainOptionArgument","prepareStatement","prepareTypeClause","preparableStatement","executeStatement","executeParameterClause","deallocateStatement","insertStatement","insertTarget","insertRest","overrideKind","insertColumnList","insertColumnItem","optionalOnConflict","optionalConflictExpr","returningClause","mergeStatement","mergeInsertClause","mergeUpdateClause","mergeDeleteClause","deleteStatement","usingClause","lockStatement","optionalLock","lockType","optionalNowait","optionalNowaitOrSkip","updateStatement","setClauseList","setClause","setTarget","declareCursorStatement","cursorName","optionalHold","selectStatement","selectWithParenthesis","selectWithoutParenthesis","selectClause","simpleSelectIntersect","simpleSelectStart","simpleSelectPramary","withClause","commonTableExpression","optionalMaterialized","intoClause","optionalTemporaryTableName","optionalTable","allOrDistinct","distinctClause","allClause","optionalSortClause","sortClause","sortByList","sortBy","selectLimit","optionalSelectLimit","limitClause","offsetClause","selectLimitValue","selectOffsetValue","selectFetchFirstValue","anyConst","rowOrRows","firstOrNext","groupClause","groupByList","groupByItem","havingClause","forLockingClause","forLockingItem","forLockingStrength","lockedRelationsList","valuesClause","fromClause","fromList","nonAnsiJoin","tableReference","aliasClause","optionalAliasClause","tableAliasClause","functionAliasClause","joinType","joinQualifier","viewName","relationExpression","relationExpressionList","relationExpressionOptionalAlias","tableSampleClause","functionTable","rowsFromItem","optionalColumnDefinitionList","optionalOrdinality","whereClause","whereOrCurrentClause","optionalTableFunctionElementList","tableFunctionElementList","tableFunctionElement","xmlTable","xmlTableColumnElement","xmlTableColumnOptionList","xmlTableColumnOptionElement","xmlNamespaceList","xmlNamespaceElement","typeName","simpleTypeName","constTypeName","genericType","optionalTypeModifiers","numeric","optionalFloat","bit","constBit","bitWithLength","bitWithoutLength","character","constCharacter","characterChar","optionalVarying","constDateTime","constInterval","optionalTimezone","optionalInterval","intervalSecond","optionalEscape","expression1","expression1Qualifier","expression1LessLess","expression1Or","expression1And","expression1Between","expression1In","expression1UnaryNot","expression1IsNull","expression1IsNot","expression1Compare","expression1Like","expression1qualifierOperator","expression1UnaryQualifierOperator","expression1Add","expressionMultiply","expression1Caret","expression1UnarySign","expression1AtTimeZone","expression1Collate","expression1Typecast","expression2","expression3","plsqlVariableName","functionApplication","functionExpression","functionExpressionWindowless","functionExpressionCommonSubexpr","xmlRootVersion","optionalXmlRootStandalone","xmlAttributes","xmlAttributeList","xmlAttributeElement","documentOrContent","xmlWhitespaceOption","xmlExistsArgument","xmlPassingMech","withinGroupClause","filterClause","windowClause","windowDefinitionList","windowDefinition","overClause","windowSpecification","optionalExistingWindowName","optionalPartitionClause","optionalFrameClause","frameExtent","frameBound","optionalWindowExclusionClause","row","explicitRow","implicitRow","subType","allOperator","mathOperator","operatorQualifier","allOperatorQualifier","subqueryOperator","expressionList","functionArgumentList","functionArgumentExpression","typeList","arrayExpression","arrayExpressionList","extractList","extractArgument","unicodeNormalForm","overlayList","positionList","substrList","trimList","inExpression","caseExpression","whenClauseList","whenClause","caseDefault","caseArg","columnReference","indirectionElement","indirection","optionalIndirection","optionalTargetList","targetList","targetElement","qualifiedNameList","databaseName","databaseNameList","schemaName","schemaNameList","indexName","indexNameList","triggerName","constraintName","sequenceName","sequenceNameList","qualifiedName","nameList","name","attributeName","fileName","functionName","aExpressionConst","xconst","bconst","fconst","iconst","sconst","anySconst","optionalUescape","signedIconst","roleName","roleNameList","columnId","tableAlias","typeFunctionName","nonReservedWord","columnLabel","identifier","plsqlIdentifier","unreservedKeyword","columnNameKeyword","typeFunctionNameKeyword","reservedKeyword","builtinFunctionName","plsqlFunction","computeOptions","computeOption","sharp","optionValue","optionalSemi","plsqlBlock","declareSection","declareStart","declareStatements","labelDeclaration","declareStatement","declareStatement2","optionalScrollable","declareCursorQuery","declareCursorArgs","declareCursorArglist","declareCursorArg","declareIsOrFor","declareAliasItem","declareVarname","declareConst","declareDatatype","declareCollate","declareNotNull","declareDefaultValue","declareDefaultKey","assignOperator","procedureSection","proceduralStatement","statementPerform","statementCall","optionalExpressionList","statementAssign","statementGetDiagram","optionalGetDiagramArea","getDiagramList","getDiagramListItem","getDiagramItem","getDiagramTarget","assignVariable","statementIf","statementElsifs","statementElse","statementCase","optionalExpressionUntilWhen","caseWhenList","caseWhen","optionalCaseElse","statementLoop","statementWhile","statementFor","forControl","optionalForUsingExpression","optionalCursorParameters","optionalReverse","optionalByExpression","forVariable","statementForeachA","foreachSlice","statementExit","exitType","statementReturn","optionalReturnResult","statementRaise","optionalStatementRaiseLevel","optionalRaiseList","optionalRaiseUsing","optionalRaiseUsingElement","statementAssert","optionalStatementAssertMessage","loopBody","statementExecSql","statementDynExecute","optionalExecuteUsing","optionalExecuteUsingList","optionalExecuteInto","statementOpen","optionalOpenBoundListItem","statementFetch","intoTarget","optionalCursorFrom","optionalFetchDirection","statementMove","statementClose","statementNull","statementCommit","statementRollback","plsqlOptionalTransactionChain","statementSet","cursorVariable","exceptionSection","procedureExceptions","procedureException","procedureConditions","procedureCondition","optionalBlockLabel","optionalLoopLabel","optionalLabel","optionalExitCondition","anyIdentifier","plsqlUnreservedKeyword","sqlExpression","expressionUntilThen","expressionUntilSemi","expressionUntilRightbracket","expressionUntilLoop","makeExecuteSqlStatement","optionalReturningClauseInto","roleOrAliases"],Xi._serializedATN=[4,1,679,10614,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,2,230,7,230,2,231,7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,235,7,235,2,236,7,236,2,237,7,237,2,238,7,238,2,239,7,239,2,240,7,240,2,241,7,241,2,242,7,242,2,243,7,243,2,244,7,244,2,245,7,245,2,246,7,246,2,247,7,247,2,248,7,248,2,249,7,249,2,250,7,250,2,251,7,251,2,252,7,252,2,253,7,253,2,254,7,254,2,255,7,255,2,256,7,256,2,257,7,257,2,258,7,258,2,259,7,259,2,260,7,260,2,261,7,261,2,262,7,262,2,263,7,263,2,264,7,264,2,265,7,265,2,266,7,266,2,267,7,267,2,268,7,268,2,269,7,269,2,270,7,270,2,271,7,271,2,272,7,272,2,273,7,273,2,274,7,274,2,275,7,275,2,276,7,276,2,277,7,277,2,278,7,278,2,279,7,279,2,280,7,280,2,281,7,281,2,282,7,282,2,283,7,283,2,284,7,284,2,285,7,285,2,286,7,286,2,287,7,287,2,288,7,288,2,289,7,289,2,290,7,290,2,291,7,291,2,292,7,292,2,293,7,293,2,294,7,294,2,295,7,295,2,296,7,296,2,297,7,297,2,298,7,298,2,299,7,299,2,300,7,300,2,301,7,301,2,302,7,302,2,303,7,303,2,304,7,304,2,305,7,305,2,306,7,306,2,307,7,307,2,308,7,308,2,309,7,309,2,310,7,310,2,311,7,311,2,312,7,312,2,313,7,313,2,314,7,314,2,315,7,315,2,316,7,316,2,317,7,317,2,318,7,318,2,319,7,319,2,320,7,320,2,321,7,321,2,322,7,322,2,323,7,323,2,324,7,324,2,325,7,325,2,326,7,326,2,327,7,327,2,328,7,328,2,329,7,329,2,330,7,330,2,331,7,331,2,332,7,332,2,333,7,333,2,334,7,334,2,335,7,335,2,336,7,336,2,337,7,337,2,338,7,338,2,339,7,339,2,340,7,340,2,341,7,341,2,342,7,342,2,343,7,343,2,344,7,344,2,345,7,345,2,346,7,346,2,347,7,347,2,348,7,348,2,349,7,349,2,350,7,350,2,351,7,351,2,352,7,352,2,353,7,353,2,354,7,354,2,355,7,355,2,356,7,356,2,357,7,357,2,358,7,358,2,359,7,359,2,360,7,360,2,361,7,361,2,362,7,362,2,363,7,363,2,364,7,364,2,365,7,365,2,366,7,366,2,367,7,367,2,368,7,368,2,369,7,369,2,370,7,370,2,371,7,371,2,372,7,372,2,373,7,373,2,374,7,374,2,375,7,375,2,376,7,376,2,377,7,377,2,378,7,378,2,379,7,379,2,380,7,380,2,381,7,381,2,382,7,382,2,383,7,383,2,384,7,384,2,385,7,385,2,386,7,386,2,387,7,387,2,388,7,388,2,389,7,389,2,390,7,390,2,391,7,391,2,392,7,392,2,393,7,393,2,394,7,394,2,395,7,395,2,396,7,396,2,397,7,397,2,398,7,398,2,399,7,399,2,400,7,400,2,401,7,401,2,402,7,402,2,403,7,403,2,404,7,404,2,405,7,405,2,406,7,406,2,407,7,407,2,408,7,408,2,409,7,409,2,410,7,410,2,411,7,411,2,412,7,412,2,413,7,413,2,414,7,414,2,415,7,415,2,416,7,416,2,417,7,417,2,418,7,418,2,419,7,419,2,420,7,420,2,421,7,421,2,422,7,422,2,423,7,423,2,424,7,424,2,425,7,425,2,426,7,426,2,427,7,427,2,428,7,428,2,429,7,429,2,430,7,430,2,431,7,431,2,432,7,432,2,433,7,433,2,434,7,434,2,435,7,435,2,436,7,436,2,437,7,437,2,438,7,438,2,439,7,439,2,440,7,440,2,441,7,441,2,442,7,442,2,443,7,443,2,444,7,444,2,445,7,445,2,446,7,446,2,447,7,447,2,448,7,448,2,449,7,449,2,450,7,450,2,451,7,451,2,452,7,452,2,453,7,453,2,454,7,454,2,455,7,455,2,456,7,456,2,457,7,457,2,458,7,458,2,459,7,459,2,460,7,460,2,461,7,461,2,462,7,462,2,463,7,463,2,464,7,464,2,465,7,465,2,466,7,466,2,467,7,467,2,468,7,468,2,469,7,469,2,470,7,470,2,471,7,471,2,472,7,472,2,473,7,473,2,474,7,474,2,475,7,475,2,476,7,476,2,477,7,477,2,478,7,478,2,479,7,479,2,480,7,480,2,481,7,481,2,482,7,482,2,483,7,483,2,484,7,484,2,485,7,485,2,486,7,486,2,487,7,487,2,488,7,488,2,489,7,489,2,490,7,490,2,491,7,491,2,492,7,492,2,493,7,493,2,494,7,494,2,495,7,495,2,496,7,496,2,497,7,497,2,498,7,498,2,499,7,499,2,500,7,500,2,501,7,501,2,502,7,502,2,503,7,503,2,504,7,504,2,505,7,505,2,506,7,506,2,507,7,507,2,508,7,508,2,509,7,509,2,510,7,510,2,511,7,511,2,512,7,512,2,513,7,513,2,514,7,514,2,515,7,515,2,516,7,516,2,517,7,517,2,518,7,518,2,519,7,519,2,520,7,520,2,521,7,521,2,522,7,522,2,523,7,523,2,524,7,524,2,525,7,525,2,526,7,526,2,527,7,527,2,528,7,528,2,529,7,529,2,530,7,530,2,531,7,531,2,532,7,532,2,533,7,533,2,534,7,534,2,535,7,535,2,536,7,536,2,537,7,537,2,538,7,538,2,539,7,539,2,540,7,540,2,541,7,541,2,542,7,542,2,543,7,543,2,544,7,544,2,545,7,545,2,546,7,546,2,547,7,547,2,548,7,548,2,549,7,549,2,550,7,550,2,551,7,551,2,552,7,552,2,553,7,553,2,554,7,554,2,555,7,555,2,556,7,556,2,557,7,557,2,558,7,558,2,559,7,559,2,560,7,560,2,561,7,561,2,562,7,562,2,563,7,563,2,564,7,564,2,565,7,565,2,566,7,566,2,567,7,567,2,568,7,568,2,569,7,569,2,570,7,570,2,571,7,571,2,572,7,572,2,573,7,573,2,574,7,574,2,575,7,575,2,576,7,576,2,577,7,577,2,578,7,578,2,579,7,579,2,580,7,580,2,581,7,581,2,582,7,582,2,583,7,583,2,584,7,584,2,585,7,585,2,586,7,586,2,587,7,587,2,588,7,588,2,589,7,589,2,590,7,590,2,591,7,591,2,592,7,592,2,593,7,593,2,594,7,594,2,595,7,595,2,596,7,596,2,597,7,597,2,598,7,598,2,599,7,599,2,600,7,600,2,601,7,601,2,602,7,602,2,603,7,603,2,604,7,604,2,605,7,605,2,606,7,606,2,607,7,607,2,608,7,608,2,609,7,609,2,610,7,610,2,611,7,611,2,612,7,612,2,613,7,613,2,614,7,614,2,615,7,615,2,616,7,616,2,617,7,617,2,618,7,618,2,619,7,619,2,620,7,620,2,621,7,621,2,622,7,622,2,623,7,623,2,624,7,624,2,625,7,625,2,626,7,626,2,627,7,627,2,628,7,628,2,629,7,629,2,630,7,630,2,631,7,631,2,632,7,632,2,633,7,633,2,634,7,634,2,635,7,635,2,636,7,636,2,637,7,637,2,638,7,638,2,639,7,639,2,640,7,640,2,641,7,641,2,642,7,642,2,643,7,643,2,644,7,644,2,645,7,645,2,646,7,646,2,647,7,647,2,648,7,648,2,649,7,649,2,650,7,650,2,651,7,651,2,652,7,652,2,653,7,653,2,654,7,654,2,655,7,655,2,656,7,656,2,657,7,657,2,658,7,658,2,659,7,659,2,660,7,660,2,661,7,661,2,662,7,662,2,663,7,663,2,664,7,664,2,665,7,665,2,666,7,666,2,667,7,667,2,668,7,668,2,669,7,669,2,670,7,670,2,671,7,671,2,672,7,672,2,673,7,673,2,674,7,674,2,675,7,675,2,676,7,676,2,677,7,677,2,678,7,678,2,679,7,679,2,680,7,680,2,681,7,681,2,682,7,682,2,683,7,683,2,684,7,684,2,685,7,685,2,686,7,686,2,687,7,687,2,688,7,688,2,689,7,689,2,690,7,690,2,691,7,691,2,692,7,692,2,693,7,693,2,694,7,694,2,695,7,695,2,696,7,696,2,697,7,697,2,698,7,698,2,699,7,699,2,700,7,700,2,701,7,701,2,702,7,702,2,703,7,703,2,704,7,704,2,705,7,705,2,706,7,706,2,707,7,707,2,708,7,708,2,709,7,709,2,710,7,710,2,711,7,711,2,712,7,712,2,713,7,713,2,714,7,714,2,715,7,715,2,716,7,716,2,717,7,717,2,718,7,718,2,719,7,719,2,720,7,720,2,721,7,721,2,722,7,722,2,723,7,723,2,724,7,724,2,725,7,725,2,726,7,726,2,727,7,727,2,728,7,728,2,729,7,729,2,730,7,730,2,731,7,731,2,732,7,732,2,733,7,733,2,734,7,734,2,735,7,735,2,736,7,736,2,737,7,737,2,738,7,738,2,739,7,739,2,740,7,740,2,741,7,741,2,742,7,742,2,743,7,743,2,744,7,744,2,745,7,745,2,746,7,746,2,747,7,747,2,748,7,748,2,749,7,749,2,750,7,750,2,751,7,751,2,752,7,752,2,753,7,753,1,0,3,0,1510,8,0,1,0,1,0,1,1,1,1,1,2,1,2,3,2,1518,8,2,1,2,1,2,1,2,1,2,3,2,1524,8,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,1648,8,3,1,4,1,4,3,4,1652,8,4,1,5,1,5,1,5,1,6,1,6,3,6,1659,8,6,1,7,5,7,1662,8,7,10,7,12,7,1665,9,7,1,8,5,8,1668,8,8,10,8,12,8,1671,9,8,1,9,1,9,1,9,3,9,1676,8,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,3,9,1692,8,9,1,10,1,10,1,10,1,10,1,10,1,10,3,10,1700,8,10,1,10,1,10,1,10,3,10,1705,8,10,1,11,1,11,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,3,13,1723,8,13,1,14,1,14,1,14,3,14,1728,8,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,3,15,1738,8,15,1,15,1,15,1,16,1,16,1,17,1,17,1,17,1,17,1,17,3,17,1749,8,17,1,17,1,17,1,17,1,17,1,17,3,17,1756,8,17,1,17,1,17,1,18,1,18,3,18,1762,8,18,1,19,5,19,1765,8,19,10,19,12,19,1768,9,19,1,20,1,20,1,20,1,20,1,20,1,20,3,20,1776,8,20,1,21,1,21,3,21,1780,8,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,3,22,1792,8,22,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,3,24,1824,8,24,1,25,1,25,1,25,5,25,1829,8,25,10,25,12,25,1832,9,25,1,26,1,26,1,26,5,26,1837,8,26,10,26,12,26,1840,9,26,1,27,1,27,3,27,1844,8,27,1,28,1,28,1,28,1,28,1,28,3,28,1851,8,28,1,29,1,29,1,29,1,29,3,29,1857,8,29,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,3,30,1874,8,30,1,31,1,31,1,31,3,31,1879,8,31,1,32,1,32,3,32,1883,8,32,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,3,34,1896,8,34,1,35,1,35,3,35,1900,8,35,1,36,1,36,1,36,3,36,1905,8,36,1,37,1,37,1,37,3,37,1910,8,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,3,38,1922,8,38,1,39,1,39,1,39,1,39,1,39,1,40,1,40,3,40,1931,8,40,1,41,1,41,1,42,1,42,1,43,1,43,1,43,1,44,1,44,1,44,1,44,3,44,1944,8,44,1,44,1,44,1,44,3,44,1949,8,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,1960,8,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,1971,8,44,1,44,1,44,1,44,3,44,1976,8,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,1987,8,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,1998,8,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,2008,8,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,2023,8,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,2035,8,44,1,44,1,44,1,44,3,44,2040,8,44,1,45,1,45,1,45,5,45,2045,8,45,10,45,12,45,2048,9,45,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,3,46,2058,8,46,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,4,48,2207,8,48,11,48,12,48,2208,1,48,1,48,1,48,1,48,1,48,1,48,1,48,3,48,2218,8,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,3,48,2238,8,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,3,48,2305,8,48,1,49,1,49,1,49,1,49,1,49,3,49,2312,8,49,1,50,1,50,1,50,3,50,2317,8,50,1,51,1,51,1,51,3,51,2322,8,51,1,52,1,52,1,52,3,52,2327,8,52,1,53,1,53,1,53,1,53,1,53,1,53,3,53,2335,8,53,1,54,1,54,1,54,1,54,1,55,1,55,1,55,3,55,2344,8,55,1,56,1,56,1,56,5,56,2349,8,56,10,56,12,56,2352,9,56,1,57,1,57,1,57,1,57,1,57,1,57,1,57,3,57,2361,8,57,3,57,2363,8,57,1,58,4,58,2366,8,58,11,58,12,58,2367,1,59,1,59,1,59,1,59,3,59,2374,8,59,1,59,1,59,1,59,1,59,3,59,2380,8,59,3,59,2382,8,59,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,3,60,2410,8,60,1,61,1,61,1,61,1,62,1,62,1,62,5,62,2418,8,62,10,62,12,62,2421,9,62,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,5,64,2431,8,64,10,64,12,64,2434,9,64,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,3,65,2445,8,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,3,65,2459,8,65,1,66,1,66,1,66,3,66,2464,8,66,1,67,1,67,3,67,2468,8,67,1,67,1,67,1,67,1,67,3,67,2474,8,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,3,67,2488,8,67,1,67,1,67,1,67,1,67,3,67,2494,8,67,1,68,1,68,1,69,1,69,1,69,3,69,2501,8,69,1,70,5,70,2504,8,70,10,70,12,70,2507,9,70,1,70,1,70,1,70,1,70,3,70,2513,8,70,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,3,71,2550,8,71,1,72,3,72,2553,8,72,1,72,1,72,1,72,3,72,2558,8,72,1,73,1,73,1,73,5,73,2563,8,73,10,73,12,73,2566,9,73,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,75,1,75,5,75,2578,8,75,10,75,12,75,2581,9,75,1,75,1,75,1,75,3,75,2586,8,75,1,76,1,76,1,76,1,76,1,76,1,76,3,76,2594,8,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,1,76,3,76,2627,8,76,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,3,77,2637,8,77,1,78,1,78,3,78,2641,8,78,1,79,1,79,1,79,1,79,1,79,3,79,2648,8,79,1,80,1,80,1,80,5,80,2653,8,80,10,80,12,80,2656,9,80,1,81,1,81,1,81,5,81,2661,8,81,10,81,12,81,2664,9,81,1,82,1,82,1,82,3,82,2669,8,82,1,83,1,83,3,83,2673,8,83,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,85,3,85,2683,8,85,1,85,1,85,1,86,5,86,2688,8,86,10,86,12,86,2691,9,86,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,3,87,2701,8,87,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,3,88,2721,8,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,3,88,2735,8,88,1,88,1,88,1,88,1,88,1,88,1,88,3,88,2743,8,88,1,89,1,89,1,89,3,89,2748,8,89,1,90,1,90,1,90,1,90,1,90,3,90,2755,8,90,1,91,1,91,1,91,1,91,1,92,1,92,5,92,2763,8,92,10,92,12,92,2766,9,92,1,93,1,93,1,94,1,94,1,94,1,94,1,94,3,94,2775,8,94,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,3,95,2795,8,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,3,95,2810,8,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,3,95,2835,8,95,1,96,1,96,1,96,1,96,1,96,3,96,2842,8,96,1,97,1,97,1,97,5,97,2847,8,97,10,97,12,97,2850,9,97,1,98,1,98,1,99,1,99,1,99,1,99,1,99,1,99,3,99,2860,8,99,1,100,1,100,1,100,3,100,2865,8,100,1,101,1,101,1,101,5,101,2870,8,101,10,101,12,101,2873,9,101,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,3,102,2883,8,102,1,103,1,103,1,103,1,103,1,103,1,103,3,103,2891,8,103,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,3,104,2902,8,104,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,1,107,1,107,1,107,1,107,1,107,1,107,3,107,2918,8,107,1,108,1,108,1,108,1,108,1,108,1,108,3,108,2926,8,108,1,109,1,109,3,109,2930,8,109,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,111,1,111,1,111,5,111,2942,8,111,10,111,12,111,2945,9,111,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,3,112,2961,8,112,1,113,1,113,1,113,3,113,2966,8,113,1,114,1,114,1,114,1,114,1,114,3,114,2973,8,114,1,115,1,115,1,115,1,115,1,115,1,115,1,115,3,115,2982,8,115,1,115,3,115,2985,8,115,1,116,1,116,1,116,3,116,2990,8,116,1,117,1,117,1,117,1,117,1,117,3,117,2997,8,117,1,118,1,118,1,118,1,118,1,119,1,119,1,119,1,119,1,119,3,119,3008,8,119,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,120,1,120,1,120,1,120,3,120,3021,8,120,1,120,1,120,1,120,1,120,1,120,1,121,1,121,1,121,1,121,1,121,1,121,3,121,3034,8,121,1,121,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,123,1,123,1,123,1,123,3,123,3052,8,123,1,123,3,123,3055,8,123,1,124,1,124,3,124,3059,8,124,1,124,1,124,1,124,1,124,1,124,3,124,3066,8,124,1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,3,126,3083,8,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,127,3,127,3094,8,127,1,127,1,127,3,127,3098,8,127,1,128,1,128,1,128,1,128,3,128,3104,8,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,3,129,3114,8,129,1,130,4,130,3117,8,130,11,130,12,130,3118,1,131,1,131,1,131,1,131,1,131,1,131,1,131,3,131,3128,8,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,3,131,3150,8,131,3,131,3152,8,131,1,132,1,132,1,132,1,132,1,132,1,132,3,132,3160,8,132,1,133,1,133,1,133,5,133,3165,8,133,10,133,12,133,3168,9,133,1,134,1,134,1,134,3,134,3173,8,134,1,134,1,134,1,134,1,134,1,134,1,134,1,134,3,134,3182,8,134,3,134,3184,8,134,1,135,1,135,3,135,3188,8,135,1,136,1,136,1,136,3,136,3193,8,136,1,137,1,137,1,137,1,137,3,137,3199,8,137,1,138,1,138,3,138,3203,8,138,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,140,1,140,1,140,3,140,3216,8,140,1,141,1,141,1,141,1,141,3,141,3222,8,141,1,141,1,141,1,142,1,142,1,142,1,142,1,142,3,142,3231,8,142,1,142,1,142,1,142,5,142,3236,8,142,10,142,12,142,3239,9,142,1,143,1,143,1,143,1,143,1,143,1,143,1,143,3,143,3248,8,143,1,144,1,144,1,144,1,144,1,144,5,144,3255,8,144,10,144,12,144,3258,9,144,1,145,1,145,1,145,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,146,3,146,3402,8,146,1,147,1,147,1,147,1,147,1,147,1,147,3,147,3410,8,147,1,147,1,147,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,3,148,3422,8,148,1,149,4,149,3425,8,149,11,149,12,149,3426,1,150,1,150,1,150,1,150,1,150,1,150,3,150,3435,8,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,3,150,3446,8,150,1,151,1,151,1,151,1,151,1,151,1,151,3,151,3454,8,151,1,152,1,152,1,152,5,152,3459,8,152,10,152,12,152,3462,9,152,1,153,1,153,1,153,1,153,1,153,1,154,1,154,1,154,5,154,3472,8,154,10,154,12,154,3475,9,154,1,155,1,155,1,155,1,155,1,155,1,155,1,155,3,155,3484,8,155,1,156,1,156,1,156,1,157,1,157,1,158,1,158,1,159,1,159,1,159,1,159,1,159,3,159,3498,8,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,3,159,3514,8,159,1,159,1,159,1,159,1,159,1,159,1,159,3,159,3522,8,159,1,160,1,160,1,160,3,160,3527,8,160,1,161,1,161,1,161,3,161,3532,8,161,1,162,1,162,1,162,1,162,1,162,1,162,3,162,3540,8,162,3,162,3542,8,162,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,3,163,3600,8,163,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,165,1,165,1,165,3,165,3617,8,165,1,166,1,166,1,166,1,166,1,166,1,166,3,166,3625,8,166,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,3,167,3648,8,167,1,168,1,168,3,168,3652,8,168,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,3,169,3672,8,169,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,173,1,173,1,173,1,173,1,173,1,173,3,173,3709,8,173,1,174,1,174,1,174,1,174,1,174,1,174,1,174,3,174,3718,8,174,1,175,1,175,1,175,3,175,3723,8,175,1,176,1,176,1,176,3,176,3728,8,176,1,177,1,177,1,177,3,177,3733,8,177,1,178,1,178,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,180,1,180,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,181,3,181,3786,8,181,1,182,1,182,1,182,1,182,3,182,3792,8,182,1,183,1,183,1,183,5,183,3797,8,183,10,183,12,183,3800,9,183,1,184,1,184,1,184,1,184,1,184,1,184,1,184,3,184,3809,8,184,1,185,1,185,1,185,3,185,3814,8,185,1,186,4,186,3817,8,186,11,186,12,186,3818,1,187,1,187,1,187,1,187,1,187,1,188,1,188,1,189,1,189,1,190,1,190,1,191,1,191,3,191,3834,8,191,1,191,1,191,3,191,3838,8,191,1,192,1,192,1,193,1,193,1,193,1,193,1,193,1,193,3,193,3848,8,193,1,194,1,194,1,195,1,195,3,195,3854,8,195,1,195,1,195,5,195,3858,8,195,10,195,12,195,3861,9,195,1,196,1,196,1,196,1,196,3,196,3867,8,196,1,197,1,197,1,197,3,197,3872,8,197,1,198,5,198,3875,8,198,10,198,12,198,3878,9,198,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,3,199,3891,8,199,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,3,200,3919,8,200,1,201,1,201,1,201,5,201,3924,8,201,10,201,12,201,3927,9,201,1,202,1,202,1,202,1,202,1,202,1,202,1,203,1,203,1,203,5,203,3938,8,203,10,203,12,203,3941,9,203,1,204,1,204,1,204,1,204,1,204,1,204,1,205,1,205,1,205,1,205,1,205,1,205,3,205,3955,8,205,1,206,1,206,1,206,1,206,1,206,1,206,1,206,1,206,1,206,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,3,207,4007,8,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,3,207,4074,8,207,1,208,1,208,1,208,1,208,5,208,4080,8,208,10,208,12,208,4083,9,208,1,208,1,208,1,209,1,209,1,209,3,209,4090,8,209,1,210,1,210,1,210,1,210,1,210,1,210,3,210,4098,8,210,1,211,1,211,1,211,1,211,5,211,4104,8,211,10,211,12,211,4107,9,211,1,211,1,211,1,212,1,212,1,212,1,212,1,213,1,213,1,213,5,213,4118,8,213,10,213,12,213,4121,9,213,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,3,214,4160,8,214,1,215,1,215,1,215,1,215,3,215,4166,8,215,1,216,1,216,1,216,1,216,1,216,3,216,4173,8,216,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1,217,1,217,1,217,5,217,4187,8,217,10,217,12,217,4190,9,217,1,218,1,218,1,218,1,218,1,218,3,218,4197,8,218,1,218,1,218,1,218,1,218,1,218,3,218,4204,8,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,3,218,4219,8,218,1,219,1,219,1,219,3,219,4224,8,219,1,220,1,220,1,220,1,220,1,220,1,220,1,220,3,220,4233,8,220,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,3,222,4260,8,222,1,223,1,223,1,223,5,223,4265,8,223,10,223,12,223,4268,9,223,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,3,224,4282,8,224,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,3,225,4302,8,225,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,3,226,4322,8,226,1,227,1,227,1,227,1,227,1,227,1,227,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,229,1,229,1,229,1,229,3,229,4341,8,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,3,229,4350,8,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,3,229,4359,8,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,3,229,4368,8,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,3,229,4377,8,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,3,229,4386,8,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,3,229,4397,8,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,3,229,4442,8,229,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,3,230,4465,8,230,1,231,1,231,1,231,3,231,4470,8,231,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,3,232,4485,8,232,1,233,1,233,1,234,1,234,1,234,5,234,4492,8,234,10,234,12,234,4495,9,234,1,235,1,235,3,235,4499,8,235,1,236,1,236,4,236,4503,8,236,11,236,12,236,4504,1,237,1,237,1,237,5,237,4510,8,237,10,237,12,237,4513,9,237,1,238,1,238,1,238,1,238,1,238,1,238,1,239,1,239,1,239,1,239,1,239,3,239,4526,8,239,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,3,240,4625,8,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,3,240,4712,8,240,1,241,1,241,3,241,4716,8,241,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,3,242,4854,8,242,1,243,1,243,1,243,3,243,4859,8,243,1,244,1,244,3,244,4863,8,244,1,245,1,245,1,245,1,245,3,245,4869,8,245,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,3,246,4937,8,246,1,247,1,247,1,248,1,248,3,248,4943,8,248,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,3,250,4972,8,250,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,3,251,4989,8,251,1,252,1,252,1,252,5,252,4994,8,252,10,252,12,252,4997,9,252,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,3,253,5008,8,253,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,3,254,5048,8,254,1,255,1,255,1,255,5,255,5053,8,255,10,255,12,255,5056,9,255,1,256,1,256,1,256,3,256,5061,8,256,1,257,1,257,1,257,1,257,3,257,5067,8,257,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,3,259,5093,8,259,1,260,1,260,1,260,1,260,3,260,5099,8,260,1,261,1,261,1,261,1,261,3,261,5105,8,261,1,262,1,262,1,262,1,262,5,262,5111,8,262,10,262,12,262,5114,9,262,1,262,1,262,1,263,1,263,1,263,1,263,1,263,1,263,1,263,3,263,5125,8,263,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,3,264,5154,8,264,1,265,1,265,1,266,1,266,3,266,5160,8,266,1,266,1,266,3,266,5164,8,266,1,266,3,266,5167,8,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,3,266,5182,8,266,1,266,1,266,3,266,5186,8,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,3,266,5203,8,266,1,267,1,267,1,267,3,267,5208,8,267,1,268,1,268,1,268,5,268,5213,8,268,10,268,12,268,5216,9,268,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,3,269,5229,8,269,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,3,270,5242,8,270,1,271,1,271,1,271,1,271,1,271,5,271,5249,8,271,10,271,12,271,5252,9,271,1,271,1,271,1,271,3,271,5257,8,271,1,272,1,272,1,272,3,272,5262,8,272,1,273,1,273,3,273,5266,8,273,1,274,1,274,1,274,3,274,5271,8,274,1,275,1,275,1,275,1,275,1,275,3,275,5278,8,275,1,276,1,276,1,276,1,276,1,276,1,276,3,276,5286,8,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,3,276,5296,8,276,3,276,5298,8,276,1,276,1,276,1,277,1,277,1,277,3,277,5305,8,277,1,278,1,278,1,278,5,278,5310,8,278,10,278,12,278,5313,9,278,1,279,1,279,1,279,5,279,5318,8,279,10,279,12,279,5321,9,279,1,280,1,280,1,280,3,280,5326,8,280,1,280,1,280,1,280,1,280,1,280,3,280,5333,8,280,3,280,5335,8,280,1,281,1,281,1,281,5,281,5340,8,281,10,281,12,281,5343,9,281,1,282,1,282,1,282,3,282,5348,8,282,1,283,1,283,3,283,5352,8,283,1,283,1,283,1,283,1,283,3,283,5358,8,283,1,283,1,283,1,283,3,283,5363,8,283,1,284,1,284,3,284,5367,8,284,1,284,1,284,1,284,3,284,5372,8,284,1,285,1,285,1,285,1,285,3,285,5378,8,285,1,286,1,286,1,287,1,287,3,287,5384,8,287,1,287,1,287,1,287,1,287,3,287,5390,8,287,1,287,1,287,1,287,1,287,3,287,5396,8,287,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,3,288,5409,8,288,1,288,1,288,1,289,1,289,1,289,5,289,5416,8,289,10,289,12,289,5419,9,289,1,290,1,290,1,290,1,291,1,291,1,291,5,291,5427,8,291,10,291,12,291,5430,9,291,1,292,4,292,5433,8,292,11,292,12,292,5434,1,292,1,292,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,3,293,5474,8,293,1,294,1,294,1,294,1,294,1,294,1,294,1,294,1,294,3,294,5484,8,294,1,295,1,295,1,295,1,295,1,295,3,295,5491,8,295,1,296,1,296,1,296,1,296,1,296,1,296,1,296,5,296,5500,8,296,10,296,12,296,5503,9,296,1,297,1,297,1,297,3,297,5508,8,297,1,298,1,298,1,298,1,299,1,299,1,299,5,299,5516,8,299,10,299,12,299,5519,9,299,1,300,1,300,1,300,1,300,4,300,5525,8,300,11,300,12,300,5526,1,300,3,300,5530,8,300,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,3,301,5568,8,301,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,3,302,5582,8,302,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,3,303,5596,8,303,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,3,304,5620,8,304,1,305,1,305,1,305,5,305,5625,8,305,10,305,12,305,5628,9,305,1,305,1,305,1,306,1,306,1,306,5,306,5635,8,306,10,306,12,306,5638,9,306,1,307,1,307,1,307,1,308,1,308,1,308,1,309,4,309,5647,8,309,11,309,12,309,5648,1,310,1,310,1,310,3,310,5654,8,310,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,3,311,5690,8,311,1,312,1,312,1,312,1,312,1,312,3,312,5697,8,312,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,314,1,314,1,314,3,314,5712,8,314,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,3,316,5759,8,316,1,317,1,317,1,317,1,317,1,317,1,317,1,317,1,317,1,317,1,318,1,318,1,318,1,318,1,318,3,318,5775,8,318,1,318,1,318,3,318,5779,8,318,1,318,1,318,1,318,1,318,1,318,1,318,1,318,3,318,5788,8,318,1,318,1,318,3,318,5792,8,318,1,318,1,318,1,318,1,318,1,318,1,318,3,318,5800,8,318,1,318,1,318,3,318,5804,8,318,1,318,1,318,1,318,1,318,1,318,1,318,3,318,5812,8,318,1,318,1,318,3,318,5816,8,318,1,318,1,318,1,318,1,318,1,318,1,318,3,318,5824,8,318,1,318,1,318,3,318,5828,8,318,1,318,3,318,5831,8,318,1,319,1,319,1,320,1,320,1,320,5,320,5838,8,320,10,320,12,320,5841,9,320,1,321,1,321,1,322,1,322,1,322,1,322,1,322,1,322,1,322,1,322,1,322,1,322,1,322,1,322,3,322,5857,8,322,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,3,323,6029,8,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,3,323,6074,8,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,3,323,6165,8,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,3,323,6296,8,323,1,324,1,324,3,324,6300,8,324,1,325,1,325,1,325,3,325,6305,8,325,1,326,1,326,1,326,1,326,3,326,6311,8,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,3,326,6322,8,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,3,326,6333,8,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,3,326,6346,8,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,3,326,6358,8,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,3,326,6369,8,326,1,326,1,326,1,326,1,326,1,326,3,326,6376,8,326,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,3,327,6524,8,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,327,3,327,6590,8,327,1,328,1,328,1,328,1,328,1,328,1,328,1,328,1,328,1,329,1,329,1,329,5,329,6603,8,329,10,329,12,329,6606,9,329,1,330,1,330,1,330,1,330,1,330,1,330,1,330,1,330,3,330,6616,8,330,1,331,1,331,1,331,1,331,1,331,3,331,6623,8,331,1,332,1,332,1,332,1,332,1,332,1,332,1,332,1,332,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,3,333,6816,8,333,1,334,1,334,1,334,1,334,1,334,1,334,1,335,1,335,3,335,6826,8,335,1,336,1,336,1,336,1,336,1,336,1,336,3,336,6834,8,336,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,1,337,3,337,6863,8,337,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,339,1,339,1,339,5,339,6877,8,339,10,339,12,339,6880,9,339,1,340,1,340,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,3,341,6921,8,341,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,3,342,6935,8,342,1,343,1,343,1,343,1,343,1,343,1,343,1,343,1,343,1,343,1,343,1,343,1,343,1,343,1,343,1,344,1,344,1,344,1,344,1,344,1,344,3,344,6957,8,344,1,345,1,345,1,345,5,345,6962,8,345,10,345,12,345,6965,9,345,1,346,1,346,1,346,1,346,1,346,3,346,6972,8,346,1,347,1,347,3,347,6976,8,347,1,348,1,348,1,349,1,349,1,349,3,349,6983,8,349,1,350,1,350,1,350,1,350,1,351,1,351,1,351,3,351,6992,8,351,1,352,1,352,1,352,1,353,1,353,1,353,1,353,3,353,7001,8,353,1,354,1,354,1,354,1,354,1,354,1,354,1,354,3,354,7010,8,354,1,354,1,354,1,354,3,354,7015,8,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,3,354,7056,8,354,1,355,1,355,1,355,3,355,7061,8,355,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1,356,3,356,7073,8,356,1,357,1,357,3,357,7077,8,357,1,357,5,357,7080,8,357,10,357,12,357,7083,9,357,1,358,1,358,3,358,7087,8,358,1,358,1,358,3,358,7091,8,358,1,359,1,359,1,359,3,359,7096,8,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,3,359,7112,8,359,1,359,1,359,1,359,1,359,1,360,1,360,3,360,7120,8,360,1,360,1,360,1,360,3,360,7125,8,360,1,361,1,361,1,361,1,362,1,362,1,362,1,362,1,362,1,362,1,363,4,363,7137,8,363,11,363,12,363,7138,1,363,3,363,7142,8,363,1,364,1,364,3,364,7146,8,364,1,364,1,364,1,364,3,364,7151,8,364,1,365,1,365,1,365,1,365,1,365,1,365,1,365,1,365,3,365,7161,8,365,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,3,366,7172,8,366,1,367,1,367,1,367,1,367,1,367,1,368,1,368,1,368,1,368,3,368,7183,8,368,1,368,1,368,1,368,1,368,1,368,1,368,5,368,7191,8,368,10,368,12,368,7194,9,368,1,368,1,368,3,368,7198,8,368,1,369,1,369,1,369,1,369,1,369,1,369,1,370,1,370,1,370,1,370,1,370,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,372,1,372,1,372,1,372,1,372,1,373,1,373,1,373,1,373,1,373,1,373,1,373,1,373,1,373,1,373,1,373,1,373,1,373,3,373,7236,8,373,1,373,1,373,1,373,1,373,1,373,1,373,3,373,7244,8,373,1,374,1,374,3,374,7248,8,374,1,375,1,375,1,375,1,375,1,375,1,375,1,375,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,3,376,7329,8,376,1,377,1,377,3,377,7333,8,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,3,378,7357,8,378,1,379,1,379,1,379,3,379,7362,8,379,1,380,1,380,3,380,7366,8,380,1,380,3,380,7369,8,380,1,380,1,380,3,380,7373,8,380,1,380,1,380,1,380,1,380,1,380,1,380,1,380,1,380,3,380,7383,8,380,1,381,1,381,1,381,1,381,1,381,1,381,1,381,1,381,1,381,1,381,3,381,7395,8,381,1,382,1,382,1,382,5,382,7400,8,382,10,382,12,382,7403,9,382,1,383,1,383,1,384,1,384,1,384,1,385,1,385,3,385,7412,8,385,1,386,1,386,1,386,3,386,7417,8,386,1,387,1,387,3,387,7421,8,387,1,388,1,388,1,388,1,388,1,388,3,388,7428,8,388,1,389,1,389,1,389,1,390,1,390,1,390,5,390,7436,8,390,10,390,12,390,7439,9,390,1,390,3,390,7442,8,390,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,391,5,391,7459,8,391,10,391,12,391,7462,9,391,1,391,1,391,1,391,3,391,7467,8,391,1,392,1,392,1,392,1,392,1,392,1,392,1,392,1,392,1,392,3,392,7478,8,392,1,393,1,393,1,393,1,394,1,394,3,394,7485,8,394,1,395,1,395,1,395,3,395,7490,8,395,1,396,1,396,1,396,1,396,1,396,1,396,1,397,1,397,1,397,1,397,1,397,3,397,7503,8,397,1,398,1,398,1,398,1,398,3,398,7509,8,398,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,3,399,7538,8,399,1,400,1,400,1,400,1,400,1,400,3,400,7545,8,400,1,401,1,401,1,401,1,401,1,401,1,401,1,401,1,401,1,401,1,401,3,401,7557,8,401,1,402,3,402,7560,8,402,1,402,1,402,1,402,1,402,1,402,1,402,1,402,1,403,1,403,1,403,3,403,7572,8,403,1,404,1,404,1,404,1,404,1,404,1,404,1,404,1,404,1,404,1,404,1,404,1,404,1,404,3,404,7587,8,404,1,404,1,404,1,404,1,404,3,404,7593,8,404,1,405,1,405,1,406,1,406,1,406,5,406,7600,8,406,10,406,12,406,7603,9,406,1,407,1,407,1,407,1,408,1,408,1,408,1,408,1,408,1,408,1,408,1,408,1,408,1,408,3,408,7618,8,408,1,408,3,408,7621,8,408,1,409,1,409,1,409,1,409,1,409,1,409,1,409,1,409,1,409,3,409,7632,8,409,1,410,1,410,1,410,3,410,7637,8,410,1,411,1,411,3,411,7641,8,411,1,411,1,411,3,411,7645,8,411,1,411,1,411,1,411,3,411,7650,8,411,1,411,3,411,7653,8,411,1,411,1,411,1,411,1,411,3,411,7659,8,411,1,411,1,411,3,411,7663,8,411,3,411,7665,8,411,1,411,3,411,7668,8,411,1,412,1,412,1,412,1,412,1,412,3,412,7675,8,412,1,412,3,412,7678,8,412,1,412,1,412,1,412,1,412,1,412,3,412,7685,8,412,1,412,1,412,1,413,1,413,1,413,1,413,3,413,7693,8,413,1,413,3,413,7696,8,413,1,413,1,413,1,413,1,413,1,414,1,414,1,414,3,414,7705,8,414,1,414,1,414,1,415,3,415,7710,8,415,1,415,1,415,1,415,1,415,1,415,1,415,1,415,1,416,1,416,1,416,3,416,7722,8,416,1,417,1,417,1,417,1,417,1,417,1,417,1,418,1,418,1,418,1,418,1,418,3,418,7735,8,418,1,419,1,419,1,419,1,419,1,419,1,419,1,419,1,419,1,419,3,419,7746,8,419,1,419,3,419,7749,8,419,1,420,1,420,3,420,7753,8,420,1,421,1,421,1,421,1,421,3,421,7759,8,421,1,422,3,422,7762,8,422,1,422,1,422,1,422,1,422,1,422,1,422,1,422,1,422,1,423,1,423,1,423,5,423,7775,8,423,10,423,12,423,7778,9,423,1,424,1,424,1,424,1,424,1,424,1,424,1,424,1,424,5,424,7788,8,424,10,424,12,424,7791,9,424,1,424,1,424,1,424,1,424,3,424,7797,8,424,1,425,1,425,1,425,1,426,1,426,1,426,1,426,1,426,1,426,1,426,5,426,7809,8,426,10,426,12,426,7812,9,426,1,426,1,426,1,426,1,426,1,426,1,427,1,427,1,428,1,428,1,428,1,428,1,428,3,428,7826,8,428,1,429,1,429,3,429,7830,8,429,1,430,1,430,1,430,1,430,1,430,1,430,1,430,1,430,3,430,7840,8,430,1,431,1,431,1,431,1,431,1,431,1,431,1,431,3,431,7849,8,431,3,431,7851,8,431,1,431,1,431,1,431,1,431,1,431,1,431,1,431,1,431,3,431,7861,8,431,3,431,7863,8,431,3,431,7865,8,431,1,432,1,432,1,432,1,432,1,432,5,432,7872,8,432,10,432,12,432,7875,9,432,1,433,1,433,1,433,1,433,1,433,5,433,7882,8,433,10,433,12,433,7885,9,433,1,434,1,434,3,434,7889,8,434,1,434,1,434,1,434,3,434,7894,8,434,1,434,1,434,1,434,3,434,7899,8,434,1,434,3,434,7902,8,434,1,435,1,435,1,435,1,435,1,435,1,435,1,435,1,435,1,435,1,435,1,435,1,435,3,435,7916,8,435,1,436,1,436,3,436,7920,8,436,1,436,1,436,1,436,5,436,7925,8,436,10,436,12,436,7928,9,436,1,437,1,437,1,437,1,437,1,437,1,437,1,437,1,437,1,438,1,438,1,438,1,438,3,438,7942,8,438,1,439,1,439,3,439,7946,8,439,1,439,1,439,3,439,7950,8,439,1,440,3,440,7953,8,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,3,440,7966,8,440,1,441,1,441,3,441,7970,8,441,1,442,1,442,1,442,3,442,7975,8,442,1,443,1,443,1,443,1,443,1,443,1,443,3,443,7983,8,443,1,444,1,444,1,445,1,445,3,445,7989,8,445,1,446,1,446,1,446,1,446,1,447,1,447,1,447,5,447,7998,8,447,10,447,12,447,8001,9,447,1,448,1,448,1,448,1,448,3,448,8007,8,448,1,448,1,448,1,449,1,449,3,449,8013,8,449,1,449,1,449,3,449,8017,8,449,3,449,8019,8,449,1,450,1,450,3,450,8023,8,450,1,451,1,451,1,451,1,451,3,451,8029,8,451,1,451,1,451,1,451,1,451,1,451,1,451,1,451,3,451,8038,8,451,1,451,1,451,1,451,1,451,3,451,8044,8,451,3,451,8046,8,451,3,451,8048,8,451,1,452,1,452,1,452,1,452,1,452,3,452,8055,8,452,1,453,1,453,3,453,8059,8,453,1,454,1,454,1,455,1,455,1,455,1,455,1,455,3,455,8068,8,455,1,456,1,456,3,456,8072,8,456,1,457,1,457,1,458,1,458,1,459,1,459,1,459,1,459,3,459,8082,8,459,1,460,1,460,1,460,5,460,8087,8,460,10,460,12,460,8090,9,460,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,3,461,8111,8,461,1,462,1,462,1,462,3,462,8116,8,462,1,463,4,463,8119,8,463,11,463,12,463,8120,1,463,1,463,1,463,3,463,8126,8,463,1,464,1,464,1,464,1,464,1,465,1,465,1,465,3,465,8135,8,465,1,465,1,465,3,465,8139,8,465,1,465,3,465,8142,8,465,1,466,1,466,1,466,3,466,8147,8,466,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,5,467,8158,8,467,10,467,12,467,8161,9,467,1,468,1,468,1,468,3,468,8166,8,468,1,469,1,469,1,469,1,469,5,469,8172,8,469,10,469,12,469,8175,9,469,3,469,8177,8,469,1,470,1,470,1,470,4,470,8182,8,470,11,470,12,470,8183,1,471,1,471,1,471,3,471,8189,8,471,1,471,1,471,1,471,1,471,1,471,1,471,1,471,1,471,1,471,1,471,1,471,1,471,1,471,1,471,1,471,1,471,1,471,1,471,1,471,3,471,8210,8,471,1,471,1,471,1,471,1,471,1,471,1,471,1,471,3,471,8219,8,471,1,471,1,471,1,471,3,471,8224,8,471,1,471,1,471,1,471,1,471,3,471,8230,8,471,1,471,1,471,1,471,3,471,8235,8,471,1,471,1,471,1,471,1,471,1,471,3,471,8242,8,471,1,471,1,471,1,471,3,471,8247,8,471,1,471,1,471,1,471,1,471,5,471,8253,8,471,10,471,12,471,8256,9,471,1,472,3,472,8259,8,472,1,472,1,472,1,472,1,472,1,472,3,472,8266,8,472,1,473,1,473,3,473,8270,8,473,1,474,3,474,8273,8,474,1,474,1,474,1,474,1,474,1,474,3,474,8280,8,474,1,475,1,475,1,475,3,475,8285,8,475,1,475,3,475,8288,8,475,1,475,1,475,1,475,1,475,1,475,3,475,8295,8,475,1,476,1,476,3,476,8299,8,476,1,477,1,477,1,477,1,477,1,477,1,477,1,477,3,477,8308,8,477,1,478,1,478,1,479,1,479,3,479,8314,8,479,1,479,1,479,1,479,1,479,1,479,1,479,3,479,8322,8,479,3,479,8324,8,479,1,480,1,480,1,480,5,480,8329,8,480,10,480,12,480,8332,9,480,1,481,1,481,3,481,8336,8,481,1,481,3,481,8339,8,481,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1,483,1,483,1,483,1,483,1,483,1,483,1,483,1,483,1,483,5,483,8360,8,483,10,483,12,483,8363,9,483,1,483,1,483,1,483,3,483,8368,8,483,1,484,1,484,1,484,1,485,1,485,1,485,1,485,1,485,1,485,3,485,8379,8,485,1,486,1,486,1,486,3,486,8384,8,486,1,487,1,487,1,487,3,487,8389,8,487,1,488,1,488,1,488,1,488,1,488,3,488,8396,8,488,1,488,3,488,8399,8,488,1,489,1,489,3,489,8403,8,489,1,490,1,490,1,490,5,490,8408,8,490,10,490,12,490,8411,9,490,1,491,1,491,1,491,1,491,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,5,492,8425,8,492,10,492,12,492,8428,9,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,5,492,8441,8,492,10,492,12,492,8444,9,492,3,492,8446,8,492,1,492,1,492,1,493,1,493,1,493,3,493,8453,8,493,1,493,1,493,3,493,8457,8,493,1,494,4,494,8460,8,494,11,494,12,494,8461,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,3,495,8472,8,495,1,496,1,496,1,496,5,496,8477,8,496,10,496,12,496,8480,9,496,1,497,1,497,1,497,1,497,1,497,1,497,3,497,8488,8,497,1,498,3,498,8491,8,498,1,498,1,498,1,498,3,498,8496,8,498,1,498,5,498,8499,8,498,10,498,12,498,8502,9,498,1,498,1,498,1,498,1,498,1,498,3,498,8509,8,498,3,498,8511,8,498,1,498,1,498,1,498,1,498,3,498,8517,8,498,1,499,1,499,1,499,1,499,1,499,1,499,1,499,1,499,1,499,1,499,1,499,3,499,8530,8,499,3,499,8532,8,499,1,500,1,500,1,500,1,500,3,500,8538,8,500,1,501,1,501,1,501,1,501,3,501,8544,8,501,1,501,3,501,8547,8,501,1,501,1,501,1,502,1,502,1,502,1,502,1,502,3,502,8556,8,502,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,503,3,503,8574,8,503,1,504,1,504,1,504,1,504,1,504,3,504,8581,8,504,1,505,1,505,3,505,8585,8,505,1,506,1,506,3,506,8589,8,506,1,507,1,507,1,507,1,507,1,507,1,507,1,508,1,508,1,508,1,509,1,509,1,509,1,509,1,509,3,509,8605,8,509,1,510,1,510,1,510,1,510,1,510,3,510,8612,8,510,1,511,1,511,1,511,1,511,1,511,1,511,3,511,8620,8,511,1,512,1,512,3,512,8624,8,512,1,513,1,513,1,513,1,513,1,513,3,513,8631,8,513,1,513,1,513,1,514,1,514,1,515,1,515,1,515,1,515,1,515,1,515,1,515,3,515,8644,8,515,1,516,1,516,1,516,1,516,1,516,1,516,1,516,1,516,1,516,1,516,1,516,1,516,1,516,1,516,3,516,8660,8,516,1,516,1,516,1,516,1,516,3,516,8666,8,516,1,516,1,516,1,516,1,516,3,516,8672,8,516,1,517,1,517,1,517,1,517,1,517,3,517,8679,8,517,1,518,1,518,1,518,3,518,8684,8,518,1,519,1,519,1,520,1,520,3,520,8690,8,520,1,521,1,521,1,521,5,521,8695,8,521,10,521,12,521,8698,9,521,1,522,1,522,1,522,5,522,8703,8,522,10,522,12,522,8706,9,522,1,523,1,523,1,523,5,523,8711,8,523,10,523,12,523,8714,9,523,1,524,1,524,3,524,8718,8,524,1,524,1,524,3,524,8722,8,524,1,524,1,524,1,524,1,524,3,524,8728,8,524,1,525,1,525,3,525,8732,8,525,1,525,1,525,3,525,8736,8,525,1,526,3,526,8739,8,526,1,526,1,526,1,527,1,527,3,527,8745,8,527,1,528,1,528,1,528,3,528,8750,8,528,1,528,1,528,1,528,1,528,1,528,1,528,1,528,1,528,1,528,1,528,1,528,1,528,1,528,1,528,3,528,8766,8,528,1,528,3,528,8769,8,528,3,528,8771,8,528,1,529,1,529,1,529,1,529,1,529,1,529,1,529,1,529,1,529,1,529,3,529,8783,8,529,3,529,8785,8,529,1,530,1,530,3,530,8789,8,530,1,530,1,530,1,530,1,530,3,530,8795,8,530,1,530,1,530,1,530,3,530,8800,8,530,1,531,1,531,1,531,1,531,5,531,8806,8,531,10,531,12,531,8809,9,531,1,532,3,532,8812,8,532,1,532,1,532,1,533,1,533,1,533,5,533,8819,8,533,10,533,12,533,8822,9,533,1,534,1,534,1,534,5,534,8827,8,534,10,534,12,534,8830,9,534,1,535,1,535,1,535,3,535,8835,8,535,1,536,3,536,8838,8,536,1,536,1,536,1,537,1,537,1,537,1,537,1,537,3,537,8847,8,537,1,538,1,538,1,538,3,538,8852,8,538,1,539,1,539,1,539,5,539,8857,8,539,10,539,12,539,8860,9,539,1,540,1,540,1,540,1,540,1,540,1,540,1,540,3,540,8869,8,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,3,540,8895,8,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,3,540,8906,8,540,5,540,8908,8,540,10,540,12,540,8911,9,540,1,541,1,541,1,541,1,541,1,541,3,541,8918,8,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,1,541,3,541,8941,8,541,1,541,1,541,1,541,1,541,1,541,1,541,3,541,8949,8,541,1,542,1,542,1,543,1,543,1,543,1,543,1,543,1,543,3,543,8959,8,543,1,543,1,543,1,543,1,543,1,543,1,543,1,543,1,543,1,543,1,543,1,543,1,543,3,543,8973,8,543,1,543,1,543,1,544,1,544,1,544,1,544,1,544,1,544,3,544,8983,8,544,1,545,1,545,3,545,8987,8,545,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,3,546,9001,8,546,1,546,1,546,1,546,1,546,1,546,3,546,9008,8,546,1,546,1,546,1,546,1,546,1,546,3,546,9015,8,546,1,546,1,546,1,546,1,546,1,546,3,546,9022,8,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,3,546,9047,8,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,3,546,9076,8,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,3,546,9115,8,546,3,546,9117,8,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,3,546,9145,8,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,546,3,546,9166,8,546,1,547,1,547,1,547,1,547,1,547,3,547,9173,8,547,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,3,548,9186,8,548,1,549,1,549,1,549,1,549,1,549,1,550,1,550,1,550,5,550,9196,8,550,10,550,12,550,9199,9,550,1,551,1,551,1,551,3,551,9204,8,551,1,552,1,552,1,553,1,553,1,553,1,553,1,553,3,553,9213,8,553,1,554,1,554,1,554,1,554,1,554,1,554,1,554,1,554,1,554,1,554,1,554,1,554,1,554,1,554,1,554,3,554,9230,8,554,1,555,1,555,1,555,1,556,1,556,1,556,1,556,1,556,1,556,1,556,3,556,9242,8,556,1,557,1,557,1,557,1,557,1,557,1,557,1,557,3,557,9251,8,557,1,558,1,558,1,558,3,558,9256,8,558,1,559,1,559,1,559,5,559,9261,8,559,10,559,12,559,9264,9,559,1,560,1,560,1,560,1,560,1,561,1,561,1,561,3,561,9273,8,561,1,561,3,561,9276,8,561,1,562,1,562,1,562,1,562,1,562,1,562,1,562,1,563,1,563,3,563,9287,8,563,1,564,1,564,1,564,1,564,3,564,9293,8,564,1,565,1,565,1,565,1,565,1,565,1,565,1,565,1,565,1,565,1,565,1,565,1,565,1,565,3,565,9308,8,565,1,566,1,566,1,566,1,566,1,566,1,566,3,566,9316,8,566,1,567,1,567,1,567,1,567,1,567,1,567,1,567,3,567,9325,8,567,1,568,1,568,1,568,1,568,1,568,1,568,1,568,3,568,9334,8,568,1,568,3,568,9337,8,568,1,569,1,569,1,569,3,569,9342,8,569,1,569,1,569,1,569,1,569,1,569,1,569,1,569,3,569,9351,8,569,1,570,1,570,1,570,3,570,9356,8,570,1,570,1,570,1,571,1,571,1,571,1,571,1,571,1,571,1,572,1,572,1,573,1,573,3,573,9370,8,573,1,574,1,574,1,575,1,575,1,575,1,575,1,575,1,575,3,575,9380,8,575,1,576,1,576,1,576,1,576,1,576,1,576,3,576,9388,8,576,1,577,1,577,1,577,1,577,1,577,1,577,1,577,1,577,1,577,1,577,1,577,1,577,3,577,9402,8,577,1,578,1,578,1,578,5,578,9407,8,578,10,578,12,578,9410,9,578,1,579,1,579,1,579,5,579,9415,8,579,10,579,12,579,9418,9,579,1,580,1,580,1,580,1,580,1,580,3,580,9425,8,580,1,581,1,581,1,581,5,581,9430,8,581,10,581,12,581,9433,9,581,1,582,1,582,1,582,3,582,9438,8,582,1,582,1,582,1,583,1,583,1,583,5,583,9445,8,583,10,583,12,583,9448,9,583,1,584,1,584,1,584,1,584,1,584,3,584,9455,8,584,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,3,585,9465,8,585,1,586,1,586,1,587,1,587,1,587,1,587,1,587,1,587,1,587,3,587,9476,8,587,1,588,1,588,1,588,1,588,1,588,3,588,9483,8,588,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,3,589,9512,8,589,1,590,1,590,1,590,1,590,1,590,1,590,1,590,3,590,9521,8,590,1,591,1,591,1,591,1,591,1,591,3,591,9528,8,591,1,592,1,592,1,592,1,592,1,592,1,592,1,593,4,593,9537,8,593,11,593,12,593,9538,1,594,1,594,1,594,1,594,1,594,1,595,1,595,1,595,3,595,9549,8,595,1,596,1,596,3,596,9553,8,596,1,597,1,597,3,597,9557,8,597,1,598,1,598,1,598,3,598,9562,8,598,1,598,1,598,1,598,3,598,9567,8,598,1,598,1,598,3,598,9571,8,598,3,598,9573,8,598,1,598,3,598,9576,8,598,1,599,4,599,9579,8,599,11,599,12,599,9580,1,600,5,600,9584,8,600,10,600,12,600,9587,9,600,1,601,1,601,3,601,9591,8,601,1,602,1,602,1,602,5,602,9596,8,602,10,602,12,602,9599,9,602,1,603,1,603,1,603,1,603,1,603,1,603,3,603,9607,8,603,3,603,9609,8,603,1,604,1,604,1,604,5,604,9614,8,604,10,604,12,604,9617,9,604,1,605,1,605,1,606,1,606,1,606,5,606,9624,8,606,10,606,12,606,9627,9,606,1,607,1,607,1,608,1,608,1,608,5,608,9634,8,608,10,608,12,608,9637,9,608,1,609,1,609,1,610,1,610,1,610,5,610,9644,8,610,10,610,12,610,9647,9,610,1,611,1,611,1,612,1,612,1,613,1,613,1,614,1,614,1,614,5,614,9658,8,614,10,614,12,614,9661,9,614,1,615,1,615,3,615,9665,8,615,1,616,1,616,1,616,5,616,9670,8,616,10,616,12,616,9673,9,616,1,617,1,617,1,618,1,618,1,619,1,619,1,620,1,620,1,620,1,620,1,620,1,620,1,620,3,620,9688,8,620,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,3,621,9703,8,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,3,621,9717,8,621,1,621,1,621,1,621,3,621,9722,8,621,1,622,1,622,1,623,1,623,1,624,1,624,1,625,1,625,1,626,1,626,1,626,1,627,1,627,1,627,1,627,5,627,9739,8,627,10,627,12,627,9742,9,627,1,627,1,627,3,627,9746,8,627,1,628,1,628,1,628,3,628,9751,8,628,1,629,1,629,1,629,1,629,1,629,3,629,9758,8,629,1,630,1,630,1,630,3,630,9763,8,630,1,631,1,631,1,631,5,631,9768,8,631,10,631,12,631,9771,9,631,1,632,1,632,1,632,1,632,1,632,1,632,3,632,9779,8,632,1,633,1,633,1,633,1,633,3,633,9785,8,633,1,634,1,634,1,634,1,634,3,634,9791,8,634,1,635,1,635,1,635,1,635,3,635,9797,8,635,1,636,1,636,1,636,1,636,1,636,1,636,3,636,9805,8,636,1,637,1,637,1,637,1,637,1,637,1,637,1,637,3,637,9814,8,637,1,638,1,638,1,639,1,639,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,3,640,9872,8,640,1,641,1,641,1,642,1,642,1,643,1,643,1,644,1,644,1,644,1,644,1,645,5,645,9885,8,645,10,645,12,645,9888,9,645,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,3,646,9910,8,646,1,647,1,647,1,648,1,648,1,648,1,648,3,648,9918,8,648,1,649,1,649,3,649,9922,8,649,1,650,1,650,1,650,1,650,1,650,1,650,1,650,1,651,1,651,1,651,3,651,9934,8,651,3,651,9936,8,651,1,652,1,652,1,653,4,653,9941,8,653,11,653,12,653,9942,1,654,1,654,1,654,1,654,1,655,1,655,1,655,3,655,9952,8,655,1,656,1,656,1,656,1,656,1,656,1,656,1,656,1,656,1,656,1,656,1,656,1,656,1,656,1,656,1,656,1,656,3,656,9970,8,656,1,656,1,656,1,657,1,657,1,657,1,657,3,657,9978,8,657,1,658,1,658,1,659,1,659,1,659,1,659,1,659,3,659,9987,8,659,1,660,1,660,1,660,5,660,9992,8,660,10,660,12,660,9995,9,660,1,661,1,661,1,661,1,662,1,662,1,663,1,663,3,663,10004,8,663,1,664,1,664,1,665,1,665,3,665,10010,8,665,1,666,1,666,1,667,1,667,1,667,3,667,10017,8,667,1,668,1,668,1,668,3,668,10022,8,668,1,669,1,669,1,669,1,669,3,669,10028,8,669,1,670,1,670,3,670,10032,8,670,1,671,1,671,1,672,5,672,10037,8,672,10,672,12,672,10040,9,672,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,1,673,3,673,10069,8,673,1,674,1,674,1,674,1,674,1,675,1,675,1,675,1,675,1,675,1,675,1,675,1,675,1,675,1,675,1,675,1,675,1,675,1,675,3,675,10089,8,675,1,676,1,676,3,676,10093,8,676,1,677,1,677,1,677,1,677,1,677,1,678,1,678,1,678,1,678,1,678,1,678,1,679,1,679,1,679,3,679,10109,8,679,1,680,1,680,1,680,5,680,10114,8,680,10,680,12,680,10117,9,680,1,681,1,681,1,681,1,681,1,682,1,682,1,683,1,683,1,684,1,684,3,684,10129,8,684,1,684,1,684,1,684,1,684,5,684,10135,8,684,10,684,12,684,10138,9,684,1,685,1,685,1,685,1,685,1,685,1,685,1,685,1,685,1,685,1,685,1,686,1,686,1,686,1,686,1,686,5,686,10155,8,686,10,686,12,686,10158,9,686,1,687,1,687,1,687,3,687,10163,8,687,1,688,1,688,1,688,1,688,1,688,1,688,1,688,1,688,1,689,1,689,3,689,10175,8,689,1,690,4,690,10178,8,690,11,690,12,690,10179,1,691,1,691,1,691,1,691,1,691,1,692,1,692,1,692,3,692,10190,8,692,1,693,1,693,1,693,1,694,1,694,1,694,1,694,1,694,1,695,1,695,1,695,1,695,1,695,1,696,1,696,1,696,1,696,1,696,1,696,1,696,1,696,1,696,1,696,1,696,1,696,1,696,1,696,1,696,1,696,1,696,3,696,10222,8,696,1,697,1,697,1,697,3,697,10227,8,697,1,698,1,698,1,698,1,698,1,698,5,698,10234,8,698,10,698,12,698,10237,9,698,1,698,1,698,3,698,10241,8,698,1,699,1,699,3,699,10245,8,699,1,700,1,700,1,700,3,700,10250,8,700,1,701,1,701,1,702,1,702,1,702,1,702,1,702,1,702,1,702,1,702,1,702,1,703,1,703,1,703,3,703,10266,8,703,1,704,1,704,1,704,1,704,1,704,1,705,1,705,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,3,706,10284,8,706,1,706,3,706,10287,8,706,1,706,1,706,1,707,1,707,3,707,10293,8,707,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,1,708,3,708,10321,8,708,1,709,1,709,1,709,1,709,1,709,1,709,1,709,1,709,3,709,10331,8,709,1,710,1,710,1,710,4,710,10336,8,710,11,710,12,710,10337,3,710,10340,8,710,1,711,1,711,1,711,1,711,1,711,5,711,10347,8,711,10,711,12,711,10350,9,711,3,711,10352,8,711,1,712,1,712,1,712,1,712,1,713,1,713,1,713,1,713,1,713,1,714,1,714,1,714,3,714,10366,8,714,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,716,1,716,1,716,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,3,717,10387,8,717,1,717,1,717,1,718,1,718,1,718,3,718,10394,8,718,1,719,1,719,1,719,5,719,10399,8,719,10,719,12,719,10402,9,719,1,720,1,720,1,720,3,720,10407,8,720,1,720,3,720,10410,8,720,1,721,1,721,1,721,3,721,10415,8,721,1,721,1,721,1,721,1,721,1,721,1,721,1,721,1,721,3,721,10425,8,721,1,721,1,721,1,721,1,721,1,721,5,721,10432,8,721,10,721,12,721,10435,9,721,1,721,1,721,3,721,10439,8,721,3,721,10441,8,721,1,721,1,721,1,722,1,722,1,722,1,722,1,722,3,722,10450,8,722,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,724,1,724,1,725,1,725,1,725,3,725,10465,8,725,1,726,1,726,1,726,1,726,1,726,1,726,1,726,1,726,1,726,1,726,1,726,1,726,1,726,1,726,1,726,3,726,10482,8,726,3,726,10484,8,726,1,727,1,727,1,727,1,727,1,727,1,728,1,728,1,728,1,728,1,729,1,729,1,729,1,730,1,730,1,730,1,730,1,731,1,731,1,731,1,731,1,732,1,732,3,732,10508,8,732,1,732,1,732,3,732,10512,8,732,1,733,1,733,1,733,1,733,1,733,1,733,1,733,1,733,1,733,3,733,10523,8,733,1,733,3,733,10526,8,733,1,734,1,734,3,734,10530,8,734,1,735,1,735,1,735,3,735,10535,8,735,1,736,4,736,10538,8,736,11,736,12,736,10539,1,737,1,737,1,737,1,737,1,737,1,738,1,738,1,738,5,738,10550,8,738,10,738,12,738,10553,9,738,1,739,1,739,1,739,3,739,10558,8,739,1,740,1,740,3,740,10562,8,740,1,741,1,741,3,741,10566,8,741,1,742,1,742,3,742,10570,8,742,1,743,1,743,1,743,3,743,10575,8,743,1,744,1,744,3,744,10579,8,744,1,745,1,745,1,746,1,746,3,746,10585,8,746,1,746,1,746,1,746,1,746,1,746,1,746,1,747,1,747,1,748,1,748,1,749,1,749,1,750,1,750,1,751,1,751,1,751,1,752,1,752,3,752,10606,8,752,1,752,1,752,3,752,10610,8,752,1,753,1,753,1,753,0,1,1080,754,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,486,488,490,492,494,496,498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752,754,756,758,760,762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796,798,800,802,804,806,808,810,812,814,816,818,820,822,824,826,828,830,832,834,836,838,840,842,844,846,848,850,852,854,856,858,860,862,864,866,868,870,872,874,876,878,880,882,884,886,888,890,892,894,896,898,900,902,904,906,908,910,912,914,916,918,920,922,924,926,928,930,932,934,936,938,940,942,944,946,948,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1008,1010,1012,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066,1068,1070,1072,1074,1076,1078,1080,1082,1084,1086,1088,1090,1092,1094,1096,1098,1100,1102,1104,1106,1108,1110,1112,1114,1116,1118,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1154,1156,1158,1160,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1216,1218,1220,1222,1224,1226,1228,1230,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1328,1330,1332,1334,1336,1338,1340,1342,1344,1346,1348,1350,1352,1354,1356,1358,1360,1362,1364,1366,1368,1370,1372,1374,1376,1378,1380,1382,1384,1386,1388,1390,1392,1394,1396,1398,1400,1402,1404,1406,1408,1410,1412,1414,1416,1418,1420,1422,1424,1426,1428,1430,1432,1434,1436,1438,1440,1442,1444,1446,1448,1450,1452,1454,1456,1458,1460,1462,1464,1466,1468,1470,1472,1474,1476,1478,1480,1482,1484,1486,1488,1490,1492,1494,1496,1498,1500,1502,1504,1506,0,69,2,0,195,195,357,357,2,0,133,133,191,191,2,0,245,245,325,325,2,0,10,10,94,94,2,0,162,162,356,356,2,0,180,180,221,221,5,0,30,30,281,281,322,322,345,345,347,347,2,0,139,139,305,305,2,0,30,30,99,99,2,0,64,64,94,94,2,0,345,345,347,347,2,0,200,200,224,224,9,0,30,30,160,160,165,165,179,179,219,219,227,227,335,335,338,338,438,438,3,0,113,113,277,277,329,329,2,0,53,53,78,78,3,0,173,173,252,252,255,255,5,0,30,30,88,88,182,182,232,232,362,362,2,0,92,92,226,226,1,0,448,449,2,0,92,92,407,407,2,0,334,334,407,407,2,0,211,211,289,289,2,0,314,314,445,445,2,0,64,64,68,68,5,0,212,212,322,322,343,343,455,455,457,457,5,0,212,212,322,322,343,343,354,354,455,456,2,0,10,10,53,53,3,0,211,211,289,289,442,442,2,0,92,92,342,342,3,0,109,109,128,128,344,344,4,0,88,88,182,182,232,232,362,362,2,0,151,151,245,245,2,0,306,306,326,326,1,0,31,32,2,0,99,99,342,342,2,0,201,201,327,327,2,0,59,59,97,97,2,0,213,213,245,245,2,0,313,313,407,407,2,0,207,207,261,261,4,0,113,113,115,115,119,119,126,126,2,0,353,353,477,477,2,0,384,385,399,399,1,0,384,385,1,0,411,412,1,0,18,19,2,0,117,117,122,122,5,0,10,10,16,17,21,21,23,23,25,25,1,0,12,13,3,0,9,9,14,14,27,27,2,0,30,30,56,56,3,0,39,39,73,73,95,95,2,0,166,166,188,188,2,0,297,297,450,450,2,0,208,208,282,282,3,0,30,30,34,34,90,90,6,0,9,10,12,17,21,21,23,23,25,25,27,27,2,0,20,20,22,22,1,0,483,486,11,0,124,124,129,249,251,252,254,303,305,379,433,452,455,469,471,471,473,473,475,475,478,488,5,0,106,118,120,123,125,125,127,128,472,472,4,0,30,52,54,70,72,105,454,454,5,0,304,304,418,424,504,504,513,513,521,635,2,0,62,62,116,116,2,0,10,10,20,20,2,0,167,167,507,507,2,0,144,144,210,210,36,0,33,33,35,35,43,45,53,53,57,57,61,61,92,92,116,116,123,123,130,130,144,144,153,153,157,157,161,161,167,167,172,172,207,207,210,210,232,232,240,240,258,258,261,262,272,272,286,286,300,300,306,306,312,312,316,317,326,326,353,353,433,434,477,477,490,502,506,512,514,518,520,520,3,0,66,66,99,99,311,311,11574,0,1509,1,0,0,0,2,1513,1,0,0,0,4,1523,1,0,0,0,6,1647,1,0,0,0,8,1649,1,0,0,0,10,1653,1,0,0,0,12,1658,1,0,0,0,14,1663,1,0,0,0,16,1669,1,0,0,0,18,1691,1,0,0,0,20,1704,1,0,0,0,22,1706,1,0,0,0,24,1712,1,0,0,0,26,1722,1,0,0,0,28,1724,1,0,0,0,30,1733,1,0,0,0,32,1741,1,0,0,0,34,1743,1,0,0,0,36,1761,1,0,0,0,38,1766,1,0,0,0,40,1775,1,0,0,0,42,1777,1,0,0,0,44,1791,1,0,0,0,46,1793,1,0,0,0,48,1823,1,0,0,0,50,1825,1,0,0,0,52,1833,1,0,0,0,54,1843,1,0,0,0,56,1850,1,0,0,0,58,1856,1,0,0,0,60,1873,1,0,0,0,62,1878,1,0,0,0,64,1882,1,0,0,0,66,1884,1,0,0,0,68,1895,1,0,0,0,70,1899,1,0,0,0,72,1904,1,0,0,0,74,1909,1,0,0,0,76,1911,1,0,0,0,78,1923,1,0,0,0,80,1930,1,0,0,0,82,1932,1,0,0,0,84,1934,1,0,0,0,86,1936,1,0,0,0,88,2039,1,0,0,0,90,2041,1,0,0,0,92,2057,1,0,0,0,94,2059,1,0,0,0,96,2304,1,0,0,0,98,2311,1,0,0,0,100,2316,1,0,0,0,102,2321,1,0,0,0,104,2326,1,0,0,0,106,2334,1,0,0,0,108,2336,1,0,0,0,110,2343,1,0,0,0,112,2345,1,0,0,0,114,2353,1,0,0,0,116,2365,1,0,0,0,118,2381,1,0,0,0,120,2409,1,0,0,0,122,2411,1,0,0,0,124,2414,1,0,0,0,126,2422,1,0,0,0,128,2427,1,0,0,0,130,2458,1,0,0,0,132,2460,1,0,0,0,134,2493,1,0,0,0,136,2495,1,0,0,0,138,2500,1,0,0,0,140,2512,1,0,0,0,142,2549,1,0,0,0,144,2557,1,0,0,0,146,2559,1,0,0,0,148,2567,1,0,0,0,150,2585,1,0,0,0,152,2587,1,0,0,0,154,2636,1,0,0,0,156,2640,1,0,0,0,158,2647,1,0,0,0,160,2649,1,0,0,0,162,2657,1,0,0,0,164,2668,1,0,0,0,166,2672,1,0,0,0,168,2674,1,0,0,0,170,2679,1,0,0,0,172,2689,1,0,0,0,174,2700,1,0,0,0,176,2742,1,0,0,0,178,2747,1,0,0,0,180,2754,1,0,0,0,182,2756,1,0,0,0,184,2764,1,0,0,0,186,2767,1,0,0,0,188,2774,1,0,0,0,190,2834,1,0,0,0,192,2841,1,0,0,0,194,2843,1,0,0,0,196,2851,1,0,0,0,198,2859,1,0,0,0,200,2864,1,0,0,0,202,2866,1,0,0,0,204,2874,1,0,0,0,206,2890,1,0,0,0,208,2901,1,0,0,0,210,2903,1,0,0,0,212,2907,1,0,0,0,214,2917,1,0,0,0,216,2925,1,0,0,0,218,2929,1,0,0,0,220,2931,1,0,0,0,222,2938,1,0,0,0,224,2960,1,0,0,0,226,2965,1,0,0,0,228,2972,1,0,0,0,230,2984,1,0,0,0,232,2989,1,0,0,0,234,2996,1,0,0,0,236,2998,1,0,0,0,238,3002,1,0,0,0,240,3016,1,0,0,0,242,3027,1,0,0,0,244,3040,1,0,0,0,246,3054,1,0,0,0,248,3056,1,0,0,0,250,3072,1,0,0,0,252,3078,1,0,0,0,254,3087,1,0,0,0,256,3099,1,0,0,0,258,3113,1,0,0,0,260,3116,1,0,0,0,262,3151,1,0,0,0,264,3159,1,0,0,0,266,3161,1,0,0,0,268,3169,1,0,0,0,270,3185,1,0,0,0,272,3192,1,0,0,0,274,3198,1,0,0,0,276,3202,1,0,0,0,278,3204,1,0,0,0,280,3215,1,0,0,0,282,3217,1,0,0,0,284,3225,1,0,0,0,286,3247,1,0,0,0,288,3249,1,0,0,0,290,3259,1,0,0,0,292,3401,1,0,0,0,294,3403,1,0,0,0,296,3421,1,0,0,0,298,3424,1,0,0,0,300,3445,1,0,0,0,302,3453,1,0,0,0,304,3455,1,0,0,0,306,3463,1,0,0,0,308,3468,1,0,0,0,310,3483,1,0,0,0,312,3485,1,0,0,0,314,3488,1,0,0,0,316,3490,1,0,0,0,318,3521,1,0,0,0,320,3526,1,0,0,0,322,3528,1,0,0,0,324,3533,1,0,0,0,326,3599,1,0,0,0,328,3601,1,0,0,0,330,3616,1,0,0,0,332,3624,1,0,0,0,334,3647,1,0,0,0,336,3651,1,0,0,0,338,3671,1,0,0,0,340,3673,1,0,0,0,342,3682,1,0,0,0,344,3693,1,0,0,0,346,3708,1,0,0,0,348,3717,1,0,0,0,350,3722,1,0,0,0,352,3727,1,0,0,0,354,3732,1,0,0,0,356,3734,1,0,0,0,358,3736,1,0,0,0,360,3745,1,0,0,0,362,3785,1,0,0,0,364,3791,1,0,0,0,366,3793,1,0,0,0,368,3808,1,0,0,0,370,3813,1,0,0,0,372,3816,1,0,0,0,374,3820,1,0,0,0,376,3825,1,0,0,0,378,3827,1,0,0,0,380,3829,1,0,0,0,382,3837,1,0,0,0,384,3839,1,0,0,0,386,3847,1,0,0,0,388,3849,1,0,0,0,390,3853,1,0,0,0,392,3866,1,0,0,0,394,3871,1,0,0,0,396,3876,1,0,0,0,398,3890,1,0,0,0,400,3918,1,0,0,0,402,3920,1,0,0,0,404,3928,1,0,0,0,406,3934,1,0,0,0,408,3942,1,0,0,0,410,3954,1,0,0,0,412,3956,1,0,0,0,414,4073,1,0,0,0,416,4075,1,0,0,0,418,4086,1,0,0,0,420,4097,1,0,0,0,422,4099,1,0,0,0,424,4110,1,0,0,0,426,4114,1,0,0,0,428,4159,1,0,0,0,430,4165,1,0,0,0,432,4167,1,0,0,0,434,4183,1,0,0,0,436,4218,1,0,0,0,438,4223,1,0,0,0,440,4232,1,0,0,0,442,4234,1,0,0,0,444,4259,1,0,0,0,446,4261,1,0,0,0,448,4281,1,0,0,0,450,4301,1,0,0,0,452,4321,1,0,0,0,454,4323,1,0,0,0,456,4329,1,0,0,0,458,4441,1,0,0,0,460,4464,1,0,0,0,462,4469,1,0,0,0,464,4484,1,0,0,0,466,4486,1,0,0,0,468,4488,1,0,0,0,470,4496,1,0,0,0,472,4502,1,0,0,0,474,4506,1,0,0,0,476,4514,1,0,0,0,478,4525,1,0,0,0,480,4711,1,0,0,0,482,4715,1,0,0,0,484,4853,1,0,0,0,486,4858,1,0,0,0,488,4862,1,0,0,0,490,4868,1,0,0,0,492,4936,1,0,0,0,494,4938,1,0,0,0,496,4942,1,0,0,0,498,4944,1,0,0,0,500,4971,1,0,0,0,502,4988,1,0,0,0,504,4990,1,0,0,0,506,5007,1,0,0,0,508,5047,1,0,0,0,510,5049,1,0,0,0,512,5060,1,0,0,0,514,5066,1,0,0,0,516,5068,1,0,0,0,518,5092,1,0,0,0,520,5098,1,0,0,0,522,5104,1,0,0,0,524,5106,1,0,0,0,526,5124,1,0,0,0,528,5153,1,0,0,0,530,5155,1,0,0,0,532,5202,1,0,0,0,534,5207,1,0,0,0,536,5209,1,0,0,0,538,5228,1,0,0,0,540,5241,1,0,0,0,542,5256,1,0,0,0,544,5261,1,0,0,0,546,5265,1,0,0,0,548,5270,1,0,0,0,550,5277,1,0,0,0,552,5279,1,0,0,0,554,5304,1,0,0,0,556,5306,1,0,0,0,558,5314,1,0,0,0,560,5334,1,0,0,0,562,5336,1,0,0,0,564,5344,1,0,0,0,566,5362,1,0,0,0,568,5371,1,0,0,0,570,5377,1,0,0,0,572,5379,1,0,0,0,574,5395,1,0,0,0,576,5397,1,0,0,0,578,5412,1,0,0,0,580,5420,1,0,0,0,582,5423,1,0,0,0,584,5432,1,0,0,0,586,5473,1,0,0,0,588,5483,1,0,0,0,590,5490,1,0,0,0,592,5492,1,0,0,0,594,5507,1,0,0,0,596,5509,1,0,0,0,598,5512,1,0,0,0,600,5520,1,0,0,0,602,5567,1,0,0,0,604,5581,1,0,0,0,606,5595,1,0,0,0,608,5619,1,0,0,0,610,5626,1,0,0,0,612,5631,1,0,0,0,614,5639,1,0,0,0,616,5642,1,0,0,0,618,5646,1,0,0,0,620,5653,1,0,0,0,622,5689,1,0,0,0,624,5696,1,0,0,0,626,5698,1,0,0,0,628,5711,1,0,0,0,630,5713,1,0,0,0,632,5758,1,0,0,0,634,5760,1,0,0,0,636,5830,1,0,0,0,638,5832,1,0,0,0,640,5834,1,0,0,0,642,5842,1,0,0,0,644,5856,1,0,0,0,646,6295,1,0,0,0,648,6299,1,0,0,0,650,6304,1,0,0,0,652,6375,1,0,0,0,654,6589,1,0,0,0,656,6591,1,0,0,0,658,6599,1,0,0,0,660,6615,1,0,0,0,662,6622,1,0,0,0,664,6624,1,0,0,0,666,6815,1,0,0,0,668,6817,1,0,0,0,670,6825,1,0,0,0,672,6833,1,0,0,0,674,6862,1,0,0,0,676,6864,1,0,0,0,678,6873,1,0,0,0,680,6881,1,0,0,0,682,6920,1,0,0,0,684,6934,1,0,0,0,686,6936,1,0,0,0,688,6956,1,0,0,0,690,6958,1,0,0,0,692,6971,1,0,0,0,694,6975,1,0,0,0,696,6977,1,0,0,0,698,6982,1,0,0,0,700,6984,1,0,0,0,702,6991,1,0,0,0,704,6993,1,0,0,0,706,7e3,1,0,0,0,708,7055,1,0,0,0,710,7060,1,0,0,0,712,7072,1,0,0,0,714,7074,1,0,0,0,716,7090,1,0,0,0,718,7092,1,0,0,0,720,7124,1,0,0,0,722,7126,1,0,0,0,724,7129,1,0,0,0,726,7141,1,0,0,0,728,7143,1,0,0,0,730,7160,1,0,0,0,732,7162,1,0,0,0,734,7173,1,0,0,0,736,7178,1,0,0,0,738,7199,1,0,0,0,740,7205,1,0,0,0,742,7210,1,0,0,0,744,7217,1,0,0,0,746,7243,1,0,0,0,748,7247,1,0,0,0,750,7249,1,0,0,0,752,7328,1,0,0,0,754,7330,1,0,0,0,756,7356,1,0,0,0,758,7361,1,0,0,0,760,7382,1,0,0,0,762,7394,1,0,0,0,764,7396,1,0,0,0,766,7404,1,0,0,0,768,7406,1,0,0,0,770,7411,1,0,0,0,772,7416,1,0,0,0,774,7420,1,0,0,0,776,7427,1,0,0,0,778,7429,1,0,0,0,780,7441,1,0,0,0,782,7466,1,0,0,0,784,7477,1,0,0,0,786,7479,1,0,0,0,788,7484,1,0,0,0,790,7489,1,0,0,0,792,7491,1,0,0,0,794,7502,1,0,0,0,796,7508,1,0,0,0,798,7537,1,0,0,0,800,7544,1,0,0,0,802,7556,1,0,0,0,804,7559,1,0,0,0,806,7568,1,0,0,0,808,7592,1,0,0,0,810,7594,1,0,0,0,812,7596,1,0,0,0,814,7604,1,0,0,0,816,7620,1,0,0,0,818,7631,1,0,0,0,820,7636,1,0,0,0,822,7638,1,0,0,0,824,7669,1,0,0,0,826,7688,1,0,0,0,828,7701,1,0,0,0,830,7709,1,0,0,0,832,7721,1,0,0,0,834,7723,1,0,0,0,836,7734,1,0,0,0,838,7748,1,0,0,0,840,7752,1,0,0,0,842,7758,1,0,0,0,844,7761,1,0,0,0,846,7771,1,0,0,0,848,7796,1,0,0,0,850,7798,1,0,0,0,852,7801,1,0,0,0,854,7818,1,0,0,0,856,7825,1,0,0,0,858,7829,1,0,0,0,860,7839,1,0,0,0,862,7864,1,0,0,0,864,7866,1,0,0,0,866,7876,1,0,0,0,868,7901,1,0,0,0,870,7915,1,0,0,0,872,7917,1,0,0,0,874,7929,1,0,0,0,876,7941,1,0,0,0,878,7943,1,0,0,0,880,7965,1,0,0,0,882,7969,1,0,0,0,884,7974,1,0,0,0,886,7976,1,0,0,0,888,7984,1,0,0,0,890,7988,1,0,0,0,892,7990,1,0,0,0,894,7994,1,0,0,0,896,8002,1,0,0,0,898,8018,1,0,0,0,900,8022,1,0,0,0,902,8047,1,0,0,0,904,8049,1,0,0,0,906,8058,1,0,0,0,908,8060,1,0,0,0,910,8067,1,0,0,0,912,8071,1,0,0,0,914,8073,1,0,0,0,916,8075,1,0,0,0,918,8081,1,0,0,0,920,8083,1,0,0,0,922,8110,1,0,0,0,924,8115,1,0,0,0,926,8125,1,0,0,0,928,8127,1,0,0,0,930,8131,1,0,0,0,932,8146,1,0,0,0,934,8148,1,0,0,0,936,8165,1,0,0,0,938,8176,1,0,0,0,940,8178,1,0,0,0,942,8234,1,0,0,0,944,8258,1,0,0,0,946,8269,1,0,0,0,948,8272,1,0,0,0,950,8294,1,0,0,0,952,8296,1,0,0,0,954,8307,1,0,0,0,956,8309,1,0,0,0,958,8323,1,0,0,0,960,8325,1,0,0,0,962,8333,1,0,0,0,964,8340,1,0,0,0,966,8367,1,0,0,0,968,8369,1,0,0,0,970,8378,1,0,0,0,972,8383,1,0,0,0,974,8388,1,0,0,0,976,8398,1,0,0,0,978,8402,1,0,0,0,980,8404,1,0,0,0,982,8412,1,0,0,0,984,8416,1,0,0,0,986,8449,1,0,0,0,988,8459,1,0,0,0,990,8471,1,0,0,0,992,8473,1,0,0,0,994,8487,1,0,0,0,996,8516,1,0,0,0,998,8531,1,0,0,0,1e3,8537,1,0,0,0,1002,8543,1,0,0,0,1004,8555,1,0,0,0,1006,8573,1,0,0,0,1008,8580,1,0,0,0,1010,8584,1,0,0,0,1012,8588,1,0,0,0,1014,8590,1,0,0,0,1016,8596,1,0,0,0,1018,8599,1,0,0,0,1020,8606,1,0,0,0,1022,8619,1,0,0,0,1024,8623,1,0,0,0,1026,8625,1,0,0,0,1028,8634,1,0,0,0,1030,8643,1,0,0,0,1032,8671,1,0,0,0,1034,8673,1,0,0,0,1036,8683,1,0,0,0,1038,8685,1,0,0,0,1040,8687,1,0,0,0,1042,8691,1,0,0,0,1044,8699,1,0,0,0,1046,8707,1,0,0,0,1048,8715,1,0,0,0,1050,8729,1,0,0,0,1052,8738,1,0,0,0,1054,8742,1,0,0,0,1056,8746,1,0,0,0,1058,8772,1,0,0,0,1060,8786,1,0,0,0,1062,8801,1,0,0,0,1064,8811,1,0,0,0,1066,8815,1,0,0,0,1068,8823,1,0,0,0,1070,8831,1,0,0,0,1072,8837,1,0,0,0,1074,8841,1,0,0,0,1076,8848,1,0,0,0,1078,8853,1,0,0,0,1080,8868,1,0,0,0,1082,8948,1,0,0,0,1084,8950,1,0,0,0,1086,8952,1,0,0,0,1088,8982,1,0,0,0,1090,8986,1,0,0,0,1092,9165,1,0,0,0,1094,9172,1,0,0,0,1096,9185,1,0,0,0,1098,9187,1,0,0,0,1100,9192,1,0,0,0,1102,9200,1,0,0,0,1104,9205,1,0,0,0,1106,9212,1,0,0,0,1108,9229,1,0,0,0,1110,9231,1,0,0,0,1112,9241,1,0,0,0,1114,9250,1,0,0,0,1116,9255,1,0,0,0,1118,9257,1,0,0,0,1120,9265,1,0,0,0,1122,9275,1,0,0,0,1124,9277,1,0,0,0,1126,9286,1,0,0,0,1128,9292,1,0,0,0,1130,9307,1,0,0,0,1132,9315,1,0,0,0,1134,9324,1,0,0,0,1136,9336,1,0,0,0,1138,9350,1,0,0,0,1140,9352,1,0,0,0,1142,9359,1,0,0,0,1144,9365,1,0,0,0,1146,9369,1,0,0,0,1148,9371,1,0,0,0,1150,9379,1,0,0,0,1152,9387,1,0,0,0,1154,9401,1,0,0,0,1156,9403,1,0,0,0,1158,9411,1,0,0,0,1160,9424,1,0,0,0,1162,9426,1,0,0,0,1164,9434,1,0,0,0,1166,9441,1,0,0,0,1168,9454,1,0,0,0,1170,9464,1,0,0,0,1172,9466,1,0,0,0,1174,9468,1,0,0,0,1176,9482,1,0,0,0,1178,9511,1,0,0,0,1180,9520,1,0,0,0,1182,9527,1,0,0,0,1184,9529,1,0,0,0,1186,9536,1,0,0,0,1188,9540,1,0,0,0,1190,9548,1,0,0,0,1192,9552,1,0,0,0,1194,9554,1,0,0,0,1196,9575,1,0,0,0,1198,9578,1,0,0,0,1200,9585,1,0,0,0,1202,9590,1,0,0,0,1204,9592,1,0,0,0,1206,9608,1,0,0,0,1208,9610,1,0,0,0,1210,9618,1,0,0,0,1212,9620,1,0,0,0,1214,9628,1,0,0,0,1216,9630,1,0,0,0,1218,9638,1,0,0,0,1220,9640,1,0,0,0,1222,9648,1,0,0,0,1224,9650,1,0,0,0,1226,9652,1,0,0,0,1228,9654,1,0,0,0,1230,9662,1,0,0,0,1232,9666,1,0,0,0,1234,9674,1,0,0,0,1236,9676,1,0,0,0,1238,9678,1,0,0,0,1240,9687,1,0,0,0,1242,9721,1,0,0,0,1244,9723,1,0,0,0,1246,9725,1,0,0,0,1248,9727,1,0,0,0,1250,9729,1,0,0,0,1252,9731,1,0,0,0,1254,9745,1,0,0,0,1256,9750,1,0,0,0,1258,9757,1,0,0,0,1260,9762,1,0,0,0,1262,9764,1,0,0,0,1264,9778,1,0,0,0,1266,9784,1,0,0,0,1268,9790,1,0,0,0,1270,9796,1,0,0,0,1272,9804,1,0,0,0,1274,9813,1,0,0,0,1276,9815,1,0,0,0,1278,9817,1,0,0,0,1280,9871,1,0,0,0,1282,9873,1,0,0,0,1284,9875,1,0,0,0,1286,9877,1,0,0,0,1288,9879,1,0,0,0,1290,9886,1,0,0,0,1292,9909,1,0,0,0,1294,9911,1,0,0,0,1296,9917,1,0,0,0,1298,9921,1,0,0,0,1300,9923,1,0,0,0,1302,9930,1,0,0,0,1304,9937,1,0,0,0,1306,9940,1,0,0,0,1308,9944,1,0,0,0,1310,9951,1,0,0,0,1312,9953,1,0,0,0,1314,9977,1,0,0,0,1316,9979,1,0,0,0,1318,9986,1,0,0,0,1320,9988,1,0,0,0,1322,9996,1,0,0,0,1324,9999,1,0,0,0,1326,10003,1,0,0,0,1328,10005,1,0,0,0,1330,10009,1,0,0,0,1332,10011,1,0,0,0,1334,10016,1,0,0,0,1336,10021,1,0,0,0,1338,10027,1,0,0,0,1340,10031,1,0,0,0,1342,10033,1,0,0,0,1344,10038,1,0,0,0,1346,10068,1,0,0,0,1348,10070,1,0,0,0,1350,10088,1,0,0,0,1352,10092,1,0,0,0,1354,10094,1,0,0,0,1356,10099,1,0,0,0,1358,10108,1,0,0,0,1360,10110,1,0,0,0,1362,10118,1,0,0,0,1364,10122,1,0,0,0,1366,10124,1,0,0,0,1368,10128,1,0,0,0,1370,10139,1,0,0,0,1372,10156,1,0,0,0,1374,10162,1,0,0,0,1376,10164,1,0,0,0,1378,10174,1,0,0,0,1380,10177,1,0,0,0,1382,10181,1,0,0,0,1384,10189,1,0,0,0,1386,10191,1,0,0,0,1388,10194,1,0,0,0,1390,10199,1,0,0,0,1392,10204,1,0,0,0,1394,10226,1,0,0,0,1396,10240,1,0,0,0,1398,10244,1,0,0,0,1400,10249,1,0,0,0,1402,10251,1,0,0,0,1404,10253,1,0,0,0,1406,10265,1,0,0,0,1408,10267,1,0,0,0,1410,10272,1,0,0,0,1412,10274,1,0,0,0,1414,10292,1,0,0,0,1416,10320,1,0,0,0,1418,10330,1,0,0,0,1420,10339,1,0,0,0,1422,10351,1,0,0,0,1424,10353,1,0,0,0,1426,10357,1,0,0,0,1428,10365,1,0,0,0,1430,10367,1,0,0,0,1432,10374,1,0,0,0,1434,10377,1,0,0,0,1436,10393,1,0,0,0,1438,10395,1,0,0,0,1440,10409,1,0,0,0,1442,10411,1,0,0,0,1444,10449,1,0,0,0,1446,10451,1,0,0,0,1448,10459,1,0,0,0,1450,10464,1,0,0,0,1452,10483,1,0,0,0,1454,10485,1,0,0,0,1456,10490,1,0,0,0,1458,10494,1,0,0,0,1460,10497,1,0,0,0,1462,10501,1,0,0,0,1464,10511,1,0,0,0,1466,10525,1,0,0,0,1468,10529,1,0,0,0,1470,10534,1,0,0,0,1472,10537,1,0,0,0,1474,10541,1,0,0,0,1476,10546,1,0,0,0,1478,10557,1,0,0,0,1480,10561,1,0,0,0,1482,10565,1,0,0,0,1484,10569,1,0,0,0,1486,10574,1,0,0,0,1488,10578,1,0,0,0,1490,10580,1,0,0,0,1492,10582,1,0,0,0,1494,10592,1,0,0,0,1496,10594,1,0,0,0,1498,10596,1,0,0,0,1500,10598,1,0,0,0,1502,10600,1,0,0,0,1504,10609,1,0,0,0,1506,10611,1,0,0,0,1508,1510,3,4,2,0,1509,1508,1,0,0,0,1509,1510,1,0,0,0,1510,1511,1,0,0,0,1511,1512,5,0,0,1,1512,1,1,0,0,0,1513,1514,3,1288,644,0,1514,3,1,0,0,0,1515,1517,3,6,3,0,1516,1518,5,7,0,0,1517,1516,1,0,0,0,1517,1518,1,0,0,0,1518,1524,1,0,0,0,1519,1520,3,6,3,0,1520,1521,5,7,0,0,1521,1522,3,4,2,0,1522,1524,1,0,0,0,1523,1515,1,0,0,0,1523,1519,1,0,0,0,1524,5,1,0,0,0,1525,1648,3,408,204,0,1526,1648,3,738,369,0,1527,1648,3,732,366,0,1528,1648,3,734,367,0,1529,1648,3,524,262,0,1530,1648,3,744,372,0,1531,1648,3,428,214,0,1532,1648,3,288,144,0,1533,1648,3,292,146,0,1534,1648,3,300,150,0,1535,1648,3,324,162,0,1536,1648,3,600,300,0,1537,1648,3,652,326,0,1538,1648,3,654,327,0,1539,1648,3,666,333,0,1540,1648,3,656,328,0,1541,1648,3,664,332,0,1542,1648,3,344,172,0,1543,1648,3,256,128,0,1544,1648,3,740,370,0,1545,1648,3,88,44,0,1546,1648,3,644,322,0,1547,1648,3,126,63,0,1548,1648,3,674,337,0,1549,1648,3,28,14,0,1550,1648,3,24,12,0,1551,1648,3,682,341,0,1552,1648,3,240,120,0,1553,1648,3,752,376,0,1554,1648,3,750,375,0,1555,1648,3,340,170,0,1556,1648,3,762,381,0,1557,1648,3,10,5,0,1558,1648,3,84,42,0,1559,1648,3,132,66,0,1560,1648,3,756,378,0,1561,1648,3,480,240,0,1562,1648,3,78,39,0,1563,1648,3,134,67,0,1564,1648,3,358,179,0,1565,1648,3,242,121,0,1566,1648,3,412,206,0,1567,1648,3,622,311,0,1568,1648,3,754,377,0,1569,1648,3,742,371,0,1570,1648,3,284,142,0,1571,1648,3,294,147,0,1572,1648,3,318,159,0,1573,1648,3,326,163,0,1574,1648,3,552,276,0,1575,1648,3,248,124,0,1576,1648,3,432,216,0,1577,1648,3,442,221,0,1578,1648,3,668,334,0,1579,1648,3,444,222,0,1580,1648,3,342,171,0,1581,1648,3,268,134,0,1582,1648,3,34,17,0,1583,1648,3,254,127,0,1584,1648,3,152,76,0,1585,1648,3,676,338,0,1586,1648,3,238,119,0,1587,1648,3,278,139,0,1588,1648,3,630,315,0,1589,1648,3,362,181,0,1590,1648,3,400,200,0,1591,1648,3,22,11,0,1592,1648,3,334,167,0,1593,1648,3,724,362,0,1594,1648,3,802,401,0,1595,1648,3,852,426,0,1596,1648,3,414,207,0,1597,1648,3,830,415,0,1598,1648,3,86,43,0,1599,1648,3,616,308,0,1600,1648,3,626,313,0,1601,1648,3,450,225,0,1602,1648,3,452,226,0,1603,1648,3,454,227,0,1604,1648,3,458,229,0,1605,1648,3,684,342,0,1606,1648,3,282,141,0,1607,1648,3,634,317,0,1608,1648,3,30,15,0,1609,1648,3,338,169,0,1610,1648,3,736,368,0,1611,1648,3,798,399,0,1612,1648,3,782,391,0,1613,1648,3,490,245,0,1614,1648,3,498,249,0,1615,1648,3,516,258,0,1616,1648,3,328,164,0,1617,1648,3,532,266,0,1618,1648,3,804,402,0,1619,1648,3,822,411,0,1620,1648,3,704,352,0,1621,1648,3,252,126,0,1622,1648,3,722,361,0,1623,1648,3,834,417,0,1624,1648,3,700,350,0,1625,1648,3,792,396,0,1626,1648,3,456,228,0,1627,1648,3,636,318,0,1628,1648,3,604,302,0,1629,1648,3,602,301,0,1630,1648,3,606,303,0,1631,1648,3,646,323,0,1632,1648,3,500,250,0,1633,1648,3,518,259,0,1634,1648,3,686,343,0,1635,1648,3,484,242,0,1636,1648,3,858,429,0,1637,1648,3,708,354,0,1638,1648,3,476,238,0,1639,1648,3,706,353,0,1640,1648,3,844,422,0,1641,1648,3,760,380,0,1642,1648,3,66,33,0,1643,1648,3,42,21,0,1644,1648,3,76,38,0,1645,1648,3,718,359,0,1646,1648,3,8,4,0,1647,1525,1,0,0,0,1647,1526,1,0,0,0,1647,1527,1,0,0,0,1647,1528,1,0,0,0,1647,1529,1,0,0,0,1647,1530,1,0,0,0,1647,1531,1,0,0,0,1647,1532,1,0,0,0,1647,1533,1,0,0,0,1647,1534,1,0,0,0,1647,1535,1,0,0,0,1647,1536,1,0,0,0,1647,1537,1,0,0,0,1647,1538,1,0,0,0,1647,1539,1,0,0,0,1647,1540,1,0,0,0,1647,1541,1,0,0,0,1647,1542,1,0,0,0,1647,1543,1,0,0,0,1647,1544,1,0,0,0,1647,1545,1,0,0,0,1647,1546,1,0,0,0,1647,1547,1,0,0,0,1647,1548,1,0,0,0,1647,1549,1,0,0,0,1647,1550,1,0,0,0,1647,1551,1,0,0,0,1647,1552,1,0,0,0,1647,1553,1,0,0,0,1647,1554,1,0,0,0,1647,1555,1,0,0,0,1647,1556,1,0,0,0,1647,1557,1,0,0,0,1647,1558,1,0,0,0,1647,1559,1,0,0,0,1647,1560,1,0,0,0,1647,1561,1,0,0,0,1647,1562,1,0,0,0,1647,1563,1,0,0,0,1647,1564,1,0,0,0,1647,1565,1,0,0,0,1647,1566,1,0,0,0,1647,1567,1,0,0,0,1647,1568,1,0,0,0,1647,1569,1,0,0,0,1647,1570,1,0,0,0,1647,1571,1,0,0,0,1647,1572,1,0,0,0,1647,1573,1,0,0,0,1647,1574,1,0,0,0,1647,1575,1,0,0,0,1647,1576,1,0,0,0,1647,1577,1,0,0,0,1647,1578,1,0,0,0,1647,1579,1,0,0,0,1647,1580,1,0,0,0,1647,1581,1,0,0,0,1647,1582,1,0,0,0,1647,1583,1,0,0,0,1647,1584,1,0,0,0,1647,1585,1,0,0,0,1647,1586,1,0,0,0,1647,1587,1,0,0,0,1647,1588,1,0,0,0,1647,1589,1,0,0,0,1647,1590,1,0,0,0,1647,1591,1,0,0,0,1647,1592,1,0,0,0,1647,1593,1,0,0,0,1647,1594,1,0,0,0,1647,1595,1,0,0,0,1647,1596,1,0,0,0,1647,1597,1,0,0,0,1647,1598,1,0,0,0,1647,1599,1,0,0,0,1647,1600,1,0,0,0,1647,1601,1,0,0,0,1647,1602,1,0,0,0,1647,1603,1,0,0,0,1647,1604,1,0,0,0,1647,1605,1,0,0,0,1647,1606,1,0,0,0,1647,1607,1,0,0,0,1647,1608,1,0,0,0,1647,1609,1,0,0,0,1647,1610,1,0,0,0,1647,1611,1,0,0,0,1647,1612,1,0,0,0,1647,1613,1,0,0,0,1647,1614,1,0,0,0,1647,1615,1,0,0,0,1647,1616,1,0,0,0,1647,1617,1,0,0,0,1647,1618,1,0,0,0,1647,1619,1,0,0,0,1647,1620,1,0,0,0,1647,1621,1,0,0,0,1647,1622,1,0,0,0,1647,1623,1,0,0,0,1647,1624,1,0,0,0,1647,1625,1,0,0,0,1647,1626,1,0,0,0,1647,1627,1,0,0,0,1647,1628,1,0,0,0,1647,1629,1,0,0,0,1647,1630,1,0,0,0,1647,1631,1,0,0,0,1647,1632,1,0,0,0,1647,1633,1,0,0,0,1647,1634,1,0,0,0,1647,1635,1,0,0,0,1647,1636,1,0,0,0,1647,1637,1,0,0,0,1647,1638,1,0,0,0,1647,1639,1,0,0,0,1647,1640,1,0,0,0,1647,1641,1,0,0,0,1647,1642,1,0,0,0,1647,1643,1,0,0,0,1647,1644,1,0,0,0,1647,1645,1,0,0,0,1647,1646,1,0,0,0,1648,7,1,0,0,0,1649,1651,5,668,0,0,1650,1652,5,669,0,0,1651,1650,1,0,0,0,1651,1652,1,0,0,0,1652,9,1,0,0,0,1653,1654,5,433,0,0,1654,1655,3,1086,543,0,1655,11,1,0,0,0,1656,1659,5,105,0,0,1657,1659,1,0,0,0,1658,1656,1,0,0,0,1658,1657,1,0,0,0,1659,13,1,0,0,0,1660,1662,3,20,10,0,1661,1660,1,0,0,0,1662,1665,1,0,0,0,1663,1661,1,0,0,0,1663,1664,1,0,0,0,1664,15,1,0,0,0,1665,1663,1,0,0,0,1666,1668,3,18,9,0,1667,1666,1,0,0,0,1668,1671,1,0,0,0,1669,1667,1,0,0,0,1669,1670,1,0,0,0,1670,17,1,0,0,0,1671,1669,1,0,0,0,1672,1675,5,280,0,0,1673,1676,3,1252,626,0,1674,1676,5,78,0,0,1675,1673,1,0,0,0,1675,1674,1,0,0,0,1676,1692,1,0,0,0,1677,1678,7,0,0,0,1678,1679,5,280,0,0,1679,1692,3,1252,626,0,1680,1692,5,228,0,0,1681,1682,5,164,0,0,1682,1683,5,74,0,0,1683,1692,3,1258,629,0,1684,1685,5,364,0,0,1685,1686,5,361,0,0,1686,1692,3,1252,626,0,1687,1688,3,1506,753,0,1688,1689,3,1262,631,0,1689,1692,1,0,0,0,1690,1692,3,1274,637,0,1691,1672,1,0,0,0,1691,1677,1,0,0,0,1691,1680,1,0,0,0,1691,1681,1,0,0,0,1691,1684,1,0,0,0,1691,1687,1,0,0,0,1691,1690,1,0,0,0,1692,19,1,0,0,0,1693,1705,3,18,9,0,1694,1695,5,341,0,0,1695,1705,3,1250,625,0,1696,1697,5,134,0,0,1697,1705,3,1262,631,0,1698,1700,5,68,0,0,1699,1698,1,0,0,0,1699,1700,1,0,0,0,1700,1701,1,0,0,0,1701,1702,3,1506,753,0,1702,1703,3,1262,631,0,1703,1705,1,0,0,0,1704,1693,1,0,0,0,1704,1694,1,0,0,0,1704,1696,1,0,0,0,1704,1699,1,0,0,0,1705,21,1,0,0,0,1706,1707,5,46,0,0,1707,1708,3,1506,753,0,1708,1709,3,1260,630,0,1709,1710,3,12,6,0,1710,1711,3,14,7,0,1711,23,1,0,0,0,1712,1713,5,138,0,0,1713,1714,3,1506,753,0,1714,1715,3,1260,630,0,1715,1716,3,12,6,0,1716,1717,3,16,8,0,1717,25,1,0,0,0,1718,1723,1,0,0,0,1719,1720,5,68,0,0,1720,1721,5,175,0,0,1721,1723,3,1210,605,0,1722,1718,1,0,0,0,1722,1719,1,0,0,0,1723,27,1,0,0,0,1724,1725,5,138,0,0,1725,1727,3,1506,753,0,1726,1728,5,30,0,0,1727,1726,1,0,0,0,1727,1728,1,0,0,0,1728,1729,1,0,0,0,1729,1730,3,1260,630,0,1730,1731,3,26,13,0,1731,1732,3,72,36,0,1732,29,1,0,0,0,1733,1734,5,191,0,0,1734,1737,3,1506,753,0,1735,1736,5,220,0,0,1736,1738,5,389,0,0,1737,1735,1,0,0,0,1737,1738,1,0,0,0,1738,1739,1,0,0,0,1739,1740,3,1262,631,0,1740,31,1,0,0,0,1741,1742,7,1,0,0,1742,33,1,0,0,0,1743,1744,5,46,0,0,1744,1748,5,316,0,0,1745,1746,5,220,0,0,1746,1747,5,77,0,0,1747,1749,5,389,0,0,1748,1745,1,0,0,0,1748,1749,1,0,0,0,1749,1755,1,0,0,0,1750,1751,3,36,18,0,1751,1752,5,106,0,0,1752,1753,3,1260,630,0,1753,1756,1,0,0,0,1754,1756,3,1264,632,0,1755,1750,1,0,0,0,1755,1754,1,0,0,0,1756,1757,1,0,0,0,1757,1758,3,38,19,0,1758,35,1,0,0,0,1759,1762,3,1264,632,0,1760,1762,1,0,0,0,1761,1759,1,0,0,0,1761,1760,1,0,0,0,1762,37,1,0,0,0,1763,1765,3,40,20,0,1764,1763,1,0,0,0,1765,1768,1,0,0,0,1766,1764,1,0,0,0,1766,1767,1,0,0,0,1767,39,1,0,0,0,1768,1766,1,0,0,0,1769,1776,3,152,76,0,1770,1776,3,532,266,0,1771,1776,3,254,127,0,1772,1776,3,362,181,0,1773,1776,3,498,249,0,1774,1776,3,718,359,0,1775,1769,1,0,0,0,1775,1770,1,0,0,0,1775,1771,1,0,0,0,1775,1772,1,0,0,0,1775,1773,1,0,0,0,1775,1774,1,0,0,0,1776,41,1,0,0,0,1777,1779,5,326,0,0,1778,1780,7,2,0,0,1779,1778,1,0,0,0,1779,1780,1,0,0,0,1780,1781,1,0,0,0,1781,1782,3,44,22,0,1782,43,1,0,0,0,1783,1784,5,349,0,0,1784,1792,3,714,357,0,1785,1786,5,325,0,0,1786,1787,5,154,0,0,1787,1788,5,36,0,0,1788,1789,5,349,0,0,1789,1792,3,714,357,0,1790,1792,3,48,24,0,1791,1783,1,0,0,0,1791,1785,1,0,0,0,1791,1790,1,0,0,0,1792,45,1,0,0,0,1793,1794,3,50,25,0,1794,1795,7,3,0,0,1795,1796,3,52,26,0,1796,47,1,0,0,0,1797,1824,3,46,23,0,1798,1799,3,50,25,0,1799,1800,5,64,0,0,1800,1801,5,434,0,0,1801,1824,1,0,0,0,1802,1803,5,411,0,0,1803,1804,5,379,0,0,1804,1824,3,60,30,0,1805,1806,5,152,0,0,1806,1824,3,1252,626,0,1807,1808,5,316,0,0,1808,1824,3,1214,607,0,1809,1810,5,260,0,0,1810,1824,3,62,31,0,1811,1812,3,1506,753,0,1812,1813,3,64,32,0,1813,1824,1,0,0,0,1814,1815,5,325,0,0,1815,1816,5,106,0,0,1816,1824,3,64,32,0,1817,1818,5,376,0,0,1818,1819,5,272,0,0,1819,1824,3,1104,552,0,1820,1821,5,349,0,0,1821,1822,5,330,0,0,1822,1824,3,1252,626,0,1823,1797,1,0,0,0,1823,1798,1,0,0,0,1823,1802,1,0,0,0,1823,1805,1,0,0,0,1823,1807,1,0,0,0,1823,1809,1,0,0,0,1823,1811,1,0,0,0,1823,1814,1,0,0,0,1823,1817,1,0,0,0,1823,1820,1,0,0,0,1824,49,1,0,0,0,1825,1830,3,1264,632,0,1826,1827,5,11,0,0,1827,1829,3,1264,632,0,1828,1826,1,0,0,0,1829,1832,1,0,0,0,1830,1828,1,0,0,0,1830,1831,1,0,0,0,1831,51,1,0,0,0,1832,1830,1,0,0,0,1833,1838,3,54,27,0,1834,1835,5,6,0,0,1835,1837,3,54,27,0,1836,1834,1,0,0,0,1837,1840,1,0,0,0,1838,1836,1,0,0,0,1838,1839,1,0,0,0,1839,53,1,0,0,0,1840,1838,1,0,0,0,1841,1844,3,58,29,0,1842,1844,3,264,132,0,1843,1841,1,0,0,0,1843,1842,1,0,0,0,1844,55,1,0,0,0,1845,1846,5,293,0,0,1846,1851,7,4,0,0,1847,1848,5,303,0,0,1848,1851,5,293,0,0,1849,1851,5,323,0,0,1850,1845,1,0,0,0,1850,1847,1,0,0,0,1850,1849,1,0,0,0,1851,57,1,0,0,0,1852,1857,5,96,0,0,1853,1857,5,60,0,0,1854,1857,5,80,0,0,1855,1857,3,64,32,0,1856,1852,1,0,0,0,1856,1853,1,0,0,0,1856,1854,1,0,0,0,1856,1855,1,0,0,0,1857,59,1,0,0,0,1858,1874,3,1252,626,0,1859,1874,3,1274,637,0,1860,1861,3,1028,514,0,1861,1862,3,1252,626,0,1862,1863,3,1032,516,0,1863,1874,1,0,0,0,1864,1865,3,1028,514,0,1865,1866,5,2,0,0,1866,1867,3,1250,625,0,1867,1868,5,3,0,0,1868,1869,3,1252,626,0,1869,1874,1,0,0,0,1870,1874,3,264,132,0,1871,1874,5,53,0,0,1872,1874,5,245,0,0,1873,1858,1,0,0,0,1873,1859,1,0,0,0,1873,1860,1,0,0,0,1873,1864,1,0,0,0,1873,1870,1,0,0,0,1873,1871,1,0,0,0,1873,1872,1,0,0,0,1874,61,1,0,0,0,1875,1879,3,1252,626,0,1876,1879,5,53,0,0,1877,1879,1,0,0,0,1878,1875,1,0,0,0,1878,1876,1,0,0,0,1878,1877,1,0,0,0,1879,63,1,0,0,0,1880,1883,3,1270,635,0,1881,1883,3,1252,626,0,1882,1880,1,0,0,0,1882,1881,1,0,0,0,1883,65,1,0,0,0,1884,1885,5,306,0,0,1885,1886,3,68,34,0,1886,67,1,0,0,0,1887,1896,3,70,35,0,1888,1889,5,411,0,0,1889,1896,5,379,0,0,1890,1891,5,349,0,0,1891,1892,5,235,0,0,1892,1896,5,242,0,0,1893,1894,5,325,0,0,1894,1896,5,106,0,0,1895,1887,1,0,0,0,1895,1888,1,0,0,0,1895,1890,1,0,0,0,1895,1893,1,0,0,0,1896,69,1,0,0,0,1897,1900,3,50,25,0,1898,1900,5,30,0,0,1899,1897,1,0,0,0,1899,1898,1,0,0,0,1900,71,1,0,0,0,1901,1902,5,326,0,0,1902,1905,3,44,22,0,1903,1905,3,66,33,0,1904,1901,1,0,0,0,1904,1903,1,0,0,0,1905,73,1,0,0,0,1906,1907,5,326,0,0,1907,1910,3,48,24,0,1908,1910,3,66,33,0,1909,1906,1,0,0,0,1909,1908,1,0,0,0,1910,75,1,0,0,0,1911,1921,5,328,0,0,1912,1922,3,50,25,0,1913,1914,5,411,0,0,1914,1922,5,379,0,0,1915,1916,5,349,0,0,1916,1917,5,235,0,0,1917,1922,5,242,0,0,1918,1919,5,325,0,0,1919,1922,5,106,0,0,1920,1922,5,30,0,0,1921,1912,1,0,0,0,1921,1913,1,0,0,0,1921,1915,1,0,0,0,1921,1918,1,0,0,0,1921,1920,1,0,0,0,1922,77,1,0,0,0,1923,1924,5,326,0,0,1924,1925,5,165,0,0,1925,1926,3,80,40,0,1926,1927,3,82,41,0,1927,79,1,0,0,0,1928,1931,5,30,0,0,1929,1931,3,1208,604,0,1930,1928,1,0,0,0,1930,1929,1,0,0,0,1931,81,1,0,0,0,1932,1933,7,5,0,0,1933,83,1,0,0,0,1934,1935,5,155,0,0,1935,85,1,0,0,0,1936,1937,5,187,0,0,1937,1938,7,6,0,0,1938,87,1,0,0,0,1939,1940,5,138,0,0,1940,1943,5,92,0,0,1941,1942,5,220,0,0,1942,1944,5,389,0,0,1943,1941,1,0,0,0,1943,1944,1,0,0,0,1944,1945,1,0,0,0,1945,1948,3,958,479,0,1946,1949,3,90,45,0,1947,1949,3,92,46,0,1948,1946,1,0,0,0,1948,1947,1,0,0,0,1949,2040,1,0,0,0,1950,1951,5,138,0,0,1951,1952,5,92,0,0,1952,1953,5,30,0,0,1953,1954,5,68,0,0,1954,1955,5,344,0,0,1955,1959,3,1234,617,0,1956,1957,5,274,0,0,1957,1958,5,147,0,0,1958,1960,3,1262,631,0,1959,1956,1,0,0,0,1959,1960,1,0,0,0,1960,1961,1,0,0,0,1961,1962,5,326,0,0,1962,1963,5,344,0,0,1963,1964,3,1234,617,0,1964,1965,3,840,420,0,1965,2040,1,0,0,0,1966,1967,5,138,0,0,1967,1970,5,226,0,0,1968,1969,5,220,0,0,1969,1971,5,389,0,0,1970,1968,1,0,0,0,1970,1971,1,0,0,0,1971,1972,1,0,0,0,1972,1975,3,1218,609,0,1973,1976,3,90,45,0,1974,1976,3,94,47,0,1975,1973,1,0,0,0,1975,1974,1,0,0,0,1976,2040,1,0,0,0,1977,1978,5,138,0,0,1978,1979,5,226,0,0,1979,1980,5,30,0,0,1980,1981,5,68,0,0,1981,1982,5,344,0,0,1982,1986,3,1234,617,0,1983,1984,5,274,0,0,1984,1985,5,147,0,0,1985,1987,3,1262,631,0,1986,1983,1,0,0,0,1986,1987,1,0,0,0,1987,1988,1,0,0,0,1988,1989,5,326,0,0,1989,1990,5,344,0,0,1990,1991,3,1234,617,0,1991,1992,3,840,420,0,1992,2040,1,0,0,0,1993,1994,5,138,0,0,1994,1997,5,369,0,0,1995,1996,5,220,0,0,1996,1998,5,389,0,0,1997,1995,1,0,0,0,1997,1998,1,0,0,0,1998,1999,1,0,0,0,1999,2e3,3,956,478,0,2e3,2001,3,90,45,0,2001,2040,1,0,0,0,2002,2003,5,138,0,0,2003,2004,5,251,0,0,2004,2007,5,369,0,0,2005,2006,5,220,0,0,2006,2008,5,389,0,0,2007,2005,1,0,0,0,2007,2008,1,0,0,0,2008,2009,1,0,0,0,2009,2010,3,1230,615,0,2010,2011,3,90,45,0,2011,2040,1,0,0,0,2012,2013,5,138,0,0,2013,2014,5,251,0,0,2014,2015,5,369,0,0,2015,2016,5,30,0,0,2016,2017,5,68,0,0,2017,2018,5,344,0,0,2018,2022,3,1234,617,0,2019,2020,5,274,0,0,2020,2021,5,147,0,0,2021,2023,3,1262,631,0,2022,2019,1,0,0,0,2022,2023,1,0,0,0,2023,2024,1,0,0,0,2024,2025,5,326,0,0,2025,2026,5,344,0,0,2026,2027,3,1234,617,0,2027,2028,3,840,420,0,2028,2040,1,0,0,0,2029,2030,5,138,0,0,2030,2031,5,63,0,0,2031,2034,5,92,0,0,2032,2033,5,220,0,0,2033,2035,5,389,0,0,2034,2032,1,0,0,0,2034,2035,1,0,0,0,2035,2036,1,0,0,0,2036,2037,3,958,479,0,2037,2038,3,90,45,0,2038,2040,1,0,0,0,2039,1939,1,0,0,0,2039,1950,1,0,0,0,2039,1966,1,0,0,0,2039,1977,1,0,0,0,2039,1993,1,0,0,0,2039,2002,1,0,0,0,2039,2012,1,0,0,0,2039,2029,1,0,0,0,2040,89,1,0,0,0,2041,2046,3,96,48,0,2042,2043,5,6,0,0,2043,2045,3,96,48,0,2044,2042,1,0,0,0,2045,2048,1,0,0,0,2046,2044,1,0,0,0,2046,2047,1,0,0,0,2047,91,1,0,0,0,2048,2046,1,0,0,0,2049,2050,5,435,0,0,2050,2051,5,278,0,0,2051,2052,3,1230,615,0,2052,2053,3,120,60,0,2053,2058,1,0,0,0,2054,2055,5,436,0,0,2055,2056,5,278,0,0,2056,2058,3,1230,615,0,2057,2049,1,0,0,0,2057,2054,1,0,0,0,2058,93,1,0,0,0,2059,2060,5,435,0,0,2060,2061,5,278,0,0,2061,2062,3,1230,615,0,2062,95,1,0,0,0,2063,2064,5,133,0,0,2064,2305,3,168,84,0,2065,2066,5,133,0,0,2066,2067,5,220,0,0,2067,2068,5,77,0,0,2068,2069,5,389,0,0,2069,2305,3,168,84,0,2070,2071,5,133,0,0,2071,2072,5,44,0,0,2072,2305,3,168,84,0,2073,2074,5,133,0,0,2074,2075,5,44,0,0,2075,2076,5,220,0,0,2076,2077,5,77,0,0,2077,2078,5,389,0,0,2078,2305,3,168,84,0,2079,2080,5,138,0,0,2080,2081,3,648,324,0,2081,2082,3,1264,632,0,2082,2083,3,98,49,0,2083,2305,1,0,0,0,2084,2085,5,138,0,0,2085,2086,3,648,324,0,2086,2087,3,1264,632,0,2087,2088,5,191,0,0,2088,2089,5,77,0,0,2089,2090,5,78,0,0,2090,2305,1,0,0,0,2091,2092,5,138,0,0,2092,2093,3,648,324,0,2093,2094,3,1264,632,0,2094,2095,5,326,0,0,2095,2096,5,77,0,0,2096,2097,5,78,0,0,2097,2305,1,0,0,0,2098,2099,5,138,0,0,2099,2100,3,648,324,0,2100,2101,3,1264,632,0,2101,2102,5,191,0,0,2102,2103,5,437,0,0,2103,2305,1,0,0,0,2104,2105,5,138,0,0,2105,2106,3,648,324,0,2106,2107,3,1264,632,0,2107,2108,5,191,0,0,2108,2109,5,437,0,0,2109,2110,5,220,0,0,2110,2111,5,389,0,0,2111,2305,1,0,0,0,2112,2113,5,138,0,0,2113,2114,3,648,324,0,2114,2115,3,1264,632,0,2115,2116,5,326,0,0,2116,2117,5,335,0,0,2117,2118,3,1258,629,0,2118,2305,1,0,0,0,2119,2120,5,138,0,0,2120,2121,3,648,324,0,2121,2122,3,1250,625,0,2122,2123,5,326,0,0,2123,2124,5,335,0,0,2124,2125,3,1258,629,0,2125,2305,1,0,0,0,2126,2127,5,138,0,0,2127,2128,3,648,324,0,2128,2129,3,1264,632,0,2129,2130,5,326,0,0,2130,2131,3,108,54,0,2131,2305,1,0,0,0,2132,2133,5,138,0,0,2133,2134,3,648,324,0,2134,2135,3,1264,632,0,2135,2136,5,306,0,0,2136,2137,3,108,54,0,2137,2305,1,0,0,0,2138,2139,5,138,0,0,2139,2140,3,648,324,0,2140,2141,3,1264,632,0,2141,2142,5,326,0,0,2142,2143,5,338,0,0,2143,2144,3,1264,632,0,2144,2305,1,0,0,0,2145,2146,5,138,0,0,2146,2147,3,648,324,0,2147,2148,3,1264,632,0,2148,2149,5,133,0,0,2149,2150,5,438,0,0,2150,2151,3,178,89,0,2151,2152,5,36,0,0,2152,2153,5,219,0,0,2153,2154,3,258,129,0,2154,2305,1,0,0,0,2155,2156,5,138,0,0,2156,2157,3,648,324,0,2157,2158,3,1264,632,0,2158,2159,3,116,58,0,2159,2305,1,0,0,0,2160,2161,5,138,0,0,2161,2162,3,648,324,0,2162,2163,3,1264,632,0,2163,2164,5,191,0,0,2164,2165,5,219,0,0,2165,2305,1,0,0,0,2166,2167,5,138,0,0,2167,2168,3,648,324,0,2168,2169,3,1264,632,0,2169,2170,5,191,0,0,2170,2171,5,219,0,0,2171,2172,5,220,0,0,2172,2173,5,389,0,0,2173,2305,1,0,0,0,2174,2175,5,191,0,0,2175,2176,3,648,324,0,2176,2177,5,220,0,0,2177,2178,5,389,0,0,2178,2179,3,1264,632,0,2179,2180,3,100,50,0,2180,2305,1,0,0,0,2181,2182,5,191,0,0,2182,2183,3,648,324,0,2183,2184,3,1264,632,0,2184,2185,3,100,50,0,2185,2305,1,0,0,0,2186,2187,5,138,0,0,2187,2188,3,648,324,0,2188,2189,3,1264,632,0,2189,2190,3,650,325,0,2190,2191,5,353,0,0,2191,2192,3,996,498,0,2192,2193,3,102,51,0,2193,2194,3,104,52,0,2194,2305,1,0,0,0,2195,2196,5,138,0,0,2196,2197,3,648,324,0,2197,2198,3,1264,632,0,2198,2199,3,306,153,0,2199,2305,1,0,0,0,2200,2201,5,133,0,0,2201,2305,3,188,94,0,2202,2203,5,138,0,0,2203,2204,5,45,0,0,2204,2206,3,1224,612,0,2205,2207,3,398,199,0,2206,2205,1,0,0,0,2207,2208,1,0,0,0,2208,2206,1,0,0,0,2208,2209,1,0,0,0,2209,2305,1,0,0,0,2210,2211,5,365,0,0,2211,2212,5,45,0,0,2212,2305,3,1224,612,0,2213,2214,5,191,0,0,2214,2217,5,45,0,0,2215,2216,5,220,0,0,2216,2218,5,389,0,0,2217,2215,1,0,0,0,2217,2218,1,0,0,0,2218,2219,1,0,0,0,2219,2220,3,1224,612,0,2220,2221,3,100,50,0,2221,2305,1,0,0,0,2222,2223,5,326,0,0,2223,2224,5,372,0,0,2224,2305,5,270,0,0,2225,2226,5,158,0,0,2226,2227,5,80,0,0,2227,2305,3,1234,617,0,2228,2229,5,326,0,0,2229,2230,5,372,0,0,2230,2305,5,158,0,0,2231,2232,5,326,0,0,2232,2305,5,439,0,0,2233,2234,5,326,0,0,2234,2305,5,360,0,0,2235,2237,5,193,0,0,2236,2238,7,7,0,0,2237,2236,1,0,0,0,2237,2238,1,0,0,0,2238,2239,1,0,0,0,2239,2240,5,350,0,0,2240,2305,3,1222,611,0,2241,2242,5,193,0,0,2242,2243,5,350,0,0,2243,2305,7,8,0,0,2244,2245,5,186,0,0,2245,2246,5,350,0,0,2246,2305,3,1222,611,0,2247,2248,5,186,0,0,2248,2249,5,350,0,0,2249,2305,7,8,0,0,2250,2251,5,193,0,0,2251,2252,5,314,0,0,2252,2305,3,1234,617,0,2253,2254,5,193,0,0,2254,2255,5,139,0,0,2255,2256,5,314,0,0,2256,2305,3,1234,617,0,2257,2258,5,193,0,0,2258,2259,5,305,0,0,2259,2260,5,314,0,0,2260,2305,3,1234,617,0,2261,2262,5,186,0,0,2262,2263,5,314,0,0,2263,2305,3,1234,617,0,2264,2265,5,228,0,0,2265,2305,3,1230,615,0,2266,2267,5,262,0,0,2267,2268,5,228,0,0,2268,2305,3,1230,615,0,2269,2270,5,268,0,0,2270,2305,3,470,235,0,2271,2272,5,77,0,0,2272,2305,5,268,0,0,2273,2274,5,275,0,0,2274,2275,5,94,0,0,2275,2305,3,1260,630,0,2276,2277,5,326,0,0,2277,2278,5,344,0,0,2278,2305,3,1234,617,0,2279,2280,5,326,0,0,2280,2305,3,108,54,0,2281,2282,5,306,0,0,2282,2305,3,108,54,0,2283,2284,5,305,0,0,2284,2285,5,219,0,0,2285,2305,3,106,53,0,2286,2287,5,193,0,0,2287,2288,5,407,0,0,2288,2289,5,242,0,0,2289,2305,5,320,0,0,2290,2291,5,186,0,0,2291,2292,5,407,0,0,2292,2293,5,242,0,0,2293,2305,5,320,0,0,2294,2295,5,209,0,0,2295,2296,5,407,0,0,2296,2297,5,242,0,0,2297,2305,5,320,0,0,2298,2299,5,262,0,0,2299,2300,5,209,0,0,2300,2301,5,407,0,0,2301,2302,5,242,0,0,2302,2305,5,320,0,0,2303,2305,3,306,153,0,2304,2063,1,0,0,0,2304,2065,1,0,0,0,2304,2070,1,0,0,0,2304,2073,1,0,0,0,2304,2079,1,0,0,0,2304,2084,1,0,0,0,2304,2091,1,0,0,0,2304,2098,1,0,0,0,2304,2104,1,0,0,0,2304,2112,1,0,0,0,2304,2119,1,0,0,0,2304,2126,1,0,0,0,2304,2132,1,0,0,0,2304,2138,1,0,0,0,2304,2145,1,0,0,0,2304,2155,1,0,0,0,2304,2160,1,0,0,0,2304,2166,1,0,0,0,2304,2174,1,0,0,0,2304,2181,1,0,0,0,2304,2186,1,0,0,0,2304,2195,1,0,0,0,2304,2200,1,0,0,0,2304,2202,1,0,0,0,2304,2210,1,0,0,0,2304,2213,1,0,0,0,2304,2222,1,0,0,0,2304,2225,1,0,0,0,2304,2228,1,0,0,0,2304,2231,1,0,0,0,2304,2233,1,0,0,0,2304,2235,1,0,0,0,2304,2241,1,0,0,0,2304,2244,1,0,0,0,2304,2247,1,0,0,0,2304,2250,1,0,0,0,2304,2253,1,0,0,0,2304,2257,1,0,0,0,2304,2261,1,0,0,0,2304,2264,1,0,0,0,2304,2266,1,0,0,0,2304,2269,1,0,0,0,2304,2271,1,0,0,0,2304,2273,1,0,0,0,2304,2276,1,0,0,0,2304,2279,1,0,0,0,2304,2281,1,0,0,0,2304,2283,1,0,0,0,2304,2286,1,0,0,0,2304,2290,1,0,0,0,2304,2294,1,0,0,0,2304,2298,1,0,0,0,2304,2303,1,0,0,0,2305,97,1,0,0,0,2306,2307,5,326,0,0,2307,2308,5,53,0,0,2308,2312,3,1038,519,0,2309,2310,5,191,0,0,2310,2312,5,53,0,0,2311,2306,1,0,0,0,2311,2309,1,0,0,0,2312,99,1,0,0,0,2313,2317,5,150,0,0,2314,2317,5,308,0,0,2315,2317,1,0,0,0,2316,2313,1,0,0,0,2316,2314,1,0,0,0,2316,2315,1,0,0,0,2317,101,1,0,0,0,2318,2319,5,43,0,0,2319,2322,3,470,235,0,2320,2322,1,0,0,0,2321,2318,1,0,0,0,2321,2320,1,0,0,0,2322,103,1,0,0,0,2323,2324,5,100,0,0,2324,2327,3,1038,519,0,2325,2327,1,0,0,0,2326,2323,1,0,0,0,2326,2325,1,0,0,0,2327,105,1,0,0,0,2328,2335,5,263,0,0,2329,2335,5,113,0,0,2330,2335,5,53,0,0,2331,2332,5,100,0,0,2332,2333,5,226,0,0,2333,2335,3,1218,609,0,2334,2328,1,0,0,0,2334,2329,1,0,0,0,2334,2330,1,0,0,0,2334,2331,1,0,0,0,2335,107,1,0,0,0,2336,2337,5,2,0,0,2337,2338,3,112,56,0,2338,2339,5,3,0,0,2339,109,1,0,0,0,2340,2341,5,105,0,0,2341,2344,3,108,54,0,2342,2344,1,0,0,0,2343,2340,1,0,0,0,2343,2342,1,0,0,0,2344,111,1,0,0,0,2345,2350,3,114,57,0,2346,2347,5,6,0,0,2347,2349,3,114,57,0,2348,2346,1,0,0,0,2349,2352,1,0,0,0,2350,2348,1,0,0,0,2350,2351,1,0,0,0,2351,113,1,0,0,0,2352,2350,1,0,0,0,2353,2362,3,1272,636,0,2354,2355,5,10,0,0,2355,2363,3,420,210,0,2356,2357,5,11,0,0,2357,2360,3,1272,636,0,2358,2359,5,10,0,0,2359,2361,3,420,210,0,2360,2358,1,0,0,0,2360,2361,1,0,0,0,2361,2363,1,0,0,0,2362,2354,1,0,0,0,2362,2356,1,0,0,0,2362,2363,1,0,0,0,2363,115,1,0,0,0,2364,2366,3,118,59,0,2365,2364,1,0,0,0,2366,2367,1,0,0,0,2367,2365,1,0,0,0,2367,2368,1,0,0,0,2368,117,1,0,0,0,2369,2373,5,307,0,0,2370,2371,3,12,6,0,2371,2372,3,264,132,0,2372,2374,1,0,0,0,2373,2370,1,0,0,0,2373,2374,1,0,0,0,2374,2382,1,0,0,0,2375,2379,5,326,0,0,2376,2380,3,262,131,0,2377,2378,5,438,0,0,2378,2380,3,178,89,0,2379,2376,1,0,0,0,2379,2377,1,0,0,0,2380,2382,1,0,0,0,2381,2369,1,0,0,0,2381,2375,1,0,0,0,2382,119,1,0,0,0,2383,2384,5,62,0,0,2384,2385,5,415,0,0,2385,2386,5,105,0,0,2386,2387,5,2,0,0,2387,2388,3,124,62,0,2388,2389,5,3,0,0,2389,2410,1,0,0,0,2390,2391,5,62,0,0,2391,2392,5,415,0,0,2392,2393,5,68,0,0,2393,2394,5,2,0,0,2394,2395,3,1156,578,0,2395,2396,5,3,0,0,2396,2410,1,0,0,0,2397,2398,5,62,0,0,2398,2399,5,415,0,0,2399,2400,5,64,0,0,2400,2401,5,2,0,0,2401,2402,3,1156,578,0,2402,2403,5,3,0,0,2403,2404,5,94,0,0,2404,2405,5,2,0,0,2405,2406,3,1156,578,0,2406,2407,5,3,0,0,2407,2410,1,0,0,0,2408,2410,5,53,0,0,2409,2383,1,0,0,0,2409,2390,1,0,0,0,2409,2397,1,0,0,0,2409,2408,1,0,0,0,2410,121,1,0,0,0,2411,2412,3,1270,635,0,2412,2413,3,1250,625,0,2413,123,1,0,0,0,2414,2419,3,122,61,0,2415,2416,5,6,0,0,2416,2418,3,122,61,0,2417,2415,1,0,0,0,2418,2421,1,0,0,0,2419,2417,1,0,0,0,2419,2420,1,0,0,0,2420,125,1,0,0,0,2421,2419,1,0,0,0,2422,2423,5,138,0,0,2423,2424,5,353,0,0,2424,2425,3,470,235,0,2425,2426,3,128,64,0,2426,127,1,0,0,0,2427,2432,3,130,65,0,2428,2429,5,6,0,0,2429,2431,3,130,65,0,2430,2428,1,0,0,0,2431,2434,1,0,0,0,2432,2430,1,0,0,0,2432,2433,1,0,0,0,2433,129,1,0,0,0,2434,2432,1,0,0,0,2435,2436,5,133,0,0,2436,2437,5,143,0,0,2437,2438,3,982,491,0,2438,2439,3,100,50,0,2439,2459,1,0,0,0,2440,2441,5,191,0,0,2441,2444,5,143,0,0,2442,2443,5,220,0,0,2443,2445,5,389,0,0,2444,2442,1,0,0,0,2444,2445,1,0,0,0,2445,2446,1,0,0,0,2446,2447,3,1264,632,0,2447,2448,3,100,50,0,2448,2459,1,0,0,0,2449,2450,5,138,0,0,2450,2451,5,143,0,0,2451,2452,3,1264,632,0,2452,2453,3,650,325,0,2453,2454,5,353,0,0,2454,2455,3,996,498,0,2455,2456,3,102,51,0,2456,2457,3,100,50,0,2457,2459,1,0,0,0,2458,2435,1,0,0,0,2458,2440,1,0,0,0,2458,2449,1,0,0,0,2459,131,1,0,0,0,2460,2463,5,157,0,0,2461,2464,3,854,427,0,2462,2464,5,30,0,0,2463,2461,1,0,0,0,2463,2462,1,0,0,0,2464,133,1,0,0,0,2465,2467,5,169,0,0,2466,2468,5,107,0,0,2467,2466,1,0,0,0,2467,2468,1,0,0,0,2468,2469,1,0,0,0,2469,2470,3,1230,615,0,2470,2471,3,192,96,0,2471,2473,3,136,68,0,2472,2474,5,290,0,0,2473,2472,1,0,0,0,2473,2474,1,0,0,0,2474,2475,1,0,0,0,2475,2476,3,138,69,0,2476,2477,3,144,72,0,2477,2478,3,12,6,0,2478,2479,3,140,70,0,2479,2480,3,974,487,0,2480,2494,1,0,0,0,2481,2482,5,169,0,0,2482,2483,5,2,0,0,2483,2484,3,796,398,0,2484,2485,5,3,0,0,2485,2487,5,94,0,0,2486,2488,5,290,0,0,2487,2486,1,0,0,0,2487,2488,1,0,0,0,2488,2489,1,0,0,0,2489,2490,3,138,69,0,2490,2491,3,12,6,0,2491,2492,3,140,70,0,2492,2494,1,0,0,0,2493,2465,1,0,0,0,2493,2481,1,0,0,0,2494,135,1,0,0,0,2495,2496,7,9,0,0,2496,137,1,0,0,0,2497,2501,3,1252,626,0,2498,2501,5,336,0,0,2499,2501,5,337,0,0,2500,2497,1,0,0,0,2500,2498,1,0,0,0,2500,2499,1,0,0,0,2501,139,1,0,0,0,2502,2504,3,142,71,0,2503,2502,1,0,0,0,2504,2507,1,0,0,0,2505,2503,1,0,0,0,2505,2506,1,0,0,0,2506,2513,1,0,0,0,2507,2505,1,0,0,0,2508,2509,5,2,0,0,2509,2510,3,146,73,0,2510,2511,5,3,0,0,2511,2513,1,0,0,0,2512,2505,1,0,0,0,2512,2508,1,0,0,0,2513,141,1,0,0,0,2514,2550,5,107,0,0,2515,2550,5,112,0,0,2516,2517,5,183,0,0,2517,2518,3,748,374,0,2518,2519,3,1252,626,0,2519,2550,1,0,0,0,2520,2521,5,78,0,0,2521,2522,3,748,374,0,2522,2523,3,1252,626,0,2523,2550,1,0,0,0,2524,2550,5,171,0,0,2525,2550,5,216,0,0,2526,2527,5,291,0,0,2527,2528,3,748,374,0,2528,2529,3,1252,626,0,2529,2550,1,0,0,0,2530,2531,5,197,0,0,2531,2532,3,748,374,0,2532,2533,3,1252,626,0,2533,2550,1,0,0,0,2534,2535,5,209,0,0,2535,2536,5,291,0,0,2536,2550,3,194,97,0,2537,2538,5,209,0,0,2538,2539,5,291,0,0,2539,2550,5,9,0,0,2540,2541,5,209,0,0,2541,2542,5,77,0,0,2542,2543,5,78,0,0,2543,2550,3,194,97,0,2544,2545,5,209,0,0,2545,2546,5,78,0,0,2546,2550,3,194,97,0,2547,2548,5,194,0,0,2548,2550,3,1252,626,0,2549,2514,1,0,0,0,2549,2515,1,0,0,0,2549,2516,1,0,0,0,2549,2520,1,0,0,0,2549,2524,1,0,0,0,2549,2525,1,0,0,0,2549,2526,1,0,0,0,2549,2530,1,0,0,0,2549,2534,1,0,0,0,2549,2537,1,0,0,0,2549,2540,1,0,0,0,2549,2544,1,0,0,0,2549,2547,1,0,0,0,2550,143,1,0,0,0,2551,2553,5,100,0,0,2552,2551,1,0,0,0,2552,2553,1,0,0,0,2553,2554,1,0,0,0,2554,2555,5,184,0,0,2555,2558,3,1252,626,0,2556,2558,1,0,0,0,2557,2552,1,0,0,0,2557,2556,1,0,0,0,2558,145,1,0,0,0,2559,2564,3,148,74,0,2560,2561,5,6,0,0,2561,2563,3,148,74,0,2562,2560,1,0,0,0,2563,2566,1,0,0,0,2564,2562,1,0,0,0,2564,2565,1,0,0,0,2565,147,1,0,0,0,2566,2564,1,0,0,0,2567,2568,3,1272,636,0,2568,2569,3,150,75,0,2569,149,1,0,0,0,2570,2586,3,58,29,0,2571,2586,3,264,132,0,2572,2586,5,9,0,0,2573,2574,5,2,0,0,2574,2579,3,58,29,0,2575,2576,5,6,0,0,2576,2578,3,58,29,0,2577,2575,1,0,0,0,2578,2581,1,0,0,0,2579,2577,1,0,0,0,2579,2580,1,0,0,0,2580,2582,1,0,0,0,2581,2579,1,0,0,0,2582,2583,5,3,0,0,2583,2586,1,0,0,0,2584,2586,1,0,0,0,2585,2570,1,0,0,0,2585,2571,1,0,0,0,2585,2572,1,0,0,0,2585,2573,1,0,0,0,2585,2584,1,0,0,0,2586,151,1,0,0,0,2587,2588,5,46,0,0,2588,2589,3,154,77,0,2589,2593,5,92,0,0,2590,2591,5,220,0,0,2591,2592,5,77,0,0,2592,2594,5,389,0,0,2593,2590,1,0,0,0,2593,2594,1,0,0,0,2594,2595,1,0,0,0,2595,2626,3,1230,615,0,2596,2597,5,2,0,0,2597,2598,3,156,78,0,2598,2599,5,3,0,0,2599,2600,3,216,108,0,2600,2601,3,218,109,0,2601,2602,3,226,113,0,2602,2603,3,228,114,0,2603,2604,3,230,115,0,2604,2605,3,232,116,0,2605,2627,1,0,0,0,2606,2607,5,268,0,0,2607,2608,3,470,235,0,2608,2609,3,158,79,0,2609,2610,3,218,109,0,2610,2611,3,226,113,0,2611,2612,3,228,114,0,2612,2613,3,230,115,0,2613,2614,3,232,116,0,2614,2627,1,0,0,0,2615,2616,5,278,0,0,2616,2617,5,268,0,0,2617,2618,3,1230,615,0,2618,2619,3,158,79,0,2619,2620,3,120,60,0,2620,2621,3,218,109,0,2621,2622,3,226,113,0,2622,2623,3,228,114,0,2623,2624,3,230,115,0,2624,2625,3,232,116,0,2625,2627,1,0,0,0,2626,2596,1,0,0,0,2626,2606,1,0,0,0,2626,2615,1,0,0,0,2627,153,1,0,0,0,2628,2637,5,347,0,0,2629,2637,5,345,0,0,2630,2631,5,245,0,0,2631,2637,7,10,0,0,2632,2633,5,213,0,0,2633,2637,7,10,0,0,2634,2637,5,360,0,0,2635,2637,1,0,0,0,2636,2628,1,0,0,0,2636,2629,1,0,0,0,2636,2630,1,0,0,0,2636,2632,1,0,0,0,2636,2634,1,0,0,0,2636,2635,1,0,0,0,2637,155,1,0,0,0,2638,2641,3,160,80,0,2639,2641,1,0,0,0,2640,2638,1,0,0,0,2640,2639,1,0,0,0,2641,157,1,0,0,0,2642,2643,5,2,0,0,2643,2644,3,162,81,0,2644,2645,5,3,0,0,2645,2648,1,0,0,0,2646,2648,1,0,0,0,2647,2642,1,0,0,0,2647,2646,1,0,0,0,2648,159,1,0,0,0,2649,2654,3,164,82,0,2650,2651,5,6,0,0,2651,2653,3,164,82,0,2652,2650,1,0,0,0,2653,2656,1,0,0,0,2654,2652,1,0,0,0,2654,2655,1,0,0,0,2655,161,1,0,0,0,2656,2654,1,0,0,0,2657,2662,3,166,83,0,2658,2659,5,6,0,0,2659,2661,3,166,83,0,2660,2658,1,0,0,0,2661,2664,1,0,0,0,2662,2660,1,0,0,0,2662,2663,1,0,0,0,2663,163,1,0,0,0,2664,2662,1,0,0,0,2665,2669,3,188,94,0,2666,2669,3,182,91,0,2667,2669,3,168,84,0,2668,2665,1,0,0,0,2668,2666,1,0,0,0,2668,2667,1,0,0,0,2669,165,1,0,0,0,2670,2673,3,170,85,0,2671,2673,3,188,94,0,2672,2670,1,0,0,0,2672,2671,1,0,0,0,2673,167,1,0,0,0,2674,2675,3,1264,632,0,2675,2676,3,996,498,0,2676,2677,3,302,151,0,2677,2678,3,172,86,0,2678,169,1,0,0,0,2679,2682,3,1264,632,0,2680,2681,5,105,0,0,2681,2683,5,273,0,0,2682,2680,1,0,0,0,2682,2683,1,0,0,0,2683,2684,1,0,0,0,2684,2685,3,172,86,0,2685,171,1,0,0,0,2686,2688,3,174,87,0,2687,2686,1,0,0,0,2688,2691,1,0,0,0,2689,2687,1,0,0,0,2689,2690,1,0,0,0,2690,173,1,0,0,0,2691,2689,1,0,0,0,2692,2693,5,45,0,0,2693,2694,3,1234,617,0,2694,2695,3,176,88,0,2695,2701,1,0,0,0,2696,2701,3,176,88,0,2697,2701,3,180,90,0,2698,2699,5,43,0,0,2699,2701,3,470,235,0,2700,2692,1,0,0,0,2700,2696,1,0,0,0,2700,2697,1,0,0,0,2700,2698,1,0,0,0,2701,175,1,0,0,0,2702,2703,5,77,0,0,2703,2743,5,78,0,0,2704,2743,5,78,0,0,2705,2706,5,98,0,0,2706,2707,3,594,297,0,2707,2708,3,234,117,0,2708,2743,1,0,0,0,2709,2710,5,85,0,0,2710,2711,5,236,0,0,2711,2712,3,594,297,0,2712,2713,3,234,117,0,2713,2743,1,0,0,0,2714,2715,5,42,0,0,2715,2716,5,2,0,0,2716,2717,3,1038,519,0,2717,2720,5,3,0,0,2718,2719,5,262,0,0,2719,2721,5,228,0,0,2720,2718,1,0,0,0,2720,2721,1,0,0,0,2721,2743,1,0,0,0,2722,2723,5,53,0,0,2723,2743,3,1080,540,0,2724,2725,5,438,0,0,2725,2726,3,178,89,0,2726,2734,5,36,0,0,2727,2728,5,219,0,0,2728,2735,3,258,129,0,2729,2730,5,2,0,0,2730,2731,3,1038,519,0,2731,2732,5,3,0,0,2732,2733,5,440,0,0,2733,2735,1,0,0,0,2734,2727,1,0,0,0,2734,2729,1,0,0,0,2735,2743,1,0,0,0,2736,2737,5,86,0,0,2737,2738,3,1230,615,0,2738,2739,3,192,96,0,2739,2740,3,200,100,0,2740,2741,3,208,104,0,2741,2743,1,0,0,0,2742,2702,1,0,0,0,2742,2704,1,0,0,0,2742,2705,1,0,0,0,2742,2709,1,0,0,0,2742,2714,1,0,0,0,2742,2722,1,0,0,0,2742,2724,1,0,0,0,2742,2736,1,0,0,0,2743,177,1,0,0,0,2744,2748,5,139,0,0,2745,2746,5,147,0,0,2746,2748,5,53,0,0,2747,2744,1,0,0,0,2747,2745,1,0,0,0,2748,179,1,0,0,0,2749,2755,5,54,0,0,2750,2751,5,77,0,0,2751,2755,5,54,0,0,2752,2753,5,69,0,0,2753,2755,7,5,0,0,2754,2749,1,0,0,0,2754,2750,1,0,0,0,2754,2752,1,0,0,0,2755,181,1,0,0,0,2756,2757,5,120,0,0,2757,2758,3,1230,615,0,2758,2759,3,184,92,0,2759,183,1,0,0,0,2760,2761,7,11,0,0,2761,2763,3,186,93,0,2762,2760,1,0,0,0,2763,2766,1,0,0,0,2764,2762,1,0,0,0,2764,2765,1,0,0,0,2765,185,1,0,0,0,2766,2764,1,0,0,0,2767,2768,7,12,0,0,2768,187,1,0,0,0,2769,2770,5,45,0,0,2770,2771,3,1234,617,0,2771,2772,3,190,95,0,2772,2775,1,0,0,0,2773,2775,3,190,95,0,2774,2769,1,0,0,0,2774,2773,1,0,0,0,2775,189,1,0,0,0,2776,2777,5,42,0,0,2777,2778,5,2,0,0,2778,2779,3,1038,519,0,2779,2780,5,3,0,0,2780,2781,3,396,198,0,2781,2835,1,0,0,0,2782,2794,5,98,0,0,2783,2784,5,2,0,0,2784,2785,3,194,97,0,2785,2786,5,3,0,0,2786,2787,3,198,99,0,2787,2788,3,594,297,0,2788,2789,3,234,117,0,2789,2790,3,396,198,0,2790,2795,1,0,0,0,2791,2792,3,236,118,0,2792,2793,3,396,198,0,2793,2795,1,0,0,0,2794,2783,1,0,0,0,2794,2791,1,0,0,0,2795,2835,1,0,0,0,2796,2797,5,85,0,0,2797,2809,5,236,0,0,2798,2799,5,2,0,0,2799,2800,3,194,97,0,2800,2801,5,3,0,0,2801,2802,3,198,99,0,2802,2803,3,594,297,0,2803,2804,3,234,117,0,2804,2805,3,396,198,0,2805,2810,1,0,0,0,2806,2807,3,236,118,0,2807,2808,3,396,198,0,2808,2810,1,0,0,0,2809,2798,1,0,0,0,2809,2806,1,0,0,0,2810,2835,1,0,0,0,2811,2812,5,199,0,0,2812,2813,3,534,267,0,2813,2814,5,2,0,0,2814,2815,3,202,101,0,2815,2816,5,3,0,0,2816,2817,3,198,99,0,2817,2818,3,594,297,0,2818,2819,3,234,117,0,2819,2820,3,206,103,0,2820,2821,3,396,198,0,2821,2835,1,0,0,0,2822,2823,5,63,0,0,2823,2824,5,236,0,0,2824,2825,5,2,0,0,2825,2826,3,194,97,0,2826,2827,5,3,0,0,2827,2828,5,86,0,0,2828,2829,3,1230,615,0,2829,2830,3,192,96,0,2830,2831,3,200,100,0,2831,2832,3,208,104,0,2832,2833,3,396,198,0,2833,2835,1,0,0,0,2834,2776,1,0,0,0,2834,2782,1,0,0,0,2834,2796,1,0,0,0,2834,2811,1,0,0,0,2834,2822,1,0,0,0,2835,191,1,0,0,0,2836,2837,5,2,0,0,2837,2838,3,194,97,0,2838,2839,5,3,0,0,2839,2842,1,0,0,0,2840,2842,1,0,0,0,2841,2836,1,0,0,0,2841,2840,1,0,0,0,2842,193,1,0,0,0,2843,2848,3,196,98,0,2844,2845,5,6,0,0,2845,2847,3,196,98,0,2846,2844,1,0,0,0,2847,2850,1,0,0,0,2848,2846,1,0,0,0,2848,2849,1,0,0,0,2849,195,1,0,0,0,2850,2848,1,0,0,0,2851,2852,3,1264,632,0,2852,197,1,0,0,0,2853,2854,5,441,0,0,2854,2855,5,2,0,0,2855,2856,3,194,97,0,2856,2857,5,3,0,0,2857,2860,1,0,0,0,2858,2860,1,0,0,0,2859,2853,1,0,0,0,2859,2858,1,0,0,0,2860,199,1,0,0,0,2861,2862,5,249,0,0,2862,2865,7,13,0,0,2863,2865,1,0,0,0,2864,2861,1,0,0,0,2864,2863,1,0,0,0,2865,201,1,0,0,0,2866,2871,3,204,102,0,2867,2868,5,6,0,0,2868,2870,3,204,102,0,2869,2867,1,0,0,0,2870,2873,1,0,0,0,2871,2869,1,0,0,0,2871,2872,1,0,0,0,2872,203,1,0,0,0,2873,2871,1,0,0,0,2874,2875,3,540,270,0,2875,2882,5,105,0,0,2876,2883,3,610,305,0,2877,2878,5,271,0,0,2878,2879,5,2,0,0,2879,2880,3,610,305,0,2880,2881,5,3,0,0,2881,2883,1,0,0,0,2882,2876,1,0,0,0,2882,2877,1,0,0,0,2883,205,1,0,0,0,2884,2885,5,103,0,0,2885,2886,5,2,0,0,2886,2887,3,1038,519,0,2887,2888,5,3,0,0,2888,2891,1,0,0,0,2889,2891,1,0,0,0,2890,2884,1,0,0,0,2890,2889,1,0,0,0,2891,207,1,0,0,0,2892,2902,3,210,105,0,2893,2902,3,212,106,0,2894,2895,3,210,105,0,2895,2896,3,212,106,0,2896,2902,1,0,0,0,2897,2898,3,212,106,0,2898,2899,3,210,105,0,2899,2902,1,0,0,0,2900,2902,1,0,0,0,2901,2892,1,0,0,0,2901,2893,1,0,0,0,2901,2894,1,0,0,0,2901,2897,1,0,0,0,2901,2900,1,0,0,0,2902,209,1,0,0,0,2903,2904,5,80,0,0,2904,2905,5,362,0,0,2905,2906,3,214,107,0,2906,211,1,0,0,0,2907,2908,5,80,0,0,2908,2909,5,182,0,0,2909,2910,3,214,107,0,2910,213,1,0,0,0,2911,2912,5,262,0,0,2912,2918,5,132,0,0,2913,2918,5,308,0,0,2914,2918,5,150,0,0,2915,2916,5,326,0,0,2916,2918,7,14,0,0,2917,2911,1,0,0,0,2917,2913,1,0,0,0,2917,2914,1,0,0,0,2917,2915,1,0,0,0,2918,215,1,0,0,0,2919,2920,5,229,0,0,2920,2921,5,2,0,0,2921,2922,3,1208,604,0,2922,2923,5,3,0,0,2923,2926,1,0,0,0,2924,2926,1,0,0,0,2925,2919,1,0,0,0,2925,2924,1,0,0,0,2926,217,1,0,0,0,2927,2930,3,220,110,0,2928,2930,1,0,0,0,2929,2927,1,0,0,0,2929,2928,1,0,0,0,2930,219,1,0,0,0,2931,2932,5,278,0,0,2932,2933,5,147,0,0,2933,2934,3,1264,632,0,2934,2935,5,2,0,0,2935,2936,3,222,111,0,2936,2937,5,3,0,0,2937,221,1,0,0,0,2938,2943,3,224,112,0,2939,2940,5,6,0,0,2940,2942,3,224,112,0,2941,2939,1,0,0,0,2942,2945,1,0,0,0,2943,2941,1,0,0,0,2943,2944,1,0,0,0,2944,223,1,0,0,0,2945,2943,1,0,0,0,2946,2947,3,1264,632,0,2947,2948,3,544,272,0,2948,2949,3,546,273,0,2949,2961,1,0,0,0,2950,2951,3,1090,545,0,2951,2952,3,544,272,0,2952,2953,3,546,273,0,2953,2961,1,0,0,0,2954,2955,5,2,0,0,2955,2956,3,1038,519,0,2956,2957,5,3,0,0,2957,2958,3,544,272,0,2958,2959,3,546,273,0,2959,2961,1,0,0,0,2960,2946,1,0,0,0,2960,2950,1,0,0,0,2960,2954,1,0,0,0,2961,225,1,0,0,0,2962,2963,5,100,0,0,2963,2966,3,1234,617,0,2964,2966,1,0,0,0,2965,2962,1,0,0,0,2965,2964,1,0,0,0,2966,227,1,0,0,0,2967,2968,5,105,0,0,2968,2973,3,108,54,0,2969,2970,5,372,0,0,2970,2973,5,270,0,0,2971,2973,1,0,0,0,2972,2967,1,0,0,0,2972,2969,1,0,0,0,2972,2971,1,0,0,0,2973,229,1,0,0,0,2974,2975,5,80,0,0,2975,2981,5,161,0,0,2976,2982,5,191,0,0,2977,2978,5,182,0,0,2978,2982,5,313,0,0,2979,2980,5,285,0,0,2980,2982,5,313,0,0,2981,2976,1,0,0,0,2981,2977,1,0,0,0,2981,2979,1,0,0,0,2982,2985,1,0,0,0,2983,2985,1,0,0,0,2984,2974,1,0,0,0,2984,2983,1,0,0,0,2985,231,1,0,0,0,2986,2987,5,344,0,0,2987,2990,3,1234,617,0,2988,2990,1,0,0,0,2989,2986,1,0,0,0,2989,2988,1,0,0,0,2990,233,1,0,0,0,2991,2992,5,100,0,0,2992,2993,5,226,0,0,2993,2994,5,344,0,0,2994,2997,3,1234,617,0,2995,2997,1,0,0,0,2996,2991,1,0,0,0,2996,2995,1,0,0,0,2997,235,1,0,0,0,2998,2999,5,100,0,0,2999,3e3,5,226,0,0,3e3,3001,3,1218,609,0,3001,237,1,0,0,0,3002,3003,5,46,0,0,3003,3007,5,335,0,0,3004,3005,5,220,0,0,3005,3006,5,77,0,0,3006,3008,5,389,0,0,3007,3004,1,0,0,0,3007,3008,1,0,0,0,3008,3009,1,0,0,0,3009,3010,3,470,235,0,3010,3011,3,776,388,0,3011,3012,5,80,0,0,3012,3013,3,1156,578,0,3013,3014,5,64,0,0,3014,3015,3,938,469,0,3015,239,1,0,0,0,3016,3017,5,138,0,0,3017,3020,5,335,0,0,3018,3019,5,220,0,0,3019,3021,5,389,0,0,3020,3018,1,0,0,0,3020,3021,1,0,0,0,3021,3022,1,0,0,0,3022,3023,3,470,235,0,3023,3024,5,326,0,0,3024,3025,5,335,0,0,3025,3026,3,1258,629,0,3026,241,1,0,0,0,3027,3028,5,46,0,0,3028,3029,3,154,77,0,3029,3033,5,92,0,0,3030,3031,5,220,0,0,3031,3032,5,77,0,0,3032,3034,5,389,0,0,3033,3030,1,0,0,0,3033,3034,1,0,0,0,3034,3035,1,0,0,0,3035,3036,3,244,122,0,3036,3037,5,36,0,0,3037,3038,3,858,429,0,3038,3039,3,246,123,0,3039,243,1,0,0,0,3040,3041,3,1230,615,0,3041,3042,3,192,96,0,3042,3043,3,226,113,0,3043,3044,3,228,114,0,3044,3045,3,230,115,0,3045,3046,3,232,116,0,3046,245,1,0,0,0,3047,3051,5,105,0,0,3048,3052,5,174,0,0,3049,3050,5,262,0,0,3050,3052,5,174,0,0,3051,3048,1,0,0,0,3051,3049,1,0,0,0,3052,3055,1,0,0,0,3053,3055,1,0,0,0,3054,3047,1,0,0,0,3054,3053,1,0,0,0,3055,247,1,0,0,0,3056,3058,5,46,0,0,3057,3059,5,360,0,0,3058,3057,1,0,0,0,3058,3059,1,0,0,0,3059,3060,1,0,0,0,3060,3061,5,251,0,0,3061,3065,5,369,0,0,3062,3063,5,220,0,0,3063,3064,5,77,0,0,3064,3066,5,389,0,0,3065,3062,1,0,0,0,3065,3066,1,0,0,0,3066,3067,1,0,0,0,3067,3068,3,250,125,0,3068,3069,5,36,0,0,3069,3070,3,858,429,0,3070,3071,3,246,123,0,3071,249,1,0,0,0,3072,3073,3,1230,615,0,3073,3074,3,192,96,0,3074,3075,3,226,113,0,3075,3076,3,110,55,0,3076,3077,3,232,116,0,3077,251,1,0,0,0,3078,3079,5,298,0,0,3079,3080,5,251,0,0,3080,3082,5,369,0,0,3081,3083,5,109,0,0,3082,3081,1,0,0,0,3082,3083,1,0,0,0,3083,3084,1,0,0,0,3084,3085,3,1230,615,0,3085,3086,3,246,123,0,3086,253,1,0,0,0,3087,3088,5,46,0,0,3088,3089,3,154,77,0,3089,3093,5,321,0,0,3090,3091,5,220,0,0,3091,3092,5,77,0,0,3092,3094,5,389,0,0,3093,3090,1,0,0,0,3093,3094,1,0,0,0,3094,3095,1,0,0,0,3095,3097,3,1230,615,0,3096,3098,3,260,130,0,3097,3096,1,0,0,0,3097,3098,1,0,0,0,3098,255,1,0,0,0,3099,3100,5,138,0,0,3100,3103,5,321,0,0,3101,3102,5,220,0,0,3102,3104,5,389,0,0,3103,3101,1,0,0,0,3103,3104,1,0,0,0,3104,3105,1,0,0,0,3105,3106,3,1226,613,0,3106,3107,3,260,130,0,3107,257,1,0,0,0,3108,3109,5,2,0,0,3109,3110,3,260,130,0,3110,3111,5,3,0,0,3111,3114,1,0,0,0,3112,3114,1,0,0,0,3113,3108,1,0,0,0,3113,3112,1,0,0,0,3114,259,1,0,0,0,3115,3117,3,262,131,0,3116,3115,1,0,0,0,3117,3118,1,0,0,0,3118,3116,1,0,0,0,3118,3119,1,0,0,0,3119,261,1,0,0,0,3120,3121,5,36,0,0,3121,3152,3,998,499,0,3122,3123,5,148,0,0,3123,3152,3,264,132,0,3124,3152,5,173,0,0,3125,3127,5,225,0,0,3126,3128,5,147,0,0,3127,3126,1,0,0,0,3127,3128,1,0,0,0,3128,3129,1,0,0,0,3129,3152,3,264,132,0,3130,3131,5,252,0,0,3131,3152,3,264,132,0,3132,3133,5,255,0,0,3133,3152,3,264,132,0,3134,3135,5,262,0,0,3135,3152,7,15,0,0,3136,3137,5,274,0,0,3137,3138,5,147,0,0,3138,3152,3,470,235,0,3139,3140,5,321,0,0,3140,3141,5,259,0,0,3141,3152,3,470,235,0,3142,3143,5,333,0,0,3143,3144,3,12,6,0,3144,3145,3,264,132,0,3145,3152,1,0,0,0,3146,3147,5,307,0,0,3147,3149,3,12,6,0,3148,3150,3,264,132,0,3149,3148,1,0,0,0,3149,3150,1,0,0,0,3150,3152,1,0,0,0,3151,3120,1,0,0,0,3151,3122,1,0,0,0,3151,3124,1,0,0,0,3151,3125,1,0,0,0,3151,3130,1,0,0,0,3151,3132,1,0,0,0,3151,3134,1,0,0,0,3151,3136,1,0,0,0,3151,3139,1,0,0,0,3151,3142,1,0,0,0,3151,3146,1,0,0,0,3152,263,1,0,0,0,3153,3160,3,1248,624,0,3154,3155,5,12,0,0,3155,3160,3,1248,624,0,3156,3157,5,13,0,0,3157,3160,3,1248,624,0,3158,3160,3,1258,629,0,3159,3153,1,0,0,0,3159,3154,1,0,0,0,3159,3156,1,0,0,0,3159,3158,1,0,0,0,3160,265,1,0,0,0,3161,3166,3,264,132,0,3162,3163,5,6,0,0,3163,3165,3,264,132,0,3164,3162,1,0,0,0,3165,3168,1,0,0,0,3166,3164,1,0,0,0,3166,3167,1,0,0,0,3167,267,1,0,0,0,3168,3166,1,0,0,0,3169,3170,5,46,0,0,3170,3172,3,554,277,0,3171,3173,5,352,0,0,3172,3171,1,0,0,0,3172,3173,1,0,0,0,3173,3174,1,0,0,0,3174,3175,3,276,138,0,3175,3176,5,238,0,0,3176,3183,3,1234,617,0,3177,3178,5,215,0,0,3178,3179,3,270,135,0,3179,3181,3,272,136,0,3180,3182,3,274,137,0,3181,3180,1,0,0,0,3181,3182,1,0,0,0,3182,3184,1,0,0,0,3183,3177,1,0,0,0,3183,3184,1,0,0,0,3184,269,1,0,0,0,3185,3187,3,1234,617,0,3186,3188,3,472,236,0,3187,3186,1,0,0,0,3187,3188,1,0,0,0,3188,271,1,0,0,0,3189,3190,5,230,0,0,3190,3193,3,270,135,0,3191,3193,1,0,0,0,3192,3189,1,0,0,0,3192,3191,1,0,0,0,3193,273,1,0,0,0,3194,3195,5,366,0,0,3195,3199,3,270,135,0,3196,3197,5,262,0,0,3197,3199,5,366,0,0,3198,3194,1,0,0,0,3198,3196,1,0,0,0,3199,275,1,0,0,0,3200,3203,5,288,0,0,3201,3203,1,0,0,0,3202,3200,1,0,0,0,3202,3201,1,0,0,0,3203,277,1,0,0,0,3204,3205,5,46,0,0,3205,3206,5,344,0,0,3206,3207,3,1234,617,0,3207,3208,3,280,140,0,3208,3209,5,246,0,0,3209,3210,3,1252,626,0,3210,3211,3,110,55,0,3211,279,1,0,0,0,3212,3213,5,275,0,0,3213,3216,3,1260,630,0,3214,3216,1,0,0,0,3215,3212,1,0,0,0,3215,3214,1,0,0,0,3216,281,1,0,0,0,3217,3218,5,191,0,0,3218,3221,5,344,0,0,3219,3220,5,220,0,0,3220,3222,5,389,0,0,3221,3219,1,0,0,0,3221,3222,1,0,0,0,3222,3223,1,0,0,0,3223,3224,3,1234,617,0,3224,283,1,0,0,0,3225,3226,5,46,0,0,3226,3230,5,204,0,0,3227,3228,5,220,0,0,3228,3229,5,77,0,0,3229,3231,5,389,0,0,3230,3227,1,0,0,0,3230,3231,1,0,0,0,3231,3232,1,0,0,0,3232,3233,3,1234,617,0,3233,3237,3,12,6,0,3234,3236,3,286,143,0,3235,3234,1,0,0,0,3236,3239,1,0,0,0,3237,3235,1,0,0,0,3237,3238,1,0,0,0,3238,285,1,0,0,0,3239,3237,1,0,0,0,3240,3241,5,316,0,0,3241,3248,3,1214,607,0,3242,3243,5,368,0,0,3243,3248,3,64,32,0,3244,3245,5,64,0,0,3245,3248,3,64,32,0,3246,3248,5,150,0,0,3247,3240,1,0,0,0,3247,3242,1,0,0,0,3247,3244,1,0,0,0,3247,3246,1,0,0,0,3248,287,1,0,0,0,3249,3250,5,138,0,0,3250,3251,5,204,0,0,3251,3252,3,1234,617,0,3252,3256,5,362,0,0,3253,3255,3,290,145,0,3254,3253,1,0,0,0,3255,3258,1,0,0,0,3256,3254,1,0,0,0,3256,3257,1,0,0,0,3257,289,1,0,0,0,3258,3256,1,0,0,0,3259,3260,5,94,0,0,3260,3261,3,64,32,0,3261,291,1,0,0,0,3262,3263,5,138,0,0,3263,3264,5,204,0,0,3264,3265,3,1234,617,0,3265,3266,3,32,16,0,3266,3267,3,462,231,0,3267,3268,3,1234,617,0,3268,3402,1,0,0,0,3269,3270,5,138,0,0,3270,3271,5,204,0,0,3271,3272,3,1234,617,0,3272,3273,3,32,16,0,3273,3274,5,311,0,0,3274,3275,3,1260,630,0,3275,3402,1,0,0,0,3276,3277,5,138,0,0,3277,3278,5,204,0,0,3278,3279,3,1234,617,0,3279,3280,3,32,16,0,3280,3281,5,175,0,0,3281,3282,3,1210,605,0,3282,3402,1,0,0,0,3283,3284,5,138,0,0,3284,3285,5,204,0,0,3285,3286,3,1234,617,0,3286,3287,3,32,16,0,3287,3288,5,316,0,0,3288,3289,3,1214,607,0,3289,3402,1,0,0,0,3290,3291,5,138,0,0,3291,3292,5,204,0,0,3292,3293,3,1234,617,0,3293,3294,3,32,16,0,3294,3295,5,226,0,0,3295,3296,3,1218,609,0,3296,3402,1,0,0,0,3297,3298,5,138,0,0,3298,3299,5,204,0,0,3299,3300,3,1234,617,0,3300,3301,3,32,16,0,3301,3302,3,460,230,0,3302,3303,3,470,235,0,3303,3402,1,0,0,0,3304,3305,5,138,0,0,3305,3306,5,204,0,0,3306,3307,3,1234,617,0,3307,3308,3,32,16,0,3308,3309,5,321,0,0,3309,3310,3,1226,613,0,3310,3402,1,0,0,0,3311,3312,5,138,0,0,3312,3313,5,204,0,0,3313,3314,3,1234,617,0,3314,3315,3,32,16,0,3315,3316,5,136,0,0,3316,3317,3,580,290,0,3317,3402,1,0,0,0,3318,3319,5,138,0,0,3319,3320,5,204,0,0,3320,3321,3,1234,617,0,3321,3322,3,32,16,0,3322,3323,5,41,0,0,3323,3324,5,2,0,0,3324,3325,3,996,498,0,3325,3326,5,36,0,0,3326,3327,3,996,498,0,3327,3328,5,3,0,0,3328,3402,1,0,0,0,3329,3330,5,138,0,0,3330,3331,5,204,0,0,3331,3332,3,1234,617,0,3332,3333,3,32,16,0,3333,3334,5,189,0,0,3334,3335,3,996,498,0,3335,3402,1,0,0,0,3336,3337,5,138,0,0,3337,3338,5,204,0,0,3338,3339,3,1234,617,0,3339,3340,3,32,16,0,3340,3341,5,211,0,0,3341,3342,3,560,280,0,3342,3402,1,0,0,0,3343,3344,5,138,0,0,3344,3345,5,204,0,0,3345,3346,3,1234,617,0,3346,3347,3,32,16,0,3347,3348,5,271,0,0,3348,3349,3,614,307,0,3349,3402,1,0,0,0,3350,3351,5,138,0,0,3351,3352,5,204,0,0,3352,3353,3,1234,617,0,3353,3354,3,32,16,0,3354,3355,5,271,0,0,3355,3356,5,156,0,0,3356,3357,3,470,235,0,3357,3358,5,100,0,0,3358,3359,3,1234,617,0,3359,3402,1,0,0,0,3360,3361,5,138,0,0,3361,3362,5,204,0,0,3362,3363,3,1234,617,0,3363,3364,3,32,16,0,3364,3365,5,271,0,0,3365,3366,5,206,0,0,3366,3367,3,470,235,0,3367,3368,5,100,0,0,3368,3369,3,1234,617,0,3369,3402,1,0,0,0,3370,3371,5,138,0,0,3371,3372,5,204,0,0,3372,3373,3,1234,617,0,3373,3374,3,32,16,0,3374,3375,5,289,0,0,3375,3376,3,560,280,0,3376,3402,1,0,0,0,3377,3378,5,138,0,0,3378,3379,5,204,0,0,3379,3380,3,1234,617,0,3380,3381,3,32,16,0,3381,3382,5,442,0,0,3382,3383,3,560,280,0,3383,3402,1,0,0,0,3384,3385,5,138,0,0,3385,3386,5,204,0,0,3386,3387,3,1234,617,0,3387,3388,3,32,16,0,3388,3389,5,443,0,0,3389,3390,5,62,0,0,3390,3391,3,996,498,0,3391,3392,5,238,0,0,3392,3393,3,1234,617,0,3393,3402,1,0,0,0,3394,3395,5,138,0,0,3395,3396,5,204,0,0,3396,3397,3,1234,617,0,3397,3398,3,32,16,0,3398,3399,5,353,0,0,3399,3400,3,996,498,0,3400,3402,1,0,0,0,3401,3262,1,0,0,0,3401,3269,1,0,0,0,3401,3276,1,0,0,0,3401,3283,1,0,0,0,3401,3290,1,0,0,0,3401,3297,1,0,0,0,3401,3304,1,0,0,0,3401,3311,1,0,0,0,3401,3318,1,0,0,0,3401,3329,1,0,0,0,3401,3336,1,0,0,0,3401,3343,1,0,0,0,3401,3350,1,0,0,0,3401,3360,1,0,0,0,3401,3370,1,0,0,0,3401,3377,1,0,0,0,3401,3384,1,0,0,0,3401,3394,1,0,0,0,3402,293,1,0,0,0,3403,3404,5,46,0,0,3404,3405,5,63,0,0,3405,3406,5,174,0,0,3406,3407,5,374,0,0,3407,3409,3,1234,617,0,3408,3410,3,298,149,0,3409,3408,1,0,0,0,3409,3410,1,0,0,0,3410,3411,1,0,0,0,3411,3412,3,302,151,0,3412,295,1,0,0,0,3413,3414,5,215,0,0,3414,3422,3,270,135,0,3415,3416,5,262,0,0,3416,3422,5,215,0,0,3417,3418,5,366,0,0,3418,3422,3,270,135,0,3419,3420,5,262,0,0,3420,3422,5,366,0,0,3421,3413,1,0,0,0,3421,3415,1,0,0,0,3421,3417,1,0,0,0,3421,3419,1,0,0,0,3422,297,1,0,0,0,3423,3425,3,296,148,0,3424,3423,1,0,0,0,3425,3426,1,0,0,0,3426,3424,1,0,0,0,3426,3427,1,0,0,0,3427,299,1,0,0,0,3428,3429,5,138,0,0,3429,3430,5,63,0,0,3430,3431,5,174,0,0,3431,3432,5,374,0,0,3432,3434,3,1234,617,0,3433,3435,3,298,149,0,3434,3433,1,0,0,0,3434,3435,1,0,0,0,3435,3436,1,0,0,0,3436,3437,3,306,153,0,3437,3446,1,0,0,0,3438,3439,5,138,0,0,3439,3440,5,63,0,0,3440,3441,5,174,0,0,3441,3442,5,374,0,0,3442,3443,3,1234,617,0,3443,3444,3,298,149,0,3444,3446,1,0,0,0,3445,3428,1,0,0,0,3445,3438,1,0,0,0,3446,301,1,0,0,0,3447,3448,5,273,0,0,3448,3449,5,2,0,0,3449,3450,3,304,152,0,3450,3451,5,3,0,0,3451,3454,1,0,0,0,3452,3454,1,0,0,0,3453,3447,1,0,0,0,3453,3452,1,0,0,0,3454,303,1,0,0,0,3455,3460,3,312,156,0,3456,3457,5,6,0,0,3457,3459,3,312,156,0,3458,3456,1,0,0,0,3459,3462,1,0,0,0,3460,3458,1,0,0,0,3460,3461,1,0,0,0,3461,305,1,0,0,0,3462,3460,1,0,0,0,3463,3464,5,273,0,0,3464,3465,5,2,0,0,3465,3466,3,308,154,0,3466,3467,5,3,0,0,3467,307,1,0,0,0,3468,3473,3,310,155,0,3469,3470,5,6,0,0,3470,3472,3,310,155,0,3471,3469,1,0,0,0,3472,3475,1,0,0,0,3473,3471,1,0,0,0,3473,3474,1,0,0,0,3474,309,1,0,0,0,3475,3473,1,0,0,0,3476,3484,3,312,156,0,3477,3478,5,326,0,0,3478,3484,3,312,156,0,3479,3480,5,133,0,0,3480,3484,3,312,156,0,3481,3482,5,191,0,0,3482,3484,3,314,157,0,3483,3476,1,0,0,0,3483,3477,1,0,0,0,3483,3479,1,0,0,0,3483,3481,1,0,0,0,3484,311,1,0,0,0,3485,3486,3,314,157,0,3486,3487,3,316,158,0,3487,313,1,0,0,0,3488,3489,3,1272,636,0,3489,315,1,0,0,0,3490,3491,3,1252,626,0,3491,317,1,0,0,0,3492,3493,5,46,0,0,3493,3494,5,324,0,0,3494,3495,3,1234,617,0,3495,3497,3,320,160,0,3496,3498,3,322,161,0,3497,3496,1,0,0,0,3497,3498,1,0,0,0,3498,3499,1,0,0,0,3499,3500,5,63,0,0,3500,3501,5,174,0,0,3501,3502,5,374,0,0,3502,3503,3,1234,617,0,3503,3504,3,302,151,0,3504,3522,1,0,0,0,3505,3506,5,46,0,0,3506,3507,5,324,0,0,3507,3508,5,220,0,0,3508,3509,5,77,0,0,3509,3510,5,389,0,0,3510,3511,3,1234,617,0,3511,3513,3,320,160,0,3512,3514,3,322,161,0,3513,3512,1,0,0,0,3513,3514,1,0,0,0,3514,3515,1,0,0,0,3515,3516,5,63,0,0,3516,3517,5,174,0,0,3517,3518,5,374,0,0,3518,3519,3,1234,617,0,3519,3520,3,302,151,0,3520,3522,1,0,0,0,3521,3492,1,0,0,0,3521,3505,1,0,0,0,3522,319,1,0,0,0,3523,3524,5,353,0,0,3524,3527,3,1252,626,0,3525,3527,1,0,0,0,3526,3523,1,0,0,0,3526,3525,1,0,0,0,3527,321,1,0,0,0,3528,3531,5,368,0,0,3529,3532,3,1252,626,0,3530,3532,5,78,0,0,3531,3529,1,0,0,0,3531,3530,1,0,0,0,3532,323,1,0,0,0,3533,3534,5,138,0,0,3534,3535,5,324,0,0,3535,3541,3,1234,617,0,3536,3542,3,306,153,0,3537,3539,3,322,161,0,3538,3540,3,306,153,0,3539,3538,1,0,0,0,3539,3540,1,0,0,0,3540,3542,1,0,0,0,3541,3536,1,0,0,0,3541,3537,1,0,0,0,3542,325,1,0,0,0,3543,3544,5,46,0,0,3544,3545,5,63,0,0,3545,3546,5,92,0,0,3546,3547,3,1230,615,0,3547,3548,5,2,0,0,3548,3549,3,156,78,0,3549,3550,5,3,0,0,3550,3551,3,216,108,0,3551,3552,5,324,0,0,3552,3553,3,1234,617,0,3553,3554,3,302,151,0,3554,3600,1,0,0,0,3555,3556,5,46,0,0,3556,3557,5,63,0,0,3557,3558,5,92,0,0,3558,3559,5,220,0,0,3559,3560,5,77,0,0,3560,3561,5,389,0,0,3561,3562,3,1230,615,0,3562,3563,5,2,0,0,3563,3564,3,156,78,0,3564,3565,5,3,0,0,3565,3566,3,216,108,0,3566,3567,5,324,0,0,3567,3568,3,1234,617,0,3568,3569,3,302,151,0,3569,3600,1,0,0,0,3570,3571,5,46,0,0,3571,3572,5,63,0,0,3572,3573,5,92,0,0,3573,3574,3,1230,615,0,3574,3575,5,278,0,0,3575,3576,5,268,0,0,3576,3577,3,1230,615,0,3577,3578,3,158,79,0,3578,3579,3,120,60,0,3579,3580,5,324,0,0,3580,3581,3,1234,617,0,3581,3582,3,302,151,0,3582,3600,1,0,0,0,3583,3584,5,46,0,0,3584,3585,5,63,0,0,3585,3586,5,92,0,0,3586,3587,5,220,0,0,3587,3588,5,77,0,0,3588,3589,5,389,0,0,3589,3590,3,1230,615,0,3590,3591,5,278,0,0,3591,3592,5,268,0,0,3592,3593,3,1230,615,0,3593,3594,3,158,79,0,3594,3595,3,120,60,0,3595,3596,5,324,0,0,3596,3597,3,1234,617,0,3597,3598,3,302,151,0,3598,3600,1,0,0,0,3599,3543,1,0,0,0,3599,3555,1,0,0,0,3599,3570,1,0,0,0,3599,3583,1,0,0,0,3600,327,1,0,0,0,3601,3602,5,444,0,0,3602,3603,5,63,0,0,3603,3604,5,316,0,0,3604,3605,3,1234,617,0,3605,3606,3,332,166,0,3606,3607,5,64,0,0,3607,3608,5,324,0,0,3608,3609,3,1234,617,0,3609,3610,5,71,0,0,3610,3611,3,1234,617,0,3611,3612,3,302,151,0,3612,329,1,0,0,0,3613,3614,5,74,0,0,3614,3617,5,94,0,0,3615,3617,5,59,0,0,3616,3613,1,0,0,0,3616,3615,1,0,0,0,3617,331,1,0,0,0,3618,3619,3,330,165,0,3619,3620,5,2,0,0,3620,3621,3,960,480,0,3621,3622,5,3,0,0,3622,3625,1,0,0,0,3623,3625,1,0,0,0,3624,3618,1,0,0,0,3624,3623,1,0,0,0,3625,333,1,0,0,0,3626,3627,5,46,0,0,3627,3628,5,99,0,0,3628,3629,5,248,0,0,3629,3630,5,62,0,0,3630,3631,3,336,168,0,3631,3632,5,324,0,0,3632,3633,3,1234,617,0,3633,3634,3,302,151,0,3634,3648,1,0,0,0,3635,3636,5,46,0,0,3636,3637,5,99,0,0,3637,3638,5,248,0,0,3638,3639,5,220,0,0,3639,3640,5,77,0,0,3640,3641,5,389,0,0,3641,3642,5,62,0,0,3642,3643,3,336,168,0,3643,3644,5,324,0,0,3644,3645,3,1234,617,0,3645,3646,3,302,151,0,3646,3648,1,0,0,0,3647,3626,1,0,0,0,3647,3635,1,0,0,0,3648,335,1,0,0,0,3649,3652,3,1260,630,0,3650,3652,5,99,0,0,3651,3649,1,0,0,0,3651,3650,1,0,0,0,3652,337,1,0,0,0,3653,3654,5,191,0,0,3654,3655,5,99,0,0,3655,3656,5,248,0,0,3656,3657,5,62,0,0,3657,3658,3,336,168,0,3658,3659,5,324,0,0,3659,3660,3,1234,617,0,3660,3672,1,0,0,0,3661,3662,5,191,0,0,3662,3663,5,99,0,0,3663,3664,5,248,0,0,3664,3665,5,220,0,0,3665,3666,5,389,0,0,3666,3667,5,62,0,0,3667,3668,3,336,168,0,3668,3669,5,324,0,0,3669,3670,3,1234,617,0,3670,3672,1,0,0,0,3671,3653,1,0,0,0,3671,3661,1,0,0,0,3672,339,1,0,0,0,3673,3674,5,138,0,0,3674,3675,5,99,0,0,3675,3676,5,248,0,0,3676,3677,5,62,0,0,3677,3678,3,336,168,0,3678,3679,5,324,0,0,3679,3680,3,1234,617,0,3680,3681,3,306,153,0,3681,341,1,0,0,0,3682,3683,5,46,0,0,3683,3684,5,445,0,0,3684,3685,3,1234,617,0,3685,3686,5,80,0,0,3686,3687,3,1230,615,0,3687,3688,3,352,176,0,3688,3689,3,354,177,0,3689,3690,3,350,175,0,3690,3691,3,346,173,0,3691,3692,3,348,174,0,3692,343,1,0,0,0,3693,3694,5,138,0,0,3694,3695,5,445,0,0,3695,3696,3,1234,617,0,3696,3697,5,80,0,0,3697,3698,3,1230,615,0,3698,3699,3,350,175,0,3699,3700,3,346,173,0,3700,3701,3,348,174,0,3701,345,1,0,0,0,3702,3703,5,100,0,0,3703,3704,5,2,0,0,3704,3705,3,1038,519,0,3705,3706,5,3,0,0,3706,3709,1,0,0,0,3707,3709,1,0,0,0,3708,3702,1,0,0,0,3708,3707,1,0,0,0,3709,347,1,0,0,0,3710,3711,5,105,0,0,3711,3712,5,42,0,0,3712,3713,5,2,0,0,3713,3714,3,1038,519,0,3714,3715,5,3,0,0,3715,3718,1,0,0,0,3716,3718,1,0,0,0,3717,3710,1,0,0,0,3717,3716,1,0,0,0,3718,349,1,0,0,0,3719,3720,5,94,0,0,3720,3723,3,1262,631,0,3721,3723,1,0,0,0,3722,3719,1,0,0,0,3722,3721,1,0,0,0,3723,351,1,0,0,0,3724,3725,5,36,0,0,3725,3728,3,1274,637,0,3726,3728,1,0,0,0,3727,3724,1,0,0,0,3727,3726,1,0,0,0,3728,353,1,0,0,0,3729,3730,5,62,0,0,3730,3733,3,356,178,0,3731,3733,1,0,0,0,3732,3729,1,0,0,0,3732,3731,1,0,0,0,3733,355,1,0,0,0,3734,3735,7,16,0,0,3735,357,1,0,0,0,3736,3737,5,46,0,0,3737,3738,5,131,0,0,3738,3739,5,446,0,0,3739,3740,3,1234,617,0,3740,3741,5,353,0,0,3741,3742,3,360,180,0,3742,3743,5,215,0,0,3743,3744,3,270,135,0,3744,359,1,0,0,0,3745,3746,7,17,0,0,3746,361,1,0,0,0,3747,3748,5,46,0,0,3748,3749,5,350,0,0,3749,3750,3,1234,617,0,3750,3751,3,364,182,0,3751,3752,3,366,183,0,3752,3753,5,80,0,0,3753,3754,3,1230,615,0,3754,3755,3,370,185,0,3755,3756,3,382,191,0,3756,3757,3,386,193,0,3757,3758,5,202,0,0,3758,3759,3,388,194,0,3759,3760,3,1240,620,0,3760,3761,5,2,0,0,3761,3762,3,390,195,0,3762,3763,5,3,0,0,3763,3786,1,0,0,0,3764,3765,5,46,0,0,3765,3766,5,45,0,0,3766,3767,5,350,0,0,3767,3768,3,1234,617,0,3768,3769,5,135,0,0,3769,3770,3,366,183,0,3770,3771,5,80,0,0,3771,3772,3,1230,615,0,3772,3773,3,394,197,0,3773,3774,3,396,198,0,3774,3775,5,62,0,0,3775,3776,5,192,0,0,3776,3777,5,407,0,0,3777,3778,3,386,193,0,3778,3779,5,202,0,0,3779,3780,3,388,194,0,3780,3781,3,1240,620,0,3781,3782,5,2,0,0,3782,3783,3,390,195,0,3783,3784,5,3,0,0,3784,3786,1,0,0,0,3785,3747,1,0,0,0,3785,3764,1,0,0,0,3786,363,1,0,0,0,3787,3792,5,145,0,0,3788,3792,5,135,0,0,3789,3790,5,233,0,0,3790,3792,5,268,0,0,3791,3787,1,0,0,0,3791,3788,1,0,0,0,3791,3789,1,0,0,0,3792,365,1,0,0,0,3793,3798,3,368,184,0,3794,3795,5,82,0,0,3795,3797,3,368,184,0,3796,3794,1,0,0,0,3797,3800,1,0,0,0,3798,3796,1,0,0,0,3798,3799,1,0,0,0,3799,367,1,0,0,0,3800,3798,1,0,0,0,3801,3809,5,232,0,0,3802,3809,5,182,0,0,3803,3809,5,362,0,0,3804,3805,5,362,0,0,3805,3806,5,268,0,0,3806,3809,3,194,97,0,3807,3809,5,351,0,0,3808,3801,1,0,0,0,3808,3802,1,0,0,0,3808,3803,1,0,0,0,3808,3804,1,0,0,0,3808,3807,1,0,0,0,3809,369,1,0,0,0,3810,3811,5,447,0,0,3811,3814,3,372,186,0,3812,3814,1,0,0,0,3813,3810,1,0,0,0,3813,3812,1,0,0,0,3814,371,1,0,0,0,3815,3817,3,374,187,0,3816,3815,1,0,0,0,3817,3818,1,0,0,0,3818,3816,1,0,0,0,3818,3819,1,0,0,0,3819,373,1,0,0,0,3820,3821,3,376,188,0,3821,3822,3,378,189,0,3822,3823,3,748,374,0,3823,3824,3,380,190,0,3824,375,1,0,0,0,3825,3826,7,18,0,0,3826,377,1,0,0,0,3827,3828,7,19,0,0,3828,379,1,0,0,0,3829,3830,3,1264,632,0,3830,381,1,0,0,0,3831,3833,5,62,0,0,3832,3834,5,192,0,0,3833,3832,1,0,0,0,3833,3834,1,0,0,0,3834,3835,1,0,0,0,3835,3838,3,384,192,0,3836,3838,1,0,0,0,3837,3831,1,0,0,0,3837,3836,1,0,0,0,3838,383,1,0,0,0,3839,3840,7,20,0,0,3840,385,1,0,0,0,3841,3842,5,102,0,0,3842,3843,5,2,0,0,3843,3844,3,1038,519,0,3844,3845,5,3,0,0,3845,3848,1,0,0,0,3846,3848,1,0,0,0,3847,3841,1,0,0,0,3847,3846,1,0,0,0,3848,387,1,0,0,0,3849,3850,7,21,0,0,3850,389,1,0,0,0,3851,3854,3,392,196,0,3852,3854,1,0,0,0,3853,3851,1,0,0,0,3853,3852,1,0,0,0,3854,3859,1,0,0,0,3855,3856,5,6,0,0,3856,3858,3,392,196,0,3857,3855,1,0,0,0,3858,3861,1,0,0,0,3859,3857,1,0,0,0,3859,3860,1,0,0,0,3860,391,1,0,0,0,3861,3859,1,0,0,0,3862,3867,3,1250,625,0,3863,3867,3,1248,624,0,3864,3867,3,1252,626,0,3865,3867,3,1272,636,0,3866,3862,1,0,0,0,3866,3863,1,0,0,0,3866,3864,1,0,0,0,3866,3865,1,0,0,0,3867,393,1,0,0,0,3868,3869,5,64,0,0,3869,3872,3,1230,615,0,3870,3872,1,0,0,0,3871,3868,1,0,0,0,3871,3870,1,0,0,0,3872,395,1,0,0,0,3873,3875,3,398,199,0,3874,3873,1,0,0,0,3875,3878,1,0,0,0,3876,3874,1,0,0,0,3876,3877,1,0,0,0,3877,397,1,0,0,0,3878,3876,1,0,0,0,3879,3880,5,77,0,0,3880,3891,5,54,0,0,3881,3891,5,54,0,0,3882,3883,5,69,0,0,3883,3891,5,221,0,0,3884,3885,5,69,0,0,3885,3891,5,180,0,0,3886,3887,5,77,0,0,3887,3891,5,364,0,0,3888,3889,5,262,0,0,3889,3891,5,228,0,0,3890,3879,1,0,0,0,3890,3881,1,0,0,0,3890,3882,1,0,0,0,3890,3884,1,0,0,0,3890,3886,1,0,0,0,3890,3888,1,0,0,0,3891,399,1,0,0,0,3892,3893,5,46,0,0,3893,3894,5,198,0,0,3894,3895,5,350,0,0,3895,3896,3,1234,617,0,3896,3897,5,80,0,0,3897,3898,3,1272,636,0,3898,3899,5,202,0,0,3899,3900,3,388,194,0,3900,3901,3,1240,620,0,3901,3902,5,2,0,0,3902,3903,5,3,0,0,3903,3919,1,0,0,0,3904,3905,5,46,0,0,3905,3906,5,198,0,0,3906,3907,5,350,0,0,3907,3908,3,1234,617,0,3908,3909,5,80,0,0,3909,3910,3,1272,636,0,3910,3911,5,102,0,0,3911,3912,3,402,201,0,3912,3913,5,202,0,0,3913,3914,3,388,194,0,3914,3915,3,1240,620,0,3915,3916,5,2,0,0,3916,3917,5,3,0,0,3917,3919,1,0,0,0,3918,3892,1,0,0,0,3918,3904,1,0,0,0,3919,401,1,0,0,0,3920,3925,3,404,202,0,3921,3922,5,33,0,0,3922,3924,3,404,202,0,3923,3921,1,0,0,0,3924,3927,1,0,0,0,3925,3923,1,0,0,0,3925,3926,1,0,0,0,3926,403,1,0,0,0,3927,3925,1,0,0,0,3928,3929,3,1264,632,0,3929,3930,5,68,0,0,3930,3931,5,2,0,0,3931,3932,3,406,203,0,3932,3933,5,3,0,0,3933,405,1,0,0,0,3934,3939,3,1252,626,0,3935,3936,5,6,0,0,3936,3938,3,1252,626,0,3937,3935,1,0,0,0,3938,3941,1,0,0,0,3939,3937,1,0,0,0,3939,3940,1,0,0,0,3940,407,1,0,0,0,3941,3939,1,0,0,0,3942,3943,5,138,0,0,3943,3944,5,198,0,0,3944,3945,5,350,0,0,3945,3946,3,1234,617,0,3946,3947,3,410,205,0,3947,409,1,0,0,0,3948,3955,5,193,0,0,3949,3950,5,193,0,0,3950,3955,5,305,0,0,3951,3952,5,193,0,0,3952,3955,5,139,0,0,3953,3955,5,186,0,0,3954,3948,1,0,0,0,3954,3949,1,0,0,0,3954,3951,1,0,0,0,3954,3953,1,0,0,0,3955,411,1,0,0,0,3956,3957,5,46,0,0,3957,3958,5,140,0,0,3958,3959,3,470,235,0,3959,3960,5,42,0,0,3960,3961,5,2,0,0,3961,3962,3,1038,519,0,3962,3963,5,3,0,0,3963,3964,3,396,198,0,3964,413,1,0,0,0,3965,3966,5,46,0,0,3966,3967,3,554,277,0,3967,3968,5,136,0,0,3968,3969,3,1240,620,0,3969,3970,3,576,288,0,3970,3971,3,416,208,0,3971,4074,1,0,0,0,3972,3973,5,46,0,0,3973,3974,3,554,277,0,3974,3975,5,136,0,0,3975,3976,3,1240,620,0,3976,3977,3,422,211,0,3977,4074,1,0,0,0,3978,3979,5,46,0,0,3979,3980,5,271,0,0,3980,3981,3,610,305,0,3981,3982,3,416,208,0,3982,4074,1,0,0,0,3983,3984,5,46,0,0,3984,3985,5,353,0,0,3985,3986,3,470,235,0,3986,3987,3,416,208,0,3987,4074,1,0,0,0,3988,3989,5,46,0,0,3989,3990,5,353,0,0,3990,4074,3,470,235,0,3991,3992,5,46,0,0,3992,3993,5,353,0,0,3993,3994,3,470,235,0,3994,3995,5,36,0,0,3995,3996,5,2,0,0,3996,3997,3,978,489,0,3997,3998,5,3,0,0,3998,4074,1,0,0,0,3999,4e3,5,46,0,0,4e3,4001,5,353,0,0,4001,4002,3,470,235,0,4002,4003,5,36,0,0,4003,4004,5,196,0,0,4004,4006,5,2,0,0,4005,4007,3,426,213,0,4006,4005,1,0,0,0,4006,4007,1,0,0,0,4007,4008,1,0,0,0,4008,4009,5,3,0,0,4009,4074,1,0,0,0,4010,4011,5,46,0,0,4011,4012,5,353,0,0,4012,4013,3,470,235,0,4013,4014,5,36,0,0,4014,4015,5,292,0,0,4015,4016,3,416,208,0,4016,4074,1,0,0,0,4017,4018,5,46,0,0,4018,4019,5,348,0,0,4019,4020,5,318,0,0,4020,4021,5,276,0,0,4021,4022,3,470,235,0,4022,4023,3,416,208,0,4023,4074,1,0,0,0,4024,4025,5,46,0,0,4025,4026,5,348,0,0,4026,4027,5,318,0,0,4027,4028,5,185,0,0,4028,4029,3,470,235,0,4029,4030,3,416,208,0,4030,4074,1,0,0,0,4031,4032,5,46,0,0,4032,4033,5,348,0,0,4033,4034,5,318,0,0,4034,4035,5,346,0,0,4035,4036,3,470,235,0,4036,4037,3,416,208,0,4037,4074,1,0,0,0,4038,4039,5,46,0,0,4039,4040,5,348,0,0,4040,4041,5,318,0,0,4041,4042,5,163,0,0,4042,4043,3,470,235,0,4043,4044,3,416,208,0,4044,4074,1,0,0,0,4045,4046,5,46,0,0,4046,4047,5,108,0,0,4047,4048,3,470,235,0,4048,4049,3,416,208,0,4049,4074,1,0,0,0,4050,4051,5,46,0,0,4051,4052,5,108,0,0,4052,4053,5,220,0,0,4053,4054,5,77,0,0,4054,4055,5,389,0,0,4055,4056,3,470,235,0,4056,4057,3,416,208,0,4057,4074,1,0,0,0,4058,4059,5,46,0,0,4059,4060,5,108,0,0,4060,4061,3,470,235,0,4061,4062,5,64,0,0,4062,4063,3,470,235,0,4063,4074,1,0,0,0,4064,4065,5,46,0,0,4065,4066,5,108,0,0,4066,4067,5,220,0,0,4067,4068,5,77,0,0,4068,4069,5,389,0,0,4069,4070,3,470,235,0,4070,4071,5,64,0,0,4071,4072,3,470,235,0,4072,4074,1,0,0,0,4073,3965,1,0,0,0,4073,3972,1,0,0,0,4073,3978,1,0,0,0,4073,3983,1,0,0,0,4073,3988,1,0,0,0,4073,3991,1,0,0,0,4073,3999,1,0,0,0,4073,4010,1,0,0,0,4073,4017,1,0,0,0,4073,4024,1,0,0,0,4073,4031,1,0,0,0,4073,4038,1,0,0,0,4073,4045,1,0,0,0,4073,4050,1,0,0,0,4073,4058,1,0,0,0,4073,4064,1,0,0,0,4074,415,1,0,0,0,4075,4076,5,2,0,0,4076,4081,3,418,209,0,4077,4078,5,6,0,0,4078,4080,3,418,209,0,4079,4077,1,0,0,0,4080,4083,1,0,0,0,4081,4079,1,0,0,0,4081,4082,1,0,0,0,4082,4084,1,0,0,0,4083,4081,1,0,0,0,4084,4085,5,3,0,0,4085,417,1,0,0,0,4086,4089,3,1272,636,0,4087,4088,5,10,0,0,4088,4090,3,420,210,0,4089,4087,1,0,0,0,4089,4090,1,0,0,0,4090,419,1,0,0,0,4091,4098,3,574,287,0,4092,4098,3,1284,642,0,4093,4098,3,1152,576,0,4094,4098,3,264,132,0,4095,4098,3,1252,626,0,4096,4098,5,400,0,0,4097,4091,1,0,0,0,4097,4092,1,0,0,0,4097,4093,1,0,0,0,4097,4094,1,0,0,0,4097,4095,1,0,0,0,4097,4096,1,0,0,0,4098,421,1,0,0,0,4099,4100,5,2,0,0,4100,4105,3,424,212,0,4101,4102,5,6,0,0,4102,4104,3,424,212,0,4103,4101,1,0,0,0,4104,4107,1,0,0,0,4105,4103,1,0,0,0,4105,4106,1,0,0,0,4106,4108,1,0,0,0,4107,4105,1,0,0,0,4108,4109,5,3,0,0,4109,423,1,0,0,0,4110,4111,3,1274,637,0,4111,4112,5,10,0,0,4112,4113,3,420,210,0,4113,425,1,0,0,0,4114,4119,3,1252,626,0,4115,4116,5,6,0,0,4116,4118,3,1252,626,0,4117,4115,1,0,0,0,4118,4121,1,0,0,0,4119,4117,1,0,0,0,4119,4120,1,0,0,0,4120,427,1,0,0,0,4121,4119,1,0,0,0,4122,4123,5,138,0,0,4123,4124,5,353,0,0,4124,4125,3,470,235,0,4125,4126,5,133,0,0,4126,4127,5,450,0,0,4127,4128,3,430,215,0,4128,4129,3,1252,626,0,4129,4160,1,0,0,0,4130,4131,5,138,0,0,4131,4132,5,353,0,0,4132,4133,3,470,235,0,4133,4134,5,133,0,0,4134,4135,5,450,0,0,4135,4136,3,430,215,0,4136,4137,3,1252,626,0,4137,4138,5,145,0,0,4138,4139,3,1252,626,0,4139,4160,1,0,0,0,4140,4141,5,138,0,0,4141,4142,5,353,0,0,4142,4143,3,470,235,0,4143,4144,5,133,0,0,4144,4145,5,450,0,0,4145,4146,3,430,215,0,4146,4147,3,1252,626,0,4147,4148,5,135,0,0,4148,4149,3,1252,626,0,4149,4160,1,0,0,0,4150,4151,5,138,0,0,4151,4152,5,353,0,0,4152,4153,3,470,235,0,4153,4154,5,302,0,0,4154,4155,5,450,0,0,4155,4156,3,1252,626,0,4156,4157,5,94,0,0,4157,4158,3,1252,626,0,4158,4160,1,0,0,0,4159,4122,1,0,0,0,4159,4130,1,0,0,0,4159,4140,1,0,0,0,4159,4150,1,0,0,0,4160,429,1,0,0,0,4161,4162,5,220,0,0,4162,4163,5,77,0,0,4163,4166,5,389,0,0,4164,4166,1,0,0,0,4165,4161,1,0,0,0,4165,4164,1,0,0,0,4166,431,1,0,0,0,4167,4168,5,46,0,0,4168,4169,5,271,0,0,4169,4170,5,156,0,0,4170,4172,3,470,235,0,4171,4173,5,53,0,0,4172,4171,1,0,0,0,4172,4173,1,0,0,0,4173,4174,1,0,0,0,4174,4175,5,62,0,0,4175,4176,5,353,0,0,4176,4177,3,996,498,0,4177,4178,5,100,0,0,4178,4179,3,1234,617,0,4179,4180,3,438,219,0,4180,4181,5,36,0,0,4181,4182,3,434,217,0,4182,433,1,0,0,0,4183,4188,3,436,218,0,4184,4185,5,6,0,0,4185,4187,3,436,218,0,4186,4184,1,0,0,0,4187,4190,1,0,0,0,4188,4186,1,0,0,0,4188,4189,1,0,0,0,4189,435,1,0,0,0,4190,4188,1,0,0,0,4191,4192,5,271,0,0,4192,4193,3,1250,625,0,4193,4194,3,610,305,0,4194,4196,3,440,220,0,4195,4197,5,295,0,0,4196,4195,1,0,0,0,4196,4197,1,0,0,0,4197,4219,1,0,0,0,4198,4199,5,271,0,0,4199,4200,3,1250,625,0,4200,4201,3,614,307,0,4201,4203,3,440,220,0,4202,4204,5,295,0,0,4203,4202,1,0,0,0,4203,4204,1,0,0,0,4204,4219,1,0,0,0,4205,4206,5,211,0,0,4206,4207,3,1250,625,0,4207,4208,3,560,280,0,4208,4219,1,0,0,0,4209,4210,5,211,0,0,4210,4211,3,1250,625,0,4211,4212,5,2,0,0,4212,4213,3,1162,581,0,4213,4214,5,3,0,0,4214,4215,3,560,280,0,4215,4219,1,0,0,0,4216,4217,5,338,0,0,4217,4219,3,996,498,0,4218,4191,1,0,0,0,4218,4198,1,0,0,0,4218,4205,1,0,0,0,4218,4209,1,0,0,0,4218,4216,1,0,0,0,4219,437,1,0,0,0,4220,4221,5,206,0,0,4221,4224,3,470,235,0,4222,4224,1,0,0,0,4223,4220,1,0,0,0,4223,4222,1,0,0,0,4224,439,1,0,0,0,4225,4226,5,62,0,0,4226,4233,5,318,0,0,4227,4228,5,62,0,0,4228,4229,5,83,0,0,4229,4230,5,147,0,0,4230,4233,3,470,235,0,4231,4233,1,0,0,0,4232,4225,1,0,0,0,4232,4227,1,0,0,0,4232,4231,1,0,0,0,4233,441,1,0,0,0,4234,4235,5,46,0,0,4235,4236,5,271,0,0,4236,4237,5,206,0,0,4237,4238,3,470,235,0,4238,4239,5,100,0,0,4239,4240,3,1234,617,0,4240,443,1,0,0,0,4241,4242,5,138,0,0,4242,4243,5,271,0,0,4243,4244,5,206,0,0,4244,4245,3,470,235,0,4245,4246,5,100,0,0,4246,4247,3,1234,617,0,4247,4248,5,133,0,0,4248,4249,3,434,217,0,4249,4260,1,0,0,0,4250,4251,5,138,0,0,4251,4252,5,271,0,0,4252,4253,5,206,0,0,4253,4254,3,470,235,0,4254,4255,5,100,0,0,4255,4256,3,1234,617,0,4256,4257,5,191,0,0,4257,4258,3,446,223,0,4258,4260,1,0,0,0,4259,4241,1,0,0,0,4259,4250,1,0,0,0,4260,445,1,0,0,0,4261,4266,3,448,224,0,4262,4263,5,6,0,0,4263,4265,3,448,224,0,4264,4262,1,0,0,0,4265,4268,1,0,0,0,4266,4264,1,0,0,0,4266,4267,1,0,0,0,4267,447,1,0,0,0,4268,4266,1,0,0,0,4269,4270,5,271,0,0,4270,4271,3,1250,625,0,4271,4272,5,2,0,0,4272,4273,3,1162,581,0,4273,4274,5,3,0,0,4274,4282,1,0,0,0,4275,4276,5,211,0,0,4276,4277,3,1250,625,0,4277,4278,5,2,0,0,4278,4279,3,1162,581,0,4279,4280,5,3,0,0,4280,4282,1,0,0,0,4281,4269,1,0,0,0,4281,4275,1,0,0,0,4282,449,1,0,0,0,4283,4284,5,191,0,0,4284,4285,5,271,0,0,4285,4286,5,156,0,0,4286,4287,3,470,235,0,4287,4288,5,100,0,0,4288,4289,3,1234,617,0,4289,4290,3,100,50,0,4290,4302,1,0,0,0,4291,4292,5,191,0,0,4292,4293,5,271,0,0,4293,4294,5,156,0,0,4294,4295,5,220,0,0,4295,4296,5,389,0,0,4296,4297,3,470,235,0,4297,4298,5,100,0,0,4298,4299,3,1234,617,0,4299,4300,3,100,50,0,4300,4302,1,0,0,0,4301,4283,1,0,0,0,4301,4291,1,0,0,0,4302,451,1,0,0,0,4303,4304,5,191,0,0,4304,4305,5,271,0,0,4305,4306,5,206,0,0,4306,4307,3,470,235,0,4307,4308,5,100,0,0,4308,4309,3,1234,617,0,4309,4310,3,100,50,0,4310,4322,1,0,0,0,4311,4312,5,191,0,0,4312,4313,5,271,0,0,4313,4314,5,206,0,0,4314,4315,5,220,0,0,4315,4316,5,389,0,0,4316,4317,3,470,235,0,4317,4318,5,100,0,0,4318,4319,3,1234,617,0,4319,4320,3,100,50,0,4320,4322,1,0,0,0,4321,4303,1,0,0,0,4321,4311,1,0,0,0,4322,453,1,0,0,0,4323,4324,5,191,0,0,4324,4325,5,274,0,0,4325,4326,5,147,0,0,4326,4327,3,1262,631,0,4327,4328,3,100,50,0,4328,455,1,0,0,0,4329,4330,5,294,0,0,4330,4331,5,274,0,0,4331,4332,5,147,0,0,4332,4333,3,1262,631,0,4333,4334,5,94,0,0,4334,4335,3,1260,630,0,4335,457,1,0,0,0,4336,4337,5,191,0,0,4337,4340,3,460,230,0,4338,4339,5,220,0,0,4339,4341,5,389,0,0,4340,4338,1,0,0,0,4340,4341,1,0,0,0,4341,4342,1,0,0,0,4342,4343,3,468,234,0,4343,4344,3,100,50,0,4344,4442,1,0,0,0,4345,4346,5,191,0,0,4346,4349,5,321,0,0,4347,4348,5,220,0,0,4348,4350,5,389,0,0,4349,4347,1,0,0,0,4349,4350,1,0,0,0,4350,4351,1,0,0,0,4351,4352,3,1228,614,0,4352,4353,3,100,50,0,4353,4442,1,0,0,0,4354,4355,5,191,0,0,4355,4358,5,226,0,0,4356,4357,5,220,0,0,4357,4359,5,389,0,0,4358,4356,1,0,0,0,4358,4359,1,0,0,0,4359,4360,1,0,0,0,4360,4361,3,1220,610,0,4361,4362,3,100,50,0,4362,4442,1,0,0,0,4363,4364,5,191,0,0,4364,4367,5,316,0,0,4365,4366,5,220,0,0,4366,4368,5,389,0,0,4367,4365,1,0,0,0,4367,4368,1,0,0,0,4368,4369,1,0,0,0,4369,4370,3,1216,608,0,4370,4371,3,100,50,0,4371,4442,1,0,0,0,4372,4373,5,191,0,0,4373,4376,3,464,232,0,4374,4375,5,220,0,0,4375,4377,5,389,0,0,4376,4374,1,0,0,0,4376,4377,1,0,0,0,4377,4378,1,0,0,0,4378,4379,3,1232,616,0,4379,4380,3,100,50,0,4380,4442,1,0,0,0,4381,4382,5,191,0,0,4382,4385,3,466,233,0,4383,4384,5,220,0,0,4384,4386,5,389,0,0,4385,4383,1,0,0,0,4385,4386,1,0,0,0,4386,4387,1,0,0,0,4387,4388,3,1234,617,0,4388,4389,5,80,0,0,4389,4390,3,470,235,0,4390,4391,3,100,50,0,4391,4442,1,0,0,0,4392,4393,5,191,0,0,4393,4396,5,350,0,0,4394,4395,5,220,0,0,4395,4397,5,389,0,0,4396,4394,1,0,0,0,4396,4397,1,0,0,0,4397,4398,1,0,0,0,4398,4399,3,1222,611,0,4399,4400,5,80,0,0,4400,4401,3,470,235,0,4401,4402,3,100,50,0,4402,4442,1,0,0,0,4403,4404,5,191,0,0,4404,4405,5,353,0,0,4405,4406,3,474,237,0,4406,4407,3,100,50,0,4407,4442,1,0,0,0,4408,4409,5,191,0,0,4409,4410,5,353,0,0,4410,4411,5,220,0,0,4411,4412,5,389,0,0,4412,4413,3,474,237,0,4413,4414,3,100,50,0,4414,4442,1,0,0,0,4415,4416,5,191,0,0,4416,4417,5,189,0,0,4417,4418,3,474,237,0,4418,4419,3,100,50,0,4419,4442,1,0,0,0,4420,4421,5,191,0,0,4421,4422,5,189,0,0,4422,4423,5,220,0,0,4423,4424,5,389,0,0,4424,4425,3,474,237,0,4425,4426,3,100,50,0,4426,4442,1,0,0,0,4427,4428,5,191,0,0,4428,4429,5,226,0,0,4429,4430,5,109,0,0,4430,4431,3,1218,609,0,4431,4432,3,100,50,0,4432,4442,1,0,0,0,4433,4434,5,191,0,0,4434,4435,5,226,0,0,4435,4436,5,109,0,0,4436,4437,5,220,0,0,4437,4438,5,389,0,0,4438,4439,3,1218,609,0,4439,4440,3,100,50,0,4440,4442,1,0,0,0,4441,4336,1,0,0,0,4441,4345,1,0,0,0,4441,4354,1,0,0,0,4441,4363,1,0,0,0,4441,4372,1,0,0,0,4441,4381,1,0,0,0,4441,4392,1,0,0,0,4441,4403,1,0,0,0,4441,4408,1,0,0,0,4441,4415,1,0,0,0,4441,4420,1,0,0,0,4441,4427,1,0,0,0,4441,4433,1,0,0,0,4442,459,1,0,0,0,4443,4465,5,92,0,0,4444,4465,5,369,0,0,4445,4446,5,251,0,0,4446,4465,5,369,0,0,4447,4448,5,63,0,0,4448,4465,5,92,0,0,4449,4465,5,108,0,0,4450,4465,5,168,0,0,4451,4465,5,335,0,0,4452,4453,5,348,0,0,4453,4454,5,318,0,0,4454,4465,5,276,0,0,4455,4456,5,348,0,0,4456,4457,5,318,0,0,4457,4465,5,185,0,0,4458,4459,5,348,0,0,4459,4460,5,318,0,0,4460,4465,5,346,0,0,4461,4462,5,348,0,0,4462,4463,5,318,0,0,4463,4465,5,163,0,0,4464,4443,1,0,0,0,4464,4444,1,0,0,0,4464,4445,1,0,0,0,4464,4447,1,0,0,0,4464,4449,1,0,0,0,4464,4450,1,0,0,0,4464,4451,1,0,0,0,4464,4452,1,0,0,0,4464,4455,1,0,0,0,4464,4458,1,0,0,0,4464,4461,1,0,0,0,4465,461,1,0,0,0,4466,4470,3,464,232,0,4467,4470,5,451,0,0,4468,4470,5,344,0,0,4469,4466,1,0,0,0,4469,4467,1,0,0,0,4469,4468,1,0,0,0,4470,463,1,0,0,0,4471,4472,5,131,0,0,4472,4485,5,446,0,0,4473,4474,5,198,0,0,4474,4485,5,350,0,0,4475,4485,5,204,0,0,4476,4477,5,63,0,0,4477,4478,5,174,0,0,4478,4485,5,374,0,0,4479,4480,3,276,138,0,4480,4481,5,238,0,0,4481,4485,1,0,0,0,4482,4485,5,452,0,0,4483,4485,5,324,0,0,4484,4471,1,0,0,0,4484,4473,1,0,0,0,4484,4475,1,0,0,0,4484,4476,1,0,0,0,4484,4479,1,0,0,0,4484,4482,1,0,0,0,4484,4483,1,0,0,0,4485,465,1,0,0,0,4486,4487,7,22,0,0,4487,467,1,0,0,0,4488,4493,3,470,235,0,4489,4490,5,6,0,0,4490,4492,3,470,235,0,4491,4489,1,0,0,0,4492,4495,1,0,0,0,4493,4491,1,0,0,0,4493,4494,1,0,0,0,4494,469,1,0,0,0,4495,4493,1,0,0,0,4496,4498,3,1264,632,0,4497,4499,3,472,236,0,4498,4497,1,0,0,0,4498,4499,1,0,0,0,4499,471,1,0,0,0,4500,4501,5,11,0,0,4501,4503,3,1236,618,0,4502,4500,1,0,0,0,4503,4504,1,0,0,0,4504,4502,1,0,0,0,4504,4505,1,0,0,0,4505,473,1,0,0,0,4506,4511,3,996,498,0,4507,4508,5,6,0,0,4508,4510,3,996,498,0,4509,4507,1,0,0,0,4510,4513,1,0,0,0,4511,4509,1,0,0,0,4511,4512,1,0,0,0,4512,475,1,0,0,0,4513,4511,1,0,0,0,4514,4515,5,351,0,0,4515,4516,3,882,441,0,4516,4517,3,960,480,0,4517,4518,3,478,239,0,4518,4519,3,100,50,0,4519,477,1,0,0,0,4520,4521,5,167,0,0,4521,4526,5,219,0,0,4522,4523,5,307,0,0,4523,4526,5,219,0,0,4524,4526,1,0,0,0,4525,4520,1,0,0,0,4525,4522,1,0,0,0,4525,4524,1,0,0,0,4526,479,1,0,0,0,4527,4528,5,159,0,0,4528,4529,5,80,0,0,4529,4530,3,460,230,0,4530,4531,3,470,235,0,4531,4532,5,116,0,0,4532,4533,3,482,241,0,4533,4712,1,0,0,0,4534,4535,5,159,0,0,4535,4536,5,80,0,0,4536,4537,5,321,0,0,4537,4538,3,1226,613,0,4538,4539,5,116,0,0,4539,4540,3,482,241,0,4540,4712,1,0,0,0,4541,4542,5,159,0,0,4542,4543,5,80,0,0,4543,4544,5,226,0,0,4544,4545,3,1218,609,0,4545,4546,5,116,0,0,4546,4547,3,482,241,0,4547,4712,1,0,0,0,4548,4549,5,159,0,0,4549,4550,5,80,0,0,4550,4551,5,44,0,0,4551,4552,3,470,235,0,4552,4553,5,116,0,0,4553,4554,3,482,241,0,4554,4712,1,0,0,0,4555,4556,5,159,0,0,4556,4557,5,80,0,0,4557,4558,3,462,231,0,4558,4559,3,1234,617,0,4559,4560,5,116,0,0,4560,4561,3,482,241,0,4561,4712,1,0,0,0,4562,4563,5,159,0,0,4563,4564,5,80,0,0,4564,4565,5,311,0,0,4565,4566,3,1260,630,0,4566,4567,5,116,0,0,4567,4568,3,482,241,0,4568,4712,1,0,0,0,4569,4570,5,159,0,0,4570,4571,5,80,0,0,4571,4572,5,175,0,0,4572,4573,3,1210,605,0,4573,4574,5,116,0,0,4574,4575,3,482,241,0,4575,4712,1,0,0,0,4576,4577,5,159,0,0,4577,4578,5,80,0,0,4578,4579,5,316,0,0,4579,4580,3,1214,607,0,4580,4581,5,116,0,0,4581,4582,3,482,241,0,4582,4712,1,0,0,0,4583,4584,5,159,0,0,4584,4585,5,80,0,0,4585,4586,5,353,0,0,4586,4587,3,996,498,0,4587,4588,5,116,0,0,4588,4589,3,482,241,0,4589,4712,1,0,0,0,4590,4591,5,159,0,0,4591,4592,5,80,0,0,4592,4593,5,189,0,0,4593,4594,3,996,498,0,4594,4595,5,116,0,0,4595,4596,3,482,241,0,4596,4712,1,0,0,0,4597,4598,5,159,0,0,4598,4599,5,80,0,0,4599,4600,5,136,0,0,4600,4601,3,580,290,0,4601,4602,5,116,0,0,4602,4603,3,482,241,0,4603,4712,1,0,0,0,4604,4605,5,159,0,0,4605,4606,5,80,0,0,4606,4607,5,211,0,0,4607,4608,3,560,280,0,4608,4609,5,116,0,0,4609,4610,3,482,241,0,4610,4712,1,0,0,0,4611,4612,5,159,0,0,4612,4613,5,80,0,0,4613,4614,5,271,0,0,4614,4615,3,614,307,0,4615,4616,5,116,0,0,4616,4617,3,482,241,0,4617,4712,1,0,0,0,4618,4619,5,159,0,0,4619,4620,5,80,0,0,4620,4621,5,45,0,0,4621,4622,3,1224,612,0,4622,4624,5,80,0,0,4623,4625,5,189,0,0,4624,4623,1,0,0,0,4624,4625,1,0,0,0,4625,4626,1,0,0,0,4626,4627,3,470,235,0,4627,4628,5,116,0,0,4628,4629,3,482,241,0,4629,4712,1,0,0,0,4630,4631,5,159,0,0,4631,4632,5,80,0,0,4632,4633,3,466,233,0,4633,4634,3,1234,617,0,4634,4635,5,80,0,0,4635,4636,3,470,235,0,4636,4637,5,116,0,0,4637,4638,3,482,241,0,4638,4712,1,0,0,0,4639,4640,5,159,0,0,4640,4641,5,80,0,0,4641,4642,5,350,0,0,4642,4643,3,1222,611,0,4643,4644,5,80,0,0,4644,4645,3,470,235,0,4645,4646,5,116,0,0,4646,4647,3,482,241,0,4647,4712,1,0,0,0,4648,4649,5,159,0,0,4649,4650,5,80,0,0,4650,4651,5,289,0,0,4651,4652,3,560,280,0,4652,4653,5,116,0,0,4653,4654,3,482,241,0,4654,4712,1,0,0,0,4655,4656,5,159,0,0,4656,4657,5,80,0,0,4657,4658,5,442,0,0,4658,4659,3,560,280,0,4659,4660,5,116,0,0,4660,4661,3,482,241,0,4661,4712,1,0,0,0,4662,4663,5,159,0,0,4663,4664,5,80,0,0,4664,4665,5,443,0,0,4665,4666,5,62,0,0,4666,4667,3,996,498,0,4667,4668,5,238,0,0,4668,4669,3,1234,617,0,4669,4670,5,116,0,0,4670,4671,3,482,241,0,4671,4712,1,0,0,0,4672,4673,5,159,0,0,4673,4674,5,80,0,0,4674,4675,5,271,0,0,4675,4676,5,156,0,0,4676,4677,3,470,235,0,4677,4678,5,100,0,0,4678,4679,3,1234,617,0,4679,4680,5,116,0,0,4680,4681,3,482,241,0,4681,4712,1,0,0,0,4682,4683,5,159,0,0,4683,4684,5,80,0,0,4684,4685,5,271,0,0,4685,4686,5,206,0,0,4686,4687,3,470,235,0,4687,4688,5,100,0,0,4688,4689,3,1234,617,0,4689,4690,5,116,0,0,4690,4691,3,482,241,0,4691,4712,1,0,0,0,4692,4693,5,159,0,0,4693,4694,5,80,0,0,4694,4695,5,239,0,0,4695,4696,5,267,0,0,4696,4697,3,264,132,0,4697,4698,5,116,0,0,4698,4699,3,482,241,0,4699,4712,1,0,0,0,4700,4701,5,159,0,0,4701,4702,5,80,0,0,4702,4703,5,41,0,0,4703,4704,5,2,0,0,4704,4705,3,996,498,0,4705,4706,5,36,0,0,4706,4707,3,996,498,0,4707,4708,5,3,0,0,4708,4709,5,116,0,0,4709,4710,3,482,241,0,4710,4712,1,0,0,0,4711,4527,1,0,0,0,4711,4534,1,0,0,0,4711,4541,1,0,0,0,4711,4548,1,0,0,0,4711,4555,1,0,0,0,4711,4562,1,0,0,0,4711,4569,1,0,0,0,4711,4576,1,0,0,0,4711,4583,1,0,0,0,4711,4590,1,0,0,0,4711,4597,1,0,0,0,4711,4604,1,0,0,0,4711,4611,1,0,0,0,4711,4618,1,0,0,0,4711,4630,1,0,0,0,4711,4639,1,0,0,0,4711,4648,1,0,0,0,4711,4655,1,0,0,0,4711,4662,1,0,0,0,4711,4672,1,0,0,0,4711,4682,1,0,0,0,4711,4692,1,0,0,0,4711,4700,1,0,0,0,4712,481,1,0,0,0,4713,4716,3,1252,626,0,4714,4716,5,78,0,0,4715,4713,1,0,0,0,4715,4714,1,0,0,0,4716,483,1,0,0,0,4717,4718,5,320,0,0,4718,4719,5,237,0,0,4719,4720,3,486,243,0,4720,4721,5,80,0,0,4721,4722,3,460,230,0,4722,4723,3,470,235,0,4723,4724,5,116,0,0,4724,4725,3,488,244,0,4725,4854,1,0,0,0,4726,4727,5,320,0,0,4727,4728,5,237,0,0,4728,4729,3,486,243,0,4729,4730,5,80,0,0,4730,4731,5,321,0,0,4731,4732,3,1226,613,0,4732,4733,5,116,0,0,4733,4734,3,488,244,0,4734,4854,1,0,0,0,4735,4736,5,320,0,0,4736,4737,5,237,0,0,4737,4738,3,486,243,0,4738,4739,5,80,0,0,4739,4740,5,226,0,0,4740,4741,3,1218,609,0,4741,4742,5,116,0,0,4742,4743,3,488,244,0,4743,4854,1,0,0,0,4744,4745,5,320,0,0,4745,4746,5,237,0,0,4746,4747,3,486,243,0,4747,4748,5,80,0,0,4748,4749,5,44,0,0,4749,4750,3,470,235,0,4750,4751,5,116,0,0,4751,4752,3,488,244,0,4752,4854,1,0,0,0,4753,4754,5,320,0,0,4754,4755,5,237,0,0,4755,4756,3,486,243,0,4756,4757,5,80,0,0,4757,4758,3,462,231,0,4758,4759,3,1234,617,0,4759,4760,5,116,0,0,4760,4761,3,488,244,0,4761,4854,1,0,0,0,4762,4763,5,320,0,0,4763,4764,5,237,0,0,4764,4765,3,486,243,0,4765,4766,5,80,0,0,4766,4767,5,311,0,0,4767,4768,3,1260,630,0,4768,4769,5,116,0,0,4769,4770,3,488,244,0,4770,4854,1,0,0,0,4771,4772,5,320,0,0,4772,4773,5,237,0,0,4773,4774,3,486,243,0,4774,4775,5,80,0,0,4775,4776,5,175,0,0,4776,4777,3,1210,605,0,4777,4778,5,116,0,0,4778,4779,3,488,244,0,4779,4854,1,0,0,0,4780,4781,5,320,0,0,4781,4782,5,237,0,0,4782,4783,3,486,243,0,4783,4784,5,80,0,0,4784,4785,5,316,0,0,4785,4786,3,1214,607,0,4786,4787,5,116,0,0,4787,4788,3,488,244,0,4788,4854,1,0,0,0,4789,4790,5,320,0,0,4790,4791,5,237,0,0,4791,4792,3,486,243,0,4792,4793,5,80,0,0,4793,4794,5,353,0,0,4794,4795,3,996,498,0,4795,4796,5,116,0,0,4796,4797,3,488,244,0,4797,4854,1,0,0,0,4798,4799,5,320,0,0,4799,4800,5,237,0,0,4800,4801,3,486,243,0,4801,4802,5,80,0,0,4802,4803,5,189,0,0,4803,4804,3,996,498,0,4804,4805,5,116,0,0,4805,4806,3,488,244,0,4806,4854,1,0,0,0,4807,4808,5,320,0,0,4808,4809,5,237,0,0,4809,4810,3,486,243,0,4810,4811,5,80,0,0,4811,4812,5,136,0,0,4812,4813,3,580,290,0,4813,4814,5,116,0,0,4814,4815,3,488,244,0,4815,4854,1,0,0,0,4816,4817,5,320,0,0,4817,4818,5,237,0,0,4818,4819,3,486,243,0,4819,4820,5,80,0,0,4820,4821,5,211,0,0,4821,4822,3,560,280,0,4822,4823,5,116,0,0,4823,4824,3,488,244,0,4824,4854,1,0,0,0,4825,4826,5,320,0,0,4826,4827,5,237,0,0,4827,4828,3,486,243,0,4828,4829,5,80,0,0,4829,4830,5,239,0,0,4830,4831,5,267,0,0,4831,4832,3,264,132,0,4832,4833,5,116,0,0,4833,4834,3,488,244,0,4834,4854,1,0,0,0,4835,4836,5,320,0,0,4836,4837,5,237,0,0,4837,4838,3,486,243,0,4838,4839,5,80,0,0,4839,4840,5,289,0,0,4840,4841,3,560,280,0,4841,4842,5,116,0,0,4842,4843,3,488,244,0,4843,4854,1,0,0,0,4844,4845,5,320,0,0,4845,4846,5,237,0,0,4846,4847,3,486,243,0,4847,4848,5,80,0,0,4848,4849,5,442,0,0,4849,4850,3,560,280,0,4850,4851,5,116,0,0,4851,4852,3,488,244,0,4852,4854,1,0,0,0,4853,4717,1,0,0,0,4853,4726,1,0,0,0,4853,4735,1,0,0,0,4853,4744,1,0,0,0,4853,4753,1,0,0,0,4853,4762,1,0,0,0,4853,4771,1,0,0,0,4853,4780,1,0,0,0,4853,4789,1,0,0,0,4853,4798,1,0,0,0,4853,4807,1,0,0,0,4853,4816,1,0,0,0,4853,4825,1,0,0,0,4853,4835,1,0,0,0,4853,4844,1,0,0,0,4854,485,1,0,0,0,4855,4856,5,62,0,0,4856,4859,3,64,32,0,4857,4859,1,0,0,0,4858,4855,1,0,0,0,4858,4857,1,0,0,0,4859,487,1,0,0,0,4860,4863,3,1252,626,0,4861,4863,5,78,0,0,4862,4860,1,0,0,0,4862,4861,1,0,0,0,4863,489,1,0,0,0,4864,4865,5,61,0,0,4865,4869,3,492,246,0,4866,4867,5,258,0,0,4867,4869,3,492,246,0,4868,4864,1,0,0,0,4868,4866,1,0,0,0,4869,491,1,0,0,0,4870,4937,3,854,427,0,4871,4872,3,494,247,0,4872,4873,3,854,427,0,4873,4937,1,0,0,0,4874,4875,5,261,0,0,4875,4876,3,496,248,0,4876,4877,3,854,427,0,4877,4937,1,0,0,0,4878,4879,5,286,0,0,4879,4880,3,496,248,0,4880,4881,3,854,427,0,4881,4937,1,0,0,0,4882,4883,5,207,0,0,4883,4884,3,496,248,0,4884,4885,3,854,427,0,4885,4937,1,0,0,0,4886,4887,5,240,0,0,4887,4888,3,496,248,0,4888,4889,3,854,427,0,4889,4937,1,0,0,0,4890,4891,5,130,0,0,4891,4892,3,1258,629,0,4892,4893,3,496,248,0,4893,4894,3,854,427,0,4894,4937,1,0,0,0,4895,4896,5,300,0,0,4896,4897,3,1258,629,0,4897,4898,3,496,248,0,4898,4899,3,854,427,0,4899,4937,1,0,0,0,4900,4901,3,1258,629,0,4901,4902,3,496,248,0,4902,4903,3,854,427,0,4903,4937,1,0,0,0,4904,4905,5,30,0,0,4905,4906,3,496,248,0,4906,4907,3,854,427,0,4907,4937,1,0,0,0,4908,4909,5,210,0,0,4909,4910,3,496,248,0,4910,4911,3,854,427,0,4911,4937,1,0,0,0,4912,4913,5,210,0,0,4913,4914,3,1258,629,0,4914,4915,3,496,248,0,4915,4916,3,854,427,0,4916,4937,1,0,0,0,4917,4918,5,210,0,0,4918,4919,5,30,0,0,4919,4920,3,496,248,0,4920,4921,3,854,427,0,4921,4937,1,0,0,0,4922,4923,5,144,0,0,4923,4924,3,496,248,0,4924,4925,3,854,427,0,4925,4937,1,0,0,0,4926,4927,5,144,0,0,4927,4928,3,1258,629,0,4928,4929,3,496,248,0,4929,4930,3,854,427,0,4930,4937,1,0,0,0,4931,4932,5,144,0,0,4932,4933,5,30,0,0,4933,4934,3,496,248,0,4934,4935,3,854,427,0,4935,4937,1,0,0,0,4936,4870,1,0,0,0,4936,4871,1,0,0,0,4936,4874,1,0,0,0,4936,4878,1,0,0,0,4936,4882,1,0,0,0,4936,4886,1,0,0,0,4936,4890,1,0,0,0,4936,4895,1,0,0,0,4936,4900,1,0,0,0,4936,4904,1,0,0,0,4936,4908,1,0,0,0,4936,4912,1,0,0,0,4936,4917,1,0,0,0,4936,4922,1,0,0,0,4936,4926,1,0,0,0,4936,4931,1,0,0,0,4937,493,1,0,0,0,4938,4939,7,23,0,0,4939,495,1,0,0,0,4940,4943,3,494,247,0,4941,4943,1,0,0,0,4942,4940,1,0,0,0,4942,4941,1,0,0,0,4943,497,1,0,0,0,4944,4945,5,65,0,0,4945,4946,3,502,251,0,4946,4947,5,80,0,0,4947,4948,3,508,254,0,4948,4949,5,94,0,0,4949,4950,3,510,255,0,4950,4951,3,514,257,0,4951,499,1,0,0,0,4952,4953,5,310,0,0,4953,4954,3,502,251,0,4954,4955,5,80,0,0,4955,4956,3,508,254,0,4956,4957,5,64,0,0,4957,4958,3,510,255,0,4958,4959,3,100,50,0,4959,4972,1,0,0,0,4960,4961,5,310,0,0,4961,4962,5,65,0,0,4962,4963,5,272,0,0,4963,4964,5,62,0,0,4964,4965,3,502,251,0,4965,4966,5,80,0,0,4966,4967,3,508,254,0,4967,4968,5,64,0,0,4968,4969,3,510,255,0,4969,4970,3,100,50,0,4970,4972,1,0,0,0,4971,4952,1,0,0,0,4971,4960,1,0,0,0,4972,501,1,0,0,0,4973,4989,3,504,252,0,4974,4989,5,30,0,0,4975,4976,5,30,0,0,4976,4989,5,287,0,0,4977,4978,5,30,0,0,4978,4979,5,2,0,0,4979,4980,3,194,97,0,4980,4981,5,3,0,0,4981,4989,1,0,0,0,4982,4983,5,30,0,0,4983,4984,5,287,0,0,4984,4985,5,2,0,0,4985,4986,3,194,97,0,4986,4987,5,3,0,0,4987,4989,1,0,0,0,4988,4973,1,0,0,0,4988,4974,1,0,0,0,4988,4975,1,0,0,0,4988,4977,1,0,0,0,4988,4982,1,0,0,0,4989,503,1,0,0,0,4990,4995,3,506,253,0,4991,4992,5,6,0,0,4992,4994,3,506,253,0,4993,4991,1,0,0,0,4994,4997,1,0,0,0,4995,4993,1,0,0,0,4995,4996,1,0,0,0,4996,505,1,0,0,0,4997,4995,1,0,0,0,4998,4999,5,88,0,0,4999,5008,3,192,96,0,5e3,5001,5,86,0,0,5001,5008,3,192,96,0,5002,5003,5,46,0,0,5003,5008,3,192,96,0,5004,5005,3,1264,632,0,5005,5006,3,192,96,0,5006,5008,1,0,0,0,5007,4998,1,0,0,0,5007,5e3,1,0,0,0,5007,5002,1,0,0,0,5007,5004,1,0,0,0,5008,507,1,0,0,0,5009,5048,3,1208,604,0,5010,5011,5,92,0,0,5011,5048,3,1208,604,0,5012,5013,5,321,0,0,5013,5048,3,1228,614,0,5014,5015,5,63,0,0,5015,5016,5,174,0,0,5016,5017,5,374,0,0,5017,5048,3,1232,616,0,5018,5019,5,63,0,0,5019,5020,5,324,0,0,5020,5048,3,1232,616,0,5021,5022,5,211,0,0,5022,5048,3,558,279,0,5023,5024,5,289,0,0,5024,5048,3,558,279,0,5025,5026,5,442,0,0,5026,5048,3,558,279,0,5027,5028,5,175,0,0,5028,5048,3,1212,606,0,5029,5030,5,189,0,0,5030,5048,3,468,234,0,5031,5032,5,238,0,0,5032,5048,3,1232,616,0,5033,5034,5,239,0,0,5034,5035,5,267,0,0,5035,5048,3,266,133,0,5036,5037,5,316,0,0,5037,5048,3,1216,608,0,5038,5039,5,344,0,0,5039,5048,3,1232,616,0,5040,5041,5,353,0,0,5041,5048,3,468,234,0,5042,5043,5,30,0,0,5043,5044,7,24,0,0,5044,5045,5,68,0,0,5045,5046,5,316,0,0,5046,5048,3,1216,608,0,5047,5009,1,0,0,0,5047,5010,1,0,0,0,5047,5012,1,0,0,0,5047,5014,1,0,0,0,5047,5018,1,0,0,0,5047,5021,1,0,0,0,5047,5023,1,0,0,0,5047,5025,1,0,0,0,5047,5027,1,0,0,0,5047,5029,1,0,0,0,5047,5031,1,0,0,0,5047,5033,1,0,0,0,5047,5036,1,0,0,0,5047,5038,1,0,0,0,5047,5040,1,0,0,0,5047,5042,1,0,0,0,5048,509,1,0,0,0,5049,5054,3,512,256,0,5050,5051,5,6,0,0,5051,5053,3,512,256,0,5052,5050,1,0,0,0,5053,5056,1,0,0,0,5054,5052,1,0,0,0,5054,5055,1,0,0,0,5055,511,1,0,0,0,5056,5054,1,0,0,0,5057,5061,3,1260,630,0,5058,5059,5,66,0,0,5059,5061,3,1260,630,0,5060,5057,1,0,0,0,5060,5058,1,0,0,0,5061,513,1,0,0,0,5062,5063,5,105,0,0,5063,5064,5,65,0,0,5064,5067,5,272,0,0,5065,5067,1,0,0,0,5066,5062,1,0,0,0,5066,5065,1,0,0,0,5067,515,1,0,0,0,5068,5069,5,65,0,0,5069,5070,3,504,252,0,5070,5071,5,94,0,0,5071,5072,3,1262,631,0,5072,5073,3,520,260,0,5073,5074,3,522,261,0,5074,517,1,0,0,0,5075,5076,5,310,0,0,5076,5077,3,504,252,0,5077,5078,5,64,0,0,5078,5079,3,1262,631,0,5079,5080,3,522,261,0,5080,5081,3,100,50,0,5081,5093,1,0,0,0,5082,5083,5,310,0,0,5083,5084,5,134,0,0,5084,5085,5,272,0,0,5085,5086,5,62,0,0,5086,5087,3,504,252,0,5087,5088,5,64,0,0,5088,5089,3,1262,631,0,5089,5090,3,522,261,0,5090,5091,3,100,50,0,5091,5093,1,0,0,0,5092,5075,1,0,0,0,5092,5082,1,0,0,0,5093,519,1,0,0,0,5094,5095,5,105,0,0,5095,5096,5,134,0,0,5096,5099,5,272,0,0,5097,5099,1,0,0,0,5098,5094,1,0,0,0,5098,5097,1,0,0,0,5099,521,1,0,0,0,5100,5101,5,214,0,0,5101,5102,5,147,0,0,5102,5105,3,1260,630,0,5103,5105,1,0,0,0,5104,5100,1,0,0,0,5104,5103,1,0,0,0,5105,523,1,0,0,0,5106,5107,5,138,0,0,5107,5108,5,53,0,0,5108,5112,5,287,0,0,5109,5111,3,526,263,0,5110,5109,1,0,0,0,5111,5114,1,0,0,0,5112,5110,1,0,0,0,5112,5113,1,0,0,0,5113,5115,1,0,0,0,5114,5112,1,0,0,0,5115,5116,3,528,264,0,5116,525,1,0,0,0,5117,5118,5,68,0,0,5118,5119,5,316,0,0,5119,5125,3,1216,608,0,5120,5121,5,62,0,0,5121,5122,3,1506,753,0,5122,5123,3,1262,631,0,5123,5125,1,0,0,0,5124,5117,1,0,0,0,5124,5120,1,0,0,0,5125,527,1,0,0,0,5126,5127,5,65,0,0,5127,5128,3,502,251,0,5128,5129,5,80,0,0,5129,5130,3,530,265,0,5130,5131,5,94,0,0,5131,5132,3,510,255,0,5132,5133,3,514,257,0,5133,5154,1,0,0,0,5134,5135,5,310,0,0,5135,5136,3,502,251,0,5136,5137,5,80,0,0,5137,5138,3,530,265,0,5138,5139,5,64,0,0,5139,5140,3,510,255,0,5140,5141,3,100,50,0,5141,5154,1,0,0,0,5142,5143,5,310,0,0,5143,5144,5,65,0,0,5144,5145,5,272,0,0,5145,5146,5,62,0,0,5146,5147,3,502,251,0,5147,5148,5,80,0,0,5148,5149,3,530,265,0,5149,5150,5,64,0,0,5150,5151,3,510,255,0,5151,5152,3,100,50,0,5152,5154,1,0,0,0,5153,5126,1,0,0,0,5153,5134,1,0,0,0,5153,5142,1,0,0,0,5154,529,1,0,0,0,5155,5156,7,25,0,0,5156,531,1,0,0,0,5157,5159,5,46,0,0,5158,5160,5,98,0,0,5159,5158,1,0,0,0,5159,5160,1,0,0,0,5160,5161,1,0,0,0,5161,5163,5,226,0,0,5162,5164,5,109,0,0,5163,5162,1,0,0,0,5163,5164,1,0,0,0,5164,5166,1,0,0,0,5165,5167,3,1234,617,0,5166,5165,1,0,0,0,5166,5167,1,0,0,0,5167,5168,1,0,0,0,5168,5169,5,80,0,0,5169,5170,3,958,479,0,5170,5171,3,534,267,0,5171,5172,5,2,0,0,5172,5173,3,536,268,0,5173,5174,5,3,0,0,5174,5175,3,542,271,0,5175,5176,3,110,55,0,5176,5177,3,232,116,0,5177,5178,3,974,487,0,5178,5203,1,0,0,0,5179,5181,5,46,0,0,5180,5182,5,98,0,0,5181,5180,1,0,0,0,5181,5182,1,0,0,0,5182,5183,1,0,0,0,5183,5185,5,226,0,0,5184,5186,5,109,0,0,5185,5184,1,0,0,0,5185,5186,1,0,0,0,5186,5187,1,0,0,0,5187,5188,5,220,0,0,5188,5189,5,77,0,0,5189,5190,5,389,0,0,5190,5191,3,1234,617,0,5191,5192,5,80,0,0,5192,5193,3,958,479,0,5193,5194,3,534,267,0,5194,5195,5,2,0,0,5195,5196,3,536,268,0,5196,5197,5,3,0,0,5197,5198,3,542,271,0,5198,5199,3,110,55,0,5199,5200,3,232,116,0,5200,5201,3,974,487,0,5201,5203,1,0,0,0,5202,5157,1,0,0,0,5202,5179,1,0,0,0,5203,533,1,0,0,0,5204,5205,5,100,0,0,5205,5208,3,1234,617,0,5206,5208,1,0,0,0,5207,5204,1,0,0,0,5207,5206,1,0,0,0,5208,535,1,0,0,0,5209,5214,3,540,270,0,5210,5211,5,6,0,0,5211,5213,3,540,270,0,5212,5210,1,0,0,0,5213,5216,1,0,0,0,5214,5212,1,0,0,0,5214,5215,1,0,0,0,5215,537,1,0,0,0,5216,5214,1,0,0,0,5217,5218,3,544,272,0,5218,5219,3,546,273,0,5219,5220,3,548,274,0,5220,5221,3,550,275,0,5221,5229,1,0,0,0,5222,5223,3,544,272,0,5223,5224,3,470,235,0,5224,5225,3,108,54,0,5225,5226,3,548,274,0,5226,5227,3,550,275,0,5227,5229,1,0,0,0,5228,5217,1,0,0,0,5228,5222,1,0,0,0,5229,539,1,0,0,0,5230,5231,3,1264,632,0,5231,5232,3,538,269,0,5232,5242,1,0,0,0,5233,5234,3,1090,545,0,5234,5235,3,538,269,0,5235,5242,1,0,0,0,5236,5237,5,2,0,0,5237,5238,3,1038,519,0,5238,5239,5,3,0,0,5239,5240,3,538,269,0,5240,5242,1,0,0,0,5241,5230,1,0,0,0,5241,5233,1,0,0,0,5241,5236,1,0,0,0,5242,541,1,0,0,0,5243,5244,5,441,0,0,5244,5245,5,2,0,0,5245,5250,3,540,270,0,5246,5247,5,6,0,0,5247,5249,3,540,270,0,5248,5246,1,0,0,0,5249,5252,1,0,0,0,5250,5248,1,0,0,0,5250,5251,1,0,0,0,5251,5253,1,0,0,0,5252,5250,1,0,0,0,5253,5254,5,3,0,0,5254,5257,1,0,0,0,5255,5257,1,0,0,0,5256,5243,1,0,0,0,5256,5255,1,0,0,0,5257,543,1,0,0,0,5258,5259,5,43,0,0,5259,5262,3,470,235,0,5260,5262,1,0,0,0,5261,5258,1,0,0,0,5261,5260,1,0,0,0,5262,545,1,0,0,0,5263,5266,3,470,235,0,5264,5266,1,0,0,0,5265,5263,1,0,0,0,5265,5264,1,0,0,0,5266,547,1,0,0,0,5267,5271,5,37,0,0,5268,5271,5,55,0,0,5269,5271,1,0,0,0,5270,5267,1,0,0,0,5270,5268,1,0,0,0,5270,5269,1,0,0,0,5271,549,1,0,0,0,5272,5273,5,266,0,0,5273,5278,5,207,0,0,5274,5275,5,266,0,0,5275,5278,5,240,0,0,5276,5278,1,0,0,0,5277,5272,1,0,0,0,5277,5274,1,0,0,0,5277,5276,1,0,0,0,5278,551,1,0,0,0,5279,5280,5,46,0,0,5280,5281,3,554,277,0,5281,5282,7,21,0,0,5282,5283,3,1240,620,0,5283,5285,5,2,0,0,5284,5286,3,562,281,0,5285,5284,1,0,0,0,5285,5286,1,0,0,0,5286,5287,1,0,0,0,5287,5297,5,3,0,0,5288,5295,5,309,0,0,5289,5296,3,572,286,0,5290,5291,5,92,0,0,5291,5292,5,2,0,0,5292,5293,3,598,299,0,5293,5294,5,3,0,0,5294,5296,1,0,0,0,5295,5289,1,0,0,0,5295,5290,1,0,0,0,5296,5298,1,0,0,0,5297,5288,1,0,0,0,5297,5298,1,0,0,0,5298,5299,1,0,0,0,5299,5300,3,584,292,0,5300,553,1,0,0,0,5301,5302,5,82,0,0,5302,5305,5,304,0,0,5303,5305,1,0,0,0,5304,5301,1,0,0,0,5304,5303,1,0,0,0,5305,555,1,0,0,0,5306,5311,3,566,283,0,5307,5308,5,6,0,0,5308,5310,3,566,283,0,5309,5307,1,0,0,0,5310,5313,1,0,0,0,5311,5309,1,0,0,0,5311,5312,1,0,0,0,5312,557,1,0,0,0,5313,5311,1,0,0,0,5314,5319,3,560,280,0,5315,5316,5,6,0,0,5316,5318,3,560,280,0,5317,5315,1,0,0,0,5318,5321,1,0,0,0,5319,5317,1,0,0,0,5319,5320,1,0,0,0,5320,559,1,0,0,0,5321,5319,1,0,0,0,5322,5323,3,1240,620,0,5323,5325,5,2,0,0,5324,5326,3,556,278,0,5325,5324,1,0,0,0,5325,5326,1,0,0,0,5326,5327,1,0,0,0,5327,5328,5,3,0,0,5328,5335,1,0,0,0,5329,5335,3,1282,641,0,5330,5332,3,1264,632,0,5331,5333,3,1198,599,0,5332,5331,1,0,0,0,5332,5333,1,0,0,0,5333,5335,1,0,0,0,5334,5322,1,0,0,0,5334,5329,1,0,0,0,5334,5330,1,0,0,0,5335,561,1,0,0,0,5336,5341,3,564,282,0,5337,5338,5,6,0,0,5338,5340,3,564,282,0,5339,5337,1,0,0,0,5340,5343,1,0,0,0,5341,5339,1,0,0,0,5341,5342,1,0,0,0,5342,563,1,0,0,0,5343,5341,1,0,0,0,5344,5347,3,566,283,0,5345,5346,7,26,0,0,5346,5348,3,1038,519,0,5347,5345,1,0,0,0,5347,5348,1,0,0,0,5348,565,1,0,0,0,5349,5351,3,568,284,0,5350,5352,3,570,285,0,5351,5350,1,0,0,0,5351,5352,1,0,0,0,5352,5353,1,0,0,0,5353,5354,3,574,287,0,5354,5363,1,0,0,0,5355,5357,3,570,285,0,5356,5358,3,568,284,0,5357,5356,1,0,0,0,5357,5358,1,0,0,0,5358,5359,1,0,0,0,5359,5360,3,574,287,0,5360,5363,1,0,0,0,5361,5363,3,574,287,0,5362,5349,1,0,0,0,5362,5355,1,0,0,0,5362,5361,1,0,0,0,5363,567,1,0,0,0,5364,5366,5,68,0,0,5365,5367,5,453,0,0,5366,5365,1,0,0,0,5366,5367,1,0,0,0,5367,5372,1,0,0,0,5368,5372,5,453,0,0,5369,5372,5,393,0,0,5370,5372,5,101,0,0,5371,5364,1,0,0,0,5371,5368,1,0,0,0,5371,5369,1,0,0,0,5371,5370,1,0,0,0,5372,569,1,0,0,0,5373,5378,3,1268,634,0,5374,5378,3,1286,643,0,5375,5378,5,119,0,0,5376,5378,5,126,0,0,5377,5373,1,0,0,0,5377,5374,1,0,0,0,5377,5375,1,0,0,0,5377,5376,1,0,0,0,5378,571,1,0,0,0,5379,5380,3,574,287,0,5380,573,1,0,0,0,5381,5396,3,996,498,0,5382,5384,5,408,0,0,5383,5382,1,0,0,0,5383,5384,1,0,0,0,5384,5389,1,0,0,0,5385,5390,3,1286,643,0,5386,5390,3,1268,634,0,5387,5390,5,119,0,0,5388,5390,5,126,0,0,5389,5385,1,0,0,0,5389,5386,1,0,0,0,5389,5387,1,0,0,0,5389,5388,1,0,0,0,5390,5391,1,0,0,0,5391,5392,3,472,236,0,5392,5393,5,27,0,0,5393,5394,5,353,0,0,5394,5396,1,0,0,0,5395,5381,1,0,0,0,5395,5383,1,0,0,0,5396,575,1,0,0,0,5397,5408,5,2,0,0,5398,5409,5,9,0,0,5399,5409,3,578,289,0,5400,5401,5,83,0,0,5401,5402,5,147,0,0,5402,5409,3,578,289,0,5403,5404,3,578,289,0,5404,5405,5,83,0,0,5405,5406,5,147,0,0,5406,5407,3,578,289,0,5407,5409,1,0,0,0,5408,5398,1,0,0,0,5408,5399,1,0,0,0,5408,5400,1,0,0,0,5408,5403,1,0,0,0,5409,5410,1,0,0,0,5410,5411,5,3,0,0,5411,577,1,0,0,0,5412,5417,3,566,283,0,5413,5414,5,6,0,0,5414,5416,3,566,283,0,5415,5413,1,0,0,0,5416,5419,1,0,0,0,5417,5415,1,0,0,0,5417,5418,1,0,0,0,5418,579,1,0,0,0,5419,5417,1,0,0,0,5420,5421,3,1240,620,0,5421,5422,3,576,288,0,5422,581,1,0,0,0,5423,5428,3,580,290,0,5424,5425,5,6,0,0,5425,5427,3,580,290,0,5426,5424,1,0,0,0,5427,5430,1,0,0,0,5428,5426,1,0,0,0,5428,5429,1,0,0,0,5429,583,1,0,0,0,5430,5428,1,0,0,0,5431,5433,3,588,294,0,5432,5431,1,0,0,0,5433,5434,1,0,0,0,5434,5432,1,0,0,0,5434,5435,1,0,0,0,5435,5436,1,0,0,0,5436,5437,6,292,-1,0,5437,585,1,0,0,0,5438,5439,5,149,0,0,5439,5440,5,80,0,0,5440,5441,5,78,0,0,5441,5474,5,458,0,0,5442,5443,5,309,0,0,5443,5444,5,78,0,0,5444,5445,5,80,0,0,5445,5446,5,78,0,0,5446,5474,5,458,0,0,5447,5474,5,339,0,0,5448,5474,5,222,0,0,5449,5474,5,331,0,0,5450,5474,5,370,0,0,5451,5452,5,205,0,0,5452,5453,5,320,0,0,5453,5474,5,181,0,0,5454,5455,5,205,0,0,5455,5456,5,320,0,0,5456,5474,5,234,0,0,5457,5458,5,320,0,0,5458,5474,5,181,0,0,5459,5460,5,320,0,0,5460,5474,5,234,0,0,5461,5474,5,241,0,0,5462,5463,5,77,0,0,5463,5474,5,241,0,0,5464,5465,5,170,0,0,5465,5474,3,264,132,0,5466,5467,5,313,0,0,5467,5474,3,264,132,0,5468,5469,5,459,0,0,5469,5474,3,470,235,0,5470,5474,3,74,37,0,5471,5472,5,460,0,0,5472,5474,3,1264,632,0,5473,5438,1,0,0,0,5473,5442,1,0,0,0,5473,5447,1,0,0,0,5473,5448,1,0,0,0,5473,5449,1,0,0,0,5473,5450,1,0,0,0,5473,5451,1,0,0,0,5473,5454,1,0,0,0,5473,5457,1,0,0,0,5473,5459,1,0,0,0,5473,5461,1,0,0,0,5473,5462,1,0,0,0,5473,5464,1,0,0,0,5473,5466,1,0,0,0,5473,5468,1,0,0,0,5473,5470,1,0,0,0,5473,5471,1,0,0,0,5474,587,1,0,0,0,5475,5476,5,36,0,0,5476,5484,3,590,295,0,5477,5478,5,238,0,0,5478,5484,3,64,32,0,5479,5480,5,443,0,0,5480,5484,3,592,296,0,5481,5484,5,104,0,0,5482,5484,3,586,293,0,5483,5475,1,0,0,0,5483,5477,1,0,0,0,5483,5479,1,0,0,0,5483,5481,1,0,0,0,5483,5482,1,0,0,0,5484,589,1,0,0,0,5485,5491,3,1252,626,0,5486,5487,3,1252,626,0,5487,5488,5,6,0,0,5488,5489,3,1252,626,0,5489,5491,1,0,0,0,5490,5485,1,0,0,0,5490,5486,1,0,0,0,5491,591,1,0,0,0,5492,5493,5,62,0,0,5493,5494,5,353,0,0,5494,5501,3,996,498,0,5495,5496,5,6,0,0,5496,5497,5,62,0,0,5497,5498,5,353,0,0,5498,5500,3,996,498,0,5499,5495,1,0,0,0,5500,5503,1,0,0,0,5501,5499,1,0,0,0,5501,5502,1,0,0,0,5502,593,1,0,0,0,5503,5501,1,0,0,0,5504,5505,5,105,0,0,5505,5508,3,416,208,0,5506,5508,1,0,0,0,5507,5504,1,0,0,0,5507,5506,1,0,0,0,5508,595,1,0,0,0,5509,5510,3,570,285,0,5510,5511,3,574,287,0,5511,597,1,0,0,0,5512,5517,3,596,298,0,5513,5514,5,6,0,0,5514,5516,3,596,298,0,5515,5513,1,0,0,0,5516,5519,1,0,0,0,5517,5515,1,0,0,0,5517,5518,1,0,0,0,5518,599,1,0,0,0,5519,5517,1,0,0,0,5520,5521,5,138,0,0,5521,5522,7,27,0,0,5522,5524,3,560,280,0,5523,5525,3,586,293,0,5524,5523,1,0,0,0,5525,5526,1,0,0,0,5526,5524,1,0,0,0,5526,5527,1,0,0,0,5527,5529,1,0,0,0,5528,5530,5,308,0,0,5529,5528,1,0,0,0,5529,5530,1,0,0,0,5530,601,1,0,0,0,5531,5532,5,191,0,0,5532,5533,5,211,0,0,5533,5534,3,558,279,0,5534,5535,3,100,50,0,5535,5568,1,0,0,0,5536,5537,5,191,0,0,5537,5538,5,211,0,0,5538,5539,5,220,0,0,5539,5540,5,389,0,0,5540,5541,3,558,279,0,5541,5542,3,100,50,0,5542,5568,1,0,0,0,5543,5544,5,191,0,0,5544,5545,5,289,0,0,5545,5546,3,558,279,0,5546,5547,3,100,50,0,5547,5568,1,0,0,0,5548,5549,5,191,0,0,5549,5550,5,289,0,0,5550,5551,5,220,0,0,5551,5552,5,389,0,0,5552,5553,3,558,279,0,5553,5554,3,100,50,0,5554,5568,1,0,0,0,5555,5556,5,191,0,0,5556,5557,5,442,0,0,5557,5558,3,558,279,0,5558,5559,3,100,50,0,5559,5568,1,0,0,0,5560,5561,5,191,0,0,5561,5562,5,442,0,0,5562,5563,5,220,0,0,5563,5564,5,389,0,0,5564,5565,3,558,279,0,5565,5566,3,100,50,0,5566,5568,1,0,0,0,5567,5531,1,0,0,0,5567,5536,1,0,0,0,5567,5543,1,0,0,0,5567,5548,1,0,0,0,5567,5555,1,0,0,0,5567,5560,1,0,0,0,5568,603,1,0,0,0,5569,5570,5,191,0,0,5570,5571,5,136,0,0,5571,5572,3,582,291,0,5572,5573,3,100,50,0,5573,5582,1,0,0,0,5574,5575,5,191,0,0,5575,5576,5,136,0,0,5576,5577,5,220,0,0,5577,5578,5,389,0,0,5578,5579,3,582,291,0,5579,5580,3,100,50,0,5580,5582,1,0,0,0,5581,5569,1,0,0,0,5581,5574,1,0,0,0,5582,605,1,0,0,0,5583,5584,5,191,0,0,5584,5585,5,271,0,0,5585,5586,3,612,306,0,5586,5587,3,100,50,0,5587,5596,1,0,0,0,5588,5589,5,191,0,0,5589,5590,5,271,0,0,5590,5591,5,220,0,0,5591,5592,5,389,0,0,5592,5593,3,612,306,0,5593,5594,3,100,50,0,5594,5596,1,0,0,0,5595,5583,1,0,0,0,5595,5588,1,0,0,0,5596,607,1,0,0,0,5597,5598,5,2,0,0,5598,5599,3,996,498,0,5599,5600,5,3,0,0,5600,5620,1,0,0,0,5601,5602,5,2,0,0,5602,5603,3,996,498,0,5603,5604,5,6,0,0,5604,5605,3,996,498,0,5605,5606,5,3,0,0,5606,5620,1,0,0,0,5607,5608,5,2,0,0,5608,5609,5,400,0,0,5609,5610,5,6,0,0,5610,5611,3,996,498,0,5611,5612,5,3,0,0,5612,5620,1,0,0,0,5613,5614,5,2,0,0,5614,5615,3,996,498,0,5615,5616,5,6,0,0,5616,5617,5,400,0,0,5617,5618,5,3,0,0,5618,5620,1,0,0,0,5619,5597,1,0,0,0,5619,5601,1,0,0,0,5619,5607,1,0,0,0,5619,5613,1,0,0,0,5620,609,1,0,0,0,5621,5622,3,1264,632,0,5622,5623,5,11,0,0,5623,5625,1,0,0,0,5624,5621,1,0,0,0,5625,5628,1,0,0,0,5626,5624,1,0,0,0,5626,5627,1,0,0,0,5627,5629,1,0,0,0,5628,5626,1,0,0,0,5629,5630,3,1146,573,0,5630,611,1,0,0,0,5631,5636,3,614,307,0,5632,5633,5,6,0,0,5633,5635,3,614,307,0,5634,5632,1,0,0,0,5635,5638,1,0,0,0,5636,5634,1,0,0,0,5636,5637,1,0,0,0,5637,613,1,0,0,0,5638,5636,1,0,0,0,5639,5640,3,610,305,0,5640,5641,3,608,304,0,5641,615,1,0,0,0,5642,5643,5,57,0,0,5643,5644,3,618,309,0,5644,617,1,0,0,0,5645,5647,3,620,310,0,5646,5645,1,0,0,0,5647,5648,1,0,0,0,5648,5646,1,0,0,0,5648,5649,1,0,0,0,5649,619,1,0,0,0,5650,5654,3,1252,626,0,5651,5652,5,238,0,0,5652,5654,3,64,32,0,5653,5650,1,0,0,0,5653,5651,1,0,0,0,5654,621,1,0,0,0,5655,5656,5,46,0,0,5656,5657,5,41,0,0,5657,5658,5,2,0,0,5658,5659,3,996,498,0,5659,5660,5,36,0,0,5660,5661,3,996,498,0,5661,5662,5,3,0,0,5662,5663,5,105,0,0,5663,5664,5,211,0,0,5664,5665,3,560,280,0,5665,5666,3,624,312,0,5666,5690,1,0,0,0,5667,5668,5,46,0,0,5668,5669,5,41,0,0,5669,5670,5,2,0,0,5670,5671,3,996,498,0,5671,5672,5,36,0,0,5672,5673,3,996,498,0,5673,5674,5,3,0,0,5674,5675,5,372,0,0,5675,5676,5,211,0,0,5676,5677,3,624,312,0,5677,5690,1,0,0,0,5678,5679,5,46,0,0,5679,5680,5,41,0,0,5680,5681,5,2,0,0,5681,5682,3,996,498,0,5682,5683,5,36,0,0,5683,5684,3,996,498,0,5684,5685,5,3,0,0,5685,5686,5,105,0,0,5686,5687,5,393,0,0,5687,5688,3,624,312,0,5688,5690,1,0,0,0,5689,5655,1,0,0,0,5689,5667,1,0,0,0,5689,5678,1,0,0,0,5690,623,1,0,0,0,5691,5692,5,36,0,0,5692,5697,5,223,0,0,5693,5694,5,36,0,0,5694,5697,5,141,0,0,5695,5697,1,0,0,0,5696,5691,1,0,0,0,5696,5693,1,0,0,0,5696,5695,1,0,0,0,5697,625,1,0,0,0,5698,5699,5,191,0,0,5699,5700,5,41,0,0,5700,5701,3,628,314,0,5701,5702,5,2,0,0,5702,5703,3,996,498,0,5703,5704,5,36,0,0,5704,5705,3,996,498,0,5705,5706,5,3,0,0,5706,5707,3,100,50,0,5707,627,1,0,0,0,5708,5709,5,220,0,0,5709,5712,5,389,0,0,5710,5712,1,0,0,0,5711,5708,1,0,0,0,5711,5710,1,0,0,0,5712,629,1,0,0,0,5713,5714,5,46,0,0,5714,5715,3,554,277,0,5715,5716,5,443,0,0,5716,5717,5,62,0,0,5717,5718,3,996,498,0,5718,5719,5,238,0,0,5719,5720,3,1234,617,0,5720,5721,5,2,0,0,5721,5722,3,632,316,0,5722,5723,5,3,0,0,5723,631,1,0,0,0,5724,5725,5,64,0,0,5725,5726,5,461,0,0,5726,5727,5,105,0,0,5727,5728,5,211,0,0,5728,5729,3,560,280,0,5729,5730,5,6,0,0,5730,5731,5,94,0,0,5731,5732,5,461,0,0,5732,5733,5,105,0,0,5733,5734,5,211,0,0,5734,5735,3,560,280,0,5735,5759,1,0,0,0,5736,5737,5,94,0,0,5737,5738,5,461,0,0,5738,5739,5,105,0,0,5739,5740,5,211,0,0,5740,5741,3,560,280,0,5741,5742,5,6,0,0,5742,5743,5,64,0,0,5743,5744,5,461,0,0,5744,5745,5,105,0,0,5745,5746,5,211,0,0,5746,5747,3,560,280,0,5747,5759,1,0,0,0,5748,5749,5,64,0,0,5749,5750,5,461,0,0,5750,5751,5,105,0,0,5751,5752,5,211,0,0,5752,5759,3,560,280,0,5753,5754,5,94,0,0,5754,5755,5,461,0,0,5755,5756,5,105,0,0,5756,5757,5,211,0,0,5757,5759,3,560,280,0,5758,5724,1,0,0,0,5758,5736,1,0,0,0,5758,5748,1,0,0,0,5758,5753,1,0,0,0,5759,633,1,0,0,0,5760,5761,5,191,0,0,5761,5762,5,443,0,0,5762,5763,3,628,314,0,5763,5764,5,62,0,0,5764,5765,3,996,498,0,5765,5766,5,238,0,0,5766,5767,3,1234,617,0,5767,5768,3,100,50,0,5768,635,1,0,0,0,5769,5774,5,299,0,0,5770,5771,5,2,0,0,5771,5772,3,640,320,0,5772,5773,5,3,0,0,5773,5775,1,0,0,0,5774,5770,1,0,0,0,5774,5775,1,0,0,0,5775,5776,1,0,0,0,5776,5778,3,638,319,0,5777,5779,5,109,0,0,5778,5777,1,0,0,0,5778,5779,1,0,0,0,5779,5780,1,0,0,0,5780,5781,3,1230,615,0,5781,5831,1,0,0,0,5782,5787,5,299,0,0,5783,5784,5,2,0,0,5784,5785,3,640,320,0,5785,5786,5,3,0,0,5786,5788,1,0,0,0,5787,5783,1,0,0,0,5787,5788,1,0,0,0,5788,5789,1,0,0,0,5789,5791,5,175,0,0,5790,5792,5,109,0,0,5791,5790,1,0,0,0,5791,5792,1,0,0,0,5792,5793,1,0,0,0,5793,5831,3,1210,605,0,5794,5799,5,299,0,0,5795,5796,5,2,0,0,5796,5797,3,640,320,0,5797,5798,5,3,0,0,5798,5800,1,0,0,0,5799,5795,1,0,0,0,5799,5800,1,0,0,0,5800,5801,1,0,0,0,5801,5803,5,316,0,0,5802,5804,5,109,0,0,5803,5802,1,0,0,0,5803,5804,1,0,0,0,5804,5805,1,0,0,0,5805,5831,3,1214,607,0,5806,5811,5,299,0,0,5807,5808,5,2,0,0,5808,5809,3,640,320,0,5809,5810,5,3,0,0,5810,5812,1,0,0,0,5811,5807,1,0,0,0,5811,5812,1,0,0,0,5812,5813,1,0,0,0,5813,5815,5,226,0,0,5814,5816,5,109,0,0,5815,5814,1,0,0,0,5815,5816,1,0,0,0,5816,5817,1,0,0,0,5817,5831,3,1218,609,0,5818,5823,5,299,0,0,5819,5820,5,2,0,0,5820,5821,3,640,320,0,5821,5822,5,3,0,0,5822,5824,1,0,0,0,5823,5819,1,0,0,0,5823,5824,1,0,0,0,5824,5825,1,0,0,0,5825,5827,5,342,0,0,5826,5828,5,109,0,0,5827,5826,1,0,0,0,5827,5828,1,0,0,0,5828,5829,1,0,0,0,5829,5831,3,1234,617,0,5830,5769,1,0,0,0,5830,5782,1,0,0,0,5830,5794,1,0,0,0,5830,5806,1,0,0,0,5830,5818,1,0,0,0,5831,637,1,0,0,0,5832,5833,7,28,0,0,5833,639,1,0,0,0,5834,5839,3,642,321,0,5835,5836,5,6,0,0,5836,5838,3,642,321,0,5837,5835,1,0,0,0,5838,5841,1,0,0,0,5839,5837,1,0,0,0,5839,5840,1,0,0,0,5840,641,1,0,0,0,5841,5839,1,0,0,0,5842,5843,7,29,0,0,5843,643,1,0,0,0,5844,5845,5,138,0,0,5845,5846,5,344,0,0,5846,5847,3,1234,617,0,5847,5848,5,326,0,0,5848,5849,3,108,54,0,5849,5857,1,0,0,0,5850,5851,5,138,0,0,5851,5852,5,344,0,0,5852,5853,3,1234,617,0,5853,5854,5,306,0,0,5854,5855,3,108,54,0,5855,5857,1,0,0,0,5856,5844,1,0,0,0,5856,5850,1,0,0,0,5857,645,1,0,0,0,5858,5859,5,138,0,0,5859,5860,5,136,0,0,5860,5861,3,580,290,0,5861,5862,5,302,0,0,5862,5863,5,94,0,0,5863,5864,3,1234,617,0,5864,6296,1,0,0,0,5865,5866,5,138,0,0,5866,5867,5,108,0,0,5867,5868,3,470,235,0,5868,5869,5,302,0,0,5869,5870,5,94,0,0,5870,5871,3,1234,617,0,5871,6296,1,0,0,0,5872,5873,5,138,0,0,5873,5874,5,168,0,0,5874,5875,3,470,235,0,5875,5876,5,302,0,0,5876,5877,5,94,0,0,5877,5878,3,1234,617,0,5878,6296,1,0,0,0,5879,5880,5,138,0,0,5880,5881,5,175,0,0,5881,5882,3,1210,605,0,5882,5883,5,302,0,0,5883,5884,5,94,0,0,5884,5885,3,1234,617,0,5885,6296,1,0,0,0,5886,5887,5,138,0,0,5887,5888,5,189,0,0,5888,5889,3,470,235,0,5889,5890,5,302,0,0,5890,5891,5,94,0,0,5891,5892,3,1234,617,0,5892,6296,1,0,0,0,5893,5894,5,138,0,0,5894,5895,5,189,0,0,5895,5896,3,470,235,0,5896,5897,5,302,0,0,5897,5898,5,45,0,0,5898,5899,3,1224,612,0,5899,5900,5,94,0,0,5900,5901,3,1234,617,0,5901,6296,1,0,0,0,5902,5903,5,138,0,0,5903,5904,5,63,0,0,5904,5905,5,174,0,0,5905,5906,5,374,0,0,5906,5907,3,1234,617,0,5907,5908,5,302,0,0,5908,5909,5,94,0,0,5909,5910,3,1234,617,0,5910,6296,1,0,0,0,5911,5912,5,138,0,0,5912,5913,5,211,0,0,5913,5914,3,560,280,0,5914,5915,5,302,0,0,5915,5916,5,94,0,0,5916,5917,3,1234,617,0,5917,6296,1,0,0,0,5918,5919,5,138,0,0,5919,5920,3,276,138,0,5920,5921,5,238,0,0,5921,5922,3,1234,617,0,5922,5923,5,302,0,0,5923,5924,5,94,0,0,5924,5925,3,1234,617,0,5925,6296,1,0,0,0,5926,5927,5,138,0,0,5927,5928,5,271,0,0,5928,5929,5,156,0,0,5929,5930,3,470,235,0,5930,5931,5,100,0,0,5931,5932,3,1234,617,0,5932,5933,5,302,0,0,5933,5934,5,94,0,0,5934,5935,3,1234,617,0,5935,6296,1,0,0,0,5936,5937,5,138,0,0,5937,5938,5,271,0,0,5938,5939,5,206,0,0,5939,5940,3,470,235,0,5940,5941,5,100,0,0,5941,5942,3,1234,617,0,5942,5943,5,302,0,0,5943,5944,5,94,0,0,5944,5945,3,1234,617,0,5945,6296,1,0,0,0,5946,5947,5,138,0,0,5947,5948,5,445,0,0,5948,5949,3,1234,617,0,5949,5950,5,80,0,0,5950,5951,3,1230,615,0,5951,5952,5,302,0,0,5952,5953,5,94,0,0,5953,5954,3,1234,617,0,5954,6296,1,0,0,0,5955,5956,5,138,0,0,5956,5957,5,445,0,0,5957,5958,5,220,0,0,5958,5959,5,389,0,0,5959,5960,3,1234,617,0,5960,5961,5,80,0,0,5961,5962,3,1230,615,0,5962,5963,5,302,0,0,5963,5964,5,94,0,0,5964,5965,3,1234,617,0,5965,6296,1,0,0,0,5966,5967,5,138,0,0,5967,5968,5,289,0,0,5968,5969,3,560,280,0,5969,5970,5,302,0,0,5970,5971,5,94,0,0,5971,5972,3,1234,617,0,5972,6296,1,0,0,0,5973,5974,5,138,0,0,5974,5975,5,452,0,0,5975,5976,3,1234,617,0,5976,5977,5,302,0,0,5977,5978,5,94,0,0,5978,5979,3,1234,617,0,5979,6296,1,0,0,0,5980,5981,5,138,0,0,5981,5982,5,442,0,0,5982,5983,3,560,280,0,5983,5984,5,302,0,0,5984,5985,5,94,0,0,5985,5986,3,1234,617,0,5986,6296,1,0,0,0,5987,5988,5,138,0,0,5988,5989,5,316,0,0,5989,5990,3,1214,607,0,5990,5991,5,302,0,0,5991,5992,5,94,0,0,5992,5993,3,1234,617,0,5993,6296,1,0,0,0,5994,5995,5,138,0,0,5995,5996,5,324,0,0,5996,5997,3,1234,617,0,5997,5998,5,302,0,0,5998,5999,5,94,0,0,5999,6e3,3,1234,617,0,6e3,6296,1,0,0,0,6001,6002,5,138,0,0,6002,6003,5,451,0,0,6003,6004,3,1234,617,0,6004,6005,5,302,0,0,6005,6006,5,94,0,0,6006,6007,3,1234,617,0,6007,6296,1,0,0,0,6008,6009,5,138,0,0,6009,6010,5,92,0,0,6010,6011,3,958,479,0,6011,6012,5,302,0,0,6012,6013,5,94,0,0,6013,6014,3,1234,617,0,6014,6296,1,0,0,0,6015,6016,5,138,0,0,6016,6017,5,92,0,0,6017,6018,5,220,0,0,6018,6019,5,389,0,0,6019,6020,3,958,479,0,6020,6021,5,302,0,0,6021,6022,5,94,0,0,6022,6023,3,1234,617,0,6023,6296,1,0,0,0,6024,6025,5,138,0,0,6025,6028,5,321,0,0,6026,6027,5,220,0,0,6027,6029,5,389,0,0,6028,6026,1,0,0,0,6028,6029,1,0,0,0,6029,6030,1,0,0,0,6030,6031,3,1226,613,0,6031,6032,5,302,0,0,6032,6033,5,94,0,0,6033,6034,3,1234,617,0,6034,6296,1,0,0,0,6035,6036,5,138,0,0,6036,6037,5,369,0,0,6037,6038,3,1230,615,0,6038,6039,5,302,0,0,6039,6040,5,94,0,0,6040,6041,3,1234,617,0,6041,6296,1,0,0,0,6042,6043,5,138,0,0,6043,6044,5,369,0,0,6044,6045,5,220,0,0,6045,6046,5,389,0,0,6046,6047,3,1230,615,0,6047,6048,5,302,0,0,6048,6049,5,94,0,0,6049,6050,3,1234,617,0,6050,6296,1,0,0,0,6051,6052,5,138,0,0,6052,6053,5,251,0,0,6053,6054,5,369,0,0,6054,6055,3,1230,615,0,6055,6056,5,302,0,0,6056,6057,5,94,0,0,6057,6058,3,1234,617,0,6058,6296,1,0,0,0,6059,6060,5,138,0,0,6060,6061,5,251,0,0,6061,6062,5,369,0,0,6062,6063,5,220,0,0,6063,6064,5,389,0,0,6064,6065,3,1230,615,0,6065,6066,5,302,0,0,6066,6067,5,94,0,0,6067,6068,3,1234,617,0,6068,6296,1,0,0,0,6069,6070,5,138,0,0,6070,6073,5,226,0,0,6071,6072,5,220,0,0,6072,6074,5,389,0,0,6073,6071,1,0,0,0,6073,6074,1,0,0,0,6074,6075,1,0,0,0,6075,6076,3,1218,609,0,6076,6077,5,302,0,0,6077,6078,5,94,0,0,6078,6079,3,1234,617,0,6079,6296,1,0,0,0,6080,6081,5,138,0,0,6081,6082,5,63,0,0,6082,6083,5,92,0,0,6083,6084,3,958,479,0,6084,6085,5,302,0,0,6085,6086,5,94,0,0,6086,6087,3,1234,617,0,6087,6296,1,0,0,0,6088,6089,5,138,0,0,6089,6090,5,63,0,0,6090,6091,5,92,0,0,6091,6092,5,220,0,0,6092,6093,5,389,0,0,6093,6094,3,958,479,0,6094,6095,5,302,0,0,6095,6096,5,94,0,0,6096,6097,3,1234,617,0,6097,6296,1,0,0,0,6098,6099,5,138,0,0,6099,6100,5,92,0,0,6100,6101,3,958,479,0,6101,6102,5,302,0,0,6102,6103,3,648,324,0,6103,6104,3,1234,617,0,6104,6105,5,94,0,0,6105,6106,3,1234,617,0,6106,6296,1,0,0,0,6107,6108,5,138,0,0,6108,6109,5,92,0,0,6109,6110,5,220,0,0,6110,6111,5,389,0,0,6111,6112,3,958,479,0,6112,6113,5,302,0,0,6113,6114,3,648,324,0,6114,6115,3,1234,617,0,6115,6116,5,94,0,0,6116,6117,3,1234,617,0,6117,6296,1,0,0,0,6118,6119,5,138,0,0,6119,6120,5,369,0,0,6120,6121,3,1230,615,0,6121,6122,5,302,0,0,6122,6123,3,648,324,0,6123,6124,3,1234,617,0,6124,6125,5,94,0,0,6125,6126,3,1234,617,0,6126,6296,1,0,0,0,6127,6128,5,138,0,0,6128,6129,5,369,0,0,6129,6130,5,220,0,0,6130,6131,5,389,0,0,6131,6132,3,1230,615,0,6132,6133,5,302,0,0,6133,6134,3,648,324,0,6134,6135,3,1234,617,0,6135,6136,5,94,0,0,6136,6137,3,1234,617,0,6137,6296,1,0,0,0,6138,6139,5,138,0,0,6139,6140,5,251,0,0,6140,6141,5,369,0,0,6141,6142,3,1230,615,0,6142,6143,5,302,0,0,6143,6144,3,648,324,0,6144,6145,3,1234,617,0,6145,6146,5,94,0,0,6146,6147,3,1234,617,0,6147,6296,1,0,0,0,6148,6149,5,138,0,0,6149,6150,5,251,0,0,6150,6151,5,369,0,0,6151,6152,5,220,0,0,6152,6153,5,389,0,0,6153,6154,3,1230,615,0,6154,6155,5,302,0,0,6155,6156,3,648,324,0,6156,6157,3,1234,617,0,6157,6158,5,94,0,0,6158,6159,3,1234,617,0,6159,6296,1,0,0,0,6160,6161,5,138,0,0,6161,6164,5,92,0,0,6162,6163,5,220,0,0,6163,6165,5,389,0,0,6164,6162,1,0,0,0,6164,6165,1,0,0,0,6165,6166,1,0,0,0,6166,6167,3,958,479,0,6167,6168,5,302,0,0,6168,6169,5,45,0,0,6169,6170,3,1224,612,0,6170,6171,5,94,0,0,6171,6172,3,1234,617,0,6172,6296,1,0,0,0,6173,6174,5,138,0,0,6174,6175,5,63,0,0,6175,6176,5,92,0,0,6176,6177,3,958,479,0,6177,6178,5,302,0,0,6178,6179,3,648,324,0,6179,6180,3,1234,617,0,6180,6181,5,94,0,0,6181,6182,3,1234,617,0,6182,6296,1,0,0,0,6183,6184,5,138,0,0,6184,6185,5,63,0,0,6185,6186,5,92,0,0,6186,6187,5,220,0,0,6187,6188,5,389,0,0,6188,6189,3,958,479,0,6189,6190,5,302,0,0,6190,6191,3,648,324,0,6191,6192,3,1234,617,0,6192,6193,5,94,0,0,6193,6194,3,1234,617,0,6194,6296,1,0,0,0,6195,6196,5,138,0,0,6196,6197,5,314,0,0,6197,6198,3,1234,617,0,6198,6199,5,80,0,0,6199,6200,3,1230,615,0,6200,6201,5,302,0,0,6201,6202,5,94,0,0,6202,6203,3,1234,617,0,6203,6296,1,0,0,0,6204,6205,5,138,0,0,6205,6206,5,350,0,0,6206,6207,3,1222,611,0,6207,6208,5,80,0,0,6208,6209,3,1230,615,0,6209,6210,5,302,0,0,6210,6211,5,94,0,0,6211,6212,3,1234,617,0,6212,6296,1,0,0,0,6213,6214,5,138,0,0,6214,6215,5,198,0,0,6215,6216,5,350,0,0,6216,6217,3,1234,617,0,6217,6218,5,302,0,0,6218,6219,5,94,0,0,6219,6220,3,1234,617,0,6220,6296,1,0,0,0,6221,6222,5,138,0,0,6222,6223,3,1506,753,0,6223,6224,3,1260,630,0,6224,6225,5,302,0,0,6225,6226,5,94,0,0,6226,6227,3,1260,630,0,6227,6296,1,0,0,0,6228,6229,5,138,0,0,6229,6230,5,344,0,0,6230,6231,3,1234,617,0,6231,6232,5,302,0,0,6232,6233,5,94,0,0,6233,6234,3,1234,617,0,6234,6296,1,0,0,0,6235,6236,5,138,0,0,6236,6237,5,335,0,0,6237,6238,3,470,235,0,6238,6239,5,302,0,0,6239,6240,5,94,0,0,6240,6241,3,1234,617,0,6241,6296,1,0,0,0,6242,6243,5,138,0,0,6243,6244,5,348,0,0,6244,6245,5,318,0,0,6245,6246,5,276,0,0,6246,6247,3,470,235,0,6247,6248,5,302,0,0,6248,6249,5,94,0,0,6249,6250,3,1234,617,0,6250,6296,1,0,0,0,6251,6252,5,138,0,0,6252,6253,5,348,0,0,6253,6254,5,318,0,0,6254,6255,5,185,0,0,6255,6256,3,470,235,0,6256,6257,5,302,0,0,6257,6258,5,94,0,0,6258,6259,3,1234,617,0,6259,6296,1,0,0,0,6260,6261,5,138,0,0,6261,6262,5,348,0,0,6262,6263,5,318,0,0,6263,6264,5,346,0,0,6264,6265,3,470,235,0,6265,6266,5,302,0,0,6266,6267,5,94,0,0,6267,6268,3,1234,617,0,6268,6296,1,0,0,0,6269,6270,5,138,0,0,6270,6271,5,348,0,0,6271,6272,5,318,0,0,6272,6273,5,163,0,0,6273,6274,3,470,235,0,6274,6275,5,302,0,0,6275,6276,5,94,0,0,6276,6277,3,1234,617,0,6277,6296,1,0,0,0,6278,6279,5,138,0,0,6279,6280,5,353,0,0,6280,6281,3,470,235,0,6281,6282,5,302,0,0,6282,6283,5,94,0,0,6283,6284,3,1234,617,0,6284,6296,1,0,0,0,6285,6286,5,138,0,0,6286,6287,5,353,0,0,6287,6288,3,470,235,0,6288,6289,5,302,0,0,6289,6290,5,143,0,0,6290,6291,3,1234,617,0,6291,6292,5,94,0,0,6292,6293,3,1234,617,0,6293,6294,3,100,50,0,6294,6296,1,0,0,0,6295,5858,1,0,0,0,6295,5865,1,0,0,0,6295,5872,1,0,0,0,6295,5879,1,0,0,0,6295,5886,1,0,0,0,6295,5893,1,0,0,0,6295,5902,1,0,0,0,6295,5911,1,0,0,0,6295,5918,1,0,0,0,6295,5926,1,0,0,0,6295,5936,1,0,0,0,6295,5946,1,0,0,0,6295,5955,1,0,0,0,6295,5966,1,0,0,0,6295,5973,1,0,0,0,6295,5980,1,0,0,0,6295,5987,1,0,0,0,6295,5994,1,0,0,0,6295,6001,1,0,0,0,6295,6008,1,0,0,0,6295,6015,1,0,0,0,6295,6024,1,0,0,0,6295,6035,1,0,0,0,6295,6042,1,0,0,0,6295,6051,1,0,0,0,6295,6059,1,0,0,0,6295,6069,1,0,0,0,6295,6080,1,0,0,0,6295,6088,1,0,0,0,6295,6098,1,0,0,0,6295,6107,1,0,0,0,6295,6118,1,0,0,0,6295,6127,1,0,0,0,6295,6138,1,0,0,0,6295,6148,1,0,0,0,6295,6160,1,0,0,0,6295,6173,1,0,0,0,6295,6183,1,0,0,0,6295,6195,1,0,0,0,6295,6204,1,0,0,0,6295,6213,1,0,0,0,6295,6221,1,0,0,0,6295,6228,1,0,0,0,6295,6235,1,0,0,0,6295,6242,1,0,0,0,6295,6251,1,0,0,0,6295,6260,1,0,0,0,6295,6269,1,0,0,0,6295,6278,1,0,0,0,6295,6285,1,0,0,0,6296,647,1,0,0,0,6297,6300,5,44,0,0,6298,6300,1,0,0,0,6299,6297,1,0,0,0,6299,6298,1,0,0,0,6300,649,1,0,0,0,6301,6302,5,326,0,0,6302,6305,5,174,0,0,6303,6305,1,0,0,0,6304,6301,1,0,0,0,6304,6303,1,0,0,0,6305,651,1,0,0,0,6306,6307,5,138,0,0,6307,6308,5,211,0,0,6308,6310,3,560,280,0,6309,6311,5,262,0,0,6310,6309,1,0,0,0,6310,6311,1,0,0,0,6311,6312,1,0,0,0,6312,6313,5,462,0,0,6313,6314,5,80,0,0,6314,6315,5,204,0,0,6315,6316,3,1234,617,0,6316,6376,1,0,0,0,6317,6318,5,138,0,0,6318,6319,5,289,0,0,6319,6321,3,560,280,0,6320,6322,5,262,0,0,6321,6320,1,0,0,0,6321,6322,1,0,0,0,6322,6323,1,0,0,0,6323,6324,5,462,0,0,6324,6325,5,80,0,0,6325,6326,5,204,0,0,6326,6327,3,1234,617,0,6327,6376,1,0,0,0,6328,6329,5,138,0,0,6329,6330,5,442,0,0,6330,6332,3,560,280,0,6331,6333,5,262,0,0,6332,6331,1,0,0,0,6332,6333,1,0,0,0,6333,6334,1,0,0,0,6334,6335,5,462,0,0,6335,6336,5,80,0,0,6336,6337,5,204,0,0,6337,6338,3,1234,617,0,6338,6376,1,0,0,0,6339,6340,5,138,0,0,6340,6341,5,350,0,0,6341,6342,3,1222,611,0,6342,6343,5,80,0,0,6343,6345,3,1230,615,0,6344,6346,5,262,0,0,6345,6344,1,0,0,0,6345,6346,1,0,0,0,6346,6347,1,0,0,0,6347,6348,5,462,0,0,6348,6349,5,80,0,0,6349,6350,5,204,0,0,6350,6351,3,1234,617,0,6351,6376,1,0,0,0,6352,6353,5,138,0,0,6353,6354,5,251,0,0,6354,6355,5,369,0,0,6355,6357,3,1230,615,0,6356,6358,5,262,0,0,6357,6356,1,0,0,0,6357,6358,1,0,0,0,6358,6359,1,0,0,0,6359,6360,5,462,0,0,6360,6361,5,80,0,0,6361,6362,5,204,0,0,6362,6363,3,1234,617,0,6363,6376,1,0,0,0,6364,6365,5,138,0,0,6365,6366,5,226,0,0,6366,6368,3,1218,609,0,6367,6369,5,262,0,0,6368,6367,1,0,0,0,6368,6369,1,0,0,0,6369,6370,1,0,0,0,6370,6371,5,462,0,0,6371,6372,5,80,0,0,6372,6373,5,204,0,0,6373,6374,3,1234,617,0,6374,6376,1,0,0,0,6375,6306,1,0,0,0,6375,6317,1,0,0,0,6375,6328,1,0,0,0,6375,6339,1,0,0,0,6375,6352,1,0,0,0,6375,6364,1,0,0,0,6376,653,1,0,0,0,6377,6378,5,138,0,0,6378,6379,5,136,0,0,6379,6380,3,580,290,0,6380,6381,5,326,0,0,6381,6382,5,316,0,0,6382,6383,3,1214,607,0,6383,6590,1,0,0,0,6384,6385,5,138,0,0,6385,6386,5,108,0,0,6386,6387,3,470,235,0,6387,6388,5,326,0,0,6388,6389,5,316,0,0,6389,6390,3,1214,607,0,6390,6590,1,0,0,0,6391,6392,5,138,0,0,6392,6393,5,168,0,0,6393,6394,3,470,235,0,6394,6395,5,326,0,0,6395,6396,5,316,0,0,6396,6397,3,1214,607,0,6397,6590,1,0,0,0,6398,6399,5,138,0,0,6399,6400,5,189,0,0,6400,6401,3,470,235,0,6401,6402,5,326,0,0,6402,6403,5,316,0,0,6403,6404,3,1214,607,0,6404,6590,1,0,0,0,6405,6406,5,138,0,0,6406,6407,5,204,0,0,6407,6408,3,1234,617,0,6408,6409,5,326,0,0,6409,6410,5,316,0,0,6410,6411,3,1214,607,0,6411,6590,1,0,0,0,6412,6413,5,138,0,0,6413,6414,5,211,0,0,6414,6415,3,560,280,0,6415,6416,5,326,0,0,6416,6417,5,316,0,0,6417,6418,3,1214,607,0,6418,6590,1,0,0,0,6419,6420,5,138,0,0,6420,6421,5,271,0,0,6421,6422,3,614,307,0,6422,6423,5,326,0,0,6423,6424,5,316,0,0,6424,6425,3,1214,607,0,6425,6590,1,0,0,0,6426,6427,5,138,0,0,6427,6428,5,271,0,0,6428,6429,5,156,0,0,6429,6430,3,470,235,0,6430,6431,5,100,0,0,6431,6432,3,1234,617,0,6432,6433,5,326,0,0,6433,6434,5,316,0,0,6434,6435,3,1214,607,0,6435,6590,1,0,0,0,6436,6437,5,138,0,0,6437,6438,5,271,0,0,6438,6439,5,206,0,0,6439,6440,3,470,235,0,6440,6441,5,100,0,0,6441,6442,3,1234,617,0,6442,6443,5,326,0,0,6443,6444,5,316,0,0,6444,6445,3,1214,607,0,6445,6590,1,0,0,0,6446,6447,5,138,0,0,6447,6448,5,289,0,0,6448,6449,3,560,280,0,6449,6450,5,326,0,0,6450,6451,5,316,0,0,6451,6452,3,1214,607,0,6452,6590,1,0,0,0,6453,6454,5,138,0,0,6454,6455,5,442,0,0,6455,6456,3,560,280,0,6456,6457,5,326,0,0,6457,6458,5,316,0,0,6458,6459,3,1214,607,0,6459,6590,1,0,0,0,6460,6461,5,138,0,0,6461,6462,5,92,0,0,6462,6463,3,958,479,0,6463,6464,5,326,0,0,6464,6465,5,316,0,0,6465,6466,3,1214,607,0,6466,6590,1,0,0,0,6467,6468,5,138,0,0,6468,6469,5,92,0,0,6469,6470,5,220,0,0,6470,6471,5,389,0,0,6471,6472,3,958,479,0,6472,6473,5,326,0,0,6473,6474,5,316,0,0,6474,6475,3,1214,607,0,6475,6590,1,0,0,0,6476,6477,5,138,0,0,6477,6478,5,335,0,0,6478,6479,3,470,235,0,6479,6480,5,326,0,0,6480,6481,5,316,0,0,6481,6482,3,1214,607,0,6482,6590,1,0,0,0,6483,6484,5,138,0,0,6484,6485,5,348,0,0,6485,6486,5,318,0,0,6486,6487,5,276,0,0,6487,6488,3,470,235,0,6488,6489,5,326,0,0,6489,6490,5,316,0,0,6490,6491,3,1214,607,0,6491,6590,1,0,0,0,6492,6493,5,138,0,0,6493,6494,5,348,0,0,6494,6495,5,318,0,0,6495,6496,5,185,0,0,6496,6497,3,470,235,0,6497,6498,5,326,0,0,6498,6499,5,316,0,0,6499,6500,3,1214,607,0,6500,6590,1,0,0,0,6501,6502,5,138,0,0,6502,6503,5,348,0,0,6503,6504,5,318,0,0,6504,6505,5,346,0,0,6505,6506,3,470,235,0,6506,6507,5,326,0,0,6507,6508,5,316,0,0,6508,6509,3,1214,607,0,6509,6590,1,0,0,0,6510,6511,5,138,0,0,6511,6512,5,348,0,0,6512,6513,5,318,0,0,6513,6514,5,163,0,0,6514,6515,3,470,235,0,6515,6516,5,326,0,0,6516,6517,5,316,0,0,6517,6518,3,1214,607,0,6518,6590,1,0,0,0,6519,6520,5,138,0,0,6520,6523,5,321,0,0,6521,6522,5,220,0,0,6522,6524,5,389,0,0,6523,6521,1,0,0,0,6523,6524,1,0,0,0,6524,6525,1,0,0,0,6525,6526,3,1226,613,0,6526,6527,5,326,0,0,6527,6528,5,316,0,0,6528,6529,3,1214,607,0,6529,6590,1,0,0,0,6530,6531,5,138,0,0,6531,6532,5,369,0,0,6532,6533,3,1230,615,0,6533,6534,5,326,0,0,6534,6535,5,316,0,0,6535,6536,3,1214,607,0,6536,6590,1,0,0,0,6537,6538,5,138,0,0,6538,6539,5,369,0,0,6539,6540,5,220,0,0,6540,6541,5,389,0,0,6541,6542,3,1230,615,0,6542,6543,5,326,0,0,6543,6544,5,316,0,0,6544,6545,3,1214,607,0,6545,6590,1,0,0,0,6546,6547,5,138,0,0,6547,6548,5,251,0,0,6548,6549,5,369,0,0,6549,6550,3,1230,615,0,6550,6551,5,326,0,0,6551,6552,5,316,0,0,6552,6553,3,1214,607,0,6553,6590,1,0,0,0,6554,6555,5,138,0,0,6555,6556,5,251,0,0,6556,6557,5,369,0,0,6557,6558,5,220,0,0,6558,6559,5,389,0,0,6559,6560,3,1230,615,0,6560,6561,5,326,0,0,6561,6562,5,316,0,0,6562,6563,3,1214,607,0,6563,6590,1,0,0,0,6564,6565,5,138,0,0,6565,6566,5,63,0,0,6566,6567,5,92,0,0,6567,6568,3,958,479,0,6568,6569,5,326,0,0,6569,6570,5,316,0,0,6570,6571,3,1214,607,0,6571,6590,1,0,0,0,6572,6573,5,138,0,0,6573,6574,5,63,0,0,6574,6575,5,92,0,0,6575,6576,5,220,0,0,6576,6577,5,389,0,0,6577,6578,3,958,479,0,6578,6579,5,326,0,0,6579,6580,5,316,0,0,6580,6581,3,1214,607,0,6581,6590,1,0,0,0,6582,6583,5,138,0,0,6583,6584,5,353,0,0,6584,6585,3,470,235,0,6585,6586,5,326,0,0,6586,6587,5,316,0,0,6587,6588,3,1214,607,0,6588,6590,1,0,0,0,6589,6377,1,0,0,0,6589,6384,1,0,0,0,6589,6391,1,0,0,0,6589,6398,1,0,0,0,6589,6405,1,0,0,0,6589,6412,1,0,0,0,6589,6419,1,0,0,0,6589,6426,1,0,0,0,6589,6436,1,0,0,0,6589,6446,1,0,0,0,6589,6453,1,0,0,0,6589,6460,1,0,0,0,6589,6467,1,0,0,0,6589,6476,1,0,0,0,6589,6483,1,0,0,0,6589,6492,1,0,0,0,6589,6501,1,0,0,0,6589,6510,1,0,0,0,6589,6519,1,0,0,0,6589,6530,1,0,0,0,6589,6537,1,0,0,0,6589,6546,1,0,0,0,6589,6554,1,0,0,0,6589,6564,1,0,0,0,6589,6572,1,0,0,0,6589,6582,1,0,0,0,6590,655,1,0,0,0,6591,6592,5,138,0,0,6592,6593,5,271,0,0,6593,6594,3,614,307,0,6594,6595,5,326,0,0,6595,6596,5,2,0,0,6596,6597,3,658,329,0,6597,6598,5,3,0,0,6598,657,1,0,0,0,6599,6604,3,660,330,0,6600,6601,5,6,0,0,6601,6603,3,660,330,0,6602,6600,1,0,0,0,6603,6606,1,0,0,0,6604,6602,1,0,0,0,6604,6605,1,0,0,0,6605,659,1,0,0,0,6606,6604,1,0,0,0,6607,6608,3,1272,636,0,6608,6609,5,10,0,0,6609,6610,5,400,0,0,6610,6616,1,0,0,0,6611,6612,3,1272,636,0,6612,6613,5,10,0,0,6613,6614,3,662,331,0,6614,6616,1,0,0,0,6615,6607,1,0,0,0,6615,6611,1,0,0,0,6616,661,1,0,0,0,6617,6623,3,574,287,0,6618,6623,3,1284,642,0,6619,6623,3,1152,576,0,6620,6623,3,264,132,0,6621,6623,3,1252,626,0,6622,6617,1,0,0,0,6622,6618,1,0,0,0,6622,6619,1,0,0,0,6622,6620,1,0,0,0,6622,6621,1,0,0,0,6623,663,1,0,0,0,6624,6625,5,138,0,0,6625,6626,5,353,0,0,6626,6627,3,470,235,0,6627,6628,5,326,0,0,6628,6629,5,2,0,0,6629,6630,3,658,329,0,6630,6631,5,3,0,0,6631,665,1,0,0,0,6632,6633,5,138,0,0,6633,6634,5,136,0,0,6634,6635,3,580,290,0,6635,6636,5,275,0,0,6636,6637,5,94,0,0,6637,6638,3,1260,630,0,6638,6816,1,0,0,0,6639,6640,5,138,0,0,6640,6641,5,108,0,0,6641,6642,3,470,235,0,6642,6643,5,275,0,0,6643,6644,5,94,0,0,6644,6645,3,1260,630,0,6645,6816,1,0,0,0,6646,6647,5,138,0,0,6647,6648,5,168,0,0,6648,6649,3,470,235,0,6649,6650,5,275,0,0,6650,6651,5,94,0,0,6651,6652,3,1260,630,0,6652,6816,1,0,0,0,6653,6654,5,138,0,0,6654,6655,5,175,0,0,6655,6656,3,1210,605,0,6656,6657,5,275,0,0,6657,6658,5,94,0,0,6658,6659,3,1260,630,0,6659,6816,1,0,0,0,6660,6661,5,138,0,0,6661,6662,5,189,0,0,6662,6663,3,470,235,0,6663,6664,5,275,0,0,6664,6665,5,94,0,0,6665,6666,3,1260,630,0,6666,6816,1,0,0,0,6667,6668,5,138,0,0,6668,6669,5,211,0,0,6669,6670,3,560,280,0,6670,6671,5,275,0,0,6671,6672,5,94,0,0,6672,6673,3,1260,630,0,6673,6816,1,0,0,0,6674,6675,5,138,0,0,6675,6676,3,276,138,0,6676,6677,5,238,0,0,6677,6678,3,1234,617,0,6678,6679,5,275,0,0,6679,6680,5,94,0,0,6680,6681,3,1260,630,0,6681,6816,1,0,0,0,6682,6683,5,138,0,0,6683,6684,5,239,0,0,6684,6685,5,267,0,0,6685,6686,3,264,132,0,6686,6687,5,275,0,0,6687,6688,5,94,0,0,6688,6689,3,1260,630,0,6689,6816,1,0,0,0,6690,6691,5,138,0,0,6691,6692,5,271,0,0,6692,6693,3,614,307,0,6693,6694,5,275,0,0,6694,6695,5,94,0,0,6695,6696,3,1260,630,0,6696,6816,1,0,0,0,6697,6698,5,138,0,0,6698,6699,5,271,0,0,6699,6700,5,156,0,0,6700,6701,3,470,235,0,6701,6702,5,100,0,0,6702,6703,3,1234,617,0,6703,6704,5,275,0,0,6704,6705,5,94,0,0,6705,6706,3,1260,630,0,6706,6816,1,0,0,0,6707,6708,5,138,0,0,6708,6709,5,271,0,0,6709,6710,5,206,0,0,6710,6711,3,470,235,0,6711,6712,5,100,0,0,6712,6713,3,1234,617,0,6713,6714,5,275,0,0,6714,6715,5,94,0,0,6715,6716,3,1260,630,0,6716,6816,1,0,0,0,6717,6718,5,138,0,0,6718,6719,5,289,0,0,6719,6720,3,560,280,0,6720,6721,5,275,0,0,6721,6722,5,94,0,0,6722,6723,3,1260,630,0,6723,6816,1,0,0,0,6724,6725,5,138,0,0,6725,6726,5,442,0,0,6726,6727,3,560,280,0,6727,6728,5,275,0,0,6728,6729,5,94,0,0,6729,6730,3,1260,630,0,6730,6816,1,0,0,0,6731,6732,5,138,0,0,6732,6733,5,316,0,0,6733,6734,3,1214,607,0,6734,6735,5,275,0,0,6735,6736,5,94,0,0,6736,6737,3,1260,630,0,6737,6816,1,0,0,0,6738,6739,5,138,0,0,6739,6740,5,353,0,0,6740,6741,3,470,235,0,6741,6742,5,275,0,0,6742,6743,5,94,0,0,6743,6744,3,1260,630,0,6744,6816,1,0,0,0,6745,6746,5,138,0,0,6746,6747,5,344,0,0,6747,6748,3,1234,617,0,6748,6749,5,275,0,0,6749,6750,5,94,0,0,6750,6751,3,1260,630,0,6751,6816,1,0,0,0,6752,6753,5,138,0,0,6753,6754,5,335,0,0,6754,6755,3,470,235,0,6755,6756,5,275,0,0,6756,6757,5,94,0,0,6757,6758,3,1260,630,0,6758,6816,1,0,0,0,6759,6760,5,138,0,0,6760,6761,5,348,0,0,6761,6762,5,318,0,0,6762,6763,5,185,0,0,6763,6764,3,470,235,0,6764,6765,5,275,0,0,6765,6766,5,94,0,0,6766,6767,3,1260,630,0,6767,6816,1,0,0,0,6768,6769,5,138,0,0,6769,6770,5,348,0,0,6770,6771,5,318,0,0,6771,6772,5,163,0,0,6772,6773,3,470,235,0,6773,6774,5,275,0,0,6774,6775,5,94,0,0,6775,6776,3,1260,630,0,6776,6816,1,0,0,0,6777,6778,5,138,0,0,6778,6779,5,63,0,0,6779,6780,5,174,0,0,6780,6781,5,374,0,0,6781,6782,3,1234,617,0,6782,6783,5,275,0,0,6783,6784,5,94,0,0,6784,6785,3,1260,630,0,6785,6816,1,0,0,0,6786,6787,5,138,0,0,6787,6788,5,324,0,0,6788,6789,3,1234,617,0,6789,6790,5,275,0,0,6790,6791,5,94,0,0,6791,6792,3,1260,630,0,6792,6816,1,0,0,0,6793,6794,5,138,0,0,6794,6795,5,198,0,0,6795,6796,5,350,0,0,6796,6797,3,1234,617,0,6797,6798,5,275,0,0,6798,6799,5,94,0,0,6799,6800,3,1260,630,0,6800,6816,1,0,0,0,6801,6802,5,138,0,0,6802,6803,5,452,0,0,6803,6804,3,1234,617,0,6804,6805,5,275,0,0,6805,6806,5,94,0,0,6806,6807,3,1260,630,0,6807,6816,1,0,0,0,6808,6809,5,138,0,0,6809,6810,5,451,0,0,6810,6811,3,1234,617,0,6811,6812,5,275,0,0,6812,6813,5,94,0,0,6813,6814,3,1260,630,0,6814,6816,1,0,0,0,6815,6632,1,0,0,0,6815,6639,1,0,0,0,6815,6646,1,0,0,0,6815,6653,1,0,0,0,6815,6660,1,0,0,0,6815,6667,1,0,0,0,6815,6674,1,0,0,0,6815,6682,1,0,0,0,6815,6690,1,0,0,0,6815,6697,1,0,0,0,6815,6707,1,0,0,0,6815,6717,1,0,0,0,6815,6724,1,0,0,0,6815,6731,1,0,0,0,6815,6738,1,0,0,0,6815,6745,1,0,0,0,6815,6752,1,0,0,0,6815,6759,1,0,0,0,6815,6768,1,0,0,0,6815,6777,1,0,0,0,6815,6786,1,0,0,0,6815,6793,1,0,0,0,6815,6801,1,0,0,0,6815,6808,1,0,0,0,6816,667,1,0,0,0,6817,6818,5,46,0,0,6818,6819,5,452,0,0,6819,6820,3,1234,617,0,6820,6821,3,670,335,0,6821,6822,3,594,297,0,6822,669,1,0,0,0,6823,6826,3,672,336,0,6824,6826,1,0,0,0,6825,6823,1,0,0,0,6825,6824,1,0,0,0,6826,671,1,0,0,0,6827,6828,5,62,0,0,6828,6829,5,92,0,0,6829,6834,3,960,480,0,6830,6831,5,62,0,0,6831,6832,5,30,0,0,6832,6834,5,343,0,0,6833,6827,1,0,0,0,6833,6830,1,0,0,0,6834,673,1,0,0,0,6835,6836,5,138,0,0,6836,6837,5,452,0,0,6837,6838,3,1234,617,0,6838,6839,5,326,0,0,6839,6840,3,416,208,0,6840,6863,1,0,0,0,6841,6842,5,138,0,0,6842,6843,5,452,0,0,6843,6844,3,1234,617,0,6844,6845,5,133,0,0,6845,6846,5,92,0,0,6846,6847,3,960,480,0,6847,6863,1,0,0,0,6848,6849,5,138,0,0,6849,6850,5,452,0,0,6850,6851,3,1234,617,0,6851,6852,5,326,0,0,6852,6853,5,92,0,0,6853,6854,3,960,480,0,6854,6863,1,0,0,0,6855,6856,5,138,0,0,6856,6857,5,452,0,0,6857,6858,3,1234,617,0,6858,6859,5,191,0,0,6859,6860,5,92,0,0,6860,6861,3,960,480,0,6861,6863,1,0,0,0,6862,6835,1,0,0,0,6862,6841,1,0,0,0,6862,6848,1,0,0,0,6862,6855,1,0,0,0,6863,675,1,0,0,0,6864,6865,5,46,0,0,6865,6866,5,451,0,0,6866,6867,3,1234,617,0,6867,6868,5,164,0,0,6868,6869,3,1252,626,0,6869,6870,5,452,0,0,6870,6871,3,678,339,0,6871,6872,3,594,297,0,6872,677,1,0,0,0,6873,6878,3,680,340,0,6874,6875,5,6,0,0,6875,6877,3,680,340,0,6876,6874,1,0,0,0,6877,6880,1,0,0,0,6878,6876,1,0,0,0,6878,6879,1,0,0,0,6879,679,1,0,0,0,6880,6878,1,0,0,0,6881,6882,3,1272,636,0,6882,681,1,0,0,0,6883,6884,5,138,0,0,6884,6885,5,451,0,0,6885,6886,3,1234,617,0,6886,6887,5,326,0,0,6887,6888,3,416,208,0,6888,6921,1,0,0,0,6889,6890,5,138,0,0,6890,6891,5,451,0,0,6891,6892,3,1234,617,0,6892,6893,5,164,0,0,6893,6894,3,1252,626,0,6894,6921,1,0,0,0,6895,6896,5,138,0,0,6896,6897,5,451,0,0,6897,6898,3,1234,617,0,6898,6899,5,298,0,0,6899,6900,5,452,0,0,6900,6901,3,594,297,0,6901,6921,1,0,0,0,6902,6903,5,138,0,0,6903,6904,5,451,0,0,6904,6905,3,1234,617,0,6905,6906,5,326,0,0,6906,6907,5,452,0,0,6907,6908,3,678,339,0,6908,6909,3,594,297,0,6909,6921,1,0,0,0,6910,6911,5,138,0,0,6911,6912,5,451,0,0,6912,6913,3,1234,617,0,6913,6914,5,193,0,0,6914,6921,1,0,0,0,6915,6916,5,138,0,0,6916,6917,5,451,0,0,6917,6918,3,1234,617,0,6918,6919,5,186,0,0,6919,6921,1,0,0,0,6920,6883,1,0,0,0,6920,6889,1,0,0,0,6920,6895,1,0,0,0,6920,6902,1,0,0,0,6920,6910,1,0,0,0,6920,6915,1,0,0,0,6921,683,1,0,0,0,6922,6923,5,191,0,0,6923,6924,5,451,0,0,6924,6925,3,1234,617,0,6925,6926,3,100,50,0,6926,6935,1,0,0,0,6927,6928,5,191,0,0,6928,6929,5,451,0,0,6929,6930,5,220,0,0,6930,6931,5,389,0,0,6931,6932,3,1234,617,0,6932,6933,3,100,50,0,6933,6935,1,0,0,0,6934,6922,1,0,0,0,6934,6927,1,0,0,0,6935,685,1,0,0,0,6936,6937,5,46,0,0,6937,6938,3,554,277,0,6938,6939,5,314,0,0,6939,6940,3,1234,617,0,6940,6941,5,36,0,0,6941,6942,5,80,0,0,6942,6943,3,696,348,0,6943,6944,5,94,0,0,6944,6945,3,1230,615,0,6945,6946,3,974,487,0,6946,6947,5,57,0,0,6947,6948,3,698,349,0,6948,6949,3,688,344,0,6949,687,1,0,0,0,6950,6957,5,263,0,0,6951,6957,3,692,346,0,6952,6953,5,2,0,0,6953,6954,3,690,345,0,6954,6955,5,3,0,0,6955,6957,1,0,0,0,6956,6950,1,0,0,0,6956,6951,1,0,0,0,6956,6952,1,0,0,0,6957,689,1,0,0,0,6958,6963,3,694,347,0,6959,6960,5,7,0,0,6960,6962,3,694,347,0,6961,6959,1,0,0,0,6962,6965,1,0,0,0,6963,6961,1,0,0,0,6963,6964,1,0,0,0,6964,691,1,0,0,0,6965,6963,1,0,0,0,6966,6972,3,858,429,0,6967,6972,3,804,402,0,6968,6972,3,844,422,0,6969,6972,3,830,415,0,6970,6972,3,700,350,0,6971,6966,1,0,0,0,6971,6967,1,0,0,0,6971,6968,1,0,0,0,6971,6969,1,0,0,0,6971,6970,1,0,0,0,6972,693,1,0,0,0,6973,6976,3,692,346,0,6974,6976,1,0,0,0,6975,6973,1,0,0,0,6975,6974,1,0,0,0,6976,695,1,0,0,0,6977,6978,7,30,0,0,6978,697,1,0,0,0,6979,6983,5,233,0,0,6980,6983,5,137,0,0,6981,6983,1,0,0,0,6982,6979,1,0,0,0,6982,6980,1,0,0,0,6982,6981,1,0,0,0,6983,699,1,0,0,0,6984,6985,5,264,0,0,6985,6986,3,1264,632,0,6986,6987,3,702,351,0,6987,701,1,0,0,0,6988,6989,5,6,0,0,6989,6992,3,1252,626,0,6990,6992,1,0,0,0,6991,6988,1,0,0,0,6991,6990,1,0,0,0,6992,703,1,0,0,0,6993,6994,5,243,0,0,6994,6995,3,1264,632,0,6995,705,1,0,0,0,6996,6997,5,359,0,0,6997,7001,3,1264,632,0,6998,6999,5,359,0,0,6999,7001,5,9,0,0,7e3,6996,1,0,0,0,7e3,6998,1,0,0,0,7001,707,1,0,0,0,7002,7003,5,129,0,0,7003,7004,3,710,355,0,7004,7005,3,716,358,0,7005,7056,1,0,0,0,7006,7007,5,146,0,0,7007,7009,3,710,355,0,7008,7010,3,714,357,0,7009,7008,1,0,0,0,7009,7010,1,0,0,0,7010,7056,1,0,0,0,7011,7012,5,333,0,0,7012,7014,5,349,0,0,7013,7015,3,714,357,0,7014,7013,1,0,0,0,7014,7015,1,0,0,0,7015,7056,1,0,0,0,7016,7017,5,161,0,0,7017,7018,3,710,355,0,7018,7019,3,716,358,0,7019,7056,1,0,0,0,7020,7021,5,454,0,0,7021,7022,3,710,355,0,7022,7023,3,716,358,0,7023,7056,1,0,0,0,7024,7025,5,312,0,0,7025,7026,3,710,355,0,7026,7027,3,716,358,0,7027,7056,1,0,0,0,7028,7029,5,315,0,0,7029,7056,3,1264,632,0,7030,7031,5,301,0,0,7031,7032,5,315,0,0,7032,7056,3,1264,632,0,7033,7034,5,301,0,0,7034,7056,3,1264,632,0,7035,7036,5,312,0,0,7036,7037,3,710,355,0,7037,7038,5,94,0,0,7038,7039,5,315,0,0,7039,7040,3,1264,632,0,7040,7056,1,0,0,0,7041,7042,5,312,0,0,7042,7043,3,710,355,0,7043,7044,5,94,0,0,7044,7045,3,1264,632,0,7045,7056,1,0,0,0,7046,7047,5,283,0,0,7047,7048,5,349,0,0,7048,7056,3,1252,626,0,7049,7050,5,161,0,0,7050,7051,5,284,0,0,7051,7056,3,1252,626,0,7052,7053,5,312,0,0,7053,7054,5,284,0,0,7054,7056,3,1252,626,0,7055,7002,1,0,0,0,7055,7006,1,0,0,0,7055,7011,1,0,0,0,7055,7016,1,0,0,0,7055,7020,1,0,0,0,7055,7024,1,0,0,0,7055,7028,1,0,0,0,7055,7030,1,0,0,0,7055,7033,1,0,0,0,7055,7035,1,0,0,0,7055,7041,1,0,0,0,7055,7046,1,0,0,0,7055,7049,1,0,0,0,7055,7052,1,0,0,0,7056,709,1,0,0,0,7057,7061,5,373,0,0,7058,7061,5,349,0,0,7059,7061,1,0,0,0,7060,7057,1,0,0,0,7060,7058,1,0,0,0,7060,7059,1,0,0,0,7061,711,1,0,0,0,7062,7063,5,235,0,0,7063,7064,5,242,0,0,7064,7073,3,56,28,0,7065,7066,5,293,0,0,7066,7073,5,81,0,0,7067,7068,5,293,0,0,7068,7073,5,375,0,0,7069,7073,5,54,0,0,7070,7071,5,77,0,0,7071,7073,5,54,0,0,7072,7062,1,0,0,0,7072,7065,1,0,0,0,7072,7067,1,0,0,0,7072,7069,1,0,0,0,7072,7070,1,0,0,0,7073,713,1,0,0,0,7074,7081,3,712,356,0,7075,7077,5,6,0,0,7076,7075,1,0,0,0,7076,7077,1,0,0,0,7077,7078,1,0,0,0,7078,7080,3,712,356,0,7079,7076,1,0,0,0,7080,7083,1,0,0,0,7081,7079,1,0,0,0,7081,7082,1,0,0,0,7082,715,1,0,0,0,7083,7081,1,0,0,0,7084,7086,5,33,0,0,7085,7087,5,262,0,0,7086,7085,1,0,0,0,7086,7087,1,0,0,0,7087,7088,1,0,0,0,7088,7091,5,153,0,0,7089,7091,1,0,0,0,7090,7084,1,0,0,0,7090,7089,1,0,0,0,7091,717,1,0,0,0,7092,7095,5,46,0,0,7093,7094,5,82,0,0,7094,7096,5,304,0,0,7095,7093,1,0,0,0,7095,7096,1,0,0,0,7096,7097,1,0,0,0,7097,7111,3,154,77,0,7098,7099,5,369,0,0,7099,7100,3,1230,615,0,7100,7101,3,192,96,0,7101,7102,3,110,55,0,7102,7112,1,0,0,0,7103,7104,5,296,0,0,7104,7105,5,369,0,0,7105,7106,3,1230,615,0,7106,7107,5,2,0,0,7107,7108,3,194,97,0,7108,7109,5,3,0,0,7109,7110,3,110,55,0,7110,7112,1,0,0,0,7111,7098,1,0,0,0,7111,7103,1,0,0,0,7112,7113,1,0,0,0,7113,7114,5,36,0,0,7114,7115,3,858,429,0,7115,7116,3,720,360,0,7116,719,1,0,0,0,7117,7119,5,105,0,0,7118,7120,7,31,0,0,7119,7118,1,0,0,0,7119,7120,1,0,0,0,7120,7121,1,0,0,0,7121,7122,5,42,0,0,7122,7125,5,272,0,0,7123,7125,1,0,0,0,7124,7117,1,0,0,0,7124,7123,1,0,0,0,7125,721,1,0,0,0,7126,7127,5,244,0,0,7127,7128,3,1238,619,0,7128,723,1,0,0,0,7129,7130,5,46,0,0,7130,7131,5,175,0,0,7131,7132,3,1234,617,0,7132,7133,3,12,6,0,7133,7134,3,726,363,0,7134,725,1,0,0,0,7135,7137,3,728,364,0,7136,7135,1,0,0,0,7137,7138,1,0,0,0,7138,7136,1,0,0,0,7138,7139,1,0,0,0,7139,7142,1,0,0,0,7140,7142,1,0,0,0,7141,7136,1,0,0,0,7141,7140,1,0,0,0,7142,727,1,0,0,0,7143,7145,3,730,365,0,7144,7146,5,10,0,0,7145,7144,1,0,0,0,7145,7146,1,0,0,0,7146,7150,1,0,0,0,7147,7151,3,1258,629,0,7148,7151,3,58,29,0,7149,7151,5,53,0,0,7150,7147,1,0,0,0,7150,7148,1,0,0,0,7150,7149,1,0,0,0,7151,729,1,0,0,0,7152,7161,3,1274,637,0,7153,7154,5,164,0,0,7154,7161,5,74,0,0,7155,7161,5,194,0,0,7156,7161,5,246,0,0,7157,7161,5,275,0,0,7158,7161,5,344,0,0,7159,7161,5,346,0,0,7160,7152,1,0,0,0,7160,7153,1,0,0,0,7160,7155,1,0,0,0,7160,7156,1,0,0,0,7160,7157,1,0,0,0,7160,7158,1,0,0,0,7160,7159,1,0,0,0,7161,731,1,0,0,0,7162,7163,5,138,0,0,7163,7164,5,175,0,0,7164,7171,3,1210,605,0,7165,7166,5,105,0,0,7166,7172,3,726,363,0,7167,7172,3,726,363,0,7168,7169,5,326,0,0,7169,7170,5,344,0,0,7170,7172,3,1234,617,0,7171,7165,1,0,0,0,7171,7167,1,0,0,0,7171,7168,1,0,0,0,7172,733,1,0,0,0,7173,7174,5,138,0,0,7174,7175,5,175,0,0,7175,7176,3,1210,605,0,7176,7177,3,72,36,0,7177,735,1,0,0,0,7178,7179,5,191,0,0,7179,7182,5,175,0,0,7180,7181,5,220,0,0,7181,7183,5,389,0,0,7182,7180,1,0,0,0,7182,7183,1,0,0,0,7183,7184,1,0,0,0,7184,7197,3,1210,605,0,7185,7186,3,12,6,0,7186,7187,5,2,0,0,7187,7192,5,209,0,0,7188,7189,5,6,0,0,7189,7191,5,209,0,0,7190,7188,1,0,0,0,7191,7194,1,0,0,0,7192,7190,1,0,0,0,7192,7193,1,0,0,0,7193,7195,1,0,0,0,7194,7192,1,0,0,0,7195,7196,5,3,0,0,7196,7198,1,0,0,0,7197,7185,1,0,0,0,7197,7198,1,0,0,0,7198,737,1,0,0,0,7199,7200,5,138,0,0,7200,7201,5,108,0,0,7201,7202,3,470,235,0,7202,7203,5,298,0,0,7203,7204,5,368,0,0,7204,739,1,0,0,0,7205,7206,5,138,0,0,7206,7207,5,342,0,0,7207,7208,7,32,0,0,7208,7209,3,46,23,0,7209,741,1,0,0,0,7210,7211,5,46,0,0,7211,7212,5,189,0,0,7212,7213,3,470,235,0,7213,7214,3,748,374,0,7214,7215,3,996,498,0,7215,7216,3,172,86,0,7216,743,1,0,0,0,7217,7218,5,138,0,0,7218,7219,5,189,0,0,7219,7220,3,470,235,0,7220,7221,3,746,373,0,7221,745,1,0,0,0,7222,7244,3,98,49,0,7223,7224,5,191,0,0,7224,7225,5,77,0,0,7225,7244,5,78,0,0,7226,7227,5,326,0,0,7227,7228,5,77,0,0,7228,7244,5,78,0,0,7229,7230,5,133,0,0,7230,7244,3,188,94,0,7231,7232,5,191,0,0,7232,7235,5,45,0,0,7233,7234,5,220,0,0,7234,7236,5,389,0,0,7235,7233,1,0,0,0,7235,7236,1,0,0,0,7236,7237,1,0,0,0,7237,7238,3,1224,612,0,7238,7239,3,100,50,0,7239,7244,1,0,0,0,7240,7241,5,365,0,0,7241,7242,5,45,0,0,7242,7244,3,1224,612,0,7243,7222,1,0,0,0,7243,7223,1,0,0,0,7243,7226,1,0,0,0,7243,7229,1,0,0,0,7243,7231,1,0,0,0,7243,7240,1,0,0,0,7244,747,1,0,0,0,7245,7248,5,36,0,0,7246,7248,1,0,0,0,7247,7245,1,0,0,0,7247,7246,1,0,0,0,7248,749,1,0,0,0,7249,7250,5,138,0,0,7250,7251,5,348,0,0,7251,7252,5,318,0,0,7252,7253,5,185,0,0,7253,7254,3,470,235,0,7254,7255,3,416,208,0,7255,751,1,0,0,0,7256,7257,5,138,0,0,7257,7258,5,348,0,0,7258,7259,5,318,0,0,7259,7260,5,163,0,0,7260,7261,3,470,235,0,7261,7262,5,133,0,0,7262,7263,5,248,0,0,7263,7264,5,62,0,0,7264,7265,3,1232,616,0,7265,7266,5,105,0,0,7266,7267,3,468,234,0,7267,7329,1,0,0,0,7268,7269,5,138,0,0,7269,7270,5,348,0,0,7270,7271,5,318,0,0,7271,7272,5,163,0,0,7272,7273,3,470,235,0,7273,7274,5,138,0,0,7274,7275,5,248,0,0,7275,7276,5,62,0,0,7276,7277,3,1232,616,0,7277,7278,5,105,0,0,7278,7279,3,468,234,0,7279,7329,1,0,0,0,7280,7281,5,138,0,0,7281,7282,5,348,0,0,7282,7283,5,318,0,0,7283,7284,5,163,0,0,7284,7285,3,470,235,0,7285,7286,5,138,0,0,7286,7287,5,248,0,0,7287,7288,5,304,0,0,7288,7289,3,470,235,0,7289,7290,5,105,0,0,7290,7291,3,470,235,0,7291,7329,1,0,0,0,7292,7293,5,138,0,0,7293,7294,5,348,0,0,7294,7295,5,318,0,0,7295,7296,5,163,0,0,7296,7297,3,470,235,0,7297,7298,5,138,0,0,7298,7299,5,248,0,0,7299,7300,5,62,0,0,7300,7301,3,1232,616,0,7301,7302,5,304,0,0,7302,7303,3,470,235,0,7303,7304,5,105,0,0,7304,7305,3,470,235,0,7305,7329,1,0,0,0,7306,7307,5,138,0,0,7307,7308,5,348,0,0,7308,7309,5,318,0,0,7309,7310,5,163,0,0,7310,7311,3,470,235,0,7311,7312,5,191,0,0,7312,7313,5,248,0,0,7313,7314,5,62,0,0,7314,7315,3,1232,616,0,7315,7329,1,0,0,0,7316,7317,5,138,0,0,7317,7318,5,348,0,0,7318,7319,5,318,0,0,7319,7320,5,163,0,0,7320,7321,3,470,235,0,7321,7322,5,191,0,0,7322,7323,5,248,0,0,7323,7324,5,220,0,0,7324,7325,5,389,0,0,7325,7326,5,62,0,0,7326,7327,3,1232,616,0,7327,7329,1,0,0,0,7328,7256,1,0,0,0,7328,7268,1,0,0,0,7328,7280,1,0,0,0,7328,7292,1,0,0,0,7328,7306,1,0,0,0,7328,7316,1,0,0,0,7329,753,1,0,0,0,7330,7332,5,46,0,0,7331,7333,5,53,0,0,7332,7331,1,0,0,0,7332,7333,1,0,0,0,7333,7334,1,0,0,0,7334,7335,5,168,0,0,7335,7336,3,470,235,0,7336,7337,5,62,0,0,7337,7338,3,1252,626,0,7338,7339,5,94,0,0,7339,7340,3,1252,626,0,7340,7341,5,64,0,0,7341,7342,3,470,235,0,7342,755,1,0,0,0,7343,7344,5,158,0,0,7344,7345,3,774,387,0,7345,7346,3,1230,615,0,7346,7347,3,758,379,0,7347,7357,1,0,0,0,7348,7349,5,158,0,0,7349,7357,3,774,387,0,7350,7351,5,158,0,0,7351,7352,3,774,387,0,7352,7353,3,1234,617,0,7353,7354,5,80,0,0,7354,7355,3,1230,615,0,7355,7357,1,0,0,0,7356,7343,1,0,0,0,7356,7348,1,0,0,0,7356,7350,1,0,0,0,7357,757,1,0,0,0,7358,7359,5,100,0,0,7359,7362,3,1234,617,0,7360,7362,1,0,0,0,7361,7358,1,0,0,0,7361,7360,1,0,0,0,7362,759,1,0,0,0,7363,7365,5,363,0,0,7364,7366,5,113,0,0,7365,7364,1,0,0,0,7365,7366,1,0,0,0,7366,7368,1,0,0,0,7367,7369,5,112,0,0,7368,7367,1,0,0,0,7368,7369,1,0,0,0,7369,7370,1,0,0,0,7370,7372,3,774,387,0,7371,7373,3,766,383,0,7372,7371,1,0,0,0,7372,7373,1,0,0,0,7373,7374,1,0,0,0,7374,7375,3,780,390,0,7375,7383,1,0,0,0,7376,7377,5,363,0,0,7377,7378,5,2,0,0,7378,7379,3,764,382,0,7379,7380,5,3,0,0,7380,7381,3,780,390,0,7381,7383,1,0,0,0,7382,7363,1,0,0,0,7382,7376,1,0,0,0,7383,761,1,0,0,0,7384,7385,3,766,383,0,7385,7386,3,774,387,0,7386,7387,3,780,390,0,7387,7395,1,0,0,0,7388,7389,3,766,383,0,7389,7390,5,2,0,0,7390,7391,3,764,382,0,7391,7392,5,3,0,0,7392,7393,3,780,390,0,7393,7395,1,0,0,0,7394,7384,1,0,0,0,7394,7388,1,0,0,0,7395,763,1,0,0,0,7396,7401,3,768,384,0,7397,7398,5,6,0,0,7398,7400,3,768,384,0,7399,7397,1,0,0,0,7400,7403,1,0,0,0,7401,7399,1,0,0,0,7401,7402,1,0,0,0,7402,765,1,0,0,0,7403,7401,1,0,0,0,7404,7405,7,33,0,0,7405,767,1,0,0,0,7406,7407,3,770,385,0,7407,7408,3,772,386,0,7408,769,1,0,0,0,7409,7412,3,1270,635,0,7410,7412,3,766,383,0,7411,7409,1,0,0,0,7411,7410,1,0,0,0,7412,771,1,0,0,0,7413,7417,3,58,29,0,7414,7417,3,264,132,0,7415,7417,1,0,0,0,7416,7413,1,0,0,0,7416,7414,1,0,0,0,7416,7415,1,0,0,0,7417,773,1,0,0,0,7418,7421,5,128,0,0,7419,7421,1,0,0,0,7420,7418,1,0,0,0,7420,7419,1,0,0,0,7421,775,1,0,0,0,7422,7423,5,2,0,0,7423,7424,3,1232,616,0,7424,7425,5,3,0,0,7425,7428,1,0,0,0,7426,7428,1,0,0,0,7427,7422,1,0,0,0,7427,7426,1,0,0,0,7428,777,1,0,0,0,7429,7430,3,1230,615,0,7430,7431,3,776,388,0,7431,779,1,0,0,0,7432,7437,3,778,389,0,7433,7434,5,6,0,0,7434,7436,3,778,389,0,7435,7433,1,0,0,0,7436,7439,1,0,0,0,7437,7435,1,0,0,0,7437,7438,1,0,0,0,7438,7442,1,0,0,0,7439,7437,1,0,0,0,7440,7442,1,0,0,0,7441,7432,1,0,0,0,7441,7440,1,0,0,0,7442,781,1,0,0,0,7443,7444,5,203,0,0,7444,7467,3,784,392,0,7445,7446,5,203,0,0,7446,7447,3,766,383,0,7447,7448,3,774,387,0,7448,7449,3,784,392,0,7449,7467,1,0,0,0,7450,7451,5,203,0,0,7451,7452,5,128,0,0,7452,7467,3,784,392,0,7453,7454,5,203,0,0,7454,7455,5,2,0,0,7455,7460,3,786,393,0,7456,7457,5,6,0,0,7457,7459,3,786,393,0,7458,7456,1,0,0,0,7459,7462,1,0,0,0,7460,7458,1,0,0,0,7460,7461,1,0,0,0,7461,7463,1,0,0,0,7462,7460,1,0,0,0,7463,7464,5,3,0,0,7464,7465,3,784,392,0,7465,7467,1,0,0,0,7466,7443,1,0,0,0,7466,7445,1,0,0,0,7466,7450,1,0,0,0,7466,7453,1,0,0,0,7467,783,1,0,0,0,7468,7478,3,858,429,0,7469,7478,3,804,402,0,7470,7478,3,844,422,0,7471,7478,3,830,415,0,7472,7478,3,852,426,0,7473,7478,3,242,121,0,7474,7478,3,248,124,0,7475,7478,3,252,126,0,7476,7478,3,798,399,0,7477,7468,1,0,0,0,7477,7469,1,0,0,0,7477,7470,1,0,0,0,7477,7471,1,0,0,0,7477,7472,1,0,0,0,7477,7473,1,0,0,0,7477,7474,1,0,0,0,7477,7475,1,0,0,0,7477,7476,1,0,0,0,7478,785,1,0,0,0,7479,7480,3,788,394,0,7480,7481,3,790,395,0,7481,787,1,0,0,0,7482,7485,3,1270,635,0,7483,7485,3,766,383,0,7484,7482,1,0,0,0,7484,7483,1,0,0,0,7485,789,1,0,0,0,7486,7490,3,58,29,0,7487,7490,3,264,132,0,7488,7490,1,0,0,0,7489,7486,1,0,0,0,7489,7487,1,0,0,0,7489,7488,1,0,0,0,7490,791,1,0,0,0,7491,7492,5,283,0,0,7492,7493,3,1234,617,0,7493,7494,3,794,397,0,7494,7495,5,36,0,0,7495,7496,3,796,398,0,7496,793,1,0,0,0,7497,7498,5,2,0,0,7498,7499,3,1162,581,0,7499,7500,5,3,0,0,7500,7503,1,0,0,0,7501,7503,1,0,0,0,7502,7497,1,0,0,0,7502,7501,1,0,0,0,7503,795,1,0,0,0,7504,7509,3,858,429,0,7505,7509,3,804,402,0,7506,7509,3,844,422,0,7507,7509,3,830,415,0,7508,7504,1,0,0,0,7508,7505,1,0,0,0,7508,7506,1,0,0,0,7508,7507,1,0,0,0,7509,797,1,0,0,0,7510,7511,5,202,0,0,7511,7512,3,1234,617,0,7512,7513,3,800,400,0,7513,7538,1,0,0,0,7514,7515,5,46,0,0,7515,7516,3,154,77,0,7516,7517,5,92,0,0,7517,7518,3,244,122,0,7518,7519,5,36,0,0,7519,7520,5,202,0,0,7520,7521,3,1234,617,0,7521,7522,3,800,400,0,7522,7523,3,246,123,0,7523,7538,1,0,0,0,7524,7525,5,46,0,0,7525,7526,3,154,77,0,7526,7527,5,92,0,0,7527,7528,5,220,0,0,7528,7529,5,77,0,0,7529,7530,5,389,0,0,7530,7531,3,244,122,0,7531,7532,5,36,0,0,7532,7533,5,202,0,0,7533,7534,3,1234,617,0,7534,7535,3,800,400,0,7535,7536,3,246,123,0,7536,7538,1,0,0,0,7537,7510,1,0,0,0,7537,7514,1,0,0,0,7537,7524,1,0,0,0,7538,799,1,0,0,0,7539,7540,5,2,0,0,7540,7541,3,1156,578,0,7541,7542,5,3,0,0,7542,7545,1,0,0,0,7543,7545,1,0,0,0,7544,7539,1,0,0,0,7544,7543,1,0,0,0,7545,801,1,0,0,0,7546,7547,5,177,0,0,7547,7557,3,1234,617,0,7548,7549,5,177,0,0,7549,7550,5,283,0,0,7550,7557,3,1234,617,0,7551,7552,5,177,0,0,7552,7557,5,30,0,0,7553,7554,5,177,0,0,7554,7555,5,283,0,0,7555,7557,5,30,0,0,7556,7546,1,0,0,0,7556,7548,1,0,0,0,7556,7551,1,0,0,0,7556,7553,1,0,0,0,7557,803,1,0,0,0,7558,7560,3,872,436,0,7559,7558,1,0,0,0,7559,7560,1,0,0,0,7560,7561,1,0,0,0,7561,7562,5,232,0,0,7562,7563,5,71,0,0,7563,7564,3,806,403,0,7564,7565,3,808,404,0,7565,7566,3,816,408,0,7566,7567,3,820,410,0,7567,805,1,0,0,0,7568,7571,3,1230,615,0,7569,7570,5,36,0,0,7570,7572,3,1264,632,0,7571,7569,1,0,0,0,7571,7572,1,0,0,0,7572,807,1,0,0,0,7573,7593,3,858,429,0,7574,7575,5,463,0,0,7575,7576,3,810,405,0,7576,7577,5,450,0,0,7577,7578,3,858,429,0,7578,7593,1,0,0,0,7579,7580,5,2,0,0,7580,7581,3,812,406,0,7581,7586,5,3,0,0,7582,7583,5,463,0,0,7583,7584,3,810,405,0,7584,7585,5,450,0,0,7585,7587,1,0,0,0,7586,7582,1,0,0,0,7586,7587,1,0,0,0,7587,7588,1,0,0,0,7588,7589,3,858,429,0,7589,7593,1,0,0,0,7590,7591,5,53,0,0,7591,7593,5,415,0,0,7592,7573,1,0,0,0,7592,7574,1,0,0,0,7592,7579,1,0,0,0,7592,7590,1,0,0,0,7593,809,1,0,0,0,7594,7595,7,34,0,0,7595,811,1,0,0,0,7596,7601,3,814,407,0,7597,7598,5,6,0,0,7598,7600,3,814,407,0,7599,7597,1,0,0,0,7600,7603,1,0,0,0,7601,7599,1,0,0,0,7601,7602,1,0,0,0,7602,813,1,0,0,0,7603,7601,1,0,0,0,7604,7605,3,1264,632,0,7605,7606,3,1200,600,0,7606,815,1,0,0,0,7607,7608,5,80,0,0,7608,7609,5,464,0,0,7609,7610,3,818,409,0,7610,7617,5,57,0,0,7611,7612,5,362,0,0,7612,7613,5,326,0,0,7613,7614,3,846,423,0,7614,7615,3,974,487,0,7615,7618,1,0,0,0,7616,7618,5,263,0,0,7617,7611,1,0,0,0,7617,7616,1,0,0,0,7618,7621,1,0,0,0,7619,7621,1,0,0,0,7620,7607,1,0,0,0,7620,7619,1,0,0,0,7621,817,1,0,0,0,7622,7623,5,2,0,0,7623,7624,3,536,268,0,7624,7625,5,3,0,0,7625,7626,3,974,487,0,7626,7632,1,0,0,0,7627,7628,5,80,0,0,7628,7629,5,45,0,0,7629,7632,3,1224,612,0,7630,7632,1,0,0,0,7631,7622,1,0,0,0,7631,7627,1,0,0,0,7631,7630,1,0,0,0,7632,819,1,0,0,0,7633,7634,5,87,0,0,7634,7637,3,1204,602,0,7635,7637,1,0,0,0,7636,7633,1,0,0,0,7636,7635,1,0,0,0,7637,821,1,0,0,0,7638,7640,5,253,0,0,7639,7641,5,71,0,0,7640,7639,1,0,0,0,7640,7641,1,0,0,0,7641,7642,1,0,0,0,7642,7644,3,1230,615,0,7643,7645,3,944,472,0,7644,7643,1,0,0,0,7644,7645,1,0,0,0,7645,7646,1,0,0,0,7646,7649,5,100,0,0,7647,7650,3,860,430,0,7648,7650,3,1230,615,0,7649,7647,1,0,0,0,7649,7648,1,0,0,0,7650,7652,1,0,0,0,7651,7653,3,944,472,0,7652,7651,1,0,0,0,7652,7653,1,0,0,0,7653,7654,1,0,0,0,7654,7655,5,80,0,0,7655,7664,3,1038,519,0,7656,7658,3,824,412,0,7657,7659,3,826,413,0,7658,7657,1,0,0,0,7658,7659,1,0,0,0,7659,7665,1,0,0,0,7660,7662,3,826,413,0,7661,7663,3,824,412,0,7662,7661,1,0,0,0,7662,7663,1,0,0,0,7663,7665,1,0,0,0,7664,7656,1,0,0,0,7664,7660,1,0,0,0,7665,7667,1,0,0,0,7666,7668,3,828,414,0,7667,7666,1,0,0,0,7667,7668,1,0,0,0,7668,823,1,0,0,0,7669,7670,5,102,0,0,7670,7671,5,77,0,0,7671,7674,5,250,0,0,7672,7673,5,33,0,0,7673,7675,3,1038,519,0,7674,7672,1,0,0,0,7674,7675,1,0,0,0,7675,7677,1,0,0,0,7676,7678,5,93,0,0,7677,7676,1,0,0,0,7677,7678,1,0,0,0,7678,7679,1,0,0,0,7679,7684,5,232,0,0,7680,7681,5,2,0,0,7681,7682,3,812,406,0,7682,7683,5,3,0,0,7683,7685,1,0,0,0,7684,7680,1,0,0,0,7684,7685,1,0,0,0,7685,7686,1,0,0,0,7686,7687,3,934,467,0,7687,825,1,0,0,0,7688,7689,5,102,0,0,7689,7692,5,250,0,0,7690,7691,5,33,0,0,7691,7693,3,1038,519,0,7692,7690,1,0,0,0,7692,7693,1,0,0,0,7693,7695,1,0,0,0,7694,7696,5,93,0,0,7695,7694,1,0,0,0,7695,7696,1,0,0,0,7696,7697,1,0,0,0,7697,7698,5,362,0,0,7698,7699,5,326,0,0,7699,7700,3,846,423,0,7700,827,1,0,0,0,7701,7702,5,102,0,0,7702,7704,5,250,0,0,7703,7705,5,93,0,0,7704,7703,1,0,0,0,7704,7705,1,0,0,0,7705,7706,1,0,0,0,7706,7707,5,182,0,0,7707,829,1,0,0,0,7708,7710,3,872,436,0,7709,7708,1,0,0,0,7709,7710,1,0,0,0,7710,7711,1,0,0,0,7711,7712,5,182,0,0,7712,7713,5,64,0,0,7713,7714,3,962,481,0,7714,7715,3,832,416,0,7715,7716,3,976,488,0,7716,7717,3,820,410,0,7717,831,1,0,0,0,7718,7719,5,100,0,0,7719,7722,3,938,469,0,7720,7722,1,0,0,0,7721,7718,1,0,0,0,7721,7720,1,0,0,0,7722,833,1,0,0,0,7723,7724,5,247,0,0,7724,7725,3,882,441,0,7725,7726,3,960,480,0,7726,7727,3,836,418,0,7727,7728,3,840,420,0,7728,835,1,0,0,0,7729,7730,5,68,0,0,7730,7731,3,838,419,0,7731,7732,5,256,0,0,7732,7735,1,0,0,0,7733,7735,1,0,0,0,7734,7729,1,0,0,0,7734,7733,1,0,0,0,7735,837,1,0,0,0,7736,7737,5,131,0,0,7737,7749,7,35,0,0,7738,7739,5,407,0,0,7739,7749,7,35,0,0,7740,7745,5,327,0,0,7741,7742,5,362,0,0,7742,7746,5,201,0,0,7743,7744,5,407,0,0,7744,7746,5,201,0,0,7745,7741,1,0,0,0,7745,7743,1,0,0,0,7745,7746,1,0,0,0,7746,7749,1,0,0,0,7747,7749,5,201,0,0,7748,7736,1,0,0,0,7748,7738,1,0,0,0,7748,7740,1,0,0,0,7748,7747,1,0,0,0,7749,839,1,0,0,0,7750,7753,5,265,0,0,7751,7753,1,0,0,0,7752,7750,1,0,0,0,7752,7751,1,0,0,0,7753,841,1,0,0,0,7754,7759,5,265,0,0,7755,7756,5,465,0,0,7756,7759,5,466,0,0,7757,7759,1,0,0,0,7758,7754,1,0,0,0,7758,7755,1,0,0,0,7758,7757,1,0,0,0,7759,843,1,0,0,0,7760,7762,3,872,436,0,7761,7760,1,0,0,0,7761,7762,1,0,0,0,7762,7763,1,0,0,0,7763,7764,5,362,0,0,7764,7765,3,962,481,0,7765,7766,5,326,0,0,7766,7767,3,846,423,0,7767,7768,3,936,468,0,7768,7769,3,976,488,0,7769,7770,3,820,410,0,7770,845,1,0,0,0,7771,7776,3,848,424,0,7772,7773,5,6,0,0,7773,7775,3,848,424,0,7774,7772,1,0,0,0,7775,7778,1,0,0,0,7776,7774,1,0,0,0,7776,7777,1,0,0,0,7777,847,1,0,0,0,7778,7776,1,0,0,0,7779,7780,3,850,425,0,7780,7781,5,10,0,0,7781,7782,3,1038,519,0,7782,7797,1,0,0,0,7783,7784,5,2,0,0,7784,7789,3,850,425,0,7785,7786,5,6,0,0,7786,7788,3,850,425,0,7787,7785,1,0,0,0,7788,7791,1,0,0,0,7789,7787,1,0,0,0,7789,7790,1,0,0,0,7790,7792,1,0,0,0,7791,7789,1,0,0,0,7792,7793,5,3,0,0,7793,7794,5,10,0,0,7794,7795,3,1038,519,0,7795,7797,1,0,0,0,7796,7779,1,0,0,0,7796,7783,1,0,0,0,7797,849,1,0,0,0,7798,7799,3,1264,632,0,7799,7800,3,1200,600,0,7800,851,1,0,0,0,7801,7802,5,178,0,0,7802,7810,3,854,427,0,7803,7804,5,262,0,0,7804,7809,5,317,0,0,7805,7809,5,317,0,0,7806,7809,5,107,0,0,7807,7809,5,231,0,0,7808,7803,1,0,0,0,7808,7805,1,0,0,0,7808,7806,1,0,0,0,7808,7807,1,0,0,0,7809,7812,1,0,0,0,7810,7808,1,0,0,0,7810,7811,1,0,0,0,7811,7813,1,0,0,0,7812,7810,1,0,0,0,7813,7814,5,172,0,0,7814,7815,3,856,428,0,7815,7816,5,62,0,0,7816,7817,3,858,429,0,7817,853,1,0,0,0,7818,7819,3,1234,617,0,7819,855,1,0,0,0,7820,7826,1,0,0,0,7821,7822,5,105,0,0,7822,7826,5,217,0,0,7823,7824,5,372,0,0,7824,7826,5,217,0,0,7825,7820,1,0,0,0,7825,7821,1,0,0,0,7825,7823,1,0,0,0,7826,857,1,0,0,0,7827,7830,3,862,431,0,7828,7830,3,860,430,0,7829,7827,1,0,0,0,7829,7828,1,0,0,0,7830,859,1,0,0,0,7831,7832,5,2,0,0,7832,7833,3,862,431,0,7833,7834,5,3,0,0,7834,7840,1,0,0,0,7835,7836,5,2,0,0,7836,7837,3,860,430,0,7837,7838,5,3,0,0,7838,7840,1,0,0,0,7839,7831,1,0,0,0,7839,7835,1,0,0,0,7840,861,1,0,0,0,7841,7842,3,864,432,0,7842,7850,3,890,445,0,7843,7844,3,926,463,0,7844,7845,3,900,450,0,7845,7851,1,0,0,0,7846,7848,3,898,449,0,7847,7849,3,926,463,0,7848,7847,1,0,0,0,7848,7849,1,0,0,0,7849,7851,1,0,0,0,7850,7843,1,0,0,0,7850,7846,1,0,0,0,7850,7851,1,0,0,0,7851,7865,1,0,0,0,7852,7853,3,872,436,0,7853,7854,3,864,432,0,7854,7862,3,890,445,0,7855,7856,3,926,463,0,7856,7857,3,900,450,0,7857,7863,1,0,0,0,7858,7860,3,898,449,0,7859,7861,3,926,463,0,7860,7859,1,0,0,0,7860,7861,1,0,0,0,7861,7863,1,0,0,0,7862,7855,1,0,0,0,7862,7858,1,0,0,0,7862,7863,1,0,0,0,7863,7865,1,0,0,0,7864,7841,1,0,0,0,7864,7852,1,0,0,0,7865,863,1,0,0,0,7866,7873,3,866,433,0,7867,7868,7,36,0,0,7868,7869,3,884,442,0,7869,7870,3,866,433,0,7870,7872,1,0,0,0,7871,7867,1,0,0,0,7872,7875,1,0,0,0,7873,7871,1,0,0,0,7873,7874,1,0,0,0,7874,865,1,0,0,0,7875,7873,1,0,0,0,7876,7883,3,870,435,0,7877,7878,5,70,0,0,7878,7879,3,884,442,0,7879,7880,3,870,435,0,7880,7882,1,0,0,0,7881,7877,1,0,0,0,7882,7885,1,0,0,0,7883,7881,1,0,0,0,7883,7884,1,0,0,0,7884,867,1,0,0,0,7885,7883,1,0,0,0,7886,7888,3,1204,602,0,7887,7889,3,878,439,0,7888,7887,1,0,0,0,7888,7889,1,0,0,0,7889,7902,1,0,0,0,7890,7891,3,888,444,0,7891,7893,3,1202,601,0,7892,7894,3,878,439,0,7893,7892,1,0,0,0,7893,7894,1,0,0,0,7894,7902,1,0,0,0,7895,7896,3,886,443,0,7896,7898,3,1204,602,0,7897,7899,3,878,439,0,7898,7897,1,0,0,0,7898,7899,1,0,0,0,7899,7902,1,0,0,0,7900,7902,3,878,439,0,7901,7886,1,0,0,0,7901,7890,1,0,0,0,7901,7895,1,0,0,0,7901,7900,1,0,0,0,7902,869,1,0,0,0,7903,7904,5,88,0,0,7904,7905,3,868,434,0,7905,7906,3,936,468,0,7906,7907,3,974,487,0,7907,7908,3,918,459,0,7908,7909,3,924,462,0,7909,7910,3,1116,558,0,7910,7916,1,0,0,0,7911,7916,3,934,467,0,7912,7913,5,92,0,0,7913,7916,3,958,479,0,7914,7916,3,860,430,0,7915,7903,1,0,0,0,7915,7911,1,0,0,0,7915,7912,1,0,0,0,7915,7914,1,0,0,0,7916,871,1,0,0,0,7917,7919,5,105,0,0,7918,7920,5,296,0,0,7919,7918,1,0,0,0,7919,7920,1,0,0,0,7920,7921,1,0,0,0,7921,7926,3,874,437,0,7922,7923,5,6,0,0,7923,7925,3,874,437,0,7924,7922,1,0,0,0,7925,7928,1,0,0,0,7926,7924,1,0,0,0,7926,7927,1,0,0,0,7927,873,1,0,0,0,7928,7926,1,0,0,0,7929,7930,3,1234,617,0,7930,7931,3,776,388,0,7931,7932,5,36,0,0,7932,7933,3,876,438,0,7933,7934,5,2,0,0,7934,7935,3,796,398,0,7935,7936,5,3,0,0,7936,875,1,0,0,0,7937,7942,5,251,0,0,7938,7939,5,77,0,0,7939,7942,5,251,0,0,7940,7942,1,0,0,0,7941,7937,1,0,0,0,7941,7938,1,0,0,0,7941,7940,1,0,0,0,7942,877,1,0,0,0,7943,7949,5,71,0,0,7944,7946,5,339,0,0,7945,7944,1,0,0,0,7945,7946,1,0,0,0,7946,7947,1,0,0,0,7947,7950,3,880,440,0,7948,7950,3,1448,724,0,7949,7945,1,0,0,0,7949,7948,1,0,0,0,7950,879,1,0,0,0,7951,7953,7,37,0,0,7952,7951,1,0,0,0,7952,7953,1,0,0,0,7953,7954,1,0,0,0,7954,7955,7,10,0,0,7955,7956,3,882,441,0,7956,7957,3,1230,615,0,7957,7966,1,0,0,0,7958,7959,5,360,0,0,7959,7960,3,882,441,0,7960,7961,3,1230,615,0,7961,7966,1,0,0,0,7962,7963,5,92,0,0,7963,7966,3,1230,615,0,7964,7966,3,1230,615,0,7965,7952,1,0,0,0,7965,7958,1,0,0,0,7965,7962,1,0,0,0,7965,7964,1,0,0,0,7966,881,1,0,0,0,7967,7970,5,92,0,0,7968,7970,1,0,0,0,7969,7967,1,0,0,0,7969,7968,1,0,0,0,7970,883,1,0,0,0,7971,7975,5,30,0,0,7972,7975,5,56,0,0,7973,7975,1,0,0,0,7974,7971,1,0,0,0,7974,7972,1,0,0,0,7974,7973,1,0,0,0,7975,885,1,0,0,0,7976,7982,5,56,0,0,7977,7978,5,80,0,0,7978,7979,5,2,0,0,7979,7980,3,1156,578,0,7980,7981,5,3,0,0,7981,7983,1,0,0,0,7982,7977,1,0,0,0,7982,7983,1,0,0,0,7983,887,1,0,0,0,7984,7985,5,30,0,0,7985,889,1,0,0,0,7986,7989,3,892,446,0,7987,7989,1,0,0,0,7988,7986,1,0,0,0,7988,7987,1,0,0,0,7989,891,1,0,0,0,7990,7991,5,83,0,0,7991,7992,5,147,0,0,7992,7993,3,894,447,0,7993,893,1,0,0,0,7994,7999,3,896,448,0,7995,7996,5,6,0,0,7996,7998,3,896,448,0,7997,7995,1,0,0,0,7998,8001,1,0,0,0,7999,7997,1,0,0,0,7999,8e3,1,0,0,0,8e3,895,1,0,0,0,8001,7999,1,0,0,0,8002,8006,3,1038,519,0,8003,8004,5,100,0,0,8004,8007,3,1152,576,0,8005,8007,3,548,274,0,8006,8003,1,0,0,0,8006,8005,1,0,0,0,8007,8008,1,0,0,0,8008,8009,3,550,275,0,8009,897,1,0,0,0,8010,8012,3,902,451,0,8011,8013,3,904,452,0,8012,8011,1,0,0,0,8012,8013,1,0,0,0,8013,8019,1,0,0,0,8014,8016,3,904,452,0,8015,8017,3,902,451,0,8016,8015,1,0,0,0,8016,8017,1,0,0,0,8017,8019,1,0,0,0,8018,8010,1,0,0,0,8018,8014,1,0,0,0,8019,899,1,0,0,0,8020,8023,3,898,449,0,8021,8023,1,0,0,0,8022,8020,1,0,0,0,8022,8021,1,0,0,0,8023,901,1,0,0,0,8024,8025,5,74,0,0,8025,8028,3,906,453,0,8026,8027,5,6,0,0,8027,8029,3,908,454,0,8028,8026,1,0,0,0,8028,8029,1,0,0,0,8029,8048,1,0,0,0,8030,8031,5,61,0,0,8031,8045,3,916,458,0,8032,8033,3,910,455,0,8033,8037,3,914,457,0,8034,8038,5,81,0,0,8035,8036,5,105,0,0,8036,8038,5,467,0,0,8037,8034,1,0,0,0,8037,8035,1,0,0,0,8038,8046,1,0,0,0,8039,8043,3,914,457,0,8040,8044,5,81,0,0,8041,8042,5,105,0,0,8042,8044,5,467,0,0,8043,8040,1,0,0,0,8043,8041,1,0,0,0,8044,8046,1,0,0,0,8045,8032,1,0,0,0,8045,8039,1,0,0,0,8046,8048,1,0,0,0,8047,8024,1,0,0,0,8047,8030,1,0,0,0,8048,903,1,0,0,0,8049,8054,5,79,0,0,8050,8055,3,908,454,0,8051,8052,3,910,455,0,8052,8053,3,914,457,0,8053,8055,1,0,0,0,8054,8050,1,0,0,0,8054,8051,1,0,0,0,8055,905,1,0,0,0,8056,8059,3,1038,519,0,8057,8059,5,30,0,0,8058,8056,1,0,0,0,8058,8057,1,0,0,0,8059,907,1,0,0,0,8060,8061,3,1038,519,0,8061,909,1,0,0,0,8062,8068,3,1082,541,0,8063,8064,5,12,0,0,8064,8068,3,912,456,0,8065,8066,5,13,0,0,8066,8068,3,912,456,0,8067,8062,1,0,0,0,8067,8063,1,0,0,0,8067,8065,1,0,0,0,8068,911,1,0,0,0,8069,8072,3,1250,625,0,8070,8072,3,1248,624,0,8071,8069,1,0,0,0,8071,8070,1,0,0,0,8072,913,1,0,0,0,8073,8074,7,38,0,0,8074,915,1,0,0,0,8075,8076,7,39,0,0,8076,917,1,0,0,0,8077,8078,5,66,0,0,8078,8079,5,147,0,0,8079,8082,3,920,460,0,8080,8082,1,0,0,0,8081,8077,1,0,0,0,8081,8080,1,0,0,0,8082,919,1,0,0,0,8083,8088,3,922,461,0,8084,8085,5,6,0,0,8085,8087,3,922,461,0,8086,8084,1,0,0,0,8087,8090,1,0,0,0,8088,8086,1,0,0,0,8088,8089,1,0,0,0,8089,921,1,0,0,0,8090,8088,1,0,0,0,8091,8111,3,1038,519,0,8092,8093,5,2,0,0,8093,8111,5,3,0,0,8094,8095,5,469,0,0,8095,8096,5,2,0,0,8096,8097,3,1156,578,0,8097,8098,5,3,0,0,8098,8111,1,0,0,0,8099,8100,5,468,0,0,8100,8101,5,2,0,0,8101,8102,3,1156,578,0,8102,8103,5,3,0,0,8103,8111,1,0,0,0,8104,8105,5,470,0,0,8105,8106,5,471,0,0,8106,8107,5,2,0,0,8107,8108,3,920,460,0,8108,8109,5,3,0,0,8109,8111,1,0,0,0,8110,8091,1,0,0,0,8110,8092,1,0,0,0,8110,8094,1,0,0,0,8110,8099,1,0,0,0,8110,8104,1,0,0,0,8111,923,1,0,0,0,8112,8113,5,67,0,0,8113,8116,3,1038,519,0,8114,8116,1,0,0,0,8115,8112,1,0,0,0,8115,8114,1,0,0,0,8116,925,1,0,0,0,8117,8119,3,928,464,0,8118,8117,1,0,0,0,8119,8120,1,0,0,0,8120,8118,1,0,0,0,8120,8121,1,0,0,0,8121,8126,1,0,0,0,8122,8123,5,62,0,0,8123,8124,5,293,0,0,8124,8126,5,81,0,0,8125,8118,1,0,0,0,8125,8122,1,0,0,0,8126,927,1,0,0,0,8127,8128,3,930,465,0,8128,8129,3,932,466,0,8129,8130,3,842,421,0,8130,929,1,0,0,0,8131,8141,5,62,0,0,8132,8133,5,262,0,0,8133,8135,5,236,0,0,8134,8132,1,0,0,0,8134,8135,1,0,0,0,8135,8136,1,0,0,0,8136,8142,5,362,0,0,8137,8139,5,236,0,0,8138,8137,1,0,0,0,8138,8139,1,0,0,0,8139,8140,1,0,0,0,8140,8142,5,327,0,0,8141,8134,1,0,0,0,8141,8138,1,0,0,0,8142,931,1,0,0,0,8143,8144,5,268,0,0,8144,8147,3,1208,604,0,8145,8147,1,0,0,0,8146,8143,1,0,0,0,8146,8145,1,0,0,0,8147,933,1,0,0,0,8148,8149,5,415,0,0,8149,8150,5,2,0,0,8150,8151,3,1156,578,0,8151,8159,5,3,0,0,8152,8153,5,6,0,0,8153,8154,5,2,0,0,8154,8155,3,1156,578,0,8155,8156,5,3,0,0,8156,8158,1,0,0,0,8157,8152,1,0,0,0,8158,8161,1,0,0,0,8159,8157,1,0,0,0,8159,8160,1,0,0,0,8160,935,1,0,0,0,8161,8159,1,0,0,0,8162,8163,5,64,0,0,8163,8166,3,938,469,0,8164,8166,1,0,0,0,8165,8162,1,0,0,0,8165,8164,1,0,0,0,8166,937,1,0,0,0,8167,8177,3,940,470,0,8168,8173,3,942,471,0,8169,8170,5,6,0,0,8170,8172,3,942,471,0,8171,8169,1,0,0,0,8172,8175,1,0,0,0,8173,8171,1,0,0,0,8173,8174,1,0,0,0,8174,8177,1,0,0,0,8175,8173,1,0,0,0,8176,8167,1,0,0,0,8176,8168,1,0,0,0,8177,939,1,0,0,0,8178,8181,3,942,471,0,8179,8180,5,6,0,0,8180,8182,3,942,471,0,8181,8179,1,0,0,0,8182,8183,1,0,0,0,8183,8181,1,0,0,0,8183,8184,1,0,0,0,8184,941,1,0,0,0,8185,8186,3,958,479,0,8186,8188,3,946,473,0,8187,8189,3,964,482,0,8188,8187,1,0,0,0,8188,8189,1,0,0,0,8189,8235,1,0,0,0,8190,8191,3,966,483,0,8191,8192,3,950,475,0,8192,8235,1,0,0,0,8193,8194,3,984,492,0,8194,8195,3,946,473,0,8195,8235,1,0,0,0,8196,8197,3,860,430,0,8197,8198,3,946,473,0,8198,8235,1,0,0,0,8199,8209,5,72,0,0,8200,8201,3,984,492,0,8201,8202,3,946,473,0,8202,8210,1,0,0,0,8203,8204,3,966,483,0,8204,8205,3,950,475,0,8205,8210,1,0,0,0,8206,8207,3,860,430,0,8207,8208,3,946,473,0,8208,8210,1,0,0,0,8209,8200,1,0,0,0,8209,8203,1,0,0,0,8209,8206,1,0,0,0,8210,8235,1,0,0,0,8211,8212,5,2,0,0,8212,8229,3,942,471,0,8213,8214,5,110,0,0,8214,8215,5,118,0,0,8215,8230,3,942,471,0,8216,8218,5,121,0,0,8217,8219,3,952,476,0,8218,8217,1,0,0,0,8218,8219,1,0,0,0,8219,8220,1,0,0,0,8220,8221,5,118,0,0,8221,8230,3,942,471,0,8222,8224,3,952,476,0,8223,8222,1,0,0,0,8223,8224,1,0,0,0,8224,8225,1,0,0,0,8225,8226,5,118,0,0,8226,8227,3,942,471,0,8227,8228,3,954,477,0,8228,8230,1,0,0,0,8229,8213,1,0,0,0,8229,8216,1,0,0,0,8229,8223,1,0,0,0,8229,8230,1,0,0,0,8230,8231,1,0,0,0,8231,8232,5,3,0,0,8232,8233,3,946,473,0,8233,8235,1,0,0,0,8234,8185,1,0,0,0,8234,8190,1,0,0,0,8234,8193,1,0,0,0,8234,8196,1,0,0,0,8234,8199,1,0,0,0,8234,8211,1,0,0,0,8235,8254,1,0,0,0,8236,8237,5,110,0,0,8237,8238,5,118,0,0,8238,8253,3,942,471,0,8239,8241,5,121,0,0,8240,8242,3,952,476,0,8241,8240,1,0,0,0,8241,8242,1,0,0,0,8242,8243,1,0,0,0,8243,8244,5,118,0,0,8244,8253,3,942,471,0,8245,8247,3,952,476,0,8246,8245,1,0,0,0,8246,8247,1,0,0,0,8247,8248,1,0,0,0,8248,8249,5,118,0,0,8249,8250,3,942,471,0,8250,8251,3,954,477,0,8251,8253,1,0,0,0,8252,8236,1,0,0,0,8252,8239,1,0,0,0,8252,8246,1,0,0,0,8253,8256,1,0,0,0,8254,8252,1,0,0,0,8254,8255,1,0,0,0,8255,943,1,0,0,0,8256,8254,1,0,0,0,8257,8259,5,36,0,0,8258,8257,1,0,0,0,8258,8259,1,0,0,0,8259,8260,1,0,0,0,8260,8265,3,1264,632,0,8261,8262,5,2,0,0,8262,8263,3,1232,616,0,8263,8264,5,3,0,0,8264,8266,1,0,0,0,8265,8261,1,0,0,0,8265,8266,1,0,0,0,8266,945,1,0,0,0,8267,8270,3,948,474,0,8268,8270,1,0,0,0,8269,8267,1,0,0,0,8269,8268,1,0,0,0,8270,947,1,0,0,0,8271,8273,5,36,0,0,8272,8271,1,0,0,0,8272,8273,1,0,0,0,8273,8274,1,0,0,0,8274,8279,3,1266,633,0,8275,8276,5,2,0,0,8276,8277,3,1232,616,0,8277,8278,5,3,0,0,8278,8280,1,0,0,0,8279,8275,1,0,0,0,8279,8280,1,0,0,0,8280,949,1,0,0,0,8281,8295,3,944,472,0,8282,8284,5,36,0,0,8283,8285,3,1264,632,0,8284,8283,1,0,0,0,8284,8285,1,0,0,0,8285,8288,1,0,0,0,8286,8288,3,1264,632,0,8287,8282,1,0,0,0,8287,8286,1,0,0,0,8288,8289,1,0,0,0,8289,8290,5,2,0,0,8290,8291,3,980,490,0,8291,8292,5,3,0,0,8292,8295,1,0,0,0,8293,8295,1,0,0,0,8294,8281,1,0,0,0,8294,8287,1,0,0,0,8294,8293,1,0,0,0,8295,951,1,0,0,0,8296,8298,7,40,0,0,8297,8299,5,123,0,0,8298,8297,1,0,0,0,8298,8299,1,0,0,0,8299,953,1,0,0,0,8300,8301,5,100,0,0,8301,8302,5,2,0,0,8302,8303,3,1232,616,0,8303,8304,5,3,0,0,8304,8308,1,0,0,0,8305,8306,5,80,0,0,8306,8308,3,1038,519,0,8307,8300,1,0,0,0,8307,8305,1,0,0,0,8308,955,1,0,0,0,8309,8310,3,1230,615,0,8310,957,1,0,0,0,8311,8313,3,1230,615,0,8312,8314,5,9,0,0,8313,8312,1,0,0,0,8313,8314,1,0,0,0,8314,8324,1,0,0,0,8315,8321,5,81,0,0,8316,8322,3,1230,615,0,8317,8318,5,2,0,0,8318,8319,3,1230,615,0,8319,8320,5,3,0,0,8320,8322,1,0,0,0,8321,8316,1,0,0,0,8321,8317,1,0,0,0,8322,8324,1,0,0,0,8323,8311,1,0,0,0,8323,8315,1,0,0,0,8324,959,1,0,0,0,8325,8330,3,958,479,0,8326,8327,5,6,0,0,8327,8329,3,958,479,0,8328,8326,1,0,0,0,8329,8332,1,0,0,0,8330,8328,1,0,0,0,8330,8331,1,0,0,0,8331,961,1,0,0,0,8332,8330,1,0,0,0,8333,8338,3,958,479,0,8334,8336,5,36,0,0,8335,8334,1,0,0,0,8335,8336,1,0,0,0,8336,8337,1,0,0,0,8337,8339,3,1264,632,0,8338,8335,1,0,0,0,8338,8339,1,0,0,0,8339,963,1,0,0,0,8340,8341,5,472,0,0,8341,8342,3,1240,620,0,8342,8343,5,2,0,0,8343,8344,3,1156,578,0,8344,8345,5,3,0,0,8345,8346,5,303,0,0,8346,8347,5,2,0,0,8347,8348,3,1038,519,0,8348,8349,5,3,0,0,8349,965,1,0,0,0,8350,8351,3,1090,545,0,8351,8352,3,972,486,0,8352,8368,1,0,0,0,8353,8354,5,313,0,0,8354,8355,5,64,0,0,8355,8356,5,2,0,0,8356,8361,3,968,484,0,8357,8358,5,6,0,0,8358,8360,3,968,484,0,8359,8357,1,0,0,0,8360,8363,1,0,0,0,8361,8359,1,0,0,0,8361,8362,1,0,0,0,8362,8364,1,0,0,0,8363,8361,1,0,0,0,8364,8365,5,3,0,0,8365,8366,3,972,486,0,8366,8368,1,0,0,0,8367,8350,1,0,0,0,8367,8353,1,0,0,0,8368,967,1,0,0,0,8369,8370,3,1090,545,0,8370,8371,3,970,485,0,8371,969,1,0,0,0,8372,8373,5,36,0,0,8373,8374,5,2,0,0,8374,8375,3,980,490,0,8375,8376,5,3,0,0,8376,8379,1,0,0,0,8377,8379,1,0,0,0,8378,8372,1,0,0,0,8378,8377,1,0,0,0,8379,971,1,0,0,0,8380,8381,5,105,0,0,8381,8384,5,473,0,0,8382,8384,1,0,0,0,8383,8380,1,0,0,0,8383,8382,1,0,0,0,8384,973,1,0,0,0,8385,8386,5,103,0,0,8386,8389,3,1038,519,0,8387,8389,1,0,0,0,8388,8385,1,0,0,0,8388,8387,1,0,0,0,8389,975,1,0,0,0,8390,8395,5,103,0,0,8391,8392,5,434,0,0,8392,8393,5,268,0,0,8393,8396,3,854,427,0,8394,8396,3,1038,519,0,8395,8391,1,0,0,0,8395,8394,1,0,0,0,8396,8399,1,0,0,0,8397,8399,1,0,0,0,8398,8390,1,0,0,0,8398,8397,1,0,0,0,8399,977,1,0,0,0,8400,8403,3,980,490,0,8401,8403,1,0,0,0,8402,8400,1,0,0,0,8402,8401,1,0,0,0,8403,979,1,0,0,0,8404,8409,3,982,491,0,8405,8406,5,6,0,0,8406,8408,3,982,491,0,8407,8405,1,0,0,0,8408,8411,1,0,0,0,8409,8407,1,0,0,0,8409,8410,1,0,0,0,8410,981,1,0,0,0,8411,8409,1,0,0,0,8412,8413,3,1264,632,0,8413,8414,3,996,498,0,8414,8415,3,102,51,0,8415,983,1,0,0,0,8416,8417,5,474,0,0,8417,8445,5,2,0,0,8418,8419,3,1082,541,0,8419,8420,3,1108,554,0,8420,8421,5,475,0,0,8421,8426,3,986,493,0,8422,8423,5,6,0,0,8423,8425,3,986,493,0,8424,8422,1,0,0,0,8425,8428,1,0,0,0,8426,8424,1,0,0,0,8426,8427,1,0,0,0,8427,8446,1,0,0,0,8428,8426,1,0,0,0,8429,8430,5,476,0,0,8430,8431,5,2,0,0,8431,8432,3,992,496,0,8432,8433,5,3,0,0,8433,8434,5,6,0,0,8434,8435,3,1082,541,0,8435,8436,3,1108,554,0,8436,8437,5,475,0,0,8437,8442,3,986,493,0,8438,8439,5,6,0,0,8439,8441,3,986,493,0,8440,8438,1,0,0,0,8441,8444,1,0,0,0,8442,8440,1,0,0,0,8442,8443,1,0,0,0,8443,8446,1,0,0,0,8444,8442,1,0,0,0,8445,8418,1,0,0,0,8445,8429,1,0,0,0,8446,8447,1,0,0,0,8447,8448,5,3,0,0,8448,985,1,0,0,0,8449,8456,3,1264,632,0,8450,8452,3,996,498,0,8451,8453,3,988,494,0,8452,8451,1,0,0,0,8452,8453,1,0,0,0,8453,8457,1,0,0,0,8454,8455,5,62,0,0,8455,8457,5,473,0,0,8456,8450,1,0,0,0,8456,8454,1,0,0,0,8457,987,1,0,0,0,8458,8460,3,990,495,0,8459,8458,1,0,0,0,8460,8461,1,0,0,0,8461,8459,1,0,0,0,8461,8462,1,0,0,0,8462,989,1,0,0,0,8463,8464,5,53,0,0,8464,8472,3,1038,519,0,8465,8466,3,1274,637,0,8466,8467,3,1038,519,0,8467,8472,1,0,0,0,8468,8469,5,77,0,0,8469,8472,5,78,0,0,8470,8472,5,78,0,0,8471,8463,1,0,0,0,8471,8465,1,0,0,0,8471,8468,1,0,0,0,8471,8470,1,0,0,0,8472,991,1,0,0,0,8473,8478,3,994,497,0,8474,8475,5,6,0,0,8475,8477,3,994,497,0,8476,8474,1,0,0,0,8477,8480,1,0,0,0,8478,8476,1,0,0,0,8478,8479,1,0,0,0,8479,993,1,0,0,0,8480,8478,1,0,0,0,8481,8482,3,1080,540,0,8482,8483,5,36,0,0,8483,8484,3,1272,636,0,8484,8488,1,0,0,0,8485,8486,5,53,0,0,8486,8488,3,1080,540,0,8487,8481,1,0,0,0,8487,8485,1,0,0,0,8488,995,1,0,0,0,8489,8491,5,408,0,0,8490,8489,1,0,0,0,8490,8491,1,0,0,0,8491,8492,1,0,0,0,8492,8510,3,998,499,0,8493,8495,5,4,0,0,8494,8496,3,1250,625,0,8495,8494,1,0,0,0,8495,8496,1,0,0,0,8496,8497,1,0,0,0,8497,8499,5,5,0,0,8498,8493,1,0,0,0,8499,8502,1,0,0,0,8500,8498,1,0,0,0,8500,8501,1,0,0,0,8501,8511,1,0,0,0,8502,8500,1,0,0,0,8503,8508,5,35,0,0,8504,8505,5,4,0,0,8505,8506,3,1250,625,0,8506,8507,5,5,0,0,8507,8509,1,0,0,0,8508,8504,1,0,0,0,8508,8509,1,0,0,0,8509,8511,1,0,0,0,8510,8500,1,0,0,0,8510,8503,1,0,0,0,8511,8517,1,0,0,0,8512,8513,3,1230,615,0,8513,8514,5,27,0,0,8514,8515,7,41,0,0,8515,8517,1,0,0,0,8516,8490,1,0,0,0,8516,8512,1,0,0,0,8517,997,1,0,0,0,8518,8532,3,1002,501,0,8519,8532,3,1006,503,0,8520,8532,3,1010,505,0,8521,8532,3,1018,509,0,8522,8532,3,1026,513,0,8523,8529,3,1028,514,0,8524,8530,3,1032,516,0,8525,8526,5,2,0,0,8526,8527,3,1250,625,0,8527,8528,5,3,0,0,8528,8530,1,0,0,0,8529,8524,1,0,0,0,8529,8525,1,0,0,0,8530,8532,1,0,0,0,8531,8518,1,0,0,0,8531,8519,1,0,0,0,8531,8520,1,0,0,0,8531,8521,1,0,0,0,8531,8522,1,0,0,0,8531,8523,1,0,0,0,8532,999,1,0,0,0,8533,8538,3,1006,503,0,8534,8538,3,1012,506,0,8535,8538,3,1020,510,0,8536,8538,3,1026,513,0,8537,8533,1,0,0,0,8537,8534,1,0,0,0,8537,8535,1,0,0,0,8537,8536,1,0,0,0,8538,1001,1,0,0,0,8539,8544,3,1286,643,0,8540,8544,3,1268,634,0,8541,8544,5,119,0,0,8542,8544,5,126,0,0,8543,8539,1,0,0,0,8543,8540,1,0,0,0,8543,8541,1,0,0,0,8543,8542,1,0,0,0,8544,8546,1,0,0,0,8545,8547,3,472,236,0,8546,8545,1,0,0,0,8546,8547,1,0,0,0,8547,8548,1,0,0,0,8548,8549,3,1004,502,0,8549,1003,1,0,0,0,8550,8551,5,2,0,0,8551,8552,3,1156,578,0,8552,8553,5,3,0,0,8553,8556,1,0,0,0,8554,8556,1,0,0,0,8555,8550,1,0,0,0,8555,8554,1,0,0,0,8556,1005,1,0,0,0,8557,8574,5,394,0,0,8558,8574,5,395,0,0,8559,8574,5,409,0,0,8560,8574,5,381,0,0,8561,8574,5,406,0,0,8562,8563,5,391,0,0,8563,8574,3,1008,504,0,8564,8565,5,190,0,0,8565,8574,5,405,0,0,8566,8567,5,388,0,0,8567,8574,3,1004,502,0,8568,8569,5,387,0,0,8569,8574,3,1004,502,0,8570,8571,5,402,0,0,8571,8574,3,1004,502,0,8572,8574,5,383,0,0,8573,8557,1,0,0,0,8573,8558,1,0,0,0,8573,8559,1,0,0,0,8573,8560,1,0,0,0,8573,8561,1,0,0,0,8573,8562,1,0,0,0,8573,8564,1,0,0,0,8573,8566,1,0,0,0,8573,8568,1,0,0,0,8573,8570,1,0,0,0,8573,8572,1,0,0,0,8574,1007,1,0,0,0,8575,8576,5,2,0,0,8576,8577,3,1250,625,0,8577,8578,5,3,0,0,8578,8581,1,0,0,0,8579,8581,1,0,0,0,8580,8575,1,0,0,0,8580,8579,1,0,0,0,8581,1009,1,0,0,0,8582,8585,3,1014,507,0,8583,8585,3,1016,508,0,8584,8582,1,0,0,0,8584,8583,1,0,0,0,8585,1011,1,0,0,0,8586,8589,3,1014,507,0,8587,8589,3,1016,508,0,8588,8586,1,0,0,0,8588,8587,1,0,0,0,8589,1013,1,0,0,0,8590,8591,5,382,0,0,8591,8592,3,1024,512,0,8592,8593,5,2,0,0,8593,8594,3,1156,578,0,8594,8595,5,3,0,0,8595,1015,1,0,0,0,8596,8597,5,382,0,0,8597,8598,3,1024,512,0,8598,1017,1,0,0,0,8599,8604,3,1022,511,0,8600,8601,5,2,0,0,8601,8602,3,1250,625,0,8602,8603,5,3,0,0,8603,8605,1,0,0,0,8604,8600,1,0,0,0,8604,8605,1,0,0,0,8605,1019,1,0,0,0,8606,8611,3,1022,511,0,8607,8608,5,2,0,0,8608,8609,3,1250,625,0,8609,8610,5,3,0,0,8610,8612,1,0,0,0,8611,8607,1,0,0,0,8611,8612,1,0,0,0,8612,1021,1,0,0,0,8613,8614,7,42,0,0,8614,8620,3,1024,512,0,8615,8620,5,416,0,0,8616,8617,5,398,0,0,8617,8618,7,43,0,0,8618,8620,3,1024,512,0,8619,8613,1,0,0,0,8619,8615,1,0,0,0,8619,8616,1,0,0,0,8620,1023,1,0,0,0,8621,8624,5,367,0,0,8622,8624,1,0,0,0,8623,8621,1,0,0,0,8623,8622,1,0,0,0,8624,1025,1,0,0,0,8625,8630,7,44,0,0,8626,8627,5,2,0,0,8627,8628,3,1250,625,0,8628,8629,5,3,0,0,8629,8631,1,0,0,0,8630,8626,1,0,0,0,8630,8631,1,0,0,0,8631,8632,1,0,0,0,8632,8633,3,1030,515,0,8633,1027,1,0,0,0,8634,8635,5,396,0,0,8635,1029,1,0,0,0,8636,8637,5,105,0,0,8637,8638,5,411,0,0,8638,8644,5,379,0,0,8639,8640,5,372,0,0,8640,8641,5,411,0,0,8641,8644,5,379,0,0,8642,8644,1,0,0,0,8643,8636,1,0,0,0,8643,8639,1,0,0,0,8643,8642,1,0,0,0,8644,1031,1,0,0,0,8645,8672,5,377,0,0,8646,8672,5,257,0,0,8647,8672,5,176,0,0,8648,8672,5,218,0,0,8649,8672,5,254,0,0,8650,8672,3,1034,517,0,8651,8652,5,377,0,0,8652,8653,5,94,0,0,8653,8672,5,257,0,0,8654,8655,5,176,0,0,8655,8659,5,94,0,0,8656,8660,5,218,0,0,8657,8660,5,254,0,0,8658,8660,3,1034,517,0,8659,8656,1,0,0,0,8659,8657,1,0,0,0,8659,8658,1,0,0,0,8660,8672,1,0,0,0,8661,8662,5,218,0,0,8662,8665,5,94,0,0,8663,8666,5,254,0,0,8664,8666,3,1034,517,0,8665,8663,1,0,0,0,8665,8664,1,0,0,0,8666,8672,1,0,0,0,8667,8668,5,254,0,0,8668,8669,5,94,0,0,8669,8672,3,1034,517,0,8670,8672,1,0,0,0,8671,8645,1,0,0,0,8671,8646,1,0,0,0,8671,8647,1,0,0,0,8671,8648,1,0,0,0,8671,8649,1,0,0,0,8671,8650,1,0,0,0,8671,8651,1,0,0,0,8671,8654,1,0,0,0,8671,8661,1,0,0,0,8671,8667,1,0,0,0,8671,8670,1,0,0,0,8672,1033,1,0,0,0,8673,8678,5,319,0,0,8674,8675,5,2,0,0,8675,8676,3,1250,625,0,8676,8677,5,3,0,0,8677,8679,1,0,0,0,8678,8674,1,0,0,0,8678,8679,1,0,0,0,8679,1035,1,0,0,0,8680,8681,5,197,0,0,8681,8684,3,1038,519,0,8682,8684,1,0,0,0,8683,8680,1,0,0,0,8683,8682,1,0,0,0,8684,1037,1,0,0,0,8685,8686,3,1040,520,0,8686,1039,1,0,0,0,8687,8689,3,1042,521,0,8688,8690,3,1150,575,0,8689,8688,1,0,0,0,8689,8690,1,0,0,0,8690,1041,1,0,0,0,8691,8696,3,1044,522,0,8692,8693,7,45,0,0,8693,8695,3,1044,522,0,8694,8692,1,0,0,0,8695,8698,1,0,0,0,8696,8694,1,0,0,0,8696,8697,1,0,0,0,8697,1043,1,0,0,0,8698,8696,1,0,0,0,8699,8704,3,1046,523,0,8700,8701,5,82,0,0,8701,8703,3,1046,523,0,8702,8700,1,0,0,0,8703,8706,1,0,0,0,8704,8702,1,0,0,0,8704,8705,1,0,0,0,8705,1045,1,0,0,0,8706,8704,1,0,0,0,8707,8712,3,1048,524,0,8708,8709,5,33,0,0,8709,8711,3,1048,524,0,8710,8708,1,0,0,0,8711,8714,1,0,0,0,8712,8710,1,0,0,0,8712,8713,1,0,0,0,8713,1047,1,0,0,0,8714,8712,1,0,0,0,8715,8727,3,1050,525,0,8716,8718,5,77,0,0,8717,8716,1,0,0,0,8717,8718,1,0,0,0,8718,8719,1,0,0,0,8719,8721,5,380,0,0,8720,8722,5,91,0,0,8721,8720,1,0,0,0,8721,8722,1,0,0,0,8722,8723,1,0,0,0,8723,8724,3,1050,525,0,8724,8725,5,33,0,0,8725,8726,3,1050,525,0,8726,8728,1,0,0,0,8727,8717,1,0,0,0,8727,8728,1,0,0,0,8728,1049,1,0,0,0,8729,8735,3,1052,526,0,8730,8732,5,77,0,0,8731,8730,1,0,0,0,8731,8732,1,0,0,0,8732,8733,1,0,0,0,8733,8734,5,68,0,0,8734,8736,3,1182,591,0,8735,8731,1,0,0,0,8735,8736,1,0,0,0,8736,1051,1,0,0,0,8737,8739,5,77,0,0,8738,8737,1,0,0,0,8738,8739,1,0,0,0,8739,8740,1,0,0,0,8740,8741,3,1054,527,0,8741,1053,1,0,0,0,8742,8744,3,1056,528,0,8743,8745,7,46,0,0,8744,8743,1,0,0,0,8744,8745,1,0,0,0,8745,1055,1,0,0,0,8746,8770,3,1058,529,0,8747,8749,5,116,0,0,8748,8750,5,77,0,0,8749,8748,1,0,0,0,8749,8750,1,0,0,0,8750,8768,1,0,0,0,8751,8769,5,78,0,0,8752,8769,5,96,0,0,8753,8769,5,60,0,0,8754,8769,5,358,0,0,8755,8756,5,56,0,0,8756,8757,5,64,0,0,8757,8769,3,1038,519,0,8758,8759,5,268,0,0,8759,8760,5,2,0,0,8760,8761,3,1162,581,0,8761,8762,5,3,0,0,8762,8769,1,0,0,0,8763,8769,5,188,0,0,8764,8766,3,1172,586,0,8765,8764,1,0,0,0,8765,8766,1,0,0,0,8766,8767,1,0,0,0,8767,8769,5,478,0,0,8768,8751,1,0,0,0,8768,8752,1,0,0,0,8768,8753,1,0,0,0,8768,8754,1,0,0,0,8768,8755,1,0,0,0,8768,8758,1,0,0,0,8768,8763,1,0,0,0,8768,8765,1,0,0,0,8769,8771,1,0,0,0,8770,8747,1,0,0,0,8770,8771,1,0,0,0,8771,1057,1,0,0,0,8772,8784,3,1060,530,0,8773,8774,7,47,0,0,8774,8785,3,1060,530,0,8775,8776,3,1154,577,0,8776,8782,3,1144,572,0,8777,8783,3,860,430,0,8778,8779,5,2,0,0,8779,8780,3,1038,519,0,8780,8781,5,3,0,0,8781,8783,1,0,0,0,8782,8777,1,0,0,0,8782,8778,1,0,0,0,8783,8785,1,0,0,0,8784,8773,1,0,0,0,8784,8775,1,0,0,0,8784,8785,1,0,0,0,8785,1059,1,0,0,0,8786,8799,3,1062,531,0,8787,8789,5,77,0,0,8788,8787,1,0,0,0,8788,8789,1,0,0,0,8789,8794,1,0,0,0,8790,8795,5,120,0,0,8791,8795,5,114,0,0,8792,8793,5,127,0,0,8793,8795,5,94,0,0,8794,8790,1,0,0,0,8794,8791,1,0,0,0,8794,8792,1,0,0,0,8795,8796,1,0,0,0,8796,8797,3,1062,531,0,8797,8798,3,1036,518,0,8798,8800,1,0,0,0,8799,8788,1,0,0,0,8799,8800,1,0,0,0,8800,1061,1,0,0,0,8801,8807,3,1064,532,0,8802,8803,3,1150,575,0,8803,8804,3,1064,532,0,8804,8806,1,0,0,0,8805,8802,1,0,0,0,8806,8809,1,0,0,0,8807,8805,1,0,0,0,8807,8808,1,0,0,0,8808,1063,1,0,0,0,8809,8807,1,0,0,0,8810,8812,3,1150,575,0,8811,8810,1,0,0,0,8811,8812,1,0,0,0,8812,8813,1,0,0,0,8813,8814,3,1066,533,0,8814,1065,1,0,0,0,8815,8820,3,1068,534,0,8816,8817,7,48,0,0,8817,8819,3,1068,534,0,8818,8816,1,0,0,0,8819,8822,1,0,0,0,8820,8818,1,0,0,0,8820,8821,1,0,0,0,8821,1067,1,0,0,0,8822,8820,1,0,0,0,8823,8828,3,1070,535,0,8824,8825,7,49,0,0,8825,8827,3,1070,535,0,8826,8824,1,0,0,0,8827,8830,1,0,0,0,8828,8826,1,0,0,0,8828,8829,1,0,0,0,8829,1069,1,0,0,0,8830,8828,1,0,0,0,8831,8834,3,1072,536,0,8832,8833,5,15,0,0,8833,8835,3,1038,519,0,8834,8832,1,0,0,0,8834,8835,1,0,0,0,8835,1071,1,0,0,0,8836,8838,7,48,0,0,8837,8836,1,0,0,0,8837,8838,1,0,0,0,8838,8839,1,0,0,0,8839,8840,3,1074,537,0,8840,1073,1,0,0,0,8841,8846,3,1076,538,0,8842,8843,5,142,0,0,8843,8844,5,411,0,0,8844,8845,5,379,0,0,8845,8847,3,1038,519,0,8846,8842,1,0,0,0,8846,8847,1,0,0,0,8847,1075,1,0,0,0,8848,8851,3,1078,539,0,8849,8850,5,43,0,0,8850,8852,3,470,235,0,8851,8849,1,0,0,0,8851,8852,1,0,0,0,8852,1077,1,0,0,0,8853,8858,3,1082,541,0,8854,8855,5,26,0,0,8855,8857,3,996,498,0,8856,8854,1,0,0,0,8857,8860,1,0,0,0,8858,8856,1,0,0,0,8858,8859,1,0,0,0,8859,1079,1,0,0,0,8860,8858,1,0,0,0,8861,8862,6,540,-1,0,8862,8869,3,1082,541,0,8863,8864,7,48,0,0,8864,8869,3,1080,540,9,8865,8866,3,1150,575,0,8866,8867,3,1080,540,3,8867,8869,1,0,0,0,8868,8861,1,0,0,0,8868,8863,1,0,0,0,8868,8865,1,0,0,0,8869,8909,1,0,0,0,8870,8871,10,8,0,0,8871,8872,5,15,0,0,8872,8908,3,1080,540,9,8873,8874,10,7,0,0,8874,8875,7,49,0,0,8875,8908,3,1080,540,8,8876,8877,10,6,0,0,8877,8878,7,48,0,0,8878,8908,3,1080,540,7,8879,8880,10,5,0,0,8880,8881,3,1150,575,0,8881,8882,3,1080,540,6,8882,8908,1,0,0,0,8883,8884,10,4,0,0,8884,8885,7,47,0,0,8885,8908,3,1080,540,5,8886,8887,10,10,0,0,8887,8888,5,26,0,0,8888,8908,3,996,498,0,8889,8890,10,2,0,0,8890,8908,3,1150,575,0,8891,8892,10,1,0,0,8892,8894,5,116,0,0,8893,8895,5,77,0,0,8894,8893,1,0,0,0,8894,8895,1,0,0,0,8895,8905,1,0,0,0,8896,8897,5,56,0,0,8897,8898,5,64,0,0,8898,8906,3,1080,540,0,8899,8900,5,268,0,0,8900,8901,5,2,0,0,8901,8902,3,1162,581,0,8902,8903,5,3,0,0,8903,8906,1,0,0,0,8904,8906,5,188,0,0,8905,8896,1,0,0,0,8905,8899,1,0,0,0,8905,8904,1,0,0,0,8906,8908,1,0,0,0,8907,8870,1,0,0,0,8907,8873,1,0,0,0,8907,8876,1,0,0,0,8907,8879,1,0,0,0,8907,8883,1,0,0,0,8907,8886,1,0,0,0,8907,8889,1,0,0,0,8907,8891,1,0,0,0,8908,8911,1,0,0,0,8909,8907,1,0,0,0,8909,8910,1,0,0,0,8910,1081,1,0,0,0,8911,8909,1,0,0,0,8912,8913,5,389,0,0,8913,8949,3,860,430,0,8914,8917,5,35,0,0,8915,8918,3,860,430,0,8916,8918,3,1164,582,0,8917,8915,1,0,0,0,8917,8916,1,0,0,0,8918,8949,1,0,0,0,8919,8920,5,28,0,0,8920,8949,3,1200,600,0,8921,8922,5,470,0,0,8922,8923,5,2,0,0,8923,8924,3,1156,578,0,8924,8925,5,3,0,0,8925,8949,1,0,0,0,8926,8927,5,98,0,0,8927,8949,3,860,430,0,8928,8949,3,1194,597,0,8929,8949,3,1242,621,0,8930,8949,3,1084,542,0,8931,8932,5,2,0,0,8932,8933,3,1038,519,0,8933,8934,5,3,0,0,8934,8935,3,1200,600,0,8935,8949,1,0,0,0,8936,8949,3,1184,592,0,8937,8949,3,1088,544,0,8938,8940,3,860,430,0,8939,8941,3,1198,599,0,8940,8939,1,0,0,0,8940,8941,1,0,0,0,8941,8949,1,0,0,0,8942,8949,3,1140,570,0,8943,8949,3,1142,571,0,8944,8945,3,1138,569,0,8945,8946,5,125,0,0,8946,8947,3,1138,569,0,8947,8949,1,0,0,0,8948,8912,1,0,0,0,8948,8914,1,0,0,0,8948,8919,1,0,0,0,8948,8921,1,0,0,0,8948,8926,1,0,0,0,8948,8928,1,0,0,0,8948,8929,1,0,0,0,8948,8930,1,0,0,0,8948,8931,1,0,0,0,8948,8936,1,0,0,0,8948,8937,1,0,0,0,8948,8938,1,0,0,0,8948,8942,1,0,0,0,8948,8943,1,0,0,0,8948,8944,1,0,0,0,8949,1083,1,0,0,0,8950,8951,5,661,0,0,8951,1085,1,0,0,0,8952,8953,3,1240,620,0,8953,8972,5,2,0,0,8954,8958,3,1158,579,0,8955,8956,5,6,0,0,8956,8957,5,101,0,0,8957,8959,3,1160,580,0,8958,8955,1,0,0,0,8958,8959,1,0,0,0,8959,8960,1,0,0,0,8960,8961,3,890,445,0,8961,8973,1,0,0,0,8962,8963,5,101,0,0,8963,8964,3,1160,580,0,8964,8965,3,890,445,0,8965,8973,1,0,0,0,8966,8967,7,50,0,0,8967,8968,3,1158,579,0,8968,8969,3,890,445,0,8969,8973,1,0,0,0,8970,8973,5,9,0,0,8971,8973,1,0,0,0,8972,8954,1,0,0,0,8972,8962,1,0,0,0,8972,8966,1,0,0,0,8972,8970,1,0,0,0,8972,8971,1,0,0,0,8973,8974,1,0,0,0,8974,8975,5,3,0,0,8975,1087,1,0,0,0,8976,8977,3,1086,543,0,8977,8978,3,1112,556,0,8978,8979,3,1114,557,0,8979,8980,3,1122,561,0,8980,8983,1,0,0,0,8981,8983,3,1092,546,0,8982,8976,1,0,0,0,8982,8981,1,0,0,0,8983,1089,1,0,0,0,8984,8987,3,1086,543,0,8985,8987,3,1092,546,0,8986,8984,1,0,0,0,8986,8985,1,0,0,0,8987,1091,1,0,0,0,8988,8989,5,108,0,0,8989,8990,5,62,0,0,8990,8991,5,2,0,0,8991,8992,3,1038,519,0,8992,8993,5,3,0,0,8993,9166,1,0,0,0,8994,9166,5,48,0,0,8995,9e3,5,50,0,0,8996,8997,5,2,0,0,8997,8998,3,1250,625,0,8998,8999,5,3,0,0,8999,9001,1,0,0,0,9e3,8996,1,0,0,0,9e3,9001,1,0,0,0,9001,9166,1,0,0,0,9002,9007,5,51,0,0,9003,9004,5,2,0,0,9004,9005,3,1250,625,0,9005,9006,5,3,0,0,9006,9008,1,0,0,0,9007,9003,1,0,0,0,9007,9008,1,0,0,0,9008,9166,1,0,0,0,9009,9014,5,75,0,0,9010,9011,5,2,0,0,9011,9012,3,1250,625,0,9012,9013,5,3,0,0,9013,9015,1,0,0,0,9014,9010,1,0,0,0,9014,9015,1,0,0,0,9015,9166,1,0,0,0,9016,9021,5,76,0,0,9017,9018,5,2,0,0,9018,9019,3,1250,625,0,9019,9020,5,3,0,0,9020,9022,1,0,0,0,9021,9017,1,0,0,0,9021,9022,1,0,0,0,9022,9166,1,0,0,0,9023,9166,5,49,0,0,9024,9166,5,52,0,0,9025,9166,5,89,0,0,9026,9166,5,99,0,0,9027,9166,5,47,0,0,9028,9166,5,111,0,0,9029,9030,5,41,0,0,9030,9031,5,2,0,0,9031,9032,3,1038,519,0,9032,9033,5,36,0,0,9033,9034,3,996,498,0,9034,9035,5,3,0,0,9035,9166,1,0,0,0,9036,9037,5,390,0,0,9037,9038,5,2,0,0,9038,9039,3,1168,584,0,9039,9040,5,3,0,0,9040,9166,1,0,0,0,9041,9042,5,489,0,0,9042,9043,5,2,0,0,9043,9046,3,1038,519,0,9044,9045,5,6,0,0,9045,9047,3,1172,586,0,9046,9044,1,0,0,0,9046,9047,1,0,0,0,9047,9048,1,0,0,0,9048,9049,5,3,0,0,9049,9166,1,0,0,0,9050,9051,5,403,0,0,9051,9052,5,2,0,0,9052,9053,3,1174,587,0,9053,9054,5,3,0,0,9054,9166,1,0,0,0,9055,9056,5,404,0,0,9056,9057,5,2,0,0,9057,9058,3,1176,588,0,9058,9059,5,3,0,0,9059,9166,1,0,0,0,9060,9061,5,410,0,0,9061,9062,5,2,0,0,9062,9063,3,1178,589,0,9063,9064,5,3,0,0,9064,9166,1,0,0,0,9065,9066,5,413,0,0,9066,9067,5,2,0,0,9067,9068,3,1038,519,0,9068,9069,5,36,0,0,9069,9070,3,996,498,0,9070,9071,5,3,0,0,9071,9166,1,0,0,0,9072,9073,5,414,0,0,9073,9075,5,2,0,0,9074,9076,7,51,0,0,9075,9074,1,0,0,0,9075,9076,1,0,0,0,9076,9077,1,0,0,0,9077,9078,3,1180,590,0,9078,9079,5,3,0,0,9079,9166,1,0,0,0,9080,9081,5,401,0,0,9081,9082,5,2,0,0,9082,9083,3,1038,519,0,9083,9084,5,6,0,0,9084,9085,3,1038,519,0,9085,9086,5,3,0,0,9086,9166,1,0,0,0,9087,9088,5,386,0,0,9088,9089,5,2,0,0,9089,9090,3,1156,578,0,9090,9091,5,3,0,0,9091,9166,1,0,0,0,9092,9093,5,392,0,0,9093,9094,5,2,0,0,9094,9095,3,1156,578,0,9095,9096,5,3,0,0,9096,9166,1,0,0,0,9097,9098,5,397,0,0,9098,9099,5,2,0,0,9099,9100,3,1156,578,0,9100,9101,5,3,0,0,9101,9166,1,0,0,0,9102,9103,5,425,0,0,9103,9104,5,2,0,0,9104,9105,3,1156,578,0,9105,9106,5,3,0,0,9106,9166,1,0,0,0,9107,9108,5,426,0,0,9108,9109,5,2,0,0,9109,9110,5,259,0,0,9110,9116,3,1272,636,0,9111,9114,5,6,0,0,9112,9115,3,1098,549,0,9113,9115,3,1156,578,0,9114,9112,1,0,0,0,9114,9113,1,0,0,0,9115,9117,1,0,0,0,9116,9111,1,0,0,0,9116,9117,1,0,0,0,9117,9118,1,0,0,0,9118,9119,5,3,0,0,9119,9166,1,0,0,0,9120,9121,5,427,0,0,9121,9122,5,2,0,0,9122,9123,3,1082,541,0,9123,9124,3,1108,554,0,9124,9125,5,3,0,0,9125,9166,1,0,0,0,9126,9127,5,428,0,0,9127,9128,5,2,0,0,9128,9129,3,1100,550,0,9129,9130,5,3,0,0,9130,9166,1,0,0,0,9131,9132,5,429,0,0,9132,9133,5,2,0,0,9133,9134,3,1104,552,0,9134,9135,3,1038,519,0,9135,9136,3,1106,553,0,9136,9137,5,3,0,0,9137,9166,1,0,0,0,9138,9139,5,430,0,0,9139,9140,5,2,0,0,9140,9141,5,259,0,0,9141,9144,3,1272,636,0,9142,9143,5,6,0,0,9143,9145,3,1038,519,0,9144,9142,1,0,0,0,9144,9145,1,0,0,0,9145,9146,1,0,0,0,9146,9147,5,3,0,0,9147,9166,1,0,0,0,9148,9149,5,431,0,0,9149,9150,5,2,0,0,9150,9151,5,376,0,0,9151,9152,3,1038,519,0,9152,9153,5,6,0,0,9153,9154,3,1094,547,0,9154,9155,3,1096,548,0,9155,9156,5,3,0,0,9156,9166,1,0,0,0,9157,9158,5,432,0,0,9158,9159,5,2,0,0,9159,9160,3,1104,552,0,9160,9161,3,1038,519,0,9161,9162,5,36,0,0,9162,9163,3,998,499,0,9163,9164,5,3,0,0,9164,9166,1,0,0,0,9165,8988,1,0,0,0,9165,8994,1,0,0,0,9165,8995,1,0,0,0,9165,9002,1,0,0,0,9165,9009,1,0,0,0,9165,9016,1,0,0,0,9165,9023,1,0,0,0,9165,9024,1,0,0,0,9165,9025,1,0,0,0,9165,9026,1,0,0,0,9165,9027,1,0,0,0,9165,9028,1,0,0,0,9165,9029,1,0,0,0,9165,9036,1,0,0,0,9165,9041,1,0,0,0,9165,9050,1,0,0,0,9165,9055,1,0,0,0,9165,9060,1,0,0,0,9165,9065,1,0,0,0,9165,9072,1,0,0,0,9165,9080,1,0,0,0,9165,9087,1,0,0,0,9165,9092,1,0,0,0,9165,9097,1,0,0,0,9165,9102,1,0,0,0,9165,9107,1,0,0,0,9165,9120,1,0,0,0,9165,9126,1,0,0,0,9165,9131,1,0,0,0,9165,9138,1,0,0,0,9165,9148,1,0,0,0,9165,9157,1,0,0,0,9166,1093,1,0,0,0,9167,9168,5,368,0,0,9168,9173,3,1038,519,0,9169,9170,5,368,0,0,9170,9171,5,262,0,0,9171,9173,5,450,0,0,9172,9167,1,0,0,0,9172,9169,1,0,0,0,9173,1095,1,0,0,0,9174,9175,5,6,0,0,9175,9176,5,332,0,0,9176,9186,5,378,0,0,9177,9178,5,6,0,0,9178,9179,5,332,0,0,9179,9186,5,262,0,0,9180,9181,5,6,0,0,9181,9182,5,332,0,0,9182,9183,5,262,0,0,9183,9186,5,450,0,0,9184,9186,1,0,0,0,9185,9174,1,0,0,0,9185,9177,1,0,0,0,9185,9180,1,0,0,0,9185,9184,1,0,0,0,9186,1097,1,0,0,0,9187,9188,5,417,0,0,9188,9189,5,2,0,0,9189,9190,3,1100,550,0,9190,9191,5,3,0,0,9191,1099,1,0,0,0,9192,9197,3,1102,551,0,9193,9194,5,6,0,0,9194,9196,3,1102,551,0,9195,9193,1,0,0,0,9196,9199,1,0,0,0,9197,9195,1,0,0,0,9197,9198,1,0,0,0,9198,1101,1,0,0,0,9199,9197,1,0,0,0,9200,9203,3,1038,519,0,9201,9202,5,36,0,0,9202,9204,3,1272,636,0,9203,9201,1,0,0,0,9203,9204,1,0,0,0,9204,1103,1,0,0,0,9205,9206,7,52,0,0,9206,1105,1,0,0,0,9207,9208,5,285,0,0,9208,9213,5,371,0,0,9209,9210,5,340,0,0,9210,9213,5,371,0,0,9211,9213,1,0,0,0,9212,9207,1,0,0,0,9212,9209,1,0,0,0,9212,9211,1,0,0,0,9213,1107,1,0,0,0,9214,9215,5,279,0,0,9215,9230,3,1082,541,0,9216,9217,5,279,0,0,9217,9218,3,1082,541,0,9218,9219,3,1110,555,0,9219,9230,1,0,0,0,9220,9221,5,279,0,0,9221,9222,3,1110,555,0,9222,9223,3,1082,541,0,9223,9230,1,0,0,0,9224,9225,5,279,0,0,9225,9226,3,1110,555,0,9226,9227,3,1082,541,0,9227,9228,3,1110,555,0,9228,9230,1,0,0,0,9229,9214,1,0,0,0,9229,9216,1,0,0,0,9229,9220,1,0,0,0,9229,9224,1,0,0,0,9230,1109,1,0,0,0,9231,9232,5,147,0,0,9232,9233,7,53,0,0,9233,1111,1,0,0,0,9234,9235,5,479,0,0,9235,9236,5,66,0,0,9236,9237,5,2,0,0,9237,9238,3,892,446,0,9238,9239,5,3,0,0,9239,9242,1,0,0,0,9240,9242,1,0,0,0,9241,9234,1,0,0,0,9241,9240,1,0,0,0,9242,1113,1,0,0,0,9243,9244,5,480,0,0,9244,9245,5,2,0,0,9245,9246,5,103,0,0,9246,9247,3,1038,519,0,9247,9248,5,3,0,0,9248,9251,1,0,0,0,9249,9251,1,0,0,0,9250,9243,1,0,0,0,9250,9249,1,0,0,0,9251,1115,1,0,0,0,9252,9253,5,104,0,0,9253,9256,3,1118,559,0,9254,9256,1,0,0,0,9255,9252,1,0,0,0,9255,9254,1,0,0,0,9256,1117,1,0,0,0,9257,9262,3,1120,560,0,9258,9259,5,6,0,0,9259,9261,3,1120,560,0,9260,9258,1,0,0,0,9261,9264,1,0,0,0,9262,9260,1,0,0,0,9262,9263,1,0,0,0,9263,1119,1,0,0,0,9264,9262,1,0,0,0,9265,9266,3,1264,632,0,9266,9267,5,36,0,0,9267,9268,3,1124,562,0,9268,1121,1,0,0,0,9269,9272,5,124,0,0,9270,9273,3,1124,562,0,9271,9273,3,1264,632,0,9272,9270,1,0,0,0,9272,9271,1,0,0,0,9273,9276,1,0,0,0,9274,9276,1,0,0,0,9275,9269,1,0,0,0,9275,9274,1,0,0,0,9276,1123,1,0,0,0,9277,9278,5,2,0,0,9278,9279,3,1126,563,0,9279,9280,3,1128,564,0,9280,9281,3,890,445,0,9281,9282,3,1130,565,0,9282,9283,5,3,0,0,9283,1125,1,0,0,0,9284,9287,3,1264,632,0,9285,9287,1,0,0,0,9286,9284,1,0,0,0,9286,9285,1,0,0,0,9287,1127,1,0,0,0,9288,9289,5,278,0,0,9289,9290,5,147,0,0,9290,9293,3,1156,578,0,9291,9293,1,0,0,0,9292,9288,1,0,0,0,9292,9291,1,0,0,0,9293,1129,1,0,0,0,9294,9295,5,292,0,0,9295,9296,3,1132,566,0,9296,9297,3,1136,568,0,9297,9308,1,0,0,0,9298,9299,5,313,0,0,9299,9300,3,1132,566,0,9300,9301,3,1136,568,0,9301,9308,1,0,0,0,9302,9303,5,481,0,0,9303,9304,3,1132,566,0,9304,9305,3,1136,568,0,9305,9308,1,0,0,0,9306,9308,1,0,0,0,9307,9294,1,0,0,0,9307,9298,1,0,0,0,9307,9302,1,0,0,0,9307,9306,1,0,0,0,9308,1131,1,0,0,0,9309,9316,3,1134,567,0,9310,9311,5,380,0,0,9311,9312,3,1134,567,0,9312,9313,5,33,0,0,9313,9314,3,1134,567,0,9314,9316,1,0,0,0,9315,9309,1,0,0,0,9315,9310,1,0,0,0,9316,1133,1,0,0,0,9317,9318,5,355,0,0,9318,9325,7,54,0,0,9319,9320,5,434,0,0,9320,9325,5,407,0,0,9321,9322,3,1038,519,0,9322,9323,7,54,0,0,9323,9325,1,0,0,0,9324,9317,1,0,0,0,9324,9319,1,0,0,0,9324,9321,1,0,0,0,9325,1135,1,0,0,0,9326,9333,5,199,0,0,9327,9328,5,434,0,0,9328,9334,5,407,0,0,9329,9334,5,66,0,0,9330,9334,5,467,0,0,9331,9332,5,262,0,0,9332,9334,5,482,0,0,9333,9327,1,0,0,0,9333,9329,1,0,0,0,9333,9330,1,0,0,0,9333,9331,1,0,0,0,9334,9337,1,0,0,0,9335,9337,1,0,0,0,9336,9326,1,0,0,0,9336,9335,1,0,0,0,9337,1137,1,0,0,0,9338,9339,5,407,0,0,9339,9341,5,2,0,0,9340,9342,3,1156,578,0,9341,9340,1,0,0,0,9341,9342,1,0,0,0,9342,9343,1,0,0,0,9343,9351,5,3,0,0,9344,9345,5,2,0,0,9345,9346,3,1156,578,0,9346,9347,5,6,0,0,9347,9348,3,1038,519,0,9348,9349,5,3,0,0,9349,9351,1,0,0,0,9350,9338,1,0,0,0,9350,9344,1,0,0,0,9351,1139,1,0,0,0,9352,9353,5,407,0,0,9353,9355,5,2,0,0,9354,9356,3,1156,578,0,9355,9354,1,0,0,0,9355,9356,1,0,0,0,9356,9357,1,0,0,0,9357,9358,5,3,0,0,9358,1141,1,0,0,0,9359,9360,5,2,0,0,9360,9361,3,1156,578,0,9361,9362,5,6,0,0,9362,9363,3,1038,519,0,9363,9364,5,3,0,0,9364,1143,1,0,0,0,9365,9366,7,55,0,0,9366,1145,1,0,0,0,9367,9370,5,29,0,0,9368,9370,3,1148,574,0,9369,9367,1,0,0,0,9369,9368,1,0,0,0,9370,1147,1,0,0,0,9371,9372,7,56,0,0,9372,1149,1,0,0,0,9373,9380,5,29,0,0,9374,9375,5,271,0,0,9375,9376,5,2,0,0,9376,9377,3,610,305,0,9377,9378,5,3,0,0,9378,9380,1,0,0,0,9379,9373,1,0,0,0,9379,9374,1,0,0,0,9380,1151,1,0,0,0,9381,9388,3,1146,573,0,9382,9383,5,271,0,0,9383,9384,5,2,0,0,9384,9385,3,610,305,0,9385,9386,5,3,0,0,9386,9388,1,0,0,0,9387,9381,1,0,0,0,9387,9382,1,0,0,0,9388,1153,1,0,0,0,9389,9402,3,1146,573,0,9390,9391,5,271,0,0,9391,9392,5,2,0,0,9392,9393,3,610,305,0,9393,9394,5,3,0,0,9394,9402,1,0,0,0,9395,9402,5,120,0,0,9396,9397,5,77,0,0,9397,9402,5,120,0,0,9398,9402,5,114,0,0,9399,9400,5,77,0,0,9400,9402,5,114,0,0,9401,9389,1,0,0,0,9401,9390,1,0,0,0,9401,9395,1,0,0,0,9401,9396,1,0,0,0,9401,9398,1,0,0,0,9401,9399,1,0,0,0,9402,1155,1,0,0,0,9403,9408,3,1038,519,0,9404,9405,5,6,0,0,9405,9407,3,1038,519,0,9406,9404,1,0,0,0,9407,9410,1,0,0,0,9408,9406,1,0,0,0,9408,9409,1,0,0,0,9409,1157,1,0,0,0,9410,9408,1,0,0,0,9411,9416,3,1160,580,0,9412,9413,5,6,0,0,9413,9415,3,1160,580,0,9414,9412,1,0,0,0,9415,9418,1,0,0,0,9416,9414,1,0,0,0,9416,9417,1,0,0,0,9417,1159,1,0,0,0,9418,9416,1,0,0,0,9419,9425,3,1038,519,0,9420,9421,3,570,285,0,9421,9422,7,57,0,0,9422,9423,3,1038,519,0,9423,9425,1,0,0,0,9424,9419,1,0,0,0,9424,9420,1,0,0,0,9425,1161,1,0,0,0,9426,9431,3,996,498,0,9427,9428,5,6,0,0,9428,9430,3,996,498,0,9429,9427,1,0,0,0,9430,9433,1,0,0,0,9431,9429,1,0,0,0,9431,9432,1,0,0,0,9432,1163,1,0,0,0,9433,9431,1,0,0,0,9434,9437,5,4,0,0,9435,9438,3,1156,578,0,9436,9438,3,1166,583,0,9437,9435,1,0,0,0,9437,9436,1,0,0,0,9437,9438,1,0,0,0,9438,9439,1,0,0,0,9439,9440,5,5,0,0,9440,1165,1,0,0,0,9441,9446,3,1164,582,0,9442,9443,5,6,0,0,9443,9445,3,1164,582,0,9444,9442,1,0,0,0,9445,9448,1,0,0,0,9446,9444,1,0,0,0,9446,9447,1,0,0,0,9447,1167,1,0,0,0,9448,9446,1,0,0,0,9449,9450,3,1170,585,0,9450,9451,5,64,0,0,9451,9452,3,1038,519,0,9452,9455,1,0,0,0,9453,9455,1,0,0,0,9454,9449,1,0,0,0,9454,9453,1,0,0,0,9455,1169,1,0,0,0,9456,9465,3,1274,637,0,9457,9465,5,377,0,0,9458,9465,5,257,0,0,9459,9465,5,176,0,0,9460,9465,5,218,0,0,9461,9465,5,254,0,0,9462,9465,5,319,0,0,9463,9465,3,1252,626,0,9464,9456,1,0,0,0,9464,9457,1,0,0,0,9464,9458,1,0,0,0,9464,9459,1,0,0,0,9464,9460,1,0,0,0,9464,9461,1,0,0,0,9464,9462,1,0,0,0,9464,9463,1,0,0,0,9465,1171,1,0,0,0,9466,9467,7,58,0,0,9467,1173,1,0,0,0,9468,9469,3,1038,519,0,9469,9470,5,84,0,0,9470,9471,3,1038,519,0,9471,9472,5,64,0,0,9472,9475,3,1038,519,0,9473,9474,5,62,0,0,9474,9476,3,1038,519,0,9475,9473,1,0,0,0,9475,9476,1,0,0,0,9476,1175,1,0,0,0,9477,9478,3,1080,540,0,9478,9479,5,68,0,0,9479,9480,3,1080,540,0,9480,9483,1,0,0,0,9481,9483,1,0,0,0,9482,9477,1,0,0,0,9482,9481,1,0,0,0,9483,1177,1,0,0,0,9484,9485,3,1038,519,0,9485,9486,5,64,0,0,9486,9487,3,1038,519,0,9487,9488,5,62,0,0,9488,9489,3,1038,519,0,9489,9512,1,0,0,0,9490,9491,3,1038,519,0,9491,9492,5,62,0,0,9492,9493,3,1038,519,0,9493,9494,5,64,0,0,9494,9495,3,1038,519,0,9495,9512,1,0,0,0,9496,9497,3,1038,519,0,9497,9498,5,64,0,0,9498,9499,3,1038,519,0,9499,9512,1,0,0,0,9500,9501,3,1038,519,0,9501,9502,5,62,0,0,9502,9503,3,1038,519,0,9503,9512,1,0,0,0,9504,9505,3,1038,519,0,9505,9506,5,127,0,0,9506,9507,3,1038,519,0,9507,9508,5,197,0,0,9508,9509,3,1038,519,0,9509,9512,1,0,0,0,9510,9512,3,1156,578,0,9511,9484,1,0,0,0,9511,9490,1,0,0,0,9511,9496,1,0,0,0,9511,9500,1,0,0,0,9511,9504,1,0,0,0,9511,9510,1,0,0,0,9512,1179,1,0,0,0,9513,9514,3,1038,519,0,9514,9515,5,64,0,0,9515,9516,3,1156,578,0,9516,9521,1,0,0,0,9517,9518,5,64,0,0,9518,9521,3,1156,578,0,9519,9521,3,1156,578,0,9520,9513,1,0,0,0,9520,9517,1,0,0,0,9520,9519,1,0,0,0,9521,1181,1,0,0,0,9522,9528,3,860,430,0,9523,9524,5,2,0,0,9524,9525,3,1156,578,0,9525,9526,5,3,0,0,9526,9528,1,0,0,0,9527,9522,1,0,0,0,9527,9523,1,0,0,0,9528,1183,1,0,0,0,9529,9530,5,40,0,0,9530,9531,3,1192,596,0,9531,9532,3,1186,593,0,9532,9533,3,1190,595,0,9533,9534,5,454,0,0,9534,1185,1,0,0,0,9535,9537,3,1188,594,0,9536,9535,1,0,0,0,9537,9538,1,0,0,0,9538,9536,1,0,0,0,9538,9539,1,0,0,0,9539,1187,1,0,0,0,9540,9541,5,102,0,0,9541,9542,3,1038,519,0,9542,9543,5,93,0,0,9543,9544,3,1038,519,0,9544,1189,1,0,0,0,9545,9546,5,58,0,0,9546,9549,3,1038,519,0,9547,9549,1,0,0,0,9548,9545,1,0,0,0,9548,9547,1,0,0,0,9549,1191,1,0,0,0,9550,9553,3,1038,519,0,9551,9553,1,0,0,0,9552,9550,1,0,0,0,9552,9551,1,0,0,0,9553,1193,1,0,0,0,9554,9556,3,1264,632,0,9555,9557,3,1198,599,0,9556,9555,1,0,0,0,9556,9557,1,0,0,0,9557,1195,1,0,0,0,9558,9561,5,11,0,0,9559,9562,3,1236,618,0,9560,9562,5,9,0,0,9561,9559,1,0,0,0,9561,9560,1,0,0,0,9562,9576,1,0,0,0,9563,9572,5,4,0,0,9564,9573,3,1038,519,0,9565,9567,3,1038,519,0,9566,9565,1,0,0,0,9566,9567,1,0,0,0,9567,9568,1,0,0,0,9568,9570,5,8,0,0,9569,9571,3,1038,519,0,9570,9569,1,0,0,0,9570,9571,1,0,0,0,9571,9573,1,0,0,0,9572,9564,1,0,0,0,9572,9566,1,0,0,0,9573,9574,1,0,0,0,9574,9576,5,5,0,0,9575,9558,1,0,0,0,9575,9563,1,0,0,0,9576,1197,1,0,0,0,9577,9579,3,1196,598,0,9578,9577,1,0,0,0,9579,9580,1,0,0,0,9580,9578,1,0,0,0,9580,9581,1,0,0,0,9581,1199,1,0,0,0,9582,9584,3,1196,598,0,9583,9582,1,0,0,0,9584,9587,1,0,0,0,9585,9583,1,0,0,0,9585,9586,1,0,0,0,9586,1201,1,0,0,0,9587,9585,1,0,0,0,9588,9591,3,1204,602,0,9589,9591,1,0,0,0,9590,9588,1,0,0,0,9590,9589,1,0,0,0,9591,1203,1,0,0,0,9592,9597,3,1206,603,0,9593,9594,5,6,0,0,9594,9596,3,1206,603,0,9595,9593,1,0,0,0,9596,9599,1,0,0,0,9597,9595,1,0,0,0,9597,9598,1,0,0,0,9598,1205,1,0,0,0,9599,9597,1,0,0,0,9600,9609,5,9,0,0,9601,9606,3,1038,519,0,9602,9603,5,36,0,0,9603,9607,3,1272,636,0,9604,9607,3,1274,637,0,9605,9607,1,0,0,0,9606,9602,1,0,0,0,9606,9604,1,0,0,0,9606,9605,1,0,0,0,9607,9609,1,0,0,0,9608,9600,1,0,0,0,9608,9601,1,0,0,0,9609,1207,1,0,0,0,9610,9615,3,1230,615,0,9611,9612,5,6,0,0,9612,9614,3,1230,615,0,9613,9611,1,0,0,0,9614,9617,1,0,0,0,9615,9613,1,0,0,0,9615,9616,1,0,0,0,9616,1209,1,0,0,0,9617,9615,1,0,0,0,9618,9619,3,1234,617,0,9619,1211,1,0,0,0,9620,9625,3,1210,605,0,9621,9622,5,6,0,0,9622,9624,3,1210,605,0,9623,9621,1,0,0,0,9624,9627,1,0,0,0,9625,9623,1,0,0,0,9625,9626,1,0,0,0,9626,1213,1,0,0,0,9627,9625,1,0,0,0,9628,9629,3,1234,617,0,9629,1215,1,0,0,0,9630,9635,3,1214,607,0,9631,9632,5,6,0,0,9632,9634,3,1214,607,0,9633,9631,1,0,0,0,9634,9637,1,0,0,0,9635,9633,1,0,0,0,9635,9636,1,0,0,0,9636,1217,1,0,0,0,9637,9635,1,0,0,0,9638,9639,3,1230,615,0,9639,1219,1,0,0,0,9640,9645,3,1218,609,0,9641,9642,5,6,0,0,9642,9644,3,1218,609,0,9643,9641,1,0,0,0,9644,9647,1,0,0,0,9645,9643,1,0,0,0,9645,9646,1,0,0,0,9646,1221,1,0,0,0,9647,9645,1,0,0,0,9648,9649,3,1234,617,0,9649,1223,1,0,0,0,9650,9651,3,1234,617,0,9651,1225,1,0,0,0,9652,9653,3,1230,615,0,9653,1227,1,0,0,0,9654,9659,3,1226,613,0,9655,9656,5,6,0,0,9656,9658,3,1226,613,0,9657,9655,1,0,0,0,9658,9661,1,0,0,0,9659,9657,1,0,0,0,9659,9660,1,0,0,0,9660,1229,1,0,0,0,9661,9659,1,0,0,0,9662,9664,3,1264,632,0,9663,9665,3,1198,599,0,9664,9663,1,0,0,0,9664,9665,1,0,0,0,9665,1231,1,0,0,0,9666,9671,3,1234,617,0,9667,9668,5,6,0,0,9668,9670,3,1234,617,0,9669,9667,1,0,0,0,9670,9673,1,0,0,0,9671,9669,1,0,0,0,9671,9672,1,0,0,0,9672,1233,1,0,0,0,9673,9671,1,0,0,0,9674,9675,3,1264,632,0,9675,1235,1,0,0,0,9676,9677,3,1272,636,0,9677,1237,1,0,0,0,9678,9679,3,1252,626,0,9679,1239,1,0,0,0,9680,9688,3,1286,643,0,9681,9688,3,1268,634,0,9682,9683,3,1264,632,0,9683,9684,3,1198,599,0,9684,9688,1,0,0,0,9685,9688,5,119,0,0,9686,9688,5,126,0,0,9687,9680,1,0,0,0,9687,9681,1,0,0,0,9687,9682,1,0,0,0,9687,9685,1,0,0,0,9687,9686,1,0,0,0,9688,1241,1,0,0,0,9689,9722,3,1250,625,0,9690,9722,3,1248,624,0,9691,9722,3,1252,626,0,9692,9722,3,1246,623,0,9693,9722,3,1244,622,0,9694,9702,3,1240,620,0,9695,9703,3,1252,626,0,9696,9697,5,2,0,0,9697,9698,3,1158,579,0,9698,9699,3,890,445,0,9699,9700,5,3,0,0,9700,9701,3,1252,626,0,9701,9703,1,0,0,0,9702,9695,1,0,0,0,9702,9696,1,0,0,0,9703,9722,1,0,0,0,9704,9705,3,1e3,500,0,9705,9706,3,1252,626,0,9706,9722,1,0,0,0,9707,9716,3,1028,514,0,9708,9709,3,1252,626,0,9709,9710,3,1032,516,0,9710,9717,1,0,0,0,9711,9712,5,2,0,0,9712,9713,3,1250,625,0,9713,9714,5,3,0,0,9714,9715,3,1252,626,0,9715,9717,1,0,0,0,9716,9708,1,0,0,0,9716,9711,1,0,0,0,9717,9722,1,0,0,0,9718,9722,5,96,0,0,9719,9722,5,60,0,0,9720,9722,5,78,0,0,9721,9689,1,0,0,0,9721,9690,1,0,0,0,9721,9691,1,0,0,0,9721,9692,1,0,0,0,9721,9693,1,0,0,0,9721,9694,1,0,0,0,9721,9704,1,0,0,0,9721,9707,1,0,0,0,9721,9718,1,0,0,0,9721,9719,1,0,0,0,9721,9720,1,0,0,0,9722,1243,1,0,0,0,9723,9724,5,654,0,0,9724,1245,1,0,0,0,9725,9726,5,650,0,0,9726,1247,1,0,0,0,9727,9728,5,660,0,0,9728,1249,1,0,0,0,9729,9730,5,658,0,0,9730,1251,1,0,0,0,9731,9732,3,1254,627,0,9732,9733,3,1256,628,0,9733,1253,1,0,0,0,9734,9746,5,645,0,0,9735,9746,5,647,0,0,9736,9740,5,649,0,0,9737,9739,5,677,0,0,9738,9737,1,0,0,0,9739,9742,1,0,0,0,9740,9738,1,0,0,0,9740,9741,1,0,0,0,9741,9743,1,0,0,0,9742,9740,1,0,0,0,9743,9746,5,678,0,0,9744,9746,5,671,0,0,9745,9734,1,0,0,0,9745,9735,1,0,0,0,9745,9736,1,0,0,0,9745,9744,1,0,0,0,9746,1255,1,0,0,0,9747,9748,5,487,0,0,9748,9751,3,1254,627,0,9749,9751,1,0,0,0,9750,9747,1,0,0,0,9750,9749,1,0,0,0,9751,1257,1,0,0,0,9752,9758,3,1250,625,0,9753,9754,5,12,0,0,9754,9758,3,1250,625,0,9755,9756,5,13,0,0,9756,9758,3,1250,625,0,9757,9752,1,0,0,0,9757,9753,1,0,0,0,9757,9755,1,0,0,0,9758,1259,1,0,0,0,9759,9763,3,1270,635,0,9760,9763,5,52,0,0,9761,9763,5,89,0,0,9762,9759,1,0,0,0,9762,9760,1,0,0,0,9762,9761,1,0,0,0,9763,1261,1,0,0,0,9764,9769,3,1260,630,0,9765,9766,5,6,0,0,9766,9768,3,1260,630,0,9767,9765,1,0,0,0,9768,9771,1,0,0,0,9769,9767,1,0,0,0,9769,9770,1,0,0,0,9770,1263,1,0,0,0,9771,9769,1,0,0,0,9772,9779,3,1274,637,0,9773,9779,3,1278,639,0,9774,9779,3,1280,640,0,9775,9779,3,1490,745,0,9776,9779,5,119,0,0,9777,9779,5,126,0,0,9778,9772,1,0,0,0,9778,9773,1,0,0,0,9778,9774,1,0,0,0,9778,9775,1,0,0,0,9778,9776,1,0,0,0,9778,9777,1,0,0,0,9779,1265,1,0,0,0,9780,9785,3,1274,637,0,9781,9785,3,1278,639,0,9782,9785,3,1280,640,0,9783,9785,3,1490,745,0,9784,9780,1,0,0,0,9784,9781,1,0,0,0,9784,9782,1,0,0,0,9784,9783,1,0,0,0,9785,1267,1,0,0,0,9786,9791,3,1274,637,0,9787,9791,3,1278,639,0,9788,9791,3,1490,745,0,9789,9791,3,1282,641,0,9790,9786,1,0,0,0,9790,9787,1,0,0,0,9790,9788,1,0,0,0,9790,9789,1,0,0,0,9791,1269,1,0,0,0,9792,9797,3,1274,637,0,9793,9797,3,1278,639,0,9794,9797,3,1280,640,0,9795,9797,3,1282,641,0,9796,9792,1,0,0,0,9796,9793,1,0,0,0,9796,9794,1,0,0,0,9796,9795,1,0,0,0,9797,1271,1,0,0,0,9798,9805,3,1274,637,0,9799,9805,3,1490,745,0,9800,9805,3,1278,639,0,9801,9805,3,1280,640,0,9802,9805,3,1282,641,0,9803,9805,3,1284,642,0,9804,9798,1,0,0,0,9804,9799,1,0,0,0,9804,9800,1,0,0,0,9804,9801,1,0,0,0,9804,9802,1,0,0,0,9804,9803,1,0,0,0,9805,1273,1,0,0,0,9806,9807,5,636,0,0,9807,9814,3,1256,628,0,9808,9814,5,637,0,0,9809,9814,5,641,0,0,9810,9814,3,1084,542,0,9811,9814,3,1276,638,0,9812,9814,3,1490,745,0,9813,9806,1,0,0,0,9813,9808,1,0,0,0,9813,9809,1,0,0,0,9813,9810,1,0,0,0,9813,9811,1,0,0,0,9813,9812,1,0,0,0,9814,1275,1,0,0,0,9815,9816,5,662,0,0,9816,1277,1,0,0,0,9817,9818,7,59,0,0,9818,1279,1,0,0,0,9819,9872,5,380,0,0,9820,9872,5,381,0,0,9821,9872,3,1010,505,0,9822,9872,5,383,0,0,9823,9872,5,384,0,0,9824,9872,3,1018,509,0,9825,9872,5,386,0,0,9826,9872,5,387,0,0,9827,9872,5,388,0,0,9828,9872,5,389,0,0,9829,9872,5,390,0,0,9830,9872,5,391,0,0,9831,9872,5,392,0,0,9832,9872,5,470,0,0,9833,9872,5,393,0,0,9834,9872,5,394,0,0,9835,9872,5,395,0,0,9836,9872,5,396,0,0,9837,9872,5,397,0,0,9838,9872,5,398,0,0,9839,9872,5,399,0,0,9840,9872,5,400,0,0,9841,9872,5,489,0,0,9842,9872,5,401,0,0,9843,9872,3,1006,503,0,9844,9872,5,453,0,0,9845,9872,5,403,0,0,9846,9872,5,404,0,0,9847,9872,5,405,0,0,9848,9872,5,406,0,0,9849,9872,5,407,0,0,9850,9872,5,408,0,0,9851,9872,5,409,0,0,9852,9872,5,410,0,0,9853,9872,5,411,0,0,9854,9872,5,412,0,0,9855,9872,5,413,0,0,9856,9872,5,414,0,0,9857,9872,5,415,0,0,9858,9872,5,416,0,0,9859,9872,5,417,0,0,9860,9872,5,425,0,0,9861,9872,5,426,0,0,9862,9872,5,427,0,0,9863,9872,5,428,0,0,9864,9872,5,476,0,0,9865,9872,5,429,0,0,9866,9872,5,430,0,0,9867,9872,5,431,0,0,9868,9872,5,432,0,0,9869,9872,5,474,0,0,9870,9872,3,1286,643,0,9871,9819,1,0,0,0,9871,9820,1,0,0,0,9871,9821,1,0,0,0,9871,9822,1,0,0,0,9871,9823,1,0,0,0,9871,9824,1,0,0,0,9871,9825,1,0,0,0,9871,9826,1,0,0,0,9871,9827,1,0,0,0,9871,9828,1,0,0,0,9871,9829,1,0,0,0,9871,9830,1,0,0,0,9871,9831,1,0,0,0,9871,9832,1,0,0,0,9871,9833,1,0,0,0,9871,9834,1,0,0,0,9871,9835,1,0,0,0,9871,9836,1,0,0,0,9871,9837,1,0,0,0,9871,9838,1,0,0,0,9871,9839,1,0,0,0,9871,9840,1,0,0,0,9871,9841,1,0,0,0,9871,9842,1,0,0,0,9871,9843,1,0,0,0,9871,9844,1,0,0,0,9871,9845,1,0,0,0,9871,9846,1,0,0,0,9871,9847,1,0,0,0,9871,9848,1,0,0,0,9871,9849,1,0,0,0,9871,9850,1,0,0,0,9871,9851,1,0,0,0,9871,9852,1,0,0,0,9871,9853,1,0,0,0,9871,9854,1,0,0,0,9871,9855,1,0,0,0,9871,9856,1,0,0,0,9871,9857,1,0,0,0,9871,9858,1,0,0,0,9871,9859,1,0,0,0,9871,9860,1,0,0,0,9871,9861,1,0,0,0,9871,9862,1,0,0,0,9871,9863,1,0,0,0,9871,9864,1,0,0,0,9871,9865,1,0,0,0,9871,9866,1,0,0,0,9871,9867,1,0,0,0,9871,9868,1,0,0,0,9871,9869,1,0,0,0,9871,9870,1,0,0,0,9872,1281,1,0,0,0,9873,9874,7,60,0,0,9874,1283,1,0,0,0,9875,9876,7,61,0,0,9876,1285,1,0,0,0,9877,9878,7,62,0,0,9878,1287,1,0,0,0,9879,9880,3,1290,645,0,9880,9881,3,1300,650,0,9881,9882,3,1298,649,0,9882,1289,1,0,0,0,9883,9885,3,1292,646,0,9884,9883,1,0,0,0,9885,9888,1,0,0,0,9886,9884,1,0,0,0,9886,9887,1,0,0,0,9887,1291,1,0,0,0,9888,9886,1,0,0,0,9889,9890,3,1294,647,0,9890,9891,5,272,0,0,9891,9892,5,490,0,0,9892,9910,1,0,0,0,9893,9894,3,1294,647,0,9894,9895,5,491,0,0,9895,9896,3,1296,648,0,9896,9910,1,0,0,0,9897,9898,3,1294,647,0,9898,9899,5,492,0,0,9899,9900,5,493,0,0,9900,9910,1,0,0,0,9901,9902,3,1294,647,0,9902,9903,5,492,0,0,9903,9904,5,494,0,0,9904,9910,1,0,0,0,9905,9906,3,1294,647,0,9906,9907,5,492,0,0,9907,9908,5,495,0,0,9908,9910,1,0,0,0,9909,9889,1,0,0,0,9909,9893,1,0,0,0,9909,9897,1,0,0,0,9909,9901,1,0,0,0,9909,9905,1,0,0,0,9910,1293,1,0,0,0,9911,9912,5,29,0,0,9912,1295,1,0,0,0,9913,9918,3,1252,626,0,9914,9918,3,1284,642,0,9915,9918,3,1490,745,0,9916,9918,3,1278,639,0,9917,9913,1,0,0,0,9917,9914,1,0,0,0,9917,9915,1,0,0,0,9917,9916,1,0,0,0,9918,1297,1,0,0,0,9919,9922,1,0,0,0,9920,9922,5,7,0,0,9921,9919,1,0,0,0,9921,9920,1,0,0,0,9922,1299,1,0,0,0,9923,9924,3,1302,651,0,9924,9925,5,146,0,0,9925,9926,3,1344,672,0,9926,9927,3,1470,735,0,9927,9928,5,454,0,0,9928,9929,3,1484,742,0,9929,1301,1,0,0,0,9930,9935,3,1480,740,0,9931,9933,3,1304,652,0,9932,9934,3,1306,653,0,9933,9932,1,0,0,0,9933,9934,1,0,0,0,9934,9936,1,0,0,0,9935,9931,1,0,0,0,9935,9936,1,0,0,0,9936,1303,1,0,0,0,9937,9938,5,178,0,0,9938,1305,1,0,0,0,9939,9941,3,1310,655,0,9940,9939,1,0,0,0,9941,9942,1,0,0,0,9942,9940,1,0,0,0,9942,9943,1,0,0,0,9943,1307,1,0,0,0,9944,9945,5,18,0,0,9945,9946,3,1488,744,0,9946,9947,5,19,0,0,9947,1309,1,0,0,0,9948,9952,3,1312,656,0,9949,9952,5,178,0,0,9950,9952,3,1308,654,0,9951,9948,1,0,0,0,9951,9949,1,0,0,0,9951,9950,1,0,0,0,9952,1311,1,0,0,0,9953,9969,3,1328,664,0,9954,9955,5,496,0,0,9955,9956,5,62,0,0,9956,9970,3,1326,663,0,9957,9958,3,1330,665,0,9958,9959,3,1332,666,0,9959,9960,3,1334,667,0,9960,9961,3,1336,668,0,9961,9962,3,1338,669,0,9962,9970,1,0,0,0,9963,9964,3,1314,657,0,9964,9965,5,172,0,0,9965,9966,3,1318,659,0,9966,9967,3,1324,662,0,9967,9968,3,1316,658,0,9968,9970,1,0,0,0,9969,9954,1,0,0,0,9969,9957,1,0,0,0,9969,9963,1,0,0,0,9970,9971,1,0,0,0,9971,9972,5,7,0,0,9972,1313,1,0,0,0,9973,9978,1,0,0,0,9974,9975,5,262,0,0,9975,9978,5,317,0,0,9976,9978,5,317,0,0,9977,9973,1,0,0,0,9977,9974,1,0,0,0,9977,9976,1,0,0,0,9978,1315,1,0,0,0,9979,9980,3,858,429,0,9980,1317,1,0,0,0,9981,9987,1,0,0,0,9982,9983,5,2,0,0,9983,9984,3,1320,660,0,9984,9985,5,3,0,0,9985,9987,1,0,0,0,9986,9981,1,0,0,0,9986,9982,1,0,0,0,9987,1319,1,0,0,0,9988,9993,3,1322,661,0,9989,9990,5,6,0,0,9990,9992,3,1322,661,0,9991,9989,1,0,0,0,9992,9995,1,0,0,0,9993,9991,1,0,0,0,9993,9994,1,0,0,0,9994,1321,1,0,0,0,9995,9993,1,0,0,0,9996,9997,3,1328,664,0,9997,9998,3,1332,666,0,9998,1323,1,0,0,0,9999,1e4,7,63,0,0,1e4,1325,1,0,0,0,10001,10004,5,28,0,0,10002,10004,3,1264,632,0,10003,10001,1,0,0,0,10003,10002,1,0,0,0,10004,1327,1,0,0,0,10005,10006,3,1488,744,0,10006,1329,1,0,0,0,10007,10010,1,0,0,0,10008,10010,5,497,0,0,10009,10007,1,0,0,0,10009,10008,1,0,0,0,10010,1331,1,0,0,0,10011,10012,3,996,498,0,10012,1333,1,0,0,0,10013,10017,1,0,0,0,10014,10015,5,43,0,0,10015,10017,3,470,235,0,10016,10013,1,0,0,0,10016,10014,1,0,0,0,10017,1335,1,0,0,0,10018,10022,1,0,0,0,10019,10020,5,77,0,0,10020,10022,5,78,0,0,10021,10018,1,0,0,0,10021,10019,1,0,0,0,10022,1337,1,0,0,0,10023,10028,1,0,0,0,10024,10025,3,1340,670,0,10025,10026,3,1492,746,0,10026,10028,1,0,0,0,10027,10023,1,0,0,0,10027,10024,1,0,0,0,10028,1339,1,0,0,0,10029,10032,3,1342,671,0,10030,10032,5,53,0,0,10031,10029,1,0,0,0,10031,10030,1,0,0,0,10032,1341,1,0,0,0,10033,10034,7,64,0,0,10034,1343,1,0,0,0,10035,10037,3,1346,673,0,10036,10035,1,0,0,0,10037,10040,1,0,0,0,10038,10036,1,0,0,0,10038,10039,1,0,0,0,10039,1345,1,0,0,0,10040,10038,1,0,0,0,10041,10042,3,1300,650,0,10042,10043,5,7,0,0,10043,10069,1,0,0,0,10044,10069,3,1412,706,0,10045,10069,3,1416,708,0,10046,10069,3,1354,677,0,10047,10069,3,1370,685,0,10048,10069,3,1376,688,0,10049,10069,3,1386,693,0,10050,10069,3,1388,694,0,10051,10069,3,1390,695,0,10052,10069,3,1404,702,0,10053,10069,3,1408,704,0,10054,10069,3,1426,713,0,10055,10069,3,1432,716,0,10056,10069,3,1434,717,0,10057,10069,3,1348,674,0,10058,10069,3,1350,675,0,10059,10069,3,1356,678,0,10060,10069,3,1442,721,0,10061,10069,3,1446,723,0,10062,10069,3,1454,727,0,10063,10069,3,1456,728,0,10064,10069,3,1458,729,0,10065,10069,3,1460,730,0,10066,10069,3,1462,731,0,10067,10069,3,1466,733,0,10068,10041,1,0,0,0,10068,10044,1,0,0,0,10068,10045,1,0,0,0,10068,10046,1,0,0,0,10068,10047,1,0,0,0,10068,10048,1,0,0,0,10068,10049,1,0,0,0,10068,10050,1,0,0,0,10068,10051,1,0,0,0,10068,10052,1,0,0,0,10068,10053,1,0,0,0,10068,10054,1,0,0,0,10068,10055,1,0,0,0,10068,10056,1,0,0,0,10068,10057,1,0,0,0,10068,10058,1,0,0,0,10068,10059,1,0,0,0,10068,10060,1,0,0,0,10068,10061,1,0,0,0,10068,10062,1,0,0,0,10068,10063,1,0,0,0,10068,10064,1,0,0,0,10068,10065,1,0,0,0,10068,10066,1,0,0,0,10068,10067,1,0,0,0,10069,1347,1,0,0,0,10070,10071,5,498,0,0,10071,10072,3,1496,748,0,10072,10073,5,7,0,0,10073,1349,1,0,0,0,10074,10075,5,433,0,0,10075,10076,3,1488,744,0,10076,10077,5,2,0,0,10077,10078,3,1352,676,0,10078,10079,5,3,0,0,10079,10080,5,7,0,0,10080,10089,1,0,0,0,10081,10082,5,57,0,0,10082,10083,3,1488,744,0,10083,10084,5,2,0,0,10084,10085,3,1352,676,0,10085,10086,5,3,0,0,10086,10087,5,7,0,0,10087,10089,1,0,0,0,10088,10074,1,0,0,0,10088,10081,1,0,0,0,10089,1351,1,0,0,0,10090,10093,1,0,0,0,10091,10093,3,1156,578,0,10092,10090,1,0,0,0,10092,10091,1,0,0,0,10093,1353,1,0,0,0,10094,10095,3,1368,684,0,10095,10096,3,1342,671,0,10096,10097,3,1492,746,0,10097,10098,5,7,0,0,10098,1355,1,0,0,0,10099,10100,5,499,0,0,10100,10101,3,1358,679,0,10101,10102,5,500,0,0,10102,10103,3,1360,680,0,10103,10104,5,7,0,0,10104,1357,1,0,0,0,10105,10109,1,0,0,0,10106,10109,5,434,0,0,10107,10109,5,501,0,0,10108,10105,1,0,0,0,10108,10106,1,0,0,0,10108,10107,1,0,0,0,10109,1359,1,0,0,0,10110,10115,3,1362,681,0,10111,10112,5,6,0,0,10112,10114,3,1362,681,0,10113,10111,1,0,0,0,10114,10117,1,0,0,0,10115,10113,1,0,0,0,10115,10116,1,0,0,0,10116,1361,1,0,0,0,10117,10115,1,0,0,0,10118,10119,3,1366,683,0,10119,10120,3,1342,671,0,10120,10121,3,1364,682,0,10121,1363,1,0,0,0,10122,10123,3,1264,632,0,10123,1365,1,0,0,0,10124,10125,3,1368,684,0,10125,1367,1,0,0,0,10126,10129,3,470,235,0,10127,10129,5,28,0,0,10128,10126,1,0,0,0,10128,10127,1,0,0,0,10129,10136,1,0,0,0,10130,10131,5,4,0,0,10131,10132,3,1498,749,0,10132,10133,5,5,0,0,10133,10135,1,0,0,0,10134,10130,1,0,0,0,10135,10138,1,0,0,0,10136,10134,1,0,0,0,10136,10137,1,0,0,0,10137,1369,1,0,0,0,10138,10136,1,0,0,0,10139,10140,5,220,0,0,10140,10141,3,1494,747,0,10141,10142,5,93,0,0,10142,10143,3,1344,672,0,10143,10144,3,1372,686,0,10144,10145,3,1374,687,0,10145,10146,5,454,0,0,10146,10147,5,220,0,0,10147,10148,5,7,0,0,10148,1371,1,0,0,0,10149,10150,5,502,0,0,10150,10151,3,1038,519,0,10151,10152,5,93,0,0,10152,10153,3,1344,672,0,10153,10155,1,0,0,0,10154,10149,1,0,0,0,10155,10158,1,0,0,0,10156,10154,1,0,0,0,10156,10157,1,0,0,0,10157,1373,1,0,0,0,10158,10156,1,0,0,0,10159,10163,1,0,0,0,10160,10161,5,58,0,0,10161,10163,3,1344,672,0,10162,10159,1,0,0,0,10162,10160,1,0,0,0,10163,1375,1,0,0,0,10164,10165,5,40,0,0,10165,10166,3,1378,689,0,10166,10167,3,1380,690,0,10167,10168,3,1384,692,0,10168,10169,5,454,0,0,10169,10170,5,40,0,0,10170,10171,5,7,0,0,10171,1377,1,0,0,0,10172,10175,1,0,0,0,10173,10175,3,1492,746,0,10174,10172,1,0,0,0,10174,10173,1,0,0,0,10175,1379,1,0,0,0,10176,10178,3,1382,691,0,10177,10176,1,0,0,0,10178,10179,1,0,0,0,10179,10177,1,0,0,0,10179,10180,1,0,0,0,10180,1381,1,0,0,0,10181,10182,5,102,0,0,10182,10183,3,1156,578,0,10183,10184,5,93,0,0,10184,10185,3,1344,672,0,10185,1383,1,0,0,0,10186,10190,1,0,0,0,10187,10188,5,58,0,0,10188,10190,3,1344,672,0,10189,10186,1,0,0,0,10189,10187,1,0,0,0,10190,1385,1,0,0,0,10191,10192,3,1482,741,0,10192,10193,3,1430,715,0,10193,1387,1,0,0,0,10194,10195,3,1482,741,0,10195,10196,5,503,0,0,10196,10197,3,1500,750,0,10197,10198,3,1430,715,0,10198,1389,1,0,0,0,10199,10200,3,1482,741,0,10200,10201,5,62,0,0,10201,10202,3,1392,696,0,10202,10203,3,1430,715,0,10203,1391,1,0,0,0,10204,10205,3,1402,701,0,10205,10221,5,68,0,0,10206,10207,3,854,427,0,10207,10208,3,1396,698,0,10208,10222,1,0,0,0,10209,10222,3,858,429,0,10210,10222,3,782,391,0,10211,10212,5,202,0,0,10212,10213,3,1038,519,0,10213,10214,3,1394,697,0,10214,10222,1,0,0,0,10215,10216,3,1398,699,0,10216,10217,3,1038,519,0,10217,10218,5,24,0,0,10218,10219,3,1038,519,0,10219,10220,3,1400,700,0,10220,10222,1,0,0,0,10221,10206,1,0,0,0,10221,10209,1,0,0,0,10221,10210,1,0,0,0,10221,10211,1,0,0,0,10221,10215,1,0,0,0,10222,1393,1,0,0,0,10223,10227,1,0,0,0,10224,10225,5,100,0,0,10225,10227,3,1156,578,0,10226,10223,1,0,0,0,10226,10224,1,0,0,0,10227,1395,1,0,0,0,10228,10241,1,0,0,0,10229,10230,5,2,0,0,10230,10235,3,1038,519,0,10231,10232,5,6,0,0,10232,10234,3,1038,519,0,10233,10231,1,0,0,0,10234,10237,1,0,0,0,10235,10233,1,0,0,0,10235,10236,1,0,0,0,10236,10238,1,0,0,0,10237,10235,1,0,0,0,10238,10239,5,3,0,0,10239,10241,1,0,0,0,10240,10228,1,0,0,0,10240,10229,1,0,0,0,10241,1397,1,0,0,0,10242,10245,1,0,0,0,10243,10245,5,504,0,0,10244,10242,1,0,0,0,10244,10243,1,0,0,0,10245,1399,1,0,0,0,10246,10250,1,0,0,0,10247,10248,5,147,0,0,10248,10250,3,1038,519,0,10249,10246,1,0,0,0,10249,10247,1,0,0,0,10250,1401,1,0,0,0,10251,10252,3,468,234,0,10252,1403,1,0,0,0,10253,10254,3,1482,741,0,10254,10255,5,505,0,0,10255,10256,3,1402,701,0,10256,10257,3,1406,703,0,10257,10258,5,68,0,0,10258,10259,5,35,0,0,10259,10260,3,1038,519,0,10260,10261,3,1430,715,0,10261,1405,1,0,0,0,10262,10266,1,0,0,0,10263,10264,5,506,0,0,10264,10266,3,1250,625,0,10265,10262,1,0,0,0,10265,10263,1,0,0,0,10266,1407,1,0,0,0,10267,10268,3,1410,705,0,10268,10269,3,1484,742,0,10269,10270,3,1486,743,0,10270,10271,5,7,0,0,10271,1409,1,0,0,0,10272,10273,7,65,0,0,10273,1411,1,0,0,0,10274,10286,5,508,0,0,10275,10276,5,261,0,0,10276,10287,3,1492,746,0,10277,10283,5,509,0,0,10278,10279,5,202,0,0,10279,10280,3,1038,519,0,10280,10281,3,1394,697,0,10281,10284,1,0,0,0,10282,10284,3,858,429,0,10283,10278,1,0,0,0,10283,10282,1,0,0,0,10284,10287,1,0,0,0,10285,10287,3,1414,707,0,10286,10275,1,0,0,0,10286,10277,1,0,0,0,10286,10285,1,0,0,0,10287,10288,1,0,0,0,10288,10289,5,7,0,0,10289,1413,1,0,0,0,10290,10293,1,0,0,0,10291,10293,3,1492,746,0,10292,10290,1,0,0,0,10292,10291,1,0,0,0,10293,1415,1,0,0,0,10294,10295,5,510,0,0,10295,10296,3,1418,709,0,10296,10297,3,1252,626,0,10297,10298,3,1420,710,0,10298,10299,3,1422,711,0,10299,10300,5,7,0,0,10300,10321,1,0,0,0,10301,10302,5,510,0,0,10302,10303,3,1418,709,0,10303,10304,3,1274,637,0,10304,10305,3,1422,711,0,10305,10306,5,7,0,0,10306,10321,1,0,0,0,10307,10308,5,510,0,0,10308,10309,3,1418,709,0,10309,10310,5,511,0,0,10310,10311,3,1252,626,0,10311,10312,3,1422,711,0,10312,10313,5,7,0,0,10313,10321,1,0,0,0,10314,10315,5,510,0,0,10315,10316,3,1418,709,0,10316,10317,3,1422,711,0,10317,10318,5,7,0,0,10318,10321,1,0,0,0,10319,10321,5,510,0,0,10320,10294,1,0,0,0,10320,10301,1,0,0,0,10320,10307,1,0,0,0,10320,10314,1,0,0,0,10320,10319,1,0,0,0,10321,1417,1,0,0,0,10322,10331,1,0,0,0,10323,10331,1,0,0,0,10324,10331,5,512,0,0,10325,10331,5,513,0,0,10326,10331,5,514,0,0,10327,10331,5,515,0,0,10328,10331,5,516,0,0,10329,10331,5,517,0,0,10330,10322,1,0,0,0,10330,10323,1,0,0,0,10330,10324,1,0,0,0,10330,10325,1,0,0,0,10330,10326,1,0,0,0,10330,10327,1,0,0,0,10330,10328,1,0,0,0,10330,10329,1,0,0,0,10331,1419,1,0,0,0,10332,10340,1,0,0,0,10333,10334,5,6,0,0,10334,10336,3,1038,519,0,10335,10333,1,0,0,0,10336,10337,1,0,0,0,10337,10335,1,0,0,0,10337,10338,1,0,0,0,10338,10340,1,0,0,0,10339,10332,1,0,0,0,10339,10335,1,0,0,0,10340,1421,1,0,0,0,10341,10352,1,0,0,0,10342,10343,5,100,0,0,10343,10348,3,1424,712,0,10344,10345,5,6,0,0,10345,10347,3,1424,712,0,10346,10344,1,0,0,0,10347,10350,1,0,0,0,10348,10346,1,0,0,0,10348,10349,1,0,0,0,10349,10352,1,0,0,0,10350,10348,1,0,0,0,10351,10341,1,0,0,0,10351,10342,1,0,0,0,10352,1423,1,0,0,0,10353,10354,3,1274,637,0,10354,10355,5,10,0,0,10355,10356,3,1038,519,0,10356,1425,1,0,0,0,10357,10358,5,518,0,0,10358,10359,3,1492,746,0,10359,10360,3,1428,714,0,10360,10361,5,7,0,0,10361,1427,1,0,0,0,10362,10366,1,0,0,0,10363,10364,5,6,0,0,10364,10366,3,1492,746,0,10365,10362,1,0,0,0,10365,10363,1,0,0,0,10366,1429,1,0,0,0,10367,10368,5,519,0,0,10368,10369,3,1344,672,0,10369,10370,5,454,0,0,10370,10371,5,519,0,0,10371,10372,3,1484,742,0,10372,10373,5,7,0,0,10373,1431,1,0,0,0,10374,10375,3,1502,751,0,10375,10376,5,7,0,0,10376,1433,1,0,0,0,10377,10378,5,202,0,0,10378,10386,3,1038,519,0,10379,10380,3,1440,720,0,10380,10381,3,1436,718,0,10381,10387,1,0,0,0,10382,10383,3,1436,718,0,10383,10384,3,1440,720,0,10384,10387,1,0,0,0,10385,10387,1,0,0,0,10386,10379,1,0,0,0,10386,10382,1,0,0,0,10386,10385,1,0,0,0,10387,10388,1,0,0,0,10388,10389,5,7,0,0,10389,1435,1,0,0,0,10390,10394,1,0,0,0,10391,10392,5,100,0,0,10392,10394,3,1438,719,0,10393,10390,1,0,0,0,10393,10391,1,0,0,0,10394,1437,1,0,0,0,10395,10400,3,1038,519,0,10396,10397,5,6,0,0,10397,10399,3,1038,519,0,10398,10396,1,0,0,0,10399,10402,1,0,0,0,10400,10398,1,0,0,0,10400,10401,1,0,0,0,10401,1439,1,0,0,0,10402,10400,1,0,0,0,10403,10410,1,0,0,0,10404,10406,5,71,0,0,10405,10407,5,339,0,0,10406,10405,1,0,0,0,10406,10407,1,0,0,0,10407,10408,1,0,0,0,10408,10410,3,1448,724,0,10409,10403,1,0,0,0,10409,10404,1,0,0,0,10410,1441,1,0,0,0,10411,10440,5,520,0,0,10412,10414,3,1468,734,0,10413,10415,5,262,0,0,10414,10413,1,0,0,0,10414,10415,1,0,0,0,10415,10416,1,0,0,0,10416,10417,5,317,0,0,10417,10424,5,62,0,0,10418,10425,3,858,429,0,10419,10420,5,202,0,0,10420,10421,3,1492,746,0,10421,10422,5,100,0,0,10422,10423,3,1156,578,0,10423,10425,1,0,0,0,10424,10418,1,0,0,0,10424,10419,1,0,0,0,10425,10441,1,0,0,0,10426,10438,3,1264,632,0,10427,10428,5,2,0,0,10428,10433,3,1444,722,0,10429,10430,5,6,0,0,10430,10432,3,1444,722,0,10431,10429,1,0,0,0,10432,10435,1,0,0,0,10433,10431,1,0,0,0,10433,10434,1,0,0,0,10434,10436,1,0,0,0,10435,10433,1,0,0,0,10436,10437,5,3,0,0,10437,10439,1,0,0,0,10438,10427,1,0,0,0,10438,10439,1,0,0,0,10439,10441,1,0,0,0,10440,10412,1,0,0,0,10440,10426,1,0,0,0,10441,10442,1,0,0,0,10442,10443,5,7,0,0,10443,1443,1,0,0,0,10444,10445,3,1264,632,0,10445,10446,5,20,0,0,10446,10447,3,1038,519,0,10447,10450,1,0,0,0,10448,10450,3,1038,519,0,10449,10444,1,0,0,0,10449,10448,1,0,0,0,10450,1445,1,0,0,0,10451,10452,5,61,0,0,10452,10453,3,1452,726,0,10453,10454,3,1450,725,0,10454,10455,3,1468,734,0,10455,10456,5,71,0,0,10456,10457,3,1448,724,0,10457,10458,5,7,0,0,10458,1447,1,0,0,0,10459,10460,3,1156,578,0,10460,1449,1,0,0,0,10461,10465,1,0,0,0,10462,10465,5,64,0,0,10463,10465,5,68,0,0,10464,10461,1,0,0,0,10464,10462,1,0,0,0,10464,10463,1,0,0,0,10465,1451,1,0,0,0,10466,10484,1,0,0,0,10467,10484,1,0,0,0,10468,10484,5,261,0,0,10469,10484,5,286,0,0,10470,10484,5,207,0,0,10471,10484,5,240,0,0,10472,10473,5,130,0,0,10473,10484,3,1038,519,0,10474,10475,5,300,0,0,10475,10484,3,1038,519,0,10476,10484,3,1038,519,0,10477,10484,5,30,0,0,10478,10481,7,66,0,0,10479,10482,3,1038,519,0,10480,10482,5,30,0,0,10481,10479,1,0,0,0,10481,10480,1,0,0,0,10481,10482,1,0,0,0,10482,10484,1,0,0,0,10483,10466,1,0,0,0,10483,10467,1,0,0,0,10483,10468,1,0,0,0,10483,10469,1,0,0,0,10483,10470,1,0,0,0,10483,10471,1,0,0,0,10483,10472,1,0,0,0,10483,10474,1,0,0,0,10483,10476,1,0,0,0,10483,10477,1,0,0,0,10483,10478,1,0,0,0,10484,1453,1,0,0,0,10485,10486,5,258,0,0,10486,10487,3,1452,726,0,10487,10488,3,1468,734,0,10488,10489,5,7,0,0,10489,1455,1,0,0,0,10490,10491,5,157,0,0,10491,10492,3,1468,734,0,10492,10493,5,7,0,0,10493,1457,1,0,0,0,10494,10495,5,78,0,0,10495,10496,5,7,0,0,10496,1459,1,0,0,0,10497,10498,5,161,0,0,10498,10499,3,1464,732,0,10499,10500,5,7,0,0,10500,1461,1,0,0,0,10501,10502,5,312,0,0,10502,10503,3,1464,732,0,10503,10504,5,7,0,0,10504,1463,1,0,0,0,10505,10507,5,33,0,0,10506,10508,5,262,0,0,10507,10506,1,0,0,0,10507,10508,1,0,0,0,10508,10509,1,0,0,0,10509,10512,5,153,0,0,10510,10512,1,0,0,0,10511,10505,1,0,0,0,10511,10510,1,0,0,0,10512,1465,1,0,0,0,10513,10514,5,326,0,0,10514,10515,3,470,235,0,10515,10516,5,94,0,0,10516,10517,5,53,0,0,10517,10518,5,7,0,0,10518,10526,1,0,0,0,10519,10522,5,306,0,0,10520,10523,3,470,235,0,10521,10523,5,30,0,0,10522,10520,1,0,0,0,10522,10521,1,0,0,0,10523,10524,1,0,0,0,10524,10526,5,7,0,0,10525,10513,1,0,0,0,10525,10519,1,0,0,0,10526,1467,1,0,0,0,10527,10530,3,1264,632,0,10528,10530,5,28,0,0,10529,10527,1,0,0,0,10529,10528,1,0,0,0,10530,1469,1,0,0,0,10531,10535,1,0,0,0,10532,10533,5,517,0,0,10533,10535,3,1472,736,0,10534,10531,1,0,0,0,10534,10532,1,0,0,0,10535,1471,1,0,0,0,10536,10538,3,1474,737,0,10537,10536,1,0,0,0,10538,10539,1,0,0,0,10539,10537,1,0,0,0,10539,10540,1,0,0,0,10540,1473,1,0,0,0,10541,10542,5,102,0,0,10542,10543,3,1476,738,0,10543,10544,5,93,0,0,10544,10545,3,1344,672,0,10545,1475,1,0,0,0,10546,10551,3,1478,739,0,10547,10548,5,82,0,0,10548,10550,3,1478,739,0,10549,10547,1,0,0,0,10550,10553,1,0,0,0,10551,10549,1,0,0,0,10551,10552,1,0,0,0,10552,1477,1,0,0,0,10553,10551,1,0,0,0,10554,10558,3,1488,744,0,10555,10556,5,511,0,0,10556,10558,3,1252,626,0,10557,10554,1,0,0,0,10557,10555,1,0,0,0,10558,1479,1,0,0,0,10559,10562,1,0,0,0,10560,10562,3,1308,654,0,10561,10559,1,0,0,0,10561,10560,1,0,0,0,10562,1481,1,0,0,0,10563,10566,1,0,0,0,10564,10566,3,1308,654,0,10565,10563,1,0,0,0,10565,10564,1,0,0,0,10566,1483,1,0,0,0,10567,10570,1,0,0,0,10568,10570,3,1488,744,0,10569,10567,1,0,0,0,10569,10568,1,0,0,0,10570,1485,1,0,0,0,10571,10572,5,102,0,0,10572,10575,3,1496,748,0,10573,10575,1,0,0,0,10574,10571,1,0,0,0,10574,10573,1,0,0,0,10575,1487,1,0,0,0,10576,10579,3,1264,632,0,10577,10579,3,1490,745,0,10578,10576,1,0,0,0,10578,10577,1,0,0,0,10579,1489,1,0,0,0,10580,10581,7,67,0,0,10581,1491,1,0,0,0,10582,10584,3,1202,601,0,10583,10585,3,878,439,0,10584,10583,1,0,0,0,10584,10585,1,0,0,0,10585,10586,1,0,0,0,10586,10587,3,936,468,0,10587,10588,3,974,487,0,10588,10589,3,918,459,0,10589,10590,3,924,462,0,10590,10591,3,1116,558,0,10591,1493,1,0,0,0,10592,10593,3,1492,746,0,10593,1495,1,0,0,0,10594,10595,3,1492,746,0,10595,1497,1,0,0,0,10596,10597,3,1038,519,0,10597,1499,1,0,0,0,10598,10599,3,1038,519,0,10599,1501,1,0,0,0,10600,10601,3,6,3,0,10601,10602,3,1504,752,0,10602,1503,1,0,0,0,10603,10605,5,71,0,0,10604,10606,5,339,0,0,10605,10604,1,0,0,0,10605,10606,1,0,0,0,10606,10607,1,0,0,0,10607,10610,3,1448,724,0,10608,10610,1,0,0,0,10609,10603,1,0,0,0,10609,10608,1,0,0,0,10610,1505,1,0,0,0,10611,10612,7,68,0,0,10612,1507,1,0,0,0,792,1509,1517,1523,1647,1651,1658,1663,1669,1675,1691,1699,1704,1722,1727,1737,1748,1755,1761,1766,1775,1779,1791,1823,1830,1838,1843,1850,1856,1873,1878,1882,1895,1899,1904,1909,1921,1930,1943,1948,1959,1970,1975,1986,1997,2007,2022,2034,2039,2046,2057,2208,2217,2237,2304,2311,2316,2321,2326,2334,2343,2350,2360,2362,2367,2373,2379,2381,2409,2419,2432,2444,2458,2463,2467,2473,2487,2493,2500,2505,2512,2549,2552,2557,2564,2579,2585,2593,2626,2636,2640,2647,2654,2662,2668,2672,2682,2689,2700,2720,2734,2742,2747,2754,2764,2774,2794,2809,2834,2841,2848,2859,2864,2871,2882,2890,2901,2917,2925,2929,2943,2960,2965,2972,2981,2984,2989,2996,3007,3020,3033,3051,3054,3058,3065,3082,3093,3097,3103,3113,3118,3127,3149,3151,3159,3166,3172,3181,3183,3187,3192,3198,3202,3215,3221,3230,3237,3247,3256,3401,3409,3421,3426,3434,3445,3453,3460,3473,3483,3497,3513,3521,3526,3531,3539,3541,3599,3616,3624,3647,3651,3671,3708,3717,3722,3727,3732,3785,3791,3798,3808,3813,3818,3833,3837,3847,3853,3859,3866,3871,3876,3890,3918,3925,3939,3954,4006,4073,4081,4089,4097,4105,4119,4159,4165,4172,4188,4196,4203,4218,4223,4232,4259,4266,4281,4301,4321,4340,4349,4358,4367,4376,4385,4396,4441,4464,4469,4484,4493,4498,4504,4511,4525,4624,4711,4715,4853,4858,4862,4868,4936,4942,4971,4988,4995,5007,5047,5054,5060,5066,5092,5098,5104,5112,5124,5153,5159,5163,5166,5181,5185,5202,5207,5214,5228,5241,5250,5256,5261,5265,5270,5277,5285,5295,5297,5304,5311,5319,5325,5332,5334,5341,5347,5351,5357,5362,5366,5371,5377,5383,5389,5395,5408,5417,5428,5434,5473,5483,5490,5501,5507,5517,5526,5529,5567,5581,5595,5619,5626,5636,5648,5653,5689,5696,5711,5758,5774,5778,5787,5791,5799,5803,5811,5815,5823,5827,5830,5839,5856,6028,6073,6164,6295,6299,6304,6310,6321,6332,6345,6357,6368,6375,6523,6589,6604,6615,6622,6815,6825,6833,6862,6878,6920,6934,6956,6963,6971,6975,6982,6991,7e3,7009,7014,7055,7060,7072,7076,7081,7086,7090,7095,7111,7119,7124,7138,7141,7145,7150,7160,7171,7182,7192,7197,7235,7243,7247,7328,7332,7356,7361,7365,7368,7372,7382,7394,7401,7411,7416,7420,7427,7437,7441,7460,7466,7477,7484,7489,7502,7508,7537,7544,7556,7559,7571,7586,7592,7601,7617,7620,7631,7636,7640,7644,7649,7652,7658,7662,7664,7667,7674,7677,7684,7692,7695,7704,7709,7721,7734,7745,7748,7752,7758,7761,7776,7789,7796,7808,7810,7825,7829,7839,7848,7850,7860,7862,7864,7873,7883,7888,7893,7898,7901,7915,7919,7926,7941,7945,7949,7952,7965,7969,7974,7982,7988,7999,8006,8012,8016,8018,8022,8028,8037,8043,8045,8047,8054,8058,8067,8071,8081,8088,8110,8115,8120,8125,8134,8138,8141,8146,8159,8165,8173,8176,8183,8188,8209,8218,8223,8229,8234,8241,8246,8252,8254,8258,8265,8269,8272,8279,8284,8287,8294,8298,8307,8313,8321,8323,8330,8335,8338,8361,8367,8378,8383,8388,8395,8398,8402,8409,8426,8442,8445,8452,8456,8461,8471,8478,8487,8490,8495,8500,8508,8510,8516,8529,8531,8537,8543,8546,8555,8573,8580,8584,8588,8604,8611,8619,8623,8630,8643,8659,8665,8671,8678,8683,8689,8696,8704,8712,8717,8721,8727,8731,8735,8738,8744,8749,8765,8768,8770,8782,8784,8788,8794,8799,8807,8811,8820,8828,8834,8837,8846,8851,8858,8868,8894,8905,8907,8909,8917,8940,8948,8958,8972,8982,8986,9e3,9007,9014,9021,9046,9075,9114,9116,9144,9165,9172,9185,9197,9203,9212,9229,9241,9250,9255,9262,9272,9275,9286,9292,9307,9315,9324,9333,9336,9341,9350,9355,9369,9379,9387,9401,9408,9416,9424,9431,9437,9446,9454,9464,9475,9482,9511,9520,9527,9538,9548,9552,9556,9561,9566,9570,9572,9575,9580,9585,9590,9597,9606,9608,9615,9625,9635,9645,9659,9664,9671,9687,9702,9716,9721,9740,9745,9750,9757,9762,9769,9778,9784,9790,9796,9804,9813,9871,9886,9909,9917,9921,9933,9935,9942,9951,9969,9977,9986,9993,10003,10009,10016,10021,10027,10031,10038,10068,10088,10092,10108,10115,10128,10136,10156,10162,10174,10179,10189,10221,10226,10235,10240,10244,10249,10265,10283,10286,10292,10320,10330,10337,10339,10348,10351,10365,10386,10393,10400,10406,10409,10414,10424,10433,10438,10440,10449,10464,10481,10483,10507,10511,10522,10525,10529,10534,10539,10551,10557,10561,10565,10569,10574,10578,10584,10605,10609],Xi.vocabulary=new Ra(Xi.literalNames,Xi.symbolicNames,[]),Xi.decisionsToDFA=Xi._ATN.decisionToState.map(((t,e)=>new ni(t,e))),Xi),nn=class extends ga{constructor(t,e){super(t,e)}EOF(){return this.getToken(cn.EOF,0)}statements(){return this.getRuleContext(0,En)}get ruleIndex(){return cn.RULE_root}accept(t){return t.visitRoot?t.visitRoot(this):t.visitChildren(this)}},hn=class extends ga{constructor(t,e){super(t,e)}plsqlFunction(){return this.getRuleContext(0,oN)}get ruleIndex(){return cn.RULE_plsqlRoot}accept(t){return t.visitPlsqlRoot?t.visitPlsqlRoot(this):t.visitChildren(this)}},En=class t extends ga{constructor(t,e){super(t,e)}statement(){return this.getRuleContext(0,Tn)}SEMI(){return this.getToken(cn.SEMI,0)}statements(){return this.getRuleContext(0,t)}get ruleIndex(){return cn.RULE_statements}accept(t){return t.visitStatements?t.visitStatements(this):t.visitChildren(this)}},Tn=class extends ga{constructor(t,e){super(t,e)}alterEventTriggerStatement(){return this.getRuleContext(0,ZT)}alterCollationStatement(){return this.getRuleContext(0,$A)}alterDatabaseStatement(){return this.getRuleContext(0,qA)}alterDatabaseSetStatement(){return this.getRuleContext(0,jA)}alterDefaultPrivilegesStatement(){return this.getRuleContext(0,tR)}alterDomainStatement(){return this.getRuleContext(0,sS)}alterEnumStatement(){return this.getRuleContext(0,io)}alterExtensionStatement(){return this.getRuleContext(0,WE)}alterExtensionContentsStatement(){return this.getRuleContext(0,XE)}alterForeignDataWrapperStatement(){return this.getRuleContext(0,ZE)}alterForeignServerStatement(){return this.getRuleContext(0,nT)}alterFunctionStatement(){return this.getRuleContext(0,yR)}alterObjectDependsStatement(){return this.getRuleContext(0,TA)}alterObjectSchemaStatement(){return this.getRuleContext(0,oA)}alterOwnerStatement(){return this.getRuleContext(0,IA)}alterOperatorStatement(){return this.getRuleContext(0,RA)}alterTypeStatement(){return this.getRuleContext(0,OA)}alterPolicyStatement(){return this.getRuleContext(0,IT)}alterSequenceStatement(){return this.getRuleContext(0,mE)}alterSystemStatement(){return this.getRuleContext(0,tS)}alterTableStatement(){return this.getRuleContext(0,jn)}alterTablespaceStatement(){return this.getRuleContext(0,cA)}alterCompositeTypeStatement(){return this.getRuleContext(0,Oh)}alterPublicationStatement(){return this.getRuleContext(0,CA)}alterRoleSetStatement(){return this.getRuleContext(0,Cn)}alterRoleStatement(){return this.getRuleContext(0,Nn)}alterSubscriptionStatement(){return this.getRuleContext(0,dA)}alterStatsStatement(){return this.getRuleContext(0,NE)}altertsConfigurationStatement(){return this.getRuleContext(0,cS)}altertsDictionaryStatement(){return this.getRuleContext(0,iS)}alterUserMappingStatement(){return this.getRuleContext(0,lT)}analyzeStatement(){return this.getRuleContext(0,oS)}callStatement(){return this.getRuleContext(0,Rn)}checkpointStatement(){return this.getRuleContext(0,Zn)}closePortalStatement(){return this.getRuleContext(0,Nh)}clusterStatement(){return this.getRuleContext(0,hS)}commentStatement(){return this.getRuleContext(0,ko)}setConstraintsStatement(){return this.getRuleContext(0,Kn)}copyStatement(){return this.getRuleContext(0,Lh)}createAccessMethodStatement(){return this.getRuleContext(0,MT)}createAsStatement(){return this.getRuleContext(0,LE)}createAssertionStatement(){return this.getRuleContext(0,jT)}createCastStatement(){return this.getRuleContext(0,ZR)}createConversionStatement(){return this.getRuleContext(0,nS)}createDomainStatement(){return this.getRuleContext(0,eS)}createExtensionStatement(){return this.getRuleContext(0,wE)}createForeignDataWrapperStatement(){return this.getRuleContext(0,KE)}createForeignServerStatement(){return this.getRuleContext(0,rT)}createForeignTableStatement(){return this.getRuleContext(0,hT)}createFunctionStatement(){return this.getRuleContext(0,SR)}createMaterializedViewStatement(){return this.getRuleContext(0,PE)}createOperatorClassStatement(){return this.getRuleContext(0,no)}createOperatorFamilyStatement(){return this.getRuleContext(0,Ro)}createPublicationStatement(){return this.getRuleContext(0,uA)}alterOperatorFamilyStatement(){return this.getRuleContext(0,Ao)}createPolicyStatement(){return this.getRuleContext(0,OT)}createProcedureLangStatement(){return this.getRuleContext(0,HE)}createSchemaStatement(){return this.getRuleContext(0,Mn)}createSequenceStatement(){return this.getRuleContext(0,UE)}createStatement(){return this.getRuleContext(0,ph)}createSubscriptionStatement(){return this.getRuleContext(0,_A)}createStatsStatement(){return this.getRuleContext(0,uE)}createTablespaceStatement(){return this.getRuleContext(0,yE)}createTransformStatement(){return this.getRuleContext(0,$R)}createTriggerStatement(){return this.getRuleContext(0,UT)}createEventTriggerStatement(){return this.getRuleContext(0,XT)}createRoleStatement(){return this.getRuleContext(0,un)}createUserMappingStatement(){return this.getRuleContext(0,RT)}createDatabaseStatement(){return this.getRuleContext(0,KA)}deallocateStatement(){return this.getRuleContext(0,xS)}declareCursorStatement(){return this.getRuleContext(0,sl)}defineStatement(){return this.getRuleContext(0,zT)}deleteStatement(){return this.getRuleContext(0,XS)}discardStatement(){return this.getRuleContext(0,qn)}doStatement(){return this.getRuleContext(0,KR)}dropCastStatement(){return this.getRuleContext(0,jR)}dropOperatorClassStatement(){return this.getRuleContext(0,Oo)}dropOperatorFamilyStatement(){return this.getRuleContext(0,Io)}dropOwnedStatement(){return this.getRuleContext(0,uo)}dropStatement(){return this.getRuleContext(0,Lo)}dropSubscriptionStatement(){return this.getRuleContext(0,UA)}dropTablespaceStatement(){return this.getRuleContext(0,YE)}dropTransformStatement(){return this.getRuleContext(0,eA)}dropRoleStatement(){return this.getRuleContext(0,_n)}dropUserMappingStatement(){return this.getRuleContext(0,ST)}dropDatabaseStatement(){return this.getRuleContext(0,zA)}executeStatement(){return this.getRuleContext(0,pS)}explainStatement(){return this.getRuleContext(0,CS)}fetchStatement(){return this.getRuleContext(0,Bo)}grantStatement(){return this.getRuleContext(0,wo)}grantPrivilegeStatement(){return this.getRuleContext(0,qo)}importForeignSchemaStatement(){return this.getRuleContext(0,ET)}indexStatement(){return this.getRuleContext(0,rR)}insertStatement(){return this.getRuleContext(0,kS)}mergeStatement(){return this.getRuleContext(0,wS)}listenStatement(){return this.getRuleContext(0,vA)}refreshMaterializedViewStatement(){return this.getRuleContext(0,dE)}loadStatement(){return this.getRuleContext(0,XA)}lockStatement(){return this.getRuleContext(0,QS)}notifyStatement(){return this.getRuleContext(0,GA)}prepareStatement(){return this.getRuleContext(0,US)}reassignOwnedStatement(){return this.getRuleContext(0,No)}reindexStatement(){return this.getRuleContext(0,sA)}removeAggregateStatement(){return this.getRuleContext(0,YR)}removeFunctionStatement(){return this.getRuleContext(0,fR)}removeOperatorStatement(){return this.getRuleContext(0,wR)}renameStatement(){return this.getRuleContext(0,nA)}revokeStatement(){return this.getRuleContext(0,bo)}revokePrivilegeStatement(){return this.getRuleContext(0,jo)}ruleStatement(){return this.getRuleContext(0,mA)}securityLabelStatement(){return this.getRuleContext(0,Go)}selectStatement(){return this.getRuleContext(0,il)}transactionStatement(){return this.getRuleContext(0,yA)}truncateStatement(){return this.getRuleContext(0,go)}unlistenStatement(){return this.getRuleContext(0,BA)}updateStatement(){return this.getRuleContext(0,zS)}vacuumStatement(){return this.getRuleContext(0,TS)}variableResetStatement(){return this.getRuleContext(0,Yn)}variableSetStatement(){return this.getRuleContext(0,Dn)}variableShowStatement(){return this.getRuleContext(0,Xn)}viewStatement(){return this.getRuleContext(0,WA)}plsqlConsoleCommand(){return this.getRuleContext(0,on)}get ruleIndex(){return cn.RULE_statement}accept(t){return t.visitStatement?t.visitStatement(this):t.visitChildren(this)}},on=class extends ga{constructor(t,e){super(t,e)}MetaCommand(){return this.getToken(cn.MetaCommand,0)}EndMetaCommand(){return this.getToken(cn.EndMetaCommand,0)}get ruleIndex(){return cn.RULE_plsqlConsoleCommand}accept(t){return t.visitPlsqlConsoleCommand?t.visitPlsqlConsoleCommand(this):t.visitChildren(this)}},Rn=class extends ga{constructor(t,e){super(t,e)}CALL(){return this.getToken(cn.CALL,0)}functionApplication(){return this.getRuleContext(0,SI)}get ruleIndex(){return cn.RULE_callStatement}accept(t){return t.visitCallStatement?t.visitCallStatement(this):t.visitChildren(this)}},An=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(cn.WITH,0)}get ruleIndex(){return cn.RULE_optionalWith}accept(t){return t.visitOptionalWith?t.visitOptionalWith(this):t.visitChildren(this)}},Sn=class extends ga{constructor(t,e){super(t,e)}createRoleElement(t){return void 0===t?this.getRuleContexts(In):this.getRuleContext(t,In)}get ruleIndex(){return cn.RULE_optionalRoleList}accept(t){return t.visitOptionalRoleList?t.visitOptionalRoleList(this):t.visitChildren(this)}},ln=class extends ga{constructor(t,e){super(t,e)}alterRoleElemement(t){return void 0===t?this.getRuleContexts(On):this.getRuleContext(t,On)}get ruleIndex(){return cn.RULE_alterOptionalRoleList}accept(t){return t.visitAlterOptionalRoleList?t.visitAlterOptionalRoleList(this):t.visitChildren(this)}},On=class extends ga{constructor(t,e){super(t,e)}PASSWORD(){return this.getToken(cn.PASSWORD,0)}sconst(){return this.getRuleContext(0,Qu)}NULL_P(){return this.getToken(cn.NULL_P,0)}ENCRYPTED(){return this.getToken(cn.ENCRYPTED,0)}UNENCRYPTED(){return this.getToken(cn.UNENCRYPTED,0)}INHERIT(){return this.getToken(cn.INHERIT,0)}CONNECTION(){return this.getToken(cn.CONNECTION,0)}LIMIT(){return this.getToken(cn.LIMIT,0)}signedIconst(){return this.getRuleContext(0,qu)}VALID(){return this.getToken(cn.VALID,0)}UNTIL(){return this.getToken(cn.UNTIL,0)}roleOrAliases(){return this.getRuleContext(0,RC)}roleNameList(){return this.getRuleContext(0,zu)}identifier(){return this.getRuleContext(0,rN)}get ruleIndex(){return cn.RULE_alterRoleElemement}accept(t){return t.visitAlterRoleElemement?t.visitAlterRoleElemement(this):t.visitChildren(this)}},In=class extends ga{constructor(t,e){super(t,e)}alterRoleElemement(){return this.getRuleContext(0,On)}SYSID(){return this.getToken(cn.SYSID,0)}iconst(){return this.getRuleContext(0,Ku)}ADMIN(){return this.getToken(cn.ADMIN,0)}roleNameList(){return this.getRuleContext(0,zu)}roleOrAliases(){return this.getRuleContext(0,RC)}IN_P(){return this.getToken(cn.IN_P,0)}get ruleIndex(){return cn.RULE_createRoleElement}accept(t){return t.visitCreateRoleElement?t.visitCreateRoleElement(this):t.visitChildren(this)}},un=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}roleOrAliases(){return this.getRuleContext(0,RC)}roleName(){return this.getRuleContext(0,ju)}optionalWith(){return this.getRuleContext(0,An)}optionalRoleList(){return this.getRuleContext(0,Sn)}get ruleIndex(){return cn.RULE_createRoleStatement}accept(t){return t.visitCreateRoleStatement?t.visitCreateRoleStatement(this):t.visitChildren(this)}},Nn=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}roleOrAliases(){return this.getRuleContext(0,RC)}roleName(){return this.getRuleContext(0,ju)}optionalWith(){return this.getRuleContext(0,An)}alterOptionalRoleList(){return this.getRuleContext(0,ln)}get ruleIndex(){return cn.RULE_alterRoleStatement}accept(t){return t.visitAlterRoleStatement?t.visitAlterRoleStatement(this):t.visitChildren(this)}},Ln=class extends ga{constructor(t,e){super(t,e)}IN_P(){return this.getToken(cn.IN_P,0)}DATABASE(){return this.getToken(cn.DATABASE,0)}databaseName(){return this.getRuleContext(0,Uu)}get ruleIndex(){return cn.RULE_optionalInDatabase}accept(t){return t.visitOptionalInDatabase?t.visitOptionalInDatabase(this):t.visitChildren(this)}},Cn=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}roleOrAliases(){return this.getRuleContext(0,RC)}roleName(){return this.getRuleContext(0,ju)}optionalInDatabase(){return this.getRuleContext(0,Ln)}setResetClause(){return this.getRuleContext(0,Wn)}ALL(){return this.getToken(cn.ALL,0)}get ruleIndex(){return cn.RULE_alterRoleSetStatement}accept(t){return t.visitAlterRoleSetStatement?t.visitAlterRoleSetStatement(this):t.visitChildren(this)}},_n=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(cn.DROP,0)}roleOrAliases(){return this.getRuleContext(0,RC)}roleNameList(){return this.getRuleContext(0,zu)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_dropRoleStatement}accept(t){return t.visitDropRoleStatement?t.visitDropRoleStatement(this):t.visitChildren(this)}},Pn=class extends ga{constructor(t,e){super(t,e)}ADD_P(){return this.getToken(cn.ADD_P,0)}DROP(){return this.getToken(cn.DROP,0)}get ruleIndex(){return cn.RULE_addOrDrop}accept(t){return t.visitAddOrDrop?t.visitAddOrDrop(this):t.visitChildren(this)}},Mn=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}optionalSchemaList(){return this.getRuleContext(0,Un)}optionalSchemaName(){return this.getRuleContext(0,dn)}AUTHORIZATION(){return this.getToken(cn.AUTHORIZATION,0)}roleName(){return this.getRuleContext(0,ju)}columnId(){return this.getRuleContext(0,$u)}IF_P(){return this.getToken(cn.IF_P,0)}NOT(){return this.getToken(cn.NOT,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_createSchemaStatement}accept(t){return t.visitCreateSchemaStatement?t.visitCreateSchemaStatement(this):t.visitChildren(this)}},dn=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}get ruleIndex(){return cn.RULE_optionalSchemaName}accept(t){return t.visitOptionalSchemaName?t.visitOptionalSchemaName(this):t.visitChildren(this)}},Un=class extends ga{constructor(t,e){super(t,e)}schemaStatement(t){return void 0===t?this.getRuleContexts(mn):this.getRuleContext(t,mn)}get ruleIndex(){return cn.RULE_optionalSchemaList}accept(t){return t.visitOptionalSchemaList?t.visitOptionalSchemaList(this):t.visitChildren(this)}},mn=class extends ga{constructor(t,e){super(t,e)}createStatement(){return this.getRuleContext(0,ph)}indexStatement(){return this.getRuleContext(0,rR)}createSequenceStatement(){return this.getRuleContext(0,UE)}createTriggerStatement(){return this.getRuleContext(0,UT)}grantStatement(){return this.getRuleContext(0,wo)}viewStatement(){return this.getRuleContext(0,WA)}get ruleIndex(){return cn.RULE_schemaStatement}accept(t){return t.visitSchemaStatement?t.visitSchemaStatement(this):t.visitChildren(this)}},Dn=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(cn.SET,0)}setStatementEnding(){return this.getRuleContext(0,pn)}LOCAL(){return this.getToken(cn.LOCAL,0)}SESSION(){return this.getToken(cn.SESSION,0)}get ruleIndex(){return cn.RULE_variableSetStatement}accept(t){return t.visitVariableSetStatement?t.visitVariableSetStatement(this):t.visitChildren(this)}},pn=class extends ga{constructor(t,e){super(t,e)}TRANSACTION(){return this.getToken(cn.TRANSACTION,0)}transactionModeList(){return this.getRuleContext(0,wA)}SESSION(){return this.getToken(cn.SESSION,0)}CHARACTERISTICS(){return this.getToken(cn.CHARACTERISTICS,0)}AS(){return this.getToken(cn.AS,0)}setStatementMore(){return this.getRuleContext(0,xn)}get ruleIndex(){return cn.RULE_setStatementEnding}accept(t){return t.visitSetStatementEnding?t.visitSetStatementEnding(this):t.visitChildren(this)}},gn=class extends ga{constructor(t,e){super(t,e)}variableName(){return this.getRuleContext(0,kn)}variableList(){return this.getRuleContext(0,Hn)}TO(){return this.getToken(cn.TO,0)}EQUAL(){return this.getToken(cn.EQUAL,0)}get ruleIndex(){return cn.RULE_genericSetClause}accept(t){return t.visitGenericSetClause?t.visitGenericSetClause(this):t.visitChildren(this)}},xn=class extends ga{constructor(t,e){super(t,e)}genericSetClause(){return this.getRuleContext(0,gn)}variableName(){return this.getRuleContext(0,kn)}FROM(){return this.getToken(cn.FROM,0)}CURRENT_P(){return this.getToken(cn.CURRENT_P,0)}TIME(){return this.getToken(cn.TIME,0)}ZONE(){return this.getToken(cn.ZONE,0)}zoneValue(){return this.getRuleContext(0,Bn)}CATALOG(){return this.getToken(cn.CATALOG,0)}sconst(){return this.getRuleContext(0,Qu)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}schemaName(){return this.getRuleContext(0,Du)}NAMES(){return this.getToken(cn.NAMES,0)}optionalEncoding(){return this.getRuleContext(0,yn)}roleOrAliases(){return this.getRuleContext(0,RC)}nonReservedWordOrSconst(){return this.getRuleContext(0,fn)}SESSION(){return this.getToken(cn.SESSION,0)}AUTHORIZATION(){return this.getToken(cn.AUTHORIZATION,0)}XML_P(){return this.getToken(cn.XML_P,0)}OPTION(){return this.getToken(cn.OPTION,0)}documentOrContent(){return this.getRuleContext(0,PI)}TRANSACTION(){return this.getToken(cn.TRANSACTION,0)}SNAPSHOT(){return this.getToken(cn.SNAPSHOT,0)}get ruleIndex(){return cn.RULE_setStatementMore}accept(t){return t.visitSetStatementMore?t.visitSetStatementMore(this):t.visitChildren(this)}},kn=class extends ga{constructor(t,e){super(t,e)}columnId(t){return void 0===t?this.getRuleContexts($u):this.getRuleContext(t,$u)}DOT(t){return void 0===t?this.getTokens(cn.DOT):this.getToken(cn.DOT,t)}get ruleIndex(){return cn.RULE_variableName}accept(t){return t.visitVariableName?t.visitVariableName(this):t.visitChildren(this)}},Hn=class extends ga{constructor(t,e){super(t,e)}variableValue(t){return void 0===t?this.getRuleContexts(Gn):this.getRuleContext(t,Gn)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_variableList}accept(t){return t.visitVariableList?t.visitVariableList(this):t.visitChildren(this)}},Gn=class extends ga{constructor(t,e){super(t,e)}booleanOrString(){return this.getRuleContext(0,vn)}numericOnly(){return this.getRuleContext(0,xE)}get ruleIndex(){return cn.RULE_variableValue}accept(t){return t.visitVariableValue?t.visitVariableValue(this):t.visitChildren(this)}},Fn=class extends ga{constructor(t,e){super(t,e)}READ(){return this.getToken(cn.READ,0)}UNCOMMITTED(){return this.getToken(cn.UNCOMMITTED,0)}COMMITTED(){return this.getToken(cn.COMMITTED,0)}REPEATABLE(){return this.getToken(cn.REPEATABLE,0)}SERIALIZABLE(){return this.getToken(cn.SERIALIZABLE,0)}get ruleIndex(){return cn.RULE_isoLevel}accept(t){return t.visitIsoLevel?t.visitIsoLevel(this):t.visitChildren(this)}},vn=class extends ga{constructor(t,e){super(t,e)}TRUE_P(){return this.getToken(cn.TRUE_P,0)}FALSE_P(){return this.getToken(cn.FALSE_P,0)}ON(){return this.getToken(cn.ON,0)}nonReservedWordOrSconst(){return this.getRuleContext(0,fn)}get ruleIndex(){return cn.RULE_booleanOrString}accept(t){return t.visitBooleanOrString?t.visitBooleanOrString(this):t.visitChildren(this)}},Bn=class extends ga{constructor(t,e){super(t,e)}sconst(){return this.getRuleContext(0,Qu)}identifier(){return this.getRuleContext(0,rN)}constInterval(){return this.getRuleContext(0,vO)}optionalInterval(){return this.getRuleContext(0,yO)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}iconst(){return this.getRuleContext(0,Ku)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}numericOnly(){return this.getRuleContext(0,xE)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}LOCAL(){return this.getToken(cn.LOCAL,0)}get ruleIndex(){return cn.RULE_zoneValue}accept(t){return t.visitZoneValue?t.visitZoneValue(this):t.visitChildren(this)}},yn=class extends ga{constructor(t,e){super(t,e)}sconst(){return this.getRuleContext(0,Qu)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}get ruleIndex(){return cn.RULE_optionalEncoding}accept(t){return t.visitOptionalEncoding?t.visitOptionalEncoding(this):t.visitChildren(this)}},fn=class extends ga{constructor(t,e){super(t,e)}nonReservedWord(){return this.getRuleContext(0,sN)}sconst(){return this.getRuleContext(0,Qu)}get ruleIndex(){return cn.RULE_nonReservedWordOrSconst}accept(t){return t.visitNonReservedWordOrSconst?t.visitNonReservedWordOrSconst(this):t.visitChildren(this)}},Yn=class extends ga{constructor(t,e){super(t,e)}RESET(){return this.getToken(cn.RESET,0)}resetClauseRest(){return this.getRuleContext(0,wn)}get ruleIndex(){return cn.RULE_variableResetStatement}accept(t){return t.visitVariableResetStatement?t.visitVariableResetStatement(this):t.visitChildren(this)}},wn=class extends ga{constructor(t,e){super(t,e)}genericResetClause(){return this.getRuleContext(0,bn)}TIME(){return this.getToken(cn.TIME,0)}ZONE(){return this.getToken(cn.ZONE,0)}TRANSACTION(){return this.getToken(cn.TRANSACTION,0)}ISOLATION(){return this.getToken(cn.ISOLATION,0)}LEVEL(){return this.getToken(cn.LEVEL,0)}SESSION(){return this.getToken(cn.SESSION,0)}AUTHORIZATION(){return this.getToken(cn.AUTHORIZATION,0)}get ruleIndex(){return cn.RULE_resetClauseRest}accept(t){return t.visitResetClauseRest?t.visitResetClauseRest(this):t.visitChildren(this)}},bn=class extends ga{constructor(t,e){super(t,e)}variableName(){return this.getRuleContext(0,kn)}ALL(){return this.getToken(cn.ALL,0)}get ruleIndex(){return cn.RULE_genericResetClause}accept(t){return t.visitGenericResetClause?t.visitGenericResetClause(this):t.visitChildren(this)}},Wn=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(cn.SET,0)}setStatementEnding(){return this.getRuleContext(0,pn)}variableResetStatement(){return this.getRuleContext(0,Yn)}get ruleIndex(){return cn.RULE_setResetClause}accept(t){return t.visitSetResetClause?t.visitSetResetClause(this):t.visitChildren(this)}},Vn=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(cn.SET,0)}setStatementMore(){return this.getRuleContext(0,xn)}variableResetStatement(){return this.getRuleContext(0,Yn)}get ruleIndex(){return cn.RULE_functionSetResetClause}accept(t){return t.visitFunctionSetResetClause?t.visitFunctionSetResetClause(this):t.visitChildren(this)}},Xn=class extends ga{constructor(t,e){super(t,e)}SHOW(){return this.getToken(cn.SHOW,0)}variableName(){return this.getRuleContext(0,kn)}TIME(){return this.getToken(cn.TIME,0)}ZONE(){return this.getToken(cn.ZONE,0)}TRANSACTION(){return this.getToken(cn.TRANSACTION,0)}ISOLATION(){return this.getToken(cn.ISOLATION,0)}LEVEL(){return this.getToken(cn.LEVEL,0)}SESSION(){return this.getToken(cn.SESSION,0)}AUTHORIZATION(){return this.getToken(cn.AUTHORIZATION,0)}ALL(){return this.getToken(cn.ALL,0)}get ruleIndex(){return cn.RULE_variableShowStatement}accept(t){return t.visitVariableShowStatement?t.visitVariableShowStatement(this):t.visitChildren(this)}},Kn=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(cn.SET,0)}CONSTRAINTS(){return this.getToken(cn.CONSTRAINTS,0)}constraintsSetList(){return this.getRuleContext(0,Qn)}constraintsSetMode(){return this.getRuleContext(0,Jn)}get ruleIndex(){return cn.RULE_setConstraintsStatement}accept(t){return t.visitSetConstraintsStatement?t.visitSetConstraintsStatement(this):t.visitChildren(this)}},Qn=class extends ga{constructor(t,e){super(t,e)}ALL(){return this.getToken(cn.ALL,0)}qualifiedNameList(){return this.getRuleContext(0,du)}get ruleIndex(){return cn.RULE_constraintsSetList}accept(t){return t.visitConstraintsSetList?t.visitConstraintsSetList(this):t.visitChildren(this)}},Jn=class extends ga{constructor(t,e){super(t,e)}DEFERRED(){return this.getToken(cn.DEFERRED,0)}IMMEDIATE(){return this.getToken(cn.IMMEDIATE,0)}get ruleIndex(){return cn.RULE_constraintsSetMode}accept(t){return t.visitConstraintsSetMode?t.visitConstraintsSetMode(this):t.visitChildren(this)}},Zn=class extends ga{constructor(t,e){super(t,e)}CHECKPOINT(){return this.getToken(cn.CHECKPOINT,0)}get ruleIndex(){return cn.RULE_checkpointStatement}accept(t){return t.visitCheckpointStatement?t.visitCheckpointStatement(this):t.visitChildren(this)}},qn=class extends ga{constructor(t,e){super(t,e)}DISCARD(){return this.getToken(cn.DISCARD,0)}ALL(){return this.getToken(cn.ALL,0)}TEMP(){return this.getToken(cn.TEMP,0)}TEMPORARY(){return this.getToken(cn.TEMPORARY,0)}PLANS(){return this.getToken(cn.PLANS,0)}SEQUENCES(){return this.getToken(cn.SEQUENCES,0)}get ruleIndex(){return cn.RULE_discardStatement}accept(t){return t.visitDiscardStatement?t.visitDiscardStatement(this):t.visitChildren(this)}},jn=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}TABLE(){return this.getToken(cn.TABLE,0)}relationExpression(){return this.getRuleContext(0,eO)}alterTableCommands(){return this.getRuleContext(0,zn)}partitionCommand(){return this.getRuleContext(0,$n)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}ALL(){return this.getToken(cn.ALL,0)}IN_P(){return this.getToken(cn.IN_P,0)}TABLESPACE(t){return void 0===t?this.getTokens(cn.TABLESPACE):this.getToken(cn.TABLESPACE,t)}name(t){return void 0===t?this.getRuleContexts(yu):this.getRuleContext(t,yu)}SET(){return this.getToken(cn.SET,0)}optionalNowait(){return this.getRuleContext(0,qS)}OWNED(){return this.getToken(cn.OWNED,0)}BY(){return this.getToken(cn.BY,0)}roleNameList(){return this.getRuleContext(0,zu)}INDEX(){return this.getToken(cn.INDEX,0)}indexName(){return this.getRuleContext(0,gu)}indexPartitionCommand(){return this.getRuleContext(0,th)}VIEW(){return this.getToken(cn.VIEW,0)}viewName(){return this.getRuleContext(0,tO)}MATERIALIZED(){return this.getToken(cn.MATERIALIZED,0)}qualifiedName(){return this.getRuleContext(0,vu)}FOREIGN(){return this.getToken(cn.FOREIGN,0)}get ruleIndex(){return cn.RULE_alterTableStatement}accept(t){return t.visitAlterTableStatement?t.visitAlterTableStatement(this):t.visitChildren(this)}},zn=class extends ga{constructor(t,e){super(t,e)}alterTableCommand(t){return void 0===t?this.getRuleContexts(eh):this.getRuleContext(t,eh)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_alterTableCommands}accept(t){return t.visitAlterTableCommands?t.visitAlterTableCommands(this):t.visitChildren(this)}},$n=class extends ga{constructor(t,e){super(t,e)}ATTACH(){return this.getToken(cn.ATTACH,0)}PARTITION(){return this.getToken(cn.PARTITION,0)}qualifiedName(){return this.getRuleContext(0,vu)}partitionBoundSpecification(){return this.getRuleContext(0,Ah)}DETACH(){return this.getToken(cn.DETACH,0)}get ruleIndex(){return cn.RULE_partitionCommand}accept(t){return t.visitPartitionCommand?t.visitPartitionCommand(this):t.visitChildren(this)}},th=class extends ga{constructor(t,e){super(t,e)}ATTACH(){return this.getToken(cn.ATTACH,0)}PARTITION(){return this.getToken(cn.PARTITION,0)}qualifiedName(){return this.getRuleContext(0,vu)}get ruleIndex(){return cn.RULE_indexPartitionCommand}accept(t){return t.visitIndexPartitionCommand?t.visitIndexPartitionCommand(this):t.visitChildren(this)}},eh=class extends ga{constructor(t,e){super(t,e)}ADD_P(){return this.getToken(cn.ADD_P,0)}columnDefinition(){return this.getRuleContext(0,Bh)}IF_P(){return this.getToken(cn.IF_P,0)}NOT(){return this.getToken(cn.NOT,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}COLUMN(){return this.getToken(cn.COLUMN,0)}ALTER(){return this.getToken(cn.ALTER,0)}optionalColumn(){return this.getRuleContext(0,hA)}columnId(t){return void 0===t?this.getRuleContexts($u):this.getRuleContext(t,$u)}alterColumnDefault(){return this.getRuleContext(0,sh)}DROP(){return this.getToken(cn.DROP,0)}NULL_P(){return this.getToken(cn.NULL_P,0)}SET(){return this.getToken(cn.SET,0)}EXPRESSION(){return this.getToken(cn.EXPRESSION,0)}STATISTICS(){return this.getToken(cn.STATISTICS,0)}signedIconst(){return this.getRuleContext(0,qu)}iconst(){return this.getRuleContext(0,Ku)}relOptions(){return this.getRuleContext(0,nh)}RESET(){return this.getToken(cn.RESET,0)}STORAGE(){return this.getToken(cn.STORAGE,0)}GENERATED(){return this.getToken(cn.GENERATED,0)}generatedWhen(){return this.getRuleContext(0,bh)}AS(){return this.getToken(cn.AS,0)}IDENTITY_P(){return this.getToken(cn.IDENTITY_P,0)}optionalParenthesizedSeqOptionsList(){return this.getRuleContext(0,DE)}alterIdentityColumnOptionList(){return this.getRuleContext(0,oh)}optionalDropBehavior(){return this.getRuleContext(0,ah)}optionalSetData(){return this.getRuleContext(0,EA)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}typeName(){return this.getRuleContext(0,LO)}optionalCollateClause(){return this.getRuleContext(0,rh)}alterUsing(){return this.getRuleContext(0,ih)}alterGenericOptions(){return this.getRuleContext(0,zE)}tableConstraint(){return this.getRuleContext(0,Qh)}CONSTRAINT(){return this.getToken(cn.CONSTRAINT,0)}constraintName(){return this.getRuleContext(0,Hu)}constraintAttributeElement(t){return void 0===t?this.getRuleContexts(VT):this.getRuleContext(t,VT)}VALIDATE(){return this.getToken(cn.VALIDATE,0)}WITHOUT(){return this.getToken(cn.WITHOUT,0)}OIDS(){return this.getToken(cn.OIDS,0)}CLUSTER(){return this.getToken(cn.CLUSTER,0)}ON(){return this.getToken(cn.ON,0)}name(){return this.getRuleContext(0,yu)}LOGGED(){return this.getToken(cn.LOGGED,0)}UNLOGGED(){return this.getToken(cn.UNLOGGED,0)}ENABLE_P(){return this.getToken(cn.ENABLE_P,0)}TRIGGER(){return this.getToken(cn.TRIGGER,0)}triggerName(){return this.getRuleContext(0,ku)}ALWAYS(){return this.getToken(cn.ALWAYS,0)}REPLICA(){return this.getToken(cn.REPLICA,0)}ALL(){return this.getToken(cn.ALL,0)}USER(){return this.getToken(cn.USER,0)}DISABLE_P(){return this.getToken(cn.DISABLE_P,0)}RULE(){return this.getToken(cn.RULE,0)}INHERIT(){return this.getToken(cn.INHERIT,0)}qualifiedName(){return this.getRuleContext(0,vu)}NO(){return this.getToken(cn.NO,0)}OF(){return this.getToken(cn.OF,0)}anyName(){return this.getRuleContext(0,mo)}OWNER(){return this.getToken(cn.OWNER,0)}TO(){return this.getToken(cn.TO,0)}roleName(){return this.getRuleContext(0,ju)}TABLESPACE(){return this.getToken(cn.TABLESPACE,0)}replicaIdentity(){return this.getRuleContext(0,ch)}ROW(){return this.getToken(cn.ROW,0)}LEVEL(){return this.getToken(cn.LEVEL,0)}SECURITY(){return this.getToken(cn.SECURITY,0)}FORCE(){return this.getToken(cn.FORCE,0)}get ruleIndex(){return cn.RULE_alterTableCommand}accept(t){return t.visitAlterTableCommand?t.visitAlterTableCommand(this):t.visitChildren(this)}},sh=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(cn.SET,0)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}expression1(){return this.getRuleContext(0,wO)}DROP(){return this.getToken(cn.DROP,0)}get ruleIndex(){return cn.RULE_alterColumnDefault}accept(t){return t.visitAlterColumnDefault?t.visitAlterColumnDefault(this):t.visitChildren(this)}},ah=class extends ga{constructor(t,e){super(t,e)}CASCADE(){return this.getToken(cn.CASCADE,0)}RESTRICT(){return this.getToken(cn.RESTRICT,0)}get ruleIndex(){return cn.RULE_optionalDropBehavior}accept(t){return t.visitOptionalDropBehavior?t.visitOptionalDropBehavior(this):t.visitChildren(this)}},rh=class extends ga{constructor(t,e){super(t,e)}COLLATE(){return this.getToken(cn.COLLATE,0)}anyName(){return this.getRuleContext(0,mo)}get ruleIndex(){return cn.RULE_optionalCollateClause}accept(t){return t.visitOptionalCollateClause?t.visitOptionalCollateClause(this):t.visitChildren(this)}},ih=class extends ga{constructor(t,e){super(t,e)}USING(){return this.getToken(cn.USING,0)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_alterUsing}accept(t){return t.visitAlterUsing?t.visitAlterUsing(this):t.visitChildren(this)}},ch=class extends ga{constructor(t,e){super(t,e)}NOTHING(){return this.getToken(cn.NOTHING,0)}FULL(){return this.getToken(cn.FULL,0)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}USING(){return this.getToken(cn.USING,0)}INDEX(){return this.getToken(cn.INDEX,0)}indexName(){return this.getRuleContext(0,gu)}get ruleIndex(){return cn.RULE_replicaIdentity}accept(t){return t.visitReplicaIdentity?t.visitReplicaIdentity(this):t.visitChildren(this)}},nh=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}relOptionList(){return this.getRuleContext(0,Eh)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_relOptions}accept(t){return t.visitRelOptions?t.visitRelOptions(this):t.visitChildren(this)}},hh=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(cn.WITH,0)}relOptions(){return this.getRuleContext(0,nh)}get ruleIndex(){return cn.RULE_optionalRelOptions}accept(t){return t.visitOptionalRelOptions?t.visitOptionalRelOptions(this):t.visitChildren(this)}},Eh=class extends ga{constructor(t,e){super(t,e)}relOptionElem(t){return void 0===t?this.getRuleContexts(Th):this.getRuleContext(t,Th)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_relOptionList}accept(t){return t.visitRelOptionList?t.visitRelOptionList(this):t.visitChildren(this)}},Th=class extends ga{constructor(t,e){super(t,e)}columnLabel(t){return void 0===t?this.getRuleContexts(aN):this.getRuleContext(t,aN)}EQUAL(){return this.getToken(cn.EQUAL,0)}definitionArgument(){return this.getRuleContext(0,eo)}DOT(){return this.getToken(cn.DOT,0)}get ruleIndex(){return cn.RULE_relOptionElem}accept(t){return t.visitRelOptionElem?t.visitRelOptionElem(this):t.visitChildren(this)}},oh=class extends ga{constructor(t,e){super(t,e)}alterIdentityColumnOption(t){return void 0===t?this.getRuleContexts(Rh):this.getRuleContext(t,Rh)}get ruleIndex(){return cn.RULE_alterIdentityColumnOptionList}accept(t){return t.visitAlterIdentityColumnOptionList?t.visitAlterIdentityColumnOptionList(this):t.visitChildren(this)}},Rh=class extends ga{constructor(t,e){super(t,e)}RESTART(){return this.getToken(cn.RESTART,0)}optionalWith(){return this.getRuleContext(0,An)}numericOnly(){return this.getRuleContext(0,xE)}SET(){return this.getToken(cn.SET,0)}sequenceOptionItem(){return this.getRuleContext(0,gE)}GENERATED(){return this.getToken(cn.GENERATED,0)}generatedWhen(){return this.getRuleContext(0,bh)}get ruleIndex(){return cn.RULE_alterIdentityColumnOption}accept(t){return t.visitAlterIdentityColumnOption?t.visitAlterIdentityColumnOption(this):t.visitChildren(this)}},Ah=class extends ga{constructor(t,e){super(t,e)}FOR(){return this.getToken(cn.FOR,0)}VALUES(){return this.getToken(cn.VALUES,0)}WITH(){return this.getToken(cn.WITH,0)}OPEN_PAREN(t){return void 0===t?this.getTokens(cn.OPEN_PAREN):this.getToken(cn.OPEN_PAREN,t)}hashPartitionBound(){return this.getRuleContext(0,lh)}CLOSE_PAREN(t){return void 0===t?this.getTokens(cn.CLOSE_PAREN):this.getToken(cn.CLOSE_PAREN,t)}IN_P(){return this.getToken(cn.IN_P,0)}expressionList(t){return void 0===t?this.getRuleContexts(ZI):this.getRuleContext(t,ZI)}FROM(){return this.getToken(cn.FROM,0)}TO(){return this.getToken(cn.TO,0)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}get ruleIndex(){return cn.RULE_partitionBoundSpecification}accept(t){return t.visitPartitionBoundSpecification?t.visitPartitionBoundSpecification(this):t.visitChildren(this)}},Sh=class extends ga{constructor(t,e){super(t,e)}nonReservedWord(){return this.getRuleContext(0,sN)}iconst(){return this.getRuleContext(0,Ku)}get ruleIndex(){return cn.RULE_hashPartitionBoundElement}accept(t){return t.visitHashPartitionBoundElement?t.visitHashPartitionBoundElement(this):t.visitChildren(this)}},lh=class extends ga{constructor(t,e){super(t,e)}hashPartitionBoundElement(t){return void 0===t?this.getRuleContexts(Sh):this.getRuleContext(t,Sh)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_hashPartitionBound}accept(t){return t.visitHashPartitionBound?t.visitHashPartitionBound(this):t.visitChildren(this)}},Oh=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}anyName(){return this.getRuleContext(0,mo)}alterTypeCommands(){return this.getRuleContext(0,Ih)}get ruleIndex(){return cn.RULE_alterCompositeTypeStatement}accept(t){return t.visitAlterCompositeTypeStatement?t.visitAlterCompositeTypeStatement(this):t.visitChildren(this)}},Ih=class extends ga{constructor(t,e){super(t,e)}alterTypeCommand(t){return void 0===t?this.getRuleContexts(uh):this.getRuleContext(t,uh)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_alterTypeCommands}accept(t){return t.visitAlterTypeCommands?t.visitAlterTypeCommands(this):t.visitChildren(this)}},uh=class extends ga{constructor(t,e){super(t,e)}ADD_P(){return this.getToken(cn.ADD_P,0)}ATTRIBUTE(){return this.getToken(cn.ATTRIBUTE,0)}tableFunctionElement(){return this.getRuleContext(0,AO)}optionalDropBehavior(){return this.getRuleContext(0,ah)}DROP(){return this.getToken(cn.DROP,0)}columnId(){return this.getRuleContext(0,$u)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}ALTER(){return this.getToken(cn.ALTER,0)}optionalSetData(){return this.getRuleContext(0,EA)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}typeName(){return this.getRuleContext(0,LO)}optionalCollateClause(){return this.getRuleContext(0,rh)}get ruleIndex(){return cn.RULE_alterTypeCommand}accept(t){return t.visitAlterTypeCommand?t.visitAlterTypeCommand(this):t.visitChildren(this)}},Nh=class extends ga{constructor(t,e){super(t,e)}CLOSE(){return this.getToken(cn.CLOSE,0)}cursorName(){return this.getRuleContext(0,al)}ALL(){return this.getToken(cn.ALL,0)}get ruleIndex(){return cn.RULE_closePortalStatement}accept(t){return t.visitClosePortalStatement?t.visitClosePortalStatement(this):t.visitChildren(this)}},Lh=class extends ga{constructor(t,e){super(t,e)}COPY(){return this.getToken(cn.COPY,0)}qualifiedName(){return this.getRuleContext(0,vu)}columnListWithParentheses(){return this.getRuleContext(0,Zh)}fromOrTo(){return this.getRuleContext(0,Ch)}copyFileName(){return this.getRuleContext(0,_h)}copyDelimiter(){return this.getRuleContext(0,dh)}optionalWith(){return this.getRuleContext(0,An)}copyOptions(){return this.getRuleContext(0,Ph)}whereClause(){return this.getRuleContext(0,EO)}BINARY(){return this.getToken(cn.BINARY,0)}PROGRAM(){return this.getToken(cn.PROGRAM,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}preparableStatement(){return this.getRuleContext(0,DS)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}TO(){return this.getToken(cn.TO,0)}get ruleIndex(){return cn.RULE_copyStatement}accept(t){return t.visitCopyStatement?t.visitCopyStatement(this):t.visitChildren(this)}},Ch=class extends ga{constructor(t,e){super(t,e)}FROM(){return this.getToken(cn.FROM,0)}TO(){return this.getToken(cn.TO,0)}get ruleIndex(){return cn.RULE_fromOrTo}accept(t){return t.visitFromOrTo?t.visitFromOrTo(this):t.visitChildren(this)}},_h=class extends ga{constructor(t,e){super(t,e)}sconst(){return this.getRuleContext(0,Qu)}STDIN(){return this.getToken(cn.STDIN,0)}STDOUT(){return this.getToken(cn.STDOUT,0)}get ruleIndex(){return cn.RULE_copyFileName}accept(t){return t.visitCopyFileName?t.visitCopyFileName(this):t.visitChildren(this)}},Ph=class extends ga{constructor(t,e){super(t,e)}copyOptionsItem(t){return void 0===t?this.getRuleContexts(Mh):this.getRuleContext(t,Mh)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}copyGenericOptionList(){return this.getRuleContext(0,Uh)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_copyOptions}accept(t){return t.visitCopyOptions?t.visitCopyOptions(this):t.visitChildren(this)}},Mh=class extends ga{constructor(t,e){super(t,e)}BINARY(){return this.getToken(cn.BINARY,0)}FREEZE(){return this.getToken(cn.FREEZE,0)}DELIMITER(){return this.getToken(cn.DELIMITER,0)}optionalAs(){return this.getRuleContext(0,rS)}sconst(){return this.getRuleContext(0,Qu)}NULL_P(){return this.getToken(cn.NULL_P,0)}CSV(){return this.getToken(cn.CSV,0)}HEADER_P(){return this.getToken(cn.HEADER_P,0)}QUOTE(){return this.getToken(cn.QUOTE,0)}ESCAPE(){return this.getToken(cn.ESCAPE,0)}FORCE(){return this.getToken(cn.FORCE,0)}columnList(){return this.getRuleContext(0,qh)}STAR(){return this.getToken(cn.STAR,0)}NOT(){return this.getToken(cn.NOT,0)}ENCODING(){return this.getToken(cn.ENCODING,0)}get ruleIndex(){return cn.RULE_copyOptionsItem}accept(t){return t.visitCopyOptionsItem?t.visitCopyOptionsItem(this):t.visitChildren(this)}},dh=class extends ga{constructor(t,e){super(t,e)}DELIMITERS(){return this.getToken(cn.DELIMITERS,0)}sconst(){return this.getRuleContext(0,Qu)}USING(){return this.getToken(cn.USING,0)}get ruleIndex(){return cn.RULE_copyDelimiter}accept(t){return t.visitCopyDelimiter?t.visitCopyDelimiter(this):t.visitChildren(this)}},Uh=class extends ga{constructor(t,e){super(t,e)}copyGenericOptionElem(t){return void 0===t?this.getRuleContexts(mh):this.getRuleContext(t,mh)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_copyGenericOptionList}accept(t){return t.visitCopyGenericOptionList?t.visitCopyGenericOptionList(this):t.visitChildren(this)}},mh=class extends ga{constructor(t,e){super(t,e)}columnLabel(){return this.getRuleContext(0,aN)}copyGenericOptionArgument(){return this.getRuleContext(0,Dh)}get ruleIndex(){return cn.RULE_copyGenericOptionElem}accept(t){return t.visitCopyGenericOptionElem?t.visitCopyGenericOptionElem(this):t.visitChildren(this)}},Dh=class extends ga{constructor(t,e){super(t,e)}booleanOrString(t){return void 0===t?this.getRuleContexts(vn):this.getRuleContext(t,vn)}numericOnly(){return this.getRuleContext(0,xE)}STAR(){return this.getToken(cn.STAR,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_copyGenericOptionArgument}accept(t){return t.visitCopyGenericOptionArgument?t.visitCopyGenericOptionArgument(this):t.visitChildren(this)}},ph=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}temporaryOption(){return this.getRuleContext(0,gh)}TABLE(){return this.getToken(cn.TABLE,0)}qualifiedName(t){return void 0===t?this.getRuleContexts(vu):this.getRuleContext(t,vu)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}optionalTableElementList(){return this.getRuleContext(0,xh)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}inheritClause(){return this.getRuleContext(0,nE)}optionalPartitionSpecification(){return this.getRuleContext(0,hE)}optionalTableAccessMethodClause(){return this.getRuleContext(0,RE)}with(){return this.getRuleContext(0,AE)}onCommitOption(){return this.getRuleContext(0,SE)}optionalTablespace(){return this.getRuleContext(0,lE)}OF(){return this.getToken(cn.OF,0)}anyName(){return this.getRuleContext(0,mo)}optionalTypedTableElementList(){return this.getRuleContext(0,kh)}PARTITION(){return this.getToken(cn.PARTITION,0)}partitionBoundSpecification(){return this.getRuleContext(0,Ah)}IF_P(){return this.getToken(cn.IF_P,0)}NOT(){return this.getToken(cn.NOT,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_createStatement}accept(t){return t.visitCreateStatement?t.visitCreateStatement(this):t.visitChildren(this)}},gh=class extends ga{constructor(t,e){super(t,e)}TEMPORARY(){return this.getToken(cn.TEMPORARY,0)}TEMP(){return this.getToken(cn.TEMP,0)}LOCAL(){return this.getToken(cn.LOCAL,0)}GLOBAL(){return this.getToken(cn.GLOBAL,0)}UNLOGGED(){return this.getToken(cn.UNLOGGED,0)}get ruleIndex(){return cn.RULE_temporaryOption}accept(t){return t.visitTemporaryOption?t.visitTemporaryOption(this):t.visitChildren(this)}},xh=class extends ga{constructor(t,e){super(t,e)}tableElementList(){return this.getRuleContext(0,Hh)}get ruleIndex(){return cn.RULE_optionalTableElementList}accept(t){return t.visitOptionalTableElementList?t.visitOptionalTableElementList(this):t.visitChildren(this)}},kh=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}typedTableElementList(){return this.getRuleContext(0,Gh)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_optionalTypedTableElementList}accept(t){return t.visitOptionalTypedTableElementList?t.visitOptionalTypedTableElementList(this):t.visitChildren(this)}},Hh=class extends ga{constructor(t,e){super(t,e)}tableElement(t){return void 0===t?this.getRuleContexts(Fh):this.getRuleContext(t,Fh)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_tableElementList}accept(t){return t.visitTableElementList?t.visitTableElementList(this):t.visitChildren(this)}},Gh=class extends ga{constructor(t,e){super(t,e)}typedTableElement(t){return void 0===t?this.getRuleContexts(vh):this.getRuleContext(t,vh)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_typedTableElementList}accept(t){return t.visitTypedTableElementList?t.visitTypedTableElementList(this):t.visitChildren(this)}},Fh=class extends ga{constructor(t,e){super(t,e)}tableConstraint(){return this.getRuleContext(0,Qh)}tableLikeClause(){return this.getRuleContext(0,Vh)}columnDefinition(){return this.getRuleContext(0,Bh)}get ruleIndex(){return cn.RULE_tableElement}accept(t){return t.visitTableElement?t.visitTableElement(this):t.visitChildren(this)}},vh=class extends ga{constructor(t,e){super(t,e)}columnOptions(){return this.getRuleContext(0,yh)}tableConstraint(){return this.getRuleContext(0,Qh)}get ruleIndex(){return cn.RULE_typedTableElement}accept(t){return t.visitTypedTableElement?t.visitTypedTableElement(this):t.visitChildren(this)}},Bh=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}typeName(){return this.getRuleContext(0,LO)}createGenericOptions(){return this.getRuleContext(0,qE)}columnQualifierList(){return this.getRuleContext(0,fh)}get ruleIndex(){return cn.RULE_columnDefinition}accept(t){return t.visitColumnDefinition?t.visitColumnDefinition(this):t.visitChildren(this)}},yh=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}columnQualifierList(){return this.getRuleContext(0,fh)}WITH(){return this.getToken(cn.WITH,0)}OPTIONS(){return this.getToken(cn.OPTIONS,0)}get ruleIndex(){return cn.RULE_columnOptions}accept(t){return t.visitColumnOptions?t.visitColumnOptions(this):t.visitChildren(this)}},fh=class extends ga{constructor(t,e){super(t,e)}columnConstraint(t){return void 0===t?this.getRuleContexts(Yh):this.getRuleContext(t,Yh)}get ruleIndex(){return cn.RULE_columnQualifierList}accept(t){return t.visitColumnQualifierList?t.visitColumnQualifierList(this):t.visitChildren(this)}},Yh=class extends ga{constructor(t,e){super(t,e)}CONSTRAINT(){return this.getToken(cn.CONSTRAINT,0)}name(){return this.getRuleContext(0,yu)}columnConstraintElement(){return this.getRuleContext(0,wh)}constraintAttribute(){return this.getRuleContext(0,Wh)}COLLATE(){return this.getToken(cn.COLLATE,0)}anyName(){return this.getRuleContext(0,mo)}get ruleIndex(){return cn.RULE_columnConstraint}accept(t){return t.visitColumnConstraint?t.visitColumnConstraint(this):t.visitChildren(this)}},wh=class extends ga{constructor(t,e){super(t,e)}NOT(){return this.getToken(cn.NOT,0)}NULL_P(){return this.getToken(cn.NULL_P,0)}UNIQUE(){return this.getToken(cn.UNIQUE,0)}optionalDefinition(){return this.getRuleContext(0,FR)}usingIndexTablespace(){return this.getRuleContext(0,OE)}PRIMARY(){return this.getToken(cn.PRIMARY,0)}KEY(){return this.getToken(cn.KEY,0)}CHECK(){return this.getToken(cn.CHECK,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expression1(){return this.getRuleContext(0,wO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}NO(){return this.getToken(cn.NO,0)}INHERIT(){return this.getToken(cn.INHERIT,0)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}expression2(){return this.getRuleContext(0,hI)}GENERATED(){return this.getToken(cn.GENERATED,0)}generatedWhen(){return this.getRuleContext(0,bh)}AS(){return this.getToken(cn.AS,0)}IDENTITY_P(){return this.getToken(cn.IDENTITY_P,0)}optionalParenthesizedSeqOptionsList(){return this.getRuleContext(0,DE)}STORED(){return this.getToken(cn.STORED,0)}REFERENCES(){return this.getToken(cn.REFERENCES,0)}qualifiedName(){return this.getRuleContext(0,vu)}columnListWithParentheses(){return this.getRuleContext(0,Zh)}matchClause(){return this.getRuleContext(0,$h)}keyActions(){return this.getRuleContext(0,aE)}get ruleIndex(){return cn.RULE_columnConstraintElement}accept(t){return t.visitColumnConstraintElement?t.visitColumnConstraintElement(this):t.visitChildren(this)}},bh=class extends ga{constructor(t,e){super(t,e)}ALWAYS(){return this.getToken(cn.ALWAYS,0)}BY(){return this.getToken(cn.BY,0)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}get ruleIndex(){return cn.RULE_generatedWhen}accept(t){return t.visitGeneratedWhen?t.visitGeneratedWhen(this):t.visitChildren(this)}},Wh=class extends ga{constructor(t,e){super(t,e)}DEFERRABLE(){return this.getToken(cn.DEFERRABLE,0)}NOT(){return this.getToken(cn.NOT,0)}INITIALLY(){return this.getToken(cn.INITIALLY,0)}DEFERRED(){return this.getToken(cn.DEFERRED,0)}IMMEDIATE(){return this.getToken(cn.IMMEDIATE,0)}get ruleIndex(){return cn.RULE_constraintAttribute}accept(t){return t.visitConstraintAttribute?t.visitConstraintAttribute(this):t.visitChildren(this)}},Vh=class extends ga{constructor(t,e){super(t,e)}LIKE(){return this.getToken(cn.LIKE,0)}qualifiedName(){return this.getRuleContext(0,vu)}tableLikeOptionList(){return this.getRuleContext(0,Xh)}get ruleIndex(){return cn.RULE_tableLikeClause}accept(t){return t.visitTableLikeClause?t.visitTableLikeClause(this):t.visitChildren(this)}},Xh=class extends ga{constructor(t,e){super(t,e)}tableLikeOption(t){return void 0===t?this.getRuleContexts(Kh):this.getRuleContext(t,Kh)}INCLUDING(t){return void 0===t?this.getTokens(cn.INCLUDING):this.getToken(cn.INCLUDING,t)}EXCLUDING(t){return void 0===t?this.getTokens(cn.EXCLUDING):this.getToken(cn.EXCLUDING,t)}get ruleIndex(){return cn.RULE_tableLikeOptionList}accept(t){return t.visitTableLikeOptionList?t.visitTableLikeOptionList(this):t.visitChildren(this)}},Kh=class extends ga{constructor(t,e){super(t,e)}COMMENTS(){return this.getToken(cn.COMMENTS,0)}CONSTRAINTS(){return this.getToken(cn.CONSTRAINTS,0)}DEFAULTS(){return this.getToken(cn.DEFAULTS,0)}IDENTITY_P(){return this.getToken(cn.IDENTITY_P,0)}GENERATED(){return this.getToken(cn.GENERATED,0)}INDEXES(){return this.getToken(cn.INDEXES,0)}STATISTICS(){return this.getToken(cn.STATISTICS,0)}STORAGE(){return this.getToken(cn.STORAGE,0)}ALL(){return this.getToken(cn.ALL,0)}get ruleIndex(){return cn.RULE_tableLikeOption}accept(t){return t.visitTableLikeOption?t.visitTableLikeOption(this):t.visitChildren(this)}},Qh=class extends ga{constructor(t,e){super(t,e)}CONSTRAINT(){return this.getToken(cn.CONSTRAINT,0)}name(){return this.getRuleContext(0,yu)}constraintElement(){return this.getRuleContext(0,Jh)}get ruleIndex(){return cn.RULE_tableConstraint}accept(t){return t.visitTableConstraint?t.visitTableConstraint(this):t.visitChildren(this)}},Jh=class extends ga{constructor(t,e){super(t,e)}CHECK(){return this.getToken(cn.CHECK,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expression1(){return this.getRuleContext(0,wO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}constraintAttributeSpecification(){return this.getRuleContext(0,WT)}UNIQUE(){return this.getToken(cn.UNIQUE,0)}columnList(){return this.getRuleContext(0,qh)}optionalColumnListInclude(){return this.getRuleContext(0,zh)}optionalDefinition(){return this.getRuleContext(0,FR)}usingIndexTablespace(){return this.getRuleContext(0,OE)}existingIndex(){return this.getRuleContext(0,IE)}PRIMARY(){return this.getToken(cn.PRIMARY,0)}KEY(){return this.getToken(cn.KEY,0)}EXCLUDE(){return this.getToken(cn.EXCLUDE,0)}optionalAccessMethodClause(){return this.getRuleContext(0,iR)}exclusionConstraintList(){return this.getRuleContext(0,tE)}exclusionWhereClause(){return this.getRuleContext(0,sE)}FOREIGN(){return this.getToken(cn.FOREIGN,0)}REFERENCES(){return this.getToken(cn.REFERENCES,0)}qualifiedName(){return this.getRuleContext(0,vu)}columnListWithParentheses(){return this.getRuleContext(0,Zh)}matchClause(){return this.getRuleContext(0,$h)}keyActions(){return this.getRuleContext(0,aE)}get ruleIndex(){return cn.RULE_constraintElement}accept(t){return t.visitConstraintElement?t.visitConstraintElement(this):t.visitChildren(this)}},Zh=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}columnList(){return this.getRuleContext(0,qh)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_columnListWithParentheses}accept(t){return t.visitColumnListWithParentheses?t.visitColumnListWithParentheses(this):t.visitChildren(this)}},qh=class extends ga{constructor(t,e){super(t,e)}columnElement(t){return void 0===t?this.getRuleContexts(jh):this.getRuleContext(t,jh)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_columnList}accept(t){return t.visitColumnList?t.visitColumnList(this):t.visitChildren(this)}},jh=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}get ruleIndex(){return cn.RULE_columnElement}accept(t){return t.visitColumnElement?t.visitColumnElement(this):t.visitChildren(this)}},zh=class extends ga{constructor(t,e){super(t,e)}INCLUDE(){return this.getToken(cn.INCLUDE,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}columnList(){return this.getRuleContext(0,qh)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_optionalColumnListInclude}accept(t){return t.visitOptionalColumnListInclude?t.visitOptionalColumnListInclude(this):t.visitChildren(this)}},$h=class extends ga{constructor(t,e){super(t,e)}MATCH(){return this.getToken(cn.MATCH,0)}FULL(){return this.getToken(cn.FULL,0)}PARTIAL(){return this.getToken(cn.PARTIAL,0)}SIMPLE(){return this.getToken(cn.SIMPLE,0)}get ruleIndex(){return cn.RULE_matchClause}accept(t){return t.visitMatchClause?t.visitMatchClause(this):t.visitChildren(this)}},tE=class extends ga{constructor(t,e){super(t,e)}exclusionConstraintElement(t){return void 0===t?this.getRuleContexts(eE):this.getRuleContext(t,eE)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_exclusionConstraintList}accept(t){return t.visitExclusionConstraintList?t.visitExclusionConstraintList(this):t.visitChildren(this)}},eE=class extends ga{constructor(t,e){super(t,e)}indexElement(){return this.getRuleContext(0,hR)}WITH(){return this.getToken(cn.WITH,0)}anyOperator(){return this.getRuleContext(0,WR)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_exclusionConstraintElement}accept(t){return t.visitExclusionConstraintElement?t.visitExclusionConstraintElement(this):t.visitChildren(this)}},sE=class extends ga{constructor(t,e){super(t,e)}WHERE(){return this.getToken(cn.WHERE,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expression1(){return this.getRuleContext(0,wO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_exclusionWhereClause}accept(t){return t.visitExclusionWhereClause?t.visitExclusionWhereClause(this):t.visitChildren(this)}},aE=class extends ga{constructor(t,e){super(t,e)}onKeyUpdateClause(){return this.getRuleContext(0,rE)}onKeyDeleteClause(){return this.getRuleContext(0,iE)}get ruleIndex(){return cn.RULE_keyActions}accept(t){return t.visitKeyActions?t.visitKeyActions(this):t.visitChildren(this)}},rE=class extends ga{constructor(t,e){super(t,e)}ON(){return this.getToken(cn.ON,0)}UPDATE(){return this.getToken(cn.UPDATE,0)}keyAction(){return this.getRuleContext(0,cE)}get ruleIndex(){return cn.RULE_onKeyUpdateClause}accept(t){return t.visitOnKeyUpdateClause?t.visitOnKeyUpdateClause(this):t.visitChildren(this)}},iE=class extends ga{constructor(t,e){super(t,e)}ON(){return this.getToken(cn.ON,0)}DELETE_P(){return this.getToken(cn.DELETE_P,0)}keyAction(){return this.getRuleContext(0,cE)}get ruleIndex(){return cn.RULE_onKeyDeleteClause}accept(t){return t.visitOnKeyDeleteClause?t.visitOnKeyDeleteClause(this):t.visitChildren(this)}},cE=class extends ga{constructor(t,e){super(t,e)}NO(){return this.getToken(cn.NO,0)}ACTION(){return this.getToken(cn.ACTION,0)}RESTRICT(){return this.getToken(cn.RESTRICT,0)}CASCADE(){return this.getToken(cn.CASCADE,0)}SET(){return this.getToken(cn.SET,0)}NULL_P(){return this.getToken(cn.NULL_P,0)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}get ruleIndex(){return cn.RULE_keyAction}accept(t){return t.visitKeyAction?t.visitKeyAction(this):t.visitChildren(this)}},nE=class extends ga{constructor(t,e){super(t,e)}INHERITS(){return this.getToken(cn.INHERITS,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}qualifiedNameList(){return this.getRuleContext(0,du)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_inheritClause}accept(t){return t.visitInheritClause?t.visitInheritClause(this):t.visitChildren(this)}},hE=class extends ga{constructor(t,e){super(t,e)}partitionSpecification(){return this.getRuleContext(0,EE)}get ruleIndex(){return cn.RULE_optionalPartitionSpecification}accept(t){return t.visitOptionalPartitionSpecification?t.visitOptionalPartitionSpecification(this):t.visitChildren(this)}},EE=class extends ga{constructor(t,e){super(t,e)}PARTITION(){return this.getToken(cn.PARTITION,0)}BY(){return this.getToken(cn.BY,0)}columnId(){return this.getRuleContext(0,$u)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}partitionElements(){return this.getRuleContext(0,TE)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_partitionSpecification}accept(t){return t.visitPartitionSpecification?t.visitPartitionSpecification(this):t.visitChildren(this)}},TE=class extends ga{constructor(t,e){super(t,e)}partitionElement(t){return void 0===t?this.getRuleContexts(oE):this.getRuleContext(t,oE)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_partitionElements}accept(t){return t.visitPartitionElements?t.visitPartitionElements(this):t.visitChildren(this)}},oE=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}optionalCollate(){return this.getRuleContext(0,TR)}optionalClass(){return this.getRuleContext(0,oR)}functionExpressionWindowless(){return this.getRuleContext(0,OI)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expression1(){return this.getRuleContext(0,wO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_partitionElement}accept(t){return t.visitPartitionElement?t.visitPartitionElement(this):t.visitChildren(this)}},RE=class extends ga{constructor(t,e){super(t,e)}USING(){return this.getToken(cn.USING,0)}name(){return this.getRuleContext(0,yu)}get ruleIndex(){return cn.RULE_optionalTableAccessMethodClause}accept(t){return t.visitOptionalTableAccessMethodClause?t.visitOptionalTableAccessMethodClause(this):t.visitChildren(this)}},AE=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(cn.WITH,0)}relOptions(){return this.getRuleContext(0,nh)}WITHOUT(){return this.getToken(cn.WITHOUT,0)}OIDS(){return this.getToken(cn.OIDS,0)}get ruleIndex(){return cn.RULE_with}accept(t){return t.visitWith?t.visitWith(this):t.visitChildren(this)}},SE=class extends ga{constructor(t,e){super(t,e)}ON(){return this.getToken(cn.ON,0)}COMMIT(){return this.getToken(cn.COMMIT,0)}DROP(){return this.getToken(cn.DROP,0)}DELETE_P(){return this.getToken(cn.DELETE_P,0)}ROWS(){return this.getToken(cn.ROWS,0)}PRESERVE(){return this.getToken(cn.PRESERVE,0)}get ruleIndex(){return cn.RULE_onCommitOption}accept(t){return t.visitOnCommitOption?t.visitOnCommitOption(this):t.visitChildren(this)}},lE=class extends ga{constructor(t,e){super(t,e)}TABLESPACE(){return this.getToken(cn.TABLESPACE,0)}name(){return this.getRuleContext(0,yu)}get ruleIndex(){return cn.RULE_optionalTablespace}accept(t){return t.visitOptionalTablespace?t.visitOptionalTablespace(this):t.visitChildren(this)}},OE=class extends ga{constructor(t,e){super(t,e)}USING(){return this.getToken(cn.USING,0)}INDEX(){return this.getToken(cn.INDEX,0)}TABLESPACE(){return this.getToken(cn.TABLESPACE,0)}name(){return this.getRuleContext(0,yu)}get ruleIndex(){return cn.RULE_usingIndexTablespace}accept(t){return t.visitUsingIndexTablespace?t.visitUsingIndexTablespace(this):t.visitChildren(this)}},IE=class extends ga{constructor(t,e){super(t,e)}USING(){return this.getToken(cn.USING,0)}INDEX(){return this.getToken(cn.INDEX,0)}indexName(){return this.getRuleContext(0,gu)}get ruleIndex(){return cn.RULE_existingIndex}accept(t){return t.visitExistingIndex?t.visitExistingIndex(this):t.visitChildren(this)}},uE=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}STATISTICS(){return this.getToken(cn.STATISTICS,0)}anyName(){return this.getRuleContext(0,mo)}optionalNameList(){return this.getRuleContext(0,uS)}ON(){return this.getToken(cn.ON,0)}expressionList(){return this.getRuleContext(0,ZI)}FROM(){return this.getToken(cn.FROM,0)}fromList(){return this.getRuleContext(0,Xl)}IF_P(){return this.getToken(cn.IF_P,0)}NOT(){return this.getToken(cn.NOT,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_createStatsStatement}accept(t){return t.visitCreateStatsStatement?t.visitCreateStatsStatement(this):t.visitChildren(this)}},NE=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}STATISTICS(t){return void 0===t?this.getTokens(cn.STATISTICS):this.getToken(cn.STATISTICS,t)}anyName(){return this.getRuleContext(0,mo)}SET(){return this.getToken(cn.SET,0)}signedIconst(){return this.getRuleContext(0,qu)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_alterStatsStatement}accept(t){return t.visitAlterStatsStatement?t.visitAlterStatsStatement(this):t.visitChildren(this)}},LE=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}temporaryOption(){return this.getRuleContext(0,gh)}TABLE(){return this.getToken(cn.TABLE,0)}createAsTarget(){return this.getRuleContext(0,CE)}AS(){return this.getToken(cn.AS,0)}selectStatement(){return this.getRuleContext(0,il)}withData(){return this.getRuleContext(0,_E)}IF_P(){return this.getToken(cn.IF_P,0)}NOT(){return this.getToken(cn.NOT,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_createAsStatement}accept(t){return t.visitCreateAsStatement?t.visitCreateAsStatement(this):t.visitChildren(this)}},CE=class extends ga{constructor(t,e){super(t,e)}qualifiedName(){return this.getRuleContext(0,vu)}columnListWithParentheses(){return this.getRuleContext(0,Zh)}optionalTableAccessMethodClause(){return this.getRuleContext(0,RE)}with(){return this.getRuleContext(0,AE)}onCommitOption(){return this.getRuleContext(0,SE)}optionalTablespace(){return this.getRuleContext(0,lE)}get ruleIndex(){return cn.RULE_createAsTarget}accept(t){return t.visitCreateAsTarget?t.visitCreateAsTarget(this):t.visitChildren(this)}},_E=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(cn.WITH,0)}DATA_P(){return this.getToken(cn.DATA_P,0)}NO(){return this.getToken(cn.NO,0)}get ruleIndex(){return cn.RULE_withData}accept(t){return t.visitWithData?t.visitWithData(this):t.visitChildren(this)}},PE=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}MATERIALIZED(){return this.getToken(cn.MATERIALIZED,0)}VIEW(){return this.getToken(cn.VIEW,0)}createMaterializedViewTarget(){return this.getRuleContext(0,ME)}AS(){return this.getToken(cn.AS,0)}selectStatement(){return this.getRuleContext(0,il)}withData(){return this.getRuleContext(0,_E)}UNLOGGED(){return this.getToken(cn.UNLOGGED,0)}IF_P(){return this.getToken(cn.IF_P,0)}NOT(){return this.getToken(cn.NOT,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_createMaterializedViewStatement}accept(t){return t.visitCreateMaterializedViewStatement?t.visitCreateMaterializedViewStatement(this):t.visitChildren(this)}},ME=class extends ga{constructor(t,e){super(t,e)}qualifiedName(){return this.getRuleContext(0,vu)}columnListWithParentheses(){return this.getRuleContext(0,Zh)}optionalTableAccessMethodClause(){return this.getRuleContext(0,RE)}optionalRelOptions(){return this.getRuleContext(0,hh)}optionalTablespace(){return this.getRuleContext(0,lE)}get ruleIndex(){return cn.RULE_createMaterializedViewTarget}accept(t){return t.visitCreateMaterializedViewTarget?t.visitCreateMaterializedViewTarget(this):t.visitChildren(this)}},dE=class extends ga{constructor(t,e){super(t,e)}REFRESH(){return this.getToken(cn.REFRESH,0)}MATERIALIZED(){return this.getToken(cn.MATERIALIZED,0)}VIEW(){return this.getToken(cn.VIEW,0)}qualifiedName(){return this.getRuleContext(0,vu)}withData(){return this.getRuleContext(0,_E)}CONCURRENTLY(){return this.getToken(cn.CONCURRENTLY,0)}get ruleIndex(){return cn.RULE_refreshMaterializedViewStatement}accept(t){return t.visitRefreshMaterializedViewStatement?t.visitRefreshMaterializedViewStatement(this):t.visitChildren(this)}},UE=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}temporaryOption(){return this.getRuleContext(0,gh)}SEQUENCE(){return this.getToken(cn.SEQUENCE,0)}qualifiedName(){return this.getRuleContext(0,vu)}IF_P(){return this.getToken(cn.IF_P,0)}NOT(){return this.getToken(cn.NOT,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}sequenceOptionList(){return this.getRuleContext(0,pE)}get ruleIndex(){return cn.RULE_createSequenceStatement}accept(t){return t.visitCreateSequenceStatement?t.visitCreateSequenceStatement(this):t.visitChildren(this)}},mE=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}SEQUENCE(){return this.getToken(cn.SEQUENCE,0)}sequenceName(){return this.getRuleContext(0,Gu)}sequenceOptionList(){return this.getRuleContext(0,pE)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_alterSequenceStatement}accept(t){return t.visitAlterSequenceStatement?t.visitAlterSequenceStatement(this):t.visitChildren(this)}},DE=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}sequenceOptionList(){return this.getRuleContext(0,pE)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_optionalParenthesizedSeqOptionsList}accept(t){return t.visitOptionalParenthesizedSeqOptionsList?t.visitOptionalParenthesizedSeqOptionsList(this):t.visitChildren(this)}},pE=class extends ga{constructor(t,e){super(t,e)}sequenceOptionItem(t){return void 0===t?this.getRuleContexts(gE):this.getRuleContext(t,gE)}get ruleIndex(){return cn.RULE_sequenceOptionList}accept(t){return t.visitSequenceOptionList?t.visitSequenceOptionList(this):t.visitChildren(this)}},gE=class extends ga{constructor(t,e){super(t,e)}AS(){return this.getToken(cn.AS,0)}simpleTypeName(){return this.getRuleContext(0,CO)}CACHE(){return this.getToken(cn.CACHE,0)}numericOnly(){return this.getRuleContext(0,xE)}CYCLE(){return this.getToken(cn.CYCLE,0)}INCREMENT(){return this.getToken(cn.INCREMENT,0)}BY(){return this.getToken(cn.BY,0)}MAXVALUE(){return this.getToken(cn.MAXVALUE,0)}MINVALUE(){return this.getToken(cn.MINVALUE,0)}NO(){return this.getToken(cn.NO,0)}OWNED(){return this.getToken(cn.OWNED,0)}anyName(){return this.getRuleContext(0,mo)}SEQUENCE(){return this.getToken(cn.SEQUENCE,0)}NAME_P(){return this.getToken(cn.NAME_P,0)}START(){return this.getToken(cn.START,0)}optionalWith(){return this.getRuleContext(0,An)}RESTART(){return this.getToken(cn.RESTART,0)}get ruleIndex(){return cn.RULE_sequenceOptionItem}accept(t){return t.visitSequenceOptionItem?t.visitSequenceOptionItem(this):t.visitChildren(this)}},xE=class extends ga{constructor(t,e){super(t,e)}fconst(){return this.getRuleContext(0,Xu)}PLUS(){return this.getToken(cn.PLUS,0)}MINUS(){return this.getToken(cn.MINUS,0)}signedIconst(){return this.getRuleContext(0,qu)}get ruleIndex(){return cn.RULE_numericOnly}accept(t){return t.visitNumericOnly?t.visitNumericOnly(this):t.visitChildren(this)}},kE=class extends ga{constructor(t,e){super(t,e)}numericOnly(t){return void 0===t?this.getRuleContexts(xE):this.getRuleContext(t,xE)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_numericOnlyList}accept(t){return t.visitNumericOnlyList?t.visitNumericOnlyList(this):t.visitChildren(this)}},HE=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}optionalOrReplace(){return this.getRuleContext(0,lR)}optionalProcedural(){return this.getRuleContext(0,BE)}LANGUAGE(){return this.getToken(cn.LANGUAGE,0)}name(){return this.getRuleContext(0,yu)}TRUSTED(){return this.getToken(cn.TRUSTED,0)}HANDLER(){return this.getToken(cn.HANDLER,0)}handlerName(){return this.getRuleContext(0,GE)}optionalInlineHandler(){return this.getRuleContext(0,FE)}validatorClause(){return this.getRuleContext(0,vE)}get ruleIndex(){return cn.RULE_createProcedureLangStatement}accept(t){return t.visitCreateProcedureLangStatement?t.visitCreateProcedureLangStatement(this):t.visitChildren(this)}},GE=class extends ga{constructor(t,e){super(t,e)}name(){return this.getRuleContext(0,yu)}attributes(){return this.getRuleContext(0,Do)}get ruleIndex(){return cn.RULE_handlerName}accept(t){return t.visitHandlerName?t.visitHandlerName(this):t.visitChildren(this)}},FE=class extends ga{constructor(t,e){super(t,e)}INLINE_P(){return this.getToken(cn.INLINE_P,0)}handlerName(){return this.getRuleContext(0,GE)}get ruleIndex(){return cn.RULE_optionalInlineHandler}accept(t){return t.visitOptionalInlineHandler?t.visitOptionalInlineHandler(this):t.visitChildren(this)}},vE=class extends ga{constructor(t,e){super(t,e)}VALIDATOR(){return this.getToken(cn.VALIDATOR,0)}handlerName(){return this.getRuleContext(0,GE)}NO(){return this.getToken(cn.NO,0)}get ruleIndex(){return cn.RULE_validatorClause}accept(t){return t.visitValidatorClause?t.visitValidatorClause(this):t.visitChildren(this)}},BE=class extends ga{constructor(t,e){super(t,e)}PROCEDURAL(){return this.getToken(cn.PROCEDURAL,0)}get ruleIndex(){return cn.RULE_optionalProcedural}accept(t){return t.visitOptionalProcedural?t.visitOptionalProcedural(this):t.visitChildren(this)}},yE=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}TABLESPACE(){return this.getToken(cn.TABLESPACE,0)}name(){return this.getRuleContext(0,yu)}optionalTablespaceOwner(){return this.getRuleContext(0,fE)}LOCATION(){return this.getToken(cn.LOCATION,0)}sconst(){return this.getRuleContext(0,Qu)}optionalRelOptions(){return this.getRuleContext(0,hh)}get ruleIndex(){return cn.RULE_createTablespaceStatement}accept(t){return t.visitCreateTablespaceStatement?t.visitCreateTablespaceStatement(this):t.visitChildren(this)}},fE=class extends ga{constructor(t,e){super(t,e)}OWNER(){return this.getToken(cn.OWNER,0)}roleName(){return this.getRuleContext(0,ju)}get ruleIndex(){return cn.RULE_optionalTablespaceOwner}accept(t){return t.visitOptionalTablespaceOwner?t.visitOptionalTablespaceOwner(this):t.visitChildren(this)}},YE=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(cn.DROP,0)}TABLESPACE(){return this.getToken(cn.TABLESPACE,0)}name(){return this.getRuleContext(0,yu)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_dropTablespaceStatement}accept(t){return t.visitDropTablespaceStatement?t.visitDropTablespaceStatement(this):t.visitChildren(this)}},wE=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}EXTENSION(){return this.getToken(cn.EXTENSION,0)}name(){return this.getRuleContext(0,yu)}optionalWith(){return this.getRuleContext(0,An)}IF_P(){return this.getToken(cn.IF_P,0)}NOT(){return this.getToken(cn.NOT,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}createExtensionOptionItem(t){return void 0===t?this.getRuleContexts(bE):this.getRuleContext(t,bE)}get ruleIndex(){return cn.RULE_createExtensionStatement}accept(t){return t.visitCreateExtensionStatement?t.visitCreateExtensionStatement(this):t.visitChildren(this)}},bE=class extends ga{constructor(t,e){super(t,e)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}schemaName(){return this.getRuleContext(0,Du)}VERSION_P(){return this.getToken(cn.VERSION_P,0)}nonReservedWordOrSconst(){return this.getRuleContext(0,fn)}FROM(){return this.getToken(cn.FROM,0)}CASCADE(){return this.getToken(cn.CASCADE,0)}get ruleIndex(){return cn.RULE_createExtensionOptionItem}accept(t){return t.visitCreateExtensionOptionItem?t.visitCreateExtensionOptionItem(this):t.visitChildren(this)}},WE=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}EXTENSION(){return this.getToken(cn.EXTENSION,0)}name(){return this.getRuleContext(0,yu)}UPDATE(){return this.getToken(cn.UPDATE,0)}alterExtensionOptionItem(t){return void 0===t?this.getRuleContexts(VE):this.getRuleContext(t,VE)}get ruleIndex(){return cn.RULE_alterExtensionStatement}accept(t){return t.visitAlterExtensionStatement?t.visitAlterExtensionStatement(this):t.visitChildren(this)}},VE=class extends ga{constructor(t,e){super(t,e)}TO(){return this.getToken(cn.TO,0)}nonReservedWordOrSconst(){return this.getRuleContext(0,fn)}get ruleIndex(){return cn.RULE_alterExtensionOptionItem}accept(t){return t.visitAlterExtensionOptionItem?t.visitAlterExtensionOptionItem(this):t.visitChildren(this)}},XE=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}EXTENSION(){return this.getToken(cn.EXTENSION,0)}name(t){return void 0===t?this.getRuleContexts(yu):this.getRuleContext(t,yu)}addOrDrop(){return this.getRuleContext(0,Pn)}objectTypeName(){return this.getRuleContext(0,_o)}ROLE(){return this.getToken(cn.ROLE,0)}roleName(){return this.getRuleContext(0,ju)}DATABASE(){return this.getToken(cn.DATABASE,0)}databaseName(){return this.getRuleContext(0,Uu)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}schemaName(){return this.getRuleContext(0,Du)}INDEX(){return this.getToken(cn.INDEX,0)}indexName(){return this.getRuleContext(0,gu)}objectTypeAnyName(){return this.getRuleContext(0,Co)}anyName(){return this.getRuleContext(0,mo)}SEQUENCE(){return this.getToken(cn.SEQUENCE,0)}sequenceName(){return this.getRuleContext(0,Gu)}AGGREGATE(){return this.getToken(cn.AGGREGATE,0)}aggregateWithArgumentTypes(){return this.getRuleContext(0,DR)}CAST(){return this.getToken(cn.CAST,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}typeName(t){return void 0===t?this.getRuleContexts(LO):this.getRuleContext(t,LO)}AS(){return this.getToken(cn.AS,0)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}DOMAIN_P(){return this.getToken(cn.DOMAIN_P,0)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}functionWithArgumentTypes(){return this.getRuleContext(0,uR)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}operatorWithArgumentTypes(){return this.getRuleContext(0,XR)}CLASS(){return this.getToken(cn.CLASS,0)}USING(){return this.getToken(cn.USING,0)}FAMILY(){return this.getToken(cn.FAMILY,0)}PROCEDURE(){return this.getToken(cn.PROCEDURE,0)}ROUTINE(){return this.getToken(cn.ROUTINE,0)}TRANSFORM(){return this.getToken(cn.TRANSFORM,0)}FOR(){return this.getToken(cn.FOR,0)}LANGUAGE(){return this.getToken(cn.LANGUAGE,0)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}get ruleIndex(){return cn.RULE_alterExtensionContentsStatement}accept(t){return t.visitAlterExtensionContentsStatement?t.visitAlterExtensionContentsStatement(this):t.visitChildren(this)}},KE=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}FOREIGN(){return this.getToken(cn.FOREIGN,0)}DATA_P(){return this.getToken(cn.DATA_P,0)}WRAPPER(){return this.getToken(cn.WRAPPER,0)}name(){return this.getRuleContext(0,yu)}createGenericOptions(){return this.getRuleContext(0,qE)}forwardOptions(){return this.getRuleContext(0,JE)}get ruleIndex(){return cn.RULE_createForeignDataWrapperStatement}accept(t){return t.visitCreateForeignDataWrapperStatement?t.visitCreateForeignDataWrapperStatement(this):t.visitChildren(this)}},QE=class extends ga{constructor(t,e){super(t,e)}HANDLER(){return this.getToken(cn.HANDLER,0)}handlerName(){return this.getRuleContext(0,GE)}NO(){return this.getToken(cn.NO,0)}VALIDATOR(){return this.getToken(cn.VALIDATOR,0)}get ruleIndex(){return cn.RULE_forwardOption}accept(t){return t.visitForwardOption?t.visitForwardOption(this):t.visitChildren(this)}},JE=class extends ga{constructor(t,e){super(t,e)}forwardOption(t){return void 0===t?this.getRuleContexts(QE):this.getRuleContext(t,QE)}get ruleIndex(){return cn.RULE_forwardOptions}accept(t){return t.visitForwardOptions?t.visitForwardOptions(this):t.visitChildren(this)}},ZE=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}FOREIGN(){return this.getToken(cn.FOREIGN,0)}DATA_P(){return this.getToken(cn.DATA_P,0)}WRAPPER(){return this.getToken(cn.WRAPPER,0)}name(){return this.getRuleContext(0,yu)}alterGenericOptions(){return this.getRuleContext(0,zE)}forwardOptions(){return this.getRuleContext(0,JE)}get ruleIndex(){return cn.RULE_alterForeignDataWrapperStatement}accept(t){return t.visitAlterForeignDataWrapperStatement?t.visitAlterForeignDataWrapperStatement(this):t.visitChildren(this)}},qE=class extends ga{constructor(t,e){super(t,e)}OPTIONS(){return this.getToken(cn.OPTIONS,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}genericOptionList(){return this.getRuleContext(0,jE)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_createGenericOptions}accept(t){return t.visitCreateGenericOptions?t.visitCreateGenericOptions(this):t.visitChildren(this)}},jE=class extends ga{constructor(t,e){super(t,e)}genericOptionElement(t){return void 0===t?this.getRuleContexts(eT):this.getRuleContext(t,eT)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_genericOptionList}accept(t){return t.visitGenericOptionList?t.visitGenericOptionList(this):t.visitChildren(this)}},zE=class extends ga{constructor(t,e){super(t,e)}OPTIONS(){return this.getToken(cn.OPTIONS,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}alterGenericOptionList(){return this.getRuleContext(0,$E)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_alterGenericOptions}accept(t){return t.visitAlterGenericOptions?t.visitAlterGenericOptions(this):t.visitChildren(this)}},$E=class extends ga{constructor(t,e){super(t,e)}alterGenericOptionElem(t){return void 0===t?this.getRuleContexts(tT):this.getRuleContext(t,tT)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_alterGenericOptionList}accept(t){return t.visitAlterGenericOptionList?t.visitAlterGenericOptionList(this):t.visitChildren(this)}},tT=class extends ga{constructor(t,e){super(t,e)}genericOptionElement(){return this.getRuleContext(0,eT)}SET(){return this.getToken(cn.SET,0)}ADD_P(){return this.getToken(cn.ADD_P,0)}DROP(){return this.getToken(cn.DROP,0)}genericOptionName(){return this.getRuleContext(0,sT)}get ruleIndex(){return cn.RULE_alterGenericOptionElem}accept(t){return t.visitAlterGenericOptionElem?t.visitAlterGenericOptionElem(this):t.visitChildren(this)}},eT=class extends ga{constructor(t,e){super(t,e)}genericOptionName(){return this.getRuleContext(0,sT)}genericOptionArgument(){return this.getRuleContext(0,aT)}get ruleIndex(){return cn.RULE_genericOptionElement}accept(t){return t.visitGenericOptionElement?t.visitGenericOptionElement(this):t.visitChildren(this)}},sT=class extends ga{constructor(t,e){super(t,e)}columnLabel(){return this.getRuleContext(0,aN)}get ruleIndex(){return cn.RULE_genericOptionName}accept(t){return t.visitGenericOptionName?t.visitGenericOptionName(this):t.visitChildren(this)}},aT=class extends ga{constructor(t,e){super(t,e)}sconst(){return this.getRuleContext(0,Qu)}get ruleIndex(){return cn.RULE_genericOptionArgument}accept(t){return t.visitGenericOptionArgument?t.visitGenericOptionArgument(this):t.visitChildren(this)}},rT=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}SERVER(){return this.getToken(cn.SERVER,0)}name(t){return void 0===t?this.getRuleContexts(yu):this.getRuleContext(t,yu)}optionalType(){return this.getRuleContext(0,iT)}FOREIGN(){return this.getToken(cn.FOREIGN,0)}DATA_P(){return this.getToken(cn.DATA_P,0)}WRAPPER(){return this.getToken(cn.WRAPPER,0)}createGenericOptions(){return this.getRuleContext(0,qE)}foreignServerVersion(){return this.getRuleContext(0,cT)}IF_P(){return this.getToken(cn.IF_P,0)}NOT(){return this.getToken(cn.NOT,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_createForeignServerStatement}accept(t){return t.visitCreateForeignServerStatement?t.visitCreateForeignServerStatement(this):t.visitChildren(this)}},iT=class extends ga{constructor(t,e){super(t,e)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}sconst(){return this.getRuleContext(0,Qu)}get ruleIndex(){return cn.RULE_optionalType}accept(t){return t.visitOptionalType?t.visitOptionalType(this):t.visitChildren(this)}},cT=class extends ga{constructor(t,e){super(t,e)}VERSION_P(){return this.getToken(cn.VERSION_P,0)}sconst(){return this.getRuleContext(0,Qu)}NULL_P(){return this.getToken(cn.NULL_P,0)}get ruleIndex(){return cn.RULE_foreignServerVersion}accept(t){return t.visitForeignServerVersion?t.visitForeignServerVersion(this):t.visitChildren(this)}},nT=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}SERVER(){return this.getToken(cn.SERVER,0)}name(){return this.getRuleContext(0,yu)}alterGenericOptions(){return this.getRuleContext(0,zE)}foreignServerVersion(){return this.getRuleContext(0,cT)}get ruleIndex(){return cn.RULE_alterForeignServerStatement}accept(t){return t.visitAlterForeignServerStatement?t.visitAlterForeignServerStatement(this):t.visitChildren(this)}},hT=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}FOREIGN(){return this.getToken(cn.FOREIGN,0)}TABLE(){return this.getToken(cn.TABLE,0)}qualifiedName(t){return void 0===t?this.getRuleContexts(vu):this.getRuleContext(t,vu)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}optionalTableElementList(){return this.getRuleContext(0,xh)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}inheritClause(){return this.getRuleContext(0,nE)}SERVER(){return this.getToken(cn.SERVER,0)}name(){return this.getRuleContext(0,yu)}createGenericOptions(){return this.getRuleContext(0,qE)}IF_P(){return this.getToken(cn.IF_P,0)}NOT(){return this.getToken(cn.NOT,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}PARTITION(){return this.getToken(cn.PARTITION,0)}OF(){return this.getToken(cn.OF,0)}optionalTypedTableElementList(){return this.getRuleContext(0,kh)}partitionBoundSpecification(){return this.getRuleContext(0,Ah)}get ruleIndex(){return cn.RULE_createForeignTableStatement}accept(t){return t.visitCreateForeignTableStatement?t.visitCreateForeignTableStatement(this):t.visitChildren(this)}},ET=class extends ga{constructor(t,e){super(t,e)}IMPORT_P(){return this.getToken(cn.IMPORT_P,0)}FOREIGN(){return this.getToken(cn.FOREIGN,0)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}name(t){return void 0===t?this.getRuleContexts(yu):this.getRuleContext(t,yu)}importQualification(){return this.getRuleContext(0,oT)}FROM(){return this.getToken(cn.FROM,0)}SERVER(){return this.getToken(cn.SERVER,0)}INTO(){return this.getToken(cn.INTO,0)}createGenericOptions(){return this.getRuleContext(0,qE)}get ruleIndex(){return cn.RULE_importForeignSchemaStatement}accept(t){return t.visitImportForeignSchemaStatement?t.visitImportForeignSchemaStatement(this):t.visitChildren(this)}},TT=class extends ga{constructor(t,e){super(t,e)}LIMIT(){return this.getToken(cn.LIMIT,0)}TO(){return this.getToken(cn.TO,0)}EXCEPT(){return this.getToken(cn.EXCEPT,0)}get ruleIndex(){return cn.RULE_importQualificationType}accept(t){return t.visitImportQualificationType?t.visitImportQualificationType(this):t.visitChildren(this)}},oT=class extends ga{constructor(t,e){super(t,e)}importQualificationType(){return this.getRuleContext(0,TT)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}relationExpressionList(){return this.getRuleContext(0,sO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_importQualification}accept(t){return t.visitImportQualification?t.visitImportQualification(this):t.visitChildren(this)}},RT=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}USER(){return this.getToken(cn.USER,0)}MAPPING(){return this.getToken(cn.MAPPING,0)}FOR(){return this.getToken(cn.FOR,0)}authIdentifier(){return this.getRuleContext(0,AT)}SERVER(){return this.getToken(cn.SERVER,0)}name(){return this.getRuleContext(0,yu)}createGenericOptions(){return this.getRuleContext(0,qE)}IF_P(){return this.getToken(cn.IF_P,0)}NOT(){return this.getToken(cn.NOT,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_createUserMappingStatement}accept(t){return t.visitCreateUserMappingStatement?t.visitCreateUserMappingStatement(this):t.visitChildren(this)}},AT=class extends ga{constructor(t,e){super(t,e)}roleName(){return this.getRuleContext(0,ju)}USER(){return this.getToken(cn.USER,0)}get ruleIndex(){return cn.RULE_authIdentifier}accept(t){return t.visitAuthIdentifier?t.visitAuthIdentifier(this):t.visitChildren(this)}},ST=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(cn.DROP,0)}USER(){return this.getToken(cn.USER,0)}MAPPING(){return this.getToken(cn.MAPPING,0)}FOR(){return this.getToken(cn.FOR,0)}authIdentifier(){return this.getRuleContext(0,AT)}SERVER(){return this.getToken(cn.SERVER,0)}name(){return this.getRuleContext(0,yu)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_dropUserMappingStatement}accept(t){return t.visitDropUserMappingStatement?t.visitDropUserMappingStatement(this):t.visitChildren(this)}},lT=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}USER(){return this.getToken(cn.USER,0)}MAPPING(){return this.getToken(cn.MAPPING,0)}FOR(){return this.getToken(cn.FOR,0)}authIdentifier(){return this.getRuleContext(0,AT)}SERVER(){return this.getToken(cn.SERVER,0)}name(){return this.getRuleContext(0,yu)}alterGenericOptions(){return this.getRuleContext(0,zE)}get ruleIndex(){return cn.RULE_alterUserMappingStatement}accept(t){return t.visitAlterUserMappingStatement?t.visitAlterUserMappingStatement(this):t.visitChildren(this)}},OT=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}POLICY(){return this.getToken(cn.POLICY,0)}name(){return this.getRuleContext(0,yu)}ON(){return this.getToken(cn.ON,0)}qualifiedName(){return this.getRuleContext(0,vu)}rowSecurityDefaultPermissive(){return this.getRuleContext(0,CT)}rowSecurityDefaultForCmd(){return this.getRuleContext(0,_T)}rowSecurityOptionalToUser(){return this.getRuleContext(0,LT)}rowSecurityOptionalExpression(){return this.getRuleContext(0,uT)}rowSecurityOptionalWithCheck(){return this.getRuleContext(0,NT)}get ruleIndex(){return cn.RULE_createPolicyStatement}accept(t){return t.visitCreatePolicyStatement?t.visitCreatePolicyStatement(this):t.visitChildren(this)}},IT=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}POLICY(){return this.getToken(cn.POLICY,0)}name(){return this.getRuleContext(0,yu)}ON(){return this.getToken(cn.ON,0)}qualifiedName(){return this.getRuleContext(0,vu)}rowSecurityOptionalToUser(){return this.getRuleContext(0,LT)}rowSecurityOptionalExpression(){return this.getRuleContext(0,uT)}rowSecurityOptionalWithCheck(){return this.getRuleContext(0,NT)}get ruleIndex(){return cn.RULE_alterPolicyStatement}accept(t){return t.visitAlterPolicyStatement?t.visitAlterPolicyStatement(this):t.visitChildren(this)}},uT=class extends ga{constructor(t,e){super(t,e)}USING(){return this.getToken(cn.USING,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expression1(){return this.getRuleContext(0,wO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_rowSecurityOptionalExpression}accept(t){return t.visitRowSecurityOptionalExpression?t.visitRowSecurityOptionalExpression(this):t.visitChildren(this)}},NT=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(cn.WITH,0)}CHECK(){return this.getToken(cn.CHECK,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expression1(){return this.getRuleContext(0,wO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_rowSecurityOptionalWithCheck}accept(t){return t.visitRowSecurityOptionalWithCheck?t.visitRowSecurityOptionalWithCheck(this):t.visitChildren(this)}},LT=class extends ga{constructor(t,e){super(t,e)}TO(){return this.getToken(cn.TO,0)}roleNameList(){return this.getRuleContext(0,zu)}get ruleIndex(){return cn.RULE_rowSecurityOptionalToUser}accept(t){return t.visitRowSecurityOptionalToUser?t.visitRowSecurityOptionalToUser(this):t.visitChildren(this)}},CT=class extends ga{constructor(t,e){super(t,e)}AS(){return this.getToken(cn.AS,0)}identifier(){return this.getRuleContext(0,rN)}get ruleIndex(){return cn.RULE_rowSecurityDefaultPermissive}accept(t){return t.visitRowSecurityDefaultPermissive?t.visitRowSecurityDefaultPermissive(this):t.visitChildren(this)}},_T=class extends ga{constructor(t,e){super(t,e)}FOR(){return this.getToken(cn.FOR,0)}rowSecurityCommand(){return this.getRuleContext(0,PT)}get ruleIndex(){return cn.RULE_rowSecurityDefaultForCmd}accept(t){return t.visitRowSecurityDefaultForCmd?t.visitRowSecurityDefaultForCmd(this):t.visitChildren(this)}},PT=class extends ga{constructor(t,e){super(t,e)}ALL(){return this.getToken(cn.ALL,0)}SELECT(){return this.getToken(cn.SELECT,0)}INSERT(){return this.getToken(cn.INSERT,0)}UPDATE(){return this.getToken(cn.UPDATE,0)}DELETE_P(){return this.getToken(cn.DELETE_P,0)}get ruleIndex(){return cn.RULE_rowSecurityCommand}accept(t){return t.visitRowSecurityCommand?t.visitRowSecurityCommand(this):t.visitChildren(this)}},MT=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}ACCESS(){return this.getToken(cn.ACCESS,0)}METHOD(){return this.getToken(cn.METHOD,0)}name(){return this.getRuleContext(0,yu)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}accessMethodType(){return this.getRuleContext(0,dT)}HANDLER(){return this.getToken(cn.HANDLER,0)}handlerName(){return this.getRuleContext(0,GE)}get ruleIndex(){return cn.RULE_createAccessMethodStatement}accept(t){return t.visitCreateAccessMethodStatement?t.visitCreateAccessMethodStatement(this):t.visitChildren(this)}},dT=class extends ga{constructor(t,e){super(t,e)}INDEX(){return this.getToken(cn.INDEX,0)}TABLE(){return this.getToken(cn.TABLE,0)}get ruleIndex(){return cn.RULE_accessMethodType}accept(t){return t.visitAccessMethodType?t.visitAccessMethodType(this):t.visitChildren(this)}},UT=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}TRIGGER(){return this.getToken(cn.TRIGGER,0)}name(){return this.getRuleContext(0,yu)}triggerActionTime(){return this.getRuleContext(0,mT)}triggerEvents(){return this.getRuleContext(0,DT)}ON(){return this.getToken(cn.ON,0)}qualifiedName(){return this.getRuleContext(0,vu)}triggerReferencing(){return this.getRuleContext(0,gT)}triggerForSpec(){return this.getRuleContext(0,vT)}triggerWhen(){return this.getRuleContext(0,yT)}EXECUTE(){return this.getToken(cn.EXECUTE,0)}functionOrProcedure(){return this.getRuleContext(0,fT)}functionName(){return this.getRuleContext(0,wu)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}triggerFunctionArguments(){return this.getRuleContext(0,YT)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}CONSTRAINT(){return this.getToken(cn.CONSTRAINT,0)}AFTER(){return this.getToken(cn.AFTER,0)}optionalConstraintFromTable(){return this.getRuleContext(0,bT)}constraintAttributeSpecification(){return this.getRuleContext(0,WT)}FOR(){return this.getToken(cn.FOR,0)}EACH(){return this.getToken(cn.EACH,0)}ROW(){return this.getToken(cn.ROW,0)}get ruleIndex(){return cn.RULE_createTriggerStatement}accept(t){return t.visitCreateTriggerStatement?t.visitCreateTriggerStatement(this):t.visitChildren(this)}},mT=class extends ga{constructor(t,e){super(t,e)}BEFORE(){return this.getToken(cn.BEFORE,0)}AFTER(){return this.getToken(cn.AFTER,0)}INSTEAD(){return this.getToken(cn.INSTEAD,0)}OF(){return this.getToken(cn.OF,0)}get ruleIndex(){return cn.RULE_triggerActionTime}accept(t){return t.visitTriggerActionTime?t.visitTriggerActionTime(this):t.visitChildren(this)}},DT=class extends ga{constructor(t,e){super(t,e)}triggerOneEvent(t){return void 0===t?this.getRuleContexts(pT):this.getRuleContext(t,pT)}OR(t){return void 0===t?this.getTokens(cn.OR):this.getToken(cn.OR,t)}get ruleIndex(){return cn.RULE_triggerEvents}accept(t){return t.visitTriggerEvents?t.visitTriggerEvents(this):t.visitChildren(this)}},pT=class extends ga{constructor(t,e){super(t,e)}INSERT(){return this.getToken(cn.INSERT,0)}DELETE_P(){return this.getToken(cn.DELETE_P,0)}UPDATE(){return this.getToken(cn.UPDATE,0)}OF(){return this.getToken(cn.OF,0)}columnList(){return this.getRuleContext(0,qh)}TRUNCATE(){return this.getToken(cn.TRUNCATE,0)}get ruleIndex(){return cn.RULE_triggerOneEvent}accept(t){return t.visitTriggerOneEvent?t.visitTriggerOneEvent(this):t.visitChildren(this)}},gT=class extends ga{constructor(t,e){super(t,e)}REFERENCING(){return this.getToken(cn.REFERENCING,0)}triggerTransitions(){return this.getRuleContext(0,xT)}get ruleIndex(){return cn.RULE_triggerReferencing}accept(t){return t.visitTriggerReferencing?t.visitTriggerReferencing(this):t.visitChildren(this)}},xT=class extends ga{constructor(t,e){super(t,e)}triggerTransition(t){return void 0===t?this.getRuleContexts(kT):this.getRuleContext(t,kT)}get ruleIndex(){return cn.RULE_triggerTransitions}accept(t){return t.visitTriggerTransitions?t.visitTriggerTransitions(this):t.visitChildren(this)}},kT=class extends ga{constructor(t,e){super(t,e)}transitionOldOrNew(){return this.getRuleContext(0,HT)}transitionRowOrTable(){return this.getRuleContext(0,GT)}optionalAs(){return this.getRuleContext(0,rS)}transitionRelName(){return this.getRuleContext(0,FT)}get ruleIndex(){return cn.RULE_triggerTransition}accept(t){return t.visitTriggerTransition?t.visitTriggerTransition(this):t.visitChildren(this)}},HT=class extends ga{constructor(t,e){super(t,e)}NEW(){return this.getToken(cn.NEW,0)}OLD(){return this.getToken(cn.OLD,0)}get ruleIndex(){return cn.RULE_transitionOldOrNew}accept(t){return t.visitTransitionOldOrNew?t.visitTransitionOldOrNew(this):t.visitChildren(this)}},GT=class extends ga{constructor(t,e){super(t,e)}TABLE(){return this.getToken(cn.TABLE,0)}ROW(){return this.getToken(cn.ROW,0)}get ruleIndex(){return cn.RULE_transitionRowOrTable}accept(t){return t.visitTransitionRowOrTable?t.visitTransitionRowOrTable(this):t.visitChildren(this)}},FT=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}get ruleIndex(){return cn.RULE_transitionRelName}accept(t){return t.visitTransitionRelName?t.visitTransitionRelName(this):t.visitChildren(this)}},vT=class extends ga{constructor(t,e){super(t,e)}FOR(){return this.getToken(cn.FOR,0)}triggerForType(){return this.getRuleContext(0,BT)}EACH(){return this.getToken(cn.EACH,0)}get ruleIndex(){return cn.RULE_triggerForSpec}accept(t){return t.visitTriggerForSpec?t.visitTriggerForSpec(this):t.visitChildren(this)}},BT=class extends ga{constructor(t,e){super(t,e)}ROW(){return this.getToken(cn.ROW,0)}STATEMENT(){return this.getToken(cn.STATEMENT,0)}get ruleIndex(){return cn.RULE_triggerForType}accept(t){return t.visitTriggerForType?t.visitTriggerForType(this):t.visitChildren(this)}},yT=class extends ga{constructor(t,e){super(t,e)}WHEN(){return this.getToken(cn.WHEN,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expression1(){return this.getRuleContext(0,wO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_triggerWhen}accept(t){return t.visitTriggerWhen?t.visitTriggerWhen(this):t.visitChildren(this)}},fT=class extends ga{constructor(t,e){super(t,e)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}PROCEDURE(){return this.getToken(cn.PROCEDURE,0)}get ruleIndex(){return cn.RULE_functionOrProcedure}accept(t){return t.visitFunctionOrProcedure?t.visitFunctionOrProcedure(this):t.visitChildren(this)}},YT=class extends ga{constructor(t,e){super(t,e)}triggerFunctionArgument(t){return void 0===t?this.getRuleContexts(wT):this.getRuleContext(t,wT)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_triggerFunctionArguments}accept(t){return t.visitTriggerFunctionArguments?t.visitTriggerFunctionArguments(this):t.visitChildren(this)}},wT=class extends ga{constructor(t,e){super(t,e)}iconst(){return this.getRuleContext(0,Ku)}fconst(){return this.getRuleContext(0,Xu)}sconst(){return this.getRuleContext(0,Qu)}columnLabel(){return this.getRuleContext(0,aN)}get ruleIndex(){return cn.RULE_triggerFunctionArgument}accept(t){return t.visitTriggerFunctionArgument?t.visitTriggerFunctionArgument(this):t.visitChildren(this)}},bT=class extends ga{constructor(t,e){super(t,e)}FROM(){return this.getToken(cn.FROM,0)}qualifiedName(){return this.getRuleContext(0,vu)}get ruleIndex(){return cn.RULE_optionalConstraintFromTable}accept(t){return t.visitOptionalConstraintFromTable?t.visitOptionalConstraintFromTable(this):t.visitChildren(this)}},WT=class extends ga{constructor(t,e){super(t,e)}constraintAttributeElement(t){return void 0===t?this.getRuleContexts(VT):this.getRuleContext(t,VT)}get ruleIndex(){return cn.RULE_constraintAttributeSpecification}accept(t){return t.visitConstraintAttributeSpecification?t.visitConstraintAttributeSpecification(this):t.visitChildren(this)}},VT=class extends ga{constructor(t,e){super(t,e)}NOT(){return this.getToken(cn.NOT,0)}DEFERRABLE(){return this.getToken(cn.DEFERRABLE,0)}INITIALLY(){return this.getToken(cn.INITIALLY,0)}IMMEDIATE(){return this.getToken(cn.IMMEDIATE,0)}DEFERRED(){return this.getToken(cn.DEFERRED,0)}VALID(){return this.getToken(cn.VALID,0)}NO(){return this.getToken(cn.NO,0)}INHERIT(){return this.getToken(cn.INHERIT,0)}get ruleIndex(){return cn.RULE_constraintAttributeElement}accept(t){return t.visitConstraintAttributeElement?t.visitConstraintAttributeElement(this):t.visitChildren(this)}},XT=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}EVENT(){return this.getToken(cn.EVENT,0)}TRIGGER(){return this.getToken(cn.TRIGGER,0)}name(){return this.getRuleContext(0,yu)}ON(){return this.getToken(cn.ON,0)}columnLabel(){return this.getRuleContext(0,aN)}EXECUTE(){return this.getToken(cn.EXECUTE,0)}functionOrProcedure(){return this.getRuleContext(0,fT)}functionName(){return this.getRuleContext(0,wu)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}WHEN(){return this.getToken(cn.WHEN,0)}eventTriggerWhenList(){return this.getRuleContext(0,KT)}get ruleIndex(){return cn.RULE_createEventTriggerStatement}accept(t){return t.visitCreateEventTriggerStatement?t.visitCreateEventTriggerStatement(this):t.visitChildren(this)}},KT=class extends ga{constructor(t,e){super(t,e)}eventTriggerWhenItem(t){return void 0===t?this.getRuleContexts(QT):this.getRuleContext(t,QT)}AND(t){return void 0===t?this.getTokens(cn.AND):this.getToken(cn.AND,t)}get ruleIndex(){return cn.RULE_eventTriggerWhenList}accept(t){return t.visitEventTriggerWhenList?t.visitEventTriggerWhenList(this):t.visitChildren(this)}},QT=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}IN_P(){return this.getToken(cn.IN_P,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}eventTriggerValueList(){return this.getRuleContext(0,JT)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_eventTriggerWhenItem}accept(t){return t.visitEventTriggerWhenItem?t.visitEventTriggerWhenItem(this):t.visitChildren(this)}},JT=class extends ga{constructor(t,e){super(t,e)}sconst(t){return void 0===t?this.getRuleContexts(Qu):this.getRuleContext(t,Qu)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_eventTriggerValueList}accept(t){return t.visitEventTriggerValueList?t.visitEventTriggerValueList(this):t.visitChildren(this)}},ZT=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}EVENT(){return this.getToken(cn.EVENT,0)}TRIGGER(){return this.getToken(cn.TRIGGER,0)}name(){return this.getRuleContext(0,yu)}enableTrigger(){return this.getRuleContext(0,qT)}get ruleIndex(){return cn.RULE_alterEventTriggerStatement}accept(t){return t.visitAlterEventTriggerStatement?t.visitAlterEventTriggerStatement(this):t.visitChildren(this)}},qT=class extends ga{constructor(t,e){super(t,e)}ENABLE_P(){return this.getToken(cn.ENABLE_P,0)}REPLICA(){return this.getToken(cn.REPLICA,0)}ALWAYS(){return this.getToken(cn.ALWAYS,0)}DISABLE_P(){return this.getToken(cn.DISABLE_P,0)}get ruleIndex(){return cn.RULE_enableTrigger}accept(t){return t.visitEnableTrigger?t.visitEnableTrigger(this):t.visitChildren(this)}},jT=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}ASSERTION(){return this.getToken(cn.ASSERTION,0)}anyName(){return this.getRuleContext(0,mo)}CHECK(){return this.getToken(cn.CHECK,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expression1(){return this.getRuleContext(0,wO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}constraintAttributeSpecification(){return this.getRuleContext(0,WT)}get ruleIndex(){return cn.RULE_createAssertionStatement}accept(t){return t.visitCreateAssertionStatement?t.visitCreateAssertionStatement(this):t.visitChildren(this)}},zT=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}optionalOrReplace(){return this.getRuleContext(0,lR)}AGGREGATE(){return this.getToken(cn.AGGREGATE,0)}functionName(){return this.getRuleContext(0,wu)}aggregateArguments(){return this.getRuleContext(0,UR)}definition(){return this.getRuleContext(0,$T)}oldAggregateDefinition(){return this.getRuleContext(0,so)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}anyOperator(){return this.getRuleContext(0,WR)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}anyName(t){return void 0===t?this.getRuleContexts(mo):this.getRuleContext(t,mo)}AS(){return this.getToken(cn.AS,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}optionalTableFunctionElementList(){return this.getRuleContext(0,oO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}ENUM_P(){return this.getToken(cn.ENUM_P,0)}enumValueList(){return this.getRuleContext(0,ro)}RANGE(){return this.getToken(cn.RANGE,0)}TEXT_P(){return this.getToken(cn.TEXT_P,0)}SEARCH(){return this.getToken(cn.SEARCH,0)}PARSER(){return this.getToken(cn.PARSER,0)}DICTIONARY(){return this.getToken(cn.DICTIONARY,0)}TEMPLATE(){return this.getToken(cn.TEMPLATE,0)}CONFIGURATION(){return this.getToken(cn.CONFIGURATION,0)}COLLATION(){return this.getToken(cn.COLLATION,0)}IF_P(){return this.getToken(cn.IF_P,0)}NOT(){return this.getToken(cn.NOT,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}FROM(){return this.getToken(cn.FROM,0)}get ruleIndex(){return cn.RULE_defineStatement}accept(t){return t.visitDefineStatement?t.visitDefineStatement(this):t.visitChildren(this)}},$T=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}definitionElement(t){return void 0===t?this.getRuleContexts(to):this.getRuleContext(t,to)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_definition}accept(t){return t.visitDefinition?t.visitDefinition(this):t.visitChildren(this)}},to=class extends ga{constructor(t,e){super(t,e)}columnLabel(){return this.getRuleContext(0,aN)}EQUAL(){return this.getToken(cn.EQUAL,0)}definitionArgument(){return this.getRuleContext(0,eo)}get ruleIndex(){return cn.RULE_definitionElement}accept(t){return t.visitDefinitionElement?t.visitDefinitionElement(this):t.visitChildren(this)}},eo=class extends ga{constructor(t,e){super(t,e)}functionType(){return this.getRuleContext(0,dR)}reservedKeyword(){return this.getRuleContext(0,EN)}allOperatorQualifier(){return this.getRuleContext(0,QI)}numericOnly(){return this.getRuleContext(0,xE)}sconst(){return this.getRuleContext(0,Qu)}NONE(){return this.getToken(cn.NONE,0)}get ruleIndex(){return cn.RULE_definitionArgument}accept(t){return t.visitDefinitionArgument?t.visitDefinitionArgument(this):t.visitChildren(this)}},so=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}oldAggregateElement(t){return void 0===t?this.getRuleContexts(ao):this.getRuleContext(t,ao)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_oldAggregateDefinition}accept(t){return t.visitOldAggregateDefinition?t.visitOldAggregateDefinition(this):t.visitChildren(this)}},ao=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,rN)}EQUAL(){return this.getToken(cn.EQUAL,0)}definitionArgument(){return this.getRuleContext(0,eo)}get ruleIndex(){return cn.RULE_oldAggregateElement}accept(t){return t.visitOldAggregateElement?t.visitOldAggregateElement(this):t.visitChildren(this)}},ro=class extends ga{constructor(t,e){super(t,e)}sconst(t){return void 0===t?this.getRuleContexts(Qu):this.getRuleContext(t,Qu)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_enumValueList}accept(t){return t.visitEnumValueList?t.visitEnumValueList(this):t.visitChildren(this)}},io=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}anyName(){return this.getRuleContext(0,mo)}ADD_P(){return this.getToken(cn.ADD_P,0)}VALUE_P(){return this.getToken(cn.VALUE_P,0)}optionalIfNotExists(){return this.getRuleContext(0,co)}sconst(t){return void 0===t?this.getRuleContexts(Qu):this.getRuleContext(t,Qu)}BEFORE(){return this.getToken(cn.BEFORE,0)}AFTER(){return this.getToken(cn.AFTER,0)}RENAME(){return this.getToken(cn.RENAME,0)}TO(){return this.getToken(cn.TO,0)}get ruleIndex(){return cn.RULE_alterEnumStatement}accept(t){return t.visitAlterEnumStatement?t.visitAlterEnumStatement(this):t.visitChildren(this)}},co=class extends ga{constructor(t,e){super(t,e)}IF_P(){return this.getToken(cn.IF_P,0)}NOT(){return this.getToken(cn.NOT,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_optionalIfNotExists}accept(t){return t.visitOptionalIfNotExists?t.visitOptionalIfNotExists(this):t.visitChildren(this)}},no=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}CLASS(){return this.getToken(cn.CLASS,0)}anyName(){return this.getRuleContext(0,mo)}FOR(){return this.getToken(cn.FOR,0)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}typeName(){return this.getRuleContext(0,LO)}USING(){return this.getToken(cn.USING,0)}name(){return this.getRuleContext(0,yu)}optionalOperatorFamily(){return this.getRuleContext(0,To)}AS(){return this.getToken(cn.AS,0)}operatorClassItemList(){return this.getRuleContext(0,ho)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}get ruleIndex(){return cn.RULE_createOperatorClassStatement}accept(t){return t.visitCreateOperatorClassStatement?t.visitCreateOperatorClassStatement(this):t.visitChildren(this)}},ho=class extends ga{constructor(t,e){super(t,e)}operatorClassItem(t){return void 0===t?this.getRuleContexts(Eo):this.getRuleContext(t,Eo)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_operatorClassItemList}accept(t){return t.visitOperatorClassItemList?t.visitOperatorClassItemList(this):t.visitChildren(this)}},Eo=class extends ga{constructor(t,e){super(t,e)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}iconst(){return this.getRuleContext(0,Ku)}anyOperator(){return this.getRuleContext(0,WR)}operatorClassPurpose(){return this.getRuleContext(0,oo)}RECHECK(){return this.getToken(cn.RECHECK,0)}operatorWithArgumentTypes(){return this.getRuleContext(0,XR)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}functionWithArgumentTypes(){return this.getRuleContext(0,uR)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}typeList(){return this.getRuleContext(0,zI)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}STORAGE(){return this.getToken(cn.STORAGE,0)}typeName(){return this.getRuleContext(0,LO)}get ruleIndex(){return cn.RULE_operatorClassItem}accept(t){return t.visitOperatorClassItem?t.visitOperatorClassItem(this):t.visitChildren(this)}},To=class extends ga{constructor(t,e){super(t,e)}FAMILY(){return this.getToken(cn.FAMILY,0)}anyName(){return this.getRuleContext(0,mo)}get ruleIndex(){return cn.RULE_optionalOperatorFamily}accept(t){return t.visitOptionalOperatorFamily?t.visitOptionalOperatorFamily(this):t.visitChildren(this)}},oo=class extends ga{constructor(t,e){super(t,e)}FOR(){return this.getToken(cn.FOR,0)}SEARCH(){return this.getToken(cn.SEARCH,0)}ORDER(){return this.getToken(cn.ORDER,0)}BY(){return this.getToken(cn.BY,0)}anyName(){return this.getRuleContext(0,mo)}get ruleIndex(){return cn.RULE_operatorClassPurpose}accept(t){return t.visitOperatorClassPurpose?t.visitOperatorClassPurpose(this):t.visitChildren(this)}},Ro=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}FAMILY(){return this.getToken(cn.FAMILY,0)}anyName(){return this.getRuleContext(0,mo)}USING(){return this.getToken(cn.USING,0)}name(){return this.getRuleContext(0,yu)}get ruleIndex(){return cn.RULE_createOperatorFamilyStatement}accept(t){return t.visitCreateOperatorFamilyStatement?t.visitCreateOperatorFamilyStatement(this):t.visitChildren(this)}},Ao=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}FAMILY(){return this.getToken(cn.FAMILY,0)}anyName(){return this.getRuleContext(0,mo)}USING(){return this.getToken(cn.USING,0)}name(){return this.getRuleContext(0,yu)}ADD_P(){return this.getToken(cn.ADD_P,0)}operatorClassItemList(){return this.getRuleContext(0,ho)}DROP(){return this.getToken(cn.DROP,0)}operatorClassDropList(){return this.getRuleContext(0,So)}get ruleIndex(){return cn.RULE_alterOperatorFamilyStatement}accept(t){return t.visitAlterOperatorFamilyStatement?t.visitAlterOperatorFamilyStatement(this):t.visitChildren(this)}},So=class extends ga{constructor(t,e){super(t,e)}operatorClassDrop(t){return void 0===t?this.getRuleContexts(lo):this.getRuleContext(t,lo)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_operatorClassDropList}accept(t){return t.visitOperatorClassDropList?t.visitOperatorClassDropList(this):t.visitChildren(this)}},lo=class extends ga{constructor(t,e){super(t,e)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}iconst(){return this.getRuleContext(0,Ku)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}typeList(){return this.getRuleContext(0,zI)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}get ruleIndex(){return cn.RULE_operatorClassDrop}accept(t){return t.visitOperatorClassDrop?t.visitOperatorClassDrop(this):t.visitChildren(this)}},Oo=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(cn.DROP,0)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}CLASS(){return this.getToken(cn.CLASS,0)}anyName(){return this.getRuleContext(0,mo)}USING(){return this.getToken(cn.USING,0)}name(){return this.getRuleContext(0,yu)}optionalDropBehavior(){return this.getRuleContext(0,ah)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_dropOperatorClassStatement}accept(t){return t.visitDropOperatorClassStatement?t.visitDropOperatorClassStatement(this):t.visitChildren(this)}},Io=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(cn.DROP,0)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}FAMILY(){return this.getToken(cn.FAMILY,0)}anyName(){return this.getRuleContext(0,mo)}USING(){return this.getToken(cn.USING,0)}name(){return this.getRuleContext(0,yu)}optionalDropBehavior(){return this.getRuleContext(0,ah)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_dropOperatorFamilyStatement}accept(t){return t.visitDropOperatorFamilyStatement?t.visitDropOperatorFamilyStatement(this):t.visitChildren(this)}},uo=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(cn.DROP,0)}OWNED(){return this.getToken(cn.OWNED,0)}BY(){return this.getToken(cn.BY,0)}roleNameList(){return this.getRuleContext(0,zu)}optionalDropBehavior(){return this.getRuleContext(0,ah)}get ruleIndex(){return cn.RULE_dropOwnedStatement}accept(t){return t.visitDropOwnedStatement?t.visitDropOwnedStatement(this):t.visitChildren(this)}},No=class extends ga{constructor(t,e){super(t,e)}REASSIGN(){return this.getToken(cn.REASSIGN,0)}OWNED(){return this.getToken(cn.OWNED,0)}BY(){return this.getToken(cn.BY,0)}roleNameList(){return this.getRuleContext(0,zu)}TO(){return this.getToken(cn.TO,0)}roleName(){return this.getRuleContext(0,ju)}get ruleIndex(){return cn.RULE_reassignOwnedStatement}accept(t){return t.visitReassignOwnedStatement?t.visitReassignOwnedStatement(this):t.visitChildren(this)}},Lo=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(cn.DROP,0)}objectTypeAnyName(){return this.getRuleContext(0,Co)}anyNameList(){return this.getRuleContext(0,Uo)}optionalDropBehavior(){return this.getRuleContext(0,ah)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}SEQUENCE(){return this.getToken(cn.SEQUENCE,0)}sequenceNameList(){return this.getRuleContext(0,Fu)}INDEX(){return this.getToken(cn.INDEX,0)}indexNameList(){return this.getRuleContext(0,xu)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}schemaNameList(){return this.getRuleContext(0,pu)}dropTypeName(){return this.getRuleContext(0,Po)}nameList(){return this.getRuleContext(0,Bu)}objectTypeNameOnAnyName(){return this.getRuleContext(0,Mo)}name(){return this.getRuleContext(0,yu)}ON(){return this.getToken(cn.ON,0)}anyName(){return this.getRuleContext(0,mo)}TRIGGER(){return this.getToken(cn.TRIGGER,0)}triggerName(){return this.getRuleContext(0,ku)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}typeNameList(){return this.getRuleContext(0,po)}DOMAIN_P(){return this.getToken(cn.DOMAIN_P,0)}CONCURRENTLY(){return this.getToken(cn.CONCURRENTLY,0)}indexName(){return this.getRuleContext(0,gu)}get ruleIndex(){return cn.RULE_dropStatement}accept(t){return t.visitDropStatement?t.visitDropStatement(this):t.visitChildren(this)}},Co=class extends ga{constructor(t,e){super(t,e)}TABLE(){return this.getToken(cn.TABLE,0)}VIEW(){return this.getToken(cn.VIEW,0)}MATERIALIZED(){return this.getToken(cn.MATERIALIZED,0)}FOREIGN(){return this.getToken(cn.FOREIGN,0)}COLLATION(){return this.getToken(cn.COLLATION,0)}CONVERSION_P(){return this.getToken(cn.CONVERSION_P,0)}STATISTICS(){return this.getToken(cn.STATISTICS,0)}TEXT_P(){return this.getToken(cn.TEXT_P,0)}SEARCH(){return this.getToken(cn.SEARCH,0)}PARSER(){return this.getToken(cn.PARSER,0)}DICTIONARY(){return this.getToken(cn.DICTIONARY,0)}TEMPLATE(){return this.getToken(cn.TEMPLATE,0)}CONFIGURATION(){return this.getToken(cn.CONFIGURATION,0)}get ruleIndex(){return cn.RULE_objectTypeAnyName}accept(t){return t.visitObjectTypeAnyName?t.visitObjectTypeAnyName(this):t.visitChildren(this)}},_o=class extends ga{constructor(t,e){super(t,e)}dropTypeName(){return this.getRuleContext(0,Po)}SUBSCRIPTION(){return this.getToken(cn.SUBSCRIPTION,0)}TABLESPACE(){return this.getToken(cn.TABLESPACE,0)}get ruleIndex(){return cn.RULE_objectTypeName}accept(t){return t.visitObjectTypeName?t.visitObjectTypeName(this):t.visitChildren(this)}},Po=class extends ga{constructor(t,e){super(t,e)}ACCESS(){return this.getToken(cn.ACCESS,0)}METHOD(){return this.getToken(cn.METHOD,0)}EVENT(){return this.getToken(cn.EVENT,0)}TRIGGER(){return this.getToken(cn.TRIGGER,0)}EXTENSION(){return this.getToken(cn.EXTENSION,0)}FOREIGN(){return this.getToken(cn.FOREIGN,0)}DATA_P(){return this.getToken(cn.DATA_P,0)}WRAPPER(){return this.getToken(cn.WRAPPER,0)}optionalProcedural(){return this.getRuleContext(0,BE)}LANGUAGE(){return this.getToken(cn.LANGUAGE,0)}PUBLICATION(){return this.getToken(cn.PUBLICATION,0)}SERVER(){return this.getToken(cn.SERVER,0)}get ruleIndex(){return cn.RULE_dropTypeName}accept(t){return t.visitDropTypeName?t.visitDropTypeName(this):t.visitChildren(this)}},Mo=class extends ga{constructor(t,e){super(t,e)}POLICY(){return this.getToken(cn.POLICY,0)}RULE(){return this.getToken(cn.RULE,0)}get ruleIndex(){return cn.RULE_objectTypeNameOnAnyName}accept(t){return t.visitObjectTypeNameOnAnyName?t.visitObjectTypeNameOnAnyName(this):t.visitChildren(this)}},Uo=class extends ga{constructor(t,e){super(t,e)}anyName(t){return void 0===t?this.getRuleContexts(mo):this.getRuleContext(t,mo)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_anyNameList}accept(t){return t.visitAnyNameList?t.visitAnyNameList(this):t.visitChildren(this)}},mo=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}attributes(){return this.getRuleContext(0,Do)}get ruleIndex(){return cn.RULE_anyName}accept(t){return t.visitAnyName?t.visitAnyName(this):t.visitChildren(this)}},Do=class extends ga{constructor(t,e){super(t,e)}DOT(t){return void 0===t?this.getTokens(cn.DOT):this.getToken(cn.DOT,t)}attributeName(t){return void 0===t?this.getRuleContexts(fu):this.getRuleContext(t,fu)}get ruleIndex(){return cn.RULE_attributes}accept(t){return t.visitAttributes?t.visitAttributes(this):t.visitChildren(this)}},po=class extends ga{constructor(t,e){super(t,e)}typeName(t){return void 0===t?this.getRuleContexts(LO):this.getRuleContext(t,LO)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_typeNameList}accept(t){return t.visitTypeNameList?t.visitTypeNameList(this):t.visitChildren(this)}},go=class extends ga{constructor(t,e){super(t,e)}TRUNCATE(){return this.getToken(cn.TRUNCATE,0)}optionalTable(){return this.getRuleContext(0,Il)}relationExpressionList(){return this.getRuleContext(0,sO)}optionalRestartSequences(){return this.getRuleContext(0,xo)}optionalDropBehavior(){return this.getRuleContext(0,ah)}get ruleIndex(){return cn.RULE_truncateStatement}accept(t){return t.visitTruncateStatement?t.visitTruncateStatement(this):t.visitChildren(this)}},xo=class extends ga{constructor(t,e){super(t,e)}CONTINUE_P(){return this.getToken(cn.CONTINUE_P,0)}IDENTITY_P(){return this.getToken(cn.IDENTITY_P,0)}RESTART(){return this.getToken(cn.RESTART,0)}get ruleIndex(){return cn.RULE_optionalRestartSequences}accept(t){return t.visitOptionalRestartSequences?t.visitOptionalRestartSequences(this):t.visitChildren(this)}},ko=class extends ga{constructor(t,e){super(t,e)}COMMENT(){return this.getToken(cn.COMMENT,0)}ON(t){return void 0===t?this.getTokens(cn.ON):this.getToken(cn.ON,t)}objectTypeAnyName(){return this.getRuleContext(0,Co)}anyName(){return this.getRuleContext(0,mo)}IS(){return this.getToken(cn.IS,0)}commentText(){return this.getRuleContext(0,Ho)}SEQUENCE(){return this.getToken(cn.SEQUENCE,0)}sequenceName(){return this.getRuleContext(0,Gu)}INDEX(){return this.getToken(cn.INDEX,0)}indexName(){return this.getRuleContext(0,gu)}COLUMN(){return this.getToken(cn.COLUMN,0)}objectTypeName(){return this.getRuleContext(0,_o)}name(){return this.getRuleContext(0,yu)}ROLE(){return this.getToken(cn.ROLE,0)}roleName(){return this.getRuleContext(0,ju)}DATABASE(){return this.getToken(cn.DATABASE,0)}databaseName(){return this.getRuleContext(0,Uu)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}schemaName(){return this.getRuleContext(0,Du)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}typeName(t){return void 0===t?this.getRuleContexts(LO):this.getRuleContext(t,LO)}DOMAIN_P(){return this.getToken(cn.DOMAIN_P,0)}AGGREGATE(){return this.getToken(cn.AGGREGATE,0)}aggregateWithArgumentTypes(){return this.getRuleContext(0,DR)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}functionWithArgumentTypes(){return this.getRuleContext(0,uR)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}operatorWithArgumentTypes(){return this.getRuleContext(0,XR)}CONSTRAINT(){return this.getToken(cn.CONSTRAINT,0)}constraintName(){return this.getRuleContext(0,Hu)}objectTypeNameOnAnyName(){return this.getRuleContext(0,Mo)}TRIGGER(){return this.getToken(cn.TRIGGER,0)}triggerName(){return this.getRuleContext(0,ku)}PROCEDURE(){return this.getToken(cn.PROCEDURE,0)}ROUTINE(){return this.getToken(cn.ROUTINE,0)}TRANSFORM(){return this.getToken(cn.TRANSFORM,0)}FOR(){return this.getToken(cn.FOR,0)}LANGUAGE(){return this.getToken(cn.LANGUAGE,0)}CLASS(){return this.getToken(cn.CLASS,0)}USING(){return this.getToken(cn.USING,0)}FAMILY(){return this.getToken(cn.FAMILY,0)}LARGE_P(){return this.getToken(cn.LARGE_P,0)}OBJECT_P(){return this.getToken(cn.OBJECT_P,0)}numericOnly(){return this.getRuleContext(0,xE)}CAST(){return this.getToken(cn.CAST,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}AS(){return this.getToken(cn.AS,0)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_commentStatement}accept(t){return t.visitCommentStatement?t.visitCommentStatement(this):t.visitChildren(this)}},Ho=class extends ga{constructor(t,e){super(t,e)}sconst(){return this.getRuleContext(0,Qu)}NULL_P(){return this.getToken(cn.NULL_P,0)}get ruleIndex(){return cn.RULE_commentText}accept(t){return t.visitCommentText?t.visitCommentText(this):t.visitChildren(this)}},Go=class extends ga{constructor(t,e){super(t,e)}SECURITY(){return this.getToken(cn.SECURITY,0)}LABEL(){return this.getToken(cn.LABEL,0)}optionalProvider(){return this.getRuleContext(0,Fo)}ON(){return this.getToken(cn.ON,0)}objectTypeAnyName(){return this.getRuleContext(0,Co)}anyName(){return this.getRuleContext(0,mo)}IS(){return this.getToken(cn.IS,0)}securityLabel(){return this.getRuleContext(0,vo)}SEQUENCE(){return this.getToken(cn.SEQUENCE,0)}sequenceName(){return this.getRuleContext(0,Gu)}INDEX(){return this.getToken(cn.INDEX,0)}indexName(){return this.getRuleContext(0,gu)}COLUMN(){return this.getToken(cn.COLUMN,0)}objectTypeName(){return this.getRuleContext(0,_o)}name(){return this.getRuleContext(0,yu)}ROLE(){return this.getToken(cn.ROLE,0)}roleName(){return this.getRuleContext(0,ju)}DATABASE(){return this.getToken(cn.DATABASE,0)}databaseName(){return this.getRuleContext(0,Uu)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}schemaName(){return this.getRuleContext(0,Du)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}typeName(){return this.getRuleContext(0,LO)}DOMAIN_P(){return this.getToken(cn.DOMAIN_P,0)}AGGREGATE(){return this.getToken(cn.AGGREGATE,0)}aggregateWithArgumentTypes(){return this.getRuleContext(0,DR)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}functionWithArgumentTypes(){return this.getRuleContext(0,uR)}LARGE_P(){return this.getToken(cn.LARGE_P,0)}OBJECT_P(){return this.getToken(cn.OBJECT_P,0)}numericOnly(){return this.getRuleContext(0,xE)}PROCEDURE(){return this.getToken(cn.PROCEDURE,0)}ROUTINE(){return this.getToken(cn.ROUTINE,0)}get ruleIndex(){return cn.RULE_securityLabelStatement}accept(t){return t.visitSecurityLabelStatement?t.visitSecurityLabelStatement(this):t.visitChildren(this)}},Fo=class extends ga{constructor(t,e){super(t,e)}FOR(){return this.getToken(cn.FOR,0)}nonReservedWordOrSconst(){return this.getRuleContext(0,fn)}get ruleIndex(){return cn.RULE_optionalProvider}accept(t){return t.visitOptionalProvider?t.visitOptionalProvider(this):t.visitChildren(this)}},vo=class extends ga{constructor(t,e){super(t,e)}sconst(){return this.getRuleContext(0,Qu)}NULL_P(){return this.getToken(cn.NULL_P,0)}get ruleIndex(){return cn.RULE_securityLabel}accept(t){return t.visitSecurityLabel?t.visitSecurityLabel(this):t.visitChildren(this)}},Bo=class extends ga{constructor(t,e){super(t,e)}FETCH(){return this.getToken(cn.FETCH,0)}fetchArguments(){return this.getRuleContext(0,yo)}MOVE(){return this.getToken(cn.MOVE,0)}get ruleIndex(){return cn.RULE_fetchStatement}accept(t){return t.visitFetchStatement?t.visitFetchStatement(this):t.visitChildren(this)}},yo=class extends ga{constructor(t,e){super(t,e)}cursorName(){return this.getRuleContext(0,al)}fromOrIn(){return this.getRuleContext(0,fo)}NEXT(){return this.getToken(cn.NEXT,0)}optionalFromOrIn(){return this.getRuleContext(0,Yo)}PRIOR(){return this.getToken(cn.PRIOR,0)}FIRST_P(){return this.getToken(cn.FIRST_P,0)}LAST_P(){return this.getToken(cn.LAST_P,0)}ABSOLUTE_P(){return this.getToken(cn.ABSOLUTE_P,0)}signedIconst(){return this.getRuleContext(0,qu)}RELATIVE_P(){return this.getToken(cn.RELATIVE_P,0)}ALL(){return this.getToken(cn.ALL,0)}FORWARD(){return this.getToken(cn.FORWARD,0)}BACKWARD(){return this.getToken(cn.BACKWARD,0)}get ruleIndex(){return cn.RULE_fetchArguments}accept(t){return t.visitFetchArguments?t.visitFetchArguments(this):t.visitChildren(this)}},fo=class extends ga{constructor(t,e){super(t,e)}FROM(){return this.getToken(cn.FROM,0)}IN_P(){return this.getToken(cn.IN_P,0)}get ruleIndex(){return cn.RULE_fromOrIn}accept(t){return t.visitFromOrIn?t.visitFromOrIn(this):t.visitChildren(this)}},Yo=class extends ga{constructor(t,e){super(t,e)}fromOrIn(){return this.getRuleContext(0,fo)}get ruleIndex(){return cn.RULE_optionalFromOrIn}accept(t){return t.visitOptionalFromOrIn?t.visitOptionalFromOrIn(this):t.visitChildren(this)}},wo=class extends ga{constructor(t,e){super(t,e)}GRANT(){return this.getToken(cn.GRANT,0)}privileges(){return this.getRuleContext(0,Wo)}ON(){return this.getToken(cn.ON,0)}privilegeTarget(){return this.getRuleContext(0,Ko)}TO(){return this.getToken(cn.TO,0)}granteeList(){return this.getRuleContext(0,Qo)}optionalWithGrantOption(){return this.getRuleContext(0,Zo)}get ruleIndex(){return cn.RULE_grantStatement}accept(t){return t.visitGrantStatement?t.visitGrantStatement(this):t.visitChildren(this)}},bo=class extends ga{constructor(t,e){super(t,e)}REVOKE(){return this.getToken(cn.REVOKE,0)}privileges(){return this.getRuleContext(0,Wo)}ON(){return this.getToken(cn.ON,0)}privilegeTarget(){return this.getRuleContext(0,Ko)}FROM(){return this.getToken(cn.FROM,0)}granteeList(){return this.getRuleContext(0,Qo)}optionalDropBehavior(){return this.getRuleContext(0,ah)}GRANT(){return this.getToken(cn.GRANT,0)}OPTION(){return this.getToken(cn.OPTION,0)}FOR(){return this.getToken(cn.FOR,0)}get ruleIndex(){return cn.RULE_revokeStatement}accept(t){return t.visitRevokeStatement?t.visitRevokeStatement(this):t.visitChildren(this)}},Wo=class extends ga{constructor(t,e){super(t,e)}privilegeList(){return this.getRuleContext(0,Vo)}ALL(){return this.getToken(cn.ALL,0)}PRIVILEGES(){return this.getToken(cn.PRIVILEGES,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}columnList(){return this.getRuleContext(0,qh)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_privileges}accept(t){return t.visitPrivileges?t.visitPrivileges(this):t.visitChildren(this)}},Vo=class extends ga{constructor(t,e){super(t,e)}privilege(t){return void 0===t?this.getRuleContexts(Xo):this.getRuleContext(t,Xo)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_privilegeList}accept(t){return t.visitPrivilegeList?t.visitPrivilegeList(this):t.visitChildren(this)}},Xo=class extends ga{constructor(t,e){super(t,e)}SELECT(){return this.getToken(cn.SELECT,0)}columnListWithParentheses(){return this.getRuleContext(0,Zh)}REFERENCES(){return this.getToken(cn.REFERENCES,0)}CREATE(){return this.getToken(cn.CREATE,0)}columnId(){return this.getRuleContext(0,$u)}get ruleIndex(){return cn.RULE_privilege}accept(t){return t.visitPrivilege?t.visitPrivilege(this):t.visitChildren(this)}},Ko=class extends ga{constructor(t,e){super(t,e)}qualifiedNameList(){return this.getRuleContext(0,du)}TABLE(){return this.getToken(cn.TABLE,0)}SEQUENCE(){return this.getToken(cn.SEQUENCE,0)}sequenceNameList(){return this.getRuleContext(0,Fu)}FOREIGN(){return this.getToken(cn.FOREIGN,0)}DATA_P(){return this.getToken(cn.DATA_P,0)}WRAPPER(){return this.getToken(cn.WRAPPER,0)}nameList(){return this.getRuleContext(0,Bu)}SERVER(){return this.getToken(cn.SERVER,0)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}functionWithArgumentTypesList(){return this.getRuleContext(0,IR)}PROCEDURE(){return this.getToken(cn.PROCEDURE,0)}ROUTINE(){return this.getToken(cn.ROUTINE,0)}DATABASE(){return this.getToken(cn.DATABASE,0)}databaseNameList(){return this.getRuleContext(0,mu)}DOMAIN_P(){return this.getToken(cn.DOMAIN_P,0)}anyNameList(){return this.getRuleContext(0,Uo)}LANGUAGE(){return this.getToken(cn.LANGUAGE,0)}LARGE_P(){return this.getToken(cn.LARGE_P,0)}OBJECT_P(){return this.getToken(cn.OBJECT_P,0)}numericOnlyList(){return this.getRuleContext(0,kE)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}schemaNameList(){return this.getRuleContext(0,pu)}TABLESPACE(){return this.getToken(cn.TABLESPACE,0)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}ALL(){return this.getToken(cn.ALL,0)}IN_P(){return this.getToken(cn.IN_P,0)}TABLES(){return this.getToken(cn.TABLES,0)}SEQUENCES(){return this.getToken(cn.SEQUENCES,0)}FUNCTIONS(){return this.getToken(cn.FUNCTIONS,0)}PROCEDURES(){return this.getToken(cn.PROCEDURES,0)}ROUTINES(){return this.getToken(cn.ROUTINES,0)}get ruleIndex(){return cn.RULE_privilegeTarget}accept(t){return t.visitPrivilegeTarget?t.visitPrivilegeTarget(this):t.visitChildren(this)}},Qo=class extends ga{constructor(t,e){super(t,e)}grantee(t){return void 0===t?this.getRuleContexts(Jo):this.getRuleContext(t,Jo)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_granteeList}accept(t){return t.visitGranteeList?t.visitGranteeList(this):t.visitChildren(this)}},Jo=class extends ga{constructor(t,e){super(t,e)}roleName(){return this.getRuleContext(0,ju)}GROUP_P(){return this.getToken(cn.GROUP_P,0)}get ruleIndex(){return cn.RULE_grantee}accept(t){return t.visitGrantee?t.visitGrantee(this):t.visitChildren(this)}},Zo=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(cn.WITH,0)}GRANT(){return this.getToken(cn.GRANT,0)}OPTION(){return this.getToken(cn.OPTION,0)}get ruleIndex(){return cn.RULE_optionalWithGrantOption}accept(t){return t.visitOptionalWithGrantOption?t.visitOptionalWithGrantOption(this):t.visitChildren(this)}},qo=class extends ga{constructor(t,e){super(t,e)}GRANT(){return this.getToken(cn.GRANT,0)}privilegeList(){return this.getRuleContext(0,Vo)}TO(){return this.getToken(cn.TO,0)}roleNameList(){return this.getRuleContext(0,zu)}optionalGrantAdminOption(){return this.getRuleContext(0,zo)}optionalGrantedBy(){return this.getRuleContext(0,$o)}get ruleIndex(){return cn.RULE_grantPrivilegeStatement}accept(t){return t.visitGrantPrivilegeStatement?t.visitGrantPrivilegeStatement(this):t.visitChildren(this)}},jo=class extends ga{constructor(t,e){super(t,e)}REVOKE(){return this.getToken(cn.REVOKE,0)}privilegeList(){return this.getRuleContext(0,Vo)}FROM(){return this.getToken(cn.FROM,0)}roleNameList(){return this.getRuleContext(0,zu)}optionalGrantedBy(){return this.getRuleContext(0,$o)}optionalDropBehavior(){return this.getRuleContext(0,ah)}ADMIN(){return this.getToken(cn.ADMIN,0)}OPTION(){return this.getToken(cn.OPTION,0)}FOR(){return this.getToken(cn.FOR,0)}get ruleIndex(){return cn.RULE_revokePrivilegeStatement}accept(t){return t.visitRevokePrivilegeStatement?t.visitRevokePrivilegeStatement(this):t.visitChildren(this)}},zo=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(cn.WITH,0)}ADMIN(){return this.getToken(cn.ADMIN,0)}OPTION(){return this.getToken(cn.OPTION,0)}get ruleIndex(){return cn.RULE_optionalGrantAdminOption}accept(t){return t.visitOptionalGrantAdminOption?t.visitOptionalGrantAdminOption(this):t.visitChildren(this)}},$o=class extends ga{constructor(t,e){super(t,e)}GRANTED(){return this.getToken(cn.GRANTED,0)}BY(){return this.getToken(cn.BY,0)}roleName(){return this.getRuleContext(0,ju)}get ruleIndex(){return cn.RULE_optionalGrantedBy}accept(t){return t.visitOptionalGrantedBy?t.visitOptionalGrantedBy(this):t.visitChildren(this)}},tR=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}PRIVILEGES(){return this.getToken(cn.PRIVILEGES,0)}defaultPrivelegeAction(){return this.getRuleContext(0,sR)}defultPrivilegeOption(t){return void 0===t?this.getRuleContexts(eR):this.getRuleContext(t,eR)}get ruleIndex(){return cn.RULE_alterDefaultPrivilegesStatement}accept(t){return t.visitAlterDefaultPrivilegesStatement?t.visitAlterDefaultPrivilegesStatement(this):t.visitChildren(this)}},eR=class extends ga{constructor(t,e){super(t,e)}IN_P(){return this.getToken(cn.IN_P,0)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}schemaNameList(){return this.getRuleContext(0,pu)}FOR(){return this.getToken(cn.FOR,0)}roleOrAliases(){return this.getRuleContext(0,RC)}roleNameList(){return this.getRuleContext(0,zu)}get ruleIndex(){return cn.RULE_defultPrivilegeOption}accept(t){return t.visitDefultPrivilegeOption?t.visitDefultPrivilegeOption(this):t.visitChildren(this)}},sR=class extends ga{constructor(t,e){super(t,e)}GRANT(){return this.getToken(cn.GRANT,0)}privileges(){return this.getRuleContext(0,Wo)}ON(){return this.getToken(cn.ON,0)}defultPrivilegeTarget(){return this.getRuleContext(0,aR)}TO(){return this.getToken(cn.TO,0)}granteeList(){return this.getRuleContext(0,Qo)}optionalWithGrantOption(){return this.getRuleContext(0,Zo)}REVOKE(){return this.getToken(cn.REVOKE,0)}FROM(){return this.getToken(cn.FROM,0)}optionalDropBehavior(){return this.getRuleContext(0,ah)}OPTION(){return this.getToken(cn.OPTION,0)}FOR(){return this.getToken(cn.FOR,0)}get ruleIndex(){return cn.RULE_defaultPrivelegeAction}accept(t){return t.visitDefaultPrivelegeAction?t.visitDefaultPrivelegeAction(this):t.visitChildren(this)}},aR=class extends ga{constructor(t,e){super(t,e)}TABLES(){return this.getToken(cn.TABLES,0)}FUNCTIONS(){return this.getToken(cn.FUNCTIONS,0)}ROUTINES(){return this.getToken(cn.ROUTINES,0)}SEQUENCES(){return this.getToken(cn.SEQUENCES,0)}TYPES_P(){return this.getToken(cn.TYPES_P,0)}SCHEMAS(){return this.getToken(cn.SCHEMAS,0)}get ruleIndex(){return cn.RULE_defultPrivilegeTarget}accept(t){return t.visitDefultPrivilegeTarget?t.visitDefultPrivilegeTarget(this):t.visitChildren(this)}},rR=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}INDEX(){return this.getToken(cn.INDEX,0)}ON(){return this.getToken(cn.ON,0)}relationExpression(){return this.getRuleContext(0,eO)}optionalAccessMethodClause(){return this.getRuleContext(0,iR)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}indexParameters(){return this.getRuleContext(0,cR)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}optionalInclude(){return this.getRuleContext(0,ER)}optionalRelOptions(){return this.getRuleContext(0,hh)}optionalTablespace(){return this.getRuleContext(0,lE)}whereClause(){return this.getRuleContext(0,EO)}UNIQUE(){return this.getToken(cn.UNIQUE,0)}CONCURRENTLY(){return this.getToken(cn.CONCURRENTLY,0)}name(){return this.getRuleContext(0,yu)}IF_P(){return this.getToken(cn.IF_P,0)}NOT(){return this.getToken(cn.NOT,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_indexStatement}accept(t){return t.visitIndexStatement?t.visitIndexStatement(this):t.visitChildren(this)}},iR=class extends ga{constructor(t,e){super(t,e)}USING(){return this.getToken(cn.USING,0)}name(){return this.getRuleContext(0,yu)}get ruleIndex(){return cn.RULE_optionalAccessMethodClause}accept(t){return t.visitOptionalAccessMethodClause?t.visitOptionalAccessMethodClause(this):t.visitChildren(this)}},cR=class extends ga{constructor(t,e){super(t,e)}indexElement(t){return void 0===t?this.getRuleContexts(hR):this.getRuleContext(t,hR)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_indexParameters}accept(t){return t.visitIndexParameters?t.visitIndexParameters(this):t.visitChildren(this)}},nR=class extends ga{constructor(t,e){super(t,e)}optionalCollate(){return this.getRuleContext(0,TR)}optionalClass(){return this.getRuleContext(0,oR)}optionalAscOrDesc(){return this.getRuleContext(0,RR)}optionalNullsOrder(){return this.getRuleContext(0,AR)}anyName(){return this.getRuleContext(0,mo)}relOptions(){return this.getRuleContext(0,nh)}get ruleIndex(){return cn.RULE_indexElemOptions}accept(t){return t.visitIndexElemOptions?t.visitIndexElemOptions(this):t.visitChildren(this)}},hR=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}indexElemOptions(){return this.getRuleContext(0,nR)}functionExpressionWindowless(){return this.getRuleContext(0,OI)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expression1(){return this.getRuleContext(0,wO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_indexElement}accept(t){return t.visitIndexElement?t.visitIndexElement(this):t.visitChildren(this)}},ER=class extends ga{constructor(t,e){super(t,e)}INCLUDE(){return this.getToken(cn.INCLUDE,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}indexElement(t){return void 0===t?this.getRuleContexts(hR):this.getRuleContext(t,hR)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_optionalInclude}accept(t){return t.visitOptionalInclude?t.visitOptionalInclude(this):t.visitChildren(this)}},TR=class extends ga{constructor(t,e){super(t,e)}COLLATE(){return this.getToken(cn.COLLATE,0)}anyName(){return this.getRuleContext(0,mo)}get ruleIndex(){return cn.RULE_optionalCollate}accept(t){return t.visitOptionalCollate?t.visitOptionalCollate(this):t.visitChildren(this)}},oR=class extends ga{constructor(t,e){super(t,e)}anyName(){return this.getRuleContext(0,mo)}get ruleIndex(){return cn.RULE_optionalClass}accept(t){return t.visitOptionalClass?t.visitOptionalClass(this):t.visitChildren(this)}},RR=class extends ga{constructor(t,e){super(t,e)}ASC(){return this.getToken(cn.ASC,0)}DESC(){return this.getToken(cn.DESC,0)}get ruleIndex(){return cn.RULE_optionalAscOrDesc}accept(t){return t.visitOptionalAscOrDesc?t.visitOptionalAscOrDesc(this):t.visitChildren(this)}},AR=class extends ga{constructor(t,e){super(t,e)}NULLS_P(){return this.getToken(cn.NULLS_P,0)}FIRST_P(){return this.getToken(cn.FIRST_P,0)}LAST_P(){return this.getToken(cn.LAST_P,0)}get ruleIndex(){return cn.RULE_optionalNullsOrder}accept(t){return t.visitOptionalNullsOrder?t.visitOptionalNullsOrder(this):t.visitChildren(this)}},SR=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}optionalOrReplace(){return this.getRuleContext(0,lR)}functionName(){return this.getRuleContext(0,wu)}OPEN_PAREN(t){return void 0===t?this.getTokens(cn.OPEN_PAREN):this.getToken(cn.OPEN_PAREN,t)}CLOSE_PAREN(t){return void 0===t?this.getTokens(cn.CLOSE_PAREN):this.getToken(cn.CLOSE_PAREN,t)}createFunctionOptionList(){return this.getRuleContext(0,gR)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}PROCEDURE(){return this.getToken(cn.PROCEDURE,0)}functionArgumentsWithDefaultsList(){return this.getRuleContext(0,NR)}RETURNS(){return this.getToken(cn.RETURNS,0)}functionReturn(){return this.getRuleContext(0,MR)}TABLE(){return this.getToken(cn.TABLE,0)}tableFunctionColumnList(){return this.getRuleContext(0,BR)}get ruleIndex(){return cn.RULE_createFunctionStatement}accept(t){return t.visitCreateFunctionStatement?t.visitCreateFunctionStatement(this):t.visitChildren(this)}},lR=class extends ga{constructor(t,e){super(t,e)}OR(){return this.getToken(cn.OR,0)}REPLACE(){return this.getToken(cn.REPLACE,0)}get ruleIndex(){return cn.RULE_optionalOrReplace}accept(t){return t.visitOptionalOrReplace?t.visitOptionalOrReplace(this):t.visitChildren(this)}},OR=class extends ga{constructor(t,e){super(t,e)}functionArgument(t){return void 0===t?this.getRuleContexts(CR):this.getRuleContext(t,CR)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_functionArgumentsList}accept(t){return t.visitFunctionArgumentsList?t.visitFunctionArgumentsList(this):t.visitChildren(this)}},IR=class extends ga{constructor(t,e){super(t,e)}functionWithArgumentTypes(t){return void 0===t?this.getRuleContexts(uR):this.getRuleContext(t,uR)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_functionWithArgumentTypesList}accept(t){return t.visitFunctionWithArgumentTypesList?t.visitFunctionWithArgumentTypesList(this):t.visitChildren(this)}},uR=class extends ga{constructor(t,e){super(t,e)}functionName(){return this.getRuleContext(0,wu)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}functionArgumentsList(){return this.getRuleContext(0,OR)}typeFunctionNameKeyword(){return this.getRuleContext(0,hN)}columnId(){return this.getRuleContext(0,$u)}indirection(){return this.getRuleContext(0,uu)}get ruleIndex(){return cn.RULE_functionWithArgumentTypes}accept(t){return t.visitFunctionWithArgumentTypes?t.visitFunctionWithArgumentTypes(this):t.visitChildren(this)}},NR=class extends ga{constructor(t,e){super(t,e)}functionArgumentWithDefault(t){return void 0===t?this.getRuleContexts(LR):this.getRuleContext(t,LR)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_functionArgumentsWithDefaultsList}accept(t){return t.visitFunctionArgumentsWithDefaultsList?t.visitFunctionArgumentsWithDefaultsList(this):t.visitChildren(this)}},LR=class extends ga{constructor(t,e){super(t,e)}functionArgument(){return this.getRuleContext(0,CR)}expression1(){return this.getRuleContext(0,wO)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}EQUAL(){return this.getToken(cn.EQUAL,0)}get ruleIndex(){return cn.RULE_functionArgumentWithDefault}accept(t){return t.visitFunctionArgumentWithDefault?t.visitFunctionArgumentWithDefault(this):t.visitChildren(this)}},CR=class extends ga{constructor(t,e){super(t,e)}argumentClass(){return this.getRuleContext(0,_R)}functionType(){return this.getRuleContext(0,dR)}parameterName(){return this.getRuleContext(0,PR)}get ruleIndex(){return cn.RULE_functionArgument}accept(t){return t.visitFunctionArgument?t.visitFunctionArgument(this):t.visitChildren(this)}},_R=class extends ga{constructor(t,e){super(t,e)}IN_P(){return this.getToken(cn.IN_P,0)}OUT_P(){return this.getToken(cn.OUT_P,0)}INOUT(){return this.getToken(cn.INOUT,0)}VARIADIC(){return this.getToken(cn.VARIADIC,0)}get ruleIndex(){return cn.RULE_argumentClass}accept(t){return t.visitArgumentClass?t.visitArgumentClass(this):t.visitChildren(this)}},PR=class extends ga{constructor(t,e){super(t,e)}typeFunctionName(){return this.getRuleContext(0,eN)}builtinFunctionName(){return this.getRuleContext(0,TN)}LEFT(){return this.getToken(cn.LEFT,0)}RIGHT(){return this.getToken(cn.RIGHT,0)}get ruleIndex(){return cn.RULE_parameterName}accept(t){return t.visitParameterName?t.visitParameterName(this):t.visitChildren(this)}},MR=class extends ga{constructor(t,e){super(t,e)}functionType(){return this.getRuleContext(0,dR)}get ruleIndex(){return cn.RULE_functionReturn}accept(t){return t.visitFunctionReturn?t.visitFunctionReturn(this):t.visitChildren(this)}},dR=class extends ga{constructor(t,e){super(t,e)}typeName(){return this.getRuleContext(0,LO)}attributes(){return this.getRuleContext(0,Do)}PERCENT(){return this.getToken(cn.PERCENT,0)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}builtinFunctionName(){return this.getRuleContext(0,TN)}typeFunctionName(){return this.getRuleContext(0,eN)}LEFT(){return this.getToken(cn.LEFT,0)}RIGHT(){return this.getToken(cn.RIGHT,0)}SETOF(){return this.getToken(cn.SETOF,0)}get ruleIndex(){return cn.RULE_functionType}accept(t){return t.visitFunctionType?t.visitFunctionType(this):t.visitChildren(this)}},UR=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}STAR(){return this.getToken(cn.STAR,0)}aggregateArgumentsList(t){return void 0===t?this.getRuleContexts(mR):this.getRuleContext(t,mR)}ORDER(){return this.getToken(cn.ORDER,0)}BY(){return this.getToken(cn.BY,0)}get ruleIndex(){return cn.RULE_aggregateArguments}accept(t){return t.visitAggregateArguments?t.visitAggregateArguments(this):t.visitChildren(this)}},mR=class extends ga{constructor(t,e){super(t,e)}functionArgument(t){return void 0===t?this.getRuleContexts(CR):this.getRuleContext(t,CR)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_aggregateArgumentsList}accept(t){return t.visitAggregateArgumentsList?t.visitAggregateArgumentsList(this):t.visitChildren(this)}},DR=class extends ga{constructor(t,e){super(t,e)}functionName(){return this.getRuleContext(0,wu)}aggregateArguments(){return this.getRuleContext(0,UR)}get ruleIndex(){return cn.RULE_aggregateWithArgumentTypes}accept(t){return t.visitAggregateWithArgumentTypes?t.visitAggregateWithArgumentTypes(this):t.visitChildren(this)}},pR=class extends ga{constructor(t,e){super(t,e)}aggregateWithArgumentTypes(t){return void 0===t?this.getRuleContexts(DR):this.getRuleContext(t,DR)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_aggregateWithArgumentTypesList}accept(t){return t.visitAggregateWithArgumentTypesList?t.visitAggregateWithArgumentTypesList(this):t.visitChildren(this)}},gR=class extends ga{constructor(t,e){super(t,e)}createFunctionOptionItem(t){return void 0===t?this.getRuleContexts(kR):this.getRuleContext(t,kR)}get ruleIndex(){return cn.RULE_createFunctionOptionList}accept(t){return t.visitCreateFunctionOptionList?t.visitCreateFunctionOptionList(this):t.visitChildren(this)}},xR=class extends ga{constructor(t,e){super(t,e)}CALLED(){return this.getToken(cn.CALLED,0)}ON(){return this.getToken(cn.ON,0)}NULL_P(t){return void 0===t?this.getTokens(cn.NULL_P):this.getToken(cn.NULL_P,t)}INPUT_P(){return this.getToken(cn.INPUT_P,0)}RETURNS(){return this.getToken(cn.RETURNS,0)}STRICT_P(){return this.getToken(cn.STRICT_P,0)}IMMUTABLE(){return this.getToken(cn.IMMUTABLE,0)}STABLE(){return this.getToken(cn.STABLE,0)}VOLATILE(){return this.getToken(cn.VOLATILE,0)}EXTERNAL(){return this.getToken(cn.EXTERNAL,0)}SECURITY(){return this.getToken(cn.SECURITY,0)}DEFINER(){return this.getToken(cn.DEFINER,0)}INVOKER(){return this.getToken(cn.INVOKER,0)}LEAKPROOF(){return this.getToken(cn.LEAKPROOF,0)}NOT(){return this.getToken(cn.NOT,0)}COST(){return this.getToken(cn.COST,0)}numericOnly(){return this.getRuleContext(0,xE)}ROWS(){return this.getToken(cn.ROWS,0)}SUPPORT(){return this.getToken(cn.SUPPORT,0)}anyName(){return this.getRuleContext(0,mo)}functionSetResetClause(){return this.getRuleContext(0,Vn)}PARALLEL(){return this.getToken(cn.PARALLEL,0)}columnId(){return this.getRuleContext(0,$u)}get ruleIndex(){return cn.RULE_commonFunctionOptionItem}accept(t){return t.visitCommonFunctionOptionItem?t.visitCommonFunctionOptionItem(this):t.visitChildren(this)}},kR=class extends ga{constructor(t,e){super(t,e)}AS(){return this.getToken(cn.AS,0)}functionAs(){return this.getRuleContext(0,HR)}LANGUAGE(){return this.getToken(cn.LANGUAGE,0)}nonReservedWordOrSconst(){return this.getRuleContext(0,fn)}TRANSFORM(){return this.getToken(cn.TRANSFORM,0)}transformTypeList(){return this.getRuleContext(0,GR)}WINDOW(){return this.getToken(cn.WINDOW,0)}commonFunctionOptionItem(){return this.getRuleContext(0,xR)}get ruleIndex(){return cn.RULE_createFunctionOptionItem}accept(t){return t.visitCreateFunctionOptionItem?t.visitCreateFunctionOptionItem(this):t.visitChildren(this)}},HR=class extends ga{constructor(t,e){super(t,e)}sconst(t){return void 0===t?this.getRuleContexts(Qu):this.getRuleContext(t,Qu)}COMMA(){return this.getToken(cn.COMMA,0)}get ruleIndex(){return cn.RULE_functionAs}accept(t){return t.visitFunctionAs?t.visitFunctionAs(this):t.visitChildren(this)}},GR=class extends ga{constructor(t,e){super(t,e)}FOR(t){return void 0===t?this.getTokens(cn.FOR):this.getToken(cn.FOR,t)}TYPE_P(t){return void 0===t?this.getTokens(cn.TYPE_P):this.getToken(cn.TYPE_P,t)}typeName(t){return void 0===t?this.getRuleContexts(LO):this.getRuleContext(t,LO)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_transformTypeList}accept(t){return t.visitTransformTypeList?t.visitTransformTypeList(this):t.visitChildren(this)}},FR=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(cn.WITH,0)}definition(){return this.getRuleContext(0,$T)}get ruleIndex(){return cn.RULE_optionalDefinition}accept(t){return t.visitOptionalDefinition?t.visitOptionalDefinition(this):t.visitChildren(this)}},vR=class extends ga{constructor(t,e){super(t,e)}parameterName(){return this.getRuleContext(0,PR)}functionType(){return this.getRuleContext(0,dR)}get ruleIndex(){return cn.RULE_tableFunctionColumn}accept(t){return t.visitTableFunctionColumn?t.visitTableFunctionColumn(this):t.visitChildren(this)}},BR=class extends ga{constructor(t,e){super(t,e)}tableFunctionColumn(t){return void 0===t?this.getRuleContexts(vR):this.getRuleContext(t,vR)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_tableFunctionColumnList}accept(t){return t.visitTableFunctionColumnList?t.visitTableFunctionColumnList(this):t.visitChildren(this)}},yR=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}functionWithArgumentTypes(){return this.getRuleContext(0,uR)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}PROCEDURE(){return this.getToken(cn.PROCEDURE,0)}ROUTINE(){return this.getToken(cn.ROUTINE,0)}commonFunctionOptionItem(t){return void 0===t?this.getRuleContexts(xR):this.getRuleContext(t,xR)}RESTRICT(){return this.getToken(cn.RESTRICT,0)}get ruleIndex(){return cn.RULE_alterFunctionStatement}accept(t){return t.visitAlterFunctionStatement?t.visitAlterFunctionStatement(this):t.visitChildren(this)}},fR=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(cn.DROP,0)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}functionWithArgumentTypesList(){return this.getRuleContext(0,IR)}optionalDropBehavior(){return this.getRuleContext(0,ah)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}PROCEDURE(){return this.getToken(cn.PROCEDURE,0)}ROUTINE(){return this.getToken(cn.ROUTINE,0)}get ruleIndex(){return cn.RULE_removeFunctionStatement}accept(t){return t.visitRemoveFunctionStatement?t.visitRemoveFunctionStatement(this):t.visitChildren(this)}},YR=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(cn.DROP,0)}AGGREGATE(){return this.getToken(cn.AGGREGATE,0)}aggregateWithArgumentTypesList(){return this.getRuleContext(0,pR)}optionalDropBehavior(){return this.getRuleContext(0,ah)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_removeAggregateStatement}accept(t){return t.visitRemoveAggregateStatement?t.visitRemoveAggregateStatement(this):t.visitChildren(this)}},wR=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(cn.DROP,0)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}operatorWithArgumentTypesList(){return this.getRuleContext(0,VR)}optionalDropBehavior(){return this.getRuleContext(0,ah)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_removeOperatorStatement}accept(t){return t.visitRemoveOperatorStatement?t.visitRemoveOperatorStatement(this):t.visitChildren(this)}},bR=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}typeName(t){return void 0===t?this.getRuleContexts(LO):this.getRuleContext(t,LO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}COMMA(){return this.getToken(cn.COMMA,0)}NONE(){return this.getToken(cn.NONE,0)}get ruleIndex(){return cn.RULE_operatorArgumentTypes}accept(t){return t.visitOperatorArgumentTypes?t.visitOperatorArgumentTypes(this):t.visitChildren(this)}},WR=class extends ga{constructor(t,e){super(t,e)}allOperator(){return this.getRuleContext(0,VI)}columnId(t){return void 0===t?this.getRuleContexts($u):this.getRuleContext(t,$u)}DOT(t){return void 0===t?this.getTokens(cn.DOT):this.getToken(cn.DOT,t)}get ruleIndex(){return cn.RULE_anyOperator}accept(t){return t.visitAnyOperator?t.visitAnyOperator(this):t.visitChildren(this)}},VR=class extends ga{constructor(t,e){super(t,e)}operatorWithArgumentTypes(t){return void 0===t?this.getRuleContexts(XR):this.getRuleContext(t,XR)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_operatorWithArgumentTypesList}accept(t){return t.visitOperatorWithArgumentTypesList?t.visitOperatorWithArgumentTypesList(this):t.visitChildren(this)}},XR=class extends ga{constructor(t,e){super(t,e)}anyOperator(){return this.getRuleContext(0,WR)}operatorArgumentTypes(){return this.getRuleContext(0,bR)}get ruleIndex(){return cn.RULE_operatorWithArgumentTypes}accept(t){return t.visitOperatorWithArgumentTypes?t.visitOperatorWithArgumentTypes(this):t.visitChildren(this)}},KR=class extends ga{constructor(t,e){super(t,e)}DO(){return this.getToken(cn.DO,0)}doStatementOptionsList(){return this.getRuleContext(0,QR)}get ruleIndex(){return cn.RULE_doStatement}accept(t){return t.visitDoStatement?t.visitDoStatement(this):t.visitChildren(this)}},QR=class extends ga{constructor(t,e){super(t,e)}doStatementOptionItem(t){return void 0===t?this.getRuleContexts(JR):this.getRuleContext(t,JR)}get ruleIndex(){return cn.RULE_doStatementOptionsList}accept(t){return t.visitDoStatementOptionsList?t.visitDoStatementOptionsList(this):t.visitChildren(this)}},JR=class extends ga{constructor(t,e){super(t,e)}sconst(){return this.getRuleContext(0,Qu)}LANGUAGE(){return this.getToken(cn.LANGUAGE,0)}nonReservedWordOrSconst(){return this.getRuleContext(0,fn)}get ruleIndex(){return cn.RULE_doStatementOptionItem}accept(t){return t.visitDoStatementOptionItem?t.visitDoStatementOptionItem(this):t.visitChildren(this)}},ZR=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}CAST(){return this.getToken(cn.CAST,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}typeName(t){return void 0===t?this.getRuleContexts(LO):this.getRuleContext(t,LO)}AS(){return this.getToken(cn.AS,0)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}WITH(){return this.getToken(cn.WITH,0)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}functionWithArgumentTypes(){return this.getRuleContext(0,uR)}castContext(){return this.getRuleContext(0,qR)}WITHOUT(){return this.getToken(cn.WITHOUT,0)}INOUT(){return this.getToken(cn.INOUT,0)}get ruleIndex(){return cn.RULE_createCastStatement}accept(t){return t.visitCreateCastStatement?t.visitCreateCastStatement(this):t.visitChildren(this)}},qR=class extends ga{constructor(t,e){super(t,e)}AS(){return this.getToken(cn.AS,0)}IMPLICIT_P(){return this.getToken(cn.IMPLICIT_P,0)}ASSIGNMENT(){return this.getToken(cn.ASSIGNMENT,0)}get ruleIndex(){return cn.RULE_castContext}accept(t){return t.visitCastContext?t.visitCastContext(this):t.visitChildren(this)}},jR=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(cn.DROP,0)}CAST(){return this.getToken(cn.CAST,0)}optionalIfExists(){return this.getRuleContext(0,zR)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}typeName(t){return void 0===t?this.getRuleContexts(LO):this.getRuleContext(t,LO)}AS(){return this.getToken(cn.AS,0)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}optionalDropBehavior(){return this.getRuleContext(0,ah)}get ruleIndex(){return cn.RULE_dropCastStatement}accept(t){return t.visitDropCastStatement?t.visitDropCastStatement(this):t.visitChildren(this)}},zR=class extends ga{constructor(t,e){super(t,e)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_optionalIfExists}accept(t){return t.visitOptionalIfExists?t.visitOptionalIfExists(this):t.visitChildren(this)}},$R=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}optionalOrReplace(){return this.getRuleContext(0,lR)}TRANSFORM(){return this.getToken(cn.TRANSFORM,0)}FOR(){return this.getToken(cn.FOR,0)}typeName(){return this.getRuleContext(0,LO)}LANGUAGE(){return this.getToken(cn.LANGUAGE,0)}name(){return this.getRuleContext(0,yu)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}transformElementList(){return this.getRuleContext(0,tA)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_createTransformStatement}accept(t){return t.visitCreateTransformStatement?t.visitCreateTransformStatement(this):t.visitChildren(this)}},tA=class extends ga{constructor(t,e){super(t,e)}FROM(){return this.getToken(cn.FROM,0)}SQL_P(t){return void 0===t?this.getTokens(cn.SQL_P):this.getToken(cn.SQL_P,t)}WITH(t){return void 0===t?this.getTokens(cn.WITH):this.getToken(cn.WITH,t)}FUNCTION(t){return void 0===t?this.getTokens(cn.FUNCTION):this.getToken(cn.FUNCTION,t)}functionWithArgumentTypes(t){return void 0===t?this.getRuleContexts(uR):this.getRuleContext(t,uR)}COMMA(){return this.getToken(cn.COMMA,0)}TO(){return this.getToken(cn.TO,0)}get ruleIndex(){return cn.RULE_transformElementList}accept(t){return t.visitTransformElementList?t.visitTransformElementList(this):t.visitChildren(this)}},eA=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(cn.DROP,0)}TRANSFORM(){return this.getToken(cn.TRANSFORM,0)}optionalIfExists(){return this.getRuleContext(0,zR)}FOR(){return this.getToken(cn.FOR,0)}typeName(){return this.getRuleContext(0,LO)}LANGUAGE(){return this.getToken(cn.LANGUAGE,0)}name(){return this.getRuleContext(0,yu)}optionalDropBehavior(){return this.getRuleContext(0,ah)}get ruleIndex(){return cn.RULE_dropTransformStatement}accept(t){return t.visitDropTransformStatement?t.visitDropTransformStatement(this):t.visitChildren(this)}},sA=class extends ga{constructor(t,e){super(t,e)}REINDEX(){return this.getToken(cn.REINDEX,0)}reindexTargetType(){return this.getRuleContext(0,aA)}qualifiedName(){return this.getRuleContext(0,vu)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}reindexOptionList(){return this.getRuleContext(0,rA)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}CONCURRENTLY(){return this.getToken(cn.CONCURRENTLY,0)}DATABASE(){return this.getToken(cn.DATABASE,0)}databaseName(){return this.getRuleContext(0,Uu)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}schemaName(){return this.getRuleContext(0,Du)}INDEX(){return this.getToken(cn.INDEX,0)}indexName(){return this.getRuleContext(0,gu)}SYSTEM_P(){return this.getToken(cn.SYSTEM_P,0)}name(){return this.getRuleContext(0,yu)}get ruleIndex(){return cn.RULE_reindexStatement}accept(t){return t.visitReindexStatement?t.visitReindexStatement(this):t.visitChildren(this)}},aA=class extends ga{constructor(t,e){super(t,e)}TABLE(){return this.getToken(cn.TABLE,0)}SYSTEM_P(){return this.getToken(cn.SYSTEM_P,0)}get ruleIndex(){return cn.RULE_reindexTargetType}accept(t){return t.visitReindexTargetType?t.visitReindexTargetType(this):t.visitChildren(this)}},rA=class extends ga{constructor(t,e){super(t,e)}reindexOptionElement(t){return void 0===t?this.getRuleContexts(iA):this.getRuleContext(t,iA)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_reindexOptionList}accept(t){return t.visitReindexOptionList?t.visitReindexOptionList(this):t.visitChildren(this)}},iA=class extends ga{constructor(t,e){super(t,e)}VERBOSE(){return this.getToken(cn.VERBOSE,0)}TABLESPACE(){return this.getToken(cn.TABLESPACE,0)}CONCURRENTLY(){return this.getToken(cn.CONCURRENTLY,0)}get ruleIndex(){return cn.RULE_reindexOptionElement}accept(t){return t.visitReindexOptionElement?t.visitReindexOptionElement(this):t.visitChildren(this)}},cA=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}TABLESPACE(){return this.getToken(cn.TABLESPACE,0)}name(){return this.getRuleContext(0,yu)}SET(){return this.getToken(cn.SET,0)}relOptions(){return this.getRuleContext(0,nh)}RESET(){return this.getToken(cn.RESET,0)}get ruleIndex(){return cn.RULE_alterTablespaceStatement}accept(t){return t.visitAlterTablespaceStatement?t.visitAlterTablespaceStatement(this):t.visitChildren(this)}},nA=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}AGGREGATE(){return this.getToken(cn.AGGREGATE,0)}aggregateWithArgumentTypes(){return this.getRuleContext(0,DR)}RENAME(){return this.getToken(cn.RENAME,0)}TO(){return this.getToken(cn.TO,0)}name(t){return void 0===t?this.getRuleContexts(yu):this.getRuleContext(t,yu)}COLLATION(){return this.getToken(cn.COLLATION,0)}anyName(){return this.getRuleContext(0,mo)}CONVERSION_P(){return this.getToken(cn.CONVERSION_P,0)}DATABASE(){return this.getToken(cn.DATABASE,0)}databaseName(){return this.getRuleContext(0,Uu)}DOMAIN_P(){return this.getToken(cn.DOMAIN_P,0)}CONSTRAINT(){return this.getToken(cn.CONSTRAINT,0)}constraintName(){return this.getRuleContext(0,Hu)}FOREIGN(){return this.getToken(cn.FOREIGN,0)}DATA_P(){return this.getToken(cn.DATA_P,0)}WRAPPER(){return this.getToken(cn.WRAPPER,0)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}functionWithArgumentTypes(){return this.getRuleContext(0,uR)}optionalProcedural(){return this.getRuleContext(0,BE)}LANGUAGE(){return this.getToken(cn.LANGUAGE,0)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}CLASS(){return this.getToken(cn.CLASS,0)}USING(){return this.getToken(cn.USING,0)}FAMILY(){return this.getToken(cn.FAMILY,0)}POLICY(){return this.getToken(cn.POLICY,0)}ON(){return this.getToken(cn.ON,0)}qualifiedName(){return this.getRuleContext(0,vu)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}PROCEDURE(){return this.getToken(cn.PROCEDURE,0)}PUBLICATION(){return this.getToken(cn.PUBLICATION,0)}ROUTINE(){return this.getToken(cn.ROUTINE,0)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}schemaName(){return this.getRuleContext(0,Du)}SERVER(){return this.getToken(cn.SERVER,0)}SUBSCRIPTION(){return this.getToken(cn.SUBSCRIPTION,0)}TABLE(){return this.getToken(cn.TABLE,0)}relationExpression(){return this.getRuleContext(0,eO)}SEQUENCE(){return this.getToken(cn.SEQUENCE,0)}sequenceName(){return this.getRuleContext(0,Gu)}VIEW(){return this.getToken(cn.VIEW,0)}MATERIALIZED(){return this.getToken(cn.MATERIALIZED,0)}INDEX(){return this.getToken(cn.INDEX,0)}indexName(){return this.getRuleContext(0,gu)}optionalColumn(){return this.getRuleContext(0,hA)}RULE(){return this.getToken(cn.RULE,0)}TRIGGER(){return this.getToken(cn.TRIGGER,0)}triggerName(){return this.getRuleContext(0,ku)}EVENT(){return this.getToken(cn.EVENT,0)}roleOrAliases(){return this.getRuleContext(0,RC)}roleName(t){return void 0===t?this.getRuleContexts(ju):this.getRuleContext(t,ju)}TABLESPACE(){return this.getToken(cn.TABLESPACE,0)}STATISTICS(){return this.getToken(cn.STATISTICS,0)}TEXT_P(){return this.getToken(cn.TEXT_P,0)}SEARCH(){return this.getToken(cn.SEARCH,0)}PARSER(){return this.getToken(cn.PARSER,0)}DICTIONARY(){return this.getToken(cn.DICTIONARY,0)}TEMPLATE(){return this.getToken(cn.TEMPLATE,0)}CONFIGURATION(){return this.getToken(cn.CONFIGURATION,0)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}ATTRIBUTE(){return this.getToken(cn.ATTRIBUTE,0)}optionalDropBehavior(){return this.getRuleContext(0,ah)}get ruleIndex(){return cn.RULE_renameStatement}accept(t){return t.visitRenameStatement?t.visitRenameStatement(this):t.visitChildren(this)}},hA=class extends ga{constructor(t,e){super(t,e)}COLUMN(){return this.getToken(cn.COLUMN,0)}get ruleIndex(){return cn.RULE_optionalColumn}accept(t){return t.visitOptionalColumn?t.visitOptionalColumn(this):t.visitChildren(this)}},EA=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(cn.SET,0)}DATA_P(){return this.getToken(cn.DATA_P,0)}get ruleIndex(){return cn.RULE_optionalSetData}accept(t){return t.visitOptionalSetData?t.visitOptionalSetData(this):t.visitChildren(this)}},TA=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}functionWithArgumentTypes(){return this.getRuleContext(0,uR)}DEPENDS(){return this.getToken(cn.DEPENDS,0)}ON(t){return void 0===t?this.getTokens(cn.ON):this.getToken(cn.ON,t)}EXTENSION(){return this.getToken(cn.EXTENSION,0)}name(){return this.getRuleContext(0,yu)}NO(){return this.getToken(cn.NO,0)}PROCEDURE(){return this.getToken(cn.PROCEDURE,0)}ROUTINE(){return this.getToken(cn.ROUTINE,0)}TRIGGER(){return this.getToken(cn.TRIGGER,0)}triggerName(){return this.getRuleContext(0,ku)}qualifiedName(){return this.getRuleContext(0,vu)}MATERIALIZED(){return this.getToken(cn.MATERIALIZED,0)}VIEW(){return this.getToken(cn.VIEW,0)}INDEX(){return this.getToken(cn.INDEX,0)}indexName(){return this.getRuleContext(0,gu)}get ruleIndex(){return cn.RULE_alterObjectDependsStatement}accept(t){return t.visitAlterObjectDependsStatement?t.visitAlterObjectDependsStatement(this):t.visitChildren(this)}},oA=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}AGGREGATE(){return this.getToken(cn.AGGREGATE,0)}aggregateWithArgumentTypes(){return this.getRuleContext(0,DR)}SET(){return this.getToken(cn.SET,0)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}schemaName(){return this.getRuleContext(0,Du)}COLLATION(){return this.getToken(cn.COLLATION,0)}anyName(){return this.getRuleContext(0,mo)}CONVERSION_P(){return this.getToken(cn.CONVERSION_P,0)}DOMAIN_P(){return this.getToken(cn.DOMAIN_P,0)}EXTENSION(){return this.getToken(cn.EXTENSION,0)}name(){return this.getRuleContext(0,yu)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}functionWithArgumentTypes(){return this.getRuleContext(0,uR)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}operatorWithArgumentTypes(){return this.getRuleContext(0,XR)}CLASS(){return this.getToken(cn.CLASS,0)}USING(){return this.getToken(cn.USING,0)}FAMILY(){return this.getToken(cn.FAMILY,0)}PROCEDURE(){return this.getToken(cn.PROCEDURE,0)}ROUTINE(){return this.getToken(cn.ROUTINE,0)}TABLE(){return this.getToken(cn.TABLE,0)}relationExpression(){return this.getRuleContext(0,eO)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}STATISTICS(){return this.getToken(cn.STATISTICS,0)}TEXT_P(){return this.getToken(cn.TEXT_P,0)}SEARCH(){return this.getToken(cn.SEARCH,0)}PARSER(){return this.getToken(cn.PARSER,0)}DICTIONARY(){return this.getToken(cn.DICTIONARY,0)}TEMPLATE(){return this.getToken(cn.TEMPLATE,0)}CONFIGURATION(){return this.getToken(cn.CONFIGURATION,0)}SEQUENCE(){return this.getToken(cn.SEQUENCE,0)}sequenceName(){return this.getRuleContext(0,Gu)}VIEW(){return this.getToken(cn.VIEW,0)}qualifiedName(){return this.getRuleContext(0,vu)}MATERIALIZED(){return this.getToken(cn.MATERIALIZED,0)}FOREIGN(){return this.getToken(cn.FOREIGN,0)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}get ruleIndex(){return cn.RULE_alterObjectSchemaStatement}accept(t){return t.visitAlterObjectSchemaStatement?t.visitAlterObjectSchemaStatement(this):t.visitChildren(this)}},RA=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}operatorWithArgumentTypes(){return this.getRuleContext(0,XR)}SET(){return this.getToken(cn.SET,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}operatorDefinitionList(){return this.getRuleContext(0,AA)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_alterOperatorStatement}accept(t){return t.visitAlterOperatorStatement?t.visitAlterOperatorStatement(this):t.visitChildren(this)}},AA=class extends ga{constructor(t,e){super(t,e)}operatorDefinitionElement(t){return void 0===t?this.getRuleContexts(SA):this.getRuleContext(t,SA)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_operatorDefinitionList}accept(t){return t.visitOperatorDefinitionList?t.visitOperatorDefinitionList(this):t.visitChildren(this)}},SA=class extends ga{constructor(t,e){super(t,e)}columnLabel(){return this.getRuleContext(0,aN)}EQUAL(){return this.getToken(cn.EQUAL,0)}NONE(){return this.getToken(cn.NONE,0)}operatorDefinitionArgument(){return this.getRuleContext(0,lA)}get ruleIndex(){return cn.RULE_operatorDefinitionElement}accept(t){return t.visitOperatorDefinitionElement?t.visitOperatorDefinitionElement(this):t.visitChildren(this)}},lA=class extends ga{constructor(t,e){super(t,e)}functionType(){return this.getRuleContext(0,dR)}reservedKeyword(){return this.getRuleContext(0,EN)}allOperatorQualifier(){return this.getRuleContext(0,QI)}numericOnly(){return this.getRuleContext(0,xE)}sconst(){return this.getRuleContext(0,Qu)}get ruleIndex(){return cn.RULE_operatorDefinitionArgument}accept(t){return t.visitOperatorDefinitionArgument?t.visitOperatorDefinitionArgument(this):t.visitChildren(this)}},OA=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}anyName(){return this.getRuleContext(0,mo)}SET(){return this.getToken(cn.SET,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}operatorDefinitionList(){return this.getRuleContext(0,AA)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_alterTypeStatement}accept(t){return t.visitAlterTypeStatement?t.visitAlterTypeStatement(this):t.visitChildren(this)}},IA=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}AGGREGATE(){return this.getToken(cn.AGGREGATE,0)}aggregateWithArgumentTypes(){return this.getRuleContext(0,DR)}OWNER(){return this.getToken(cn.OWNER,0)}TO(){return this.getToken(cn.TO,0)}roleName(){return this.getRuleContext(0,ju)}COLLATION(){return this.getToken(cn.COLLATION,0)}anyName(){return this.getRuleContext(0,mo)}CONVERSION_P(){return this.getToken(cn.CONVERSION_P,0)}DATABASE(){return this.getToken(cn.DATABASE,0)}databaseName(){return this.getRuleContext(0,Uu)}DOMAIN_P(){return this.getToken(cn.DOMAIN_P,0)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}functionWithArgumentTypes(){return this.getRuleContext(0,uR)}optionalProcedural(){return this.getRuleContext(0,BE)}LANGUAGE(){return this.getToken(cn.LANGUAGE,0)}name(){return this.getRuleContext(0,yu)}LARGE_P(){return this.getToken(cn.LARGE_P,0)}OBJECT_P(){return this.getToken(cn.OBJECT_P,0)}numericOnly(){return this.getRuleContext(0,xE)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}operatorWithArgumentTypes(){return this.getRuleContext(0,XR)}CLASS(){return this.getToken(cn.CLASS,0)}USING(){return this.getToken(cn.USING,0)}FAMILY(){return this.getToken(cn.FAMILY,0)}PROCEDURE(){return this.getToken(cn.PROCEDURE,0)}ROUTINE(){return this.getToken(cn.ROUTINE,0)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}schemaName(){return this.getRuleContext(0,Du)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}TABLESPACE(){return this.getToken(cn.TABLESPACE,0)}STATISTICS(){return this.getToken(cn.STATISTICS,0)}TEXT_P(){return this.getToken(cn.TEXT_P,0)}SEARCH(){return this.getToken(cn.SEARCH,0)}DICTIONARY(){return this.getToken(cn.DICTIONARY,0)}CONFIGURATION(){return this.getToken(cn.CONFIGURATION,0)}FOREIGN(){return this.getToken(cn.FOREIGN,0)}DATA_P(){return this.getToken(cn.DATA_P,0)}WRAPPER(){return this.getToken(cn.WRAPPER,0)}SERVER(){return this.getToken(cn.SERVER,0)}EVENT(){return this.getToken(cn.EVENT,0)}TRIGGER(){return this.getToken(cn.TRIGGER,0)}PUBLICATION(){return this.getToken(cn.PUBLICATION,0)}SUBSCRIPTION(){return this.getToken(cn.SUBSCRIPTION,0)}get ruleIndex(){return cn.RULE_alterOwnerStatement}accept(t){return t.visitAlterOwnerStatement?t.visitAlterOwnerStatement(this):t.visitChildren(this)}},uA=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}PUBLICATION(){return this.getToken(cn.PUBLICATION,0)}name(){return this.getRuleContext(0,yu)}optionalPublicationForTables(){return this.getRuleContext(0,NA)}optionalDefinition(){return this.getRuleContext(0,FR)}get ruleIndex(){return cn.RULE_createPublicationStatement}accept(t){return t.visitCreatePublicationStatement?t.visitCreatePublicationStatement(this):t.visitChildren(this)}},NA=class extends ga{constructor(t,e){super(t,e)}publicationForTables(){return this.getRuleContext(0,LA)}get ruleIndex(){return cn.RULE_optionalPublicationForTables}accept(t){return t.visitOptionalPublicationForTables?t.visitOptionalPublicationForTables(this):t.visitChildren(this)}},LA=class extends ga{constructor(t,e){super(t,e)}FOR(){return this.getToken(cn.FOR,0)}TABLE(){return this.getToken(cn.TABLE,0)}relationExpressionList(){return this.getRuleContext(0,sO)}ALL(){return this.getToken(cn.ALL,0)}TABLES(){return this.getToken(cn.TABLES,0)}get ruleIndex(){return cn.RULE_publicationForTables}accept(t){return t.visitPublicationForTables?t.visitPublicationForTables(this):t.visitChildren(this)}},CA=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}PUBLICATION(){return this.getToken(cn.PUBLICATION,0)}name(){return this.getRuleContext(0,yu)}SET(){return this.getToken(cn.SET,0)}definition(){return this.getRuleContext(0,$T)}ADD_P(){return this.getToken(cn.ADD_P,0)}TABLE(){return this.getToken(cn.TABLE,0)}relationExpressionList(){return this.getRuleContext(0,sO)}DROP(){return this.getToken(cn.DROP,0)}get ruleIndex(){return cn.RULE_alterPublicationStatement}accept(t){return t.visitAlterPublicationStatement?t.visitAlterPublicationStatement(this):t.visitChildren(this)}},_A=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}SUBSCRIPTION(){return this.getToken(cn.SUBSCRIPTION,0)}name(){return this.getRuleContext(0,yu)}CONNECTION(){return this.getToken(cn.CONNECTION,0)}sconst(){return this.getRuleContext(0,Qu)}PUBLICATION(){return this.getToken(cn.PUBLICATION,0)}publicationNameList(){return this.getRuleContext(0,PA)}optionalDefinition(){return this.getRuleContext(0,FR)}get ruleIndex(){return cn.RULE_createSubscriptionStatement}accept(t){return t.visitCreateSubscriptionStatement?t.visitCreateSubscriptionStatement(this):t.visitChildren(this)}},PA=class extends ga{constructor(t,e){super(t,e)}publicationNameItem(t){return void 0===t?this.getRuleContexts(MA):this.getRuleContext(t,MA)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_publicationNameList}accept(t){return t.visitPublicationNameList?t.visitPublicationNameList(this):t.visitChildren(this)}},MA=class extends ga{constructor(t,e){super(t,e)}columnLabel(){return this.getRuleContext(0,aN)}get ruleIndex(){return cn.RULE_publicationNameItem}accept(t){return t.visitPublicationNameItem?t.visitPublicationNameItem(this):t.visitChildren(this)}},dA=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}SUBSCRIPTION(){return this.getToken(cn.SUBSCRIPTION,0)}name(){return this.getRuleContext(0,yu)}SET(){return this.getToken(cn.SET,0)}definition(){return this.getRuleContext(0,$T)}CONNECTION(){return this.getToken(cn.CONNECTION,0)}sconst(){return this.getRuleContext(0,Qu)}REFRESH(){return this.getToken(cn.REFRESH,0)}PUBLICATION(){return this.getToken(cn.PUBLICATION,0)}optionalDefinition(){return this.getRuleContext(0,FR)}publicationNameList(){return this.getRuleContext(0,PA)}ENABLE_P(){return this.getToken(cn.ENABLE_P,0)}DISABLE_P(){return this.getToken(cn.DISABLE_P,0)}get ruleIndex(){return cn.RULE_alterSubscriptionStatement}accept(t){return t.visitAlterSubscriptionStatement?t.visitAlterSubscriptionStatement(this):t.visitChildren(this)}},UA=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(cn.DROP,0)}SUBSCRIPTION(){return this.getToken(cn.SUBSCRIPTION,0)}name(){return this.getRuleContext(0,yu)}optionalDropBehavior(){return this.getRuleContext(0,ah)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_dropSubscriptionStatement}accept(t){return t.visitDropSubscriptionStatement?t.visitDropSubscriptionStatement(this):t.visitChildren(this)}},mA=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}optionalOrReplace(){return this.getRuleContext(0,lR)}RULE(){return this.getToken(cn.RULE,0)}name(){return this.getRuleContext(0,yu)}AS(){return this.getToken(cn.AS,0)}ON(){return this.getToken(cn.ON,0)}event(){return this.getRuleContext(0,kA)}TO(){return this.getToken(cn.TO,0)}qualifiedName(){return this.getRuleContext(0,vu)}whereClause(){return this.getRuleContext(0,EO)}DO(){return this.getToken(cn.DO,0)}optionalInstead(){return this.getRuleContext(0,HA)}ruleActionList(){return this.getRuleContext(0,DA)}get ruleIndex(){return cn.RULE_ruleStatement}accept(t){return t.visitRuleStatement?t.visitRuleStatement(this):t.visitChildren(this)}},DA=class extends ga{constructor(t,e){super(t,e)}NOTHING(){return this.getToken(cn.NOTHING,0)}ruleActionStatement(){return this.getRuleContext(0,gA)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}ruleActionMulti(){return this.getRuleContext(0,pA)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_ruleActionList}accept(t){return t.visitRuleActionList?t.visitRuleActionList(this):t.visitChildren(this)}},pA=class extends ga{constructor(t,e){super(t,e)}ruleActionStatementOrEmpty(t){return void 0===t?this.getRuleContexts(xA):this.getRuleContext(t,xA)}SEMI(t){return void 0===t?this.getTokens(cn.SEMI):this.getToken(cn.SEMI,t)}get ruleIndex(){return cn.RULE_ruleActionMulti}accept(t){return t.visitRuleActionMulti?t.visitRuleActionMulti(this):t.visitChildren(this)}},gA=class extends ga{constructor(t,e){super(t,e)}selectStatement(){return this.getRuleContext(0,il)}insertStatement(){return this.getRuleContext(0,kS)}updateStatement(){return this.getRuleContext(0,zS)}deleteStatement(){return this.getRuleContext(0,XS)}notifyStatement(){return this.getRuleContext(0,GA)}get ruleIndex(){return cn.RULE_ruleActionStatement}accept(t){return t.visitRuleActionStatement?t.visitRuleActionStatement(this):t.visitChildren(this)}},xA=class extends ga{constructor(t,e){super(t,e)}ruleActionStatement(){return this.getRuleContext(0,gA)}get ruleIndex(){return cn.RULE_ruleActionStatementOrEmpty}accept(t){return t.visitRuleActionStatementOrEmpty?t.visitRuleActionStatementOrEmpty(this):t.visitChildren(this)}},kA=class extends ga{constructor(t,e){super(t,e)}SELECT(){return this.getToken(cn.SELECT,0)}UPDATE(){return this.getToken(cn.UPDATE,0)}DELETE_P(){return this.getToken(cn.DELETE_P,0)}INSERT(){return this.getToken(cn.INSERT,0)}get ruleIndex(){return cn.RULE_event}accept(t){return t.visitEvent?t.visitEvent(this):t.visitChildren(this)}},HA=class extends ga{constructor(t,e){super(t,e)}INSTEAD(){return this.getToken(cn.INSTEAD,0)}ALSO(){return this.getToken(cn.ALSO,0)}get ruleIndex(){return cn.RULE_optionalInstead}accept(t){return t.visitOptionalInstead?t.visitOptionalInstead(this):t.visitChildren(this)}},GA=class extends ga{constructor(t,e){super(t,e)}NOTIFY(){return this.getToken(cn.NOTIFY,0)}columnId(){return this.getRuleContext(0,$u)}notifyPayload(){return this.getRuleContext(0,FA)}get ruleIndex(){return cn.RULE_notifyStatement}accept(t){return t.visitNotifyStatement?t.visitNotifyStatement(this):t.visitChildren(this)}},FA=class extends ga{constructor(t,e){super(t,e)}COMMA(){return this.getToken(cn.COMMA,0)}sconst(){return this.getRuleContext(0,Qu)}get ruleIndex(){return cn.RULE_notifyPayload}accept(t){return t.visitNotifyPayload?t.visitNotifyPayload(this):t.visitChildren(this)}},vA=class extends ga{constructor(t,e){super(t,e)}LISTEN(){return this.getToken(cn.LISTEN,0)}columnId(){return this.getRuleContext(0,$u)}get ruleIndex(){return cn.RULE_listenStatement}accept(t){return t.visitListenStatement?t.visitListenStatement(this):t.visitChildren(this)}},BA=class extends ga{constructor(t,e){super(t,e)}UNLISTEN(){return this.getToken(cn.UNLISTEN,0)}columnId(){return this.getRuleContext(0,$u)}STAR(){return this.getToken(cn.STAR,0)}get ruleIndex(){return cn.RULE_unlistenStatement}accept(t){return t.visitUnlistenStatement?t.visitUnlistenStatement(this):t.visitChildren(this)}},yA=class extends ga{constructor(t,e){super(t,e)}ABORT_P(){return this.getToken(cn.ABORT_P,0)}optionalTransaction(){return this.getRuleContext(0,fA)}optionalTransactionChain(){return this.getRuleContext(0,bA)}BEGIN_P(){return this.getToken(cn.BEGIN_P,0)}transactionModeList(){return this.getRuleContext(0,wA)}START(){return this.getToken(cn.START,0)}TRANSACTION(){return this.getToken(cn.TRANSACTION,0)}COMMIT(){return this.getToken(cn.COMMIT,0)}END_P(){return this.getToken(cn.END_P,0)}ROLLBACK(){return this.getToken(cn.ROLLBACK,0)}SAVEPOINT(){return this.getToken(cn.SAVEPOINT,0)}columnId(){return this.getRuleContext(0,$u)}RELEASE(){return this.getToken(cn.RELEASE,0)}TO(){return this.getToken(cn.TO,0)}PREPARE(){return this.getToken(cn.PREPARE,0)}sconst(){return this.getRuleContext(0,Qu)}PREPARED(){return this.getToken(cn.PREPARED,0)}get ruleIndex(){return cn.RULE_transactionStatement}accept(t){return t.visitTransactionStatement?t.visitTransactionStatement(this):t.visitChildren(this)}},fA=class extends ga{constructor(t,e){super(t,e)}WORK(){return this.getToken(cn.WORK,0)}TRANSACTION(){return this.getToken(cn.TRANSACTION,0)}get ruleIndex(){return cn.RULE_optionalTransaction}accept(t){return t.visitOptionalTransaction?t.visitOptionalTransaction(this):t.visitChildren(this)}},YA=class extends ga{constructor(t,e){super(t,e)}ISOLATION(){return this.getToken(cn.ISOLATION,0)}LEVEL(){return this.getToken(cn.LEVEL,0)}isoLevel(){return this.getRuleContext(0,Fn)}READ(){return this.getToken(cn.READ,0)}ONLY(){return this.getToken(cn.ONLY,0)}WRITE(){return this.getToken(cn.WRITE,0)}DEFERRABLE(){return this.getToken(cn.DEFERRABLE,0)}NOT(){return this.getToken(cn.NOT,0)}get ruleIndex(){return cn.RULE_transactionModeItem}accept(t){return t.visitTransactionModeItem?t.visitTransactionModeItem(this):t.visitChildren(this)}},wA=class extends ga{constructor(t,e){super(t,e)}transactionModeItem(t){return void 0===t?this.getRuleContexts(YA):this.getRuleContext(t,YA)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_transactionModeList}accept(t){return t.visitTransactionModeList?t.visitTransactionModeList(this):t.visitChildren(this)}},bA=class extends ga{constructor(t,e){super(t,e)}AND(){return this.getToken(cn.AND,0)}CHAIN(){return this.getToken(cn.CHAIN,0)}NO(){return this.getToken(cn.NO,0)}get ruleIndex(){return cn.RULE_optionalTransactionChain}accept(t){return t.visitOptionalTransactionChain?t.visitOptionalTransactionChain(this):t.visitChildren(this)}},WA=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}temporaryOption(){return this.getRuleContext(0,gh)}AS(){return this.getToken(cn.AS,0)}selectStatement(){return this.getRuleContext(0,il)}optionalCheckOption(){return this.getRuleContext(0,VA)}VIEW(){return this.getToken(cn.VIEW,0)}qualifiedName(){return this.getRuleContext(0,vu)}columnListWithParentheses(){return this.getRuleContext(0,Zh)}optionalRelOptions(){return this.getRuleContext(0,hh)}RECURSIVE(){return this.getToken(cn.RECURSIVE,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}columnList(){return this.getRuleContext(0,qh)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}OR(){return this.getToken(cn.OR,0)}REPLACE(){return this.getToken(cn.REPLACE,0)}get ruleIndex(){return cn.RULE_viewStatement}accept(t){return t.visitViewStatement?t.visitViewStatement(this):t.visitChildren(this)}},VA=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(cn.WITH,0)}CHECK(){return this.getToken(cn.CHECK,0)}OPTION(){return this.getToken(cn.OPTION,0)}CASCADED(){return this.getToken(cn.CASCADED,0)}LOCAL(){return this.getToken(cn.LOCAL,0)}get ruleIndex(){return cn.RULE_optionalCheckOption}accept(t){return t.visitOptionalCheckOption?t.visitOptionalCheckOption(this):t.visitChildren(this)}},XA=class extends ga{constructor(t,e){super(t,e)}LOAD(){return this.getToken(cn.LOAD,0)}fileName(){return this.getRuleContext(0,Yu)}get ruleIndex(){return cn.RULE_loadStatement}accept(t){return t.visitLoadStatement?t.visitLoadStatement(this):t.visitChildren(this)}},KA=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}DATABASE(){return this.getToken(cn.DATABASE,0)}name(){return this.getRuleContext(0,yu)}optionalWith(){return this.getRuleContext(0,An)}createDatabaseOptionList(){return this.getRuleContext(0,QA)}get ruleIndex(){return cn.RULE_createDatabaseStatement}accept(t){return t.visitCreateDatabaseStatement?t.visitCreateDatabaseStatement(this):t.visitChildren(this)}},QA=class extends ga{constructor(t,e){super(t,e)}createDatabaseOptionItem(t){return void 0===t?this.getRuleContexts(JA):this.getRuleContext(t,JA)}get ruleIndex(){return cn.RULE_createDatabaseOptionList}accept(t){return t.visitCreateDatabaseOptionList?t.visitCreateDatabaseOptionList(this):t.visitChildren(this)}},JA=class extends ga{constructor(t,e){super(t,e)}createDatabaseOptionName(){return this.getRuleContext(0,ZA)}signedIconst(){return this.getRuleContext(0,qu)}booleanOrString(){return this.getRuleContext(0,vn)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}EQUAL(){return this.getToken(cn.EQUAL,0)}get ruleIndex(){return cn.RULE_createDatabaseOptionItem}accept(t){return t.visitCreateDatabaseOptionItem?t.visitCreateDatabaseOptionItem(this):t.visitChildren(this)}},ZA=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,rN)}CONNECTION(){return this.getToken(cn.CONNECTION,0)}LIMIT(){return this.getToken(cn.LIMIT,0)}ENCODING(){return this.getToken(cn.ENCODING,0)}LOCATION(){return this.getToken(cn.LOCATION,0)}OWNER(){return this.getToken(cn.OWNER,0)}TABLESPACE(){return this.getToken(cn.TABLESPACE,0)}TEMPLATE(){return this.getToken(cn.TEMPLATE,0)}get ruleIndex(){return cn.RULE_createDatabaseOptionName}accept(t){return t.visitCreateDatabaseOptionName?t.visitCreateDatabaseOptionName(this):t.visitChildren(this)}},qA=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}DATABASE(){return this.getToken(cn.DATABASE,0)}databaseName(){return this.getRuleContext(0,Uu)}WITH(){return this.getToken(cn.WITH,0)}createDatabaseOptionList(){return this.getRuleContext(0,QA)}SET(){return this.getToken(cn.SET,0)}TABLESPACE(){return this.getToken(cn.TABLESPACE,0)}name(){return this.getRuleContext(0,yu)}get ruleIndex(){return cn.RULE_alterDatabaseStatement}accept(t){return t.visitAlterDatabaseStatement?t.visitAlterDatabaseStatement(this):t.visitChildren(this)}},jA=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}DATABASE(){return this.getToken(cn.DATABASE,0)}databaseName(){return this.getRuleContext(0,Uu)}setResetClause(){return this.getRuleContext(0,Wn)}get ruleIndex(){return cn.RULE_alterDatabaseSetStatement}accept(t){return t.visitAlterDatabaseSetStatement?t.visitAlterDatabaseSetStatement(this):t.visitChildren(this)}},zA=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(cn.DROP,0)}DATABASE(){return this.getToken(cn.DATABASE,0)}databaseName(){return this.getRuleContext(0,Uu)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}optionalWith(){return this.getRuleContext(0,An)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}FORCE(t){return void 0===t?this.getTokens(cn.FORCE):this.getToken(cn.FORCE,t)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_dropDatabaseStatement}accept(t){return t.visitDropDatabaseStatement?t.visitDropDatabaseStatement(this):t.visitChildren(this)}},$A=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}COLLATION(){return this.getToken(cn.COLLATION,0)}anyName(){return this.getRuleContext(0,mo)}REFRESH(){return this.getToken(cn.REFRESH,0)}VERSION_P(){return this.getToken(cn.VERSION_P,0)}get ruleIndex(){return cn.RULE_alterCollationStatement}accept(t){return t.visitAlterCollationStatement?t.visitAlterCollationStatement(this):t.visitChildren(this)}},tS=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}SYSTEM_P(){return this.getToken(cn.SYSTEM_P,0)}genericSetClause(){return this.getRuleContext(0,gn)}SET(){return this.getToken(cn.SET,0)}RESET(){return this.getToken(cn.RESET,0)}get ruleIndex(){return cn.RULE_alterSystemStatement}accept(t){return t.visitAlterSystemStatement?t.visitAlterSystemStatement(this):t.visitChildren(this)}},eS=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}DOMAIN_P(){return this.getToken(cn.DOMAIN_P,0)}anyName(){return this.getRuleContext(0,mo)}optionalAs(){return this.getRuleContext(0,rS)}typeName(){return this.getRuleContext(0,LO)}columnQualifierList(){return this.getRuleContext(0,fh)}get ruleIndex(){return cn.RULE_createDomainStatement}accept(t){return t.visitCreateDomainStatement?t.visitCreateDomainStatement(this):t.visitChildren(this)}},sS=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}DOMAIN_P(){return this.getToken(cn.DOMAIN_P,0)}anyName(){return this.getRuleContext(0,mo)}alterDomainCommand(){return this.getRuleContext(0,aS)}get ruleIndex(){return cn.RULE_alterDomainStatement}accept(t){return t.visitAlterDomainStatement?t.visitAlterDomainStatement(this):t.visitChildren(this)}},aS=class extends ga{constructor(t,e){super(t,e)}alterColumnDefault(){return this.getRuleContext(0,sh)}DROP(){return this.getToken(cn.DROP,0)}NOT(){return this.getToken(cn.NOT,0)}NULL_P(){return this.getToken(cn.NULL_P,0)}SET(){return this.getToken(cn.SET,0)}ADD_P(){return this.getToken(cn.ADD_P,0)}tableConstraint(){return this.getRuleContext(0,Qh)}CONSTRAINT(){return this.getToken(cn.CONSTRAINT,0)}constraintName(){return this.getRuleContext(0,Hu)}optionalDropBehavior(){return this.getRuleContext(0,ah)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}VALIDATE(){return this.getToken(cn.VALIDATE,0)}get ruleIndex(){return cn.RULE_alterDomainCommand}accept(t){return t.visitAlterDomainCommand?t.visitAlterDomainCommand(this):t.visitChildren(this)}},rS=class extends ga{constructor(t,e){super(t,e)}AS(){return this.getToken(cn.AS,0)}get ruleIndex(){return cn.RULE_optionalAs}accept(t){return t.visitOptionalAs?t.visitOptionalAs(this):t.visitChildren(this)}},iS=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(cn.ALTER,0)}TEXT_P(){return this.getToken(cn.TEXT_P,0)}SEARCH(){return this.getToken(cn.SEARCH,0)}DICTIONARY(){return this.getToken(cn.DICTIONARY,0)}anyName(){return this.getRuleContext(0,mo)}definition(){return this.getRuleContext(0,$T)}get ruleIndex(){return cn.RULE_altertsDictionaryStatement}accept(t){return t.visitAltertsDictionaryStatement?t.visitAltertsDictionaryStatement(this):t.visitChildren(this)}},cS=class extends ga{constructor(t,e){super(t,e)}ALTER(t){return void 0===t?this.getTokens(cn.ALTER):this.getToken(cn.ALTER,t)}TEXT_P(){return this.getToken(cn.TEXT_P,0)}SEARCH(){return this.getToken(cn.SEARCH,0)}CONFIGURATION(){return this.getToken(cn.CONFIGURATION,0)}anyName(t){return void 0===t?this.getRuleContexts(mo):this.getRuleContext(t,mo)}ADD_P(){return this.getToken(cn.ADD_P,0)}MAPPING(){return this.getToken(cn.MAPPING,0)}FOR(){return this.getToken(cn.FOR,0)}nameList(){return this.getRuleContext(0,Bu)}WITH(){return this.getToken(cn.WITH,0)}anyNameList(){return this.getRuleContext(0,Uo)}REPLACE(){return this.getToken(cn.REPLACE,0)}DROP(){return this.getToken(cn.DROP,0)}IF_P(){return this.getToken(cn.IF_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_altertsConfigurationStatement}accept(t){return t.visitAltertsConfigurationStatement?t.visitAltertsConfigurationStatement(this):t.visitChildren(this)}},nS=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(cn.CREATE,0)}CONVERSION_P(){return this.getToken(cn.CONVERSION_P,0)}anyName(t){return void 0===t?this.getRuleContexts(mo):this.getRuleContext(t,mo)}FOR(){return this.getToken(cn.FOR,0)}sconst(t){return void 0===t?this.getRuleContexts(Qu):this.getRuleContext(t,Qu)}TO(){return this.getToken(cn.TO,0)}FROM(){return this.getToken(cn.FROM,0)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}get ruleIndex(){return cn.RULE_createConversionStatement}accept(t){return t.visitCreateConversionStatement?t.visitCreateConversionStatement(this):t.visitChildren(this)}},hS=class extends ga{constructor(t,e){super(t,e)}CLUSTER(){return this.getToken(cn.CLUSTER,0)}optionalVerbose(){return this.getRuleContext(0,IS)}qualifiedName(){return this.getRuleContext(0,vu)}clusterIndexSpecification(){return this.getRuleContext(0,ES)}name(){return this.getRuleContext(0,yu)}ON(){return this.getToken(cn.ON,0)}get ruleIndex(){return cn.RULE_clusterStatement}accept(t){return t.visitClusterStatement?t.visitClusterStatement(this):t.visitChildren(this)}},ES=class extends ga{constructor(t,e){super(t,e)}USING(){return this.getToken(cn.USING,0)}name(){return this.getRuleContext(0,yu)}get ruleIndex(){return cn.RULE_clusterIndexSpecification}accept(t){return t.visitClusterIndexSpecification?t.visitClusterIndexSpecification(this):t.visitChildren(this)}},TS=class extends ga{constructor(t,e){super(t,e)}VACUUM(){return this.getToken(cn.VACUUM,0)}optionalVerbose(){return this.getRuleContext(0,IS)}optionalVacuumRelationList(){return this.getRuleContext(0,LS)}FULL(){return this.getToken(cn.FULL,0)}FREEZE(){return this.getToken(cn.FREEZE,0)}analyzeKeyword(){return this.getRuleContext(0,AS)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}vacuumAnalyzeOptionList(){return this.getRuleContext(0,RS)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_vacuumStatement}accept(t){return t.visitVacuumStatement?t.visitVacuumStatement(this):t.visitChildren(this)}},oS=class extends ga{constructor(t,e){super(t,e)}analyzeKeyword(){return this.getRuleContext(0,AS)}optionalVerbose(){return this.getRuleContext(0,IS)}optionalVacuumRelationList(){return this.getRuleContext(0,LS)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}vacuumAnalyzeOptionList(){return this.getRuleContext(0,RS)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_analyzeStatement}accept(t){return t.visitAnalyzeStatement?t.visitAnalyzeStatement(this):t.visitChildren(this)}},RS=class extends ga{constructor(t,e){super(t,e)}vacuumAnalyzeOptionElement(t){return void 0===t?this.getRuleContexts(SS):this.getRuleContext(t,SS)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_vacuumAnalyzeOptionList}accept(t){return t.visitVacuumAnalyzeOptionList?t.visitVacuumAnalyzeOptionList(this):t.visitChildren(this)}},AS=class extends ga{constructor(t,e){super(t,e)}ANALYZE(){return this.getToken(cn.ANALYZE,0)}ANALYSE(){return this.getToken(cn.ANALYSE,0)}get ruleIndex(){return cn.RULE_analyzeKeyword}accept(t){return t.visitAnalyzeKeyword?t.visitAnalyzeKeyword(this):t.visitChildren(this)}},SS=class extends ga{constructor(t,e){super(t,e)}vacuumAnalyzeOptionName(){return this.getRuleContext(0,lS)}vacuumAnalyzeOptionArgument(){return this.getRuleContext(0,OS)}get ruleIndex(){return cn.RULE_vacuumAnalyzeOptionElement}accept(t){return t.visitVacuumAnalyzeOptionElement?t.visitVacuumAnalyzeOptionElement(this):t.visitChildren(this)}},lS=class extends ga{constructor(t,e){super(t,e)}nonReservedWord(){return this.getRuleContext(0,sN)}analyzeKeyword(){return this.getRuleContext(0,AS)}get ruleIndex(){return cn.RULE_vacuumAnalyzeOptionName}accept(t){return t.visitVacuumAnalyzeOptionName?t.visitVacuumAnalyzeOptionName(this):t.visitChildren(this)}},OS=class extends ga{constructor(t,e){super(t,e)}booleanOrString(){return this.getRuleContext(0,vn)}numericOnly(){return this.getRuleContext(0,xE)}get ruleIndex(){return cn.RULE_vacuumAnalyzeOptionArgument}accept(t){return t.visitVacuumAnalyzeOptionArgument?t.visitVacuumAnalyzeOptionArgument(this):t.visitChildren(this)}},IS=class extends ga{constructor(t,e){super(t,e)}VERBOSE(){return this.getToken(cn.VERBOSE,0)}get ruleIndex(){return cn.RULE_optionalVerbose}accept(t){return t.visitOptionalVerbose?t.visitOptionalVerbose(this):t.visitChildren(this)}},uS=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}nameList(){return this.getRuleContext(0,Bu)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_optionalNameList}accept(t){return t.visitOptionalNameList?t.visitOptionalNameList(this):t.visitChildren(this)}},NS=class extends ga{constructor(t,e){super(t,e)}qualifiedName(){return this.getRuleContext(0,vu)}optionalNameList(){return this.getRuleContext(0,uS)}get ruleIndex(){return cn.RULE_vacuumRelation}accept(t){return t.visitVacuumRelation?t.visitVacuumRelation(this):t.visitChildren(this)}},LS=class extends ga{constructor(t,e){super(t,e)}vacuumRelation(t){return void 0===t?this.getRuleContexts(NS):this.getRuleContext(t,NS)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_optionalVacuumRelationList}accept(t){return t.visitOptionalVacuumRelationList?t.visitOptionalVacuumRelationList(this):t.visitChildren(this)}},CS=class extends ga{constructor(t,e){super(t,e)}EXPLAIN(){return this.getToken(cn.EXPLAIN,0)}explainableStatement(){return this.getRuleContext(0,_S)}analyzeKeyword(){return this.getRuleContext(0,AS)}optionalVerbose(){return this.getRuleContext(0,IS)}VERBOSE(){return this.getToken(cn.VERBOSE,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}explainOptionElement(t){return void 0===t?this.getRuleContexts(PS):this.getRuleContext(t,PS)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_explainStatement}accept(t){return t.visitExplainStatement?t.visitExplainStatement(this):t.visitChildren(this)}},_S=class extends ga{constructor(t,e){super(t,e)}selectStatement(){return this.getRuleContext(0,il)}insertStatement(){return this.getRuleContext(0,kS)}updateStatement(){return this.getRuleContext(0,zS)}deleteStatement(){return this.getRuleContext(0,XS)}declareCursorStatement(){return this.getRuleContext(0,sl)}createAsStatement(){return this.getRuleContext(0,LE)}createMaterializedViewStatement(){return this.getRuleContext(0,PE)}refreshMaterializedViewStatement(){return this.getRuleContext(0,dE)}executeStatement(){return this.getRuleContext(0,pS)}get ruleIndex(){return cn.RULE_explainableStatement}accept(t){return t.visitExplainableStatement?t.visitExplainableStatement(this):t.visitChildren(this)}},PS=class extends ga{constructor(t,e){super(t,e)}explainOptionName(){return this.getRuleContext(0,MS)}explainOptionArgument(){return this.getRuleContext(0,dS)}get ruleIndex(){return cn.RULE_explainOptionElement}accept(t){return t.visitExplainOptionElement?t.visitExplainOptionElement(this):t.visitChildren(this)}},MS=class extends ga{constructor(t,e){super(t,e)}nonReservedWord(){return this.getRuleContext(0,sN)}analyzeKeyword(){return this.getRuleContext(0,AS)}get ruleIndex(){return cn.RULE_explainOptionName}accept(t){return t.visitExplainOptionName?t.visitExplainOptionName(this):t.visitChildren(this)}},dS=class extends ga{constructor(t,e){super(t,e)}booleanOrString(){return this.getRuleContext(0,vn)}numericOnly(){return this.getRuleContext(0,xE)}get ruleIndex(){return cn.RULE_explainOptionArgument}accept(t){return t.visitExplainOptionArgument?t.visitExplainOptionArgument(this):t.visitChildren(this)}},US=class extends ga{constructor(t,e){super(t,e)}PREPARE(){return this.getToken(cn.PREPARE,0)}name(){return this.getRuleContext(0,yu)}prepareTypeClause(){return this.getRuleContext(0,mS)}AS(){return this.getToken(cn.AS,0)}preparableStatement(){return this.getRuleContext(0,DS)}get ruleIndex(){return cn.RULE_prepareStatement}accept(t){return t.visitPrepareStatement?t.visitPrepareStatement(this):t.visitChildren(this)}},mS=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}typeList(){return this.getRuleContext(0,zI)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_prepareTypeClause}accept(t){return t.visitPrepareTypeClause?t.visitPrepareTypeClause(this):t.visitChildren(this)}},DS=class extends ga{constructor(t,e){super(t,e)}selectStatement(){return this.getRuleContext(0,il)}insertStatement(){return this.getRuleContext(0,kS)}updateStatement(){return this.getRuleContext(0,zS)}deleteStatement(){return this.getRuleContext(0,XS)}get ruleIndex(){return cn.RULE_preparableStatement}accept(t){return t.visitPreparableStatement?t.visitPreparableStatement(this):t.visitChildren(this)}},pS=class extends ga{constructor(t,e){super(t,e)}EXECUTE(){return this.getToken(cn.EXECUTE,0)}name(){return this.getRuleContext(0,yu)}executeParameterClause(){return this.getRuleContext(0,gS)}CREATE(){return this.getToken(cn.CREATE,0)}temporaryOption(){return this.getRuleContext(0,gh)}TABLE(){return this.getToken(cn.TABLE,0)}createAsTarget(){return this.getRuleContext(0,CE)}AS(){return this.getToken(cn.AS,0)}withData(){return this.getRuleContext(0,_E)}IF_P(){return this.getToken(cn.IF_P,0)}NOT(){return this.getToken(cn.NOT,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}get ruleIndex(){return cn.RULE_executeStatement}accept(t){return t.visitExecuteStatement?t.visitExecuteStatement(this):t.visitChildren(this)}},gS=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expressionList(){return this.getRuleContext(0,ZI)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_executeParameterClause}accept(t){return t.visitExecuteParameterClause?t.visitExecuteParameterClause(this):t.visitChildren(this)}},xS=class extends ga{constructor(t,e){super(t,e)}DEALLOCATE(){return this.getToken(cn.DEALLOCATE,0)}name(){return this.getRuleContext(0,yu)}PREPARE(){return this.getToken(cn.PREPARE,0)}ALL(){return this.getToken(cn.ALL,0)}get ruleIndex(){return cn.RULE_deallocateStatement}accept(t){return t.visitDeallocateStatement?t.visitDeallocateStatement(this):t.visitChildren(this)}},kS=class extends ga{constructor(t,e){super(t,e)}INSERT(){return this.getToken(cn.INSERT,0)}INTO(){return this.getToken(cn.INTO,0)}insertTarget(){return this.getRuleContext(0,HS)}insertRest(){return this.getRuleContext(0,GS)}optionalOnConflict(){return this.getRuleContext(0,yS)}returningClause(){return this.getRuleContext(0,YS)}withClause(){return this.getRuleContext(0,Rl)}get ruleIndex(){return cn.RULE_insertStatement}accept(t){return t.visitInsertStatement?t.visitInsertStatement(this):t.visitChildren(this)}},HS=class extends ga{constructor(t,e){super(t,e)}qualifiedName(){return this.getRuleContext(0,vu)}AS(){return this.getToken(cn.AS,0)}columnId(){return this.getRuleContext(0,$u)}get ruleIndex(){return cn.RULE_insertTarget}accept(t){return t.visitInsertTarget?t.visitInsertTarget(this):t.visitChildren(this)}},GS=class extends ga{constructor(t,e){super(t,e)}selectStatement(){return this.getRuleContext(0,il)}OVERRIDING(){return this.getToken(cn.OVERRIDING,0)}overrideKind(){return this.getRuleContext(0,FS)}VALUE_P(){return this.getToken(cn.VALUE_P,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}insertColumnList(){return this.getRuleContext(0,vS)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}VALUES(){return this.getToken(cn.VALUES,0)}get ruleIndex(){return cn.RULE_insertRest}accept(t){return t.visitInsertRest?t.visitInsertRest(this):t.visitChildren(this)}},FS=class extends ga{constructor(t,e){super(t,e)}USER(){return this.getToken(cn.USER,0)}SYSTEM_P(){return this.getToken(cn.SYSTEM_P,0)}get ruleIndex(){return cn.RULE_overrideKind}accept(t){return t.visitOverrideKind?t.visitOverrideKind(this):t.visitChildren(this)}},vS=class extends ga{constructor(t,e){super(t,e)}insertColumnItem(t){return void 0===t?this.getRuleContexts(BS):this.getRuleContext(t,BS)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_insertColumnList}accept(t){return t.visitInsertColumnList?t.visitInsertColumnList(this):t.visitChildren(this)}},BS=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}optionalIndirection(){return this.getRuleContext(0,Nu)}get ruleIndex(){return cn.RULE_insertColumnItem}accept(t){return t.visitInsertColumnItem?t.visitInsertColumnItem(this):t.visitChildren(this)}},yS=class extends ga{constructor(t,e){super(t,e)}ON(){return this.getToken(cn.ON,0)}CONFLICT(){return this.getToken(cn.CONFLICT,0)}optionalConflictExpr(){return this.getRuleContext(0,fS)}DO(){return this.getToken(cn.DO,0)}UPDATE(){return this.getToken(cn.UPDATE,0)}SET(){return this.getToken(cn.SET,0)}setClauseList(){return this.getRuleContext(0,$S)}whereClause(){return this.getRuleContext(0,EO)}NOTHING(){return this.getToken(cn.NOTHING,0)}get ruleIndex(){return cn.RULE_optionalOnConflict}accept(t){return t.visitOptionalOnConflict?t.visitOptionalOnConflict(this):t.visitChildren(this)}},fS=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}indexParameters(){return this.getRuleContext(0,cR)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}whereClause(){return this.getRuleContext(0,EO)}ON(){return this.getToken(cn.ON,0)}CONSTRAINT(){return this.getToken(cn.CONSTRAINT,0)}constraintName(){return this.getRuleContext(0,Hu)}get ruleIndex(){return cn.RULE_optionalConflictExpr}accept(t){return t.visitOptionalConflictExpr?t.visitOptionalConflictExpr(this):t.visitChildren(this)}},YS=class extends ga{constructor(t,e){super(t,e)}RETURNING(){return this.getToken(cn.RETURNING,0)}targetList(){return this.getRuleContext(0,Cu)}get ruleIndex(){return cn.RULE_returningClause}accept(t){return t.visitReturningClause?t.visitReturningClause(this):t.visitChildren(this)}},wS=class extends ga{constructor(t,e){super(t,e)}MERGE(){return this.getToken(cn.MERGE,0)}qualifiedName(t){return void 0===t?this.getRuleContexts(vu):this.getRuleContext(t,vu)}USING(){return this.getToken(cn.USING,0)}ON(){return this.getToken(cn.ON,0)}expression1(){return this.getRuleContext(0,wO)}selectWithParenthesis(){return this.getRuleContext(0,cl)}mergeInsertClause(){return this.getRuleContext(0,bS)}mergeUpdateClause(){return this.getRuleContext(0,WS)}INTO(){return this.getToken(cn.INTO,0)}aliasClause(t){return void 0===t?this.getRuleContexts(Jl):this.getRuleContext(t,Jl)}mergeDeleteClause(){return this.getRuleContext(0,VS)}get ruleIndex(){return cn.RULE_mergeStatement}accept(t){return t.visitMergeStatement?t.visitMergeStatement(this):t.visitChildren(this)}},bS=class extends ga{constructor(t,e){super(t,e)}WHEN(){return this.getToken(cn.WHEN,0)}NOT(){return this.getToken(cn.NOT,0)}MATCHED(){return this.getToken(cn.MATCHED,0)}INSERT(){return this.getToken(cn.INSERT,0)}valuesClause(){return this.getRuleContext(0,Wl)}AND(){return this.getToken(cn.AND,0)}expression1(){return this.getRuleContext(0,wO)}THEN(){return this.getToken(cn.THEN,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}insertColumnList(){return this.getRuleContext(0,vS)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_mergeInsertClause}accept(t){return t.visitMergeInsertClause?t.visitMergeInsertClause(this):t.visitChildren(this)}},WS=class extends ga{constructor(t,e){super(t,e)}WHEN(){return this.getToken(cn.WHEN,0)}MATCHED(){return this.getToken(cn.MATCHED,0)}UPDATE(){return this.getToken(cn.UPDATE,0)}SET(){return this.getToken(cn.SET,0)}setClauseList(){return this.getRuleContext(0,$S)}AND(){return this.getToken(cn.AND,0)}expression1(){return this.getRuleContext(0,wO)}THEN(){return this.getToken(cn.THEN,0)}get ruleIndex(){return cn.RULE_mergeUpdateClause}accept(t){return t.visitMergeUpdateClause?t.visitMergeUpdateClause(this):t.visitChildren(this)}},VS=class extends ga{constructor(t,e){super(t,e)}WHEN(){return this.getToken(cn.WHEN,0)}MATCHED(){return this.getToken(cn.MATCHED,0)}DELETE_P(){return this.getToken(cn.DELETE_P,0)}THEN(){return this.getToken(cn.THEN,0)}get ruleIndex(){return cn.RULE_mergeDeleteClause}accept(t){return t.visitMergeDeleteClause?t.visitMergeDeleteClause(this):t.visitChildren(this)}},XS=class extends ga{constructor(t,e){super(t,e)}DELETE_P(){return this.getToken(cn.DELETE_P,0)}FROM(){return this.getToken(cn.FROM,0)}relationExpressionOptionalAlias(){return this.getRuleContext(0,aO)}usingClause(){return this.getRuleContext(0,KS)}whereOrCurrentClause(){return this.getRuleContext(0,TO)}returningClause(){return this.getRuleContext(0,YS)}withClause(){return this.getRuleContext(0,Rl)}get ruleIndex(){return cn.RULE_deleteStatement}accept(t){return t.visitDeleteStatement?t.visitDeleteStatement(this):t.visitChildren(this)}},KS=class extends ga{constructor(t,e){super(t,e)}USING(){return this.getToken(cn.USING,0)}fromList(){return this.getRuleContext(0,Xl)}get ruleIndex(){return cn.RULE_usingClause}accept(t){return t.visitUsingClause?t.visitUsingClause(this):t.visitChildren(this)}},QS=class extends ga{constructor(t,e){super(t,e)}LOCK_P(){return this.getToken(cn.LOCK_P,0)}optionalTable(){return this.getRuleContext(0,Il)}relationExpressionList(){return this.getRuleContext(0,sO)}optionalLock(){return this.getRuleContext(0,JS)}optionalNowait(){return this.getRuleContext(0,qS)}get ruleIndex(){return cn.RULE_lockStatement}accept(t){return t.visitLockStatement?t.visitLockStatement(this):t.visitChildren(this)}},JS=class extends ga{constructor(t,e){super(t,e)}IN_P(){return this.getToken(cn.IN_P,0)}lockType(){return this.getRuleContext(0,ZS)}MODE(){return this.getToken(cn.MODE,0)}get ruleIndex(){return cn.RULE_optionalLock}accept(t){return t.visitOptionalLock?t.visitOptionalLock(this):t.visitChildren(this)}},ZS=class extends ga{constructor(t,e){super(t,e)}ACCESS(){return this.getToken(cn.ACCESS,0)}SHARE(){return this.getToken(cn.SHARE,0)}EXCLUSIVE(){return this.getToken(cn.EXCLUSIVE,0)}ROW(){return this.getToken(cn.ROW,0)}UPDATE(){return this.getToken(cn.UPDATE,0)}get ruleIndex(){return cn.RULE_lockType}accept(t){return t.visitLockType?t.visitLockType(this):t.visitChildren(this)}},qS=class extends ga{constructor(t,e){super(t,e)}NOWAIT(){return this.getToken(cn.NOWAIT,0)}get ruleIndex(){return cn.RULE_optionalNowait}accept(t){return t.visitOptionalNowait?t.visitOptionalNowait(this):t.visitChildren(this)}},jS=class extends ga{constructor(t,e){super(t,e)}NOWAIT(){return this.getToken(cn.NOWAIT,0)}SKIP_P(){return this.getToken(cn.SKIP_P,0)}LOCKED(){return this.getToken(cn.LOCKED,0)}get ruleIndex(){return cn.RULE_optionalNowaitOrSkip}accept(t){return t.visitOptionalNowaitOrSkip?t.visitOptionalNowaitOrSkip(this):t.visitChildren(this)}},zS=class extends ga{constructor(t,e){super(t,e)}UPDATE(){return this.getToken(cn.UPDATE,0)}relationExpressionOptionalAlias(){return this.getRuleContext(0,aO)}SET(){return this.getToken(cn.SET,0)}setClauseList(){return this.getRuleContext(0,$S)}fromClause(){return this.getRuleContext(0,Vl)}whereOrCurrentClause(){return this.getRuleContext(0,TO)}returningClause(){return this.getRuleContext(0,YS)}withClause(){return this.getRuleContext(0,Rl)}get ruleIndex(){return cn.RULE_updateStatement}accept(t){return t.visitUpdateStatement?t.visitUpdateStatement(this):t.visitChildren(this)}},$S=class extends ga{constructor(t,e){super(t,e)}setClause(t){return void 0===t?this.getRuleContexts(tl):this.getRuleContext(t,tl)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_setClauseList}accept(t){return t.visitSetClauseList?t.visitSetClauseList(this):t.visitChildren(this)}},tl=class extends ga{constructor(t,e){super(t,e)}setTarget(t){return void 0===t?this.getRuleContexts(el):this.getRuleContext(t,el)}EQUAL(){return this.getToken(cn.EQUAL,0)}expression1(){return this.getRuleContext(0,wO)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_setClause}accept(t){return t.visitSetClause?t.visitSetClause(this):t.visitChildren(this)}},el=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}optionalIndirection(){return this.getRuleContext(0,Nu)}get ruleIndex(){return cn.RULE_setTarget}accept(t){return t.visitSetTarget?t.visitSetTarget(this):t.visitChildren(this)}},sl=class extends ga{constructor(t,e){super(t,e)}DECLARE(){return this.getToken(cn.DECLARE,0)}cursorName(){return this.getRuleContext(0,al)}CURSOR(){return this.getToken(cn.CURSOR,0)}optionalHold(){return this.getRuleContext(0,rl)}FOR(){return this.getToken(cn.FOR,0)}selectStatement(){return this.getRuleContext(0,il)}NO(t){return void 0===t?this.getTokens(cn.NO):this.getToken(cn.NO,t)}SCROLL(t){return void 0===t?this.getTokens(cn.SCROLL):this.getToken(cn.SCROLL,t)}BINARY(t){return void 0===t?this.getTokens(cn.BINARY):this.getToken(cn.BINARY,t)}INSENSITIVE(t){return void 0===t?this.getTokens(cn.INSENSITIVE):this.getToken(cn.INSENSITIVE,t)}get ruleIndex(){return cn.RULE_declareCursorStatement}accept(t){return t.visitDeclareCursorStatement?t.visitDeclareCursorStatement(this):t.visitChildren(this)}},al=class extends ga{constructor(t,e){super(t,e)}name(){return this.getRuleContext(0,yu)}get ruleIndex(){return cn.RULE_cursorName}accept(t){return t.visitCursorName?t.visitCursorName(this):t.visitChildren(this)}},rl=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(cn.WITH,0)}HOLD(){return this.getToken(cn.HOLD,0)}WITHOUT(){return this.getToken(cn.WITHOUT,0)}get ruleIndex(){return cn.RULE_optionalHold}accept(t){return t.visitOptionalHold?t.visitOptionalHold(this):t.visitChildren(this)}},il=class extends ga{constructor(t,e){super(t,e)}selectWithoutParenthesis(){return this.getRuleContext(0,nl)}selectWithParenthesis(){return this.getRuleContext(0,cl)}get ruleIndex(){return cn.RULE_selectStatement}accept(t){return t.visitSelectStatement?t.visitSelectStatement(this):t.visitChildren(this)}},cl=class t extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}selectWithoutParenthesis(){return this.getRuleContext(0,nl)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}selectWithParenthesis(){return this.getRuleContext(0,t)}get ruleIndex(){return cn.RULE_selectWithParenthesis}accept(t){return t.visitSelectWithParenthesis?t.visitSelectWithParenthesis(this):t.visitChildren(this)}},nl=class extends ga{constructor(t,e){super(t,e)}selectClause(){return this.getRuleContext(0,hl)}optionalSortClause(){return this.getRuleContext(0,Cl)}forLockingClause(){return this.getRuleContext(0,fl)}optionalSelectLimit(){return this.getRuleContext(0,Ul)}selectLimit(){return this.getRuleContext(0,dl)}withClause(){return this.getRuleContext(0,Rl)}get ruleIndex(){return cn.RULE_selectWithoutParenthesis}accept(t){return t.visitSelectWithoutParenthesis?t.visitSelectWithoutParenthesis(this):t.visitChildren(this)}},hl=class extends ga{constructor(t,e){super(t,e)}simpleSelectIntersect(t){return void 0===t?this.getRuleContexts(El):this.getRuleContext(t,El)}allOrDistinct(t){return void 0===t?this.getRuleContexts(ul):this.getRuleContext(t,ul)}UNION(t){return void 0===t?this.getTokens(cn.UNION):this.getToken(cn.UNION,t)}EXCEPT(t){return void 0===t?this.getTokens(cn.EXCEPT):this.getToken(cn.EXCEPT,t)}get ruleIndex(){return cn.RULE_selectClause}accept(t){return t.visitSelectClause?t.visitSelectClause(this):t.visitChildren(this)}},El=class extends ga{constructor(t,e){super(t,e)}simpleSelectPramary(t){return void 0===t?this.getRuleContexts(ol):this.getRuleContext(t,ol)}INTERSECT(t){return void 0===t?this.getTokens(cn.INTERSECT):this.getToken(cn.INTERSECT,t)}allOrDistinct(t){return void 0===t?this.getRuleContexts(ul):this.getRuleContext(t,ul)}get ruleIndex(){return cn.RULE_simpleSelectIntersect}accept(t){return t.visitSimpleSelectIntersect?t.visitSimpleSelectIntersect(this):t.visitChildren(this)}},Tl=class extends ga{constructor(t,e){super(t,e)}targetList(){return this.getRuleContext(0,Cu)}intoClause(){return this.getRuleContext(0,ll)}allClause(){return this.getRuleContext(0,Ll)}optionalTargetList(){return this.getRuleContext(0,Lu)}distinctClause(){return this.getRuleContext(0,Nl)}get ruleIndex(){return cn.RULE_simpleSelectStart}accept(t){return t.visitSimpleSelectStart?t.visitSimpleSelectStart(this):t.visitChildren(this)}},ol=class extends ga{constructor(t,e){super(t,e)}SELECT(){return this.getToken(cn.SELECT,0)}simpleSelectStart(){return this.getRuleContext(0,Tl)}fromClause(){return this.getRuleContext(0,Vl)}whereClause(){return this.getRuleContext(0,EO)}groupClause(){return this.getRuleContext(0,Fl)}havingClause(){return this.getRuleContext(0,yl)}windowClause(){return this.getRuleContext(0,pI)}valuesClause(){return this.getRuleContext(0,Wl)}TABLE(){return this.getToken(cn.TABLE,0)}relationExpression(){return this.getRuleContext(0,eO)}selectWithParenthesis(){return this.getRuleContext(0,cl)}get ruleIndex(){return cn.RULE_simpleSelectPramary}accept(t){return t.visitSimpleSelectPramary?t.visitSimpleSelectPramary(this):t.visitChildren(this)}},Rl=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(cn.WITH,0)}commonTableExpression(t){return void 0===t?this.getRuleContexts(Al):this.getRuleContext(t,Al)}RECURSIVE(){return this.getToken(cn.RECURSIVE,0)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_withClause}accept(t){return t.visitWithClause?t.visitWithClause(this):t.visitChildren(this)}},Al=class extends ga{constructor(t,e){super(t,e)}name(){return this.getRuleContext(0,yu)}optionalNameList(){return this.getRuleContext(0,uS)}AS(){return this.getToken(cn.AS,0)}optionalMaterialized(){return this.getRuleContext(0,Sl)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}preparableStatement(){return this.getRuleContext(0,DS)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_commonTableExpression}accept(t){return t.visitCommonTableExpression?t.visitCommonTableExpression(this):t.visitChildren(this)}},Sl=class extends ga{constructor(t,e){super(t,e)}MATERIALIZED(){return this.getToken(cn.MATERIALIZED,0)}NOT(){return this.getToken(cn.NOT,0)}get ruleIndex(){return cn.RULE_optionalMaterialized}accept(t){return t.visitOptionalMaterialized?t.visitOptionalMaterialized(this):t.visitChildren(this)}},ll=class extends ga{constructor(t,e){super(t,e)}INTO(){return this.getToken(cn.INTO,0)}optionalTemporaryTableName(){return this.getRuleContext(0,Ol)}intoTarget(){return this.getRuleContext(0,BL)}STRICT_P(){return this.getToken(cn.STRICT_P,0)}get ruleIndex(){return cn.RULE_intoClause}accept(t){return t.visitIntoClause?t.visitIntoClause(this):t.visitChildren(this)}},Ol=class extends ga{constructor(t,e){super(t,e)}optionalTable(){return this.getRuleContext(0,Il)}qualifiedName(){return this.getRuleContext(0,vu)}TEMPORARY(){return this.getToken(cn.TEMPORARY,0)}TEMP(){return this.getToken(cn.TEMP,0)}LOCAL(){return this.getToken(cn.LOCAL,0)}GLOBAL(){return this.getToken(cn.GLOBAL,0)}UNLOGGED(){return this.getToken(cn.UNLOGGED,0)}TABLE(){return this.getToken(cn.TABLE,0)}get ruleIndex(){return cn.RULE_optionalTemporaryTableName}accept(t){return t.visitOptionalTemporaryTableName?t.visitOptionalTemporaryTableName(this):t.visitChildren(this)}},Il=class extends ga{constructor(t,e){super(t,e)}TABLE(){return this.getToken(cn.TABLE,0)}get ruleIndex(){return cn.RULE_optionalTable}accept(t){return t.visitOptionalTable?t.visitOptionalTable(this):t.visitChildren(this)}},ul=class extends ga{constructor(t,e){super(t,e)}ALL(){return this.getToken(cn.ALL,0)}DISTINCT(){return this.getToken(cn.DISTINCT,0)}get ruleIndex(){return cn.RULE_allOrDistinct}accept(t){return t.visitAllOrDistinct?t.visitAllOrDistinct(this):t.visitChildren(this)}},Nl=class extends ga{constructor(t,e){super(t,e)}DISTINCT(){return this.getToken(cn.DISTINCT,0)}ON(){return this.getToken(cn.ON,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expressionList(){return this.getRuleContext(0,ZI)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_distinctClause}accept(t){return t.visitDistinctClause?t.visitDistinctClause(this):t.visitChildren(this)}},Ll=class extends ga{constructor(t,e){super(t,e)}ALL(){return this.getToken(cn.ALL,0)}get ruleIndex(){return cn.RULE_allClause}accept(t){return t.visitAllClause?t.visitAllClause(this):t.visitChildren(this)}},Cl=class extends ga{constructor(t,e){super(t,e)}sortClause(){return this.getRuleContext(0,_l)}get ruleIndex(){return cn.RULE_optionalSortClause}accept(t){return t.visitOptionalSortClause?t.visitOptionalSortClause(this):t.visitChildren(this)}},_l=class extends ga{constructor(t,e){super(t,e)}ORDER(){return this.getToken(cn.ORDER,0)}BY(){return this.getToken(cn.BY,0)}sortByList(){return this.getRuleContext(0,Pl)}get ruleIndex(){return cn.RULE_sortClause}accept(t){return t.visitSortClause?t.visitSortClause(this):t.visitChildren(this)}},Pl=class extends ga{constructor(t,e){super(t,e)}sortBy(t){return void 0===t?this.getRuleContexts(Ml):this.getRuleContext(t,Ml)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_sortByList}accept(t){return t.visitSortByList?t.visitSortByList(this):t.visitChildren(this)}},Ml=class extends ga{constructor(t,e){super(t,e)}expression1(){return this.getRuleContext(0,wO)}optionalNullsOrder(){return this.getRuleContext(0,AR)}USING(){return this.getToken(cn.USING,0)}allOperatorQualifier(){return this.getRuleContext(0,QI)}optionalAscOrDesc(){return this.getRuleContext(0,RR)}get ruleIndex(){return cn.RULE_sortBy}accept(t){return t.visitSortBy?t.visitSortBy(this):t.visitChildren(this)}},dl=class extends ga{constructor(t,e){super(t,e)}limitClause(){return this.getRuleContext(0,ml)}offsetClause(){return this.getRuleContext(0,Dl)}get ruleIndex(){return cn.RULE_selectLimit}accept(t){return t.visitSelectLimit?t.visitSelectLimit(this):t.visitChildren(this)}},Ul=class extends ga{constructor(t,e){super(t,e)}selectLimit(){return this.getRuleContext(0,dl)}get ruleIndex(){return cn.RULE_optionalSelectLimit}accept(t){return t.visitOptionalSelectLimit?t.visitOptionalSelectLimit(this):t.visitChildren(this)}},ml=class extends ga{constructor(t,e){super(t,e)}LIMIT(){return this.getToken(cn.LIMIT,0)}selectLimitValue(){return this.getRuleContext(0,pl)}COMMA(){return this.getToken(cn.COMMA,0)}selectOffsetValue(){return this.getRuleContext(0,gl)}FETCH(){return this.getToken(cn.FETCH,0)}firstOrNext(){return this.getRuleContext(0,Gl)}selectFetchFirstValue(){return this.getRuleContext(0,xl)}rowOrRows(){return this.getRuleContext(0,Hl)}ONLY(){return this.getToken(cn.ONLY,0)}WITH(){return this.getToken(cn.WITH,0)}TIES(){return this.getToken(cn.TIES,0)}get ruleIndex(){return cn.RULE_limitClause}accept(t){return t.visitLimitClause?t.visitLimitClause(this):t.visitChildren(this)}},Dl=class extends ga{constructor(t,e){super(t,e)}OFFSET(){return this.getToken(cn.OFFSET,0)}selectOffsetValue(){return this.getRuleContext(0,gl)}selectFetchFirstValue(){return this.getRuleContext(0,xl)}rowOrRows(){return this.getRuleContext(0,Hl)}get ruleIndex(){return cn.RULE_offsetClause}accept(t){return t.visitOffsetClause?t.visitOffsetClause(this):t.visitChildren(this)}},pl=class extends ga{constructor(t,e){super(t,e)}expression1(){return this.getRuleContext(0,wO)}ALL(){return this.getToken(cn.ALL,0)}get ruleIndex(){return cn.RULE_selectLimitValue}accept(t){return t.visitSelectLimitValue?t.visitSelectLimitValue(this):t.visitChildren(this)}},gl=class extends ga{constructor(t,e){super(t,e)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_selectOffsetValue}accept(t){return t.visitSelectOffsetValue?t.visitSelectOffsetValue(this):t.visitChildren(this)}},xl=class extends ga{constructor(t,e){super(t,e)}expression3(){return this.getRuleContext(0,EI)}PLUS(){return this.getToken(cn.PLUS,0)}anyConst(){return this.getRuleContext(0,kl)}MINUS(){return this.getToken(cn.MINUS,0)}get ruleIndex(){return cn.RULE_selectFetchFirstValue}accept(t){return t.visitSelectFetchFirstValue?t.visitSelectFetchFirstValue(this):t.visitChildren(this)}},kl=class extends ga{constructor(t,e){super(t,e)}iconst(){return this.getRuleContext(0,Ku)}fconst(){return this.getRuleContext(0,Xu)}get ruleIndex(){return cn.RULE_anyConst}accept(t){return t.visitAnyConst?t.visitAnyConst(this):t.visitChildren(this)}},Hl=class extends ga{constructor(t,e){super(t,e)}ROW(){return this.getToken(cn.ROW,0)}ROWS(){return this.getToken(cn.ROWS,0)}get ruleIndex(){return cn.RULE_rowOrRows}accept(t){return t.visitRowOrRows?t.visitRowOrRows(this):t.visitChildren(this)}},Gl=class extends ga{constructor(t,e){super(t,e)}FIRST_P(){return this.getToken(cn.FIRST_P,0)}NEXT(){return this.getToken(cn.NEXT,0)}get ruleIndex(){return cn.RULE_firstOrNext}accept(t){return t.visitFirstOrNext?t.visitFirstOrNext(this):t.visitChildren(this)}},Fl=class extends ga{constructor(t,e){super(t,e)}GROUP_P(){return this.getToken(cn.GROUP_P,0)}BY(){return this.getToken(cn.BY,0)}groupByList(){return this.getRuleContext(0,vl)}get ruleIndex(){return cn.RULE_groupClause}accept(t){return t.visitGroupClause?t.visitGroupClause(this):t.visitChildren(this)}},vl=class extends ga{constructor(t,e){super(t,e)}groupByItem(t){return void 0===t?this.getRuleContexts(Bl):this.getRuleContext(t,Bl)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_groupByList}accept(t){return t.visitGroupByList?t.visitGroupByList(this):t.visitChildren(this)}},Bl=class extends ga{constructor(t,e){super(t,e)}expression1(){return this.getRuleContext(0,wO)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}CUBE(){return this.getToken(cn.CUBE,0)}expressionList(){return this.getRuleContext(0,ZI)}ROLLUP(){return this.getToken(cn.ROLLUP,0)}GROUPING(){return this.getToken(cn.GROUPING,0)}SETS(){return this.getToken(cn.SETS,0)}groupByList(){return this.getRuleContext(0,vl)}get ruleIndex(){return cn.RULE_groupByItem}accept(t){return t.visitGroupByItem?t.visitGroupByItem(this):t.visitChildren(this)}},yl=class extends ga{constructor(t,e){super(t,e)}HAVING(){return this.getToken(cn.HAVING,0)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_havingClause}accept(t){return t.visitHavingClause?t.visitHavingClause(this):t.visitChildren(this)}},fl=class extends ga{constructor(t,e){super(t,e)}forLockingItem(t){return void 0===t?this.getRuleContexts(Yl):this.getRuleContext(t,Yl)}FOR(){return this.getToken(cn.FOR,0)}READ(){return this.getToken(cn.READ,0)}ONLY(){return this.getToken(cn.ONLY,0)}get ruleIndex(){return cn.RULE_forLockingClause}accept(t){return t.visitForLockingClause?t.visitForLockingClause(this):t.visitChildren(this)}},Yl=class extends ga{constructor(t,e){super(t,e)}forLockingStrength(){return this.getRuleContext(0,wl)}lockedRelationsList(){return this.getRuleContext(0,bl)}optionalNowaitOrSkip(){return this.getRuleContext(0,jS)}get ruleIndex(){return cn.RULE_forLockingItem}accept(t){return t.visitForLockingItem?t.visitForLockingItem(this):t.visitChildren(this)}},wl=class extends ga{constructor(t,e){super(t,e)}FOR(){return this.getToken(cn.FOR,0)}UPDATE(){return this.getToken(cn.UPDATE,0)}SHARE(){return this.getToken(cn.SHARE,0)}NO(){return this.getToken(cn.NO,0)}KEY(){return this.getToken(cn.KEY,0)}get ruleIndex(){return cn.RULE_forLockingStrength}accept(t){return t.visitForLockingStrength?t.visitForLockingStrength(this):t.visitChildren(this)}},bl=class extends ga{constructor(t,e){super(t,e)}OF(){return this.getToken(cn.OF,0)}qualifiedNameList(){return this.getRuleContext(0,du)}get ruleIndex(){return cn.RULE_lockedRelationsList}accept(t){return t.visitLockedRelationsList?t.visitLockedRelationsList(this):t.visitChildren(this)}},Wl=class extends ga{constructor(t,e){super(t,e)}VALUES(){return this.getToken(cn.VALUES,0)}OPEN_PAREN(t){return void 0===t?this.getTokens(cn.OPEN_PAREN):this.getToken(cn.OPEN_PAREN,t)}expressionList(t){return void 0===t?this.getRuleContexts(ZI):this.getRuleContext(t,ZI)}CLOSE_PAREN(t){return void 0===t?this.getTokens(cn.CLOSE_PAREN):this.getToken(cn.CLOSE_PAREN,t)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_valuesClause}accept(t){return t.visitValuesClause?t.visitValuesClause(this):t.visitChildren(this)}},Vl=class extends ga{constructor(t,e){super(t,e)}FROM(){return this.getToken(cn.FROM,0)}fromList(){return this.getRuleContext(0,Xl)}get ruleIndex(){return cn.RULE_fromClause}accept(t){return t.visitFromClause?t.visitFromClause(this):t.visitChildren(this)}},Xl=class extends ga{constructor(t,e){super(t,e)}nonAnsiJoin(){return this.getRuleContext(0,Kl)}tableReference(t){return void 0===t?this.getRuleContexts(Ql):this.getRuleContext(t,Ql)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_fromList}accept(t){return t.visitFromList?t.visitFromList(this):t.visitChildren(this)}},Kl=class extends ga{constructor(t,e){super(t,e)}tableReference(t){return void 0===t?this.getRuleContexts(Ql):this.getRuleContext(t,Ql)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_nonAnsiJoin}accept(t){return t.visitNonAnsiJoin?t.visitNonAnsiJoin(this):t.visitChildren(this)}},Ql=class t extends ga{constructor(t,e){super(t,e)}relationExpression(){return this.getRuleContext(0,eO)}optionalAliasClause(){return this.getRuleContext(0,Zl)}functionTable(){return this.getRuleContext(0,iO)}functionAliasClause(){return this.getRuleContext(0,jl)}xmlTable(){return this.getRuleContext(0,SO)}selectWithParenthesis(){return this.getRuleContext(0,cl)}LATERAL_P(){return this.getToken(cn.LATERAL_P,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}tableReference(e){return void 0===e?this.getRuleContexts(t):this.getRuleContext(e,t)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}CROSS(t){return void 0===t?this.getTokens(cn.CROSS):this.getToken(cn.CROSS,t)}JOIN(t){return void 0===t?this.getTokens(cn.JOIN):this.getToken(cn.JOIN,t)}NATURAL(t){return void 0===t?this.getTokens(cn.NATURAL):this.getToken(cn.NATURAL,t)}joinQualifier(t){return void 0===t?this.getRuleContexts($l):this.getRuleContext(t,$l)}tableSampleClause(){return this.getRuleContext(0,rO)}joinType(t){return void 0===t?this.getRuleContexts(zl):this.getRuleContext(t,zl)}get ruleIndex(){return cn.RULE_tableReference}accept(t){return t.visitTableReference?t.visitTableReference(this):t.visitChildren(this)}},Jl=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}AS(){return this.getToken(cn.AS,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}nameList(){return this.getRuleContext(0,Bu)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_aliasClause}accept(t){return t.visitAliasClause?t.visitAliasClause(this):t.visitChildren(this)}},Zl=class extends ga{constructor(t,e){super(t,e)}tableAliasClause(){return this.getRuleContext(0,ql)}get ruleIndex(){return cn.RULE_optionalAliasClause}accept(t){return t.visitOptionalAliasClause?t.visitOptionalAliasClause(this):t.visitChildren(this)}},ql=class extends ga{constructor(t,e){super(t,e)}tableAlias(){return this.getRuleContext(0,tN)}AS(){return this.getToken(cn.AS,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}nameList(){return this.getRuleContext(0,Bu)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_tableAliasClause}accept(t){return t.visitTableAliasClause?t.visitTableAliasClause(this):t.visitChildren(this)}},jl=class extends ga{constructor(t,e){super(t,e)}aliasClause(){return this.getRuleContext(0,Jl)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}tableFunctionElementList(){return this.getRuleContext(0,RO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}AS(){return this.getToken(cn.AS,0)}columnId(){return this.getRuleContext(0,$u)}get ruleIndex(){return cn.RULE_functionAliasClause}accept(t){return t.visitFunctionAliasClause?t.visitFunctionAliasClause(this):t.visitChildren(this)}},zl=class extends ga{constructor(t,e){super(t,e)}FULL(){return this.getToken(cn.FULL,0)}LEFT(){return this.getToken(cn.LEFT,0)}RIGHT(){return this.getToken(cn.RIGHT,0)}INNER_P(){return this.getToken(cn.INNER_P,0)}OUTER_P(){return this.getToken(cn.OUTER_P,0)}get ruleIndex(){return cn.RULE_joinType}accept(t){return t.visitJoinType?t.visitJoinType(this):t.visitChildren(this)}},$l=class extends ga{constructor(t,e){super(t,e)}USING(){return this.getToken(cn.USING,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}nameList(){return this.getRuleContext(0,Bu)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}ON(){return this.getToken(cn.ON,0)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_joinQualifier}accept(t){return t.visitJoinQualifier?t.visitJoinQualifier(this):t.visitChildren(this)}},tO=class extends ga{constructor(t,e){super(t,e)}qualifiedName(){return this.getRuleContext(0,vu)}get ruleIndex(){return cn.RULE_viewName}accept(t){return t.visitViewName?t.visitViewName(this):t.visitChildren(this)}},eO=class extends ga{constructor(t,e){super(t,e)}qualifiedName(){return this.getRuleContext(0,vu)}STAR(){return this.getToken(cn.STAR,0)}ONLY(){return this.getToken(cn.ONLY,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_relationExpression}accept(t){return t.visitRelationExpression?t.visitRelationExpression(this):t.visitChildren(this)}},sO=class extends ga{constructor(t,e){super(t,e)}relationExpression(t){return void 0===t?this.getRuleContexts(eO):this.getRuleContext(t,eO)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_relationExpressionList}accept(t){return t.visitRelationExpressionList?t.visitRelationExpressionList(this):t.visitChildren(this)}},aO=class extends ga{constructor(t,e){super(t,e)}relationExpression(){return this.getRuleContext(0,eO)}columnId(){return this.getRuleContext(0,$u)}AS(){return this.getToken(cn.AS,0)}get ruleIndex(){return cn.RULE_relationExpressionOptionalAlias}accept(t){return t.visitRelationExpressionOptionalAlias?t.visitRelationExpressionOptionalAlias(this):t.visitChildren(this)}},rO=class extends ga{constructor(t,e){super(t,e)}TABLESAMPLE(){return this.getToken(cn.TABLESAMPLE,0)}functionName(){return this.getRuleContext(0,wu)}OPEN_PAREN(t){return void 0===t?this.getTokens(cn.OPEN_PAREN):this.getToken(cn.OPEN_PAREN,t)}expressionList(){return this.getRuleContext(0,ZI)}CLOSE_PAREN(t){return void 0===t?this.getTokens(cn.CLOSE_PAREN):this.getToken(cn.CLOSE_PAREN,t)}REPEATABLE(){return this.getToken(cn.REPEATABLE,0)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_tableSampleClause}accept(t){return t.visitTableSampleClause?t.visitTableSampleClause(this):t.visitChildren(this)}},iO=class extends ga{constructor(t,e){super(t,e)}functionExpressionWindowless(){return this.getRuleContext(0,OI)}optionalOrdinality(){return this.getRuleContext(0,hO)}ROWS(){return this.getToken(cn.ROWS,0)}FROM(){return this.getToken(cn.FROM,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}rowsFromItem(t){return void 0===t?this.getRuleContexts(cO):this.getRuleContext(t,cO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_functionTable}accept(t){return t.visitFunctionTable?t.visitFunctionTable(this):t.visitChildren(this)}},cO=class extends ga{constructor(t,e){super(t,e)}functionExpressionWindowless(){return this.getRuleContext(0,OI)}optionalColumnDefinitionList(){return this.getRuleContext(0,nO)}get ruleIndex(){return cn.RULE_rowsFromItem}accept(t){return t.visitRowsFromItem?t.visitRowsFromItem(this):t.visitChildren(this)}},nO=class extends ga{constructor(t,e){super(t,e)}AS(){return this.getToken(cn.AS,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}tableFunctionElementList(){return this.getRuleContext(0,RO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_optionalColumnDefinitionList}accept(t){return t.visitOptionalColumnDefinitionList?t.visitOptionalColumnDefinitionList(this):t.visitChildren(this)}},hO=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(cn.WITH,0)}ORDINALITY(){return this.getToken(cn.ORDINALITY,0)}get ruleIndex(){return cn.RULE_optionalOrdinality}accept(t){return t.visitOptionalOrdinality?t.visitOptionalOrdinality(this):t.visitChildren(this)}},EO=class extends ga{constructor(t,e){super(t,e)}WHERE(){return this.getToken(cn.WHERE,0)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_whereClause}accept(t){return t.visitWhereClause?t.visitWhereClause(this):t.visitChildren(this)}},TO=class extends ga{constructor(t,e){super(t,e)}WHERE(){return this.getToken(cn.WHERE,0)}CURRENT_P(){return this.getToken(cn.CURRENT_P,0)}OF(){return this.getToken(cn.OF,0)}cursorName(){return this.getRuleContext(0,al)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_whereOrCurrentClause}accept(t){return t.visitWhereOrCurrentClause?t.visitWhereOrCurrentClause(this):t.visitChildren(this)}},oO=class extends ga{constructor(t,e){super(t,e)}tableFunctionElementList(){return this.getRuleContext(0,RO)}get ruleIndex(){return cn.RULE_optionalTableFunctionElementList}accept(t){return t.visitOptionalTableFunctionElementList?t.visitOptionalTableFunctionElementList(this):t.visitChildren(this)}},RO=class extends ga{constructor(t,e){super(t,e)}tableFunctionElement(t){return void 0===t?this.getRuleContexts(AO):this.getRuleContext(t,AO)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_tableFunctionElementList}accept(t){return t.visitTableFunctionElementList?t.visitTableFunctionElementList(this):t.visitChildren(this)}},AO=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}typeName(){return this.getRuleContext(0,LO)}optionalCollateClause(){return this.getRuleContext(0,rh)}get ruleIndex(){return cn.RULE_tableFunctionElement}accept(t){return t.visitTableFunctionElement?t.visitTableFunctionElement(this):t.visitChildren(this)}},SO=class extends ga{constructor(t,e){super(t,e)}XMLTABLE(){return this.getToken(cn.XMLTABLE,0)}OPEN_PAREN(t){return void 0===t?this.getTokens(cn.OPEN_PAREN):this.getToken(cn.OPEN_PAREN,t)}CLOSE_PAREN(t){return void 0===t?this.getTokens(cn.CLOSE_PAREN):this.getToken(cn.CLOSE_PAREN,t)}expression3(){return this.getRuleContext(0,EI)}xmlExistsArgument(){return this.getRuleContext(0,dI)}COLUMNS(){return this.getToken(cn.COLUMNS,0)}xmlTableColumnElement(t){return void 0===t?this.getRuleContexts(lO):this.getRuleContext(t,lO)}XMLNAMESPACES(){return this.getToken(cn.XMLNAMESPACES,0)}xmlNamespaceList(){return this.getRuleContext(0,uO)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_xmlTable}accept(t){return t.visitXmlTable?t.visitXmlTable(this):t.visitChildren(this)}},lO=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}typeName(){return this.getRuleContext(0,LO)}FOR(){return this.getToken(cn.FOR,0)}ORDINALITY(){return this.getToken(cn.ORDINALITY,0)}xmlTableColumnOptionList(){return this.getRuleContext(0,OO)}get ruleIndex(){return cn.RULE_xmlTableColumnElement}accept(t){return t.visitXmlTableColumnElement?t.visitXmlTableColumnElement(this):t.visitChildren(this)}},OO=class extends ga{constructor(t,e){super(t,e)}xmlTableColumnOptionElement(t){return void 0===t?this.getRuleContexts(IO):this.getRuleContext(t,IO)}get ruleIndex(){return cn.RULE_xmlTableColumnOptionList}accept(t){return t.visitXmlTableColumnOptionList?t.visitXmlTableColumnOptionList(this):t.visitChildren(this)}},IO=class extends ga{constructor(t,e){super(t,e)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}expression1(){return this.getRuleContext(0,wO)}identifier(){return this.getRuleContext(0,rN)}NOT(){return this.getToken(cn.NOT,0)}NULL_P(){return this.getToken(cn.NULL_P,0)}get ruleIndex(){return cn.RULE_xmlTableColumnOptionElement}accept(t){return t.visitXmlTableColumnOptionElement?t.visitXmlTableColumnOptionElement(this):t.visitChildren(this)}},uO=class extends ga{constructor(t,e){super(t,e)}xmlNamespaceElement(t){return void 0===t?this.getRuleContexts(NO):this.getRuleContext(t,NO)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_xmlNamespaceList}accept(t){return t.visitXmlNamespaceList?t.visitXmlNamespaceList(this):t.visitChildren(this)}},NO=class extends ga{constructor(t,e){super(t,e)}expression2(){return this.getRuleContext(0,hI)}AS(){return this.getToken(cn.AS,0)}columnLabel(){return this.getRuleContext(0,aN)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}get ruleIndex(){return cn.RULE_xmlNamespaceElement}accept(t){return t.visitXmlNamespaceElement?t.visitXmlNamespaceElement(this):t.visitChildren(this)}},LO=class extends ga{constructor(t,e){super(t,e)}simpleTypeName(){return this.getRuleContext(0,CO)}ARRAY(){return this.getToken(cn.ARRAY,0)}SETOF(){return this.getToken(cn.SETOF,0)}OPEN_BRACKET(t){return void 0===t?this.getTokens(cn.OPEN_BRACKET):this.getToken(cn.OPEN_BRACKET,t)}CLOSE_BRACKET(t){return void 0===t?this.getTokens(cn.CLOSE_BRACKET):this.getToken(cn.CLOSE_BRACKET,t)}iconst(t){return void 0===t?this.getRuleContexts(Ku):this.getRuleContext(t,Ku)}qualifiedName(){return this.getRuleContext(0,vu)}PERCENT(){return this.getToken(cn.PERCENT,0)}ROWTYPE(){return this.getToken(cn.ROWTYPE,0)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}get ruleIndex(){return cn.RULE_typeName}accept(t){return t.visitTypeName?t.visitTypeName(this):t.visitChildren(this)}},CO=class extends ga{constructor(t,e){super(t,e)}genericType(){return this.getRuleContext(0,PO)}numeric(){return this.getRuleContext(0,dO)}bit(){return this.getRuleContext(0,mO)}character(){return this.getRuleContext(0,xO)}constDateTime(){return this.getRuleContext(0,FO)}constInterval(){return this.getRuleContext(0,vO)}optionalInterval(){return this.getRuleContext(0,yO)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}iconst(){return this.getRuleContext(0,Ku)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_simpleTypeName}accept(t){return t.visitSimpleTypeName?t.visitSimpleTypeName(this):t.visitChildren(this)}},_O=class extends ga{constructor(t,e){super(t,e)}numeric(){return this.getRuleContext(0,dO)}constBit(){return this.getRuleContext(0,DO)}constCharacter(){return this.getRuleContext(0,kO)}constDateTime(){return this.getRuleContext(0,FO)}get ruleIndex(){return cn.RULE_constTypeName}accept(t){return t.visitConstTypeName?t.visitConstTypeName(this):t.visitChildren(this)}},PO=class extends ga{constructor(t,e){super(t,e)}optionalTypeModifiers(){return this.getRuleContext(0,MO)}builtinFunctionName(){return this.getRuleContext(0,TN)}typeFunctionName(){return this.getRuleContext(0,eN)}LEFT(){return this.getToken(cn.LEFT,0)}RIGHT(){return this.getToken(cn.RIGHT,0)}attributes(){return this.getRuleContext(0,Do)}get ruleIndex(){return cn.RULE_genericType}accept(t){return t.visitGenericType?t.visitGenericType(this):t.visitChildren(this)}},MO=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expressionList(){return this.getRuleContext(0,ZI)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_optionalTypeModifiers}accept(t){return t.visitOptionalTypeModifiers?t.visitOptionalTypeModifiers(this):t.visitChildren(this)}},dO=class extends ga{constructor(t,e){super(t,e)}INT_P(){return this.getToken(cn.INT_P,0)}INTEGER(){return this.getToken(cn.INTEGER,0)}SMALLINT(){return this.getToken(cn.SMALLINT,0)}BIGINT(){return this.getToken(cn.BIGINT,0)}REAL(){return this.getToken(cn.REAL,0)}FLOAT_P(){return this.getToken(cn.FLOAT_P,0)}optionalFloat(){return this.getRuleContext(0,UO)}DOUBLE_P(){return this.getToken(cn.DOUBLE_P,0)}PRECISION(){return this.getToken(cn.PRECISION,0)}DECIMAL_P(){return this.getToken(cn.DECIMAL_P,0)}optionalTypeModifiers(){return this.getRuleContext(0,MO)}DEC(){return this.getToken(cn.DEC,0)}NUMERIC(){return this.getToken(cn.NUMERIC,0)}BOOLEAN_P(){return this.getToken(cn.BOOLEAN_P,0)}get ruleIndex(){return cn.RULE_numeric}accept(t){return t.visitNumeric?t.visitNumeric(this):t.visitChildren(this)}},UO=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}iconst(){return this.getRuleContext(0,Ku)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_optionalFloat}accept(t){return t.visitOptionalFloat?t.visitOptionalFloat(this):t.visitChildren(this)}},mO=class extends ga{constructor(t,e){super(t,e)}bitWithLength(){return this.getRuleContext(0,pO)}bitWithoutLength(){return this.getRuleContext(0,gO)}get ruleIndex(){return cn.RULE_bit}accept(t){return t.visitBit?t.visitBit(this):t.visitChildren(this)}},DO=class extends ga{constructor(t,e){super(t,e)}bitWithLength(){return this.getRuleContext(0,pO)}bitWithoutLength(){return this.getRuleContext(0,gO)}get ruleIndex(){return cn.RULE_constBit}accept(t){return t.visitConstBit?t.visitConstBit(this):t.visitChildren(this)}},pO=class extends ga{constructor(t,e){super(t,e)}BIT(){return this.getToken(cn.BIT,0)}optionalVarying(){return this.getRuleContext(0,GO)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expressionList(){return this.getRuleContext(0,ZI)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_bitWithLength}accept(t){return t.visitBitWithLength?t.visitBitWithLength(this):t.visitChildren(this)}},gO=class extends ga{constructor(t,e){super(t,e)}BIT(){return this.getToken(cn.BIT,0)}optionalVarying(){return this.getRuleContext(0,GO)}get ruleIndex(){return cn.RULE_bitWithoutLength}accept(t){return t.visitBitWithoutLength?t.visitBitWithoutLength(this):t.visitChildren(this)}},xO=class extends ga{constructor(t,e){super(t,e)}characterChar(){return this.getRuleContext(0,HO)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}iconst(){return this.getRuleContext(0,Ku)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_character}accept(t){return t.visitCharacter?t.visitCharacter(this):t.visitChildren(this)}},kO=class extends ga{constructor(t,e){super(t,e)}characterChar(){return this.getRuleContext(0,HO)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}iconst(){return this.getRuleContext(0,Ku)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_constCharacter}accept(t){return t.visitConstCharacter?t.visitConstCharacter(this):t.visitChildren(this)}},HO=class extends ga{constructor(t,e){super(t,e)}optionalVarying(){return this.getRuleContext(0,GO)}CHARACTER(){return this.getToken(cn.CHARACTER,0)}CHAR_P(){return this.getToken(cn.CHAR_P,0)}NCHAR(){return this.getToken(cn.NCHAR,0)}VARCHAR(){return this.getToken(cn.VARCHAR,0)}NATIONAL(){return this.getToken(cn.NATIONAL,0)}get ruleIndex(){return cn.RULE_characterChar}accept(t){return t.visitCharacterChar?t.visitCharacterChar(this):t.visitChildren(this)}},GO=class extends ga{constructor(t,e){super(t,e)}VARYING(){return this.getToken(cn.VARYING,0)}get ruleIndex(){return cn.RULE_optionalVarying}accept(t){return t.visitOptionalVarying?t.visitOptionalVarying(this):t.visitChildren(this)}},FO=class extends ga{constructor(t,e){super(t,e)}optionalTimezone(){return this.getRuleContext(0,BO)}TIMESTAMP(){return this.getToken(cn.TIMESTAMP,0)}TIME(){return this.getToken(cn.TIME,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}iconst(){return this.getRuleContext(0,Ku)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_constDateTime}accept(t){return t.visitConstDateTime?t.visitConstDateTime(this):t.visitChildren(this)}},vO=class extends ga{constructor(t,e){super(t,e)}INTERVAL(){return this.getToken(cn.INTERVAL,0)}get ruleIndex(){return cn.RULE_constInterval}accept(t){return t.visitConstInterval?t.visitConstInterval(this):t.visitChildren(this)}},BO=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(cn.WITH,0)}TIME(){return this.getToken(cn.TIME,0)}ZONE(){return this.getToken(cn.ZONE,0)}WITHOUT(){return this.getToken(cn.WITHOUT,0)}get ruleIndex(){return cn.RULE_optionalTimezone}accept(t){return t.visitOptionalTimezone?t.visitOptionalTimezone(this):t.visitChildren(this)}},yO=class extends ga{constructor(t,e){super(t,e)}YEAR_P(){return this.getToken(cn.YEAR_P,0)}MONTH_P(){return this.getToken(cn.MONTH_P,0)}DAY_P(){return this.getToken(cn.DAY_P,0)}HOUR_P(){return this.getToken(cn.HOUR_P,0)}MINUTE_P(){return this.getToken(cn.MINUTE_P,0)}intervalSecond(){return this.getRuleContext(0,fO)}TO(){return this.getToken(cn.TO,0)}get ruleIndex(){return cn.RULE_optionalInterval}accept(t){return t.visitOptionalInterval?t.visitOptionalInterval(this):t.visitChildren(this)}},fO=class extends ga{constructor(t,e){super(t,e)}SECOND_P(){return this.getToken(cn.SECOND_P,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}iconst(){return this.getRuleContext(0,Ku)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_intervalSecond}accept(t){return t.visitIntervalSecond?t.visitIntervalSecond(this):t.visitChildren(this)}},YO=class extends ga{constructor(t,e){super(t,e)}ESCAPE(){return this.getToken(cn.ESCAPE,0)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_optionalEscape}accept(t){return t.visitOptionalEscape?t.visitOptionalEscape(this):t.visitChildren(this)}},wO=class extends ga{constructor(t,e){super(t,e)}expression1Qualifier(){return this.getRuleContext(0,bO)}get ruleIndex(){return cn.RULE_expression1}accept(t){return t.visitExpression1?t.visitExpression1(this):t.visitChildren(this)}},bO=class extends ga{constructor(t,e){super(t,e)}expression1LessLess(){return this.getRuleContext(0,WO)}operatorQualifier(){return this.getRuleContext(0,KI)}get ruleIndex(){return cn.RULE_expression1Qualifier}accept(t){return t.visitExpression1Qualifier?t.visitExpression1Qualifier(this):t.visitChildren(this)}},WO=class extends ga{constructor(t,e){super(t,e)}expression1Or(t){return void 0===t?this.getRuleContexts(VO):this.getRuleContext(t,VO)}LESS_LESS(t){return void 0===t?this.getTokens(cn.LESS_LESS):this.getToken(cn.LESS_LESS,t)}GREATER_GREATER(t){return void 0===t?this.getTokens(cn.GREATER_GREATER):this.getToken(cn.GREATER_GREATER,t)}get ruleIndex(){return cn.RULE_expression1LessLess}accept(t){return t.visitExpression1LessLess?t.visitExpression1LessLess(this):t.visitChildren(this)}},VO=class extends ga{constructor(t,e){super(t,e)}expression1And(t){return void 0===t?this.getRuleContexts(XO):this.getRuleContext(t,XO)}OR(t){return void 0===t?this.getTokens(cn.OR):this.getToken(cn.OR,t)}get ruleIndex(){return cn.RULE_expression1Or}accept(t){return t.visitExpression1Or?t.visitExpression1Or(this):t.visitChildren(this)}},XO=class extends ga{constructor(t,e){super(t,e)}expression1Between(t){return void 0===t?this.getRuleContexts(KO):this.getRuleContext(t,KO)}AND(t){return void 0===t?this.getTokens(cn.AND):this.getToken(cn.AND,t)}get ruleIndex(){return cn.RULE_expression1And}accept(t){return t.visitExpression1And?t.visitExpression1And(this):t.visitChildren(this)}},KO=class extends ga{constructor(t,e){super(t,e)}expression1In(t){return void 0===t?this.getRuleContexts(QO):this.getRuleContext(t,QO)}BETWEEN(){return this.getToken(cn.BETWEEN,0)}AND(){return this.getToken(cn.AND,0)}NOT(){return this.getToken(cn.NOT,0)}SYMMETRIC(){return this.getToken(cn.SYMMETRIC,0)}get ruleIndex(){return cn.RULE_expression1Between}accept(t){return t.visitExpression1Between?t.visitExpression1Between(this):t.visitChildren(this)}},QO=class extends ga{constructor(t,e){super(t,e)}expression1UnaryNot(){return this.getRuleContext(0,JO)}IN_P(){return this.getToken(cn.IN_P,0)}inExpression(){return this.getRuleContext(0,hu)}NOT(){return this.getToken(cn.NOT,0)}get ruleIndex(){return cn.RULE_expression1In}accept(t){return t.visitExpression1In?t.visitExpression1In(this):t.visitChildren(this)}},JO=class extends ga{constructor(t,e){super(t,e)}expression1IsNull(){return this.getRuleContext(0,ZO)}NOT(){return this.getToken(cn.NOT,0)}get ruleIndex(){return cn.RULE_expression1UnaryNot}accept(t){return t.visitExpression1UnaryNot?t.visitExpression1UnaryNot(this):t.visitChildren(this)}},ZO=class extends ga{constructor(t,e){super(t,e)}expression1IsNot(){return this.getRuleContext(0,qO)}ISNULL(){return this.getToken(cn.ISNULL,0)}NOTNULL(){return this.getToken(cn.NOTNULL,0)}get ruleIndex(){return cn.RULE_expression1IsNull}accept(t){return t.visitExpression1IsNull?t.visitExpression1IsNull(this):t.visitChildren(this)}},qO=class extends ga{constructor(t,e){super(t,e)}expression1Compare(){return this.getRuleContext(0,jO)}IS(){return this.getToken(cn.IS,0)}NULL_P(){return this.getToken(cn.NULL_P,0)}TRUE_P(){return this.getToken(cn.TRUE_P,0)}FALSE_P(){return this.getToken(cn.FALSE_P,0)}UNKNOWN(){return this.getToken(cn.UNKNOWN,0)}DISTINCT(){return this.getToken(cn.DISTINCT,0)}FROM(){return this.getToken(cn.FROM,0)}expression1(){return this.getRuleContext(0,wO)}OF(){return this.getToken(cn.OF,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}typeList(){return this.getRuleContext(0,zI)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}DOCUMENT_P(){return this.getToken(cn.DOCUMENT_P,0)}NORMALIZED(){return this.getToken(cn.NORMALIZED,0)}NOT(){return this.getToken(cn.NOT,0)}unicodeNormalForm(){return this.getRuleContext(0,au)}get ruleIndex(){return cn.RULE_expression1IsNot}accept(t){return t.visitExpression1IsNot?t.visitExpression1IsNot(this):t.visitChildren(this)}},jO=class extends ga{constructor(t,e){super(t,e)}expression1Like(t){return void 0===t?this.getRuleContexts(zO):this.getRuleContext(t,zO)}subqueryOperator(){return this.getRuleContext(0,JI)}subType(){return this.getRuleContext(0,WI)}LT(){return this.getToken(cn.LT,0)}GT(){return this.getToken(cn.GT,0)}EQUAL(){return this.getToken(cn.EQUAL,0)}LESS_EQUALS(){return this.getToken(cn.LESS_EQUALS,0)}GREATER_EQUALS(){return this.getToken(cn.GREATER_EQUALS,0)}NOT_EQUALS(){return this.getToken(cn.NOT_EQUALS,0)}selectWithParenthesis(){return this.getRuleContext(0,cl)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expression1(){return this.getRuleContext(0,wO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_expression1Compare}accept(t){return t.visitExpression1Compare?t.visitExpression1Compare(this):t.visitChildren(this)}},zO=class extends ga{constructor(t,e){super(t,e)}expression1qualifierOperator(t){return void 0===t?this.getRuleContexts($O):this.getRuleContext(t,$O)}optionalEscape(){return this.getRuleContext(0,YO)}LIKE(){return this.getToken(cn.LIKE,0)}ILIKE(){return this.getToken(cn.ILIKE,0)}SIMILAR(){return this.getToken(cn.SIMILAR,0)}TO(){return this.getToken(cn.TO,0)}NOT(){return this.getToken(cn.NOT,0)}get ruleIndex(){return cn.RULE_expression1Like}accept(t){return t.visitExpression1Like?t.visitExpression1Like(this):t.visitChildren(this)}},$O=class extends ga{constructor(t,e){super(t,e)}expression1UnaryQualifierOperator(t){return void 0===t?this.getRuleContexts(tI):this.getRuleContext(t,tI)}operatorQualifier(t){return void 0===t?this.getRuleContexts(KI):this.getRuleContext(t,KI)}get ruleIndex(){return cn.RULE_expression1qualifierOperator}accept(t){return t.visitExpression1qualifierOperator?t.visitExpression1qualifierOperator(this):t.visitChildren(this)}},tI=class extends ga{constructor(t,e){super(t,e)}expression1Add(){return this.getRuleContext(0,eI)}operatorQualifier(){return this.getRuleContext(0,KI)}get ruleIndex(){return cn.RULE_expression1UnaryQualifierOperator}accept(t){return t.visitExpression1UnaryQualifierOperator?t.visitExpression1UnaryQualifierOperator(this):t.visitChildren(this)}},eI=class extends ga{constructor(t,e){super(t,e)}expressionMultiply(t){return void 0===t?this.getRuleContexts(sI):this.getRuleContext(t,sI)}MINUS(t){return void 0===t?this.getTokens(cn.MINUS):this.getToken(cn.MINUS,t)}PLUS(t){return void 0===t?this.getTokens(cn.PLUS):this.getToken(cn.PLUS,t)}get ruleIndex(){return cn.RULE_expression1Add}accept(t){return t.visitExpression1Add?t.visitExpression1Add(this):t.visitChildren(this)}},sI=class extends ga{constructor(t,e){super(t,e)}expression1Caret(t){return void 0===t?this.getRuleContexts(aI):this.getRuleContext(t,aI)}STAR(t){return void 0===t?this.getTokens(cn.STAR):this.getToken(cn.STAR,t)}SLASH(t){return void 0===t?this.getTokens(cn.SLASH):this.getToken(cn.SLASH,t)}PERCENT(t){return void 0===t?this.getTokens(cn.PERCENT):this.getToken(cn.PERCENT,t)}get ruleIndex(){return cn.RULE_expressionMultiply}accept(t){return t.visitExpressionMultiply?t.visitExpressionMultiply(this):t.visitChildren(this)}},aI=class extends ga{constructor(t,e){super(t,e)}expression1UnarySign(){return this.getRuleContext(0,rI)}CARET(){return this.getToken(cn.CARET,0)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_expression1Caret}accept(t){return t.visitExpression1Caret?t.visitExpression1Caret(this):t.visitChildren(this)}},rI=class extends ga{constructor(t,e){super(t,e)}expression1AtTimeZone(){return this.getRuleContext(0,iI)}MINUS(){return this.getToken(cn.MINUS,0)}PLUS(){return this.getToken(cn.PLUS,0)}get ruleIndex(){return cn.RULE_expression1UnarySign}accept(t){return t.visitExpression1UnarySign?t.visitExpression1UnarySign(this):t.visitChildren(this)}},iI=class extends ga{constructor(t,e){super(t,e)}expression1Collate(){return this.getRuleContext(0,cI)}AT(){return this.getToken(cn.AT,0)}TIME(){return this.getToken(cn.TIME,0)}ZONE(){return this.getToken(cn.ZONE,0)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_expression1AtTimeZone}accept(t){return t.visitExpression1AtTimeZone?t.visitExpression1AtTimeZone(this):t.visitChildren(this)}},cI=class extends ga{constructor(t,e){super(t,e)}expression1Typecast(){return this.getRuleContext(0,nI)}COLLATE(){return this.getToken(cn.COLLATE,0)}anyName(){return this.getRuleContext(0,mo)}get ruleIndex(){return cn.RULE_expression1Collate}accept(t){return t.visitExpression1Collate?t.visitExpression1Collate(this):t.visitChildren(this)}},nI=class extends ga{constructor(t,e){super(t,e)}expression3(){return this.getRuleContext(0,EI)}TYPECAST(t){return void 0===t?this.getTokens(cn.TYPECAST):this.getToken(cn.TYPECAST,t)}typeName(t){return void 0===t?this.getRuleContexts(LO):this.getRuleContext(t,LO)}get ruleIndex(){return cn.RULE_expression1Typecast}accept(t){return t.visitExpression1Typecast?t.visitExpression1Typecast(this):t.visitChildren(this)}},hI=class t extends ga{constructor(t,e){super(t,e)}expression3(){return this.getRuleContext(0,EI)}expression2(e){return void 0===e?this.getRuleContexts(t):this.getRuleContext(e,t)}PLUS(){return this.getToken(cn.PLUS,0)}MINUS(){return this.getToken(cn.MINUS,0)}operatorQualifier(){return this.getRuleContext(0,KI)}CARET(){return this.getToken(cn.CARET,0)}STAR(){return this.getToken(cn.STAR,0)}SLASH(){return this.getToken(cn.SLASH,0)}PERCENT(){return this.getToken(cn.PERCENT,0)}LT(){return this.getToken(cn.LT,0)}GT(){return this.getToken(cn.GT,0)}EQUAL(){return this.getToken(cn.EQUAL,0)}LESS_EQUALS(){return this.getToken(cn.LESS_EQUALS,0)}GREATER_EQUALS(){return this.getToken(cn.GREATER_EQUALS,0)}NOT_EQUALS(){return this.getToken(cn.NOT_EQUALS,0)}TYPECAST(){return this.getToken(cn.TYPECAST,0)}typeName(){return this.getRuleContext(0,LO)}IS(){return this.getToken(cn.IS,0)}DISTINCT(){return this.getToken(cn.DISTINCT,0)}FROM(){return this.getToken(cn.FROM,0)}OF(){return this.getToken(cn.OF,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}typeList(){return this.getRuleContext(0,zI)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}DOCUMENT_P(){return this.getToken(cn.DOCUMENT_P,0)}NOT(){return this.getToken(cn.NOT,0)}get ruleIndex(){return cn.RULE_expression2}accept(t){return t.visitExpression2?t.visitExpression2(this):t.visitChildren(this)}},EI=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return cn.RULE_expression3}copyFrom(t){super.copyFrom(t)}},TI=class extends EI{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}EXISTS(){return this.getToken(cn.EXISTS,0)}selectWithParenthesis(){return this.getRuleContext(0,cl)}accept(t){return t.visitC_expr_exists?t.visitC_expr_exists(this):t.visitChildren(this)}},oI=class extends EI{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}caseExpression(){return this.getRuleContext(0,ou)}accept(t){return t.visitC_expr_case?t.visitC_expr_case(this):t.visitChildren(this)}},RI=class extends EI{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ARRAY(){return this.getToken(cn.ARRAY,0)}selectWithParenthesis(){return this.getRuleContext(0,cl)}arrayExpression(){return this.getRuleContext(0,$I)}PARAM(){return this.getToken(cn.PARAM,0)}optionalIndirection(){return this.getRuleContext(0,Nu)}GROUPING(){return this.getToken(cn.GROUPING,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expressionList(){return this.getRuleContext(0,ZI)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}UNIQUE(){return this.getToken(cn.UNIQUE,0)}columnReference(){return this.getRuleContext(0,Ou)}aExpressionConst(){return this.getRuleContext(0,bu)}plsqlVariableName(){return this.getRuleContext(0,AI)}expression1(){return this.getRuleContext(0,wO)}functionExpression(){return this.getRuleContext(0,lI)}indirection(){return this.getRuleContext(0,uu)}explicitRow(){return this.getRuleContext(0,wI)}implicitRow(){return this.getRuleContext(0,bI)}row(t){return void 0===t?this.getRuleContexts(YI):this.getRuleContext(t,YI)}OVERLAPS(){return this.getToken(cn.OVERLAPS,0)}accept(t){return t.visitC_expr_expr?t.visitC_expr_expr(this):t.visitChildren(this)}},AI=class extends ga{constructor(t,e){super(t,e)}PLSQLVARIABLENAME(){return this.getToken(cn.PLSQLVARIABLENAME,0)}get ruleIndex(){return cn.RULE_plsqlVariableName}accept(t){return t.visitPlsqlVariableName?t.visitPlsqlVariableName(this):t.visitChildren(this)}},SI=class extends ga{constructor(t,e){super(t,e)}functionName(){return this.getRuleContext(0,wu)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}functionArgumentList(){return this.getRuleContext(0,qI)}optionalSortClause(){return this.getRuleContext(0,Cl)}VARIADIC(){return this.getToken(cn.VARIADIC,0)}functionArgumentExpression(){return this.getRuleContext(0,jI)}STAR(){return this.getToken(cn.STAR,0)}ALL(){return this.getToken(cn.ALL,0)}DISTINCT(){return this.getToken(cn.DISTINCT,0)}COMMA(){return this.getToken(cn.COMMA,0)}get ruleIndex(){return cn.RULE_functionApplication}accept(t){return t.visitFunctionApplication?t.visitFunctionApplication(this):t.visitChildren(this)}},lI=class extends ga{constructor(t,e){super(t,e)}functionApplication(){return this.getRuleContext(0,SI)}withinGroupClause(){return this.getRuleContext(0,mI)}filterClause(){return this.getRuleContext(0,DI)}overClause(){return this.getRuleContext(0,kI)}functionExpressionCommonSubexpr(){return this.getRuleContext(0,II)}get ruleIndex(){return cn.RULE_functionExpression}accept(t){return t.visitFunctionExpression?t.visitFunctionExpression(this):t.visitChildren(this)}},OI=class extends ga{constructor(t,e){super(t,e)}functionApplication(){return this.getRuleContext(0,SI)}functionExpressionCommonSubexpr(){return this.getRuleContext(0,II)}get ruleIndex(){return cn.RULE_functionExpressionWindowless}accept(t){return t.visitFunctionExpressionWindowless?t.visitFunctionExpressionWindowless(this):t.visitChildren(this)}},II=class extends ga{constructor(t,e){super(t,e)}COLLATION(){return this.getToken(cn.COLLATION,0)}FOR(){return this.getToken(cn.FOR,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expression1(t){return void 0===t?this.getRuleContexts(wO):this.getRuleContext(t,wO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}CURRENT_DATE(){return this.getToken(cn.CURRENT_DATE,0)}CURRENT_TIME(){return this.getToken(cn.CURRENT_TIME,0)}iconst(){return this.getRuleContext(0,Ku)}CURRENT_TIMESTAMP(){return this.getToken(cn.CURRENT_TIMESTAMP,0)}LOCALTIME(){return this.getToken(cn.LOCALTIME,0)}LOCALTIMESTAMP(){return this.getToken(cn.LOCALTIMESTAMP,0)}CURRENT_ROLE(){return this.getToken(cn.CURRENT_ROLE,0)}CURRENT_USER(){return this.getToken(cn.CURRENT_USER,0)}SESSION_USER(){return this.getToken(cn.SESSION_USER,0)}USER(){return this.getToken(cn.USER,0)}CURRENT_CATALOG(){return this.getToken(cn.CURRENT_CATALOG,0)}CURRENT_SCHEMA(){return this.getToken(cn.CURRENT_SCHEMA,0)}CAST(){return this.getToken(cn.CAST,0)}AS(){return this.getToken(cn.AS,0)}typeName(){return this.getRuleContext(0,LO)}EXTRACT(){return this.getToken(cn.EXTRACT,0)}extractList(){return this.getRuleContext(0,eu)}NORMALIZE(){return this.getToken(cn.NORMALIZE,0)}COMMA(){return this.getToken(cn.COMMA,0)}unicodeNormalForm(){return this.getRuleContext(0,au)}OVERLAY(){return this.getToken(cn.OVERLAY,0)}overlayList(){return this.getRuleContext(0,ru)}POSITION(){return this.getToken(cn.POSITION,0)}positionList(){return this.getRuleContext(0,iu)}SUBSTRING(){return this.getToken(cn.SUBSTRING,0)}substrList(){return this.getRuleContext(0,cu)}TREAT(){return this.getToken(cn.TREAT,0)}TRIM(){return this.getToken(cn.TRIM,0)}trimList(){return this.getRuleContext(0,nu)}BOTH(){return this.getToken(cn.BOTH,0)}LEADING(){return this.getToken(cn.LEADING,0)}TRAILING(){return this.getToken(cn.TRAILING,0)}NULLIF(){return this.getToken(cn.NULLIF,0)}COALESCE(){return this.getToken(cn.COALESCE,0)}expressionList(){return this.getRuleContext(0,ZI)}GREATEST(){return this.getToken(cn.GREATEST,0)}LEAST(){return this.getToken(cn.LEAST,0)}XMLCONCAT(){return this.getToken(cn.XMLCONCAT,0)}XMLELEMENT(){return this.getToken(cn.XMLELEMENT,0)}NAME_P(){return this.getToken(cn.NAME_P,0)}columnLabel(){return this.getRuleContext(0,aN)}xmlAttributes(){return this.getRuleContext(0,LI)}XMLEXISTS(){return this.getToken(cn.XMLEXISTS,0)}expression3(){return this.getRuleContext(0,EI)}xmlExistsArgument(){return this.getRuleContext(0,dI)}XMLFOREST(){return this.getToken(cn.XMLFOREST,0)}xmlAttributeList(){return this.getRuleContext(0,CI)}XMLPARSE(){return this.getToken(cn.XMLPARSE,0)}documentOrContent(){return this.getRuleContext(0,PI)}xmlWhitespaceOption(){return this.getRuleContext(0,MI)}XMLPI(){return this.getToken(cn.XMLPI,0)}XMLROOT(){return this.getToken(cn.XMLROOT,0)}XML_P(){return this.getToken(cn.XML_P,0)}xmlRootVersion(){return this.getRuleContext(0,uI)}optionalXmlRootStandalone(){return this.getRuleContext(0,NI)}XMLSERIALIZE(){return this.getToken(cn.XMLSERIALIZE,0)}simpleTypeName(){return this.getRuleContext(0,CO)}get ruleIndex(){return cn.RULE_functionExpressionCommonSubexpr}accept(t){return t.visitFunctionExpressionCommonSubexpr?t.visitFunctionExpressionCommonSubexpr(this):t.visitChildren(this)}},uI=class extends ga{constructor(t,e){super(t,e)}VERSION_P(){return this.getToken(cn.VERSION_P,0)}expression1(){return this.getRuleContext(0,wO)}NO(){return this.getToken(cn.NO,0)}VALUE_P(){return this.getToken(cn.VALUE_P,0)}get ruleIndex(){return cn.RULE_xmlRootVersion}accept(t){return t.visitXmlRootVersion?t.visitXmlRootVersion(this):t.visitChildren(this)}},NI=class extends ga{constructor(t,e){super(t,e)}COMMA(){return this.getToken(cn.COMMA,0)}STANDALONE_P(){return this.getToken(cn.STANDALONE_P,0)}YES_P(){return this.getToken(cn.YES_P,0)}NO(){return this.getToken(cn.NO,0)}VALUE_P(){return this.getToken(cn.VALUE_P,0)}get ruleIndex(){return cn.RULE_optionalXmlRootStandalone}accept(t){return t.visitOptionalXmlRootStandalone?t.visitOptionalXmlRootStandalone(this):t.visitChildren(this)}},LI=class extends ga{constructor(t,e){super(t,e)}XMLATTRIBUTES(){return this.getToken(cn.XMLATTRIBUTES,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}xmlAttributeList(){return this.getRuleContext(0,CI)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_xmlAttributes}accept(t){return t.visitXmlAttributes?t.visitXmlAttributes(this):t.visitChildren(this)}},CI=class extends ga{constructor(t,e){super(t,e)}xmlAttributeElement(t){return void 0===t?this.getRuleContexts(_I):this.getRuleContext(t,_I)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_xmlAttributeList}accept(t){return t.visitXmlAttributeList?t.visitXmlAttributeList(this):t.visitChildren(this)}},_I=class extends ga{constructor(t,e){super(t,e)}expression1(){return this.getRuleContext(0,wO)}AS(){return this.getToken(cn.AS,0)}columnLabel(){return this.getRuleContext(0,aN)}get ruleIndex(){return cn.RULE_xmlAttributeElement}accept(t){return t.visitXmlAttributeElement?t.visitXmlAttributeElement(this):t.visitChildren(this)}},PI=class extends ga{constructor(t,e){super(t,e)}DOCUMENT_P(){return this.getToken(cn.DOCUMENT_P,0)}CONTENT_P(){return this.getToken(cn.CONTENT_P,0)}get ruleIndex(){return cn.RULE_documentOrContent}accept(t){return t.visitDocumentOrContent?t.visitDocumentOrContent(this):t.visitChildren(this)}},MI=class extends ga{constructor(t,e){super(t,e)}PRESERVE(){return this.getToken(cn.PRESERVE,0)}WHITESPACE_P(){return this.getToken(cn.WHITESPACE_P,0)}STRIP_P(){return this.getToken(cn.STRIP_P,0)}get ruleIndex(){return cn.RULE_xmlWhitespaceOption}accept(t){return t.visitXmlWhitespaceOption?t.visitXmlWhitespaceOption(this):t.visitChildren(this)}},dI=class extends ga{constructor(t,e){super(t,e)}PASSING(){return this.getToken(cn.PASSING,0)}expression3(){return this.getRuleContext(0,EI)}xmlPassingMech(t){return void 0===t?this.getRuleContexts(UI):this.getRuleContext(t,UI)}get ruleIndex(){return cn.RULE_xmlExistsArgument}accept(t){return t.visitXmlExistsArgument?t.visitXmlExistsArgument(this):t.visitChildren(this)}},UI=class extends ga{constructor(t,e){super(t,e)}BY(){return this.getToken(cn.BY,0)}REF(){return this.getToken(cn.REF,0)}VALUE_P(){return this.getToken(cn.VALUE_P,0)}get ruleIndex(){return cn.RULE_xmlPassingMech}accept(t){return t.visitXmlPassingMech?t.visitXmlPassingMech(this):t.visitChildren(this)}},mI=class extends ga{constructor(t,e){super(t,e)}WITHIN(){return this.getToken(cn.WITHIN,0)}GROUP_P(){return this.getToken(cn.GROUP_P,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}sortClause(){return this.getRuleContext(0,_l)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_withinGroupClause}accept(t){return t.visitWithinGroupClause?t.visitWithinGroupClause(this):t.visitChildren(this)}},DI=class extends ga{constructor(t,e){super(t,e)}FILTER(){return this.getToken(cn.FILTER,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}WHERE(){return this.getToken(cn.WHERE,0)}expression1(){return this.getRuleContext(0,wO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_filterClause}accept(t){return t.visitFilterClause?t.visitFilterClause(this):t.visitChildren(this)}},pI=class extends ga{constructor(t,e){super(t,e)}WINDOW(){return this.getToken(cn.WINDOW,0)}windowDefinitionList(){return this.getRuleContext(0,gI)}get ruleIndex(){return cn.RULE_windowClause}accept(t){return t.visitWindowClause?t.visitWindowClause(this):t.visitChildren(this)}},gI=class extends ga{constructor(t,e){super(t,e)}windowDefinition(t){return void 0===t?this.getRuleContexts(xI):this.getRuleContext(t,xI)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_windowDefinitionList}accept(t){return t.visitWindowDefinitionList?t.visitWindowDefinitionList(this):t.visitChildren(this)}},xI=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}AS(){return this.getToken(cn.AS,0)}windowSpecification(){return this.getRuleContext(0,HI)}get ruleIndex(){return cn.RULE_windowDefinition}accept(t){return t.visitWindowDefinition?t.visitWindowDefinition(this):t.visitChildren(this)}},kI=class extends ga{constructor(t,e){super(t,e)}OVER(){return this.getToken(cn.OVER,0)}windowSpecification(){return this.getRuleContext(0,HI)}columnId(){return this.getRuleContext(0,$u)}get ruleIndex(){return cn.RULE_overClause}accept(t){return t.visitOverClause?t.visitOverClause(this):t.visitChildren(this)}},HI=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}optionalExistingWindowName(){return this.getRuleContext(0,GI)}optionalPartitionClause(){return this.getRuleContext(0,FI)}optionalSortClause(){return this.getRuleContext(0,Cl)}optionalFrameClause(){return this.getRuleContext(0,vI)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_windowSpecification}accept(t){return t.visitWindowSpecification?t.visitWindowSpecification(this):t.visitChildren(this)}},GI=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}get ruleIndex(){return cn.RULE_optionalExistingWindowName}accept(t){return t.visitOptionalExistingWindowName?t.visitOptionalExistingWindowName(this):t.visitChildren(this)}},FI=class extends ga{constructor(t,e){super(t,e)}PARTITION(){return this.getToken(cn.PARTITION,0)}BY(){return this.getToken(cn.BY,0)}expressionList(){return this.getRuleContext(0,ZI)}get ruleIndex(){return cn.RULE_optionalPartitionClause}accept(t){return t.visitOptionalPartitionClause?t.visitOptionalPartitionClause(this):t.visitChildren(this)}},vI=class extends ga{constructor(t,e){super(t,e)}RANGE(){return this.getToken(cn.RANGE,0)}frameExtent(){return this.getRuleContext(0,BI)}optionalWindowExclusionClause(){return this.getRuleContext(0,fI)}ROWS(){return this.getToken(cn.ROWS,0)}GROUPS(){return this.getToken(cn.GROUPS,0)}get ruleIndex(){return cn.RULE_optionalFrameClause}accept(t){return t.visitOptionalFrameClause?t.visitOptionalFrameClause(this):t.visitChildren(this)}},BI=class extends ga{constructor(t,e){super(t,e)}frameBound(t){return void 0===t?this.getRuleContexts(yI):this.getRuleContext(t,yI)}BETWEEN(){return this.getToken(cn.BETWEEN,0)}AND(){return this.getToken(cn.AND,0)}get ruleIndex(){return cn.RULE_frameExtent}accept(t){return t.visitFrameExtent?t.visitFrameExtent(this):t.visitChildren(this)}},yI=class extends ga{constructor(t,e){super(t,e)}UNBOUNDED(){return this.getToken(cn.UNBOUNDED,0)}PRECEDING(){return this.getToken(cn.PRECEDING,0)}FOLLOWING(){return this.getToken(cn.FOLLOWING,0)}CURRENT_P(){return this.getToken(cn.CURRENT_P,0)}ROW(){return this.getToken(cn.ROW,0)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_frameBound}accept(t){return t.visitFrameBound?t.visitFrameBound(this):t.visitChildren(this)}},fI=class extends ga{constructor(t,e){super(t,e)}EXCLUDE(){return this.getToken(cn.EXCLUDE,0)}CURRENT_P(){return this.getToken(cn.CURRENT_P,0)}ROW(){return this.getToken(cn.ROW,0)}GROUP_P(){return this.getToken(cn.GROUP_P,0)}TIES(){return this.getToken(cn.TIES,0)}NO(){return this.getToken(cn.NO,0)}OTHERS(){return this.getToken(cn.OTHERS,0)}get ruleIndex(){return cn.RULE_optionalWindowExclusionClause}accept(t){return t.visitOptionalWindowExclusionClause?t.visitOptionalWindowExclusionClause(this):t.visitChildren(this)}},YI=class extends ga{constructor(t,e){super(t,e)}ROW(){return this.getToken(cn.ROW,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}expressionList(){return this.getRuleContext(0,ZI)}COMMA(){return this.getToken(cn.COMMA,0)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_row}accept(t){return t.visitRow?t.visitRow(this):t.visitChildren(this)}},wI=class extends ga{constructor(t,e){super(t,e)}ROW(){return this.getToken(cn.ROW,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}expressionList(){return this.getRuleContext(0,ZI)}get ruleIndex(){return cn.RULE_explicitRow}accept(t){return t.visitExplicitRow?t.visitExplicitRow(this):t.visitChildren(this)}},bI=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expressionList(){return this.getRuleContext(0,ZI)}COMMA(){return this.getToken(cn.COMMA,0)}expression1(){return this.getRuleContext(0,wO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_implicitRow}accept(t){return t.visitImplicitRow?t.visitImplicitRow(this):t.visitChildren(this)}},WI=class extends ga{constructor(t,e){super(t,e)}ANY(){return this.getToken(cn.ANY,0)}SOME(){return this.getToken(cn.SOME,0)}ALL(){return this.getToken(cn.ALL,0)}get ruleIndex(){return cn.RULE_subType}accept(t){return t.visitSubType?t.visitSubType(this):t.visitChildren(this)}},VI=class extends ga{constructor(t,e){super(t,e)}Operator(){return this.getToken(cn.Operator,0)}mathOperator(){return this.getRuleContext(0,XI)}get ruleIndex(){return cn.RULE_allOperator}accept(t){return t.visitAllOperator?t.visitAllOperator(this):t.visitChildren(this)}},XI=class extends ga{constructor(t,e){super(t,e)}PLUS(){return this.getToken(cn.PLUS,0)}MINUS(){return this.getToken(cn.MINUS,0)}STAR(){return this.getToken(cn.STAR,0)}SLASH(){return this.getToken(cn.SLASH,0)}PERCENT(){return this.getToken(cn.PERCENT,0)}CARET(){return this.getToken(cn.CARET,0)}LT(){return this.getToken(cn.LT,0)}GT(){return this.getToken(cn.GT,0)}EQUAL(){return this.getToken(cn.EQUAL,0)}LESS_EQUALS(){return this.getToken(cn.LESS_EQUALS,0)}GREATER_EQUALS(){return this.getToken(cn.GREATER_EQUALS,0)}NOT_EQUALS(){return this.getToken(cn.NOT_EQUALS,0)}get ruleIndex(){return cn.RULE_mathOperator}accept(t){return t.visitMathOperator?t.visitMathOperator(this):t.visitChildren(this)}},KI=class extends ga{constructor(t,e){super(t,e)}Operator(){return this.getToken(cn.Operator,0)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}anyOperator(){return this.getRuleContext(0,WR)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_operatorQualifier}accept(t){return t.visitOperatorQualifier?t.visitOperatorQualifier(this):t.visitChildren(this)}},QI=class extends ga{constructor(t,e){super(t,e)}allOperator(){return this.getRuleContext(0,VI)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}anyOperator(){return this.getRuleContext(0,WR)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_allOperatorQualifier}accept(t){return t.visitAllOperatorQualifier?t.visitAllOperatorQualifier(this):t.visitChildren(this)}},JI=class extends ga{constructor(t,e){super(t,e)}allOperator(){return this.getRuleContext(0,VI)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}anyOperator(){return this.getRuleContext(0,WR)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}LIKE(){return this.getToken(cn.LIKE,0)}NOT(){return this.getToken(cn.NOT,0)}ILIKE(){return this.getToken(cn.ILIKE,0)}get ruleIndex(){return cn.RULE_subqueryOperator}accept(t){return t.visitSubqueryOperator?t.visitSubqueryOperator(this):t.visitChildren(this)}},ZI=class extends ga{constructor(t,e){super(t,e)}expression1(t){return void 0===t?this.getRuleContexts(wO):this.getRuleContext(t,wO)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_expressionList}accept(t){return t.visitExpressionList?t.visitExpressionList(this):t.visitChildren(this)}},qI=class extends ga{constructor(t,e){super(t,e)}functionArgumentExpression(t){return void 0===t?this.getRuleContexts(jI):this.getRuleContext(t,jI)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_functionArgumentList}accept(t){return t.visitFunctionArgumentList?t.visitFunctionArgumentList(this):t.visitChildren(this)}},jI=class extends ga{constructor(t,e){super(t,e)}expression1(){return this.getRuleContext(0,wO)}parameterName(){return this.getRuleContext(0,PR)}COLON_EQUALS(){return this.getToken(cn.COLON_EQUALS,0)}EQUALS_GREATER(){return this.getToken(cn.EQUALS_GREATER,0)}get ruleIndex(){return cn.RULE_functionArgumentExpression}accept(t){return t.visitFunctionArgumentExpression?t.visitFunctionArgumentExpression(this):t.visitChildren(this)}},zI=class extends ga{constructor(t,e){super(t,e)}typeName(t){return void 0===t?this.getRuleContexts(LO):this.getRuleContext(t,LO)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_typeList}accept(t){return t.visitTypeList?t.visitTypeList(this):t.visitChildren(this)}},$I=class extends ga{constructor(t,e){super(t,e)}OPEN_BRACKET(){return this.getToken(cn.OPEN_BRACKET,0)}CLOSE_BRACKET(){return this.getToken(cn.CLOSE_BRACKET,0)}expressionList(){return this.getRuleContext(0,ZI)}arrayExpressionList(){return this.getRuleContext(0,tu)}get ruleIndex(){return cn.RULE_arrayExpression}accept(t){return t.visitArrayExpression?t.visitArrayExpression(this):t.visitChildren(this)}},tu=class extends ga{constructor(t,e){super(t,e)}arrayExpression(t){return void 0===t?this.getRuleContexts($I):this.getRuleContext(t,$I)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_arrayExpressionList}accept(t){return t.visitArrayExpressionList?t.visitArrayExpressionList(this):t.visitChildren(this)}},eu=class extends ga{constructor(t,e){super(t,e)}extractArgument(){return this.getRuleContext(0,su)}FROM(){return this.getToken(cn.FROM,0)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_extractList}accept(t){return t.visitExtractList?t.visitExtractList(this):t.visitChildren(this)}},su=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,rN)}YEAR_P(){return this.getToken(cn.YEAR_P,0)}MONTH_P(){return this.getToken(cn.MONTH_P,0)}DAY_P(){return this.getToken(cn.DAY_P,0)}HOUR_P(){return this.getToken(cn.HOUR_P,0)}MINUTE_P(){return this.getToken(cn.MINUTE_P,0)}SECOND_P(){return this.getToken(cn.SECOND_P,0)}sconst(){return this.getRuleContext(0,Qu)}get ruleIndex(){return cn.RULE_extractArgument}accept(t){return t.visitExtractArgument?t.visitExtractArgument(this):t.visitChildren(this)}},au=class extends ga{constructor(t,e){super(t,e)}NFC(){return this.getToken(cn.NFC,0)}NFD(){return this.getToken(cn.NFD,0)}NFKC(){return this.getToken(cn.NFKC,0)}NFKD(){return this.getToken(cn.NFKD,0)}get ruleIndex(){return cn.RULE_unicodeNormalForm}accept(t){return t.visitUnicodeNormalForm?t.visitUnicodeNormalForm(this):t.visitChildren(this)}},ru=class extends ga{constructor(t,e){super(t,e)}expression1(t){return void 0===t?this.getRuleContexts(wO):this.getRuleContext(t,wO)}PLACING(){return this.getToken(cn.PLACING,0)}FROM(){return this.getToken(cn.FROM,0)}FOR(){return this.getToken(cn.FOR,0)}get ruleIndex(){return cn.RULE_overlayList}accept(t){return t.visitOverlayList?t.visitOverlayList(this):t.visitChildren(this)}},iu=class extends ga{constructor(t,e){super(t,e)}expression2(t){return void 0===t?this.getRuleContexts(hI):this.getRuleContext(t,hI)}IN_P(){return this.getToken(cn.IN_P,0)}get ruleIndex(){return cn.RULE_positionList}accept(t){return t.visitPositionList?t.visitPositionList(this):t.visitChildren(this)}},cu=class extends ga{constructor(t,e){super(t,e)}expression1(t){return void 0===t?this.getRuleContexts(wO):this.getRuleContext(t,wO)}FROM(){return this.getToken(cn.FROM,0)}FOR(){return this.getToken(cn.FOR,0)}SIMILAR(){return this.getToken(cn.SIMILAR,0)}ESCAPE(){return this.getToken(cn.ESCAPE,0)}expressionList(){return this.getRuleContext(0,ZI)}get ruleIndex(){return cn.RULE_substrList}accept(t){return t.visitSubstrList?t.visitSubstrList(this):t.visitChildren(this)}},nu=class extends ga{constructor(t,e){super(t,e)}expression1(){return this.getRuleContext(0,wO)}FROM(){return this.getToken(cn.FROM,0)}expressionList(){return this.getRuleContext(0,ZI)}get ruleIndex(){return cn.RULE_trimList}accept(t){return t.visitTrimList?t.visitTrimList(this):t.visitChildren(this)}},hu=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return cn.RULE_inExpression}copyFrom(t){super.copyFrom(t)}},Eu=class extends hu{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expressionList(){return this.getRuleContext(0,ZI)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}accept(t){return t.visitIn_expr_list?t.visitIn_expr_list(this):t.visitChildren(this)}},Tu=class extends hu{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}selectWithParenthesis(){return this.getRuleContext(0,cl)}accept(t){return t.visitIn_expr_select?t.visitIn_expr_select(this):t.visitChildren(this)}},ou=class extends ga{constructor(t,e){super(t,e)}CASE(){return this.getToken(cn.CASE,0)}caseArg(){return this.getRuleContext(0,lu)}whenClauseList(){return this.getRuleContext(0,Ru)}caseDefault(){return this.getRuleContext(0,Su)}END_P(){return this.getToken(cn.END_P,0)}get ruleIndex(){return cn.RULE_caseExpression}accept(t){return t.visitCaseExpression?t.visitCaseExpression(this):t.visitChildren(this)}},Ru=class extends ga{constructor(t,e){super(t,e)}whenClause(t){return void 0===t?this.getRuleContexts(Au):this.getRuleContext(t,Au)}get ruleIndex(){return cn.RULE_whenClauseList}accept(t){return t.visitWhenClauseList?t.visitWhenClauseList(this):t.visitChildren(this)}},Au=class extends ga{constructor(t,e){super(t,e)}WHEN(){return this.getToken(cn.WHEN,0)}expression1(t){return void 0===t?this.getRuleContexts(wO):this.getRuleContext(t,wO)}THEN(){return this.getToken(cn.THEN,0)}get ruleIndex(){return cn.RULE_whenClause}accept(t){return t.visitWhenClause?t.visitWhenClause(this):t.visitChildren(this)}},Su=class extends ga{constructor(t,e){super(t,e)}ELSE(){return this.getToken(cn.ELSE,0)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_caseDefault}accept(t){return t.visitCaseDefault?t.visitCaseDefault(this):t.visitChildren(this)}},lu=class extends ga{constructor(t,e){super(t,e)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_caseArg}accept(t){return t.visitCaseArg?t.visitCaseArg(this):t.visitChildren(this)}},Ou=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}indirection(){return this.getRuleContext(0,uu)}get ruleIndex(){return cn.RULE_columnReference}accept(t){return t.visitColumnReference?t.visitColumnReference(this):t.visitChildren(this)}},Iu=class extends ga{constructor(t,e){super(t,e)}DOT(){return this.getToken(cn.DOT,0)}attributeName(){return this.getRuleContext(0,fu)}STAR(){return this.getToken(cn.STAR,0)}OPEN_BRACKET(){return this.getToken(cn.OPEN_BRACKET,0)}CLOSE_BRACKET(){return this.getToken(cn.CLOSE_BRACKET,0)}expression1(t){return void 0===t?this.getRuleContexts(wO):this.getRuleContext(t,wO)}COLON(){return this.getToken(cn.COLON,0)}get ruleIndex(){return cn.RULE_indirectionElement}accept(t){return t.visitIndirectionElement?t.visitIndirectionElement(this):t.visitChildren(this)}},uu=class extends ga{constructor(t,e){super(t,e)}indirectionElement(t){return void 0===t?this.getRuleContexts(Iu):this.getRuleContext(t,Iu)}get ruleIndex(){return cn.RULE_indirection}accept(t){return t.visitIndirection?t.visitIndirection(this):t.visitChildren(this)}},Nu=class extends ga{constructor(t,e){super(t,e)}indirectionElement(t){return void 0===t?this.getRuleContexts(Iu):this.getRuleContext(t,Iu)}get ruleIndex(){return cn.RULE_optionalIndirection}accept(t){return t.visitOptionalIndirection?t.visitOptionalIndirection(this):t.visitChildren(this)}},Lu=class extends ga{constructor(t,e){super(t,e)}targetList(){return this.getRuleContext(0,Cu)}get ruleIndex(){return cn.RULE_optionalTargetList}accept(t){return t.visitOptionalTargetList?t.visitOptionalTargetList(this):t.visitChildren(this)}},Cu=class extends ga{constructor(t,e){super(t,e)}targetElement(t){return void 0===t?this.getRuleContexts(_u):this.getRuleContext(t,_u)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_targetList}accept(t){return t.visitTargetList?t.visitTargetList(this):t.visitChildren(this)}},_u=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return cn.RULE_targetElement}copyFrom(t){super.copyFrom(t)}},Pu=class extends _u{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}STAR(){return this.getToken(cn.STAR,0)}accept(t){return t.visitTarget_star?t.visitTarget_star(this):t.visitChildren(this)}},Mu=class extends _u{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}expression1(){return this.getRuleContext(0,wO)}AS(){return this.getToken(cn.AS,0)}columnLabel(){return this.getRuleContext(0,aN)}identifier(){return this.getRuleContext(0,rN)}accept(t){return t.visitTarget_label?t.visitTarget_label(this):t.visitChildren(this)}},du=class extends ga{constructor(t,e){super(t,e)}qualifiedName(t){return void 0===t?this.getRuleContexts(vu):this.getRuleContext(t,vu)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_qualifiedNameList}accept(t){return t.visitQualifiedNameList?t.visitQualifiedNameList(this):t.visitChildren(this)}},Uu=class extends ga{constructor(t,e){super(t,e)}name(){return this.getRuleContext(0,yu)}get ruleIndex(){return cn.RULE_databaseName}accept(t){return t.visitDatabaseName?t.visitDatabaseName(this):t.visitChildren(this)}},mu=class extends ga{constructor(t,e){super(t,e)}databaseName(t){return void 0===t?this.getRuleContexts(Uu):this.getRuleContext(t,Uu)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_databaseNameList}accept(t){return t.visitDatabaseNameList?t.visitDatabaseNameList(this):t.visitChildren(this)}},Du=class extends ga{constructor(t,e){super(t,e)}name(){return this.getRuleContext(0,yu)}get ruleIndex(){return cn.RULE_schemaName}accept(t){return t.visitSchemaName?t.visitSchemaName(this):t.visitChildren(this)}},pu=class extends ga{constructor(t,e){super(t,e)}schemaName(t){return void 0===t?this.getRuleContexts(Du):this.getRuleContext(t,Du)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_schemaNameList}accept(t){return t.visitSchemaNameList?t.visitSchemaNameList(this):t.visitChildren(this)}},gu=class extends ga{constructor(t,e){super(t,e)}qualifiedName(){return this.getRuleContext(0,vu)}get ruleIndex(){return cn.RULE_indexName}accept(t){return t.visitIndexName?t.visitIndexName(this):t.visitChildren(this)}},xu=class extends ga{constructor(t,e){super(t,e)}indexName(t){return void 0===t?this.getRuleContexts(gu):this.getRuleContext(t,gu)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_indexNameList}accept(t){return t.visitIndexNameList?t.visitIndexNameList(this):t.visitChildren(this)}},ku=class extends ga{constructor(t,e){super(t,e)}name(){return this.getRuleContext(0,yu)}get ruleIndex(){return cn.RULE_triggerName}accept(t){return t.visitTriggerName?t.visitTriggerName(this):t.visitChildren(this)}},Hu=class extends ga{constructor(t,e){super(t,e)}name(){return this.getRuleContext(0,yu)}get ruleIndex(){return cn.RULE_constraintName}accept(t){return t.visitConstraintName?t.visitConstraintName(this):t.visitChildren(this)}},Gu=class extends ga{constructor(t,e){super(t,e)}qualifiedName(){return this.getRuleContext(0,vu)}get ruleIndex(){return cn.RULE_sequenceName}accept(t){return t.visitSequenceName?t.visitSequenceName(this):t.visitChildren(this)}},Fu=class extends ga{constructor(t,e){super(t,e)}sequenceName(t){return void 0===t?this.getRuleContexts(Gu):this.getRuleContext(t,Gu)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_sequenceNameList}accept(t){return t.visitSequenceNameList?t.visitSequenceNameList(this):t.visitChildren(this)}},vu=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}indirection(){return this.getRuleContext(0,uu)}get ruleIndex(){return cn.RULE_qualifiedName}accept(t){return t.visitQualifiedName?t.visitQualifiedName(this):t.visitChildren(this)}},Bu=class extends ga{constructor(t,e){super(t,e)}name(t){return void 0===t?this.getRuleContexts(yu):this.getRuleContext(t,yu)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_nameList}accept(t){return t.visitNameList?t.visitNameList(this):t.visitChildren(this)}},yu=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}get ruleIndex(){return cn.RULE_name}accept(t){return t.visitName?t.visitName(this):t.visitChildren(this)}},fu=class extends ga{constructor(t,e){super(t,e)}columnLabel(){return this.getRuleContext(0,aN)}get ruleIndex(){return cn.RULE_attributeName}accept(t){return t.visitAttributeName?t.visitAttributeName(this):t.visitChildren(this)}},Yu=class extends ga{constructor(t,e){super(t,e)}sconst(){return this.getRuleContext(0,Qu)}get ruleIndex(){return cn.RULE_fileName}accept(t){return t.visitFileName?t.visitFileName(this):t.visitChildren(this)}},wu=class extends ga{constructor(t,e){super(t,e)}builtinFunctionName(){return this.getRuleContext(0,TN)}typeFunctionName(){return this.getRuleContext(0,eN)}columnId(){return this.getRuleContext(0,$u)}indirection(){return this.getRuleContext(0,uu)}LEFT(){return this.getToken(cn.LEFT,0)}RIGHT(){return this.getToken(cn.RIGHT,0)}get ruleIndex(){return cn.RULE_functionName}accept(t){return t.visitFunctionName?t.visitFunctionName(this):t.visitChildren(this)}},bu=class extends ga{constructor(t,e){super(t,e)}iconst(){return this.getRuleContext(0,Ku)}fconst(){return this.getRuleContext(0,Xu)}sconst(){return this.getRuleContext(0,Qu)}bconst(){return this.getRuleContext(0,Vu)}xconst(){return this.getRuleContext(0,Wu)}functionName(){return this.getRuleContext(0,wu)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}functionArgumentList(){return this.getRuleContext(0,qI)}optionalSortClause(){return this.getRuleContext(0,Cl)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}constTypeName(){return this.getRuleContext(0,_O)}constInterval(){return this.getRuleContext(0,vO)}optionalInterval(){return this.getRuleContext(0,yO)}TRUE_P(){return this.getToken(cn.TRUE_P,0)}FALSE_P(){return this.getToken(cn.FALSE_P,0)}NULL_P(){return this.getToken(cn.NULL_P,0)}get ruleIndex(){return cn.RULE_aExpressionConst}accept(t){return t.visitAExpressionConst?t.visitAExpressionConst(this):t.visitChildren(this)}},Wu=class extends ga{constructor(t,e){super(t,e)}HexadecimalStringConstant(){return this.getToken(cn.HexadecimalStringConstant,0)}get ruleIndex(){return cn.RULE_xconst}accept(t){return t.visitXconst?t.visitXconst(this):t.visitChildren(this)}},Vu=class extends ga{constructor(t,e){super(t,e)}BinaryStringConstant(){return this.getToken(cn.BinaryStringConstant,0)}get ruleIndex(){return cn.RULE_bconst}accept(t){return t.visitBconst?t.visitBconst(this):t.visitChildren(this)}},Xu=class extends ga{constructor(t,e){super(t,e)}Numeric(){return this.getToken(cn.Numeric,0)}get ruleIndex(){return cn.RULE_fconst}accept(t){return t.visitFconst?t.visitFconst(this):t.visitChildren(this)}},Ku=class extends ga{constructor(t,e){super(t,e)}Integral(){return this.getToken(cn.Integral,0)}get ruleIndex(){return cn.RULE_iconst}accept(t){return t.visitIconst?t.visitIconst(this):t.visitChildren(this)}},Qu=class extends ga{constructor(t,e){super(t,e)}anySconst(){return this.getRuleContext(0,Ju)}optionalUescape(){return this.getRuleContext(0,Zu)}get ruleIndex(){return cn.RULE_sconst}accept(t){return t.visitSconst?t.visitSconst(this):t.visitChildren(this)}},Ju=class extends ga{constructor(t,e){super(t,e)}StringConstant(){return this.getToken(cn.StringConstant,0)}UnicodeEscapeStringConstant(){return this.getToken(cn.UnicodeEscapeStringConstant,0)}BeginDollarStringConstant(){return this.getToken(cn.BeginDollarStringConstant,0)}EndDollarStringConstant(){return this.getToken(cn.EndDollarStringConstant,0)}DollarText(t){return void 0===t?this.getTokens(cn.DollarText):this.getToken(cn.DollarText,t)}EscapeStringConstant(){return this.getToken(cn.EscapeStringConstant,0)}get ruleIndex(){return cn.RULE_anySconst}accept(t){return t.visitAnySconst?t.visitAnySconst(this):t.visitChildren(this)}},Zu=class extends ga{constructor(t,e){super(t,e)}UESCAPE(){return this.getToken(cn.UESCAPE,0)}anySconst(){return this.getRuleContext(0,Ju)}get ruleIndex(){return cn.RULE_optionalUescape}accept(t){return t.visitOptionalUescape?t.visitOptionalUescape(this):t.visitChildren(this)}},qu=class extends ga{constructor(t,e){super(t,e)}iconst(){return this.getRuleContext(0,Ku)}PLUS(){return this.getToken(cn.PLUS,0)}MINUS(){return this.getToken(cn.MINUS,0)}get ruleIndex(){return cn.RULE_signedIconst}accept(t){return t.visitSignedIconst?t.visitSignedIconst(this):t.visitChildren(this)}},ju=class extends ga{constructor(t,e){super(t,e)}nonReservedWord(){return this.getRuleContext(0,sN)}CURRENT_USER(){return this.getToken(cn.CURRENT_USER,0)}SESSION_USER(){return this.getToken(cn.SESSION_USER,0)}get ruleIndex(){return cn.RULE_roleName}accept(t){return t.visitRoleName?t.visitRoleName(this):t.visitChildren(this)}},zu=class extends ga{constructor(t,e){super(t,e)}roleName(t){return void 0===t?this.getRuleContexts(ju):this.getRuleContext(t,ju)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_roleNameList}accept(t){return t.visitRoleNameList?t.visitRoleNameList(this):t.visitChildren(this)}},$u=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,rN)}unreservedKeyword(){return this.getRuleContext(0,cN)}columnNameKeyword(){return this.getRuleContext(0,nN)}plsqlUnreservedKeyword(){return this.getRuleContext(0,rC)}LEFT(){return this.getToken(cn.LEFT,0)}RIGHT(){return this.getToken(cn.RIGHT,0)}get ruleIndex(){return cn.RULE_columnId}accept(t){return t.visitColumnId?t.visitColumnId(this):t.visitChildren(this)}},tN=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,rN)}unreservedKeyword(){return this.getRuleContext(0,cN)}columnNameKeyword(){return this.getRuleContext(0,nN)}plsqlUnreservedKeyword(){return this.getRuleContext(0,rC)}get ruleIndex(){return cn.RULE_tableAlias}accept(t){return t.visitTableAlias?t.visitTableAlias(this):t.visitChildren(this)}},eN=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,rN)}unreservedKeyword(){return this.getRuleContext(0,cN)}plsqlUnreservedKeyword(){return this.getRuleContext(0,rC)}typeFunctionNameKeyword(){return this.getRuleContext(0,hN)}get ruleIndex(){return cn.RULE_typeFunctionName}accept(t){return t.visitTypeFunctionName?t.visitTypeFunctionName(this):t.visitChildren(this)}},sN=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,rN)}unreservedKeyword(){return this.getRuleContext(0,cN)}columnNameKeyword(){return this.getRuleContext(0,nN)}typeFunctionNameKeyword(){return this.getRuleContext(0,hN)}get ruleIndex(){return cn.RULE_nonReservedWord}accept(t){return t.visitNonReservedWord?t.visitNonReservedWord(this):t.visitChildren(this)}},aN=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,rN)}plsqlUnreservedKeyword(){return this.getRuleContext(0,rC)}unreservedKeyword(){return this.getRuleContext(0,cN)}columnNameKeyword(){return this.getRuleContext(0,nN)}typeFunctionNameKeyword(){return this.getRuleContext(0,hN)}reservedKeyword(){return this.getRuleContext(0,EN)}get ruleIndex(){return cn.RULE_columnLabel}accept(t){return t.visitColumnLabel?t.visitColumnLabel(this):t.visitChildren(this)}},rN=class extends ga{constructor(t,e){super(t,e)}Identifier(){return this.getToken(cn.Identifier,0)}optionalUescape(){return this.getRuleContext(0,Zu)}QuotedIdentifier(){return this.getToken(cn.QuotedIdentifier,0)}UnicodeQuotedIdentifier(){return this.getToken(cn.UnicodeQuotedIdentifier,0)}plsqlVariableName(){return this.getRuleContext(0,AI)}plsqlIdentifier(){return this.getRuleContext(0,iN)}plsqlUnreservedKeyword(){return this.getRuleContext(0,rC)}get ruleIndex(){return cn.RULE_identifier}accept(t){return t.visitIdentifier?t.visitIdentifier(this):t.visitChildren(this)}},iN=class extends ga{constructor(t,e){super(t,e)}PLSQLIDENTIFIER(){return this.getToken(cn.PLSQLIDENTIFIER,0)}get ruleIndex(){return cn.RULE_plsqlIdentifier}accept(t){return t.visitPlsqlIdentifier?t.visitPlsqlIdentifier(this):t.visitChildren(this)}},cN=class extends ga{constructor(t,e){super(t,e)}ABORT_P(){return this.getToken(cn.ABORT_P,0)}ABSOLUTE_P(){return this.getToken(cn.ABSOLUTE_P,0)}ACCESS(){return this.getToken(cn.ACCESS,0)}ACTION(){return this.getToken(cn.ACTION,0)}ADD_P(){return this.getToken(cn.ADD_P,0)}ADMIN(){return this.getToken(cn.ADMIN,0)}AFTER(){return this.getToken(cn.AFTER,0)}AGGREGATE(){return this.getToken(cn.AGGREGATE,0)}ALSO(){return this.getToken(cn.ALSO,0)}ALTER(){return this.getToken(cn.ALTER,0)}ALWAYS(){return this.getToken(cn.ALWAYS,0)}ASSERTION(){return this.getToken(cn.ASSERTION,0)}ASSIGNMENT(){return this.getToken(cn.ASSIGNMENT,0)}AT(){return this.getToken(cn.AT,0)}ATTACH(){return this.getToken(cn.ATTACH,0)}ATTRIBUTE(){return this.getToken(cn.ATTRIBUTE,0)}BACKWARD(){return this.getToken(cn.BACKWARD,0)}BEFORE(){return this.getToken(cn.BEFORE,0)}BEGIN_P(){return this.getToken(cn.BEGIN_P,0)}BY(){return this.getToken(cn.BY,0)}CACHE(){return this.getToken(cn.CACHE,0)}CALL(){return this.getToken(cn.CALL,0)}CALLED(){return this.getToken(cn.CALLED,0)}CASCADE(){return this.getToken(cn.CASCADE,0)}CASCADED(){return this.getToken(cn.CASCADED,0)}CATALOG(){return this.getToken(cn.CATALOG,0)}CHAIN(){return this.getToken(cn.CHAIN,0)}CHARACTERISTICS(){return this.getToken(cn.CHARACTERISTICS,0)}CHECKPOINT(){return this.getToken(cn.CHECKPOINT,0)}CLASS(){return this.getToken(cn.CLASS,0)}CLOSE(){return this.getToken(cn.CLOSE,0)}CLUSTER(){return this.getToken(cn.CLUSTER,0)}COLUMNS(){return this.getToken(cn.COLUMNS,0)}COMMENT(){return this.getToken(cn.COMMENT,0)}COMMENTS(){return this.getToken(cn.COMMENTS,0)}COMMIT(){return this.getToken(cn.COMMIT,0)}COMMITTED(){return this.getToken(cn.COMMITTED,0)}CONFIGURATION(){return this.getToken(cn.CONFIGURATION,0)}CONFLICT(){return this.getToken(cn.CONFLICT,0)}CONNECTION(){return this.getToken(cn.CONNECTION,0)}CONSTRAINTS(){return this.getToken(cn.CONSTRAINTS,0)}CONTENT_P(){return this.getToken(cn.CONTENT_P,0)}CONTINUE_P(){return this.getToken(cn.CONTINUE_P,0)}CONVERSION_P(){return this.getToken(cn.CONVERSION_P,0)}COPY(){return this.getToken(cn.COPY,0)}COST(){return this.getToken(cn.COST,0)}CSV(){return this.getToken(cn.CSV,0)}CUBE(){return this.getToken(cn.CUBE,0)}CURRENT_P(){return this.getToken(cn.CURRENT_P,0)}CURSOR(){return this.getToken(cn.CURSOR,0)}CYCLE(){return this.getToken(cn.CYCLE,0)}DATA_P(){return this.getToken(cn.DATA_P,0)}DATABASE(){return this.getToken(cn.DATABASE,0)}DAY_P(){return this.getToken(cn.DAY_P,0)}DEALLOCATE(){return this.getToken(cn.DEALLOCATE,0)}DECLARE(){return this.getToken(cn.DECLARE,0)}DEFAULTS(){return this.getToken(cn.DEFAULTS,0)}DEFERRED(){return this.getToken(cn.DEFERRED,0)}DEFINER(){return this.getToken(cn.DEFINER,0)}DELETE_P(){return this.getToken(cn.DELETE_P,0)}DELIMITER(){return this.getToken(cn.DELIMITER,0)}DELIMITERS(){return this.getToken(cn.DELIMITERS,0)}DEPENDS(){return this.getToken(cn.DEPENDS,0)}DETACH(){return this.getToken(cn.DETACH,0)}DICTIONARY(){return this.getToken(cn.DICTIONARY,0)}DISABLE_P(){return this.getToken(cn.DISABLE_P,0)}DISCARD(){return this.getToken(cn.DISCARD,0)}DOCUMENT_P(){return this.getToken(cn.DOCUMENT_P,0)}DOMAIN_P(){return this.getToken(cn.DOMAIN_P,0)}DOUBLE_P(){return this.getToken(cn.DOUBLE_P,0)}DROP(){return this.getToken(cn.DROP,0)}EACH(){return this.getToken(cn.EACH,0)}ENABLE_P(){return this.getToken(cn.ENABLE_P,0)}ENCODING(){return this.getToken(cn.ENCODING,0)}ENCRYPTED(){return this.getToken(cn.ENCRYPTED,0)}ENUM_P(){return this.getToken(cn.ENUM_P,0)}ESCAPE(){return this.getToken(cn.ESCAPE,0)}EVENT(){return this.getToken(cn.EVENT,0)}EXCLUDE(){return this.getToken(cn.EXCLUDE,0)}EXCLUDING(){return this.getToken(cn.EXCLUDING,0)}EXCLUSIVE(){return this.getToken(cn.EXCLUSIVE,0)}EXECUTE(){return this.getToken(cn.EXECUTE,0)}EXPLAIN(){return this.getToken(cn.EXPLAIN,0)}EXPRESSION(){return this.getToken(cn.EXPRESSION,0)}EXTENSION(){return this.getToken(cn.EXTENSION,0)}EXTERNAL(){return this.getToken(cn.EXTERNAL,0)}FAMILY(){return this.getToken(cn.FAMILY,0)}FILTER(){return this.getToken(cn.FILTER,0)}FIRST_P(){return this.getToken(cn.FIRST_P,0)}FOLLOWING(){return this.getToken(cn.FOLLOWING,0)}FORCE(){return this.getToken(cn.FORCE,0)}FORWARD(){return this.getToken(cn.FORWARD,0)}FUNCTION(){return this.getToken(cn.FUNCTION,0)}FUNCTIONS(){return this.getToken(cn.FUNCTIONS,0)}GENERATED(){return this.getToken(cn.GENERATED,0)}GLOBAL(){return this.getToken(cn.GLOBAL,0)}GRANTED(){return this.getToken(cn.GRANTED,0)}GROUPS(){return this.getToken(cn.GROUPS,0)}HANDLER(){return this.getToken(cn.HANDLER,0)}HEADER_P(){return this.getToken(cn.HEADER_P,0)}HOLD(){return this.getToken(cn.HOLD,0)}HOUR_P(){return this.getToken(cn.HOUR_P,0)}IDENTITY_P(){return this.getToken(cn.IDENTITY_P,0)}IF_P(){return this.getToken(cn.IF_P,0)}IMMEDIATE(){return this.getToken(cn.IMMEDIATE,0)}IMMUTABLE(){return this.getToken(cn.IMMUTABLE,0)}IMPLICIT_P(){return this.getToken(cn.IMPLICIT_P,0)}IMPORT_P(){return this.getToken(cn.IMPORT_P,0)}INCLUDE(){return this.getToken(cn.INCLUDE,0)}INCLUDING(){return this.getToken(cn.INCLUDING,0)}INCREMENT(){return this.getToken(cn.INCREMENT,0)}INDEX(){return this.getToken(cn.INDEX,0)}INDEXES(){return this.getToken(cn.INDEXES,0)}INHERIT(){return this.getToken(cn.INHERIT,0)}INHERITS(){return this.getToken(cn.INHERITS,0)}INLINE_P(){return this.getToken(cn.INLINE_P,0)}INPUT_P(){return this.getToken(cn.INPUT_P,0)}INSENSITIVE(){return this.getToken(cn.INSENSITIVE,0)}INSERT(){return this.getToken(cn.INSERT,0)}INSTEAD(){return this.getToken(cn.INSTEAD,0)}INVOKER(){return this.getToken(cn.INVOKER,0)}ISOLATION(){return this.getToken(cn.ISOLATION,0)}KEY(){return this.getToken(cn.KEY,0)}LABEL(){return this.getToken(cn.LABEL,0)}LANGUAGE(){return this.getToken(cn.LANGUAGE,0)}LARGE_P(){return this.getToken(cn.LARGE_P,0)}LAST_P(){return this.getToken(cn.LAST_P,0)}LEAKPROOF(){return this.getToken(cn.LEAKPROOF,0)}LEVEL(){return this.getToken(cn.LEVEL,0)}LISTEN(){return this.getToken(cn.LISTEN,0)}LOAD(){return this.getToken(cn.LOAD,0)}LOCAL(){return this.getToken(cn.LOCAL,0)}LOCATION(){return this.getToken(cn.LOCATION,0)}LOCK_P(){return this.getToken(cn.LOCK_P,0)}LOCKED(){return this.getToken(cn.LOCKED,0)}LOGGED(){return this.getToken(cn.LOGGED,0)}MAPPING(){return this.getToken(cn.MAPPING,0)}MATCH(){return this.getToken(cn.MATCH,0)}MATERIALIZED(){return this.getToken(cn.MATERIALIZED,0)}MAXVALUE(){return this.getToken(cn.MAXVALUE,0)}METHOD(){return this.getToken(cn.METHOD,0)}MINUTE_P(){return this.getToken(cn.MINUTE_P,0)}MINVALUE(){return this.getToken(cn.MINVALUE,0)}MODE(){return this.getToken(cn.MODE,0)}MONTH_P(){return this.getToken(cn.MONTH_P,0)}MOVE(){return this.getToken(cn.MOVE,0)}NAME_P(){return this.getToken(cn.NAME_P,0)}NAMES(){return this.getToken(cn.NAMES,0)}NEW(){return this.getToken(cn.NEW,0)}NEXT(){return this.getToken(cn.NEXT,0)}NFC(){return this.getToken(cn.NFC,0)}NFD(){return this.getToken(cn.NFD,0)}NFKC(){return this.getToken(cn.NFKC,0)}NFKD(){return this.getToken(cn.NFKD,0)}NO(){return this.getToken(cn.NO,0)}NORMALIZED(){return this.getToken(cn.NORMALIZED,0)}NOTHING(){return this.getToken(cn.NOTHING,0)}NOTIFY(){return this.getToken(cn.NOTIFY,0)}NOWAIT(){return this.getToken(cn.NOWAIT,0)}NULLS_P(){return this.getToken(cn.NULLS_P,0)}OBJECT_P(){return this.getToken(cn.OBJECT_P,0)}OF(){return this.getToken(cn.OF,0)}OFF(){return this.getToken(cn.OFF,0)}OIDS(){return this.getToken(cn.OIDS,0)}OLD(){return this.getToken(cn.OLD,0)}OPERATOR(){return this.getToken(cn.OPERATOR,0)}OPTION(){return this.getToken(cn.OPTION,0)}OPTIONS(){return this.getToken(cn.OPTIONS,0)}ORDINALITY(){return this.getToken(cn.ORDINALITY,0)}OTHERS(){return this.getToken(cn.OTHERS,0)}OVER(){return this.getToken(cn.OVER,0)}OVERRIDING(){return this.getToken(cn.OVERRIDING,0)}OWNED(){return this.getToken(cn.OWNED,0)}OWNER(){return this.getToken(cn.OWNER,0)}PARALLEL(){return this.getToken(cn.PARALLEL,0)}PARSER(){return this.getToken(cn.PARSER,0)}PARTIAL(){return this.getToken(cn.PARTIAL,0)}PARTITION(){return this.getToken(cn.PARTITION,0)}PASSING(){return this.getToken(cn.PASSING,0)}PASSWORD(){return this.getToken(cn.PASSWORD,0)}PLANS(){return this.getToken(cn.PLANS,0)}POLICY(){return this.getToken(cn.POLICY,0)}PRECEDING(){return this.getToken(cn.PRECEDING,0)}PREPARE(){return this.getToken(cn.PREPARE,0)}PREPARED(){return this.getToken(cn.PREPARED,0)}PRESERVE(){return this.getToken(cn.PRESERVE,0)}PRIOR(){return this.getToken(cn.PRIOR,0)}PRIVILEGES(){return this.getToken(cn.PRIVILEGES,0)}PROCEDURAL(){return this.getToken(cn.PROCEDURAL,0)}PROCEDURE(){return this.getToken(cn.PROCEDURE,0)}PROCEDURES(){return this.getToken(cn.PROCEDURES,0)}PROGRAM(){return this.getToken(cn.PROGRAM,0)}PUBLICATION(){return this.getToken(cn.PUBLICATION,0)}QUOTE(){return this.getToken(cn.QUOTE,0)}RANGE(){return this.getToken(cn.RANGE,0)}READ(){return this.getToken(cn.READ,0)}REASSIGN(){return this.getToken(cn.REASSIGN,0)}RECHECK(){return this.getToken(cn.RECHECK,0)}RECURSIVE(){return this.getToken(cn.RECURSIVE,0)}REF(){return this.getToken(cn.REF,0)}REFERENCING(){return this.getToken(cn.REFERENCING,0)}REFRESH(){return this.getToken(cn.REFRESH,0)}REINDEX(){return this.getToken(cn.REINDEX,0)}RELATIVE_P(){return this.getToken(cn.RELATIVE_P,0)}RELEASE(){return this.getToken(cn.RELEASE,0)}RENAME(){return this.getToken(cn.RENAME,0)}REPEATABLE(){return this.getToken(cn.REPEATABLE,0)}REPLICA(){return this.getToken(cn.REPLICA,0)}RESET(){return this.getToken(cn.RESET,0)}RESTART(){return this.getToken(cn.RESTART,0)}RESTRICT(){return this.getToken(cn.RESTRICT,0)}RETURNS(){return this.getToken(cn.RETURNS,0)}REVOKE(){return this.getToken(cn.REVOKE,0)}ROLE(){return this.getToken(cn.ROLE,0)}ROLLBACK(){return this.getToken(cn.ROLLBACK,0)}ROLLUP(){return this.getToken(cn.ROLLUP,0)}ROUTINE(){return this.getToken(cn.ROUTINE,0)}ROUTINES(){return this.getToken(cn.ROUTINES,0)}ROWS(){return this.getToken(cn.ROWS,0)}RULE(){return this.getToken(cn.RULE,0)}SAVEPOINT(){return this.getToken(cn.SAVEPOINT,0)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}SCHEMAS(){return this.getToken(cn.SCHEMAS,0)}SCROLL(){return this.getToken(cn.SCROLL,0)}SEARCH(){return this.getToken(cn.SEARCH,0)}SECOND_P(){return this.getToken(cn.SECOND_P,0)}SECURITY(){return this.getToken(cn.SECURITY,0)}SEQUENCE(){return this.getToken(cn.SEQUENCE,0)}SEQUENCES(){return this.getToken(cn.SEQUENCES,0)}SERIALIZABLE(){return this.getToken(cn.SERIALIZABLE,0)}SERVER(){return this.getToken(cn.SERVER,0)}SESSION(){return this.getToken(cn.SESSION,0)}SET(){return this.getToken(cn.SET,0)}SETS(){return this.getToken(cn.SETS,0)}SHARE(){return this.getToken(cn.SHARE,0)}SHOW(){return this.getToken(cn.SHOW,0)}SIMPLE(){return this.getToken(cn.SIMPLE,0)}SKIP_P(){return this.getToken(cn.SKIP_P,0)}SNAPSHOT(){return this.getToken(cn.SNAPSHOT,0)}SQL_P(){return this.getToken(cn.SQL_P,0)}STABLE(){return this.getToken(cn.STABLE,0)}STANDALONE_P(){return this.getToken(cn.STANDALONE_P,0)}START(){return this.getToken(cn.START,0)}STATEMENT(){return this.getToken(cn.STATEMENT,0)}STATISTICS(){return this.getToken(cn.STATISTICS,0)}STDIN(){return this.getToken(cn.STDIN,0)}STDOUT(){return this.getToken(cn.STDOUT,0)}STORAGE(){return this.getToken(cn.STORAGE,0)}STORED(){return this.getToken(cn.STORED,0)}STRICT_P(){return this.getToken(cn.STRICT_P,0)}STRIP_P(){return this.getToken(cn.STRIP_P,0)}SUBSCRIPTION(){return this.getToken(cn.SUBSCRIPTION,0)}SUPPORT(){return this.getToken(cn.SUPPORT,0)}SYSID(){return this.getToken(cn.SYSID,0)}SYSTEM_P(){return this.getToken(cn.SYSTEM_P,0)}TABLES(){return this.getToken(cn.TABLES,0)}TABLESPACE(){return this.getToken(cn.TABLESPACE,0)}TEMP(){return this.getToken(cn.TEMP,0)}TEMPLATE(){return this.getToken(cn.TEMPLATE,0)}TEMPORARY(){return this.getToken(cn.TEMPORARY,0)}TEXT_P(){return this.getToken(cn.TEXT_P,0)}TIES(){return this.getToken(cn.TIES,0)}TRANSACTION(){return this.getToken(cn.TRANSACTION,0)}TRANSFORM(){return this.getToken(cn.TRANSFORM,0)}TRIGGER(){return this.getToken(cn.TRIGGER,0)}TRUNCATE(){return this.getToken(cn.TRUNCATE,0)}TRUSTED(){return this.getToken(cn.TRUSTED,0)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}TYPES_P(){return this.getToken(cn.TYPES_P,0)}UESCAPE(){return this.getToken(cn.UESCAPE,0)}UNBOUNDED(){return this.getToken(cn.UNBOUNDED,0)}UNCOMMITTED(){return this.getToken(cn.UNCOMMITTED,0)}UNENCRYPTED(){return this.getToken(cn.UNENCRYPTED,0)}UNKNOWN(){return this.getToken(cn.UNKNOWN,0)}UNLISTEN(){return this.getToken(cn.UNLISTEN,0)}UNLOGGED(){return this.getToken(cn.UNLOGGED,0)}UNTIL(){return this.getToken(cn.UNTIL,0)}UPDATE(){return this.getToken(cn.UPDATE,0)}VACUUM(){return this.getToken(cn.VACUUM,0)}VALID(){return this.getToken(cn.VALID,0)}VALIDATE(){return this.getToken(cn.VALIDATE,0)}VALIDATOR(){return this.getToken(cn.VALIDATOR,0)}VALUE_P(){return this.getToken(cn.VALUE_P,0)}VARYING(){return this.getToken(cn.VARYING,0)}VERSION_P(){return this.getToken(cn.VERSION_P,0)}VIEW(){return this.getToken(cn.VIEW,0)}VIEWS(){return this.getToken(cn.VIEWS,0)}VOLATILE(){return this.getToken(cn.VOLATILE,0)}WHITESPACE_P(){return this.getToken(cn.WHITESPACE_P,0)}WITHIN(){return this.getToken(cn.WITHIN,0)}WITHOUT(){return this.getToken(cn.WITHOUT,0)}WORK(){return this.getToken(cn.WORK,0)}WRAPPER(){return this.getToken(cn.WRAPPER,0)}WRITE(){return this.getToken(cn.WRITE,0)}XML_P(){return this.getToken(cn.XML_P,0)}YEAR_P(){return this.getToken(cn.YEAR_P,0)}YES_P(){return this.getToken(cn.YES_P,0)}ZONE(){return this.getToken(cn.ZONE,0)}get ruleIndex(){return cn.RULE_unreservedKeyword}accept(t){return t.visitUnreservedKeyword?t.visitUnreservedKeyword(this):t.visitChildren(this)}},nN=class extends ga{constructor(t,e){super(t,e)}BETWEEN(){return this.getToken(cn.BETWEEN,0)}BIGINT(){return this.getToken(cn.BIGINT,0)}bit(){return this.getRuleContext(0,mO)}BOOLEAN_P(){return this.getToken(cn.BOOLEAN_P,0)}CHAR_P(){return this.getToken(cn.CHAR_P,0)}character(){return this.getRuleContext(0,xO)}COALESCE(){return this.getToken(cn.COALESCE,0)}DEC(){return this.getToken(cn.DEC,0)}DECIMAL_P(){return this.getToken(cn.DECIMAL_P,0)}EXISTS(){return this.getToken(cn.EXISTS,0)}EXTRACT(){return this.getToken(cn.EXTRACT,0)}FLOAT_P(){return this.getToken(cn.FLOAT_P,0)}GREATEST(){return this.getToken(cn.GREATEST,0)}GROUPING(){return this.getToken(cn.GROUPING,0)}INOUT(){return this.getToken(cn.INOUT,0)}INT_P(){return this.getToken(cn.INT_P,0)}INTEGER(){return this.getToken(cn.INTEGER,0)}INTERVAL(){return this.getToken(cn.INTERVAL,0)}LEAST(){return this.getToken(cn.LEAST,0)}NATIONAL(){return this.getToken(cn.NATIONAL,0)}NCHAR(){return this.getToken(cn.NCHAR,0)}NONE(){return this.getToken(cn.NONE,0)}NORMALIZE(){return this.getToken(cn.NORMALIZE,0)}NULLIF(){return this.getToken(cn.NULLIF,0)}numeric(){return this.getRuleContext(0,dO)}OUT_P(){return this.getToken(cn.OUT_P,0)}OVERLAY(){return this.getToken(cn.OVERLAY,0)}POSITION(){return this.getToken(cn.POSITION,0)}PRECISION(){return this.getToken(cn.PRECISION,0)}REAL(){return this.getToken(cn.REAL,0)}ROW(){return this.getToken(cn.ROW,0)}SETOF(){return this.getToken(cn.SETOF,0)}SMALLINT(){return this.getToken(cn.SMALLINT,0)}SUBSTRING(){return this.getToken(cn.SUBSTRING,0)}TIME(){return this.getToken(cn.TIME,0)}TIMESTAMP(){return this.getToken(cn.TIMESTAMP,0)}TREAT(){return this.getToken(cn.TREAT,0)}TRIM(){return this.getToken(cn.TRIM,0)}VALUES(){return this.getToken(cn.VALUES,0)}VARCHAR(){return this.getToken(cn.VARCHAR,0)}XMLATTRIBUTES(){return this.getToken(cn.XMLATTRIBUTES,0)}XMLCONCAT(){return this.getToken(cn.XMLCONCAT,0)}XMLELEMENT(){return this.getToken(cn.XMLELEMENT,0)}XMLEXISTS(){return this.getToken(cn.XMLEXISTS,0)}XMLFOREST(){return this.getToken(cn.XMLFOREST,0)}XMLNAMESPACES(){return this.getToken(cn.XMLNAMESPACES,0)}XMLPARSE(){return this.getToken(cn.XMLPARSE,0)}XMLPI(){return this.getToken(cn.XMLPI,0)}XMLROOT(){return this.getToken(cn.XMLROOT,0)}XMLSERIALIZE(){return this.getToken(cn.XMLSERIALIZE,0)}XMLTABLE(){return this.getToken(cn.XMLTABLE,0)}builtinFunctionName(){return this.getRuleContext(0,TN)}get ruleIndex(){return cn.RULE_columnNameKeyword}accept(t){return t.visitColumnNameKeyword?t.visitColumnNameKeyword(this):t.visitChildren(this)}},hN=class extends ga{constructor(t,e){super(t,e)}AUTHORIZATION(){return this.getToken(cn.AUTHORIZATION,0)}BINARY(){return this.getToken(cn.BINARY,0)}COLLATION(){return this.getToken(cn.COLLATION,0)}CONCURRENTLY(){return this.getToken(cn.CONCURRENTLY,0)}CROSS(){return this.getToken(cn.CROSS,0)}CURRENT_SCHEMA(){return this.getToken(cn.CURRENT_SCHEMA,0)}FREEZE(){return this.getToken(cn.FREEZE,0)}FULL(){return this.getToken(cn.FULL,0)}ILIKE(){return this.getToken(cn.ILIKE,0)}INNER_P(){return this.getToken(cn.INNER_P,0)}IS(){return this.getToken(cn.IS,0)}ISNULL(){return this.getToken(cn.ISNULL,0)}JOIN(){return this.getToken(cn.JOIN,0)}LIKE(){return this.getToken(cn.LIKE,0)}NATURAL(){return this.getToken(cn.NATURAL,0)}NOTNULL(){return this.getToken(cn.NOTNULL,0)}OUTER_P(){return this.getToken(cn.OUTER_P,0)}OVERLAPS(){return this.getToken(cn.OVERLAPS,0)}SIMILAR(){return this.getToken(cn.SIMILAR,0)}TABLESAMPLE(){return this.getToken(cn.TABLESAMPLE,0)}VERBOSE(){return this.getToken(cn.VERBOSE,0)}get ruleIndex(){return cn.RULE_typeFunctionNameKeyword}accept(t){return t.visitTypeFunctionNameKeyword?t.visitTypeFunctionNameKeyword(this):t.visitChildren(this)}},EN=class extends ga{constructor(t,e){super(t,e)}ALL(){return this.getToken(cn.ALL,0)}ANALYSE(){return this.getToken(cn.ANALYSE,0)}ANALYZE(){return this.getToken(cn.ANALYZE,0)}AND(){return this.getToken(cn.AND,0)}ANY(){return this.getToken(cn.ANY,0)}ARRAY(){return this.getToken(cn.ARRAY,0)}AS(){return this.getToken(cn.AS,0)}ASC(){return this.getToken(cn.ASC,0)}ASYMMETRIC(){return this.getToken(cn.ASYMMETRIC,0)}BOTH(){return this.getToken(cn.BOTH,0)}CASE(){return this.getToken(cn.CASE,0)}CAST(){return this.getToken(cn.CAST,0)}CHECK(){return this.getToken(cn.CHECK,0)}COLLATE(){return this.getToken(cn.COLLATE,0)}COLUMN(){return this.getToken(cn.COLUMN,0)}CONSTRAINT(){return this.getToken(cn.CONSTRAINT,0)}CREATE(){return this.getToken(cn.CREATE,0)}CURRENT_CATALOG(){return this.getToken(cn.CURRENT_CATALOG,0)}CURRENT_DATE(){return this.getToken(cn.CURRENT_DATE,0)}CURRENT_ROLE(){return this.getToken(cn.CURRENT_ROLE,0)}CURRENT_TIME(){return this.getToken(cn.CURRENT_TIME,0)}CURRENT_TIMESTAMP(){return this.getToken(cn.CURRENT_TIMESTAMP,0)}CURRENT_USER(){return this.getToken(cn.CURRENT_USER,0)}DEFERRABLE(){return this.getToken(cn.DEFERRABLE,0)}DESC(){return this.getToken(cn.DESC,0)}DISTINCT(){return this.getToken(cn.DISTINCT,0)}DO(){return this.getToken(cn.DO,0)}ELSE(){return this.getToken(cn.ELSE,0)}END_P(){return this.getToken(cn.END_P,0)}EXCEPT(){return this.getToken(cn.EXCEPT,0)}FALSE_P(){return this.getToken(cn.FALSE_P,0)}FETCH(){return this.getToken(cn.FETCH,0)}FOR(){return this.getToken(cn.FOR,0)}FOREIGN(){return this.getToken(cn.FOREIGN,0)}FROM(){return this.getToken(cn.FROM,0)}GRANT(){return this.getToken(cn.GRANT,0)}GROUP_P(){return this.getToken(cn.GROUP_P,0)}HAVING(){return this.getToken(cn.HAVING,0)}IN_P(){return this.getToken(cn.IN_P,0)}INITIALLY(){return this.getToken(cn.INITIALLY,0)}INTERSECT(){return this.getToken(cn.INTERSECT,0)}LATERAL_P(){return this.getToken(cn.LATERAL_P,0)}LEADING(){return this.getToken(cn.LEADING,0)}LIMIT(){return this.getToken(cn.LIMIT,0)}LOCALTIME(){return this.getToken(cn.LOCALTIME,0)}LOCALTIMESTAMP(){return this.getToken(cn.LOCALTIMESTAMP,0)}NOT(){return this.getToken(cn.NOT,0)}NULL_P(){return this.getToken(cn.NULL_P,0)}OFFSET(){return this.getToken(cn.OFFSET,0)}ON(){return this.getToken(cn.ON,0)}ONLY(){return this.getToken(cn.ONLY,0)}OR(){return this.getToken(cn.OR,0)}ORDER(){return this.getToken(cn.ORDER,0)}PLACING(){return this.getToken(cn.PLACING,0)}PRIMARY(){return this.getToken(cn.PRIMARY,0)}REFERENCES(){return this.getToken(cn.REFERENCES,0)}RETURNING(){return this.getToken(cn.RETURNING,0)}SELECT(){return this.getToken(cn.SELECT,0)}SESSION_USER(){return this.getToken(cn.SESSION_USER,0)}SOME(){return this.getToken(cn.SOME,0)}SYMMETRIC(){return this.getToken(cn.SYMMETRIC,0)}TABLE(){return this.getToken(cn.TABLE,0)}THEN(){return this.getToken(cn.THEN,0)}TO(){return this.getToken(cn.TO,0)}TRAILING(){return this.getToken(cn.TRAILING,0)}TRUE_P(){return this.getToken(cn.TRUE_P,0)}UNION(){return this.getToken(cn.UNION,0)}UNIQUE(){return this.getToken(cn.UNIQUE,0)}USER(){return this.getToken(cn.USER,0)}USING(){return this.getToken(cn.USING,0)}VARIADIC(){return this.getToken(cn.VARIADIC,0)}WHEN(){return this.getToken(cn.WHEN,0)}WHERE(){return this.getToken(cn.WHERE,0)}WINDOW(){return this.getToken(cn.WINDOW,0)}WITH(){return this.getToken(cn.WITH,0)}get ruleIndex(){return cn.RULE_reservedKeyword}accept(t){return t.visitReservedKeyword?t.visitReservedKeyword(this):t.visitChildren(this)}},TN=class extends ga{constructor(t,e){super(t,e)}XMLCOMMENT(){return this.getToken(cn.XMLCOMMENT,0)}XML_IS_WELL_FORMED(){return this.getToken(cn.XML_IS_WELL_FORMED,0)}XML_IS_WELL_FORMED_DOCUMENT(){return this.getToken(cn.XML_IS_WELL_FORMED_DOCUMENT,0)}XML_IS_WELL_FORMED_CONTENT(){return this.getToken(cn.XML_IS_WELL_FORMED_CONTENT,0)}XMLAGG(){return this.getToken(cn.XMLAGG,0)}XPATH(){return this.getToken(cn.XPATH,0)}XPATH_EXISTS(){return this.getToken(cn.XPATH_EXISTS,0)}ABS(){return this.getToken(cn.ABS,0)}CBRT(){return this.getToken(cn.CBRT,0)}CEIL(){return this.getToken(cn.CEIL,0)}CEILING(){return this.getToken(cn.CEILING,0)}DEGREES(){return this.getToken(cn.DEGREES,0)}DIV(){return this.getToken(cn.DIV,0)}EXP(){return this.getToken(cn.EXP,0)}FACTORIAL(){return this.getToken(cn.FACTORIAL,0)}FLOOR(){return this.getToken(cn.FLOOR,0)}GCD(){return this.getToken(cn.GCD,0)}LCM(){return this.getToken(cn.LCM,0)}LN(){return this.getToken(cn.LN,0)}LOG(){return this.getToken(cn.LOG,0)}LOG10(){return this.getToken(cn.LOG10,0)}MIN_SCALE(){return this.getToken(cn.MIN_SCALE,0)}MOD(){return this.getToken(cn.MOD,0)}PI(){return this.getToken(cn.PI,0)}POWER(){return this.getToken(cn.POWER,0)}RADIANS(){return this.getToken(cn.RADIANS,0)}ROUND(){return this.getToken(cn.ROUND,0)}SCALE(){return this.getToken(cn.SCALE,0)}SIGN(){return this.getToken(cn.SIGN,0)}SQRT(){return this.getToken(cn.SQRT,0)}TRIM_SCALE(){return this.getToken(cn.TRIM_SCALE,0)}TRUNC(){return this.getToken(cn.TRUNC,0)}WIDTH_BUCKET(){return this.getToken(cn.WIDTH_BUCKET,0)}RANDOM(){return this.getToken(cn.RANDOM,0)}SETSEED(){return this.getToken(cn.SETSEED,0)}ACOS(){return this.getToken(cn.ACOS,0)}ACOSD(){return this.getToken(cn.ACOSD,0)}ACOSH(){return this.getToken(cn.ACOSH,0)}ASIN(){return this.getToken(cn.ASIN,0)}ASIND(){return this.getToken(cn.ASIND,0)}ASINH(){return this.getToken(cn.ASINH,0)}ATAN(){return this.getToken(cn.ATAN,0)}ATAND(){return this.getToken(cn.ATAND,0)}ATANH(){return this.getToken(cn.ATANH,0)}ATAN2(){return this.getToken(cn.ATAN2,0)}ATAN2D(){return this.getToken(cn.ATAN2D,0)}COS(){return this.getToken(cn.COS,0)}COSD(){return this.getToken(cn.COSD,0)}COSH(){return this.getToken(cn.COSH,0)}COT(){return this.getToken(cn.COT,0)}COTD(){return this.getToken(cn.COTD,0)}SIN(){return this.getToken(cn.SIN,0)}SIND(){return this.getToken(cn.SIND,0)}SINH(){return this.getToken(cn.SINH,0)}TAN(){return this.getToken(cn.TAN,0)}TAND(){return this.getToken(cn.TAND,0)}TANH(){return this.getToken(cn.TANH,0)}BIT_LENGTH(){return this.getToken(cn.BIT_LENGTH,0)}CHAR_LENGTH(){return this.getToken(cn.CHAR_LENGTH,0)}CHARACTER_LENGTH(){return this.getToken(cn.CHARACTER_LENGTH,0)}LOWER(){return this.getToken(cn.LOWER,0)}OCTET_LENGTH(){return this.getToken(cn.OCTET_LENGTH,0)}UPPER(){return this.getToken(cn.UPPER,0)}ASCII(){return this.getToken(cn.ASCII,0)}BTRIM(){return this.getToken(cn.BTRIM,0)}CHR(){return this.getToken(cn.CHR,0)}CONCAT(){return this.getToken(cn.CONCAT,0)}CONCAT_WS(){return this.getToken(cn.CONCAT_WS,0)}FORMAT(){return this.getToken(cn.FORMAT,0)}INITCAP(){return this.getToken(cn.INITCAP,0)}LENGTH(){return this.getToken(cn.LENGTH,0)}LPAD(){return this.getToken(cn.LPAD,0)}LTRIM(){return this.getToken(cn.LTRIM,0)}MD5(){return this.getToken(cn.MD5,0)}PARSE_IDENT(){return this.getToken(cn.PARSE_IDENT,0)}PG_CLIENT_ENCODING(){return this.getToken(cn.PG_CLIENT_ENCODING,0)}QUOTE_IDENT(){return this.getToken(cn.QUOTE_IDENT,0)}QUOTE_LITERAL(){return this.getToken(cn.QUOTE_LITERAL,0)}QUOTE_NULLABLE(){return this.getToken(cn.QUOTE_NULLABLE,0)}REGEXP_COUNT(){return this.getToken(cn.REGEXP_COUNT,0)}REGEXP_INSTR(){return this.getToken(cn.REGEXP_INSTR,0)}REGEXP_LIKE(){return this.getToken(cn.REGEXP_LIKE,0)}REGEXP_MATCH(){return this.getToken(cn.REGEXP_MATCH,0)}REGEXP_MATCHES(){return this.getToken(cn.REGEXP_MATCHES,0)}REGEXP_REPLACE(){return this.getToken(cn.REGEXP_REPLACE,0)}REGEXP_SPLIT_TO_ARRAY(){return this.getToken(cn.REGEXP_SPLIT_TO_ARRAY,0)}REGEXP_SPLIT_TO_TABLE(){return this.getToken(cn.REGEXP_SPLIT_TO_TABLE,0)}REGEXP_SUBSTR(){return this.getToken(cn.REGEXP_SUBSTR,0)}REPEAT(){return this.getToken(cn.REPEAT,0)}REPLACE(){return this.getToken(cn.REPLACE,0)}REVERSE(){return this.getToken(cn.REVERSE,0)}RPAD(){return this.getToken(cn.RPAD,0)}RTRIM(){return this.getToken(cn.RTRIM,0)}SPLIT_PART(){return this.getToken(cn.SPLIT_PART,0)}STARTS_WITH(){return this.getToken(cn.STARTS_WITH,0)}STRING_TO_ARRAY(){return this.getToken(cn.STRING_TO_ARRAY,0)}STRING_TO_TABLE(){return this.getToken(cn.STRING_TO_TABLE,0)}STRPOS(){return this.getToken(cn.STRPOS,0)}SUBSTR(){return this.getToken(cn.SUBSTR,0)}TO_ASCII(){return this.getToken(cn.TO_ASCII,0)}TO_HEX(){return this.getToken(cn.TO_HEX,0)}TRANSLATE(){return this.getToken(cn.TRANSLATE,0)}UNISTR(){return this.getToken(cn.UNISTR,0)}AGE(){return this.getToken(cn.AGE,0)}DATE_BIN(){return this.getToken(cn.DATE_BIN,0)}DATE_PART(){return this.getToken(cn.DATE_PART,0)}DATE_TRUNC(){return this.getToken(cn.DATE_TRUNC,0)}ISFINITE(){return this.getToken(cn.ISFINITE,0)}JUSTIFY_DAYS(){return this.getToken(cn.JUSTIFY_DAYS,0)}JUSTIFY_HOURS(){return this.getToken(cn.JUSTIFY_HOURS,0)}JUSTIFY_INTERVAL(){return this.getToken(cn.JUSTIFY_INTERVAL,0)}MAKE_DATE(){return this.getToken(cn.MAKE_DATE,0)}MAKE_INTERVAL(){return this.getToken(cn.MAKE_INTERVAL,0)}MAKE_TIME(){return this.getToken(cn.MAKE_TIME,0)}MAKE_TIMESTAMP(){return this.getToken(cn.MAKE_TIMESTAMP,0)}MAKE_TIMESTAMPTZ(){return this.getToken(cn.MAKE_TIMESTAMPTZ,0)}CLOCK_TIMESTAMP(){return this.getToken(cn.CLOCK_TIMESTAMP,0)}NOW(){return this.getToken(cn.NOW,0)}STATEMENT_TIMESTAMP(){return this.getToken(cn.STATEMENT_TIMESTAMP,0)}TIMEOFDAY(){return this.getToken(cn.TIMEOFDAY,0)}TRANSACTION_TIMESTAMP(){return this.getToken(cn.TRANSACTION_TIMESTAMP,0)}TO_TIMESTAMP(){return this.getToken(cn.TO_TIMESTAMP,0)}TO_CHAR(){return this.getToken(cn.TO_CHAR,0)}TO_DATE(){return this.getToken(cn.TO_DATE,0)}TO_NUMBER(){return this.getToken(cn.TO_NUMBER,0)}get ruleIndex(){return cn.RULE_builtinFunctionName}accept(t){return t.visitBuiltinFunctionName?t.visitBuiltinFunctionName(this):t.visitChildren(this)}},oN=class extends ga{constructor(t,e){super(t,e)}computeOptions(){return this.getRuleContext(0,RN)}plsqlBlock(){return this.getRuleContext(0,IN)}optionalSemi(){return this.getRuleContext(0,ON)}get ruleIndex(){return cn.RULE_plsqlFunction}accept(t){return t.visitPlsqlFunction?t.visitPlsqlFunction(this):t.visitChildren(this)}},RN=class extends ga{constructor(t,e){super(t,e)}computeOption(t){return void 0===t?this.getRuleContexts(AN):this.getRuleContext(t,AN)}get ruleIndex(){return cn.RULE_computeOptions}accept(t){return t.visitComputeOptions?t.visitComputeOptions(this):t.visitChildren(this)}},AN=class extends ga{constructor(t,e){super(t,e)}sharp(){return this.getRuleContext(0,SN)}OPTION(){return this.getToken(cn.OPTION,0)}DUMP(){return this.getToken(cn.DUMP,0)}PRINT_STRICT_PARAMS(){return this.getToken(cn.PRINT_STRICT_PARAMS,0)}optionValue(){return this.getRuleContext(0,lN)}VARIABLE_CONFLICT(){return this.getToken(cn.VARIABLE_CONFLICT,0)}ERROR(){return this.getToken(cn.ERROR,0)}USE_VARIABLE(){return this.getToken(cn.USE_VARIABLE,0)}USE_COLUMN(){return this.getToken(cn.USE_COLUMN,0)}get ruleIndex(){return cn.RULE_computeOption}accept(t){return t.visitComputeOption?t.visitComputeOption(this):t.visitChildren(this)}},SN=class extends ga{constructor(t,e){super(t,e)}Operator(){return this.getToken(cn.Operator,0)}get ruleIndex(){return cn.RULE_sharp}accept(t){return t.visitSharp?t.visitSharp(this):t.visitChildren(this)}},lN=class extends ga{constructor(t,e){super(t,e)}sconst(){return this.getRuleContext(0,Qu)}reservedKeyword(){return this.getRuleContext(0,EN)}plsqlUnreservedKeyword(){return this.getRuleContext(0,rC)}unreservedKeyword(){return this.getRuleContext(0,cN)}get ruleIndex(){return cn.RULE_optionValue}accept(t){return t.visitOptionValue?t.visitOptionValue(this):t.visitChildren(this)}},ON=class extends ga{constructor(t,e){super(t,e)}SEMI(){return this.getToken(cn.SEMI,0)}get ruleIndex(){return cn.RULE_optionalSemi}accept(t){return t.visitOptionalSemi?t.visitOptionalSemi(this):t.visitChildren(this)}},IN=class extends ga{constructor(t,e){super(t,e)}declareSection(){return this.getRuleContext(0,uN)}BEGIN_P(){return this.getToken(cn.BEGIN_P,0)}procedureSection(){return this.getRuleContext(0,fN)}exceptionSection(){return this.getRuleContext(0,JL)}END_P(){return this.getToken(cn.END_P,0)}optionalLabel(){return this.getRuleContext(0,eC)}get ruleIndex(){return cn.RULE_plsqlBlock}accept(t){return t.visitPlsqlBlock?t.visitPlsqlBlock(this):t.visitChildren(this)}},uN=class extends ga{constructor(t,e){super(t,e)}optionalBlockLabel(){return this.getRuleContext(0,$L)}declareStart(){return this.getRuleContext(0,NN)}declareStatements(){return this.getRuleContext(0,LN)}get ruleIndex(){return cn.RULE_declareSection}accept(t){return t.visitDeclareSection?t.visitDeclareSection(this):t.visitChildren(this)}},NN=class extends ga{constructor(t,e){super(t,e)}DECLARE(){return this.getToken(cn.DECLARE,0)}get ruleIndex(){return cn.RULE_declareStart}accept(t){return t.visitDeclareStart?t.visitDeclareStart(this):t.visitChildren(this)}},LN=class extends ga{constructor(t,e){super(t,e)}declareStatement(t){return void 0===t?this.getRuleContexts(_N):this.getRuleContext(t,_N)}get ruleIndex(){return cn.RULE_declareStatements}accept(t){return t.visitDeclareStatements?t.visitDeclareStatements(this):t.visitChildren(this)}},CN=class extends ga{constructor(t,e){super(t,e)}LESS_LESS(){return this.getToken(cn.LESS_LESS,0)}anyIdentifier(){return this.getRuleContext(0,aC)}GREATER_GREATER(){return this.getToken(cn.GREATER_GREATER,0)}get ruleIndex(){return cn.RULE_labelDeclaration}accept(t){return t.visitLabelDeclaration?t.visitLabelDeclaration(this):t.visitChildren(this)}},_N=class extends ga{constructor(t,e){super(t,e)}declareStatement2(){return this.getRuleContext(0,PN)}DECLARE(){return this.getToken(cn.DECLARE,0)}labelDeclaration(){return this.getRuleContext(0,CN)}get ruleIndex(){return cn.RULE_declareStatement}accept(t){return t.visitDeclareStatement?t.visitDeclareStatement(this):t.visitChildren(this)}},PN=class extends ga{constructor(t,e){super(t,e)}declareVarname(){return this.getRuleContext(0,xN)}SEMI(){return this.getToken(cn.SEMI,0)}ALIAS(){return this.getToken(cn.ALIAS,0)}FOR(){return this.getToken(cn.FOR,0)}declareAliasItem(){return this.getRuleContext(0,gN)}declareConst(){return this.getRuleContext(0,kN)}declareDatatype(){return this.getRuleContext(0,HN)}declareCollate(){return this.getRuleContext(0,GN)}declareNotNull(){return this.getRuleContext(0,FN)}declareDefaultValue(){return this.getRuleContext(0,vN)}optionalScrollable(){return this.getRuleContext(0,MN)}CURSOR(){return this.getToken(cn.CURSOR,0)}declareCursorArgs(){return this.getRuleContext(0,UN)}declareIsOrFor(){return this.getRuleContext(0,pN)}declareCursorQuery(){return this.getRuleContext(0,dN)}get ruleIndex(){return cn.RULE_declareStatement2}accept(t){return t.visitDeclareStatement2?t.visitDeclareStatement2(this):t.visitChildren(this)}},MN=class extends ga{constructor(t,e){super(t,e)}NO(){return this.getToken(cn.NO,0)}SCROLL(){return this.getToken(cn.SCROLL,0)}get ruleIndex(){return cn.RULE_optionalScrollable}accept(t){return t.visitOptionalScrollable?t.visitOptionalScrollable(this):t.visitChildren(this)}},dN=class extends ga{constructor(t,e){super(t,e)}selectStatement(){return this.getRuleContext(0,il)}get ruleIndex(){return cn.RULE_declareCursorQuery}accept(t){return t.visitDeclareCursorQuery?t.visitDeclareCursorQuery(this):t.visitChildren(this)}},UN=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}declareCursorArglist(){return this.getRuleContext(0,mN)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}get ruleIndex(){return cn.RULE_declareCursorArgs}accept(t){return t.visitDeclareCursorArgs?t.visitDeclareCursorArgs(this):t.visitChildren(this)}},mN=class extends ga{constructor(t,e){super(t,e)}declareCursorArg(t){return void 0===t?this.getRuleContexts(DN):this.getRuleContext(t,DN)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_declareCursorArglist}accept(t){return t.visitDeclareCursorArglist?t.visitDeclareCursorArglist(this):t.visitChildren(this)}},DN=class extends ga{constructor(t,e){super(t,e)}declareVarname(){return this.getRuleContext(0,xN)}declareDatatype(){return this.getRuleContext(0,HN)}get ruleIndex(){return cn.RULE_declareCursorArg}accept(t){return t.visitDeclareCursorArg?t.visitDeclareCursorArg(this):t.visitChildren(this)}},pN=class extends ga{constructor(t,e){super(t,e)}IS(){return this.getToken(cn.IS,0)}FOR(){return this.getToken(cn.FOR,0)}get ruleIndex(){return cn.RULE_declareIsOrFor}accept(t){return t.visitDeclareIsOrFor?t.visitDeclareIsOrFor(this):t.visitChildren(this)}},gN=class extends ga{constructor(t,e){super(t,e)}PARAM(){return this.getToken(cn.PARAM,0)}columnId(){return this.getRuleContext(0,$u)}get ruleIndex(){return cn.RULE_declareAliasItem}accept(t){return t.visitDeclareAliasItem?t.visitDeclareAliasItem(this):t.visitChildren(this)}},xN=class extends ga{constructor(t,e){super(t,e)}anyIdentifier(){return this.getRuleContext(0,aC)}get ruleIndex(){return cn.RULE_declareVarname}accept(t){return t.visitDeclareVarname?t.visitDeclareVarname(this):t.visitChildren(this)}},kN=class extends ga{constructor(t,e){super(t,e)}CONSTANT(){return this.getToken(cn.CONSTANT,0)}get ruleIndex(){return cn.RULE_declareConst}accept(t){return t.visitDeclareConst?t.visitDeclareConst(this):t.visitChildren(this)}},HN=class extends ga{constructor(t,e){super(t,e)}typeName(){return this.getRuleContext(0,LO)}get ruleIndex(){return cn.RULE_declareDatatype}accept(t){return t.visitDeclareDatatype?t.visitDeclareDatatype(this):t.visitChildren(this)}},GN=class extends ga{constructor(t,e){super(t,e)}COLLATE(){return this.getToken(cn.COLLATE,0)}anyName(){return this.getRuleContext(0,mo)}get ruleIndex(){return cn.RULE_declareCollate}accept(t){return t.visitDeclareCollate?t.visitDeclareCollate(this):t.visitChildren(this)}},FN=class extends ga{constructor(t,e){super(t,e)}NOT(){return this.getToken(cn.NOT,0)}NULL_P(){return this.getToken(cn.NULL_P,0)}get ruleIndex(){return cn.RULE_declareNotNull}accept(t){return t.visitDeclareNotNull?t.visitDeclareNotNull(this):t.visitChildren(this)}},vN=class extends ga{constructor(t,e){super(t,e)}declareDefaultKey(){return this.getRuleContext(0,BN)}sqlExpression(){return this.getRuleContext(0,iC)}get ruleIndex(){return cn.RULE_declareDefaultValue}accept(t){return t.visitDeclareDefaultValue?t.visitDeclareDefaultValue(this):t.visitChildren(this)}},BN=class extends ga{constructor(t,e){super(t,e)}assignOperator(){return this.getRuleContext(0,yN)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}get ruleIndex(){return cn.RULE_declareDefaultKey}accept(t){return t.visitDeclareDefaultKey?t.visitDeclareDefaultKey(this):t.visitChildren(this)}},yN=class extends ga{constructor(t,e){super(t,e)}EQUAL(){return this.getToken(cn.EQUAL,0)}COLON_EQUALS(){return this.getToken(cn.COLON_EQUALS,0)}get ruleIndex(){return cn.RULE_assignOperator}accept(t){return t.visitAssignOperator?t.visitAssignOperator(this):t.visitChildren(this)}},fN=class extends ga{constructor(t,e){super(t,e)}proceduralStatement(t){return void 0===t?this.getRuleContexts(YN):this.getRuleContext(t,YN)}get ruleIndex(){return cn.RULE_procedureSection}accept(t){return t.visitProcedureSection?t.visitProcedureSection(this):t.visitChildren(this)}},YN=class extends ga{constructor(t,e){super(t,e)}plsqlBlock(){return this.getRuleContext(0,IN)}SEMI(){return this.getToken(cn.SEMI,0)}statementReturn(){return this.getRuleContext(0,NL)}statementRaise(){return this.getRuleContext(0,CL)}statementAssign(){return this.getRuleContext(0,VN)}statementIf(){return this.getRuleContext(0,zN)}statementCase(){return this.getRuleContext(0,eL)}statementLoop(){return this.getRuleContext(0,cL)}statementWhile(){return this.getRuleContext(0,nL)}statementFor(){return this.getRuleContext(0,hL)}statementForeachA(){return this.getRuleContext(0,lL)}statementExit(){return this.getRuleContext(0,IL)}statementAssert(){return this.getRuleContext(0,UL)}statementExecSql(){return this.getRuleContext(0,pL)}statementDynExecute(){return this.getRuleContext(0,gL)}statementPerform(){return this.getRuleContext(0,wN)}statementCall(){return this.getRuleContext(0,bN)}statementGetDiagram(){return this.getRuleContext(0,XN)}statementOpen(){return this.getRuleContext(0,GL)}statementFetch(){return this.getRuleContext(0,vL)}statementMove(){return this.getRuleContext(0,YL)}statementClose(){return this.getRuleContext(0,wL)}statementNull(){return this.getRuleContext(0,bL)}statementCommit(){return this.getRuleContext(0,WL)}statementRollback(){return this.getRuleContext(0,VL)}statementSet(){return this.getRuleContext(0,KL)}get ruleIndex(){return cn.RULE_proceduralStatement}accept(t){return t.visitProceduralStatement?t.visitProceduralStatement(this):t.visitChildren(this)}},wN=class extends ga{constructor(t,e){super(t,e)}PERFORM(){return this.getToken(cn.PERFORM,0)}expressionUntilSemi(){return this.getRuleContext(0,nC)}SEMI(){return this.getToken(cn.SEMI,0)}get ruleIndex(){return cn.RULE_statementPerform}accept(t){return t.visitStatementPerform?t.visitStatementPerform(this):t.visitChildren(this)}},bN=class extends ga{constructor(t,e){super(t,e)}CALL(){return this.getToken(cn.CALL,0)}anyIdentifier(){return this.getRuleContext(0,aC)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}optionalExpressionList(){return this.getRuleContext(0,WN)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}SEMI(){return this.getToken(cn.SEMI,0)}DO(){return this.getToken(cn.DO,0)}get ruleIndex(){return cn.RULE_statementCall}accept(t){return t.visitStatementCall?t.visitStatementCall(this):t.visitChildren(this)}},WN=class extends ga{constructor(t,e){super(t,e)}expressionList(){return this.getRuleContext(0,ZI)}get ruleIndex(){return cn.RULE_optionalExpressionList}accept(t){return t.visitOptionalExpressionList?t.visitOptionalExpressionList(this):t.visitChildren(this)}},VN=class extends ga{constructor(t,e){super(t,e)}assignVariable(){return this.getRuleContext(0,jN)}assignOperator(){return this.getRuleContext(0,yN)}sqlExpression(){return this.getRuleContext(0,iC)}SEMI(){return this.getToken(cn.SEMI,0)}get ruleIndex(){return cn.RULE_statementAssign}accept(t){return t.visitStatementAssign?t.visitStatementAssign(this):t.visitChildren(this)}},XN=class extends ga{constructor(t,e){super(t,e)}GET(){return this.getToken(cn.GET,0)}optionalGetDiagramArea(){return this.getRuleContext(0,KN)}DIAGNOSTICS(){return this.getToken(cn.DIAGNOSTICS,0)}getDiagramList(){return this.getRuleContext(0,QN)}SEMI(){return this.getToken(cn.SEMI,0)}get ruleIndex(){return cn.RULE_statementGetDiagram}accept(t){return t.visitStatementGetDiagram?t.visitStatementGetDiagram(this):t.visitChildren(this)}},KN=class extends ga{constructor(t,e){super(t,e)}CURRENT_P(){return this.getToken(cn.CURRENT_P,0)}STACKED(){return this.getToken(cn.STACKED,0)}get ruleIndex(){return cn.RULE_optionalGetDiagramArea}accept(t){return t.visitOptionalGetDiagramArea?t.visitOptionalGetDiagramArea(this):t.visitChildren(this)}},QN=class extends ga{constructor(t,e){super(t,e)}getDiagramListItem(t){return void 0===t?this.getRuleContexts(JN):this.getRuleContext(t,JN)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_getDiagramList}accept(t){return t.visitGetDiagramList?t.visitGetDiagramList(this):t.visitChildren(this)}},JN=class extends ga{constructor(t,e){super(t,e)}getDiagramTarget(){return this.getRuleContext(0,qN)}assignOperator(){return this.getRuleContext(0,yN)}getDiagramItem(){return this.getRuleContext(0,ZN)}get ruleIndex(){return cn.RULE_getDiagramListItem}accept(t){return t.visitGetDiagramListItem?t.visitGetDiagramListItem(this):t.visitChildren(this)}},ZN=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}get ruleIndex(){return cn.RULE_getDiagramItem}accept(t){return t.visitGetDiagramItem?t.visitGetDiagramItem(this):t.visitChildren(this)}},qN=class extends ga{constructor(t,e){super(t,e)}assignVariable(){return this.getRuleContext(0,jN)}get ruleIndex(){return cn.RULE_getDiagramTarget}accept(t){return t.visitGetDiagramTarget?t.visitGetDiagramTarget(this):t.visitChildren(this)}},jN=class extends ga{constructor(t,e){super(t,e)}anyName(){return this.getRuleContext(0,mo)}PARAM(){return this.getToken(cn.PARAM,0)}OPEN_BRACKET(t){return void 0===t?this.getTokens(cn.OPEN_BRACKET):this.getToken(cn.OPEN_BRACKET,t)}expressionUntilRightbracket(t){return void 0===t?this.getRuleContexts(hC):this.getRuleContext(t,hC)}CLOSE_BRACKET(t){return void 0===t?this.getTokens(cn.CLOSE_BRACKET):this.getToken(cn.CLOSE_BRACKET,t)}get ruleIndex(){return cn.RULE_assignVariable}accept(t){return t.visitAssignVariable?t.visitAssignVariable(this):t.visitChildren(this)}},zN=class extends ga{constructor(t,e){super(t,e)}IF_P(t){return void 0===t?this.getTokens(cn.IF_P):this.getToken(cn.IF_P,t)}expressionUntilThen(){return this.getRuleContext(0,cC)}THEN(){return this.getToken(cn.THEN,0)}procedureSection(){return this.getRuleContext(0,fN)}statementElsifs(){return this.getRuleContext(0,$N)}statementElse(){return this.getRuleContext(0,tL)}END_P(){return this.getToken(cn.END_P,0)}SEMI(){return this.getToken(cn.SEMI,0)}get ruleIndex(){return cn.RULE_statementIf}accept(t){return t.visitStatementIf?t.visitStatementIf(this):t.visitChildren(this)}},$N=class extends ga{constructor(t,e){super(t,e)}ELSIF(t){return void 0===t?this.getTokens(cn.ELSIF):this.getToken(cn.ELSIF,t)}expression1(t){return void 0===t?this.getRuleContexts(wO):this.getRuleContext(t,wO)}THEN(t){return void 0===t?this.getTokens(cn.THEN):this.getToken(cn.THEN,t)}procedureSection(t){return void 0===t?this.getRuleContexts(fN):this.getRuleContext(t,fN)}get ruleIndex(){return cn.RULE_statementElsifs}accept(t){return t.visitStatementElsifs?t.visitStatementElsifs(this):t.visitChildren(this)}},tL=class extends ga{constructor(t,e){super(t,e)}ELSE(){return this.getToken(cn.ELSE,0)}procedureSection(){return this.getRuleContext(0,fN)}get ruleIndex(){return cn.RULE_statementElse}accept(t){return t.visitStatementElse?t.visitStatementElse(this):t.visitChildren(this)}},eL=class extends ga{constructor(t,e){super(t,e)}CASE(t){return void 0===t?this.getTokens(cn.CASE):this.getToken(cn.CASE,t)}optionalExpressionUntilWhen(){return this.getRuleContext(0,sL)}caseWhenList(){return this.getRuleContext(0,aL)}optionalCaseElse(){return this.getRuleContext(0,iL)}END_P(){return this.getToken(cn.END_P,0)}SEMI(){return this.getToken(cn.SEMI,0)}get ruleIndex(){return cn.RULE_statementCase}accept(t){return t.visitStatementCase?t.visitStatementCase(this):t.visitChildren(this)}},sL=class extends ga{constructor(t,e){super(t,e)}sqlExpression(){return this.getRuleContext(0,iC)}get ruleIndex(){return cn.RULE_optionalExpressionUntilWhen}accept(t){return t.visitOptionalExpressionUntilWhen?t.visitOptionalExpressionUntilWhen(this):t.visitChildren(this)}},aL=class extends ga{constructor(t,e){super(t,e)}caseWhen(t){return void 0===t?this.getRuleContexts(rL):this.getRuleContext(t,rL)}get ruleIndex(){return cn.RULE_caseWhenList}accept(t){return t.visitCaseWhenList?t.visitCaseWhenList(this):t.visitChildren(this)}},rL=class extends ga{constructor(t,e){super(t,e)}WHEN(){return this.getToken(cn.WHEN,0)}expressionList(){return this.getRuleContext(0,ZI)}THEN(){return this.getToken(cn.THEN,0)}procedureSection(){return this.getRuleContext(0,fN)}get ruleIndex(){return cn.RULE_caseWhen}accept(t){return t.visitCaseWhen?t.visitCaseWhen(this):t.visitChildren(this)}},iL=class extends ga{constructor(t,e){super(t,e)}ELSE(){return this.getToken(cn.ELSE,0)}procedureSection(){return this.getRuleContext(0,fN)}get ruleIndex(){return cn.RULE_optionalCaseElse}accept(t){return t.visitOptionalCaseElse?t.visitOptionalCaseElse(this):t.visitChildren(this)}},cL=class extends ga{constructor(t,e){super(t,e)}optionalLoopLabel(){return this.getRuleContext(0,tC)}loopBody(){return this.getRuleContext(0,DL)}get ruleIndex(){return cn.RULE_statementLoop}accept(t){return t.visitStatementLoop?t.visitStatementLoop(this):t.visitChildren(this)}},nL=class extends ga{constructor(t,e){super(t,e)}optionalLoopLabel(){return this.getRuleContext(0,tC)}WHILE(){return this.getToken(cn.WHILE,0)}expressionUntilLoop(){return this.getRuleContext(0,EC)}loopBody(){return this.getRuleContext(0,DL)}get ruleIndex(){return cn.RULE_statementWhile}accept(t){return t.visitStatementWhile?t.visitStatementWhile(this):t.visitChildren(this)}},hL=class extends ga{constructor(t,e){super(t,e)}optionalLoopLabel(){return this.getRuleContext(0,tC)}FOR(){return this.getToken(cn.FOR,0)}forControl(){return this.getRuleContext(0,EL)}loopBody(){return this.getRuleContext(0,DL)}get ruleIndex(){return cn.RULE_statementFor}accept(t){return t.visitStatementFor?t.visitStatementFor(this):t.visitChildren(this)}},EL=class extends ga{constructor(t,e){super(t,e)}forVariable(){return this.getRuleContext(0,SL)}IN_P(){return this.getToken(cn.IN_P,0)}cursorName(){return this.getRuleContext(0,al)}optionalCursorParameters(){return this.getRuleContext(0,oL)}selectStatement(){return this.getRuleContext(0,il)}explainStatement(){return this.getRuleContext(0,CS)}EXECUTE(){return this.getToken(cn.EXECUTE,0)}expression1(t){return void 0===t?this.getRuleContexts(wO):this.getRuleContext(t,wO)}optionalForUsingExpression(){return this.getRuleContext(0,TL)}optionalReverse(){return this.getRuleContext(0,RL)}DOT_DOT(){return this.getToken(cn.DOT_DOT,0)}optionalByExpression(){return this.getRuleContext(0,AL)}get ruleIndex(){return cn.RULE_forControl}accept(t){return t.visitForControl?t.visitForControl(this):t.visitChildren(this)}},TL=class extends ga{constructor(t,e){super(t,e)}USING(){return this.getToken(cn.USING,0)}expressionList(){return this.getRuleContext(0,ZI)}get ruleIndex(){return cn.RULE_optionalForUsingExpression}accept(t){return t.visitOptionalForUsingExpression?t.visitOptionalForUsingExpression(this):t.visitChildren(this)}},oL=class extends ga{constructor(t,e){super(t,e)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}expression1(t){return void 0===t?this.getRuleContexts(wO):this.getRuleContext(t,wO)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_optionalCursorParameters}accept(t){return t.visitOptionalCursorParameters?t.visitOptionalCursorParameters(this):t.visitChildren(this)}},RL=class extends ga{constructor(t,e){super(t,e)}REVERSE(){return this.getToken(cn.REVERSE,0)}get ruleIndex(){return cn.RULE_optionalReverse}accept(t){return t.visitOptionalReverse?t.visitOptionalReverse(this):t.visitChildren(this)}},AL=class extends ga{constructor(t,e){super(t,e)}BY(){return this.getToken(cn.BY,0)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_optionalByExpression}accept(t){return t.visitOptionalByExpression?t.visitOptionalByExpression(this):t.visitChildren(this)}},SL=class extends ga{constructor(t,e){super(t,e)}anyNameList(){return this.getRuleContext(0,Uo)}get ruleIndex(){return cn.RULE_forVariable}accept(t){return t.visitForVariable?t.visitForVariable(this):t.visitChildren(this)}},lL=class extends ga{constructor(t,e){super(t,e)}optionalLoopLabel(){return this.getRuleContext(0,tC)}FOREACH(){return this.getToken(cn.FOREACH,0)}forVariable(){return this.getRuleContext(0,SL)}foreachSlice(){return this.getRuleContext(0,OL)}IN_P(){return this.getToken(cn.IN_P,0)}ARRAY(){return this.getToken(cn.ARRAY,0)}expression1(){return this.getRuleContext(0,wO)}loopBody(){return this.getRuleContext(0,DL)}get ruleIndex(){return cn.RULE_statementForeachA}accept(t){return t.visitStatementForeachA?t.visitStatementForeachA(this):t.visitChildren(this)}},OL=class extends ga{constructor(t,e){super(t,e)}SLICE(){return this.getToken(cn.SLICE,0)}iconst(){return this.getRuleContext(0,Ku)}get ruleIndex(){return cn.RULE_foreachSlice}accept(t){return t.visitForeachSlice?t.visitForeachSlice(this):t.visitChildren(this)}},IL=class extends ga{constructor(t,e){super(t,e)}exitType(){return this.getRuleContext(0,uL)}optionalLabel(){return this.getRuleContext(0,eC)}optionalExitCondition(){return this.getRuleContext(0,sC)}SEMI(){return this.getToken(cn.SEMI,0)}get ruleIndex(){return cn.RULE_statementExit}accept(t){return t.visitStatementExit?t.visitStatementExit(this):t.visitChildren(this)}},uL=class extends ga{constructor(t,e){super(t,e)}EXIT(){return this.getToken(cn.EXIT,0)}CONTINUE_P(){return this.getToken(cn.CONTINUE_P,0)}get ruleIndex(){return cn.RULE_exitType}accept(t){return t.visitExitType?t.visitExitType(this):t.visitChildren(this)}},NL=class extends ga{constructor(t,e){super(t,e)}RETURN(){return this.getToken(cn.RETURN,0)}SEMI(){return this.getToken(cn.SEMI,0)}NEXT(){return this.getToken(cn.NEXT,0)}sqlExpression(){return this.getRuleContext(0,iC)}QUERY(){return this.getToken(cn.QUERY,0)}optionalReturnResult(){return this.getRuleContext(0,LL)}EXECUTE(){return this.getToken(cn.EXECUTE,0)}expression1(){return this.getRuleContext(0,wO)}optionalForUsingExpression(){return this.getRuleContext(0,TL)}selectStatement(){return this.getRuleContext(0,il)}get ruleIndex(){return cn.RULE_statementReturn}accept(t){return t.visitStatementReturn?t.visitStatementReturn(this):t.visitChildren(this)}},LL=class extends ga{constructor(t,e){super(t,e)}sqlExpression(){return this.getRuleContext(0,iC)}get ruleIndex(){return cn.RULE_optionalReturnResult}accept(t){return t.visitOptionalReturnResult?t.visitOptionalReturnResult(this):t.visitChildren(this)}},CL=class extends ga{constructor(t,e){super(t,e)}RAISE(){return this.getToken(cn.RAISE,0)}optionalStatementRaiseLevel(){return this.getRuleContext(0,_L)}sconst(){return this.getRuleContext(0,Qu)}optionalRaiseList(){return this.getRuleContext(0,PL)}optionalRaiseUsing(){return this.getRuleContext(0,ML)}SEMI(){return this.getToken(cn.SEMI,0)}identifier(){return this.getRuleContext(0,rN)}SQLSTATE(){return this.getToken(cn.SQLSTATE,0)}get ruleIndex(){return cn.RULE_statementRaise}accept(t){return t.visitStatementRaise?t.visitStatementRaise(this):t.visitChildren(this)}},_L=class extends ga{constructor(t,e){super(t,e)}DEBUG(){return this.getToken(cn.DEBUG,0)}LOG(){return this.getToken(cn.LOG,0)}INFO(){return this.getToken(cn.INFO,0)}NOTICE(){return this.getToken(cn.NOTICE,0)}WARNING(){return this.getToken(cn.WARNING,0)}EXCEPTION(){return this.getToken(cn.EXCEPTION,0)}get ruleIndex(){return cn.RULE_optionalStatementRaiseLevel}accept(t){return t.visitOptionalStatementRaiseLevel?t.visitOptionalStatementRaiseLevel(this):t.visitChildren(this)}},PL=class extends ga{constructor(t,e){super(t,e)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}expression1(t){return void 0===t?this.getRuleContexts(wO):this.getRuleContext(t,wO)}get ruleIndex(){return cn.RULE_optionalRaiseList}accept(t){return t.visitOptionalRaiseList?t.visitOptionalRaiseList(this):t.visitChildren(this)}},ML=class extends ga{constructor(t,e){super(t,e)}USING(){return this.getToken(cn.USING,0)}optionalRaiseUsingElement(t){return void 0===t?this.getRuleContexts(dL):this.getRuleContext(t,dL)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_optionalRaiseUsing}accept(t){return t.visitOptionalRaiseUsing?t.visitOptionalRaiseUsing(this):t.visitChildren(this)}},dL=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,rN)}EQUAL(){return this.getToken(cn.EQUAL,0)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_optionalRaiseUsingElement}accept(t){return t.visitOptionalRaiseUsingElement?t.visitOptionalRaiseUsingElement(this):t.visitChildren(this)}},UL=class extends ga{constructor(t,e){super(t,e)}ASSERT(){return this.getToken(cn.ASSERT,0)}sqlExpression(){return this.getRuleContext(0,iC)}optionalStatementAssertMessage(){return this.getRuleContext(0,mL)}SEMI(){return this.getToken(cn.SEMI,0)}get ruleIndex(){return cn.RULE_statementAssert}accept(t){return t.visitStatementAssert?t.visitStatementAssert(this):t.visitChildren(this)}},mL=class extends ga{constructor(t,e){super(t,e)}COMMA(){return this.getToken(cn.COMMA,0)}sqlExpression(){return this.getRuleContext(0,iC)}get ruleIndex(){return cn.RULE_optionalStatementAssertMessage}accept(t){return t.visitOptionalStatementAssertMessage?t.visitOptionalStatementAssertMessage(this):t.visitChildren(this)}},DL=class extends ga{constructor(t,e){super(t,e)}LOOP(t){return void 0===t?this.getTokens(cn.LOOP):this.getToken(cn.LOOP,t)}procedureSection(){return this.getRuleContext(0,fN)}END_P(){return this.getToken(cn.END_P,0)}optionalLabel(){return this.getRuleContext(0,eC)}SEMI(){return this.getToken(cn.SEMI,0)}get ruleIndex(){return cn.RULE_loopBody}accept(t){return t.visitLoopBody?t.visitLoopBody(this):t.visitChildren(this)}},pL=class extends ga{constructor(t,e){super(t,e)}makeExecuteSqlStatement(){return this.getRuleContext(0,TC)}SEMI(){return this.getToken(cn.SEMI,0)}get ruleIndex(){return cn.RULE_statementExecSql}accept(t){return t.visitStatementExecSql?t.visitStatementExecSql(this):t.visitChildren(this)}},gL=class extends ga{constructor(t,e){super(t,e)}EXECUTE(){return this.getToken(cn.EXECUTE,0)}expression1(){return this.getRuleContext(0,wO)}SEMI(){return this.getToken(cn.SEMI,0)}optionalExecuteInto(){return this.getRuleContext(0,HL)}optionalExecuteUsing(){return this.getRuleContext(0,xL)}get ruleIndex(){return cn.RULE_statementDynExecute}accept(t){return t.visitStatementDynExecute?t.visitStatementDynExecute(this):t.visitChildren(this)}},xL=class extends ga{constructor(t,e){super(t,e)}USING(){return this.getToken(cn.USING,0)}optionalExecuteUsingList(){return this.getRuleContext(0,kL)}get ruleIndex(){return cn.RULE_optionalExecuteUsing}accept(t){return t.visitOptionalExecuteUsing?t.visitOptionalExecuteUsing(this):t.visitChildren(this)}},kL=class extends ga{constructor(t,e){super(t,e)}expression1(t){return void 0===t?this.getRuleContexts(wO):this.getRuleContext(t,wO)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_optionalExecuteUsingList}accept(t){return t.visitOptionalExecuteUsingList?t.visitOptionalExecuteUsingList(this):t.visitChildren(this)}},HL=class extends ga{constructor(t,e){super(t,e)}INTO(){return this.getToken(cn.INTO,0)}intoTarget(){return this.getRuleContext(0,BL)}STRICT_P(){return this.getToken(cn.STRICT_P,0)}get ruleIndex(){return cn.RULE_optionalExecuteInto}accept(t){return t.visitOptionalExecuteInto?t.visitOptionalExecuteInto(this):t.visitChildren(this)}},GL=class extends ga{constructor(t,e){super(t,e)}OPEN(){return this.getToken(cn.OPEN,0)}SEMI(){return this.getToken(cn.SEMI,0)}cursorVariable(){return this.getRuleContext(0,QL)}SCROLL(){return this.getToken(cn.SCROLL,0)}FOR(){return this.getToken(cn.FOR,0)}columnId(){return this.getRuleContext(0,$u)}selectStatement(){return this.getRuleContext(0,il)}EXECUTE(){return this.getToken(cn.EXECUTE,0)}sqlExpression(){return this.getRuleContext(0,iC)}USING(){return this.getToken(cn.USING,0)}expressionList(){return this.getRuleContext(0,ZI)}NO(){return this.getToken(cn.NO,0)}OPEN_PAREN(){return this.getToken(cn.OPEN_PAREN,0)}optionalOpenBoundListItem(t){return void 0===t?this.getRuleContexts(FL):this.getRuleContext(t,FL)}CLOSE_PAREN(){return this.getToken(cn.CLOSE_PAREN,0)}COMMA(t){return void 0===t?this.getTokens(cn.COMMA):this.getToken(cn.COMMA,t)}get ruleIndex(){return cn.RULE_statementOpen}accept(t){return t.visitStatementOpen?t.visitStatementOpen(this):t.visitChildren(this)}},FL=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}COLON_EQUALS(){return this.getToken(cn.COLON_EQUALS,0)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_optionalOpenBoundListItem}accept(t){return t.visitOptionalOpenBoundListItem?t.visitOptionalOpenBoundListItem(this):t.visitChildren(this)}},vL=class extends ga{constructor(t,e){super(t,e)}FETCH(){return this.getToken(cn.FETCH,0)}optionalCursorFrom(){return this.getRuleContext(0,yL)}cursorVariable(){return this.getRuleContext(0,QL)}INTO(){return this.getToken(cn.INTO,0)}intoTarget(){return this.getRuleContext(0,BL)}SEMI(){return this.getToken(cn.SEMI,0)}optionalFetchDirection(){return this.getRuleContext(0,fL)}get ruleIndex(){return cn.RULE_statementFetch}accept(t){return t.visitStatementFetch?t.visitStatementFetch(this):t.visitChildren(this)}},BL=class extends ga{constructor(t,e){super(t,e)}expressionList(){return this.getRuleContext(0,ZI)}get ruleIndex(){return cn.RULE_intoTarget}accept(t){return t.visitIntoTarget?t.visitIntoTarget(this):t.visitChildren(this)}},yL=class extends ga{constructor(t,e){super(t,e)}FROM(){return this.getToken(cn.FROM,0)}IN_P(){return this.getToken(cn.IN_P,0)}get ruleIndex(){return cn.RULE_optionalCursorFrom}accept(t){return t.visitOptionalCursorFrom?t.visitOptionalCursorFrom(this):t.visitChildren(this)}},fL=class extends ga{constructor(t,e){super(t,e)}NEXT(){return this.getToken(cn.NEXT,0)}PRIOR(){return this.getToken(cn.PRIOR,0)}FIRST_P(){return this.getToken(cn.FIRST_P,0)}LAST_P(){return this.getToken(cn.LAST_P,0)}ABSOLUTE_P(){return this.getToken(cn.ABSOLUTE_P,0)}expression1(){return this.getRuleContext(0,wO)}RELATIVE_P(){return this.getToken(cn.RELATIVE_P,0)}ALL(){return this.getToken(cn.ALL,0)}FORWARD(){return this.getToken(cn.FORWARD,0)}BACKWARD(){return this.getToken(cn.BACKWARD,0)}get ruleIndex(){return cn.RULE_optionalFetchDirection}accept(t){return t.visitOptionalFetchDirection?t.visitOptionalFetchDirection(this):t.visitChildren(this)}},YL=class extends ga{constructor(t,e){super(t,e)}MOVE(){return this.getToken(cn.MOVE,0)}optionalFetchDirection(){return this.getRuleContext(0,fL)}cursorVariable(){return this.getRuleContext(0,QL)}SEMI(){return this.getToken(cn.SEMI,0)}get ruleIndex(){return cn.RULE_statementMove}accept(t){return t.visitStatementMove?t.visitStatementMove(this):t.visitChildren(this)}},wL=class extends ga{constructor(t,e){super(t,e)}CLOSE(){return this.getToken(cn.CLOSE,0)}cursorVariable(){return this.getRuleContext(0,QL)}SEMI(){return this.getToken(cn.SEMI,0)}get ruleIndex(){return cn.RULE_statementClose}accept(t){return t.visitStatementClose?t.visitStatementClose(this):t.visitChildren(this)}},bL=class extends ga{constructor(t,e){super(t,e)}NULL_P(){return this.getToken(cn.NULL_P,0)}SEMI(){return this.getToken(cn.SEMI,0)}get ruleIndex(){return cn.RULE_statementNull}accept(t){return t.visitStatementNull?t.visitStatementNull(this):t.visitChildren(this)}},WL=class extends ga{constructor(t,e){super(t,e)}COMMIT(){return this.getToken(cn.COMMIT,0)}plsqlOptionalTransactionChain(){return this.getRuleContext(0,XL)}SEMI(){return this.getToken(cn.SEMI,0)}get ruleIndex(){return cn.RULE_statementCommit}accept(t){return t.visitStatementCommit?t.visitStatementCommit(this):t.visitChildren(this)}},VL=class extends ga{constructor(t,e){super(t,e)}ROLLBACK(){return this.getToken(cn.ROLLBACK,0)}plsqlOptionalTransactionChain(){return this.getRuleContext(0,XL)}SEMI(){return this.getToken(cn.SEMI,0)}get ruleIndex(){return cn.RULE_statementRollback}accept(t){return t.visitStatementRollback?t.visitStatementRollback(this):t.visitChildren(this)}},XL=class extends ga{constructor(t,e){super(t,e)}AND(){return this.getToken(cn.AND,0)}CHAIN(){return this.getToken(cn.CHAIN,0)}NO(){return this.getToken(cn.NO,0)}get ruleIndex(){return cn.RULE_plsqlOptionalTransactionChain}accept(t){return t.visitPlsqlOptionalTransactionChain?t.visitPlsqlOptionalTransactionChain(this):t.visitChildren(this)}},KL=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(cn.SET,0)}anyName(){return this.getRuleContext(0,mo)}TO(){return this.getToken(cn.TO,0)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}SEMI(){return this.getToken(cn.SEMI,0)}RESET(){return this.getToken(cn.RESET,0)}ALL(){return this.getToken(cn.ALL,0)}get ruleIndex(){return cn.RULE_statementSet}accept(t){return t.visitStatementSet?t.visitStatementSet(this):t.visitChildren(this)}},QL=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}PARAM(){return this.getToken(cn.PARAM,0)}get ruleIndex(){return cn.RULE_cursorVariable}accept(t){return t.visitCursorVariable?t.visitCursorVariable(this):t.visitChildren(this)}},JL=class extends ga{constructor(t,e){super(t,e)}EXCEPTION(){return this.getToken(cn.EXCEPTION,0)}procedureExceptions(){return this.getRuleContext(0,ZL)}get ruleIndex(){return cn.RULE_exceptionSection}accept(t){return t.visitExceptionSection?t.visitExceptionSection(this):t.visitChildren(this)}},ZL=class extends ga{constructor(t,e){super(t,e)}procedureException(t){return void 0===t?this.getRuleContexts(qL):this.getRuleContext(t,qL)}get ruleIndex(){return cn.RULE_procedureExceptions}accept(t){return t.visitProcedureExceptions?t.visitProcedureExceptions(this):t.visitChildren(this)}},qL=class extends ga{constructor(t,e){super(t,e)}WHEN(){return this.getToken(cn.WHEN,0)}procedureConditions(){return this.getRuleContext(0,jL)}THEN(){return this.getToken(cn.THEN,0)}procedureSection(){return this.getRuleContext(0,fN)}get ruleIndex(){return cn.RULE_procedureException}accept(t){return t.visitProcedureException?t.visitProcedureException(this):t.visitChildren(this)}},jL=class extends ga{constructor(t,e){super(t,e)}procedureCondition(t){return void 0===t?this.getRuleContexts(zL):this.getRuleContext(t,zL)}OR(t){return void 0===t?this.getTokens(cn.OR):this.getToken(cn.OR,t)}get ruleIndex(){return cn.RULE_procedureConditions}accept(t){return t.visitProcedureConditions?t.visitProcedureConditions(this):t.visitChildren(this)}},zL=class extends ga{constructor(t,e){super(t,e)}anyIdentifier(){return this.getRuleContext(0,aC)}SQLSTATE(){return this.getToken(cn.SQLSTATE,0)}sconst(){return this.getRuleContext(0,Qu)}get ruleIndex(){return cn.RULE_procedureCondition}accept(t){return t.visitProcedureCondition?t.visitProcedureCondition(this):t.visitChildren(this)}},$L=class extends ga{constructor(t,e){super(t,e)}labelDeclaration(){return this.getRuleContext(0,CN)}get ruleIndex(){return cn.RULE_optionalBlockLabel}accept(t){return t.visitOptionalBlockLabel?t.visitOptionalBlockLabel(this):t.visitChildren(this)}},tC=class extends ga{constructor(t,e){super(t,e)}labelDeclaration(){return this.getRuleContext(0,CN)}get ruleIndex(){return cn.RULE_optionalLoopLabel}accept(t){return t.visitOptionalLoopLabel?t.visitOptionalLoopLabel(this):t.visitChildren(this)}},eC=class extends ga{constructor(t,e){super(t,e)}anyIdentifier(){return this.getRuleContext(0,aC)}get ruleIndex(){return cn.RULE_optionalLabel}accept(t){return t.visitOptionalLabel?t.visitOptionalLabel(this):t.visitChildren(this)}},sC=class extends ga{constructor(t,e){super(t,e)}WHEN(){return this.getToken(cn.WHEN,0)}expressionUntilSemi(){return this.getRuleContext(0,nC)}get ruleIndex(){return cn.RULE_optionalExitCondition}accept(t){return t.visitOptionalExitCondition?t.visitOptionalExitCondition(this):t.visitChildren(this)}},aC=class extends ga{constructor(t,e){super(t,e)}columnId(){return this.getRuleContext(0,$u)}plsqlUnreservedKeyword(){return this.getRuleContext(0,rC)}get ruleIndex(){return cn.RULE_anyIdentifier}accept(t){return t.visitAnyIdentifier?t.visitAnyIdentifier(this):t.visitChildren(this)}},rC=class extends ga{constructor(t,e){super(t,e)}ABSOLUTE_P(){return this.getToken(cn.ABSOLUTE_P,0)}ALIAS(){return this.getToken(cn.ALIAS,0)}AND(){return this.getToken(cn.AND,0)}ARRAY(){return this.getToken(cn.ARRAY,0)}ASSERT(){return this.getToken(cn.ASSERT,0)}BACKWARD(){return this.getToken(cn.BACKWARD,0)}CALL(){return this.getToken(cn.CALL,0)}CHAIN(){return this.getToken(cn.CHAIN,0)}CLOSE(){return this.getToken(cn.CLOSE,0)}COLLATE(){return this.getToken(cn.COLLATE,0)}COLUMN(){return this.getToken(cn.COLUMN,0)}COMMIT(){return this.getToken(cn.COMMIT,0)}CONSTANT(){return this.getToken(cn.CONSTANT,0)}CONSTRAINT(){return this.getToken(cn.CONSTRAINT,0)}CONTINUE_P(){return this.getToken(cn.CONTINUE_P,0)}CURRENT_P(){return this.getToken(cn.CURRENT_P,0)}CURSOR(){return this.getToken(cn.CURSOR,0)}DEBUG(){return this.getToken(cn.DEBUG,0)}DEFAULT(){return this.getToken(cn.DEFAULT,0)}DIAGNOSTICS(){return this.getToken(cn.DIAGNOSTICS,0)}DO(){return this.getToken(cn.DO,0)}DUMP(){return this.getToken(cn.DUMP,0)}ELSIF(){return this.getToken(cn.ELSIF,0)}ERROR(){return this.getToken(cn.ERROR,0)}EXCEPTION(){return this.getToken(cn.EXCEPTION,0)}EXIT(){return this.getToken(cn.EXIT,0)}FETCH(){return this.getToken(cn.FETCH,0)}FIRST_P(){return this.getToken(cn.FIRST_P,0)}FORWARD(){return this.getToken(cn.FORWARD,0)}GET(){return this.getToken(cn.GET,0)}INFO(){return this.getToken(cn.INFO,0)}INSERT(){return this.getToken(cn.INSERT,0)}IS(){return this.getToken(cn.IS,0)}LAST_P(){return this.getToken(cn.LAST_P,0)}MOVE(){return this.getToken(cn.MOVE,0)}NEXT(){return this.getToken(cn.NEXT,0)}NO(){return this.getToken(cn.NO,0)}NOTICE(){return this.getToken(cn.NOTICE,0)}OPEN(){return this.getToken(cn.OPEN,0)}OPTION(){return this.getToken(cn.OPTION,0)}PERFORM(){return this.getToken(cn.PERFORM,0)}PRINT_STRICT_PARAMS(){return this.getToken(cn.PRINT_STRICT_PARAMS,0)}PRIOR(){return this.getToken(cn.PRIOR,0)}QUERY(){return this.getToken(cn.QUERY,0)}RAISE(){return this.getToken(cn.RAISE,0)}RELATIVE_P(){return this.getToken(cn.RELATIVE_P,0)}RESET(){return this.getToken(cn.RESET,0)}RETURN(){return this.getToken(cn.RETURN,0)}ROLLBACK(){return this.getToken(cn.ROLLBACK,0)}ROWTYPE(){return this.getToken(cn.ROWTYPE,0)}SCHEMA(){return this.getToken(cn.SCHEMA,0)}SCROLL(){return this.getToken(cn.SCROLL,0)}SET(){return this.getToken(cn.SET,0)}SLICE(){return this.getToken(cn.SLICE,0)}SQLSTATE(){return this.getToken(cn.SQLSTATE,0)}STACKED(){return this.getToken(cn.STACKED,0)}TABLE(){return this.getToken(cn.TABLE,0)}TYPE_P(){return this.getToken(cn.TYPE_P,0)}USE_COLUMN(){return this.getToken(cn.USE_COLUMN,0)}USE_VARIABLE(){return this.getToken(cn.USE_VARIABLE,0)}VARIABLE_CONFLICT(){return this.getToken(cn.VARIABLE_CONFLICT,0)}WARNING(){return this.getToken(cn.WARNING,0)}OUTER_P(){return this.getToken(cn.OUTER_P,0)}get ruleIndex(){return cn.RULE_plsqlUnreservedKeyword}accept(t){return t.visitPlsqlUnreservedKeyword?t.visitPlsqlUnreservedKeyword(this):t.visitChildren(this)}},iC=class extends ga{constructor(t,e){super(t,e)}optionalTargetList(){return this.getRuleContext(0,Lu)}fromClause(){return this.getRuleContext(0,Vl)}whereClause(){return this.getRuleContext(0,EO)}groupClause(){return this.getRuleContext(0,Fl)}havingClause(){return this.getRuleContext(0,yl)}windowClause(){return this.getRuleContext(0,pI)}intoClause(){return this.getRuleContext(0,ll)}get ruleIndex(){return cn.RULE_sqlExpression}accept(t){return t.visitSqlExpression?t.visitSqlExpression(this):t.visitChildren(this)}},cC=class extends ga{constructor(t,e){super(t,e)}sqlExpression(){return this.getRuleContext(0,iC)}get ruleIndex(){return cn.RULE_expressionUntilThen}accept(t){return t.visitExpressionUntilThen?t.visitExpressionUntilThen(this):t.visitChildren(this)}},nC=class extends ga{constructor(t,e){super(t,e)}sqlExpression(){return this.getRuleContext(0,iC)}get ruleIndex(){return cn.RULE_expressionUntilSemi}accept(t){return t.visitExpressionUntilSemi?t.visitExpressionUntilSemi(this):t.visitChildren(this)}},hC=class extends ga{constructor(t,e){super(t,e)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_expressionUntilRightbracket}accept(t){return t.visitExpressionUntilRightbracket?t.visitExpressionUntilRightbracket(this):t.visitChildren(this)}},EC=class extends ga{constructor(t,e){super(t,e)}expression1(){return this.getRuleContext(0,wO)}get ruleIndex(){return cn.RULE_expressionUntilLoop}accept(t){return t.visitExpressionUntilLoop?t.visitExpressionUntilLoop(this):t.visitChildren(this)}},TC=class extends ga{constructor(t,e){super(t,e)}statement(){return this.getRuleContext(0,Tn)}optionalReturningClauseInto(){return this.getRuleContext(0,oC)}get ruleIndex(){return cn.RULE_makeExecuteSqlStatement}accept(t){return t.visitMakeExecuteSqlStatement?t.visitMakeExecuteSqlStatement(this):t.visitChildren(this)}},oC=class extends ga{constructor(t,e){super(t,e)}INTO(){return this.getToken(cn.INTO,0)}intoTarget(){return this.getRuleContext(0,BL)}STRICT_P(){return this.getToken(cn.STRICT_P,0)}get ruleIndex(){return cn.RULE_optionalReturningClauseInto}accept(t){return t.visitOptionalReturningClauseInto?t.visitOptionalReturningClauseInto(this):t.visitChildren(this)}},RC=class extends ga{constructor(t,e){super(t,e)}ROLE(){return this.getToken(cn.ROLE,0)}USER(){return this.getToken(cn.USER,0)}GROUP_P(){return this.getToken(cn.GROUP_P,0)}get ruleIndex(){return cn.RULE_roleOrAliases}accept(t){return t.visitRoleOrAliases?t.visitRoleOrAliases(this):t.visitChildren(this)}},AC=class extends Ii{},SC=/[\w]$/,lC=/\r\n|\n|\r/g;function OC(t,e){var s,a;let r=t.column,i=t.column+((null===(s=t.text)||void 0===s?void 0:s.length)||0),c=t.line;return{startColumn:r,startLine:c,endColumn:i,endLine:t.type===e&&t.text?c+((null===(a=t.text.match(lC))||void 0===a?void 0:a.length)||0):c}}function IC(t,e,s,a){let r=e.column-1;for(let i=0;i<t.size;i++){let c=t.get(i),{startColumn:n,startLine:h,endColumn:E,endLine:T}=OC(c,s);if(T>e.line||h===e.line&&E>r)return a?i:i>0&&h===e.line&&n===r&&SC.test(t.get(i-1).text||"")?i-1:t.get(i).type===s?i+1:i}}function uC(t,e){return t===e.startTokenIndex}var NC="(\\s|\r\n|\n|\r)+",LC=new RegExp("^(".concat(NC,")?explain").concat(NC,"$")),CC=new RegExp("^(".concat(NC,")?\\S+").concat(NC));function _C(t,e){let s=function(t,e){let s=t.split(lC),a=t.match(lC),r="";a&&(r=a[0]);let i=0;return s.reduce(((t,s,a)=>(e.line-1===a&&(i=t.length?t.length+e.column:e.column-1),0===a?s:t+r+s)),""),i}(t,e),a=function(t,e){let s=t.slice(0,e-1),a=t.slice(e-1),r=s.lastIndexOf(";"),i=a.indexOf(";"),c=r>-1?r+1:0,n=i>-1?i+s.length:t.length;return{statement:t.slice(c,n),cursorIndex:e-c}}(t,s),r=a.statement.slice(0,a.cursorIndex).toLowerCase();return!(0!==s&&r.match(CC)&&!r.match(LC))}function PC(t,e,s){let a=new t(Oi.fromString(s)),r=new e(new $i(a));return r.removeErrorListeners(),r}function MC(t,e,s){let a=e;for(;a<t.size;){let e=t.get(a);if(e.type===s.CLOSING_BRACKET||e.type===s.SEMICOLON)return{cursorIndex:e.start,tokenIndex:a};if(e.type===s.OPENING_BRACKET)return;a++}let r=t.size-1;return{cursorIndex:t.get(r).start,tokenIndex:r}}function dC(t,e,s,a){let r=e;for(;r<s;){let e=t.get(r);if(e.type===a.JOIN)return e.stop+1;r++}}function UC(t,e,s,a){let r=s-1;for(;r>-1;){let s=t.get(r);if(s.type===e.SEMICOLON)return;if(s.type===a)return s;r--}}function mC(t,e,s,a,r,i,c,n,h){let E=IC(i,c,a.SPACE,!0);if(!E)throw new Error("Could not find actualCursorTokenIndex at Ln ".concat(c.line,", Col ").concat(c.column));let T={},o=function(t,e,s){let a=t.get(t.size-1).start,r=e,i=!1;for(;r>=0&&r<t.size;){let a=t.get(r);if(a.type===s.OPENING_BRACKET||a.type===s.CLOSING_BRACKET||a.type===s.SEMICOLON){if(i)break;r=e,i=!0}if(a.type===s.FROM){let i=MC(t,e,s);if(!i)break;let c=dC(t,r,i.tokenIndex,s),n=c?{start:c,end:i.cursorIndex}:void 0,h=UC(t,s,i.tokenIndex,s.SELECT),E=h?{start:h.start,end:i.cursorIndex}:void 0;return{start:a.start,end:i.cursorIndex,type:"from",joinTableQueryPosition:n,selectTableQueryPosition:E}}i?r++:r--,-1===r&&(r=e,i=!0)}for(r=e;r>=0;){let e=t.get(r);if(e.type===s.SEMICOLON)return;if(e.type===s.ALTER&&!UC(t,s,r,s.ALTER))return{start:e.start,end:a,type:"alter"};if(e.type===s.INSERT)return{start:e.start,end:a,type:"insert"};if(e.type===s.UPDATE)return{start:e.start,end:a,type:"update"};r--}}(i,E,a);if(o){let a=r(PC(t,e,n.slice(o.start,o.end)),o.type);if(s.visit(a),h&&o.joinTableQueryPosition){let a=r(PC(t,e,n.slice(o.joinTableQueryPosition.start,o.joinTableQueryPosition.end)),"from");s.visit(a)}if(o.selectTableQueryPosition){let a=r(PC(t,e,n.slice(o.selectTableQueryPosition.start,o.selectTableQueryPosition.end)),"select");s.visit(a)}let i=jc(s);i.length&&(T.tableContextSuggestion={tables:i});let c=function(t){return t.symbolTable.getNestedSymbolsOfTypeSync(zc).map((t=>{let{name:e}=t;return{name:e}}))}(s);c.length&&(T.suggestColumnAliases=c.map((t=>{let{name:e}=t;return{name:e}})))}return T}var DC={SPACE:cn.Whitespace,FROM:cn.FROM,OPENING_BRACKET:cn.OPEN_PAREN,CLOSING_BRACKET:cn.CLOSE_PAREN,ALTER:cn.ALTER,INSERT:cn.INSERT,UPDATE:cn.UPDATE,JOIN:cn.JOIN,SEMICOLON:cn.SEMI,SELECT:cn.SELECT};var pC=new Set(function(){let t=[],e=cn.Dollar,s=cn.Operator;for(let i=e;i<=s;i++)i!==cn.STAR&&t.push(i);let a=cn.ABS,r=cn.AfterEscapeStringConstantWithNewlineMode_Continued;for(let i=a;i<=r;i++)t.push(i);return t.push(cn.EOF),t}()),gC=new Set([cn.RULE_columnId,cn.RULE_functionName,cn.RULE_functionExpressionCommonSubexpr,cn.RULE_indexName,cn.RULE_triggerName,cn.RULE_constraintName,cn.RULE_sequenceName,cn.RULE_schemaName,cn.RULE_databaseName,cn.RULE_roleName,cn.RULE_identifier,cn.RULE_plsqlVariableName,cn.RULE_constTypeName,cn.RULE_columnNameKeyword,cn.RULE_unreservedKeyword,cn.RULE_plsqlUnreservedKeyword,cn.RULE_typeFunctionNameKeyword,cn.RULE_reservedKeyword]),xC=class extends AC{constructor(){super(),this.visitRelationExpression=t=>{try{var e;this.symbolTable.addNewSymbolOfType(qc,this.scope,(null===(e=t.qualifiedName())||void 0===e?void 0:e.getText())||"")}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.visitTableReference=t=>{try{var e,s,a,r,i;this.symbolTable.addNewSymbolOfType(qc,this.scope,(null===(e=t.relationExpression())||void 0===e||null===(s=e.qualifiedName())||void 0===s?void 0:s.getText())||"",null===(a=t.optionalAliasClause())||void 0===a||null===(r=a.tableAliasClause())||void 0===r||null===(i=r.tableAlias())||void 0===i?void 0:i.getText())}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.visitInsertTarget=t=>{try{var e,s;this.symbolTable.addNewSymbolOfType(qc,this.scope,(null===(e=t.qualifiedName())||void 0===e?void 0:e.getText())||"",null===(s=t.columnId())||void 0===s?void 0:s.getText())}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.visitTarget_label=t=>{try{var e,s;let a=(null===(e=t.columnLabel())||void 0===e?void 0:e.getText())||(null===(s=t.identifier())||void 0===s?void 0:s.getText());a&&this.symbolTable.addNewSymbolOfType(zc,this.scope,a)}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.visitViewName=t=>{try{this.symbolTable.addNewSymbolOfType(qc,this.scope,t.getText())}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.symbolTable=new Zc("",{allowDuplicateSymbols:!0}),this.scope=this.symbolTable.addNewSymbolOfType(Bc,void 0)}};function kC(t,e){if(!e)return t.root();switch(e){case"from":return t.nonAnsiJoin();case"alter":return t.alterTableStatement();case"insert":return t.insertStatement();case"update":return t.updateStatement();case"select":return t.selectStatement()}}var HC={Lexer:an,Parser:cn,tokenDictionary:DC,ignoredTokens:pC,rulesToVisit:gC,getParseTree:kC,enrichAutocompleteResult:function(t,e,s,a,r,i){let{shouldSuggestColumns:c,shouldSuggestColumnAliases:n,shouldSuggestConstraints:h,...E}=function(t,e,s){let a,r=!1,i=!1,c=!1,n=!1,h=!1,E=!1,T=!1,o=!1,R=!1,A=!1,S=!1;for(let[l,O]of t)if(uC(e,O))switch(l){case cn.RULE_functionExpressionCommonSubexpr:case cn.RULE_functionName:i=!0,r=!0;break;case cn.RULE_columnId:{let t=O.ruleList.includes(cn.RULE_qualifiedName)&&(O.ruleList.includes(cn.RULE_insertTarget)||O.ruleList.includes(cn.RULE_relationExpression)),r=!O.ruleList.includes(cn.RULE_createStatement)&&(t||O.ruleList.includes(cn.RULE_functionTable));UC(s,DC,e,cn.VIEW)&&!UC(s,DC,e,cn.Identifier)&&(O.ruleList.includes(cn.RULE_alterTableStatement)||O.ruleList.includes(cn.RULE_refreshMaterializedViewStatement)||O.ruleList.includes(cn.RULE_renameStatement)||O.ruleList.includes(cn.RULE_alterObjectDependsStatement)||O.ruleList.includes(cn.RULE_alterObjectSchemaStatement)||O.ruleList.includes(cn.RULE_dropStatement))?a="VIEWS":UC(s,DC,e,cn.TABLE)&&(O.ruleList.includes(cn.RULE_dropStatement)||r)?a="TABLES":r?a="ALL":!O.ruleList.includes(cn.RULE_selectLimitValue)&&!O.ruleList.includes(cn.RULE_selectOffsetValue)&&(A=!0,(O.ruleList.includes(cn.RULE_groupByItem)||O.ruleList.includes(cn.RULE_sortBy))&&(S=!0));break}case cn.RULE_indexName:c=!0;break;case cn.RULE_triggerName:n=!0;break;case cn.RULE_constraintName:R=!0;break;case cn.RULE_sequenceName:h=!0;break;case cn.RULE_schemaName:E=!0;break;case cn.RULE_databaseName:T=!0;break;case cn.RULE_roleName:o=!0}return{suggestViewsOrTables:a,suggestAggregateFunctions:r,suggestFunctions:i,suggestIndexes:c,suggestTriggers:n,shouldSuggestConstraints:R,suggestSequences:h,suggestSchemas:E,suggestDatabases:T,suggestRoles:o,shouldSuggestColumns:A,shouldSuggestColumnAliases:S}}(e,a,s),T={...t,...E,suggestTemplates:_C(i,r)};if(c||h||n){let t=new xC,{tableContextSuggestion:e,suggestColumnAliases:a}=mC(an,cn,t,DC,kC,s,r,i,!0);c&&e&&(T.suggestColumns=e),h&&e&&(T.suggestConstraints=e),n&&a&&(T.suggestColumnAliases=a)}return T}},GC=(Ki=class t extends $r{constructor(e){super(e),this.interpreter=new hi(this,t._ATN,t.decisionsToDFA,new Si)}get grammarFileName(){return"MySqlLexer.g4"}get literalNames(){return t.literalNames}get symbolicNames(){return t.symbolicNames}get ruleNames(){return t.ruleNames}get serializedATN(){return t._serializedATN}get channelNames(){return t.channelNames}get modeNames(){return t.modeNames}static get _ATN(){return t.__ATN||(t.__ATN=(new fr).deserialize(t._serializedATN)),t.__ATN}get vocabulary(){return t.vocabulary}},Ki.SPACE=1,Ki.SPEC_MYSQL_COMMENT=2,Ki.COMMENT_INPUT=3,Ki.LINE_COMMENT=4,Ki.ADD=5,Ki.ALL=6,Ki.ALTER=7,Ki.ALWAYS=8,Ki.ANALYZE=9,Ki.AND=10,Ki.ARRAY=11,Ki.AS=12,Ki.ASC=13,Ki.ATTRIBUTE=14,Ki.BEFORE=15,Ki.BETWEEN=16,Ki.BOTH=17,Ki.BUCKETS=18,Ki.BY=19,Ki.CALL=20,Ki.CASCADE=21,Ki.CASE=22,Ki.CAST=23,Ki.CHANGE=24,Ki.CHARACTER=25,Ki.CHECK=26,Ki.COLLATE=27,Ki.COLUMN=28,Ki.CONDITION=29,Ki.CONSTRAINT=30,Ki.CONTINUE=31,Ki.CONVERT=32,Ki.CREATE=33,Ki.CROSS=34,Ki.CURRENT=35,Ki.CURRENT_ROLE=36,Ki.CURRENT_USER=37,Ki.CURSOR=38,Ki.DATABASE=39,Ki.DATABASES=40,Ki.DECLARE=41,Ki.DEFAULT=42,Ki.DELAYED=43,Ki.DELETE=44,Ki.DESC=45,Ki.DESCRIBE=46,Ki.DETERMINISTIC=47,Ki.DIAGNOSTICS=48,Ki.DISTINCT=49,Ki.DISTINCTROW=50,Ki.DROP=51,Ki.EACH=52,Ki.ELSE=53,Ki.ELSEIF=54,Ki.EMPTY=55,Ki.ENCLOSED=56,Ki.ENFORCED=57,Ki.ESCAPED=58,Ki.EXCEPT=59,Ki.EXISTS=60,Ki.EXIT=61,Ki.EXPLAIN=62,Ki.FALSE=63,Ki.FETCH=64,Ki.FOR=65,Ki.FORCE=66,Ki.FOREIGN=67,Ki.FROM=68,Ki.FULLTEXT=69,Ki.GENERATED=70,Ki.GET=71,Ki.GRANT=72,Ki.GROUP=73,Ki.HAVING=74,Ki.HIGH_PRIORITY=75,Ki.HISTOGRAM=76,Ki.IF=77,Ki.IGNORE=78,Ki.IGNORED=79,Ki.IN=80,Ki.INDEX=81,Ki.INFILE=82,Ki.INNER=83,Ki.INOUT=84,Ki.INSERT=85,Ki.INTERVAL=86,Ki.INTO=87,Ki.IS=88,Ki.ITERATE=89,Ki.JOIN=90,Ki.KEY=91,Ki.KEYS=92,Ki.KILL=93,Ki.LATERAL=94,Ki.LEADING=95,Ki.LEAVE=96,Ki.LEFT=97,Ki.LIKE=98,Ki.LIMIT=99,Ki.LINEAR=100,Ki.LINES=101,Ki.LOAD=102,Ki.LOCK=103,Ki.LOCKED=104,Ki.LOOP=105,Ki.LOW_PRIORITY=106,Ki.MASTER_BIND=107,Ki.MASTER_SSL_VERIFY_SERVER_CERT=108,Ki.MATCH=109,Ki.MAXVALUE=110,Ki.MINVALUE=111,Ki.MODIFIES=112,Ki.NATURAL=113,Ki.NOT=114,Ki.NO_WRITE_TO_BINLOG=115,Ki.NULL_LITERAL=116,Ki.NUMBER=117,Ki.ON=118,Ki.OPTIMIZE=119,Ki.OPTION=120,Ki.OPTIONAL=121,Ki.OPTIONALLY=122,Ki.OR=123,Ki.ORDER=124,Ki.OUT=125,Ki.OUTER=126,Ki.OUTFILE=127,Ki.OVER=128,Ki.PARTITION=129,Ki.PRIMARY=130,Ki.PROCEDURE=131,Ki.PURGE=132,Ki.RANGE=133,Ki.READ=134,Ki.READS=135,Ki.REFERENCES=136,Ki.REGEXP=137,Ki.RELEASE=138,Ki.RENAME=139,Ki.REPEAT=140,Ki.REPLACE=141,Ki.REQUIRE=142,Ki.RESIGNAL=143,Ki.RESTRICT=144,Ki.RETAIN=145,Ki.RETURN=146,Ki.REVOKE=147,Ki.RIGHT=148,Ki.RLIKE=149,Ki.SCHEMA=150,Ki.SCHEMAS=151,Ki.SELECT=152,Ki.SET=153,Ki.SEPARATOR=154,Ki.SHOW=155,Ki.SIGNAL=156,Ki.SKIP_=157,Ki.SKIP_QUERY_REWRITE=158,Ki.SPATIAL=159,Ki.SQL=160,Ki.SQLEXCEPTION=161,Ki.SQLSTATE=162,Ki.SQLWARNING=163,Ki.SQL_BIG_RESULT=164,Ki.SQL_CALC_FOUND_ROWS=165,Ki.SQL_SMALL_RESULT=166,Ki.SSL=167,Ki.STACKED=168,Ki.STARTING=169,Ki.STATEMENT=170,Ki.STRAIGHT_JOIN=171,Ki.TABLE=172,Ki.TERMINATED=173,Ki.THEN=174,Ki.TO=175,Ki.TRAILING=176,Ki.TRIGGER=177,Ki.TRUE=178,Ki.UNDO=179,Ki.UNION=180,Ki.UNIQUE=181,Ki.UNLOCK=182,Ki.UNSIGNED=183,Ki.UPDATE=184,Ki.USAGE=185,Ki.USE=186,Ki.USING=187,Ki.VALUES=188,Ki.WHEN=189,Ki.WHERE=190,Ki.WHILE=191,Ki.WITH=192,Ki.WRITE=193,Ki.XOR=194,Ki.ZEROFILL=195,Ki.TINYINT=196,Ki.SMALLINT=197,Ki.MEDIUMINT=198,Ki.MIDDLEINT=199,Ki.INT=200,Ki.INT1=201,Ki.INT2=202,Ki.INT3=203,Ki.INT4=204,Ki.INT8=205,Ki.INTEGER=206,Ki.BIGINT=207,Ki.REAL=208,Ki.DOUBLE=209,Ki.PRECISION=210,Ki.FLOAT=211,Ki.FLOAT4=212,Ki.FLOAT8=213,Ki.DECIMAL=214,Ki.DEC=215,Ki.NUMERIC=216,Ki.DATE=217,Ki.TIME=218,Ki.TIMESTAMP=219,Ki.DATETIME=220,Ki.YEAR=221,Ki.CHAR=222,Ki.VARCHAR=223,Ki.NVARCHAR=224,Ki.NATIONAL=225,Ki.BINARY=226,Ki.VARBINARY=227,Ki.TINYBLOB=228,Ki.BLOB=229,Ki.MEDIUMBLOB=230,Ki.LONG=231,Ki.LONGBLOB=232,Ki.TINYTEXT=233,Ki.TEXT=234,Ki.MEDIUMTEXT=235,Ki.LONGTEXT=236,Ki.ENUM=237,Ki.VARYING=238,Ki.SERIAL=239,Ki.YEAR_MONTH=240,Ki.DAY_HOUR=241,Ki.DAY_MINUTE=242,Ki.DAY_SECOND=243,Ki.HOUR_MINUTE=244,Ki.HOUR_SECOND=245,Ki.MINUTE_SECOND=246,Ki.SECOND_MICROSECOND=247,Ki.MINUTE_MICROSECOND=248,Ki.HOUR_MICROSECOND=249,Ki.DAY_MICROSECOND=250,Ki.JSON_ARRAY=251,Ki.JSON_ARRAYAGG=252,Ki.JSON_ARRAY_APPEND=253,Ki.JSON_ARRAY_INSERT=254,Ki.JSON_CONTAINS=255,Ki.JSON_CONTAINS_PATH=256,Ki.JSON_DEPTH=257,Ki.JSON_EXTRACT=258,Ki.JSON_INSERT=259,Ki.JSON_KEYS=260,Ki.JSON_LENGTH=261,Ki.JSON_MERGE=262,Ki.JSON_MERGE_PATCH=263,Ki.JSON_MERGE_PRESERVE=264,Ki.JSON_OBJECT=265,Ki.JSON_OBJECTAGG=266,Ki.JSON_OVERLAPS=267,Ki.JSON_PRETTY=268,Ki.JSON_QUOTE=269,Ki.JSON_REMOVE=270,Ki.JSON_REPLACE=271,Ki.JSON_SCHEMA_VALID=272,Ki.JSON_SCHEMA_VALIDATION_REPORT=273,Ki.JSON_SEARCH=274,Ki.JSON_SET=275,Ki.JSON_STORAGE_FREE=276,Ki.JSON_STORAGE_SIZE=277,Ki.JSON_TABLE=278,Ki.JSON_TYPE=279,Ki.JSON_UNQUOTE=280,Ki.JSON_VALID=281,Ki.JSON_VALUE=282,Ki.NESTED=283,Ki.ORDINALITY=284,Ki.PATH=285,Ki.AVG=286,Ki.BIT_AND=287,Ki.BIT_OR=288,Ki.BIT_XOR=289,Ki.COUNT=290,Ki.CUME_DIST=291,Ki.DENSE_RANK=292,Ki.FIRST_VALUE=293,Ki.GROUP_CONCAT=294,Ki.LAG=295,Ki.LAST_VALUE=296,Ki.LEAD=297,Ki.MAX=298,Ki.MIN=299,Ki.NTILE=300,Ki.NTH_VALUE=301,Ki.PERCENT_RANK=302,Ki.RANK=303,Ki.ROW_NUMBER=304,Ki.STD=305,Ki.STDDEV=306,Ki.STDDEV_POP=307,Ki.STDDEV_SAMP=308,Ki.SUM=309,Ki.VAR_POP=310,Ki.VAR_SAMP=311,Ki.VARIANCE=312,Ki.CURRENT_DATE=313,Ki.CURRENT_TIME=314,Ki.CURRENT_TIMESTAMP=315,Ki.LOCALTIME=316,Ki.CURDATE=317,Ki.CURTIME=318,Ki.DATE_ADD=319,Ki.DATE_SUB=320,Ki.EXTRACT=321,Ki.LOCALTIMESTAMP=322,Ki.NOW=323,Ki.POSITION=324,Ki.SUBSTR=325,Ki.SUBSTRING=326,Ki.SYSDATE=327,Ki.TRIM=328,Ki.UTC_DATE=329,Ki.UTC_TIME=330,Ki.UTC_TIMESTAMP=331,Ki.ACCOUNT=332,Ki.ACTION=333,Ki.AFTER=334,Ki.AGGREGATE=335,Ki.ALGORITHM=336,Ki.ANY=337,Ki.AT=338,Ki.AUTHORS=339,Ki.AUTOCOMMIT=340,Ki.AUTOEXTEND_SIZE=341,Ki.AUTO_INCREMENT=342,Ki.AVG_ROW_LENGTH=343,Ki.BEGIN=344,Ki.BINLOG=345,Ki.BIT=346,Ki.BLOCK=347,Ki.BOOL=348,Ki.BOOLEAN=349,Ki.BTREE=350,Ki.CACHE=351,Ki.CASCADED=352,Ki.CHAIN=353,Ki.CHANGED=354,Ki.CHANNEL=355,Ki.CHECKSUM=356,Ki.PAGE_CHECKSUM=357,Ki.CIPHER=358,Ki.CLASS_ORIGIN=359,Ki.CLIENT=360,Ki.CLOSE=361,Ki.CLUSTERING=362,Ki.COALESCE=363,Ki.CODE=364,Ki.COLUMNS=365,Ki.COLUMN_FORMAT=366,Ki.COLUMN_NAME=367,Ki.COMMENT=368,Ki.COMMIT=369,Ki.COMPACT=370,Ki.COMPLETION=371,Ki.COMPRESSED=372,Ki.COMPRESSION=373,Ki.CONCURRENT=374,Ki.CONNECT=375,Ki.CONNECTION=376,Ki.CONSISTENT=377,Ki.CONSTRAINT_CATALOG=378,Ki.CONSTRAINT_SCHEMA=379,Ki.CONSTRAINT_NAME=380,Ki.CONTAINS=381,Ki.CONTEXT=382,Ki.CONTRIBUTORS=383,Ki.COPY=384,Ki.CPU=385,Ki.CYCLE=386,Ki.CURSOR_NAME=387,Ki.DATA=388,Ki.DATAFILE=389,Ki.DEALLOCATE=390,Ki.DEFAULT_AUTH=391,Ki.DEFINER=392,Ki.DELAY_KEY_WRITE=393,Ki.DES_KEY_FILE=394,Ki.DIRECTORY=395,Ki.DISABLE=396,Ki.DISCARD=397,Ki.DISK=398,Ki.DO=399,Ki.DUMPFILE=400,Ki.DUPLICATE=401,Ki.DYNAMIC=402,Ki.ENABLE=403,Ki.ENCRYPTED=404,Ki.ENCRYPTION=405,Ki.ENCRYPTION_KEY_ID=406,Ki.END=407,Ki.ENDS=408,Ki.ENGINE=409,Ki.ENGINES=410,Ki.ERROR=411,Ki.ERRORS=412,Ki.ESCAPE=413,Ki.EVEN=414,Ki.EVENT=415,Ki.EVENTS=416,Ki.EVERY=417,Ki.EXCHANGE=418,Ki.EXCLUSIVE=419,Ki.EXPIRE=420,Ki.EXPORT=421,Ki.EXTENDED=422,Ki.EXTENT_SIZE=423,Ki.FAILED_LOGIN_ATTEMPTS=424,Ki.FAST=425,Ki.FAULTS=426,Ki.FIELDS=427,Ki.FILE_BLOCK_SIZE=428,Ki.FILTER=429,Ki.FIRST=430,Ki.FIXED=431,Ki.FLUSH=432,Ki.FOLLOWING=433,Ki.FOLLOWS=434,Ki.FOUND=435,Ki.FULL=436,Ki.FUNCTION=437,Ki.GENERAL=438,Ki.GLOBAL=439,Ki.GRANTS=440,Ki.GROUP_REPLICATION=441,Ki.HANDLER=442,Ki.HASH=443,Ki.HELP=444,Ki.HISTORY=445,Ki.HOST=446,Ki.HOSTS=447,Ki.IDENTIFIED=448,Ki.IGNORE_SERVER_IDS=449,Ki.IMPORT=450,Ki.INCREMENT=451,Ki.INDEXES=452,Ki.INITIAL_SIZE=453,Ki.INPLACE=454,Ki.INSERT_METHOD=455,Ki.INSTALL=456,Ki.INSTANCE=457,Ki.INSTANT=458,Ki.INVISIBLE=459,Ki.INVOKER=460,Ki.IO=461,Ki.IO_THREAD=462,Ki.IPC=463,Ki.ISOLATION=464,Ki.ISSUER=465,Ki.JSON=466,Ki.KEY_BLOCK_SIZE=467,Ki.LANGUAGE=468,Ki.LAST=469,Ki.LEAVES=470,Ki.LESS=471,Ki.LEVEL=472,Ki.LIST=473,Ki.LOCAL=474,Ki.LOGFILE=475,Ki.LOGS=476,Ki.MASTER=477,Ki.MASTER_AUTO_POSITION=478,Ki.MASTER_CONNECT_RETRY=479,Ki.MASTER_DELAY=480,Ki.MASTER_HEARTBEAT_PERIOD=481,Ki.MASTER_HOST=482,Ki.MASTER_LOG_FILE=483,Ki.MASTER_LOG_POS=484,Ki.MASTER_PASSWORD=485,Ki.MASTER_PORT=486,Ki.MASTER_RETRY_COUNT=487,Ki.MASTER_SSL=488,Ki.MASTER_SSL_CA=489,Ki.MASTER_SSL_CAPATH=490,Ki.MASTER_SSL_CERT=491,Ki.MASTER_SSL_CIPHER=492,Ki.MASTER_SSL_CRL=493,Ki.MASTER_SSL_CRLPATH=494,Ki.MASTER_SSL_KEY=495,Ki.MASTER_TLS_VERSION=496,Ki.MASTER_USER=497,Ki.MAX_CONNECTIONS_PER_HOUR=498,Ki.MAX_QUERIES_PER_HOUR=499,Ki.MAX_ROWS=500,Ki.MAX_SIZE=501,Ki.MAX_UPDATES_PER_HOUR=502,Ki.MAX_USER_CONNECTIONS=503,Ki.MEDIUM=504,Ki.MEMBER=505,Ki.MERGE=506,Ki.MESSAGE_TEXT=507,Ki.MID=508,Ki.MIGRATE=509,Ki.MIN_ROWS=510,Ki.MODE=511,Ki.MODIFY=512,Ki.MUTEX=513,Ki.MYSQL=514,Ki.MYSQL_ERRNO=515,Ki.NAME=516,Ki.NAMES=517,Ki.NCHAR=518,Ki.NEVER=519,Ki.NEXT=520,Ki.NO=521,Ki.NOCACHE=522,Ki.NOCOPY=523,Ki.NOCYCLE=524,Ki.NOMAXVALUE=525,Ki.NOMINVALUE=526,Ki.NOWAIT=527,Ki.NODEGROUP=528,Ki.NONE=529,Ki.ODBC=530,Ki.OFFLINE=531,Ki.OFFSET=532,Ki.OF=533,Ki.OJ=534,Ki.OLD_PASSWORD=535,Ki.ONE=536,Ki.ONLINE=537,Ki.ONLY=538,Ki.OPEN=539,Ki.OPTIMIZER_COSTS=540,Ki.OPTIONS=541,Ki.OWNER=542,Ki.PACK_KEYS=543,Ki.PAGE=544,Ki.PAGE_COMPRESSED=545,Ki.PAGE_COMPRESSION_LEVEL=546,Ki.PARSER=547,Ki.PARTIAL=548,Ki.PARTITIONING=549,Ki.PARTITIONS=550,Ki.PASSWORD=551,Ki.PASSWORD_LOCK_TIME=552,Ki.PHASE=553,Ki.PLUGIN=554,Ki.PLUGIN_DIR=555,Ki.PLUGINS=556,Ki.PORT=557,Ki.PRECEDES=558,Ki.PRECEDING=559,Ki.PREPARE=560,Ki.PRESERVE=561,Ki.PREV=562,Ki.PROCESSLIST=563,Ki.PROFILE=564,Ki.PROFILES=565,Ki.PROXY=566,Ki.QUERY=567,Ki.QUICK=568,Ki.REBUILD=569,Ki.RECOVER=570,Ki.RECURSIVE=571,Ki.REDO_BUFFER_SIZE=572,Ki.REDUNDANT=573,Ki.RELAY=574,Ki.RELAY_LOG_FILE=575,Ki.RELAY_LOG_POS=576,Ki.RELAYLOG=577,Ki.REMOVE=578,Ki.REORGANIZE=579,Ki.REPAIR=580,Ki.REPLICATE_DO_DB=581,Ki.REPLICATE_DO_TABLE=582,Ki.REPLICATE_IGNORE_DB=583,Ki.REPLICATE_IGNORE_TABLE=584,Ki.REPLICATE_REWRITE_DB=585,Ki.REPLICATE_WILD_DO_TABLE=586,Ki.REPLICATE_WILD_IGNORE_TABLE=587,Ki.REPLICATION=588,Ki.RESET=589,Ki.RESTART=590,Ki.RESUME=591,Ki.RETURNED_SQLSTATE=592,Ki.RETURNING=593,Ki.RETURNS=594,Ki.REUSE=595,Ki.ROLE=596,Ki.ROLLBACK=597,Ki.ROLLUP=598,Ki.ROTATE=599,Ki.ROW=600,Ki.ROWS=601,Ki.ROW_FORMAT=602,Ki.RTREE=603,Ki.SAVEPOINT=604,Ki.SCHEDULE=605,Ki.SECURITY=606,Ki.SEQUENCE=607,Ki.SERVER=608,Ki.SESSION=609,Ki.SHARE=610,Ki.SHARED=611,Ki.SIGNED=612,Ki.SIMPLE=613,Ki.SLAVE=614,Ki.SLOW=615,Ki.SNAPSHOT=616,Ki.SOCKET=617,Ki.SOME=618,Ki.SONAME=619,Ki.SOUNDS=620,Ki.SOURCE=621,Ki.SQL_AFTER_GTIDS=622,Ki.SQL_AFTER_MTS_GAPS=623,Ki.SQL_BEFORE_GTIDS=624,Ki.SQL_BUFFER_RESULT=625,Ki.SQL_CACHE=626,Ki.SQL_NO_CACHE=627,Ki.SQL_THREAD=628,Ki.START=629,Ki.STARTS=630,Ki.STATS_AUTO_RECALC=631,Ki.STATS_PERSISTENT=632,Ki.STATS_SAMPLE_PAGES=633,Ki.STATUS=634,Ki.STOP=635,Ki.STORAGE=636,Ki.STORED=637,Ki.STRING=638,Ki.SUBCLASS_ORIGIN=639,Ki.SUBJECT=640,Ki.SUBPARTITION=641,Ki.SUBPARTITIONS=642,Ki.SUSPEND=643,Ki.SWAPS=644,Ki.SWITCHES=645,Ki.TABLE_NAME=646,Ki.TABLESPACE=647,Ki.TABLE_TYPE=648,Ki.TEMPORARY=649,Ki.TEMPTABLE=650,Ki.THAN=651,Ki.TRADITIONAL=652,Ki.TRANSACTION=653,Ki.TRANSACTIONAL=654,Ki.TRIGGERS=655,Ki.TRUNCATE=656,Ki.UNBOUNDED=657,Ki.UNDEFINED=658,Ki.UNDOFILE=659,Ki.UNDO_BUFFER_SIZE=660,Ki.UNINSTALL=661,Ki.UNKNOWN=662,Ki.UNTIL=663,Ki.UPGRADE=664,Ki.USER=665,Ki.USE_FRM=666,Ki.USER_RESOURCES=667,Ki.VALIDATION=668,Ki.VALUE=669,Ki.VARIABLES=670,Ki.VIEW=671,Ki.VIRTUAL=672,Ki.VISIBLE=673,Ki.WAIT=674,Ki.WARNINGS=675,Ki.WINDOW=676,Ki.WITHOUT=677,Ki.WORK=678,Ki.WRAPPER=679,Ki.X509=680,Ki.XA=681,Ki.XML=682,Ki.YES=683,Ki.EUR=684,Ki.USA=685,Ki.JIS=686,Ki.ISO=687,Ki.INTERNAL=688,Ki.QUARTER=689,Ki.MONTH=690,Ki.DAY=691,Ki.HOUR=692,Ki.MINUTE=693,Ki.WEEK=694,Ki.SECOND=695,Ki.MICROSECOND=696,Ki.ADMIN=697,Ki.APPLICATION_PASSWORD_ADMIN=698,Ki.AUDIT_ABORT_EXEMPT=699,Ki.AUDIT_ADMIN=700,Ki.AUTHENTICATION_POLICY_ADMIN=701,Ki.BACKUP_ADMIN=702,Ki.BINLOG_ADMIN=703,Ki.BINLOG_ENCRYPTION_ADMIN=704,Ki.CLONE_ADMIN=705,Ki.CONNECTION_ADMIN=706,Ki.ENCRYPTION_KEY_ADMIN=707,Ki.EXECUTE=708,Ki.FILE=709,Ki.FIREWALL_ADMIN=710,Ki.FIREWALL_EXEMPT=711,Ki.FIREWALL_USER=712,Ki.FLUSH_OPTIMIZER_COSTS=713,Ki.FLUSH_STATUS=714,Ki.FLUSH_TABLES=715,Ki.FLUSH_USER_RESOURCES=716,Ki.GROUP_REPLICATION_ADMIN=717,Ki.INNODB_REDO_LOG_ARCHIVE=718,Ki.INNODB_REDO_LOG_ENABLE=719,Ki.INVOKE=720,Ki.LAMBDA=721,Ki.NDB_STORED_USER=722,Ki.PASSWORDLESS_USER_ADMIN=723,Ki.PERSIST_RO_VARIABLES_ADMIN=724,Ki.PRIVILEGES=725,Ki.PROCESS=726,Ki.RELOAD=727,Ki.REPLICATION_APPLIER=728,Ki.REPLICATION_SLAVE_ADMIN=729,Ki.RESOURCE_GROUP_ADMIN=730,Ki.RESOURCE_GROUP_USER=731,Ki.ROLE_ADMIN=732,Ki.ROUTINE=733,Ki.S3=734,Ki.SERVICE_CONNECTION_ADMIN=735,Ki.SESSION_VARIABLES_ADMIN=736,Ki.SET_USER_ID=737,Ki.SHOW_ROUTINE=738,Ki.SHUTDOWN=739,Ki.SUPER=740,Ki.SYSTEM_VARIABLES_ADMIN=741,Ki.TABLES=742,Ki.TABLE_ENCRYPTION_ADMIN=743,Ki.VERSION_TOKEN_ADMIN=744,Ki.XA_RECOVER_ADMIN=745,Ki.ARMSCII8=746,Ki.ASCII=747,Ki.BIG5=748,Ki.CP1250=749,Ki.CP1251=750,Ki.CP1256=751,Ki.CP1257=752,Ki.CP850=753,Ki.CP852=754,Ki.CP866=755,Ki.CP932=756,Ki.DEC8=757,Ki.EUCJPMS=758,Ki.EUCKR=759,Ki.GB18030=760,Ki.GB2312=761,Ki.GBK=762,Ki.GEOSTD8=763,Ki.GREEK=764,Ki.HEBREW=765,Ki.HP8=766,Ki.KEYBCS2=767,Ki.KOI8R=768,Ki.KOI8U=769,Ki.LATIN1=770,Ki.LATIN2=771,Ki.LATIN5=772,Ki.LATIN7=773,Ki.MACCE=774,Ki.MACROMAN=775,Ki.SJIS=776,Ki.SWE7=777,Ki.TIS620=778,Ki.UCS2=779,Ki.UJIS=780,Ki.UTF16=781,Ki.UTF16LE=782,Ki.UTF32=783,Ki.UTF8=784,Ki.UTF8MB3=785,Ki.UTF8MB4=786,Ki.ARCHIVE=787,Ki.BLACKHOLE=788,Ki.CSV=789,Ki.FEDERATED=790,Ki.INNODB=791,Ki.MEMORY=792,Ki.MRG_MYISAM=793,Ki.MYISAM=794,Ki.NDB=795,Ki.NDBCLUSTER=796,Ki.PERFORMANCE_SCHEMA=797,Ki.TOKUDB=798,Ki.REPEATABLE=799,Ki.COMMITTED=800,Ki.UNCOMMITTED=801,Ki.SERIALIZABLE=802,Ki.GEOMETRYCOLLECTION=803,Ki.GEOMCOLLECTION=804,Ki.GEOMETRY=805,Ki.LINESTRING=806,Ki.MULTILINESTRING=807,Ki.MULTIPOINT=808,Ki.MULTIPOLYGON=809,Ki.POINT=810,Ki.POLYGON=811,Ki.ABS=812,Ki.ACOS=813,Ki.ADDDATE=814,Ki.ADDTIME=815,Ki.AES_DECRYPT=816,Ki.AES_ENCRYPT=817,Ki.AREA=818,Ki.ASBINARY=819,Ki.ASIN=820,Ki.ASTEXT=821,Ki.ASWKB=822,Ki.ASWKT=823,Ki.ASYMMETRIC_DECRYPT=824,Ki.ASYMMETRIC_DERIVE=825,Ki.ASYMMETRIC_ENCRYPT=826,Ki.ASYMMETRIC_SIGN=827,Ki.ASYMMETRIC_VERIFY=828,Ki.ATAN=829,Ki.ATAN2=830,Ki.BENCHMARK=831,Ki.BIN=832,Ki.BIT_COUNT=833,Ki.BIT_LENGTH=834,Ki.BUFFER=835,Ki.CATALOG_NAME=836,Ki.CEIL=837,Ki.CEILING=838,Ki.CENTROID=839,Ki.CHARACTER_LENGTH=840,Ki.CHARSET=841,Ki.CHAR_LENGTH=842,Ki.COERCIBILITY=843,Ki.COLLATION=844,Ki.COMPRESS=845,Ki.CONCAT=846,Ki.CONCAT_WS=847,Ki.CONNECTION_ID=848,Ki.CONV=849,Ki.CONVERT_TZ=850,Ki.COS=851,Ki.COT=852,Ki.CRC32=853,Ki.CREATE_ASYMMETRIC_PRIV_KEY=854,Ki.CREATE_ASYMMETRIC_PUB_KEY=855,Ki.CREATE_DH_PARAMETERS=856,Ki.CREATE_DIGEST=857,Ki.CROSSES=858,Ki.DATEDIFF=859,Ki.DATE_FORMAT=860,Ki.DAYNAME=861,Ki.DAYOFMONTH=862,Ki.DAYOFWEEK=863,Ki.DAYOFYEAR=864,Ki.DECODE=865,Ki.DEGREES=866,Ki.DES_DECRYPT=867,Ki.DES_ENCRYPT=868,Ki.DIMENSION=869,Ki.DISJOINT=870,Ki.ELT=871,Ki.ENCODE=872,Ki.ENCRYPT=873,Ki.ENDPOINT=874,Ki.ENGINE_ATTRIBUTE=875,Ki.ENVELOPE=876,Ki.EQUALS=877,Ki.EXP=878,Ki.EXPORT_SET=879,Ki.EXTERIORRING=880,Ki.EXTRACTVALUE=881,Ki.FIELD=882,Ki.FIND_IN_SET=883,Ki.FLOOR=884,Ki.FORMAT=885,Ki.FOUND_ROWS=886,Ki.FROM_BASE64=887,Ki.FROM_DAYS=888,Ki.FROM_UNIXTIME=889,Ki.GEOMCOLLFROMTEXT=890,Ki.GEOMCOLLFROMWKB=891,Ki.GEOMETRYCOLLECTIONFROMTEXT=892,Ki.GEOMETRYCOLLECTIONFROMWKB=893,Ki.GEOMETRYFROMTEXT=894,Ki.GEOMETRYFROMWKB=895,Ki.GEOMETRYN=896,Ki.GEOMETRYTYPE=897,Ki.GEOMFROMTEXT=898,Ki.GEOMFROMWKB=899,Ki.GET_FORMAT=900,Ki.GET_LOCK=901,Ki.GLENGTH=902,Ki.GREATEST=903,Ki.GTID_SUBSET=904,Ki.GTID_SUBTRACT=905,Ki.HEX=906,Ki.IFNULL=907,Ki.INET6_ATON=908,Ki.INET6_NTOA=909,Ki.INET_ATON=910,Ki.INET_NTOA=911,Ki.INSTR=912,Ki.INTERIORRINGN=913,Ki.INTERSECTS=914,Ki.ISCLOSED=915,Ki.ISEMPTY=916,Ki.ISNULL=917,Ki.ISSIMPLE=918,Ki.IS_FREE_LOCK=919,Ki.IS_IPV4=920,Ki.IS_IPV4_COMPAT=921,Ki.IS_IPV4_MAPPED=922,Ki.IS_IPV6=923,Ki.IS_USED_LOCK=924,Ki.LAST_INSERT_ID=925,Ki.LCASE=926,Ki.LEAST=927,Ki.LENGTH=928,Ki.LINEFROMTEXT=929,Ki.LINEFROMWKB=930,Ki.LINESTRINGFROMTEXT=931,Ki.LINESTRINGFROMWKB=932,Ki.LN=933,Ki.LOAD_FILE=934,Ki.LOCATE=935,Ki.LOG=936,Ki.LOG10=937,Ki.LOG2=938,Ki.LOWER=939,Ki.LPAD=940,Ki.LTRIM=941,Ki.MAKEDATE=942,Ki.MAKETIME=943,Ki.MAKE_SET=944,Ki.MASTER_POS_WAIT=945,Ki.MBRCONTAINS=946,Ki.MBRDISJOINT=947,Ki.MBREQUAL=948,Ki.MBRINTERSECTS=949,Ki.MBROVERLAPS=950,Ki.MBRTOUCHES=951,Ki.MBRWITHIN=952,Ki.MD5=953,Ki.MLINEFROMTEXT=954,Ki.MLINEFROMWKB=955,Ki.MONTHNAME=956,Ki.MPOINTFROMTEXT=957,Ki.MPOINTFROMWKB=958,Ki.MPOLYFROMTEXT=959,Ki.MPOLYFROMWKB=960,Ki.MULTILINESTRINGFROMTEXT=961,Ki.MULTILINESTRINGFROMWKB=962,Ki.MULTIPOINTFROMTEXT=963,Ki.MULTIPOINTFROMWKB=964,Ki.MULTIPOLYGONFROMTEXT=965,Ki.MULTIPOLYGONFROMWKB=966,Ki.NAME_CONST=967,Ki.NULLIF=968,Ki.NUMGEOMETRIES=969,Ki.NUMINTERIORRINGS=970,Ki.NUMPOINTS=971,Ki.OCT=972,Ki.OCTET_LENGTH=973,Ki.ORD=974,Ki.OVERLAPS=975,Ki.PERIOD_ADD=976,Ki.PERIOD_DIFF=977,Ki.PI=978,Ki.POINTFROMTEXT=979,Ki.POINTFROMWKB=980,Ki.POINTN=981,Ki.POLYFROMTEXT=982,Ki.POLYFROMWKB=983,Ki.POLYGONFROMTEXT=984,Ki.POLYGONFROMWKB=985,Ki.POW=986,Ki.POWER=987,Ki.QUOTE=988,Ki.RADIANS=989,Ki.RAND=990,Ki.RANDOM=991,Ki.RANDOM_BYTES=992,Ki.RELEASE_LOCK=993,Ki.REVERSE=994,Ki.ROUND=995,Ki.ROW_COUNT=996,Ki.RPAD=997,Ki.RTRIM=998,Ki.SEC_TO_TIME=999,Ki.SECONDARY_ENGINE_ATTRIBUTE=1e3,Ki.SESSION_USER=1001,Ki.SHA=1002,Ki.SHA1=1003,Ki.SHA2=1004,Ki.SCHEMA_NAME=1005,Ki.SIGN=1006,Ki.SIN=1007,Ki.SLEEP=1008,Ki.SOUNDEX=1009,Ki.SQL_THREAD_WAIT_AFTER_GTIDS=1010,Ki.SQRT=1011,Ki.SRID=1012,Ki.STARTPOINT=1013,Ki.STRCMP=1014,Ki.STR_TO_DATE=1015,Ki.ST_AREA=1016,Ki.ST_ASBINARY=1017,Ki.ST_ASTEXT=1018,Ki.ST_ASWKB=1019,Ki.ST_ASWKT=1020,Ki.ST_BUFFER=1021,Ki.ST_CENTROID=1022,Ki.ST_CONTAINS=1023,Ki.ST_CROSSES=1024,Ki.ST_DIFFERENCE=1025,Ki.ST_DIMENSION=1026,Ki.ST_DISJOINT=1027,Ki.ST_DISTANCE=1028,Ki.ST_ENDPOINT=1029,Ki.ST_ENVELOPE=1030,Ki.ST_EQUALS=1031,Ki.ST_EXTERIORRING=1032,Ki.ST_GEOMCOLLFROMTEXT=1033,Ki.ST_GEOMCOLLFROMTXT=1034,Ki.ST_GEOMCOLLFROMWKB=1035,Ki.ST_GEOMETRYCOLLECTIONFROMTEXT=1036,Ki.ST_GEOMETRYCOLLECTIONFROMWKB=1037,Ki.ST_GEOMETRYFROMTEXT=1038,Ki.ST_GEOMETRYFROMWKB=1039,Ki.ST_GEOMETRYN=1040,Ki.ST_GEOMETRYTYPE=1041,Ki.ST_GEOMFROMTEXT=1042,Ki.ST_GEOMFROMWKB=1043,Ki.ST_INTERIORRINGN=1044,Ki.ST_INTERSECTION=1045,Ki.ST_INTERSECTS=1046,Ki.ST_ISCLOSED=1047,Ki.ST_ISEMPTY=1048,Ki.ST_ISSIMPLE=1049,Ki.ST_LINEFROMTEXT=1050,Ki.ST_LINEFROMWKB=1051,Ki.ST_LINESTRINGFROMTEXT=1052,Ki.ST_LINESTRINGFROMWKB=1053,Ki.ST_NUMGEOMETRIES=1054,Ki.ST_NUMINTERIORRING=1055,Ki.ST_NUMINTERIORRINGS=1056,Ki.ST_NUMPOINTS=1057,Ki.ST_OVERLAPS=1058,Ki.ST_POINTFROMTEXT=1059,Ki.ST_POINTFROMWKB=1060,Ki.ST_POINTN=1061,Ki.ST_POLYFROMTEXT=1062,Ki.ST_POLYFROMWKB=1063,Ki.ST_POLYGONFROMTEXT=1064,Ki.ST_POLYGONFROMWKB=1065,Ki.ST_SRID=1066,Ki.ST_STARTPOINT=1067,Ki.ST_SYMDIFFERENCE=1068,Ki.ST_TOUCHES=1069,Ki.ST_UNION=1070,Ki.ST_WITHIN=1071,Ki.ST_X=1072,Ki.ST_Y=1073,Ki.SUBDATE=1074,Ki.SUBSTRING_INDEX=1075,Ki.SUBTIME=1076,Ki.SYSTEM_USER=1077,Ki.TAN=1078,Ki.TIMEDIFF=1079,Ki.TIMESTAMPADD=1080,Ki.TIMESTAMPDIFF=1081,Ki.TIME_FORMAT=1082,Ki.TIME_TO_SEC=1083,Ki.TOUCHES=1084,Ki.TO_BASE64=1085,Ki.TO_DAYS=1086,Ki.TO_SECONDS=1087,Ki.TP_CONNECTION_ADMIN=1088,Ki.UCASE=1089,Ki.UNCOMPRESS=1090,Ki.UNCOMPRESSED_LENGTH=1091,Ki.UNHEX=1092,Ki.UNIX_TIMESTAMP=1093,Ki.UPDATEXML=1094,Ki.UPPER=1095,Ki.UUID=1096,Ki.UUID_SHORT=1097,Ki.VALIDATE_PASSWORD_STRENGTH=1098,Ki.VERSION=1099,Ki.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS=1100,Ki.WEEKDAY=1101,Ki.WEEKOFYEAR=1102,Ki.WEIGHT_STRING=1103,Ki.WITHIN=1104,Ki.YEARWEEK=1105,Ki.Y_FUNCTION=1106,Ki.X_FUNCTION=1107,Ki.VAR_ASSIGN=1108,Ki.PLUS_ASSIGN=1109,Ki.MINUS_ASSIGN=1110,Ki.MULT_ASSIGN=1111,Ki.DIV_ASSIGN=1112,Ki.MOD_ASSIGN=1113,Ki.AND_ASSIGN=1114,Ki.XOR_ASSIGN=1115,Ki.OR_ASSIGN=1116,Ki.STAR=1117,Ki.DIVIDE=1118,Ki.MODULE=1119,Ki.PLUS=1120,Ki.MINUS=1121,Ki.DIV=1122,Ki.MOD=1123,Ki.EQUAL_SYMBOL=1124,Ki.GREATER_SYMBOL=1125,Ki.LESS_SYMBOL=1126,Ki.EXCLAMATION_SYMBOL=1127,Ki.BIT_NOT_OP=1128,Ki.BIT_OR_OP=1129,Ki.BIT_AND_OP=1130,Ki.BIT_XOR_OP=1131,Ki.DOT=1132,Ki.LR_BRACKET=1133,Ki.RR_BRACKET=1134,Ki.COMMA=1135,Ki.SEMI=1136,Ki.AT_SIGN=1137,Ki.ZERO_DECIMAL=1138,Ki.ONE_DECIMAL=1139,Ki.TWO_DECIMAL=1140,Ki.SINGLE_QUOTE_SYMB=1141,Ki.DOUBLE_QUOTE_SYMB=1142,Ki.REVERSE_QUOTE_SYMB=1143,Ki.COLON_SYMB=1144,Ki.CHARSET_REVERSE_QOUTE_STRING=1145,Ki.FILESIZE_LITERAL=1146,Ki.START_NATIONAL_STRING_LITERAL=1147,Ki.STRING_LITERAL=1148,Ki.DECIMAL_LITERAL=1149,Ki.HEXADECIMAL_LITERAL=1150,Ki.REAL_LITERAL=1151,Ki.NULL_SPEC_LITERAL=1152,Ki.BIT_STRING=1153,Ki.STRING_CHARSET_NAME=1154,Ki.DOT_ID=1155,Ki.ID=1156,Ki.REVERSE_QUOTE_ID=1157,Ki.HOST_IP_ADDRESS=1158,Ki.LOCAL_ID=1159,Ki.GLOBAL_ID=1160,Ki.ERROR_RECONGNIGION=1161,Ki.channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN","MYSQLCOMMENT","ERRORCHANNEL"],Ki.literalNames=[null,null,null,null,null,"'ADD'","'ALL'","'ALTER'","'ALWAYS'","'ANALYZE'","'AND'","'ARRAY'","'AS'","'ASC'","'ATTRIBUTE'","'BEFORE'","'BETWEEN'","'BOTH'","'BUCKETS'","'BY'","'CALL'","'CASCADE'","'CASE'","'CAST'","'CHANGE'","'CHARACTER'","'CHECK'","'COLLATE'","'COLUMN'","'CONDITION'","'CONSTRAINT'","'CONTINUE'","'CONVERT'","'CREATE'","'CROSS'","'CURRENT'","'CURRENT_ROLE'","'CURRENT_USER'","'CURSOR'","'DATABASE'","'DATABASES'","'DECLARE'","'DEFAULT'","'DELAYED'","'DELETE'","'DESC'","'DESCRIBE'","'DETERMINISTIC'","'DIAGNOSTICS'","'DISTINCT'","'DISTINCTROW'","'DROP'","'EACH'","'ELSE'","'ELSEIF'","'EMPTY'","'ENCLOSED'","'ENFORCED'","'ESCAPED'","'EXCEPT'","'EXISTS'","'EXIT'","'EXPLAIN'","'FALSE'","'FETCH'","'FOR'","'FORCE'","'FOREIGN'","'FROM'","'FULLTEXT'","'GENERATED'","'GET'","'GRANT'","'GROUP'","'HAVING'","'HIGH_PRIORITY'","'HISTOGRAM'","'IF'","'IGNORE'","'IGNORED'","'IN'","'INDEX'","'INFILE'","'INNER'","'INOUT'","'INSERT'","'INTERVAL'","'INTO'","'IS'","'ITERATE'","'JOIN'","'KEY'","'KEYS'","'KILL'","'LATERAL'","'LEADING'","'LEAVE'","'LEFT'","'LIKE'","'LIMIT'","'LINEAR'","'LINES'","'LOAD'","'LOCK'","'LOCKED'","'LOOP'","'LOW_PRIORITY'","'MASTER_BIND'","'MASTER_SSL_VERIFY_SERVER_CERT'","'MATCH'","'MAXVALUE'","'MINVALUE'","'MODIFIES'","'NATURAL'","'NOT'","'NO_WRITE_TO_BINLOG'","'NULL'","'NUMBER'","'ON'","'OPTIMIZE'","'OPTION'","'OPTIONAL'","'OPTIONALLY'","'OR'","'ORDER'","'OUT'","'OUTER'","'OUTFILE'","'OVER'","'PARTITION'","'PRIMARY'","'PROCEDURE'","'PURGE'","'RANGE'","'READ'","'READS'","'REFERENCES'","'REGEXP'","'RELEASE'","'RENAME'","'REPEAT'","'REPLACE'","'REQUIRE'","'RESIGNAL'","'RESTRICT'","'RETAIN'","'RETURN'","'REVOKE'","'RIGHT'","'RLIKE'","'SCHEMA'","'SCHEMAS'","'SELECT'","'SET'","'SEPARATOR'","'SHOW'","'SIGNAL'","'SKIP'","'SKIP_QUERY_REWRITE'","'SPATIAL'","'SQL'","'SQLEXCEPTION'","'SQLSTATE'","'SQLWARNING'","'SQL_BIG_RESULT'","'SQL_CALC_FOUND_ROWS'","'SQL_SMALL_RESULT'","'SSL'","'STACKED'","'STARTING'","'STATEMENT'","'STRAIGHT_JOIN'","'TABLE'","'TERMINATED'","'THEN'","'TO'","'TRAILING'","'TRIGGER'","'TRUE'","'UNDO'","'UNION'","'UNIQUE'","'UNLOCK'","'UNSIGNED'","'UPDATE'","'USAGE'","'USE'","'USING'","'VALUES'","'WHEN'","'WHERE'","'WHILE'","'WITH'","'WRITE'","'XOR'","'ZEROFILL'","'TINYINT'","'SMALLINT'","'MEDIUMINT'","'MIDDLEINT'","'INT'","'INT1'","'INT2'","'INT3'","'INT4'","'INT8'","'INTEGER'","'BIGINT'","'REAL'","'DOUBLE'","'PRECISION'","'FLOAT'","'FLOAT4'","'FLOAT8'","'DECIMAL'","'DEC'","'NUMERIC'","'DATE'","'TIME'","'TIMESTAMP'","'DATETIME'","'YEAR'","'CHAR'","'VARCHAR'","'NVARCHAR'","'NATIONAL'","'BINARY'","'VARBINARY'","'TINYBLOB'","'BLOB'","'MEDIUMBLOB'","'LONG'","'LONGBLOB'","'TINYTEXT'","'TEXT'","'MEDIUMTEXT'","'LONGTEXT'","'ENUM'","'VARYING'","'SERIAL'","'YEAR_MONTH'","'DAY_HOUR'","'DAY_MINUTE'","'DAY_SECOND'","'HOUR_MINUTE'","'HOUR_SECOND'","'MINUTE_SECOND'","'SECOND_MICROSECOND'","'MINUTE_MICROSECOND'","'HOUR_MICROSECOND'","'DAY_MICROSECOND'","'JSON_ARRAY'","'JSON_ARRAYAGG'","'JSON_ARRAY_APPEND'","'JSON_ARRAY_INSERT'","'JSON_CONTAINS'","'JSON_CONTAINS_PATH'","'JSON_DEPTH'","'JSON_EXTRACT'","'JSON_INSERT'","'JSON_KEYS'","'JSON_LENGTH'","'JSON_MERGE'","'JSON_MERGE_PATCH'","'JSON_MERGE_PRESERVE'","'JSON_OBJECT'","'JSON_OBJECTAGG'","'JSON_OVERLAPS'","'JSON_PRETTY'","'JSON_QUOTE'","'JSON_REMOVE'","'JSON_REPLACE'","'JSON_SCHEMA_VALID'","'JSON_SCHEMA_VALIDATION_REPORT'","'JSON_SEARCH'","'JSON_SET'","'JSON_STORAGE_FREE'","'JSON_STORAGE_SIZE'","'JSON_TABLE'","'JSON_TYPE'","'JSON_UNQUOTE'","'JSON_VALID'","'JSON_VALUE'","'NESTED'","'ORDINALITY'","'PATH'","'AVG'","'BIT_AND'","'BIT_OR'","'BIT_XOR'","'COUNT'","'CUME_DIST'","'DENSE_RANK'","'FIRST_VALUE'","'GROUP_CONCAT'","'LAG'","'LAST_VALUE'","'LEAD'","'MAX'","'MIN'","'NTILE'","'NTH_VALUE'","'PERCENT_RANK'","'RANK'","'ROW_NUMBER'","'STD'","'STDDEV'","'STDDEV_POP'","'STDDEV_SAMP'","'SUM'","'VAR_POP'","'VAR_SAMP'","'VARIANCE'","'CURRENT_DATE'","'CURRENT_TIME'","'CURRENT_TIMESTAMP'","'LOCALTIME'","'CURDATE'","'CURTIME'","'DATE_ADD'","'DATE_SUB'","'EXTRACT'","'LOCALTIMESTAMP'","'NOW'","'POSITION'","'SUBSTR'","'SUBSTRING'","'SYSDATE'","'TRIM'","'UTC_DATE'","'UTC_TIME'","'UTC_TIMESTAMP'","'ACCOUNT'","'ACTION'","'AFTER'","'AGGREGATE'","'ALGORITHM'","'ANY'","'AT'","'AUTHORS'","'AUTOCOMMIT'","'AUTOEXTEND_SIZE'","'AUTO_INCREMENT'","'AVG_ROW_LENGTH'","'BEGIN'","'BINLOG'","'BIT'","'BLOCK'","'BOOL'","'BOOLEAN'","'BTREE'","'CACHE'","'CASCADED'","'CHAIN'","'CHANGED'","'CHANNEL'","'CHECKSUM'","'PAGE_CHECKSUM'","'CIPHER'","'CLASS_ORIGIN'","'CLIENT'","'CLOSE'","'CLUSTERING'","'COALESCE'","'CODE'","'COLUMNS'","'COLUMN_FORMAT'","'COLUMN_NAME'","'COMMENT'","'COMMIT'","'COMPACT'","'COMPLETION'","'COMPRESSED'","'COMPRESSION'","'CONCURRENT'","'CONNECT'","'CONNECTION'","'CONSISTENT'","'CONSTRAINT_CATALOG'","'CONSTRAINT_SCHEMA'","'CONSTRAINT_NAME'","'CONTAINS'","'CONTEXT'","'CONTRIBUTORS'","'COPY'","'CPU'","'CYCLE'","'CURSOR_NAME'","'DATA'","'DATAFILE'","'DEALLOCATE'","'DEFAULT_AUTH'","'DEFINER'","'DELAY_KEY_WRITE'","'DES_KEY_FILE'","'DIRECTORY'","'DISABLE'","'DISCARD'","'DISK'","'DO'","'DUMPFILE'","'DUPLICATE'","'DYNAMIC'","'ENABLE'","'ENCRYPTED'","'ENCRYPTION'","'ENCRYPTION_KEY_ID'","'END'","'ENDS'","'ENGINE'","'ENGINES'","'ERROR'","'ERRORS'","'ESCAPE'","'EVEN'","'EVENT'","'EVENTS'","'EVERY'","'EXCHANGE'","'EXCLUSIVE'","'EXPIRE'","'EXPORT'","'EXTENDED'","'EXTENT_SIZE'","'FAILED_LOGIN_ATTEMPTS'","'FAST'","'FAULTS'","'FIELDS'","'FILE_BLOCK_SIZE'","'FILTER'","'FIRST'","'FIXED'","'FLUSH'","'FOLLOWING'","'FOLLOWS'","'FOUND'","'FULL'","'FUNCTION'","'GENERAL'","'GLOBAL'","'GRANTS'","'GROUP_REPLICATION'","'HANDLER'","'HASH'","'HELP'","'HISTORY'","'HOST'","'HOSTS'","'IDENTIFIED'","'IGNORE_SERVER_IDS'","'IMPORT'","'INCREMENT'","'INDEXES'","'INITIAL_SIZE'","'INPLACE'","'INSERT_METHOD'","'INSTALL'","'INSTANCE'","'INSTANT'","'INVISIBLE'","'INVOKER'","'IO'","'IO_THREAD'","'IPC'","'ISOLATION'","'ISSUER'","'JSON'","'KEY_BLOCK_SIZE'","'LANGUAGE'","'LAST'","'LEAVES'","'LESS'","'LEVEL'","'LIST'","'LOCAL'","'LOGFILE'","'LOGS'","'MASTER'","'MASTER_AUTO_POSITION'","'MASTER_CONNECT_RETRY'","'MASTER_DELAY'","'MASTER_HEARTBEAT_PERIOD'","'MASTER_HOST'","'MASTER_LOG_FILE'","'MASTER_LOG_POS'","'MASTER_PASSWORD'","'MASTER_PORT'","'MASTER_RETRY_COUNT'","'MASTER_SSL'","'MASTER_SSL_CA'","'MASTER_SSL_CAPATH'","'MASTER_SSL_CERT'","'MASTER_SSL_CIPHER'","'MASTER_SSL_CRL'","'MASTER_SSL_CRLPATH'","'MASTER_SSL_KEY'","'MASTER_TLS_VERSION'","'MASTER_USER'","'MAX_CONNECTIONS_PER_HOUR'","'MAX_QUERIES_PER_HOUR'","'MAX_ROWS'","'MAX_SIZE'","'MAX_UPDATES_PER_HOUR'","'MAX_USER_CONNECTIONS'","'MEDIUM'","'MEMBER'","'MERGE'","'MESSAGE_TEXT'","'MID'","'MIGRATE'","'MIN_ROWS'","'MODE'","'MODIFY'","'MUTEX'","'MYSQL'","'MYSQL_ERRNO'","'NAME'","'NAMES'","'NCHAR'","'NEVER'","'NEXT'","'NO'","'NOCACHE'","'NOCOPY'","'NOCYCLE'","'NOMAXVALUE'","'NOMINVALUE'","'NOWAIT'","'NODEGROUP'","'NONE'","'ODBC'","'OFFLINE'","'OFFSET'","'OF'","'OJ'","'OLD_PASSWORD'","'ONE'","'ONLINE'","'ONLY'","'OPEN'","'OPTIMIZER_COSTS'","'OPTIONS'","'OWNER'","'PACK_KEYS'","'PAGE'","'PAGE_COMPRESSED'","'PAGE_COMPRESSION_LEVEL'","'PARSER'","'PARTIAL'","'PARTITIONING'","'PARTITIONS'","'PASSWORD'","'PASSWORD_LOCK_TIME'","'PHASE'","'PLUGIN'","'PLUGIN_DIR'","'PLUGINS'","'PORT'","'PRECEDES'","'PRECEDING'","'PREPARE'","'PRESERVE'","'PREV'","'PROCESSLIST'","'PROFILE'","'PROFILES'","'PROXY'","'QUERY'","'QUICK'","'REBUILD'","'RECOVER'","'RECURSIVE'","'REDO_BUFFER_SIZE'","'REDUNDANT'","'RELAY'","'RELAY_LOG_FILE'","'RELAY_LOG_POS'","'RELAYLOG'","'REMOVE'","'REORGANIZE'","'REPAIR'","'REPLICATE_DO_DB'","'REPLICATE_DO_TABLE'","'REPLICATE_IGNORE_DB'","'REPLICATE_IGNORE_TABLE'","'REPLICATE_REWRITE_DB'","'REPLICATE_WILD_DO_TABLE'","'REPLICATE_WILD_IGNORE_TABLE'","'REPLICATION'","'RESET'","'RESTART'","'RESUME'","'RETURNED_SQLSTATE'","'RETURNING'","'RETURNS'","'REUSE'","'ROLE'","'ROLLBACK'","'ROLLUP'","'ROTATE'","'ROW'","'ROWS'","'ROW_FORMAT'","'RTREE'","'SAVEPOINT'","'SCHEDULE'","'SECURITY'","'SEQUENCE'","'SERVER'","'SESSION'","'SHARE'","'SHARED'","'SIGNED'","'SIMPLE'","'SLAVE'","'SLOW'","'SNAPSHOT'","'SOCKET'","'SOME'","'SONAME'","'SOUNDS'","'SOURCE'","'SQL_AFTER_GTIDS'","'SQL_AFTER_MTS_GAPS'","'SQL_BEFORE_GTIDS'","'SQL_BUFFER_RESULT'","'SQL_CACHE'","'SQL_NO_CACHE'","'SQL_THREAD'","'START'","'STARTS'","'STATS_AUTO_RECALC'","'STATS_PERSISTENT'","'STATS_SAMPLE_PAGES'","'STATUS'","'STOP'","'STORAGE'","'STORED'","'STRING'","'SUBCLASS_ORIGIN'","'SUBJECT'","'SUBPARTITION'","'SUBPARTITIONS'","'SUSPEND'","'SWAPS'","'SWITCHES'","'TABLE_NAME'","'TABLESPACE'","'TABLE_TYPE'","'TEMPORARY'","'TEMPTABLE'","'THAN'","'TRADITIONAL'","'TRANSACTION'","'TRANSACTIONAL'","'TRIGGERS'","'TRUNCATE'","'UNBOUNDED'","'UNDEFINED'","'UNDOFILE'","'UNDO_BUFFER_SIZE'","'UNINSTALL'","'UNKNOWN'","'UNTIL'","'UPGRADE'","'USER'","'USE_FRM'","'USER_RESOURCES'","'VALIDATION'","'VALUE'","'VARIABLES'","'VIEW'","'VIRTUAL'","'VISIBLE'","'WAIT'","'WARNINGS'","'WINDOW'","'WITHOUT'","'WORK'","'WRAPPER'","'X509'","'XA'","'XML'","'YES'","'EUR'","'USA'","'JIS'","'ISO'","'INTERNAL'","'QUARTER'","'MONTH'","'DAY'","'HOUR'","'MINUTE'","'WEEK'","'SECOND'","'MICROSECOND'","'ADMIN'","'APPLICATION_PASSWORD_ADMIN'","'AUDIT_ABORT_EXEMPT'","'AUDIT_ADMIN'","'AUTHENTICATION_POLICY_ADMIN'","'BACKUP_ADMIN'","'BINLOG_ADMIN'","'BINLOG_ENCRYPTION_ADMIN'","'CLONE_ADMIN'","'CONNECTION_ADMIN'","'ENCRYPTION_KEY_ADMIN'","'EXECUTE'","'FILE'","'FIREWALL_ADMIN'","'FIREWALL_EXEMPT'","'FIREWALL_USER'","'FLUSH_OPTIMIZER_COSTS'","'FLUSH_STATUS'","'FLUSH_TABLES'","'FLUSH_USER_RESOURCES'","'GROUP_REPLICATION_ADMIN'","'INNODB_REDO_LOG_ARCHIVE'","'INNODB_REDO_LOG_ENABLE'","'INVOKE'","'LAMBDA'","'NDB_STORED_USER'","'PASSWORDLESS_USER_ADMIN'","'PERSIST_RO_VARIABLES_ADMIN'","'PRIVILEGES'","'PROCESS'","'RELOAD'","'REPLICATION_APPLIER'","'REPLICATION_SLAVE_ADMIN'","'RESOURCE_GROUP_ADMIN'","'RESOURCE_GROUP_USER'","'ROLE_ADMIN'","'ROUTINE'","'S3'","'SERVICE_CONNECTION_ADMIN'",null,"'SET_USER_ID'","'SHOW_ROUTINE'","'SHUTDOWN'","'SUPER'","'SYSTEM_VARIABLES_ADMIN'","'TABLES'","'TABLE_ENCRYPTION_ADMIN'","'VERSION_TOKEN_ADMIN'","'XA_RECOVER_ADMIN'","'ARMSCII8'","'ASCII'","'BIG5'","'CP1250'","'CP1251'","'CP1256'","'CP1257'","'CP850'","'CP852'","'CP866'","'CP932'","'DEC8'","'EUCJPMS'","'EUCKR'","'GB18030'","'GB2312'","'GBK'","'GEOSTD8'","'GREEK'","'HEBREW'","'HP8'","'KEYBCS2'","'KOI8R'","'KOI8U'","'LATIN1'","'LATIN2'","'LATIN5'","'LATIN7'","'MACCE'","'MACROMAN'","'SJIS'","'SWE7'","'TIS620'","'UCS2'","'UJIS'","'UTF16'","'UTF16LE'","'UTF32'","'UTF8'","'UTF8MB3'","'UTF8MB4'","'ARCHIVE'","'BLACKHOLE'","'CSV'","'FEDERATED'","'INNODB'","'MEMORY'","'MRG_MYISAM'","'MYISAM'","'NDB'","'NDBCLUSTER'","'PERFORMANCE_SCHEMA'","'TOKUDB'","'REPEATABLE'","'COMMITTED'","'UNCOMMITTED'","'SERIALIZABLE'","'GEOMETRYCOLLECTION'","'GEOMCOLLECTION'","'GEOMETRY'","'LINESTRING'","'MULTILINESTRING'","'MULTIPOINT'","'MULTIPOLYGON'","'POINT'","'POLYGON'","'ABS'","'ACOS'","'ADDDATE'","'ADDTIME'","'AES_DECRYPT'","'AES_ENCRYPT'","'AREA'","'ASBINARY'","'ASIN'","'ASTEXT'","'ASWKB'","'ASWKT'","'ASYMMETRIC_DECRYPT'","'ASYMMETRIC_DERIVE'","'ASYMMETRIC_ENCRYPT'","'ASYMMETRIC_SIGN'","'ASYMMETRIC_VERIFY'","'ATAN'","'ATAN2'","'BENCHMARK'","'BIN'","'BIT_COUNT'","'BIT_LENGTH'","'BUFFER'","'CATALOG_NAME'","'CEIL'","'CEILING'","'CENTROID'","'CHARACTER_LENGTH'","'CHARSET'","'CHAR_LENGTH'","'COERCIBILITY'","'COLLATION'","'COMPRESS'","'CONCAT'","'CONCAT_WS'","'CONNECTION_ID'","'CONV'","'CONVERT_TZ'","'COS'","'COT'","'CRC32'","'CREATE_ASYMMETRIC_PRIV_KEY'","'CREATE_ASYMMETRIC_PUB_KEY'","'CREATE_DH_PARAMETERS'","'CREATE_DIGEST'","'CROSSES'","'DATEDIFF'","'DATE_FORMAT'","'DAYNAME'","'DAYOFMONTH'","'DAYOFWEEK'","'DAYOFYEAR'","'DECODE'","'DEGREES'","'DES_DECRYPT'","'DES_ENCRYPT'","'DIMENSION'","'DISJOINT'","'ELT'","'ENCODE'","'ENCRYPT'","'ENDPOINT'","'ENGINE_ATTRIBUTE'","'ENVELOPE'","'EQUALS'","'EXP'","'EXPORT_SET'","'EXTERIORRING'","'EXTRACTVALUE'","'FIELD'","'FIND_IN_SET'","'FLOOR'","'FORMAT'","'FOUND_ROWS'","'FROM_BASE64'","'FROM_DAYS'","'FROM_UNIXTIME'","'GEOMCOLLFROMTEXT'","'GEOMCOLLFROMWKB'","'GEOMETRYCOLLECTIONFROMTEXT'","'GEOMETRYCOLLECTIONFROMWKB'","'GEOMETRYFROMTEXT'","'GEOMETRYFROMWKB'","'GEOMETRYN'","'GEOMETRYTYPE'","'GEOMFROMTEXT'","'GEOMFROMWKB'","'GET_FORMAT'","'GET_LOCK'","'GLENGTH'","'GREATEST'","'GTID_SUBSET'","'GTID_SUBTRACT'","'HEX'","'IFNULL'","'INET6_ATON'","'INET6_NTOA'","'INET_ATON'","'INET_NTOA'","'INSTR'","'INTERIORRINGN'","'INTERSECTS'","'ISCLOSED'","'ISEMPTY'","'ISNULL'","'ISSIMPLE'","'IS_FREE_LOCK'","'IS_IPV4'","'IS_IPV4_COMPAT'","'IS_IPV4_MAPPED'","'IS_IPV6'","'IS_USED_LOCK'","'LAST_INSERT_ID'","'LCASE'","'LEAST'","'LENGTH'","'LINEFROMTEXT'","'LINEFROMWKB'","'LINESTRINGFROMTEXT'","'LINESTRINGFROMWKB'","'LN'","'LOAD_FILE'","'LOCATE'","'LOG'","'LOG10'","'LOG2'","'LOWER'","'LPAD'","'LTRIM'","'MAKEDATE'","'MAKETIME'","'MAKE_SET'","'MASTER_POS_WAIT'","'MBRCONTAINS'","'MBRDISJOINT'","'MBREQUAL'","'MBRINTERSECTS'","'MBROVERLAPS'","'MBRTOUCHES'","'MBRWITHIN'","'MD5'","'MLINEFROMTEXT'","'MLINEFROMWKB'","'MONTHNAME'","'MPOINTFROMTEXT'","'MPOINTFROMWKB'","'MPOLYFROMTEXT'","'MPOLYFROMWKB'","'MULTILINESTRINGFROMTEXT'","'MULTILINESTRINGFROMWKB'","'MULTIPOINTFROMTEXT'","'MULTIPOINTFROMWKB'","'MULTIPOLYGONFROMTEXT'","'MULTIPOLYGONFROMWKB'","'NAME_CONST'","'NULLIF'","'NUMGEOMETRIES'","'NUMINTERIORRINGS'","'NUMPOINTS'","'OCT'","'OCTET_LENGTH'","'ORD'","'OVERLAPS'","'PERIOD_ADD'","'PERIOD_DIFF'","'PI'","'POINTFROMTEXT'","'POINTFROMWKB'","'POINTN'","'POLYFROMTEXT'","'POLYFROMWKB'","'POLYGONFROMTEXT'","'POLYGONFROMWKB'","'POW'","'POWER'","'QUOTE'","'RADIANS'","'RAND'","'RANDOM'","'RANDOM_BYTES'","'RELEASE_LOCK'","'REVERSE'","'ROUND'","'ROW_COUNT'","'RPAD'","'RTRIM'","'SEC_TO_TIME'","'SECONDARY_ENGINE_ATTRIBUTE'","'SESSION_USER'","'SHA'","'SHA1'","'SHA2'","'SCHEMA_NAME'","'SIGN'","'SIN'","'SLEEP'","'SOUNDEX'","'SQL_THREAD_WAIT_AFTER_GTIDS'","'SQRT'","'SRID'","'STARTPOINT'","'STRCMP'","'STR_TO_DATE'","'ST_AREA'","'ST_ASBINARY'","'ST_ASTEXT'","'ST_ASWKB'","'ST_ASWKT'","'ST_BUFFER'","'ST_CENTROID'","'ST_CONTAINS'","'ST_CROSSES'","'ST_DIFFERENCE'","'ST_DIMENSION'","'ST_DISJOINT'","'ST_DISTANCE'","'ST_ENDPOINT'","'ST_ENVELOPE'","'ST_EQUALS'","'ST_EXTERIORRING'","'ST_GEOMCOLLFROMTEXT'","'ST_GEOMCOLLFROMTXT'","'ST_GEOMCOLLFROMWKB'","'ST_GEOMETRYCOLLECTIONFROMTEXT'","'ST_GEOMETRYCOLLECTIONFROMWKB'","'ST_GEOMETRYFROMTEXT'","'ST_GEOMETRYFROMWKB'","'ST_GEOMETRYN'","'ST_GEOMETRYTYPE'","'ST_GEOMFROMTEXT'","'ST_GEOMFROMWKB'","'ST_INTERIORRINGN'","'ST_INTERSECTION'","'ST_INTERSECTS'","'ST_ISCLOSED'","'ST_ISEMPTY'","'ST_ISSIMPLE'","'ST_LINEFROMTEXT'","'ST_LINEFROMWKB'","'ST_LINESTRINGFROMTEXT'","'ST_LINESTRINGFROMWKB'","'ST_NUMGEOMETRIES'","'ST_NUMINTERIORRING'","'ST_NUMINTERIORRINGS'","'ST_NUMPOINTS'","'ST_OVERLAPS'","'ST_POINTFROMTEXT'","'ST_POINTFROMWKB'","'ST_POINTN'","'ST_POLYFROMTEXT'","'ST_POLYFROMWKB'","'ST_POLYGONFROMTEXT'","'ST_POLYGONFROMWKB'","'ST_SRID'","'ST_STARTPOINT'","'ST_SYMDIFFERENCE'","'ST_TOUCHES'","'ST_UNION'","'ST_WITHIN'","'ST_X'","'ST_Y'","'SUBDATE'","'SUBSTRING_INDEX'","'SUBTIME'","'SYSTEM_USER'","'TAN'","'TIMEDIFF'","'TIMESTAMPADD'","'TIMESTAMPDIFF'","'TIME_FORMAT'","'TIME_TO_SEC'","'TOUCHES'","'TO_BASE64'","'TO_DAYS'","'TO_SECONDS'","'TP_CONNECTION_ADMIN'","'UCASE'","'UNCOMPRESS'","'UNCOMPRESSED_LENGTH'","'UNHEX'","'UNIX_TIMESTAMP'","'UPDATEXML'","'UPPER'","'UUID'","'UUID_SHORT'","'VALIDATE_PASSWORD_STRENGTH'","'VERSION'","'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS'","'WEEKDAY'","'WEEKOFYEAR'","'WEIGHT_STRING'","'WITHIN'","'YEARWEEK'","'Y'","'X'","':='","'+='","'-='","'*='","'/='","'%='","'&='","'^='","'|='","'*'","'/'","'%'","'+'","'-'","'DIV'","'MOD'","'='","'>'","'<'","'!'","'~'","'|'","'&'","'^'","'.'","'('","')'","','","';'","'@'","'0'","'1'","'2'","'''","'\"'","'`'","':'"],Ki.symbolicNames=[null,"SPACE","SPEC_MYSQL_COMMENT","COMMENT_INPUT","LINE_COMMENT","ADD","ALL","ALTER","ALWAYS","ANALYZE","AND","ARRAY","AS","ASC","ATTRIBUTE","BEFORE","BETWEEN","BOTH","BUCKETS","BY","CALL","CASCADE","CASE","CAST","CHANGE","CHARACTER","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT","CURRENT_ROLE","CURRENT_USER","CURSOR","DATABASE","DATABASES","DECLARE","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DETERMINISTIC","DIAGNOSTICS","DISTINCT","DISTINCTROW","DROP","EACH","ELSE","ELSEIF","EMPTY","ENCLOSED","ENFORCED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GENERATED","GET","GRANT","GROUP","HAVING","HIGH_PRIORITY","HISTOGRAM","IF","IGNORE","IGNORED","IN","INDEX","INFILE","INNER","INOUT","INSERT","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LATERAL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCK","LOCKED","LOOP","LOW_PRIORITY","MASTER_BIND","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MINVALUE","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL_LITERAL","NUMBER","ON","OPTIMIZE","OPTION","OPTIONAL","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PRIMARY","PROCEDURE","PURGE","RANGE","READ","READS","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETAIN","RETURN","REVOKE","RIGHT","RLIKE","SCHEMA","SCHEMAS","SELECT","SET","SEPARATOR","SHOW","SIGNAL","SKIP_","SKIP_QUERY_REWRITE","SPATIAL","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STACKED","STARTING","STATEMENT","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","VALUES","WHEN","WHERE","WHILE","WITH","WRITE","XOR","ZEROFILL","TINYINT","SMALLINT","MEDIUMINT","MIDDLEINT","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","BIGINT","REAL","DOUBLE","PRECISION","FLOAT","FLOAT4","FLOAT8","DECIMAL","DEC","NUMERIC","DATE","TIME","TIMESTAMP","DATETIME","YEAR","CHAR","VARCHAR","NVARCHAR","NATIONAL","BINARY","VARBINARY","TINYBLOB","BLOB","MEDIUMBLOB","LONG","LONGBLOB","TINYTEXT","TEXT","MEDIUMTEXT","LONGTEXT","ENUM","VARYING","SERIAL","YEAR_MONTH","DAY_HOUR","DAY_MINUTE","DAY_SECOND","HOUR_MINUTE","HOUR_SECOND","MINUTE_SECOND","SECOND_MICROSECOND","MINUTE_MICROSECOND","HOUR_MICROSECOND","DAY_MICROSECOND","JSON_ARRAY","JSON_ARRAYAGG","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SCHEMA_VALID","JSON_SCHEMA_VALIDATION_REPORT","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TABLE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","JSON_VALUE","NESTED","ORDINALITY","PATH","AVG","BIT_AND","BIT_OR","BIT_XOR","COUNT","CUME_DIST","DENSE_RANK","FIRST_VALUE","GROUP_CONCAT","LAG","LAST_VALUE","LEAD","MAX","MIN","NTILE","NTH_VALUE","PERCENT_RANK","RANK","ROW_NUMBER","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","LOCALTIME","CURDATE","CURTIME","DATE_ADD","DATE_SUB","EXTRACT","LOCALTIMESTAMP","NOW","POSITION","SUBSTR","SUBSTRING","SYSDATE","TRIM","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","ACCOUNT","ACTION","AFTER","AGGREGATE","ALGORITHM","ANY","AT","AUTHORS","AUTOCOMMIT","AUTOEXTEND_SIZE","AUTO_INCREMENT","AVG_ROW_LENGTH","BEGIN","BINLOG","BIT","BLOCK","BOOL","BOOLEAN","BTREE","CACHE","CASCADED","CHAIN","CHANGED","CHANNEL","CHECKSUM","PAGE_CHECKSUM","CIPHER","CLASS_ORIGIN","CLIENT","CLOSE","CLUSTERING","COALESCE","CODE","COLUMNS","COLUMN_FORMAT","COLUMN_NAME","COMMENT","COMMIT","COMPACT","COMPLETION","COMPRESSED","COMPRESSION","CONCURRENT","CONNECT","CONNECTION","CONSISTENT","CONSTRAINT_CATALOG","CONSTRAINT_SCHEMA","CONSTRAINT_NAME","CONTAINS","CONTEXT","CONTRIBUTORS","COPY","CPU","CYCLE","CURSOR_NAME","DATA","DATAFILE","DEALLOCATE","DEFAULT_AUTH","DEFINER","DELAY_KEY_WRITE","DES_KEY_FILE","DIRECTORY","DISABLE","DISCARD","DISK","DO","DUMPFILE","DUPLICATE","DYNAMIC","ENABLE","ENCRYPTED","ENCRYPTION","ENCRYPTION_KEY_ID","END","ENDS","ENGINE","ENGINES","ERROR","ERRORS","ESCAPE","EVEN","EVENT","EVENTS","EVERY","EXCHANGE","EXCLUSIVE","EXPIRE","EXPORT","EXTENDED","EXTENT_SIZE","FAILED_LOGIN_ATTEMPTS","FAST","FAULTS","FIELDS","FILE_BLOCK_SIZE","FILTER","FIRST","FIXED","FLUSH","FOLLOWING","FOLLOWS","FOUND","FULL","FUNCTION","GENERAL","GLOBAL","GRANTS","GROUP_REPLICATION","HANDLER","HASH","HELP","HISTORY","HOST","HOSTS","IDENTIFIED","IGNORE_SERVER_IDS","IMPORT","INCREMENT","INDEXES","INITIAL_SIZE","INPLACE","INSERT_METHOD","INSTALL","INSTANCE","INSTANT","INVISIBLE","INVOKER","IO","IO_THREAD","IPC","ISOLATION","ISSUER","JSON","KEY_BLOCK_SIZE","LANGUAGE","LAST","LEAVES","LESS","LEVEL","LIST","LOCAL","LOGFILE","LOGS","MASTER","MASTER_AUTO_POSITION","MASTER_CONNECT_RETRY","MASTER_DELAY","MASTER_HEARTBEAT_PERIOD","MASTER_HOST","MASTER_LOG_FILE","MASTER_LOG_POS","MASTER_PASSWORD","MASTER_PORT","MASTER_RETRY_COUNT","MASTER_SSL","MASTER_SSL_CA","MASTER_SSL_CAPATH","MASTER_SSL_CERT","MASTER_SSL_CIPHER","MASTER_SSL_CRL","MASTER_SSL_CRLPATH","MASTER_SSL_KEY","MASTER_TLS_VERSION","MASTER_USER","MAX_CONNECTIONS_PER_HOUR","MAX_QUERIES_PER_HOUR","MAX_ROWS","MAX_SIZE","MAX_UPDATES_PER_HOUR","MAX_USER_CONNECTIONS","MEDIUM","MEMBER","MERGE","MESSAGE_TEXT","MID","MIGRATE","MIN_ROWS","MODE","MODIFY","MUTEX","MYSQL","MYSQL_ERRNO","NAME","NAMES","NCHAR","NEVER","NEXT","NO","NOCACHE","NOCOPY","NOCYCLE","NOMAXVALUE","NOMINVALUE","NOWAIT","NODEGROUP","NONE","ODBC","OFFLINE","OFFSET","OF","OJ","OLD_PASSWORD","ONE","ONLINE","ONLY","OPEN","OPTIMIZER_COSTS","OPTIONS","OWNER","PACK_KEYS","PAGE","PAGE_COMPRESSED","PAGE_COMPRESSION_LEVEL","PARSER","PARTIAL","PARTITIONING","PARTITIONS","PASSWORD","PASSWORD_LOCK_TIME","PHASE","PLUGIN","PLUGIN_DIR","PLUGINS","PORT","PRECEDES","PRECEDING","PREPARE","PRESERVE","PREV","PROCESSLIST","PROFILE","PROFILES","PROXY","QUERY","QUICK","REBUILD","RECOVER","RECURSIVE","REDO_BUFFER_SIZE","REDUNDANT","RELAY","RELAY_LOG_FILE","RELAY_LOG_POS","RELAYLOG","REMOVE","REORGANIZE","REPAIR","REPLICATE_DO_DB","REPLICATE_DO_TABLE","REPLICATE_IGNORE_DB","REPLICATE_IGNORE_TABLE","REPLICATE_REWRITE_DB","REPLICATE_WILD_DO_TABLE","REPLICATE_WILD_IGNORE_TABLE","REPLICATION","RESET","RESTART","RESUME","RETURNED_SQLSTATE","RETURNING","RETURNS","REUSE","ROLE","ROLLBACK","ROLLUP","ROTATE","ROW","ROWS","ROW_FORMAT","RTREE","SAVEPOINT","SCHEDULE","SECURITY","SEQUENCE","SERVER","SESSION","SHARE","SHARED","SIGNED","SIMPLE","SLAVE","SLOW","SNAPSHOT","SOCKET","SOME","SONAME","SOUNDS","SOURCE","SQL_AFTER_GTIDS","SQL_AFTER_MTS_GAPS","SQL_BEFORE_GTIDS","SQL_BUFFER_RESULT","SQL_CACHE","SQL_NO_CACHE","SQL_THREAD","START","STARTS","STATS_AUTO_RECALC","STATS_PERSISTENT","STATS_SAMPLE_PAGES","STATUS","STOP","STORAGE","STORED","STRING","SUBCLASS_ORIGIN","SUBJECT","SUBPARTITION","SUBPARTITIONS","SUSPEND","SWAPS","SWITCHES","TABLE_NAME","TABLESPACE","TABLE_TYPE","TEMPORARY","TEMPTABLE","THAN","TRADITIONAL","TRANSACTION","TRANSACTIONAL","TRIGGERS","TRUNCATE","UNBOUNDED","UNDEFINED","UNDOFILE","UNDO_BUFFER_SIZE","UNINSTALL","UNKNOWN","UNTIL","UPGRADE","USER","USE_FRM","USER_RESOURCES","VALIDATION","VALUE","VARIABLES","VIEW","VIRTUAL","VISIBLE","WAIT","WARNINGS","WINDOW","WITHOUT","WORK","WRAPPER","X509","XA","XML","YES","EUR","USA","JIS","ISO","INTERNAL","QUARTER","MONTH","DAY","HOUR","MINUTE","WEEK","SECOND","MICROSECOND","ADMIN","APPLICATION_PASSWORD_ADMIN","AUDIT_ABORT_EXEMPT","AUDIT_ADMIN","AUTHENTICATION_POLICY_ADMIN","BACKUP_ADMIN","BINLOG_ADMIN","BINLOG_ENCRYPTION_ADMIN","CLONE_ADMIN","CONNECTION_ADMIN","ENCRYPTION_KEY_ADMIN","EXECUTE","FILE","FIREWALL_ADMIN","FIREWALL_EXEMPT","FIREWALL_USER","FLUSH_OPTIMIZER_COSTS","FLUSH_STATUS","FLUSH_TABLES","FLUSH_USER_RESOURCES","GROUP_REPLICATION_ADMIN","INNODB_REDO_LOG_ARCHIVE","INNODB_REDO_LOG_ENABLE","INVOKE","LAMBDA","NDB_STORED_USER","PASSWORDLESS_USER_ADMIN","PERSIST_RO_VARIABLES_ADMIN","PRIVILEGES","PROCESS","RELOAD","REPLICATION_APPLIER","REPLICATION_SLAVE_ADMIN","RESOURCE_GROUP_ADMIN","RESOURCE_GROUP_USER","ROLE_ADMIN","ROUTINE","S3","SERVICE_CONNECTION_ADMIN","SESSION_VARIABLES_ADMIN","SET_USER_ID","SHOW_ROUTINE","SHUTDOWN","SUPER","SYSTEM_VARIABLES_ADMIN","TABLES","TABLE_ENCRYPTION_ADMIN","VERSION_TOKEN_ADMIN","XA_RECOVER_ADMIN","ARMSCII8","ASCII","BIG5","CP1250","CP1251","CP1256","CP1257","CP850","CP852","CP866","CP932","DEC8","EUCJPMS","EUCKR","GB18030","GB2312","GBK","GEOSTD8","GREEK","HEBREW","HP8","KEYBCS2","KOI8R","KOI8U","LATIN1","LATIN2","LATIN5","LATIN7","MACCE","MACROMAN","SJIS","SWE7","TIS620","UCS2","UJIS","UTF16","UTF16LE","UTF32","UTF8","UTF8MB3","UTF8MB4","ARCHIVE","BLACKHOLE","CSV","FEDERATED","INNODB","MEMORY","MRG_MYISAM","MYISAM","NDB","NDBCLUSTER","PERFORMANCE_SCHEMA","TOKUDB","REPEATABLE","COMMITTED","UNCOMMITTED","SERIALIZABLE","GEOMETRYCOLLECTION","GEOMCOLLECTION","GEOMETRY","LINESTRING","MULTILINESTRING","MULTIPOINT","MULTIPOLYGON","POINT","POLYGON","ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","AREA","ASBINARY","ASIN","ASTEXT","ASWKB","ASWKT","ASYMMETRIC_DECRYPT","ASYMMETRIC_DERIVE","ASYMMETRIC_ENCRYPT","ASYMMETRIC_SIGN","ASYMMETRIC_VERIFY","ATAN","ATAN2","BENCHMARK","BIN","BIT_COUNT","BIT_LENGTH","BUFFER","CATALOG_NAME","CEIL","CEILING","CENTROID","CHARACTER_LENGTH","CHARSET","CHAR_LENGTH","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT_TZ","COS","COT","CRC32","CREATE_ASYMMETRIC_PRIV_KEY","CREATE_ASYMMETRIC_PUB_KEY","CREATE_DH_PARAMETERS","CREATE_DIGEST","CROSSES","DATEDIFF","DATE_FORMAT","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEGREES","DES_DECRYPT","DES_ENCRYPT","DIMENSION","DISJOINT","ELT","ENCODE","ENCRYPT","ENDPOINT","ENGINE_ATTRIBUTE","ENVELOPE","EQUALS","EXP","EXPORT_SET","EXTERIORRING","EXTRACTVALUE","FIELD","FIND_IN_SET","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEOMCOLLFROMTEXT","GEOMCOLLFROMWKB","GEOMETRYCOLLECTIONFROMTEXT","GEOMETRYCOLLECTIONFROMWKB","GEOMETRYFROMTEXT","GEOMETRYFROMWKB","GEOMETRYN","GEOMETRYTYPE","GEOMFROMTEXT","GEOMFROMWKB","GET_FORMAT","GET_LOCK","GLENGTH","GREATEST","GTID_SUBSET","GTID_SUBTRACT","HEX","IFNULL","INET6_ATON","INET6_NTOA","INET_ATON","INET_NTOA","INSTR","INTERIORRINGN","INTERSECTS","ISCLOSED","ISEMPTY","ISNULL","ISSIMPLE","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS_USED_LOCK","LAST_INSERT_ID","LCASE","LEAST","LENGTH","LINEFROMTEXT","LINEFROMWKB","LINESTRINGFROMTEXT","LINESTRINGFROMWKB","LN","LOAD_FILE","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","MAKEDATE","MAKETIME","MAKE_SET","MASTER_POS_WAIT","MBRCONTAINS","MBRDISJOINT","MBREQUAL","MBRINTERSECTS","MBROVERLAPS","MBRTOUCHES","MBRWITHIN","MD5","MLINEFROMTEXT","MLINEFROMWKB","MONTHNAME","MPOINTFROMTEXT","MPOINTFROMWKB","MPOLYFROMTEXT","MPOLYFROMWKB","MULTILINESTRINGFROMTEXT","MULTILINESTRINGFROMWKB","MULTIPOINTFROMTEXT","MULTIPOINTFROMWKB","MULTIPOLYGONFROMTEXT","MULTIPOLYGONFROMWKB","NAME_CONST","NULLIF","NUMGEOMETRIES","NUMINTERIORRINGS","NUMPOINTS","OCT","OCTET_LENGTH","ORD","OVERLAPS","PERIOD_ADD","PERIOD_DIFF","PI","POINTFROMTEXT","POINTFROMWKB","POINTN","POLYFROMTEXT","POLYFROMWKB","POLYGONFROMTEXT","POLYGONFROMWKB","POW","POWER","QUOTE","RADIANS","RAND","RANDOM","RANDOM_BYTES","RELEASE_LOCK","REVERSE","ROUND","ROW_COUNT","RPAD","RTRIM","SEC_TO_TIME","SECONDARY_ENGINE_ATTRIBUTE","SESSION_USER","SHA","SHA1","SHA2","SCHEMA_NAME","SIGN","SIN","SLEEP","SOUNDEX","SQL_THREAD_WAIT_AFTER_GTIDS","SQRT","SRID","STARTPOINT","STRCMP","STR_TO_DATE","ST_AREA","ST_ASBINARY","ST_ASTEXT","ST_ASWKB","ST_ASWKT","ST_BUFFER","ST_CENTROID","ST_CONTAINS","ST_CROSSES","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_ENDPOINT","ST_ENVELOPE","ST_EQUALS","ST_EXTERIORRING","ST_GEOMCOLLFROMTEXT","ST_GEOMCOLLFROMTXT","ST_GEOMCOLLFROMWKB","ST_GEOMETRYCOLLECTIONFROMTEXT","ST_GEOMETRYCOLLECTIONFROMWKB","ST_GEOMETRYFROMTEXT","ST_GEOMETRYFROMWKB","ST_GEOMETRYN","ST_GEOMETRYTYPE","ST_GEOMFROMTEXT","ST_GEOMFROMWKB","ST_INTERIORRINGN","ST_INTERSECTION","ST_INTERSECTS","ST_ISCLOSED","ST_ISEMPTY","ST_ISSIMPLE","ST_LINEFROMTEXT","ST_LINEFROMWKB","ST_LINESTRINGFROMTEXT","ST_LINESTRINGFROMWKB","ST_NUMGEOMETRIES","ST_NUMINTERIORRING","ST_NUMINTERIORRINGS","ST_NUMPOINTS","ST_OVERLAPS","ST_POINTFROMTEXT","ST_POINTFROMWKB","ST_POINTN","ST_POLYFROMTEXT","ST_POLYFROMWKB","ST_POLYGONFROMTEXT","ST_POLYGONFROMWKB","ST_SRID","ST_STARTPOINT","ST_SYMDIFFERENCE","ST_TOUCHES","ST_UNION","ST_WITHIN","ST_X","ST_Y","SUBDATE","SUBSTRING_INDEX","SUBTIME","SYSTEM_USER","TAN","TIMEDIFF","TIMESTAMPADD","TIMESTAMPDIFF","TIME_FORMAT","TIME_TO_SEC","TOUCHES","TO_BASE64","TO_DAYS","TO_SECONDS","TP_CONNECTION_ADMIN","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UUID","UUID_SHORT","VALIDATE_PASSWORD_STRENGTH","VERSION","WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","WITHIN","YEARWEEK","Y_FUNCTION","X_FUNCTION","VAR_ASSIGN","PLUS_ASSIGN","MINUS_ASSIGN","MULT_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","STAR","DIVIDE","MODULE","PLUS","MINUS","DIV","MOD","EQUAL_SYMBOL","GREATER_SYMBOL","LESS_SYMBOL","EXCLAMATION_SYMBOL","BIT_NOT_OP","BIT_OR_OP","BIT_AND_OP","BIT_XOR_OP","DOT","LR_BRACKET","RR_BRACKET","COMMA","SEMI","AT_SIGN","ZERO_DECIMAL","ONE_DECIMAL","TWO_DECIMAL","SINGLE_QUOTE_SYMB","DOUBLE_QUOTE_SYMB","REVERSE_QUOTE_SYMB","COLON_SYMB","CHARSET_REVERSE_QOUTE_STRING","FILESIZE_LITERAL","START_NATIONAL_STRING_LITERAL","STRING_LITERAL","DECIMAL_LITERAL","HEXADECIMAL_LITERAL","REAL_LITERAL","NULL_SPEC_LITERAL","BIT_STRING","STRING_CHARSET_NAME","DOT_ID","ID","REVERSE_QUOTE_ID","HOST_IP_ADDRESS","LOCAL_ID","GLOBAL_ID","ERROR_RECONGNIGION"],Ki.modeNames=["DEFAULT_MODE"],Ki.ruleNames=["SPACE","SPEC_MYSQL_COMMENT","COMMENT_INPUT","LINE_COMMENT","ADD","ALL","ALTER","ALWAYS","ANALYZE","AND","ARRAY","AS","ASC","ATTRIBUTE","BEFORE","BETWEEN","BOTH","BUCKETS","BY","CALL","CASCADE","CASE","CAST","CHANGE","CHARACTER","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT","CURRENT_ROLE","CURRENT_USER","CURSOR","DATABASE","DATABASES","DECLARE","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DETERMINISTIC","DIAGNOSTICS","DISTINCT","DISTINCTROW","DROP","EACH","ELSE","ELSEIF","EMPTY","ENCLOSED","ENFORCED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GENERATED","GET","GRANT","GROUP","HAVING","HIGH_PRIORITY","HISTOGRAM","IF","IGNORE","IGNORED","IN","INDEX","INFILE","INNER","INOUT","INSERT","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LATERAL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCK","LOCKED","LOOP","LOW_PRIORITY","MASTER_BIND","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MINVALUE","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL_LITERAL","NUMBER","ON","OPTIMIZE","OPTION","OPTIONAL","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PRIMARY","PROCEDURE","PURGE","RANGE","READ","READS","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETAIN","RETURN","REVOKE","RIGHT","RLIKE","SCHEMA","SCHEMAS","SELECT","SET","SEPARATOR","SHOW","SIGNAL","SKIP_","SKIP_QUERY_REWRITE","SPATIAL","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STACKED","STARTING","STATEMENT","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","VALUES","WHEN","WHERE","WHILE","WITH","WRITE","XOR","ZEROFILL","TINYINT","SMALLINT","MEDIUMINT","MIDDLEINT","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","BIGINT","REAL","DOUBLE","PRECISION","FLOAT","FLOAT4","FLOAT8","DECIMAL","DEC","NUMERIC","DATE","TIME","TIMESTAMP","DATETIME","YEAR","CHAR","VARCHAR","NVARCHAR","NATIONAL","BINARY","VARBINARY","TINYBLOB","BLOB","MEDIUMBLOB","LONG","LONGBLOB","TINYTEXT","TEXT","MEDIUMTEXT","LONGTEXT","ENUM","VARYING","SERIAL","YEAR_MONTH","DAY_HOUR","DAY_MINUTE","DAY_SECOND","HOUR_MINUTE","HOUR_SECOND","MINUTE_SECOND","SECOND_MICROSECOND","MINUTE_MICROSECOND","HOUR_MICROSECOND","DAY_MICROSECOND","JSON_ARRAY","JSON_ARRAYAGG","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SCHEMA_VALID","JSON_SCHEMA_VALIDATION_REPORT","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TABLE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","JSON_VALUE","NESTED","ORDINALITY","PATH","AVG","BIT_AND","BIT_OR","BIT_XOR","COUNT","CUME_DIST","DENSE_RANK","FIRST_VALUE","GROUP_CONCAT","LAG","LAST_VALUE","LEAD","MAX","MIN","NTILE","NTH_VALUE","PERCENT_RANK","RANK","ROW_NUMBER","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","LOCALTIME","CURDATE","CURTIME","DATE_ADD","DATE_SUB","EXTRACT","LOCALTIMESTAMP","NOW","POSITION","SUBSTR","SUBSTRING","SYSDATE","TRIM","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","ACCOUNT","ACTION","AFTER","AGGREGATE","ALGORITHM","ANY","AT","AUTHORS","AUTOCOMMIT","AUTOEXTEND_SIZE","AUTO_INCREMENT","AVG_ROW_LENGTH","BEGIN","BINLOG","BIT","BLOCK","BOOL","BOOLEAN","BTREE","CACHE","CASCADED","CHAIN","CHANGED","CHANNEL","CHECKSUM","PAGE_CHECKSUM","CIPHER","CLASS_ORIGIN","CLIENT","CLOSE","CLUSTERING","COALESCE","CODE","COLUMNS","COLUMN_FORMAT","COLUMN_NAME","COMMENT","COMMIT","COMPACT","COMPLETION","COMPRESSED","COMPRESSION","CONCURRENT","CONNECT","CONNECTION","CONSISTENT","CONSTRAINT_CATALOG","CONSTRAINT_SCHEMA","CONSTRAINT_NAME","CONTAINS","CONTEXT","CONTRIBUTORS","COPY","CPU","CYCLE","CURSOR_NAME","DATA","DATAFILE","DEALLOCATE","DEFAULT_AUTH","DEFINER","DELAY_KEY_WRITE","DES_KEY_FILE","DIRECTORY","DISABLE","DISCARD","DISK","DO","DUMPFILE","DUPLICATE","DYNAMIC","ENABLE","ENCRYPTED","ENCRYPTION","ENCRYPTION_KEY_ID","END","ENDS","ENGINE","ENGINES","ERROR","ERRORS","ESCAPE","EVEN","EVENT","EVENTS","EVERY","EXCHANGE","EXCLUSIVE","EXPIRE","EXPORT","EXTENDED","EXTENT_SIZE","FAILED_LOGIN_ATTEMPTS","FAST","FAULTS","FIELDS","FILE_BLOCK_SIZE","FILTER","FIRST","FIXED","FLUSH","FOLLOWING","FOLLOWS","FOUND","FULL","FUNCTION","GENERAL","GLOBAL","GRANTS","GROUP_REPLICATION","HANDLER","HASH","HELP","HISTORY","HOST","HOSTS","IDENTIFIED","IGNORE_SERVER_IDS","IMPORT","INCREMENT","INDEXES","INITIAL_SIZE","INPLACE","INSERT_METHOD","INSTALL","INSTANCE","INSTANT","INVISIBLE","INVOKER","IO","IO_THREAD","IPC","ISOLATION","ISSUER","JSON","KEY_BLOCK_SIZE","LANGUAGE","LAST","LEAVES","LESS","LEVEL","LIST","LOCAL","LOGFILE","LOGS","MASTER","MASTER_AUTO_POSITION","MASTER_CONNECT_RETRY","MASTER_DELAY","MASTER_HEARTBEAT_PERIOD","MASTER_HOST","MASTER_LOG_FILE","MASTER_LOG_POS","MASTER_PASSWORD","MASTER_PORT","MASTER_RETRY_COUNT","MASTER_SSL","MASTER_SSL_CA","MASTER_SSL_CAPATH","MASTER_SSL_CERT","MASTER_SSL_CIPHER","MASTER_SSL_CRL","MASTER_SSL_CRLPATH","MASTER_SSL_KEY","MASTER_TLS_VERSION","MASTER_USER","MAX_CONNECTIONS_PER_HOUR","MAX_QUERIES_PER_HOUR","MAX_ROWS","MAX_SIZE","MAX_UPDATES_PER_HOUR","MAX_USER_CONNECTIONS","MEDIUM","MEMBER","MERGE","MESSAGE_TEXT","MID","MIGRATE","MIN_ROWS","MODE","MODIFY","MUTEX","MYSQL","MYSQL_ERRNO","NAME","NAMES","NCHAR","NEVER","NEXT","NO","NOCACHE","NOCOPY","NOCYCLE","NOMAXVALUE","NOMINVALUE","NOWAIT","NODEGROUP","NONE","ODBC","OFFLINE","OFFSET","OF","OJ","OLD_PASSWORD","ONE","ONLINE","ONLY","OPEN","OPTIMIZER_COSTS","OPTIONS","OWNER","PACK_KEYS","PAGE","PAGE_COMPRESSED","PAGE_COMPRESSION_LEVEL","PARSER","PARTIAL","PARTITIONING","PARTITIONS","PASSWORD","PASSWORD_LOCK_TIME","PHASE","PLUGIN","PLUGIN_DIR","PLUGINS","PORT","PRECEDES","PRECEDING","PREPARE","PRESERVE","PREV","PROCESSLIST","PROFILE","PROFILES","PROXY","QUERY","QUICK","REBUILD","RECOVER","RECURSIVE","REDO_BUFFER_SIZE","REDUNDANT","RELAY","RELAY_LOG_FILE","RELAY_LOG_POS","RELAYLOG","REMOVE","REORGANIZE","REPAIR","REPLICATE_DO_DB","REPLICATE_DO_TABLE","REPLICATE_IGNORE_DB","REPLICATE_IGNORE_TABLE","REPLICATE_REWRITE_DB","REPLICATE_WILD_DO_TABLE","REPLICATE_WILD_IGNORE_TABLE","REPLICATION","RESET","RESTART","RESUME","RETURNED_SQLSTATE","RETURNING","RETURNS","REUSE","ROLE","ROLLBACK","ROLLUP","ROTATE","ROW","ROWS","ROW_FORMAT","RTREE","SAVEPOINT","SCHEDULE","SECURITY","SEQUENCE","SERVER","SESSION","SHARE","SHARED","SIGNED","SIMPLE","SLAVE","SLOW","SNAPSHOT","SOCKET","SOME","SONAME","SOUNDS","SOURCE","SQL_AFTER_GTIDS","SQL_AFTER_MTS_GAPS","SQL_BEFORE_GTIDS","SQL_BUFFER_RESULT","SQL_CACHE","SQL_NO_CACHE","SQL_THREAD","START","STARTS","STATS_AUTO_RECALC","STATS_PERSISTENT","STATS_SAMPLE_PAGES","STATUS","STOP","STORAGE","STORED","STRING","SUBCLASS_ORIGIN","SUBJECT","SUBPARTITION","SUBPARTITIONS","SUSPEND","SWAPS","SWITCHES","TABLE_NAME","TABLESPACE","TABLE_TYPE","TEMPORARY","TEMPTABLE","THAN","TRADITIONAL","TRANSACTION","TRANSACTIONAL","TRIGGERS","TRUNCATE","UNBOUNDED","UNDEFINED","UNDOFILE","UNDO_BUFFER_SIZE","UNINSTALL","UNKNOWN","UNTIL","UPGRADE","USER","USE_FRM","USER_RESOURCES","VALIDATION","VALUE","VARIABLES","VIEW","VIRTUAL","VISIBLE","WAIT","WARNINGS","WINDOW","WITHOUT","WORK","WRAPPER","X509","XA","XML","YES","EUR","USA","JIS","ISO","INTERNAL","QUARTER","MONTH","DAY","HOUR","MINUTE","WEEK","SECOND","MICROSECOND","ADMIN","APPLICATION_PASSWORD_ADMIN","AUDIT_ABORT_EXEMPT","AUDIT_ADMIN","AUTHENTICATION_POLICY_ADMIN","BACKUP_ADMIN","BINLOG_ADMIN","BINLOG_ENCRYPTION_ADMIN","CLONE_ADMIN","CONNECTION_ADMIN","ENCRYPTION_KEY_ADMIN","EXECUTE","FILE","FIREWALL_ADMIN","FIREWALL_EXEMPT","FIREWALL_USER","FLUSH_OPTIMIZER_COSTS","FLUSH_STATUS","FLUSH_TABLES","FLUSH_USER_RESOURCES","GROUP_REPLICATION_ADMIN","INNODB_REDO_LOG_ARCHIVE","INNODB_REDO_LOG_ENABLE","INVOKE","LAMBDA","NDB_STORED_USER","PASSWORDLESS_USER_ADMIN","PERSIST_RO_VARIABLES_ADMIN","PRIVILEGES","PROCESS","RELOAD","REPLICATION_APPLIER","REPLICATION_SLAVE_ADMIN","RESOURCE_GROUP_ADMIN","RESOURCE_GROUP_USER","ROLE_ADMIN","ROUTINE","S3","SERVICE_CONNECTION_ADMIN","SESSION_VARIABLES_ADMIN","SET_USER_ID","SHOW_ROUTINE","SHUTDOWN","SUPER","SYSTEM_VARIABLES_ADMIN","TABLES","TABLE_ENCRYPTION_ADMIN","VERSION_TOKEN_ADMIN","XA_RECOVER_ADMIN","ARMSCII8","ASCII","BIG5","CP1250","CP1251","CP1256","CP1257","CP850","CP852","CP866","CP932","DEC8","EUCJPMS","EUCKR","GB18030","GB2312","GBK","GEOSTD8","GREEK","HEBREW","HP8","KEYBCS2","KOI8R","KOI8U","LATIN1","LATIN2","LATIN5","LATIN7","MACCE","MACROMAN","SJIS","SWE7","TIS620","UCS2","UJIS","UTF16","UTF16LE","UTF32","UTF8","UTF8MB3","UTF8MB4","ARCHIVE","BLACKHOLE","CSV","FEDERATED","INNODB","MEMORY","MRG_MYISAM","MYISAM","NDB","NDBCLUSTER","PERFORMANCE_SCHEMA","TOKUDB","REPEATABLE","COMMITTED","UNCOMMITTED","SERIALIZABLE","GEOMETRYCOLLECTION","GEOMCOLLECTION","GEOMETRY","LINESTRING","MULTILINESTRING","MULTIPOINT","MULTIPOLYGON","POINT","POLYGON","ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","AREA","ASBINARY","ASIN","ASTEXT","ASWKB","ASWKT","ASYMMETRIC_DECRYPT","ASYMMETRIC_DERIVE","ASYMMETRIC_ENCRYPT","ASYMMETRIC_SIGN","ASYMMETRIC_VERIFY","ATAN","ATAN2","BENCHMARK","BIN","BIT_COUNT","BIT_LENGTH","BUFFER","CATALOG_NAME","CEIL","CEILING","CENTROID","CHARACTER_LENGTH","CHARSET","CHAR_LENGTH","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT_TZ","COS","COT","CRC32","CREATE_ASYMMETRIC_PRIV_KEY","CREATE_ASYMMETRIC_PUB_KEY","CREATE_DH_PARAMETERS","CREATE_DIGEST","CROSSES","DATEDIFF","DATE_FORMAT","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEGREES","DES_DECRYPT","DES_ENCRYPT","DIMENSION","DISJOINT","ELT","ENCODE","ENCRYPT","ENDPOINT","ENGINE_ATTRIBUTE","ENVELOPE","EQUALS","EXP","EXPORT_SET","EXTERIORRING","EXTRACTVALUE","FIELD","FIND_IN_SET","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEOMCOLLFROMTEXT","GEOMCOLLFROMWKB","GEOMETRYCOLLECTIONFROMTEXT","GEOMETRYCOLLECTIONFROMWKB","GEOMETRYFROMTEXT","GEOMETRYFROMWKB","GEOMETRYN","GEOMETRYTYPE","GEOMFROMTEXT","GEOMFROMWKB","GET_FORMAT","GET_LOCK","GLENGTH","GREATEST","GTID_SUBSET","GTID_SUBTRACT","HEX","IFNULL","INET6_ATON","INET6_NTOA","INET_ATON","INET_NTOA","INSTR","INTERIORRINGN","INTERSECTS","ISCLOSED","ISEMPTY","ISNULL","ISSIMPLE","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS_USED_LOCK","LAST_INSERT_ID","LCASE","LEAST","LENGTH","LINEFROMTEXT","LINEFROMWKB","LINESTRINGFROMTEXT","LINESTRINGFROMWKB","LN","LOAD_FILE","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","MAKEDATE","MAKETIME","MAKE_SET","MASTER_POS_WAIT","MBRCONTAINS","MBRDISJOINT","MBREQUAL","MBRINTERSECTS","MBROVERLAPS","MBRTOUCHES","MBRWITHIN","MD5","MLINEFROMTEXT","MLINEFROMWKB","MONTHNAME","MPOINTFROMTEXT","MPOINTFROMWKB","MPOLYFROMTEXT","MPOLYFROMWKB","MULTILINESTRINGFROMTEXT","MULTILINESTRINGFROMWKB","MULTIPOINTFROMTEXT","MULTIPOINTFROMWKB","MULTIPOLYGONFROMTEXT","MULTIPOLYGONFROMWKB","NAME_CONST","NULLIF","NUMGEOMETRIES","NUMINTERIORRINGS","NUMPOINTS","OCT","OCTET_LENGTH","ORD","OVERLAPS","PERIOD_ADD","PERIOD_DIFF","PI","POINTFROMTEXT","POINTFROMWKB","POINTN","POLYFROMTEXT","POLYFROMWKB","POLYGONFROMTEXT","POLYGONFROMWKB","POW","POWER","QUOTE","RADIANS","RAND","RANDOM","RANDOM_BYTES","RELEASE_LOCK","REVERSE","ROUND","ROW_COUNT","RPAD","RTRIM","SEC_TO_TIME","SECONDARY_ENGINE_ATTRIBUTE","SESSION_USER","SHA","SHA1","SHA2","SCHEMA_NAME","SIGN","SIN","SLEEP","SOUNDEX","SQL_THREAD_WAIT_AFTER_GTIDS","SQRT","SRID","STARTPOINT","STRCMP","STR_TO_DATE","ST_AREA","ST_ASBINARY","ST_ASTEXT","ST_ASWKB","ST_ASWKT","ST_BUFFER","ST_CENTROID","ST_CONTAINS","ST_CROSSES","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_ENDPOINT","ST_ENVELOPE","ST_EQUALS","ST_EXTERIORRING","ST_GEOMCOLLFROMTEXT","ST_GEOMCOLLFROMTXT","ST_GEOMCOLLFROMWKB","ST_GEOMETRYCOLLECTIONFROMTEXT","ST_GEOMETRYCOLLECTIONFROMWKB","ST_GEOMETRYFROMTEXT","ST_GEOMETRYFROMWKB","ST_GEOMETRYN","ST_GEOMETRYTYPE","ST_GEOMFROMTEXT","ST_GEOMFROMWKB","ST_INTERIORRINGN","ST_INTERSECTION","ST_INTERSECTS","ST_ISCLOSED","ST_ISEMPTY","ST_ISSIMPLE","ST_LINEFROMTEXT","ST_LINEFROMWKB","ST_LINESTRINGFROMTEXT","ST_LINESTRINGFROMWKB","ST_NUMGEOMETRIES","ST_NUMINTERIORRING","ST_NUMINTERIORRINGS","ST_NUMPOINTS","ST_OVERLAPS","ST_POINTFROMTEXT","ST_POINTFROMWKB","ST_POINTN","ST_POLYFROMTEXT","ST_POLYFROMWKB","ST_POLYGONFROMTEXT","ST_POLYGONFROMWKB","ST_SRID","ST_STARTPOINT","ST_SYMDIFFERENCE","ST_TOUCHES","ST_UNION","ST_WITHIN","ST_X","ST_Y","SUBDATE","SUBSTRING_INDEX","SUBTIME","SYSTEM_USER","TAN","TIMEDIFF","TIMESTAMPADD","TIMESTAMPDIFF","TIME_FORMAT","TIME_TO_SEC","TOUCHES","TO_BASE64","TO_DAYS","TO_SECONDS","TP_CONNECTION_ADMIN","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UUID","UUID_SHORT","VALIDATE_PASSWORD_STRENGTH","VERSION","WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","WITHIN","YEARWEEK","Y_FUNCTION","X_FUNCTION","VAR_ASSIGN","PLUS_ASSIGN","MINUS_ASSIGN","MULT_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","STAR","DIVIDE","MODULE","PLUS","MINUS","DIV","MOD","EQUAL_SYMBOL","GREATER_SYMBOL","LESS_SYMBOL","EXCLAMATION_SYMBOL","BIT_NOT_OP","BIT_OR_OP","BIT_AND_OP","BIT_XOR_OP","DOT","LR_BRACKET","RR_BRACKET","COMMA","SEMI","AT_SIGN","ZERO_DECIMAL","ONE_DECIMAL","TWO_DECIMAL","SINGLE_QUOTE_SYMB","DOUBLE_QUOTE_SYMB","REVERSE_QUOTE_SYMB","COLON_SYMB","QUOTE_SYMB","CHARSET_REVERSE_QOUTE_STRING","FILESIZE_LITERAL","START_NATIONAL_STRING_LITERAL","STRING_LITERAL","DECIMAL_LITERAL","HEXADECIMAL_LITERAL","REAL_LITERAL","NULL_SPEC_LITERAL","BIT_STRING","STRING_CHARSET_NAME","DOT_ID","ID","REVERSE_QUOTE_ID","HOST_IP_ADDRESS","LOCAL_ID","GLOBAL_ID","CHARSET_NAME","EXPONENT_NUM_PART","ID_LITERAL","DQUOTA_STRING","SQUOTA_STRING","BQUOTA_STRING","HEX_DIGIT","DEC_DIGIT","BIT_STRING_L","IP_ADDRESS","ERROR_RECONGNIGION"],Ki._serializedATN=[4,0,1161,13703,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,2,230,7,230,2,231,7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,235,7,235,2,236,7,236,2,237,7,237,2,238,7,238,2,239,7,239,2,240,7,240,2,241,7,241,2,242,7,242,2,243,7,243,2,244,7,244,2,245,7,245,2,246,7,246,2,247,7,247,2,248,7,248,2,249,7,249,2,250,7,250,2,251,7,251,2,252,7,252,2,253,7,253,2,254,7,254,2,255,7,255,2,256,7,256,2,257,7,257,2,258,7,258,2,259,7,259,2,260,7,260,2,261,7,261,2,262,7,262,2,263,7,263,2,264,7,264,2,265,7,265,2,266,7,266,2,267,7,267,2,268,7,268,2,269,7,269,2,270,7,270,2,271,7,271,2,272,7,272,2,273,7,273,2,274,7,274,2,275,7,275,2,276,7,276,2,277,7,277,2,278,7,278,2,279,7,279,2,280,7,280,2,281,7,281,2,282,7,282,2,283,7,283,2,284,7,284,2,285,7,285,2,286,7,286,2,287,7,287,2,288,7,288,2,289,7,289,2,290,7,290,2,291,7,291,2,292,7,292,2,293,7,293,2,294,7,294,2,295,7,295,2,296,7,296,2,297,7,297,2,298,7,298,2,299,7,299,2,300,7,300,2,301,7,301,2,302,7,302,2,303,7,303,2,304,7,304,2,305,7,305,2,306,7,306,2,307,7,307,2,308,7,308,2,309,7,309,2,310,7,310,2,311,7,311,2,312,7,312,2,313,7,313,2,314,7,314,2,315,7,315,2,316,7,316,2,317,7,317,2,318,7,318,2,319,7,319,2,320,7,320,2,321,7,321,2,322,7,322,2,323,7,323,2,324,7,324,2,325,7,325,2,326,7,326,2,327,7,327,2,328,7,328,2,329,7,329,2,330,7,330,2,331,7,331,2,332,7,332,2,333,7,333,2,334,7,334,2,335,7,335,2,336,7,336,2,337,7,337,2,338,7,338,2,339,7,339,2,340,7,340,2,341,7,341,2,342,7,342,2,343,7,343,2,344,7,344,2,345,7,345,2,346,7,346,2,347,7,347,2,348,7,348,2,349,7,349,2,350,7,350,2,351,7,351,2,352,7,352,2,353,7,353,2,354,7,354,2,355,7,355,2,356,7,356,2,357,7,357,2,358,7,358,2,359,7,359,2,360,7,360,2,361,7,361,2,362,7,362,2,363,7,363,2,364,7,364,2,365,7,365,2,366,7,366,2,367,7,367,2,368,7,368,2,369,7,369,2,370,7,370,2,371,7,371,2,372,7,372,2,373,7,373,2,374,7,374,2,375,7,375,2,376,7,376,2,377,7,377,2,378,7,378,2,379,7,379,2,380,7,380,2,381,7,381,2,382,7,382,2,383,7,383,2,384,7,384,2,385,7,385,2,386,7,386,2,387,7,387,2,388,7,388,2,389,7,389,2,390,7,390,2,391,7,391,2,392,7,392,2,393,7,393,2,394,7,394,2,395,7,395,2,396,7,396,2,397,7,397,2,398,7,398,2,399,7,399,2,400,7,400,2,401,7,401,2,402,7,402,2,403,7,403,2,404,7,404,2,405,7,405,2,406,7,406,2,407,7,407,2,408,7,408,2,409,7,409,2,410,7,410,2,411,7,411,2,412,7,412,2,413,7,413,2,414,7,414,2,415,7,415,2,416,7,416,2,417,7,417,2,418,7,418,2,419,7,419,2,420,7,420,2,421,7,421,2,422,7,422,2,423,7,423,2,424,7,424,2,425,7,425,2,426,7,426,2,427,7,427,2,428,7,428,2,429,7,429,2,430,7,430,2,431,7,431,2,432,7,432,2,433,7,433,2,434,7,434,2,435,7,435,2,436,7,436,2,437,7,437,2,438,7,438,2,439,7,439,2,440,7,440,2,441,7,441,2,442,7,442,2,443,7,443,2,444,7,444,2,445,7,445,2,446,7,446,2,447,7,447,2,448,7,448,2,449,7,449,2,450,7,450,2,451,7,451,2,452,7,452,2,453,7,453,2,454,7,454,2,455,7,455,2,456,7,456,2,457,7,457,2,458,7,458,2,459,7,459,2,460,7,460,2,461,7,461,2,462,7,462,2,463,7,463,2,464,7,464,2,465,7,465,2,466,7,466,2,467,7,467,2,468,7,468,2,469,7,469,2,470,7,470,2,471,7,471,2,472,7,472,2,473,7,473,2,474,7,474,2,475,7,475,2,476,7,476,2,477,7,477,2,478,7,478,2,479,7,479,2,480,7,480,2,481,7,481,2,482,7,482,2,483,7,483,2,484,7,484,2,485,7,485,2,486,7,486,2,487,7,487,2,488,7,488,2,489,7,489,2,490,7,490,2,491,7,491,2,492,7,492,2,493,7,493,2,494,7,494,2,495,7,495,2,496,7,496,2,497,7,497,2,498,7,498,2,499,7,499,2,500,7,500,2,501,7,501,2,502,7,502,2,503,7,503,2,504,7,504,2,505,7,505,2,506,7,506,2,507,7,507,2,508,7,508,2,509,7,509,2,510,7,510,2,511,7,511,2,512,7,512,2,513,7,513,2,514,7,514,2,515,7,515,2,516,7,516,2,517,7,517,2,518,7,518,2,519,7,519,2,520,7,520,2,521,7,521,2,522,7,522,2,523,7,523,2,524,7,524,2,525,7,525,2,526,7,526,2,527,7,527,2,528,7,528,2,529,7,529,2,530,7,530,2,531,7,531,2,532,7,532,2,533,7,533,2,534,7,534,2,535,7,535,2,536,7,536,2,537,7,537,2,538,7,538,2,539,7,539,2,540,7,540,2,541,7,541,2,542,7,542,2,543,7,543,2,544,7,544,2,545,7,545,2,546,7,546,2,547,7,547,2,548,7,548,2,549,7,549,2,550,7,550,2,551,7,551,2,552,7,552,2,553,7,553,2,554,7,554,2,555,7,555,2,556,7,556,2,557,7,557,2,558,7,558,2,559,7,559,2,560,7,560,2,561,7,561,2,562,7,562,2,563,7,563,2,564,7,564,2,565,7,565,2,566,7,566,2,567,7,567,2,568,7,568,2,569,7,569,2,570,7,570,2,571,7,571,2,572,7,572,2,573,7,573,2,574,7,574,2,575,7,575,2,576,7,576,2,577,7,577,2,578,7,578,2,579,7,579,2,580,7,580,2,581,7,581,2,582,7,582,2,583,7,583,2,584,7,584,2,585,7,585,2,586,7,586,2,587,7,587,2,588,7,588,2,589,7,589,2,590,7,590,2,591,7,591,2,592,7,592,2,593,7,593,2,594,7,594,2,595,7,595,2,596,7,596,2,597,7,597,2,598,7,598,2,599,7,599,2,600,7,600,2,601,7,601,2,602,7,602,2,603,7,603,2,604,7,604,2,605,7,605,2,606,7,606,2,607,7,607,2,608,7,608,2,609,7,609,2,610,7,610,2,611,7,611,2,612,7,612,2,613,7,613,2,614,7,614,2,615,7,615,2,616,7,616,2,617,7,617,2,618,7,618,2,619,7,619,2,620,7,620,2,621,7,621,2,622,7,622,2,623,7,623,2,624,7,624,2,625,7,625,2,626,7,626,2,627,7,627,2,628,7,628,2,629,7,629,2,630,7,630,2,631,7,631,2,632,7,632,2,633,7,633,2,634,7,634,2,635,7,635,2,636,7,636,2,637,7,637,2,638,7,638,2,639,7,639,2,640,7,640,2,641,7,641,2,642,7,642,2,643,7,643,2,644,7,644,2,645,7,645,2,646,7,646,2,647,7,647,2,648,7,648,2,649,7,649,2,650,7,650,2,651,7,651,2,652,7,652,2,653,7,653,2,654,7,654,2,655,7,655,2,656,7,656,2,657,7,657,2,658,7,658,2,659,7,659,2,660,7,660,2,661,7,661,2,662,7,662,2,663,7,663,2,664,7,664,2,665,7,665,2,666,7,666,2,667,7,667,2,668,7,668,2,669,7,669,2,670,7,670,2,671,7,671,2,672,7,672,2,673,7,673,2,674,7,674,2,675,7,675,2,676,7,676,2,677,7,677,2,678,7,678,2,679,7,679,2,680,7,680,2,681,7,681,2,682,7,682,2,683,7,683,2,684,7,684,2,685,7,685,2,686,7,686,2,687,7,687,2,688,7,688,2,689,7,689,2,690,7,690,2,691,7,691,2,692,7,692,2,693,7,693,2,694,7,694,2,695,7,695,2,696,7,696,2,697,7,697,2,698,7,698,2,699,7,699,2,700,7,700,2,701,7,701,2,702,7,702,2,703,7,703,2,704,7,704,2,705,7,705,2,706,7,706,2,707,7,707,2,708,7,708,2,709,7,709,2,710,7,710,2,711,7,711,2,712,7,712,2,713,7,713,2,714,7,714,2,715,7,715,2,716,7,716,2,717,7,717,2,718,7,718,2,719,7,719,2,720,7,720,2,721,7,721,2,722,7,722,2,723,7,723,2,724,7,724,2,725,7,725,2,726,7,726,2,727,7,727,2,728,7,728,2,729,7,729,2,730,7,730,2,731,7,731,2,732,7,732,2,733,7,733,2,734,7,734,2,735,7,735,2,736,7,736,2,737,7,737,2,738,7,738,2,739,7,739,2,740,7,740,2,741,7,741,2,742,7,742,2,743,7,743,2,744,7,744,2,745,7,745,2,746,7,746,2,747,7,747,2,748,7,748,2,749,7,749,2,750,7,750,2,751,7,751,2,752,7,752,2,753,7,753,2,754,7,754,2,755,7,755,2,756,7,756,2,757,7,757,2,758,7,758,2,759,7,759,2,760,7,760,2,761,7,761,2,762,7,762,2,763,7,763,2,764,7,764,2,765,7,765,2,766,7,766,2,767,7,767,2,768,7,768,2,769,7,769,2,770,7,770,2,771,7,771,2,772,7,772,2,773,7,773,2,774,7,774,2,775,7,775,2,776,7,776,2,777,7,777,2,778,7,778,2,779,7,779,2,780,7,780,2,781,7,781,2,782,7,782,2,783,7,783,2,784,7,784,2,785,7,785,2,786,7,786,2,787,7,787,2,788,7,788,2,789,7,789,2,790,7,790,2,791,7,791,2,792,7,792,2,793,7,793,2,794,7,794,2,795,7,795,2,796,7,796,2,797,7,797,2,798,7,798,2,799,7,799,2,800,7,800,2,801,7,801,2,802,7,802,2,803,7,803,2,804,7,804,2,805,7,805,2,806,7,806,2,807,7,807,2,808,7,808,2,809,7,809,2,810,7,810,2,811,7,811,2,812,7,812,2,813,7,813,2,814,7,814,2,815,7,815,2,816,7,816,2,817,7,817,2,818,7,818,2,819,7,819,2,820,7,820,2,821,7,821,2,822,7,822,2,823,7,823,2,824,7,824,2,825,7,825,2,826,7,826,2,827,7,827,2,828,7,828,2,829,7,829,2,830,7,830,2,831,7,831,2,832,7,832,2,833,7,833,2,834,7,834,2,835,7,835,2,836,7,836,2,837,7,837,2,838,7,838,2,839,7,839,2,840,7,840,2,841,7,841,2,842,7,842,2,843,7,843,2,844,7,844,2,845,7,845,2,846,7,846,2,847,7,847,2,848,7,848,2,849,7,849,2,850,7,850,2,851,7,851,2,852,7,852,2,853,7,853,2,854,7,854,2,855,7,855,2,856,7,856,2,857,7,857,2,858,7,858,2,859,7,859,2,860,7,860,2,861,7,861,2,862,7,862,2,863,7,863,2,864,7,864,2,865,7,865,2,866,7,866,2,867,7,867,2,868,7,868,2,869,7,869,2,870,7,870,2,871,7,871,2,872,7,872,2,873,7,873,2,874,7,874,2,875,7,875,2,876,7,876,2,877,7,877,2,878,7,878,2,879,7,879,2,880,7,880,2,881,7,881,2,882,7,882,2,883,7,883,2,884,7,884,2,885,7,885,2,886,7,886,2,887,7,887,2,888,7,888,2,889,7,889,2,890,7,890,2,891,7,891,2,892,7,892,2,893,7,893,2,894,7,894,2,895,7,895,2,896,7,896,2,897,7,897,2,898,7,898,2,899,7,899,2,900,7,900,2,901,7,901,2,902,7,902,2,903,7,903,2,904,7,904,2,905,7,905,2,906,7,906,2,907,7,907,2,908,7,908,2,909,7,909,2,910,7,910,2,911,7,911,2,912,7,912,2,913,7,913,2,914,7,914,2,915,7,915,2,916,7,916,2,917,7,917,2,918,7,918,2,919,7,919,2,920,7,920,2,921,7,921,2,922,7,922,2,923,7,923,2,924,7,924,2,925,7,925,2,926,7,926,2,927,7,927,2,928,7,928,2,929,7,929,2,930,7,930,2,931,7,931,2,932,7,932,2,933,7,933,2,934,7,934,2,935,7,935,2,936,7,936,2,937,7,937,2,938,7,938,2,939,7,939,2,940,7,940,2,941,7,941,2,942,7,942,2,943,7,943,2,944,7,944,2,945,7,945,2,946,7,946,2,947,7,947,2,948,7,948,2,949,7,949,2,950,7,950,2,951,7,951,2,952,7,952,2,953,7,953,2,954,7,954,2,955,7,955,2,956,7,956,2,957,7,957,2,958,7,958,2,959,7,959,2,960,7,960,2,961,7,961,2,962,7,962,2,963,7,963,2,964,7,964,2,965,7,965,2,966,7,966,2,967,7,967,2,968,7,968,2,969,7,969,2,970,7,970,2,971,7,971,2,972,7,972,2,973,7,973,2,974,7,974,2,975,7,975,2,976,7,976,2,977,7,977,2,978,7,978,2,979,7,979,2,980,7,980,2,981,7,981,2,982,7,982,2,983,7,983,2,984,7,984,2,985,7,985,2,986,7,986,2,987,7,987,2,988,7,988,2,989,7,989,2,990,7,990,2,991,7,991,2,992,7,992,2,993,7,993,2,994,7,994,2,995,7,995,2,996,7,996,2,997,7,997,2,998,7,998,2,999,7,999,2,1e3,7,1e3,2,1001,7,1001,2,1002,7,1002,2,1003,7,1003,2,1004,7,1004,2,1005,7,1005,2,1006,7,1006,2,1007,7,1007,2,1008,7,1008,2,1009,7,1009,2,1010,7,1010,2,1011,7,1011,2,1012,7,1012,2,1013,7,1013,2,1014,7,1014,2,1015,7,1015,2,1016,7,1016,2,1017,7,1017,2,1018,7,1018,2,1019,7,1019,2,1020,7,1020,2,1021,7,1021,2,1022,7,1022,2,1023,7,1023,2,1024,7,1024,2,1025,7,1025,2,1026,7,1026,2,1027,7,1027,2,1028,7,1028,2,1029,7,1029,2,1030,7,1030,2,1031,7,1031,2,1032,7,1032,2,1033,7,1033,2,1034,7,1034,2,1035,7,1035,2,1036,7,1036,2,1037,7,1037,2,1038,7,1038,2,1039,7,1039,2,1040,7,1040,2,1041,7,1041,2,1042,7,1042,2,1043,7,1043,2,1044,7,1044,2,1045,7,1045,2,1046,7,1046,2,1047,7,1047,2,1048,7,1048,2,1049,7,1049,2,1050,7,1050,2,1051,7,1051,2,1052,7,1052,2,1053,7,1053,2,1054,7,1054,2,1055,7,1055,2,1056,7,1056,2,1057,7,1057,2,1058,7,1058,2,1059,7,1059,2,1060,7,1060,2,1061,7,1061,2,1062,7,1062,2,1063,7,1063,2,1064,7,1064,2,1065,7,1065,2,1066,7,1066,2,1067,7,1067,2,1068,7,1068,2,1069,7,1069,2,1070,7,1070,2,1071,7,1071,2,1072,7,1072,2,1073,7,1073,2,1074,7,1074,2,1075,7,1075,2,1076,7,1076,2,1077,7,1077,2,1078,7,1078,2,1079,7,1079,2,1080,7,1080,2,1081,7,1081,2,1082,7,1082,2,1083,7,1083,2,1084,7,1084,2,1085,7,1085,2,1086,7,1086,2,1087,7,1087,2,1088,7,1088,2,1089,7,1089,2,1090,7,1090,2,1091,7,1091,2,1092,7,1092,2,1093,7,1093,2,1094,7,1094,2,1095,7,1095,2,1096,7,1096,2,1097,7,1097,2,1098,7,1098,2,1099,7,1099,2,1100,7,1100,2,1101,7,1101,2,1102,7,1102,2,1103,7,1103,2,1104,7,1104,2,1105,7,1105,2,1106,7,1106,2,1107,7,1107,2,1108,7,1108,2,1109,7,1109,2,1110,7,1110,2,1111,7,1111,2,1112,7,1112,2,1113,7,1113,2,1114,7,1114,2,1115,7,1115,2,1116,7,1116,2,1117,7,1117,2,1118,7,1118,2,1119,7,1119,2,1120,7,1120,2,1121,7,1121,2,1122,7,1122,2,1123,7,1123,2,1124,7,1124,2,1125,7,1125,2,1126,7,1126,2,1127,7,1127,2,1128,7,1128,2,1129,7,1129,2,1130,7,1130,2,1131,7,1131,2,1132,7,1132,2,1133,7,1133,2,1134,7,1134,2,1135,7,1135,2,1136,7,1136,2,1137,7,1137,2,1138,7,1138,2,1139,7,1139,2,1140,7,1140,2,1141,7,1141,2,1142,7,1142,2,1143,7,1143,2,1144,7,1144,2,1145,7,1145,2,1146,7,1146,2,1147,7,1147,2,1148,7,1148,2,1149,7,1149,2,1150,7,1150,2,1151,7,1151,2,1152,7,1152,2,1153,7,1153,2,1154,7,1154,2,1155,7,1155,2,1156,7,1156,2,1157,7,1157,2,1158,7,1158,2,1159,7,1159,2,1160,7,1160,2,1161,7,1161,2,1162,7,1162,2,1163,7,1163,2,1164,7,1164,2,1165,7,1165,2,1166,7,1166,2,1167,7,1167,2,1168,7,1168,2,1169,7,1169,2,1170,7,1170,2,1171,7,1171,1,0,4,0,2347,8,0,11,0,12,0,2348,1,0,1,0,1,1,1,1,1,1,1,1,1,1,4,1,2358,8,1,11,1,12,1,2359,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,5,2,2371,8,2,10,2,12,2,2374,9,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,5,3,2385,8,3,10,3,12,3,2388,9,3,1,3,3,3,2391,8,3,1,3,5,3,2394,8,3,10,3,12,3,2397,9,3,1,3,3,3,2400,8,3,1,3,1,3,3,3,2404,8,3,1,3,1,3,1,3,1,3,3,3,2410,8,3,1,3,1,3,3,3,2414,8,3,3,3,2416,8,3,1,3,1,3,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,86,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,95,1,95,1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,101,1,101,1,102,1,102,1,102,1,102,1,102,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,1,104,1,104,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,108,1,108,1,108,1,108,1,108,1,108,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,113,1,113,1,113,1,113,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,131,1,131,1,131,1,131,1,131,1,131,1,132,1,132,1,132,1,132,1,132,1,132,1,133,1,133,1,133,1,133,1,133,1,134,1,134,1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,147,1,147,1,147,1,147,1,147,1,147,1,148,1,148,1,148,1,148,1,148,1,148,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,152,1,152,1,152,1,152,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,154,1,154,1,154,1,154,1,154,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,156,1,156,1,156,1,156,1,156,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,159,1,159,1,159,1,159,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,161,1,161,1,161,1,161,1,161,1,161,1,161,1,161,1,161,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,171,1,171,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,173,1,173,1,173,1,173,1,173,1,174,1,174,1,174,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,176,1,176,1,176,1,176,1,176,1,176,1,176,1,176,1,177,1,177,1,177,1,177,1,177,1,178,1,178,1,178,1,178,1,178,1,179,1,179,1,179,1,179,1,179,1,179,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,181,1,181,1,181,1,181,1,181,1,181,1,181,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,184,1,184,1,184,1,184,1,184,1,184,1,185,1,185,1,185,1,185,1,186,1,186,1,186,1,186,1,186,1,186,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,188,1,188,1,188,1,188,1,188,1,189,1,189,1,189,1,189,1,189,1,189,1,190,1,190,1,190,1,190,1,190,1,190,1,191,1,191,1,191,1,191,1,191,1,192,1,192,1,192,1,192,1,192,1,192,1,193,1,193,1,193,1,193,1,194,1,194,1,194,1,194,1,194,1,194,1,194,1,194,1,194,1,195,1,195,1,195,1,195,1,195,1,195,1,195,1,195,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,197,1,197,1,197,1,197,1,197,1,197,1,197,1,197,1,197,1,197,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,199,1,199,1,199,1,199,1,200,1,200,1,200,1,200,1,200,1,201,1,201,1,201,1,201,1,201,1,202,1,202,1,202,1,202,1,202,1,203,1,203,1,203,1,203,1,203,1,204,1,204,1,204,1,204,1,204,1,205,1,205,1,205,1,205,1,205,1,205,1,205,1,205,1,206,1,206,1,206,1,206,1,206,1,206,1,206,1,207,1,207,1,207,1,207,1,207,1,208,1,208,1,208,1,208,1,208,1,208,1,208,1,209,1,209,1,209,1,209,1,209,1,209,1,209,1,209,1,209,1,209,1,210,1,210,1,210,1,210,1,210,1,210,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,214,1,214,1,214,1,214,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,216,1,216,1,216,1,216,1,216,1,217,1,217,1,217,1,217,1,217,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,220,1,220,1,220,1,220,1,220,1,221,1,221,1,221,1,221,1,221,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,223,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,227,1,227,1,227,1,227,1,227,1,227,1,227,1,227,1,227,1,228,1,228,1,228,1,228,1,228,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,230,1,230,1,230,1,230,1,230,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,231,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,233,1,233,1,233,1,233,1,233,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,236,1,236,1,236,1,236,1,236,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,237,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,282,1,282,1,282,1,282,1,282,1,282,1,282,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,284,1,284,1,284,1,284,1,284,1,285,1,285,1,285,1,285,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,286,1,287,1,287,1,287,1,287,1,287,1,287,1,287,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,289,1,289,1,289,1,289,1,289,1,289,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,290,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,292,1,292,1,292,1,292,1,292,1,292,1,292,1,292,1,292,1,292,1,292,1,292,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,294,1,294,1,294,1,294,1,295,1,295,1,295,1,295,1,295,1,295,1,295,1,295,1,295,1,295,1,295,1,296,1,296,1,296,1,296,1,296,1,297,1,297,1,297,1,297,1,298,1,298,1,298,1,298,1,299,1,299,1,299,1,299,1,299,1,299,1,300,1,300,1,300,1,300,1,300,1,300,1,300,1,300,1,300,1,300,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,302,1,302,1,302,1,302,1,302,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,304,1,304,1,304,1,304,1,305,1,305,1,305,1,305,1,305,1,305,1,305,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,307,1,307,1,307,1,307,1,307,1,307,1,307,1,307,1,307,1,307,1,307,1,307,1,308,1,308,1,308,1,308,1,309,1,309,1,309,1,309,1,309,1,309,1,309,1,309,1,310,1,310,1,310,1,310,1,310,1,310,1,310,1,310,1,310,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,311,1,312,1,312,1,312,1,312,1,312,1,312,1,312,1,312,1,312,1,312,1,312,1,312,1,312,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,316,1,317,1,317,1,317,1,317,1,317,1,317,1,317,1,317,1,318,1,318,1,318,1,318,1,318,1,318,1,318,1,318,1,318,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1,320,1,320,1,320,1,320,1,320,1,320,1,320,1,320,1,321,1,321,1,321,1,321,1,321,1,321,1,321,1,321,1,321,1,321,1,321,1,321,1,321,1,321,1,321,1,322,1,322,1,322,1,322,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,324,1,324,1,324,1,324,1,324,1,324,1,324,1,325,1,325,1,325,1,325,1,325,1,325,1,325,1,325,1,325,1,325,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,326,1,327,1,327,1,327,1,327,1,327,1,328,1,328,1,328,1,328,1,328,1,328,1,328,1,328,1,328,1,329,1,329,1,329,1,329,1,329,1,329,1,329,1,329,1,329,1,330,1,330,1,330,1,330,1,330,1,330,1,330,1,330,1,330,1,330,1,330,1,330,1,330,1,330,1,331,1,331,1,331,1,331,1,331,1,331,1,331,1,331,1,332,1,332,1,332,1,332,1,332,1,332,1,332,1,333,1,333,1,333,1,333,1,333,1,333,1,334,1,334,1,334,1,334,1,334,1,334,1,334,1,334,1,334,1,334,1,335,1,335,1,335,1,335,1,335,1,335,1,335,1,335,1,335,1,335,1,336,1,336,1,336,1,336,1,337,1,337,1,337,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,341,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,342,1,343,1,343,1,343,1,343,1,343,1,343,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,345,1,345,1,345,1,345,1,346,1,346,1,346,1,346,1,346,1,346,1,347,1,347,1,347,1,347,1,347,1,348,1,348,1,348,1,348,1,348,1,348,1,348,1,348,1,349,1,349,1,349,1,349,1,349,1,349,1,350,1,350,1,350,1,350,1,350,1,350,1,351,1,351,1,351,1,351,1,351,1,351,1,351,1,351,1,351,1,352,1,352,1,352,1,352,1,352,1,352,1,353,1,353,1,353,1,353,1,353,1,353,1,353,1,353,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,355,1,355,1,355,1,355,1,355,1,355,1,355,1,355,1,355,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1,356,1,357,1,357,1,357,1,357,1,357,1,357,1,357,1,358,1,358,1,358,1,358,1,358,1,358,1,358,1,358,1,358,1,358,1,358,1,358,1,358,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,360,1,360,1,360,1,360,1,360,1,360,1,361,1,361,1,361,1,361,1,361,1,361,1,361,1,361,1,361,1,361,1,361,1,362,1,362,1,362,1,362,1,362,1,362,1,362,1,362,1,362,1,363,1,363,1,363,1,363,1,363,1,364,1,364,1,364,1,364,1,364,1,364,1,364,1,364,1,365,1,365,1,365,1,365,1,365,1,365,1,365,1,365,1,365,1,365,1,365,1,365,1,365,1,365,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,367,1,367,1,367,1,367,1,367,1,367,1,367,1,367,1,368,1,368,1,368,1,368,1,368,1,368,1,368,1,369,1,369,1,369,1,369,1,369,1,369,1,369,1,369,1,370,1,370,1,370,1,370,1,370,1,370,1,370,1,370,1,370,1,370,1,370,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,371,1,372,1,372,1,372,1,372,1,372,1,372,1,372,1,372,1,372,1,372,1,372,1,372,1,373,1,373,1,373,1,373,1,373,1,373,1,373,1,373,1,373,1,373,1,373,1,374,1,374,1,374,1,374,1,374,1,374,1,374,1,374,1,375,1,375,1,375,1,375,1,375,1,375,1,375,1,375,1,375,1,375,1,375,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,378,1,379,1,379,1,379,1,379,1,379,1,379,1,379,1,379,1,379,1,379,1,379,1,379,1,379,1,379,1,379,1,379,1,380,1,380,1,380,1,380,1,380,1,380,1,380,1,380,1,380,1,381,1,381,1,381,1,381,1,381,1,381,1,381,1,381,1,382,1,382,1,382,1,382,1,382,1,382,1,382,1,382,1,382,1,382,1,382,1,382,1,382,1,383,1,383,1,383,1,383,1,383,1,384,1,384,1,384,1,384,1,385,1,385,1,385,1,385,1,385,1,385,1,386,1,386,1,386,1,386,1,386,1,386,1,386,1,386,1,386,1,386,1,386,1,386,1,387,1,387,1,387,1,387,1,387,1,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,1,388,1,389,1,389,1,389,1,389,1,389,1,389,1,389,1,389,1,389,1,389,1,389,1,390,1,390,1,390,1,390,1,390,1,390,1,390,1,390,1,390,1,390,1,390,1,390,1,390,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,391,1,392,1,392,1,392,1,392,1,392,1,392,1,392,1,392,1,392,1,392,1,392,1,392,1,392,1,392,1,392,1,392,1,393,1,393,1,393,1,393,1,393,1,393,1,393,1,393,1,393,1,393,1,393,1,393,1,393,1,394,1,394,1,394,1,394,1,394,1,394,1,394,1,394,1,394,1,394,1,395,1,395,1,395,1,395,1,395,1,395,1,395,1,395,1,396,1,396,1,396,1,396,1,396,1,396,1,396,1,396,1,397,1,397,1,397,1,397,1,397,1,398,1,398,1,398,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,1,400,1,400,1,400,1,400,1,400,1,400,1,400,1,400,1,400,1,400,1,401,1,401,1,401,1,401,1,401,1,401,1,401,1,401,1,402,1,402,1,402,1,402,1,402,1,402,1,402,1,403,1,403,1,403,1,403,1,403,1,403,1,403,1,403,1,403,1,403,1,404,1,404,1,404,1,404,1,404,1,404,1,404,1,404,1,404,1,404,1,404,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,405,1,406,1,406,1,406,1,406,1,407,1,407,1,407,1,407,1,407,1,408,1,408,1,408,1,408,1,408,1,408,1,408,1,409,1,409,1,409,1,409,1,409,1,409,1,409,1,409,1,410,1,410,1,410,1,410,1,410,1,410,1,411,1,411,1,411,1,411,1,411,1,411,1,411,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,413,1,413,1,413,1,413,1,413,1,414,1,414,1,414,1,414,1,414,1,414,1,415,1,415,1,415,1,415,1,415,1,415,1,415,1,416,1,416,1,416,1,416,1,416,1,416,1,417,1,417,1,417,1,417,1,417,1,417,1,417,1,417,1,417,1,418,1,418,1,418,1,418,1,418,1,418,1,418,1,418,1,418,1,418,1,419,1,419,1,419,1,419,1,419,1,419,1,419,1,420,1,420,1,420,1,420,1,420,1,420,1,420,1,421,1,421,1,421,1,421,1,421,1,421,1,421,1,421,1,421,1,422,1,422,1,422,1,422,1,422,1,422,1,422,1,422,1,422,1,422,1,422,1,422,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,423,1,424,1,424,1,424,1,424,1,424,1,425,1,425,1,425,1,425,1,425,1,425,1,425,1,426,1,426,1,426,1,426,1,426,1,426,1,426,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,427,1,428,1,428,1,428,1,428,1,428,1,428,1,428,1,429,1,429,1,429,1,429,1,429,1,429,1,430,1,430,1,430,1,430,1,430,1,430,1,431,1,431,1,431,1,431,1,431,1,431,1,432,1,432,1,432,1,432,1,432,1,432,1,432,1,432,1,432,1,432,1,433,1,433,1,433,1,433,1,433,1,433,1,433,1,433,1,434,1,434,1,434,1,434,1,434,1,434,1,435,1,435,1,435,1,435,1,435,1,436,1,436,1,436,1,436,1,436,1,436,1,436,1,436,1,436,1,437,1,437,1,437,1,437,1,437,1,437,1,437,1,437,1,438,1,438,1,438,1,438,1,438,1,438,1,438,1,439,1,439,1,439,1,439,1,439,1,439,1,439,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,440,1,441,1,441,1,441,1,441,1,441,1,441,1,441,1,441,1,442,1,442,1,442,1,442,1,442,1,443,1,443,1,443,1,443,1,443,1,444,1,444,1,444,1,444,1,444,1,444,1,444,1,444,1,445,1,445,1,445,1,445,1,445,1,446,1,446,1,446,1,446,1,446,1,446,1,447,1,447,1,447,1,447,1,447,1,447,1,447,1,447,1,447,1,447,1,447,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,448,1,449,1,449,1,449,1,449,1,449,1,449,1,449,1,450,1,450,1,450,1,450,1,450,1,450,1,450,1,450,1,450,1,450,1,451,1,451,1,451,1,451,1,451,1,451,1,451,1,451,1,452,1,452,1,452,1,452,1,452,1,452,1,452,1,452,1,452,1,452,1,452,1,452,1,452,1,453,1,453,1,453,1,453,1,453,1,453,1,453,1,453,1,454,1,454,1,454,1,454,1,454,1,454,1,454,1,454,1,454,1,454,1,454,1,454,1,454,1,454,1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,455,1,456,1,456,1,456,1,456,1,456,1,456,1,456,1,456,1,456,1,457,1,457,1,457,1,457,1,457,1,457,1,457,1,457,1,458,1,458,1,458,1,458,1,458,1,458,1,458,1,458,1,458,1,458,1,459,1,459,1,459,1,459,1,459,1,459,1,459,1,459,1,460,1,460,1,460,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,461,1,462,1,462,1,462,1,462,1,463,1,463,1,463,1,463,1,463,1,463,1,463,1,463,1,463,1,463,1,464,1,464,1,464,1,464,1,464,1,464,1,464,1,465,1,465,1,465,1,465,1,465,1,466,1,466,1,466,1,466,1,466,1,466,1,466,1,466,1,466,1,466,1,466,1,466,1,466,1,466,1,466,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,468,1,468,1,468,1,468,1,468,1,469,1,469,1,469,1,469,1,469,1,469,1,469,1,470,1,470,1,470,1,470,1,470,1,471,1,471,1,471,1,471,1,471,1,471,1,472,1,472,1,472,1,472,1,472,1,473,1,473,1,473,1,473,1,473,1,473,1,474,1,474,1,474,1,474,1,474,1,474,1,474,1,474,1,475,1,475,1,475,1,475,1,475,1,476,1,476,1,476,1,476,1,476,1,476,1,476,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,478,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,479,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,480,1,481,1,481,1,481,1,481,1,481,1,481,1,481,1,481,1,481,1,481,1,481,1,481,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1,482,1,483,1,483,1,483,1,483,1,483,1,483,1,483,1,483,1,483,1,483,1,483,1,483,1,483,1,483,1,483,1,484,1,484,1,484,1,484,1,484,1,484,1,484,1,484,1,484,1,484,1,484,1,484,1,484,1,484,1,484,1,484,1,485,1,485,1,485,1,485,1,485,1,485,1,485,1,485,1,485,1,485,1,485,1,485,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,486,1,487,1,487,1,487,1,487,1,487,1,487,1,487,1,487,1,487,1,487,1,487,1,488,1,488,1,488,1,488,1,488,1,488,1,488,1,488,1,488,1,488,1,488,1,488,1,488,1,488,1,489,1,489,1,489,1,489,1,489,1,489,1,489,1,489,1,489,1,489,1,489,1,489,1,489,1,489,1,489,1,489,1,489,1,489,1,490,1,490,1,490,1,490,1,490,1,490,1,490,1,490,1,490,1,490,1,490,1,490,1,490,1,490,1,490,1,490,1,491,1,491,1,491,1,491,1,491,1,491,1,491,1,491,1,491,1,491,1,491,1,491,1,491,1,491,1,491,1,491,1,491,1,491,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,492,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,493,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,494,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,495,1,496,1,496,1,496,1,496,1,496,1,496,1,496,1,496,1,496,1,496,1,496,1,496,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,497,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,498,1,499,1,499,1,499,1,499,1,499,1,499,1,499,1,499,1,499,1,500,1,500,1,500,1,500,1,500,1,500,1,500,1,500,1,500,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,501,1,502,1,502,1,502,1,502,1,502,1,502,1,502,1,502,1,502,1,502,1,502,1,502,1,502,1,502,1,502,1,502,1,502,1,502,1,502,1,502,1,502,1,503,1,503,1,503,1,503,1,503,1,503,1,503,1,504,1,504,1,504,1,504,1,504,1,504,1,504,1,505,1,505,1,505,1,505,1,505,1,505,1,506,1,506,1,506,1,506,1,506,1,506,1,506,1,506,1,506,1,506,1,506,1,506,1,506,1,507,1,507,1,507,1,507,1,508,1,508,1,508,1,508,1,508,1,508,1,508,1,508,1,509,1,509,1,509,1,509,1,509,1,509,1,509,1,509,1,509,1,510,1,510,1,510,1,510,1,510,1,511,1,511,1,511,1,511,1,511,1,511,1,511,1,512,1,512,1,512,1,512,1,512,1,512,1,513,1,513,1,513,1,513,1,513,1,513,1,514,1,514,1,514,1,514,1,514,1,514,1,514,1,514,1,514,1,514,1,514,1,514,1,515,1,515,1,515,1,515,1,515,1,516,1,516,1,516,1,516,1,516,1,516,1,517,1,517,1,517,1,517,1,517,1,517,1,518,1,518,1,518,1,518,1,518,1,518,1,519,1,519,1,519,1,519,1,519,1,520,1,520,1,520,1,521,1,521,1,521,1,521,1,521,1,521,1,521,1,521,1,522,1,522,1,522,1,522,1,522,1,522,1,522,1,523,1,523,1,523,1,523,1,523,1,523,1,523,1,523,1,524,1,524,1,524,1,524,1,524,1,524,1,524,1,524,1,524,1,524,1,524,1,525,1,525,1,525,1,525,1,525,1,525,1,525,1,525,1,525,1,525,1,525,1,526,1,526,1,526,1,526,1,526,1,526,1,526,1,527,1,527,1,527,1,527,1,527,1,527,1,527,1,527,1,527,1,527,1,528,1,528,1,528,1,528,1,528,1,529,1,529,1,529,1,529,1,529,1,530,1,530,1,530,1,530,1,530,1,530,1,530,1,530,1,531,1,531,1,531,1,531,1,531,1,531,1,531,1,532,1,532,1,532,1,533,1,533,1,533,1,534,1,534,1,534,1,534,1,534,1,534,1,534,1,534,1,534,1,534,1,534,1,534,1,534,1,535,1,535,1,535,1,535,1,536,1,536,1,536,1,536,1,536,1,536,1,536,1,537,1,537,1,537,1,537,1,537,1,538,1,538,1,538,1,538,1,538,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,539,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,540,1,541,1,541,1,541,1,541,1,541,1,541,1,542,1,542,1,542,1,542,1,542,1,542,1,542,1,542,1,542,1,542,1,543,1,543,1,543,1,543,1,543,1,544,1,544,1,544,1,544,1,544,1,544,1,544,1,544,1,544,1,544,1,544,1,544,1,544,1,544,1,544,1,544,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,545,1,546,1,546,1,546,1,546,1,546,1,546,1,546,1,547,1,547,1,547,1,547,1,547,1,547,1,547,1,547,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,548,1,549,1,549,1,549,1,549,1,549,1,549,1,549,1,549,1,549,1,549,1,549,1,550,1,550,1,550,1,550,1,550,1,550,1,550,1,550,1,550,1,551,1,551,1,551,1,551,1,551,1,551,1,551,1,551,1,551,1,551,1,551,1,551,1,551,1,551,1,551,1,551,1,551,1,551,1,551,1,552,1,552,1,552,1,552,1,552,1,552,1,553,1,553,1,553,1,553,1,553,1,553,1,553,1,554,1,554,1,554,1,554,1,554,1,554,1,554,1,554,1,554,1,554,1,554,1,555,1,555,1,555,1,555,1,555,1,555,1,555,1,555,1,556,1,556,1,556,1,556,1,556,1,557,1,557,1,557,1,557,1,557,1,557,1,557,1,557,1,557,1,558,1,558,1,558,1,558,1,558,1,558,1,558,1,558,1,558,1,558,1,559,1,559,1,559,1,559,1,559,1,559,1,559,1,559,1,560,1,560,1,560,1,560,1,560,1,560,1,560,1,560,1,560,1,561,1,561,1,561,1,561,1,561,1,562,1,562,1,562,1,562,1,562,1,562,1,562,1,562,1,562,1,562,1,562,1,562,1,563,1,563,1,563,1,563,1,563,1,563,1,563,1,563,1,564,1,564,1,564,1,564,1,564,1,564,1,564,1,564,1,564,1,565,1,565,1,565,1,565,1,565,1,565,1,566,1,566,1,566,1,566,1,566,1,566,1,567,1,567,1,567,1,567,1,567,1,567,1,568,1,568,1,568,1,568,1,568,1,568,1,568,1,568,1,569,1,569,1,569,1,569,1,569,1,569,1,569,1,569,1,570,1,570,1,570,1,570,1,570,1,570,1,570,1,570,1,570,1,570,1,571,1,571,1,571,1,571,1,571,1,571,1,571,1,571,1,571,1,571,1,571,1,571,1,571,1,571,1,571,1,571,1,571,1,572,1,572,1,572,1,572,1,572,1,572,1,572,1,572,1,572,1,572,1,573,1,573,1,573,1,573,1,573,1,573,1,574,1,574,1,574,1,574,1,574,1,574,1,574,1,574,1,574,1,574,1,574,1,574,1,574,1,574,1,574,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,575,1,576,1,576,1,576,1,576,1,576,1,576,1,576,1,576,1,576,1,577,1,577,1,577,1,577,1,577,1,577,1,577,1,578,1,578,1,578,1,578,1,578,1,578,1,578,1,578,1,578,1,578,1,578,1,579,1,579,1,579,1,579,1,579,1,579,1,579,1,580,1,580,1,580,1,580,1,580,1,580,1,580,1,580,1,580,1,580,1,580,1,580,1,580,1,580,1,580,1,580,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,581,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,582,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,583,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,584,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,585,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,586,1,587,1,587,1,587,1,587,1,587,1,587,1,587,1,587,1,587,1,587,1,587,1,587,1,588,1,588,1,588,1,588,1,588,1,588,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,589,1,590,1,590,1,590,1,590,1,590,1,590,1,590,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,591,1,592,1,592,1,592,1,592,1,592,1,592,1,592,1,592,1,592,1,592,1,593,1,593,1,593,1,593,1,593,1,593,1,593,1,593,1,594,1,594,1,594,1,594,1,594,1,594,1,595,1,595,1,595,1,595,1,595,1,596,1,596,1,596,1,596,1,596,1,596,1,596,1,596,1,596,1,597,1,597,1,597,1,597,1,597,1,597,1,597,1,598,1,598,1,598,1,598,1,598,1,598,1,598,1,599,1,599,1,599,1,599,1,600,1,600,1,600,1,600,1,600,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,601,1,602,1,602,1,602,1,602,1,602,1,602,1,603,1,603,1,603,1,603,1,603,1,603,1,603,1,603,1,603,1,603,1,604,1,604,1,604,1,604,1,604,1,604,1,604,1,604,1,604,1,605,1,605,1,605,1,605,1,605,1,605,1,605,1,605,1,605,1,606,1,606,1,606,1,606,1,606,1,606,1,606,1,606,1,606,1,607,1,607,1,607,1,607,1,607,1,607,1,607,1,608,1,608,1,608,1,608,1,608,1,608,1,608,1,608,1,609,1,609,1,609,1,609,1,609,1,609,1,610,1,610,1,610,1,610,1,610,1,610,1,610,1,611,1,611,1,611,1,611,1,611,1,611,1,611,1,612,1,612,1,612,1,612,1,612,1,612,1,612,1,613,1,613,1,613,1,613,1,613,1,613,1,614,1,614,1,614,1,614,1,614,1,615,1,615,1,615,1,615,1,615,1,615,1,615,1,615,1,615,1,616,1,616,1,616,1,616,1,616,1,616,1,616,1,617,1,617,1,617,1,617,1,617,1,618,1,618,1,618,1,618,1,618,1,618,1,618,1,619,1,619,1,619,1,619,1,619,1,619,1,619,1,620,1,620,1,620,1,620,1,620,1,620,1,620,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,622,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,623,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,625,1,626,1,626,1,626,1,626,1,626,1,626,1,626,1,626,1,626,1,626,1,626,1,626,1,626,1,627,1,627,1,627,1,627,1,627,1,627,1,627,1,627,1,627,1,627,1,627,1,628,1,628,1,628,1,628,1,628,1,628,1,629,1,629,1,629,1,629,1,629,1,629,1,629,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,630,1,631,1,631,1,631,1,631,1,631,1,631,1,631,1,631,1,631,1,631,1,631,1,631,1,631,1,631,1,631,1,631,1,631,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,632,1,633,1,633,1,633,1,633,1,633,1,633,1,633,1,634,1,634,1,634,1,634,1,634,1,635,1,635,1,635,1,635,1,635,1,635,1,635,1,635,1,636,1,636,1,636,1,636,1,636,1,636,1,636,1,637,1,637,1,637,1,637,1,637,1,637,1,637,1,638,1,638,1,638,1,638,1,638,1,638,1,638,1,638,1,638,1,638,1,638,1,638,1,638,1,638,1,638,1,638,1,639,1,639,1,639,1,639,1,639,1,639,1,639,1,639,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,640,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1,642,1,642,1,642,1,642,1,642,1,642,1,642,1,642,1,643,1,643,1,643,1,643,1,643,1,643,1,644,1,644,1,644,1,644,1,644,1,644,1,644,1,644,1,644,1,645,1,645,1,645,1,645,1,645,1,645,1,645,1,645,1,645,1,645,1,645,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,646,1,647,1,647,1,647,1,647,1,647,1,647,1,647,1,647,1,647,1,647,1,647,1,648,1,648,1,648,1,648,1,648,1,648,1,648,1,648,1,648,1,648,1,649,1,649,1,649,1,649,1,649,1,649,1,649,1,649,1,649,1,649,1,650,1,650,1,650,1,650,1,650,1,651,1,651,1,651,1,651,1,651,1,651,1,651,1,651,1,651,1,651,1,651,1,651,1,652,1,652,1,652,1,652,1,652,1,652,1,652,1,652,1,652,1,652,1,652,1,652,1,653,1,653,1,653,1,653,1,653,1,653,1,653,1,653,1,653,1,653,1,653,1,653,1,653,1,653,1,654,1,654,1,654,1,654,1,654,1,654,1,654,1,654,1,654,1,655,1,655,1,655,1,655,1,655,1,655,1,655,1,655,1,655,1,656,1,656,1,656,1,656,1,656,1,656,1,656,1,656,1,656,1,656,1,657,1,657,1,657,1,657,1,657,1,657,1,657,1,657,1,657,1,657,1,658,1,658,1,658,1,658,1,658,1,658,1,658,1,658,1,658,1,659,1,659,1,659,1,659,1,659,1,659,1,659,1,659,1,659,1,659,1,659,1,659,1,659,1,659,1,659,1,659,1,659,1,660,1,660,1,660,1,660,1,660,1,660,1,660,1,660,1,660,1,660,1,661,1,661,1,661,1,661,1,661,1,661,1,661,1,661,1,662,1,662,1,662,1,662,1,662,1,662,1,663,1,663,1,663,1,663,1,663,1,663,1,663,1,663,1,664,1,664,1,664,1,664,1,664,1,665,1,665,1,665,1,665,1,665,1,665,1,665,1,665,1,666,1,666,1,666,1,666,1,666,1,666,1,666,1,666,1,666,1,666,1,666,1,666,1,666,1,666,1,666,1,667,1,667,1,667,1,667,1,667,1,667,1,667,1,667,1,667,1,667,1,667,1,668,1,668,1,668,1,668,1,668,1,668,1,669,1,669,1,669,1,669,1,669,1,669,1,669,1,669,1,669,1,669,1,670,1,670,1,670,1,670,1,670,1,671,1,671,1,671,1,671,1,671,1,671,1,671,1,671,1,672,1,672,1,672,1,672,1,672,1,672,1,672,1,672,1,673,1,673,1,673,1,673,1,673,1,674,1,674,1,674,1,674,1,674,1,674,1,674,1,674,1,674,1,675,1,675,1,675,1,675,1,675,1,675,1,675,1,676,1,676,1,676,1,676,1,676,1,676,1,676,1,676,1,677,1,677,1,677,1,677,1,677,1,678,1,678,1,678,1,678,1,678,1,678,1,678,1,678,1,679,1,679,1,679,1,679,1,679,1,680,1,680,1,680,1,681,1,681,1,681,1,681,1,682,1,682,1,682,1,682,1,683,1,683,1,683,1,683,1,684,1,684,1,684,1,684,1,685,1,685,1,685,1,685,1,686,1,686,1,686,1,686,1,687,1,687,1,687,1,687,1,687,1,687,1,687,1,687,1,687,1,688,1,688,1,688,1,688,1,688,1,688,1,688,1,688,1,689,1,689,1,689,1,689,1,689,1,689,1,690,1,690,1,690,1,690,1,691,1,691,1,691,1,691,1,691,1,692,1,692,1,692,1,692,1,692,1,692,1,692,1,693,1,693,1,693,1,693,1,693,1,694,1,694,1,694,1,694,1,694,1,694,1,694,1,695,1,695,1,695,1,695,1,695,1,695,1,695,1,695,1,695,1,695,1,695,1,695,1,696,1,696,1,696,1,696,1,696,1,696,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,697,1,698,1,698,1,698,1,698,1,698,1,698,1,698,1,698,1,698,1,698,1,698,1,698,1,698,1,698,1,698,1,698,1,698,1,698,1,698,1,699,1,699,1,699,1,699,1,699,1,699,1,699,1,699,1,699,1,699,1,699,1,699,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,700,1,701,1,701,1,701,1,701,1,701,1,701,1,701,1,701,1,701,1,701,1,701,1,701,1,701,1,702,1,702,1,702,1,702,1,702,1,702,1,702,1,702,1,702,1,702,1,702,1,702,1,702,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,703,1,704,1,704,1,704,1,704,1,704,1,704,1,704,1,704,1,704,1,704,1,704,1,704,1,705,1,705,1,705,1,705,1,705,1,705,1,705,1,705,1,705,1,705,1,705,1,705,1,705,1,705,1,705,1,705,1,705,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,706,1,707,1,707,1,707,1,707,1,707,1,707,1,707,1,707,1,708,1,708,1,708,1,708,1,708,1,709,1,709,1,709,1,709,1,709,1,709,1,709,1,709,1,709,1,709,1,709,1,709,1,709,1,709,1,709,1,710,1,710,1,710,1,710,1,710,1,710,1,710,1,710,1,710,1,710,1,710,1,710,1,710,1,710,1,710,1,710,1,711,1,711,1,711,1,711,1,711,1,711,1,711,1,711,1,711,1,711,1,711,1,711,1,711,1,711,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,712,1,713,1,713,1,713,1,713,1,713,1,713,1,713,1,713,1,713,1,713,1,713,1,713,1,713,1,714,1,714,1,714,1,714,1,714,1,714,1,714,1,714,1,714,1,714,1,714,1,714,1,714,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,715,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,716,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,717,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,718,1,719,1,719,1,719,1,719,1,719,1,719,1,719,1,720,1,720,1,720,1,720,1,720,1,720,1,720,1,721,1,721,1,721,1,721,1,721,1,721,1,721,1,721,1,721,1,721,1,721,1,721,1,721,1,721,1,721,1,721,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,722,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,723,1,724,1,724,1,724,1,724,1,724,1,724,1,724,1,724,1,724,1,724,1,724,1,725,1,725,1,725,1,725,1,725,1,725,1,725,1,725,1,726,1,726,1,726,1,726,1,726,1,726,1,726,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,727,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,728,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,729,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,730,1,731,1,731,1,731,1,731,1,731,1,731,1,731,1,731,1,731,1,731,1,731,1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,733,1,733,1,733,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,734,1,735,3,735,9262,8,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,1,735,3,735,9289,8,735,1,736,1,736,1,736,1,736,1,736,1,736,1,736,1,736,1,736,1,736,1,736,1,736,1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,739,1,739,1,739,1,739,1,739,1,739,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,740,1,741,1,741,1,741,1,741,1,741,1,741,1,741,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,742,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,743,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1,744,1,745,1,745,1,745,1,745,1,745,1,745,1,745,1,745,1,745,1,746,1,746,1,746,1,746,1,746,1,746,1,747,1,747,1,747,1,747,1,747,1,748,1,748,1,748,1,748,1,748,1,748,1,748,1,749,1,749,1,749,1,749,1,749,1,749,1,749,1,750,1,750,1,750,1,750,1,750,1,750,1,750,1,751,1,751,1,751,1,751,1,751,1,751,1,751,1,752,1,752,1,752,1,752,1,752,1,752,1,753,1,753,1,753,1,753,1,753,1,753,1,754,1,754,1,754,1,754,1,754,1,754,1,755,1,755,1,755,1,755,1,755,1,755,1,756,1,756,1,756,1,756,1,756,1,757,1,757,1,757,1,757,1,757,1,757,1,757,1,757,1,758,1,758,1,758,1,758,1,758,1,758,1,759,1,759,1,759,1,759,1,759,1,759,1,759,1,759,1,760,1,760,1,760,1,760,1,760,1,760,1,760,1,761,1,761,1,761,1,761,1,762,1,762,1,762,1,762,1,762,1,762,1,762,1,762,1,763,1,763,1,763,1,763,1,763,1,763,1,764,1,764,1,764,1,764,1,764,1,764,1,764,1,765,1,765,1,765,1,765,1,766,1,766,1,766,1,766,1,766,1,766,1,766,1,766,1,767,1,767,1,767,1,767,1,767,1,767,1,768,1,768,1,768,1,768,1,768,1,768,1,769,1,769,1,769,1,769,1,769,1,769,1,769,1,770,1,770,1,770,1,770,1,770,1,770,1,770,1,771,1,771,1,771,1,771,1,771,1,771,1,771,1,772,1,772,1,772,1,772,1,772,1,772,1,772,1,773,1,773,1,773,1,773,1,773,1,773,1,774,1,774,1,774,1,774,1,774,1,774,1,774,1,774,1,774,1,775,1,775,1,775,1,775,1,775,1,776,1,776,1,776,1,776,1,776,1,777,1,777,1,777,1,777,1,777,1,777,1,777,1,778,1,778,1,778,1,778,1,778,1,779,1,779,1,779,1,779,1,779,1,780,1,780,1,780,1,780,1,780,1,780,1,781,1,781,1,781,1,781,1,781,1,781,1,781,1,781,1,782,1,782,1,782,1,782,1,782,1,782,1,783,1,783,1,783,1,783,1,783,1,784,1,784,1,784,1,784,1,784,1,784,1,784,1,784,1,785,1,785,1,785,1,785,1,785,1,785,1,785,1,785,1,786,1,786,1,786,1,786,1,786,1,786,1,786,1,786,1,787,1,787,1,787,1,787,1,787,1,787,1,787,1,787,1,787,1,787,1,788,1,788,1,788,1,788,1,789,1,789,1,789,1,789,1,789,1,789,1,789,1,789,1,789,1,789,1,790,1,790,1,790,1,790,1,790,1,790,1,790,1,791,1,791,1,791,1,791,1,791,1,791,1,791,1,792,1,792,1,792,1,792,1,792,1,792,1,792,1,792,1,792,1,792,1,792,1,793,1,793,1,793,1,793,1,793,1,793,1,793,1,794,1,794,1,794,1,794,1,795,1,795,1,795,1,795,1,795,1,795,1,795,1,795,1,795,1,795,1,795,1,796,1,796,1,796,1,796,1,796,1,796,1,796,1,796,1,796,1,796,1,796,1,796,1,796,1,796,1,796,1,796,1,796,1,796,1,796,1,797,1,797,1,797,1,797,1,797,1,797,1,797,1,798,1,798,1,798,1,798,1,798,1,798,1,798,1,798,1,798,1,798,1,798,1,799,1,799,1,799,1,799,1,799,1,799,1,799,1,799,1,799,1,799,1,800,1,800,1,800,1,800,1,800,1,800,1,800,1,800,1,800,1,800,1,800,1,800,1,801,1,801,1,801,1,801,1,801,1,801,1,801,1,801,1,801,1,801,1,801,1,801,1,801,1,802,1,802,1,802,1,802,1,802,1,802,1,802,1,802,1,802,1,802,1,802,1,802,1,802,1,802,1,802,1,802,1,802,1,802,1,802,1,803,1,803,1,803,1,803,1,803,1,803,1,803,1,803,1,803,1,803,1,803,1,803,1,803,1,803,1,803,1,804,1,804,1,804,1,804,1,804,1,804,1,804,1,804,1,804,1,805,1,805,1,805,1,805,1,805,1,805,1,805,1,805,1,805,1,805,1,805,1,806,1,806,1,806,1,806,1,806,1,806,1,806,1,806,1,806,1,806,1,806,1,806,1,806,1,806,1,806,1,806,1,807,1,807,1,807,1,807,1,807,1,807,1,807,1,807,1,807,1,807,1,807,1,808,1,808,1,808,1,808,1,808,1,808,1,808,1,808,1,808,1,808,1,808,1,808,1,808,1,809,1,809,1,809,1,809,1,809,1,809,1,810,1,810,1,810,1,810,1,810,1,810,1,810,1,810,1,811,1,811,1,811,1,811,1,812,1,812,1,812,1,812,1,812,1,813,1,813,1,813,1,813,1,813,1,813,1,813,1,813,1,814,1,814,1,814,1,814,1,814,1,814,1,814,1,814,1,815,1,815,1,815,1,815,1,815,1,815,1,815,1,815,1,815,1,815,1,815,1,815,1,816,1,816,1,816,1,816,1,816,1,816,1,816,1,816,1,816,1,816,1,816,1,816,1,817,1,817,1,817,1,817,1,817,1,818,1,818,1,818,1,818,1,818,1,818,1,818,1,818,1,818,1,819,1,819,1,819,1,819,1,819,1,820,1,820,1,820,1,820,1,820,1,820,1,820,1,821,1,821,1,821,1,821,1,821,1,821,1,822,1,822,1,822,1,822,1,822,1,822,1,823,1,823,1,823,1,823,1,823,1,823,1,823,1,823,1,823,1,823,1,823,1,823,1,823,1,823,1,823,1,823,1,823,1,823,1,823,1,824,1,824,1,824,1,824,1,824,1,824,1,824,1,824,1,824,1,824,1,824,1,824,1,824,1,824,1,824,1,824,1,824,1,824,1,825,1,825,1,825,1,825,1,825,1,825,1,825,1,825,1,825,1,825,1,825,1,825,1,825,1,825,1,825,1,825,1,825,1,825,1,825,1,826,1,826,1,826,1,826,1,826,1,826,1,826,1,826,1,826,1,826,1,826,1,826,1,826,1,826,1,826,1,826,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,827,1,828,1,828,1,828,1,828,1,828,1,829,1,829,1,829,1,829,1,829,1,829,1,830,1,830,1,830,1,830,1,830,1,830,1,830,1,830,1,830,1,830,1,831,1,831,1,831,1,831,1,832,1,832,1,832,1,832,1,832,1,832,1,832,1,832,1,832,1,832,1,833,1,833,1,833,1,833,1,833,1,833,1,833,1,833,1,833,1,833,1,833,1,834,1,834,1,834,1,834,1,834,1,834,1,834,1,835,1,835,1,835,1,835,1,835,1,835,1,835,1,835,1,835,1,835,1,835,1,835,1,835,1,836,1,836,1,836,1,836,1,836,1,837,1,837,1,837,1,837,1,837,1,837,1,837,1,837,1,838,1,838,1,838,1,838,1,838,1,838,1,838,1,838,1,838,1,839,1,839,1,839,1,839,1,839,1,839,1,839,1,839,1,839,1,839,1,839,1,839,1,839,1,839,1,839,1,839,1,839,1,840,1,840,1,840,1,840,1,840,1,840,1,840,1,840,1,841,1,841,1,841,1,841,1,841,1,841,1,841,1,841,1,841,1,841,1,841,1,841,1,842,1,842,1,842,1,842,1,842,1,842,1,842,1,842,1,842,1,842,1,842,1,842,1,842,1,843,1,843,1,843,1,843,1,843,1,843,1,843,1,843,1,843,1,843,1,844,1,844,1,844,1,844,1,844,1,844,1,844,1,844,1,844,1,845,1,845,1,845,1,845,1,845,1,845,1,845,1,846,1,846,1,846,1,846,1,846,1,846,1,846,1,846,1,846,1,846,1,847,1,847,1,847,1,847,1,847,1,847,1,847,1,847,1,847,1,847,1,847,1,847,1,847,1,847,1,848,1,848,1,848,1,848,1,848,1,849,1,849,1,849,1,849,1,849,1,849,1,849,1,849,1,849,1,849,1,849,1,850,1,850,1,850,1,850,1,851,1,851,1,851,1,851,1,852,1,852,1,852,1,852,1,852,1,852,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,853,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,854,1,855,1,855,1,855,1,855,1,855,1,855,1,855,1,855,1,855,1,855,1,855,1,855,1,855,1,855,1,855,1,855,1,855,1,855,1,855,1,855,1,855,1,856,1,856,1,856,1,856,1,856,1,856,1,856,1,856,1,856,1,856,1,856,1,856,1,856,1,856,1,857,1,857,1,857,1,857,1,857,1,857,1,857,1,857,1,858,1,858,1,858,1,858,1,858,1,858,1,858,1,858,1,858,1,859,1,859,1,859,1,859,1,859,1,859,1,859,1,859,1,859,1,859,1,859,1,859,1,860,1,860,1,860,1,860,1,860,1,860,1,860,1,860,1,861,1,861,1,861,1,861,1,861,1,861,1,861,1,861,1,861,1,861,1,861,1,862,1,862,1,862,1,862,1,862,1,862,1,862,1,862,1,862,1,862,1,863,1,863,1,863,1,863,1,863,1,863,1,863,1,863,1,863,1,863,1,864,1,864,1,864,1,864,1,864,1,864,1,864,1,865,1,865,1,865,1,865,1,865,1,865,1,865,1,865,1,866,1,866,1,866,1,866,1,866,1,866,1,866,1,866,1,866,1,866,1,866,1,866,1,867,1,867,1,867,1,867,1,867,1,867,1,867,1,867,1,867,1,867,1,867,1,867,1,868,1,868,1,868,1,868,1,868,1,868,1,868,1,868,1,868,1,868,1,869,1,869,1,869,1,869,1,869,1,869,1,869,1,869,1,869,1,870,1,870,1,870,1,870,1,871,1,871,1,871,1,871,1,871,1,871,1,871,1,872,1,872,1,872,1,872,1,872,1,872,1,872,1,872,1,873,1,873,1,873,1,873,1,873,1,873,1,873,1,873,1,873,1,874,1,874,1,874,1,874,1,874,1,874,1,874,1,874,1,874,1,874,1,874,1,874,1,874,1,874,1,874,1,874,1,874,1,875,1,875,1,875,1,875,1,875,1,875,1,875,1,875,1,875,1,876,1,876,1,876,1,876,1,876,1,876,1,876,1,877,1,877,1,877,1,877,1,878,1,878,1,878,1,878,1,878,1,878,1,878,1,878,1,878,1,878,1,878,1,879,1,879,1,879,1,879,1,879,1,879,1,879,1,879,1,879,1,879,1,879,1,879,1,879,1,880,1,880,1,880,1,880,1,880,1,880,1,880,1,880,1,880,1,880,1,880,1,880,1,880,1,881,1,881,1,881,1,881,1,881,1,881,1,882,1,882,1,882,1,882,1,882,1,882,1,882,1,882,1,882,1,882,1,882,1,882,1,883,1,883,1,883,1,883,1,883,1,883,1,884,1,884,1,884,1,884,1,884,1,884,1,884,1,885,1,885,1,885,1,885,1,885,1,885,1,885,1,885,1,885,1,885,1,885,1,886,1,886,1,886,1,886,1,886,1,886,1,886,1,886,1,886,1,886,1,886,1,886,1,887,1,887,1,887,1,887,1,887,1,887,1,887,1,887,1,887,1,887,1,888,1,888,1,888,1,888,1,888,1,888,1,888,1,888,1,888,1,888,1,888,1,888,1,888,1,888,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1,889,1,890,1,890,1,890,1,890,1,890,1,890,1,890,1,890,1,890,1,890,1,890,1,890,1,890,1,890,1,890,1,890,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,891,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,892,1,893,1,893,1,893,1,893,1,893,1,893,1,893,1,893,1,893,1,893,1,893,1,893,1,893,1,893,1,893,1,893,1,893,1,894,1,894,1,894,1,894,1,894,1,894,1,894,1,894,1,894,1,894,1,894,1,894,1,894,1,894,1,894,1,894,1,895,1,895,1,895,1,895,1,895,1,895,1,895,1,895,1,895,1,895,1,896,1,896,1,896,1,896,1,896,1,896,1,896,1,896,1,896,1,896,1,896,1,896,1,896,1,897,1,897,1,897,1,897,1,897,1,897,1,897,1,897,1,897,1,897,1,897,1,897,1,897,1,898,1,898,1,898,1,898,1,898,1,898,1,898,1,898,1,898,1,898,1,898,1,898,1,899,1,899,1,899,1,899,1,899,1,899,1,899,1,899,1,899,1,899,1,899,1,900,1,900,1,900,1,900,1,900,1,900,1,900,1,900,1,900,1,901,1,901,1,901,1,901,1,901,1,901,1,901,1,901,1,902,1,902,1,902,1,902,1,902,1,902,1,902,1,902,1,902,1,903,1,903,1,903,1,903,1,903,1,903,1,903,1,903,1,903,1,903,1,903,1,903,1,904,1,904,1,904,1,904,1,904,1,904,1,904,1,904,1,904,1,904,1,904,1,904,1,904,1,904,1,905,1,905,1,905,1,905,1,906,1,906,1,906,1,906,1,906,1,906,1,906,1,907,1,907,1,907,1,907,1,907,1,907,1,907,1,907,1,907,1,907,1,907,1,908,1,908,1,908,1,908,1,908,1,908,1,908,1,908,1,908,1,908,1,908,1,909,1,909,1,909,1,909,1,909,1,909,1,909,1,909,1,909,1,909,1,910,1,910,1,910,1,910,1,910,1,910,1,910,1,910,1,910,1,910,1,911,1,911,1,911,1,911,1,911,1,911,1,912,1,912,1,912,1,912,1,912,1,912,1,912,1,912,1,912,1,912,1,912,1,912,1,912,1,912,1,913,1,913,1,913,1,913,1,913,1,913,1,913,1,913,1,913,1,913,1,913,1,914,1,914,1,914,1,914,1,914,1,914,1,914,1,914,1,914,1,915,1,915,1,915,1,915,1,915,1,915,1,915,1,915,1,916,1,916,1,916,1,916,1,916,1,916,1,916,1,917,1,917,1,917,1,917,1,917,1,917,1,917,1,917,1,917,1,918,1,918,1,918,1,918,1,918,1,918,1,918,1,918,1,918,1,918,1,918,1,918,1,918,1,919,1,919,1,919,1,919,1,919,1,919,1,919,1,919,1,920,1,920,1,920,1,920,1,920,1,920,1,920,1,920,1,920,1,920,1,920,1,920,1,920,1,920,1,920,1,921,1,921,1,921,1,921,1,921,1,921,1,921,1,921,1,921,1,921,1,921,1,921,1,921,1,921,1,921,1,922,1,922,1,922,1,922,1,922,1,922,1,922,1,922,1,923,1,923,1,923,1,923,1,923,1,923,1,923,1,923,1,923,1,923,1,923,1,923,1,923,1,924,1,924,1,924,1,924,1,924,1,924,1,924,1,924,1,924,1,924,1,924,1,924,1,924,1,924,1,924,1,925,1,925,1,925,1,925,1,925,1,925,1,926,1,926,1,926,1,926,1,926,1,926,1,927,1,927,1,927,1,927,1,927,1,927,1,927,1,928,1,928,1,928,1,928,1,928,1,928,1,928,1,928,1,928,1,928,1,928,1,928,1,928,1,929,1,929,1,929,1,929,1,929,1,929,1,929,1,929,1,929,1,929,1,929,1,929,1,930,1,930,1,930,1,930,1,930,1,930,1,930,1,930,1,930,1,930,1,930,1,930,1,930,1,930,1,930,1,930,1,930,1,930,1,930,1,931,1,931,1,931,1,931,1,931,1,931,1,931,1,931,1,931,1,931,1,931,1,931,1,931,1,931,1,931,1,931,1,931,1,931,1,932,1,932,1,932,1,933,1,933,1,933,1,933,1,933,1,933,1,933,1,933,1,933,1,933,1,934,1,934,1,934,1,934,1,934,1,934,1,934,1,935,1,935,1,935,1,935,1,936,1,936,1,936,1,936,1,936,1,936,1,937,1,937,1,937,1,937,1,937,1,938,1,938,1,938,1,938,1,938,1,938,1,939,1,939,1,939,1,939,1,939,1,940,1,940,1,940,1,940,1,940,1,940,1,941,1,941,1,941,1,941,1,941,1,941,1,941,1,941,1,941,1,942,1,942,1,942,1,942,1,942,1,942,1,942,1,942,1,942,1,943,1,943,1,943,1,943,1,943,1,943,1,943,1,943,1,943,1,944,1,944,1,944,1,944,1,944,1,944,1,944,1,944,1,944,1,944,1,944,1,944,1,944,1,944,1,944,1,944,1,945,1,945,1,945,1,945,1,945,1,945,1,945,1,945,1,945,1,945,1,945,1,945,1,946,1,946,1,946,1,946,1,946,1,946,1,946,1,946,1,946,1,946,1,946,1,946,1,947,1,947,1,947,1,947,1,947,1,947,1,947,1,947,1,947,1,948,1,948,1,948,1,948,1,948,1,948,1,948,1,948,1,948,1,948,1,948,1,948,1,948,1,948,1,949,1,949,1,949,1,949,1,949,1,949,1,949,1,949,1,949,1,949,1,949,1,949,1,950,1,950,1,950,1,950,1,950,1,950,1,950,1,950,1,950,1,950,1,950,1,951,1,951,1,951,1,951,1,951,1,951,1,951,1,951,1,951,1,951,1,952,1,952,1,952,1,952,1,953,1,953,1,953,1,953,1,953,1,953,1,953,1,953,1,953,1,953,1,953,1,953,1,953,1,953,1,954,1,954,1,954,1,954,1,954,1,954,1,954,1,954,1,954,1,954,1,954,1,954,1,954,1,955,1,955,1,955,1,955,1,955,1,955,1,955,1,955,1,955,1,955,1,956,1,956,1,956,1,956,1,956,1,956,1,956,1,956,1,956,1,956,1,956,1,956,1,956,1,956,1,956,1,957,1,957,1,957,1,957,1,957,1,957,1,957,1,957,1,957,1,957,1,957,1,957,1,957,1,957,1,958,1,958,1,958,1,958,1,958,1,958,1,958,1,958,1,958,1,958,1,958,1,958,1,958,1,958,1,959,1,959,1,959,1,959,1,959,1,959,1,959,1,959,1,959,1,959,1,959,1,959,1,959,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,960,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,961,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1,962,1,963,1,963,1,963,1,963,1,963,1,963,1,963,1,963,1,963,1,963,1,963,1,963,1,963,1,963,1,963,1,963,1,963,1,963,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,964,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,965,1,966,1,966,1,966,1,966,1,966,1,966,1,966,1,966,1,966,1,966,1,966,1,967,1,967,1,967,1,967,1,967,1,967,1,967,1,968,1,968,1,968,1,968,1,968,1,968,1,968,1,968,1,968,1,968,1,968,1,968,1,968,1,968,1,969,1,969,1,969,1,969,1,969,1,969,1,969,1,969,1,969,1,969,1,969,1,969,1,969,1,969,1,969,1,969,1,969,1,970,1,970,1,970,1,970,1,970,1,970,1,970,1,970,1,970,1,970,1,971,1,971,1,971,1,971,1,972,1,972,1,972,1,972,1,972,1,972,1,972,1,972,1,972,1,972,1,972,1,972,1,972,1,973,1,973,1,973,1,973,1,974,1,974,1,974,1,974,1,974,1,974,1,974,1,974,1,974,1,975,1,975,1,975,1,975,1,975,1,975,1,975,1,975,1,975,1,975,1,975,1,976,1,976,1,976,1,976,1,976,1,976,1,976,1,976,1,976,1,976,1,976,1,976,1,977,1,977,1,977,1,978,1,978,1,978,1,978,1,978,1,978,1,978,1,978,1,978,1,978,1,978,1,978,1,978,1,978,1,979,1,979,1,979,1,979,1,979,1,979,1,979,1,979,1,979,1,979,1,979,1,979,1,979,1,980,1,980,1,980,1,980,1,980,1,980,1,980,1,981,1,981,1,981,1,981,1,981,1,981,1,981,1,981,1,981,1,981,1,981,1,981,1,981,1,982,1,982,1,982,1,982,1,982,1,982,1,982,1,982,1,982,1,982,1,982,1,982,1,983,1,983,1,983,1,983,1,983,1,983,1,983,1,983,1,983,1,983,1,983,1,983,1,983,1,983,1,983,1,983,1,984,1,984,1,984,1,984,1,984,1,984,1,984,1,984,1,984,1,984,1,984,1,984,1,984,1,984,1,984,1,985,1,985,1,985,1,985,1,986,1,986,1,986,1,986,1,986,1,986,1,987,1,987,1,987,1,987,1,987,1,987,1,988,1,988,1,988,1,988,1,988,1,988,1,988,1,988,1,989,1,989,1,989,1,989,1,989,1,990,1,990,1,990,1,990,1,990,1,990,1,990,1,991,1,991,1,991,1,991,1,991,1,991,1,991,1,991,1,991,1,991,1,991,1,991,1,991,1,992,1,992,1,992,1,992,1,992,1,992,1,992,1,992,1,992,1,992,1,992,1,992,1,992,1,993,1,993,1,993,1,993,1,993,1,993,1,993,1,993,1,994,1,994,1,994,1,994,1,994,1,994,1,995,1,995,1,995,1,995,1,995,1,995,1,995,1,995,1,995,1,995,1,996,1,996,1,996,1,996,1,996,1,997,1,997,1,997,1,997,1,997,1,997,1,998,1,998,1,998,1,998,1,998,1,998,1,998,1,998,1,998,1,998,1,998,1,998,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,999,1,1e3,1,1e3,1,1e3,1,1e3,1,1e3,1,1e3,1,1e3,1,1e3,1,1e3,1,1e3,1,1e3,1,1e3,1,1e3,1,1001,1,1001,1,1001,1,1001,1,1002,1,1002,1,1002,1,1002,1,1002,1,1003,1,1003,1,1003,1,1003,1,1003,1,1004,1,1004,1,1004,1,1004,1,1004,1,1004,1,1004,1,1004,1,1004,1,1004,1,1004,1,1004,1,1005,1,1005,1,1005,1,1005,1,1005,1,1006,1,1006,1,1006,1,1006,1,1007,1,1007,1,1007,1,1007,1,1007,1,1007,1,1008,1,1008,1,1008,1,1008,1,1008,1,1008,1,1008,1,1008,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1009,1,1010,1,1010,1,1010,1,1010,1,1010,1,1011,1,1011,1,1011,1,1011,1,1011,1,1012,1,1012,1,1012,1,1012,1,1012,1,1012,1,1012,1,1012,1,1012,1,1012,1,1012,1,1013,1,1013,1,1013,1,1013,1,1013,1,1013,1,1013,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1014,1,1015,1,1015,1,1015,1,1015,1,1015,1,1015,1,1015,1,1015,1,1016,1,1016,1,1016,1,1016,1,1016,1,1016,1,1016,1,1016,1,1016,1,1016,1,1016,1,1016,1,1017,1,1017,1,1017,1,1017,1,1017,1,1017,1,1017,1,1017,1,1017,1,1017,1,1018,1,1018,1,1018,1,1018,1,1018,1,1018,1,1018,1,1018,1,1018,1,1019,1,1019,1,1019,1,1019,1,1019,1,1019,1,1019,1,1019,1,1019,1,1020,1,1020,1,1020,1,1020,1,1020,1,1020,1,1020,1,1020,1,1020,1,1020,1,1021,1,1021,1,1021,1,1021,1,1021,1,1021,1,1021,1,1021,1,1021,1,1021,1,1021,1,1021,1,1022,1,1022,1,1022,1,1022,1,1022,1,1022,1,1022,1,1022,1,1022,1,1022,1,1022,1,1022,1,1023,1,1023,1,1023,1,1023,1,1023,1,1023,1,1023,1,1023,1,1023,1,1023,1,1023,1,1024,1,1024,1,1024,1,1024,1,1024,1,1024,1,1024,1,1024,1,1024,1,1024,1,1024,1,1024,1,1024,1,1024,1,1025,1,1025,1,1025,1,1025,1,1025,1,1025,1,1025,1,1025,1,1025,1,1025,1,1025,1,1025,1,1025,1,1026,1,1026,1,1026,1,1026,1,1026,1,1026,1,1026,1,1026,1,1026,1,1026,1,1026,1,1026,1,1027,1,1027,1,1027,1,1027,1,1027,1,1027,1,1027,1,1027,1,1027,1,1027,1,1027,1,1027,1,1028,1,1028,1,1028,1,1028,1,1028,1,1028,1,1028,1,1028,1,1028,1,1028,1,1028,1,1028,1,1029,1,1029,1,1029,1,1029,1,1029,1,1029,1,1029,1,1029,1,1029,1,1029,1,1029,1,1029,1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,1,1030,1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1,1031,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1032,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1033,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1034,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1035,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1036,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1037,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1038,1,1039,1,1039,1,1039,1,1039,1,1039,1,1039,1,1039,1,1039,1,1039,1,1039,1,1039,1,1039,1,1039,1,1040,1,1040,1,1040,1,1040,1,1040,1,1040,1,1040,1,1040,1,1040,1,1040,1,1040,1,1040,1,1040,1,1040,1,1040,1,1040,1,1041,1,1041,1,1041,1,1041,1,1041,1,1041,1,1041,1,1041,1,1041,1,1041,1,1041,1,1041,1,1041,1,1041,1,1041,1,1041,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1042,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1043,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1044,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1045,1,1046,1,1046,1,1046,1,1046,1,1046,1,1046,1,1046,1,1046,1,1046,1,1046,1,1046,1,1046,1,1047,1,1047,1,1047,1,1047,1,1047,1,1047,1,1047,1,1047,1,1047,1,1047,1,1047,1,1048,1,1048,1,1048,1,1048,1,1048,1,1048,1,1048,1,1048,1,1048,1,1048,1,1048,1,1048,1,1049,1,1049,1,1049,1,1049,1,1049,1,1049,1,1049,1,1049,1,1049,1,1049,1,1049,1,1049,1,1049,1,1049,1,1049,1,1049,1,1050,1,1050,1,1050,1,1050,1,1050,1,1050,1,1050,1,1050,1,1050,1,1050,1,1050,1,1050,1,1050,1,1050,1,1050,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1051,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1052,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1053,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1054,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1055,1,1056,1,1056,1,1056,1,1056,1,1056,1,1056,1,1056,1,1056,1,1056,1,1056,1,1056,1,1056,1,1056,1,1057,1,1057,1,1057,1,1057,1,1057,1,1057,1,1057,1,1057,1,1057,1,1057,1,1057,1,1057,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1058,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1059,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1060,1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1,1061,1,1062,1,1062,1,1062,1,1062,1,1062,1,1062,1,1062,1,1062,1,1062,1,1062,1,1062,1,1062,1,1062,1,1062,1,1062,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1063,1,1064,1,1064,1,1064,1,1064,1,1064,1,1064,1,1064,1,1064,1,1064,1,1064,1,1064,1,1064,1,1064,1,1064,1,1064,1,1064,1,1064,1,1064,1,1065,1,1065,1,1065,1,1065,1,1065,1,1065,1,1065,1,1065,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1066,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1067,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1068,1,1069,1,1069,1,1069,1,1069,1,1069,1,1069,1,1069,1,1069,1,1069,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1070,1,1071,1,1071,1,1071,1,1071,1,1071,1,1072,1,1072,1,1072,1,1072,1,1072,1,1073,1,1073,1,1073,1,1073,1,1073,1,1073,1,1073,1,1073,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1074,1,1075,1,1075,1,1075,1,1075,1,1075,1,1075,1,1075,1,1075,1,1076,1,1076,1,1076,1,1076,1,1076,1,1076,1,1076,1,1076,1,1076,1,1076,1,1076,1,1076,1,1077,1,1077,1,1077,1,1077,1,1078,1,1078,1,1078,1,1078,1,1078,1,1078,1,1078,1,1078,1,1078,1,1079,1,1079,1,1079,1,1079,1,1079,1,1079,1,1079,1,1079,1,1079,1,1079,1,1079,1,1079,1,1079,1,1080,1,1080,1,1080,1,1080,1,1080,1,1080,1,1080,1,1080,1,1080,1,1080,1,1080,1,1080,1,1080,1,1080,1,1081,1,1081,1,1081,1,1081,1,1081,1,1081,1,1081,1,1081,1,1081,1,1081,1,1081,1,1081,1,1082,1,1082,1,1082,1,1082,1,1082,1,1082,1,1082,1,1082,1,1082,1,1082,1,1082,1,1082,1,1083,1,1083,1,1083,1,1083,1,1083,1,1083,1,1083,1,1083,1,1084,1,1084,1,1084,1,1084,1,1084,1,1084,1,1084,1,1084,1,1084,1,1084,1,1085,1,1085,1,1085,1,1085,1,1085,1,1085,1,1085,1,1085,1,1086,1,1086,1,1086,1,1086,1,1086,1,1086,1,1086,1,1086,1,1086,1,1086,1,1086,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1087,1,1088,1,1088,1,1088,1,1088,1,1088,1,1088,1,1089,1,1089,1,1089,1,1089,1,1089,1,1089,1,1089,1,1089,1,1089,1,1089,1,1089,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1090,1,1091,1,1091,1,1091,1,1091,1,1091,1,1091,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1092,1,1093,1,1093,1,1093,1,1093,1,1093,1,1093,1,1093,1,1093,1,1093,1,1093,1,1094,1,1094,1,1094,1,1094,1,1094,1,1094,1,1095,1,1095,1,1095,1,1095,1,1095,1,1096,1,1096,1,1096,1,1096,1,1096,1,1096,1,1096,1,1096,1,1096,1,1096,1,1096,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1097,1,1098,1,1098,1,1098,1,1098,1,1098,1,1098,1,1098,1,1098,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1099,1,1100,1,1100,1,1100,1,1100,1,1100,1,1100,1,1100,1,1100,1,1101,1,1101,1,1101,1,1101,1,1101,1,1101,1,1101,1,1101,1,1101,1,1101,1,1101,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1102,1,1103,1,1103,1,1103,1,1103,1,1103,1,1103,1,1103,1,1104,1,1104,1,1104,1,1104,1,1104,1,1104,1,1104,1,1104,1,1104,1,1105,1,1105,1,1106,1,1106,1,1107,1,1107,1,1107,1,1108,1,1108,1,1108,1,1109,1,1109,1,1109,1,1110,1,1110,1,1110,1,1111,1,1111,1,1111,1,1112,1,1112,1,1112,1,1113,1,1113,1,1113,1,1114,1,1114,1,1114,1,1115,1,1115,1,1115,1,1116,1,1116,1,1117,1,1117,1,1118,1,1118,1,1119,1,1119,1,1120,1,1120,1,1121,1,1121,1,1121,1,1121,1,1122,1,1122,1,1122,1,1122,1,1123,1,1123,1,1124,1,1124,1,1125,1,1125,1,1126,1,1126,1,1127,1,1127,1,1128,1,1128,1,1129,1,1129,1,1130,1,1130,1,1131,1,1131,1,1132,1,1132,1,1133,1,1133,1,1134,1,1134,1,1135,1,1135,1,1136,1,1136,1,1137,1,1137,1,1138,1,1138,1,1139,1,1139,1,1140,1,1140,1,1141,1,1141,1,1142,1,1142,1,1143,1,1143,1,1144,1,1144,1,1144,3,1144,13422,8,1144,1,1145,1,1145,1,1145,1,1145,1,1146,4,1146,13429,8,1146,11,1146,12,1146,13430,1,1146,1,1146,1,1147,1,1147,1,1147,1,1148,1,1148,1,1148,3,1148,13441,8,1148,1,1149,4,1149,13444,8,1149,11,1149,12,1149,13445,1,1150,1,1150,1,1150,1,1150,1,1150,4,1150,13453,8,1150,11,1150,12,1150,13454,1,1150,1,1150,1,1150,1,1150,1,1150,1,1150,4,1150,13463,8,1150,11,1150,12,1150,13464,3,1150,13467,8,1150,1,1151,5,1151,13470,8,1151,10,1151,12,1151,13473,9,1151,1,1151,1,1151,4,1151,13477,8,1151,11,1151,12,1151,13478,1,1151,4,1151,13482,8,1151,11,1151,12,1151,13483,1,1151,1,1151,1,1151,1,1151,5,1151,13490,8,1151,10,1151,12,1151,13493,9,1151,1,1151,1,1151,4,1151,13497,8,1151,11,1151,12,1151,13498,1,1151,1,1151,1,1151,4,1151,13504,8,1151,11,1151,12,1151,13505,1,1151,1,1151,3,1151,13510,8,1151,1,1152,1,1152,1,1152,1,1153,1,1153,1,1154,1,1154,1,1154,1,1155,1,1155,1,1155,1,1156,1,1156,1,1157,1,1157,1,1158,1,1158,1,1158,1,1159,1,1159,1,1159,4,1159,13533,8,1159,11,1159,12,1159,13534,3,1159,13537,8,1159,1,1160,1,1160,1,1160,4,1160,13542,8,1160,11,1160,12,1160,13543,1,1160,3,1160,13547,8,1160,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,1,1161,3,1161,13590,8,1161,1,1162,1,1162,3,1162,13594,8,1162,1,1162,4,1162,13597,8,1162,11,1162,12,1162,13598,1,1163,5,1163,13602,8,1163,10,1163,12,1163,13605,9,1163,1,1163,4,1163,13608,8,1163,11,1163,12,1163,13609,1,1163,5,1163,13613,8,1163,10,1163,12,1163,13616,9,1163,1,1164,1,1164,1,1164,1,1164,1,1164,1,1164,5,1164,13624,8,1164,10,1164,12,1164,13627,9,1164,1,1164,1,1164,1,1165,1,1165,1,1165,1,1165,1,1165,1,1165,5,1165,13637,8,1165,10,1165,12,1165,13640,9,1165,1,1165,1,1165,1,1166,1,1166,1,1166,1,1166,5,1166,13648,8,1166,10,1166,12,1166,13651,9,1166,1,1166,1,1166,1,1167,1,1167,1,1168,1,1168,1,1169,1,1169,1,1169,4,1169,13662,8,1169,11,1169,12,1169,13663,1,1169,1,1169,1,1170,4,1170,13669,8,1170,11,1170,12,1170,13670,1,1170,1,1170,4,1170,13675,8,1170,11,1170,12,1170,13676,1,1170,5,1170,13680,8,1170,10,1170,12,1170,13683,9,1170,1,1170,1,1170,5,1170,13687,8,1170,10,1170,12,1170,13690,9,1170,1,1170,1,1170,4,1170,13694,8,1170,11,1170,12,1170,13695,3,1170,13698,8,1170,1,1171,1,1171,1,1171,1,1171,4,2359,2372,13603,13609,0,1172,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,59,30,61,31,63,32,65,33,67,34,69,35,71,36,73,37,75,38,77,39,79,40,81,41,83,42,85,43,87,44,89,45,91,46,93,47,95,48,97,49,99,50,101,51,103,52,105,53,107,54,109,55,111,56,113,57,115,58,117,59,119,60,121,61,123,62,125,63,127,64,129,65,131,66,133,67,135,68,137,69,139,70,141,71,143,72,145,73,147,74,149,75,151,76,153,77,155,78,157,79,159,80,161,81,163,82,165,83,167,84,169,85,171,86,173,87,175,88,177,89,179,90,181,91,183,92,185,93,187,94,189,95,191,96,193,97,195,98,197,99,199,100,201,101,203,102,205,103,207,104,209,105,211,106,213,107,215,108,217,109,219,110,221,111,223,112,225,113,227,114,229,115,231,116,233,117,235,118,237,119,239,120,241,121,243,122,245,123,247,124,249,125,251,126,253,127,255,128,257,129,259,130,261,131,263,132,265,133,267,134,269,135,271,136,273,137,275,138,277,139,279,140,281,141,283,142,285,143,287,144,289,145,291,146,293,147,295,148,297,149,299,150,301,151,303,152,305,153,307,154,309,155,311,156,313,157,315,158,317,159,319,160,321,161,323,162,325,163,327,164,329,165,331,166,333,167,335,168,337,169,339,170,341,171,343,172,345,173,347,174,349,175,351,176,353,177,355,178,357,179,359,180,361,181,363,182,365,183,367,184,369,185,371,186,373,187,375,188,377,189,379,190,381,191,383,192,385,193,387,194,389,195,391,196,393,197,395,198,397,199,399,200,401,201,403,202,405,203,407,204,409,205,411,206,413,207,415,208,417,209,419,210,421,211,423,212,425,213,427,214,429,215,431,216,433,217,435,218,437,219,439,220,441,221,443,222,445,223,447,224,449,225,451,226,453,227,455,228,457,229,459,230,461,231,463,232,465,233,467,234,469,235,471,236,473,237,475,238,477,239,479,240,481,241,483,242,485,243,487,244,489,245,491,246,493,247,495,248,497,249,499,250,501,251,503,252,505,253,507,254,509,255,511,256,513,257,515,258,517,259,519,260,521,261,523,262,525,263,527,264,529,265,531,266,533,267,535,268,537,269,539,270,541,271,543,272,545,273,547,274,549,275,551,276,553,277,555,278,557,279,559,280,561,281,563,282,565,283,567,284,569,285,571,286,573,287,575,288,577,289,579,290,581,291,583,292,585,293,587,294,589,295,591,296,593,297,595,298,597,299,599,300,601,301,603,302,605,303,607,304,609,305,611,306,613,307,615,308,617,309,619,310,621,311,623,312,625,313,627,314,629,315,631,316,633,317,635,318,637,319,639,320,641,321,643,322,645,323,647,324,649,325,651,326,653,327,655,328,657,329,659,330,661,331,663,332,665,333,667,334,669,335,671,336,673,337,675,338,677,339,679,340,681,341,683,342,685,343,687,344,689,345,691,346,693,347,695,348,697,349,699,350,701,351,703,352,705,353,707,354,709,355,711,356,713,357,715,358,717,359,719,360,721,361,723,362,725,363,727,364,729,365,731,366,733,367,735,368,737,369,739,370,741,371,743,372,745,373,747,374,749,375,751,376,753,377,755,378,757,379,759,380,761,381,763,382,765,383,767,384,769,385,771,386,773,387,775,388,777,389,779,390,781,391,783,392,785,393,787,394,789,395,791,396,793,397,795,398,797,399,799,400,801,401,803,402,805,403,807,404,809,405,811,406,813,407,815,408,817,409,819,410,821,411,823,412,825,413,827,414,829,415,831,416,833,417,835,418,837,419,839,420,841,421,843,422,845,423,847,424,849,425,851,426,853,427,855,428,857,429,859,430,861,431,863,432,865,433,867,434,869,435,871,436,873,437,875,438,877,439,879,440,881,441,883,442,885,443,887,444,889,445,891,446,893,447,895,448,897,449,899,450,901,451,903,452,905,453,907,454,909,455,911,456,913,457,915,458,917,459,919,460,921,461,923,462,925,463,927,464,929,465,931,466,933,467,935,468,937,469,939,470,941,471,943,472,945,473,947,474,949,475,951,476,953,477,955,478,957,479,959,480,961,481,963,482,965,483,967,484,969,485,971,486,973,487,975,488,977,489,979,490,981,491,983,492,985,493,987,494,989,495,991,496,993,497,995,498,997,499,999,500,1001,501,1003,502,1005,503,1007,504,1009,505,1011,506,1013,507,1015,508,1017,509,1019,510,1021,511,1023,512,1025,513,1027,514,1029,515,1031,516,1033,517,1035,518,1037,519,1039,520,1041,521,1043,522,1045,523,1047,524,1049,525,1051,526,1053,527,1055,528,1057,529,1059,530,1061,531,1063,532,1065,533,1067,534,1069,535,1071,536,1073,537,1075,538,1077,539,1079,540,1081,541,1083,542,1085,543,1087,544,1089,545,1091,546,1093,547,1095,548,1097,549,1099,550,1101,551,1103,552,1105,553,1107,554,1109,555,1111,556,1113,557,1115,558,1117,559,1119,560,1121,561,1123,562,1125,563,1127,564,1129,565,1131,566,1133,567,1135,568,1137,569,1139,570,1141,571,1143,572,1145,573,1147,574,1149,575,1151,576,1153,577,1155,578,1157,579,1159,580,1161,581,1163,582,1165,583,1167,584,1169,585,1171,586,1173,587,1175,588,1177,589,1179,590,1181,591,1183,592,1185,593,1187,594,1189,595,1191,596,1193,597,1195,598,1197,599,1199,600,1201,601,1203,602,1205,603,1207,604,1209,605,1211,606,1213,607,1215,608,1217,609,1219,610,1221,611,1223,612,1225,613,1227,614,1229,615,1231,616,1233,617,1235,618,1237,619,1239,620,1241,621,1243,622,1245,623,1247,624,1249,625,1251,626,1253,627,1255,628,1257,629,1259,630,1261,631,1263,632,1265,633,1267,634,1269,635,1271,636,1273,637,1275,638,1277,639,1279,640,1281,641,1283,642,1285,643,1287,644,1289,645,1291,646,1293,647,1295,648,1297,649,1299,650,1301,651,1303,652,1305,653,1307,654,1309,655,1311,656,1313,657,1315,658,1317,659,1319,660,1321,661,1323,662,1325,663,1327,664,1329,665,1331,666,1333,667,1335,668,1337,669,1339,670,1341,671,1343,672,1345,673,1347,674,1349,675,1351,676,1353,677,1355,678,1357,679,1359,680,1361,681,1363,682,1365,683,1367,684,1369,685,1371,686,1373,687,1375,688,1377,689,1379,690,1381,691,1383,692,1385,693,1387,694,1389,695,1391,696,1393,697,1395,698,1397,699,1399,700,1401,701,1403,702,1405,703,1407,704,1409,705,1411,706,1413,707,1415,708,1417,709,1419,710,1421,711,1423,712,1425,713,1427,714,1429,715,1431,716,1433,717,1435,718,1437,719,1439,720,1441,721,1443,722,1445,723,1447,724,1449,725,1451,726,1453,727,1455,728,1457,729,1459,730,1461,731,1463,732,1465,733,1467,734,1469,735,1471,736,1473,737,1475,738,1477,739,1479,740,1481,741,1483,742,1485,743,1487,744,1489,745,1491,746,1493,747,1495,748,1497,749,1499,750,1501,751,1503,752,1505,753,1507,754,1509,755,1511,756,1513,757,1515,758,1517,759,1519,760,1521,761,1523,762,1525,763,1527,764,1529,765,1531,766,1533,767,1535,768,1537,769,1539,770,1541,771,1543,772,1545,773,1547,774,1549,775,1551,776,1553,777,1555,778,1557,779,1559,780,1561,781,1563,782,1565,783,1567,784,1569,785,1571,786,1573,787,1575,788,1577,789,1579,790,1581,791,1583,792,1585,793,1587,794,1589,795,1591,796,1593,797,1595,798,1597,799,1599,800,1601,801,1603,802,1605,803,1607,804,1609,805,1611,806,1613,807,1615,808,1617,809,1619,810,1621,811,1623,812,1625,813,1627,814,1629,815,1631,816,1633,817,1635,818,1637,819,1639,820,1641,821,1643,822,1645,823,1647,824,1649,825,1651,826,1653,827,1655,828,1657,829,1659,830,1661,831,1663,832,1665,833,1667,834,1669,835,1671,836,1673,837,1675,838,1677,839,1679,840,1681,841,1683,842,1685,843,1687,844,1689,845,1691,846,1693,847,1695,848,1697,849,1699,850,1701,851,1703,852,1705,853,1707,854,1709,855,1711,856,1713,857,1715,858,1717,859,1719,860,1721,861,1723,862,1725,863,1727,864,1729,865,1731,866,1733,867,1735,868,1737,869,1739,870,1741,871,1743,872,1745,873,1747,874,1749,875,1751,876,1753,877,1755,878,1757,879,1759,880,1761,881,1763,882,1765,883,1767,884,1769,885,1771,886,1773,887,1775,888,1777,889,1779,890,1781,891,1783,892,1785,893,1787,894,1789,895,1791,896,1793,897,1795,898,1797,899,1799,900,1801,901,1803,902,1805,903,1807,904,1809,905,1811,906,1813,907,1815,908,1817,909,1819,910,1821,911,1823,912,1825,913,1827,914,1829,915,1831,916,1833,917,1835,918,1837,919,1839,920,1841,921,1843,922,1845,923,1847,924,1849,925,1851,926,1853,927,1855,928,1857,929,1859,930,1861,931,1863,932,1865,933,1867,934,1869,935,1871,936,1873,937,1875,938,1877,939,1879,940,1881,941,1883,942,1885,943,1887,944,1889,945,1891,946,1893,947,1895,948,1897,949,1899,950,1901,951,1903,952,1905,953,1907,954,1909,955,1911,956,1913,957,1915,958,1917,959,1919,960,1921,961,1923,962,1925,963,1927,964,1929,965,1931,966,1933,967,1935,968,1937,969,1939,970,1941,971,1943,972,1945,973,1947,974,1949,975,1951,976,1953,977,1955,978,1957,979,1959,980,1961,981,1963,982,1965,983,1967,984,1969,985,1971,986,1973,987,1975,988,1977,989,1979,990,1981,991,1983,992,1985,993,1987,994,1989,995,1991,996,1993,997,1995,998,1997,999,1999,1e3,2001,1001,2003,1002,2005,1003,2007,1004,2009,1005,2011,1006,2013,1007,2015,1008,2017,1009,2019,1010,2021,1011,2023,1012,2025,1013,2027,1014,2029,1015,2031,1016,2033,1017,2035,1018,2037,1019,2039,1020,2041,1021,2043,1022,2045,1023,2047,1024,2049,1025,2051,1026,2053,1027,2055,1028,2057,1029,2059,1030,2061,1031,2063,1032,2065,1033,2067,1034,2069,1035,2071,1036,2073,1037,2075,1038,2077,1039,2079,1040,2081,1041,2083,1042,2085,1043,2087,1044,2089,1045,2091,1046,2093,1047,2095,1048,2097,1049,2099,1050,2101,1051,2103,1052,2105,1053,2107,1054,2109,1055,2111,1056,2113,1057,2115,1058,2117,1059,2119,1060,2121,1061,2123,1062,2125,1063,2127,1064,2129,1065,2131,1066,2133,1067,2135,1068,2137,1069,2139,1070,2141,1071,2143,1072,2145,1073,2147,1074,2149,1075,2151,1076,2153,1077,2155,1078,2157,1079,2159,1080,2161,1081,2163,1082,2165,1083,2167,1084,2169,1085,2171,1086,2173,1087,2175,1088,2177,1089,2179,1090,2181,1091,2183,1092,2185,1093,2187,1094,2189,1095,2191,1096,2193,1097,2195,1098,2197,1099,2199,1100,2201,1101,2203,1102,2205,1103,2207,1104,2209,1105,2211,1106,2213,1107,2215,1108,2217,1109,2219,1110,2221,1111,2223,1112,2225,1113,2227,1114,2229,1115,2231,1116,2233,1117,2235,1118,2237,1119,2239,1120,2241,1121,2243,1122,2245,1123,2247,1124,2249,1125,2251,1126,2253,1127,2255,1128,2257,1129,2259,1130,2261,1131,2263,1132,2265,1133,2267,1134,2269,1135,2271,1136,2273,1137,2275,1138,2277,1139,2279,1140,2281,1141,2283,1142,2285,1143,2287,1144,2289,0,2291,1145,2293,1146,2295,1147,2297,1148,2299,1149,2301,1150,2303,1151,2305,1152,2307,1153,2309,1154,2311,1155,2313,1156,2315,1157,2317,1158,2319,1159,2321,1160,2323,0,2325,0,2327,0,2329,0,2331,0,2333,0,2335,0,2337,0,2339,0,2341,0,2343,1161,1,0,42,3,0,9,10,13,13,32,32,2,0,9,9,32,32,2,0,10,10,13,13,2,0,65,65,97,97,2,0,68,68,100,100,2,0,76,76,108,108,2,0,84,84,116,116,2,0,69,69,101,101,2,0,82,82,114,114,2,0,87,87,119,119,2,0,89,89,121,121,2,0,83,83,115,115,2,0,78,78,110,110,2,0,90,90,122,122,2,0,67,67,99,99,2,0,73,73,105,105,2,0,66,66,98,98,2,0,85,85,117,117,2,0,70,70,102,102,2,0,79,79,111,111,2,0,72,72,104,104,2,0,75,75,107,107,2,0,71,71,103,103,2,0,77,77,109,109,2,0,86,86,118,118,2,0,80,80,112,112,2,0,88,88,120,120,2,0,74,74,106,106,2,0,81,81,113,113,8,0,71,71,75,75,77,77,84,84,103,103,107,107,109,109,116,116,7,0,36,36,46,46,48,57,65,90,95,95,97,122,128,65535,2,0,43,43,45,45,6,0,36,36,48,57,65,90,95,95,97,122,128,65535,5,0,36,36,65,90,95,95,97,122,128,65535,2,0,34,34,92,92,2,0,39,39,92,92,1,0,96,96,3,0,48,57,65,70,97,102,1,0,48,57,1,0,48,49,2,0,46,46,48,57,3,0,48,58,65,70,97,102,13786,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0,0,199,1,0,0,0,0,201,1,0,0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207,1,0,0,0,0,209,1,0,0,0,0,211,1,0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,0,217,1,0,0,0,0,219,1,0,0,0,0,221,1,0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,0,227,1,0,0,0,0,229,1,0,0,0,0,231,1,0,0,0,0,233,1,0,0,0,0,235,1,0,0,0,0,237,1,0,0,0,0,239,1,0,0,0,0,241,1,0,0,0,0,243,1,0,0,0,0,245,1,0,0,0,0,247,1,0,0,0,0,249,1,0,0,0,0,251,1,0,0,0,0,253,1,0,0,0,0,255,1,0,0,0,0,257,1,0,0,0,0,259,1,0,0,0,0,261,1,0,0,0,0,263,1,0,0,0,0,265,1,0,0,0,0,267,1,0,0,0,0,269,1,0,0,0,0,271,1,0,0,0,0,273,1,0,0,0,0,275,1,0,0,0,0,277,1,0,0,0,0,279,1,0,0,0,0,281,1,0,0,0,0,283,1,0,0,0,0,285,1,0,0,0,0,287,1,0,0,0,0,289,1,0,0,0,0,291,1,0,0,0,0,293,1,0,0,0,0,295,1,0,0,0,0,297,1,0,0,0,0,299,1,0,0,0,0,301,1,0,0,0,0,303,1,0,0,0,0,305,1,0,0,0,0,307,1,0,0,0,0,309,1,0,0,0,0,311,1,0,0,0,0,313,1,0,0,0,0,315,1,0,0,0,0,317,1,0,0,0,0,319,1,0,0,0,0,321,1,0,0,0,0,323,1,0,0,0,0,325,1,0,0,0,0,327,1,0,0,0,0,329,1,0,0,0,0,331,1,0,0,0,0,333,1,0,0,0,0,335,1,0,0,0,0,337,1,0,0,0,0,339,1,0,0,0,0,341,1,0,0,0,0,343,1,0,0,0,0,345,1,0,0,0,0,347,1,0,0,0,0,349,1,0,0,0,0,351,1,0,0,0,0,353,1,0,0,0,0,355,1,0,0,0,0,357,1,0,0,0,0,359,1,0,0,0,0,361,1,0,0,0,0,363,1,0,0,0,0,365,1,0,0,0,0,367,1,0,0,0,0,369,1,0,0,0,0,371,1,0,0,0,0,373,1,0,0,0,0,375,1,0,0,0,0,377,1,0,0,0,0,379,1,0,0,0,0,381,1,0,0,0,0,383,1,0,0,0,0,385,1,0,0,0,0,387,1,0,0,0,0,389,1,0,0,0,0,391,1,0,0,0,0,393,1,0,0,0,0,395,1,0,0,0,0,397,1,0,0,0,0,399,1,0,0,0,0,401,1,0,0,0,0,403,1,0,0,0,0,405,1,0,0,0,0,407,1,0,0,0,0,409,1,0,0,0,0,411,1,0,0,0,0,413,1,0,0,0,0,415,1,0,0,0,0,417,1,0,0,0,0,419,1,0,0,0,0,421,1,0,0,0,0,423,1,0,0,0,0,425,1,0,0,0,0,427,1,0,0,0,0,429,1,0,0,0,0,431,1,0,0,0,0,433,1,0,0,0,0,435,1,0,0,0,0,437,1,0,0,0,0,439,1,0,0,0,0,441,1,0,0,0,0,443,1,0,0,0,0,445,1,0,0,0,0,447,1,0,0,0,0,449,1,0,0,0,0,451,1,0,0,0,0,453,1,0,0,0,0,455,1,0,0,0,0,457,1,0,0,0,0,459,1,0,0,0,0,461,1,0,0,0,0,463,1,0,0,0,0,465,1,0,0,0,0,467,1,0,0,0,0,469,1,0,0,0,0,471,1,0,0,0,0,473,1,0,0,0,0,475,1,0,0,0,0,477,1,0,0,0,0,479,1,0,0,0,0,481,1,0,0,0,0,483,1,0,0,0,0,485,1,0,0,0,0,487,1,0,0,0,0,489,1,0,0,0,0,491,1,0,0,0,0,493,1,0,0,0,0,495,1,0,0,0,0,497,1,0,0,0,0,499,1,0,0,0,0,501,1,0,0,0,0,503,1,0,0,0,0,505,1,0,0,0,0,507,1,0,0,0,0,509,1,0,0,0,0,511,1,0,0,0,0,513,1,0,0,0,0,515,1,0,0,0,0,517,1,0,0,0,0,519,1,0,0,0,0,521,1,0,0,0,0,523,1,0,0,0,0,525,1,0,0,0,0,527,1,0,0,0,0,529,1,0,0,0,0,531,1,0,0,0,0,533,1,0,0,0,0,535,1,0,0,0,0,537,1,0,0,0,0,539,1,0,0,0,0,541,1,0,0,0,0,543,1,0,0,0,0,545,1,0,0,0,0,547,1,0,0,0,0,549,1,0,0,0,0,551,1,0,0,0,0,553,1,0,0,0,0,555,1,0,0,0,0,557,1,0,0,0,0,559,1,0,0,0,0,561,1,0,0,0,0,563,1,0,0,0,0,565,1,0,0,0,0,567,1,0,0,0,0,569,1,0,0,0,0,571,1,0,0,0,0,573,1,0,0,0,0,575,1,0,0,0,0,577,1,0,0,0,0,579,1,0,0,0,0,581,1,0,0,0,0,583,1,0,0,0,0,585,1,0,0,0,0,587,1,0,0,0,0,589,1,0,0,0,0,591,1,0,0,0,0,593,1,0,0,0,0,595,1,0,0,0,0,597,1,0,0,0,0,599,1,0,0,0,0,601,1,0,0,0,0,603,1,0,0,0,0,605,1,0,0,0,0,607,1,0,0,0,0,609,1,0,0,0,0,611,1,0,0,0,0,613,1,0,0,0,0,615,1,0,0,0,0,617,1,0,0,0,0,619,1,0,0,0,0,621,1,0,0,0,0,623,1,0,0,0,0,625,1,0,0,0,0,627,1,0,0,0,0,629,1,0,0,0,0,631,1,0,0,0,0,633,1,0,0,0,0,635,1,0,0,0,0,637,1,0,0,0,0,639,1,0,0,0,0,641,1,0,0,0,0,643,1,0,0,0,0,645,1,0,0,0,0,647,1,0,0,0,0,649,1,0,0,0,0,651,1,0,0,0,0,653,1,0,0,0,0,655,1,0,0,0,0,657,1,0,0,0,0,659,1,0,0,0,0,661,1,0,0,0,0,663,1,0,0,0,0,665,1,0,0,0,0,667,1,0,0,0,0,669,1,0,0,0,0,671,1,0,0,0,0,673,1,0,0,0,0,675,1,0,0,0,0,677,1,0,0,0,0,679,1,0,0,0,0,681,1,0,0,0,0,683,1,0,0,0,0,685,1,0,0,0,0,687,1,0,0,0,0,689,1,0,0,0,0,691,1,0,0,0,0,693,1,0,0,0,0,695,1,0,0,0,0,697,1,0,0,0,0,699,1,0,0,0,0,701,1,0,0,0,0,703,1,0,0,0,0,705,1,0,0,0,0,707,1,0,0,0,0,709,1,0,0,0,0,711,1,0,0,0,0,713,1,0,0,0,0,715,1,0,0,0,0,717,1,0,0,0,0,719,1,0,0,0,0,721,1,0,0,0,0,723,1,0,0,0,0,725,1,0,0,0,0,727,1,0,0,0,0,729,1,0,0,0,0,731,1,0,0,0,0,733,1,0,0,0,0,735,1,0,0,0,0,737,1,0,0,0,0,739,1,0,0,0,0,741,1,0,0,0,0,743,1,0,0,0,0,745,1,0,0,0,0,747,1,0,0,0,0,749,1,0,0,0,0,751,1,0,0,0,0,753,1,0,0,0,0,755,1,0,0,0,0,757,1,0,0,0,0,759,1,0,0,0,0,761,1,0,0,0,0,763,1,0,0,0,0,765,1,0,0,0,0,767,1,0,0,0,0,769,1,0,0,0,0,771,1,0,0,0,0,773,1,0,0,0,0,775,1,0,0,0,0,777,1,0,0,0,0,779,1,0,0,0,0,781,1,0,0,0,0,783,1,0,0,0,0,785,1,0,0,0,0,787,1,0,0,0,0,789,1,0,0,0,0,791,1,0,0,0,0,793,1,0,0,0,0,795,1,0,0,0,0,797,1,0,0,0,0,799,1,0,0,0,0,801,1,0,0,0,0,803,1,0,0,0,0,805,1,0,0,0,0,807,1,0,0,0,0,809,1,0,0,0,0,811,1,0,0,0,0,813,1,0,0,0,0,815,1,0,0,0,0,817,1,0,0,0,0,819,1,0,0,0,0,821,1,0,0,0,0,823,1,0,0,0,0,825,1,0,0,0,0,827,1,0,0,0,0,829,1,0,0,0,0,831,1,0,0,0,0,833,1,0,0,0,0,835,1,0,0,0,0,837,1,0,0,0,0,839,1,0,0,0,0,841,1,0,0,0,0,843,1,0,0,0,0,845,1,0,0,0,0,847,1,0,0,0,0,849,1,0,0,0,0,851,1,0,0,0,0,853,1,0,0,0,0,855,1,0,0,0,0,857,1,0,0,0,0,859,1,0,0,0,0,861,1,0,0,0,0,863,1,0,0,0,0,865,1,0,0,0,0,867,1,0,0,0,0,869,1,0,0,0,0,871,1,0,0,0,0,873,1,0,0,0,0,875,1,0,0,0,0,877,1,0,0,0,0,879,1,0,0,0,0,881,1,0,0,0,0,883,1,0,0,0,0,885,1,0,0,0,0,887,1,0,0,0,0,889,1,0,0,0,0,891,1,0,0,0,0,893,1,0,0,0,0,895,1,0,0,0,0,897,1,0,0,0,0,899,1,0,0,0,0,901,1,0,0,0,0,903,1,0,0,0,0,905,1,0,0,0,0,907,1,0,0,0,0,909,1,0,0,0,0,911,1,0,0,0,0,913,1,0,0,0,0,915,1,0,0,0,0,917,1,0,0,0,0,919,1,0,0,0,0,921,1,0,0,0,0,923,1,0,0,0,0,925,1,0,0,0,0,927,1,0,0,0,0,929,1,0,0,0,0,931,1,0,0,0,0,933,1,0,0,0,0,935,1,0,0,0,0,937,1,0,0,0,0,939,1,0,0,0,0,941,1,0,0,0,0,943,1,0,0,0,0,945,1,0,0,0,0,947,1,0,0,0,0,949,1,0,0,0,0,951,1,0,0,0,0,953,1,0,0,0,0,955,1,0,0,0,0,957,1,0,0,0,0,959,1,0,0,0,0,961,1,0,0,0,0,963,1,0,0,0,0,965,1,0,0,0,0,967,1,0,0,0,0,969,1,0,0,0,0,971,1,0,0,0,0,973,1,0,0,0,0,975,1,0,0,0,0,977,1,0,0,0,0,979,1,0,0,0,0,981,1,0,0,0,0,983,1,0,0,0,0,985,1,0,0,0,0,987,1,0,0,0,0,989,1,0,0,0,0,991,1,0,0,0,0,993,1,0,0,0,0,995,1,0,0,0,0,997,1,0,0,0,0,999,1,0,0,0,0,1001,1,0,0,0,0,1003,1,0,0,0,0,1005,1,0,0,0,0,1007,1,0,0,0,0,1009,1,0,0,0,0,1011,1,0,0,0,0,1013,1,0,0,0,0,1015,1,0,0,0,0,1017,1,0,0,0,0,1019,1,0,0,0,0,1021,1,0,0,0,0,1023,1,0,0,0,0,1025,1,0,0,0,0,1027,1,0,0,0,0,1029,1,0,0,0,0,1031,1,0,0,0,0,1033,1,0,0,0,0,1035,1,0,0,0,0,1037,1,0,0,0,0,1039,1,0,0,0,0,1041,1,0,0,0,0,1043,1,0,0,0,0,1045,1,0,0,0,0,1047,1,0,0,0,0,1049,1,0,0,0,0,1051,1,0,0,0,0,1053,1,0,0,0,0,1055,1,0,0,0,0,1057,1,0,0,0,0,1059,1,0,0,0,0,1061,1,0,0,0,0,1063,1,0,0,0,0,1065,1,0,0,0,0,1067,1,0,0,0,0,1069,1,0,0,0,0,1071,1,0,0,0,0,1073,1,0,0,0,0,1075,1,0,0,0,0,1077,1,0,0,0,0,1079,1,0,0,0,0,1081,1,0,0,0,0,1083,1,0,0,0,0,1085,1,0,0,0,0,1087,1,0,0,0,0,1089,1,0,0,0,0,1091,1,0,0,0,0,1093,1,0,0,0,0,1095,1,0,0,0,0,1097,1,0,0,0,0,1099,1,0,0,0,0,1101,1,0,0,0,0,1103,1,0,0,0,0,1105,1,0,0,0,0,1107,1,0,0,0,0,1109,1,0,0,0,0,1111,1,0,0,0,0,1113,1,0,0,0,0,1115,1,0,0,0,0,1117,1,0,0,0,0,1119,1,0,0,0,0,1121,1,0,0,0,0,1123,1,0,0,0,0,1125,1,0,0,0,0,1127,1,0,0,0,0,1129,1,0,0,0,0,1131,1,0,0,0,0,1133,1,0,0,0,0,1135,1,0,0,0,0,1137,1,0,0,0,0,1139,1,0,0,0,0,1141,1,0,0,0,0,1143,1,0,0,0,0,1145,1,0,0,0,0,1147,1,0,0,0,0,1149,1,0,0,0,0,1151,1,0,0,0,0,1153,1,0,0,0,0,1155,1,0,0,0,0,1157,1,0,0,0,0,1159,1,0,0,0,0,1161,1,0,0,0,0,1163,1,0,0,0,0,1165,1,0,0,0,0,1167,1,0,0,0,0,1169,1,0,0,0,0,1171,1,0,0,0,0,1173,1,0,0,0,0,1175,1,0,0,0,0,1177,1,0,0,0,0,1179,1,0,0,0,0,1181,1,0,0,0,0,1183,1,0,0,0,0,1185,1,0,0,0,0,1187,1,0,0,0,0,1189,1,0,0,0,0,1191,1,0,0,0,0,1193,1,0,0,0,0,1195,1,0,0,0,0,1197,1,0,0,0,0,1199,1,0,0,0,0,1201,1,0,0,0,0,1203,1,0,0,0,0,1205,1,0,0,0,0,1207,1,0,0,0,0,1209,1,0,0,0,0,1211,1,0,0,0,0,1213,1,0,0,0,0,1215,1,0,0,0,0,1217,1,0,0,0,0,1219,1,0,0,0,0,1221,1,0,0,0,0,1223,1,0,0,0,0,1225,1,0,0,0,0,1227,1,0,0,0,0,1229,1,0,0,0,0,1231,1,0,0,0,0,1233,1,0,0,0,0,1235,1,0,0,0,0,1237,1,0,0,0,0,1239,1,0,0,0,0,1241,1,0,0,0,0,1243,1,0,0,0,0,1245,1,0,0,0,0,1247,1,0,0,0,0,1249,1,0,0,0,0,1251,1,0,0,0,0,1253,1,0,0,0,0,1255,1,0,0,0,0,1257,1,0,0,0,0,1259,1,0,0,0,0,1261,1,0,0,0,0,1263,1,0,0,0,0,1265,1,0,0,0,0,1267,1,0,0,0,0,1269,1,0,0,0,0,1271,1,0,0,0,0,1273,1,0,0,0,0,1275,1,0,0,0,0,1277,1,0,0,0,0,1279,1,0,0,0,0,1281,1,0,0,0,0,1283,1,0,0,0,0,1285,1,0,0,0,0,1287,1,0,0,0,0,1289,1,0,0,0,0,1291,1,0,0,0,0,1293,1,0,0,0,0,1295,1,0,0,0,0,1297,1,0,0,0,0,1299,1,0,0,0,0,1301,1,0,0,0,0,1303,1,0,0,0,0,1305,1,0,0,0,0,1307,1,0,0,0,0,1309,1,0,0,0,0,1311,1,0,0,0,0,1313,1,0,0,0,0,1315,1,0,0,0,0,1317,1,0,0,0,0,1319,1,0,0,0,0,1321,1,0,0,0,0,1323,1,0,0,0,0,1325,1,0,0,0,0,1327,1,0,0,0,0,1329,1,0,0,0,0,1331,1,0,0,0,0,1333,1,0,0,0,0,1335,1,0,0,0,0,1337,1,0,0,0,0,1339,1,0,0,0,0,1341,1,0,0,0,0,1343,1,0,0,0,0,1345,1,0,0,0,0,1347,1,0,0,0,0,1349,1,0,0,0,0,1351,1,0,0,0,0,1353,1,0,0,0,0,1355,1,0,0,0,0,1357,1,0,0,0,0,1359,1,0,0,0,0,1361,1,0,0,0,0,1363,1,0,0,0,0,1365,1,0,0,0,0,1367,1,0,0,0,0,1369,1,0,0,0,0,1371,1,0,0,0,0,1373,1,0,0,0,0,1375,1,0,0,0,0,1377,1,0,0,0,0,1379,1,0,0,0,0,1381,1,0,0,0,0,1383,1,0,0,0,0,1385,1,0,0,0,0,1387,1,0,0,0,0,1389,1,0,0,0,0,1391,1,0,0,0,0,1393,1,0,0,0,0,1395,1,0,0,0,0,1397,1,0,0,0,0,1399,1,0,0,0,0,1401,1,0,0,0,0,1403,1,0,0,0,0,1405,1,0,0,0,0,1407,1,0,0,0,0,1409,1,0,0,0,0,1411,1,0,0,0,0,1413,1,0,0,0,0,1415,1,0,0,0,0,1417,1,0,0,0,0,1419,1,0,0,0,0,1421,1,0,0,0,0,1423,1,0,0,0,0,1425,1,0,0,0,0,1427,1,0,0,0,0,1429,1,0,0,0,0,1431,1,0,0,0,0,1433,1,0,0,0,0,1435,1,0,0,0,0,1437,1,0,0,0,0,1439,1,0,0,0,0,1441,1,0,0,0,0,1443,1,0,0,0,0,1445,1,0,0,0,0,1447,1,0,0,0,0,1449,1,0,0,0,0,1451,1,0,0,0,0,1453,1,0,0,0,0,1455,1,0,0,0,0,1457,1,0,0,0,0,1459,1,0,0,0,0,1461,1,0,0,0,0,1463,1,0,0,0,0,1465,1,0,0,0,0,1467,1,0,0,0,0,1469,1,0,0,0,0,1471,1,0,0,0,0,1473,1,0,0,0,0,1475,1,0,0,0,0,1477,1,0,0,0,0,1479,1,0,0,0,0,1481,1,0,0,0,0,1483,1,0,0,0,0,1485,1,0,0,0,0,1487,1,0,0,0,0,1489,1,0,0,0,0,1491,1,0,0,0,0,1493,1,0,0,0,0,1495,1,0,0,0,0,1497,1,0,0,0,0,1499,1,0,0,0,0,1501,1,0,0,0,0,1503,1,0,0,0,0,1505,1,0,0,0,0,1507,1,0,0,0,0,1509,1,0,0,0,0,1511,1,0,0,0,0,1513,1,0,0,0,0,1515,1,0,0,0,0,1517,1,0,0,0,0,1519,1,0,0,0,0,1521,1,0,0,0,0,1523,1,0,0,0,0,1525,1,0,0,0,0,1527,1,0,0,0,0,1529,1,0,0,0,0,1531,1,0,0,0,0,1533,1,0,0,0,0,1535,1,0,0,0,0,1537,1,0,0,0,0,1539,1,0,0,0,0,1541,1,0,0,0,0,1543,1,0,0,0,0,1545,1,0,0,0,0,1547,1,0,0,0,0,1549,1,0,0,0,0,1551,1,0,0,0,0,1553,1,0,0,0,0,1555,1,0,0,0,0,1557,1,0,0,0,0,1559,1,0,0,0,0,1561,1,0,0,0,0,1563,1,0,0,0,0,1565,1,0,0,0,0,1567,1,0,0,0,0,1569,1,0,0,0,0,1571,1,0,0,0,0,1573,1,0,0,0,0,1575,1,0,0,0,0,1577,1,0,0,0,0,1579,1,0,0,0,0,1581,1,0,0,0,0,1583,1,0,0,0,0,1585,1,0,0,0,0,1587,1,0,0,0,0,1589,1,0,0,0,0,1591,1,0,0,0,0,1593,1,0,0,0,0,1595,1,0,0,0,0,1597,1,0,0,0,0,1599,1,0,0,0,0,1601,1,0,0,0,0,1603,1,0,0,0,0,1605,1,0,0,0,0,1607,1,0,0,0,0,1609,1,0,0,0,0,1611,1,0,0,0,0,1613,1,0,0,0,0,1615,1,0,0,0,0,1617,1,0,0,0,0,1619,1,0,0,0,0,1621,1,0,0,0,0,1623,1,0,0,0,0,1625,1,0,0,0,0,1627,1,0,0,0,0,1629,1,0,0,0,0,1631,1,0,0,0,0,1633,1,0,0,0,0,1635,1,0,0,0,0,1637,1,0,0,0,0,1639,1,0,0,0,0,1641,1,0,0,0,0,1643,1,0,0,0,0,1645,1,0,0,0,0,1647,1,0,0,0,0,1649,1,0,0,0,0,1651,1,0,0,0,0,1653,1,0,0,0,0,1655,1,0,0,0,0,1657,1,0,0,0,0,1659,1,0,0,0,0,1661,1,0,0,0,0,1663,1,0,0,0,0,1665,1,0,0,0,0,1667,1,0,0,0,0,1669,1,0,0,0,0,1671,1,0,0,0,0,1673,1,0,0,0,0,1675,1,0,0,0,0,1677,1,0,0,0,0,1679,1,0,0,0,0,1681,1,0,0,0,0,1683,1,0,0,0,0,1685,1,0,0,0,0,1687,1,0,0,0,0,1689,1,0,0,0,0,1691,1,0,0,0,0,1693,1,0,0,0,0,1695,1,0,0,0,0,1697,1,0,0,0,0,1699,1,0,0,0,0,1701,1,0,0,0,0,1703,1,0,0,0,0,1705,1,0,0,0,0,1707,1,0,0,0,0,1709,1,0,0,0,0,1711,1,0,0,0,0,1713,1,0,0,0,0,1715,1,0,0,0,0,1717,1,0,0,0,0,1719,1,0,0,0,0,1721,1,0,0,0,0,1723,1,0,0,0,0,1725,1,0,0,0,0,1727,1,0,0,0,0,1729,1,0,0,0,0,1731,1,0,0,0,0,1733,1,0,0,0,0,1735,1,0,0,0,0,1737,1,0,0,0,0,1739,1,0,0,0,0,1741,1,0,0,0,0,1743,1,0,0,0,0,1745,1,0,0,0,0,1747,1,0,0,0,0,1749,1,0,0,0,0,1751,1,0,0,0,0,1753,1,0,0,0,0,1755,1,0,0,0,0,1757,1,0,0,0,0,1759,1,0,0,0,0,1761,1,0,0,0,0,1763,1,0,0,0,0,1765,1,0,0,0,0,1767,1,0,0,0,0,1769,1,0,0,0,0,1771,1,0,0,0,0,1773,1,0,0,0,0,1775,1,0,0,0,0,1777,1,0,0,0,0,1779,1,0,0,0,0,1781,1,0,0,0,0,1783,1,0,0,0,0,1785,1,0,0,0,0,1787,1,0,0,0,0,1789,1,0,0,0,0,1791,1,0,0,0,0,1793,1,0,0,0,0,1795,1,0,0,0,0,1797,1,0,0,0,0,1799,1,0,0,0,0,1801,1,0,0,0,0,1803,1,0,0,0,0,1805,1,0,0,0,0,1807,1,0,0,0,0,1809,1,0,0,0,0,1811,1,0,0,0,0,1813,1,0,0,0,0,1815,1,0,0,0,0,1817,1,0,0,0,0,1819,1,0,0,0,0,1821,1,0,0,0,0,1823,1,0,0,0,0,1825,1,0,0,0,0,1827,1,0,0,0,0,1829,1,0,0,0,0,1831,1,0,0,0,0,1833,1,0,0,0,0,1835,1,0,0,0,0,1837,1,0,0,0,0,1839,1,0,0,0,0,1841,1,0,0,0,0,1843,1,0,0,0,0,1845,1,0,0,0,0,1847,1,0,0,0,0,1849,1,0,0,0,0,1851,1,0,0,0,0,1853,1,0,0,0,0,1855,1,0,0,0,0,1857,1,0,0,0,0,1859,1,0,0,0,0,1861,1,0,0,0,0,1863,1,0,0,0,0,1865,1,0,0,0,0,1867,1,0,0,0,0,1869,1,0,0,0,0,1871,1,0,0,0,0,1873,1,0,0,0,0,1875,1,0,0,0,0,1877,1,0,0,0,0,1879,1,0,0,0,0,1881,1,0,0,0,0,1883,1,0,0,0,0,1885,1,0,0,0,0,1887,1,0,0,0,0,1889,1,0,0,0,0,1891,1,0,0,0,0,1893,1,0,0,0,0,1895,1,0,0,0,0,1897,1,0,0,0,0,1899,1,0,0,0,0,1901,1,0,0,0,0,1903,1,0,0,0,0,1905,1,0,0,0,0,1907,1,0,0,0,0,1909,1,0,0,0,0,1911,1,0,0,0,0,1913,1,0,0,0,0,1915,1,0,0,0,0,1917,1,0,0,0,0,1919,1,0,0,0,0,1921,1,0,0,0,0,1923,1,0,0,0,0,1925,1,0,0,0,0,1927,1,0,0,0,0,1929,1,0,0,0,0,1931,1,0,0,0,0,1933,1,0,0,0,0,1935,1,0,0,0,0,1937,1,0,0,0,0,1939,1,0,0,0,0,1941,1,0,0,0,0,1943,1,0,0,0,0,1945,1,0,0,0,0,1947,1,0,0,0,0,1949,1,0,0,0,0,1951,1,0,0,0,0,1953,1,0,0,0,0,1955,1,0,0,0,0,1957,1,0,0,0,0,1959,1,0,0,0,0,1961,1,0,0,0,0,1963,1,0,0,0,0,1965,1,0,0,0,0,1967,1,0,0,0,0,1969,1,0,0,0,0,1971,1,0,0,0,0,1973,1,0,0,0,0,1975,1,0,0,0,0,1977,1,0,0,0,0,1979,1,0,0,0,0,1981,1,0,0,0,0,1983,1,0,0,0,0,1985,1,0,0,0,0,1987,1,0,0,0,0,1989,1,0,0,0,0,1991,1,0,0,0,0,1993,1,0,0,0,0,1995,1,0,0,0,0,1997,1,0,0,0,0,1999,1,0,0,0,0,2001,1,0,0,0,0,2003,1,0,0,0,0,2005,1,0,0,0,0,2007,1,0,0,0,0,2009,1,0,0,0,0,2011,1,0,0,0,0,2013,1,0,0,0,0,2015,1,0,0,0,0,2017,1,0,0,0,0,2019,1,0,0,0,0,2021,1,0,0,0,0,2023,1,0,0,0,0,2025,1,0,0,0,0,2027,1,0,0,0,0,2029,1,0,0,0,0,2031,1,0,0,0,0,2033,1,0,0,0,0,2035,1,0,0,0,0,2037,1,0,0,0,0,2039,1,0,0,0,0,2041,1,0,0,0,0,2043,1,0,0,0,0,2045,1,0,0,0,0,2047,1,0,0,0,0,2049,1,0,0,0,0,2051,1,0,0,0,0,2053,1,0,0,0,0,2055,1,0,0,0,0,2057,1,0,0,0,0,2059,1,0,0,0,0,2061,1,0,0,0,0,2063,1,0,0,0,0,2065,1,0,0,0,0,2067,1,0,0,0,0,2069,1,0,0,0,0,2071,1,0,0,0,0,2073,1,0,0,0,0,2075,1,0,0,0,0,2077,1,0,0,0,0,2079,1,0,0,0,0,2081,1,0,0,0,0,2083,1,0,0,0,0,2085,1,0,0,0,0,2087,1,0,0,0,0,2089,1,0,0,0,0,2091,1,0,0,0,0,2093,1,0,0,0,0,2095,1,0,0,0,0,2097,1,0,0,0,0,2099,1,0,0,0,0,2101,1,0,0,0,0,2103,1,0,0,0,0,2105,1,0,0,0,0,2107,1,0,0,0,0,2109,1,0,0,0,0,2111,1,0,0,0,0,2113,1,0,0,0,0,2115,1,0,0,0,0,2117,1,0,0,0,0,2119,1,0,0,0,0,2121,1,0,0,0,0,2123,1,0,0,0,0,2125,1,0,0,0,0,2127,1,0,0,0,0,2129,1,0,0,0,0,2131,1,0,0,0,0,2133,1,0,0,0,0,2135,1,0,0,0,0,2137,1,0,0,0,0,2139,1,0,0,0,0,2141,1,0,0,0,0,2143,1,0,0,0,0,2145,1,0,0,0,0,2147,1,0,0,0,0,2149,1,0,0,0,0,2151,1,0,0,0,0,2153,1,0,0,0,0,2155,1,0,0,0,0,2157,1,0,0,0,0,2159,1,0,0,0,0,2161,1,0,0,0,0,2163,1,0,0,0,0,2165,1,0,0,0,0,2167,1,0,0,0,0,2169,1,0,0,0,0,2171,1,0,0,0,0,2173,1,0,0,0,0,2175,1,0,0,0,0,2177,1,0,0,0,0,2179,1,0,0,0,0,2181,1,0,0,0,0,2183,1,0,0,0,0,2185,1,0,0,0,0,2187,1,0,0,0,0,2189,1,0,0,0,0,2191,1,0,0,0,0,2193,1,0,0,0,0,2195,1,0,0,0,0,2197,1,0,0,0,0,2199,1,0,0,0,0,2201,1,0,0,0,0,2203,1,0,0,0,0,2205,1,0,0,0,0,2207,1,0,0,0,0,2209,1,0,0,0,0,2211,1,0,0,0,0,2213,1,0,0,0,0,2215,1,0,0,0,0,2217,1,0,0,0,0,2219,1,0,0,0,0,2221,1,0,0,0,0,2223,1,0,0,0,0,2225,1,0,0,0,0,2227,1,0,0,0,0,2229,1,0,0,0,0,2231,1,0,0,0,0,2233,1,0,0,0,0,2235,1,0,0,0,0,2237,1,0,0,0,0,2239,1,0,0,0,0,2241,1,0,0,0,0,2243,1,0,0,0,0,2245,1,0,0,0,0,2247,1,0,0,0,0,2249,1,0,0,0,0,2251,1,0,0,0,0,2253,1,0,0,0,0,2255,1,0,0,0,0,2257,1,0,0,0,0,2259,1,0,0,0,0,2261,1,0,0,0,0,2263,1,0,0,0,0,2265,1,0,0,0,0,2267,1,0,0,0,0,2269,1,0,0,0,0,2271,1,0,0,0,0,2273,1,0,0,0,0,2275,1,0,0,0,0,2277,1,0,0,0,0,2279,1,0,0,0,0,2281,1,0,0,0,0,2283,1,0,0,0,0,2285,1,0,0,0,0,2287,1,0,0,0,0,2291,1,0,0,0,0,2293,1,0,0,0,0,2295,1,0,0,0,0,2297,1,0,0,0,0,2299,1,0,0,0,0,2301,1,0,0,0,0,2303,1,0,0,0,0,2305,1,0,0,0,0,2307,1,0,0,0,0,2309,1,0,0,0,0,2311,1,0,0,0,0,2313,1,0,0,0,0,2315,1,0,0,0,0,2317,1,0,0,0,0,2319,1,0,0,0,0,2321,1,0,0,0,0,2343,1,0,0,0,1,2346,1,0,0,0,3,2352,1,0,0,0,5,2366,1,0,0,0,7,2415,1,0,0,0,9,2419,1,0,0,0,11,2423,1,0,0,0,13,2427,1,0,0,0,15,2433,1,0,0,0,17,2440,1,0,0,0,19,2448,1,0,0,0,21,2452,1,0,0,0,23,2458,1,0,0,0,25,2461,1,0,0,0,27,2465,1,0,0,0,29,2475,1,0,0,0,31,2482,1,0,0,0,33,2490,1,0,0,0,35,2495,1,0,0,0,37,2503,1,0,0,0,39,2506,1,0,0,0,41,2511,1,0,0,0,43,2519,1,0,0,0,45,2524,1,0,0,0,47,2529,1,0,0,0,49,2536,1,0,0,0,51,2546,1,0,0,0,53,2552,1,0,0,0,55,2560,1,0,0,0,57,2567,1,0,0,0,59,2577,1,0,0,0,61,2588,1,0,0,0,63,2597,1,0,0,0,65,2605,1,0,0,0,67,2612,1,0,0,0,69,2618,1,0,0,0,71,2626,1,0,0,0,73,2639,1,0,0,0,75,2652,1,0,0,0,77,2659,1,0,0,0,79,2668,1,0,0,0,81,2678,1,0,0,0,83,2686,1,0,0,0,85,2694,1,0,0,0,87,2702,1,0,0,0,89,2709,1,0,0,0,91,2714,1,0,0,0,93,2723,1,0,0,0,95,2737,1,0,0,0,97,2749,1,0,0,0,99,2758,1,0,0,0,101,2770,1,0,0,0,103,2775,1,0,0,0,105,2780,1,0,0,0,107,2785,1,0,0,0,109,2792,1,0,0,0,111,2798,1,0,0,0,113,2807,1,0,0,0,115,2816,1,0,0,0,117,2824,1,0,0,0,119,2831,1,0,0,0,121,2838,1,0,0,0,123,2843,1,0,0,0,125,2851,1,0,0,0,127,2857,1,0,0,0,129,2863,1,0,0,0,131,2867,1,0,0,0,133,2873,1,0,0,0,135,2881,1,0,0,0,137,2886,1,0,0,0,139,2895,1,0,0,0,141,2905,1,0,0,0,143,2909,1,0,0,0,145,2915,1,0,0,0,147,2921,1,0,0,0,149,2928,1,0,0,0,151,2942,1,0,0,0,153,2952,1,0,0,0,155,2955,1,0,0,0,157,2962,1,0,0,0,159,2970,1,0,0,0,161,2973,1,0,0,0,163,2979,1,0,0,0,165,2986,1,0,0,0,167,2992,1,0,0,0,169,2998,1,0,0,0,171,3005,1,0,0,0,173,3014,1,0,0,0,175,3019,1,0,0,0,177,3022,1,0,0,0,179,3030,1,0,0,0,181,3035,1,0,0,0,183,3039,1,0,0,0,185,3044,1,0,0,0,187,3049,1,0,0,0,189,3057,1,0,0,0,191,3065,1,0,0,0,193,3071,1,0,0,0,195,3076,1,0,0,0,197,3081,1,0,0,0,199,3087,1,0,0,0,201,3094,1,0,0,0,203,3100,1,0,0,0,205,3105,1,0,0,0,207,3110,1,0,0,0,209,3117,1,0,0,0,211,3122,1,0,0,0,213,3135,1,0,0,0,215,3147,1,0,0,0,217,3177,1,0,0,0,219,3183,1,0,0,0,221,3192,1,0,0,0,223,3201,1,0,0,0,225,3210,1,0,0,0,227,3218,1,0,0,0,229,3222,1,0,0,0,231,3241,1,0,0,0,233,3246,1,0,0,0,235,3253,1,0,0,0,237,3256,1,0,0,0,239,3265,1,0,0,0,241,3272,1,0,0,0,243,3281,1,0,0,0,245,3292,1,0,0,0,247,3295,1,0,0,0,249,3301,1,0,0,0,251,3305,1,0,0,0,253,3311,1,0,0,0,255,3319,1,0,0,0,257,3324,1,0,0,0,259,3334,1,0,0,0,261,3342,1,0,0,0,263,3352,1,0,0,0,265,3358,1,0,0,0,267,3364,1,0,0,0,269,3369,1,0,0,0,271,3375,1,0,0,0,273,3386,1,0,0,0,275,3393,1,0,0,0,277,3401,1,0,0,0,279,3408,1,0,0,0,281,3415,1,0,0,0,283,3423,1,0,0,0,285,3431,1,0,0,0,287,3440,1,0,0,0,289,3449,1,0,0,0,291,3456,1,0,0,0,293,3463,1,0,0,0,295,3470,1,0,0,0,297,3476,1,0,0,0,299,3482,1,0,0,0,301,3489,1,0,0,0,303,3497,1,0,0,0,305,3504,1,0,0,0,307,3508,1,0,0,0,309,3518,1,0,0,0,311,3523,1,0,0,0,313,3530,1,0,0,0,315,3535,1,0,0,0,317,3554,1,0,0,0,319,3562,1,0,0,0,321,3566,1,0,0,0,323,3579,1,0,0,0,325,3588,1,0,0,0,327,3599,1,0,0,0,329,3614,1,0,0,0,331,3634,1,0,0,0,333,3651,1,0,0,0,335,3655,1,0,0,0,337,3663,1,0,0,0,339,3672,1,0,0,0,341,3682,1,0,0,0,343,3696,1,0,0,0,345,3702,1,0,0,0,347,3713,1,0,0,0,349,3718,1,0,0,0,351,3721,1,0,0,0,353,3730,1,0,0,0,355,3738,1,0,0,0,357,3743,1,0,0,0,359,3748,1,0,0,0,361,3754,1,0,0,0,363,3761,1,0,0,0,365,3768,1,0,0,0,367,3777,1,0,0,0,369,3784,1,0,0,0,371,3790,1,0,0,0,373,3794,1,0,0,0,375,3800,1,0,0,0,377,3807,1,0,0,0,379,3812,1,0,0,0,381,3818,1,0,0,0,383,3824,1,0,0,0,385,3829,1,0,0,0,387,3835,1,0,0,0,389,3839,1,0,0,0,391,3848,1,0,0,0,393,3856,1,0,0,0,395,3865,1,0,0,0,397,3875,1,0,0,0,399,3885,1,0,0,0,401,3889,1,0,0,0,403,3894,1,0,0,0,405,3899,1,0,0,0,407,3904,1,0,0,0,409,3909,1,0,0,0,411,3914,1,0,0,0,413,3922,1,0,0,0,415,3929,1,0,0,0,417,3934,1,0,0,0,419,3941,1,0,0,0,421,3951,1,0,0,0,423,3957,1,0,0,0,425,3964,1,0,0,0,427,3971,1,0,0,0,429,3979,1,0,0,0,431,3983,1,0,0,0,433,3991,1,0,0,0,435,3996,1,0,0,0,437,4001,1,0,0,0,439,4011,1,0,0,0,441,4020,1,0,0,0,443,4025,1,0,0,0,445,4030,1,0,0,0,447,4038,1,0,0,0,449,4047,1,0,0,0,451,4056,1,0,0,0,453,4063,1,0,0,0,455,4073,1,0,0,0,457,4082,1,0,0,0,459,4087,1,0,0,0,461,4098,1,0,0,0,463,4103,1,0,0,0,465,4112,1,0,0,0,467,4121,1,0,0,0,469,4126,1,0,0,0,471,4137,1,0,0,0,473,4146,1,0,0,0,475,4151,1,0,0,0,477,4159,1,0,0,0,479,4166,1,0,0,0,481,4177,1,0,0,0,483,4186,1,0,0,0,485,4197,1,0,0,0,487,4208,1,0,0,0,489,4220,1,0,0,0,491,4232,1,0,0,0,493,4246,1,0,0,0,495,4265,1,0,0,0,497,4284,1,0,0,0,499,4301,1,0,0,0,501,4317,1,0,0,0,503,4328,1,0,0,0,505,4342,1,0,0,0,507,4360,1,0,0,0,509,4378,1,0,0,0,511,4392,1,0,0,0,513,4411,1,0,0,0,515,4422,1,0,0,0,517,4435,1,0,0,0,519,4447,1,0,0,0,521,4457,1,0,0,0,523,4469,1,0,0,0,525,4480,1,0,0,0,527,4497,1,0,0,0,529,4517,1,0,0,0,531,4529,1,0,0,0,533,4544,1,0,0,0,535,4558,1,0,0,0,537,4570,1,0,0,0,539,4581,1,0,0,0,541,4593,1,0,0,0,543,4606,1,0,0,0,545,4624,1,0,0,0,547,4654,1,0,0,0,549,4666,1,0,0,0,551,4675,1,0,0,0,553,4693,1,0,0,0,555,4711,1,0,0,0,557,4722,1,0,0,0,559,4732,1,0,0,0,561,4745,1,0,0,0,563,4756,1,0,0,0,565,4767,1,0,0,0,567,4774,1,0,0,0,569,4785,1,0,0,0,571,4790,1,0,0,0,573,4794,1,0,0,0,575,4802,1,0,0,0,577,4809,1,0,0,0,579,4817,1,0,0,0,581,4823,1,0,0,0,583,4833,1,0,0,0,585,4844,1,0,0,0,587,4856,1,0,0,0,589,4869,1,0,0,0,591,4873,1,0,0,0,593,4884,1,0,0,0,595,4889,1,0,0,0,597,4893,1,0,0,0,599,4897,1,0,0,0,601,4903,1,0,0,0,603,4913,1,0,0,0,605,4926,1,0,0,0,607,4931,1,0,0,0,609,4942,1,0,0,0,611,4946,1,0,0,0,613,4953,1,0,0,0,615,4964,1,0,0,0,617,4976,1,0,0,0,619,4980,1,0,0,0,621,4988,1,0,0,0,623,4997,1,0,0,0,625,5006,1,0,0,0,627,5019,1,0,0,0,629,5032,1,0,0,0,631,5050,1,0,0,0,633,5060,1,0,0,0,635,5068,1,0,0,0,637,5076,1,0,0,0,639,5085,1,0,0,0,641,5094,1,0,0,0,643,5102,1,0,0,0,645,5117,1,0,0,0,647,5121,1,0,0,0,649,5130,1,0,0,0,651,5137,1,0,0,0,653,5147,1,0,0,0,655,5155,1,0,0,0,657,5160,1,0,0,0,659,5169,1,0,0,0,661,5178,1,0,0,0,663,5192,1,0,0,0,665,5200,1,0,0,0,667,5207,1,0,0,0,669,5213,1,0,0,0,671,5223,1,0,0,0,673,5233,1,0,0,0,675,5237,1,0,0,0,677,5240,1,0,0,0,679,5248,1,0,0,0,681,5259,1,0,0,0,683,5275,1,0,0,0,685,5290,1,0,0,0,687,5305,1,0,0,0,689,5311,1,0,0,0,691,5318,1,0,0,0,693,5322,1,0,0,0,695,5328,1,0,0,0,697,5333,1,0,0,0,699,5341,1,0,0,0,701,5347,1,0,0,0,703,5353,1,0,0,0,705,5362,1,0,0,0,707,5368,1,0,0,0,709,5376,1,0,0,0,711,5384,1,0,0,0,713,5393,1,0,0,0,715,5407,1,0,0,0,717,5414,1,0,0,0,719,5427,1,0,0,0,721,5434,1,0,0,0,723,5440,1,0,0,0,725,5451,1,0,0,0,727,5460,1,0,0,0,729,5465,1,0,0,0,731,5473,1,0,0,0,733,5487,1,0,0,0,735,5499,1,0,0,0,737,5507,1,0,0,0,739,5514,1,0,0,0,741,5522,1,0,0,0,743,5533,1,0,0,0,745,5544,1,0,0,0,747,5556,1,0,0,0,749,5567,1,0,0,0,751,5575,1,0,0,0,753,5586,1,0,0,0,755,5597,1,0,0,0,757,5616,1,0,0,0,759,5634,1,0,0,0,761,5650,1,0,0,0,763,5659,1,0,0,0,765,5667,1,0,0,0,767,5680,1,0,0,0,769,5685,1,0,0,0,771,5689,1,0,0,0,773,5695,1,0,0,0,775,5707,1,0,0,0,777,5712,1,0,0,0,779,5721,1,0,0,0,781,5732,1,0,0,0,783,5745,1,0,0,0,785,5753,1,0,0,0,787,5769,1,0,0,0,789,5782,1,0,0,0,791,5792,1,0,0,0,793,5800,1,0,0,0,795,5808,1,0,0,0,797,5813,1,0,0,0,799,5816,1,0,0,0,801,5825,1,0,0,0,803,5835,1,0,0,0,805,5843,1,0,0,0,807,5850,1,0,0,0,809,5860,1,0,0,0,811,5871,1,0,0,0,813,5889,1,0,0,0,815,5893,1,0,0,0,817,5898,1,0,0,0,819,5905,1,0,0,0,821,5913,1,0,0,0,823,5919,1,0,0,0,825,5926,1,0,0,0,827,5933,1,0,0,0,829,5938,1,0,0,0,831,5944,1,0,0,0,833,5951,1,0,0,0,835,5957,1,0,0,0,837,5966,1,0,0,0,839,5976,1,0,0,0,841,5983,1,0,0,0,843,5990,1,0,0,0,845,5999,1,0,0,0,847,6011,1,0,0,0,849,6033,1,0,0,0,851,6038,1,0,0,0,853,6045,1,0,0,0,855,6052,1,0,0,0,857,6068,1,0,0,0,859,6075,1,0,0,0,861,6081,1,0,0,0,863,6087,1,0,0,0,865,6093,1,0,0,0,867,6103,1,0,0,0,869,6111,1,0,0,0,871,6117,1,0,0,0,873,6122,1,0,0,0,875,6131,1,0,0,0,877,6139,1,0,0,0,879,6146,1,0,0,0,881,6153,1,0,0,0,883,6171,1,0,0,0,885,6179,1,0,0,0,887,6184,1,0,0,0,889,6189,1,0,0,0,891,6197,1,0,0,0,893,6202,1,0,0,0,895,6208,1,0,0,0,897,6219,1,0,0,0,899,6237,1,0,0,0,901,6244,1,0,0,0,903,6254,1,0,0,0,905,6262,1,0,0,0,907,6275,1,0,0,0,909,6283,1,0,0,0,911,6297,1,0,0,0,913,6305,1,0,0,0,915,6314,1,0,0,0,917,6322,1,0,0,0,919,6332,1,0,0,0,921,6340,1,0,0,0,923,6343,1,0,0,0,925,6353,1,0,0,0,927,6357,1,0,0,0,929,6367,1,0,0,0,931,6374,1,0,0,0,933,6379,1,0,0,0,935,6394,1,0,0,0,937,6403,1,0,0,0,939,6408,1,0,0,0,941,6415,1,0,0,0,943,6420,1,0,0,0,945,6426,1,0,0,0,947,6431,1,0,0,0,949,6437,1,0,0,0,951,6445,1,0,0,0,953,6450,1,0,0,0,955,6457,1,0,0,0,957,6478,1,0,0,0,959,6499,1,0,0,0,961,6512,1,0,0,0,963,6536,1,0,0,0,965,6548,1,0,0,0,967,6564,1,0,0,0,969,6579,1,0,0,0,971,6595,1,0,0,0,973,6607,1,0,0,0,975,6626,1,0,0,0,977,6637,1,0,0,0,979,6651,1,0,0,0,981,6669,1,0,0,0,983,6685,1,0,0,0,985,6703,1,0,0,0,987,6718,1,0,0,0,989,6737,1,0,0,0,991,6752,1,0,0,0,993,6771,1,0,0,0,995,6783,1,0,0,0,997,6808,1,0,0,0,999,6829,1,0,0,0,1001,6838,1,0,0,0,1003,6847,1,0,0,0,1005,6868,1,0,0,0,1007,6889,1,0,0,0,1009,6896,1,0,0,0,1011,6903,1,0,0,0,1013,6909,1,0,0,0,1015,6922,1,0,0,0,1017,6926,1,0,0,0,1019,6934,1,0,0,0,1021,6943,1,0,0,0,1023,6948,1,0,0,0,1025,6955,1,0,0,0,1027,6961,1,0,0,0,1029,6967,1,0,0,0,1031,6979,1,0,0,0,1033,6984,1,0,0,0,1035,6990,1,0,0,0,1037,6996,1,0,0,0,1039,7002,1,0,0,0,1041,7007,1,0,0,0,1043,7010,1,0,0,0,1045,7018,1,0,0,0,1047,7025,1,0,0,0,1049,7033,1,0,0,0,1051,7044,1,0,0,0,1053,7055,1,0,0,0,1055,7062,1,0,0,0,1057,7072,1,0,0,0,1059,7077,1,0,0,0,1061,7082,1,0,0,0,1063,7090,1,0,0,0,1065,7097,1,0,0,0,1067,7100,1,0,0,0,1069,7103,1,0,0,0,1071,7116,1,0,0,0,1073,7120,1,0,0,0,1075,7127,1,0,0,0,1077,7132,1,0,0,0,1079,7137,1,0,0,0,1081,7153,1,0,0,0,1083,7161,1,0,0,0,1085,7167,1,0,0,0,1087,7177,1,0,0,0,1089,7182,1,0,0,0,1091,7198,1,0,0,0,1093,7221,1,0,0,0,1095,7228,1,0,0,0,1097,7236,1,0,0,0,1099,7249,1,0,0,0,1101,7260,1,0,0,0,1103,7269,1,0,0,0,1105,7288,1,0,0,0,1107,7294,1,0,0,0,1109,7301,1,0,0,0,1111,7312,1,0,0,0,1113,7320,1,0,0,0,1115,7325,1,0,0,0,1117,7334,1,0,0,0,1119,7344,1,0,0,0,1121,7352,1,0,0,0,1123,7361,1,0,0,0,1125,7366,1,0,0,0,1127,7378,1,0,0,0,1129,7386,1,0,0,0,1131,7395,1,0,0,0,1133,7401,1,0,0,0,1135,7407,1,0,0,0,1137,7413,1,0,0,0,1139,7421,1,0,0,0,1141,7429,1,0,0,0,1143,7439,1,0,0,0,1145,7456,1,0,0,0,1147,7466,1,0,0,0,1149,7472,1,0,0,0,1151,7487,1,0,0,0,1153,7501,1,0,0,0,1155,7510,1,0,0,0,1157,7517,1,0,0,0,1159,7528,1,0,0,0,1161,7535,1,0,0,0,1163,7551,1,0,0,0,1165,7570,1,0,0,0,1167,7590,1,0,0,0,1169,7613,1,0,0,0,1171,7634,1,0,0,0,1173,7658,1,0,0,0,1175,7686,1,0,0,0,1177,7698,1,0,0,0,1179,7704,1,0,0,0,1181,7712,1,0,0,0,1183,7719,1,0,0,0,1185,7737,1,0,0,0,1187,7747,1,0,0,0,1189,7755,1,0,0,0,1191,7761,1,0,0,0,1193,7766,1,0,0,0,1195,7775,1,0,0,0,1197,7782,1,0,0,0,1199,7789,1,0,0,0,1201,7793,1,0,0,0,1203,7798,1,0,0,0,1205,7809,1,0,0,0,1207,7815,1,0,0,0,1209,7825,1,0,0,0,1211,7834,1,0,0,0,1213,7843,1,0,0,0,1215,7852,1,0,0,0,1217,7859,1,0,0,0,1219,7867,1,0,0,0,1221,7873,1,0,0,0,1223,7880,1,0,0,0,1225,7887,1,0,0,0,1227,7894,1,0,0,0,1229,7900,1,0,0,0,1231,7905,1,0,0,0,1233,7914,1,0,0,0,1235,7921,1,0,0,0,1237,7926,1,0,0,0,1239,7933,1,0,0,0,1241,7940,1,0,0,0,1243,7947,1,0,0,0,1245,7963,1,0,0,0,1247,7982,1,0,0,0,1249,7999,1,0,0,0,1251,8017,1,0,0,0,1253,8027,1,0,0,0,1255,8040,1,0,0,0,1257,8051,1,0,0,0,1259,8057,1,0,0,0,1261,8064,1,0,0,0,1263,8082,1,0,0,0,1265,8099,1,0,0,0,1267,8118,1,0,0,0,1269,8125,1,0,0,0,1271,8130,1,0,0,0,1273,8138,1,0,0,0,1275,8145,1,0,0,0,1277,8152,1,0,0,0,1279,8168,1,0,0,0,1281,8176,1,0,0,0,1283,8189,1,0,0,0,1285,8203,1,0,0,0,1287,8211,1,0,0,0,1289,8217,1,0,0,0,1291,8226,1,0,0,0,1293,8237,1,0,0,0,1295,8248,1,0,0,0,1297,8259,1,0,0,0,1299,8269,1,0,0,0,1301,8279,1,0,0,0,1303,8284,1,0,0,0,1305,8296,1,0,0,0,1307,8308,1,0,0,0,1309,8322,1,0,0,0,1311,8331,1,0,0,0,1313,8340,1,0,0,0,1315,8350,1,0,0,0,1317,8360,1,0,0,0,1319,8369,1,0,0,0,1321,8386,1,0,0,0,1323,8396,1,0,0,0,1325,8404,1,0,0,0,1327,8410,1,0,0,0,1329,8418,1,0,0,0,1331,8423,1,0,0,0,1333,8431,1,0,0,0,1335,8446,1,0,0,0,1337,8457,1,0,0,0,1339,8463,1,0,0,0,1341,8473,1,0,0,0,1343,8478,1,0,0,0,1345,8486,1,0,0,0,1347,8494,1,0,0,0,1349,8499,1,0,0,0,1351,8508,1,0,0,0,1353,8515,1,0,0,0,1355,8523,1,0,0,0,1357,8528,1,0,0,0,1359,8536,1,0,0,0,1361,8541,1,0,0,0,1363,8544,1,0,0,0,1365,8548,1,0,0,0,1367,8552,1,0,0,0,1369,8556,1,0,0,0,1371,8560,1,0,0,0,1373,8564,1,0,0,0,1375,8568,1,0,0,0,1377,8577,1,0,0,0,1379,8585,1,0,0,0,1381,8591,1,0,0,0,1383,8595,1,0,0,0,1385,8600,1,0,0,0,1387,8607,1,0,0,0,1389,8612,1,0,0,0,1391,8619,1,0,0,0,1393,8631,1,0,0,0,1395,8637,1,0,0,0,1397,8664,1,0,0,0,1399,8683,1,0,0,0,1401,8695,1,0,0,0,1403,8723,1,0,0,0,1405,8736,1,0,0,0,1407,8749,1,0,0,0,1409,8773,1,0,0,0,1411,8785,1,0,0,0,1413,8802,1,0,0,0,1415,8823,1,0,0,0,1417,8831,1,0,0,0,1419,8836,1,0,0,0,1421,8851,1,0,0,0,1423,8867,1,0,0,0,1425,8881,1,0,0,0,1427,8903,1,0,0,0,1429,8916,1,0,0,0,1431,8929,1,0,0,0,1433,8950,1,0,0,0,1435,8974,1,0,0,0,1437,8998,1,0,0,0,1439,9021,1,0,0,0,1441,9028,1,0,0,0,1443,9035,1,0,0,0,1445,9051,1,0,0,0,1447,9075,1,0,0,0,1449,9102,1,0,0,0,1451,9113,1,0,0,0,1453,9121,1,0,0,0,1455,9128,1,0,0,0,1457,9148,1,0,0,0,1459,9172,1,0,0,0,1461,9193,1,0,0,0,1463,9213,1,0,0,0,1465,9224,1,0,0,0,1467,9232,1,0,0,0,1469,9235,1,0,0,0,1471,9261,1,0,0,0,1473,9290,1,0,0,0,1475,9302,1,0,0,0,1477,9315,1,0,0,0,1479,9324,1,0,0,0,1481,9330,1,0,0,0,1483,9353,1,0,0,0,1485,9360,1,0,0,0,1487,9383,1,0,0,0,1489,9403,1,0,0,0,1491,9420,1,0,0,0,1493,9429,1,0,0,0,1495,9435,1,0,0,0,1497,9440,1,0,0,0,1499,9447,1,0,0,0,1501,9454,1,0,0,0,1503,9461,1,0,0,0,1505,9468,1,0,0,0,1507,9474,1,0,0,0,1509,9480,1,0,0,0,1511,9486,1,0,0,0,1513,9492,1,0,0,0,1515,9497,1,0,0,0,1517,9505,1,0,0,0,1519,9511,1,0,0,0,1521,9519,1,0,0,0,1523,9526,1,0,0,0,1525,9530,1,0,0,0,1527,9538,1,0,0,0,1529,9544,1,0,0,0,1531,9551,1,0,0,0,1533,9555,1,0,0,0,1535,9563,1,0,0,0,1537,9569,1,0,0,0,1539,9575,1,0,0,0,1541,9582,1,0,0,0,1543,9589,1,0,0,0,1545,9596,1,0,0,0,1547,9603,1,0,0,0,1549,9609,1,0,0,0,1551,9618,1,0,0,0,1553,9623,1,0,0,0,1555,9628,1,0,0,0,1557,9635,1,0,0,0,1559,9640,1,0,0,0,1561,9645,1,0,0,0,1563,9651,1,0,0,0,1565,9659,1,0,0,0,1567,9665,1,0,0,0,1569,9670,1,0,0,0,1571,9678,1,0,0,0,1573,9686,1,0,0,0,1575,9694,1,0,0,0,1577,9704,1,0,0,0,1579,9708,1,0,0,0,1581,9718,1,0,0,0,1583,9725,1,0,0,0,1585,9732,1,0,0,0,1587,9743,1,0,0,0,1589,9750,1,0,0,0,1591,9754,1,0,0,0,1593,9765,1,0,0,0,1595,9784,1,0,0,0,1597,9791,1,0,0,0,1599,9802,1,0,0,0,1601,9812,1,0,0,0,1603,9824,1,0,0,0,1605,9837,1,0,0,0,1607,9856,1,0,0,0,1609,9871,1,0,0,0,1611,9880,1,0,0,0,1613,9891,1,0,0,0,1615,9907,1,0,0,0,1617,9918,1,0,0,0,1619,9931,1,0,0,0,1621,9937,1,0,0,0,1623,9945,1,0,0,0,1625,9949,1,0,0,0,1627,9954,1,0,0,0,1629,9962,1,0,0,0,1631,9970,1,0,0,0,1633,9982,1,0,0,0,1635,9994,1,0,0,0,1637,9999,1,0,0,0,1639,10008,1,0,0,0,1641,10013,1,0,0,0,1643,10020,1,0,0,0,1645,10026,1,0,0,0,1647,10032,1,0,0,0,1649,10051,1,0,0,0,1651,10069,1,0,0,0,1653,10088,1,0,0,0,1655,10104,1,0,0,0,1657,10122,1,0,0,0,1659,10127,1,0,0,0,1661,10133,1,0,0,0,1663,10143,1,0,0,0,1665,10147,1,0,0,0,1667,10157,1,0,0,0,1669,10168,1,0,0,0,1671,10175,1,0,0,0,1673,10188,1,0,0,0,1675,10193,1,0,0,0,1677,10201,1,0,0,0,1679,10210,1,0,0,0,1681,10227,1,0,0,0,1683,10235,1,0,0,0,1685,10247,1,0,0,0,1687,10260,1,0,0,0,1689,10270,1,0,0,0,1691,10279,1,0,0,0,1693,10286,1,0,0,0,1695,10296,1,0,0,0,1697,10310,1,0,0,0,1699,10315,1,0,0,0,1701,10326,1,0,0,0,1703,10330,1,0,0,0,1705,10334,1,0,0,0,1707,10340,1,0,0,0,1709,10367,1,0,0,0,1711,10393,1,0,0,0,1713,10414,1,0,0,0,1715,10428,1,0,0,0,1717,10436,1,0,0,0,1719,10445,1,0,0,0,1721,10457,1,0,0,0,1723,10465,1,0,0,0,1725,10476,1,0,0,0,1727,10486,1,0,0,0,1729,10496,1,0,0,0,1731,10503,1,0,0,0,1733,10511,1,0,0,0,1735,10523,1,0,0,0,1737,10535,1,0,0,0,1739,10545,1,0,0,0,1741,10554,1,0,0,0,1743,10558,1,0,0,0,1745,10565,1,0,0,0,1747,10573,1,0,0,0,1749,10582,1,0,0,0,1751,10599,1,0,0,0,1753,10608,1,0,0,0,1755,10615,1,0,0,0,1757,10619,1,0,0,0,1759,10630,1,0,0,0,1761,10643,1,0,0,0,1763,10656,1,0,0,0,1765,10662,1,0,0,0,1767,10674,1,0,0,0,1769,10680,1,0,0,0,1771,10687,1,0,0,0,1773,10698,1,0,0,0,1775,10710,1,0,0,0,1777,10720,1,0,0,0,1779,10734,1,0,0,0,1781,10751,1,0,0,0,1783,10767,1,0,0,0,1785,10794,1,0,0,0,1787,10820,1,0,0,0,1789,10837,1,0,0,0,1791,10853,1,0,0,0,1793,10863,1,0,0,0,1795,10876,1,0,0,0,1797,10889,1,0,0,0,1799,10901,1,0,0,0,1801,10912,1,0,0,0,1803,10921,1,0,0,0,1805,10929,1,0,0,0,1807,10938,1,0,0,0,1809,10950,1,0,0,0,1811,10964,1,0,0,0,1813,10968,1,0,0,0,1815,10975,1,0,0,0,1817,10986,1,0,0,0,1819,10997,1,0,0,0,1821,11007,1,0,0,0,1823,11017,1,0,0,0,1825,11023,1,0,0,0,1827,11037,1,0,0,0,1829,11048,1,0,0,0,1831,11057,1,0,0,0,1833,11065,1,0,0,0,1835,11072,1,0,0,0,1837,11081,1,0,0,0,1839,11094,1,0,0,0,1841,11102,1,0,0,0,1843,11117,1,0,0,0,1845,11132,1,0,0,0,1847,11140,1,0,0,0,1849,11153,1,0,0,0,1851,11168,1,0,0,0,1853,11174,1,0,0,0,1855,11180,1,0,0,0,1857,11187,1,0,0,0,1859,11200,1,0,0,0,1861,11212,1,0,0,0,1863,11231,1,0,0,0,1865,11249,1,0,0,0,1867,11252,1,0,0,0,1869,11262,1,0,0,0,1871,11269,1,0,0,0,1873,11273,1,0,0,0,1875,11279,1,0,0,0,1877,11284,1,0,0,0,1879,11290,1,0,0,0,1881,11295,1,0,0,0,1883,11301,1,0,0,0,1885,11310,1,0,0,0,1887,11319,1,0,0,0,1889,11328,1,0,0,0,1891,11344,1,0,0,0,1893,11356,1,0,0,0,1895,11368,1,0,0,0,1897,11377,1,0,0,0,1899,11391,1,0,0,0,1901,11403,1,0,0,0,1903,11414,1,0,0,0,1905,11424,1,0,0,0,1907,11428,1,0,0,0,1909,11442,1,0,0,0,1911,11455,1,0,0,0,1913,11465,1,0,0,0,1915,11480,1,0,0,0,1917,11494,1,0,0,0,1919,11508,1,0,0,0,1921,11521,1,0,0,0,1923,11545,1,0,0,0,1925,11568,1,0,0,0,1927,11587,1,0,0,0,1929,11605,1,0,0,0,1931,11626,1,0,0,0,1933,11646,1,0,0,0,1935,11657,1,0,0,0,1937,11664,1,0,0,0,1939,11678,1,0,0,0,1941,11695,1,0,0,0,1943,11705,1,0,0,0,1945,11709,1,0,0,0,1947,11722,1,0,0,0,1949,11726,1,0,0,0,1951,11735,1,0,0,0,1953,11746,1,0,0,0,1955,11758,1,0,0,0,1957,11761,1,0,0,0,1959,11775,1,0,0,0,1961,11788,1,0,0,0,1963,11795,1,0,0,0,1965,11808,1,0,0,0,1967,11820,1,0,0,0,1969,11836,1,0,0,0,1971,11851,1,0,0,0,1973,11855,1,0,0,0,1975,11861,1,0,0,0,1977,11867,1,0,0,0,1979,11875,1,0,0,0,1981,11880,1,0,0,0,1983,11887,1,0,0,0,1985,11900,1,0,0,0,1987,11913,1,0,0,0,1989,11921,1,0,0,0,1991,11927,1,0,0,0,1993,11937,1,0,0,0,1995,11942,1,0,0,0,1997,11948,1,0,0,0,1999,11960,1,0,0,0,2001,11987,1,0,0,0,2003,12e3,1,0,0,0,2005,12004,1,0,0,0,2007,12009,1,0,0,0,2009,12014,1,0,0,0,2011,12026,1,0,0,0,2013,12031,1,0,0,0,2015,12035,1,0,0,0,2017,12041,1,0,0,0,2019,12049,1,0,0,0,2021,12077,1,0,0,0,2023,12082,1,0,0,0,2025,12087,1,0,0,0,2027,12098,1,0,0,0,2029,12105,1,0,0,0,2031,12117,1,0,0,0,2033,12125,1,0,0,0,2035,12137,1,0,0,0,2037,12147,1,0,0,0,2039,12156,1,0,0,0,2041,12165,1,0,0,0,2043,12175,1,0,0,0,2045,12187,1,0,0,0,2047,12199,1,0,0,0,2049,12210,1,0,0,0,2051,12224,1,0,0,0,2053,12237,1,0,0,0,2055,12249,1,0,0,0,2057,12261,1,0,0,0,2059,12273,1,0,0,0,2061,12285,1,0,0,0,2063,12295,1,0,0,0,2065,12311,1,0,0,0,2067,12331,1,0,0,0,2069,12350,1,0,0,0,2071,12369,1,0,0,0,2073,12399,1,0,0,0,2075,12428,1,0,0,0,2077,12448,1,0,0,0,2079,12467,1,0,0,0,2081,12480,1,0,0,0,2083,12496,1,0,0,0,2085,12512,1,0,0,0,2087,12527,1,0,0,0,2089,12544,1,0,0,0,2091,12560,1,0,0,0,2093,12574,1,0,0,0,2095,12586,1,0,0,0,2097,12597,1,0,0,0,2099,12609,1,0,0,0,2101,12625,1,0,0,0,2103,12640,1,0,0,0,2105,12662,1,0,0,0,2107,12683,1,0,0,0,2109,12700,1,0,0,0,2111,12719,1,0,0,0,2113,12739,1,0,0,0,2115,12752,1,0,0,0,2117,12764,1,0,0,0,2119,12781,1,0,0,0,2121,12797,1,0,0,0,2123,12807,1,0,0,0,2125,12823,1,0,0,0,2127,12838,1,0,0,0,2129,12857,1,0,0,0,2131,12875,1,0,0,0,2133,12883,1,0,0,0,2135,12897,1,0,0,0,2137,12914,1,0,0,0,2139,12925,1,0,0,0,2141,12934,1,0,0,0,2143,12944,1,0,0,0,2145,12949,1,0,0,0,2147,12954,1,0,0,0,2149,12962,1,0,0,0,2151,12978,1,0,0,0,2153,12986,1,0,0,0,2155,12998,1,0,0,0,2157,13002,1,0,0,0,2159,13011,1,0,0,0,2161,13024,1,0,0,0,2163,13038,1,0,0,0,2165,13050,1,0,0,0,2167,13062,1,0,0,0,2169,13070,1,0,0,0,2171,13080,1,0,0,0,2173,13088,1,0,0,0,2175,13099,1,0,0,0,2177,13119,1,0,0,0,2179,13125,1,0,0,0,2181,13136,1,0,0,0,2183,13156,1,0,0,0,2185,13162,1,0,0,0,2187,13177,1,0,0,0,2189,13187,1,0,0,0,2191,13193,1,0,0,0,2193,13198,1,0,0,0,2195,13209,1,0,0,0,2197,13236,1,0,0,0,2199,13244,1,0,0,0,2201,13278,1,0,0,0,2203,13286,1,0,0,0,2205,13297,1,0,0,0,2207,13311,1,0,0,0,2209,13318,1,0,0,0,2211,13327,1,0,0,0,2213,13329,1,0,0,0,2215,13331,1,0,0,0,2217,13334,1,0,0,0,2219,13337,1,0,0,0,2221,13340,1,0,0,0,2223,13343,1,0,0,0,2225,13346,1,0,0,0,2227,13349,1,0,0,0,2229,13352,1,0,0,0,2231,13355,1,0,0,0,2233,13358,1,0,0,0,2235,13360,1,0,0,0,2237,13362,1,0,0,0,2239,13364,1,0,0,0,2241,13366,1,0,0,0,2243,13368,1,0,0,0,2245,13372,1,0,0,0,2247,13376,1,0,0,0,2249,13378,1,0,0,0,2251,13380,1,0,0,0,2253,13382,1,0,0,0,2255,13384,1,0,0,0,2257,13386,1,0,0,0,2259,13388,1,0,0,0,2261,13390,1,0,0,0,2263,13392,1,0,0,0,2265,13394,1,0,0,0,2267,13396,1,0,0,0,2269,13398,1,0,0,0,2271,13400,1,0,0,0,2273,13402,1,0,0,0,2275,13404,1,0,0,0,2277,13406,1,0,0,0,2279,13408,1,0,0,0,2281,13410,1,0,0,0,2283,13412,1,0,0,0,2285,13414,1,0,0,0,2287,13416,1,0,0,0,2289,13421,1,0,0,0,2291,13423,1,0,0,0,2293,13428,1,0,0,0,2295,13434,1,0,0,0,2297,13440,1,0,0,0,2299,13443,1,0,0,0,2301,13466,1,0,0,0,2303,13509,1,0,0,0,2305,13511,1,0,0,0,2307,13514,1,0,0,0,2309,13516,1,0,0,0,2311,13519,1,0,0,0,2313,13522,1,0,0,0,2315,13524,1,0,0,0,2317,13526,1,0,0,0,2319,13529,1,0,0,0,2321,13538,1,0,0,0,2323,13589,1,0,0,0,2325,13591,1,0,0,0,2327,13603,1,0,0,0,2329,13617,1,0,0,0,2331,13630,1,0,0,0,2333,13643,1,0,0,0,2335,13654,1,0,0,0,2337,13656,1,0,0,0,2339,13658,1,0,0,0,2341,13697,1,0,0,0,2343,13699,1,0,0,0,2345,2347,7,0,0,0,2346,2345,1,0,0,0,2347,2348,1,0,0,0,2348,2346,1,0,0,0,2348,2349,1,0,0,0,2349,2350,1,0,0,0,2350,2351,6,0,0,0,2351,2,1,0,0,0,2352,2353,5,47,0,0,2353,2354,5,42,0,0,2354,2355,5,33,0,0,2355,2357,1,0,0,0,2356,2358,9,0,0,0,2357,2356,1,0,0,0,2358,2359,1,0,0,0,2359,2360,1,0,0,0,2359,2357,1,0,0,0,2360,2361,1,0,0,0,2361,2362,5,42,0,0,2362,2363,5,47,0,0,2363,2364,1,0,0,0,2364,2365,6,1,1,0,2365,4,1,0,0,0,2366,2367,5,47,0,0,2367,2368,5,42,0,0,2368,2372,1,0,0,0,2369,2371,9,0,0,0,2370,2369,1,0,0,0,2371,2374,1,0,0,0,2372,2373,1,0,0,0,2372,2370,1,0,0,0,2373,2375,1,0,0,0,2374,2372,1,0,0,0,2375,2376,5,42,0,0,2376,2377,5,47,0,0,2377,2378,1,0,0,0,2378,2379,6,2,1,0,2379,6,1,0,0,0,2380,2381,5,45,0,0,2381,2382,5,45,0,0,2382,2386,1,0,0,0,2383,2385,7,1,0,0,2384,2383,1,0,0,0,2385,2388,1,0,0,0,2386,2384,1,0,0,0,2386,2387,1,0,0,0,2387,2391,1,0,0,0,2388,2386,1,0,0,0,2389,2391,5,35,0,0,2390,2380,1,0,0,0,2390,2389,1,0,0,0,2391,2395,1,0,0,0,2392,2394,8,2,0,0,2393,2392,1,0,0,0,2394,2397,1,0,0,0,2395,2393,1,0,0,0,2395,2396,1,0,0,0,2396,2403,1,0,0,0,2397,2395,1,0,0,0,2398,2400,5,13,0,0,2399,2398,1,0,0,0,2399,2400,1,0,0,0,2400,2401,1,0,0,0,2401,2404,5,10,0,0,2402,2404,5,0,0,1,2403,2399,1,0,0,0,2403,2402,1,0,0,0,2404,2416,1,0,0,0,2405,2406,5,45,0,0,2406,2407,5,45,0,0,2407,2413,1,0,0,0,2408,2410,5,13,0,0,2409,2408,1,0,0,0,2409,2410,1,0,0,0,2410,2411,1,0,0,0,2411,2414,5,10,0,0,2412,2414,5,0,0,1,2413,2409,1,0,0,0,2413,2412,1,0,0,0,2414,2416,1,0,0,0,2415,2390,1,0,0,0,2415,2405,1,0,0,0,2416,2417,1,0,0,0,2417,2418,6,3,1,0,2418,8,1,0,0,0,2419,2420,7,3,0,0,2420,2421,7,4,0,0,2421,2422,7,4,0,0,2422,10,1,0,0,0,2423,2424,7,3,0,0,2424,2425,7,5,0,0,2425,2426,7,5,0,0,2426,12,1,0,0,0,2427,2428,7,3,0,0,2428,2429,7,5,0,0,2429,2430,7,6,0,0,2430,2431,7,7,0,0,2431,2432,7,8,0,0,2432,14,1,0,0,0,2433,2434,7,3,0,0,2434,2435,7,5,0,0,2435,2436,7,9,0,0,2436,2437,7,3,0,0,2437,2438,7,10,0,0,2438,2439,7,11,0,0,2439,16,1,0,0,0,2440,2441,7,3,0,0,2441,2442,7,12,0,0,2442,2443,7,3,0,0,2443,2444,7,5,0,0,2444,2445,7,10,0,0,2445,2446,7,13,0,0,2446,2447,7,7,0,0,2447,18,1,0,0,0,2448,2449,7,3,0,0,2449,2450,7,12,0,0,2450,2451,7,4,0,0,2451,20,1,0,0,0,2452,2453,7,3,0,0,2453,2454,7,8,0,0,2454,2455,7,8,0,0,2455,2456,7,3,0,0,2456,2457,7,10,0,0,2457,22,1,0,0,0,2458,2459,7,3,0,0,2459,2460,7,11,0,0,2460,24,1,0,0,0,2461,2462,7,3,0,0,2462,2463,7,11,0,0,2463,2464,7,14,0,0,2464,26,1,0,0,0,2465,2466,7,3,0,0,2466,2467,7,6,0,0,2467,2468,7,6,0,0,2468,2469,7,8,0,0,2469,2470,7,15,0,0,2470,2471,7,16,0,0,2471,2472,7,17,0,0,2472,2473,7,6,0,0,2473,2474,7,7,0,0,2474,28,1,0,0,0,2475,2476,7,16,0,0,2476,2477,7,7,0,0,2477,2478,7,18,0,0,2478,2479,7,19,0,0,2479,2480,7,8,0,0,2480,2481,7,7,0,0,2481,30,1,0,0,0,2482,2483,7,16,0,0,2483,2484,7,7,0,0,2484,2485,7,6,0,0,2485,2486,7,9,0,0,2486,2487,7,7,0,0,2487,2488,7,7,0,0,2488,2489,7,12,0,0,2489,32,1,0,0,0,2490,2491,7,16,0,0,2491,2492,7,19,0,0,2492,2493,7,6,0,0,2493,2494,7,20,0,0,2494,34,1,0,0,0,2495,2496,7,16,0,0,2496,2497,7,17,0,0,2497,2498,7,14,0,0,2498,2499,7,21,0,0,2499,2500,7,7,0,0,2500,2501,7,6,0,0,2501,2502,7,11,0,0,2502,36,1,0,0,0,2503,2504,7,16,0,0,2504,2505,7,10,0,0,2505,38,1,0,0,0,2506,2507,7,14,0,0,2507,2508,7,3,0,0,2508,2509,7,5,0,0,2509,2510,7,5,0,0,2510,40,1,0,0,0,2511,2512,7,14,0,0,2512,2513,7,3,0,0,2513,2514,7,11,0,0,2514,2515,7,14,0,0,2515,2516,7,3,0,0,2516,2517,7,4,0,0,2517,2518,7,7,0,0,2518,42,1,0,0,0,2519,2520,7,14,0,0,2520,2521,7,3,0,0,2521,2522,7,11,0,0,2522,2523,7,7,0,0,2523,44,1,0,0,0,2524,2525,7,14,0,0,2525,2526,7,3,0,0,2526,2527,7,11,0,0,2527,2528,7,6,0,0,2528,46,1,0,0,0,2529,2530,7,14,0,0,2530,2531,7,20,0,0,2531,2532,7,3,0,0,2532,2533,7,12,0,0,2533,2534,7,22,0,0,2534,2535,7,7,0,0,2535,48,1,0,0,0,2536,2537,7,14,0,0,2537,2538,7,20,0,0,2538,2539,7,3,0,0,2539,2540,7,8,0,0,2540,2541,7,3,0,0,2541,2542,7,14,0,0,2542,2543,7,6,0,0,2543,2544,7,7,0,0,2544,2545,7,8,0,0,2545,50,1,0,0,0,2546,2547,7,14,0,0,2547,2548,7,20,0,0,2548,2549,7,7,0,0,2549,2550,7,14,0,0,2550,2551,7,21,0,0,2551,52,1,0,0,0,2552,2553,7,14,0,0,2553,2554,7,19,0,0,2554,2555,7,5,0,0,2555,2556,7,5,0,0,2556,2557,7,3,0,0,2557,2558,7,6,0,0,2558,2559,7,7,0,0,2559,54,1,0,0,0,2560,2561,7,14,0,0,2561,2562,7,19,0,0,2562,2563,7,5,0,0,2563,2564,7,17,0,0,2564,2565,7,23,0,0,2565,2566,7,12,0,0,2566,56,1,0,0,0,2567,2568,7,14,0,0,2568,2569,7,19,0,0,2569,2570,7,12,0,0,2570,2571,7,4,0,0,2571,2572,7,15,0,0,2572,2573,7,6,0,0,2573,2574,7,15,0,0,2574,2575,7,19,0,0,2575,2576,7,12,0,0,2576,58,1,0,0,0,2577,2578,7,14,0,0,2578,2579,7,19,0,0,2579,2580,7,12,0,0,2580,2581,7,11,0,0,2581,2582,7,6,0,0,2582,2583,7,8,0,0,2583,2584,7,3,0,0,2584,2585,7,15,0,0,2585,2586,7,12,0,0,2586,2587,7,6,0,0,2587,60,1,0,0,0,2588,2589,7,14,0,0,2589,2590,7,19,0,0,2590,2591,7,12,0,0,2591,2592,7,6,0,0,2592,2593,7,15,0,0,2593,2594,7,12,0,0,2594,2595,7,17,0,0,2595,2596,7,7,0,0,2596,62,1,0,0,0,2597,2598,7,14,0,0,2598,2599,7,19,0,0,2599,2600,7,12,0,0,2600,2601,7,24,0,0,2601,2602,7,7,0,0,2602,2603,7,8,0,0,2603,2604,7,6,0,0,2604,64,1,0,0,0,2605,2606,7,14,0,0,2606,2607,7,8,0,0,2607,2608,7,7,0,0,2608,2609,7,3,0,0,2609,2610,7,6,0,0,2610,2611,7,7,0,0,2611,66,1,0,0,0,2612,2613,7,14,0,0,2613,2614,7,8,0,0,2614,2615,7,19,0,0,2615,2616,7,11,0,0,2616,2617,7,11,0,0,2617,68,1,0,0,0,2618,2619,7,14,0,0,2619,2620,7,17,0,0,2620,2621,7,8,0,0,2621,2622,7,8,0,0,2622,2623,7,7,0,0,2623,2624,7,12,0,0,2624,2625,7,6,0,0,2625,70,1,0,0,0,2626,2627,7,14,0,0,2627,2628,7,17,0,0,2628,2629,7,8,0,0,2629,2630,7,8,0,0,2630,2631,7,7,0,0,2631,2632,7,12,0,0,2632,2633,7,6,0,0,2633,2634,5,95,0,0,2634,2635,7,8,0,0,2635,2636,7,19,0,0,2636,2637,7,5,0,0,2637,2638,7,7,0,0,2638,72,1,0,0,0,2639,2640,7,14,0,0,2640,2641,7,17,0,0,2641,2642,7,8,0,0,2642,2643,7,8,0,0,2643,2644,7,7,0,0,2644,2645,7,12,0,0,2645,2646,7,6,0,0,2646,2647,5,95,0,0,2647,2648,7,17,0,0,2648,2649,7,11,0,0,2649,2650,7,7,0,0,2650,2651,7,8,0,0,2651,74,1,0,0,0,2652,2653,7,14,0,0,2653,2654,7,17,0,0,2654,2655,7,8,0,0,2655,2656,7,11,0,0,2656,2657,7,19,0,0,2657,2658,7,8,0,0,2658,76,1,0,0,0,2659,2660,7,4,0,0,2660,2661,7,3,0,0,2661,2662,7,6,0,0,2662,2663,7,3,0,0,2663,2664,7,16,0,0,2664,2665,7,3,0,0,2665,2666,7,11,0,0,2666,2667,7,7,0,0,2667,78,1,0,0,0,2668,2669,7,4,0,0,2669,2670,7,3,0,0,2670,2671,7,6,0,0,2671,2672,7,3,0,0,2672,2673,7,16,0,0,2673,2674,7,3,0,0,2674,2675,7,11,0,0,2675,2676,7,7,0,0,2676,2677,7,11,0,0,2677,80,1,0,0,0,2678,2679,7,4,0,0,2679,2680,7,7,0,0,2680,2681,7,14,0,0,2681,2682,7,5,0,0,2682,2683,7,3,0,0,2683,2684,7,8,0,0,2684,2685,7,7,0,0,2685,82,1,0,0,0,2686,2687,7,4,0,0,2687,2688,7,7,0,0,2688,2689,7,18,0,0,2689,2690,7,3,0,0,2690,2691,7,17,0,0,2691,2692,7,5,0,0,2692,2693,7,6,0,0,2693,84,1,0,0,0,2694,2695,7,4,0,0,2695,2696,7,7,0,0,2696,2697,7,5,0,0,2697,2698,7,3,0,0,2698,2699,7,10,0,0,2699,2700,7,7,0,0,2700,2701,7,4,0,0,2701,86,1,0,0,0,2702,2703,7,4,0,0,2703,2704,7,7,0,0,2704,2705,7,5,0,0,2705,2706,7,7,0,0,2706,2707,7,6,0,0,2707,2708,7,7,0,0,2708,88,1,0,0,0,2709,2710,7,4,0,0,2710,2711,7,7,0,0,2711,2712,7,11,0,0,2712,2713,7,14,0,0,2713,90,1,0,0,0,2714,2715,7,4,0,0,2715,2716,7,7,0,0,2716,2717,7,11,0,0,2717,2718,7,14,0,0,2718,2719,7,8,0,0,2719,2720,7,15,0,0,2720,2721,7,16,0,0,2721,2722,7,7,0,0,2722,92,1,0,0,0,2723,2724,7,4,0,0,2724,2725,7,7,0,0,2725,2726,7,6,0,0,2726,2727,7,7,0,0,2727,2728,7,8,0,0,2728,2729,7,23,0,0,2729,2730,7,15,0,0,2730,2731,7,12,0,0,2731,2732,7,15,0,0,2732,2733,7,11,0,0,2733,2734,7,6,0,0,2734,2735,7,15,0,0,2735,2736,7,14,0,0,2736,94,1,0,0,0,2737,2738,7,4,0,0,2738,2739,7,15,0,0,2739,2740,7,3,0,0,2740,2741,7,22,0,0,2741,2742,7,12,0,0,2742,2743,7,19,0,0,2743,2744,7,11,0,0,2744,2745,7,6,0,0,2745,2746,7,15,0,0,2746,2747,7,14,0,0,2747,2748,7,11,0,0,2748,96,1,0,0,0,2749,2750,7,4,0,0,2750,2751,7,15,0,0,2751,2752,7,11,0,0,2752,2753,7,6,0,0,2753,2754,7,15,0,0,2754,2755,7,12,0,0,2755,2756,7,14,0,0,2756,2757,7,6,0,0,2757,98,1,0,0,0,2758,2759,7,4,0,0,2759,2760,7,15,0,0,2760,2761,7,11,0,0,2761,2762,7,6,0,0,2762,2763,7,15,0,0,2763,2764,7,12,0,0,2764,2765,7,14,0,0,2765,2766,7,6,0,0,2766,2767,7,8,0,0,2767,2768,7,19,0,0,2768,2769,7,9,0,0,2769,100,1,0,0,0,2770,2771,7,4,0,0,2771,2772,7,8,0,0,2772,2773,7,19,0,0,2773,2774,7,25,0,0,2774,102,1,0,0,0,2775,2776,7,7,0,0,2776,2777,7,3,0,0,2777,2778,7,14,0,0,2778,2779,7,20,0,0,2779,104,1,0,0,0,2780,2781,7,7,0,0,2781,2782,7,5,0,0,2782,2783,7,11,0,0,2783,2784,7,7,0,0,2784,106,1,0,0,0,2785,2786,7,7,0,0,2786,2787,7,5,0,0,2787,2788,7,11,0,0,2788,2789,7,7,0,0,2789,2790,7,15,0,0,2790,2791,7,18,0,0,2791,108,1,0,0,0,2792,2793,7,7,0,0,2793,2794,7,23,0,0,2794,2795,7,25,0,0,2795,2796,7,6,0,0,2796,2797,7,10,0,0,2797,110,1,0,0,0,2798,2799,7,7,0,0,2799,2800,7,12,0,0,2800,2801,7,14,0,0,2801,2802,7,5,0,0,2802,2803,7,19,0,0,2803,2804,7,11,0,0,2804,2805,7,7,0,0,2805,2806,7,4,0,0,2806,112,1,0,0,0,2807,2808,7,7,0,0,2808,2809,7,12,0,0,2809,2810,7,18,0,0,2810,2811,7,19,0,0,2811,2812,7,8,0,0,2812,2813,7,14,0,0,2813,2814,7,7,0,0,2814,2815,7,4,0,0,2815,114,1,0,0,0,2816,2817,7,7,0,0,2817,2818,7,11,0,0,2818,2819,7,14,0,0,2819,2820,7,3,0,0,2820,2821,7,25,0,0,2821,2822,7,7,0,0,2822,2823,7,4,0,0,2823,116,1,0,0,0,2824,2825,7,7,0,0,2825,2826,7,26,0,0,2826,2827,7,14,0,0,2827,2828,7,7,0,0,2828,2829,7,25,0,0,2829,2830,7,6,0,0,2830,118,1,0,0,0,2831,2832,7,7,0,0,2832,2833,7,26,0,0,2833,2834,7,15,0,0,2834,2835,7,11,0,0,2835,2836,7,6,0,0,2836,2837,7,11,0,0,2837,120,1,0,0,0,2838,2839,7,7,0,0,2839,2840,7,26,0,0,2840,2841,7,15,0,0,2841,2842,7,6,0,0,2842,122,1,0,0,0,2843,2844,7,7,0,0,2844,2845,7,26,0,0,2845,2846,7,25,0,0,2846,2847,7,5,0,0,2847,2848,7,3,0,0,2848,2849,7,15,0,0,2849,2850,7,12,0,0,2850,124,1,0,0,0,2851,2852,7,18,0,0,2852,2853,7,3,0,0,2853,2854,7,5,0,0,2854,2855,7,11,0,0,2855,2856,7,7,0,0,2856,126,1,0,0,0,2857,2858,7,18,0,0,2858,2859,7,7,0,0,2859,2860,7,6,0,0,2860,2861,7,14,0,0,2861,2862,7,20,0,0,2862,128,1,0,0,0,2863,2864,7,18,0,0,2864,2865,7,19,0,0,2865,2866,7,8,0,0,2866,130,1,0,0,0,2867,2868,7,18,0,0,2868,2869,7,19,0,0,2869,2870,7,8,0,0,2870,2871,7,14,0,0,2871,2872,7,7,0,0,2872,132,1,0,0,0,2873,2874,7,18,0,0,2874,2875,7,19,0,0,2875,2876,7,8,0,0,2876,2877,7,7,0,0,2877,2878,7,15,0,0,2878,2879,7,22,0,0,2879,2880,7,12,0,0,2880,134,1,0,0,0,2881,2882,7,18,0,0,2882,2883,7,8,0,0,2883,2884,7,19,0,0,2884,2885,7,23,0,0,2885,136,1,0,0,0,2886,2887,7,18,0,0,2887,2888,7,17,0,0,2888,2889,7,5,0,0,2889,2890,7,5,0,0,2890,2891,7,6,0,0,2891,2892,7,7,0,0,2892,2893,7,26,0,0,2893,2894,7,6,0,0,2894,138,1,0,0,0,2895,2896,7,22,0,0,2896,2897,7,7,0,0,2897,2898,7,12,0,0,2898,2899,7,7,0,0,2899,2900,7,8,0,0,2900,2901,7,3,0,0,2901,2902,7,6,0,0,2902,2903,7,7,0,0,2903,2904,7,4,0,0,2904,140,1,0,0,0,2905,2906,7,22,0,0,2906,2907,7,7,0,0,2907,2908,7,6,0,0,2908,142,1,0,0,0,2909,2910,7,22,0,0,2910,2911,7,8,0,0,2911,2912,7,3,0,0,2912,2913,7,12,0,0,2913,2914,7,6,0,0,2914,144,1,0,0,0,2915,2916,7,22,0,0,2916,2917,7,8,0,0,2917,2918,7,19,0,0,2918,2919,7,17,0,0,2919,2920,7,25,0,0,2920,146,1,0,0,0,2921,2922,7,20,0,0,2922,2923,7,3,0,0,2923,2924,7,24,0,0,2924,2925,7,15,0,0,2925,2926,7,12,0,0,2926,2927,7,22,0,0,2927,148,1,0,0,0,2928,2929,7,20,0,0,2929,2930,7,15,0,0,2930,2931,7,22,0,0,2931,2932,7,20,0,0,2932,2933,5,95,0,0,2933,2934,7,25,0,0,2934,2935,7,8,0,0,2935,2936,7,15,0,0,2936,2937,7,19,0,0,2937,2938,7,8,0,0,2938,2939,7,15,0,0,2939,2940,7,6,0,0,2940,2941,7,10,0,0,2941,150,1,0,0,0,2942,2943,7,20,0,0,2943,2944,7,15,0,0,2944,2945,7,11,0,0,2945,2946,7,6,0,0,2946,2947,7,19,0,0,2947,2948,7,22,0,0,2948,2949,7,8,0,0,2949,2950,7,3,0,0,2950,2951,7,23,0,0,2951,152,1,0,0,0,2952,2953,7,15,0,0,2953,2954,7,18,0,0,2954,154,1,0,0,0,2955,2956,7,15,0,0,2956,2957,7,22,0,0,2957,2958,7,12,0,0,2958,2959,7,19,0,0,2959,2960,7,8,0,0,2960,2961,7,7,0,0,2961,156,1,0,0,0,2962,2963,7,15,0,0,2963,2964,7,22,0,0,2964,2965,7,12,0,0,2965,2966,7,19,0,0,2966,2967,7,8,0,0,2967,2968,7,7,0,0,2968,2969,7,4,0,0,2969,158,1,0,0,0,2970,2971,7,15,0,0,2971,2972,7,12,0,0,2972,160,1,0,0,0,2973,2974,7,15,0,0,2974,2975,7,12,0,0,2975,2976,7,4,0,0,2976,2977,7,7,0,0,2977,2978,7,26,0,0,2978,162,1,0,0,0,2979,2980,7,15,0,0,2980,2981,7,12,0,0,2981,2982,7,18,0,0,2982,2983,7,15,0,0,2983,2984,7,5,0,0,2984,2985,7,7,0,0,2985,164,1,0,0,0,2986,2987,7,15,0,0,2987,2988,7,12,0,0,2988,2989,7,12,0,0,2989,2990,7,7,0,0,2990,2991,7,8,0,0,2991,166,1,0,0,0,2992,2993,7,15,0,0,2993,2994,7,12,0,0,2994,2995,7,19,0,0,2995,2996,7,17,0,0,2996,2997,7,6,0,0,2997,168,1,0,0,0,2998,2999,7,15,0,0,2999,3e3,7,12,0,0,3e3,3001,7,11,0,0,3001,3002,7,7,0,0,3002,3003,7,8,0,0,3003,3004,7,6,0,0,3004,170,1,0,0,0,3005,3006,7,15,0,0,3006,3007,7,12,0,0,3007,3008,7,6,0,0,3008,3009,7,7,0,0,3009,3010,7,8,0,0,3010,3011,7,24,0,0,3011,3012,7,3,0,0,3012,3013,7,5,0,0,3013,172,1,0,0,0,3014,3015,7,15,0,0,3015,3016,7,12,0,0,3016,3017,7,6,0,0,3017,3018,7,19,0,0,3018,174,1,0,0,0,3019,3020,7,15,0,0,3020,3021,7,11,0,0,3021,176,1,0,0,0,3022,3023,7,15,0,0,3023,3024,7,6,0,0,3024,3025,7,7,0,0,3025,3026,7,8,0,0,3026,3027,7,3,0,0,3027,3028,7,6,0,0,3028,3029,7,7,0,0,3029,178,1,0,0,0,3030,3031,7,27,0,0,3031,3032,7,19,0,0,3032,3033,7,15,0,0,3033,3034,7,12,0,0,3034,180,1,0,0,0,3035,3036,7,21,0,0,3036,3037,7,7,0,0,3037,3038,7,10,0,0,3038,182,1,0,0,0,3039,3040,7,21,0,0,3040,3041,7,7,0,0,3041,3042,7,10,0,0,3042,3043,7,11,0,0,3043,184,1,0,0,0,3044,3045,7,21,0,0,3045,3046,7,15,0,0,3046,3047,7,5,0,0,3047,3048,7,5,0,0,3048,186,1,0,0,0,3049,3050,7,5,0,0,3050,3051,7,3,0,0,3051,3052,7,6,0,0,3052,3053,7,7,0,0,3053,3054,7,8,0,0,3054,3055,7,3,0,0,3055,3056,7,5,0,0,3056,188,1,0,0,0,3057,3058,7,5,0,0,3058,3059,7,7,0,0,3059,3060,7,3,0,0,3060,3061,7,4,0,0,3061,3062,7,15,0,0,3062,3063,7,12,0,0,3063,3064,7,22,0,0,3064,190,1,0,0,0,3065,3066,7,5,0,0,3066,3067,7,7,0,0,3067,3068,7,3,0,0,3068,3069,7,24,0,0,3069,3070,7,7,0,0,3070,192,1,0,0,0,3071,3072,7,5,0,0,3072,3073,7,7,0,0,3073,3074,7,18,0,0,3074,3075,7,6,0,0,3075,194,1,0,0,0,3076,3077,7,5,0,0,3077,3078,7,15,0,0,3078,3079,7,21,0,0,3079,3080,7,7,0,0,3080,196,1,0,0,0,3081,3082,7,5,0,0,3082,3083,7,15,0,0,3083,3084,7,23,0,0,3084,3085,7,15,0,0,3085,3086,7,6,0,0,3086,198,1,0,0,0,3087,3088,7,5,0,0,3088,3089,7,15,0,0,3089,3090,7,12,0,0,3090,3091,7,7,0,0,3091,3092,7,3,0,0,3092,3093,7,8,0,0,3093,200,1,0,0,0,3094,3095,7,5,0,0,3095,3096,7,15,0,0,3096,3097,7,12,0,0,3097,3098,7,7,0,0,3098,3099,7,11,0,0,3099,202,1,0,0,0,3100,3101,7,5,0,0,3101,3102,7,19,0,0,3102,3103,7,3,0,0,3103,3104,7,4,0,0,3104,204,1,0,0,0,3105,3106,7,5,0,0,3106,3107,7,19,0,0,3107,3108,7,14,0,0,3108,3109,7,21,0,0,3109,206,1,0,0,0,3110,3111,7,5,0,0,3111,3112,7,19,0,0,3112,3113,7,14,0,0,3113,3114,7,21,0,0,3114,3115,7,7,0,0,3115,3116,7,4,0,0,3116,208,1,0,0,0,3117,3118,7,5,0,0,3118,3119,7,19,0,0,3119,3120,7,19,0,0,3120,3121,7,25,0,0,3121,210,1,0,0,0,3122,3123,7,5,0,0,3123,3124,7,19,0,0,3124,3125,7,9,0,0,3125,3126,5,95,0,0,3126,3127,7,25,0,0,3127,3128,7,8,0,0,3128,3129,7,15,0,0,3129,3130,7,19,0,0,3130,3131,7,8,0,0,3131,3132,7,15,0,0,3132,3133,7,6,0,0,3133,3134,7,10,0,0,3134,212,1,0,0,0,3135,3136,7,23,0,0,3136,3137,7,3,0,0,3137,3138,7,11,0,0,3138,3139,7,6,0,0,3139,3140,7,7,0,0,3140,3141,7,8,0,0,3141,3142,5,95,0,0,3142,3143,7,16,0,0,3143,3144,7,15,0,0,3144,3145,7,12,0,0,3145,3146,7,4,0,0,3146,214,1,0,0,0,3147,3148,7,23,0,0,3148,3149,7,3,0,0,3149,3150,7,11,0,0,3150,3151,7,6,0,0,3151,3152,7,7,0,0,3152,3153,7,8,0,0,3153,3154,5,95,0,0,3154,3155,7,11,0,0,3155,3156,7,11,0,0,3156,3157,7,5,0,0,3157,3158,5,95,0,0,3158,3159,7,24,0,0,3159,3160,7,7,0,0,3160,3161,7,8,0,0,3161,3162,7,15,0,0,3162,3163,7,18,0,0,3163,3164,7,10,0,0,3164,3165,5,95,0,0,3165,3166,7,11,0,0,3166,3167,7,7,0,0,3167,3168,7,8,0,0,3168,3169,7,24,0,0,3169,3170,7,7,0,0,3170,3171,7,8,0,0,3171,3172,5,95,0,0,3172,3173,7,14,0,0,3173,3174,7,7,0,0,3174,3175,7,8,0,0,3175,3176,7,6,0,0,3176,216,1,0,0,0,3177,3178,7,23,0,0,3178,3179,7,3,0,0,3179,3180,7,6,0,0,3180,3181,7,14,0,0,3181,3182,7,20,0,0,3182,218,1,0,0,0,3183,3184,7,23,0,0,3184,3185,7,3,0,0,3185,3186,7,26,0,0,3186,3187,7,24,0,0,3187,3188,7,3,0,0,3188,3189,7,5,0,0,3189,3190,7,17,0,0,3190,3191,7,7,0,0,3191,220,1,0,0,0,3192,3193,7,23,0,0,3193,3194,7,15,0,0,3194,3195,7,12,0,0,3195,3196,7,24,0,0,3196,3197,7,3,0,0,3197,3198,7,5,0,0,3198,3199,7,17,0,0,3199,3200,7,7,0,0,3200,222,1,0,0,0,3201,3202,7,23,0,0,3202,3203,7,19,0,0,3203,3204,7,4,0,0,3204,3205,7,15,0,0,3205,3206,7,18,0,0,3206,3207,7,15,0,0,3207,3208,7,7,0,0,3208,3209,7,11,0,0,3209,224,1,0,0,0,3210,3211,7,12,0,0,3211,3212,7,3,0,0,3212,3213,7,6,0,0,3213,3214,7,17,0,0,3214,3215,7,8,0,0,3215,3216,7,3,0,0,3216,3217,7,5,0,0,3217,226,1,0,0,0,3218,3219,7,12,0,0,3219,3220,7,19,0,0,3220,3221,7,6,0,0,3221,228,1,0,0,0,3222,3223,7,12,0,0,3223,3224,7,19,0,0,3224,3225,5,95,0,0,3225,3226,7,9,0,0,3226,3227,7,8,0,0,3227,3228,7,15,0,0,3228,3229,7,6,0,0,3229,3230,7,7,0,0,3230,3231,5,95,0,0,3231,3232,7,6,0,0,3232,3233,7,19,0,0,3233,3234,5,95,0,0,3234,3235,7,16,0,0,3235,3236,7,15,0,0,3236,3237,7,12,0,0,3237,3238,7,5,0,0,3238,3239,7,19,0,0,3239,3240,7,22,0,0,3240,230,1,0,0,0,3241,3242,7,12,0,0,3242,3243,7,17,0,0,3243,3244,7,5,0,0,3244,3245,7,5,0,0,3245,232,1,0,0,0,3246,3247,7,12,0,0,3247,3248,7,17,0,0,3248,3249,7,23,0,0,3249,3250,7,16,0,0,3250,3251,7,7,0,0,3251,3252,7,8,0,0,3252,234,1,0,0,0,3253,3254,7,19,0,0,3254,3255,7,12,0,0,3255,236,1,0,0,0,3256,3257,7,19,0,0,3257,3258,7,25,0,0,3258,3259,7,6,0,0,3259,3260,7,15,0,0,3260,3261,7,23,0,0,3261,3262,7,15,0,0,3262,3263,7,13,0,0,3263,3264,7,7,0,0,3264,238,1,0,0,0,3265,3266,7,19,0,0,3266,3267,7,25,0,0,3267,3268,7,6,0,0,3268,3269,7,15,0,0,3269,3270,7,19,0,0,3270,3271,7,12,0,0,3271,240,1,0,0,0,3272,3273,7,19,0,0,3273,3274,7,25,0,0,3274,3275,7,6,0,0,3275,3276,7,15,0,0,3276,3277,7,19,0,0,3277,3278,7,12,0,0,3278,3279,7,3,0,0,3279,3280,7,5,0,0,3280,242,1,0,0,0,3281,3282,7,19,0,0,3282,3283,7,25,0,0,3283,3284,7,6,0,0,3284,3285,7,15,0,0,3285,3286,7,19,0,0,3286,3287,7,12,0,0,3287,3288,7,3,0,0,3288,3289,7,5,0,0,3289,3290,7,5,0,0,3290,3291,7,10,0,0,3291,244,1,0,0,0,3292,3293,7,19,0,0,3293,3294,7,8,0,0,3294,246,1,0,0,0,3295,3296,7,19,0,0,3296,3297,7,8,0,0,3297,3298,7,4,0,0,3298,3299,7,7,0,0,3299,3300,7,8,0,0,3300,248,1,0,0,0,3301,3302,7,19,0,0,3302,3303,7,17,0,0,3303,3304,7,6,0,0,3304,250,1,0,0,0,3305,3306,7,19,0,0,3306,3307,7,17,0,0,3307,3308,7,6,0,0,3308,3309,7,7,0,0,3309,3310,7,8,0,0,3310,252,1,0,0,0,3311,3312,7,19,0,0,3312,3313,7,17,0,0,3313,3314,7,6,0,0,3314,3315,7,18,0,0,3315,3316,7,15,0,0,3316,3317,7,5,0,0,3317,3318,7,7,0,0,3318,254,1,0,0,0,3319,3320,7,19,0,0,3320,3321,7,24,0,0,3321,3322,7,7,0,0,3322,3323,7,8,0,0,3323,256,1,0,0,0,3324,3325,7,25,0,0,3325,3326,7,3,0,0,3326,3327,7,8,0,0,3327,3328,7,6,0,0,3328,3329,7,15,0,0,3329,3330,7,6,0,0,3330,3331,7,15,0,0,3331,3332,7,19,0,0,3332,3333,7,12,0,0,3333,258,1,0,0,0,3334,3335,7,25,0,0,3335,3336,7,8,0,0,3336,3337,7,15,0,0,3337,3338,7,23,0,0,3338,3339,7,3,0,0,3339,3340,7,8,0,0,3340,3341,7,10,0,0,3341,260,1,0,0,0,3342,3343,7,25,0,0,3343,3344,7,8,0,0,3344,3345,7,19,0,0,3345,3346,7,14,0,0,3346,3347,7,7,0,0,3347,3348,7,4,0,0,3348,3349,7,17,0,0,3349,3350,7,8,0,0,3350,3351,7,7,0,0,3351,262,1,0,0,0,3352,3353,7,25,0,0,3353,3354,7,17,0,0,3354,3355,7,8,0,0,3355,3356,7,22,0,0,3356,3357,7,7,0,0,3357,264,1,0,0,0,3358,3359,7,8,0,0,3359,3360,7,3,0,0,3360,3361,7,12,0,0,3361,3362,7,22,0,0,3362,3363,7,7,0,0,3363,266,1,0,0,0,3364,3365,7,8,0,0,3365,3366,7,7,0,0,3366,3367,7,3,0,0,3367,3368,7,4,0,0,3368,268,1,0,0,0,3369,3370,7,8,0,0,3370,3371,7,7,0,0,3371,3372,7,3,0,0,3372,3373,7,4,0,0,3373,3374,7,11,0,0,3374,270,1,0,0,0,3375,3376,7,8,0,0,3376,3377,7,7,0,0,3377,3378,7,18,0,0,3378,3379,7,7,0,0,3379,3380,7,8,0,0,3380,3381,7,7,0,0,3381,3382,7,12,0,0,3382,3383,7,14,0,0,3383,3384,7,7,0,0,3384,3385,7,11,0,0,3385,272,1,0,0,0,3386,3387,7,8,0,0,3387,3388,7,7,0,0,3388,3389,7,22,0,0,3389,3390,7,7,0,0,3390,3391,7,26,0,0,3391,3392,7,25,0,0,3392,274,1,0,0,0,3393,3394,7,8,0,0,3394,3395,7,7,0,0,3395,3396,7,5,0,0,3396,3397,7,7,0,0,3397,3398,7,3,0,0,3398,3399,7,11,0,0,3399,3400,7,7,0,0,3400,276,1,0,0,0,3401,3402,7,8,0,0,3402,3403,7,7,0,0,3403,3404,7,12,0,0,3404,3405,7,3,0,0,3405,3406,7,23,0,0,3406,3407,7,7,0,0,3407,278,1,0,0,0,3408,3409,7,8,0,0,3409,3410,7,7,0,0,3410,3411,7,25,0,0,3411,3412,7,7,0,0,3412,3413,7,3,0,0,3413,3414,7,6,0,0,3414,280,1,0,0,0,3415,3416,7,8,0,0,3416,3417,7,7,0,0,3417,3418,7,25,0,0,3418,3419,7,5,0,0,3419,3420,7,3,0,0,3420,3421,7,14,0,0,3421,3422,7,7,0,0,3422,282,1,0,0,0,3423,3424,7,8,0,0,3424,3425,7,7,0,0,3425,3426,7,28,0,0,3426,3427,7,17,0,0,3427,3428,7,15,0,0,3428,3429,7,8,0,0,3429,3430,7,7,0,0,3430,284,1,0,0,0,3431,3432,7,8,0,0,3432,3433,7,7,0,0,3433,3434,7,11,0,0,3434,3435,7,15,0,0,3435,3436,7,22,0,0,3436,3437,7,12,0,0,3437,3438,7,3,0,0,3438,3439,7,5,0,0,3439,286,1,0,0,0,3440,3441,7,8,0,0,3441,3442,7,7,0,0,3442,3443,7,11,0,0,3443,3444,7,6,0,0,3444,3445,7,8,0,0,3445,3446,7,15,0,0,3446,3447,7,14,0,0,3447,3448,7,6,0,0,3448,288,1,0,0,0,3449,3450,7,8,0,0,3450,3451,7,7,0,0,3451,3452,7,6,0,0,3452,3453,7,3,0,0,3453,3454,7,15,0,0,3454,3455,7,12,0,0,3455,290,1,0,0,0,3456,3457,7,8,0,0,3457,3458,7,7,0,0,3458,3459,7,6,0,0,3459,3460,7,17,0,0,3460,3461,7,8,0,0,3461,3462,7,12,0,0,3462,292,1,0,0,0,3463,3464,7,8,0,0,3464,3465,7,7,0,0,3465,3466,7,24,0,0,3466,3467,7,19,0,0,3467,3468,7,21,0,0,3468,3469,7,7,0,0,3469,294,1,0,0,0,3470,3471,7,8,0,0,3471,3472,7,15,0,0,3472,3473,7,22,0,0,3473,3474,7,20,0,0,3474,3475,7,6,0,0,3475,296,1,0,0,0,3476,3477,7,8,0,0,3477,3478,7,5,0,0,3478,3479,7,15,0,0,3479,3480,7,21,0,0,3480,3481,7,7,0,0,3481,298,1,0,0,0,3482,3483,7,11,0,0,3483,3484,7,14,0,0,3484,3485,7,20,0,0,3485,3486,7,7,0,0,3486,3487,7,23,0,0,3487,3488,7,3,0,0,3488,300,1,0,0,0,3489,3490,7,11,0,0,3490,3491,7,14,0,0,3491,3492,7,20,0,0,3492,3493,7,7,0,0,3493,3494,7,23,0,0,3494,3495,7,3,0,0,3495,3496,7,11,0,0,3496,302,1,0,0,0,3497,3498,7,11,0,0,3498,3499,7,7,0,0,3499,3500,7,5,0,0,3500,3501,7,7,0,0,3501,3502,7,14,0,0,3502,3503,7,6,0,0,3503,304,1,0,0,0,3504,3505,7,11,0,0,3505,3506,7,7,0,0,3506,3507,7,6,0,0,3507,306,1,0,0,0,3508,3509,7,11,0,0,3509,3510,7,7,0,0,3510,3511,7,25,0,0,3511,3512,7,3,0,0,3512,3513,7,8,0,0,3513,3514,7,3,0,0,3514,3515,7,6,0,0,3515,3516,7,19,0,0,3516,3517,7,8,0,0,3517,308,1,0,0,0,3518,3519,7,11,0,0,3519,3520,7,20,0,0,3520,3521,7,19,0,0,3521,3522,7,9,0,0,3522,310,1,0,0,0,3523,3524,7,11,0,0,3524,3525,7,15,0,0,3525,3526,7,22,0,0,3526,3527,7,12,0,0,3527,3528,7,3,0,0,3528,3529,7,5,0,0,3529,312,1,0,0,0,3530,3531,7,11,0,0,3531,3532,7,21,0,0,3532,3533,7,15,0,0,3533,3534,7,25,0,0,3534,314,1,0,0,0,3535,3536,7,11,0,0,3536,3537,7,21,0,0,3537,3538,7,15,0,0,3538,3539,7,25,0,0,3539,3540,5,95,0,0,3540,3541,7,28,0,0,3541,3542,7,17,0,0,3542,3543,7,7,0,0,3543,3544,7,8,0,0,3544,3545,7,10,0,0,3545,3546,5,95,0,0,3546,3547,7,8,0,0,3547,3548,7,7,0,0,3548,3549,7,9,0,0,3549,3550,7,8,0,0,3550,3551,7,15,0,0,3551,3552,7,6,0,0,3552,3553,7,7,0,0,3553,316,1,0,0,0,3554,3555,7,11,0,0,3555,3556,7,25,0,0,3556,3557,7,3,0,0,3557,3558,7,6,0,0,3558,3559,7,15,0,0,3559,3560,7,3,0,0,3560,3561,7,5,0,0,3561,318,1,0,0,0,3562,3563,7,11,0,0,3563,3564,7,28,0,0,3564,3565,7,5,0,0,3565,320,1,0,0,0,3566,3567,7,11,0,0,3567,3568,7,28,0,0,3568,3569,7,5,0,0,3569,3570,7,7,0,0,3570,3571,7,26,0,0,3571,3572,7,14,0,0,3572,3573,7,7,0,0,3573,3574,7,25,0,0,3574,3575,7,6,0,0,3575,3576,7,15,0,0,3576,3577,7,19,0,0,3577,3578,7,12,0,0,3578,322,1,0,0,0,3579,3580,7,11,0,0,3580,3581,7,28,0,0,3581,3582,7,5,0,0,3582,3583,7,11,0,0,3583,3584,7,6,0,0,3584,3585,7,3,0,0,3585,3586,7,6,0,0,3586,3587,7,7,0,0,3587,324,1,0,0,0,3588,3589,7,11,0,0,3589,3590,7,28,0,0,3590,3591,7,5,0,0,3591,3592,7,9,0,0,3592,3593,7,3,0,0,3593,3594,7,8,0,0,3594,3595,7,12,0,0,3595,3596,7,15,0,0,3596,3597,7,12,0,0,3597,3598,7,22,0,0,3598,326,1,0,0,0,3599,3600,7,11,0,0,3600,3601,7,28,0,0,3601,3602,7,5,0,0,3602,3603,5,95,0,0,3603,3604,7,16,0,0,3604,3605,7,15,0,0,3605,3606,7,22,0,0,3606,3607,5,95,0,0,3607,3608,7,8,0,0,3608,3609,7,7,0,0,3609,3610,7,11,0,0,3610,3611,7,17,0,0,3611,3612,7,5,0,0,3612,3613,7,6,0,0,3613,328,1,0,0,0,3614,3615,7,11,0,0,3615,3616,7,28,0,0,3616,3617,7,5,0,0,3617,3618,5,95,0,0,3618,3619,7,14,0,0,3619,3620,7,3,0,0,3620,3621,7,5,0,0,3621,3622,7,14,0,0,3622,3623,5,95,0,0,3623,3624,7,18,0,0,3624,3625,7,19,0,0,3625,3626,7,17,0,0,3626,3627,7,12,0,0,3627,3628,7,4,0,0,3628,3629,5,95,0,0,3629,3630,7,8,0,0,3630,3631,7,19,0,0,3631,3632,7,9,0,0,3632,3633,7,11,0,0,3633,330,1,0,0,0,3634,3635,7,11,0,0,3635,3636,7,28,0,0,3636,3637,7,5,0,0,3637,3638,5,95,0,0,3638,3639,7,11,0,0,3639,3640,7,23,0,0,3640,3641,7,3,0,0,3641,3642,7,5,0,0,3642,3643,7,5,0,0,3643,3644,5,95,0,0,3644,3645,7,8,0,0,3645,3646,7,7,0,0,3646,3647,7,11,0,0,3647,3648,7,17,0,0,3648,3649,7,5,0,0,3649,3650,7,6,0,0,3650,332,1,0,0,0,3651,3652,7,11,0,0,3652,3653,7,11,0,0,3653,3654,7,5,0,0,3654,334,1,0,0,0,3655,3656,7,11,0,0,3656,3657,7,6,0,0,3657,3658,7,3,0,0,3658,3659,7,14,0,0,3659,3660,7,21,0,0,3660,3661,7,7,0,0,3661,3662,7,4,0,0,3662,336,1,0,0,0,3663,3664,7,11,0,0,3664,3665,7,6,0,0,3665,3666,7,3,0,0,3666,3667,7,8,0,0,3667,3668,7,6,0,0,3668,3669,7,15,0,0,3669,3670,7,12,0,0,3670,3671,7,22,0,0,3671,338,1,0,0,0,3672,3673,7,11,0,0,3673,3674,7,6,0,0,3674,3675,7,3,0,0,3675,3676,7,6,0,0,3676,3677,7,7,0,0,3677,3678,7,23,0,0,3678,3679,7,7,0,0,3679,3680,7,12,0,0,3680,3681,7,6,0,0,3681,340,1,0,0,0,3682,3683,7,11,0,0,3683,3684,7,6,0,0,3684,3685,7,8,0,0,3685,3686,7,3,0,0,3686,3687,7,15,0,0,3687,3688,7,22,0,0,3688,3689,7,20,0,0,3689,3690,7,6,0,0,3690,3691,5,95,0,0,3691,3692,7,27,0,0,3692,3693,7,19,0,0,3693,3694,7,15,0,0,3694,3695,7,12,0,0,3695,342,1,0,0,0,3696,3697,7,6,0,0,3697,3698,7,3,0,0,3698,3699,7,16,0,0,3699,3700,7,5,0,0,3700,3701,7,7,0,0,3701,344,1,0,0,0,3702,3703,7,6,0,0,3703,3704,7,7,0,0,3704,3705,7,8,0,0,3705,3706,7,23,0,0,3706,3707,7,15,0,0,3707,3708,7,12,0,0,3708,3709,7,3,0,0,3709,3710,7,6,0,0,3710,3711,7,7,0,0,3711,3712,7,4,0,0,3712,346,1,0,0,0,3713,3714,7,6,0,0,3714,3715,7,20,0,0,3715,3716,7,7,0,0,3716,3717,7,12,0,0,3717,348,1,0,0,0,3718,3719,7,6,0,0,3719,3720,7,19,0,0,3720,350,1,0,0,0,3721,3722,7,6,0,0,3722,3723,7,8,0,0,3723,3724,7,3,0,0,3724,3725,7,15,0,0,3725,3726,7,5,0,0,3726,3727,7,15,0,0,3727,3728,7,12,0,0,3728,3729,7,22,0,0,3729,352,1,0,0,0,3730,3731,7,6,0,0,3731,3732,7,8,0,0,3732,3733,7,15,0,0,3733,3734,7,22,0,0,3734,3735,7,22,0,0,3735,3736,7,7,0,0,3736,3737,7,8,0,0,3737,354,1,0,0,0,3738,3739,7,6,0,0,3739,3740,7,8,0,0,3740,3741,7,17,0,0,3741,3742,7,7,0,0,3742,356,1,0,0,0,3743,3744,7,17,0,0,3744,3745,7,12,0,0,3745,3746,7,4,0,0,3746,3747,7,19,0,0,3747,358,1,0,0,0,3748,3749,7,17,0,0,3749,3750,7,12,0,0,3750,3751,7,15,0,0,3751,3752,7,19,0,0,3752,3753,7,12,0,0,3753,360,1,0,0,0,3754,3755,7,17,0,0,3755,3756,7,12,0,0,3756,3757,7,15,0,0,3757,3758,7,28,0,0,3758,3759,7,17,0,0,3759,3760,7,7,0,0,3760,362,1,0,0,0,3761,3762,7,17,0,0,3762,3763,7,12,0,0,3763,3764,7,5,0,0,3764,3765,7,19,0,0,3765,3766,7,14,0,0,3766,3767,7,21,0,0,3767,364,1,0,0,0,3768,3769,7,17,0,0,3769,3770,7,12,0,0,3770,3771,7,11,0,0,3771,3772,7,15,0,0,3772,3773,7,22,0,0,3773,3774,7,12,0,0,3774,3775,7,7,0,0,3775,3776,7,4,0,0,3776,366,1,0,0,0,3777,3778,7,17,0,0,3778,3779,7,25,0,0,3779,3780,7,4,0,0,3780,3781,7,3,0,0,3781,3782,7,6,0,0,3782,3783,7,7,0,0,3783,368,1,0,0,0,3784,3785,7,17,0,0,3785,3786,7,11,0,0,3786,3787,7,3,0,0,3787,3788,7,22,0,0,3788,3789,7,7,0,0,3789,370,1,0,0,0,3790,3791,7,17,0,0,3791,3792,7,11,0,0,3792,3793,7,7,0,0,3793,372,1,0,0,0,3794,3795,7,17,0,0,3795,3796,7,11,0,0,3796,3797,7,15,0,0,3797,3798,7,12,0,0,3798,3799,7,22,0,0,3799,374,1,0,0,0,3800,3801,7,24,0,0,3801,3802,7,3,0,0,3802,3803,7,5,0,0,3803,3804,7,17,0,0,3804,3805,7,7,0,0,3805,3806,7,11,0,0,3806,376,1,0,0,0,3807,3808,7,9,0,0,3808,3809,7,20,0,0,3809,3810,7,7,0,0,3810,3811,7,12,0,0,3811,378,1,0,0,0,3812,3813,7,9,0,0,3813,3814,7,20,0,0,3814,3815,7,7,0,0,3815,3816,7,8,0,0,3816,3817,7,7,0,0,3817,380,1,0,0,0,3818,3819,7,9,0,0,3819,3820,7,20,0,0,3820,3821,7,15,0,0,3821,3822,7,5,0,0,3822,3823,7,7,0,0,3823,382,1,0,0,0,3824,3825,7,9,0,0,3825,3826,7,15,0,0,3826,3827,7,6,0,0,3827,3828,7,20,0,0,3828,384,1,0,0,0,3829,3830,7,9,0,0,3830,3831,7,8,0,0,3831,3832,7,15,0,0,3832,3833,7,6,0,0,3833,3834,7,7,0,0,3834,386,1,0,0,0,3835,3836,7,26,0,0,3836,3837,7,19,0,0,3837,3838,7,8,0,0,3838,388,1,0,0,0,3839,3840,7,13,0,0,3840,3841,7,7,0,0,3841,3842,7,8,0,0,3842,3843,7,19,0,0,3843,3844,7,18,0,0,3844,3845,7,15,0,0,3845,3846,7,5,0,0,3846,3847,7,5,0,0,3847,390,1,0,0,0,3848,3849,7,6,0,0,3849,3850,7,15,0,0,3850,3851,7,12,0,0,3851,3852,7,10,0,0,3852,3853,7,15,0,0,3853,3854,7,12,0,0,3854,3855,7,6,0,0,3855,392,1,0,0,0,3856,3857,7,11,0,0,3857,3858,7,23,0,0,3858,3859,7,3,0,0,3859,3860,7,5,0,0,3860,3861,7,5,0,0,3861,3862,7,15,0,0,3862,3863,7,12,0,0,3863,3864,7,6,0,0,3864,394,1,0,0,0,3865,3866,7,23,0,0,3866,3867,7,7,0,0,3867,3868,7,4,0,0,3868,3869,7,15,0,0,3869,3870,7,17,0,0,3870,3871,7,23,0,0,3871,3872,7,15,0,0,3872,3873,7,12,0,0,3873,3874,7,6,0,0,3874,396,1,0,0,0,3875,3876,7,23,0,0,3876,3877,7,15,0,0,3877,3878,7,4,0,0,3878,3879,7,4,0,0,3879,3880,7,5,0,0,3880,3881,7,7,0,0,3881,3882,7,15,0,0,3882,3883,7,12,0,0,3883,3884,7,6,0,0,3884,398,1,0,0,0,3885,3886,7,15,0,0,3886,3887,7,12,0,0,3887,3888,7,6,0,0,3888,400,1,0,0,0,3889,3890,7,15,0,0,3890,3891,7,12,0,0,3891,3892,7,6,0,0,3892,3893,5,49,0,0,3893,402,1,0,0,0,3894,3895,7,15,0,0,3895,3896,7,12,0,0,3896,3897,7,6,0,0,3897,3898,5,50,0,0,3898,404,1,0,0,0,3899,3900,7,15,0,0,3900,3901,7,12,0,0,3901,3902,7,6,0,0,3902,3903,5,51,0,0,3903,406,1,0,0,0,3904,3905,7,15,0,0,3905,3906,7,12,0,0,3906,3907,7,6,0,0,3907,3908,5,52,0,0,3908,408,1,0,0,0,3909,3910,7,15,0,0,3910,3911,7,12,0,0,3911,3912,7,6,0,0,3912,3913,5,56,0,0,3913,410,1,0,0,0,3914,3915,7,15,0,0,3915,3916,7,12,0,0,3916,3917,7,6,0,0,3917,3918,7,7,0,0,3918,3919,7,22,0,0,3919,3920,7,7,0,0,3920,3921,7,8,0,0,3921,412,1,0,0,0,3922,3923,7,16,0,0,3923,3924,7,15,0,0,3924,3925,7,22,0,0,3925,3926,7,15,0,0,3926,3927,7,12,0,0,3927,3928,7,6,0,0,3928,414,1,0,0,0,3929,3930,7,8,0,0,3930,3931,7,7,0,0,3931,3932,7,3,0,0,3932,3933,7,5,0,0,3933,416,1,0,0,0,3934,3935,7,4,0,0,3935,3936,7,19,0,0,3936,3937,7,17,0,0,3937,3938,7,16,0,0,3938,3939,7,5,0,0,3939,3940,7,7,0,0,3940,418,1,0,0,0,3941,3942,7,25,0,0,3942,3943,7,8,0,0,3943,3944,7,7,0,0,3944,3945,7,14,0,0,3945,3946,7,15,0,0,3946,3947,7,11,0,0,3947,3948,7,15,0,0,3948,3949,7,19,0,0,3949,3950,7,12,0,0,3950,420,1,0,0,0,3951,3952,7,18,0,0,3952,3953,7,5,0,0,3953,3954,7,19,0,0,3954,3955,7,3,0,0,3955,3956,7,6,0,0,3956,422,1,0,0,0,3957,3958,7,18,0,0,3958,3959,7,5,0,0,3959,3960,7,19,0,0,3960,3961,7,3,0,0,3961,3962,7,6,0,0,3962,3963,5,52,0,0,3963,424,1,0,0,0,3964,3965,7,18,0,0,3965,3966,7,5,0,0,3966,3967,7,19,0,0,3967,3968,7,3,0,0,3968,3969,7,6,0,0,3969,3970,5,56,0,0,3970,426,1,0,0,0,3971,3972,7,4,0,0,3972,3973,7,7,0,0,3973,3974,7,14,0,0,3974,3975,7,15,0,0,3975,3976,7,23,0,0,3976,3977,7,3,0,0,3977,3978,7,5,0,0,3978,428,1,0,0,0,3979,3980,7,4,0,0,3980,3981,7,7,0,0,3981,3982,7,14,0,0,3982,430,1,0,0,0,3983,3984,7,12,0,0,3984,3985,7,17,0,0,3985,3986,7,23,0,0,3986,3987,7,7,0,0,3987,3988,7,8,0,0,3988,3989,7,15,0,0,3989,3990,7,14,0,0,3990,432,1,0,0,0,3991,3992,7,4,0,0,3992,3993,7,3,0,0,3993,3994,7,6,0,0,3994,3995,7,7,0,0,3995,434,1,0,0,0,3996,3997,7,6,0,0,3997,3998,7,15,0,0,3998,3999,7,23,0,0,3999,4e3,7,7,0,0,4e3,436,1,0,0,0,4001,4002,7,6,0,0,4002,4003,7,15,0,0,4003,4004,7,23,0,0,4004,4005,7,7,0,0,4005,4006,7,11,0,0,4006,4007,7,6,0,0,4007,4008,7,3,0,0,4008,4009,7,23,0,0,4009,4010,7,25,0,0,4010,438,1,0,0,0,4011,4012,7,4,0,0,4012,4013,7,3,0,0,4013,4014,7,6,0,0,4014,4015,7,7,0,0,4015,4016,7,6,0,0,4016,4017,7,15,0,0,4017,4018,7,23,0,0,4018,4019,7,7,0,0,4019,440,1,0,0,0,4020,4021,7,10,0,0,4021,4022,7,7,0,0,4022,4023,7,3,0,0,4023,4024,7,8,0,0,4024,442,1,0,0,0,4025,4026,7,14,0,0,4026,4027,7,20,0,0,4027,4028,7,3,0,0,4028,4029,7,8,0,0,4029,444,1,0,0,0,4030,4031,7,24,0,0,4031,4032,7,3,0,0,4032,4033,7,8,0,0,4033,4034,7,14,0,0,4034,4035,7,20,0,0,4035,4036,7,3,0,0,4036,4037,7,8,0,0,4037,446,1,0,0,0,4038,4039,7,12,0,0,4039,4040,7,24,0,0,4040,4041,7,3,0,0,4041,4042,7,8,0,0,4042,4043,7,14,0,0,4043,4044,7,20,0,0,4044,4045,7,3,0,0,4045,4046,7,8,0,0,4046,448,1,0,0,0,4047,4048,7,12,0,0,4048,4049,7,3,0,0,4049,4050,7,6,0,0,4050,4051,7,15,0,0,4051,4052,7,19,0,0,4052,4053,7,12,0,0,4053,4054,7,3,0,0,4054,4055,7,5,0,0,4055,450,1,0,0,0,4056,4057,7,16,0,0,4057,4058,7,15,0,0,4058,4059,7,12,0,0,4059,4060,7,3,0,0,4060,4061,7,8,0,0,4061,4062,7,10,0,0,4062,452,1,0,0,0,4063,4064,7,24,0,0,4064,4065,7,3,0,0,4065,4066,7,8,0,0,4066,4067,7,16,0,0,4067,4068,7,15,0,0,4068,4069,7,12,0,0,4069,4070,7,3,0,0,4070,4071,7,8,0,0,4071,4072,7,10,0,0,4072,454,1,0,0,0,4073,4074,7,6,0,0,4074,4075,7,15,0,0,4075,4076,7,12,0,0,4076,4077,7,10,0,0,4077,4078,7,16,0,0,4078,4079,7,5,0,0,4079,4080,7,19,0,0,4080,4081,7,16,0,0,4081,456,1,0,0,0,4082,4083,7,16,0,0,4083,4084,7,5,0,0,4084,4085,7,19,0,0,4085,4086,7,16,0,0,4086,458,1,0,0,0,4087,4088,7,23,0,0,4088,4089,7,7,0,0,4089,4090,7,4,0,0,4090,4091,7,15,0,0,4091,4092,7,17,0,0,4092,4093,7,23,0,0,4093,4094,7,16,0,0,4094,4095,7,5,0,0,4095,4096,7,19,0,0,4096,4097,7,16,0,0,4097,460,1,0,0,0,4098,4099,7,5,0,0,4099,4100,7,19,0,0,4100,4101,7,12,0,0,4101,4102,7,22,0,0,4102,462,1,0,0,0,4103,4104,7,5,0,0,4104,4105,7,19,0,0,4105,4106,7,12,0,0,4106,4107,7,22,0,0,4107,4108,7,16,0,0,4108,4109,7,5,0,0,4109,4110,7,19,0,0,4110,4111,7,16,0,0,4111,464,1,0,0,0,4112,4113,7,6,0,0,4113,4114,7,15,0,0,4114,4115,7,12,0,0,4115,4116,7,10,0,0,4116,4117,7,6,0,0,4117,4118,7,7,0,0,4118,4119,7,26,0,0,4119,4120,7,6,0,0,4120,466,1,0,0,0,4121,4122,7,6,0,0,4122,4123,7,7,0,0,4123,4124,7,26,0,0,4124,4125,7,6,0,0,4125,468,1,0,0,0,4126,4127,7,23,0,0,4127,4128,7,7,0,0,4128,4129,7,4,0,0,4129,4130,7,15,0,0,4130,4131,7,17,0,0,4131,4132,7,23,0,0,4132,4133,7,6,0,0,4133,4134,7,7,0,0,4134,4135,7,26,0,0,4135,4136,7,6,0,0,4136,470,1,0,0,0,4137,4138,7,5,0,0,4138,4139,7,19,0,0,4139,4140,7,12,0,0,4140,4141,7,22,0,0,4141,4142,7,6,0,0,4142,4143,7,7,0,0,4143,4144,7,26,0,0,4144,4145,7,6,0,0,4145,472,1,0,0,0,4146,4147,7,7,0,0,4147,4148,7,12,0,0,4148,4149,7,17,0,0,4149,4150,7,23,0,0,4150,474,1,0,0,0,4151,4152,7,24,0,0,4152,4153,7,3,0,0,4153,4154,7,8,0,0,4154,4155,7,10,0,0,4155,4156,7,15,0,0,4156,4157,7,12,0,0,4157,4158,7,22,0,0,4158,476,1,0,0,0,4159,4160,7,11,0,0,4160,4161,7,7,0,0,4161,4162,7,8,0,0,4162,4163,7,15,0,0,4163,4164,7,3,0,0,4164,4165,7,5,0,0,4165,478,1,0,0,0,4166,4167,7,10,0,0,4167,4168,7,7,0,0,4168,4169,7,3,0,0,4169,4170,7,8,0,0,4170,4171,5,95,0,0,4171,4172,7,23,0,0,4172,4173,7,19,0,0,4173,4174,7,12,0,0,4174,4175,7,6,0,0,4175,4176,7,20,0,0,4176,480,1,0,0,0,4177,4178,7,4,0,0,4178,4179,7,3,0,0,4179,4180,7,10,0,0,4180,4181,5,95,0,0,4181,4182,7,20,0,0,4182,4183,7,19,0,0,4183,4184,7,17,0,0,4184,4185,7,8,0,0,4185,482,1,0,0,0,4186,4187,7,4,0,0,4187,4188,7,3,0,0,4188,4189,7,10,0,0,4189,4190,5,95,0,0,4190,4191,7,23,0,0,4191,4192,7,15,0,0,4192,4193,7,12,0,0,4193,4194,7,17,0,0,4194,4195,7,6,0,0,4195,4196,7,7,0,0,4196,484,1,0,0,0,4197,4198,7,4,0,0,4198,4199,7,3,0,0,4199,4200,7,10,0,0,4200,4201,5,95,0,0,4201,4202,7,11,0,0,4202,4203,7,7,0,0,4203,4204,7,14,0,0,4204,4205,7,19,0,0,4205,4206,7,12,0,0,4206,4207,7,4,0,0,4207,486,1,0,0,0,4208,4209,7,20,0,0,4209,4210,7,19,0,0,4210,4211,7,17,0,0,4211,4212,7,8,0,0,4212,4213,5,95,0,0,4213,4214,7,23,0,0,4214,4215,7,15,0,0,4215,4216,7,12,0,0,4216,4217,7,17,0,0,4217,4218,7,6,0,0,4218,4219,7,7,0,0,4219,488,1,0,0,0,4220,4221,7,20,0,0,4221,4222,7,19,0,0,4222,4223,7,17,0,0,4223,4224,7,8,0,0,4224,4225,5,95,0,0,4225,4226,7,11,0,0,4226,4227,7,7,0,0,4227,4228,7,14,0,0,4228,4229,7,19,0,0,4229,4230,7,12,0,0,4230,4231,7,4,0,0,4231,490,1,0,0,0,4232,4233,7,23,0,0,4233,4234,7,15,0,0,4234,4235,7,12,0,0,4235,4236,7,17,0,0,4236,4237,7,6,0,0,4237,4238,7,7,0,0,4238,4239,5,95,0,0,4239,4240,7,11,0,0,4240,4241,7,7,0,0,4241,4242,7,14,0,0,4242,4243,7,19,0,0,4243,4244,7,12,0,0,4244,4245,7,4,0,0,4245,492,1,0,0,0,4246,4247,7,11,0,0,4247,4248,7,7,0,0,4248,4249,7,14,0,0,4249,4250,7,19,0,0,4250,4251,7,12,0,0,4251,4252,7,4,0,0,4252,4253,5,95,0,0,4253,4254,7,23,0,0,4254,4255,7,15,0,0,4255,4256,7,14,0,0,4256,4257,7,8,0,0,4257,4258,7,19,0,0,4258,4259,7,11,0,0,4259,4260,7,7,0,0,4260,4261,7,14,0,0,4261,4262,7,19,0,0,4262,4263,7,12,0,0,4263,4264,7,4,0,0,4264,494,1,0,0,0,4265,4266,7,23,0,0,4266,4267,7,15,0,0,4267,4268,7,12,0,0,4268,4269,7,17,0,0,4269,4270,7,6,0,0,4270,4271,7,7,0,0,4271,4272,5,95,0,0,4272,4273,7,23,0,0,4273,4274,7,15,0,0,4274,4275,7,14,0,0,4275,4276,7,8,0,0,4276,4277,7,19,0,0,4277,4278,7,11,0,0,4278,4279,7,7,0,0,4279,4280,7,14,0,0,4280,4281,7,19,0,0,4281,4282,7,12,0,0,4282,4283,7,4,0,0,4283,496,1,0,0,0,4284,4285,7,20,0,0,4285,4286,7,19,0,0,4286,4287,7,17,0,0,4287,4288,7,8,0,0,4288,4289,5,95,0,0,4289,4290,7,23,0,0,4290,4291,7,15,0,0,4291,4292,7,14,0,0,4292,4293,7,8,0,0,4293,4294,7,19,0,0,4294,4295,7,11,0,0,4295,4296,7,7,0,0,4296,4297,7,14,0,0,4297,4298,7,19,0,0,4298,4299,7,12,0,0,4299,4300,7,4,0,0,4300,498,1,0,0,0,4301,4302,7,4,0,0,4302,4303,7,3,0,0,4303,4304,7,10,0,0,4304,4305,5,95,0,0,4305,4306,7,23,0,0,4306,4307,7,15,0,0,4307,4308,7,14,0,0,4308,4309,7,8,0,0,4309,4310,7,19,0,0,4310,4311,7,11,0,0,4311,4312,7,7,0,0,4312,4313,7,14,0,0,4313,4314,7,19,0,0,4314,4315,7,12,0,0,4315,4316,7,4,0,0,4316,500,1,0,0,0,4317,4318,7,27,0,0,4318,4319,7,11,0,0,4319,4320,7,19,0,0,4320,4321,7,12,0,0,4321,4322,5,95,0,0,4322,4323,7,3,0,0,4323,4324,7,8,0,0,4324,4325,7,8,0,0,4325,4326,7,3,0,0,4326,4327,7,10,0,0,4327,502,1,0,0,0,4328,4329,7,27,0,0,4329,4330,7,11,0,0,4330,4331,7,19,0,0,4331,4332,7,12,0,0,4332,4333,5,95,0,0,4333,4334,7,3,0,0,4334,4335,7,8,0,0,4335,4336,7,8,0,0,4336,4337,7,3,0,0,4337,4338,7,10,0,0,4338,4339,7,3,0,0,4339,4340,7,22,0,0,4340,4341,7,22,0,0,4341,504,1,0,0,0,4342,4343,7,27,0,0,4343,4344,7,11,0,0,4344,4345,7,19,0,0,4345,4346,7,12,0,0,4346,4347,5,95,0,0,4347,4348,7,3,0,0,4348,4349,7,8,0,0,4349,4350,7,8,0,0,4350,4351,7,3,0,0,4351,4352,7,10,0,0,4352,4353,5,95,0,0,4353,4354,7,3,0,0,4354,4355,7,25,0,0,4355,4356,7,25,0,0,4356,4357,7,7,0,0,4357,4358,7,12,0,0,4358,4359,7,4,0,0,4359,506,1,0,0,0,4360,4361,7,27,0,0,4361,4362,7,11,0,0,4362,4363,7,19,0,0,4363,4364,7,12,0,0,4364,4365,5,95,0,0,4365,4366,7,3,0,0,4366,4367,7,8,0,0,4367,4368,7,8,0,0,4368,4369,7,3,0,0,4369,4370,7,10,0,0,4370,4371,5,95,0,0,4371,4372,7,15,0,0,4372,4373,7,12,0,0,4373,4374,7,11,0,0,4374,4375,7,7,0,0,4375,4376,7,8,0,0,4376,4377,7,6,0,0,4377,508,1,0,0,0,4378,4379,7,27,0,0,4379,4380,7,11,0,0,4380,4381,7,19,0,0,4381,4382,7,12,0,0,4382,4383,5,95,0,0,4383,4384,7,14,0,0,4384,4385,7,19,0,0,4385,4386,7,12,0,0,4386,4387,7,6,0,0,4387,4388,7,3,0,0,4388,4389,7,15,0,0,4389,4390,7,12,0,0,4390,4391,7,11,0,0,4391,510,1,0,0,0,4392,4393,7,27,0,0,4393,4394,7,11,0,0,4394,4395,7,19,0,0,4395,4396,7,12,0,0,4396,4397,5,95,0,0,4397,4398,7,14,0,0,4398,4399,7,19,0,0,4399,4400,7,12,0,0,4400,4401,7,6,0,0,4401,4402,7,3,0,0,4402,4403,7,15,0,0,4403,4404,7,12,0,0,4404,4405,7,11,0,0,4405,4406,5,95,0,0,4406,4407,7,25,0,0,4407,4408,7,3,0,0,4408,4409,7,6,0,0,4409,4410,7,20,0,0,4410,512,1,0,0,0,4411,4412,7,27,0,0,4412,4413,7,11,0,0,4413,4414,7,19,0,0,4414,4415,7,12,0,0,4415,4416,5,95,0,0,4416,4417,7,4,0,0,4417,4418,7,7,0,0,4418,4419,7,25,0,0,4419,4420,7,6,0,0,4420,4421,7,20,0,0,4421,514,1,0,0,0,4422,4423,7,27,0,0,4423,4424,7,11,0,0,4424,4425,7,19,0,0,4425,4426,7,12,0,0,4426,4427,5,95,0,0,4427,4428,7,7,0,0,4428,4429,7,26,0,0,4429,4430,7,6,0,0,4430,4431,7,8,0,0,4431,4432,7,3,0,0,4432,4433,7,14,0,0,4433,4434,7,6,0,0,4434,516,1,0,0,0,4435,4436,7,27,0,0,4436,4437,7,11,0,0,4437,4438,7,19,0,0,4438,4439,7,12,0,0,4439,4440,5,95,0,0,4440,4441,7,15,0,0,4441,4442,7,12,0,0,4442,4443,7,11,0,0,4443,4444,7,7,0,0,4444,4445,7,8,0,0,4445,4446,7,6,0,0,4446,518,1,0,0,0,4447,4448,7,27,0,0,4448,4449,7,11,0,0,4449,4450,7,19,0,0,4450,4451,7,12,0,0,4451,4452,5,95,0,0,4452,4453,7,21,0,0,4453,4454,7,7,0,0,4454,4455,7,10,0,0,4455,4456,7,11,0,0,4456,520,1,0,0,0,4457,4458,7,27,0,0,4458,4459,7,11,0,0,4459,4460,7,19,0,0,4460,4461,7,12,0,0,4461,4462,5,95,0,0,4462,4463,7,5,0,0,4463,4464,7,7,0,0,4464,4465,7,12,0,0,4465,4466,7,22,0,0,4466,4467,7,6,0,0,4467,4468,7,20,0,0,4468,522,1,0,0,0,4469,4470,7,27,0,0,4470,4471,7,11,0,0,4471,4472,7,19,0,0,4472,4473,7,12,0,0,4473,4474,5,95,0,0,4474,4475,7,23,0,0,4475,4476,7,7,0,0,4476,4477,7,8,0,0,4477,4478,7,22,0,0,4478,4479,7,7,0,0,4479,524,1,0,0,0,4480,4481,7,27,0,0,4481,4482,7,11,0,0,4482,4483,7,19,0,0,4483,4484,7,12,0,0,4484,4485,5,95,0,0,4485,4486,7,23,0,0,4486,4487,7,7,0,0,4487,4488,7,8,0,0,4488,4489,7,22,0,0,4489,4490,7,7,0,0,4490,4491,5,95,0,0,4491,4492,7,25,0,0,4492,4493,7,3,0,0,4493,4494,7,6,0,0,4494,4495,7,14,0,0,4495,4496,7,20,0,0,4496,526,1,0,0,0,4497,4498,7,27,0,0,4498,4499,7,11,0,0,4499,4500,7,19,0,0,4500,4501,7,12,0,0,4501,4502,5,95,0,0,4502,4503,7,23,0,0,4503,4504,7,7,0,0,4504,4505,7,8,0,0,4505,4506,7,22,0,0,4506,4507,7,7,0,0,4507,4508,5,95,0,0,4508,4509,7,25,0,0,4509,4510,7,8,0,0,4510,4511,7,7,0,0,4511,4512,7,11,0,0,4512,4513,7,7,0,0,4513,4514,7,8,0,0,4514,4515,7,24,0,0,4515,4516,7,7,0,0,4516,528,1,0,0,0,4517,4518,7,27,0,0,4518,4519,7,11,0,0,4519,4520,7,19,0,0,4520,4521,7,12,0,0,4521,4522,5,95,0,0,4522,4523,7,19,0,0,4523,4524,7,16,0,0,4524,4525,7,27,0,0,4525,4526,7,7,0,0,4526,4527,7,14,0,0,4527,4528,7,6,0,0,4528,530,1,0,0,0,4529,4530,7,27,0,0,4530,4531,7,11,0,0,4531,4532,7,19,0,0,4532,4533,7,12,0,0,4533,4534,5,95,0,0,4534,4535,7,19,0,0,4535,4536,7,16,0,0,4536,4537,7,27,0,0,4537,4538,7,7,0,0,4538,4539,7,14,0,0,4539,4540,7,6,0,0,4540,4541,7,3,0,0,4541,4542,7,22,0,0,4542,4543,7,22,0,0,4543,532,1,0,0,0,4544,4545,7,27,0,0,4545,4546,7,11,0,0,4546,4547,7,19,0,0,4547,4548,7,12,0,0,4548,4549,5,95,0,0,4549,4550,7,19,0,0,4550,4551,7,24,0,0,4551,4552,7,7,0,0,4552,4553,7,8,0,0,4553,4554,7,5,0,0,4554,4555,7,3,0,0,4555,4556,7,25,0,0,4556,4557,7,11,0,0,4557,534,1,0,0,0,4558,4559,7,27,0,0,4559,4560,7,11,0,0,4560,4561,7,19,0,0,4561,4562,7,12,0,0,4562,4563,5,95,0,0,4563,4564,7,25,0,0,4564,4565,7,8,0,0,4565,4566,7,7,0,0,4566,4567,7,6,0,0,4567,4568,7,6,0,0,4568,4569,7,10,0,0,4569,536,1,0,0,0,4570,4571,7,27,0,0,4571,4572,7,11,0,0,4572,4573,7,19,0,0,4573,4574,7,12,0,0,4574,4575,5,95,0,0,4575,4576,7,28,0,0,4576,4577,7,17,0,0,4577,4578,7,19,0,0,4578,4579,7,6,0,0,4579,4580,7,7,0,0,4580,538,1,0,0,0,4581,4582,7,27,0,0,4582,4583,7,11,0,0,4583,4584,7,19,0,0,4584,4585,7,12,0,0,4585,4586,5,95,0,0,4586,4587,7,8,0,0,4587,4588,7,7,0,0,4588,4589,7,23,0,0,4589,4590,7,19,0,0,4590,4591,7,24,0,0,4591,4592,7,7,0,0,4592,540,1,0,0,0,4593,4594,7,27,0,0,4594,4595,7,11,0,0,4595,4596,7,19,0,0,4596,4597,7,12,0,0,4597,4598,5,95,0,0,4598,4599,7,8,0,0,4599,4600,7,7,0,0,4600,4601,7,25,0,0,4601,4602,7,5,0,0,4602,4603,7,3,0,0,4603,4604,7,14,0,0,4604,4605,7,7,0,0,4605,542,1,0,0,0,4606,4607,7,27,0,0,4607,4608,7,11,0,0,4608,4609,7,19,0,0,4609,4610,7,12,0,0,4610,4611,5,95,0,0,4611,4612,7,11,0,0,4612,4613,7,14,0,0,4613,4614,7,20,0,0,4614,4615,7,7,0,0,4615,4616,7,23,0,0,4616,4617,7,3,0,0,4617,4618,5,95,0,0,4618,4619,7,24,0,0,4619,4620,7,3,0,0,4620,4621,7,5,0,0,4621,4622,7,15,0,0,4622,4623,7,4,0,0,4623,544,1,0,0,0,4624,4625,7,27,0,0,4625,4626,7,11,0,0,4626,4627,7,19,0,0,4627,4628,7,12,0,0,4628,4629,5,95,0,0,4629,4630,7,11,0,0,4630,4631,7,14,0,0,4631,4632,7,20,0,0,4632,4633,7,7,0,0,4633,4634,7,23,0,0,4634,4635,7,3,0,0,4635,4636,5,95,0,0,4636,4637,7,24,0,0,4637,4638,7,3,0,0,4638,4639,7,5,0,0,4639,4640,7,15,0,0,4640,4641,7,4,0,0,4641,4642,7,3,0,0,4642,4643,7,6,0,0,4643,4644,7,15,0,0,4644,4645,7,19,0,0,4645,4646,7,12,0,0,4646,4647,5,95,0,0,4647,4648,7,8,0,0,4648,4649,7,7,0,0,4649,4650,7,25,0,0,4650,4651,7,19,0,0,4651,4652,7,8,0,0,4652,4653,7,6,0,0,4653,546,1,0,0,0,4654,4655,7,27,0,0,4655,4656,7,11,0,0,4656,4657,7,19,0,0,4657,4658,7,12,0,0,4658,4659,5,95,0,0,4659,4660,7,11,0,0,4660,4661,7,7,0,0,4661,4662,7,3,0,0,4662,4663,7,8,0,0,4663,4664,7,14,0,0,4664,4665,7,20,0,0,4665,548,1,0,0,0,4666,4667,7,27,0,0,4667,4668,7,11,0,0,4668,4669,7,19,0,0,4669,4670,7,12,0,0,4670,4671,5,95,0,0,4671,4672,7,11,0,0,4672,4673,7,7,0,0,4673,4674,7,6,0,0,4674,550,1,0,0,0,4675,4676,7,27,0,0,4676,4677,7,11,0,0,4677,4678,7,19,0,0,4678,4679,7,12,0,0,4679,4680,5,95,0,0,4680,4681,7,11,0,0,4681,4682,7,6,0,0,4682,4683,7,19,0,0,4683,4684,7,8,0,0,4684,4685,7,3,0,0,4685,4686,7,22,0,0,4686,4687,7,7,0,0,4687,4688,5,95,0,0,4688,4689,7,18,0,0,4689,4690,7,8,0,0,4690,4691,7,7,0,0,4691,4692,7,7,0,0,4692,552,1,0,0,0,4693,4694,7,27,0,0,4694,4695,7,11,0,0,4695,4696,7,19,0,0,4696,4697,7,12,0,0,4697,4698,5,95,0,0,4698,4699,7,11,0,0,4699,4700,7,6,0,0,4700,4701,7,19,0,0,4701,4702,7,8,0,0,4702,4703,7,3,0,0,4703,4704,7,22,0,0,4704,4705,7,7,0,0,4705,4706,5,95,0,0,4706,4707,7,11,0,0,4707,4708,7,15,0,0,4708,4709,7,13,0,0,4709,4710,7,7,0,0,4710,554,1,0,0,0,4711,4712,7,27,0,0,4712,4713,7,11,0,0,4713,4714,7,19,0,0,4714,4715,7,12,0,0,4715,4716,5,95,0,0,4716,4717,7,6,0,0,4717,4718,7,3,0,0,4718,4719,7,16,0,0,4719,4720,7,5,0,0,4720,4721,7,7,0,0,4721,556,1,0,0,0,4722,4723,7,27,0,0,4723,4724,7,11,0,0,4724,4725,7,19,0,0,4725,4726,7,12,0,0,4726,4727,5,95,0,0,4727,4728,7,6,0,0,4728,4729,7,10,0,0,4729,4730,7,25,0,0,4730,4731,7,7,0,0,4731,558,1,0,0,0,4732,4733,7,27,0,0,4733,4734,7,11,0,0,4734,4735,7,19,0,0,4735,4736,7,12,0,0,4736,4737,5,95,0,0,4737,4738,7,17,0,0,4738,4739,7,12,0,0,4739,4740,7,28,0,0,4740,4741,7,17,0,0,4741,4742,7,19,0,0,4742,4743,7,6,0,0,4743,4744,7,7,0,0,4744,560,1,0,0,0,4745,4746,7,27,0,0,4746,4747,7,11,0,0,4747,4748,7,19,0,0,4748,4749,7,12,0,0,4749,4750,5,95,0,0,4750,4751,7,24,0,0,4751,4752,7,3,0,0,4752,4753,7,5,0,0,4753,4754,7,15,0,0,4754,4755,7,4,0,0,4755,562,1,0,0,0,4756,4757,7,27,0,0,4757,4758,7,11,0,0,4758,4759,7,19,0,0,4759,4760,7,12,0,0,4760,4761,5,95,0,0,4761,4762,7,24,0,0,4762,4763,7,3,0,0,4763,4764,7,5,0,0,4764,4765,7,17,0,0,4765,4766,7,7,0,0,4766,564,1,0,0,0,4767,4768,7,12,0,0,4768,4769,7,7,0,0,4769,4770,7,11,0,0,4770,4771,7,6,0,0,4771,4772,7,7,0,0,4772,4773,7,4,0,0,4773,566,1,0,0,0,4774,4775,7,19,0,0,4775,4776,7,8,0,0,4776,4777,7,4,0,0,4777,4778,7,15,0,0,4778,4779,7,12,0,0,4779,4780,7,3,0,0,4780,4781,7,5,0,0,4781,4782,7,15,0,0,4782,4783,7,6,0,0,4783,4784,7,10,0,0,4784,568,1,0,0,0,4785,4786,7,25,0,0,4786,4787,7,3,0,0,4787,4788,7,6,0,0,4788,4789,7,20,0,0,4789,570,1,0,0,0,4790,4791,7,3,0,0,4791,4792,7,24,0,0,4792,4793,7,22,0,0,4793,572,1,0,0,0,4794,4795,7,16,0,0,4795,4796,7,15,0,0,4796,4797,7,6,0,0,4797,4798,5,95,0,0,4798,4799,7,3,0,0,4799,4800,7,12,0,0,4800,4801,7,4,0,0,4801,574,1,0,0,0,4802,4803,7,16,0,0,4803,4804,7,15,0,0,4804,4805,7,6,0,0,4805,4806,5,95,0,0,4806,4807,7,19,0,0,4807,4808,7,8,0,0,4808,576,1,0,0,0,4809,4810,7,16,0,0,4810,4811,7,15,0,0,4811,4812,7,6,0,0,4812,4813,5,95,0,0,4813,4814,7,26,0,0,4814,4815,7,19,0,0,4815,4816,7,8,0,0,4816,578,1,0,0,0,4817,4818,7,14,0,0,4818,4819,7,19,0,0,4819,4820,7,17,0,0,4820,4821,7,12,0,0,4821,4822,7,6,0,0,4822,580,1,0,0,0,4823,4824,7,14,0,0,4824,4825,7,17,0,0,4825,4826,7,23,0,0,4826,4827,7,7,0,0,4827,4828,5,95,0,0,4828,4829,7,4,0,0,4829,4830,7,15,0,0,4830,4831,7,11,0,0,4831,4832,7,6,0,0,4832,582,1,0,0,0,4833,4834,7,4,0,0,4834,4835,7,7,0,0,4835,4836,7,12,0,0,4836,4837,7,11,0,0,4837,4838,7,7,0,0,4838,4839,5,95,0,0,4839,4840,7,8,0,0,4840,4841,7,3,0,0,4841,4842,7,12,0,0,4842,4843,7,21,0,0,4843,584,1,0,0,0,4844,4845,7,18,0,0,4845,4846,7,15,0,0,4846,4847,7,8,0,0,4847,4848,7,11,0,0,4848,4849,7,6,0,0,4849,4850,5,95,0,0,4850,4851,7,24,0,0,4851,4852,7,3,0,0,4852,4853,7,5,0,0,4853,4854,7,17,0,0,4854,4855,7,7,0,0,4855,586,1,0,0,0,4856,4857,7,22,0,0,4857,4858,7,8,0,0,4858,4859,7,19,0,0,4859,4860,7,17,0,0,4860,4861,7,25,0,0,4861,4862,5,95,0,0,4862,4863,7,14,0,0,4863,4864,7,19,0,0,4864,4865,7,12,0,0,4865,4866,7,14,0,0,4866,4867,7,3,0,0,4867,4868,7,6,0,0,4868,588,1,0,0,0,4869,4870,7,5,0,0,4870,4871,7,3,0,0,4871,4872,7,22,0,0,4872,590,1,0,0,0,4873,4874,7,5,0,0,4874,4875,7,3,0,0,4875,4876,7,11,0,0,4876,4877,7,6,0,0,4877,4878,5,95,0,0,4878,4879,7,24,0,0,4879,4880,7,3,0,0,4880,4881,7,5,0,0,4881,4882,7,17,0,0,4882,4883,7,7,0,0,4883,592,1,0,0,0,4884,4885,7,5,0,0,4885,4886,7,7,0,0,4886,4887,7,3,0,0,4887,4888,7,4,0,0,4888,594,1,0,0,0,4889,4890,7,23,0,0,4890,4891,7,3,0,0,4891,4892,7,26,0,0,4892,596,1,0,0,0,4893,4894,7,23,0,0,4894,4895,7,15,0,0,4895,4896,7,12,0,0,4896,598,1,0,0,0,4897,4898,7,12,0,0,4898,4899,7,6,0,0,4899,4900,7,15,0,0,4900,4901,7,5,0,0,4901,4902,7,7,0,0,4902,600,1,0,0,0,4903,4904,7,12,0,0,4904,4905,7,6,0,0,4905,4906,7,20,0,0,4906,4907,5,95,0,0,4907,4908,7,24,0,0,4908,4909,7,3,0,0,4909,4910,7,5,0,0,4910,4911,7,17,0,0,4911,4912,7,7,0,0,4912,602,1,0,0,0,4913,4914,7,25,0,0,4914,4915,7,7,0,0,4915,4916,7,8,0,0,4916,4917,7,14,0,0,4917,4918,7,7,0,0,4918,4919,7,12,0,0,4919,4920,7,6,0,0,4920,4921,5,95,0,0,4921,4922,7,8,0,0,4922,4923,7,3,0,0,4923,4924,7,12,0,0,4924,4925,7,21,0,0,4925,604,1,0,0,0,4926,4927,7,8,0,0,4927,4928,7,3,0,0,4928,4929,7,12,0,0,4929,4930,7,21,0,0,4930,606,1,0,0,0,4931,4932,7,8,0,0,4932,4933,7,19,0,0,4933,4934,7,9,0,0,4934,4935,5,95,0,0,4935,4936,7,12,0,0,4936,4937,7,17,0,0,4937,4938,7,23,0,0,4938,4939,7,16,0,0,4939,4940,7,7,0,0,4940,4941,7,8,0,0,4941,608,1,0,0,0,4942,4943,7,11,0,0,4943,4944,7,6,0,0,4944,4945,7,4,0,0,4945,610,1,0,0,0,4946,4947,7,11,0,0,4947,4948,7,6,0,0,4948,4949,7,4,0,0,4949,4950,7,4,0,0,4950,4951,7,7,0,0,4951,4952,7,24,0,0,4952,612,1,0,0,0,4953,4954,7,11,0,0,4954,4955,7,6,0,0,4955,4956,7,4,0,0,4956,4957,7,4,0,0,4957,4958,7,7,0,0,4958,4959,7,24,0,0,4959,4960,5,95,0,0,4960,4961,7,25,0,0,4961,4962,7,19,0,0,4962,4963,7,25,0,0,4963,614,1,0,0,0,4964,4965,7,11,0,0,4965,4966,7,6,0,0,4966,4967,7,4,0,0,4967,4968,7,4,0,0,4968,4969,7,7,0,0,4969,4970,7,24,0,0,4970,4971,5,95,0,0,4971,4972,7,11,0,0,4972,4973,7,3,0,0,4973,4974,7,23,0,0,4974,4975,7,25,0,0,4975,616,1,0,0,0,4976,4977,7,11,0,0,4977,4978,7,17,0,0,4978,4979,7,23,0,0,4979,618,1,0,0,0,4980,4981,7,24,0,0,4981,4982,7,3,0,0,4982,4983,7,8,0,0,4983,4984,5,95,0,0,4984,4985,7,25,0,0,4985,4986,7,19,0,0,4986,4987,7,25,0,0,4987,620,1,0,0,0,4988,4989,7,24,0,0,4989,4990,7,3,0,0,4990,4991,7,8,0,0,4991,4992,5,95,0,0,4992,4993,7,11,0,0,4993,4994,7,3,0,0,4994,4995,7,23,0,0,4995,4996,7,25,0,0,4996,622,1,0,0,0,4997,4998,7,24,0,0,4998,4999,7,3,0,0,4999,5e3,7,8,0,0,5e3,5001,7,15,0,0,5001,5002,7,3,0,0,5002,5003,7,12,0,0,5003,5004,7,14,0,0,5004,5005,7,7,0,0,5005,624,1,0,0,0,5006,5007,7,14,0,0,5007,5008,7,17,0,0,5008,5009,7,8,0,0,5009,5010,7,8,0,0,5010,5011,7,7,0,0,5011,5012,7,12,0,0,5012,5013,7,6,0,0,5013,5014,5,95,0,0,5014,5015,7,4,0,0,5015,5016,7,3,0,0,5016,5017,7,6,0,0,5017,5018,7,7,0,0,5018,626,1,0,0,0,5019,5020,7,14,0,0,5020,5021,7,17,0,0,5021,5022,7,8,0,0,5022,5023,7,8,0,0,5023,5024,7,7,0,0,5024,5025,7,12,0,0,5025,5026,7,6,0,0,5026,5027,5,95,0,0,5027,5028,7,6,0,0,5028,5029,7,15,0,0,5029,5030,7,23,0,0,5030,5031,7,7,0,0,5031,628,1,0,0,0,5032,5033,7,14,0,0,5033,5034,7,17,0,0,5034,5035,7,8,0,0,5035,5036,7,8,0,0,5036,5037,7,7,0,0,5037,5038,7,12,0,0,5038,5039,7,6,0,0,5039,5040,5,95,0,0,5040,5041,7,6,0,0,5041,5042,7,15,0,0,5042,5043,7,23,0,0,5043,5044,7,7,0,0,5044,5045,7,11,0,0,5045,5046,7,6,0,0,5046,5047,7,3,0,0,5047,5048,7,23,0,0,5048,5049,7,25,0,0,5049,630,1,0,0,0,5050,5051,7,5,0,0,5051,5052,7,19,0,0,5052,5053,7,14,0,0,5053,5054,7,3,0,0,5054,5055,7,5,0,0,5055,5056,7,6,0,0,5056,5057,7,15,0,0,5057,5058,7,23,0,0,5058,5059,7,7,0,0,5059,632,1,0,0,0,5060,5061,7,14,0,0,5061,5062,7,17,0,0,5062,5063,7,8,0,0,5063,5064,7,4,0,0,5064,5065,7,3,0,0,5065,5066,7,6,0,0,5066,5067,7,7,0,0,5067,634,1,0,0,0,5068,5069,7,14,0,0,5069,5070,7,17,0,0,5070,5071,7,8,0,0,5071,5072,7,6,0,0,5072,5073,7,15,0,0,5073,5074,7,23,0,0,5074,5075,7,7,0,0,5075,636,1,0,0,0,5076,5077,7,4,0,0,5077,5078,7,3,0,0,5078,5079,7,6,0,0,5079,5080,7,7,0,0,5080,5081,5,95,0,0,5081,5082,7,3,0,0,5082,5083,7,4,0,0,5083,5084,7,4,0,0,5084,638,1,0,0,0,5085,5086,7,4,0,0,5086,5087,7,3,0,0,5087,5088,7,6,0,0,5088,5089,7,7,0,0,5089,5090,5,95,0,0,5090,5091,7,11,0,0,5091,5092,7,17,0,0,5092,5093,7,16,0,0,5093,640,1,0,0,0,5094,5095,7,7,0,0,5095,5096,7,26,0,0,5096,5097,7,6,0,0,5097,5098,7,8,0,0,5098,5099,7,3,0,0,5099,5100,7,14,0,0,5100,5101,7,6,0,0,5101,642,1,0,0,0,5102,5103,7,5,0,0,5103,5104,7,19,0,0,5104,5105,7,14,0,0,5105,5106,7,3,0,0,5106,5107,7,5,0,0,5107,5108,7,6,0,0,5108,5109,7,15,0,0,5109,5110,7,23,0,0,5110,5111,7,7,0,0,5111,5112,7,11,0,0,5112,5113,7,6,0,0,5113,5114,7,3,0,0,5114,5115,7,23,0,0,5115,5116,7,25,0,0,5116,644,1,0,0,0,5117,5118,7,12,0,0,5118,5119,7,19,0,0,5119,5120,7,9,0,0,5120,646,1,0,0,0,5121,5122,7,25,0,0,5122,5123,7,19,0,0,5123,5124,7,11,0,0,5124,5125,7,15,0,0,5125,5126,7,6,0,0,5126,5127,7,15,0,0,5127,5128,7,19,0,0,5128,5129,7,12,0,0,5129,648,1,0,0,0,5130,5131,7,11,0,0,5131,5132,7,17,0,0,5132,5133,7,16,0,0,5133,5134,7,11,0,0,5134,5135,7,6,0,0,5135,5136,7,8,0,0,5136,650,1,0,0,0,5137,5138,7,11,0,0,5138,5139,7,17,0,0,5139,5140,7,16,0,0,5140,5141,7,11,0,0,5141,5142,7,6,0,0,5142,5143,7,8,0,0,5143,5144,7,15,0,0,5144,5145,7,12,0,0,5145,5146,7,22,0,0,5146,652,1,0,0,0,5147,5148,7,11,0,0,5148,5149,7,10,0,0,5149,5150,7,11,0,0,5150,5151,7,4,0,0,5151,5152,7,3,0,0,5152,5153,7,6,0,0,5153,5154,7,7,0,0,5154,654,1,0,0,0,5155,5156,7,6,0,0,5156,5157,7,8,0,0,5157,5158,7,15,0,0,5158,5159,7,23,0,0,5159,656,1,0,0,0,5160,5161,7,17,0,0,5161,5162,7,6,0,0,5162,5163,7,14,0,0,5163,5164,5,95,0,0,5164,5165,7,4,0,0,5165,5166,7,3,0,0,5166,5167,7,6,0,0,5167,5168,7,7,0,0,5168,658,1,0,0,0,5169,5170,7,17,0,0,5170,5171,7,6,0,0,5171,5172,7,14,0,0,5172,5173,5,95,0,0,5173,5174,7,6,0,0,5174,5175,7,15,0,0,5175,5176,7,23,0,0,5176,5177,7,7,0,0,5177,660,1,0,0,0,5178,5179,7,17,0,0,5179,5180,7,6,0,0,5180,5181,7,14,0,0,5181,5182,5,95,0,0,5182,5183,7,6,0,0,5183,5184,7,15,0,0,5184,5185,7,23,0,0,5185,5186,7,7,0,0,5186,5187,7,11,0,0,5187,5188,7,6,0,0,5188,5189,7,3,0,0,5189,5190,7,23,0,0,5190,5191,7,25,0,0,5191,662,1,0,0,0,5192,5193,7,3,0,0,5193,5194,7,14,0,0,5194,5195,7,14,0,0,5195,5196,7,19,0,0,5196,5197,7,17,0,0,5197,5198,7,12,0,0,5198,5199,7,6,0,0,5199,664,1,0,0,0,5200,5201,7,3,0,0,5201,5202,7,14,0,0,5202,5203,7,6,0,0,5203,5204,7,15,0,0,5204,5205,7,19,0,0,5205,5206,7,12,0,0,5206,666,1,0,0,0,5207,5208,7,3,0,0,5208,5209,7,18,0,0,5209,5210,7,6,0,0,5210,5211,7,7,0,0,5211,5212,7,8,0,0,5212,668,1,0,0,0,5213,5214,7,3,0,0,5214,5215,7,22,0,0,5215,5216,7,22,0,0,5216,5217,7,8,0,0,5217,5218,7,7,0,0,5218,5219,7,22,0,0,5219,5220,7,3,0,0,5220,5221,7,6,0,0,5221,5222,7,7,0,0,5222,670,1,0,0,0,5223,5224,7,3,0,0,5224,5225,7,5,0,0,5225,5226,7,22,0,0,5226,5227,7,19,0,0,5227,5228,7,8,0,0,5228,5229,7,15,0,0,5229,5230,7,6,0,0,5230,5231,7,20,0,0,5231,5232,7,23,0,0,5232,672,1,0,0,0,5233,5234,7,3,0,0,5234,5235,7,12,0,0,5235,5236,7,10,0,0,5236,674,1,0,0,0,5237,5238,7,3,0,0,5238,5239,7,6,0,0,5239,676,1,0,0,0,5240,5241,7,3,0,0,5241,5242,7,17,0,0,5242,5243,7,6,0,0,5243,5244,7,20,0,0,5244,5245,7,19,0,0,5245,5246,7,8,0,0,5246,5247,7,11,0,0,5247,678,1,0,0,0,5248,5249,7,3,0,0,5249,5250,7,17,0,0,5250,5251,7,6,0,0,5251,5252,7,19,0,0,5252,5253,7,14,0,0,5253,5254,7,19,0,0,5254,5255,7,23,0,0,5255,5256,7,23,0,0,5256,5257,7,15,0,0,5257,5258,7,6,0,0,5258,680,1,0,0,0,5259,5260,7,3,0,0,5260,5261,7,17,0,0,5261,5262,7,6,0,0,5262,5263,7,19,0,0,5263,5264,7,7,0,0,5264,5265,7,26,0,0,5265,5266,7,6,0,0,5266,5267,7,7,0,0,5267,5268,7,12,0,0,5268,5269,7,4,0,0,5269,5270,5,95,0,0,5270,5271,7,11,0,0,5271,5272,7,15,0,0,5272,5273,7,13,0,0,5273,5274,7,7,0,0,5274,682,1,0,0,0,5275,5276,7,3,0,0,5276,5277,7,17,0,0,5277,5278,7,6,0,0,5278,5279,7,19,0,0,5279,5280,5,95,0,0,5280,5281,7,15,0,0,5281,5282,7,12,0,0,5282,5283,7,14,0,0,5283,5284,7,8,0,0,5284,5285,7,7,0,0,5285,5286,7,23,0,0,5286,5287,7,7,0,0,5287,5288,7,12,0,0,5288,5289,7,6,0,0,5289,684,1,0,0,0,5290,5291,7,3,0,0,5291,5292,7,24,0,0,5292,5293,7,22,0,0,5293,5294,5,95,0,0,5294,5295,7,8,0,0,5295,5296,7,19,0,0,5296,5297,7,9,0,0,5297,5298,5,95,0,0,5298,5299,7,5,0,0,5299,5300,7,7,0,0,5300,5301,7,12,0,0,5301,5302,7,22,0,0,5302,5303,7,6,0,0,5303,5304,7,20,0,0,5304,686,1,0,0,0,5305,5306,7,16,0,0,5306,5307,7,7,0,0,5307,5308,7,22,0,0,5308,5309,7,15,0,0,5309,5310,7,12,0,0,5310,688,1,0,0,0,5311,5312,7,16,0,0,5312,5313,7,15,0,0,5313,5314,7,12,0,0,5314,5315,7,5,0,0,5315,5316,7,19,0,0,5316,5317,7,22,0,0,5317,690,1,0,0,0,5318,5319,7,16,0,0,5319,5320,7,15,0,0,5320,5321,7,6,0,0,5321,692,1,0,0,0,5322,5323,7,16,0,0,5323,5324,7,5,0,0,5324,5325,7,19,0,0,5325,5326,7,14,0,0,5326,5327,7,21,0,0,5327,694,1,0,0,0,5328,5329,7,16,0,0,5329,5330,7,19,0,0,5330,5331,7,19,0,0,5331,5332,7,5,0,0,5332,696,1,0,0,0,5333,5334,7,16,0,0,5334,5335,7,19,0,0,5335,5336,7,19,0,0,5336,5337,7,5,0,0,5337,5338,7,7,0,0,5338,5339,7,3,0,0,5339,5340,7,12,0,0,5340,698,1,0,0,0,5341,5342,7,16,0,0,5342,5343,7,6,0,0,5343,5344,7,8,0,0,5344,5345,7,7,0,0,5345,5346,7,7,0,0,5346,700,1,0,0,0,5347,5348,7,14,0,0,5348,5349,7,3,0,0,5349,5350,7,14,0,0,5350,5351,7,20,0,0,5351,5352,7,7,0,0,5352,702,1,0,0,0,5353,5354,7,14,0,0,5354,5355,7,3,0,0,5355,5356,7,11,0,0,5356,5357,7,14,0,0,5357,5358,7,3,0,0,5358,5359,7,4,0,0,5359,5360,7,7,0,0,5360,5361,7,4,0,0,5361,704,1,0,0,0,5362,5363,7,14,0,0,5363,5364,7,20,0,0,5364,5365,7,3,0,0,5365,5366,7,15,0,0,5366,5367,7,12,0,0,5367,706,1,0,0,0,5368,5369,7,14,0,0,5369,5370,7,20,0,0,5370,5371,7,3,0,0,5371,5372,7,12,0,0,5372,5373,7,22,0,0,5373,5374,7,7,0,0,5374,5375,7,4,0,0,5375,708,1,0,0,0,5376,5377,7,14,0,0,5377,5378,7,20,0,0,5378,5379,7,3,0,0,5379,5380,7,12,0,0,5380,5381,7,12,0,0,5381,5382,7,7,0,0,5382,5383,7,5,0,0,5383,710,1,0,0,0,5384,5385,7,14,0,0,5385,5386,7,20,0,0,5386,5387,7,7,0,0,5387,5388,7,14,0,0,5388,5389,7,21,0,0,5389,5390,7,11,0,0,5390,5391,7,17,0,0,5391,5392,7,23,0,0,5392,712,1,0,0,0,5393,5394,7,25,0,0,5394,5395,7,3,0,0,5395,5396,7,22,0,0,5396,5397,7,7,0,0,5397,5398,5,95,0,0,5398,5399,7,14,0,0,5399,5400,7,20,0,0,5400,5401,7,7,0,0,5401,5402,7,14,0,0,5402,5403,7,21,0,0,5403,5404,7,11,0,0,5404,5405,7,17,0,0,5405,5406,7,23,0,0,5406,714,1,0,0,0,5407,5408,7,14,0,0,5408,5409,7,15,0,0,5409,5410,7,25,0,0,5410,5411,7,20,0,0,5411,5412,7,7,0,0,5412,5413,7,8,0,0,5413,716,1,0,0,0,5414,5415,7,14,0,0,5415,5416,7,5,0,0,5416,5417,7,3,0,0,5417,5418,7,11,0,0,5418,5419,7,11,0,0,5419,5420,5,95,0,0,5420,5421,7,19,0,0,5421,5422,7,8,0,0,5422,5423,7,15,0,0,5423,5424,7,22,0,0,5424,5425,7,15,0,0,5425,5426,7,12,0,0,5426,718,1,0,0,0,5427,5428,7,14,0,0,5428,5429,7,5,0,0,5429,5430,7,15,0,0,5430,5431,7,7,0,0,5431,5432,7,12,0,0,5432,5433,7,6,0,0,5433,720,1,0,0,0,5434,5435,7,14,0,0,5435,5436,7,5,0,0,5436,5437,7,19,0,0,5437,5438,7,11,0,0,5438,5439,7,7,0,0,5439,722,1,0,0,0,5440,5441,7,14,0,0,5441,5442,7,5,0,0,5442,5443,7,17,0,0,5443,5444,7,11,0,0,5444,5445,7,6,0,0,5445,5446,7,7,0,0,5446,5447,7,8,0,0,5447,5448,7,15,0,0,5448,5449,7,12,0,0,5449,5450,7,22,0,0,5450,724,1,0,0,0,5451,5452,7,14,0,0,5452,5453,7,19,0,0,5453,5454,7,3,0,0,5454,5455,7,5,0,0,5455,5456,7,7,0,0,5456,5457,7,11,0,0,5457,5458,7,14,0,0,5458,5459,7,7,0,0,5459,726,1,0,0,0,5460,5461,7,14,0,0,5461,5462,7,19,0,0,5462,5463,7,4,0,0,5463,5464,7,7,0,0,5464,728,1,0,0,0,5465,5466,7,14,0,0,5466,5467,7,19,0,0,5467,5468,7,5,0,0,5468,5469,7,17,0,0,5469,5470,7,23,0,0,5470,5471,7,12,0,0,5471,5472,7,11,0,0,5472,730,1,0,0,0,5473,5474,7,14,0,0,5474,5475,7,19,0,0,5475,5476,7,5,0,0,5476,5477,7,17,0,0,5477,5478,7,23,0,0,5478,5479,7,12,0,0,5479,5480,5,95,0,0,5480,5481,7,18,0,0,5481,5482,7,19,0,0,5482,5483,7,8,0,0,5483,5484,7,23,0,0,5484,5485,7,3,0,0,5485,5486,7,6,0,0,5486,732,1,0,0,0,5487,5488,7,14,0,0,5488,5489,7,19,0,0,5489,5490,7,5,0,0,5490,5491,7,17,0,0,5491,5492,7,23,0,0,5492,5493,7,12,0,0,5493,5494,5,95,0,0,5494,5495,7,12,0,0,5495,5496,7,3,0,0,5496,5497,7,23,0,0,5497,5498,7,7,0,0,5498,734,1,0,0,0,5499,5500,7,14,0,0,5500,5501,7,19,0,0,5501,5502,7,23,0,0,5502,5503,7,23,0,0,5503,5504,7,7,0,0,5504,5505,7,12,0,0,5505,5506,7,6,0,0,5506,736,1,0,0,0,5507,5508,7,14,0,0,5508,5509,7,19,0,0,5509,5510,7,23,0,0,5510,5511,7,23,0,0,5511,5512,7,15,0,0,5512,5513,7,6,0,0,5513,738,1,0,0,0,5514,5515,7,14,0,0,5515,5516,7,19,0,0,5516,5517,7,23,0,0,5517,5518,7,25,0,0,5518,5519,7,3,0,0,5519,5520,7,14,0,0,5520,5521,7,6,0,0,5521,740,1,0,0,0,5522,5523,7,14,0,0,5523,5524,7,19,0,0,5524,5525,7,23,0,0,5525,5526,7,25,0,0,5526,5527,7,5,0,0,5527,5528,7,7,0,0,5528,5529,7,6,0,0,5529,5530,7,15,0,0,5530,5531,7,19,0,0,5531,5532,7,12,0,0,5532,742,1,0,0,0,5533,5534,7,14,0,0,5534,5535,7,19,0,0,5535,5536,7,23,0,0,5536,5537,7,25,0,0,5537,5538,7,8,0,0,5538,5539,7,7,0,0,5539,5540,7,11,0,0,5540,5541,7,11,0,0,5541,5542,7,7,0,0,5542,5543,7,4,0,0,5543,744,1,0,0,0,5544,5545,7,14,0,0,5545,5546,7,19,0,0,5546,5547,7,23,0,0,5547,5548,7,25,0,0,5548,5549,7,8,0,0,5549,5550,7,7,0,0,5550,5551,7,11,0,0,5551,5552,7,11,0,0,5552,5553,7,15,0,0,5553,5554,7,19,0,0,5554,5555,7,12,0,0,5555,746,1,0,0,0,5556,5557,7,14,0,0,5557,5558,7,19,0,0,5558,5559,7,12,0,0,5559,5560,7,14,0,0,5560,5561,7,17,0,0,5561,5562,7,8,0,0,5562,5563,7,8,0,0,5563,5564,7,7,0,0,5564,5565,7,12,0,0,5565,5566,7,6,0,0,5566,748,1,0,0,0,5567,5568,7,14,0,0,5568,5569,7,19,0,0,5569,5570,7,12,0,0,5570,5571,7,12,0,0,5571,5572,7,7,0,0,5572,5573,7,14,0,0,5573,5574,7,6,0,0,5574,750,1,0,0,0,5575,5576,7,14,0,0,5576,5577,7,19,0,0,5577,5578,7,12,0,0,5578,5579,7,12,0,0,5579,5580,7,7,0,0,5580,5581,7,14,0,0,5581,5582,7,6,0,0,5582,5583,7,15,0,0,5583,5584,7,19,0,0,5584,5585,7,12,0,0,5585,752,1,0,0,0,5586,5587,7,14,0,0,5587,5588,7,19,0,0,5588,5589,7,12,0,0,5589,5590,7,11,0,0,5590,5591,7,15,0,0,5591,5592,7,11,0,0,5592,5593,7,6,0,0,5593,5594,7,7,0,0,5594,5595,7,12,0,0,5595,5596,7,6,0,0,5596,754,1,0,0,0,5597,5598,7,14,0,0,5598,5599,7,19,0,0,5599,5600,7,12,0,0,5600,5601,7,11,0,0,5601,5602,7,6,0,0,5602,5603,7,8,0,0,5603,5604,7,3,0,0,5604,5605,7,15,0,0,5605,5606,7,12,0,0,5606,5607,7,6,0,0,5607,5608,5,95,0,0,5608,5609,7,14,0,0,5609,5610,7,3,0,0,5610,5611,7,6,0,0,5611,5612,7,3,0,0,5612,5613,7,5,0,0,5613,5614,7,19,0,0,5614,5615,7,22,0,0,5615,756,1,0,0,0,5616,5617,7,14,0,0,5617,5618,7,19,0,0,5618,5619,7,12,0,0,5619,5620,7,11,0,0,5620,5621,7,6,0,0,5621,5622,7,8,0,0,5622,5623,7,3,0,0,5623,5624,7,15,0,0,5624,5625,7,12,0,0,5625,5626,7,6,0,0,5626,5627,5,95,0,0,5627,5628,7,11,0,0,5628,5629,7,14,0,0,5629,5630,7,20,0,0,5630,5631,7,7,0,0,5631,5632,7,23,0,0,5632,5633,7,3,0,0,5633,758,1,0,0,0,5634,5635,7,14,0,0,5635,5636,7,19,0,0,5636,5637,7,12,0,0,5637,5638,7,11,0,0,5638,5639,7,6,0,0,5639,5640,7,8,0,0,5640,5641,7,3,0,0,5641,5642,7,15,0,0,5642,5643,7,12,0,0,5643,5644,7,6,0,0,5644,5645,5,95,0,0,5645,5646,7,12,0,0,5646,5647,7,3,0,0,5647,5648,7,23,0,0,5648,5649,7,7,0,0,5649,760,1,0,0,0,5650,5651,7,14,0,0,5651,5652,7,19,0,0,5652,5653,7,12,0,0,5653,5654,7,6,0,0,5654,5655,7,3,0,0,5655,5656,7,15,0,0,5656,5657,7,12,0,0,5657,5658,7,11,0,0,5658,762,1,0,0,0,5659,5660,7,14,0,0,5660,5661,7,19,0,0,5661,5662,7,12,0,0,5662,5663,7,6,0,0,5663,5664,7,7,0,0,5664,5665,7,26,0,0,5665,5666,7,6,0,0,5666,764,1,0,0,0,5667,5668,7,14,0,0,5668,5669,7,19,0,0,5669,5670,7,12,0,0,5670,5671,7,6,0,0,5671,5672,7,8,0,0,5672,5673,7,15,0,0,5673,5674,7,16,0,0,5674,5675,7,17,0,0,5675,5676,7,6,0,0,5676,5677,7,19,0,0,5677,5678,7,8,0,0,5678,5679,7,11,0,0,5679,766,1,0,0,0,5680,5681,7,14,0,0,5681,5682,7,19,0,0,5682,5683,7,25,0,0,5683,5684,7,10,0,0,5684,768,1,0,0,0,5685,5686,7,14,0,0,5686,5687,7,25,0,0,5687,5688,7,17,0,0,5688,770,1,0,0,0,5689,5690,7,14,0,0,5690,5691,7,10,0,0,5691,5692,7,14,0,0,5692,5693,7,5,0,0,5693,5694,7,7,0,0,5694,772,1,0,0,0,5695,5696,7,14,0,0,5696,5697,7,17,0,0,5697,5698,7,8,0,0,5698,5699,7,11,0,0,5699,5700,7,19,0,0,5700,5701,7,8,0,0,5701,5702,5,95,0,0,5702,5703,7,12,0,0,5703,5704,7,3,0,0,5704,5705,7,23,0,0,5705,5706,7,7,0,0,5706,774,1,0,0,0,5707,5708,7,4,0,0,5708,5709,7,3,0,0,5709,5710,7,6,0,0,5710,5711,7,3,0,0,5711,776,1,0,0,0,5712,5713,7,4,0,0,5713,5714,7,3,0,0,5714,5715,7,6,0,0,5715,5716,7,3,0,0,5716,5717,7,18,0,0,5717,5718,7,15,0,0,5718,5719,7,5,0,0,5719,5720,7,7,0,0,5720,778,1,0,0,0,5721,5722,7,4,0,0,5722,5723,7,7,0,0,5723,5724,7,3,0,0,5724,5725,7,5,0,0,5725,5726,7,5,0,0,5726,5727,7,19,0,0,5727,5728,7,14,0,0,5728,5729,7,3,0,0,5729,5730,7,6,0,0,5730,5731,7,7,0,0,5731,780,1,0,0,0,5732,5733,7,4,0,0,5733,5734,7,7,0,0,5734,5735,7,18,0,0,5735,5736,7,3,0,0,5736,5737,7,17,0,0,5737,5738,7,5,0,0,5738,5739,7,6,0,0,5739,5740,5,95,0,0,5740,5741,7,3,0,0,5741,5742,7,17,0,0,5742,5743,7,6,0,0,5743,5744,7,20,0,0,5744,782,1,0,0,0,5745,5746,7,4,0,0,5746,5747,7,7,0,0,5747,5748,7,18,0,0,5748,5749,7,15,0,0,5749,5750,7,12,0,0,5750,5751,7,7,0,0,5751,5752,7,8,0,0,5752,784,1,0,0,0,5753,5754,7,4,0,0,5754,5755,7,7,0,0,5755,5756,7,5,0,0,5756,5757,7,3,0,0,5757,5758,7,10,0,0,5758,5759,5,95,0,0,5759,5760,7,21,0,0,5760,5761,7,7,0,0,5761,5762,7,10,0,0,5762,5763,5,95,0,0,5763,5764,7,9,0,0,5764,5765,7,8,0,0,5765,5766,7,15,0,0,5766,5767,7,6,0,0,5767,5768,7,7,0,0,5768,786,1,0,0,0,5769,5770,7,4,0,0,5770,5771,7,7,0,0,5771,5772,7,11,0,0,5772,5773,5,95,0,0,5773,5774,7,21,0,0,5774,5775,7,7,0,0,5775,5776,7,10,0,0,5776,5777,5,95,0,0,5777,5778,7,18,0,0,5778,5779,7,15,0,0,5779,5780,7,5,0,0,5780,5781,7,7,0,0,5781,788,1,0,0,0,5782,5783,7,4,0,0,5783,5784,7,15,0,0,5784,5785,7,8,0,0,5785,5786,7,7,0,0,5786,5787,7,14,0,0,5787,5788,7,6,0,0,5788,5789,7,19,0,0,5789,5790,7,8,0,0,5790,5791,7,10,0,0,5791,790,1,0,0,0,5792,5793,7,4,0,0,5793,5794,7,15,0,0,5794,5795,7,11,0,0,5795,5796,7,3,0,0,5796,5797,7,16,0,0,5797,5798,7,5,0,0,5798,5799,7,7,0,0,5799,792,1,0,0,0,5800,5801,7,4,0,0,5801,5802,7,15,0,0,5802,5803,7,11,0,0,5803,5804,7,14,0,0,5804,5805,7,3,0,0,5805,5806,7,8,0,0,5806,5807,7,4,0,0,5807,794,1,0,0,0,5808,5809,7,4,0,0,5809,5810,7,15,0,0,5810,5811,7,11,0,0,5811,5812,7,21,0,0,5812,796,1,0,0,0,5813,5814,7,4,0,0,5814,5815,7,19,0,0,5815,798,1,0,0,0,5816,5817,7,4,0,0,5817,5818,7,17,0,0,5818,5819,7,23,0,0,5819,5820,7,25,0,0,5820,5821,7,18,0,0,5821,5822,7,15,0,0,5822,5823,7,5,0,0,5823,5824,7,7,0,0,5824,800,1,0,0,0,5825,5826,7,4,0,0,5826,5827,7,17,0,0,5827,5828,7,25,0,0,5828,5829,7,5,0,0,5829,5830,7,15,0,0,5830,5831,7,14,0,0,5831,5832,7,3,0,0,5832,5833,7,6,0,0,5833,5834,7,7,0,0,5834,802,1,0,0,0,5835,5836,7,4,0,0,5836,5837,7,10,0,0,5837,5838,7,12,0,0,5838,5839,7,3,0,0,5839,5840,7,23,0,0,5840,5841,7,15,0,0,5841,5842,7,14,0,0,5842,804,1,0,0,0,5843,5844,7,7,0,0,5844,5845,7,12,0,0,5845,5846,7,3,0,0,5846,5847,7,16,0,0,5847,5848,7,5,0,0,5848,5849,7,7,0,0,5849,806,1,0,0,0,5850,5851,7,7,0,0,5851,5852,7,12,0,0,5852,5853,7,14,0,0,5853,5854,7,8,0,0,5854,5855,7,10,0,0,5855,5856,7,25,0,0,5856,5857,7,6,0,0,5857,5858,7,7,0,0,5858,5859,7,4,0,0,5859,808,1,0,0,0,5860,5861,7,7,0,0,5861,5862,7,12,0,0,5862,5863,7,14,0,0,5863,5864,7,8,0,0,5864,5865,7,10,0,0,5865,5866,7,25,0,0,5866,5867,7,6,0,0,5867,5868,7,15,0,0,5868,5869,7,19,0,0,5869,5870,7,12,0,0,5870,810,1,0,0,0,5871,5872,7,7,0,0,5872,5873,7,12,0,0,5873,5874,7,14,0,0,5874,5875,7,8,0,0,5875,5876,7,10,0,0,5876,5877,7,25,0,0,5877,5878,7,6,0,0,5878,5879,7,15,0,0,5879,5880,7,19,0,0,5880,5881,7,12,0,0,5881,5882,5,95,0,0,5882,5883,7,21,0,0,5883,5884,7,7,0,0,5884,5885,7,10,0,0,5885,5886,5,95,0,0,5886,5887,7,15,0,0,5887,5888,7,4,0,0,5888,812,1,0,0,0,5889,5890,7,7,0,0,5890,5891,7,12,0,0,5891,5892,7,4,0,0,5892,814,1,0,0,0,5893,5894,7,7,0,0,5894,5895,7,12,0,0,5895,5896,7,4,0,0,5896,5897,7,11,0,0,5897,816,1,0,0,0,5898,5899,7,7,0,0,5899,5900,7,12,0,0,5900,5901,7,22,0,0,5901,5902,7,15,0,0,5902,5903,7,12,0,0,5903,5904,7,7,0,0,5904,818,1,0,0,0,5905,5906,7,7,0,0,5906,5907,7,12,0,0,5907,5908,7,22,0,0,5908,5909,7,15,0,0,5909,5910,7,12,0,0,5910,5911,7,7,0,0,5911,5912,7,11,0,0,5912,820,1,0,0,0,5913,5914,7,7,0,0,5914,5915,7,8,0,0,5915,5916,7,8,0,0,5916,5917,7,19,0,0,5917,5918,7,8,0,0,5918,822,1,0,0,0,5919,5920,7,7,0,0,5920,5921,7,8,0,0,5921,5922,7,8,0,0,5922,5923,7,19,0,0,5923,5924,7,8,0,0,5924,5925,7,11,0,0,5925,824,1,0,0,0,5926,5927,7,7,0,0,5927,5928,7,11,0,0,5928,5929,7,14,0,0,5929,5930,7,3,0,0,5930,5931,7,25,0,0,5931,5932,7,7,0,0,5932,826,1,0,0,0,5933,5934,7,7,0,0,5934,5935,7,24,0,0,5935,5936,7,7,0,0,5936,5937,7,12,0,0,5937,828,1,0,0,0,5938,5939,7,7,0,0,5939,5940,7,24,0,0,5940,5941,7,7,0,0,5941,5942,7,12,0,0,5942,5943,7,6,0,0,5943,830,1,0,0,0,5944,5945,7,7,0,0,5945,5946,7,24,0,0,5946,5947,7,7,0,0,5947,5948,7,12,0,0,5948,5949,7,6,0,0,5949,5950,7,11,0,0,5950,832,1,0,0,0,5951,5952,7,7,0,0,5952,5953,7,24,0,0,5953,5954,7,7,0,0,5954,5955,7,8,0,0,5955,5956,7,10,0,0,5956,834,1,0,0,0,5957,5958,7,7,0,0,5958,5959,7,26,0,0,5959,5960,7,14,0,0,5960,5961,7,20,0,0,5961,5962,7,3,0,0,5962,5963,7,12,0,0,5963,5964,7,22,0,0,5964,5965,7,7,0,0,5965,836,1,0,0,0,5966,5967,7,7,0,0,5967,5968,7,26,0,0,5968,5969,7,14,0,0,5969,5970,7,5,0,0,5970,5971,7,17,0,0,5971,5972,7,11,0,0,5972,5973,7,15,0,0,5973,5974,7,24,0,0,5974,5975,7,7,0,0,5975,838,1,0,0,0,5976,5977,7,7,0,0,5977,5978,7,26,0,0,5978,5979,7,25,0,0,5979,5980,7,15,0,0,5980,5981,7,8,0,0,5981,5982,7,7,0,0,5982,840,1,0,0,0,5983,5984,7,7,0,0,5984,5985,7,26,0,0,5985,5986,7,25,0,0,5986,5987,7,19,0,0,5987,5988,7,8,0,0,5988,5989,7,6,0,0,5989,842,1,0,0,0,5990,5991,7,7,0,0,5991,5992,7,26,0,0,5992,5993,7,6,0,0,5993,5994,7,7,0,0,5994,5995,7,12,0,0,5995,5996,7,4,0,0,5996,5997,7,7,0,0,5997,5998,7,4,0,0,5998,844,1,0,0,0,5999,6e3,7,7,0,0,6e3,6001,7,26,0,0,6001,6002,7,6,0,0,6002,6003,7,7,0,0,6003,6004,7,12,0,0,6004,6005,7,6,0,0,6005,6006,5,95,0,0,6006,6007,7,11,0,0,6007,6008,7,15,0,0,6008,6009,7,13,0,0,6009,6010,7,7,0,0,6010,846,1,0,0,0,6011,6012,7,18,0,0,6012,6013,7,3,0,0,6013,6014,7,15,0,0,6014,6015,7,5,0,0,6015,6016,7,7,0,0,6016,6017,7,4,0,0,6017,6018,5,95,0,0,6018,6019,7,5,0,0,6019,6020,7,19,0,0,6020,6021,7,22,0,0,6021,6022,7,15,0,0,6022,6023,7,12,0,0,6023,6024,5,95,0,0,6024,6025,7,3,0,0,6025,6026,7,6,0,0,6026,6027,7,6,0,0,6027,6028,7,7,0,0,6028,6029,7,23,0,0,6029,6030,7,25,0,0,6030,6031,7,6,0,0,6031,6032,7,11,0,0,6032,848,1,0,0,0,6033,6034,7,18,0,0,6034,6035,7,3,0,0,6035,6036,7,11,0,0,6036,6037,7,6,0,0,6037,850,1,0,0,0,6038,6039,7,18,0,0,6039,6040,7,3,0,0,6040,6041,7,17,0,0,6041,6042,7,5,0,0,6042,6043,7,6,0,0,6043,6044,7,11,0,0,6044,852,1,0,0,0,6045,6046,7,18,0,0,6046,6047,7,15,0,0,6047,6048,7,7,0,0,6048,6049,7,5,0,0,6049,6050,7,4,0,0,6050,6051,7,11,0,0,6051,854,1,0,0,0,6052,6053,7,18,0,0,6053,6054,7,15,0,0,6054,6055,7,5,0,0,6055,6056,7,7,0,0,6056,6057,5,95,0,0,6057,6058,7,16,0,0,6058,6059,7,5,0,0,6059,6060,7,19,0,0,6060,6061,7,14,0,0,6061,6062,7,21,0,0,6062,6063,5,95,0,0,6063,6064,7,11,0,0,6064,6065,7,15,0,0,6065,6066,7,13,0,0,6066,6067,7,7,0,0,6067,856,1,0,0,0,6068,6069,7,18,0,0,6069,6070,7,15,0,0,6070,6071,7,5,0,0,6071,6072,7,6,0,0,6072,6073,7,7,0,0,6073,6074,7,8,0,0,6074,858,1,0,0,0,6075,6076,7,18,0,0,6076,6077,7,15,0,0,6077,6078,7,8,0,0,6078,6079,7,11,0,0,6079,6080,7,6,0,0,6080,860,1,0,0,0,6081,6082,7,18,0,0,6082,6083,7,15,0,0,6083,6084,7,26,0,0,6084,6085,7,7,0,0,6085,6086,7,4,0,0,6086,862,1,0,0,0,6087,6088,7,18,0,0,6088,6089,7,5,0,0,6089,6090,7,17,0,0,6090,6091,7,11,0,0,6091,6092,7,20,0,0,6092,864,1,0,0,0,6093,6094,7,18,0,0,6094,6095,7,19,0,0,6095,6096,7,5,0,0,6096,6097,7,5,0,0,6097,6098,7,19,0,0,6098,6099,7,9,0,0,6099,6100,7,15,0,0,6100,6101,7,12,0,0,6101,6102,7,22,0,0,6102,866,1,0,0,0,6103,6104,7,18,0,0,6104,6105,7,19,0,0,6105,6106,7,5,0,0,6106,6107,7,5,0,0,6107,6108,7,19,0,0,6108,6109,7,9,0,0,6109,6110,7,11,0,0,6110,868,1,0,0,0,6111,6112,7,18,0,0,6112,6113,7,19,0,0,6113,6114,7,17,0,0,6114,6115,7,12,0,0,6115,6116,7,4,0,0,6116,870,1,0,0,0,6117,6118,7,18,0,0,6118,6119,7,17,0,0,6119,6120,7,5,0,0,6120,6121,7,5,0,0,6121,872,1,0,0,0,6122,6123,7,18,0,0,6123,6124,7,17,0,0,6124,6125,7,12,0,0,6125,6126,7,14,0,0,6126,6127,7,6,0,0,6127,6128,7,15,0,0,6128,6129,7,19,0,0,6129,6130,7,12,0,0,6130,874,1,0,0,0,6131,6132,7,22,0,0,6132,6133,7,7,0,0,6133,6134,7,12,0,0,6134,6135,7,7,0,0,6135,6136,7,8,0,0,6136,6137,7,3,0,0,6137,6138,7,5,0,0,6138,876,1,0,0,0,6139,6140,7,22,0,0,6140,6141,7,5,0,0,6141,6142,7,19,0,0,6142,6143,7,16,0,0,6143,6144,7,3,0,0,6144,6145,7,5,0,0,6145,878,1,0,0,0,6146,6147,7,22,0,0,6147,6148,7,8,0,0,6148,6149,7,3,0,0,6149,6150,7,12,0,0,6150,6151,7,6,0,0,6151,6152,7,11,0,0,6152,880,1,0,0,0,6153,6154,7,22,0,0,6154,6155,7,8,0,0,6155,6156,7,19,0,0,6156,6157,7,17,0,0,6157,6158,7,25,0,0,6158,6159,5,95,0,0,6159,6160,7,8,0,0,6160,6161,7,7,0,0,6161,6162,7,25,0,0,6162,6163,7,5,0,0,6163,6164,7,15,0,0,6164,6165,7,14,0,0,6165,6166,7,3,0,0,6166,6167,7,6,0,0,6167,6168,7,15,0,0,6168,6169,7,19,0,0,6169,6170,7,12,0,0,6170,882,1,0,0,0,6171,6172,7,20,0,0,6172,6173,7,3,0,0,6173,6174,7,12,0,0,6174,6175,7,4,0,0,6175,6176,7,5,0,0,6176,6177,7,7,0,0,6177,6178,7,8,0,0,6178,884,1,0,0,0,6179,6180,7,20,0,0,6180,6181,7,3,0,0,6181,6182,7,11,0,0,6182,6183,7,20,0,0,6183,886,1,0,0,0,6184,6185,7,20,0,0,6185,6186,7,7,0,0,6186,6187,7,5,0,0,6187,6188,7,25,0,0,6188,888,1,0,0,0,6189,6190,7,20,0,0,6190,6191,7,15,0,0,6191,6192,7,11,0,0,6192,6193,7,6,0,0,6193,6194,7,19,0,0,6194,6195,7,8,0,0,6195,6196,7,10,0,0,6196,890,1,0,0,0,6197,6198,7,20,0,0,6198,6199,7,19,0,0,6199,6200,7,11,0,0,6200,6201,7,6,0,0,6201,892,1,0,0,0,6202,6203,7,20,0,0,6203,6204,7,19,0,0,6204,6205,7,11,0,0,6205,6206,7,6,0,0,6206,6207,7,11,0,0,6207,894,1,0,0,0,6208,6209,7,15,0,0,6209,6210,7,4,0,0,6210,6211,7,7,0,0,6211,6212,7,12,0,0,6212,6213,7,6,0,0,6213,6214,7,15,0,0,6214,6215,7,18,0,0,6215,6216,7,15,0,0,6216,6217,7,7,0,0,6217,6218,7,4,0,0,6218,896,1,0,0,0,6219,6220,7,15,0,0,6220,6221,7,22,0,0,6221,6222,7,12,0,0,6222,6223,7,19,0,0,6223,6224,7,8,0,0,6224,6225,7,7,0,0,6225,6226,5,95,0,0,6226,6227,7,11,0,0,6227,6228,7,7,0,0,6228,6229,7,8,0,0,6229,6230,7,24,0,0,6230,6231,7,7,0,0,6231,6232,7,8,0,0,6232,6233,5,95,0,0,6233,6234,7,15,0,0,6234,6235,7,4,0,0,6235,6236,7,11,0,0,6236,898,1,0,0,0,6237,6238,7,15,0,0,6238,6239,7,23,0,0,6239,6240,7,25,0,0,6240,6241,7,19,0,0,6241,6242,7,8,0,0,6242,6243,7,6,0,0,6243,900,1,0,0,0,6244,6245,7,15,0,0,6245,6246,7,12,0,0,6246,6247,7,14,0,0,6247,6248,7,8,0,0,6248,6249,7,7,0,0,6249,6250,7,23,0,0,6250,6251,7,7,0,0,6251,6252,7,12,0,0,6252,6253,7,6,0,0,6253,902,1,0,0,0,6254,6255,7,15,0,0,6255,6256,7,12,0,0,6256,6257,7,4,0,0,6257,6258,7,7,0,0,6258,6259,7,26,0,0,6259,6260,7,7,0,0,6260,6261,7,11,0,0,6261,904,1,0,0,0,6262,6263,7,15,0,0,6263,6264,7,12,0,0,6264,6265,7,15,0,0,6265,6266,7,6,0,0,6266,6267,7,15,0,0,6267,6268,7,3,0,0,6268,6269,7,5,0,0,6269,6270,5,95,0,0,6270,6271,7,11,0,0,6271,6272,7,15,0,0,6272,6273,7,13,0,0,6273,6274,7,7,0,0,6274,906,1,0,0,0,6275,6276,7,15,0,0,6276,6277,7,12,0,0,6277,6278,7,25,0,0,6278,6279,7,5,0,0,6279,6280,7,3,0,0,6280,6281,7,14,0,0,6281,6282,7,7,0,0,6282,908,1,0,0,0,6283,6284,7,15,0,0,6284,6285,7,12,0,0,6285,6286,7,11,0,0,6286,6287,7,7,0,0,6287,6288,7,8,0,0,6288,6289,7,6,0,0,6289,6290,5,95,0,0,6290,6291,7,23,0,0,6291,6292,7,7,0,0,6292,6293,7,6,0,0,6293,6294,7,20,0,0,6294,6295,7,19,0,0,6295,6296,7,4,0,0,6296,910,1,0,0,0,6297,6298,7,15,0,0,6298,6299,7,12,0,0,6299,6300,7,11,0,0,6300,6301,7,6,0,0,6301,6302,7,3,0,0,6302,6303,7,5,0,0,6303,6304,7,5,0,0,6304,912,1,0,0,0,6305,6306,7,15,0,0,6306,6307,7,12,0,0,6307,6308,7,11,0,0,6308,6309,7,6,0,0,6309,6310,7,3,0,0,6310,6311,7,12,0,0,6311,6312,7,14,0,0,6312,6313,7,7,0,0,6313,914,1,0,0,0,6314,6315,7,15,0,0,6315,6316,7,12,0,0,6316,6317,7,11,0,0,6317,6318,7,6,0,0,6318,6319,7,3,0,0,6319,6320,7,12,0,0,6320,6321,7,6,0,0,6321,916,1,0,0,0,6322,6323,7,15,0,0,6323,6324,7,12,0,0,6324,6325,7,24,0,0,6325,6326,7,15,0,0,6326,6327,7,11,0,0,6327,6328,7,15,0,0,6328,6329,7,16,0,0,6329,6330,7,5,0,0,6330,6331,7,7,0,0,6331,918,1,0,0,0,6332,6333,7,15,0,0,6333,6334,7,12,0,0,6334,6335,7,24,0,0,6335,6336,7,19,0,0,6336,6337,7,21,0,0,6337,6338,7,7,0,0,6338,6339,7,8,0,0,6339,920,1,0,0,0,6340,6341,7,15,0,0,6341,6342,7,19,0,0,6342,922,1,0,0,0,6343,6344,7,15,0,0,6344,6345,7,19,0,0,6345,6346,5,95,0,0,6346,6347,7,6,0,0,6347,6348,7,20,0,0,6348,6349,7,8,0,0,6349,6350,7,7,0,0,6350,6351,7,3,0,0,6351,6352,7,4,0,0,6352,924,1,0,0,0,6353,6354,7,15,0,0,6354,6355,7,25,0,0,6355,6356,7,14,0,0,6356,926,1,0,0,0,6357,6358,7,15,0,0,6358,6359,7,11,0,0,6359,6360,7,19,0,0,6360,6361,7,5,0,0,6361,6362,7,3,0,0,6362,6363,7,6,0,0,6363,6364,7,15,0,0,6364,6365,7,19,0,0,6365,6366,7,12,0,0,6366,928,1,0,0,0,6367,6368,7,15,0,0,6368,6369,7,11,0,0,6369,6370,7,11,0,0,6370,6371,7,17,0,0,6371,6372,7,7,0,0,6372,6373,7,8,0,0,6373,930,1,0,0,0,6374,6375,7,27,0,0,6375,6376,7,11,0,0,6376,6377,7,19,0,0,6377,6378,7,12,0,0,6378,932,1,0,0,0,6379,6380,7,21,0,0,6380,6381,7,7,0,0,6381,6382,7,10,0,0,6382,6383,5,95,0,0,6383,6384,7,16,0,0,6384,6385,7,5,0,0,6385,6386,7,19,0,0,6386,6387,7,14,0,0,6387,6388,7,21,0,0,6388,6389,5,95,0,0,6389,6390,7,11,0,0,6390,6391,7,15,0,0,6391,6392,7,13,0,0,6392,6393,7,7,0,0,6393,934,1,0,0,0,6394,6395,7,5,0,0,6395,6396,7,3,0,0,6396,6397,7,12,0,0,6397,6398,7,22,0,0,6398,6399,7,17,0,0,6399,6400,7,3,0,0,6400,6401,7,22,0,0,6401,6402,7,7,0,0,6402,936,1,0,0,0,6403,6404,7,5,0,0,6404,6405,7,3,0,0,6405,6406,7,11,0,0,6406,6407,7,6,0,0,6407,938,1,0,0,0,6408,6409,7,5,0,0,6409,6410,7,7,0,0,6410,6411,7,3,0,0,6411,6412,7,24,0,0,6412,6413,7,7,0,0,6413,6414,7,11,0,0,6414,940,1,0,0,0,6415,6416,7,5,0,0,6416,6417,7,7,0,0,6417,6418,7,11,0,0,6418,6419,7,11,0,0,6419,942,1,0,0,0,6420,6421,7,5,0,0,6421,6422,7,7,0,0,6422,6423,7,24,0,0,6423,6424,7,7,0,0,6424,6425,7,5,0,0,6425,944,1,0,0,0,6426,6427,7,5,0,0,6427,6428,7,15,0,0,6428,6429,7,11,0,0,6429,6430,7,6,0,0,6430,946,1,0,0,0,6431,6432,7,5,0,0,6432,6433,7,19,0,0,6433,6434,7,14,0,0,6434,6435,7,3,0,0,6435,6436,7,5,0,0,6436,948,1,0,0,0,6437,6438,7,5,0,0,6438,6439,7,19,0,0,6439,6440,7,22,0,0,6440,6441,7,18,0,0,6441,6442,7,15,0,0,6442,6443,7,5,0,0,6443,6444,7,7,0,0,6444,950,1,0,0,0,6445,6446,7,5,0,0,6446,6447,7,19,0,0,6447,6448,7,22,0,0,6448,6449,7,11,0,0,6449,952,1,0,0,0,6450,6451,7,23,0,0,6451,6452,7,3,0,0,6452,6453,7,11,0,0,6453,6454,7,6,0,0,6454,6455,7,7,0,0,6455,6456,7,8,0,0,6456,954,1,0,0,0,6457,6458,7,23,0,0,6458,6459,7,3,0,0,6459,6460,7,11,0,0,6460,6461,7,6,0,0,6461,6462,7,7,0,0,6462,6463,7,8,0,0,6463,6464,5,95,0,0,6464,6465,7,3,0,0,6465,6466,7,17,0,0,6466,6467,7,6,0,0,6467,6468,7,19,0,0,6468,6469,5,95,0,0,6469,6470,7,25,0,0,6470,6471,7,19,0,0,6471,6472,7,11,0,0,6472,6473,7,15,0,0,6473,6474,7,6,0,0,6474,6475,7,15,0,0,6475,6476,7,19,0,0,6476,6477,7,12,0,0,6477,956,1,0,0,0,6478,6479,7,23,0,0,6479,6480,7,3,0,0,6480,6481,7,11,0,0,6481,6482,7,6,0,0,6482,6483,7,7,0,0,6483,6484,7,8,0,0,6484,6485,5,95,0,0,6485,6486,7,14,0,0,6486,6487,7,19,0,0,6487,6488,7,12,0,0,6488,6489,7,12,0,0,6489,6490,7,7,0,0,6490,6491,7,14,0,0,6491,6492,7,6,0,0,6492,6493,5,95,0,0,6493,6494,7,8,0,0,6494,6495,7,7,0,0,6495,6496,7,6,0,0,6496,6497,7,8,0,0,6497,6498,7,10,0,0,6498,958,1,0,0,0,6499,6500,7,23,0,0,6500,6501,7,3,0,0,6501,6502,7,11,0,0,6502,6503,7,6,0,0,6503,6504,7,7,0,0,6504,6505,7,8,0,0,6505,6506,5,95,0,0,6506,6507,7,4,0,0,6507,6508,7,7,0,0,6508,6509,7,5,0,0,6509,6510,7,3,0,0,6510,6511,7,10,0,0,6511,960,1,0,0,0,6512,6513,7,23,0,0,6513,6514,7,3,0,0,6514,6515,7,11,0,0,6515,6516,7,6,0,0,6516,6517,7,7,0,0,6517,6518,7,8,0,0,6518,6519,5,95,0,0,6519,6520,7,20,0,0,6520,6521,7,7,0,0,6521,6522,7,3,0,0,6522,6523,7,8,0,0,6523,6524,7,6,0,0,6524,6525,7,16,0,0,6525,6526,7,7,0,0,6526,6527,7,3,0,0,6527,6528,7,6,0,0,6528,6529,5,95,0,0,6529,6530,7,25,0,0,6530,6531,7,7,0,0,6531,6532,7,8,0,0,6532,6533,7,15,0,0,6533,6534,7,19,0,0,6534,6535,7,4,0,0,6535,962,1,0,0,0,6536,6537,7,23,0,0,6537,6538,7,3,0,0,6538,6539,7,11,0,0,6539,6540,7,6,0,0,6540,6541,7,7,0,0,6541,6542,7,8,0,0,6542,6543,5,95,0,0,6543,6544,7,20,0,0,6544,6545,7,19,0,0,6545,6546,7,11,0,0,6546,6547,7,6,0,0,6547,964,1,0,0,0,6548,6549,7,23,0,0,6549,6550,7,3,0,0,6550,6551,7,11,0,0,6551,6552,7,6,0,0,6552,6553,7,7,0,0,6553,6554,7,8,0,0,6554,6555,5,95,0,0,6555,6556,7,5,0,0,6556,6557,7,19,0,0,6557,6558,7,22,0,0,6558,6559,5,95,0,0,6559,6560,7,18,0,0,6560,6561,7,15,0,0,6561,6562,7,5,0,0,6562,6563,7,7,0,0,6563,966,1,0,0,0,6564,6565,7,23,0,0,6565,6566,7,3,0,0,6566,6567,7,11,0,0,6567,6568,7,6,0,0,6568,6569,7,7,0,0,6569,6570,7,8,0,0,6570,6571,5,95,0,0,6571,6572,7,5,0,0,6572,6573,7,19,0,0,6573,6574,7,22,0,0,6574,6575,5,95,0,0,6575,6576,7,25,0,0,6576,6577,7,19,0,0,6577,6578,7,11,0,0,6578,968,1,0,0,0,6579,6580,7,23,0,0,6580,6581,7,3,0,0,6581,6582,7,11,0,0,6582,6583,7,6,0,0,6583,6584,7,7,0,0,6584,6585,7,8,0,0,6585,6586,5,95,0,0,6586,6587,7,25,0,0,6587,6588,7,3,0,0,6588,6589,7,11,0,0,6589,6590,7,11,0,0,6590,6591,7,9,0,0,6591,6592,7,19,0,0,6592,6593,7,8,0,0,6593,6594,7,4,0,0,6594,970,1,0,0,0,6595,6596,7,23,0,0,6596,6597,7,3,0,0,6597,6598,7,11,0,0,6598,6599,7,6,0,0,6599,6600,7,7,0,0,6600,6601,7,8,0,0,6601,6602,5,95,0,0,6602,6603,7,25,0,0,6603,6604,7,19,0,0,6604,6605,7,8,0,0,6605,6606,7,6,0,0,6606,972,1,0,0,0,6607,6608,7,23,0,0,6608,6609,7,3,0,0,6609,6610,7,11,0,0,6610,6611,7,6,0,0,6611,6612,7,7,0,0,6612,6613,7,8,0,0,6613,6614,5,95,0,0,6614,6615,7,8,0,0,6615,6616,7,7,0,0,6616,6617,7,6,0,0,6617,6618,7,8,0,0,6618,6619,7,10,0,0,6619,6620,5,95,0,0,6620,6621,7,14,0,0,6621,6622,7,19,0,0,6622,6623,7,17,0,0,6623,6624,7,12,0,0,6624,6625,7,6,0,0,6625,974,1,0,0,0,6626,6627,7,23,0,0,6627,6628,7,3,0,0,6628,6629,7,11,0,0,6629,6630,7,6,0,0,6630,6631,7,7,0,0,6631,6632,7,8,0,0,6632,6633,5,95,0,0,6633,6634,7,11,0,0,6634,6635,7,11,0,0,6635,6636,7,5,0,0,6636,976,1,0,0,0,6637,6638,7,23,0,0,6638,6639,7,3,0,0,6639,6640,7,11,0,0,6640,6641,7,6,0,0,6641,6642,7,7,0,0,6642,6643,7,8,0,0,6643,6644,5,95,0,0,6644,6645,7,11,0,0,6645,6646,7,11,0,0,6646,6647,7,5,0,0,6647,6648,5,95,0,0,6648,6649,7,14,0,0,6649,6650,7,3,0,0,6650,978,1,0,0,0,6651,6652,7,23,0,0,6652,6653,7,3,0,0,6653,6654,7,11,0,0,6654,6655,7,6,0,0,6655,6656,7,7,0,0,6656,6657,7,8,0,0,6657,6658,5,95,0,0,6658,6659,7,11,0,0,6659,6660,7,11,0,0,6660,6661,7,5,0,0,6661,6662,5,95,0,0,6662,6663,7,14,0,0,6663,6664,7,3,0,0,6664,6665,7,25,0,0,6665,6666,7,3,0,0,6666,6667,7,6,0,0,6667,6668,7,20,0,0,6668,980,1,0,0,0,6669,6670,7,23,0,0,6670,6671,7,3,0,0,6671,6672,7,11,0,0,6672,6673,7,6,0,0,6673,6674,7,7,0,0,6674,6675,7,8,0,0,6675,6676,5,95,0,0,6676,6677,7,11,0,0,6677,6678,7,11,0,0,6678,6679,7,5,0,0,6679,6680,5,95,0,0,6680,6681,7,14,0,0,6681,6682,7,7,0,0,6682,6683,7,8,0,0,6683,6684,7,6,0,0,6684,982,1,0,0,0,6685,6686,7,23,0,0,6686,6687,7,3,0,0,6687,6688,7,11,0,0,6688,6689,7,6,0,0,6689,6690,7,7,0,0,6690,6691,7,8,0,0,6691,6692,5,95,0,0,6692,6693,7,11,0,0,6693,6694,7,11,0,0,6694,6695,7,5,0,0,6695,6696,5,95,0,0,6696,6697,7,14,0,0,6697,6698,7,15,0,0,6698,6699,7,25,0,0,6699,6700,7,20,0,0,6700,6701,7,7,0,0,6701,6702,7,8,0,0,6702,984,1,0,0,0,6703,6704,7,23,0,0,6704,6705,7,3,0,0,6705,6706,7,11,0,0,6706,6707,7,6,0,0,6707,6708,7,7,0,0,6708,6709,7,8,0,0,6709,6710,5,95,0,0,6710,6711,7,11,0,0,6711,6712,7,11,0,0,6712,6713,7,5,0,0,6713,6714,5,95,0,0,6714,6715,7,14,0,0,6715,6716,7,8,0,0,6716,6717,7,5,0,0,6717,986,1,0,0,0,6718,6719,7,23,0,0,6719,6720,7,3,0,0,6720,6721,7,11,0,0,6721,6722,7,6,0,0,6722,6723,7,7,0,0,6723,6724,7,8,0,0,6724,6725,5,95,0,0,6725,6726,7,11,0,0,6726,6727,7,11,0,0,6727,6728,7,5,0,0,6728,6729,5,95,0,0,6729,6730,7,14,0,0,6730,6731,7,8,0,0,6731,6732,7,5,0,0,6732,6733,7,25,0,0,6733,6734,7,3,0,0,6734,6735,7,6,0,0,6735,6736,7,20,0,0,6736,988,1,0,0,0,6737,6738,7,23,0,0,6738,6739,7,3,0,0,6739,6740,7,11,0,0,6740,6741,7,6,0,0,6741,6742,7,7,0,0,6742,6743,7,8,0,0,6743,6744,5,95,0,0,6744,6745,7,11,0,0,6745,6746,7,11,0,0,6746,6747,7,5,0,0,6747,6748,5,95,0,0,6748,6749,7,21,0,0,6749,6750,7,7,0,0,6750,6751,7,10,0,0,6751,990,1,0,0,0,6752,6753,7,23,0,0,6753,6754,7,3,0,0,6754,6755,7,11,0,0,6755,6756,7,6,0,0,6756,6757,7,7,0,0,6757,6758,7,8,0,0,6758,6759,5,95,0,0,6759,6760,7,6,0,0,6760,6761,7,5,0,0,6761,6762,7,11,0,0,6762,6763,5,95,0,0,6763,6764,7,24,0,0,6764,6765,7,7,0,0,6765,6766,7,8,0,0,6766,6767,7,11,0,0,6767,6768,7,15,0,0,6768,6769,7,19,0,0,6769,6770,7,12,0,0,6770,992,1,0,0,0,6771,6772,7,23,0,0,6772,6773,7,3,0,0,6773,6774,7,11,0,0,6774,6775,7,6,0,0,6775,6776,7,7,0,0,6776,6777,7,8,0,0,6777,6778,5,95,0,0,6778,6779,7,17,0,0,6779,6780,7,11,0,0,6780,6781,7,7,0,0,6781,6782,7,8,0,0,6782,994,1,0,0,0,6783,6784,7,23,0,0,6784,6785,7,3,0,0,6785,6786,7,26,0,0,6786,6787,5,95,0,0,6787,6788,7,14,0,0,6788,6789,7,19,0,0,6789,6790,7,12,0,0,6790,6791,7,12,0,0,6791,6792,7,7,0,0,6792,6793,7,14,0,0,6793,6794,7,6,0,0,6794,6795,7,15,0,0,6795,6796,7,19,0,0,6796,6797,7,12,0,0,6797,6798,7,11,0,0,6798,6799,5,95,0,0,6799,6800,7,25,0,0,6800,6801,7,7,0,0,6801,6802,7,8,0,0,6802,6803,5,95,0,0,6803,6804,7,20,0,0,6804,6805,7,19,0,0,6805,6806,7,17,0,0,6806,6807,7,8,0,0,6807,996,1,0,0,0,6808,6809,7,23,0,0,6809,6810,7,3,0,0,6810,6811,7,26,0,0,6811,6812,5,95,0,0,6812,6813,7,28,0,0,6813,6814,7,17,0,0,6814,6815,7,7,0,0,6815,6816,7,8,0,0,6816,6817,7,15,0,0,6817,6818,7,7,0,0,6818,6819,7,11,0,0,6819,6820,5,95,0,0,6820,6821,7,25,0,0,6821,6822,7,7,0,0,6822,6823,7,8,0,0,6823,6824,5,95,0,0,6824,6825,7,20,0,0,6825,6826,7,19,0,0,6826,6827,7,17,0,0,6827,6828,7,8,0,0,6828,998,1,0,0,0,6829,6830,7,23,0,0,6830,6831,7,3,0,0,6831,6832,7,26,0,0,6832,6833,5,95,0,0,6833,6834,7,8,0,0,6834,6835,7,19,0,0,6835,6836,7,9,0,0,6836,6837,7,11,0,0,6837,1e3,1,0,0,0,6838,6839,7,23,0,0,6839,6840,7,3,0,0,6840,6841,7,26,0,0,6841,6842,5,95,0,0,6842,6843,7,11,0,0,6843,6844,7,15,0,0,6844,6845,7,13,0,0,6845,6846,7,7,0,0,6846,1002,1,0,0,0,6847,6848,7,23,0,0,6848,6849,7,3,0,0,6849,6850,7,26,0,0,6850,6851,5,95,0,0,6851,6852,7,17,0,0,6852,6853,7,25,0,0,6853,6854,7,4,0,0,6854,6855,7,3,0,0,6855,6856,7,6,0,0,6856,6857,7,7,0,0,6857,6858,7,11,0,0,6858,6859,5,95,0,0,6859,6860,7,25,0,0,6860,6861,7,7,0,0,6861,6862,7,8,0,0,6862,6863,5,95,0,0,6863,6864,7,20,0,0,6864,6865,7,19,0,0,6865,6866,7,17,0,0,6866,6867,7,8,0,0,6867,1004,1,0,0,0,6868,6869,7,23,0,0,6869,6870,7,3,0,0,6870,6871,7,26,0,0,6871,6872,5,95,0,0,6872,6873,7,17,0,0,6873,6874,7,11,0,0,6874,6875,7,7,0,0,6875,6876,7,8,0,0,6876,6877,5,95,0,0,6877,6878,7,14,0,0,6878,6879,7,19,0,0,6879,6880,7,12,0,0,6880,6881,7,12,0,0,6881,6882,7,7,0,0,6882,6883,7,14,0,0,6883,6884,7,6,0,0,6884,6885,7,15,0,0,6885,6886,7,19,0,0,6886,6887,7,12,0,0,6887,6888,7,11,0,0,6888,1006,1,0,0,0,6889,6890,7,23,0,0,6890,6891,7,7,0,0,6891,6892,7,4,0,0,6892,6893,7,15,0,0,6893,6894,7,17,0,0,6894,6895,7,23,0,0,6895,1008,1,0,0,0,6896,6897,7,23,0,0,6897,6898,7,7,0,0,6898,6899,7,23,0,0,6899,6900,7,16,0,0,6900,6901,7,7,0,0,6901,6902,7,8,0,0,6902,1010,1,0,0,0,6903,6904,7,23,0,0,6904,6905,7,7,0,0,6905,6906,7,8,0,0,6906,6907,7,22,0,0,6907,6908,7,7,0,0,6908,1012,1,0,0,0,6909,6910,7,23,0,0,6910,6911,7,7,0,0,6911,6912,7,11,0,0,6912,6913,7,11,0,0,6913,6914,7,3,0,0,6914,6915,7,22,0,0,6915,6916,7,7,0,0,6916,6917,5,95,0,0,6917,6918,7,6,0,0,6918,6919,7,7,0,0,6919,6920,7,26,0,0,6920,6921,7,6,0,0,6921,1014,1,0,0,0,6922,6923,7,23,0,0,6923,6924,7,15,0,0,6924,6925,7,4,0,0,6925,1016,1,0,0,0,6926,6927,7,23,0,0,6927,6928,7,15,0,0,6928,6929,7,22,0,0,6929,6930,7,8,0,0,6930,6931,7,3,0,0,6931,6932,7,6,0,0,6932,6933,7,7,0,0,6933,1018,1,0,0,0,6934,6935,7,23,0,0,6935,6936,7,15,0,0,6936,6937,7,12,0,0,6937,6938,5,95,0,0,6938,6939,7,8,0,0,6939,6940,7,19,0,0,6940,6941,7,9,0,0,6941,6942,7,11,0,0,6942,1020,1,0,0,0,6943,6944,7,23,0,0,6944,6945,7,19,0,0,6945,6946,7,4,0,0,6946,6947,7,7,0,0,6947,1022,1,0,0,0,6948,6949,7,23,0,0,6949,6950,7,19,0,0,6950,6951,7,4,0,0,6951,6952,7,15,0,0,6952,6953,7,18,0,0,6953,6954,7,10,0,0,6954,1024,1,0,0,0,6955,6956,7,23,0,0,6956,6957,7,17,0,0,6957,6958,7,6,0,0,6958,6959,7,7,0,0,6959,6960,7,26,0,0,6960,1026,1,0,0,0,6961,6962,7,23,0,0,6962,6963,7,10,0,0,6963,6964,7,11,0,0,6964,6965,7,28,0,0,6965,6966,7,5,0,0,6966,1028,1,0,0,0,6967,6968,7,23,0,0,6968,6969,7,10,0,0,6969,6970,7,11,0,0,6970,6971,7,28,0,0,6971,6972,7,5,0,0,6972,6973,5,95,0,0,6973,6974,7,7,0,0,6974,6975,7,8,0,0,6975,6976,7,8,0,0,6976,6977,7,12,0,0,6977,6978,7,19,0,0,6978,1030,1,0,0,0,6979,6980,7,12,0,0,6980,6981,7,3,0,0,6981,6982,7,23,0,0,6982,6983,7,7,0,0,6983,1032,1,0,0,0,6984,6985,7,12,0,0,6985,6986,7,3,0,0,6986,6987,7,23,0,0,6987,6988,7,7,0,0,6988,6989,7,11,0,0,6989,1034,1,0,0,0,6990,6991,7,12,0,0,6991,6992,7,14,0,0,6992,6993,7,20,0,0,6993,6994,7,3,0,0,6994,6995,7,8,0,0,6995,1036,1,0,0,0,6996,6997,7,12,0,0,6997,6998,7,7,0,0,6998,6999,7,24,0,0,6999,7e3,7,7,0,0,7e3,7001,7,8,0,0,7001,1038,1,0,0,0,7002,7003,7,12,0,0,7003,7004,7,7,0,0,7004,7005,7,26,0,0,7005,7006,7,6,0,0,7006,1040,1,0,0,0,7007,7008,7,12,0,0,7008,7009,7,19,0,0,7009,1042,1,0,0,0,7010,7011,7,12,0,0,7011,7012,7,19,0,0,7012,7013,7,14,0,0,7013,7014,7,3,0,0,7014,7015,7,14,0,0,7015,7016,7,20,0,0,7016,7017,7,7,0,0,7017,1044,1,0,0,0,7018,7019,7,12,0,0,7019,7020,7,19,0,0,7020,7021,7,14,0,0,7021,7022,7,19,0,0,7022,7023,7,25,0,0,7023,7024,7,10,0,0,7024,1046,1,0,0,0,7025,7026,7,12,0,0,7026,7027,7,19,0,0,7027,7028,7,14,0,0,7028,7029,7,10,0,0,7029,7030,7,14,0,0,7030,7031,7,5,0,0,7031,7032,7,7,0,0,7032,1048,1,0,0,0,7033,7034,7,12,0,0,7034,7035,7,19,0,0,7035,7036,7,23,0,0,7036,7037,7,3,0,0,7037,7038,7,26,0,0,7038,7039,7,24,0,0,7039,7040,7,3,0,0,7040,7041,7,5,0,0,7041,7042,7,17,0,0,7042,7043,7,7,0,0,7043,1050,1,0,0,0,7044,7045,7,12,0,0,7045,7046,7,19,0,0,7046,7047,7,23,0,0,7047,7048,7,15,0,0,7048,7049,7,12,0,0,7049,7050,7,24,0,0,7050,7051,7,3,0,0,7051,7052,7,5,0,0,7052,7053,7,17,0,0,7053,7054,7,7,0,0,7054,1052,1,0,0,0,7055,7056,7,12,0,0,7056,7057,7,19,0,0,7057,7058,7,9,0,0,7058,7059,7,3,0,0,7059,7060,7,15,0,0,7060,7061,7,6,0,0,7061,1054,1,0,0,0,7062,7063,7,12,0,0,7063,7064,7,19,0,0,7064,7065,7,4,0,0,7065,7066,7,7,0,0,7066,7067,7,22,0,0,7067,7068,7,8,0,0,7068,7069,7,19,0,0,7069,7070,7,17,0,0,7070,7071,7,25,0,0,7071,1056,1,0,0,0,7072,7073,7,12,0,0,7073,7074,7,19,0,0,7074,7075,7,12,0,0,7075,7076,7,7,0,0,7076,1058,1,0,0,0,7077,7078,7,19,0,0,7078,7079,7,4,0,0,7079,7080,7,16,0,0,7080,7081,7,14,0,0,7081,1060,1,0,0,0,7082,7083,7,19,0,0,7083,7084,7,18,0,0,7084,7085,7,18,0,0,7085,7086,7,5,0,0,7086,7087,7,15,0,0,7087,7088,7,12,0,0,7088,7089,7,7,0,0,7089,1062,1,0,0,0,7090,7091,7,19,0,0,7091,7092,7,18,0,0,7092,7093,7,18,0,0,7093,7094,7,11,0,0,7094,7095,7,7,0,0,7095,7096,7,6,0,0,7096,1064,1,0,0,0,7097,7098,7,19,0,0,7098,7099,7,18,0,0,7099,1066,1,0,0,0,7100,7101,7,19,0,0,7101,7102,7,27,0,0,7102,1068,1,0,0,0,7103,7104,7,19,0,0,7104,7105,7,5,0,0,7105,7106,7,4,0,0,7106,7107,5,95,0,0,7107,7108,7,25,0,0,7108,7109,7,3,0,0,7109,7110,7,11,0,0,7110,7111,7,11,0,0,7111,7112,7,9,0,0,7112,7113,7,19,0,0,7113,7114,7,8,0,0,7114,7115,7,4,0,0,7115,1070,1,0,0,0,7116,7117,7,19,0,0,7117,7118,7,12,0,0,7118,7119,7,7,0,0,7119,1072,1,0,0,0,7120,7121,7,19,0,0,7121,7122,7,12,0,0,7122,7123,7,5,0,0,7123,7124,7,15,0,0,7124,7125,7,12,0,0,7125,7126,7,7,0,0,7126,1074,1,0,0,0,7127,7128,7,19,0,0,7128,7129,7,12,0,0,7129,7130,7,5,0,0,7130,7131,7,10,0,0,7131,1076,1,0,0,0,7132,7133,7,19,0,0,7133,7134,7,25,0,0,7134,7135,7,7,0,0,7135,7136,7,12,0,0,7136,1078,1,0,0,0,7137,7138,7,19,0,0,7138,7139,7,25,0,0,7139,7140,7,6,0,0,7140,7141,7,15,0,0,7141,7142,7,23,0,0,7142,7143,7,15,0,0,7143,7144,7,13,0,0,7144,7145,7,7,0,0,7145,7146,7,8,0,0,7146,7147,5,95,0,0,7147,7148,7,14,0,0,7148,7149,7,19,0,0,7149,7150,7,11,0,0,7150,7151,7,6,0,0,7151,7152,7,11,0,0,7152,1080,1,0,0,0,7153,7154,7,19,0,0,7154,7155,7,25,0,0,7155,7156,7,6,0,0,7156,7157,7,15,0,0,7157,7158,7,19,0,0,7158,7159,7,12,0,0,7159,7160,7,11,0,0,7160,1082,1,0,0,0,7161,7162,7,19,0,0,7162,7163,7,9,0,0,7163,7164,7,12,0,0,7164,7165,7,7,0,0,7165,7166,7,8,0,0,7166,1084,1,0,0,0,7167,7168,7,25,0,0,7168,7169,7,3,0,0,7169,7170,7,14,0,0,7170,7171,7,21,0,0,7171,7172,5,95,0,0,7172,7173,7,21,0,0,7173,7174,7,7,0,0,7174,7175,7,10,0,0,7175,7176,7,11,0,0,7176,1086,1,0,0,0,7177,7178,7,25,0,0,7178,7179,7,3,0,0,7179,7180,7,22,0,0,7180,7181,7,7,0,0,7181,1088,1,0,0,0,7182,7183,7,25,0,0,7183,7184,7,3,0,0,7184,7185,7,22,0,0,7185,7186,7,7,0,0,7186,7187,5,95,0,0,7187,7188,7,14,0,0,7188,7189,7,19,0,0,7189,7190,7,23,0,0,7190,7191,7,25,0,0,7191,7192,7,8,0,0,7192,7193,7,7,0,0,7193,7194,7,11,0,0,7194,7195,7,11,0,0,7195,7196,7,7,0,0,7196,7197,7,4,0,0,7197,1090,1,0,0,0,7198,7199,7,25,0,0,7199,7200,7,3,0,0,7200,7201,7,22,0,0,7201,7202,7,7,0,0,7202,7203,5,95,0,0,7203,7204,7,14,0,0,7204,7205,7,19,0,0,7205,7206,7,23,0,0,7206,7207,7,25,0,0,7207,7208,7,8,0,0,7208,7209,7,7,0,0,7209,7210,7,11,0,0,7210,7211,7,11,0,0,7211,7212,7,15,0,0,7212,7213,7,19,0,0,7213,7214,7,12,0,0,7214,7215,5,95,0,0,7215,7216,7,5,0,0,7216,7217,7,7,0,0,7217,7218,7,24,0,0,7218,7219,7,7,0,0,7219,7220,7,5,0,0,7220,1092,1,0,0,0,7221,7222,7,25,0,0,7222,7223,7,3,0,0,7223,7224,7,8,0,0,7224,7225,7,11,0,0,7225,7226,7,7,0,0,7226,7227,7,8,0,0,7227,1094,1,0,0,0,7228,7229,7,25,0,0,7229,7230,7,3,0,0,7230,7231,7,8,0,0,7231,7232,7,6,0,0,7232,7233,7,15,0,0,7233,7234,7,3,0,0,7234,7235,7,5,0,0,7235,1096,1,0,0,0,7236,7237,7,25,0,0,7237,7238,7,3,0,0,7238,7239,7,8,0,0,7239,7240,7,6,0,0,7240,7241,7,15,0,0,7241,7242,7,6,0,0,7242,7243,7,15,0,0,7243,7244,7,19,0,0,7244,7245,7,12,0,0,7245,7246,7,15,0,0,7246,7247,7,12,0,0,7247,7248,7,22,0,0,7248,1098,1,0,0,0,7249,7250,7,25,0,0,7250,7251,7,3,0,0,7251,7252,7,8,0,0,7252,7253,7,6,0,0,7253,7254,7,15,0,0,7254,7255,7,6,0,0,7255,7256,7,15,0,0,7256,7257,7,19,0,0,7257,7258,7,12,0,0,7258,7259,7,11,0,0,7259,1100,1,0,0,0,7260,7261,7,25,0,0,7261,7262,7,3,0,0,7262,7263,7,11,0,0,7263,7264,7,11,0,0,7264,7265,7,9,0,0,7265,7266,7,19,0,0,7266,7267,7,8,0,0,7267,7268,7,4,0,0,7268,1102,1,0,0,0,7269,7270,7,25,0,0,7270,7271,7,3,0,0,7271,7272,7,11,0,0,7272,7273,7,11,0,0,7273,7274,7,9,0,0,7274,7275,7,19,0,0,7275,7276,7,8,0,0,7276,7277,7,4,0,0,7277,7278,5,95,0,0,7278,7279,7,5,0,0,7279,7280,7,19,0,0,7280,7281,7,14,0,0,7281,7282,7,21,0,0,7282,7283,5,95,0,0,7283,7284,7,6,0,0,7284,7285,7,15,0,0,7285,7286,7,23,0,0,7286,7287,7,7,0,0,7287,1104,1,0,0,0,7288,7289,7,25,0,0,7289,7290,7,20,0,0,7290,7291,7,3,0,0,7291,7292,7,11,0,0,7292,7293,7,7,0,0,7293,1106,1,0,0,0,7294,7295,7,25,0,0,7295,7296,7,5,0,0,7296,7297,7,17,0,0,7297,7298,7,22,0,0,7298,7299,7,15,0,0,7299,7300,7,12,0,0,7300,1108,1,0,0,0,7301,7302,7,25,0,0,7302,7303,7,5,0,0,7303,7304,7,17,0,0,7304,7305,7,22,0,0,7305,7306,7,15,0,0,7306,7307,7,12,0,0,7307,7308,5,95,0,0,7308,7309,7,4,0,0,7309,7310,7,15,0,0,7310,7311,7,8,0,0,7311,1110,1,0,0,0,7312,7313,7,25,0,0,7313,7314,7,5,0,0,7314,7315,7,17,0,0,7315,7316,7,22,0,0,7316,7317,7,15,0,0,7317,7318,7,12,0,0,7318,7319,7,11,0,0,7319,1112,1,0,0,0,7320,7321,7,25,0,0,7321,7322,7,19,0,0,7322,7323,7,8,0,0,7323,7324,7,6,0,0,7324,1114,1,0,0,0,7325,7326,7,25,0,0,7326,7327,7,8,0,0,7327,7328,7,7,0,0,7328,7329,7,14,0,0,7329,7330,7,7,0,0,7330,7331,7,4,0,0,7331,7332,7,7,0,0,7332,7333,7,11,0,0,7333,1116,1,0,0,0,7334,7335,7,25,0,0,7335,7336,7,8,0,0,7336,7337,7,7,0,0,7337,7338,7,14,0,0,7338,7339,7,7,0,0,7339,7340,7,4,0,0,7340,7341,7,15,0,0,7341,7342,7,12,0,0,7342,7343,7,22,0,0,7343,1118,1,0,0,0,7344,7345,7,25,0,0,7345,7346,7,8,0,0,7346,7347,7,7,0,0,7347,7348,7,25,0,0,7348,7349,7,3,0,0,7349,7350,7,8,0,0,7350,7351,7,7,0,0,7351,1120,1,0,0,0,7352,7353,7,25,0,0,7353,7354,7,8,0,0,7354,7355,7,7,0,0,7355,7356,7,11,0,0,7356,7357,7,7,0,0,7357,7358,7,8,0,0,7358,7359,7,24,0,0,7359,7360,7,7,0,0,7360,1122,1,0,0,0,7361,7362,7,25,0,0,7362,7363,7,8,0,0,7363,7364,7,7,0,0,7364,7365,7,24,0,0,7365,1124,1,0,0,0,7366,7367,7,25,0,0,7367,7368,7,8,0,0,7368,7369,7,19,0,0,7369,7370,7,14,0,0,7370,7371,7,7,0,0,7371,7372,7,11,0,0,7372,7373,7,11,0,0,7373,7374,7,5,0,0,7374,7375,7,15,0,0,7375,7376,7,11,0,0,7376,7377,7,6,0,0,7377,1126,1,0,0,0,7378,7379,7,25,0,0,7379,7380,7,8,0,0,7380,7381,7,19,0,0,7381,7382,7,18,0,0,7382,7383,7,15,0,0,7383,7384,7,5,0,0,7384,7385,7,7,0,0,7385,1128,1,0,0,0,7386,7387,7,25,0,0,7387,7388,7,8,0,0,7388,7389,7,19,0,0,7389,7390,7,18,0,0,7390,7391,7,15,0,0,7391,7392,7,5,0,0,7392,7393,7,7,0,0,7393,7394,7,11,0,0,7394,1130,1,0,0,0,7395,7396,7,25,0,0,7396,7397,7,8,0,0,7397,7398,7,19,0,0,7398,7399,7,26,0,0,7399,7400,7,10,0,0,7400,1132,1,0,0,0,7401,7402,7,28,0,0,7402,7403,7,17,0,0,7403,7404,7,7,0,0,7404,7405,7,8,0,0,7405,7406,7,10,0,0,7406,1134,1,0,0,0,7407,7408,7,28,0,0,7408,7409,7,17,0,0,7409,7410,7,15,0,0,7410,7411,7,14,0,0,7411,7412,7,21,0,0,7412,1136,1,0,0,0,7413,7414,7,8,0,0,7414,7415,7,7,0,0,7415,7416,7,16,0,0,7416,7417,7,17,0,0,7417,7418,7,15,0,0,7418,7419,7,5,0,0,7419,7420,7,4,0,0,7420,1138,1,0,0,0,7421,7422,7,8,0,0,7422,7423,7,7,0,0,7423,7424,7,14,0,0,7424,7425,7,19,0,0,7425,7426,7,24,0,0,7426,7427,7,7,0,0,7427,7428,7,8,0,0,7428,1140,1,0,0,0,7429,7430,7,8,0,0,7430,7431,7,7,0,0,7431,7432,7,14,0,0,7432,7433,7,17,0,0,7433,7434,7,8,0,0,7434,7435,7,11,0,0,7435,7436,7,15,0,0,7436,7437,7,24,0,0,7437,7438,7,7,0,0,7438,1142,1,0,0,0,7439,7440,7,8,0,0,7440,7441,7,7,0,0,7441,7442,7,4,0,0,7442,7443,7,19,0,0,7443,7444,5,95,0,0,7444,7445,7,16,0,0,7445,7446,7,17,0,0,7446,7447,7,18,0,0,7447,7448,7,18,0,0,7448,7449,7,7,0,0,7449,7450,7,8,0,0,7450,7451,5,95,0,0,7451,7452,7,11,0,0,7452,7453,7,15,0,0,7453,7454,7,13,0,0,7454,7455,7,7,0,0,7455,1144,1,0,0,0,7456,7457,7,8,0,0,7457,7458,7,7,0,0,7458,7459,7,4,0,0,7459,7460,7,17,0,0,7460,7461,7,12,0,0,7461,7462,7,4,0,0,7462,7463,7,3,0,0,7463,7464,7,12,0,0,7464,7465,7,6,0,0,7465,1146,1,0,0,0,7466,7467,7,8,0,0,7467,7468,7,7,0,0,7468,7469,7,5,0,0,7469,7470,7,3,0,0,7470,7471,7,10,0,0,7471,1148,1,0,0,0,7472,7473,7,8,0,0,7473,7474,7,7,0,0,7474,7475,7,5,0,0,7475,7476,7,3,0,0,7476,7477,7,10,0,0,7477,7478,5,95,0,0,7478,7479,7,5,0,0,7479,7480,7,19,0,0,7480,7481,7,22,0,0,7481,7482,5,95,0,0,7482,7483,7,18,0,0,7483,7484,7,15,0,0,7484,7485,7,5,0,0,7485,7486,7,7,0,0,7486,1150,1,0,0,0,7487,7488,7,8,0,0,7488,7489,7,7,0,0,7489,7490,7,5,0,0,7490,7491,7,3,0,0,7491,7492,7,10,0,0,7492,7493,5,95,0,0,7493,7494,7,5,0,0,7494,7495,7,19,0,0,7495,7496,7,22,0,0,7496,7497,5,95,0,0,7497,7498,7,25,0,0,7498,7499,7,19,0,0,7499,7500,7,11,0,0,7500,1152,1,0,0,0,7501,7502,7,8,0,0,7502,7503,7,7,0,0,7503,7504,7,5,0,0,7504,7505,7,3,0,0,7505,7506,7,10,0,0,7506,7507,7,5,0,0,7507,7508,7,19,0,0,7508,7509,7,22,0,0,7509,1154,1,0,0,0,7510,7511,7,8,0,0,7511,7512,7,7,0,0,7512,7513,7,23,0,0,7513,7514,7,19,0,0,7514,7515,7,24,0,0,7515,7516,7,7,0,0,7516,1156,1,0,0,0,7517,7518,7,8,0,0,7518,7519,7,7,0,0,7519,7520,7,19,0,0,7520,7521,7,8,0,0,7521,7522,7,22,0,0,7522,7523,7,3,0,0,7523,7524,7,12,0,0,7524,7525,7,15,0,0,7525,7526,7,13,0,0,7526,7527,7,7,0,0,7527,1158,1,0,0,0,7528,7529,7,8,0,0,7529,7530,7,7,0,0,7530,7531,7,25,0,0,7531,7532,7,3,0,0,7532,7533,7,15,0,0,7533,7534,7,8,0,0,7534,1160,1,0,0,0,7535,7536,7,8,0,0,7536,7537,7,7,0,0,7537,7538,7,25,0,0,7538,7539,7,5,0,0,7539,7540,7,15,0,0,7540,7541,7,14,0,0,7541,7542,7,3,0,0,7542,7543,7,6,0,0,7543,7544,7,7,0,0,7544,7545,5,95,0,0,7545,7546,7,4,0,0,7546,7547,7,19,0,0,7547,7548,5,95,0,0,7548,7549,7,4,0,0,7549,7550,7,16,0,0,7550,1162,1,0,0,0,7551,7552,7,8,0,0,7552,7553,7,7,0,0,7553,7554,7,25,0,0,7554,7555,7,5,0,0,7555,7556,7,15,0,0,7556,7557,7,14,0,0,7557,7558,7,3,0,0,7558,7559,7,6,0,0,7559,7560,7,7,0,0,7560,7561,5,95,0,0,7561,7562,7,4,0,0,7562,7563,7,19,0,0,7563,7564,5,95,0,0,7564,7565,7,6,0,0,7565,7566,7,3,0,0,7566,7567,7,16,0,0,7567,7568,7,5,0,0,7568,7569,7,7,0,0,7569,1164,1,0,0,0,7570,7571,7,8,0,0,7571,7572,7,7,0,0,7572,7573,7,25,0,0,7573,7574,7,5,0,0,7574,7575,7,15,0,0,7575,7576,7,14,0,0,7576,7577,7,3,0,0,7577,7578,7,6,0,0,7578,7579,7,7,0,0,7579,7580,5,95,0,0,7580,7581,7,15,0,0,7581,7582,7,22,0,0,7582,7583,7,12,0,0,7583,7584,7,19,0,0,7584,7585,7,8,0,0,7585,7586,7,7,0,0,7586,7587,5,95,0,0,7587,7588,7,4,0,0,7588,7589,7,16,0,0,7589,1166,1,0,0,0,7590,7591,7,8,0,0,7591,7592,7,7,0,0,7592,7593,7,25,0,0,7593,7594,7,5,0,0,7594,7595,7,15,0,0,7595,7596,7,14,0,0,7596,7597,7,3,0,0,7597,7598,7,6,0,0,7598,7599,7,7,0,0,7599,7600,5,95,0,0,7600,7601,7,15,0,0,7601,7602,7,22,0,0,7602,7603,7,12,0,0,7603,7604,7,19,0,0,7604,7605,7,8,0,0,7605,7606,7,7,0,0,7606,7607,5,95,0,0,7607,7608,7,6,0,0,7608,7609,7,3,0,0,7609,7610,7,16,0,0,7610,7611,7,5,0,0,7611,7612,7,7,0,0,7612,1168,1,0,0,0,7613,7614,7,8,0,0,7614,7615,7,7,0,0,7615,7616,7,25,0,0,7616,7617,7,5,0,0,7617,7618,7,15,0,0,7618,7619,7,14,0,0,7619,7620,7,3,0,0,7620,7621,7,6,0,0,7621,7622,7,7,0,0,7622,7623,5,95,0,0,7623,7624,7,8,0,0,7624,7625,7,7,0,0,7625,7626,7,9,0,0,7626,7627,7,8,0,0,7627,7628,7,15,0,0,7628,7629,7,6,0,0,7629,7630,7,7,0,0,7630,7631,5,95,0,0,7631,7632,7,4,0,0,7632,7633,7,16,0,0,7633,1170,1,0,0,0,7634,7635,7,8,0,0,7635,7636,7,7,0,0,7636,7637,7,25,0,0,7637,7638,7,5,0,0,7638,7639,7,15,0,0,7639,7640,7,14,0,0,7640,7641,7,3,0,0,7641,7642,7,6,0,0,7642,7643,7,7,0,0,7643,7644,5,95,0,0,7644,7645,7,9,0,0,7645,7646,7,15,0,0,7646,7647,7,5,0,0,7647,7648,7,4,0,0,7648,7649,5,95,0,0,7649,7650,7,4,0,0,7650,7651,7,19,0,0,7651,7652,5,95,0,0,7652,7653,7,6,0,0,7653,7654,7,3,0,0,7654,7655,7,16,0,0,7655,7656,7,5,0,0,7656,7657,7,7,0,0,7657,1172,1,0,0,0,7658,7659,7,8,0,0,7659,7660,7,7,0,0,7660,7661,7,25,0,0,7661,7662,7,5,0,0,7662,7663,7,15,0,0,7663,7664,7,14,0,0,7664,7665,7,3,0,0,7665,7666,7,6,0,0,7666,7667,7,7,0,0,7667,7668,5,95,0,0,7668,7669,7,9,0,0,7669,7670,7,15,0,0,7670,7671,7,5,0,0,7671,7672,7,4,0,0,7672,7673,5,95,0,0,7673,7674,7,15,0,0,7674,7675,7,22,0,0,7675,7676,7,12,0,0,7676,7677,7,19,0,0,7677,7678,7,8,0,0,7678,7679,7,7,0,0,7679,7680,5,95,0,0,7680,7681,7,6,0,0,7681,7682,7,3,0,0,7682,7683,7,16,0,0,7683,7684,7,5,0,0,7684,7685,7,7,0,0,7685,1174,1,0,0,0,7686,7687,7,8,0,0,7687,7688,7,7,0,0,7688,7689,7,25,0,0,7689,7690,7,5,0,0,7690,7691,7,15,0,0,7691,7692,7,14,0,0,7692,7693,7,3,0,0,7693,7694,7,6,0,0,7694,7695,7,15,0,0,7695,7696,7,19,0,0,7696,7697,7,12,0,0,7697,1176,1,0,0,0,7698,7699,7,8,0,0,7699,7700,7,7,0,0,7700,7701,7,11,0,0,7701,7702,7,7,0,0,7702,7703,7,6,0,0,7703,1178,1,0,0,0,7704,7705,7,8,0,0,7705,7706,7,7,0,0,7706,7707,7,11,0,0,7707,7708,7,6,0,0,7708,7709,7,3,0,0,7709,7710,7,8,0,0,7710,7711,7,6,0,0,7711,1180,1,0,0,0,7712,7713,7,8,0,0,7713,7714,7,7,0,0,7714,7715,7,11,0,0,7715,7716,7,17,0,0,7716,7717,7,23,0,0,7717,7718,7,7,0,0,7718,1182,1,0,0,0,7719,7720,7,8,0,0,7720,7721,7,7,0,0,7721,7722,7,6,0,0,7722,7723,7,17,0,0,7723,7724,7,8,0,0,7724,7725,7,12,0,0,7725,7726,7,7,0,0,7726,7727,7,4,0,0,7727,7728,5,95,0,0,7728,7729,7,11,0,0,7729,7730,7,28,0,0,7730,7731,7,5,0,0,7731,7732,7,11,0,0,7732,7733,7,6,0,0,7733,7734,7,3,0,0,7734,7735,7,6,0,0,7735,7736,7,7,0,0,7736,1184,1,0,0,0,7737,7738,7,8,0,0,7738,7739,7,7,0,0,7739,7740,7,6,0,0,7740,7741,7,17,0,0,7741,7742,7,8,0,0,7742,7743,7,12,0,0,7743,7744,7,15,0,0,7744,7745,7,12,0,0,7745,7746,7,22,0,0,7746,1186,1,0,0,0,7747,7748,7,8,0,0,7748,7749,7,7,0,0,7749,7750,7,6,0,0,7750,7751,7,17,0,0,7751,7752,7,8,0,0,7752,7753,7,12,0,0,7753,7754,7,11,0,0,7754,1188,1,0,0,0,7755,7756,7,8,0,0,7756,7757,7,7,0,0,7757,7758,7,17,0,0,7758,7759,7,11,0,0,7759,7760,7,7,0,0,7760,1190,1,0,0,0,7761,7762,7,8,0,0,7762,7763,7,19,0,0,7763,7764,7,5,0,0,7764,7765,7,7,0,0,7765,1192,1,0,0,0,7766,7767,7,8,0,0,7767,7768,7,19,0,0,7768,7769,7,5,0,0,7769,7770,7,5,0,0,7770,7771,7,16,0,0,7771,7772,7,3,0,0,7772,7773,7,14,0,0,7773,7774,7,21,0,0,7774,1194,1,0,0,0,7775,7776,7,8,0,0,7776,7777,7,19,0,0,7777,7778,7,5,0,0,7778,7779,7,5,0,0,7779,7780,7,17,0,0,7780,7781,7,25,0,0,7781,1196,1,0,0,0,7782,7783,7,8,0,0,7783,7784,7,19,0,0,7784,7785,7,6,0,0,7785,7786,7,3,0,0,7786,7787,7,6,0,0,7787,7788,7,7,0,0,7788,1198,1,0,0,0,7789,7790,7,8,0,0,7790,7791,7,19,0,0,7791,7792,7,9,0,0,7792,1200,1,0,0,0,7793,7794,7,8,0,0,7794,7795,7,19,0,0,7795,7796,7,9,0,0,7796,7797,7,11,0,0,7797,1202,1,0,0,0,7798,7799,7,8,0,0,7799,7800,7,19,0,0,7800,7801,7,9,0,0,7801,7802,5,95,0,0,7802,7803,7,18,0,0,7803,7804,7,19,0,0,7804,7805,7,8,0,0,7805,7806,7,23,0,0,7806,7807,7,3,0,0,7807,7808,7,6,0,0,7808,1204,1,0,0,0,7809,7810,7,8,0,0,7810,7811,7,6,0,0,7811,7812,7,8,0,0,7812,7813,7,7,0,0,7813,7814,7,7,0,0,7814,1206,1,0,0,0,7815,7816,7,11,0,0,7816,7817,7,3,0,0,7817,7818,7,24,0,0,7818,7819,7,7,0,0,7819,7820,7,25,0,0,7820,7821,7,19,0,0,7821,7822,7,15,0,0,7822,7823,7,12,0,0,7823,7824,7,6,0,0,7824,1208,1,0,0,0,7825,7826,7,11,0,0,7826,7827,7,14,0,0,7827,7828,7,20,0,0,7828,7829,7,7,0,0,7829,7830,7,4,0,0,7830,7831,7,17,0,0,7831,7832,7,5,0,0,7832,7833,7,7,0,0,7833,1210,1,0,0,0,7834,7835,7,11,0,0,7835,7836,7,7,0,0,7836,7837,7,14,0,0,7837,7838,7,17,0,0,7838,7839,7,8,0,0,7839,7840,7,15,0,0,7840,7841,7,6,0,0,7841,7842,7,10,0,0,7842,1212,1,0,0,0,7843,7844,7,11,0,0,7844,7845,7,7,0,0,7845,7846,7,28,0,0,7846,7847,7,17,0,0,7847,7848,7,7,0,0,7848,7849,7,12,0,0,7849,7850,7,14,0,0,7850,7851,7,7,0,0,7851,1214,1,0,0,0,7852,7853,7,11,0,0,7853,7854,7,7,0,0,7854,7855,7,8,0,0,7855,7856,7,24,0,0,7856,7857,7,7,0,0,7857,7858,7,8,0,0,7858,1216,1,0,0,0,7859,7860,7,11,0,0,7860,7861,7,7,0,0,7861,7862,7,11,0,0,7862,7863,7,11,0,0,7863,7864,7,15,0,0,7864,7865,7,19,0,0,7865,7866,7,12,0,0,7866,1218,1,0,0,0,7867,7868,7,11,0,0,7868,7869,7,20,0,0,7869,7870,7,3,0,0,7870,7871,7,8,0,0,7871,7872,7,7,0,0,7872,1220,1,0,0,0,7873,7874,7,11,0,0,7874,7875,7,20,0,0,7875,7876,7,3,0,0,7876,7877,7,8,0,0,7877,7878,7,7,0,0,7878,7879,7,4,0,0,7879,1222,1,0,0,0,7880,7881,7,11,0,0,7881,7882,7,15,0,0,7882,7883,7,22,0,0,7883,7884,7,12,0,0,7884,7885,7,7,0,0,7885,7886,7,4,0,0,7886,1224,1,0,0,0,7887,7888,7,11,0,0,7888,7889,7,15,0,0,7889,7890,7,23,0,0,7890,7891,7,25,0,0,7891,7892,7,5,0,0,7892,7893,7,7,0,0,7893,1226,1,0,0,0,7894,7895,7,11,0,0,7895,7896,7,5,0,0,7896,7897,7,3,0,0,7897,7898,7,24,0,0,7898,7899,7,7,0,0,7899,1228,1,0,0,0,7900,7901,7,11,0,0,7901,7902,7,5,0,0,7902,7903,7,19,0,0,7903,7904,7,9,0,0,7904,1230,1,0,0,0,7905,7906,7,11,0,0,7906,7907,7,12,0,0,7907,7908,7,3,0,0,7908,7909,7,25,0,0,7909,7910,7,11,0,0,7910,7911,7,20,0,0,7911,7912,7,19,0,0,7912,7913,7,6,0,0,7913,1232,1,0,0,0,7914,7915,7,11,0,0,7915,7916,7,19,0,0,7916,7917,7,14,0,0,7917,7918,7,21,0,0,7918,7919,7,7,0,0,7919,7920,7,6,0,0,7920,1234,1,0,0,0,7921,7922,7,11,0,0,7922,7923,7,19,0,0,7923,7924,7,23,0,0,7924,7925,7,7,0,0,7925,1236,1,0,0,0,7926,7927,7,11,0,0,7927,7928,7,19,0,0,7928,7929,7,12,0,0,7929,7930,7,3,0,0,7930,7931,7,23,0,0,7931,7932,7,7,0,0,7932,1238,1,0,0,0,7933,7934,7,11,0,0,7934,7935,7,19,0,0,7935,7936,7,17,0,0,7936,7937,7,12,0,0,7937,7938,7,4,0,0,7938,7939,7,11,0,0,7939,1240,1,0,0,0,7940,7941,7,11,0,0,7941,7942,7,19,0,0,7942,7943,7,17,0,0,7943,7944,7,8,0,0,7944,7945,7,14,0,0,7945,7946,7,7,0,0,7946,1242,1,0,0,0,7947,7948,7,11,0,0,7948,7949,7,28,0,0,7949,7950,7,5,0,0,7950,7951,5,95,0,0,7951,7952,7,3,0,0,7952,7953,7,18,0,0,7953,7954,7,6,0,0,7954,7955,7,7,0,0,7955,7956,7,8,0,0,7956,7957,5,95,0,0,7957,7958,7,22,0,0,7958,7959,7,6,0,0,7959,7960,7,15,0,0,7960,7961,7,4,0,0,7961,7962,7,11,0,0,7962,1244,1,0,0,0,7963,7964,7,11,0,0,7964,7965,7,28,0,0,7965,7966,7,5,0,0,7966,7967,5,95,0,0,7967,7968,7,3,0,0,7968,7969,7,18,0,0,7969,7970,7,6,0,0,7970,7971,7,7,0,0,7971,7972,7,8,0,0,7972,7973,5,95,0,0,7973,7974,7,23,0,0,7974,7975,7,6,0,0,7975,7976,7,11,0,0,7976,7977,5,95,0,0,7977,7978,7,22,0,0,7978,7979,7,3,0,0,7979,7980,7,25,0,0,7980,7981,7,11,0,0,7981,1246,1,0,0,0,7982,7983,7,11,0,0,7983,7984,7,28,0,0,7984,7985,7,5,0,0,7985,7986,5,95,0,0,7986,7987,7,16,0,0,7987,7988,7,7,0,0,7988,7989,7,18,0,0,7989,7990,7,19,0,0,7990,7991,7,8,0,0,7991,7992,7,7,0,0,7992,7993,5,95,0,0,7993,7994,7,22,0,0,7994,7995,7,6,0,0,7995,7996,7,15,0,0,7996,7997,7,4,0,0,7997,7998,7,11,0,0,7998,1248,1,0,0,0,7999,8e3,7,11,0,0,8e3,8001,7,28,0,0,8001,8002,7,5,0,0,8002,8003,5,95,0,0,8003,8004,7,16,0,0,8004,8005,7,17,0,0,8005,8006,7,18,0,0,8006,8007,7,18,0,0,8007,8008,7,7,0,0,8008,8009,7,8,0,0,8009,8010,5,95,0,0,8010,8011,7,8,0,0,8011,8012,7,7,0,0,8012,8013,7,11,0,0,8013,8014,7,17,0,0,8014,8015,7,5,0,0,8015,8016,7,6,0,0,8016,1250,1,0,0,0,8017,8018,7,11,0,0,8018,8019,7,28,0,0,8019,8020,7,5,0,0,8020,8021,5,95,0,0,8021,8022,7,14,0,0,8022,8023,7,3,0,0,8023,8024,7,14,0,0,8024,8025,7,20,0,0,8025,8026,7,7,0,0,8026,1252,1,0,0,0,8027,8028,7,11,0,0,8028,8029,7,28,0,0,8029,8030,7,5,0,0,8030,8031,5,95,0,0,8031,8032,7,12,0,0,8032,8033,7,19,0,0,8033,8034,5,95,0,0,8034,8035,7,14,0,0,8035,8036,7,3,0,0,8036,8037,7,14,0,0,8037,8038,7,20,0,0,8038,8039,7,7,0,0,8039,1254,1,0,0,0,8040,8041,7,11,0,0,8041,8042,7,28,0,0,8042,8043,7,5,0,0,8043,8044,5,95,0,0,8044,8045,7,6,0,0,8045,8046,7,20,0,0,8046,8047,7,8,0,0,8047,8048,7,7,0,0,8048,8049,7,3,0,0,8049,8050,7,4,0,0,8050,1256,1,0,0,0,8051,8052,7,11,0,0,8052,8053,7,6,0,0,8053,8054,7,3,0,0,8054,8055,7,8,0,0,8055,8056,7,6,0,0,8056,1258,1,0,0,0,8057,8058,7,11,0,0,8058,8059,7,6,0,0,8059,8060,7,3,0,0,8060,8061,7,8,0,0,8061,8062,7,6,0,0,8062,8063,7,11,0,0,8063,1260,1,0,0,0,8064,8065,7,11,0,0,8065,8066,7,6,0,0,8066,8067,7,3,0,0,8067,8068,7,6,0,0,8068,8069,7,11,0,0,8069,8070,5,95,0,0,8070,8071,7,3,0,0,8071,8072,7,17,0,0,8072,8073,7,6,0,0,8073,8074,7,19,0,0,8074,8075,5,95,0,0,8075,8076,7,8,0,0,8076,8077,7,7,0,0,8077,8078,7,14,0,0,8078,8079,7,3,0,0,8079,8080,7,5,0,0,8080,8081,7,14,0,0,8081,1262,1,0,0,0,8082,8083,7,11,0,0,8083,8084,7,6,0,0,8084,8085,7,3,0,0,8085,8086,7,6,0,0,8086,8087,7,11,0,0,8087,8088,5,95,0,0,8088,8089,7,25,0,0,8089,8090,7,7,0,0,8090,8091,7,8,0,0,8091,8092,7,11,0,0,8092,8093,7,15,0,0,8093,8094,7,11,0,0,8094,8095,7,6,0,0,8095,8096,7,7,0,0,8096,8097,7,12,0,0,8097,8098,7,6,0,0,8098,1264,1,0,0,0,8099,8100,7,11,0,0,8100,8101,7,6,0,0,8101,8102,7,3,0,0,8102,8103,7,6,0,0,8103,8104,7,11,0,0,8104,8105,5,95,0,0,8105,8106,7,11,0,0,8106,8107,7,3,0,0,8107,8108,7,23,0,0,8108,8109,7,25,0,0,8109,8110,7,5,0,0,8110,8111,7,7,0,0,8111,8112,5,95,0,0,8112,8113,7,25,0,0,8113,8114,7,3,0,0,8114,8115,7,22,0,0,8115,8116,7,7,0,0,8116,8117,7,11,0,0,8117,1266,1,0,0,0,8118,8119,7,11,0,0,8119,8120,7,6,0,0,8120,8121,7,3,0,0,8121,8122,7,6,0,0,8122,8123,7,17,0,0,8123,8124,7,11,0,0,8124,1268,1,0,0,0,8125,8126,7,11,0,0,8126,8127,7,6,0,0,8127,8128,7,19,0,0,8128,8129,7,25,0,0,8129,1270,1,0,0,0,8130,8131,7,11,0,0,8131,8132,7,6,0,0,8132,8133,7,19,0,0,8133,8134,7,8,0,0,8134,8135,7,3,0,0,8135,8136,7,22,0,0,8136,8137,7,7,0,0,8137,1272,1,0,0,0,8138,8139,7,11,0,0,8139,8140,7,6,0,0,8140,8141,7,19,0,0,8141,8142,7,8,0,0,8142,8143,7,7,0,0,8143,8144,7,4,0,0,8144,1274,1,0,0,0,8145,8146,7,11,0,0,8146,8147,7,6,0,0,8147,8148,7,8,0,0,8148,8149,7,15,0,0,8149,8150,7,12,0,0,8150,8151,7,22,0,0,8151,1276,1,0,0,0,8152,8153,7,11,0,0,8153,8154,7,17,0,0,8154,8155,7,16,0,0,8155,8156,7,14,0,0,8156,8157,7,5,0,0,8157,8158,7,3,0,0,8158,8159,7,11,0,0,8159,8160,7,11,0,0,8160,8161,5,95,0,0,8161,8162,7,19,0,0,8162,8163,7,8,0,0,8163,8164,7,15,0,0,8164,8165,7,22,0,0,8165,8166,7,15,0,0,8166,8167,7,12,0,0,8167,1278,1,0,0,0,8168,8169,7,11,0,0,8169,8170,7,17,0,0,8170,8171,7,16,0,0,8171,8172,7,27,0,0,8172,8173,7,7,0,0,8173,8174,7,14,0,0,8174,8175,7,6,0,0,8175,1280,1,0,0,0,8176,8177,7,11,0,0,8177,8178,7,17,0,0,8178,8179,7,16,0,0,8179,8180,7,25,0,0,8180,8181,7,3,0,0,8181,8182,7,8,0,0,8182,8183,7,6,0,0,8183,8184,7,15,0,0,8184,8185,7,6,0,0,8185,8186,7,15,0,0,8186,8187,7,19,0,0,8187,8188,7,12,0,0,8188,1282,1,0,0,0,8189,8190,7,11,0,0,8190,8191,7,17,0,0,8191,8192,7,16,0,0,8192,8193,7,25,0,0,8193,8194,7,3,0,0,8194,8195,7,8,0,0,8195,8196,7,6,0,0,8196,8197,7,15,0,0,8197,8198,7,6,0,0,8198,8199,7,15,0,0,8199,8200,7,19,0,0,8200,8201,7,12,0,0,8201,8202,7,11,0,0,8202,1284,1,0,0,0,8203,8204,7,11,0,0,8204,8205,7,17,0,0,8205,8206,7,11,0,0,8206,8207,7,25,0,0,8207,8208,7,7,0,0,8208,8209,7,12,0,0,8209,8210,7,4,0,0,8210,1286,1,0,0,0,8211,8212,7,11,0,0,8212,8213,7,9,0,0,8213,8214,7,3,0,0,8214,8215,7,25,0,0,8215,8216,7,11,0,0,8216,1288,1,0,0,0,8217,8218,7,11,0,0,8218,8219,7,9,0,0,8219,8220,7,15,0,0,8220,8221,7,6,0,0,8221,8222,7,14,0,0,8222,8223,7,20,0,0,8223,8224,7,7,0,0,8224,8225,7,11,0,0,8225,1290,1,0,0,0,8226,8227,7,6,0,0,8227,8228,7,3,0,0,8228,8229,7,16,0,0,8229,8230,7,5,0,0,8230,8231,7,7,0,0,8231,8232,5,95,0,0,8232,8233,7,12,0,0,8233,8234,7,3,0,0,8234,8235,7,23,0,0,8235,8236,7,7,0,0,8236,1292,1,0,0,0,8237,8238,7,6,0,0,8238,8239,7,3,0,0,8239,8240,7,16,0,0,8240,8241,7,5,0,0,8241,8242,7,7,0,0,8242,8243,7,11,0,0,8243,8244,7,25,0,0,8244,8245,7,3,0,0,8245,8246,7,14,0,0,8246,8247,7,7,0,0,8247,1294,1,0,0,0,8248,8249,7,6,0,0,8249,8250,7,3,0,0,8250,8251,7,16,0,0,8251,8252,7,5,0,0,8252,8253,7,7,0,0,8253,8254,5,95,0,0,8254,8255,7,6,0,0,8255,8256,7,10,0,0,8256,8257,7,25,0,0,8257,8258,7,7,0,0,8258,1296,1,0,0,0,8259,8260,7,6,0,0,8260,8261,7,7,0,0,8261,8262,7,23,0,0,8262,8263,7,25,0,0,8263,8264,7,19,0,0,8264,8265,7,8,0,0,8265,8266,7,3,0,0,8266,8267,7,8,0,0,8267,8268,7,10,0,0,8268,1298,1,0,0,0,8269,8270,7,6,0,0,8270,8271,7,7,0,0,8271,8272,7,23,0,0,8272,8273,7,25,0,0,8273,8274,7,6,0,0,8274,8275,7,3,0,0,8275,8276,7,16,0,0,8276,8277,7,5,0,0,8277,8278,7,7,0,0,8278,1300,1,0,0,0,8279,8280,7,6,0,0,8280,8281,7,20,0,0,8281,8282,7,3,0,0,8282,8283,7,12,0,0,8283,1302,1,0,0,0,8284,8285,7,6,0,0,8285,8286,7,8,0,0,8286,8287,7,3,0,0,8287,8288,7,4,0,0,8288,8289,7,15,0,0,8289,8290,7,6,0,0,8290,8291,7,15,0,0,8291,8292,7,19,0,0,8292,8293,7,12,0,0,8293,8294,7,3,0,0,8294,8295,7,5,0,0,8295,1304,1,0,0,0,8296,8297,7,6,0,0,8297,8298,7,8,0,0,8298,8299,7,3,0,0,8299,8300,7,12,0,0,8300,8301,7,11,0,0,8301,8302,7,3,0,0,8302,8303,7,14,0,0,8303,8304,7,6,0,0,8304,8305,7,15,0,0,8305,8306,7,19,0,0,8306,8307,7,12,0,0,8307,1306,1,0,0,0,8308,8309,7,6,0,0,8309,8310,7,8,0,0,8310,8311,7,3,0,0,8311,8312,7,12,0,0,8312,8313,7,11,0,0,8313,8314,7,3,0,0,8314,8315,7,14,0,0,8315,8316,7,6,0,0,8316,8317,7,15,0,0,8317,8318,7,19,0,0,8318,8319,7,12,0,0,8319,8320,7,3,0,0,8320,8321,7,5,0,0,8321,1308,1,0,0,0,8322,8323,7,6,0,0,8323,8324,7,8,0,0,8324,8325,7,15,0,0,8325,8326,7,22,0,0,8326,8327,7,22,0,0,8327,8328,7,7,0,0,8328,8329,7,8,0,0,8329,8330,7,11,0,0,8330,1310,1,0,0,0,8331,8332,7,6,0,0,8332,8333,7,8,0,0,8333,8334,7,17,0,0,8334,8335,7,12,0,0,8335,8336,7,14,0,0,8336,8337,7,3,0,0,8337,8338,7,6,0,0,8338,8339,7,7,0,0,8339,1312,1,0,0,0,8340,8341,7,17,0,0,8341,8342,7,12,0,0,8342,8343,7,16,0,0,8343,8344,7,19,0,0,8344,8345,7,17,0,0,8345,8346,7,12,0,0,8346,8347,7,4,0,0,8347,8348,7,7,0,0,8348,8349,7,4,0,0,8349,1314,1,0,0,0,8350,8351,7,17,0,0,8351,8352,7,12,0,0,8352,8353,7,4,0,0,8353,8354,7,7,0,0,8354,8355,7,18,0,0,8355,8356,7,15,0,0,8356,8357,7,12,0,0,8357,8358,7,7,0,0,8358,8359,7,4,0,0,8359,1316,1,0,0,0,8360,8361,7,17,0,0,8361,8362,7,12,0,0,8362,8363,7,4,0,0,8363,8364,7,19,0,0,8364,8365,7,18,0,0,8365,8366,7,15,0,0,8366,8367,7,5,0,0,8367,8368,7,7,0,0,8368,1318,1,0,0,0,8369,8370,7,17,0,0,8370,8371,7,12,0,0,8371,8372,7,4,0,0,8372,8373,7,19,0,0,8373,8374,5,95,0,0,8374,8375,7,16,0,0,8375,8376,7,17,0,0,8376,8377,7,18,0,0,8377,8378,7,18,0,0,8378,8379,7,7,0,0,8379,8380,7,8,0,0,8380,8381,5,95,0,0,8381,8382,7,11,0,0,8382,8383,7,15,0,0,8383,8384,7,13,0,0,8384,8385,7,7,0,0,8385,1320,1,0,0,0,8386,8387,7,17,0,0,8387,8388,7,12,0,0,8388,8389,7,15,0,0,8389,8390,7,12,0,0,8390,8391,7,11,0,0,8391,8392,7,6,0,0,8392,8393,7,3,0,0,8393,8394,7,5,0,0,8394,8395,7,5,0,0,8395,1322,1,0,0,0,8396,8397,7,17,0,0,8397,8398,7,12,0,0,8398,8399,7,21,0,0,8399,8400,7,12,0,0,8400,8401,7,19,0,0,8401,8402,7,9,0,0,8402,8403,7,12,0,0,8403,1324,1,0,0,0,8404,8405,7,17,0,0,8405,8406,7,12,0,0,8406,8407,7,6,0,0,8407,8408,7,15,0,0,8408,8409,7,5,0,0,8409,1326,1,0,0,0,8410,8411,7,17,0,0,8411,8412,7,25,0,0,8412,8413,7,22,0,0,8413,8414,7,8,0,0,8414,8415,7,3,0,0,8415,8416,7,4,0,0,8416,8417,7,7,0,0,8417,1328,1,0,0,0,8418,8419,7,17,0,0,8419,8420,7,11,0,0,8420,8421,7,7,0,0,8421,8422,7,8,0,0,8422,1330,1,0,0,0,8423,8424,7,17,0,0,8424,8425,7,11,0,0,8425,8426,7,7,0,0,8426,8427,5,95,0,0,8427,8428,7,18,0,0,8428,8429,7,8,0,0,8429,8430,7,23,0,0,8430,1332,1,0,0,0,8431,8432,7,17,0,0,8432,8433,7,11,0,0,8433,8434,7,7,0,0,8434,8435,7,8,0,0,8435,8436,5,95,0,0,8436,8437,7,8,0,0,8437,8438,7,7,0,0,8438,8439,7,11,0,0,8439,8440,7,19,0,0,8440,8441,7,17,0,0,8441,8442,7,8,0,0,8442,8443,7,14,0,0,8443,8444,7,7,0,0,8444,8445,7,11,0,0,8445,1334,1,0,0,0,8446,8447,7,24,0,0,8447,8448,7,3,0,0,8448,8449,7,5,0,0,8449,8450,7,15,0,0,8450,8451,7,4,0,0,8451,8452,7,3,0,0,8452,8453,7,6,0,0,8453,8454,7,15,0,0,8454,8455,7,19,0,0,8455,8456,7,12,0,0,8456,1336,1,0,0,0,8457,8458,7,24,0,0,8458,8459,7,3,0,0,8459,8460,7,5,0,0,8460,8461,7,17,0,0,8461,8462,7,7,0,0,8462,1338,1,0,0,0,8463,8464,7,24,0,0,8464,8465,7,3,0,0,8465,8466,7,8,0,0,8466,8467,7,15,0,0,8467,8468,7,3,0,0,8468,8469,7,16,0,0,8469,8470,7,5,0,0,8470,8471,7,7,0,0,8471,8472,7,11,0,0,8472,1340,1,0,0,0,8473,8474,7,24,0,0,8474,8475,7,15,0,0,8475,8476,7,7,0,0,8476,8477,7,9,0,0,8477,1342,1,0,0,0,8478,8479,7,24,0,0,8479,8480,7,15,0,0,8480,8481,7,8,0,0,8481,8482,7,6,0,0,8482,8483,7,17,0,0,8483,8484,7,3,0,0,8484,8485,7,5,0,0,8485,1344,1,0,0,0,8486,8487,7,24,0,0,8487,8488,7,15,0,0,8488,8489,7,11,0,0,8489,8490,7,15,0,0,8490,8491,7,16,0,0,8491,8492,7,5,0,0,8492,8493,7,7,0,0,8493,1346,1,0,0,0,8494,8495,7,9,0,0,8495,8496,7,3,0,0,8496,8497,7,15,0,0,8497,8498,7,6,0,0,8498,1348,1,0,0,0,8499,8500,7,9,0,0,8500,8501,7,3,0,0,8501,8502,7,8,0,0,8502,8503,7,12,0,0,8503,8504,7,15,0,0,8504,8505,7,12,0,0,8505,8506,7,22,0,0,8506,8507,7,11,0,0,8507,1350,1,0,0,0,8508,8509,7,9,0,0,8509,8510,7,15,0,0,8510,8511,7,12,0,0,8511,8512,7,4,0,0,8512,8513,7,19,0,0,8513,8514,7,9,0,0,8514,1352,1,0,0,0,8515,8516,7,9,0,0,8516,8517,7,15,0,0,8517,8518,7,6,0,0,8518,8519,7,20,0,0,8519,8520,7,19,0,0,8520,8521,7,17,0,0,8521,8522,7,6,0,0,8522,1354,1,0,0,0,8523,8524,7,9,0,0,8524,8525,7,19,0,0,8525,8526,7,8,0,0,8526,8527,7,21,0,0,8527,1356,1,0,0,0,8528,8529,7,9,0,0,8529,8530,7,8,0,0,8530,8531,7,3,0,0,8531,8532,7,25,0,0,8532,8533,7,25,0,0,8533,8534,7,7,0,0,8534,8535,7,8,0,0,8535,1358,1,0,0,0,8536,8537,7,26,0,0,8537,8538,5,53,0,0,8538,8539,5,48,0,0,8539,8540,5,57,0,0,8540,1360,1,0,0,0,8541,8542,7,26,0,0,8542,8543,7,3,0,0,8543,1362,1,0,0,0,8544,8545,7,26,0,0,8545,8546,7,23,0,0,8546,8547,7,5,0,0,8547,1364,1,0,0,0,8548,8549,7,10,0,0,8549,8550,7,7,0,0,8550,8551,7,11,0,0,8551,1366,1,0,0,0,8552,8553,7,7,0,0,8553,8554,7,17,0,0,8554,8555,7,8,0,0,8555,1368,1,0,0,0,8556,8557,7,17,0,0,8557,8558,7,11,0,0,8558,8559,7,3,0,0,8559,1370,1,0,0,0,8560,8561,7,27,0,0,8561,8562,7,15,0,0,8562,8563,7,11,0,0,8563,1372,1,0,0,0,8564,8565,7,15,0,0,8565,8566,7,11,0,0,8566,8567,7,19,0,0,8567,1374,1,0,0,0,8568,8569,7,15,0,0,8569,8570,7,12,0,0,8570,8571,7,6,0,0,8571,8572,7,7,0,0,8572,8573,7,8,0,0,8573,8574,7,12,0,0,8574,8575,7,3,0,0,8575,8576,7,5,0,0,8576,1376,1,0,0,0,8577,8578,7,28,0,0,8578,8579,7,17,0,0,8579,8580,7,3,0,0,8580,8581,7,8,0,0,8581,8582,7,6,0,0,8582,8583,7,7,0,0,8583,8584,7,8,0,0,8584,1378,1,0,0,0,8585,8586,7,23,0,0,8586,8587,7,19,0,0,8587,8588,7,12,0,0,8588,8589,7,6,0,0,8589,8590,7,20,0,0,8590,1380,1,0,0,0,8591,8592,7,4,0,0,8592,8593,7,3,0,0,8593,8594,7,10,0,0,8594,1382,1,0,0,0,8595,8596,7,20,0,0,8596,8597,7,19,0,0,8597,8598,7,17,0,0,8598,8599,7,8,0,0,8599,1384,1,0,0,0,8600,8601,7,23,0,0,8601,8602,7,15,0,0,8602,8603,7,12,0,0,8603,8604,7,17,0,0,8604,8605,7,6,0,0,8605,8606,7,7,0,0,8606,1386,1,0,0,0,8607,8608,7,9,0,0,8608,8609,7,7,0,0,8609,8610,7,7,0,0,8610,8611,7,21,0,0,8611,1388,1,0,0,0,8612,8613,7,11,0,0,8613,8614,7,7,0,0,8614,8615,7,14,0,0,8615,8616,7,19,0,0,8616,8617,7,12,0,0,8617,8618,7,4,0,0,8618,1390,1,0,0,0,8619,8620,7,23,0,0,8620,8621,7,15,0,0,8621,8622,7,14,0,0,8622,8623,7,8,0,0,8623,8624,7,19,0,0,8624,8625,7,11,0,0,8625,8626,7,7,0,0,8626,8627,7,14,0,0,8627,8628,7,19,0,0,8628,8629,7,12,0,0,8629,8630,7,4,0,0,8630,1392,1,0,0,0,8631,8632,7,3,0,0,8632,8633,7,4,0,0,8633,8634,7,23,0,0,8634,8635,7,15,0,0,8635,8636,7,12,0,0,8636,1394,1,0,0,0,8637,8638,7,3,0,0,8638,8639,7,25,0,0,8639,8640,7,25,0,0,8640,8641,7,5,0,0,8641,8642,7,15,0,0,8642,8643,7,14,0,0,8643,8644,7,3,0,0,8644,8645,7,6,0,0,8645,8646,7,15,0,0,8646,8647,7,19,0,0,8647,8648,7,12,0,0,8648,8649,5,95,0,0,8649,8650,7,25,0,0,8650,8651,7,3,0,0,8651,8652,7,11,0,0,8652,8653,7,11,0,0,8653,8654,7,9,0,0,8654,8655,7,19,0,0,8655,8656,7,8,0,0,8656,8657,7,4,0,0,8657,8658,5,95,0,0,8658,8659,7,3,0,0,8659,8660,7,4,0,0,8660,8661,7,23,0,0,8661,8662,7,15,0,0,8662,8663,7,12,0,0,8663,1396,1,0,0,0,8664,8665,7,3,0,0,8665,8666,7,17,0,0,8666,8667,7,4,0,0,8667,8668,7,15,0,0,8668,8669,7,6,0,0,8669,8670,5,95,0,0,8670,8671,7,3,0,0,8671,8672,7,16,0,0,8672,8673,7,19,0,0,8673,8674,7,8,0,0,8674,8675,7,6,0,0,8675,8676,5,95,0,0,8676,8677,7,7,0,0,8677,8678,7,26,0,0,8678,8679,7,7,0,0,8679,8680,7,23,0,0,8680,8681,7,25,0,0,8681,8682,7,6,0,0,8682,1398,1,0,0,0,8683,8684,7,3,0,0,8684,8685,7,17,0,0,8685,8686,7,4,0,0,8686,8687,7,15,0,0,8687,8688,7,6,0,0,8688,8689,5,95,0,0,8689,8690,7,3,0,0,8690,8691,7,4,0,0,8691,8692,7,23,0,0,8692,8693,7,15,0,0,8693,8694,7,12,0,0,8694,1400,1,0,0,0,8695,8696,7,3,0,0,8696,8697,7,17,0,0,8697,8698,7,6,0,0,8698,8699,7,20,0,0,8699,8700,7,7,0,0,8700,8701,7,12,0,0,8701,8702,7,6,0,0,8702,8703,7,15,0,0,8703,8704,7,14,0,0,8704,8705,7,3,0,0,8705,8706,7,6,0,0,8706,8707,7,15,0,0,8707,8708,7,19,0,0,8708,8709,7,12,0,0,8709,8710,5,95,0,0,8710,8711,7,25,0,0,8711,8712,7,19,0,0,8712,8713,7,5,0,0,8713,8714,7,15,0,0,8714,8715,7,14,0,0,8715,8716,7,10,0,0,8716,8717,5,95,0,0,8717,8718,7,3,0,0,8718,8719,7,4,0,0,8719,8720,7,23,0,0,8720,8721,7,15,0,0,8721,8722,7,12,0,0,8722,1402,1,0,0,0,8723,8724,7,16,0,0,8724,8725,7,3,0,0,8725,8726,7,14,0,0,8726,8727,7,21,0,0,8727,8728,7,17,0,0,8728,8729,7,25,0,0,8729,8730,5,95,0,0,8730,8731,7,3,0,0,8731,8732,7,4,0,0,8732,8733,7,23,0,0,8733,8734,7,15,0,0,8734,8735,7,12,0,0,8735,1404,1,0,0,0,8736,8737,7,16,0,0,8737,8738,7,15,0,0,8738,8739,7,12,0,0,8739,8740,7,5,0,0,8740,8741,7,19,0,0,8741,8742,7,22,0,0,8742,8743,5,95,0,0,8743,8744,7,3,0,0,8744,8745,7,4,0,0,8745,8746,7,23,0,0,8746,8747,7,15,0,0,8747,8748,7,12,0,0,8748,1406,1,0,0,0,8749,8750,7,16,0,0,8750,8751,7,15,0,0,8751,8752,7,12,0,0,8752,8753,7,5,0,0,8753,8754,7,19,0,0,8754,8755,7,22,0,0,8755,8756,5,95,0,0,8756,8757,7,7,0,0,8757,8758,7,12,0,0,8758,8759,7,14,0,0,8759,8760,7,8,0,0,8760,8761,7,10,0,0,8761,8762,7,25,0,0,8762,8763,7,6,0,0,8763,8764,7,15,0,0,8764,8765,7,19,0,0,8765,8766,7,12,0,0,8766,8767,5,95,0,0,8767,8768,7,3,0,0,8768,8769,7,4,0,0,8769,8770,7,23,0,0,8770,8771,7,15,0,0,8771,8772,7,12,0,0,8772,1408,1,0,0,0,8773,8774,7,14,0,0,8774,8775,7,5,0,0,8775,8776,7,19,0,0,8776,8777,7,12,0,0,8777,8778,7,7,0,0,8778,8779,5,95,0,0,8779,8780,7,3,0,0,8780,8781,7,4,0,0,8781,8782,7,23,0,0,8782,8783,7,15,0,0,8783,8784,7,12,0,0,8784,1410,1,0,0,0,8785,8786,7,14,0,0,8786,8787,7,19,0,0,8787,8788,7,12,0,0,8788,8789,7,12,0,0,8789,8790,7,7,0,0,8790,8791,7,14,0,0,8791,8792,7,6,0,0,8792,8793,7,15,0,0,8793,8794,7,19,0,0,8794,8795,7,12,0,0,8795,8796,5,95,0,0,8796,8797,7,3,0,0,8797,8798,7,4,0,0,8798,8799,7,23,0,0,8799,8800,7,15,0,0,8800,8801,7,12,0,0,8801,1412,1,0,0,0,8802,8803,7,7,0,0,8803,8804,7,12,0,0,8804,8805,7,14,0,0,8805,8806,7,8,0,0,8806,8807,7,10,0,0,8807,8808,7,25,0,0,8808,8809,7,6,0,0,8809,8810,7,15,0,0,8810,8811,7,19,0,0,8811,8812,7,12,0,0,8812,8813,5,95,0,0,8813,8814,7,21,0,0,8814,8815,7,7,0,0,8815,8816,7,10,0,0,8816,8817,5,95,0,0,8817,8818,7,3,0,0,8818,8819,7,4,0,0,8819,8820,7,23,0,0,8820,8821,7,15,0,0,8821,8822,7,12,0,0,8822,1414,1,0,0,0,8823,8824,7,7,0,0,8824,8825,7,26,0,0,8825,8826,7,7,0,0,8826,8827,7,14,0,0,8827,8828,7,17,0,0,8828,8829,7,6,0,0,8829,8830,7,7,0,0,8830,1416,1,0,0,0,8831,8832,7,18,0,0,8832,8833,7,15,0,0,8833,8834,7,5,0,0,8834,8835,7,7,0,0,8835,1418,1,0,0,0,8836,8837,7,18,0,0,8837,8838,7,15,0,0,8838,8839,7,8,0,0,8839,8840,7,7,0,0,8840,8841,7,9,0,0,8841,8842,7,3,0,0,8842,8843,7,5,0,0,8843,8844,7,5,0,0,8844,8845,5,95,0,0,8845,8846,7,3,0,0,8846,8847,7,4,0,0,8847,8848,7,23,0,0,8848,8849,7,15,0,0,8849,8850,7,12,0,0,8850,1420,1,0,0,0,8851,8852,7,18,0,0,8852,8853,7,15,0,0,8853,8854,7,8,0,0,8854,8855,7,7,0,0,8855,8856,7,9,0,0,8856,8857,7,3,0,0,8857,8858,7,5,0,0,8858,8859,7,5,0,0,8859,8860,5,95,0,0,8860,8861,7,7,0,0,8861,8862,7,26,0,0,8862,8863,7,7,0,0,8863,8864,7,23,0,0,8864,8865,7,25,0,0,8865,8866,7,6,0,0,8866,1422,1,0,0,0,8867,8868,7,18,0,0,8868,8869,7,15,0,0,8869,8870,7,8,0,0,8870,8871,7,7,0,0,8871,8872,7,9,0,0,8872,8873,7,3,0,0,8873,8874,7,5,0,0,8874,8875,7,5,0,0,8875,8876,5,95,0,0,8876,8877,7,17,0,0,8877,8878,7,11,0,0,8878,8879,7,7,0,0,8879,8880,7,8,0,0,8880,1424,1,0,0,0,8881,8882,7,18,0,0,8882,8883,7,5,0,0,8883,8884,7,17,0,0,8884,8885,7,11,0,0,8885,8886,7,20,0,0,8886,8887,5,95,0,0,8887,8888,7,19,0,0,8888,8889,7,25,0,0,8889,8890,7,6,0,0,8890,8891,7,15,0,0,8891,8892,7,23,0,0,8892,8893,7,15,0,0,8893,8894,7,13,0,0,8894,8895,7,7,0,0,8895,8896,7,8,0,0,8896,8897,5,95,0,0,8897,8898,7,14,0,0,8898,8899,7,19,0,0,8899,8900,7,11,0,0,8900,8901,7,6,0,0,8901,8902,7,11,0,0,8902,1426,1,0,0,0,8903,8904,7,18,0,0,8904,8905,7,5,0,0,8905,8906,7,17,0,0,8906,8907,7,11,0,0,8907,8908,7,20,0,0,8908,8909,5,95,0,0,8909,8910,7,11,0,0,8910,8911,7,6,0,0,8911,8912,7,3,0,0,8912,8913,7,6,0,0,8913,8914,7,17,0,0,8914,8915,7,11,0,0,8915,1428,1,0,0,0,8916,8917,7,18,0,0,8917,8918,7,5,0,0,8918,8919,7,17,0,0,8919,8920,7,11,0,0,8920,8921,7,20,0,0,8921,8922,5,95,0,0,8922,8923,7,6,0,0,8923,8924,7,3,0,0,8924,8925,7,16,0,0,8925,8926,7,5,0,0,8926,8927,7,7,0,0,8927,8928,7,11,0,0,8928,1430,1,0,0,0,8929,8930,7,18,0,0,8930,8931,7,5,0,0,8931,8932,7,17,0,0,8932,8933,7,11,0,0,8933,8934,7,20,0,0,8934,8935,5,95,0,0,8935,8936,7,17,0,0,8936,8937,7,11,0,0,8937,8938,7,7,0,0,8938,8939,7,8,0,0,8939,8940,5,95,0,0,8940,8941,7,8,0,0,8941,8942,7,7,0,0,8942,8943,7,11,0,0,8943,8944,7,19,0,0,8944,8945,7,17,0,0,8945,8946,7,8,0,0,8946,8947,7,14,0,0,8947,8948,7,7,0,0,8948,8949,7,11,0,0,8949,1432,1,0,0,0,8950,8951,7,22,0,0,8951,8952,7,8,0,0,8952,8953,7,19,0,0,8953,8954,7,17,0,0,8954,8955,7,25,0,0,8955,8956,5,95,0,0,8956,8957,7,8,0,0,8957,8958,7,7,0,0,8958,8959,7,25,0,0,8959,8960,7,5,0,0,8960,8961,7,15,0,0,8961,8962,7,14,0,0,8962,8963,7,3,0,0,8963,8964,7,6,0,0,8964,8965,7,15,0,0,8965,8966,7,19,0,0,8966,8967,7,12,0,0,8967,8968,5,95,0,0,8968,8969,7,3,0,0,8969,8970,7,4,0,0,8970,8971,7,23,0,0,8971,8972,7,15,0,0,8972,8973,7,12,0,0,8973,1434,1,0,0,0,8974,8975,7,15,0,0,8975,8976,7,12,0,0,8976,8977,7,12,0,0,8977,8978,7,19,0,0,8978,8979,7,4,0,0,8979,8980,7,16,0,0,8980,8981,5,95,0,0,8981,8982,7,8,0,0,8982,8983,7,7,0,0,8983,8984,7,4,0,0,8984,8985,7,19,0,0,8985,8986,5,95,0,0,8986,8987,7,5,0,0,8987,8988,7,19,0,0,8988,8989,7,22,0,0,8989,8990,5,95,0,0,8990,8991,7,3,0,0,8991,8992,7,8,0,0,8992,8993,7,14,0,0,8993,8994,7,20,0,0,8994,8995,7,15,0,0,8995,8996,7,24,0,0,8996,8997,7,7,0,0,8997,1436,1,0,0,0,8998,8999,7,15,0,0,8999,9e3,7,12,0,0,9e3,9001,7,12,0,0,9001,9002,7,19,0,0,9002,9003,7,4,0,0,9003,9004,7,16,0,0,9004,9005,5,95,0,0,9005,9006,7,8,0,0,9006,9007,7,7,0,0,9007,9008,7,4,0,0,9008,9009,7,19,0,0,9009,9010,5,95,0,0,9010,9011,7,5,0,0,9011,9012,7,19,0,0,9012,9013,7,22,0,0,9013,9014,5,95,0,0,9014,9015,7,7,0,0,9015,9016,7,12,0,0,9016,9017,7,3,0,0,9017,9018,7,16,0,0,9018,9019,7,5,0,0,9019,9020,7,7,0,0,9020,1438,1,0,0,0,9021,9022,7,15,0,0,9022,9023,7,12,0,0,9023,9024,7,24,0,0,9024,9025,7,19,0,0,9025,9026,7,21,0,0,9026,9027,7,7,0,0,9027,1440,1,0,0,0,9028,9029,7,5,0,0,9029,9030,7,3,0,0,9030,9031,7,23,0,0,9031,9032,7,16,0,0,9032,9033,7,4,0,0,9033,9034,7,3,0,0,9034,1442,1,0,0,0,9035,9036,7,12,0,0,9036,9037,7,4,0,0,9037,9038,7,16,0,0,9038,9039,5,95,0,0,9039,9040,7,11,0,0,9040,9041,7,6,0,0,9041,9042,7,19,0,0,9042,9043,7,8,0,0,9043,9044,7,7,0,0,9044,9045,7,4,0,0,9045,9046,5,95,0,0,9046,9047,7,17,0,0,9047,9048,7,11,0,0,9048,9049,7,7,0,0,9049,9050,7,8,0,0,9050,1444,1,0,0,0,9051,9052,7,25,0,0,9052,9053,7,3,0,0,9053,9054,7,11,0,0,9054,9055,7,11,0,0,9055,9056,7,9,0,0,9056,9057,7,19,0,0,9057,9058,7,8,0,0,9058,9059,7,4,0,0,9059,9060,7,5,0,0,9060,9061,7,7,0,0,9061,9062,7,11,0,0,9062,9063,7,11,0,0,9063,9064,5,95,0,0,9064,9065,7,17,0,0,9065,9066,7,11,0,0,9066,9067,7,7,0,0,9067,9068,7,8,0,0,9068,9069,5,95,0,0,9069,9070,7,3,0,0,9070,9071,7,4,0,0,9071,9072,7,23,0,0,9072,9073,7,15,0,0,9073,9074,7,12,0,0,9074,1446,1,0,0,0,9075,9076,7,25,0,0,9076,9077,7,7,0,0,9077,9078,7,8,0,0,9078,9079,7,11,0,0,9079,9080,7,15,0,0,9080,9081,7,11,0,0,9081,9082,7,6,0,0,9082,9083,5,95,0,0,9083,9084,7,8,0,0,9084,9085,7,19,0,0,9085,9086,5,95,0,0,9086,9087,7,24,0,0,9087,9088,7,3,0,0,9088,9089,7,8,0,0,9089,9090,7,15,0,0,9090,9091,7,3,0,0,9091,9092,7,16,0,0,9092,9093,7,5,0,0,9093,9094,7,7,0,0,9094,9095,7,11,0,0,9095,9096,5,95,0,0,9096,9097,7,3,0,0,9097,9098,7,4,0,0,9098,9099,7,23,0,0,9099,9100,7,15,0,0,9100,9101,7,12,0,0,9101,1448,1,0,0,0,9102,9103,7,25,0,0,9103,9104,7,8,0,0,9104,9105,7,15,0,0,9105,9106,7,24,0,0,9106,9107,7,15,0,0,9107,9108,7,5,0,0,9108,9109,7,7,0,0,9109,9110,7,22,0,0,9110,9111,7,7,0,0,9111,9112,7,11,0,0,9112,1450,1,0,0,0,9113,9114,7,25,0,0,9114,9115,7,8,0,0,9115,9116,7,19,0,0,9116,9117,7,14,0,0,9117,9118,7,7,0,0,9118,9119,7,11,0,0,9119,9120,7,11,0,0,9120,1452,1,0,0,0,9121,9122,7,8,0,0,9122,9123,7,7,0,0,9123,9124,7,5,0,0,9124,9125,7,19,0,0,9125,9126,7,3,0,0,9126,9127,7,4,0,0,9127,1454,1,0,0,0,9128,9129,7,8,0,0,9129,9130,7,7,0,0,9130,9131,7,25,0,0,9131,9132,7,5,0,0,9132,9133,7,15,0,0,9133,9134,7,14,0,0,9134,9135,7,3,0,0,9135,9136,7,6,0,0,9136,9137,7,15,0,0,9137,9138,7,19,0,0,9138,9139,7,12,0,0,9139,9140,5,95,0,0,9140,9141,7,3,0,0,9141,9142,7,25,0,0,9142,9143,7,25,0,0,9143,9144,7,5,0,0,9144,9145,7,15,0,0,9145,9146,7,7,0,0,9146,9147,7,8,0,0,9147,1456,1,0,0,0,9148,9149,7,8,0,0,9149,9150,7,7,0,0,9150,9151,7,25,0,0,9151,9152,7,5,0,0,9152,9153,7,15,0,0,9153,9154,7,14,0,0,9154,9155,7,3,0,0,9155,9156,7,6,0,0,9156,9157,7,15,0,0,9157,9158,7,19,0,0,9158,9159,7,12,0,0,9159,9160,5,95,0,0,9160,9161,7,11,0,0,9161,9162,7,5,0,0,9162,9163,7,3,0,0,9163,9164,7,24,0,0,9164,9165,7,7,0,0,9165,9166,5,95,0,0,9166,9167,7,3,0,0,9167,9168,7,4,0,0,9168,9169,7,23,0,0,9169,9170,7,15,0,0,9170,9171,7,12,0,0,9171,1458,1,0,0,0,9172,9173,7,8,0,0,9173,9174,7,7,0,0,9174,9175,7,11,0,0,9175,9176,7,19,0,0,9176,9177,7,17,0,0,9177,9178,7,8,0,0,9178,9179,7,14,0,0,9179,9180,7,7,0,0,9180,9181,5,95,0,0,9181,9182,7,22,0,0,9182,9183,7,8,0,0,9183,9184,7,19,0,0,9184,9185,7,17,0,0,9185,9186,7,25,0,0,9186,9187,5,95,0,0,9187,9188,7,3,0,0,9188,9189,7,4,0,0,9189,9190,7,23,0,0,9190,9191,7,15,0,0,9191,9192,7,12,0,0,9192,1460,1,0,0,0,9193,9194,7,8,0,0,9194,9195,7,7,0,0,9195,9196,7,11,0,0,9196,9197,7,19,0,0,9197,9198,7,17,0,0,9198,9199,7,8,0,0,9199,9200,7,14,0,0,9200,9201,7,7,0,0,9201,9202,5,95,0,0,9202,9203,7,22,0,0,9203,9204,7,8,0,0,9204,9205,7,19,0,0,9205,9206,7,17,0,0,9206,9207,7,25,0,0,9207,9208,5,95,0,0,9208,9209,7,17,0,0,9209,9210,7,11,0,0,9210,9211,7,7,0,0,9211,9212,7,8,0,0,9212,1462,1,0,0,0,9213,9214,7,8,0,0,9214,9215,7,19,0,0,9215,9216,7,5,0,0,9216,9217,7,7,0,0,9217,9218,5,95,0,0,9218,9219,7,3,0,0,9219,9220,7,4,0,0,9220,9221,7,23,0,0,9221,9222,7,15,0,0,9222,9223,7,12,0,0,9223,1464,1,0,0,0,9224,9225,7,8,0,0,9225,9226,7,19,0,0,9226,9227,7,17,0,0,9227,9228,7,6,0,0,9228,9229,7,15,0,0,9229,9230,7,12,0,0,9230,9231,7,7,0,0,9231,1466,1,0,0,0,9232,9233,7,11,0,0,9233,9234,5,51,0,0,9234,1468,1,0,0,0,9235,9236,7,11,0,0,9236,9237,7,7,0,0,9237,9238,7,8,0,0,9238,9239,7,24,0,0,9239,9240,7,15,0,0,9240,9241,7,14,0,0,9241,9242,7,7,0,0,9242,9243,5,95,0,0,9243,9244,7,14,0,0,9244,9245,7,19,0,0,9245,9246,7,12,0,0,9246,9247,7,12,0,0,9247,9248,7,7,0,0,9248,9249,7,14,0,0,9249,9250,7,6,0,0,9250,9251,7,15,0,0,9251,9252,7,19,0,0,9252,9253,7,12,0,0,9253,9254,5,95,0,0,9254,9255,7,3,0,0,9255,9256,7,4,0,0,9256,9257,7,23,0,0,9257,9258,7,15,0,0,9258,9259,7,12,0,0,9259,1470,1,0,0,0,9260,9262,3,2289,1144,0,9261,9260,1,0,0,0,9261,9262,1,0,0,0,9262,9263,1,0,0,0,9263,9264,7,11,0,0,9264,9265,7,7,0,0,9265,9266,7,11,0,0,9266,9267,7,11,0,0,9267,9268,7,15,0,0,9268,9269,7,19,0,0,9269,9270,7,12,0,0,9270,9271,5,95,0,0,9271,9272,7,24,0,0,9272,9273,7,3,0,0,9273,9274,7,8,0,0,9274,9275,7,15,0,0,9275,9276,7,3,0,0,9276,9277,7,16,0,0,9277,9278,7,5,0,0,9278,9279,7,7,0,0,9279,9280,7,11,0,0,9280,9281,5,95,0,0,9281,9282,7,3,0,0,9282,9283,7,4,0,0,9283,9284,7,23,0,0,9284,9285,7,15,0,0,9285,9286,7,12,0,0,9286,9288,1,0,0,0,9287,9289,3,2289,1144,0,9288,9287,1,0,0,0,9288,9289,1,0,0,0,9289,1472,1,0,0,0,9290,9291,7,11,0,0,9291,9292,7,7,0,0,9292,9293,7,6,0,0,9293,9294,5,95,0,0,9294,9295,7,17,0,0,9295,9296,7,11,0,0,9296,9297,7,7,0,0,9297,9298,7,8,0,0,9298,9299,5,95,0,0,9299,9300,7,15,0,0,9300,9301,7,4,0,0,9301,1474,1,0,0,0,9302,9303,7,11,0,0,9303,9304,7,20,0,0,9304,9305,7,19,0,0,9305,9306,7,9,0,0,9306,9307,5,95,0,0,9307,9308,7,8,0,0,9308,9309,7,19,0,0,9309,9310,7,17,0,0,9310,9311,7,6,0,0,9311,9312,7,15,0,0,9312,9313,7,12,0,0,9313,9314,7,7,0,0,9314,1476,1,0,0,0,9315,9316,7,11,0,0,9316,9317,7,20,0,0,9317,9318,7,17,0,0,9318,9319,7,6,0,0,9319,9320,7,4,0,0,9320,9321,7,19,0,0,9321,9322,7,9,0,0,9322,9323,7,12,0,0,9323,1478,1,0,0,0,9324,9325,7,11,0,0,9325,9326,7,17,0,0,9326,9327,7,25,0,0,9327,9328,7,7,0,0,9328,9329,7,8,0,0,9329,1480,1,0,0,0,9330,9331,7,11,0,0,9331,9332,7,10,0,0,9332,9333,7,11,0,0,9333,9334,7,6,0,0,9334,9335,7,7,0,0,9335,9336,7,23,0,0,9336,9337,5,95,0,0,9337,9338,7,24,0,0,9338,9339,7,3,0,0,9339,9340,7,8,0,0,9340,9341,7,15,0,0,9341,9342,7,3,0,0,9342,9343,7,16,0,0,9343,9344,7,5,0,0,9344,9345,7,7,0,0,9345,9346,7,11,0,0,9346,9347,5,95,0,0,9347,9348,7,3,0,0,9348,9349,7,4,0,0,9349,9350,7,23,0,0,9350,9351,7,15,0,0,9351,9352,7,12,0,0,9352,1482,1,0,0,0,9353,9354,7,6,0,0,9354,9355,7,3,0,0,9355,9356,7,16,0,0,9356,9357,7,5,0,0,9357,9358,7,7,0,0,9358,9359,7,11,0,0,9359,1484,1,0,0,0,9360,9361,7,6,0,0,9361,9362,7,3,0,0,9362,9363,7,16,0,0,9363,9364,7,5,0,0,9364,9365,7,7,0,0,9365,9366,5,95,0,0,9366,9367,7,7,0,0,9367,9368,7,12,0,0,9368,9369,7,14,0,0,9369,9370,7,8,0,0,9370,9371,7,10,0,0,9371,9372,7,25,0,0,9372,9373,7,6,0,0,9373,9374,7,15,0,0,9374,9375,7,19,0,0,9375,9376,7,12,0,0,9376,9377,5,95,0,0,9377,9378,7,3,0,0,9378,9379,7,4,0,0,9379,9380,7,23,0,0,9380,9381,7,15,0,0,9381,9382,7,12,0,0,9382,1486,1,0,0,0,9383,9384,7,24,0,0,9384,9385,7,7,0,0,9385,9386,7,8,0,0,9386,9387,7,11,0,0,9387,9388,7,15,0,0,9388,9389,7,19,0,0,9389,9390,7,12,0,0,9390,9391,5,95,0,0,9391,9392,7,6,0,0,9392,9393,7,19,0,0,9393,9394,7,21,0,0,9394,9395,7,7,0,0,9395,9396,7,12,0,0,9396,9397,5,95,0,0,9397,9398,7,3,0,0,9398,9399,7,4,0,0,9399,9400,7,23,0,0,9400,9401,7,15,0,0,9401,9402,7,12,0,0,9402,1488,1,0,0,0,9403,9404,7,26,0,0,9404,9405,7,3,0,0,9405,9406,5,95,0,0,9406,9407,7,8,0,0,9407,9408,7,7,0,0,9408,9409,7,14,0,0,9409,9410,7,19,0,0,9410,9411,7,24,0,0,9411,9412,7,7,0,0,9412,9413,7,8,0,0,9413,9414,5,95,0,0,9414,9415,7,3,0,0,9415,9416,7,4,0,0,9416,9417,7,23,0,0,9417,9418,7,15,0,0,9418,9419,7,12,0,0,9419,1490,1,0,0,0,9420,9421,7,3,0,0,9421,9422,7,8,0,0,9422,9423,7,23,0,0,9423,9424,7,11,0,0,9424,9425,7,14,0,0,9425,9426,7,15,0,0,9426,9427,7,15,0,0,9427,9428,5,56,0,0,9428,1492,1,0,0,0,9429,9430,7,3,0,0,9430,9431,7,11,0,0,9431,9432,7,14,0,0,9432,9433,7,15,0,0,9433,9434,7,15,0,0,9434,1494,1,0,0,0,9435,9436,7,16,0,0,9436,9437,7,15,0,0,9437,9438,7,22,0,0,9438,9439,5,53,0,0,9439,1496,1,0,0,0,9440,9441,7,14,0,0,9441,9442,7,25,0,0,9442,9443,5,49,0,0,9443,9444,5,50,0,0,9444,9445,5,53,0,0,9445,9446,5,48,0,0,9446,1498,1,0,0,0,9447,9448,7,14,0,0,9448,9449,7,25,0,0,9449,9450,5,49,0,0,9450,9451,5,50,0,0,9451,9452,5,53,0,0,9452,9453,5,49,0,0,9453,1500,1,0,0,0,9454,9455,7,14,0,0,9455,9456,7,25,0,0,9456,9457,5,49,0,0,9457,9458,5,50,0,0,9458,9459,5,53,0,0,9459,9460,5,54,0,0,9460,1502,1,0,0,0,9461,9462,7,14,0,0,9462,9463,7,25,0,0,9463,9464,5,49,0,0,9464,9465,5,50,0,0,9465,9466,5,53,0,0,9466,9467,5,55,0,0,9467,1504,1,0,0,0,9468,9469,7,14,0,0,9469,9470,7,25,0,0,9470,9471,5,56,0,0,9471,9472,5,53,0,0,9472,9473,5,48,0,0,9473,1506,1,0,0,0,9474,9475,7,14,0,0,9475,9476,7,25,0,0,9476,9477,5,56,0,0,9477,9478,5,53,0,0,9478,9479,5,50,0,0,9479,1508,1,0,0,0,9480,9481,7,14,0,0,9481,9482,7,25,0,0,9482,9483,5,56,0,0,9483,9484,5,54,0,0,9484,9485,5,54,0,0,9485,1510,1,0,0,0,9486,9487,7,14,0,0,9487,9488,7,25,0,0,9488,9489,5,57,0,0,9489,9490,5,51,0,0,9490,9491,5,50,0,0,9491,1512,1,0,0,0,9492,9493,7,4,0,0,9493,9494,7,7,0,0,9494,9495,7,14,0,0,9495,9496,5,56,0,0,9496,1514,1,0,0,0,9497,9498,7,7,0,0,9498,9499,7,17,0,0,9499,9500,7,14,0,0,9500,9501,7,27,0,0,9501,9502,7,25,0,0,9502,9503,7,23,0,0,9503,9504,7,11,0,0,9504,1516,1,0,0,0,9505,9506,7,7,0,0,9506,9507,7,17,0,0,9507,9508,7,14,0,0,9508,9509,7,21,0,0,9509,9510,7,8,0,0,9510,1518,1,0,0,0,9511,9512,7,22,0,0,9512,9513,7,16,0,0,9513,9514,5,49,0,0,9514,9515,5,56,0,0,9515,9516,5,48,0,0,9516,9517,5,51,0,0,9517,9518,5,48,0,0,9518,1520,1,0,0,0,9519,9520,7,22,0,0,9520,9521,7,16,0,0,9521,9522,5,50,0,0,9522,9523,5,51,0,0,9523,9524,5,49,0,0,9524,9525,5,50,0,0,9525,1522,1,0,0,0,9526,9527,7,22,0,0,9527,9528,7,16,0,0,9528,9529,7,21,0,0,9529,1524,1,0,0,0,9530,9531,7,22,0,0,9531,9532,7,7,0,0,9532,9533,7,19,0,0,9533,9534,7,11,0,0,9534,9535,7,6,0,0,9535,9536,7,4,0,0,9536,9537,5,56,0,0,9537,1526,1,0,0,0,9538,9539,7,22,0,0,9539,9540,7,8,0,0,9540,9541,7,7,0,0,9541,9542,7,7,0,0,9542,9543,7,21,0,0,9543,1528,1,0,0,0,9544,9545,7,20,0,0,9545,9546,7,7,0,0,9546,9547,7,16,0,0,9547,9548,7,8,0,0,9548,9549,7,7,0,0,9549,9550,7,9,0,0,9550,1530,1,0,0,0,9551,9552,7,20,0,0,9552,9553,7,25,0,0,9553,9554,5,56,0,0,9554,1532,1,0,0,0,9555,9556,7,21,0,0,9556,9557,7,7,0,0,9557,9558,7,10,0,0,9558,9559,7,16,0,0,9559,9560,7,14,0,0,9560,9561,7,11,0,0,9561,9562,5,50,0,0,9562,1534,1,0,0,0,9563,9564,7,21,0,0,9564,9565,7,19,0,0,9565,9566,7,15,0,0,9566,9567,5,56,0,0,9567,9568,7,8,0,0,9568,1536,1,0,0,0,9569,9570,7,21,0,0,9570,9571,7,19,0,0,9571,9572,7,15,0,0,9572,9573,5,56,0,0,9573,9574,7,17,0,0,9574,1538,1,0,0,0,9575,9576,7,5,0,0,9576,9577,7,3,0,0,9577,9578,7,6,0,0,9578,9579,7,15,0,0,9579,9580,7,12,0,0,9580,9581,5,49,0,0,9581,1540,1,0,0,0,9582,9583,7,5,0,0,9583,9584,7,3,0,0,9584,9585,7,6,0,0,9585,9586,7,15,0,0,9586,9587,7,12,0,0,9587,9588,5,50,0,0,9588,1542,1,0,0,0,9589,9590,7,5,0,0,9590,9591,7,3,0,0,9591,9592,7,6,0,0,9592,9593,7,15,0,0,9593,9594,7,12,0,0,9594,9595,5,53,0,0,9595,1544,1,0,0,0,9596,9597,7,5,0,0,9597,9598,7,3,0,0,9598,9599,7,6,0,0,9599,9600,7,15,0,0,9600,9601,7,12,0,0,9601,9602,5,55,0,0,9602,1546,1,0,0,0,9603,9604,7,23,0,0,9604,9605,7,3,0,0,9605,9606,7,14,0,0,9606,9607,7,14,0,0,9607,9608,7,7,0,0,9608,1548,1,0,0,0,9609,9610,7,23,0,0,9610,9611,7,3,0,0,9611,9612,7,14,0,0,9612,9613,7,8,0,0,9613,9614,7,19,0,0,9614,9615,7,23,0,0,9615,9616,7,3,0,0,9616,9617,7,12,0,0,9617,1550,1,0,0,0,9618,9619,7,11,0,0,9619,9620,7,27,0,0,9620,9621,7,15,0,0,9621,9622,7,11,0,0,9622,1552,1,0,0,0,9623,9624,7,11,0,0,9624,9625,7,9,0,0,9625,9626,7,7,0,0,9626,9627,5,55,0,0,9627,1554,1,0,0,0,9628,9629,7,6,0,0,9629,9630,7,15,0,0,9630,9631,7,11,0,0,9631,9632,5,54,0,0,9632,9633,5,50,0,0,9633,9634,5,48,0,0,9634,1556,1,0,0,0,9635,9636,7,17,0,0,9636,9637,7,14,0,0,9637,9638,7,11,0,0,9638,9639,5,50,0,0,9639,1558,1,0,0,0,9640,9641,7,17,0,0,9641,9642,7,27,0,0,9642,9643,7,15,0,0,9643,9644,7,11,0,0,9644,1560,1,0,0,0,9645,9646,7,17,0,0,9646,9647,7,6,0,0,9647,9648,7,18,0,0,9648,9649,5,49,0,0,9649,9650,5,54,0,0,9650,1562,1,0,0,0,9651,9652,7,17,0,0,9652,9653,7,6,0,0,9653,9654,7,18,0,0,9654,9655,5,49,0,0,9655,9656,5,54,0,0,9656,9657,7,5,0,0,9657,9658,7,7,0,0,9658,1564,1,0,0,0,9659,9660,7,17,0,0,9660,9661,7,6,0,0,9661,9662,7,18,0,0,9662,9663,5,51,0,0,9663,9664,5,50,0,0,9664,1566,1,0,0,0,9665,9666,7,17,0,0,9666,9667,7,6,0,0,9667,9668,7,18,0,0,9668,9669,5,56,0,0,9669,1568,1,0,0,0,9670,9671,7,17,0,0,9671,9672,7,6,0,0,9672,9673,7,18,0,0,9673,9674,5,56,0,0,9674,9675,7,23,0,0,9675,9676,7,16,0,0,9676,9677,5,51,0,0,9677,1570,1,0,0,0,9678,9679,7,17,0,0,9679,9680,7,6,0,0,9680,9681,7,18,0,0,9681,9682,5,56,0,0,9682,9683,7,23,0,0,9683,9684,7,16,0,0,9684,9685,5,52,0,0,9685,1572,1,0,0,0,9686,9687,7,3,0,0,9687,9688,7,8,0,0,9688,9689,7,14,0,0,9689,9690,7,20,0,0,9690,9691,7,15,0,0,9691,9692,7,24,0,0,9692,9693,7,7,0,0,9693,1574,1,0,0,0,9694,9695,7,16,0,0,9695,9696,7,5,0,0,9696,9697,7,3,0,0,9697,9698,7,14,0,0,9698,9699,7,21,0,0,9699,9700,7,20,0,0,9700,9701,7,19,0,0,9701,9702,7,5,0,0,9702,9703,7,7,0,0,9703,1576,1,0,0,0,9704,9705,7,14,0,0,9705,9706,7,11,0,0,9706,9707,7,24,0,0,9707,1578,1,0,0,0,9708,9709,7,18,0,0,9709,9710,7,7,0,0,9710,9711,7,4,0,0,9711,9712,7,7,0,0,9712,9713,7,8,0,0,9713,9714,7,3,0,0,9714,9715,7,6,0,0,9715,9716,7,7,0,0,9716,9717,7,4,0,0,9717,1580,1,0,0,0,9718,9719,7,15,0,0,9719,9720,7,12,0,0,9720,9721,7,12,0,0,9721,9722,7,19,0,0,9722,9723,7,4,0,0,9723,9724,7,16,0,0,9724,1582,1,0,0,0,9725,9726,7,23,0,0,9726,9727,7,7,0,0,9727,9728,7,23,0,0,9728,9729,7,19,0,0,9729,9730,7,8,0,0,9730,9731,7,10,0,0,9731,1584,1,0,0,0,9732,9733,7,23,0,0,9733,9734,7,8,0,0,9734,9735,7,22,0,0,9735,9736,5,95,0,0,9736,9737,7,23,0,0,9737,9738,7,10,0,0,9738,9739,7,15,0,0,9739,9740,7,11,0,0,9740,9741,7,3,0,0,9741,9742,7,23,0,0,9742,1586,1,0,0,0,9743,9744,7,23,0,0,9744,9745,7,10,0,0,9745,9746,7,15,0,0,9746,9747,7,11,0,0,9747,9748,7,3,0,0,9748,9749,7,23,0,0,9749,1588,1,0,0,0,9750,9751,7,12,0,0,9751,9752,7,4,0,0,9752,9753,7,16,0,0,9753,1590,1,0,0,0,9754,9755,7,12,0,0,9755,9756,7,4,0,0,9756,9757,7,16,0,0,9757,9758,7,14,0,0,9758,9759,7,5,0,0,9759,9760,7,17,0,0,9760,9761,7,11,0,0,9761,9762,7,6,0,0,9762,9763,7,7,0,0,9763,9764,7,8,0,0,9764,1592,1,0,0,0,9765,9766,7,25,0,0,9766,9767,7,7,0,0,9767,9768,7,8,0,0,9768,9769,7,18,0,0,9769,9770,7,19,0,0,9770,9771,7,8,0,0,9771,9772,7,23,0,0,9772,9773,7,3,0,0,9773,9774,7,12,0,0,9774,9775,7,14,0,0,9775,9776,7,7,0,0,9776,9777,5,95,0,0,9777,9778,7,11,0,0,9778,9779,7,14,0,0,9779,9780,7,20,0,0,9780,9781,7,7,0,0,9781,9782,7,23,0,0,9782,9783,7,3,0,0,9783,1594,1,0,0,0,9784,9785,7,6,0,0,9785,9786,7,19,0,0,9786,9787,7,21,0,0,9787,9788,7,17,0,0,9788,9789,7,4,0,0,9789,9790,7,16,0,0,9790,1596,1,0,0,0,9791,9792,7,8,0,0,9792,9793,7,7,0,0,9793,9794,7,25,0,0,9794,9795,7,7,0,0,9795,9796,7,3,0,0,9796,9797,7,6,0,0,9797,9798,7,3,0,0,9798,9799,7,16,0,0,9799,9800,7,5,0,0,9800,9801,7,7,0,0,9801,1598,1,0,0,0,9802,9803,7,14,0,0,9803,9804,7,19,0,0,9804,9805,7,23,0,0,9805,9806,7,23,0,0,9806,9807,7,15,0,0,9807,9808,7,6,0,0,9808,9809,7,6,0,0,9809,9810,7,7,0,0,9810,9811,7,4,0,0,9811,1600,1,0,0,0,9812,9813,7,17,0,0,9813,9814,7,12,0,0,9814,9815,7,14,0,0,9815,9816,7,19,0,0,9816,9817,7,23,0,0,9817,9818,7,23,0,0,9818,9819,7,15,0,0,9819,9820,7,6,0,0,9820,9821,7,6,0,0,9821,9822,7,7,0,0,9822,9823,7,4,0,0,9823,1602,1,0,0,0,9824,9825,7,11,0,0,9825,9826,7,7,0,0,9826,9827,7,8,0,0,9827,9828,7,15,0,0,9828,9829,7,3,0,0,9829,9830,7,5,0,0,9830,9831,7,15,0,0,9831,9832,7,13,0,0,9832,9833,7,3,0,0,9833,9834,7,16,0,0,9834,9835,7,5,0,0,9835,9836,7,7,0,0,9836,1604,1,0,0,0,9837,9838,7,22,0,0,9838,9839,7,7,0,0,9839,9840,7,19,0,0,9840,9841,7,23,0,0,9841,9842,7,7,0,0,9842,9843,7,6,0,0,9843,9844,7,8,0,0,9844,9845,7,10,0,0,9845,9846,7,14,0,0,9846,9847,7,19,0,0,9847,9848,7,5,0,0,9848,9849,7,5,0,0,9849,9850,7,7,0,0,9850,9851,7,14,0,0,9851,9852,7,6,0,0,9852,9853,7,15,0,0,9853,9854,7,19,0,0,9854,9855,7,12,0,0,9855,1606,1,0,0,0,9856,9857,7,22,0,0,9857,9858,7,7,0,0,9858,9859,7,19,0,0,9859,9860,7,23,0,0,9860,9861,7,14,0,0,9861,9862,7,19,0,0,9862,9863,7,5,0,0,9863,9864,7,5,0,0,9864,9865,7,7,0,0,9865,9866,7,14,0,0,9866,9867,7,6,0,0,9867,9868,7,15,0,0,9868,9869,7,19,0,0,9869,9870,7,12,0,0,9870,1608,1,0,0,0,9871,9872,7,22,0,0,9872,9873,7,7,0,0,9873,9874,7,19,0,0,9874,9875,7,23,0,0,9875,9876,7,7,0,0,9876,9877,7,6,0,0,9877,9878,7,8,0,0,9878,9879,7,10,0,0,9879,1610,1,0,0,0,9880,9881,7,5,0,0,9881,9882,7,15,0,0,9882,9883,7,12,0,0,9883,9884,7,7,0,0,9884,9885,7,11,0,0,9885,9886,7,6,0,0,9886,9887,7,8,0,0,9887,9888,7,15,0,0,9888,9889,7,12,0,0,9889,9890,7,22,0,0,9890,1612,1,0,0,0,9891,9892,7,23,0,0,9892,9893,7,17,0,0,9893,9894,7,5,0,0,9894,9895,7,6,0,0,9895,9896,7,15,0,0,9896,9897,7,5,0,0,9897,9898,7,15,0,0,9898,9899,7,12,0,0,9899,9900,7,7,0,0,9900,9901,7,11,0,0,9901,9902,7,6,0,0,9902,9903,7,8,0,0,9903,9904,7,15,0,0,9904,9905,7,12,0,0,9905,9906,7,22,0,0,9906,1614,1,0,0,0,9907,9908,7,23,0,0,9908,9909,7,17,0,0,9909,9910,7,5,0,0,9910,9911,7,6,0,0,9911,9912,7,15,0,0,9912,9913,7,25,0,0,9913,9914,7,19,0,0,9914,9915,7,15,0,0,9915,9916,7,12,0,0,9916,9917,7,6,0,0,9917,1616,1,0,0,0,9918,9919,7,23,0,0,9919,9920,7,17,0,0,9920,9921,7,5,0,0,9921,9922,7,6,0,0,9922,9923,7,15,0,0,9923,9924,7,25,0,0,9924,9925,7,19,0,0,9925,9926,7,5,0,0,9926,9927,7,10,0,0,9927,9928,7,22,0,0,9928,9929,7,19,0,0,9929,9930,7,12,0,0,9930,1618,1,0,0,0,9931,9932,7,25,0,0,9932,9933,7,19,0,0,9933,9934,7,15,0,0,9934,9935,7,12,0,0,9935,9936,7,6,0,0,9936,1620,1,0,0,0,9937,9938,7,25,0,0,9938,9939,7,19,0,0,9939,9940,7,5,0,0,9940,9941,7,10,0,0,9941,9942,7,22,0,0,9942,9943,7,19,0,0,9943,9944,7,12,0,0,9944,1622,1,0,0,0,9945,9946,7,3,0,0,9946,9947,7,16,0,0,9947,9948,7,11,0,0,9948,1624,1,0,0,0,9949,9950,7,3,0,0,9950,9951,7,14,0,0,9951,9952,7,19,0,0,9952,9953,7,11,0,0,9953,1626,1,0,0,0,9954,9955,7,3,0,0,9955,9956,7,4,0,0,9956,9957,7,4,0,0,9957,9958,7,4,0,0,9958,9959,7,3,0,0,9959,9960,7,6,0,0,9960,9961,7,7,0,0,9961,1628,1,0,0,0,9962,9963,7,3,0,0,9963,9964,7,4,0,0,9964,9965,7,4,0,0,9965,9966,7,6,0,0,9966,9967,7,15,0,0,9967,9968,7,23,0,0,9968,9969,7,7,0,0,9969,1630,1,0,0,0,9970,9971,7,3,0,0,9971,9972,7,7,0,0,9972,9973,7,11,0,0,9973,9974,5,95,0,0,9974,9975,7,4,0,0,9975,9976,7,7,0,0,9976,9977,7,14,0,0,9977,9978,7,8,0,0,9978,9979,7,10,0,0,9979,9980,7,25,0,0,9980,9981,7,6,0,0,9981,1632,1,0,0,0,9982,9983,7,3,0,0,9983,9984,7,7,0,0,9984,9985,7,11,0,0,9985,9986,5,95,0,0,9986,9987,7,7,0,0,9987,9988,7,12,0,0,9988,9989,7,14,0,0,9989,9990,7,8,0,0,9990,9991,7,10,0,0,9991,9992,7,25,0,0,9992,9993,7,6,0,0,9993,1634,1,0,0,0,9994,9995,7,3,0,0,9995,9996,7,8,0,0,9996,9997,7,7,0,0,9997,9998,7,3,0,0,9998,1636,1,0,0,0,9999,1e4,7,3,0,0,1e4,10001,7,11,0,0,10001,10002,7,16,0,0,10002,10003,7,15,0,0,10003,10004,7,12,0,0,10004,10005,7,3,0,0,10005,10006,7,8,0,0,10006,10007,7,10,0,0,10007,1638,1,0,0,0,10008,10009,7,3,0,0,10009,10010,7,11,0,0,10010,10011,7,15,0,0,10011,10012,7,12,0,0,10012,1640,1,0,0,0,10013,10014,7,3,0,0,10014,10015,7,11,0,0,10015,10016,7,6,0,0,10016,10017,7,7,0,0,10017,10018,7,26,0,0,10018,10019,7,6,0,0,10019,1642,1,0,0,0,10020,10021,7,3,0,0,10021,10022,7,11,0,0,10022,10023,7,9,0,0,10023,10024,7,21,0,0,10024,10025,7,16,0,0,10025,1644,1,0,0,0,10026,10027,7,3,0,0,10027,10028,7,11,0,0,10028,10029,7,9,0,0,10029,10030,7,21,0,0,10030,10031,7,6,0,0,10031,1646,1,0,0,0,10032,10033,7,3,0,0,10033,10034,7,11,0,0,10034,10035,7,10,0,0,10035,10036,7,23,0,0,10036,10037,7,23,0,0,10037,10038,7,7,0,0,10038,10039,7,6,0,0,10039,10040,7,8,0,0,10040,10041,7,15,0,0,10041,10042,7,14,0,0,10042,10043,5,95,0,0,10043,10044,7,4,0,0,10044,10045,7,7,0,0,10045,10046,7,14,0,0,10046,10047,7,8,0,0,10047,10048,7,10,0,0,10048,10049,7,25,0,0,10049,10050,7,6,0,0,10050,1648,1,0,0,0,10051,10052,7,3,0,0,10052,10053,7,11,0,0,10053,10054,7,10,0,0,10054,10055,7,23,0,0,10055,10056,7,23,0,0,10056,10057,7,7,0,0,10057,10058,7,6,0,0,10058,10059,7,8,0,0,10059,10060,7,15,0,0,10060,10061,7,14,0,0,10061,10062,5,95,0,0,10062,10063,7,4,0,0,10063,10064,7,7,0,0,10064,10065,7,8,0,0,10065,10066,7,15,0,0,10066,10067,7,24,0,0,10067,10068,7,7,0,0,10068,1650,1,0,0,0,10069,10070,7,3,0,0,10070,10071,7,11,0,0,10071,10072,7,10,0,0,10072,10073,7,23,0,0,10073,10074,7,23,0,0,10074,10075,7,7,0,0,10075,10076,7,6,0,0,10076,10077,7,8,0,0,10077,10078,7,15,0,0,10078,10079,7,14,0,0,10079,10080,5,95,0,0,10080,10081,7,7,0,0,10081,10082,7,12,0,0,10082,10083,7,14,0,0,10083,10084,7,8,0,0,10084,10085,7,10,0,0,10085,10086,7,25,0,0,10086,10087,7,6,0,0,10087,1652,1,0,0,0,10088,10089,7,3,0,0,10089,10090,7,11,0,0,10090,10091,7,10,0,0,10091,10092,7,23,0,0,10092,10093,7,23,0,0,10093,10094,7,7,0,0,10094,10095,7,6,0,0,10095,10096,7,8,0,0,10096,10097,7,15,0,0,10097,10098,7,14,0,0,10098,10099,5,95,0,0,10099,10100,7,11,0,0,10100,10101,7,15,0,0,10101,10102,7,22,0,0,10102,10103,7,12,0,0,10103,1654,1,0,0,0,10104,10105,7,3,0,0,10105,10106,7,11,0,0,10106,10107,7,10,0,0,10107,10108,7,23,0,0,10108,10109,7,23,0,0,10109,10110,7,7,0,0,10110,10111,7,6,0,0,10111,10112,7,8,0,0,10112,10113,7,15,0,0,10113,10114,7,14,0,0,10114,10115,5,95,0,0,10115,10116,7,24,0,0,10116,10117,7,7,0,0,10117,10118,7,8,0,0,10118,10119,7,15,0,0,10119,10120,7,18,0,0,10120,10121,7,10,0,0,10121,1656,1,0,0,0,10122,10123,7,3,0,0,10123,10124,7,6,0,0,10124,10125,7,3,0,0,10125,10126,7,12,0,0,10126,1658,1,0,0,0,10127,10128,7,3,0,0,10128,10129,7,6,0,0,10129,10130,7,3,0,0,10130,10131,7,12,0,0,10131,10132,5,50,0,0,10132,1660,1,0,0,0,10133,10134,7,16,0,0,10134,10135,7,7,0,0,10135,10136,7,12,0,0,10136,10137,7,14,0,0,10137,10138,7,20,0,0,10138,10139,7,23,0,0,10139,10140,7,3,0,0,10140,10141,7,8,0,0,10141,10142,7,21,0,0,10142,1662,1,0,0,0,10143,10144,7,16,0,0,10144,10145,7,15,0,0,10145,10146,7,12,0,0,10146,1664,1,0,0,0,10147,10148,7,16,0,0,10148,10149,7,15,0,0,10149,10150,7,6,0,0,10150,10151,5,95,0,0,10151,10152,7,14,0,0,10152,10153,7,19,0,0,10153,10154,7,17,0,0,10154,10155,7,12,0,0,10155,10156,7,6,0,0,10156,1666,1,0,0,0,10157,10158,7,16,0,0,10158,10159,7,15,0,0,10159,10160,7,6,0,0,10160,10161,5,95,0,0,10161,10162,7,5,0,0,10162,10163,7,7,0,0,10163,10164,7,12,0,0,10164,10165,7,22,0,0,10165,10166,7,6,0,0,10166,10167,7,20,0,0,10167,1668,1,0,0,0,10168,10169,7,16,0,0,10169,10170,7,17,0,0,10170,10171,7,18,0,0,10171,10172,7,18,0,0,10172,10173,7,7,0,0,10173,10174,7,8,0,0,10174,1670,1,0,0,0,10175,10176,7,14,0,0,10176,10177,7,3,0,0,10177,10178,7,6,0,0,10178,10179,7,3,0,0,10179,10180,7,5,0,0,10180,10181,7,19,0,0,10181,10182,7,22,0,0,10182,10183,5,95,0,0,10183,10184,7,12,0,0,10184,10185,7,3,0,0,10185,10186,7,23,0,0,10186,10187,7,7,0,0,10187,1672,1,0,0,0,10188,10189,7,14,0,0,10189,10190,7,7,0,0,10190,10191,7,15,0,0,10191,10192,7,5,0,0,10192,1674,1,0,0,0,10193,10194,7,14,0,0,10194,10195,7,7,0,0,10195,10196,7,15,0,0,10196,10197,7,5,0,0,10197,10198,7,15,0,0,10198,10199,7,12,0,0,10199,10200,7,22,0,0,10200,1676,1,0,0,0,10201,10202,7,14,0,0,10202,10203,7,7,0,0,10203,10204,7,12,0,0,10204,10205,7,6,0,0,10205,10206,7,8,0,0,10206,10207,7,19,0,0,10207,10208,7,15,0,0,10208,10209,7,4,0,0,10209,1678,1,0,0,0,10210,10211,7,14,0,0,10211,10212,7,20,0,0,10212,10213,7,3,0,0,10213,10214,7,8,0,0,10214,10215,7,3,0,0,10215,10216,7,14,0,0,10216,10217,7,6,0,0,10217,10218,7,7,0,0,10218,10219,7,8,0,0,10219,10220,5,95,0,0,10220,10221,7,5,0,0,10221,10222,7,7,0,0,10222,10223,7,12,0,0,10223,10224,7,22,0,0,10224,10225,7,6,0,0,10225,10226,7,20,0,0,10226,1680,1,0,0,0,10227,10228,7,14,0,0,10228,10229,7,20,0,0,10229,10230,7,3,0,0,10230,10231,7,8,0,0,10231,10232,7,11,0,0,10232,10233,7,7,0,0,10233,10234,7,6,0,0,10234,1682,1,0,0,0,10235,10236,7,14,0,0,10236,10237,7,20,0,0,10237,10238,7,3,0,0,10238,10239,7,8,0,0,10239,10240,5,95,0,0,10240,10241,7,5,0,0,10241,10242,7,7,0,0,10242,10243,7,12,0,0,10243,10244,7,22,0,0,10244,10245,7,6,0,0,10245,10246,7,20,0,0,10246,1684,1,0,0,0,10247,10248,7,14,0,0,10248,10249,7,19,0,0,10249,10250,7,7,0,0,10250,10251,7,8,0,0,10251,10252,7,14,0,0,10252,10253,7,15,0,0,10253,10254,7,16,0,0,10254,10255,7,15,0,0,10255,10256,7,5,0,0,10256,10257,7,15,0,0,10257,10258,7,6,0,0,10258,10259,7,10,0,0,10259,1686,1,0,0,0,10260,10261,7,14,0,0,10261,10262,7,19,0,0,10262,10263,7,5,0,0,10263,10264,7,5,0,0,10264,10265,7,3,0,0,10265,10266,7,6,0,0,10266,10267,7,15,0,0,10267,10268,7,19,0,0,10268,10269,7,12,0,0,10269,1688,1,0,0,0,10270,10271,7,14,0,0,10271,10272,7,19,0,0,10272,10273,7,23,0,0,10273,10274,7,25,0,0,10274,10275,7,8,0,0,10275,10276,7,7,0,0,10276,10277,7,11,0,0,10277,10278,7,11,0,0,10278,1690,1,0,0,0,10279,10280,7,14,0,0,10280,10281,7,19,0,0,10281,10282,7,12,0,0,10282,10283,7,14,0,0,10283,10284,7,3,0,0,10284,10285,7,6,0,0,10285,1692,1,0,0,0,10286,10287,7,14,0,0,10287,10288,7,19,0,0,10288,10289,7,12,0,0,10289,10290,7,14,0,0,10290,10291,7,3,0,0,10291,10292,7,6,0,0,10292,10293,5,95,0,0,10293,10294,7,9,0,0,10294,10295,7,11,0,0,10295,1694,1,0,0,0,10296,10297,7,14,0,0,10297,10298,7,19,0,0,10298,10299,7,12,0,0,10299,10300,7,12,0,0,10300,10301,7,7,0,0,10301,10302,7,14,0,0,10302,10303,7,6,0,0,10303,10304,7,15,0,0,10304,10305,7,19,0,0,10305,10306,7,12,0,0,10306,10307,5,95,0,0,10307,10308,7,15,0,0,10308,10309,7,4,0,0,10309,1696,1,0,0,0,10310,10311,7,14,0,0,10311,10312,7,19,0,0,10312,10313,7,12,0,0,10313,10314,7,24,0,0,10314,1698,1,0,0,0,10315,10316,7,14,0,0,10316,10317,7,19,0,0,10317,10318,7,12,0,0,10318,10319,7,24,0,0,10319,10320,7,7,0,0,10320,10321,7,8,0,0,10321,10322,7,6,0,0,10322,10323,5,95,0,0,10323,10324,7,6,0,0,10324,10325,7,13,0,0,10325,1700,1,0,0,0,10326,10327,7,14,0,0,10327,10328,7,19,0,0,10328,10329,7,11,0,0,10329,1702,1,0,0,0,10330,10331,7,14,0,0,10331,10332,7,19,0,0,10332,10333,7,6,0,0,10333,1704,1,0,0,0,10334,10335,7,14,0,0,10335,10336,7,8,0,0,10336,10337,7,14,0,0,10337,10338,5,51,0,0,10338,10339,5,50,0,0,10339,1706,1,0,0,0,10340,10341,7,14,0,0,10341,10342,7,8,0,0,10342,10343,7,7,0,0,10343,10344,7,3,0,0,10344,10345,7,6,0,0,10345,10346,7,7,0,0,10346,10347,5,95,0,0,10347,10348,7,3,0,0,10348,10349,7,11,0,0,10349,10350,7,10,0,0,10350,10351,7,23,0,0,10351,10352,7,23,0,0,10352,10353,7,7,0,0,10353,10354,7,6,0,0,10354,10355,7,8,0,0,10355,10356,7,15,0,0,10356,10357,7,14,0,0,10357,10358,5,95,0,0,10358,10359,7,25,0,0,10359,10360,7,8,0,0,10360,10361,7,15,0,0,10361,10362,7,24,0,0,10362,10363,5,95,0,0,10363,10364,7,21,0,0,10364,10365,7,7,0,0,10365,10366,7,10,0,0,10366,1708,1,0,0,0,10367,10368,7,14,0,0,10368,10369,7,8,0,0,10369,10370,7,7,0,0,10370,10371,7,3,0,0,10371,10372,7,6,0,0,10372,10373,7,7,0,0,10373,10374,5,95,0,0,10374,10375,7,3,0,0,10375,10376,7,11,0,0,10376,10377,7,10,0,0,10377,10378,7,23,0,0,10378,10379,7,23,0,0,10379,10380,7,7,0,0,10380,10381,7,6,0,0,10381,10382,7,8,0,0,10382,10383,7,15,0,0,10383,10384,7,14,0,0,10384,10385,5,95,0,0,10385,10386,7,25,0,0,10386,10387,7,17,0,0,10387,10388,7,16,0,0,10388,10389,5,95,0,0,10389,10390,7,21,0,0,10390,10391,7,7,0,0,10391,10392,7,10,0,0,10392,1710,1,0,0,0,10393,10394,7,14,0,0,10394,10395,7,8,0,0,10395,10396,7,7,0,0,10396,10397,7,3,0,0,10397,10398,7,6,0,0,10398,10399,7,7,0,0,10399,10400,5,95,0,0,10400,10401,7,4,0,0,10401,10402,7,20,0,0,10402,10403,5,95,0,0,10403,10404,7,25,0,0,10404,10405,7,3,0,0,10405,10406,7,8,0,0,10406,10407,7,3,0,0,10407,10408,7,23,0,0,10408,10409,7,7,0,0,10409,10410,7,6,0,0,10410,10411,7,7,0,0,10411,10412,7,8,0,0,10412,10413,7,11,0,0,10413,1712,1,0,0,0,10414,10415,7,14,0,0,10415,10416,7,8,0,0,10416,10417,7,7,0,0,10417,10418,7,3,0,0,10418,10419,7,6,0,0,10419,10420,7,7,0,0,10420,10421,5,95,0,0,10421,10422,7,4,0,0,10422,10423,7,15,0,0,10423,10424,7,22,0,0,10424,10425,7,7,0,0,10425,10426,7,11,0,0,10426,10427,7,6,0,0,10427,1714,1,0,0,0,10428,10429,7,14,0,0,10429,10430,7,8,0,0,10430,10431,7,19,0,0,10431,10432,7,11,0,0,10432,10433,7,11,0,0,10433,10434,7,7,0,0,10434,10435,7,11,0,0,10435,1716,1,0,0,0,10436,10437,7,4,0,0,10437,10438,7,3,0,0,10438,10439,7,6,0,0,10439,10440,7,7,0,0,10440,10441,7,4,0,0,10441,10442,7,15,0,0,10442,10443,7,18,0,0,10443,10444,7,18,0,0,10444,1718,1,0,0,0,10445,10446,7,4,0,0,10446,10447,7,3,0,0,10447,10448,7,6,0,0,10448,10449,7,7,0,0,10449,10450,5,95,0,0,10450,10451,7,18,0,0,10451,10452,7,19,0,0,10452,10453,7,8,0,0,10453,10454,7,23,0,0,10454,10455,7,3,0,0,10455,10456,7,6,0,0,10456,1720,1,0,0,0,10457,10458,7,4,0,0,10458,10459,7,3,0,0,10459,10460,7,10,0,0,10460,10461,7,12,0,0,10461,10462,7,3,0,0,10462,10463,7,23,0,0,10463,10464,7,7,0,0,10464,1722,1,0,0,0,10465,10466,7,4,0,0,10466,10467,7,3,0,0,10467,10468,7,10,0,0,10468,10469,7,19,0,0,10469,10470,7,18,0,0,10470,10471,7,23,0,0,10471,10472,7,19,0,0,10472,10473,7,12,0,0,10473,10474,7,6,0,0,10474,10475,7,20,0,0,10475,1724,1,0,0,0,10476,10477,7,4,0,0,10477,10478,7,3,0,0,10478,10479,7,10,0,0,10479,10480,7,19,0,0,10480,10481,7,18,0,0,10481,10482,7,9,0,0,10482,10483,7,7,0,0,10483,10484,7,7,0,0,10484,10485,7,21,0,0,10485,1726,1,0,0,0,10486,10487,7,4,0,0,10487,10488,7,3,0,0,10488,10489,7,10,0,0,10489,10490,7,19,0,0,10490,10491,7,18,0,0,10491,10492,7,10,0,0,10492,10493,7,7,0,0,10493,10494,7,3,0,0,10494,10495,7,8,0,0,10495,1728,1,0,0,0,10496,10497,7,4,0,0,10497,10498,7,7,0,0,10498,10499,7,14,0,0,10499,10500,7,19,0,0,10500,10501,7,4,0,0,10501,10502,7,7,0,0,10502,1730,1,0,0,0,10503,10504,7,4,0,0,10504,10505,7,7,0,0,10505,10506,7,22,0,0,10506,10507,7,8,0,0,10507,10508,7,7,0,0,10508,10509,7,7,0,0,10509,10510,7,11,0,0,10510,1732,1,0,0,0,10511,10512,7,4,0,0,10512,10513,7,7,0,0,10513,10514,7,11,0,0,10514,10515,5,95,0,0,10515,10516,7,4,0,0,10516,10517,7,7,0,0,10517,10518,7,14,0,0,10518,10519,7,8,0,0,10519,10520,7,10,0,0,10520,10521,7,25,0,0,10521,10522,7,6,0,0,10522,1734,1,0,0,0,10523,10524,7,4,0,0,10524,10525,7,7,0,0,10525,10526,7,11,0,0,10526,10527,5,95,0,0,10527,10528,7,7,0,0,10528,10529,7,12,0,0,10529,10530,7,14,0,0,10530,10531,7,8,0,0,10531,10532,7,10,0,0,10532,10533,7,25,0,0,10533,10534,7,6,0,0,10534,1736,1,0,0,0,10535,10536,7,4,0,0,10536,10537,7,15,0,0,10537,10538,7,23,0,0,10538,10539,7,7,0,0,10539,10540,7,12,0,0,10540,10541,7,11,0,0,10541,10542,7,15,0,0,10542,10543,7,19,0,0,10543,10544,7,12,0,0,10544,1738,1,0,0,0,10545,10546,7,4,0,0,10546,10547,7,15,0,0,10547,10548,7,11,0,0,10548,10549,7,27,0,0,10549,10550,7,19,0,0,10550,10551,7,15,0,0,10551,10552,7,12,0,0,10552,10553,7,6,0,0,10553,1740,1,0,0,0,10554,10555,7,7,0,0,10555,10556,7,5,0,0,10556,10557,7,6,0,0,10557,1742,1,0,0,0,10558,10559,7,7,0,0,10559,10560,7,12,0,0,10560,10561,7,14,0,0,10561,10562,7,19,0,0,10562,10563,7,4,0,0,10563,10564,7,7,0,0,10564,1744,1,0,0,0,10565,10566,7,7,0,0,10566,10567,7,12,0,0,10567,10568,7,14,0,0,10568,10569,7,8,0,0,10569,10570,7,10,0,0,10570,10571,7,25,0,0,10571,10572,7,6,0,0,10572,1746,1,0,0,0,10573,10574,7,7,0,0,10574,10575,7,12,0,0,10575,10576,7,4,0,0,10576,10577,7,25,0,0,10577,10578,7,19,0,0,10578,10579,7,15,0,0,10579,10580,7,12,0,0,10580,10581,7,6,0,0,10581,1748,1,0,0,0,10582,10583,7,7,0,0,10583,10584,7,12,0,0,10584,10585,7,22,0,0,10585,10586,7,15,0,0,10586,10587,7,12,0,0,10587,10588,7,7,0,0,10588,10589,5,95,0,0,10589,10590,7,3,0,0,10590,10591,7,6,0,0,10591,10592,7,6,0,0,10592,10593,7,8,0,0,10593,10594,7,15,0,0,10594,10595,7,16,0,0,10595,10596,7,17,0,0,10596,10597,7,6,0,0,10597,10598,7,7,0,0,10598,1750,1,0,0,0,10599,10600,7,7,0,0,10600,10601,7,12,0,0,10601,10602,7,24,0,0,10602,10603,7,7,0,0,10603,10604,7,5,0,0,10604,10605,7,19,0,0,10605,10606,7,25,0,0,10606,10607,7,7,0,0,10607,1752,1,0,0,0,10608,10609,7,7,0,0,10609,10610,7,28,0,0,10610,10611,7,17,0,0,10611,10612,7,3,0,0,10612,10613,7,5,0,0,10613,10614,7,11,0,0,10614,1754,1,0,0,0,10615,10616,7,7,0,0,10616,10617,7,26,0,0,10617,10618,7,25,0,0,10618,1756,1,0,0,0,10619,10620,7,7,0,0,10620,10621,7,26,0,0,10621,10622,7,25,0,0,10622,10623,7,19,0,0,10623,10624,7,8,0,0,10624,10625,7,6,0,0,10625,10626,5,95,0,0,10626,10627,7,11,0,0,10627,10628,7,7,0,0,10628,10629,7,6,0,0,10629,1758,1,0,0,0,10630,10631,7,7,0,0,10631,10632,7,26,0,0,10632,10633,7,6,0,0,10633,10634,7,7,0,0,10634,10635,7,8,0,0,10635,10636,7,15,0,0,10636,10637,7,19,0,0,10637,10638,7,8,0,0,10638,10639,7,8,0,0,10639,10640,7,15,0,0,10640,10641,7,12,0,0,10641,10642,7,22,0,0,10642,1760,1,0,0,0,10643,10644,7,7,0,0,10644,10645,7,26,0,0,10645,10646,7,6,0,0,10646,10647,7,8,0,0,10647,10648,7,3,0,0,10648,10649,7,14,0,0,10649,10650,7,6,0,0,10650,10651,7,24,0,0,10651,10652,7,3,0,0,10652,10653,7,5,0,0,10653,10654,7,17,0,0,10654,10655,7,7,0,0,10655,1762,1,0,0,0,10656,10657,7,18,0,0,10657,10658,7,15,0,0,10658,10659,7,7,0,0,10659,10660,7,5,0,0,10660,10661,7,4,0,0,10661,1764,1,0,0,0,10662,10663,7,18,0,0,10663,10664,7,15,0,0,10664,10665,7,12,0,0,10665,10666,7,4,0,0,10666,10667,5,95,0,0,10667,10668,7,15,0,0,10668,10669,7,12,0,0,10669,10670,5,95,0,0,10670,10671,7,11,0,0,10671,10672,7,7,0,0,10672,10673,7,6,0,0,10673,1766,1,0,0,0,10674,10675,7,18,0,0,10675,10676,7,5,0,0,10676,10677,7,19,0,0,10677,10678,7,19,0,0,10678,10679,7,8,0,0,10679,1768,1,0,0,0,10680,10681,7,18,0,0,10681,10682,7,19,0,0,10682,10683,7,8,0,0,10683,10684,7,23,0,0,10684,10685,7,3,0,0,10685,10686,7,6,0,0,10686,1770,1,0,0,0,10687,10688,7,18,0,0,10688,10689,7,19,0,0,10689,10690,7,17,0,0,10690,10691,7,12,0,0,10691,10692,7,4,0,0,10692,10693,5,95,0,0,10693,10694,7,8,0,0,10694,10695,7,19,0,0,10695,10696,7,9,0,0,10696,10697,7,11,0,0,10697,1772,1,0,0,0,10698,10699,7,18,0,0,10699,10700,7,8,0,0,10700,10701,7,19,0,0,10701,10702,7,23,0,0,10702,10703,5,95,0,0,10703,10704,7,16,0,0,10704,10705,7,3,0,0,10705,10706,7,11,0,0,10706,10707,7,7,0,0,10707,10708,5,54,0,0,10708,10709,5,52,0,0,10709,1774,1,0,0,0,10710,10711,7,18,0,0,10711,10712,7,8,0,0,10712,10713,7,19,0,0,10713,10714,7,23,0,0,10714,10715,5,95,0,0,10715,10716,7,4,0,0,10716,10717,7,3,0,0,10717,10718,7,10,0,0,10718,10719,7,11,0,0,10719,1776,1,0,0,0,10720,10721,7,18,0,0,10721,10722,7,8,0,0,10722,10723,7,19,0,0,10723,10724,7,23,0,0,10724,10725,5,95,0,0,10725,10726,7,17,0,0,10726,10727,7,12,0,0,10727,10728,7,15,0,0,10728,10729,7,26,0,0,10729,10730,7,6,0,0,10730,10731,7,15,0,0,10731,10732,7,23,0,0,10732,10733,7,7,0,0,10733,1778,1,0,0,0,10734,10735,7,22,0,0,10735,10736,7,7,0,0,10736,10737,7,19,0,0,10737,10738,7,23,0,0,10738,10739,7,14,0,0,10739,10740,7,19,0,0,10740,10741,7,5,0,0,10741,10742,7,5,0,0,10742,10743,7,18,0,0,10743,10744,7,8,0,0,10744,10745,7,19,0,0,10745,10746,7,23,0,0,10746,10747,7,6,0,0,10747,10748,7,7,0,0,10748,10749,7,26,0,0,10749,10750,7,6,0,0,10750,1780,1,0,0,0,10751,10752,7,22,0,0,10752,10753,7,7,0,0,10753,10754,7,19,0,0,10754,10755,7,23,0,0,10755,10756,7,14,0,0,10756,10757,7,19,0,0,10757,10758,7,5,0,0,10758,10759,7,5,0,0,10759,10760,7,18,0,0,10760,10761,7,8,0,0,10761,10762,7,19,0,0,10762,10763,7,23,0,0,10763,10764,7,9,0,0,10764,10765,7,21,0,0,10765,10766,7,16,0,0,10766,1782,1,0,0,0,10767,10768,7,22,0,0,10768,10769,7,7,0,0,10769,10770,7,19,0,0,10770,10771,7,23,0,0,10771,10772,7,7,0,0,10772,10773,7,6,0,0,10773,10774,7,8,0,0,10774,10775,7,10,0,0,10775,10776,7,14,0,0,10776,10777,7,19,0,0,10777,10778,7,5,0,0,10778,10779,7,5,0,0,10779,10780,7,7,0,0,10780,10781,7,14,0,0,10781,10782,7,6,0,0,10782,10783,7,15,0,0,10783,10784,7,19,0,0,10784,10785,7,12,0,0,10785,10786,7,18,0,0,10786,10787,7,8,0,0,10787,10788,7,19,0,0,10788,10789,7,23,0,0,10789,10790,7,6,0,0,10790,10791,7,7,0,0,10791,10792,7,26,0,0,10792,10793,7,6,0,0,10793,1784,1,0,0,0,10794,10795,7,22,0,0,10795,10796,7,7,0,0,10796,10797,7,19,0,0,10797,10798,7,23,0,0,10798,10799,7,7,0,0,10799,10800,7,6,0,0,10800,10801,7,8,0,0,10801,10802,7,10,0,0,10802,10803,7,14,0,0,10803,10804,7,19,0,0,10804,10805,7,5,0,0,10805,10806,7,5,0,0,10806,10807,7,7,0,0,10807,10808,7,14,0,0,10808,10809,7,6,0,0,10809,10810,7,15,0,0,10810,10811,7,19,0,0,10811,10812,7,12,0,0,10812,10813,7,18,0,0,10813,10814,7,8,0,0,10814,10815,7,19,0,0,10815,10816,7,23,0,0,10816,10817,7,9,0,0,10817,10818,7,21,0,0,10818,10819,7,16,0,0,10819,1786,1,0,0,0,10820,10821,7,22,0,0,10821,10822,7,7,0,0,10822,10823,7,19,0,0,10823,10824,7,23,0,0,10824,10825,7,7,0,0,10825,10826,7,6,0,0,10826,10827,7,8,0,0,10827,10828,7,10,0,0,10828,10829,7,18,0,0,10829,10830,7,8,0,0,10830,10831,7,19,0,0,10831,10832,7,23,0,0,10832,10833,7,6,0,0,10833,10834,7,7,0,0,10834,10835,7,26,0,0,10835,10836,7,6,0,0,10836,1788,1,0,0,0,10837,10838,7,22,0,0,10838,10839,7,7,0,0,10839,10840,7,19,0,0,10840,10841,7,23,0,0,10841,10842,7,7,0,0,10842,10843,7,6,0,0,10843,10844,7,8,0,0,10844,10845,7,10,0,0,10845,10846,7,18,0,0,10846,10847,7,8,0,0,10847,10848,7,19,0,0,10848,10849,7,23,0,0,10849,10850,7,9,0,0,10850,10851,7,21,0,0,10851,10852,7,16,0,0,10852,1790,1,0,0,0,10853,10854,7,22,0,0,10854,10855,7,7,0,0,10855,10856,7,19,0,0,10856,10857,7,23,0,0,10857,10858,7,7,0,0,10858,10859,7,6,0,0,10859,10860,7,8,0,0,10860,10861,7,10,0,0,10861,10862,7,12,0,0,10862,1792,1,0,0,0,10863,10864,7,22,0,0,10864,10865,7,7,0,0,10865,10866,7,19,0,0,10866,10867,7,23,0,0,10867,10868,7,7,0,0,10868,10869,7,6,0,0,10869,10870,7,8,0,0,10870,10871,7,10,0,0,10871,10872,7,6,0,0,10872,10873,7,10,0,0,10873,10874,7,25,0,0,10874,10875,7,7,0,0,10875,1794,1,0,0,0,10876,10877,7,22,0,0,10877,10878,7,7,0,0,10878,10879,7,19,0,0,10879,10880,7,23,0,0,10880,10881,7,18,0,0,10881,10882,7,8,0,0,10882,10883,7,19,0,0,10883,10884,7,23,0,0,10884,10885,7,6,0,0,10885,10886,7,7,0,0,10886,10887,7,26,0,0,10887,10888,7,6,0,0,10888,1796,1,0,0,0,10889,10890,7,22,0,0,10890,10891,7,7,0,0,10891,10892,7,19,0,0,10892,10893,7,23,0,0,10893,10894,7,18,0,0,10894,10895,7,8,0,0,10895,10896,7,19,0,0,10896,10897,7,23,0,0,10897,10898,7,9,0,0,10898,10899,7,21,0,0,10899,10900,7,16,0,0,10900,1798,1,0,0,0,10901,10902,7,22,0,0,10902,10903,7,7,0,0,10903,10904,7,6,0,0,10904,10905,5,95,0,0,10905,10906,7,18,0,0,10906,10907,7,19,0,0,10907,10908,7,8,0,0,10908,10909,7,23,0,0,10909,10910,7,3,0,0,10910,10911,7,6,0,0,10911,1800,1,0,0,0,10912,10913,7,22,0,0,10913,10914,7,7,0,0,10914,10915,7,6,0,0,10915,10916,5,95,0,0,10916,10917,7,5,0,0,10917,10918,7,19,0,0,10918,10919,7,14,0,0,10919,10920,7,21,0,0,10920,1802,1,0,0,0,10921,10922,7,22,0,0,10922,10923,7,5,0,0,10923,10924,7,7,0,0,10924,10925,7,12,0,0,10925,10926,7,22,0,0,10926,10927,7,6,0,0,10927,10928,7,20,0,0,10928,1804,1,0,0,0,10929,10930,7,22,0,0,10930,10931,7,8,0,0,10931,10932,7,7,0,0,10932,10933,7,3,0,0,10933,10934,7,6,0,0,10934,10935,7,7,0,0,10935,10936,7,11,0,0,10936,10937,7,6,0,0,10937,1806,1,0,0,0,10938,10939,7,22,0,0,10939,10940,7,6,0,0,10940,10941,7,15,0,0,10941,10942,7,4,0,0,10942,10943,5,95,0,0,10943,10944,7,11,0,0,10944,10945,7,17,0,0,10945,10946,7,16,0,0,10946,10947,7,11,0,0,10947,10948,7,7,0,0,10948,10949,7,6,0,0,10949,1808,1,0,0,0,10950,10951,7,22,0,0,10951,10952,7,6,0,0,10952,10953,7,15,0,0,10953,10954,7,4,0,0,10954,10955,5,95,0,0,10955,10956,7,11,0,0,10956,10957,7,17,0,0,10957,10958,7,16,0,0,10958,10959,7,6,0,0,10959,10960,7,8,0,0,10960,10961,7,3,0,0,10961,10962,7,14,0,0,10962,10963,7,6,0,0,10963,1810,1,0,0,0,10964,10965,7,20,0,0,10965,10966,7,7,0,0,10966,10967,7,26,0,0,10967,1812,1,0,0,0,10968,10969,7,15,0,0,10969,10970,7,18,0,0,10970,10971,7,12,0,0,10971,10972,7,17,0,0,10972,10973,7,5,0,0,10973,10974,7,5,0,0,10974,1814,1,0,0,0,10975,10976,7,15,0,0,10976,10977,7,12,0,0,10977,10978,7,7,0,0,10978,10979,7,6,0,0,10979,10980,5,54,0,0,10980,10981,5,95,0,0,10981,10982,7,3,0,0,10982,10983,7,6,0,0,10983,10984,7,19,0,0,10984,10985,7,12,0,0,10985,1816,1,0,0,0,10986,10987,7,15,0,0,10987,10988,7,12,0,0,10988,10989,7,7,0,0,10989,10990,7,6,0,0,10990,10991,5,54,0,0,10991,10992,5,95,0,0,10992,10993,7,12,0,0,10993,10994,7,6,0,0,10994,10995,7,19,0,0,10995,10996,7,3,0,0,10996,1818,1,0,0,0,10997,10998,7,15,0,0,10998,10999,7,12,0,0,10999,11e3,7,7,0,0,11e3,11001,7,6,0,0,11001,11002,5,95,0,0,11002,11003,7,3,0,0,11003,11004,7,6,0,0,11004,11005,7,19,0,0,11005,11006,7,12,0,0,11006,1820,1,0,0,0,11007,11008,7,15,0,0,11008,11009,7,12,0,0,11009,11010,7,7,0,0,11010,11011,7,6,0,0,11011,11012,5,95,0,0,11012,11013,7,12,0,0,11013,11014,7,6,0,0,11014,11015,7,19,0,0,11015,11016,7,3,0,0,11016,1822,1,0,0,0,11017,11018,7,15,0,0,11018,11019,7,12,0,0,11019,11020,7,11,0,0,11020,11021,7,6,0,0,11021,11022,7,8,0,0,11022,1824,1,0,0,0,11023,11024,7,15,0,0,11024,11025,7,12,0,0,11025,11026,7,6,0,0,11026,11027,7,7,0,0,11027,11028,7,8,0,0,11028,11029,7,15,0,0,11029,11030,7,19,0,0,11030,11031,7,8,0,0,11031,11032,7,8,0,0,11032,11033,7,15,0,0,11033,11034,7,12,0,0,11034,11035,7,22,0,0,11035,11036,7,12,0,0,11036,1826,1,0,0,0,11037,11038,7,15,0,0,11038,11039,7,12,0,0,11039,11040,7,6,0,0,11040,11041,7,7,0,0,11041,11042,7,8,0,0,11042,11043,7,11,0,0,11043,11044,7,7,0,0,11044,11045,7,14,0,0,11045,11046,7,6,0,0,11046,11047,7,11,0,0,11047,1828,1,0,0,0,11048,11049,7,15,0,0,11049,11050,7,11,0,0,11050,11051,7,14,0,0,11051,11052,7,5,0,0,11052,11053,7,19,0,0,11053,11054,7,11,0,0,11054,11055,7,7,0,0,11055,11056,7,4,0,0,11056,1830,1,0,0,0,11057,11058,7,15,0,0,11058,11059,7,11,0,0,11059,11060,7,7,0,0,11060,11061,7,23,0,0,11061,11062,7,25,0,0,11062,11063,7,6,0,0,11063,11064,7,10,0,0,11064,1832,1,0,0,0,11065,11066,7,15,0,0,11066,11067,7,11,0,0,11067,11068,7,12,0,0,11068,11069,7,17,0,0,11069,11070,7,5,0,0,11070,11071,7,5,0,0,11071,1834,1,0,0,0,11072,11073,7,15,0,0,11073,11074,7,11,0,0,11074,11075,7,11,0,0,11075,11076,7,15,0,0,11076,11077,7,23,0,0,11077,11078,7,25,0,0,11078,11079,7,5,0,0,11079,11080,7,7,0,0,11080,1836,1,0,0,0,11081,11082,7,15,0,0,11082,11083,7,11,0,0,11083,11084,5,95,0,0,11084,11085,7,18,0,0,11085,11086,7,8,0,0,11086,11087,7,7,0,0,11087,11088,7,7,0,0,11088,11089,5,95,0,0,11089,11090,7,5,0,0,11090,11091,7,19,0,0,11091,11092,7,14,0,0,11092,11093,7,21,0,0,11093,1838,1,0,0,0,11094,11095,7,15,0,0,11095,11096,7,11,0,0,11096,11097,5,95,0,0,11097,11098,7,15,0,0,11098,11099,7,25,0,0,11099,11100,7,24,0,0,11100,11101,5,52,0,0,11101,1840,1,0,0,0,11102,11103,7,15,0,0,11103,11104,7,11,0,0,11104,11105,5,95,0,0,11105,11106,7,15,0,0,11106,11107,7,25,0,0,11107,11108,7,24,0,0,11108,11109,5,52,0,0,11109,11110,5,95,0,0,11110,11111,7,14,0,0,11111,11112,7,19,0,0,11112,11113,7,23,0,0,11113,11114,7,25,0,0,11114,11115,7,3,0,0,11115,11116,7,6,0,0,11116,1842,1,0,0,0,11117,11118,7,15,0,0,11118,11119,7,11,0,0,11119,11120,5,95,0,0,11120,11121,7,15,0,0,11121,11122,7,25,0,0,11122,11123,7,24,0,0,11123,11124,5,52,0,0,11124,11125,5,95,0,0,11125,11126,7,23,0,0,11126,11127,7,3,0,0,11127,11128,7,25,0,0,11128,11129,7,25,0,0,11129,11130,7,7,0,0,11130,11131,7,4,0,0,11131,1844,1,0,0,0,11132,11133,7,15,0,0,11133,11134,7,11,0,0,11134,11135,5,95,0,0,11135,11136,7,15,0,0,11136,11137,7,25,0,0,11137,11138,7,24,0,0,11138,11139,5,54,0,0,11139,1846,1,0,0,0,11140,11141,7,15,0,0,11141,11142,7,11,0,0,11142,11143,5,95,0,0,11143,11144,7,17,0,0,11144,11145,7,11,0,0,11145,11146,7,7,0,0,11146,11147,7,4,0,0,11147,11148,5,95,0,0,11148,11149,7,5,0,0,11149,11150,7,19,0,0,11150,11151,7,14,0,0,11151,11152,7,21,0,0,11152,1848,1,0,0,0,11153,11154,7,5,0,0,11154,11155,7,3,0,0,11155,11156,7,11,0,0,11156,11157,7,6,0,0,11157,11158,5,95,0,0,11158,11159,7,15,0,0,11159,11160,7,12,0,0,11160,11161,7,11,0,0,11161,11162,7,7,0,0,11162,11163,7,8,0,0,11163,11164,7,6,0,0,11164,11165,5,95,0,0,11165,11166,7,15,0,0,11166,11167,7,4,0,0,11167,1850,1,0,0,0,11168,11169,7,5,0,0,11169,11170,7,14,0,0,11170,11171,7,3,0,0,11171,11172,7,11,0,0,11172,11173,7,7,0,0,11173,1852,1,0,0,0,11174,11175,7,5,0,0,11175,11176,7,7,0,0,11176,11177,7,3,0,0,11177,11178,7,11,0,0,11178,11179,7,6,0,0,11179,1854,1,0,0,0,11180,11181,7,5,0,0,11181,11182,7,7,0,0,11182,11183,7,12,0,0,11183,11184,7,22,0,0,11184,11185,7,6,0,0,11185,11186,7,20,0,0,11186,1856,1,0,0,0,11187,11188,7,5,0,0,11188,11189,7,15,0,0,11189,11190,7,12,0,0,11190,11191,7,7,0,0,11191,11192,7,18,0,0,11192,11193,7,8,0,0,11193,11194,7,19,0,0,11194,11195,7,23,0,0,11195,11196,7,6,0,0,11196,11197,7,7,0,0,11197,11198,7,26,0,0,11198,11199,7,6,0,0,11199,1858,1,0,0,0,11200,11201,7,5,0,0,11201,11202,7,15,0,0,11202,11203,7,12,0,0,11203,11204,7,7,0,0,11204,11205,7,18,0,0,11205,11206,7,8,0,0,11206,11207,7,19,0,0,11207,11208,7,23,0,0,11208,11209,7,9,0,0,11209,11210,7,21,0,0,11210,11211,7,16,0,0,11211,1860,1,0,0,0,11212,11213,7,5,0,0,11213,11214,7,15,0,0,11214,11215,7,12,0,0,11215,11216,7,7,0,0,11216,11217,7,11,0,0,11217,11218,7,6,0,0,11218,11219,7,8,0,0,11219,11220,7,15,0,0,11220,11221,7,12,0,0,11221,11222,7,22,0,0,11222,11223,7,18,0,0,11223,11224,7,8,0,0,11224,11225,7,19,0,0,11225,11226,7,23,0,0,11226,11227,7,6,0,0,11227,11228,7,7,0,0,11228,11229,7,26,0,0,11229,11230,7,6,0,0,11230,1862,1,0,0,0,11231,11232,7,5,0,0,11232,11233,7,15,0,0,11233,11234,7,12,0,0,11234,11235,7,7,0,0,11235,11236,7,11,0,0,11236,11237,7,6,0,0,11237,11238,7,8,0,0,11238,11239,7,15,0,0,11239,11240,7,12,0,0,11240,11241,7,22,0,0,11241,11242,7,18,0,0,11242,11243,7,8,0,0,11243,11244,7,19,0,0,11244,11245,7,23,0,0,11245,11246,7,9,0,0,11246,11247,7,21,0,0,11247,11248,7,16,0,0,11248,1864,1,0,0,0,11249,11250,7,5,0,0,11250,11251,7,12,0,0,11251,1866,1,0,0,0,11252,11253,7,5,0,0,11253,11254,7,19,0,0,11254,11255,7,3,0,0,11255,11256,7,4,0,0,11256,11257,5,95,0,0,11257,11258,7,18,0,0,11258,11259,7,15,0,0,11259,11260,7,5,0,0,11260,11261,7,7,0,0,11261,1868,1,0,0,0,11262,11263,7,5,0,0,11263,11264,7,19,0,0,11264,11265,7,14,0,0,11265,11266,7,3,0,0,11266,11267,7,6,0,0,11267,11268,7,7,0,0,11268,1870,1,0,0,0,11269,11270,7,5,0,0,11270,11271,7,19,0,0,11271,11272,7,22,0,0,11272,1872,1,0,0,0,11273,11274,7,5,0,0,11274,11275,7,19,0,0,11275,11276,7,22,0,0,11276,11277,5,49,0,0,11277,11278,5,48,0,0,11278,1874,1,0,0,0,11279,11280,7,5,0,0,11280,11281,7,19,0,0,11281,11282,7,22,0,0,11282,11283,5,50,0,0,11283,1876,1,0,0,0,11284,11285,7,5,0,0,11285,11286,7,19,0,0,11286,11287,7,9,0,0,11287,11288,7,7,0,0,11288,11289,7,8,0,0,11289,1878,1,0,0,0,11290,11291,7,5,0,0,11291,11292,7,25,0,0,11292,11293,7,3,0,0,11293,11294,7,4,0,0,11294,1880,1,0,0,0,11295,11296,7,5,0,0,11296,11297,7,6,0,0,11297,11298,7,8,0,0,11298,11299,7,15,0,0,11299,11300,7,23,0,0,11300,1882,1,0,0,0,11301,11302,7,23,0,0,11302,11303,7,3,0,0,11303,11304,7,21,0,0,11304,11305,7,7,0,0,11305,11306,7,4,0,0,11306,11307,7,3,0,0,11307,11308,7,6,0,0,11308,11309,7,7,0,0,11309,1884,1,0,0,0,11310,11311,7,23,0,0,11311,11312,7,3,0,0,11312,11313,7,21,0,0,11313,11314,7,7,0,0,11314,11315,7,6,0,0,11315,11316,7,15,0,0,11316,11317,7,23,0,0,11317,11318,7,7,0,0,11318,1886,1,0,0,0,11319,11320,7,23,0,0,11320,11321,7,3,0,0,11321,11322,7,21,0,0,11322,11323,7,7,0,0,11323,11324,5,95,0,0,11324,11325,7,11,0,0,11325,11326,7,7,0,0,11326,11327,7,6,0,0,11327,1888,1,0,0,0,11328,11329,7,23,0,0,11329,11330,7,3,0,0,11330,11331,7,11,0,0,11331,11332,7,6,0,0,11332,11333,7,7,0,0,11333,11334,7,8,0,0,11334,11335,5,95,0,0,11335,11336,7,25,0,0,11336,11337,7,19,0,0,11337,11338,7,11,0,0,11338,11339,5,95,0,0,11339,11340,7,9,0,0,11340,11341,7,3,0,0,11341,11342,7,15,0,0,11342,11343,7,6,0,0,11343,1890,1,0,0,0,11344,11345,7,23,0,0,11345,11346,7,16,0,0,11346,11347,7,8,0,0,11347,11348,7,14,0,0,11348,11349,7,19,0,0,11349,11350,7,12,0,0,11350,11351,7,6,0,0,11351,11352,7,3,0,0,11352,11353,7,15,0,0,11353,11354,7,12,0,0,11354,11355,7,11,0,0,11355,1892,1,0,0,0,11356,11357,7,23,0,0,11357,11358,7,16,0,0,11358,11359,7,8,0,0,11359,11360,7,4,0,0,11360,11361,7,15,0,0,11361,11362,7,11,0,0,11362,11363,7,27,0,0,11363,11364,7,19,0,0,11364,11365,7,15,0,0,11365,11366,7,12,0,0,11366,11367,7,6,0,0,11367,1894,1,0,0,0,11368,11369,7,23,0,0,11369,11370,7,16,0,0,11370,11371,7,8,0,0,11371,11372,7,7,0,0,11372,11373,7,28,0,0,11373,11374,7,17,0,0,11374,11375,7,3,0,0,11375,11376,7,5,0,0,11376,1896,1,0,0,0,11377,11378,7,23,0,0,11378,11379,7,16,0,0,11379,11380,7,8,0,0,11380,11381,7,15,0,0,11381,11382,7,12,0,0,11382,11383,7,6,0,0,11383,11384,7,7,0,0,11384,11385,7,8,0,0,11385,11386,7,11,0,0,11386,11387,7,7,0,0,11387,11388,7,14,0,0,11388,11389,7,6,0,0,11389,11390,7,11,0,0,11390,1898,1,0,0,0,11391,11392,7,23,0,0,11392,11393,7,16,0,0,11393,11394,7,8,0,0,11394,11395,7,19,0,0,11395,11396,7,24,0,0,11396,11397,7,7,0,0,11397,11398,7,8,0,0,11398,11399,7,5,0,0,11399,11400,7,3,0,0,11400,11401,7,25,0,0,11401,11402,7,11,0,0,11402,1900,1,0,0,0,11403,11404,7,23,0,0,11404,11405,7,16,0,0,11405,11406,7,8,0,0,11406,11407,7,6,0,0,11407,11408,7,19,0,0,11408,11409,7,17,0,0,11409,11410,7,14,0,0,11410,11411,7,20,0,0,11411,11412,7,7,0,0,11412,11413,7,11,0,0,11413,1902,1,0,0,0,11414,11415,7,23,0,0,11415,11416,7,16,0,0,11416,11417,7,8,0,0,11417,11418,7,9,0,0,11418,11419,7,15,0,0,11419,11420,7,6,0,0,11420,11421,7,20,0,0,11421,11422,7,15,0,0,11422,11423,7,12,0,0,11423,1904,1,0,0,0,11424,11425,7,23,0,0,11425,11426,7,4,0,0,11426,11427,5,53,0,0,11427,1906,1,0,0,0,11428,11429,7,23,0,0,11429,11430,7,5,0,0,11430,11431,7,15,0,0,11431,11432,7,12,0,0,11432,11433,7,7,0,0,11433,11434,7,18,0,0,11434,11435,7,8,0,0,11435,11436,7,19,0,0,11436,11437,7,23,0,0,11437,11438,7,6,0,0,11438,11439,7,7,0,0,11439,11440,7,26,0,0,11440,11441,7,6,0,0,11441,1908,1,0,0,0,11442,11443,7,23,0,0,11443,11444,7,5,0,0,11444,11445,7,15,0,0,11445,11446,7,12,0,0,11446,11447,7,7,0,0,11447,11448,7,18,0,0,11448,11449,7,8,0,0,11449,11450,7,19,0,0,11450,11451,7,23,0,0,11451,11452,7,9,0,0,11452,11453,7,21,0,0,11453,11454,7,16,0,0,11454,1910,1,0,0,0,11455,11456,7,23,0,0,11456,11457,7,19,0,0,11457,11458,7,12,0,0,11458,11459,7,6,0,0,11459,11460,7,20,0,0,11460,11461,7,12,0,0,11461,11462,7,3,0,0,11462,11463,7,23,0,0,11463,11464,7,7,0,0,11464,1912,1,0,0,0,11465,11466,7,23,0,0,11466,11467,7,25,0,0,11467,11468,7,19,0,0,11468,11469,7,15,0,0,11469,11470,7,12,0,0,11470,11471,7,6,0,0,11471,11472,7,18,0,0,11472,11473,7,8,0,0,11473,11474,7,19,0,0,11474,11475,7,23,0,0,11475,11476,7,6,0,0,11476,11477,7,7,0,0,11477,11478,7,26,0,0,11478,11479,7,6,0,0,11479,1914,1,0,0,0,11480,11481,7,23,0,0,11481,11482,7,25,0,0,11482,11483,7,19,0,0,11483,11484,7,15,0,0,11484,11485,7,12,0,0,11485,11486,7,6,0,0,11486,11487,7,18,0,0,11487,11488,7,8,0,0,11488,11489,7,19,0,0,11489,11490,7,23,0,0,11490,11491,7,9,0,0,11491,11492,7,21,0,0,11492,11493,7,16,0,0,11493,1916,1,0,0,0,11494,11495,7,23,0,0,11495,11496,7,25,0,0,11496,11497,7,19,0,0,11497,11498,7,5,0,0,11498,11499,7,10,0,0,11499,11500,7,18,0,0,11500,11501,7,8,0,0,11501,11502,7,19,0,0,11502,11503,7,23,0,0,11503,11504,7,6,0,0,11504,11505,7,7,0,0,11505,11506,7,26,0,0,11506,11507,7,6,0,0,11507,1918,1,0,0,0,11508,11509,7,23,0,0,11509,11510,7,25,0,0,11510,11511,7,19,0,0,11511,11512,7,5,0,0,11512,11513,7,10,0,0,11513,11514,7,18,0,0,11514,11515,7,8,0,0,11515,11516,7,19,0,0,11516,11517,7,23,0,0,11517,11518,7,9,0,0,11518,11519,7,21,0,0,11519,11520,7,16,0,0,11520,1920,1,0,0,0,11521,11522,7,23,0,0,11522,11523,7,17,0,0,11523,11524,7,5,0,0,11524,11525,7,6,0,0,11525,11526,7,15,0,0,11526,11527,7,5,0,0,11527,11528,7,15,0,0,11528,11529,7,12,0,0,11529,11530,7,7,0,0,11530,11531,7,11,0,0,11531,11532,7,6,0,0,11532,11533,7,8,0,0,11533,11534,7,15,0,0,11534,11535,7,12,0,0,11535,11536,7,22,0,0,11536,11537,7,18,0,0,11537,11538,7,8,0,0,11538,11539,7,19,0,0,11539,11540,7,23,0,0,11540,11541,7,6,0,0,11541,11542,7,7,0,0,11542,11543,7,26,0,0,11543,11544,7,6,0,0,11544,1922,1,0,0,0,11545,11546,7,23,0,0,11546,11547,7,17,0,0,11547,11548,7,5,0,0,11548,11549,7,6,0,0,11549,11550,7,15,0,0,11550,11551,7,5,0,0,11551,11552,7,15,0,0,11552,11553,7,12,0,0,11553,11554,7,7,0,0,11554,11555,7,11,0,0,11555,11556,7,6,0,0,11556,11557,7,8,0,0,11557,11558,7,15,0,0,11558,11559,7,12,0,0,11559,11560,7,22,0,0,11560,11561,7,18,0,0,11561,11562,7,8,0,0,11562,11563,7,19,0,0,11563,11564,7,23,0,0,11564,11565,7,9,0,0,11565,11566,7,21,0,0,11566,11567,7,16,0,0,11567,1924,1,0,0,0,11568,11569,7,23,0,0,11569,11570,7,17,0,0,11570,11571,7,5,0,0,11571,11572,7,6,0,0,11572,11573,7,15,0,0,11573,11574,7,25,0,0,11574,11575,7,19,0,0,11575,11576,7,15,0,0,11576,11577,7,12,0,0,11577,11578,7,6,0,0,11578,11579,7,18,0,0,11579,11580,7,8,0,0,11580,11581,7,19,0,0,11581,11582,7,23,0,0,11582,11583,7,6,0,0,11583,11584,7,7,0,0,11584,11585,7,26,0,0,11585,11586,7,6,0,0,11586,1926,1,0,0,0,11587,11588,7,23,0,0,11588,11589,7,17,0,0,11589,11590,7,5,0,0,11590,11591,7,6,0,0,11591,11592,7,15,0,0,11592,11593,7,25,0,0,11593,11594,7,19,0,0,11594,11595,7,15,0,0,11595,11596,7,12,0,0,11596,11597,7,6,0,0,11597,11598,7,18,0,0,11598,11599,7,8,0,0,11599,11600,7,19,0,0,11600,11601,7,23,0,0,11601,11602,7,9,0,0,11602,11603,7,21,0,0,11603,11604,7,16,0,0,11604,1928,1,0,0,0,11605,11606,7,23,0,0,11606,11607,7,17,0,0,11607,11608,7,5,0,0,11608,11609,7,6,0,0,11609,11610,7,15,0,0,11610,11611,7,25,0,0,11611,11612,7,19,0,0,11612,11613,7,5,0,0,11613,11614,7,10,0,0,11614,11615,7,22,0,0,11615,11616,7,19,0,0,11616,11617,7,12,0,0,11617,11618,7,18,0,0,11618,11619,7,8,0,0,11619,11620,7,19,0,0,11620,11621,7,23,0,0,11621,11622,7,6,0,0,11622,11623,7,7,0,0,11623,11624,7,26,0,0,11624,11625,7,6,0,0,11625,1930,1,0,0,0,11626,11627,7,23,0,0,11627,11628,7,17,0,0,11628,11629,7,5,0,0,11629,11630,7,6,0,0,11630,11631,7,15,0,0,11631,11632,7,25,0,0,11632,11633,7,19,0,0,11633,11634,7,5,0,0,11634,11635,7,10,0,0,11635,11636,7,22,0,0,11636,11637,7,19,0,0,11637,11638,7,12,0,0,11638,11639,7,18,0,0,11639,11640,7,8,0,0,11640,11641,7,19,0,0,11641,11642,7,23,0,0,11642,11643,7,9,0,0,11643,11644,7,21,0,0,11644,11645,7,16,0,0,11645,1932,1,0,0,0,11646,11647,7,12,0,0,11647,11648,7,3,0,0,11648,11649,7,23,0,0,11649,11650,7,7,0,0,11650,11651,5,95,0,0,11651,11652,7,14,0,0,11652,11653,7,19,0,0,11653,11654,7,12,0,0,11654,11655,7,11,0,0,11655,11656,7,6,0,0,11656,1934,1,0,0,0,11657,11658,7,12,0,0,11658,11659,7,17,0,0,11659,11660,7,5,0,0,11660,11661,7,5,0,0,11661,11662,7,15,0,0,11662,11663,7,18,0,0,11663,1936,1,0,0,0,11664,11665,7,12,0,0,11665,11666,7,17,0,0,11666,11667,7,23,0,0,11667,11668,7,22,0,0,11668,11669,7,7,0,0,11669,11670,7,19,0,0,11670,11671,7,23,0,0,11671,11672,7,7,0,0,11672,11673,7,6,0,0,11673,11674,7,8,0,0,11674,11675,7,15,0,0,11675,11676,7,7,0,0,11676,11677,7,11,0,0,11677,1938,1,0,0,0,11678,11679,7,12,0,0,11679,11680,7,17,0,0,11680,11681,7,23,0,0,11681,11682,7,15,0,0,11682,11683,7,12,0,0,11683,11684,7,6,0,0,11684,11685,7,7,0,0,11685,11686,7,8,0,0,11686,11687,7,15,0,0,11687,11688,7,19,0,0,11688,11689,7,8,0,0,11689,11690,7,8,0,0,11690,11691,7,15,0,0,11691,11692,7,12,0,0,11692,11693,7,22,0,0,11693,11694,7,11,0,0,11694,1940,1,0,0,0,11695,11696,7,12,0,0,11696,11697,7,17,0,0,11697,11698,7,23,0,0,11698,11699,7,25,0,0,11699,11700,7,19,0,0,11700,11701,7,15,0,0,11701,11702,7,12,0,0,11702,11703,7,6,0,0,11703,11704,7,11,0,0,11704,1942,1,0,0,0,11705,11706,7,19,0,0,11706,11707,7,14,0,0,11707,11708,7,6,0,0,11708,1944,1,0,0,0,11709,11710,7,19,0,0,11710,11711,7,14,0,0,11711,11712,7,6,0,0,11712,11713,7,7,0,0,11713,11714,7,6,0,0,11714,11715,5,95,0,0,11715,11716,7,5,0,0,11716,11717,7,7,0,0,11717,11718,7,12,0,0,11718,11719,7,22,0,0,11719,11720,7,6,0,0,11720,11721,7,20,0,0,11721,1946,1,0,0,0,11722,11723,7,19,0,0,11723,11724,7,8,0,0,11724,11725,7,4,0,0,11725,1948,1,0,0,0,11726,11727,7,19,0,0,11727,11728,7,24,0,0,11728,11729,7,7,0,0,11729,11730,7,8,0,0,11730,11731,7,5,0,0,11731,11732,7,3,0,0,11732,11733,7,25,0,0,11733,11734,7,11,0,0,11734,1950,1,0,0,0,11735,11736,7,25,0,0,11736,11737,7,7,0,0,11737,11738,7,8,0,0,11738,11739,7,15,0,0,11739,11740,7,19,0,0,11740,11741,7,4,0,0,11741,11742,5,95,0,0,11742,11743,7,3,0,0,11743,11744,7,4,0,0,11744,11745,7,4,0,0,11745,1952,1,0,0,0,11746,11747,7,25,0,0,11747,11748,7,7,0,0,11748,11749,7,8,0,0,11749,11750,7,15,0,0,11750,11751,7,19,0,0,11751,11752,7,4,0,0,11752,11753,5,95,0,0,11753,11754,7,4,0,0,11754,11755,7,15,0,0,11755,11756,7,18,0,0,11756,11757,7,18,0,0,11757,1954,1,0,0,0,11758,11759,7,25,0,0,11759,11760,7,15,0,0,11760,1956,1,0,0,0,11761,11762,7,25,0,0,11762,11763,7,19,0,0,11763,11764,7,15,0,0,11764,11765,7,12,0,0,11765,11766,7,6,0,0,11766,11767,7,18,0,0,11767,11768,7,8,0,0,11768,11769,7,19,0,0,11769,11770,7,23,0,0,11770,11771,7,6,0,0,11771,11772,7,7,0,0,11772,11773,7,26,0,0,11773,11774,7,6,0,0,11774,1958,1,0,0,0,11775,11776,7,25,0,0,11776,11777,7,19,0,0,11777,11778,7,15,0,0,11778,11779,7,12,0,0,11779,11780,7,6,0,0,11780,11781,7,18,0,0,11781,11782,7,8,0,0,11782,11783,7,19,0,0,11783,11784,7,23,0,0,11784,11785,7,9,0,0,11785,11786,7,21,0,0,11786,11787,7,16,0,0,11787,1960,1,0,0,0,11788,11789,7,25,0,0,11789,11790,7,19,0,0,11790,11791,7,15,0,0,11791,11792,7,12,0,0,11792,11793,7,6,0,0,11793,11794,7,12,0,0,11794,1962,1,0,0,0,11795,11796,7,25,0,0,11796,11797,7,19,0,0,11797,11798,7,5,0,0,11798,11799,7,10,0,0,11799,11800,7,18,0,0,11800,11801,7,8,0,0,11801,11802,7,19,0,0,11802,11803,7,23,0,0,11803,11804,7,6,0,0,11804,11805,7,7,0,0,11805,11806,7,26,0,0,11806,11807,7,6,0,0,11807,1964,1,0,0,0,11808,11809,7,25,0,0,11809,11810,7,19,0,0,11810,11811,7,5,0,0,11811,11812,7,10,0,0,11812,11813,7,18,0,0,11813,11814,7,8,0,0,11814,11815,7,19,0,0,11815,11816,7,23,0,0,11816,11817,7,9,0,0,11817,11818,7,21,0,0,11818,11819,7,16,0,0,11819,1966,1,0,0,0,11820,11821,7,25,0,0,11821,11822,7,19,0,0,11822,11823,7,5,0,0,11823,11824,7,10,0,0,11824,11825,7,22,0,0,11825,11826,7,19,0,0,11826,11827,7,12,0,0,11827,11828,7,18,0,0,11828,11829,7,8,0,0,11829,11830,7,19,0,0,11830,11831,7,23,0,0,11831,11832,7,6,0,0,11832,11833,7,7,0,0,11833,11834,7,26,0,0,11834,11835,7,6,0,0,11835,1968,1,0,0,0,11836,11837,7,25,0,0,11837,11838,7,19,0,0,11838,11839,7,5,0,0,11839,11840,7,10,0,0,11840,11841,7,22,0,0,11841,11842,7,19,0,0,11842,11843,7,12,0,0,11843,11844,7,18,0,0,11844,11845,7,8,0,0,11845,11846,7,19,0,0,11846,11847,7,23,0,0,11847,11848,7,9,0,0,11848,11849,7,21,0,0,11849,11850,7,16,0,0,11850,1970,1,0,0,0,11851,11852,7,25,0,0,11852,11853,7,19,0,0,11853,11854,7,9,0,0,11854,1972,1,0,0,0,11855,11856,7,25,0,0,11856,11857,7,19,0,0,11857,11858,7,9,0,0,11858,11859,7,7,0,0,11859,11860,7,8,0,0,11860,1974,1,0,0,0,11861,11862,7,28,0,0,11862,11863,7,17,0,0,11863,11864,7,19,0,0,11864,11865,7,6,0,0,11865,11866,7,7,0,0,11866,1976,1,0,0,0,11867,11868,7,8,0,0,11868,11869,7,3,0,0,11869,11870,7,4,0,0,11870,11871,7,15,0,0,11871,11872,7,3,0,0,11872,11873,7,12,0,0,11873,11874,7,11,0,0,11874,1978,1,0,0,0,11875,11876,7,8,0,0,11876,11877,7,3,0,0,11877,11878,7,12,0,0,11878,11879,7,4,0,0,11879,1980,1,0,0,0,11880,11881,7,8,0,0,11881,11882,7,3,0,0,11882,11883,7,12,0,0,11883,11884,7,4,0,0,11884,11885,7,19,0,0,11885,11886,7,23,0,0,11886,1982,1,0,0,0,11887,11888,7,8,0,0,11888,11889,7,3,0,0,11889,11890,7,12,0,0,11890,11891,7,4,0,0,11891,11892,7,19,0,0,11892,11893,7,23,0,0,11893,11894,5,95,0,0,11894,11895,7,16,0,0,11895,11896,7,10,0,0,11896,11897,7,6,0,0,11897,11898,7,7,0,0,11898,11899,7,11,0,0,11899,1984,1,0,0,0,11900,11901,7,8,0,0,11901,11902,7,7,0,0,11902,11903,7,5,0,0,11903,11904,7,7,0,0,11904,11905,7,3,0,0,11905,11906,7,11,0,0,11906,11907,7,7,0,0,11907,11908,5,95,0,0,11908,11909,7,5,0,0,11909,11910,7,19,0,0,11910,11911,7,14,0,0,11911,11912,7,21,0,0,11912,1986,1,0,0,0,11913,11914,7,8,0,0,11914,11915,7,7,0,0,11915,11916,7,24,0,0,11916,11917,7,7,0,0,11917,11918,7,8,0,0,11918,11919,7,11,0,0,11919,11920,7,7,0,0,11920,1988,1,0,0,0,11921,11922,7,8,0,0,11922,11923,7,19,0,0,11923,11924,7,17,0,0,11924,11925,7,12,0,0,11925,11926,7,4,0,0,11926,1990,1,0,0,0,11927,11928,7,8,0,0,11928,11929,7,19,0,0,11929,11930,7,9,0,0,11930,11931,5,95,0,0,11931,11932,7,14,0,0,11932,11933,7,19,0,0,11933,11934,7,17,0,0,11934,11935,7,12,0,0,11935,11936,7,6,0,0,11936,1992,1,0,0,0,11937,11938,7,8,0,0,11938,11939,7,25,0,0,11939,11940,7,3,0,0,11940,11941,7,4,0,0,11941,1994,1,0,0,0,11942,11943,7,8,0,0,11943,11944,7,6,0,0,11944,11945,7,8,0,0,11945,11946,7,15,0,0,11946,11947,7,23,0,0,11947,1996,1,0,0,0,11948,11949,7,11,0,0,11949,11950,7,7,0,0,11950,11951,7,14,0,0,11951,11952,5,95,0,0,11952,11953,7,6,0,0,11953,11954,7,19,0,0,11954,11955,5,95,0,0,11955,11956,7,6,0,0,11956,11957,7,15,0,0,11957,11958,7,23,0,0,11958,11959,7,7,0,0,11959,1998,1,0,0,0,11960,11961,7,11,0,0,11961,11962,7,7,0,0,11962,11963,7,14,0,0,11963,11964,7,19,0,0,11964,11965,7,12,0,0,11965,11966,7,4,0,0,11966,11967,7,3,0,0,11967,11968,7,8,0,0,11968,11969,7,10,0,0,11969,11970,5,95,0,0,11970,11971,7,7,0,0,11971,11972,7,12,0,0,11972,11973,7,22,0,0,11973,11974,7,15,0,0,11974,11975,7,12,0,0,11975,11976,7,7,0,0,11976,11977,5,95,0,0,11977,11978,7,3,0,0,11978,11979,7,6,0,0,11979,11980,7,6,0,0,11980,11981,7,8,0,0,11981,11982,7,15,0,0,11982,11983,7,16,0,0,11983,11984,7,17,0,0,11984,11985,7,6,0,0,11985,11986,7,7,0,0,11986,2e3,1,0,0,0,11987,11988,7,11,0,0,11988,11989,7,7,0,0,11989,11990,7,11,0,0,11990,11991,7,11,0,0,11991,11992,7,15,0,0,11992,11993,7,19,0,0,11993,11994,7,12,0,0,11994,11995,5,95,0,0,11995,11996,7,17,0,0,11996,11997,7,11,0,0,11997,11998,7,7,0,0,11998,11999,7,8,0,0,11999,2002,1,0,0,0,12e3,12001,7,11,0,0,12001,12002,7,20,0,0,12002,12003,7,3,0,0,12003,2004,1,0,0,0,12004,12005,7,11,0,0,12005,12006,7,20,0,0,12006,12007,7,3,0,0,12007,12008,5,49,0,0,12008,2006,1,0,0,0,12009,12010,7,11,0,0,12010,12011,7,20,0,0,12011,12012,7,3,0,0,12012,12013,5,50,0,0,12013,2008,1,0,0,0,12014,12015,7,11,0,0,12015,12016,7,14,0,0,12016,12017,7,20,0,0,12017,12018,7,7,0,0,12018,12019,7,23,0,0,12019,12020,7,3,0,0,12020,12021,5,95,0,0,12021,12022,7,12,0,0,12022,12023,7,3,0,0,12023,12024,7,23,0,0,12024,12025,7,7,0,0,12025,2010,1,0,0,0,12026,12027,7,11,0,0,12027,12028,7,15,0,0,12028,12029,7,22,0,0,12029,12030,7,12,0,0,12030,2012,1,0,0,0,12031,12032,7,11,0,0,12032,12033,7,15,0,0,12033,12034,7,12,0,0,12034,2014,1,0,0,0,12035,12036,7,11,0,0,12036,12037,7,5,0,0,12037,12038,7,7,0,0,12038,12039,7,7,0,0,12039,12040,7,25,0,0,12040,2016,1,0,0,0,12041,12042,7,11,0,0,12042,12043,7,19,0,0,12043,12044,7,17,0,0,12044,12045,7,12,0,0,12045,12046,7,4,0,0,12046,12047,7,7,0,0,12047,12048,7,26,0,0,12048,2018,1,0,0,0,12049,12050,7,11,0,0,12050,12051,7,28,0,0,12051,12052,7,5,0,0,12052,12053,5,95,0,0,12053,12054,7,6,0,0,12054,12055,7,20,0,0,12055,12056,7,8,0,0,12056,12057,7,7,0,0,12057,12058,7,3,0,0,12058,12059,7,4,0,0,12059,12060,5,95,0,0,12060,12061,7,9,0,0,12061,12062,7,3,0,0,12062,12063,7,15,0,0,12063,12064,7,6,0,0,12064,12065,5,95,0,0,12065,12066,7,3,0,0,12066,12067,7,18,0,0,12067,12068,7,6,0,0,12068,12069,7,7,0,0,12069,12070,7,8,0,0,12070,12071,5,95,0,0,12071,12072,7,22,0,0,12072,12073,7,6,0,0,12073,12074,7,15,0,0,12074,12075,7,4,0,0,12075,12076,7,11,0,0,12076,2020,1,0,0,0,12077,12078,7,11,0,0,12078,12079,7,28,0,0,12079,12080,7,8,0,0,12080,12081,7,6,0,0,12081,2022,1,0,0,0,12082,12083,7,11,0,0,12083,12084,7,8,0,0,12084,12085,7,15,0,0,12085,12086,7,4,0,0,12086,2024,1,0,0,0,12087,12088,7,11,0,0,12088,12089,7,6,0,0,12089,12090,7,3,0,0,12090,12091,7,8,0,0,12091,12092,7,6,0,0,12092,12093,7,25,0,0,12093,12094,7,19,0,0,12094,12095,7,15,0,0,12095,12096,7,12,0,0,12096,12097,7,6,0,0,12097,2026,1,0,0,0,12098,12099,7,11,0,0,12099,12100,7,6,0,0,12100,12101,7,8,0,0,12101,12102,7,14,0,0,12102,12103,7,23,0,0,12103,12104,7,25,0,0,12104,2028,1,0,0,0,12105,12106,7,11,0,0,12106,12107,7,6,0,0,12107,12108,7,8,0,0,12108,12109,5,95,0,0,12109,12110,7,6,0,0,12110,12111,7,19,0,0,12111,12112,5,95,0,0,12112,12113,7,4,0,0,12113,12114,7,3,0,0,12114,12115,7,6,0,0,12115,12116,7,7,0,0,12116,2030,1,0,0,0,12117,12118,7,11,0,0,12118,12119,7,6,0,0,12119,12120,5,95,0,0,12120,12121,7,3,0,0,12121,12122,7,8,0,0,12122,12123,7,7,0,0,12123,12124,7,3,0,0,12124,2032,1,0,0,0,12125,12126,7,11,0,0,12126,12127,7,6,0,0,12127,12128,5,95,0,0,12128,12129,7,3,0,0,12129,12130,7,11,0,0,12130,12131,7,16,0,0,12131,12132,7,15,0,0,12132,12133,7,12,0,0,12133,12134,7,3,0,0,12134,12135,7,8,0,0,12135,12136,7,10,0,0,12136,2034,1,0,0,0,12137,12138,7,11,0,0,12138,12139,7,6,0,0,12139,12140,5,95,0,0,12140,12141,7,3,0,0,12141,12142,7,11,0,0,12142,12143,7,6,0,0,12143,12144,7,7,0,0,12144,12145,7,26,0,0,12145,12146,7,6,0,0,12146,2036,1,0,0,0,12147,12148,7,11,0,0,12148,12149,7,6,0,0,12149,12150,5,95,0,0,12150,12151,7,3,0,0,12151,12152,7,11,0,0,12152,12153,7,9,0,0,12153,12154,7,21,0,0,12154,12155,7,16,0,0,12155,2038,1,0,0,0,12156,12157,7,11,0,0,12157,12158,7,6,0,0,12158,12159,5,95,0,0,12159,12160,7,3,0,0,12160,12161,7,11,0,0,12161,12162,7,9,0,0,12162,12163,7,21,0,0,12163,12164,7,6,0,0,12164,2040,1,0,0,0,12165,12166,7,11,0,0,12166,12167,7,6,0,0,12167,12168,5,95,0,0,12168,12169,7,16,0,0,12169,12170,7,17,0,0,12170,12171,7,18,0,0,12171,12172,7,18,0,0,12172,12173,7,7,0,0,12173,12174,7,8,0,0,12174,2042,1,0,0,0,12175,12176,7,11,0,0,12176,12177,7,6,0,0,12177,12178,5,95,0,0,12178,12179,7,14,0,0,12179,12180,7,7,0,0,12180,12181,7,12,0,0,12181,12182,7,6,0,0,12182,12183,7,8,0,0,12183,12184,7,19,0,0,12184,12185,7,15,0,0,12185,12186,7,4,0,0,12186,2044,1,0,0,0,12187,12188,7,11,0,0,12188,12189,7,6,0,0,12189,12190,5,95,0,0,12190,12191,7,14,0,0,12191,12192,7,19,0,0,12192,12193,7,12,0,0,12193,12194,7,6,0,0,12194,12195,7,3,0,0,12195,12196,7,15,0,0,12196,12197,7,12,0,0,12197,12198,7,11,0,0,12198,2046,1,0,0,0,12199,12200,7,11,0,0,12200,12201,7,6,0,0,12201,12202,5,95,0,0,12202,12203,7,14,0,0,12203,12204,7,8,0,0,12204,12205,7,19,0,0,12205,12206,7,11,0,0,12206,12207,7,11,0,0,12207,12208,7,7,0,0,12208,12209,7,11,0,0,12209,2048,1,0,0,0,12210,12211,7,11,0,0,12211,12212,7,6,0,0,12212,12213,5,95,0,0,12213,12214,7,4,0,0,12214,12215,7,15,0,0,12215,12216,7,18,0,0,12216,12217,7,18,0,0,12217,12218,7,7,0,0,12218,12219,7,8,0,0,12219,12220,7,7,0,0,12220,12221,7,12,0,0,12221,12222,7,14,0,0,12222,12223,7,7,0,0,12223,2050,1,0,0,0,12224,12225,7,11,0,0,12225,12226,7,6,0,0,12226,12227,5,95,0,0,12227,12228,7,4,0,0,12228,12229,7,15,0,0,12229,12230,7,23,0,0,12230,12231,7,7,0,0,12231,12232,7,12,0,0,12232,12233,7,11,0,0,12233,12234,7,15,0,0,12234,12235,7,19,0,0,12235,12236,7,12,0,0,12236,2052,1,0,0,0,12237,12238,7,11,0,0,12238,12239,7,6,0,0,12239,12240,5,95,0,0,12240,12241,7,4,0,0,12241,12242,7,15,0,0,12242,12243,7,11,0,0,12243,12244,7,27,0,0,12244,12245,7,19,0,0,12245,12246,7,15,0,0,12246,12247,7,12,0,0,12247,12248,7,6,0,0,12248,2054,1,0,0,0,12249,12250,7,11,0,0,12250,12251,7,6,0,0,12251,12252,5,95,0,0,12252,12253,7,4,0,0,12253,12254,7,15,0,0,12254,12255,7,11,0,0,12255,12256,7,6,0,0,12256,12257,7,3,0,0,12257,12258,7,12,0,0,12258,12259,7,14,0,0,12259,12260,7,7,0,0,12260,2056,1,0,0,0,12261,12262,7,11,0,0,12262,12263,7,6,0,0,12263,12264,5,95,0,0,12264,12265,7,7,0,0,12265,12266,7,12,0,0,12266,12267,7,4,0,0,12267,12268,7,25,0,0,12268,12269,7,19,0,0,12269,12270,7,15,0,0,12270,12271,7,12,0,0,12271,12272,7,6,0,0,12272,2058,1,0,0,0,12273,12274,7,11,0,0,12274,12275,7,6,0,0,12275,12276,5,95,0,0,12276,12277,7,7,0,0,12277,12278,7,12,0,0,12278,12279,7,24,0,0,12279,12280,7,7,0,0,12280,12281,7,5,0,0,12281,12282,7,19,0,0,12282,12283,7,25,0,0,12283,12284,7,7,0,0,12284,2060,1,0,0,0,12285,12286,7,11,0,0,12286,12287,7,6,0,0,12287,12288,5,95,0,0,12288,12289,7,7,0,0,12289,12290,7,28,0,0,12290,12291,7,17,0,0,12291,12292,7,3,0,0,12292,12293,7,5,0,0,12293,12294,7,11,0,0,12294,2062,1,0,0,0,12295,12296,7,11,0,0,12296,12297,7,6,0,0,12297,12298,5,95,0,0,12298,12299,7,7,0,0,12299,12300,7,26,0,0,12300,12301,7,6,0,0,12301,12302,7,7,0,0,12302,12303,7,8,0,0,12303,12304,7,15,0,0,12304,12305,7,19,0,0,12305,12306,7,8,0,0,12306,12307,7,8,0,0,12307,12308,7,15,0,0,12308,12309,7,12,0,0,12309,12310,7,22,0,0,12310,2064,1,0,0,0,12311,12312,7,11,0,0,12312,12313,7,6,0,0,12313,12314,5,95,0,0,12314,12315,7,22,0,0,12315,12316,7,7,0,0,12316,12317,7,19,0,0,12317,12318,7,23,0,0,12318,12319,7,14,0,0,12319,12320,7,19,0,0,12320,12321,7,5,0,0,12321,12322,7,5,0,0,12322,12323,7,18,0,0,12323,12324,7,8,0,0,12324,12325,7,19,0,0,12325,12326,7,23,0,0,12326,12327,7,6,0,0,12327,12328,7,7,0,0,12328,12329,7,26,0,0,12329,12330,7,6,0,0,12330,2066,1,0,0,0,12331,12332,7,11,0,0,12332,12333,7,6,0,0,12333,12334,5,95,0,0,12334,12335,7,22,0,0,12335,12336,7,7,0,0,12336,12337,7,19,0,0,12337,12338,7,23,0,0,12338,12339,7,14,0,0,12339,12340,7,19,0,0,12340,12341,7,5,0,0,12341,12342,7,5,0,0,12342,12343,7,18,0,0,12343,12344,7,8,0,0,12344,12345,7,19,0,0,12345,12346,7,23,0,0,12346,12347,7,6,0,0,12347,12348,7,26,0,0,12348,12349,7,6,0,0,12349,2068,1,0,0,0,12350,12351,7,11,0,0,12351,12352,7,6,0,0,12352,12353,5,95,0,0,12353,12354,7,22,0,0,12354,12355,7,7,0,0,12355,12356,7,19,0,0,12356,12357,7,23,0,0,12357,12358,7,14,0,0,12358,12359,7,19,0,0,12359,12360,7,5,0,0,12360,12361,7,5,0,0,12361,12362,7,18,0,0,12362,12363,7,8,0,0,12363,12364,7,19,0,0,12364,12365,7,23,0,0,12365,12366,7,9,0,0,12366,12367,7,21,0,0,12367,12368,7,16,0,0,12368,2070,1,0,0,0,12369,12370,7,11,0,0,12370,12371,7,6,0,0,12371,12372,5,95,0,0,12372,12373,7,22,0,0,12373,12374,7,7,0,0,12374,12375,7,19,0,0,12375,12376,7,23,0,0,12376,12377,7,7,0,0,12377,12378,7,6,0,0,12378,12379,7,8,0,0,12379,12380,7,10,0,0,12380,12381,7,14,0,0,12381,12382,7,19,0,0,12382,12383,7,5,0,0,12383,12384,7,5,0,0,12384,12385,7,7,0,0,12385,12386,7,14,0,0,12386,12387,7,6,0,0,12387,12388,7,15,0,0,12388,12389,7,19,0,0,12389,12390,7,12,0,0,12390,12391,7,18,0,0,12391,12392,7,8,0,0,12392,12393,7,19,0,0,12393,12394,7,23,0,0,12394,12395,7,6,0,0,12395,12396,7,7,0,0,12396,12397,7,26,0,0,12397,12398,7,6,0,0,12398,2072,1,0,0,0,12399,12400,7,11,0,0,12400,12401,7,6,0,0,12401,12402,5,95,0,0,12402,12403,7,22,0,0,12403,12404,7,7,0,0,12404,12405,7,19,0,0,12405,12406,7,23,0,0,12406,12407,7,7,0,0,12407,12408,7,6,0,0,12408,12409,7,8,0,0,12409,12410,7,10,0,0,12410,12411,7,14,0,0,12411,12412,7,19,0,0,12412,12413,7,5,0,0,12413,12414,7,5,0,0,12414,12415,7,7,0,0,12415,12416,7,14,0,0,12416,12417,7,6,0,0,12417,12418,7,15,0,0,12418,12419,7,19,0,0,12419,12420,7,12,0,0,12420,12421,7,18,0,0,12421,12422,7,8,0,0,12422,12423,7,19,0,0,12423,12424,7,23,0,0,12424,12425,7,9,0,0,12425,12426,7,21,0,0,12426,12427,7,16,0,0,12427,2074,1,0,0,0,12428,12429,7,11,0,0,12429,12430,7,6,0,0,12430,12431,5,95,0,0,12431,12432,7,22,0,0,12432,12433,7,7,0,0,12433,12434,7,19,0,0,12434,12435,7,23,0,0,12435,12436,7,7,0,0,12436,12437,7,6,0,0,12437,12438,7,8,0,0,12438,12439,7,10,0,0,12439,12440,7,18,0,0,12440,12441,7,8,0,0,12441,12442,7,19,0,0,12442,12443,7,23,0,0,12443,12444,7,6,0,0,12444,12445,7,7,0,0,12445,12446,7,26,0,0,12446,12447,7,6,0,0,12447,2076,1,0,0,0,12448,12449,7,11,0,0,12449,12450,7,6,0,0,12450,12451,5,95,0,0,12451,12452,7,22,0,0,12452,12453,7,7,0,0,12453,12454,7,19,0,0,12454,12455,7,23,0,0,12455,12456,7,7,0,0,12456,12457,7,6,0,0,12457,12458,7,8,0,0,12458,12459,7,10,0,0,12459,12460,7,18,0,0,12460,12461,7,8,0,0,12461,12462,7,19,0,0,12462,12463,7,23,0,0,12463,12464,7,9,0,0,12464,12465,7,21,0,0,12465,12466,7,16,0,0,12466,2078,1,0,0,0,12467,12468,7,11,0,0,12468,12469,7,6,0,0,12469,12470,5,95,0,0,12470,12471,7,22,0,0,12471,12472,7,7,0,0,12472,12473,7,19,0,0,12473,12474,7,23,0,0,12474,12475,7,7,0,0,12475,12476,7,6,0,0,12476,12477,7,8,0,0,12477,12478,7,10,0,0,12478,12479,7,12,0,0,12479,2080,1,0,0,0,12480,12481,7,11,0,0,12481,12482,7,6,0,0,12482,12483,5,95,0,0,12483,12484,7,22,0,0,12484,12485,7,7,0,0,12485,12486,7,19,0,0,12486,12487,7,23,0,0,12487,12488,7,7,0,0,12488,12489,7,6,0,0,12489,12490,7,8,0,0,12490,12491,7,10,0,0,12491,12492,7,6,0,0,12492,12493,7,10,0,0,12493,12494,7,25,0,0,12494,12495,7,7,0,0,12495,2082,1,0,0,0,12496,12497,7,11,0,0,12497,12498,7,6,0,0,12498,12499,5,95,0,0,12499,12500,7,22,0,0,12500,12501,7,7,0,0,12501,12502,7,19,0,0,12502,12503,7,23,0,0,12503,12504,7,18,0,0,12504,12505,7,8,0,0,12505,12506,7,19,0,0,12506,12507,7,23,0,0,12507,12508,7,6,0,0,12508,12509,7,7,0,0,12509,12510,7,26,0,0,12510,12511,7,6,0,0,12511,2084,1,0,0,0,12512,12513,7,11,0,0,12513,12514,7,6,0,0,12514,12515,5,95,0,0,12515,12516,7,22,0,0,12516,12517,7,7,0,0,12517,12518,7,19,0,0,12518,12519,7,23,0,0,12519,12520,7,18,0,0,12520,12521,7,8,0,0,12521,12522,7,19,0,0,12522,12523,7,23,0,0,12523,12524,7,9,0,0,12524,12525,7,21,0,0,12525,12526,7,16,0,0,12526,2086,1,0,0,0,12527,12528,7,11,0,0,12528,12529,7,6,0,0,12529,12530,5,95,0,0,12530,12531,7,15,0,0,12531,12532,7,12,0,0,12532,12533,7,6,0,0,12533,12534,7,7,0,0,12534,12535,7,8,0,0,12535,12536,7,15,0,0,12536,12537,7,19,0,0,12537,12538,7,8,0,0,12538,12539,7,8,0,0,12539,12540,7,15,0,0,12540,12541,7,12,0,0,12541,12542,7,22,0,0,12542,12543,7,12,0,0,12543,2088,1,0,0,0,12544,12545,7,11,0,0,12545,12546,7,6,0,0,12546,12547,5,95,0,0,12547,12548,7,15,0,0,12548,12549,7,12,0,0,12549,12550,7,6,0,0,12550,12551,7,7,0,0,12551,12552,7,8,0,0,12552,12553,7,11,0,0,12553,12554,7,7,0,0,12554,12555,7,14,0,0,12555,12556,7,6,0,0,12556,12557,7,15,0,0,12557,12558,7,19,0,0,12558,12559,7,12,0,0,12559,2090,1,0,0,0,12560,12561,7,11,0,0,12561,12562,7,6,0,0,12562,12563,5,95,0,0,12563,12564,7,15,0,0,12564,12565,7,12,0,0,12565,12566,7,6,0,0,12566,12567,7,7,0,0,12567,12568,7,8,0,0,12568,12569,7,11,0,0,12569,12570,7,7,0,0,12570,12571,7,14,0,0,12571,12572,7,6,0,0,12572,12573,7,11,0,0,12573,2092,1,0,0,0,12574,12575,7,11,0,0,12575,12576,7,6,0,0,12576,12577,5,95,0,0,12577,12578,7,15,0,0,12578,12579,7,11,0,0,12579,12580,7,14,0,0,12580,12581,7,5,0,0,12581,12582,7,19,0,0,12582,12583,7,11,0,0,12583,12584,7,7,0,0,12584,12585,7,4,0,0,12585,2094,1,0,0,0,12586,12587,7,11,0,0,12587,12588,7,6,0,0,12588,12589,5,95,0,0,12589,12590,7,15,0,0,12590,12591,7,11,0,0,12591,12592,7,7,0,0,12592,12593,7,23,0,0,12593,12594,7,25,0,0,12594,12595,7,6,0,0,12595,12596,7,10,0,0,12596,2096,1,0,0,0,12597,12598,7,11,0,0,12598,12599,7,6,0,0,12599,12600,5,95,0,0,12600,12601,7,15,0,0,12601,12602,7,11,0,0,12602,12603,7,11,0,0,12603,12604,7,15,0,0,12604,12605,7,23,0,0,12605,12606,7,25,0,0,12606,12607,7,5,0,0,12607,12608,7,7,0,0,12608,2098,1,0,0,0,12609,12610,7,11,0,0,12610,12611,7,6,0,0,12611,12612,5,95,0,0,12612,12613,7,5,0,0,12613,12614,7,15,0,0,12614,12615,7,12,0,0,12615,12616,7,7,0,0,12616,12617,7,18,0,0,12617,12618,7,8,0,0,12618,12619,7,19,0,0,12619,12620,7,23,0,0,12620,12621,7,6,0,0,12621,12622,7,7,0,0,12622,12623,7,26,0,0,12623,12624,7,6,0,0,12624,2100,1,0,0,0,12625,12626,7,11,0,0,12626,12627,7,6,0,0,12627,12628,5,95,0,0,12628,12629,7,5,0,0,12629,12630,7,15,0,0,12630,12631,7,12,0,0,12631,12632,7,7,0,0,12632,12633,7,18,0,0,12633,12634,7,8,0,0,12634,12635,7,19,0,0,12635,12636,7,23,0,0,12636,12637,7,9,0,0,12637,12638,7,21,0,0,12638,12639,7,16,0,0,12639,2102,1,0,0,0,12640,12641,7,11,0,0,12641,12642,7,6,0,0,12642,12643,5,95,0,0,12643,12644,7,5,0,0,12644,12645,7,15,0,0,12645,12646,7,12,0,0,12646,12647,7,7,0,0,12647,12648,7,11,0,0,12648,12649,7,6,0,0,12649,12650,7,8,0,0,12650,12651,7,15,0,0,12651,12652,7,12,0,0,12652,12653,7,22,0,0,12653,12654,7,18,0,0,12654,12655,7,8,0,0,12655,12656,7,19,0,0,12656,12657,7,23,0,0,12657,12658,7,6,0,0,12658,12659,7,7,0,0,12659,12660,7,26,0,0,12660,12661,7,6,0,0,12661,2104,1,0,0,0,12662,12663,7,11,0,0,12663,12664,7,6,0,0,12664,12665,5,95,0,0,12665,12666,7,5,0,0,12666,12667,7,15,0,0,12667,12668,7,12,0,0,12668,12669,7,7,0,0,12669,12670,7,11,0,0,12670,12671,7,6,0,0,12671,12672,7,8,0,0,12672,12673,7,15,0,0,12673,12674,7,12,0,0,12674,12675,7,22,0,0,12675,12676,7,18,0,0,12676,12677,7,8,0,0,12677,12678,7,19,0,0,12678,12679,7,23,0,0,12679,12680,7,9,0,0,12680,12681,7,21,0,0,12681,12682,7,16,0,0,12682,2106,1,0,0,0,12683,12684,7,11,0,0,12684,12685,7,6,0,0,12685,12686,5,95,0,0,12686,12687,7,12,0,0,12687,12688,7,17,0,0,12688,12689,7,23,0,0,12689,12690,7,22,0,0,12690,12691,7,7,0,0,12691,12692,7,19,0,0,12692,12693,7,23,0,0,12693,12694,7,7,0,0,12694,12695,7,6,0,0,12695,12696,7,8,0,0,12696,12697,7,15,0,0,12697,12698,7,7,0,0,12698,12699,7,11,0,0,12699,2108,1,0,0,0,12700,12701,7,11,0,0,12701,12702,7,6,0,0,12702,12703,5,95,0,0,12703,12704,7,12,0,0,12704,12705,7,17,0,0,12705,12706,7,23,0,0,12706,12707,7,15,0,0,12707,12708,7,12,0,0,12708,12709,7,6,0,0,12709,12710,7,7,0,0,12710,12711,7,8,0,0,12711,12712,7,15,0,0,12712,12713,7,19,0,0,12713,12714,7,8,0,0,12714,12715,7,8,0,0,12715,12716,7,15,0,0,12716,12717,7,12,0,0,12717,12718,7,22,0,0,12718,2110,1,0,0,0,12719,12720,7,11,0,0,12720,12721,7,6,0,0,12721,12722,5,95,0,0,12722,12723,7,12,0,0,12723,12724,7,17,0,0,12724,12725,7,23,0,0,12725,12726,7,15,0,0,12726,12727,7,12,0,0,12727,12728,7,6,0,0,12728,12729,7,7,0,0,12729,12730,7,8,0,0,12730,12731,7,15,0,0,12731,12732,7,19,0,0,12732,12733,7,8,0,0,12733,12734,7,8,0,0,12734,12735,7,15,0,0,12735,12736,7,12,0,0,12736,12737,7,22,0,0,12737,12738,7,11,0,0,12738,2112,1,0,0,0,12739,12740,7,11,0,0,12740,12741,7,6,0,0,12741,12742,5,95,0,0,12742,12743,7,12,0,0,12743,12744,7,17,0,0,12744,12745,7,23,0,0,12745,12746,7,25,0,0,12746,12747,7,19,0,0,12747,12748,7,15,0,0,12748,12749,7,12,0,0,12749,12750,7,6,0,0,12750,12751,7,11,0,0,12751,2114,1,0,0,0,12752,12753,7,11,0,0,12753,12754,7,6,0,0,12754,12755,5,95,0,0,12755,12756,7,19,0,0,12756,12757,7,24,0,0,12757,12758,7,7,0,0,12758,12759,7,8,0,0,12759,12760,7,5,0,0,12760,12761,7,3,0,0,12761,12762,7,25,0,0,12762,12763,7,11,0,0,12763,2116,1,0,0,0,12764,12765,7,11,0,0,12765,12766,7,6,0,0,12766,12767,5,95,0,0,12767,12768,7,25,0,0,12768,12769,7,19,0,0,12769,12770,7,15,0,0,12770,12771,7,12,0,0,12771,12772,7,6,0,0,12772,12773,7,18,0,0,12773,12774,7,8,0,0,12774,12775,7,19,0,0,12775,12776,7,23,0,0,12776,12777,7,6,0,0,12777,12778,7,7,0,0,12778,12779,7,26,0,0,12779,12780,7,6,0,0,12780,2118,1,0,0,0,12781,12782,7,11,0,0,12782,12783,7,6,0,0,12783,12784,5,95,0,0,12784,12785,7,25,0,0,12785,12786,7,19,0,0,12786,12787,7,15,0,0,12787,12788,7,12,0,0,12788,12789,7,6,0,0,12789,12790,7,18,0,0,12790,12791,7,8,0,0,12791,12792,7,19,0,0,12792,12793,7,23,0,0,12793,12794,7,9,0,0,12794,12795,7,21,0,0,12795,12796,7,16,0,0,12796,2120,1,0,0,0,12797,12798,7,11,0,0,12798,12799,7,6,0,0,12799,12800,5,95,0,0,12800,12801,7,25,0,0,12801,12802,7,19,0,0,12802,12803,7,15,0,0,12803,12804,7,12,0,0,12804,12805,7,6,0,0,12805,12806,7,12,0,0,12806,2122,1,0,0,0,12807,12808,7,11,0,0,12808,12809,7,6,0,0,12809,12810,5,95,0,0,12810,12811,7,25,0,0,12811,12812,7,19,0,0,12812,12813,7,5,0,0,12813,12814,7,10,0,0,12814,12815,7,18,0,0,12815,12816,7,8,0,0,12816,12817,7,19,0,0,12817,12818,7,23,0,0,12818,12819,7,6,0,0,12819,12820,7,7,0,0,12820,12821,7,26,0,0,12821,12822,7,6,0,0,12822,2124,1,0,0,0,12823,12824,7,11,0,0,12824,12825,7,6,0,0,12825,12826,5,95,0,0,12826,12827,7,25,0,0,12827,12828,7,19,0,0,12828,12829,7,5,0,0,12829,12830,7,10,0,0,12830,12831,7,18,0,0,12831,12832,7,8,0,0,12832,12833,7,19,0,0,12833,12834,7,23,0,0,12834,12835,7,9,0,0,12835,12836,7,21,0,0,12836,12837,7,16,0,0,12837,2126,1,0,0,0,12838,12839,7,11,0,0,12839,12840,7,6,0,0,12840,12841,5,95,0,0,12841,12842,7,25,0,0,12842,12843,7,19,0,0,12843,12844,7,5,0,0,12844,12845,7,10,0,0,12845,12846,7,22,0,0,12846,12847,7,19,0,0,12847,12848,7,12,0,0,12848,12849,7,18,0,0,12849,12850,7,8,0,0,12850,12851,7,19,0,0,12851,12852,7,23,0,0,12852,12853,7,6,0,0,12853,12854,7,7,0,0,12854,12855,7,26,0,0,12855,12856,7,6,0,0,12856,2128,1,0,0,0,12857,12858,7,11,0,0,12858,12859,7,6,0,0,12859,12860,5,95,0,0,12860,12861,7,25,0,0,12861,12862,7,19,0,0,12862,12863,7,5,0,0,12863,12864,7,10,0,0,12864,12865,7,22,0,0,12865,12866,7,19,0,0,12866,12867,7,12,0,0,12867,12868,7,18,0,0,12868,12869,7,8,0,0,12869,12870,7,19,0,0,12870,12871,7,23,0,0,12871,12872,7,9,0,0,12872,12873,7,21,0,0,12873,12874,7,16,0,0,12874,2130,1,0,0,0,12875,12876,7,11,0,0,12876,12877,7,6,0,0,12877,12878,5,95,0,0,12878,12879,7,11,0,0,12879,12880,7,8,0,0,12880,12881,7,15,0,0,12881,12882,7,4,0,0,12882,2132,1,0,0,0,12883,12884,7,11,0,0,12884,12885,7,6,0,0,12885,12886,5,95,0,0,12886,12887,7,11,0,0,12887,12888,7,6,0,0,12888,12889,7,3,0,0,12889,12890,7,8,0,0,12890,12891,7,6,0,0,12891,12892,7,25,0,0,12892,12893,7,19,0,0,12893,12894,7,15,0,0,12894,12895,7,12,0,0,12895,12896,7,6,0,0,12896,2134,1,0,0,0,12897,12898,7,11,0,0,12898,12899,7,6,0,0,12899,12900,5,95,0,0,12900,12901,7,11,0,0,12901,12902,7,10,0,0,12902,12903,7,23,0,0,12903,12904,7,4,0,0,12904,12905,7,15,0,0,12905,12906,7,18,0,0,12906,12907,7,18,0,0,12907,12908,7,7,0,0,12908,12909,7,8,0,0,12909,12910,7,7,0,0,12910,12911,7,12,0,0,12911,12912,7,14,0,0,12912,12913,7,7,0,0,12913,2136,1,0,0,0,12914,12915,7,11,0,0,12915,12916,7,6,0,0,12916,12917,5,95,0,0,12917,12918,7,6,0,0,12918,12919,7,19,0,0,12919,12920,7,17,0,0,12920,12921,7,14,0,0,12921,12922,7,20,0,0,12922,12923,7,7,0,0,12923,12924,7,11,0,0,12924,2138,1,0,0,0,12925,12926,7,11,0,0,12926,12927,7,6,0,0,12927,12928,5,95,0,0,12928,12929,7,17,0,0,12929,12930,7,12,0,0,12930,12931,7,15,0,0,12931,12932,7,19,0,0,12932,12933,7,12,0,0,12933,2140,1,0,0,0,12934,12935,7,11,0,0,12935,12936,7,6,0,0,12936,12937,5,95,0,0,12937,12938,7,9,0,0,12938,12939,7,15,0,0,12939,12940,7,6,0,0,12940,12941,7,20,0,0,12941,12942,7,15,0,0,12942,12943,7,12,0,0,12943,2142,1,0,0,0,12944,12945,7,11,0,0,12945,12946,7,6,0,0,12946,12947,5,95,0,0,12947,12948,7,26,0,0,12948,2144,1,0,0,0,12949,12950,7,11,0,0,12950,12951,7,6,0,0,12951,12952,5,95,0,0,12952,12953,7,10,0,0,12953,2146,1,0,0,0,12954,12955,7,11,0,0,12955,12956,7,17,0,0,12956,12957,7,16,0,0,12957,12958,7,4,0,0,12958,12959,7,3,0,0,12959,12960,7,6,0,0,12960,12961,7,7,0,0,12961,2148,1,0,0,0,12962,12963,7,11,0,0,12963,12964,7,17,0,0,12964,12965,7,16,0,0,12965,12966,7,11,0,0,12966,12967,7,6,0,0,12967,12968,7,8,0,0,12968,12969,7,15,0,0,12969,12970,7,12,0,0,12970,12971,7,22,0,0,12971,12972,5,95,0,0,12972,12973,7,15,0,0,12973,12974,7,12,0,0,12974,12975,7,4,0,0,12975,12976,7,7,0,0,12976,12977,7,26,0,0,12977,2150,1,0,0,0,12978,12979,7,11,0,0,12979,12980,7,17,0,0,12980,12981,7,16,0,0,12981,12982,7,6,0,0,12982,12983,7,15,0,0,12983,12984,7,23,0,0,12984,12985,7,7,0,0,12985,2152,1,0,0,0,12986,12987,7,11,0,0,12987,12988,7,10,0,0,12988,12989,7,11,0,0,12989,12990,7,6,0,0,12990,12991,7,7,0,0,12991,12992,7,23,0,0,12992,12993,5,95,0,0,12993,12994,7,17,0,0,12994,12995,7,11,0,0,12995,12996,7,7,0,0,12996,12997,7,8,0,0,12997,2154,1,0,0,0,12998,12999,7,6,0,0,12999,13e3,7,3,0,0,13e3,13001,7,12,0,0,13001,2156,1,0,0,0,13002,13003,7,6,0,0,13003,13004,7,15,0,0,13004,13005,7,23,0,0,13005,13006,7,7,0,0,13006,13007,7,4,0,0,13007,13008,7,15,0,0,13008,13009,7,18,0,0,13009,13010,7,18,0,0,13010,2158,1,0,0,0,13011,13012,7,6,0,0,13012,13013,7,15,0,0,13013,13014,7,23,0,0,13014,13015,7,7,0,0,13015,13016,7,11,0,0,13016,13017,7,6,0,0,13017,13018,7,3,0,0,13018,13019,7,23,0,0,13019,13020,7,25,0,0,13020,13021,7,3,0,0,13021,13022,7,4,0,0,13022,13023,7,4,0,0,13023,2160,1,0,0,0,13024,13025,7,6,0,0,13025,13026,7,15,0,0,13026,13027,7,23,0,0,13027,13028,7,7,0,0,13028,13029,7,11,0,0,13029,13030,7,6,0,0,13030,13031,7,3,0,0,13031,13032,7,23,0,0,13032,13033,7,25,0,0,13033,13034,7,4,0,0,13034,13035,7,15,0,0,13035,13036,7,18,0,0,13036,13037,7,18,0,0,13037,2162,1,0,0,0,13038,13039,7,6,0,0,13039,13040,7,15,0,0,13040,13041,7,23,0,0,13041,13042,7,7,0,0,13042,13043,5,95,0,0,13043,13044,7,18,0,0,13044,13045,7,19,0,0,13045,13046,7,8,0,0,13046,13047,7,23,0,0,13047,13048,7,3,0,0,13048,13049,7,6,0,0,13049,2164,1,0,0,0,13050,13051,7,6,0,0,13051,13052,7,15,0,0,13052,13053,7,23,0,0,13053,13054,7,7,0,0,13054,13055,5,95,0,0,13055,13056,7,6,0,0,13056,13057,7,19,0,0,13057,13058,5,95,0,0,13058,13059,7,11,0,0,13059,13060,7,7,0,0,13060,13061,7,14,0,0,13061,2166,1,0,0,0,13062,13063,7,6,0,0,13063,13064,7,19,0,0,13064,13065,7,17,0,0,13065,13066,7,14,0,0,13066,13067,7,20,0,0,13067,13068,7,7,0,0,13068,13069,7,11,0,0,13069,2168,1,0,0,0,13070,13071,7,6,0,0,13071,13072,7,19,0,0,13072,13073,5,95,0,0,13073,13074,7,16,0,0,13074,13075,7,3,0,0,13075,13076,7,11,0,0,13076,13077,7,7,0,0,13077,13078,5,54,0,0,13078,13079,5,52,0,0,13079,2170,1,0,0,0,13080,13081,7,6,0,0,13081,13082,7,19,0,0,13082,13083,5,95,0,0,13083,13084,7,4,0,0,13084,13085,7,3,0,0,13085,13086,7,10,0,0,13086,13087,7,11,0,0,13087,2172,1,0,0,0,13088,13089,7,6,0,0,13089,13090,7,19,0,0,13090,13091,5,95,0,0,13091,13092,7,11,0,0,13092,13093,7,7,0,0,13093,13094,7,14,0,0,13094,13095,7,19,0,0,13095,13096,7,12,0,0,13096,13097,7,4,0,0,13097,13098,7,11,0,0,13098,2174,1,0,0,0,13099,13100,7,6,0,0,13100,13101,7,25,0,0,13101,13102,5,95,0,0,13102,13103,7,14,0,0,13103,13104,7,19,0,0,13104,13105,7,12,0,0,13105,13106,7,12,0,0,13106,13107,7,7,0,0,13107,13108,7,14,0,0,13108,13109,7,6,0,0,13109,13110,7,15,0,0,13110,13111,7,19,0,0,13111,13112,7,12,0,0,13112,13113,5,95,0,0,13113,13114,7,3,0,0,13114,13115,7,4,0,0,13115,13116,7,23,0,0,13116,13117,7,15,0,0,13117,13118,7,12,0,0,13118,2176,1,0,0,0,13119,13120,7,17,0,0,13120,13121,7,14,0,0,13121,13122,7,3,0,0,13122,13123,7,11,0,0,13123,13124,7,7,0,0,13124,2178,1,0,0,0,13125,13126,7,17,0,0,13126,13127,7,12,0,0,13127,13128,7,14,0,0,13128,13129,7,19,0,0,13129,13130,7,23,0,0,13130,13131,7,25,0,0,13131,13132,7,8,0,0,13132,13133,7,7,0,0,13133,13134,7,11,0,0,13134,13135,7,11,0,0,13135,2180,1,0,0,0,13136,13137,7,17,0,0,13137,13138,7,12,0,0,13138,13139,7,14,0,0,13139,13140,7,19,0,0,13140,13141,7,23,0,0,13141,13142,7,25,0,0,13142,13143,7,8,0,0,13143,13144,7,7,0,0,13144,13145,7,11,0,0,13145,13146,7,11,0,0,13146,13147,7,7,0,0,13147,13148,7,4,0,0,13148,13149,5,95,0,0,13149,13150,7,5,0,0,13150,13151,7,7,0,0,13151,13152,7,12,0,0,13152,13153,7,22,0,0,13153,13154,7,6,0,0,13154,13155,7,20,0,0,13155,2182,1,0,0,0,13156,13157,7,17,0,0,13157,13158,7,12,0,0,13158,13159,7,20,0,0,13159,13160,7,7,0,0,13160,13161,7,26,0,0,13161,2184,1,0,0,0,13162,13163,7,17,0,0,13163,13164,7,12,0,0,13164,13165,7,15,0,0,13165,13166,7,26,0,0,13166,13167,5,95,0,0,13167,13168,7,6,0,0,13168,13169,7,15,0,0,13169,13170,7,23,0,0,13170,13171,7,7,0,0,13171,13172,7,11,0,0,13172,13173,7,6,0,0,13173,13174,7,3,0,0,13174,13175,7,23,0,0,13175,13176,7,25,0,0,13176,2186,1,0,0,0,13177,13178,7,17,0,0,13178,13179,7,25,0,0,13179,13180,7,4,0,0,13180,13181,7,3,0,0,13181,13182,7,6,0,0,13182,13183,7,7,0,0,13183,13184,7,26,0,0,13184,13185,7,23,0,0,13185,13186,7,5,0,0,13186,2188,1,0,0,0,13187,13188,7,17,0,0,13188,13189,7,25,0,0,13189,13190,7,25,0,0,13190,13191,7,7,0,0,13191,13192,7,8,0,0,13192,2190,1,0,0,0,13193,13194,7,17,0,0,13194,13195,7,17,0,0,13195,13196,7,15,0,0,13196,13197,7,4,0,0,13197,2192,1,0,0,0,13198,13199,7,17,0,0,13199,13200,7,17,0,0,13200,13201,7,15,0,0,13201,13202,7,4,0,0,13202,13203,5,95,0,0,13203,13204,7,11,0,0,13204,13205,7,20,0,0,13205,13206,7,19,0,0,13206,13207,7,8,0,0,13207,13208,7,6,0,0,13208,2194,1,0,0,0,13209,13210,7,24,0,0,13210,13211,7,3,0,0,13211,13212,7,5,0,0,13212,13213,7,15,0,0,13213,13214,7,4,0,0,13214,13215,7,3,0,0,13215,13216,7,6,0,0,13216,13217,7,7,0,0,13217,13218,5,95,0,0,13218,13219,7,25,0,0,13219,13220,7,3,0,0,13220,13221,7,11,0,0,13221,13222,7,11,0,0,13222,13223,7,9,0,0,13223,13224,7,19,0,0,13224,13225,7,8,0,0,13225,13226,7,4,0,0,13226,13227,5,95,0,0,13227,13228,7,11,0,0,13228,13229,7,6,0,0,13229,13230,7,8,0,0,13230,13231,7,7,0,0,13231,13232,7,12,0,0,13232,13233,7,22,0,0,13233,13234,7,6,0,0,13234,13235,7,20,0,0,13235,2196,1,0,0,0,13236,13237,7,24,0,0,13237,13238,7,7,0,0,13238,13239,7,8,0,0,13239,13240,7,11,0,0,13240,13241,7,15,0,0,13241,13242,7,19,0,0,13242,13243,7,12,0,0,13243,2198,1,0,0,0,13244,13245,7,9,0,0,13245,13246,7,3,0,0,13246,13247,7,15,0,0,13247,13248,7,6,0,0,13248,13249,5,95,0,0,13249,13250,7,17,0,0,13250,13251,7,12,0,0,13251,13252,7,6,0,0,13252,13253,7,15,0,0,13253,13254,7,5,0,0,13254,13255,5,95,0,0,13255,13256,7,11,0,0,13256,13257,7,28,0,0,13257,13258,7,5,0,0,13258,13259,5,95,0,0,13259,13260,7,6,0,0,13260,13261,7,20,0,0,13261,13262,7,8,0,0,13262,13263,7,7,0,0,13263,13264,7,3,0,0,13264,13265,7,4,0,0,13265,13266,5,95,0,0,13266,13267,7,3,0,0,13267,13268,7,18,0,0,13268,13269,7,6,0,0,13269,13270,7,7,0,0,13270,13271,7,8,0,0,13271,13272,5,95,0,0,13272,13273,7,22,0,0,13273,13274,7,6,0,0,13274,13275,7,15,0,0,13275,13276,7,4,0,0,13276,13277,7,11,0,0,13277,2200,1,0,0,0,13278,13279,7,9,0,0,13279,13280,7,7,0,0,13280,13281,7,7,0,0,13281,13282,7,21,0,0,13282,13283,7,4,0,0,13283,13284,7,3,0,0,13284,13285,7,10,0,0,13285,2202,1,0,0,0,13286,13287,7,9,0,0,13287,13288,7,7,0,0,13288,13289,7,7,0,0,13289,13290,7,21,0,0,13290,13291,7,19,0,0,13291,13292,7,18,0,0,13292,13293,7,10,0,0,13293,13294,7,7,0,0,13294,13295,7,3,0,0,13295,13296,7,8,0,0,13296,2204,1,0,0,0,13297,13298,7,9,0,0,13298,13299,7,7,0,0,13299,13300,7,15,0,0,13300,13301,7,22,0,0,13301,13302,7,20,0,0,13302,13303,7,6,0,0,13303,13304,5,95,0,0,13304,13305,7,11,0,0,13305,13306,7,6,0,0,13306,13307,7,8,0,0,13307,13308,7,15,0,0,13308,13309,7,12,0,0,13309,13310,7,22,0,0,13310,2206,1,0,0,0,13311,13312,7,9,0,0,13312,13313,7,15,0,0,13313,13314,7,6,0,0,13314,13315,7,20,0,0,13315,13316,7,15,0,0,13316,13317,7,12,0,0,13317,2208,1,0,0,0,13318,13319,7,10,0,0,13319,13320,7,7,0,0,13320,13321,7,3,0,0,13321,13322,7,8,0,0,13322,13323,7,9,0,0,13323,13324,7,7,0,0,13324,13325,7,7,0,0,13325,13326,7,21,0,0,13326,2210,1,0,0,0,13327,13328,7,10,0,0,13328,2212,1,0,0,0,13329,13330,7,26,0,0,13330,2214,1,0,0,0,13331,13332,5,58,0,0,13332,13333,5,61,0,0,13333,2216,1,0,0,0,13334,13335,5,43,0,0,13335,13336,5,61,0,0,13336,2218,1,0,0,0,13337,13338,5,45,0,0,13338,13339,5,61,0,0,13339,2220,1,0,0,0,13340,13341,5,42,0,0,13341,13342,5,61,0,0,13342,2222,1,0,0,0,13343,13344,5,47,0,0,13344,13345,5,61,0,0,13345,2224,1,0,0,0,13346,13347,5,37,0,0,13347,13348,5,61,0,0,13348,2226,1,0,0,0,13349,13350,5,38,0,0,13350,13351,5,61,0,0,13351,2228,1,0,0,0,13352,13353,5,94,0,0,13353,13354,5,61,0,0,13354,2230,1,0,0,0,13355,13356,5,124,0,0,13356,13357,5,61,0,0,13357,2232,1,0,0,0,13358,13359,5,42,0,0,13359,2234,1,0,0,0,13360,13361,5,47,0,0,13361,2236,1,0,0,0,13362,13363,5,37,0,0,13363,2238,1,0,0,0,13364,13365,5,43,0,0,13365,2240,1,0,0,0,13366,13367,5,45,0,0,13367,2242,1,0,0,0,13368,13369,7,4,0,0,13369,13370,7,15,0,0,13370,13371,7,24,0,0,13371,2244,1,0,0,0,13372,13373,7,23,0,0,13373,13374,7,19,0,0,13374,13375,7,4,0,0,13375,2246,1,0,0,0,13376,13377,5,61,0,0,13377,2248,1,0,0,0,13378,13379,5,62,0,0,13379,2250,1,0,0,0,13380,13381,5,60,0,0,13381,2252,1,0,0,0,13382,13383,5,33,0,0,13383,2254,1,0,0,0,13384,13385,5,126,0,0,13385,2256,1,0,0,0,13386,13387,5,124,0,0,13387,2258,1,0,0,0,13388,13389,5,38,0,0,13389,2260,1,0,0,0,13390,13391,5,94,0,0,13391,2262,1,0,0,0,13392,13393,5,46,0,0,13393,2264,1,0,0,0,13394,13395,5,40,0,0,13395,2266,1,0,0,0,13396,13397,5,41,0,0,13397,2268,1,0,0,0,13398,13399,5,44,0,0,13399,2270,1,0,0,0,13400,13401,5,59,0,0,13401,2272,1,0,0,0,13402,13403,5,64,0,0,13403,2274,1,0,0,0,13404,13405,5,48,0,0,13405,2276,1,0,0,0,13406,13407,5,49,0,0,13407,2278,1,0,0,0,13408,13409,5,50,0,0,13409,2280,1,0,0,0,13410,13411,5,39,0,0,13411,2282,1,0,0,0,13412,13413,5,34,0,0,13413,2284,1,0,0,0,13414,13415,5,96,0,0,13415,2286,1,0,0,0,13416,13417,5,58,0,0,13417,2288,1,0,0,0,13418,13422,3,2281,1140,0,13419,13422,3,2283,1141,0,13420,13422,3,2285,1142,0,13421,13418,1,0,0,0,13421,13419,1,0,0,0,13421,13420,1,0,0,0,13422,2290,1,0,0,0,13423,13424,5,96,0,0,13424,13425,3,2323,1161,0,13425,13426,5,96,0,0,13426,2292,1,0,0,0,13427,13429,3,2337,1168,0,13428,13427,1,0,0,0,13429,13430,1,0,0,0,13430,13428,1,0,0,0,13430,13431,1,0,0,0,13431,13432,1,0,0,0,13432,13433,7,29,0,0,13433,2294,1,0,0,0,13434,13435,7,12,0,0,13435,13436,3,2331,1165,0,13436,2296,1,0,0,0,13437,13441,3,2329,1164,0,13438,13441,3,2331,1165,0,13439,13441,3,2333,1166,0,13440,13437,1,0,0,0,13440,13438,1,0,0,0,13440,13439,1,0,0,0,13441,2298,1,0,0,0,13442,13444,3,2337,1168,0,13443,13442,1,0,0,0,13444,13445,1,0,0,0,13445,13443,1,0,0,0,13445,13446,1,0,0,0,13446,2300,1,0,0,0,13447,13448,7,26,0,0,13448,13452,5,39,0,0,13449,13450,3,2335,1167,0,13450,13451,3,2335,1167,0,13451,13453,1,0,0,0,13452,13449,1,0,0,0,13453,13454,1,0,0,0,13454,13452,1,0,0,0,13454,13455,1,0,0,0,13455,13456,1,0,0,0,13456,13457,5,39,0,0,13457,13467,1,0,0,0,13458,13459,5,48,0,0,13459,13460,7,26,0,0,13460,13462,1,0,0,0,13461,13463,3,2335,1167,0,13462,13461,1,0,0,0,13463,13464,1,0,0,0,13464,13462,1,0,0,0,13464,13465,1,0,0,0,13465,13467,1,0,0,0,13466,13447,1,0,0,0,13466,13458,1,0,0,0,13467,2302,1,0,0,0,13468,13470,3,2337,1168,0,13469,13468,1,0,0,0,13470,13473,1,0,0,0,13471,13469,1,0,0,0,13471,13472,1,0,0,0,13472,13474,1,0,0,0,13473,13471,1,0,0,0,13474,13476,5,46,0,0,13475,13477,3,2337,1168,0,13476,13475,1,0,0,0,13477,13478,1,0,0,0,13478,13476,1,0,0,0,13478,13479,1,0,0,0,13479,13510,1,0,0,0,13480,13482,3,2337,1168,0,13481,13480,1,0,0,0,13482,13483,1,0,0,0,13483,13481,1,0,0,0,13483,13484,1,0,0,0,13484,13485,1,0,0,0,13485,13486,5,46,0,0,13486,13487,3,2325,1162,0,13487,13510,1,0,0,0,13488,13490,3,2337,1168,0,13489,13488,1,0,0,0,13490,13493,1,0,0,0,13491,13489,1,0,0,0,13491,13492,1,0,0,0,13492,13494,1,0,0,0,13493,13491,1,0,0,0,13494,13496,5,46,0,0,13495,13497,3,2337,1168,0,13496,13495,1,0,0,0,13497,13498,1,0,0,0,13498,13496,1,0,0,0,13498,13499,1,0,0,0,13499,13500,1,0,0,0,13500,13501,3,2325,1162,0,13501,13510,1,0,0,0,13502,13504,3,2337,1168,0,13503,13502,1,0,0,0,13504,13505,1,0,0,0,13505,13503,1,0,0,0,13505,13506,1,0,0,0,13506,13507,1,0,0,0,13507,13508,3,2325,1162,0,13508,13510,1,0,0,0,13509,13471,1,0,0,0,13509,13481,1,0,0,0,13509,13491,1,0,0,0,13509,13503,1,0,0,0,13510,2304,1,0,0,0,13511,13512,5,92,0,0,13512,13513,7,12,0,0,13513,2306,1,0,0,0,13514,13515,3,2339,1169,0,13515,2308,1,0,0,0,13516,13517,5,95,0,0,13517,13518,3,2323,1161,0,13518,2310,1,0,0,0,13519,13520,5,46,0,0,13520,13521,3,2327,1163,0,13521,2312,1,0,0,0,13522,13523,3,2327,1163,0,13523,2314,1,0,0,0,13524,13525,3,2333,1166,0,13525,2316,1,0,0,0,13526,13527,3,2273,1136,0,13527,13528,3,2341,1170,0,13528,2318,1,0,0,0,13529,13536,3,2273,1136,0,13530,13537,3,2297,1148,0,13531,13533,7,30,0,0,13532,13531,1,0,0,0,13533,13534,1,0,0,0,13534,13532,1,0,0,0,13534,13535,1,0,0,0,13535,13537,1,0,0,0,13536,13530,1,0,0,0,13536,13532,1,0,0,0,13537,2320,1,0,0,0,13538,13539,3,2273,1136,0,13539,13546,3,2273,1136,0,13540,13542,7,30,0,0,13541,13540,1,0,0,0,13542,13543,1,0,0,0,13543,13541,1,0,0,0,13543,13544,1,0,0,0,13544,13547,1,0,0,0,13545,13547,3,2333,1166,0,13546,13541,1,0,0,0,13546,13545,1,0,0,0,13547,2322,1,0,0,0,13548,13590,3,1491,745,0,13549,13590,3,1493,746,0,13550,13590,3,1495,747,0,13551,13590,3,451,225,0,13552,13590,3,1497,748,0,13553,13590,3,1499,749,0,13554,13590,3,1501,750,0,13555,13590,3,1503,751,0,13556,13590,3,1505,752,0,13557,13590,3,1507,753,0,13558,13590,3,1509,754,0,13559,13590,3,1511,755,0,13560,13590,3,1513,756,0,13561,13590,3,1515,757,0,13562,13590,3,1517,758,0,13563,13590,3,1521,760,0,13564,13590,3,1523,761,0,13565,13590,3,1525,762,0,13566,13590,3,1527,763,0,13567,13590,3,1529,764,0,13568,13590,3,1531,765,0,13569,13590,3,1533,766,0,13570,13590,3,1535,767,0,13571,13590,3,1537,768,0,13572,13590,3,1539,769,0,13573,13590,3,1541,770,0,13574,13590,3,1543,771,0,13575,13590,3,1545,772,0,13576,13590,3,1547,773,0,13577,13590,3,1549,774,0,13578,13590,3,1551,775,0,13579,13590,3,1553,776,0,13580,13590,3,1555,777,0,13581,13590,3,1557,778,0,13582,13590,3,1559,779,0,13583,13590,3,1561,780,0,13584,13590,3,1563,781,0,13585,13590,3,1565,782,0,13586,13590,3,1567,783,0,13587,13590,3,1569,784,0,13588,13590,3,1571,785,0,13589,13548,1,0,0,0,13589,13549,1,0,0,0,13589,13550,1,0,0,0,13589,13551,1,0,0,0,13589,13552,1,0,0,0,13589,13553,1,0,0,0,13589,13554,1,0,0,0,13589,13555,1,0,0,0,13589,13556,1,0,0,0,13589,13557,1,0,0,0,13589,13558,1,0,0,0,13589,13559,1,0,0,0,13589,13560,1,0,0,0,13589,13561,1,0,0,0,13589,13562,1,0,0,0,13589,13563,1,0,0,0,13589,13564,1,0,0,0,13589,13565,1,0,0,0,13589,13566,1,0,0,0,13589,13567,1,0,0,0,13589,13568,1,0,0,0,13589,13569,1,0,0,0,13589,13570,1,0,0,0,13589,13571,1,0,0,0,13589,13572,1,0,0,0,13589,13573,1,0,0,0,13589,13574,1,0,0,0,13589,13575,1,0,0,0,13589,13576,1,0,0,0,13589,13577,1,0,0,0,13589,13578,1,0,0,0,13589,13579,1,0,0,0,13589,13580,1,0,0,0,13589,13581,1,0,0,0,13589,13582,1,0,0,0,13589,13583,1,0,0,0,13589,13584,1,0,0,0,13589,13585,1,0,0,0,13589,13586,1,0,0,0,13589,13587,1,0,0,0,13589,13588,1,0,0,0,13590,2324,1,0,0,0,13591,13593,7,7,0,0,13592,13594,7,31,0,0,13593,13592,1,0,0,0,13593,13594,1,0,0,0,13594,13596,1,0,0,0,13595,13597,3,2337,1168,0,13596,13595,1,0,0,0,13597,13598,1,0,0,0,13598,13596,1,0,0,0,13598,13599,1,0,0,0,13599,2326,1,0,0,0,13600,13602,7,32,0,0,13601,13600,1,0,0,0,13602,13605,1,0,0,0,13603,13604,1,0,0,0,13603,13601,1,0,0,0,13604,13607,1,0,0,0,13605,13603,1,0,0,0,13606,13608,7,33,0,0,13607,13606,1,0,0,0,13608,13609,1,0,0,0,13609,13610,1,0,0,0,13609,13607,1,0,0,0,13610,13614,1,0,0,0,13611,13613,7,32,0,0,13612,13611,1,0,0,0,13613,13616,1,0,0,0,13614,13612,1,0,0,0,13614,13615,1,0,0,0,13615,2328,1,0,0,0,13616,13614,1,0,0,0,13617,13625,5,34,0,0,13618,13619,5,92,0,0,13619,13624,9,0,0,0,13620,13621,5,34,0,0,13621,13624,5,34,0,0,13622,13624,8,34,0,0,13623,13618,1,0,0,0,13623,13620,1,0,0,0,13623,13622,1,0,0,0,13624,13627,1,0,0,0,13625,13623,1,0,0,0,13625,13626,1,0,0,0,13626,13628,1,0,0,0,13627,13625,1,0,0,0,13628,13629,5,34,0,0,13629,2330,1,0,0,0,13630,13638,5,39,0,0,13631,13632,5,92,0,0,13632,13637,9,0,0,0,13633,13634,5,39,0,0,13634,13637,5,39,0,0,13635,13637,8,35,0,0,13636,13631,1,0,0,0,13636,13633,1,0,0,0,13636,13635,1,0,0,0,13637,13640,1,0,0,0,13638,13636,1,0,0,0,13638,13639,1,0,0,0,13639,13641,1,0,0,0,13640,13638,1,0,0,0,13641,13642,5,39,0,0,13642,2332,1,0,0,0,13643,13649,5,96,0,0,13644,13648,8,36,0,0,13645,13646,5,96,0,0,13646,13648,5,96,0,0,13647,13644,1,0,0,0,13647,13645,1,0,0,0,13648,13651,1,0,0,0,13649,13647,1,0,0,0,13649,13650,1,0,0,0,13650,13652,1,0,0,0,13651,13649,1,0,0,0,13652,13653,5,96,0,0,13653,2334,1,0,0,0,13654,13655,7,37,0,0,13655,2336,1,0,0,0,13656,13657,7,38,0,0,13657,2338,1,0,0,0,13658,13659,7,16,0,0,13659,13661,5,39,0,0,13660,13662,7,39,0,0,13661,13660,1,0,0,0,13662,13663,1,0,0,0,13663,13661,1,0,0,0,13663,13664,1,0,0,0,13664,13665,1,0,0,0,13665,13666,5,39,0,0,13666,2340,1,0,0,0,13667,13669,7,38,0,0,13668,13667,1,0,0,0,13669,13670,1,0,0,0,13670,13668,1,0,0,0,13670,13671,1,0,0,0,13671,13672,1,0,0,0,13672,13674,5,46,0,0,13673,13675,7,40,0,0,13674,13673,1,0,0,0,13675,13676,1,0,0,0,13676,13674,1,0,0,0,13676,13677,1,0,0,0,13677,13698,1,0,0,0,13678,13680,7,37,0,0,13679,13678,1,0,0,0,13680,13683,1,0,0,0,13681,13679,1,0,0,0,13681,13682,1,0,0,0,13682,13684,1,0,0,0,13683,13681,1,0,0,0,13684,13688,5,58,0,0,13685,13687,7,37,0,0,13686,13685,1,0,0,0,13687,13690,1,0,0,0,13688,13686,1,0,0,0,13688,13689,1,0,0,0,13689,13691,1,0,0,0,13690,13688,1,0,0,0,13691,13693,5,58,0,0,13692,13694,7,41,0,0,13693,13692,1,0,0,0,13694,13695,1,0,0,0,13695,13693,1,0,0,0,13695,13696,1,0,0,0,13696,13698,1,0,0,0,13697,13668,1,0,0,0,13697,13681,1,0,0,0,13698,2342,1,0,0,0,13699,13700,9,0,0,0,13700,13701,1,0,0,0,13701,13702,6,1171,2,0,13702,2344,1,0,0,0,51,0,2348,2359,2372,2386,2390,2395,2399,2403,2409,2413,2415,9261,9288,13421,13430,13440,13445,13454,13464,13466,13471,13478,13483,13491,13498,13505,13509,13534,13536,13543,13546,13589,13593,13598,13603,13609,13614,13623,13625,13636,13638,13647,13649,13663,13670,13676,13681,13688,13695,13697,3,0,1,0,6,0,0,0,3,0],Ki.vocabulary=new Ra(Ki.literalNames,Ki.symbolicNames,[]),Ki.decisionsToDFA=Ki._ATN.decisionToState.map(((t,e)=>new ni(t,e))),Ki),FC=(Qi=class t extends Cc{get grammarFileName(){return"MySqlParser.g4"}get literalNames(){return t.literalNames}get symbolicNames(){return t.symbolicNames}get ruleNames(){return t.ruleNames}get serializedATN(){return t._serializedATN}createFailedPredicateException(t,e){return new Sc(this,t,e)}constructor(e){super(e),this.interpreter=new Ai(this,t._ATN,t.decisionsToDFA,new Si)}root(){let e,s=new vC(this.context,this.state);this.enterRule(s,0,t.RULE_root);try{this.enterOuterAlt(s,1),this.state=751,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&84935296||!(e-33&-32)&&1<<e-33&537147393||!(e-71&-32)&&1<<e-71&2151694339||!(e-103&-32)&&1<<e-103&536936449||!(e-138&-32)&&1<<e-138&442923||!(e-172&-32)&&1<<e-172&1135617||!(e-344&-32)&&1<<e-344&33558659||390===e||399===e||!(e-432&-32)&&1<<e-432&16782337||!(e-560&-32)&&1<<e-560&537919489||597===e||604===e||!(e-629&-32)&&1<<e-629&134217793||661===e||681===e||708===e||739===e||1133===e)&&(this.state=750,this.statements()),this.state=753,this.match(t.EOF)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}statements(){let e,s=new BC(this.context,this.state);this.enterRule(s,2,t.RULE_statements);try{switch(this.state=763,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,2,this.context)){case 1:this.enterOuterAlt(s,1),this.state=755,this.statement(),this.state=757,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1136===e&&(this.state=756,this.match(t.SEMI));break;case 2:this.enterOuterAlt(s,2),this.state=759,this.statement(),this.state=760,this.match(t.SEMI),this.state=761,this.statements()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}statement(){let e=new yC(this.context,this.state);this.enterRule(e,4,t.RULE_statement);try{switch(this.state=772,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,3,this.context)){case 1:this.enterOuterAlt(e,1),this.state=765,this.ddlStatement();break;case 2:this.enterOuterAlt(e,2),this.state=766,this.dmlStatement();break;case 3:this.enterOuterAlt(e,3),this.state=767,this.transactionStatement();break;case 4:this.enterOuterAlt(e,4),this.state=768,this.replicationStatement();break;case 5:this.enterOuterAlt(e,5),this.state=769,this.preparedStatement();break;case 6:this.enterOuterAlt(e,6),this.state=770,this.administrationStatement();break;case 7:this.enterOuterAlt(e,7),this.state=771,this.utilityStatement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}ddlStatement(){let e=new fC(this.context,this.state);this.enterRule(e,6,t.RULE_ddlStatement);try{switch(this.state=812,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,4,this.context)){case 1:this.enterOuterAlt(e,1),this.state=774,this.createDatabase();break;case 2:this.enterOuterAlt(e,2),this.state=775,this.createEvent();break;case 3:this.enterOuterAlt(e,3),this.state=776,this.createIndex();break;case 4:this.enterOuterAlt(e,4),this.state=777,this.createLogfileGroup();break;case 5:this.enterOuterAlt(e,5),this.state=778,this.createProcedure();break;case 6:this.enterOuterAlt(e,6),this.state=779,this.createFunction();break;case 7:this.enterOuterAlt(e,7),this.state=780,this.createServer();break;case 8:this.enterOuterAlt(e,8),this.state=781,this.createTable();break;case 9:this.enterOuterAlt(e,9),this.state=782,this.createTablespaceInnodb();break;case 10:this.enterOuterAlt(e,10),this.state=783,this.createTablespaceNdb();break;case 11:this.enterOuterAlt(e,11),this.state=784,this.createTrigger();break;case 12:this.enterOuterAlt(e,12),this.state=785,this.createView();break;case 13:this.enterOuterAlt(e,13),this.state=786,this.createRole();break;case 14:this.enterOuterAlt(e,14),this.state=787,this.alterDatabase();break;case 15:this.enterOuterAlt(e,15),this.state=788,this.alterEvent();break;case 16:this.enterOuterAlt(e,16),this.state=789,this.alterFunction();break;case 17:this.enterOuterAlt(e,17),this.state=790,this.alterInstance();break;case 18:this.enterOuterAlt(e,18),this.state=791,this.alterLogfileGroup();break;case 19:this.enterOuterAlt(e,19),this.state=792,this.alterProcedure();break;case 20:this.enterOuterAlt(e,20),this.state=793,this.alterServer();break;case 21:this.enterOuterAlt(e,21),this.state=794,this.alterTable();break;case 22:this.enterOuterAlt(e,22),this.state=795,this.alterTablespace();break;case 23:this.enterOuterAlt(e,23),this.state=796,this.alterView();break;case 24:this.enterOuterAlt(e,24),this.state=797,this.dropDatabase();break;case 25:this.enterOuterAlt(e,25),this.state=798,this.dropEvent();break;case 26:this.enterOuterAlt(e,26),this.state=799,this.dropIndex();break;case 27:this.enterOuterAlt(e,27),this.state=800,this.dropLogfileGroup();break;case 28:this.enterOuterAlt(e,28),this.state=801,this.dropProcedure();break;case 29:this.enterOuterAlt(e,29),this.state=802,this.dropFunction();break;case 30:this.enterOuterAlt(e,30),this.state=803,this.dropServer();break;case 31:this.enterOuterAlt(e,31),this.state=804,this.dropTable();break;case 32:this.enterOuterAlt(e,32),this.state=805,this.dropTablespace();break;case 33:this.enterOuterAlt(e,33),this.state=806,this.dropTrigger();break;case 34:this.enterOuterAlt(e,34),this.state=807,this.dropView();break;case 35:this.enterOuterAlt(e,35),this.state=808,this.dropRole();break;case 36:this.enterOuterAlt(e,36),this.state=809,this.setRole();break;case 37:this.enterOuterAlt(e,37),this.state=810,this.renameTable();break;case 38:this.enterOuterAlt(e,38),this.state=811,this.truncateTable()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dmlStatement(){let e=new YC(this.context,this.state);this.enterRule(e,8,t.RULE_dmlStatement);try{switch(this.state=827,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,5,this.context)){case 1:this.enterOuterAlt(e,1),this.state=814,this.selectStatement();break;case 2:this.enterOuterAlt(e,2),this.state=815,this.insertStatement();break;case 3:this.enterOuterAlt(e,3),this.state=816,this.updateStatement();break;case 4:this.enterOuterAlt(e,4),this.state=817,this.deleteStatement();break;case 5:this.enterOuterAlt(e,5),this.state=818,this.replaceStatement();break;case 6:this.enterOuterAlt(e,6),this.state=819,this.callStatement();break;case 7:this.enterOuterAlt(e,7),this.state=820,this.loadDataStatement();break;case 8:this.enterOuterAlt(e,8),this.state=821,this.loadXmlStatement();break;case 9:this.enterOuterAlt(e,9),this.state=822,this.doStatement();break;case 10:this.enterOuterAlt(e,10),this.state=823,this.handlerStatement();break;case 11:this.enterOuterAlt(e,11),this.state=824,this.valuesStatement();break;case 12:this.enterOuterAlt(e,12),this.state=825,this.withStatement();break;case 13:this.enterOuterAlt(e,13),this.state=826,this.tableStatement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}transactionStatement(){let e=new wC(this.context,this.state);this.enterRule(e,10,t.RULE_transactionStatement);try{switch(this.state=838,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,6,this.context)){case 1:this.enterOuterAlt(e,1),this.state=829,this.startTransaction();break;case 2:this.enterOuterAlt(e,2),this.state=830,this.beginWork();break;case 3:this.enterOuterAlt(e,3),this.state=831,this.commitWork();break;case 4:this.enterOuterAlt(e,4),this.state=832,this.rollbackWork();break;case 5:this.enterOuterAlt(e,5),this.state=833,this.savepointStatement();break;case 6:this.enterOuterAlt(e,6),this.state=834,this.rollbackStatement();break;case 7:this.enterOuterAlt(e,7),this.state=835,this.releaseStatement();break;case 8:this.enterOuterAlt(e,8),this.state=836,this.lockTables();break;case 9:this.enterOuterAlt(e,9),this.state=837,this.unlockTables()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}replicationStatement(){let e=new bC(this.context,this.state);this.enterRule(e,12,t.RULE_replicationStatement);try{switch(this.state=855,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,7,this.context)){case 1:this.enterOuterAlt(e,1),this.state=840,this.changeMaster();break;case 2:this.enterOuterAlt(e,2),this.state=841,this.changeReplicationFilter();break;case 3:this.enterOuterAlt(e,3),this.state=842,this.purgeBinaryLogs();break;case 4:this.enterOuterAlt(e,4),this.state=843,this.resetMaster();break;case 5:this.enterOuterAlt(e,5),this.state=844,this.resetSlave();break;case 6:this.enterOuterAlt(e,6),this.state=845,this.startSlave();break;case 7:this.enterOuterAlt(e,7),this.state=846,this.stopSlave();break;case 8:this.enterOuterAlt(e,8),this.state=847,this.startGroupReplication();break;case 9:this.enterOuterAlt(e,9),this.state=848,this.stopGroupReplication();break;case 10:this.enterOuterAlt(e,10),this.state=849,this.xaStartTransaction();break;case 11:this.enterOuterAlt(e,11),this.state=850,this.xaEndTransaction();break;case 12:this.enterOuterAlt(e,12),this.state=851,this.xaPrepareStatement();break;case 13:this.enterOuterAlt(e,13),this.state=852,this.xaCommitWork();break;case 14:this.enterOuterAlt(e,14),this.state=853,this.xaRollbackWork();break;case 15:this.enterOuterAlt(e,15),this.state=854,this.xaRecoverWork()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}preparedStatement(){let e=new WC(this.context,this.state);this.enterRule(e,14,t.RULE_preparedStatement);try{switch(this.state=860,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.PREPARE:this.enterOuterAlt(e,1),this.state=857,this.prepareStatement();break;case t.EXECUTE:this.enterOuterAlt(e,2),this.state=858,this.executeStatement();break;case t.DROP:case t.DEALLOCATE:this.enterOuterAlt(e,3),this.state=859,this.deallocatePrepare();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}compoundStatement(){let e=new VC(this.context,this.state);this.enterRule(e,16,t.RULE_compoundStatement);try{switch(this.state=872,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,9,this.context)){case 1:this.enterOuterAlt(e,1),this.state=862,this.blockStatement();break;case 2:this.enterOuterAlt(e,2),this.state=863,this.caseStatement();break;case 3:this.enterOuterAlt(e,3),this.state=864,this.ifStatement();break;case 4:this.enterOuterAlt(e,4),this.state=865,this.leaveStatement();break;case 5:this.enterOuterAlt(e,5),this.state=866,this.loopStatement();break;case 6:this.enterOuterAlt(e,6),this.state=867,this.repeatStatement();break;case 7:this.enterOuterAlt(e,7),this.state=868,this.whileStatement();break;case 8:this.enterOuterAlt(e,8),this.state=869,this.iterateStatement();break;case 9:this.enterOuterAlt(e,9),this.state=870,this.returnStatement();break;case 10:this.enterOuterAlt(e,10),this.state=871,this.cursorStatement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}administrationStatement(){let e=new XC(this.context,this.state);this.enterRule(e,18,t.RULE_administrationStatement);try{switch(this.state=899,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,10,this.context)){case 1:this.enterOuterAlt(e,1),this.state=874,this.alterUser();break;case 2:this.enterOuterAlt(e,2),this.state=875,this.createUser();break;case 3:this.enterOuterAlt(e,3),this.state=876,this.dropUser();break;case 4:this.enterOuterAlt(e,4),this.state=877,this.grantStatement();break;case 5:this.enterOuterAlt(e,5),this.state=878,this.grantProxy();break;case 6:this.enterOuterAlt(e,6),this.state=879,this.renameUser();break;case 7:this.enterOuterAlt(e,7),this.state=880,this.revokeStatement();break;case 8:this.enterOuterAlt(e,8),this.state=881,this.revokeProxy();break;case 9:this.enterOuterAlt(e,9),this.state=882,this.analyzeTable();break;case 10:this.enterOuterAlt(e,10),this.state=883,this.checkTable();break;case 11:this.enterOuterAlt(e,11),this.state=884,this.checksumTable();break;case 12:this.enterOuterAlt(e,12),this.state=885,this.optimizeTable();break;case 13:this.enterOuterAlt(e,13),this.state=886,this.repairTable();break;case 14:this.enterOuterAlt(e,14),this.state=887,this.createUdfunction();break;case 15:this.enterOuterAlt(e,15),this.state=888,this.installPlugin();break;case 16:this.enterOuterAlt(e,16),this.state=889,this.uninstallPlugin();break;case 17:this.enterOuterAlt(e,17),this.state=890,this.setStatement();break;case 18:this.enterOuterAlt(e,18),this.state=891,this.showStatement();break;case 19:this.enterOuterAlt(e,19),this.state=892,this.binlogStatement();break;case 20:this.enterOuterAlt(e,20),this.state=893,this.cacheIndexStatement();break;case 21:this.enterOuterAlt(e,21),this.state=894,this.flushStatement();break;case 22:this.enterOuterAlt(e,22),this.state=895,this.killStatement();break;case 23:this.enterOuterAlt(e,23),this.state=896,this.loadIndexIntoCache();break;case 24:this.enterOuterAlt(e,24),this.state=897,this.resetStatement();break;case 25:this.enterOuterAlt(e,25),this.state=898,this.shutdownStatement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}utilityStatement(){let e=new KC(this.context,this.state);this.enterRule(e,20,t.RULE_utilityStatement);try{switch(this.state=908,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,11,this.context)){case 1:this.enterOuterAlt(e,1),this.state=901,this.simpleDescribeStatement();break;case 2:this.enterOuterAlt(e,2),this.state=902,this.fullDescribeStatement();break;case 3:this.enterOuterAlt(e,3),this.state=903,this.helpStatement();break;case 4:this.enterOuterAlt(e,4),this.state=904,this.useStatement();break;case 5:this.enterOuterAlt(e,5),this.state=905,this.signalStatement();break;case 6:this.enterOuterAlt(e,6),this.state=906,this.resignalStatement();break;case 7:this.enterOuterAlt(e,7),this.state=907,this.diagnosticsStatement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createDatabase(){let e,s=new QC(this.context,this.state);this.enterRule(s,22,t.RULE_createDatabase);try{if(this.enterOuterAlt(s,1),1===(this.state=910,this.match(t.CREATE),this.state=911,s._dbFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),39===e||150===e?(this.errorHandler.reportMatch(this),this.consume()):s._dbFormat=this.errorHandler.recoverInline(this),this.state=913,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,12,this.context)))this.state=912,this.ifNotExists();for(this.state=915,this.uid(),this.state=919,this.errorHandler.sync(this),e=this.tokenStream.LA(1);!(e-25&-32)&&1<<e-25&131077||134===e||222===e||405===e||841===e;)this.state=916,this.createDatabaseOption(),this.state=921,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createEvent(){let e,s=new JC(this.context,this.state);this.enterRule(s,24,t.RULE_createEvent);try{if(this.enterOuterAlt(s,1),1===(this.state=922,this.match(t.CREATE),this.state=924,this.errorHandler.sync(this),e=this.tokenStream.LA(1),392===e&&(this.state=923,this.ownerStatement()),this.state=926,this.match(t.EVENT),this.state=928,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,15,this.context)))this.state=927,this.ifNotExists();this.state=930,this.fullId(),this.state=931,this.match(t.ON),this.state=932,this.match(t.SCHEDULE),this.state=933,this.scheduleExpression(),this.state=940,this.errorHandler.sync(this),e=this.tokenStream.LA(1),118===e&&(this.state=934,this.match(t.ON),this.state=935,this.match(t.COMPLETION),this.state=937,this.errorHandler.sync(this),e=this.tokenStream.LA(1),114===e&&(this.state=936,this.match(t.NOT)),this.state=939,this.match(t.PRESERVE)),this.state=943,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(396===e||403===e)&&(this.state=942,this.enableType()),this.state=947,this.errorHandler.sync(this),e=this.tokenStream.LA(1),368===e&&(this.state=945,this.match(t.COMMENT),this.state=946,this.match(t.STRING_LITERAL)),this.state=949,this.match(t.DO),this.state=950,this.routineBody()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createIndex(){let e,s=new ZC(this.context,this.state);this.enterRule(s,26,t.RULE_createIndex);try{for(this.enterOuterAlt(s,1),this.state=952,this.match(t.CREATE),this.state=954,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(531===e||537===e)&&(this.state=953,s._intimeAction=this.tokenStream.LT(1),e=this.tokenStream.LA(1),531===e||537===e?(this.errorHandler.reportMatch(this),this.consume()):s._intimeAction=this.errorHandler.recoverInline(this)),this.state=957,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(69===e||159===e||181===e)&&(this.state=956,s._indexCategory=this.tokenStream.LT(1),e=this.tokenStream.LA(1),69===e||159===e||181===e?(this.errorHandler.reportMatch(this),this.consume()):s._indexCategory=this.errorHandler.recoverInline(this)),this.state=959,this.match(t.INDEX),this.state=960,this.uid(),this.state=962,this.errorHandler.sync(this),e=this.tokenStream.LA(1),187===e&&(this.state=961,this.indexType()),this.state=964,this.match(t.ON),this.state=965,this.tableName(),this.state=966,this.indexColumnNames(),this.state=970,this.errorHandler.sync(this),e=this.tokenStream.LA(1);187===e||192===e||368===e||459===e||467===e||673===e||875===e||1e3===e;)this.state=967,this.indexOption(),this.state=972,this.errorHandler.sync(this),e=this.tokenStream.LA(1);for(this.state=985,this.errorHandler.sync(this),e=this.tokenStream.LA(1);103===e||336===e;){switch(this.state=983,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ALGORITHM:this.state=973,this.match(t.ALGORITHM),this.state=975,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=974,this.match(t.EQUAL_SYMBOL)),this.state=977,s._algType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),42===e||384===e||454===e?(this.errorHandler.reportMatch(this),this.consume()):s._algType=this.errorHandler.recoverInline(this);break;case t.LOCK:this.state=978,this.match(t.LOCK),this.state=980,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=979,this.match(t.EQUAL_SYMBOL)),this.state=982,s._lockType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),42===e||419===e||529===e||611===e?(this.errorHandler.reportMatch(this),this.consume()):s._lockType=this.errorHandler.recoverInline(this);break;default:throw new Ei(this)}this.state=987,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createLogfileGroup(){let e,s=new qC(this.context,this.state);this.enterRule(s,28,t.RULE_createLogfileGroup);try{this.enterOuterAlt(s,1),this.state=988,this.match(t.CREATE),this.state=989,this.match(t.LOGFILE),this.state=990,this.match(t.GROUP),this.state=991,this.uid(),this.state=992,this.match(t.ADD),this.state=993,this.match(t.UNDOFILE),this.state=994,s._undoFile=this.match(t.STRING_LITERAL),this.state=1e3,this.errorHandler.sync(this),e=this.tokenStream.LA(1),453===e&&(this.state=995,this.match(t.INITIAL_SIZE),this.state=997,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=996,this.match(t.EQUAL_SYMBOL)),this.state=999,s._initSize=this.fileSizeLiteral()),this.state=1007,this.errorHandler.sync(this),e=this.tokenStream.LA(1),660===e&&(this.state=1002,this.match(t.UNDO_BUFFER_SIZE),this.state=1004,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1003,this.match(t.EQUAL_SYMBOL)),this.state=1006,s._undoSize=this.fileSizeLiteral()),this.state=1014,this.errorHandler.sync(this),e=this.tokenStream.LA(1),572===e&&(this.state=1009,this.match(t.REDO_BUFFER_SIZE),this.state=1011,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1010,this.match(t.EQUAL_SYMBOL)),this.state=1013,s._redoSize=this.fileSizeLiteral()),this.state=1021,this.errorHandler.sync(this),e=this.tokenStream.LA(1),528===e&&(this.state=1016,this.match(t.NODEGROUP),this.state=1018,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1017,this.match(t.EQUAL_SYMBOL)),this.state=1020,this.uid()),this.state=1024,this.errorHandler.sync(this),e=this.tokenStream.LA(1),674===e&&(this.state=1023,this.match(t.WAIT)),this.state=1031,this.errorHandler.sync(this),e=this.tokenStream.LA(1),368===e&&(this.state=1026,this.match(t.COMMENT),this.state=1028,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1027,this.match(t.EQUAL_SYMBOL)),this.state=1030,s._comment=this.match(t.STRING_LITERAL)),this.state=1033,this.match(t.ENGINE),this.state=1035,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1034,this.match(t.EQUAL_SYMBOL)),this.state=1037,this.engineName()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createProcedure(){let e,s=new jC(this.context,this.state);this.enterRule(s,30,t.RULE_createProcedure);try{let a;for(this.enterOuterAlt(s,1),this.state=1039,this.match(t.CREATE),this.state=1041,this.errorHandler.sync(this),e=this.tokenStream.LA(1),392===e&&(this.state=1040,this.ownerStatement()),this.state=1043,this.match(t.PROCEDURE),this.state=1044,this.fullId(),this.state=1045,this.match(t.LR_BRACKET),this.state=1047,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18880721||!(e-117&-32)&&1<<e-117&2172658065||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=1046,this.procedureParameter()),this.state=1053,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=1049,this.match(t.COMMA),this.state=1050,this.procedureParameter(),this.state=1055,this.errorHandler.sync(this),e=this.tokenStream.LA(1);for(this.state=1056,this.match(t.RR_BRACKET),this.state=1060,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,43,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=1057,this.routineOption()),this.state=1062,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,43,this.context);this.state=1063,this.routineBody()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createFunction(){let e,s=new zC(this.context,this.state);this.enterRule(s,32,t.RULE_createFunction);try{let a;if(this.enterOuterAlt(s,1),1===(this.state=1065,this.match(t.CREATE),this.state=1067,this.errorHandler.sync(this),e=this.tokenStream.LA(1),392===e&&(this.state=1066,this.ownerStatement()),this.state=1070,this.errorHandler.sync(this),e=this.tokenStream.LA(1),335===e&&(this.state=1069,this.match(t.AGGREGATE)),this.state=1072,this.match(t.FUNCTION),this.state=1074,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,46,this.context)))this.state=1073,this.ifNotExists();for(this.state=1076,this.fullId(),this.state=1077,this.match(t.LR_BRACKET),this.state=1079,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=1078,this.functionParameter()),this.state=1085,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=1081,this.match(t.COMMA),this.state=1082,this.functionParameter(),this.state=1087,this.errorHandler.sync(this),e=this.tokenStream.LA(1);for(this.state=1088,this.match(t.RR_BRACKET),this.state=1089,this.match(t.RETURNS),this.state=1090,this.dataType(),this.state=1094,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,49,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=1091,this.routineOption()),this.state=1096,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,49,this.context);switch(this.state=1099,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ALTER:case t.ANALYZE:case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CALL:case t.CHANGE:case t.CHECK:case t.CONDITION:case t.CREATE:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DIAGNOSTICS:case t.DROP:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.EXPLAIN:case t.GET:case t.GRANT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.KILL:case t.LATERAL:case t.LEFT:case t.LOAD:case t.LOCK:case t.NUMBER:case t.OPTIMIZE:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.PURGE:case t.RELEASE:case t.RENAME:case t.REPEAT:case t.REPLACE:case t.RESIGNAL:case t.REVOKE:case t.RIGHT:case t.SCHEMA:case t.SELECT:case t.SET:case t.SHOW:case t.SIGNAL:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.TABLE:case t.UNLOCK:case t.UPDATE:case t.USE:case t.VALUES:case t.WITH:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.LR_BRACKET:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:this.state=1097,this.routineBody();break;case t.RETURN:this.state=1098,this.returnStatement();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createRole(){let e=new $C(this.context,this.state);this.enterRule(e,34,t.RULE_createRole);try{if(this.enterOuterAlt(e,1),1===(this.state=1101,this.match(t.CREATE),this.state=1102,this.match(t.ROLE),this.state=1104,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,51,this.context)))this.state=1103,this.ifNotExists();this.state=1106,this.newRoleNameList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createServer(){let e,s=new t_(this.context,this.state);this.enterRule(s,36,t.RULE_createServer);try{for(this.enterOuterAlt(s,1),this.state=1108,this.match(t.CREATE),this.state=1109,this.match(t.SERVER),this.state=1110,this.uid(),this.state=1111,this.match(t.FOREIGN),this.state=1112,this.match(t.DATA),this.state=1113,this.match(t.WRAPPER),this.state=1114,s._wrapperName=this.tokenStream.LT(1),e=this.tokenStream.LA(1),514===e||1148===e?(this.errorHandler.reportMatch(this),this.consume()):s._wrapperName=this.errorHandler.recoverInline(this),this.state=1115,this.match(t.OPTIONS),this.state=1116,this.match(t.LR_BRACKET),this.state=1117,this.serverOption(),this.state=1122,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=1118,this.match(t.COMMA),this.state=1119,this.serverOption(),this.state=1124,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=1125,this.match(t.RR_BRACKET)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createTable(){let e,s=new e_(this.context,this.state);this.enterRule(s,38,t.RULE_createTable);try{switch(this.state=1205,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,71,this.context)){case 1:if(s=new s_(s),this.enterOuterAlt(s,1),1===(this.state=1127,this.match(t.CREATE),this.state=1129,this.errorHandler.sync(this),e=this.tokenStream.LA(1),649===e&&(this.state=1128,this.match(t.TEMPORARY)),this.state=1131,this.match(t.TABLE),this.state=1133,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,54,this.context)))this.state=1132,this.ifNotExists();switch(this.state=1135,this.tableName(),this.state=1143,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LIKE:this.state=1136,this.match(t.LIKE),this.state=1137,this.tableName();break;case t.LR_BRACKET:this.state=1138,this.match(t.LR_BRACKET),this.state=1139,this.match(t.LIKE),this.state=1140,s._parenthesisTable=this.tableName(),this.state=1141,this.match(t.RR_BRACKET);break;default:throw new Ei(this)}break;case 2:if(s=new r_(s),this.enterOuterAlt(s,2),1===(this.state=1145,this.match(t.CREATE),this.state=1147,this.errorHandler.sync(this),e=this.tokenStream.LA(1),649===e&&(this.state=1146,this.match(t.TEMPORARY)),this.state=1149,this.match(t.TABLE),this.state=1151,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,57,this.context)))this.state=1150,this.ifNotExists();if(1===(this.state=1153,this.tableName(),this.state=1155,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,58,this.context)))this.state=1154,this.createDefinitions();if(this.state=1167,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-25&-32)&&1<<e-25&131077||81===e||180===e||222===e||!(e-341&-32)&&1<<e-341&134316039||!(e-373&-32)&&1<<e-373&1081353||!(e-405&-32)&&1<<e-405&19||455===e||467===e||500===e||510===e||!(e-543&-32)&&1<<e-543&269||!(e-602&-32)&&1<<e-602&3892314113||!(e-636&-32)&&1<<e-636&268289||841===e||875===e||1e3===e||1148===e)for(this.state=1157,this.tableOption(),this.state=1164,this.errorHandler.sync(this),e=this.tokenStream.LA(1);!(e-25&-32)&&1<<e-25&131077||81===e||180===e||222===e||!(e-341&-32)&&1<<e-341&134316039||!(e-373&-32)&&1<<e-373&1081353||!(e-405&-32)&&1<<e-405&19||455===e||467===e||500===e||510===e||!(e-543&-32)&&1<<e-543&269||!(e-602&-32)&&1<<e-602&3892314113||!(e-636&-32)&&1<<e-636&268289||841===e||875===e||1e3===e||1135===e||1148===e;)this.state=1159,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1135===e&&(this.state=1158,this.match(t.COMMA)),this.state=1161,this.tableOption(),this.state=1166,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=1170,this.errorHandler.sync(this),e=this.tokenStream.LA(1),129===e&&(this.state=1169,this.partitionDefinitions()),this.state=1173,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(78===e||141===e)&&(this.state=1172,s._keyViolate=this.tokenStream.LT(1),e=this.tokenStream.LA(1),78===e||141===e?(this.errorHandler.reportMatch(this),this.consume()):s._keyViolate=this.errorHandler.recoverInline(this)),this.state=1176,this.errorHandler.sync(this),e=this.tokenStream.LA(1),12===e&&(this.state=1175,this.match(t.AS)),this.state=1178,this.selectStatement();break;case 3:if(s=new a_(s),this.enterOuterAlt(s,3),1===(this.state=1180,this.match(t.CREATE),this.state=1182,this.errorHandler.sync(this),e=this.tokenStream.LA(1),649===e&&(this.state=1181,this.match(t.TEMPORARY)),this.state=1184,this.match(t.TABLE),this.state=1186,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,66,this.context)))this.state=1185,this.ifNotExists();if(this.state=1188,this.tableName(),this.state=1189,this.createDefinitions(),this.state=1200,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-25&-32)&&1<<e-25&131077||81===e||180===e||222===e||!(e-341&-32)&&1<<e-341&134316039||!(e-373&-32)&&1<<e-373&1081353||!(e-405&-32)&&1<<e-405&19||455===e||467===e||500===e||510===e||!(e-543&-32)&&1<<e-543&269||!(e-602&-32)&&1<<e-602&3892314113||!(e-636&-32)&&1<<e-636&268289||841===e||875===e||1e3===e||1148===e)for(this.state=1190,this.tableOption(),this.state=1197,this.errorHandler.sync(this),e=this.tokenStream.LA(1);!(e-25&-32)&&1<<e-25&131077||81===e||180===e||222===e||!(e-341&-32)&&1<<e-341&134316039||!(e-373&-32)&&1<<e-373&1081353||!(e-405&-32)&&1<<e-405&19||455===e||467===e||500===e||510===e||!(e-543&-32)&&1<<e-543&269||!(e-602&-32)&&1<<e-602&3892314113||!(e-636&-32)&&1<<e-636&268289||841===e||875===e||1e3===e||1135===e||1148===e;)this.state=1192,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1135===e&&(this.state=1191,this.match(t.COMMA)),this.state=1194,this.tableOption(),this.state=1199,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=1203,this.errorHandler.sync(this),e=this.tokenStream.LA(1),129===e&&(this.state=1202,this.partitionDefinitions())}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createTablespaceInnodb(){let e,s=new i_(this.context,this.state);this.enterRule(s,40,t.RULE_createTablespaceInnodb);try{this.enterOuterAlt(s,1),this.state=1207,this.match(t.CREATE),this.state=1208,this.match(t.TABLESPACE),this.state=1209,this.uid(),this.state=1210,this.match(t.ADD),this.state=1211,this.match(t.DATAFILE),this.state=1212,s._datafile=this.match(t.STRING_LITERAL),this.state=1216,this.errorHandler.sync(this),e=this.tokenStream.LA(1),428===e&&(this.state=1213,this.match(t.FILE_BLOCK_SIZE),this.state=1214,this.match(t.EQUAL_SYMBOL),this.state=1215,s._fileBlockSize=this.fileSizeLiteral()),this.state=1223,this.errorHandler.sync(this),e=this.tokenStream.LA(1),409===e&&(this.state=1218,this.match(t.ENGINE),this.state=1220,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1219,this.match(t.EQUAL_SYMBOL)),this.state=1222,this.engineName())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createTablespaceNdb(){let e,s=new c_(this.context,this.state);this.enterRule(s,42,t.RULE_createTablespaceNdb);try{this.enterOuterAlt(s,1),this.state=1225,this.match(t.CREATE),this.state=1226,this.match(t.TABLESPACE),this.state=1227,this.uid(),this.state=1228,this.match(t.ADD),this.state=1229,this.match(t.DATAFILE),this.state=1230,s._datafile=this.match(t.STRING_LITERAL),this.state=1231,this.match(t.USE),this.state=1232,this.match(t.LOGFILE),this.state=1233,this.match(t.GROUP),this.state=1234,this.uid(),this.state=1240,this.errorHandler.sync(this),e=this.tokenStream.LA(1),423===e&&(this.state=1235,this.match(t.EXTENT_SIZE),this.state=1237,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1236,this.match(t.EQUAL_SYMBOL)),this.state=1239,s._extentSize=this.fileSizeLiteral()),this.state=1247,this.errorHandler.sync(this),e=this.tokenStream.LA(1),453===e&&(this.state=1242,this.match(t.INITIAL_SIZE),this.state=1244,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1243,this.match(t.EQUAL_SYMBOL)),this.state=1246,s._initialSize=this.fileSizeLiteral()),this.state=1254,this.errorHandler.sync(this),e=this.tokenStream.LA(1),341===e&&(this.state=1249,this.match(t.AUTOEXTEND_SIZE),this.state=1251,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1250,this.match(t.EQUAL_SYMBOL)),this.state=1253,s._autoextendSize=this.fileSizeLiteral()),this.state=1261,this.errorHandler.sync(this),e=this.tokenStream.LA(1),501===e&&(this.state=1256,this.match(t.MAX_SIZE),this.state=1258,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1257,this.match(t.EQUAL_SYMBOL)),this.state=1260,s._maxSize=this.fileSizeLiteral()),this.state=1268,this.errorHandler.sync(this),e=this.tokenStream.LA(1),528===e&&(this.state=1263,this.match(t.NODEGROUP),this.state=1265,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1264,this.match(t.EQUAL_SYMBOL)),this.state=1267,this.uid()),this.state=1271,this.errorHandler.sync(this),e=this.tokenStream.LA(1),674===e&&(this.state=1270,this.match(t.WAIT)),this.state=1278,this.errorHandler.sync(this),e=this.tokenStream.LA(1),368===e&&(this.state=1273,this.match(t.COMMENT),this.state=1275,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1274,this.match(t.EQUAL_SYMBOL)),this.state=1277,s._comment=this.match(t.STRING_LITERAL)),this.state=1280,this.match(t.ENGINE),this.state=1282,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1281,this.match(t.EQUAL_SYMBOL)),this.state=1284,this.engineName()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createTrigger(){let e,s=new n_(this.context,this.state);this.enterRule(s,44,t.RULE_createTrigger);try{if(this.enterOuterAlt(s,1),1===(this.state=1286,this.match(t.CREATE),this.state=1288,this.errorHandler.sync(this),e=this.tokenStream.LA(1),392===e&&(this.state=1287,this.ownerStatement()),this.state=1290,this.match(t.TRIGGER),this.state=1292,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,90,this.context)))this.state=1291,this.ifNotExists();if(1===(this.state=1294,s._thisTrigger=this.fullId(),this.state=1295,s._triggerTime=this.tokenStream.LT(1),e=this.tokenStream.LA(1),15===e||334===e?(this.errorHandler.reportMatch(this),this.consume()):s._triggerTime=this.errorHandler.recoverInline(this),this.state=1296,s._triggerEvent=this.tokenStream.LT(1),e=this.tokenStream.LA(1),44===e||85===e||184===e?(this.errorHandler.reportMatch(this),this.consume()):s._triggerEvent=this.errorHandler.recoverInline(this),this.state=1297,this.match(t.ON),this.state=1298,this.tableName(),this.state=1299,this.match(t.FOR),this.state=1300,this.match(t.EACH),this.state=1301,this.match(t.ROW),this.state=1304,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,91,this.context)))this.state=1302,s._triggerPlace=this.tokenStream.LT(1),e=this.tokenStream.LA(1),434===e||558===e?(this.errorHandler.reportMatch(this),this.consume()):s._triggerPlace=this.errorHandler.recoverInline(this),this.state=1303,s._otherTrigger=this.fullId();this.state=1306,this.routineBody()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}withClause(){let e=new h_(this.context,this.state);this.enterRule(e,46,t.RULE_withClause);try{if(this.enterOuterAlt(e,1),1===(this.state=1308,this.match(t.WITH),this.state=1310,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,92,this.context)))this.state=1309,this.match(t.RECURSIVE);this.state=1312,this.commonTableExpressions()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}commonTableExpressions(){let e,s=new E_(this.context,this.state);this.enterRule(s,48,t.RULE_commonTableExpressions);try{if(this.enterOuterAlt(s,1),this.state=1314,this.cteName(),this.state=1326,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e){for(this.state=1315,this.match(t.LR_BRACKET),this.state=1316,this.cteColumnName(),this.state=1321,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=1317,this.match(t.COMMA),this.state=1318,this.cteColumnName(),this.state=1323,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=1324,this.match(t.RR_BRACKET)}if(1===(this.state=1328,this.match(t.AS),this.state=1329,this.match(t.LR_BRACKET),this.state=1330,this.dmlStatement(),this.state=1331,this.match(t.RR_BRACKET),this.state=1334,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,95,this.context)))this.state=1332,this.match(t.COMMA),this.state=1333,this.commonTableExpressions()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}cteName(){let e=new T_(this.context,this.state);this.enterRule(e,50,t.RULE_cteName);try{this.enterOuterAlt(e,1),this.state=1336,this.uid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}cteColumnName(){let e=new o_(this.context,this.state);this.enterRule(e,52,t.RULE_cteColumnName);try{this.enterOuterAlt(e,1),this.state=1338,this.uid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createView(){let e,s=new R_(this.context,this.state);this.enterRule(s,54,t.RULE_createView);try{switch(this.enterOuterAlt(s,1),this.state=1340,this.match(t.CREATE),this.state=1342,this.errorHandler.sync(this),e=this.tokenStream.LA(1),123===e&&(this.state=1341,this.orReplace()),this.state=1347,this.errorHandler.sync(this),e=this.tokenStream.LA(1),336===e&&(this.state=1344,this.match(t.ALGORITHM),this.state=1345,this.match(t.EQUAL_SYMBOL),this.state=1346,s._algType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),506===e||650===e||658===e?(this.errorHandler.reportMatch(this),this.consume()):s._algType=this.errorHandler.recoverInline(this)),this.state=1350,this.errorHandler.sync(this),e=this.tokenStream.LA(1),392===e&&(this.state=1349,this.ownerStatement()),this.state=1355,this.errorHandler.sync(this),e=this.tokenStream.LA(1),160===e&&(this.state=1352,this.match(t.SQL),this.state=1353,this.match(t.SECURITY),this.state=1354,s._secContext=this.tokenStream.LT(1),e=this.tokenStream.LA(1),392===e||460===e?(this.errorHandler.reportMatch(this),this.consume()):s._secContext=this.errorHandler.recoverInline(this)),this.state=1357,this.match(t.VIEW),this.state=1358,this.fullId(),this.state=1363,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e&&(this.state=1359,this.match(t.LR_BRACKET),this.state=1360,this.uidList(),this.state=1361,this.match(t.RR_BRACKET)),this.state=1365,this.match(t.AS),this.state=1385,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,105,this.context)){case 1:this.state=1366,this.match(t.LR_BRACKET),this.state=1368,this.errorHandler.sync(this),e=this.tokenStream.LA(1),192===e&&(this.state=1367,this.withClause()),this.state=1370,this.selectStatement(),this.state=1371,this.match(t.RR_BRACKET);break;case 2:this.state=1374,this.errorHandler.sync(this),e=this.tokenStream.LA(1),192===e&&(this.state=1373,this.withClause()),this.state=1376,this.selectStatement(),this.state=1383,this.errorHandler.sync(this),e=this.tokenStream.LA(1),192===e&&(this.state=1377,this.match(t.WITH),this.state=1379,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(352===e||474===e)&&(this.state=1378,s._checkOption=this.tokenStream.LT(1),e=this.tokenStream.LA(1),352===e||474===e?(this.errorHandler.reportMatch(this),this.consume()):s._checkOption=this.errorHandler.recoverInline(this)),this.state=1381,this.match(t.CHECK),this.state=1382,this.match(t.OPTION))}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createDatabaseOption(){let e,s=new A_(this.context,this.state);this.enterRule(s,56,t.RULE_createDatabaseOption);try{switch(this.state=1420,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,114,this.context)){case 1:switch(this.enterOuterAlt(s,1),this.state=1388,this.errorHandler.sync(this),e=this.tokenStream.LA(1),42===e&&(this.state=1387,this.match(t.DEFAULT)),this.state=1390,this.charSet(),this.state=1392,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1391,this.match(t.EQUAL_SYMBOL)),this.state=1396,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.BINARY:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:this.state=1394,this.charsetName();break;case t.DEFAULT:this.state=1395,this.match(t.DEFAULT);break;default:throw new Ei(this)}break;case 2:this.enterOuterAlt(s,2),this.state=1399,this.errorHandler.sync(this),e=this.tokenStream.LA(1),42===e&&(this.state=1398,this.match(t.DEFAULT)),this.state=1401,this.match(t.COLLATE),this.state=1403,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1402,this.match(t.EQUAL_SYMBOL)),this.state=1405,this.collationName();break;case 3:this.enterOuterAlt(s,3),this.state=1407,this.errorHandler.sync(this),e=this.tokenStream.LA(1),42===e&&(this.state=1406,this.match(t.DEFAULT)),this.state=1409,this.match(t.ENCRYPTION),this.state=1411,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1410,this.match(t.EQUAL_SYMBOL)),this.state=1413,this.match(t.STRING_LITERAL);break;case 4:this.enterOuterAlt(s,4),this.state=1414,this.match(t.READ),this.state=1415,this.match(t.ONLY),this.state=1417,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1416,this.match(t.EQUAL_SYMBOL)),this.state=1419,e=this.tokenStream.LA(1),42===e||1138===e||1139===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}charSet(){let e=new S_(this.context,this.state);this.enterRule(e,58,t.RULE_charSet);try{switch(this.state=1427,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CHARACTER:this.enterOuterAlt(e,1),this.state=1422,this.match(t.CHARACTER),this.state=1423,this.match(t.SET);break;case t.CHARSET:this.enterOuterAlt(e,2),this.state=1424,this.match(t.CHARSET);break;case t.CHAR:this.enterOuterAlt(e,3),this.state=1425,this.match(t.CHAR),this.state=1426,this.match(t.SET);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}currentUserExpression(){let e=new l_(this.context,this.state);this.enterRule(e,60,t.RULE_currentUserExpression);try{if(1===(this.enterOuterAlt(e,1),this.state=1429,this.match(t.CURRENT_USER),this.state=1432,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,116,this.context)))this.state=1430,this.match(t.LR_BRACKET),this.state=1431,this.match(t.RR_BRACKET)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}ownerStatement(){let e=new O_(this.context,this.state);this.enterRule(e,62,t.RULE_ownerStatement);try{switch(this.enterOuterAlt(e,1),this.state=1434,this.match(t.DEFINER),this.state=1435,this.match(t.EQUAL_SYMBOL),this.state=1438,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,117,this.context)){case 1:this.state=1436,this.userName();break;case 2:this.state=1437,this.currentUserExpression()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}scheduleExpression(){let e,s=new I_(this.context,this.state);this.enterRule(s,64,t.RULE_scheduleExpression);try{switch(this.state=1474,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AT:for(s=new u_(s),this.enterOuterAlt(s,1),this.state=1440,this.match(t.AT),this.state=1441,this.timestampValue(),this.state=1445,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1120===e;)this.state=1442,this.intervalExpr(),this.state=1447,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case t.EVERY:switch(s=new N_(s),this.enterOuterAlt(s,2),this.state=1448,this.match(t.EVERY),this.state=1451,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,119,this.context)){case 1:this.state=1449,this.decimalLiteral();break;case 2:this.state=1450,this.expression(0)}if(this.state=1453,this.intervalType(),this.state=1462,this.errorHandler.sync(this),e=this.tokenStream.LA(1),630===e)for(this.state=1454,this.match(t.STARTS),this.state=1455,s._startTimestamp=this.timestampValue(),this.state=1459,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1120===e;)this.state=1456,s._intervalExpr=this.intervalExpr(),s._startIntervals.push(s._intervalExpr),this.state=1461,this.errorHandler.sync(this),e=this.tokenStream.LA(1);if(this.state=1472,this.errorHandler.sync(this),e=this.tokenStream.LA(1),408===e)for(this.state=1464,this.match(t.ENDS),this.state=1465,s._endTimestamp=this.timestampValue(),this.state=1469,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1120===e;)this.state=1466,s._intervalExpr=this.intervalExpr(),s._endIntervals.push(s._intervalExpr),this.state=1471,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}timestampValue(){let e=new L_(this.context,this.state);this.enterRule(e,66,t.RULE_timestampValue);try{switch(this.state=1480,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,125,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1476,this.match(t.CURRENT_TIMESTAMP);break;case 2:this.enterOuterAlt(e,2),this.state=1477,this.stringLiteral();break;case 3:this.enterOuterAlt(e,3),this.state=1478,this.decimalLiteral();break;case 4:this.enterOuterAlt(e,4),this.state=1479,this.expression(0)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}intervalExpr(){let e=new C_(this.context,this.state);this.enterRule(e,68,t.RULE_intervalExpr);try{switch(this.enterOuterAlt(e,1),this.state=1482,this.match(t.PLUS),this.state=1483,this.match(t.INTERVAL),this.state=1486,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,126,this.context)){case 1:this.state=1484,this.decimalLiteral();break;case 2:this.state=1485,this.expression(0)}this.state=1488,this.intervalType()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}intervalType(){let e=new __(this.context,this.state);this.enterRule(e,70,t.RULE_intervalType);try{switch(this.state=1503,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:this.enterOuterAlt(e,1),this.state=1490,this.intervalTypeBase();break;case t.YEAR:this.enterOuterAlt(e,2),this.state=1491,this.match(t.YEAR);break;case t.YEAR_MONTH:this.enterOuterAlt(e,3),this.state=1492,this.match(t.YEAR_MONTH);break;case t.DAY_HOUR:this.enterOuterAlt(e,4),this.state=1493,this.match(t.DAY_HOUR);break;case t.DAY_MINUTE:this.enterOuterAlt(e,5),this.state=1494,this.match(t.DAY_MINUTE);break;case t.DAY_SECOND:this.enterOuterAlt(e,6),this.state=1495,this.match(t.DAY_SECOND);break;case t.HOUR_MINUTE:this.enterOuterAlt(e,7),this.state=1496,this.match(t.HOUR_MINUTE);break;case t.HOUR_SECOND:this.enterOuterAlt(e,8),this.state=1497,this.match(t.HOUR_SECOND);break;case t.MINUTE_SECOND:this.enterOuterAlt(e,9),this.state=1498,this.match(t.MINUTE_SECOND);break;case t.SECOND_MICROSECOND:this.enterOuterAlt(e,10),this.state=1499,this.match(t.SECOND_MICROSECOND);break;case t.MINUTE_MICROSECOND:this.enterOuterAlt(e,11),this.state=1500,this.match(t.MINUTE_MICROSECOND);break;case t.HOUR_MICROSECOND:this.enterOuterAlt(e,12),this.state=1501,this.match(t.HOUR_MICROSECOND);break;case t.DAY_MICROSECOND:this.enterOuterAlt(e,13),this.state=1502,this.match(t.DAY_MICROSECOND);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}enableType(){let e=new P_(this.context,this.state);this.enterRule(e,72,t.RULE_enableType);try{switch(this.state=1510,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,128,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1505,this.match(t.ENABLE);break;case 2:this.enterOuterAlt(e,2),this.state=1506,this.match(t.DISABLE);break;case 3:this.enterOuterAlt(e,3),this.state=1507,this.match(t.DISABLE),this.state=1508,this.match(t.ON),this.state=1509,this.match(t.SLAVE)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}indexType(){let e,s=new M_(this.context,this.state);this.enterRule(s,74,t.RULE_indexType);try{this.enterOuterAlt(s,1),this.state=1512,this.match(t.USING),this.state=1513,e=this.tokenStream.LA(1),350===e||443===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}indexOption(){let e,s=new d_(this.context,this.state);this.enterRule(s,76,t.RULE_indexOption);try{switch(this.state=1537,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.KEY_BLOCK_SIZE:this.enterOuterAlt(s,1),this.state=1515,this.match(t.KEY_BLOCK_SIZE),this.state=1517,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1516,this.match(t.EQUAL_SYMBOL)),this.state=1519,this.fileSizeLiteral();break;case t.USING:this.enterOuterAlt(s,2),this.state=1520,this.indexType();break;case t.WITH:this.enterOuterAlt(s,3),this.state=1521,this.match(t.WITH),this.state=1522,this.match(t.PARSER),this.state=1523,this.uid();break;case t.COMMENT:this.enterOuterAlt(s,4),this.state=1524,this.match(t.COMMENT),this.state=1525,this.match(t.STRING_LITERAL);break;case t.INVISIBLE:case t.VISIBLE:this.enterOuterAlt(s,5),this.state=1526,e=this.tokenStream.LA(1),459===e||673===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case t.ENGINE_ATTRIBUTE:this.enterOuterAlt(s,6),this.state=1527,this.match(t.ENGINE_ATTRIBUTE),this.state=1529,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1528,this.match(t.EQUAL_SYMBOL)),this.state=1531,this.match(t.STRING_LITERAL);break;case t.SECONDARY_ENGINE_ATTRIBUTE:this.enterOuterAlt(s,7),this.state=1532,this.match(t.SECONDARY_ENGINE_ATTRIBUTE),this.state=1534,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1533,this.match(t.EQUAL_SYMBOL)),this.state=1536,this.match(t.STRING_LITERAL);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}procedureParameter(){let e,s=new U_(this.context,this.state);this.enterRule(s,78,t.RULE_procedureParameter);try{this.enterOuterAlt(s,1),this.state=1540,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(80===e||84===e||125===e)&&(this.state=1539,s._direction=this.tokenStream.LT(1),e=this.tokenStream.LA(1),80===e||84===e||125===e?(this.errorHandler.reportMatch(this),this.consume()):s._direction=this.errorHandler.recoverInline(this)),this.state=1542,this.uid(),this.state=1543,this.dataType()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}functionParameter(){let e=new m_(this.context,this.state);this.enterRule(e,80,t.RULE_functionParameter);try{this.enterOuterAlt(e,1),this.state=1545,this.uid(),this.state=1546,this.dataType()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}routineOption(){let e,s=new D_(this.context,this.state);this.enterRule(s,82,t.RULE_routineOption);try{switch(this.state=1571,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.COMMENT:s=new x_(s),this.enterOuterAlt(s,1),this.state=1548,this.match(t.COMMENT),this.state=1549,this.match(t.STRING_LITERAL);break;case t.LANGUAGE:s=new g_(s),this.enterOuterAlt(s,2),this.state=1550,this.match(t.LANGUAGE),this.state=1551,this.match(t.SQL);break;case t.DETERMINISTIC:case t.NOT:s=new p_(s),this.enterOuterAlt(s,3),this.state=1553,this.errorHandler.sync(this),e=this.tokenStream.LA(1),114===e&&(this.state=1552,this.match(t.NOT)),this.state=1555,this.match(t.DETERMINISTIC);break;case t.MODIFIES:case t.READS:case t.CONTAINS:case t.NO:switch(s=new H_(s),this.enterOuterAlt(s,4),this.state=1566,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CONTAINS:this.state=1556,this.match(t.CONTAINS),this.state=1557,this.match(t.SQL);break;case t.NO:this.state=1558,this.match(t.NO),this.state=1559,this.match(t.SQL);break;case t.READS:this.state=1560,this.match(t.READS),this.state=1561,this.match(t.SQL),this.state=1562,this.match(t.DATA);break;case t.MODIFIES:this.state=1563,this.match(t.MODIFIES),this.state=1564,this.match(t.SQL),this.state=1565,this.match(t.DATA);break;default:throw new Ei(this)}break;case t.SQL:s=new k_(s),this.enterOuterAlt(s,5),this.state=1568,this.match(t.SQL),this.state=1569,this.match(t.SECURITY),this.state=1570,s._context=this.tokenStream.LT(1),e=this.tokenStream.LA(1),392===e||460===e?(this.errorHandler.reportMatch(this),this.consume()):s._context=this.errorHandler.recoverInline(this);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}serverOption(){let e=new G_(this.context,this.state);this.enterRule(e,84,t.RULE_serverOption);try{switch(this.state=1587,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.HOST:this.enterOuterAlt(e,1),this.state=1573,this.match(t.HOST),this.state=1574,this.match(t.STRING_LITERAL);break;case t.DATABASE:this.enterOuterAlt(e,2),this.state=1575,this.match(t.DATABASE),this.state=1576,this.match(t.STRING_LITERAL);break;case t.USER:this.enterOuterAlt(e,3),this.state=1577,this.match(t.USER),this.state=1578,this.match(t.STRING_LITERAL);break;case t.PASSWORD:this.enterOuterAlt(e,4),this.state=1579,this.match(t.PASSWORD),this.state=1580,this.match(t.STRING_LITERAL);break;case t.SOCKET:this.enterOuterAlt(e,5),this.state=1581,this.match(t.SOCKET),this.state=1582,this.match(t.STRING_LITERAL);break;case t.OWNER:this.enterOuterAlt(e,6),this.state=1583,this.match(t.OWNER),this.state=1584,this.match(t.STRING_LITERAL);break;case t.PORT:this.enterOuterAlt(e,7),this.state=1585,this.match(t.PORT),this.state=1586,this.decimalLiteral();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createDefinitions(){let e,s=new F_(this.context,this.state);this.enterRule(s,86,t.RULE_createDefinitions);try{for(this.enterOuterAlt(s,1),this.state=1589,this.match(t.LR_BRACKET),this.state=1590,this.createDefinition(),this.state=1595,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=1591,this.match(t.COMMA),this.state=1592,this.createDefinition(),this.state=1597,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=1598,this.match(t.RR_BRACKET)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createDefinition(){let e,s=new v_(this.context,this.state);this.enterRule(s,88,t.RULE_createDefinition);try{switch(this.state=1611,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,141,this.context)){case 1:s=new B_(s),this.enterOuterAlt(s,1),this.state=1600,this.fullColumnName(),this.state=1601,this.columnDefinition();break;case 2:s=new y_(s),this.enterOuterAlt(s,2),this.state=1603,this.tableConstraint(),this.state=1605,this.errorHandler.sync(this),e=this.tokenStream.LA(1),114===e&&(this.state=1604,this.match(t.NOT)),this.state=1608,this.errorHandler.sync(this),e=this.tokenStream.LA(1),57===e&&(this.state=1607,this.match(t.ENFORCED));break;case 3:s=new f_(s),this.enterOuterAlt(s,3),this.state=1610,this.indexColumnDefinition()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}columnDefinition(){let e,s=new Y_(this.context,this.state);this.enterRule(s,90,t.RULE_columnDefinition);try{let a;for(this.enterOuterAlt(s,1),this.state=1613,this.dataType(),this.state=1617,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,142,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=1614,this.columnConstraint()),this.state=1619,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,142,this.context);this.state=1621,this.errorHandler.sync(this),e=this.tokenStream.LA(1),114===e&&(this.state=1620,this.match(t.NOT)),this.state=1624,this.errorHandler.sync(this),e=this.tokenStream.LA(1),57===e&&(this.state=1623,this.match(t.ENFORCED))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}columnConstraint(){let e,s=new w_(this.context,this.state);this.enterRule(s,92,t.RULE_columnConstraint);try{switch(this.state=1679,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NOT:case t.NULL_LITERAL:case t.NULL_SPEC_LITERAL:s=new $_(s),this.enterOuterAlt(s,1),this.state=1626,this.nullNotnull();break;case t.DEFAULT:s=new tP(s),this.enterOuterAlt(s,2),this.state=1627,this.match(t.DEFAULT),this.state=1628,this.defaultValue();break;case t.VISIBLE:s=new W_(s),this.enterOuterAlt(s,3),this.state=1629,this.match(t.VISIBLE);break;case t.INVISIBLE:s=new sP(s),this.enterOuterAlt(s,4),this.state=1630,this.match(t.INVISIBLE);break;case t.ON:case t.AUTO_INCREMENT:switch(s=new V_(s),this.enterOuterAlt(s,5),this.state=1635,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AUTO_INCREMENT:this.state=1631,this.match(t.AUTO_INCREMENT);break;case t.ON:this.state=1632,this.match(t.ON),this.state=1633,this.match(t.UPDATE),this.state=1634,this.currentTimestamp();break;default:throw new Ei(this)}break;case t.KEY:case t.PRIMARY:s=new j_(s),this.enterOuterAlt(s,6),this.state=1638,this.errorHandler.sync(this),e=this.tokenStream.LA(1),130===e&&(this.state=1637,this.match(t.PRIMARY)),this.state=1640,this.match(t.KEY);break;case t.UNIQUE:if(1===(s=new K_(s),this.enterOuterAlt(s,7),this.state=1641,this.match(t.UNIQUE),this.state=1643,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,147,this.context)))this.state=1642,this.match(t.KEY);break;case t.COMMENT:s=new X_(s),this.enterOuterAlt(s,8),this.state=1645,this.match(t.COMMENT),this.state=1646,this.match(t.STRING_LITERAL);break;case t.COLUMN_FORMAT:s=new Z_(s),this.enterOuterAlt(s,9),this.state=1647,this.match(t.COLUMN_FORMAT),this.state=1648,s._colformat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),42===e||402===e||431===e?(this.errorHandler.reportMatch(this),this.consume()):s._colformat=this.errorHandler.recoverInline(this);break;case t.STORAGE:s=new b_(s),this.enterOuterAlt(s,10),this.state=1649,this.match(t.STORAGE),this.state=1650,s._storageval=this.tokenStream.LT(1),e=this.tokenStream.LA(1),42===e||398===e||792===e?(this.errorHandler.reportMatch(this),this.consume()):s._storageval=this.errorHandler.recoverInline(this);break;case t.REFERENCES:s=new eP(s),this.enterOuterAlt(s,11),this.state=1651,this.referenceDefinition();break;case t.COLLATE:s=new q_(s),this.enterOuterAlt(s,12),this.state=1652,this.match(t.COLLATE),this.state=1653,this.collationName();break;case t.AS:case t.GENERATED:s=new J_(s),this.enterOuterAlt(s,13),this.state=1656,this.errorHandler.sync(this),e=this.tokenStream.LA(1),70===e&&(this.state=1654,this.match(t.GENERATED),this.state=1655,this.match(t.ALWAYS)),this.state=1658,this.match(t.AS),this.state=1659,this.match(t.LR_BRACKET),this.state=1660,this.expression(0),this.state=1661,this.match(t.RR_BRACKET),this.state=1663,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(637===e||672===e)&&(this.state=1662,e=this.tokenStream.LA(1),637===e||672===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this));break;case t.SERIAL:s=new Q_(s),this.enterOuterAlt(s,14),this.state=1665,this.match(t.SERIAL),this.state=1666,this.match(t.DEFAULT),this.state=1667,this.match(t.VALUE);break;case t.CHECK:case t.CONSTRAINT:s=new z_(s),this.enterOuterAlt(s,15),this.state=1672,this.errorHandler.sync(this),e=this.tokenStream.LA(1),30===e&&(this.state=1668,this.match(t.CONSTRAINT),this.state=1670,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=1669,s._name=this.uid())),this.state=1674,this.match(t.CHECK),this.state=1675,this.match(t.LR_BRACKET),this.state=1676,this.expression(0),this.state=1677,this.match(t.RR_BRACKET);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableConstraint(){let e,s=new aP(this.context,this.state);this.enterRule(s,94,t.RULE_tableConstraint);try{switch(this.state=1750,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,169,this.context)){case 1:if(s=new cP(s),this.enterOuterAlt(s,1),this.state=1685,this.errorHandler.sync(this),e=this.tokenStream.LA(1),30===e&&1===(this.state=1681,this.match(t.CONSTRAINT),this.state=1683,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,153,this.context)))this.state=1682,s._name=this.uid();for(this.state=1687,this.match(t.PRIMARY),this.state=1688,this.match(t.KEY),this.state=1690,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=1689,s._index=this.uid()),this.state=1693,this.errorHandler.sync(this),e=this.tokenStream.LA(1),187===e&&(this.state=1692,this.indexType()),this.state=1695,this.indexColumnNames(),this.state=1699,this.errorHandler.sync(this),e=this.tokenStream.LA(1);187===e||192===e||368===e||459===e||467===e||673===e||875===e||1e3===e;)this.state=1696,this.indexOption(),this.state=1701,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case 2:for(s=new rP(s),this.enterOuterAlt(s,2),this.state=1706,this.errorHandler.sync(this),e=this.tokenStream.LA(1),30===e&&(this.state=1702,this.match(t.CONSTRAINT),this.state=1704,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=1703,s._name=this.uid())),this.state=1708,this.match(t.UNIQUE),this.state=1710,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(81===e||91===e)&&(this.state=1709,s._indexFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),81===e||91===e?(this.errorHandler.reportMatch(this),this.consume()):s._indexFormat=this.errorHandler.recoverInline(this)),this.state=1713,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=1712,s._index=this.uid()),this.state=1716,this.errorHandler.sync(this),e=this.tokenStream.LA(1),187===e&&(this.state=1715,this.indexType()),this.state=1718,this.indexColumnNames(),this.state=1722,this.errorHandler.sync(this),e=this.tokenStream.LA(1);187===e||192===e||368===e||459===e||467===e||673===e||875===e||1e3===e;)this.state=1719,this.indexOption(),this.state=1724,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case 3:s=new nP(s),this.enterOuterAlt(s,3),this.state=1729,this.errorHandler.sync(this),e=this.tokenStream.LA(1),30===e&&(this.state=1725,this.match(t.CONSTRAINT),this.state=1727,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=1726,s._name=this.uid())),this.state=1731,this.match(t.FOREIGN),this.state=1732,this.match(t.KEY),this.state=1734,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=1733,s._index=this.uid()),this.state=1736,this.indexColumnNames(),this.state=1737,this.referenceDefinition();break;case 4:s=new iP(s),this.enterOuterAlt(s,4),this.state=1743,this.errorHandler.sync(this),e=this.tokenStream.LA(1),30===e&&(this.state=1739,this.match(t.CONSTRAINT),this.state=1741,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=1740,s._name=this.uid())),this.state=1745,this.match(t.CHECK),this.state=1746,this.match(t.LR_BRACKET),this.state=1747,this.expression(0),this.state=1748,this.match(t.RR_BRACKET)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}referenceDefinition(){let e,s=new hP(this.context,this.state);this.enterRule(s,96,t.RULE_referenceDefinition);try{if(1===(this.enterOuterAlt(s,1),this.state=1752,this.match(t.REFERENCES),this.state=1753,this.tableName(),this.state=1755,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e&&(this.state=1754,this.indexColumnNames()),this.state=1759,this.errorHandler.sync(this),e=this.tokenStream.LA(1),109===e&&(this.state=1757,this.match(t.MATCH),this.state=1758,s._matchType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),436===e||548===e||613===e?(this.errorHandler.reportMatch(this),this.consume()):s._matchType=this.errorHandler.recoverInline(this)),this.state=1762,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,172,this.context)))this.state=1761,this.referenceAction()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}referenceAction(){let e=new EP(this.context,this.state);this.enterRule(e,98,t.RULE_referenceAction);try{switch(this.state=1780,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,175,this.context)){case 1:if(1===(this.enterOuterAlt(e,1),this.state=1764,this.match(t.ON),this.state=1765,this.match(t.DELETE),this.state=1766,e._onDelete=this.referenceControlType(),this.state=1770,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,173,this.context)))this.state=1767,this.match(t.ON),this.state=1768,this.match(t.UPDATE),this.state=1769,e._onUpdate=this.referenceControlType();break;case 2:if(1===(this.enterOuterAlt(e,2),this.state=1772,this.match(t.ON),this.state=1773,this.match(t.UPDATE),this.state=1774,e._onUpdate=this.referenceControlType(),this.state=1778,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,174,this.context)))this.state=1775,this.match(t.ON),this.state=1776,this.match(t.DELETE),this.state=1777,e._onDelete=this.referenceControlType()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}referenceControlType(){let e=new TP(this.context,this.state);this.enterRule(e,100,t.RULE_referenceControlType);try{switch(this.state=1790,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,176,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1782,this.match(t.RESTRICT);break;case 2:this.enterOuterAlt(e,2),this.state=1783,this.match(t.CASCADE);break;case 3:this.enterOuterAlt(e,3),this.state=1784,this.match(t.SET),this.state=1785,this.match(t.NULL_LITERAL);break;case 4:this.enterOuterAlt(e,4),this.state=1786,this.match(t.NO),this.state=1787,this.match(t.ACTION);break;case 5:this.enterOuterAlt(e,5),this.state=1788,this.match(t.SET),this.state=1789,this.match(t.DEFAULT)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}indexColumnDefinition(){let e,s=new oP(this.context,this.state);this.enterRule(s,102,t.RULE_indexColumnDefinition);try{switch(this.state=1820,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.INDEX:case t.KEY:for(s=new AP(s),this.enterOuterAlt(s,1),this.state=1792,s._indexFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),81===e||91===e?(this.errorHandler.reportMatch(this),this.consume()):s._indexFormat=this.errorHandler.recoverInline(this),this.state=1794,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=1793,this.uid()),this.state=1797,this.errorHandler.sync(this),e=this.tokenStream.LA(1),187===e&&(this.state=1796,this.indexType()),this.state=1799,this.indexColumnNames(),this.state=1803,this.errorHandler.sync(this),e=this.tokenStream.LA(1);187===e||192===e||368===e||459===e||467===e||673===e||875===e||1e3===e;)this.state=1800,this.indexOption(),this.state=1805,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case t.FULLTEXT:case t.SPATIAL:for(s=new RP(s),this.enterOuterAlt(s,2),this.state=1806,e=this.tokenStream.LA(1),69===e||159===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1808,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(81===e||91===e)&&(this.state=1807,s._indexFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),81===e||91===e?(this.errorHandler.reportMatch(this),this.consume()):s._indexFormat=this.errorHandler.recoverInline(this)),this.state=1811,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=1810,this.uid()),this.state=1813,this.indexColumnNames(),this.state=1817,this.errorHandler.sync(this),e=this.tokenStream.LA(1);187===e||192===e||368===e||459===e||467===e||673===e||875===e||1e3===e;)this.state=1814,this.indexOption(),this.state=1819,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableOption(){let e,s=new SP(this.context,this.state);this.enterRule(s,104,t.RULE_tableOption);try{switch(this.state=2007,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,221,this.context)){case 1:if(1===(s=new lP(s),this.enterOuterAlt(s,1),this.state=1822,this.match(t.ENGINE),this.state=1824,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1823,this.match(t.EQUAL_SYMBOL)),this.state=1827,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,185,this.context)))this.state=1826,this.engineName();break;case 2:s=new QP(s),this.enterOuterAlt(s,2),this.state=1829,this.match(t.ENGINE_ATTRIBUTE),this.state=1831,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1830,this.match(t.EQUAL_SYMBOL)),this.state=1833,this.match(t.STRING_LITERAL);break;case 3:s=new LP(s),this.enterOuterAlt(s,3),this.state=1834,this.match(t.AUTOEXTEND_SIZE),this.state=1836,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1835,this.match(t.EQUAL_SYMBOL)),this.state=1838,this.decimalLiteral();break;case 4:s=new GP(s),this.enterOuterAlt(s,4),this.state=1839,this.match(t.AUTO_INCREMENT),this.state=1841,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1840,this.match(t.EQUAL_SYMBOL)),this.state=1843,this.decimalLiteral();break;case 5:s=new WP(s),this.enterOuterAlt(s,5),this.state=1844,this.match(t.AVG_ROW_LENGTH),this.state=1846,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1845,this.match(t.EQUAL_SYMBOL)),this.state=1848,this.decimalLiteral();break;case 6:switch(s=new mP(s),this.enterOuterAlt(s,6),this.state=1850,this.errorHandler.sync(this),e=this.tokenStream.LA(1),42===e&&(this.state=1849,this.match(t.DEFAULT)),this.state=1852,this.charSet(),this.state=1854,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1853,this.match(t.EQUAL_SYMBOL)),this.state=1858,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.BINARY:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:this.state=1856,this.charsetName();break;case t.DEFAULT:this.state=1857,this.match(t.DEFAULT);break;default:throw new Ei(this)}break;case 7:s=new vP(s),this.enterOuterAlt(s,7),this.state=1860,e=this.tokenStream.LA(1),356===e||357===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1862,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1861,this.match(t.EQUAL_SYMBOL)),this.state=1864,s._boolValue=this.tokenStream.LT(1),e=this.tokenStream.LA(1),1138===e||1139===e?(this.errorHandler.reportMatch(this),this.consume()):s._boolValue=this.errorHandler.recoverInline(this);break;case 8:s=new IP(s),this.enterOuterAlt(s,8),this.state=1866,this.errorHandler.sync(this),e=this.tokenStream.LA(1),42===e&&(this.state=1865,this.match(t.DEFAULT)),this.state=1868,this.match(t.COLLATE),this.state=1870,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1869,this.match(t.EQUAL_SYMBOL)),this.state=1872,this.collationName();break;case 9:s=new bP(s),this.enterOuterAlt(s,9),this.state=1873,this.match(t.COMMENT),this.state=1875,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1874,this.match(t.EQUAL_SYMBOL)),this.state=1877,this.match(t.STRING_LITERAL);break;case 10:s=new XP(s),this.enterOuterAlt(s,10),this.state=1878,this.match(t.COMPRESSION),this.state=1880,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1879,this.match(t.EQUAL_SYMBOL)),this.state=1882,e=this.tokenStream.LA(1),1148===e||1156===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case 11:s=new yP(s),this.enterOuterAlt(s,11),this.state=1883,this.match(t.CONNECTION),this.state=1885,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1884,this.match(t.EQUAL_SYMBOL)),this.state=1887,this.match(t.STRING_LITERAL);break;case 12:s=new kP(s),this.enterOuterAlt(s,12),this.state=1888,e=this.tokenStream.LA(1),81===e||388===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1889,this.match(t.DIRECTORY),this.state=1891,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1890,this.match(t.EQUAL_SYMBOL)),this.state=1893,this.match(t.STRING_LITERAL);break;case 13:s=new BP(s),this.enterOuterAlt(s,13),this.state=1894,this.match(t.DELAY_KEY_WRITE),this.state=1896,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1895,this.match(t.EQUAL_SYMBOL)),this.state=1898,s._boolValue=this.tokenStream.LT(1),e=this.tokenStream.LA(1),1138===e||1139===e?(this.errorHandler.reportMatch(this),this.consume()):s._boolValue=this.errorHandler.recoverInline(this);break;case 14:s=new xP(s),this.enterOuterAlt(s,14),this.state=1899,this.match(t.ENCRYPTION),this.state=1901,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1900,this.match(t.EQUAL_SYMBOL)),this.state=1903,this.match(t.STRING_LITERAL);break;case 15:s=new CP(s),this.enterOuterAlt(s,15),this.state=1904,e=this.tokenStream.LA(1),545===e||1148===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1906,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1905,this.match(t.EQUAL_SYMBOL)),this.state=1908,e=this.tokenStream.LA(1),1138===e||1139===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case 16:s=new YP(s),this.enterOuterAlt(s,16),this.state=1909,e=this.tokenStream.LA(1),546===e||1148===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1911,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1910,this.match(t.EQUAL_SYMBOL)),this.state=1913,this.decimalLiteral();break;case 17:s=new FP(s),this.enterOuterAlt(s,17),this.state=1914,this.match(t.ENCRYPTION_KEY_ID),this.state=1916,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1915,this.match(t.EQUAL_SYMBOL)),this.state=1918,this.decimalLiteral();break;case 18:s=new DP(s),this.enterOuterAlt(s,18),this.state=1919,this.match(t.INDEX),this.state=1920,this.match(t.DIRECTORY),this.state=1922,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1921,this.match(t.EQUAL_SYMBOL)),this.state=1924,this.match(t.STRING_LITERAL);break;case 19:s=new KP(s),this.enterOuterAlt(s,19),this.state=1925,this.match(t.INSERT_METHOD),this.state=1927,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1926,this.match(t.EQUAL_SYMBOL)),this.state=1929,s._insertMethod=this.tokenStream.LT(1),e=this.tokenStream.LA(1),430===e||469===e||521===e?(this.errorHandler.reportMatch(this),this.consume()):s._insertMethod=this.errorHandler.recoverInline(this);break;case 20:s=new gP(s),this.enterOuterAlt(s,20),this.state=1930,this.match(t.KEY_BLOCK_SIZE),this.state=1932,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1931,this.match(t.EQUAL_SYMBOL)),this.state=1934,this.fileSizeLiteral();break;case 21:s=new OP(s),this.enterOuterAlt(s,21),this.state=1935,this.match(t.MAX_ROWS),this.state=1937,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1936,this.match(t.EQUAL_SYMBOL)),this.state=1939,this.decimalLiteral();break;case 22:s=new JP(s),this.enterOuterAlt(s,22),this.state=1940,this.match(t.MIN_ROWS),this.state=1942,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1941,this.match(t.EQUAL_SYMBOL)),this.state=1944,this.decimalLiteral();break;case 23:s=new PP(s),this.enterOuterAlt(s,23),this.state=1945,this.match(t.PACK_KEYS),this.state=1947,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1946,this.match(t.EQUAL_SYMBOL)),this.state=1949,s._extBoolValue=this.tokenStream.LT(1),e=this.tokenStream.LA(1),42===e||1138===e||1139===e?(this.errorHandler.reportMatch(this),this.consume()):s._extBoolValue=this.errorHandler.recoverInline(this);break;case 24:s=new MP(s),this.enterOuterAlt(s,24),this.state=1950,this.match(t.PASSWORD),this.state=1952,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1951,this.match(t.EQUAL_SYMBOL)),this.state=1954,this.match(t.STRING_LITERAL);break;case 25:s=new VP(s),this.enterOuterAlt(s,25),this.state=1955,this.match(t.ROW_FORMAT),this.state=1957,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1956,this.match(t.EQUAL_SYMBOL)),this.state=1959,s._rowFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),42===e||370===e||372===e||402===e||431===e||573===e||1156===e?(this.errorHandler.reportMatch(this),this.consume()):s._rowFormat=this.errorHandler.recoverInline(this);break;case 26:s=new _P(s),this.enterOuterAlt(s,26),this.state=1960,this.match(t.START),this.state=1961,this.match(t.TRANSACTION);break;case 27:s=new wP(s),this.enterOuterAlt(s,27),this.state=1962,this.match(t.SECONDARY_ENGINE_ATTRIBUTE),this.state=1964,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1963,this.match(t.EQUAL_SYMBOL)),this.state=1966,this.match(t.STRING_LITERAL);break;case 28:s=new HP(s),this.enterOuterAlt(s,28),this.state=1967,this.match(t.STATS_AUTO_RECALC),this.state=1969,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1968,this.match(t.EQUAL_SYMBOL)),this.state=1971,s._extBoolValue=this.tokenStream.LT(1),e=this.tokenStream.LA(1),42===e||1138===e||1139===e?(this.errorHandler.reportMatch(this),this.consume()):s._extBoolValue=this.errorHandler.recoverInline(this);break;case 29:s=new uP(s),this.enterOuterAlt(s,29),this.state=1972,this.match(t.STATS_PERSISTENT),this.state=1974,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1973,this.match(t.EQUAL_SYMBOL)),this.state=1976,s._extBoolValue=this.tokenStream.LT(1),e=this.tokenStream.LA(1),42===e||1138===e||1139===e?(this.errorHandler.reportMatch(this),this.consume()):s._extBoolValue=this.errorHandler.recoverInline(this);break;case 30:switch(s=new UP(s),this.enterOuterAlt(s,30),this.state=1977,this.match(t.STATS_SAMPLE_PAGES),this.state=1979,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1978,this.match(t.EQUAL_SYMBOL)),this.state=1983,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DEFAULT:this.state=1981,this.match(t.DEFAULT);break;case t.ZERO_DECIMAL:case t.ONE_DECIMAL:case t.TWO_DECIMAL:case t.DECIMAL_LITERAL:case t.REAL_LITERAL:this.state=1982,this.decimalLiteral();break;default:throw new Ei(this)}break;case 31:if(1===(s=new NP(s),this.enterOuterAlt(s,31),this.state=1985,this.match(t.TABLESPACE),this.state=1986,this.uid(),this.state=1988,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,218,this.context)))this.state=1987,this.tablespaceStorage();break;case 32:s=new pP(s),this.enterOuterAlt(s,32),this.state=1990,this.match(t.TABLE_TYPE),this.state=1991,this.match(t.EQUAL_SYMBOL),this.state=1992,this.tableType();break;case 33:s=new NP(s),this.enterOuterAlt(s,33),this.state=1993,this.tablespaceStorage();break;case 34:s=new fP(s),this.enterOuterAlt(s,34),this.state=1994,this.match(t.TRANSACTIONAL),this.state=1996,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=1995,this.match(t.EQUAL_SYMBOL)),this.state=1998,e=this.tokenStream.LA(1),1138===e||1139===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case 35:s=new dP(s),this.enterOuterAlt(s,35),this.state=1999,this.match(t.UNION),this.state=2001,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=2e3,this.match(t.EQUAL_SYMBOL)),this.state=2003,this.match(t.LR_BRACKET),this.state=2004,this.tables(),this.state=2005,this.match(t.RR_BRACKET)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableType(){let e,s=new ZP(this.context,this.state);this.enterRule(s,106,t.RULE_tableType);try{this.enterOuterAlt(s,1),this.state=2009,e=this.tokenStream.LA(1),514===e||530===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tablespaceStorage(){let e,s=new qP(this.context,this.state);this.enterRule(s,108,t.RULE_tablespaceStorage);try{this.enterOuterAlt(s,1),this.state=2011,this.match(t.STORAGE),this.state=2012,e=this.tokenStream.LA(1),42===e||398===e||792===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}partitionDefinitions(){let e,s=new jP(this.context,this.state);this.enterRule(s,110,t.RULE_partitionDefinitions);try{if(1===(this.enterOuterAlt(s,1),this.state=2014,this.match(t.PARTITION),this.state=2015,this.match(t.BY),this.state=2016,this.partitionFunctionDefinition(),this.state=2019,this.errorHandler.sync(this),e=this.tokenStream.LA(1),550===e&&(this.state=2017,this.match(t.PARTITIONS),this.state=2018,s._count=this.decimalLiteral()),this.state=2028,this.errorHandler.sync(this),e=this.tokenStream.LA(1),641===e&&(this.state=2021,this.match(t.SUBPARTITION),this.state=2022,this.match(t.BY),this.state=2023,this.subpartitionFunctionDefinition(),this.state=2026,this.errorHandler.sync(this),e=this.tokenStream.LA(1),642===e&&(this.state=2024,this.match(t.SUBPARTITIONS),this.state=2025,s._subCount=this.decimalLiteral())),this.state=2041,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,226,this.context))){for(this.state=2030,this.match(t.LR_BRACKET),this.state=2031,this.partitionDefinition(),this.state=2036,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=2032,this.match(t.COMMA),this.state=2033,this.partitionDefinition(),this.state=2038,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2039,this.match(t.RR_BRACKET)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}partitionFunctionDefinition(){let e,s=new zP(this.context,this.state);this.enterRule(s,112,t.RULE_partitionFunctionDefinition);try{switch(this.state=2089,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,233,this.context)){case 1:s=new tM(s),this.enterOuterAlt(s,1),this.state=2044,this.errorHandler.sync(this),e=this.tokenStream.LA(1),100===e&&(this.state=2043,this.match(t.LINEAR)),this.state=2046,this.match(t.HASH),this.state=2047,this.match(t.LR_BRACKET),this.state=2048,this.expression(0),this.state=2049,this.match(t.RR_BRACKET);break;case 2:s=new $P(s),this.enterOuterAlt(s,2),this.state=2052,this.errorHandler.sync(this),e=this.tokenStream.LA(1),100===e&&(this.state=2051,this.match(t.LINEAR)),this.state=2054,this.match(t.KEY),this.state=2058,this.errorHandler.sync(this),e=this.tokenStream.LA(1),336===e&&(this.state=2055,this.match(t.ALGORITHM),this.state=2056,this.match(t.EQUAL_SYMBOL),this.state=2057,s._algType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),1139===e||1140===e?(this.errorHandler.reportMatch(this),this.consume()):s._algType=this.errorHandler.recoverInline(this)),this.state=2060,this.match(t.LR_BRACKET),this.state=2062,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=2061,this.uidList()),this.state=2064,this.match(t.RR_BRACKET);break;case 3:switch(s=new sM(s),this.enterOuterAlt(s,3),this.state=2065,this.match(t.RANGE),this.state=2075,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LR_BRACKET:this.state=2066,this.match(t.LR_BRACKET),this.state=2067,this.expression(0),this.state=2068,this.match(t.RR_BRACKET);break;case t.COLUMNS:this.state=2070,this.match(t.COLUMNS),this.state=2071,this.match(t.LR_BRACKET),this.state=2072,this.uidList(),this.state=2073,this.match(t.RR_BRACKET);break;default:throw new Ei(this)}break;case 4:switch(s=new eM(s),this.enterOuterAlt(s,4),this.state=2077,this.match(t.LIST),this.state=2087,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LR_BRACKET:this.state=2078,this.match(t.LR_BRACKET),this.state=2079,this.expression(0),this.state=2080,this.match(t.RR_BRACKET);break;case t.COLUMNS:this.state=2082,this.match(t.COLUMNS),this.state=2083,this.match(t.LR_BRACKET),this.state=2084,this.uidList(),this.state=2085,this.match(t.RR_BRACKET);break;default:throw new Ei(this)}}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}subpartitionFunctionDefinition(){let e,s=new aM(this.context,this.state);this.enterRule(s,114,t.RULE_subpartitionFunctionDefinition);try{switch(this.state=2112,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,237,this.context)){case 1:s=new rM(s),this.enterOuterAlt(s,1),this.state=2092,this.errorHandler.sync(this),e=this.tokenStream.LA(1),100===e&&(this.state=2091,this.match(t.LINEAR)),this.state=2094,this.match(t.HASH),this.state=2095,this.match(t.LR_BRACKET),this.state=2096,this.expression(0),this.state=2097,this.match(t.RR_BRACKET);break;case 2:s=new iM(s),this.enterOuterAlt(s,2),this.state=2100,this.errorHandler.sync(this),e=this.tokenStream.LA(1),100===e&&(this.state=2099,this.match(t.LINEAR)),this.state=2102,this.match(t.KEY),this.state=2106,this.errorHandler.sync(this),e=this.tokenStream.LA(1),336===e&&(this.state=2103,this.match(t.ALGORITHM),this.state=2104,this.match(t.EQUAL_SYMBOL),this.state=2105,s._algType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),1139===e||1140===e?(this.errorHandler.reportMatch(this),this.consume()):s._algType=this.errorHandler.recoverInline(this)),this.state=2108,this.match(t.LR_BRACKET),this.state=2109,this.uidList(),this.state=2110,this.match(t.RR_BRACKET)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}partitionDefinition(){let e,s=new cM(this.context,this.state);this.enterRule(s,116,t.RULE_partitionDefinition);try{switch(this.state=2260,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,256,this.context)){case 1:for(s=new nM(s),this.enterOuterAlt(s,1),this.state=2114,this.match(t.PARTITION),this.state=2115,this.uid(),this.state=2116,this.match(t.VALUES),this.state=2117,this.match(t.LESS),this.state=2118,this.match(t.THAN),this.state=2119,this.match(t.LR_BRACKET),this.state=2120,this.partitionDefinerAtom(),this.state=2125,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=2121,this.match(t.COMMA),this.state=2122,this.partitionDefinerAtom(),this.state=2127,this.errorHandler.sync(this),e=this.tokenStream.LA(1);for(this.state=2128,this.match(t.RR_BRACKET),this.state=2132,this.errorHandler.sync(this),e=this.tokenStream.LA(1);42===e||81===e||368===e||388===e||409===e||!(e-500&-32)&&1<<e-500&268436481||636===e||647===e;)this.state=2129,this.partitionOption(),this.state=2134,this.errorHandler.sync(this),e=this.tokenStream.LA(1);if(this.state=2146,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e){for(this.state=2135,this.match(t.LR_BRACKET),this.state=2136,this.subpartitionDefinition(),this.state=2141,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=2137,this.match(t.COMMA),this.state=2138,this.subpartitionDefinition(),this.state=2143,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2144,this.match(t.RR_BRACKET)}break;case 2:for(s=new nM(s),this.enterOuterAlt(s,2),this.state=2148,this.match(t.PARTITION),this.state=2149,this.uid(),this.state=2150,this.match(t.VALUES),this.state=2151,this.match(t.LESS),this.state=2152,this.match(t.THAN),this.state=2153,this.partitionDefinerAtom(),this.state=2157,this.errorHandler.sync(this),e=this.tokenStream.LA(1);42===e||81===e||368===e||388===e||409===e||!(e-500&-32)&&1<<e-500&268436481||636===e||647===e;)this.state=2154,this.partitionOption(),this.state=2159,this.errorHandler.sync(this),e=this.tokenStream.LA(1);if(this.state=2171,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e){for(this.state=2160,this.match(t.LR_BRACKET),this.state=2161,this.subpartitionDefinition(),this.state=2166,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=2162,this.match(t.COMMA),this.state=2163,this.subpartitionDefinition(),this.state=2168,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2169,this.match(t.RR_BRACKET)}break;case 3:for(s=new hM(s),this.enterOuterAlt(s,3),this.state=2173,this.match(t.PARTITION),this.state=2174,this.uid(),this.state=2175,this.match(t.VALUES),this.state=2176,this.match(t.IN),this.state=2177,this.match(t.LR_BRACKET),this.state=2178,this.partitionDefinerAtom(),this.state=2183,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=2179,this.match(t.COMMA),this.state=2180,this.partitionDefinerAtom(),this.state=2185,this.errorHandler.sync(this),e=this.tokenStream.LA(1);for(this.state=2186,this.match(t.RR_BRACKET),this.state=2190,this.errorHandler.sync(this),e=this.tokenStream.LA(1);42===e||81===e||368===e||388===e||409===e||!(e-500&-32)&&1<<e-500&268436481||636===e||647===e;)this.state=2187,this.partitionOption(),this.state=2192,this.errorHandler.sync(this),e=this.tokenStream.LA(1);if(this.state=2204,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e){for(this.state=2193,this.match(t.LR_BRACKET),this.state=2194,this.subpartitionDefinition(),this.state=2199,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=2195,this.match(t.COMMA),this.state=2196,this.subpartitionDefinition(),this.state=2201,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2202,this.match(t.RR_BRACKET)}break;case 4:for(s=new EM(s),this.enterOuterAlt(s,4),this.state=2206,this.match(t.PARTITION),this.state=2207,this.uid(),this.state=2208,this.match(t.VALUES),this.state=2209,this.match(t.IN),this.state=2210,this.match(t.LR_BRACKET),this.state=2211,this.partitionDefinerVector(),this.state=2216,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=2212,this.match(t.COMMA),this.state=2213,this.partitionDefinerVector(),this.state=2218,this.errorHandler.sync(this),e=this.tokenStream.LA(1);for(this.state=2219,this.match(t.RR_BRACKET),this.state=2223,this.errorHandler.sync(this),e=this.tokenStream.LA(1);42===e||81===e||368===e||388===e||409===e||!(e-500&-32)&&1<<e-500&268436481||636===e||647===e;)this.state=2220,this.partitionOption(),this.state=2225,this.errorHandler.sync(this),e=this.tokenStream.LA(1);if(this.state=2237,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e){for(this.state=2226,this.match(t.LR_BRACKET),this.state=2227,this.subpartitionDefinition(),this.state=2232,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=2228,this.match(t.COMMA),this.state=2229,this.subpartitionDefinition(),this.state=2234,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2235,this.match(t.RR_BRACKET)}break;case 5:for(s=new TM(s),this.enterOuterAlt(s,5),this.state=2239,this.match(t.PARTITION),this.state=2240,this.uid(),this.state=2244,this.errorHandler.sync(this),e=this.tokenStream.LA(1);42===e||81===e||368===e||388===e||409===e||!(e-500&-32)&&1<<e-500&268436481||636===e||647===e;)this.state=2241,this.partitionOption(),this.state=2246,this.errorHandler.sync(this),e=this.tokenStream.LA(1);if(this.state=2258,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e){for(this.state=2247,this.match(t.LR_BRACKET),this.state=2248,this.subpartitionDefinition(),this.state=2253,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=2249,this.match(t.COMMA),this.state=2250,this.subpartitionDefinition(),this.state=2255,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2256,this.match(t.RR_BRACKET)}}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}partitionDefinerAtom(){let e=new oM(this.context,this.state);this.enterRule(e,118,t.RULE_partitionDefinerAtom);try{switch(this.state=2265,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,257,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2262,this.constant();break;case 2:this.enterOuterAlt(e,2),this.state=2263,this.expression(0);break;case 3:this.enterOuterAlt(e,3),this.state=2264,this.match(t.MAXVALUE)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}partitionDefinerVector(){let e,s=new RM(this.context,this.state);this.enterRule(s,120,t.RULE_partitionDefinerVector);try{this.enterOuterAlt(s,1),this.state=2267,this.match(t.LR_BRACKET),this.state=2268,this.partitionDefinerAtom(),this.state=2271,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=2269,this.match(t.COMMA),this.state=2270,this.partitionDefinerAtom(),this.state=2273,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(1135===e);this.state=2275,this.match(t.RR_BRACKET)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}subpartitionDefinition(){let e,s=new AM(this.context,this.state);this.enterRule(s,122,t.RULE_subpartitionDefinition);try{for(this.enterOuterAlt(s,1),this.state=2277,this.match(t.SUBPARTITION),this.state=2278,this.uid(),this.state=2282,this.errorHandler.sync(this),e=this.tokenStream.LA(1);42===e||81===e||368===e||388===e||409===e||!(e-500&-32)&&1<<e-500&268436481||636===e||647===e;)this.state=2279,this.partitionOption(),this.state=2284,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}partitionOption(){let e,s=new SM(this.context,this.state);this.enterRule(s,124,t.RULE_partitionOption);try{switch(this.state=2333,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DEFAULT:case t.ENGINE:case t.STORAGE:s=new LM(s),this.enterOuterAlt(s,1),this.state=2286,this.errorHandler.sync(this),e=this.tokenStream.LA(1),42===e&&(this.state=2285,this.match(t.DEFAULT)),this.state=2289,this.errorHandler.sync(this),e=this.tokenStream.LA(1),636===e&&(this.state=2288,this.match(t.STORAGE)),this.state=2291,this.match(t.ENGINE),this.state=2293,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=2292,this.match(t.EQUAL_SYMBOL)),this.state=2295,this.engineName();break;case t.COMMENT:s=new lM(s),this.enterOuterAlt(s,2),this.state=2296,this.match(t.COMMENT),this.state=2298,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=2297,this.match(t.EQUAL_SYMBOL)),this.state=2300,s._comment=this.match(t.STRING_LITERAL);break;case t.DATA:s=new _M(s),this.enterOuterAlt(s,3),this.state=2301,this.match(t.DATA),this.state=2302,this.match(t.DIRECTORY),this.state=2304,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=2303,this.match(t.EQUAL_SYMBOL)),this.state=2306,s._dataDirectory=this.match(t.STRING_LITERAL);break;case t.INDEX:s=new IM(s),this.enterOuterAlt(s,4),this.state=2307,this.match(t.INDEX),this.state=2308,this.match(t.DIRECTORY),this.state=2310,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=2309,this.match(t.EQUAL_SYMBOL)),this.state=2312,s._indexDirectory=this.match(t.STRING_LITERAL);break;case t.MAX_ROWS:s=new uM(s),this.enterOuterAlt(s,5),this.state=2313,this.match(t.MAX_ROWS),this.state=2315,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=2314,this.match(t.EQUAL_SYMBOL)),this.state=2317,s._maxRows=this.decimalLiteral();break;case t.MIN_ROWS:s=new CM(s),this.enterOuterAlt(s,6),this.state=2318,this.match(t.MIN_ROWS),this.state=2320,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=2319,this.match(t.EQUAL_SYMBOL)),this.state=2322,s._minRows=this.decimalLiteral();break;case t.TABLESPACE:s=new NM(s),this.enterOuterAlt(s,7),this.state=2323,this.match(t.TABLESPACE),this.state=2325,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=2324,this.match(t.EQUAL_SYMBOL)),this.state=2327,s._tablespace=this.uid();break;case t.NODEGROUP:s=new OM(s),this.enterOuterAlt(s,8),this.state=2328,this.match(t.NODEGROUP),this.state=2330,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=2329,this.match(t.EQUAL_SYMBOL)),this.state=2332,s._nodegroup=this.uid();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterDatabase(){let e,s=new PM(this.context,this.state);this.enterRule(s,126,t.RULE_alterDatabase);try{switch(this.state=2351,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,272,this.context)){case 1:s=new dM(s),this.enterOuterAlt(s,1),this.state=2335,this.match(t.ALTER),this.state=2336,s._dbFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),39===e||150===e?(this.errorHandler.reportMatch(this),this.consume()):s._dbFormat=this.errorHandler.recoverInline(this),this.state=2337,this.databaseName(),this.state=2339,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=2338,this.createDatabaseOption(),this.state=2341,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(!(e-25&-32)&&1<<e-25&131077||134===e||222===e||405===e||841===e);break;case 2:s=new MM(s),this.enterOuterAlt(s,2),this.state=2343,this.match(t.ALTER),this.state=2344,s._dbFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),39===e||150===e?(this.errorHandler.reportMatch(this),this.consume()):s._dbFormat=this.errorHandler.recoverInline(this),this.state=2345,this.databaseName(),this.state=2346,this.match(t.UPGRADE),this.state=2347,this.match(t.DATA),this.state=2348,this.match(t.DIRECTORY),this.state=2349,this.match(t.NAME)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterEvent(){let e,s=new UM(this.context,this.state);this.enterRule(s,128,t.RULE_alterEvent);try{if(this.enterOuterAlt(s,1),1===(this.state=2353,this.match(t.ALTER),this.state=2355,this.errorHandler.sync(this),e=this.tokenStream.LA(1),392===e&&(this.state=2354,this.ownerStatement()),this.state=2357,this.match(t.EVENT),this.state=2358,this.fullId(),this.state=2362,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,274,this.context)))this.state=2359,this.match(t.ON),this.state=2360,this.match(t.SCHEDULE),this.state=2361,this.scheduleExpression();this.state=2370,this.errorHandler.sync(this),e=this.tokenStream.LA(1),118===e&&(this.state=2364,this.match(t.ON),this.state=2365,this.match(t.COMPLETION),this.state=2367,this.errorHandler.sync(this),e=this.tokenStream.LA(1),114===e&&(this.state=2366,this.match(t.NOT)),this.state=2369,this.match(t.PRESERVE)),this.state=2375,this.errorHandler.sync(this),e=this.tokenStream.LA(1),139===e&&(this.state=2372,this.match(t.RENAME),this.state=2373,this.match(t.TO),this.state=2374,this.fullId()),this.state=2378,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(396===e||403===e)&&(this.state=2377,this.enableType()),this.state=2382,this.errorHandler.sync(this),e=this.tokenStream.LA(1),368===e&&(this.state=2380,this.match(t.COMMENT),this.state=2381,this.match(t.STRING_LITERAL)),this.state=2386,this.errorHandler.sync(this),e=this.tokenStream.LA(1),399===e&&(this.state=2384,this.match(t.DO),this.state=2385,this.routineBody())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterFunction(){let e,s=new mM(this.context,this.state);this.enterRule(s,130,t.RULE_alterFunction);try{for(this.enterOuterAlt(s,1),this.state=2388,this.match(t.ALTER),this.state=2389,this.match(t.FUNCTION),this.state=2390,this.fullId(),this.state=2394,this.errorHandler.sync(this),e=this.tokenStream.LA(1);47===e||!(e-112&-32)&&1<<e-112&8388613||160===e||368===e||381===e||468===e||521===e;)this.state=2391,this.routineOption(),this.state=2396,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterInstance(){let e=new DM(this.context,this.state);this.enterRule(e,132,t.RULE_alterInstance);try{this.enterOuterAlt(e,1),this.state=2397,this.match(t.ALTER),this.state=2398,this.match(t.INSTANCE),this.state=2399,this.match(t.ROTATE),this.state=2400,this.match(t.INNODB),this.state=2401,this.match(t.MASTER),this.state=2402,this.match(t.KEY)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterLogfileGroup(){let e,s=new pM(this.context,this.state);this.enterRule(s,134,t.RULE_alterLogfileGroup);try{this.enterOuterAlt(s,1),this.state=2404,this.match(t.ALTER),this.state=2405,this.match(t.LOGFILE),this.state=2406,this.match(t.GROUP),this.state=2407,this.uid(),this.state=2408,this.match(t.ADD),this.state=2409,this.match(t.UNDOFILE),this.state=2410,this.match(t.STRING_LITERAL),this.state=2416,this.errorHandler.sync(this),e=this.tokenStream.LA(1),453===e&&(this.state=2411,this.match(t.INITIAL_SIZE),this.state=2413,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=2412,this.match(t.EQUAL_SYMBOL)),this.state=2415,this.fileSizeLiteral()),this.state=2419,this.errorHandler.sync(this),e=this.tokenStream.LA(1),674===e&&(this.state=2418,this.match(t.WAIT)),this.state=2421,this.match(t.ENGINE),this.state=2423,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=2422,this.match(t.EQUAL_SYMBOL)),this.state=2425,this.engineName()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterProcedure(){let e,s=new gM(this.context,this.state);this.enterRule(s,136,t.RULE_alterProcedure);try{for(this.enterOuterAlt(s,1),this.state=2427,this.match(t.ALTER),this.state=2428,this.match(t.PROCEDURE),this.state=2429,this.fullId(),this.state=2433,this.errorHandler.sync(this),e=this.tokenStream.LA(1);47===e||!(e-112&-32)&&1<<e-112&8388613||160===e||368===e||381===e||468===e||521===e;)this.state=2430,this.routineOption(),this.state=2435,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterServer(){let e,s=new xM(this.context,this.state);this.enterRule(s,138,t.RULE_alterServer);try{for(this.enterOuterAlt(s,1),this.state=2436,this.match(t.ALTER),this.state=2437,this.match(t.SERVER),this.state=2438,this.uid(),this.state=2439,this.match(t.OPTIONS),this.state=2440,this.match(t.LR_BRACKET),this.state=2441,this.serverOption(),this.state=2446,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=2442,this.match(t.COMMA),this.state=2443,this.serverOption(),this.state=2448,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2449,this.match(t.RR_BRACKET)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterTable(){let e,s=new kM(this.context,this.state);this.enterRule(s,140,t.RULE_alterTable);try{if(this.enterOuterAlt(s,1),this.state=2451,this.match(t.ALTER),this.state=2453,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(531===e||537===e)&&(this.state=2452,s._intimeAction=this.tokenStream.LT(1),e=this.tokenStream.LA(1),531===e||537===e?(this.errorHandler.reportMatch(this),this.consume()):s._intimeAction=this.errorHandler.recoverInline(this)),this.state=2456,this.errorHandler.sync(this),e=this.tokenStream.LA(1),78===e&&(this.state=2455,this.match(t.IGNORE)),this.state=2458,this.match(t.TABLE),this.state=2459,this.tableName(),this.state=2461,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(527===e||674===e)&&(this.state=2460,this.waitNowaitClause()),this.state=2471,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-5&-32)&&1<<e-5&142082069||!(e-42&-32)&&1<<e-42&16777729||81===e||103===e||!(e-119&-32)&&1<<e-119&1048609||180===e||192===e||222===e||!(e-336&-32)&&1<<e-336&137363681||!(e-368&-32)&&1<<e-368&839909665||!(e-403&-32)&&1<<e-403&32845||!(e-450&-32)&&1<<e-450&131105||!(e-500&-32)&&1<<e-500&5121||!(e-543&-32)&&1<<e-543&67109133||!(e-578&-32)&&1<<e-578&16777223||!(e-629&-32)&&1<<e-629&168558749||664===e||677===e||841===e||875===e||1e3===e||1148===e)for(this.state=2463,this.alterSpecification(),this.state=2468,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=2464,this.match(t.COMMA),this.state=2465,this.alterSpecification(),this.state=2470,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2474,this.errorHandler.sync(this),e=this.tokenStream.LA(1),129===e&&(this.state=2473,this.partitionDefinitions())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterTablespace(){let e,s=new HM(this.context,this.state);this.enterRule(s,142,t.RULE_alterTablespace);try{this.enterOuterAlt(s,1),this.state=2476,this.match(t.ALTER),this.state=2477,this.match(t.TABLESPACE),this.state=2478,this.uid(),this.state=2479,s._objectAction=this.tokenStream.LT(1),e=this.tokenStream.LA(1),5===e||51===e?(this.errorHandler.reportMatch(this),this.consume()):s._objectAction=this.errorHandler.recoverInline(this),this.state=2480,this.match(t.DATAFILE),this.state=2481,this.match(t.STRING_LITERAL),this.state=2485,this.errorHandler.sync(this),e=this.tokenStream.LA(1),453===e&&(this.state=2482,this.match(t.INITIAL_SIZE),this.state=2483,this.match(t.EQUAL_SYMBOL),this.state=2484,this.fileSizeLiteral()),this.state=2488,this.errorHandler.sync(this),e=this.tokenStream.LA(1),674===e&&(this.state=2487,this.match(t.WAIT)),this.state=2490,this.match(t.ENGINE),this.state=2492,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=2491,this.match(t.EQUAL_SYMBOL)),this.state=2494,this.engineName()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterView(){let e,s=new GM(this.context,this.state);this.enterRule(s,144,t.RULE_alterView);try{this.enterOuterAlt(s,1),this.state=2496,this.match(t.ALTER),this.state=2500,this.errorHandler.sync(this),e=this.tokenStream.LA(1),336===e&&(this.state=2497,this.match(t.ALGORITHM),this.state=2498,this.match(t.EQUAL_SYMBOL),this.state=2499,s._algType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),506===e||650===e||658===e?(this.errorHandler.reportMatch(this),this.consume()):s._algType=this.errorHandler.recoverInline(this)),this.state=2503,this.errorHandler.sync(this),e=this.tokenStream.LA(1),392===e&&(this.state=2502,this.ownerStatement()),this.state=2508,this.errorHandler.sync(this),e=this.tokenStream.LA(1),160===e&&(this.state=2505,this.match(t.SQL),this.state=2506,this.match(t.SECURITY),this.state=2507,s._secContext=this.tokenStream.LT(1),e=this.tokenStream.LA(1),392===e||460===e?(this.errorHandler.reportMatch(this),this.consume()):s._secContext=this.errorHandler.recoverInline(this)),this.state=2510,this.match(t.VIEW),this.state=2511,this.fullId(),this.state=2516,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e&&(this.state=2512,this.match(t.LR_BRACKET),this.state=2513,this.uidList(),this.state=2514,this.match(t.RR_BRACKET)),this.state=2518,this.match(t.AS),this.state=2519,this.selectStatement(),this.state=2526,this.errorHandler.sync(this),e=this.tokenStream.LA(1),192===e&&(this.state=2520,this.match(t.WITH),this.state=2522,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(352===e||474===e)&&(this.state=2521,s._checkOpt=this.tokenStream.LT(1),e=this.tokenStream.LA(1),352===e||474===e?(this.errorHandler.reportMatch(this),this.consume()):s._checkOpt=this.errorHandler.recoverInline(this)),this.state=2524,this.match(t.CHECK),this.state=2525,this.match(t.OPTION))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterSpecification(){let e,s=new FM(this.context,this.state);this.enterRule(s,146,t.RULE_alterSpecification);try{let a;switch(this.state=2879,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,362,this.context)){case 1:for(s=new id(s),this.enterOuterAlt(s,1),this.state=2528,this.tableOption(),this.state=2535,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,304,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=2530,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1135===e&&(this.state=2529,this.match(t.COMMA)),this.state=2532,this.tableOption()),this.state=2537,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,304,this.context);break;case 2:switch(s=new Od(s),this.enterOuterAlt(s,2),this.state=2538,this.match(t.ADD),this.state=2540,this.errorHandler.sync(this),e=this.tokenStream.LA(1),28===e&&(this.state=2539,this.match(t.COLUMN)),this.state=2542,this.uid(),this.state=2543,this.columnDefinition(),this.state=2547,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FIRST:this.state=2544,this.match(t.FIRST);break;case t.AFTER:this.state=2545,this.match(t.AFTER),this.state=2546,this.uid();case t.EOF:case t.PARTITION:case t.COMMA:case t.SEMI:}break;case 3:for(s=new JM(s),this.enterOuterAlt(s,3),this.state=2549,this.match(t.ADD),this.state=2551,this.errorHandler.sync(this),e=this.tokenStream.LA(1),28===e&&(this.state=2550,this.match(t.COLUMN)),this.state=2553,this.match(t.LR_BRACKET),this.state=2554,this.uid(),this.state=2555,this.columnDefinition(),this.state=2562,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=2556,this.match(t.COMMA),this.state=2557,this.uid(),this.state=2558,this.columnDefinition(),this.state=2564,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2565,this.match(t.RR_BRACKET);break;case 4:for(s=new $M(s),this.enterOuterAlt(s,4),this.state=2567,this.match(t.ADD),this.state=2568,s._indexFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),81===e||91===e?(this.errorHandler.reportMatch(this),this.consume()):s._indexFormat=this.errorHandler.recoverInline(this),this.state=2570,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=2569,this.uid()),this.state=2573,this.errorHandler.sync(this),e=this.tokenStream.LA(1),187===e&&(this.state=2572,this.indexType()),this.state=2575,this.indexColumnNames(),this.state=2579,this.errorHandler.sync(this),e=this.tokenStream.LA(1);187===e||192===e||368===e||459===e||467===e||673===e||875===e||1e3===e;)this.state=2576,this.indexOption(),this.state=2581,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case 5:if(s=new Td(s),this.enterOuterAlt(s,5),this.state=2582,this.match(t.ADD),this.state=2587,this.errorHandler.sync(this),e=this.tokenStream.LA(1),30===e&&1===(this.state=2583,this.match(t.CONSTRAINT),this.state=2585,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,312,this.context)))this.state=2584,s._name=this.uid();for(this.state=2589,this.match(t.PRIMARY),this.state=2590,this.match(t.KEY),this.state=2592,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=2591,s._index=this.uid()),this.state=2595,this.errorHandler.sync(this),e=this.tokenStream.LA(1),187===e&&(this.state=2594,this.indexType()),this.state=2597,this.indexColumnNames(),this.state=2601,this.errorHandler.sync(this),e=this.tokenStream.LA(1);187===e||192===e||368===e||459===e||467===e||673===e||875===e||1e3===e;)this.state=2598,this.indexOption(),this.state=2603,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case 6:for(s=new Sd(s),this.enterOuterAlt(s,6),this.state=2604,this.match(t.ADD),this.state=2609,this.errorHandler.sync(this),e=this.tokenStream.LA(1),30===e&&(this.state=2605,this.match(t.CONSTRAINT),this.state=2607,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=2606,s._name=this.uid())),this.state=2611,this.match(t.UNIQUE),this.state=2613,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(81===e||91===e)&&(this.state=2612,s._indexFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),81===e||91===e?(this.errorHandler.reportMatch(this),this.consume()):s._indexFormat=this.errorHandler.recoverInline(this)),this.state=2616,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=2615,this.uid()),this.state=2619,this.errorHandler.sync(this),e=this.tokenStream.LA(1),187===e&&(this.state=2618,this.indexType()),this.state=2621,this.indexColumnNames(),this.state=2625,this.errorHandler.sync(this),e=this.tokenStream.LA(1);187===e||192===e||368===e||459===e||467===e||673===e||875===e||1e3===e;)this.state=2622,this.indexOption(),this.state=2627,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case 7:for(s=new ad(s),this.enterOuterAlt(s,7),this.state=2628,this.match(t.ADD),this.state=2629,s._keyType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),69===e||159===e?(this.errorHandler.reportMatch(this),this.consume()):s._keyType=this.errorHandler.recoverInline(this),this.state=2631,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(81===e||91===e)&&(this.state=2630,s._indexFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),81===e||91===e?(this.errorHandler.reportMatch(this),this.consume()):s._indexFormat=this.errorHandler.recoverInline(this)),this.state=2634,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=2633,this.uid()),this.state=2636,this.indexColumnNames(),this.state=2640,this.errorHandler.sync(this),e=this.tokenStream.LA(1);187===e||192===e||368===e||459===e||467===e||673===e||875===e||1e3===e;)this.state=2637,this.indexOption(),this.state=2642,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case 8:s=new wM(s),this.enterOuterAlt(s,8),this.state=2643,this.match(t.ADD),this.state=2648,this.errorHandler.sync(this),e=this.tokenStream.LA(1),30===e&&(this.state=2644,this.match(t.CONSTRAINT),this.state=2646,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=2645,s._name=this.uid())),this.state=2650,this.match(t.FOREIGN),this.state=2651,this.match(t.KEY),this.state=2653,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=2652,this.uid()),this.state=2655,this.indexColumnNames(),this.state=2656,this.referenceDefinition();break;case 9:switch(s=new jM(s),this.enterOuterAlt(s,9),this.state=2658,this.match(t.ADD),this.state=2663,this.errorHandler.sync(this),e=this.tokenStream.LA(1),30===e&&(this.state=2659,this.match(t.CONSTRAINT),this.state=2661,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=2660,s._name=this.uid())),this.state=2665,this.match(t.CHECK),this.state=2672,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,331,this.context)){case 1:this.state=2666,this.uid();break;case 2:this.state=2667,this.stringLiteral();break;case 3:this.state=2668,this.match(t.LR_BRACKET),this.state=2669,this.expression(0),this.state=2670,this.match(t.RR_BRACKET)}this.state=2675,this.errorHandler.sync(this),e=this.tokenStream.LA(1),114===e&&(this.state=2674,this.match(t.NOT)),this.state=2678,this.errorHandler.sync(this),e=this.tokenStream.LA(1),57===e&&(this.state=2677,this.match(t.ENFORCED));break;case 10:switch(s=new KM(s),this.enterOuterAlt(s,10),this.state=2680,this.match(t.ALTER),this.state=2685,this.errorHandler.sync(this),e=this.tokenStream.LA(1),30===e&&(this.state=2681,this.match(t.CONSTRAINT),this.state=2683,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=2682,this.constraintName())),this.state=2687,this.match(t.CHECK),this.state=2694,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,336,this.context)){case 1:this.state=2688,this.uid();break;case 2:this.state=2689,this.stringLiteral();break;case 3:this.state=2690,this.match(t.LR_BRACKET),this.state=2691,this.expression(0),this.state=2692,this.match(t.RR_BRACKET)}this.state=2697,this.errorHandler.sync(this),e=this.tokenStream.LA(1),114===e&&(this.state=2696,this.match(t.NOT)),this.state=2700,this.errorHandler.sync(this),e=this.tokenStream.LA(1),57===e&&(this.state=2699,this.match(t.ENFORCED));break;case 11:s=new jM(s),this.enterOuterAlt(s,11),this.state=2702,this.match(t.ADD),this.state=2707,this.errorHandler.sync(this),e=this.tokenStream.LA(1),30===e&&(this.state=2703,this.match(t.CONSTRAINT),this.state=2705,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=2704,s._name=this.uid())),this.state=2709,this.match(t.CHECK),this.state=2710,this.match(t.LR_BRACKET),this.state=2711,this.expression(0),this.state=2712,this.match(t.RR_BRACKET);break;case 12:s=new Rd(s),this.enterOuterAlt(s,12),this.state=2714,this.match(t.ALGORITHM),this.state=2716,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=2715,this.match(t.EQUAL_SYMBOL)),this.state=2718,s._algType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),42===e||384===e||454===e||458===e?(this.errorHandler.reportMatch(this),this.consume()):s._algType=this.errorHandler.recoverInline(this);break;case 13:switch(s=new ed(s),this.enterOuterAlt(s,13),this.state=2719,this.match(t.ALTER),this.state=2721,this.errorHandler.sync(this),e=this.tokenStream.LA(1),28===e&&(this.state=2720,this.match(t.COLUMN)),this.state=2723,this.uid(),this.state=2729,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SET:this.state=2724,this.match(t.SET),this.state=2725,this.match(t.DEFAULT),this.state=2726,this.defaultValue();break;case t.DROP:this.state=2727,this.match(t.DROP),this.state=2728,this.match(t.DEFAULT);break;default:throw new Ei(this)}break;case 14:switch(s=new Ad(s),this.enterOuterAlt(s,14),this.state=2731,this.match(t.CHANGE),this.state=2733,this.errorHandler.sync(this),e=this.tokenStream.LA(1),28===e&&(this.state=2732,this.match(t.COLUMN)),this.state=2735,s._oldColumn=this.uid(),this.state=2736,s._newColumn=this.uid(),this.state=2737,this.columnDefinition(),this.state=2741,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FIRST:this.state=2738,this.match(t.FIRST);break;case t.AFTER:this.state=2739,this.match(t.AFTER),this.state=2740,s._afterColumn=this.uid();case t.EOF:case t.PARTITION:case t.COMMA:case t.SEMI:}break;case 15:s=new fM(s),this.enterOuterAlt(s,15),this.state=2743,this.match(t.RENAME),this.state=2744,this.match(t.COLUMN),this.state=2745,s._oldColumn=this.uid(),this.state=2746,this.match(t.TO),this.state=2747,s._newColumn=this.uid();break;case 16:s=new nd(s),this.enterOuterAlt(s,16),this.state=2749,this.match(t.LOCK),this.state=2751,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=2750,this.match(t.EQUAL_SYMBOL)),this.state=2753,s._lockType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),42===e||419===e||529===e||611===e?(this.errorHandler.reportMatch(this),this.consume()):s._lockType=this.errorHandler.recoverInline(this);break;case 17:switch(s=new rd(s),this.enterOuterAlt(s,17),this.state=2754,this.match(t.MODIFY),this.state=2756,this.errorHandler.sync(this),e=this.tokenStream.LA(1),28===e&&(this.state=2755,this.match(t.COLUMN)),this.state=2758,this.uid(),this.state=2759,this.columnDefinition(),this.state=2763,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FIRST:this.state=2760,this.match(t.FIRST);break;case t.AFTER:this.state=2761,this.match(t.AFTER),this.state=2762,this.uid();case t.EOF:case t.PARTITION:case t.COMMA:case t.SEMI:}break;case 18:s=new td(s),this.enterOuterAlt(s,18),this.state=2765,this.match(t.DROP),this.state=2767,this.errorHandler.sync(this),e=this.tokenStream.LA(1),28===e&&(this.state=2766,this.match(t.COLUMN)),this.state=2769,this.uid(),this.state=2771,this.errorHandler.sync(this),e=this.tokenStream.LA(1),144===e&&(this.state=2770,this.match(t.RESTRICT));break;case 19:s=new QM(s),this.enterOuterAlt(s,19),this.state=2773,this.match(t.DROP),this.state=2774,e=this.tokenStream.LA(1),26===e||30===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2775,this.constraintName();break;case 20:s=new cd(s),this.enterOuterAlt(s,20),this.state=2776,this.match(t.DROP),this.state=2777,this.match(t.PRIMARY),this.state=2778,this.match(t.KEY);break;case 21:s=new ld(s),this.enterOuterAlt(s,21),this.state=2779,this.match(t.DROP),this.state=2780,s._indexFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),81===e||91===e?(this.errorHandler.reportMatch(this),this.consume()):s._indexFormat=this.errorHandler.recoverInline(this),this.state=2781,this.indexName();break;case 22:s=new bM(s),this.enterOuterAlt(s,22),this.state=2782,this.match(t.RENAME),this.state=2783,s._indexFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),81===e||91===e?(this.errorHandler.reportMatch(this),this.consume()):s._indexFormat=this.errorHandler.recoverInline(this),this.state=2784,this.indexName(),this.state=2785,this.match(t.TO),this.state=2786,this.uid();break;case 23:switch(s=new vM(s),this.enterOuterAlt(s,23),this.state=2788,this.match(t.ALTER),this.state=2790,this.errorHandler.sync(this),e=this.tokenStream.LA(1),28===e&&(this.state=2789,this.match(t.COLUMN)),this.state=2792,this.uid(),this.state=2806,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,353,this.context)){case 1:switch(this.state=2793,this.match(t.SET),this.state=2794,this.match(t.DEFAULT),this.state=2800,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.START_NATIONAL_STRING_LITERAL:case t.STRING_LITERAL:case t.STRING_CHARSET_NAME:this.state=2795,this.stringLiteral();break;case t.LR_BRACKET:this.state=2796,this.match(t.LR_BRACKET),this.state=2797,this.expression(0),this.state=2798,this.match(t.RR_BRACKET);break;default:throw new Ei(this)}break;case 2:this.state=2802,this.match(t.SET),this.state=2803,e=this.tokenStream.LA(1),459===e||673===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case 3:this.state=2804,this.match(t.DROP),this.state=2805,this.match(t.DEFAULT)}break;case 24:s=new ZM(s),this.enterOuterAlt(s,24),this.state=2808,this.match(t.ALTER),this.state=2809,this.match(t.INDEX),this.state=2810,this.indexName(),this.state=2811,e=this.tokenStream.LA(1),459===e||673===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case 25:s=new qM(s),this.enterOuterAlt(s,25),this.state=2813,this.match(t.DROP),this.state=2814,this.match(t.FOREIGN),this.state=2815,this.match(t.KEY),this.state=2816,this.uid();break;case 26:s=new BM(s),this.enterOuterAlt(s,26),this.state=2817,this.match(t.DISABLE),this.state=2818,this.match(t.KEYS);break;case 27:s=new od(s),this.enterOuterAlt(s,27),this.state=2819,this.match(t.ENABLE),this.state=2820,this.match(t.KEYS);break;case 28:switch(s=new WM(s),this.enterOuterAlt(s,28),this.state=2821,this.match(t.RENAME),this.state=2823,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(12===e||175===e)&&(this.state=2822,s._renameFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),12===e||175===e?(this.errorHandler.reportMatch(this),this.consume()):s._renameFormat=this.errorHandler.recoverInline(this)),this.state=2827,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,355,this.context)){case 1:this.state=2825,this.uid();break;case 2:this.state=2826,this.fullId()}break;case 29:s=new Id(s),this.enterOuterAlt(s,29),this.state=2829,this.match(t.ORDER),this.state=2830,this.match(t.BY),this.state=2831,this.uidList();break;case 30:switch(s=new YM(s),this.enterOuterAlt(s,30),this.state=2832,this.match(t.CONVERT),this.state=2833,this.match(t.TO),this.state=2837,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CHARSET:this.state=2834,this.match(t.CHARSET);break;case t.CHARACTER:this.state=2835,this.match(t.CHARACTER),this.state=2836,this.match(t.SET);break;default:throw new Ei(this)}this.state=2839,this.charsetName(),this.state=2842,this.errorHandler.sync(this),e=this.tokenStream.LA(1),27===e&&(this.state=2840,this.match(t.COLLATE),this.state=2841,this.collationName());break;case 31:s=new yM(s),this.enterOuterAlt(s,31),this.state=2845,this.errorHandler.sync(this),e=this.tokenStream.LA(1),42===e&&(this.state=2844,this.match(t.DEFAULT)),this.state=2847,this.match(t.CHARACTER),this.state=2848,this.match(t.SET),this.state=2849,this.match(t.EQUAL_SYMBOL),this.state=2850,this.charsetName(),this.state=2854,this.errorHandler.sync(this),e=this.tokenStream.LA(1),27===e&&(this.state=2851,this.match(t.COLLATE),this.state=2852,this.match(t.EQUAL_SYMBOL),this.state=2853,this.collationName());break;case 32:s=new hd(s),this.enterOuterAlt(s,32),this.state=2856,this.match(t.DISCARD),this.state=2857,this.match(t.TABLESPACE);break;case 33:s=new VM(s),this.enterOuterAlt(s,33),this.state=2858,this.match(t.IMPORT),this.state=2859,this.match(t.TABLESPACE);break;case 34:s=new sd(s),this.enterOuterAlt(s,34),this.state=2860,this.match(t.FORCE);break;case 35:s=new Ed(s),this.enterOuterAlt(s,35),this.state=2861,s._validationFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),192===e||677===e?(this.errorHandler.reportMatch(this),this.consume()):s._validationFormat=this.errorHandler.recoverInline(this),this.state=2862,this.match(t.VALIDATION);break;case 36:for(s=new XM(s),this.enterOuterAlt(s,36),this.state=2863,this.match(t.ADD),this.state=2865,this.errorHandler.sync(this),e=this.tokenStream.LA(1),28===e&&(this.state=2864,this.match(t.COLUMN)),this.state=2867,this.match(t.LR_BRACKET),this.state=2868,this.createDefinition(),this.state=2873,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=2869,this.match(t.COMMA),this.state=2870,this.createDefinition(),this.state=2875,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2876,this.match(t.RR_BRACKET);break;case 37:s=new zM(s),this.enterOuterAlt(s,37),this.state=2878,this.alterPartitionSpecification()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterPartitionSpecification(){let e,s=new ud(this.context,this.state);this.enterRule(s,148,t.RULE_alterPartitionSpecification);try{switch(this.state=2979,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ADD:for(s=new _d(s),this.enterOuterAlt(s,1),this.state=2881,this.match(t.ADD),this.state=2882,this.match(t.PARTITION),this.state=2883,this.match(t.LR_BRACKET),this.state=2884,this.partitionDefinition(),this.state=2889,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=2885,this.match(t.COMMA),this.state=2886,this.partitionDefinition(),this.state=2891,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2892,this.match(t.RR_BRACKET);break;case t.DROP:s=new Ld(s),this.enterOuterAlt(s,2),this.state=2894,this.match(t.DROP),this.state=2895,this.match(t.PARTITION),this.state=2896,this.uidList();break;case t.DISCARD:switch(s=new Cd(s),this.enterOuterAlt(s,3),this.state=2897,this.match(t.DISCARD),this.state=2898,this.match(t.PARTITION),this.state=2901,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:this.state=2899,this.uidList();break;case t.ALL:this.state=2900,this.match(t.ALL);break;default:throw new Ei(this)}this.state=2903,this.match(t.TABLESPACE);break;case t.IMPORT:switch(s=new Nd(s),this.enterOuterAlt(s,4),this.state=2904,this.match(t.IMPORT),this.state=2905,this.match(t.PARTITION),this.state=2908,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:this.state=2906,this.uidList();break;case t.ALL:this.state=2907,this.match(t.ALL);break;default:throw new Ei(this)}this.state=2910,this.match(t.TABLESPACE);break;case t.TRUNCATE:switch(s=new xd(s),this.enterOuterAlt(s,5),this.state=2911,this.match(t.TRUNCATE),this.state=2912,this.match(t.PARTITION),this.state=2915,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:this.state=2913,this.uidList();break;case t.ALL:this.state=2914,this.match(t.ALL);break;default:throw new Ei(this)}break;case t.COALESCE:s=new Ud(s),this.enterOuterAlt(s,6),this.state=2917,this.match(t.COALESCE),this.state=2918,this.match(t.PARTITION),this.state=2919,this.decimalLiteral();break;case t.REORGANIZE:for(s=new md(s),this.enterOuterAlt(s,7),this.state=2920,this.match(t.REORGANIZE),this.state=2921,this.match(t.PARTITION),this.state=2922,this.uidList(),this.state=2923,this.match(t.INTO),this.state=2924,this.match(t.LR_BRACKET),this.state=2925,this.partitionDefinition(),this.state=2930,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=2926,this.match(t.COMMA),this.state=2927,this.partitionDefinition(),this.state=2932,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2933,this.match(t.RR_BRACKET);break;case t.EXCHANGE:s=new Hd(s),this.enterOuterAlt(s,8),this.state=2935,this.match(t.EXCHANGE),this.state=2936,this.match(t.PARTITION),this.state=2937,this.uid(),this.state=2938,this.match(t.WITH),this.state=2939,this.match(t.TABLE),this.state=2940,this.tableName(),this.state=2943,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(192===e||677===e)&&(this.state=2941,s._validationFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),192===e||677===e?(this.errorHandler.reportMatch(this),this.consume()):s._validationFormat=this.errorHandler.recoverInline(this),this.state=2942,this.match(t.VALIDATION));break;case t.ANALYZE:switch(s=new Dd(s),this.enterOuterAlt(s,9),this.state=2945,this.match(t.ANALYZE),this.state=2946,this.match(t.PARTITION),this.state=2949,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:this.state=2947,this.uidList();break;case t.ALL:this.state=2948,this.match(t.ALL);break;default:throw new Ei(this)}break;case t.CHECK:switch(s=new dd(s),this.enterOuterAlt(s,10),this.state=2951,this.match(t.CHECK),this.state=2952,this.match(t.PARTITION),this.state=2955,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:this.state=2953,this.uidList();break;case t.ALL:this.state=2954,this.match(t.ALL);break;default:throw new Ei(this)}break;case t.OPTIMIZE:switch(s=new Md(s),this.enterOuterAlt(s,11),this.state=2957,this.match(t.OPTIMIZE),this.state=2958,this.match(t.PARTITION),this.state=2961,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:this.state=2959,this.uidList();break;case t.ALL:this.state=2960,this.match(t.ALL);break;default:throw new Ei(this)}break;case t.REBUILD:switch(s=new pd(s),this.enterOuterAlt(s,12),this.state=2963,this.match(t.REBUILD),this.state=2964,this.match(t.PARTITION),this.state=2967,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:this.state=2965,this.uidList();break;case t.ALL:this.state=2966,this.match(t.ALL);break;default:throw new Ei(this)}break;case t.REPAIR:switch(s=new kd(s),this.enterOuterAlt(s,13),this.state=2969,this.match(t.REPAIR),this.state=2970,this.match(t.PARTITION),this.state=2973,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:this.state=2971,this.uidList();break;case t.ALL:this.state=2972,this.match(t.ALL);break;default:throw new Ei(this)}break;case t.REMOVE:s=new Pd(s),this.enterOuterAlt(s,14),this.state=2975,this.match(t.REMOVE),this.state=2976,this.match(t.PARTITIONING);break;case t.UPGRADE:s=new gd(s),this.enterOuterAlt(s,15),this.state=2977,this.match(t.UPGRADE),this.state=2978,this.match(t.PARTITIONING);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}dropDatabase(){let e,s=new Gd(this.context,this.state);this.enterRule(s,150,t.RULE_dropDatabase);try{if(this.enterOuterAlt(s,1),1===(this.state=2981,this.match(t.DROP),this.state=2982,s._dbFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),39===e||150===e?(this.errorHandler.reportMatch(this),this.consume()):s._dbFormat=this.errorHandler.recoverInline(this),this.state=2984,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,375,this.context)))this.state=2983,this.ifExists();this.state=2986,this.databaseName()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}dropEvent(){let e=new Fd(this.context,this.state);this.enterRule(e,152,t.RULE_dropEvent);try{if(this.enterOuterAlt(e,1),1===(this.state=2988,this.match(t.DROP),this.state=2989,this.match(t.EVENT),this.state=2991,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,376,this.context)))this.state=2990,this.ifExists();this.state=2993,this.fullId()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropIndex(){let e,s=new vd(this.context,this.state);this.enterRule(s,154,t.RULE_dropIndex);try{if(this.enterOuterAlt(s,1),1===(this.state=2995,this.match(t.DROP),this.state=2996,this.match(t.INDEX),this.state=2998,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,377,this.context)))this.state=2997,s._intimeAction=this.tokenStream.LT(1),e=this.tokenStream.LA(1),531===e||537===e?(this.errorHandler.reportMatch(this),this.consume()):s._intimeAction=this.errorHandler.recoverInline(this);for(this.state=3e3,this.indexName(),this.state=3001,this.match(t.ON),this.state=3002,this.tableName(),this.state=3015,this.errorHandler.sync(this),e=this.tokenStream.LA(1);103===e||336===e;){switch(this.state=3013,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ALGORITHM:this.state=3003,this.match(t.ALGORITHM),this.state=3005,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=3004,this.match(t.EQUAL_SYMBOL)),this.state=3007,s._algType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),42===e||384===e||454===e?(this.errorHandler.reportMatch(this),this.consume()):s._algType=this.errorHandler.recoverInline(this);break;case t.LOCK:this.state=3008,this.match(t.LOCK),this.state=3010,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=3009,this.match(t.EQUAL_SYMBOL)),this.state=3012,s._lockType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),42===e||419===e||529===e||611===e?(this.errorHandler.reportMatch(this),this.consume()):s._lockType=this.errorHandler.recoverInline(this);break;default:throw new Ei(this)}this.state=3017,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}dropLogfileGroup(){let e=new Bd(this.context,this.state);this.enterRule(e,156,t.RULE_dropLogfileGroup);try{this.enterOuterAlt(e,1),this.state=3018,this.match(t.DROP),this.state=3019,this.match(t.LOGFILE),this.state=3020,this.match(t.GROUP),this.state=3021,this.uid(),this.state=3022,this.match(t.ENGINE),this.state=3023,this.match(t.EQUAL_SYMBOL),this.state=3024,this.engineName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropProcedure(){let e=new yd(this.context,this.state);this.enterRule(e,158,t.RULE_dropProcedure);try{if(this.enterOuterAlt(e,1),1===(this.state=3026,this.match(t.DROP),this.state=3027,this.match(t.PROCEDURE),this.state=3029,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,382,this.context)))this.state=3028,this.ifExists();this.state=3031,this.fullId()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropFunction(){let e=new fd(this.context,this.state);this.enterRule(e,160,t.RULE_dropFunction);try{if(this.enterOuterAlt(e,1),1===(this.state=3033,this.match(t.DROP),this.state=3034,this.match(t.FUNCTION),this.state=3036,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,383,this.context)))this.state=3035,this.ifExists();this.state=3038,this.fullId()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropServer(){let e=new Yd(this.context,this.state);this.enterRule(e,162,t.RULE_dropServer);try{if(this.enterOuterAlt(e,1),1===(this.state=3040,this.match(t.DROP),this.state=3041,this.match(t.SERVER),this.state=3043,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,384,this.context)))this.state=3042,this.ifExists();this.state=3045,this.uid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropTable(){let e,s=new wd(this.context,this.state);this.enterRule(s,164,t.RULE_dropTable);try{if(this.enterOuterAlt(s,1),1===(this.state=3047,this.match(t.DROP),this.state=3049,this.errorHandler.sync(this),e=this.tokenStream.LA(1),649===e&&(this.state=3048,this.match(t.TEMPORARY)),this.state=3051,this.match(t.TABLE),this.state=3053,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,386,this.context)))this.state=3052,this.ifExists();this.state=3055,this.tables(),this.state=3057,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(21===e||144===e)&&(this.state=3056,s._dropType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),21===e||144===e?(this.errorHandler.reportMatch(this),this.consume()):s._dropType=this.errorHandler.recoverInline(this))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}dropTablespace(){let e,s=new bd(this.context,this.state);this.enterRule(s,166,t.RULE_dropTablespace);try{this.enterOuterAlt(s,1),this.state=3059,this.match(t.DROP),this.state=3060,this.match(t.TABLESPACE),this.state=3061,this.uid(),this.state=3067,this.errorHandler.sync(this),e=this.tokenStream.LA(1),409===e&&(this.state=3062,this.match(t.ENGINE),this.state=3064,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1124===e&&(this.state=3063,this.match(t.EQUAL_SYMBOL)),this.state=3066,this.engineName())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}dropTrigger(){let e=new Wd(this.context,this.state);this.enterRule(e,168,t.RULE_dropTrigger);try{if(this.enterOuterAlt(e,1),1===(this.state=3069,this.match(t.DROP),this.state=3070,this.match(t.TRIGGER),this.state=3072,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,390,this.context)))this.state=3071,this.ifExists();this.state=3074,this.triggerName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dropView(){let e,s=new Vd(this.context,this.state);this.enterRule(s,170,t.RULE_dropView);try{if(this.enterOuterAlt(s,1),1===(this.state=3076,this.match(t.DROP),this.state=3077,this.match(t.VIEW),this.state=3079,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,391,this.context)))this.state=3078,this.ifExists();for(this.state=3081,this.fullId(),this.state=3086,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=3082,this.match(t.COMMA),this.state=3083,this.fullId(),this.state=3088,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3090,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(21===e||144===e)&&(this.state=3089,s._dropType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),21===e||144===e?(this.errorHandler.reportMatch(this),this.consume()):s._dropType=this.errorHandler.recoverInline(this))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}dropRole(){let e=new Xd(this.context,this.state);this.enterRule(e,172,t.RULE_dropRole);try{if(this.enterOuterAlt(e,1),1===(this.state=3092,this.match(t.DROP),this.state=3093,this.match(t.ROLE),this.state=3095,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,394,this.context)))this.state=3094,this.ifExists();this.state=3097,this.roleNameList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}setRole(){let e=new Kd(this.context,this.state);this.enterRule(e,174,t.RULE_setRole);try{switch(this.state=3112,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,396,this.context)){case 1:switch(this.enterOuterAlt(e,1),this.state=3099,this.match(t.SET),this.state=3100,this.match(t.DEFAULT),this.state=3101,this.match(t.ROLE),this.state=3105,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,395,this.context)){case 1:this.state=3102,this.match(t.NONE);break;case 2:this.state=3103,this.match(t.ALL);break;case 3:this.state=3104,this.roleNameList()}this.state=3107,this.match(t.TO),this.state=3108,this.userNameList();break;case 2:this.enterOuterAlt(e,2),this.state=3109,this.match(t.SET),this.state=3110,this.match(t.ROLE),this.state=3111,this.roleOption()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}renameTable(){let e,s=new Qd(this.context,this.state);this.enterRule(s,176,t.RULE_renameTable);try{for(this.enterOuterAlt(s,1),this.state=3114,this.match(t.RENAME),this.state=3115,this.match(t.TABLE),this.state=3116,this.renameTableClause(),this.state=3121,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=3117,this.match(t.COMMA),this.state=3118,this.renameTableClause(),this.state=3123,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}renameTableClause(){let e=new Jd(this.context,this.state);this.enterRule(e,178,t.RULE_renameTableClause);try{this.enterOuterAlt(e,1),this.state=3124,this.tableName(),this.state=3125,this.match(t.TO),this.state=3126,this.tableName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}truncateTable(){let e,s=new Zd(this.context,this.state);this.enterRule(s,180,t.RULE_truncateTable);try{this.enterOuterAlt(s,1),this.state=3128,this.match(t.TRUNCATE),this.state=3130,this.errorHandler.sync(this),e=this.tokenStream.LA(1),172===e&&(this.state=3129,this.match(t.TABLE)),this.state=3132,this.tableName()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}callStatement(){let e,s=new qd(this.context,this.state);this.enterRule(s,182,t.RULE_callStatement);try{if(this.enterOuterAlt(s,1),this.state=3134,this.match(t.CALL),this.state=3135,this.fullId(),this.state=3142,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e){switch(this.state=3136,this.match(t.LR_BRACKET),this.state=3139,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,399,this.context)){case 1:this.state=3137,this.constants();break;case 2:this.state=3138,this.expressions()}this.state=3141,this.match(t.RR_BRACKET)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}deleteStatement(){let e=new jd(this.context,this.state);this.enterRule(e,184,t.RULE_deleteStatement);try{switch(this.state=3146,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,401,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3144,this.singleDeleteStatement();break;case 2:this.enterOuterAlt(e,2),this.state=3145,this.multipleDeleteStatement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}doStatement(){let e=new zd(this.context,this.state);this.enterRule(e,186,t.RULE_doStatement);try{this.enterOuterAlt(e,1),this.state=3148,this.match(t.DO),this.state=3149,this.expressions()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}handlerStatement(){let e=new $d(this.context,this.state);this.enterRule(e,188,t.RULE_handlerStatement);try{switch(this.state=3155,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,402,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3151,this.handlerOpenStatement();break;case 2:this.enterOuterAlt(e,2),this.state=3152,this.handlerReadIndexStatement();break;case 3:this.enterOuterAlt(e,3),this.state=3153,this.handlerReadStatement();break;case 4:this.enterOuterAlt(e,4),this.state=3154,this.handlerCloseStatement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}insertStatement(){let e,s=new tU(this.context,this.state);this.enterRule(s,190,t.RULE_insertStatement);try{switch(this.enterOuterAlt(s,1),this.state=3157,this.match(t.INSERT),this.state=3159,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(43===e||75===e||106===e)&&(this.state=3158,s._priority=this.tokenStream.LT(1),e=this.tokenStream.LA(1),43===e||75===e||106===e?(this.errorHandler.reportMatch(this),this.consume()):s._priority=this.errorHandler.recoverInline(this)),this.state=3162,this.errorHandler.sync(this),e=this.tokenStream.LA(1),78===e&&(this.state=3161,this.match(t.IGNORE)),this.state=3165,this.errorHandler.sync(this),e=this.tokenStream.LA(1),87===e&&(this.state=3164,this.match(t.INTO)),this.state=3167,this.tableName(),this.state=3174,this.errorHandler.sync(this),e=this.tokenStream.LA(1),129===e&&(this.state=3168,this.match(t.PARTITION),this.state=3169,this.match(t.LR_BRACKET),this.state=3171,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=3170,s._partitions=this.uidList()),this.state=3173,this.match(t.RR_BRACKET)),this.state=3199,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SELECT:case t.VALUES:case t.VALUE:case t.LR_BRACKET:if(1===(this.state=3181,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,409,this.context))){if(1===(this.state=3176,this.match(t.LR_BRACKET),this.state=3178,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,408,this.context)))this.state=3177,s._columns=this.fullColumnNameList();this.state=3180,this.match(t.RR_BRACKET)}this.state=3183,this.insertStatementValue(),this.state=3188,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537155584||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=3185,this.errorHandler.sync(this),e=this.tokenStream.LA(1),12===e&&(this.state=3184,this.match(t.AS)),this.state=3187,this.uid());break;case t.SET:for(this.state=3190,this.match(t.SET),this.state=3191,s._setFirst=this.updatedElement(),this.state=3196,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=3192,this.match(t.COMMA),this.state=3193,s._updatedElement=this.updatedElement(),s._setElements.push(s._updatedElement),this.state=3198,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;default:throw new Ei(this)}if(this.state=3213,this.errorHandler.sync(this),e=this.tokenStream.LA(1),118===e)for(this.state=3201,this.match(t.ON),this.state=3202,this.match(t.DUPLICATE),this.state=3203,this.match(t.KEY),this.state=3204,this.match(t.UPDATE),this.state=3205,s._duplicatedFirst=this.updatedElement(),this.state=3210,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=3206,this.match(t.COMMA),this.state=3207,s._updatedElement=this.updatedElement(),s._duplicatedElements.push(s._updatedElement),this.state=3212,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}loadDataStatement(){let e,s=new eU(this.context,this.state);this.enterRule(s,192,t.RULE_loadDataStatement);try{if(this.enterOuterAlt(s,1),this.state=3215,this.match(t.LOAD),this.state=3216,this.match(t.DATA),this.state=3218,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(106===e||374===e)&&(this.state=3217,s._priority=this.tokenStream.LT(1),e=this.tokenStream.LA(1),106===e||374===e?(this.errorHandler.reportMatch(this),this.consume()):s._priority=this.errorHandler.recoverInline(this)),this.state=3221,this.errorHandler.sync(this),e=this.tokenStream.LA(1),474===e&&(this.state=3220,this.match(t.LOCAL)),this.state=3223,this.match(t.INFILE),this.state=3224,s._filename=this.match(t.STRING_LITERAL),this.state=3226,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(78===e||141===e)&&(this.state=3225,s._violation=this.tokenStream.LT(1),e=this.tokenStream.LA(1),78===e||141===e?(this.errorHandler.reportMatch(this),this.consume()):s._violation=this.errorHandler.recoverInline(this)),this.state=3228,this.match(t.INTO),this.state=3229,this.match(t.TABLE),this.state=3230,this.tableName(),this.state=3236,this.errorHandler.sync(this),e=this.tokenStream.LA(1),129===e&&(this.state=3231,this.match(t.PARTITION),this.state=3232,this.match(t.LR_BRACKET),this.state=3233,this.uidList(),this.state=3234,this.match(t.RR_BRACKET)),this.state=3241,this.errorHandler.sync(this),e=this.tokenStream.LA(1),25===e&&(this.state=3238,this.match(t.CHARACTER),this.state=3239,this.match(t.SET),this.state=3240,s._charset=this.charsetName()),this.state=3249,this.errorHandler.sync(this),e=this.tokenStream.LA(1),365===e||427===e){this.state=3243,s._fieldsFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),365===e||427===e?(this.errorHandler.reportMatch(this),this.consume()):s._fieldsFormat=this.errorHandler.recoverInline(this),this.state=3245,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=3244,this.selectFieldsInto(),this.state=3247,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(56===e||58===e||122===e||173===e)}if(this.state=3257,this.errorHandler.sync(this),e=this.tokenStream.LA(1),101===e){this.state=3251,this.match(t.LINES),this.state=3253,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=3252,this.selectLinesInto(),this.state=3255,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(169===e||173===e)}if(this.state=3263,this.errorHandler.sync(this),e=this.tokenStream.LA(1),78===e&&(this.state=3259,this.match(t.IGNORE),this.state=3260,this.decimalLiteral(),this.state=3261,s._linesFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),101===e||601===e?(this.errorHandler.reportMatch(this),this.consume()):s._linesFormat=this.errorHandler.recoverInline(this)),this.state=3276,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e){for(this.state=3265,this.match(t.LR_BRACKET),this.state=3266,this.assignmentField(),this.state=3271,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=3267,this.match(t.COMMA),this.state=3268,this.assignmentField(),this.state=3273,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3274,this.match(t.RR_BRACKET)}if(this.state=3287,this.errorHandler.sync(this),e=this.tokenStream.LA(1),153===e)for(this.state=3278,this.match(t.SET),this.state=3279,this.updatedElement(),this.state=3284,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=3280,this.match(t.COMMA),this.state=3281,this.updatedElement(),this.state=3286,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}loadXmlStatement(){let e,s=new sU(this.context,this.state);this.enterRule(s,194,t.RULE_loadXmlStatement);try{if(this.enterOuterAlt(s,1),this.state=3289,this.match(t.LOAD),this.state=3290,this.match(t.XML),this.state=3292,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(106===e||374===e)&&(this.state=3291,s._priority=this.tokenStream.LT(1),e=this.tokenStream.LA(1),106===e||374===e?(this.errorHandler.reportMatch(this),this.consume()):s._priority=this.errorHandler.recoverInline(this)),this.state=3295,this.errorHandler.sync(this),e=this.tokenStream.LA(1),474===e&&(this.state=3294,this.match(t.LOCAL)),this.state=3297,this.match(t.INFILE),this.state=3298,s._filename=this.match(t.STRING_LITERAL),this.state=3300,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(78===e||141===e)&&(this.state=3299,s._violation=this.tokenStream.LT(1),e=this.tokenStream.LA(1),78===e||141===e?(this.errorHandler.reportMatch(this),this.consume()):s._violation=this.errorHandler.recoverInline(this)),this.state=3302,this.match(t.INTO),this.state=3303,this.match(t.TABLE),this.state=3304,this.tableName(),this.state=3308,this.errorHandler.sync(this),e=this.tokenStream.LA(1),25===e&&(this.state=3305,this.match(t.CHARACTER),this.state=3306,this.match(t.SET),this.state=3307,s._charset=this.charsetName()),this.state=3316,this.errorHandler.sync(this),e=this.tokenStream.LA(1),601===e&&(this.state=3310,this.match(t.ROWS),this.state=3311,this.match(t.IDENTIFIED),this.state=3312,this.match(t.BY),this.state=3313,this.match(t.LESS_SYMBOL),this.state=3314,s._tag=this.match(t.STRING_LITERAL),this.state=3315,this.match(t.GREATER_SYMBOL)),this.state=3322,this.errorHandler.sync(this),e=this.tokenStream.LA(1),78===e&&(this.state=3318,this.match(t.IGNORE),this.state=3319,this.decimalLiteral(),this.state=3320,s._linesFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),101===e||601===e?(this.errorHandler.reportMatch(this),this.consume()):s._linesFormat=this.errorHandler.recoverInline(this)),this.state=3335,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e){for(this.state=3324,this.match(t.LR_BRACKET),this.state=3325,this.assignmentField(),this.state=3330,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=3326,this.match(t.COMMA),this.state=3327,this.assignmentField(),this.state=3332,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3333,this.match(t.RR_BRACKET)}if(this.state=3346,this.errorHandler.sync(this),e=this.tokenStream.LA(1),153===e)for(this.state=3337,this.match(t.SET),this.state=3338,this.updatedElement(),this.state=3343,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=3339,this.match(t.COMMA),this.state=3340,this.updatedElement(),this.state=3345,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}replaceStatement(){let e,s=new aU(this.context,this.state);this.enterRule(s,196,t.RULE_replaceStatement);try{switch(this.enterOuterAlt(s,1),this.state=3348,this.match(t.REPLACE),this.state=3350,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(43===e||106===e)&&(this.state=3349,s._priority=this.tokenStream.LT(1),e=this.tokenStream.LA(1),43===e||106===e?(this.errorHandler.reportMatch(this),this.consume()):s._priority=this.errorHandler.recoverInline(this)),this.state=3353,this.errorHandler.sync(this),e=this.tokenStream.LA(1),87===e&&(this.state=3352,this.match(t.INTO)),this.state=3355,this.tableName(),this.state=3361,this.errorHandler.sync(this),e=this.tokenStream.LA(1),129===e&&(this.state=3356,this.match(t.PARTITION),this.state=3357,this.match(t.LR_BRACKET),this.state=3358,s._partitions=this.uidList(),this.state=3359,this.match(t.RR_BRACKET)),this.state=3379,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SELECT:case t.VALUES:case t.VALUE:case t.LR_BRACKET:if(1===(this.state=3367,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,443,this.context)))this.state=3363,this.match(t.LR_BRACKET),this.state=3364,s._columns=this.uidList(),this.state=3365,this.match(t.RR_BRACKET);this.state=3369,this.insertStatementValue();break;case t.SET:for(this.state=3370,this.match(t.SET),this.state=3371,s._setFirst=this.updatedElement(),this.state=3376,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=3372,this.match(t.COMMA),this.state=3373,s._updatedElement=this.updatedElement(),s._setElements.push(s._updatedElement),this.state=3378,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}selectStatement(){let e,s=new rU(this.context,this.state);this.enterRule(s,198,t.RULE_selectStatement);try{let a;switch(this.state=3446,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,463,this.context)){case 1:s=new nU(s),this.enterOuterAlt(s,1),this.state=3381,this.querySpecification(),this.state=3383,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(65===e||103===e)&&(this.state=3382,this.lockClause());break;case 2:s=new hU(s),this.enterOuterAlt(s,2),this.state=3385,this.queryExpression(),this.state=3387,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(65===e||103===e)&&(this.state=3386,this.lockClause());break;case 3:switch(s=new iU(s),this.enterOuterAlt(s,3),this.state=3391,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SELECT:this.state=3389,this.querySpecificationNointo();break;case t.LR_BRACKET:this.state=3390,this.queryExpressionNointo();break;default:throw new Ei(this)}this.state=3394,this.errorHandler.sync(this),a=1;do{if(1!==a)throw new Ei(this);this.state=3393,this.unionStatement(),this.state=3396,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,449,this.context)}while(2!==a&&a!==ja.INVALID_ALT_NUMBER);if(this.state=3406,this.errorHandler.sync(this),e=this.tokenStream.LA(1),180===e)switch(this.state=3398,this.match(t.UNION),this.state=3400,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(6===e||49===e)&&(this.state=3399,s._unionType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),6===e||49===e?(this.errorHandler.reportMatch(this),this.consume()):s._unionType=this.errorHandler.recoverInline(this)),this.state=3404,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SELECT:this.state=3402,this.querySpecification();break;case t.LR_BRACKET:this.state=3403,this.queryExpression();break;default:throw new Ei(this)}if(1===(this.state=3409,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,453,this.context)))this.state=3408,this.orderByClause();this.state=3412,this.errorHandler.sync(this),e=this.tokenStream.LA(1),99===e&&(this.state=3411,this.limitClause()),this.state=3415,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(65===e||103===e)&&(this.state=3414,this.lockClause());break;case 4:s=new cU(s),this.enterOuterAlt(s,4),this.state=3417,this.queryExpressionNointo(),this.state=3419,this.errorHandler.sync(this),a=1;do{if(1!==a)throw new Ei(this);this.state=3418,this.unionParenthesis(),this.state=3421,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,456,this.context)}while(2!==a&&a!==ja.INVALID_ALT_NUMBER);if(1===(this.state=3428,this.errorHandler.sync(this),e=this.tokenStream.LA(1),180===e&&(this.state=3423,this.match(t.UNION),this.state=3425,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(6===e||49===e)&&(this.state=3424,s._unionType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),6===e||49===e?(this.errorHandler.reportMatch(this),this.consume()):s._unionType=this.errorHandler.recoverInline(this)),this.state=3427,this.queryExpression()),this.state=3431,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,459,this.context)))this.state=3430,this.orderByClause();this.state=3434,this.errorHandler.sync(this),e=this.tokenStream.LA(1),99===e&&(this.state=3433,this.limitClause()),this.state=3437,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(65===e||103===e)&&(this.state=3436,this.lockClause());break;case 5:s=new EU(s),this.enterOuterAlt(s,5),this.state=3439,this.querySpecificationNointo(),this.state=3442,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=3440,this.match(t.COMMA),this.state=3441,this.lateralStatement(),this.state=3444,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(1135===e)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}updateStatement(){let e=new TU(this.context,this.state);this.enterRule(e,200,t.RULE_updateStatement);try{switch(this.state=3450,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,464,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3448,this.singleUpdateStatement();break;case 2:this.enterOuterAlt(e,2),this.state=3449,this.multipleUpdateStatement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}valuesStatement(){let e,s=new oU(this.context,this.state);this.enterRule(s,202,t.RULE_valuesStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=3452,this.match(t.VALUES),this.state=3453,this.match(t.LR_BRACKET),this.state=3455,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,465,this.context)))this.state=3454,this.expressionsWithDefaults();for(this.state=3457,this.match(t.RR_BRACKET),this.state=3466,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;){if(1===(this.state=3458,this.match(t.COMMA),this.state=3459,this.match(t.LR_BRACKET),this.state=3461,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,466,this.context)))this.state=3460,this.expressionsWithDefaults();this.state=3463,this.match(t.RR_BRACKET),this.state=3468,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}insertStatementValue(){let e,s=new RU(this.context,this.state);this.enterRule(s,204,t.RULE_insertStatementValue);try{switch(this.state=3487,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SELECT:case t.LR_BRACKET:this.enterOuterAlt(s,1),this.state=3469,this.selectStatement();break;case t.VALUES:case t.VALUE:if(this.enterOuterAlt(s,2),1===(this.state=3470,s._insertFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),188===e||669===e?(this.errorHandler.reportMatch(this),this.consume()):s._insertFormat=this.errorHandler.recoverInline(this),this.state=3471,this.match(t.LR_BRACKET),this.state=3473,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,468,this.context)))this.state=3472,this.expressionsWithDefaults();for(this.state=3475,this.match(t.RR_BRACKET),this.state=3484,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;){if(1===(this.state=3476,this.match(t.COMMA),this.state=3477,this.match(t.LR_BRACKET),this.state=3479,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,469,this.context)))this.state=3478,this.expressionsWithDefaults();this.state=3481,this.match(t.RR_BRACKET),this.state=3486,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}updatedElement(){let e=new AU(this.context,this.state);this.enterRule(e,206,t.RULE_updatedElement);try{switch(this.enterOuterAlt(e,1),this.state=3489,this.fullColumnName(),this.state=3490,this.match(t.EQUAL_SYMBOL),this.state=3493,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,472,this.context)){case 1:this.state=3491,this.expression(0);break;case 2:this.state=3492,this.match(t.DEFAULT)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}assignmentField(){let e=new SU(this.context,this.state);this.enterRule(e,208,t.RULE_assignmentField);try{switch(this.state=3497,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:this.enterOuterAlt(e,1),this.state=3495,this.uid();break;case t.LOCAL_ID:this.enterOuterAlt(e,2),this.state=3496,this.match(t.LOCAL_ID);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}lockClause(){let e=new lU(this.context,this.state);this.enterRule(e,210,t.RULE_lockClause);try{switch(this.state=3505,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FOR:this.enterOuterAlt(e,1),this.state=3499,this.match(t.FOR),this.state=3500,this.match(t.UPDATE);break;case t.LOCK:this.enterOuterAlt(e,2),this.state=3501,this.match(t.LOCK),this.state=3502,this.match(t.IN),this.state=3503,this.match(t.SHARE),this.state=3504,this.match(t.MODE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}singleDeleteStatement(){let e,s=new OU(this.context,this.state);this.enterRule(s,212,t.RULE_singleDeleteStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=3507,this.match(t.DELETE),this.state=3509,this.errorHandler.sync(this),e=this.tokenStream.LA(1),106===e&&(this.state=3508,s._priority=this.match(t.LOW_PRIORITY)),this.state=3512,this.errorHandler.sync(this),e=this.tokenStream.LA(1),568===e&&(this.state=3511,this.match(t.QUICK)),this.state=3515,this.errorHandler.sync(this),e=this.tokenStream.LA(1),78===e&&(this.state=3514,this.match(t.IGNORE)),this.state=3517,this.match(t.FROM),this.state=3518,this.tableName(),this.state=3523,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,479,this.context)))this.state=3520,this.errorHandler.sync(this),e=this.tokenStream.LA(1),12===e&&(this.state=3519,this.match(t.AS)),this.state=3522,this.uid();this.state=3530,this.errorHandler.sync(this),e=this.tokenStream.LA(1),129===e&&(this.state=3525,this.match(t.PARTITION),this.state=3526,this.match(t.LR_BRACKET),this.state=3527,this.uidList(),this.state=3528,this.match(t.RR_BRACKET)),this.state=3534,this.errorHandler.sync(this),e=this.tokenStream.LA(1),190===e&&(this.state=3532,this.match(t.WHERE),this.state=3533,this.expression(0)),this.state=3537,this.errorHandler.sync(this),e=this.tokenStream.LA(1),124===e&&(this.state=3536,this.orderByClause()),this.state=3541,this.errorHandler.sync(this),e=this.tokenStream.LA(1),99===e&&(this.state=3539,this.match(t.LIMIT),this.state=3540,this.limitClauseAtom())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}multipleDeleteStatement(){let e,s=new IU(this.context,this.state);this.enterRule(s,214,t.RULE_multipleDeleteStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=3543,this.match(t.DELETE),this.state=3545,this.errorHandler.sync(this),e=this.tokenStream.LA(1),106===e&&(this.state=3544,s._priority=this.match(t.LOW_PRIORITY)),this.state=3548,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,485,this.context)))this.state=3547,this.match(t.QUICK);switch(this.state=3551,this.errorHandler.sync(this),e=this.tokenStream.LA(1),78===e&&(this.state=3550,this.match(t.IGNORE)),this.state=3592,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:for(this.state=3553,this.tableName(),this.state=3556,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1132===e&&(this.state=3554,this.match(t.DOT),this.state=3555,this.match(t.STAR)),this.state=3566,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=3558,this.match(t.COMMA),this.state=3559,this.tableName(),this.state=3562,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1132===e&&(this.state=3560,this.match(t.DOT),this.state=3561,this.match(t.STAR)),this.state=3568,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3569,this.match(t.FROM),this.state=3570,this.tableSources();break;case t.FROM:for(this.state=3572,this.match(t.FROM),this.state=3573,this.tableName(),this.state=3576,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1132===e&&(this.state=3574,this.match(t.DOT),this.state=3575,this.match(t.STAR)),this.state=3586,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=3578,this.match(t.COMMA),this.state=3579,this.tableName(),this.state=3582,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1132===e&&(this.state=3580,this.match(t.DOT),this.state=3581,this.match(t.STAR)),this.state=3588,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3589,this.match(t.USING),this.state=3590,this.tableSources();break;default:throw new Ei(this)}this.state=3596,this.errorHandler.sync(this),e=this.tokenStream.LA(1),190===e&&(this.state=3594,this.match(t.WHERE),this.state=3595,this.expression(0))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}handlerOpenStatement(){let e,s=new uU(this.context,this.state);this.enterRule(s,216,t.RULE_handlerOpenStatement);try{this.enterOuterAlt(s,1),this.state=3598,this.match(t.HANDLER),this.state=3599,this.tableName(),this.state=3600,this.match(t.OPEN),this.state=3605,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537155584||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=3602,this.errorHandler.sync(this),e=this.tokenStream.LA(1),12===e&&(this.state=3601,this.match(t.AS)),this.state=3604,this.uid())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}handlerReadIndexStatement(){let e,s=new NU(this.context,this.state);this.enterRule(s,218,t.RULE_handlerReadIndexStatement);try{switch(this.enterOuterAlt(s,1),this.state=3607,this.match(t.HANDLER),this.state=3608,this.tableName(),this.state=3609,this.match(t.READ),this.state=3610,s._index=this.uid(),this.state=3617,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.EQUAL_SYMBOL:case t.GREATER_SYMBOL:case t.LESS_SYMBOL:case t.EXCLAMATION_SYMBOL:this.state=3611,this.comparisonOperator(),this.state=3612,this.match(t.LR_BRACKET),this.state=3613,this.constants(),this.state=3614,this.match(t.RR_BRACKET);break;case t.FIRST:case t.LAST:case t.NEXT:case t.PREV:this.state=3616,s._moveOrder=this.tokenStream.LT(1),e=this.tokenStream.LA(1),430===e||469===e||520===e||562===e?(this.errorHandler.reportMatch(this),this.consume()):s._moveOrder=this.errorHandler.recoverInline(this);break;default:throw new Ei(this)}this.state=3621,this.errorHandler.sync(this),e=this.tokenStream.LA(1),190===e&&(this.state=3619,this.match(t.WHERE),this.state=3620,this.expression(0)),this.state=3625,this.errorHandler.sync(this),e=this.tokenStream.LA(1),99===e&&(this.state=3623,this.match(t.LIMIT),this.state=3624,this.limitClauseAtom())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}handlerReadStatement(){let e,s=new LU(this.context,this.state);this.enterRule(s,220,t.RULE_handlerReadStatement);try{this.enterOuterAlt(s,1),this.state=3627,this.match(t.HANDLER),this.state=3628,this.tableName(),this.state=3629,this.match(t.READ),this.state=3630,s._moveOrder=this.tokenStream.LT(1),e=this.tokenStream.LA(1),430===e||520===e?(this.errorHandler.reportMatch(this),this.consume()):s._moveOrder=this.errorHandler.recoverInline(this),this.state=3633,this.errorHandler.sync(this),e=this.tokenStream.LA(1),190===e&&(this.state=3631,this.match(t.WHERE),this.state=3632,this.expression(0)),this.state=3637,this.errorHandler.sync(this),e=this.tokenStream.LA(1),99===e&&(this.state=3635,this.match(t.LIMIT),this.state=3636,this.limitClauseAtom())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}handlerCloseStatement(){let e=new CU(this.context,this.state);this.enterRule(e,222,t.RULE_handlerCloseStatement);try{this.enterOuterAlt(e,1),this.state=3639,this.match(t.HANDLER),this.state=3640,this.tableName(),this.state=3641,this.match(t.CLOSE)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}singleUpdateStatement(){let e,s=new _U(this.context,this.state);this.enterRule(s,224,t.RULE_singleUpdateStatement);try{for(this.enterOuterAlt(s,1),this.state=3643,this.match(t.UPDATE),this.state=3645,this.errorHandler.sync(this),e=this.tokenStream.LA(1),106===e&&(this.state=3644,s._priority=this.match(t.LOW_PRIORITY)),this.state=3648,this.errorHandler.sync(this),e=this.tokenStream.LA(1),78===e&&(this.state=3647,this.match(t.IGNORE)),this.state=3650,this.tableName(),this.state=3655,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537155584||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=3652,this.errorHandler.sync(this),e=this.tokenStream.LA(1),12===e&&(this.state=3651,this.match(t.AS)),this.state=3654,this.uid()),this.state=3657,this.match(t.SET),this.state=3658,this.updatedElement(),this.state=3663,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=3659,this.match(t.COMMA),this.state=3660,this.updatedElement(),this.state=3665,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3668,this.errorHandler.sync(this),e=this.tokenStream.LA(1),190===e&&(this.state=3666,this.match(t.WHERE),this.state=3667,this.expression(0)),this.state=3671,this.errorHandler.sync(this),e=this.tokenStream.LA(1),124===e&&(this.state=3670,this.orderByClause()),this.state=3674,this.errorHandler.sync(this),e=this.tokenStream.LA(1),99===e&&(this.state=3673,this.limitClause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}multipleUpdateStatement(){let e,s=new PU(this.context,this.state);this.enterRule(s,226,t.RULE_multipleUpdateStatement);try{for(this.enterOuterAlt(s,1),this.state=3676,this.match(t.UPDATE),this.state=3678,this.errorHandler.sync(this),e=this.tokenStream.LA(1),106===e&&(this.state=3677,s._priority=this.match(t.LOW_PRIORITY)),this.state=3681,this.errorHandler.sync(this),e=this.tokenStream.LA(1),78===e&&(this.state=3680,this.match(t.IGNORE)),this.state=3683,this.tableNames(),this.state=3684,this.match(t.SET),this.state=3685,this.updatedElement(),this.state=3690,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=3686,this.match(t.COMMA),this.state=3687,this.updatedElement(),this.state=3692,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3695,this.errorHandler.sync(this),e=this.tokenStream.LA(1),190===e&&(this.state=3693,this.match(t.WHERE),this.state=3694,this.expression(0))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}orderByClause(){let e=new MU(this.context,this.state);this.enterRule(e,228,t.RULE_orderByClause);try{let s;for(this.enterOuterAlt(e,1),this.state=3697,this.match(t.ORDER),this.state=3698,this.match(t.BY),this.state=3699,this.orderByExpression(),this.state=3704,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,514,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=3700,this.match(t.COMMA),this.state=3701,this.orderByExpression()),this.state=3706,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,514,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}orderByExpression(){let e,s=new dU(this.context,this.state);this.enterRule(s,230,t.RULE_orderByExpression);try{this.enterOuterAlt(s,1),this.state=3707,this.expression(0),this.state=3709,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(13===e||45===e)&&(this.state=3708,s._order=this.tokenStream.LT(1),e=this.tokenStream.LA(1),13===e||45===e?(this.errorHandler.reportMatch(this),this.consume()):s._order=this.errorHandler.recoverInline(this))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableSources(){let e=new UU(this.context,this.state);this.enterRule(e,232,t.RULE_tableSources);try{let s;for(this.enterOuterAlt(e,1),this.state=3711,this.tableSource(),this.state=3716,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,516,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=3712,this.match(t.COMMA),this.state=3713,this.tableSource()),this.state=3718,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,516,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableSource(){let e,s=new mU(this.context,this.state);this.enterRule(s,234,t.RULE_tableSource);try{let a;switch(this.state=3737,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,519,this.context)){case 1:for(s=new gU(s),this.enterOuterAlt(s,1),this.state=3719,this.tableSourceItem(),this.state=3723,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,517,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3720,this.joinPart()),this.state=3725,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,517,this.context);break;case 2:for(s=new pU(s),this.enterOuterAlt(s,2),this.state=3726,this.match(t.LR_BRACKET),this.state=3727,this.tableSourceItem(),this.state=3731,this.errorHandler.sync(this),e=this.tokenStream.LA(1);34===e||!(e-83&-32)&&1<<e-83&1073758337||148===e||171===e;)this.state=3728,this.joinPart(),this.state=3733,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3734,this.match(t.RR_BRACKET);break;case 3:s=new DU(s),this.enterOuterAlt(s,3),this.state=3736,this.jsonTable()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableSourceItem(){let e,s=new xU(this.context,this.state);this.enterRule(s,236,t.RULE_tableSourceItem);try{let a;switch(this.state=3776,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,526,this.context)){case 1:if(s=new HU(s),this.enterOuterAlt(s,1),1===(this.state=3739,this.tableName(),this.state=3745,this.errorHandler.sync(this),e=this.tokenStream.LA(1),129===e&&(this.state=3740,this.match(t.PARTITION),this.state=3741,this.match(t.LR_BRACKET),this.state=3742,this.uidList(),this.state=3743,this.match(t.RR_BRACKET)),this.state=3751,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,522,this.context)))this.state=3748,this.errorHandler.sync(this),e=this.tokenStream.LA(1),12===e&&(this.state=3747,this.match(t.AS)),this.state=3750,s._alias=this.uid();if(this.state=3761,this.errorHandler.sync(this),e=this.tokenStream.LA(1),66===e||78===e||186===e)for(this.state=3753,this.indexHint(),this.state=3758,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,523,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3754,this.match(t.COMMA),this.state=3755,this.indexHint()),this.state=3760,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,523,this.context);break;case 2:s=new kU(s),this.enterOuterAlt(s,2),this.state=3763,this.match(t.LR_BRACKET),this.state=3764,s._parenthesisSubquery=this.selectStatement(),this.state=3765,this.match(t.RR_BRACKET),this.state=3768,this.errorHandler.sync(this),e=this.tokenStream.LA(1),12===e&&(this.state=3767,this.match(t.AS)),this.state=3770,s._alias=this.uid();break;case 3:s=new GU(s),this.enterOuterAlt(s,3),this.state=3772,this.match(t.LR_BRACKET),this.state=3773,this.tableSources(),this.state=3774,this.match(t.RR_BRACKET)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}indexHint(){let e,s=new FU(this.context,this.state);this.enterRule(s,238,t.RULE_indexHint);try{this.enterOuterAlt(s,1),this.state=3778,s._indexHintAction=this.tokenStream.LT(1),e=this.tokenStream.LA(1),66===e||78===e||186===e?(this.errorHandler.reportMatch(this),this.consume()):s._indexHintAction=this.errorHandler.recoverInline(this),this.state=3779,s._keyFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),81===e||91===e?(this.errorHandler.reportMatch(this),this.consume()):s._keyFormat=this.errorHandler.recoverInline(this),this.state=3782,this.errorHandler.sync(this),e=this.tokenStream.LA(1),65===e&&(this.state=3780,this.match(t.FOR),this.state=3781,this.indexHintType()),this.state=3784,this.match(t.LR_BRACKET),this.state=3785,this.indexNameList(),this.state=3786,this.match(t.RR_BRACKET)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}indexHintType(){let e=new vU(this.context,this.state);this.enterRule(e,240,t.RULE_indexHintType);try{switch(this.state=3793,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.JOIN:this.enterOuterAlt(e,1),this.state=3788,this.match(t.JOIN);break;case t.ORDER:this.enterOuterAlt(e,2),this.state=3789,this.match(t.ORDER),this.state=3790,this.match(t.BY);break;case t.GROUP:this.enterOuterAlt(e,3),this.state=3791,this.match(t.GROUP),this.state=3792,this.match(t.BY);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}joinPart(){let e,s=new BU(this.context,this.state);this.enterRule(s,242,t.RULE_joinPart);try{let a;switch(this.state=3842,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CROSS:case t.INNER:case t.JOIN:if(s=new yU(s),this.enterOuterAlt(s,1),1===(this.state=3796,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(34===e||83===e)&&(this.state=3795,e=this.tokenStream.LA(1),34===e||83===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=3798,this.match(t.JOIN),this.state=3800,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,530,this.context)))this.state=3799,this.match(t.LATERAL);for(this.state=3802,this.tableSourceItem(),this.state=3806,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,531,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3803,this.joinSpec()),this.state=3808,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,531,this.context);break;case t.STRAIGHT_JOIN:for(s=new wU(s),this.enterOuterAlt(s,2),this.state=3809,this.match(t.STRAIGHT_JOIN),this.state=3810,this.tableSourceItem(),this.state=3815,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,532,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3811,this.match(t.ON),this.state=3812,this.expression(0)),this.state=3817,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,532,this.context);break;case t.LEFT:case t.RIGHT:if(s=new YU(s),this.enterOuterAlt(s,3),1===(this.state=3818,e=this.tokenStream.LA(1),97===e||148===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3820,this.errorHandler.sync(this),e=this.tokenStream.LA(1),126===e&&(this.state=3819,this.match(t.OUTER)),this.state=3822,this.match(t.JOIN),this.state=3824,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,534,this.context)))this.state=3823,this.match(t.LATERAL);for(this.state=3826,this.tableSourceItem(),this.state=3830,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,535,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3827,this.joinSpec()),this.state=3832,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,535,this.context);break;case t.NATURAL:s=new fU(s),this.enterOuterAlt(s,4),this.state=3833,this.match(t.NATURAL),this.state=3838,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(97===e||148===e)&&(this.state=3834,e=this.tokenStream.LA(1),97===e||148===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3836,this.errorHandler.sync(this),e=this.tokenStream.LA(1),126===e&&(this.state=3835,this.match(t.OUTER))),this.state=3840,this.match(t.JOIN),this.state=3841,this.tableSourceItem();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}joinSpec(){let e=new bU(this.context,this.state);this.enterRule(e,244,t.RULE_joinSpec);try{switch(this.state=3851,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ON:this.enterOuterAlt(e,1),this.state=3844,this.match(t.ON),this.state=3845,this.expression(0);break;case t.USING:this.enterOuterAlt(e,2),this.state=3846,this.match(t.USING),this.state=3847,this.match(t.LR_BRACKET),this.state=3848,this.uidList(),this.state=3849,this.match(t.RR_BRACKET);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}queryExpression(){let e=new WU(this.context,this.state);this.enterRule(e,246,t.RULE_queryExpression);try{switch(this.state=3861,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,540,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3853,this.match(t.LR_BRACKET),this.state=3854,this.querySpecification(),this.state=3855,this.match(t.RR_BRACKET);break;case 2:this.enterOuterAlt(e,2),this.state=3857,this.match(t.LR_BRACKET),this.state=3858,this.queryExpression(),this.state=3859,this.match(t.RR_BRACKET)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}queryExpressionNointo(){let e=new VU(this.context,this.state);this.enterRule(e,248,t.RULE_queryExpressionNointo);try{switch(this.state=3871,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,541,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3863,this.match(t.LR_BRACKET),this.state=3864,this.querySpecificationNointo(),this.state=3865,this.match(t.RR_BRACKET);break;case 2:this.enterOuterAlt(e,2),this.state=3867,this.match(t.LR_BRACKET),this.state=3868,this.queryExpressionNointo(),this.state=3869,this.match(t.RR_BRACKET)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}querySpecification(){let e,s=new XU(this.context,this.state);this.enterRule(s,250,t.RULE_querySpecification);try{let a;switch(this.state=3927,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,556,this.context)){case 1:for(this.enterOuterAlt(s,1),this.state=3873,this.match(t.SELECT),this.state=3877,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,542,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3874,this.selectSpec()),this.state=3879,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,542,this.context);if(1===(this.state=3880,this.selectElements(),this.state=3882,this.errorHandler.sync(this),e=this.tokenStream.LA(1),87===e&&(this.state=3881,this.selectIntoExpression()),this.state=3884,this.fromClause(),this.state=3886,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,544,this.context)))this.state=3885,this.groupByClause();if(1===(this.state=3889,this.errorHandler.sync(this),e=this.tokenStream.LA(1),74===e&&(this.state=3888,this.havingClause()),this.state=3892,this.errorHandler.sync(this),e=this.tokenStream.LA(1),676===e&&(this.state=3891,this.windowClause()),this.state=3895,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,547,this.context)))this.state=3894,this.orderByClause();if(1===(this.state=3898,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,548,this.context)))this.state=3897,this.limitClause();break;case 2:for(this.enterOuterAlt(s,2),this.state=3900,this.match(t.SELECT),this.state=3904,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,549,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3901,this.selectSpec()),this.state=3906,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,549,this.context);if(1===(this.state=3907,this.selectElements(),this.state=3908,this.fromClause(),this.state=3910,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,550,this.context)))this.state=3909,this.groupByClause();if(1===(this.state=3913,this.errorHandler.sync(this),e=this.tokenStream.LA(1),74===e&&(this.state=3912,this.havingClause()),this.state=3916,this.errorHandler.sync(this),e=this.tokenStream.LA(1),676===e&&(this.state=3915,this.windowClause()),this.state=3919,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,553,this.context)))this.state=3918,this.orderByClause();if(1===(this.state=3922,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,554,this.context)))this.state=3921,this.limitClause();this.state=3925,this.errorHandler.sync(this),e=this.tokenStream.LA(1),87===e&&(this.state=3924,this.selectIntoExpression())}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}querySpecificationNointo(){let e,s=new KU(this.context,this.state);this.enterRule(s,252,t.RULE_querySpecificationNointo);try{let a;for(this.enterOuterAlt(s,1),this.state=3929,this.match(t.SELECT),this.state=3933,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,557,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3930,this.selectSpec()),this.state=3935,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,557,this.context);if(1===(this.state=3936,this.selectElements(),this.state=3937,this.fromClause(),this.state=3939,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,558,this.context)))this.state=3938,this.groupByClause();if(1===(this.state=3942,this.errorHandler.sync(this),e=this.tokenStream.LA(1),74===e&&(this.state=3941,this.havingClause()),this.state=3945,this.errorHandler.sync(this),e=this.tokenStream.LA(1),676===e&&(this.state=3944,this.windowClause()),this.state=3948,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,561,this.context)))this.state=3947,this.orderByClause();if(1===(this.state=3951,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,562,this.context)))this.state=3950,this.limitClause();if(1===(this.state=3954,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,563,this.context)))this.state=3953,this.unionStatement()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}unionParenthesis(){let e,s=new QU(this.context,this.state);this.enterRule(s,254,t.RULE_unionParenthesis);try{this.enterOuterAlt(s,1),this.state=3956,this.match(t.UNION),this.state=3958,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(6===e||49===e)&&(this.state=3957,s._unionType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),6===e||49===e?(this.errorHandler.reportMatch(this),this.consume()):s._unionType=this.errorHandler.recoverInline(this)),this.state=3960,this.queryExpressionNointo()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}unionStatement(){let e,s=new JU(this.context,this.state);this.enterRule(s,256,t.RULE_unionStatement);try{switch(this.enterOuterAlt(s,1),this.state=3962,this.match(t.UNION),this.state=3964,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(6===e||49===e)&&(this.state=3963,s._unionType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),6===e||49===e?(this.errorHandler.reportMatch(this),this.consume()):s._unionType=this.errorHandler.recoverInline(this)),this.state=3968,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SELECT:this.state=3966,this.querySpecificationNointo();break;case t.LR_BRACKET:this.state=3967,this.queryExpressionNointo();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}lateralStatement(){let e,s=new ZU(this.context,this.state);this.enterRule(s,258,t.RULE_lateralStatement);try{switch(this.enterOuterAlt(s,1),this.state=3970,this.match(t.LATERAL),this.state=3985,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,570,this.context)){case 1:this.state=3971,this.querySpecificationNointo();break;case 2:this.state=3972,this.queryExpressionNointo();break;case 3:switch(this.state=3973,this.match(t.LR_BRACKET),this.state=3976,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SELECT:this.state=3974,this.querySpecificationNointo();break;case t.LR_BRACKET:this.state=3975,this.queryExpressionNointo();break;default:throw new Ei(this)}if(1===(this.state=3978,this.match(t.RR_BRACKET),this.state=3983,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,569,this.context)))this.state=3980,this.errorHandler.sync(this),e=this.tokenStream.LA(1),12===e&&(this.state=3979,this.match(t.AS)),this.state=3982,this.uid()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}jsonTable(){let e,s=new qU(this.context,this.state);this.enterRule(s,260,t.RULE_jsonTable);try{if(1===(this.enterOuterAlt(s,1),this.state=3987,this.match(t.JSON_TABLE),this.state=3988,this.match(t.LR_BRACKET),this.state=3989,this.match(t.STRING_LITERAL),this.state=3990,this.match(t.COMMA),this.state=3991,this.match(t.STRING_LITERAL),this.state=3992,this.match(t.COLUMNS),this.state=3993,this.match(t.LR_BRACKET),this.state=3994,this.jsonColumnList(),this.state=3995,this.match(t.RR_BRACKET),this.state=3996,this.match(t.RR_BRACKET),this.state=4001,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,572,this.context)))this.state=3998,this.errorHandler.sync(this),e=this.tokenStream.LA(1),12===e&&(this.state=3997,this.match(t.AS)),this.state=4e3,this.uid()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}jsonColumnList(){let e,s=new jU(this.context,this.state);this.enterRule(s,262,t.RULE_jsonColumnList);try{for(this.enterOuterAlt(s,1),this.state=4003,this.jsonColumn(),this.state=4008,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=4004,this.match(t.COMMA),this.state=4005,this.jsonColumn(),this.state=4010,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}jsonColumn(){let e,s=new zU(this.context,this.state);this.enterRule(s,264,t.RULE_jsonColumn);try{switch(this.state=4040,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,579,this.context)){case 1:switch(this.enterOuterAlt(s,1),this.state=4011,this.fullColumnName(),this.state=4028,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FOR:this.state=4012,this.match(t.FOR),this.state=4013,this.match(t.ORDINALITY);break;case t.CHARACTER:case t.SET:case t.TINYINT:case t.SMALLINT:case t.MEDIUMINT:case t.MIDDLEINT:case t.INT:case t.INT1:case t.INT2:case t.INT3:case t.INT4:case t.INT8:case t.INTEGER:case t.BIGINT:case t.REAL:case t.DOUBLE:case t.FLOAT:case t.FLOAT4:case t.FLOAT8:case t.DECIMAL:case t.DEC:case t.NUMERIC:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.CHAR:case t.VARCHAR:case t.NVARCHAR:case t.NATIONAL:case t.BINARY:case t.VARBINARY:case t.TINYBLOB:case t.BLOB:case t.MEDIUMBLOB:case t.LONG:case t.LONGBLOB:case t.TINYTEXT:case t.TEXT:case t.MEDIUMTEXT:case t.LONGTEXT:case t.ENUM:case t.SERIAL:case t.BIT:case t.BOOL:case t.BOOLEAN:case t.FIXED:case t.JSON:case t.NCHAR:case t.GEOMETRYCOLLECTION:case t.GEOMCOLLECTION:case t.GEOMETRY:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:switch(this.state=4014,this.dataType(),this.state=4026,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.PATH:if(1===(this.state=4015,this.match(t.PATH),this.state=4016,this.match(t.STRING_LITERAL),this.state=4018,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,574,this.context)))this.state=4017,this.jsonOnEmpty();this.state=4021,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(42===e||116===e||411===e)&&(this.state=4020,this.jsonOnError());break;case t.EXISTS:this.state=4023,this.match(t.EXISTS),this.state=4024,this.match(t.PATH),this.state=4025,this.match(t.STRING_LITERAL);break;default:throw new Ei(this)}break;default:throw new Ei(this)}break;case 2:this.enterOuterAlt(s,2),this.state=4030,this.match(t.NESTED),this.state=4032,this.errorHandler.sync(this),e=this.tokenStream.LA(1),285===e&&(this.state=4031,this.match(t.PATH)),this.state=4034,this.match(t.STRING_LITERAL),this.state=4035,this.match(t.COLUMNS),this.state=4036,this.match(t.LR_BRACKET),this.state=4037,this.jsonColumnList(),this.state=4038,this.match(t.RR_BRACKET)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}jsonOnEmpty(){let e=new $U(this.context,this.state);this.enterRule(e,266,t.RULE_jsonOnEmpty);try{switch(this.enterOuterAlt(e,1),this.state=4046,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NULL_LITERAL:this.state=4042,this.match(t.NULL_LITERAL);break;case t.ERROR:this.state=4043,this.match(t.ERROR);break;case t.DEFAULT:this.state=4044,this.match(t.DEFAULT),this.state=4045,this.defaultValue();break;default:throw new Ei(this)}this.state=4048,this.match(t.ON),this.state=4049,this.match(t.EMPTY)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}jsonOnError(){let e=new tm(this.context,this.state);this.enterRule(e,268,t.RULE_jsonOnError);try{switch(this.enterOuterAlt(e,1),this.state=4055,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NULL_LITERAL:this.state=4051,this.match(t.NULL_LITERAL);break;case t.ERROR:this.state=4052,this.match(t.ERROR);break;case t.DEFAULT:this.state=4053,this.match(t.DEFAULT),this.state=4054,this.defaultValue();break;default:throw new Ei(this)}this.state=4057,this.match(t.ON),this.state=4058,this.match(t.ERROR)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}selectSpec(){let e,s=new em(this.context,this.state);this.enterRule(s,270,t.RULE_selectSpec);try{switch(this.state=4068,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ALL:case t.DISTINCT:case t.DISTINCTROW:this.enterOuterAlt(s,1),this.state=4060,e=this.tokenStream.LA(1),6===e||49===e||50===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case t.HIGH_PRIORITY:this.enterOuterAlt(s,2),this.state=4061,this.match(t.HIGH_PRIORITY);break;case t.STRAIGHT_JOIN:this.enterOuterAlt(s,3),this.state=4062,this.match(t.STRAIGHT_JOIN);break;case t.SQL_SMALL_RESULT:this.enterOuterAlt(s,4),this.state=4063,this.match(t.SQL_SMALL_RESULT);break;case t.SQL_BIG_RESULT:this.enterOuterAlt(s,5),this.state=4064,this.match(t.SQL_BIG_RESULT);break;case t.SQL_BUFFER_RESULT:this.enterOuterAlt(s,6),this.state=4065,this.match(t.SQL_BUFFER_RESULT);break;case t.SQL_CACHE:case t.SQL_NO_CACHE:this.enterOuterAlt(s,7),this.state=4066,e=this.tokenStream.LA(1),626===e||627===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case t.SQL_CALC_FOUND_ROWS:this.enterOuterAlt(s,8),this.state=4067,this.match(t.SQL_CALC_FOUND_ROWS);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}selectElements(){let e=new sm(this.context,this.state);this.enterRule(e,272,t.RULE_selectElements);try{let s;switch(this.enterOuterAlt(e,1),this.state=4072,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,583,this.context)){case 1:this.state=4070,e._star=this.match(t.STAR);break;case 2:this.state=4071,this.selectElement()}for(this.state=4078,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,584,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=4074,this.match(t.COMMA),this.state=4075,this.selectElement()),this.state=4080,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,584,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}selectElementAlias(){let e,s=new am(this.context,this.state);this.enterRule(s,274,t.RULE_selectElementAlias);try{this.enterOuterAlt(s,1),this.state=4082,this.errorHandler.sync(this),e=this.tokenStream.LA(1),12===e&&(this.state=4081,this.match(t.AS)),this.state=4084,this.uid()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}selectElement(){let e=new rm(this.context,this.state);this.enterRule(e,276,t.RULE_selectElement);try{switch(this.state=4106,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,590,this.context)){case 1:e=new nm(e),this.enterOuterAlt(e,1),this.state=4086,this.fullId(),this.state=4087,this.match(t.DOT),this.state=4088,this.match(t.STAR);break;case 2:if(1===(e=new hm(e),this.enterOuterAlt(e,2),this.state=4090,this.fullColumnName(),this.state=4092,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,586,this.context)))this.state=4091,this.selectElementAlias();break;case 3:if(1===(e=new cm(e),this.enterOuterAlt(e,3),this.state=4094,this.functionCall(),this.state=4096,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,587,this.context)))this.state=4095,this.selectElementAlias();break;case 4:if(e=new im(e),this.enterOuterAlt(e,4),1===(this.state=4100,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,588,this.context)))this.state=4098,this.match(t.LOCAL_ID),this.state=4099,this.match(t.VAR_ASSIGN);if(1===(this.state=4102,this.expression(0),this.state=4104,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,589,this.context)))this.state=4103,this.selectElementAlias()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}selectIntoExpression(){let e,s=new Em(this.context,this.state);this.enterRule(s,278,t.RULE_selectIntoExpression);try{switch(this.state=4144,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,597,this.context)){case 1:for(s=new Tm(s),this.enterOuterAlt(s,1),this.state=4108,this.match(t.INTO),this.state=4109,this.assignmentField(),this.state=4114,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=4110,this.match(t.COMMA),this.state=4111,this.assignmentField(),this.state=4116,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case 2:s=new Rm(s),this.enterOuterAlt(s,2),this.state=4117,this.match(t.INTO),this.state=4118,this.match(t.DUMPFILE),this.state=4119,this.match(t.STRING_LITERAL);break;case 3:if(s=new om(s),this.enterOuterAlt(s,3),1===(this.state=4120,this.match(t.INTO),this.state=4121,this.match(t.OUTFILE),this.state=4122,s._filename=this.match(t.STRING_LITERAL),this.state=4126,this.errorHandler.sync(this),e=this.tokenStream.LA(1),25===e&&(this.state=4123,this.match(t.CHARACTER),this.state=4124,this.match(t.SET),this.state=4125,s._charset=this.charsetName()),this.state=4134,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,594,this.context))){this.state=4128,s._fieldsFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),365===e||427===e?(this.errorHandler.reportMatch(this),this.consume()):s._fieldsFormat=this.errorHandler.recoverInline(this),this.state=4130,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=4129,this.selectFieldsInto(),this.state=4132,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(56===e||58===e||122===e||173===e)}if(this.state=4142,this.errorHandler.sync(this),e=this.tokenStream.LA(1),101===e){this.state=4136,this.match(t.LINES),this.state=4138,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=4137,this.selectLinesInto(),this.state=4140,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(169===e||173===e)}}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}selectFieldsInto(){let e,s=new Am(this.context,this.state);this.enterRule(s,280,t.RULE_selectFieldsInto);try{switch(this.state=4158,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.TERMINATED:this.enterOuterAlt(s,1),this.state=4146,this.match(t.TERMINATED),this.state=4147,this.match(t.BY),this.state=4148,s._terminationField=this.match(t.STRING_LITERAL);break;case t.ENCLOSED:case t.OPTIONALLY:this.enterOuterAlt(s,2),this.state=4150,this.errorHandler.sync(this),e=this.tokenStream.LA(1),122===e&&(this.state=4149,this.match(t.OPTIONALLY)),this.state=4152,this.match(t.ENCLOSED),this.state=4153,this.match(t.BY),this.state=4154,s._enclosion=this.match(t.STRING_LITERAL);break;case t.ESCAPED:this.enterOuterAlt(s,3),this.state=4155,this.match(t.ESCAPED),this.state=4156,this.match(t.BY),this.state=4157,s._escaping=this.match(t.STRING_LITERAL);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}selectLinesInto(){let e=new Sm(this.context,this.state);this.enterRule(e,282,t.RULE_selectLinesInto);try{switch(this.state=4166,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.STARTING:this.enterOuterAlt(e,1),this.state=4160,this.match(t.STARTING),this.state=4161,this.match(t.BY),this.state=4162,e._starting=this.match(t.STRING_LITERAL);break;case t.TERMINATED:this.enterOuterAlt(e,2),this.state=4163,this.match(t.TERMINATED),this.state=4164,this.match(t.BY),this.state=4165,e._terminationLine=this.match(t.STRING_LITERAL);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}fromClause(){let e,s=new lm(this.context,this.state);this.enterRule(s,284,t.RULE_fromClause);try{this.enterOuterAlt(s,1),this.state=4170,this.errorHandler.sync(this),e=this.tokenStream.LA(1),68===e&&(this.state=4168,this.match(t.FROM),this.state=4169,this.tableSources()),this.state=4174,this.errorHandler.sync(this),e=this.tokenStream.LA(1),190===e&&(this.state=4172,this.match(t.WHERE),this.state=4173,s._whereExpr=this.expression(0))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}groupByClause(){let e=new Om(this.context,this.state);this.enterRule(e,286,t.RULE_groupByClause);try{let s;for(this.enterOuterAlt(e,1),this.state=4176,this.match(t.GROUP),this.state=4177,this.match(t.BY),this.state=4178,this.groupByItem(),this.state=4183,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,603,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=4179,this.match(t.COMMA),this.state=4180,this.groupByItem()),this.state=4185,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,603,this.context);if(1===(this.state=4188,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,604,this.context)))this.state=4186,this.match(t.WITH),this.state=4187,this.match(t.ROLLUP)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}havingClause(){let e=new Im(this.context,this.state);this.enterRule(e,288,t.RULE_havingClause);try{this.enterOuterAlt(e,1),this.state=4190,this.match(t.HAVING),this.state=4191,e._havingExpr=this.expression(0)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}windowClause(){let e=new um(this.context,this.state);this.enterRule(e,290,t.RULE_windowClause);try{let s;for(this.enterOuterAlt(e,1),this.state=4193,this.match(t.WINDOW),this.state=4194,this.windowName(),this.state=4195,this.match(t.AS),this.state=4196,this.match(t.LR_BRACKET),this.state=4197,this.windowSpec(),this.state=4198,this.match(t.RR_BRACKET),this.state=4208,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,605,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=4199,this.match(t.COMMA),this.state=4200,this.windowName(),this.state=4201,this.match(t.AS),this.state=4202,this.match(t.LR_BRACKET),this.state=4203,this.windowSpec(),this.state=4204,this.match(t.RR_BRACKET)),this.state=4210,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,605,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}groupByItem(){let e,s=new Nm(this.context,this.state);this.enterRule(s,292,t.RULE_groupByItem);try{this.enterOuterAlt(s,1),this.state=4211,this.expression(0),this.state=4213,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(13===e||45===e)&&(this.state=4212,s._order=this.tokenStream.LT(1),e=this.tokenStream.LA(1),13===e||45===e?(this.errorHandler.reportMatch(this),this.consume()):s._order=this.errorHandler.recoverInline(this))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}limitClause(){let e=new Lm(this.context,this.state);this.enterRule(e,294,t.RULE_limitClause);try{switch(this.enterOuterAlt(e,1),this.state=4215,this.match(t.LIMIT),this.state=4226,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,608,this.context)){case 1:if(1===(this.state=4219,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,607,this.context)))this.state=4216,e._offset=this.limitClauseAtom(),this.state=4217,this.match(t.COMMA);this.state=4221,e._limit=this.limitClauseAtom();break;case 2:this.state=4222,e._limit=this.limitClauseAtom(),this.state=4223,this.match(t.OFFSET),this.state=4224,e._offset=this.limitClauseAtom()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}limitClauseAtom(){let e=new Cm(this.context,this.state);this.enterRule(e,296,t.RULE_limitClauseAtom);try{switch(this.state=4231,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ZERO_DECIMAL:case t.ONE_DECIMAL:case t.TWO_DECIMAL:case t.DECIMAL_LITERAL:case t.REAL_LITERAL:this.enterOuterAlt(e,1),this.state=4228,this.decimalLiteral();break;case t.LOCAL_ID:case t.GLOBAL_ID:this.enterOuterAlt(e,2),this.state=4229,this.mysqlVariable();break;case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.ID:this.enterOuterAlt(e,3),this.state=4230,this.simpleId();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}startTransaction(){let e,s=new _m(this.context,this.state);this.enterRule(s,298,t.RULE_startTransaction);try{if(this.enterOuterAlt(s,1),this.state=4233,this.match(t.START),this.state=4234,this.match(t.TRANSACTION),this.state=4243,this.errorHandler.sync(this),e=this.tokenStream.LA(1),134===e||192===e)for(this.state=4235,this.transactionMode(),this.state=4240,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=4236,this.match(t.COMMA),this.state=4237,this.transactionMode(),this.state=4242,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}beginWork(){let e,s=new Pm(this.context,this.state);this.enterRule(s,300,t.RULE_beginWork);try{this.enterOuterAlt(s,1),this.state=4245,this.match(t.BEGIN),this.state=4247,this.errorHandler.sync(this),e=this.tokenStream.LA(1),678===e&&(this.state=4246,this.match(t.WORK))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}commitWork(){let e,s=new Mm(this.context,this.state);this.enterRule(s,302,t.RULE_commitWork);try{this.enterOuterAlt(s,1),this.state=4249,this.match(t.COMMIT),this.state=4251,this.errorHandler.sync(this),e=this.tokenStream.LA(1),678===e&&(this.state=4250,this.match(t.WORK)),this.state=4258,this.errorHandler.sync(this),e=this.tokenStream.LA(1),10===e&&(this.state=4253,this.match(t.AND),this.state=4255,this.errorHandler.sync(this),e=this.tokenStream.LA(1),521===e&&(this.state=4254,s._nochain=this.match(t.NO)),this.state=4257,this.match(t.CHAIN)),this.state=4264,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(138===e||521===e)&&(this.state=4261,this.errorHandler.sync(this),e=this.tokenStream.LA(1),521===e&&(this.state=4260,s._norelease=this.match(t.NO)),this.state=4263,this.match(t.RELEASE))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}rollbackWork(){let e,s=new dm(this.context,this.state);this.enterRule(s,304,t.RULE_rollbackWork);try{this.enterOuterAlt(s,1),this.state=4266,this.match(t.ROLLBACK),this.state=4268,this.errorHandler.sync(this),e=this.tokenStream.LA(1),678===e&&(this.state=4267,this.match(t.WORK)),this.state=4275,this.errorHandler.sync(this),e=this.tokenStream.LA(1),10===e&&(this.state=4270,this.match(t.AND),this.state=4272,this.errorHandler.sync(this),e=this.tokenStream.LA(1),521===e&&(this.state=4271,s._nochain=this.match(t.NO)),this.state=4274,this.match(t.CHAIN)),this.state=4281,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(138===e||521===e)&&(this.state=4278,this.errorHandler.sync(this),e=this.tokenStream.LA(1),521===e&&(this.state=4277,s._norelease=this.match(t.NO)),this.state=4280,this.match(t.RELEASE))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}savepointStatement(){let e=new Um(this.context,this.state);this.enterRule(e,306,t.RULE_savepointStatement);try{this.enterOuterAlt(e,1),this.state=4283,this.match(t.SAVEPOINT),this.state=4284,this.uid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}rollbackStatement(){let e,s=new mm(this.context,this.state);this.enterRule(s,308,t.RULE_rollbackStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=4286,this.match(t.ROLLBACK),this.state=4288,this.errorHandler.sync(this),e=this.tokenStream.LA(1),678===e&&(this.state=4287,this.match(t.WORK)),this.state=4290,this.match(t.TO),this.state=4292,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,624,this.context)))this.state=4291,this.match(t.SAVEPOINT);this.state=4294,this.uid()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}releaseStatement(){let e=new Dm(this.context,this.state);this.enterRule(e,310,t.RULE_releaseStatement);try{this.enterOuterAlt(e,1),this.state=4296,this.match(t.RELEASE),this.state=4297,this.match(t.SAVEPOINT),this.state=4298,this.uid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}lockTables(){let e,s=new pm(this.context,this.state);this.enterRule(s,312,t.RULE_lockTables);try{for(this.enterOuterAlt(s,1),this.state=4300,this.match(t.LOCK),this.state=4301,e=this.tokenStream.LA(1),172===e||742===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=4302,this.lockTableElement(),this.state=4307,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=4303,this.match(t.COMMA),this.state=4304,this.lockTableElement(),this.state=4309,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=4311,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(527===e||674===e)&&(this.state=4310,this.waitNowaitClause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}unlockTables(){let e=new gm(this.context,this.state);this.enterRule(e,314,t.RULE_unlockTables);try{this.enterOuterAlt(e,1),this.state=4313,this.match(t.UNLOCK),this.state=4314,this.match(t.TABLES)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}setAutocommitStatement(){let e,s=new xm(this.context,this.state);this.enterRule(s,316,t.RULE_setAutocommitStatement);try{this.enterOuterAlt(s,1),this.state=4316,this.match(t.SET),this.state=4317,this.match(t.AUTOCOMMIT),this.state=4318,this.match(t.EQUAL_SYMBOL),this.state=4319,s._autocommitValue=this.tokenStream.LT(1),e=this.tokenStream.LA(1),1138===e||1139===e?(this.errorHandler.reportMatch(this),this.consume()):s._autocommitValue=this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}setTransactionStatement(){let e,s=new km(this.context,this.state);this.enterRule(s,318,t.RULE_setTransactionStatement);try{for(this.enterOuterAlt(s,1),this.state=4321,this.match(t.SET),this.state=4323,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(439===e||609===e)&&(this.state=4322,s._transactionContext=this.tokenStream.LT(1),e=this.tokenStream.LA(1),439===e||609===e?(this.errorHandler.reportMatch(this),this.consume()):s._transactionContext=this.errorHandler.recoverInline(this)),this.state=4325,this.match(t.TRANSACTION),this.state=4326,this.transactionOption(),this.state=4331,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=4327,this.match(t.COMMA),this.state=4328,this.transactionOption(),this.state=4333,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}transactionMode(){let e=new Hm(this.context,this.state);this.enterRule(e,320,t.RULE_transactionMode);try{switch(this.state=4341,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,629,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4334,this.match(t.WITH),this.state=4335,this.match(t.CONSISTENT),this.state=4336,this.match(t.SNAPSHOT);break;case 2:this.enterOuterAlt(e,2),this.state=4337,this.match(t.READ),this.state=4338,this.match(t.WRITE);break;case 3:this.enterOuterAlt(e,3),this.state=4339,this.match(t.READ),this.state=4340,this.match(t.ONLY)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}lockTableElement(){let e,s=new Gm(this.context,this.state);this.enterRule(s,322,t.RULE_lockTableElement);try{this.enterOuterAlt(s,1),this.state=4343,this.tableName(),this.state=4348,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537155584||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=4345,this.errorHandler.sync(this),e=this.tokenStream.LA(1),12===e&&(this.state=4344,this.match(t.AS)),this.state=4347,this.uid()),this.state=4350,this.lockAction()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}lockAction(){let e,s=new Fm(this.context,this.state);this.enterRule(s,324,t.RULE_lockAction);try{switch(this.state=4360,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.READ:this.enterOuterAlt(s,1),this.state=4352,this.match(t.READ),this.state=4354,this.errorHandler.sync(this),e=this.tokenStream.LA(1),474===e&&(this.state=4353,this.match(t.LOCAL));break;case t.LOW_PRIORITY:case t.WRITE:this.enterOuterAlt(s,2),this.state=4357,this.errorHandler.sync(this),e=this.tokenStream.LA(1),106===e&&(this.state=4356,this.match(t.LOW_PRIORITY)),this.state=4359,this.match(t.WRITE);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}transactionOption(){let e=new vm(this.context,this.state);this.enterRule(e,326,t.RULE_transactionOption);try{switch(this.state=4369,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,635,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4362,this.match(t.ISOLATION),this.state=4363,this.match(t.LEVEL),this.state=4364,this.transactionLevel();break;case 2:this.enterOuterAlt(e,2),this.state=4365,this.match(t.READ),this.state=4366,this.match(t.WRITE);break;case 3:this.enterOuterAlt(e,3),this.state=4367,this.match(t.READ),this.state=4368,this.match(t.ONLY)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}transactionLevel(){let e=new Bm(this.context,this.state);this.enterRule(e,328,t.RULE_transactionLevel);try{switch(this.state=4378,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,636,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4371,this.match(t.REPEATABLE),this.state=4372,this.match(t.READ);break;case 2:this.enterOuterAlt(e,2),this.state=4373,this.match(t.READ),this.state=4374,this.match(t.COMMITTED);break;case 3:this.enterOuterAlt(e,3),this.state=4375,this.match(t.READ),this.state=4376,this.match(t.UNCOMMITTED);break;case 4:this.enterOuterAlt(e,4),this.state=4377,this.match(t.SERIALIZABLE)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}changeMaster(){let e,s=new ym(this.context,this.state);this.enterRule(s,330,t.RULE_changeMaster);try{for(this.enterOuterAlt(s,1),this.state=4380,this.match(t.CHANGE),this.state=4381,this.match(t.MASTER),this.state=4382,this.match(t.TO),this.state=4383,this.masterOption(),this.state=4388,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=4384,this.match(t.COMMA),this.state=4385,this.masterOption(),this.state=4390,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=4392,this.errorHandler.sync(this),e=this.tokenStream.LA(1),65===e&&(this.state=4391,this.channelOption())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}changeReplicationFilter(){let e,s=new fm(this.context,this.state);this.enterRule(s,332,t.RULE_changeReplicationFilter);try{for(this.enterOuterAlt(s,1),this.state=4394,this.match(t.CHANGE),this.state=4395,this.match(t.REPLICATION),this.state=4396,this.match(t.FILTER),this.state=4397,this.replicationFilter(),this.state=4402,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=4398,this.match(t.COMMA),this.state=4399,this.replicationFilter(),this.state=4404,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}purgeBinaryLogs(){let e,s=new Ym(this.context,this.state);this.enterRule(s,334,t.RULE_purgeBinaryLogs);try{switch(this.enterOuterAlt(s,1),this.state=4405,this.match(t.PURGE),this.state=4406,s._purgeFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),226===e||477===e?(this.errorHandler.reportMatch(this),this.consume()):s._purgeFormat=this.errorHandler.recoverInline(this),this.state=4407,this.match(t.LOGS),this.state=4412,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.TO:this.state=4408,this.match(t.TO),this.state=4409,s._fileName=this.match(t.STRING_LITERAL);break;case t.BEFORE:this.state=4410,this.match(t.BEFORE),this.state=4411,s._timeValue=this.match(t.STRING_LITERAL);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}resetMaster(){let e=new wm(this.context,this.state);this.enterRule(e,336,t.RULE_resetMaster);try{this.enterOuterAlt(e,1),this.state=4414,this.match(t.RESET),this.state=4415,this.match(t.MASTER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}resetSlave(){let e,s=new bm(this.context,this.state);this.enterRule(s,338,t.RULE_resetSlave);try{this.enterOuterAlt(s,1),this.state=4417,this.match(t.RESET),this.state=4418,this.match(t.SLAVE),this.state=4420,this.errorHandler.sync(this),e=this.tokenStream.LA(1),6===e&&(this.state=4419,this.match(t.ALL)),this.state=4423,this.errorHandler.sync(this),e=this.tokenStream.LA(1),65===e&&(this.state=4422,this.channelOption())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}startSlave(){let e,s=new Wm(this.context,this.state);this.enterRule(s,340,t.RULE_startSlave);try{if(this.enterOuterAlt(s,1),this.state=4425,this.match(t.START),this.state=4426,this.match(t.SLAVE),this.state=4435,this.errorHandler.sync(this),e=this.tokenStream.LA(1),462===e||628===e)for(this.state=4427,this.threadType(),this.state=4432,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=4428,this.match(t.COMMA),this.state=4429,this.threadType(),this.state=4434,this.errorHandler.sync(this),e=this.tokenStream.LA(1);for(this.state=4439,this.errorHandler.sync(this),e=this.tokenStream.LA(1),663===e&&(this.state=4437,this.match(t.UNTIL),this.state=4438,this.untilOption()),this.state=4444,this.errorHandler.sync(this),e=this.tokenStream.LA(1);391===e||551===e||555===e||665===e;)this.state=4441,this.connectionOption(),this.state=4446,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=4448,this.errorHandler.sync(this),e=this.tokenStream.LA(1),65===e&&(this.state=4447,this.channelOption())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}stopSlave(){let e,s=new Vm(this.context,this.state);this.enterRule(s,342,t.RULE_stopSlave);try{if(this.enterOuterAlt(s,1),this.state=4450,this.match(t.STOP),this.state=4451,this.match(t.SLAVE),this.state=4460,this.errorHandler.sync(this),e=this.tokenStream.LA(1),462===e||628===e)for(this.state=4452,this.threadType(),this.state=4457,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=4453,this.match(t.COMMA),this.state=4454,this.threadType(),this.state=4459,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}startGroupReplication(){let e=new Xm(this.context,this.state);this.enterRule(e,344,t.RULE_startGroupReplication);try{this.enterOuterAlt(e,1),this.state=4462,this.match(t.START),this.state=4463,this.match(t.GROUP_REPLICATION)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}stopGroupReplication(){let e=new Km(this.context,this.state);this.enterRule(e,346,t.RULE_stopGroupReplication);try{this.enterOuterAlt(e,1),this.state=4465,this.match(t.STOP),this.state=4466,this.match(t.GROUP_REPLICATION)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}masterOption(){let e,s=new Qm(this.context,this.state);this.enterRule(s,348,t.RULE_masterOption);try{switch(this.state=4497,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.MASTER_BIND:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_PASSWORD:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.RELAY_LOG_FILE:s=new Jm(s),this.enterOuterAlt(s,1),this.state=4468,this.stringMasterOption(),this.state=4469,this.match(t.EQUAL_SYMBOL),this.state=4470,this.match(t.STRING_LITERAL);break;case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_LOG_POS:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.RELAY_LOG_POS:s=new zm(s),this.enterOuterAlt(s,2),this.state=4472,this.decimalMasterOption(),this.state=4473,this.match(t.EQUAL_SYMBOL),this.state=4474,this.decimalLiteral();break;case t.MASTER_SSL_VERIFY_SERVER_CERT:case t.MASTER_AUTO_POSITION:case t.MASTER_SSL:s=new qm(s),this.enterOuterAlt(s,3),this.state=4476,this.boolMasterOption(),this.state=4477,this.match(t.EQUAL_SYMBOL),this.state=4478,s._boolVal=this.tokenStream.LT(1),e=this.tokenStream.LA(1),1138===e||1139===e?(this.errorHandler.reportMatch(this),this.consume()):s._boolVal=this.errorHandler.recoverInline(this);break;case t.MASTER_HEARTBEAT_PERIOD:s=new Zm(s),this.enterOuterAlt(s,4),this.state=4480,this.match(t.MASTER_HEARTBEAT_PERIOD),this.state=4481,this.match(t.EQUAL_SYMBOL),this.state=4482,this.match(t.REAL_LITERAL);break;case t.IGNORE_SERVER_IDS:if(s=new jm(s),this.enterOuterAlt(s,5),this.state=4483,this.match(t.IGNORE_SERVER_IDS),this.state=4484,this.match(t.EQUAL_SYMBOL),this.state=4485,this.match(t.LR_BRACKET),this.state=4494,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)for(this.state=4486,this.uid(),this.state=4491,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=4487,this.match(t.COMMA),this.state=4488,this.uid(),this.state=4493,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=4496,this.match(t.RR_BRACKET);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}stringMasterOption(){let e,s=new $m(this.context,this.state);this.enterRule(s,350,t.RULE_stringMasterOption);try{this.enterOuterAlt(s,1),this.state=4499,e=this.tokenStream.LA(1),107===e||!(e-482&-32)&&1<<e-482&65419||575===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}decimalMasterOption(){let e,s=new tD(this.context,this.state);this.enterRule(s,352,t.RULE_decimalMasterOption);try{this.enterOuterAlt(s,1),this.state=4501,e=this.tokenStream.LA(1),!(e-479&-32)&&1<<e-479&419||576===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}boolMasterOption(){let e,s=new eD(this.context,this.state);this.enterRule(s,354,t.RULE_boolMasterOption);try{this.enterOuterAlt(s,1),this.state=4503,e=this.tokenStream.LA(1),108===e||478===e||488===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}channelOption(){let e=new sD(this.context,this.state);this.enterRule(e,356,t.RULE_channelOption);try{this.enterOuterAlt(e,1),this.state=4505,this.match(t.FOR),this.state=4506,this.match(t.CHANNEL),this.state=4507,this.match(t.STRING_LITERAL)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}replicationFilter(){let e,s=new aD(this.context,this.state);this.enterRule(s,358,t.RULE_replicationFilter);try{switch(this.state=4558,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.REPLICATE_DO_DB:s=new hD(s),this.enterOuterAlt(s,1),this.state=4509,this.match(t.REPLICATE_DO_DB),this.state=4510,this.match(t.EQUAL_SYMBOL),this.state=4511,this.match(t.LR_BRACKET),this.state=4512,this.uidList(),this.state=4513,this.match(t.RR_BRACKET);break;case t.REPLICATE_IGNORE_DB:s=new ED(s),this.enterOuterAlt(s,2),this.state=4515,this.match(t.REPLICATE_IGNORE_DB),this.state=4516,this.match(t.EQUAL_SYMBOL),this.state=4517,this.match(t.LR_BRACKET),this.state=4518,this.uidList(),this.state=4519,this.match(t.RR_BRACKET);break;case t.REPLICATE_DO_TABLE:s=new iD(s),this.enterOuterAlt(s,3),this.state=4521,this.match(t.REPLICATE_DO_TABLE),this.state=4522,this.match(t.EQUAL_SYMBOL),this.state=4523,this.match(t.LR_BRACKET),this.state=4524,this.tables(),this.state=4525,this.match(t.RR_BRACKET);break;case t.REPLICATE_IGNORE_TABLE:s=new cD(s),this.enterOuterAlt(s,4),this.state=4527,this.match(t.REPLICATE_IGNORE_TABLE),this.state=4528,this.match(t.EQUAL_SYMBOL),this.state=4529,this.match(t.LR_BRACKET),this.state=4530,this.tables(),this.state=4531,this.match(t.RR_BRACKET);break;case t.REPLICATE_WILD_DO_TABLE:s=new TD(s),this.enterOuterAlt(s,5),this.state=4533,this.match(t.REPLICATE_WILD_DO_TABLE),this.state=4534,this.match(t.EQUAL_SYMBOL),this.state=4535,this.match(t.LR_BRACKET),this.state=4536,this.simpleStrings(),this.state=4537,this.match(t.RR_BRACKET);break;case t.REPLICATE_WILD_IGNORE_TABLE:s=new rD(s),this.enterOuterAlt(s,6),this.state=4539,this.match(t.REPLICATE_WILD_IGNORE_TABLE),this.state=4540,this.match(t.EQUAL_SYMBOL),this.state=4541,this.match(t.LR_BRACKET),this.state=4542,this.simpleStrings(),this.state=4543,this.match(t.RR_BRACKET);break;case t.REPLICATE_REWRITE_DB:for(s=new nD(s),this.enterOuterAlt(s,7),this.state=4545,this.match(t.REPLICATE_REWRITE_DB),this.state=4546,this.match(t.EQUAL_SYMBOL),this.state=4547,this.match(t.LR_BRACKET),this.state=4548,this.tablePair(),this.state=4553,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=4549,this.match(t.COMMA),this.state=4550,this.tablePair(),this.state=4555,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=4556,this.match(t.RR_BRACKET);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tablePair(){let e=new oD(this.context,this.state);this.enterRule(e,360,t.RULE_tablePair);try{this.enterOuterAlt(e,1),this.state=4560,this.match(t.LR_BRACKET),this.state=4561,e._firstTable=this.tableName(),this.state=4562,this.match(t.COMMA),this.state=4563,e._secondTable=this.tableName(),this.state=4564,this.match(t.RR_BRACKET)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}threadType(){let e,s=new RD(this.context,this.state);this.enterRule(s,362,t.RULE_threadType);try{this.enterOuterAlt(s,1),this.state=4566,e=this.tokenStream.LA(1),462===e||628===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}untilOption(){let e,s=new AD(this.context,this.state);this.enterRule(s,364,t.RULE_untilOption);try{switch(this.state=4586,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SQL_AFTER_GTIDS:case t.SQL_BEFORE_GTIDS:s=new SD(s),this.enterOuterAlt(s,1),this.state=4568,s._gtids=this.tokenStream.LT(1),e=this.tokenStream.LA(1),622===e||624===e?(this.errorHandler.reportMatch(this),this.consume()):s._gtids=this.errorHandler.recoverInline(this),this.state=4569,this.match(t.EQUAL_SYMBOL),this.state=4570,this.gtuidSet();break;case t.MASTER_LOG_FILE:s=new OD(s),this.enterOuterAlt(s,2),this.state=4571,this.match(t.MASTER_LOG_FILE),this.state=4572,this.match(t.EQUAL_SYMBOL),this.state=4573,this.match(t.STRING_LITERAL),this.state=4574,this.match(t.COMMA),this.state=4575,this.match(t.MASTER_LOG_POS),this.state=4576,this.match(t.EQUAL_SYMBOL),this.state=4577,this.decimalLiteral();break;case t.RELAY_LOG_FILE:s=new ID(s),this.enterOuterAlt(s,3),this.state=4578,this.match(t.RELAY_LOG_FILE),this.state=4579,this.match(t.EQUAL_SYMBOL),this.state=4580,this.match(t.STRING_LITERAL),this.state=4581,this.match(t.COMMA),this.state=4582,this.match(t.RELAY_LOG_POS),this.state=4583,this.match(t.EQUAL_SYMBOL),this.state=4584,this.decimalLiteral();break;case t.SQL_AFTER_MTS_GAPS:s=new lD(s),this.enterOuterAlt(s,4),this.state=4585,this.match(t.SQL_AFTER_MTS_GAPS);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}connectionOption(){let e=new uD(this.context,this.state);this.enterRule(e,366,t.RULE_connectionOption);try{switch(this.state=4600,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.USER:e=new LD(e),this.enterOuterAlt(e,1),this.state=4588,this.match(t.USER),this.state=4589,this.match(t.EQUAL_SYMBOL),this.state=4590,e._conOptUser=this.match(t.STRING_LITERAL);break;case t.PASSWORD:e=new _D(e),this.enterOuterAlt(e,2),this.state=4591,this.match(t.PASSWORD),this.state=4592,this.match(t.EQUAL_SYMBOL),this.state=4593,e._conOptPassword=this.match(t.STRING_LITERAL);break;case t.DEFAULT_AUTH:e=new CD(e),this.enterOuterAlt(e,3),this.state=4594,this.match(t.DEFAULT_AUTH),this.state=4595,this.match(t.EQUAL_SYMBOL),this.state=4596,e._conOptDefAuth=this.match(t.STRING_LITERAL);break;case t.PLUGIN_DIR:e=new ND(e),this.enterOuterAlt(e,4),this.state=4597,this.match(t.PLUGIN_DIR),this.state=4598,this.match(t.EQUAL_SYMBOL),this.state=4599,e._conOptPluginDir=this.match(t.STRING_LITERAL);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}gtuidSet(){let e,s=new PD(this.context,this.state);this.enterRule(s,368,t.RULE_gtuidSet);try{switch(this.state=4611,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ZERO_DECIMAL:case t.ONE_DECIMAL:case t.TWO_DECIMAL:case t.DECIMAL_LITERAL:case t.REAL_LITERAL:for(this.enterOuterAlt(s,1),this.state=4602,this.uuidSet(),this.state=4607,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=4603,this.match(t.COMMA),this.state=4604,this.uuidSet(),this.state=4609,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case t.STRING_LITERAL:this.enterOuterAlt(s,2),this.state=4610,this.match(t.STRING_LITERAL);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}xaStartTransaction(){let e,s=new MD(this.context,this.state);this.enterRule(s,370,t.RULE_xaStartTransaction);try{this.enterOuterAlt(s,1),this.state=4613,this.match(t.XA),this.state=4614,s._xaStart=this.tokenStream.LT(1),e=this.tokenStream.LA(1),344===e||629===e?(this.errorHandler.reportMatch(this),this.consume()):s._xaStart=this.errorHandler.recoverInline(this),this.state=4615,this.xid(),this.state=4617,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(90===e||591===e)&&(this.state=4616,s._xaAction=this.tokenStream.LT(1),e=this.tokenStream.LA(1),90===e||591===e?(this.errorHandler.reportMatch(this),this.consume()):s._xaAction=this.errorHandler.recoverInline(this))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}xaEndTransaction(){let e,s=new dD(this.context,this.state);this.enterRule(s,372,t.RULE_xaEndTransaction);try{this.enterOuterAlt(s,1),this.state=4619,this.match(t.XA),this.state=4620,this.match(t.END),this.state=4621,this.xid(),this.state=4627,this.errorHandler.sync(this),e=this.tokenStream.LA(1),643===e&&(this.state=4622,this.match(t.SUSPEND),this.state=4625,this.errorHandler.sync(this),e=this.tokenStream.LA(1),65===e&&(this.state=4623,this.match(t.FOR),this.state=4624,this.match(t.MIGRATE)))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}xaPrepareStatement(){let e=new UD(this.context,this.state);this.enterRule(e,374,t.RULE_xaPrepareStatement);try{this.enterOuterAlt(e,1),this.state=4629,this.match(t.XA),this.state=4630,this.match(t.PREPARE),this.state=4631,this.xid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}xaCommitWork(){let e,s=new mD(this.context,this.state);this.enterRule(s,376,t.RULE_xaCommitWork);try{this.enterOuterAlt(s,1),this.state=4633,this.match(t.XA),this.state=4634,this.match(t.COMMIT),this.state=4635,this.xid(),this.state=4638,this.errorHandler.sync(this),e=this.tokenStream.LA(1),536===e&&(this.state=4636,this.match(t.ONE),this.state=4637,this.match(t.PHASE))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}xaRollbackWork(){let e=new DD(this.context,this.state);this.enterRule(e,378,t.RULE_xaRollbackWork);try{this.enterOuterAlt(e,1),this.state=4640,this.match(t.XA),this.state=4641,this.match(t.ROLLBACK),this.state=4642,this.xid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}xaRecoverWork(){let e,s=new pD(this.context,this.state);this.enterRule(s,380,t.RULE_xaRecoverWork);try{this.enterOuterAlt(s,1),this.state=4644,this.match(t.XA),this.state=4645,this.match(t.RECOVER),this.state=4648,this.errorHandler.sync(this),e=this.tokenStream.LA(1),32===e&&(this.state=4646,this.match(t.CONVERT),this.state=4647,this.xid())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}prepareStatement(){let e=new gD(this.context,this.state);this.enterRule(e,382,t.RULE_prepareStatement);try{switch(this.enterOuterAlt(e,1),this.state=4650,this.match(t.PREPARE),this.state=4651,this.uid(),this.state=4652,this.match(t.FROM),this.state=4655,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.STRING_LITERAL:this.state=4653,e._query=this.match(t.STRING_LITERAL);break;case t.LOCAL_ID:this.state=4654,e._variable=this.match(t.LOCAL_ID);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}executeStatement(){let e,s=new xD(this.context,this.state);this.enterRule(s,384,t.RULE_executeStatement);try{this.enterOuterAlt(s,1),this.state=4657,this.match(t.EXECUTE),this.state=4658,this.uid(),this.state=4661,this.errorHandler.sync(this),e=this.tokenStream.LA(1),187===e&&(this.state=4659,this.match(t.USING),this.state=4660,this.userVariables())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}deallocatePrepare(){let e,s=new kD(this.context,this.state);this.enterRule(s,386,t.RULE_deallocatePrepare);try{this.enterOuterAlt(s,1),this.state=4663,s._dropFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),51===e||390===e?(this.errorHandler.reportMatch(this),this.consume()):s._dropFormat=this.errorHandler.recoverInline(this),this.state=4664,this.match(t.PREPARE),this.state=4665,this.uid()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}routineBody(){let e=new HD(this.context,this.state);this.enterRule(e,388,t.RULE_routineBody);try{switch(this.state=4669,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,666,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4667,this.blockStatement();break;case 2:this.enterOuterAlt(e,2),this.state=4668,this.statement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}blockStatement(){let e,s=new GD(this.context,this.state);this.enterRule(s,390,t.RULE_blockStatement);try{let a;if(this.enterOuterAlt(s,1),1===(this.state=4674,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,667,this.context)))this.state=4671,this.uid(),this.state=4672,this.match(t.COLON_SYMB);for(this.state=4676,this.match(t.BEGIN),this.state=4682,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,668,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=4677,this.declareVariable(),this.state=4678,this.match(t.SEMI)),this.state=4684,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,668,this.context);for(this.state=4690,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,669,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=4685,this.declareCondition(),this.state=4686,this.match(t.SEMI)),this.state=4692,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,669,this.context);for(this.state=4698,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,670,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=4693,this.declareCursor(),this.state=4694,this.match(t.SEMI)),this.state=4700,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,670,this.context);for(this.state=4706,this.errorHandler.sync(this),e=this.tokenStream.LA(1);41===e;)this.state=4701,this.declareHandler(),this.state=4702,this.match(t.SEMI),this.state=4708,this.errorHandler.sync(this),e=this.tokenStream.LA(1);for(this.state=4712,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,672,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=4709,this.procedureSqlStatement()),this.state=4714,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,672,this.context);this.state=4715,this.match(t.END),this.state=4717,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=4716,this.uid())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}caseStatement(){let e,s=new FD(this.context,this.state);this.enterRule(s,392,t.RULE_caseStatement);try{let a;switch(this.enterOuterAlt(s,1),this.state=4719,this.match(t.CASE),this.state=4722,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,674,this.context)){case 1:this.state=4720,this.uid();break;case 2:this.state=4721,this.expression(0)}this.state=4725,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=4724,this.caseAlternative(),this.state=4727,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(189===e);if(this.state=4735,this.errorHandler.sync(this),e=this.tokenStream.LA(1),53===e){this.state=4729,this.match(t.ELSE),this.state=4731,this.errorHandler.sync(this),a=1;do{if(1!==a)throw new Ei(this);this.state=4730,this.procedureSqlStatement(),this.state=4733,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,676,this.context)}while(2!==a&&a!==ja.INVALID_ALT_NUMBER)}this.state=4737,this.match(t.END),this.state=4738,this.match(t.CASE)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}ifStatement(){let e,s=new vD(this.context,this.state);this.enterRule(s,394,t.RULE_ifStatement);try{let a;this.enterOuterAlt(s,1),this.state=4740,this.match(t.IF),this.state=4741,this.expression(0),this.state=4742,this.match(t.THEN),this.state=4744,this.errorHandler.sync(this),a=1;do{if(1!==a)throw new Ei(this);this.state=4743,s._procedureSqlStatement=this.procedureSqlStatement(),s._thenStatements.push(s._procedureSqlStatement),this.state=4746,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,678,this.context)}while(2!==a&&a!==ja.INVALID_ALT_NUMBER);for(this.state=4751,this.errorHandler.sync(this),e=this.tokenStream.LA(1);54===e;)this.state=4748,this.elifAlternative(),this.state=4753,this.errorHandler.sync(this),e=this.tokenStream.LA(1);if(this.state=4760,this.errorHandler.sync(this),e=this.tokenStream.LA(1),53===e){this.state=4754,this.match(t.ELSE),this.state=4756,this.errorHandler.sync(this),a=1;do{if(1!==a)throw new Ei(this);this.state=4755,s._procedureSqlStatement=this.procedureSqlStatement(),s._elseStatements.push(s._procedureSqlStatement),this.state=4758,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,680,this.context)}while(2!==a&&a!==ja.INVALID_ALT_NUMBER)}this.state=4762,this.match(t.END),this.state=4763,this.match(t.IF)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}iterateStatement(){let e=new BD(this.context,this.state);this.enterRule(e,396,t.RULE_iterateStatement);try{this.enterOuterAlt(e,1),this.state=4765,this.match(t.ITERATE),this.state=4766,this.uid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}leaveStatement(){let e=new yD(this.context,this.state);this.enterRule(e,398,t.RULE_leaveStatement);try{this.enterOuterAlt(e,1),this.state=4768,this.match(t.LEAVE),this.state=4769,this.uid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}loopStatement(){let e,s=new fD(this.context,this.state);this.enterRule(s,400,t.RULE_loopStatement);try{let a;this.enterOuterAlt(s,1),this.state=4774,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=4771,this.uid(),this.state=4772,this.match(t.COLON_SYMB)),this.state=4776,this.match(t.LOOP),this.state=4778,this.errorHandler.sync(this),a=1;do{if(1!==a)throw new Ei(this);this.state=4777,this.procedureSqlStatement(),this.state=4780,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,683,this.context)}while(2!==a&&a!==ja.INVALID_ALT_NUMBER);this.state=4782,this.match(t.END),this.state=4783,this.match(t.LOOP),this.state=4785,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=4784,this.uid())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}repeatStatement(){let e,s=new YD(this.context,this.state);this.enterRule(s,402,t.RULE_repeatStatement);try{let a;if(this.enterOuterAlt(s,1),1===(this.state=4790,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,685,this.context)))this.state=4787,this.uid(),this.state=4788,this.match(t.COLON_SYMB);this.state=4792,this.match(t.REPEAT),this.state=4794,this.errorHandler.sync(this),a=1;do{if(1!==a)throw new Ei(this);this.state=4793,this.procedureSqlStatement(),this.state=4796,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,686,this.context)}while(2!==a&&a!==ja.INVALID_ALT_NUMBER);this.state=4798,this.match(t.UNTIL),this.state=4799,this.expression(0),this.state=4800,this.match(t.END),this.state=4801,this.match(t.REPEAT),this.state=4803,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=4802,this.uid())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}returnStatement(){let e=new wD(this.context,this.state);this.enterRule(e,404,t.RULE_returnStatement);try{this.enterOuterAlt(e,1),this.state=4805,this.match(t.RETURN),this.state=4806,this.expression(0)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}whileStatement(){let e,s=new bD(this.context,this.state);this.enterRule(s,406,t.RULE_whileStatement);try{let a;this.enterOuterAlt(s,1),this.state=4811,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=4808,this.uid(),this.state=4809,this.match(t.COLON_SYMB)),this.state=4813,this.match(t.WHILE),this.state=4814,this.expression(0),this.state=4815,this.match(t.DO),this.state=4817,this.errorHandler.sync(this),a=1;do{if(1!==a)throw new Ei(this);this.state=4816,this.procedureSqlStatement(),this.state=4819,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,689,this.context)}while(2!==a&&a!==ja.INVALID_ALT_NUMBER);this.state=4821,this.match(t.END),this.state=4822,this.match(t.WHILE),this.state=4824,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=4823,this.uid())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}cursorStatement(){let e,s=new WD(this.context,this.state);this.enterRule(s,408,t.RULE_cursorStatement);try{switch(this.state=4841,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CLOSE:s=new VD(s),this.enterOuterAlt(s,1),this.state=4826,this.match(t.CLOSE),this.state=4827,this.uid();break;case t.FETCH:if(s=new KD(s),this.enterOuterAlt(s,2),1===(this.state=4828,this.match(t.FETCH),this.state=4833,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,692,this.context)))this.state=4830,this.errorHandler.sync(this),e=this.tokenStream.LA(1),520===e&&(this.state=4829,this.match(t.NEXT)),this.state=4832,this.match(t.FROM);this.state=4835,this.uid(),this.state=4836,this.match(t.INTO),this.state=4837,this.uidList();break;case t.OPEN:s=new XD(s),this.enterOuterAlt(s,3),this.state=4839,this.match(t.OPEN),this.state=4840,this.uid();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}declareVariable(){let e,s=new QD(this.context,this.state);this.enterRule(s,410,t.RULE_declareVariable);try{this.enterOuterAlt(s,1),this.state=4843,this.match(t.DECLARE),this.state=4844,this.uidList(),this.state=4845,this.dataType(),this.state=4848,this.errorHandler.sync(this),e=this.tokenStream.LA(1),42===e&&(this.state=4846,this.match(t.DEFAULT),this.state=4847,this.expression(0))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}declareCondition(){let e,s=new JD(this.context,this.state);this.enterRule(s,412,t.RULE_declareCondition);try{switch(this.enterOuterAlt(s,1),this.state=4850,this.match(t.DECLARE),this.state=4851,this.uid(),this.state=4852,this.match(t.CONDITION),this.state=4853,this.match(t.FOR),this.state=4860,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ZERO_DECIMAL:case t.ONE_DECIMAL:case t.TWO_DECIMAL:case t.DECIMAL_LITERAL:case t.REAL_LITERAL:this.state=4854,this.decimalLiteral();break;case t.SQLSTATE:this.state=4855,this.match(t.SQLSTATE),this.state=4857,this.errorHandler.sync(this),e=this.tokenStream.LA(1),669===e&&(this.state=4856,this.match(t.VALUE)),this.state=4859,this.match(t.STRING_LITERAL);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}declareCursor(){let e=new ZD(this.context,this.state);this.enterRule(e,414,t.RULE_declareCursor);try{this.enterOuterAlt(e,1),this.state=4862,this.match(t.DECLARE),this.state=4863,this.uid(),this.state=4864,this.match(t.CURSOR),this.state=4865,this.match(t.FOR),this.state=4866,this.selectStatement()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declareHandler(){let e,s=new qD(this.context,this.state);this.enterRule(s,416,t.RULE_declareHandler);try{for(this.enterOuterAlt(s,1),this.state=4868,this.match(t.DECLARE),this.state=4869,s._handlerAction=this.tokenStream.LT(1),e=this.tokenStream.LA(1),31===e||61===e||179===e?(this.errorHandler.reportMatch(this),this.consume()):s._handlerAction=this.errorHandler.recoverInline(this),this.state=4870,this.match(t.HANDLER),this.state=4871,this.match(t.FOR),this.state=4872,this.handlerConditionValue(),this.state=4877,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=4873,this.match(t.COMMA),this.state=4874,this.handlerConditionValue(),this.state=4879,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=4880,this.routineBody()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}handlerConditionValue(){let e,s=new jD(this.context,this.state);this.enterRule(s,418,t.RULE_handlerConditionValue);try{switch(this.state=4893,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ZERO_DECIMAL:case t.ONE_DECIMAL:case t.TWO_DECIMAL:case t.DECIMAL_LITERAL:case t.REAL_LITERAL:s=new $D(s),this.enterOuterAlt(s,1),this.state=4882,this.decimalLiteral();break;case t.SQLSTATE:s=new ep(s),this.enterOuterAlt(s,2),this.state=4883,this.match(t.SQLSTATE),this.state=4885,this.errorHandler.sync(this),e=this.tokenStream.LA(1),669===e&&(this.state=4884,this.match(t.VALUE)),this.state=4887,this.match(t.STRING_LITERAL);break;case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:s=new ap(s),this.enterOuterAlt(s,3),this.state=4888,this.uid();break;case t.SQLWARNING:s=new zD(s),this.enterOuterAlt(s,4),this.state=4889,this.match(t.SQLWARNING);break;case t.NOT:s=new tp(s),this.enterOuterAlt(s,5),this.state=4890,this.match(t.NOT),this.state=4891,this.match(t.FOUND);break;case t.SQLEXCEPTION:s=new sp(s),this.enterOuterAlt(s,6),this.state=4892,this.match(t.SQLEXCEPTION);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}procedureSqlStatement(){let e=new rp(this.context,this.state);this.enterRule(e,420,t.RULE_procedureSqlStatement);try{switch(this.enterOuterAlt(e,1),this.state=4897,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,700,this.context)){case 1:this.state=4895,this.compoundStatement();break;case 2:this.state=4896,this.statement()}this.state=4899,this.match(t.SEMI)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}caseAlternative(){let e=new ip(this.context,this.state);this.enterRule(e,422,t.RULE_caseAlternative);try{let s;switch(this.enterOuterAlt(e,1),this.state=4901,this.match(t.WHEN),this.state=4904,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,701,this.context)){case 1:this.state=4902,this.constant();break;case 2:this.state=4903,this.expression(0)}this.state=4906,this.match(t.THEN),this.state=4908,this.errorHandler.sync(this),s=1;do{if(1!==s)throw new Ei(this);this.state=4907,this.procedureSqlStatement(),this.state=4910,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,702,this.context)}while(2!==s&&s!==ja.INVALID_ALT_NUMBER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}elifAlternative(){let e=new cp(this.context,this.state);this.enterRule(e,424,t.RULE_elifAlternative);try{let s;this.enterOuterAlt(e,1),this.state=4912,this.match(t.ELSEIF),this.state=4913,this.expression(0),this.state=4914,this.match(t.THEN),this.state=4916,this.errorHandler.sync(this),s=1;do{if(1!==s)throw new Ei(this);this.state=4915,this.procedureSqlStatement(),this.state=4918,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,703,this.context)}while(2!==s&&s!==ja.INVALID_ALT_NUMBER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alterUser(){let e,s=new np(this.context,this.state);this.enterRule(s,426,t.RULE_alterUser);try{switch(this.state=4983,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,716,this.context)){case 1:for(s=new Ep(s),this.enterOuterAlt(s,1),this.state=4920,this.match(t.ALTER),this.state=4921,this.match(t.USER),this.state=4922,this.userSpecification(),this.state=4927,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=4923,this.match(t.COMMA),this.state=4924,this.userSpecification(),this.state=4929,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case 2:if(s=new hp(s),this.enterOuterAlt(s,2),this.state=4930,this.match(t.ALTER),this.state=4931,this.match(t.USER),this.state=4933,this.errorHandler.sync(this),e=this.tokenStream.LA(1),77===e&&(this.state=4932,this.ifExists()),this.state=4935,this.newUserAuthOptionList(),this.state=4950,this.errorHandler.sync(this),e=this.tokenStream.LA(1),142===e)switch(this.state=4936,this.match(t.REQUIRE),this.state=4948,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NONE:this.state=4937,s._tlsNone=this.match(t.NONE);break;case t.SSL:case t.CIPHER:case t.ISSUER:case t.SUBJECT:case t.X509:for(this.state=4938,this.tlsOption(),this.state=4945,this.errorHandler.sync(this),e=this.tokenStream.LA(1);10===e||167===e||358===e||465===e||640===e||680===e;)this.state=4940,this.errorHandler.sync(this),e=this.tokenStream.LA(1),10===e&&(this.state=4939,this.match(t.AND)),this.state=4942,this.tlsOption(),this.state=4947,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;default:throw new Ei(this)}if(this.state=4958,this.errorHandler.sync(this),e=this.tokenStream.LA(1),192===e){this.state=4952,this.match(t.WITH),this.state=4954,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=4953,this.userResourceOption(),this.state=4956,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(!(e-498&-32)&&1<<e-498&51)}for(this.state=4964,this.errorHandler.sync(this),e=this.tokenStream.LA(1);332===e||424===e||551===e||552===e;){switch(this.state=4962,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FAILED_LOGIN_ATTEMPTS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:this.state=4960,this.userPasswordOption();break;case t.ACCOUNT:this.state=4961,this.userLockOption();break;default:throw new Ei(this)}this.state=4966,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}switch(this.state=4971,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.COMMENT:this.state=4967,this.match(t.COMMENT),this.state=4968,this.match(t.STRING_LITERAL);break;case t.ATTRIBUTE:this.state=4969,this.match(t.ATTRIBUTE),this.state=4970,this.match(t.STRING_LITERAL);case t.EOF:case t.SEMI:}break;case 3:s=new hp(s),this.enterOuterAlt(s,3),this.state=4973,this.match(t.ALTER),this.state=4974,this.match(t.USER),this.state=4976,this.errorHandler.sync(this),e=this.tokenStream.LA(1),77===e&&(this.state=4975,this.ifExists()),this.state=4978,this.userName(),this.state=4979,this.match(t.DEFAULT),this.state=4980,this.match(t.ROLE),this.state=4981,this.roleOption()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createUser(){let e,s=new Tp(this.context,this.state);this.enterRule(s,428,t.RULE_createUser);try{switch(this.state=5036,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,728,this.context)){case 1:s=new op(s),this.enterOuterAlt(s,1),this.state=4985,this.match(t.CREATE),this.state=4986,this.match(t.USER),this.state=4987,this.newUserAuthOptionList();break;case 2:if(s=new Rp(s),this.enterOuterAlt(s,2),this.state=4988,this.match(t.CREATE),this.state=4989,this.match(t.USER),this.state=4991,this.errorHandler.sync(this),e=this.tokenStream.LA(1),77===e&&(this.state=4990,this.ifNotExists()),this.state=4993,this.newUserAuthOptionList(),this.state=4997,this.errorHandler.sync(this),e=this.tokenStream.LA(1),42===e&&(this.state=4994,this.match(t.DEFAULT),this.state=4995,this.match(t.ROLE),this.state=4996,this.roleOption()),this.state=5013,this.errorHandler.sync(this),e=this.tokenStream.LA(1),142===e)switch(this.state=4999,this.match(t.REQUIRE),this.state=5011,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NONE:this.state=5e3,s._tlsNone=this.match(t.NONE);break;case t.SSL:case t.CIPHER:case t.ISSUER:case t.SUBJECT:case t.X509:for(this.state=5001,this.tlsOption(),this.state=5008,this.errorHandler.sync(this),e=this.tokenStream.LA(1);10===e||167===e||358===e||465===e||640===e||680===e;)this.state=5003,this.errorHandler.sync(this),e=this.tokenStream.LA(1),10===e&&(this.state=5002,this.match(t.AND)),this.state=5005,this.tlsOption(),this.state=5010,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;default:throw new Ei(this)}if(this.state=5021,this.errorHandler.sync(this),e=this.tokenStream.LA(1),192===e){this.state=5015,this.match(t.WITH),this.state=5017,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=5016,this.userResourceOption(),this.state=5019,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(!(e-498&-32)&&1<<e-498&51)}for(this.state=5027,this.errorHandler.sync(this),e=this.tokenStream.LA(1);332===e||424===e||551===e||552===e;){switch(this.state=5025,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FAILED_LOGIN_ATTEMPTS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:this.state=5023,this.userPasswordOption();break;case t.ACCOUNT:this.state=5024,this.userLockOption();break;default:throw new Ei(this)}this.state=5029,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}switch(this.state=5034,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.COMMENT:this.state=5030,this.match(t.COMMENT),this.state=5031,this.match(t.STRING_LITERAL);break;case t.ATTRIBUTE:this.state=5032,this.match(t.ATTRIBUTE),this.state=5033,this.match(t.STRING_LITERAL);case t.EOF:case t.SEMI:}}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}dropUser(){let e,s=new Ap(this.context,this.state);this.enterRule(s,430,t.RULE_dropUser);try{this.enterOuterAlt(s,1),this.state=5038,this.match(t.DROP),this.state=5039,this.match(t.USER),this.state=5041,this.errorHandler.sync(this),e=this.tokenStream.LA(1),77===e&&(this.state=5040,this.ifExists()),this.state=5043,this.userNameList()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}grantStatement(){let e,s=new Sp(this.context,this.state);this.enterRule(s,432,t.RULE_grantStatement);try{switch(this.state=5105,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,741,this.context)){case 1:for(this.enterOuterAlt(s,1),this.state=5045,this.match(t.GRANT),this.state=5046,this.privelegeClause(),this.state=5051,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=5047,this.match(t.COMMA),this.state=5048,this.privelegeClause(),this.state=5053,this.errorHandler.sync(this),e=this.tokenStream.LA(1);if(1===(this.state=5054,this.match(t.ON),this.state=5056,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,731,this.context)))this.state=5055,e=this.tokenStream.LA(1),131===e||172===e||437===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);if(this.state=5058,this.privilegeLevel(),this.state=5059,this.match(t.TO),this.state=5060,this.userOrRoleNameList(),this.state=5075,this.errorHandler.sync(this),e=this.tokenStream.LA(1),142===e)switch(this.state=5061,this.match(t.REQUIRE),this.state=5073,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.NONE:this.state=5062,s._tlsNone=this.match(t.NONE);break;case t.SSL:case t.CIPHER:case t.ISSUER:case t.SUBJECT:case t.X509:for(this.state=5063,this.tlsOption(),this.state=5070,this.errorHandler.sync(this),e=this.tokenStream.LA(1);10===e||167===e||358===e||465===e||640===e||680===e;)this.state=5065,this.errorHandler.sync(this),e=this.tokenStream.LA(1),10===e&&(this.state=5064,this.match(t.AND)),this.state=5067,this.tlsOption(),this.state=5072,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;default:throw new Ei(this)}if(this.state=5086,this.errorHandler.sync(this),e=this.tokenStream.LA(1),192===e)for(this.state=5077,this.match(t.WITH),this.state=5083,this.errorHandler.sync(this),e=this.tokenStream.LA(1);72===e||!(e-498&-32)&&1<<e-498&51;){switch(this.state=5081,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.GRANT:this.state=5078,this.match(t.GRANT),this.state=5079,this.match(t.OPTION);break;case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:this.state=5080,this.userResourceOption();break;default:throw new Ei(this)}this.state=5085,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}this.state=5094,this.errorHandler.sync(this),e=this.tokenStream.LA(1),12===e&&(this.state=5088,this.match(t.AS),this.state=5089,this.userName(),this.state=5090,this.match(t.WITH),this.state=5091,this.match(t.ROLE),this.state=5092,this.roleOption());break;case 2:this.enterOuterAlt(s,2),this.state=5096,this.match(t.GRANT),this.state=5097,this.roleNameList(),this.state=5098,this.match(t.TO),this.state=5099,this.userOrRoleNameList(),this.state=5103,this.errorHandler.sync(this),e=this.tokenStream.LA(1),192===e&&(this.state=5100,this.match(t.WITH),this.state=5101,this.match(t.ADMIN),this.state=5102,this.match(t.OPTION))}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}roleOption(){let e,s=new lp(this.context,this.state);this.enterRule(s,434,t.RULE_roleOption);try{switch(this.state=5115,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,743,this.context)){case 1:this.enterOuterAlt(s,1),this.state=5107,this.match(t.DEFAULT);break;case 2:this.enterOuterAlt(s,2),this.state=5108,this.match(t.NONE);break;case 3:this.enterOuterAlt(s,3),this.state=5109,this.match(t.ALL),this.state=5112,this.errorHandler.sync(this),e=this.tokenStream.LA(1),59===e&&(this.state=5110,this.match(t.EXCEPT),this.state=5111,this.roleNameList());break;case 4:this.enterOuterAlt(s,4),this.state=5114,this.roleNameList()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}grantProxy(){let e,s=new Op(this.context,this.state);this.enterRule(s,436,t.RULE_grantProxy);try{for(this.enterOuterAlt(s,1),this.state=5117,this.match(t.GRANT),this.state=5118,this.match(t.PROXY),this.state=5119,this.match(t.ON),this.state=5120,s._fromFirst=this.userName(),this.state=5121,this.match(t.TO),this.state=5122,s._toFirst=this.userName(),this.state=5127,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=5123,this.match(t.COMMA),this.state=5124,s._userName=this.userName(),s._toOther.push(s._userName),this.state=5129,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=5133,this.errorHandler.sync(this),e=this.tokenStream.LA(1),192===e&&(this.state=5130,this.match(t.WITH),this.state=5131,this.match(t.GRANT),this.state=5132,this.match(t.OPTION))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}renameUser(){let e,s=new Ip(this.context,this.state);this.enterRule(s,438,t.RULE_renameUser);try{for(this.enterOuterAlt(s,1),this.state=5135,this.match(t.RENAME),this.state=5136,this.match(t.USER),this.state=5137,this.renameUserClause(),this.state=5142,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=5138,this.match(t.COMMA),this.state=5139,this.renameUserClause(),this.state=5144,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}revokeStatement(){let e,s=new up(this.context,this.state);this.enterRule(s,440,t.RULE_revokeStatement);try{switch(this.state=5181,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,751,this.context)){case 1:for(s=new Cp(s),this.enterOuterAlt(s,1),this.state=5145,this.match(t.REVOKE),this.state=5146,this.privelegeClause(),this.state=5151,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=5147,this.match(t.COMMA),this.state=5148,this.privelegeClause(),this.state=5153,this.errorHandler.sync(this),e=this.tokenStream.LA(1);if(1===(this.state=5154,this.match(t.ON),this.state=5156,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,748,this.context)))this.state=5155,s._privilegeObject=this.tokenStream.LT(1),e=this.tokenStream.LA(1),131===e||172===e||437===e?(this.errorHandler.reportMatch(this),this.consume()):s._privilegeObject=this.errorHandler.recoverInline(this);this.state=5158,this.privilegeLevel(),this.state=5159,this.match(t.FROM),this.state=5160,this.userOrRoleNameList();break;case 2:s=new Np(s),this.enterOuterAlt(s,2),this.state=5162,this.match(t.REVOKE),this.state=5163,this.match(t.ALL),this.state=5165,this.errorHandler.sync(this),e=this.tokenStream.LA(1),725===e&&(this.state=5164,this.match(t.PRIVILEGES)),this.state=5167,this.match(t.COMMA),this.state=5168,this.match(t.GRANT),this.state=5169,this.match(t.OPTION),this.state=5170,this.match(t.FROM),this.state=5171,this.userOrRoleNameList();break;case 3:for(s=new Lp(s),this.enterOuterAlt(s,3),this.state=5172,this.match(t.REVOKE),this.state=5173,this.roleNameList(),this.state=5174,this.match(t.FROM),this.state=5178,this.errorHandler.sync(this),e=this.tokenStream.LA(1);!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e;)this.state=5175,this.userOrRoleNameList(),this.state=5180,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}revokeProxy(){let e,s=new _p(this.context,this.state);this.enterRule(s,442,t.RULE_revokeProxy);try{for(this.enterOuterAlt(s,1),this.state=5183,this.match(t.REVOKE),this.state=5184,this.match(t.PROXY),this.state=5185,this.match(t.ON),this.state=5186,s._onUser=this.userName(),this.state=5187,this.match(t.FROM),this.state=5188,s._fromFirst=this.userName(),this.state=5193,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=5189,this.match(t.COMMA),this.state=5190,s._userName=this.userName(),s._fromOther.push(s._userName),this.state=5195,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}setPasswordStatement(){let e,s=new Pp(this.context,this.state);this.enterRule(s,444,t.RULE_setPasswordStatement);try{switch(this.enterOuterAlt(s,1),this.state=5196,this.match(t.SET),this.state=5197,this.match(t.PASSWORD),this.state=5200,this.errorHandler.sync(this),e=this.tokenStream.LA(1),65===e&&(this.state=5198,this.match(t.FOR),this.state=5199,this.userName()),this.state=5202,this.match(t.EQUAL_SYMBOL),this.state=5205,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OLD_PASSWORD:case t.PASSWORD:this.state=5203,this.passwordFunctionClause();break;case t.STRING_LITERAL:this.state=5204,this.match(t.STRING_LITERAL);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}userSpecification(){let e=new Mp(this.context,this.state);this.enterRule(e,446,t.RULE_userSpecification);try{this.enterOuterAlt(e,1),this.state=5207,this.userName(),this.state=5208,this.userPasswordOption()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}newUserAuthOptionList(){let e,s=new dp(this.context,this.state);this.enterRule(s,448,t.RULE_newUserAuthOptionList);try{for(this.enterOuterAlt(s,1),this.state=5210,this.newUserAuthOption(),this.state=5215,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=5211,this.match(t.COMMA),this.state=5212,this.newUserAuthOption(),this.state=5217,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}newUserAuthOption(){let e=new Up(this.context,this.state);this.enterRule(e,450,t.RULE_newUserAuthOption);try{switch(this.state=5243,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,756,this.context)){case 1:e=new xp(e),this.enterOuterAlt(e,1),this.state=5218,this.newUserName(),this.state=5219,this.match(t.IDENTIFIED),this.state=5220,this.match(t.BY),this.state=5221,this.match(t.PASSWORD),this.state=5222,e._hashed=this.match(t.STRING_LITERAL);break;case 2:e=new pp(e),this.enterOuterAlt(e,2),this.state=5224,this.newUserName(),this.state=5225,this.match(t.IDENTIFIED),this.state=5226,this.match(t.BY),this.state=5227,this.match(t.RANDOM),this.state=5228,this.match(t.PASSWORD),this.state=5229,this.authOptionClause();break;case 3:e=new gp(e),this.enterOuterAlt(e,3),this.state=5231,this.newUserName(),this.state=5232,this.match(t.IDENTIFIED),this.state=5233,this.match(t.BY),this.state=5234,this.match(t.STRING_LITERAL),this.state=5235,this.authOptionClause();break;case 4:e=new Dp(e),this.enterOuterAlt(e,4),this.state=5237,this.newUserName(),this.state=5238,this.match(t.IDENTIFIED),this.state=5239,this.match(t.WITH),this.state=5240,this.authenticationRule();break;case 5:e=new mp(e),this.enterOuterAlt(e,5),this.state=5242,this.newUserName()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}authOptionClause(){let e,s=new kp(this.context,this.state);this.enterRule(s,452,t.RULE_authOptionClause);try{this.enterOuterAlt(s,1),this.state=5247,this.errorHandler.sync(this),e=this.tokenStream.LA(1),141===e&&(this.state=5245,this.match(t.REPLACE),this.state=5246,this.match(t.STRING_LITERAL)),this.state=5252,this.errorHandler.sync(this),e=this.tokenStream.LA(1),145===e&&(this.state=5249,this.match(t.RETAIN),this.state=5250,this.match(t.CURRENT),this.state=5251,this.match(t.PASSWORD))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}authenticationRule(){let e,s=new Hp(this.context,this.state);this.enterRule(s,454,t.RULE_authenticationRule);try{switch(this.state=5268,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,761,this.context)){case 1:if(s=new Fp(s),this.enterOuterAlt(s,1),this.state=5254,this.authPlugin(),this.state=5262,this.errorHandler.sync(this),e=this.tokenStream.LA(1),12===e||19===e||187===e){switch(this.state=5255,e=this.tokenStream.LA(1),12===e||19===e||187===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=5259,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.STRING_LITERAL:this.state=5256,this.match(t.STRING_LITERAL);break;case t.RANDOM:this.state=5257,this.match(t.RANDOM),this.state=5258,this.match(t.PASSWORD);break;default:throw new Ei(this)}this.state=5261,this.authOptionClause()}break;case 2:s=new Gp(s),this.enterOuterAlt(s,2),this.state=5264,this.authPlugin(),this.state=5265,this.match(t.USING),this.state=5266,this.passwordFunctionClause()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tlsOption(){let e=new vp(this.context,this.state);this.enterRule(e,456,t.RULE_tlsOption);try{switch(this.state=5278,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SSL:this.enterOuterAlt(e,1),this.state=5270,this.match(t.SSL);break;case t.X509:this.enterOuterAlt(e,2),this.state=5271,this.match(t.X509);break;case t.CIPHER:this.enterOuterAlt(e,3),this.state=5272,this.match(t.CIPHER),this.state=5273,this.match(t.STRING_LITERAL);break;case t.ISSUER:this.enterOuterAlt(e,4),this.state=5274,this.match(t.ISSUER),this.state=5275,this.match(t.STRING_LITERAL);break;case t.SUBJECT:this.enterOuterAlt(e,5),this.state=5276,this.match(t.SUBJECT),this.state=5277,this.match(t.STRING_LITERAL);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}userResourceOption(){let e=new Bp(this.context,this.state);this.enterRule(e,458,t.RULE_userResourceOption);try{switch(this.state=5288,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.MAX_QUERIES_PER_HOUR:this.enterOuterAlt(e,1),this.state=5280,this.match(t.MAX_QUERIES_PER_HOUR),this.state=5281,this.decimalLiteral();break;case t.MAX_UPDATES_PER_HOUR:this.enterOuterAlt(e,2),this.state=5282,this.match(t.MAX_UPDATES_PER_HOUR),this.state=5283,this.decimalLiteral();break;case t.MAX_CONNECTIONS_PER_HOUR:this.enterOuterAlt(e,3),this.state=5284,this.match(t.MAX_CONNECTIONS_PER_HOUR),this.state=5285,this.decimalLiteral();break;case t.MAX_USER_CONNECTIONS:this.enterOuterAlt(e,4),this.state=5286,this.match(t.MAX_USER_CONNECTIONS),this.state=5287,this.decimalLiteral();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}userPasswordOption(){let e,s=new yp(this.context,this.state);this.enterRule(s,460,t.RULE_userPasswordOption);try{switch(this.state=5328,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,769,this.context)){case 1:switch(this.enterOuterAlt(s,1),this.state=5290,this.match(t.PASSWORD),this.state=5291,this.match(t.EXPIRE),this.state=5298,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DEFAULT:this.state=5292,s._expireType=this.match(t.DEFAULT);break;case t.NEVER:this.state=5293,s._expireType=this.match(t.NEVER);break;case t.INTERVAL:this.state=5294,s._expireType=this.match(t.INTERVAL),this.state=5295,this.decimalLiteral(),this.state=5296,this.match(t.DAY);case t.EOF:case t.ATTRIBUTE:case t.ACCOUNT:case t.COMMENT:case t.FAILED_LOGIN_ATTEMPTS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.COMMA:case t.SEMI:}break;case 2:switch(this.enterOuterAlt(s,2),this.state=5300,this.match(t.PASSWORD),this.state=5301,this.match(t.HISTORY),this.state=5304,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DEFAULT:this.state=5302,this.match(t.DEFAULT);break;case t.ZERO_DECIMAL:case t.ONE_DECIMAL:case t.TWO_DECIMAL:case t.DECIMAL_LITERAL:case t.REAL_LITERAL:this.state=5303,this.decimalLiteral();break;default:throw new Ei(this)}break;case 3:switch(this.enterOuterAlt(s,3),this.state=5306,this.match(t.PASSWORD),this.state=5307,this.match(t.REUSE),this.state=5308,this.match(t.INTERVAL),this.state=5313,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DEFAULT:this.state=5309,this.match(t.DEFAULT);break;case t.ZERO_DECIMAL:case t.ONE_DECIMAL:case t.TWO_DECIMAL:case t.DECIMAL_LITERAL:case t.REAL_LITERAL:this.state=5310,this.decimalLiteral(),this.state=5311,this.match(t.DAY);break;default:throw new Ei(this)}break;case 4:this.enterOuterAlt(s,4),this.state=5315,this.match(t.PASSWORD),this.state=5316,this.match(t.REQUIRE),this.state=5317,this.match(t.CURRENT),this.state=5319,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(42===e||121===e)&&(this.state=5318,e=this.tokenStream.LA(1),42===e||121===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this));break;case 5:this.enterOuterAlt(s,5),this.state=5321,this.match(t.FAILED_LOGIN_ATTEMPTS),this.state=5322,this.decimalLiteral();break;case 6:switch(this.enterOuterAlt(s,6),this.state=5323,this.match(t.PASSWORD_LOCK_TIME),this.state=5326,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ZERO_DECIMAL:case t.ONE_DECIMAL:case t.TWO_DECIMAL:case t.DECIMAL_LITERAL:case t.REAL_LITERAL:this.state=5324,this.decimalLiteral();break;case t.UNBOUNDED:this.state=5325,this.match(t.UNBOUNDED);break;default:throw new Ei(this)}}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}userLockOption(){let e,s=new fp(this.context,this.state);this.enterRule(s,462,t.RULE_userLockOption);try{this.enterOuterAlt(s,1),this.state=5330,this.match(t.ACCOUNT),this.state=5331,s._lockType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),103===e||182===e?(this.errorHandler.reportMatch(this),this.consume()):s._lockType=this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}privelegeClause(){let e,s=new Yp(this.context,this.state);this.enterRule(s,464,t.RULE_privelegeClause);try{this.enterOuterAlt(s,1),this.state=5333,this.privilege(),this.state=5338,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e&&(this.state=5334,this.match(t.LR_BRACKET),this.state=5335,this.uidList(),this.state=5336,this.match(t.RR_BRACKET))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}privilege(){let e,s=new wp(this.context,this.state);this.enterRule(s,466,t.RULE_privilege);try{switch(this.state=5433,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,775,this.context)){case 1:this.enterOuterAlt(s,1),this.state=5340,this.match(t.ALL),this.state=5342,this.errorHandler.sync(this),e=this.tokenStream.LA(1),725===e&&(this.state=5341,this.match(t.PRIVILEGES));break;case 2:this.enterOuterAlt(s,2),this.state=5344,this.match(t.ALTER),this.state=5346,this.errorHandler.sync(this),e=this.tokenStream.LA(1),733===e&&(this.state=5345,this.match(t.ROUTINE));break;case 3:switch(this.enterOuterAlt(s,3),this.state=5348,this.match(t.CREATE),this.state=5356,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.TEMPORARY:this.state=5349,this.match(t.TEMPORARY),this.state=5350,this.match(t.TABLES);break;case t.ROUTINE:this.state=5351,this.match(t.ROUTINE);break;case t.VIEW:this.state=5352,this.match(t.VIEW);break;case t.USER:this.state=5353,this.match(t.USER);break;case t.TABLESPACE:this.state=5354,this.match(t.TABLESPACE);break;case t.ROLE:this.state=5355,this.match(t.ROLE);case t.ON:case t.LR_BRACKET:case t.COMMA:}break;case 4:this.enterOuterAlt(s,4),this.state=5358,this.match(t.DELETE);break;case 5:this.enterOuterAlt(s,5),this.state=5359,this.match(t.DROP),this.state=5361,this.errorHandler.sync(this),e=this.tokenStream.LA(1),596===e&&(this.state=5360,this.match(t.ROLE));break;case 6:this.enterOuterAlt(s,6),this.state=5363,this.match(t.EVENT);break;case 7:this.enterOuterAlt(s,7),this.state=5364,this.match(t.EXECUTE);break;case 8:this.enterOuterAlt(s,8),this.state=5365,this.match(t.FILE);break;case 9:this.enterOuterAlt(s,9),this.state=5366,this.match(t.GRANT),this.state=5367,this.match(t.OPTION);break;case 10:this.enterOuterAlt(s,10),this.state=5368,this.match(t.INDEX);break;case 11:this.enterOuterAlt(s,11),this.state=5369,this.match(t.INSERT);break;case 12:this.enterOuterAlt(s,12),this.state=5370,this.match(t.LOCK),this.state=5371,this.match(t.TABLES);break;case 13:this.enterOuterAlt(s,13),this.state=5372,this.match(t.PROCESS);break;case 14:this.enterOuterAlt(s,14),this.state=5373,this.match(t.PROXY);break;case 15:this.enterOuterAlt(s,15),this.state=5374,this.match(t.REFERENCES);break;case 16:this.enterOuterAlt(s,16),this.state=5375,this.match(t.RELOAD);break;case 17:this.enterOuterAlt(s,17),this.state=5376,this.match(t.REPLICATION),this.state=5377,e=this.tokenStream.LA(1),360===e||614===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case 18:this.enterOuterAlt(s,18),this.state=5378,this.match(t.SELECT);break;case 19:this.enterOuterAlt(s,19),this.state=5379,this.match(t.SHOW),this.state=5380,e=this.tokenStream.LA(1),40===e||671===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case 20:this.enterOuterAlt(s,20),this.state=5381,this.match(t.SHUTDOWN);break;case 21:this.enterOuterAlt(s,21),this.state=5382,this.match(t.SUPER);break;case 22:this.enterOuterAlt(s,22),this.state=5383,this.match(t.TRIGGER);break;case 23:this.enterOuterAlt(s,23),this.state=5384,this.match(t.UPDATE);break;case 24:this.enterOuterAlt(s,24),this.state=5385,this.match(t.USAGE);break;case 25:this.enterOuterAlt(s,25),this.state=5386,this.match(t.APPLICATION_PASSWORD_ADMIN);break;case 26:this.enterOuterAlt(s,26),this.state=5387,this.match(t.AUDIT_ABORT_EXEMPT);break;case 27:this.enterOuterAlt(s,27),this.state=5388,this.match(t.AUDIT_ADMIN);break;case 28:this.enterOuterAlt(s,28),this.state=5389,this.match(t.AUTHENTICATION_POLICY_ADMIN);break;case 29:this.enterOuterAlt(s,29),this.state=5390,this.match(t.BACKUP_ADMIN);break;case 30:this.enterOuterAlt(s,30),this.state=5391,this.match(t.BINLOG_ADMIN);break;case 31:this.enterOuterAlt(s,31),this.state=5392,this.match(t.BINLOG_ENCRYPTION_ADMIN);break;case 32:this.enterOuterAlt(s,32),this.state=5393,this.match(t.CLONE_ADMIN);break;case 33:this.enterOuterAlt(s,33),this.state=5394,this.match(t.CONNECTION_ADMIN);break;case 34:this.enterOuterAlt(s,34),this.state=5395,this.match(t.ENCRYPTION_KEY_ADMIN);break;case 35:this.enterOuterAlt(s,35),this.state=5396,this.match(t.FIREWALL_ADMIN);break;case 36:this.enterOuterAlt(s,36),this.state=5397,this.match(t.FIREWALL_EXEMPT);break;case 37:this.enterOuterAlt(s,37),this.state=5398,this.match(t.FIREWALL_USER);break;case 38:this.enterOuterAlt(s,38),this.state=5399,this.match(t.FLUSH_OPTIMIZER_COSTS);break;case 39:this.enterOuterAlt(s,39),this.state=5400,this.match(t.FLUSH_STATUS);break;case 40:this.enterOuterAlt(s,40),this.state=5401,this.match(t.FLUSH_TABLES);break;case 41:this.enterOuterAlt(s,41),this.state=5402,this.match(t.FLUSH_USER_RESOURCES);break;case 42:this.enterOuterAlt(s,42),this.state=5403,this.match(t.GROUP_REPLICATION_ADMIN);break;case 43:this.enterOuterAlt(s,43),this.state=5404,this.match(t.INNODB_REDO_LOG_ARCHIVE);break;case 44:this.enterOuterAlt(s,44),this.state=5405,this.match(t.INNODB_REDO_LOG_ENABLE);break;case 45:this.enterOuterAlt(s,45),this.state=5406,this.match(t.NDB_STORED_USER);break;case 46:this.enterOuterAlt(s,46),this.state=5407,this.match(t.PASSWORDLESS_USER_ADMIN);break;case 47:this.enterOuterAlt(s,47),this.state=5408,this.match(t.PERSIST_RO_VARIABLES_ADMIN);break;case 48:this.enterOuterAlt(s,48),this.state=5409,this.match(t.REPLICATION_APPLIER);break;case 49:this.enterOuterAlt(s,49),this.state=5410,this.match(t.REPLICATION_SLAVE_ADMIN);break;case 50:this.enterOuterAlt(s,50),this.state=5411,this.match(t.RESOURCE_GROUP_ADMIN);break;case 51:this.enterOuterAlt(s,51),this.state=5412,this.match(t.RESOURCE_GROUP_USER);break;case 52:this.enterOuterAlt(s,52),this.state=5413,this.match(t.ROLE_ADMIN);break;case 53:this.enterOuterAlt(s,53),this.state=5414,this.match(t.SERVICE_CONNECTION_ADMIN);break;case 54:this.enterOuterAlt(s,54),this.state=5415,this.match(t.SESSION_VARIABLES_ADMIN);break;case 55:this.enterOuterAlt(s,55),this.state=5416,this.match(t.SET_USER_ID);break;case 56:this.enterOuterAlt(s,56),this.state=5417,this.match(t.SKIP_QUERY_REWRITE);break;case 57:this.enterOuterAlt(s,57),this.state=5418,this.match(t.SHOW_ROUTINE);break;case 58:this.enterOuterAlt(s,58),this.state=5419,this.match(t.SYSTEM_USER);break;case 59:this.enterOuterAlt(s,59),this.state=5420,this.match(t.SYSTEM_VARIABLES_ADMIN);break;case 60:this.enterOuterAlt(s,60),this.state=5421,this.match(t.TABLE_ENCRYPTION_ADMIN);break;case 61:this.enterOuterAlt(s,61),this.state=5422,this.match(t.TP_CONNECTION_ADMIN);break;case 62:this.enterOuterAlt(s,62),this.state=5423,this.match(t.VERSION_TOKEN_ADMIN);break;case 63:this.enterOuterAlt(s,63),this.state=5424,this.match(t.XA_RECOVER_ADMIN);break;case 64:this.enterOuterAlt(s,64),this.state=5425,this.match(t.LOAD),this.state=5426,this.match(t.FROM),this.state=5427,this.match(t.S3);break;case 65:this.enterOuterAlt(s,65),this.state=5428,this.match(t.SELECT),this.state=5429,this.match(t.INTO),this.state=5430,this.match(t.S3);break;case 66:this.enterOuterAlt(s,66),this.state=5431,this.match(t.INVOKE),this.state=5432,this.match(t.LAMBDA)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}privilegeLevel(){let e=new bp(this.context,this.state);this.enterRule(e,468,t.RULE_privilegeLevel);try{switch(this.state=5451,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,776,this.context)){case 1:e=new Jp(e),this.enterOuterAlt(e,1),this.state=5435,this.match(t.STAR);break;case 2:e=new Kp(e),this.enterOuterAlt(e,2),this.state=5436,this.match(t.STAR),this.state=5437,this.match(t.DOT),this.state=5438,this.match(t.STAR);break;case 3:e=new Wp(e),this.enterOuterAlt(e,3),this.state=5439,this.uid(),this.state=5440,this.match(t.DOT),this.state=5441,this.match(t.STAR);break;case 4:e=new Xp(e),this.enterOuterAlt(e,4),this.state=5443,this.uid(),this.state=5444,this.match(t.DOT),this.state=5445,this.uid();break;case 5:e=new Vp(e),this.enterOuterAlt(e,5),this.state=5447,this.uid(),this.state=5448,this.dottedId();break;case 6:e=new Qp(e),this.enterOuterAlt(e,6),this.state=5450,this.uid()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}renameUserClause(){let e=new Zp(this.context,this.state);this.enterRule(e,470,t.RULE_renameUserClause);try{this.enterOuterAlt(e,1),this.state=5453,this.userName(),this.state=5454,this.match(t.TO),this.state=5455,this.newUserName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}analyzeTable(){let e,s=new qp(this.context,this.state);this.enterRule(s,472,t.RULE_analyzeTable);try{if(this.enterOuterAlt(s,1),this.state=5457,this.match(t.ANALYZE),this.state=5459,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(115===e||474===e)&&(this.state=5458,s._actionOption=this.tokenStream.LT(1),e=this.tokenStream.LA(1),115===e||474===e?(this.errorHandler.reportMatch(this),this.consume()):s._actionOption=this.errorHandler.recoverInline(this)),this.state=5461,e=this.tokenStream.LA(1),172===e||742===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=5462,this.tables(),this.state=5480,this.errorHandler.sync(this),e=this.tokenStream.LA(1),184===e){for(this.state=5463,this.match(t.UPDATE),this.state=5464,this.match(t.HISTOGRAM),this.state=5465,this.match(t.ON),this.state=5466,this.fullColumnName(),this.state=5471,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=5467,this.match(t.COMMA),this.state=5468,this.fullColumnName(),this.state=5473,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=5478,this.errorHandler.sync(this),e=this.tokenStream.LA(1),192===e&&(this.state=5474,this.match(t.WITH),this.state=5475,this.decimalLiteral(),this.state=5476,this.match(t.BUCKETS))}if(this.state=5493,this.errorHandler.sync(this),e=this.tokenStream.LA(1),51===e)for(this.state=5482,this.match(t.DROP),this.state=5483,this.match(t.HISTOGRAM),this.state=5484,this.match(t.ON),this.state=5485,this.fullColumnName(),this.state=5490,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=5486,this.match(t.COMMA),this.state=5487,this.fullColumnName(),this.state=5492,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}checkTable(){let e,s=new jp(this.context,this.state);this.enterRule(s,474,t.RULE_checkTable);try{for(this.enterOuterAlt(s,1),this.state=5495,this.match(t.CHECK),this.state=5496,this.match(t.TABLE),this.state=5497,this.tables(),this.state=5501,this.errorHandler.sync(this),e=this.tokenStream.LA(1);65===e||354===e||422===e||425===e||504===e||568===e;)this.state=5498,this.checkTableOption(),this.state=5503,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}checksumTable(){let e,s=new zp(this.context,this.state);this.enterRule(s,476,t.RULE_checksumTable);try{this.enterOuterAlt(s,1),this.state=5504,this.match(t.CHECKSUM),this.state=5505,this.match(t.TABLE),this.state=5506,this.tables(),this.state=5508,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(422===e||568===e)&&(this.state=5507,s._actionOption=this.tokenStream.LT(1),e=this.tokenStream.LA(1),422===e||568===e?(this.errorHandler.reportMatch(this),this.consume()):s._actionOption=this.errorHandler.recoverInline(this))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optimizeTable(){let e,s=new $p(this.context,this.state);this.enterRule(s,478,t.RULE_optimizeTable);try{this.enterOuterAlt(s,1),this.state=5510,this.match(t.OPTIMIZE),this.state=5512,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(115===e||474===e)&&(this.state=5511,s._actionOption=this.tokenStream.LT(1),e=this.tokenStream.LA(1),115===e||474===e?(this.errorHandler.reportMatch(this),this.consume()):s._actionOption=this.errorHandler.recoverInline(this)),this.state=5514,e=this.tokenStream.LA(1),172===e||742===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=5515,this.tables()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}repairTable(){let e,s=new tg(this.context,this.state);this.enterRule(s,480,t.RULE_repairTable);try{this.enterOuterAlt(s,1),this.state=5517,this.match(t.REPAIR),this.state=5519,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(115===e||474===e)&&(this.state=5518,s._actionOption=this.tokenStream.LT(1),e=this.tokenStream.LA(1),115===e||474===e?(this.errorHandler.reportMatch(this),this.consume()):s._actionOption=this.errorHandler.recoverInline(this)),this.state=5521,this.match(t.TABLE),this.state=5522,this.tables(),this.state=5524,this.errorHandler.sync(this),e=this.tokenStream.LA(1),568===e&&(this.state=5523,this.match(t.QUICK)),this.state=5527,this.errorHandler.sync(this),e=this.tokenStream.LA(1),422===e&&(this.state=5526,this.match(t.EXTENDED)),this.state=5530,this.errorHandler.sync(this),e=this.tokenStream.LA(1),666===e&&(this.state=5529,this.match(t.USE_FRM))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}checkTableOption(){let e=new eg(this.context,this.state);this.enterRule(e,482,t.RULE_checkTableOption);try{switch(this.state=5539,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FOR:this.enterOuterAlt(e,1),this.state=5532,this.match(t.FOR),this.state=5533,this.match(t.UPGRADE);break;case t.QUICK:this.enterOuterAlt(e,2),this.state=5534,this.match(t.QUICK);break;case t.FAST:this.enterOuterAlt(e,3),this.state=5535,this.match(t.FAST);break;case t.MEDIUM:this.enterOuterAlt(e,4),this.state=5536,this.match(t.MEDIUM);break;case t.EXTENDED:this.enterOuterAlt(e,5),this.state=5537,this.match(t.EXTENDED);break;case t.CHANGED:this.enterOuterAlt(e,6),this.state=5538,this.match(t.CHANGED);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}createUdfunction(){let e,s=new sg(this.context,this.state);this.enterRule(s,484,t.RULE_createUdfunction);try{if(this.enterOuterAlt(s,1),1===(this.state=5541,this.match(t.CREATE),this.state=5543,this.errorHandler.sync(this),e=this.tokenStream.LA(1),335===e&&(this.state=5542,this.match(t.AGGREGATE)),this.state=5545,this.match(t.FUNCTION),this.state=5547,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,792,this.context)))this.state=5546,this.ifNotExists();this.state=5549,this.uid(),this.state=5550,this.match(t.RETURNS),this.state=5551,s._returnType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),!(e-206&-32)&&1<<e-206&261||638===e?(this.errorHandler.reportMatch(this),this.consume()):s._returnType=this.errorHandler.recoverInline(this),this.state=5552,this.match(t.SONAME),this.state=5553,this.match(t.STRING_LITERAL)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}installPlugin(){let e=new ag(this.context,this.state);this.enterRule(e,486,t.RULE_installPlugin);try{this.enterOuterAlt(e,1),this.state=5555,this.match(t.INSTALL),this.state=5556,this.match(t.PLUGIN),this.state=5557,this.uid(),this.state=5558,this.match(t.SONAME),this.state=5559,this.match(t.STRING_LITERAL)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}uninstallPlugin(){let e=new rg(this.context,this.state);this.enterRule(e,488,t.RULE_uninstallPlugin);try{this.enterOuterAlt(e,1),this.state=5561,this.match(t.UNINSTALL),this.state=5562,this.match(t.PLUGIN),this.state=5563,this.uid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}setStatement(){let e,s=new ig(this.context,this.state);this.enterRule(s,490,t.RULE_setStatement);try{switch(this.state=5617,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,800,this.context)){case 1:switch(s=new Rg(s),this.enterOuterAlt(s,1),this.state=5565,this.match(t.SET),this.state=5566,this.variableClause(),this.state=5567,e=this.tokenStream.LA(1),1108===e||1124===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=5570,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,793,this.context)){case 1:this.state=5568,this.expression(0);break;case 2:this.state=5569,this.match(t.ON)}for(this.state=5581,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;){switch(this.state=5572,this.match(t.COMMA),this.state=5573,this.variableClause(),this.state=5574,e=this.tokenStream.LA(1),1108===e||1124===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=5577,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,794,this.context)){case 1:this.state=5575,this.expression(0);break;case 2:this.state=5576,this.match(t.ON)}this.state=5583,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}break;case 2:switch(s=new ng(s),this.enterOuterAlt(s,2),this.state=5584,this.match(t.SET),this.state=5585,this.charSet(),this.state=5588,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.BINARY:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:this.state=5586,this.charsetName();break;case t.DEFAULT:this.state=5587,this.match(t.DEFAULT);break;default:throw new Ei(this)}break;case 3:switch(s=new hg(s),this.enterOuterAlt(s,3),this.state=5590,this.match(t.SET),this.state=5591,this.match(t.NAMES),this.state=5598,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.BINARY:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:this.state=5592,this.charsetName(),this.state=5595,this.errorHandler.sync(this),e=this.tokenStream.LA(1),27===e&&(this.state=5593,this.match(t.COLLATE),this.state=5594,this.collationName());break;case t.DEFAULT:this.state=5597,this.match(t.DEFAULT);break;default:throw new Ei(this)}break;case 4:s=new Eg(s),this.enterOuterAlt(s,4),this.state=5600,this.setPasswordStatement();break;case 5:s=new cg(s),this.enterOuterAlt(s,5),this.state=5601,this.setTransactionStatement();break;case 6:s=new Tg(s),this.enterOuterAlt(s,6),this.state=5602,this.setAutocommitStatement();break;case 7:for(s=new og(s),this.enterOuterAlt(s,7),this.state=5603,this.match(t.SET),this.state=5604,this.fullId(),this.state=5605,e=this.tokenStream.LA(1),1108===e||1124===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=5606,this.expression(0),this.state=5614,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=5607,this.match(t.COMMA),this.state=5608,this.fullId(),this.state=5609,e=this.tokenStream.LA(1),1108===e||1124===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=5610,this.expression(0),this.state=5616,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}showStatement(){let e,s=new Ag(this.context,this.state);this.enterRule(s,492,t.RULE_showStatement);try{switch(this.state=5780,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,823,this.context)){case 1:s=new mg(s),this.enterOuterAlt(s,1),this.state=5619,this.match(t.SHOW),this.state=5620,s._logFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),226===e||477===e?(this.errorHandler.reportMatch(this),this.consume()):s._logFormat=this.errorHandler.recoverInline(this),this.state=5621,this.match(t.LOGS);break;case 2:if(s=new dg(s),this.enterOuterAlt(s,2),this.state=5622,this.match(t.SHOW),this.state=5623,s._logFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),345===e||577===e?(this.errorHandler.reportMatch(this),this.consume()):s._logFormat=this.errorHandler.recoverInline(this),this.state=5624,this.match(t.EVENTS),this.state=5627,this.errorHandler.sync(this),e=this.tokenStream.LA(1),80===e&&(this.state=5625,this.match(t.IN),this.state=5626,s._filename=this.match(t.STRING_LITERAL)),this.state=5631,this.errorHandler.sync(this),e=this.tokenStream.LA(1),68===e&&(this.state=5629,this.match(t.FROM),this.state=5630,s._fromPosition=this.decimalLiteral()),this.state=5640,this.errorHandler.sync(this),e=this.tokenStream.LA(1),99===e){if(1===(this.state=5633,this.match(t.LIMIT),this.state=5637,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,803,this.context)))this.state=5634,s._offset=this.decimalLiteral(),this.state=5635,this.match(t.COMMA);this.state=5639,s._rowCount=this.decimalLiteral()}break;case 3:s=new Lg(s),this.enterOuterAlt(s,3),this.state=5642,this.match(t.SHOW),this.state=5643,this.showCommonEntity(),this.state=5645,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(98===e||190===e)&&(this.state=5644,this.showFilter());break;case 4:s=new kg(s),this.enterOuterAlt(s,4),this.state=5647,this.match(t.SHOW),this.state=5649,this.errorHandler.sync(this),e=this.tokenStream.LA(1),436===e&&(this.state=5648,this.match(t.FULL)),this.state=5651,s._columnsFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),365===e||427===e?(this.errorHandler.reportMatch(this),this.consume()):s._columnsFormat=this.errorHandler.recoverInline(this),this.state=5652,s._tableFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),68===e||80===e?(this.errorHandler.reportMatch(this),this.consume()):s._tableFormat=this.errorHandler.recoverInline(this),this.state=5653,this.tableName(),this.state=5656,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(68===e||80===e)&&(this.state=5654,s._schemaFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),68===e||80===e?(this.errorHandler.reportMatch(this),this.consume()):s._schemaFormat=this.errorHandler.recoverInline(this),this.state=5655,this.uid()),this.state=5659,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(98===e||190===e)&&(this.state=5658,this.showFilter());break;case 5:if(s=new Cg(s),this.enterOuterAlt(s,5),1===(this.state=5661,this.match(t.SHOW),this.state=5662,this.match(t.CREATE),this.state=5663,s._schemaFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),39===e||150===e?(this.errorHandler.reportMatch(this),this.consume()):s._schemaFormat=this.errorHandler.recoverInline(this),this.state=5665,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,809,this.context)))this.state=5664,this.ifNotExists();this.state=5667,this.databaseName();break;case 6:s=new Og(s),this.enterOuterAlt(s,6),this.state=5668,this.match(t.SHOW),this.state=5669,this.match(t.CREATE),this.state=5670,s._namedEntity=this.tokenStream.LT(1),e=this.tokenStream.LA(1),131===e||415===e||437===e?(this.errorHandler.reportMatch(this),this.consume()):s._namedEntity=this.errorHandler.recoverInline(this),this.state=5671,this.fullId();break;case 7:s=new Hg(s),this.enterOuterAlt(s,7),this.state=5672,this.match(t.SHOW),this.state=5673,this.match(t.CREATE),this.state=5674,e=this.tokenStream.LA(1),172===e||671===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=5675,this.tableName();break;case 8:s=new Ug(s),this.enterOuterAlt(s,8),this.state=5676,this.match(t.SHOW),this.state=5677,this.match(t.CREATE),this.state=5678,this.match(t.TRIGGER),this.state=5679,this.triggerName();break;case 9:s=new Ig(s),this.enterOuterAlt(s,9),this.state=5680,this.match(t.SHOW),this.state=5681,this.match(t.CREATE),this.state=5682,this.match(t.USER),this.state=5683,this.userName();break;case 10:s=new _g(s),this.enterOuterAlt(s,10),this.state=5684,this.match(t.SHOW),this.state=5685,this.match(t.ENGINE),this.state=5686,this.engineName(),this.state=5687,s._engineOption=this.tokenStream.LT(1),e=this.tokenStream.LA(1),513===e||634===e?(this.errorHandler.reportMatch(this),this.consume()):s._engineOption=this.errorHandler.recoverInline(this);break;case 11:s=new lg(s),this.enterOuterAlt(s,11),this.state=5689,this.match(t.SHOW),this.state=5690,this.showGlobalInfoClause();break;case 12:if(s=new ug(s),this.enterOuterAlt(s,12),this.state=5691,this.match(t.SHOW),this.state=5692,s._errorFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),412===e||675===e?(this.errorHandler.reportMatch(this),this.consume()):s._errorFormat=this.errorHandler.recoverInline(this),this.state=5700,this.errorHandler.sync(this),e=this.tokenStream.LA(1),99===e){if(1===(this.state=5693,this.match(t.LIMIT),this.state=5697,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,810,this.context)))this.state=5694,s._offset=this.decimalLiteral(),this.state=5695,this.match(t.COMMA);this.state=5699,s._rowCount=this.decimalLiteral()}break;case 13:s=new Ng(s),this.enterOuterAlt(s,13),this.state=5702,this.match(t.SHOW),this.state=5703,this.match(t.COUNT),this.state=5704,this.match(t.LR_BRACKET),this.state=5705,this.match(t.STAR),this.state=5706,this.match(t.RR_BRACKET),this.state=5707,s._errorFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),412===e||675===e?(this.errorHandler.reportMatch(this),this.consume()):s._errorFormat=this.errorHandler.recoverInline(this);break;case 14:s=new Pg(s),this.enterOuterAlt(s,14),this.state=5708,this.match(t.SHOW),this.state=5709,this.showSchemaEntity(),this.state=5712,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(68===e||80===e)&&(this.state=5710,s._schemaFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),68===e||80===e?(this.errorHandler.reportMatch(this),this.consume()):s._schemaFormat=this.errorHandler.recoverInline(this),this.state=5711,this.uid()),this.state=5715,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(98===e||190===e)&&(this.state=5714,this.showFilter());break;case 15:s=new gg(s),this.enterOuterAlt(s,15),this.state=5717,this.match(t.SHOW),this.state=5718,s._routine=this.tokenStream.LT(1),e=this.tokenStream.LA(1),131===e||437===e?(this.errorHandler.reportMatch(this),this.consume()):s._routine=this.errorHandler.recoverInline(this),this.state=5719,this.match(t.CODE),this.state=5720,this.fullId();break;case 16:s=new Dg(s),this.enterOuterAlt(s,16),this.state=5721,this.match(t.SHOW),this.state=5722,this.match(t.GRANTS),this.state=5725,this.errorHandler.sync(this),e=this.tokenStream.LA(1),65===e&&(this.state=5723,this.match(t.FOR),this.state=5724,this.userName());break;case 17:s=new Mg(s),this.enterOuterAlt(s,17),this.state=5727,this.match(t.SHOW),this.state=5728,s._indexFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),81===e||92===e||452===e?(this.errorHandler.reportMatch(this),this.consume()):s._indexFormat=this.errorHandler.recoverInline(this),this.state=5729,s._tableFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),68===e||80===e?(this.errorHandler.reportMatch(this),this.consume()):s._tableFormat=this.errorHandler.recoverInline(this),this.state=5730,this.tableName(),this.state=5733,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(68===e||80===e)&&(this.state=5731,s._schemaFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),68===e||80===e?(this.errorHandler.reportMatch(this),this.consume()):s._schemaFormat=this.errorHandler.recoverInline(this),this.state=5732,this.uid()),this.state=5737,this.errorHandler.sync(this),e=this.tokenStream.LA(1),190===e&&(this.state=5735,this.match(t.WHERE),this.state=5736,this.expression(0));break;case 18:s=new Sg(s),this.enterOuterAlt(s,18),this.state=5739,this.match(t.SHOW),this.state=5740,this.match(t.OPEN),this.state=5741,this.match(t.TABLES),this.state=5744,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(68===e||80===e)&&(this.state=5742,s._schemaFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),68===e||80===e?(this.errorHandler.reportMatch(this),this.consume()):s._schemaFormat=this.errorHandler.recoverInline(this),this.state=5743,this.uid()),this.state=5747,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(98===e||190===e)&&(this.state=5746,this.showFilter());break;case 19:for(s=new xg(s),this.enterOuterAlt(s,19),this.state=5749,this.match(t.SHOW),this.state=5750,this.match(t.PROFILE),this.state=5751,this.showProfileType(),this.state=5756,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=5752,this.match(t.COMMA),this.state=5753,this.showProfileType(),this.state=5758,this.errorHandler.sync(this),e=this.tokenStream.LA(1);if(this.state=5762,this.errorHandler.sync(this),e=this.tokenStream.LA(1),65===e&&(this.state=5759,this.match(t.FOR),this.state=5760,this.match(t.QUERY),this.state=5761,s._queryCount=this.decimalLiteral()),1===(this.state=5764,this.match(t.LIMIT),this.state=5768,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,821,this.context)))this.state=5765,s._offset=this.decimalLiteral(),this.state=5766,this.match(t.COMMA);this.state=5770,s._rowCount=this.decimalLiteral();break;case 20:s=new pg(s),this.enterOuterAlt(s,20),this.state=5772,this.match(t.SHOW),this.state=5773,this.match(t.SLAVE),this.state=5774,this.match(t.STATUS),this.state=5778,this.errorHandler.sync(this),e=this.tokenStream.LA(1),65===e&&(this.state=5775,this.match(t.FOR),this.state=5776,this.match(t.CHANNEL),this.state=5777,this.match(t.STRING_LITERAL))}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}variableClause(){let e,s=new Gg(this.context,this.state);this.enterRule(s,494,t.RULE_variableClause);try{switch(this.state=5792,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LOCAL_ID:this.enterOuterAlt(s,1),this.state=5782,this.match(t.LOCAL_ID);break;case t.GLOBAL_ID:this.enterOuterAlt(s,2),this.state=5783,this.match(t.GLOBAL_ID);break;case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.AT_SIGN:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:if(this.enterOuterAlt(s,3),1===(this.state=5789,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,825,this.context)))this.state=5786,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1137===e&&(this.state=5784,this.match(t.AT_SIGN),this.state=5785,this.match(t.AT_SIGN)),this.state=5788,e=this.tokenStream.LA(1),439===e||474===e||609===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);this.state=5791,this.uid();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}showCommonEntity(){let e,s=new Fg(this.context,this.state);this.enterRule(s,496,t.RULE_showCommonEntity);try{switch(this.state=5807,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CHARACTER:this.enterOuterAlt(s,1),this.state=5794,this.match(t.CHARACTER),this.state=5795,this.match(t.SET);break;case t.COLLATION:this.enterOuterAlt(s,2),this.state=5796,this.match(t.COLLATION);break;case t.DATABASES:this.enterOuterAlt(s,3),this.state=5797,this.match(t.DATABASES);break;case t.SCHEMAS:this.enterOuterAlt(s,4),this.state=5798,this.match(t.SCHEMAS);break;case t.FUNCTION:this.enterOuterAlt(s,5),this.state=5799,this.match(t.FUNCTION),this.state=5800,this.match(t.STATUS);break;case t.PROCEDURE:this.enterOuterAlt(s,6),this.state=5801,this.match(t.PROCEDURE),this.state=5802,this.match(t.STATUS);break;case t.GLOBAL:case t.SESSION:case t.STATUS:case t.VARIABLES:this.enterOuterAlt(s,7),this.state=5804,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(439===e||609===e)&&(this.state=5803,e=this.tokenStream.LA(1),439===e||609===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=5806,e=this.tokenStream.LA(1),634===e||670===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}showFilter(){let e=new vg(this.context,this.state);this.enterRule(e,498,t.RULE_showFilter);try{switch(this.state=5813,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LIKE:this.enterOuterAlt(e,1),this.state=5809,this.match(t.LIKE),this.state=5810,this.match(t.STRING_LITERAL);break;case t.WHERE:this.enterOuterAlt(e,2),this.state=5811,this.match(t.WHERE),this.state=5812,this.expression(0);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}showGlobalInfoClause(){let e,s=new Bg(this.context,this.state);this.enterRule(s,500,t.RULE_showGlobalInfoClause);try{switch(this.state=5832,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ENGINES:case t.STORAGE:this.enterOuterAlt(s,1),this.state=5816,this.errorHandler.sync(this),e=this.tokenStream.LA(1),636===e&&(this.state=5815,this.match(t.STORAGE)),this.state=5818,this.match(t.ENGINES);break;case t.MASTER:this.enterOuterAlt(s,2),this.state=5819,this.match(t.MASTER),this.state=5820,this.match(t.STATUS);break;case t.PLUGINS:this.enterOuterAlt(s,3),this.state=5821,this.match(t.PLUGINS);break;case t.PRIVILEGES:this.enterOuterAlt(s,4),this.state=5822,this.match(t.PRIVILEGES);break;case t.FULL:case t.PROCESSLIST:this.enterOuterAlt(s,5),this.state=5824,this.errorHandler.sync(this),e=this.tokenStream.LA(1),436===e&&(this.state=5823,this.match(t.FULL)),this.state=5826,this.match(t.PROCESSLIST);break;case t.PROFILES:this.enterOuterAlt(s,6),this.state=5827,this.match(t.PROFILES);break;case t.SLAVE:this.enterOuterAlt(s,7),this.state=5828,this.match(t.SLAVE),this.state=5829,this.match(t.HOSTS);break;case t.AUTHORS:this.enterOuterAlt(s,8),this.state=5830,this.match(t.AUTHORS);break;case t.CONTRIBUTORS:this.enterOuterAlt(s,9),this.state=5831,this.match(t.CONTRIBUTORS);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}showSchemaEntity(){let e,s=new yg(this.context,this.state);this.enterRule(s,502,t.RULE_showSchemaEntity);try{switch(this.state=5842,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.EVENTS:this.enterOuterAlt(s,1),this.state=5834,this.match(t.EVENTS);break;case t.TABLE:this.enterOuterAlt(s,2),this.state=5835,this.match(t.TABLE),this.state=5836,this.match(t.STATUS);break;case t.FULL:case t.TABLES:this.enterOuterAlt(s,3),this.state=5838,this.errorHandler.sync(this),e=this.tokenStream.LA(1),436===e&&(this.state=5837,this.match(t.FULL)),this.state=5840,this.match(t.TABLES);break;case t.TRIGGERS:this.enterOuterAlt(s,4),this.state=5841,this.match(t.TRIGGERS);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}showProfileType(){let e=new fg(this.context,this.state);this.enterRule(e,504,t.RULE_showProfileType);try{switch(this.state=5856,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ALL:this.enterOuterAlt(e,1),this.state=5844,this.match(t.ALL);break;case t.BLOCK:this.enterOuterAlt(e,2),this.state=5845,this.match(t.BLOCK),this.state=5846,this.match(t.IO);break;case t.CONTEXT:this.enterOuterAlt(e,3),this.state=5847,this.match(t.CONTEXT),this.state=5848,this.match(t.SWITCHES);break;case t.CPU:this.enterOuterAlt(e,4),this.state=5849,this.match(t.CPU);break;case t.IPC:this.enterOuterAlt(e,5),this.state=5850,this.match(t.IPC);break;case t.MEMORY:this.enterOuterAlt(e,6),this.state=5851,this.match(t.MEMORY);break;case t.PAGE:this.enterOuterAlt(e,7),this.state=5852,this.match(t.PAGE),this.state=5853,this.match(t.FAULTS);break;case t.SOURCE:this.enterOuterAlt(e,8),this.state=5854,this.match(t.SOURCE);break;case t.SWAPS:this.enterOuterAlt(e,9),this.state=5855,this.match(t.SWAPS);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}binlogStatement(){let e=new Yg(this.context,this.state);this.enterRule(e,506,t.RULE_binlogStatement);try{this.enterOuterAlt(e,1),this.state=5858,this.match(t.BINLOG),this.state=5859,this.match(t.STRING_LITERAL)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}cacheIndexStatement(){let e,s=new wg(this.context,this.state);this.enterRule(s,508,t.RULE_cacheIndexStatement);try{for(this.enterOuterAlt(s,1),this.state=5861,this.match(t.CACHE),this.state=5862,this.match(t.INDEX),this.state=5863,this.tableIndexes(),this.state=5868,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=5864,this.match(t.COMMA),this.state=5865,this.tableIndexes(),this.state=5870,this.errorHandler.sync(this),e=this.tokenStream.LA(1);if(this.state=5878,this.errorHandler.sync(this),e=this.tokenStream.LA(1),129===e){switch(this.state=5871,this.match(t.PARTITION),this.state=5872,this.match(t.LR_BRACKET),this.state=5875,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:this.state=5873,this.uidList();break;case t.ALL:this.state=5874,this.match(t.ALL);break;default:throw new Ei(this)}this.state=5877,this.match(t.RR_BRACKET)}this.state=5880,this.match(t.IN),this.state=5881,s._schema=this.uid()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}flushStatement(){let e,s=new bg(this.context,this.state);this.enterRule(s,510,t.RULE_flushStatement);try{for(this.enterOuterAlt(s,1),this.state=5883,this.match(t.FLUSH),this.state=5885,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(115===e||474===e)&&(this.state=5884,s._flushFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),115===e||474===e?(this.errorHandler.reportMatch(this),this.consume()):s._flushFormat=this.errorHandler.recoverInline(this)),this.state=5887,this.flushOption(),this.state=5892,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=5888,this.match(t.COMMA),this.state=5889,this.flushOption(),this.state=5894,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}killStatement(){let e,s=new Wg(this.context,this.state);this.enterRule(s,512,t.RULE_killStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=5895,this.match(t.KILL),this.state=5897,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,841,this.context)))this.state=5896,s._connectionFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),376===e||567===e?(this.errorHandler.reportMatch(this),this.consume()):s._connectionFormat=this.errorHandler.recoverInline(this);this.state=5899,this.expression(0)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}loadIndexIntoCache(){let e,s=new Vg(this.context,this.state);this.enterRule(s,514,t.RULE_loadIndexIntoCache);try{for(this.enterOuterAlt(s,1),this.state=5901,this.match(t.LOAD),this.state=5902,this.match(t.INDEX),this.state=5903,this.match(t.INTO),this.state=5904,this.match(t.CACHE),this.state=5905,this.loadedTableIndexes(),this.state=5910,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=5906,this.match(t.COMMA),this.state=5907,this.loadedTableIndexes(),this.state=5912,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}resetStatement(){let e=new Xg(this.context,this.state);this.enterRule(e,516,t.RULE_resetStatement);try{this.enterOuterAlt(e,1),this.state=5913,this.match(t.RESET),this.state=5914,this.match(t.QUERY),this.state=5915,this.match(t.CACHE)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}shutdownStatement(){let e=new Kg(this.context,this.state);this.enterRule(e,518,t.RULE_shutdownStatement);try{this.enterOuterAlt(e,1),this.state=5917,this.match(t.SHUTDOWN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableIndexes(){let e,s=new Qg(this.context,this.state);this.enterRule(s,520,t.RULE_tableIndexes);try{this.enterOuterAlt(s,1),this.state=5919,this.tableName(),this.state=5927,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(81===e||91===e||1133===e)&&(this.state=5921,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(81===e||91===e)&&(this.state=5920,s._indexFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),81===e||91===e?(this.errorHandler.reportMatch(this),this.consume()):s._indexFormat=this.errorHandler.recoverInline(this)),this.state=5923,this.match(t.LR_BRACKET),this.state=5924,this.indexNameList(),this.state=5925,this.match(t.RR_BRACKET))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}flushOption(){let e,s=new Jg(this.context,this.state);this.enterRule(s,522,t.RULE_flushOption);try{switch(this.state=5961,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,851,this.context)){case 1:switch(s=new jg(s),this.enterOuterAlt(s,1),this.state=5947,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DES_KEY_FILE:this.state=5929,this.match(t.DES_KEY_FILE);break;case t.HOSTS:this.state=5930,this.match(t.HOSTS);break;case t.BINARY:case t.ENGINE:case t.ERROR:case t.GENERAL:case t.LOGS:case t.RELAY:case t.SLOW:this.state=5932,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(226===e||!(e-409&-32)&&1<<e-409&536870917||574===e||615===e)&&(this.state=5931,e=this.tokenStream.LA(1),226===e||!(e-409&-32)&&1<<e-409&536870917||574===e||615===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=5934,this.match(t.LOGS);break;case t.OPTIMIZER_COSTS:this.state=5935,this.match(t.OPTIMIZER_COSTS);break;case t.PRIVILEGES:this.state=5936,this.match(t.PRIVILEGES);break;case t.QUERY:this.state=5937,this.match(t.QUERY),this.state=5938,this.match(t.CACHE);break;case t.STATUS:this.state=5939,this.match(t.STATUS);break;case t.USER_RESOURCES:this.state=5940,this.match(t.USER_RESOURCES);break;case t.TABLES:this.state=5941,this.match(t.TABLES),this.state=5945,this.errorHandler.sync(this),e=this.tokenStream.LA(1),192===e&&(this.state=5942,this.match(t.WITH),this.state=5943,this.match(t.READ),this.state=5944,this.match(t.LOCK));break;default:throw new Ei(this)}break;case 2:s=new qg(s),this.enterOuterAlt(s,2),this.state=5949,this.match(t.RELAY),this.state=5950,this.match(t.LOGS),this.state=5952,this.errorHandler.sync(this),e=this.tokenStream.LA(1),65===e&&(this.state=5951,this.channelOption());break;case 3:s=new Zg(s),this.enterOuterAlt(s,3),this.state=5954,e=this.tokenStream.LA(1),172===e||742===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=5956,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028437||!(e-73&-32)&&1<<e-73&18878545||!(e-117&-32)&&1<<e-117&2172657809||!(e-150&-32)&&1<<e-150&262401||!(e-217&-32)&&1<<e-217&5374495||!(e-251&-32)&&1<<e-251&4294967295||!(e-283&-32)&&1<<e-283&4294967295||!(e-315&-32)&&1<<e-315&4294967231||!(e-347&-32)&&1<<e-347&4294967295||!(e-379&-32)&&1<<e-379&4127195007||!(e-411&-32)&&1<<e-411&4290772991||!(e-443&-32)&&1<<e-443&4294967039||!(e-475&-32)&&1<<e-475&4294967295||!(e-507&-32)&&1<<e-507&4294017023||!(e-539&-32)&&1<<e-539&4293918527||!(e-571&-32)&&1<<e-571&4290248703||!(e-603&-32)&&1<<e-603&4294967279||!(e-635&-32)&&1<<e-635&4294967291||!(e-667&-32)&&1<<e-667&2147417599||!(e-699&-32)&&1<<e-699&4293672959||!(e-731&-32)&&1<<e-731&4294967279||!(e-763&-32)&&1<<e-763&4294967295||!(e-795&-32)&&1<<e-795&4294965759||!(e-827&-32)&&1<<e-827&4294967295||!(e-859&-32)&&1<<e-859&4294967295||!(e-891&-32)&&1<<e-891&4294967295||!(e-923&-32)&&1<<e-923&4294967295||!(e-955&-32)&&1<<e-955&4294967295||!(e-987&-32)&&1<<e-987&4294967295||!(e-1019&-32)&&1<<e-1019&4294967295||!(e-1051&-32)&&1<<e-1051&4294967295||!(e-1083&-32)&&1<<e-1083&33554431||!(e-1123&-32)&&1<<e-1123&37748737||1156===e)&&(this.state=5955,this.tables()),this.state=5959,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(65===e||192===e)&&(this.state=5958,this.flushTableOption())}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}flushTableOption(){let e=new zg(this.context,this.state);this.enterRule(e,524,t.RULE_flushTableOption);try{switch(this.state=5968,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WITH:this.enterOuterAlt(e,1),this.state=5963,this.match(t.WITH),this.state=5964,this.match(t.READ),this.state=5965,this.match(t.LOCK);break;case t.FOR:this.enterOuterAlt(e,2),this.state=5966,this.match(t.FOR),this.state=5967,this.match(t.EXPORT);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}loadedTableIndexes(){let e,s=new $g(this.context,this.state);this.enterRule(s,526,t.RULE_loadedTableIndexes);try{if(this.enterOuterAlt(s,1),this.state=5970,this.tableName(),this.state=5978,this.errorHandler.sync(this),e=this.tokenStream.LA(1),129===e){switch(this.state=5971,this.match(t.PARTITION),this.state=5972,this.match(t.LR_BRACKET),this.state=5975,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:this.state=5973,s._partitionList=this.uidList();break;case t.ALL:this.state=5974,this.match(t.ALL);break;default:throw new Ei(this)}this.state=5977,this.match(t.RR_BRACKET)}this.state=5987,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(81===e||91===e||1133===e)&&(this.state=5981,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(81===e||91===e)&&(this.state=5980,s._indexFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),81===e||91===e?(this.errorHandler.reportMatch(this),this.consume()):s._indexFormat=this.errorHandler.recoverInline(this)),this.state=5983,this.match(t.LR_BRACKET),this.state=5984,this.indexNameList(),this.state=5985,this.match(t.RR_BRACKET)),this.state=5991,this.errorHandler.sync(this),e=this.tokenStream.LA(1),78===e&&(this.state=5989,this.match(t.IGNORE),this.state=5990,this.match(t.LEAVES))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}simpleDescribeStatement(){let e,s=new tx(this.context,this.state);this.enterRule(s,528,t.RULE_simpleDescribeStatement);try{switch(this.enterOuterAlt(s,1),this.state=5993,s._command=this.tokenStream.LT(1),e=this.tokenStream.LA(1),!(e-45&-32)&&1<<e-45&131075?(this.errorHandler.reportMatch(this),this.consume()):s._command=this.errorHandler.recoverInline(this),this.state=5994,this.tableName(),this.state=5997,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,858,this.context)){case 1:this.state=5995,s._column=this.uid();break;case 2:this.state=5996,s._pattern=this.match(t.STRING_LITERAL)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}fullDescribeStatement(){let e,s=new ex(this.context,this.state);this.enterRule(s,530,t.RULE_fullDescribeStatement);try{this.enterOuterAlt(s,1),this.state=5999,s._command=this.tokenStream.LT(1),e=this.tokenStream.LA(1),!(e-45&-32)&&1<<e-45&131075?(this.errorHandler.reportMatch(this),this.consume()):s._command=this.errorHandler.recoverInline(this),this.state=6003,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(422===e||550===e||885===e)&&(this.state=6e3,s._formatType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),422===e||550===e||885===e?(this.errorHandler.reportMatch(this),this.consume()):s._formatType=this.errorHandler.recoverInline(this),this.state=6001,this.match(t.EQUAL_SYMBOL),this.state=6002,s._formatValue=this.tokenStream.LT(1),e=this.tokenStream.LA(1),466===e||652===e?(this.errorHandler.reportMatch(this),this.consume()):s._formatValue=this.errorHandler.recoverInline(this)),this.state=6005,this.describeObjectClause()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}helpStatement(){let e=new sx(this.context,this.state);this.enterRule(e,532,t.RULE_helpStatement);try{this.enterOuterAlt(e,1),this.state=6007,this.match(t.HELP),this.state=6008,this.match(t.STRING_LITERAL)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}useStatement(){let e=new ax(this.context,this.state);this.enterRule(e,534,t.RULE_useStatement);try{this.enterOuterAlt(e,1),this.state=6010,this.match(t.USE),this.state=6011,this.uid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}signalStatement(){let e,s=new rx(this.context,this.state);this.enterRule(s,536,t.RULE_signalStatement);try{switch(this.enterOuterAlt(s,1),this.state=6013,this.match(t.SIGNAL),this.state=6021,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SQLSTATE:this.state=6014,this.match(t.SQLSTATE),this.state=6016,this.errorHandler.sync(this),e=this.tokenStream.LA(1),669===e&&(this.state=6015,this.match(t.VALUE)),this.state=6018,this.stringLiteral();break;case t.ID:this.state=6019,this.match(t.ID);break;case t.REVERSE_QUOTE_ID:this.state=6020,this.match(t.REVERSE_QUOTE_ID);break;default:throw new Ei(this)}if(this.state=6032,this.errorHandler.sync(this),e=this.tokenStream.LA(1),153===e)for(this.state=6023,this.match(t.SET),this.state=6024,this.signalConditionInformation(),this.state=6029,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6025,this.match(t.COMMA),this.state=6026,this.signalConditionInformation(),this.state=6031,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}resignalStatement(){let e,s=new ix(this.context,this.state);this.enterRule(s,538,t.RULE_resignalStatement);try{switch(this.enterOuterAlt(s,1),this.state=6034,this.match(t.RESIGNAL),this.state=6042,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SQLSTATE:this.state=6035,this.match(t.SQLSTATE),this.state=6037,this.errorHandler.sync(this),e=this.tokenStream.LA(1),669===e&&(this.state=6036,this.match(t.VALUE)),this.state=6039,this.stringLiteral();break;case t.ID:this.state=6040,this.match(t.ID);break;case t.REVERSE_QUOTE_ID:this.state=6041,this.match(t.REVERSE_QUOTE_ID);case t.EOF:case t.SET:case t.SEMI:}if(this.state=6053,this.errorHandler.sync(this),e=this.tokenStream.LA(1),153===e)for(this.state=6044,this.match(t.SET),this.state=6045,this.signalConditionInformation(),this.state=6050,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6046,this.match(t.COMMA),this.state=6047,this.signalConditionInformation(),this.state=6052,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}signalConditionInformation(){let e,s=new cx(this.context,this.state);this.enterRule(s,540,t.RULE_signalConditionInformation);try{switch(this.enterOuterAlt(s,1),this.state=6055,e=this.tokenStream.LA(1),!(e-359&-32)&&1<<e-359&272105729||507===e||515===e||639===e||646===e||836===e||1005===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=6056,this.match(t.EQUAL_SYMBOL),this.state=6061,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.START_NATIONAL_STRING_LITERAL:case t.STRING_LITERAL:case t.STRING_CHARSET_NAME:this.state=6057,this.stringLiteral();break;case t.DECIMAL_LITERAL:this.state=6058,this.match(t.DECIMAL_LITERAL);break;case t.LOCAL_ID:case t.GLOBAL_ID:this.state=6059,this.mysqlVariable();break;case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.ID:this.state=6060,this.simpleId();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}withStatement(){let e,s=new nx(this.context,this.state);this.enterRule(s,542,t.RULE_withStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=6063,this.match(t.WITH),this.state=6065,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,869,this.context)))this.state=6064,this.match(t.RECURSIVE);for(this.state=6067,this.commonTableExpressions(),this.state=6072,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6068,this.match(t.COMMA),this.state=6069,this.commonTableExpressions(),this.state=6074,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableStatement(){let e,s=new hx(this.context,this.state);this.enterRule(s,544,t.RULE_tableStatement);try{this.enterOuterAlt(s,1),this.state=6075,this.match(t.TABLE),this.state=6076,this.tableName(),this.state=6078,this.errorHandler.sync(this),e=this.tokenStream.LA(1),124===e&&(this.state=6077,this.orderByClause()),this.state=6081,this.errorHandler.sync(this),e=this.tokenStream.LA(1),99===e&&(this.state=6080,this.limitClause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}diagnosticsStatement(){let e,s=new Ex(this.context,this.state);this.enterRule(s,546,t.RULE_diagnosticsStatement);try{switch(this.enterOuterAlt(s,1),this.state=6083,this.match(t.GET),this.state=6085,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(35===e||168===e)&&(this.state=6084,e=this.tokenStream.LA(1),35===e||168===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=6087,this.match(t.DIAGNOSTICS),this.state=6119,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,877,this.context)){case 1:for(this.state=6088,this.variableClause(),this.state=6089,this.match(t.EQUAL_SYMBOL),this.state=6090,e=this.tokenStream.LA(1),117===e||996===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=6098,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6091,this.match(t.COMMA),this.state=6092,this.variableClause(),this.state=6093,this.match(t.EQUAL_SYMBOL),this.state=6094,e=this.tokenStream.LA(1),117===e||996===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=6100,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case 2:switch(this.state=6101,this.match(t.CONDITION),this.state=6104,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ZERO_DECIMAL:case t.ONE_DECIMAL:case t.TWO_DECIMAL:case t.DECIMAL_LITERAL:case t.REAL_LITERAL:this.state=6102,this.decimalLiteral();break;case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.AT_SIGN:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:case t.LOCAL_ID:case t.GLOBAL_ID:this.state=6103,this.variableClause();break;default:throw new Ei(this)}for(this.state=6106,this.variableClause(),this.state=6107,this.match(t.EQUAL_SYMBOL),this.state=6108,this.diagnosticsConditionInformationName(),this.state=6116,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6109,this.match(t.COMMA),this.state=6110,this.variableClause(),this.state=6111,this.match(t.EQUAL_SYMBOL),this.state=6112,this.diagnosticsConditionInformationName(),this.state=6118,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}diagnosticsConditionInformationName(){let e,s=new Tx(this.context,this.state);this.enterRule(s,548,t.RULE_diagnosticsConditionInformationName);try{this.enterOuterAlt(s,1),this.state=6121,e=this.tokenStream.LA(1),!(e-359&-32)&&1<<e-359&272105729||507===e||515===e||592===e||639===e||646===e||836===e||1005===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}describeObjectClause(){let e=new ox(this.context,this.state);this.enterRule(e,550,t.RULE_describeObjectClause);try{switch(this.state=6133,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DELETE:case t.INSERT:case t.REPLACE:case t.SELECT:case t.UPDATE:case t.LR_BRACKET:switch(e=new Rx(e),this.enterOuterAlt(e,1),this.state=6128,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SELECT:case t.LR_BRACKET:this.state=6123,this.selectStatement();break;case t.DELETE:this.state=6124,this.deleteStatement();break;case t.INSERT:this.state=6125,this.insertStatement();break;case t.REPLACE:this.state=6126,this.replaceStatement();break;case t.UPDATE:this.state=6127,this.updateStatement();break;default:throw new Ei(this)}break;case t.FOR:e=new Ax(e),this.enterOuterAlt(e,2),this.state=6130,this.match(t.FOR),this.state=6131,this.match(t.CONNECTION),this.state=6132,this.uid();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}fullId(){let e=new Sx(this.context,this.state);this.enterRule(e,552,t.RULE_fullId);try{switch(this.enterOuterAlt(e,1),this.state=6135,this.uid(),this.state=6139,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,880,this.context)){case 1:this.state=6136,this.match(t.DOT_ID);break;case 2:this.state=6137,this.match(t.DOT),this.state=6138,this.uid()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableName(){let e=new lx(this.context,this.state);this.enterRule(e,554,t.RULE_tableName);try{this.enterOuterAlt(e,1),this.state=6141,this.fullId()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableNames(){let e,s=new Ox(this.context,this.state);this.enterRule(s,556,t.RULE_tableNames);try{for(this.enterOuterAlt(s,1),this.state=6143,this.tableName(),this.state=6148,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6144,this.match(t.COMMA),this.state=6145,this.tableName(),this.state=6150,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}userOrRoleName(){let e=new Ix(this.context,this.state);this.enterRule(e,558,t.RULE_userOrRoleName);try{switch(this.state=6153,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,882,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6151,this.userName();break;case 2:this.enterOuterAlt(e,2),this.state=6152,this.roleName()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}userOrRoleNameList(){let e,s=new ux(this.context,this.state);this.enterRule(s,560,t.RULE_userOrRoleNameList);try{for(this.enterOuterAlt(s,1),this.state=6155,this.userOrRoleName(),this.state=6160,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6156,this.match(t.COMMA),this.state=6157,this.userOrRoleName(),this.state=6162,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}newRoleNameList(){let e,s=new Nx(this.context,this.state);this.enterRule(s,562,t.RULE_newRoleNameList);try{for(this.enterOuterAlt(s,1),this.state=6163,this.newRoleName(),this.state=6168,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6164,this.match(t.COMMA),this.state=6165,this.newRoleName(),this.state=6170,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}newRoleName(){let e=new Lx(this.context,this.state);this.enterRule(e,564,t.RULE_newRoleName);try{this.enterOuterAlt(e,1),this.state=6171,this.uid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}roleNameList(){let e,s=new Cx(this.context,this.state);this.enterRule(s,566,t.RULE_roleNameList);try{for(this.enterOuterAlt(s,1),this.state=6173,this.roleName(),this.state=6178,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6174,this.match(t.COMMA),this.state=6175,this.roleName(),this.state=6180,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}roleName(){let e=new _x(this.context,this.state);this.enterRule(e,568,t.RULE_roleName);try{this.enterOuterAlt(e,1),this.state=6181,this.newRoleName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}fullColumnName(){let e=new Px(this.context,this.state);this.enterRule(e,570,t.RULE_fullColumnName);try{switch(this.state=6197,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,890,this.context)){case 1:if(1===(this.enterOuterAlt(e,1),this.state=6183,this.uid(),this.state=6188,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,887,this.context)))if(1===(this.state=6184,this.dottedId(),this.state=6186,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,886,this.context)))this.state=6185,this.dottedId();break;case 2:if(this.enterOuterAlt(e,2),1===(this.state=6191,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,888,this.context)))this.state=6190,this.matchWildcard();if(1===(this.state=6193,this.dottedId(),this.state=6195,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,889,this.context)))this.state=6194,this.dottedId()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}databaseName(){let e=new Mx(this.context,this.state);this.enterRule(e,572,t.RULE_databaseName);try{this.enterOuterAlt(e,1),this.state=6199,this.uid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}indexName(){let e=new dx(this.context,this.state);this.enterRule(e,574,t.RULE_indexName);try{this.enterOuterAlt(e,1),this.state=6201,this.uid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}constraintName(){let e=new Ux(this.context,this.state);this.enterRule(e,576,t.RULE_constraintName);try{this.enterOuterAlt(e,1),this.state=6203,this.uid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}triggerName(){let e=new mx(this.context,this.state);this.enterRule(e,578,t.RULE_triggerName);try{this.enterOuterAlt(e,1),this.state=6205,this.fullId()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}indexNameList(){let e,s=new Dx(this.context,this.state);this.enterRule(s,580,t.RULE_indexNameList);try{for(this.enterOuterAlt(s,1),this.state=6207,this.indexName(),this.state=6212,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6208,this.match(t.COMMA),this.state=6209,this.indexName(),this.state=6214,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}indexColumnName(){let e,s=new px(this.context,this.state);this.enterRule(s,582,t.RULE_indexColumnName);try{switch(this.enterOuterAlt(s,1),this.state=6226,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,894,this.context)){case 1:switch(this.state=6217,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,892,this.context)){case 1:this.state=6215,this.uid();break;case 2:this.state=6216,this.match(t.STRING_LITERAL)}this.state=6223,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e&&(this.state=6219,this.match(t.LR_BRACKET),this.state=6220,this.decimalLiteral(),this.state=6221,this.match(t.RR_BRACKET));break;case 2:this.state=6225,this.expression(0)}this.state=6229,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(13===e||45===e)&&(this.state=6228,s._sortType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),13===e||45===e?(this.errorHandler.reportMatch(this),this.consume()):s._sortType=this.errorHandler.recoverInline(this))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}simpleUserName(){let e=new gx(this.context,this.state);this.enterRule(e,584,t.RULE_simpleUserName);try{switch(this.state=6235,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,896,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6231,this.match(t.STRING_LITERAL);break;case 2:this.enterOuterAlt(e,2),this.state=6232,this.match(t.ID);break;case 3:this.enterOuterAlt(e,3),this.state=6233,this.match(t.ADMIN);break;case 4:this.enterOuterAlt(e,4),this.state=6234,this.keywordsCanBeId()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}hostName(){let e,s=new xx(this.context,this.state);this.enterRule(s,586,t.RULE_hostName);try{this.enterOuterAlt(s,1),this.state=6237,e=this.tokenStream.LA(1),!(e-1137&-32)&&1<<e-1137&6291457?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}userNameList(){let e,s=new kx(this.context,this.state);this.enterRule(s,588,t.RULE_userNameList);try{for(this.enterOuterAlt(s,1),this.state=6239,this.userName(),this.state=6244,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6240,this.match(t.COMMA),this.state=6241,this.userName(),this.state=6246,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}newUserName(){let e=new Hx(this.context,this.state);this.enterRule(e,590,t.RULE_newUserName);try{switch(this.state=6252,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,898,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6247,this.simpleUserName();break;case 2:this.enterOuterAlt(e,2),this.state=6248,this.simpleUserName(),this.state=6249,this.hostName();break;case 3:this.enterOuterAlt(e,3),this.state=6251,this.currentUserExpression()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}userName(){let e=new Gx(this.context,this.state);this.enterRule(e,592,t.RULE_userName);try{this.enterOuterAlt(e,1),this.state=6254,this.newUserName()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}mysqlVariable(){let e,s=new Fx(this.context,this.state);this.enterRule(s,594,t.RULE_mysqlVariable);try{this.enterOuterAlt(s,1),this.state=6256,e=this.tokenStream.LA(1),1159===e||1160===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}charsetName(){let e=new vx(this.context,this.state);this.enterRule(e,596,t.RULE_charsetName);try{switch(this.state=6262,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,899,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6258,this.match(t.BINARY);break;case 2:this.enterOuterAlt(e,2),this.state=6259,this.charsetNameBase();break;case 3:this.enterOuterAlt(e,3),this.state=6260,this.match(t.STRING_LITERAL);break;case 4:this.enterOuterAlt(e,4),this.state=6261,this.match(t.CHARSET_REVERSE_QOUTE_STRING)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}collationName(){let e=new Bx(this.context,this.state);this.enterRule(e,598,t.RULE_collationName);try{switch(this.state=6266,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,900,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6264,this.uid();break;case 2:this.enterOuterAlt(e,2),this.state=6265,this.match(t.STRING_LITERAL)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}engineName(){let e=new yx(this.context,this.state);this.enterRule(e,600,t.RULE_engineName);try{switch(this.state=6271,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CONNECT:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:this.enterOuterAlt(e,1),this.state=6268,this.engineNameBase();break;case t.ID:this.enterOuterAlt(e,2),this.state=6269,this.match(t.ID);break;case t.STRING_LITERAL:this.enterOuterAlt(e,3),this.state=6270,this.match(t.STRING_LITERAL);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}engineNameBase(){let e,s=new fx(this.context,this.state);this.enterRule(s,602,t.RULE_engineNameBase);try{this.enterOuterAlt(s,1),this.state=6273,e=this.tokenStream.LA(1),375===e||!(e-787&-32)&&1<<e-787&4095?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}uuidSet(){let e,s=new Yx(this.context,this.state);this.enterRule(s,604,t.RULE_uuidSet);try{this.enterOuterAlt(s,1),this.state=6275,this.decimalLiteral(),this.state=6276,this.match(t.MINUS),this.state=6277,this.decimalLiteral(),this.state=6278,this.match(t.MINUS),this.state=6279,this.decimalLiteral(),this.state=6280,this.match(t.MINUS),this.state=6281,this.decimalLiteral(),this.state=6282,this.match(t.MINUS),this.state=6283,this.decimalLiteral(),this.state=6289,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=6284,this.match(t.COLON_SYMB),this.state=6285,this.decimalLiteral(),this.state=6286,this.match(t.MINUS),this.state=6287,this.decimalLiteral(),this.state=6291,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(1144===e)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}xid(){let e,s=new wx(this.context,this.state);this.enterRule(s,606,t.RULE_xid);try{this.enterOuterAlt(s,1),this.state=6293,s._globalTableUid=this.xuidStringId(),this.state=6300,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1135===e&&(this.state=6294,this.match(t.COMMA),this.state=6295,s._qualifier=this.xuidStringId(),this.state=6298,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1135===e&&(this.state=6296,this.match(t.COMMA),this.state=6297,s._idFormat=this.decimalLiteral()))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}xuidStringId(){let e,s=new bx(this.context,this.state);this.enterRule(s,608,t.RULE_xuidStringId);try{switch(this.state=6309,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.STRING_LITERAL:this.enterOuterAlt(s,1),this.state=6302,this.match(t.STRING_LITERAL);break;case t.BIT_STRING:this.enterOuterAlt(s,2),this.state=6303,this.match(t.BIT_STRING);break;case t.HEXADECIMAL_LITERAL:this.enterOuterAlt(s,3),this.state=6305,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=6304,this.match(t.HEXADECIMAL_LITERAL),this.state=6307,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(1150===e);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}authPlugin(){let e=new Wx(this.context,this.state);this.enterRule(e,610,t.RULE_authPlugin);try{switch(this.state=6313,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,907,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6311,this.uid();break;case 2:this.enterOuterAlt(e,2),this.state=6312,this.match(t.STRING_LITERAL)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}uid(){let e=new Vx(this.context,this.state);this.enterRule(e,612,t.RULE_uid);try{switch(this.state=6318,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.ID:this.enterOuterAlt(e,1),this.state=6315,this.simpleId();break;case t.CHARSET_REVERSE_QOUTE_STRING:this.enterOuterAlt(e,2),this.state=6316,this.match(t.CHARSET_REVERSE_QOUTE_STRING);break;case t.STRING_LITERAL:this.enterOuterAlt(e,3),this.state=6317,this.match(t.STRING_LITERAL);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}simpleId(){let e=new Xx(this.context,this.state);this.enterRule(e,614,t.RULE_simpleId);try{switch(this.state=6329,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,909,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6320,this.match(t.ID);break;case 2:this.enterOuterAlt(e,2),this.state=6321,this.charsetNameBase();break;case 3:this.enterOuterAlt(e,3),this.state=6322,this.transactionLevelBase();break;case 4:this.enterOuterAlt(e,4),this.state=6323,this.engineNameBase();break;case 5:this.enterOuterAlt(e,5),this.state=6324,this.privilegesBase();break;case 6:this.enterOuterAlt(e,6),this.state=6325,this.intervalTypeBase();break;case 7:this.enterOuterAlt(e,7),this.state=6326,this.dataTypeBase();break;case 8:this.enterOuterAlt(e,8),this.state=6327,this.keywordsCanBeId();break;case 9:this.enterOuterAlt(e,9),this.state=6328,this.scalarFunctionName()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dottedId(){let e=new Kx(this.context,this.state);this.enterRule(e,616,t.RULE_dottedId);try{switch(this.state=6334,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DOT_ID:this.enterOuterAlt(e,1),this.state=6331,this.match(t.DOT_ID);break;case t.DOT:this.enterOuterAlt(e,2),this.state=6332,this.match(t.DOT),this.state=6333,this.uid();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}decimalLiteral(){let e,s=new Qx(this.context,this.state);this.enterRule(s,618,t.RULE_decimalLiteral);try{this.enterOuterAlt(s,1),this.state=6336,e=this.tokenStream.LA(1),!(e-1138&-32)&&1<<e-1138&10247?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}fileSizeLiteral(){let e=new Jx(this.context,this.state);this.enterRule(e,620,t.RULE_fileSizeLiteral);try{switch(this.state=6340,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FILESIZE_LITERAL:this.enterOuterAlt(e,1),this.state=6338,this.match(t.FILESIZE_LITERAL);break;case t.ZERO_DECIMAL:case t.ONE_DECIMAL:case t.TWO_DECIMAL:case t.DECIMAL_LITERAL:case t.REAL_LITERAL:this.enterOuterAlt(e,2),this.state=6339,this.decimalLiteral();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}stringLiteral(){let e,s=new Zx(this.context,this.state);this.enterRule(s,622,t.RULE_stringLiteral);try{let a;switch(this.state=6365,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,918,this.context)){case 1:switch(this.enterOuterAlt(s,1),this.state=6347,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.STRING_LITERAL:case t.STRING_CHARSET_NAME:this.state=6343,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1154===e&&(this.state=6342,this.match(t.STRING_CHARSET_NAME)),this.state=6345,this.match(t.STRING_LITERAL);break;case t.START_NATIONAL_STRING_LITERAL:this.state=6346,this.match(t.START_NATIONAL_STRING_LITERAL);break;default:throw new Ei(this)}this.state=6350,this.errorHandler.sync(this),a=1;do{if(1!==a)throw new Ei(this);this.state=6349,this.match(t.STRING_LITERAL),this.state=6352,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,914,this.context)}while(2!==a&&a!==ja.INVALID_ALT_NUMBER);break;case 2:switch(this.enterOuterAlt(s,2),this.state=6359,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.STRING_LITERAL:case t.STRING_CHARSET_NAME:this.state=6355,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1154===e&&(this.state=6354,this.match(t.STRING_CHARSET_NAME)),this.state=6357,this.match(t.STRING_LITERAL);break;case t.START_NATIONAL_STRING_LITERAL:this.state=6358,this.match(t.START_NATIONAL_STRING_LITERAL);break;default:throw new Ei(this)}if(1===(this.state=6363,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,917,this.context)))this.state=6361,this.match(t.COLLATE),this.state=6362,this.collationName()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}booleanLiteral(){let e,s=new qx(this.context,this.state);this.enterRule(s,624,t.RULE_booleanLiteral);try{this.enterOuterAlt(s,1),this.state=6367,e=this.tokenStream.LA(1),63===e||178===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}hexadecimalLiteral(){let e,s=new jx(this.context,this.state);this.enterRule(s,626,t.RULE_hexadecimalLiteral);try{this.enterOuterAlt(s,1),this.state=6370,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1154===e&&(this.state=6369,this.match(t.STRING_CHARSET_NAME)),this.state=6372,this.match(t.HEXADECIMAL_LITERAL)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}nullNotnull(){let e,s=new zx(this.context,this.state);this.enterRule(s,628,t.RULE_nullNotnull);try{this.enterOuterAlt(s,1),this.state=6375,this.errorHandler.sync(this),e=this.tokenStream.LA(1),114===e&&(this.state=6374,this.match(t.NOT)),this.state=6377,e=this.tokenStream.LA(1),116===e||1152===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}constant(){let e,s=new $x(this.context,this.state);this.enterRule(s,630,t.RULE_constant);try{switch(this.state=6391,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,922,this.context)){case 1:this.enterOuterAlt(s,1),this.state=6379,this.stringLiteral();break;case 2:this.enterOuterAlt(s,2),this.state=6380,this.decimalLiteral();break;case 3:this.enterOuterAlt(s,3),this.state=6381,this.match(t.MINUS),this.state=6382,this.decimalLiteral();break;case 4:this.enterOuterAlt(s,4),this.state=6383,this.hexadecimalLiteral();break;case 5:this.enterOuterAlt(s,5),this.state=6384,this.booleanLiteral();break;case 6:this.enterOuterAlt(s,6),this.state=6385,this.match(t.REAL_LITERAL);break;case 7:this.enterOuterAlt(s,7),this.state=6386,this.match(t.BIT_STRING);break;case 8:this.enterOuterAlt(s,8),this.state=6388,this.errorHandler.sync(this),e=this.tokenStream.LA(1),114===e&&(this.state=6387,this.match(t.NOT)),this.state=6390,s._nullLiteral=this.tokenStream.LT(1),e=this.tokenStream.LA(1),116===e||1152===e?(this.errorHandler.reportMatch(this),this.consume()):s._nullLiteral=this.errorHandler.recoverInline(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}dataType(){let e,s=new tk(this.context,this.state);this.enterRule(s,632,t.RULE_dataType);try{let a;switch(this.state=6519,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,951,this.context)){case 1:if(s=new ck(s),this.enterOuterAlt(s,1),1===(this.state=6393,s._typeName=this.tokenStream.LT(1),e=this.tokenStream.LA(1),25===e||!(e-222&-32)&&1<<e-222&31239||518===e?(this.errorHandler.reportMatch(this),this.consume()):s._typeName=this.errorHandler.recoverInline(this),this.state=6395,this.errorHandler.sync(this),e=this.tokenStream.LA(1),238===e&&(this.state=6394,this.match(t.VARYING)),this.state=6398,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,924,this.context)))this.state=6397,this.lengthOneDimension();if(1===(this.state=6401,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,925,this.context)))this.state=6400,this.match(t.BINARY);if(1===(this.state=6406,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,926,this.context)))this.state=6403,this.charSet(),this.state=6404,this.charsetName();switch(this.state=6411,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,927,this.context)){case 1:this.state=6408,this.match(t.COLLATE),this.state=6409,this.collationName();break;case 2:this.state=6410,this.match(t.BINARY)}break;case 2:if(s=new rk(s),this.enterOuterAlt(s,2),1===(this.state=6413,this.match(t.NATIONAL),this.state=6414,s._typeName=this.tokenStream.LT(1),e=this.tokenStream.LA(1),25===e||222===e?(this.errorHandler.reportMatch(this),this.consume()):s._typeName=this.errorHandler.recoverInline(this),this.state=6415,this.match(t.VARYING),this.state=6417,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,928,this.context)))this.state=6416,this.lengthOneDimension();if(1===(this.state=6420,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,929,this.context)))this.state=6419,this.match(t.BINARY);break;case 3:if(s=new hk(s),this.enterOuterAlt(s,3),1===(this.state=6422,this.match(t.NATIONAL),this.state=6423,s._typeName=this.tokenStream.LT(1),e=this.tokenStream.LA(1),25===e||222===e||223===e?(this.errorHandler.reportMatch(this),this.consume()):s._typeName=this.errorHandler.recoverInline(this),this.state=6425,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,930,this.context)))this.state=6424,this.lengthOneDimension();if(1===(this.state=6428,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,931,this.context)))this.state=6427,this.match(t.BINARY);break;case 4:if(s=new hk(s),this.enterOuterAlt(s,4),1===(this.state=6430,this.match(t.NCHAR),this.state=6431,s._typeName=this.match(t.VARCHAR),this.state=6433,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,932,this.context)))this.state=6432,this.lengthOneDimension();if(1===(this.state=6436,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,933,this.context)))this.state=6435,this.match(t.BINARY);break;case 5:if(s=new ik(s),this.enterOuterAlt(s,5),1===(this.state=6438,s._typeName=this.tokenStream.LT(1),e=this.tokenStream.LA(1),!(e-196&-32)&&1<<e-196&4095?(this.errorHandler.reportMatch(this),this.consume()):s._typeName=this.errorHandler.recoverInline(this),this.state=6440,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,934,this.context)))this.state=6439,this.lengthOneDimension();for(this.state=6445,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,935,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=6442,e=this.tokenStream.LA(1),183===e||195===e||612===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=6447,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,935,this.context);break;case 6:if(s=new ik(s),this.enterOuterAlt(s,6),1===(this.state=6448,s._typeName=this.match(t.REAL),this.state=6450,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,936,this.context)))this.state=6449,this.lengthTwoDimension();for(this.state=6455,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,937,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=6452,e=this.tokenStream.LA(1),183===e||195===e||612===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=6457,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,937,this.context);break;case 7:if(s=new ik(s),this.enterOuterAlt(s,7),1===(this.state=6458,s._typeName=this.match(t.DOUBLE),this.state=6460,this.errorHandler.sync(this),e=this.tokenStream.LA(1),210===e&&(this.state=6459,this.match(t.PRECISION)),this.state=6463,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,939,this.context)))this.state=6462,this.lengthTwoDimension();for(this.state=6468,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,940,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=6465,e=this.tokenStream.LA(1),183===e||195===e||612===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=6470,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,940,this.context);break;case 8:if(s=new ik(s),this.enterOuterAlt(s,8),1===(this.state=6471,s._typeName=this.tokenStream.LT(1),e=this.tokenStream.LA(1),!(e-211&-32)&&1<<e-211&63||431===e?(this.errorHandler.reportMatch(this),this.consume()):s._typeName=this.errorHandler.recoverInline(this),this.state=6473,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,941,this.context)))this.state=6472,this.lengthTwoOptionalDimension();for(this.state=6478,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,942,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=6475,e=this.tokenStream.LA(1),183===e||195===e||612===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=6480,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,942,this.context);break;case 9:s=new Ek(s),this.enterOuterAlt(s,9),this.state=6481,s._typeName=this.tokenStream.LT(1),e=this.tokenStream.LA(1),!(e-217&-32)&&1<<e-217&4237313||348===e||349===e?(this.errorHandler.reportMatch(this),this.consume()):s._typeName=this.errorHandler.recoverInline(this);break;case 10:if(1===(s=new ik(s),this.enterOuterAlt(s,10),this.state=6482,s._typeName=this.tokenStream.LT(1),e=this.tokenStream.LA(1),!(e-218&-32)&&1<<e-218&2831||346===e?(this.errorHandler.reportMatch(this),this.consume()):s._typeName=this.errorHandler.recoverInline(this),this.state=6484,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,943,this.context)))this.state=6483,this.lengthOneDimension();break;case 11:if(s=new ak(s),this.enterOuterAlt(s,11),1===(this.state=6486,s._typeName=this.tokenStream.LT(1),e=this.tokenStream.LA(1),153===e||237===e?(this.errorHandler.reportMatch(this),this.consume()):s._typeName=this.errorHandler.recoverInline(this),this.state=6487,this.collectionOptions(),this.state=6489,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,944,this.context)))this.state=6488,this.match(t.BINARY);if(1===(this.state=6494,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,945,this.context)))this.state=6491,this.charSet(),this.state=6492,this.charsetName();break;case 12:if(1===(s=new ek(s),this.enterOuterAlt(s,12),this.state=6496,s._typeName=this.tokenStream.LT(1),e=this.tokenStream.LA(1),466===e||!(e-803&-32)&&1<<e-803&511?(this.errorHandler.reportMatch(this),this.consume()):s._typeName=this.errorHandler.recoverInline(this),this.state=6499,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,946,this.context)))this.state=6497,this.match(t.SRID),this.state=6498,this.decimalLiteral();break;case 13:if(s=new nk(s),this.enterOuterAlt(s,13),1===(this.state=6501,s._typeName=this.match(t.LONG),this.state=6503,this.errorHandler.sync(this),e=this.tokenStream.LA(1),223===e&&(this.state=6502,this.match(t.VARCHAR)),this.state=6506,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,948,this.context)))this.state=6505,this.match(t.BINARY);if(1===(this.state=6511,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,949,this.context)))this.state=6508,this.charSet(),this.state=6509,this.charsetName();if(1===(this.state=6515,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,950,this.context)))this.state=6513,this.match(t.COLLATE),this.state=6514,this.collationName();break;case 14:s=new sk(s),this.enterOuterAlt(s,14),this.state=6517,this.match(t.LONG),this.state=6518,this.match(t.VARBINARY)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}collectionOptions(){let e,s=new Tk(this.context,this.state);this.enterRule(s,634,t.RULE_collectionOptions);try{for(this.enterOuterAlt(s,1),this.state=6521,this.match(t.LR_BRACKET),this.state=6522,this.match(t.STRING_LITERAL),this.state=6527,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6523,this.match(t.COMMA),this.state=6524,this.match(t.STRING_LITERAL),this.state=6529,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=6530,this.match(t.RR_BRACKET)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}convertedDataType(){let e,s=new ok(this.context,this.state);this.enterRule(s,636,t.RULE_convertedDataType);try{switch(this.enterOuterAlt(s,1),this.state=6554,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FLOAT:case t.BINARY:case t.NCHAR:this.state=6532,s._typeName=this.tokenStream.LT(1),e=this.tokenStream.LA(1),211===e||226===e||518===e?(this.errorHandler.reportMatch(this),this.consume()):s._typeName=this.errorHandler.recoverInline(this),this.state=6534,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e&&(this.state=6533,this.lengthOneDimension());break;case t.CHAR:this.state=6536,s._typeName=this.match(t.CHAR),this.state=6538,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e&&(this.state=6537,this.lengthOneDimension()),this.state=6543,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(25===e||222===e||841===e)&&(this.state=6540,this.charSet(),this.state=6541,this.charsetName());break;case t.INT:case t.INTEGER:case t.DOUBLE:case t.DATE:case t.TIME:case t.DATETIME:case t.YEAR:case t.JSON:this.state=6545,s._typeName=this.tokenStream.LT(1),e=this.tokenStream.LA(1),!(e-200&-32)&&1<<e-200&3539521||466===e?(this.errorHandler.reportMatch(this),this.consume()):s._typeName=this.errorHandler.recoverInline(this);break;case t.DECIMAL:case t.DEC:this.state=6546,s._typeName=this.tokenStream.LT(1),e=this.tokenStream.LA(1),214===e||215===e?(this.errorHandler.reportMatch(this),this.consume()):s._typeName=this.errorHandler.recoverInline(this),this.state=6548,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e&&(this.state=6547,this.lengthTwoOptionalDimension());break;case t.UNSIGNED:case t.SIGNED:this.state=6550,e=this.tokenStream.LA(1),183===e||612===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=6552,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(200===e||206===e)&&(this.state=6551,e=this.tokenStream.LA(1),200===e||206===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this));break;default:throw new Ei(this)}this.state=6557,this.errorHandler.sync(this),e=this.tokenStream.LA(1),11===e&&(this.state=6556,this.match(t.ARRAY))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}lengthOneDimension(){let e=new Rk(this.context,this.state);this.enterRule(e,638,t.RULE_lengthOneDimension);try{this.enterOuterAlt(e,1),this.state=6559,this.match(t.LR_BRACKET),this.state=6560,this.decimalLiteral(),this.state=6561,this.match(t.RR_BRACKET)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}lengthTwoDimension(){let e=new Ak(this.context,this.state);this.enterRule(e,640,t.RULE_lengthTwoDimension);try{this.enterOuterAlt(e,1),this.state=6563,this.match(t.LR_BRACKET),this.state=6564,this.decimalLiteral(),this.state=6565,this.match(t.COMMA),this.state=6566,this.decimalLiteral(),this.state=6567,this.match(t.RR_BRACKET)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}lengthTwoOptionalDimension(){let e,s=new Sk(this.context,this.state);this.enterRule(s,642,t.RULE_lengthTwoOptionalDimension);try{this.enterOuterAlt(s,1),this.state=6569,this.match(t.LR_BRACKET),this.state=6570,this.decimalLiteral(),this.state=6573,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1135===e&&(this.state=6571,this.match(t.COMMA),this.state=6572,this.decimalLiteral()),this.state=6575,this.match(t.RR_BRACKET)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}uidList(){let e=new lk(this.context,this.state);this.enterRule(e,644,t.RULE_uidList);try{let s;for(this.enterOuterAlt(e,1),this.state=6577,this.uid(),this.state=6582,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,961,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=6578,this.match(t.COMMA),this.state=6579,this.uid()),this.state=6584,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,961,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}fullColumnNameList(){let e,s=new Ok(this.context,this.state);this.enterRule(s,646,t.RULE_fullColumnNameList);try{for(this.enterOuterAlt(s,1),this.state=6585,this.fullColumnName(),this.state=6590,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6586,this.match(t.COMMA),this.state=6587,this.fullColumnName(),this.state=6592,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tables(){let e=new Ik(this.context,this.state);this.enterRule(e,648,t.RULE_tables);try{let s;for(this.enterOuterAlt(e,1),this.state=6593,this.tableName(),this.state=6598,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,963,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=6594,this.match(t.COMMA),this.state=6595,this.tableName()),this.state=6600,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,963,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}indexColumnNames(){let e,s=new uk(this.context,this.state);this.enterRule(s,650,t.RULE_indexColumnNames);try{for(this.enterOuterAlt(s,1),this.state=6601,this.match(t.LR_BRACKET),this.state=6602,this.indexColumnName(),this.state=6607,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6603,this.match(t.COMMA),this.state=6604,this.indexColumnName(),this.state=6609,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=6610,this.match(t.RR_BRACKET)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expressions(){let e,s=new Nk(this.context,this.state);this.enterRule(s,652,t.RULE_expressions);try{for(this.enterOuterAlt(s,1),this.state=6612,this.expression(0),this.state=6617,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6613,this.match(t.COMMA),this.state=6614,this.expression(0),this.state=6619,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expressionsWithDefaults(){let e,s=new Lk(this.context,this.state);this.enterRule(s,654,t.RULE_expressionsWithDefaults);try{for(this.enterOuterAlt(s,1),this.state=6620,this.expressionOrDefault(),this.state=6625,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6621,this.match(t.COMMA),this.state=6622,this.expressionOrDefault(),this.state=6627,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}constants(){let e,s=new Ck(this.context,this.state);this.enterRule(s,656,t.RULE_constants);try{for(this.enterOuterAlt(s,1),this.state=6628,this.constant(),this.state=6633,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6629,this.match(t.COMMA),this.state=6630,this.constant(),this.state=6635,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}simpleStrings(){let e,s=new _k(this.context,this.state);this.enterRule(s,658,t.RULE_simpleStrings);try{for(this.enterOuterAlt(s,1),this.state=6636,this.match(t.STRING_LITERAL),this.state=6641,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6637,this.match(t.COMMA),this.state=6638,this.match(t.STRING_LITERAL),this.state=6643,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}userVariables(){let e,s=new Pk(this.context,this.state);this.enterRule(s,660,t.RULE_userVariables);try{for(this.enterOuterAlt(s,1),this.state=6644,this.match(t.LOCAL_ID),this.state=6649,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6645,this.match(t.COMMA),this.state=6646,this.match(t.LOCAL_ID),this.state=6651,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}defaultValue(){let e=new Mk(this.context,this.state);this.enterRule(e,662,t.RULE_defaultValue);try{switch(this.state=6678,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,972,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6652,this.match(t.NULL_LITERAL);break;case 2:this.enterOuterAlt(e,2),this.state=6653,this.match(t.CAST),this.state=6654,this.match(t.LR_BRACKET),this.state=6655,this.expression(0),this.state=6656,this.match(t.AS),this.state=6657,this.convertedDataType(),this.state=6658,this.match(t.RR_BRACKET);break;case 3:if(this.enterOuterAlt(e,3),1===(this.state=6661,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,970,this.context)))this.state=6660,this.unaryOperator();this.state=6663,this.constant();break;case 4:if(1===(this.enterOuterAlt(e,4),this.state=6664,this.currentTimestamp(),this.state=6668,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,971,this.context)))this.state=6665,this.match(t.ON),this.state=6666,this.match(t.UPDATE),this.state=6667,this.currentTimestamp();break;case 5:this.enterOuterAlt(e,5),this.state=6670,this.match(t.LR_BRACKET),this.state=6671,this.expression(0),this.state=6672,this.match(t.RR_BRACKET);break;case 6:this.enterOuterAlt(e,6),this.state=6674,this.match(t.LR_BRACKET),this.state=6675,this.fullId(),this.state=6676,this.match(t.RR_BRACKET)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}currentTimestamp(){let e,s=new dk(this.context,this.state);this.enterRule(s,664,t.RULE_currentTimestamp);try{switch(this.enterOuterAlt(s,1),this.state=6694,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.LOCALTIMESTAMP:this.state=6680,e=this.tokenStream.LA(1),!(e-315&-32)&&1<<e-315&131?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=6686,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1133===e&&(this.state=6681,this.match(t.LR_BRACKET),this.state=6683,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-1138&-32)&&1<<e-1138&10247&&(this.state=6682,this.decimalLiteral()),this.state=6685,this.match(t.RR_BRACKET));break;case t.NOW:this.state=6688,this.match(t.NOW),this.state=6689,this.match(t.LR_BRACKET),this.state=6691,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-1138&-32)&&1<<e-1138&10247&&(this.state=6690,this.decimalLiteral()),this.state=6693,this.match(t.RR_BRACKET);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expressionOrDefault(){let e=new Uk(this.context,this.state);this.enterRule(e,666,t.RULE_expressionOrDefault);try{switch(this.state=6698,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,977,this.context)){case 1:this.enterOuterAlt(e,1),this.state=6696,this.expression(0);break;case 2:this.enterOuterAlt(e,2),this.state=6697,this.match(t.DEFAULT)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}ifExists(){let e=new mk(this.context,this.state);this.enterRule(e,668,t.RULE_ifExists);try{this.enterOuterAlt(e,1),this.state=6700,this.match(t.IF),this.state=6701,this.match(t.EXISTS)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}ifNotExists(){let e=new Dk(this.context,this.state);this.enterRule(e,670,t.RULE_ifNotExists);try{this.enterOuterAlt(e,1),this.state=6703,this.match(t.IF),this.state=6704,this.match(t.NOT),this.state=6705,this.match(t.EXISTS)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}orReplace(){let e=new pk(this.context,this.state);this.enterRule(e,672,t.RULE_orReplace);try{this.enterOuterAlt(e,1),this.state=6707,this.match(t.OR),this.state=6708,this.match(t.REPLACE)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}waitNowaitClause(){let e=new gk(this.context,this.state);this.enterRule(e,674,t.RULE_waitNowaitClause);try{switch(this.state=6713,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WAIT:this.enterOuterAlt(e,1),this.state=6710,this.match(t.WAIT),this.state=6711,this.decimalLiteral();break;case t.NOWAIT:this.enterOuterAlt(e,2),this.state=6712,this.match(t.NOWAIT);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}functionCall(){let e=new xk(this.context,this.state);this.enterRule(e,676,t.RULE_functionCall);try{switch(this.state=6733,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,981,this.context)){case 1:e=new kk(e),this.enterOuterAlt(e,1),this.state=6715,this.specificFunction();break;case 2:e=new vk(e),this.enterOuterAlt(e,2),this.state=6716,this.aggregateWindowedFunction();break;case 3:e=new Fk(e),this.enterOuterAlt(e,3),this.state=6717,this.nonAggregateWindowedFunction();break;case 4:if(e=new Bk(e),this.enterOuterAlt(e,4),1===(this.state=6718,this.scalarFunctionName(),this.state=6719,this.match(t.LR_BRACKET),this.state=6721,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,979,this.context)))this.state=6720,this.functionArgs();this.state=6723,this.match(t.RR_BRACKET);break;case 5:if(e=new Gk(e),this.enterOuterAlt(e,5),1===(this.state=6725,this.fullId(),this.state=6726,this.match(t.LR_BRACKET),this.state=6728,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,980,this.context)))this.state=6727,this.functionArgs();this.state=6730,this.match(t.RR_BRACKET);break;case 6:e=new Hk(e),this.enterOuterAlt(e,6),this.state=6732,this.passwordFunctionClause()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}specificFunction(){let e,s=new yk(this.context,this.state);this.enterRule(s,678,t.RULE_specificFunction);try{switch(this.state=6914,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1005,this.context)){case 1:if(1===(s=new Jk(s),this.enterOuterAlt(s,1),this.state=6735,e=this.tokenStream.LA(1),150===e||!(e-313&-32)&&1<<e-313&262159?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=6738,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,982,this.context)))this.state=6736,this.match(t.LR_BRACKET),this.state=6737,this.match(t.RR_BRACKET);break;case 2:s=new Qk(s),this.enterOuterAlt(s,2),this.state=6740,this.currentUserExpression();break;case 3:s=new Vk(s),this.enterOuterAlt(s,3),this.state=6741,this.match(t.CONVERT),this.state=6742,this.match(t.LR_BRACKET),this.state=6743,this.expression(0),this.state=6744,s._separator=this.match(t.COMMA),this.state=6745,this.convertedDataType(),this.state=6746,this.match(t.RR_BRACKET);break;case 4:s=new Vk(s),this.enterOuterAlt(s,4),this.state=6748,this.match(t.CONVERT),this.state=6749,this.match(t.LR_BRACKET),this.state=6750,this.expression(0),this.state=6751,this.match(t.USING),this.state=6752,this.charsetName(),this.state=6753,this.match(t.RR_BRACKET);break;case 5:s=new Vk(s),this.enterOuterAlt(s,5),this.state=6755,this.match(t.CAST),this.state=6756,this.match(t.LR_BRACKET),this.state=6757,this.expression(0),this.state=6758,this.match(t.AS),this.state=6759,this.convertedDataType(),this.state=6760,this.match(t.RR_BRACKET);break;case 6:s=new Xk(s),this.enterOuterAlt(s,6),this.state=6762,this.match(t.VALUES),this.state=6763,this.match(t.LR_BRACKET),this.state=6764,this.fullColumnName(),this.state=6765,this.match(t.RR_BRACKET);break;case 7:s=new Kk(s),this.enterOuterAlt(s,7),this.state=6767,this.match(t.CASE),this.state=6768,this.expression(0),this.state=6770,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=6769,this.caseFuncAlternative(),this.state=6772,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(189===e);this.state=6776,this.errorHandler.sync(this),e=this.tokenStream.LA(1),53===e&&(this.state=6774,this.match(t.ELSE),this.state=6775,s._elseArg=this.functionArg()),this.state=6778,this.match(t.END);break;case 8:s=new bk(s),this.enterOuterAlt(s,8),this.state=6780,this.match(t.CASE),this.state=6782,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=6781,this.caseFuncAlternative(),this.state=6784,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(189===e);this.state=6788,this.errorHandler.sync(this),e=this.tokenStream.LA(1),53===e&&(this.state=6786,this.match(t.ELSE),this.state=6787,s._elseArg=this.functionArg()),this.state=6790,this.match(t.END);break;case 9:s=new Zk(s),this.enterOuterAlt(s,9),this.state=6792,this.match(t.CHAR),this.state=6793,this.match(t.LR_BRACKET),this.state=6794,this.functionArgs(),this.state=6797,this.errorHandler.sync(this),e=this.tokenStream.LA(1),187===e&&(this.state=6795,this.match(t.USING),this.state=6796,this.charsetName()),this.state=6799,this.match(t.RR_BRACKET);break;case 10:switch(s=new fk(s),this.enterOuterAlt(s,10),this.state=6801,this.match(t.POSITION),this.state=6802,this.match(t.LR_BRACKET),this.state=6805,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,988,this.context)){case 1:this.state=6803,s._positionString=this.stringLiteral();break;case 2:this.state=6804,s._positionExpression=this.expression(0)}switch(this.state=6807,this.match(t.IN),this.state=6810,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,989,this.context)){case 1:this.state=6808,s._inString=this.stringLiteral();break;case 2:this.state=6809,s._inExpression=this.expression(0)}this.state=6812,this.match(t.RR_BRACKET);break;case 11:switch(s=new zk(s),this.enterOuterAlt(s,11),this.state=6814,e=this.tokenStream.LA(1),325===e||326===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=6815,this.match(t.LR_BRACKET),this.state=6818,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,990,this.context)){case 1:this.state=6816,s._sourceString=this.stringLiteral();break;case 2:this.state=6817,s._sourceExpression=this.expression(0)}switch(this.state=6820,this.match(t.FROM),this.state=6823,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,991,this.context)){case 1:this.state=6821,s._fromDecimal=this.decimalLiteral();break;case 2:this.state=6822,s._fromExpression=this.expression(0)}if(this.state=6830,this.errorHandler.sync(this),e=this.tokenStream.LA(1),65===e)switch(this.state=6825,this.match(t.FOR),this.state=6828,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,992,this.context)){case 1:this.state=6826,s._forDecimal=this.decimalLiteral();break;case 2:this.state=6827,s._forExpression=this.expression(0)}this.state=6832,this.match(t.RR_BRACKET);break;case 12:switch(s=new Yk(s),this.enterOuterAlt(s,12),this.state=6834,this.match(t.TRIM),this.state=6835,this.match(t.LR_BRACKET),this.state=6836,s._positioinForm=this.tokenStream.LT(1),e=this.tokenStream.LA(1),17===e||95===e||176===e?(this.errorHandler.reportMatch(this),this.consume()):s._positioinForm=this.errorHandler.recoverInline(this),this.state=6839,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,994,this.context)){case 1:this.state=6837,s._sourceString=this.stringLiteral();break;case 2:this.state=6838,s._sourceExpression=this.expression(0)}switch(this.state=6841,this.match(t.FROM),this.state=6844,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,995,this.context)){case 1:this.state=6842,s._fromString=this.stringLiteral();break;case 2:this.state=6843,s._fromExpression=this.expression(0)}this.state=6846,this.match(t.RR_BRACKET);break;case 13:switch(s=new Yk(s),this.enterOuterAlt(s,13),this.state=6848,this.match(t.TRIM),this.state=6849,this.match(t.LR_BRACKET),this.state=6852,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,996,this.context)){case 1:this.state=6850,s._sourceString=this.stringLiteral();break;case 2:this.state=6851,s._sourceExpression=this.expression(0)}switch(this.state=6854,this.match(t.FROM),this.state=6857,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,997,this.context)){case 1:this.state=6855,s._fromString=this.stringLiteral();break;case 2:this.state=6856,s._fromExpression=this.expression(0)}this.state=6859,this.match(t.RR_BRACKET);break;case 14:switch(s=new qk(s),this.enterOuterAlt(s,14),this.state=6861,this.match(t.WEIGHT_STRING),this.state=6862,this.match(t.LR_BRACKET),this.state=6865,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,998,this.context)){case 1:this.state=6863,this.stringLiteral();break;case 2:this.state=6864,this.expression(0)}this.state=6873,this.errorHandler.sync(this),e=this.tokenStream.LA(1),12===e&&(this.state=6867,this.match(t.AS),this.state=6868,s._stringFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),222===e||226===e?(this.errorHandler.reportMatch(this),this.consume()):s._stringFormat=this.errorHandler.recoverInline(this),this.state=6869,this.match(t.LR_BRACKET),this.state=6870,this.decimalLiteral(),this.state=6871,this.match(t.RR_BRACKET)),this.state=6876,this.errorHandler.sync(this),e=this.tokenStream.LA(1),472===e&&(this.state=6875,this.levelsInWeightString()),this.state=6878,this.match(t.RR_BRACKET);break;case 15:switch(s=new Wk(s),this.enterOuterAlt(s,15),this.state=6880,this.match(t.EXTRACT),this.state=6881,this.match(t.LR_BRACKET),this.state=6882,this.intervalType(),this.state=6883,this.match(t.FROM),this.state=6886,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1001,this.context)){case 1:this.state=6884,s._sourceString=this.stringLiteral();break;case 2:this.state=6885,s._sourceExpression=this.expression(0)}this.state=6888,this.match(t.RR_BRACKET);break;case 16:s=new jk(s),this.enterOuterAlt(s,16),this.state=6890,this.match(t.GET_FORMAT),this.state=6891,this.match(t.LR_BRACKET),this.state=6892,s._datetimeFormat=this.tokenStream.LT(1),e=this.tokenStream.LA(1),!(e-217&-32)&&1<<e-217&11?(this.errorHandler.reportMatch(this),this.consume()):s._datetimeFormat=this.errorHandler.recoverInline(this),this.state=6893,this.match(t.COMMA),this.state=6894,this.stringLiteral(),this.state=6895,this.match(t.RR_BRACKET);break;case 17:if(s=new wk(s),this.enterOuterAlt(s,17),1===(this.state=6897,this.match(t.JSON_VALUE),this.state=6898,this.match(t.LR_BRACKET),this.state=6899,this.expression(0),this.state=6900,this.match(t.COMMA),this.state=6901,this.expression(0),this.state=6904,this.errorHandler.sync(this),e=this.tokenStream.LA(1),593===e&&(this.state=6902,this.match(t.RETURNING),this.state=6903,this.convertedDataType()),this.state=6907,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1003,this.context)))this.state=6906,this.jsonOnEmpty();this.state=6910,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(42===e||116===e||411===e)&&(this.state=6909,this.jsonOnError()),this.state=6912,this.match(t.RR_BRACKET)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}caseFuncAlternative(){let e=new $k(this.context,this.state);this.enterRule(e,680,t.RULE_caseFuncAlternative);try{this.enterOuterAlt(e,1),this.state=6916,this.match(t.WHEN),this.state=6917,e._condition=this.functionArg(),this.state=6918,this.match(t.THEN),this.state=6919,e._consequent=this.functionArg()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}levelsInWeightString(){let e,s=new tH(this.context,this.state);this.enterRule(s,682,t.RULE_levelsInWeightString);try{switch(this.state=6935,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1007,this.context)){case 1:for(s=new sH(s),this.enterOuterAlt(s,1),this.state=6921,this.match(t.LEVEL),this.state=6922,this.levelInWeightListElement(),this.state=6927,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6923,this.match(t.COMMA),this.state=6924,this.levelInWeightListElement(),this.state=6929,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case 2:s=new eH(s),this.enterOuterAlt(s,2),this.state=6930,this.match(t.LEVEL),this.state=6931,s._firstLevel=this.decimalLiteral(),this.state=6932,this.match(t.MINUS),this.state=6933,s._lastLevel=this.decimalLiteral()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}levelInWeightListElement(){let e,s=new aH(this.context,this.state);this.enterRule(s,684,t.RULE_levelInWeightListElement);try{this.enterOuterAlt(s,1),this.state=6937,this.decimalLiteral(),this.state=6939,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(13===e||45===e||994===e)&&(this.state=6938,s._orderType=this.tokenStream.LT(1),e=this.tokenStream.LA(1),13===e||45===e||994===e?(this.errorHandler.reportMatch(this),this.consume()):s._orderType=this.errorHandler.recoverInline(this))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}aggregateWindowedFunction(){let e,s=new rH(this.context,this.state);this.enterRule(s,686,t.RULE_aggregateWindowedFunction);try{switch(this.state=7e3,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AVG:case t.MAX:case t.MIN:case t.SUM:if(this.enterOuterAlt(s,1),1===(this.state=6941,e=this.tokenStream.LA(1),!(e-286&-32)&&1<<e-286&8400897?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=6942,this.match(t.LR_BRACKET),this.state=6944,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1009,this.context)))this.state=6943,s._aggregator=this.tokenStream.LT(1),e=this.tokenStream.LA(1),6===e||49===e?(this.errorHandler.reportMatch(this),this.consume()):s._aggregator=this.errorHandler.recoverInline(this);if(1===(this.state=6946,this.functionArg(),this.state=6947,this.match(t.RR_BRACKET),this.state=6949,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1010,this.context)))this.state=6948,this.overClause();break;case t.COUNT:switch(this.enterOuterAlt(s,2),this.state=6951,this.match(t.COUNT),this.state=6952,this.match(t.LR_BRACKET),this.state=6960,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1012,this.context)){case 1:this.state=6953,s._starArg=this.match(t.STAR);break;case 2:if(1===(this.state=6955,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1011,this.context)))this.state=6954,s._aggregator=this.match(t.ALL);this.state=6957,this.functionArg();break;case 3:this.state=6958,s._aggregator=this.match(t.DISTINCT),this.state=6959,this.functionArgs()}if(1===(this.state=6962,this.match(t.RR_BRACKET),this.state=6964,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1013,this.context)))this.state=6963,this.overClause();break;case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:if(this.enterOuterAlt(s,3),1===(this.state=6966,e=this.tokenStream.LA(1),!(e-287&-32)&&1<<e-287&62652423?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=6967,this.match(t.LR_BRACKET),this.state=6969,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1014,this.context)))this.state=6968,s._aggregator=this.match(t.ALL);if(1===(this.state=6971,this.functionArg(),this.state=6972,this.match(t.RR_BRACKET),this.state=6974,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1015,this.context)))this.state=6973,this.overClause();break;case t.GROUP_CONCAT:if(this.enterOuterAlt(s,4),1===(this.state=6976,this.match(t.GROUP_CONCAT),this.state=6977,this.match(t.LR_BRACKET),this.state=6979,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1016,this.context)))this.state=6978,s._aggregator=this.match(t.DISTINCT);if(this.state=6981,this.functionArgs(),this.state=6992,this.errorHandler.sync(this),e=this.tokenStream.LA(1),124===e)for(this.state=6982,this.match(t.ORDER),this.state=6983,this.match(t.BY),this.state=6984,this.orderByExpression(),this.state=6989,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=6985,this.match(t.COMMA),this.state=6986,this.orderByExpression(),this.state=6991,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=6996,this.errorHandler.sync(this),e=this.tokenStream.LA(1),154===e&&(this.state=6994,this.match(t.SEPARATOR),this.state=6995,s._separator=this.match(t.STRING_LITERAL)),this.state=6998,this.match(t.RR_BRACKET);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}nonAggregateWindowedFunction(){let e,s=new iH(this.context,this.state);this.enterRule(s,688,t.RULE_nonAggregateWindowedFunction);try{switch(this.state=7040,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LAG:case t.LEAD:if(this.enterOuterAlt(s,1),1===(this.state=7002,e=this.tokenStream.LA(1),295===e||297===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=7003,this.match(t.LR_BRACKET),this.state=7004,this.expression(0),this.state=7007,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1021,this.context)))this.state=7005,this.match(t.COMMA),this.state=7006,this.decimalLiteral();this.state=7011,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1135===e&&(this.state=7009,this.match(t.COMMA),this.state=7010,this.decimalLiteral()),this.state=7013,this.match(t.RR_BRACKET),this.state=7014,this.overClause();break;case t.FIRST_VALUE:case t.LAST_VALUE:this.enterOuterAlt(s,2),this.state=7016,e=this.tokenStream.LA(1),293===e||296===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=7017,this.match(t.LR_BRACKET),this.state=7018,this.expression(0),this.state=7019,this.match(t.RR_BRACKET),this.state=7020,this.overClause();break;case t.CUME_DIST:case t.DENSE_RANK:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:this.enterOuterAlt(s,3),this.state=7022,e=this.tokenStream.LA(1),!(e-291&-32)&&1<<e-291&14339?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=7023,this.match(t.LR_BRACKET),this.state=7024,this.match(t.RR_BRACKET),this.state=7025,this.overClause();break;case t.NTH_VALUE:this.enterOuterAlt(s,4),this.state=7026,this.match(t.NTH_VALUE),this.state=7027,this.match(t.LR_BRACKET),this.state=7028,this.expression(0),this.state=7029,this.match(t.COMMA),this.state=7030,this.decimalLiteral(),this.state=7031,this.match(t.RR_BRACKET),this.state=7032,this.overClause();break;case t.NTILE:this.enterOuterAlt(s,5),this.state=7034,this.match(t.NTILE),this.state=7035,this.match(t.LR_BRACKET),this.state=7036,this.decimalLiteral(),this.state=7037,this.match(t.RR_BRACKET),this.state=7038,this.overClause();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}overClause(){let e=new cH(this.context,this.state);this.enterRule(e,690,t.RULE_overClause);try{switch(this.enterOuterAlt(e,1),this.state=7042,this.match(t.OVER),this.state=7048,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LR_BRACKET:this.state=7043,this.match(t.LR_BRACKET),this.state=7044,this.windowSpec(),this.state=7045,this.match(t.RR_BRACKET);break;case t.ARRAY:case t.ATTRIBUTE:case t.BUCKETS:case t.CONDITION:case t.CURRENT:case t.CURRENT_USER:case t.DATABASE:case t.DEFAULT:case t.DIAGNOSTICS:case t.EMPTY:case t.ENFORCED:case t.EXCEPT:case t.GROUP:case t.IF:case t.IGNORED:case t.INSERT:case t.LATERAL:case t.LEFT:case t.NUMBER:case t.OPTIONAL:case t.ORDER:case t.PRIMARY:case t.REPEAT:case t.REPLACE:case t.RIGHT:case t.SCHEMA:case t.SKIP_QUERY_REWRITE:case t.STACKED:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.DATETIME:case t.YEAR:case t.BINARY:case t.TEXT:case t.ENUM:case t.SERIAL:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.NESTED:case t.ORDINALITY:case t.PATH:case t.AVG:case t.BIT_AND:case t.BIT_OR:case t.BIT_XOR:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.GROUP_CONCAT:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.MAX:case t.MIN:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.STD:case t.STDDEV:case t.STDDEV_POP:case t.STDDEV_SAMP:case t.SUM:case t.VAR_POP:case t.VAR_SAMP:case t.VARIANCE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.LOCALTIME:case t.CURDATE:case t.CURTIME:case t.DATE_ADD:case t.DATE_SUB:case t.LOCALTIMESTAMP:case t.NOW:case t.POSITION:case t.SUBSTR:case t.SUBSTRING:case t.SYSDATE:case t.TRIM:case t.UTC_DATE:case t.UTC_TIME:case t.UTC_TIMESTAMP:case t.ACCOUNT:case t.ACTION:case t.AFTER:case t.AGGREGATE:case t.ALGORITHM:case t.ANY:case t.AT:case t.AUTHORS:case t.AUTOCOMMIT:case t.AUTOEXTEND_SIZE:case t.AUTO_INCREMENT:case t.AVG_ROW_LENGTH:case t.BEGIN:case t.BINLOG:case t.BIT:case t.BLOCK:case t.BOOL:case t.BOOLEAN:case t.BTREE:case t.CACHE:case t.CASCADED:case t.CHAIN:case t.CHANGED:case t.CHANNEL:case t.CHECKSUM:case t.PAGE_CHECKSUM:case t.CIPHER:case t.CLASS_ORIGIN:case t.CLIENT:case t.CLOSE:case t.CLUSTERING:case t.COALESCE:case t.CODE:case t.COLUMNS:case t.COLUMN_FORMAT:case t.COLUMN_NAME:case t.COMMENT:case t.COMMIT:case t.COMPACT:case t.COMPLETION:case t.COMPRESSED:case t.COMPRESSION:case t.CONCURRENT:case t.CONNECT:case t.CONNECTION:case t.CONSISTENT:case t.CONSTRAINT_CATALOG:case t.CONSTRAINT_SCHEMA:case t.CONSTRAINT_NAME:case t.CONTAINS:case t.CONTEXT:case t.CONTRIBUTORS:case t.COPY:case t.CPU:case t.CURSOR_NAME:case t.DATA:case t.DATAFILE:case t.DEALLOCATE:case t.DEFAULT_AUTH:case t.DEFINER:case t.DELAY_KEY_WRITE:case t.DES_KEY_FILE:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISK:case t.DO:case t.DUMPFILE:case t.DUPLICATE:case t.DYNAMIC:case t.ENABLE:case t.ENCRYPTION:case t.END:case t.ENDS:case t.ENGINE:case t.ENGINES:case t.ERROR:case t.ERRORS:case t.ESCAPE:case t.EVEN:case t.EVENT:case t.EVENTS:case t.EVERY:case t.EXCHANGE:case t.EXCLUSIVE:case t.EXPIRE:case t.EXPORT:case t.EXTENDED:case t.EXTENT_SIZE:case t.FAILED_LOGIN_ATTEMPTS:case t.FAST:case t.FAULTS:case t.FIELDS:case t.FILE_BLOCK_SIZE:case t.FILTER:case t.FIRST:case t.FIXED:case t.FLUSH:case t.FOLLOWS:case t.FOUND:case t.FULL:case t.FUNCTION:case t.GENERAL:case t.GLOBAL:case t.GRANTS:case t.GROUP_REPLICATION:case t.HANDLER:case t.HASH:case t.HELP:case t.HISTORY:case t.HOST:case t.HOSTS:case t.IDENTIFIED:case t.IGNORE_SERVER_IDS:case t.IMPORT:case t.INDEXES:case t.INITIAL_SIZE:case t.INPLACE:case t.INSERT_METHOD:case t.INSTALL:case t.INSTANCE:case t.INSTANT:case t.INVISIBLE:case t.INVOKER:case t.IO:case t.IO_THREAD:case t.IPC:case t.ISOLATION:case t.ISSUER:case t.JSON:case t.KEY_BLOCK_SIZE:case t.LANGUAGE:case t.LAST:case t.LEAVES:case t.LESS:case t.LEVEL:case t.LIST:case t.LOCAL:case t.LOGFILE:case t.LOGS:case t.MASTER:case t.MASTER_AUTO_POSITION:case t.MASTER_CONNECT_RETRY:case t.MASTER_DELAY:case t.MASTER_HEARTBEAT_PERIOD:case t.MASTER_HOST:case t.MASTER_LOG_FILE:case t.MASTER_LOG_POS:case t.MASTER_PASSWORD:case t.MASTER_PORT:case t.MASTER_RETRY_COUNT:case t.MASTER_SSL:case t.MASTER_SSL_CA:case t.MASTER_SSL_CAPATH:case t.MASTER_SSL_CERT:case t.MASTER_SSL_CIPHER:case t.MASTER_SSL_CRL:case t.MASTER_SSL_CRLPATH:case t.MASTER_SSL_KEY:case t.MASTER_TLS_VERSION:case t.MASTER_USER:case t.MAX_CONNECTIONS_PER_HOUR:case t.MAX_QUERIES_PER_HOUR:case t.MAX_ROWS:case t.MAX_SIZE:case t.MAX_UPDATES_PER_HOUR:case t.MAX_USER_CONNECTIONS:case t.MEDIUM:case t.MEMBER:case t.MERGE:case t.MESSAGE_TEXT:case t.MID:case t.MIGRATE:case t.MIN_ROWS:case t.MODE:case t.MODIFY:case t.MUTEX:case t.MYSQL:case t.MYSQL_ERRNO:case t.NAME:case t.NAMES:case t.NCHAR:case t.NEVER:case t.NEXT:case t.NO:case t.NOCOPY:case t.NOWAIT:case t.NODEGROUP:case t.NONE:case t.ODBC:case t.OFFLINE:case t.OFFSET:case t.OF:case t.OJ:case t.OLD_PASSWORD:case t.ONE:case t.ONLINE:case t.ONLY:case t.OPEN:case t.OPTIMIZER_COSTS:case t.OPTIONS:case t.OWNER:case t.PACK_KEYS:case t.PAGE:case t.PARSER:case t.PARTIAL:case t.PARTITIONING:case t.PARTITIONS:case t.PASSWORD:case t.PASSWORD_LOCK_TIME:case t.PHASE:case t.PLUGIN:case t.PLUGIN_DIR:case t.PLUGINS:case t.PORT:case t.PRECEDES:case t.PREPARE:case t.PRESERVE:case t.PREV:case t.PROCESSLIST:case t.PROFILE:case t.PROFILES:case t.PROXY:case t.QUERY:case t.QUICK:case t.REBUILD:case t.RECOVER:case t.RECURSIVE:case t.REDO_BUFFER_SIZE:case t.REDUNDANT:case t.RELAY:case t.RELAY_LOG_FILE:case t.RELAY_LOG_POS:case t.RELAYLOG:case t.REMOVE:case t.REORGANIZE:case t.REPAIR:case t.REPLICATE_DO_DB:case t.REPLICATE_DO_TABLE:case t.REPLICATE_IGNORE_DB:case t.REPLICATE_IGNORE_TABLE:case t.REPLICATE_REWRITE_DB:case t.REPLICATE_WILD_DO_TABLE:case t.REPLICATE_WILD_IGNORE_TABLE:case t.REPLICATION:case t.RESET:case t.RESUME:case t.RETURNED_SQLSTATE:case t.RETURNS:case t.REUSE:case t.ROLE:case t.ROLLBACK:case t.ROLLUP:case t.ROTATE:case t.ROW:case t.ROWS:case t.ROW_FORMAT:case t.RTREE:case t.SAVEPOINT:case t.SCHEDULE:case t.SECURITY:case t.SERVER:case t.SESSION:case t.SHARE:case t.SHARED:case t.SIGNED:case t.SIMPLE:case t.SLAVE:case t.SLOW:case t.SNAPSHOT:case t.SOCKET:case t.SOME:case t.SONAME:case t.SOUNDS:case t.SOURCE:case t.SQL_AFTER_GTIDS:case t.SQL_AFTER_MTS_GAPS:case t.SQL_BEFORE_GTIDS:case t.SQL_BUFFER_RESULT:case t.SQL_CACHE:case t.SQL_NO_CACHE:case t.SQL_THREAD:case t.START:case t.STARTS:case t.STATS_AUTO_RECALC:case t.STATS_PERSISTENT:case t.STATS_SAMPLE_PAGES:case t.STATUS:case t.STOP:case t.STORAGE:case t.STRING:case t.SUBCLASS_ORIGIN:case t.SUBJECT:case t.SUBPARTITION:case t.SUBPARTITIONS:case t.SUSPEND:case t.SWAPS:case t.SWITCHES:case t.TABLE_NAME:case t.TABLESPACE:case t.TABLE_TYPE:case t.TEMPORARY:case t.TEMPTABLE:case t.THAN:case t.TRADITIONAL:case t.TRANSACTION:case t.TRANSACTIONAL:case t.TRIGGERS:case t.TRUNCATE:case t.UNBOUNDED:case t.UNDEFINED:case t.UNDOFILE:case t.UNDO_BUFFER_SIZE:case t.UNINSTALL:case t.UNKNOWN:case t.UNTIL:case t.UPGRADE:case t.USER:case t.USE_FRM:case t.USER_RESOURCES:case t.VALIDATION:case t.VALUE:case t.VARIABLES:case t.VIEW:case t.VIRTUAL:case t.VISIBLE:case t.WAIT:case t.WARNINGS:case t.WITHOUT:case t.WORK:case t.WRAPPER:case t.X509:case t.XA:case t.XML:case t.EUR:case t.USA:case t.JIS:case t.ISO:case t.INTERNAL:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.ADMIN:case t.AUDIT_ABORT_EXEMPT:case t.AUDIT_ADMIN:case t.AUTHENTICATION_POLICY_ADMIN:case t.BACKUP_ADMIN:case t.BINLOG_ADMIN:case t.BINLOG_ENCRYPTION_ADMIN:case t.CLONE_ADMIN:case t.CONNECTION_ADMIN:case t.ENCRYPTION_KEY_ADMIN:case t.EXECUTE:case t.FILE:case t.FIREWALL_ADMIN:case t.FIREWALL_EXEMPT:case t.FIREWALL_USER:case t.GROUP_REPLICATION_ADMIN:case t.INNODB_REDO_LOG_ARCHIVE:case t.INVOKE:case t.LAMBDA:case t.NDB_STORED_USER:case t.PASSWORDLESS_USER_ADMIN:case t.PERSIST_RO_VARIABLES_ADMIN:case t.PRIVILEGES:case t.PROCESS:case t.RELOAD:case t.REPLICATION_APPLIER:case t.REPLICATION_SLAVE_ADMIN:case t.RESOURCE_GROUP_ADMIN:case t.RESOURCE_GROUP_USER:case t.ROLE_ADMIN:case t.ROUTINE:case t.S3:case t.SESSION_VARIABLES_ADMIN:case t.SET_USER_ID:case t.SHOW_ROUTINE:case t.SHUTDOWN:case t.SUPER:case t.SYSTEM_VARIABLES_ADMIN:case t.TABLES:case t.TABLE_ENCRYPTION_ADMIN:case t.VERSION_TOKEN_ADMIN:case t.XA_RECOVER_ADMIN:case t.ARMSCII8:case t.ASCII:case t.BIG5:case t.CP1250:case t.CP1251:case t.CP1256:case t.CP1257:case t.CP850:case t.CP852:case t.CP866:case t.CP932:case t.DEC8:case t.EUCJPMS:case t.EUCKR:case t.GB18030:case t.GB2312:case t.GBK:case t.GEOSTD8:case t.GREEK:case t.HEBREW:case t.HP8:case t.KEYBCS2:case t.KOI8R:case t.KOI8U:case t.LATIN1:case t.LATIN2:case t.LATIN5:case t.LATIN7:case t.MACCE:case t.MACROMAN:case t.SJIS:case t.SWE7:case t.TIS620:case t.UCS2:case t.UJIS:case t.UTF16:case t.UTF16LE:case t.UTF32:case t.UTF8:case t.UTF8MB3:case t.UTF8MB4:case t.ARCHIVE:case t.BLACKHOLE:case t.CSV:case t.FEDERATED:case t.INNODB:case t.MEMORY:case t.MRG_MYISAM:case t.MYISAM:case t.NDB:case t.NDBCLUSTER:case t.PERFORMANCE_SCHEMA:case t.TOKUDB:case t.REPEATABLE:case t.COMMITTED:case t.UNCOMMITTED:case t.SERIALIZABLE:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CATALOG_NAME:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENGINE_ATTRIBUTE:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SECONDARY_ENGINE_ATTRIBUTE:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SCHEMA_NAME:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.TP_CONNECTION_ADMIN:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:case t.CHARSET_REVERSE_QOUTE_STRING:case t.STRING_LITERAL:case t.ID:this.state=7047,this.windowName();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}windowSpec(){let e,s=new nH(this.context,this.state);this.enterRule(s,692,t.RULE_windowSpec);try{if(this.enterOuterAlt(s,1),1===(this.state=7051,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1025,this.context)))this.state=7050,this.windowName();this.state=7054,this.errorHandler.sync(this),e=this.tokenStream.LA(1),129===e&&(this.state=7053,this.partitionClause()),this.state=7057,this.errorHandler.sync(this),e=this.tokenStream.LA(1),124===e&&(this.state=7056,this.orderByClause()),this.state=7060,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(133===e||601===e)&&(this.state=7059,this.frameClause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}windowName(){let e=new hH(this.context,this.state);this.enterRule(e,694,t.RULE_windowName);try{this.enterOuterAlt(e,1),this.state=7062,this.uid()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}frameClause(){let e=new EH(this.context,this.state);this.enterRule(e,696,t.RULE_frameClause);try{this.enterOuterAlt(e,1),this.state=7064,this.frameUnits(),this.state=7065,this.frameExtent()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}frameUnits(){let e,s=new TH(this.context,this.state);this.enterRule(s,698,t.RULE_frameUnits);try{this.enterOuterAlt(s,1),this.state=7067,e=this.tokenStream.LA(1),133===e||601===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}frameExtent(){let e=new oH(this.context,this.state);this.enterRule(e,700,t.RULE_frameExtent);try{switch(this.state=7071,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1029,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7069,this.frameRange();break;case 2:this.enterOuterAlt(e,2),this.state=7070,this.frameBetween()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}frameBetween(){let e=new RH(this.context,this.state);this.enterRule(e,702,t.RULE_frameBetween);try{this.enterOuterAlt(e,1),this.state=7073,this.match(t.BETWEEN),this.state=7074,this.frameRange(),this.state=7075,this.match(t.AND),this.state=7076,this.frameRange()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}frameRange(){let e,s=new AH(this.context,this.state);this.enterRule(s,704,t.RULE_frameRange);try{switch(this.state=7085,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1030,this.context)){case 1:this.enterOuterAlt(s,1),this.state=7078,this.match(t.CURRENT),this.state=7079,this.match(t.ROW);break;case 2:this.enterOuterAlt(s,2),this.state=7080,this.match(t.UNBOUNDED),this.state=7081,e=this.tokenStream.LA(1),433===e||559===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case 3:this.enterOuterAlt(s,3),this.state=7082,this.expression(0),this.state=7083,e=this.tokenStream.LA(1),433===e||559===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}partitionClause(){let e,s=new SH(this.context,this.state);this.enterRule(s,706,t.RULE_partitionClause);try{for(this.enterOuterAlt(s,1),this.state=7087,this.match(t.PARTITION),this.state=7088,this.match(t.BY),this.state=7089,this.expression(0),this.state=7094,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;)this.state=7090,this.match(t.COMMA),this.state=7091,this.expression(0),this.state=7096,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}scalarFunctionName(){let e=new lH(this.context,this.state);this.enterRule(e,708,t.RULE_scalarFunctionName);try{switch(this.state=7121,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DATABASE:case t.LEFT:case t.RIGHT:case t.SCHEMA:case t.DATE:case t.TIME:case t.TIMESTAMP:case t.YEAR:case t.JSON_ARRAY:case t.JSON_ARRAYAGG:case t.JSON_ARRAY_APPEND:case t.JSON_ARRAY_INSERT:case t.JSON_CONTAINS:case t.JSON_CONTAINS_PATH:case t.JSON_DEPTH:case t.JSON_EXTRACT:case t.JSON_INSERT:case t.JSON_KEYS:case t.JSON_LENGTH:case t.JSON_MERGE:case t.JSON_MERGE_PATCH:case t.JSON_MERGE_PRESERVE:case t.JSON_OBJECT:case t.JSON_OBJECTAGG:case t.JSON_OVERLAPS:case t.JSON_PRETTY:case t.JSON_QUOTE:case t.JSON_REMOVE:case t.JSON_REPLACE:case t.JSON_SCHEMA_VALID:case t.JSON_SCHEMA_VALIDATION_REPORT:case t.JSON_SEARCH:case t.JSON_SET:case t.JSON_STORAGE_FREE:case t.JSON_STORAGE_SIZE:case t.JSON_TABLE:case t.JSON_TYPE:case t.JSON_UNQUOTE:case t.JSON_VALID:case t.JSON_VALUE:case t.COUNT:case t.CUME_DIST:case t.DENSE_RANK:case t.FIRST_VALUE:case t.LAG:case t.LAST_VALUE:case t.LEAD:case t.NTILE:case t.NTH_VALUE:case t.PERCENT_RANK:case t.RANK:case t.ROW_NUMBER:case t.POSITION:case t.INVISIBLE:case t.VISIBLE:case t.QUARTER:case t.MONTH:case t.DAY:case t.HOUR:case t.MINUTE:case t.WEEK:case t.SECOND:case t.MICROSECOND:case t.SESSION_VARIABLES_ADMIN:case t.GEOMETRYCOLLECTION:case t.LINESTRING:case t.MULTILINESTRING:case t.MULTIPOINT:case t.MULTIPOLYGON:case t.POINT:case t.POLYGON:case t.ABS:case t.ACOS:case t.ADDDATE:case t.ADDTIME:case t.AES_DECRYPT:case t.AES_ENCRYPT:case t.AREA:case t.ASBINARY:case t.ASIN:case t.ASTEXT:case t.ASWKB:case t.ASWKT:case t.ASYMMETRIC_DECRYPT:case t.ASYMMETRIC_DERIVE:case t.ASYMMETRIC_ENCRYPT:case t.ASYMMETRIC_SIGN:case t.ASYMMETRIC_VERIFY:case t.ATAN:case t.ATAN2:case t.BENCHMARK:case t.BIN:case t.BIT_COUNT:case t.BIT_LENGTH:case t.BUFFER:case t.CEIL:case t.CEILING:case t.CENTROID:case t.CHARACTER_LENGTH:case t.CHARSET:case t.CHAR_LENGTH:case t.COERCIBILITY:case t.COLLATION:case t.COMPRESS:case t.CONCAT:case t.CONCAT_WS:case t.CONNECTION_ID:case t.CONV:case t.CONVERT_TZ:case t.COS:case t.COT:case t.CRC32:case t.CREATE_ASYMMETRIC_PRIV_KEY:case t.CREATE_ASYMMETRIC_PUB_KEY:case t.CREATE_DH_PARAMETERS:case t.CREATE_DIGEST:case t.CROSSES:case t.DATEDIFF:case t.DATE_FORMAT:case t.DAYNAME:case t.DAYOFMONTH:case t.DAYOFWEEK:case t.DAYOFYEAR:case t.DECODE:case t.DEGREES:case t.DES_DECRYPT:case t.DES_ENCRYPT:case t.DIMENSION:case t.DISJOINT:case t.ELT:case t.ENCODE:case t.ENCRYPT:case t.ENDPOINT:case t.ENVELOPE:case t.EQUALS:case t.EXP:case t.EXPORT_SET:case t.EXTERIORRING:case t.EXTRACTVALUE:case t.FIELD:case t.FIND_IN_SET:case t.FLOOR:case t.FORMAT:case t.FOUND_ROWS:case t.FROM_BASE64:case t.FROM_DAYS:case t.FROM_UNIXTIME:case t.GEOMCOLLFROMTEXT:case t.GEOMCOLLFROMWKB:case t.GEOMETRYCOLLECTIONFROMTEXT:case t.GEOMETRYCOLLECTIONFROMWKB:case t.GEOMETRYFROMTEXT:case t.GEOMETRYFROMWKB:case t.GEOMETRYN:case t.GEOMETRYTYPE:case t.GEOMFROMTEXT:case t.GEOMFROMWKB:case t.GET_FORMAT:case t.GET_LOCK:case t.GLENGTH:case t.GREATEST:case t.GTID_SUBSET:case t.GTID_SUBTRACT:case t.HEX:case t.IFNULL:case t.INET6_ATON:case t.INET6_NTOA:case t.INET_ATON:case t.INET_NTOA:case t.INSTR:case t.INTERIORRINGN:case t.INTERSECTS:case t.ISCLOSED:case t.ISEMPTY:case t.ISNULL:case t.ISSIMPLE:case t.IS_FREE_LOCK:case t.IS_IPV4:case t.IS_IPV4_COMPAT:case t.IS_IPV4_MAPPED:case t.IS_IPV6:case t.IS_USED_LOCK:case t.LAST_INSERT_ID:case t.LCASE:case t.LEAST:case t.LENGTH:case t.LINEFROMTEXT:case t.LINEFROMWKB:case t.LINESTRINGFROMTEXT:case t.LINESTRINGFROMWKB:case t.LN:case t.LOAD_FILE:case t.LOCATE:case t.LOG:case t.LOG10:case t.LOG2:case t.LOWER:case t.LPAD:case t.LTRIM:case t.MAKEDATE:case t.MAKETIME:case t.MAKE_SET:case t.MASTER_POS_WAIT:case t.MBRCONTAINS:case t.MBRDISJOINT:case t.MBREQUAL:case t.MBRINTERSECTS:case t.MBROVERLAPS:case t.MBRTOUCHES:case t.MBRWITHIN:case t.MD5:case t.MLINEFROMTEXT:case t.MLINEFROMWKB:case t.MONTHNAME:case t.MPOINTFROMTEXT:case t.MPOINTFROMWKB:case t.MPOLYFROMTEXT:case t.MPOLYFROMWKB:case t.MULTILINESTRINGFROMTEXT:case t.MULTILINESTRINGFROMWKB:case t.MULTIPOINTFROMTEXT:case t.MULTIPOINTFROMWKB:case t.MULTIPOLYGONFROMTEXT:case t.MULTIPOLYGONFROMWKB:case t.NAME_CONST:case t.NULLIF:case t.NUMGEOMETRIES:case t.NUMINTERIORRINGS:case t.NUMPOINTS:case t.OCT:case t.OCTET_LENGTH:case t.ORD:case t.OVERLAPS:case t.PERIOD_ADD:case t.PERIOD_DIFF:case t.PI:case t.POINTFROMTEXT:case t.POINTFROMWKB:case t.POINTN:case t.POLYFROMTEXT:case t.POLYFROMWKB:case t.POLYGONFROMTEXT:case t.POLYGONFROMWKB:case t.POW:case t.POWER:case t.QUOTE:case t.RADIANS:case t.RAND:case t.RANDOM:case t.RANDOM_BYTES:case t.RELEASE_LOCK:case t.REVERSE:case t.ROUND:case t.ROW_COUNT:case t.RPAD:case t.RTRIM:case t.SEC_TO_TIME:case t.SESSION_USER:case t.SHA:case t.SHA1:case t.SHA2:case t.SIGN:case t.SIN:case t.SLEEP:case t.SOUNDEX:case t.SQL_THREAD_WAIT_AFTER_GTIDS:case t.SQRT:case t.SRID:case t.STARTPOINT:case t.STRCMP:case t.STR_TO_DATE:case t.ST_AREA:case t.ST_ASBINARY:case t.ST_ASTEXT:case t.ST_ASWKB:case t.ST_ASWKT:case t.ST_BUFFER:case t.ST_CENTROID:case t.ST_CONTAINS:case t.ST_CROSSES:case t.ST_DIFFERENCE:case t.ST_DIMENSION:case t.ST_DISJOINT:case t.ST_DISTANCE:case t.ST_ENDPOINT:case t.ST_ENVELOPE:case t.ST_EQUALS:case t.ST_EXTERIORRING:case t.ST_GEOMCOLLFROMTEXT:case t.ST_GEOMCOLLFROMTXT:case t.ST_GEOMCOLLFROMWKB:case t.ST_GEOMETRYCOLLECTIONFROMTEXT:case t.ST_GEOMETRYCOLLECTIONFROMWKB:case t.ST_GEOMETRYFROMTEXT:case t.ST_GEOMETRYFROMWKB:case t.ST_GEOMETRYN:case t.ST_GEOMETRYTYPE:case t.ST_GEOMFROMTEXT:case t.ST_GEOMFROMWKB:case t.ST_INTERIORRINGN:case t.ST_INTERSECTION:case t.ST_INTERSECTS:case t.ST_ISCLOSED:case t.ST_ISEMPTY:case t.ST_ISSIMPLE:case t.ST_LINEFROMTEXT:case t.ST_LINEFROMWKB:case t.ST_LINESTRINGFROMTEXT:case t.ST_LINESTRINGFROMWKB:case t.ST_NUMGEOMETRIES:case t.ST_NUMINTERIORRING:case t.ST_NUMINTERIORRINGS:case t.ST_NUMPOINTS:case t.ST_OVERLAPS:case t.ST_POINTFROMTEXT:case t.ST_POINTFROMWKB:case t.ST_POINTN:case t.ST_POLYFROMTEXT:case t.ST_POLYFROMWKB:case t.ST_POLYGONFROMTEXT:case t.ST_POLYGONFROMWKB:case t.ST_SRID:case t.ST_STARTPOINT:case t.ST_SYMDIFFERENCE:case t.ST_TOUCHES:case t.ST_UNION:case t.ST_WITHIN:case t.ST_X:case t.ST_Y:case t.SUBDATE:case t.SUBSTRING_INDEX:case t.SUBTIME:case t.SYSTEM_USER:case t.TAN:case t.TIMEDIFF:case t.TIMESTAMPADD:case t.TIMESTAMPDIFF:case t.TIME_FORMAT:case t.TIME_TO_SEC:case t.TOUCHES:case t.TO_BASE64:case t.TO_DAYS:case t.TO_SECONDS:case t.UCASE:case t.UNCOMPRESS:case t.UNCOMPRESSED_LENGTH:case t.UNHEX:case t.UNIX_TIMESTAMP:case t.UPDATEXML:case t.UPPER:case t.UUID:case t.UUID_SHORT:case t.VALIDATE_PASSWORD_STRENGTH:case t.VERSION:case t.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS:case t.WEEKDAY:case t.WEEKOFYEAR:case t.WEIGHT_STRING:case t.WITHIN:case t.YEARWEEK:case t.Y_FUNCTION:case t.X_FUNCTION:case t.MOD:this.enterOuterAlt(e,1),this.state=7097,this.functionNameBase();break;case t.ASCII:this.enterOuterAlt(e,2),this.state=7098,this.match(t.ASCII);break;case t.CURDATE:this.enterOuterAlt(e,3),this.state=7099,this.match(t.CURDATE);break;case t.CURRENT_DATE:this.enterOuterAlt(e,4),this.state=7100,this.match(t.CURRENT_DATE);break;case t.CURRENT_TIME:this.enterOuterAlt(e,5),this.state=7101,this.match(t.CURRENT_TIME);break;case t.CURRENT_TIMESTAMP:this.enterOuterAlt(e,6),this.state=7102,this.match(t.CURRENT_TIMESTAMP);break;case t.CURTIME:this.enterOuterAlt(e,7),this.state=7103,this.match(t.CURTIME);break;case t.DATE_ADD:this.enterOuterAlt(e,8),this.state=7104,this.match(t.DATE_ADD);break;case t.DATE_SUB:this.enterOuterAlt(e,9),this.state=7105,this.match(t.DATE_SUB);break;case t.IF:this.enterOuterAlt(e,10),this.state=7106,this.match(t.IF);break;case t.INSERT:this.enterOuterAlt(e,11),this.state=7107,this.match(t.INSERT);break;case t.LOCALTIME:this.enterOuterAlt(e,12),this.state=7108,this.match(t.LOCALTIME);break;case t.LOCALTIMESTAMP:this.enterOuterAlt(e,13),this.state=7109,this.match(t.LOCALTIMESTAMP);break;case t.MID:this.enterOuterAlt(e,14),this.state=7110,this.match(t.MID);break;case t.NOW:this.enterOuterAlt(e,15),this.state=7111,this.match(t.NOW);break;case t.REPEAT:this.enterOuterAlt(e,16),this.state=7112,this.match(t.REPEAT);break;case t.REPLACE:this.enterOuterAlt(e,17),this.state=7113,this.match(t.REPLACE);break;case t.SUBSTR:this.enterOuterAlt(e,18),this.state=7114,this.match(t.SUBSTR);break;case t.SUBSTRING:this.enterOuterAlt(e,19),this.state=7115,this.match(t.SUBSTRING);break;case t.SYSDATE:this.enterOuterAlt(e,20),this.state=7116,this.match(t.SYSDATE);break;case t.TRIM:this.enterOuterAlt(e,21),this.state=7117,this.match(t.TRIM);break;case t.UTC_DATE:this.enterOuterAlt(e,22),this.state=7118,this.match(t.UTC_DATE);break;case t.UTC_TIME:this.enterOuterAlt(e,23),this.state=7119,this.match(t.UTC_TIME);break;case t.UTC_TIMESTAMP:this.enterOuterAlt(e,24),this.state=7120,this.match(t.UTC_TIMESTAMP);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}passwordFunctionClause(){let e,s=new OH(this.context,this.state);this.enterRule(s,710,t.RULE_passwordFunctionClause);try{this.enterOuterAlt(s,1),this.state=7123,s._functionName=this.tokenStream.LT(1),e=this.tokenStream.LA(1),535===e||551===e?(this.errorHandler.reportMatch(this),this.consume()):s._functionName=this.errorHandler.recoverInline(this),this.state=7124,this.match(t.LR_BRACKET),this.state=7125,this.functionArg(),this.state=7126,this.match(t.RR_BRACKET)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}functionArgs(){let e,s=new IH(this.context,this.state);this.enterRule(s,712,t.RULE_functionArgs);try{switch(this.enterOuterAlt(s,1),this.state=7132,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1033,this.context)){case 1:this.state=7128,this.constant();break;case 2:this.state=7129,this.fullColumnName();break;case 3:this.state=7130,this.functionCall();break;case 4:this.state=7131,this.expression(0)}for(this.state=7143,this.errorHandler.sync(this),e=this.tokenStream.LA(1);1135===e;){switch(this.state=7134,this.match(t.COMMA),this.state=7139,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1034,this.context)){case 1:this.state=7135,this.constant();break;case 2:this.state=7136,this.fullColumnName();break;case 3:this.state=7137,this.functionCall();break;case 4:this.state=7138,this.expression(0)}this.state=7145,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}functionArg(){let e=new uH(this.context,this.state);this.enterRule(e,714,t.RULE_functionArg);try{switch(this.state=7150,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1036,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7146,this.constant();break;case 2:this.enterOuterAlt(e,2),this.state=7147,this.fullColumnName();break;case 3:this.enterOuterAlt(e,3),this.state=7148,this.functionCall();break;case 4:this.enterOuterAlt(e,4),this.state=7149,this.expression(0)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expression(e){void 0===e&&(e=0);let s,a=this.context,r=this.state,i=new NH(this.context,r),c=i;this.enterRecursionRule(i,716,t.RULE_expression,e);try{let e;switch(this.enterOuterAlt(i,1),this.state=7163,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1038,this.context)){case 1:i=new CH(i),this.context=i,c=i,this.state=7153,i._notOperator=this.tokenStream.LT(1),s=this.tokenStream.LA(1),114===s||1127===s?(this.errorHandler.reportMatch(this),this.consume()):i._notOperator=this.errorHandler.recoverInline(this),this.state=7154,this.expression(4);break;case 2:i=new LH(i),this.context=i,c=i,this.state=7155,this.predicate(0),this.state=7156,this.match(t.IS),this.state=7158,this.errorHandler.sync(this),s=this.tokenStream.LA(1),114===s&&(this.state=7157,this.match(t.NOT)),this.state=7160,i._testValue=this.tokenStream.LT(1),s=this.tokenStream.LA(1),63===s||178===s||662===s?(this.errorHandler.reportMatch(this),this.consume()):i._testValue=this.errorHandler.recoverInline(this);break;case 3:i=new PH(i),this.context=i,c=i,this.state=7162,this.predicate(0)}for(this.context.stop=this.tokenStream.LT(-1),this.state=7171,this.errorHandler.sync(this),e=this.interpreter.adaptivePredict(this.tokenStream,1039,this.context);2!==e&&e!==ja.INVALID_ALT_NUMBER;){if(1===e){if(null!=this.parseListeners&&this.triggerExitRuleEvent(),c=i,i=new _H(new NH(a,r)),this.pushNewRecursionContext(i,716,t.RULE_expression),this.state=7165,!this.precpred(this.context,3))throw this.createFailedPredicateException("this.precpred(this.context, 3)");this.state=7166,this.logicalOperator(),this.state=7167,this.expression(4)}this.state=7173,this.errorHandler.sync(this),e=this.interpreter.adaptivePredict(this.tokenStream,1039,this.context)}}catch(n){if(!(n instanceof jr))throw n;this.errorHandler.reportError(this,n),this.errorHandler.recover(this,n)}finally{this.unrollRecursionContexts(a)}return i}predicate(e){void 0===e&&(e=0);let s,a=this.context,r=this.state,i=new MH(this.context,r),c=i,n=718;this.enterRecursionRule(i,718,t.RULE_predicate,e);try{let e;for(this.enterOuterAlt(i,1),i=new UH(i),this.context=i,c=i,this.state=7175,this.expressionAtom(0),this.context.stop=this.tokenStream.LT(-1),this.state=7241,this.errorHandler.sync(this),e=this.interpreter.adaptivePredict(this.tokenStream,1047,this.context);2!==e&&e!==ja.INVALID_ALT_NUMBER;){if(1===e)switch(null!=this.parseListeners&&this.triggerExitRuleEvent(),c=i,this.state=7239,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1046,this.context)){case 1:if(i=new pH(new MH(a,r)),i._left=c,this.pushNewRecursionContext(i,n,t.RULE_predicate),this.state=7177,!this.precpred(this.context,8))throw this.createFailedPredicateException("this.precpred(this.context, 8)");this.state=7178,this.comparisonOperator(),this.state=7179,i._right=this.predicate(9);break;case 2:if(i=new xH(new MH(a,r)),this.pushNewRecursionContext(i,n,t.RULE_predicate),this.state=7181,!this.precpred(this.context,6))throw this.createFailedPredicateException("this.precpred(this.context, 6)");this.state=7183,this.errorHandler.sync(this),s=this.tokenStream.LA(1),114===s&&(this.state=7182,this.match(t.NOT)),this.state=7185,this.match(t.BETWEEN),this.state=7186,this.predicate(0),this.state=7187,this.match(t.AND),this.state=7188,this.predicate(7);break;case 3:if(i=new dH(new MH(a,r)),this.pushNewRecursionContext(i,n,t.RULE_predicate),this.state=7190,!this.precpred(this.context,5))throw this.createFailedPredicateException("this.precpred(this.context, 5)");this.state=7191,this.match(t.SOUNDS),this.state=7192,this.match(t.LIKE),this.state=7193,this.predicate(6);break;case 4:if(i=new GH(new MH(a,r)),this.pushNewRecursionContext(i,n,t.RULE_predicate),this.state=7194,!this.precpred(this.context,3))throw this.createFailedPredicateException("this.precpred(this.context, 3)");this.state=7196,this.errorHandler.sync(this),s=this.tokenStream.LA(1),114===s&&(this.state=7195,this.match(t.NOT)),this.state=7198,i._regex=this.tokenStream.LT(1),s=this.tokenStream.LA(1),137===s||149===s?(this.errorHandler.reportMatch(this),this.consume()):i._regex=this.errorHandler.recoverInline(this),this.state=7199,this.predicate(4);break;case 5:if(i=new gH(new MH(a,r)),this.pushNewRecursionContext(i,n,t.RULE_predicate),this.state=7200,!this.precpred(this.context,10))throw this.createFailedPredicateException("this.precpred(this.context, 10)");switch(this.state=7202,this.errorHandler.sync(this),s=this.tokenStream.LA(1),114===s&&(this.state=7201,this.match(t.NOT)),this.state=7204,this.match(t.IN),this.state=7205,this.match(t.LR_BRACKET),this.state=7208,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1043,this.context)){case 1:this.state=7206,this.selectStatement();break;case 2:this.state=7207,this.expressions()}this.state=7210,this.match(t.RR_BRACKET);break;case 6:if(i=new kH(new MH(a,r)),this.pushNewRecursionContext(i,n,t.RULE_predicate),this.state=7212,!this.precpred(this.context,9))throw this.createFailedPredicateException("this.precpred(this.context, 9)");this.state=7213,this.match(t.IS),this.state=7214,this.nullNotnull();break;case 7:if(i=new mH(new MH(a,r)),this.pushNewRecursionContext(i,n,t.RULE_predicate),this.state=7215,!this.precpred(this.context,7))throw this.createFailedPredicateException("this.precpred(this.context, 7)");this.state=7216,this.comparisonOperator(),this.state=7217,i._quantifier=this.tokenStream.LT(1),s=this.tokenStream.LA(1),6===s||337===s||618===s?(this.errorHandler.reportMatch(this),this.consume()):i._quantifier=this.errorHandler.recoverInline(this),this.state=7218,this.match(t.LR_BRACKET),this.state=7219,this.selectStatement(),this.state=7220,this.match(t.RR_BRACKET);break;case 8:if(i=new HH(new MH(a,r)),this.pushNewRecursionContext(i,n,t.RULE_predicate),this.state=7222,!this.precpred(this.context,4))throw this.createFailedPredicateException("this.precpred(this.context, 4)");if(1===(this.state=7224,this.errorHandler.sync(this),s=this.tokenStream.LA(1),114===s&&(this.state=7223,this.match(t.NOT)),this.state=7226,this.match(t.LIKE),this.state=7227,this.predicate(0),this.state=7230,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1045,this.context)))this.state=7228,this.match(t.ESCAPE),this.state=7229,this.match(t.STRING_LITERAL);break;case 9:if(i=new DH(new MH(a,r)),this.pushNewRecursionContext(i,n,t.RULE_predicate),this.state=7232,!this.precpred(this.context,2))throw this.createFailedPredicateException("this.precpred(this.context, 2)");this.state=7233,this.match(t.MEMBER),this.state=7234,this.match(t.OF),this.state=7235,this.match(t.LR_BRACKET),this.state=7236,this.predicate(0),this.state=7237,this.match(t.RR_BRACKET)}this.state=7243,this.errorHandler.sync(this),e=this.interpreter.adaptivePredict(this.tokenStream,1047,this.context)}}catch(h){if(!(h instanceof jr))throw h;this.errorHandler.reportError(this,h),this.errorHandler.recover(this,h)}finally{this.unrollRecursionContexts(a)}return i}expressionAtom(e){void 0===e&&(e=0);let s,a=this.context,r=this.state,i=new FH(this.context,r),c=i,n=720;this.enterRecursionRule(i,720,t.RULE_expressionAtom,e);try{let e;switch(this.enterOuterAlt(i,1),this.state=7292,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1050,this.context)){case 1:i=new QH(i),this.context=i,c=i,this.state=7245,this.constant();break;case 2:i=new qH(i),this.context=i,c=i,this.state=7246,this.fullColumnName();break;case 3:i=new JH(i),this.context=i,c=i,this.state=7247,this.functionCall();break;case 4:i=new fH(i),this.context=i,c=i,this.state=7248,this.mysqlVariable();break;case 5:i=new vH(i),this.context=i,c=i,this.state=7249,this.unaryOperator(),this.state=7250,this.expressionAtom(12);break;case 6:i=new ZH(i),this.context=i,c=i,this.state=7252,this.match(t.BINARY),this.state=7253,this.expressionAtom(11);break;case 7:i=new yH(i),this.context=i,c=i,this.state=7254,this.match(t.LOCAL_ID),this.state=7255,this.match(t.VAR_ASSIGN),this.state=7256,this.expressionAtom(10);break;case 8:for(i=new YH(i),this.context=i,c=i,this.state=7257,this.match(t.LR_BRACKET),this.state=7258,this.expression(0),this.state=7263,this.errorHandler.sync(this),s=this.tokenStream.LA(1);1135===s;)this.state=7259,this.match(t.COMMA),this.state=7260,this.expression(0),this.state=7265,this.errorHandler.sync(this),s=this.tokenStream.LA(1);this.state=7266,this.match(t.RR_BRACKET);break;case 9:i=new wH(i),this.context=i,c=i,this.state=7268,this.match(t.ROW),this.state=7269,this.match(t.LR_BRACKET),this.state=7270,this.expression(0),this.state=7273,this.errorHandler.sync(this),s=this.tokenStream.LA(1);do{this.state=7271,this.match(t.COMMA),this.state=7272,this.expression(0),this.state=7275,this.errorHandler.sync(this),s=this.tokenStream.LA(1)}while(1135===s);this.state=7277,this.match(t.RR_BRACKET);break;case 10:i=new WH(i),this.context=i,c=i,this.state=7279,this.match(t.EXISTS),this.state=7280,this.match(t.LR_BRACKET),this.state=7281,this.selectStatement(),this.state=7282,this.match(t.RR_BRACKET);break;case 11:i=new KH(i),this.context=i,c=i,this.state=7284,this.match(t.LR_BRACKET),this.state=7285,this.selectStatement(),this.state=7286,this.match(t.RR_BRACKET);break;case 12:i=new VH(i),this.context=i,c=i,this.state=7288,this.match(t.INTERVAL),this.state=7289,this.expression(0),this.state=7290,this.intervalType()}for(this.context.stop=this.tokenStream.LT(-1),this.state=7315,this.errorHandler.sync(this),e=this.interpreter.adaptivePredict(this.tokenStream,1052,this.context);2!==e&&e!==ja.INVALID_ALT_NUMBER;){if(1===e)switch(null!=this.parseListeners&&this.triggerExitRuleEvent(),c=i,this.state=7313,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1051,this.context)){case 1:if(i=new jH(new FH(a,r)),i._left=c,this.pushNewRecursionContext(i,n,t.RULE_expressionAtom),this.state=7294,!this.precpred(this.context,4))throw this.createFailedPredicateException("this.precpred(this.context, 4)");this.state=7295,this.bitOperator(),this.state=7296,i._right=this.expressionAtom(5);break;case 2:if(i=new bH(new FH(a,r)),i._left=c,this.pushNewRecursionContext(i,n,t.RULE_expressionAtom),this.state=7298,!this.precpred(this.context,3))throw this.createFailedPredicateException("this.precpred(this.context, 3)");this.state=7299,this.multOperator(),this.state=7300,i._right=this.expressionAtom(4);break;case 3:if(i=new bH(new FH(a,r)),i._left=c,this.pushNewRecursionContext(i,n,t.RULE_expressionAtom),this.state=7302,!this.precpred(this.context,2))throw this.createFailedPredicateException("this.precpred(this.context, 2)");this.state=7303,this.addOperator(),this.state=7304,i._right=this.expressionAtom(3);break;case 4:if(i=new XH(new FH(a,r)),i._left=c,this.pushNewRecursionContext(i,n,t.RULE_expressionAtom),this.state=7306,!this.precpred(this.context,1))throw this.createFailedPredicateException("this.precpred(this.context, 1)");this.state=7307,this.jsonOperator(),this.state=7308,i._right=this.expressionAtom(2);break;case 5:if(i=new BH(new FH(a,r)),this.pushNewRecursionContext(i,n,t.RULE_expressionAtom),this.state=7310,!this.precpred(this.context,14))throw this.createFailedPredicateException("this.precpred(this.context, 14)");this.state=7311,this.match(t.COLLATE),this.state=7312,this.collationName()}this.state=7317,this.errorHandler.sync(this),e=this.interpreter.adaptivePredict(this.tokenStream,1052,this.context)}}catch(h){if(!(h instanceof jr))throw h;this.errorHandler.reportError(this,h),this.errorHandler.recover(this,h)}finally{this.unrollRecursionContexts(a)}return i}unaryOperator(){let e,s=new zH(this.context,this.state);this.enterRule(s,722,t.RULE_unaryOperator);try{this.enterOuterAlt(s,1),this.state=7318,e=this.tokenStream.LA(1),114===e||!(e-1120&-32)&&1<<e-1120&387?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}comparisonOperator(){let e=new $H(this.context,this.state);this.enterRule(e,724,t.RULE_comparisonOperator);try{switch(this.state=7334,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1053,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7320,this.match(t.EQUAL_SYMBOL);break;case 2:this.enterOuterAlt(e,2),this.state=7321,this.match(t.GREATER_SYMBOL);break;case 3:this.enterOuterAlt(e,3),this.state=7322,this.match(t.LESS_SYMBOL);break;case 4:this.enterOuterAlt(e,4),this.state=7323,this.match(t.LESS_SYMBOL),this.state=7324,this.match(t.EQUAL_SYMBOL);break;case 5:this.enterOuterAlt(e,5),this.state=7325,this.match(t.GREATER_SYMBOL),this.state=7326,this.match(t.EQUAL_SYMBOL);break;case 6:this.enterOuterAlt(e,6),this.state=7327,this.match(t.LESS_SYMBOL),this.state=7328,this.match(t.GREATER_SYMBOL);break;case 7:this.enterOuterAlt(e,7),this.state=7329,this.match(t.EXCLAMATION_SYMBOL),this.state=7330,this.match(t.EQUAL_SYMBOL);break;case 8:this.enterOuterAlt(e,8),this.state=7331,this.match(t.LESS_SYMBOL),this.state=7332,this.match(t.EQUAL_SYMBOL),this.state=7333,this.match(t.GREATER_SYMBOL)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}logicalOperator(){let e=new tG(this.context,this.state);this.enterRule(e,726,t.RULE_logicalOperator);try{switch(this.state=7343,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AND:this.enterOuterAlt(e,1),this.state=7336,this.match(t.AND);break;case t.BIT_AND_OP:this.enterOuterAlt(e,2),this.state=7337,this.match(t.BIT_AND_OP),this.state=7338,this.match(t.BIT_AND_OP);break;case t.XOR:this.enterOuterAlt(e,3),this.state=7339,this.match(t.XOR);break;case t.OR:this.enterOuterAlt(e,4),this.state=7340,this.match(t.OR);break;case t.BIT_OR_OP:this.enterOuterAlt(e,5),this.state=7341,this.match(t.BIT_OR_OP),this.state=7342,this.match(t.BIT_OR_OP);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}bitOperator(){let e=new eG(this.context,this.state);this.enterRule(e,728,t.RULE_bitOperator);try{switch(this.state=7352,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LESS_SYMBOL:this.enterOuterAlt(e,1),this.state=7345,this.match(t.LESS_SYMBOL),this.state=7346,this.match(t.LESS_SYMBOL);break;case t.GREATER_SYMBOL:this.enterOuterAlt(e,2),this.state=7347,this.match(t.GREATER_SYMBOL),this.state=7348,this.match(t.GREATER_SYMBOL);break;case t.BIT_AND_OP:this.enterOuterAlt(e,3),this.state=7349,this.match(t.BIT_AND_OP);break;case t.BIT_XOR_OP:this.enterOuterAlt(e,4),this.state=7350,this.match(t.BIT_XOR_OP);break;case t.BIT_OR_OP:this.enterOuterAlt(e,5),this.state=7351,this.match(t.BIT_OR_OP);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}multOperator(){let e,s=new sG(this.context,this.state);this.enterRule(s,730,t.RULE_multOperator);try{this.enterOuterAlt(s,1),this.state=7354,e=this.tokenStream.LA(1),!(e-1117&-32)&&1<<e-1117&103?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}addOperator(){let e,s=new aG(this.context,this.state);this.enterRule(s,732,t.RULE_addOperator);try{this.enterOuterAlt(s,1),this.state=7356,e=this.tokenStream.LA(1),1120===e||1121===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}jsonOperator(){let e=new rG(this.context,this.state);this.enterRule(e,734,t.RULE_jsonOperator);try{switch(this.state=7363,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,1056,this.context)){case 1:this.enterOuterAlt(e,1),this.state=7358,this.match(t.MINUS),this.state=7359,this.match(t.GREATER_SYMBOL);break;case 2:this.enterOuterAlt(e,2),this.state=7360,this.match(t.MINUS),this.state=7361,this.match(t.GREATER_SYMBOL),this.state=7362,this.match(t.GREATER_SYMBOL)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}charsetNameBase(){let e,s=new iG(this.context,this.state);this.enterRule(s,736,t.RULE_charsetNameBase);try{this.enterOuterAlt(s,1),this.state=7365,e=this.tokenStream.LA(1),226===e||!(e-746&-32)&&1<<e-746&4294967295||!(e-778&-32)&&1<<e-778&511?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}transactionLevelBase(){let e,s=new cG(this.context,this.state);this.enterRule(s,738,t.RULE_transactionLevelBase);try{this.enterOuterAlt(s,1),this.state=7367,e=this.tokenStream.LA(1),!(e-799&-32)&&1<<e-799&15?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}privilegesBase(){let e,s=new nG(this.context,this.state);this.enterRule(s,740,t.RULE_privilegesBase);try{this.enterOuterAlt(s,1),this.state=7369,e=this.tokenStream.LA(1),!(e-708&-32)&&1<<e-708&2181955587||740===e||742===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}intervalTypeBase(){let e,s=new hG(this.context,this.state);this.enterRule(s,742,t.RULE_intervalTypeBase);try{this.enterOuterAlt(s,1),this.state=7371,e=this.tokenStream.LA(1),!(e-689&-32)&&1<<e-689&255?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}dataTypeBase(){let e,s=new EG(this.context,this.state);this.enterRule(s,744,t.RULE_dataTypeBase);try{this.enterOuterAlt(s,1),this.state=7373,e=this.tokenStream.LA(1),!(e-217&-32)&&1<<e-217&1179679?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}keywordsCanBeId(){let e,s=new TG(this.context,this.state);this.enterRule(s,746,t.RULE_keywordsCanBeId);try{this.enterOuterAlt(s,1),this.state=7375,e=this.tokenStream.LA(1),!(-32&e)&&1<<e&537151488||!(e-35&-32)&&1<<e-35&22028421||!(e-73&-32)&&1<<e-73&2097217||!(e-117&-32)&&1<<e-117&8337||158===e||168===e||239===e||!(e-283&-32)&&1<<e-283&1069648127||!(e-332&-32)&&1<<e-332&4294967295||!(e-364&-32)&&1<<e-364&4290772991||!(e-396&-32)&&1<<e-396&4294966015||!(e-428&-32)&&1<<e-428&2139095007||!(e-460&-32)&&1<<e-460&4294967295||!(e-492&-32)&&1<<e-492&3221225471||!(e-527&-32)&&1<<e-527&4294180863||!(e-560&-32)&&1<<e-560&3221225471||!(e-592&-32)&&1<<e-592&4294934525||!(e-624&-32)&&1<<e-624&4294959103||!(e-656&-32)&&1<<e-656&4159569919||!(e-688&-32)&&1<<e-688&1641019905||!(e-720&-32)&&1<<e-720&61300511||792===e||836===e||875===e||1e3===e||1005===e||1088===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}functionNameBase(){let e,s=new oG(this.context,this.state);this.enterRule(s,748,t.RULE_functionNameBase);try{this.enterOuterAlt(s,1),this.state=7377,e=this.tokenStream.LA(1),39===e||97===e||148===e||150===e||!(e-217&-32)&&1<<e-217&23||!(e-251&-32)&&1<<e-251&4294967295||!(e-290&-32)&&1<<e-290&31983||324===e||459===e||!(e-673&-32)&&1<<e-673&16711681||736===e||!(e-803&-32)&&1<<e-803&4294967289||!(e-835&-32)&&1<<e-835&4294967293||!(e-867&-32)&&1<<e-867&4294967039||!(e-899&-32)&&1<<e-899&4294967295||!(e-931&-32)&&1<<e-931&4294967295||!(e-963&-32)&&1<<e-963&4294967295||!(e-995&-32)&&1<<e-995&4294966239||!(e-1027&-32)&&1<<e-1027&4294967295||!(e-1059&-32)&&1<<e-1059&3758096383||!(e-1091&-32)&&1<<e-1091&131071||1123===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}sempred(t,e,s){switch(e){case 358:return this.expression_sempred(t,s);case 359:return this.predicate_sempred(t,s);case 360:return this.expressionAtom_sempred(t,s)}return!0}expression_sempred(t,e){return 0!==e||this.precpred(this.context,3)}predicate_sempred(t,e){switch(e){case 1:return this.precpred(this.context,8);case 2:return this.precpred(this.context,6);case 3:return this.precpred(this.context,5);case 4:return this.precpred(this.context,3);case 5:return this.precpred(this.context,10);case 6:return this.precpred(this.context,9);case 7:return this.precpred(this.context,7);case 8:return this.precpred(this.context,4);case 9:return this.precpred(this.context,2)}return!0}expressionAtom_sempred(t,e){switch(e){case 10:return this.precpred(this.context,4);case 11:return this.precpred(this.context,3);case 12:return this.precpred(this.context,2);case 13:return this.precpred(this.context,1);case 14:return this.precpred(this.context,14)}return!0}static get _ATN(){return t.__ATN||(t.__ATN=(new fr).deserialize(t._serializedATN)),t.__ATN}get vocabulary(){return t.vocabulary}},Qi.SPACE=1,Qi.SPEC_MYSQL_COMMENT=2,Qi.COMMENT_INPUT=3,Qi.LINE_COMMENT=4,Qi.ADD=5,Qi.ALL=6,Qi.ALTER=7,Qi.ALWAYS=8,Qi.ANALYZE=9,Qi.AND=10,Qi.ARRAY=11,Qi.AS=12,Qi.ASC=13,Qi.ATTRIBUTE=14,Qi.BEFORE=15,Qi.BETWEEN=16,Qi.BOTH=17,Qi.BUCKETS=18,Qi.BY=19,Qi.CALL=20,Qi.CASCADE=21,Qi.CASE=22,Qi.CAST=23,Qi.CHANGE=24,Qi.CHARACTER=25,Qi.CHECK=26,Qi.COLLATE=27,Qi.COLUMN=28,Qi.CONDITION=29,Qi.CONSTRAINT=30,Qi.CONTINUE=31,Qi.CONVERT=32,Qi.CREATE=33,Qi.CROSS=34,Qi.CURRENT=35,Qi.CURRENT_ROLE=36,Qi.CURRENT_USER=37,Qi.CURSOR=38,Qi.DATABASE=39,Qi.DATABASES=40,Qi.DECLARE=41,Qi.DEFAULT=42,Qi.DELAYED=43,Qi.DELETE=44,Qi.DESC=45,Qi.DESCRIBE=46,Qi.DETERMINISTIC=47,Qi.DIAGNOSTICS=48,Qi.DISTINCT=49,Qi.DISTINCTROW=50,Qi.DROP=51,Qi.EACH=52,Qi.ELSE=53,Qi.ELSEIF=54,Qi.EMPTY=55,Qi.ENCLOSED=56,Qi.ENFORCED=57,Qi.ESCAPED=58,Qi.EXCEPT=59,Qi.EXISTS=60,Qi.EXIT=61,Qi.EXPLAIN=62,Qi.FALSE=63,Qi.FETCH=64,Qi.FOR=65,Qi.FORCE=66,Qi.FOREIGN=67,Qi.FROM=68,Qi.FULLTEXT=69,Qi.GENERATED=70,Qi.GET=71,Qi.GRANT=72,Qi.GROUP=73,Qi.HAVING=74,Qi.HIGH_PRIORITY=75,Qi.HISTOGRAM=76,Qi.IF=77,Qi.IGNORE=78,Qi.IGNORED=79,Qi.IN=80,Qi.INDEX=81,Qi.INFILE=82,Qi.INNER=83,Qi.INOUT=84,Qi.INSERT=85,Qi.INTERVAL=86,Qi.INTO=87,Qi.IS=88,Qi.ITERATE=89,Qi.JOIN=90,Qi.KEY=91,Qi.KEYS=92,Qi.KILL=93,Qi.LATERAL=94,Qi.LEADING=95,Qi.LEAVE=96,Qi.LEFT=97,Qi.LIKE=98,Qi.LIMIT=99,Qi.LINEAR=100,Qi.LINES=101,Qi.LOAD=102,Qi.LOCK=103,Qi.LOCKED=104,Qi.LOOP=105,Qi.LOW_PRIORITY=106,Qi.MASTER_BIND=107,Qi.MASTER_SSL_VERIFY_SERVER_CERT=108,Qi.MATCH=109,Qi.MAXVALUE=110,Qi.MINVALUE=111,Qi.MODIFIES=112,Qi.NATURAL=113,Qi.NOT=114,Qi.NO_WRITE_TO_BINLOG=115,Qi.NULL_LITERAL=116,Qi.NUMBER=117,Qi.ON=118,Qi.OPTIMIZE=119,Qi.OPTION=120,Qi.OPTIONAL=121,Qi.OPTIONALLY=122,Qi.OR=123,Qi.ORDER=124,Qi.OUT=125,Qi.OUTER=126,Qi.OUTFILE=127,Qi.OVER=128,Qi.PARTITION=129,Qi.PRIMARY=130,Qi.PROCEDURE=131,Qi.PURGE=132,Qi.RANGE=133,Qi.READ=134,Qi.READS=135,Qi.REFERENCES=136,Qi.REGEXP=137,Qi.RELEASE=138,Qi.RENAME=139,Qi.REPEAT=140,Qi.REPLACE=141,Qi.REQUIRE=142,Qi.RESIGNAL=143,Qi.RESTRICT=144,Qi.RETAIN=145,Qi.RETURN=146,Qi.REVOKE=147,Qi.RIGHT=148,Qi.RLIKE=149,Qi.SCHEMA=150,Qi.SCHEMAS=151,Qi.SELECT=152,Qi.SET=153,Qi.SEPARATOR=154,Qi.SHOW=155,Qi.SIGNAL=156,Qi.SKIP_=157,Qi.SKIP_QUERY_REWRITE=158,Qi.SPATIAL=159,Qi.SQL=160,Qi.SQLEXCEPTION=161,Qi.SQLSTATE=162,Qi.SQLWARNING=163,Qi.SQL_BIG_RESULT=164,Qi.SQL_CALC_FOUND_ROWS=165,Qi.SQL_SMALL_RESULT=166,Qi.SSL=167,Qi.STACKED=168,Qi.STARTING=169,Qi.STATEMENT=170,Qi.STRAIGHT_JOIN=171,Qi.TABLE=172,Qi.TERMINATED=173,Qi.THEN=174,Qi.TO=175,Qi.TRAILING=176,Qi.TRIGGER=177,Qi.TRUE=178,Qi.UNDO=179,Qi.UNION=180,Qi.UNIQUE=181,Qi.UNLOCK=182,Qi.UNSIGNED=183,Qi.UPDATE=184,Qi.USAGE=185,Qi.USE=186,Qi.USING=187,Qi.VALUES=188,Qi.WHEN=189,Qi.WHERE=190,Qi.WHILE=191,Qi.WITH=192,Qi.WRITE=193,Qi.XOR=194,Qi.ZEROFILL=195,Qi.TINYINT=196,Qi.SMALLINT=197,Qi.MEDIUMINT=198,Qi.MIDDLEINT=199,Qi.INT=200,Qi.INT1=201,Qi.INT2=202,Qi.INT3=203,Qi.INT4=204,Qi.INT8=205,Qi.INTEGER=206,Qi.BIGINT=207,Qi.REAL=208,Qi.DOUBLE=209,Qi.PRECISION=210,Qi.FLOAT=211,Qi.FLOAT4=212,Qi.FLOAT8=213,Qi.DECIMAL=214,Qi.DEC=215,Qi.NUMERIC=216,Qi.DATE=217,Qi.TIME=218,Qi.TIMESTAMP=219,Qi.DATETIME=220,Qi.YEAR=221,Qi.CHAR=222,Qi.VARCHAR=223,Qi.NVARCHAR=224,Qi.NATIONAL=225,Qi.BINARY=226,Qi.VARBINARY=227,Qi.TINYBLOB=228,Qi.BLOB=229,Qi.MEDIUMBLOB=230,Qi.LONG=231,Qi.LONGBLOB=232,Qi.TINYTEXT=233,Qi.TEXT=234,Qi.MEDIUMTEXT=235,Qi.LONGTEXT=236,Qi.ENUM=237,Qi.VARYING=238,Qi.SERIAL=239,Qi.YEAR_MONTH=240,Qi.DAY_HOUR=241,Qi.DAY_MINUTE=242,Qi.DAY_SECOND=243,Qi.HOUR_MINUTE=244,Qi.HOUR_SECOND=245,Qi.MINUTE_SECOND=246,Qi.SECOND_MICROSECOND=247,Qi.MINUTE_MICROSECOND=248,Qi.HOUR_MICROSECOND=249,Qi.DAY_MICROSECOND=250,Qi.JSON_ARRAY=251,Qi.JSON_ARRAYAGG=252,Qi.JSON_ARRAY_APPEND=253,Qi.JSON_ARRAY_INSERT=254,Qi.JSON_CONTAINS=255,Qi.JSON_CONTAINS_PATH=256,Qi.JSON_DEPTH=257,Qi.JSON_EXTRACT=258,Qi.JSON_INSERT=259,Qi.JSON_KEYS=260,Qi.JSON_LENGTH=261,Qi.JSON_MERGE=262,Qi.JSON_MERGE_PATCH=263,Qi.JSON_MERGE_PRESERVE=264,Qi.JSON_OBJECT=265,Qi.JSON_OBJECTAGG=266,Qi.JSON_OVERLAPS=267,Qi.JSON_PRETTY=268,Qi.JSON_QUOTE=269,Qi.JSON_REMOVE=270,Qi.JSON_REPLACE=271,Qi.JSON_SCHEMA_VALID=272,Qi.JSON_SCHEMA_VALIDATION_REPORT=273,Qi.JSON_SEARCH=274,Qi.JSON_SET=275,Qi.JSON_STORAGE_FREE=276,Qi.JSON_STORAGE_SIZE=277,Qi.JSON_TABLE=278,Qi.JSON_TYPE=279,Qi.JSON_UNQUOTE=280,Qi.JSON_VALID=281,Qi.JSON_VALUE=282,Qi.NESTED=283,Qi.ORDINALITY=284,Qi.PATH=285,Qi.AVG=286,Qi.BIT_AND=287,Qi.BIT_OR=288,Qi.BIT_XOR=289,Qi.COUNT=290,Qi.CUME_DIST=291,Qi.DENSE_RANK=292,Qi.FIRST_VALUE=293,Qi.GROUP_CONCAT=294,Qi.LAG=295,Qi.LAST_VALUE=296,Qi.LEAD=297,Qi.MAX=298,Qi.MIN=299,Qi.NTILE=300,Qi.NTH_VALUE=301,Qi.PERCENT_RANK=302,Qi.RANK=303,Qi.ROW_NUMBER=304,Qi.STD=305,Qi.STDDEV=306,Qi.STDDEV_POP=307,Qi.STDDEV_SAMP=308,Qi.SUM=309,Qi.VAR_POP=310,Qi.VAR_SAMP=311,Qi.VARIANCE=312,Qi.CURRENT_DATE=313,Qi.CURRENT_TIME=314,Qi.CURRENT_TIMESTAMP=315,Qi.LOCALTIME=316,Qi.CURDATE=317,Qi.CURTIME=318,Qi.DATE_ADD=319,Qi.DATE_SUB=320,Qi.EXTRACT=321,Qi.LOCALTIMESTAMP=322,Qi.NOW=323,Qi.POSITION=324,Qi.SUBSTR=325,Qi.SUBSTRING=326,Qi.SYSDATE=327,Qi.TRIM=328,Qi.UTC_DATE=329,Qi.UTC_TIME=330,Qi.UTC_TIMESTAMP=331,Qi.ACCOUNT=332,Qi.ACTION=333,Qi.AFTER=334,Qi.AGGREGATE=335,Qi.ALGORITHM=336,Qi.ANY=337,Qi.AT=338,Qi.AUTHORS=339,Qi.AUTOCOMMIT=340,Qi.AUTOEXTEND_SIZE=341,Qi.AUTO_INCREMENT=342,Qi.AVG_ROW_LENGTH=343,Qi.BEGIN=344,Qi.BINLOG=345,Qi.BIT=346,Qi.BLOCK=347,Qi.BOOL=348,Qi.BOOLEAN=349,Qi.BTREE=350,Qi.CACHE=351,Qi.CASCADED=352,Qi.CHAIN=353,Qi.CHANGED=354,Qi.CHANNEL=355,Qi.CHECKSUM=356,Qi.PAGE_CHECKSUM=357,Qi.CIPHER=358,Qi.CLASS_ORIGIN=359,Qi.CLIENT=360,Qi.CLOSE=361,Qi.CLUSTERING=362,Qi.COALESCE=363,Qi.CODE=364,Qi.COLUMNS=365,Qi.COLUMN_FORMAT=366,Qi.COLUMN_NAME=367,Qi.COMMENT=368,Qi.COMMIT=369,Qi.COMPACT=370,Qi.COMPLETION=371,Qi.COMPRESSED=372,Qi.COMPRESSION=373,Qi.CONCURRENT=374,Qi.CONNECT=375,Qi.CONNECTION=376,Qi.CONSISTENT=377,Qi.CONSTRAINT_CATALOG=378,Qi.CONSTRAINT_SCHEMA=379,Qi.CONSTRAINT_NAME=380,Qi.CONTAINS=381,Qi.CONTEXT=382,Qi.CONTRIBUTORS=383,Qi.COPY=384,Qi.CPU=385,Qi.CYCLE=386,Qi.CURSOR_NAME=387,Qi.DATA=388,Qi.DATAFILE=389,Qi.DEALLOCATE=390,Qi.DEFAULT_AUTH=391,Qi.DEFINER=392,Qi.DELAY_KEY_WRITE=393,Qi.DES_KEY_FILE=394,Qi.DIRECTORY=395,Qi.DISABLE=396,Qi.DISCARD=397,Qi.DISK=398,Qi.DO=399,Qi.DUMPFILE=400,Qi.DUPLICATE=401,Qi.DYNAMIC=402,Qi.ENABLE=403,Qi.ENCRYPTED=404,Qi.ENCRYPTION=405,Qi.ENCRYPTION_KEY_ID=406,Qi.END=407,Qi.ENDS=408,Qi.ENGINE=409,Qi.ENGINES=410,Qi.ERROR=411,Qi.ERRORS=412,Qi.ESCAPE=413,Qi.EVEN=414,Qi.EVENT=415,Qi.EVENTS=416,Qi.EVERY=417,Qi.EXCHANGE=418,Qi.EXCLUSIVE=419,Qi.EXPIRE=420,Qi.EXPORT=421,Qi.EXTENDED=422,Qi.EXTENT_SIZE=423,Qi.FAILED_LOGIN_ATTEMPTS=424,Qi.FAST=425,Qi.FAULTS=426,Qi.FIELDS=427,Qi.FILE_BLOCK_SIZE=428,Qi.FILTER=429,Qi.FIRST=430,Qi.FIXED=431,Qi.FLUSH=432,Qi.FOLLOWING=433,Qi.FOLLOWS=434,Qi.FOUND=435,Qi.FULL=436,Qi.FUNCTION=437,Qi.GENERAL=438,Qi.GLOBAL=439,Qi.GRANTS=440,Qi.GROUP_REPLICATION=441,Qi.HANDLER=442,Qi.HASH=443,Qi.HELP=444,Qi.HISTORY=445,Qi.HOST=446,Qi.HOSTS=447,Qi.IDENTIFIED=448,Qi.IGNORE_SERVER_IDS=449,Qi.IMPORT=450,Qi.INCREMENT=451,Qi.INDEXES=452,Qi.INITIAL_SIZE=453,Qi.INPLACE=454,Qi.INSERT_METHOD=455,Qi.INSTALL=456,Qi.INSTANCE=457,Qi.INSTANT=458,Qi.INVISIBLE=459,Qi.INVOKER=460,Qi.IO=461,Qi.IO_THREAD=462,Qi.IPC=463,Qi.ISOLATION=464,Qi.ISSUER=465,Qi.JSON=466,Qi.KEY_BLOCK_SIZE=467,Qi.LANGUAGE=468,Qi.LAST=469,Qi.LEAVES=470,Qi.LESS=471,Qi.LEVEL=472,Qi.LIST=473,Qi.LOCAL=474,Qi.LOGFILE=475,Qi.LOGS=476,Qi.MASTER=477,Qi.MASTER_AUTO_POSITION=478,Qi.MASTER_CONNECT_RETRY=479,Qi.MASTER_DELAY=480,Qi.MASTER_HEARTBEAT_PERIOD=481,Qi.MASTER_HOST=482,Qi.MASTER_LOG_FILE=483,Qi.MASTER_LOG_POS=484,Qi.MASTER_PASSWORD=485,Qi.MASTER_PORT=486,Qi.MASTER_RETRY_COUNT=487,Qi.MASTER_SSL=488,Qi.MASTER_SSL_CA=489,Qi.MASTER_SSL_CAPATH=490,Qi.MASTER_SSL_CERT=491,Qi.MASTER_SSL_CIPHER=492,Qi.MASTER_SSL_CRL=493,Qi.MASTER_SSL_CRLPATH=494,Qi.MASTER_SSL_KEY=495,Qi.MASTER_TLS_VERSION=496,Qi.MASTER_USER=497,Qi.MAX_CONNECTIONS_PER_HOUR=498,Qi.MAX_QUERIES_PER_HOUR=499,Qi.MAX_ROWS=500,Qi.MAX_SIZE=501,Qi.MAX_UPDATES_PER_HOUR=502,Qi.MAX_USER_CONNECTIONS=503,Qi.MEDIUM=504,Qi.MEMBER=505,Qi.MERGE=506,Qi.MESSAGE_TEXT=507,Qi.MID=508,Qi.MIGRATE=509,Qi.MIN_ROWS=510,Qi.MODE=511,Qi.MODIFY=512,Qi.MUTEX=513,Qi.MYSQL=514,Qi.MYSQL_ERRNO=515,Qi.NAME=516,Qi.NAMES=517,Qi.NCHAR=518,Qi.NEVER=519,Qi.NEXT=520,Qi.NO=521,Qi.NOCACHE=522,Qi.NOCOPY=523,Qi.NOCYCLE=524,Qi.NOMAXVALUE=525,Qi.NOMINVALUE=526,Qi.NOWAIT=527,Qi.NODEGROUP=528,Qi.NONE=529,Qi.ODBC=530,Qi.OFFLINE=531,Qi.OFFSET=532,Qi.OF=533,Qi.OJ=534,Qi.OLD_PASSWORD=535,Qi.ONE=536,Qi.ONLINE=537,Qi.ONLY=538,Qi.OPEN=539,Qi.OPTIMIZER_COSTS=540,Qi.OPTIONS=541,Qi.OWNER=542,Qi.PACK_KEYS=543,Qi.PAGE=544,Qi.PAGE_COMPRESSED=545,Qi.PAGE_COMPRESSION_LEVEL=546,Qi.PARSER=547,Qi.PARTIAL=548,Qi.PARTITIONING=549,Qi.PARTITIONS=550,Qi.PASSWORD=551,Qi.PASSWORD_LOCK_TIME=552,Qi.PHASE=553,Qi.PLUGIN=554,Qi.PLUGIN_DIR=555,Qi.PLUGINS=556,Qi.PORT=557,Qi.PRECEDES=558,Qi.PRECEDING=559,Qi.PREPARE=560,Qi.PRESERVE=561,Qi.PREV=562,Qi.PROCESSLIST=563,Qi.PROFILE=564,Qi.PROFILES=565,Qi.PROXY=566,Qi.QUERY=567,Qi.QUICK=568,Qi.REBUILD=569,Qi.RECOVER=570,Qi.RECURSIVE=571,Qi.REDO_BUFFER_SIZE=572,Qi.REDUNDANT=573,Qi.RELAY=574,Qi.RELAY_LOG_FILE=575,Qi.RELAY_LOG_POS=576,Qi.RELAYLOG=577,Qi.REMOVE=578,Qi.REORGANIZE=579,Qi.REPAIR=580,Qi.REPLICATE_DO_DB=581,Qi.REPLICATE_DO_TABLE=582,Qi.REPLICATE_IGNORE_DB=583,Qi.REPLICATE_IGNORE_TABLE=584,Qi.REPLICATE_REWRITE_DB=585,Qi.REPLICATE_WILD_DO_TABLE=586,Qi.REPLICATE_WILD_IGNORE_TABLE=587,Qi.REPLICATION=588,Qi.RESET=589,Qi.RESTART=590,Qi.RESUME=591,Qi.RETURNED_SQLSTATE=592,Qi.RETURNING=593,Qi.RETURNS=594,Qi.REUSE=595,Qi.ROLE=596,Qi.ROLLBACK=597,Qi.ROLLUP=598,Qi.ROTATE=599,Qi.ROW=600,Qi.ROWS=601,Qi.ROW_FORMAT=602,Qi.RTREE=603,Qi.SAVEPOINT=604,Qi.SCHEDULE=605,Qi.SECURITY=606,Qi.SEQUENCE=607,Qi.SERVER=608,Qi.SESSION=609,Qi.SHARE=610,Qi.SHARED=611,Qi.SIGNED=612,Qi.SIMPLE=613,Qi.SLAVE=614,Qi.SLOW=615,Qi.SNAPSHOT=616,Qi.SOCKET=617,Qi.SOME=618,Qi.SONAME=619,Qi.SOUNDS=620,Qi.SOURCE=621,Qi.SQL_AFTER_GTIDS=622,Qi.SQL_AFTER_MTS_GAPS=623,Qi.SQL_BEFORE_GTIDS=624,Qi.SQL_BUFFER_RESULT=625,Qi.SQL_CACHE=626,Qi.SQL_NO_CACHE=627,Qi.SQL_THREAD=628,Qi.START=629,Qi.STARTS=630,Qi.STATS_AUTO_RECALC=631,Qi.STATS_PERSISTENT=632,Qi.STATS_SAMPLE_PAGES=633,Qi.STATUS=634,Qi.STOP=635,Qi.STORAGE=636,Qi.STORED=637,Qi.STRING=638,Qi.SUBCLASS_ORIGIN=639,Qi.SUBJECT=640,Qi.SUBPARTITION=641,Qi.SUBPARTITIONS=642,Qi.SUSPEND=643,Qi.SWAPS=644,Qi.SWITCHES=645,Qi.TABLE_NAME=646,Qi.TABLESPACE=647,Qi.TABLE_TYPE=648,Qi.TEMPORARY=649,Qi.TEMPTABLE=650,Qi.THAN=651,Qi.TRADITIONAL=652,Qi.TRANSACTION=653,Qi.TRANSACTIONAL=654,Qi.TRIGGERS=655,Qi.TRUNCATE=656,Qi.UNBOUNDED=657,Qi.UNDEFINED=658,Qi.UNDOFILE=659,Qi.UNDO_BUFFER_SIZE=660,Qi.UNINSTALL=661,Qi.UNKNOWN=662,Qi.UNTIL=663,Qi.UPGRADE=664,Qi.USER=665,Qi.USE_FRM=666,Qi.USER_RESOURCES=667,Qi.VALIDATION=668,Qi.VALUE=669,Qi.VARIABLES=670,Qi.VIEW=671,Qi.VIRTUAL=672,Qi.VISIBLE=673,Qi.WAIT=674,Qi.WARNINGS=675,Qi.WINDOW=676,Qi.WITHOUT=677,Qi.WORK=678,Qi.WRAPPER=679,Qi.X509=680,Qi.XA=681,Qi.XML=682,Qi.YES=683,Qi.EUR=684,Qi.USA=685,Qi.JIS=686,Qi.ISO=687,Qi.INTERNAL=688,Qi.QUARTER=689,Qi.MONTH=690,Qi.DAY=691,Qi.HOUR=692,Qi.MINUTE=693,Qi.WEEK=694,Qi.SECOND=695,Qi.MICROSECOND=696,Qi.ADMIN=697,Qi.APPLICATION_PASSWORD_ADMIN=698,Qi.AUDIT_ABORT_EXEMPT=699,Qi.AUDIT_ADMIN=700,Qi.AUTHENTICATION_POLICY_ADMIN=701,Qi.BACKUP_ADMIN=702,Qi.BINLOG_ADMIN=703,Qi.BINLOG_ENCRYPTION_ADMIN=704,Qi.CLONE_ADMIN=705,Qi.CONNECTION_ADMIN=706,Qi.ENCRYPTION_KEY_ADMIN=707,Qi.EXECUTE=708,Qi.FILE=709,Qi.FIREWALL_ADMIN=710,Qi.FIREWALL_EXEMPT=711,Qi.FIREWALL_USER=712,Qi.FLUSH_OPTIMIZER_COSTS=713,Qi.FLUSH_STATUS=714,Qi.FLUSH_TABLES=715,Qi.FLUSH_USER_RESOURCES=716,Qi.GROUP_REPLICATION_ADMIN=717,Qi.INNODB_REDO_LOG_ARCHIVE=718,Qi.INNODB_REDO_LOG_ENABLE=719,Qi.INVOKE=720,Qi.LAMBDA=721,Qi.NDB_STORED_USER=722,Qi.PASSWORDLESS_USER_ADMIN=723,Qi.PERSIST_RO_VARIABLES_ADMIN=724,Qi.PRIVILEGES=725,Qi.PROCESS=726,Qi.RELOAD=727,Qi.REPLICATION_APPLIER=728,Qi.REPLICATION_SLAVE_ADMIN=729,Qi.RESOURCE_GROUP_ADMIN=730,Qi.RESOURCE_GROUP_USER=731,Qi.ROLE_ADMIN=732,Qi.ROUTINE=733,Qi.S3=734,Qi.SERVICE_CONNECTION_ADMIN=735,Qi.SESSION_VARIABLES_ADMIN=736,Qi.SET_USER_ID=737,Qi.SHOW_ROUTINE=738,Qi.SHUTDOWN=739,Qi.SUPER=740,Qi.SYSTEM_VARIABLES_ADMIN=741,Qi.TABLES=742,Qi.TABLE_ENCRYPTION_ADMIN=743,Qi.VERSION_TOKEN_ADMIN=744,Qi.XA_RECOVER_ADMIN=745,Qi.ARMSCII8=746,Qi.ASCII=747,Qi.BIG5=748,Qi.CP1250=749,Qi.CP1251=750,Qi.CP1256=751,Qi.CP1257=752,Qi.CP850=753,Qi.CP852=754,Qi.CP866=755,Qi.CP932=756,Qi.DEC8=757,Qi.EUCJPMS=758,Qi.EUCKR=759,Qi.GB18030=760,Qi.GB2312=761,Qi.GBK=762,Qi.GEOSTD8=763,Qi.GREEK=764,Qi.HEBREW=765,Qi.HP8=766,Qi.KEYBCS2=767,Qi.KOI8R=768,Qi.KOI8U=769,Qi.LATIN1=770,Qi.LATIN2=771,Qi.LATIN5=772,Qi.LATIN7=773,Qi.MACCE=774,Qi.MACROMAN=775,Qi.SJIS=776,Qi.SWE7=777,Qi.TIS620=778,Qi.UCS2=779,Qi.UJIS=780,Qi.UTF16=781,Qi.UTF16LE=782,Qi.UTF32=783,Qi.UTF8=784,Qi.UTF8MB3=785,Qi.UTF8MB4=786,Qi.ARCHIVE=787,Qi.BLACKHOLE=788,Qi.CSV=789,Qi.FEDERATED=790,Qi.INNODB=791,Qi.MEMORY=792,Qi.MRG_MYISAM=793,Qi.MYISAM=794,Qi.NDB=795,Qi.NDBCLUSTER=796,Qi.PERFORMANCE_SCHEMA=797,Qi.TOKUDB=798,Qi.REPEATABLE=799,Qi.COMMITTED=800,Qi.UNCOMMITTED=801,Qi.SERIALIZABLE=802,Qi.GEOMETRYCOLLECTION=803,Qi.GEOMCOLLECTION=804,Qi.GEOMETRY=805,Qi.LINESTRING=806,Qi.MULTILINESTRING=807,Qi.MULTIPOINT=808,Qi.MULTIPOLYGON=809,Qi.POINT=810,Qi.POLYGON=811,Qi.ABS=812,Qi.ACOS=813,Qi.ADDDATE=814,Qi.ADDTIME=815,Qi.AES_DECRYPT=816,Qi.AES_ENCRYPT=817,Qi.AREA=818,Qi.ASBINARY=819,Qi.ASIN=820,Qi.ASTEXT=821,Qi.ASWKB=822,Qi.ASWKT=823,Qi.ASYMMETRIC_DECRYPT=824,Qi.ASYMMETRIC_DERIVE=825,Qi.ASYMMETRIC_ENCRYPT=826,Qi.ASYMMETRIC_SIGN=827,Qi.ASYMMETRIC_VERIFY=828,Qi.ATAN=829,Qi.ATAN2=830,Qi.BENCHMARK=831,Qi.BIN=832,Qi.BIT_COUNT=833,Qi.BIT_LENGTH=834,Qi.BUFFER=835,Qi.CATALOG_NAME=836,Qi.CEIL=837,Qi.CEILING=838,Qi.CENTROID=839,Qi.CHARACTER_LENGTH=840,Qi.CHARSET=841,Qi.CHAR_LENGTH=842,Qi.COERCIBILITY=843,Qi.COLLATION=844,Qi.COMPRESS=845,Qi.CONCAT=846,Qi.CONCAT_WS=847,Qi.CONNECTION_ID=848,Qi.CONV=849,Qi.CONVERT_TZ=850,Qi.COS=851,Qi.COT=852,Qi.CRC32=853,Qi.CREATE_ASYMMETRIC_PRIV_KEY=854,Qi.CREATE_ASYMMETRIC_PUB_KEY=855,Qi.CREATE_DH_PARAMETERS=856,Qi.CREATE_DIGEST=857,Qi.CROSSES=858,Qi.DATEDIFF=859,Qi.DATE_FORMAT=860,Qi.DAYNAME=861,Qi.DAYOFMONTH=862,Qi.DAYOFWEEK=863,Qi.DAYOFYEAR=864,Qi.DECODE=865,Qi.DEGREES=866,Qi.DES_DECRYPT=867,Qi.DES_ENCRYPT=868,Qi.DIMENSION=869,Qi.DISJOINT=870,Qi.ELT=871,Qi.ENCODE=872,Qi.ENCRYPT=873,Qi.ENDPOINT=874,Qi.ENGINE_ATTRIBUTE=875,Qi.ENVELOPE=876,Qi.EQUALS=877,Qi.EXP=878,Qi.EXPORT_SET=879,Qi.EXTERIORRING=880,Qi.EXTRACTVALUE=881,Qi.FIELD=882,Qi.FIND_IN_SET=883,Qi.FLOOR=884,Qi.FORMAT=885,Qi.FOUND_ROWS=886,Qi.FROM_BASE64=887,Qi.FROM_DAYS=888,Qi.FROM_UNIXTIME=889,Qi.GEOMCOLLFROMTEXT=890,Qi.GEOMCOLLFROMWKB=891,Qi.GEOMETRYCOLLECTIONFROMTEXT=892,Qi.GEOMETRYCOLLECTIONFROMWKB=893,Qi.GEOMETRYFROMTEXT=894,Qi.GEOMETRYFROMWKB=895,Qi.GEOMETRYN=896,Qi.GEOMETRYTYPE=897,Qi.GEOMFROMTEXT=898,Qi.GEOMFROMWKB=899,Qi.GET_FORMAT=900,Qi.GET_LOCK=901,Qi.GLENGTH=902,Qi.GREATEST=903,Qi.GTID_SUBSET=904,Qi.GTID_SUBTRACT=905,Qi.HEX=906,Qi.IFNULL=907,Qi.INET6_ATON=908,Qi.INET6_NTOA=909,Qi.INET_ATON=910,Qi.INET_NTOA=911,Qi.INSTR=912,Qi.INTERIORRINGN=913,Qi.INTERSECTS=914,Qi.ISCLOSED=915,Qi.ISEMPTY=916,Qi.ISNULL=917,Qi.ISSIMPLE=918,Qi.IS_FREE_LOCK=919,Qi.IS_IPV4=920,Qi.IS_IPV4_COMPAT=921,Qi.IS_IPV4_MAPPED=922,Qi.IS_IPV6=923,Qi.IS_USED_LOCK=924,Qi.LAST_INSERT_ID=925,Qi.LCASE=926,Qi.LEAST=927,Qi.LENGTH=928,Qi.LINEFROMTEXT=929,Qi.LINEFROMWKB=930,Qi.LINESTRINGFROMTEXT=931,Qi.LINESTRINGFROMWKB=932,Qi.LN=933,Qi.LOAD_FILE=934,Qi.LOCATE=935,Qi.LOG=936,Qi.LOG10=937,Qi.LOG2=938,Qi.LOWER=939,Qi.LPAD=940,Qi.LTRIM=941,Qi.MAKEDATE=942,Qi.MAKETIME=943,Qi.MAKE_SET=944,Qi.MASTER_POS_WAIT=945,Qi.MBRCONTAINS=946,Qi.MBRDISJOINT=947,Qi.MBREQUAL=948,Qi.MBRINTERSECTS=949,Qi.MBROVERLAPS=950,Qi.MBRTOUCHES=951,Qi.MBRWITHIN=952,Qi.MD5=953,Qi.MLINEFROMTEXT=954,Qi.MLINEFROMWKB=955,Qi.MONTHNAME=956,Qi.MPOINTFROMTEXT=957,Qi.MPOINTFROMWKB=958,Qi.MPOLYFROMTEXT=959,Qi.MPOLYFROMWKB=960,Qi.MULTILINESTRINGFROMTEXT=961,Qi.MULTILINESTRINGFROMWKB=962,Qi.MULTIPOINTFROMTEXT=963,Qi.MULTIPOINTFROMWKB=964,Qi.MULTIPOLYGONFROMTEXT=965,Qi.MULTIPOLYGONFROMWKB=966,Qi.NAME_CONST=967,Qi.NULLIF=968,Qi.NUMGEOMETRIES=969,Qi.NUMINTERIORRINGS=970,Qi.NUMPOINTS=971,Qi.OCT=972,Qi.OCTET_LENGTH=973,Qi.ORD=974,Qi.OVERLAPS=975,Qi.PERIOD_ADD=976,Qi.PERIOD_DIFF=977,Qi.PI=978,Qi.POINTFROMTEXT=979,Qi.POINTFROMWKB=980,Qi.POINTN=981,Qi.POLYFROMTEXT=982,Qi.POLYFROMWKB=983,Qi.POLYGONFROMTEXT=984,Qi.POLYGONFROMWKB=985,Qi.POW=986,Qi.POWER=987,Qi.QUOTE=988,Qi.RADIANS=989,Qi.RAND=990,Qi.RANDOM=991,Qi.RANDOM_BYTES=992,Qi.RELEASE_LOCK=993,Qi.REVERSE=994,Qi.ROUND=995,Qi.ROW_COUNT=996,Qi.RPAD=997,Qi.RTRIM=998,Qi.SEC_TO_TIME=999,Qi.SECONDARY_ENGINE_ATTRIBUTE=1e3,Qi.SESSION_USER=1001,Qi.SHA=1002,Qi.SHA1=1003,Qi.SHA2=1004,Qi.SCHEMA_NAME=1005,Qi.SIGN=1006,Qi.SIN=1007,Qi.SLEEP=1008,Qi.SOUNDEX=1009,Qi.SQL_THREAD_WAIT_AFTER_GTIDS=1010,Qi.SQRT=1011,Qi.SRID=1012,Qi.STARTPOINT=1013,Qi.STRCMP=1014,Qi.STR_TO_DATE=1015,Qi.ST_AREA=1016,Qi.ST_ASBINARY=1017,Qi.ST_ASTEXT=1018,Qi.ST_ASWKB=1019,Qi.ST_ASWKT=1020,Qi.ST_BUFFER=1021,Qi.ST_CENTROID=1022,Qi.ST_CONTAINS=1023,Qi.ST_CROSSES=1024,Qi.ST_DIFFERENCE=1025,Qi.ST_DIMENSION=1026,Qi.ST_DISJOINT=1027,Qi.ST_DISTANCE=1028,Qi.ST_ENDPOINT=1029,Qi.ST_ENVELOPE=1030,Qi.ST_EQUALS=1031,Qi.ST_EXTERIORRING=1032,Qi.ST_GEOMCOLLFROMTEXT=1033,Qi.ST_GEOMCOLLFROMTXT=1034,Qi.ST_GEOMCOLLFROMWKB=1035,Qi.ST_GEOMETRYCOLLECTIONFROMTEXT=1036,Qi.ST_GEOMETRYCOLLECTIONFROMWKB=1037,Qi.ST_GEOMETRYFROMTEXT=1038,Qi.ST_GEOMETRYFROMWKB=1039,Qi.ST_GEOMETRYN=1040,Qi.ST_GEOMETRYTYPE=1041,Qi.ST_GEOMFROMTEXT=1042,Qi.ST_GEOMFROMWKB=1043,Qi.ST_INTERIORRINGN=1044,Qi.ST_INTERSECTION=1045,Qi.ST_INTERSECTS=1046,Qi.ST_ISCLOSED=1047,Qi.ST_ISEMPTY=1048,Qi.ST_ISSIMPLE=1049,Qi.ST_LINEFROMTEXT=1050,Qi.ST_LINEFROMWKB=1051,Qi.ST_LINESTRINGFROMTEXT=1052,Qi.ST_LINESTRINGFROMWKB=1053,Qi.ST_NUMGEOMETRIES=1054,Qi.ST_NUMINTERIORRING=1055,Qi.ST_NUMINTERIORRINGS=1056,Qi.ST_NUMPOINTS=1057,Qi.ST_OVERLAPS=1058,Qi.ST_POINTFROMTEXT=1059,Qi.ST_POINTFROMWKB=1060,Qi.ST_POINTN=1061,Qi.ST_POLYFROMTEXT=1062,Qi.ST_POLYFROMWKB=1063,Qi.ST_POLYGONFROMTEXT=1064,Qi.ST_POLYGONFROMWKB=1065,Qi.ST_SRID=1066,Qi.ST_STARTPOINT=1067,Qi.ST_SYMDIFFERENCE=1068,Qi.ST_TOUCHES=1069,Qi.ST_UNION=1070,Qi.ST_WITHIN=1071,Qi.ST_X=1072,Qi.ST_Y=1073,Qi.SUBDATE=1074,Qi.SUBSTRING_INDEX=1075,Qi.SUBTIME=1076,Qi.SYSTEM_USER=1077,Qi.TAN=1078,Qi.TIMEDIFF=1079,Qi.TIMESTAMPADD=1080,Qi.TIMESTAMPDIFF=1081,Qi.TIME_FORMAT=1082,Qi.TIME_TO_SEC=1083,Qi.TOUCHES=1084,Qi.TO_BASE64=1085,Qi.TO_DAYS=1086,Qi.TO_SECONDS=1087,Qi.TP_CONNECTION_ADMIN=1088,Qi.UCASE=1089,Qi.UNCOMPRESS=1090,Qi.UNCOMPRESSED_LENGTH=1091,Qi.UNHEX=1092,Qi.UNIX_TIMESTAMP=1093,Qi.UPDATEXML=1094,Qi.UPPER=1095,Qi.UUID=1096,Qi.UUID_SHORT=1097,Qi.VALIDATE_PASSWORD_STRENGTH=1098,Qi.VERSION=1099,Qi.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS=1100,Qi.WEEKDAY=1101,Qi.WEEKOFYEAR=1102,Qi.WEIGHT_STRING=1103,Qi.WITHIN=1104,Qi.YEARWEEK=1105,Qi.Y_FUNCTION=1106,Qi.X_FUNCTION=1107,Qi.VAR_ASSIGN=1108,Qi.PLUS_ASSIGN=1109,Qi.MINUS_ASSIGN=1110,Qi.MULT_ASSIGN=1111,Qi.DIV_ASSIGN=1112,Qi.MOD_ASSIGN=1113,Qi.AND_ASSIGN=1114,Qi.XOR_ASSIGN=1115,Qi.OR_ASSIGN=1116,Qi.STAR=1117,Qi.DIVIDE=1118,Qi.MODULE=1119,Qi.PLUS=1120,Qi.MINUS=1121,Qi.DIV=1122,Qi.MOD=1123,Qi.EQUAL_SYMBOL=1124,Qi.GREATER_SYMBOL=1125,Qi.LESS_SYMBOL=1126,Qi.EXCLAMATION_SYMBOL=1127,Qi.BIT_NOT_OP=1128,Qi.BIT_OR_OP=1129,Qi.BIT_AND_OP=1130,Qi.BIT_XOR_OP=1131,Qi.DOT=1132,Qi.LR_BRACKET=1133,Qi.RR_BRACKET=1134,Qi.COMMA=1135,Qi.SEMI=1136,Qi.AT_SIGN=1137,Qi.ZERO_DECIMAL=1138,Qi.ONE_DECIMAL=1139,Qi.TWO_DECIMAL=1140,Qi.SINGLE_QUOTE_SYMB=1141,Qi.DOUBLE_QUOTE_SYMB=1142,Qi.REVERSE_QUOTE_SYMB=1143,Qi.COLON_SYMB=1144,Qi.CHARSET_REVERSE_QOUTE_STRING=1145,Qi.FILESIZE_LITERAL=1146,Qi.START_NATIONAL_STRING_LITERAL=1147,Qi.STRING_LITERAL=1148,Qi.DECIMAL_LITERAL=1149,Qi.HEXADECIMAL_LITERAL=1150,Qi.REAL_LITERAL=1151,Qi.NULL_SPEC_LITERAL=1152,Qi.BIT_STRING=1153,Qi.STRING_CHARSET_NAME=1154,Qi.DOT_ID=1155,Qi.ID=1156,Qi.REVERSE_QUOTE_ID=1157,Qi.HOST_IP_ADDRESS=1158,Qi.LOCAL_ID=1159,Qi.GLOBAL_ID=1160,Qi.ERROR_RECONGNIGION=1161,Qi.RULE_root=0,Qi.RULE_statements=1,Qi.RULE_statement=2,Qi.RULE_ddlStatement=3,Qi.RULE_dmlStatement=4,Qi.RULE_transactionStatement=5,Qi.RULE_replicationStatement=6,Qi.RULE_preparedStatement=7,Qi.RULE_compoundStatement=8,Qi.RULE_administrationStatement=9,Qi.RULE_utilityStatement=10,Qi.RULE_createDatabase=11,Qi.RULE_createEvent=12,Qi.RULE_createIndex=13,Qi.RULE_createLogfileGroup=14,Qi.RULE_createProcedure=15,Qi.RULE_createFunction=16,Qi.RULE_createRole=17,Qi.RULE_createServer=18,Qi.RULE_createTable=19,Qi.RULE_createTablespaceInnodb=20,Qi.RULE_createTablespaceNdb=21,Qi.RULE_createTrigger=22,Qi.RULE_withClause=23,Qi.RULE_commonTableExpressions=24,Qi.RULE_cteName=25,Qi.RULE_cteColumnName=26,Qi.RULE_createView=27,Qi.RULE_createDatabaseOption=28,Qi.RULE_charSet=29,Qi.RULE_currentUserExpression=30,Qi.RULE_ownerStatement=31,Qi.RULE_scheduleExpression=32,Qi.RULE_timestampValue=33,Qi.RULE_intervalExpr=34,Qi.RULE_intervalType=35,Qi.RULE_enableType=36,Qi.RULE_indexType=37,Qi.RULE_indexOption=38,Qi.RULE_procedureParameter=39,Qi.RULE_functionParameter=40,Qi.RULE_routineOption=41,Qi.RULE_serverOption=42,Qi.RULE_createDefinitions=43,Qi.RULE_createDefinition=44,Qi.RULE_columnDefinition=45,Qi.RULE_columnConstraint=46,Qi.RULE_tableConstraint=47,Qi.RULE_referenceDefinition=48,Qi.RULE_referenceAction=49,Qi.RULE_referenceControlType=50,Qi.RULE_indexColumnDefinition=51,Qi.RULE_tableOption=52,Qi.RULE_tableType=53,Qi.RULE_tablespaceStorage=54,Qi.RULE_partitionDefinitions=55,Qi.RULE_partitionFunctionDefinition=56,Qi.RULE_subpartitionFunctionDefinition=57,Qi.RULE_partitionDefinition=58,Qi.RULE_partitionDefinerAtom=59,Qi.RULE_partitionDefinerVector=60,Qi.RULE_subpartitionDefinition=61,Qi.RULE_partitionOption=62,Qi.RULE_alterDatabase=63,Qi.RULE_alterEvent=64,Qi.RULE_alterFunction=65,Qi.RULE_alterInstance=66,Qi.RULE_alterLogfileGroup=67,Qi.RULE_alterProcedure=68,Qi.RULE_alterServer=69,Qi.RULE_alterTable=70,Qi.RULE_alterTablespace=71,Qi.RULE_alterView=72,Qi.RULE_alterSpecification=73,Qi.RULE_alterPartitionSpecification=74,Qi.RULE_dropDatabase=75,Qi.RULE_dropEvent=76,Qi.RULE_dropIndex=77,Qi.RULE_dropLogfileGroup=78,Qi.RULE_dropProcedure=79,Qi.RULE_dropFunction=80,Qi.RULE_dropServer=81,Qi.RULE_dropTable=82,Qi.RULE_dropTablespace=83,Qi.RULE_dropTrigger=84,Qi.RULE_dropView=85,Qi.RULE_dropRole=86,Qi.RULE_setRole=87,Qi.RULE_renameTable=88,Qi.RULE_renameTableClause=89,Qi.RULE_truncateTable=90,Qi.RULE_callStatement=91,Qi.RULE_deleteStatement=92,Qi.RULE_doStatement=93,Qi.RULE_handlerStatement=94,Qi.RULE_insertStatement=95,Qi.RULE_loadDataStatement=96,Qi.RULE_loadXmlStatement=97,Qi.RULE_replaceStatement=98,Qi.RULE_selectStatement=99,Qi.RULE_updateStatement=100,Qi.RULE_valuesStatement=101,Qi.RULE_insertStatementValue=102,Qi.RULE_updatedElement=103,Qi.RULE_assignmentField=104,Qi.RULE_lockClause=105,Qi.RULE_singleDeleteStatement=106,Qi.RULE_multipleDeleteStatement=107,Qi.RULE_handlerOpenStatement=108,Qi.RULE_handlerReadIndexStatement=109,Qi.RULE_handlerReadStatement=110,Qi.RULE_handlerCloseStatement=111,Qi.RULE_singleUpdateStatement=112,Qi.RULE_multipleUpdateStatement=113,Qi.RULE_orderByClause=114,Qi.RULE_orderByExpression=115,Qi.RULE_tableSources=116,Qi.RULE_tableSource=117,Qi.RULE_tableSourceItem=118,Qi.RULE_indexHint=119,Qi.RULE_indexHintType=120,Qi.RULE_joinPart=121,Qi.RULE_joinSpec=122,Qi.RULE_queryExpression=123,Qi.RULE_queryExpressionNointo=124,Qi.RULE_querySpecification=125,Qi.RULE_querySpecificationNointo=126,Qi.RULE_unionParenthesis=127,Qi.RULE_unionStatement=128,Qi.RULE_lateralStatement=129,Qi.RULE_jsonTable=130,Qi.RULE_jsonColumnList=131,Qi.RULE_jsonColumn=132,Qi.RULE_jsonOnEmpty=133,Qi.RULE_jsonOnError=134,Qi.RULE_selectSpec=135,Qi.RULE_selectElements=136,Qi.RULE_selectElementAlias=137,Qi.RULE_selectElement=138,Qi.RULE_selectIntoExpression=139,Qi.RULE_selectFieldsInto=140,Qi.RULE_selectLinesInto=141,Qi.RULE_fromClause=142,Qi.RULE_groupByClause=143,Qi.RULE_havingClause=144,Qi.RULE_windowClause=145,Qi.RULE_groupByItem=146,Qi.RULE_limitClause=147,Qi.RULE_limitClauseAtom=148,Qi.RULE_startTransaction=149,Qi.RULE_beginWork=150,Qi.RULE_commitWork=151,Qi.RULE_rollbackWork=152,Qi.RULE_savepointStatement=153,Qi.RULE_rollbackStatement=154,Qi.RULE_releaseStatement=155,Qi.RULE_lockTables=156,Qi.RULE_unlockTables=157,Qi.RULE_setAutocommitStatement=158,Qi.RULE_setTransactionStatement=159,Qi.RULE_transactionMode=160,Qi.RULE_lockTableElement=161,Qi.RULE_lockAction=162,Qi.RULE_transactionOption=163,Qi.RULE_transactionLevel=164,Qi.RULE_changeMaster=165,Qi.RULE_changeReplicationFilter=166,Qi.RULE_purgeBinaryLogs=167,Qi.RULE_resetMaster=168,Qi.RULE_resetSlave=169,Qi.RULE_startSlave=170,Qi.RULE_stopSlave=171,Qi.RULE_startGroupReplication=172,Qi.RULE_stopGroupReplication=173,Qi.RULE_masterOption=174,Qi.RULE_stringMasterOption=175,Qi.RULE_decimalMasterOption=176,Qi.RULE_boolMasterOption=177,Qi.RULE_channelOption=178,Qi.RULE_replicationFilter=179,Qi.RULE_tablePair=180,Qi.RULE_threadType=181,Qi.RULE_untilOption=182,Qi.RULE_connectionOption=183,Qi.RULE_gtuidSet=184,Qi.RULE_xaStartTransaction=185,Qi.RULE_xaEndTransaction=186,Qi.RULE_xaPrepareStatement=187,Qi.RULE_xaCommitWork=188,Qi.RULE_xaRollbackWork=189,Qi.RULE_xaRecoverWork=190,Qi.RULE_prepareStatement=191,Qi.RULE_executeStatement=192,Qi.RULE_deallocatePrepare=193,Qi.RULE_routineBody=194,Qi.RULE_blockStatement=195,Qi.RULE_caseStatement=196,Qi.RULE_ifStatement=197,Qi.RULE_iterateStatement=198,Qi.RULE_leaveStatement=199,Qi.RULE_loopStatement=200,Qi.RULE_repeatStatement=201,Qi.RULE_returnStatement=202,Qi.RULE_whileStatement=203,Qi.RULE_cursorStatement=204,Qi.RULE_declareVariable=205,Qi.RULE_declareCondition=206,Qi.RULE_declareCursor=207,Qi.RULE_declareHandler=208,Qi.RULE_handlerConditionValue=209,Qi.RULE_procedureSqlStatement=210,Qi.RULE_caseAlternative=211,Qi.RULE_elifAlternative=212,Qi.RULE_alterUser=213,Qi.RULE_createUser=214,Qi.RULE_dropUser=215,Qi.RULE_grantStatement=216,Qi.RULE_roleOption=217,Qi.RULE_grantProxy=218,Qi.RULE_renameUser=219,Qi.RULE_revokeStatement=220,Qi.RULE_revokeProxy=221,Qi.RULE_setPasswordStatement=222,Qi.RULE_userSpecification=223,Qi.RULE_newUserAuthOptionList=224,Qi.RULE_newUserAuthOption=225,Qi.RULE_authOptionClause=226,Qi.RULE_authenticationRule=227,Qi.RULE_tlsOption=228,Qi.RULE_userResourceOption=229,Qi.RULE_userPasswordOption=230,Qi.RULE_userLockOption=231,Qi.RULE_privelegeClause=232,Qi.RULE_privilege=233,Qi.RULE_privilegeLevel=234,Qi.RULE_renameUserClause=235,Qi.RULE_analyzeTable=236,Qi.RULE_checkTable=237,Qi.RULE_checksumTable=238,Qi.RULE_optimizeTable=239,Qi.RULE_repairTable=240,Qi.RULE_checkTableOption=241,Qi.RULE_createUdfunction=242,Qi.RULE_installPlugin=243,Qi.RULE_uninstallPlugin=244,Qi.RULE_setStatement=245,Qi.RULE_showStatement=246,Qi.RULE_variableClause=247,Qi.RULE_showCommonEntity=248,Qi.RULE_showFilter=249,Qi.RULE_showGlobalInfoClause=250,Qi.RULE_showSchemaEntity=251,Qi.RULE_showProfileType=252,Qi.RULE_binlogStatement=253,Qi.RULE_cacheIndexStatement=254,Qi.RULE_flushStatement=255,Qi.RULE_killStatement=256,Qi.RULE_loadIndexIntoCache=257,Qi.RULE_resetStatement=258,Qi.RULE_shutdownStatement=259,Qi.RULE_tableIndexes=260,Qi.RULE_flushOption=261,Qi.RULE_flushTableOption=262,Qi.RULE_loadedTableIndexes=263,Qi.RULE_simpleDescribeStatement=264,Qi.RULE_fullDescribeStatement=265,Qi.RULE_helpStatement=266,Qi.RULE_useStatement=267,Qi.RULE_signalStatement=268,Qi.RULE_resignalStatement=269,Qi.RULE_signalConditionInformation=270,Qi.RULE_withStatement=271,Qi.RULE_tableStatement=272,Qi.RULE_diagnosticsStatement=273,Qi.RULE_diagnosticsConditionInformationName=274,Qi.RULE_describeObjectClause=275,Qi.RULE_fullId=276,Qi.RULE_tableName=277,Qi.RULE_tableNames=278,Qi.RULE_userOrRoleName=279,Qi.RULE_userOrRoleNameList=280,Qi.RULE_newRoleNameList=281,Qi.RULE_newRoleName=282,Qi.RULE_roleNameList=283,Qi.RULE_roleName=284,Qi.RULE_fullColumnName=285,Qi.RULE_databaseName=286,Qi.RULE_indexName=287,Qi.RULE_constraintName=288,Qi.RULE_triggerName=289,Qi.RULE_indexNameList=290,Qi.RULE_indexColumnName=291,Qi.RULE_simpleUserName=292,Qi.RULE_hostName=293,Qi.RULE_userNameList=294,Qi.RULE_newUserName=295,Qi.RULE_userName=296,Qi.RULE_mysqlVariable=297,Qi.RULE_charsetName=298,Qi.RULE_collationName=299,Qi.RULE_engineName=300,Qi.RULE_engineNameBase=301,Qi.RULE_uuidSet=302,Qi.RULE_xid=303,Qi.RULE_xuidStringId=304,Qi.RULE_authPlugin=305,Qi.RULE_uid=306,Qi.RULE_simpleId=307,Qi.RULE_dottedId=308,Qi.RULE_decimalLiteral=309,Qi.RULE_fileSizeLiteral=310,Qi.RULE_stringLiteral=311,Qi.RULE_booleanLiteral=312,Qi.RULE_hexadecimalLiteral=313,Qi.RULE_nullNotnull=314,Qi.RULE_constant=315,Qi.RULE_dataType=316,Qi.RULE_collectionOptions=317,Qi.RULE_convertedDataType=318,Qi.RULE_lengthOneDimension=319,Qi.RULE_lengthTwoDimension=320,Qi.RULE_lengthTwoOptionalDimension=321,Qi.RULE_uidList=322,Qi.RULE_fullColumnNameList=323,Qi.RULE_tables=324,Qi.RULE_indexColumnNames=325,Qi.RULE_expressions=326,Qi.RULE_expressionsWithDefaults=327,Qi.RULE_constants=328,Qi.RULE_simpleStrings=329,Qi.RULE_userVariables=330,Qi.RULE_defaultValue=331,Qi.RULE_currentTimestamp=332,Qi.RULE_expressionOrDefault=333,Qi.RULE_ifExists=334,Qi.RULE_ifNotExists=335,Qi.RULE_orReplace=336,Qi.RULE_waitNowaitClause=337,Qi.RULE_functionCall=338,Qi.RULE_specificFunction=339,Qi.RULE_caseFuncAlternative=340,Qi.RULE_levelsInWeightString=341,Qi.RULE_levelInWeightListElement=342,Qi.RULE_aggregateWindowedFunction=343,Qi.RULE_nonAggregateWindowedFunction=344,Qi.RULE_overClause=345,Qi.RULE_windowSpec=346,Qi.RULE_windowName=347,Qi.RULE_frameClause=348,Qi.RULE_frameUnits=349,Qi.RULE_frameExtent=350,Qi.RULE_frameBetween=351,Qi.RULE_frameRange=352,Qi.RULE_partitionClause=353,Qi.RULE_scalarFunctionName=354,Qi.RULE_passwordFunctionClause=355,Qi.RULE_functionArgs=356,Qi.RULE_functionArg=357,Qi.RULE_expression=358,Qi.RULE_predicate=359,Qi.RULE_expressionAtom=360,Qi.RULE_unaryOperator=361,Qi.RULE_comparisonOperator=362,Qi.RULE_logicalOperator=363,Qi.RULE_bitOperator=364,Qi.RULE_multOperator=365,Qi.RULE_addOperator=366,Qi.RULE_jsonOperator=367,Qi.RULE_charsetNameBase=368,Qi.RULE_transactionLevelBase=369,Qi.RULE_privilegesBase=370,Qi.RULE_intervalTypeBase=371,Qi.RULE_dataTypeBase=372,Qi.RULE_keywordsCanBeId=373,Qi.RULE_functionNameBase=374,Qi.literalNames=[null,null,null,null,null,"'ADD'","'ALL'","'ALTER'","'ALWAYS'","'ANALYZE'","'AND'","'ARRAY'","'AS'","'ASC'","'ATTRIBUTE'","'BEFORE'","'BETWEEN'","'BOTH'","'BUCKETS'","'BY'","'CALL'","'CASCADE'","'CASE'","'CAST'","'CHANGE'","'CHARACTER'","'CHECK'","'COLLATE'","'COLUMN'","'CONDITION'","'CONSTRAINT'","'CONTINUE'","'CONVERT'","'CREATE'","'CROSS'","'CURRENT'","'CURRENT_ROLE'","'CURRENT_USER'","'CURSOR'","'DATABASE'","'DATABASES'","'DECLARE'","'DEFAULT'","'DELAYED'","'DELETE'","'DESC'","'DESCRIBE'","'DETERMINISTIC'","'DIAGNOSTICS'","'DISTINCT'","'DISTINCTROW'","'DROP'","'EACH'","'ELSE'","'ELSEIF'","'EMPTY'","'ENCLOSED'","'ENFORCED'","'ESCAPED'","'EXCEPT'","'EXISTS'","'EXIT'","'EXPLAIN'","'FALSE'","'FETCH'","'FOR'","'FORCE'","'FOREIGN'","'FROM'","'FULLTEXT'","'GENERATED'","'GET'","'GRANT'","'GROUP'","'HAVING'","'HIGH_PRIORITY'","'HISTOGRAM'","'IF'","'IGNORE'","'IGNORED'","'IN'","'INDEX'","'INFILE'","'INNER'","'INOUT'","'INSERT'","'INTERVAL'","'INTO'","'IS'","'ITERATE'","'JOIN'","'KEY'","'KEYS'","'KILL'","'LATERAL'","'LEADING'","'LEAVE'","'LEFT'","'LIKE'","'LIMIT'","'LINEAR'","'LINES'","'LOAD'","'LOCK'","'LOCKED'","'LOOP'","'LOW_PRIORITY'","'MASTER_BIND'","'MASTER_SSL_VERIFY_SERVER_CERT'","'MATCH'","'MAXVALUE'","'MINVALUE'","'MODIFIES'","'NATURAL'","'NOT'","'NO_WRITE_TO_BINLOG'","'NULL'","'NUMBER'","'ON'","'OPTIMIZE'","'OPTION'","'OPTIONAL'","'OPTIONALLY'","'OR'","'ORDER'","'OUT'","'OUTER'","'OUTFILE'","'OVER'","'PARTITION'","'PRIMARY'","'PROCEDURE'","'PURGE'","'RANGE'","'READ'","'READS'","'REFERENCES'","'REGEXP'","'RELEASE'","'RENAME'","'REPEAT'","'REPLACE'","'REQUIRE'","'RESIGNAL'","'RESTRICT'","'RETAIN'","'RETURN'","'REVOKE'","'RIGHT'","'RLIKE'","'SCHEMA'","'SCHEMAS'","'SELECT'","'SET'","'SEPARATOR'","'SHOW'","'SIGNAL'","'SKIP'","'SKIP_QUERY_REWRITE'","'SPATIAL'","'SQL'","'SQLEXCEPTION'","'SQLSTATE'","'SQLWARNING'","'SQL_BIG_RESULT'","'SQL_CALC_FOUND_ROWS'","'SQL_SMALL_RESULT'","'SSL'","'STACKED'","'STARTING'","'STATEMENT'","'STRAIGHT_JOIN'","'TABLE'","'TERMINATED'","'THEN'","'TO'","'TRAILING'","'TRIGGER'","'TRUE'","'UNDO'","'UNION'","'UNIQUE'","'UNLOCK'","'UNSIGNED'","'UPDATE'","'USAGE'","'USE'","'USING'","'VALUES'","'WHEN'","'WHERE'","'WHILE'","'WITH'","'WRITE'","'XOR'","'ZEROFILL'","'TINYINT'","'SMALLINT'","'MEDIUMINT'","'MIDDLEINT'","'INT'","'INT1'","'INT2'","'INT3'","'INT4'","'INT8'","'INTEGER'","'BIGINT'","'REAL'","'DOUBLE'","'PRECISION'","'FLOAT'","'FLOAT4'","'FLOAT8'","'DECIMAL'","'DEC'","'NUMERIC'","'DATE'","'TIME'","'TIMESTAMP'","'DATETIME'","'YEAR'","'CHAR'","'VARCHAR'","'NVARCHAR'","'NATIONAL'","'BINARY'","'VARBINARY'","'TINYBLOB'","'BLOB'","'MEDIUMBLOB'","'LONG'","'LONGBLOB'","'TINYTEXT'","'TEXT'","'MEDIUMTEXT'","'LONGTEXT'","'ENUM'","'VARYING'","'SERIAL'","'YEAR_MONTH'","'DAY_HOUR'","'DAY_MINUTE'","'DAY_SECOND'","'HOUR_MINUTE'","'HOUR_SECOND'","'MINUTE_SECOND'","'SECOND_MICROSECOND'","'MINUTE_MICROSECOND'","'HOUR_MICROSECOND'","'DAY_MICROSECOND'","'JSON_ARRAY'","'JSON_ARRAYAGG'","'JSON_ARRAY_APPEND'","'JSON_ARRAY_INSERT'","'JSON_CONTAINS'","'JSON_CONTAINS_PATH'","'JSON_DEPTH'","'JSON_EXTRACT'","'JSON_INSERT'","'JSON_KEYS'","'JSON_LENGTH'","'JSON_MERGE'","'JSON_MERGE_PATCH'","'JSON_MERGE_PRESERVE'","'JSON_OBJECT'","'JSON_OBJECTAGG'","'JSON_OVERLAPS'","'JSON_PRETTY'","'JSON_QUOTE'","'JSON_REMOVE'","'JSON_REPLACE'","'JSON_SCHEMA_VALID'","'JSON_SCHEMA_VALIDATION_REPORT'","'JSON_SEARCH'","'JSON_SET'","'JSON_STORAGE_FREE'","'JSON_STORAGE_SIZE'","'JSON_TABLE'","'JSON_TYPE'","'JSON_UNQUOTE'","'JSON_VALID'","'JSON_VALUE'","'NESTED'","'ORDINALITY'","'PATH'","'AVG'","'BIT_AND'","'BIT_OR'","'BIT_XOR'","'COUNT'","'CUME_DIST'","'DENSE_RANK'","'FIRST_VALUE'","'GROUP_CONCAT'","'LAG'","'LAST_VALUE'","'LEAD'","'MAX'","'MIN'","'NTILE'","'NTH_VALUE'","'PERCENT_RANK'","'RANK'","'ROW_NUMBER'","'STD'","'STDDEV'","'STDDEV_POP'","'STDDEV_SAMP'","'SUM'","'VAR_POP'","'VAR_SAMP'","'VARIANCE'","'CURRENT_DATE'","'CURRENT_TIME'","'CURRENT_TIMESTAMP'","'LOCALTIME'","'CURDATE'","'CURTIME'","'DATE_ADD'","'DATE_SUB'","'EXTRACT'","'LOCALTIMESTAMP'","'NOW'","'POSITION'","'SUBSTR'","'SUBSTRING'","'SYSDATE'","'TRIM'","'UTC_DATE'","'UTC_TIME'","'UTC_TIMESTAMP'","'ACCOUNT'","'ACTION'","'AFTER'","'AGGREGATE'","'ALGORITHM'","'ANY'","'AT'","'AUTHORS'","'AUTOCOMMIT'","'AUTOEXTEND_SIZE'","'AUTO_INCREMENT'","'AVG_ROW_LENGTH'","'BEGIN'","'BINLOG'","'BIT'","'BLOCK'","'BOOL'","'BOOLEAN'","'BTREE'","'CACHE'","'CASCADED'","'CHAIN'","'CHANGED'","'CHANNEL'","'CHECKSUM'","'PAGE_CHECKSUM'","'CIPHER'","'CLASS_ORIGIN'","'CLIENT'","'CLOSE'","'CLUSTERING'","'COALESCE'","'CODE'","'COLUMNS'","'COLUMN_FORMAT'","'COLUMN_NAME'","'COMMENT'","'COMMIT'","'COMPACT'","'COMPLETION'","'COMPRESSED'","'COMPRESSION'","'CONCURRENT'","'CONNECT'","'CONNECTION'","'CONSISTENT'","'CONSTRAINT_CATALOG'","'CONSTRAINT_SCHEMA'","'CONSTRAINT_NAME'","'CONTAINS'","'CONTEXT'","'CONTRIBUTORS'","'COPY'","'CPU'","'CYCLE'","'CURSOR_NAME'","'DATA'","'DATAFILE'","'DEALLOCATE'","'DEFAULT_AUTH'","'DEFINER'","'DELAY_KEY_WRITE'","'DES_KEY_FILE'","'DIRECTORY'","'DISABLE'","'DISCARD'","'DISK'","'DO'","'DUMPFILE'","'DUPLICATE'","'DYNAMIC'","'ENABLE'","'ENCRYPTED'","'ENCRYPTION'","'ENCRYPTION_KEY_ID'","'END'","'ENDS'","'ENGINE'","'ENGINES'","'ERROR'","'ERRORS'","'ESCAPE'","'EVEN'","'EVENT'","'EVENTS'","'EVERY'","'EXCHANGE'","'EXCLUSIVE'","'EXPIRE'","'EXPORT'","'EXTENDED'","'EXTENT_SIZE'","'FAILED_LOGIN_ATTEMPTS'","'FAST'","'FAULTS'","'FIELDS'","'FILE_BLOCK_SIZE'","'FILTER'","'FIRST'","'FIXED'","'FLUSH'","'FOLLOWING'","'FOLLOWS'","'FOUND'","'FULL'","'FUNCTION'","'GENERAL'","'GLOBAL'","'GRANTS'","'GROUP_REPLICATION'","'HANDLER'","'HASH'","'HELP'","'HISTORY'","'HOST'","'HOSTS'","'IDENTIFIED'","'IGNORE_SERVER_IDS'","'IMPORT'","'INCREMENT'","'INDEXES'","'INITIAL_SIZE'","'INPLACE'","'INSERT_METHOD'","'INSTALL'","'INSTANCE'","'INSTANT'","'INVISIBLE'","'INVOKER'","'IO'","'IO_THREAD'","'IPC'","'ISOLATION'","'ISSUER'","'JSON'","'KEY_BLOCK_SIZE'","'LANGUAGE'","'LAST'","'LEAVES'","'LESS'","'LEVEL'","'LIST'","'LOCAL'","'LOGFILE'","'LOGS'","'MASTER'","'MASTER_AUTO_POSITION'","'MASTER_CONNECT_RETRY'","'MASTER_DELAY'","'MASTER_HEARTBEAT_PERIOD'","'MASTER_HOST'","'MASTER_LOG_FILE'","'MASTER_LOG_POS'","'MASTER_PASSWORD'","'MASTER_PORT'","'MASTER_RETRY_COUNT'","'MASTER_SSL'","'MASTER_SSL_CA'","'MASTER_SSL_CAPATH'","'MASTER_SSL_CERT'","'MASTER_SSL_CIPHER'","'MASTER_SSL_CRL'","'MASTER_SSL_CRLPATH'","'MASTER_SSL_KEY'","'MASTER_TLS_VERSION'","'MASTER_USER'","'MAX_CONNECTIONS_PER_HOUR'","'MAX_QUERIES_PER_HOUR'","'MAX_ROWS'","'MAX_SIZE'","'MAX_UPDATES_PER_HOUR'","'MAX_USER_CONNECTIONS'","'MEDIUM'","'MEMBER'","'MERGE'","'MESSAGE_TEXT'","'MID'","'MIGRATE'","'MIN_ROWS'","'MODE'","'MODIFY'","'MUTEX'","'MYSQL'","'MYSQL_ERRNO'","'NAME'","'NAMES'","'NCHAR'","'NEVER'","'NEXT'","'NO'","'NOCACHE'","'NOCOPY'","'NOCYCLE'","'NOMAXVALUE'","'NOMINVALUE'","'NOWAIT'","'NODEGROUP'","'NONE'","'ODBC'","'OFFLINE'","'OFFSET'","'OF'","'OJ'","'OLD_PASSWORD'","'ONE'","'ONLINE'","'ONLY'","'OPEN'","'OPTIMIZER_COSTS'","'OPTIONS'","'OWNER'","'PACK_KEYS'","'PAGE'","'PAGE_COMPRESSED'","'PAGE_COMPRESSION_LEVEL'","'PARSER'","'PARTIAL'","'PARTITIONING'","'PARTITIONS'","'PASSWORD'","'PASSWORD_LOCK_TIME'","'PHASE'","'PLUGIN'","'PLUGIN_DIR'","'PLUGINS'","'PORT'","'PRECEDES'","'PRECEDING'","'PREPARE'","'PRESERVE'","'PREV'","'PROCESSLIST'","'PROFILE'","'PROFILES'","'PROXY'","'QUERY'","'QUICK'","'REBUILD'","'RECOVER'","'RECURSIVE'","'REDO_BUFFER_SIZE'","'REDUNDANT'","'RELAY'","'RELAY_LOG_FILE'","'RELAY_LOG_POS'","'RELAYLOG'","'REMOVE'","'REORGANIZE'","'REPAIR'","'REPLICATE_DO_DB'","'REPLICATE_DO_TABLE'","'REPLICATE_IGNORE_DB'","'REPLICATE_IGNORE_TABLE'","'REPLICATE_REWRITE_DB'","'REPLICATE_WILD_DO_TABLE'","'REPLICATE_WILD_IGNORE_TABLE'","'REPLICATION'","'RESET'","'RESTART'","'RESUME'","'RETURNED_SQLSTATE'","'RETURNING'","'RETURNS'","'REUSE'","'ROLE'","'ROLLBACK'","'ROLLUP'","'ROTATE'","'ROW'","'ROWS'","'ROW_FORMAT'","'RTREE'","'SAVEPOINT'","'SCHEDULE'","'SECURITY'","'SEQUENCE'","'SERVER'","'SESSION'","'SHARE'","'SHARED'","'SIGNED'","'SIMPLE'","'SLAVE'","'SLOW'","'SNAPSHOT'","'SOCKET'","'SOME'","'SONAME'","'SOUNDS'","'SOURCE'","'SQL_AFTER_GTIDS'","'SQL_AFTER_MTS_GAPS'","'SQL_BEFORE_GTIDS'","'SQL_BUFFER_RESULT'","'SQL_CACHE'","'SQL_NO_CACHE'","'SQL_THREAD'","'START'","'STARTS'","'STATS_AUTO_RECALC'","'STATS_PERSISTENT'","'STATS_SAMPLE_PAGES'","'STATUS'","'STOP'","'STORAGE'","'STORED'","'STRING'","'SUBCLASS_ORIGIN'","'SUBJECT'","'SUBPARTITION'","'SUBPARTITIONS'","'SUSPEND'","'SWAPS'","'SWITCHES'","'TABLE_NAME'","'TABLESPACE'","'TABLE_TYPE'","'TEMPORARY'","'TEMPTABLE'","'THAN'","'TRADITIONAL'","'TRANSACTION'","'TRANSACTIONAL'","'TRIGGERS'","'TRUNCATE'","'UNBOUNDED'","'UNDEFINED'","'UNDOFILE'","'UNDO_BUFFER_SIZE'","'UNINSTALL'","'UNKNOWN'","'UNTIL'","'UPGRADE'","'USER'","'USE_FRM'","'USER_RESOURCES'","'VALIDATION'","'VALUE'","'VARIABLES'","'VIEW'","'VIRTUAL'","'VISIBLE'","'WAIT'","'WARNINGS'","'WINDOW'","'WITHOUT'","'WORK'","'WRAPPER'","'X509'","'XA'","'XML'","'YES'","'EUR'","'USA'","'JIS'","'ISO'","'INTERNAL'","'QUARTER'","'MONTH'","'DAY'","'HOUR'","'MINUTE'","'WEEK'","'SECOND'","'MICROSECOND'","'ADMIN'","'APPLICATION_PASSWORD_ADMIN'","'AUDIT_ABORT_EXEMPT'","'AUDIT_ADMIN'","'AUTHENTICATION_POLICY_ADMIN'","'BACKUP_ADMIN'","'BINLOG_ADMIN'","'BINLOG_ENCRYPTION_ADMIN'","'CLONE_ADMIN'","'CONNECTION_ADMIN'","'ENCRYPTION_KEY_ADMIN'","'EXECUTE'","'FILE'","'FIREWALL_ADMIN'","'FIREWALL_EXEMPT'","'FIREWALL_USER'","'FLUSH_OPTIMIZER_COSTS'","'FLUSH_STATUS'","'FLUSH_TABLES'","'FLUSH_USER_RESOURCES'","'GROUP_REPLICATION_ADMIN'","'INNODB_REDO_LOG_ARCHIVE'","'INNODB_REDO_LOG_ENABLE'","'INVOKE'","'LAMBDA'","'NDB_STORED_USER'","'PASSWORDLESS_USER_ADMIN'","'PERSIST_RO_VARIABLES_ADMIN'","'PRIVILEGES'","'PROCESS'","'RELOAD'","'REPLICATION_APPLIER'","'REPLICATION_SLAVE_ADMIN'","'RESOURCE_GROUP_ADMIN'","'RESOURCE_GROUP_USER'","'ROLE_ADMIN'","'ROUTINE'","'S3'","'SERVICE_CONNECTION_ADMIN'",null,"'SET_USER_ID'","'SHOW_ROUTINE'","'SHUTDOWN'","'SUPER'","'SYSTEM_VARIABLES_ADMIN'","'TABLES'","'TABLE_ENCRYPTION_ADMIN'","'VERSION_TOKEN_ADMIN'","'XA_RECOVER_ADMIN'","'ARMSCII8'","'ASCII'","'BIG5'","'CP1250'","'CP1251'","'CP1256'","'CP1257'","'CP850'","'CP852'","'CP866'","'CP932'","'DEC8'","'EUCJPMS'","'EUCKR'","'GB18030'","'GB2312'","'GBK'","'GEOSTD8'","'GREEK'","'HEBREW'","'HP8'","'KEYBCS2'","'KOI8R'","'KOI8U'","'LATIN1'","'LATIN2'","'LATIN5'","'LATIN7'","'MACCE'","'MACROMAN'","'SJIS'","'SWE7'","'TIS620'","'UCS2'","'UJIS'","'UTF16'","'UTF16LE'","'UTF32'","'UTF8'","'UTF8MB3'","'UTF8MB4'","'ARCHIVE'","'BLACKHOLE'","'CSV'","'FEDERATED'","'INNODB'","'MEMORY'","'MRG_MYISAM'","'MYISAM'","'NDB'","'NDBCLUSTER'","'PERFORMANCE_SCHEMA'","'TOKUDB'","'REPEATABLE'","'COMMITTED'","'UNCOMMITTED'","'SERIALIZABLE'","'GEOMETRYCOLLECTION'","'GEOMCOLLECTION'","'GEOMETRY'","'LINESTRING'","'MULTILINESTRING'","'MULTIPOINT'","'MULTIPOLYGON'","'POINT'","'POLYGON'","'ABS'","'ACOS'","'ADDDATE'","'ADDTIME'","'AES_DECRYPT'","'AES_ENCRYPT'","'AREA'","'ASBINARY'","'ASIN'","'ASTEXT'","'ASWKB'","'ASWKT'","'ASYMMETRIC_DECRYPT'","'ASYMMETRIC_DERIVE'","'ASYMMETRIC_ENCRYPT'","'ASYMMETRIC_SIGN'","'ASYMMETRIC_VERIFY'","'ATAN'","'ATAN2'","'BENCHMARK'","'BIN'","'BIT_COUNT'","'BIT_LENGTH'","'BUFFER'","'CATALOG_NAME'","'CEIL'","'CEILING'","'CENTROID'","'CHARACTER_LENGTH'","'CHARSET'","'CHAR_LENGTH'","'COERCIBILITY'","'COLLATION'","'COMPRESS'","'CONCAT'","'CONCAT_WS'","'CONNECTION_ID'","'CONV'","'CONVERT_TZ'","'COS'","'COT'","'CRC32'","'CREATE_ASYMMETRIC_PRIV_KEY'","'CREATE_ASYMMETRIC_PUB_KEY'","'CREATE_DH_PARAMETERS'","'CREATE_DIGEST'","'CROSSES'","'DATEDIFF'","'DATE_FORMAT'","'DAYNAME'","'DAYOFMONTH'","'DAYOFWEEK'","'DAYOFYEAR'","'DECODE'","'DEGREES'","'DES_DECRYPT'","'DES_ENCRYPT'","'DIMENSION'","'DISJOINT'","'ELT'","'ENCODE'","'ENCRYPT'","'ENDPOINT'","'ENGINE_ATTRIBUTE'","'ENVELOPE'","'EQUALS'","'EXP'","'EXPORT_SET'","'EXTERIORRING'","'EXTRACTVALUE'","'FIELD'","'FIND_IN_SET'","'FLOOR'","'FORMAT'","'FOUND_ROWS'","'FROM_BASE64'","'FROM_DAYS'","'FROM_UNIXTIME'","'GEOMCOLLFROMTEXT'","'GEOMCOLLFROMWKB'","'GEOMETRYCOLLECTIONFROMTEXT'","'GEOMETRYCOLLECTIONFROMWKB'","'GEOMETRYFROMTEXT'","'GEOMETRYFROMWKB'","'GEOMETRYN'","'GEOMETRYTYPE'","'GEOMFROMTEXT'","'GEOMFROMWKB'","'GET_FORMAT'","'GET_LOCK'","'GLENGTH'","'GREATEST'","'GTID_SUBSET'","'GTID_SUBTRACT'","'HEX'","'IFNULL'","'INET6_ATON'","'INET6_NTOA'","'INET_ATON'","'INET_NTOA'","'INSTR'","'INTERIORRINGN'","'INTERSECTS'","'ISCLOSED'","'ISEMPTY'","'ISNULL'","'ISSIMPLE'","'IS_FREE_LOCK'","'IS_IPV4'","'IS_IPV4_COMPAT'","'IS_IPV4_MAPPED'","'IS_IPV6'","'IS_USED_LOCK'","'LAST_INSERT_ID'","'LCASE'","'LEAST'","'LENGTH'","'LINEFROMTEXT'","'LINEFROMWKB'","'LINESTRINGFROMTEXT'","'LINESTRINGFROMWKB'","'LN'","'LOAD_FILE'","'LOCATE'","'LOG'","'LOG10'","'LOG2'","'LOWER'","'LPAD'","'LTRIM'","'MAKEDATE'","'MAKETIME'","'MAKE_SET'","'MASTER_POS_WAIT'","'MBRCONTAINS'","'MBRDISJOINT'","'MBREQUAL'","'MBRINTERSECTS'","'MBROVERLAPS'","'MBRTOUCHES'","'MBRWITHIN'","'MD5'","'MLINEFROMTEXT'","'MLINEFROMWKB'","'MONTHNAME'","'MPOINTFROMTEXT'","'MPOINTFROMWKB'","'MPOLYFROMTEXT'","'MPOLYFROMWKB'","'MULTILINESTRINGFROMTEXT'","'MULTILINESTRINGFROMWKB'","'MULTIPOINTFROMTEXT'","'MULTIPOINTFROMWKB'","'MULTIPOLYGONFROMTEXT'","'MULTIPOLYGONFROMWKB'","'NAME_CONST'","'NULLIF'","'NUMGEOMETRIES'","'NUMINTERIORRINGS'","'NUMPOINTS'","'OCT'","'OCTET_LENGTH'","'ORD'","'OVERLAPS'","'PERIOD_ADD'","'PERIOD_DIFF'","'PI'","'POINTFROMTEXT'","'POINTFROMWKB'","'POINTN'","'POLYFROMTEXT'","'POLYFROMWKB'","'POLYGONFROMTEXT'","'POLYGONFROMWKB'","'POW'","'POWER'","'QUOTE'","'RADIANS'","'RAND'","'RANDOM'","'RANDOM_BYTES'","'RELEASE_LOCK'","'REVERSE'","'ROUND'","'ROW_COUNT'","'RPAD'","'RTRIM'","'SEC_TO_TIME'","'SECONDARY_ENGINE_ATTRIBUTE'","'SESSION_USER'","'SHA'","'SHA1'","'SHA2'","'SCHEMA_NAME'","'SIGN'","'SIN'","'SLEEP'","'SOUNDEX'","'SQL_THREAD_WAIT_AFTER_GTIDS'","'SQRT'","'SRID'","'STARTPOINT'","'STRCMP'","'STR_TO_DATE'","'ST_AREA'","'ST_ASBINARY'","'ST_ASTEXT'","'ST_ASWKB'","'ST_ASWKT'","'ST_BUFFER'","'ST_CENTROID'","'ST_CONTAINS'","'ST_CROSSES'","'ST_DIFFERENCE'","'ST_DIMENSION'","'ST_DISJOINT'","'ST_DISTANCE'","'ST_ENDPOINT'","'ST_ENVELOPE'","'ST_EQUALS'","'ST_EXTERIORRING'","'ST_GEOMCOLLFROMTEXT'","'ST_GEOMCOLLFROMTXT'","'ST_GEOMCOLLFROMWKB'","'ST_GEOMETRYCOLLECTIONFROMTEXT'","'ST_GEOMETRYCOLLECTIONFROMWKB'","'ST_GEOMETRYFROMTEXT'","'ST_GEOMETRYFROMWKB'","'ST_GEOMETRYN'","'ST_GEOMETRYTYPE'","'ST_GEOMFROMTEXT'","'ST_GEOMFROMWKB'","'ST_INTERIORRINGN'","'ST_INTERSECTION'","'ST_INTERSECTS'","'ST_ISCLOSED'","'ST_ISEMPTY'","'ST_ISSIMPLE'","'ST_LINEFROMTEXT'","'ST_LINEFROMWKB'","'ST_LINESTRINGFROMTEXT'","'ST_LINESTRINGFROMWKB'","'ST_NUMGEOMETRIES'","'ST_NUMINTERIORRING'","'ST_NUMINTERIORRINGS'","'ST_NUMPOINTS'","'ST_OVERLAPS'","'ST_POINTFROMTEXT'","'ST_POINTFROMWKB'","'ST_POINTN'","'ST_POLYFROMTEXT'","'ST_POLYFROMWKB'","'ST_POLYGONFROMTEXT'","'ST_POLYGONFROMWKB'","'ST_SRID'","'ST_STARTPOINT'","'ST_SYMDIFFERENCE'","'ST_TOUCHES'","'ST_UNION'","'ST_WITHIN'","'ST_X'","'ST_Y'","'SUBDATE'","'SUBSTRING_INDEX'","'SUBTIME'","'SYSTEM_USER'","'TAN'","'TIMEDIFF'","'TIMESTAMPADD'","'TIMESTAMPDIFF'","'TIME_FORMAT'","'TIME_TO_SEC'","'TOUCHES'","'TO_BASE64'","'TO_DAYS'","'TO_SECONDS'","'TP_CONNECTION_ADMIN'","'UCASE'","'UNCOMPRESS'","'UNCOMPRESSED_LENGTH'","'UNHEX'","'UNIX_TIMESTAMP'","'UPDATEXML'","'UPPER'","'UUID'","'UUID_SHORT'","'VALIDATE_PASSWORD_STRENGTH'","'VERSION'","'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS'","'WEEKDAY'","'WEEKOFYEAR'","'WEIGHT_STRING'","'WITHIN'","'YEARWEEK'","'Y'","'X'","':='","'+='","'-='","'*='","'/='","'%='","'&='","'^='","'|='","'*'","'/'","'%'","'+'","'-'","'DIV'","'MOD'","'='","'>'","'<'","'!'","'~'","'|'","'&'","'^'","'.'","'('","')'","','","';'","'@'","'0'","'1'","'2'","'''","'\"'","'`'","':'"],Qi.symbolicNames=[null,"SPACE","SPEC_MYSQL_COMMENT","COMMENT_INPUT","LINE_COMMENT","ADD","ALL","ALTER","ALWAYS","ANALYZE","AND","ARRAY","AS","ASC","ATTRIBUTE","BEFORE","BETWEEN","BOTH","BUCKETS","BY","CALL","CASCADE","CASE","CAST","CHANGE","CHARACTER","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT","CURRENT_ROLE","CURRENT_USER","CURSOR","DATABASE","DATABASES","DECLARE","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DETERMINISTIC","DIAGNOSTICS","DISTINCT","DISTINCTROW","DROP","EACH","ELSE","ELSEIF","EMPTY","ENCLOSED","ENFORCED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GENERATED","GET","GRANT","GROUP","HAVING","HIGH_PRIORITY","HISTOGRAM","IF","IGNORE","IGNORED","IN","INDEX","INFILE","INNER","INOUT","INSERT","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LATERAL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCK","LOCKED","LOOP","LOW_PRIORITY","MASTER_BIND","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MINVALUE","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL_LITERAL","NUMBER","ON","OPTIMIZE","OPTION","OPTIONAL","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PRIMARY","PROCEDURE","PURGE","RANGE","READ","READS","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETAIN","RETURN","REVOKE","RIGHT","RLIKE","SCHEMA","SCHEMAS","SELECT","SET","SEPARATOR","SHOW","SIGNAL","SKIP_","SKIP_QUERY_REWRITE","SPATIAL","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STACKED","STARTING","STATEMENT","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","VALUES","WHEN","WHERE","WHILE","WITH","WRITE","XOR","ZEROFILL","TINYINT","SMALLINT","MEDIUMINT","MIDDLEINT","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","BIGINT","REAL","DOUBLE","PRECISION","FLOAT","FLOAT4","FLOAT8","DECIMAL","DEC","NUMERIC","DATE","TIME","TIMESTAMP","DATETIME","YEAR","CHAR","VARCHAR","NVARCHAR","NATIONAL","BINARY","VARBINARY","TINYBLOB","BLOB","MEDIUMBLOB","LONG","LONGBLOB","TINYTEXT","TEXT","MEDIUMTEXT","LONGTEXT","ENUM","VARYING","SERIAL","YEAR_MONTH","DAY_HOUR","DAY_MINUTE","DAY_SECOND","HOUR_MINUTE","HOUR_SECOND","MINUTE_SECOND","SECOND_MICROSECOND","MINUTE_MICROSECOND","HOUR_MICROSECOND","DAY_MICROSECOND","JSON_ARRAY","JSON_ARRAYAGG","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SCHEMA_VALID","JSON_SCHEMA_VALIDATION_REPORT","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TABLE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","JSON_VALUE","NESTED","ORDINALITY","PATH","AVG","BIT_AND","BIT_OR","BIT_XOR","COUNT","CUME_DIST","DENSE_RANK","FIRST_VALUE","GROUP_CONCAT","LAG","LAST_VALUE","LEAD","MAX","MIN","NTILE","NTH_VALUE","PERCENT_RANK","RANK","ROW_NUMBER","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","LOCALTIME","CURDATE","CURTIME","DATE_ADD","DATE_SUB","EXTRACT","LOCALTIMESTAMP","NOW","POSITION","SUBSTR","SUBSTRING","SYSDATE","TRIM","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","ACCOUNT","ACTION","AFTER","AGGREGATE","ALGORITHM","ANY","AT","AUTHORS","AUTOCOMMIT","AUTOEXTEND_SIZE","AUTO_INCREMENT","AVG_ROW_LENGTH","BEGIN","BINLOG","BIT","BLOCK","BOOL","BOOLEAN","BTREE","CACHE","CASCADED","CHAIN","CHANGED","CHANNEL","CHECKSUM","PAGE_CHECKSUM","CIPHER","CLASS_ORIGIN","CLIENT","CLOSE","CLUSTERING","COALESCE","CODE","COLUMNS","COLUMN_FORMAT","COLUMN_NAME","COMMENT","COMMIT","COMPACT","COMPLETION","COMPRESSED","COMPRESSION","CONCURRENT","CONNECT","CONNECTION","CONSISTENT","CONSTRAINT_CATALOG","CONSTRAINT_SCHEMA","CONSTRAINT_NAME","CONTAINS","CONTEXT","CONTRIBUTORS","COPY","CPU","CYCLE","CURSOR_NAME","DATA","DATAFILE","DEALLOCATE","DEFAULT_AUTH","DEFINER","DELAY_KEY_WRITE","DES_KEY_FILE","DIRECTORY","DISABLE","DISCARD","DISK","DO","DUMPFILE","DUPLICATE","DYNAMIC","ENABLE","ENCRYPTED","ENCRYPTION","ENCRYPTION_KEY_ID","END","ENDS","ENGINE","ENGINES","ERROR","ERRORS","ESCAPE","EVEN","EVENT","EVENTS","EVERY","EXCHANGE","EXCLUSIVE","EXPIRE","EXPORT","EXTENDED","EXTENT_SIZE","FAILED_LOGIN_ATTEMPTS","FAST","FAULTS","FIELDS","FILE_BLOCK_SIZE","FILTER","FIRST","FIXED","FLUSH","FOLLOWING","FOLLOWS","FOUND","FULL","FUNCTION","GENERAL","GLOBAL","GRANTS","GROUP_REPLICATION","HANDLER","HASH","HELP","HISTORY","HOST","HOSTS","IDENTIFIED","IGNORE_SERVER_IDS","IMPORT","INCREMENT","INDEXES","INITIAL_SIZE","INPLACE","INSERT_METHOD","INSTALL","INSTANCE","INSTANT","INVISIBLE","INVOKER","IO","IO_THREAD","IPC","ISOLATION","ISSUER","JSON","KEY_BLOCK_SIZE","LANGUAGE","LAST","LEAVES","LESS","LEVEL","LIST","LOCAL","LOGFILE","LOGS","MASTER","MASTER_AUTO_POSITION","MASTER_CONNECT_RETRY","MASTER_DELAY","MASTER_HEARTBEAT_PERIOD","MASTER_HOST","MASTER_LOG_FILE","MASTER_LOG_POS","MASTER_PASSWORD","MASTER_PORT","MASTER_RETRY_COUNT","MASTER_SSL","MASTER_SSL_CA","MASTER_SSL_CAPATH","MASTER_SSL_CERT","MASTER_SSL_CIPHER","MASTER_SSL_CRL","MASTER_SSL_CRLPATH","MASTER_SSL_KEY","MASTER_TLS_VERSION","MASTER_USER","MAX_CONNECTIONS_PER_HOUR","MAX_QUERIES_PER_HOUR","MAX_ROWS","MAX_SIZE","MAX_UPDATES_PER_HOUR","MAX_USER_CONNECTIONS","MEDIUM","MEMBER","MERGE","MESSAGE_TEXT","MID","MIGRATE","MIN_ROWS","MODE","MODIFY","MUTEX","MYSQL","MYSQL_ERRNO","NAME","NAMES","NCHAR","NEVER","NEXT","NO","NOCACHE","NOCOPY","NOCYCLE","NOMAXVALUE","NOMINVALUE","NOWAIT","NODEGROUP","NONE","ODBC","OFFLINE","OFFSET","OF","OJ","OLD_PASSWORD","ONE","ONLINE","ONLY","OPEN","OPTIMIZER_COSTS","OPTIONS","OWNER","PACK_KEYS","PAGE","PAGE_COMPRESSED","PAGE_COMPRESSION_LEVEL","PARSER","PARTIAL","PARTITIONING","PARTITIONS","PASSWORD","PASSWORD_LOCK_TIME","PHASE","PLUGIN","PLUGIN_DIR","PLUGINS","PORT","PRECEDES","PRECEDING","PREPARE","PRESERVE","PREV","PROCESSLIST","PROFILE","PROFILES","PROXY","QUERY","QUICK","REBUILD","RECOVER","RECURSIVE","REDO_BUFFER_SIZE","REDUNDANT","RELAY","RELAY_LOG_FILE","RELAY_LOG_POS","RELAYLOG","REMOVE","REORGANIZE","REPAIR","REPLICATE_DO_DB","REPLICATE_DO_TABLE","REPLICATE_IGNORE_DB","REPLICATE_IGNORE_TABLE","REPLICATE_REWRITE_DB","REPLICATE_WILD_DO_TABLE","REPLICATE_WILD_IGNORE_TABLE","REPLICATION","RESET","RESTART","RESUME","RETURNED_SQLSTATE","RETURNING","RETURNS","REUSE","ROLE","ROLLBACK","ROLLUP","ROTATE","ROW","ROWS","ROW_FORMAT","RTREE","SAVEPOINT","SCHEDULE","SECURITY","SEQUENCE","SERVER","SESSION","SHARE","SHARED","SIGNED","SIMPLE","SLAVE","SLOW","SNAPSHOT","SOCKET","SOME","SONAME","SOUNDS","SOURCE","SQL_AFTER_GTIDS","SQL_AFTER_MTS_GAPS","SQL_BEFORE_GTIDS","SQL_BUFFER_RESULT","SQL_CACHE","SQL_NO_CACHE","SQL_THREAD","START","STARTS","STATS_AUTO_RECALC","STATS_PERSISTENT","STATS_SAMPLE_PAGES","STATUS","STOP","STORAGE","STORED","STRING","SUBCLASS_ORIGIN","SUBJECT","SUBPARTITION","SUBPARTITIONS","SUSPEND","SWAPS","SWITCHES","TABLE_NAME","TABLESPACE","TABLE_TYPE","TEMPORARY","TEMPTABLE","THAN","TRADITIONAL","TRANSACTION","TRANSACTIONAL","TRIGGERS","TRUNCATE","UNBOUNDED","UNDEFINED","UNDOFILE","UNDO_BUFFER_SIZE","UNINSTALL","UNKNOWN","UNTIL","UPGRADE","USER","USE_FRM","USER_RESOURCES","VALIDATION","VALUE","VARIABLES","VIEW","VIRTUAL","VISIBLE","WAIT","WARNINGS","WINDOW","WITHOUT","WORK","WRAPPER","X509","XA","XML","YES","EUR","USA","JIS","ISO","INTERNAL","QUARTER","MONTH","DAY","HOUR","MINUTE","WEEK","SECOND","MICROSECOND","ADMIN","APPLICATION_PASSWORD_ADMIN","AUDIT_ABORT_EXEMPT","AUDIT_ADMIN","AUTHENTICATION_POLICY_ADMIN","BACKUP_ADMIN","BINLOG_ADMIN","BINLOG_ENCRYPTION_ADMIN","CLONE_ADMIN","CONNECTION_ADMIN","ENCRYPTION_KEY_ADMIN","EXECUTE","FILE","FIREWALL_ADMIN","FIREWALL_EXEMPT","FIREWALL_USER","FLUSH_OPTIMIZER_COSTS","FLUSH_STATUS","FLUSH_TABLES","FLUSH_USER_RESOURCES","GROUP_REPLICATION_ADMIN","INNODB_REDO_LOG_ARCHIVE","INNODB_REDO_LOG_ENABLE","INVOKE","LAMBDA","NDB_STORED_USER","PASSWORDLESS_USER_ADMIN","PERSIST_RO_VARIABLES_ADMIN","PRIVILEGES","PROCESS","RELOAD","REPLICATION_APPLIER","REPLICATION_SLAVE_ADMIN","RESOURCE_GROUP_ADMIN","RESOURCE_GROUP_USER","ROLE_ADMIN","ROUTINE","S3","SERVICE_CONNECTION_ADMIN","SESSION_VARIABLES_ADMIN","SET_USER_ID","SHOW_ROUTINE","SHUTDOWN","SUPER","SYSTEM_VARIABLES_ADMIN","TABLES","TABLE_ENCRYPTION_ADMIN","VERSION_TOKEN_ADMIN","XA_RECOVER_ADMIN","ARMSCII8","ASCII","BIG5","CP1250","CP1251","CP1256","CP1257","CP850","CP852","CP866","CP932","DEC8","EUCJPMS","EUCKR","GB18030","GB2312","GBK","GEOSTD8","GREEK","HEBREW","HP8","KEYBCS2","KOI8R","KOI8U","LATIN1","LATIN2","LATIN5","LATIN7","MACCE","MACROMAN","SJIS","SWE7","TIS620","UCS2","UJIS","UTF16","UTF16LE","UTF32","UTF8","UTF8MB3","UTF8MB4","ARCHIVE","BLACKHOLE","CSV","FEDERATED","INNODB","MEMORY","MRG_MYISAM","MYISAM","NDB","NDBCLUSTER","PERFORMANCE_SCHEMA","TOKUDB","REPEATABLE","COMMITTED","UNCOMMITTED","SERIALIZABLE","GEOMETRYCOLLECTION","GEOMCOLLECTION","GEOMETRY","LINESTRING","MULTILINESTRING","MULTIPOINT","MULTIPOLYGON","POINT","POLYGON","ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","AREA","ASBINARY","ASIN","ASTEXT","ASWKB","ASWKT","ASYMMETRIC_DECRYPT","ASYMMETRIC_DERIVE","ASYMMETRIC_ENCRYPT","ASYMMETRIC_SIGN","ASYMMETRIC_VERIFY","ATAN","ATAN2","BENCHMARK","BIN","BIT_COUNT","BIT_LENGTH","BUFFER","CATALOG_NAME","CEIL","CEILING","CENTROID","CHARACTER_LENGTH","CHARSET","CHAR_LENGTH","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT_TZ","COS","COT","CRC32","CREATE_ASYMMETRIC_PRIV_KEY","CREATE_ASYMMETRIC_PUB_KEY","CREATE_DH_PARAMETERS","CREATE_DIGEST","CROSSES","DATEDIFF","DATE_FORMAT","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEGREES","DES_DECRYPT","DES_ENCRYPT","DIMENSION","DISJOINT","ELT","ENCODE","ENCRYPT","ENDPOINT","ENGINE_ATTRIBUTE","ENVELOPE","EQUALS","EXP","EXPORT_SET","EXTERIORRING","EXTRACTVALUE","FIELD","FIND_IN_SET","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEOMCOLLFROMTEXT","GEOMCOLLFROMWKB","GEOMETRYCOLLECTIONFROMTEXT","GEOMETRYCOLLECTIONFROMWKB","GEOMETRYFROMTEXT","GEOMETRYFROMWKB","GEOMETRYN","GEOMETRYTYPE","GEOMFROMTEXT","GEOMFROMWKB","GET_FORMAT","GET_LOCK","GLENGTH","GREATEST","GTID_SUBSET","GTID_SUBTRACT","HEX","IFNULL","INET6_ATON","INET6_NTOA","INET_ATON","INET_NTOA","INSTR","INTERIORRINGN","INTERSECTS","ISCLOSED","ISEMPTY","ISNULL","ISSIMPLE","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS_USED_LOCK","LAST_INSERT_ID","LCASE","LEAST","LENGTH","LINEFROMTEXT","LINEFROMWKB","LINESTRINGFROMTEXT","LINESTRINGFROMWKB","LN","LOAD_FILE","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","MAKEDATE","MAKETIME","MAKE_SET","MASTER_POS_WAIT","MBRCONTAINS","MBRDISJOINT","MBREQUAL","MBRINTERSECTS","MBROVERLAPS","MBRTOUCHES","MBRWITHIN","MD5","MLINEFROMTEXT","MLINEFROMWKB","MONTHNAME","MPOINTFROMTEXT","MPOINTFROMWKB","MPOLYFROMTEXT","MPOLYFROMWKB","MULTILINESTRINGFROMTEXT","MULTILINESTRINGFROMWKB","MULTIPOINTFROMTEXT","MULTIPOINTFROMWKB","MULTIPOLYGONFROMTEXT","MULTIPOLYGONFROMWKB","NAME_CONST","NULLIF","NUMGEOMETRIES","NUMINTERIORRINGS","NUMPOINTS","OCT","OCTET_LENGTH","ORD","OVERLAPS","PERIOD_ADD","PERIOD_DIFF","PI","POINTFROMTEXT","POINTFROMWKB","POINTN","POLYFROMTEXT","POLYFROMWKB","POLYGONFROMTEXT","POLYGONFROMWKB","POW","POWER","QUOTE","RADIANS","RAND","RANDOM","RANDOM_BYTES","RELEASE_LOCK","REVERSE","ROUND","ROW_COUNT","RPAD","RTRIM","SEC_TO_TIME","SECONDARY_ENGINE_ATTRIBUTE","SESSION_USER","SHA","SHA1","SHA2","SCHEMA_NAME","SIGN","SIN","SLEEP","SOUNDEX","SQL_THREAD_WAIT_AFTER_GTIDS","SQRT","SRID","STARTPOINT","STRCMP","STR_TO_DATE","ST_AREA","ST_ASBINARY","ST_ASTEXT","ST_ASWKB","ST_ASWKT","ST_BUFFER","ST_CENTROID","ST_CONTAINS","ST_CROSSES","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_ENDPOINT","ST_ENVELOPE","ST_EQUALS","ST_EXTERIORRING","ST_GEOMCOLLFROMTEXT","ST_GEOMCOLLFROMTXT","ST_GEOMCOLLFROMWKB","ST_GEOMETRYCOLLECTIONFROMTEXT","ST_GEOMETRYCOLLECTIONFROMWKB","ST_GEOMETRYFROMTEXT","ST_GEOMETRYFROMWKB","ST_GEOMETRYN","ST_GEOMETRYTYPE","ST_GEOMFROMTEXT","ST_GEOMFROMWKB","ST_INTERIORRINGN","ST_INTERSECTION","ST_INTERSECTS","ST_ISCLOSED","ST_ISEMPTY","ST_ISSIMPLE","ST_LINEFROMTEXT","ST_LINEFROMWKB","ST_LINESTRINGFROMTEXT","ST_LINESTRINGFROMWKB","ST_NUMGEOMETRIES","ST_NUMINTERIORRING","ST_NUMINTERIORRINGS","ST_NUMPOINTS","ST_OVERLAPS","ST_POINTFROMTEXT","ST_POINTFROMWKB","ST_POINTN","ST_POLYFROMTEXT","ST_POLYFROMWKB","ST_POLYGONFROMTEXT","ST_POLYGONFROMWKB","ST_SRID","ST_STARTPOINT","ST_SYMDIFFERENCE","ST_TOUCHES","ST_UNION","ST_WITHIN","ST_X","ST_Y","SUBDATE","SUBSTRING_INDEX","SUBTIME","SYSTEM_USER","TAN","TIMEDIFF","TIMESTAMPADD","TIMESTAMPDIFF","TIME_FORMAT","TIME_TO_SEC","TOUCHES","TO_BASE64","TO_DAYS","TO_SECONDS","TP_CONNECTION_ADMIN","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UUID","UUID_SHORT","VALIDATE_PASSWORD_STRENGTH","VERSION","WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","WITHIN","YEARWEEK","Y_FUNCTION","X_FUNCTION","VAR_ASSIGN","PLUS_ASSIGN","MINUS_ASSIGN","MULT_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","STAR","DIVIDE","MODULE","PLUS","MINUS","DIV","MOD","EQUAL_SYMBOL","GREATER_SYMBOL","LESS_SYMBOL","EXCLAMATION_SYMBOL","BIT_NOT_OP","BIT_OR_OP","BIT_AND_OP","BIT_XOR_OP","DOT","LR_BRACKET","RR_BRACKET","COMMA","SEMI","AT_SIGN","ZERO_DECIMAL","ONE_DECIMAL","TWO_DECIMAL","SINGLE_QUOTE_SYMB","DOUBLE_QUOTE_SYMB","REVERSE_QUOTE_SYMB","COLON_SYMB","CHARSET_REVERSE_QOUTE_STRING","FILESIZE_LITERAL","START_NATIONAL_STRING_LITERAL","STRING_LITERAL","DECIMAL_LITERAL","HEXADECIMAL_LITERAL","REAL_LITERAL","NULL_SPEC_LITERAL","BIT_STRING","STRING_CHARSET_NAME","DOT_ID","ID","REVERSE_QUOTE_ID","HOST_IP_ADDRESS","LOCAL_ID","GLOBAL_ID","ERROR_RECONGNIGION"],Qi.ruleNames=["root","statements","statement","ddlStatement","dmlStatement","transactionStatement","replicationStatement","preparedStatement","compoundStatement","administrationStatement","utilityStatement","createDatabase","createEvent","createIndex","createLogfileGroup","createProcedure","createFunction","createRole","createServer","createTable","createTablespaceInnodb","createTablespaceNdb","createTrigger","withClause","commonTableExpressions","cteName","cteColumnName","createView","createDatabaseOption","charSet","currentUserExpression","ownerStatement","scheduleExpression","timestampValue","intervalExpr","intervalType","enableType","indexType","indexOption","procedureParameter","functionParameter","routineOption","serverOption","createDefinitions","createDefinition","columnDefinition","columnConstraint","tableConstraint","referenceDefinition","referenceAction","referenceControlType","indexColumnDefinition","tableOption","tableType","tablespaceStorage","partitionDefinitions","partitionFunctionDefinition","subpartitionFunctionDefinition","partitionDefinition","partitionDefinerAtom","partitionDefinerVector","subpartitionDefinition","partitionOption","alterDatabase","alterEvent","alterFunction","alterInstance","alterLogfileGroup","alterProcedure","alterServer","alterTable","alterTablespace","alterView","alterSpecification","alterPartitionSpecification","dropDatabase","dropEvent","dropIndex","dropLogfileGroup","dropProcedure","dropFunction","dropServer","dropTable","dropTablespace","dropTrigger","dropView","dropRole","setRole","renameTable","renameTableClause","truncateTable","callStatement","deleteStatement","doStatement","handlerStatement","insertStatement","loadDataStatement","loadXmlStatement","replaceStatement","selectStatement","updateStatement","valuesStatement","insertStatementValue","updatedElement","assignmentField","lockClause","singleDeleteStatement","multipleDeleteStatement","handlerOpenStatement","handlerReadIndexStatement","handlerReadStatement","handlerCloseStatement","singleUpdateStatement","multipleUpdateStatement","orderByClause","orderByExpression","tableSources","tableSource","tableSourceItem","indexHint","indexHintType","joinPart","joinSpec","queryExpression","queryExpressionNointo","querySpecification","querySpecificationNointo","unionParenthesis","unionStatement","lateralStatement","jsonTable","jsonColumnList","jsonColumn","jsonOnEmpty","jsonOnError","selectSpec","selectElements","selectElementAlias","selectElement","selectIntoExpression","selectFieldsInto","selectLinesInto","fromClause","groupByClause","havingClause","windowClause","groupByItem","limitClause","limitClauseAtom","startTransaction","beginWork","commitWork","rollbackWork","savepointStatement","rollbackStatement","releaseStatement","lockTables","unlockTables","setAutocommitStatement","setTransactionStatement","transactionMode","lockTableElement","lockAction","transactionOption","transactionLevel","changeMaster","changeReplicationFilter","purgeBinaryLogs","resetMaster","resetSlave","startSlave","stopSlave","startGroupReplication","stopGroupReplication","masterOption","stringMasterOption","decimalMasterOption","boolMasterOption","channelOption","replicationFilter","tablePair","threadType","untilOption","connectionOption","gtuidSet","xaStartTransaction","xaEndTransaction","xaPrepareStatement","xaCommitWork","xaRollbackWork","xaRecoverWork","prepareStatement","executeStatement","deallocatePrepare","routineBody","blockStatement","caseStatement","ifStatement","iterateStatement","leaveStatement","loopStatement","repeatStatement","returnStatement","whileStatement","cursorStatement","declareVariable","declareCondition","declareCursor","declareHandler","handlerConditionValue","procedureSqlStatement","caseAlternative","elifAlternative","alterUser","createUser","dropUser","grantStatement","roleOption","grantProxy","renameUser","revokeStatement","revokeProxy","setPasswordStatement","userSpecification","newUserAuthOptionList","newUserAuthOption","authOptionClause","authenticationRule","tlsOption","userResourceOption","userPasswordOption","userLockOption","privelegeClause","privilege","privilegeLevel","renameUserClause","analyzeTable","checkTable","checksumTable","optimizeTable","repairTable","checkTableOption","createUdfunction","installPlugin","uninstallPlugin","setStatement","showStatement","variableClause","showCommonEntity","showFilter","showGlobalInfoClause","showSchemaEntity","showProfileType","binlogStatement","cacheIndexStatement","flushStatement","killStatement","loadIndexIntoCache","resetStatement","shutdownStatement","tableIndexes","flushOption","flushTableOption","loadedTableIndexes","simpleDescribeStatement","fullDescribeStatement","helpStatement","useStatement","signalStatement","resignalStatement","signalConditionInformation","withStatement","tableStatement","diagnosticsStatement","diagnosticsConditionInformationName","describeObjectClause","fullId","tableName","tableNames","userOrRoleName","userOrRoleNameList","newRoleNameList","newRoleName","roleNameList","roleName","fullColumnName","databaseName","indexName","constraintName","triggerName","indexNameList","indexColumnName","simpleUserName","hostName","userNameList","newUserName","userName","mysqlVariable","charsetName","collationName","engineName","engineNameBase","uuidSet","xid","xuidStringId","authPlugin","uid","simpleId","dottedId","decimalLiteral","fileSizeLiteral","stringLiteral","booleanLiteral","hexadecimalLiteral","nullNotnull","constant","dataType","collectionOptions","convertedDataType","lengthOneDimension","lengthTwoDimension","lengthTwoOptionalDimension","uidList","fullColumnNameList","tables","indexColumnNames","expressions","expressionsWithDefaults","constants","simpleStrings","userVariables","defaultValue","currentTimestamp","expressionOrDefault","ifExists","ifNotExists","orReplace","waitNowaitClause","functionCall","specificFunction","caseFuncAlternative","levelsInWeightString","levelInWeightListElement","aggregateWindowedFunction","nonAggregateWindowedFunction","overClause","windowSpec","windowName","frameClause","frameUnits","frameExtent","frameBetween","frameRange","partitionClause","scalarFunctionName","passwordFunctionClause","functionArgs","functionArg","expression","predicate","expressionAtom","unaryOperator","comparisonOperator","logicalOperator","bitOperator","multOperator","addOperator","jsonOperator","charsetNameBase","transactionLevelBase","privilegesBase","intervalTypeBase","dataTypeBase","keywordsCanBeId","functionNameBase"],Qi._serializedATN=[4,1,1161,7380,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,2,230,7,230,2,231,7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,235,7,235,2,236,7,236,2,237,7,237,2,238,7,238,2,239,7,239,2,240,7,240,2,241,7,241,2,242,7,242,2,243,7,243,2,244,7,244,2,245,7,245,2,246,7,246,2,247,7,247,2,248,7,248,2,249,7,249,2,250,7,250,2,251,7,251,2,252,7,252,2,253,7,253,2,254,7,254,2,255,7,255,2,256,7,256,2,257,7,257,2,258,7,258,2,259,7,259,2,260,7,260,2,261,7,261,2,262,7,262,2,263,7,263,2,264,7,264,2,265,7,265,2,266,7,266,2,267,7,267,2,268,7,268,2,269,7,269,2,270,7,270,2,271,7,271,2,272,7,272,2,273,7,273,2,274,7,274,2,275,7,275,2,276,7,276,2,277,7,277,2,278,7,278,2,279,7,279,2,280,7,280,2,281,7,281,2,282,7,282,2,283,7,283,2,284,7,284,2,285,7,285,2,286,7,286,2,287,7,287,2,288,7,288,2,289,7,289,2,290,7,290,2,291,7,291,2,292,7,292,2,293,7,293,2,294,7,294,2,295,7,295,2,296,7,296,2,297,7,297,2,298,7,298,2,299,7,299,2,300,7,300,2,301,7,301,2,302,7,302,2,303,7,303,2,304,7,304,2,305,7,305,2,306,7,306,2,307,7,307,2,308,7,308,2,309,7,309,2,310,7,310,2,311,7,311,2,312,7,312,2,313,7,313,2,314,7,314,2,315,7,315,2,316,7,316,2,317,7,317,2,318,7,318,2,319,7,319,2,320,7,320,2,321,7,321,2,322,7,322,2,323,7,323,2,324,7,324,2,325,7,325,2,326,7,326,2,327,7,327,2,328,7,328,2,329,7,329,2,330,7,330,2,331,7,331,2,332,7,332,2,333,7,333,2,334,7,334,2,335,7,335,2,336,7,336,2,337,7,337,2,338,7,338,2,339,7,339,2,340,7,340,2,341,7,341,2,342,7,342,2,343,7,343,2,344,7,344,2,345,7,345,2,346,7,346,2,347,7,347,2,348,7,348,2,349,7,349,2,350,7,350,2,351,7,351,2,352,7,352,2,353,7,353,2,354,7,354,2,355,7,355,2,356,7,356,2,357,7,357,2,358,7,358,2,359,7,359,2,360,7,360,2,361,7,361,2,362,7,362,2,363,7,363,2,364,7,364,2,365,7,365,2,366,7,366,2,367,7,367,2,368,7,368,2,369,7,369,2,370,7,370,2,371,7,371,2,372,7,372,2,373,7,373,2,374,7,374,1,0,3,0,752,8,0,1,0,1,0,1,1,1,1,3,1,758,8,1,1,1,1,1,1,1,1,1,3,1,764,8,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,773,8,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,813,8,3,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,3,4,828,8,4,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5,3,5,839,8,5,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,3,6,856,8,6,1,7,1,7,1,7,3,7,861,8,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,3,8,873,8,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,3,9,900,8,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,3,10,909,8,10,1,11,1,11,1,11,3,11,914,8,11,1,11,1,11,5,11,918,8,11,10,11,12,11,921,9,11,1,12,1,12,3,12,925,8,12,1,12,1,12,3,12,929,8,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,3,12,938,8,12,1,12,3,12,941,8,12,1,12,3,12,944,8,12,1,12,1,12,3,12,948,8,12,1,12,1,12,1,12,1,13,1,13,3,13,955,8,13,1,13,3,13,958,8,13,1,13,1,13,1,13,3,13,963,8,13,1,13,1,13,1,13,1,13,5,13,969,8,13,10,13,12,13,972,9,13,1,13,1,13,3,13,976,8,13,1,13,1,13,1,13,3,13,981,8,13,1,13,5,13,984,8,13,10,13,12,13,987,9,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,3,14,998,8,14,1,14,3,14,1001,8,14,1,14,1,14,3,14,1005,8,14,1,14,3,14,1008,8,14,1,14,1,14,3,14,1012,8,14,1,14,3,14,1015,8,14,1,14,1,14,3,14,1019,8,14,1,14,3,14,1022,8,14,1,14,3,14,1025,8,14,1,14,1,14,3,14,1029,8,14,1,14,3,14,1032,8,14,1,14,1,14,3,14,1036,8,14,1,14,1,14,1,15,1,15,3,15,1042,8,15,1,15,1,15,1,15,1,15,3,15,1048,8,15,1,15,1,15,5,15,1052,8,15,10,15,12,15,1055,9,15,1,15,1,15,5,15,1059,8,15,10,15,12,15,1062,9,15,1,15,1,15,1,16,1,16,3,16,1068,8,16,1,16,3,16,1071,8,16,1,16,1,16,3,16,1075,8,16,1,16,1,16,1,16,3,16,1080,8,16,1,16,1,16,5,16,1084,8,16,10,16,12,16,1087,9,16,1,16,1,16,1,16,1,16,5,16,1093,8,16,10,16,12,16,1096,9,16,1,16,1,16,3,16,1100,8,16,1,17,1,17,1,17,3,17,1105,8,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,5,18,1121,8,18,10,18,12,18,1124,9,18,1,18,1,18,1,19,1,19,3,19,1130,8,19,1,19,1,19,3,19,1134,8,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,3,19,1144,8,19,1,19,1,19,3,19,1148,8,19,1,19,1,19,3,19,1152,8,19,1,19,1,19,3,19,1156,8,19,1,19,1,19,3,19,1160,8,19,1,19,5,19,1163,8,19,10,19,12,19,1166,9,19,3,19,1168,8,19,1,19,3,19,1171,8,19,1,19,3,19,1174,8,19,1,19,3,19,1177,8,19,1,19,1,19,1,19,1,19,3,19,1183,8,19,1,19,1,19,3,19,1187,8,19,1,19,1,19,1,19,1,19,3,19,1193,8,19,1,19,5,19,1196,8,19,10,19,12,19,1199,9,19,3,19,1201,8,19,1,19,3,19,1204,8,19,3,19,1206,8,19,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,3,20,1217,8,20,1,20,1,20,3,20,1221,8,20,1,20,3,20,1224,8,20,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,3,21,1238,8,21,1,21,3,21,1241,8,21,1,21,1,21,3,21,1245,8,21,1,21,3,21,1248,8,21,1,21,1,21,3,21,1252,8,21,1,21,3,21,1255,8,21,1,21,1,21,3,21,1259,8,21,1,21,3,21,1262,8,21,1,21,1,21,3,21,1266,8,21,1,21,3,21,1269,8,21,1,21,3,21,1272,8,21,1,21,1,21,3,21,1276,8,21,1,21,3,21,1279,8,21,1,21,1,21,3,21,1283,8,21,1,21,1,21,1,22,1,22,3,22,1289,8,22,1,22,1,22,3,22,1293,8,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,3,22,1305,8,22,1,22,1,22,1,23,1,23,3,23,1311,8,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,5,24,1320,8,24,10,24,12,24,1323,9,24,1,24,1,24,3,24,1327,8,24,1,24,1,24,1,24,1,24,1,24,1,24,3,24,1335,8,24,1,25,1,25,1,26,1,26,1,27,1,27,3,27,1343,8,27,1,27,1,27,1,27,3,27,1348,8,27,1,27,3,27,1351,8,27,1,27,1,27,1,27,3,27,1356,8,27,1,27,1,27,1,27,1,27,1,27,1,27,3,27,1364,8,27,1,27,1,27,1,27,3,27,1369,8,27,1,27,1,27,1,27,1,27,3,27,1375,8,27,1,27,1,27,1,27,3,27,1380,8,27,1,27,1,27,3,27,1384,8,27,3,27,1386,8,27,1,28,3,28,1389,8,28,1,28,1,28,3,28,1393,8,28,1,28,1,28,3,28,1397,8,28,1,28,3,28,1400,8,28,1,28,1,28,3,28,1404,8,28,1,28,1,28,3,28,1408,8,28,1,28,1,28,3,28,1412,8,28,1,28,1,28,1,28,1,28,3,28,1418,8,28,1,28,3,28,1421,8,28,1,29,1,29,1,29,1,29,1,29,3,29,1428,8,29,1,30,1,30,1,30,3,30,1433,8,30,1,31,1,31,1,31,1,31,3,31,1439,8,31,1,32,1,32,1,32,5,32,1444,8,32,10,32,12,32,1447,9,32,1,32,1,32,1,32,3,32,1452,8,32,1,32,1,32,1,32,1,32,5,32,1458,8,32,10,32,12,32,1461,9,32,3,32,1463,8,32,1,32,1,32,1,32,5,32,1468,8,32,10,32,12,32,1471,9,32,3,32,1473,8,32,3,32,1475,8,32,1,33,1,33,1,33,1,33,3,33,1481,8,33,1,34,1,34,1,34,1,34,3,34,1487,8,34,1,34,1,34,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,3,35,1504,8,35,1,36,1,36,1,36,1,36,1,36,3,36,1511,8,36,1,37,1,37,1,37,1,38,1,38,3,38,1518,8,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,3,38,1530,8,38,1,38,1,38,1,38,3,38,1535,8,38,1,38,3,38,1538,8,38,1,39,3,39,1541,8,39,1,39,1,39,1,39,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,3,41,1554,8,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,3,41,1567,8,41,1,41,1,41,1,41,3,41,1572,8,41,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,3,42,1588,8,42,1,43,1,43,1,43,1,43,5,43,1594,8,43,10,43,12,43,1597,9,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,3,44,1606,8,44,1,44,3,44,1609,8,44,1,44,3,44,1612,8,44,1,45,1,45,5,45,1616,8,45,10,45,12,45,1619,9,45,1,45,3,45,1622,8,45,1,45,3,45,1625,8,45,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,3,46,1636,8,46,1,46,3,46,1639,8,46,1,46,1,46,1,46,3,46,1644,8,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,3,46,1657,8,46,1,46,1,46,1,46,1,46,1,46,3,46,1664,8,46,1,46,1,46,1,46,1,46,1,46,3,46,1671,8,46,3,46,1673,8,46,1,46,1,46,1,46,1,46,1,46,3,46,1680,8,46,1,47,1,47,3,47,1684,8,47,3,47,1686,8,47,1,47,1,47,1,47,3,47,1691,8,47,1,47,3,47,1694,8,47,1,47,1,47,5,47,1698,8,47,10,47,12,47,1701,9,47,1,47,1,47,3,47,1705,8,47,3,47,1707,8,47,1,47,1,47,3,47,1711,8,47,1,47,3,47,1714,8,47,1,47,3,47,1717,8,47,1,47,1,47,5,47,1721,8,47,10,47,12,47,1724,9,47,1,47,1,47,3,47,1728,8,47,3,47,1730,8,47,1,47,1,47,1,47,3,47,1735,8,47,1,47,1,47,1,47,1,47,1,47,3,47,1742,8,47,3,47,1744,8,47,1,47,1,47,1,47,1,47,1,47,3,47,1751,8,47,1,48,1,48,1,48,3,48,1756,8,48,1,48,1,48,3,48,1760,8,48,1,48,3,48,1763,8,48,1,49,1,49,1,49,1,49,1,49,1,49,3,49,1771,8,49,1,49,1,49,1,49,1,49,1,49,1,49,3,49,1779,8,49,3,49,1781,8,49,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,3,50,1791,8,50,1,51,1,51,3,51,1795,8,51,1,51,3,51,1798,8,51,1,51,1,51,5,51,1802,8,51,10,51,12,51,1805,9,51,1,51,1,51,3,51,1809,8,51,1,51,3,51,1812,8,51,1,51,1,51,5,51,1816,8,51,10,51,12,51,1819,9,51,3,51,1821,8,51,1,52,1,52,3,52,1825,8,52,1,52,3,52,1828,8,52,1,52,1,52,3,52,1832,8,52,1,52,1,52,1,52,3,52,1837,8,52,1,52,1,52,1,52,3,52,1842,8,52,1,52,1,52,1,52,3,52,1847,8,52,1,52,1,52,3,52,1851,8,52,1,52,1,52,3,52,1855,8,52,1,52,1,52,3,52,1859,8,52,1,52,1,52,3,52,1863,8,52,1,52,1,52,3,52,1867,8,52,1,52,1,52,3,52,1871,8,52,1,52,1,52,1,52,3,52,1876,8,52,1,52,1,52,1,52,3,52,1881,8,52,1,52,1,52,1,52,3,52,1886,8,52,1,52,1,52,1,52,1,52,3,52,1892,8,52,1,52,1,52,1,52,3,52,1897,8,52,1,52,1,52,1,52,3,52,1902,8,52,1,52,1,52,1,52,3,52,1907,8,52,1,52,1,52,1,52,3,52,1912,8,52,1,52,1,52,1,52,3,52,1917,8,52,1,52,1,52,1,52,1,52,3,52,1923,8,52,1,52,1,52,1,52,3,52,1928,8,52,1,52,1,52,1,52,3,52,1933,8,52,1,52,1,52,1,52,3,52,1938,8,52,1,52,1,52,1,52,3,52,1943,8,52,1,52,1,52,1,52,3,52,1948,8,52,1,52,1,52,1,52,3,52,1953,8,52,1,52,1,52,1,52,3,52,1958,8,52,1,52,1,52,1,52,1,52,1,52,3,52,1965,8,52,1,52,1,52,1,52,3,52,1970,8,52,1,52,1,52,1,52,3,52,1975,8,52,1,52,1,52,1,52,3,52,1980,8,52,1,52,1,52,3,52,1984,8,52,1,52,1,52,1,52,3,52,1989,8,52,1,52,1,52,1,52,1,52,1,52,1,52,3,52,1997,8,52,1,52,1,52,1,52,3,52,2002,8,52,1,52,1,52,1,52,1,52,3,52,2008,8,52,1,53,1,53,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,55,3,55,2020,8,55,1,55,1,55,1,55,1,55,1,55,3,55,2027,8,55,3,55,2029,8,55,1,55,1,55,1,55,1,55,5,55,2035,8,55,10,55,12,55,2038,9,55,1,55,1,55,3,55,2042,8,55,1,56,3,56,2045,8,56,1,56,1,56,1,56,1,56,1,56,1,56,3,56,2053,8,56,1,56,1,56,1,56,1,56,3,56,2059,8,56,1,56,1,56,3,56,2063,8,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,3,56,2076,8,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,3,56,2088,8,56,3,56,2090,8,56,1,57,3,57,2093,8,57,1,57,1,57,1,57,1,57,1,57,1,57,3,57,2101,8,57,1,57,1,57,1,57,1,57,3,57,2107,8,57,1,57,1,57,1,57,1,57,3,57,2113,8,57,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,5,58,2124,8,58,10,58,12,58,2127,9,58,1,58,1,58,5,58,2131,8,58,10,58,12,58,2134,9,58,1,58,1,58,1,58,1,58,5,58,2140,8,58,10,58,12,58,2143,9,58,1,58,1,58,3,58,2147,8,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,5,58,2156,8,58,10,58,12,58,2159,9,58,1,58,1,58,1,58,1,58,5,58,2165,8,58,10,58,12,58,2168,9,58,1,58,1,58,3,58,2172,8,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,5,58,2182,8,58,10,58,12,58,2185,9,58,1,58,1,58,5,58,2189,8,58,10,58,12,58,2192,9,58,1,58,1,58,1,58,1,58,5,58,2198,8,58,10,58,12,58,2201,9,58,1,58,1,58,3,58,2205,8,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,5,58,2215,8,58,10,58,12,58,2218,9,58,1,58,1,58,5,58,2222,8,58,10,58,12,58,2225,9,58,1,58,1,58,1,58,1,58,5,58,2231,8,58,10,58,12,58,2234,9,58,1,58,1,58,3,58,2238,8,58,1,58,1,58,1,58,5,58,2243,8,58,10,58,12,58,2246,9,58,1,58,1,58,1,58,1,58,5,58,2252,8,58,10,58,12,58,2255,9,58,1,58,1,58,3,58,2259,8,58,3,58,2261,8,58,1,59,1,59,1,59,3,59,2266,8,59,1,60,1,60,1,60,1,60,4,60,2272,8,60,11,60,12,60,2273,1,60,1,60,1,61,1,61,1,61,5,61,2281,8,61,10,61,12,61,2284,9,61,1,62,3,62,2287,8,62,1,62,3,62,2290,8,62,1,62,1,62,3,62,2294,8,62,1,62,1,62,1,62,3,62,2299,8,62,1,62,1,62,1,62,1,62,3,62,2305,8,62,1,62,1,62,1,62,1,62,3,62,2311,8,62,1,62,1,62,1,62,3,62,2316,8,62,1,62,1,62,1,62,3,62,2321,8,62,1,62,1,62,1,62,3,62,2326,8,62,1,62,1,62,1,62,3,62,2331,8,62,1,62,3,62,2334,8,62,1,63,1,63,1,63,1,63,4,63,2340,8,63,11,63,12,63,2341,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,3,63,2352,8,63,1,64,1,64,3,64,2356,8,64,1,64,1,64,1,64,1,64,1,64,3,64,2363,8,64,1,64,1,64,1,64,3,64,2368,8,64,1,64,3,64,2371,8,64,1,64,1,64,1,64,3,64,2376,8,64,1,64,3,64,2379,8,64,1,64,1,64,3,64,2383,8,64,1,64,1,64,3,64,2387,8,64,1,65,1,65,1,65,1,65,5,65,2393,8,65,10,65,12,65,2396,9,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,3,67,2414,8,67,1,67,3,67,2417,8,67,1,67,3,67,2420,8,67,1,67,1,67,3,67,2424,8,67,1,67,1,67,1,68,1,68,1,68,1,68,5,68,2432,8,68,10,68,12,68,2435,9,68,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,5,69,2445,8,69,10,69,12,69,2448,9,69,1,69,1,69,1,70,1,70,3,70,2454,8,70,1,70,3,70,2457,8,70,1,70,1,70,1,70,3,70,2462,8,70,1,70,1,70,1,70,5,70,2467,8,70,10,70,12,70,2470,9,70,3,70,2472,8,70,1,70,3,70,2475,8,70,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,3,71,2486,8,71,1,71,3,71,2489,8,71,1,71,1,71,3,71,2493,8,71,1,71,1,71,1,72,1,72,1,72,1,72,3,72,2501,8,72,1,72,3,72,2504,8,72,1,72,1,72,1,72,3,72,2509,8,72,1,72,1,72,1,72,1,72,1,72,1,72,3,72,2517,8,72,1,72,1,72,1,72,1,72,3,72,2523,8,72,1,72,1,72,3,72,2527,8,72,1,73,1,73,3,73,2531,8,73,1,73,5,73,2534,8,73,10,73,12,73,2537,9,73,1,73,1,73,3,73,2541,8,73,1,73,1,73,1,73,1,73,1,73,3,73,2548,8,73,1,73,1,73,3,73,2552,8,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,5,73,2561,8,73,10,73,12,73,2564,9,73,1,73,1,73,1,73,1,73,1,73,3,73,2571,8,73,1,73,3,73,2574,8,73,1,73,1,73,5,73,2578,8,73,10,73,12,73,2581,9,73,1,73,1,73,1,73,3,73,2586,8,73,3,73,2588,8,73,1,73,1,73,1,73,3,73,2593,8,73,1,73,3,73,2596,8,73,1,73,1,73,5,73,2600,8,73,10,73,12,73,2603,9,73,1,73,1,73,1,73,3,73,2608,8,73,3,73,2610,8,73,1,73,1,73,3,73,2614,8,73,1,73,3,73,2617,8,73,1,73,3,73,2620,8,73,1,73,1,73,5,73,2624,8,73,10,73,12,73,2627,9,73,1,73,1,73,1,73,3,73,2632,8,73,1,73,3,73,2635,8,73,1,73,1,73,5,73,2639,8,73,10,73,12,73,2642,9,73,1,73,1,73,1,73,3,73,2647,8,73,3,73,2649,8,73,1,73,1,73,1,73,3,73,2654,8,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,2662,8,73,3,73,2664,8,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,2673,8,73,1,73,3,73,2676,8,73,1,73,3,73,2679,8,73,1,73,1,73,1,73,3,73,2684,8,73,3,73,2686,8,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,2695,8,73,1,73,3,73,2698,8,73,1,73,3,73,2701,8,73,1,73,1,73,1,73,3,73,2706,8,73,3,73,2708,8,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,2717,8,73,1,73,1,73,1,73,3,73,2722,8,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,2730,8,73,1,73,1,73,3,73,2734,8,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,2742,8,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,2752,8,73,1,73,1,73,1,73,3,73,2757,8,73,1,73,1,73,1,73,1,73,1,73,3,73,2764,8,73,1,73,1,73,3,73,2768,8,73,1,73,1,73,3,73,2772,8,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,2791,8,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,2801,8,73,1,73,1,73,1,73,1,73,3,73,2807,8,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,2824,8,73,1,73,1,73,3,73,2828,8,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,2838,8,73,1,73,1,73,1,73,3,73,2843,8,73,1,73,3,73,2846,8,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,2855,8,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,73,3,73,2866,8,73,1,73,1,73,1,73,1,73,5,73,2872,8,73,10,73,12,73,2875,9,73,1,73,1,73,1,73,3,73,2880,8,73,1,74,1,74,1,74,1,74,1,74,1,74,5,74,2888,8,74,10,74,12,74,2891,9,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,3,74,2902,8,74,1,74,1,74,1,74,1,74,1,74,3,74,2909,8,74,1,74,1,74,1,74,1,74,1,74,3,74,2916,8,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,5,74,2929,8,74,10,74,12,74,2932,9,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,3,74,2944,8,74,1,74,1,74,1,74,1,74,3,74,2950,8,74,1,74,1,74,1,74,1,74,3,74,2956,8,74,1,74,1,74,1,74,1,74,3,74,2962,8,74,1,74,1,74,1,74,1,74,3,74,2968,8,74,1,74,1,74,1,74,1,74,3,74,2974,8,74,1,74,1,74,1,74,1,74,3,74,2980,8,74,1,75,1,75,1,75,3,75,2985,8,75,1,75,1,75,1,76,1,76,1,76,3,76,2992,8,76,1,76,1,76,1,77,1,77,1,77,3,77,2999,8,77,1,77,1,77,1,77,1,77,1,77,3,77,3006,8,77,1,77,1,77,1,77,3,77,3011,8,77,1,77,5,77,3014,8,77,10,77,12,77,3017,9,77,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,3,79,3030,8,79,1,79,1,79,1,80,1,80,1,80,3,80,3037,8,80,1,80,1,80,1,81,1,81,1,81,3,81,3044,8,81,1,81,1,81,1,82,1,82,3,82,3050,8,82,1,82,1,82,3,82,3054,8,82,1,82,1,82,3,82,3058,8,82,1,83,1,83,1,83,1,83,1,83,3,83,3065,8,83,1,83,3,83,3068,8,83,1,84,1,84,1,84,3,84,3073,8,84,1,84,1,84,1,85,1,85,1,85,3,85,3080,8,85,1,85,1,85,1,85,5,85,3085,8,85,10,85,12,85,3088,9,85,1,85,3,85,3091,8,85,1,86,1,86,1,86,3,86,3096,8,86,1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,87,3,87,3106,8,87,1,87,1,87,1,87,1,87,1,87,3,87,3113,8,87,1,88,1,88,1,88,1,88,1,88,5,88,3120,8,88,10,88,12,88,3123,9,88,1,89,1,89,1,89,1,89,1,90,1,90,3,90,3131,8,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,3,91,3140,8,91,1,91,3,91,3143,8,91,1,92,1,92,3,92,3147,8,92,1,93,1,93,1,93,1,94,1,94,1,94,1,94,3,94,3156,8,94,1,95,1,95,3,95,3160,8,95,1,95,3,95,3163,8,95,1,95,3,95,3166,8,95,1,95,1,95,1,95,1,95,3,95,3172,8,95,1,95,3,95,3175,8,95,1,95,1,95,3,95,3179,8,95,1,95,3,95,3182,8,95,1,95,1,95,3,95,3186,8,95,1,95,3,95,3189,8,95,1,95,1,95,1,95,1,95,5,95,3195,8,95,10,95,12,95,3198,9,95,3,95,3200,8,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,5,95,3209,8,95,10,95,12,95,3212,9,95,3,95,3214,8,95,1,96,1,96,1,96,3,96,3219,8,96,1,96,3,96,3222,8,96,1,96,1,96,1,96,3,96,3227,8,96,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,96,3,96,3237,8,96,1,96,1,96,1,96,3,96,3242,8,96,1,96,1,96,4,96,3246,8,96,11,96,12,96,3247,3,96,3250,8,96,1,96,1,96,4,96,3254,8,96,11,96,12,96,3255,3,96,3258,8,96,1,96,1,96,1,96,1,96,3,96,3264,8,96,1,96,1,96,1,96,1,96,5,96,3270,8,96,10,96,12,96,3273,9,96,1,96,1,96,3,96,3277,8,96,1,96,1,96,1,96,1,96,5,96,3283,8,96,10,96,12,96,3286,9,96,3,96,3288,8,96,1,97,1,97,1,97,3,97,3293,8,97,1,97,3,97,3296,8,97,1,97,1,97,1,97,3,97,3301,8,97,1,97,1,97,1,97,1,97,1,97,1,97,3,97,3309,8,97,1,97,1,97,1,97,1,97,1,97,1,97,3,97,3317,8,97,1,97,1,97,1,97,1,97,3,97,3323,8,97,1,97,1,97,1,97,1,97,5,97,3329,8,97,10,97,12,97,3332,9,97,1,97,1,97,3,97,3336,8,97,1,97,1,97,1,97,1,97,5,97,3342,8,97,10,97,12,97,3345,9,97,3,97,3347,8,97,1,98,1,98,3,98,3351,8,98,1,98,3,98,3354,8,98,1,98,1,98,1,98,1,98,1,98,1,98,3,98,3362,8,98,1,98,1,98,1,98,1,98,3,98,3368,8,98,1,98,1,98,1,98,1,98,1,98,5,98,3375,8,98,10,98,12,98,3378,9,98,3,98,3380,8,98,1,99,1,99,3,99,3384,8,99,1,99,1,99,3,99,3388,8,99,1,99,1,99,3,99,3392,8,99,1,99,4,99,3395,8,99,11,99,12,99,3396,1,99,1,99,3,99,3401,8,99,1,99,1,99,3,99,3405,8,99,3,99,3407,8,99,1,99,3,99,3410,8,99,1,99,3,99,3413,8,99,1,99,3,99,3416,8,99,1,99,1,99,4,99,3420,8,99,11,99,12,99,3421,1,99,1,99,3,99,3426,8,99,1,99,3,99,3429,8,99,1,99,3,99,3432,8,99,1,99,3,99,3435,8,99,1,99,3,99,3438,8,99,1,99,1,99,1,99,4,99,3443,8,99,11,99,12,99,3444,3,99,3447,8,99,1,100,1,100,3,100,3451,8,100,1,101,1,101,1,101,3,101,3456,8,101,1,101,1,101,1,101,1,101,3,101,3462,8,101,1,101,5,101,3465,8,101,10,101,12,101,3468,9,101,1,102,1,102,1,102,1,102,3,102,3474,8,102,1,102,1,102,1,102,1,102,3,102,3480,8,102,1,102,5,102,3483,8,102,10,102,12,102,3486,9,102,3,102,3488,8,102,1,103,1,103,1,103,1,103,3,103,3494,8,103,1,104,1,104,3,104,3498,8,104,1,105,1,105,1,105,1,105,1,105,1,105,3,105,3506,8,105,1,106,1,106,3,106,3510,8,106,1,106,3,106,3513,8,106,1,106,3,106,3516,8,106,1,106,1,106,1,106,3,106,3521,8,106,1,106,3,106,3524,8,106,1,106,1,106,1,106,1,106,1,106,3,106,3531,8,106,1,106,1,106,3,106,3535,8,106,1,106,3,106,3538,8,106,1,106,1,106,3,106,3542,8,106,1,107,1,107,3,107,3546,8,107,1,107,3,107,3549,8,107,1,107,3,107,3552,8,107,1,107,1,107,1,107,3,107,3557,8,107,1,107,1,107,1,107,1,107,3,107,3563,8,107,5,107,3565,8,107,10,107,12,107,3568,9,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,3,107,3577,8,107,1,107,1,107,1,107,1,107,3,107,3583,8,107,5,107,3585,8,107,10,107,12,107,3588,9,107,1,107,1,107,1,107,3,107,3593,8,107,1,107,1,107,3,107,3597,8,107,1,108,1,108,1,108,1,108,3,108,3603,8,108,1,108,3,108,3606,8,108,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,3,109,3618,8,109,1,109,1,109,3,109,3622,8,109,1,109,1,109,3,109,3626,8,109,1,110,1,110,1,110,1,110,1,110,1,110,3,110,3634,8,110,1,110,1,110,3,110,3638,8,110,1,111,1,111,1,111,1,111,1,112,1,112,3,112,3646,8,112,1,112,3,112,3649,8,112,1,112,1,112,3,112,3653,8,112,1,112,3,112,3656,8,112,1,112,1,112,1,112,1,112,5,112,3662,8,112,10,112,12,112,3665,9,112,1,112,1,112,3,112,3669,8,112,1,112,3,112,3672,8,112,1,112,3,112,3675,8,112,1,113,1,113,3,113,3679,8,113,1,113,3,113,3682,8,113,1,113,1,113,1,113,1,113,1,113,5,113,3689,8,113,10,113,12,113,3692,9,113,1,113,1,113,3,113,3696,8,113,1,114,1,114,1,114,1,114,1,114,5,114,3703,8,114,10,114,12,114,3706,9,114,1,115,1,115,3,115,3710,8,115,1,116,1,116,1,116,5,116,3715,8,116,10,116,12,116,3718,9,116,1,117,1,117,5,117,3722,8,117,10,117,12,117,3725,9,117,1,117,1,117,1,117,5,117,3730,8,117,10,117,12,117,3733,9,117,1,117,1,117,1,117,3,117,3738,8,117,1,118,1,118,1,118,1,118,1,118,1,118,3,118,3746,8,118,1,118,3,118,3749,8,118,1,118,3,118,3752,8,118,1,118,1,118,1,118,5,118,3757,8,118,10,118,12,118,3760,9,118,3,118,3762,8,118,1,118,1,118,1,118,1,118,1,118,3,118,3769,8,118,1,118,1,118,1,118,1,118,1,118,1,118,3,118,3777,8,118,1,119,1,119,1,119,1,119,3,119,3783,8,119,1,119,1,119,1,119,1,119,1,120,1,120,1,120,1,120,1,120,3,120,3794,8,120,1,121,3,121,3797,8,121,1,121,1,121,3,121,3801,8,121,1,121,1,121,5,121,3805,8,121,10,121,12,121,3808,9,121,1,121,1,121,1,121,1,121,5,121,3814,8,121,10,121,12,121,3817,9,121,1,121,1,121,3,121,3821,8,121,1,121,1,121,3,121,3825,8,121,1,121,1,121,5,121,3829,8,121,10,121,12,121,3832,9,121,1,121,1,121,1,121,3,121,3837,8,121,3,121,3839,8,121,1,121,1,121,3,121,3843,8,121,1,122,1,122,1,122,1,122,1,122,1,122,1,122,3,122,3852,8,122,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,3,123,3862,8,123,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,3,124,3872,8,124,1,125,1,125,5,125,3876,8,125,10,125,12,125,3879,9,125,1,125,1,125,3,125,3883,8,125,1,125,1,125,3,125,3887,8,125,1,125,3,125,3890,8,125,1,125,3,125,3893,8,125,1,125,3,125,3896,8,125,1,125,3,125,3899,8,125,1,125,1,125,5,125,3903,8,125,10,125,12,125,3906,9,125,1,125,1,125,1,125,3,125,3911,8,125,1,125,3,125,3914,8,125,1,125,3,125,3917,8,125,1,125,3,125,3920,8,125,1,125,3,125,3923,8,125,1,125,3,125,3926,8,125,3,125,3928,8,125,1,126,1,126,5,126,3932,8,126,10,126,12,126,3935,9,126,1,126,1,126,1,126,3,126,3940,8,126,1,126,3,126,3943,8,126,1,126,3,126,3946,8,126,1,126,3,126,3949,8,126,1,126,3,126,3952,8,126,1,126,3,126,3955,8,126,1,127,1,127,3,127,3959,8,127,1,127,1,127,1,128,1,128,3,128,3965,8,128,1,128,1,128,3,128,3969,8,128,1,129,1,129,1,129,1,129,1,129,1,129,3,129,3977,8,129,1,129,1,129,3,129,3981,8,129,1,129,3,129,3984,8,129,3,129,3986,8,129,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,3,130,3999,8,130,1,130,3,130,4002,8,130,1,131,1,131,1,131,5,131,4007,8,131,10,131,12,131,4010,9,131,1,132,1,132,1,132,1,132,1,132,1,132,1,132,3,132,4019,8,132,1,132,3,132,4022,8,132,1,132,1,132,1,132,3,132,4027,8,132,3,132,4029,8,132,1,132,1,132,3,132,4033,8,132,1,132,1,132,1,132,1,132,1,132,1,132,3,132,4041,8,132,1,133,1,133,1,133,1,133,3,133,4047,8,133,1,133,1,133,1,133,1,134,1,134,1,134,1,134,3,134,4056,8,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,3,135,4069,8,135,1,136,1,136,3,136,4073,8,136,1,136,1,136,5,136,4077,8,136,10,136,12,136,4080,9,136,1,137,3,137,4083,8,137,1,137,1,137,1,138,1,138,1,138,1,138,1,138,1,138,3,138,4093,8,138,1,138,1,138,3,138,4097,8,138,1,138,1,138,3,138,4101,8,138,1,138,1,138,3,138,4105,8,138,3,138,4107,8,138,1,139,1,139,1,139,1,139,5,139,4113,8,139,10,139,12,139,4116,9,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,3,139,4127,8,139,1,139,1,139,4,139,4131,8,139,11,139,12,139,4132,3,139,4135,8,139,1,139,1,139,4,139,4139,8,139,11,139,12,139,4140,3,139,4143,8,139,3,139,4145,8,139,1,140,1,140,1,140,1,140,3,140,4151,8,140,1,140,1,140,1,140,1,140,1,140,1,140,3,140,4159,8,140,1,141,1,141,1,141,1,141,1,141,1,141,3,141,4167,8,141,1,142,1,142,3,142,4171,8,142,1,142,1,142,3,142,4175,8,142,1,143,1,143,1,143,1,143,1,143,5,143,4182,8,143,10,143,12,143,4185,9,143,1,143,1,143,3,143,4189,8,143,1,144,1,144,1,144,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,5,145,4207,8,145,10,145,12,145,4210,9,145,1,146,1,146,3,146,4214,8,146,1,147,1,147,1,147,1,147,3,147,4220,8,147,1,147,1,147,1,147,1,147,1,147,3,147,4227,8,147,1,148,1,148,1,148,3,148,4232,8,148,1,149,1,149,1,149,1,149,1,149,5,149,4239,8,149,10,149,12,149,4242,9,149,3,149,4244,8,149,1,150,1,150,3,150,4248,8,150,1,151,1,151,3,151,4252,8,151,1,151,1,151,3,151,4256,8,151,1,151,3,151,4259,8,151,1,151,3,151,4262,8,151,1,151,3,151,4265,8,151,1,152,1,152,3,152,4269,8,152,1,152,1,152,3,152,4273,8,152,1,152,3,152,4276,8,152,1,152,3,152,4279,8,152,1,152,3,152,4282,8,152,1,153,1,153,1,153,1,154,1,154,3,154,4289,8,154,1,154,1,154,3,154,4293,8,154,1,154,1,154,1,155,1,155,1,155,1,155,1,156,1,156,1,156,1,156,1,156,5,156,4306,8,156,10,156,12,156,4309,9,156,1,156,3,156,4312,8,156,1,157,1,157,1,157,1,158,1,158,1,158,1,158,1,158,1,159,1,159,3,159,4324,8,159,1,159,1,159,1,159,1,159,5,159,4330,8,159,10,159,12,159,4333,9,159,1,160,1,160,1,160,1,160,1,160,1,160,1,160,3,160,4342,8,160,1,161,1,161,3,161,4346,8,161,1,161,3,161,4349,8,161,1,161,1,161,1,162,1,162,3,162,4355,8,162,1,162,3,162,4358,8,162,1,162,3,162,4361,8,162,1,163,1,163,1,163,1,163,1,163,1,163,1,163,3,163,4370,8,163,1,164,1,164,1,164,1,164,1,164,1,164,1,164,3,164,4379,8,164,1,165,1,165,1,165,1,165,1,165,1,165,5,165,4387,8,165,10,165,12,165,4390,9,165,1,165,3,165,4393,8,165,1,166,1,166,1,166,1,166,1,166,1,166,5,166,4401,8,166,10,166,12,166,4404,9,166,1,167,1,167,1,167,1,167,1,167,1,167,1,167,3,167,4413,8,167,1,168,1,168,1,168,1,169,1,169,1,169,3,169,4421,8,169,1,169,3,169,4424,8,169,1,170,1,170,1,170,1,170,1,170,5,170,4431,8,170,10,170,12,170,4434,9,170,3,170,4436,8,170,1,170,1,170,3,170,4440,8,170,1,170,5,170,4443,8,170,10,170,12,170,4446,9,170,1,170,3,170,4449,8,170,1,171,1,171,1,171,1,171,1,171,5,171,4456,8,171,10,171,12,171,4459,9,171,3,171,4461,8,171,1,172,1,172,1,172,1,173,1,173,1,173,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,5,174,4490,8,174,10,174,12,174,4493,9,174,3,174,4495,8,174,1,174,3,174,4498,8,174,1,175,1,175,1,176,1,176,1,177,1,177,1,178,1,178,1,178,1,178,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,1,179,5,179,4552,8,179,10,179,12,179,4555,9,179,1,179,1,179,3,179,4559,8,179,1,180,1,180,1,180,1,180,1,180,1,180,1,181,1,181,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,3,182,4587,8,182,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,3,183,4601,8,183,1,184,1,184,1,184,5,184,4606,8,184,10,184,12,184,4609,9,184,1,184,3,184,4612,8,184,1,185,1,185,1,185,1,185,3,185,4618,8,185,1,186,1,186,1,186,1,186,1,186,1,186,3,186,4626,8,186,3,186,4628,8,186,1,187,1,187,1,187,1,187,1,188,1,188,1,188,1,188,1,188,3,188,4639,8,188,1,189,1,189,1,189,1,189,1,190,1,190,1,190,1,190,3,190,4649,8,190,1,191,1,191,1,191,1,191,1,191,3,191,4656,8,191,1,192,1,192,1,192,1,192,3,192,4662,8,192,1,193,1,193,1,193,1,193,1,194,1,194,3,194,4670,8,194,1,195,1,195,1,195,3,195,4675,8,195,1,195,1,195,1,195,1,195,5,195,4681,8,195,10,195,12,195,4684,9,195,1,195,1,195,1,195,5,195,4689,8,195,10,195,12,195,4692,9,195,1,195,1,195,1,195,5,195,4697,8,195,10,195,12,195,4700,9,195,1,195,1,195,1,195,5,195,4705,8,195,10,195,12,195,4708,9,195,1,195,5,195,4711,8,195,10,195,12,195,4714,9,195,1,195,1,195,3,195,4718,8,195,1,196,1,196,1,196,3,196,4723,8,196,1,196,4,196,4726,8,196,11,196,12,196,4727,1,196,1,196,4,196,4732,8,196,11,196,12,196,4733,3,196,4736,8,196,1,196,1,196,1,196,1,197,1,197,1,197,1,197,4,197,4745,8,197,11,197,12,197,4746,1,197,5,197,4750,8,197,10,197,12,197,4753,9,197,1,197,1,197,4,197,4757,8,197,11,197,12,197,4758,3,197,4761,8,197,1,197,1,197,1,197,1,198,1,198,1,198,1,199,1,199,1,199,1,200,1,200,1,200,3,200,4775,8,200,1,200,1,200,4,200,4779,8,200,11,200,12,200,4780,1,200,1,200,1,200,3,200,4786,8,200,1,201,1,201,1,201,3,201,4791,8,201,1,201,1,201,4,201,4795,8,201,11,201,12,201,4796,1,201,1,201,1,201,1,201,1,201,3,201,4804,8,201,1,202,1,202,1,202,1,203,1,203,1,203,3,203,4812,8,203,1,203,1,203,1,203,1,203,4,203,4818,8,203,11,203,12,203,4819,1,203,1,203,1,203,3,203,4825,8,203,1,204,1,204,1,204,1,204,3,204,4831,8,204,1,204,3,204,4834,8,204,1,204,1,204,1,204,1,204,1,204,1,204,3,204,4842,8,204,1,205,1,205,1,205,1,205,1,205,3,205,4849,8,205,1,206,1,206,1,206,1,206,1,206,1,206,1,206,3,206,4858,8,206,1,206,3,206,4861,8,206,1,207,1,207,1,207,1,207,1,207,1,207,1,208,1,208,1,208,1,208,1,208,1,208,1,208,5,208,4876,8,208,10,208,12,208,4879,9,208,1,208,1,208,1,209,1,209,1,209,3,209,4886,8,209,1,209,1,209,1,209,1,209,1,209,1,209,3,209,4894,8,209,1,210,1,210,3,210,4898,8,210,1,210,1,210,1,211,1,211,1,211,3,211,4905,8,211,1,211,1,211,4,211,4909,8,211,11,211,12,211,4910,1,212,1,212,1,212,1,212,4,212,4917,8,212,11,212,12,212,4918,1,213,1,213,1,213,1,213,1,213,5,213,4926,8,213,10,213,12,213,4929,9,213,1,213,1,213,1,213,3,213,4934,8,213,1,213,1,213,1,213,1,213,1,213,3,213,4941,8,213,1,213,5,213,4944,8,213,10,213,12,213,4947,9,213,3,213,4949,8,213,3,213,4951,8,213,1,213,1,213,4,213,4955,8,213,11,213,12,213,4956,3,213,4959,8,213,1,213,1,213,5,213,4963,8,213,10,213,12,213,4966,9,213,1,213,1,213,1,213,1,213,3,213,4972,8,213,1,213,1,213,1,213,3,213,4977,8,213,1,213,1,213,1,213,1,213,1,213,3,213,4984,8,213,1,214,1,214,1,214,1,214,1,214,1,214,3,214,4992,8,214,1,214,1,214,1,214,1,214,3,214,4998,8,214,1,214,1,214,1,214,1,214,3,214,5004,8,214,1,214,5,214,5007,8,214,10,214,12,214,5010,9,214,3,214,5012,8,214,3,214,5014,8,214,1,214,1,214,4,214,5018,8,214,11,214,12,214,5019,3,214,5022,8,214,1,214,1,214,5,214,5026,8,214,10,214,12,214,5029,9,214,1,214,1,214,1,214,1,214,3,214,5035,8,214,3,214,5037,8,214,1,215,1,215,1,215,3,215,5042,8,215,1,215,1,215,1,216,1,216,1,216,1,216,5,216,5050,8,216,10,216,12,216,5053,9,216,1,216,1,216,3,216,5057,8,216,1,216,1,216,1,216,1,216,1,216,1,216,1,216,3,216,5066,8,216,1,216,5,216,5069,8,216,10,216,12,216,5072,9,216,3,216,5074,8,216,3,216,5076,8,216,1,216,1,216,1,216,1,216,5,216,5082,8,216,10,216,12,216,5085,9,216,3,216,5087,8,216,1,216,1,216,1,216,1,216,1,216,1,216,3,216,5095,8,216,1,216,1,216,1,216,1,216,1,216,1,216,1,216,3,216,5104,8,216,3,216,5106,8,216,1,217,1,217,1,217,1,217,1,217,3,217,5113,8,217,1,217,3,217,5116,8,217,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,5,218,5126,8,218,10,218,12,218,5129,9,218,1,218,1,218,1,218,3,218,5134,8,218,1,219,1,219,1,219,1,219,1,219,5,219,5141,8,219,10,219,12,219,5144,9,219,1,220,1,220,1,220,1,220,5,220,5150,8,220,10,220,12,220,5153,9,220,1,220,1,220,3,220,5157,8,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,3,220,5166,8,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,5,220,5177,8,220,10,220,12,220,5180,9,220,3,220,5182,8,220,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,5,221,5192,8,221,10,221,12,221,5195,9,221,1,222,1,222,1,222,1,222,3,222,5201,8,222,1,222,1,222,1,222,3,222,5206,8,222,1,223,1,223,1,223,1,224,1,224,1,224,5,224,5214,8,224,10,224,12,224,5217,9,224,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,3,225,5244,8,225,1,226,1,226,3,226,5248,8,226,1,226,1,226,1,226,3,226,5253,8,226,1,227,1,227,1,227,1,227,1,227,3,227,5260,8,227,1,227,3,227,5263,8,227,1,227,1,227,1,227,1,227,3,227,5269,8,227,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,3,228,5279,8,228,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,3,229,5289,8,229,1,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,3,230,5299,8,230,1,230,1,230,1,230,1,230,3,230,5305,8,230,1,230,1,230,1,230,1,230,1,230,1,230,1,230,3,230,5314,8,230,1,230,1,230,1,230,1,230,3,230,5320,8,230,1,230,1,230,1,230,1,230,1,230,3,230,5327,8,230,3,230,5329,8,230,1,231,1,231,1,231,1,232,1,232,1,232,1,232,1,232,3,232,5339,8,232,1,233,1,233,3,233,5343,8,233,1,233,1,233,3,233,5347,8,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,3,233,5357,8,233,1,233,1,233,1,233,3,233,5362,8,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,3,233,5434,8,233,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,3,234,5452,8,234,1,235,1,235,1,235,1,235,1,236,1,236,3,236,5460,8,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,5,236,5470,8,236,10,236,12,236,5473,9,236,1,236,1,236,1,236,1,236,3,236,5479,8,236,3,236,5481,8,236,1,236,1,236,1,236,1,236,1,236,1,236,5,236,5489,8,236,10,236,12,236,5492,9,236,3,236,5494,8,236,1,237,1,237,1,237,1,237,5,237,5500,8,237,10,237,12,237,5503,9,237,1,238,1,238,1,238,1,238,3,238,5509,8,238,1,239,1,239,3,239,5513,8,239,1,239,1,239,1,239,1,240,1,240,3,240,5520,8,240,1,240,1,240,1,240,3,240,5525,8,240,1,240,3,240,5528,8,240,1,240,3,240,5531,8,240,1,241,1,241,1,241,1,241,1,241,1,241,1,241,3,241,5540,8,241,1,242,1,242,3,242,5544,8,242,1,242,1,242,3,242,5548,8,242,1,242,1,242,1,242,1,242,1,242,1,242,1,243,1,243,1,243,1,243,1,243,1,243,1,244,1,244,1,244,1,244,1,245,1,245,1,245,1,245,1,245,3,245,5571,8,245,1,245,1,245,1,245,1,245,1,245,3,245,5578,8,245,5,245,5580,8,245,10,245,12,245,5583,9,245,1,245,1,245,1,245,1,245,3,245,5589,8,245,1,245,1,245,1,245,1,245,1,245,3,245,5596,8,245,1,245,3,245,5599,8,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,5,245,5613,8,245,10,245,12,245,5616,9,245,3,245,5618,8,245,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,3,246,5628,8,246,1,246,1,246,3,246,5632,8,246,1,246,1,246,1,246,1,246,3,246,5638,8,246,1,246,3,246,5641,8,246,1,246,1,246,1,246,3,246,5646,8,246,1,246,1,246,3,246,5650,8,246,1,246,1,246,1,246,1,246,1,246,3,246,5657,8,246,1,246,3,246,5660,8,246,1,246,1,246,1,246,1,246,3,246,5666,8,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,3,246,5698,8,246,1,246,3,246,5701,8,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,3,246,5713,8,246,1,246,3,246,5716,8,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,3,246,5726,8,246,1,246,1,246,1,246,1,246,1,246,1,246,3,246,5734,8,246,1,246,1,246,3,246,5738,8,246,1,246,1,246,1,246,1,246,1,246,3,246,5745,8,246,1,246,3,246,5748,8,246,1,246,1,246,1,246,1,246,1,246,5,246,5755,8,246,10,246,12,246,5758,9,246,1,246,1,246,1,246,3,246,5763,8,246,1,246,1,246,1,246,1,246,3,246,5769,8,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,3,246,5779,8,246,3,246,5781,8,246,1,247,1,247,1,247,1,247,3,247,5787,8,247,1,247,3,247,5790,8,247,1,247,3,247,5793,8,247,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,248,3,248,5805,8,248,1,248,3,248,5808,8,248,1,249,1,249,1,249,1,249,3,249,5814,8,249,1,250,3,250,5817,8,250,1,250,1,250,1,250,1,250,1,250,1,250,3,250,5825,8,250,1,250,1,250,1,250,1,250,1,250,1,250,3,250,5833,8,250,1,251,1,251,1,251,1,251,3,251,5839,8,251,1,251,1,251,3,251,5843,8,251,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,3,252,5857,8,252,1,253,1,253,1,253,1,254,1,254,1,254,1,254,1,254,5,254,5867,8,254,10,254,12,254,5870,9,254,1,254,1,254,1,254,1,254,3,254,5876,8,254,1,254,3,254,5879,8,254,1,254,1,254,1,254,1,255,1,255,3,255,5886,8,255,1,255,1,255,1,255,5,255,5891,8,255,10,255,12,255,5894,9,255,1,256,1,256,3,256,5898,8,256,1,256,1,256,1,257,1,257,1,257,1,257,1,257,1,257,1,257,5,257,5909,8,257,10,257,12,257,5912,9,257,1,258,1,258,1,258,1,258,1,259,1,259,1,260,1,260,3,260,5922,8,260,1,260,1,260,1,260,1,260,3,260,5928,8,260,1,261,1,261,1,261,3,261,5933,8,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,3,261,5946,8,261,3,261,5948,8,261,1,261,1,261,1,261,3,261,5953,8,261,1,261,1,261,3,261,5957,8,261,1,261,3,261,5960,8,261,3,261,5962,8,261,1,262,1,262,1,262,1,262,1,262,3,262,5969,8,262,1,263,1,263,1,263,1,263,1,263,3,263,5976,8,263,1,263,3,263,5979,8,263,1,263,3,263,5982,8,263,1,263,1,263,1,263,1,263,3,263,5988,8,263,1,263,1,263,3,263,5992,8,263,1,264,1,264,1,264,1,264,3,264,5998,8,264,1,265,1,265,1,265,1,265,3,265,6004,8,265,1,265,1,265,1,266,1,266,1,266,1,267,1,267,1,267,1,268,1,268,1,268,3,268,6017,8,268,1,268,1,268,1,268,3,268,6022,8,268,1,268,1,268,1,268,1,268,5,268,6028,8,268,10,268,12,268,6031,9,268,3,268,6033,8,268,1,269,1,269,1,269,3,269,6038,8,269,1,269,1,269,1,269,3,269,6043,8,269,1,269,1,269,1,269,1,269,5,269,6049,8,269,10,269,12,269,6052,9,269,3,269,6054,8,269,1,270,1,270,1,270,1,270,1,270,1,270,3,270,6062,8,270,1,271,1,271,3,271,6066,8,271,1,271,1,271,1,271,5,271,6071,8,271,10,271,12,271,6074,9,271,1,272,1,272,1,272,3,272,6079,8,272,1,272,3,272,6082,8,272,1,273,1,273,3,273,6086,8,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,5,273,6097,8,273,10,273,12,273,6100,9,273,1,273,1,273,1,273,3,273,6105,8,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,5,273,6115,8,273,10,273,12,273,6118,9,273,3,273,6120,8,273,1,274,1,274,1,275,1,275,1,275,1,275,1,275,3,275,6129,8,275,1,275,1,275,1,275,3,275,6134,8,275,1,276,1,276,1,276,1,276,3,276,6140,8,276,1,277,1,277,1,278,1,278,1,278,5,278,6147,8,278,10,278,12,278,6150,9,278,1,279,1,279,3,279,6154,8,279,1,280,1,280,1,280,5,280,6159,8,280,10,280,12,280,6162,9,280,1,281,1,281,1,281,5,281,6167,8,281,10,281,12,281,6170,9,281,1,282,1,282,1,283,1,283,1,283,5,283,6177,8,283,10,283,12,283,6180,9,283,1,284,1,284,1,285,1,285,1,285,3,285,6187,8,285,3,285,6189,8,285,1,285,3,285,6192,8,285,1,285,1,285,3,285,6196,8,285,3,285,6198,8,285,1,286,1,286,1,287,1,287,1,288,1,288,1,289,1,289,1,290,1,290,1,290,5,290,6211,8,290,10,290,12,290,6214,9,290,1,291,1,291,3,291,6218,8,291,1,291,1,291,1,291,1,291,3,291,6224,8,291,1,291,3,291,6227,8,291,1,291,3,291,6230,8,291,1,292,1,292,1,292,1,292,3,292,6236,8,292,1,293,1,293,1,294,1,294,1,294,5,294,6243,8,294,10,294,12,294,6246,9,294,1,295,1,295,1,295,1,295,1,295,3,295,6253,8,295,1,296,1,296,1,297,1,297,1,298,1,298,1,298,1,298,3,298,6263,8,298,1,299,1,299,3,299,6267,8,299,1,300,1,300,1,300,3,300,6272,8,300,1,301,1,301,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,1,302,4,302,6290,8,302,11,302,12,302,6291,1,303,1,303,1,303,1,303,1,303,3,303,6299,8,303,3,303,6301,8,303,1,304,1,304,1,304,4,304,6306,8,304,11,304,12,304,6307,3,304,6310,8,304,1,305,1,305,3,305,6314,8,305,1,306,1,306,1,306,3,306,6319,8,306,1,307,1,307,1,307,1,307,1,307,1,307,1,307,1,307,1,307,3,307,6330,8,307,1,308,1,308,1,308,3,308,6335,8,308,1,309,1,309,1,310,1,310,3,310,6341,8,310,1,311,3,311,6344,8,311,1,311,1,311,3,311,6348,8,311,1,311,4,311,6351,8,311,11,311,12,311,6352,1,311,3,311,6356,8,311,1,311,1,311,3,311,6360,8,311,1,311,1,311,3,311,6364,8,311,3,311,6366,8,311,1,312,1,312,1,313,3,313,6371,8,313,1,313,1,313,1,314,3,314,6376,8,314,1,314,1,314,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,315,1,315,3,315,6389,8,315,1,315,3,315,6392,8,315,1,316,1,316,3,316,6396,8,316,1,316,3,316,6399,8,316,1,316,3,316,6402,8,316,1,316,1,316,1,316,3,316,6407,8,316,1,316,1,316,1,316,3,316,6412,8,316,1,316,1,316,1,316,1,316,3,316,6418,8,316,1,316,3,316,6421,8,316,1,316,1,316,1,316,3,316,6426,8,316,1,316,3,316,6429,8,316,1,316,1,316,1,316,3,316,6434,8,316,1,316,3,316,6437,8,316,1,316,1,316,3,316,6441,8,316,1,316,5,316,6444,8,316,10,316,12,316,6447,9,316,1,316,1,316,3,316,6451,8,316,1,316,5,316,6454,8,316,10,316,12,316,6457,9,316,1,316,1,316,3,316,6461,8,316,1,316,3,316,6464,8,316,1,316,5,316,6467,8,316,10,316,12,316,6470,9,316,1,316,1,316,3,316,6474,8,316,1,316,5,316,6477,8,316,10,316,12,316,6480,9,316,1,316,1,316,1,316,3,316,6485,8,316,1,316,1,316,1,316,3,316,6490,8,316,1,316,1,316,1,316,3,316,6495,8,316,1,316,1,316,1,316,3,316,6500,8,316,1,316,1,316,3,316,6504,8,316,1,316,3,316,6507,8,316,1,316,1,316,1,316,3,316,6512,8,316,1,316,1,316,3,316,6516,8,316,1,316,1,316,3,316,6520,8,316,1,317,1,317,1,317,1,317,5,317,6526,8,317,10,317,12,317,6529,9,317,1,317,1,317,1,318,1,318,3,318,6535,8,318,1,318,1,318,3,318,6539,8,318,1,318,1,318,1,318,3,318,6544,8,318,1,318,1,318,1,318,3,318,6549,8,318,1,318,1,318,3,318,6553,8,318,3,318,6555,8,318,1,318,3,318,6558,8,318,1,319,1,319,1,319,1,319,1,320,1,320,1,320,1,320,1,320,1,320,1,321,1,321,1,321,1,321,3,321,6574,8,321,1,321,1,321,1,322,1,322,1,322,5,322,6581,8,322,10,322,12,322,6584,9,322,1,323,1,323,1,323,5,323,6589,8,323,10,323,12,323,6592,9,323,1,324,1,324,1,324,5,324,6597,8,324,10,324,12,324,6600,9,324,1,325,1,325,1,325,1,325,5,325,6606,8,325,10,325,12,325,6609,9,325,1,325,1,325,1,326,1,326,1,326,5,326,6616,8,326,10,326,12,326,6619,9,326,1,327,1,327,1,327,5,327,6624,8,327,10,327,12,327,6627,9,327,1,328,1,328,1,328,5,328,6632,8,328,10,328,12,328,6635,9,328,1,329,1,329,1,329,5,329,6640,8,329,10,329,12,329,6643,9,329,1,330,1,330,1,330,5,330,6648,8,330,10,330,12,330,6651,9,330,1,331,1,331,1,331,1,331,1,331,1,331,1,331,1,331,1,331,3,331,6662,8,331,1,331,1,331,1,331,1,331,1,331,3,331,6669,8,331,1,331,1,331,1,331,1,331,1,331,1,331,1,331,1,331,3,331,6679,8,331,1,332,1,332,1,332,3,332,6684,8,332,1,332,3,332,6687,8,332,1,332,1,332,1,332,3,332,6692,8,332,1,332,3,332,6695,8,332,1,333,1,333,3,333,6699,8,333,1,334,1,334,1,334,1,335,1,335,1,335,1,335,1,336,1,336,1,336,1,337,1,337,1,337,3,337,6714,8,337,1,338,1,338,1,338,1,338,1,338,1,338,3,338,6722,8,338,1,338,1,338,1,338,1,338,1,338,3,338,6729,8,338,1,338,1,338,1,338,3,338,6734,8,338,1,339,1,339,1,339,3,339,6739,8,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,4,339,6771,8,339,11,339,12,339,6772,1,339,1,339,3,339,6777,8,339,1,339,1,339,1,339,1,339,4,339,6783,8,339,11,339,12,339,6784,1,339,1,339,3,339,6789,8,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,3,339,6798,8,339,1,339,1,339,1,339,1,339,1,339,1,339,3,339,6806,8,339,1,339,1,339,1,339,3,339,6811,8,339,1,339,1,339,1,339,1,339,1,339,1,339,3,339,6819,8,339,1,339,1,339,1,339,3,339,6824,8,339,1,339,1,339,1,339,3,339,6829,8,339,3,339,6831,8,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,3,339,6840,8,339,1,339,1,339,1,339,3,339,6845,8,339,1,339,1,339,1,339,1,339,1,339,1,339,3,339,6853,8,339,1,339,1,339,1,339,3,339,6858,8,339,1,339,1,339,1,339,1,339,1,339,1,339,3,339,6866,8,339,1,339,1,339,1,339,1,339,1,339,1,339,3,339,6874,8,339,1,339,3,339,6877,8,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,3,339,6887,8,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,3,339,6905,8,339,1,339,3,339,6908,8,339,1,339,3,339,6911,8,339,1,339,1,339,3,339,6915,8,339,1,340,1,340,1,340,1,340,1,340,1,341,1,341,1,341,1,341,5,341,6926,8,341,10,341,12,341,6929,9,341,1,341,1,341,1,341,1,341,1,341,3,341,6936,8,341,1,342,1,342,3,342,6940,8,342,1,343,1,343,1,343,3,343,6945,8,343,1,343,1,343,1,343,3,343,6950,8,343,1,343,1,343,1,343,1,343,3,343,6956,8,343,1,343,1,343,1,343,3,343,6961,8,343,1,343,1,343,3,343,6965,8,343,1,343,1,343,1,343,3,343,6970,8,343,1,343,1,343,1,343,3,343,6975,8,343,1,343,1,343,1,343,3,343,6980,8,343,1,343,1,343,1,343,1,343,1,343,1,343,5,343,6988,8,343,10,343,12,343,6991,9,343,3,343,6993,8,343,1,343,1,343,3,343,6997,8,343,1,343,1,343,3,343,7001,8,343,1,344,1,344,1,344,1,344,1,344,3,344,7008,8,344,1,344,1,344,3,344,7012,8,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,1,344,3,344,7041,8,344,1,345,1,345,1,345,1,345,1,345,1,345,3,345,7049,8,345,1,346,3,346,7052,8,346,1,346,3,346,7055,8,346,1,346,3,346,7058,8,346,1,346,3,346,7061,8,346,1,347,1,347,1,348,1,348,1,348,1,349,1,349,1,350,1,350,3,350,7072,8,350,1,351,1,351,1,351,1,351,1,351,1,352,1,352,1,352,1,352,1,352,1,352,1,352,3,352,7086,8,352,1,353,1,353,1,353,1,353,1,353,5,353,7093,8,353,10,353,12,353,7096,9,353,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,1,354,3,354,7122,8,354,1,355,1,355,1,355,1,355,1,355,1,356,1,356,1,356,1,356,3,356,7133,8,356,1,356,1,356,1,356,1,356,1,356,3,356,7140,8,356,5,356,7142,8,356,10,356,12,356,7145,9,356,1,357,1,357,1,357,1,357,3,357,7151,8,357,1,358,1,358,1,358,1,358,1,358,1,358,3,358,7159,8,358,1,358,1,358,1,358,3,358,7164,8,358,1,358,1,358,1,358,1,358,5,358,7170,8,358,10,358,12,358,7173,9,358,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,3,359,7184,8,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,3,359,7197,8,359,1,359,1,359,1,359,1,359,3,359,7203,8,359,1,359,1,359,1,359,1,359,3,359,7209,8,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,3,359,7225,8,359,1,359,1,359,1,359,1,359,3,359,7231,8,359,1,359,1,359,1,359,1,359,1,359,1,359,1,359,5,359,7240,8,359,10,359,12,359,7243,9,359,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,5,360,7262,8,360,10,360,12,360,7265,9,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,4,360,7274,8,360,11,360,12,360,7275,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,3,360,7293,8,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,5,360,7314,8,360,10,360,12,360,7317,9,360,1,361,1,361,1,362,1,362,1,362,1,362,1,362,1,362,1,362,1,362,1,362,1,362,1,362,1,362,1,362,1,362,3,362,7335,8,362,1,363,1,363,1,363,1,363,1,363,1,363,1,363,3,363,7344,8,363,1,364,1,364,1,364,1,364,1,364,1,364,1,364,3,364,7353,8,364,1,365,1,365,1,366,1,366,1,367,1,367,1,367,1,367,1,367,3,367,7364,8,367,1,368,1,368,1,369,1,369,1,370,1,370,1,371,1,371,1,372,1,372,1,373,1,373,1,374,1,374,1,374,0,3,716,718,720,375,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,486,488,490,492,494,496,498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,0,145,2,0,39,39,150,150,2,0,531,531,537,537,3,0,69,69,159,159,181,181,3,0,42,42,384,384,454,454,4,0,42,42,419,419,529,529,611,611,2,0,514,514,1148,1148,2,0,78,78,141,141,2,0,15,15,334,334,3,0,44,44,85,85,184,184,2,0,434,434,558,558,3,0,506,506,650,650,658,658,2,0,392,392,460,460,2,0,352,352,474,474,2,0,42,42,1138,1139,2,0,350,350,443,443,2,0,459,459,673,673,3,0,80,80,84,84,125,125,3,0,42,42,402,402,431,431,3,0,42,42,398,398,792,792,2,0,637,637,672,672,2,0,81,81,91,91,3,0,436,436,548,548,613,613,2,0,69,69,159,159,1,0,356,357,1,0,1138,1139,2,0,1148,1148,1156,1156,2,0,81,81,388,388,2,0,545,545,1148,1148,2,0,546,546,1148,1148,3,0,430,430,469,469,521,521,7,0,42,42,370,370,372,372,402,402,431,431,573,573,1156,1156,2,0,514,514,530,530,1,0,1139,1140,2,0,5,5,51,51,4,0,42,42,384,384,454,454,458,458,2,0,26,26,30,30,2,0,12,12,175,175,2,0,192,192,677,677,2,0,21,21,144,144,3,0,43,43,75,75,106,106,2,0,106,106,374,374,2,0,365,365,427,427,2,0,101,101,601,601,2,0,43,43,106,106,2,0,6,6,49,49,2,0,188,188,669,669,4,0,430,430,469,469,520,520,562,562,2,0,430,430,520,520,2,0,13,13,45,45,3,0,66,66,78,78,186,186,2,0,34,34,83,83,2,0,97,97,148,148,2,0,6,6,49,50,1,0,626,627,2,0,172,172,742,742,2,0,439,439,609,609,2,0,226,226,477,477,5,0,107,107,482,483,485,485,489,497,575,575,4,0,479,480,484,484,486,487,576,576,3,0,108,108,478,478,488,488,2,0,462,462,628,628,2,0,622,622,624,624,2,0,344,344,629,629,2,0,90,90,591,591,2,0,51,51,390,390,3,0,31,31,61,61,179,179,3,0,131,131,172,172,437,437,3,0,12,12,19,19,187,187,2,0,42,42,121,121,2,0,103,103,182,182,2,0,360,360,614,614,2,0,40,40,671,671,2,0,115,115,474,474,2,0,422,422,568,568,4,0,206,206,208,208,214,214,638,638,2,0,1108,1108,1124,1124,2,0,345,345,577,577,2,0,68,68,80,80,3,0,131,131,415,415,437,437,2,0,172,172,671,671,2,0,513,513,634,634,2,0,412,412,675,675,2,0,131,131,437,437,3,0,81,81,92,92,452,452,3,0,439,439,474,474,609,609,2,0,634,634,670,670,2,0,376,376,567,567,6,0,226,226,409,409,411,411,438,438,574,574,615,615,2,0,45,46,62,62,3,0,422,422,550,550,885,885,2,0,466,466,652,652,10,0,359,359,367,367,378,380,387,387,507,507,515,515,639,639,646,646,836,836,1005,1005,2,0,35,35,168,168,2,0,117,117,996,996,11,0,359,359,367,367,378,380,387,387,507,507,515,515,592,592,639,639,646,646,836,836,1005,1005,2,0,1137,1137,1158,1159,1,0,1159,1160,2,0,375,375,787,798,3,0,1138,1140,1149,1149,1151,1151,2,0,63,63,178,178,2,0,116,116,1152,1152,5,0,25,25,222,224,231,231,233,236,518,518,2,0,25,25,222,222,2,0,25,25,222,223,1,0,196,207,3,0,183,183,195,195,612,612,2,0,211,216,431,431,6,0,217,217,228,228,230,230,232,232,239,239,348,349,4,0,218,221,226,227,229,229,346,346,2,0,153,153,237,237,2,0,466,466,803,811,3,0,211,211,226,226,518,518,6,0,200,200,206,206,209,209,217,218,220,221,466,466,1,0,214,215,2,0,183,183,612,612,2,0,200,200,206,206,2,0,315,316,322,322,3,0,150,150,313,316,331,331,1,0,325,326,3,0,17,17,95,95,176,176,2,0,222,222,226,226,2,0,217,218,220,220,3,0,13,13,45,45,994,994,3,0,286,286,298,299,309,309,3,0,287,289,305,308,310,312,2,0,295,295,297,297,2,0,293,293,296,296,2,0,291,292,302,304,2,0,133,133,601,601,2,0,433,433,559,559,2,0,535,535,551,551,2,0,114,114,1127,1127,3,0,63,63,178,178,662,662,2,0,137,137,149,149,3,0,6,6,337,337,618,618,3,0,114,114,1120,1121,1127,1128,2,0,1117,1119,1122,1123,1,0,1120,1121,2,0,226,226,746,786,1,0,799,802,5,0,708,709,725,727,733,733,739,740,742,742,1,0,689,696,3,0,217,221,234,234,237,237,59,0,11,11,14,14,18,18,29,29,35,35,37,37,42,42,48,48,55,55,57,57,59,59,73,73,79,79,94,94,117,117,121,121,124,124,130,130,158,158,168,168,239,239,283,290,294,294,298,299,305,312,332,385,387,403,405,405,407,432,434,450,452,458,460,521,523,523,527,544,547,558,560,589,591,592,594,606,608,636,638,672,674,675,677,682,684,688,697,697,699,707,710,712,717,718,720,724,728,732,734,734,736,738,741,741,743,745,792,792,836,836,875,875,1e3,1e3,1005,1005,1088,1088,23,0,39,39,97,97,148,148,150,150,217,219,221,221,251,282,290,293,295,297,300,304,324,324,459,459,673,673,689,696,736,736,803,803,806,835,837,874,876,999,1001,1004,1006,1087,1089,1107,1123,1123,8658,0,751,1,0,0,0,2,763,1,0,0,0,4,772,1,0,0,0,6,812,1,0,0,0,8,827,1,0,0,0,10,838,1,0,0,0,12,855,1,0,0,0,14,860,1,0,0,0,16,872,1,0,0,0,18,899,1,0,0,0,20,908,1,0,0,0,22,910,1,0,0,0,24,922,1,0,0,0,26,952,1,0,0,0,28,988,1,0,0,0,30,1039,1,0,0,0,32,1065,1,0,0,0,34,1101,1,0,0,0,36,1108,1,0,0,0,38,1205,1,0,0,0,40,1207,1,0,0,0,42,1225,1,0,0,0,44,1286,1,0,0,0,46,1308,1,0,0,0,48,1314,1,0,0,0,50,1336,1,0,0,0,52,1338,1,0,0,0,54,1340,1,0,0,0,56,1420,1,0,0,0,58,1427,1,0,0,0,60,1429,1,0,0,0,62,1434,1,0,0,0,64,1474,1,0,0,0,66,1480,1,0,0,0,68,1482,1,0,0,0,70,1503,1,0,0,0,72,1510,1,0,0,0,74,1512,1,0,0,0,76,1537,1,0,0,0,78,1540,1,0,0,0,80,1545,1,0,0,0,82,1571,1,0,0,0,84,1587,1,0,0,0,86,1589,1,0,0,0,88,1611,1,0,0,0,90,1613,1,0,0,0,92,1679,1,0,0,0,94,1750,1,0,0,0,96,1752,1,0,0,0,98,1780,1,0,0,0,100,1790,1,0,0,0,102,1820,1,0,0,0,104,2007,1,0,0,0,106,2009,1,0,0,0,108,2011,1,0,0,0,110,2014,1,0,0,0,112,2089,1,0,0,0,114,2112,1,0,0,0,116,2260,1,0,0,0,118,2265,1,0,0,0,120,2267,1,0,0,0,122,2277,1,0,0,0,124,2333,1,0,0,0,126,2351,1,0,0,0,128,2353,1,0,0,0,130,2388,1,0,0,0,132,2397,1,0,0,0,134,2404,1,0,0,0,136,2427,1,0,0,0,138,2436,1,0,0,0,140,2451,1,0,0,0,142,2476,1,0,0,0,144,2496,1,0,0,0,146,2879,1,0,0,0,148,2979,1,0,0,0,150,2981,1,0,0,0,152,2988,1,0,0,0,154,2995,1,0,0,0,156,3018,1,0,0,0,158,3026,1,0,0,0,160,3033,1,0,0,0,162,3040,1,0,0,0,164,3047,1,0,0,0,166,3059,1,0,0,0,168,3069,1,0,0,0,170,3076,1,0,0,0,172,3092,1,0,0,0,174,3112,1,0,0,0,176,3114,1,0,0,0,178,3124,1,0,0,0,180,3128,1,0,0,0,182,3134,1,0,0,0,184,3146,1,0,0,0,186,3148,1,0,0,0,188,3155,1,0,0,0,190,3157,1,0,0,0,192,3215,1,0,0,0,194,3289,1,0,0,0,196,3348,1,0,0,0,198,3446,1,0,0,0,200,3450,1,0,0,0,202,3452,1,0,0,0,204,3487,1,0,0,0,206,3489,1,0,0,0,208,3497,1,0,0,0,210,3505,1,0,0,0,212,3507,1,0,0,0,214,3543,1,0,0,0,216,3598,1,0,0,0,218,3607,1,0,0,0,220,3627,1,0,0,0,222,3639,1,0,0,0,224,3643,1,0,0,0,226,3676,1,0,0,0,228,3697,1,0,0,0,230,3707,1,0,0,0,232,3711,1,0,0,0,234,3737,1,0,0,0,236,3776,1,0,0,0,238,3778,1,0,0,0,240,3793,1,0,0,0,242,3842,1,0,0,0,244,3851,1,0,0,0,246,3861,1,0,0,0,248,3871,1,0,0,0,250,3927,1,0,0,0,252,3929,1,0,0,0,254,3956,1,0,0,0,256,3962,1,0,0,0,258,3970,1,0,0,0,260,3987,1,0,0,0,262,4003,1,0,0,0,264,4040,1,0,0,0,266,4046,1,0,0,0,268,4055,1,0,0,0,270,4068,1,0,0,0,272,4072,1,0,0,0,274,4082,1,0,0,0,276,4106,1,0,0,0,278,4144,1,0,0,0,280,4158,1,0,0,0,282,4166,1,0,0,0,284,4170,1,0,0,0,286,4176,1,0,0,0,288,4190,1,0,0,0,290,4193,1,0,0,0,292,4211,1,0,0,0,294,4215,1,0,0,0,296,4231,1,0,0,0,298,4233,1,0,0,0,300,4245,1,0,0,0,302,4249,1,0,0,0,304,4266,1,0,0,0,306,4283,1,0,0,0,308,4286,1,0,0,0,310,4296,1,0,0,0,312,4300,1,0,0,0,314,4313,1,0,0,0,316,4316,1,0,0,0,318,4321,1,0,0,0,320,4341,1,0,0,0,322,4343,1,0,0,0,324,4360,1,0,0,0,326,4369,1,0,0,0,328,4378,1,0,0,0,330,4380,1,0,0,0,332,4394,1,0,0,0,334,4405,1,0,0,0,336,4414,1,0,0,0,338,4417,1,0,0,0,340,4425,1,0,0,0,342,4450,1,0,0,0,344,4462,1,0,0,0,346,4465,1,0,0,0,348,4497,1,0,0,0,350,4499,1,0,0,0,352,4501,1,0,0,0,354,4503,1,0,0,0,356,4505,1,0,0,0,358,4558,1,0,0,0,360,4560,1,0,0,0,362,4566,1,0,0,0,364,4586,1,0,0,0,366,4600,1,0,0,0,368,4611,1,0,0,0,370,4613,1,0,0,0,372,4619,1,0,0,0,374,4629,1,0,0,0,376,4633,1,0,0,0,378,4640,1,0,0,0,380,4644,1,0,0,0,382,4650,1,0,0,0,384,4657,1,0,0,0,386,4663,1,0,0,0,388,4669,1,0,0,0,390,4674,1,0,0,0,392,4719,1,0,0,0,394,4740,1,0,0,0,396,4765,1,0,0,0,398,4768,1,0,0,0,400,4774,1,0,0,0,402,4790,1,0,0,0,404,4805,1,0,0,0,406,4811,1,0,0,0,408,4841,1,0,0,0,410,4843,1,0,0,0,412,4850,1,0,0,0,414,4862,1,0,0,0,416,4868,1,0,0,0,418,4893,1,0,0,0,420,4897,1,0,0,0,422,4901,1,0,0,0,424,4912,1,0,0,0,426,4983,1,0,0,0,428,5036,1,0,0,0,430,5038,1,0,0,0,432,5105,1,0,0,0,434,5115,1,0,0,0,436,5117,1,0,0,0,438,5135,1,0,0,0,440,5181,1,0,0,0,442,5183,1,0,0,0,444,5196,1,0,0,0,446,5207,1,0,0,0,448,5210,1,0,0,0,450,5243,1,0,0,0,452,5247,1,0,0,0,454,5268,1,0,0,0,456,5278,1,0,0,0,458,5288,1,0,0,0,460,5328,1,0,0,0,462,5330,1,0,0,0,464,5333,1,0,0,0,466,5433,1,0,0,0,468,5451,1,0,0,0,470,5453,1,0,0,0,472,5457,1,0,0,0,474,5495,1,0,0,0,476,5504,1,0,0,0,478,5510,1,0,0,0,480,5517,1,0,0,0,482,5539,1,0,0,0,484,5541,1,0,0,0,486,5555,1,0,0,0,488,5561,1,0,0,0,490,5617,1,0,0,0,492,5780,1,0,0,0,494,5792,1,0,0,0,496,5807,1,0,0,0,498,5813,1,0,0,0,500,5832,1,0,0,0,502,5842,1,0,0,0,504,5856,1,0,0,0,506,5858,1,0,0,0,508,5861,1,0,0,0,510,5883,1,0,0,0,512,5895,1,0,0,0,514,5901,1,0,0,0,516,5913,1,0,0,0,518,5917,1,0,0,0,520,5919,1,0,0,0,522,5961,1,0,0,0,524,5968,1,0,0,0,526,5970,1,0,0,0,528,5993,1,0,0,0,530,5999,1,0,0,0,532,6007,1,0,0,0,534,6010,1,0,0,0,536,6013,1,0,0,0,538,6034,1,0,0,0,540,6055,1,0,0,0,542,6063,1,0,0,0,544,6075,1,0,0,0,546,6083,1,0,0,0,548,6121,1,0,0,0,550,6133,1,0,0,0,552,6135,1,0,0,0,554,6141,1,0,0,0,556,6143,1,0,0,0,558,6153,1,0,0,0,560,6155,1,0,0,0,562,6163,1,0,0,0,564,6171,1,0,0,0,566,6173,1,0,0,0,568,6181,1,0,0,0,570,6197,1,0,0,0,572,6199,1,0,0,0,574,6201,1,0,0,0,576,6203,1,0,0,0,578,6205,1,0,0,0,580,6207,1,0,0,0,582,6226,1,0,0,0,584,6235,1,0,0,0,586,6237,1,0,0,0,588,6239,1,0,0,0,590,6252,1,0,0,0,592,6254,1,0,0,0,594,6256,1,0,0,0,596,6262,1,0,0,0,598,6266,1,0,0,0,600,6271,1,0,0,0,602,6273,1,0,0,0,604,6275,1,0,0,0,606,6293,1,0,0,0,608,6309,1,0,0,0,610,6313,1,0,0,0,612,6318,1,0,0,0,614,6329,1,0,0,0,616,6334,1,0,0,0,618,6336,1,0,0,0,620,6340,1,0,0,0,622,6365,1,0,0,0,624,6367,1,0,0,0,626,6370,1,0,0,0,628,6375,1,0,0,0,630,6391,1,0,0,0,632,6519,1,0,0,0,634,6521,1,0,0,0,636,6554,1,0,0,0,638,6559,1,0,0,0,640,6563,1,0,0,0,642,6569,1,0,0,0,644,6577,1,0,0,0,646,6585,1,0,0,0,648,6593,1,0,0,0,650,6601,1,0,0,0,652,6612,1,0,0,0,654,6620,1,0,0,0,656,6628,1,0,0,0,658,6636,1,0,0,0,660,6644,1,0,0,0,662,6678,1,0,0,0,664,6694,1,0,0,0,666,6698,1,0,0,0,668,6700,1,0,0,0,670,6703,1,0,0,0,672,6707,1,0,0,0,674,6713,1,0,0,0,676,6733,1,0,0,0,678,6914,1,0,0,0,680,6916,1,0,0,0,682,6935,1,0,0,0,684,6937,1,0,0,0,686,7e3,1,0,0,0,688,7040,1,0,0,0,690,7042,1,0,0,0,692,7051,1,0,0,0,694,7062,1,0,0,0,696,7064,1,0,0,0,698,7067,1,0,0,0,700,7071,1,0,0,0,702,7073,1,0,0,0,704,7085,1,0,0,0,706,7087,1,0,0,0,708,7121,1,0,0,0,710,7123,1,0,0,0,712,7132,1,0,0,0,714,7150,1,0,0,0,716,7163,1,0,0,0,718,7174,1,0,0,0,720,7292,1,0,0,0,722,7318,1,0,0,0,724,7334,1,0,0,0,726,7343,1,0,0,0,728,7352,1,0,0,0,730,7354,1,0,0,0,732,7356,1,0,0,0,734,7363,1,0,0,0,736,7365,1,0,0,0,738,7367,1,0,0,0,740,7369,1,0,0,0,742,7371,1,0,0,0,744,7373,1,0,0,0,746,7375,1,0,0,0,748,7377,1,0,0,0,750,752,3,2,1,0,751,750,1,0,0,0,751,752,1,0,0,0,752,753,1,0,0,0,753,754,5,0,0,1,754,1,1,0,0,0,755,757,3,4,2,0,756,758,5,1136,0,0,757,756,1,0,0,0,757,758,1,0,0,0,758,764,1,0,0,0,759,760,3,4,2,0,760,761,5,1136,0,0,761,762,3,2,1,0,762,764,1,0,0,0,763,755,1,0,0,0,763,759,1,0,0,0,764,3,1,0,0,0,765,773,3,6,3,0,766,773,3,8,4,0,767,773,3,10,5,0,768,773,3,12,6,0,769,773,3,14,7,0,770,773,3,18,9,0,771,773,3,20,10,0,772,765,1,0,0,0,772,766,1,0,0,0,772,767,1,0,0,0,772,768,1,0,0,0,772,769,1,0,0,0,772,770,1,0,0,0,772,771,1,0,0,0,773,5,1,0,0,0,774,813,3,22,11,0,775,813,3,24,12,0,776,813,3,26,13,0,777,813,3,28,14,0,778,813,3,30,15,0,779,813,3,32,16,0,780,813,3,36,18,0,781,813,3,38,19,0,782,813,3,40,20,0,783,813,3,42,21,0,784,813,3,44,22,0,785,813,3,54,27,0,786,813,3,34,17,0,787,813,3,126,63,0,788,813,3,128,64,0,789,813,3,130,65,0,790,813,3,132,66,0,791,813,3,134,67,0,792,813,3,136,68,0,793,813,3,138,69,0,794,813,3,140,70,0,795,813,3,142,71,0,796,813,3,144,72,0,797,813,3,150,75,0,798,813,3,152,76,0,799,813,3,154,77,0,800,813,3,156,78,0,801,813,3,158,79,0,802,813,3,160,80,0,803,813,3,162,81,0,804,813,3,164,82,0,805,813,3,166,83,0,806,813,3,168,84,0,807,813,3,170,85,0,808,813,3,172,86,0,809,813,3,174,87,0,810,813,3,176,88,0,811,813,3,180,90,0,812,774,1,0,0,0,812,775,1,0,0,0,812,776,1,0,0,0,812,777,1,0,0,0,812,778,1,0,0,0,812,779,1,0,0,0,812,780,1,0,0,0,812,781,1,0,0,0,812,782,1,0,0,0,812,783,1,0,0,0,812,784,1,0,0,0,812,785,1,0,0,0,812,786,1,0,0,0,812,787,1,0,0,0,812,788,1,0,0,0,812,789,1,0,0,0,812,790,1,0,0,0,812,791,1,0,0,0,812,792,1,0,0,0,812,793,1,0,0,0,812,794,1,0,0,0,812,795,1,0,0,0,812,796,1,0,0,0,812,797,1,0,0,0,812,798,1,0,0,0,812,799,1,0,0,0,812,800,1,0,0,0,812,801,1,0,0,0,812,802,1,0,0,0,812,803,1,0,0,0,812,804,1,0,0,0,812,805,1,0,0,0,812,806,1,0,0,0,812,807,1,0,0,0,812,808,1,0,0,0,812,809,1,0,0,0,812,810,1,0,0,0,812,811,1,0,0,0,813,7,1,0,0,0,814,828,3,198,99,0,815,828,3,190,95,0,816,828,3,200,100,0,817,828,3,184,92,0,818,828,3,196,98,0,819,828,3,182,91,0,820,828,3,192,96,0,821,828,3,194,97,0,822,828,3,186,93,0,823,828,3,188,94,0,824,828,3,202,101,0,825,828,3,542,271,0,826,828,3,544,272,0,827,814,1,0,0,0,827,815,1,0,0,0,827,816,1,0,0,0,827,817,1,0,0,0,827,818,1,0,0,0,827,819,1,0,0,0,827,820,1,0,0,0,827,821,1,0,0,0,827,822,1,0,0,0,827,823,1,0,0,0,827,824,1,0,0,0,827,825,1,0,0,0,827,826,1,0,0,0,828,9,1,0,0,0,829,839,3,298,149,0,830,839,3,300,150,0,831,839,3,302,151,0,832,839,3,304,152,0,833,839,3,306,153,0,834,839,3,308,154,0,835,839,3,310,155,0,836,839,3,312,156,0,837,839,3,314,157,0,838,829,1,0,0,0,838,830,1,0,0,0,838,831,1,0,0,0,838,832,1,0,0,0,838,833,1,0,0,0,838,834,1,0,0,0,838,835,1,0,0,0,838,836,1,0,0,0,838,837,1,0,0,0,839,11,1,0,0,0,840,856,3,330,165,0,841,856,3,332,166,0,842,856,3,334,167,0,843,856,3,336,168,0,844,856,3,338,169,0,845,856,3,340,170,0,846,856,3,342,171,0,847,856,3,344,172,0,848,856,3,346,173,0,849,856,3,370,185,0,850,856,3,372,186,0,851,856,3,374,187,0,852,856,3,376,188,0,853,856,3,378,189,0,854,856,3,380,190,0,855,840,1,0,0,0,855,841,1,0,0,0,855,842,1,0,0,0,855,843,1,0,0,0,855,844,1,0,0,0,855,845,1,0,0,0,855,846,1,0,0,0,855,847,1,0,0,0,855,848,1,0,0,0,855,849,1,0,0,0,855,850,1,0,0,0,855,851,1,0,0,0,855,852,1,0,0,0,855,853,1,0,0,0,855,854,1,0,0,0,856,13,1,0,0,0,857,861,3,382,191,0,858,861,3,384,192,0,859,861,3,386,193,0,860,857,1,0,0,0,860,858,1,0,0,0,860,859,1,0,0,0,861,15,1,0,0,0,862,873,3,390,195,0,863,873,3,392,196,0,864,873,3,394,197,0,865,873,3,398,199,0,866,873,3,400,200,0,867,873,3,402,201,0,868,873,3,406,203,0,869,873,3,396,198,0,870,873,3,404,202,0,871,873,3,408,204,0,872,862,1,0,0,0,872,863,1,0,0,0,872,864,1,0,0,0,872,865,1,0,0,0,872,866,1,0,0,0,872,867,1,0,0,0,872,868,1,0,0,0,872,869,1,0,0,0,872,870,1,0,0,0,872,871,1,0,0,0,873,17,1,0,0,0,874,900,3,426,213,0,875,900,3,428,214,0,876,900,3,430,215,0,877,900,3,432,216,0,878,900,3,436,218,0,879,900,3,438,219,0,880,900,3,440,220,0,881,900,3,442,221,0,882,900,3,472,236,0,883,900,3,474,237,0,884,900,3,476,238,0,885,900,3,478,239,0,886,900,3,480,240,0,887,900,3,484,242,0,888,900,3,486,243,0,889,900,3,488,244,0,890,900,3,490,245,0,891,900,3,492,246,0,892,900,3,506,253,0,893,900,3,508,254,0,894,900,3,510,255,0,895,900,3,512,256,0,896,900,3,514,257,0,897,900,3,516,258,0,898,900,3,518,259,0,899,874,1,0,0,0,899,875,1,0,0,0,899,876,1,0,0,0,899,877,1,0,0,0,899,878,1,0,0,0,899,879,1,0,0,0,899,880,1,0,0,0,899,881,1,0,0,0,899,882,1,0,0,0,899,883,1,0,0,0,899,884,1,0,0,0,899,885,1,0,0,0,899,886,1,0,0,0,899,887,1,0,0,0,899,888,1,0,0,0,899,889,1,0,0,0,899,890,1,0,0,0,899,891,1,0,0,0,899,892,1,0,0,0,899,893,1,0,0,0,899,894,1,0,0,0,899,895,1,0,0,0,899,896,1,0,0,0,899,897,1,0,0,0,899,898,1,0,0,0,900,19,1,0,0,0,901,909,3,528,264,0,902,909,3,530,265,0,903,909,3,532,266,0,904,909,3,534,267,0,905,909,3,536,268,0,906,909,3,538,269,0,907,909,3,546,273,0,908,901,1,0,0,0,908,902,1,0,0,0,908,903,1,0,0,0,908,904,1,0,0,0,908,905,1,0,0,0,908,906,1,0,0,0,908,907,1,0,0,0,909,21,1,0,0,0,910,911,5,33,0,0,911,913,7,0,0,0,912,914,3,670,335,0,913,912,1,0,0,0,913,914,1,0,0,0,914,915,1,0,0,0,915,919,3,612,306,0,916,918,3,56,28,0,917,916,1,0,0,0,918,921,1,0,0,0,919,917,1,0,0,0,919,920,1,0,0,0,920,23,1,0,0,0,921,919,1,0,0,0,922,924,5,33,0,0,923,925,3,62,31,0,924,923,1,0,0,0,924,925,1,0,0,0,925,926,1,0,0,0,926,928,5,415,0,0,927,929,3,670,335,0,928,927,1,0,0,0,928,929,1,0,0,0,929,930,1,0,0,0,930,931,3,552,276,0,931,932,5,118,0,0,932,933,5,605,0,0,933,940,3,64,32,0,934,935,5,118,0,0,935,937,5,371,0,0,936,938,5,114,0,0,937,936,1,0,0,0,937,938,1,0,0,0,938,939,1,0,0,0,939,941,5,561,0,0,940,934,1,0,0,0,940,941,1,0,0,0,941,943,1,0,0,0,942,944,3,72,36,0,943,942,1,0,0,0,943,944,1,0,0,0,944,947,1,0,0,0,945,946,5,368,0,0,946,948,5,1148,0,0,947,945,1,0,0,0,947,948,1,0,0,0,948,949,1,0,0,0,949,950,5,399,0,0,950,951,3,388,194,0,951,25,1,0,0,0,952,954,5,33,0,0,953,955,7,1,0,0,954,953,1,0,0,0,954,955,1,0,0,0,955,957,1,0,0,0,956,958,7,2,0,0,957,956,1,0,0,0,957,958,1,0,0,0,958,959,1,0,0,0,959,960,5,81,0,0,960,962,3,612,306,0,961,963,3,74,37,0,962,961,1,0,0,0,962,963,1,0,0,0,963,964,1,0,0,0,964,965,5,118,0,0,965,966,3,554,277,0,966,970,3,650,325,0,967,969,3,76,38,0,968,967,1,0,0,0,969,972,1,0,0,0,970,968,1,0,0,0,970,971,1,0,0,0,971,985,1,0,0,0,972,970,1,0,0,0,973,975,5,336,0,0,974,976,5,1124,0,0,975,974,1,0,0,0,975,976,1,0,0,0,976,977,1,0,0,0,977,984,7,3,0,0,978,980,5,103,0,0,979,981,5,1124,0,0,980,979,1,0,0,0,980,981,1,0,0,0,981,982,1,0,0,0,982,984,7,4,0,0,983,973,1,0,0,0,983,978,1,0,0,0,984,987,1,0,0,0,985,983,1,0,0,0,985,986,1,0,0,0,986,27,1,0,0,0,987,985,1,0,0,0,988,989,5,33,0,0,989,990,5,475,0,0,990,991,5,73,0,0,991,992,3,612,306,0,992,993,5,5,0,0,993,994,5,659,0,0,994,1e3,5,1148,0,0,995,997,5,453,0,0,996,998,5,1124,0,0,997,996,1,0,0,0,997,998,1,0,0,0,998,999,1,0,0,0,999,1001,3,620,310,0,1e3,995,1,0,0,0,1e3,1001,1,0,0,0,1001,1007,1,0,0,0,1002,1004,5,660,0,0,1003,1005,5,1124,0,0,1004,1003,1,0,0,0,1004,1005,1,0,0,0,1005,1006,1,0,0,0,1006,1008,3,620,310,0,1007,1002,1,0,0,0,1007,1008,1,0,0,0,1008,1014,1,0,0,0,1009,1011,5,572,0,0,1010,1012,5,1124,0,0,1011,1010,1,0,0,0,1011,1012,1,0,0,0,1012,1013,1,0,0,0,1013,1015,3,620,310,0,1014,1009,1,0,0,0,1014,1015,1,0,0,0,1015,1021,1,0,0,0,1016,1018,5,528,0,0,1017,1019,5,1124,0,0,1018,1017,1,0,0,0,1018,1019,1,0,0,0,1019,1020,1,0,0,0,1020,1022,3,612,306,0,1021,1016,1,0,0,0,1021,1022,1,0,0,0,1022,1024,1,0,0,0,1023,1025,5,674,0,0,1024,1023,1,0,0,0,1024,1025,1,0,0,0,1025,1031,1,0,0,0,1026,1028,5,368,0,0,1027,1029,5,1124,0,0,1028,1027,1,0,0,0,1028,1029,1,0,0,0,1029,1030,1,0,0,0,1030,1032,5,1148,0,0,1031,1026,1,0,0,0,1031,1032,1,0,0,0,1032,1033,1,0,0,0,1033,1035,5,409,0,0,1034,1036,5,1124,0,0,1035,1034,1,0,0,0,1035,1036,1,0,0,0,1036,1037,1,0,0,0,1037,1038,3,600,300,0,1038,29,1,0,0,0,1039,1041,5,33,0,0,1040,1042,3,62,31,0,1041,1040,1,0,0,0,1041,1042,1,0,0,0,1042,1043,1,0,0,0,1043,1044,5,131,0,0,1044,1045,3,552,276,0,1045,1047,5,1133,0,0,1046,1048,3,78,39,0,1047,1046,1,0,0,0,1047,1048,1,0,0,0,1048,1053,1,0,0,0,1049,1050,5,1135,0,0,1050,1052,3,78,39,0,1051,1049,1,0,0,0,1052,1055,1,0,0,0,1053,1051,1,0,0,0,1053,1054,1,0,0,0,1054,1056,1,0,0,0,1055,1053,1,0,0,0,1056,1060,5,1134,0,0,1057,1059,3,82,41,0,1058,1057,1,0,0,0,1059,1062,1,0,0,0,1060,1058,1,0,0,0,1060,1061,1,0,0,0,1061,1063,1,0,0,0,1062,1060,1,0,0,0,1063,1064,3,388,194,0,1064,31,1,0,0,0,1065,1067,5,33,0,0,1066,1068,3,62,31,0,1067,1066,1,0,0,0,1067,1068,1,0,0,0,1068,1070,1,0,0,0,1069,1071,5,335,0,0,1070,1069,1,0,0,0,1070,1071,1,0,0,0,1071,1072,1,0,0,0,1072,1074,5,437,0,0,1073,1075,3,670,335,0,1074,1073,1,0,0,0,1074,1075,1,0,0,0,1075,1076,1,0,0,0,1076,1077,3,552,276,0,1077,1079,5,1133,0,0,1078,1080,3,80,40,0,1079,1078,1,0,0,0,1079,1080,1,0,0,0,1080,1085,1,0,0,0,1081,1082,5,1135,0,0,1082,1084,3,80,40,0,1083,1081,1,0,0,0,1084,1087,1,0,0,0,1085,1083,1,0,0,0,1085,1086,1,0,0,0,1086,1088,1,0,0,0,1087,1085,1,0,0,0,1088,1089,5,1134,0,0,1089,1090,5,594,0,0,1090,1094,3,632,316,0,1091,1093,3,82,41,0,1092,1091,1,0,0,0,1093,1096,1,0,0,0,1094,1092,1,0,0,0,1094,1095,1,0,0,0,1095,1099,1,0,0,0,1096,1094,1,0,0,0,1097,1100,3,388,194,0,1098,1100,3,404,202,0,1099,1097,1,0,0,0,1099,1098,1,0,0,0,1100,33,1,0,0,0,1101,1102,5,33,0,0,1102,1104,5,596,0,0,1103,1105,3,670,335,0,1104,1103,1,0,0,0,1104,1105,1,0,0,0,1105,1106,1,0,0,0,1106,1107,3,562,281,0,1107,35,1,0,0,0,1108,1109,5,33,0,0,1109,1110,5,608,0,0,1110,1111,3,612,306,0,1111,1112,5,67,0,0,1112,1113,5,388,0,0,1113,1114,5,679,0,0,1114,1115,7,5,0,0,1115,1116,5,541,0,0,1116,1117,5,1133,0,0,1117,1122,3,84,42,0,1118,1119,5,1135,0,0,1119,1121,3,84,42,0,1120,1118,1,0,0,0,1121,1124,1,0,0,0,1122,1120,1,0,0,0,1122,1123,1,0,0,0,1123,1125,1,0,0,0,1124,1122,1,0,0,0,1125,1126,5,1134,0,0,1126,37,1,0,0,0,1127,1129,5,33,0,0,1128,1130,5,649,0,0,1129,1128,1,0,0,0,1129,1130,1,0,0,0,1130,1131,1,0,0,0,1131,1133,5,172,0,0,1132,1134,3,670,335,0,1133,1132,1,0,0,0,1133,1134,1,0,0,0,1134,1135,1,0,0,0,1135,1143,3,554,277,0,1136,1137,5,98,0,0,1137,1144,3,554,277,0,1138,1139,5,1133,0,0,1139,1140,5,98,0,0,1140,1141,3,554,277,0,1141,1142,5,1134,0,0,1142,1144,1,0,0,0,1143,1136,1,0,0,0,1143,1138,1,0,0,0,1144,1206,1,0,0,0,1145,1147,5,33,0,0,1146,1148,5,649,0,0,1147,1146,1,0,0,0,1147,1148,1,0,0,0,1148,1149,1,0,0,0,1149,1151,5,172,0,0,1150,1152,3,670,335,0,1151,1150,1,0,0,0,1151,1152,1,0,0,0,1152,1153,1,0,0,0,1153,1155,3,554,277,0,1154,1156,3,86,43,0,1155,1154,1,0,0,0,1155,1156,1,0,0,0,1156,1167,1,0,0,0,1157,1164,3,104,52,0,1158,1160,5,1135,0,0,1159,1158,1,0,0,0,1159,1160,1,0,0,0,1160,1161,1,0,0,0,1161,1163,3,104,52,0,1162,1159,1,0,0,0,1163,1166,1,0,0,0,1164,1162,1,0,0,0,1164,1165,1,0,0,0,1165,1168,1,0,0,0,1166,1164,1,0,0,0,1167,1157,1,0,0,0,1167,1168,1,0,0,0,1168,1170,1,0,0,0,1169,1171,3,110,55,0,1170,1169,1,0,0,0,1170,1171,1,0,0,0,1171,1173,1,0,0,0,1172,1174,7,6,0,0,1173,1172,1,0,0,0,1173,1174,1,0,0,0,1174,1176,1,0,0,0,1175,1177,5,12,0,0,1176,1175,1,0,0,0,1176,1177,1,0,0,0,1177,1178,1,0,0,0,1178,1179,3,198,99,0,1179,1206,1,0,0,0,1180,1182,5,33,0,0,1181,1183,5,649,0,0,1182,1181,1,0,0,0,1182,1183,1,0,0,0,1183,1184,1,0,0,0,1184,1186,5,172,0,0,1185,1187,3,670,335,0,1186,1185,1,0,0,0,1186,1187,1,0,0,0,1187,1188,1,0,0,0,1188,1189,3,554,277,0,1189,1200,3,86,43,0,1190,1197,3,104,52,0,1191,1193,5,1135,0,0,1192,1191,1,0,0,0,1192,1193,1,0,0,0,1193,1194,1,0,0,0,1194,1196,3,104,52,0,1195,1192,1,0,0,0,1196,1199,1,0,0,0,1197,1195,1,0,0,0,1197,1198,1,0,0,0,1198,1201,1,0,0,0,1199,1197,1,0,0,0,1200,1190,1,0,0,0,1200,1201,1,0,0,0,1201,1203,1,0,0,0,1202,1204,3,110,55,0,1203,1202,1,0,0,0,1203,1204,1,0,0,0,1204,1206,1,0,0,0,1205,1127,1,0,0,0,1205,1145,1,0,0,0,1205,1180,1,0,0,0,1206,39,1,0,0,0,1207,1208,5,33,0,0,1208,1209,5,647,0,0,1209,1210,3,612,306,0,1210,1211,5,5,0,0,1211,1212,5,389,0,0,1212,1216,5,1148,0,0,1213,1214,5,428,0,0,1214,1215,5,1124,0,0,1215,1217,3,620,310,0,1216,1213,1,0,0,0,1216,1217,1,0,0,0,1217,1223,1,0,0,0,1218,1220,5,409,0,0,1219,1221,5,1124,0,0,1220,1219,1,0,0,0,1220,1221,1,0,0,0,1221,1222,1,0,0,0,1222,1224,3,600,300,0,1223,1218,1,0,0,0,1223,1224,1,0,0,0,1224,41,1,0,0,0,1225,1226,5,33,0,0,1226,1227,5,647,0,0,1227,1228,3,612,306,0,1228,1229,5,5,0,0,1229,1230,5,389,0,0,1230,1231,5,1148,0,0,1231,1232,5,186,0,0,1232,1233,5,475,0,0,1233,1234,5,73,0,0,1234,1240,3,612,306,0,1235,1237,5,423,0,0,1236,1238,5,1124,0,0,1237,1236,1,0,0,0,1237,1238,1,0,0,0,1238,1239,1,0,0,0,1239,1241,3,620,310,0,1240,1235,1,0,0,0,1240,1241,1,0,0,0,1241,1247,1,0,0,0,1242,1244,5,453,0,0,1243,1245,5,1124,0,0,1244,1243,1,0,0,0,1244,1245,1,0,0,0,1245,1246,1,0,0,0,1246,1248,3,620,310,0,1247,1242,1,0,0,0,1247,1248,1,0,0,0,1248,1254,1,0,0,0,1249,1251,5,341,0,0,1250,1252,5,1124,0,0,1251,1250,1,0,0,0,1251,1252,1,0,0,0,1252,1253,1,0,0,0,1253,1255,3,620,310,0,1254,1249,1,0,0,0,1254,1255,1,0,0,0,1255,1261,1,0,0,0,1256,1258,5,501,0,0,1257,1259,5,1124,0,0,1258,1257,1,0,0,0,1258,1259,1,0,0,0,1259,1260,1,0,0,0,1260,1262,3,620,310,0,1261,1256,1,0,0,0,1261,1262,1,0,0,0,1262,1268,1,0,0,0,1263,1265,5,528,0,0,1264,1266,5,1124,0,0,1265,1264,1,0,0,0,1265,1266,1,0,0,0,1266,1267,1,0,0,0,1267,1269,3,612,306,0,1268,1263,1,0,0,0,1268,1269,1,0,0,0,1269,1271,1,0,0,0,1270,1272,5,674,0,0,1271,1270,1,0,0,0,1271,1272,1,0,0,0,1272,1278,1,0,0,0,1273,1275,5,368,0,0,1274,1276,5,1124,0,0,1275,1274,1,0,0,0,1275,1276,1,0,0,0,1276,1277,1,0,0,0,1277,1279,5,1148,0,0,1278,1273,1,0,0,0,1278,1279,1,0,0,0,1279,1280,1,0,0,0,1280,1282,5,409,0,0,1281,1283,5,1124,0,0,1282,1281,1,0,0,0,1282,1283,1,0,0,0,1283,1284,1,0,0,0,1284,1285,3,600,300,0,1285,43,1,0,0,0,1286,1288,5,33,0,0,1287,1289,3,62,31,0,1288,1287,1,0,0,0,1288,1289,1,0,0,0,1289,1290,1,0,0,0,1290,1292,5,177,0,0,1291,1293,3,670,335,0,1292,1291,1,0,0,0,1292,1293,1,0,0,0,1293,1294,1,0,0,0,1294,1295,3,552,276,0,1295,1296,7,7,0,0,1296,1297,7,8,0,0,1297,1298,5,118,0,0,1298,1299,3,554,277,0,1299,1300,5,65,0,0,1300,1301,5,52,0,0,1301,1304,5,600,0,0,1302,1303,7,9,0,0,1303,1305,3,552,276,0,1304,1302,1,0,0,0,1304,1305,1,0,0,0,1305,1306,1,0,0,0,1306,1307,3,388,194,0,1307,45,1,0,0,0,1308,1310,5,192,0,0,1309,1311,5,571,0,0,1310,1309,1,0,0,0,1310,1311,1,0,0,0,1311,1312,1,0,0,0,1312,1313,3,48,24,0,1313,47,1,0,0,0,1314,1326,3,50,25,0,1315,1316,5,1133,0,0,1316,1321,3,52,26,0,1317,1318,5,1135,0,0,1318,1320,3,52,26,0,1319,1317,1,0,0,0,1320,1323,1,0,0,0,1321,1319,1,0,0,0,1321,1322,1,0,0,0,1322,1324,1,0,0,0,1323,1321,1,0,0,0,1324,1325,5,1134,0,0,1325,1327,1,0,0,0,1326,1315,1,0,0,0,1326,1327,1,0,0,0,1327,1328,1,0,0,0,1328,1329,5,12,0,0,1329,1330,5,1133,0,0,1330,1331,3,8,4,0,1331,1334,5,1134,0,0,1332,1333,5,1135,0,0,1333,1335,3,48,24,0,1334,1332,1,0,0,0,1334,1335,1,0,0,0,1335,49,1,0,0,0,1336,1337,3,612,306,0,1337,51,1,0,0,0,1338,1339,3,612,306,0,1339,53,1,0,0,0,1340,1342,5,33,0,0,1341,1343,3,672,336,0,1342,1341,1,0,0,0,1342,1343,1,0,0,0,1343,1347,1,0,0,0,1344,1345,5,336,0,0,1345,1346,5,1124,0,0,1346,1348,7,10,0,0,1347,1344,1,0,0,0,1347,1348,1,0,0,0,1348,1350,1,0,0,0,1349,1351,3,62,31,0,1350,1349,1,0,0,0,1350,1351,1,0,0,0,1351,1355,1,0,0,0,1352,1353,5,160,0,0,1353,1354,5,606,0,0,1354,1356,7,11,0,0,1355,1352,1,0,0,0,1355,1356,1,0,0,0,1356,1357,1,0,0,0,1357,1358,5,671,0,0,1358,1363,3,552,276,0,1359,1360,5,1133,0,0,1360,1361,3,644,322,0,1361,1362,5,1134,0,0,1362,1364,1,0,0,0,1363,1359,1,0,0,0,1363,1364,1,0,0,0,1364,1365,1,0,0,0,1365,1385,5,12,0,0,1366,1368,5,1133,0,0,1367,1369,3,46,23,0,1368,1367,1,0,0,0,1368,1369,1,0,0,0,1369,1370,1,0,0,0,1370,1371,3,198,99,0,1371,1372,5,1134,0,0,1372,1386,1,0,0,0,1373,1375,3,46,23,0,1374,1373,1,0,0,0,1374,1375,1,0,0,0,1375,1376,1,0,0,0,1376,1383,3,198,99,0,1377,1379,5,192,0,0,1378,1380,7,12,0,0,1379,1378,1,0,0,0,1379,1380,1,0,0,0,1380,1381,1,0,0,0,1381,1382,5,26,0,0,1382,1384,5,120,0,0,1383,1377,1,0,0,0,1383,1384,1,0,0,0,1384,1386,1,0,0,0,1385,1366,1,0,0,0,1385,1374,1,0,0,0,1386,55,1,0,0,0,1387,1389,5,42,0,0,1388,1387,1,0,0,0,1388,1389,1,0,0,0,1389,1390,1,0,0,0,1390,1392,3,58,29,0,1391,1393,5,1124,0,0,1392,1391,1,0,0,0,1392,1393,1,0,0,0,1393,1396,1,0,0,0,1394,1397,3,596,298,0,1395,1397,5,42,0,0,1396,1394,1,0,0,0,1396,1395,1,0,0,0,1397,1421,1,0,0,0,1398,1400,5,42,0,0,1399,1398,1,0,0,0,1399,1400,1,0,0,0,1400,1401,1,0,0,0,1401,1403,5,27,0,0,1402,1404,5,1124,0,0,1403,1402,1,0,0,0,1403,1404,1,0,0,0,1404,1405,1,0,0,0,1405,1421,3,598,299,0,1406,1408,5,42,0,0,1407,1406,1,0,0,0,1407,1408,1,0,0,0,1408,1409,1,0,0,0,1409,1411,5,405,0,0,1410,1412,5,1124,0,0,1411,1410,1,0,0,0,1411,1412,1,0,0,0,1412,1413,1,0,0,0,1413,1421,5,1148,0,0,1414,1415,5,134,0,0,1415,1417,5,538,0,0,1416,1418,5,1124,0,0,1417,1416,1,0,0,0,1417,1418,1,0,0,0,1418,1419,1,0,0,0,1419,1421,7,13,0,0,1420,1388,1,0,0,0,1420,1399,1,0,0,0,1420,1407,1,0,0,0,1420,1414,1,0,0,0,1421,57,1,0,0,0,1422,1423,5,25,0,0,1423,1428,5,153,0,0,1424,1428,5,841,0,0,1425,1426,5,222,0,0,1426,1428,5,153,0,0,1427,1422,1,0,0,0,1427,1424,1,0,0,0,1427,1425,1,0,0,0,1428,59,1,0,0,0,1429,1432,5,37,0,0,1430,1431,5,1133,0,0,1431,1433,5,1134,0,0,1432,1430,1,0,0,0,1432,1433,1,0,0,0,1433,61,1,0,0,0,1434,1435,5,392,0,0,1435,1438,5,1124,0,0,1436,1439,3,592,296,0,1437,1439,3,60,30,0,1438,1436,1,0,0,0,1438,1437,1,0,0,0,1439,63,1,0,0,0,1440,1441,5,338,0,0,1441,1445,3,66,33,0,1442,1444,3,68,34,0,1443,1442,1,0,0,0,1444,1447,1,0,0,0,1445,1443,1,0,0,0,1445,1446,1,0,0,0,1446,1475,1,0,0,0,1447,1445,1,0,0,0,1448,1451,5,417,0,0,1449,1452,3,618,309,0,1450,1452,3,716,358,0,1451,1449,1,0,0,0,1451,1450,1,0,0,0,1452,1453,1,0,0,0,1453,1462,3,70,35,0,1454,1455,5,630,0,0,1455,1459,3,66,33,0,1456,1458,3,68,34,0,1457,1456,1,0,0,0,1458,1461,1,0,0,0,1459,1457,1,0,0,0,1459,1460,1,0,0,0,1460,1463,1,0,0,0,1461,1459,1,0,0,0,1462,1454,1,0,0,0,1462,1463,1,0,0,0,1463,1472,1,0,0,0,1464,1465,5,408,0,0,1465,1469,3,66,33,0,1466,1468,3,68,34,0,1467,1466,1,0,0,0,1468,1471,1,0,0,0,1469,1467,1,0,0,0,1469,1470,1,0,0,0,1470,1473,1,0,0,0,1471,1469,1,0,0,0,1472,1464,1,0,0,0,1472,1473,1,0,0,0,1473,1475,1,0,0,0,1474,1440,1,0,0,0,1474,1448,1,0,0,0,1475,65,1,0,0,0,1476,1481,5,315,0,0,1477,1481,3,622,311,0,1478,1481,3,618,309,0,1479,1481,3,716,358,0,1480,1476,1,0,0,0,1480,1477,1,0,0,0,1480,1478,1,0,0,0,1480,1479,1,0,0,0,1481,67,1,0,0,0,1482,1483,5,1120,0,0,1483,1486,5,86,0,0,1484,1487,3,618,309,0,1485,1487,3,716,358,0,1486,1484,1,0,0,0,1486,1485,1,0,0,0,1487,1488,1,0,0,0,1488,1489,3,70,35,0,1489,69,1,0,0,0,1490,1504,3,742,371,0,1491,1504,5,221,0,0,1492,1504,5,240,0,0,1493,1504,5,241,0,0,1494,1504,5,242,0,0,1495,1504,5,243,0,0,1496,1504,5,244,0,0,1497,1504,5,245,0,0,1498,1504,5,246,0,0,1499,1504,5,247,0,0,1500,1504,5,248,0,0,1501,1504,5,249,0,0,1502,1504,5,250,0,0,1503,1490,1,0,0,0,1503,1491,1,0,0,0,1503,1492,1,0,0,0,1503,1493,1,0,0,0,1503,1494,1,0,0,0,1503,1495,1,0,0,0,1503,1496,1,0,0,0,1503,1497,1,0,0,0,1503,1498,1,0,0,0,1503,1499,1,0,0,0,1503,1500,1,0,0,0,1503,1501,1,0,0,0,1503,1502,1,0,0,0,1504,71,1,0,0,0,1505,1511,5,403,0,0,1506,1511,5,396,0,0,1507,1508,5,396,0,0,1508,1509,5,118,0,0,1509,1511,5,614,0,0,1510,1505,1,0,0,0,1510,1506,1,0,0,0,1510,1507,1,0,0,0,1511,73,1,0,0,0,1512,1513,5,187,0,0,1513,1514,7,14,0,0,1514,75,1,0,0,0,1515,1517,5,467,0,0,1516,1518,5,1124,0,0,1517,1516,1,0,0,0,1517,1518,1,0,0,0,1518,1519,1,0,0,0,1519,1538,3,620,310,0,1520,1538,3,74,37,0,1521,1522,5,192,0,0,1522,1523,5,547,0,0,1523,1538,3,612,306,0,1524,1525,5,368,0,0,1525,1538,5,1148,0,0,1526,1538,7,15,0,0,1527,1529,5,875,0,0,1528,1530,5,1124,0,0,1529,1528,1,0,0,0,1529,1530,1,0,0,0,1530,1531,1,0,0,0,1531,1538,5,1148,0,0,1532,1534,5,1e3,0,0,1533,1535,5,1124,0,0,1534,1533,1,0,0,0,1534,1535,1,0,0,0,1535,1536,1,0,0,0,1536,1538,5,1148,0,0,1537,1515,1,0,0,0,1537,1520,1,0,0,0,1537,1521,1,0,0,0,1537,1524,1,0,0,0,1537,1526,1,0,0,0,1537,1527,1,0,0,0,1537,1532,1,0,0,0,1538,77,1,0,0,0,1539,1541,7,16,0,0,1540,1539,1,0,0,0,1540,1541,1,0,0,0,1541,1542,1,0,0,0,1542,1543,3,612,306,0,1543,1544,3,632,316,0,1544,79,1,0,0,0,1545,1546,3,612,306,0,1546,1547,3,632,316,0,1547,81,1,0,0,0,1548,1549,5,368,0,0,1549,1572,5,1148,0,0,1550,1551,5,468,0,0,1551,1572,5,160,0,0,1552,1554,5,114,0,0,1553,1552,1,0,0,0,1553,1554,1,0,0,0,1554,1555,1,0,0,0,1555,1572,5,47,0,0,1556,1557,5,381,0,0,1557,1567,5,160,0,0,1558,1559,5,521,0,0,1559,1567,5,160,0,0,1560,1561,5,135,0,0,1561,1562,5,160,0,0,1562,1567,5,388,0,0,1563,1564,5,112,0,0,1564,1565,5,160,0,0,1565,1567,5,388,0,0,1566,1556,1,0,0,0,1566,1558,1,0,0,0,1566,1560,1,0,0,0,1566,1563,1,0,0,0,1567,1572,1,0,0,0,1568,1569,5,160,0,0,1569,1570,5,606,0,0,1570,1572,7,11,0,0,1571,1548,1,0,0,0,1571,1550,1,0,0,0,1571,1553,1,0,0,0,1571,1566,1,0,0,0,1571,1568,1,0,0,0,1572,83,1,0,0,0,1573,1574,5,446,0,0,1574,1588,5,1148,0,0,1575,1576,5,39,0,0,1576,1588,5,1148,0,0,1577,1578,5,665,0,0,1578,1588,5,1148,0,0,1579,1580,5,551,0,0,1580,1588,5,1148,0,0,1581,1582,5,617,0,0,1582,1588,5,1148,0,0,1583,1584,5,542,0,0,1584,1588,5,1148,0,0,1585,1586,5,557,0,0,1586,1588,3,618,309,0,1587,1573,1,0,0,0,1587,1575,1,0,0,0,1587,1577,1,0,0,0,1587,1579,1,0,0,0,1587,1581,1,0,0,0,1587,1583,1,0,0,0,1587,1585,1,0,0,0,1588,85,1,0,0,0,1589,1590,5,1133,0,0,1590,1595,3,88,44,0,1591,1592,5,1135,0,0,1592,1594,3,88,44,0,1593,1591,1,0,0,0,1594,1597,1,0,0,0,1595,1593,1,0,0,0,1595,1596,1,0,0,0,1596,1598,1,0,0,0,1597,1595,1,0,0,0,1598,1599,5,1134,0,0,1599,87,1,0,0,0,1600,1601,3,570,285,0,1601,1602,3,90,45,0,1602,1612,1,0,0,0,1603,1605,3,94,47,0,1604,1606,5,114,0,0,1605,1604,1,0,0,0,1605,1606,1,0,0,0,1606,1608,1,0,0,0,1607,1609,5,57,0,0,1608,1607,1,0,0,0,1608,1609,1,0,0,0,1609,1612,1,0,0,0,1610,1612,3,102,51,0,1611,1600,1,0,0,0,1611,1603,1,0,0,0,1611,1610,1,0,0,0,1612,89,1,0,0,0,1613,1617,3,632,316,0,1614,1616,3,92,46,0,1615,1614,1,0,0,0,1616,1619,1,0,0,0,1617,1615,1,0,0,0,1617,1618,1,0,0,0,1618,1621,1,0,0,0,1619,1617,1,0,0,0,1620,1622,5,114,0,0,1621,1620,1,0,0,0,1621,1622,1,0,0,0,1622,1624,1,0,0,0,1623,1625,5,57,0,0,1624,1623,1,0,0,0,1624,1625,1,0,0,0,1625,91,1,0,0,0,1626,1680,3,628,314,0,1627,1628,5,42,0,0,1628,1680,3,662,331,0,1629,1680,5,673,0,0,1630,1680,5,459,0,0,1631,1636,5,342,0,0,1632,1633,5,118,0,0,1633,1634,5,184,0,0,1634,1636,3,664,332,0,1635,1631,1,0,0,0,1635,1632,1,0,0,0,1636,1680,1,0,0,0,1637,1639,5,130,0,0,1638,1637,1,0,0,0,1638,1639,1,0,0,0,1639,1640,1,0,0,0,1640,1680,5,91,0,0,1641,1643,5,181,0,0,1642,1644,5,91,0,0,1643,1642,1,0,0,0,1643,1644,1,0,0,0,1644,1680,1,0,0,0,1645,1646,5,368,0,0,1646,1680,5,1148,0,0,1647,1648,5,366,0,0,1648,1680,7,17,0,0,1649,1650,5,636,0,0,1650,1680,7,18,0,0,1651,1680,3,96,48,0,1652,1653,5,27,0,0,1653,1680,3,598,299,0,1654,1655,5,70,0,0,1655,1657,5,8,0,0,1656,1654,1,0,0,0,1656,1657,1,0,0,0,1657,1658,1,0,0,0,1658,1659,5,12,0,0,1659,1660,5,1133,0,0,1660,1661,3,716,358,0,1661,1663,5,1134,0,0,1662,1664,7,19,0,0,1663,1662,1,0,0,0,1663,1664,1,0,0,0,1664,1680,1,0,0,0,1665,1666,5,239,0,0,1666,1667,5,42,0,0,1667,1680,5,669,0,0,1668,1670,5,30,0,0,1669,1671,3,612,306,0,1670,1669,1,0,0,0,1670,1671,1,0,0,0,1671,1673,1,0,0,0,1672,1668,1,0,0,0,1672,1673,1,0,0,0,1673,1674,1,0,0,0,1674,1675,5,26,0,0,1675,1676,5,1133,0,0,1676,1677,3,716,358,0,1677,1678,5,1134,0,0,1678,1680,1,0,0,0,1679,1626,1,0,0,0,1679,1627,1,0,0,0,1679,1629,1,0,0,0,1679,1630,1,0,0,0,1679,1635,1,0,0,0,1679,1638,1,0,0,0,1679,1641,1,0,0,0,1679,1645,1,0,0,0,1679,1647,1,0,0,0,1679,1649,1,0,0,0,1679,1651,1,0,0,0,1679,1652,1,0,0,0,1679,1656,1,0,0,0,1679,1665,1,0,0,0,1679,1672,1,0,0,0,1680,93,1,0,0,0,1681,1683,5,30,0,0,1682,1684,3,612,306,0,1683,1682,1,0,0,0,1683,1684,1,0,0,0,1684,1686,1,0,0,0,1685,1681,1,0,0,0,1685,1686,1,0,0,0,1686,1687,1,0,0,0,1687,1688,5,130,0,0,1688,1690,5,91,0,0,1689,1691,3,612,306,0,1690,1689,1,0,0,0,1690,1691,1,0,0,0,1691,1693,1,0,0,0,1692,1694,3,74,37,0,1693,1692,1,0,0,0,1693,1694,1,0,0,0,1694,1695,1,0,0,0,1695,1699,3,650,325,0,1696,1698,3,76,38,0,1697,1696,1,0,0,0,1698,1701,1,0,0,0,1699,1697,1,0,0,0,1699,1700,1,0,0,0,1700,1751,1,0,0,0,1701,1699,1,0,0,0,1702,1704,5,30,0,0,1703,1705,3,612,306,0,1704,1703,1,0,0,0,1704,1705,1,0,0,0,1705,1707,1,0,0,0,1706,1702,1,0,0,0,1706,1707,1,0,0,0,1707,1708,1,0,0,0,1708,1710,5,181,0,0,1709,1711,7,20,0,0,1710,1709,1,0,0,0,1710,1711,1,0,0,0,1711,1713,1,0,0,0,1712,1714,3,612,306,0,1713,1712,1,0,0,0,1713,1714,1,0,0,0,1714,1716,1,0,0,0,1715,1717,3,74,37,0,1716,1715,1,0,0,0,1716,1717,1,0,0,0,1717,1718,1,0,0,0,1718,1722,3,650,325,0,1719,1721,3,76,38,0,1720,1719,1,0,0,0,1721,1724,1,0,0,0,1722,1720,1,0,0,0,1722,1723,1,0,0,0,1723,1751,1,0,0,0,1724,1722,1,0,0,0,1725,1727,5,30,0,0,1726,1728,3,612,306,0,1727,1726,1,0,0,0,1727,1728,1,0,0,0,1728,1730,1,0,0,0,1729,1725,1,0,0,0,1729,1730,1,0,0,0,1730,1731,1,0,0,0,1731,1732,5,67,0,0,1732,1734,5,91,0,0,1733,1735,3,612,306,0,1734,1733,1,0,0,0,1734,1735,1,0,0,0,1735,1736,1,0,0,0,1736,1737,3,650,325,0,1737,1738,3,96,48,0,1738,1751,1,0,0,0,1739,1741,5,30,0,0,1740,1742,3,612,306,0,1741,1740,1,0,0,0,1741,1742,1,0,0,0,1742,1744,1,0,0,0,1743,1739,1,0,0,0,1743,1744,1,0,0,0,1744,1745,1,0,0,0,1745,1746,5,26,0,0,1746,1747,5,1133,0,0,1747,1748,3,716,358,0,1748,1749,5,1134,0,0,1749,1751,1,0,0,0,1750,1685,1,0,0,0,1750,1706,1,0,0,0,1750,1729,1,0,0,0,1750,1743,1,0,0,0,1751,95,1,0,0,0,1752,1753,5,136,0,0,1753,1755,3,554,277,0,1754,1756,3,650,325,0,1755,1754,1,0,0,0,1755,1756,1,0,0,0,1756,1759,1,0,0,0,1757,1758,5,109,0,0,1758,1760,7,21,0,0,1759,1757,1,0,0,0,1759,1760,1,0,0,0,1760,1762,1,0,0,0,1761,1763,3,98,49,0,1762,1761,1,0,0,0,1762,1763,1,0,0,0,1763,97,1,0,0,0,1764,1765,5,118,0,0,1765,1766,5,44,0,0,1766,1770,3,100,50,0,1767,1768,5,118,0,0,1768,1769,5,184,0,0,1769,1771,3,100,50,0,1770,1767,1,0,0,0,1770,1771,1,0,0,0,1771,1781,1,0,0,0,1772,1773,5,118,0,0,1773,1774,5,184,0,0,1774,1778,3,100,50,0,1775,1776,5,118,0,0,1776,1777,5,44,0,0,1777,1779,3,100,50,0,1778,1775,1,0,0,0,1778,1779,1,0,0,0,1779,1781,1,0,0,0,1780,1764,1,0,0,0,1780,1772,1,0,0,0,1781,99,1,0,0,0,1782,1791,5,144,0,0,1783,1791,5,21,0,0,1784,1785,5,153,0,0,1785,1791,5,116,0,0,1786,1787,5,521,0,0,1787,1791,5,333,0,0,1788,1789,5,153,0,0,1789,1791,5,42,0,0,1790,1782,1,0,0,0,1790,1783,1,0,0,0,1790,1784,1,0,0,0,1790,1786,1,0,0,0,1790,1788,1,0,0,0,1791,101,1,0,0,0,1792,1794,7,20,0,0,1793,1795,3,612,306,0,1794,1793,1,0,0,0,1794,1795,1,0,0,0,1795,1797,1,0,0,0,1796,1798,3,74,37,0,1797,1796,1,0,0,0,1797,1798,1,0,0,0,1798,1799,1,0,0,0,1799,1803,3,650,325,0,1800,1802,3,76,38,0,1801,1800,1,0,0,0,1802,1805,1,0,0,0,1803,1801,1,0,0,0,1803,1804,1,0,0,0,1804,1821,1,0,0,0,1805,1803,1,0,0,0,1806,1808,7,22,0,0,1807,1809,7,20,0,0,1808,1807,1,0,0,0,1808,1809,1,0,0,0,1809,1811,1,0,0,0,1810,1812,3,612,306,0,1811,1810,1,0,0,0,1811,1812,1,0,0,0,1812,1813,1,0,0,0,1813,1817,3,650,325,0,1814,1816,3,76,38,0,1815,1814,1,0,0,0,1816,1819,1,0,0,0,1817,1815,1,0,0,0,1817,1818,1,0,0,0,1818,1821,1,0,0,0,1819,1817,1,0,0,0,1820,1792,1,0,0,0,1820,1806,1,0,0,0,1821,103,1,0,0,0,1822,1824,5,409,0,0,1823,1825,5,1124,0,0,1824,1823,1,0,0,0,1824,1825,1,0,0,0,1825,1827,1,0,0,0,1826,1828,3,600,300,0,1827,1826,1,0,0,0,1827,1828,1,0,0,0,1828,2008,1,0,0,0,1829,1831,5,875,0,0,1830,1832,5,1124,0,0,1831,1830,1,0,0,0,1831,1832,1,0,0,0,1832,1833,1,0,0,0,1833,2008,5,1148,0,0,1834,1836,5,341,0,0,1835,1837,5,1124,0,0,1836,1835,1,0,0,0,1836,1837,1,0,0,0,1837,1838,1,0,0,0,1838,2008,3,618,309,0,1839,1841,5,342,0,0,1840,1842,5,1124,0,0,1841,1840,1,0,0,0,1841,1842,1,0,0,0,1842,1843,1,0,0,0,1843,2008,3,618,309,0,1844,1846,5,343,0,0,1845,1847,5,1124,0,0,1846,1845,1,0,0,0,1846,1847,1,0,0,0,1847,1848,1,0,0,0,1848,2008,3,618,309,0,1849,1851,5,42,0,0,1850,1849,1,0,0,0,1850,1851,1,0,0,0,1851,1852,1,0,0,0,1852,1854,3,58,29,0,1853,1855,5,1124,0,0,1854,1853,1,0,0,0,1854,1855,1,0,0,0,1855,1858,1,0,0,0,1856,1859,3,596,298,0,1857,1859,5,42,0,0,1858,1856,1,0,0,0,1858,1857,1,0,0,0,1859,2008,1,0,0,0,1860,1862,7,23,0,0,1861,1863,5,1124,0,0,1862,1861,1,0,0,0,1862,1863,1,0,0,0,1863,1864,1,0,0,0,1864,2008,7,24,0,0,1865,1867,5,42,0,0,1866,1865,1,0,0,0,1866,1867,1,0,0,0,1867,1868,1,0,0,0,1868,1870,5,27,0,0,1869,1871,5,1124,0,0,1870,1869,1,0,0,0,1870,1871,1,0,0,0,1871,1872,1,0,0,0,1872,2008,3,598,299,0,1873,1875,5,368,0,0,1874,1876,5,1124,0,0,1875,1874,1,0,0,0,1875,1876,1,0,0,0,1876,1877,1,0,0,0,1877,2008,5,1148,0,0,1878,1880,5,373,0,0,1879,1881,5,1124,0,0,1880,1879,1,0,0,0,1880,1881,1,0,0,0,1881,1882,1,0,0,0,1882,2008,7,25,0,0,1883,1885,5,376,0,0,1884,1886,5,1124,0,0,1885,1884,1,0,0,0,1885,1886,1,0,0,0,1886,1887,1,0,0,0,1887,2008,5,1148,0,0,1888,1889,7,26,0,0,1889,1891,5,395,0,0,1890,1892,5,1124,0,0,1891,1890,1,0,0,0,1891,1892,1,0,0,0,1892,1893,1,0,0,0,1893,2008,5,1148,0,0,1894,1896,5,393,0,0,1895,1897,5,1124,0,0,1896,1895,1,0,0,0,1896,1897,1,0,0,0,1897,1898,1,0,0,0,1898,2008,7,24,0,0,1899,1901,5,405,0,0,1900,1902,5,1124,0,0,1901,1900,1,0,0,0,1901,1902,1,0,0,0,1902,1903,1,0,0,0,1903,2008,5,1148,0,0,1904,1906,7,27,0,0,1905,1907,5,1124,0,0,1906,1905,1,0,0,0,1906,1907,1,0,0,0,1907,1908,1,0,0,0,1908,2008,7,24,0,0,1909,1911,7,28,0,0,1910,1912,5,1124,0,0,1911,1910,1,0,0,0,1911,1912,1,0,0,0,1912,1913,1,0,0,0,1913,2008,3,618,309,0,1914,1916,5,406,0,0,1915,1917,5,1124,0,0,1916,1915,1,0,0,0,1916,1917,1,0,0,0,1917,1918,1,0,0,0,1918,2008,3,618,309,0,1919,1920,5,81,0,0,1920,1922,5,395,0,0,1921,1923,5,1124,0,0,1922,1921,1,0,0,0,1922,1923,1,0,0,0,1923,1924,1,0,0,0,1924,2008,5,1148,0,0,1925,1927,5,455,0,0,1926,1928,5,1124,0,0,1927,1926,1,0,0,0,1927,1928,1,0,0,0,1928,1929,1,0,0,0,1929,2008,7,29,0,0,1930,1932,5,467,0,0,1931,1933,5,1124,0,0,1932,1931,1,0,0,0,1932,1933,1,0,0,0,1933,1934,1,0,0,0,1934,2008,3,620,310,0,1935,1937,5,500,0,0,1936,1938,5,1124,0,0,1937,1936,1,0,0,0,1937,1938,1,0,0,0,1938,1939,1,0,0,0,1939,2008,3,618,309,0,1940,1942,5,510,0,0,1941,1943,5,1124,0,0,1942,1941,1,0,0,0,1942,1943,1,0,0,0,1943,1944,1,0,0,0,1944,2008,3,618,309,0,1945,1947,5,543,0,0,1946,1948,5,1124,0,0,1947,1946,1,0,0,0,1947,1948,1,0,0,0,1948,1949,1,0,0,0,1949,2008,7,13,0,0,1950,1952,5,551,0,0,1951,1953,5,1124,0,0,1952,1951,1,0,0,0,1952,1953,1,0,0,0,1953,1954,1,0,0,0,1954,2008,5,1148,0,0,1955,1957,5,602,0,0,1956,1958,5,1124,0,0,1957,1956,1,0,0,0,1957,1958,1,0,0,0,1958,1959,1,0,0,0,1959,2008,7,30,0,0,1960,1961,5,629,0,0,1961,2008,5,653,0,0,1962,1964,5,1e3,0,0,1963,1965,5,1124,0,0,1964,1963,1,0,0,0,1964,1965,1,0,0,0,1965,1966,1,0,0,0,1966,2008,5,1148,0,0,1967,1969,5,631,0,0,1968,1970,5,1124,0,0,1969,1968,1,0,0,0,1969,1970,1,0,0,0,1970,1971,1,0,0,0,1971,2008,7,13,0,0,1972,1974,5,632,0,0,1973,1975,5,1124,0,0,1974,1973,1,0,0,0,1974,1975,1,0,0,0,1975,1976,1,0,0,0,1976,2008,7,13,0,0,1977,1979,5,633,0,0,1978,1980,5,1124,0,0,1979,1978,1,0,0,0,1979,1980,1,0,0,0,1980,1983,1,0,0,0,1981,1984,5,42,0,0,1982,1984,3,618,309,0,1983,1981,1,0,0,0,1983,1982,1,0,0,0,1984,2008,1,0,0,0,1985,1986,5,647,0,0,1986,1988,3,612,306,0,1987,1989,3,108,54,0,1988,1987,1,0,0,0,1988,1989,1,0,0,0,1989,2008,1,0,0,0,1990,1991,5,648,0,0,1991,1992,5,1124,0,0,1992,2008,3,106,53,0,1993,2008,3,108,54,0,1994,1996,5,654,0,0,1995,1997,5,1124,0,0,1996,1995,1,0,0,0,1996,1997,1,0,0,0,1997,1998,1,0,0,0,1998,2008,7,24,0,0,1999,2001,5,180,0,0,2e3,2002,5,1124,0,0,2001,2e3,1,0,0,0,2001,2002,1,0,0,0,2002,2003,1,0,0,0,2003,2004,5,1133,0,0,2004,2005,3,648,324,0,2005,2006,5,1134,0,0,2006,2008,1,0,0,0,2007,1822,1,0,0,0,2007,1829,1,0,0,0,2007,1834,1,0,0,0,2007,1839,1,0,0,0,2007,1844,1,0,0,0,2007,1850,1,0,0,0,2007,1860,1,0,0,0,2007,1866,1,0,0,0,2007,1873,1,0,0,0,2007,1878,1,0,0,0,2007,1883,1,0,0,0,2007,1888,1,0,0,0,2007,1894,1,0,0,0,2007,1899,1,0,0,0,2007,1904,1,0,0,0,2007,1909,1,0,0,0,2007,1914,1,0,0,0,2007,1919,1,0,0,0,2007,1925,1,0,0,0,2007,1930,1,0,0,0,2007,1935,1,0,0,0,2007,1940,1,0,0,0,2007,1945,1,0,0,0,2007,1950,1,0,0,0,2007,1955,1,0,0,0,2007,1960,1,0,0,0,2007,1962,1,0,0,0,2007,1967,1,0,0,0,2007,1972,1,0,0,0,2007,1977,1,0,0,0,2007,1985,1,0,0,0,2007,1990,1,0,0,0,2007,1993,1,0,0,0,2007,1994,1,0,0,0,2007,1999,1,0,0,0,2008,105,1,0,0,0,2009,2010,7,31,0,0,2010,107,1,0,0,0,2011,2012,5,636,0,0,2012,2013,7,18,0,0,2013,109,1,0,0,0,2014,2015,5,129,0,0,2015,2016,5,19,0,0,2016,2019,3,112,56,0,2017,2018,5,550,0,0,2018,2020,3,618,309,0,2019,2017,1,0,0,0,2019,2020,1,0,0,0,2020,2028,1,0,0,0,2021,2022,5,641,0,0,2022,2023,5,19,0,0,2023,2026,3,114,57,0,2024,2025,5,642,0,0,2025,2027,3,618,309,0,2026,2024,1,0,0,0,2026,2027,1,0,0,0,2027,2029,1,0,0,0,2028,2021,1,0,0,0,2028,2029,1,0,0,0,2029,2041,1,0,0,0,2030,2031,5,1133,0,0,2031,2036,3,116,58,0,2032,2033,5,1135,0,0,2033,2035,3,116,58,0,2034,2032,1,0,0,0,2035,2038,1,0,0,0,2036,2034,1,0,0,0,2036,2037,1,0,0,0,2037,2039,1,0,0,0,2038,2036,1,0,0,0,2039,2040,5,1134,0,0,2040,2042,1,0,0,0,2041,2030,1,0,0,0,2041,2042,1,0,0,0,2042,111,1,0,0,0,2043,2045,5,100,0,0,2044,2043,1,0,0,0,2044,2045,1,0,0,0,2045,2046,1,0,0,0,2046,2047,5,443,0,0,2047,2048,5,1133,0,0,2048,2049,3,716,358,0,2049,2050,5,1134,0,0,2050,2090,1,0,0,0,2051,2053,5,100,0,0,2052,2051,1,0,0,0,2052,2053,1,0,0,0,2053,2054,1,0,0,0,2054,2058,5,91,0,0,2055,2056,5,336,0,0,2056,2057,5,1124,0,0,2057,2059,7,32,0,0,2058,2055,1,0,0,0,2058,2059,1,0,0,0,2059,2060,1,0,0,0,2060,2062,5,1133,0,0,2061,2063,3,644,322,0,2062,2061,1,0,0,0,2062,2063,1,0,0,0,2063,2064,1,0,0,0,2064,2090,5,1134,0,0,2065,2075,5,133,0,0,2066,2067,5,1133,0,0,2067,2068,3,716,358,0,2068,2069,5,1134,0,0,2069,2076,1,0,0,0,2070,2071,5,365,0,0,2071,2072,5,1133,0,0,2072,2073,3,644,322,0,2073,2074,5,1134,0,0,2074,2076,1,0,0,0,2075,2066,1,0,0,0,2075,2070,1,0,0,0,2076,2090,1,0,0,0,2077,2087,5,473,0,0,2078,2079,5,1133,0,0,2079,2080,3,716,358,0,2080,2081,5,1134,0,0,2081,2088,1,0,0,0,2082,2083,5,365,0,0,2083,2084,5,1133,0,0,2084,2085,3,644,322,0,2085,2086,5,1134,0,0,2086,2088,1,0,0,0,2087,2078,1,0,0,0,2087,2082,1,0,0,0,2088,2090,1,0,0,0,2089,2044,1,0,0,0,2089,2052,1,0,0,0,2089,2065,1,0,0,0,2089,2077,1,0,0,0,2090,113,1,0,0,0,2091,2093,5,100,0,0,2092,2091,1,0,0,0,2092,2093,1,0,0,0,2093,2094,1,0,0,0,2094,2095,5,443,0,0,2095,2096,5,1133,0,0,2096,2097,3,716,358,0,2097,2098,5,1134,0,0,2098,2113,1,0,0,0,2099,2101,5,100,0,0,2100,2099,1,0,0,0,2100,2101,1,0,0,0,2101,2102,1,0,0,0,2102,2106,5,91,0,0,2103,2104,5,336,0,0,2104,2105,5,1124,0,0,2105,2107,7,32,0,0,2106,2103,1,0,0,0,2106,2107,1,0,0,0,2107,2108,1,0,0,0,2108,2109,5,1133,0,0,2109,2110,3,644,322,0,2110,2111,5,1134,0,0,2111,2113,1,0,0,0,2112,2092,1,0,0,0,2112,2100,1,0,0,0,2113,115,1,0,0,0,2114,2115,5,129,0,0,2115,2116,3,612,306,0,2116,2117,5,188,0,0,2117,2118,5,471,0,0,2118,2119,5,651,0,0,2119,2120,5,1133,0,0,2120,2125,3,118,59,0,2121,2122,5,1135,0,0,2122,2124,3,118,59,0,2123,2121,1,0,0,0,2124,2127,1,0,0,0,2125,2123,1,0,0,0,2125,2126,1,0,0,0,2126,2128,1,0,0,0,2127,2125,1,0,0,0,2128,2132,5,1134,0,0,2129,2131,3,124,62,0,2130,2129,1,0,0,0,2131,2134,1,0,0,0,2132,2130,1,0,0,0,2132,2133,1,0,0,0,2133,2146,1,0,0,0,2134,2132,1,0,0,0,2135,2136,5,1133,0,0,2136,2141,3,122,61,0,2137,2138,5,1135,0,0,2138,2140,3,122,61,0,2139,2137,1,0,0,0,2140,2143,1,0,0,0,2141,2139,1,0,0,0,2141,2142,1,0,0,0,2142,2144,1,0,0,0,2143,2141,1,0,0,0,2144,2145,5,1134,0,0,2145,2147,1,0,0,0,2146,2135,1,0,0,0,2146,2147,1,0,0,0,2147,2261,1,0,0,0,2148,2149,5,129,0,0,2149,2150,3,612,306,0,2150,2151,5,188,0,0,2151,2152,5,471,0,0,2152,2153,5,651,0,0,2153,2157,3,118,59,0,2154,2156,3,124,62,0,2155,2154,1,0,0,0,2156,2159,1,0,0,0,2157,2155,1,0,0,0,2157,2158,1,0,0,0,2158,2171,1,0,0,0,2159,2157,1,0,0,0,2160,2161,5,1133,0,0,2161,2166,3,122,61,0,2162,2163,5,1135,0,0,2163,2165,3,122,61,0,2164,2162,1,0,0,0,2165,2168,1,0,0,0,2166,2164,1,0,0,0,2166,2167,1,0,0,0,2167,2169,1,0,0,0,2168,2166,1,0,0,0,2169,2170,5,1134,0,0,2170,2172,1,0,0,0,2171,2160,1,0,0,0,2171,2172,1,0,0,0,2172,2261,1,0,0,0,2173,2174,5,129,0,0,2174,2175,3,612,306,0,2175,2176,5,188,0,0,2176,2177,5,80,0,0,2177,2178,5,1133,0,0,2178,2183,3,118,59,0,2179,2180,5,1135,0,0,2180,2182,3,118,59,0,2181,2179,1,0,0,0,2182,2185,1,0,0,0,2183,2181,1,0,0,0,2183,2184,1,0,0,0,2184,2186,1,0,0,0,2185,2183,1,0,0,0,2186,2190,5,1134,0,0,2187,2189,3,124,62,0,2188,2187,1,0,0,0,2189,2192,1,0,0,0,2190,2188,1,0,0,0,2190,2191,1,0,0,0,2191,2204,1,0,0,0,2192,2190,1,0,0,0,2193,2194,5,1133,0,0,2194,2199,3,122,61,0,2195,2196,5,1135,0,0,2196,2198,3,122,61,0,2197,2195,1,0,0,0,2198,2201,1,0,0,0,2199,2197,1,0,0,0,2199,2200,1,0,0,0,2200,2202,1,0,0,0,2201,2199,1,0,0,0,2202,2203,5,1134,0,0,2203,2205,1,0,0,0,2204,2193,1,0,0,0,2204,2205,1,0,0,0,2205,2261,1,0,0,0,2206,2207,5,129,0,0,2207,2208,3,612,306,0,2208,2209,5,188,0,0,2209,2210,5,80,0,0,2210,2211,5,1133,0,0,2211,2216,3,120,60,0,2212,2213,5,1135,0,0,2213,2215,3,120,60,0,2214,2212,1,0,0,0,2215,2218,1,0,0,0,2216,2214,1,0,0,0,2216,2217,1,0,0,0,2217,2219,1,0,0,0,2218,2216,1,0,0,0,2219,2223,5,1134,0,0,2220,2222,3,124,62,0,2221,2220,1,0,0,0,2222,2225,1,0,0,0,2223,2221,1,0,0,0,2223,2224,1,0,0,0,2224,2237,1,0,0,0,2225,2223,1,0,0,0,2226,2227,5,1133,0,0,2227,2232,3,122,61,0,2228,2229,5,1135,0,0,2229,2231,3,122,61,0,2230,2228,1,0,0,0,2231,2234,1,0,0,0,2232,2230,1,0,0,0,2232,2233,1,0,0,0,2233,2235,1,0,0,0,2234,2232,1,0,0,0,2235,2236,5,1134,0,0,2236,2238,1,0,0,0,2237,2226,1,0,0,0,2237,2238,1,0,0,0,2238,2261,1,0,0,0,2239,2240,5,129,0,0,2240,2244,3,612,306,0,2241,2243,3,124,62,0,2242,2241,1,0,0,0,2243,2246,1,0,0,0,2244,2242,1,0,0,0,2244,2245,1,0,0,0,2245,2258,1,0,0,0,2246,2244,1,0,0,0,2247,2248,5,1133,0,0,2248,2253,3,122,61,0,2249,2250,5,1135,0,0,2250,2252,3,122,61,0,2251,2249,1,0,0,0,2252,2255,1,0,0,0,2253,2251,1,0,0,0,2253,2254,1,0,0,0,2254,2256,1,0,0,0,2255,2253,1,0,0,0,2256,2257,5,1134,0,0,2257,2259,1,0,0,0,2258,2247,1,0,0,0,2258,2259,1,0,0,0,2259,2261,1,0,0,0,2260,2114,1,0,0,0,2260,2148,1,0,0,0,2260,2173,1,0,0,0,2260,2206,1,0,0,0,2260,2239,1,0,0,0,2261,117,1,0,0,0,2262,2266,3,630,315,0,2263,2266,3,716,358,0,2264,2266,5,110,0,0,2265,2262,1,0,0,0,2265,2263,1,0,0,0,2265,2264,1,0,0,0,2266,119,1,0,0,0,2267,2268,5,1133,0,0,2268,2271,3,118,59,0,2269,2270,5,1135,0,0,2270,2272,3,118,59,0,2271,2269,1,0,0,0,2272,2273,1,0,0,0,2273,2271,1,0,0,0,2273,2274,1,0,0,0,2274,2275,1,0,0,0,2275,2276,5,1134,0,0,2276,121,1,0,0,0,2277,2278,5,641,0,0,2278,2282,3,612,306,0,2279,2281,3,124,62,0,2280,2279,1,0,0,0,2281,2284,1,0,0,0,2282,2280,1,0,0,0,2282,2283,1,0,0,0,2283,123,1,0,0,0,2284,2282,1,0,0,0,2285,2287,5,42,0,0,2286,2285,1,0,0,0,2286,2287,1,0,0,0,2287,2289,1,0,0,0,2288,2290,5,636,0,0,2289,2288,1,0,0,0,2289,2290,1,0,0,0,2290,2291,1,0,0,0,2291,2293,5,409,0,0,2292,2294,5,1124,0,0,2293,2292,1,0,0,0,2293,2294,1,0,0,0,2294,2295,1,0,0,0,2295,2334,3,600,300,0,2296,2298,5,368,0,0,2297,2299,5,1124,0,0,2298,2297,1,0,0,0,2298,2299,1,0,0,0,2299,2300,1,0,0,0,2300,2334,5,1148,0,0,2301,2302,5,388,0,0,2302,2304,5,395,0,0,2303,2305,5,1124,0,0,2304,2303,1,0,0,0,2304,2305,1,0,0,0,2305,2306,1,0,0,0,2306,2334,5,1148,0,0,2307,2308,5,81,0,0,2308,2310,5,395,0,0,2309,2311,5,1124,0,0,2310,2309,1,0,0,0,2310,2311,1,0,0,0,2311,2312,1,0,0,0,2312,2334,5,1148,0,0,2313,2315,5,500,0,0,2314,2316,5,1124,0,0,2315,2314,1,0,0,0,2315,2316,1,0,0,0,2316,2317,1,0,0,0,2317,2334,3,618,309,0,2318,2320,5,510,0,0,2319,2321,5,1124,0,0,2320,2319,1,0,0,0,2320,2321,1,0,0,0,2321,2322,1,0,0,0,2322,2334,3,618,309,0,2323,2325,5,647,0,0,2324,2326,5,1124,0,0,2325,2324,1,0,0,0,2325,2326,1,0,0,0,2326,2327,1,0,0,0,2327,2334,3,612,306,0,2328,2330,5,528,0,0,2329,2331,5,1124,0,0,2330,2329,1,0,0,0,2330,2331,1,0,0,0,2331,2332,1,0,0,0,2332,2334,3,612,306,0,2333,2286,1,0,0,0,2333,2296,1,0,0,0,2333,2301,1,0,0,0,2333,2307,1,0,0,0,2333,2313,1,0,0,0,2333,2318,1,0,0,0,2333,2323,1,0,0,0,2333,2328,1,0,0,0,2334,125,1,0,0,0,2335,2336,5,7,0,0,2336,2337,7,0,0,0,2337,2339,3,572,286,0,2338,2340,3,56,28,0,2339,2338,1,0,0,0,2340,2341,1,0,0,0,2341,2339,1,0,0,0,2341,2342,1,0,0,0,2342,2352,1,0,0,0,2343,2344,5,7,0,0,2344,2345,7,0,0,0,2345,2346,3,572,286,0,2346,2347,5,664,0,0,2347,2348,5,388,0,0,2348,2349,5,395,0,0,2349,2350,5,516,0,0,2350,2352,1,0,0,0,2351,2335,1,0,0,0,2351,2343,1,0,0,0,2352,127,1,0,0,0,2353,2355,5,7,0,0,2354,2356,3,62,31,0,2355,2354,1,0,0,0,2355,2356,1,0,0,0,2356,2357,1,0,0,0,2357,2358,5,415,0,0,2358,2362,3,552,276,0,2359,2360,5,118,0,0,2360,2361,5,605,0,0,2361,2363,3,64,32,0,2362,2359,1,0,0,0,2362,2363,1,0,0,0,2363,2370,1,0,0,0,2364,2365,5,118,0,0,2365,2367,5,371,0,0,2366,2368,5,114,0,0,2367,2366,1,0,0,0,2367,2368,1,0,0,0,2368,2369,1,0,0,0,2369,2371,5,561,0,0,2370,2364,1,0,0,0,2370,2371,1,0,0,0,2371,2375,1,0,0,0,2372,2373,5,139,0,0,2373,2374,5,175,0,0,2374,2376,3,552,276,0,2375,2372,1,0,0,0,2375,2376,1,0,0,0,2376,2378,1,0,0,0,2377,2379,3,72,36,0,2378,2377,1,0,0,0,2378,2379,1,0,0,0,2379,2382,1,0,0,0,2380,2381,5,368,0,0,2381,2383,5,1148,0,0,2382,2380,1,0,0,0,2382,2383,1,0,0,0,2383,2386,1,0,0,0,2384,2385,5,399,0,0,2385,2387,3,388,194,0,2386,2384,1,0,0,0,2386,2387,1,0,0,0,2387,129,1,0,0,0,2388,2389,5,7,0,0,2389,2390,5,437,0,0,2390,2394,3,552,276,0,2391,2393,3,82,41,0,2392,2391,1,0,0,0,2393,2396,1,0,0,0,2394,2392,1,0,0,0,2394,2395,1,0,0,0,2395,131,1,0,0,0,2396,2394,1,0,0,0,2397,2398,5,7,0,0,2398,2399,5,457,0,0,2399,2400,5,599,0,0,2400,2401,5,791,0,0,2401,2402,5,477,0,0,2402,2403,5,91,0,0,2403,133,1,0,0,0,2404,2405,5,7,0,0,2405,2406,5,475,0,0,2406,2407,5,73,0,0,2407,2408,3,612,306,0,2408,2409,5,5,0,0,2409,2410,5,659,0,0,2410,2416,5,1148,0,0,2411,2413,5,453,0,0,2412,2414,5,1124,0,0,2413,2412,1,0,0,0,2413,2414,1,0,0,0,2414,2415,1,0,0,0,2415,2417,3,620,310,0,2416,2411,1,0,0,0,2416,2417,1,0,0,0,2417,2419,1,0,0,0,2418,2420,5,674,0,0,2419,2418,1,0,0,0,2419,2420,1,0,0,0,2420,2421,1,0,0,0,2421,2423,5,409,0,0,2422,2424,5,1124,0,0,2423,2422,1,0,0,0,2423,2424,1,0,0,0,2424,2425,1,0,0,0,2425,2426,3,600,300,0,2426,135,1,0,0,0,2427,2428,5,7,0,0,2428,2429,5,131,0,0,2429,2433,3,552,276,0,2430,2432,3,82,41,0,2431,2430,1,0,0,0,2432,2435,1,0,0,0,2433,2431,1,0,0,0,2433,2434,1,0,0,0,2434,137,1,0,0,0,2435,2433,1,0,0,0,2436,2437,5,7,0,0,2437,2438,5,608,0,0,2438,2439,3,612,306,0,2439,2440,5,541,0,0,2440,2441,5,1133,0,0,2441,2446,3,84,42,0,2442,2443,5,1135,0,0,2443,2445,3,84,42,0,2444,2442,1,0,0,0,2445,2448,1,0,0,0,2446,2444,1,0,0,0,2446,2447,1,0,0,0,2447,2449,1,0,0,0,2448,2446,1,0,0,0,2449,2450,5,1134,0,0,2450,139,1,0,0,0,2451,2453,5,7,0,0,2452,2454,7,1,0,0,2453,2452,1,0,0,0,2453,2454,1,0,0,0,2454,2456,1,0,0,0,2455,2457,5,78,0,0,2456,2455,1,0,0,0,2456,2457,1,0,0,0,2457,2458,1,0,0,0,2458,2459,5,172,0,0,2459,2461,3,554,277,0,2460,2462,3,674,337,0,2461,2460,1,0,0,0,2461,2462,1,0,0,0,2462,2471,1,0,0,0,2463,2468,3,146,73,0,2464,2465,5,1135,0,0,2465,2467,3,146,73,0,2466,2464,1,0,0,0,2467,2470,1,0,0,0,2468,2466,1,0,0,0,2468,2469,1,0,0,0,2469,2472,1,0,0,0,2470,2468,1,0,0,0,2471,2463,1,0,0,0,2471,2472,1,0,0,0,2472,2474,1,0,0,0,2473,2475,3,110,55,0,2474,2473,1,0,0,0,2474,2475,1,0,0,0,2475,141,1,0,0,0,2476,2477,5,7,0,0,2477,2478,5,647,0,0,2478,2479,3,612,306,0,2479,2480,7,33,0,0,2480,2481,5,389,0,0,2481,2485,5,1148,0,0,2482,2483,5,453,0,0,2483,2484,5,1124,0,0,2484,2486,3,620,310,0,2485,2482,1,0,0,0,2485,2486,1,0,0,0,2486,2488,1,0,0,0,2487,2489,5,674,0,0,2488,2487,1,0,0,0,2488,2489,1,0,0,0,2489,2490,1,0,0,0,2490,2492,5,409,0,0,2491,2493,5,1124,0,0,2492,2491,1,0,0,0,2492,2493,1,0,0,0,2493,2494,1,0,0,0,2494,2495,3,600,300,0,2495,143,1,0,0,0,2496,2500,5,7,0,0,2497,2498,5,336,0,0,2498,2499,5,1124,0,0,2499,2501,7,10,0,0,2500,2497,1,0,0,0,2500,2501,1,0,0,0,2501,2503,1,0,0,0,2502,2504,3,62,31,0,2503,2502,1,0,0,0,2503,2504,1,0,0,0,2504,2508,1,0,0,0,2505,2506,5,160,0,0,2506,2507,5,606,0,0,2507,2509,7,11,0,0,2508,2505,1,0,0,0,2508,2509,1,0,0,0,2509,2510,1,0,0,0,2510,2511,5,671,0,0,2511,2516,3,552,276,0,2512,2513,5,1133,0,0,2513,2514,3,644,322,0,2514,2515,5,1134,0,0,2515,2517,1,0,0,0,2516,2512,1,0,0,0,2516,2517,1,0,0,0,2517,2518,1,0,0,0,2518,2519,5,12,0,0,2519,2526,3,198,99,0,2520,2522,5,192,0,0,2521,2523,7,12,0,0,2522,2521,1,0,0,0,2522,2523,1,0,0,0,2523,2524,1,0,0,0,2524,2525,5,26,0,0,2525,2527,5,120,0,0,2526,2520,1,0,0,0,2526,2527,1,0,0,0,2527,145,1,0,0,0,2528,2535,3,104,52,0,2529,2531,5,1135,0,0,2530,2529,1,0,0,0,2530,2531,1,0,0,0,2531,2532,1,0,0,0,2532,2534,3,104,52,0,2533,2530,1,0,0,0,2534,2537,1,0,0,0,2535,2533,1,0,0,0,2535,2536,1,0,0,0,2536,2880,1,0,0,0,2537,2535,1,0,0,0,2538,2540,5,5,0,0,2539,2541,5,28,0,0,2540,2539,1,0,0,0,2540,2541,1,0,0,0,2541,2542,1,0,0,0,2542,2543,3,612,306,0,2543,2547,3,90,45,0,2544,2548,5,430,0,0,2545,2546,5,334,0,0,2546,2548,3,612,306,0,2547,2544,1,0,0,0,2547,2545,1,0,0,0,2547,2548,1,0,0,0,2548,2880,1,0,0,0,2549,2551,5,5,0,0,2550,2552,5,28,0,0,2551,2550,1,0,0,0,2551,2552,1,0,0,0,2552,2553,1,0,0,0,2553,2554,5,1133,0,0,2554,2555,3,612,306,0,2555,2562,3,90,45,0,2556,2557,5,1135,0,0,2557,2558,3,612,306,0,2558,2559,3,90,45,0,2559,2561,1,0,0,0,2560,2556,1,0,0,0,2561,2564,1,0,0,0,2562,2560,1,0,0,0,2562,2563,1,0,0,0,2563,2565,1,0,0,0,2564,2562,1,0,0,0,2565,2566,5,1134,0,0,2566,2880,1,0,0,0,2567,2568,5,5,0,0,2568,2570,7,20,0,0,2569,2571,3,612,306,0,2570,2569,1,0,0,0,2570,2571,1,0,0,0,2571,2573,1,0,0,0,2572,2574,3,74,37,0,2573,2572,1,0,0,0,2573,2574,1,0,0,0,2574,2575,1,0,0,0,2575,2579,3,650,325,0,2576,2578,3,76,38,0,2577,2576,1,0,0,0,2578,2581,1,0,0,0,2579,2577,1,0,0,0,2579,2580,1,0,0,0,2580,2880,1,0,0,0,2581,2579,1,0,0,0,2582,2587,5,5,0,0,2583,2585,5,30,0,0,2584,2586,3,612,306,0,2585,2584,1,0,0,0,2585,2586,1,0,0,0,2586,2588,1,0,0,0,2587,2583,1,0,0,0,2587,2588,1,0,0,0,2588,2589,1,0,0,0,2589,2590,5,130,0,0,2590,2592,5,91,0,0,2591,2593,3,612,306,0,2592,2591,1,0,0,0,2592,2593,1,0,0,0,2593,2595,1,0,0,0,2594,2596,3,74,37,0,2595,2594,1,0,0,0,2595,2596,1,0,0,0,2596,2597,1,0,0,0,2597,2601,3,650,325,0,2598,2600,3,76,38,0,2599,2598,1,0,0,0,2600,2603,1,0,0,0,2601,2599,1,0,0,0,2601,2602,1,0,0,0,2602,2880,1,0,0,0,2603,2601,1,0,0,0,2604,2609,5,5,0,0,2605,2607,5,30,0,0,2606,2608,3,612,306,0,2607,2606,1,0,0,0,2607,2608,1,0,0,0,2608,2610,1,0,0,0,2609,2605,1,0,0,0,2609,2610,1,0,0,0,2610,2611,1,0,0,0,2611,2613,5,181,0,0,2612,2614,7,20,0,0,2613,2612,1,0,0,0,2613,2614,1,0,0,0,2614,2616,1,0,0,0,2615,2617,3,612,306,0,2616,2615,1,0,0,0,2616,2617,1,0,0,0,2617,2619,1,0,0,0,2618,2620,3,74,37,0,2619,2618,1,0,0,0,2619,2620,1,0,0,0,2620,2621,1,0,0,0,2621,2625,3,650,325,0,2622,2624,3,76,38,0,2623,2622,1,0,0,0,2624,2627,1,0,0,0,2625,2623,1,0,0,0,2625,2626,1,0,0,0,2626,2880,1,0,0,0,2627,2625,1,0,0,0,2628,2629,5,5,0,0,2629,2631,7,22,0,0,2630,2632,7,20,0,0,2631,2630,1,0,0,0,2631,2632,1,0,0,0,2632,2634,1,0,0,0,2633,2635,3,612,306,0,2634,2633,1,0,0,0,2634,2635,1,0,0,0,2635,2636,1,0,0,0,2636,2640,3,650,325,0,2637,2639,3,76,38,0,2638,2637,1,0,0,0,2639,2642,1,0,0,0,2640,2638,1,0,0,0,2640,2641,1,0,0,0,2641,2880,1,0,0,0,2642,2640,1,0,0,0,2643,2648,5,5,0,0,2644,2646,5,30,0,0,2645,2647,3,612,306,0,2646,2645,1,0,0,0,2646,2647,1,0,0,0,2647,2649,1,0,0,0,2648,2644,1,0,0,0,2648,2649,1,0,0,0,2649,2650,1,0,0,0,2650,2651,5,67,0,0,2651,2653,5,91,0,0,2652,2654,3,612,306,0,2653,2652,1,0,0,0,2653,2654,1,0,0,0,2654,2655,1,0,0,0,2655,2656,3,650,325,0,2656,2657,3,96,48,0,2657,2880,1,0,0,0,2658,2663,5,5,0,0,2659,2661,5,30,0,0,2660,2662,3,612,306,0,2661,2660,1,0,0,0,2661,2662,1,0,0,0,2662,2664,1,0,0,0,2663,2659,1,0,0,0,2663,2664,1,0,0,0,2664,2665,1,0,0,0,2665,2672,5,26,0,0,2666,2673,3,612,306,0,2667,2673,3,622,311,0,2668,2669,5,1133,0,0,2669,2670,3,716,358,0,2670,2671,5,1134,0,0,2671,2673,1,0,0,0,2672,2666,1,0,0,0,2672,2667,1,0,0,0,2672,2668,1,0,0,0,2673,2675,1,0,0,0,2674,2676,5,114,0,0,2675,2674,1,0,0,0,2675,2676,1,0,0,0,2676,2678,1,0,0,0,2677,2679,5,57,0,0,2678,2677,1,0,0,0,2678,2679,1,0,0,0,2679,2880,1,0,0,0,2680,2685,5,7,0,0,2681,2683,5,30,0,0,2682,2684,3,576,288,0,2683,2682,1,0,0,0,2683,2684,1,0,0,0,2684,2686,1,0,0,0,2685,2681,1,0,0,0,2685,2686,1,0,0,0,2686,2687,1,0,0,0,2687,2694,5,26,0,0,2688,2695,3,612,306,0,2689,2695,3,622,311,0,2690,2691,5,1133,0,0,2691,2692,3,716,358,0,2692,2693,5,1134,0,0,2693,2695,1,0,0,0,2694,2688,1,0,0,0,2694,2689,1,0,0,0,2694,2690,1,0,0,0,2695,2697,1,0,0,0,2696,2698,5,114,0,0,2697,2696,1,0,0,0,2697,2698,1,0,0,0,2698,2700,1,0,0,0,2699,2701,5,57,0,0,2700,2699,1,0,0,0,2700,2701,1,0,0,0,2701,2880,1,0,0,0,2702,2707,5,5,0,0,2703,2705,5,30,0,0,2704,2706,3,612,306,0,2705,2704,1,0,0,0,2705,2706,1,0,0,0,2706,2708,1,0,0,0,2707,2703,1,0,0,0,2707,2708,1,0,0,0,2708,2709,1,0,0,0,2709,2710,5,26,0,0,2710,2711,5,1133,0,0,2711,2712,3,716,358,0,2712,2713,5,1134,0,0,2713,2880,1,0,0,0,2714,2716,5,336,0,0,2715,2717,5,1124,0,0,2716,2715,1,0,0,0,2716,2717,1,0,0,0,2717,2718,1,0,0,0,2718,2880,7,34,0,0,2719,2721,5,7,0,0,2720,2722,5,28,0,0,2721,2720,1,0,0,0,2721,2722,1,0,0,0,2722,2723,1,0,0,0,2723,2729,3,612,306,0,2724,2725,5,153,0,0,2725,2726,5,42,0,0,2726,2730,3,662,331,0,2727,2728,5,51,0,0,2728,2730,5,42,0,0,2729,2724,1,0,0,0,2729,2727,1,0,0,0,2730,2880,1,0,0,0,2731,2733,5,24,0,0,2732,2734,5,28,0,0,2733,2732,1,0,0,0,2733,2734,1,0,0,0,2734,2735,1,0,0,0,2735,2736,3,612,306,0,2736,2737,3,612,306,0,2737,2741,3,90,45,0,2738,2742,5,430,0,0,2739,2740,5,334,0,0,2740,2742,3,612,306,0,2741,2738,1,0,0,0,2741,2739,1,0,0,0,2741,2742,1,0,0,0,2742,2880,1,0,0,0,2743,2744,5,139,0,0,2744,2745,5,28,0,0,2745,2746,3,612,306,0,2746,2747,5,175,0,0,2747,2748,3,612,306,0,2748,2880,1,0,0,0,2749,2751,5,103,0,0,2750,2752,5,1124,0,0,2751,2750,1,0,0,0,2751,2752,1,0,0,0,2752,2753,1,0,0,0,2753,2880,7,4,0,0,2754,2756,5,512,0,0,2755,2757,5,28,0,0,2756,2755,1,0,0,0,2756,2757,1,0,0,0,2757,2758,1,0,0,0,2758,2759,3,612,306,0,2759,2763,3,90,45,0,2760,2764,5,430,0,0,2761,2762,5,334,0,0,2762,2764,3,612,306,0,2763,2760,1,0,0,0,2763,2761,1,0,0,0,2763,2764,1,0,0,0,2764,2880,1,0,0,0,2765,2767,5,51,0,0,2766,2768,5,28,0,0,2767,2766,1,0,0,0,2767,2768,1,0,0,0,2768,2769,1,0,0,0,2769,2771,3,612,306,0,2770,2772,5,144,0,0,2771,2770,1,0,0,0,2771,2772,1,0,0,0,2772,2880,1,0,0,0,2773,2774,5,51,0,0,2774,2775,7,35,0,0,2775,2880,3,576,288,0,2776,2777,5,51,0,0,2777,2778,5,130,0,0,2778,2880,5,91,0,0,2779,2780,5,51,0,0,2780,2781,7,20,0,0,2781,2880,3,574,287,0,2782,2783,5,139,0,0,2783,2784,7,20,0,0,2784,2785,3,574,287,0,2785,2786,5,175,0,0,2786,2787,3,612,306,0,2787,2880,1,0,0,0,2788,2790,5,7,0,0,2789,2791,5,28,0,0,2790,2789,1,0,0,0,2790,2791,1,0,0,0,2791,2792,1,0,0,0,2792,2806,3,612,306,0,2793,2794,5,153,0,0,2794,2800,5,42,0,0,2795,2801,3,622,311,0,2796,2797,5,1133,0,0,2797,2798,3,716,358,0,2798,2799,5,1134,0,0,2799,2801,1,0,0,0,2800,2795,1,0,0,0,2800,2796,1,0,0,0,2801,2807,1,0,0,0,2802,2803,5,153,0,0,2803,2807,7,15,0,0,2804,2805,5,51,0,0,2805,2807,5,42,0,0,2806,2793,1,0,0,0,2806,2802,1,0,0,0,2806,2804,1,0,0,0,2807,2880,1,0,0,0,2808,2809,5,7,0,0,2809,2810,5,81,0,0,2810,2811,3,574,287,0,2811,2812,7,15,0,0,2812,2880,1,0,0,0,2813,2814,5,51,0,0,2814,2815,5,67,0,0,2815,2816,5,91,0,0,2816,2880,3,612,306,0,2817,2818,5,396,0,0,2818,2880,5,92,0,0,2819,2820,5,403,0,0,2820,2880,5,92,0,0,2821,2823,5,139,0,0,2822,2824,7,36,0,0,2823,2822,1,0,0,0,2823,2824,1,0,0,0,2824,2827,1,0,0,0,2825,2828,3,612,306,0,2826,2828,3,552,276,0,2827,2825,1,0,0,0,2827,2826,1,0,0,0,2828,2880,1,0,0,0,2829,2830,5,124,0,0,2830,2831,5,19,0,0,2831,2880,3,644,322,0,2832,2833,5,32,0,0,2833,2837,5,175,0,0,2834,2838,5,841,0,0,2835,2836,5,25,0,0,2836,2838,5,153,0,0,2837,2834,1,0,0,0,2837,2835,1,0,0,0,2838,2839,1,0,0,0,2839,2842,3,596,298,0,2840,2841,5,27,0,0,2841,2843,3,598,299,0,2842,2840,1,0,0,0,2842,2843,1,0,0,0,2843,2880,1,0,0,0,2844,2846,5,42,0,0,2845,2844,1,0,0,0,2845,2846,1,0,0,0,2846,2847,1,0,0,0,2847,2848,5,25,0,0,2848,2849,5,153,0,0,2849,2850,5,1124,0,0,2850,2854,3,596,298,0,2851,2852,5,27,0,0,2852,2853,5,1124,0,0,2853,2855,3,598,299,0,2854,2851,1,0,0,0,2854,2855,1,0,0,0,2855,2880,1,0,0,0,2856,2857,5,397,0,0,2857,2880,5,647,0,0,2858,2859,5,450,0,0,2859,2880,5,647,0,0,2860,2880,5,66,0,0,2861,2862,7,37,0,0,2862,2880,5,668,0,0,2863,2865,5,5,0,0,2864,2866,5,28,0,0,2865,2864,1,0,0,0,2865,2866,1,0,0,0,2866,2867,1,0,0,0,2867,2868,5,1133,0,0,2868,2873,3,88,44,0,2869,2870,5,1135,0,0,2870,2872,3,88,44,0,2871,2869,1,0,0,0,2872,2875,1,0,0,0,2873,2871,1,0,0,0,2873,2874,1,0,0,0,2874,2876,1,0,0,0,2875,2873,1,0,0,0,2876,2877,5,1134,0,0,2877,2880,1,0,0,0,2878,2880,3,148,74,0,2879,2528,1,0,0,0,2879,2538,1,0,0,0,2879,2549,1,0,0,0,2879,2567,1,0,0,0,2879,2582,1,0,0,0,2879,2604,1,0,0,0,2879,2628,1,0,0,0,2879,2643,1,0,0,0,2879,2658,1,0,0,0,2879,2680,1,0,0,0,2879,2702,1,0,0,0,2879,2714,1,0,0,0,2879,2719,1,0,0,0,2879,2731,1,0,0,0,2879,2743,1,0,0,0,2879,2749,1,0,0,0,2879,2754,1,0,0,0,2879,2765,1,0,0,0,2879,2773,1,0,0,0,2879,2776,1,0,0,0,2879,2779,1,0,0,0,2879,2782,1,0,0,0,2879,2788,1,0,0,0,2879,2808,1,0,0,0,2879,2813,1,0,0,0,2879,2817,1,0,0,0,2879,2819,1,0,0,0,2879,2821,1,0,0,0,2879,2829,1,0,0,0,2879,2832,1,0,0,0,2879,2845,1,0,0,0,2879,2856,1,0,0,0,2879,2858,1,0,0,0,2879,2860,1,0,0,0,2879,2861,1,0,0,0,2879,2863,1,0,0,0,2879,2878,1,0,0,0,2880,147,1,0,0,0,2881,2882,5,5,0,0,2882,2883,5,129,0,0,2883,2884,5,1133,0,0,2884,2889,3,116,58,0,2885,2886,5,1135,0,0,2886,2888,3,116,58,0,2887,2885,1,0,0,0,2888,2891,1,0,0,0,2889,2887,1,0,0,0,2889,2890,1,0,0,0,2890,2892,1,0,0,0,2891,2889,1,0,0,0,2892,2893,5,1134,0,0,2893,2980,1,0,0,0,2894,2895,5,51,0,0,2895,2896,5,129,0,0,2896,2980,3,644,322,0,2897,2898,5,397,0,0,2898,2901,5,129,0,0,2899,2902,3,644,322,0,2900,2902,5,6,0,0,2901,2899,1,0,0,0,2901,2900,1,0,0,0,2902,2903,1,0,0,0,2903,2980,5,647,0,0,2904,2905,5,450,0,0,2905,2908,5,129,0,0,2906,2909,3,644,322,0,2907,2909,5,6,0,0,2908,2906,1,0,0,0,2908,2907,1,0,0,0,2909,2910,1,0,0,0,2910,2980,5,647,0,0,2911,2912,5,656,0,0,2912,2915,5,129,0,0,2913,2916,3,644,322,0,2914,2916,5,6,0,0,2915,2913,1,0,0,0,2915,2914,1,0,0,0,2916,2980,1,0,0,0,2917,2918,5,363,0,0,2918,2919,5,129,0,0,2919,2980,3,618,309,0,2920,2921,5,579,0,0,2921,2922,5,129,0,0,2922,2923,3,644,322,0,2923,2924,5,87,0,0,2924,2925,5,1133,0,0,2925,2930,3,116,58,0,2926,2927,5,1135,0,0,2927,2929,3,116,58,0,2928,2926,1,0,0,0,2929,2932,1,0,0,0,2930,2928,1,0,0,0,2930,2931,1,0,0,0,2931,2933,1,0,0,0,2932,2930,1,0,0,0,2933,2934,5,1134,0,0,2934,2980,1,0,0,0,2935,2936,5,418,0,0,2936,2937,5,129,0,0,2937,2938,3,612,306,0,2938,2939,5,192,0,0,2939,2940,5,172,0,0,2940,2943,3,554,277,0,2941,2942,7,37,0,0,2942,2944,5,668,0,0,2943,2941,1,0,0,0,2943,2944,1,0,0,0,2944,2980,1,0,0,0,2945,2946,5,9,0,0,2946,2949,5,129,0,0,2947,2950,3,644,322,0,2948,2950,5,6,0,0,2949,2947,1,0,0,0,2949,2948,1,0,0,0,2950,2980,1,0,0,0,2951,2952,5,26,0,0,2952,2955,5,129,0,0,2953,2956,3,644,322,0,2954,2956,5,6,0,0,2955,2953,1,0,0,0,2955,2954,1,0,0,0,2956,2980,1,0,0,0,2957,2958,5,119,0,0,2958,2961,5,129,0,0,2959,2962,3,644,322,0,2960,2962,5,6,0,0,2961,2959,1,0,0,0,2961,2960,1,0,0,0,2962,2980,1,0,0,0,2963,2964,5,569,0,0,2964,2967,5,129,0,0,2965,2968,3,644,322,0,2966,2968,5,6,0,0,2967,2965,1,0,0,0,2967,2966,1,0,0,0,2968,2980,1,0,0,0,2969,2970,5,580,0,0,2970,2973,5,129,0,0,2971,2974,3,644,322,0,2972,2974,5,6,0,0,2973,2971,1,0,0,0,2973,2972,1,0,0,0,2974,2980,1,0,0,0,2975,2976,5,578,0,0,2976,2980,5,549,0,0,2977,2978,5,664,0,0,2978,2980,5,549,0,0,2979,2881,1,0,0,0,2979,2894,1,0,0,0,2979,2897,1,0,0,0,2979,2904,1,0,0,0,2979,2911,1,0,0,0,2979,2917,1,0,0,0,2979,2920,1,0,0,0,2979,2935,1,0,0,0,2979,2945,1,0,0,0,2979,2951,1,0,0,0,2979,2957,1,0,0,0,2979,2963,1,0,0,0,2979,2969,1,0,0,0,2979,2975,1,0,0,0,2979,2977,1,0,0,0,2980,149,1,0,0,0,2981,2982,5,51,0,0,2982,2984,7,0,0,0,2983,2985,3,668,334,0,2984,2983,1,0,0,0,2984,2985,1,0,0,0,2985,2986,1,0,0,0,2986,2987,3,572,286,0,2987,151,1,0,0,0,2988,2989,5,51,0,0,2989,2991,5,415,0,0,2990,2992,3,668,334,0,2991,2990,1,0,0,0,2991,2992,1,0,0,0,2992,2993,1,0,0,0,2993,2994,3,552,276,0,2994,153,1,0,0,0,2995,2996,5,51,0,0,2996,2998,5,81,0,0,2997,2999,7,1,0,0,2998,2997,1,0,0,0,2998,2999,1,0,0,0,2999,3e3,1,0,0,0,3e3,3001,3,574,287,0,3001,3002,5,118,0,0,3002,3015,3,554,277,0,3003,3005,5,336,0,0,3004,3006,5,1124,0,0,3005,3004,1,0,0,0,3005,3006,1,0,0,0,3006,3007,1,0,0,0,3007,3014,7,3,0,0,3008,3010,5,103,0,0,3009,3011,5,1124,0,0,3010,3009,1,0,0,0,3010,3011,1,0,0,0,3011,3012,1,0,0,0,3012,3014,7,4,0,0,3013,3003,1,0,0,0,3013,3008,1,0,0,0,3014,3017,1,0,0,0,3015,3013,1,0,0,0,3015,3016,1,0,0,0,3016,155,1,0,0,0,3017,3015,1,0,0,0,3018,3019,5,51,0,0,3019,3020,5,475,0,0,3020,3021,5,73,0,0,3021,3022,3,612,306,0,3022,3023,5,409,0,0,3023,3024,5,1124,0,0,3024,3025,3,600,300,0,3025,157,1,0,0,0,3026,3027,5,51,0,0,3027,3029,5,131,0,0,3028,3030,3,668,334,0,3029,3028,1,0,0,0,3029,3030,1,0,0,0,3030,3031,1,0,0,0,3031,3032,3,552,276,0,3032,159,1,0,0,0,3033,3034,5,51,0,0,3034,3036,5,437,0,0,3035,3037,3,668,334,0,3036,3035,1,0,0,0,3036,3037,1,0,0,0,3037,3038,1,0,0,0,3038,3039,3,552,276,0,3039,161,1,0,0,0,3040,3041,5,51,0,0,3041,3043,5,608,0,0,3042,3044,3,668,334,0,3043,3042,1,0,0,0,3043,3044,1,0,0,0,3044,3045,1,0,0,0,3045,3046,3,612,306,0,3046,163,1,0,0,0,3047,3049,5,51,0,0,3048,3050,5,649,0,0,3049,3048,1,0,0,0,3049,3050,1,0,0,0,3050,3051,1,0,0,0,3051,3053,5,172,0,0,3052,3054,3,668,334,0,3053,3052,1,0,0,0,3053,3054,1,0,0,0,3054,3055,1,0,0,0,3055,3057,3,648,324,0,3056,3058,7,38,0,0,3057,3056,1,0,0,0,3057,3058,1,0,0,0,3058,165,1,0,0,0,3059,3060,5,51,0,0,3060,3061,5,647,0,0,3061,3067,3,612,306,0,3062,3064,5,409,0,0,3063,3065,5,1124,0,0,3064,3063,1,0,0,0,3064,3065,1,0,0,0,3065,3066,1,0,0,0,3066,3068,3,600,300,0,3067,3062,1,0,0,0,3067,3068,1,0,0,0,3068,167,1,0,0,0,3069,3070,5,51,0,0,3070,3072,5,177,0,0,3071,3073,3,668,334,0,3072,3071,1,0,0,0,3072,3073,1,0,0,0,3073,3074,1,0,0,0,3074,3075,3,578,289,0,3075,169,1,0,0,0,3076,3077,5,51,0,0,3077,3079,5,671,0,0,3078,3080,3,668,334,0,3079,3078,1,0,0,0,3079,3080,1,0,0,0,3080,3081,1,0,0,0,3081,3086,3,552,276,0,3082,3083,5,1135,0,0,3083,3085,3,552,276,0,3084,3082,1,0,0,0,3085,3088,1,0,0,0,3086,3084,1,0,0,0,3086,3087,1,0,0,0,3087,3090,1,0,0,0,3088,3086,1,0,0,0,3089,3091,7,38,0,0,3090,3089,1,0,0,0,3090,3091,1,0,0,0,3091,171,1,0,0,0,3092,3093,5,51,0,0,3093,3095,5,596,0,0,3094,3096,3,668,334,0,3095,3094,1,0,0,0,3095,3096,1,0,0,0,3096,3097,1,0,0,0,3097,3098,3,566,283,0,3098,173,1,0,0,0,3099,3100,5,153,0,0,3100,3101,5,42,0,0,3101,3105,5,596,0,0,3102,3106,5,529,0,0,3103,3106,5,6,0,0,3104,3106,3,566,283,0,3105,3102,1,0,0,0,3105,3103,1,0,0,0,3105,3104,1,0,0,0,3106,3107,1,0,0,0,3107,3108,5,175,0,0,3108,3113,3,588,294,0,3109,3110,5,153,0,0,3110,3111,5,596,0,0,3111,3113,3,434,217,0,3112,3099,1,0,0,0,3112,3109,1,0,0,0,3113,175,1,0,0,0,3114,3115,5,139,0,0,3115,3116,5,172,0,0,3116,3121,3,178,89,0,3117,3118,5,1135,0,0,3118,3120,3,178,89,0,3119,3117,1,0,0,0,3120,3123,1,0,0,0,3121,3119,1,0,0,0,3121,3122,1,0,0,0,3122,177,1,0,0,0,3123,3121,1,0,0,0,3124,3125,3,554,277,0,3125,3126,5,175,0,0,3126,3127,3,554,277,0,3127,179,1,0,0,0,3128,3130,5,656,0,0,3129,3131,5,172,0,0,3130,3129,1,0,0,0,3130,3131,1,0,0,0,3131,3132,1,0,0,0,3132,3133,3,554,277,0,3133,181,1,0,0,0,3134,3135,5,20,0,0,3135,3142,3,552,276,0,3136,3139,5,1133,0,0,3137,3140,3,656,328,0,3138,3140,3,652,326,0,3139,3137,1,0,0,0,3139,3138,1,0,0,0,3139,3140,1,0,0,0,3140,3141,1,0,0,0,3141,3143,5,1134,0,0,3142,3136,1,0,0,0,3142,3143,1,0,0,0,3143,183,1,0,0,0,3144,3147,3,212,106,0,3145,3147,3,214,107,0,3146,3144,1,0,0,0,3146,3145,1,0,0,0,3147,185,1,0,0,0,3148,3149,5,399,0,0,3149,3150,3,652,326,0,3150,187,1,0,0,0,3151,3156,3,216,108,0,3152,3156,3,218,109,0,3153,3156,3,220,110,0,3154,3156,3,222,111,0,3155,3151,1,0,0,0,3155,3152,1,0,0,0,3155,3153,1,0,0,0,3155,3154,1,0,0,0,3156,189,1,0,0,0,3157,3159,5,85,0,0,3158,3160,7,39,0,0,3159,3158,1,0,0,0,3159,3160,1,0,0,0,3160,3162,1,0,0,0,3161,3163,5,78,0,0,3162,3161,1,0,0,0,3162,3163,1,0,0,0,3163,3165,1,0,0,0,3164,3166,5,87,0,0,3165,3164,1,0,0,0,3165,3166,1,0,0,0,3166,3167,1,0,0,0,3167,3174,3,554,277,0,3168,3169,5,129,0,0,3169,3171,5,1133,0,0,3170,3172,3,644,322,0,3171,3170,1,0,0,0,3171,3172,1,0,0,0,3172,3173,1,0,0,0,3173,3175,5,1134,0,0,3174,3168,1,0,0,0,3174,3175,1,0,0,0,3175,3199,1,0,0,0,3176,3178,5,1133,0,0,3177,3179,3,646,323,0,3178,3177,1,0,0,0,3178,3179,1,0,0,0,3179,3180,1,0,0,0,3180,3182,5,1134,0,0,3181,3176,1,0,0,0,3181,3182,1,0,0,0,3182,3183,1,0,0,0,3183,3188,3,204,102,0,3184,3186,5,12,0,0,3185,3184,1,0,0,0,3185,3186,1,0,0,0,3186,3187,1,0,0,0,3187,3189,3,612,306,0,3188,3185,1,0,0,0,3188,3189,1,0,0,0,3189,3200,1,0,0,0,3190,3191,5,153,0,0,3191,3196,3,206,103,0,3192,3193,5,1135,0,0,3193,3195,3,206,103,0,3194,3192,1,0,0,0,3195,3198,1,0,0,0,3196,3194,1,0,0,0,3196,3197,1,0,0,0,3197,3200,1,0,0,0,3198,3196,1,0,0,0,3199,3181,1,0,0,0,3199,3190,1,0,0,0,3200,3213,1,0,0,0,3201,3202,5,118,0,0,3202,3203,5,401,0,0,3203,3204,5,91,0,0,3204,3205,5,184,0,0,3205,3210,3,206,103,0,3206,3207,5,1135,0,0,3207,3209,3,206,103,0,3208,3206,1,0,0,0,3209,3212,1,0,0,0,3210,3208,1,0,0,0,3210,3211,1,0,0,0,3211,3214,1,0,0,0,3212,3210,1,0,0,0,3213,3201,1,0,0,0,3213,3214,1,0,0,0,3214,191,1,0,0,0,3215,3216,5,102,0,0,3216,3218,5,388,0,0,3217,3219,7,40,0,0,3218,3217,1,0,0,0,3218,3219,1,0,0,0,3219,3221,1,0,0,0,3220,3222,5,474,0,0,3221,3220,1,0,0,0,3221,3222,1,0,0,0,3222,3223,1,0,0,0,3223,3224,5,82,0,0,3224,3226,5,1148,0,0,3225,3227,7,6,0,0,3226,3225,1,0,0,0,3226,3227,1,0,0,0,3227,3228,1,0,0,0,3228,3229,5,87,0,0,3229,3230,5,172,0,0,3230,3236,3,554,277,0,3231,3232,5,129,0,0,3232,3233,5,1133,0,0,3233,3234,3,644,322,0,3234,3235,5,1134,0,0,3235,3237,1,0,0,0,3236,3231,1,0,0,0,3236,3237,1,0,0,0,3237,3241,1,0,0,0,3238,3239,5,25,0,0,3239,3240,5,153,0,0,3240,3242,3,596,298,0,3241,3238,1,0,0,0,3241,3242,1,0,0,0,3242,3249,1,0,0,0,3243,3245,7,41,0,0,3244,3246,3,280,140,0,3245,3244,1,0,0,0,3246,3247,1,0,0,0,3247,3245,1,0,0,0,3247,3248,1,0,0,0,3248,3250,1,0,0,0,3249,3243,1,0,0,0,3249,3250,1,0,0,0,3250,3257,1,0,0,0,3251,3253,5,101,0,0,3252,3254,3,282,141,0,3253,3252,1,0,0,0,3254,3255,1,0,0,0,3255,3253,1,0,0,0,3255,3256,1,0,0,0,3256,3258,1,0,0,0,3257,3251,1,0,0,0,3257,3258,1,0,0,0,3258,3263,1,0,0,0,3259,3260,5,78,0,0,3260,3261,3,618,309,0,3261,3262,7,42,0,0,3262,3264,1,0,0,0,3263,3259,1,0,0,0,3263,3264,1,0,0,0,3264,3276,1,0,0,0,3265,3266,5,1133,0,0,3266,3271,3,208,104,0,3267,3268,5,1135,0,0,3268,3270,3,208,104,0,3269,3267,1,0,0,0,3270,3273,1,0,0,0,3271,3269,1,0,0,0,3271,3272,1,0,0,0,3272,3274,1,0,0,0,3273,3271,1,0,0,0,3274,3275,5,1134,0,0,3275,3277,1,0,0,0,3276,3265,1,0,0,0,3276,3277,1,0,0,0,3277,3287,1,0,0,0,3278,3279,5,153,0,0,3279,3284,3,206,103,0,3280,3281,5,1135,0,0,3281,3283,3,206,103,0,3282,3280,1,0,0,0,3283,3286,1,0,0,0,3284,3282,1,0,0,0,3284,3285,1,0,0,0,3285,3288,1,0,0,0,3286,3284,1,0,0,0,3287,3278,1,0,0,0,3287,3288,1,0,0,0,3288,193,1,0,0,0,3289,3290,5,102,0,0,3290,3292,5,682,0,0,3291,3293,7,40,0,0,3292,3291,1,0,0,0,3292,3293,1,0,0,0,3293,3295,1,0,0,0,3294,3296,5,474,0,0,3295,3294,1,0,0,0,3295,3296,1,0,0,0,3296,3297,1,0,0,0,3297,3298,5,82,0,0,3298,3300,5,1148,0,0,3299,3301,7,6,0,0,3300,3299,1,0,0,0,3300,3301,1,0,0,0,3301,3302,1,0,0,0,3302,3303,5,87,0,0,3303,3304,5,172,0,0,3304,3308,3,554,277,0,3305,3306,5,25,0,0,3306,3307,5,153,0,0,3307,3309,3,596,298,0,3308,3305,1,0,0,0,3308,3309,1,0,0,0,3309,3316,1,0,0,0,3310,3311,5,601,0,0,3311,3312,5,448,0,0,3312,3313,5,19,0,0,3313,3314,5,1126,0,0,3314,3315,5,1148,0,0,3315,3317,5,1125,0,0,3316,3310,1,0,0,0,3316,3317,1,0,0,0,3317,3322,1,0,0,0,3318,3319,5,78,0,0,3319,3320,3,618,309,0,3320,3321,7,42,0,0,3321,3323,1,0,0,0,3322,3318,1,0,0,0,3322,3323,1,0,0,0,3323,3335,1,0,0,0,3324,3325,5,1133,0,0,3325,3330,3,208,104,0,3326,3327,5,1135,0,0,3327,3329,3,208,104,0,3328,3326,1,0,0,0,3329,3332,1,0,0,0,3330,3328,1,0,0,0,3330,3331,1,0,0,0,3331,3333,1,0,0,0,3332,3330,1,0,0,0,3333,3334,5,1134,0,0,3334,3336,1,0,0,0,3335,3324,1,0,0,0,3335,3336,1,0,0,0,3336,3346,1,0,0,0,3337,3338,5,153,0,0,3338,3343,3,206,103,0,3339,3340,5,1135,0,0,3340,3342,3,206,103,0,3341,3339,1,0,0,0,3342,3345,1,0,0,0,3343,3341,1,0,0,0,3343,3344,1,0,0,0,3344,3347,1,0,0,0,3345,3343,1,0,0,0,3346,3337,1,0,0,0,3346,3347,1,0,0,0,3347,195,1,0,0,0,3348,3350,5,141,0,0,3349,3351,7,43,0,0,3350,3349,1,0,0,0,3350,3351,1,0,0,0,3351,3353,1,0,0,0,3352,3354,5,87,0,0,3353,3352,1,0,0,0,3353,3354,1,0,0,0,3354,3355,1,0,0,0,3355,3361,3,554,277,0,3356,3357,5,129,0,0,3357,3358,5,1133,0,0,3358,3359,3,644,322,0,3359,3360,5,1134,0,0,3360,3362,1,0,0,0,3361,3356,1,0,0,0,3361,3362,1,0,0,0,3362,3379,1,0,0,0,3363,3364,5,1133,0,0,3364,3365,3,644,322,0,3365,3366,5,1134,0,0,3366,3368,1,0,0,0,3367,3363,1,0,0,0,3367,3368,1,0,0,0,3368,3369,1,0,0,0,3369,3380,3,204,102,0,3370,3371,5,153,0,0,3371,3376,3,206,103,0,3372,3373,5,1135,0,0,3373,3375,3,206,103,0,3374,3372,1,0,0,0,3375,3378,1,0,0,0,3376,3374,1,0,0,0,3376,3377,1,0,0,0,3377,3380,1,0,0,0,3378,3376,1,0,0,0,3379,3367,1,0,0,0,3379,3370,1,0,0,0,3380,197,1,0,0,0,3381,3383,3,250,125,0,3382,3384,3,210,105,0,3383,3382,1,0,0,0,3383,3384,1,0,0,0,3384,3447,1,0,0,0,3385,3387,3,246,123,0,3386,3388,3,210,105,0,3387,3386,1,0,0,0,3387,3388,1,0,0,0,3388,3447,1,0,0,0,3389,3392,3,252,126,0,3390,3392,3,248,124,0,3391,3389,1,0,0,0,3391,3390,1,0,0,0,3392,3394,1,0,0,0,3393,3395,3,256,128,0,3394,3393,1,0,0,0,3395,3396,1,0,0,0,3396,3394,1,0,0,0,3396,3397,1,0,0,0,3397,3406,1,0,0,0,3398,3400,5,180,0,0,3399,3401,7,44,0,0,3400,3399,1,0,0,0,3400,3401,1,0,0,0,3401,3404,1,0,0,0,3402,3405,3,250,125,0,3403,3405,3,246,123,0,3404,3402,1,0,0,0,3404,3403,1,0,0,0,3405,3407,1,0,0,0,3406,3398,1,0,0,0,3406,3407,1,0,0,0,3407,3409,1,0,0,0,3408,3410,3,228,114,0,3409,3408,1,0,0,0,3409,3410,1,0,0,0,3410,3412,1,0,0,0,3411,3413,3,294,147,0,3412,3411,1,0,0,0,3412,3413,1,0,0,0,3413,3415,1,0,0,0,3414,3416,3,210,105,0,3415,3414,1,0,0,0,3415,3416,1,0,0,0,3416,3447,1,0,0,0,3417,3419,3,248,124,0,3418,3420,3,254,127,0,3419,3418,1,0,0,0,3420,3421,1,0,0,0,3421,3419,1,0,0,0,3421,3422,1,0,0,0,3422,3428,1,0,0,0,3423,3425,5,180,0,0,3424,3426,7,44,0,0,3425,3424,1,0,0,0,3425,3426,1,0,0,0,3426,3427,1,0,0,0,3427,3429,3,246,123,0,3428,3423,1,0,0,0,3428,3429,1,0,0,0,3429,3431,1,0,0,0,3430,3432,3,228,114,0,3431,3430,1,0,0,0,3431,3432,1,0,0,0,3432,3434,1,0,0,0,3433,3435,3,294,147,0,3434,3433,1,0,0,0,3434,3435,1,0,0,0,3435,3437,1,0,0,0,3436,3438,3,210,105,0,3437,3436,1,0,0,0,3437,3438,1,0,0,0,3438,3447,1,0,0,0,3439,3442,3,252,126,0,3440,3441,5,1135,0,0,3441,3443,3,258,129,0,3442,3440,1,0,0,0,3443,3444,1,0,0,0,3444,3442,1,0,0,0,3444,3445,1,0,0,0,3445,3447,1,0,0,0,3446,3381,1,0,0,0,3446,3385,1,0,0,0,3446,3391,1,0,0,0,3446,3417,1,0,0,0,3446,3439,1,0,0,0,3447,199,1,0,0,0,3448,3451,3,224,112,0,3449,3451,3,226,113,0,3450,3448,1,0,0,0,3450,3449,1,0,0,0,3451,201,1,0,0,0,3452,3453,5,188,0,0,3453,3455,5,1133,0,0,3454,3456,3,654,327,0,3455,3454,1,0,0,0,3455,3456,1,0,0,0,3456,3457,1,0,0,0,3457,3466,5,1134,0,0,3458,3459,5,1135,0,0,3459,3461,5,1133,0,0,3460,3462,3,654,327,0,3461,3460,1,0,0,0,3461,3462,1,0,0,0,3462,3463,1,0,0,0,3463,3465,5,1134,0,0,3464,3458,1,0,0,0,3465,3468,1,0,0,0,3466,3464,1,0,0,0,3466,3467,1,0,0,0,3467,203,1,0,0,0,3468,3466,1,0,0,0,3469,3488,3,198,99,0,3470,3471,7,45,0,0,3471,3473,5,1133,0,0,3472,3474,3,654,327,0,3473,3472,1,0,0,0,3473,3474,1,0,0,0,3474,3475,1,0,0,0,3475,3484,5,1134,0,0,3476,3477,5,1135,0,0,3477,3479,5,1133,0,0,3478,3480,3,654,327,0,3479,3478,1,0,0,0,3479,3480,1,0,0,0,3480,3481,1,0,0,0,3481,3483,5,1134,0,0,3482,3476,1,0,0,0,3483,3486,1,0,0,0,3484,3482,1,0,0,0,3484,3485,1,0,0,0,3485,3488,1,0,0,0,3486,3484,1,0,0,0,3487,3469,1,0,0,0,3487,3470,1,0,0,0,3488,205,1,0,0,0,3489,3490,3,570,285,0,3490,3493,5,1124,0,0,3491,3494,3,716,358,0,3492,3494,5,42,0,0,3493,3491,1,0,0,0,3493,3492,1,0,0,0,3494,207,1,0,0,0,3495,3498,3,612,306,0,3496,3498,5,1159,0,0,3497,3495,1,0,0,0,3497,3496,1,0,0,0,3498,209,1,0,0,0,3499,3500,5,65,0,0,3500,3506,5,184,0,0,3501,3502,5,103,0,0,3502,3503,5,80,0,0,3503,3504,5,610,0,0,3504,3506,5,511,0,0,3505,3499,1,0,0,0,3505,3501,1,0,0,0,3506,211,1,0,0,0,3507,3509,5,44,0,0,3508,3510,5,106,0,0,3509,3508,1,0,0,0,3509,3510,1,0,0,0,3510,3512,1,0,0,0,3511,3513,5,568,0,0,3512,3511,1,0,0,0,3512,3513,1,0,0,0,3513,3515,1,0,0,0,3514,3516,5,78,0,0,3515,3514,1,0,0,0,3515,3516,1,0,0,0,3516,3517,1,0,0,0,3517,3518,5,68,0,0,3518,3523,3,554,277,0,3519,3521,5,12,0,0,3520,3519,1,0,0,0,3520,3521,1,0,0,0,3521,3522,1,0,0,0,3522,3524,3,612,306,0,3523,3520,1,0,0,0,3523,3524,1,0,0,0,3524,3530,1,0,0,0,3525,3526,5,129,0,0,3526,3527,5,1133,0,0,3527,3528,3,644,322,0,3528,3529,5,1134,0,0,3529,3531,1,0,0,0,3530,3525,1,0,0,0,3530,3531,1,0,0,0,3531,3534,1,0,0,0,3532,3533,5,190,0,0,3533,3535,3,716,358,0,3534,3532,1,0,0,0,3534,3535,1,0,0,0,3535,3537,1,0,0,0,3536,3538,3,228,114,0,3537,3536,1,0,0,0,3537,3538,1,0,0,0,3538,3541,1,0,0,0,3539,3540,5,99,0,0,3540,3542,3,296,148,0,3541,3539,1,0,0,0,3541,3542,1,0,0,0,3542,213,1,0,0,0,3543,3545,5,44,0,0,3544,3546,5,106,0,0,3545,3544,1,0,0,0,3545,3546,1,0,0,0,3546,3548,1,0,0,0,3547,3549,5,568,0,0,3548,3547,1,0,0,0,3548,3549,1,0,0,0,3549,3551,1,0,0,0,3550,3552,5,78,0,0,3551,3550,1,0,0,0,3551,3552,1,0,0,0,3552,3592,1,0,0,0,3553,3556,3,554,277,0,3554,3555,5,1132,0,0,3555,3557,5,1117,0,0,3556,3554,1,0,0,0,3556,3557,1,0,0,0,3557,3566,1,0,0,0,3558,3559,5,1135,0,0,3559,3562,3,554,277,0,3560,3561,5,1132,0,0,3561,3563,5,1117,0,0,3562,3560,1,0,0,0,3562,3563,1,0,0,0,3563,3565,1,0,0,0,3564,3558,1,0,0,0,3565,3568,1,0,0,0,3566,3564,1,0,0,0,3566,3567,1,0,0,0,3567,3569,1,0,0,0,3568,3566,1,0,0,0,3569,3570,5,68,0,0,3570,3571,3,232,116,0,3571,3593,1,0,0,0,3572,3573,5,68,0,0,3573,3576,3,554,277,0,3574,3575,5,1132,0,0,3575,3577,5,1117,0,0,3576,3574,1,0,0,0,3576,3577,1,0,0,0,3577,3586,1,0,0,0,3578,3579,5,1135,0,0,3579,3582,3,554,277,0,3580,3581,5,1132,0,0,3581,3583,5,1117,0,0,3582,3580,1,0,0,0,3582,3583,1,0,0,0,3583,3585,1,0,0,0,3584,3578,1,0,0,0,3585,3588,1,0,0,0,3586,3584,1,0,0,0,3586,3587,1,0,0,0,3587,3589,1,0,0,0,3588,3586,1,0,0,0,3589,3590,5,187,0,0,3590,3591,3,232,116,0,3591,3593,1,0,0,0,3592,3553,1,0,0,0,3592,3572,1,0,0,0,3593,3596,1,0,0,0,3594,3595,5,190,0,0,3595,3597,3,716,358,0,3596,3594,1,0,0,0,3596,3597,1,0,0,0,3597,215,1,0,0,0,3598,3599,5,442,0,0,3599,3600,3,554,277,0,3600,3605,5,539,0,0,3601,3603,5,12,0,0,3602,3601,1,0,0,0,3602,3603,1,0,0,0,3603,3604,1,0,0,0,3604,3606,3,612,306,0,3605,3602,1,0,0,0,3605,3606,1,0,0,0,3606,217,1,0,0,0,3607,3608,5,442,0,0,3608,3609,3,554,277,0,3609,3610,5,134,0,0,3610,3617,3,612,306,0,3611,3612,3,724,362,0,3612,3613,5,1133,0,0,3613,3614,3,656,328,0,3614,3615,5,1134,0,0,3615,3618,1,0,0,0,3616,3618,7,46,0,0,3617,3611,1,0,0,0,3617,3616,1,0,0,0,3618,3621,1,0,0,0,3619,3620,5,190,0,0,3620,3622,3,716,358,0,3621,3619,1,0,0,0,3621,3622,1,0,0,0,3622,3625,1,0,0,0,3623,3624,5,99,0,0,3624,3626,3,296,148,0,3625,3623,1,0,0,0,3625,3626,1,0,0,0,3626,219,1,0,0,0,3627,3628,5,442,0,0,3628,3629,3,554,277,0,3629,3630,5,134,0,0,3630,3633,7,47,0,0,3631,3632,5,190,0,0,3632,3634,3,716,358,0,3633,3631,1,0,0,0,3633,3634,1,0,0,0,3634,3637,1,0,0,0,3635,3636,5,99,0,0,3636,3638,3,296,148,0,3637,3635,1,0,0,0,3637,3638,1,0,0,0,3638,221,1,0,0,0,3639,3640,5,442,0,0,3640,3641,3,554,277,0,3641,3642,5,361,0,0,3642,223,1,0,0,0,3643,3645,5,184,0,0,3644,3646,5,106,0,0,3645,3644,1,0,0,0,3645,3646,1,0,0,0,3646,3648,1,0,0,0,3647,3649,5,78,0,0,3648,3647,1,0,0,0,3648,3649,1,0,0,0,3649,3650,1,0,0,0,3650,3655,3,554,277,0,3651,3653,5,12,0,0,3652,3651,1,0,0,0,3652,3653,1,0,0,0,3653,3654,1,0,0,0,3654,3656,3,612,306,0,3655,3652,1,0,0,0,3655,3656,1,0,0,0,3656,3657,1,0,0,0,3657,3658,5,153,0,0,3658,3663,3,206,103,0,3659,3660,5,1135,0,0,3660,3662,3,206,103,0,3661,3659,1,0,0,0,3662,3665,1,0,0,0,3663,3661,1,0,0,0,3663,3664,1,0,0,0,3664,3668,1,0,0,0,3665,3663,1,0,0,0,3666,3667,5,190,0,0,3667,3669,3,716,358,0,3668,3666,1,0,0,0,3668,3669,1,0,0,0,3669,3671,1,0,0,0,3670,3672,3,228,114,0,3671,3670,1,0,0,0,3671,3672,1,0,0,0,3672,3674,1,0,0,0,3673,3675,3,294,147,0,3674,3673,1,0,0,0,3674,3675,1,0,0,0,3675,225,1,0,0,0,3676,3678,5,184,0,0,3677,3679,5,106,0,0,3678,3677,1,0,0,0,3678,3679,1,0,0,0,3679,3681,1,0,0,0,3680,3682,5,78,0,0,3681,3680,1,0,0,0,3681,3682,1,0,0,0,3682,3683,1,0,0,0,3683,3684,3,556,278,0,3684,3685,5,153,0,0,3685,3690,3,206,103,0,3686,3687,5,1135,0,0,3687,3689,3,206,103,0,3688,3686,1,0,0,0,3689,3692,1,0,0,0,3690,3688,1,0,0,0,3690,3691,1,0,0,0,3691,3695,1,0,0,0,3692,3690,1,0,0,0,3693,3694,5,190,0,0,3694,3696,3,716,358,0,3695,3693,1,0,0,0,3695,3696,1,0,0,0,3696,227,1,0,0,0,3697,3698,5,124,0,0,3698,3699,5,19,0,0,3699,3704,3,230,115,0,3700,3701,5,1135,0,0,3701,3703,3,230,115,0,3702,3700,1,0,0,0,3703,3706,1,0,0,0,3704,3702,1,0,0,0,3704,3705,1,0,0,0,3705,229,1,0,0,0,3706,3704,1,0,0,0,3707,3709,3,716,358,0,3708,3710,7,48,0,0,3709,3708,1,0,0,0,3709,3710,1,0,0,0,3710,231,1,0,0,0,3711,3716,3,234,117,0,3712,3713,5,1135,0,0,3713,3715,3,234,117,0,3714,3712,1,0,0,0,3715,3718,1,0,0,0,3716,3714,1,0,0,0,3716,3717,1,0,0,0,3717,233,1,0,0,0,3718,3716,1,0,0,0,3719,3723,3,236,118,0,3720,3722,3,242,121,0,3721,3720,1,0,0,0,3722,3725,1,0,0,0,3723,3721,1,0,0,0,3723,3724,1,0,0,0,3724,3738,1,0,0,0,3725,3723,1,0,0,0,3726,3727,5,1133,0,0,3727,3731,3,236,118,0,3728,3730,3,242,121,0,3729,3728,1,0,0,0,3730,3733,1,0,0,0,3731,3729,1,0,0,0,3731,3732,1,0,0,0,3732,3734,1,0,0,0,3733,3731,1,0,0,0,3734,3735,5,1134,0,0,3735,3738,1,0,0,0,3736,3738,3,260,130,0,3737,3719,1,0,0,0,3737,3726,1,0,0,0,3737,3736,1,0,0,0,3738,235,1,0,0,0,3739,3745,3,554,277,0,3740,3741,5,129,0,0,3741,3742,5,1133,0,0,3742,3743,3,644,322,0,3743,3744,5,1134,0,0,3744,3746,1,0,0,0,3745,3740,1,0,0,0,3745,3746,1,0,0,0,3746,3751,1,0,0,0,3747,3749,5,12,0,0,3748,3747,1,0,0,0,3748,3749,1,0,0,0,3749,3750,1,0,0,0,3750,3752,3,612,306,0,3751,3748,1,0,0,0,3751,3752,1,0,0,0,3752,3761,1,0,0,0,3753,3758,3,238,119,0,3754,3755,5,1135,0,0,3755,3757,3,238,119,0,3756,3754,1,0,0,0,3757,3760,1,0,0,0,3758,3756,1,0,0,0,3758,3759,1,0,0,0,3759,3762,1,0,0,0,3760,3758,1,0,0,0,3761,3753,1,0,0,0,3761,3762,1,0,0,0,3762,3777,1,0,0,0,3763,3764,5,1133,0,0,3764,3765,3,198,99,0,3765,3766,5,1134,0,0,3766,3768,1,0,0,0,3767,3769,5,12,0,0,3768,3767,1,0,0,0,3768,3769,1,0,0,0,3769,3770,1,0,0,0,3770,3771,3,612,306,0,3771,3777,1,0,0,0,3772,3773,5,1133,0,0,3773,3774,3,232,116,0,3774,3775,5,1134,0,0,3775,3777,1,0,0,0,3776,3739,1,0,0,0,3776,3763,1,0,0,0,3776,3772,1,0,0,0,3777,237,1,0,0,0,3778,3779,7,49,0,0,3779,3782,7,20,0,0,3780,3781,5,65,0,0,3781,3783,3,240,120,0,3782,3780,1,0,0,0,3782,3783,1,0,0,0,3783,3784,1,0,0,0,3784,3785,5,1133,0,0,3785,3786,3,580,290,0,3786,3787,5,1134,0,0,3787,239,1,0,0,0,3788,3794,5,90,0,0,3789,3790,5,124,0,0,3790,3794,5,19,0,0,3791,3792,5,73,0,0,3792,3794,5,19,0,0,3793,3788,1,0,0,0,3793,3789,1,0,0,0,3793,3791,1,0,0,0,3794,241,1,0,0,0,3795,3797,7,50,0,0,3796,3795,1,0,0,0,3796,3797,1,0,0,0,3797,3798,1,0,0,0,3798,3800,5,90,0,0,3799,3801,5,94,0,0,3800,3799,1,0,0,0,3800,3801,1,0,0,0,3801,3802,1,0,0,0,3802,3806,3,236,118,0,3803,3805,3,244,122,0,3804,3803,1,0,0,0,3805,3808,1,0,0,0,3806,3804,1,0,0,0,3806,3807,1,0,0,0,3807,3843,1,0,0,0,3808,3806,1,0,0,0,3809,3810,5,171,0,0,3810,3815,3,236,118,0,3811,3812,5,118,0,0,3812,3814,3,716,358,0,3813,3811,1,0,0,0,3814,3817,1,0,0,0,3815,3813,1,0,0,0,3815,3816,1,0,0,0,3816,3843,1,0,0,0,3817,3815,1,0,0,0,3818,3820,7,51,0,0,3819,3821,5,126,0,0,3820,3819,1,0,0,0,3820,3821,1,0,0,0,3821,3822,1,0,0,0,3822,3824,5,90,0,0,3823,3825,5,94,0,0,3824,3823,1,0,0,0,3824,3825,1,0,0,0,3825,3826,1,0,0,0,3826,3830,3,236,118,0,3827,3829,3,244,122,0,3828,3827,1,0,0,0,3829,3832,1,0,0,0,3830,3828,1,0,0,0,3830,3831,1,0,0,0,3831,3843,1,0,0,0,3832,3830,1,0,0,0,3833,3838,5,113,0,0,3834,3836,7,51,0,0,3835,3837,5,126,0,0,3836,3835,1,0,0,0,3836,3837,1,0,0,0,3837,3839,1,0,0,0,3838,3834,1,0,0,0,3838,3839,1,0,0,0,3839,3840,1,0,0,0,3840,3841,5,90,0,0,3841,3843,3,236,118,0,3842,3796,1,0,0,0,3842,3809,1,0,0,0,3842,3818,1,0,0,0,3842,3833,1,0,0,0,3843,243,1,0,0,0,3844,3845,5,118,0,0,3845,3852,3,716,358,0,3846,3847,5,187,0,0,3847,3848,5,1133,0,0,3848,3849,3,644,322,0,3849,3850,5,1134,0,0,3850,3852,1,0,0,0,3851,3844,1,0,0,0,3851,3846,1,0,0,0,3852,245,1,0,0,0,3853,3854,5,1133,0,0,3854,3855,3,250,125,0,3855,3856,5,1134,0,0,3856,3862,1,0,0,0,3857,3858,5,1133,0,0,3858,3859,3,246,123,0,3859,3860,5,1134,0,0,3860,3862,1,0,0,0,3861,3853,1,0,0,0,3861,3857,1,0,0,0,3862,247,1,0,0,0,3863,3864,5,1133,0,0,3864,3865,3,252,126,0,3865,3866,5,1134,0,0,3866,3872,1,0,0,0,3867,3868,5,1133,0,0,3868,3869,3,248,124,0,3869,3870,5,1134,0,0,3870,3872,1,0,0,0,3871,3863,1,0,0,0,3871,3867,1,0,0,0,3872,249,1,0,0,0,3873,3877,5,152,0,0,3874,3876,3,270,135,0,3875,3874,1,0,0,0,3876,3879,1,0,0,0,3877,3875,1,0,0,0,3877,3878,1,0,0,0,3878,3880,1,0,0,0,3879,3877,1,0,0,0,3880,3882,3,272,136,0,3881,3883,3,278,139,0,3882,3881,1,0,0,0,3882,3883,1,0,0,0,3883,3884,1,0,0,0,3884,3886,3,284,142,0,3885,3887,3,286,143,0,3886,3885,1,0,0,0,3886,3887,1,0,0,0,3887,3889,1,0,0,0,3888,3890,3,288,144,0,3889,3888,1,0,0,0,3889,3890,1,0,0,0,3890,3892,1,0,0,0,3891,3893,3,290,145,0,3892,3891,1,0,0,0,3892,3893,1,0,0,0,3893,3895,1,0,0,0,3894,3896,3,228,114,0,3895,3894,1,0,0,0,3895,3896,1,0,0,0,3896,3898,1,0,0,0,3897,3899,3,294,147,0,3898,3897,1,0,0,0,3898,3899,1,0,0,0,3899,3928,1,0,0,0,3900,3904,5,152,0,0,3901,3903,3,270,135,0,3902,3901,1,0,0,0,3903,3906,1,0,0,0,3904,3902,1,0,0,0,3904,3905,1,0,0,0,3905,3907,1,0,0,0,3906,3904,1,0,0,0,3907,3908,3,272,136,0,3908,3910,3,284,142,0,3909,3911,3,286,143,0,3910,3909,1,0,0,0,3910,3911,1,0,0,0,3911,3913,1,0,0,0,3912,3914,3,288,144,0,3913,3912,1,0,0,0,3913,3914,1,0,0,0,3914,3916,1,0,0,0,3915,3917,3,290,145,0,3916,3915,1,0,0,0,3916,3917,1,0,0,0,3917,3919,1,0,0,0,3918,3920,3,228,114,0,3919,3918,1,0,0,0,3919,3920,1,0,0,0,3920,3922,1,0,0,0,3921,3923,3,294,147,0,3922,3921,1,0,0,0,3922,3923,1,0,0,0,3923,3925,1,0,0,0,3924,3926,3,278,139,0,3925,3924,1,0,0,0,3925,3926,1,0,0,0,3926,3928,1,0,0,0,3927,3873,1,0,0,0,3927,3900,1,0,0,0,3928,251,1,0,0,0,3929,3933,5,152,0,0,3930,3932,3,270,135,0,3931,3930,1,0,0,0,3932,3935,1,0,0,0,3933,3931,1,0,0,0,3933,3934,1,0,0,0,3934,3936,1,0,0,0,3935,3933,1,0,0,0,3936,3937,3,272,136,0,3937,3939,3,284,142,0,3938,3940,3,286,143,0,3939,3938,1,0,0,0,3939,3940,1,0,0,0,3940,3942,1,0,0,0,3941,3943,3,288,144,0,3942,3941,1,0,0,0,3942,3943,1,0,0,0,3943,3945,1,0,0,0,3944,3946,3,290,145,0,3945,3944,1,0,0,0,3945,3946,1,0,0,0,3946,3948,1,0,0,0,3947,3949,3,228,114,0,3948,3947,1,0,0,0,3948,3949,1,0,0,0,3949,3951,1,0,0,0,3950,3952,3,294,147,0,3951,3950,1,0,0,0,3951,3952,1,0,0,0,3952,3954,1,0,0,0,3953,3955,3,256,128,0,3954,3953,1,0,0,0,3954,3955,1,0,0,0,3955,253,1,0,0,0,3956,3958,5,180,0,0,3957,3959,7,44,0,0,3958,3957,1,0,0,0,3958,3959,1,0,0,0,3959,3960,1,0,0,0,3960,3961,3,248,124,0,3961,255,1,0,0,0,3962,3964,5,180,0,0,3963,3965,7,44,0,0,3964,3963,1,0,0,0,3964,3965,1,0,0,0,3965,3968,1,0,0,0,3966,3969,3,252,126,0,3967,3969,3,248,124,0,3968,3966,1,0,0,0,3968,3967,1,0,0,0,3969,257,1,0,0,0,3970,3985,5,94,0,0,3971,3986,3,252,126,0,3972,3986,3,248,124,0,3973,3976,5,1133,0,0,3974,3977,3,252,126,0,3975,3977,3,248,124,0,3976,3974,1,0,0,0,3976,3975,1,0,0,0,3977,3978,1,0,0,0,3978,3983,5,1134,0,0,3979,3981,5,12,0,0,3980,3979,1,0,0,0,3980,3981,1,0,0,0,3981,3982,1,0,0,0,3982,3984,3,612,306,0,3983,3980,1,0,0,0,3983,3984,1,0,0,0,3984,3986,1,0,0,0,3985,3971,1,0,0,0,3985,3972,1,0,0,0,3985,3973,1,0,0,0,3986,259,1,0,0,0,3987,3988,5,278,0,0,3988,3989,5,1133,0,0,3989,3990,5,1148,0,0,3990,3991,5,1135,0,0,3991,3992,5,1148,0,0,3992,3993,5,365,0,0,3993,3994,5,1133,0,0,3994,3995,3,262,131,0,3995,3996,5,1134,0,0,3996,4001,5,1134,0,0,3997,3999,5,12,0,0,3998,3997,1,0,0,0,3998,3999,1,0,0,0,3999,4e3,1,0,0,0,4e3,4002,3,612,306,0,4001,3998,1,0,0,0,4001,4002,1,0,0,0,4002,261,1,0,0,0,4003,4008,3,264,132,0,4004,4005,5,1135,0,0,4005,4007,3,264,132,0,4006,4004,1,0,0,0,4007,4010,1,0,0,0,4008,4006,1,0,0,0,4008,4009,1,0,0,0,4009,263,1,0,0,0,4010,4008,1,0,0,0,4011,4028,3,570,285,0,4012,4013,5,65,0,0,4013,4029,5,284,0,0,4014,4026,3,632,316,0,4015,4016,5,285,0,0,4016,4018,5,1148,0,0,4017,4019,3,266,133,0,4018,4017,1,0,0,0,4018,4019,1,0,0,0,4019,4021,1,0,0,0,4020,4022,3,268,134,0,4021,4020,1,0,0,0,4021,4022,1,0,0,0,4022,4027,1,0,0,0,4023,4024,5,60,0,0,4024,4025,5,285,0,0,4025,4027,5,1148,0,0,4026,4015,1,0,0,0,4026,4023,1,0,0,0,4027,4029,1,0,0,0,4028,4012,1,0,0,0,4028,4014,1,0,0,0,4029,4041,1,0,0,0,4030,4032,5,283,0,0,4031,4033,5,285,0,0,4032,4031,1,0,0,0,4032,4033,1,0,0,0,4033,4034,1,0,0,0,4034,4035,5,1148,0,0,4035,4036,5,365,0,0,4036,4037,5,1133,0,0,4037,4038,3,262,131,0,4038,4039,5,1134,0,0,4039,4041,1,0,0,0,4040,4011,1,0,0,0,4040,4030,1,0,0,0,4041,265,1,0,0,0,4042,4047,5,116,0,0,4043,4047,5,411,0,0,4044,4045,5,42,0,0,4045,4047,3,662,331,0,4046,4042,1,0,0,0,4046,4043,1,0,0,0,4046,4044,1,0,0,0,4047,4048,1,0,0,0,4048,4049,5,118,0,0,4049,4050,5,55,0,0,4050,267,1,0,0,0,4051,4056,5,116,0,0,4052,4056,5,411,0,0,4053,4054,5,42,0,0,4054,4056,3,662,331,0,4055,4051,1,0,0,0,4055,4052,1,0,0,0,4055,4053,1,0,0,0,4056,4057,1,0,0,0,4057,4058,5,118,0,0,4058,4059,5,411,0,0,4059,269,1,0,0,0,4060,4069,7,52,0,0,4061,4069,5,75,0,0,4062,4069,5,171,0,0,4063,4069,5,166,0,0,4064,4069,5,164,0,0,4065,4069,5,625,0,0,4066,4069,7,53,0,0,4067,4069,5,165,0,0,4068,4060,1,0,0,0,4068,4061,1,0,0,0,4068,4062,1,0,0,0,4068,4063,1,0,0,0,4068,4064,1,0,0,0,4068,4065,1,0,0,0,4068,4066,1,0,0,0,4068,4067,1,0,0,0,4069,271,1,0,0,0,4070,4073,5,1117,0,0,4071,4073,3,276,138,0,4072,4070,1,0,0,0,4072,4071,1,0,0,0,4073,4078,1,0,0,0,4074,4075,5,1135,0,0,4075,4077,3,276,138,0,4076,4074,1,0,0,0,4077,4080,1,0,0,0,4078,4076,1,0,0,0,4078,4079,1,0,0,0,4079,273,1,0,0,0,4080,4078,1,0,0,0,4081,4083,5,12,0,0,4082,4081,1,0,0,0,4082,4083,1,0,0,0,4083,4084,1,0,0,0,4084,4085,3,612,306,0,4085,275,1,0,0,0,4086,4087,3,552,276,0,4087,4088,5,1132,0,0,4088,4089,5,1117,0,0,4089,4107,1,0,0,0,4090,4092,3,570,285,0,4091,4093,3,274,137,0,4092,4091,1,0,0,0,4092,4093,1,0,0,0,4093,4107,1,0,0,0,4094,4096,3,676,338,0,4095,4097,3,274,137,0,4096,4095,1,0,0,0,4096,4097,1,0,0,0,4097,4107,1,0,0,0,4098,4099,5,1159,0,0,4099,4101,5,1108,0,0,4100,4098,1,0,0,0,4100,4101,1,0,0,0,4101,4102,1,0,0,0,4102,4104,3,716,358,0,4103,4105,3,274,137,0,4104,4103,1,0,0,0,4104,4105,1,0,0,0,4105,4107,1,0,0,0,4106,4086,1,0,0,0,4106,4090,1,0,0,0,4106,4094,1,0,0,0,4106,4100,1,0,0,0,4107,277,1,0,0,0,4108,4109,5,87,0,0,4109,4114,3,208,104,0,4110,4111,5,1135,0,0,4111,4113,3,208,104,0,4112,4110,1,0,0,0,4113,4116,1,0,0,0,4114,4112,1,0,0,0,4114,4115,1,0,0,0,4115,4145,1,0,0,0,4116,4114,1,0,0,0,4117,4118,5,87,0,0,4118,4119,5,400,0,0,4119,4145,5,1148,0,0,4120,4121,5,87,0,0,4121,4122,5,127,0,0,4122,4126,5,1148,0,0,4123,4124,5,25,0,0,4124,4125,5,153,0,0,4125,4127,3,596,298,0,4126,4123,1,0,0,0,4126,4127,1,0,0,0,4127,4134,1,0,0,0,4128,4130,7,41,0,0,4129,4131,3,280,140,0,4130,4129,1,0,0,0,4131,4132,1,0,0,0,4132,4130,1,0,0,0,4132,4133,1,0,0,0,4133,4135,1,0,0,0,4134,4128,1,0,0,0,4134,4135,1,0,0,0,4135,4142,1,0,0,0,4136,4138,5,101,0,0,4137,4139,3,282,141,0,4138,4137,1,0,0,0,4139,4140,1,0,0,0,4140,4138,1,0,0,0,4140,4141,1,0,0,0,4141,4143,1,0,0,0,4142,4136,1,0,0,0,4142,4143,1,0,0,0,4143,4145,1,0,0,0,4144,4108,1,0,0,0,4144,4117,1,0,0,0,4144,4120,1,0,0,0,4145,279,1,0,0,0,4146,4147,5,173,0,0,4147,4148,5,19,0,0,4148,4159,5,1148,0,0,4149,4151,5,122,0,0,4150,4149,1,0,0,0,4150,4151,1,0,0,0,4151,4152,1,0,0,0,4152,4153,5,56,0,0,4153,4154,5,19,0,0,4154,4159,5,1148,0,0,4155,4156,5,58,0,0,4156,4157,5,19,0,0,4157,4159,5,1148,0,0,4158,4146,1,0,0,0,4158,4150,1,0,0,0,4158,4155,1,0,0,0,4159,281,1,0,0,0,4160,4161,5,169,0,0,4161,4162,5,19,0,0,4162,4167,5,1148,0,0,4163,4164,5,173,0,0,4164,4165,5,19,0,0,4165,4167,5,1148,0,0,4166,4160,1,0,0,0,4166,4163,1,0,0,0,4167,283,1,0,0,0,4168,4169,5,68,0,0,4169,4171,3,232,116,0,4170,4168,1,0,0,0,4170,4171,1,0,0,0,4171,4174,1,0,0,0,4172,4173,5,190,0,0,4173,4175,3,716,358,0,4174,4172,1,0,0,0,4174,4175,1,0,0,0,4175,285,1,0,0,0,4176,4177,5,73,0,0,4177,4178,5,19,0,0,4178,4183,3,292,146,0,4179,4180,5,1135,0,0,4180,4182,3,292,146,0,4181,4179,1,0,0,0,4182,4185,1,0,0,0,4183,4181,1,0,0,0,4183,4184,1,0,0,0,4184,4188,1,0,0,0,4185,4183,1,0,0,0,4186,4187,5,192,0,0,4187,4189,5,598,0,0,4188,4186,1,0,0,0,4188,4189,1,0,0,0,4189,287,1,0,0,0,4190,4191,5,74,0,0,4191,4192,3,716,358,0,4192,289,1,0,0,0,4193,4194,5,676,0,0,4194,4195,3,694,347,0,4195,4196,5,12,0,0,4196,4197,5,1133,0,0,4197,4198,3,692,346,0,4198,4208,5,1134,0,0,4199,4200,5,1135,0,0,4200,4201,3,694,347,0,4201,4202,5,12,0,0,4202,4203,5,1133,0,0,4203,4204,3,692,346,0,4204,4205,5,1134,0,0,4205,4207,1,0,0,0,4206,4199,1,0,0,0,4207,4210,1,0,0,0,4208,4206,1,0,0,0,4208,4209,1,0,0,0,4209,291,1,0,0,0,4210,4208,1,0,0,0,4211,4213,3,716,358,0,4212,4214,7,48,0,0,4213,4212,1,0,0,0,4213,4214,1,0,0,0,4214,293,1,0,0,0,4215,4226,5,99,0,0,4216,4217,3,296,148,0,4217,4218,5,1135,0,0,4218,4220,1,0,0,0,4219,4216,1,0,0,0,4219,4220,1,0,0,0,4220,4221,1,0,0,0,4221,4227,3,296,148,0,4222,4223,3,296,148,0,4223,4224,5,532,0,0,4224,4225,3,296,148,0,4225,4227,1,0,0,0,4226,4219,1,0,0,0,4226,4222,1,0,0,0,4227,295,1,0,0,0,4228,4232,3,618,309,0,4229,4232,3,594,297,0,4230,4232,3,614,307,0,4231,4228,1,0,0,0,4231,4229,1,0,0,0,4231,4230,1,0,0,0,4232,297,1,0,0,0,4233,4234,5,629,0,0,4234,4243,5,653,0,0,4235,4240,3,320,160,0,4236,4237,5,1135,0,0,4237,4239,3,320,160,0,4238,4236,1,0,0,0,4239,4242,1,0,0,0,4240,4238,1,0,0,0,4240,4241,1,0,0,0,4241,4244,1,0,0,0,4242,4240,1,0,0,0,4243,4235,1,0,0,0,4243,4244,1,0,0,0,4244,299,1,0,0,0,4245,4247,5,344,0,0,4246,4248,5,678,0,0,4247,4246,1,0,0,0,4247,4248,1,0,0,0,4248,301,1,0,0,0,4249,4251,5,369,0,0,4250,4252,5,678,0,0,4251,4250,1,0,0,0,4251,4252,1,0,0,0,4252,4258,1,0,0,0,4253,4255,5,10,0,0,4254,4256,5,521,0,0,4255,4254,1,0,0,0,4255,4256,1,0,0,0,4256,4257,1,0,0,0,4257,4259,5,353,0,0,4258,4253,1,0,0,0,4258,4259,1,0,0,0,4259,4264,1,0,0,0,4260,4262,5,521,0,0,4261,4260,1,0,0,0,4261,4262,1,0,0,0,4262,4263,1,0,0,0,4263,4265,5,138,0,0,4264,4261,1,0,0,0,4264,4265,1,0,0,0,4265,303,1,0,0,0,4266,4268,5,597,0,0,4267,4269,5,678,0,0,4268,4267,1,0,0,0,4268,4269,1,0,0,0,4269,4275,1,0,0,0,4270,4272,5,10,0,0,4271,4273,5,521,0,0,4272,4271,1,0,0,0,4272,4273,1,0,0,0,4273,4274,1,0,0,0,4274,4276,5,353,0,0,4275,4270,1,0,0,0,4275,4276,1,0,0,0,4276,4281,1,0,0,0,4277,4279,5,521,0,0,4278,4277,1,0,0,0,4278,4279,1,0,0,0,4279,4280,1,0,0,0,4280,4282,5,138,0,0,4281,4278,1,0,0,0,4281,4282,1,0,0,0,4282,305,1,0,0,0,4283,4284,5,604,0,0,4284,4285,3,612,306,0,4285,307,1,0,0,0,4286,4288,5,597,0,0,4287,4289,5,678,0,0,4288,4287,1,0,0,0,4288,4289,1,0,0,0,4289,4290,1,0,0,0,4290,4292,5,175,0,0,4291,4293,5,604,0,0,4292,4291,1,0,0,0,4292,4293,1,0,0,0,4293,4294,1,0,0,0,4294,4295,3,612,306,0,4295,309,1,0,0,0,4296,4297,5,138,0,0,4297,4298,5,604,0,0,4298,4299,3,612,306,0,4299,311,1,0,0,0,4300,4301,5,103,0,0,4301,4302,7,54,0,0,4302,4307,3,322,161,0,4303,4304,5,1135,0,0,4304,4306,3,322,161,0,4305,4303,1,0,0,0,4306,4309,1,0,0,0,4307,4305,1,0,0,0,4307,4308,1,0,0,0,4308,4311,1,0,0,0,4309,4307,1,0,0,0,4310,4312,3,674,337,0,4311,4310,1,0,0,0,4311,4312,1,0,0,0,4312,313,1,0,0,0,4313,4314,5,182,0,0,4314,4315,5,742,0,0,4315,315,1,0,0,0,4316,4317,5,153,0,0,4317,4318,5,340,0,0,4318,4319,5,1124,0,0,4319,4320,7,24,0,0,4320,317,1,0,0,0,4321,4323,5,153,0,0,4322,4324,7,55,0,0,4323,4322,1,0,0,0,4323,4324,1,0,0,0,4324,4325,1,0,0,0,4325,4326,5,653,0,0,4326,4331,3,326,163,0,4327,4328,5,1135,0,0,4328,4330,3,326,163,0,4329,4327,1,0,0,0,4330,4333,1,0,0,0,4331,4329,1,0,0,0,4331,4332,1,0,0,0,4332,319,1,0,0,0,4333,4331,1,0,0,0,4334,4335,5,192,0,0,4335,4336,5,377,0,0,4336,4342,5,616,0,0,4337,4338,5,134,0,0,4338,4342,5,193,0,0,4339,4340,5,134,0,0,4340,4342,5,538,0,0,4341,4334,1,0,0,0,4341,4337,1,0,0,0,4341,4339,1,0,0,0,4342,321,1,0,0,0,4343,4348,3,554,277,0,4344,4346,5,12,0,0,4345,4344,1,0,0,0,4345,4346,1,0,0,0,4346,4347,1,0,0,0,4347,4349,3,612,306,0,4348,4345,1,0,0,0,4348,4349,1,0,0,0,4349,4350,1,0,0,0,4350,4351,3,324,162,0,4351,323,1,0,0,0,4352,4354,5,134,0,0,4353,4355,5,474,0,0,4354,4353,1,0,0,0,4354,4355,1,0,0,0,4355,4361,1,0,0,0,4356,4358,5,106,0,0,4357,4356,1,0,0,0,4357,4358,1,0,0,0,4358,4359,1,0,0,0,4359,4361,5,193,0,0,4360,4352,1,0,0,0,4360,4357,1,0,0,0,4361,325,1,0,0,0,4362,4363,5,464,0,0,4363,4364,5,472,0,0,4364,4370,3,328,164,0,4365,4366,5,134,0,0,4366,4370,5,193,0,0,4367,4368,5,134,0,0,4368,4370,5,538,0,0,4369,4362,1,0,0,0,4369,4365,1,0,0,0,4369,4367,1,0,0,0,4370,327,1,0,0,0,4371,4372,5,799,0,0,4372,4379,5,134,0,0,4373,4374,5,134,0,0,4374,4379,5,800,0,0,4375,4376,5,134,0,0,4376,4379,5,801,0,0,4377,4379,5,802,0,0,4378,4371,1,0,0,0,4378,4373,1,0,0,0,4378,4375,1,0,0,0,4378,4377,1,0,0,0,4379,329,1,0,0,0,4380,4381,5,24,0,0,4381,4382,5,477,0,0,4382,4383,5,175,0,0,4383,4388,3,348,174,0,4384,4385,5,1135,0,0,4385,4387,3,348,174,0,4386,4384,1,0,0,0,4387,4390,1,0,0,0,4388,4386,1,0,0,0,4388,4389,1,0,0,0,4389,4392,1,0,0,0,4390,4388,1,0,0,0,4391,4393,3,356,178,0,4392,4391,1,0,0,0,4392,4393,1,0,0,0,4393,331,1,0,0,0,4394,4395,5,24,0,0,4395,4396,5,588,0,0,4396,4397,5,429,0,0,4397,4402,3,358,179,0,4398,4399,5,1135,0,0,4399,4401,3,358,179,0,4400,4398,1,0,0,0,4401,4404,1,0,0,0,4402,4400,1,0,0,0,4402,4403,1,0,0,0,4403,333,1,0,0,0,4404,4402,1,0,0,0,4405,4406,5,132,0,0,4406,4407,7,56,0,0,4407,4412,5,476,0,0,4408,4409,5,175,0,0,4409,4413,5,1148,0,0,4410,4411,5,15,0,0,4411,4413,5,1148,0,0,4412,4408,1,0,0,0,4412,4410,1,0,0,0,4413,335,1,0,0,0,4414,4415,5,589,0,0,4415,4416,5,477,0,0,4416,337,1,0,0,0,4417,4418,5,589,0,0,4418,4420,5,614,0,0,4419,4421,5,6,0,0,4420,4419,1,0,0,0,4420,4421,1,0,0,0,4421,4423,1,0,0,0,4422,4424,3,356,178,0,4423,4422,1,0,0,0,4423,4424,1,0,0,0,4424,339,1,0,0,0,4425,4426,5,629,0,0,4426,4435,5,614,0,0,4427,4432,3,362,181,0,4428,4429,5,1135,0,0,4429,4431,3,362,181,0,4430,4428,1,0,0,0,4431,4434,1,0,0,0,4432,4430,1,0,0,0,4432,4433,1,0,0,0,4433,4436,1,0,0,0,4434,4432,1,0,0,0,4435,4427,1,0,0,0,4435,4436,1,0,0,0,4436,4439,1,0,0,0,4437,4438,5,663,0,0,4438,4440,3,364,182,0,4439,4437,1,0,0,0,4439,4440,1,0,0,0,4440,4444,1,0,0,0,4441,4443,3,366,183,0,4442,4441,1,0,0,0,4443,4446,1,0,0,0,4444,4442,1,0,0,0,4444,4445,1,0,0,0,4445,4448,1,0,0,0,4446,4444,1,0,0,0,4447,4449,3,356,178,0,4448,4447,1,0,0,0,4448,4449,1,0,0,0,4449,341,1,0,0,0,4450,4451,5,635,0,0,4451,4460,5,614,0,0,4452,4457,3,362,181,0,4453,4454,5,1135,0,0,4454,4456,3,362,181,0,4455,4453,1,0,0,0,4456,4459,1,0,0,0,4457,4455,1,0,0,0,4457,4458,1,0,0,0,4458,4461,1,0,0,0,4459,4457,1,0,0,0,4460,4452,1,0,0,0,4460,4461,1,0,0,0,4461,343,1,0,0,0,4462,4463,5,629,0,0,4463,4464,5,441,0,0,4464,345,1,0,0,0,4465,4466,5,635,0,0,4466,4467,5,441,0,0,4467,347,1,0,0,0,4468,4469,3,350,175,0,4469,4470,5,1124,0,0,4470,4471,5,1148,0,0,4471,4498,1,0,0,0,4472,4473,3,352,176,0,4473,4474,5,1124,0,0,4474,4475,3,618,309,0,4475,4498,1,0,0,0,4476,4477,3,354,177,0,4477,4478,5,1124,0,0,4478,4479,7,24,0,0,4479,4498,1,0,0,0,4480,4481,5,481,0,0,4481,4482,5,1124,0,0,4482,4498,5,1151,0,0,4483,4484,5,449,0,0,4484,4485,5,1124,0,0,4485,4494,5,1133,0,0,4486,4491,3,612,306,0,4487,4488,5,1135,0,0,4488,4490,3,612,306,0,4489,4487,1,0,0,0,4490,4493,1,0,0,0,4491,4489,1,0,0,0,4491,4492,1,0,0,0,4492,4495,1,0,0,0,4493,4491,1,0,0,0,4494,4486,1,0,0,0,4494,4495,1,0,0,0,4495,4496,1,0,0,0,4496,4498,5,1134,0,0,4497,4468,1,0,0,0,4497,4472,1,0,0,0,4497,4476,1,0,0,0,4497,4480,1,0,0,0,4497,4483,1,0,0,0,4498,349,1,0,0,0,4499,4500,7,57,0,0,4500,351,1,0,0,0,4501,4502,7,58,0,0,4502,353,1,0,0,0,4503,4504,7,59,0,0,4504,355,1,0,0,0,4505,4506,5,65,0,0,4506,4507,5,355,0,0,4507,4508,5,1148,0,0,4508,357,1,0,0,0,4509,4510,5,581,0,0,4510,4511,5,1124,0,0,4511,4512,5,1133,0,0,4512,4513,3,644,322,0,4513,4514,5,1134,0,0,4514,4559,1,0,0,0,4515,4516,5,583,0,0,4516,4517,5,1124,0,0,4517,4518,5,1133,0,0,4518,4519,3,644,322,0,4519,4520,5,1134,0,0,4520,4559,1,0,0,0,4521,4522,5,582,0,0,4522,4523,5,1124,0,0,4523,4524,5,1133,0,0,4524,4525,3,648,324,0,4525,4526,5,1134,0,0,4526,4559,1,0,0,0,4527,4528,5,584,0,0,4528,4529,5,1124,0,0,4529,4530,5,1133,0,0,4530,4531,3,648,324,0,4531,4532,5,1134,0,0,4532,4559,1,0,0,0,4533,4534,5,586,0,0,4534,4535,5,1124,0,0,4535,4536,5,1133,0,0,4536,4537,3,658,329,0,4537,4538,5,1134,0,0,4538,4559,1,0,0,0,4539,4540,5,587,0,0,4540,4541,5,1124,0,0,4541,4542,5,1133,0,0,4542,4543,3,658,329,0,4543,4544,5,1134,0,0,4544,4559,1,0,0,0,4545,4546,5,585,0,0,4546,4547,5,1124,0,0,4547,4548,5,1133,0,0,4548,4553,3,360,180,0,4549,4550,5,1135,0,0,4550,4552,3,360,180,0,4551,4549,1,0,0,0,4552,4555,1,0,0,0,4553,4551,1,0,0,0,4553,4554,1,0,0,0,4554,4556,1,0,0,0,4555,4553,1,0,0,0,4556,4557,5,1134,0,0,4557,4559,1,0,0,0,4558,4509,1,0,0,0,4558,4515,1,0,0,0,4558,4521,1,0,0,0,4558,4527,1,0,0,0,4558,4533,1,0,0,0,4558,4539,1,0,0,0,4558,4545,1,0,0,0,4559,359,1,0,0,0,4560,4561,5,1133,0,0,4561,4562,3,554,277,0,4562,4563,5,1135,0,0,4563,4564,3,554,277,0,4564,4565,5,1134,0,0,4565,361,1,0,0,0,4566,4567,7,60,0,0,4567,363,1,0,0,0,4568,4569,7,61,0,0,4569,4570,5,1124,0,0,4570,4587,3,368,184,0,4571,4572,5,483,0,0,4572,4573,5,1124,0,0,4573,4574,5,1148,0,0,4574,4575,5,1135,0,0,4575,4576,5,484,0,0,4576,4577,5,1124,0,0,4577,4587,3,618,309,0,4578,4579,5,575,0,0,4579,4580,5,1124,0,0,4580,4581,5,1148,0,0,4581,4582,5,1135,0,0,4582,4583,5,576,0,0,4583,4584,5,1124,0,0,4584,4587,3,618,309,0,4585,4587,5,623,0,0,4586,4568,1,0,0,0,4586,4571,1,0,0,0,4586,4578,1,0,0,0,4586,4585,1,0,0,0,4587,365,1,0,0,0,4588,4589,5,665,0,0,4589,4590,5,1124,0,0,4590,4601,5,1148,0,0,4591,4592,5,551,0,0,4592,4593,5,1124,0,0,4593,4601,5,1148,0,0,4594,4595,5,391,0,0,4595,4596,5,1124,0,0,4596,4601,5,1148,0,0,4597,4598,5,555,0,0,4598,4599,5,1124,0,0,4599,4601,5,1148,0,0,4600,4588,1,0,0,0,4600,4591,1,0,0,0,4600,4594,1,0,0,0,4600,4597,1,0,0,0,4601,367,1,0,0,0,4602,4607,3,604,302,0,4603,4604,5,1135,0,0,4604,4606,3,604,302,0,4605,4603,1,0,0,0,4606,4609,1,0,0,0,4607,4605,1,0,0,0,4607,4608,1,0,0,0,4608,4612,1,0,0,0,4609,4607,1,0,0,0,4610,4612,5,1148,0,0,4611,4602,1,0,0,0,4611,4610,1,0,0,0,4612,369,1,0,0,0,4613,4614,5,681,0,0,4614,4615,7,62,0,0,4615,4617,3,606,303,0,4616,4618,7,63,0,0,4617,4616,1,0,0,0,4617,4618,1,0,0,0,4618,371,1,0,0,0,4619,4620,5,681,0,0,4620,4621,5,407,0,0,4621,4627,3,606,303,0,4622,4625,5,643,0,0,4623,4624,5,65,0,0,4624,4626,5,509,0,0,4625,4623,1,0,0,0,4625,4626,1,0,0,0,4626,4628,1,0,0,0,4627,4622,1,0,0,0,4627,4628,1,0,0,0,4628,373,1,0,0,0,4629,4630,5,681,0,0,4630,4631,5,560,0,0,4631,4632,3,606,303,0,4632,375,1,0,0,0,4633,4634,5,681,0,0,4634,4635,5,369,0,0,4635,4638,3,606,303,0,4636,4637,5,536,0,0,4637,4639,5,553,0,0,4638,4636,1,0,0,0,4638,4639,1,0,0,0,4639,377,1,0,0,0,4640,4641,5,681,0,0,4641,4642,5,597,0,0,4642,4643,3,606,303,0,4643,379,1,0,0,0,4644,4645,5,681,0,0,4645,4648,5,570,0,0,4646,4647,5,32,0,0,4647,4649,3,606,303,0,4648,4646,1,0,0,0,4648,4649,1,0,0,0,4649,381,1,0,0,0,4650,4651,5,560,0,0,4651,4652,3,612,306,0,4652,4655,5,68,0,0,4653,4656,5,1148,0,0,4654,4656,5,1159,0,0,4655,4653,1,0,0,0,4655,4654,1,0,0,0,4656,383,1,0,0,0,4657,4658,5,708,0,0,4658,4661,3,612,306,0,4659,4660,5,187,0,0,4660,4662,3,660,330,0,4661,4659,1,0,0,0,4661,4662,1,0,0,0,4662,385,1,0,0,0,4663,4664,7,64,0,0,4664,4665,5,560,0,0,4665,4666,3,612,306,0,4666,387,1,0,0,0,4667,4670,3,390,195,0,4668,4670,3,4,2,0,4669,4667,1,0,0,0,4669,4668,1,0,0,0,4670,389,1,0,0,0,4671,4672,3,612,306,0,4672,4673,5,1144,0,0,4673,4675,1,0,0,0,4674,4671,1,0,0,0,4674,4675,1,0,0,0,4675,4676,1,0,0,0,4676,4682,5,344,0,0,4677,4678,3,410,205,0,4678,4679,5,1136,0,0,4679,4681,1,0,0,0,4680,4677,1,0,0,0,4681,4684,1,0,0,0,4682,4680,1,0,0,0,4682,4683,1,0,0,0,4683,4690,1,0,0,0,4684,4682,1,0,0,0,4685,4686,3,412,206,0,4686,4687,5,1136,0,0,4687,4689,1,0,0,0,4688,4685,1,0,0,0,4689,4692,1,0,0,0,4690,4688,1,0,0,0,4690,4691,1,0,0,0,4691,4698,1,0,0,0,4692,4690,1,0,0,0,4693,4694,3,414,207,0,4694,4695,5,1136,0,0,4695,4697,1,0,0,0,4696,4693,1,0,0,0,4697,4700,1,0,0,0,4698,4696,1,0,0,0,4698,4699,1,0,0,0,4699,4706,1,0,0,0,4700,4698,1,0,0,0,4701,4702,3,416,208,0,4702,4703,5,1136,0,0,4703,4705,1,0,0,0,4704,4701,1,0,0,0,4705,4708,1,0,0,0,4706,4704,1,0,0,0,4706,4707,1,0,0,0,4707,4712,1,0,0,0,4708,4706,1,0,0,0,4709,4711,3,420,210,0,4710,4709,1,0,0,0,4711,4714,1,0,0,0,4712,4710,1,0,0,0,4712,4713,1,0,0,0,4713,4715,1,0,0,0,4714,4712,1,0,0,0,4715,4717,5,407,0,0,4716,4718,3,612,306,0,4717,4716,1,0,0,0,4717,4718,1,0,0,0,4718,391,1,0,0,0,4719,4722,5,22,0,0,4720,4723,3,612,306,0,4721,4723,3,716,358,0,4722,4720,1,0,0,0,4722,4721,1,0,0,0,4722,4723,1,0,0,0,4723,4725,1,0,0,0,4724,4726,3,422,211,0,4725,4724,1,0,0,0,4726,4727,1,0,0,0,4727,4725,1,0,0,0,4727,4728,1,0,0,0,4728,4735,1,0,0,0,4729,4731,5,53,0,0,4730,4732,3,420,210,0,4731,4730,1,0,0,0,4732,4733,1,0,0,0,4733,4731,1,0,0,0,4733,4734,1,0,0,0,4734,4736,1,0,0,0,4735,4729,1,0,0,0,4735,4736,1,0,0,0,4736,4737,1,0,0,0,4737,4738,5,407,0,0,4738,4739,5,22,0,0,4739,393,1,0,0,0,4740,4741,5,77,0,0,4741,4742,3,716,358,0,4742,4744,5,174,0,0,4743,4745,3,420,210,0,4744,4743,1,0,0,0,4745,4746,1,0,0,0,4746,4744,1,0,0,0,4746,4747,1,0,0,0,4747,4751,1,0,0,0,4748,4750,3,424,212,0,4749,4748,1,0,0,0,4750,4753,1,0,0,0,4751,4749,1,0,0,0,4751,4752,1,0,0,0,4752,4760,1,0,0,0,4753,4751,1,0,0,0,4754,4756,5,53,0,0,4755,4757,3,420,210,0,4756,4755,1,0,0,0,4757,4758,1,0,0,0,4758,4756,1,0,0,0,4758,4759,1,0,0,0,4759,4761,1,0,0,0,4760,4754,1,0,0,0,4760,4761,1,0,0,0,4761,4762,1,0,0,0,4762,4763,5,407,0,0,4763,4764,5,77,0,0,4764,395,1,0,0,0,4765,4766,5,89,0,0,4766,4767,3,612,306,0,4767,397,1,0,0,0,4768,4769,5,96,0,0,4769,4770,3,612,306,0,4770,399,1,0,0,0,4771,4772,3,612,306,0,4772,4773,5,1144,0,0,4773,4775,1,0,0,0,4774,4771,1,0,0,0,4774,4775,1,0,0,0,4775,4776,1,0,0,0,4776,4778,5,105,0,0,4777,4779,3,420,210,0,4778,4777,1,0,0,0,4779,4780,1,0,0,0,4780,4778,1,0,0,0,4780,4781,1,0,0,0,4781,4782,1,0,0,0,4782,4783,5,407,0,0,4783,4785,5,105,0,0,4784,4786,3,612,306,0,4785,4784,1,0,0,0,4785,4786,1,0,0,0,4786,401,1,0,0,0,4787,4788,3,612,306,0,4788,4789,5,1144,0,0,4789,4791,1,0,0,0,4790,4787,1,0,0,0,4790,4791,1,0,0,0,4791,4792,1,0,0,0,4792,4794,5,140,0,0,4793,4795,3,420,210,0,4794,4793,1,0,0,0,4795,4796,1,0,0,0,4796,4794,1,0,0,0,4796,4797,1,0,0,0,4797,4798,1,0,0,0,4798,4799,5,663,0,0,4799,4800,3,716,358,0,4800,4801,5,407,0,0,4801,4803,5,140,0,0,4802,4804,3,612,306,0,4803,4802,1,0,0,0,4803,4804,1,0,0,0,4804,403,1,0,0,0,4805,4806,5,146,0,0,4806,4807,3,716,358,0,4807,405,1,0,0,0,4808,4809,3,612,306,0,4809,4810,5,1144,0,0,4810,4812,1,0,0,0,4811,4808,1,0,0,0,4811,4812,1,0,0,0,4812,4813,1,0,0,0,4813,4814,5,191,0,0,4814,4815,3,716,358,0,4815,4817,5,399,0,0,4816,4818,3,420,210,0,4817,4816,1,0,0,0,4818,4819,1,0,0,0,4819,4817,1,0,0,0,4819,4820,1,0,0,0,4820,4821,1,0,0,0,4821,4822,5,407,0,0,4822,4824,5,191,0,0,4823,4825,3,612,306,0,4824,4823,1,0,0,0,4824,4825,1,0,0,0,4825,407,1,0,0,0,4826,4827,5,361,0,0,4827,4842,3,612,306,0,4828,4833,5,64,0,0,4829,4831,5,520,0,0,4830,4829,1,0,0,0,4830,4831,1,0,0,0,4831,4832,1,0,0,0,4832,4834,5,68,0,0,4833,4830,1,0,0,0,4833,4834,1,0,0,0,4834,4835,1,0,0,0,4835,4836,3,612,306,0,4836,4837,5,87,0,0,4837,4838,3,644,322,0,4838,4842,1,0,0,0,4839,4840,5,539,0,0,4840,4842,3,612,306,0,4841,4826,1,0,0,0,4841,4828,1,0,0,0,4841,4839,1,0,0,0,4842,409,1,0,0,0,4843,4844,5,41,0,0,4844,4845,3,644,322,0,4845,4848,3,632,316,0,4846,4847,5,42,0,0,4847,4849,3,716,358,0,4848,4846,1,0,0,0,4848,4849,1,0,0,0,4849,411,1,0,0,0,4850,4851,5,41,0,0,4851,4852,3,612,306,0,4852,4853,5,29,0,0,4853,4860,5,65,0,0,4854,4861,3,618,309,0,4855,4857,5,162,0,0,4856,4858,5,669,0,0,4857,4856,1,0,0,0,4857,4858,1,0,0,0,4858,4859,1,0,0,0,4859,4861,5,1148,0,0,4860,4854,1,0,0,0,4860,4855,1,0,0,0,4861,413,1,0,0,0,4862,4863,5,41,0,0,4863,4864,3,612,306,0,4864,4865,5,38,0,0,4865,4866,5,65,0,0,4866,4867,3,198,99,0,4867,415,1,0,0,0,4868,4869,5,41,0,0,4869,4870,7,65,0,0,4870,4871,5,442,0,0,4871,4872,5,65,0,0,4872,4877,3,418,209,0,4873,4874,5,1135,0,0,4874,4876,3,418,209,0,4875,4873,1,0,0,0,4876,4879,1,0,0,0,4877,4875,1,0,0,0,4877,4878,1,0,0,0,4878,4880,1,0,0,0,4879,4877,1,0,0,0,4880,4881,3,388,194,0,4881,417,1,0,0,0,4882,4894,3,618,309,0,4883,4885,5,162,0,0,4884,4886,5,669,0,0,4885,4884,1,0,0,0,4885,4886,1,0,0,0,4886,4887,1,0,0,0,4887,4894,5,1148,0,0,4888,4894,3,612,306,0,4889,4894,5,163,0,0,4890,4891,5,114,0,0,4891,4894,5,435,0,0,4892,4894,5,161,0,0,4893,4882,1,0,0,0,4893,4883,1,0,0,0,4893,4888,1,0,0,0,4893,4889,1,0,0,0,4893,4890,1,0,0,0,4893,4892,1,0,0,0,4894,419,1,0,0,0,4895,4898,3,16,8,0,4896,4898,3,4,2,0,4897,4895,1,0,0,0,4897,4896,1,0,0,0,4898,4899,1,0,0,0,4899,4900,5,1136,0,0,4900,421,1,0,0,0,4901,4904,5,189,0,0,4902,4905,3,630,315,0,4903,4905,3,716,358,0,4904,4902,1,0,0,0,4904,4903,1,0,0,0,4905,4906,1,0,0,0,4906,4908,5,174,0,0,4907,4909,3,420,210,0,4908,4907,1,0,0,0,4909,4910,1,0,0,0,4910,4908,1,0,0,0,4910,4911,1,0,0,0,4911,423,1,0,0,0,4912,4913,5,54,0,0,4913,4914,3,716,358,0,4914,4916,5,174,0,0,4915,4917,3,420,210,0,4916,4915,1,0,0,0,4917,4918,1,0,0,0,4918,4916,1,0,0,0,4918,4919,1,0,0,0,4919,425,1,0,0,0,4920,4921,5,7,0,0,4921,4922,5,665,0,0,4922,4927,3,446,223,0,4923,4924,5,1135,0,0,4924,4926,3,446,223,0,4925,4923,1,0,0,0,4926,4929,1,0,0,0,4927,4925,1,0,0,0,4927,4928,1,0,0,0,4928,4984,1,0,0,0,4929,4927,1,0,0,0,4930,4931,5,7,0,0,4931,4933,5,665,0,0,4932,4934,3,668,334,0,4933,4932,1,0,0,0,4933,4934,1,0,0,0,4934,4935,1,0,0,0,4935,4950,3,448,224,0,4936,4948,5,142,0,0,4937,4949,5,529,0,0,4938,4945,3,456,228,0,4939,4941,5,10,0,0,4940,4939,1,0,0,0,4940,4941,1,0,0,0,4941,4942,1,0,0,0,4942,4944,3,456,228,0,4943,4940,1,0,0,0,4944,4947,1,0,0,0,4945,4943,1,0,0,0,4945,4946,1,0,0,0,4946,4949,1,0,0,0,4947,4945,1,0,0,0,4948,4937,1,0,0,0,4948,4938,1,0,0,0,4949,4951,1,0,0,0,4950,4936,1,0,0,0,4950,4951,1,0,0,0,4951,4958,1,0,0,0,4952,4954,5,192,0,0,4953,4955,3,458,229,0,4954,4953,1,0,0,0,4955,4956,1,0,0,0,4956,4954,1,0,0,0,4956,4957,1,0,0,0,4957,4959,1,0,0,0,4958,4952,1,0,0,0,4958,4959,1,0,0,0,4959,4964,1,0,0,0,4960,4963,3,460,230,0,4961,4963,3,462,231,0,4962,4960,1,0,0,0,4962,4961,1,0,0,0,4963,4966,1,0,0,0,4964,4962,1,0,0,0,4964,4965,1,0,0,0,4965,4971,1,0,0,0,4966,4964,1,0,0,0,4967,4968,5,368,0,0,4968,4972,5,1148,0,0,4969,4970,5,14,0,0,4970,4972,5,1148,0,0,4971,4967,1,0,0,0,4971,4969,1,0,0,0,4971,4972,1,0,0,0,4972,4984,1,0,0,0,4973,4974,5,7,0,0,4974,4976,5,665,0,0,4975,4977,3,668,334,0,4976,4975,1,0,0,0,4976,4977,1,0,0,0,4977,4978,1,0,0,0,4978,4979,3,592,296,0,4979,4980,5,42,0,0,4980,4981,5,596,0,0,4981,4982,3,434,217,0,4982,4984,1,0,0,0,4983,4920,1,0,0,0,4983,4930,1,0,0,0,4983,4973,1,0,0,0,4984,427,1,0,0,0,4985,4986,5,33,0,0,4986,4987,5,665,0,0,4987,5037,3,448,224,0,4988,4989,5,33,0,0,4989,4991,5,665,0,0,4990,4992,3,670,335,0,4991,4990,1,0,0,0,4991,4992,1,0,0,0,4992,4993,1,0,0,0,4993,4997,3,448,224,0,4994,4995,5,42,0,0,4995,4996,5,596,0,0,4996,4998,3,434,217,0,4997,4994,1,0,0,0,4997,4998,1,0,0,0,4998,5013,1,0,0,0,4999,5011,5,142,0,0,5e3,5012,5,529,0,0,5001,5008,3,456,228,0,5002,5004,5,10,0,0,5003,5002,1,0,0,0,5003,5004,1,0,0,0,5004,5005,1,0,0,0,5005,5007,3,456,228,0,5006,5003,1,0,0,0,5007,5010,1,0,0,0,5008,5006,1,0,0,0,5008,5009,1,0,0,0,5009,5012,1,0,0,0,5010,5008,1,0,0,0,5011,5e3,1,0,0,0,5011,5001,1,0,0,0,5012,5014,1,0,0,0,5013,4999,1,0,0,0,5013,5014,1,0,0,0,5014,5021,1,0,0,0,5015,5017,5,192,0,0,5016,5018,3,458,229,0,5017,5016,1,0,0,0,5018,5019,1,0,0,0,5019,5017,1,0,0,0,5019,5020,1,0,0,0,5020,5022,1,0,0,0,5021,5015,1,0,0,0,5021,5022,1,0,0,0,5022,5027,1,0,0,0,5023,5026,3,460,230,0,5024,5026,3,462,231,0,5025,5023,1,0,0,0,5025,5024,1,0,0,0,5026,5029,1,0,0,0,5027,5025,1,0,0,0,5027,5028,1,0,0,0,5028,5034,1,0,0,0,5029,5027,1,0,0,0,5030,5031,5,368,0,0,5031,5035,5,1148,0,0,5032,5033,5,14,0,0,5033,5035,5,1148,0,0,5034,5030,1,0,0,0,5034,5032,1,0,0,0,5034,5035,1,0,0,0,5035,5037,1,0,0,0,5036,4985,1,0,0,0,5036,4988,1,0,0,0,5037,429,1,0,0,0,5038,5039,5,51,0,0,5039,5041,5,665,0,0,5040,5042,3,668,334,0,5041,5040,1,0,0,0,5041,5042,1,0,0,0,5042,5043,1,0,0,0,5043,5044,3,588,294,0,5044,431,1,0,0,0,5045,5046,5,72,0,0,5046,5051,3,464,232,0,5047,5048,5,1135,0,0,5048,5050,3,464,232,0,5049,5047,1,0,0,0,5050,5053,1,0,0,0,5051,5049,1,0,0,0,5051,5052,1,0,0,0,5052,5054,1,0,0,0,5053,5051,1,0,0,0,5054,5056,5,118,0,0,5055,5057,7,66,0,0,5056,5055,1,0,0,0,5056,5057,1,0,0,0,5057,5058,1,0,0,0,5058,5059,3,468,234,0,5059,5060,5,175,0,0,5060,5075,3,560,280,0,5061,5073,5,142,0,0,5062,5074,5,529,0,0,5063,5070,3,456,228,0,5064,5066,5,10,0,0,5065,5064,1,0,0,0,5065,5066,1,0,0,0,5066,5067,1,0,0,0,5067,5069,3,456,228,0,5068,5065,1,0,0,0,5069,5072,1,0,0,0,5070,5068,1,0,0,0,5070,5071,1,0,0,0,5071,5074,1,0,0,0,5072,5070,1,0,0,0,5073,5062,1,0,0,0,5073,5063,1,0,0,0,5074,5076,1,0,0,0,5075,5061,1,0,0,0,5075,5076,1,0,0,0,5076,5086,1,0,0,0,5077,5083,5,192,0,0,5078,5079,5,72,0,0,5079,5082,5,120,0,0,5080,5082,3,458,229,0,5081,5078,1,0,0,0,5081,5080,1,0,0,0,5082,5085,1,0,0,0,5083,5081,1,0,0,0,5083,5084,1,0,0,0,5084,5087,1,0,0,0,5085,5083,1,0,0,0,5086,5077,1,0,0,0,5086,5087,1,0,0,0,5087,5094,1,0,0,0,5088,5089,5,12,0,0,5089,5090,3,592,296,0,5090,5091,5,192,0,0,5091,5092,5,596,0,0,5092,5093,3,434,217,0,5093,5095,1,0,0,0,5094,5088,1,0,0,0,5094,5095,1,0,0,0,5095,5106,1,0,0,0,5096,5097,5,72,0,0,5097,5098,3,566,283,0,5098,5099,5,175,0,0,5099,5103,3,560,280,0,5100,5101,5,192,0,0,5101,5102,5,697,0,0,5102,5104,5,120,0,0,5103,5100,1,0,0,0,5103,5104,1,0,0,0,5104,5106,1,0,0,0,5105,5045,1,0,0,0,5105,5096,1,0,0,0,5106,433,1,0,0,0,5107,5116,5,42,0,0,5108,5116,5,529,0,0,5109,5112,5,6,0,0,5110,5111,5,59,0,0,5111,5113,3,566,283,0,5112,5110,1,0,0,0,5112,5113,1,0,0,0,5113,5116,1,0,0,0,5114,5116,3,566,283,0,5115,5107,1,0,0,0,5115,5108,1,0,0,0,5115,5109,1,0,0,0,5115,5114,1,0,0,0,5116,435,1,0,0,0,5117,5118,5,72,0,0,5118,5119,5,566,0,0,5119,5120,5,118,0,0,5120,5121,3,592,296,0,5121,5122,5,175,0,0,5122,5127,3,592,296,0,5123,5124,5,1135,0,0,5124,5126,3,592,296,0,5125,5123,1,0,0,0,5126,5129,1,0,0,0,5127,5125,1,0,0,0,5127,5128,1,0,0,0,5128,5133,1,0,0,0,5129,5127,1,0,0,0,5130,5131,5,192,0,0,5131,5132,5,72,0,0,5132,5134,5,120,0,0,5133,5130,1,0,0,0,5133,5134,1,0,0,0,5134,437,1,0,0,0,5135,5136,5,139,0,0,5136,5137,5,665,0,0,5137,5142,3,470,235,0,5138,5139,5,1135,0,0,5139,5141,3,470,235,0,5140,5138,1,0,0,0,5141,5144,1,0,0,0,5142,5140,1,0,0,0,5142,5143,1,0,0,0,5143,439,1,0,0,0,5144,5142,1,0,0,0,5145,5146,5,147,0,0,5146,5151,3,464,232,0,5147,5148,5,1135,0,0,5148,5150,3,464,232,0,5149,5147,1,0,0,0,5150,5153,1,0,0,0,5151,5149,1,0,0,0,5151,5152,1,0,0,0,5152,5154,1,0,0,0,5153,5151,1,0,0,0,5154,5156,5,118,0,0,5155,5157,7,66,0,0,5156,5155,1,0,0,0,5156,5157,1,0,0,0,5157,5158,1,0,0,0,5158,5159,3,468,234,0,5159,5160,5,68,0,0,5160,5161,3,560,280,0,5161,5182,1,0,0,0,5162,5163,5,147,0,0,5163,5165,5,6,0,0,5164,5166,5,725,0,0,5165,5164,1,0,0,0,5165,5166,1,0,0,0,5166,5167,1,0,0,0,5167,5168,5,1135,0,0,5168,5169,5,72,0,0,5169,5170,5,120,0,0,5170,5171,5,68,0,0,5171,5182,3,560,280,0,5172,5173,5,147,0,0,5173,5174,3,566,283,0,5174,5178,5,68,0,0,5175,5177,3,560,280,0,5176,5175,1,0,0,0,5177,5180,1,0,0,0,5178,5176,1,0,0,0,5178,5179,1,0,0,0,5179,5182,1,0,0,0,5180,5178,1,0,0,0,5181,5145,1,0,0,0,5181,5162,1,0,0,0,5181,5172,1,0,0,0,5182,441,1,0,0,0,5183,5184,5,147,0,0,5184,5185,5,566,0,0,5185,5186,5,118,0,0,5186,5187,3,592,296,0,5187,5188,5,68,0,0,5188,5193,3,592,296,0,5189,5190,5,1135,0,0,5190,5192,3,592,296,0,5191,5189,1,0,0,0,5192,5195,1,0,0,0,5193,5191,1,0,0,0,5193,5194,1,0,0,0,5194,443,1,0,0,0,5195,5193,1,0,0,0,5196,5197,5,153,0,0,5197,5200,5,551,0,0,5198,5199,5,65,0,0,5199,5201,3,592,296,0,5200,5198,1,0,0,0,5200,5201,1,0,0,0,5201,5202,1,0,0,0,5202,5205,5,1124,0,0,5203,5206,3,710,355,0,5204,5206,5,1148,0,0,5205,5203,1,0,0,0,5205,5204,1,0,0,0,5206,445,1,0,0,0,5207,5208,3,592,296,0,5208,5209,3,460,230,0,5209,447,1,0,0,0,5210,5215,3,450,225,0,5211,5212,5,1135,0,0,5212,5214,3,450,225,0,5213,5211,1,0,0,0,5214,5217,1,0,0,0,5215,5213,1,0,0,0,5215,5216,1,0,0,0,5216,449,1,0,0,0,5217,5215,1,0,0,0,5218,5219,3,590,295,0,5219,5220,5,448,0,0,5220,5221,5,19,0,0,5221,5222,5,551,0,0,5222,5223,5,1148,0,0,5223,5244,1,0,0,0,5224,5225,3,590,295,0,5225,5226,5,448,0,0,5226,5227,5,19,0,0,5227,5228,5,991,0,0,5228,5229,5,551,0,0,5229,5230,3,452,226,0,5230,5244,1,0,0,0,5231,5232,3,590,295,0,5232,5233,5,448,0,0,5233,5234,5,19,0,0,5234,5235,5,1148,0,0,5235,5236,3,452,226,0,5236,5244,1,0,0,0,5237,5238,3,590,295,0,5238,5239,5,448,0,0,5239,5240,5,192,0,0,5240,5241,3,454,227,0,5241,5244,1,0,0,0,5242,5244,3,590,295,0,5243,5218,1,0,0,0,5243,5224,1,0,0,0,5243,5231,1,0,0,0,5243,5237,1,0,0,0,5243,5242,1,0,0,0,5244,451,1,0,0,0,5245,5246,5,141,0,0,5246,5248,5,1148,0,0,5247,5245,1,0,0,0,5247,5248,1,0,0,0,5248,5252,1,0,0,0,5249,5250,5,145,0,0,5250,5251,5,35,0,0,5251,5253,5,551,0,0,5252,5249,1,0,0,0,5252,5253,1,0,0,0,5253,453,1,0,0,0,5254,5262,3,610,305,0,5255,5259,7,67,0,0,5256,5260,5,1148,0,0,5257,5258,5,991,0,0,5258,5260,5,551,0,0,5259,5256,1,0,0,0,5259,5257,1,0,0,0,5260,5261,1,0,0,0,5261,5263,3,452,226,0,5262,5255,1,0,0,0,5262,5263,1,0,0,0,5263,5269,1,0,0,0,5264,5265,3,610,305,0,5265,5266,5,187,0,0,5266,5267,3,710,355,0,5267,5269,1,0,0,0,5268,5254,1,0,0,0,5268,5264,1,0,0,0,5269,455,1,0,0,0,5270,5279,5,167,0,0,5271,5279,5,680,0,0,5272,5273,5,358,0,0,5273,5279,5,1148,0,0,5274,5275,5,465,0,0,5275,5279,5,1148,0,0,5276,5277,5,640,0,0,5277,5279,5,1148,0,0,5278,5270,1,0,0,0,5278,5271,1,0,0,0,5278,5272,1,0,0,0,5278,5274,1,0,0,0,5278,5276,1,0,0,0,5279,457,1,0,0,0,5280,5281,5,499,0,0,5281,5289,3,618,309,0,5282,5283,5,502,0,0,5283,5289,3,618,309,0,5284,5285,5,498,0,0,5285,5289,3,618,309,0,5286,5287,5,503,0,0,5287,5289,3,618,309,0,5288,5280,1,0,0,0,5288,5282,1,0,0,0,5288,5284,1,0,0,0,5288,5286,1,0,0,0,5289,459,1,0,0,0,5290,5291,5,551,0,0,5291,5298,5,420,0,0,5292,5299,5,42,0,0,5293,5299,5,519,0,0,5294,5295,5,86,0,0,5295,5296,3,618,309,0,5296,5297,5,691,0,0,5297,5299,1,0,0,0,5298,5292,1,0,0,0,5298,5293,1,0,0,0,5298,5294,1,0,0,0,5298,5299,1,0,0,0,5299,5329,1,0,0,0,5300,5301,5,551,0,0,5301,5304,5,445,0,0,5302,5305,5,42,0,0,5303,5305,3,618,309,0,5304,5302,1,0,0,0,5304,5303,1,0,0,0,5305,5329,1,0,0,0,5306,5307,5,551,0,0,5307,5308,5,595,0,0,5308,5313,5,86,0,0,5309,5314,5,42,0,0,5310,5311,3,618,309,0,5311,5312,5,691,0,0,5312,5314,1,0,0,0,5313,5309,1,0,0,0,5313,5310,1,0,0,0,5314,5329,1,0,0,0,5315,5316,5,551,0,0,5316,5317,5,142,0,0,5317,5319,5,35,0,0,5318,5320,7,68,0,0,5319,5318,1,0,0,0,5319,5320,1,0,0,0,5320,5329,1,0,0,0,5321,5322,5,424,0,0,5322,5329,3,618,309,0,5323,5326,5,552,0,0,5324,5327,3,618,309,0,5325,5327,5,657,0,0,5326,5324,1,0,0,0,5326,5325,1,0,0,0,5327,5329,1,0,0,0,5328,5290,1,0,0,0,5328,5300,1,0,0,0,5328,5306,1,0,0,0,5328,5315,1,0,0,0,5328,5321,1,0,0,0,5328,5323,1,0,0,0,5329,461,1,0,0,0,5330,5331,5,332,0,0,5331,5332,7,69,0,0,5332,463,1,0,0,0,5333,5338,3,466,233,0,5334,5335,5,1133,0,0,5335,5336,3,644,322,0,5336,5337,5,1134,0,0,5337,5339,1,0,0,0,5338,5334,1,0,0,0,5338,5339,1,0,0,0,5339,465,1,0,0,0,5340,5342,5,6,0,0,5341,5343,5,725,0,0,5342,5341,1,0,0,0,5342,5343,1,0,0,0,5343,5434,1,0,0,0,5344,5346,5,7,0,0,5345,5347,5,733,0,0,5346,5345,1,0,0,0,5346,5347,1,0,0,0,5347,5434,1,0,0,0,5348,5356,5,33,0,0,5349,5350,5,649,0,0,5350,5357,5,742,0,0,5351,5357,5,733,0,0,5352,5357,5,671,0,0,5353,5357,5,665,0,0,5354,5357,5,647,0,0,5355,5357,5,596,0,0,5356,5349,1,0,0,0,5356,5351,1,0,0,0,5356,5352,1,0,0,0,5356,5353,1,0,0,0,5356,5354,1,0,0,0,5356,5355,1,0,0,0,5356,5357,1,0,0,0,5357,5434,1,0,0,0,5358,5434,5,44,0,0,5359,5361,5,51,0,0,5360,5362,5,596,0,0,5361,5360,1,0,0,0,5361,5362,1,0,0,0,5362,5434,1,0,0,0,5363,5434,5,415,0,0,5364,5434,5,708,0,0,5365,5434,5,709,0,0,5366,5367,5,72,0,0,5367,5434,5,120,0,0,5368,5434,5,81,0,0,5369,5434,5,85,0,0,5370,5371,5,103,0,0,5371,5434,5,742,0,0,5372,5434,5,726,0,0,5373,5434,5,566,0,0,5374,5434,5,136,0,0,5375,5434,5,727,0,0,5376,5377,5,588,0,0,5377,5434,7,70,0,0,5378,5434,5,152,0,0,5379,5380,5,155,0,0,5380,5434,7,71,0,0,5381,5434,5,739,0,0,5382,5434,5,740,0,0,5383,5434,5,177,0,0,5384,5434,5,184,0,0,5385,5434,5,185,0,0,5386,5434,5,698,0,0,5387,5434,5,699,0,0,5388,5434,5,700,0,0,5389,5434,5,701,0,0,5390,5434,5,702,0,0,5391,5434,5,703,0,0,5392,5434,5,704,0,0,5393,5434,5,705,0,0,5394,5434,5,706,0,0,5395,5434,5,707,0,0,5396,5434,5,710,0,0,5397,5434,5,711,0,0,5398,5434,5,712,0,0,5399,5434,5,713,0,0,5400,5434,5,714,0,0,5401,5434,5,715,0,0,5402,5434,5,716,0,0,5403,5434,5,717,0,0,5404,5434,5,718,0,0,5405,5434,5,719,0,0,5406,5434,5,722,0,0,5407,5434,5,723,0,0,5408,5434,5,724,0,0,5409,5434,5,728,0,0,5410,5434,5,729,0,0,5411,5434,5,730,0,0,5412,5434,5,731,0,0,5413,5434,5,732,0,0,5414,5434,5,735,0,0,5415,5434,5,736,0,0,5416,5434,5,737,0,0,5417,5434,5,158,0,0,5418,5434,5,738,0,0,5419,5434,5,1077,0,0,5420,5434,5,741,0,0,5421,5434,5,743,0,0,5422,5434,5,1088,0,0,5423,5434,5,744,0,0,5424,5434,5,745,0,0,5425,5426,5,102,0,0,5426,5427,5,68,0,0,5427,5434,5,734,0,0,5428,5429,5,152,0,0,5429,5430,5,87,0,0,5430,5434,5,734,0,0,5431,5432,5,720,0,0,5432,5434,5,721,0,0,5433,5340,1,0,0,0,5433,5344,1,0,0,0,5433,5348,1,0,0,0,5433,5358,1,0,0,0,5433,5359,1,0,0,0,5433,5363,1,0,0,0,5433,5364,1,0,0,0,5433,5365,1,0,0,0,5433,5366,1,0,0,0,5433,5368,1,0,0,0,5433,5369,1,0,0,0,5433,5370,1,0,0,0,5433,5372,1,0,0,0,5433,5373,1,0,0,0,5433,5374,1,0,0,0,5433,5375,1,0,0,0,5433,5376,1,0,0,0,5433,5378,1,0,0,0,5433,5379,1,0,0,0,5433,5381,1,0,0,0,5433,5382,1,0,0,0,5433,5383,1,0,0,0,5433,5384,1,0,0,0,5433,5385,1,0,0,0,5433,5386,1,0,0,0,5433,5387,1,0,0,0,5433,5388,1,0,0,0,5433,5389,1,0,0,0,5433,5390,1,0,0,0,5433,5391,1,0,0,0,5433,5392,1,0,0,0,5433,5393,1,0,0,0,5433,5394,1,0,0,0,5433,5395,1,0,0,0,5433,5396,1,0,0,0,5433,5397,1,0,0,0,5433,5398,1,0,0,0,5433,5399,1,0,0,0,5433,5400,1,0,0,0,5433,5401,1,0,0,0,5433,5402,1,0,0,0,5433,5403,1,0,0,0,5433,5404,1,0,0,0,5433,5405,1,0,0,0,5433,5406,1,0,0,0,5433,5407,1,0,0,0,5433,5408,1,0,0,0,5433,5409,1,0,0,0,5433,5410,1,0,0,0,5433,5411,1,0,0,0,5433,5412,1,0,0,0,5433,5413,1,0,0,0,5433,5414,1,0,0,0,5433,5415,1,0,0,0,5433,5416,1,0,0,0,5433,5417,1,0,0,0,5433,5418,1,0,0,0,5433,5419,1,0,0,0,5433,5420,1,0,0,0,5433,5421,1,0,0,0,5433,5422,1,0,0,0,5433,5423,1,0,0,0,5433,5424,1,0,0,0,5433,5425,1,0,0,0,5433,5428,1,0,0,0,5433,5431,1,0,0,0,5434,467,1,0,0,0,5435,5452,5,1117,0,0,5436,5437,5,1117,0,0,5437,5438,5,1132,0,0,5438,5452,5,1117,0,0,5439,5440,3,612,306,0,5440,5441,5,1132,0,0,5441,5442,5,1117,0,0,5442,5452,1,0,0,0,5443,5444,3,612,306,0,5444,5445,5,1132,0,0,5445,5446,3,612,306,0,5446,5452,1,0,0,0,5447,5448,3,612,306,0,5448,5449,3,616,308,0,5449,5452,1,0,0,0,5450,5452,3,612,306,0,5451,5435,1,0,0,0,5451,5436,1,0,0,0,5451,5439,1,0,0,0,5451,5443,1,0,0,0,5451,5447,1,0,0,0,5451,5450,1,0,0,0,5452,469,1,0,0,0,5453,5454,3,592,296,0,5454,5455,5,175,0,0,5455,5456,3,590,295,0,5456,471,1,0,0,0,5457,5459,5,9,0,0,5458,5460,7,72,0,0,5459,5458,1,0,0,0,5459,5460,1,0,0,0,5460,5461,1,0,0,0,5461,5462,7,54,0,0,5462,5480,3,648,324,0,5463,5464,5,184,0,0,5464,5465,5,76,0,0,5465,5466,5,118,0,0,5466,5471,3,570,285,0,5467,5468,5,1135,0,0,5468,5470,3,570,285,0,5469,5467,1,0,0,0,5470,5473,1,0,0,0,5471,5469,1,0,0,0,5471,5472,1,0,0,0,5472,5478,1,0,0,0,5473,5471,1,0,0,0,5474,5475,5,192,0,0,5475,5476,3,618,309,0,5476,5477,5,18,0,0,5477,5479,1,0,0,0,5478,5474,1,0,0,0,5478,5479,1,0,0,0,5479,5481,1,0,0,0,5480,5463,1,0,0,0,5480,5481,1,0,0,0,5481,5493,1,0,0,0,5482,5483,5,51,0,0,5483,5484,5,76,0,0,5484,5485,5,118,0,0,5485,5490,3,570,285,0,5486,5487,5,1135,0,0,5487,5489,3,570,285,0,5488,5486,1,0,0,0,5489,5492,1,0,0,0,5490,5488,1,0,0,0,5490,5491,1,0,0,0,5491,5494,1,0,0,0,5492,5490,1,0,0,0,5493,5482,1,0,0,0,5493,5494,1,0,0,0,5494,473,1,0,0,0,5495,5496,5,26,0,0,5496,5497,5,172,0,0,5497,5501,3,648,324,0,5498,5500,3,482,241,0,5499,5498,1,0,0,0,5500,5503,1,0,0,0,5501,5499,1,0,0,0,5501,5502,1,0,0,0,5502,475,1,0,0,0,5503,5501,1,0,0,0,5504,5505,5,356,0,0,5505,5506,5,172,0,0,5506,5508,3,648,324,0,5507,5509,7,73,0,0,5508,5507,1,0,0,0,5508,5509,1,0,0,0,5509,477,1,0,0,0,5510,5512,5,119,0,0,5511,5513,7,72,0,0,5512,5511,1,0,0,0,5512,5513,1,0,0,0,5513,5514,1,0,0,0,5514,5515,7,54,0,0,5515,5516,3,648,324,0,5516,479,1,0,0,0,5517,5519,5,580,0,0,5518,5520,7,72,0,0,5519,5518,1,0,0,0,5519,5520,1,0,0,0,5520,5521,1,0,0,0,5521,5522,5,172,0,0,5522,5524,3,648,324,0,5523,5525,5,568,0,0,5524,5523,1,0,0,0,5524,5525,1,0,0,0,5525,5527,1,0,0,0,5526,5528,5,422,0,0,5527,5526,1,0,0,0,5527,5528,1,0,0,0,5528,5530,1,0,0,0,5529,5531,5,666,0,0,5530,5529,1,0,0,0,5530,5531,1,0,0,0,5531,481,1,0,0,0,5532,5533,5,65,0,0,5533,5540,5,664,0,0,5534,5540,5,568,0,0,5535,5540,5,425,0,0,5536,5540,5,504,0,0,5537,5540,5,422,0,0,5538,5540,5,354,0,0,5539,5532,1,0,0,0,5539,5534,1,0,0,0,5539,5535,1,0,0,0,5539,5536,1,0,0,0,5539,5537,1,0,0,0,5539,5538,1,0,0,0,5540,483,1,0,0,0,5541,5543,5,33,0,0,5542,5544,5,335,0,0,5543,5542,1,0,0,0,5543,5544,1,0,0,0,5544,5545,1,0,0,0,5545,5547,5,437,0,0,5546,5548,3,670,335,0,5547,5546,1,0,0,0,5547,5548,1,0,0,0,5548,5549,1,0,0,0,5549,5550,3,612,306,0,5550,5551,5,594,0,0,5551,5552,7,74,0,0,5552,5553,5,619,0,0,5553,5554,5,1148,0,0,5554,485,1,0,0,0,5555,5556,5,456,0,0,5556,5557,5,554,0,0,5557,5558,3,612,306,0,5558,5559,5,619,0,0,5559,5560,5,1148,0,0,5560,487,1,0,0,0,5561,5562,5,661,0,0,5562,5563,5,554,0,0,5563,5564,3,612,306,0,5564,489,1,0,0,0,5565,5566,5,153,0,0,5566,5567,3,494,247,0,5567,5570,7,75,0,0,5568,5571,3,716,358,0,5569,5571,5,118,0,0,5570,5568,1,0,0,0,5570,5569,1,0,0,0,5571,5581,1,0,0,0,5572,5573,5,1135,0,0,5573,5574,3,494,247,0,5574,5577,7,75,0,0,5575,5578,3,716,358,0,5576,5578,5,118,0,0,5577,5575,1,0,0,0,5577,5576,1,0,0,0,5578,5580,1,0,0,0,5579,5572,1,0,0,0,5580,5583,1,0,0,0,5581,5579,1,0,0,0,5581,5582,1,0,0,0,5582,5618,1,0,0,0,5583,5581,1,0,0,0,5584,5585,5,153,0,0,5585,5588,3,58,29,0,5586,5589,3,596,298,0,5587,5589,5,42,0,0,5588,5586,1,0,0,0,5588,5587,1,0,0,0,5589,5618,1,0,0,0,5590,5591,5,153,0,0,5591,5598,5,517,0,0,5592,5595,3,596,298,0,5593,5594,5,27,0,0,5594,5596,3,598,299,0,5595,5593,1,0,0,0,5595,5596,1,0,0,0,5596,5599,1,0,0,0,5597,5599,5,42,0,0,5598,5592,1,0,0,0,5598,5597,1,0,0,0,5599,5618,1,0,0,0,5600,5618,3,444,222,0,5601,5618,3,318,159,0,5602,5618,3,316,158,0,5603,5604,5,153,0,0,5604,5605,3,552,276,0,5605,5606,7,75,0,0,5606,5614,3,716,358,0,5607,5608,5,1135,0,0,5608,5609,3,552,276,0,5609,5610,7,75,0,0,5610,5611,3,716,358,0,5611,5613,1,0,0,0,5612,5607,1,0,0,0,5613,5616,1,0,0,0,5614,5612,1,0,0,0,5614,5615,1,0,0,0,5615,5618,1,0,0,0,5616,5614,1,0,0,0,5617,5565,1,0,0,0,5617,5584,1,0,0,0,5617,5590,1,0,0,0,5617,5600,1,0,0,0,5617,5601,1,0,0,0,5617,5602,1,0,0,0,5617,5603,1,0,0,0,5618,491,1,0,0,0,5619,5620,5,155,0,0,5620,5621,7,56,0,0,5621,5781,5,476,0,0,5622,5623,5,155,0,0,5623,5624,7,76,0,0,5624,5627,5,416,0,0,5625,5626,5,80,0,0,5626,5628,5,1148,0,0,5627,5625,1,0,0,0,5627,5628,1,0,0,0,5628,5631,1,0,0,0,5629,5630,5,68,0,0,5630,5632,3,618,309,0,5631,5629,1,0,0,0,5631,5632,1,0,0,0,5632,5640,1,0,0,0,5633,5637,5,99,0,0,5634,5635,3,618,309,0,5635,5636,5,1135,0,0,5636,5638,1,0,0,0,5637,5634,1,0,0,0,5637,5638,1,0,0,0,5638,5639,1,0,0,0,5639,5641,3,618,309,0,5640,5633,1,0,0,0,5640,5641,1,0,0,0,5641,5781,1,0,0,0,5642,5643,5,155,0,0,5643,5645,3,496,248,0,5644,5646,3,498,249,0,5645,5644,1,0,0,0,5645,5646,1,0,0,0,5646,5781,1,0,0,0,5647,5649,5,155,0,0,5648,5650,5,436,0,0,5649,5648,1,0,0,0,5649,5650,1,0,0,0,5650,5651,1,0,0,0,5651,5652,7,41,0,0,5652,5653,7,77,0,0,5653,5656,3,554,277,0,5654,5655,7,77,0,0,5655,5657,3,612,306,0,5656,5654,1,0,0,0,5656,5657,1,0,0,0,5657,5659,1,0,0,0,5658,5660,3,498,249,0,5659,5658,1,0,0,0,5659,5660,1,0,0,0,5660,5781,1,0,0,0,5661,5662,5,155,0,0,5662,5663,5,33,0,0,5663,5665,7,0,0,0,5664,5666,3,670,335,0,5665,5664,1,0,0,0,5665,5666,1,0,0,0,5666,5667,1,0,0,0,5667,5781,3,572,286,0,5668,5669,5,155,0,0,5669,5670,5,33,0,0,5670,5671,7,78,0,0,5671,5781,3,552,276,0,5672,5673,5,155,0,0,5673,5674,5,33,0,0,5674,5675,7,79,0,0,5675,5781,3,554,277,0,5676,5677,5,155,0,0,5677,5678,5,33,0,0,5678,5679,5,177,0,0,5679,5781,3,578,289,0,5680,5681,5,155,0,0,5681,5682,5,33,0,0,5682,5683,5,665,0,0,5683,5781,3,592,296,0,5684,5685,5,155,0,0,5685,5686,5,409,0,0,5686,5687,3,600,300,0,5687,5688,7,80,0,0,5688,5781,1,0,0,0,5689,5690,5,155,0,0,5690,5781,3,500,250,0,5691,5692,5,155,0,0,5692,5700,7,81,0,0,5693,5697,5,99,0,0,5694,5695,3,618,309,0,5695,5696,5,1135,0,0,5696,5698,1,0,0,0,5697,5694,1,0,0,0,5697,5698,1,0,0,0,5698,5699,1,0,0,0,5699,5701,3,618,309,0,5700,5693,1,0,0,0,5700,5701,1,0,0,0,5701,5781,1,0,0,0,5702,5703,5,155,0,0,5703,5704,5,290,0,0,5704,5705,5,1133,0,0,5705,5706,5,1117,0,0,5706,5707,5,1134,0,0,5707,5781,7,81,0,0,5708,5709,5,155,0,0,5709,5712,3,502,251,0,5710,5711,7,77,0,0,5711,5713,3,612,306,0,5712,5710,1,0,0,0,5712,5713,1,0,0,0,5713,5715,1,0,0,0,5714,5716,3,498,249,0,5715,5714,1,0,0,0,5715,5716,1,0,0,0,5716,5781,1,0,0,0,5717,5718,5,155,0,0,5718,5719,7,82,0,0,5719,5720,5,364,0,0,5720,5781,3,552,276,0,5721,5722,5,155,0,0,5722,5725,5,440,0,0,5723,5724,5,65,0,0,5724,5726,3,592,296,0,5725,5723,1,0,0,0,5725,5726,1,0,0,0,5726,5781,1,0,0,0,5727,5728,5,155,0,0,5728,5729,7,83,0,0,5729,5730,7,77,0,0,5730,5733,3,554,277,0,5731,5732,7,77,0,0,5732,5734,3,612,306,0,5733,5731,1,0,0,0,5733,5734,1,0,0,0,5734,5737,1,0,0,0,5735,5736,5,190,0,0,5736,5738,3,716,358,0,5737,5735,1,0,0,0,5737,5738,1,0,0,0,5738,5781,1,0,0,0,5739,5740,5,155,0,0,5740,5741,5,539,0,0,5741,5744,5,742,0,0,5742,5743,7,77,0,0,5743,5745,3,612,306,0,5744,5742,1,0,0,0,5744,5745,1,0,0,0,5745,5747,1,0,0,0,5746,5748,3,498,249,0,5747,5746,1,0,0,0,5747,5748,1,0,0,0,5748,5781,1,0,0,0,5749,5750,5,155,0,0,5750,5751,5,564,0,0,5751,5756,3,504,252,0,5752,5753,5,1135,0,0,5753,5755,3,504,252,0,5754,5752,1,0,0,0,5755,5758,1,0,0,0,5756,5754,1,0,0,0,5756,5757,1,0,0,0,5757,5762,1,0,0,0,5758,5756,1,0,0,0,5759,5760,5,65,0,0,5760,5761,5,567,0,0,5761,5763,3,618,309,0,5762,5759,1,0,0,0,5762,5763,1,0,0,0,5763,5764,1,0,0,0,5764,5768,5,99,0,0,5765,5766,3,618,309,0,5766,5767,5,1135,0,0,5767,5769,1,0,0,0,5768,5765,1,0,0,0,5768,5769,1,0,0,0,5769,5770,1,0,0,0,5770,5771,3,618,309,0,5771,5781,1,0,0,0,5772,5773,5,155,0,0,5773,5774,5,614,0,0,5774,5778,5,634,0,0,5775,5776,5,65,0,0,5776,5777,5,355,0,0,5777,5779,5,1148,0,0,5778,5775,1,0,0,0,5778,5779,1,0,0,0,5779,5781,1,0,0,0,5780,5619,1,0,0,0,5780,5622,1,0,0,0,5780,5642,1,0,0,0,5780,5647,1,0,0,0,5780,5661,1,0,0,0,5780,5668,1,0,0,0,5780,5672,1,0,0,0,5780,5676,1,0,0,0,5780,5680,1,0,0,0,5780,5684,1,0,0,0,5780,5689,1,0,0,0,5780,5691,1,0,0,0,5780,5702,1,0,0,0,5780,5708,1,0,0,0,5780,5717,1,0,0,0,5780,5721,1,0,0,0,5780,5727,1,0,0,0,5780,5739,1,0,0,0,5780,5749,1,0,0,0,5780,5772,1,0,0,0,5781,493,1,0,0,0,5782,5793,5,1159,0,0,5783,5793,5,1160,0,0,5784,5785,5,1137,0,0,5785,5787,5,1137,0,0,5786,5784,1,0,0,0,5786,5787,1,0,0,0,5787,5788,1,0,0,0,5788,5790,7,84,0,0,5789,5786,1,0,0,0,5789,5790,1,0,0,0,5790,5791,1,0,0,0,5791,5793,3,612,306,0,5792,5782,1,0,0,0,5792,5783,1,0,0,0,5792,5789,1,0,0,0,5793,495,1,0,0,0,5794,5795,5,25,0,0,5795,5808,5,153,0,0,5796,5808,5,844,0,0,5797,5808,5,40,0,0,5798,5808,5,151,0,0,5799,5800,5,437,0,0,5800,5808,5,634,0,0,5801,5802,5,131,0,0,5802,5808,5,634,0,0,5803,5805,7,55,0,0,5804,5803,1,0,0,0,5804,5805,1,0,0,0,5805,5806,1,0,0,0,5806,5808,7,85,0,0,5807,5794,1,0,0,0,5807,5796,1,0,0,0,5807,5797,1,0,0,0,5807,5798,1,0,0,0,5807,5799,1,0,0,0,5807,5801,1,0,0,0,5807,5804,1,0,0,0,5808,497,1,0,0,0,5809,5810,5,98,0,0,5810,5814,5,1148,0,0,5811,5812,5,190,0,0,5812,5814,3,716,358,0,5813,5809,1,0,0,0,5813,5811,1,0,0,0,5814,499,1,0,0,0,5815,5817,5,636,0,0,5816,5815,1,0,0,0,5816,5817,1,0,0,0,5817,5818,1,0,0,0,5818,5833,5,410,0,0,5819,5820,5,477,0,0,5820,5833,5,634,0,0,5821,5833,5,556,0,0,5822,5833,5,725,0,0,5823,5825,5,436,0,0,5824,5823,1,0,0,0,5824,5825,1,0,0,0,5825,5826,1,0,0,0,5826,5833,5,563,0,0,5827,5833,5,565,0,0,5828,5829,5,614,0,0,5829,5833,5,447,0,0,5830,5833,5,339,0,0,5831,5833,5,383,0,0,5832,5816,1,0,0,0,5832,5819,1,0,0,0,5832,5821,1,0,0,0,5832,5822,1,0,0,0,5832,5824,1,0,0,0,5832,5827,1,0,0,0,5832,5828,1,0,0,0,5832,5830,1,0,0,0,5832,5831,1,0,0,0,5833,501,1,0,0,0,5834,5843,5,416,0,0,5835,5836,5,172,0,0,5836,5843,5,634,0,0,5837,5839,5,436,0,0,5838,5837,1,0,0,0,5838,5839,1,0,0,0,5839,5840,1,0,0,0,5840,5843,5,742,0,0,5841,5843,5,655,0,0,5842,5834,1,0,0,0,5842,5835,1,0,0,0,5842,5838,1,0,0,0,5842,5841,1,0,0,0,5843,503,1,0,0,0,5844,5857,5,6,0,0,5845,5846,5,347,0,0,5846,5857,5,461,0,0,5847,5848,5,382,0,0,5848,5857,5,645,0,0,5849,5857,5,385,0,0,5850,5857,5,463,0,0,5851,5857,5,792,0,0,5852,5853,5,544,0,0,5853,5857,5,426,0,0,5854,5857,5,621,0,0,5855,5857,5,644,0,0,5856,5844,1,0,0,0,5856,5845,1,0,0,0,5856,5847,1,0,0,0,5856,5849,1,0,0,0,5856,5850,1,0,0,0,5856,5851,1,0,0,0,5856,5852,1,0,0,0,5856,5854,1,0,0,0,5856,5855,1,0,0,0,5857,505,1,0,0,0,5858,5859,5,345,0,0,5859,5860,5,1148,0,0,5860,507,1,0,0,0,5861,5862,5,351,0,0,5862,5863,5,81,0,0,5863,5868,3,520,260,0,5864,5865,5,1135,0,0,5865,5867,3,520,260,0,5866,5864,1,0,0,0,5867,5870,1,0,0,0,5868,5866,1,0,0,0,5868,5869,1,0,0,0,5869,5878,1,0,0,0,5870,5868,1,0,0,0,5871,5872,5,129,0,0,5872,5875,5,1133,0,0,5873,5876,3,644,322,0,5874,5876,5,6,0,0,5875,5873,1,0,0,0,5875,5874,1,0,0,0,5876,5877,1,0,0,0,5877,5879,5,1134,0,0,5878,5871,1,0,0,0,5878,5879,1,0,0,0,5879,5880,1,0,0,0,5880,5881,5,80,0,0,5881,5882,3,612,306,0,5882,509,1,0,0,0,5883,5885,5,432,0,0,5884,5886,7,72,0,0,5885,5884,1,0,0,0,5885,5886,1,0,0,0,5886,5887,1,0,0,0,5887,5892,3,522,261,0,5888,5889,5,1135,0,0,5889,5891,3,522,261,0,5890,5888,1,0,0,0,5891,5894,1,0,0,0,5892,5890,1,0,0,0,5892,5893,1,0,0,0,5893,511,1,0,0,0,5894,5892,1,0,0,0,5895,5897,5,93,0,0,5896,5898,7,86,0,0,5897,5896,1,0,0,0,5897,5898,1,0,0,0,5898,5899,1,0,0,0,5899,5900,3,716,358,0,5900,513,1,0,0,0,5901,5902,5,102,0,0,5902,5903,5,81,0,0,5903,5904,5,87,0,0,5904,5905,5,351,0,0,5905,5910,3,526,263,0,5906,5907,5,1135,0,0,5907,5909,3,526,263,0,5908,5906,1,0,0,0,5909,5912,1,0,0,0,5910,5908,1,0,0,0,5910,5911,1,0,0,0,5911,515,1,0,0,0,5912,5910,1,0,0,0,5913,5914,5,589,0,0,5914,5915,5,567,0,0,5915,5916,5,351,0,0,5916,517,1,0,0,0,5917,5918,5,739,0,0,5918,519,1,0,0,0,5919,5927,3,554,277,0,5920,5922,7,20,0,0,5921,5920,1,0,0,0,5921,5922,1,0,0,0,5922,5923,1,0,0,0,5923,5924,5,1133,0,0,5924,5925,3,580,290,0,5925,5926,5,1134,0,0,5926,5928,1,0,0,0,5927,5921,1,0,0,0,5927,5928,1,0,0,0,5928,521,1,0,0,0,5929,5948,5,394,0,0,5930,5948,5,447,0,0,5931,5933,7,87,0,0,5932,5931,1,0,0,0,5932,5933,1,0,0,0,5933,5934,1,0,0,0,5934,5948,5,476,0,0,5935,5948,5,540,0,0,5936,5948,5,725,0,0,5937,5938,5,567,0,0,5938,5948,5,351,0,0,5939,5948,5,634,0,0,5940,5948,5,667,0,0,5941,5945,5,742,0,0,5942,5943,5,192,0,0,5943,5944,5,134,0,0,5944,5946,5,103,0,0,5945,5942,1,0,0,0,5945,5946,1,0,0,0,5946,5948,1,0,0,0,5947,5929,1,0,0,0,5947,5930,1,0,0,0,5947,5932,1,0,0,0,5947,5935,1,0,0,0,5947,5936,1,0,0,0,5947,5937,1,0,0,0,5947,5939,1,0,0,0,5947,5940,1,0,0,0,5947,5941,1,0,0,0,5948,5962,1,0,0,0,5949,5950,5,574,0,0,5950,5952,5,476,0,0,5951,5953,3,356,178,0,5952,5951,1,0,0,0,5952,5953,1,0,0,0,5953,5962,1,0,0,0,5954,5956,7,54,0,0,5955,5957,3,648,324,0,5956,5955,1,0,0,0,5956,5957,1,0,0,0,5957,5959,1,0,0,0,5958,5960,3,524,262,0,5959,5958,1,0,0,0,5959,5960,1,0,0,0,5960,5962,1,0,0,0,5961,5947,1,0,0,0,5961,5949,1,0,0,0,5961,5954,1,0,0,0,5962,523,1,0,0,0,5963,5964,5,192,0,0,5964,5965,5,134,0,0,5965,5969,5,103,0,0,5966,5967,5,65,0,0,5967,5969,5,421,0,0,5968,5963,1,0,0,0,5968,5966,1,0,0,0,5969,525,1,0,0,0,5970,5978,3,554,277,0,5971,5972,5,129,0,0,5972,5975,5,1133,0,0,5973,5976,3,644,322,0,5974,5976,5,6,0,0,5975,5973,1,0,0,0,5975,5974,1,0,0,0,5976,5977,1,0,0,0,5977,5979,5,1134,0,0,5978,5971,1,0,0,0,5978,5979,1,0,0,0,5979,5987,1,0,0,0,5980,5982,7,20,0,0,5981,5980,1,0,0,0,5981,5982,1,0,0,0,5982,5983,1,0,0,0,5983,5984,5,1133,0,0,5984,5985,3,580,290,0,5985,5986,5,1134,0,0,5986,5988,1,0,0,0,5987,5981,1,0,0,0,5987,5988,1,0,0,0,5988,5991,1,0,0,0,5989,5990,5,78,0,0,5990,5992,5,470,0,0,5991,5989,1,0,0,0,5991,5992,1,0,0,0,5992,527,1,0,0,0,5993,5994,7,88,0,0,5994,5997,3,554,277,0,5995,5998,3,612,306,0,5996,5998,5,1148,0,0,5997,5995,1,0,0,0,5997,5996,1,0,0,0,5997,5998,1,0,0,0,5998,529,1,0,0,0,5999,6003,7,88,0,0,6e3,6001,7,89,0,0,6001,6002,5,1124,0,0,6002,6004,7,90,0,0,6003,6e3,1,0,0,0,6003,6004,1,0,0,0,6004,6005,1,0,0,0,6005,6006,3,550,275,0,6006,531,1,0,0,0,6007,6008,5,444,0,0,6008,6009,5,1148,0,0,6009,533,1,0,0,0,6010,6011,5,186,0,0,6011,6012,3,612,306,0,6012,535,1,0,0,0,6013,6021,5,156,0,0,6014,6016,5,162,0,0,6015,6017,5,669,0,0,6016,6015,1,0,0,0,6016,6017,1,0,0,0,6017,6018,1,0,0,0,6018,6022,3,622,311,0,6019,6022,5,1156,0,0,6020,6022,5,1157,0,0,6021,6014,1,0,0,0,6021,6019,1,0,0,0,6021,6020,1,0,0,0,6022,6032,1,0,0,0,6023,6024,5,153,0,0,6024,6029,3,540,270,0,6025,6026,5,1135,0,0,6026,6028,3,540,270,0,6027,6025,1,0,0,0,6028,6031,1,0,0,0,6029,6027,1,0,0,0,6029,6030,1,0,0,0,6030,6033,1,0,0,0,6031,6029,1,0,0,0,6032,6023,1,0,0,0,6032,6033,1,0,0,0,6033,537,1,0,0,0,6034,6042,5,143,0,0,6035,6037,5,162,0,0,6036,6038,5,669,0,0,6037,6036,1,0,0,0,6037,6038,1,0,0,0,6038,6039,1,0,0,0,6039,6043,3,622,311,0,6040,6043,5,1156,0,0,6041,6043,5,1157,0,0,6042,6035,1,0,0,0,6042,6040,1,0,0,0,6042,6041,1,0,0,0,6042,6043,1,0,0,0,6043,6053,1,0,0,0,6044,6045,5,153,0,0,6045,6050,3,540,270,0,6046,6047,5,1135,0,0,6047,6049,3,540,270,0,6048,6046,1,0,0,0,6049,6052,1,0,0,0,6050,6048,1,0,0,0,6050,6051,1,0,0,0,6051,6054,1,0,0,0,6052,6050,1,0,0,0,6053,6044,1,0,0,0,6053,6054,1,0,0,0,6054,539,1,0,0,0,6055,6056,7,91,0,0,6056,6061,5,1124,0,0,6057,6062,3,622,311,0,6058,6062,5,1149,0,0,6059,6062,3,594,297,0,6060,6062,3,614,307,0,6061,6057,1,0,0,0,6061,6058,1,0,0,0,6061,6059,1,0,0,0,6061,6060,1,0,0,0,6062,541,1,0,0,0,6063,6065,5,192,0,0,6064,6066,5,571,0,0,6065,6064,1,0,0,0,6065,6066,1,0,0,0,6066,6067,1,0,0,0,6067,6072,3,48,24,0,6068,6069,5,1135,0,0,6069,6071,3,48,24,0,6070,6068,1,0,0,0,6071,6074,1,0,0,0,6072,6070,1,0,0,0,6072,6073,1,0,0,0,6073,543,1,0,0,0,6074,6072,1,0,0,0,6075,6076,5,172,0,0,6076,6078,3,554,277,0,6077,6079,3,228,114,0,6078,6077,1,0,0,0,6078,6079,1,0,0,0,6079,6081,1,0,0,0,6080,6082,3,294,147,0,6081,6080,1,0,0,0,6081,6082,1,0,0,0,6082,545,1,0,0,0,6083,6085,5,71,0,0,6084,6086,7,92,0,0,6085,6084,1,0,0,0,6085,6086,1,0,0,0,6086,6087,1,0,0,0,6087,6119,5,48,0,0,6088,6089,3,494,247,0,6089,6090,5,1124,0,0,6090,6098,7,93,0,0,6091,6092,5,1135,0,0,6092,6093,3,494,247,0,6093,6094,5,1124,0,0,6094,6095,7,93,0,0,6095,6097,1,0,0,0,6096,6091,1,0,0,0,6097,6100,1,0,0,0,6098,6096,1,0,0,0,6098,6099,1,0,0,0,6099,6120,1,0,0,0,6100,6098,1,0,0,0,6101,6104,5,29,0,0,6102,6105,3,618,309,0,6103,6105,3,494,247,0,6104,6102,1,0,0,0,6104,6103,1,0,0,0,6105,6106,1,0,0,0,6106,6107,3,494,247,0,6107,6108,5,1124,0,0,6108,6116,3,548,274,0,6109,6110,5,1135,0,0,6110,6111,3,494,247,0,6111,6112,5,1124,0,0,6112,6113,3,548,274,0,6113,6115,1,0,0,0,6114,6109,1,0,0,0,6115,6118,1,0,0,0,6116,6114,1,0,0,0,6116,6117,1,0,0,0,6117,6120,1,0,0,0,6118,6116,1,0,0,0,6119,6088,1,0,0,0,6119,6101,1,0,0,0,6120,547,1,0,0,0,6121,6122,7,94,0,0,6122,549,1,0,0,0,6123,6129,3,198,99,0,6124,6129,3,184,92,0,6125,6129,3,190,95,0,6126,6129,3,196,98,0,6127,6129,3,200,100,0,6128,6123,1,0,0,0,6128,6124,1,0,0,0,6128,6125,1,0,0,0,6128,6126,1,0,0,0,6128,6127,1,0,0,0,6129,6134,1,0,0,0,6130,6131,5,65,0,0,6131,6132,5,376,0,0,6132,6134,3,612,306,0,6133,6128,1,0,0,0,6133,6130,1,0,0,0,6134,551,1,0,0,0,6135,6139,3,612,306,0,6136,6140,5,1155,0,0,6137,6138,5,1132,0,0,6138,6140,3,612,306,0,6139,6136,1,0,0,0,6139,6137,1,0,0,0,6139,6140,1,0,0,0,6140,553,1,0,0,0,6141,6142,3,552,276,0,6142,555,1,0,0,0,6143,6148,3,554,277,0,6144,6145,5,1135,0,0,6145,6147,3,554,277,0,6146,6144,1,0,0,0,6147,6150,1,0,0,0,6148,6146,1,0,0,0,6148,6149,1,0,0,0,6149,557,1,0,0,0,6150,6148,1,0,0,0,6151,6154,3,592,296,0,6152,6154,3,568,284,0,6153,6151,1,0,0,0,6153,6152,1,0,0,0,6154,559,1,0,0,0,6155,6160,3,558,279,0,6156,6157,5,1135,0,0,6157,6159,3,558,279,0,6158,6156,1,0,0,0,6159,6162,1,0,0,0,6160,6158,1,0,0,0,6160,6161,1,0,0,0,6161,561,1,0,0,0,6162,6160,1,0,0,0,6163,6168,3,564,282,0,6164,6165,5,1135,0,0,6165,6167,3,564,282,0,6166,6164,1,0,0,0,6167,6170,1,0,0,0,6168,6166,1,0,0,0,6168,6169,1,0,0,0,6169,563,1,0,0,0,6170,6168,1,0,0,0,6171,6172,3,612,306,0,6172,565,1,0,0,0,6173,6178,3,568,284,0,6174,6175,5,1135,0,0,6175,6177,3,568,284,0,6176,6174,1,0,0,0,6177,6180,1,0,0,0,6178,6176,1,0,0,0,6178,6179,1,0,0,0,6179,567,1,0,0,0,6180,6178,1,0,0,0,6181,6182,3,564,282,0,6182,569,1,0,0,0,6183,6188,3,612,306,0,6184,6186,3,616,308,0,6185,6187,3,616,308,0,6186,6185,1,0,0,0,6186,6187,1,0,0,0,6187,6189,1,0,0,0,6188,6184,1,0,0,0,6188,6189,1,0,0,0,6189,6198,1,0,0,0,6190,6192,9,0,0,0,6191,6190,1,0,0,0,6191,6192,1,0,0,0,6192,6193,1,0,0,0,6193,6195,3,616,308,0,6194,6196,3,616,308,0,6195,6194,1,0,0,0,6195,6196,1,0,0,0,6196,6198,1,0,0,0,6197,6183,1,0,0,0,6197,6191,1,0,0,0,6198,571,1,0,0,0,6199,6200,3,612,306,0,6200,573,1,0,0,0,6201,6202,3,612,306,0,6202,575,1,0,0,0,6203,6204,3,612,306,0,6204,577,1,0,0,0,6205,6206,3,552,276,0,6206,579,1,0,0,0,6207,6212,3,574,287,0,6208,6209,5,1135,0,0,6209,6211,3,574,287,0,6210,6208,1,0,0,0,6211,6214,1,0,0,0,6212,6210,1,0,0,0,6212,6213,1,0,0,0,6213,581,1,0,0,0,6214,6212,1,0,0,0,6215,6218,3,612,306,0,6216,6218,5,1148,0,0,6217,6215,1,0,0,0,6217,6216,1,0,0,0,6218,6223,1,0,0,0,6219,6220,5,1133,0,0,6220,6221,3,618,309,0,6221,6222,5,1134,0,0,6222,6224,1,0,0,0,6223,6219,1,0,0,0,6223,6224,1,0,0,0,6224,6227,1,0,0,0,6225,6227,3,716,358,0,6226,6217,1,0,0,0,6226,6225,1,0,0,0,6227,6229,1,0,0,0,6228,6230,7,48,0,0,6229,6228,1,0,0,0,6229,6230,1,0,0,0,6230,583,1,0,0,0,6231,6236,5,1148,0,0,6232,6236,5,1156,0,0,6233,6236,5,697,0,0,6234,6236,3,746,373,0,6235,6231,1,0,0,0,6235,6232,1,0,0,0,6235,6233,1,0,0,0,6235,6234,1,0,0,0,6236,585,1,0,0,0,6237,6238,7,95,0,0,6238,587,1,0,0,0,6239,6244,3,592,296,0,6240,6241,5,1135,0,0,6241,6243,3,592,296,0,6242,6240,1,0,0,0,6243,6246,1,0,0,0,6244,6242,1,0,0,0,6244,6245,1,0,0,0,6245,589,1,0,0,0,6246,6244,1,0,0,0,6247,6253,3,584,292,0,6248,6249,3,584,292,0,6249,6250,3,586,293,0,6250,6253,1,0,0,0,6251,6253,3,60,30,0,6252,6247,1,0,0,0,6252,6248,1,0,0,0,6252,6251,1,0,0,0,6253,591,1,0,0,0,6254,6255,3,590,295,0,6255,593,1,0,0,0,6256,6257,7,96,0,0,6257,595,1,0,0,0,6258,6263,5,226,0,0,6259,6263,3,736,368,0,6260,6263,5,1148,0,0,6261,6263,5,1145,0,0,6262,6258,1,0,0,0,6262,6259,1,0,0,0,6262,6260,1,0,0,0,6262,6261,1,0,0,0,6263,597,1,0,0,0,6264,6267,3,612,306,0,6265,6267,5,1148,0,0,6266,6264,1,0,0,0,6266,6265,1,0,0,0,6267,599,1,0,0,0,6268,6272,3,602,301,0,6269,6272,5,1156,0,0,6270,6272,5,1148,0,0,6271,6268,1,0,0,0,6271,6269,1,0,0,0,6271,6270,1,0,0,0,6272,601,1,0,0,0,6273,6274,7,97,0,0,6274,603,1,0,0,0,6275,6276,3,618,309,0,6276,6277,5,1121,0,0,6277,6278,3,618,309,0,6278,6279,5,1121,0,0,6279,6280,3,618,309,0,6280,6281,5,1121,0,0,6281,6282,3,618,309,0,6282,6283,5,1121,0,0,6283,6289,3,618,309,0,6284,6285,5,1144,0,0,6285,6286,3,618,309,0,6286,6287,5,1121,0,0,6287,6288,3,618,309,0,6288,6290,1,0,0,0,6289,6284,1,0,0,0,6290,6291,1,0,0,0,6291,6289,1,0,0,0,6291,6292,1,0,0,0,6292,605,1,0,0,0,6293,6300,3,608,304,0,6294,6295,5,1135,0,0,6295,6298,3,608,304,0,6296,6297,5,1135,0,0,6297,6299,3,618,309,0,6298,6296,1,0,0,0,6298,6299,1,0,0,0,6299,6301,1,0,0,0,6300,6294,1,0,0,0,6300,6301,1,0,0,0,6301,607,1,0,0,0,6302,6310,5,1148,0,0,6303,6310,5,1153,0,0,6304,6306,5,1150,0,0,6305,6304,1,0,0,0,6306,6307,1,0,0,0,6307,6305,1,0,0,0,6307,6308,1,0,0,0,6308,6310,1,0,0,0,6309,6302,1,0,0,0,6309,6303,1,0,0,0,6309,6305,1,0,0,0,6310,609,1,0,0,0,6311,6314,3,612,306,0,6312,6314,5,1148,0,0,6313,6311,1,0,0,0,6313,6312,1,0,0,0,6314,611,1,0,0,0,6315,6319,3,614,307,0,6316,6319,5,1145,0,0,6317,6319,5,1148,0,0,6318,6315,1,0,0,0,6318,6316,1,0,0,0,6318,6317,1,0,0,0,6319,613,1,0,0,0,6320,6330,5,1156,0,0,6321,6330,3,736,368,0,6322,6330,3,738,369,0,6323,6330,3,602,301,0,6324,6330,3,740,370,0,6325,6330,3,742,371,0,6326,6330,3,744,372,0,6327,6330,3,746,373,0,6328,6330,3,708,354,0,6329,6320,1,0,0,0,6329,6321,1,0,0,0,6329,6322,1,0,0,0,6329,6323,1,0,0,0,6329,6324,1,0,0,0,6329,6325,1,0,0,0,6329,6326,1,0,0,0,6329,6327,1,0,0,0,6329,6328,1,0,0,0,6330,615,1,0,0,0,6331,6335,5,1155,0,0,6332,6333,5,1132,0,0,6333,6335,3,612,306,0,6334,6331,1,0,0,0,6334,6332,1,0,0,0,6335,617,1,0,0,0,6336,6337,7,98,0,0,6337,619,1,0,0,0,6338,6341,5,1146,0,0,6339,6341,3,618,309,0,6340,6338,1,0,0,0,6340,6339,1,0,0,0,6341,621,1,0,0,0,6342,6344,5,1154,0,0,6343,6342,1,0,0,0,6343,6344,1,0,0,0,6344,6345,1,0,0,0,6345,6348,5,1148,0,0,6346,6348,5,1147,0,0,6347,6343,1,0,0,0,6347,6346,1,0,0,0,6348,6350,1,0,0,0,6349,6351,5,1148,0,0,6350,6349,1,0,0,0,6351,6352,1,0,0,0,6352,6350,1,0,0,0,6352,6353,1,0,0,0,6353,6366,1,0,0,0,6354,6356,5,1154,0,0,6355,6354,1,0,0,0,6355,6356,1,0,0,0,6356,6357,1,0,0,0,6357,6360,5,1148,0,0,6358,6360,5,1147,0,0,6359,6355,1,0,0,0,6359,6358,1,0,0,0,6360,6363,1,0,0,0,6361,6362,5,27,0,0,6362,6364,3,598,299,0,6363,6361,1,0,0,0,6363,6364,1,0,0,0,6364,6366,1,0,0,0,6365,6347,1,0,0,0,6365,6359,1,0,0,0,6366,623,1,0,0,0,6367,6368,7,99,0,0,6368,625,1,0,0,0,6369,6371,5,1154,0,0,6370,6369,1,0,0,0,6370,6371,1,0,0,0,6371,6372,1,0,0,0,6372,6373,5,1150,0,0,6373,627,1,0,0,0,6374,6376,5,114,0,0,6375,6374,1,0,0,0,6375,6376,1,0,0,0,6376,6377,1,0,0,0,6377,6378,7,100,0,0,6378,629,1,0,0,0,6379,6392,3,622,311,0,6380,6392,3,618,309,0,6381,6382,5,1121,0,0,6382,6392,3,618,309,0,6383,6392,3,626,313,0,6384,6392,3,624,312,0,6385,6392,5,1151,0,0,6386,6392,5,1153,0,0,6387,6389,5,114,0,0,6388,6387,1,0,0,0,6388,6389,1,0,0,0,6389,6390,1,0,0,0,6390,6392,7,100,0,0,6391,6379,1,0,0,0,6391,6380,1,0,0,0,6391,6381,1,0,0,0,6391,6383,1,0,0,0,6391,6384,1,0,0,0,6391,6385,1,0,0,0,6391,6386,1,0,0,0,6391,6388,1,0,0,0,6392,631,1,0,0,0,6393,6395,7,101,0,0,6394,6396,5,238,0,0,6395,6394,1,0,0,0,6395,6396,1,0,0,0,6396,6398,1,0,0,0,6397,6399,3,638,319,0,6398,6397,1,0,0,0,6398,6399,1,0,0,0,6399,6401,1,0,0,0,6400,6402,5,226,0,0,6401,6400,1,0,0,0,6401,6402,1,0,0,0,6402,6406,1,0,0,0,6403,6404,3,58,29,0,6404,6405,3,596,298,0,6405,6407,1,0,0,0,6406,6403,1,0,0,0,6406,6407,1,0,0,0,6407,6411,1,0,0,0,6408,6409,5,27,0,0,6409,6412,3,598,299,0,6410,6412,5,226,0,0,6411,6408,1,0,0,0,6411,6410,1,0,0,0,6411,6412,1,0,0,0,6412,6520,1,0,0,0,6413,6414,5,225,0,0,6414,6415,7,102,0,0,6415,6417,5,238,0,0,6416,6418,3,638,319,0,6417,6416,1,0,0,0,6417,6418,1,0,0,0,6418,6420,1,0,0,0,6419,6421,5,226,0,0,6420,6419,1,0,0,0,6420,6421,1,0,0,0,6421,6520,1,0,0,0,6422,6423,5,225,0,0,6423,6425,7,103,0,0,6424,6426,3,638,319,0,6425,6424,1,0,0,0,6425,6426,1,0,0,0,6426,6428,1,0,0,0,6427,6429,5,226,0,0,6428,6427,1,0,0,0,6428,6429,1,0,0,0,6429,6520,1,0,0,0,6430,6431,5,518,0,0,6431,6433,5,223,0,0,6432,6434,3,638,319,0,6433,6432,1,0,0,0,6433,6434,1,0,0,0,6434,6436,1,0,0,0,6435,6437,5,226,0,0,6436,6435,1,0,0,0,6436,6437,1,0,0,0,6437,6520,1,0,0,0,6438,6440,7,104,0,0,6439,6441,3,638,319,0,6440,6439,1,0,0,0,6440,6441,1,0,0,0,6441,6445,1,0,0,0,6442,6444,7,105,0,0,6443,6442,1,0,0,0,6444,6447,1,0,0,0,6445,6443,1,0,0,0,6445,6446,1,0,0,0,6446,6520,1,0,0,0,6447,6445,1,0,0,0,6448,6450,5,208,0,0,6449,6451,3,640,320,0,6450,6449,1,0,0,0,6450,6451,1,0,0,0,6451,6455,1,0,0,0,6452,6454,7,105,0,0,6453,6452,1,0,0,0,6454,6457,1,0,0,0,6455,6453,1,0,0,0,6455,6456,1,0,0,0,6456,6520,1,0,0,0,6457,6455,1,0,0,0,6458,6460,5,209,0,0,6459,6461,5,210,0,0,6460,6459,1,0,0,0,6460,6461,1,0,0,0,6461,6463,1,0,0,0,6462,6464,3,640,320,0,6463,6462,1,0,0,0,6463,6464,1,0,0,0,6464,6468,1,0,0,0,6465,6467,7,105,0,0,6466,6465,1,0,0,0,6467,6470,1,0,0,0,6468,6466,1,0,0,0,6468,6469,1,0,0,0,6469,6520,1,0,0,0,6470,6468,1,0,0,0,6471,6473,7,106,0,0,6472,6474,3,642,321,0,6473,6472,1,0,0,0,6473,6474,1,0,0,0,6474,6478,1,0,0,0,6475,6477,7,105,0,0,6476,6475,1,0,0,0,6477,6480,1,0,0,0,6478,6476,1,0,0,0,6478,6479,1,0,0,0,6479,6520,1,0,0,0,6480,6478,1,0,0,0,6481,6520,7,107,0,0,6482,6484,7,108,0,0,6483,6485,3,638,319,0,6484,6483,1,0,0,0,6484,6485,1,0,0,0,6485,6520,1,0,0,0,6486,6487,7,109,0,0,6487,6489,3,634,317,0,6488,6490,5,226,0,0,6489,6488,1,0,0,0,6489,6490,1,0,0,0,6490,6494,1,0,0,0,6491,6492,3,58,29,0,6492,6493,3,596,298,0,6493,6495,1,0,0,0,6494,6491,1,0,0,0,6494,6495,1,0,0,0,6495,6520,1,0,0,0,6496,6499,7,110,0,0,6497,6498,5,1012,0,0,6498,6500,3,618,309,0,6499,6497,1,0,0,0,6499,6500,1,0,0,0,6500,6520,1,0,0,0,6501,6503,5,231,0,0,6502,6504,5,223,0,0,6503,6502,1,0,0,0,6503,6504,1,0,0,0,6504,6506,1,0,0,0,6505,6507,5,226,0,0,6506,6505,1,0,0,0,6506,6507,1,0,0,0,6507,6511,1,0,0,0,6508,6509,3,58,29,0,6509,6510,3,596,298,0,6510,6512,1,0,0,0,6511,6508,1,0,0,0,6511,6512,1,0,0,0,6512,6515,1,0,0,0,6513,6514,5,27,0,0,6514,6516,3,598,299,0,6515,6513,1,0,0,0,6515,6516,1,0,0,0,6516,6520,1,0,0,0,6517,6518,5,231,0,0,6518,6520,5,227,0,0,6519,6393,1,0,0,0,6519,6413,1,0,0,0,6519,6422,1,0,0,0,6519,6430,1,0,0,0,6519,6438,1,0,0,0,6519,6448,1,0,0,0,6519,6458,1,0,0,0,6519,6471,1,0,0,0,6519,6481,1,0,0,0,6519,6482,1,0,0,0,6519,6486,1,0,0,0,6519,6496,1,0,0,0,6519,6501,1,0,0,0,6519,6517,1,0,0,0,6520,633,1,0,0,0,6521,6522,5,1133,0,0,6522,6527,5,1148,0,0,6523,6524,5,1135,0,0,6524,6526,5,1148,0,0,6525,6523,1,0,0,0,6526,6529,1,0,0,0,6527,6525,1,0,0,0,6527,6528,1,0,0,0,6528,6530,1,0,0,0,6529,6527,1,0,0,0,6530,6531,5,1134,0,0,6531,635,1,0,0,0,6532,6534,7,111,0,0,6533,6535,3,638,319,0,6534,6533,1,0,0,0,6534,6535,1,0,0,0,6535,6555,1,0,0,0,6536,6538,5,222,0,0,6537,6539,3,638,319,0,6538,6537,1,0,0,0,6538,6539,1,0,0,0,6539,6543,1,0,0,0,6540,6541,3,58,29,0,6541,6542,3,596,298,0,6542,6544,1,0,0,0,6543,6540,1,0,0,0,6543,6544,1,0,0,0,6544,6555,1,0,0,0,6545,6555,7,112,0,0,6546,6548,7,113,0,0,6547,6549,3,642,321,0,6548,6547,1,0,0,0,6548,6549,1,0,0,0,6549,6555,1,0,0,0,6550,6552,7,114,0,0,6551,6553,7,115,0,0,6552,6551,1,0,0,0,6552,6553,1,0,0,0,6553,6555,1,0,0,0,6554,6532,1,0,0,0,6554,6536,1,0,0,0,6554,6545,1,0,0,0,6554,6546,1,0,0,0,6554,6550,1,0,0,0,6555,6557,1,0,0,0,6556,6558,5,11,0,0,6557,6556,1,0,0,0,6557,6558,1,0,0,0,6558,637,1,0,0,0,6559,6560,5,1133,0,0,6560,6561,3,618,309,0,6561,6562,5,1134,0,0,6562,639,1,0,0,0,6563,6564,5,1133,0,0,6564,6565,3,618,309,0,6565,6566,5,1135,0,0,6566,6567,3,618,309,0,6567,6568,5,1134,0,0,6568,641,1,0,0,0,6569,6570,5,1133,0,0,6570,6573,3,618,309,0,6571,6572,5,1135,0,0,6572,6574,3,618,309,0,6573,6571,1,0,0,0,6573,6574,1,0,0,0,6574,6575,1,0,0,0,6575,6576,5,1134,0,0,6576,643,1,0,0,0,6577,6582,3,612,306,0,6578,6579,5,1135,0,0,6579,6581,3,612,306,0,6580,6578,1,0,0,0,6581,6584,1,0,0,0,6582,6580,1,0,0,0,6582,6583,1,0,0,0,6583,645,1,0,0,0,6584,6582,1,0,0,0,6585,6590,3,570,285,0,6586,6587,5,1135,0,0,6587,6589,3,570,285,0,6588,6586,1,0,0,0,6589,6592,1,0,0,0,6590,6588,1,0,0,0,6590,6591,1,0,0,0,6591,647,1,0,0,0,6592,6590,1,0,0,0,6593,6598,3,554,277,0,6594,6595,5,1135,0,0,6595,6597,3,554,277,0,6596,6594,1,0,0,0,6597,6600,1,0,0,0,6598,6596,1,0,0,0,6598,6599,1,0,0,0,6599,649,1,0,0,0,6600,6598,1,0,0,0,6601,6602,5,1133,0,0,6602,6607,3,582,291,0,6603,6604,5,1135,0,0,6604,6606,3,582,291,0,6605,6603,1,0,0,0,6606,6609,1,0,0,0,6607,6605,1,0,0,0,6607,6608,1,0,0,0,6608,6610,1,0,0,0,6609,6607,1,0,0,0,6610,6611,5,1134,0,0,6611,651,1,0,0,0,6612,6617,3,716,358,0,6613,6614,5,1135,0,0,6614,6616,3,716,358,0,6615,6613,1,0,0,0,6616,6619,1,0,0,0,6617,6615,1,0,0,0,6617,6618,1,0,0,0,6618,653,1,0,0,0,6619,6617,1,0,0,0,6620,6625,3,666,333,0,6621,6622,5,1135,0,0,6622,6624,3,666,333,0,6623,6621,1,0,0,0,6624,6627,1,0,0,0,6625,6623,1,0,0,0,6625,6626,1,0,0,0,6626,655,1,0,0,0,6627,6625,1,0,0,0,6628,6633,3,630,315,0,6629,6630,5,1135,0,0,6630,6632,3,630,315,0,6631,6629,1,0,0,0,6632,6635,1,0,0,0,6633,6631,1,0,0,0,6633,6634,1,0,0,0,6634,657,1,0,0,0,6635,6633,1,0,0,0,6636,6641,5,1148,0,0,6637,6638,5,1135,0,0,6638,6640,5,1148,0,0,6639,6637,1,0,0,0,6640,6643,1,0,0,0,6641,6639,1,0,0,0,6641,6642,1,0,0,0,6642,659,1,0,0,0,6643,6641,1,0,0,0,6644,6649,5,1159,0,0,6645,6646,5,1135,0,0,6646,6648,5,1159,0,0,6647,6645,1,0,0,0,6648,6651,1,0,0,0,6649,6647,1,0,0,0,6649,6650,1,0,0,0,6650,661,1,0,0,0,6651,6649,1,0,0,0,6652,6679,5,116,0,0,6653,6654,5,23,0,0,6654,6655,5,1133,0,0,6655,6656,3,716,358,0,6656,6657,5,12,0,0,6657,6658,3,636,318,0,6658,6659,5,1134,0,0,6659,6679,1,0,0,0,6660,6662,3,722,361,0,6661,6660,1,0,0,0,6661,6662,1,0,0,0,6662,6663,1,0,0,0,6663,6679,3,630,315,0,6664,6668,3,664,332,0,6665,6666,5,118,0,0,6666,6667,5,184,0,0,6667,6669,3,664,332,0,6668,6665,1,0,0,0,6668,6669,1,0,0,0,6669,6679,1,0,0,0,6670,6671,5,1133,0,0,6671,6672,3,716,358,0,6672,6673,5,1134,0,0,6673,6679,1,0,0,0,6674,6675,5,1133,0,0,6675,6676,3,552,276,0,6676,6677,5,1134,0,0,6677,6679,1,0,0,0,6678,6652,1,0,0,0,6678,6653,1,0,0,0,6678,6661,1,0,0,0,6678,6664,1,0,0,0,6678,6670,1,0,0,0,6678,6674,1,0,0,0,6679,663,1,0,0,0,6680,6686,7,116,0,0,6681,6683,5,1133,0,0,6682,6684,3,618,309,0,6683,6682,1,0,0,0,6683,6684,1,0,0,0,6684,6685,1,0,0,0,6685,6687,5,1134,0,0,6686,6681,1,0,0,0,6686,6687,1,0,0,0,6687,6695,1,0,0,0,6688,6689,5,323,0,0,6689,6691,5,1133,0,0,6690,6692,3,618,309,0,6691,6690,1,0,0,0,6691,6692,1,0,0,0,6692,6693,1,0,0,0,6693,6695,5,1134,0,0,6694,6680,1,0,0,0,6694,6688,1,0,0,0,6695,665,1,0,0,0,6696,6699,3,716,358,0,6697,6699,5,42,0,0,6698,6696,1,0,0,0,6698,6697,1,0,0,0,6699,667,1,0,0,0,6700,6701,5,77,0,0,6701,6702,5,60,0,0,6702,669,1,0,0,0,6703,6704,5,77,0,0,6704,6705,5,114,0,0,6705,6706,5,60,0,0,6706,671,1,0,0,0,6707,6708,5,123,0,0,6708,6709,5,141,0,0,6709,673,1,0,0,0,6710,6711,5,674,0,0,6711,6714,3,618,309,0,6712,6714,5,527,0,0,6713,6710,1,0,0,0,6713,6712,1,0,0,0,6714,675,1,0,0,0,6715,6734,3,678,339,0,6716,6734,3,686,343,0,6717,6734,3,688,344,0,6718,6719,3,708,354,0,6719,6721,5,1133,0,0,6720,6722,3,712,356,0,6721,6720,1,0,0,0,6721,6722,1,0,0,0,6722,6723,1,0,0,0,6723,6724,5,1134,0,0,6724,6734,1,0,0,0,6725,6726,3,552,276,0,6726,6728,5,1133,0,0,6727,6729,3,712,356,0,6728,6727,1,0,0,0,6728,6729,1,0,0,0,6729,6730,1,0,0,0,6730,6731,5,1134,0,0,6731,6734,1,0,0,0,6732,6734,3,710,355,0,6733,6715,1,0,0,0,6733,6716,1,0,0,0,6733,6717,1,0,0,0,6733,6718,1,0,0,0,6733,6725,1,0,0,0,6733,6732,1,0,0,0,6734,677,1,0,0,0,6735,6738,7,117,0,0,6736,6737,5,1133,0,0,6737,6739,5,1134,0,0,6738,6736,1,0,0,0,6738,6739,1,0,0,0,6739,6915,1,0,0,0,6740,6915,3,60,30,0,6741,6742,5,32,0,0,6742,6743,5,1133,0,0,6743,6744,3,716,358,0,6744,6745,5,1135,0,0,6745,6746,3,636,318,0,6746,6747,5,1134,0,0,6747,6915,1,0,0,0,6748,6749,5,32,0,0,6749,6750,5,1133,0,0,6750,6751,3,716,358,0,6751,6752,5,187,0,0,6752,6753,3,596,298,0,6753,6754,5,1134,0,0,6754,6915,1,0,0,0,6755,6756,5,23,0,0,6756,6757,5,1133,0,0,6757,6758,3,716,358,0,6758,6759,5,12,0,0,6759,6760,3,636,318,0,6760,6761,5,1134,0,0,6761,6915,1,0,0,0,6762,6763,5,188,0,0,6763,6764,5,1133,0,0,6764,6765,3,570,285,0,6765,6766,5,1134,0,0,6766,6915,1,0,0,0,6767,6768,5,22,0,0,6768,6770,3,716,358,0,6769,6771,3,680,340,0,6770,6769,1,0,0,0,6771,6772,1,0,0,0,6772,6770,1,0,0,0,6772,6773,1,0,0,0,6773,6776,1,0,0,0,6774,6775,5,53,0,0,6775,6777,3,714,357,0,6776,6774,1,0,0,0,6776,6777,1,0,0,0,6777,6778,1,0,0,0,6778,6779,5,407,0,0,6779,6915,1,0,0,0,6780,6782,5,22,0,0,6781,6783,3,680,340,0,6782,6781,1,0,0,0,6783,6784,1,0,0,0,6784,6782,1,0,0,0,6784,6785,1,0,0,0,6785,6788,1,0,0,0,6786,6787,5,53,0,0,6787,6789,3,714,357,0,6788,6786,1,0,0,0,6788,6789,1,0,0,0,6789,6790,1,0,0,0,6790,6791,5,407,0,0,6791,6915,1,0,0,0,6792,6793,5,222,0,0,6793,6794,5,1133,0,0,6794,6797,3,712,356,0,6795,6796,5,187,0,0,6796,6798,3,596,298,0,6797,6795,1,0,0,0,6797,6798,1,0,0,0,6798,6799,1,0,0,0,6799,6800,5,1134,0,0,6800,6915,1,0,0,0,6801,6802,5,324,0,0,6802,6805,5,1133,0,0,6803,6806,3,622,311,0,6804,6806,3,716,358,0,6805,6803,1,0,0,0,6805,6804,1,0,0,0,6806,6807,1,0,0,0,6807,6810,5,80,0,0,6808,6811,3,622,311,0,6809,6811,3,716,358,0,6810,6808,1,0,0,0,6810,6809,1,0,0,0,6811,6812,1,0,0,0,6812,6813,5,1134,0,0,6813,6915,1,0,0,0,6814,6815,7,118,0,0,6815,6818,5,1133,0,0,6816,6819,3,622,311,0,6817,6819,3,716,358,0,6818,6816,1,0,0,0,6818,6817,1,0,0,0,6819,6820,1,0,0,0,6820,6823,5,68,0,0,6821,6824,3,618,309,0,6822,6824,3,716,358,0,6823,6821,1,0,0,0,6823,6822,1,0,0,0,6824,6830,1,0,0,0,6825,6828,5,65,0,0,6826,6829,3,618,309,0,6827,6829,3,716,358,0,6828,6826,1,0,0,0,6828,6827,1,0,0,0,6829,6831,1,0,0,0,6830,6825,1,0,0,0,6830,6831,1,0,0,0,6831,6832,1,0,0,0,6832,6833,5,1134,0,0,6833,6915,1,0,0,0,6834,6835,5,328,0,0,6835,6836,5,1133,0,0,6836,6839,7,119,0,0,6837,6840,3,622,311,0,6838,6840,3,716,358,0,6839,6837,1,0,0,0,6839,6838,1,0,0,0,6839,6840,1,0,0,0,6840,6841,1,0,0,0,6841,6844,5,68,0,0,6842,6845,3,622,311,0,6843,6845,3,716,358,0,6844,6842,1,0,0,0,6844,6843,1,0,0,0,6845,6846,1,0,0,0,6846,6847,5,1134,0,0,6847,6915,1,0,0,0,6848,6849,5,328,0,0,6849,6852,5,1133,0,0,6850,6853,3,622,311,0,6851,6853,3,716,358,0,6852,6850,1,0,0,0,6852,6851,1,0,0,0,6853,6854,1,0,0,0,6854,6857,5,68,0,0,6855,6858,3,622,311,0,6856,6858,3,716,358,0,6857,6855,1,0,0,0,6857,6856,1,0,0,0,6858,6859,1,0,0,0,6859,6860,5,1134,0,0,6860,6915,1,0,0,0,6861,6862,5,1103,0,0,6862,6865,5,1133,0,0,6863,6866,3,622,311,0,6864,6866,3,716,358,0,6865,6863,1,0,0,0,6865,6864,1,0,0,0,6866,6873,1,0,0,0,6867,6868,5,12,0,0,6868,6869,7,120,0,0,6869,6870,5,1133,0,0,6870,6871,3,618,309,0,6871,6872,5,1134,0,0,6872,6874,1,0,0,0,6873,6867,1,0,0,0,6873,6874,1,0,0,0,6874,6876,1,0,0,0,6875,6877,3,682,341,0,6876,6875,1,0,0,0,6876,6877,1,0,0,0,6877,6878,1,0,0,0,6878,6879,5,1134,0,0,6879,6915,1,0,0,0,6880,6881,5,321,0,0,6881,6882,5,1133,0,0,6882,6883,3,70,35,0,6883,6886,5,68,0,0,6884,6887,3,622,311,0,6885,6887,3,716,358,0,6886,6884,1,0,0,0,6886,6885,1,0,0,0,6887,6888,1,0,0,0,6888,6889,5,1134,0,0,6889,6915,1,0,0,0,6890,6891,5,900,0,0,6891,6892,5,1133,0,0,6892,6893,7,121,0,0,6893,6894,5,1135,0,0,6894,6895,3,622,311,0,6895,6896,5,1134,0,0,6896,6915,1,0,0,0,6897,6898,5,282,0,0,6898,6899,5,1133,0,0,6899,6900,3,716,358,0,6900,6901,5,1135,0,0,6901,6904,3,716,358,0,6902,6903,5,593,0,0,6903,6905,3,636,318,0,6904,6902,1,0,0,0,6904,6905,1,0,0,0,6905,6907,1,0,0,0,6906,6908,3,266,133,0,6907,6906,1,0,0,0,6907,6908,1,0,0,0,6908,6910,1,0,0,0,6909,6911,3,268,134,0,6910,6909,1,0,0,0,6910,6911,1,0,0,0,6911,6912,1,0,0,0,6912,6913,5,1134,0,0,6913,6915,1,0,0,0,6914,6735,1,0,0,0,6914,6740,1,0,0,0,6914,6741,1,0,0,0,6914,6748,1,0,0,0,6914,6755,1,0,0,0,6914,6762,1,0,0,0,6914,6767,1,0,0,0,6914,6780,1,0,0,0,6914,6792,1,0,0,0,6914,6801,1,0,0,0,6914,6814,1,0,0,0,6914,6834,1,0,0,0,6914,6848,1,0,0,0,6914,6861,1,0,0,0,6914,6880,1,0,0,0,6914,6890,1,0,0,0,6914,6897,1,0,0,0,6915,679,1,0,0,0,6916,6917,5,189,0,0,6917,6918,3,714,357,0,6918,6919,5,174,0,0,6919,6920,3,714,357,0,6920,681,1,0,0,0,6921,6922,5,472,0,0,6922,6927,3,684,342,0,6923,6924,5,1135,0,0,6924,6926,3,684,342,0,6925,6923,1,0,0,0,6926,6929,1,0,0,0,6927,6925,1,0,0,0,6927,6928,1,0,0,0,6928,6936,1,0,0,0,6929,6927,1,0,0,0,6930,6931,5,472,0,0,6931,6932,3,618,309,0,6932,6933,5,1121,0,0,6933,6934,3,618,309,0,6934,6936,1,0,0,0,6935,6921,1,0,0,0,6935,6930,1,0,0,0,6936,683,1,0,0,0,6937,6939,3,618,309,0,6938,6940,7,122,0,0,6939,6938,1,0,0,0,6939,6940,1,0,0,0,6940,685,1,0,0,0,6941,6942,7,123,0,0,6942,6944,5,1133,0,0,6943,6945,7,44,0,0,6944,6943,1,0,0,0,6944,6945,1,0,0,0,6945,6946,1,0,0,0,6946,6947,3,714,357,0,6947,6949,5,1134,0,0,6948,6950,3,690,345,0,6949,6948,1,0,0,0,6949,6950,1,0,0,0,6950,7001,1,0,0,0,6951,6952,5,290,0,0,6952,6960,5,1133,0,0,6953,6961,5,1117,0,0,6954,6956,5,6,0,0,6955,6954,1,0,0,0,6955,6956,1,0,0,0,6956,6957,1,0,0,0,6957,6961,3,714,357,0,6958,6959,5,49,0,0,6959,6961,3,712,356,0,6960,6953,1,0,0,0,6960,6955,1,0,0,0,6960,6958,1,0,0,0,6961,6962,1,0,0,0,6962,6964,5,1134,0,0,6963,6965,3,690,345,0,6964,6963,1,0,0,0,6964,6965,1,0,0,0,6965,7001,1,0,0,0,6966,6967,7,124,0,0,6967,6969,5,1133,0,0,6968,6970,5,6,0,0,6969,6968,1,0,0,0,6969,6970,1,0,0,0,6970,6971,1,0,0,0,6971,6972,3,714,357,0,6972,6974,5,1134,0,0,6973,6975,3,690,345,0,6974,6973,1,0,0,0,6974,6975,1,0,0,0,6975,7001,1,0,0,0,6976,6977,5,294,0,0,6977,6979,5,1133,0,0,6978,6980,5,49,0,0,6979,6978,1,0,0,0,6979,6980,1,0,0,0,6980,6981,1,0,0,0,6981,6992,3,712,356,0,6982,6983,5,124,0,0,6983,6984,5,19,0,0,6984,6989,3,230,115,0,6985,6986,5,1135,0,0,6986,6988,3,230,115,0,6987,6985,1,0,0,0,6988,6991,1,0,0,0,6989,6987,1,0,0,0,6989,6990,1,0,0,0,6990,6993,1,0,0,0,6991,6989,1,0,0,0,6992,6982,1,0,0,0,6992,6993,1,0,0,0,6993,6996,1,0,0,0,6994,6995,5,154,0,0,6995,6997,5,1148,0,0,6996,6994,1,0,0,0,6996,6997,1,0,0,0,6997,6998,1,0,0,0,6998,6999,5,1134,0,0,6999,7001,1,0,0,0,7e3,6941,1,0,0,0,7e3,6951,1,0,0,0,7e3,6966,1,0,0,0,7e3,6976,1,0,0,0,7001,687,1,0,0,0,7002,7003,7,125,0,0,7003,7004,5,1133,0,0,7004,7007,3,716,358,0,7005,7006,5,1135,0,0,7006,7008,3,618,309,0,7007,7005,1,0,0,0,7007,7008,1,0,0,0,7008,7011,1,0,0,0,7009,7010,5,1135,0,0,7010,7012,3,618,309,0,7011,7009,1,0,0,0,7011,7012,1,0,0,0,7012,7013,1,0,0,0,7013,7014,5,1134,0,0,7014,7015,3,690,345,0,7015,7041,1,0,0,0,7016,7017,7,126,0,0,7017,7018,5,1133,0,0,7018,7019,3,716,358,0,7019,7020,5,1134,0,0,7020,7021,3,690,345,0,7021,7041,1,0,0,0,7022,7023,7,127,0,0,7023,7024,5,1133,0,0,7024,7025,5,1134,0,0,7025,7041,3,690,345,0,7026,7027,5,301,0,0,7027,7028,5,1133,0,0,7028,7029,3,716,358,0,7029,7030,5,1135,0,0,7030,7031,3,618,309,0,7031,7032,5,1134,0,0,7032,7033,3,690,345,0,7033,7041,1,0,0,0,7034,7035,5,300,0,0,7035,7036,5,1133,0,0,7036,7037,3,618,309,0,7037,7038,5,1134,0,0,7038,7039,3,690,345,0,7039,7041,1,0,0,0,7040,7002,1,0,0,0,7040,7016,1,0,0,0,7040,7022,1,0,0,0,7040,7026,1,0,0,0,7040,7034,1,0,0,0,7041,689,1,0,0,0,7042,7048,5,128,0,0,7043,7044,5,1133,0,0,7044,7045,3,692,346,0,7045,7046,5,1134,0,0,7046,7049,1,0,0,0,7047,7049,3,694,347,0,7048,7043,1,0,0,0,7048,7047,1,0,0,0,7049,691,1,0,0,0,7050,7052,3,694,347,0,7051,7050,1,0,0,0,7051,7052,1,0,0,0,7052,7054,1,0,0,0,7053,7055,3,706,353,0,7054,7053,1,0,0,0,7054,7055,1,0,0,0,7055,7057,1,0,0,0,7056,7058,3,228,114,0,7057,7056,1,0,0,0,7057,7058,1,0,0,0,7058,7060,1,0,0,0,7059,7061,3,696,348,0,7060,7059,1,0,0,0,7060,7061,1,0,0,0,7061,693,1,0,0,0,7062,7063,3,612,306,0,7063,695,1,0,0,0,7064,7065,3,698,349,0,7065,7066,3,700,350,0,7066,697,1,0,0,0,7067,7068,7,128,0,0,7068,699,1,0,0,0,7069,7072,3,704,352,0,7070,7072,3,702,351,0,7071,7069,1,0,0,0,7071,7070,1,0,0,0,7072,701,1,0,0,0,7073,7074,5,16,0,0,7074,7075,3,704,352,0,7075,7076,5,10,0,0,7076,7077,3,704,352,0,7077,703,1,0,0,0,7078,7079,5,35,0,0,7079,7086,5,600,0,0,7080,7081,5,657,0,0,7081,7086,7,129,0,0,7082,7083,3,716,358,0,7083,7084,7,129,0,0,7084,7086,1,0,0,0,7085,7078,1,0,0,0,7085,7080,1,0,0,0,7085,7082,1,0,0,0,7086,705,1,0,0,0,7087,7088,5,129,0,0,7088,7089,5,19,0,0,7089,7094,3,716,358,0,7090,7091,5,1135,0,0,7091,7093,3,716,358,0,7092,7090,1,0,0,0,7093,7096,1,0,0,0,7094,7092,1,0,0,0,7094,7095,1,0,0,0,7095,707,1,0,0,0,7096,7094,1,0,0,0,7097,7122,3,748,374,0,7098,7122,5,747,0,0,7099,7122,5,317,0,0,7100,7122,5,313,0,0,7101,7122,5,314,0,0,7102,7122,5,315,0,0,7103,7122,5,318,0,0,7104,7122,5,319,0,0,7105,7122,5,320,0,0,7106,7122,5,77,0,0,7107,7122,5,85,0,0,7108,7122,5,316,0,0,7109,7122,5,322,0,0,7110,7122,5,508,0,0,7111,7122,5,323,0,0,7112,7122,5,140,0,0,7113,7122,5,141,0,0,7114,7122,5,325,0,0,7115,7122,5,326,0,0,7116,7122,5,327,0,0,7117,7122,5,328,0,0,7118,7122,5,329,0,0,7119,7122,5,330,0,0,7120,7122,5,331,0,0,7121,7097,1,0,0,0,7121,7098,1,0,0,0,7121,7099,1,0,0,0,7121,7100,1,0,0,0,7121,7101,1,0,0,0,7121,7102,1,0,0,0,7121,7103,1,0,0,0,7121,7104,1,0,0,0,7121,7105,1,0,0,0,7121,7106,1,0,0,0,7121,7107,1,0,0,0,7121,7108,1,0,0,0,7121,7109,1,0,0,0,7121,7110,1,0,0,0,7121,7111,1,0,0,0,7121,7112,1,0,0,0,7121,7113,1,0,0,0,7121,7114,1,0,0,0,7121,7115,1,0,0,0,7121,7116,1,0,0,0,7121,7117,1,0,0,0,7121,7118,1,0,0,0,7121,7119,1,0,0,0,7121,7120,1,0,0,0,7122,709,1,0,0,0,7123,7124,7,130,0,0,7124,7125,5,1133,0,0,7125,7126,3,714,357,0,7126,7127,5,1134,0,0,7127,711,1,0,0,0,7128,7133,3,630,315,0,7129,7133,3,570,285,0,7130,7133,3,676,338,0,7131,7133,3,716,358,0,7132,7128,1,0,0,0,7132,7129,1,0,0,0,7132,7130,1,0,0,0,7132,7131,1,0,0,0,7133,7143,1,0,0,0,7134,7139,5,1135,0,0,7135,7140,3,630,315,0,7136,7140,3,570,285,0,7137,7140,3,676,338,0,7138,7140,3,716,358,0,7139,7135,1,0,0,0,7139,7136,1,0,0,0,7139,7137,1,0,0,0,7139,7138,1,0,0,0,7140,7142,1,0,0,0,7141,7134,1,0,0,0,7142,7145,1,0,0,0,7143,7141,1,0,0,0,7143,7144,1,0,0,0,7144,713,1,0,0,0,7145,7143,1,0,0,0,7146,7151,3,630,315,0,7147,7151,3,570,285,0,7148,7151,3,676,338,0,7149,7151,3,716,358,0,7150,7146,1,0,0,0,7150,7147,1,0,0,0,7150,7148,1,0,0,0,7150,7149,1,0,0,0,7151,715,1,0,0,0,7152,7153,6,358,-1,0,7153,7154,7,131,0,0,7154,7164,3,716,358,4,7155,7156,3,718,359,0,7156,7158,5,88,0,0,7157,7159,5,114,0,0,7158,7157,1,0,0,0,7158,7159,1,0,0,0,7159,7160,1,0,0,0,7160,7161,7,132,0,0,7161,7164,1,0,0,0,7162,7164,3,718,359,0,7163,7152,1,0,0,0,7163,7155,1,0,0,0,7163,7162,1,0,0,0,7164,7171,1,0,0,0,7165,7166,10,3,0,0,7166,7167,3,726,363,0,7167,7168,3,716,358,4,7168,7170,1,0,0,0,7169,7165,1,0,0,0,7170,7173,1,0,0,0,7171,7169,1,0,0,0,7171,7172,1,0,0,0,7172,717,1,0,0,0,7173,7171,1,0,0,0,7174,7175,6,359,-1,0,7175,7176,3,720,360,0,7176,7241,1,0,0,0,7177,7178,10,8,0,0,7178,7179,3,724,362,0,7179,7180,3,718,359,9,7180,7240,1,0,0,0,7181,7183,10,6,0,0,7182,7184,5,114,0,0,7183,7182,1,0,0,0,7183,7184,1,0,0,0,7184,7185,1,0,0,0,7185,7186,5,16,0,0,7186,7187,3,718,359,0,7187,7188,5,10,0,0,7188,7189,3,718,359,7,7189,7240,1,0,0,0,7190,7191,10,5,0,0,7191,7192,5,620,0,0,7192,7193,5,98,0,0,7193,7240,3,718,359,6,7194,7196,10,3,0,0,7195,7197,5,114,0,0,7196,7195,1,0,0,0,7196,7197,1,0,0,0,7197,7198,1,0,0,0,7198,7199,7,133,0,0,7199,7240,3,718,359,4,7200,7202,10,10,0,0,7201,7203,5,114,0,0,7202,7201,1,0,0,0,7202,7203,1,0,0,0,7203,7204,1,0,0,0,7204,7205,5,80,0,0,7205,7208,5,1133,0,0,7206,7209,3,198,99,0,7207,7209,3,652,326,0,7208,7206,1,0,0,0,7208,7207,1,0,0,0,7209,7210,1,0,0,0,7210,7211,5,1134,0,0,7211,7240,1,0,0,0,7212,7213,10,9,0,0,7213,7214,5,88,0,0,7214,7240,3,628,314,0,7215,7216,10,7,0,0,7216,7217,3,724,362,0,7217,7218,7,134,0,0,7218,7219,5,1133,0,0,7219,7220,3,198,99,0,7220,7221,5,1134,0,0,7221,7240,1,0,0,0,7222,7224,10,4,0,0,7223,7225,5,114,0,0,7224,7223,1,0,0,0,7224,7225,1,0,0,0,7225,7226,1,0,0,0,7226,7227,5,98,0,0,7227,7230,3,718,359,0,7228,7229,5,413,0,0,7229,7231,5,1148,0,0,7230,7228,1,0,0,0,7230,7231,1,0,0,0,7231,7240,1,0,0,0,7232,7233,10,2,0,0,7233,7234,5,505,0,0,7234,7235,5,533,0,0,7235,7236,5,1133,0,0,7236,7237,3,718,359,0,7237,7238,5,1134,0,0,7238,7240,1,0,0,0,7239,7177,1,0,0,0,7239,7181,1,0,0,0,7239,7190,1,0,0,0,7239,7194,1,0,0,0,7239,7200,1,0,0,0,7239,7212,1,0,0,0,7239,7215,1,0,0,0,7239,7222,1,0,0,0,7239,7232,1,0,0,0,7240,7243,1,0,0,0,7241,7239,1,0,0,0,7241,7242,1,0,0,0,7242,719,1,0,0,0,7243,7241,1,0,0,0,7244,7245,6,360,-1,0,7245,7293,3,630,315,0,7246,7293,3,570,285,0,7247,7293,3,676,338,0,7248,7293,3,594,297,0,7249,7250,3,722,361,0,7250,7251,3,720,360,12,7251,7293,1,0,0,0,7252,7253,5,226,0,0,7253,7293,3,720,360,11,7254,7255,5,1159,0,0,7255,7256,5,1108,0,0,7256,7293,3,720,360,10,7257,7258,5,1133,0,0,7258,7263,3,716,358,0,7259,7260,5,1135,0,0,7260,7262,3,716,358,0,7261,7259,1,0,0,0,7262,7265,1,0,0,0,7263,7261,1,0,0,0,7263,7264,1,0,0,0,7264,7266,1,0,0,0,7265,7263,1,0,0,0,7266,7267,5,1134,0,0,7267,7293,1,0,0,0,7268,7269,5,600,0,0,7269,7270,5,1133,0,0,7270,7273,3,716,358,0,7271,7272,5,1135,0,0,7272,7274,3,716,358,0,7273,7271,1,0,0,0,7274,7275,1,0,0,0,7275,7273,1,0,0,0,7275,7276,1,0,0,0,7276,7277,1,0,0,0,7277,7278,5,1134,0,0,7278,7293,1,0,0,0,7279,7280,5,60,0,0,7280,7281,5,1133,0,0,7281,7282,3,198,99,0,7282,7283,5,1134,0,0,7283,7293,1,0,0,0,7284,7285,5,1133,0,0,7285,7286,3,198,99,0,7286,7287,5,1134,0,0,7287,7293,1,0,0,0,7288,7289,5,86,0,0,7289,7290,3,716,358,0,7290,7291,3,70,35,0,7291,7293,1,0,0,0,7292,7244,1,0,0,0,7292,7246,1,0,0,0,7292,7247,1,0,0,0,7292,7248,1,0,0,0,7292,7249,1,0,0,0,7292,7252,1,0,0,0,7292,7254,1,0,0,0,7292,7257,1,0,0,0,7292,7268,1,0,0,0,7292,7279,1,0,0,0,7292,7284,1,0,0,0,7292,7288,1,0,0,0,7293,7315,1,0,0,0,7294,7295,10,4,0,0,7295,7296,3,728,364,0,7296,7297,3,720,360,5,7297,7314,1,0,0,0,7298,7299,10,3,0,0,7299,7300,3,730,365,0,7300,7301,3,720,360,4,7301,7314,1,0,0,0,7302,7303,10,2,0,0,7303,7304,3,732,366,0,7304,7305,3,720,360,3,7305,7314,1,0,0,0,7306,7307,10,1,0,0,7307,7308,3,734,367,0,7308,7309,3,720,360,2,7309,7314,1,0,0,0,7310,7311,10,14,0,0,7311,7312,5,27,0,0,7312,7314,3,598,299,0,7313,7294,1,0,0,0,7313,7298,1,0,0,0,7313,7302,1,0,0,0,7313,7306,1,0,0,0,7313,7310,1,0,0,0,7314,7317,1,0,0,0,7315,7313,1,0,0,0,7315,7316,1,0,0,0,7316,721,1,0,0,0,7317,7315,1,0,0,0,7318,7319,7,135,0,0,7319,723,1,0,0,0,7320,7335,5,1124,0,0,7321,7335,5,1125,0,0,7322,7335,5,1126,0,0,7323,7324,5,1126,0,0,7324,7335,5,1124,0,0,7325,7326,5,1125,0,0,7326,7335,5,1124,0,0,7327,7328,5,1126,0,0,7328,7335,5,1125,0,0,7329,7330,5,1127,0,0,7330,7335,5,1124,0,0,7331,7332,5,1126,0,0,7332,7333,5,1124,0,0,7333,7335,5,1125,0,0,7334,7320,1,0,0,0,7334,7321,1,0,0,0,7334,7322,1,0,0,0,7334,7323,1,0,0,0,7334,7325,1,0,0,0,7334,7327,1,0,0,0,7334,7329,1,0,0,0,7334,7331,1,0,0,0,7335,725,1,0,0,0,7336,7344,5,10,0,0,7337,7338,5,1130,0,0,7338,7344,5,1130,0,0,7339,7344,5,194,0,0,7340,7344,5,123,0,0,7341,7342,5,1129,0,0,7342,7344,5,1129,0,0,7343,7336,1,0,0,0,7343,7337,1,0,0,0,7343,7339,1,0,0,0,7343,7340,1,0,0,0,7343,7341,1,0,0,0,7344,727,1,0,0,0,7345,7346,5,1126,0,0,7346,7353,5,1126,0,0,7347,7348,5,1125,0,0,7348,7353,5,1125,0,0,7349,7353,5,1130,0,0,7350,7353,5,1131,0,0,7351,7353,5,1129,0,0,7352,7345,1,0,0,0,7352,7347,1,0,0,0,7352,7349,1,0,0,0,7352,7350,1,0,0,0,7352,7351,1,0,0,0,7353,729,1,0,0,0,7354,7355,7,136,0,0,7355,731,1,0,0,0,7356,7357,7,137,0,0,7357,733,1,0,0,0,7358,7359,5,1121,0,0,7359,7364,5,1125,0,0,7360,7361,5,1121,0,0,7361,7362,5,1125,0,0,7362,7364,5,1125,0,0,7363,7358,1,0,0,0,7363,7360,1,0,0,0,7364,735,1,0,0,0,7365,7366,7,138,0,0,7366,737,1,0,0,0,7367,7368,7,139,0,0,7368,739,1,0,0,0,7369,7370,7,140,0,0,7370,741,1,0,0,0,7371,7372,7,141,0,0,7372,743,1,0,0,0,7373,7374,7,142,0,0,7374,745,1,0,0,0,7375,7376,7,143,0,0,7376,747,1,0,0,0,7377,7378,7,144,0,0,7378,749,1,0,0,0,1057,751,757,763,772,812,827,838,855,860,872,899,908,913,919,924,928,937,940,943,947,954,957,962,970,975,980,983,985,997,1e3,1004,1007,1011,1014,1018,1021,1024,1028,1031,1035,1041,1047,1053,1060,1067,1070,1074,1079,1085,1094,1099,1104,1122,1129,1133,1143,1147,1151,1155,1159,1164,1167,1170,1173,1176,1182,1186,1192,1197,1200,1203,1205,1216,1220,1223,1237,1240,1244,1247,1251,1254,1258,1261,1265,1268,1271,1275,1278,1282,1288,1292,1304,1310,1321,1326,1334,1342,1347,1350,1355,1363,1368,1374,1379,1383,1385,1388,1392,1396,1399,1403,1407,1411,1417,1420,1427,1432,1438,1445,1451,1459,1462,1469,1472,1474,1480,1486,1503,1510,1517,1529,1534,1537,1540,1553,1566,1571,1587,1595,1605,1608,1611,1617,1621,1624,1635,1638,1643,1656,1663,1670,1672,1679,1683,1685,1690,1693,1699,1704,1706,1710,1713,1716,1722,1727,1729,1734,1741,1743,1750,1755,1759,1762,1770,1778,1780,1790,1794,1797,1803,1808,1811,1817,1820,1824,1827,1831,1836,1841,1846,1850,1854,1858,1862,1866,1870,1875,1880,1885,1891,1896,1901,1906,1911,1916,1922,1927,1932,1937,1942,1947,1952,1957,1964,1969,1974,1979,1983,1988,1996,2001,2007,2019,2026,2028,2036,2041,2044,2052,2058,2062,2075,2087,2089,2092,2100,2106,2112,2125,2132,2141,2146,2157,2166,2171,2183,2190,2199,2204,2216,2223,2232,2237,2244,2253,2258,2260,2265,2273,2282,2286,2289,2293,2298,2304,2310,2315,2320,2325,2330,2333,2341,2351,2355,2362,2367,2370,2375,2378,2382,2386,2394,2413,2416,2419,2423,2433,2446,2453,2456,2461,2468,2471,2474,2485,2488,2492,2500,2503,2508,2516,2522,2526,2530,2535,2540,2547,2551,2562,2570,2573,2579,2585,2587,2592,2595,2601,2607,2609,2613,2616,2619,2625,2631,2634,2640,2646,2648,2653,2661,2663,2672,2675,2678,2683,2685,2694,2697,2700,2705,2707,2716,2721,2729,2733,2741,2751,2756,2763,2767,2771,2790,2800,2806,2823,2827,2837,2842,2845,2854,2865,2873,2879,2889,2901,2908,2915,2930,2943,2949,2955,2961,2967,2973,2979,2984,2991,2998,3005,3010,3013,3015,3029,3036,3043,3049,3053,3057,3064,3067,3072,3079,3086,3090,3095,3105,3112,3121,3130,3139,3142,3146,3155,3159,3162,3165,3171,3174,3178,3181,3185,3188,3196,3199,3210,3213,3218,3221,3226,3236,3241,3247,3249,3255,3257,3263,3271,3276,3284,3287,3292,3295,3300,3308,3316,3322,3330,3335,3343,3346,3350,3353,3361,3367,3376,3379,3383,3387,3391,3396,3400,3404,3406,3409,3412,3415,3421,3425,3428,3431,3434,3437,3444,3446,3450,3455,3461,3466,3473,3479,3484,3487,3493,3497,3505,3509,3512,3515,3520,3523,3530,3534,3537,3541,3545,3548,3551,3556,3562,3566,3576,3582,3586,3592,3596,3602,3605,3617,3621,3625,3633,3637,3645,3648,3652,3655,3663,3668,3671,3674,3678,3681,3690,3695,3704,3709,3716,3723,3731,3737,3745,3748,3751,3758,3761,3768,3776,3782,3793,3796,3800,3806,3815,3820,3824,3830,3836,3838,3842,3851,3861,3871,3877,3882,3886,3889,3892,3895,3898,3904,3910,3913,3916,3919,3922,3925,3927,3933,3939,3942,3945,3948,3951,3954,3958,3964,3968,3976,3980,3983,3985,3998,4001,4008,4018,4021,4026,4028,4032,4040,4046,4055,4068,4072,4078,4082,4092,4096,4100,4104,4106,4114,4126,4132,4134,4140,4142,4144,4150,4158,4166,4170,4174,4183,4188,4208,4213,4219,4226,4231,4240,4243,4247,4251,4255,4258,4261,4264,4268,4272,4275,4278,4281,4288,4292,4307,4311,4323,4331,4341,4345,4348,4354,4357,4360,4369,4378,4388,4392,4402,4412,4420,4423,4432,4435,4439,4444,4448,4457,4460,4491,4494,4497,4553,4558,4586,4600,4607,4611,4617,4625,4627,4638,4648,4655,4661,4669,4674,4682,4690,4698,4706,4712,4717,4722,4727,4733,4735,4746,4751,4758,4760,4774,4780,4785,4790,4796,4803,4811,4819,4824,4830,4833,4841,4848,4857,4860,4877,4885,4893,4897,4904,4910,4918,4927,4933,4940,4945,4948,4950,4956,4958,4962,4964,4971,4976,4983,4991,4997,5003,5008,5011,5013,5019,5021,5025,5027,5034,5036,5041,5051,5056,5065,5070,5073,5075,5081,5083,5086,5094,5103,5105,5112,5115,5127,5133,5142,5151,5156,5165,5178,5181,5193,5200,5205,5215,5243,5247,5252,5259,5262,5268,5278,5288,5298,5304,5313,5319,5326,5328,5338,5342,5346,5356,5361,5433,5451,5459,5471,5478,5480,5490,5493,5501,5508,5512,5519,5524,5527,5530,5539,5543,5547,5570,5577,5581,5588,5595,5598,5614,5617,5627,5631,5637,5640,5645,5649,5656,5659,5665,5697,5700,5712,5715,5725,5733,5737,5744,5747,5756,5762,5768,5778,5780,5786,5789,5792,5804,5807,5813,5816,5824,5832,5838,5842,5856,5868,5875,5878,5885,5892,5897,5910,5921,5927,5932,5945,5947,5952,5956,5959,5961,5968,5975,5978,5981,5987,5991,5997,6003,6016,6021,6029,6032,6037,6042,6050,6053,6061,6065,6072,6078,6081,6085,6098,6104,6116,6119,6128,6133,6139,6148,6153,6160,6168,6178,6186,6188,6191,6195,6197,6212,6217,6223,6226,6229,6235,6244,6252,6262,6266,6271,6291,6298,6300,6307,6309,6313,6318,6329,6334,6340,6343,6347,6352,6355,6359,6363,6365,6370,6375,6388,6391,6395,6398,6401,6406,6411,6417,6420,6425,6428,6433,6436,6440,6445,6450,6455,6460,6463,6468,6473,6478,6484,6489,6494,6499,6503,6506,6511,6515,6519,6527,6534,6538,6543,6548,6552,6554,6557,6573,6582,6590,6598,6607,6617,6625,6633,6641,6649,6661,6668,6678,6683,6686,6691,6694,6698,6713,6721,6728,6733,6738,6772,6776,6784,6788,6797,6805,6810,6818,6823,6828,6830,6839,6844,6852,6857,6865,6873,6876,6886,6904,6907,6910,6914,6927,6935,6939,6944,6949,6955,6960,6964,6969,6974,6979,6989,6992,6996,7e3,7007,7011,7040,7048,7051,7054,7057,7060,7071,7085,7094,7121,7132,7139,7143,7150,7158,7163,7171,7183,7196,7202,7208,7224,7230,7239,7241,7263,7275,7292,7313,7315,7334,7343,7352,7363],Qi.vocabulary=new Ra(Qi.literalNames,Qi.symbolicNames,[]),Qi.decisionsToDFA=Qi._ATN.decisionToState.map(((t,e)=>new ni(t,e))),Qi),vC=class extends ga{constructor(t,e){super(t,e)}EOF(){return this.getToken(FC.EOF,0)}statements(){return this.getRuleContext(0,BC)}get ruleIndex(){return FC.RULE_root}accept(t){return t.visitRoot?t.visitRoot(this):t.visitChildren(this)}},BC=class t extends ga{constructor(t,e){super(t,e)}statement(){return this.getRuleContext(0,yC)}SEMI(){return this.getToken(FC.SEMI,0)}statements(){return this.getRuleContext(0,t)}get ruleIndex(){return FC.RULE_statements}accept(t){return t.visitStatements?t.visitStatements(this):t.visitChildren(this)}},yC=class extends ga{constructor(t,e){super(t,e)}ddlStatement(){return this.getRuleContext(0,fC)}dmlStatement(){return this.getRuleContext(0,YC)}transactionStatement(){return this.getRuleContext(0,wC)}replicationStatement(){return this.getRuleContext(0,bC)}preparedStatement(){return this.getRuleContext(0,WC)}administrationStatement(){return this.getRuleContext(0,XC)}utilityStatement(){return this.getRuleContext(0,KC)}get ruleIndex(){return FC.RULE_statement}accept(t){return t.visitStatement?t.visitStatement(this):t.visitChildren(this)}},fC=class extends ga{constructor(t,e){super(t,e)}createDatabase(){return this.getRuleContext(0,QC)}createEvent(){return this.getRuleContext(0,JC)}createIndex(){return this.getRuleContext(0,ZC)}createLogfileGroup(){return this.getRuleContext(0,qC)}createProcedure(){return this.getRuleContext(0,jC)}createFunction(){return this.getRuleContext(0,zC)}createServer(){return this.getRuleContext(0,t_)}createTable(){return this.getRuleContext(0,e_)}createTablespaceInnodb(){return this.getRuleContext(0,i_)}createTablespaceNdb(){return this.getRuleContext(0,c_)}createTrigger(){return this.getRuleContext(0,n_)}createView(){return this.getRuleContext(0,R_)}createRole(){return this.getRuleContext(0,$C)}alterDatabase(){return this.getRuleContext(0,PM)}alterEvent(){return this.getRuleContext(0,UM)}alterFunction(){return this.getRuleContext(0,mM)}alterInstance(){return this.getRuleContext(0,DM)}alterLogfileGroup(){return this.getRuleContext(0,pM)}alterProcedure(){return this.getRuleContext(0,gM)}alterServer(){return this.getRuleContext(0,xM)}alterTable(){return this.getRuleContext(0,kM)}alterTablespace(){return this.getRuleContext(0,HM)}alterView(){return this.getRuleContext(0,GM)}dropDatabase(){return this.getRuleContext(0,Gd)}dropEvent(){return this.getRuleContext(0,Fd)}dropIndex(){return this.getRuleContext(0,vd)}dropLogfileGroup(){return this.getRuleContext(0,Bd)}dropProcedure(){return this.getRuleContext(0,yd)}dropFunction(){return this.getRuleContext(0,fd)}dropServer(){return this.getRuleContext(0,Yd)}dropTable(){return this.getRuleContext(0,wd)}dropTablespace(){return this.getRuleContext(0,bd)}dropTrigger(){return this.getRuleContext(0,Wd)}dropView(){return this.getRuleContext(0,Vd)}dropRole(){return this.getRuleContext(0,Xd)}setRole(){return this.getRuleContext(0,Kd)}renameTable(){return this.getRuleContext(0,Qd)}truncateTable(){return this.getRuleContext(0,Zd)}get ruleIndex(){return FC.RULE_ddlStatement}accept(t){return t.visitDdlStatement?t.visitDdlStatement(this):t.visitChildren(this)}},YC=class extends ga{constructor(t,e){super(t,e)}selectStatement(){return this.getRuleContext(0,rU)}insertStatement(){return this.getRuleContext(0,tU)}updateStatement(){return this.getRuleContext(0,TU)}deleteStatement(){return this.getRuleContext(0,jd)}replaceStatement(){return this.getRuleContext(0,aU)}callStatement(){return this.getRuleContext(0,qd)}loadDataStatement(){return this.getRuleContext(0,eU)}loadXmlStatement(){return this.getRuleContext(0,sU)}doStatement(){return this.getRuleContext(0,zd)}handlerStatement(){return this.getRuleContext(0,$d)}valuesStatement(){return this.getRuleContext(0,oU)}withStatement(){return this.getRuleContext(0,nx)}tableStatement(){return this.getRuleContext(0,hx)}get ruleIndex(){return FC.RULE_dmlStatement}accept(t){return t.visitDmlStatement?t.visitDmlStatement(this):t.visitChildren(this)}},wC=class extends ga{constructor(t,e){super(t,e)}startTransaction(){return this.getRuleContext(0,_m)}beginWork(){return this.getRuleContext(0,Pm)}commitWork(){return this.getRuleContext(0,Mm)}rollbackWork(){return this.getRuleContext(0,dm)}savepointStatement(){return this.getRuleContext(0,Um)}rollbackStatement(){return this.getRuleContext(0,mm)}releaseStatement(){return this.getRuleContext(0,Dm)}lockTables(){return this.getRuleContext(0,pm)}unlockTables(){return this.getRuleContext(0,gm)}get ruleIndex(){return FC.RULE_transactionStatement}accept(t){return t.visitTransactionStatement?t.visitTransactionStatement(this):t.visitChildren(this)}},bC=class extends ga{constructor(t,e){super(t,e)}changeMaster(){return this.getRuleContext(0,ym)}changeReplicationFilter(){return this.getRuleContext(0,fm)}purgeBinaryLogs(){return this.getRuleContext(0,Ym)}resetMaster(){return this.getRuleContext(0,wm)}resetSlave(){return this.getRuleContext(0,bm)}startSlave(){return this.getRuleContext(0,Wm)}stopSlave(){return this.getRuleContext(0,Vm)}startGroupReplication(){return this.getRuleContext(0,Xm)}stopGroupReplication(){return this.getRuleContext(0,Km)}xaStartTransaction(){return this.getRuleContext(0,MD)}xaEndTransaction(){return this.getRuleContext(0,dD)}xaPrepareStatement(){return this.getRuleContext(0,UD)}xaCommitWork(){return this.getRuleContext(0,mD)}xaRollbackWork(){return this.getRuleContext(0,DD)}xaRecoverWork(){return this.getRuleContext(0,pD)}get ruleIndex(){return FC.RULE_replicationStatement}accept(t){return t.visitReplicationStatement?t.visitReplicationStatement(this):t.visitChildren(this)}},WC=class extends ga{constructor(t,e){super(t,e)}prepareStatement(){return this.getRuleContext(0,gD)}executeStatement(){return this.getRuleContext(0,xD)}deallocatePrepare(){return this.getRuleContext(0,kD)}get ruleIndex(){return FC.RULE_preparedStatement}accept(t){return t.visitPreparedStatement?t.visitPreparedStatement(this):t.visitChildren(this)}},VC=class extends ga{constructor(t,e){super(t,e)}blockStatement(){return this.getRuleContext(0,GD)}caseStatement(){return this.getRuleContext(0,FD)}ifStatement(){return this.getRuleContext(0,vD)}leaveStatement(){return this.getRuleContext(0,yD)}loopStatement(){return this.getRuleContext(0,fD)}repeatStatement(){return this.getRuleContext(0,YD)}whileStatement(){return this.getRuleContext(0,bD)}iterateStatement(){return this.getRuleContext(0,BD)}returnStatement(){return this.getRuleContext(0,wD)}cursorStatement(){return this.getRuleContext(0,WD)}get ruleIndex(){return FC.RULE_compoundStatement}accept(t){return t.visitCompoundStatement?t.visitCompoundStatement(this):t.visitChildren(this)}},XC=class extends ga{constructor(t,e){super(t,e)}alterUser(){return this.getRuleContext(0,np)}createUser(){return this.getRuleContext(0,Tp)}dropUser(){return this.getRuleContext(0,Ap)}grantStatement(){return this.getRuleContext(0,Sp)}grantProxy(){return this.getRuleContext(0,Op)}renameUser(){return this.getRuleContext(0,Ip)}revokeStatement(){return this.getRuleContext(0,up)}revokeProxy(){return this.getRuleContext(0,_p)}analyzeTable(){return this.getRuleContext(0,qp)}checkTable(){return this.getRuleContext(0,jp)}checksumTable(){return this.getRuleContext(0,zp)}optimizeTable(){return this.getRuleContext(0,$p)}repairTable(){return this.getRuleContext(0,tg)}createUdfunction(){return this.getRuleContext(0,sg)}installPlugin(){return this.getRuleContext(0,ag)}uninstallPlugin(){return this.getRuleContext(0,rg)}setStatement(){return this.getRuleContext(0,ig)}showStatement(){return this.getRuleContext(0,Ag)}binlogStatement(){return this.getRuleContext(0,Yg)}cacheIndexStatement(){return this.getRuleContext(0,wg)}flushStatement(){return this.getRuleContext(0,bg)}killStatement(){return this.getRuleContext(0,Wg)}loadIndexIntoCache(){return this.getRuleContext(0,Vg)}resetStatement(){return this.getRuleContext(0,Xg)}shutdownStatement(){return this.getRuleContext(0,Kg)}get ruleIndex(){return FC.RULE_administrationStatement}accept(t){return t.visitAdministrationStatement?t.visitAdministrationStatement(this):t.visitChildren(this)}},KC=class extends ga{constructor(t,e){super(t,e)}simpleDescribeStatement(){return this.getRuleContext(0,tx)}fullDescribeStatement(){return this.getRuleContext(0,ex)}helpStatement(){return this.getRuleContext(0,sx)}useStatement(){return this.getRuleContext(0,ax)}signalStatement(){return this.getRuleContext(0,rx)}resignalStatement(){return this.getRuleContext(0,ix)}diagnosticsStatement(){return this.getRuleContext(0,Ex)}get ruleIndex(){return FC.RULE_utilityStatement}accept(t){return t.visitUtilityStatement?t.visitUtilityStatement(this):t.visitChildren(this)}},QC=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(FC.CREATE,0)}uid(){return this.getRuleContext(0,Vx)}DATABASE(){return this.getToken(FC.DATABASE,0)}SCHEMA(){return this.getToken(FC.SCHEMA,0)}ifNotExists(){return this.getRuleContext(0,Dk)}createDatabaseOption(t){return void 0===t?this.getRuleContexts(A_):this.getRuleContext(t,A_)}get ruleIndex(){return FC.RULE_createDatabase}accept(t){return t.visitCreateDatabase?t.visitCreateDatabase(this):t.visitChildren(this)}},JC=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(FC.CREATE,0)}EVENT(){return this.getToken(FC.EVENT,0)}fullId(){return this.getRuleContext(0,Sx)}ON(t){return void 0===t?this.getTokens(FC.ON):this.getToken(FC.ON,t)}SCHEDULE(){return this.getToken(FC.SCHEDULE,0)}scheduleExpression(){return this.getRuleContext(0,I_)}DO(){return this.getToken(FC.DO,0)}routineBody(){return this.getRuleContext(0,HD)}ownerStatement(){return this.getRuleContext(0,O_)}ifNotExists(){return this.getRuleContext(0,Dk)}COMPLETION(){return this.getToken(FC.COMPLETION,0)}PRESERVE(){return this.getToken(FC.PRESERVE,0)}enableType(){return this.getRuleContext(0,P_)}COMMENT(){return this.getToken(FC.COMMENT,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}NOT(){return this.getToken(FC.NOT,0)}get ruleIndex(){return FC.RULE_createEvent}accept(t){return t.visitCreateEvent?t.visitCreateEvent(this):t.visitChildren(this)}},ZC=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(FC.CREATE,0)}INDEX(){return this.getToken(FC.INDEX,0)}uid(){return this.getRuleContext(0,Vx)}ON(){return this.getToken(FC.ON,0)}tableName(){return this.getRuleContext(0,lx)}indexColumnNames(){return this.getRuleContext(0,uk)}indexType(){return this.getRuleContext(0,M_)}indexOption(t){return void 0===t?this.getRuleContexts(d_):this.getRuleContext(t,d_)}ALGORITHM(t){return void 0===t?this.getTokens(FC.ALGORITHM):this.getToken(FC.ALGORITHM,t)}LOCK(t){return void 0===t?this.getTokens(FC.LOCK):this.getToken(FC.LOCK,t)}ONLINE(){return this.getToken(FC.ONLINE,0)}OFFLINE(){return this.getToken(FC.OFFLINE,0)}UNIQUE(){return this.getToken(FC.UNIQUE,0)}FULLTEXT(){return this.getToken(FC.FULLTEXT,0)}SPATIAL(){return this.getToken(FC.SPATIAL,0)}DEFAULT(t){return void 0===t?this.getTokens(FC.DEFAULT):this.getToken(FC.DEFAULT,t)}INPLACE(t){return void 0===t?this.getTokens(FC.INPLACE):this.getToken(FC.INPLACE,t)}COPY(t){return void 0===t?this.getTokens(FC.COPY):this.getToken(FC.COPY,t)}NONE(t){return void 0===t?this.getTokens(FC.NONE):this.getToken(FC.NONE,t)}SHARED(t){return void 0===t?this.getTokens(FC.SHARED):this.getToken(FC.SHARED,t)}EXCLUSIVE(t){return void 0===t?this.getTokens(FC.EXCLUSIVE):this.getToken(FC.EXCLUSIVE,t)}EQUAL_SYMBOL(t){return void 0===t?this.getTokens(FC.EQUAL_SYMBOL):this.getToken(FC.EQUAL_SYMBOL,t)}get ruleIndex(){return FC.RULE_createIndex}accept(t){return t.visitCreateIndex?t.visitCreateIndex(this):t.visitChildren(this)}},qC=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(FC.CREATE,0)}LOGFILE(){return this.getToken(FC.LOGFILE,0)}GROUP(){return this.getToken(FC.GROUP,0)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}ADD(){return this.getToken(FC.ADD,0)}UNDOFILE(){return this.getToken(FC.UNDOFILE,0)}ENGINE(){return this.getToken(FC.ENGINE,0)}engineName(){return this.getRuleContext(0,yx)}STRING_LITERAL(t){return void 0===t?this.getTokens(FC.STRING_LITERAL):this.getToken(FC.STRING_LITERAL,t)}INITIAL_SIZE(){return this.getToken(FC.INITIAL_SIZE,0)}UNDO_BUFFER_SIZE(){return this.getToken(FC.UNDO_BUFFER_SIZE,0)}REDO_BUFFER_SIZE(){return this.getToken(FC.REDO_BUFFER_SIZE,0)}NODEGROUP(){return this.getToken(FC.NODEGROUP,0)}WAIT(){return this.getToken(FC.WAIT,0)}COMMENT(){return this.getToken(FC.COMMENT,0)}EQUAL_SYMBOL(t){return void 0===t?this.getTokens(FC.EQUAL_SYMBOL):this.getToken(FC.EQUAL_SYMBOL,t)}fileSizeLiteral(t){return void 0===t?this.getRuleContexts(Jx):this.getRuleContext(t,Jx)}get ruleIndex(){return FC.RULE_createLogfileGroup}accept(t){return t.visitCreateLogfileGroup?t.visitCreateLogfileGroup(this):t.visitChildren(this)}},jC=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(FC.CREATE,0)}PROCEDURE(){return this.getToken(FC.PROCEDURE,0)}fullId(){return this.getRuleContext(0,Sx)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}routineBody(){return this.getRuleContext(0,HD)}ownerStatement(){return this.getRuleContext(0,O_)}procedureParameter(t){return void 0===t?this.getRuleContexts(U_):this.getRuleContext(t,U_)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}routineOption(t){return void 0===t?this.getRuleContexts(D_):this.getRuleContext(t,D_)}get ruleIndex(){return FC.RULE_createProcedure}accept(t){return t.visitCreateProcedure?t.visitCreateProcedure(this):t.visitChildren(this)}},zC=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(FC.CREATE,0)}FUNCTION(){return this.getToken(FC.FUNCTION,0)}fullId(){return this.getRuleContext(0,Sx)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}RETURNS(){return this.getToken(FC.RETURNS,0)}dataType(){return this.getRuleContext(0,tk)}routineBody(){return this.getRuleContext(0,HD)}returnStatement(){return this.getRuleContext(0,wD)}ownerStatement(){return this.getRuleContext(0,O_)}AGGREGATE(){return this.getToken(FC.AGGREGATE,0)}ifNotExists(){return this.getRuleContext(0,Dk)}functionParameter(t){return void 0===t?this.getRuleContexts(m_):this.getRuleContext(t,m_)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}routineOption(t){return void 0===t?this.getRuleContexts(D_):this.getRuleContext(t,D_)}get ruleIndex(){return FC.RULE_createFunction}accept(t){return t.visitCreateFunction?t.visitCreateFunction(this):t.visitChildren(this)}},$C=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(FC.CREATE,0)}ROLE(){return this.getToken(FC.ROLE,0)}newRoleNameList(){return this.getRuleContext(0,Nx)}ifNotExists(){return this.getRuleContext(0,Dk)}get ruleIndex(){return FC.RULE_createRole}accept(t){return t.visitCreateRole?t.visitCreateRole(this):t.visitChildren(this)}},t_=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(FC.CREATE,0)}SERVER(){return this.getToken(FC.SERVER,0)}uid(){return this.getRuleContext(0,Vx)}FOREIGN(){return this.getToken(FC.FOREIGN,0)}DATA(){return this.getToken(FC.DATA,0)}WRAPPER(){return this.getToken(FC.WRAPPER,0)}OPTIONS(){return this.getToken(FC.OPTIONS,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}serverOption(t){return void 0===t?this.getRuleContexts(G_):this.getRuleContext(t,G_)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}MYSQL(){return this.getToken(FC.MYSQL,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_createServer}accept(t){return t.visitCreateServer?t.visitCreateServer(this):t.visitChildren(this)}},e_=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_createTable}copyFrom(t){super.copyFrom(t)}},s_=class extends e_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CREATE(){return this.getToken(FC.CREATE,0)}TABLE(){return this.getToken(FC.TABLE,0)}tableName(t){return void 0===t?this.getRuleContexts(lx):this.getRuleContext(t,lx)}LIKE(){return this.getToken(FC.LIKE,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}TEMPORARY(){return this.getToken(FC.TEMPORARY,0)}ifNotExists(){return this.getRuleContext(0,Dk)}accept(t){return t.visitCopyCreateTable?t.visitCopyCreateTable(this):t.visitChildren(this)}},a_=class extends e_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CREATE(){return this.getToken(FC.CREATE,0)}TABLE(){return this.getToken(FC.TABLE,0)}tableName(){return this.getRuleContext(0,lx)}createDefinitions(){return this.getRuleContext(0,F_)}TEMPORARY(){return this.getToken(FC.TEMPORARY,0)}ifNotExists(){return this.getRuleContext(0,Dk)}tableOption(t){return void 0===t?this.getRuleContexts(SP):this.getRuleContext(t,SP)}partitionDefinitions(){return this.getRuleContext(0,jP)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitColumnCreateTable?t.visitColumnCreateTable(this):t.visitChildren(this)}},r_=class extends e_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CREATE(){return this.getToken(FC.CREATE,0)}TABLE(){return this.getToken(FC.TABLE,0)}tableName(){return this.getRuleContext(0,lx)}selectStatement(){return this.getRuleContext(0,rU)}TEMPORARY(){return this.getToken(FC.TEMPORARY,0)}ifNotExists(){return this.getRuleContext(0,Dk)}createDefinitions(){return this.getRuleContext(0,F_)}tableOption(t){return void 0===t?this.getRuleContexts(SP):this.getRuleContext(t,SP)}partitionDefinitions(){return this.getRuleContext(0,jP)}AS(){return this.getToken(FC.AS,0)}IGNORE(){return this.getToken(FC.IGNORE,0)}REPLACE(){return this.getToken(FC.REPLACE,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitQueryCreateTable?t.visitQueryCreateTable(this):t.visitChildren(this)}},i_=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(FC.CREATE,0)}TABLESPACE(){return this.getToken(FC.TABLESPACE,0)}uid(){return this.getRuleContext(0,Vx)}ADD(){return this.getToken(FC.ADD,0)}DATAFILE(){return this.getToken(FC.DATAFILE,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}FILE_BLOCK_SIZE(){return this.getToken(FC.FILE_BLOCK_SIZE,0)}EQUAL_SYMBOL(t){return void 0===t?this.getTokens(FC.EQUAL_SYMBOL):this.getToken(FC.EQUAL_SYMBOL,t)}ENGINE(){return this.getToken(FC.ENGINE,0)}engineName(){return this.getRuleContext(0,yx)}fileSizeLiteral(){return this.getRuleContext(0,Jx)}get ruleIndex(){return FC.RULE_createTablespaceInnodb}accept(t){return t.visitCreateTablespaceInnodb?t.visitCreateTablespaceInnodb(this):t.visitChildren(this)}},c_=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(FC.CREATE,0)}TABLESPACE(){return this.getToken(FC.TABLESPACE,0)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}ADD(){return this.getToken(FC.ADD,0)}DATAFILE(){return this.getToken(FC.DATAFILE,0)}USE(){return this.getToken(FC.USE,0)}LOGFILE(){return this.getToken(FC.LOGFILE,0)}GROUP(){return this.getToken(FC.GROUP,0)}ENGINE(){return this.getToken(FC.ENGINE,0)}engineName(){return this.getRuleContext(0,yx)}STRING_LITERAL(t){return void 0===t?this.getTokens(FC.STRING_LITERAL):this.getToken(FC.STRING_LITERAL,t)}EXTENT_SIZE(){return this.getToken(FC.EXTENT_SIZE,0)}INITIAL_SIZE(){return this.getToken(FC.INITIAL_SIZE,0)}AUTOEXTEND_SIZE(){return this.getToken(FC.AUTOEXTEND_SIZE,0)}MAX_SIZE(){return this.getToken(FC.MAX_SIZE,0)}NODEGROUP(){return this.getToken(FC.NODEGROUP,0)}WAIT(){return this.getToken(FC.WAIT,0)}COMMENT(){return this.getToken(FC.COMMENT,0)}EQUAL_SYMBOL(t){return void 0===t?this.getTokens(FC.EQUAL_SYMBOL):this.getToken(FC.EQUAL_SYMBOL,t)}fileSizeLiteral(t){return void 0===t?this.getRuleContexts(Jx):this.getRuleContext(t,Jx)}get ruleIndex(){return FC.RULE_createTablespaceNdb}accept(t){return t.visitCreateTablespaceNdb?t.visitCreateTablespaceNdb(this):t.visitChildren(this)}},n_=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(FC.CREATE,0)}TRIGGER(){return this.getToken(FC.TRIGGER,0)}ON(){return this.getToken(FC.ON,0)}tableName(){return this.getRuleContext(0,lx)}FOR(){return this.getToken(FC.FOR,0)}EACH(){return this.getToken(FC.EACH,0)}ROW(){return this.getToken(FC.ROW,0)}routineBody(){return this.getRuleContext(0,HD)}fullId(t){return void 0===t?this.getRuleContexts(Sx):this.getRuleContext(t,Sx)}BEFORE(){return this.getToken(FC.BEFORE,0)}AFTER(){return this.getToken(FC.AFTER,0)}INSERT(){return this.getToken(FC.INSERT,0)}UPDATE(){return this.getToken(FC.UPDATE,0)}DELETE(){return this.getToken(FC.DELETE,0)}ownerStatement(){return this.getRuleContext(0,O_)}ifNotExists(){return this.getRuleContext(0,Dk)}FOLLOWS(){return this.getToken(FC.FOLLOWS,0)}PRECEDES(){return this.getToken(FC.PRECEDES,0)}get ruleIndex(){return FC.RULE_createTrigger}accept(t){return t.visitCreateTrigger?t.visitCreateTrigger(this):t.visitChildren(this)}},h_=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(FC.WITH,0)}commonTableExpressions(){return this.getRuleContext(0,E_)}RECURSIVE(){return this.getToken(FC.RECURSIVE,0)}get ruleIndex(){return FC.RULE_withClause}accept(t){return t.visitWithClause?t.visitWithClause(this):t.visitChildren(this)}},E_=class t extends ga{constructor(t,e){super(t,e)}cteName(){return this.getRuleContext(0,T_)}AS(){return this.getToken(FC.AS,0)}LR_BRACKET(t){return void 0===t?this.getTokens(FC.LR_BRACKET):this.getToken(FC.LR_BRACKET,t)}dmlStatement(){return this.getRuleContext(0,YC)}RR_BRACKET(t){return void 0===t?this.getTokens(FC.RR_BRACKET):this.getToken(FC.RR_BRACKET,t)}cteColumnName(t){return void 0===t?this.getRuleContexts(o_):this.getRuleContext(t,o_)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}commonTableExpressions(){return this.getRuleContext(0,t)}get ruleIndex(){return FC.RULE_commonTableExpressions}accept(t){return t.visitCommonTableExpressions?t.visitCommonTableExpressions(this):t.visitChildren(this)}},T_=class extends ga{constructor(t,e){super(t,e)}uid(){return this.getRuleContext(0,Vx)}get ruleIndex(){return FC.RULE_cteName}accept(t){return t.visitCteName?t.visitCteName(this):t.visitChildren(this)}},o_=class extends ga{constructor(t,e){super(t,e)}uid(){return this.getRuleContext(0,Vx)}get ruleIndex(){return FC.RULE_cteColumnName}accept(t){return t.visitCteColumnName?t.visitCteColumnName(this):t.visitChildren(this)}},R_=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(FC.CREATE,0)}VIEW(){return this.getToken(FC.VIEW,0)}fullId(){return this.getRuleContext(0,Sx)}AS(){return this.getToken(FC.AS,0)}LR_BRACKET(t){return void 0===t?this.getTokens(FC.LR_BRACKET):this.getToken(FC.LR_BRACKET,t)}selectStatement(){return this.getRuleContext(0,rU)}RR_BRACKET(t){return void 0===t?this.getTokens(FC.RR_BRACKET):this.getToken(FC.RR_BRACKET,t)}orReplace(){return this.getRuleContext(0,pk)}ALGORITHM(){return this.getToken(FC.ALGORITHM,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}ownerStatement(){return this.getRuleContext(0,O_)}SQL(){return this.getToken(FC.SQL,0)}SECURITY(){return this.getToken(FC.SECURITY,0)}uidList(){return this.getRuleContext(0,lk)}UNDEFINED(){return this.getToken(FC.UNDEFINED,0)}MERGE(){return this.getToken(FC.MERGE,0)}TEMPTABLE(){return this.getToken(FC.TEMPTABLE,0)}DEFINER(){return this.getToken(FC.DEFINER,0)}INVOKER(){return this.getToken(FC.INVOKER,0)}withClause(){return this.getRuleContext(0,h_)}WITH(){return this.getToken(FC.WITH,0)}CHECK(){return this.getToken(FC.CHECK,0)}OPTION(){return this.getToken(FC.OPTION,0)}CASCADED(){return this.getToken(FC.CASCADED,0)}LOCAL(){return this.getToken(FC.LOCAL,0)}get ruleIndex(){return FC.RULE_createView}accept(t){return t.visitCreateView?t.visitCreateView(this):t.visitChildren(this)}},A_=class extends ga{constructor(t,e){super(t,e)}charSet(){return this.getRuleContext(0,S_)}charsetName(){return this.getRuleContext(0,vx)}DEFAULT(t){return void 0===t?this.getTokens(FC.DEFAULT):this.getToken(FC.DEFAULT,t)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}COLLATE(){return this.getToken(FC.COLLATE,0)}collationName(){return this.getRuleContext(0,Bx)}ENCRYPTION(){return this.getToken(FC.ENCRYPTION,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}READ(){return this.getToken(FC.READ,0)}ONLY(){return this.getToken(FC.ONLY,0)}ZERO_DECIMAL(){return this.getToken(FC.ZERO_DECIMAL,0)}ONE_DECIMAL(){return this.getToken(FC.ONE_DECIMAL,0)}get ruleIndex(){return FC.RULE_createDatabaseOption}accept(t){return t.visitCreateDatabaseOption?t.visitCreateDatabaseOption(this):t.visitChildren(this)}},S_=class extends ga{constructor(t,e){super(t,e)}CHARACTER(){return this.getToken(FC.CHARACTER,0)}SET(){return this.getToken(FC.SET,0)}CHARSET(){return this.getToken(FC.CHARSET,0)}CHAR(){return this.getToken(FC.CHAR,0)}get ruleIndex(){return FC.RULE_charSet}accept(t){return t.visitCharSet?t.visitCharSet(this):t.visitChildren(this)}},l_=class extends ga{constructor(t,e){super(t,e)}CURRENT_USER(){return this.getToken(FC.CURRENT_USER,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}get ruleIndex(){return FC.RULE_currentUserExpression}accept(t){return t.visitCurrentUserExpression?t.visitCurrentUserExpression(this):t.visitChildren(this)}},O_=class extends ga{constructor(t,e){super(t,e)}DEFINER(){return this.getToken(FC.DEFINER,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}userName(){return this.getRuleContext(0,Gx)}currentUserExpression(){return this.getRuleContext(0,l_)}get ruleIndex(){return FC.RULE_ownerStatement}accept(t){return t.visitOwnerStatement?t.visitOwnerStatement(this):t.visitChildren(this)}},I_=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_scheduleExpression}copyFrom(t){super.copyFrom(t)}},u_=class extends I_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}AT(){return this.getToken(FC.AT,0)}timestampValue(){return this.getRuleContext(0,L_)}intervalExpr(t){return void 0===t?this.getRuleContexts(C_):this.getRuleContext(t,C_)}accept(t){return t.visitPreciseSchedule?t.visitPreciseSchedule(this):t.visitChildren(this)}},N_=class extends I_{constructor(t){super(t.parent,t.invokingState),this._startIntervals=[],this._endIntervals=[],super.copyFrom(t)}EVERY(){return this.getToken(FC.EVERY,0)}intervalType(){return this.getRuleContext(0,__)}decimalLiteral(){return this.getRuleContext(0,Qx)}expression(){return this.getRuleContext(0,NH)}STARTS(){return this.getToken(FC.STARTS,0)}ENDS(){return this.getToken(FC.ENDS,0)}timestampValue(t){return void 0===t?this.getRuleContexts(L_):this.getRuleContext(t,L_)}intervalExpr(t){return void 0===t?this.getRuleContexts(C_):this.getRuleContext(t,C_)}accept(t){return t.visitIntervalSchedule?t.visitIntervalSchedule(this):t.visitChildren(this)}},L_=class extends ga{constructor(t,e){super(t,e)}CURRENT_TIMESTAMP(){return this.getToken(FC.CURRENT_TIMESTAMP,0)}stringLiteral(){return this.getRuleContext(0,Zx)}decimalLiteral(){return this.getRuleContext(0,Qx)}expression(){return this.getRuleContext(0,NH)}get ruleIndex(){return FC.RULE_timestampValue}accept(t){return t.visitTimestampValue?t.visitTimestampValue(this):t.visitChildren(this)}},C_=class extends ga{constructor(t,e){super(t,e)}PLUS(){return this.getToken(FC.PLUS,0)}INTERVAL(){return this.getToken(FC.INTERVAL,0)}intervalType(){return this.getRuleContext(0,__)}decimalLiteral(){return this.getRuleContext(0,Qx)}expression(){return this.getRuleContext(0,NH)}get ruleIndex(){return FC.RULE_intervalExpr}accept(t){return t.visitIntervalExpr?t.visitIntervalExpr(this):t.visitChildren(this)}},__=class extends ga{constructor(t,e){super(t,e)}intervalTypeBase(){return this.getRuleContext(0,hG)}YEAR(){return this.getToken(FC.YEAR,0)}YEAR_MONTH(){return this.getToken(FC.YEAR_MONTH,0)}DAY_HOUR(){return this.getToken(FC.DAY_HOUR,0)}DAY_MINUTE(){return this.getToken(FC.DAY_MINUTE,0)}DAY_SECOND(){return this.getToken(FC.DAY_SECOND,0)}HOUR_MINUTE(){return this.getToken(FC.HOUR_MINUTE,0)}HOUR_SECOND(){return this.getToken(FC.HOUR_SECOND,0)}MINUTE_SECOND(){return this.getToken(FC.MINUTE_SECOND,0)}SECOND_MICROSECOND(){return this.getToken(FC.SECOND_MICROSECOND,0)}MINUTE_MICROSECOND(){return this.getToken(FC.MINUTE_MICROSECOND,0)}HOUR_MICROSECOND(){return this.getToken(FC.HOUR_MICROSECOND,0)}DAY_MICROSECOND(){return this.getToken(FC.DAY_MICROSECOND,0)}get ruleIndex(){return FC.RULE_intervalType}accept(t){return t.visitIntervalType?t.visitIntervalType(this):t.visitChildren(this)}},P_=class extends ga{constructor(t,e){super(t,e)}ENABLE(){return this.getToken(FC.ENABLE,0)}DISABLE(){return this.getToken(FC.DISABLE,0)}ON(){return this.getToken(FC.ON,0)}SLAVE(){return this.getToken(FC.SLAVE,0)}get ruleIndex(){return FC.RULE_enableType}accept(t){return t.visitEnableType?t.visitEnableType(this):t.visitChildren(this)}},M_=class extends ga{constructor(t,e){super(t,e)}USING(){return this.getToken(FC.USING,0)}BTREE(){return this.getToken(FC.BTREE,0)}HASH(){return this.getToken(FC.HASH,0)}get ruleIndex(){return FC.RULE_indexType}accept(t){return t.visitIndexType?t.visitIndexType(this):t.visitChildren(this)}},d_=class extends ga{constructor(t,e){super(t,e)}KEY_BLOCK_SIZE(){return this.getToken(FC.KEY_BLOCK_SIZE,0)}fileSizeLiteral(){return this.getRuleContext(0,Jx)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}indexType(){return this.getRuleContext(0,M_)}WITH(){return this.getToken(FC.WITH,0)}PARSER(){return this.getToken(FC.PARSER,0)}uid(){return this.getRuleContext(0,Vx)}COMMENT(){return this.getToken(FC.COMMENT,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}VISIBLE(){return this.getToken(FC.VISIBLE,0)}INVISIBLE(){return this.getToken(FC.INVISIBLE,0)}ENGINE_ATTRIBUTE(){return this.getToken(FC.ENGINE_ATTRIBUTE,0)}SECONDARY_ENGINE_ATTRIBUTE(){return this.getToken(FC.SECONDARY_ENGINE_ATTRIBUTE,0)}get ruleIndex(){return FC.RULE_indexOption}accept(t){return t.visitIndexOption?t.visitIndexOption(this):t.visitChildren(this)}},U_=class extends ga{constructor(t,e){super(t,e)}uid(){return this.getRuleContext(0,Vx)}dataType(){return this.getRuleContext(0,tk)}IN(){return this.getToken(FC.IN,0)}OUT(){return this.getToken(FC.OUT,0)}INOUT(){return this.getToken(FC.INOUT,0)}get ruleIndex(){return FC.RULE_procedureParameter}accept(t){return t.visitProcedureParameter?t.visitProcedureParameter(this):t.visitChildren(this)}},m_=class extends ga{constructor(t,e){super(t,e)}uid(){return this.getRuleContext(0,Vx)}dataType(){return this.getRuleContext(0,tk)}get ruleIndex(){return FC.RULE_functionParameter}accept(t){return t.visitFunctionParameter?t.visitFunctionParameter(this):t.visitChildren(this)}},D_=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_routineOption}copyFrom(t){super.copyFrom(t)}},p_=class extends D_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DETERMINISTIC(){return this.getToken(FC.DETERMINISTIC,0)}NOT(){return this.getToken(FC.NOT,0)}accept(t){return t.visitRoutineBehavior?t.visitRoutineBehavior(this):t.visitChildren(this)}},g_=class extends D_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LANGUAGE(){return this.getToken(FC.LANGUAGE,0)}SQL(){return this.getToken(FC.SQL,0)}accept(t){return t.visitRoutineLanguage?t.visitRoutineLanguage(this):t.visitChildren(this)}},x_=class extends D_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}COMMENT(){return this.getToken(FC.COMMENT,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}accept(t){return t.visitRoutineComment?t.visitRoutineComment(this):t.visitChildren(this)}},k_=class extends D_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SQL(){return this.getToken(FC.SQL,0)}SECURITY(){return this.getToken(FC.SECURITY,0)}DEFINER(){return this.getToken(FC.DEFINER,0)}INVOKER(){return this.getToken(FC.INVOKER,0)}accept(t){return t.visitRoutineSecurity?t.visitRoutineSecurity(this):t.visitChildren(this)}},H_=class extends D_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CONTAINS(){return this.getToken(FC.CONTAINS,0)}SQL(){return this.getToken(FC.SQL,0)}NO(){return this.getToken(FC.NO,0)}READS(){return this.getToken(FC.READS,0)}DATA(){return this.getToken(FC.DATA,0)}MODIFIES(){return this.getToken(FC.MODIFIES,0)}accept(t){return t.visitRoutineData?t.visitRoutineData(this):t.visitChildren(this)}},G_=class extends ga{constructor(t,e){super(t,e)}HOST(){return this.getToken(FC.HOST,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}DATABASE(){return this.getToken(FC.DATABASE,0)}USER(){return this.getToken(FC.USER,0)}PASSWORD(){return this.getToken(FC.PASSWORD,0)}SOCKET(){return this.getToken(FC.SOCKET,0)}OWNER(){return this.getToken(FC.OWNER,0)}PORT(){return this.getToken(FC.PORT,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}get ruleIndex(){return FC.RULE_serverOption}accept(t){return t.visitServerOption?t.visitServerOption(this):t.visitChildren(this)}},F_=class extends ga{constructor(t,e){super(t,e)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}createDefinition(t){return void 0===t?this.getRuleContexts(v_):this.getRuleContext(t,v_)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_createDefinitions}accept(t){return t.visitCreateDefinitions?t.visitCreateDefinitions(this):t.visitChildren(this)}},v_=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_createDefinition}copyFrom(t){super.copyFrom(t)}},B_=class extends v_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}fullColumnName(){return this.getRuleContext(0,Px)}columnDefinition(){return this.getRuleContext(0,Y_)}accept(t){return t.visitColumnDeclaration?t.visitColumnDeclaration(this):t.visitChildren(this)}},y_=class extends v_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}tableConstraint(){return this.getRuleContext(0,aP)}NOT(){return this.getToken(FC.NOT,0)}ENFORCED(){return this.getToken(FC.ENFORCED,0)}accept(t){return t.visitConstraintDeclaration?t.visitConstraintDeclaration(this):t.visitChildren(this)}},f_=class extends v_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}indexColumnDefinition(){return this.getRuleContext(0,oP)}accept(t){return t.visitIndexDeclaration?t.visitIndexDeclaration(this):t.visitChildren(this)}},Y_=class extends ga{constructor(t,e){super(t,e)}dataType(){return this.getRuleContext(0,tk)}columnConstraint(t){return void 0===t?this.getRuleContexts(w_):this.getRuleContext(t,w_)}NOT(){return this.getToken(FC.NOT,0)}ENFORCED(){return this.getToken(FC.ENFORCED,0)}get ruleIndex(){return FC.RULE_columnDefinition}accept(t){return t.visitColumnDefinition?t.visitColumnDefinition(this):t.visitChildren(this)}},w_=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_columnConstraint}copyFrom(t){super.copyFrom(t)}},b_=class extends w_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}STORAGE(){return this.getToken(FC.STORAGE,0)}DISK(){return this.getToken(FC.DISK,0)}MEMORY(){return this.getToken(FC.MEMORY,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}accept(t){return t.visitStorageColumnConstraint?t.visitStorageColumnConstraint(this):t.visitChildren(this)}},W_=class extends w_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}VISIBLE(){return this.getToken(FC.VISIBLE,0)}accept(t){return t.visitVisibilityColumnConstraint?t.visitVisibilityColumnConstraint(this):t.visitChildren(this)}},V_=class extends w_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}AUTO_INCREMENT(){return this.getToken(FC.AUTO_INCREMENT,0)}ON(){return this.getToken(FC.ON,0)}UPDATE(){return this.getToken(FC.UPDATE,0)}currentTimestamp(){return this.getRuleContext(0,dk)}accept(t){return t.visitAutoIncrementColumnConstraint?t.visitAutoIncrementColumnConstraint(this):t.visitChildren(this)}},X_=class extends w_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}COMMENT(){return this.getToken(FC.COMMENT,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}accept(t){return t.visitCommentColumnConstraint?t.visitCommentColumnConstraint(this):t.visitChildren(this)}},K_=class extends w_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}UNIQUE(){return this.getToken(FC.UNIQUE,0)}KEY(){return this.getToken(FC.KEY,0)}accept(t){return t.visitUniqueKeyColumnConstraint?t.visitUniqueKeyColumnConstraint(this):t.visitChildren(this)}},Q_=class extends w_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SERIAL(){return this.getToken(FC.SERIAL,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}VALUE(){return this.getToken(FC.VALUE,0)}accept(t){return t.visitSerialDefaultColumnConstraint?t.visitSerialDefaultColumnConstraint(this):t.visitChildren(this)}},J_=class extends w_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}AS(){return this.getToken(FC.AS,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(){return this.getRuleContext(0,NH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}GENERATED(){return this.getToken(FC.GENERATED,0)}ALWAYS(){return this.getToken(FC.ALWAYS,0)}VIRTUAL(){return this.getToken(FC.VIRTUAL,0)}STORED(){return this.getToken(FC.STORED,0)}accept(t){return t.visitGeneratedColumnConstraint?t.visitGeneratedColumnConstraint(this):t.visitChildren(this)}},Z_=class extends w_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}COLUMN_FORMAT(){return this.getToken(FC.COLUMN_FORMAT,0)}FIXED(){return this.getToken(FC.FIXED,0)}DYNAMIC(){return this.getToken(FC.DYNAMIC,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}accept(t){return t.visitFormatColumnConstraint?t.visitFormatColumnConstraint(this):t.visitChildren(this)}},q_=class extends w_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}COLLATE(){return this.getToken(FC.COLLATE,0)}collationName(){return this.getRuleContext(0,Bx)}accept(t){return t.visitCollateColumnConstraint?t.visitCollateColumnConstraint(this):t.visitChildren(this)}},j_=class extends w_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}KEY(){return this.getToken(FC.KEY,0)}PRIMARY(){return this.getToken(FC.PRIMARY,0)}accept(t){return t.visitPrimaryKeyColumnConstraint?t.visitPrimaryKeyColumnConstraint(this):t.visitChildren(this)}},z_=class extends w_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CHECK(){return this.getToken(FC.CHECK,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(){return this.getRuleContext(0,NH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}CONSTRAINT(){return this.getToken(FC.CONSTRAINT,0)}uid(){return this.getRuleContext(0,Vx)}accept(t){return t.visitCheckColumnConstraint?t.visitCheckColumnConstraint(this):t.visitChildren(this)}},$_=class extends w_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}nullNotnull(){return this.getRuleContext(0,zx)}accept(t){return t.visitNullColumnConstraint?t.visitNullColumnConstraint(this):t.visitChildren(this)}},tP=class extends w_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}defaultValue(){return this.getRuleContext(0,Mk)}accept(t){return t.visitDefaultColumnConstraint?t.visitDefaultColumnConstraint(this):t.visitChildren(this)}},eP=class extends w_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}referenceDefinition(){return this.getRuleContext(0,hP)}accept(t){return t.visitReferenceColumnConstraint?t.visitReferenceColumnConstraint(this):t.visitChildren(this)}},sP=class extends w_{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}INVISIBLE(){return this.getToken(FC.INVISIBLE,0)}accept(t){return t.visitInvisibilityColumnConstraint?t.visitInvisibilityColumnConstraint(this):t.visitChildren(this)}},aP=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_tableConstraint}copyFrom(t){super.copyFrom(t)}},rP=class extends aP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}UNIQUE(){return this.getToken(FC.UNIQUE,0)}indexColumnNames(){return this.getRuleContext(0,uk)}CONSTRAINT(){return this.getToken(FC.CONSTRAINT,0)}indexType(){return this.getRuleContext(0,M_)}indexOption(t){return void 0===t?this.getRuleContexts(d_):this.getRuleContext(t,d_)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}INDEX(){return this.getToken(FC.INDEX,0)}KEY(){return this.getToken(FC.KEY,0)}accept(t){return t.visitUniqueKeyTableConstraint?t.visitUniqueKeyTableConstraint(this):t.visitChildren(this)}},iP=class extends aP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CHECK(){return this.getToken(FC.CHECK,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(){return this.getRuleContext(0,NH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}CONSTRAINT(){return this.getToken(FC.CONSTRAINT,0)}uid(){return this.getRuleContext(0,Vx)}accept(t){return t.visitCheckTableConstraint?t.visitCheckTableConstraint(this):t.visitChildren(this)}},cP=class extends aP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}PRIMARY(){return this.getToken(FC.PRIMARY,0)}KEY(){return this.getToken(FC.KEY,0)}indexColumnNames(){return this.getRuleContext(0,uk)}CONSTRAINT(){return this.getToken(FC.CONSTRAINT,0)}indexType(){return this.getRuleContext(0,M_)}indexOption(t){return void 0===t?this.getRuleContexts(d_):this.getRuleContext(t,d_)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}accept(t){return t.visitPrimaryKeyTableConstraint?t.visitPrimaryKeyTableConstraint(this):t.visitChildren(this)}},nP=class extends aP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}FOREIGN(){return this.getToken(FC.FOREIGN,0)}KEY(){return this.getToken(FC.KEY,0)}indexColumnNames(){return this.getRuleContext(0,uk)}referenceDefinition(){return this.getRuleContext(0,hP)}CONSTRAINT(){return this.getToken(FC.CONSTRAINT,0)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}accept(t){return t.visitForeignKeyTableConstraint?t.visitForeignKeyTableConstraint(this):t.visitChildren(this)}},hP=class extends ga{constructor(t,e){super(t,e)}REFERENCES(){return this.getToken(FC.REFERENCES,0)}tableName(){return this.getRuleContext(0,lx)}indexColumnNames(){return this.getRuleContext(0,uk)}MATCH(){return this.getToken(FC.MATCH,0)}referenceAction(){return this.getRuleContext(0,EP)}FULL(){return this.getToken(FC.FULL,0)}PARTIAL(){return this.getToken(FC.PARTIAL,0)}SIMPLE(){return this.getToken(FC.SIMPLE,0)}get ruleIndex(){return FC.RULE_referenceDefinition}accept(t){return t.visitReferenceDefinition?t.visitReferenceDefinition(this):t.visitChildren(this)}},EP=class extends ga{constructor(t,e){super(t,e)}ON(t){return void 0===t?this.getTokens(FC.ON):this.getToken(FC.ON,t)}DELETE(){return this.getToken(FC.DELETE,0)}referenceControlType(t){return void 0===t?this.getRuleContexts(TP):this.getRuleContext(t,TP)}UPDATE(){return this.getToken(FC.UPDATE,0)}get ruleIndex(){return FC.RULE_referenceAction}accept(t){return t.visitReferenceAction?t.visitReferenceAction(this):t.visitChildren(this)}},TP=class extends ga{constructor(t,e){super(t,e)}RESTRICT(){return this.getToken(FC.RESTRICT,0)}CASCADE(){return this.getToken(FC.CASCADE,0)}SET(){return this.getToken(FC.SET,0)}NULL_LITERAL(){return this.getToken(FC.NULL_LITERAL,0)}NO(){return this.getToken(FC.NO,0)}ACTION(){return this.getToken(FC.ACTION,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}get ruleIndex(){return FC.RULE_referenceControlType}accept(t){return t.visitReferenceControlType?t.visitReferenceControlType(this):t.visitChildren(this)}},oP=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_indexColumnDefinition}copyFrom(t){super.copyFrom(t)}},RP=class extends oP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}indexColumnNames(){return this.getRuleContext(0,uk)}FULLTEXT(){return this.getToken(FC.FULLTEXT,0)}SPATIAL(){return this.getToken(FC.SPATIAL,0)}uid(){return this.getRuleContext(0,Vx)}indexOption(t){return void 0===t?this.getRuleContexts(d_):this.getRuleContext(t,d_)}INDEX(){return this.getToken(FC.INDEX,0)}KEY(){return this.getToken(FC.KEY,0)}accept(t){return t.visitSpecialIndexDeclaration?t.visitSpecialIndexDeclaration(this):t.visitChildren(this)}},AP=class extends oP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}indexColumnNames(){return this.getRuleContext(0,uk)}INDEX(){return this.getToken(FC.INDEX,0)}KEY(){return this.getToken(FC.KEY,0)}uid(){return this.getRuleContext(0,Vx)}indexType(){return this.getRuleContext(0,M_)}indexOption(t){return void 0===t?this.getRuleContexts(d_):this.getRuleContext(t,d_)}accept(t){return t.visitSimpleIndexDeclaration?t.visitSimpleIndexDeclaration(this):t.visitChildren(this)}},SP=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_tableOption}copyFrom(t){super.copyFrom(t)}},lP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ENGINE(){return this.getToken(FC.ENGINE,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}engineName(){return this.getRuleContext(0,yx)}accept(t){return t.visitTableOptionEngine?t.visitTableOptionEngine(this):t.visitChildren(this)}},OP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MAX_ROWS(){return this.getToken(FC.MAX_ROWS,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionMaxRows?t.visitTableOptionMaxRows(this):t.visitChildren(this)}},IP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}COLLATE(){return this.getToken(FC.COLLATE,0)}collationName(){return this.getRuleContext(0,Bx)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionCollate?t.visitTableOptionCollate(this):t.visitChildren(this)}},uP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}STATS_PERSISTENT(){return this.getToken(FC.STATS_PERSISTENT,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}ZERO_DECIMAL(){return this.getToken(FC.ZERO_DECIMAL,0)}ONE_DECIMAL(){return this.getToken(FC.ONE_DECIMAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionPersistent?t.visitTableOptionPersistent(this):t.visitChildren(this)}},NP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}TABLESPACE(){return this.getToken(FC.TABLESPACE,0)}uid(){return this.getRuleContext(0,Vx)}tablespaceStorage(){return this.getRuleContext(0,qP)}accept(t){return t.visitTableOptionTablespace?t.visitTableOptionTablespace(this):t.visitChildren(this)}},LP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}AUTOEXTEND_SIZE(){return this.getToken(FC.AUTOEXTEND_SIZE,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionAutoextendSize?t.visitTableOptionAutoextendSize(this):t.visitChildren(this)}},CP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}PAGE_COMPRESSED(){return this.getToken(FC.PAGE_COMPRESSED,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}ZERO_DECIMAL(){return this.getToken(FC.ZERO_DECIMAL,0)}ONE_DECIMAL(){return this.getToken(FC.ONE_DECIMAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionPageCompressed?t.visitTableOptionPageCompressed(this):t.visitChildren(this)}},_P=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}START(){return this.getToken(FC.START,0)}TRANSACTION(){return this.getToken(FC.TRANSACTION,0)}accept(t){return t.visitTableOptionStartTransaction?t.visitTableOptionStartTransaction(this):t.visitChildren(this)}},PP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}PACK_KEYS(){return this.getToken(FC.PACK_KEYS,0)}ZERO_DECIMAL(){return this.getToken(FC.ZERO_DECIMAL,0)}ONE_DECIMAL(){return this.getToken(FC.ONE_DECIMAL,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionPackKeys?t.visitTableOptionPackKeys(this):t.visitChildren(this)}},MP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}PASSWORD(){return this.getToken(FC.PASSWORD,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionPassword?t.visitTableOptionPassword(this):t.visitChildren(this)}},dP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}UNION(){return this.getToken(FC.UNION,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}tables(){return this.getRuleContext(0,Ik)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionUnion?t.visitTableOptionUnion(this):t.visitChildren(this)}},UP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}STATS_SAMPLE_PAGES(){return this.getToken(FC.STATS_SAMPLE_PAGES,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionSamplePage?t.visitTableOptionSamplePage(this):t.visitChildren(this)}},mP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}charSet(){return this.getRuleContext(0,S_)}charsetName(){return this.getRuleContext(0,vx)}DEFAULT(t){return void 0===t?this.getTokens(FC.DEFAULT):this.getToken(FC.DEFAULT,t)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionCharset?t.visitTableOptionCharset(this):t.visitChildren(this)}},DP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}INDEX(){return this.getToken(FC.INDEX,0)}DIRECTORY(){return this.getToken(FC.DIRECTORY,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionIndexDirectory?t.visitTableOptionIndexDirectory(this):t.visitChildren(this)}},pP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}TABLE_TYPE(){return this.getToken(FC.TABLE_TYPE,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}tableType(){return this.getRuleContext(0,ZP)}accept(t){return t.visitTableOptionTableType?t.visitTableOptionTableType(this):t.visitChildren(this)}},gP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}KEY_BLOCK_SIZE(){return this.getToken(FC.KEY_BLOCK_SIZE,0)}fileSizeLiteral(){return this.getRuleContext(0,Jx)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionKeyBlockSize?t.visitTableOptionKeyBlockSize(this):t.visitChildren(this)}},xP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ENCRYPTION(){return this.getToken(FC.ENCRYPTION,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionEncryption?t.visitTableOptionEncryption(this):t.visitChildren(this)}},kP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DIRECTORY(){return this.getToken(FC.DIRECTORY,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}DATA(){return this.getToken(FC.DATA,0)}INDEX(){return this.getToken(FC.INDEX,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionDataDirectory?t.visitTableOptionDataDirectory(this):t.visitChildren(this)}},HP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}STATS_AUTO_RECALC(){return this.getToken(FC.STATS_AUTO_RECALC,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}ZERO_DECIMAL(){return this.getToken(FC.ZERO_DECIMAL,0)}ONE_DECIMAL(){return this.getToken(FC.ONE_DECIMAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionRecalculation?t.visitTableOptionRecalculation(this):t.visitChildren(this)}},GP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}AUTO_INCREMENT(){return this.getToken(FC.AUTO_INCREMENT,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionAutoIncrement?t.visitTableOptionAutoIncrement(this):t.visitChildren(this)}},FP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ENCRYPTION_KEY_ID(){return this.getToken(FC.ENCRYPTION_KEY_ID,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionEncryptionKeyId?t.visitTableOptionEncryptionKeyId(this):t.visitChildren(this)}},vP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CHECKSUM(){return this.getToken(FC.CHECKSUM,0)}PAGE_CHECKSUM(){return this.getToken(FC.PAGE_CHECKSUM,0)}ZERO_DECIMAL(){return this.getToken(FC.ZERO_DECIMAL,0)}ONE_DECIMAL(){return this.getToken(FC.ONE_DECIMAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionChecksum?t.visitTableOptionChecksum(this):t.visitChildren(this)}},BP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DELAY_KEY_WRITE(){return this.getToken(FC.DELAY_KEY_WRITE,0)}ZERO_DECIMAL(){return this.getToken(FC.ZERO_DECIMAL,0)}ONE_DECIMAL(){return this.getToken(FC.ONE_DECIMAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionDelay?t.visitTableOptionDelay(this):t.visitChildren(this)}},yP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CONNECTION(){return this.getToken(FC.CONNECTION,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionConnection?t.visitTableOptionConnection(this):t.visitChildren(this)}},fP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}TRANSACTIONAL(){return this.getToken(FC.TRANSACTIONAL,0)}ZERO_DECIMAL(){return this.getToken(FC.ZERO_DECIMAL,0)}ONE_DECIMAL(){return this.getToken(FC.ONE_DECIMAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionTransactional?t.visitTableOptionTransactional(this):t.visitChildren(this)}},YP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}decimalLiteral(){return this.getRuleContext(0,Qx)}PAGE_COMPRESSION_LEVEL(){return this.getToken(FC.PAGE_COMPRESSION_LEVEL,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionPageCompressionLevel?t.visitTableOptionPageCompressionLevel(this):t.visitChildren(this)}},wP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SECONDARY_ENGINE_ATTRIBUTE(){return this.getToken(FC.SECONDARY_ENGINE_ATTRIBUTE,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionSecondaryEngineAttribute?t.visitTableOptionSecondaryEngineAttribute(this):t.visitChildren(this)}},bP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}COMMENT(){return this.getToken(FC.COMMENT,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionComment?t.visitTableOptionComment(this):t.visitChildren(this)}},WP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}AVG_ROW_LENGTH(){return this.getToken(FC.AVG_ROW_LENGTH,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionAverage?t.visitTableOptionAverage(this):t.visitChildren(this)}},VP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ROW_FORMAT(){return this.getToken(FC.ROW_FORMAT,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}DYNAMIC(){return this.getToken(FC.DYNAMIC,0)}FIXED(){return this.getToken(FC.FIXED,0)}COMPRESSED(){return this.getToken(FC.COMPRESSED,0)}REDUNDANT(){return this.getToken(FC.REDUNDANT,0)}COMPACT(){return this.getToken(FC.COMPACT,0)}ID(){return this.getToken(FC.ID,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionRowFormat?t.visitTableOptionRowFormat(this):t.visitChildren(this)}},XP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}COMPRESSION(){return this.getToken(FC.COMPRESSION,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}ID(){return this.getToken(FC.ID,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionCompression?t.visitTableOptionCompression(this):t.visitChildren(this)}},KP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}INSERT_METHOD(){return this.getToken(FC.INSERT_METHOD,0)}NO(){return this.getToken(FC.NO,0)}FIRST(){return this.getToken(FC.FIRST,0)}LAST(){return this.getToken(FC.LAST,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionInsertMethod?t.visitTableOptionInsertMethod(this):t.visitChildren(this)}},QP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ENGINE_ATTRIBUTE(){return this.getToken(FC.ENGINE_ATTRIBUTE,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionEngineAttribute?t.visitTableOptionEngineAttribute(this):t.visitChildren(this)}},JP=class extends SP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MIN_ROWS(){return this.getToken(FC.MIN_ROWS,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitTableOptionMinRows?t.visitTableOptionMinRows(this):t.visitChildren(this)}},ZP=class extends ga{constructor(t,e){super(t,e)}MYSQL(){return this.getToken(FC.MYSQL,0)}ODBC(){return this.getToken(FC.ODBC,0)}get ruleIndex(){return FC.RULE_tableType}accept(t){return t.visitTableType?t.visitTableType(this):t.visitChildren(this)}},qP=class extends ga{constructor(t,e){super(t,e)}STORAGE(){return this.getToken(FC.STORAGE,0)}DISK(){return this.getToken(FC.DISK,0)}MEMORY(){return this.getToken(FC.MEMORY,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}get ruleIndex(){return FC.RULE_tablespaceStorage}accept(t){return t.visitTablespaceStorage?t.visitTablespaceStorage(this):t.visitChildren(this)}},jP=class extends ga{constructor(t,e){super(t,e)}PARTITION(){return this.getToken(FC.PARTITION,0)}BY(t){return void 0===t?this.getTokens(FC.BY):this.getToken(FC.BY,t)}partitionFunctionDefinition(){return this.getRuleContext(0,zP)}PARTITIONS(){return this.getToken(FC.PARTITIONS,0)}SUBPARTITION(){return this.getToken(FC.SUBPARTITION,0)}subpartitionFunctionDefinition(){return this.getRuleContext(0,aM)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}partitionDefinition(t){return void 0===t?this.getRuleContexts(cM):this.getRuleContext(t,cM)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}decimalLiteral(t){return void 0===t?this.getRuleContexts(Qx):this.getRuleContext(t,Qx)}SUBPARTITIONS(){return this.getToken(FC.SUBPARTITIONS,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_partitionDefinitions}accept(t){return t.visitPartitionDefinitions?t.visitPartitionDefinitions(this):t.visitChildren(this)}},zP=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_partitionFunctionDefinition}copyFrom(t){super.copyFrom(t)}},$P=class extends zP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}KEY(){return this.getToken(FC.KEY,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}LINEAR(){return this.getToken(FC.LINEAR,0)}ALGORITHM(){return this.getToken(FC.ALGORITHM,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}uidList(){return this.getRuleContext(0,lk)}ONE_DECIMAL(){return this.getToken(FC.ONE_DECIMAL,0)}TWO_DECIMAL(){return this.getToken(FC.TWO_DECIMAL,0)}accept(t){return t.visitPartitionFunctionKey?t.visitPartitionFunctionKey(this):t.visitChildren(this)}},tM=class extends zP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}HASH(){return this.getToken(FC.HASH,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(){return this.getRuleContext(0,NH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}LINEAR(){return this.getToken(FC.LINEAR,0)}accept(t){return t.visitPartitionFunctionHash?t.visitPartitionFunctionHash(this):t.visitChildren(this)}},eM=class extends zP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LIST(){return this.getToken(FC.LIST,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(){return this.getRuleContext(0,NH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COLUMNS(){return this.getToken(FC.COLUMNS,0)}uidList(){return this.getRuleContext(0,lk)}accept(t){return t.visitPartitionFunctionList?t.visitPartitionFunctionList(this):t.visitChildren(this)}},sM=class extends zP{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}RANGE(){return this.getToken(FC.RANGE,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(){return this.getRuleContext(0,NH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COLUMNS(){return this.getToken(FC.COLUMNS,0)}uidList(){return this.getRuleContext(0,lk)}accept(t){return t.visitPartitionFunctionRange?t.visitPartitionFunctionRange(this):t.visitChildren(this)}},aM=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_subpartitionFunctionDefinition}copyFrom(t){super.copyFrom(t)}},rM=class extends aM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}HASH(){return this.getToken(FC.HASH,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(){return this.getRuleContext(0,NH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}LINEAR(){return this.getToken(FC.LINEAR,0)}accept(t){return t.visitSubPartitionFunctionHash?t.visitSubPartitionFunctionHash(this):t.visitChildren(this)}},iM=class extends aM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}KEY(){return this.getToken(FC.KEY,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}uidList(){return this.getRuleContext(0,lk)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}LINEAR(){return this.getToken(FC.LINEAR,0)}ALGORITHM(){return this.getToken(FC.ALGORITHM,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}ONE_DECIMAL(){return this.getToken(FC.ONE_DECIMAL,0)}TWO_DECIMAL(){return this.getToken(FC.TWO_DECIMAL,0)}accept(t){return t.visitSubPartitionFunctionKey?t.visitSubPartitionFunctionKey(this):t.visitChildren(this)}},cM=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_partitionDefinition}copyFrom(t){super.copyFrom(t)}},nM=class extends cM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}PARTITION(){return this.getToken(FC.PARTITION,0)}uid(){return this.getRuleContext(0,Vx)}VALUES(){return this.getToken(FC.VALUES,0)}LESS(){return this.getToken(FC.LESS,0)}THAN(){return this.getToken(FC.THAN,0)}LR_BRACKET(t){return void 0===t?this.getTokens(FC.LR_BRACKET):this.getToken(FC.LR_BRACKET,t)}partitionDefinerAtom(t){return void 0===t?this.getRuleContexts(oM):this.getRuleContext(t,oM)}RR_BRACKET(t){return void 0===t?this.getTokens(FC.RR_BRACKET):this.getToken(FC.RR_BRACKET,t)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}partitionOption(t){return void 0===t?this.getRuleContexts(SM):this.getRuleContext(t,SM)}subpartitionDefinition(t){return void 0===t?this.getRuleContexts(AM):this.getRuleContext(t,AM)}accept(t){return t.visitPartitionComparison?t.visitPartitionComparison(this):t.visitChildren(this)}},hM=class extends cM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}PARTITION(){return this.getToken(FC.PARTITION,0)}uid(){return this.getRuleContext(0,Vx)}VALUES(){return this.getToken(FC.VALUES,0)}IN(){return this.getToken(FC.IN,0)}LR_BRACKET(t){return void 0===t?this.getTokens(FC.LR_BRACKET):this.getToken(FC.LR_BRACKET,t)}partitionDefinerAtom(t){return void 0===t?this.getRuleContexts(oM):this.getRuleContext(t,oM)}RR_BRACKET(t){return void 0===t?this.getTokens(FC.RR_BRACKET):this.getToken(FC.RR_BRACKET,t)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}partitionOption(t){return void 0===t?this.getRuleContexts(SM):this.getRuleContext(t,SM)}subpartitionDefinition(t){return void 0===t?this.getRuleContexts(AM):this.getRuleContext(t,AM)}accept(t){return t.visitPartitionListAtom?t.visitPartitionListAtom(this):t.visitChildren(this)}},EM=class extends cM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}PARTITION(){return this.getToken(FC.PARTITION,0)}uid(){return this.getRuleContext(0,Vx)}VALUES(){return this.getToken(FC.VALUES,0)}IN(){return this.getToken(FC.IN,0)}LR_BRACKET(t){return void 0===t?this.getTokens(FC.LR_BRACKET):this.getToken(FC.LR_BRACKET,t)}partitionDefinerVector(t){return void 0===t?this.getRuleContexts(RM):this.getRuleContext(t,RM)}RR_BRACKET(t){return void 0===t?this.getTokens(FC.RR_BRACKET):this.getToken(FC.RR_BRACKET,t)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}partitionOption(t){return void 0===t?this.getRuleContexts(SM):this.getRuleContext(t,SM)}subpartitionDefinition(t){return void 0===t?this.getRuleContexts(AM):this.getRuleContext(t,AM)}accept(t){return t.visitPartitionListVector?t.visitPartitionListVector(this):t.visitChildren(this)}},TM=class extends cM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}PARTITION(){return this.getToken(FC.PARTITION,0)}uid(){return this.getRuleContext(0,Vx)}partitionOption(t){return void 0===t?this.getRuleContexts(SM):this.getRuleContext(t,SM)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}subpartitionDefinition(t){return void 0===t?this.getRuleContexts(AM):this.getRuleContext(t,AM)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitPartitionSimple?t.visitPartitionSimple(this):t.visitChildren(this)}},oM=class extends ga{constructor(t,e){super(t,e)}constant(){return this.getRuleContext(0,$x)}expression(){return this.getRuleContext(0,NH)}MAXVALUE(){return this.getToken(FC.MAXVALUE,0)}get ruleIndex(){return FC.RULE_partitionDefinerAtom}accept(t){return t.visitPartitionDefinerAtom?t.visitPartitionDefinerAtom(this):t.visitChildren(this)}},RM=class extends ga{constructor(t,e){super(t,e)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}partitionDefinerAtom(t){return void 0===t?this.getRuleContexts(oM):this.getRuleContext(t,oM)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_partitionDefinerVector}accept(t){return t.visitPartitionDefinerVector?t.visitPartitionDefinerVector(this):t.visitChildren(this)}},AM=class extends ga{constructor(t,e){super(t,e)}SUBPARTITION(){return this.getToken(FC.SUBPARTITION,0)}uid(){return this.getRuleContext(0,Vx)}partitionOption(t){return void 0===t?this.getRuleContexts(SM):this.getRuleContext(t,SM)}get ruleIndex(){return FC.RULE_subpartitionDefinition}accept(t){return t.visitSubpartitionDefinition?t.visitSubpartitionDefinition(this):t.visitChildren(this)}},SM=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_partitionOption}copyFrom(t){super.copyFrom(t)}},lM=class extends SM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}COMMENT(){return this.getToken(FC.COMMENT,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitPartitionOptionComment?t.visitPartitionOptionComment(this):t.visitChildren(this)}},OM=class extends SM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}NODEGROUP(){return this.getToken(FC.NODEGROUP,0)}uid(){return this.getRuleContext(0,Vx)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitPartitionOptionNodeGroup?t.visitPartitionOptionNodeGroup(this):t.visitChildren(this)}},IM=class extends SM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}INDEX(){return this.getToken(FC.INDEX,0)}DIRECTORY(){return this.getToken(FC.DIRECTORY,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitPartitionOptionIndexDirectory?t.visitPartitionOptionIndexDirectory(this):t.visitChildren(this)}},uM=class extends SM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MAX_ROWS(){return this.getToken(FC.MAX_ROWS,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitPartitionOptionMaxRows?t.visitPartitionOptionMaxRows(this):t.visitChildren(this)}},NM=class extends SM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}TABLESPACE(){return this.getToken(FC.TABLESPACE,0)}uid(){return this.getRuleContext(0,Vx)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitPartitionOptionTablespace?t.visitPartitionOptionTablespace(this):t.visitChildren(this)}},LM=class extends SM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ENGINE(){return this.getToken(FC.ENGINE,0)}engineName(){return this.getRuleContext(0,yx)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}STORAGE(){return this.getToken(FC.STORAGE,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitPartitionOptionEngine?t.visitPartitionOptionEngine(this):t.visitChildren(this)}},CM=class extends SM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MIN_ROWS(){return this.getToken(FC.MIN_ROWS,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitPartitionOptionMinRows?t.visitPartitionOptionMinRows(this):t.visitChildren(this)}},_M=class extends SM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DATA(){return this.getToken(FC.DATA,0)}DIRECTORY(){return this.getToken(FC.DIRECTORY,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitPartitionOptionDataDirectory?t.visitPartitionOptionDataDirectory(this):t.visitChildren(this)}},PM=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_alterDatabase}copyFrom(t){super.copyFrom(t)}},MM=class extends PM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ALTER(){return this.getToken(FC.ALTER,0)}databaseName(){return this.getRuleContext(0,Mx)}UPGRADE(){return this.getToken(FC.UPGRADE,0)}DATA(){return this.getToken(FC.DATA,0)}DIRECTORY(){return this.getToken(FC.DIRECTORY,0)}NAME(){return this.getToken(FC.NAME,0)}DATABASE(){return this.getToken(FC.DATABASE,0)}SCHEMA(){return this.getToken(FC.SCHEMA,0)}accept(t){return t.visitAlterUpgradeName?t.visitAlterUpgradeName(this):t.visitChildren(this)}},dM=class extends PM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ALTER(){return this.getToken(FC.ALTER,0)}databaseName(){return this.getRuleContext(0,Mx)}DATABASE(){return this.getToken(FC.DATABASE,0)}SCHEMA(){return this.getToken(FC.SCHEMA,0)}createDatabaseOption(t){return void 0===t?this.getRuleContexts(A_):this.getRuleContext(t,A_)}accept(t){return t.visitAlterSimpleDatabase?t.visitAlterSimpleDatabase(this):t.visitChildren(this)}},UM=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(FC.ALTER,0)}EVENT(){return this.getToken(FC.EVENT,0)}fullId(t){return void 0===t?this.getRuleContexts(Sx):this.getRuleContext(t,Sx)}ownerStatement(){return this.getRuleContext(0,O_)}ON(t){return void 0===t?this.getTokens(FC.ON):this.getToken(FC.ON,t)}SCHEDULE(){return this.getToken(FC.SCHEDULE,0)}scheduleExpression(){return this.getRuleContext(0,I_)}COMPLETION(){return this.getToken(FC.COMPLETION,0)}PRESERVE(){return this.getToken(FC.PRESERVE,0)}RENAME(){return this.getToken(FC.RENAME,0)}TO(){return this.getToken(FC.TO,0)}enableType(){return this.getRuleContext(0,P_)}COMMENT(){return this.getToken(FC.COMMENT,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}DO(){return this.getToken(FC.DO,0)}routineBody(){return this.getRuleContext(0,HD)}NOT(){return this.getToken(FC.NOT,0)}get ruleIndex(){return FC.RULE_alterEvent}accept(t){return t.visitAlterEvent?t.visitAlterEvent(this):t.visitChildren(this)}},mM=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(FC.ALTER,0)}FUNCTION(){return this.getToken(FC.FUNCTION,0)}fullId(){return this.getRuleContext(0,Sx)}routineOption(t){return void 0===t?this.getRuleContexts(D_):this.getRuleContext(t,D_)}get ruleIndex(){return FC.RULE_alterFunction}accept(t){return t.visitAlterFunction?t.visitAlterFunction(this):t.visitChildren(this)}},DM=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(FC.ALTER,0)}INSTANCE(){return this.getToken(FC.INSTANCE,0)}ROTATE(){return this.getToken(FC.ROTATE,0)}INNODB(){return this.getToken(FC.INNODB,0)}MASTER(){return this.getToken(FC.MASTER,0)}KEY(){return this.getToken(FC.KEY,0)}get ruleIndex(){return FC.RULE_alterInstance}accept(t){return t.visitAlterInstance?t.visitAlterInstance(this):t.visitChildren(this)}},pM=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(FC.ALTER,0)}LOGFILE(){return this.getToken(FC.LOGFILE,0)}GROUP(){return this.getToken(FC.GROUP,0)}uid(){return this.getRuleContext(0,Vx)}ADD(){return this.getToken(FC.ADD,0)}UNDOFILE(){return this.getToken(FC.UNDOFILE,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}ENGINE(){return this.getToken(FC.ENGINE,0)}engineName(){return this.getRuleContext(0,yx)}INITIAL_SIZE(){return this.getToken(FC.INITIAL_SIZE,0)}fileSizeLiteral(){return this.getRuleContext(0,Jx)}WAIT(){return this.getToken(FC.WAIT,0)}EQUAL_SYMBOL(t){return void 0===t?this.getTokens(FC.EQUAL_SYMBOL):this.getToken(FC.EQUAL_SYMBOL,t)}get ruleIndex(){return FC.RULE_alterLogfileGroup}accept(t){return t.visitAlterLogfileGroup?t.visitAlterLogfileGroup(this):t.visitChildren(this)}},gM=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(FC.ALTER,0)}PROCEDURE(){return this.getToken(FC.PROCEDURE,0)}fullId(){return this.getRuleContext(0,Sx)}routineOption(t){return void 0===t?this.getRuleContexts(D_):this.getRuleContext(t,D_)}get ruleIndex(){return FC.RULE_alterProcedure}accept(t){return t.visitAlterProcedure?t.visitAlterProcedure(this):t.visitChildren(this)}},xM=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(FC.ALTER,0)}SERVER(){return this.getToken(FC.SERVER,0)}uid(){return this.getRuleContext(0,Vx)}OPTIONS(){return this.getToken(FC.OPTIONS,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}serverOption(t){return void 0===t?this.getRuleContexts(G_):this.getRuleContext(t,G_)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_alterServer}accept(t){return t.visitAlterServer?t.visitAlterServer(this):t.visitChildren(this)}},kM=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(FC.ALTER,0)}TABLE(){return this.getToken(FC.TABLE,0)}tableName(){return this.getRuleContext(0,lx)}IGNORE(){return this.getToken(FC.IGNORE,0)}waitNowaitClause(){return this.getRuleContext(0,gk)}alterSpecification(t){return void 0===t?this.getRuleContexts(FM):this.getRuleContext(t,FM)}partitionDefinitions(){return this.getRuleContext(0,jP)}ONLINE(){return this.getToken(FC.ONLINE,0)}OFFLINE(){return this.getToken(FC.OFFLINE,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_alterTable}accept(t){return t.visitAlterTable?t.visitAlterTable(this):t.visitChildren(this)}},HM=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(FC.ALTER,0)}TABLESPACE(){return this.getToken(FC.TABLESPACE,0)}uid(){return this.getRuleContext(0,Vx)}DATAFILE(){return this.getToken(FC.DATAFILE,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}ENGINE(){return this.getToken(FC.ENGINE,0)}engineName(){return this.getRuleContext(0,yx)}ADD(){return this.getToken(FC.ADD,0)}DROP(){return this.getToken(FC.DROP,0)}INITIAL_SIZE(){return this.getToken(FC.INITIAL_SIZE,0)}EQUAL_SYMBOL(t){return void 0===t?this.getTokens(FC.EQUAL_SYMBOL):this.getToken(FC.EQUAL_SYMBOL,t)}fileSizeLiteral(){return this.getRuleContext(0,Jx)}WAIT(){return this.getToken(FC.WAIT,0)}get ruleIndex(){return FC.RULE_alterTablespace}accept(t){return t.visitAlterTablespace?t.visitAlterTablespace(this):t.visitChildren(this)}},GM=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(FC.ALTER,0)}VIEW(){return this.getToken(FC.VIEW,0)}fullId(){return this.getRuleContext(0,Sx)}AS(){return this.getToken(FC.AS,0)}selectStatement(){return this.getRuleContext(0,rU)}ALGORITHM(){return this.getToken(FC.ALGORITHM,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}ownerStatement(){return this.getRuleContext(0,O_)}SQL(){return this.getToken(FC.SQL,0)}SECURITY(){return this.getToken(FC.SECURITY,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}uidList(){return this.getRuleContext(0,lk)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}WITH(){return this.getToken(FC.WITH,0)}CHECK(){return this.getToken(FC.CHECK,0)}OPTION(){return this.getToken(FC.OPTION,0)}UNDEFINED(){return this.getToken(FC.UNDEFINED,0)}MERGE(){return this.getToken(FC.MERGE,0)}TEMPTABLE(){return this.getToken(FC.TEMPTABLE,0)}DEFINER(){return this.getToken(FC.DEFINER,0)}INVOKER(){return this.getToken(FC.INVOKER,0)}CASCADED(){return this.getToken(FC.CASCADED,0)}LOCAL(){return this.getToken(FC.LOCAL,0)}get ruleIndex(){return FC.RULE_alterView}accept(t){return t.visitAlterView?t.visitAlterView(this):t.visitChildren(this)}},FM=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_alterSpecification}copyFrom(t){super.copyFrom(t)}},vM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ALTER(){return this.getToken(FC.ALTER,0)}uid(){return this.getRuleContext(0,Vx)}SET(){return this.getToken(FC.SET,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}DROP(){return this.getToken(FC.DROP,0)}COLUMN(){return this.getToken(FC.COLUMN,0)}VISIBLE(){return this.getToken(FC.VISIBLE,0)}INVISIBLE(){return this.getToken(FC.INVISIBLE,0)}stringLiteral(){return this.getRuleContext(0,Zx)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(){return this.getRuleContext(0,NH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}accept(t){return t.visitAlterByAlterColumnDefault?t.visitAlterByAlterColumnDefault(this):t.visitChildren(this)}},BM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DISABLE(){return this.getToken(FC.DISABLE,0)}KEYS(){return this.getToken(FC.KEYS,0)}accept(t){return t.visitAlterByDisableKeys?t.visitAlterByDisableKeys(this):t.visitChildren(this)}},yM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CHARACTER(){return this.getToken(FC.CHARACTER,0)}SET(){return this.getToken(FC.SET,0)}EQUAL_SYMBOL(t){return void 0===t?this.getTokens(FC.EQUAL_SYMBOL):this.getToken(FC.EQUAL_SYMBOL,t)}charsetName(){return this.getRuleContext(0,vx)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}COLLATE(){return this.getToken(FC.COLLATE,0)}collationName(){return this.getRuleContext(0,Bx)}accept(t){return t.visitAlterByDefaultCharset?t.visitAlterByDefaultCharset(this):t.visitChildren(this)}},fM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}RENAME(){return this.getToken(FC.RENAME,0)}COLUMN(){return this.getToken(FC.COLUMN,0)}TO(){return this.getToken(FC.TO,0)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}accept(t){return t.visitAlterByRenameColumn?t.visitAlterByRenameColumn(this):t.visitChildren(this)}},YM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CONVERT(){return this.getToken(FC.CONVERT,0)}TO(){return this.getToken(FC.TO,0)}charsetName(){return this.getRuleContext(0,vx)}CHARSET(){return this.getToken(FC.CHARSET,0)}CHARACTER(){return this.getToken(FC.CHARACTER,0)}SET(){return this.getToken(FC.SET,0)}COLLATE(){return this.getToken(FC.COLLATE,0)}collationName(){return this.getRuleContext(0,Bx)}accept(t){return t.visitAlterByConvertCharset?t.visitAlterByConvertCharset(this):t.visitChildren(this)}},wM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ADD(){return this.getToken(FC.ADD,0)}FOREIGN(){return this.getToken(FC.FOREIGN,0)}KEY(){return this.getToken(FC.KEY,0)}indexColumnNames(){return this.getRuleContext(0,uk)}referenceDefinition(){return this.getRuleContext(0,hP)}CONSTRAINT(){return this.getToken(FC.CONSTRAINT,0)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}accept(t){return t.visitAlterByAddForeignKey?t.visitAlterByAddForeignKey(this):t.visitChildren(this)}},bM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}RENAME(){return this.getToken(FC.RENAME,0)}indexName(){return this.getRuleContext(0,dx)}TO(){return this.getToken(FC.TO,0)}uid(){return this.getRuleContext(0,Vx)}INDEX(){return this.getToken(FC.INDEX,0)}KEY(){return this.getToken(FC.KEY,0)}accept(t){return t.visitAlterByRenameIndex?t.visitAlterByRenameIndex(this):t.visitChildren(this)}},WM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}RENAME(){return this.getToken(FC.RENAME,0)}uid(){return this.getRuleContext(0,Vx)}fullId(){return this.getRuleContext(0,Sx)}TO(){return this.getToken(FC.TO,0)}AS(){return this.getToken(FC.AS,0)}accept(t){return t.visitAlterByRename?t.visitAlterByRename(this):t.visitChildren(this)}},VM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}IMPORT(){return this.getToken(FC.IMPORT,0)}TABLESPACE(){return this.getToken(FC.TABLESPACE,0)}accept(t){return t.visitAlterByImportTablespace?t.visitAlterByImportTablespace(this):t.visitChildren(this)}},XM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ADD(){return this.getToken(FC.ADD,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}createDefinition(t){return void 0===t?this.getRuleContexts(v_):this.getRuleContext(t,v_)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COLUMN(){return this.getToken(FC.COLUMN,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitAlterByAddDefinitions?t.visitAlterByAddDefinitions(this):t.visitChildren(this)}},KM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ALTER(){return this.getToken(FC.ALTER,0)}CHECK(){return this.getToken(FC.CHECK,0)}uid(){return this.getRuleContext(0,Vx)}stringLiteral(){return this.getRuleContext(0,Zx)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(){return this.getRuleContext(0,NH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}CONSTRAINT(){return this.getToken(FC.CONSTRAINT,0)}NOT(){return this.getToken(FC.NOT,0)}ENFORCED(){return this.getToken(FC.ENFORCED,0)}constraintName(){return this.getRuleContext(0,Ux)}accept(t){return t.visitAlterByAlterCheckTableConstraint?t.visitAlterByAlterCheckTableConstraint(this):t.visitChildren(this)}},QM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DROP(){return this.getToken(FC.DROP,0)}constraintName(){return this.getRuleContext(0,Ux)}CONSTRAINT(){return this.getToken(FC.CONSTRAINT,0)}CHECK(){return this.getToken(FC.CHECK,0)}accept(t){return t.visitAlterByDropConstraintCheck?t.visitAlterByDropConstraintCheck(this):t.visitChildren(this)}},JM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ADD(){return this.getToken(FC.ADD,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}columnDefinition(t){return void 0===t?this.getRuleContexts(Y_):this.getRuleContext(t,Y_)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COLUMN(){return this.getToken(FC.COLUMN,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitAlterByAddColumns?t.visitAlterByAddColumns(this):t.visitChildren(this)}},ZM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ALTER(){return this.getToken(FC.ALTER,0)}INDEX(){return this.getToken(FC.INDEX,0)}indexName(){return this.getRuleContext(0,dx)}VISIBLE(){return this.getToken(FC.VISIBLE,0)}INVISIBLE(){return this.getToken(FC.INVISIBLE,0)}accept(t){return t.visitAlterByAlterIndexVisibility?t.visitAlterByAlterIndexVisibility(this):t.visitChildren(this)}},qM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DROP(){return this.getToken(FC.DROP,0)}FOREIGN(){return this.getToken(FC.FOREIGN,0)}KEY(){return this.getToken(FC.KEY,0)}uid(){return this.getRuleContext(0,Vx)}accept(t){return t.visitAlterByDropForeignKey?t.visitAlterByDropForeignKey(this):t.visitChildren(this)}},jM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ADD(){return this.getToken(FC.ADD,0)}CHECK(){return this.getToken(FC.CHECK,0)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}stringLiteral(){return this.getRuleContext(0,Zx)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(){return this.getRuleContext(0,NH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}CONSTRAINT(){return this.getToken(FC.CONSTRAINT,0)}NOT(){return this.getToken(FC.NOT,0)}ENFORCED(){return this.getToken(FC.ENFORCED,0)}accept(t){return t.visitAlterByAddCheckTableConstraint?t.visitAlterByAddCheckTableConstraint(this):t.visitChildren(this)}},zM=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}alterPartitionSpecification(){return this.getRuleContext(0,ud)}accept(t){return t.visitAlterPartition?t.visitAlterPartition(this):t.visitChildren(this)}},$M=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ADD(){return this.getToken(FC.ADD,0)}indexColumnNames(){return this.getRuleContext(0,uk)}INDEX(){return this.getToken(FC.INDEX,0)}KEY(){return this.getToken(FC.KEY,0)}uid(){return this.getRuleContext(0,Vx)}indexType(){return this.getRuleContext(0,M_)}indexOption(t){return void 0===t?this.getRuleContexts(d_):this.getRuleContext(t,d_)}accept(t){return t.visitAlterByAddIndex?t.visitAlterByAddIndex(this):t.visitChildren(this)}},td=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DROP(){return this.getToken(FC.DROP,0)}uid(){return this.getRuleContext(0,Vx)}COLUMN(){return this.getToken(FC.COLUMN,0)}RESTRICT(){return this.getToken(FC.RESTRICT,0)}accept(t){return t.visitAlterByDropColumn?t.visitAlterByDropColumn(this):t.visitChildren(this)}},ed=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ALTER(){return this.getToken(FC.ALTER,0)}uid(){return this.getRuleContext(0,Vx)}SET(){return this.getToken(FC.SET,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}defaultValue(){return this.getRuleContext(0,Mk)}DROP(){return this.getToken(FC.DROP,0)}COLUMN(){return this.getToken(FC.COLUMN,0)}accept(t){return t.visitAlterByChangeDefault?t.visitAlterByChangeDefault(this):t.visitChildren(this)}},sd=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}FORCE(){return this.getToken(FC.FORCE,0)}accept(t){return t.visitAlterByForce?t.visitAlterByForce(this):t.visitChildren(this)}},ad=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ADD(){return this.getToken(FC.ADD,0)}indexColumnNames(){return this.getRuleContext(0,uk)}FULLTEXT(){return this.getToken(FC.FULLTEXT,0)}SPATIAL(){return this.getToken(FC.SPATIAL,0)}uid(){return this.getRuleContext(0,Vx)}indexOption(t){return void 0===t?this.getRuleContexts(d_):this.getRuleContext(t,d_)}INDEX(){return this.getToken(FC.INDEX,0)}KEY(){return this.getToken(FC.KEY,0)}accept(t){return t.visitAlterByAddSpecialIndex?t.visitAlterByAddSpecialIndex(this):t.visitChildren(this)}},rd=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MODIFY(){return this.getToken(FC.MODIFY,0)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}columnDefinition(){return this.getRuleContext(0,Y_)}COLUMN(){return this.getToken(FC.COLUMN,0)}FIRST(){return this.getToken(FC.FIRST,0)}AFTER(){return this.getToken(FC.AFTER,0)}accept(t){return t.visitAlterByModifyColumn?t.visitAlterByModifyColumn(this):t.visitChildren(this)}},id=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}tableOption(t){return void 0===t?this.getRuleContexts(SP):this.getRuleContext(t,SP)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitAlterByTableOption?t.visitAlterByTableOption(this):t.visitChildren(this)}},cd=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DROP(){return this.getToken(FC.DROP,0)}PRIMARY(){return this.getToken(FC.PRIMARY,0)}KEY(){return this.getToken(FC.KEY,0)}accept(t){return t.visitAlterByDropPrimaryKey?t.visitAlterByDropPrimaryKey(this):t.visitChildren(this)}},nd=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LOCK(){return this.getToken(FC.LOCK,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}NONE(){return this.getToken(FC.NONE,0)}SHARED(){return this.getToken(FC.SHARED,0)}EXCLUSIVE(){return this.getToken(FC.EXCLUSIVE,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitAlterByLock?t.visitAlterByLock(this):t.visitChildren(this)}},hd=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DISCARD(){return this.getToken(FC.DISCARD,0)}TABLESPACE(){return this.getToken(FC.TABLESPACE,0)}accept(t){return t.visitAlterByDiscardTablespace?t.visitAlterByDiscardTablespace(this):t.visitChildren(this)}},Ed=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}VALIDATION(){return this.getToken(FC.VALIDATION,0)}WITHOUT(){return this.getToken(FC.WITHOUT,0)}WITH(){return this.getToken(FC.WITH,0)}accept(t){return t.visitAlterByValidate?t.visitAlterByValidate(this):t.visitChildren(this)}},Td=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ADD(){return this.getToken(FC.ADD,0)}PRIMARY(){return this.getToken(FC.PRIMARY,0)}KEY(){return this.getToken(FC.KEY,0)}indexColumnNames(){return this.getRuleContext(0,uk)}CONSTRAINT(){return this.getToken(FC.CONSTRAINT,0)}indexType(){return this.getRuleContext(0,M_)}indexOption(t){return void 0===t?this.getRuleContexts(d_):this.getRuleContext(t,d_)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}accept(t){return t.visitAlterByAddPrimaryKey?t.visitAlterByAddPrimaryKey(this):t.visitChildren(this)}},od=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ENABLE(){return this.getToken(FC.ENABLE,0)}KEYS(){return this.getToken(FC.KEYS,0)}accept(t){return t.visitAlterByEnableKeys?t.visitAlterByEnableKeys(this):t.visitChildren(this)}},Rd=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ALGORITHM(){return this.getToken(FC.ALGORITHM,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}INSTANT(){return this.getToken(FC.INSTANT,0)}INPLACE(){return this.getToken(FC.INPLACE,0)}COPY(){return this.getToken(FC.COPY,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}accept(t){return t.visitAlterBySetAlgorithm?t.visitAlterBySetAlgorithm(this):t.visitChildren(this)}},Ad=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CHANGE(){return this.getToken(FC.CHANGE,0)}columnDefinition(){return this.getRuleContext(0,Y_)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}COLUMN(){return this.getToken(FC.COLUMN,0)}FIRST(){return this.getToken(FC.FIRST,0)}AFTER(){return this.getToken(FC.AFTER,0)}accept(t){return t.visitAlterByChangeColumn?t.visitAlterByChangeColumn(this):t.visitChildren(this)}},Sd=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ADD(){return this.getToken(FC.ADD,0)}UNIQUE(){return this.getToken(FC.UNIQUE,0)}indexColumnNames(){return this.getRuleContext(0,uk)}CONSTRAINT(){return this.getToken(FC.CONSTRAINT,0)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}indexType(){return this.getRuleContext(0,M_)}indexOption(t){return void 0===t?this.getRuleContexts(d_):this.getRuleContext(t,d_)}INDEX(){return this.getToken(FC.INDEX,0)}KEY(){return this.getToken(FC.KEY,0)}accept(t){return t.visitAlterByAddUniqueKey?t.visitAlterByAddUniqueKey(this):t.visitChildren(this)}},ld=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DROP(){return this.getToken(FC.DROP,0)}indexName(){return this.getRuleContext(0,dx)}INDEX(){return this.getToken(FC.INDEX,0)}KEY(){return this.getToken(FC.KEY,0)}accept(t){return t.visitAlterByDropIndex?t.visitAlterByDropIndex(this):t.visitChildren(this)}},Od=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ADD(){return this.getToken(FC.ADD,0)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}columnDefinition(){return this.getRuleContext(0,Y_)}COLUMN(){return this.getToken(FC.COLUMN,0)}FIRST(){return this.getToken(FC.FIRST,0)}AFTER(){return this.getToken(FC.AFTER,0)}accept(t){return t.visitAlterByAddColumn?t.visitAlterByAddColumn(this):t.visitChildren(this)}},Id=class extends FM{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ORDER(){return this.getToken(FC.ORDER,0)}BY(){return this.getToken(FC.BY,0)}uidList(){return this.getRuleContext(0,lk)}accept(t){return t.visitAlterByOrder?t.visitAlterByOrder(this):t.visitChildren(this)}},ud=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_alterPartitionSpecification}copyFrom(t){super.copyFrom(t)}},Nd=class extends ud{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}IMPORT(){return this.getToken(FC.IMPORT,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}TABLESPACE(){return this.getToken(FC.TABLESPACE,0)}uidList(){return this.getRuleContext(0,lk)}ALL(){return this.getToken(FC.ALL,0)}accept(t){return t.visitAlterByImportPartition?t.visitAlterByImportPartition(this):t.visitChildren(this)}},Ld=class extends ud{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DROP(){return this.getToken(FC.DROP,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}uidList(){return this.getRuleContext(0,lk)}accept(t){return t.visitAlterByDropPartition?t.visitAlterByDropPartition(this):t.visitChildren(this)}},Cd=class extends ud{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DISCARD(){return this.getToken(FC.DISCARD,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}TABLESPACE(){return this.getToken(FC.TABLESPACE,0)}uidList(){return this.getRuleContext(0,lk)}ALL(){return this.getToken(FC.ALL,0)}accept(t){return t.visitAlterByDiscardPartition?t.visitAlterByDiscardPartition(this):t.visitChildren(this)}},_d=class extends ud{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ADD(){return this.getToken(FC.ADD,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}partitionDefinition(t){return void 0===t?this.getRuleContexts(cM):this.getRuleContext(t,cM)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitAlterByAddPartition?t.visitAlterByAddPartition(this):t.visitChildren(this)}},Pd=class extends ud{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REMOVE(){return this.getToken(FC.REMOVE,0)}PARTITIONING(){return this.getToken(FC.PARTITIONING,0)}accept(t){return t.visitAlterByRemovePartitioning?t.visitAlterByRemovePartitioning(this):t.visitChildren(this)}},Md=class extends ud{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}OPTIMIZE(){return this.getToken(FC.OPTIMIZE,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}uidList(){return this.getRuleContext(0,lk)}ALL(){return this.getToken(FC.ALL,0)}accept(t){return t.visitAlterByOptimizePartition?t.visitAlterByOptimizePartition(this):t.visitChildren(this)}},dd=class extends ud{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CHECK(){return this.getToken(FC.CHECK,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}uidList(){return this.getRuleContext(0,lk)}ALL(){return this.getToken(FC.ALL,0)}accept(t){return t.visitAlterByCheckPartition?t.visitAlterByCheckPartition(this):t.visitChildren(this)}},Ud=class extends ud{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}COALESCE(){return this.getToken(FC.COALESCE,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}accept(t){return t.visitAlterByCoalescePartition?t.visitAlterByCoalescePartition(this):t.visitChildren(this)}},md=class extends ud{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REORGANIZE(){return this.getToken(FC.REORGANIZE,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}uidList(){return this.getRuleContext(0,lk)}INTO(){return this.getToken(FC.INTO,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}partitionDefinition(t){return void 0===t?this.getRuleContexts(cM):this.getRuleContext(t,cM)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitAlterByReorganizePartition?t.visitAlterByReorganizePartition(this):t.visitChildren(this)}},Dd=class extends ud{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ANALYZE(){return this.getToken(FC.ANALYZE,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}uidList(){return this.getRuleContext(0,lk)}ALL(){return this.getToken(FC.ALL,0)}accept(t){return t.visitAlterByAnalyzePartition?t.visitAlterByAnalyzePartition(this):t.visitChildren(this)}},pd=class extends ud{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REBUILD(){return this.getToken(FC.REBUILD,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}uidList(){return this.getRuleContext(0,lk)}ALL(){return this.getToken(FC.ALL,0)}accept(t){return t.visitAlterByRebuildPartition?t.visitAlterByRebuildPartition(this):t.visitChildren(this)}},gd=class extends ud{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}UPGRADE(){return this.getToken(FC.UPGRADE,0)}PARTITIONING(){return this.getToken(FC.PARTITIONING,0)}accept(t){return t.visitAlterByUpgradePartitioning?t.visitAlterByUpgradePartitioning(this):t.visitChildren(this)}},xd=class extends ud{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}TRUNCATE(){return this.getToken(FC.TRUNCATE,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}uidList(){return this.getRuleContext(0,lk)}ALL(){return this.getToken(FC.ALL,0)}accept(t){return t.visitAlterByTruncatePartition?t.visitAlterByTruncatePartition(this):t.visitChildren(this)}},kd=class extends ud{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REPAIR(){return this.getToken(FC.REPAIR,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}uidList(){return this.getRuleContext(0,lk)}ALL(){return this.getToken(FC.ALL,0)}accept(t){return t.visitAlterByRepairPartition?t.visitAlterByRepairPartition(this):t.visitChildren(this)}},Hd=class extends ud{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}EXCHANGE(){return this.getToken(FC.EXCHANGE,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}uid(){return this.getRuleContext(0,Vx)}WITH(t){return void 0===t?this.getTokens(FC.WITH):this.getToken(FC.WITH,t)}TABLE(){return this.getToken(FC.TABLE,0)}tableName(){return this.getRuleContext(0,lx)}VALIDATION(){return this.getToken(FC.VALIDATION,0)}WITHOUT(){return this.getToken(FC.WITHOUT,0)}accept(t){return t.visitAlterByExchangePartition?t.visitAlterByExchangePartition(this):t.visitChildren(this)}},Gd=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(FC.DROP,0)}databaseName(){return this.getRuleContext(0,Mx)}DATABASE(){return this.getToken(FC.DATABASE,0)}SCHEMA(){return this.getToken(FC.SCHEMA,0)}ifExists(){return this.getRuleContext(0,mk)}get ruleIndex(){return FC.RULE_dropDatabase}accept(t){return t.visitDropDatabase?t.visitDropDatabase(this):t.visitChildren(this)}},Fd=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(FC.DROP,0)}EVENT(){return this.getToken(FC.EVENT,0)}fullId(){return this.getRuleContext(0,Sx)}ifExists(){return this.getRuleContext(0,mk)}get ruleIndex(){return FC.RULE_dropEvent}accept(t){return t.visitDropEvent?t.visitDropEvent(this):t.visitChildren(this)}},vd=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(FC.DROP,0)}INDEX(){return this.getToken(FC.INDEX,0)}indexName(){return this.getRuleContext(0,dx)}ON(){return this.getToken(FC.ON,0)}tableName(){return this.getRuleContext(0,lx)}ALGORITHM(t){return void 0===t?this.getTokens(FC.ALGORITHM):this.getToken(FC.ALGORITHM,t)}LOCK(t){return void 0===t?this.getTokens(FC.LOCK):this.getToken(FC.LOCK,t)}ONLINE(){return this.getToken(FC.ONLINE,0)}OFFLINE(){return this.getToken(FC.OFFLINE,0)}DEFAULT(t){return void 0===t?this.getTokens(FC.DEFAULT):this.getToken(FC.DEFAULT,t)}INPLACE(t){return void 0===t?this.getTokens(FC.INPLACE):this.getToken(FC.INPLACE,t)}COPY(t){return void 0===t?this.getTokens(FC.COPY):this.getToken(FC.COPY,t)}NONE(t){return void 0===t?this.getTokens(FC.NONE):this.getToken(FC.NONE,t)}SHARED(t){return void 0===t?this.getTokens(FC.SHARED):this.getToken(FC.SHARED,t)}EXCLUSIVE(t){return void 0===t?this.getTokens(FC.EXCLUSIVE):this.getToken(FC.EXCLUSIVE,t)}EQUAL_SYMBOL(t){return void 0===t?this.getTokens(FC.EQUAL_SYMBOL):this.getToken(FC.EQUAL_SYMBOL,t)}get ruleIndex(){return FC.RULE_dropIndex}accept(t){return t.visitDropIndex?t.visitDropIndex(this):t.visitChildren(this)}},Bd=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(FC.DROP,0)}LOGFILE(){return this.getToken(FC.LOGFILE,0)}GROUP(){return this.getToken(FC.GROUP,0)}uid(){return this.getRuleContext(0,Vx)}ENGINE(){return this.getToken(FC.ENGINE,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}engineName(){return this.getRuleContext(0,yx)}get ruleIndex(){return FC.RULE_dropLogfileGroup}accept(t){return t.visitDropLogfileGroup?t.visitDropLogfileGroup(this):t.visitChildren(this)}},yd=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(FC.DROP,0)}PROCEDURE(){return this.getToken(FC.PROCEDURE,0)}fullId(){return this.getRuleContext(0,Sx)}ifExists(){return this.getRuleContext(0,mk)}get ruleIndex(){return FC.RULE_dropProcedure}accept(t){return t.visitDropProcedure?t.visitDropProcedure(this):t.visitChildren(this)}},fd=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(FC.DROP,0)}FUNCTION(){return this.getToken(FC.FUNCTION,0)}fullId(){return this.getRuleContext(0,Sx)}ifExists(){return this.getRuleContext(0,mk)}get ruleIndex(){return FC.RULE_dropFunction}accept(t){return t.visitDropFunction?t.visitDropFunction(this):t.visitChildren(this)}},Yd=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(FC.DROP,0)}SERVER(){return this.getToken(FC.SERVER,0)}uid(){return this.getRuleContext(0,Vx)}ifExists(){return this.getRuleContext(0,mk)}get ruleIndex(){return FC.RULE_dropServer}accept(t){return t.visitDropServer?t.visitDropServer(this):t.visitChildren(this)}},wd=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(FC.DROP,0)}TABLE(){return this.getToken(FC.TABLE,0)}tables(){return this.getRuleContext(0,Ik)}TEMPORARY(){return this.getToken(FC.TEMPORARY,0)}ifExists(){return this.getRuleContext(0,mk)}RESTRICT(){return this.getToken(FC.RESTRICT,0)}CASCADE(){return this.getToken(FC.CASCADE,0)}get ruleIndex(){return FC.RULE_dropTable}accept(t){return t.visitDropTable?t.visitDropTable(this):t.visitChildren(this)}},bd=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(FC.DROP,0)}TABLESPACE(){return this.getToken(FC.TABLESPACE,0)}uid(){return this.getRuleContext(0,Vx)}ENGINE(){return this.getToken(FC.ENGINE,0)}engineName(){return this.getRuleContext(0,yx)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}get ruleIndex(){return FC.RULE_dropTablespace}accept(t){return t.visitDropTablespace?t.visitDropTablespace(this):t.visitChildren(this)}},Wd=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(FC.DROP,0)}TRIGGER(){return this.getToken(FC.TRIGGER,0)}triggerName(){return this.getRuleContext(0,mx)}ifExists(){return this.getRuleContext(0,mk)}get ruleIndex(){return FC.RULE_dropTrigger}accept(t){return t.visitDropTrigger?t.visitDropTrigger(this):t.visitChildren(this)}},Vd=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(FC.DROP,0)}VIEW(){return this.getToken(FC.VIEW,0)}fullId(t){return void 0===t?this.getRuleContexts(Sx):this.getRuleContext(t,Sx)}ifExists(){return this.getRuleContext(0,mk)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}RESTRICT(){return this.getToken(FC.RESTRICT,0)}CASCADE(){return this.getToken(FC.CASCADE,0)}get ruleIndex(){return FC.RULE_dropView}accept(t){return t.visitDropView?t.visitDropView(this):t.visitChildren(this)}},Xd=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(FC.DROP,0)}ROLE(){return this.getToken(FC.ROLE,0)}roleNameList(){return this.getRuleContext(0,Cx)}ifExists(){return this.getRuleContext(0,mk)}get ruleIndex(){return FC.RULE_dropRole}accept(t){return t.visitDropRole?t.visitDropRole(this):t.visitChildren(this)}},Kd=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(FC.SET,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}ROLE(){return this.getToken(FC.ROLE,0)}TO(){return this.getToken(FC.TO,0)}userNameList(){return this.getRuleContext(0,kx)}NONE(){return this.getToken(FC.NONE,0)}ALL(){return this.getToken(FC.ALL,0)}roleNameList(){return this.getRuleContext(0,Cx)}roleOption(){return this.getRuleContext(0,lp)}get ruleIndex(){return FC.RULE_setRole}accept(t){return t.visitSetRole?t.visitSetRole(this):t.visitChildren(this)}},Qd=class extends ga{constructor(t,e){super(t,e)}RENAME(){return this.getToken(FC.RENAME,0)}TABLE(){return this.getToken(FC.TABLE,0)}renameTableClause(t){return void 0===t?this.getRuleContexts(Jd):this.getRuleContext(t,Jd)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_renameTable}accept(t){return t.visitRenameTable?t.visitRenameTable(this):t.visitChildren(this)}},Jd=class extends ga{constructor(t,e){super(t,e)}tableName(t){return void 0===t?this.getRuleContexts(lx):this.getRuleContext(t,lx)}TO(){return this.getToken(FC.TO,0)}get ruleIndex(){return FC.RULE_renameTableClause}accept(t){return t.visitRenameTableClause?t.visitRenameTableClause(this):t.visitChildren(this)}},Zd=class extends ga{constructor(t,e){super(t,e)}TRUNCATE(){return this.getToken(FC.TRUNCATE,0)}tableName(){return this.getRuleContext(0,lx)}TABLE(){return this.getToken(FC.TABLE,0)}get ruleIndex(){return FC.RULE_truncateTable}accept(t){return t.visitTruncateTable?t.visitTruncateTable(this):t.visitChildren(this)}},qd=class extends ga{constructor(t,e){super(t,e)}CALL(){return this.getToken(FC.CALL,0)}fullId(){return this.getRuleContext(0,Sx)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}constants(){return this.getRuleContext(0,Ck)}expressions(){return this.getRuleContext(0,Nk)}get ruleIndex(){return FC.RULE_callStatement}accept(t){return t.visitCallStatement?t.visitCallStatement(this):t.visitChildren(this)}},jd=class extends ga{constructor(t,e){super(t,e)}singleDeleteStatement(){return this.getRuleContext(0,OU)}multipleDeleteStatement(){return this.getRuleContext(0,IU)}get ruleIndex(){return FC.RULE_deleteStatement}accept(t){return t.visitDeleteStatement?t.visitDeleteStatement(this):t.visitChildren(this)}},zd=class extends ga{constructor(t,e){super(t,e)}DO(){return this.getToken(FC.DO,0)}expressions(){return this.getRuleContext(0,Nk)}get ruleIndex(){return FC.RULE_doStatement}accept(t){return t.visitDoStatement?t.visitDoStatement(this):t.visitChildren(this)}},$d=class extends ga{constructor(t,e){super(t,e)}handlerOpenStatement(){return this.getRuleContext(0,uU)}handlerReadIndexStatement(){return this.getRuleContext(0,NU)}handlerReadStatement(){return this.getRuleContext(0,LU)}handlerCloseStatement(){return this.getRuleContext(0,CU)}get ruleIndex(){return FC.RULE_handlerStatement}accept(t){return t.visitHandlerStatement?t.visitHandlerStatement(this):t.visitChildren(this)}},tU=class extends ga{constructor(t,e){super(t,e),this._setElements=[],this._duplicatedElements=[]}INSERT(){return this.getToken(FC.INSERT,0)}tableName(){return this.getRuleContext(0,lx)}insertStatementValue(){return this.getRuleContext(0,RU)}SET(){return this.getToken(FC.SET,0)}IGNORE(){return this.getToken(FC.IGNORE,0)}INTO(){return this.getToken(FC.INTO,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}LR_BRACKET(t){return void 0===t?this.getTokens(FC.LR_BRACKET):this.getToken(FC.LR_BRACKET,t)}RR_BRACKET(t){return void 0===t?this.getTokens(FC.RR_BRACKET):this.getToken(FC.RR_BRACKET,t)}updatedElement(t){return void 0===t?this.getRuleContexts(AU):this.getRuleContext(t,AU)}ON(){return this.getToken(FC.ON,0)}DUPLICATE(){return this.getToken(FC.DUPLICATE,0)}KEY(){return this.getToken(FC.KEY,0)}UPDATE(){return this.getToken(FC.UPDATE,0)}LOW_PRIORITY(){return this.getToken(FC.LOW_PRIORITY,0)}DELAYED(){return this.getToken(FC.DELAYED,0)}HIGH_PRIORITY(){return this.getToken(FC.HIGH_PRIORITY,0)}uid(){return this.getRuleContext(0,Vx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}uidList(){return this.getRuleContext(0,lk)}AS(){return this.getToken(FC.AS,0)}fullColumnNameList(){return this.getRuleContext(0,Ok)}get ruleIndex(){return FC.RULE_insertStatement}accept(t){return t.visitInsertStatement?t.visitInsertStatement(this):t.visitChildren(this)}},eU=class extends ga{constructor(t,e){super(t,e)}LOAD(){return this.getToken(FC.LOAD,0)}DATA(){return this.getToken(FC.DATA,0)}INFILE(){return this.getToken(FC.INFILE,0)}INTO(){return this.getToken(FC.INTO,0)}TABLE(){return this.getToken(FC.TABLE,0)}tableName(){return this.getRuleContext(0,lx)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}LOCAL(){return this.getToken(FC.LOCAL,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}LR_BRACKET(t){return void 0===t?this.getTokens(FC.LR_BRACKET):this.getToken(FC.LR_BRACKET,t)}uidList(){return this.getRuleContext(0,lk)}RR_BRACKET(t){return void 0===t?this.getTokens(FC.RR_BRACKET):this.getToken(FC.RR_BRACKET,t)}CHARACTER(){return this.getToken(FC.CHARACTER,0)}SET(t){return void 0===t?this.getTokens(FC.SET):this.getToken(FC.SET,t)}LINES(t){return void 0===t?this.getTokens(FC.LINES):this.getToken(FC.LINES,t)}IGNORE(t){return void 0===t?this.getTokens(FC.IGNORE):this.getToken(FC.IGNORE,t)}decimalLiteral(){return this.getRuleContext(0,Qx)}assignmentField(t){return void 0===t?this.getRuleContexts(SU):this.getRuleContext(t,SU)}updatedElement(t){return void 0===t?this.getRuleContexts(AU):this.getRuleContext(t,AU)}charsetName(){return this.getRuleContext(0,vx)}LOW_PRIORITY(){return this.getToken(FC.LOW_PRIORITY,0)}CONCURRENT(){return this.getToken(FC.CONCURRENT,0)}REPLACE(){return this.getToken(FC.REPLACE,0)}FIELDS(){return this.getToken(FC.FIELDS,0)}COLUMNS(){return this.getToken(FC.COLUMNS,0)}ROWS(){return this.getToken(FC.ROWS,0)}selectFieldsInto(t){return void 0===t?this.getRuleContexts(Am):this.getRuleContext(t,Am)}selectLinesInto(t){return void 0===t?this.getRuleContexts(Sm):this.getRuleContext(t,Sm)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_loadDataStatement}accept(t){return t.visitLoadDataStatement?t.visitLoadDataStatement(this):t.visitChildren(this)}},sU=class extends ga{constructor(t,e){super(t,e)}LOAD(){return this.getToken(FC.LOAD,0)}XML(){return this.getToken(FC.XML,0)}INFILE(){return this.getToken(FC.INFILE,0)}INTO(){return this.getToken(FC.INTO,0)}TABLE(){return this.getToken(FC.TABLE,0)}tableName(){return this.getRuleContext(0,lx)}STRING_LITERAL(t){return void 0===t?this.getTokens(FC.STRING_LITERAL):this.getToken(FC.STRING_LITERAL,t)}LOCAL(){return this.getToken(FC.LOCAL,0)}CHARACTER(){return this.getToken(FC.CHARACTER,0)}SET(t){return void 0===t?this.getTokens(FC.SET):this.getToken(FC.SET,t)}ROWS(t){return void 0===t?this.getTokens(FC.ROWS):this.getToken(FC.ROWS,t)}IDENTIFIED(){return this.getToken(FC.IDENTIFIED,0)}BY(){return this.getToken(FC.BY,0)}LESS_SYMBOL(){return this.getToken(FC.LESS_SYMBOL,0)}GREATER_SYMBOL(){return this.getToken(FC.GREATER_SYMBOL,0)}IGNORE(t){return void 0===t?this.getTokens(FC.IGNORE):this.getToken(FC.IGNORE,t)}decimalLiteral(){return this.getRuleContext(0,Qx)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}assignmentField(t){return void 0===t?this.getRuleContexts(SU):this.getRuleContext(t,SU)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}updatedElement(t){return void 0===t?this.getRuleContexts(AU):this.getRuleContext(t,AU)}charsetName(){return this.getRuleContext(0,vx)}LOW_PRIORITY(){return this.getToken(FC.LOW_PRIORITY,0)}CONCURRENT(){return this.getToken(FC.CONCURRENT,0)}REPLACE(){return this.getToken(FC.REPLACE,0)}LINES(){return this.getToken(FC.LINES,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_loadXmlStatement}accept(t){return t.visitLoadXmlStatement?t.visitLoadXmlStatement(this):t.visitChildren(this)}},aU=class extends ga{constructor(t,e){super(t,e),this._setElements=[]}REPLACE(){return this.getToken(FC.REPLACE,0)}tableName(){return this.getRuleContext(0,lx)}insertStatementValue(){return this.getRuleContext(0,RU)}SET(){return this.getToken(FC.SET,0)}INTO(){return this.getToken(FC.INTO,0)}PARTITION(){return this.getToken(FC.PARTITION,0)}LR_BRACKET(t){return void 0===t?this.getTokens(FC.LR_BRACKET):this.getToken(FC.LR_BRACKET,t)}RR_BRACKET(t){return void 0===t?this.getTokens(FC.RR_BRACKET):this.getToken(FC.RR_BRACKET,t)}updatedElement(t){return void 0===t?this.getRuleContexts(AU):this.getRuleContext(t,AU)}uidList(t){return void 0===t?this.getRuleContexts(lk):this.getRuleContext(t,lk)}LOW_PRIORITY(){return this.getToken(FC.LOW_PRIORITY,0)}DELAYED(){return this.getToken(FC.DELAYED,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_replaceStatement}accept(t){return t.visitReplaceStatement?t.visitReplaceStatement(this):t.visitChildren(this)}},rU=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_selectStatement}copyFrom(t){super.copyFrom(t)}},iU=class extends rU{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}querySpecificationNointo(){return this.getRuleContext(0,KU)}queryExpressionNointo(){return this.getRuleContext(0,VU)}unionStatement(t){return void 0===t?this.getRuleContexts(JU):this.getRuleContext(t,JU)}UNION(){return this.getToken(FC.UNION,0)}orderByClause(){return this.getRuleContext(0,MU)}limitClause(){return this.getRuleContext(0,Lm)}lockClause(){return this.getRuleContext(0,lU)}querySpecification(){return this.getRuleContext(0,XU)}queryExpression(){return this.getRuleContext(0,WU)}ALL(){return this.getToken(FC.ALL,0)}DISTINCT(){return this.getToken(FC.DISTINCT,0)}accept(t){return t.visitUnionSelect?t.visitUnionSelect(this):t.visitChildren(this)}},cU=class extends rU{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}queryExpressionNointo(){return this.getRuleContext(0,VU)}unionParenthesis(t){return void 0===t?this.getRuleContexts(QU):this.getRuleContext(t,QU)}UNION(){return this.getToken(FC.UNION,0)}queryExpression(){return this.getRuleContext(0,WU)}orderByClause(){return this.getRuleContext(0,MU)}limitClause(){return this.getRuleContext(0,Lm)}lockClause(){return this.getRuleContext(0,lU)}ALL(){return this.getToken(FC.ALL,0)}DISTINCT(){return this.getToken(FC.DISTINCT,0)}accept(t){return t.visitUnionParenthesisSelect?t.visitUnionParenthesisSelect(this):t.visitChildren(this)}},nU=class extends rU{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}querySpecification(){return this.getRuleContext(0,XU)}lockClause(){return this.getRuleContext(0,lU)}accept(t){return t.visitSimpleSelect?t.visitSimpleSelect(this):t.visitChildren(this)}},hU=class extends rU{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}queryExpression(){return this.getRuleContext(0,WU)}lockClause(){return this.getRuleContext(0,lU)}accept(t){return t.visitParenthesisSelect?t.visitParenthesisSelect(this):t.visitChildren(this)}},EU=class extends rU{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}querySpecificationNointo(){return this.getRuleContext(0,KU)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}lateralStatement(t){return void 0===t?this.getRuleContexts(ZU):this.getRuleContext(t,ZU)}accept(t){return t.visitWithLateralStatement?t.visitWithLateralStatement(this):t.visitChildren(this)}},TU=class extends ga{constructor(t,e){super(t,e)}singleUpdateStatement(){return this.getRuleContext(0,_U)}multipleUpdateStatement(){return this.getRuleContext(0,PU)}get ruleIndex(){return FC.RULE_updateStatement}accept(t){return t.visitUpdateStatement?t.visitUpdateStatement(this):t.visitChildren(this)}},oU=class extends ga{constructor(t,e){super(t,e)}VALUES(){return this.getToken(FC.VALUES,0)}LR_BRACKET(t){return void 0===t?this.getTokens(FC.LR_BRACKET):this.getToken(FC.LR_BRACKET,t)}RR_BRACKET(t){return void 0===t?this.getTokens(FC.RR_BRACKET):this.getToken(FC.RR_BRACKET,t)}expressionsWithDefaults(t){return void 0===t?this.getRuleContexts(Lk):this.getRuleContext(t,Lk)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_valuesStatement}accept(t){return t.visitValuesStatement?t.visitValuesStatement(this):t.visitChildren(this)}},RU=class extends ga{constructor(t,e){super(t,e)}selectStatement(){return this.getRuleContext(0,rU)}LR_BRACKET(t){return void 0===t?this.getTokens(FC.LR_BRACKET):this.getToken(FC.LR_BRACKET,t)}RR_BRACKET(t){return void 0===t?this.getTokens(FC.RR_BRACKET):this.getToken(FC.RR_BRACKET,t)}VALUES(){return this.getToken(FC.VALUES,0)}VALUE(){return this.getToken(FC.VALUE,0)}expressionsWithDefaults(t){return void 0===t?this.getRuleContexts(Lk):this.getRuleContext(t,Lk)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_insertStatementValue}accept(t){return t.visitInsertStatementValue?t.visitInsertStatementValue(this):t.visitChildren(this)}},AU=class extends ga{constructor(t,e){super(t,e)}fullColumnName(){return this.getRuleContext(0,Px)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}expression(){return this.getRuleContext(0,NH)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}get ruleIndex(){return FC.RULE_updatedElement}accept(t){return t.visitUpdatedElement?t.visitUpdatedElement(this):t.visitChildren(this)}},SU=class extends ga{constructor(t,e){super(t,e)}uid(){return this.getRuleContext(0,Vx)}LOCAL_ID(){return this.getToken(FC.LOCAL_ID,0)}get ruleIndex(){return FC.RULE_assignmentField}accept(t){return t.visitAssignmentField?t.visitAssignmentField(this):t.visitChildren(this)}},lU=class extends ga{constructor(t,e){super(t,e)}FOR(){return this.getToken(FC.FOR,0)}UPDATE(){return this.getToken(FC.UPDATE,0)}LOCK(){return this.getToken(FC.LOCK,0)}IN(){return this.getToken(FC.IN,0)}SHARE(){return this.getToken(FC.SHARE,0)}MODE(){return this.getToken(FC.MODE,0)}get ruleIndex(){return FC.RULE_lockClause}accept(t){return t.visitLockClause?t.visitLockClause(this):t.visitChildren(this)}},OU=class extends ga{constructor(t,e){super(t,e)}DELETE(){return this.getToken(FC.DELETE,0)}FROM(){return this.getToken(FC.FROM,0)}tableName(){return this.getRuleContext(0,lx)}QUICK(){return this.getToken(FC.QUICK,0)}IGNORE(){return this.getToken(FC.IGNORE,0)}uid(){return this.getRuleContext(0,Vx)}PARTITION(){return this.getToken(FC.PARTITION,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}uidList(){return this.getRuleContext(0,lk)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}WHERE(){return this.getToken(FC.WHERE,0)}expression(){return this.getRuleContext(0,NH)}orderByClause(){return this.getRuleContext(0,MU)}LIMIT(){return this.getToken(FC.LIMIT,0)}limitClauseAtom(){return this.getRuleContext(0,Cm)}LOW_PRIORITY(){return this.getToken(FC.LOW_PRIORITY,0)}AS(){return this.getToken(FC.AS,0)}get ruleIndex(){return FC.RULE_singleDeleteStatement}accept(t){return t.visitSingleDeleteStatement?t.visitSingleDeleteStatement(this):t.visitChildren(this)}},IU=class extends ga{constructor(t,e){super(t,e)}DELETE(){return this.getToken(FC.DELETE,0)}tableName(t){return void 0===t?this.getRuleContexts(lx):this.getRuleContext(t,lx)}FROM(){return this.getToken(FC.FROM,0)}tableSources(){return this.getRuleContext(0,UU)}USING(){return this.getToken(FC.USING,0)}QUICK(){return this.getToken(FC.QUICK,0)}IGNORE(){return this.getToken(FC.IGNORE,0)}WHERE(){return this.getToken(FC.WHERE,0)}expression(){return this.getRuleContext(0,NH)}LOW_PRIORITY(){return this.getToken(FC.LOW_PRIORITY,0)}DOT(t){return void 0===t?this.getTokens(FC.DOT):this.getToken(FC.DOT,t)}STAR(t){return void 0===t?this.getTokens(FC.STAR):this.getToken(FC.STAR,t)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_multipleDeleteStatement}accept(t){return t.visitMultipleDeleteStatement?t.visitMultipleDeleteStatement(this):t.visitChildren(this)}},uU=class extends ga{constructor(t,e){super(t,e)}HANDLER(){return this.getToken(FC.HANDLER,0)}tableName(){return this.getRuleContext(0,lx)}OPEN(){return this.getToken(FC.OPEN,0)}uid(){return this.getRuleContext(0,Vx)}AS(){return this.getToken(FC.AS,0)}get ruleIndex(){return FC.RULE_handlerOpenStatement}accept(t){return t.visitHandlerOpenStatement?t.visitHandlerOpenStatement(this):t.visitChildren(this)}},NU=class extends ga{constructor(t,e){super(t,e)}HANDLER(){return this.getToken(FC.HANDLER,0)}tableName(){return this.getRuleContext(0,lx)}READ(){return this.getToken(FC.READ,0)}uid(){return this.getRuleContext(0,Vx)}comparisonOperator(){return this.getRuleContext(0,$H)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}constants(){return this.getRuleContext(0,Ck)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}WHERE(){return this.getToken(FC.WHERE,0)}expression(){return this.getRuleContext(0,NH)}LIMIT(){return this.getToken(FC.LIMIT,0)}limitClauseAtom(){return this.getRuleContext(0,Cm)}FIRST(){return this.getToken(FC.FIRST,0)}NEXT(){return this.getToken(FC.NEXT,0)}PREV(){return this.getToken(FC.PREV,0)}LAST(){return this.getToken(FC.LAST,0)}get ruleIndex(){return FC.RULE_handlerReadIndexStatement}accept(t){return t.visitHandlerReadIndexStatement?t.visitHandlerReadIndexStatement(this):t.visitChildren(this)}},LU=class extends ga{constructor(t,e){super(t,e)}HANDLER(){return this.getToken(FC.HANDLER,0)}tableName(){return this.getRuleContext(0,lx)}READ(){return this.getToken(FC.READ,0)}FIRST(){return this.getToken(FC.FIRST,0)}NEXT(){return this.getToken(FC.NEXT,0)}WHERE(){return this.getToken(FC.WHERE,0)}expression(){return this.getRuleContext(0,NH)}LIMIT(){return this.getToken(FC.LIMIT,0)}limitClauseAtom(){return this.getRuleContext(0,Cm)}get ruleIndex(){return FC.RULE_handlerReadStatement}accept(t){return t.visitHandlerReadStatement?t.visitHandlerReadStatement(this):t.visitChildren(this)}},CU=class extends ga{constructor(t,e){super(t,e)}HANDLER(){return this.getToken(FC.HANDLER,0)}tableName(){return this.getRuleContext(0,lx)}CLOSE(){return this.getToken(FC.CLOSE,0)}get ruleIndex(){return FC.RULE_handlerCloseStatement}accept(t){return t.visitHandlerCloseStatement?t.visitHandlerCloseStatement(this):t.visitChildren(this)}},_U=class extends ga{constructor(t,e){super(t,e)}UPDATE(){return this.getToken(FC.UPDATE,0)}tableName(){return this.getRuleContext(0,lx)}SET(){return this.getToken(FC.SET,0)}updatedElement(t){return void 0===t?this.getRuleContexts(AU):this.getRuleContext(t,AU)}IGNORE(){return this.getToken(FC.IGNORE,0)}uid(){return this.getRuleContext(0,Vx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}WHERE(){return this.getToken(FC.WHERE,0)}expression(){return this.getRuleContext(0,NH)}orderByClause(){return this.getRuleContext(0,MU)}limitClause(){return this.getRuleContext(0,Lm)}LOW_PRIORITY(){return this.getToken(FC.LOW_PRIORITY,0)}AS(){return this.getToken(FC.AS,0)}get ruleIndex(){return FC.RULE_singleUpdateStatement}accept(t){return t.visitSingleUpdateStatement?t.visitSingleUpdateStatement(this):t.visitChildren(this)}},PU=class extends ga{constructor(t,e){super(t,e)}UPDATE(){return this.getToken(FC.UPDATE,0)}tableNames(){return this.getRuleContext(0,Ox)}SET(){return this.getToken(FC.SET,0)}updatedElement(t){return void 0===t?this.getRuleContexts(AU):this.getRuleContext(t,AU)}IGNORE(){return this.getToken(FC.IGNORE,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}WHERE(){return this.getToken(FC.WHERE,0)}expression(){return this.getRuleContext(0,NH)}LOW_PRIORITY(){return this.getToken(FC.LOW_PRIORITY,0)}get ruleIndex(){return FC.RULE_multipleUpdateStatement}accept(t){return t.visitMultipleUpdateStatement?t.visitMultipleUpdateStatement(this):t.visitChildren(this)}},MU=class extends ga{constructor(t,e){super(t,e)}ORDER(){return this.getToken(FC.ORDER,0)}BY(){return this.getToken(FC.BY,0)}orderByExpression(t){return void 0===t?this.getRuleContexts(dU):this.getRuleContext(t,dU)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_orderByClause}accept(t){return t.visitOrderByClause?t.visitOrderByClause(this):t.visitChildren(this)}},dU=class extends ga{constructor(t,e){super(t,e)}expression(){return this.getRuleContext(0,NH)}ASC(){return this.getToken(FC.ASC,0)}DESC(){return this.getToken(FC.DESC,0)}get ruleIndex(){return FC.RULE_orderByExpression}accept(t){return t.visitOrderByExpression?t.visitOrderByExpression(this):t.visitChildren(this)}},UU=class extends ga{constructor(t,e){super(t,e)}tableSource(t){return void 0===t?this.getRuleContexts(mU):this.getRuleContext(t,mU)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_tableSources}accept(t){return t.visitTableSources?t.visitTableSources(this):t.visitChildren(this)}},mU=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_tableSource}copyFrom(t){super.copyFrom(t)}},DU=class extends mU{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}jsonTable(){return this.getRuleContext(0,qU)}accept(t){return t.visitTableJson?t.visitTableJson(this):t.visitChildren(this)}},pU=class extends mU{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}tableSourceItem(){return this.getRuleContext(0,xU)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}joinPart(t){return void 0===t?this.getRuleContexts(BU):this.getRuleContext(t,BU)}accept(t){return t.visitTableSourceNested?t.visitTableSourceNested(this):t.visitChildren(this)}},gU=class extends mU{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}tableSourceItem(){return this.getRuleContext(0,xU)}joinPart(t){return void 0===t?this.getRuleContexts(BU):this.getRuleContext(t,BU)}accept(t){return t.visitTableSourceBase?t.visitTableSourceBase(this):t.visitChildren(this)}},xU=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_tableSourceItem}copyFrom(t){super.copyFrom(t)}},kU=class extends xU{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}uid(){return this.getRuleContext(0,Vx)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}selectStatement(){return this.getRuleContext(0,rU)}AS(){return this.getToken(FC.AS,0)}accept(t){return t.visitSubqueryTableItem?t.visitSubqueryTableItem(this):t.visitChildren(this)}},HU=class extends xU{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}tableName(){return this.getRuleContext(0,lx)}PARTITION(){return this.getToken(FC.PARTITION,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}uidList(){return this.getRuleContext(0,lk)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}indexHint(t){return void 0===t?this.getRuleContexts(FU):this.getRuleContext(t,FU)}uid(){return this.getRuleContext(0,Vx)}AS(){return this.getToken(FC.AS,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitAtomTableItem?t.visitAtomTableItem(this):t.visitChildren(this)}},GU=class extends xU{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}tableSources(){return this.getRuleContext(0,UU)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}accept(t){return t.visitTableSourcesItem?t.visitTableSourcesItem(this):t.visitChildren(this)}},FU=class extends ga{constructor(t,e){super(t,e)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}indexNameList(){return this.getRuleContext(0,Dx)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}USE(){return this.getToken(FC.USE,0)}IGNORE(){return this.getToken(FC.IGNORE,0)}FORCE(){return this.getToken(FC.FORCE,0)}INDEX(){return this.getToken(FC.INDEX,0)}KEY(){return this.getToken(FC.KEY,0)}FOR(){return this.getToken(FC.FOR,0)}indexHintType(){return this.getRuleContext(0,vU)}get ruleIndex(){return FC.RULE_indexHint}accept(t){return t.visitIndexHint?t.visitIndexHint(this):t.visitChildren(this)}},vU=class extends ga{constructor(t,e){super(t,e)}JOIN(){return this.getToken(FC.JOIN,0)}ORDER(){return this.getToken(FC.ORDER,0)}BY(){return this.getToken(FC.BY,0)}GROUP(){return this.getToken(FC.GROUP,0)}get ruleIndex(){return FC.RULE_indexHintType}accept(t){return t.visitIndexHintType?t.visitIndexHintType(this):t.visitChildren(this)}},BU=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_joinPart}copyFrom(t){super.copyFrom(t)}},yU=class extends BU{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}JOIN(){return this.getToken(FC.JOIN,0)}tableSourceItem(){return this.getRuleContext(0,xU)}LATERAL(){return this.getToken(FC.LATERAL,0)}joinSpec(t){return void 0===t?this.getRuleContexts(bU):this.getRuleContext(t,bU)}INNER(){return this.getToken(FC.INNER,0)}CROSS(){return this.getToken(FC.CROSS,0)}accept(t){return t.visitInnerJoin?t.visitInnerJoin(this):t.visitChildren(this)}},fU=class extends BU{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}NATURAL(){return this.getToken(FC.NATURAL,0)}JOIN(){return this.getToken(FC.JOIN,0)}tableSourceItem(){return this.getRuleContext(0,xU)}LEFT(){return this.getToken(FC.LEFT,0)}RIGHT(){return this.getToken(FC.RIGHT,0)}OUTER(){return this.getToken(FC.OUTER,0)}accept(t){return t.visitNaturalJoin?t.visitNaturalJoin(this):t.visitChildren(this)}},YU=class extends BU{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}JOIN(){return this.getToken(FC.JOIN,0)}tableSourceItem(){return this.getRuleContext(0,xU)}LEFT(){return this.getToken(FC.LEFT,0)}RIGHT(){return this.getToken(FC.RIGHT,0)}OUTER(){return this.getToken(FC.OUTER,0)}LATERAL(){return this.getToken(FC.LATERAL,0)}joinSpec(t){return void 0===t?this.getRuleContexts(bU):this.getRuleContext(t,bU)}accept(t){return t.visitOuterJoin?t.visitOuterJoin(this):t.visitChildren(this)}},wU=class extends BU{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}STRAIGHT_JOIN(){return this.getToken(FC.STRAIGHT_JOIN,0)}tableSourceItem(){return this.getRuleContext(0,xU)}ON(t){return void 0===t?this.getTokens(FC.ON):this.getToken(FC.ON,t)}expression(t){return void 0===t?this.getRuleContexts(NH):this.getRuleContext(t,NH)}accept(t){return t.visitStraightJoin?t.visitStraightJoin(this):t.visitChildren(this)}},bU=class extends ga{constructor(t,e){super(t,e)}ON(){return this.getToken(FC.ON,0)}expression(){return this.getRuleContext(0,NH)}USING(){return this.getToken(FC.USING,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}uidList(){return this.getRuleContext(0,lk)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}get ruleIndex(){return FC.RULE_joinSpec}accept(t){return t.visitJoinSpec?t.visitJoinSpec(this):t.visitChildren(this)}},WU=class t extends ga{constructor(t,e){super(t,e)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}querySpecification(){return this.getRuleContext(0,XU)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}queryExpression(){return this.getRuleContext(0,t)}get ruleIndex(){return FC.RULE_queryExpression}accept(t){return t.visitQueryExpression?t.visitQueryExpression(this):t.visitChildren(this)}},VU=class t extends ga{constructor(t,e){super(t,e)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}querySpecificationNointo(){return this.getRuleContext(0,KU)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}queryExpressionNointo(){return this.getRuleContext(0,t)}get ruleIndex(){return FC.RULE_queryExpressionNointo}accept(t){return t.visitQueryExpressionNointo?t.visitQueryExpressionNointo(this):t.visitChildren(this)}},XU=class extends ga{constructor(t,e){super(t,e)}SELECT(){return this.getToken(FC.SELECT,0)}selectElements(){return this.getRuleContext(0,sm)}fromClause(){return this.getRuleContext(0,lm)}selectSpec(t){return void 0===t?this.getRuleContexts(em):this.getRuleContext(t,em)}selectIntoExpression(){return this.getRuleContext(0,Em)}groupByClause(){return this.getRuleContext(0,Om)}havingClause(){return this.getRuleContext(0,Im)}windowClause(){return this.getRuleContext(0,um)}orderByClause(){return this.getRuleContext(0,MU)}limitClause(){return this.getRuleContext(0,Lm)}get ruleIndex(){return FC.RULE_querySpecification}accept(t){return t.visitQuerySpecification?t.visitQuerySpecification(this):t.visitChildren(this)}},KU=class extends ga{constructor(t,e){super(t,e)}SELECT(){return this.getToken(FC.SELECT,0)}selectElements(){return this.getRuleContext(0,sm)}fromClause(){return this.getRuleContext(0,lm)}selectSpec(t){return void 0===t?this.getRuleContexts(em):this.getRuleContext(t,em)}groupByClause(){return this.getRuleContext(0,Om)}havingClause(){return this.getRuleContext(0,Im)}windowClause(){return this.getRuleContext(0,um)}orderByClause(){return this.getRuleContext(0,MU)}limitClause(){return this.getRuleContext(0,Lm)}unionStatement(){return this.getRuleContext(0,JU)}get ruleIndex(){return FC.RULE_querySpecificationNointo}accept(t){return t.visitQuerySpecificationNointo?t.visitQuerySpecificationNointo(this):t.visitChildren(this)}},QU=class extends ga{constructor(t,e){super(t,e)}UNION(){return this.getToken(FC.UNION,0)}queryExpressionNointo(){return this.getRuleContext(0,VU)}ALL(){return this.getToken(FC.ALL,0)}DISTINCT(){return this.getToken(FC.DISTINCT,0)}get ruleIndex(){return FC.RULE_unionParenthesis}accept(t){return t.visitUnionParenthesis?t.visitUnionParenthesis(this):t.visitChildren(this)}},JU=class extends ga{constructor(t,e){super(t,e)}UNION(){return this.getToken(FC.UNION,0)}querySpecificationNointo(){return this.getRuleContext(0,KU)}queryExpressionNointo(){return this.getRuleContext(0,VU)}ALL(){return this.getToken(FC.ALL,0)}DISTINCT(){return this.getToken(FC.DISTINCT,0)}get ruleIndex(){return FC.RULE_unionStatement}accept(t){return t.visitUnionStatement?t.visitUnionStatement(this):t.visitChildren(this)}},ZU=class extends ga{constructor(t,e){super(t,e)}LATERAL(){return this.getToken(FC.LATERAL,0)}querySpecificationNointo(){return this.getRuleContext(0,KU)}queryExpressionNointo(){return this.getRuleContext(0,VU)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}uid(){return this.getRuleContext(0,Vx)}AS(){return this.getToken(FC.AS,0)}get ruleIndex(){return FC.RULE_lateralStatement}accept(t){return t.visitLateralStatement?t.visitLateralStatement(this):t.visitChildren(this)}},qU=class extends ga{constructor(t,e){super(t,e)}JSON_TABLE(){return this.getToken(FC.JSON_TABLE,0)}LR_BRACKET(t){return void 0===t?this.getTokens(FC.LR_BRACKET):this.getToken(FC.LR_BRACKET,t)}STRING_LITERAL(t){return void 0===t?this.getTokens(FC.STRING_LITERAL):this.getToken(FC.STRING_LITERAL,t)}COMMA(){return this.getToken(FC.COMMA,0)}COLUMNS(){return this.getToken(FC.COLUMNS,0)}jsonColumnList(){return this.getRuleContext(0,jU)}RR_BRACKET(t){return void 0===t?this.getTokens(FC.RR_BRACKET):this.getToken(FC.RR_BRACKET,t)}uid(){return this.getRuleContext(0,Vx)}AS(){return this.getToken(FC.AS,0)}get ruleIndex(){return FC.RULE_jsonTable}accept(t){return t.visitJsonTable?t.visitJsonTable(this):t.visitChildren(this)}},jU=class extends ga{constructor(t,e){super(t,e)}jsonColumn(t){return void 0===t?this.getRuleContexts(zU):this.getRuleContext(t,zU)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_jsonColumnList}accept(t){return t.visitJsonColumnList?t.visitJsonColumnList(this):t.visitChildren(this)}},zU=class extends ga{constructor(t,e){super(t,e)}fullColumnName(){return this.getRuleContext(0,Px)}FOR(){return this.getToken(FC.FOR,0)}ORDINALITY(){return this.getToken(FC.ORDINALITY,0)}dataType(){return this.getRuleContext(0,tk)}PATH(){return this.getToken(FC.PATH,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}EXISTS(){return this.getToken(FC.EXISTS,0)}jsonOnEmpty(){return this.getRuleContext(0,$U)}jsonOnError(){return this.getRuleContext(0,tm)}NESTED(){return this.getToken(FC.NESTED,0)}COLUMNS(){return this.getToken(FC.COLUMNS,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}jsonColumnList(){return this.getRuleContext(0,jU)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}get ruleIndex(){return FC.RULE_jsonColumn}accept(t){return t.visitJsonColumn?t.visitJsonColumn(this):t.visitChildren(this)}},$U=class extends ga{constructor(t,e){super(t,e)}ON(){return this.getToken(FC.ON,0)}EMPTY(){return this.getToken(FC.EMPTY,0)}NULL_LITERAL(){return this.getToken(FC.NULL_LITERAL,0)}ERROR(){return this.getToken(FC.ERROR,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}defaultValue(){return this.getRuleContext(0,Mk)}get ruleIndex(){return FC.RULE_jsonOnEmpty}accept(t){return t.visitJsonOnEmpty?t.visitJsonOnEmpty(this):t.visitChildren(this)}},tm=class extends ga{constructor(t,e){super(t,e)}ON(){return this.getToken(FC.ON,0)}ERROR(t){return void 0===t?this.getTokens(FC.ERROR):this.getToken(FC.ERROR,t)}NULL_LITERAL(){return this.getToken(FC.NULL_LITERAL,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}defaultValue(){return this.getRuleContext(0,Mk)}get ruleIndex(){return FC.RULE_jsonOnError}accept(t){return t.visitJsonOnError?t.visitJsonOnError(this):t.visitChildren(this)}},em=class extends ga{constructor(t,e){super(t,e)}ALL(){return this.getToken(FC.ALL,0)}DISTINCT(){return this.getToken(FC.DISTINCT,0)}DISTINCTROW(){return this.getToken(FC.DISTINCTROW,0)}HIGH_PRIORITY(){return this.getToken(FC.HIGH_PRIORITY,0)}STRAIGHT_JOIN(){return this.getToken(FC.STRAIGHT_JOIN,0)}SQL_SMALL_RESULT(){return this.getToken(FC.SQL_SMALL_RESULT,0)}SQL_BIG_RESULT(){return this.getToken(FC.SQL_BIG_RESULT,0)}SQL_BUFFER_RESULT(){return this.getToken(FC.SQL_BUFFER_RESULT,0)}SQL_CACHE(){return this.getToken(FC.SQL_CACHE,0)}SQL_NO_CACHE(){return this.getToken(FC.SQL_NO_CACHE,0)}SQL_CALC_FOUND_ROWS(){return this.getToken(FC.SQL_CALC_FOUND_ROWS,0)}get ruleIndex(){return FC.RULE_selectSpec}accept(t){return t.visitSelectSpec?t.visitSelectSpec(this):t.visitChildren(this)}},sm=class extends ga{constructor(t,e){super(t,e)}selectElement(t){return void 0===t?this.getRuleContexts(rm):this.getRuleContext(t,rm)}STAR(){return this.getToken(FC.STAR,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_selectElements}accept(t){return t.visitSelectElements?t.visitSelectElements(this):t.visitChildren(this)}},am=class extends ga{constructor(t,e){super(t,e)}uid(){return this.getRuleContext(0,Vx)}AS(){return this.getToken(FC.AS,0)}get ruleIndex(){return FC.RULE_selectElementAlias}accept(t){return t.visitSelectElementAlias?t.visitSelectElementAlias(this):t.visitChildren(this)}},rm=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_selectElement}copyFrom(t){super.copyFrom(t)}},im=class extends rm{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}expression(){return this.getRuleContext(0,NH)}LOCAL_ID(){return this.getToken(FC.LOCAL_ID,0)}VAR_ASSIGN(){return this.getToken(FC.VAR_ASSIGN,0)}selectElementAlias(){return this.getRuleContext(0,am)}accept(t){return t.visitSelectExpressionElement?t.visitSelectExpressionElement(this):t.visitChildren(this)}},cm=class extends rm{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}functionCall(){return this.getRuleContext(0,xk)}selectElementAlias(){return this.getRuleContext(0,am)}accept(t){return t.visitSelectFunctionElement?t.visitSelectFunctionElement(this):t.visitChildren(this)}},nm=class extends rm{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}fullId(){return this.getRuleContext(0,Sx)}DOT(){return this.getToken(FC.DOT,0)}STAR(){return this.getToken(FC.STAR,0)}accept(t){return t.visitSelectStarElement?t.visitSelectStarElement(this):t.visitChildren(this)}},hm=class extends rm{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}fullColumnName(){return this.getRuleContext(0,Px)}selectElementAlias(){return this.getRuleContext(0,am)}accept(t){return t.visitSelectColumnElement?t.visitSelectColumnElement(this):t.visitChildren(this)}},Em=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_selectIntoExpression}copyFrom(t){super.copyFrom(t)}},Tm=class extends Em{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}INTO(){return this.getToken(FC.INTO,0)}assignmentField(t){return void 0===t?this.getRuleContexts(SU):this.getRuleContext(t,SU)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitSelectIntoVariables?t.visitSelectIntoVariables(this):t.visitChildren(this)}},om=class extends Em{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}INTO(){return this.getToken(FC.INTO,0)}OUTFILE(){return this.getToken(FC.OUTFILE,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}CHARACTER(){return this.getToken(FC.CHARACTER,0)}SET(){return this.getToken(FC.SET,0)}LINES(){return this.getToken(FC.LINES,0)}charsetName(){return this.getRuleContext(0,vx)}FIELDS(){return this.getToken(FC.FIELDS,0)}COLUMNS(){return this.getToken(FC.COLUMNS,0)}selectFieldsInto(t){return void 0===t?this.getRuleContexts(Am):this.getRuleContext(t,Am)}selectLinesInto(t){return void 0===t?this.getRuleContexts(Sm):this.getRuleContext(t,Sm)}accept(t){return t.visitSelectIntoTextFile?t.visitSelectIntoTextFile(this):t.visitChildren(this)}},Rm=class extends Em{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}INTO(){return this.getToken(FC.INTO,0)}DUMPFILE(){return this.getToken(FC.DUMPFILE,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}accept(t){return t.visitSelectIntoDumpFile?t.visitSelectIntoDumpFile(this):t.visitChildren(this)}},Am=class extends ga{constructor(t,e){super(t,e)}TERMINATED(){return this.getToken(FC.TERMINATED,0)}BY(){return this.getToken(FC.BY,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}ENCLOSED(){return this.getToken(FC.ENCLOSED,0)}OPTIONALLY(){return this.getToken(FC.OPTIONALLY,0)}ESCAPED(){return this.getToken(FC.ESCAPED,0)}get ruleIndex(){return FC.RULE_selectFieldsInto}accept(t){return t.visitSelectFieldsInto?t.visitSelectFieldsInto(this):t.visitChildren(this)}},Sm=class extends ga{constructor(t,e){super(t,e)}STARTING(){return this.getToken(FC.STARTING,0)}BY(){return this.getToken(FC.BY,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}TERMINATED(){return this.getToken(FC.TERMINATED,0)}get ruleIndex(){return FC.RULE_selectLinesInto}accept(t){return t.visitSelectLinesInto?t.visitSelectLinesInto(this):t.visitChildren(this)}},lm=class extends ga{constructor(t,e){super(t,e)}FROM(){return this.getToken(FC.FROM,0)}tableSources(){return this.getRuleContext(0,UU)}WHERE(){return this.getToken(FC.WHERE,0)}expression(){return this.getRuleContext(0,NH)}get ruleIndex(){return FC.RULE_fromClause}accept(t){return t.visitFromClause?t.visitFromClause(this):t.visitChildren(this)}},Om=class extends ga{constructor(t,e){super(t,e)}GROUP(){return this.getToken(FC.GROUP,0)}BY(){return this.getToken(FC.BY,0)}groupByItem(t){return void 0===t?this.getRuleContexts(Nm):this.getRuleContext(t,Nm)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}WITH(){return this.getToken(FC.WITH,0)}ROLLUP(){return this.getToken(FC.ROLLUP,0)}get ruleIndex(){return FC.RULE_groupByClause}accept(t){return t.visitGroupByClause?t.visitGroupByClause(this):t.visitChildren(this)}},Im=class extends ga{constructor(t,e){super(t,e)}HAVING(){return this.getToken(FC.HAVING,0)}expression(){return this.getRuleContext(0,NH)}get ruleIndex(){return FC.RULE_havingClause}accept(t){return t.visitHavingClause?t.visitHavingClause(this):t.visitChildren(this)}},um=class extends ga{constructor(t,e){super(t,e)}WINDOW(){return this.getToken(FC.WINDOW,0)}windowName(t){return void 0===t?this.getRuleContexts(hH):this.getRuleContext(t,hH)}AS(t){return void 0===t?this.getTokens(FC.AS):this.getToken(FC.AS,t)}LR_BRACKET(t){return void 0===t?this.getTokens(FC.LR_BRACKET):this.getToken(FC.LR_BRACKET,t)}windowSpec(t){return void 0===t?this.getRuleContexts(nH):this.getRuleContext(t,nH)}RR_BRACKET(t){return void 0===t?this.getTokens(FC.RR_BRACKET):this.getToken(FC.RR_BRACKET,t)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_windowClause}accept(t){return t.visitWindowClause?t.visitWindowClause(this):t.visitChildren(this)}},Nm=class extends ga{constructor(t,e){super(t,e)}expression(){return this.getRuleContext(0,NH)}ASC(){return this.getToken(FC.ASC,0)}DESC(){return this.getToken(FC.DESC,0)}get ruleIndex(){return FC.RULE_groupByItem}accept(t){return t.visitGroupByItem?t.visitGroupByItem(this):t.visitChildren(this)}},Lm=class extends ga{constructor(t,e){super(t,e)}LIMIT(){return this.getToken(FC.LIMIT,0)}OFFSET(){return this.getToken(FC.OFFSET,0)}limitClauseAtom(t){return void 0===t?this.getRuleContexts(Cm):this.getRuleContext(t,Cm)}COMMA(){return this.getToken(FC.COMMA,0)}get ruleIndex(){return FC.RULE_limitClause}accept(t){return t.visitLimitClause?t.visitLimitClause(this):t.visitChildren(this)}},Cm=class extends ga{constructor(t,e){super(t,e)}decimalLiteral(){return this.getRuleContext(0,Qx)}mysqlVariable(){return this.getRuleContext(0,Fx)}simpleId(){return this.getRuleContext(0,Xx)}get ruleIndex(){return FC.RULE_limitClauseAtom}accept(t){return t.visitLimitClauseAtom?t.visitLimitClauseAtom(this):t.visitChildren(this)}},_m=class extends ga{constructor(t,e){super(t,e)}START(){return this.getToken(FC.START,0)}TRANSACTION(){return this.getToken(FC.TRANSACTION,0)}transactionMode(t){return void 0===t?this.getRuleContexts(Hm):this.getRuleContext(t,Hm)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_startTransaction}accept(t){return t.visitStartTransaction?t.visitStartTransaction(this):t.visitChildren(this)}},Pm=class extends ga{constructor(t,e){super(t,e)}BEGIN(){return this.getToken(FC.BEGIN,0)}WORK(){return this.getToken(FC.WORK,0)}get ruleIndex(){return FC.RULE_beginWork}accept(t){return t.visitBeginWork?t.visitBeginWork(this):t.visitChildren(this)}},Mm=class extends ga{constructor(t,e){super(t,e)}COMMIT(){return this.getToken(FC.COMMIT,0)}WORK(){return this.getToken(FC.WORK,0)}AND(){return this.getToken(FC.AND,0)}CHAIN(){return this.getToken(FC.CHAIN,0)}RELEASE(){return this.getToken(FC.RELEASE,0)}NO(t){return void 0===t?this.getTokens(FC.NO):this.getToken(FC.NO,t)}get ruleIndex(){return FC.RULE_commitWork}accept(t){return t.visitCommitWork?t.visitCommitWork(this):t.visitChildren(this)}},dm=class extends ga{constructor(t,e){super(t,e)}ROLLBACK(){return this.getToken(FC.ROLLBACK,0)}WORK(){return this.getToken(FC.WORK,0)}AND(){return this.getToken(FC.AND,0)}CHAIN(){return this.getToken(FC.CHAIN,0)}RELEASE(){return this.getToken(FC.RELEASE,0)}NO(t){return void 0===t?this.getTokens(FC.NO):this.getToken(FC.NO,t)}get ruleIndex(){return FC.RULE_rollbackWork}accept(t){return t.visitRollbackWork?t.visitRollbackWork(this):t.visitChildren(this)}},Um=class extends ga{constructor(t,e){super(t,e)}SAVEPOINT(){return this.getToken(FC.SAVEPOINT,0)}uid(){return this.getRuleContext(0,Vx)}get ruleIndex(){return FC.RULE_savepointStatement}accept(t){return t.visitSavepointStatement?t.visitSavepointStatement(this):t.visitChildren(this)}},mm=class extends ga{constructor(t,e){super(t,e)}ROLLBACK(){return this.getToken(FC.ROLLBACK,0)}TO(){return this.getToken(FC.TO,0)}uid(){return this.getRuleContext(0,Vx)}WORK(){return this.getToken(FC.WORK,0)}SAVEPOINT(){return this.getToken(FC.SAVEPOINT,0)}get ruleIndex(){return FC.RULE_rollbackStatement}accept(t){return t.visitRollbackStatement?t.visitRollbackStatement(this):t.visitChildren(this)}},Dm=class extends ga{constructor(t,e){super(t,e)}RELEASE(){return this.getToken(FC.RELEASE,0)}SAVEPOINT(){return this.getToken(FC.SAVEPOINT,0)}uid(){return this.getRuleContext(0,Vx)}get ruleIndex(){return FC.RULE_releaseStatement}accept(t){return t.visitReleaseStatement?t.visitReleaseStatement(this):t.visitChildren(this)}},pm=class extends ga{constructor(t,e){super(t,e)}LOCK(){return this.getToken(FC.LOCK,0)}lockTableElement(t){return void 0===t?this.getRuleContexts(Gm):this.getRuleContext(t,Gm)}TABLE(){return this.getToken(FC.TABLE,0)}TABLES(){return this.getToken(FC.TABLES,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}waitNowaitClause(){return this.getRuleContext(0,gk)}get ruleIndex(){return FC.RULE_lockTables}accept(t){return t.visitLockTables?t.visitLockTables(this):t.visitChildren(this)}},gm=class extends ga{constructor(t,e){super(t,e)}UNLOCK(){return this.getToken(FC.UNLOCK,0)}TABLES(){return this.getToken(FC.TABLES,0)}get ruleIndex(){return FC.RULE_unlockTables}accept(t){return t.visitUnlockTables?t.visitUnlockTables(this):t.visitChildren(this)}},xm=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(FC.SET,0)}AUTOCOMMIT(){return this.getToken(FC.AUTOCOMMIT,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}ZERO_DECIMAL(){return this.getToken(FC.ZERO_DECIMAL,0)}ONE_DECIMAL(){return this.getToken(FC.ONE_DECIMAL,0)}get ruleIndex(){return FC.RULE_setAutocommitStatement}accept(t){return t.visitSetAutocommitStatement?t.visitSetAutocommitStatement(this):t.visitChildren(this)}},km=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(FC.SET,0)}TRANSACTION(){return this.getToken(FC.TRANSACTION,0)}transactionOption(t){return void 0===t?this.getRuleContexts(vm):this.getRuleContext(t,vm)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}GLOBAL(){return this.getToken(FC.GLOBAL,0)}SESSION(){return this.getToken(FC.SESSION,0)}get ruleIndex(){return FC.RULE_setTransactionStatement}accept(t){return t.visitSetTransactionStatement?t.visitSetTransactionStatement(this):t.visitChildren(this)}},Hm=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(FC.WITH,0)}CONSISTENT(){return this.getToken(FC.CONSISTENT,0)}SNAPSHOT(){return this.getToken(FC.SNAPSHOT,0)}READ(){return this.getToken(FC.READ,0)}WRITE(){return this.getToken(FC.WRITE,0)}ONLY(){return this.getToken(FC.ONLY,0)}get ruleIndex(){return FC.RULE_transactionMode}accept(t){return t.visitTransactionMode?t.visitTransactionMode(this):t.visitChildren(this)}},Gm=class extends ga{constructor(t,e){super(t,e)}tableName(){return this.getRuleContext(0,lx)}lockAction(){return this.getRuleContext(0,Fm)}uid(){return this.getRuleContext(0,Vx)}AS(){return this.getToken(FC.AS,0)}get ruleIndex(){return FC.RULE_lockTableElement}accept(t){return t.visitLockTableElement?t.visitLockTableElement(this):t.visitChildren(this)}},Fm=class extends ga{constructor(t,e){super(t,e)}READ(){return this.getToken(FC.READ,0)}LOCAL(){return this.getToken(FC.LOCAL,0)}WRITE(){return this.getToken(FC.WRITE,0)}LOW_PRIORITY(){return this.getToken(FC.LOW_PRIORITY,0)}get ruleIndex(){return FC.RULE_lockAction}accept(t){return t.visitLockAction?t.visitLockAction(this):t.visitChildren(this)}},vm=class extends ga{constructor(t,e){super(t,e)}ISOLATION(){return this.getToken(FC.ISOLATION,0)}LEVEL(){return this.getToken(FC.LEVEL,0)}transactionLevel(){return this.getRuleContext(0,Bm)}READ(){return this.getToken(FC.READ,0)}WRITE(){return this.getToken(FC.WRITE,0)}ONLY(){return this.getToken(FC.ONLY,0)}get ruleIndex(){return FC.RULE_transactionOption}accept(t){return t.visitTransactionOption?t.visitTransactionOption(this):t.visitChildren(this)}},Bm=class extends ga{constructor(t,e){super(t,e)}REPEATABLE(){return this.getToken(FC.REPEATABLE,0)}READ(){return this.getToken(FC.READ,0)}COMMITTED(){return this.getToken(FC.COMMITTED,0)}UNCOMMITTED(){return this.getToken(FC.UNCOMMITTED,0)}SERIALIZABLE(){return this.getToken(FC.SERIALIZABLE,0)}get ruleIndex(){return FC.RULE_transactionLevel}accept(t){return t.visitTransactionLevel?t.visitTransactionLevel(this):t.visitChildren(this)}},ym=class extends ga{constructor(t,e){super(t,e)}CHANGE(){return this.getToken(FC.CHANGE,0)}MASTER(){return this.getToken(FC.MASTER,0)}TO(){return this.getToken(FC.TO,0)}masterOption(t){return void 0===t?this.getRuleContexts(Qm):this.getRuleContext(t,Qm)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}channelOption(){return this.getRuleContext(0,sD)}get ruleIndex(){return FC.RULE_changeMaster}accept(t){return t.visitChangeMaster?t.visitChangeMaster(this):t.visitChildren(this)}},fm=class extends ga{constructor(t,e){super(t,e)}CHANGE(){return this.getToken(FC.CHANGE,0)}REPLICATION(){return this.getToken(FC.REPLICATION,0)}FILTER(){return this.getToken(FC.FILTER,0)}replicationFilter(t){return void 0===t?this.getRuleContexts(aD):this.getRuleContext(t,aD)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_changeReplicationFilter}accept(t){return t.visitChangeReplicationFilter?t.visitChangeReplicationFilter(this):t.visitChildren(this)}},Ym=class extends ga{constructor(t,e){super(t,e)}PURGE(){return this.getToken(FC.PURGE,0)}LOGS(){return this.getToken(FC.LOGS,0)}BINARY(){return this.getToken(FC.BINARY,0)}MASTER(){return this.getToken(FC.MASTER,0)}TO(){return this.getToken(FC.TO,0)}BEFORE(){return this.getToken(FC.BEFORE,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}get ruleIndex(){return FC.RULE_purgeBinaryLogs}accept(t){return t.visitPurgeBinaryLogs?t.visitPurgeBinaryLogs(this):t.visitChildren(this)}},wm=class extends ga{constructor(t,e){super(t,e)}RESET(){return this.getToken(FC.RESET,0)}MASTER(){return this.getToken(FC.MASTER,0)}get ruleIndex(){return FC.RULE_resetMaster}accept(t){return t.visitResetMaster?t.visitResetMaster(this):t.visitChildren(this)}},bm=class extends ga{constructor(t,e){super(t,e)}RESET(){return this.getToken(FC.RESET,0)}SLAVE(){return this.getToken(FC.SLAVE,0)}ALL(){return this.getToken(FC.ALL,0)}channelOption(){return this.getRuleContext(0,sD)}get ruleIndex(){return FC.RULE_resetSlave}accept(t){return t.visitResetSlave?t.visitResetSlave(this):t.visitChildren(this)}},Wm=class extends ga{constructor(t,e){super(t,e)}START(){return this.getToken(FC.START,0)}SLAVE(){return this.getToken(FC.SLAVE,0)}threadType(t){return void 0===t?this.getRuleContexts(RD):this.getRuleContext(t,RD)}UNTIL(){return this.getToken(FC.UNTIL,0)}untilOption(){return this.getRuleContext(0,AD)}connectionOption(t){return void 0===t?this.getRuleContexts(uD):this.getRuleContext(t,uD)}channelOption(){return this.getRuleContext(0,sD)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_startSlave}accept(t){return t.visitStartSlave?t.visitStartSlave(this):t.visitChildren(this)}},Vm=class extends ga{constructor(t,e){super(t,e)}STOP(){return this.getToken(FC.STOP,0)}SLAVE(){return this.getToken(FC.SLAVE,0)}threadType(t){return void 0===t?this.getRuleContexts(RD):this.getRuleContext(t,RD)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_stopSlave}accept(t){return t.visitStopSlave?t.visitStopSlave(this):t.visitChildren(this)}},Xm=class extends ga{constructor(t,e){super(t,e)}START(){return this.getToken(FC.START,0)}GROUP_REPLICATION(){return this.getToken(FC.GROUP_REPLICATION,0)}get ruleIndex(){return FC.RULE_startGroupReplication}accept(t){return t.visitStartGroupReplication?t.visitStartGroupReplication(this):t.visitChildren(this)}},Km=class extends ga{constructor(t,e){super(t,e)}STOP(){return this.getToken(FC.STOP,0)}GROUP_REPLICATION(){return this.getToken(FC.GROUP_REPLICATION,0)}get ruleIndex(){return FC.RULE_stopGroupReplication}accept(t){return t.visitStopGroupReplication?t.visitStopGroupReplication(this):t.visitChildren(this)}},Qm=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_masterOption}copyFrom(t){super.copyFrom(t)}},Jm=class extends Qm{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}stringMasterOption(){return this.getRuleContext(0,$m)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}accept(t){return t.visitMasterStringOption?t.visitMasterStringOption(this):t.visitChildren(this)}},Zm=class extends Qm{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MASTER_HEARTBEAT_PERIOD(){return this.getToken(FC.MASTER_HEARTBEAT_PERIOD,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}REAL_LITERAL(){return this.getToken(FC.REAL_LITERAL,0)}accept(t){return t.visitMasterRealOption?t.visitMasterRealOption(this):t.visitChildren(this)}},qm=class extends Qm{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}boolMasterOption(){return this.getRuleContext(0,eD)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}ZERO_DECIMAL(){return this.getToken(FC.ZERO_DECIMAL,0)}ONE_DECIMAL(){return this.getToken(FC.ONE_DECIMAL,0)}accept(t){return t.visitMasterBoolOption?t.visitMasterBoolOption(this):t.visitChildren(this)}},jm=class extends Qm{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}IGNORE_SERVER_IDS(){return this.getToken(FC.IGNORE_SERVER_IDS,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitMasterUidListOption?t.visitMasterUidListOption(this):t.visitChildren(this)}},zm=class extends Qm{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}decimalMasterOption(){return this.getRuleContext(0,tD)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}accept(t){return t.visitMasterDecimalOption?t.visitMasterDecimalOption(this):t.visitChildren(this)}},$m=class extends ga{constructor(t,e){super(t,e)}MASTER_BIND(){return this.getToken(FC.MASTER_BIND,0)}MASTER_HOST(){return this.getToken(FC.MASTER_HOST,0)}MASTER_USER(){return this.getToken(FC.MASTER_USER,0)}MASTER_PASSWORD(){return this.getToken(FC.MASTER_PASSWORD,0)}MASTER_LOG_FILE(){return this.getToken(FC.MASTER_LOG_FILE,0)}RELAY_LOG_FILE(){return this.getToken(FC.RELAY_LOG_FILE,0)}MASTER_SSL_CA(){return this.getToken(FC.MASTER_SSL_CA,0)}MASTER_SSL_CAPATH(){return this.getToken(FC.MASTER_SSL_CAPATH,0)}MASTER_SSL_CERT(){return this.getToken(FC.MASTER_SSL_CERT,0)}MASTER_SSL_CRL(){return this.getToken(FC.MASTER_SSL_CRL,0)}MASTER_SSL_CRLPATH(){return this.getToken(FC.MASTER_SSL_CRLPATH,0)}MASTER_SSL_KEY(){return this.getToken(FC.MASTER_SSL_KEY,0)}MASTER_SSL_CIPHER(){return this.getToken(FC.MASTER_SSL_CIPHER,0)}MASTER_TLS_VERSION(){return this.getToken(FC.MASTER_TLS_VERSION,0)}get ruleIndex(){return FC.RULE_stringMasterOption}accept(t){return t.visitStringMasterOption?t.visitStringMasterOption(this):t.visitChildren(this)}},tD=class extends ga{constructor(t,e){super(t,e)}MASTER_PORT(){return this.getToken(FC.MASTER_PORT,0)}MASTER_CONNECT_RETRY(){return this.getToken(FC.MASTER_CONNECT_RETRY,0)}MASTER_RETRY_COUNT(){return this.getToken(FC.MASTER_RETRY_COUNT,0)}MASTER_DELAY(){return this.getToken(FC.MASTER_DELAY,0)}MASTER_LOG_POS(){return this.getToken(FC.MASTER_LOG_POS,0)}RELAY_LOG_POS(){return this.getToken(FC.RELAY_LOG_POS,0)}get ruleIndex(){return FC.RULE_decimalMasterOption}accept(t){return t.visitDecimalMasterOption?t.visitDecimalMasterOption(this):t.visitChildren(this)}},eD=class extends ga{constructor(t,e){super(t,e)}MASTER_AUTO_POSITION(){return this.getToken(FC.MASTER_AUTO_POSITION,0)}MASTER_SSL(){return this.getToken(FC.MASTER_SSL,0)}MASTER_SSL_VERIFY_SERVER_CERT(){return this.getToken(FC.MASTER_SSL_VERIFY_SERVER_CERT,0)}get ruleIndex(){return FC.RULE_boolMasterOption}accept(t){return t.visitBoolMasterOption?t.visitBoolMasterOption(this):t.visitChildren(this)}},sD=class extends ga{constructor(t,e){super(t,e)}FOR(){return this.getToken(FC.FOR,0)}CHANNEL(){return this.getToken(FC.CHANNEL,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}get ruleIndex(){return FC.RULE_channelOption}accept(t){return t.visitChannelOption?t.visitChannelOption(this):t.visitChildren(this)}},aD=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_replicationFilter}copyFrom(t){super.copyFrom(t)}},rD=class extends aD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REPLICATE_WILD_IGNORE_TABLE(){return this.getToken(FC.REPLICATE_WILD_IGNORE_TABLE,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}simpleStrings(){return this.getRuleContext(0,_k)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}accept(t){return t.visitWildIgnoreTableReplication?t.visitWildIgnoreTableReplication(this):t.visitChildren(this)}},iD=class extends aD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REPLICATE_DO_TABLE(){return this.getToken(FC.REPLICATE_DO_TABLE,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}tables(){return this.getRuleContext(0,Ik)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}accept(t){return t.visitDoTableReplication?t.visitDoTableReplication(this):t.visitChildren(this)}},cD=class extends aD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REPLICATE_IGNORE_TABLE(){return this.getToken(FC.REPLICATE_IGNORE_TABLE,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}tables(){return this.getRuleContext(0,Ik)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}accept(t){return t.visitIgnoreTableReplication?t.visitIgnoreTableReplication(this):t.visitChildren(this)}},nD=class extends aD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REPLICATE_REWRITE_DB(){return this.getToken(FC.REPLICATE_REWRITE_DB,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}tablePair(t){return void 0===t?this.getRuleContexts(oD):this.getRuleContext(t,oD)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitRewriteDbReplication?t.visitRewriteDbReplication(this):t.visitChildren(this)}},hD=class extends aD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REPLICATE_DO_DB(){return this.getToken(FC.REPLICATE_DO_DB,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}uidList(){return this.getRuleContext(0,lk)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}accept(t){return t.visitDoDbReplication?t.visitDoDbReplication(this):t.visitChildren(this)}},ED=class extends aD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REPLICATE_IGNORE_DB(){return this.getToken(FC.REPLICATE_IGNORE_DB,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}uidList(){return this.getRuleContext(0,lk)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}accept(t){return t.visitIgnoreDbReplication?t.visitIgnoreDbReplication(this):t.visitChildren(this)}},TD=class extends aD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REPLICATE_WILD_DO_TABLE(){return this.getToken(FC.REPLICATE_WILD_DO_TABLE,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}simpleStrings(){return this.getRuleContext(0,_k)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}accept(t){return t.visitWildDoTableReplication?t.visitWildDoTableReplication(this):t.visitChildren(this)}},oD=class extends ga{constructor(t,e){super(t,e)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}COMMA(){return this.getToken(FC.COMMA,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}tableName(t){return void 0===t?this.getRuleContexts(lx):this.getRuleContext(t,lx)}get ruleIndex(){return FC.RULE_tablePair}accept(t){return t.visitTablePair?t.visitTablePair(this):t.visitChildren(this)}},RD=class extends ga{constructor(t,e){super(t,e)}IO_THREAD(){return this.getToken(FC.IO_THREAD,0)}SQL_THREAD(){return this.getToken(FC.SQL_THREAD,0)}get ruleIndex(){return FC.RULE_threadType}accept(t){return t.visitThreadType?t.visitThreadType(this):t.visitChildren(this)}},AD=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_untilOption}copyFrom(t){super.copyFrom(t)}},SD=class extends AD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}gtuidSet(){return this.getRuleContext(0,PD)}SQL_BEFORE_GTIDS(){return this.getToken(FC.SQL_BEFORE_GTIDS,0)}SQL_AFTER_GTIDS(){return this.getToken(FC.SQL_AFTER_GTIDS,0)}accept(t){return t.visitGtidsUntilOption?t.visitGtidsUntilOption(this):t.visitChildren(this)}},lD=class extends AD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SQL_AFTER_MTS_GAPS(){return this.getToken(FC.SQL_AFTER_MTS_GAPS,0)}accept(t){return t.visitSqlGapsUntilOption?t.visitSqlGapsUntilOption(this):t.visitChildren(this)}},OD=class extends AD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MASTER_LOG_FILE(){return this.getToken(FC.MASTER_LOG_FILE,0)}EQUAL_SYMBOL(t){return void 0===t?this.getTokens(FC.EQUAL_SYMBOL):this.getToken(FC.EQUAL_SYMBOL,t)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}COMMA(){return this.getToken(FC.COMMA,0)}MASTER_LOG_POS(){return this.getToken(FC.MASTER_LOG_POS,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}accept(t){return t.visitMasterLogUntilOption?t.visitMasterLogUntilOption(this):t.visitChildren(this)}},ID=class extends AD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}RELAY_LOG_FILE(){return this.getToken(FC.RELAY_LOG_FILE,0)}EQUAL_SYMBOL(t){return void 0===t?this.getTokens(FC.EQUAL_SYMBOL):this.getToken(FC.EQUAL_SYMBOL,t)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}COMMA(){return this.getToken(FC.COMMA,0)}RELAY_LOG_POS(){return this.getToken(FC.RELAY_LOG_POS,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}accept(t){return t.visitRelayLogUntilOption?t.visitRelayLogUntilOption(this):t.visitChildren(this)}},uD=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_connectionOption}copyFrom(t){super.copyFrom(t)}},ND=class extends uD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}PLUGIN_DIR(){return this.getToken(FC.PLUGIN_DIR,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}accept(t){return t.visitPluginDirConnectionOption?t.visitPluginDirConnectionOption(this):t.visitChildren(this)}},LD=class extends uD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}USER(){return this.getToken(FC.USER,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}accept(t){return t.visitUserConnectionOption?t.visitUserConnectionOption(this):t.visitChildren(this)}},CD=class extends uD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DEFAULT_AUTH(){return this.getToken(FC.DEFAULT_AUTH,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}accept(t){return t.visitDefaultAuthConnectionOption?t.visitDefaultAuthConnectionOption(this):t.visitChildren(this)}},_D=class extends uD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}PASSWORD(){return this.getToken(FC.PASSWORD,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}accept(t){return t.visitPasswordConnectionOption?t.visitPasswordConnectionOption(this):t.visitChildren(this)}},PD=class extends ga{constructor(t,e){super(t,e)}uuidSet(t){return void 0===t?this.getRuleContexts(Yx):this.getRuleContext(t,Yx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}get ruleIndex(){return FC.RULE_gtuidSet}accept(t){return t.visitGtuidSet?t.visitGtuidSet(this):t.visitChildren(this)}},MD=class extends ga{constructor(t,e){super(t,e)}XA(){return this.getToken(FC.XA,0)}xid(){return this.getRuleContext(0,wx)}START(){return this.getToken(FC.START,0)}BEGIN(){return this.getToken(FC.BEGIN,0)}JOIN(){return this.getToken(FC.JOIN,0)}RESUME(){return this.getToken(FC.RESUME,0)}get ruleIndex(){return FC.RULE_xaStartTransaction}accept(t){return t.visitXaStartTransaction?t.visitXaStartTransaction(this):t.visitChildren(this)}},dD=class extends ga{constructor(t,e){super(t,e)}XA(){return this.getToken(FC.XA,0)}END(){return this.getToken(FC.END,0)}xid(){return this.getRuleContext(0,wx)}SUSPEND(){return this.getToken(FC.SUSPEND,0)}FOR(){return this.getToken(FC.FOR,0)}MIGRATE(){return this.getToken(FC.MIGRATE,0)}get ruleIndex(){return FC.RULE_xaEndTransaction}accept(t){return t.visitXaEndTransaction?t.visitXaEndTransaction(this):t.visitChildren(this)}},UD=class extends ga{constructor(t,e){super(t,e)}XA(){return this.getToken(FC.XA,0)}PREPARE(){return this.getToken(FC.PREPARE,0)}xid(){return this.getRuleContext(0,wx)}get ruleIndex(){return FC.RULE_xaPrepareStatement}accept(t){return t.visitXaPrepareStatement?t.visitXaPrepareStatement(this):t.visitChildren(this)}},mD=class extends ga{constructor(t,e){super(t,e)}XA(){return this.getToken(FC.XA,0)}COMMIT(){return this.getToken(FC.COMMIT,0)}xid(){return this.getRuleContext(0,wx)}ONE(){return this.getToken(FC.ONE,0)}PHASE(){return this.getToken(FC.PHASE,0)}get ruleIndex(){return FC.RULE_xaCommitWork}accept(t){return t.visitXaCommitWork?t.visitXaCommitWork(this):t.visitChildren(this)}},DD=class extends ga{constructor(t,e){super(t,e)}XA(){return this.getToken(FC.XA,0)}ROLLBACK(){return this.getToken(FC.ROLLBACK,0)}xid(){return this.getRuleContext(0,wx)}get ruleIndex(){return FC.RULE_xaRollbackWork}accept(t){return t.visitXaRollbackWork?t.visitXaRollbackWork(this):t.visitChildren(this)}},pD=class extends ga{constructor(t,e){super(t,e)}XA(){return this.getToken(FC.XA,0)}RECOVER(){return this.getToken(FC.RECOVER,0)}CONVERT(){return this.getToken(FC.CONVERT,0)}xid(){return this.getRuleContext(0,wx)}get ruleIndex(){return FC.RULE_xaRecoverWork}accept(t){return t.visitXaRecoverWork?t.visitXaRecoverWork(this):t.visitChildren(this)}},gD=class extends ga{constructor(t,e){super(t,e)}PREPARE(){return this.getToken(FC.PREPARE,0)}uid(){return this.getRuleContext(0,Vx)}FROM(){return this.getToken(FC.FROM,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}LOCAL_ID(){return this.getToken(FC.LOCAL_ID,0)}get ruleIndex(){return FC.RULE_prepareStatement}accept(t){return t.visitPrepareStatement?t.visitPrepareStatement(this):t.visitChildren(this)}},xD=class extends ga{constructor(t,e){super(t,e)}EXECUTE(){return this.getToken(FC.EXECUTE,0)}uid(){return this.getRuleContext(0,Vx)}USING(){return this.getToken(FC.USING,0)}userVariables(){return this.getRuleContext(0,Pk)}get ruleIndex(){return FC.RULE_executeStatement}accept(t){return t.visitExecuteStatement?t.visitExecuteStatement(this):t.visitChildren(this)}},kD=class extends ga{constructor(t,e){super(t,e)}PREPARE(){return this.getToken(FC.PREPARE,0)}uid(){return this.getRuleContext(0,Vx)}DEALLOCATE(){return this.getToken(FC.DEALLOCATE,0)}DROP(){return this.getToken(FC.DROP,0)}get ruleIndex(){return FC.RULE_deallocatePrepare}accept(t){return t.visitDeallocatePrepare?t.visitDeallocatePrepare(this):t.visitChildren(this)}},HD=class extends ga{constructor(t,e){super(t,e)}blockStatement(){return this.getRuleContext(0,GD)}statement(){return this.getRuleContext(0,yC)}get ruleIndex(){return FC.RULE_routineBody}accept(t){return t.visitRoutineBody?t.visitRoutineBody(this):t.visitChildren(this)}},GD=class extends ga{constructor(t,e){super(t,e)}BEGIN(){return this.getToken(FC.BEGIN,0)}END(){return this.getToken(FC.END,0)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}COLON_SYMB(){return this.getToken(FC.COLON_SYMB,0)}declareVariable(t){return void 0===t?this.getRuleContexts(QD):this.getRuleContext(t,QD)}SEMI(t){return void 0===t?this.getTokens(FC.SEMI):this.getToken(FC.SEMI,t)}declareCondition(t){return void 0===t?this.getRuleContexts(JD):this.getRuleContext(t,JD)}declareCursor(t){return void 0===t?this.getRuleContexts(ZD):this.getRuleContext(t,ZD)}declareHandler(t){return void 0===t?this.getRuleContexts(qD):this.getRuleContext(t,qD)}procedureSqlStatement(t){return void 0===t?this.getRuleContexts(rp):this.getRuleContext(t,rp)}get ruleIndex(){return FC.RULE_blockStatement}accept(t){return t.visitBlockStatement?t.visitBlockStatement(this):t.visitChildren(this)}},FD=class extends ga{constructor(t,e){super(t,e)}CASE(t){return void 0===t?this.getTokens(FC.CASE):this.getToken(FC.CASE,t)}END(){return this.getToken(FC.END,0)}uid(){return this.getRuleContext(0,Vx)}expression(){return this.getRuleContext(0,NH)}caseAlternative(t){return void 0===t?this.getRuleContexts(ip):this.getRuleContext(t,ip)}ELSE(){return this.getToken(FC.ELSE,0)}procedureSqlStatement(t){return void 0===t?this.getRuleContexts(rp):this.getRuleContext(t,rp)}get ruleIndex(){return FC.RULE_caseStatement}accept(t){return t.visitCaseStatement?t.visitCaseStatement(this):t.visitChildren(this)}},vD=class extends ga{constructor(t,e){super(t,e),this._thenStatements=[],this._elseStatements=[]}IF(t){return void 0===t?this.getTokens(FC.IF):this.getToken(FC.IF,t)}expression(){return this.getRuleContext(0,NH)}THEN(){return this.getToken(FC.THEN,0)}END(){return this.getToken(FC.END,0)}elifAlternative(t){return void 0===t?this.getRuleContexts(cp):this.getRuleContext(t,cp)}ELSE(){return this.getToken(FC.ELSE,0)}procedureSqlStatement(t){return void 0===t?this.getRuleContexts(rp):this.getRuleContext(t,rp)}get ruleIndex(){return FC.RULE_ifStatement}accept(t){return t.visitIfStatement?t.visitIfStatement(this):t.visitChildren(this)}},BD=class extends ga{constructor(t,e){super(t,e)}ITERATE(){return this.getToken(FC.ITERATE,0)}uid(){return this.getRuleContext(0,Vx)}get ruleIndex(){return FC.RULE_iterateStatement}accept(t){return t.visitIterateStatement?t.visitIterateStatement(this):t.visitChildren(this)}},yD=class extends ga{constructor(t,e){super(t,e)}LEAVE(){return this.getToken(FC.LEAVE,0)}uid(){return this.getRuleContext(0,Vx)}get ruleIndex(){return FC.RULE_leaveStatement}accept(t){return t.visitLeaveStatement?t.visitLeaveStatement(this):t.visitChildren(this)}},fD=class extends ga{constructor(t,e){super(t,e)}LOOP(t){return void 0===t?this.getTokens(FC.LOOP):this.getToken(FC.LOOP,t)}END(){return this.getToken(FC.END,0)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}COLON_SYMB(){return this.getToken(FC.COLON_SYMB,0)}procedureSqlStatement(t){return void 0===t?this.getRuleContexts(rp):this.getRuleContext(t,rp)}get ruleIndex(){return FC.RULE_loopStatement}accept(t){return t.visitLoopStatement?t.visitLoopStatement(this):t.visitChildren(this)}},YD=class extends ga{constructor(t,e){super(t,e)}REPEAT(t){return void 0===t?this.getTokens(FC.REPEAT):this.getToken(FC.REPEAT,t)}UNTIL(){return this.getToken(FC.UNTIL,0)}expression(){return this.getRuleContext(0,NH)}END(){return this.getToken(FC.END,0)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}COLON_SYMB(){return this.getToken(FC.COLON_SYMB,0)}procedureSqlStatement(t){return void 0===t?this.getRuleContexts(rp):this.getRuleContext(t,rp)}get ruleIndex(){return FC.RULE_repeatStatement}accept(t){return t.visitRepeatStatement?t.visitRepeatStatement(this):t.visitChildren(this)}},wD=class extends ga{constructor(t,e){super(t,e)}RETURN(){return this.getToken(FC.RETURN,0)}expression(){return this.getRuleContext(0,NH)}get ruleIndex(){return FC.RULE_returnStatement}accept(t){return t.visitReturnStatement?t.visitReturnStatement(this):t.visitChildren(this)}},bD=class extends ga{constructor(t,e){super(t,e)}WHILE(t){return void 0===t?this.getTokens(FC.WHILE):this.getToken(FC.WHILE,t)}expression(){return this.getRuleContext(0,NH)}DO(){return this.getToken(FC.DO,0)}END(){return this.getToken(FC.END,0)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}COLON_SYMB(){return this.getToken(FC.COLON_SYMB,0)}procedureSqlStatement(t){return void 0===t?this.getRuleContexts(rp):this.getRuleContext(t,rp)}get ruleIndex(){return FC.RULE_whileStatement}accept(t){return t.visitWhileStatement?t.visitWhileStatement(this):t.visitChildren(this)}},WD=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_cursorStatement}copyFrom(t){super.copyFrom(t)}},VD=class extends WD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CLOSE(){return this.getToken(FC.CLOSE,0)}uid(){return this.getRuleContext(0,Vx)}accept(t){return t.visitCloseCursor?t.visitCloseCursor(this):t.visitChildren(this)}},XD=class extends WD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}OPEN(){return this.getToken(FC.OPEN,0)}uid(){return this.getRuleContext(0,Vx)}accept(t){return t.visitOpenCursor?t.visitOpenCursor(this):t.visitChildren(this)}},KD=class extends WD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}FETCH(){return this.getToken(FC.FETCH,0)}uid(){return this.getRuleContext(0,Vx)}INTO(){return this.getToken(FC.INTO,0)}uidList(){return this.getRuleContext(0,lk)}FROM(){return this.getToken(FC.FROM,0)}NEXT(){return this.getToken(FC.NEXT,0)}accept(t){return t.visitFetchCursor?t.visitFetchCursor(this):t.visitChildren(this)}},QD=class extends ga{constructor(t,e){super(t,e)}DECLARE(){return this.getToken(FC.DECLARE,0)}uidList(){return this.getRuleContext(0,lk)}dataType(){return this.getRuleContext(0,tk)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}expression(){return this.getRuleContext(0,NH)}get ruleIndex(){return FC.RULE_declareVariable}accept(t){return t.visitDeclareVariable?t.visitDeclareVariable(this):t.visitChildren(this)}},JD=class extends ga{constructor(t,e){super(t,e)}DECLARE(){return this.getToken(FC.DECLARE,0)}uid(){return this.getRuleContext(0,Vx)}CONDITION(){return this.getToken(FC.CONDITION,0)}FOR(){return this.getToken(FC.FOR,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}SQLSTATE(){return this.getToken(FC.SQLSTATE,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}VALUE(){return this.getToken(FC.VALUE,0)}get ruleIndex(){return FC.RULE_declareCondition}accept(t){return t.visitDeclareCondition?t.visitDeclareCondition(this):t.visitChildren(this)}},ZD=class extends ga{constructor(t,e){super(t,e)}DECLARE(){return this.getToken(FC.DECLARE,0)}uid(){return this.getRuleContext(0,Vx)}CURSOR(){return this.getToken(FC.CURSOR,0)}FOR(){return this.getToken(FC.FOR,0)}selectStatement(){return this.getRuleContext(0,rU)}get ruleIndex(){return FC.RULE_declareCursor}accept(t){return t.visitDeclareCursor?t.visitDeclareCursor(this):t.visitChildren(this)}},qD=class extends ga{constructor(t,e){super(t,e)}DECLARE(){return this.getToken(FC.DECLARE,0)}HANDLER(){return this.getToken(FC.HANDLER,0)}FOR(){return this.getToken(FC.FOR,0)}handlerConditionValue(t){return void 0===t?this.getRuleContexts(jD):this.getRuleContext(t,jD)}routineBody(){return this.getRuleContext(0,HD)}CONTINUE(){return this.getToken(FC.CONTINUE,0)}EXIT(){return this.getToken(FC.EXIT,0)}UNDO(){return this.getToken(FC.UNDO,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_declareHandler}accept(t){return t.visitDeclareHandler?t.visitDeclareHandler(this):t.visitChildren(this)}},jD=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_handlerConditionValue}copyFrom(t){super.copyFrom(t)}},zD=class extends jD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SQLWARNING(){return this.getToken(FC.SQLWARNING,0)}accept(t){return t.visitHandlerConditionWarning?t.visitHandlerConditionWarning(this):t.visitChildren(this)}},$D=class extends jD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}decimalLiteral(){return this.getRuleContext(0,Qx)}accept(t){return t.visitHandlerConditionCode?t.visitHandlerConditionCode(this):t.visitChildren(this)}},tp=class extends jD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}NOT(){return this.getToken(FC.NOT,0)}FOUND(){return this.getToken(FC.FOUND,0)}accept(t){return t.visitHandlerConditionNotfound?t.visitHandlerConditionNotfound(this):t.visitChildren(this)}},ep=class extends jD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SQLSTATE(){return this.getToken(FC.SQLSTATE,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}VALUE(){return this.getToken(FC.VALUE,0)}accept(t){return t.visitHandlerConditionState?t.visitHandlerConditionState(this):t.visitChildren(this)}},sp=class extends jD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SQLEXCEPTION(){return this.getToken(FC.SQLEXCEPTION,0)}accept(t){return t.visitHandlerConditionException?t.visitHandlerConditionException(this):t.visitChildren(this)}},ap=class extends jD{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}uid(){return this.getRuleContext(0,Vx)}accept(t){return t.visitHandlerConditionName?t.visitHandlerConditionName(this):t.visitChildren(this)}},rp=class extends ga{constructor(t,e){super(t,e)}SEMI(){return this.getToken(FC.SEMI,0)}compoundStatement(){return this.getRuleContext(0,VC)}statement(){return this.getRuleContext(0,yC)}get ruleIndex(){return FC.RULE_procedureSqlStatement}accept(t){return t.visitProcedureSqlStatement?t.visitProcedureSqlStatement(this):t.visitChildren(this)}},ip=class extends ga{constructor(t,e){super(t,e)}WHEN(){return this.getToken(FC.WHEN,0)}THEN(){return this.getToken(FC.THEN,0)}constant(){return this.getRuleContext(0,$x)}expression(){return this.getRuleContext(0,NH)}procedureSqlStatement(t){return void 0===t?this.getRuleContexts(rp):this.getRuleContext(t,rp)}get ruleIndex(){return FC.RULE_caseAlternative}accept(t){return t.visitCaseAlternative?t.visitCaseAlternative(this):t.visitChildren(this)}},cp=class extends ga{constructor(t,e){super(t,e)}ELSEIF(){return this.getToken(FC.ELSEIF,0)}expression(){return this.getRuleContext(0,NH)}THEN(){return this.getToken(FC.THEN,0)}procedureSqlStatement(t){return void 0===t?this.getRuleContexts(rp):this.getRuleContext(t,rp)}get ruleIndex(){return FC.RULE_elifAlternative}accept(t){return t.visitElifAlternative?t.visitElifAlternative(this):t.visitChildren(this)}},np=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_alterUser}copyFrom(t){super.copyFrom(t)}},hp=class extends np{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ALTER(){return this.getToken(FC.ALTER,0)}USER(){return this.getToken(FC.USER,0)}newUserAuthOptionList(){return this.getRuleContext(0,dp)}ifExists(){return this.getRuleContext(0,mk)}REQUIRE(){return this.getToken(FC.REQUIRE,0)}WITH(){return this.getToken(FC.WITH,0)}userPasswordOption(t){return void 0===t?this.getRuleContexts(yp):this.getRuleContext(t,yp)}userLockOption(t){return void 0===t?this.getRuleContexts(fp):this.getRuleContext(t,fp)}COMMENT(){return this.getToken(FC.COMMENT,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}ATTRIBUTE(){return this.getToken(FC.ATTRIBUTE,0)}tlsOption(t){return void 0===t?this.getRuleContexts(vp):this.getRuleContext(t,vp)}NONE(){return this.getToken(FC.NONE,0)}userResourceOption(t){return void 0===t?this.getRuleContexts(Bp):this.getRuleContext(t,Bp)}AND(t){return void 0===t?this.getTokens(FC.AND):this.getToken(FC.AND,t)}userName(){return this.getRuleContext(0,Gx)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}ROLE(){return this.getToken(FC.ROLE,0)}roleOption(){return this.getRuleContext(0,lp)}accept(t){return t.visitAlterUserMysqlV80?t.visitAlterUserMysqlV80(this):t.visitChildren(this)}},Ep=class extends np{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ALTER(){return this.getToken(FC.ALTER,0)}USER(){return this.getToken(FC.USER,0)}userSpecification(t){return void 0===t?this.getRuleContexts(Mp):this.getRuleContext(t,Mp)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitAlterUserMysqlV56?t.visitAlterUserMysqlV56(this):t.visitChildren(this)}},Tp=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_createUser}copyFrom(t){super.copyFrom(t)}},op=class extends Tp{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CREATE(){return this.getToken(FC.CREATE,0)}USER(){return this.getToken(FC.USER,0)}newUserAuthOptionList(){return this.getRuleContext(0,dp)}accept(t){return t.visitCreateUserMysqlV56?t.visitCreateUserMysqlV56(this):t.visitChildren(this)}},Rp=class extends Tp{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CREATE(){return this.getToken(FC.CREATE,0)}USER(){return this.getToken(FC.USER,0)}newUserAuthOptionList(){return this.getRuleContext(0,dp)}ifNotExists(){return this.getRuleContext(0,Dk)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}ROLE(){return this.getToken(FC.ROLE,0)}roleOption(){return this.getRuleContext(0,lp)}REQUIRE(){return this.getToken(FC.REQUIRE,0)}WITH(){return this.getToken(FC.WITH,0)}userPasswordOption(t){return void 0===t?this.getRuleContexts(yp):this.getRuleContext(t,yp)}userLockOption(t){return void 0===t?this.getRuleContexts(fp):this.getRuleContext(t,fp)}COMMENT(){return this.getToken(FC.COMMENT,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}ATTRIBUTE(){return this.getToken(FC.ATTRIBUTE,0)}tlsOption(t){return void 0===t?this.getRuleContexts(vp):this.getRuleContext(t,vp)}NONE(){return this.getToken(FC.NONE,0)}userResourceOption(t){return void 0===t?this.getRuleContexts(Bp):this.getRuleContext(t,Bp)}AND(t){return void 0===t?this.getTokens(FC.AND):this.getToken(FC.AND,t)}accept(t){return t.visitCreateUserMysqlV80?t.visitCreateUserMysqlV80(this):t.visitChildren(this)}},Ap=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(FC.DROP,0)}USER(){return this.getToken(FC.USER,0)}userNameList(){return this.getRuleContext(0,kx)}ifExists(){return this.getRuleContext(0,mk)}get ruleIndex(){return FC.RULE_dropUser}accept(t){return t.visitDropUser?t.visitDropUser(this):t.visitChildren(this)}},Sp=class extends ga{constructor(t,e){super(t,e)}GRANT(t){return void 0===t?this.getTokens(FC.GRANT):this.getToken(FC.GRANT,t)}privelegeClause(t){return void 0===t?this.getRuleContexts(Yp):this.getRuleContext(t,Yp)}ON(){return this.getToken(FC.ON,0)}privilegeLevel(){return this.getRuleContext(0,bp)}TO(){return this.getToken(FC.TO,0)}userOrRoleNameList(){return this.getRuleContext(0,ux)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}REQUIRE(){return this.getToken(FC.REQUIRE,0)}WITH(t){return void 0===t?this.getTokens(FC.WITH):this.getToken(FC.WITH,t)}AS(){return this.getToken(FC.AS,0)}userName(){return this.getRuleContext(0,Gx)}ROLE(){return this.getToken(FC.ROLE,0)}roleOption(){return this.getRuleContext(0,lp)}TABLE(){return this.getToken(FC.TABLE,0)}FUNCTION(){return this.getToken(FC.FUNCTION,0)}PROCEDURE(){return this.getToken(FC.PROCEDURE,0)}tlsOption(t){return void 0===t?this.getRuleContexts(vp):this.getRuleContext(t,vp)}NONE(){return this.getToken(FC.NONE,0)}OPTION(t){return void 0===t?this.getTokens(FC.OPTION):this.getToken(FC.OPTION,t)}userResourceOption(t){return void 0===t?this.getRuleContexts(Bp):this.getRuleContext(t,Bp)}AND(t){return void 0===t?this.getTokens(FC.AND):this.getToken(FC.AND,t)}roleNameList(){return this.getRuleContext(0,Cx)}ADMIN(){return this.getToken(FC.ADMIN,0)}get ruleIndex(){return FC.RULE_grantStatement}accept(t){return t.visitGrantStatement?t.visitGrantStatement(this):t.visitChildren(this)}},lp=class extends ga{constructor(t,e){super(t,e)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}NONE(){return this.getToken(FC.NONE,0)}ALL(){return this.getToken(FC.ALL,0)}EXCEPT(){return this.getToken(FC.EXCEPT,0)}roleNameList(){return this.getRuleContext(0,Cx)}get ruleIndex(){return FC.RULE_roleOption}accept(t){return t.visitRoleOption?t.visitRoleOption(this):t.visitChildren(this)}},Op=class extends ga{constructor(t,e){super(t,e),this._toOther=[]}GRANT(t){return void 0===t?this.getTokens(FC.GRANT):this.getToken(FC.GRANT,t)}PROXY(){return this.getToken(FC.PROXY,0)}ON(){return this.getToken(FC.ON,0)}TO(){return this.getToken(FC.TO,0)}userName(t){return void 0===t?this.getRuleContexts(Gx):this.getRuleContext(t,Gx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}WITH(){return this.getToken(FC.WITH,0)}OPTION(){return this.getToken(FC.OPTION,0)}get ruleIndex(){return FC.RULE_grantProxy}accept(t){return t.visitGrantProxy?t.visitGrantProxy(this):t.visitChildren(this)}},Ip=class extends ga{constructor(t,e){super(t,e)}RENAME(){return this.getToken(FC.RENAME,0)}USER(){return this.getToken(FC.USER,0)}renameUserClause(t){return void 0===t?this.getRuleContexts(Zp):this.getRuleContext(t,Zp)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_renameUser}accept(t){return t.visitRenameUser?t.visitRenameUser(this):t.visitChildren(this)}},up=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_revokeStatement}copyFrom(t){super.copyFrom(t)}},Np=class extends up{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REVOKE(){return this.getToken(FC.REVOKE,0)}ALL(){return this.getToken(FC.ALL,0)}COMMA(){return this.getToken(FC.COMMA,0)}GRANT(){return this.getToken(FC.GRANT,0)}OPTION(){return this.getToken(FC.OPTION,0)}FROM(){return this.getToken(FC.FROM,0)}userOrRoleNameList(){return this.getRuleContext(0,ux)}PRIVILEGES(){return this.getToken(FC.PRIVILEGES,0)}accept(t){return t.visitShortPrivilegeRevoke?t.visitShortPrivilegeRevoke(this):t.visitChildren(this)}},Lp=class extends up{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REVOKE(){return this.getToken(FC.REVOKE,0)}roleNameList(){return this.getRuleContext(0,Cx)}FROM(){return this.getToken(FC.FROM,0)}userOrRoleNameList(t){return void 0===t?this.getRuleContexts(ux):this.getRuleContext(t,ux)}accept(t){return t.visitRoleRevoke?t.visitRoleRevoke(this):t.visitChildren(this)}},Cp=class extends up{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REVOKE(){return this.getToken(FC.REVOKE,0)}privelegeClause(t){return void 0===t?this.getRuleContexts(Yp):this.getRuleContext(t,Yp)}ON(){return this.getToken(FC.ON,0)}privilegeLevel(){return this.getRuleContext(0,bp)}FROM(){return this.getToken(FC.FROM,0)}userOrRoleNameList(){return this.getRuleContext(0,ux)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}TABLE(){return this.getToken(FC.TABLE,0)}FUNCTION(){return this.getToken(FC.FUNCTION,0)}PROCEDURE(){return this.getToken(FC.PROCEDURE,0)}accept(t){return t.visitDetailedPrivilegeRevoke?t.visitDetailedPrivilegeRevoke(this):t.visitChildren(this)}},_p=class extends ga{constructor(t,e){super(t,e),this._fromOther=[]}REVOKE(){return this.getToken(FC.REVOKE,0)}PROXY(){return this.getToken(FC.PROXY,0)}ON(){return this.getToken(FC.ON,0)}FROM(){return this.getToken(FC.FROM,0)}userName(t){return void 0===t?this.getRuleContexts(Gx):this.getRuleContext(t,Gx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_revokeProxy}accept(t){return t.visitRevokeProxy?t.visitRevokeProxy(this):t.visitChildren(this)}},Pp=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(FC.SET,0)}PASSWORD(){return this.getToken(FC.PASSWORD,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}passwordFunctionClause(){return this.getRuleContext(0,OH)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}FOR(){return this.getToken(FC.FOR,0)}userName(){return this.getRuleContext(0,Gx)}get ruleIndex(){return FC.RULE_setPasswordStatement}accept(t){return t.visitSetPasswordStatement?t.visitSetPasswordStatement(this):t.visitChildren(this)}},Mp=class extends ga{constructor(t,e){super(t,e)}userName(){return this.getRuleContext(0,Gx)}userPasswordOption(){return this.getRuleContext(0,yp)}get ruleIndex(){return FC.RULE_userSpecification}accept(t){return t.visitUserSpecification?t.visitUserSpecification(this):t.visitChildren(this)}},dp=class extends ga{constructor(t,e){super(t,e)}newUserAuthOption(t){return void 0===t?this.getRuleContexts(Up):this.getRuleContext(t,Up)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_newUserAuthOptionList}accept(t){return t.visitNewUserAuthOptionList?t.visitNewUserAuthOptionList(this):t.visitChildren(this)}},Up=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_newUserAuthOption}copyFrom(t){super.copyFrom(t)}},mp=class extends Up{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}newUserName(){return this.getRuleContext(0,Hx)}accept(t){return t.visitSimpleAuthOption?t.visitSimpleAuthOption(this):t.visitChildren(this)}},Dp=class extends Up{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}newUserName(){return this.getRuleContext(0,Hx)}IDENTIFIED(){return this.getToken(FC.IDENTIFIED,0)}WITH(){return this.getToken(FC.WITH,0)}authenticationRule(){return this.getRuleContext(0,Hp)}accept(t){return t.visitModuleAuthOption?t.visitModuleAuthOption(this):t.visitChildren(this)}},pp=class extends Up{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}newUserName(){return this.getRuleContext(0,Hx)}IDENTIFIED(){return this.getToken(FC.IDENTIFIED,0)}BY(){return this.getToken(FC.BY,0)}RANDOM(){return this.getToken(FC.RANDOM,0)}PASSWORD(){return this.getToken(FC.PASSWORD,0)}authOptionClause(){return this.getRuleContext(0,kp)}accept(t){return t.visitRandomAuthOption?t.visitRandomAuthOption(this):t.visitChildren(this)}},gp=class extends Up{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}newUserName(){return this.getRuleContext(0,Hx)}IDENTIFIED(){return this.getToken(FC.IDENTIFIED,0)}BY(){return this.getToken(FC.BY,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}authOptionClause(){return this.getRuleContext(0,kp)}accept(t){return t.visitStringAuthOption?t.visitStringAuthOption(this):t.visitChildren(this)}},xp=class extends Up{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}newUserName(){return this.getRuleContext(0,Hx)}IDENTIFIED(){return this.getToken(FC.IDENTIFIED,0)}BY(){return this.getToken(FC.BY,0)}PASSWORD(){return this.getToken(FC.PASSWORD,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}accept(t){return t.visitHashAuthOption?t.visitHashAuthOption(this):t.visitChildren(this)}},kp=class extends ga{constructor(t,e){super(t,e)}REPLACE(){return this.getToken(FC.REPLACE,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}RETAIN(){return this.getToken(FC.RETAIN,0)}CURRENT(){return this.getToken(FC.CURRENT,0)}PASSWORD(){return this.getToken(FC.PASSWORD,0)}get ruleIndex(){return FC.RULE_authOptionClause}accept(t){return t.visitAuthOptionClause?t.visitAuthOptionClause(this):t.visitChildren(this)}},Hp=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_authenticationRule}copyFrom(t){super.copyFrom(t)}},Gp=class extends Hp{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}authPlugin(){return this.getRuleContext(0,Wx)}USING(){return this.getToken(FC.USING,0)}passwordFunctionClause(){return this.getRuleContext(0,OH)}accept(t){return t.visitPasswordModuleOption?t.visitPasswordModuleOption(this):t.visitChildren(this)}},Fp=class extends Hp{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}authPlugin(){return this.getRuleContext(0,Wx)}authOptionClause(){return this.getRuleContext(0,kp)}BY(){return this.getToken(FC.BY,0)}USING(){return this.getToken(FC.USING,0)}AS(){return this.getToken(FC.AS,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}RANDOM(){return this.getToken(FC.RANDOM,0)}PASSWORD(){return this.getToken(FC.PASSWORD,0)}accept(t){return t.visitModule?t.visitModule(this):t.visitChildren(this)}},vp=class extends ga{constructor(t,e){super(t,e)}SSL(){return this.getToken(FC.SSL,0)}X509(){return this.getToken(FC.X509,0)}CIPHER(){return this.getToken(FC.CIPHER,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}ISSUER(){return this.getToken(FC.ISSUER,0)}SUBJECT(){return this.getToken(FC.SUBJECT,0)}get ruleIndex(){return FC.RULE_tlsOption}accept(t){return t.visitTlsOption?t.visitTlsOption(this):t.visitChildren(this)}},Bp=class extends ga{constructor(t,e){super(t,e)}MAX_QUERIES_PER_HOUR(){return this.getToken(FC.MAX_QUERIES_PER_HOUR,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}MAX_UPDATES_PER_HOUR(){return this.getToken(FC.MAX_UPDATES_PER_HOUR,0)}MAX_CONNECTIONS_PER_HOUR(){return this.getToken(FC.MAX_CONNECTIONS_PER_HOUR,0)}MAX_USER_CONNECTIONS(){return this.getToken(FC.MAX_USER_CONNECTIONS,0)}get ruleIndex(){return FC.RULE_userResourceOption}accept(t){return t.visitUserResourceOption?t.visitUserResourceOption(this):t.visitChildren(this)}},yp=class extends ga{constructor(t,e){super(t,e)}PASSWORD(){return this.getToken(FC.PASSWORD,0)}EXPIRE(){return this.getToken(FC.EXPIRE,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}DAY(){return this.getToken(FC.DAY,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}NEVER(){return this.getToken(FC.NEVER,0)}INTERVAL(){return this.getToken(FC.INTERVAL,0)}HISTORY(){return this.getToken(FC.HISTORY,0)}REUSE(){return this.getToken(FC.REUSE,0)}REQUIRE(){return this.getToken(FC.REQUIRE,0)}CURRENT(){return this.getToken(FC.CURRENT,0)}OPTIONAL(){return this.getToken(FC.OPTIONAL,0)}FAILED_LOGIN_ATTEMPTS(){return this.getToken(FC.FAILED_LOGIN_ATTEMPTS,0)}PASSWORD_LOCK_TIME(){return this.getToken(FC.PASSWORD_LOCK_TIME,0)}UNBOUNDED(){return this.getToken(FC.UNBOUNDED,0)}get ruleIndex(){return FC.RULE_userPasswordOption}accept(t){return t.visitUserPasswordOption?t.visitUserPasswordOption(this):t.visitChildren(this)}},fp=class extends ga{constructor(t,e){super(t,e)}ACCOUNT(){return this.getToken(FC.ACCOUNT,0)}LOCK(){return this.getToken(FC.LOCK,0)}UNLOCK(){return this.getToken(FC.UNLOCK,0)}get ruleIndex(){return FC.RULE_userLockOption}accept(t){return t.visitUserLockOption?t.visitUserLockOption(this):t.visitChildren(this)}},Yp=class extends ga{constructor(t,e){super(t,e)}privilege(){return this.getRuleContext(0,wp)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}uidList(){return this.getRuleContext(0,lk)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}get ruleIndex(){return FC.RULE_privelegeClause}accept(t){return t.visitPrivelegeClause?t.visitPrivelegeClause(this):t.visitChildren(this)}},wp=class extends ga{constructor(t,e){super(t,e)}ALL(){return this.getToken(FC.ALL,0)}PRIVILEGES(){return this.getToken(FC.PRIVILEGES,0)}ALTER(){return this.getToken(FC.ALTER,0)}ROUTINE(){return this.getToken(FC.ROUTINE,0)}CREATE(){return this.getToken(FC.CREATE,0)}TEMPORARY(){return this.getToken(FC.TEMPORARY,0)}TABLES(){return this.getToken(FC.TABLES,0)}VIEW(){return this.getToken(FC.VIEW,0)}USER(){return this.getToken(FC.USER,0)}TABLESPACE(){return this.getToken(FC.TABLESPACE,0)}ROLE(){return this.getToken(FC.ROLE,0)}DELETE(){return this.getToken(FC.DELETE,0)}DROP(){return this.getToken(FC.DROP,0)}EVENT(){return this.getToken(FC.EVENT,0)}EXECUTE(){return this.getToken(FC.EXECUTE,0)}FILE(){return this.getToken(FC.FILE,0)}GRANT(){return this.getToken(FC.GRANT,0)}OPTION(){return this.getToken(FC.OPTION,0)}INDEX(){return this.getToken(FC.INDEX,0)}INSERT(){return this.getToken(FC.INSERT,0)}LOCK(){return this.getToken(FC.LOCK,0)}PROCESS(){return this.getToken(FC.PROCESS,0)}PROXY(){return this.getToken(FC.PROXY,0)}REFERENCES(){return this.getToken(FC.REFERENCES,0)}RELOAD(){return this.getToken(FC.RELOAD,0)}REPLICATION(){return this.getToken(FC.REPLICATION,0)}CLIENT(){return this.getToken(FC.CLIENT,0)}SLAVE(){return this.getToken(FC.SLAVE,0)}SELECT(){return this.getToken(FC.SELECT,0)}SHOW(){return this.getToken(FC.SHOW,0)}DATABASES(){return this.getToken(FC.DATABASES,0)}SHUTDOWN(){return this.getToken(FC.SHUTDOWN,0)}SUPER(){return this.getToken(FC.SUPER,0)}TRIGGER(){return this.getToken(FC.TRIGGER,0)}UPDATE(){return this.getToken(FC.UPDATE,0)}USAGE(){return this.getToken(FC.USAGE,0)}APPLICATION_PASSWORD_ADMIN(){return this.getToken(FC.APPLICATION_PASSWORD_ADMIN,0)}AUDIT_ABORT_EXEMPT(){return this.getToken(FC.AUDIT_ABORT_EXEMPT,0)}AUDIT_ADMIN(){return this.getToken(FC.AUDIT_ADMIN,0)}AUTHENTICATION_POLICY_ADMIN(){return this.getToken(FC.AUTHENTICATION_POLICY_ADMIN,0)}BACKUP_ADMIN(){return this.getToken(FC.BACKUP_ADMIN,0)}BINLOG_ADMIN(){return this.getToken(FC.BINLOG_ADMIN,0)}BINLOG_ENCRYPTION_ADMIN(){return this.getToken(FC.BINLOG_ENCRYPTION_ADMIN,0)}CLONE_ADMIN(){return this.getToken(FC.CLONE_ADMIN,0)}CONNECTION_ADMIN(){return this.getToken(FC.CONNECTION_ADMIN,0)}ENCRYPTION_KEY_ADMIN(){return this.getToken(FC.ENCRYPTION_KEY_ADMIN,0)}FIREWALL_ADMIN(){return this.getToken(FC.FIREWALL_ADMIN,0)}FIREWALL_EXEMPT(){return this.getToken(FC.FIREWALL_EXEMPT,0)}FIREWALL_USER(){return this.getToken(FC.FIREWALL_USER,0)}FLUSH_OPTIMIZER_COSTS(){return this.getToken(FC.FLUSH_OPTIMIZER_COSTS,0)}FLUSH_STATUS(){return this.getToken(FC.FLUSH_STATUS,0)}FLUSH_TABLES(){return this.getToken(FC.FLUSH_TABLES,0)}FLUSH_USER_RESOURCES(){return this.getToken(FC.FLUSH_USER_RESOURCES,0)}GROUP_REPLICATION_ADMIN(){return this.getToken(FC.GROUP_REPLICATION_ADMIN,0)}INNODB_REDO_LOG_ARCHIVE(){return this.getToken(FC.INNODB_REDO_LOG_ARCHIVE,0)}INNODB_REDO_LOG_ENABLE(){return this.getToken(FC.INNODB_REDO_LOG_ENABLE,0)}NDB_STORED_USER(){return this.getToken(FC.NDB_STORED_USER,0)}PASSWORDLESS_USER_ADMIN(){return this.getToken(FC.PASSWORDLESS_USER_ADMIN,0)}PERSIST_RO_VARIABLES_ADMIN(){return this.getToken(FC.PERSIST_RO_VARIABLES_ADMIN,0)}REPLICATION_APPLIER(){return this.getToken(FC.REPLICATION_APPLIER,0)}REPLICATION_SLAVE_ADMIN(){return this.getToken(FC.REPLICATION_SLAVE_ADMIN,0)}RESOURCE_GROUP_ADMIN(){return this.getToken(FC.RESOURCE_GROUP_ADMIN,0)}RESOURCE_GROUP_USER(){return this.getToken(FC.RESOURCE_GROUP_USER,0)}ROLE_ADMIN(){return this.getToken(FC.ROLE_ADMIN,0)}SERVICE_CONNECTION_ADMIN(){return this.getToken(FC.SERVICE_CONNECTION_ADMIN,0)}SESSION_VARIABLES_ADMIN(){return this.getToken(FC.SESSION_VARIABLES_ADMIN,0)}SET_USER_ID(){return this.getToken(FC.SET_USER_ID,0)}SKIP_QUERY_REWRITE(){return this.getToken(FC.SKIP_QUERY_REWRITE,0)}SHOW_ROUTINE(){return this.getToken(FC.SHOW_ROUTINE,0)}SYSTEM_USER(){return this.getToken(FC.SYSTEM_USER,0)}SYSTEM_VARIABLES_ADMIN(){return this.getToken(FC.SYSTEM_VARIABLES_ADMIN,0)}TABLE_ENCRYPTION_ADMIN(){return this.getToken(FC.TABLE_ENCRYPTION_ADMIN,0)}TP_CONNECTION_ADMIN(){return this.getToken(FC.TP_CONNECTION_ADMIN,0)}VERSION_TOKEN_ADMIN(){return this.getToken(FC.VERSION_TOKEN_ADMIN,0)}XA_RECOVER_ADMIN(){return this.getToken(FC.XA_RECOVER_ADMIN,0)}LOAD(){return this.getToken(FC.LOAD,0)}FROM(){return this.getToken(FC.FROM,0)}S3(){return this.getToken(FC.S3,0)}INTO(){return this.getToken(FC.INTO,0)}INVOKE(){return this.getToken(FC.INVOKE,0)}LAMBDA(){return this.getToken(FC.LAMBDA,0)}get ruleIndex(){return FC.RULE_privilege}accept(t){return t.visitPrivilege?t.visitPrivilege(this):t.visitChildren(this)}},bp=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_privilegeLevel}copyFrom(t){super.copyFrom(t)}},Wp=class extends bp{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}uid(){return this.getRuleContext(0,Vx)}DOT(){return this.getToken(FC.DOT,0)}STAR(){return this.getToken(FC.STAR,0)}accept(t){return t.visitDefiniteSchemaPrivLevel?t.visitDefiniteSchemaPrivLevel(this):t.visitChildren(this)}},Vp=class extends bp{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}uid(){return this.getRuleContext(0,Vx)}dottedId(){return this.getRuleContext(0,Kx)}accept(t){return t.visitDefiniteFullTablePrivLevel2?t.visitDefiniteFullTablePrivLevel2(this):t.visitChildren(this)}},Xp=class extends bp{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}DOT(){return this.getToken(FC.DOT,0)}accept(t){return t.visitDefiniteFullTablePrivLevel?t.visitDefiniteFullTablePrivLevel(this):t.visitChildren(this)}},Kp=class extends bp{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}STAR(t){return void 0===t?this.getTokens(FC.STAR):this.getToken(FC.STAR,t)}DOT(){return this.getToken(FC.DOT,0)}accept(t){return t.visitGlobalPrivLevel?t.visitGlobalPrivLevel(this):t.visitChildren(this)}},Qp=class extends bp{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}uid(){return this.getRuleContext(0,Vx)}accept(t){return t.visitDefiniteTablePrivLevel?t.visitDefiniteTablePrivLevel(this):t.visitChildren(this)}},Jp=class extends bp{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}STAR(){return this.getToken(FC.STAR,0)}accept(t){return t.visitCurrentSchemaPriviLevel?t.visitCurrentSchemaPriviLevel(this):t.visitChildren(this)}},Zp=class extends ga{constructor(t,e){super(t,e)}userName(){return this.getRuleContext(0,Gx)}TO(){return this.getToken(FC.TO,0)}newUserName(){return this.getRuleContext(0,Hx)}get ruleIndex(){return FC.RULE_renameUserClause}accept(t){return t.visitRenameUserClause?t.visitRenameUserClause(this):t.visitChildren(this)}},qp=class extends ga{constructor(t,e){super(t,e)}ANALYZE(){return this.getToken(FC.ANALYZE,0)}tables(){return this.getRuleContext(0,Ik)}TABLE(){return this.getToken(FC.TABLE,0)}TABLES(){return this.getToken(FC.TABLES,0)}UPDATE(){return this.getToken(FC.UPDATE,0)}HISTOGRAM(t){return void 0===t?this.getTokens(FC.HISTOGRAM):this.getToken(FC.HISTOGRAM,t)}ON(t){return void 0===t?this.getTokens(FC.ON):this.getToken(FC.ON,t)}fullColumnName(t){return void 0===t?this.getRuleContexts(Px):this.getRuleContext(t,Px)}DROP(){return this.getToken(FC.DROP,0)}NO_WRITE_TO_BINLOG(){return this.getToken(FC.NO_WRITE_TO_BINLOG,0)}LOCAL(){return this.getToken(FC.LOCAL,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}WITH(){return this.getToken(FC.WITH,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}BUCKETS(){return this.getToken(FC.BUCKETS,0)}get ruleIndex(){return FC.RULE_analyzeTable}accept(t){return t.visitAnalyzeTable?t.visitAnalyzeTable(this):t.visitChildren(this)}},jp=class extends ga{constructor(t,e){super(t,e)}CHECK(){return this.getToken(FC.CHECK,0)}TABLE(){return this.getToken(FC.TABLE,0)}tables(){return this.getRuleContext(0,Ik)}checkTableOption(t){return void 0===t?this.getRuleContexts(eg):this.getRuleContext(t,eg)}get ruleIndex(){return FC.RULE_checkTable}accept(t){return t.visitCheckTable?t.visitCheckTable(this):t.visitChildren(this)}},zp=class extends ga{constructor(t,e){super(t,e)}CHECKSUM(){return this.getToken(FC.CHECKSUM,0)}TABLE(){return this.getToken(FC.TABLE,0)}tables(){return this.getRuleContext(0,Ik)}QUICK(){return this.getToken(FC.QUICK,0)}EXTENDED(){return this.getToken(FC.EXTENDED,0)}get ruleIndex(){return FC.RULE_checksumTable}accept(t){return t.visitChecksumTable?t.visitChecksumTable(this):t.visitChildren(this)}},$p=class extends ga{constructor(t,e){super(t,e)}OPTIMIZE(){return this.getToken(FC.OPTIMIZE,0)}tables(){return this.getRuleContext(0,Ik)}TABLE(){return this.getToken(FC.TABLE,0)}TABLES(){return this.getToken(FC.TABLES,0)}NO_WRITE_TO_BINLOG(){return this.getToken(FC.NO_WRITE_TO_BINLOG,0)}LOCAL(){return this.getToken(FC.LOCAL,0)}get ruleIndex(){return FC.RULE_optimizeTable}accept(t){return t.visitOptimizeTable?t.visitOptimizeTable(this):t.visitChildren(this)}},tg=class extends ga{constructor(t,e){super(t,e)}REPAIR(){return this.getToken(FC.REPAIR,0)}TABLE(){return this.getToken(FC.TABLE,0)}tables(){return this.getRuleContext(0,Ik)}QUICK(){return this.getToken(FC.QUICK,0)}EXTENDED(){return this.getToken(FC.EXTENDED,0)}USE_FRM(){return this.getToken(FC.USE_FRM,0)}NO_WRITE_TO_BINLOG(){return this.getToken(FC.NO_WRITE_TO_BINLOG,0)}LOCAL(){return this.getToken(FC.LOCAL,0)}get ruleIndex(){return FC.RULE_repairTable}accept(t){return t.visitRepairTable?t.visitRepairTable(this):t.visitChildren(this)}},eg=class extends ga{constructor(t,e){super(t,e)}FOR(){return this.getToken(FC.FOR,0)}UPGRADE(){return this.getToken(FC.UPGRADE,0)}QUICK(){return this.getToken(FC.QUICK,0)}FAST(){return this.getToken(FC.FAST,0)}MEDIUM(){return this.getToken(FC.MEDIUM,0)}EXTENDED(){return this.getToken(FC.EXTENDED,0)}CHANGED(){return this.getToken(FC.CHANGED,0)}get ruleIndex(){return FC.RULE_checkTableOption}accept(t){return t.visitCheckTableOption?t.visitCheckTableOption(this):t.visitChildren(this)}},sg=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(FC.CREATE,0)}FUNCTION(){return this.getToken(FC.FUNCTION,0)}uid(){return this.getRuleContext(0,Vx)}RETURNS(){return this.getToken(FC.RETURNS,0)}SONAME(){return this.getToken(FC.SONAME,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}STRING(){return this.getToken(FC.STRING,0)}INTEGER(){return this.getToken(FC.INTEGER,0)}REAL(){return this.getToken(FC.REAL,0)}DECIMAL(){return this.getToken(FC.DECIMAL,0)}AGGREGATE(){return this.getToken(FC.AGGREGATE,0)}ifNotExists(){return this.getRuleContext(0,Dk)}get ruleIndex(){return FC.RULE_createUdfunction}accept(t){return t.visitCreateUdfunction?t.visitCreateUdfunction(this):t.visitChildren(this)}},ag=class extends ga{constructor(t,e){super(t,e)}INSTALL(){return this.getToken(FC.INSTALL,0)}PLUGIN(){return this.getToken(FC.PLUGIN,0)}uid(){return this.getRuleContext(0,Vx)}SONAME(){return this.getToken(FC.SONAME,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}get ruleIndex(){return FC.RULE_installPlugin}accept(t){return t.visitInstallPlugin?t.visitInstallPlugin(this):t.visitChildren(this)}},rg=class extends ga{constructor(t,e){super(t,e)}UNINSTALL(){return this.getToken(FC.UNINSTALL,0)}PLUGIN(){return this.getToken(FC.PLUGIN,0)}uid(){return this.getRuleContext(0,Vx)}get ruleIndex(){return FC.RULE_uninstallPlugin}accept(t){return t.visitUninstallPlugin?t.visitUninstallPlugin(this):t.visitChildren(this)}},ig=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_setStatement}copyFrom(t){super.copyFrom(t)}},cg=class extends ig{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}setTransactionStatement(){return this.getRuleContext(0,km)}accept(t){return t.visitSetTransaction?t.visitSetTransaction(this):t.visitChildren(this)}},ng=class extends ig{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SET(){return this.getToken(FC.SET,0)}charSet(){return this.getRuleContext(0,S_)}charsetName(){return this.getRuleContext(0,vx)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}accept(t){return t.visitSetCharset?t.visitSetCharset(this):t.visitChildren(this)}},hg=class extends ig{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SET(){return this.getToken(FC.SET,0)}NAMES(){return this.getToken(FC.NAMES,0)}charsetName(){return this.getRuleContext(0,vx)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}COLLATE(){return this.getToken(FC.COLLATE,0)}collationName(){return this.getRuleContext(0,Bx)}accept(t){return t.visitSetNames?t.visitSetNames(this):t.visitChildren(this)}},Eg=class extends ig{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}setPasswordStatement(){return this.getRuleContext(0,Pp)}accept(t){return t.visitSetPassword?t.visitSetPassword(this):t.visitChildren(this)}},Tg=class extends ig{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}setAutocommitStatement(){return this.getRuleContext(0,xm)}accept(t){return t.visitSetAutocommit?t.visitSetAutocommit(this):t.visitChildren(this)}},og=class extends ig{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SET(){return this.getToken(FC.SET,0)}fullId(t){return void 0===t?this.getRuleContexts(Sx):this.getRuleContext(t,Sx)}expression(t){return void 0===t?this.getRuleContexts(NH):this.getRuleContext(t,NH)}EQUAL_SYMBOL(t){return void 0===t?this.getTokens(FC.EQUAL_SYMBOL):this.getToken(FC.EQUAL_SYMBOL,t)}VAR_ASSIGN(t){return void 0===t?this.getTokens(FC.VAR_ASSIGN):this.getToken(FC.VAR_ASSIGN,t)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitSetNewValueInsideTrigger?t.visitSetNewValueInsideTrigger(this):t.visitChildren(this)}},Rg=class extends ig{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SET(){return this.getToken(FC.SET,0)}variableClause(t){return void 0===t?this.getRuleContexts(Gg):this.getRuleContext(t,Gg)}EQUAL_SYMBOL(t){return void 0===t?this.getTokens(FC.EQUAL_SYMBOL):this.getToken(FC.EQUAL_SYMBOL,t)}VAR_ASSIGN(t){return void 0===t?this.getTokens(FC.VAR_ASSIGN):this.getToken(FC.VAR_ASSIGN,t)}expression(t){return void 0===t?this.getRuleContexts(NH):this.getRuleContext(t,NH)}ON(t){return void 0===t?this.getTokens(FC.ON):this.getToken(FC.ON,t)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitSetVariable?t.visitSetVariable(this):t.visitChildren(this)}},Ag=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_showStatement}copyFrom(t){super.copyFrom(t)}},Sg=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}OPEN(){return this.getToken(FC.OPEN,0)}TABLES(){return this.getToken(FC.TABLES,0)}uid(){return this.getRuleContext(0,Vx)}showFilter(){return this.getRuleContext(0,vg)}FROM(){return this.getToken(FC.FROM,0)}IN(){return this.getToken(FC.IN,0)}accept(t){return t.visitShowOpenTables?t.visitShowOpenTables(this):t.visitChildren(this)}},lg=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}showGlobalInfoClause(){return this.getRuleContext(0,Bg)}accept(t){return t.visitShowGlobalInfo?t.visitShowGlobalInfo(this):t.visitChildren(this)}},Og=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}CREATE(){return this.getToken(FC.CREATE,0)}fullId(){return this.getRuleContext(0,Sx)}EVENT(){return this.getToken(FC.EVENT,0)}FUNCTION(){return this.getToken(FC.FUNCTION,0)}PROCEDURE(){return this.getToken(FC.PROCEDURE,0)}accept(t){return t.visitShowCreateFullIdObject?t.visitShowCreateFullIdObject(this):t.visitChildren(this)}},Ig=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}CREATE(){return this.getToken(FC.CREATE,0)}USER(){return this.getToken(FC.USER,0)}userName(){return this.getRuleContext(0,Gx)}accept(t){return t.visitShowCreateUser?t.visitShowCreateUser(this):t.visitChildren(this)}},ug=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}ERRORS(){return this.getToken(FC.ERRORS,0)}WARNINGS(){return this.getToken(FC.WARNINGS,0)}LIMIT(){return this.getToken(FC.LIMIT,0)}decimalLiteral(t){return void 0===t?this.getRuleContexts(Qx):this.getRuleContext(t,Qx)}COMMA(){return this.getToken(FC.COMMA,0)}accept(t){return t.visitShowErrors?t.visitShowErrors(this):t.visitChildren(this)}},Ng=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}COUNT(){return this.getToken(FC.COUNT,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}STAR(){return this.getToken(FC.STAR,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}ERRORS(){return this.getToken(FC.ERRORS,0)}WARNINGS(){return this.getToken(FC.WARNINGS,0)}accept(t){return t.visitShowCountErrors?t.visitShowCountErrors(this):t.visitChildren(this)}},Lg=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}showCommonEntity(){return this.getRuleContext(0,Fg)}showFilter(){return this.getRuleContext(0,vg)}accept(t){return t.visitShowObjectFilter?t.visitShowObjectFilter(this):t.visitChildren(this)}},Cg=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}CREATE(){return this.getToken(FC.CREATE,0)}databaseName(){return this.getRuleContext(0,Mx)}DATABASE(){return this.getToken(FC.DATABASE,0)}SCHEMA(){return this.getToken(FC.SCHEMA,0)}ifNotExists(){return this.getRuleContext(0,Dk)}accept(t){return t.visitShowCreateDb?t.visitShowCreateDb(this):t.visitChildren(this)}},_g=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}ENGINE(){return this.getToken(FC.ENGINE,0)}engineName(){return this.getRuleContext(0,yx)}STATUS(){return this.getToken(FC.STATUS,0)}MUTEX(){return this.getToken(FC.MUTEX,0)}accept(t){return t.visitShowEngine?t.visitShowEngine(this):t.visitChildren(this)}},Pg=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}showSchemaEntity(){return this.getRuleContext(0,yg)}uid(){return this.getRuleContext(0,Vx)}showFilter(){return this.getRuleContext(0,vg)}FROM(){return this.getToken(FC.FROM,0)}IN(){return this.getToken(FC.IN,0)}accept(t){return t.visitShowSchemaFilter?t.visitShowSchemaFilter(this):t.visitChildren(this)}},Mg=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}tableName(){return this.getRuleContext(0,lx)}INDEX(){return this.getToken(FC.INDEX,0)}INDEXES(){return this.getToken(FC.INDEXES,0)}KEYS(){return this.getToken(FC.KEYS,0)}FROM(t){return void 0===t?this.getTokens(FC.FROM):this.getToken(FC.FROM,t)}IN(t){return void 0===t?this.getTokens(FC.IN):this.getToken(FC.IN,t)}uid(){return this.getRuleContext(0,Vx)}WHERE(){return this.getToken(FC.WHERE,0)}expression(){return this.getRuleContext(0,NH)}accept(t){return t.visitShowIndexes?t.visitShowIndexes(this):t.visitChildren(this)}},dg=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}EVENTS(){return this.getToken(FC.EVENTS,0)}BINLOG(){return this.getToken(FC.BINLOG,0)}RELAYLOG(){return this.getToken(FC.RELAYLOG,0)}IN(){return this.getToken(FC.IN,0)}FROM(){return this.getToken(FC.FROM,0)}LIMIT(){return this.getToken(FC.LIMIT,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}decimalLiteral(t){return void 0===t?this.getRuleContexts(Qx):this.getRuleContext(t,Qx)}COMMA(){return this.getToken(FC.COMMA,0)}accept(t){return t.visitShowLogEvents?t.visitShowLogEvents(this):t.visitChildren(this)}},Ug=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}CREATE(){return this.getToken(FC.CREATE,0)}TRIGGER(){return this.getToken(FC.TRIGGER,0)}triggerName(){return this.getRuleContext(0,mx)}accept(t){return t.visitShowCreateTrigger?t.visitShowCreateTrigger(this):t.visitChildren(this)}},mg=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}LOGS(){return this.getToken(FC.LOGS,0)}BINARY(){return this.getToken(FC.BINARY,0)}MASTER(){return this.getToken(FC.MASTER,0)}accept(t){return t.visitShowMasterLogs?t.visitShowMasterLogs(this):t.visitChildren(this)}},Dg=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}GRANTS(){return this.getToken(FC.GRANTS,0)}FOR(){return this.getToken(FC.FOR,0)}userName(){return this.getRuleContext(0,Gx)}accept(t){return t.visitShowGrants?t.visitShowGrants(this):t.visitChildren(this)}},pg=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}SLAVE(){return this.getToken(FC.SLAVE,0)}STATUS(){return this.getToken(FC.STATUS,0)}FOR(){return this.getToken(FC.FOR,0)}CHANNEL(){return this.getToken(FC.CHANNEL,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}accept(t){return t.visitShowSlaveStatus?t.visitShowSlaveStatus(this):t.visitChildren(this)}},gg=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}CODE(){return this.getToken(FC.CODE,0)}fullId(){return this.getRuleContext(0,Sx)}FUNCTION(){return this.getToken(FC.FUNCTION,0)}PROCEDURE(){return this.getToken(FC.PROCEDURE,0)}accept(t){return t.visitShowRoutine?t.visitShowRoutine(this):t.visitChildren(this)}},xg=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}PROFILE(){return this.getToken(FC.PROFILE,0)}showProfileType(t){return void 0===t?this.getRuleContexts(fg):this.getRuleContext(t,fg)}LIMIT(){return this.getToken(FC.LIMIT,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}FOR(){return this.getToken(FC.FOR,0)}QUERY(){return this.getToken(FC.QUERY,0)}decimalLiteral(t){return void 0===t?this.getRuleContexts(Qx):this.getRuleContext(t,Qx)}accept(t){return t.visitShowProfile?t.visitShowProfile(this):t.visitChildren(this)}},kg=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}tableName(){return this.getRuleContext(0,lx)}COLUMNS(){return this.getToken(FC.COLUMNS,0)}FIELDS(){return this.getToken(FC.FIELDS,0)}FROM(t){return void 0===t?this.getTokens(FC.FROM):this.getToken(FC.FROM,t)}IN(t){return void 0===t?this.getTokens(FC.IN):this.getToken(FC.IN,t)}FULL(){return this.getToken(FC.FULL,0)}uid(){return this.getRuleContext(0,Vx)}showFilter(){return this.getRuleContext(0,vg)}accept(t){return t.visitShowColumns?t.visitShowColumns(this):t.visitChildren(this)}},Hg=class extends Ag{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(FC.SHOW,0)}CREATE(){return this.getToken(FC.CREATE,0)}tableName(){return this.getRuleContext(0,lx)}TABLE(){return this.getToken(FC.TABLE,0)}VIEW(){return this.getToken(FC.VIEW,0)}accept(t){return t.visitShowCreateTableOrView?t.visitShowCreateTableOrView(this):t.visitChildren(this)}},Gg=class extends ga{constructor(t,e){super(t,e)}LOCAL_ID(){return this.getToken(FC.LOCAL_ID,0)}GLOBAL_ID(){return this.getToken(FC.GLOBAL_ID,0)}uid(){return this.getRuleContext(0,Vx)}GLOBAL(){return this.getToken(FC.GLOBAL,0)}SESSION(){return this.getToken(FC.SESSION,0)}LOCAL(){return this.getToken(FC.LOCAL,0)}AT_SIGN(t){return void 0===t?this.getTokens(FC.AT_SIGN):this.getToken(FC.AT_SIGN,t)}get ruleIndex(){return FC.RULE_variableClause}accept(t){return t.visitVariableClause?t.visitVariableClause(this):t.visitChildren(this)}},Fg=class extends ga{constructor(t,e){super(t,e)}CHARACTER(){return this.getToken(FC.CHARACTER,0)}SET(){return this.getToken(FC.SET,0)}COLLATION(){return this.getToken(FC.COLLATION,0)}DATABASES(){return this.getToken(FC.DATABASES,0)}SCHEMAS(){return this.getToken(FC.SCHEMAS,0)}FUNCTION(){return this.getToken(FC.FUNCTION,0)}STATUS(){return this.getToken(FC.STATUS,0)}PROCEDURE(){return this.getToken(FC.PROCEDURE,0)}VARIABLES(){return this.getToken(FC.VARIABLES,0)}GLOBAL(){return this.getToken(FC.GLOBAL,0)}SESSION(){return this.getToken(FC.SESSION,0)}get ruleIndex(){return FC.RULE_showCommonEntity}accept(t){return t.visitShowCommonEntity?t.visitShowCommonEntity(this):t.visitChildren(this)}},vg=class extends ga{constructor(t,e){super(t,e)}LIKE(){return this.getToken(FC.LIKE,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}WHERE(){return this.getToken(FC.WHERE,0)}expression(){return this.getRuleContext(0,NH)}get ruleIndex(){return FC.RULE_showFilter}accept(t){return t.visitShowFilter?t.visitShowFilter(this):t.visitChildren(this)}},Bg=class extends ga{constructor(t,e){super(t,e)}ENGINES(){return this.getToken(FC.ENGINES,0)}STORAGE(){return this.getToken(FC.STORAGE,0)}MASTER(){return this.getToken(FC.MASTER,0)}STATUS(){return this.getToken(FC.STATUS,0)}PLUGINS(){return this.getToken(FC.PLUGINS,0)}PRIVILEGES(){return this.getToken(FC.PRIVILEGES,0)}PROCESSLIST(){return this.getToken(FC.PROCESSLIST,0)}FULL(){return this.getToken(FC.FULL,0)}PROFILES(){return this.getToken(FC.PROFILES,0)}SLAVE(){return this.getToken(FC.SLAVE,0)}HOSTS(){return this.getToken(FC.HOSTS,0)}AUTHORS(){return this.getToken(FC.AUTHORS,0)}CONTRIBUTORS(){return this.getToken(FC.CONTRIBUTORS,0)}get ruleIndex(){return FC.RULE_showGlobalInfoClause}accept(t){return t.visitShowGlobalInfoClause?t.visitShowGlobalInfoClause(this):t.visitChildren(this)}},yg=class extends ga{constructor(t,e){super(t,e)}EVENTS(){return this.getToken(FC.EVENTS,0)}TABLE(){return this.getToken(FC.TABLE,0)}STATUS(){return this.getToken(FC.STATUS,0)}TABLES(){return this.getToken(FC.TABLES,0)}FULL(){return this.getToken(FC.FULL,0)}TRIGGERS(){return this.getToken(FC.TRIGGERS,0)}get ruleIndex(){return FC.RULE_showSchemaEntity}accept(t){return t.visitShowSchemaEntity?t.visitShowSchemaEntity(this):t.visitChildren(this)}},fg=class extends ga{constructor(t,e){super(t,e)}ALL(){return this.getToken(FC.ALL,0)}BLOCK(){return this.getToken(FC.BLOCK,0)}IO(){return this.getToken(FC.IO,0)}CONTEXT(){return this.getToken(FC.CONTEXT,0)}SWITCHES(){return this.getToken(FC.SWITCHES,0)}CPU(){return this.getToken(FC.CPU,0)}IPC(){return this.getToken(FC.IPC,0)}MEMORY(){return this.getToken(FC.MEMORY,0)}PAGE(){return this.getToken(FC.PAGE,0)}FAULTS(){return this.getToken(FC.FAULTS,0)}SOURCE(){return this.getToken(FC.SOURCE,0)}SWAPS(){return this.getToken(FC.SWAPS,0)}get ruleIndex(){return FC.RULE_showProfileType}accept(t){return t.visitShowProfileType?t.visitShowProfileType(this):t.visitChildren(this)}},Yg=class extends ga{constructor(t,e){super(t,e)}BINLOG(){return this.getToken(FC.BINLOG,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}get ruleIndex(){return FC.RULE_binlogStatement}accept(t){return t.visitBinlogStatement?t.visitBinlogStatement(this):t.visitChildren(this)}},wg=class extends ga{constructor(t,e){super(t,e)}CACHE(){return this.getToken(FC.CACHE,0)}INDEX(){return this.getToken(FC.INDEX,0)}tableIndexes(t){return void 0===t?this.getRuleContexts(Qg):this.getRuleContext(t,Qg)}IN(){return this.getToken(FC.IN,0)}uid(){return this.getRuleContext(0,Vx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}PARTITION(){return this.getToken(FC.PARTITION,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}uidList(){return this.getRuleContext(0,lk)}ALL(){return this.getToken(FC.ALL,0)}get ruleIndex(){return FC.RULE_cacheIndexStatement}accept(t){return t.visitCacheIndexStatement?t.visitCacheIndexStatement(this):t.visitChildren(this)}},bg=class extends ga{constructor(t,e){super(t,e)}FLUSH(){return this.getToken(FC.FLUSH,0)}flushOption(t){return void 0===t?this.getRuleContexts(Jg):this.getRuleContext(t,Jg)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}NO_WRITE_TO_BINLOG(){return this.getToken(FC.NO_WRITE_TO_BINLOG,0)}LOCAL(){return this.getToken(FC.LOCAL,0)}get ruleIndex(){return FC.RULE_flushStatement}accept(t){return t.visitFlushStatement?t.visitFlushStatement(this):t.visitChildren(this)}},Wg=class extends ga{constructor(t,e){super(t,e)}KILL(){return this.getToken(FC.KILL,0)}expression(){return this.getRuleContext(0,NH)}CONNECTION(){return this.getToken(FC.CONNECTION,0)}QUERY(){return this.getToken(FC.QUERY,0)}get ruleIndex(){return FC.RULE_killStatement}accept(t){return t.visitKillStatement?t.visitKillStatement(this):t.visitChildren(this)}},Vg=class extends ga{constructor(t,e){super(t,e)}LOAD(){return this.getToken(FC.LOAD,0)}INDEX(){return this.getToken(FC.INDEX,0)}INTO(){return this.getToken(FC.INTO,0)}CACHE(){return this.getToken(FC.CACHE,0)}loadedTableIndexes(t){return void 0===t?this.getRuleContexts($g):this.getRuleContext(t,$g)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_loadIndexIntoCache}accept(t){return t.visitLoadIndexIntoCache?t.visitLoadIndexIntoCache(this):t.visitChildren(this)}},Xg=class extends ga{constructor(t,e){super(t,e)}RESET(){return this.getToken(FC.RESET,0)}QUERY(){return this.getToken(FC.QUERY,0)}CACHE(){return this.getToken(FC.CACHE,0)}get ruleIndex(){return FC.RULE_resetStatement}accept(t){return t.visitResetStatement?t.visitResetStatement(this):t.visitChildren(this)}},Kg=class extends ga{constructor(t,e){super(t,e)}SHUTDOWN(){return this.getToken(FC.SHUTDOWN,0)}get ruleIndex(){return FC.RULE_shutdownStatement}accept(t){return t.visitShutdownStatement?t.visitShutdownStatement(this):t.visitChildren(this)}},Qg=class extends ga{constructor(t,e){super(t,e)}tableName(){return this.getRuleContext(0,lx)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}indexNameList(){return this.getRuleContext(0,Dx)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}INDEX(){return this.getToken(FC.INDEX,0)}KEY(){return this.getToken(FC.KEY,0)}get ruleIndex(){return FC.RULE_tableIndexes}accept(t){return t.visitTableIndexes?t.visitTableIndexes(this):t.visitChildren(this)}},Jg=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_flushOption}copyFrom(t){super.copyFrom(t)}},Zg=class extends Jg{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}TABLE(){return this.getToken(FC.TABLE,0)}TABLES(){return this.getToken(FC.TABLES,0)}tables(){return this.getRuleContext(0,Ik)}flushTableOption(){return this.getRuleContext(0,zg)}accept(t){return t.visitTableFlushOption?t.visitTableFlushOption(this):t.visitChildren(this)}},qg=class extends Jg{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}RELAY(){return this.getToken(FC.RELAY,0)}LOGS(){return this.getToken(FC.LOGS,0)}channelOption(){return this.getRuleContext(0,sD)}accept(t){return t.visitChannelFlushOption?t.visitChannelFlushOption(this):t.visitChildren(this)}},jg=class extends Jg{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DES_KEY_FILE(){return this.getToken(FC.DES_KEY_FILE,0)}HOSTS(){return this.getToken(FC.HOSTS,0)}LOGS(){return this.getToken(FC.LOGS,0)}OPTIMIZER_COSTS(){return this.getToken(FC.OPTIMIZER_COSTS,0)}PRIVILEGES(){return this.getToken(FC.PRIVILEGES,0)}QUERY(){return this.getToken(FC.QUERY,0)}CACHE(){return this.getToken(FC.CACHE,0)}STATUS(){return this.getToken(FC.STATUS,0)}USER_RESOURCES(){return this.getToken(FC.USER_RESOURCES,0)}TABLES(){return this.getToken(FC.TABLES,0)}WITH(){return this.getToken(FC.WITH,0)}READ(){return this.getToken(FC.READ,0)}LOCK(){return this.getToken(FC.LOCK,0)}BINARY(){return this.getToken(FC.BINARY,0)}ENGINE(){return this.getToken(FC.ENGINE,0)}ERROR(){return this.getToken(FC.ERROR,0)}GENERAL(){return this.getToken(FC.GENERAL,0)}RELAY(){return this.getToken(FC.RELAY,0)}SLOW(){return this.getToken(FC.SLOW,0)}accept(t){return t.visitSimpleFlushOption?t.visitSimpleFlushOption(this):t.visitChildren(this)}},zg=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(FC.WITH,0)}READ(){return this.getToken(FC.READ,0)}LOCK(){return this.getToken(FC.LOCK,0)}FOR(){return this.getToken(FC.FOR,0)}EXPORT(){return this.getToken(FC.EXPORT,0)}get ruleIndex(){return FC.RULE_flushTableOption}accept(t){return t.visitFlushTableOption?t.visitFlushTableOption(this):t.visitChildren(this)}},$g=class extends ga{constructor(t,e){super(t,e)}tableName(){return this.getRuleContext(0,lx)}PARTITION(){return this.getToken(FC.PARTITION,0)}LR_BRACKET(t){return void 0===t?this.getTokens(FC.LR_BRACKET):this.getToken(FC.LR_BRACKET,t)}RR_BRACKET(t){return void 0===t?this.getTokens(FC.RR_BRACKET):this.getToken(FC.RR_BRACKET,t)}indexNameList(){return this.getRuleContext(0,Dx)}IGNORE(){return this.getToken(FC.IGNORE,0)}LEAVES(){return this.getToken(FC.LEAVES,0)}ALL(){return this.getToken(FC.ALL,0)}uidList(){return this.getRuleContext(0,lk)}INDEX(){return this.getToken(FC.INDEX,0)}KEY(){return this.getToken(FC.KEY,0)}get ruleIndex(){return FC.RULE_loadedTableIndexes}accept(t){return t.visitLoadedTableIndexes?t.visitLoadedTableIndexes(this):t.visitChildren(this)}},tx=class extends ga{constructor(t,e){super(t,e)}tableName(){return this.getRuleContext(0,lx)}EXPLAIN(){return this.getToken(FC.EXPLAIN,0)}DESCRIBE(){return this.getToken(FC.DESCRIBE,0)}DESC(){return this.getToken(FC.DESC,0)}uid(){return this.getRuleContext(0,Vx)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}get ruleIndex(){return FC.RULE_simpleDescribeStatement}accept(t){return t.visitSimpleDescribeStatement?t.visitSimpleDescribeStatement(this):t.visitChildren(this)}},ex=class extends ga{constructor(t,e){super(t,e)}describeObjectClause(){return this.getRuleContext(0,ox)}EXPLAIN(){return this.getToken(FC.EXPLAIN,0)}DESCRIBE(){return this.getToken(FC.DESCRIBE,0)}DESC(){return this.getToken(FC.DESC,0)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}EXTENDED(){return this.getToken(FC.EXTENDED,0)}PARTITIONS(){return this.getToken(FC.PARTITIONS,0)}FORMAT(){return this.getToken(FC.FORMAT,0)}TRADITIONAL(){return this.getToken(FC.TRADITIONAL,0)}JSON(){return this.getToken(FC.JSON,0)}get ruleIndex(){return FC.RULE_fullDescribeStatement}accept(t){return t.visitFullDescribeStatement?t.visitFullDescribeStatement(this):t.visitChildren(this)}},sx=class extends ga{constructor(t,e){super(t,e)}HELP(){return this.getToken(FC.HELP,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}get ruleIndex(){return FC.RULE_helpStatement}accept(t){return t.visitHelpStatement?t.visitHelpStatement(this):t.visitChildren(this)}},ax=class extends ga{constructor(t,e){super(t,e)}USE(){return this.getToken(FC.USE,0)}uid(){return this.getRuleContext(0,Vx)}get ruleIndex(){return FC.RULE_useStatement}accept(t){return t.visitUseStatement?t.visitUseStatement(this):t.visitChildren(this)}},rx=class extends ga{constructor(t,e){super(t,e)}SIGNAL(){return this.getToken(FC.SIGNAL,0)}ID(){return this.getToken(FC.ID,0)}REVERSE_QUOTE_ID(){return this.getToken(FC.REVERSE_QUOTE_ID,0)}SET(){return this.getToken(FC.SET,0)}signalConditionInformation(t){return void 0===t?this.getRuleContexts(cx):this.getRuleContext(t,cx)}SQLSTATE(){return this.getToken(FC.SQLSTATE,0)}stringLiteral(){return this.getRuleContext(0,Zx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}VALUE(){return this.getToken(FC.VALUE,0)}get ruleIndex(){return FC.RULE_signalStatement}accept(t){return t.visitSignalStatement?t.visitSignalStatement(this):t.visitChildren(this)}},ix=class extends ga{constructor(t,e){super(t,e)}RESIGNAL(){return this.getToken(FC.RESIGNAL,0)}ID(){return this.getToken(FC.ID,0)}REVERSE_QUOTE_ID(){return this.getToken(FC.REVERSE_QUOTE_ID,0)}SET(){return this.getToken(FC.SET,0)}signalConditionInformation(t){return void 0===t?this.getRuleContexts(cx):this.getRuleContext(t,cx)}SQLSTATE(){return this.getToken(FC.SQLSTATE,0)}stringLiteral(){return this.getRuleContext(0,Zx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}VALUE(){return this.getToken(FC.VALUE,0)}get ruleIndex(){return FC.RULE_resignalStatement}accept(t){return t.visitResignalStatement?t.visitResignalStatement(this):t.visitChildren(this)}},cx=class extends ga{constructor(t,e){super(t,e)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}CLASS_ORIGIN(){return this.getToken(FC.CLASS_ORIGIN,0)}SUBCLASS_ORIGIN(){return this.getToken(FC.SUBCLASS_ORIGIN,0)}MESSAGE_TEXT(){return this.getToken(FC.MESSAGE_TEXT,0)}MYSQL_ERRNO(){return this.getToken(FC.MYSQL_ERRNO,0)}CONSTRAINT_CATALOG(){return this.getToken(FC.CONSTRAINT_CATALOG,0)}CONSTRAINT_SCHEMA(){return this.getToken(FC.CONSTRAINT_SCHEMA,0)}CONSTRAINT_NAME(){return this.getToken(FC.CONSTRAINT_NAME,0)}CATALOG_NAME(){return this.getToken(FC.CATALOG_NAME,0)}SCHEMA_NAME(){return this.getToken(FC.SCHEMA_NAME,0)}TABLE_NAME(){return this.getToken(FC.TABLE_NAME,0)}COLUMN_NAME(){return this.getToken(FC.COLUMN_NAME,0)}CURSOR_NAME(){return this.getToken(FC.CURSOR_NAME,0)}stringLiteral(){return this.getRuleContext(0,Zx)}DECIMAL_LITERAL(){return this.getToken(FC.DECIMAL_LITERAL,0)}mysqlVariable(){return this.getRuleContext(0,Fx)}simpleId(){return this.getRuleContext(0,Xx)}get ruleIndex(){return FC.RULE_signalConditionInformation}accept(t){return t.visitSignalConditionInformation?t.visitSignalConditionInformation(this):t.visitChildren(this)}},nx=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(FC.WITH,0)}commonTableExpressions(t){return void 0===t?this.getRuleContexts(E_):this.getRuleContext(t,E_)}RECURSIVE(){return this.getToken(FC.RECURSIVE,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_withStatement}accept(t){return t.visitWithStatement?t.visitWithStatement(this):t.visitChildren(this)}},hx=class extends ga{constructor(t,e){super(t,e)}TABLE(){return this.getToken(FC.TABLE,0)}tableName(){return this.getRuleContext(0,lx)}orderByClause(){return this.getRuleContext(0,MU)}limitClause(){return this.getRuleContext(0,Lm)}get ruleIndex(){return FC.RULE_tableStatement}accept(t){return t.visitTableStatement?t.visitTableStatement(this):t.visitChildren(this)}},Ex=class extends ga{constructor(t,e){super(t,e)}GET(){return this.getToken(FC.GET,0)}DIAGNOSTICS(){return this.getToken(FC.DIAGNOSTICS,0)}CURRENT(){return this.getToken(FC.CURRENT,0)}STACKED(){return this.getToken(FC.STACKED,0)}variableClause(t){return void 0===t?this.getRuleContexts(Gg):this.getRuleContext(t,Gg)}EQUAL_SYMBOL(t){return void 0===t?this.getTokens(FC.EQUAL_SYMBOL):this.getToken(FC.EQUAL_SYMBOL,t)}CONDITION(){return this.getToken(FC.CONDITION,0)}diagnosticsConditionInformationName(t){return void 0===t?this.getRuleContexts(Tx):this.getRuleContext(t,Tx)}NUMBER(t){return void 0===t?this.getTokens(FC.NUMBER):this.getToken(FC.NUMBER,t)}ROW_COUNT(t){return void 0===t?this.getTokens(FC.ROW_COUNT):this.getToken(FC.ROW_COUNT,t)}decimalLiteral(){return this.getRuleContext(0,Qx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_diagnosticsStatement}accept(t){return t.visitDiagnosticsStatement?t.visitDiagnosticsStatement(this):t.visitChildren(this)}},Tx=class extends ga{constructor(t,e){super(t,e)}CLASS_ORIGIN(){return this.getToken(FC.CLASS_ORIGIN,0)}SUBCLASS_ORIGIN(){return this.getToken(FC.SUBCLASS_ORIGIN,0)}RETURNED_SQLSTATE(){return this.getToken(FC.RETURNED_SQLSTATE,0)}MESSAGE_TEXT(){return this.getToken(FC.MESSAGE_TEXT,0)}MYSQL_ERRNO(){return this.getToken(FC.MYSQL_ERRNO,0)}CONSTRAINT_CATALOG(){return this.getToken(FC.CONSTRAINT_CATALOG,0)}CONSTRAINT_SCHEMA(){return this.getToken(FC.CONSTRAINT_SCHEMA,0)}CONSTRAINT_NAME(){return this.getToken(FC.CONSTRAINT_NAME,0)}CATALOG_NAME(){return this.getToken(FC.CATALOG_NAME,0)}SCHEMA_NAME(){return this.getToken(FC.SCHEMA_NAME,0)}TABLE_NAME(){return this.getToken(FC.TABLE_NAME,0)}COLUMN_NAME(){return this.getToken(FC.COLUMN_NAME,0)}CURSOR_NAME(){return this.getToken(FC.CURSOR_NAME,0)}get ruleIndex(){return FC.RULE_diagnosticsConditionInformationName}accept(t){return t.visitDiagnosticsConditionInformationName?t.visitDiagnosticsConditionInformationName(this):t.visitChildren(this)}},ox=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_describeObjectClause}copyFrom(t){super.copyFrom(t)}},Rx=class extends ox{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}selectStatement(){return this.getRuleContext(0,rU)}deleteStatement(){return this.getRuleContext(0,jd)}insertStatement(){return this.getRuleContext(0,tU)}replaceStatement(){return this.getRuleContext(0,aU)}updateStatement(){return this.getRuleContext(0,TU)}accept(t){return t.visitDescribeStatements?t.visitDescribeStatements(this):t.visitChildren(this)}},Ax=class extends ox{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}FOR(){return this.getToken(FC.FOR,0)}CONNECTION(){return this.getToken(FC.CONNECTION,0)}uid(){return this.getRuleContext(0,Vx)}accept(t){return t.visitDescribeConnection?t.visitDescribeConnection(this):t.visitChildren(this)}},Sx=class extends ga{constructor(t,e){super(t,e)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}DOT_ID(){return this.getToken(FC.DOT_ID,0)}DOT(){return this.getToken(FC.DOT,0)}get ruleIndex(){return FC.RULE_fullId}accept(t){return t.visitFullId?t.visitFullId(this):t.visitChildren(this)}},lx=class extends ga{constructor(t,e){super(t,e)}fullId(){return this.getRuleContext(0,Sx)}get ruleIndex(){return FC.RULE_tableName}accept(t){return t.visitTableName?t.visitTableName(this):t.visitChildren(this)}},Ox=class extends ga{constructor(t,e){super(t,e)}tableName(t){return void 0===t?this.getRuleContexts(lx):this.getRuleContext(t,lx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_tableNames}accept(t){return t.visitTableNames?t.visitTableNames(this):t.visitChildren(this)}},Ix=class extends ga{constructor(t,e){super(t,e)}userName(){return this.getRuleContext(0,Gx)}roleName(){return this.getRuleContext(0,_x)}get ruleIndex(){return FC.RULE_userOrRoleName}accept(t){return t.visitUserOrRoleName?t.visitUserOrRoleName(this):t.visitChildren(this)}},ux=class extends ga{constructor(t,e){super(t,e)}userOrRoleName(t){return void 0===t?this.getRuleContexts(Ix):this.getRuleContext(t,Ix)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_userOrRoleNameList}accept(t){return t.visitUserOrRoleNameList?t.visitUserOrRoleNameList(this):t.visitChildren(this)}},Nx=class extends ga{constructor(t,e){super(t,e)}newRoleName(t){return void 0===t?this.getRuleContexts(Lx):this.getRuleContext(t,Lx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_newRoleNameList}accept(t){return t.visitNewRoleNameList?t.visitNewRoleNameList(this):t.visitChildren(this)}},Lx=class extends ga{constructor(t,e){super(t,e)}uid(){return this.getRuleContext(0,Vx)}get ruleIndex(){return FC.RULE_newRoleName}accept(t){return t.visitNewRoleName?t.visitNewRoleName(this):t.visitChildren(this)}},Cx=class extends ga{constructor(t,e){super(t,e)}roleName(t){return void 0===t?this.getRuleContexts(_x):this.getRuleContext(t,_x)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_roleNameList}accept(t){return t.visitRoleNameList?t.visitRoleNameList(this):t.visitChildren(this)}},_x=class extends ga{constructor(t,e){super(t,e)}newRoleName(){return this.getRuleContext(0,Lx)}get ruleIndex(){return FC.RULE_roleName}accept(t){return t.visitRoleName?t.visitRoleName(this):t.visitChildren(this)}},Px=class extends ga{constructor(t,e){super(t,e)}uid(){return this.getRuleContext(0,Vx)}dottedId(t){return void 0===t?this.getRuleContexts(Kx):this.getRuleContext(t,Kx)}get ruleIndex(){return FC.RULE_fullColumnName}accept(t){return t.visitFullColumnName?t.visitFullColumnName(this):t.visitChildren(this)}},Mx=class extends ga{constructor(t,e){super(t,e)}uid(){return this.getRuleContext(0,Vx)}get ruleIndex(){return FC.RULE_databaseName}accept(t){return t.visitDatabaseName?t.visitDatabaseName(this):t.visitChildren(this)}},dx=class extends ga{constructor(t,e){super(t,e)}uid(){return this.getRuleContext(0,Vx)}get ruleIndex(){return FC.RULE_indexName}accept(t){return t.visitIndexName?t.visitIndexName(this):t.visitChildren(this)}},Ux=class extends ga{constructor(t,e){super(t,e)}uid(){return this.getRuleContext(0,Vx)}get ruleIndex(){return FC.RULE_constraintName}accept(t){return t.visitConstraintName?t.visitConstraintName(this):t.visitChildren(this)}},mx=class extends ga{constructor(t,e){super(t,e)}fullId(){return this.getRuleContext(0,Sx)}get ruleIndex(){return FC.RULE_triggerName}accept(t){return t.visitTriggerName?t.visitTriggerName(this):t.visitChildren(this)}},Dx=class extends ga{constructor(t,e){super(t,e)}indexName(t){return void 0===t?this.getRuleContexts(dx):this.getRuleContext(t,dx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_indexNameList}accept(t){return t.visitIndexNameList?t.visitIndexNameList(this):t.visitChildren(this)}},px=class extends ga{constructor(t,e){super(t,e)}expression(){return this.getRuleContext(0,NH)}uid(){return this.getRuleContext(0,Vx)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}ASC(){return this.getToken(FC.ASC,0)}DESC(){return this.getToken(FC.DESC,0)}get ruleIndex(){return FC.RULE_indexColumnName}accept(t){return t.visitIndexColumnName?t.visitIndexColumnName(this):t.visitChildren(this)}},gx=class extends ga{constructor(t,e){super(t,e)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}ID(){return this.getToken(FC.ID,0)}ADMIN(){return this.getToken(FC.ADMIN,0)}keywordsCanBeId(){return this.getRuleContext(0,TG)}get ruleIndex(){return FC.RULE_simpleUserName}accept(t){return t.visitSimpleUserName?t.visitSimpleUserName(this):t.visitChildren(this)}},xx=class extends ga{constructor(t,e){super(t,e)}LOCAL_ID(){return this.getToken(FC.LOCAL_ID,0)}HOST_IP_ADDRESS(){return this.getToken(FC.HOST_IP_ADDRESS,0)}AT_SIGN(){return this.getToken(FC.AT_SIGN,0)}get ruleIndex(){return FC.RULE_hostName}accept(t){return t.visitHostName?t.visitHostName(this):t.visitChildren(this)}},kx=class extends ga{constructor(t,e){super(t,e)}userName(t){return void 0===t?this.getRuleContexts(Gx):this.getRuleContext(t,Gx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_userNameList}accept(t){return t.visitUserNameList?t.visitUserNameList(this):t.visitChildren(this)}},Hx=class extends ga{constructor(t,e){super(t,e)}simpleUserName(){return this.getRuleContext(0,gx)}hostName(){return this.getRuleContext(0,xx)}currentUserExpression(){return this.getRuleContext(0,l_)}get ruleIndex(){return FC.RULE_newUserName}accept(t){return t.visitNewUserName?t.visitNewUserName(this):t.visitChildren(this)}},Gx=class extends ga{constructor(t,e){super(t,e)}newUserName(){return this.getRuleContext(0,Hx)}get ruleIndex(){return FC.RULE_userName}accept(t){return t.visitUserName?t.visitUserName(this):t.visitChildren(this)}},Fx=class extends ga{constructor(t,e){super(t,e)}LOCAL_ID(){return this.getToken(FC.LOCAL_ID,0)}GLOBAL_ID(){return this.getToken(FC.GLOBAL_ID,0)}get ruleIndex(){return FC.RULE_mysqlVariable}accept(t){return t.visitMysqlVariable?t.visitMysqlVariable(this):t.visitChildren(this)}},vx=class extends ga{constructor(t,e){super(t,e)}BINARY(){return this.getToken(FC.BINARY,0)}charsetNameBase(){return this.getRuleContext(0,iG)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}CHARSET_REVERSE_QOUTE_STRING(){return this.getToken(FC.CHARSET_REVERSE_QOUTE_STRING,0)}get ruleIndex(){return FC.RULE_charsetName}accept(t){return t.visitCharsetName?t.visitCharsetName(this):t.visitChildren(this)}},Bx=class extends ga{constructor(t,e){super(t,e)}uid(){return this.getRuleContext(0,Vx)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}get ruleIndex(){return FC.RULE_collationName}accept(t){return t.visitCollationName?t.visitCollationName(this):t.visitChildren(this)}},yx=class extends ga{constructor(t,e){super(t,e)}engineNameBase(){return this.getRuleContext(0,fx)}ID(){return this.getToken(FC.ID,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}get ruleIndex(){return FC.RULE_engineName}accept(t){return t.visitEngineName?t.visitEngineName(this):t.visitChildren(this)}},fx=class extends ga{constructor(t,e){super(t,e)}ARCHIVE(){return this.getToken(FC.ARCHIVE,0)}BLACKHOLE(){return this.getToken(FC.BLACKHOLE,0)}CONNECT(){return this.getToken(FC.CONNECT,0)}CSV(){return this.getToken(FC.CSV,0)}FEDERATED(){return this.getToken(FC.FEDERATED,0)}INNODB(){return this.getToken(FC.INNODB,0)}MEMORY(){return this.getToken(FC.MEMORY,0)}MRG_MYISAM(){return this.getToken(FC.MRG_MYISAM,0)}MYISAM(){return this.getToken(FC.MYISAM,0)}NDB(){return this.getToken(FC.NDB,0)}NDBCLUSTER(){return this.getToken(FC.NDBCLUSTER,0)}PERFORMANCE_SCHEMA(){return this.getToken(FC.PERFORMANCE_SCHEMA,0)}TOKUDB(){return this.getToken(FC.TOKUDB,0)}get ruleIndex(){return FC.RULE_engineNameBase}accept(t){return t.visitEngineNameBase?t.visitEngineNameBase(this):t.visitChildren(this)}},Yx=class extends ga{constructor(t,e){super(t,e)}decimalLiteral(t){return void 0===t?this.getRuleContexts(Qx):this.getRuleContext(t,Qx)}MINUS(t){return void 0===t?this.getTokens(FC.MINUS):this.getToken(FC.MINUS,t)}COLON_SYMB(t){return void 0===t?this.getTokens(FC.COLON_SYMB):this.getToken(FC.COLON_SYMB,t)}get ruleIndex(){return FC.RULE_uuidSet}accept(t){return t.visitUuidSet?t.visitUuidSet(this):t.visitChildren(this)}},wx=class extends ga{constructor(t,e){super(t,e)}xuidStringId(t){return void 0===t?this.getRuleContexts(bx):this.getRuleContext(t,bx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}decimalLiteral(){return this.getRuleContext(0,Qx)}get ruleIndex(){return FC.RULE_xid}accept(t){return t.visitXid?t.visitXid(this):t.visitChildren(this)}},bx=class extends ga{constructor(t,e){super(t,e)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}BIT_STRING(){return this.getToken(FC.BIT_STRING,0)}HEXADECIMAL_LITERAL(t){return void 0===t?this.getTokens(FC.HEXADECIMAL_LITERAL):this.getToken(FC.HEXADECIMAL_LITERAL,t)}get ruleIndex(){return FC.RULE_xuidStringId}accept(t){return t.visitXuidStringId?t.visitXuidStringId(this):t.visitChildren(this)}},Wx=class extends ga{constructor(t,e){super(t,e)}uid(){return this.getRuleContext(0,Vx)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}get ruleIndex(){return FC.RULE_authPlugin}accept(t){return t.visitAuthPlugin?t.visitAuthPlugin(this):t.visitChildren(this)}},Vx=class extends ga{constructor(t,e){super(t,e)}simpleId(){return this.getRuleContext(0,Xx)}CHARSET_REVERSE_QOUTE_STRING(){return this.getToken(FC.CHARSET_REVERSE_QOUTE_STRING,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}get ruleIndex(){return FC.RULE_uid}accept(t){return t.visitUid?t.visitUid(this):t.visitChildren(this)}},Xx=class extends ga{constructor(t,e){super(t,e)}ID(){return this.getToken(FC.ID,0)}charsetNameBase(){return this.getRuleContext(0,iG)}transactionLevelBase(){return this.getRuleContext(0,cG)}engineNameBase(){return this.getRuleContext(0,fx)}privilegesBase(){return this.getRuleContext(0,nG)}intervalTypeBase(){return this.getRuleContext(0,hG)}dataTypeBase(){return this.getRuleContext(0,EG)}keywordsCanBeId(){return this.getRuleContext(0,TG)}scalarFunctionName(){return this.getRuleContext(0,lH)}get ruleIndex(){return FC.RULE_simpleId}accept(t){return t.visitSimpleId?t.visitSimpleId(this):t.visitChildren(this)}},Kx=class extends ga{constructor(t,e){super(t,e)}DOT_ID(){return this.getToken(FC.DOT_ID,0)}DOT(){return this.getToken(FC.DOT,0)}uid(){return this.getRuleContext(0,Vx)}get ruleIndex(){return FC.RULE_dottedId}accept(t){return t.visitDottedId?t.visitDottedId(this):t.visitChildren(this)}},Qx=class extends ga{constructor(t,e){super(t,e)}DECIMAL_LITERAL(){return this.getToken(FC.DECIMAL_LITERAL,0)}ZERO_DECIMAL(){return this.getToken(FC.ZERO_DECIMAL,0)}ONE_DECIMAL(){return this.getToken(FC.ONE_DECIMAL,0)}TWO_DECIMAL(){return this.getToken(FC.TWO_DECIMAL,0)}REAL_LITERAL(){return this.getToken(FC.REAL_LITERAL,0)}get ruleIndex(){return FC.RULE_decimalLiteral}accept(t){return t.visitDecimalLiteral?t.visitDecimalLiteral(this):t.visitChildren(this)}},Jx=class extends ga{constructor(t,e){super(t,e)}FILESIZE_LITERAL(){return this.getToken(FC.FILESIZE_LITERAL,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}get ruleIndex(){return FC.RULE_fileSizeLiteral}accept(t){return t.visitFileSizeLiteral?t.visitFileSizeLiteral(this):t.visitChildren(this)}},Zx=class extends ga{constructor(t,e){super(t,e)}STRING_LITERAL(t){return void 0===t?this.getTokens(FC.STRING_LITERAL):this.getToken(FC.STRING_LITERAL,t)}START_NATIONAL_STRING_LITERAL(){return this.getToken(FC.START_NATIONAL_STRING_LITERAL,0)}STRING_CHARSET_NAME(){return this.getToken(FC.STRING_CHARSET_NAME,0)}COLLATE(){return this.getToken(FC.COLLATE,0)}collationName(){return this.getRuleContext(0,Bx)}get ruleIndex(){return FC.RULE_stringLiteral}accept(t){return t.visitStringLiteral?t.visitStringLiteral(this):t.visitChildren(this)}},qx=class extends ga{constructor(t,e){super(t,e)}TRUE(){return this.getToken(FC.TRUE,0)}FALSE(){return this.getToken(FC.FALSE,0)}get ruleIndex(){return FC.RULE_booleanLiteral}accept(t){return t.visitBooleanLiteral?t.visitBooleanLiteral(this):t.visitChildren(this)}},jx=class extends ga{constructor(t,e){super(t,e)}HEXADECIMAL_LITERAL(){return this.getToken(FC.HEXADECIMAL_LITERAL,0)}STRING_CHARSET_NAME(){return this.getToken(FC.STRING_CHARSET_NAME,0)}get ruleIndex(){return FC.RULE_hexadecimalLiteral}accept(t){return t.visitHexadecimalLiteral?t.visitHexadecimalLiteral(this):t.visitChildren(this)}},zx=class extends ga{constructor(t,e){super(t,e)}NULL_LITERAL(){return this.getToken(FC.NULL_LITERAL,0)}NULL_SPEC_LITERAL(){return this.getToken(FC.NULL_SPEC_LITERAL,0)}NOT(){return this.getToken(FC.NOT,0)}get ruleIndex(){return FC.RULE_nullNotnull}accept(t){return t.visitNullNotnull?t.visitNullNotnull(this):t.visitChildren(this)}},$x=class extends ga{constructor(t,e){super(t,e)}stringLiteral(){return this.getRuleContext(0,Zx)}decimalLiteral(){return this.getRuleContext(0,Qx)}MINUS(){return this.getToken(FC.MINUS,0)}hexadecimalLiteral(){return this.getRuleContext(0,jx)}booleanLiteral(){return this.getRuleContext(0,qx)}REAL_LITERAL(){return this.getToken(FC.REAL_LITERAL,0)}BIT_STRING(){return this.getToken(FC.BIT_STRING,0)}NULL_LITERAL(){return this.getToken(FC.NULL_LITERAL,0)}NULL_SPEC_LITERAL(){return this.getToken(FC.NULL_SPEC_LITERAL,0)}NOT(){return this.getToken(FC.NOT,0)}get ruleIndex(){return FC.RULE_constant}accept(t){return t.visitConstant?t.visitConstant(this):t.visitChildren(this)}},tk=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_dataType}copyFrom(t){super.copyFrom(t)}},ek=class extends tk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}GEOMETRYCOLLECTION(){return this.getToken(FC.GEOMETRYCOLLECTION,0)}GEOMCOLLECTION(){return this.getToken(FC.GEOMCOLLECTION,0)}LINESTRING(){return this.getToken(FC.LINESTRING,0)}MULTILINESTRING(){return this.getToken(FC.MULTILINESTRING,0)}MULTIPOINT(){return this.getToken(FC.MULTIPOINT,0)}MULTIPOLYGON(){return this.getToken(FC.MULTIPOLYGON,0)}POINT(){return this.getToken(FC.POINT,0)}POLYGON(){return this.getToken(FC.POLYGON,0)}JSON(){return this.getToken(FC.JSON,0)}GEOMETRY(){return this.getToken(FC.GEOMETRY,0)}SRID(){return this.getToken(FC.SRID,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}accept(t){return t.visitSpatialDataType?t.visitSpatialDataType(this):t.visitChildren(this)}},sk=class extends tk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LONG(){return this.getToken(FC.LONG,0)}VARBINARY(){return this.getToken(FC.VARBINARY,0)}accept(t){return t.visitLongVarbinaryDataType?t.visitLongVarbinaryDataType(this):t.visitChildren(this)}},ak=class extends tk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}collectionOptions(){return this.getRuleContext(0,Tk)}ENUM(){return this.getToken(FC.ENUM,0)}SET(){return this.getToken(FC.SET,0)}BINARY(){return this.getToken(FC.BINARY,0)}charSet(){return this.getRuleContext(0,S_)}charsetName(){return this.getRuleContext(0,vx)}accept(t){return t.visitCollectionDataType?t.visitCollectionDataType(this):t.visitChildren(this)}},rk=class extends tk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}NATIONAL(){return this.getToken(FC.NATIONAL,0)}VARYING(){return this.getToken(FC.VARYING,0)}CHAR(){return this.getToken(FC.CHAR,0)}CHARACTER(){return this.getToken(FC.CHARACTER,0)}lengthOneDimension(){return this.getRuleContext(0,Rk)}BINARY(){return this.getToken(FC.BINARY,0)}accept(t){return t.visitNationalVaryingStringDataType?t.visitNationalVaryingStringDataType(this):t.visitChildren(this)}},ik=class extends tk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}TINYINT(){return this.getToken(FC.TINYINT,0)}SMALLINT(){return this.getToken(FC.SMALLINT,0)}MEDIUMINT(){return this.getToken(FC.MEDIUMINT,0)}INT(){return this.getToken(FC.INT,0)}INTEGER(){return this.getToken(FC.INTEGER,0)}BIGINT(){return this.getToken(FC.BIGINT,0)}MIDDLEINT(){return this.getToken(FC.MIDDLEINT,0)}INT1(){return this.getToken(FC.INT1,0)}INT2(){return this.getToken(FC.INT2,0)}INT3(){return this.getToken(FC.INT3,0)}INT4(){return this.getToken(FC.INT4,0)}INT8(){return this.getToken(FC.INT8,0)}lengthOneDimension(){return this.getRuleContext(0,Rk)}SIGNED(t){return void 0===t?this.getTokens(FC.SIGNED):this.getToken(FC.SIGNED,t)}UNSIGNED(t){return void 0===t?this.getTokens(FC.UNSIGNED):this.getToken(FC.UNSIGNED,t)}ZEROFILL(t){return void 0===t?this.getTokens(FC.ZEROFILL):this.getToken(FC.ZEROFILL,t)}REAL(){return this.getToken(FC.REAL,0)}lengthTwoDimension(){return this.getRuleContext(0,Ak)}DOUBLE(){return this.getToken(FC.DOUBLE,0)}PRECISION(){return this.getToken(FC.PRECISION,0)}DECIMAL(){return this.getToken(FC.DECIMAL,0)}DEC(){return this.getToken(FC.DEC,0)}FIXED(){return this.getToken(FC.FIXED,0)}NUMERIC(){return this.getToken(FC.NUMERIC,0)}FLOAT(){return this.getToken(FC.FLOAT,0)}FLOAT4(){return this.getToken(FC.FLOAT4,0)}FLOAT8(){return this.getToken(FC.FLOAT8,0)}lengthTwoOptionalDimension(){return this.getRuleContext(0,Sk)}BIT(){return this.getToken(FC.BIT,0)}TIME(){return this.getToken(FC.TIME,0)}TIMESTAMP(){return this.getToken(FC.TIMESTAMP,0)}DATETIME(){return this.getToken(FC.DATETIME,0)}BINARY(){return this.getToken(FC.BINARY,0)}VARBINARY(){return this.getToken(FC.VARBINARY,0)}BLOB(){return this.getToken(FC.BLOB,0)}YEAR(){return this.getToken(FC.YEAR,0)}accept(t){return t.visitDimensionDataType?t.visitDimensionDataType(this):t.visitChildren(this)}},ck=class extends tk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CHAR(){return this.getToken(FC.CHAR,0)}CHARACTER(){return this.getToken(FC.CHARACTER,0)}VARCHAR(){return this.getToken(FC.VARCHAR,0)}TINYTEXT(){return this.getToken(FC.TINYTEXT,0)}TEXT(){return this.getToken(FC.TEXT,0)}MEDIUMTEXT(){return this.getToken(FC.MEDIUMTEXT,0)}LONGTEXT(){return this.getToken(FC.LONGTEXT,0)}NCHAR(){return this.getToken(FC.NCHAR,0)}NVARCHAR(){return this.getToken(FC.NVARCHAR,0)}LONG(){return this.getToken(FC.LONG,0)}VARYING(){return this.getToken(FC.VARYING,0)}lengthOneDimension(){return this.getRuleContext(0,Rk)}BINARY(t){return void 0===t?this.getTokens(FC.BINARY):this.getToken(FC.BINARY,t)}charSet(){return this.getRuleContext(0,S_)}charsetName(){return this.getRuleContext(0,vx)}COLLATE(){return this.getToken(FC.COLLATE,0)}collationName(){return this.getRuleContext(0,Bx)}accept(t){return t.visitStringDataType?t.visitStringDataType(this):t.visitChildren(this)}},nk=class extends tk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LONG(){return this.getToken(FC.LONG,0)}VARCHAR(){return this.getToken(FC.VARCHAR,0)}BINARY(){return this.getToken(FC.BINARY,0)}charSet(){return this.getRuleContext(0,S_)}charsetName(){return this.getRuleContext(0,vx)}COLLATE(){return this.getToken(FC.COLLATE,0)}collationName(){return this.getRuleContext(0,Bx)}accept(t){return t.visitLongVarcharDataType?t.visitLongVarcharDataType(this):t.visitChildren(this)}},hk=class extends tk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}NATIONAL(){return this.getToken(FC.NATIONAL,0)}VARCHAR(){return this.getToken(FC.VARCHAR,0)}CHARACTER(){return this.getToken(FC.CHARACTER,0)}CHAR(){return this.getToken(FC.CHAR,0)}lengthOneDimension(){return this.getRuleContext(0,Rk)}BINARY(){return this.getToken(FC.BINARY,0)}NCHAR(){return this.getToken(FC.NCHAR,0)}accept(t){return t.visitNationalStringDataType?t.visitNationalStringDataType(this):t.visitChildren(this)}},Ek=class extends tk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DATE(){return this.getToken(FC.DATE,0)}TINYBLOB(){return this.getToken(FC.TINYBLOB,0)}MEDIUMBLOB(){return this.getToken(FC.MEDIUMBLOB,0)}LONGBLOB(){return this.getToken(FC.LONGBLOB,0)}BOOL(){return this.getToken(FC.BOOL,0)}BOOLEAN(){return this.getToken(FC.BOOLEAN,0)}SERIAL(){return this.getToken(FC.SERIAL,0)}accept(t){return t.visitSimpleDataType?t.visitSimpleDataType(this):t.visitChildren(this)}},Tk=class extends ga{constructor(t,e){super(t,e)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}STRING_LITERAL(t){return void 0===t?this.getTokens(FC.STRING_LITERAL):this.getToken(FC.STRING_LITERAL,t)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_collectionOptions}accept(t){return t.visitCollectionOptions?t.visitCollectionOptions(this):t.visitChildren(this)}},ok=class extends ga{constructor(t,e){super(t,e)}CHAR(){return this.getToken(FC.CHAR,0)}SIGNED(){return this.getToken(FC.SIGNED,0)}UNSIGNED(){return this.getToken(FC.UNSIGNED,0)}ARRAY(){return this.getToken(FC.ARRAY,0)}BINARY(){return this.getToken(FC.BINARY,0)}NCHAR(){return this.getToken(FC.NCHAR,0)}FLOAT(){return this.getToken(FC.FLOAT,0)}DATE(){return this.getToken(FC.DATE,0)}DATETIME(){return this.getToken(FC.DATETIME,0)}TIME(){return this.getToken(FC.TIME,0)}YEAR(){return this.getToken(FC.YEAR,0)}JSON(){return this.getToken(FC.JSON,0)}INT(){return this.getToken(FC.INT,0)}INTEGER(){return this.getToken(FC.INTEGER,0)}DOUBLE(){return this.getToken(FC.DOUBLE,0)}DECIMAL(){return this.getToken(FC.DECIMAL,0)}DEC(){return this.getToken(FC.DEC,0)}lengthOneDimension(){return this.getRuleContext(0,Rk)}charSet(){return this.getRuleContext(0,S_)}charsetName(){return this.getRuleContext(0,vx)}lengthTwoOptionalDimension(){return this.getRuleContext(0,Sk)}get ruleIndex(){return FC.RULE_convertedDataType}accept(t){return t.visitConvertedDataType?t.visitConvertedDataType(this):t.visitChildren(this)}},Rk=class extends ga{constructor(t,e){super(t,e)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}get ruleIndex(){return FC.RULE_lengthOneDimension}accept(t){return t.visitLengthOneDimension?t.visitLengthOneDimension(this):t.visitChildren(this)}},Ak=class extends ga{constructor(t,e){super(t,e)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}decimalLiteral(t){return void 0===t?this.getRuleContexts(Qx):this.getRuleContext(t,Qx)}COMMA(){return this.getToken(FC.COMMA,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}get ruleIndex(){return FC.RULE_lengthTwoDimension}accept(t){return t.visitLengthTwoDimension?t.visitLengthTwoDimension(this):t.visitChildren(this)}},Sk=class extends ga{constructor(t,e){super(t,e)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}decimalLiteral(t){return void 0===t?this.getRuleContexts(Qx):this.getRuleContext(t,Qx)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COMMA(){return this.getToken(FC.COMMA,0)}get ruleIndex(){return FC.RULE_lengthTwoOptionalDimension}accept(t){return t.visitLengthTwoOptionalDimension?t.visitLengthTwoOptionalDimension(this):t.visitChildren(this)}},lk=class extends ga{constructor(t,e){super(t,e)}uid(t){return void 0===t?this.getRuleContexts(Vx):this.getRuleContext(t,Vx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_uidList}accept(t){return t.visitUidList?t.visitUidList(this):t.visitChildren(this)}},Ok=class extends ga{constructor(t,e){super(t,e)}fullColumnName(t){return void 0===t?this.getRuleContexts(Px):this.getRuleContext(t,Px)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_fullColumnNameList}accept(t){return t.visitFullColumnNameList?t.visitFullColumnNameList(this):t.visitChildren(this)}},Ik=class extends ga{constructor(t,e){super(t,e)}tableName(t){return void 0===t?this.getRuleContexts(lx):this.getRuleContext(t,lx)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_tables}accept(t){return t.visitTables?t.visitTables(this):t.visitChildren(this)}},uk=class extends ga{constructor(t,e){super(t,e)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}indexColumnName(t){return void 0===t?this.getRuleContexts(px):this.getRuleContext(t,px)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_indexColumnNames}accept(t){return t.visitIndexColumnNames?t.visitIndexColumnNames(this):t.visitChildren(this)}},Nk=class extends ga{constructor(t,e){super(t,e)}expression(t){return void 0===t?this.getRuleContexts(NH):this.getRuleContext(t,NH)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_expressions}accept(t){return t.visitExpressions?t.visitExpressions(this):t.visitChildren(this)}},Lk=class extends ga{constructor(t,e){super(t,e)}expressionOrDefault(t){return void 0===t?this.getRuleContexts(Uk):this.getRuleContext(t,Uk)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_expressionsWithDefaults}accept(t){return t.visitExpressionsWithDefaults?t.visitExpressionsWithDefaults(this):t.visitChildren(this)}},Ck=class extends ga{constructor(t,e){super(t,e)}constant(t){return void 0===t?this.getRuleContexts($x):this.getRuleContext(t,$x)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_constants}accept(t){return t.visitConstants?t.visitConstants(this):t.visitChildren(this)}},_k=class extends ga{constructor(t,e){super(t,e)}STRING_LITERAL(t){return void 0===t?this.getTokens(FC.STRING_LITERAL):this.getToken(FC.STRING_LITERAL,t)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_simpleStrings}accept(t){return t.visitSimpleStrings?t.visitSimpleStrings(this):t.visitChildren(this)}},Pk=class extends ga{constructor(t,e){super(t,e)}LOCAL_ID(t){return void 0===t?this.getTokens(FC.LOCAL_ID):this.getToken(FC.LOCAL_ID,t)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_userVariables}accept(t){return t.visitUserVariables?t.visitUserVariables(this):t.visitChildren(this)}},Mk=class extends ga{constructor(t,e){super(t,e)}NULL_LITERAL(){return this.getToken(FC.NULL_LITERAL,0)}CAST(){return this.getToken(FC.CAST,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(){return this.getRuleContext(0,NH)}AS(){return this.getToken(FC.AS,0)}convertedDataType(){return this.getRuleContext(0,ok)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}constant(){return this.getRuleContext(0,$x)}unaryOperator(){return this.getRuleContext(0,zH)}currentTimestamp(t){return void 0===t?this.getRuleContexts(dk):this.getRuleContext(t,dk)}ON(){return this.getToken(FC.ON,0)}UPDATE(){return this.getToken(FC.UPDATE,0)}fullId(){return this.getRuleContext(0,Sx)}get ruleIndex(){return FC.RULE_defaultValue}accept(t){return t.visitDefaultValue?t.visitDefaultValue(this):t.visitChildren(this)}},dk=class extends ga{constructor(t,e){super(t,e)}NOW(){return this.getToken(FC.NOW,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}CURRENT_TIMESTAMP(){return this.getToken(FC.CURRENT_TIMESTAMP,0)}LOCALTIME(){return this.getToken(FC.LOCALTIME,0)}LOCALTIMESTAMP(){return this.getToken(FC.LOCALTIMESTAMP,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}get ruleIndex(){return FC.RULE_currentTimestamp}accept(t){return t.visitCurrentTimestamp?t.visitCurrentTimestamp(this):t.visitChildren(this)}},Uk=class extends ga{constructor(t,e){super(t,e)}expression(){return this.getRuleContext(0,NH)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}get ruleIndex(){return FC.RULE_expressionOrDefault}accept(t){return t.visitExpressionOrDefault?t.visitExpressionOrDefault(this):t.visitChildren(this)}},mk=class extends ga{constructor(t,e){super(t,e)}IF(){return this.getToken(FC.IF,0)}EXISTS(){return this.getToken(FC.EXISTS,0)}get ruleIndex(){return FC.RULE_ifExists}accept(t){return t.visitIfExists?t.visitIfExists(this):t.visitChildren(this)}},Dk=class extends ga{constructor(t,e){super(t,e)}IF(){return this.getToken(FC.IF,0)}NOT(){return this.getToken(FC.NOT,0)}EXISTS(){return this.getToken(FC.EXISTS,0)}get ruleIndex(){return FC.RULE_ifNotExists}accept(t){return t.visitIfNotExists?t.visitIfNotExists(this):t.visitChildren(this)}},pk=class extends ga{constructor(t,e){super(t,e)}OR(){return this.getToken(FC.OR,0)}REPLACE(){return this.getToken(FC.REPLACE,0)}get ruleIndex(){return FC.RULE_orReplace}accept(t){return t.visitOrReplace?t.visitOrReplace(this):t.visitChildren(this)}},gk=class extends ga{constructor(t,e){super(t,e)}WAIT(){return this.getToken(FC.WAIT,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}NOWAIT(){return this.getToken(FC.NOWAIT,0)}get ruleIndex(){return FC.RULE_waitNowaitClause}accept(t){return t.visitWaitNowaitClause?t.visitWaitNowaitClause(this):t.visitChildren(this)}},xk=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_functionCall}copyFrom(t){super.copyFrom(t)}},kk=class extends xk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}specificFunction(){return this.getRuleContext(0,yk)}accept(t){return t.visitSpecificFunctionCall?t.visitSpecificFunctionCall(this):t.visitChildren(this)}},Hk=class extends xk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}passwordFunctionClause(){return this.getRuleContext(0,OH)}accept(t){return t.visitPasswordFunctionCall?t.visitPasswordFunctionCall(this):t.visitChildren(this)}},Gk=class extends xk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}fullId(){return this.getRuleContext(0,Sx)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}functionArgs(){return this.getRuleContext(0,IH)}accept(t){return t.visitUdfFunctionCall?t.visitUdfFunctionCall(this):t.visitChildren(this)}},Fk=class extends xk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}nonAggregateWindowedFunction(){return this.getRuleContext(0,iH)}accept(t){return t.visitNonAggregateFunctionCall?t.visitNonAggregateFunctionCall(this):t.visitChildren(this)}},vk=class extends xk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}aggregateWindowedFunction(){return this.getRuleContext(0,rH)}accept(t){return t.visitAggregateFunctionCall?t.visitAggregateFunctionCall(this):t.visitChildren(this)}},Bk=class extends xk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}scalarFunctionName(){return this.getRuleContext(0,lH)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}functionArgs(){return this.getRuleContext(0,IH)}accept(t){return t.visitScalarFunctionCall?t.visitScalarFunctionCall(this):t.visitChildren(this)}},yk=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_specificFunction}copyFrom(t){super.copyFrom(t)}},fk=class extends yk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}POSITION(){return this.getToken(FC.POSITION,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}IN(){return this.getToken(FC.IN,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}stringLiteral(t){return void 0===t?this.getRuleContexts(Zx):this.getRuleContext(t,Zx)}expression(t){return void 0===t?this.getRuleContexts(NH):this.getRuleContext(t,NH)}accept(t){return t.visitPositionFunctionCall?t.visitPositionFunctionCall(this):t.visitChildren(this)}},Yk=class extends yk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}TRIM(){return this.getToken(FC.TRIM,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}FROM(){return this.getToken(FC.FROM,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}BOTH(){return this.getToken(FC.BOTH,0)}LEADING(){return this.getToken(FC.LEADING,0)}TRAILING(){return this.getToken(FC.TRAILING,0)}stringLiteral(t){return void 0===t?this.getRuleContexts(Zx):this.getRuleContext(t,Zx)}expression(t){return void 0===t?this.getRuleContexts(NH):this.getRuleContext(t,NH)}accept(t){return t.visitTrimFunctionCall?t.visitTrimFunctionCall(this):t.visitChildren(this)}},wk=class extends yk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}JSON_VALUE(){return this.getToken(FC.JSON_VALUE,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(t){return void 0===t?this.getRuleContexts(NH):this.getRuleContext(t,NH)}COMMA(){return this.getToken(FC.COMMA,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}RETURNING(){return this.getToken(FC.RETURNING,0)}convertedDataType(){return this.getRuleContext(0,ok)}jsonOnEmpty(){return this.getRuleContext(0,$U)}jsonOnError(){return this.getRuleContext(0,tm)}accept(t){return t.visitJsonValueFunctionCall?t.visitJsonValueFunctionCall(this):t.visitChildren(this)}},bk=class extends yk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CASE(){return this.getToken(FC.CASE,0)}END(){return this.getToken(FC.END,0)}caseFuncAlternative(t){return void 0===t?this.getRuleContexts($k):this.getRuleContext(t,$k)}ELSE(){return this.getToken(FC.ELSE,0)}functionArg(){return this.getRuleContext(0,uH)}accept(t){return t.visitCaseFunctionCall?t.visitCaseFunctionCall(this):t.visitChildren(this)}},Wk=class extends yk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}EXTRACT(){return this.getToken(FC.EXTRACT,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}intervalType(){return this.getRuleContext(0,__)}FROM(){return this.getToken(FC.FROM,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}stringLiteral(){return this.getRuleContext(0,Zx)}expression(){return this.getRuleContext(0,NH)}accept(t){return t.visitExtractFunctionCall?t.visitExtractFunctionCall(this):t.visitChildren(this)}},Vk=class extends yk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CONVERT(){return this.getToken(FC.CONVERT,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(){return this.getRuleContext(0,NH)}convertedDataType(){return this.getRuleContext(0,ok)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COMMA(){return this.getToken(FC.COMMA,0)}USING(){return this.getToken(FC.USING,0)}charsetName(){return this.getRuleContext(0,vx)}CAST(){return this.getToken(FC.CAST,0)}AS(){return this.getToken(FC.AS,0)}accept(t){return t.visitDataTypeFunctionCall?t.visitDataTypeFunctionCall(this):t.visitChildren(this)}},Xk=class extends yk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}VALUES(){return this.getToken(FC.VALUES,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}fullColumnName(){return this.getRuleContext(0,Px)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}accept(t){return t.visitValuesFunctionCall?t.visitValuesFunctionCall(this):t.visitChildren(this)}},Kk=class extends yk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CASE(){return this.getToken(FC.CASE,0)}expression(){return this.getRuleContext(0,NH)}END(){return this.getToken(FC.END,0)}caseFuncAlternative(t){return void 0===t?this.getRuleContexts($k):this.getRuleContext(t,$k)}ELSE(){return this.getToken(FC.ELSE,0)}functionArg(){return this.getRuleContext(0,uH)}accept(t){return t.visitCaseExpressionFunctionCall?t.visitCaseExpressionFunctionCall(this):t.visitChildren(this)}},Qk=class extends yk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}currentUserExpression(){return this.getRuleContext(0,l_)}accept(t){return t.visitCurrentUser?t.visitCurrentUser(this):t.visitChildren(this)}},Jk=class extends yk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CURRENT_DATE(){return this.getToken(FC.CURRENT_DATE,0)}CURRENT_TIME(){return this.getToken(FC.CURRENT_TIME,0)}CURRENT_TIMESTAMP(){return this.getToken(FC.CURRENT_TIMESTAMP,0)}LOCALTIME(){return this.getToken(FC.LOCALTIME,0)}UTC_TIMESTAMP(){return this.getToken(FC.UTC_TIMESTAMP,0)}SCHEMA(){return this.getToken(FC.SCHEMA,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}accept(t){return t.visitSimpleFunctionCall?t.visitSimpleFunctionCall(this):t.visitChildren(this)}},Zk=class extends yk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CHAR(){return this.getToken(FC.CHAR,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}functionArgs(){return this.getRuleContext(0,IH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}USING(){return this.getToken(FC.USING,0)}charsetName(){return this.getRuleContext(0,vx)}accept(t){return t.visitCharFunctionCall?t.visitCharFunctionCall(this):t.visitChildren(this)}},qk=class extends yk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}WEIGHT_STRING(){return this.getToken(FC.WEIGHT_STRING,0)}LR_BRACKET(t){return void 0===t?this.getTokens(FC.LR_BRACKET):this.getToken(FC.LR_BRACKET,t)}RR_BRACKET(t){return void 0===t?this.getTokens(FC.RR_BRACKET):this.getToken(FC.RR_BRACKET,t)}stringLiteral(){return this.getRuleContext(0,Zx)}expression(){return this.getRuleContext(0,NH)}AS(){return this.getToken(FC.AS,0)}decimalLiteral(){return this.getRuleContext(0,Qx)}levelsInWeightString(){return this.getRuleContext(0,tH)}CHAR(){return this.getToken(FC.CHAR,0)}BINARY(){return this.getToken(FC.BINARY,0)}accept(t){return t.visitWeightFunctionCall?t.visitWeightFunctionCall(this):t.visitChildren(this)}},jk=class extends yk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}GET_FORMAT(){return this.getToken(FC.GET_FORMAT,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}COMMA(){return this.getToken(FC.COMMA,0)}stringLiteral(){return this.getRuleContext(0,Zx)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}DATE(){return this.getToken(FC.DATE,0)}TIME(){return this.getToken(FC.TIME,0)}DATETIME(){return this.getToken(FC.DATETIME,0)}accept(t){return t.visitGetFormatFunctionCall?t.visitGetFormatFunctionCall(this):t.visitChildren(this)}},zk=class extends yk{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}FROM(){return this.getToken(FC.FROM,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}SUBSTR(){return this.getToken(FC.SUBSTR,0)}SUBSTRING(){return this.getToken(FC.SUBSTRING,0)}stringLiteral(){return this.getRuleContext(0,Zx)}expression(t){return void 0===t?this.getRuleContexts(NH):this.getRuleContext(t,NH)}decimalLiteral(t){return void 0===t?this.getRuleContexts(Qx):this.getRuleContext(t,Qx)}FOR(){return this.getToken(FC.FOR,0)}accept(t){return t.visitSubstrFunctionCall?t.visitSubstrFunctionCall(this):t.visitChildren(this)}},$k=class extends ga{constructor(t,e){super(t,e)}WHEN(){return this.getToken(FC.WHEN,0)}THEN(){return this.getToken(FC.THEN,0)}functionArg(t){return void 0===t?this.getRuleContexts(uH):this.getRuleContext(t,uH)}get ruleIndex(){return FC.RULE_caseFuncAlternative}accept(t){return t.visitCaseFuncAlternative?t.visitCaseFuncAlternative(this):t.visitChildren(this)}},tH=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_levelsInWeightString}copyFrom(t){super.copyFrom(t)}},eH=class extends tH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LEVEL(){return this.getToken(FC.LEVEL,0)}MINUS(){return this.getToken(FC.MINUS,0)}decimalLiteral(t){return void 0===t?this.getRuleContexts(Qx):this.getRuleContext(t,Qx)}accept(t){return t.visitLevelWeightRange?t.visitLevelWeightRange(this):t.visitChildren(this)}},sH=class extends tH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LEVEL(){return this.getToken(FC.LEVEL,0)}levelInWeightListElement(t){return void 0===t?this.getRuleContexts(aH):this.getRuleContext(t,aH)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitLevelWeightList?t.visitLevelWeightList(this):t.visitChildren(this)}},aH=class extends ga{constructor(t,e){super(t,e)}decimalLiteral(){return this.getRuleContext(0,Qx)}ASC(){return this.getToken(FC.ASC,0)}DESC(){return this.getToken(FC.DESC,0)}REVERSE(){return this.getToken(FC.REVERSE,0)}get ruleIndex(){return FC.RULE_levelInWeightListElement}accept(t){return t.visitLevelInWeightListElement?t.visitLevelInWeightListElement(this):t.visitChildren(this)}},rH=class extends ga{constructor(t,e){super(t,e)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}functionArg(){return this.getRuleContext(0,uH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}AVG(){return this.getToken(FC.AVG,0)}MAX(){return this.getToken(FC.MAX,0)}MIN(){return this.getToken(FC.MIN,0)}SUM(){return this.getToken(FC.SUM,0)}overClause(){return this.getRuleContext(0,cH)}ALL(){return this.getToken(FC.ALL,0)}DISTINCT(){return this.getToken(FC.DISTINCT,0)}COUNT(){return this.getToken(FC.COUNT,0)}functionArgs(){return this.getRuleContext(0,IH)}STAR(){return this.getToken(FC.STAR,0)}BIT_AND(){return this.getToken(FC.BIT_AND,0)}BIT_OR(){return this.getToken(FC.BIT_OR,0)}BIT_XOR(){return this.getToken(FC.BIT_XOR,0)}STD(){return this.getToken(FC.STD,0)}STDDEV(){return this.getToken(FC.STDDEV,0)}STDDEV_POP(){return this.getToken(FC.STDDEV_POP,0)}STDDEV_SAMP(){return this.getToken(FC.STDDEV_SAMP,0)}VAR_POP(){return this.getToken(FC.VAR_POP,0)}VAR_SAMP(){return this.getToken(FC.VAR_SAMP,0)}VARIANCE(){return this.getToken(FC.VARIANCE,0)}GROUP_CONCAT(){return this.getToken(FC.GROUP_CONCAT,0)}ORDER(){return this.getToken(FC.ORDER,0)}BY(){return this.getToken(FC.BY,0)}orderByExpression(t){return void 0===t?this.getRuleContexts(dU):this.getRuleContext(t,dU)}SEPARATOR(){return this.getToken(FC.SEPARATOR,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_aggregateWindowedFunction}accept(t){return t.visitAggregateWindowedFunction?t.visitAggregateWindowedFunction(this):t.visitChildren(this)}},iH=class extends ga{constructor(t,e){super(t,e)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(){return this.getRuleContext(0,NH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}overClause(){return this.getRuleContext(0,cH)}LAG(){return this.getToken(FC.LAG,0)}LEAD(){return this.getToken(FC.LEAD,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}decimalLiteral(t){return void 0===t?this.getRuleContexts(Qx):this.getRuleContext(t,Qx)}FIRST_VALUE(){return this.getToken(FC.FIRST_VALUE,0)}LAST_VALUE(){return this.getToken(FC.LAST_VALUE,0)}CUME_DIST(){return this.getToken(FC.CUME_DIST,0)}DENSE_RANK(){return this.getToken(FC.DENSE_RANK,0)}PERCENT_RANK(){return this.getToken(FC.PERCENT_RANK,0)}RANK(){return this.getToken(FC.RANK,0)}ROW_NUMBER(){return this.getToken(FC.ROW_NUMBER,0)}NTH_VALUE(){return this.getToken(FC.NTH_VALUE,0)}NTILE(){return this.getToken(FC.NTILE,0)}get ruleIndex(){return FC.RULE_nonAggregateWindowedFunction}accept(t){return t.visitNonAggregateWindowedFunction?t.visitNonAggregateWindowedFunction(this):t.visitChildren(this)}},cH=class extends ga{constructor(t,e){super(t,e)}OVER(){return this.getToken(FC.OVER,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}windowSpec(){return this.getRuleContext(0,nH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}windowName(){return this.getRuleContext(0,hH)}get ruleIndex(){return FC.RULE_overClause}accept(t){return t.visitOverClause?t.visitOverClause(this):t.visitChildren(this)}},nH=class extends ga{constructor(t,e){super(t,e)}windowName(){return this.getRuleContext(0,hH)}partitionClause(){return this.getRuleContext(0,SH)}orderByClause(){return this.getRuleContext(0,MU)}frameClause(){return this.getRuleContext(0,EH)}get ruleIndex(){return FC.RULE_windowSpec}accept(t){return t.visitWindowSpec?t.visitWindowSpec(this):t.visitChildren(this)}},hH=class extends ga{constructor(t,e){super(t,e)}uid(){return this.getRuleContext(0,Vx)}get ruleIndex(){return FC.RULE_windowName}accept(t){return t.visitWindowName?t.visitWindowName(this):t.visitChildren(this)}},EH=class extends ga{constructor(t,e){super(t,e)}frameUnits(){return this.getRuleContext(0,TH)}frameExtent(){return this.getRuleContext(0,oH)}get ruleIndex(){return FC.RULE_frameClause}accept(t){return t.visitFrameClause?t.visitFrameClause(this):t.visitChildren(this)}},TH=class extends ga{constructor(t,e){super(t,e)}ROWS(){return this.getToken(FC.ROWS,0)}RANGE(){return this.getToken(FC.RANGE,0)}get ruleIndex(){return FC.RULE_frameUnits}accept(t){return t.visitFrameUnits?t.visitFrameUnits(this):t.visitChildren(this)}},oH=class extends ga{constructor(t,e){super(t,e)}frameRange(){return this.getRuleContext(0,AH)}frameBetween(){return this.getRuleContext(0,RH)}get ruleIndex(){return FC.RULE_frameExtent}accept(t){return t.visitFrameExtent?t.visitFrameExtent(this):t.visitChildren(this)}},RH=class extends ga{constructor(t,e){super(t,e)}BETWEEN(){return this.getToken(FC.BETWEEN,0)}frameRange(t){return void 0===t?this.getRuleContexts(AH):this.getRuleContext(t,AH)}AND(){return this.getToken(FC.AND,0)}get ruleIndex(){return FC.RULE_frameBetween}accept(t){return t.visitFrameBetween?t.visitFrameBetween(this):t.visitChildren(this)}},AH=class extends ga{constructor(t,e){super(t,e)}CURRENT(){return this.getToken(FC.CURRENT,0)}ROW(){return this.getToken(FC.ROW,0)}UNBOUNDED(){return this.getToken(FC.UNBOUNDED,0)}PRECEDING(){return this.getToken(FC.PRECEDING,0)}FOLLOWING(){return this.getToken(FC.FOLLOWING,0)}expression(){return this.getRuleContext(0,NH)}get ruleIndex(){return FC.RULE_frameRange}accept(t){return t.visitFrameRange?t.visitFrameRange(this):t.visitChildren(this)}},SH=class extends ga{constructor(t,e){super(t,e)}PARTITION(){return this.getToken(FC.PARTITION,0)}BY(){return this.getToken(FC.BY,0)}expression(t){return void 0===t?this.getRuleContexts(NH):this.getRuleContext(t,NH)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_partitionClause}accept(t){return t.visitPartitionClause?t.visitPartitionClause(this):t.visitChildren(this)}},lH=class extends ga{constructor(t,e){super(t,e)}functionNameBase(){return this.getRuleContext(0,oG)}ASCII(){return this.getToken(FC.ASCII,0)}CURDATE(){return this.getToken(FC.CURDATE,0)}CURRENT_DATE(){return this.getToken(FC.CURRENT_DATE,0)}CURRENT_TIME(){return this.getToken(FC.CURRENT_TIME,0)}CURRENT_TIMESTAMP(){return this.getToken(FC.CURRENT_TIMESTAMP,0)}CURTIME(){return this.getToken(FC.CURTIME,0)}DATE_ADD(){return this.getToken(FC.DATE_ADD,0)}DATE_SUB(){return this.getToken(FC.DATE_SUB,0)}IF(){return this.getToken(FC.IF,0)}INSERT(){return this.getToken(FC.INSERT,0)}LOCALTIME(){return this.getToken(FC.LOCALTIME,0)}LOCALTIMESTAMP(){return this.getToken(FC.LOCALTIMESTAMP,0)}MID(){return this.getToken(FC.MID,0)}NOW(){return this.getToken(FC.NOW,0)}REPEAT(){return this.getToken(FC.REPEAT,0)}REPLACE(){return this.getToken(FC.REPLACE,0)}SUBSTR(){return this.getToken(FC.SUBSTR,0)}SUBSTRING(){return this.getToken(FC.SUBSTRING,0)}SYSDATE(){return this.getToken(FC.SYSDATE,0)}TRIM(){return this.getToken(FC.TRIM,0)}UTC_DATE(){return this.getToken(FC.UTC_DATE,0)}UTC_TIME(){return this.getToken(FC.UTC_TIME,0)}UTC_TIMESTAMP(){return this.getToken(FC.UTC_TIMESTAMP,0)}get ruleIndex(){return FC.RULE_scalarFunctionName}accept(t){return t.visitScalarFunctionName?t.visitScalarFunctionName(this):t.visitChildren(this)}},OH=class extends ga{constructor(t,e){super(t,e)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}functionArg(){return this.getRuleContext(0,uH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}PASSWORD(){return this.getToken(FC.PASSWORD,0)}OLD_PASSWORD(){return this.getToken(FC.OLD_PASSWORD,0)}get ruleIndex(){return FC.RULE_passwordFunctionClause}accept(t){return t.visitPasswordFunctionClause?t.visitPasswordFunctionClause(this):t.visitChildren(this)}},IH=class extends ga{constructor(t,e){super(t,e)}constant(t){return void 0===t?this.getRuleContexts($x):this.getRuleContext(t,$x)}fullColumnName(t){return void 0===t?this.getRuleContexts(Px):this.getRuleContext(t,Px)}functionCall(t){return void 0===t?this.getRuleContexts(xk):this.getRuleContext(t,xk)}expression(t){return void 0===t?this.getRuleContexts(NH):this.getRuleContext(t,NH)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}get ruleIndex(){return FC.RULE_functionArgs}accept(t){return t.visitFunctionArgs?t.visitFunctionArgs(this):t.visitChildren(this)}},uH=class extends ga{constructor(t,e){super(t,e)}constant(){return this.getRuleContext(0,$x)}fullColumnName(){return this.getRuleContext(0,Px)}functionCall(){return this.getRuleContext(0,xk)}expression(){return this.getRuleContext(0,NH)}get ruleIndex(){return FC.RULE_functionArg}accept(t){return t.visitFunctionArg?t.visitFunctionArg(this):t.visitChildren(this)}},NH=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_expression}copyFrom(t){super.copyFrom(t)}},LH=class extends NH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}predicate(){return this.getRuleContext(0,MH)}IS(){return this.getToken(FC.IS,0)}TRUE(){return this.getToken(FC.TRUE,0)}FALSE(){return this.getToken(FC.FALSE,0)}UNKNOWN(){return this.getToken(FC.UNKNOWN,0)}NOT(){return this.getToken(FC.NOT,0)}accept(t){return t.visitIsExpression?t.visitIsExpression(this):t.visitChildren(this)}},CH=class extends NH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}expression(){return this.getRuleContext(0,NH)}NOT(){return this.getToken(FC.NOT,0)}EXCLAMATION_SYMBOL(){return this.getToken(FC.EXCLAMATION_SYMBOL,0)}accept(t){return t.visitNotExpression?t.visitNotExpression(this):t.visitChildren(this)}},_H=class extends NH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}expression(t){return void 0===t?this.getRuleContexts(NH):this.getRuleContext(t,NH)}logicalOperator(){return this.getRuleContext(0,tG)}accept(t){return t.visitLogicalExpression?t.visitLogicalExpression(this):t.visitChildren(this)}},PH=class extends NH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}predicate(){return this.getRuleContext(0,MH)}accept(t){return t.visitPredicateExpression?t.visitPredicateExpression(this):t.visitChildren(this)}},MH=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_predicate}copyFrom(t){super.copyFrom(t)}},dH=class extends MH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}predicate(t){return void 0===t?this.getRuleContexts(MH):this.getRuleContext(t,MH)}SOUNDS(){return this.getToken(FC.SOUNDS,0)}LIKE(){return this.getToken(FC.LIKE,0)}accept(t){return t.visitSoundsLikePredicate?t.visitSoundsLikePredicate(this):t.visitChildren(this)}},UH=class extends MH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}expressionAtom(){return this.getRuleContext(0,FH)}accept(t){return t.visitExpressionAtomPredicate?t.visitExpressionAtomPredicate(this):t.visitChildren(this)}},mH=class extends MH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}predicate(){return this.getRuleContext(0,MH)}comparisonOperator(){return this.getRuleContext(0,$H)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}selectStatement(){return this.getRuleContext(0,rU)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}ALL(){return this.getToken(FC.ALL,0)}ANY(){return this.getToken(FC.ANY,0)}SOME(){return this.getToken(FC.SOME,0)}accept(t){return t.visitSubqueryComparisonPredicate?t.visitSubqueryComparisonPredicate(this):t.visitChildren(this)}},DH=class extends MH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}predicate(t){return void 0===t?this.getRuleContexts(MH):this.getRuleContext(t,MH)}MEMBER(){return this.getToken(FC.MEMBER,0)}OF(){return this.getToken(FC.OF,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}accept(t){return t.visitJsonMemberOfPredicate?t.visitJsonMemberOfPredicate(this):t.visitChildren(this)}},pH=class extends MH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}comparisonOperator(){return this.getRuleContext(0,$H)}predicate(t){return void 0===t?this.getRuleContexts(MH):this.getRuleContext(t,MH)}accept(t){return t.visitBinaryComparisonPredicate?t.visitBinaryComparisonPredicate(this):t.visitChildren(this)}},gH=class extends MH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}predicate(){return this.getRuleContext(0,MH)}IN(){return this.getToken(FC.IN,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}selectStatement(){return this.getRuleContext(0,rU)}expressions(){return this.getRuleContext(0,Nk)}NOT(){return this.getToken(FC.NOT,0)}accept(t){return t.visitInPredicate?t.visitInPredicate(this):t.visitChildren(this)}},xH=class extends MH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}predicate(t){return void 0===t?this.getRuleContexts(MH):this.getRuleContext(t,MH)}BETWEEN(){return this.getToken(FC.BETWEEN,0)}AND(){return this.getToken(FC.AND,0)}NOT(){return this.getToken(FC.NOT,0)}accept(t){return t.visitBetweenPredicate?t.visitBetweenPredicate(this):t.visitChildren(this)}},kH=class extends MH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}predicate(){return this.getRuleContext(0,MH)}IS(){return this.getToken(FC.IS,0)}nullNotnull(){return this.getRuleContext(0,zx)}accept(t){return t.visitIsNullPredicate?t.visitIsNullPredicate(this):t.visitChildren(this)}},HH=class extends MH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}predicate(t){return void 0===t?this.getRuleContexts(MH):this.getRuleContext(t,MH)}LIKE(){return this.getToken(FC.LIKE,0)}NOT(){return this.getToken(FC.NOT,0)}ESCAPE(){return this.getToken(FC.ESCAPE,0)}STRING_LITERAL(){return this.getToken(FC.STRING_LITERAL,0)}accept(t){return t.visitLikePredicate?t.visitLikePredicate(this):t.visitChildren(this)}},GH=class extends MH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}predicate(t){return void 0===t?this.getRuleContexts(MH):this.getRuleContext(t,MH)}REGEXP(){return this.getToken(FC.REGEXP,0)}RLIKE(){return this.getToken(FC.RLIKE,0)}NOT(){return this.getToken(FC.NOT,0)}accept(t){return t.visitRegexpPredicate?t.visitRegexpPredicate(this):t.visitChildren(this)}},FH=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return FC.RULE_expressionAtom}copyFrom(t){super.copyFrom(t)}},vH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}unaryOperator(){return this.getRuleContext(0,zH)}expressionAtom(){return this.getRuleContext(0,FH)}accept(t){return t.visitUnaryExpressionAtom?t.visitUnaryExpressionAtom(this):t.visitChildren(this)}},BH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}expressionAtom(){return this.getRuleContext(0,FH)}COLLATE(){return this.getToken(FC.COLLATE,0)}collationName(){return this.getRuleContext(0,Bx)}accept(t){return t.visitCollateExpressionAtom?t.visitCollateExpressionAtom(this):t.visitChildren(this)}},yH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LOCAL_ID(){return this.getToken(FC.LOCAL_ID,0)}VAR_ASSIGN(){return this.getToken(FC.VAR_ASSIGN,0)}expressionAtom(){return this.getRuleContext(0,FH)}accept(t){return t.visitVariableAssignExpressionAtom?t.visitVariableAssignExpressionAtom(this):t.visitChildren(this)}},fH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}mysqlVariable(){return this.getRuleContext(0,Fx)}accept(t){return t.visitMysqlVariableExpressionAtom?t.visitMysqlVariableExpressionAtom(this):t.visitChildren(this)}},YH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(t){return void 0===t?this.getRuleContexts(NH):this.getRuleContext(t,NH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitNestedExpressionAtom?t.visitNestedExpressionAtom(this):t.visitChildren(this)}},wH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ROW(){return this.getToken(FC.ROW,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}expression(t){return void 0===t?this.getRuleContexts(NH):this.getRuleContext(t,NH)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}COMMA(t){return void 0===t?this.getTokens(FC.COMMA):this.getToken(FC.COMMA,t)}accept(t){return t.visitNestedRowExpressionAtom?t.visitNestedRowExpressionAtom(this):t.visitChildren(this)}},bH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}multOperator(){return this.getRuleContext(0,sG)}expressionAtom(t){return void 0===t?this.getRuleContexts(FH):this.getRuleContext(t,FH)}addOperator(){return this.getRuleContext(0,aG)}accept(t){return t.visitMathExpressionAtom?t.visitMathExpressionAtom(this):t.visitChildren(this)}},WH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}EXISTS(){return this.getToken(FC.EXISTS,0)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}selectStatement(){return this.getRuleContext(0,rU)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}accept(t){return t.visitExistsExpressionAtom?t.visitExistsExpressionAtom(this):t.visitChildren(this)}},VH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}INTERVAL(){return this.getToken(FC.INTERVAL,0)}expression(){return this.getRuleContext(0,NH)}intervalType(){return this.getRuleContext(0,__)}accept(t){return t.visitIntervalExpressionAtom?t.visitIntervalExpressionAtom(this):t.visitChildren(this)}},XH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}jsonOperator(){return this.getRuleContext(0,rG)}expressionAtom(t){return void 0===t?this.getRuleContexts(FH):this.getRuleContext(t,FH)}accept(t){return t.visitJsonExpressionAtom?t.visitJsonExpressionAtom(this):t.visitChildren(this)}},KH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LR_BRACKET(){return this.getToken(FC.LR_BRACKET,0)}selectStatement(){return this.getRuleContext(0,rU)}RR_BRACKET(){return this.getToken(FC.RR_BRACKET,0)}accept(t){return t.visitSubqueryExpressionAtom?t.visitSubqueryExpressionAtom(this):t.visitChildren(this)}},QH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}constant(){return this.getRuleContext(0,$x)}accept(t){return t.visitConstantExpressionAtom?t.visitConstantExpressionAtom(this):t.visitChildren(this)}},JH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}functionCall(){return this.getRuleContext(0,xk)}accept(t){return t.visitFunctionCallExpressionAtom?t.visitFunctionCallExpressionAtom(this):t.visitChildren(this)}},ZH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}BINARY(){return this.getToken(FC.BINARY,0)}expressionAtom(){return this.getRuleContext(0,FH)}accept(t){return t.visitBinaryExpressionAtom?t.visitBinaryExpressionAtom(this):t.visitChildren(this)}},qH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}fullColumnName(){return this.getRuleContext(0,Px)}accept(t){return t.visitFullColumnNameExpressionAtom?t.visitFullColumnNameExpressionAtom(this):t.visitChildren(this)}},jH=class extends FH{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}bitOperator(){return this.getRuleContext(0,eG)}expressionAtom(t){return void 0===t?this.getRuleContexts(FH):this.getRuleContext(t,FH)}accept(t){return t.visitBitExpressionAtom?t.visitBitExpressionAtom(this):t.visitChildren(this)}},zH=class extends ga{constructor(t,e){super(t,e)}EXCLAMATION_SYMBOL(){return this.getToken(FC.EXCLAMATION_SYMBOL,0)}BIT_NOT_OP(){return this.getToken(FC.BIT_NOT_OP,0)}PLUS(){return this.getToken(FC.PLUS,0)}MINUS(){return this.getToken(FC.MINUS,0)}NOT(){return this.getToken(FC.NOT,0)}get ruleIndex(){return FC.RULE_unaryOperator}accept(t){return t.visitUnaryOperator?t.visitUnaryOperator(this):t.visitChildren(this)}},$H=class extends ga{constructor(t,e){super(t,e)}EQUAL_SYMBOL(){return this.getToken(FC.EQUAL_SYMBOL,0)}GREATER_SYMBOL(){return this.getToken(FC.GREATER_SYMBOL,0)}LESS_SYMBOL(){return this.getToken(FC.LESS_SYMBOL,0)}EXCLAMATION_SYMBOL(){return this.getToken(FC.EXCLAMATION_SYMBOL,0)}get ruleIndex(){return FC.RULE_comparisonOperator}accept(t){return t.visitComparisonOperator?t.visitComparisonOperator(this):t.visitChildren(this)}},tG=class extends ga{constructor(t,e){super(t,e)}AND(){return this.getToken(FC.AND,0)}BIT_AND_OP(t){return void 0===t?this.getTokens(FC.BIT_AND_OP):this.getToken(FC.BIT_AND_OP,t)}XOR(){return this.getToken(FC.XOR,0)}OR(){return this.getToken(FC.OR,0)}BIT_OR_OP(t){return void 0===t?this.getTokens(FC.BIT_OR_OP):this.getToken(FC.BIT_OR_OP,t)}get ruleIndex(){return FC.RULE_logicalOperator}accept(t){return t.visitLogicalOperator?t.visitLogicalOperator(this):t.visitChildren(this)}},eG=class extends ga{constructor(t,e){super(t,e)}LESS_SYMBOL(t){return void 0===t?this.getTokens(FC.LESS_SYMBOL):this.getToken(FC.LESS_SYMBOL,t)}GREATER_SYMBOL(t){return void 0===t?this.getTokens(FC.GREATER_SYMBOL):this.getToken(FC.GREATER_SYMBOL,t)}BIT_AND_OP(){return this.getToken(FC.BIT_AND_OP,0)}BIT_XOR_OP(){return this.getToken(FC.BIT_XOR_OP,0)}BIT_OR_OP(){return this.getToken(FC.BIT_OR_OP,0)}get ruleIndex(){return FC.RULE_bitOperator}accept(t){return t.visitBitOperator?t.visitBitOperator(this):t.visitChildren(this)}},sG=class extends ga{constructor(t,e){super(t,e)}STAR(){return this.getToken(FC.STAR,0)}DIVIDE(){return this.getToken(FC.DIVIDE,0)}MODULE(){return this.getToken(FC.MODULE,0)}DIV(){return this.getToken(FC.DIV,0)}MOD(){return this.getToken(FC.MOD,0)}get ruleIndex(){return FC.RULE_multOperator}accept(t){return t.visitMultOperator?t.visitMultOperator(this):t.visitChildren(this)}},aG=class extends ga{constructor(t,e){super(t,e)}PLUS(){return this.getToken(FC.PLUS,0)}MINUS(){return this.getToken(FC.MINUS,0)}get ruleIndex(){return FC.RULE_addOperator}accept(t){return t.visitAddOperator?t.visitAddOperator(this):t.visitChildren(this)}},rG=class extends ga{constructor(t,e){super(t,e)}MINUS(){return this.getToken(FC.MINUS,0)}GREATER_SYMBOL(t){return void 0===t?this.getTokens(FC.GREATER_SYMBOL):this.getToken(FC.GREATER_SYMBOL,t)}get ruleIndex(){return FC.RULE_jsonOperator}accept(t){return t.visitJsonOperator?t.visitJsonOperator(this):t.visitChildren(this)}},iG=class extends ga{constructor(t,e){super(t,e)}ARMSCII8(){return this.getToken(FC.ARMSCII8,0)}ASCII(){return this.getToken(FC.ASCII,0)}BIG5(){return this.getToken(FC.BIG5,0)}BINARY(){return this.getToken(FC.BINARY,0)}CP1250(){return this.getToken(FC.CP1250,0)}CP1251(){return this.getToken(FC.CP1251,0)}CP1256(){return this.getToken(FC.CP1256,0)}CP1257(){return this.getToken(FC.CP1257,0)}CP850(){return this.getToken(FC.CP850,0)}CP852(){return this.getToken(FC.CP852,0)}CP866(){return this.getToken(FC.CP866,0)}CP932(){return this.getToken(FC.CP932,0)}DEC8(){return this.getToken(FC.DEC8,0)}EUCJPMS(){return this.getToken(FC.EUCJPMS,0)}EUCKR(){return this.getToken(FC.EUCKR,0)}GB18030(){return this.getToken(FC.GB18030,0)}GB2312(){return this.getToken(FC.GB2312,0)}GBK(){return this.getToken(FC.GBK,0)}GEOSTD8(){return this.getToken(FC.GEOSTD8,0)}GREEK(){return this.getToken(FC.GREEK,0)}HEBREW(){return this.getToken(FC.HEBREW,0)}HP8(){return this.getToken(FC.HP8,0)}KEYBCS2(){return this.getToken(FC.KEYBCS2,0)}KOI8R(){return this.getToken(FC.KOI8R,0)}KOI8U(){return this.getToken(FC.KOI8U,0)}LATIN1(){return this.getToken(FC.LATIN1,0)}LATIN2(){return this.getToken(FC.LATIN2,0)}LATIN5(){return this.getToken(FC.LATIN5,0)}LATIN7(){return this.getToken(FC.LATIN7,0)}MACCE(){return this.getToken(FC.MACCE,0)}MACROMAN(){return this.getToken(FC.MACROMAN,0)}SJIS(){return this.getToken(FC.SJIS,0)}SWE7(){return this.getToken(FC.SWE7,0)}TIS620(){return this.getToken(FC.TIS620,0)}UCS2(){return this.getToken(FC.UCS2,0)}UJIS(){return this.getToken(FC.UJIS,0)}UTF16(){return this.getToken(FC.UTF16,0)}UTF16LE(){return this.getToken(FC.UTF16LE,0)}UTF32(){return this.getToken(FC.UTF32,0)}UTF8(){return this.getToken(FC.UTF8,0)}UTF8MB3(){return this.getToken(FC.UTF8MB3,0)}UTF8MB4(){return this.getToken(FC.UTF8MB4,0)}get ruleIndex(){return FC.RULE_charsetNameBase}accept(t){return t.visitCharsetNameBase?t.visitCharsetNameBase(this):t.visitChildren(this)}},cG=class extends ga{constructor(t,e){super(t,e)}REPEATABLE(){return this.getToken(FC.REPEATABLE,0)}COMMITTED(){return this.getToken(FC.COMMITTED,0)}UNCOMMITTED(){return this.getToken(FC.UNCOMMITTED,0)}SERIALIZABLE(){return this.getToken(FC.SERIALIZABLE,0)}get ruleIndex(){return FC.RULE_transactionLevelBase}accept(t){return t.visitTransactionLevelBase?t.visitTransactionLevelBase(this):t.visitChildren(this)}},nG=class extends ga{constructor(t,e){super(t,e)}TABLES(){return this.getToken(FC.TABLES,0)}ROUTINE(){return this.getToken(FC.ROUTINE,0)}EXECUTE(){return this.getToken(FC.EXECUTE,0)}FILE(){return this.getToken(FC.FILE,0)}PROCESS(){return this.getToken(FC.PROCESS,0)}RELOAD(){return this.getToken(FC.RELOAD,0)}SHUTDOWN(){return this.getToken(FC.SHUTDOWN,0)}SUPER(){return this.getToken(FC.SUPER,0)}PRIVILEGES(){return this.getToken(FC.PRIVILEGES,0)}get ruleIndex(){return FC.RULE_privilegesBase}accept(t){return t.visitPrivilegesBase?t.visitPrivilegesBase(this):t.visitChildren(this)}},hG=class extends ga{constructor(t,e){super(t,e)}QUARTER(){return this.getToken(FC.QUARTER,0)}MONTH(){return this.getToken(FC.MONTH,0)}DAY(){return this.getToken(FC.DAY,0)}HOUR(){return this.getToken(FC.HOUR,0)}MINUTE(){return this.getToken(FC.MINUTE,0)}WEEK(){return this.getToken(FC.WEEK,0)}SECOND(){return this.getToken(FC.SECOND,0)}MICROSECOND(){return this.getToken(FC.MICROSECOND,0)}get ruleIndex(){return FC.RULE_intervalTypeBase}accept(t){return t.visitIntervalTypeBase?t.visitIntervalTypeBase(this):t.visitChildren(this)}},EG=class extends ga{constructor(t,e){super(t,e)}DATE(){return this.getToken(FC.DATE,0)}TIME(){return this.getToken(FC.TIME,0)}TIMESTAMP(){return this.getToken(FC.TIMESTAMP,0)}DATETIME(){return this.getToken(FC.DATETIME,0)}YEAR(){return this.getToken(FC.YEAR,0)}ENUM(){return this.getToken(FC.ENUM,0)}TEXT(){return this.getToken(FC.TEXT,0)}get ruleIndex(){return FC.RULE_dataTypeBase}accept(t){return t.visitDataTypeBase?t.visitDataTypeBase(this):t.visitChildren(this)}},TG=class extends ga{constructor(t,e){super(t,e)}ACCOUNT(){return this.getToken(FC.ACCOUNT,0)}ACTION(){return this.getToken(FC.ACTION,0)}ADMIN(){return this.getToken(FC.ADMIN,0)}AFTER(){return this.getToken(FC.AFTER,0)}AGGREGATE(){return this.getToken(FC.AGGREGATE,0)}ALGORITHM(){return this.getToken(FC.ALGORITHM,0)}ANY(){return this.getToken(FC.ANY,0)}ARRAY(){return this.getToken(FC.ARRAY,0)}AT(){return this.getToken(FC.AT,0)}AUDIT_ADMIN(){return this.getToken(FC.AUDIT_ADMIN,0)}AUDIT_ABORT_EXEMPT(){return this.getToken(FC.AUDIT_ABORT_EXEMPT,0)}AUTHORS(){return this.getToken(FC.AUTHORS,0)}AUTOCOMMIT(){return this.getToken(FC.AUTOCOMMIT,0)}AUTOEXTEND_SIZE(){return this.getToken(FC.AUTOEXTEND_SIZE,0)}AUTO_INCREMENT(){return this.getToken(FC.AUTO_INCREMENT,0)}AUTHENTICATION_POLICY_ADMIN(){return this.getToken(FC.AUTHENTICATION_POLICY_ADMIN,0)}AVG(){return this.getToken(FC.AVG,0)}AVG_ROW_LENGTH(){return this.getToken(FC.AVG_ROW_LENGTH,0)}ATTRIBUTE(){return this.getToken(FC.ATTRIBUTE,0)}BACKUP_ADMIN(){return this.getToken(FC.BACKUP_ADMIN,0)}BEGIN(){return this.getToken(FC.BEGIN,0)}BINLOG(){return this.getToken(FC.BINLOG,0)}BINLOG_ADMIN(){return this.getToken(FC.BINLOG_ADMIN,0)}BINLOG_ENCRYPTION_ADMIN(){return this.getToken(FC.BINLOG_ENCRYPTION_ADMIN,0)}BIT(){return this.getToken(FC.BIT,0)}BIT_AND(){return this.getToken(FC.BIT_AND,0)}BIT_OR(){return this.getToken(FC.BIT_OR,0)}BIT_XOR(){return this.getToken(FC.BIT_XOR,0)}BLOCK(){return this.getToken(FC.BLOCK,0)}BOOL(){return this.getToken(FC.BOOL,0)}BOOLEAN(){return this.getToken(FC.BOOLEAN,0)}BTREE(){return this.getToken(FC.BTREE,0)}BUCKETS(){return this.getToken(FC.BUCKETS,0)}CACHE(){return this.getToken(FC.CACHE,0)}CASCADED(){return this.getToken(FC.CASCADED,0)}CHAIN(){return this.getToken(FC.CHAIN,0)}CHANGED(){return this.getToken(FC.CHANGED,0)}CHANNEL(){return this.getToken(FC.CHANNEL,0)}CHECKSUM(){return this.getToken(FC.CHECKSUM,0)}PAGE_CHECKSUM(){return this.getToken(FC.PAGE_CHECKSUM,0)}CATALOG_NAME(){return this.getToken(FC.CATALOG_NAME,0)}CIPHER(){return this.getToken(FC.CIPHER,0)}CLASS_ORIGIN(){return this.getToken(FC.CLASS_ORIGIN,0)}CLIENT(){return this.getToken(FC.CLIENT,0)}CLONE_ADMIN(){return this.getToken(FC.CLONE_ADMIN,0)}CLOSE(){return this.getToken(FC.CLOSE,0)}CLUSTERING(){return this.getToken(FC.CLUSTERING,0)}COALESCE(){return this.getToken(FC.COALESCE,0)}CODE(){return this.getToken(FC.CODE,0)}COLUMNS(){return this.getToken(FC.COLUMNS,0)}COLUMN_FORMAT(){return this.getToken(FC.COLUMN_FORMAT,0)}COLUMN_NAME(){return this.getToken(FC.COLUMN_NAME,0)}COMMENT(){return this.getToken(FC.COMMENT,0)}COMMIT(){return this.getToken(FC.COMMIT,0)}COMPACT(){return this.getToken(FC.COMPACT,0)}COMPLETION(){return this.getToken(FC.COMPLETION,0)}COMPRESSED(){return this.getToken(FC.COMPRESSED,0)}COMPRESSION(){return this.getToken(FC.COMPRESSION,0)}CONCURRENT(){return this.getToken(FC.CONCURRENT,0)}CONDITION(){return this.getToken(FC.CONDITION,0)}CONNECT(){return this.getToken(FC.CONNECT,0)}CONNECTION(){return this.getToken(FC.CONNECTION,0)}CONNECTION_ADMIN(){return this.getToken(FC.CONNECTION_ADMIN,0)}CONSISTENT(){return this.getToken(FC.CONSISTENT,0)}CONSTRAINT_CATALOG(){return this.getToken(FC.CONSTRAINT_CATALOG,0)}CONSTRAINT_NAME(){return this.getToken(FC.CONSTRAINT_NAME,0)}CONSTRAINT_SCHEMA(){return this.getToken(FC.CONSTRAINT_SCHEMA,0)}CONTAINS(){return this.getToken(FC.CONTAINS,0)}CONTEXT(){return this.getToken(FC.CONTEXT,0)}CONTRIBUTORS(){return this.getToken(FC.CONTRIBUTORS,0)}COPY(){return this.getToken(FC.COPY,0)}COUNT(){return this.getToken(FC.COUNT,0)}CPU(){return this.getToken(FC.CPU,0)}CURRENT(){return this.getToken(FC.CURRENT,0)}CURRENT_USER(){return this.getToken(FC.CURRENT_USER,0)}CURSOR_NAME(){return this.getToken(FC.CURSOR_NAME,0)}DATA(){return this.getToken(FC.DATA,0)}DATAFILE(){return this.getToken(FC.DATAFILE,0)}DEALLOCATE(){return this.getToken(FC.DEALLOCATE,0)}DEFAULT(){return this.getToken(FC.DEFAULT,0)}DEFAULT_AUTH(){return this.getToken(FC.DEFAULT_AUTH,0)}DEFINER(){return this.getToken(FC.DEFINER,0)}DELAY_KEY_WRITE(){return this.getToken(FC.DELAY_KEY_WRITE,0)}DES_KEY_FILE(){return this.getToken(FC.DES_KEY_FILE,0)}DIAGNOSTICS(){return this.getToken(FC.DIAGNOSTICS,0)}DIRECTORY(){return this.getToken(FC.DIRECTORY,0)}DISABLE(){return this.getToken(FC.DISABLE,0)}DISCARD(){return this.getToken(FC.DISCARD,0)}DISK(){return this.getToken(FC.DISK,0)}DO(){return this.getToken(FC.DO,0)}DUMPFILE(){return this.getToken(FC.DUMPFILE,0)}DUPLICATE(){return this.getToken(FC.DUPLICATE,0)}DYNAMIC(){return this.getToken(FC.DYNAMIC,0)}EMPTY(){return this.getToken(FC.EMPTY,0)}ENABLE(){return this.getToken(FC.ENABLE,0)}ENCRYPTION(){return this.getToken(FC.ENCRYPTION,0)}ENCRYPTION_KEY_ADMIN(){return this.getToken(FC.ENCRYPTION_KEY_ADMIN,0)}END(){return this.getToken(FC.END,0)}ENDS(){return this.getToken(FC.ENDS,0)}ENGINE(){return this.getToken(FC.ENGINE,0)}ENGINE_ATTRIBUTE(){return this.getToken(FC.ENGINE_ATTRIBUTE,0)}ENGINES(){return this.getToken(FC.ENGINES,0)}ENFORCED(){return this.getToken(FC.ENFORCED,0)}ERROR(){return this.getToken(FC.ERROR,0)}ERRORS(){return this.getToken(FC.ERRORS,0)}ESCAPE(){return this.getToken(FC.ESCAPE,0)}EUR(){return this.getToken(FC.EUR,0)}EVEN(){return this.getToken(FC.EVEN,0)}EVENT(){return this.getToken(FC.EVENT,0)}EVENTS(){return this.getToken(FC.EVENTS,0)}EVERY(){return this.getToken(FC.EVERY,0)}EXCEPT(){return this.getToken(FC.EXCEPT,0)}EXCHANGE(){return this.getToken(FC.EXCHANGE,0)}EXCLUSIVE(){return this.getToken(FC.EXCLUSIVE,0)}EXPIRE(){return this.getToken(FC.EXPIRE,0)}EXPORT(){return this.getToken(FC.EXPORT,0)}EXTENDED(){return this.getToken(FC.EXTENDED,0)}EXTENT_SIZE(){return this.getToken(FC.EXTENT_SIZE,0)}FAILED_LOGIN_ATTEMPTS(){return this.getToken(FC.FAILED_LOGIN_ATTEMPTS,0)}FAST(){return this.getToken(FC.FAST,0)}FAULTS(){return this.getToken(FC.FAULTS,0)}FIELDS(){return this.getToken(FC.FIELDS,0)}FILE_BLOCK_SIZE(){return this.getToken(FC.FILE_BLOCK_SIZE,0)}FILTER(){return this.getToken(FC.FILTER,0)}FIREWALL_ADMIN(){return this.getToken(FC.FIREWALL_ADMIN,0)}FIREWALL_EXEMPT(){return this.getToken(FC.FIREWALL_EXEMPT,0)}FIREWALL_USER(){return this.getToken(FC.FIREWALL_USER,0)}FIRST(){return this.getToken(FC.FIRST,0)}FIXED(){return this.getToken(FC.FIXED,0)}FLUSH(){return this.getToken(FC.FLUSH,0)}FOLLOWS(){return this.getToken(FC.FOLLOWS,0)}FOUND(){return this.getToken(FC.FOUND,0)}FULL(){return this.getToken(FC.FULL,0)}FUNCTION(){return this.getToken(FC.FUNCTION,0)}GENERAL(){return this.getToken(FC.GENERAL,0)}GLOBAL(){return this.getToken(FC.GLOBAL,0)}GRANTS(){return this.getToken(FC.GRANTS,0)}GROUP(){return this.getToken(FC.GROUP,0)}GROUP_CONCAT(){return this.getToken(FC.GROUP_CONCAT,0)}GROUP_REPLICATION(){return this.getToken(FC.GROUP_REPLICATION,0)}GROUP_REPLICATION_ADMIN(){return this.getToken(FC.GROUP_REPLICATION_ADMIN,0)}HANDLER(){return this.getToken(FC.HANDLER,0)}HASH(){return this.getToken(FC.HASH,0)}HELP(){return this.getToken(FC.HELP,0)}HISTORY(){return this.getToken(FC.HISTORY,0)}HOST(){return this.getToken(FC.HOST,0)}HOSTS(){return this.getToken(FC.HOSTS,0)}IDENTIFIED(){return this.getToken(FC.IDENTIFIED,0)}IGNORED(){return this.getToken(FC.IGNORED,0)}IGNORE_SERVER_IDS(){return this.getToken(FC.IGNORE_SERVER_IDS,0)}IMPORT(){return this.getToken(FC.IMPORT,0)}INDEXES(){return this.getToken(FC.INDEXES,0)}INITIAL_SIZE(){return this.getToken(FC.INITIAL_SIZE,0)}INNODB_REDO_LOG_ARCHIVE(){return this.getToken(FC.INNODB_REDO_LOG_ARCHIVE,0)}INPLACE(){return this.getToken(FC.INPLACE,0)}INSERT_METHOD(){return this.getToken(FC.INSERT_METHOD,0)}INSTALL(){return this.getToken(FC.INSTALL,0)}INSTANCE(){return this.getToken(FC.INSTANCE,0)}INSTANT(){return this.getToken(FC.INSTANT,0)}INTERNAL(){return this.getToken(FC.INTERNAL,0)}INVOKE(){return this.getToken(FC.INVOKE,0)}INVOKER(){return this.getToken(FC.INVOKER,0)}IO(){return this.getToken(FC.IO,0)}IO_THREAD(){return this.getToken(FC.IO_THREAD,0)}IPC(){return this.getToken(FC.IPC,0)}ISO(){return this.getToken(FC.ISO,0)}ISOLATION(){return this.getToken(FC.ISOLATION,0)}ISSUER(){return this.getToken(FC.ISSUER,0)}JIS(){return this.getToken(FC.JIS,0)}JSON(){return this.getToken(FC.JSON,0)}KEY_BLOCK_SIZE(){return this.getToken(FC.KEY_BLOCK_SIZE,0)}LAMBDA(){return this.getToken(FC.LAMBDA,0)}LANGUAGE(){return this.getToken(FC.LANGUAGE,0)}LAST(){return this.getToken(FC.LAST,0)}LATERAL(){return this.getToken(FC.LATERAL,0)}LEAVES(){return this.getToken(FC.LEAVES,0)}LESS(){return this.getToken(FC.LESS,0)}LEVEL(){return this.getToken(FC.LEVEL,0)}LIST(){return this.getToken(FC.LIST,0)}LOCAL(){return this.getToken(FC.LOCAL,0)}LOGFILE(){return this.getToken(FC.LOGFILE,0)}LOGS(){return this.getToken(FC.LOGS,0)}MASTER(){return this.getToken(FC.MASTER,0)}MASTER_AUTO_POSITION(){return this.getToken(FC.MASTER_AUTO_POSITION,0)}MASTER_CONNECT_RETRY(){return this.getToken(FC.MASTER_CONNECT_RETRY,0)}MASTER_DELAY(){return this.getToken(FC.MASTER_DELAY,0)}MASTER_HEARTBEAT_PERIOD(){return this.getToken(FC.MASTER_HEARTBEAT_PERIOD,0)}MASTER_HOST(){return this.getToken(FC.MASTER_HOST,0)}MASTER_LOG_FILE(){return this.getToken(FC.MASTER_LOG_FILE,0)}MASTER_LOG_POS(){return this.getToken(FC.MASTER_LOG_POS,0)}MASTER_PASSWORD(){return this.getToken(FC.MASTER_PASSWORD,0)}MASTER_PORT(){return this.getToken(FC.MASTER_PORT,0)}MASTER_RETRY_COUNT(){return this.getToken(FC.MASTER_RETRY_COUNT,0)}MASTER_SSL(){return this.getToken(FC.MASTER_SSL,0)}MASTER_SSL_CA(){return this.getToken(FC.MASTER_SSL_CA,0)}MASTER_SSL_CAPATH(){return this.getToken(FC.MASTER_SSL_CAPATH,0)}MASTER_SSL_CERT(){return this.getToken(FC.MASTER_SSL_CERT,0)}MASTER_SSL_CIPHER(){return this.getToken(FC.MASTER_SSL_CIPHER,0)}MASTER_SSL_CRL(){return this.getToken(FC.MASTER_SSL_CRL,0)}MASTER_SSL_CRLPATH(){return this.getToken(FC.MASTER_SSL_CRLPATH,0)}MASTER_SSL_KEY(){return this.getToken(FC.MASTER_SSL_KEY,0)}MASTER_TLS_VERSION(){return this.getToken(FC.MASTER_TLS_VERSION,0)}MASTER_USER(){return this.getToken(FC.MASTER_USER,0)}MAX_CONNECTIONS_PER_HOUR(){return this.getToken(FC.MAX_CONNECTIONS_PER_HOUR,0)}MAX_QUERIES_PER_HOUR(){return this.getToken(FC.MAX_QUERIES_PER_HOUR,0)}MAX(){return this.getToken(FC.MAX,0)}MAX_ROWS(){return this.getToken(FC.MAX_ROWS,0)}MAX_SIZE(){return this.getToken(FC.MAX_SIZE,0)}MAX_UPDATES_PER_HOUR(){return this.getToken(FC.MAX_UPDATES_PER_HOUR,0)}MAX_USER_CONNECTIONS(){return this.getToken(FC.MAX_USER_CONNECTIONS,0)}MEDIUM(){return this.getToken(FC.MEDIUM,0)}MEMBER(){return this.getToken(FC.MEMBER,0)}MEMORY(){return this.getToken(FC.MEMORY,0)}MERGE(){return this.getToken(FC.MERGE,0)}MESSAGE_TEXT(){return this.getToken(FC.MESSAGE_TEXT,0)}MID(){return this.getToken(FC.MID,0)}MIGRATE(){return this.getToken(FC.MIGRATE,0)}MIN(){return this.getToken(FC.MIN,0)}MIN_ROWS(){return this.getToken(FC.MIN_ROWS,0)}MODE(){return this.getToken(FC.MODE,0)}MODIFY(){return this.getToken(FC.MODIFY,0)}MUTEX(){return this.getToken(FC.MUTEX,0)}MYSQL(){return this.getToken(FC.MYSQL,0)}MYSQL_ERRNO(){return this.getToken(FC.MYSQL_ERRNO,0)}NAME(){return this.getToken(FC.NAME,0)}NAMES(){return this.getToken(FC.NAMES,0)}NCHAR(){return this.getToken(FC.NCHAR,0)}NDB_STORED_USER(){return this.getToken(FC.NDB_STORED_USER,0)}NESTED(){return this.getToken(FC.NESTED,0)}NEVER(){return this.getToken(FC.NEVER,0)}NEXT(){return this.getToken(FC.NEXT,0)}NO(){return this.getToken(FC.NO,0)}NOCOPY(){return this.getToken(FC.NOCOPY,0)}NODEGROUP(){return this.getToken(FC.NODEGROUP,0)}NONE(){return this.getToken(FC.NONE,0)}NOWAIT(){return this.getToken(FC.NOWAIT,0)}NUMBER(){return this.getToken(FC.NUMBER,0)}ODBC(){return this.getToken(FC.ODBC,0)}OFFLINE(){return this.getToken(FC.OFFLINE,0)}OFFSET(){return this.getToken(FC.OFFSET,0)}OF(){return this.getToken(FC.OF,0)}OJ(){return this.getToken(FC.OJ,0)}OLD_PASSWORD(){return this.getToken(FC.OLD_PASSWORD,0)}ONE(){return this.getToken(FC.ONE,0)}ONLINE(){return this.getToken(FC.ONLINE,0)}ONLY(){return this.getToken(FC.ONLY,0)}OPEN(){return this.getToken(FC.OPEN,0)}OPTIMIZER_COSTS(){return this.getToken(FC.OPTIMIZER_COSTS,0)}OPTIONAL(){return this.getToken(FC.OPTIONAL,0)}OPTIONS(){return this.getToken(FC.OPTIONS,0)}ORDER(){return this.getToken(FC.ORDER,0)}ORDINALITY(){return this.getToken(FC.ORDINALITY,0)}OWNER(){return this.getToken(FC.OWNER,0)}PACK_KEYS(){return this.getToken(FC.PACK_KEYS,0)}PAGE(){return this.getToken(FC.PAGE,0)}PARSER(){return this.getToken(FC.PARSER,0)}PARTIAL(){return this.getToken(FC.PARTIAL,0)}PARTITIONING(){return this.getToken(FC.PARTITIONING,0)}PARTITIONS(){return this.getToken(FC.PARTITIONS,0)}PASSWORD(){return this.getToken(FC.PASSWORD,0)}PASSWORDLESS_USER_ADMIN(){return this.getToken(FC.PASSWORDLESS_USER_ADMIN,0)}PASSWORD_LOCK_TIME(){return this.getToken(FC.PASSWORD_LOCK_TIME,0)}PATH(){return this.getToken(FC.PATH,0)}PERSIST_RO_VARIABLES_ADMIN(){return this.getToken(FC.PERSIST_RO_VARIABLES_ADMIN,0)}PHASE(){return this.getToken(FC.PHASE,0)}PLUGINS(){return this.getToken(FC.PLUGINS,0)}PLUGIN_DIR(){return this.getToken(FC.PLUGIN_DIR,0)}PLUGIN(){return this.getToken(FC.PLUGIN,0)}PORT(){return this.getToken(FC.PORT,0)}PRECEDES(){return this.getToken(FC.PRECEDES,0)}PREPARE(){return this.getToken(FC.PREPARE,0)}PRESERVE(){return this.getToken(FC.PRESERVE,0)}PREV(){return this.getToken(FC.PREV,0)}PRIMARY(){return this.getToken(FC.PRIMARY,0)}PROCESSLIST(){return this.getToken(FC.PROCESSLIST,0)}PROFILE(){return this.getToken(FC.PROFILE,0)}PROFILES(){return this.getToken(FC.PROFILES,0)}PROXY(){return this.getToken(FC.PROXY,0)}QUERY(){return this.getToken(FC.QUERY,0)}QUICK(){return this.getToken(FC.QUICK,0)}REBUILD(){return this.getToken(FC.REBUILD,0)}RECOVER(){return this.getToken(FC.RECOVER,0)}RECURSIVE(){return this.getToken(FC.RECURSIVE,0)}REDO_BUFFER_SIZE(){return this.getToken(FC.REDO_BUFFER_SIZE,0)}REDUNDANT(){return this.getToken(FC.REDUNDANT,0)}RELAY(){return this.getToken(FC.RELAY,0)}RELAYLOG(){return this.getToken(FC.RELAYLOG,0)}RELAY_LOG_FILE(){return this.getToken(FC.RELAY_LOG_FILE,0)}RELAY_LOG_POS(){return this.getToken(FC.RELAY_LOG_POS,0)}REMOVE(){return this.getToken(FC.REMOVE,0)}REORGANIZE(){return this.getToken(FC.REORGANIZE,0)}REPAIR(){return this.getToken(FC.REPAIR,0)}REPLICATE_DO_DB(){return this.getToken(FC.REPLICATE_DO_DB,0)}REPLICATE_DO_TABLE(){return this.getToken(FC.REPLICATE_DO_TABLE,0)}REPLICATE_IGNORE_DB(){return this.getToken(FC.REPLICATE_IGNORE_DB,0)}REPLICATE_IGNORE_TABLE(){return this.getToken(FC.REPLICATE_IGNORE_TABLE,0)}REPLICATE_REWRITE_DB(){return this.getToken(FC.REPLICATE_REWRITE_DB,0)}REPLICATE_WILD_DO_TABLE(){return this.getToken(FC.REPLICATE_WILD_DO_TABLE,0)}REPLICATE_WILD_IGNORE_TABLE(){return this.getToken(FC.REPLICATE_WILD_IGNORE_TABLE,0)}REPLICATION(){return this.getToken(FC.REPLICATION,0)}REPLICATION_APPLIER(){return this.getToken(FC.REPLICATION_APPLIER,0)}REPLICATION_SLAVE_ADMIN(){return this.getToken(FC.REPLICATION_SLAVE_ADMIN,0)}RESET(){return this.getToken(FC.RESET,0)}RESOURCE_GROUP_ADMIN(){return this.getToken(FC.RESOURCE_GROUP_ADMIN,0)}RESOURCE_GROUP_USER(){return this.getToken(FC.RESOURCE_GROUP_USER,0)}RESUME(){return this.getToken(FC.RESUME,0)}RETURNED_SQLSTATE(){return this.getToken(FC.RETURNED_SQLSTATE,0)}RETURNS(){return this.getToken(FC.RETURNS,0)}REUSE(){return this.getToken(FC.REUSE,0)}ROLE(){return this.getToken(FC.ROLE,0)}ROLE_ADMIN(){return this.getToken(FC.ROLE_ADMIN,0)}ROLLBACK(){return this.getToken(FC.ROLLBACK,0)}ROLLUP(){return this.getToken(FC.ROLLUP,0)}ROTATE(){return this.getToken(FC.ROTATE,0)}ROW(){return this.getToken(FC.ROW,0)}ROWS(){return this.getToken(FC.ROWS,0)}ROW_FORMAT(){return this.getToken(FC.ROW_FORMAT,0)}RTREE(){return this.getToken(FC.RTREE,0)}S3(){return this.getToken(FC.S3,0)}SAVEPOINT(){return this.getToken(FC.SAVEPOINT,0)}SCHEDULE(){return this.getToken(FC.SCHEDULE,0)}SCHEMA_NAME(){return this.getToken(FC.SCHEMA_NAME,0)}SECURITY(){return this.getToken(FC.SECURITY,0)}SECONDARY_ENGINE_ATTRIBUTE(){return this.getToken(FC.SECONDARY_ENGINE_ATTRIBUTE,0)}SERIAL(){return this.getToken(FC.SERIAL,0)}SERVER(){return this.getToken(FC.SERVER,0)}SESSION(){return this.getToken(FC.SESSION,0)}SESSION_VARIABLES_ADMIN(){return this.getToken(FC.SESSION_VARIABLES_ADMIN,0)}SET_USER_ID(){return this.getToken(FC.SET_USER_ID,0)}SHARE(){return this.getToken(FC.SHARE,0)}SHARED(){return this.getToken(FC.SHARED,0)}SHOW_ROUTINE(){return this.getToken(FC.SHOW_ROUTINE,0)}SIGNED(){return this.getToken(FC.SIGNED,0)}SIMPLE(){return this.getToken(FC.SIMPLE,0)}SLAVE(){return this.getToken(FC.SLAVE,0)}SLOW(){return this.getToken(FC.SLOW,0)}SKIP_QUERY_REWRITE(){return this.getToken(FC.SKIP_QUERY_REWRITE,0)}SNAPSHOT(){return this.getToken(FC.SNAPSHOT,0)}SOCKET(){return this.getToken(FC.SOCKET,0)}SOME(){return this.getToken(FC.SOME,0)}SONAME(){return this.getToken(FC.SONAME,0)}SOUNDS(){return this.getToken(FC.SOUNDS,0)}SOURCE(){return this.getToken(FC.SOURCE,0)}SQL_AFTER_GTIDS(){return this.getToken(FC.SQL_AFTER_GTIDS,0)}SQL_AFTER_MTS_GAPS(){return this.getToken(FC.SQL_AFTER_MTS_GAPS,0)}SQL_BEFORE_GTIDS(){return this.getToken(FC.SQL_BEFORE_GTIDS,0)}SQL_BUFFER_RESULT(){return this.getToken(FC.SQL_BUFFER_RESULT,0)}SQL_CACHE(){return this.getToken(FC.SQL_CACHE,0)}SQL_NO_CACHE(){return this.getToken(FC.SQL_NO_CACHE,0)}SQL_THREAD(){return this.getToken(FC.SQL_THREAD,0)}STACKED(){return this.getToken(FC.STACKED,0)}START(){return this.getToken(FC.START,0)}STARTS(){return this.getToken(FC.STARTS,0)}STATS_AUTO_RECALC(){return this.getToken(FC.STATS_AUTO_RECALC,0)}STATS_PERSISTENT(){return this.getToken(FC.STATS_PERSISTENT,0)}STATS_SAMPLE_PAGES(){return this.getToken(FC.STATS_SAMPLE_PAGES,0)}STATUS(){return this.getToken(FC.STATUS,0)}STD(){return this.getToken(FC.STD,0)}STDDEV(){return this.getToken(FC.STDDEV,0)}STDDEV_POP(){return this.getToken(FC.STDDEV_POP,0)}STDDEV_SAMP(){return this.getToken(FC.STDDEV_SAMP,0)}STOP(){return this.getToken(FC.STOP,0)}STORAGE(){return this.getToken(FC.STORAGE,0)}STRING(){return this.getToken(FC.STRING,0)}SUBCLASS_ORIGIN(){return this.getToken(FC.SUBCLASS_ORIGIN,0)}SUBJECT(){return this.getToken(FC.SUBJECT,0)}SUBPARTITION(){return this.getToken(FC.SUBPARTITION,0)}SUBPARTITIONS(){return this.getToken(FC.SUBPARTITIONS,0)}SUM(){return this.getToken(FC.SUM,0)}SUSPEND(){return this.getToken(FC.SUSPEND,0)}SWAPS(){return this.getToken(FC.SWAPS,0)}SWITCHES(){return this.getToken(FC.SWITCHES,0)}SYSTEM_VARIABLES_ADMIN(){return this.getToken(FC.SYSTEM_VARIABLES_ADMIN,0)}TABLE_NAME(){return this.getToken(FC.TABLE_NAME,0)}TABLESPACE(){return this.getToken(FC.TABLESPACE,0)}TABLE_ENCRYPTION_ADMIN(){return this.getToken(FC.TABLE_ENCRYPTION_ADMIN,0)}TABLE_TYPE(){return this.getToken(FC.TABLE_TYPE,0)}TEMPORARY(){return this.getToken(FC.TEMPORARY,0)}TEMPTABLE(){return this.getToken(FC.TEMPTABLE,0)}THAN(){return this.getToken(FC.THAN,0)}TP_CONNECTION_ADMIN(){return this.getToken(FC.TP_CONNECTION_ADMIN,0)}TRADITIONAL(){return this.getToken(FC.TRADITIONAL,0)}TRANSACTION(){return this.getToken(FC.TRANSACTION,0)}TRANSACTIONAL(){return this.getToken(FC.TRANSACTIONAL,0)}TRIGGERS(){return this.getToken(FC.TRIGGERS,0)}TRUNCATE(){return this.getToken(FC.TRUNCATE,0)}UNBOUNDED(){return this.getToken(FC.UNBOUNDED,0)}UNDEFINED(){return this.getToken(FC.UNDEFINED,0)}UNDOFILE(){return this.getToken(FC.UNDOFILE,0)}UNDO_BUFFER_SIZE(){return this.getToken(FC.UNDO_BUFFER_SIZE,0)}UNINSTALL(){return this.getToken(FC.UNINSTALL,0)}UNKNOWN(){return this.getToken(FC.UNKNOWN,0)}UNTIL(){return this.getToken(FC.UNTIL,0)}UPGRADE(){return this.getToken(FC.UPGRADE,0)}USA(){return this.getToken(FC.USA,0)}USER(){return this.getToken(FC.USER,0)}USE_FRM(){return this.getToken(FC.USE_FRM,0)}USER_RESOURCES(){return this.getToken(FC.USER_RESOURCES,0)}VALIDATION(){return this.getToken(FC.VALIDATION,0)}VALUE(){return this.getToken(FC.VALUE,0)}VAR_POP(){return this.getToken(FC.VAR_POP,0)}VAR_SAMP(){return this.getToken(FC.VAR_SAMP,0)}VARIABLES(){return this.getToken(FC.VARIABLES,0)}VARIANCE(){return this.getToken(FC.VARIANCE,0)}VERSION_TOKEN_ADMIN(){return this.getToken(FC.VERSION_TOKEN_ADMIN,0)}VIEW(){return this.getToken(FC.VIEW,0)}VIRTUAL(){return this.getToken(FC.VIRTUAL,0)}WAIT(){return this.getToken(FC.WAIT,0)}WARNINGS(){return this.getToken(FC.WARNINGS,0)}WITHOUT(){return this.getToken(FC.WITHOUT,0)}WORK(){return this.getToken(FC.WORK,0)}WRAPPER(){return this.getToken(FC.WRAPPER,0)}X509(){return this.getToken(FC.X509,0)}XA(){return this.getToken(FC.XA,0)}XA_RECOVER_ADMIN(){return this.getToken(FC.XA_RECOVER_ADMIN,0)}XML(){return this.getToken(FC.XML,0)}get ruleIndex(){return FC.RULE_keywordsCanBeId}accept(t){return t.visitKeywordsCanBeId?t.visitKeywordsCanBeId(this):t.visitChildren(this)}},oG=class extends ga{constructor(t,e){super(t,e)}ABS(){return this.getToken(FC.ABS,0)}ACOS(){return this.getToken(FC.ACOS,0)}ADDDATE(){return this.getToken(FC.ADDDATE,0)}ADDTIME(){return this.getToken(FC.ADDTIME,0)}AES_DECRYPT(){return this.getToken(FC.AES_DECRYPT,0)}AES_ENCRYPT(){return this.getToken(FC.AES_ENCRYPT,0)}AREA(){return this.getToken(FC.AREA,0)}ASBINARY(){return this.getToken(FC.ASBINARY,0)}ASIN(){return this.getToken(FC.ASIN,0)}ASTEXT(){return this.getToken(FC.ASTEXT,0)}ASWKB(){return this.getToken(FC.ASWKB,0)}ASWKT(){return this.getToken(FC.ASWKT,0)}ASYMMETRIC_DECRYPT(){return this.getToken(FC.ASYMMETRIC_DECRYPT,0)}ASYMMETRIC_DERIVE(){return this.getToken(FC.ASYMMETRIC_DERIVE,0)}ASYMMETRIC_ENCRYPT(){return this.getToken(FC.ASYMMETRIC_ENCRYPT,0)}ASYMMETRIC_SIGN(){return this.getToken(FC.ASYMMETRIC_SIGN,0)}ASYMMETRIC_VERIFY(){return this.getToken(FC.ASYMMETRIC_VERIFY,0)}ATAN(){return this.getToken(FC.ATAN,0)}ATAN2(){return this.getToken(FC.ATAN2,0)}BENCHMARK(){return this.getToken(FC.BENCHMARK,0)}BIN(){return this.getToken(FC.BIN,0)}BIT_COUNT(){return this.getToken(FC.BIT_COUNT,0)}BIT_LENGTH(){return this.getToken(FC.BIT_LENGTH,0)}BUFFER(){return this.getToken(FC.BUFFER,0)}CEIL(){return this.getToken(FC.CEIL,0)}CEILING(){return this.getToken(FC.CEILING,0)}CENTROID(){return this.getToken(FC.CENTROID,0)}CHARACTER_LENGTH(){return this.getToken(FC.CHARACTER_LENGTH,0)}CHARSET(){return this.getToken(FC.CHARSET,0)}CHAR_LENGTH(){return this.getToken(FC.CHAR_LENGTH,0)}COERCIBILITY(){return this.getToken(FC.COERCIBILITY,0)}COLLATION(){return this.getToken(FC.COLLATION,0)}COMPRESS(){return this.getToken(FC.COMPRESS,0)}CONCAT(){return this.getToken(FC.CONCAT,0)}CONCAT_WS(){return this.getToken(FC.CONCAT_WS,0)}CONNECTION_ID(){return this.getToken(FC.CONNECTION_ID,0)}CONV(){return this.getToken(FC.CONV,0)}CONVERT_TZ(){return this.getToken(FC.CONVERT_TZ,0)}COS(){return this.getToken(FC.COS,0)}COT(){return this.getToken(FC.COT,0)}COUNT(){return this.getToken(FC.COUNT,0)}CRC32(){return this.getToken(FC.CRC32,0)}CREATE_ASYMMETRIC_PRIV_KEY(){return this.getToken(FC.CREATE_ASYMMETRIC_PRIV_KEY,0)}CREATE_ASYMMETRIC_PUB_KEY(){return this.getToken(FC.CREATE_ASYMMETRIC_PUB_KEY,0)}CREATE_DH_PARAMETERS(){return this.getToken(FC.CREATE_DH_PARAMETERS,0)}CREATE_DIGEST(){return this.getToken(FC.CREATE_DIGEST,0)}CROSSES(){return this.getToken(FC.CROSSES,0)}CUME_DIST(){return this.getToken(FC.CUME_DIST,0)}DATABASE(){return this.getToken(FC.DATABASE,0)}DATE(){return this.getToken(FC.DATE,0)}DATEDIFF(){return this.getToken(FC.DATEDIFF,0)}DATE_FORMAT(){return this.getToken(FC.DATE_FORMAT,0)}DAY(){return this.getToken(FC.DAY,0)}DAYNAME(){return this.getToken(FC.DAYNAME,0)}DAYOFMONTH(){return this.getToken(FC.DAYOFMONTH,0)}DAYOFWEEK(){return this.getToken(FC.DAYOFWEEK,0)}DAYOFYEAR(){return this.getToken(FC.DAYOFYEAR,0)}DECODE(){return this.getToken(FC.DECODE,0)}DEGREES(){return this.getToken(FC.DEGREES,0)}DENSE_RANK(){return this.getToken(FC.DENSE_RANK,0)}DES_DECRYPT(){return this.getToken(FC.DES_DECRYPT,0)}DES_ENCRYPT(){return this.getToken(FC.DES_ENCRYPT,0)}DIMENSION(){return this.getToken(FC.DIMENSION,0)}DISJOINT(){return this.getToken(FC.DISJOINT,0)}ELT(){return this.getToken(FC.ELT,0)}ENCODE(){return this.getToken(FC.ENCODE,0)}ENCRYPT(){return this.getToken(FC.ENCRYPT,0)}ENDPOINT(){return this.getToken(FC.ENDPOINT,0)}ENVELOPE(){return this.getToken(FC.ENVELOPE,0)}EQUALS(){return this.getToken(FC.EQUALS,0)}EXP(){return this.getToken(FC.EXP,0)}EXPORT_SET(){return this.getToken(FC.EXPORT_SET,0)}EXTERIORRING(){return this.getToken(FC.EXTERIORRING,0)}EXTRACTVALUE(){return this.getToken(FC.EXTRACTVALUE,0)}FIELD(){return this.getToken(FC.FIELD,0)}FIND_IN_SET(){return this.getToken(FC.FIND_IN_SET,0)}FIRST_VALUE(){return this.getToken(FC.FIRST_VALUE,0)}FLOOR(){return this.getToken(FC.FLOOR,0)}FORMAT(){return this.getToken(FC.FORMAT,0)}FOUND_ROWS(){return this.getToken(FC.FOUND_ROWS,0)}FROM_BASE64(){return this.getToken(FC.FROM_BASE64,0)}FROM_DAYS(){return this.getToken(FC.FROM_DAYS,0)}FROM_UNIXTIME(){return this.getToken(FC.FROM_UNIXTIME,0)}GEOMCOLLFROMTEXT(){return this.getToken(FC.GEOMCOLLFROMTEXT,0)}GEOMCOLLFROMWKB(){return this.getToken(FC.GEOMCOLLFROMWKB,0)}GEOMETRYCOLLECTION(){return this.getToken(FC.GEOMETRYCOLLECTION,0)}GEOMETRYCOLLECTIONFROMTEXT(){return this.getToken(FC.GEOMETRYCOLLECTIONFROMTEXT,0)}GEOMETRYCOLLECTIONFROMWKB(){return this.getToken(FC.GEOMETRYCOLLECTIONFROMWKB,0)}GEOMETRYFROMTEXT(){return this.getToken(FC.GEOMETRYFROMTEXT,0)}GEOMETRYFROMWKB(){return this.getToken(FC.GEOMETRYFROMWKB,0)}GEOMETRYN(){return this.getToken(FC.GEOMETRYN,0)}GEOMETRYTYPE(){return this.getToken(FC.GEOMETRYTYPE,0)}GEOMFROMTEXT(){return this.getToken(FC.GEOMFROMTEXT,0)}GEOMFROMWKB(){return this.getToken(FC.GEOMFROMWKB,0)}GET_FORMAT(){return this.getToken(FC.GET_FORMAT,0)}GET_LOCK(){return this.getToken(FC.GET_LOCK,0)}GLENGTH(){return this.getToken(FC.GLENGTH,0)}GREATEST(){return this.getToken(FC.GREATEST,0)}GTID_SUBSET(){return this.getToken(FC.GTID_SUBSET,0)}GTID_SUBTRACT(){return this.getToken(FC.GTID_SUBTRACT,0)}HEX(){return this.getToken(FC.HEX,0)}HOUR(){return this.getToken(FC.HOUR,0)}IFNULL(){return this.getToken(FC.IFNULL,0)}INET6_ATON(){return this.getToken(FC.INET6_ATON,0)}INET6_NTOA(){return this.getToken(FC.INET6_NTOA,0)}INET_ATON(){return this.getToken(FC.INET_ATON,0)}INET_NTOA(){return this.getToken(FC.INET_NTOA,0)}INSTR(){return this.getToken(FC.INSTR,0)}INTERIORRINGN(){return this.getToken(FC.INTERIORRINGN,0)}INTERSECTS(){return this.getToken(FC.INTERSECTS,0)}INVISIBLE(){return this.getToken(FC.INVISIBLE,0)}ISCLOSED(){return this.getToken(FC.ISCLOSED,0)}ISEMPTY(){return this.getToken(FC.ISEMPTY,0)}ISNULL(){return this.getToken(FC.ISNULL,0)}ISSIMPLE(){return this.getToken(FC.ISSIMPLE,0)}IS_FREE_LOCK(){return this.getToken(FC.IS_FREE_LOCK,0)}IS_IPV4(){return this.getToken(FC.IS_IPV4,0)}IS_IPV4_COMPAT(){return this.getToken(FC.IS_IPV4_COMPAT,0)}IS_IPV4_MAPPED(){return this.getToken(FC.IS_IPV4_MAPPED,0)}IS_IPV6(){return this.getToken(FC.IS_IPV6,0)}IS_USED_LOCK(){return this.getToken(FC.IS_USED_LOCK,0)}LAG(){return this.getToken(FC.LAG,0)}LAST_INSERT_ID(){return this.getToken(FC.LAST_INSERT_ID,0)}LAST_VALUE(){return this.getToken(FC.LAST_VALUE,0)}LCASE(){return this.getToken(FC.LCASE,0)}LEAD(){return this.getToken(FC.LEAD,0)}LEAST(){return this.getToken(FC.LEAST,0)}LEFT(){return this.getToken(FC.LEFT,0)}LENGTH(){return this.getToken(FC.LENGTH,0)}LINEFROMTEXT(){return this.getToken(FC.LINEFROMTEXT,0)}LINEFROMWKB(){return this.getToken(FC.LINEFROMWKB,0)}LINESTRING(){return this.getToken(FC.LINESTRING,0)}LINESTRINGFROMTEXT(){return this.getToken(FC.LINESTRINGFROMTEXT,0)}LINESTRINGFROMWKB(){return this.getToken(FC.LINESTRINGFROMWKB,0)}LN(){return this.getToken(FC.LN,0)}LOAD_FILE(){return this.getToken(FC.LOAD_FILE,0)}LOCATE(){return this.getToken(FC.LOCATE,0)}LOG(){return this.getToken(FC.LOG,0)}LOG10(){return this.getToken(FC.LOG10,0)}LOG2(){return this.getToken(FC.LOG2,0)}LOWER(){return this.getToken(FC.LOWER,0)}LPAD(){return this.getToken(FC.LPAD,0)}LTRIM(){return this.getToken(FC.LTRIM,0)}MAKEDATE(){return this.getToken(FC.MAKEDATE,0)}MAKETIME(){return this.getToken(FC.MAKETIME,0)}MAKE_SET(){return this.getToken(FC.MAKE_SET,0)}MASTER_POS_WAIT(){return this.getToken(FC.MASTER_POS_WAIT,0)}MBRCONTAINS(){return this.getToken(FC.MBRCONTAINS,0)}MBRDISJOINT(){return this.getToken(FC.MBRDISJOINT,0)}MBREQUAL(){return this.getToken(FC.MBREQUAL,0)}MBRINTERSECTS(){return this.getToken(FC.MBRINTERSECTS,0)}MBROVERLAPS(){return this.getToken(FC.MBROVERLAPS,0)}MBRTOUCHES(){return this.getToken(FC.MBRTOUCHES,0)}MBRWITHIN(){return this.getToken(FC.MBRWITHIN,0)}MD5(){return this.getToken(FC.MD5,0)}MICROSECOND(){return this.getToken(FC.MICROSECOND,0)}MINUTE(){return this.getToken(FC.MINUTE,0)}MLINEFROMTEXT(){return this.getToken(FC.MLINEFROMTEXT,0)}MLINEFROMWKB(){return this.getToken(FC.MLINEFROMWKB,0)}MOD(){return this.getToken(FC.MOD,0)}MONTH(){return this.getToken(FC.MONTH,0)}MONTHNAME(){return this.getToken(FC.MONTHNAME,0)}MPOINTFROMTEXT(){return this.getToken(FC.MPOINTFROMTEXT,0)}MPOINTFROMWKB(){return this.getToken(FC.MPOINTFROMWKB,0)}MPOLYFROMTEXT(){return this.getToken(FC.MPOLYFROMTEXT,0)}MPOLYFROMWKB(){return this.getToken(FC.MPOLYFROMWKB,0)}MULTILINESTRING(){return this.getToken(FC.MULTILINESTRING,0)}MULTILINESTRINGFROMTEXT(){return this.getToken(FC.MULTILINESTRINGFROMTEXT,0)}MULTILINESTRINGFROMWKB(){return this.getToken(FC.MULTILINESTRINGFROMWKB,0)}MULTIPOINT(){return this.getToken(FC.MULTIPOINT,0)}MULTIPOINTFROMTEXT(){return this.getToken(FC.MULTIPOINTFROMTEXT,0)}MULTIPOINTFROMWKB(){return this.getToken(FC.MULTIPOINTFROMWKB,0)}MULTIPOLYGON(){return this.getToken(FC.MULTIPOLYGON,0)}MULTIPOLYGONFROMTEXT(){return this.getToken(FC.MULTIPOLYGONFROMTEXT,0)}MULTIPOLYGONFROMWKB(){return this.getToken(FC.MULTIPOLYGONFROMWKB,0)}NAME_CONST(){return this.getToken(FC.NAME_CONST,0)}NTH_VALUE(){return this.getToken(FC.NTH_VALUE,0)}NTILE(){return this.getToken(FC.NTILE,0)}NULLIF(){return this.getToken(FC.NULLIF,0)}NUMGEOMETRIES(){return this.getToken(FC.NUMGEOMETRIES,0)}NUMINTERIORRINGS(){return this.getToken(FC.NUMINTERIORRINGS,0)}NUMPOINTS(){return this.getToken(FC.NUMPOINTS,0)}OCT(){return this.getToken(FC.OCT,0)}OCTET_LENGTH(){return this.getToken(FC.OCTET_LENGTH,0)}ORD(){return this.getToken(FC.ORD,0)}OVERLAPS(){return this.getToken(FC.OVERLAPS,0)}PERCENT_RANK(){return this.getToken(FC.PERCENT_RANK,0)}PERIOD_ADD(){return this.getToken(FC.PERIOD_ADD,0)}PERIOD_DIFF(){return this.getToken(FC.PERIOD_DIFF,0)}PI(){return this.getToken(FC.PI,0)}POINT(){return this.getToken(FC.POINT,0)}POINTFROMTEXT(){return this.getToken(FC.POINTFROMTEXT,0)}POINTFROMWKB(){return this.getToken(FC.POINTFROMWKB,0)}POINTN(){return this.getToken(FC.POINTN,0)}POLYFROMTEXT(){return this.getToken(FC.POLYFROMTEXT,0)}POLYFROMWKB(){return this.getToken(FC.POLYFROMWKB,0)}POLYGON(){return this.getToken(FC.POLYGON,0)}POLYGONFROMTEXT(){return this.getToken(FC.POLYGONFROMTEXT,0)}POLYGONFROMWKB(){return this.getToken(FC.POLYGONFROMWKB,0)}POSITION(){return this.getToken(FC.POSITION,0)}POW(){return this.getToken(FC.POW,0)}POWER(){return this.getToken(FC.POWER,0)}QUARTER(){return this.getToken(FC.QUARTER,0)}QUOTE(){return this.getToken(FC.QUOTE,0)}RADIANS(){return this.getToken(FC.RADIANS,0)}RAND(){return this.getToken(FC.RAND,0)}RANDOM(){return this.getToken(FC.RANDOM,0)}RANK(){return this.getToken(FC.RANK,0)}RANDOM_BYTES(){return this.getToken(FC.RANDOM_BYTES,0)}RELEASE_LOCK(){return this.getToken(FC.RELEASE_LOCK,0)}REVERSE(){return this.getToken(FC.REVERSE,0)}RIGHT(){return this.getToken(FC.RIGHT,0)}ROUND(){return this.getToken(FC.ROUND,0)}ROW_COUNT(){return this.getToken(FC.ROW_COUNT,0)}ROW_NUMBER(){return this.getToken(FC.ROW_NUMBER,0)}RPAD(){return this.getToken(FC.RPAD,0)}RTRIM(){return this.getToken(FC.RTRIM,0)}SCHEMA(){return this.getToken(FC.SCHEMA,0)}SECOND(){return this.getToken(FC.SECOND,0)}SEC_TO_TIME(){return this.getToken(FC.SEC_TO_TIME,0)}SESSION_USER(){return this.getToken(FC.SESSION_USER,0)}SESSION_VARIABLES_ADMIN(){return this.getToken(FC.SESSION_VARIABLES_ADMIN,0)}SHA(){return this.getToken(FC.SHA,0)}SHA1(){return this.getToken(FC.SHA1,0)}SHA2(){return this.getToken(FC.SHA2,0)}SIGN(){return this.getToken(FC.SIGN,0)}SIN(){return this.getToken(FC.SIN,0)}SLEEP(){return this.getToken(FC.SLEEP,0)}SOUNDEX(){return this.getToken(FC.SOUNDEX,0)}SQL_THREAD_WAIT_AFTER_GTIDS(){return this.getToken(FC.SQL_THREAD_WAIT_AFTER_GTIDS,0)}SQRT(){return this.getToken(FC.SQRT,0)}SRID(){return this.getToken(FC.SRID,0)}STARTPOINT(){return this.getToken(FC.STARTPOINT,0)}STRCMP(){return this.getToken(FC.STRCMP,0)}STR_TO_DATE(){return this.getToken(FC.STR_TO_DATE,0)}ST_AREA(){return this.getToken(FC.ST_AREA,0)}ST_ASBINARY(){return this.getToken(FC.ST_ASBINARY,0)}ST_ASTEXT(){return this.getToken(FC.ST_ASTEXT,0)}ST_ASWKB(){return this.getToken(FC.ST_ASWKB,0)}ST_ASWKT(){return this.getToken(FC.ST_ASWKT,0)}ST_BUFFER(){return this.getToken(FC.ST_BUFFER,0)}ST_CENTROID(){return this.getToken(FC.ST_CENTROID,0)}ST_CONTAINS(){return this.getToken(FC.ST_CONTAINS,0)}ST_CROSSES(){return this.getToken(FC.ST_CROSSES,0)}ST_DIFFERENCE(){return this.getToken(FC.ST_DIFFERENCE,0)}ST_DIMENSION(){return this.getToken(FC.ST_DIMENSION,0)}ST_DISJOINT(){return this.getToken(FC.ST_DISJOINT,0)}ST_DISTANCE(){return this.getToken(FC.ST_DISTANCE,0)}ST_ENDPOINT(){return this.getToken(FC.ST_ENDPOINT,0)}ST_ENVELOPE(){return this.getToken(FC.ST_ENVELOPE,0)}ST_EQUALS(){return this.getToken(FC.ST_EQUALS,0)}ST_EXTERIORRING(){return this.getToken(FC.ST_EXTERIORRING,0)}ST_GEOMCOLLFROMTEXT(){return this.getToken(FC.ST_GEOMCOLLFROMTEXT,0)}ST_GEOMCOLLFROMTXT(){return this.getToken(FC.ST_GEOMCOLLFROMTXT,0)}ST_GEOMCOLLFROMWKB(){return this.getToken(FC.ST_GEOMCOLLFROMWKB,0)}ST_GEOMETRYCOLLECTIONFROMTEXT(){return this.getToken(FC.ST_GEOMETRYCOLLECTIONFROMTEXT,0)}ST_GEOMETRYCOLLECTIONFROMWKB(){return this.getToken(FC.ST_GEOMETRYCOLLECTIONFROMWKB,0)}ST_GEOMETRYFROMTEXT(){return this.getToken(FC.ST_GEOMETRYFROMTEXT,0)}ST_GEOMETRYFROMWKB(){return this.getToken(FC.ST_GEOMETRYFROMWKB,0)}ST_GEOMETRYN(){return this.getToken(FC.ST_GEOMETRYN,0)}ST_GEOMETRYTYPE(){return this.getToken(FC.ST_GEOMETRYTYPE,0)}ST_GEOMFROMTEXT(){return this.getToken(FC.ST_GEOMFROMTEXT,0)}ST_GEOMFROMWKB(){return this.getToken(FC.ST_GEOMFROMWKB,0)}ST_INTERIORRINGN(){return this.getToken(FC.ST_INTERIORRINGN,0)}ST_INTERSECTION(){return this.getToken(FC.ST_INTERSECTION,0)}ST_INTERSECTS(){return this.getToken(FC.ST_INTERSECTS,0)}ST_ISCLOSED(){return this.getToken(FC.ST_ISCLOSED,0)}ST_ISEMPTY(){return this.getToken(FC.ST_ISEMPTY,0)}ST_ISSIMPLE(){return this.getToken(FC.ST_ISSIMPLE,0)}ST_LINEFROMTEXT(){return this.getToken(FC.ST_LINEFROMTEXT,0)}ST_LINEFROMWKB(){return this.getToken(FC.ST_LINEFROMWKB,0)}ST_LINESTRINGFROMTEXT(){return this.getToken(FC.ST_LINESTRINGFROMTEXT,0)}ST_LINESTRINGFROMWKB(){return this.getToken(FC.ST_LINESTRINGFROMWKB,0)}ST_NUMGEOMETRIES(){return this.getToken(FC.ST_NUMGEOMETRIES,0)}ST_NUMINTERIORRING(){return this.getToken(FC.ST_NUMINTERIORRING,0)}ST_NUMINTERIORRINGS(){return this.getToken(FC.ST_NUMINTERIORRINGS,0)}ST_NUMPOINTS(){return this.getToken(FC.ST_NUMPOINTS,0)}ST_OVERLAPS(){return this.getToken(FC.ST_OVERLAPS,0)}ST_POINTFROMTEXT(){return this.getToken(FC.ST_POINTFROMTEXT,0)}ST_POINTFROMWKB(){return this.getToken(FC.ST_POINTFROMWKB,0)}ST_POINTN(){return this.getToken(FC.ST_POINTN,0)}ST_POLYFROMTEXT(){return this.getToken(FC.ST_POLYFROMTEXT,0)}ST_POLYFROMWKB(){return this.getToken(FC.ST_POLYFROMWKB,0)}ST_POLYGONFROMTEXT(){return this.getToken(FC.ST_POLYGONFROMTEXT,0)}ST_POLYGONFROMWKB(){return this.getToken(FC.ST_POLYGONFROMWKB,0)}ST_SRID(){return this.getToken(FC.ST_SRID,0)}ST_STARTPOINT(){return this.getToken(FC.ST_STARTPOINT,0)}ST_SYMDIFFERENCE(){return this.getToken(FC.ST_SYMDIFFERENCE,0)}ST_TOUCHES(){return this.getToken(FC.ST_TOUCHES,0)}ST_UNION(){return this.getToken(FC.ST_UNION,0)}ST_WITHIN(){return this.getToken(FC.ST_WITHIN,0)}ST_X(){return this.getToken(FC.ST_X,0)}ST_Y(){return this.getToken(FC.ST_Y,0)}SUBDATE(){return this.getToken(FC.SUBDATE,0)}SUBSTRING_INDEX(){return this.getToken(FC.SUBSTRING_INDEX,0)}SUBTIME(){return this.getToken(FC.SUBTIME,0)}SYSTEM_USER(){return this.getToken(FC.SYSTEM_USER,0)}TAN(){return this.getToken(FC.TAN,0)}TIME(){return this.getToken(FC.TIME,0)}TIMEDIFF(){return this.getToken(FC.TIMEDIFF,0)}TIMESTAMP(){return this.getToken(FC.TIMESTAMP,0)}TIMESTAMPADD(){return this.getToken(FC.TIMESTAMPADD,0)}TIMESTAMPDIFF(){return this.getToken(FC.TIMESTAMPDIFF,0)}TIME_FORMAT(){return this.getToken(FC.TIME_FORMAT,0)}TIME_TO_SEC(){return this.getToken(FC.TIME_TO_SEC,0)}TOUCHES(){return this.getToken(FC.TOUCHES,0)}TO_BASE64(){return this.getToken(FC.TO_BASE64,0)}TO_DAYS(){return this.getToken(FC.TO_DAYS,0)}TO_SECONDS(){return this.getToken(FC.TO_SECONDS,0)}UCASE(){return this.getToken(FC.UCASE,0)}UNCOMPRESS(){return this.getToken(FC.UNCOMPRESS,0)}UNCOMPRESSED_LENGTH(){return this.getToken(FC.UNCOMPRESSED_LENGTH,0)}UNHEX(){return this.getToken(FC.UNHEX,0)}UNIX_TIMESTAMP(){return this.getToken(FC.UNIX_TIMESTAMP,0)}UPDATEXML(){return this.getToken(FC.UPDATEXML,0)}UPPER(){return this.getToken(FC.UPPER,0)}UUID(){return this.getToken(FC.UUID,0)}UUID_SHORT(){return this.getToken(FC.UUID_SHORT,0)}VALIDATE_PASSWORD_STRENGTH(){return this.getToken(FC.VALIDATE_PASSWORD_STRENGTH,0)}VERSION(){return this.getToken(FC.VERSION,0)}VISIBLE(){return this.getToken(FC.VISIBLE,0)}WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS(){return this.getToken(FC.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS,0)}WEEK(){return this.getToken(FC.WEEK,0)}WEEKDAY(){return this.getToken(FC.WEEKDAY,0)}WEEKOFYEAR(){return this.getToken(FC.WEEKOFYEAR,0)}WEIGHT_STRING(){return this.getToken(FC.WEIGHT_STRING,0)}WITHIN(){return this.getToken(FC.WITHIN,0)}YEAR(){return this.getToken(FC.YEAR,0)}YEARWEEK(){return this.getToken(FC.YEARWEEK,0)}Y_FUNCTION(){return this.getToken(FC.Y_FUNCTION,0)}X_FUNCTION(){return this.getToken(FC.X_FUNCTION,0)}JSON_ARRAY(){return this.getToken(FC.JSON_ARRAY,0)}JSON_OBJECT(){return this.getToken(FC.JSON_OBJECT,0)}JSON_QUOTE(){return this.getToken(FC.JSON_QUOTE,0)}JSON_CONTAINS(){return this.getToken(FC.JSON_CONTAINS,0)}JSON_CONTAINS_PATH(){return this.getToken(FC.JSON_CONTAINS_PATH,0)}JSON_EXTRACT(){return this.getToken(FC.JSON_EXTRACT,0)}JSON_KEYS(){return this.getToken(FC.JSON_KEYS,0)}JSON_OVERLAPS(){return this.getToken(FC.JSON_OVERLAPS,0)}JSON_SEARCH(){return this.getToken(FC.JSON_SEARCH,0)}JSON_VALUE(){return this.getToken(FC.JSON_VALUE,0)}JSON_ARRAY_APPEND(){return this.getToken(FC.JSON_ARRAY_APPEND,0)}JSON_ARRAY_INSERT(){return this.getToken(FC.JSON_ARRAY_INSERT,0)}JSON_INSERT(){return this.getToken(FC.JSON_INSERT,0)}JSON_MERGE(){return this.getToken(FC.JSON_MERGE,0)}JSON_MERGE_PATCH(){return this.getToken(FC.JSON_MERGE_PATCH,0)}JSON_MERGE_PRESERVE(){return this.getToken(FC.JSON_MERGE_PRESERVE,0)}JSON_REMOVE(){return this.getToken(FC.JSON_REMOVE,0)}JSON_REPLACE(){return this.getToken(FC.JSON_REPLACE,0)}JSON_SET(){return this.getToken(FC.JSON_SET,0)}JSON_UNQUOTE(){return this.getToken(FC.JSON_UNQUOTE,0)}JSON_DEPTH(){return this.getToken(FC.JSON_DEPTH,0)}JSON_LENGTH(){return this.getToken(FC.JSON_LENGTH,0)}JSON_TYPE(){return this.getToken(FC.JSON_TYPE,0)}JSON_VALID(){return this.getToken(FC.JSON_VALID,0)}JSON_TABLE(){return this.getToken(FC.JSON_TABLE,0)}JSON_SCHEMA_VALID(){return this.getToken(FC.JSON_SCHEMA_VALID,0)}JSON_SCHEMA_VALIDATION_REPORT(){return this.getToken(FC.JSON_SCHEMA_VALIDATION_REPORT,0)}JSON_PRETTY(){return this.getToken(FC.JSON_PRETTY,0)}JSON_STORAGE_FREE(){return this.getToken(FC.JSON_STORAGE_FREE,0)}JSON_STORAGE_SIZE(){return this.getToken(FC.JSON_STORAGE_SIZE,0)}JSON_ARRAYAGG(){return this.getToken(FC.JSON_ARRAYAGG,0)}JSON_OBJECTAGG(){return this.getToken(FC.JSON_OBJECTAGG,0)}get ruleIndex(){return FC.RULE_functionNameBase}accept(t){return t.visitFunctionNameBase?t.visitFunctionNameBase(this):t.visitChildren(this)}},RG=class extends Ii{},AG={SPACE:FC.SPACE,FROM:FC.FROM,OPENING_BRACKET:FC.LR_BRACKET,CLOSING_BRACKET:FC.RR_BRACKET,ALTER:FC.ALTER,INSERT:FC.INSERT,UPDATE:FC.UPDATE,JOIN:FC.JOIN,SEMICOLON:FC.SEMI,SELECT:FC.SELECT};var SG=new Set(function(){let t=[],e=FC.VAR_ASSIGN,s=FC.ERROR_RECONGNIGION;for(let E=e;E<=s;E++)E!==FC.STAR&&t.push(E);let a=FC.ARMSCII8,r=FC.UTF8MB4;for(let E=a;E<=r;E++)t.push(E);let i=FC.AVG,c=FC.UTC_TIMESTAMP;for(let E=i;E<=c;E++)t.push(E);let n=FC.ABS,h=FC.X_FUNCTION;for(let E=n;E<=h;E++)t.push(E);return t.push(FC.EOF),t.push(FC.KEY),t}()),lG=new Set([FC.RULE_userName,FC.RULE_roleName,FC.RULE_databaseName,FC.RULE_constraintName,FC.RULE_triggerName,FC.RULE_indexName,FC.RULE_fullColumnName,FC.RULE_tableName,FC.RULE_simpleUserName,FC.RULE_fullId,FC.RULE_simpleId,FC.RULE_uid,FC.RULE_aggregateWindowedFunction,FC.RULE_scalarFunctionName,FC.RULE_specificFunction,FC.RULE_passwordFunctionClause]),OG=class extends RG{constructor(){super(),this.visitTableName=t=>{try{this.symbolTable.addNewSymbolOfType(qc,this.scope,t.getText())}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.visitAtomTableItem=t=>{try{var e;let s=null===(e=t.uid())||void 0===e?void 0:e.getText(),a="left"===(null===s||void 0===s?void 0:s.toLowerCase())||"right"===(null===s||void 0===s?void 0:s.toLowerCase());this.symbolTable.addNewSymbolOfType(qc,this.scope,t.tableName().getText(),a?void 0:s)}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.visitSelectElementAlias=t=>{try{this.symbolTable.addNewSymbolOfType(zc,this.scope,t.uid().getText())}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.symbolTable=new Zc("",{allowDuplicateSymbols:!0}),this.scope=this.symbolTable.addNewSymbolOfType(Bc,void 0)}};function IG(t,e){if(!e)return t.root();switch(e){case"from":return t.fromClause();case"alter":return t.alterTable();case"insert":return t.insertStatement();case"update":return t.multipleUpdateStatement();case"select":return t.selectStatement()}}var uG={Lexer:GC,Parser:FC,tokenDictionary:AG,ignoredTokens:SG,rulesToVisit:lG,getParseTree:IG,enrichAutocompleteResult:function(t,e,s,a,r,i){let{shouldSuggestColumns:c,shouldSuggestColumnAliases:n,shouldSuggestConstraints:h,...E}=function(t,e,s){let a,r=!1,i=!1,c=!1,n=!1,h=!1,E=!1,T=!1,o=!1,R=!1,A=!1;for(let[S,l]of t)if(uC(e,l))switch(S){case FC.RULE_tableName:if(l.ruleList.includes(FC.RULE_createTable))break;a=UC(s,AG,e,FC.VIEW)?"VIEWS":UC(s,AG,e,FC.TABLE)?"TABLES":"ALL";break;case FC.RULE_fullId:UC(s,AG,e,FC.VIEW)&&(l.ruleList.includes(FC.RULE_alterView)||l.ruleList.includes(FC.RULE_dropView))&&(a="VIEWS");break;case FC.RULE_aggregateWindowedFunction:r=!0;break;case FC.RULE_scalarFunctionName:i=!0;break;case FC.RULE_triggerName:n=!0;break;case FC.RULE_indexName:c=!0;break;case FC.RULE_constraintName:o=!0;break;case FC.RULE_databaseName:h=!0;break;case FC.RULE_roleName:E=!0;break;case FC.RULE_userName:T=!0;break;case FC.RULE_fullColumnName:case FC.RULE_indexColumnName:R=!0,(l.ruleList.includes(FC.RULE_groupByItem)||l.ruleList.includes(FC.RULE_orderByExpression))&&(A=!0);break;case FC.RULE_uid:(l.ruleList.includes(FC.RULE_alterSpecification)&&!UC(s,AG,e,FC.ADD)||l.ruleList.includes(FC.RULE_indexColumnName))&&(R=!0)}return{suggestViewsOrTables:a,suggestAggregateFunctions:r,suggestFunctions:i,suggestIndexes:c,suggestTriggers:n,suggestDatabases:h,suggestRoles:E,suggestUsers:T,shouldSuggestConstraints:o,shouldSuggestColumns:R,shouldSuggestColumnAliases:A}}(e,a,s),T={...t,...E,suggestTemplates:_C(i,r)};if(c||h||n){let t=new OG,{tableContextSuggestion:e,suggestColumnAliases:a}=mC(GC,FC,t,AG,IG,s,r,i);c&&e&&(T.suggestColumns=e),h&&e&&(T.suggestConstraints=e),n&&a&&(T.suggestColumnAliases=a)}return T}},NG=class{constructor(t){this.errors=[],this.whitespaceToken=t}syntaxError(t,e,s,a,r){if(e){let t=OC(e,this.whitespaceToken);this.errors.push({message:r,...t})}else this.errors.push({message:r,startLine:s,startColumn:a,endLine:s,endColumn:a})}reportAmbiguity(){}reportAttemptingFullContext(){}reportContextSensitivity(){}},LG=(Ji=class t extends $r{constructor(e){super(e),this.interpreter=new hi(this,t._ATN,t.decisionsToDFA,new Si)}get grammarFileName(){return"ClickHouseLexer.g4"}get literalNames(){return t.literalNames}get symbolicNames(){return t.symbolicNames}get ruleNames(){return t.ruleNames}get serializedATN(){return t._serializedATN}get channelNames(){return t.channelNames}get modeNames(){return t.modeNames}static get _ATN(){return t.__ATN||(t.__ATN=(new fr).deserialize(t._serializedATN)),t.__ATN}get vocabulary(){return t.vocabulary}},Ji.ADD=1,Ji.AFTER=2,Ji.ALIAS=3,Ji.ALL=4,Ji.ALTER=5,Ji.AND=6,Ji.ANTI=7,Ji.ANY=8,Ji.ARRAY=9,Ji.AS=10,Ji.ASCENDING=11,Ji.ASOF=12,Ji.AST=13,Ji.ASYNC=14,Ji.ATTACH=15,Ji.BETWEEN=16,Ji.BOTH=17,Ji.BY=18,Ji.CASE=19,Ji.CAST=20,Ji.CHECK=21,Ji.CLEAR=22,Ji.CLUSTER=23,Ji.CODEC=24,Ji.COLLATE=25,Ji.COLUMN=26,Ji.COMMENT=27,Ji.CONSTRAINT=28,Ji.CREATE=29,Ji.CROSS=30,Ji.CUBE=31,Ji.CURRENT=32,Ji.DATABASE=33,Ji.DATABASES=34,Ji.DATE=35,Ji.DAY=36,Ji.DEDUPLICATE=37,Ji.DEFAULT=38,Ji.DELAY=39,Ji.DELETE=40,Ji.DESC=41,Ji.DESCENDING=42,Ji.DESCRIBE=43,Ji.DETACH=44,Ji.DICTIONARIES=45,Ji.DICTIONARY=46,Ji.DISK=47,Ji.DISTINCT=48,Ji.DISTRIBUTED=49,Ji.DROP=50,Ji.ELSE=51,Ji.END=52,Ji.ENGINE=53,Ji.ESTIMATE=54,Ji.EVENTS=55,Ji.EXISTS=56,Ji.EXPLAIN=57,Ji.EXPRESSION=58,Ji.EXTRACT=59,Ji.FETCHES=60,Ji.FINAL=61,Ji.FIRST=62,Ji.FLUSH=63,Ji.FOLLOWING=64,Ji.FOR=65,Ji.FORMAT=66,Ji.FREEZE=67,Ji.FROM=68,Ji.FULL=69,Ji.FUNCTION=70,Ji.GLOBAL=71,Ji.GRANULARITY=72,Ji.GROUP=73,Ji.HAVING=74,Ji.HIERARCHICAL=75,Ji.HOUR=76,Ji.ID=77,Ji.IF=78,Ji.ILIKE=79,Ji.IN=80,Ji.INDEX=81,Ji.INF=82,Ji.INJECTIVE=83,Ji.INNER=84,Ji.INSERT=85,Ji.INTERVAL=86,Ji.INTO=87,Ji.IS=88,Ji.IS_OBJECT_ID=89,Ji.JOIN=90,Ji.KEY=91,Ji.KILL=92,Ji.LAST=93,Ji.LAYOUT=94,Ji.LEADING=95,Ji.LEFT=96,Ji.LIFETIME=97,Ji.LIKE=98,Ji.LIMIT=99,Ji.LIVE=100,Ji.LOCAL=101,Ji.LOGS=102,Ji.MATERIALIZE=103,Ji.MATERIALIZED=104,Ji.MAX=105,Ji.MERGES=106,Ji.MIN=107,Ji.MINUTE=108,Ji.MODIFY=109,Ji.MONTH=110,Ji.MOVE=111,Ji.MUTATION=112,Ji.NAN_SQL=113,Ji.NO=114,Ji.NOT=115,Ji.NULL_SQL=116,Ji.NULLS=117,Ji.OFFSET=118,Ji.ON=119,Ji.OPTIMIZE=120,Ji.OR=121,Ji.ORDER=122,Ji.OUTER=123,Ji.OUTFILE=124,Ji.OVER=125,Ji.PARTITION=126,Ji.PIPELINE=127,Ji.PLAN=128,Ji.POPULATE=129,Ji.PRECEDING=130,Ji.PREWHERE=131,Ji.PRIMARY=132,Ji.PROJECTION=133,Ji.QUARTER=134,Ji.QUERY=135,Ji.RANGE=136,Ji.RELOAD=137,Ji.REMOVE=138,Ji.RENAME=139,Ji.REPLACE=140,Ji.REPLICA=141,Ji.REPLICATED=142,Ji.RIGHT=143,Ji.ROLLUP=144,Ji.ROW=145,Ji.ROWS=146,Ji.SAMPLE=147,Ji.SECOND=148,Ji.SELECT=149,Ji.SEMI=150,Ji.SENDS=151,Ji.SET=152,Ji.SETTINGS=153,Ji.SHOW=154,Ji.SOURCE=155,Ji.START=156,Ji.STOP=157,Ji.SUBSTRING=158,Ji.SYNC=159,Ji.SYNTAX=160,Ji.SYSTEM=161,Ji.TABLE=162,Ji.TABLES=163,Ji.TEMPORARY=164,Ji.TEST=165,Ji.THEN=166,Ji.TIES=167,Ji.TIMEOUT=168,Ji.TIMESTAMP=169,Ji.TO=170,Ji.TOP=171,Ji.TOTALS=172,Ji.TRAILING=173,Ji.TRIM=174,Ji.TREE=175,Ji.TRUNCATE=176,Ji.TTL=177,Ji.TYPE=178,Ji.UNBOUNDED=179,Ji.UNION=180,Ji.UPDATE=181,Ji.USE=182,Ji.USING=183,Ji.UUID=184,Ji.VALUES=185,Ji.VIEW=186,Ji.VOLUME=187,Ji.WATCH=188,Ji.WEEK=189,Ji.WHEN=190,Ji.WHERE=191,Ji.WINDOW=192,Ji.WITH=193,Ji.YEAR=194,Ji.JSON_FALSE=195,Ji.JSON_TRUE=196,Ji.IDENTIFIER=197,Ji.FLOATING_LITERAL=198,Ji.OCTAL_LITERAL=199,Ji.DECIMAL_LITERAL=200,Ji.HEXADECIMAL_LITERAL=201,Ji.STRING_LITERAL=202,Ji.ARROW=203,Ji.ASTERISK=204,Ji.BACKQUOTE=205,Ji.BACKSLASH=206,Ji.COLON=207,Ji.COMMA=208,Ji.CONCAT=209,Ji.DASH=210,Ji.DOT=211,Ji.EQ_DOUBLE=212,Ji.EQ_SINGLE=213,Ji.GE=214,Ji.GT=215,Ji.LBRACE=216,Ji.LBRACKET=217,Ji.LE=218,Ji.LPAREN=219,Ji.LT=220,Ji.NOT_EQ=221,Ji.PERCENT=222,Ji.PLUS=223,Ji.QUESTIONMARK=224,Ji.QUOTE_DOUBLE=225,Ji.QUOTE_SINGLE=226,Ji.RBRACE=227,Ji.RBRACKET=228,Ji.RPAREN=229,Ji.SEMICOLON=230,Ji.SLASH=231,Ji.UNDERSCORE=232,Ji.MULTI_LINE_COMMENT=233,Ji.SINGLE_LINE_COMMENT=234,Ji.WHITESPACE=235,Ji.channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"],Ji.literalNames=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"'false'","'true'",null,null,null,null,null,null,"'->'","'*'","'`'","''","':'","','","'||'","'-'","'.'","'=='","'='","'>='","'>'","'{'","'['","'<='","'('","'<'",null,"'%'","'+'","'?'","'\"'","'''","'}'","']'","')'","';'","'/'","'_'"],Ji.symbolicNames=[null,"ADD","AFTER","ALIAS","ALL","ALTER","AND","ANTI","ANY","ARRAY","AS","ASCENDING","ASOF","AST","ASYNC","ATTACH","BETWEEN","BOTH","BY","CASE","CAST","CHECK","CLEAR","CLUSTER","CODEC","COLLATE","COLUMN","COMMENT","CONSTRAINT","CREATE","CROSS","CUBE","CURRENT","DATABASE","DATABASES","DATE","DAY","DEDUPLICATE","DEFAULT","DELAY","DELETE","DESC","DESCENDING","DESCRIBE","DETACH","DICTIONARIES","DICTIONARY","DISK","DISTINCT","DISTRIBUTED","DROP","ELSE","END","ENGINE","ESTIMATE","EVENTS","EXISTS","EXPLAIN","EXPRESSION","EXTRACT","FETCHES","FINAL","FIRST","FLUSH","FOLLOWING","FOR","FORMAT","FREEZE","FROM","FULL","FUNCTION","GLOBAL","GRANULARITY","GROUP","HAVING","HIERARCHICAL","HOUR","ID","IF","ILIKE","IN","INDEX","INF","INJECTIVE","INNER","INSERT","INTERVAL","INTO","IS","IS_OBJECT_ID","JOIN","KEY","KILL","LAST","LAYOUT","LEADING","LEFT","LIFETIME","LIKE","LIMIT","LIVE","LOCAL","LOGS","MATERIALIZE","MATERIALIZED","MAX","MERGES","MIN","MINUTE","MODIFY","MONTH","MOVE","MUTATION","NAN_SQL","NO","NOT","NULL_SQL","NULLS","OFFSET","ON","OPTIMIZE","OR","ORDER","OUTER","OUTFILE","OVER","PARTITION","PIPELINE","PLAN","POPULATE","PRECEDING","PREWHERE","PRIMARY","PROJECTION","QUARTER","QUERY","RANGE","RELOAD","REMOVE","RENAME","REPLACE","REPLICA","REPLICATED","RIGHT","ROLLUP","ROW","ROWS","SAMPLE","SECOND","SELECT","SEMI","SENDS","SET","SETTINGS","SHOW","SOURCE","START","STOP","SUBSTRING","SYNC","SYNTAX","SYSTEM","TABLE","TABLES","TEMPORARY","TEST","THEN","TIES","TIMEOUT","TIMESTAMP","TO","TOP","TOTALS","TRAILING","TRIM","TREE","TRUNCATE","TTL","TYPE","UNBOUNDED","UNION","UPDATE","USE","USING","UUID","VALUES","VIEW","VOLUME","WATCH","WEEK","WHEN","WHERE","WINDOW","WITH","YEAR","JSON_FALSE","JSON_TRUE","IDENTIFIER","FLOATING_LITERAL","OCTAL_LITERAL","DECIMAL_LITERAL","HEXADECIMAL_LITERAL","STRING_LITERAL","ARROW","ASTERISK","BACKQUOTE","BACKSLASH","COLON","COMMA","CONCAT","DASH","DOT","EQ_DOUBLE","EQ_SINGLE","GE","GT","LBRACE","LBRACKET","LE","LPAREN","LT","NOT_EQ","PERCENT","PLUS","QUESTIONMARK","QUOTE_DOUBLE","QUOTE_SINGLE","RBRACE","RBRACKET","RPAREN","SEMICOLON","SLASH","UNDERSCORE","MULTI_LINE_COMMENT","SINGLE_LINE_COMMENT","WHITESPACE"],Ji.modeNames=["DEFAULT_MODE"],Ji.ruleNames=["ADD","AFTER","ALIAS","ALL","ALTER","AND","ANTI","ANY","ARRAY","AS","ASCENDING","ASOF","AST","ASYNC","ATTACH","BETWEEN","BOTH","BY","CASE","CAST","CHECK","CLEAR","CLUSTER","CODEC","COLLATE","COLUMN","COMMENT","CONSTRAINT","CREATE","CROSS","CUBE","CURRENT","DATABASE","DATABASES","DATE","DAY","DEDUPLICATE","DEFAULT","DELAY","DELETE","DESC","DESCENDING","DESCRIBE","DETACH","DICTIONARIES","DICTIONARY","DISK","DISTINCT","DISTRIBUTED","DROP","ELSE","END","ENGINE","ESTIMATE","EVENTS","EXISTS","EXPLAIN","EXPRESSION","EXTRACT","FETCHES","FINAL","FIRST","FLUSH","FOLLOWING","FOR","FORMAT","FREEZE","FROM","FULL","FUNCTION","GLOBAL","GRANULARITY","GROUP","HAVING","HIERARCHICAL","HOUR","ID","IF","ILIKE","IN","INDEX","INF","INJECTIVE","INNER","INSERT","INTERVAL","INTO","IS","IS_OBJECT_ID","JOIN","KEY","KILL","LAST","LAYOUT","LEADING","LEFT","LIFETIME","LIKE","LIMIT","LIVE","LOCAL","LOGS","MATERIALIZE","MATERIALIZED","MAX","MERGES","MIN","MINUTE","MODIFY","MONTH","MOVE","MUTATION","NAN_SQL","NO","NOT","NULL_SQL","NULLS","OFFSET","ON","OPTIMIZE","OR","ORDER","OUTER","OUTFILE","OVER","PARTITION","PIPELINE","PLAN","POPULATE","PRECEDING","PREWHERE","PRIMARY","PROJECTION","QUARTER","QUERY","RANGE","RELOAD","REMOVE","RENAME","REPLACE","REPLICA","REPLICATED","RIGHT","ROLLUP","ROW","ROWS","SAMPLE","SECOND","SELECT","SEMI","SENDS","SET","SETTINGS","SHOW","SOURCE","START","STOP","SUBSTRING","SYNC","SYNTAX","SYSTEM","TABLE","TABLES","TEMPORARY","TEST","THEN","TIES","TIMEOUT","TIMESTAMP","TO","TOP","TOTALS","TRAILING","TRIM","TREE","TRUNCATE","TTL","TYPE","UNBOUNDED","UNION","UPDATE","USE","USING","UUID","VALUES","VIEW","VOLUME","WATCH","WEEK","WHEN","WHERE","WINDOW","WITH","YEAR","JSON_FALSE","JSON_TRUE","IDENTIFIER","FLOATING_LITERAL","OCTAL_LITERAL","DECIMAL_LITERAL","HEXADECIMAL_LITERAL","STRING_LITERAL","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","LETTER","OCT_DIGIT","DEC_DIGIT","HEX_DIGIT","ARROW","ASTERISK","BACKQUOTE","BACKSLASH","COLON","COMMA","CONCAT","DASH","DOT","EQ_DOUBLE","EQ_SINGLE","GE","GT","LBRACE","LBRACKET","LE","LPAREN","LT","NOT_EQ","PERCENT","PLUS","QUESTIONMARK","QUOTE_DOUBLE","QUOTE_SINGLE","RBRACE","RBRACKET","RPAREN","SEMICOLON","SLASH","UNDERSCORE","MULTI_LINE_COMMENT","SINGLE_LINE_COMMENT","WHITESPACE"],Ji._serializedATN=[4,0,235,2168,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,2,230,7,230,2,231,7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,235,7,235,2,236,7,236,2,237,7,237,2,238,7,238,2,239,7,239,2,240,7,240,2,241,7,241,2,242,7,242,2,243,7,243,2,244,7,244,2,245,7,245,2,246,7,246,2,247,7,247,2,248,7,248,2,249,7,249,2,250,7,250,2,251,7,251,2,252,7,252,2,253,7,253,2,254,7,254,2,255,7,255,2,256,7,256,2,257,7,257,2,258,7,258,2,259,7,259,2,260,7,260,2,261,7,261,2,262,7,262,2,263,7,263,2,264,7,264,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,3,10,594,8,10,1,11,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,57,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,3,81,1101,8,81,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,86,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,95,1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,101,1,101,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,1,104,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,109,1,109,1,109,1,109,1,109,1,109,1,110,1,110,1,110,1,110,1,110,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,112,1,112,1,112,1,112,1,113,1,113,1,113,1,114,1,114,1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,116,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,118,1,118,1,118,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,120,1,120,1,120,1,121,1,121,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,134,1,134,1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,135,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,142,1,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,144,1,144,1,144,1,144,1,145,1,145,1,145,1,145,1,145,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,149,1,149,1,149,1,149,1,149,1,150,1,150,1,150,1,150,1,150,1,150,1,151,1,151,1,151,1,151,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,153,1,153,1,153,1,153,1,153,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,155,1,155,1,155,1,155,1,155,1,155,1,156,1,156,1,156,1,156,1,156,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,158,1,158,1,158,1,158,1,158,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,161,1,161,1,161,1,161,1,161,1,161,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,164,1,164,1,164,1,164,1,164,1,165,1,165,1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,166,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,169,1,169,1,169,1,170,1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,173,1,173,1,173,1,173,1,173,1,174,1,174,1,174,1,174,1,174,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,176,1,176,1,176,1,176,1,177,1,177,1,177,1,177,1,177,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,179,1,179,1,179,1,179,1,179,1,179,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,181,1,181,1,181,1,181,1,182,1,182,1,182,1,182,1,182,1,182,1,183,1,183,1,183,1,183,1,183,1,184,1,184,1,184,1,184,1,184,1,184,1,184,1,185,1,185,1,185,1,185,1,185,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,187,1,187,1,187,1,187,1,187,1,187,1,188,1,188,1,188,1,188,1,188,1,189,1,189,1,189,1,189,1,189,1,190,1,190,1,190,1,190,1,190,1,190,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,192,1,192,1,192,1,192,1,192,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,193,3,193,1840,8,193,1,194,1,194,1,194,1,194,1,194,1,194,1,195,1,195,1,195,1,195,1,195,1,196,1,196,3,196,1855,8,196,1,196,1,196,1,196,5,196,1860,8,196,10,196,12,196,1863,9,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,5,196,1873,8,196,10,196,12,196,1876,9,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,5,196,1888,8,196,10,196,12,196,1891,9,196,1,196,1,196,3,196,1895,8,196,1,197,1,197,1,197,5,197,1900,8,197,10,197,12,197,1903,9,197,1,197,1,197,3,197,1907,8,197,1,197,1,197,3,197,1911,8,197,1,197,4,197,1914,8,197,11,197,12,197,1915,1,197,1,197,1,197,3,197,1921,8,197,1,197,1,197,3,197,1925,8,197,1,197,4,197,1928,8,197,11,197,12,197,1929,1,197,1,197,1,197,5,197,1935,8,197,10,197,12,197,1938,9,197,1,197,1,197,1,197,3,197,1943,8,197,1,197,4,197,1946,8,197,11,197,12,197,1947,1,197,1,197,1,197,1,197,1,197,3,197,1955,8,197,1,197,4,197,1958,8,197,11,197,12,197,1959,1,197,1,197,1,197,1,197,3,197,1966,8,197,1,197,4,197,1969,8,197,11,197,12,197,1970,3,197,1973,8,197,1,198,1,198,4,198,1977,8,198,11,198,12,198,1978,1,199,4,199,1982,8,199,11,199,12,199,1983,1,200,1,200,1,200,4,200,1989,8,200,11,200,12,200,1990,1,201,1,201,1,201,1,201,1,201,1,201,1,201,1,201,5,201,2001,8,201,10,201,12,201,2004,9,201,1,201,1,201,1,202,1,202,1,203,1,203,1,204,1,204,1,205,1,205,1,206,1,206,1,207,1,207,1,208,1,208,1,209,1,209,1,210,1,210,1,211,1,211,1,212,1,212,1,213,1,213,1,214,1,214,1,215,1,215,1,216,1,216,1,217,1,217,1,218,1,218,1,219,1,219,1,220,1,220,1,221,1,221,1,222,1,222,1,223,1,223,1,224,1,224,1,225,1,225,1,226,1,226,1,227,1,227,1,228,1,228,1,229,1,229,1,230,1,230,1,231,1,231,1,232,1,232,1,232,1,233,1,233,1,234,1,234,1,235,1,235,1,236,1,236,1,237,1,237,1,238,1,238,1,238,1,239,1,239,1,240,1,240,1,241,1,241,1,241,1,242,1,242,1,243,1,243,1,243,1,244,1,244,1,245,1,245,1,246,1,246,1,247,1,247,1,247,1,248,1,248,1,249,1,249,1,250,1,250,1,250,1,250,3,250,2113,8,250,1,251,1,251,1,252,1,252,1,253,1,253,1,254,1,254,1,255,1,255,1,256,1,256,1,257,1,257,1,258,1,258,1,259,1,259,1,260,1,260,1,261,1,261,1,262,1,262,1,262,1,262,5,262,2141,8,262,10,262,12,262,2144,9,262,1,262,1,262,1,262,1,262,1,262,1,263,1,263,1,263,1,263,5,263,2155,8,263,10,263,12,263,2158,9,263,1,263,3,263,2161,8,263,1,263,1,263,1,264,1,264,1,264,1,264,1,2142,0,265,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,59,30,61,31,63,32,65,33,67,34,69,35,71,36,73,37,75,38,77,39,79,40,81,41,83,42,85,43,87,44,89,45,91,46,93,47,95,48,97,49,99,50,101,51,103,52,105,53,107,54,109,55,111,56,113,57,115,58,117,59,119,60,121,61,123,62,125,63,127,64,129,65,131,66,133,67,135,68,137,69,139,70,141,71,143,72,145,73,147,74,149,75,151,76,153,77,155,78,157,79,159,80,161,81,163,82,165,83,167,84,169,85,171,86,173,87,175,88,177,89,179,90,181,91,183,92,185,93,187,94,189,95,191,96,193,97,195,98,197,99,199,100,201,101,203,102,205,103,207,104,209,105,211,106,213,107,215,108,217,109,219,110,221,111,223,112,225,113,227,114,229,115,231,116,233,117,235,118,237,119,239,120,241,121,243,122,245,123,247,124,249,125,251,126,253,127,255,128,257,129,259,130,261,131,263,132,265,133,267,134,269,135,271,136,273,137,275,138,277,139,279,140,281,141,283,142,285,143,287,144,289,145,291,146,293,147,295,148,297,149,299,150,301,151,303,152,305,153,307,154,309,155,311,156,313,157,315,158,317,159,319,160,321,161,323,162,325,163,327,164,329,165,331,166,333,167,335,168,337,169,339,170,341,171,343,172,345,173,347,174,349,175,351,176,353,177,355,178,357,179,359,180,361,181,363,182,365,183,367,184,369,185,371,186,373,187,375,188,377,189,379,190,381,191,383,192,385,193,387,194,389,195,391,196,393,197,395,198,397,199,399,200,401,201,403,202,405,0,407,0,409,0,411,0,413,0,415,0,417,0,419,0,421,0,423,0,425,0,427,0,429,0,431,0,433,0,435,0,437,0,439,0,441,0,443,0,445,0,447,0,449,0,451,0,453,0,455,0,457,0,459,0,461,0,463,0,465,203,467,204,469,205,471,206,473,207,475,208,477,209,479,210,481,211,483,212,485,213,487,214,489,215,491,216,493,217,495,218,497,219,499,220,501,221,503,222,505,223,507,224,509,225,511,226,513,227,515,228,517,229,519,230,521,231,523,232,525,233,527,234,529,235,1,0,36,2,0,92,92,96,96,2,0,34,34,92,92,2,0,39,39,92,92,2,0,65,65,97,97,2,0,66,66,98,98,2,0,67,67,99,99,2,0,68,68,100,100,2,0,69,69,101,101,2,0,70,70,102,102,2,0,71,71,103,103,2,0,72,72,104,104,2,0,73,73,105,105,2,0,74,74,106,106,2,0,75,75,107,107,2,0,76,76,108,108,2,0,77,77,109,109,2,0,78,78,110,110,2,0,79,79,111,111,2,0,80,80,112,112,2,0,81,81,113,113,2,0,82,82,114,114,2,0,83,83,115,115,2,0,84,84,116,116,2,0,85,85,117,117,2,0,86,86,118,118,2,0,87,87,119,119,2,0,88,88,120,120,2,0,89,89,121,121,2,0,90,90,122,122,2,0,65,90,97,122,1,0,48,55,1,0,48,57,3,0,48,57,65,70,97,102,2,0,10,10,13,13,2,1,10,10,13,13,2,0,9,13,32,32,2184,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0,0,199,1,0,0,0,0,201,1,0,0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207,1,0,0,0,0,209,1,0,0,0,0,211,1,0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,0,217,1,0,0,0,0,219,1,0,0,0,0,221,1,0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,0,227,1,0,0,0,0,229,1,0,0,0,0,231,1,0,0,0,0,233,1,0,0,0,0,235,1,0,0,0,0,237,1,0,0,0,0,239,1,0,0,0,0,241,1,0,0,0,0,243,1,0,0,0,0,245,1,0,0,0,0,247,1,0,0,0,0,249,1,0,0,0,0,251,1,0,0,0,0,253,1,0,0,0,0,255,1,0,0,0,0,257,1,0,0,0,0,259,1,0,0,0,0,261,1,0,0,0,0,263,1,0,0,0,0,265,1,0,0,0,0,267,1,0,0,0,0,269,1,0,0,0,0,271,1,0,0,0,0,273,1,0,0,0,0,275,1,0,0,0,0,277,1,0,0,0,0,279,1,0,0,0,0,281,1,0,0,0,0,283,1,0,0,0,0,285,1,0,0,0,0,287,1,0,0,0,0,289,1,0,0,0,0,291,1,0,0,0,0,293,1,0,0,0,0,295,1,0,0,0,0,297,1,0,0,0,0,299,1,0,0,0,0,301,1,0,0,0,0,303,1,0,0,0,0,305,1,0,0,0,0,307,1,0,0,0,0,309,1,0,0,0,0,311,1,0,0,0,0,313,1,0,0,0,0,315,1,0,0,0,0,317,1,0,0,0,0,319,1,0,0,0,0,321,1,0,0,0,0,323,1,0,0,0,0,325,1,0,0,0,0,327,1,0,0,0,0,329,1,0,0,0,0,331,1,0,0,0,0,333,1,0,0,0,0,335,1,0,0,0,0,337,1,0,0,0,0,339,1,0,0,0,0,341,1,0,0,0,0,343,1,0,0,0,0,345,1,0,0,0,0,347,1,0,0,0,0,349,1,0,0,0,0,351,1,0,0,0,0,353,1,0,0,0,0,355,1,0,0,0,0,357,1,0,0,0,0,359,1,0,0,0,0,361,1,0,0,0,0,363,1,0,0,0,0,365,1,0,0,0,0,367,1,0,0,0,0,369,1,0,0,0,0,371,1,0,0,0,0,373,1,0,0,0,0,375,1,0,0,0,0,377,1,0,0,0,0,379,1,0,0,0,0,381,1,0,0,0,0,383,1,0,0,0,0,385,1,0,0,0,0,387,1,0,0,0,0,389,1,0,0,0,0,391,1,0,0,0,0,393,1,0,0,0,0,395,1,0,0,0,0,397,1,0,0,0,0,399,1,0,0,0,0,401,1,0,0,0,0,403,1,0,0,0,0,465,1,0,0,0,0,467,1,0,0,0,0,469,1,0,0,0,0,471,1,0,0,0,0,473,1,0,0,0,0,475,1,0,0,0,0,477,1,0,0,0,0,479,1,0,0,0,0,481,1,0,0,0,0,483,1,0,0,0,0,485,1,0,0,0,0,487,1,0,0,0,0,489,1,0,0,0,0,491,1,0,0,0,0,493,1,0,0,0,0,495,1,0,0,0,0,497,1,0,0,0,0,499,1,0,0,0,0,501,1,0,0,0,0,503,1,0,0,0,0,505,1,0,0,0,0,507,1,0,0,0,0,509,1,0,0,0,0,511,1,0,0,0,0,513,1,0,0,0,0,515,1,0,0,0,0,517,1,0,0,0,0,519,1,0,0,0,0,521,1,0,0,0,0,523,1,0,0,0,0,525,1,0,0,0,0,527,1,0,0,0,0,529,1,0,0,0,1,531,1,0,0,0,3,535,1,0,0,0,5,541,1,0,0,0,7,547,1,0,0,0,9,551,1,0,0,0,11,557,1,0,0,0,13,561,1,0,0,0,15,566,1,0,0,0,17,570,1,0,0,0,19,576,1,0,0,0,21,593,1,0,0,0,23,595,1,0,0,0,25,600,1,0,0,0,27,604,1,0,0,0,29,610,1,0,0,0,31,617,1,0,0,0,33,625,1,0,0,0,35,630,1,0,0,0,37,633,1,0,0,0,39,638,1,0,0,0,41,643,1,0,0,0,43,649,1,0,0,0,45,655,1,0,0,0,47,663,1,0,0,0,49,669,1,0,0,0,51,677,1,0,0,0,53,684,1,0,0,0,55,692,1,0,0,0,57,703,1,0,0,0,59,710,1,0,0,0,61,716,1,0,0,0,63,721,1,0,0,0,65,729,1,0,0,0,67,738,1,0,0,0,69,748,1,0,0,0,71,753,1,0,0,0,73,757,1,0,0,0,75,769,1,0,0,0,77,777,1,0,0,0,79,783,1,0,0,0,81,790,1,0,0,0,83,795,1,0,0,0,85,806,1,0,0,0,87,815,1,0,0,0,89,822,1,0,0,0,91,835,1,0,0,0,93,846,1,0,0,0,95,851,1,0,0,0,97,860,1,0,0,0,99,872,1,0,0,0,101,877,1,0,0,0,103,882,1,0,0,0,105,886,1,0,0,0,107,893,1,0,0,0,109,902,1,0,0,0,111,909,1,0,0,0,113,916,1,0,0,0,115,924,1,0,0,0,117,935,1,0,0,0,119,943,1,0,0,0,121,951,1,0,0,0,123,957,1,0,0,0,125,963,1,0,0,0,127,969,1,0,0,0,129,979,1,0,0,0,131,983,1,0,0,0,133,990,1,0,0,0,135,997,1,0,0,0,137,1002,1,0,0,0,139,1007,1,0,0,0,141,1016,1,0,0,0,143,1023,1,0,0,0,145,1035,1,0,0,0,147,1041,1,0,0,0,149,1048,1,0,0,0,151,1061,1,0,0,0,153,1066,1,0,0,0,155,1069,1,0,0,0,157,1072,1,0,0,0,159,1078,1,0,0,0,161,1081,1,0,0,0,163,1100,1,0,0,0,165,1102,1,0,0,0,167,1112,1,0,0,0,169,1118,1,0,0,0,171,1125,1,0,0,0,173,1134,1,0,0,0,175,1139,1,0,0,0,177,1142,1,0,0,0,179,1155,1,0,0,0,181,1160,1,0,0,0,183,1164,1,0,0,0,185,1169,1,0,0,0,187,1174,1,0,0,0,189,1181,1,0,0,0,191,1189,1,0,0,0,193,1194,1,0,0,0,195,1203,1,0,0,0,197,1208,1,0,0,0,199,1214,1,0,0,0,201,1219,1,0,0,0,203,1225,1,0,0,0,205,1230,1,0,0,0,207,1242,1,0,0,0,209,1255,1,0,0,0,211,1259,1,0,0,0,213,1266,1,0,0,0,215,1270,1,0,0,0,217,1277,1,0,0,0,219,1284,1,0,0,0,221,1290,1,0,0,0,223,1295,1,0,0,0,225,1304,1,0,0,0,227,1308,1,0,0,0,229,1311,1,0,0,0,231,1315,1,0,0,0,233,1320,1,0,0,0,235,1326,1,0,0,0,237,1333,1,0,0,0,239,1336,1,0,0,0,241,1345,1,0,0,0,243,1348,1,0,0,0,245,1354,1,0,0,0,247,1360,1,0,0,0,249,1368,1,0,0,0,251,1373,1,0,0,0,253,1383,1,0,0,0,255,1392,1,0,0,0,257,1397,1,0,0,0,259,1406,1,0,0,0,261,1416,1,0,0,0,263,1425,1,0,0,0,265,1433,1,0,0,0,267,1444,1,0,0,0,269,1452,1,0,0,0,271,1458,1,0,0,0,273,1464,1,0,0,0,275,1471,1,0,0,0,277,1478,1,0,0,0,279,1485,1,0,0,0,281,1493,1,0,0,0,283,1501,1,0,0,0,285,1512,1,0,0,0,287,1518,1,0,0,0,289,1525,1,0,0,0,291,1529,1,0,0,0,293,1534,1,0,0,0,295,1541,1,0,0,0,297,1548,1,0,0,0,299,1555,1,0,0,0,301,1560,1,0,0,0,303,1566,1,0,0,0,305,1570,1,0,0,0,307,1579,1,0,0,0,309,1584,1,0,0,0,311,1591,1,0,0,0,313,1597,1,0,0,0,315,1602,1,0,0,0,317,1612,1,0,0,0,319,1617,1,0,0,0,321,1624,1,0,0,0,323,1631,1,0,0,0,325,1637,1,0,0,0,327,1644,1,0,0,0,329,1654,1,0,0,0,331,1659,1,0,0,0,333,1664,1,0,0,0,335,1669,1,0,0,0,337,1677,1,0,0,0,339,1687,1,0,0,0,341,1690,1,0,0,0,343,1694,1,0,0,0,345,1701,1,0,0,0,347,1710,1,0,0,0,349,1715,1,0,0,0,351,1720,1,0,0,0,353,1729,1,0,0,0,355,1733,1,0,0,0,357,1738,1,0,0,0,359,1748,1,0,0,0,361,1754,1,0,0,0,363,1761,1,0,0,0,365,1765,1,0,0,0,367,1771,1,0,0,0,369,1776,1,0,0,0,371,1783,1,0,0,0,373,1788,1,0,0,0,375,1795,1,0,0,0,377,1801,1,0,0,0,379,1806,1,0,0,0,381,1811,1,0,0,0,383,1817,1,0,0,0,385,1824,1,0,0,0,387,1839,1,0,0,0,389,1841,1,0,0,0,391,1847,1,0,0,0,393,1894,1,0,0,0,395,1972,1,0,0,0,397,1974,1,0,0,0,399,1981,1,0,0,0,401,1985,1,0,0,0,403,1992,1,0,0,0,405,2007,1,0,0,0,407,2009,1,0,0,0,409,2011,1,0,0,0,411,2013,1,0,0,0,413,2015,1,0,0,0,415,2017,1,0,0,0,417,2019,1,0,0,0,419,2021,1,0,0,0,421,2023,1,0,0,0,423,2025,1,0,0,0,425,2027,1,0,0,0,427,2029,1,0,0,0,429,2031,1,0,0,0,431,2033,1,0,0,0,433,2035,1,0,0,0,435,2037,1,0,0,0,437,2039,1,0,0,0,439,2041,1,0,0,0,441,2043,1,0,0,0,443,2045,1,0,0,0,445,2047,1,0,0,0,447,2049,1,0,0,0,449,2051,1,0,0,0,451,2053,1,0,0,0,453,2055,1,0,0,0,455,2057,1,0,0,0,457,2059,1,0,0,0,459,2061,1,0,0,0,461,2063,1,0,0,0,463,2065,1,0,0,0,465,2067,1,0,0,0,467,2070,1,0,0,0,469,2072,1,0,0,0,471,2074,1,0,0,0,473,2076,1,0,0,0,475,2078,1,0,0,0,477,2080,1,0,0,0,479,2083,1,0,0,0,481,2085,1,0,0,0,483,2087,1,0,0,0,485,2090,1,0,0,0,487,2092,1,0,0,0,489,2095,1,0,0,0,491,2097,1,0,0,0,493,2099,1,0,0,0,495,2101,1,0,0,0,497,2104,1,0,0,0,499,2106,1,0,0,0,501,2112,1,0,0,0,503,2114,1,0,0,0,505,2116,1,0,0,0,507,2118,1,0,0,0,509,2120,1,0,0,0,511,2122,1,0,0,0,513,2124,1,0,0,0,515,2126,1,0,0,0,517,2128,1,0,0,0,519,2130,1,0,0,0,521,2132,1,0,0,0,523,2134,1,0,0,0,525,2136,1,0,0,0,527,2150,1,0,0,0,529,2164,1,0,0,0,531,532,3,405,202,0,532,533,3,411,205,0,533,534,3,411,205,0,534,2,1,0,0,0,535,536,3,405,202,0,536,537,3,415,207,0,537,538,3,443,221,0,538,539,3,413,206,0,539,540,3,439,219,0,540,4,1,0,0,0,541,542,3,405,202,0,542,543,3,427,213,0,543,544,3,421,210,0,544,545,3,405,202,0,545,546,3,441,220,0,546,6,1,0,0,0,547,548,3,405,202,0,548,549,3,427,213,0,549,550,3,427,213,0,550,8,1,0,0,0,551,552,3,405,202,0,552,553,3,427,213,0,553,554,3,443,221,0,554,555,3,413,206,0,555,556,3,439,219,0,556,10,1,0,0,0,557,558,3,405,202,0,558,559,3,431,215,0,559,560,3,411,205,0,560,12,1,0,0,0,561,562,3,405,202,0,562,563,3,431,215,0,563,564,3,443,221,0,564,565,3,421,210,0,565,14,1,0,0,0,566,567,3,405,202,0,567,568,3,431,215,0,568,569,3,453,226,0,569,16,1,0,0,0,570,571,3,405,202,0,571,572,3,439,219,0,572,573,3,439,219,0,573,574,3,405,202,0,574,575,3,453,226,0,575,18,1,0,0,0,576,577,3,405,202,0,577,578,3,441,220,0,578,20,1,0,0,0,579,580,3,405,202,0,580,581,3,441,220,0,581,582,3,409,204,0,582,594,1,0,0,0,583,584,3,405,202,0,584,585,3,441,220,0,585,586,3,409,204,0,586,587,3,413,206,0,587,588,3,431,215,0,588,589,3,411,205,0,589,590,3,421,210,0,590,591,3,431,215,0,591,592,3,417,208,0,592,594,1,0,0,0,593,579,1,0,0,0,593,583,1,0,0,0,594,22,1,0,0,0,595,596,3,405,202,0,596,597,3,441,220,0,597,598,3,433,216,0,598,599,3,415,207,0,599,24,1,0,0,0,600,601,3,405,202,0,601,602,3,441,220,0,602,603,3,443,221,0,603,26,1,0,0,0,604,605,3,405,202,0,605,606,3,441,220,0,606,607,3,453,226,0,607,608,3,431,215,0,608,609,3,409,204,0,609,28,1,0,0,0,610,611,3,405,202,0,611,612,3,443,221,0,612,613,3,443,221,0,613,614,3,405,202,0,614,615,3,409,204,0,615,616,3,419,209,0,616,30,1,0,0,0,617,618,3,407,203,0,618,619,3,413,206,0,619,620,3,443,221,0,620,621,3,449,224,0,621,622,3,413,206,0,622,623,3,413,206,0,623,624,3,431,215,0,624,32,1,0,0,0,625,626,3,407,203,0,626,627,3,433,216,0,627,628,3,443,221,0,628,629,3,419,209,0,629,34,1,0,0,0,630,631,3,407,203,0,631,632,3,453,226,0,632,36,1,0,0,0,633,634,3,409,204,0,634,635,3,405,202,0,635,636,3,441,220,0,636,637,3,413,206,0,637,38,1,0,0,0,638,639,3,409,204,0,639,640,3,405,202,0,640,641,3,441,220,0,641,642,3,443,221,0,642,40,1,0,0,0,643,644,3,409,204,0,644,645,3,419,209,0,645,646,3,413,206,0,646,647,3,409,204,0,647,648,3,425,212,0,648,42,1,0,0,0,649,650,3,409,204,0,650,651,3,427,213,0,651,652,3,413,206,0,652,653,3,405,202,0,653,654,3,439,219,0,654,44,1,0,0,0,655,656,3,409,204,0,656,657,3,427,213,0,657,658,3,445,222,0,658,659,3,441,220,0,659,660,3,443,221,0,660,661,3,413,206,0,661,662,3,439,219,0,662,46,1,0,0,0,663,664,3,409,204,0,664,665,3,433,216,0,665,666,3,411,205,0,666,667,3,413,206,0,667,668,3,409,204,0,668,48,1,0,0,0,669,670,3,409,204,0,670,671,3,433,216,0,671,672,3,427,213,0,672,673,3,427,213,0,673,674,3,405,202,0,674,675,3,443,221,0,675,676,3,413,206,0,676,50,1,0,0,0,677,678,3,409,204,0,678,679,3,433,216,0,679,680,3,427,213,0,680,681,3,445,222,0,681,682,3,429,214,0,682,683,3,431,215,0,683,52,1,0,0,0,684,685,3,409,204,0,685,686,3,433,216,0,686,687,3,429,214,0,687,688,3,429,214,0,688,689,3,413,206,0,689,690,3,431,215,0,690,691,3,443,221,0,691,54,1,0,0,0,692,693,3,409,204,0,693,694,3,433,216,0,694,695,3,431,215,0,695,696,3,441,220,0,696,697,3,443,221,0,697,698,3,439,219,0,698,699,3,405,202,0,699,700,3,421,210,0,700,701,3,431,215,0,701,702,3,443,221,0,702,56,1,0,0,0,703,704,3,409,204,0,704,705,3,439,219,0,705,706,3,413,206,0,706,707,3,405,202,0,707,708,3,443,221,0,708,709,3,413,206,0,709,58,1,0,0,0,710,711,3,409,204,0,711,712,3,439,219,0,712,713,3,433,216,0,713,714,3,441,220,0,714,715,3,441,220,0,715,60,1,0,0,0,716,717,3,409,204,0,717,718,3,445,222,0,718,719,3,407,203,0,719,720,3,413,206,0,720,62,1,0,0,0,721,722,3,409,204,0,722,723,3,445,222,0,723,724,3,439,219,0,724,725,3,439,219,0,725,726,3,413,206,0,726,727,3,431,215,0,727,728,3,443,221,0,728,64,1,0,0,0,729,730,3,411,205,0,730,731,3,405,202,0,731,732,3,443,221,0,732,733,3,405,202,0,733,734,3,407,203,0,734,735,3,405,202,0,735,736,3,441,220,0,736,737,3,413,206,0,737,66,1,0,0,0,738,739,3,411,205,0,739,740,3,405,202,0,740,741,3,443,221,0,741,742,3,405,202,0,742,743,3,407,203,0,743,744,3,405,202,0,744,745,3,441,220,0,745,746,3,413,206,0,746,747,3,441,220,0,747,68,1,0,0,0,748,749,3,411,205,0,749,750,3,405,202,0,750,751,3,443,221,0,751,752,3,413,206,0,752,70,1,0,0,0,753,754,3,411,205,0,754,755,3,405,202,0,755,756,3,453,226,0,756,72,1,0,0,0,757,758,3,411,205,0,758,759,3,413,206,0,759,760,3,411,205,0,760,761,3,445,222,0,761,762,3,435,217,0,762,763,3,427,213,0,763,764,3,421,210,0,764,765,3,409,204,0,765,766,3,405,202,0,766,767,3,443,221,0,767,768,3,413,206,0,768,74,1,0,0,0,769,770,3,411,205,0,770,771,3,413,206,0,771,772,3,415,207,0,772,773,3,405,202,0,773,774,3,445,222,0,774,775,3,427,213,0,775,776,3,443,221,0,776,76,1,0,0,0,777,778,3,411,205,0,778,779,3,413,206,0,779,780,3,427,213,0,780,781,3,405,202,0,781,782,3,453,226,0,782,78,1,0,0,0,783,784,3,411,205,0,784,785,3,413,206,0,785,786,3,427,213,0,786,787,3,413,206,0,787,788,3,443,221,0,788,789,3,413,206,0,789,80,1,0,0,0,790,791,3,411,205,0,791,792,3,413,206,0,792,793,3,441,220,0,793,794,3,409,204,0,794,82,1,0,0,0,795,796,3,411,205,0,796,797,3,413,206,0,797,798,3,441,220,0,798,799,3,409,204,0,799,800,3,413,206,0,800,801,3,431,215,0,801,802,3,411,205,0,802,803,3,421,210,0,803,804,3,431,215,0,804,805,3,417,208,0,805,84,1,0,0,0,806,807,3,411,205,0,807,808,3,413,206,0,808,809,3,441,220,0,809,810,3,409,204,0,810,811,3,439,219,0,811,812,3,421,210,0,812,813,3,407,203,0,813,814,3,413,206,0,814,86,1,0,0,0,815,816,3,411,205,0,816,817,3,413,206,0,817,818,3,443,221,0,818,819,3,405,202,0,819,820,3,409,204,0,820,821,3,419,209,0,821,88,1,0,0,0,822,823,3,411,205,0,823,824,3,421,210,0,824,825,3,409,204,0,825,826,3,443,221,0,826,827,3,421,210,0,827,828,3,433,216,0,828,829,3,431,215,0,829,830,3,405,202,0,830,831,3,439,219,0,831,832,3,421,210,0,832,833,3,413,206,0,833,834,3,441,220,0,834,90,1,0,0,0,835,836,3,411,205,0,836,837,3,421,210,0,837,838,3,409,204,0,838,839,3,443,221,0,839,840,3,421,210,0,840,841,3,433,216,0,841,842,3,431,215,0,842,843,3,405,202,0,843,844,3,439,219,0,844,845,3,453,226,0,845,92,1,0,0,0,846,847,3,411,205,0,847,848,3,421,210,0,848,849,3,441,220,0,849,850,3,425,212,0,850,94,1,0,0,0,851,852,3,411,205,0,852,853,3,421,210,0,853,854,3,441,220,0,854,855,3,443,221,0,855,856,3,421,210,0,856,857,3,431,215,0,857,858,3,409,204,0,858,859,3,443,221,0,859,96,1,0,0,0,860,861,3,411,205,0,861,862,3,421,210,0,862,863,3,441,220,0,863,864,3,443,221,0,864,865,3,439,219,0,865,866,3,421,210,0,866,867,3,407,203,0,867,868,3,445,222,0,868,869,3,443,221,0,869,870,3,413,206,0,870,871,3,411,205,0,871,98,1,0,0,0,872,873,3,411,205,0,873,874,3,439,219,0,874,875,3,433,216,0,875,876,3,435,217,0,876,100,1,0,0,0,877,878,3,413,206,0,878,879,3,427,213,0,879,880,3,441,220,0,880,881,3,413,206,0,881,102,1,0,0,0,882,883,3,413,206,0,883,884,3,431,215,0,884,885,3,411,205,0,885,104,1,0,0,0,886,887,3,413,206,0,887,888,3,431,215,0,888,889,3,417,208,0,889,890,3,421,210,0,890,891,3,431,215,0,891,892,3,413,206,0,892,106,1,0,0,0,893,894,3,413,206,0,894,895,3,441,220,0,895,896,3,443,221,0,896,897,3,421,210,0,897,898,3,429,214,0,898,899,3,405,202,0,899,900,3,443,221,0,900,901,3,413,206,0,901,108,1,0,0,0,902,903,3,413,206,0,903,904,3,447,223,0,904,905,3,413,206,0,905,906,3,431,215,0,906,907,3,443,221,0,907,908,3,441,220,0,908,110,1,0,0,0,909,910,3,413,206,0,910,911,3,451,225,0,911,912,3,421,210,0,912,913,3,441,220,0,913,914,3,443,221,0,914,915,3,441,220,0,915,112,1,0,0,0,916,917,3,413,206,0,917,918,3,451,225,0,918,919,3,435,217,0,919,920,3,427,213,0,920,921,3,405,202,0,921,922,3,421,210,0,922,923,3,431,215,0,923,114,1,0,0,0,924,925,3,413,206,0,925,926,3,451,225,0,926,927,3,435,217,0,927,928,3,439,219,0,928,929,3,413,206,0,929,930,3,441,220,0,930,931,3,441,220,0,931,932,3,421,210,0,932,933,3,433,216,0,933,934,3,431,215,0,934,116,1,0,0,0,935,936,3,413,206,0,936,937,3,451,225,0,937,938,3,443,221,0,938,939,3,439,219,0,939,940,3,405,202,0,940,941,3,409,204,0,941,942,3,443,221,0,942,118,1,0,0,0,943,944,3,415,207,0,944,945,3,413,206,0,945,946,3,443,221,0,946,947,3,409,204,0,947,948,3,419,209,0,948,949,3,413,206,0,949,950,3,441,220,0,950,120,1,0,0,0,951,952,3,415,207,0,952,953,3,421,210,0,953,954,3,431,215,0,954,955,3,405,202,0,955,956,3,427,213,0,956,122,1,0,0,0,957,958,3,415,207,0,958,959,3,421,210,0,959,960,3,439,219,0,960,961,3,441,220,0,961,962,3,443,221,0,962,124,1,0,0,0,963,964,3,415,207,0,964,965,3,427,213,0,965,966,3,445,222,0,966,967,3,441,220,0,967,968,3,419,209,0,968,126,1,0,0,0,969,970,3,415,207,0,970,971,3,433,216,0,971,972,3,427,213,0,972,973,3,427,213,0,973,974,3,433,216,0,974,975,3,449,224,0,975,976,3,421,210,0,976,977,3,431,215,0,977,978,3,417,208,0,978,128,1,0,0,0,979,980,3,415,207,0,980,981,3,433,216,0,981,982,3,439,219,0,982,130,1,0,0,0,983,984,3,415,207,0,984,985,3,433,216,0,985,986,3,439,219,0,986,987,3,429,214,0,987,988,3,405,202,0,988,989,3,443,221,0,989,132,1,0,0,0,990,991,3,415,207,0,991,992,3,439,219,0,992,993,3,413,206,0,993,994,3,413,206,0,994,995,3,455,227,0,995,996,3,413,206,0,996,134,1,0,0,0,997,998,3,415,207,0,998,999,3,439,219,0,999,1e3,3,433,216,0,1e3,1001,3,429,214,0,1001,136,1,0,0,0,1002,1003,3,415,207,0,1003,1004,3,445,222,0,1004,1005,3,427,213,0,1005,1006,3,427,213,0,1006,138,1,0,0,0,1007,1008,3,415,207,0,1008,1009,3,445,222,0,1009,1010,3,431,215,0,1010,1011,3,409,204,0,1011,1012,3,443,221,0,1012,1013,3,421,210,0,1013,1014,3,433,216,0,1014,1015,3,431,215,0,1015,140,1,0,0,0,1016,1017,3,417,208,0,1017,1018,3,427,213,0,1018,1019,3,433,216,0,1019,1020,3,407,203,0,1020,1021,3,405,202,0,1021,1022,3,427,213,0,1022,142,1,0,0,0,1023,1024,3,417,208,0,1024,1025,3,439,219,0,1025,1026,3,405,202,0,1026,1027,3,431,215,0,1027,1028,3,445,222,0,1028,1029,3,427,213,0,1029,1030,3,405,202,0,1030,1031,3,439,219,0,1031,1032,3,421,210,0,1032,1033,3,443,221,0,1033,1034,3,453,226,0,1034,144,1,0,0,0,1035,1036,3,417,208,0,1036,1037,3,439,219,0,1037,1038,3,433,216,0,1038,1039,3,445,222,0,1039,1040,3,435,217,0,1040,146,1,0,0,0,1041,1042,3,419,209,0,1042,1043,3,405,202,0,1043,1044,3,447,223,0,1044,1045,3,421,210,0,1045,1046,3,431,215,0,1046,1047,3,417,208,0,1047,148,1,0,0,0,1048,1049,3,419,209,0,1049,1050,3,421,210,0,1050,1051,3,413,206,0,1051,1052,3,439,219,0,1052,1053,3,405,202,0,1053,1054,3,439,219,0,1054,1055,3,409,204,0,1055,1056,3,419,209,0,1056,1057,3,421,210,0,1057,1058,3,409,204,0,1058,1059,3,405,202,0,1059,1060,3,427,213,0,1060,150,1,0,0,0,1061,1062,3,419,209,0,1062,1063,3,433,216,0,1063,1064,3,445,222,0,1064,1065,3,439,219,0,1065,152,1,0,0,0,1066,1067,3,421,210,0,1067,1068,3,411,205,0,1068,154,1,0,0,0,1069,1070,3,421,210,0,1070,1071,3,415,207,0,1071,156,1,0,0,0,1072,1073,3,421,210,0,1073,1074,3,427,213,0,1074,1075,3,421,210,0,1075,1076,3,425,212,0,1076,1077,3,413,206,0,1077,158,1,0,0,0,1078,1079,3,421,210,0,1079,1080,3,431,215,0,1080,160,1,0,0,0,1081,1082,3,421,210,0,1082,1083,3,431,215,0,1083,1084,3,411,205,0,1084,1085,3,413,206,0,1085,1086,3,451,225,0,1086,162,1,0,0,0,1087,1088,3,421,210,0,1088,1089,3,431,215,0,1089,1090,3,415,207,0,1090,1101,1,0,0,0,1091,1092,3,421,210,0,1092,1093,3,431,215,0,1093,1094,3,415,207,0,1094,1095,3,421,210,0,1095,1096,3,431,215,0,1096,1097,3,421,210,0,1097,1098,3,443,221,0,1098,1099,3,453,226,0,1099,1101,1,0,0,0,1100,1087,1,0,0,0,1100,1091,1,0,0,0,1101,164,1,0,0,0,1102,1103,3,421,210,0,1103,1104,3,431,215,0,1104,1105,3,423,211,0,1105,1106,3,413,206,0,1106,1107,3,409,204,0,1107,1108,3,443,221,0,1108,1109,3,421,210,0,1109,1110,3,447,223,0,1110,1111,3,413,206,0,1111,166,1,0,0,0,1112,1113,3,421,210,0,1113,1114,3,431,215,0,1114,1115,3,431,215,0,1115,1116,3,413,206,0,1116,1117,3,439,219,0,1117,168,1,0,0,0,1118,1119,3,421,210,0,1119,1120,3,431,215,0,1120,1121,3,441,220,0,1121,1122,3,413,206,0,1122,1123,3,439,219,0,1123,1124,3,443,221,0,1124,170,1,0,0,0,1125,1126,3,421,210,0,1126,1127,3,431,215,0,1127,1128,3,443,221,0,1128,1129,3,413,206,0,1129,1130,3,439,219,0,1130,1131,3,447,223,0,1131,1132,3,405,202,0,1132,1133,3,427,213,0,1133,172,1,0,0,0,1134,1135,3,421,210,0,1135,1136,3,431,215,0,1136,1137,3,443,221,0,1137,1138,3,433,216,0,1138,174,1,0,0,0,1139,1140,3,421,210,0,1140,1141,3,441,220,0,1141,176,1,0,0,0,1142,1143,3,421,210,0,1143,1144,3,441,220,0,1144,1145,3,523,261,0,1145,1146,3,433,216,0,1146,1147,3,407,203,0,1147,1148,3,423,211,0,1148,1149,3,413,206,0,1149,1150,3,409,204,0,1150,1151,3,443,221,0,1151,1152,3,523,261,0,1152,1153,3,421,210,0,1153,1154,3,411,205,0,1154,178,1,0,0,0,1155,1156,3,423,211,0,1156,1157,3,433,216,0,1157,1158,3,421,210,0,1158,1159,3,431,215,0,1159,180,1,0,0,0,1160,1161,3,425,212,0,1161,1162,3,413,206,0,1162,1163,3,453,226,0,1163,182,1,0,0,0,1164,1165,3,425,212,0,1165,1166,3,421,210,0,1166,1167,3,427,213,0,1167,1168,3,427,213,0,1168,184,1,0,0,0,1169,1170,3,427,213,0,1170,1171,3,405,202,0,1171,1172,3,441,220,0,1172,1173,3,443,221,0,1173,186,1,0,0,0,1174,1175,3,427,213,0,1175,1176,3,405,202,0,1176,1177,3,453,226,0,1177,1178,3,433,216,0,1178,1179,3,445,222,0,1179,1180,3,443,221,0,1180,188,1,0,0,0,1181,1182,3,427,213,0,1182,1183,3,413,206,0,1183,1184,3,405,202,0,1184,1185,3,411,205,0,1185,1186,3,421,210,0,1186,1187,3,431,215,0,1187,1188,3,417,208,0,1188,190,1,0,0,0,1189,1190,3,427,213,0,1190,1191,3,413,206,0,1191,1192,3,415,207,0,1192,1193,3,443,221,0,1193,192,1,0,0,0,1194,1195,3,427,213,0,1195,1196,3,421,210,0,1196,1197,3,415,207,0,1197,1198,3,413,206,0,1198,1199,3,443,221,0,1199,1200,3,421,210,0,1200,1201,3,429,214,0,1201,1202,3,413,206,0,1202,194,1,0,0,0,1203,1204,3,427,213,0,1204,1205,3,421,210,0,1205,1206,3,425,212,0,1206,1207,3,413,206,0,1207,196,1,0,0,0,1208,1209,3,427,213,0,1209,1210,3,421,210,0,1210,1211,3,429,214,0,1211,1212,3,421,210,0,1212,1213,3,443,221,0,1213,198,1,0,0,0,1214,1215,3,427,213,0,1215,1216,3,421,210,0,1216,1217,3,447,223,0,1217,1218,3,413,206,0,1218,200,1,0,0,0,1219,1220,3,427,213,0,1220,1221,3,433,216,0,1221,1222,3,409,204,0,1222,1223,3,405,202,0,1223,1224,3,427,213,0,1224,202,1,0,0,0,1225,1226,3,427,213,0,1226,1227,3,433,216,0,1227,1228,3,417,208,0,1228,1229,3,441,220,0,1229,204,1,0,0,0,1230,1231,3,429,214,0,1231,1232,3,405,202,0,1232,1233,3,443,221,0,1233,1234,3,413,206,0,1234,1235,3,439,219,0,1235,1236,3,421,210,0,1236,1237,3,405,202,0,1237,1238,3,427,213,0,1238,1239,3,421,210,0,1239,1240,3,455,227,0,1240,1241,3,413,206,0,1241,206,1,0,0,0,1242,1243,3,429,214,0,1243,1244,3,405,202,0,1244,1245,3,443,221,0,1245,1246,3,413,206,0,1246,1247,3,439,219,0,1247,1248,3,421,210,0,1248,1249,3,405,202,0,1249,1250,3,427,213,0,1250,1251,3,421,210,0,1251,1252,3,455,227,0,1252,1253,3,413,206,0,1253,1254,3,411,205,0,1254,208,1,0,0,0,1255,1256,3,429,214,0,1256,1257,3,405,202,0,1257,1258,3,451,225,0,1258,210,1,0,0,0,1259,1260,3,429,214,0,1260,1261,3,413,206,0,1261,1262,3,439,219,0,1262,1263,3,417,208,0,1263,1264,3,413,206,0,1264,1265,3,441,220,0,1265,212,1,0,0,0,1266,1267,3,429,214,0,1267,1268,3,421,210,0,1268,1269,3,431,215,0,1269,214,1,0,0,0,1270,1271,3,429,214,0,1271,1272,3,421,210,0,1272,1273,3,431,215,0,1273,1274,3,445,222,0,1274,1275,3,443,221,0,1275,1276,3,413,206,0,1276,216,1,0,0,0,1277,1278,3,429,214,0,1278,1279,3,433,216,0,1279,1280,3,411,205,0,1280,1281,3,421,210,0,1281,1282,3,415,207,0,1282,1283,3,453,226,0,1283,218,1,0,0,0,1284,1285,3,429,214,0,1285,1286,3,433,216,0,1286,1287,3,431,215,0,1287,1288,3,443,221,0,1288,1289,3,419,209,0,1289,220,1,0,0,0,1290,1291,3,429,214,0,1291,1292,3,433,216,0,1292,1293,3,447,223,0,1293,1294,3,413,206,0,1294,222,1,0,0,0,1295,1296,3,429,214,0,1296,1297,3,445,222,0,1297,1298,3,443,221,0,1298,1299,3,405,202,0,1299,1300,3,443,221,0,1300,1301,3,421,210,0,1301,1302,3,433,216,0,1302,1303,3,431,215,0,1303,224,1,0,0,0,1304,1305,3,431,215,0,1305,1306,3,405,202,0,1306,1307,3,431,215,0,1307,226,1,0,0,0,1308,1309,3,431,215,0,1309,1310,3,433,216,0,1310,228,1,0,0,0,1311,1312,3,431,215,0,1312,1313,3,433,216,0,1313,1314,3,443,221,0,1314,230,1,0,0,0,1315,1316,3,431,215,0,1316,1317,3,445,222,0,1317,1318,3,427,213,0,1318,1319,3,427,213,0,1319,232,1,0,0,0,1320,1321,3,431,215,0,1321,1322,3,445,222,0,1322,1323,3,427,213,0,1323,1324,3,427,213,0,1324,1325,3,441,220,0,1325,234,1,0,0,0,1326,1327,3,433,216,0,1327,1328,3,415,207,0,1328,1329,3,415,207,0,1329,1330,3,441,220,0,1330,1331,3,413,206,0,1331,1332,3,443,221,0,1332,236,1,0,0,0,1333,1334,3,433,216,0,1334,1335,3,431,215,0,1335,238,1,0,0,0,1336,1337,3,433,216,0,1337,1338,3,435,217,0,1338,1339,3,443,221,0,1339,1340,3,421,210,0,1340,1341,3,429,214,0,1341,1342,3,421,210,0,1342,1343,3,455,227,0,1343,1344,3,413,206,0,1344,240,1,0,0,0,1345,1346,3,433,216,0,1346,1347,3,439,219,0,1347,242,1,0,0,0,1348,1349,3,433,216,0,1349,1350,3,439,219,0,1350,1351,3,411,205,0,1351,1352,3,413,206,0,1352,1353,3,439,219,0,1353,244,1,0,0,0,1354,1355,3,433,216,0,1355,1356,3,445,222,0,1356,1357,3,443,221,0,1357,1358,3,413,206,0,1358,1359,3,439,219,0,1359,246,1,0,0,0,1360,1361,3,433,216,0,1361,1362,3,445,222,0,1362,1363,3,443,221,0,1363,1364,3,415,207,0,1364,1365,3,421,210,0,1365,1366,3,427,213,0,1366,1367,3,413,206,0,1367,248,1,0,0,0,1368,1369,3,433,216,0,1369,1370,3,447,223,0,1370,1371,3,413,206,0,1371,1372,3,439,219,0,1372,250,1,0,0,0,1373,1374,3,435,217,0,1374,1375,3,405,202,0,1375,1376,3,439,219,0,1376,1377,3,443,221,0,1377,1378,3,421,210,0,1378,1379,3,443,221,0,1379,1380,3,421,210,0,1380,1381,3,433,216,0,1381,1382,3,431,215,0,1382,252,1,0,0,0,1383,1384,3,435,217,0,1384,1385,3,421,210,0,1385,1386,3,435,217,0,1386,1387,3,413,206,0,1387,1388,3,427,213,0,1388,1389,3,421,210,0,1389,1390,3,431,215,0,1390,1391,3,413,206,0,1391,254,1,0,0,0,1392,1393,3,435,217,0,1393,1394,3,427,213,0,1394,1395,3,405,202,0,1395,1396,3,431,215,0,1396,256,1,0,0,0,1397,1398,3,435,217,0,1398,1399,3,433,216,0,1399,1400,3,435,217,0,1400,1401,3,445,222,0,1401,1402,3,427,213,0,1402,1403,3,405,202,0,1403,1404,3,443,221,0,1404,1405,3,413,206,0,1405,258,1,0,0,0,1406,1407,3,435,217,0,1407,1408,3,439,219,0,1408,1409,3,413,206,0,1409,1410,3,409,204,0,1410,1411,3,413,206,0,1411,1412,3,411,205,0,1412,1413,3,421,210,0,1413,1414,3,431,215,0,1414,1415,3,417,208,0,1415,260,1,0,0,0,1416,1417,3,435,217,0,1417,1418,3,439,219,0,1418,1419,3,413,206,0,1419,1420,3,449,224,0,1420,1421,3,419,209,0,1421,1422,3,413,206,0,1422,1423,3,439,219,0,1423,1424,3,413,206,0,1424,262,1,0,0,0,1425,1426,3,435,217,0,1426,1427,3,439,219,0,1427,1428,3,421,210,0,1428,1429,3,429,214,0,1429,1430,3,405,202,0,1430,1431,3,439,219,0,1431,1432,3,453,226,0,1432,264,1,0,0,0,1433,1434,3,435,217,0,1434,1435,3,439,219,0,1435,1436,3,433,216,0,1436,1437,3,423,211,0,1437,1438,3,413,206,0,1438,1439,3,409,204,0,1439,1440,3,443,221,0,1440,1441,3,421,210,0,1441,1442,3,433,216,0,1442,1443,3,431,215,0,1443,266,1,0,0,0,1444,1445,3,437,218,0,1445,1446,3,445,222,0,1446,1447,3,405,202,0,1447,1448,3,439,219,0,1448,1449,3,443,221,0,1449,1450,3,413,206,0,1450,1451,3,439,219,0,1451,268,1,0,0,0,1452,1453,3,437,218,0,1453,1454,3,445,222,0,1454,1455,3,413,206,0,1455,1456,3,439,219,0,1456,1457,3,453,226,0,1457,270,1,0,0,0,1458,1459,3,439,219,0,1459,1460,3,405,202,0,1460,1461,3,431,215,0,1461,1462,3,417,208,0,1462,1463,3,413,206,0,1463,272,1,0,0,0,1464,1465,3,439,219,0,1465,1466,3,413,206,0,1466,1467,3,427,213,0,1467,1468,3,433,216,0,1468,1469,3,405,202,0,1469,1470,3,411,205,0,1470,274,1,0,0,0,1471,1472,3,439,219,0,1472,1473,3,413,206,0,1473,1474,3,429,214,0,1474,1475,3,433,216,0,1475,1476,3,447,223,0,1476,1477,3,413,206,0,1477,276,1,0,0,0,1478,1479,3,439,219,0,1479,1480,3,413,206,0,1480,1481,3,431,215,0,1481,1482,3,405,202,0,1482,1483,3,429,214,0,1483,1484,3,413,206,0,1484,278,1,0,0,0,1485,1486,3,439,219,0,1486,1487,3,413,206,0,1487,1488,3,435,217,0,1488,1489,3,427,213,0,1489,1490,3,405,202,0,1490,1491,3,409,204,0,1491,1492,3,413,206,0,1492,280,1,0,0,0,1493,1494,3,439,219,0,1494,1495,3,413,206,0,1495,1496,3,435,217,0,1496,1497,3,427,213,0,1497,1498,3,421,210,0,1498,1499,3,409,204,0,1499,1500,3,405,202,0,1500,282,1,0,0,0,1501,1502,3,439,219,0,1502,1503,3,413,206,0,1503,1504,3,435,217,0,1504,1505,3,427,213,0,1505,1506,3,421,210,0,1506,1507,3,409,204,0,1507,1508,3,405,202,0,1508,1509,3,443,221,0,1509,1510,3,413,206,0,1510,1511,3,411,205,0,1511,284,1,0,0,0,1512,1513,3,439,219,0,1513,1514,3,421,210,0,1514,1515,3,417,208,0,1515,1516,3,419,209,0,1516,1517,3,443,221,0,1517,286,1,0,0,0,1518,1519,3,439,219,0,1519,1520,3,433,216,0,1520,1521,3,427,213,0,1521,1522,3,427,213,0,1522,1523,3,445,222,0,1523,1524,3,435,217,0,1524,288,1,0,0,0,1525,1526,3,439,219,0,1526,1527,3,433,216,0,1527,1528,3,449,224,0,1528,290,1,0,0,0,1529,1530,3,439,219,0,1530,1531,3,433,216,0,1531,1532,3,449,224,0,1532,1533,3,441,220,0,1533,292,1,0,0,0,1534,1535,3,441,220,0,1535,1536,3,405,202,0,1536,1537,3,429,214,0,1537,1538,3,435,217,0,1538,1539,3,427,213,0,1539,1540,3,413,206,0,1540,294,1,0,0,0,1541,1542,3,441,220,0,1542,1543,3,413,206,0,1543,1544,3,409,204,0,1544,1545,3,433,216,0,1545,1546,3,431,215,0,1546,1547,3,411,205,0,1547,296,1,0,0,0,1548,1549,3,441,220,0,1549,1550,3,413,206,0,1550,1551,3,427,213,0,1551,1552,3,413,206,0,1552,1553,3,409,204,0,1553,1554,3,443,221,0,1554,298,1,0,0,0,1555,1556,3,441,220,0,1556,1557,3,413,206,0,1557,1558,3,429,214,0,1558,1559,3,421,210,0,1559,300,1,0,0,0,1560,1561,3,441,220,0,1561,1562,3,413,206,0,1562,1563,3,431,215,0,1563,1564,3,411,205,0,1564,1565,3,441,220,0,1565,302,1,0,0,0,1566,1567,3,441,220,0,1567,1568,3,413,206,0,1568,1569,3,443,221,0,1569,304,1,0,0,0,1570,1571,3,441,220,0,1571,1572,3,413,206,0,1572,1573,3,443,221,0,1573,1574,3,443,221,0,1574,1575,3,421,210,0,1575,1576,3,431,215,0,1576,1577,3,417,208,0,1577,1578,3,441,220,0,1578,306,1,0,0,0,1579,1580,3,441,220,0,1580,1581,3,419,209,0,1581,1582,3,433,216,0,1582,1583,3,449,224,0,1583,308,1,0,0,0,1584,1585,3,441,220,0,1585,1586,3,433,216,0,1586,1587,3,445,222,0,1587,1588,3,439,219,0,1588,1589,3,409,204,0,1589,1590,3,413,206,0,1590,310,1,0,0,0,1591,1592,3,441,220,0,1592,1593,3,443,221,0,1593,1594,3,405,202,0,1594,1595,3,439,219,0,1595,1596,3,443,221,0,1596,312,1,0,0,0,1597,1598,3,441,220,0,1598,1599,3,443,221,0,1599,1600,3,433,216,0,1600,1601,3,435,217,0,1601,314,1,0,0,0,1602,1603,3,441,220,0,1603,1604,3,445,222,0,1604,1605,3,407,203,0,1605,1606,3,441,220,0,1606,1607,3,443,221,0,1607,1608,3,439,219,0,1608,1609,3,421,210,0,1609,1610,3,431,215,0,1610,1611,3,417,208,0,1611,316,1,0,0,0,1612,1613,3,441,220,0,1613,1614,3,453,226,0,1614,1615,3,431,215,0,1615,1616,3,409,204,0,1616,318,1,0,0,0,1617,1618,3,441,220,0,1618,1619,3,453,226,0,1619,1620,3,431,215,0,1620,1621,3,443,221,0,1621,1622,3,405,202,0,1622,1623,3,451,225,0,1623,320,1,0,0,0,1624,1625,3,441,220,0,1625,1626,3,453,226,0,1626,1627,3,441,220,0,1627,1628,3,443,221,0,1628,1629,3,413,206,0,1629,1630,3,429,214,0,1630,322,1,0,0,0,1631,1632,3,443,221,0,1632,1633,3,405,202,0,1633,1634,3,407,203,0,1634,1635,3,427,213,0,1635,1636,3,413,206,0,1636,324,1,0,0,0,1637,1638,3,443,221,0,1638,1639,3,405,202,0,1639,1640,3,407,203,0,1640,1641,3,427,213,0,1641,1642,3,413,206,0,1642,1643,3,441,220,0,1643,326,1,0,0,0,1644,1645,3,443,221,0,1645,1646,3,413,206,0,1646,1647,3,429,214,0,1647,1648,3,435,217,0,1648,1649,3,433,216,0,1649,1650,3,439,219,0,1650,1651,3,405,202,0,1651,1652,3,439,219,0,1652,1653,3,453,226,0,1653,328,1,0,0,0,1654,1655,3,443,221,0,1655,1656,3,413,206,0,1656,1657,3,441,220,0,1657,1658,3,443,221,0,1658,330,1,0,0,0,1659,1660,3,443,221,0,1660,1661,3,419,209,0,1661,1662,3,413,206,0,1662,1663,3,431,215,0,1663,332,1,0,0,0,1664,1665,3,443,221,0,1665,1666,3,421,210,0,1666,1667,3,413,206,0,1667,1668,3,441,220,0,1668,334,1,0,0,0,1669,1670,3,443,221,0,1670,1671,3,421,210,0,1671,1672,3,429,214,0,1672,1673,3,413,206,0,1673,1674,3,433,216,0,1674,1675,3,445,222,0,1675,1676,3,443,221,0,1676,336,1,0,0,0,1677,1678,3,443,221,0,1678,1679,3,421,210,0,1679,1680,3,429,214,0,1680,1681,3,413,206,0,1681,1682,3,441,220,0,1682,1683,3,443,221,0,1683,1684,3,405,202,0,1684,1685,3,429,214,0,1685,1686,3,435,217,0,1686,338,1,0,0,0,1687,1688,3,443,221,0,1688,1689,3,433,216,0,1689,340,1,0,0,0,1690,1691,3,443,221,0,1691,1692,3,433,216,0,1692,1693,3,435,217,0,1693,342,1,0,0,0,1694,1695,3,443,221,0,1695,1696,3,433,216,0,1696,1697,3,443,221,0,1697,1698,3,405,202,0,1698,1699,3,427,213,0,1699,1700,3,441,220,0,1700,344,1,0,0,0,1701,1702,3,443,221,0,1702,1703,3,439,219,0,1703,1704,3,405,202,0,1704,1705,3,421,210,0,1705,1706,3,427,213,0,1706,1707,3,421,210,0,1707,1708,3,431,215,0,1708,1709,3,417,208,0,1709,346,1,0,0,0,1710,1711,3,443,221,0,1711,1712,3,439,219,0,1712,1713,3,421,210,0,1713,1714,3,429,214,0,1714,348,1,0,0,0,1715,1716,3,443,221,0,1716,1717,3,439,219,0,1717,1718,3,413,206,0,1718,1719,3,413,206,0,1719,350,1,0,0,0,1720,1721,3,443,221,0,1721,1722,3,439,219,0,1722,1723,3,445,222,0,1723,1724,3,431,215,0,1724,1725,3,409,204,0,1725,1726,3,405,202,0,1726,1727,3,443,221,0,1727,1728,3,413,206,0,1728,352,1,0,0,0,1729,1730,3,443,221,0,1730,1731,3,443,221,0,1731,1732,3,427,213,0,1732,354,1,0,0,0,1733,1734,3,443,221,0,1734,1735,3,453,226,0,1735,1736,3,435,217,0,1736,1737,3,413,206,0,1737,356,1,0,0,0,1738,1739,3,445,222,0,1739,1740,3,431,215,0,1740,1741,3,407,203,0,1741,1742,3,433,216,0,1742,1743,3,445,222,0,1743,1744,3,431,215,0,1744,1745,3,411,205,0,1745,1746,3,413,206,0,1746,1747,3,411,205,0,1747,358,1,0,0,0,1748,1749,3,445,222,0,1749,1750,3,431,215,0,1750,1751,3,421,210,0,1751,1752,3,433,216,0,1752,1753,3,431,215,0,1753,360,1,0,0,0,1754,1755,3,445,222,0,1755,1756,3,435,217,0,1756,1757,3,411,205,0,1757,1758,3,405,202,0,1758,1759,3,443,221,0,1759,1760,3,413,206,0,1760,362,1,0,0,0,1761,1762,3,445,222,0,1762,1763,3,441,220,0,1763,1764,3,413,206,0,1764,364,1,0,0,0,1765,1766,3,445,222,0,1766,1767,3,441,220,0,1767,1768,3,421,210,0,1768,1769,3,431,215,0,1769,1770,3,417,208,0,1770,366,1,0,0,0,1771,1772,3,445,222,0,1772,1773,3,445,222,0,1773,1774,3,421,210,0,1774,1775,3,411,205,0,1775,368,1,0,0,0,1776,1777,3,447,223,0,1777,1778,3,405,202,0,1778,1779,3,427,213,0,1779,1780,3,445,222,0,1780,1781,3,413,206,0,1781,1782,3,441,220,0,1782,370,1,0,0,0,1783,1784,3,447,223,0,1784,1785,3,421,210,0,1785,1786,3,413,206,0,1786,1787,3,449,224,0,1787,372,1,0,0,0,1788,1789,3,447,223,0,1789,1790,3,433,216,0,1790,1791,3,427,213,0,1791,1792,3,445,222,0,1792,1793,3,429,214,0,1793,1794,3,413,206,0,1794,374,1,0,0,0,1795,1796,3,449,224,0,1796,1797,3,405,202,0,1797,1798,3,443,221,0,1798,1799,3,409,204,0,1799,1800,3,419,209,0,1800,376,1,0,0,0,1801,1802,3,449,224,0,1802,1803,3,413,206,0,1803,1804,3,413,206,0,1804,1805,3,425,212,0,1805,378,1,0,0,0,1806,1807,3,449,224,0,1807,1808,3,419,209,0,1808,1809,3,413,206,0,1809,1810,3,431,215,0,1810,380,1,0,0,0,1811,1812,3,449,224,0,1812,1813,3,419,209,0,1813,1814,3,413,206,0,1814,1815,3,439,219,0,1815,1816,3,413,206,0,1816,382,1,0,0,0,1817,1818,3,449,224,0,1818,1819,3,421,210,0,1819,1820,3,431,215,0,1820,1821,3,411,205,0,1821,1822,3,433,216,0,1822,1823,3,449,224,0,1823,384,1,0,0,0,1824,1825,3,449,224,0,1825,1826,3,421,210,0,1826,1827,3,443,221,0,1827,1828,3,419,209,0,1828,386,1,0,0,0,1829,1830,3,453,226,0,1830,1831,3,413,206,0,1831,1832,3,405,202,0,1832,1833,3,439,219,0,1833,1840,1,0,0,0,1834,1835,3,453,226,0,1835,1836,3,453,226,0,1836,1837,3,453,226,0,1837,1838,3,453,226,0,1838,1840,1,0,0,0,1839,1829,1,0,0,0,1839,1834,1,0,0,0,1840,388,1,0,0,0,1841,1842,5,102,0,0,1842,1843,5,97,0,0,1843,1844,5,108,0,0,1844,1845,5,115,0,0,1845,1846,5,101,0,0,1846,390,1,0,0,0,1847,1848,5,116,0,0,1848,1849,5,114,0,0,1849,1850,5,117,0,0,1850,1851,5,101,0,0,1851,392,1,0,0,0,1852,1855,3,457,228,0,1853,1855,3,523,261,0,1854,1852,1,0,0,0,1854,1853,1,0,0,0,1855,1861,1,0,0,0,1856,1860,3,457,228,0,1857,1860,3,523,261,0,1858,1860,3,461,230,0,1859,1856,1,0,0,0,1859,1857,1,0,0,0,1859,1858,1,0,0,0,1860,1863,1,0,0,0,1861,1859,1,0,0,0,1861,1862,1,0,0,0,1862,1895,1,0,0,0,1863,1861,1,0,0,0,1864,1874,3,469,234,0,1865,1873,8,0,0,0,1866,1867,3,471,235,0,1867,1868,9,0,0,0,1868,1873,1,0,0,0,1869,1870,3,469,234,0,1870,1871,3,469,234,0,1871,1873,1,0,0,0,1872,1865,1,0,0,0,1872,1866,1,0,0,0,1872,1869,1,0,0,0,1873,1876,1,0,0,0,1874,1872,1,0,0,0,1874,1875,1,0,0,0,1875,1877,1,0,0,0,1876,1874,1,0,0,0,1877,1878,3,469,234,0,1878,1895,1,0,0,0,1879,1889,3,509,254,0,1880,1888,8,1,0,0,1881,1882,3,471,235,0,1882,1883,9,0,0,0,1883,1888,1,0,0,0,1884,1885,3,509,254,0,1885,1886,3,509,254,0,1886,1888,1,0,0,0,1887,1880,1,0,0,0,1887,1881,1,0,0,0,1887,1884,1,0,0,0,1888,1891,1,0,0,0,1889,1887,1,0,0,0,1889,1890,1,0,0,0,1890,1892,1,0,0,0,1891,1889,1,0,0,0,1892,1893,3,509,254,0,1893,1895,1,0,0,0,1894,1854,1,0,0,0,1894,1864,1,0,0,0,1894,1879,1,0,0,0,1895,394,1,0,0,0,1896,1897,3,401,200,0,1897,1901,3,481,240,0,1898,1900,3,463,231,0,1899,1898,1,0,0,0,1900,1903,1,0,0,0,1901,1899,1,0,0,0,1901,1902,1,0,0,0,1902,1906,1,0,0,0,1903,1901,1,0,0,0,1904,1907,3,435,217,0,1905,1907,3,413,206,0,1906,1904,1,0,0,0,1906,1905,1,0,0,0,1907,1910,1,0,0,0,1908,1911,3,505,252,0,1909,1911,3,479,239,0,1910,1908,1,0,0,0,1910,1909,1,0,0,0,1910,1911,1,0,0,0,1911,1913,1,0,0,0,1912,1914,3,461,230,0,1913,1912,1,0,0,0,1914,1915,1,0,0,0,1915,1913,1,0,0,0,1915,1916,1,0,0,0,1916,1973,1,0,0,0,1917,1920,3,401,200,0,1918,1921,3,435,217,0,1919,1921,3,413,206,0,1920,1918,1,0,0,0,1920,1919,1,0,0,0,1921,1924,1,0,0,0,1922,1925,3,505,252,0,1923,1925,3,479,239,0,1924,1922,1,0,0,0,1924,1923,1,0,0,0,1924,1925,1,0,0,0,1925,1927,1,0,0,0,1926,1928,3,461,230,0,1927,1926,1,0,0,0,1928,1929,1,0,0,0,1929,1927,1,0,0,0,1929,1930,1,0,0,0,1930,1973,1,0,0,0,1931,1932,3,399,199,0,1932,1936,3,481,240,0,1933,1935,3,461,230,0,1934,1933,1,0,0,0,1935,1938,1,0,0,0,1936,1934,1,0,0,0,1936,1937,1,0,0,0,1937,1939,1,0,0,0,1938,1936,1,0,0,0,1939,1942,3,413,206,0,1940,1943,3,505,252,0,1941,1943,3,479,239,0,1942,1940,1,0,0,0,1942,1941,1,0,0,0,1942,1943,1,0,0,0,1943,1945,1,0,0,0,1944,1946,3,461,230,0,1945,1944,1,0,0,0,1946,1947,1,0,0,0,1947,1945,1,0,0,0,1947,1948,1,0,0,0,1948,1973,1,0,0,0,1949,1950,3,481,240,0,1950,1951,3,399,199,0,1951,1954,3,413,206,0,1952,1955,3,505,252,0,1953,1955,3,479,239,0,1954,1952,1,0,0,0,1954,1953,1,0,0,0,1954,1955,1,0,0,0,1955,1957,1,0,0,0,1956,1958,3,461,230,0,1957,1956,1,0,0,0,1958,1959,1,0,0,0,1959,1957,1,0,0,0,1959,1960,1,0,0,0,1960,1973,1,0,0,0,1961,1962,3,399,199,0,1962,1965,3,413,206,0,1963,1966,3,505,252,0,1964,1966,3,479,239,0,1965,1963,1,0,0,0,1965,1964,1,0,0,0,1965,1966,1,0,0,0,1966,1968,1,0,0,0,1967,1969,3,461,230,0,1968,1967,1,0,0,0,1969,1970,1,0,0,0,1970,1968,1,0,0,0,1970,1971,1,0,0,0,1971,1973,1,0,0,0,1972,1896,1,0,0,0,1972,1917,1,0,0,0,1972,1931,1,0,0,0,1972,1949,1,0,0,0,1972,1961,1,0,0,0,1973,396,1,0,0,0,1974,1976,5,48,0,0,1975,1977,3,459,229,0,1976,1975,1,0,0,0,1977,1978,1,0,0,0,1978,1976,1,0,0,0,1978,1979,1,0,0,0,1979,398,1,0,0,0,1980,1982,3,461,230,0,1981,1980,1,0,0,0,1982,1983,1,0,0,0,1983,1981,1,0,0,0,1983,1984,1,0,0,0,1984,400,1,0,0,0,1985,1986,5,48,0,0,1986,1988,3,451,225,0,1987,1989,3,463,231,0,1988,1987,1,0,0,0,1989,1990,1,0,0,0,1990,1988,1,0,0,0,1990,1991,1,0,0,0,1991,402,1,0,0,0,1992,2002,3,511,255,0,1993,2001,8,2,0,0,1994,1995,3,471,235,0,1995,1996,9,0,0,0,1996,2001,1,0,0,0,1997,1998,3,511,255,0,1998,1999,3,511,255,0,1999,2001,1,0,0,0,2e3,1993,1,0,0,0,2e3,1994,1,0,0,0,2e3,1997,1,0,0,0,2001,2004,1,0,0,0,2002,2e3,1,0,0,0,2002,2003,1,0,0,0,2003,2005,1,0,0,0,2004,2002,1,0,0,0,2005,2006,3,511,255,0,2006,404,1,0,0,0,2007,2008,7,3,0,0,2008,406,1,0,0,0,2009,2010,7,4,0,0,2010,408,1,0,0,0,2011,2012,7,5,0,0,2012,410,1,0,0,0,2013,2014,7,6,0,0,2014,412,1,0,0,0,2015,2016,7,7,0,0,2016,414,1,0,0,0,2017,2018,7,8,0,0,2018,416,1,0,0,0,2019,2020,7,9,0,0,2020,418,1,0,0,0,2021,2022,7,10,0,0,2022,420,1,0,0,0,2023,2024,7,11,0,0,2024,422,1,0,0,0,2025,2026,7,12,0,0,2026,424,1,0,0,0,2027,2028,7,13,0,0,2028,426,1,0,0,0,2029,2030,7,14,0,0,2030,428,1,0,0,0,2031,2032,7,15,0,0,2032,430,1,0,0,0,2033,2034,7,16,0,0,2034,432,1,0,0,0,2035,2036,7,17,0,0,2036,434,1,0,0,0,2037,2038,7,18,0,0,2038,436,1,0,0,0,2039,2040,7,19,0,0,2040,438,1,0,0,0,2041,2042,7,20,0,0,2042,440,1,0,0,0,2043,2044,7,21,0,0,2044,442,1,0,0,0,2045,2046,7,22,0,0,2046,444,1,0,0,0,2047,2048,7,23,0,0,2048,446,1,0,0,0,2049,2050,7,24,0,0,2050,448,1,0,0,0,2051,2052,7,25,0,0,2052,450,1,0,0,0,2053,2054,7,26,0,0,2054,452,1,0,0,0,2055,2056,7,27,0,0,2056,454,1,0,0,0,2057,2058,7,28,0,0,2058,456,1,0,0,0,2059,2060,7,29,0,0,2060,458,1,0,0,0,2061,2062,7,30,0,0,2062,460,1,0,0,0,2063,2064,7,31,0,0,2064,462,1,0,0,0,2065,2066,7,32,0,0,2066,464,1,0,0,0,2067,2068,5,45,0,0,2068,2069,5,62,0,0,2069,466,1,0,0,0,2070,2071,5,42,0,0,2071,468,1,0,0,0,2072,2073,5,96,0,0,2073,470,1,0,0,0,2074,2075,5,92,0,0,2075,472,1,0,0,0,2076,2077,5,58,0,0,2077,474,1,0,0,0,2078,2079,5,44,0,0,2079,476,1,0,0,0,2080,2081,5,124,0,0,2081,2082,5,124,0,0,2082,478,1,0,0,0,2083,2084,5,45,0,0,2084,480,1,0,0,0,2085,2086,5,46,0,0,2086,482,1,0,0,0,2087,2088,5,61,0,0,2088,2089,5,61,0,0,2089,484,1,0,0,0,2090,2091,5,61,0,0,2091,486,1,0,0,0,2092,2093,5,62,0,0,2093,2094,5,61,0,0,2094,488,1,0,0,0,2095,2096,5,62,0,0,2096,490,1,0,0,0,2097,2098,5,123,0,0,2098,492,1,0,0,0,2099,2100,5,91,0,0,2100,494,1,0,0,0,2101,2102,5,60,0,0,2102,2103,5,61,0,0,2103,496,1,0,0,0,2104,2105,5,40,0,0,2105,498,1,0,0,0,2106,2107,5,60,0,0,2107,500,1,0,0,0,2108,2109,5,33,0,0,2109,2113,5,61,0,0,2110,2111,5,60,0,0,2111,2113,5,62,0,0,2112,2108,1,0,0,0,2112,2110,1,0,0,0,2113,502,1,0,0,0,2114,2115,5,37,0,0,2115,504,1,0,0,0,2116,2117,5,43,0,0,2117,506,1,0,0,0,2118,2119,5,63,0,0,2119,508,1,0,0,0,2120,2121,5,34,0,0,2121,510,1,0,0,0,2122,2123,5,39,0,0,2123,512,1,0,0,0,2124,2125,5,125,0,0,2125,514,1,0,0,0,2126,2127,5,93,0,0,2127,516,1,0,0,0,2128,2129,5,41,0,0,2129,518,1,0,0,0,2130,2131,5,59,0,0,2131,520,1,0,0,0,2132,2133,5,47,0,0,2133,522,1,0,0,0,2134,2135,5,95,0,0,2135,524,1,0,0,0,2136,2137,5,47,0,0,2137,2138,5,42,0,0,2138,2142,1,0,0,0,2139,2141,9,0,0,0,2140,2139,1,0,0,0,2141,2144,1,0,0,0,2142,2143,1,0,0,0,2142,2140,1,0,0,0,2143,2145,1,0,0,0,2144,2142,1,0,0,0,2145,2146,5,42,0,0,2146,2147,5,47,0,0,2147,2148,1,0,0,0,2148,2149,6,262,0,0,2149,526,1,0,0,0,2150,2151,5,45,0,0,2151,2152,5,45,0,0,2152,2156,1,0,0,0,2153,2155,8,33,0,0,2154,2153,1,0,0,0,2155,2158,1,0,0,0,2156,2154,1,0,0,0,2156,2157,1,0,0,0,2157,2160,1,0,0,0,2158,2156,1,0,0,0,2159,2161,7,34,0,0,2160,2159,1,0,0,0,2161,2162,1,0,0,0,2162,2163,6,263,0,0,2163,528,1,0,0,0,2164,2165,7,35,0,0,2165,2166,1,0,0,0,2166,2167,6,264,1,0,2167,530,1,0,0,0,36,0,593,1100,1839,1854,1859,1861,1872,1874,1887,1889,1894,1901,1906,1910,1915,1920,1924,1929,1936,1942,1947,1954,1959,1965,1970,1972,1978,1983,1990,2e3,2002,2112,2142,2156,2160,2,6,0,0,0,1,0],Ji.vocabulary=new Ra(Ji.literalNames,Ji.symbolicNames,[]),Ji.decisionsToDFA=Ji._ATN.decisionToState.map(((t,e)=>new ni(t,e))),Ji),CG=(Zi=class t extends Cc{get grammarFileName(){return"ClickHouseParser.g4"}get literalNames(){return t.literalNames}get symbolicNames(){return t.symbolicNames}get ruleNames(){return t.ruleNames}get serializedATN(){return t._serializedATN}createFailedPredicateException(t,e){return new Sc(this,t,e)}constructor(e){super(e),this.interpreter=new Ai(this,t._ATN,t.decisionsToDFA,new Si)}root(){let e,s=new _G(this.context,this.state);this.enterRule(s,0,t.RULE_root);try{this.enterOuterAlt(s,1),this.state=257,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&539000864||!(e-40&-32)&&1<<e-40&197659||85===e||92===e||!(e-120&-32)&&1<<e-120&538443777||!(e-152&-32)&&1<<e-152&1090519557||!(e-188&-32)&&1<<e-188&2147483681)&&(this.state=256,this.statements()),this.state=259,this.match(t.EOF)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}statements(){let e,s=new PG(this.context,this.state);this.enterRule(s,2,t.RULE_statements);try{switch(this.state=269,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,2,this.context)){case 1:this.enterOuterAlt(s,1),this.state=261,this.statement(),this.state=263,this.errorHandler.sync(this),e=this.tokenStream.LA(1),230===e&&(this.state=262,this.match(t.SEMICOLON));break;case 2:this.enterOuterAlt(s,2),this.state=265,this.statement(),this.state=266,this.match(t.SEMICOLON),this.state=267,this.statements()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}statement(){let e,s=new MG(this.context,this.state);this.enterRule(s,4,t.RULE_statement);try{switch(this.state=285,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ALTER:case t.ATTACH:case t.CHECK:case t.CREATE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DROP:case t.EXISTS:case t.EXPLAIN:case t.KILL:case t.OPTIMIZE:case t.RENAME:case t.REPLACE:case t.SELECT:case t.SET:case t.SHOW:case t.SYSTEM:case t.TRUNCATE:case t.USE:case t.WATCH:case t.WITH:case t.LPAREN:if(1===(this.enterOuterAlt(s,1),this.state=271,this.notInsertStatement(),this.state=275,this.errorHandler.sync(this),e=this.tokenStream.LA(1),87===e&&(this.state=272,this.match(t.INTO),this.state=273,this.match(t.OUTFILE),this.state=274,this.match(t.STRING_LITERAL)),this.state=279,this.errorHandler.sync(this),e=this.tokenStream.LA(1),66===e&&(this.state=277,this.match(t.FORMAT),this.state=278,this.identifierOrNull()),this.state=282,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,5,this.context)))this.state=281,this.match(t.SEMICOLON);break;case t.INSERT:this.enterOuterAlt(s,2),this.state=284,this.insertStatement();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}notInsertStatement(){let e=new dG(this.context,this.state);this.enterRule(e,6,t.RULE_notInsertStatement);try{switch(this.state=310,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,8,this.context)){case 1:this.enterOuterAlt(e,1),this.state=287,this.alterStatement();break;case 2:this.enterOuterAlt(e,2),this.state=288,this.attachStatement();break;case 3:this.enterOuterAlt(e,3),this.state=289,this.checkStatement();break;case 4:this.enterOuterAlt(e,4),this.state=290,this.createStatement();break;case 5:this.enterOuterAlt(e,5),this.state=291,this.describeStatement();break;case 6:this.enterOuterAlt(e,6),this.state=292,this.deleteStatement();break;case 7:this.enterOuterAlt(e,7),this.state=293,this.dropStatement();break;case 8:this.enterOuterAlt(e,8),this.state=294,this.existsStatement();break;case 9:this.enterOuterAlt(e,9),this.state=295,this.explainStatement();break;case 10:this.enterOuterAlt(e,10),this.state=296,this.killStatement();break;case 11:this.enterOuterAlt(e,11),this.state=297,this.optimizeStatement();break;case 12:this.enterOuterAlt(e,12),this.state=298,this.renameStatement();break;case 13:this.enterOuterAlt(e,13),this.state=299,this.selectUnionStatement();break;case 14:this.enterOuterAlt(e,14),this.state=300,this.setStatement();break;case 15:this.enterOuterAlt(e,15),this.state=301,this.showStatement();break;case 16:this.enterOuterAlt(e,16),this.state=302,this.systemStatement();break;case 17:this.enterOuterAlt(e,17),this.state=303,this.truncateStatement();break;case 18:this.enterOuterAlt(e,18),this.state=304,this.useStatement();break;case 19:this.enterOuterAlt(e,19),this.state=305,this.watchStatement();break;case 20:if(this.enterOuterAlt(e,20),1===(this.state=307,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,7,this.context)))this.state=306,this.commonTableExpressionStatement();this.state=309,this.selectStatement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}commonTableExpressionStatement(){let e,s=new UG(this.context,this.state);this.enterRule(s,8,t.RULE_commonTableExpressionStatement);try{for(this.enterOuterAlt(s,1),this.state=312,this.match(t.WITH),this.state=313,this.namedQuery(),this.state=318,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=314,this.match(t.COMMA),this.state=315,this.namedQuery(),this.state=320,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}namedQuery(){let e,s=new mG(this.context,this.state);this.enterRule(s,10,t.RULE_namedQuery);try{this.enterOuterAlt(s,1),this.state=321,s._name=this.identifier(),this.state=323,this.errorHandler.sync(this),e=this.tokenStream.LA(1),219===e&&(this.state=322,this.columnAliases()),this.state=325,this.match(t.AS),this.state=326,this.match(t.LPAREN),this.state=327,this.notInsertStatement(),this.state=328,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}columnAliases(){let e,s=new DG(this.context,this.state);this.enterRule(s,12,t.RULE_columnAliases);try{for(this.enterOuterAlt(s,1),this.state=330,this.match(t.LPAREN),this.state=331,this.identifier(),this.state=336,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=332,this.match(t.COMMA),this.state=333,this.identifier(),this.state=338,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=339,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterStatement(){let e,s=new pG(this.context,this.state);this.enterRule(s,14,t.RULE_alterStatement);try{for(s=new gG(s),this.enterOuterAlt(s,1),this.state=341,this.match(t.ALTER),this.state=342,this.match(t.TABLE),this.state=343,this.tableIdentifier(),this.state=345,this.errorHandler.sync(this),e=this.tokenStream.LA(1),119===e&&(this.state=344,this.clusterClause()),this.state=347,this.alterTableClause(),this.state=352,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=348,this.match(t.COMMA),this.state=349,this.alterTableClause(),this.state=354,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alterTableClause(){let e,s=new xG(this.context,this.state);this.enterRule(s,16,t.RULE_alterTableClause);try{switch(this.state=569,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,42,this.context)){case 1:if(s=new iF(s),this.enterOuterAlt(s,1),1===(this.state=355,this.match(t.ADD),this.state=356,this.match(t.COLUMN),this.state=360,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,14,this.context)))this.state=357,this.match(t.IF),this.state=358,this.match(t.NOT),this.state=359,this.match(t.EXISTS);this.state=362,this.tableColumnDefinition(),this.state=365,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e&&(this.state=363,this.match(t.AFTER),this.state=364,this.columnIdentifier());break;case 2:if(s=new wG(s),this.enterOuterAlt(s,2),1===(this.state=367,this.match(t.ADD),this.state=368,this.match(t.INDEX),this.state=372,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,16,this.context)))this.state=369,this.match(t.IF),this.state=370,this.match(t.NOT),this.state=371,this.match(t.EXISTS);this.state=374,this.tableIndexDefinition(),this.state=377,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e&&(this.state=375,this.match(t.AFTER),this.state=376,this.columnIdentifier());break;case 3:if(s=new rF(s),this.enterOuterAlt(s,3),1===(this.state=379,this.match(t.ADD),this.state=380,this.match(t.PROJECTION),this.state=384,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,18,this.context)))this.state=381,this.match(t.IF),this.state=382,this.match(t.NOT),this.state=383,this.match(t.EXISTS);this.state=386,this.tableProjectionDefinition(),this.state=389,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e&&(this.state=387,this.match(t.AFTER),this.state=388,this.columnIdentifier());break;case 4:s=new $G(s),this.enterOuterAlt(s,4),this.state=391,this.match(t.ATTACH),this.state=392,this.partitionClause(),this.state=395,this.errorHandler.sync(this),e=this.tokenStream.LA(1),68===e&&(this.state=393,this.match(t.FROM),this.state=394,this.tableIdentifier());break;case 5:if(s=new JG(s),this.enterOuterAlt(s,5),1===(this.state=397,this.match(t.CLEAR),this.state=398,this.match(t.COLUMN),this.state=401,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,21,this.context)))this.state=399,this.match(t.IF),this.state=400,this.match(t.EXISTS);this.state=403,this.columnIdentifier(),this.state=406,this.errorHandler.sync(this),e=this.tokenStream.LA(1),80===e&&(this.state=404,this.match(t.IN),this.state=405,this.partitionClause());break;case 6:if(s=new qG(s),this.enterOuterAlt(s,6),1===(this.state=408,this.match(t.CLEAR),this.state=409,this.match(t.INDEX),this.state=412,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,23,this.context)))this.state=410,this.match(t.IF),this.state=411,this.match(t.EXISTS);this.state=414,this.columnIdentifier(),this.state=417,this.errorHandler.sync(this),e=this.tokenStream.LA(1),80===e&&(this.state=415,this.match(t.IN),this.state=416,this.partitionClause());break;case 7:if(s=new FG(s),this.enterOuterAlt(s,7),1===(this.state=419,this.match(t.CLEAR),this.state=420,this.match(t.PROJECTION),this.state=423,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,25,this.context)))this.state=421,this.match(t.IF),this.state=422,this.match(t.EXISTS);this.state=425,this.columnIdentifier(),this.state=428,this.errorHandler.sync(this),e=this.tokenStream.LA(1),80===e&&(this.state=426,this.match(t.IN),this.state=427,this.partitionClause());break;case 8:if(s=new yG(s),this.enterOuterAlt(s,8),1===(this.state=430,this.match(t.COMMENT),this.state=431,this.match(t.COLUMN),this.state=434,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,27,this.context)))this.state=432,this.match(t.IF),this.state=433,this.match(t.EXISTS);this.state=436,this.columnIdentifier(),this.state=437,this.match(t.STRING_LITERAL);break;case 9:s=new BG(s),this.enterOuterAlt(s,9),this.state=439,this.match(t.DELETE),this.state=440,this.match(t.WHERE),this.state=441,this.columnExpression(0);break;case 10:s=new YG(s),this.enterOuterAlt(s,10),this.state=442,this.match(t.DETACH),this.state=443,this.partitionClause();break;case 11:if(s=new fG(s),this.enterOuterAlt(s,11),1===(this.state=444,this.match(t.DROP),this.state=445,this.match(t.COLUMN),this.state=448,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,28,this.context)))this.state=446,this.match(t.IF),this.state=447,this.match(t.EXISTS);this.state=450,this.columnIdentifier();break;case 12:if(s=new eF(s),this.enterOuterAlt(s,12),1===(this.state=451,this.match(t.DROP),this.state=452,this.match(t.INDEX),this.state=455,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,29,this.context)))this.state=453,this.match(t.IF),this.state=454,this.match(t.EXISTS);this.state=457,this.columnIdentifier();break;case 13:if(s=new tF(s),this.enterOuterAlt(s,13),1===(this.state=458,this.match(t.DROP),this.state=459,this.match(t.PROJECTION),this.state=462,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,30,this.context)))this.state=460,this.match(t.IF),this.state=461,this.match(t.EXISTS);this.state=464,this.columnIdentifier();break;case 14:s=new bG(s),this.enterOuterAlt(s,14),this.state=465,this.match(t.DROP),this.state=466,this.partitionClause();break;case 15:s=new QG(s),this.enterOuterAlt(s,15),this.state=467,this.match(t.FREEZE),this.state=469,this.errorHandler.sync(this),e=this.tokenStream.LA(1),126===e&&(this.state=468,this.partitionClause());break;case 16:if(s=new WG(s),this.enterOuterAlt(s,16),1===(this.state=471,this.match(t.MATERIALIZE),this.state=472,this.match(t.INDEX),this.state=475,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,32,this.context)))this.state=473,this.match(t.IF),this.state=474,this.match(t.EXISTS);this.state=477,this.columnIdentifier(),this.state=480,this.errorHandler.sync(this),e=this.tokenStream.LA(1),80===e&&(this.state=478,this.match(t.IN),this.state=479,this.partitionClause());break;case 17:if(s=new VG(s),this.enterOuterAlt(s,17),1===(this.state=482,this.match(t.MATERIALIZE),this.state=483,this.match(t.PROJECTION),this.state=486,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,34,this.context)))this.state=484,this.match(t.IF),this.state=485,this.match(t.EXISTS);this.state=488,this.columnIdentifier(),this.state=491,this.errorHandler.sync(this),e=this.tokenStream.LA(1),80===e&&(this.state=489,this.match(t.IN),this.state=490,this.partitionClause());break;case 18:if(s=new zG(s),this.enterOuterAlt(s,18),1===(this.state=493,this.match(t.MODIFY),this.state=494,this.match(t.COLUMN),this.state=497,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,36,this.context)))this.state=495,this.match(t.IF),this.state=496,this.match(t.EXISTS);this.state=499,this.columnIdentifier(),this.state=500,this.codecExpression();break;case 19:if(s=new sF(s),this.enterOuterAlt(s,19),1===(this.state=502,this.match(t.MODIFY),this.state=503,this.match(t.COLUMN),this.state=506,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,37,this.context)))this.state=504,this.match(t.IF),this.state=505,this.match(t.EXISTS);this.state=508,this.columnIdentifier(),this.state=509,this.match(t.COMMENT),this.state=510,this.match(t.STRING_LITERAL);break;case 20:if(s=new vG(s),this.enterOuterAlt(s,20),1===(this.state=512,this.match(t.MODIFY),this.state=513,this.match(t.COLUMN),this.state=516,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,38,this.context)))this.state=514,this.match(t.IF),this.state=515,this.match(t.EXISTS);this.state=518,this.columnIdentifier(),this.state=519,this.match(t.REMOVE),this.state=520,this.tableColumnPropertyType();break;case 21:if(s=new ZG(s),this.enterOuterAlt(s,21),1===(this.state=522,this.match(t.MODIFY),this.state=523,this.match(t.COLUMN),this.state=526,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,39,this.context)))this.state=524,this.match(t.IF),this.state=525,this.match(t.EXISTS);this.state=528,this.tableColumnDefinition();break;case 22:s=new HG(s),this.enterOuterAlt(s,22),this.state=529,this.match(t.MODIFY),this.state=530,this.match(t.ORDER),this.state=531,this.match(t.BY),this.state=532,this.columnExpression(0);break;case 23:s=new aF(s),this.enterOuterAlt(s,23),this.state=533,this.match(t.MODIFY),this.state=534,this.ttlClause();break;case 24:switch(s=new XG(s),this.enterOuterAlt(s,24),this.state=535,this.match(t.MOVE),this.state=536,this.partitionClause(),this.state=546,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,40,this.context)){case 1:this.state=537,this.match(t.TO),this.state=538,this.match(t.DISK),this.state=539,this.match(t.STRING_LITERAL);break;case 2:this.state=540,this.match(t.TO),this.state=541,this.match(t.VOLUME),this.state=542,this.match(t.STRING_LITERAL);break;case 3:this.state=543,this.match(t.TO),this.state=544,this.match(t.TABLE),this.state=545,this.tableIdentifier()}break;case 25:s=new jG(s),this.enterOuterAlt(s,25),this.state=548,this.match(t.REMOVE),this.state=549,this.match(t.TTL);break;case 26:if(s=new KG(s),this.enterOuterAlt(s,26),1===(this.state=550,this.match(t.RENAME),this.state=551,this.match(t.COLUMN),this.state=554,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,41,this.context)))this.state=552,this.match(t.IF),this.state=553,this.match(t.EXISTS);this.state=556,this.columnIdentifier(),this.state=557,this.match(t.TO),this.state=558,this.columnIdentifier();break;case 27:s=new kG(s),this.enterOuterAlt(s,27),this.state=560,this.match(t.REPLACE),this.state=561,this.partitionClause(),this.state=562,this.match(t.FROM),this.state=563,this.tableIdentifier();break;case 28:s=new GG(s),this.enterOuterAlt(s,28),this.state=565,this.match(t.UPDATE),this.state=566,this.assignmentExpressionList(),this.state=567,this.whereClause()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}assignmentExpressionList(){let e,s=new cF(this.context,this.state);this.enterRule(s,18,t.RULE_assignmentExpressionList);try{for(this.enterOuterAlt(s,1),this.state=571,this.assignmentExpression(),this.state=576,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=572,this.match(t.COMMA),this.state=573,this.assignmentExpression(),this.state=578,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}assignmentExpression(){let e=new nF(this.context,this.state);this.enterRule(e,20,t.RULE_assignmentExpression);try{this.enterOuterAlt(e,1),this.state=579,this.columnIdentifier(),this.state=580,this.match(t.EQ_SINGLE),this.state=581,this.columnExpression(0)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableColumnPropertyType(){let e,s=new hF(this.context,this.state);this.enterRule(s,22,t.RULE_tableColumnPropertyType);try{this.enterOuterAlt(s,1),this.state=583,e=this.tokenStream.LA(1),!(-32&e)&&1<<e&150994952||38===e||104===e||177===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}partitionClause(){let e=new EF(this.context,this.state);this.enterRule(e,24,t.RULE_partitionClause);try{switch(this.state=590,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,44,this.context)){case 1:this.enterOuterAlt(e,1),this.state=585,this.match(t.PARTITION),this.state=586,this.columnExpression(0);break;case 2:this.enterOuterAlt(e,2),this.state=587,this.match(t.PARTITION),this.state=588,this.match(t.ID),this.state=589,this.match(t.STRING_LITERAL)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}attachStatement(){let e,s=new TF(this.context,this.state);this.enterRule(s,26,t.RULE_attachStatement);try{s=new oF(s),this.enterOuterAlt(s,1),this.state=592,this.match(t.ATTACH),this.state=593,this.match(t.DICTIONARY),this.state=594,this.tableIdentifier(),this.state=596,this.errorHandler.sync(this),e=this.tokenStream.LA(1),119===e&&(this.state=595,this.clusterClause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}checkStatement(){let e,s=new RF(this.context,this.state);this.enterRule(s,28,t.RULE_checkStatement);try{this.enterOuterAlt(s,1),this.state=598,this.match(t.CHECK),this.state=599,this.match(t.TABLE),this.state=600,this.tableIdentifier(),this.state=602,this.errorHandler.sync(this),e=this.tokenStream.LA(1),126===e&&(this.state=601,this.partitionClause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}deleteStatement(){let e,s=new AF(this.context,this.state);this.enterRule(s,30,t.RULE_deleteStatement);try{this.enterOuterAlt(s,1),this.state=604,this.match(t.DELETE),this.state=605,this.match(t.FROM),this.state=606,this.tableIdentifier(),this.state=608,this.errorHandler.sync(this),e=this.tokenStream.LA(1),119===e&&(this.state=607,this.clusterClause()),this.state=611,this.errorHandler.sync(this),e=this.tokenStream.LA(1),191===e&&(this.state=610,this.whereClause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createTableStatement(){let e,s=new SF(this.context,this.state);this.enterRule(s,32,t.RULE_createTableStatement);try{switch(this.enterOuterAlt(s,1),this.state=620,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ATTACH:this.state=613,this.match(t.ATTACH);break;case t.CREATE:this.state=614,this.match(t.CREATE),this.state=617,this.errorHandler.sync(this),e=this.tokenStream.LA(1),121===e&&(this.state=615,this.match(t.OR),this.state=616,this.match(t.REPLACE));break;case t.REPLACE:this.state=619,this.match(t.REPLACE);break;default:throw new Ei(this)}if(1===(this.state=623,this.errorHandler.sync(this),e=this.tokenStream.LA(1),164===e&&(this.state=622,this.match(t.TEMPORARY)),this.state=625,this.match(t.TABLE),this.state=629,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,52,this.context)))this.state=626,this.match(t.IF),this.state=627,this.match(t.NOT),this.state=628,this.match(t.EXISTS);if(1===(this.state=631,this.tableIdentifier(),this.state=633,this.errorHandler.sync(this),e=this.tokenStream.LA(1),184===e&&(this.state=632,this.uuidClause()),this.state=636,this.errorHandler.sync(this),e=this.tokenStream.LA(1),119===e&&(this.state=635,this.clusterClause()),this.state=639,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,55,this.context)))this.state=638,this.tableSchemaClause();this.state=642,this.errorHandler.sync(this),e=this.tokenStream.LA(1),53===e&&(this.state=641,this.engineClause()),this.state=645,this.errorHandler.sync(this),e=this.tokenStream.LA(1),10===e&&(this.state=644,this.subqueryClause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createDatabaseStatement(){let e,s=new lF(this.context,this.state);this.enterRule(s,34,t.RULE_createDatabaseStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=647,e=this.tokenStream.LA(1),15===e||29===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=648,this.match(t.DATABASE),this.state=652,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,58,this.context)))this.state=649,this.match(t.IF),this.state=650,this.match(t.NOT),this.state=651,this.match(t.EXISTS);this.state=654,this.identifier(),this.state=656,this.errorHandler.sync(this),e=this.tokenStream.LA(1),119===e&&(this.state=655,this.clusterClause()),this.state=658,this.engineExpression()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createDictionaryStatement(){let e,s=new OF(this.context,this.state);this.enterRule(s,36,t.RULE_createDictionaryStatement);try{switch(this.enterOuterAlt(s,1),this.state=667,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ATTACH:this.state=660,this.match(t.ATTACH);break;case t.CREATE:this.state=661,this.match(t.CREATE),this.state=664,this.errorHandler.sync(this),e=this.tokenStream.LA(1),121===e&&(this.state=662,this.match(t.OR),this.state=663,this.match(t.REPLACE));break;case t.REPLACE:this.state=666,this.match(t.REPLACE);break;default:throw new Ei(this)}if(1===(this.state=669,this.match(t.DICTIONARY),this.state=673,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,62,this.context)))this.state=670,this.match(t.IF),this.state=671,this.match(t.NOT),this.state=672,this.match(t.EXISTS);this.state=675,this.tableIdentifier(),this.state=677,this.errorHandler.sync(this),e=this.tokenStream.LA(1),184===e&&(this.state=676,this.uuidClause()),this.state=680,this.errorHandler.sync(this),e=this.tokenStream.LA(1),119===e&&(this.state=679,this.clusterClause()),this.state=682,this.dictionarySchemaClause(),this.state=683,this.dictionaryEngineClause()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createLiveViewStatement(){let e,s=new IF(this.context,this.state);this.enterRule(s,38,t.RULE_createLiveViewStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=685,e=this.tokenStream.LA(1),15===e||29===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=686,this.match(t.LIVE),this.state=687,this.match(t.VIEW),this.state=691,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,65,this.context)))this.state=688,this.match(t.IF),this.state=689,this.match(t.NOT),this.state=690,this.match(t.EXISTS);if(1===(this.state=693,this.tableIdentifier(),this.state=695,this.errorHandler.sync(this),e=this.tokenStream.LA(1),184===e&&(this.state=694,this.uuidClause()),this.state=698,this.errorHandler.sync(this),e=this.tokenStream.LA(1),119===e&&(this.state=697,this.clusterClause()),this.state=705,this.errorHandler.sync(this),e=this.tokenStream.LA(1),193===e&&(this.state=700,this.match(t.WITH),this.state=701,this.match(t.TIMEOUT),this.state=703,this.errorHandler.sync(this),e=this.tokenStream.LA(1),200===e&&(this.state=702,this.match(t.DECIMAL_LITERAL))),this.state=708,this.errorHandler.sync(this),e=this.tokenStream.LA(1),170===e&&(this.state=707,this.destinationClause()),this.state=711,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,71,this.context)))this.state=710,this.tableSchemaClause();this.state=713,this.subqueryClause()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createMaterializedViewStatement(){let e,s=new uF(this.context,this.state);this.enterRule(s,40,t.RULE_createMaterializedViewStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=715,e=this.tokenStream.LA(1),15===e||29===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=716,this.match(t.MATERIALIZED),this.state=717,this.match(t.VIEW),this.state=721,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,72,this.context)))this.state=718,this.match(t.IF),this.state=719,this.match(t.NOT),this.state=720,this.match(t.EXISTS);switch(this.state=723,this.tableIdentifier(),this.state=725,this.errorHandler.sync(this),e=this.tokenStream.LA(1),184===e&&(this.state=724,this.uuidClause()),this.state=728,this.errorHandler.sync(this),e=this.tokenStream.LA(1),119===e&&(this.state=727,this.clusterClause()),this.state=731,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(10===e||219===e)&&(this.state=730,this.tableSchemaClause()),this.state=738,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.TO:this.state=733,this.destinationClause();break;case t.ENGINE:this.state=734,this.engineClause(),this.state=736,this.errorHandler.sync(this),e=this.tokenStream.LA(1),129===e&&(this.state=735,this.match(t.POPULATE));break;default:throw new Ei(this)}this.state=740,this.subqueryClause()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createViewStatement(){let e,s=new NF(this.context,this.state);this.enterRule(s,42,t.RULE_createViewStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=742,e=this.tokenStream.LA(1),15===e||29===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=745,this.errorHandler.sync(this),e=this.tokenStream.LA(1),121===e&&(this.state=743,this.match(t.OR),this.state=744,this.match(t.REPLACE)),this.state=747,this.match(t.VIEW),this.state=751,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,79,this.context)))this.state=748,this.match(t.IF),this.state=749,this.match(t.NOT),this.state=750,this.match(t.EXISTS);if(1===(this.state=753,this.tableIdentifier(),this.state=755,this.errorHandler.sync(this),e=this.tokenStream.LA(1),184===e&&(this.state=754,this.uuidClause()),this.state=758,this.errorHandler.sync(this),e=this.tokenStream.LA(1),119===e&&(this.state=757,this.clusterClause()),this.state=761,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,82,this.context)))this.state=760,this.tableSchemaClause();this.state=763,this.subqueryClause()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}createStatement(){let e=new LF(this.context,this.state);this.enterRule(e,44,t.RULE_createStatement);try{switch(this.state=771,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,83,this.context)){case 1:this.enterOuterAlt(e,1),this.state=765,this.createDatabaseStatement();break;case 2:this.enterOuterAlt(e,2),this.state=766,this.createDictionaryStatement();break;case 3:this.enterOuterAlt(e,3),this.state=767,this.createLiveViewStatement();break;case 4:this.enterOuterAlt(e,4),this.state=768,this.createMaterializedViewStatement();break;case 5:this.enterOuterAlt(e,5),this.state=769,this.createTableStatement();break;case 6:this.enterOuterAlt(e,6),this.state=770,this.createViewStatement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dictionarySchemaClause(){let e,s=new CF(this.context,this.state);this.enterRule(s,46,t.RULE_dictionarySchemaClause);try{for(this.enterOuterAlt(s,1),this.state=773,this.match(t.LPAREN),this.state=774,this.dictionaryAttributeDefinition(),this.state=779,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=775,this.match(t.COMMA),this.state=776,this.dictionaryAttributeDefinition(),this.state=781,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=782,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}dictionaryAttributeDefinition(){let e=new _F(this.context,this.state);this.enterRule(e,48,t.RULE_dictionaryAttributeDefinition);try{let s;for(this.enterOuterAlt(e,1),this.state=784,this.identifier(),this.state=785,this.columnTypeExpression(),this.state=807,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,86,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;){if(1===s)switch(this.state=805,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,85,this.context)){case 1:if(this.state=786,e.attrs.has("default"))throw this.createFailedPredicateException('!$attrs.has("default")');this.state=787,this.match(t.DEFAULT),this.state=788,this.literal(),e.attrs.add("default");break;case 2:if(this.state=791,e.attrs.has("expression"))throw this.createFailedPredicateException('!$attrs.has("expression")');this.state=792,this.match(t.EXPRESSION),this.state=793,this.columnExpression(0),e.attrs.add("expression");break;case 3:if(this.state=796,e.attrs.has("hierarchical"))throw this.createFailedPredicateException('!$attrs.has("hierarchical")');this.state=797,this.match(t.HIERARCHICAL),e.attrs.add("hierarchical");break;case 4:if(this.state=799,e.attrs.has("injective"))throw this.createFailedPredicateException('!$attrs.has("injective")');this.state=800,this.match(t.INJECTIVE),e.attrs.add("injective");break;case 5:if(this.state=802,e.attrs.has("is_object_id"))throw this.createFailedPredicateException('!$attrs.has("is_object_id")');this.state=803,this.match(t.IS_OBJECT_ID),e.attrs.add("is_object_id")}this.state=809,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,86,this.context)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dictionaryEngineClause(){let e=new PF(this.context,this.state);this.enterRule(e,50,t.RULE_dictionaryEngineClause);try{let t;if(this.enterOuterAlt(e,1),1===(this.state=811,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,87,this.context)))this.state=810,this.dictionaryPrimaryKeyClause();for(this.state=835,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,89,this.context);2!==t&&t!==ja.INVALID_ALT_NUMBER;){if(1===t)switch(this.state=833,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,88,this.context)){case 1:if(this.state=813,e.clauses.has("source"))throw this.createFailedPredicateException('!$clauses.has("source")');this.state=814,this.sourceClause(),e.clauses.add("source");break;case 2:if(this.state=817,e.clauses.has("lifetime"))throw this.createFailedPredicateException('!$clauses.has("lifetime")');this.state=818,this.lifetimeClause(),e.clauses.add("lifetime");break;case 3:if(this.state=821,e.clauses.has("layout"))throw this.createFailedPredicateException('!$clauses.has("layout")');this.state=822,this.layoutClause(),e.clauses.add("layout");break;case 4:if(this.state=825,e.clauses.has("range"))throw this.createFailedPredicateException('!$clauses.has("range")');this.state=826,this.rangeClause(),e.clauses.add("range");break;case 5:if(this.state=829,e.clauses.has("settings"))throw this.createFailedPredicateException('!$clauses.has("settings")');this.state=830,this.dictionarySettingsClause(),e.clauses.add("settings")}this.state=837,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,89,this.context)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dictionaryPrimaryKeyClause(){let e=new MF(this.context,this.state);this.enterRule(e,52,t.RULE_dictionaryPrimaryKeyClause);try{this.enterOuterAlt(e,1),this.state=838,this.match(t.PRIMARY),this.state=839,this.match(t.KEY),this.state=840,this.columnExpressionList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dictionaryArgumentExpression(){let e,s=new dF(this.context,this.state);this.enterRule(s,54,t.RULE_dictionaryArgumentExpression);try{switch(this.enterOuterAlt(s,1),this.state=842,this.identifier(),this.state=849,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AFTER:case t.ALIAS:case t.ALL:case t.ALTER:case t.AND:case t.ANTI:case t.ANY:case t.ARRAY:case t.AS:case t.ASCENDING:case t.ASOF:case t.AST:case t.ASYNC:case t.ATTACH:case t.BETWEEN:case t.BOTH:case t.BY:case t.CASE:case t.CAST:case t.CHECK:case t.CLEAR:case t.CLUSTER:case t.CODEC:case t.COLLATE:case t.COLUMN:case t.COMMENT:case t.CONSTRAINT:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.DATABASE:case t.DATABASES:case t.DATE:case t.DAY:case t.DEDUPLICATE:case t.DEFAULT:case t.DELAY:case t.DELETE:case t.DESC:case t.DESCENDING:case t.DESCRIBE:case t.DETACH:case t.DICTIONARIES:case t.DICTIONARY:case t.DISK:case t.DISTINCT:case t.DISTRIBUTED:case t.DROP:case t.ELSE:case t.END:case t.ENGINE:case t.EVENTS:case t.EXISTS:case t.EXPLAIN:case t.EXPRESSION:case t.EXTRACT:case t.FETCHES:case t.FINAL:case t.FIRST:case t.FLUSH:case t.FOLLOWING:case t.FOR:case t.FORMAT:case t.FREEZE:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOBAL:case t.GRANULARITY:case t.GROUP:case t.HAVING:case t.HIERARCHICAL:case t.HOUR:case t.ID:case t.IF:case t.ILIKE:case t.IN:case t.INDEX:case t.INJECTIVE:case t.INNER:case t.INSERT:case t.INTERVAL:case t.INTO:case t.IS:case t.IS_OBJECT_ID:case t.JOIN:case t.KEY:case t.KILL:case t.LAST:case t.LAYOUT:case t.LEADING:case t.LEFT:case t.LIFETIME:case t.LIKE:case t.LIMIT:case t.LIVE:case t.LOCAL:case t.LOGS:case t.MATERIALIZE:case t.MATERIALIZED:case t.MAX:case t.MERGES:case t.MIN:case t.MINUTE:case t.MODIFY:case t.MONTH:case t.MOVE:case t.MUTATION:case t.NO:case t.NOT:case t.NULLS:case t.OFFSET:case t.ON:case t.OPTIMIZE:case t.OR:case t.ORDER:case t.OUTER:case t.OUTFILE:case t.OVER:case t.PARTITION:case t.POPULATE:case t.PRECEDING:case t.PREWHERE:case t.PRIMARY:case t.QUARTER:case t.RANGE:case t.RELOAD:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICA:case t.REPLICATED:case t.RIGHT:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SECOND:case t.SELECT:case t.SEMI:case t.SENDS:case t.SET:case t.SETTINGS:case t.SHOW:case t.SOURCE:case t.START:case t.STOP:case t.SUBSTRING:case t.SYNC:case t.SYNTAX:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TEMPORARY:case t.TEST:case t.THEN:case t.TIES:case t.TIMEOUT:case t.TIMESTAMP:case t.TO:case t.TOP:case t.TOTALS:case t.TRAILING:case t.TRIM:case t.TRUNCATE:case t.TTL:case t.TYPE:case t.UNBOUNDED:case t.UNION:case t.UPDATE:case t.USE:case t.USING:case t.UUID:case t.VALUES:case t.VIEW:case t.VOLUME:case t.WATCH:case t.WEEK:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.YEAR:case t.JSON_FALSE:case t.JSON_TRUE:case t.IDENTIFIER:this.state=843,this.identifier(),this.state=846,this.errorHandler.sync(this),e=this.tokenStream.LA(1),219===e&&(this.state=844,this.match(t.LPAREN),this.state=845,this.match(t.RPAREN));break;case t.INF:case t.NAN_SQL:case t.NULL_SQL:case t.FLOATING_LITERAL:case t.OCTAL_LITERAL:case t.DECIMAL_LITERAL:case t.HEXADECIMAL_LITERAL:case t.STRING_LITERAL:case t.DASH:case t.DOT:case t.PLUS:this.state=848,this.literal();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}sourceClause(){let e,s=new UF(this.context,this.state);this.enterRule(s,56,t.RULE_sourceClause);try{for(this.enterOuterAlt(s,1),this.state=851,this.match(t.SOURCE),this.state=852,this.match(t.LPAREN),this.state=853,this.identifier(),this.state=854,this.match(t.LPAREN),this.state=858,this.errorHandler.sync(this),e=this.tokenStream.LA(1);!(-32&e)&&1<<e&4294967292||!(e-32&-32)&&1<<e-32&4290772991||!(e-64&-32)&&1<<e-64&4294705151||!(e-96&-32)&&1<<e-96&2146303999||!(e-129&-32)&&1<<e-129&4294967215||!(e-161&-32)&&1<<e-161&4294950911||!(e-193&-32)&&1<<e-193&31;)this.state=855,this.dictionaryArgumentExpression(),this.state=860,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=861,this.match(t.RPAREN),this.state=862,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}lifetimeClause(){let e=new mF(this.context,this.state);this.enterRule(e,58,t.RULE_lifetimeClause);try{switch(this.enterOuterAlt(e,1),this.state=864,this.match(t.LIFETIME),this.state=865,this.match(t.LPAREN),this.state=875,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DECIMAL_LITERAL:this.state=866,this.match(t.DECIMAL_LITERAL);break;case t.MIN:this.state=867,this.match(t.MIN),this.state=868,this.match(t.DECIMAL_LITERAL),this.state=869,this.match(t.MAX),this.state=870,this.match(t.DECIMAL_LITERAL);break;case t.MAX:this.state=871,this.match(t.MAX),this.state=872,this.match(t.DECIMAL_LITERAL),this.state=873,this.match(t.MIN),this.state=874,this.match(t.DECIMAL_LITERAL);break;default:throw new Ei(this)}this.state=877,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}layoutClause(){let e,s=new DF(this.context,this.state);this.enterRule(s,60,t.RULE_layoutClause);try{for(this.enterOuterAlt(s,1),this.state=879,this.match(t.LAYOUT),this.state=880,this.match(t.LPAREN),this.state=881,this.identifier(),this.state=882,this.match(t.LPAREN),this.state=886,this.errorHandler.sync(this),e=this.tokenStream.LA(1);!(-32&e)&&1<<e&4294967292||!(e-32&-32)&&1<<e-32&4290772991||!(e-64&-32)&&1<<e-64&4294705151||!(e-96&-32)&&1<<e-96&2146303999||!(e-129&-32)&&1<<e-129&4294967215||!(e-161&-32)&&1<<e-161&4294950911||!(e-193&-32)&&1<<e-193&31;)this.state=883,this.dictionaryArgumentExpression(),this.state=888,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=889,this.match(t.RPAREN),this.state=890,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}rangeClause(){let e=new pF(this.context,this.state);this.enterRule(e,62,t.RULE_rangeClause);try{switch(this.enterOuterAlt(e,1),this.state=892,this.match(t.RANGE),this.state=893,this.match(t.LPAREN),this.state=904,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.MIN:this.state=894,this.match(t.MIN),this.state=895,this.identifier(),this.state=896,this.match(t.MAX),this.state=897,this.identifier();break;case t.MAX:this.state=899,this.match(t.MAX),this.state=900,this.identifier(),this.state=901,this.match(t.MIN),this.state=902,this.identifier();break;default:throw new Ei(this)}this.state=906,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}dictionarySettingsClause(){let e=new gF(this.context,this.state);this.enterRule(e,64,t.RULE_dictionarySettingsClause);try{this.enterOuterAlt(e,1),this.state=908,this.match(t.SETTINGS),this.state=909,this.match(t.LPAREN),this.state=910,this.settingExpressionList(),this.state=911,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}clusterClause(){let e=new xF(this.context,this.state);this.enterRule(e,66,t.RULE_clusterClause);try{switch(this.enterOuterAlt(e,1),this.state=913,this.match(t.ON),this.state=914,this.match(t.CLUSTER),this.state=917,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AFTER:case t.ALIAS:case t.ALL:case t.ALTER:case t.AND:case t.ANTI:case t.ANY:case t.ARRAY:case t.AS:case t.ASCENDING:case t.ASOF:case t.AST:case t.ASYNC:case t.ATTACH:case t.BETWEEN:case t.BOTH:case t.BY:case t.CASE:case t.CAST:case t.CHECK:case t.CLEAR:case t.CLUSTER:case t.CODEC:case t.COLLATE:case t.COLUMN:case t.COMMENT:case t.CONSTRAINT:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.DATABASE:case t.DATABASES:case t.DATE:case t.DAY:case t.DEDUPLICATE:case t.DEFAULT:case t.DELAY:case t.DELETE:case t.DESC:case t.DESCENDING:case t.DESCRIBE:case t.DETACH:case t.DICTIONARIES:case t.DICTIONARY:case t.DISK:case t.DISTINCT:case t.DISTRIBUTED:case t.DROP:case t.ELSE:case t.END:case t.ENGINE:case t.EVENTS:case t.EXISTS:case t.EXPLAIN:case t.EXPRESSION:case t.EXTRACT:case t.FETCHES:case t.FINAL:case t.FIRST:case t.FLUSH:case t.FOLLOWING:case t.FOR:case t.FORMAT:case t.FREEZE:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOBAL:case t.GRANULARITY:case t.GROUP:case t.HAVING:case t.HIERARCHICAL:case t.HOUR:case t.ID:case t.IF:case t.ILIKE:case t.IN:case t.INDEX:case t.INJECTIVE:case t.INNER:case t.INSERT:case t.INTERVAL:case t.INTO:case t.IS:case t.IS_OBJECT_ID:case t.JOIN:case t.KEY:case t.KILL:case t.LAST:case t.LAYOUT:case t.LEADING:case t.LEFT:case t.LIFETIME:case t.LIKE:case t.LIMIT:case t.LIVE:case t.LOCAL:case t.LOGS:case t.MATERIALIZE:case t.MATERIALIZED:case t.MAX:case t.MERGES:case t.MIN:case t.MINUTE:case t.MODIFY:case t.MONTH:case t.MOVE:case t.MUTATION:case t.NO:case t.NOT:case t.NULLS:case t.OFFSET:case t.ON:case t.OPTIMIZE:case t.OR:case t.ORDER:case t.OUTER:case t.OUTFILE:case t.OVER:case t.PARTITION:case t.POPULATE:case t.PRECEDING:case t.PREWHERE:case t.PRIMARY:case t.QUARTER:case t.RANGE:case t.RELOAD:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICA:case t.REPLICATED:case t.RIGHT:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SECOND:case t.SELECT:case t.SEMI:case t.SENDS:case t.SET:case t.SETTINGS:case t.SHOW:case t.SOURCE:case t.START:case t.STOP:case t.SUBSTRING:case t.SYNC:case t.SYNTAX:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TEMPORARY:case t.TEST:case t.THEN:case t.TIES:case t.TIMEOUT:case t.TIMESTAMP:case t.TO:case t.TOP:case t.TOTALS:case t.TRAILING:case t.TRIM:case t.TRUNCATE:case t.TTL:case t.TYPE:case t.UNBOUNDED:case t.UNION:case t.UPDATE:case t.USE:case t.USING:case t.UUID:case t.VALUES:case t.VIEW:case t.VOLUME:case t.WATCH:case t.WEEK:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.YEAR:case t.JSON_FALSE:case t.JSON_TRUE:case t.IDENTIFIER:this.state=915,this.identifier();break;case t.STRING_LITERAL:this.state=916,this.match(t.STRING_LITERAL);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}uuidClause(){let e=new kF(this.context,this.state);this.enterRule(e,68,t.RULE_uuidClause);try{this.enterOuterAlt(e,1),this.state=919,this.match(t.UUID),this.state=920,this.match(t.STRING_LITERAL)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}destinationClause(){let e=new HF(this.context,this.state);this.enterRule(e,70,t.RULE_destinationClause);try{this.enterOuterAlt(e,1),this.state=922,this.match(t.TO),this.state=923,this.tableIdentifier()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}subqueryClause(){let e=new GF(this.context,this.state);this.enterRule(e,72,t.RULE_subqueryClause);try{this.enterOuterAlt(e,1),this.state=925,this.match(t.AS),this.state=926,this.selectUnionStatement()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableSchemaClause(){let e,s=new FF(this.context,this.state);this.enterRule(s,74,t.RULE_tableSchemaClause);try{switch(this.state=943,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,98,this.context)){case 1:for(s=new yF(s),this.enterOuterAlt(s,1),this.state=928,this.match(t.LPAREN),this.state=929,this.tableElementExpression(),this.state=934,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=930,this.match(t.COMMA),this.state=931,this.tableElementExpression(),this.state=936,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=937,this.match(t.RPAREN);break;case 2:s=new vF(s),this.enterOuterAlt(s,2),this.state=939,this.match(t.AS),this.state=940,this.tableIdentifier();break;case 3:s=new BF(s),this.enterOuterAlt(s,3),this.state=941,this.match(t.AS),this.state=942,this.tableFunctionExpression()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}engineClause(){let e=new fF(this.context,this.state);this.enterRule(e,76,t.RULE_engineClause);try{let t;for(this.enterOuterAlt(e,1),this.state=945,this.engineExpression(),this.state=972,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,100,this.context);2!==t&&t!==ja.INVALID_ALT_NUMBER;){if(1===t)switch(this.state=970,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,99,this.context)){case 1:if(this.state=946,e.clauses.has("orderByClause"))throw this.createFailedPredicateException('!$clauses.has("orderByClause")');this.state=947,this.orderByClause(),e.clauses.add("orderByClause");break;case 2:if(this.state=950,e.clauses.has("partitionByClause"))throw this.createFailedPredicateException('!$clauses.has("partitionByClause")');this.state=951,this.partitionByClause(),e.clauses.add("partitionByClause");break;case 3:if(this.state=954,e.clauses.has("primaryKeyClause"))throw this.createFailedPredicateException('!$clauses.has("primaryKeyClause")');this.state=955,this.primaryKeyClause(),e.clauses.add("primaryKeyClause");break;case 4:if(this.state=958,e.clauses.has("sampleByClause"))throw this.createFailedPredicateException('!$clauses.has("sampleByClause")');this.state=959,this.sampleByClause(),e.clauses.add("sampleByClause");break;case 5:if(this.state=962,e.clauses.has("ttlClause"))throw this.createFailedPredicateException('!$clauses.has("ttlClause")');this.state=963,this.ttlClause(),e.clauses.add("ttlClause");break;case 6:if(this.state=966,e.clauses.has("settingsClause"))throw this.createFailedPredicateException('!$clauses.has("settingsClause")');this.state=967,this.settingsClause(),e.clauses.add("settingsClause")}this.state=974,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,100,this.context)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}partitionByClause(){let e=new YF(this.context,this.state);this.enterRule(e,78,t.RULE_partitionByClause);try{this.enterOuterAlt(e,1),this.state=975,this.match(t.PARTITION),this.state=976,this.match(t.BY),this.state=977,this.columnExpression(0)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}primaryKeyClause(){let e=new wF(this.context,this.state);this.enterRule(e,80,t.RULE_primaryKeyClause);try{this.enterOuterAlt(e,1),this.state=979,this.match(t.PRIMARY),this.state=980,this.match(t.KEY),this.state=981,this.columnExpression(0)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}sampleByClause(){let e=new bF(this.context,this.state);this.enterRule(e,82,t.RULE_sampleByClause);try{this.enterOuterAlt(e,1),this.state=983,this.match(t.SAMPLE),this.state=984,this.match(t.BY),this.state=985,this.columnExpression(0)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}ttlClause(){let e=new WF(this.context,this.state);this.enterRule(e,84,t.RULE_ttlClause);try{let s;for(this.enterOuterAlt(e,1),this.state=987,this.match(t.TTL),this.state=988,this.ttlExpression(),this.state=993,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,101,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=989,this.match(t.COMMA),this.state=990,this.ttlExpression()),this.state=995,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,101,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}engineExpression(){let e,s=new VF(this.context,this.state);this.enterRule(s,86,t.RULE_engineExpression);try{if(1===(this.enterOuterAlt(s,1),this.state=996,this.match(t.ENGINE),this.state=998,this.errorHandler.sync(this),e=this.tokenStream.LA(1),213===e&&(this.state=997,this.match(t.EQ_SINGLE)),this.state=1e3,this.identifierOrNull(),this.state=1006,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,104,this.context)))this.state=1001,this.match(t.LPAREN),this.state=1003,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&4294967292||!(e-32&-32)&&1<<e-32&4290772991||!(e-64&-32)&&1<<e-64&4294967295||!(e-96&-32)&&1<<e-96&2147483647||!(e-129&-32)&&1<<e-129&4294967215||!(e-161&-32)&&1<<e-161&4294950911||!(e-193&-32)&&1<<e-193&1158024191)&&(this.state=1002,this.columnExpressionList()),this.state=1005,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableElementExpression(){let e=new XF(this.context,this.state);this.enterRule(e,88,t.RULE_tableElementExpression);try{switch(this.state=1018,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,105,this.context)){case 1:e=new KF(e),this.enterOuterAlt(e,1),this.state=1008,this.tableColumnDefinition();break;case 2:e=new QF(e),this.enterOuterAlt(e,2),this.state=1009,this.match(t.CONSTRAINT),this.state=1010,this.identifier(),this.state=1011,this.match(t.CHECK),this.state=1012,this.columnExpression(0);break;case 3:e=new JF(e),this.enterOuterAlt(e,3),this.state=1014,this.match(t.INDEX),this.state=1015,this.tableIndexDefinition();break;case 4:e=new ZF(e),this.enterOuterAlt(e,4),this.state=1016,this.match(t.PROJECTION),this.state=1017,this.tableProjectionDefinition()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableColumnDefinition(){let e,s=new qF(this.context,this.state);this.enterRule(s,90,t.RULE_tableColumnDefinition);try{switch(this.state=1052,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,114,this.context)){case 1:this.enterOuterAlt(s,1),this.state=1020,this.columnIdentifier(),this.state=1021,this.columnTypeExpression(),this.state=1023,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(3===e||38===e||104===e)&&(this.state=1022,this.tableColumnPropertyExpression()),this.state=1027,this.errorHandler.sync(this),e=this.tokenStream.LA(1),27===e&&(this.state=1025,this.match(t.COMMENT),this.state=1026,this.match(t.STRING_LITERAL)),this.state=1030,this.errorHandler.sync(this),e=this.tokenStream.LA(1),24===e&&(this.state=1029,this.codecExpression()),this.state=1034,this.errorHandler.sync(this),e=this.tokenStream.LA(1),177===e&&(this.state=1032,this.match(t.TTL),this.state=1033,this.columnExpression(0));break;case 2:if(this.enterOuterAlt(s,2),1===(this.state=1036,this.columnIdentifier(),this.state=1038,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,110,this.context)))this.state=1037,this.columnTypeExpression();this.state=1040,this.tableColumnPropertyExpression(),this.state=1043,this.errorHandler.sync(this),e=this.tokenStream.LA(1),27===e&&(this.state=1041,this.match(t.COMMENT),this.state=1042,this.match(t.STRING_LITERAL)),this.state=1046,this.errorHandler.sync(this),e=this.tokenStream.LA(1),24===e&&(this.state=1045,this.codecExpression()),this.state=1050,this.errorHandler.sync(this),e=this.tokenStream.LA(1),177===e&&(this.state=1048,this.match(t.TTL),this.state=1049,this.columnExpression(0))}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableColumnPropertyExpression(){let e,s=new jF(this.context,this.state);this.enterRule(s,92,t.RULE_tableColumnPropertyExpression);try{this.enterOuterAlt(s,1),this.state=1054,e=this.tokenStream.LA(1),3===e||38===e||104===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1055,this.columnExpression(0)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableIndexDefinition(){let e=new zF(this.context,this.state);this.enterRule(e,94,t.RULE_tableIndexDefinition);try{this.enterOuterAlt(e,1),this.state=1057,this.columnIdentifier(),this.state=1058,this.columnExpression(0),this.state=1059,this.match(t.TYPE),this.state=1060,this.columnTypeExpression(),this.state=1061,this.match(t.GRANULARITY),this.state=1062,this.match(t.DECIMAL_LITERAL)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableProjectionDefinition(){let e=new $F(this.context,this.state);this.enterRule(e,96,t.RULE_tableProjectionDefinition);try{this.enterOuterAlt(e,1),this.state=1064,this.columnIdentifier(),this.state=1065,this.projectionSelectStatement()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}codecExpression(){let e,s=new tv(this.context,this.state);this.enterRule(s,98,t.RULE_codecExpression);try{for(this.enterOuterAlt(s,1),this.state=1067,this.match(t.CODEC),this.state=1068,this.match(t.LPAREN),this.state=1069,this.codecArgExpression(),this.state=1074,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=1070,this.match(t.COMMA),this.state=1071,this.codecArgExpression(),this.state=1076,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=1077,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}codecArgExpression(){let e,s=new ev(this.context,this.state);this.enterRule(s,100,t.RULE_codecArgExpression);try{this.enterOuterAlt(s,1),this.state=1079,this.identifier(),this.state=1085,this.errorHandler.sync(this),e=this.tokenStream.LA(1),219===e&&(this.state=1080,this.match(t.LPAREN),this.state=1082,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&4294967292||!(e-32&-32)&&1<<e-32&4290772991||!(e-64&-32)&&1<<e-64&4294967295||!(e-96&-32)&&1<<e-96&2147483647||!(e-129&-32)&&1<<e-129&4294967215||!(e-161&-32)&&1<<e-161&4294950911||!(e-193&-32)&&1<<e-193&1158024191)&&(this.state=1081,this.columnExpressionList()),this.state=1084,this.match(t.RPAREN))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}ttlExpression(){let e=new sv(this.context,this.state);this.enterRule(e,102,t.RULE_ttlExpression);try{switch(this.enterOuterAlt(e,1),this.state=1087,this.columnExpression(0),this.state=1095,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,118,this.context)){case 1:this.state=1088,this.match(t.DELETE);break;case 2:this.state=1089,this.match(t.TO),this.state=1090,this.match(t.DISK),this.state=1091,this.match(t.STRING_LITERAL);break;case 3:this.state=1092,this.match(t.TO),this.state=1093,this.match(t.VOLUME),this.state=1094,this.match(t.STRING_LITERAL)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}describeStatement(){let e,s=new av(this.context,this.state);this.enterRule(s,104,t.RULE_describeStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=1097,e=this.tokenStream.LA(1),41===e||43===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1099,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,119,this.context)))this.state=1098,this.match(t.TABLE);this.state=1101,this.tableExpression(0)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}dropStatement(){let e,s=new rv(this.context,this.state);this.enterRule(s,106,t.RULE_dropStatement);try{switch(this.state=1134,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,127,this.context)){case 1:if(s=new iv(s),this.enterOuterAlt(s,1),1===(this.state=1103,e=this.tokenStream.LA(1),44===e||50===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1104,this.match(t.DATABASE),this.state=1107,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,120,this.context)))this.state=1105,this.match(t.IF),this.state=1106,this.match(t.EXISTS);this.state=1109,this.databaseIdentifier(),this.state=1111,this.errorHandler.sync(this),e=this.tokenStream.LA(1),119===e&&(this.state=1110,this.clusterClause());break;case 2:switch(s=new cv(s),this.enterOuterAlt(s,2),this.state=1113,e=this.tokenStream.LA(1),44===e||50===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1120,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DICTIONARY:this.state=1114,this.match(t.DICTIONARY);break;case t.TABLE:case t.TEMPORARY:this.state=1116,this.errorHandler.sync(this),e=this.tokenStream.LA(1),164===e&&(this.state=1115,this.match(t.TEMPORARY)),this.state=1118,this.match(t.TABLE);break;case t.VIEW:this.state=1119,this.match(t.VIEW);break;default:throw new Ei(this)}if(1===(this.state=1124,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,124,this.context)))this.state=1122,this.match(t.IF),this.state=1123,this.match(t.EXISTS);this.state=1126,this.tableIdentifier(),this.state=1128,this.errorHandler.sync(this),e=this.tokenStream.LA(1),119===e&&(this.state=1127,this.clusterClause()),this.state=1132,this.errorHandler.sync(this),e=this.tokenStream.LA(1),114===e&&(this.state=1130,this.match(t.NO),this.state=1131,this.match(t.DELAY))}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}existsStatement(){let e,s=new nv(this.context,this.state);this.enterRule(s,108,t.RULE_existsStatement);try{switch(this.state=1149,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,130,this.context)){case 1:s=new hv(s),this.enterOuterAlt(s,1),this.state=1136,this.match(t.EXISTS),this.state=1137,this.match(t.DATABASE),this.state=1138,this.databaseIdentifier();break;case 2:switch(s=new Ev(s),this.enterOuterAlt(s,2),this.state=1139,this.match(t.EXISTS),this.state=1146,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,129,this.context)){case 1:this.state=1140,this.match(t.DICTIONARY);break;case 2:this.state=1142,this.errorHandler.sync(this),e=this.tokenStream.LA(1),164===e&&(this.state=1141,this.match(t.TEMPORARY)),this.state=1144,this.match(t.TABLE);break;case 3:this.state=1145,this.match(t.VIEW)}this.state=1148,this.tableIdentifier()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}explainStatement(){let e=new Tv(this.context,this.state);this.enterRule(e,110,t.RULE_explainStatement);try{switch(this.state=1172,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,131,this.context)){case 1:e=new Sv(e),this.enterOuterAlt(e,1),this.state=1151,this.match(t.EXPLAIN),this.state=1152,this.notInsertStatement();break;case 2:e=new ov(e),this.enterOuterAlt(e,2),this.state=1153,this.match(t.EXPLAIN),this.state=1154,this.match(t.AST),this.state=1155,this.notInsertStatement();break;case 3:e=new Ov(e),this.enterOuterAlt(e,3),this.state=1156,this.match(t.EXPLAIN),this.state=1157,this.match(t.SYNTAX),this.state=1158,this.notInsertStatement();break;case 4:e=new Iv(e),this.enterOuterAlt(e,4),this.state=1159,this.match(t.EXPLAIN),this.state=1160,this.match(t.PIPELINE),this.state=1161,this.notInsertStatement();break;case 5:e=new Av(e),this.enterOuterAlt(e,5),this.state=1162,this.match(t.EXPLAIN),this.state=1163,this.match(t.PLAN),this.state=1164,this.notInsertStatement();break;case 6:e=new Rv(e),this.enterOuterAlt(e,6),this.state=1165,this.match(t.EXPLAIN),this.state=1166,this.match(t.QUERY),this.state=1167,this.match(t.TREE),this.state=1168,this.notInsertStatement();break;case 7:e=new lv(e),this.enterOuterAlt(e,7),this.state=1169,this.match(t.EXPLAIN),this.state=1170,this.match(t.ESTIMATE),this.state=1171,this.notInsertStatement()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}insertStatement(){let e=new uv(this.context,this.state);this.enterRule(e,112,t.RULE_insertStatement);try{if(this.enterOuterAlt(e,1),1===(this.state=1174,this.match(t.INSERT),this.state=1175,this.match(t.INTO),this.state=1177,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,132,this.context)))this.state=1176,this.match(t.TABLE);switch(this.state=1182,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,133,this.context)){case 1:this.state=1179,this.tableIdentifier();break;case 2:this.state=1180,this.match(t.FUNCTION),this.state=1181,this.tableFunctionExpression()}if(1===(this.state=1185,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,134,this.context)))this.state=1184,this.columnsClause();this.state=1187,this.dataClause()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}columnsClause(){let e,s=new Nv(this.context,this.state);this.enterRule(s,114,t.RULE_columnsClause);try{for(this.enterOuterAlt(s,1),this.state=1189,this.match(t.LPAREN),this.state=1190,this.columnIdentifier(),this.state=1195,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=1191,this.match(t.COMMA),this.state=1192,this.columnIdentifier(),this.state=1197,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=1198,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}dataClause(){let e,s=new Lv(this.context,this.state);this.enterRule(s,116,t.RULE_dataClause);try{switch(this.state=1209,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FORMAT:s=new _v(s),this.enterOuterAlt(s,1),this.state=1200,this.match(t.FORMAT),this.state=1201,this.identifier();break;case t.VALUES:s=new Cv(s),this.enterOuterAlt(s,2),this.state=1202,this.valuesStatement();break;case t.SELECT:case t.WITH:case t.LPAREN:s=new Pv(s),this.enterOuterAlt(s,3),this.state=1203,this.selectUnionStatement(),this.state=1205,this.errorHandler.sync(this),e=this.tokenStream.LA(1),230===e&&(this.state=1204,this.match(t.SEMICOLON)),this.state=1207,this.match(t.EOF);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}valuesStatement(){let e,s=new Mv(this.context,this.state);this.enterRule(s,118,t.RULE_valuesStatement);try{for(this.enterOuterAlt(s,1),this.state=1211,this.match(t.VALUES),this.state=1212,this.match(t.LPAREN),this.state=1214,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(82===e||113===e||116===e||!(e-198&-32)&&1<<e-198&33566751)&&(this.state=1213,this.literal()),this.state=1216,this.match(t.RPAREN),this.state=1225,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=1217,this.match(t.COMMA),this.state=1218,this.match(t.LPAREN),this.state=1220,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(82===e||113===e||116===e||!(e-198&-32)&&1<<e-198&33566751)&&(this.state=1219,this.literal()),this.state=1222,this.match(t.RPAREN),this.state=1227,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}killStatement(){let e,s=new dv(this.context,this.state);this.enterRule(s,120,t.RULE_killStatement);try{s=new Uv(s),this.enterOuterAlt(s,1),this.state=1228,this.match(t.KILL),this.state=1229,this.match(t.MUTATION),this.state=1231,this.errorHandler.sync(this),e=this.tokenStream.LA(1),119===e&&(this.state=1230,this.clusterClause()),this.state=1233,this.whereClause(),this.state=1235,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(14===e||159===e||165===e)&&(this.state=1234,e=this.tokenStream.LA(1),14===e||159===e||165===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}optimizeStatement(){let e,s=new mv(this.context,this.state);this.enterRule(s,122,t.RULE_optimizeStatement);try{this.enterOuterAlt(s,1),this.state=1237,this.match(t.OPTIMIZE),this.state=1238,this.match(t.TABLE),this.state=1239,this.tableIdentifier(),this.state=1241,this.errorHandler.sync(this),e=this.tokenStream.LA(1),119===e&&(this.state=1240,this.clusterClause()),this.state=1244,this.errorHandler.sync(this),e=this.tokenStream.LA(1),126===e&&(this.state=1243,this.partitionClause()),this.state=1247,this.errorHandler.sync(this),e=this.tokenStream.LA(1),61===e&&(this.state=1246,this.match(t.FINAL)),this.state=1250,this.errorHandler.sync(this),e=this.tokenStream.LA(1),37===e&&(this.state=1249,this.match(t.DEDUPLICATE))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}renameStatement(){let e,s=new Dv(this.context,this.state);this.enterRule(s,124,t.RULE_renameStatement);try{for(this.enterOuterAlt(s,1),this.state=1252,this.match(t.RENAME),this.state=1253,this.match(t.TABLE),this.state=1254,this.tableIdentifier(),this.state=1255,this.match(t.TO),this.state=1256,this.tableIdentifier(),this.state=1264,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=1257,this.match(t.COMMA),this.state=1258,this.tableIdentifier(),this.state=1259,this.match(t.TO),this.state=1260,this.tableIdentifier(),this.state=1266,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=1268,this.errorHandler.sync(this),e=this.tokenStream.LA(1),119===e&&(this.state=1267,this.clusterClause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}projectionSelectStatement(){let e,s=new pv(this.context,this.state);this.enterRule(s,126,t.RULE_projectionSelectStatement);try{this.enterOuterAlt(s,1),this.state=1270,this.match(t.LPAREN),this.state=1272,this.errorHandler.sync(this),e=this.tokenStream.LA(1),193===e&&(this.state=1271,this.withClause()),this.state=1274,this.match(t.SELECT),this.state=1275,this.columnExpressionList(),this.state=1277,this.errorHandler.sync(this),e=this.tokenStream.LA(1),73===e&&(this.state=1276,this.groupByClause()),this.state=1280,this.errorHandler.sync(this),e=this.tokenStream.LA(1),122===e&&(this.state=1279,this.projectionOrderByClause()),this.state=1282,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}selectUnionStatement(){let e,s=new gv(this.context,this.state);this.enterRule(s,128,t.RULE_selectUnionStatement);try{for(this.enterOuterAlt(s,1),this.state=1284,this.selectStatementWithParentheses(),this.state=1290,this.errorHandler.sync(this),e=this.tokenStream.LA(1);180===e;)this.state=1285,this.match(t.UNION),this.state=1286,this.match(t.ALL),this.state=1287,this.selectStatementWithParentheses(),this.state=1292,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}selectStatementWithParentheses(){let e=new xv(this.context,this.state);this.enterRule(e,130,t.RULE_selectStatementWithParentheses);try{switch(this.state=1298,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SELECT:case t.WITH:this.enterOuterAlt(e,1),this.state=1293,this.selectStatement();break;case t.LPAREN:this.enterOuterAlt(e,2),this.state=1294,this.match(t.LPAREN),this.state=1295,this.selectUnionStatement(),this.state=1296,this.match(t.RPAREN);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}selectStatement(){let e,s=new kv(this.context,this.state);this.enterRule(s,132,t.RULE_selectStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=1301,this.errorHandler.sync(this),e=this.tokenStream.LA(1),193===e&&(this.state=1300,this.withClause()),this.state=1303,this.match(t.SELECT),this.state=1305,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,155,this.context)))this.state=1304,this.match(t.DISTINCT);if(1===(this.state=1308,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,156,this.context)))this.state=1307,this.topClause();if(1===(this.state=1310,this.columnExpressionList(),this.state=1312,this.errorHandler.sync(this),e=this.tokenStream.LA(1),68===e&&(this.state=1311,this.fromClause()),this.state=1315,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(9===e||84===e||96===e)&&(this.state=1314,this.arrayJoinClause()),this.state=1318,this.errorHandler.sync(this),e=this.tokenStream.LA(1),192===e&&(this.state=1317,this.windowClause()),this.state=1321,this.errorHandler.sync(this),e=this.tokenStream.LA(1),131===e&&(this.state=1320,this.prewhereClause()),this.state=1324,this.errorHandler.sync(this),e=this.tokenStream.LA(1),191===e&&(this.state=1323,this.whereClause()),this.state=1327,this.errorHandler.sync(this),e=this.tokenStream.LA(1),73===e&&(this.state=1326,this.groupByClause()),this.state=1331,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,163,this.context)))this.state=1329,this.match(t.WITH),this.state=1330,e=this.tokenStream.LA(1),31===e||144===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);if(1===(this.state=1335,this.errorHandler.sync(this),e=this.tokenStream.LA(1),193===e&&(this.state=1333,this.match(t.WITH),this.state=1334,this.match(t.TOTALS)),this.state=1338,this.errorHandler.sync(this),e=this.tokenStream.LA(1),74===e&&(this.state=1337,this.havingClause()),this.state=1341,this.errorHandler.sync(this),e=this.tokenStream.LA(1),122===e&&(this.state=1340,this.orderByClause()),this.state=1344,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,167,this.context)))this.state=1343,this.limitByClause();this.state=1347,this.errorHandler.sync(this),e=this.tokenStream.LA(1),99===e&&(this.state=1346,this.limitClause()),this.state=1350,this.errorHandler.sync(this),e=this.tokenStream.LA(1),153===e&&(this.state=1349,this.settingsClause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}withClause(){let e=new Hv(this.context,this.state);this.enterRule(e,134,t.RULE_withClause);try{this.enterOuterAlt(e,1),this.state=1352,this.match(t.WITH),this.state=1353,this.columnExpressionList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}topClause(){let e=new Gv(this.context,this.state);this.enterRule(e,136,t.RULE_topClause);try{if(1===(this.enterOuterAlt(e,1),this.state=1355,this.match(t.TOP),this.state=1356,this.match(t.DECIMAL_LITERAL),this.state=1359,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,170,this.context)))this.state=1357,this.match(t.WITH),this.state=1358,this.match(t.TIES)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}fromClause(){let e=new Fv(this.context,this.state);this.enterRule(e,138,t.RULE_fromClause);try{this.enterOuterAlt(e,1),this.state=1361,this.match(t.FROM),this.state=1362,this.joinExpression(0)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}arrayJoinClause(){let e,s=new vv(this.context,this.state);this.enterRule(s,140,t.RULE_arrayJoinClause);try{this.enterOuterAlt(s,1),this.state=1365,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(84===e||96===e)&&(this.state=1364,e=this.tokenStream.LA(1),84===e||96===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=1367,this.match(t.ARRAY),this.state=1368,this.match(t.JOIN),this.state=1369,this.columnExpressionList()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}windowClause(){let e=new Bv(this.context,this.state);this.enterRule(e,142,t.RULE_windowClause);try{this.enterOuterAlt(e,1),this.state=1371,this.match(t.WINDOW),this.state=1372,this.identifier(),this.state=1373,this.match(t.AS),this.state=1374,this.match(t.LPAREN),this.state=1375,this.windowExpression(),this.state=1376,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}prewhereClause(){let e=new yv(this.context,this.state);this.enterRule(e,144,t.RULE_prewhereClause);try{this.enterOuterAlt(e,1),this.state=1378,this.match(t.PREWHERE),this.state=1379,this.columnExpression(0)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}whereClause(){let e=new fv(this.context,this.state);this.enterRule(e,146,t.RULE_whereClause);try{this.enterOuterAlt(e,1),this.state=1381,this.match(t.WHERE),this.state=1382,this.columnExpression(0)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}groupByClause(){let e,s=new Yv(this.context,this.state);this.enterRule(s,148,t.RULE_groupByClause);try{switch(this.enterOuterAlt(s,1),this.state=1384,this.match(t.GROUP),this.state=1385,this.match(t.BY),this.state=1392,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,172,this.context)){case 1:this.state=1386,e=this.tokenStream.LA(1),31===e||144===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1387,this.match(t.LPAREN),this.state=1388,this.columnExpressionList(),this.state=1389,this.match(t.RPAREN);break;case 2:this.state=1391,this.columnExpressionList()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}havingClause(){let e=new wv(this.context,this.state);this.enterRule(e,150,t.RULE_havingClause);try{this.enterOuterAlt(e,1),this.state=1394,this.match(t.HAVING),this.state=1395,this.columnExpression(0)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}orderByClause(){let e=new bv(this.context,this.state);this.enterRule(e,152,t.RULE_orderByClause);try{this.enterOuterAlt(e,1),this.state=1397,this.match(t.ORDER),this.state=1398,this.match(t.BY),this.state=1399,this.orderExpressionList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}projectionOrderByClause(){let e=new Wv(this.context,this.state);this.enterRule(e,154,t.RULE_projectionOrderByClause);try{this.enterOuterAlt(e,1),this.state=1401,this.match(t.ORDER),this.state=1402,this.match(t.BY),this.state=1403,this.columnExpressionList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}limitByClause(){let e=new Vv(this.context,this.state);this.enterRule(e,156,t.RULE_limitByClause);try{this.enterOuterAlt(e,1),this.state=1405,this.match(t.LIMIT),this.state=1406,this.limitExpression(),this.state=1407,this.match(t.BY),this.state=1408,this.columnExpressionList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}limitClause(){let e,s=new Xv(this.context,this.state);this.enterRule(s,158,t.RULE_limitClause);try{this.enterOuterAlt(s,1),this.state=1410,this.match(t.LIMIT),this.state=1411,this.limitExpression(),this.state=1414,this.errorHandler.sync(this),e=this.tokenStream.LA(1),193===e&&(this.state=1412,this.match(t.WITH),this.state=1413,this.match(t.TIES))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}settingsClause(){let e=new Kv(this.context,this.state);this.enterRule(e,160,t.RULE_settingsClause);try{this.enterOuterAlt(e,1),this.state=1416,this.match(t.SETTINGS),this.state=1417,this.settingExpressionList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}joinExpression(e){void 0===e&&(e=0);let s,a=this.context,r=this.state,i=new Qv(this.context,r),c=i;this.enterRecursionRule(i,162,t.RULE_joinExpression,e);try{let e;switch(this.enterOuterAlt(i,1),this.state=1431,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,176,this.context)){case 1:if(1===(i=new Zv(i),this.context=i,c=i,this.state=1420,this.tableExpression(0),this.state=1422,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,174,this.context)))this.state=1421,this.match(t.FINAL);if(1===(this.state=1425,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,175,this.context)))this.state=1424,this.sampleClause();break;case 2:i=new Jv(i),this.context=i,c=i,this.state=1427,this.match(t.LPAREN),this.state=1428,this.joinExpression(0),this.state=1429,this.match(t.RPAREN)}for(this.context.stop=this.tokenStream.LT(-1),this.state=1450,this.errorHandler.sync(this),e=this.interpreter.adaptivePredict(this.tokenStream,180,this.context);2!==e&&e!==ja.INVALID_ALT_NUMBER;){if(1===e)switch(null!=this.parseListeners&&this.triggerExitRuleEvent(),c=i,this.state=1448,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,179,this.context)){case 1:if(i=new qv(new Qv(a,r)),this.pushNewRecursionContext(i,162,t.RULE_joinExpression),this.state=1433,!this.precpred(this.context,3))throw this.createFailedPredicateException("this.precpred(this.context, 3)");this.state=1434,this.joinOperatorCross(),this.state=1435,this.joinExpression(4);break;case 2:if(i=new jv(new Qv(a,r)),this.pushNewRecursionContext(i,162,t.RULE_joinExpression),this.state=1437,!this.precpred(this.context,4))throw this.createFailedPredicateException("this.precpred(this.context, 4)");this.state=1439,this.errorHandler.sync(this),s=this.tokenStream.LA(1),(71===s||101===s)&&(this.state=1438,s=this.tokenStream.LA(1),71===s||101===s?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=1442,this.errorHandler.sync(this),s=this.tokenStream.LA(1),(!(-32&s)&&1<<s&4496||!(s-69&-32)&&1<<s-69&134250497||143===s||150===s)&&(this.state=1441,this.joinOperator()),this.state=1444,this.match(t.JOIN),this.state=1445,this.joinExpression(0),this.state=1446,this.joinConstraintClause()}this.state=1452,this.errorHandler.sync(this),e=this.interpreter.adaptivePredict(this.tokenStream,180,this.context)}}catch(n){if(!(n instanceof jr))throw n;this.errorHandler.reportError(this,n),this.errorHandler.recover(this,n)}finally{this.unrollRecursionContexts(a)}return i}joinOperator(){let e,s=new zv(this.context,this.state);this.enterRule(s,164,t.RULE_joinOperator);try{switch(this.state=1496,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,194,this.context)){case 1:switch(s=new tB(s),this.enterOuterAlt(s,1),this.state=1462,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,183,this.context)){case 1:this.state=1454,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(-32&e)&&1<<e&4368&&(this.state=1453,e=this.tokenStream.LA(1),!(-32&e)&&1<<e&4368?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=1456,this.match(t.INNER);break;case 2:this.state=1457,this.match(t.INNER),this.state=1459,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(-32&e)&&1<<e&4368&&(this.state=1458,e=this.tokenStream.LA(1),!(-32&e)&&1<<e&4368?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this));break;case 3:this.state=1461,e=this.tokenStream.LA(1),!(-32&e)&&1<<e&4368?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}break;case 2:switch(s=new eB(s),this.enterOuterAlt(s,2),this.state=1478,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,188,this.context)){case 1:this.state=1465,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&4496||150===e)&&(this.state=1464,e=this.tokenStream.LA(1),!(-32&e)&&1<<e&4496||150===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=1467,e=this.tokenStream.LA(1),96===e||143===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1469,this.errorHandler.sync(this),e=this.tokenStream.LA(1),123===e&&(this.state=1468,this.match(t.OUTER));break;case 2:this.state=1471,e=this.tokenStream.LA(1),96===e||143===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1473,this.errorHandler.sync(this),e=this.tokenStream.LA(1),123===e&&(this.state=1472,this.match(t.OUTER)),this.state=1476,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&4496||150===e)&&(this.state=1475,e=this.tokenStream.LA(1),!(-32&e)&&1<<e&4496||150===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this))}break;case 3:switch(s=new $v(s),this.enterOuterAlt(s,3),this.state=1494,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,193,this.context)){case 1:this.state=1481,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(4===e||8===e)&&(this.state=1480,e=this.tokenStream.LA(1),4===e||8===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=1483,this.match(t.FULL),this.state=1485,this.errorHandler.sync(this),e=this.tokenStream.LA(1),123===e&&(this.state=1484,this.match(t.OUTER));break;case 2:this.state=1487,this.match(t.FULL),this.state=1489,this.errorHandler.sync(this),e=this.tokenStream.LA(1),123===e&&(this.state=1488,this.match(t.OUTER)),this.state=1492,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(4===e||8===e)&&(this.state=1491,e=this.tokenStream.LA(1),4===e||8===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this))}}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}joinOperatorCross(){let e,s=new sB(this.context,this.state);this.enterRule(s,166,t.RULE_joinOperatorCross);try{switch(this.state=1504,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CROSS:case t.GLOBAL:case t.LOCAL:this.enterOuterAlt(s,1),this.state=1499,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(71===e||101===e)&&(this.state=1498,e=this.tokenStream.LA(1),71===e||101===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=1501,this.match(t.CROSS),this.state=1502,this.match(t.JOIN);break;case t.COMMA:this.enterOuterAlt(s,2),this.state=1503,this.match(t.COMMA);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}joinConstraintClause(){let e=new aB(this.context,this.state);this.enterRule(e,168,t.RULE_joinConstraintClause);try{switch(this.state=1515,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,197,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1506,this.match(t.ON),this.state=1507,this.columnExpressionList();break;case 2:this.enterOuterAlt(e,2),this.state=1508,this.match(t.USING),this.state=1509,this.match(t.LPAREN),this.state=1510,this.columnExpressionList(),this.state=1511,this.match(t.RPAREN);break;case 3:this.enterOuterAlt(e,3),this.state=1513,this.match(t.USING),this.state=1514,this.columnExpressionList()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}sampleClause(){let e=new rB(this.context,this.state);this.enterRule(e,170,t.RULE_sampleClause);try{if(1===(this.enterOuterAlt(e,1),this.state=1517,this.match(t.SAMPLE),this.state=1518,this.ratioExpression(),this.state=1521,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,198,this.context)))this.state=1519,this.match(t.OFFSET),this.state=1520,this.ratioExpression()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}limitExpression(){let e,s=new iB(this.context,this.state);this.enterRule(s,172,t.RULE_limitExpression);try{this.enterOuterAlt(s,1),this.state=1523,this.columnExpression(0),this.state=1526,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(118===e||208===e)&&(this.state=1524,e=this.tokenStream.LA(1),118===e||208===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1525,this.columnExpression(0))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}orderExpressionList(){let e=new cB(this.context,this.state);this.enterRule(e,174,t.RULE_orderExpressionList);try{let s;for(this.enterOuterAlt(e,1),this.state=1528,this.orderExpression(),this.state=1533,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,200,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=1529,this.match(t.COMMA),this.state=1530,this.orderExpression()),this.state=1535,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,200,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}orderExpression(){let e,s=new nB(this.context,this.state);this.enterRule(s,176,t.RULE_orderExpression);try{if(this.enterOuterAlt(s,1),1===(this.state=1536,this.columnExpression(0),this.state=1538,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,201,this.context)))this.state=1537,e=this.tokenStream.LA(1),!(e-11&-32)&&1<<e-11&3221225473?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);if(1===(this.state=1542,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,202,this.context)))this.state=1540,this.match(t.NULLS),this.state=1541,e=this.tokenStream.LA(1),62===e||93===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);if(1===(this.state=1546,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,203,this.context)))this.state=1544,this.match(t.COLLATE),this.state=1545,this.match(t.STRING_LITERAL)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}ratioExpression(){let e=new hB(this.context,this.state);this.enterRule(e,178,t.RULE_ratioExpression);try{if(1===(this.enterOuterAlt(e,1),this.state=1548,this.numberLiteral(),this.state=1551,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,204,this.context)))this.state=1549,this.match(t.SLASH),this.state=1550,this.numberLiteral()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}settingExpressionList(){let e=new EB(this.context,this.state);this.enterRule(e,180,t.RULE_settingExpressionList);try{let s;for(this.enterOuterAlt(e,1),this.state=1553,this.settingExpression(),this.state=1558,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,205,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=1554,this.match(t.COMMA),this.state=1555,this.settingExpression()),this.state=1560,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,205,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}settingExpression(){let e=new TB(this.context,this.state);this.enterRule(e,182,t.RULE_settingExpression);try{this.enterOuterAlt(e,1),this.state=1561,this.identifier(),this.state=1562,this.match(t.EQ_SINGLE),this.state=1563,this.literal()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}windowExpression(){let e,s=new oB(this.context,this.state);this.enterRule(s,184,t.RULE_windowExpression);try{this.enterOuterAlt(s,1),this.state=1566,this.errorHandler.sync(this),e=this.tokenStream.LA(1),126===e&&(this.state=1565,this.windowPartitionByClause()),this.state=1569,this.errorHandler.sync(this),e=this.tokenStream.LA(1),122===e&&(this.state=1568,this.windowOrderByClause()),this.state=1572,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(136===e||146===e)&&(this.state=1571,this.windowFrameClause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}windowPartitionByClause(){let e=new RB(this.context,this.state);this.enterRule(e,186,t.RULE_windowPartitionByClause);try{this.enterOuterAlt(e,1),this.state=1574,this.match(t.PARTITION),this.state=1575,this.match(t.BY),this.state=1576,this.columnExpressionList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}windowOrderByClause(){let e=new AB(this.context,this.state);this.enterRule(e,188,t.RULE_windowOrderByClause);try{this.enterOuterAlt(e,1),this.state=1578,this.match(t.ORDER),this.state=1579,this.match(t.BY),this.state=1580,this.orderExpressionList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}windowFrameClause(){let e,s=new SB(this.context,this.state);this.enterRule(s,190,t.RULE_windowFrameClause);try{this.enterOuterAlt(s,1),this.state=1582,e=this.tokenStream.LA(1),136===e||146===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1583,this.windowFrameExtend()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}windowFrameExtend(){let e=new lB(this.context,this.state);this.enterRule(e,192,t.RULE_windowFrameExtend);try{switch(this.state=1591,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CURRENT:case t.INF:case t.NAN_SQL:case t.UNBOUNDED:case t.FLOATING_LITERAL:case t.OCTAL_LITERAL:case t.DECIMAL_LITERAL:case t.HEXADECIMAL_LITERAL:case t.DASH:case t.DOT:case t.PLUS:e=new OB(e),this.enterOuterAlt(e,1),this.state=1585,this.windowFrameBound();break;case t.BETWEEN:e=new IB(e),this.enterOuterAlt(e,2),this.state=1586,this.match(t.BETWEEN),this.state=1587,this.windowFrameBound(),this.state=1588,this.match(t.AND),this.state=1589,this.windowFrameBound();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}windowFrameBound(){let e=new uB(this.context,this.state);this.enterRule(e,194,t.RULE_windowFrameBound);try{switch(this.enterOuterAlt(e,1),this.state=1605,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,210,this.context)){case 1:this.state=1593,this.match(t.CURRENT),this.state=1594,this.match(t.ROW);break;case 2:this.state=1595,this.match(t.UNBOUNDED),this.state=1596,this.match(t.PRECEDING);break;case 3:this.state=1597,this.match(t.UNBOUNDED),this.state=1598,this.match(t.FOLLOWING);break;case 4:this.state=1599,this.numberLiteral(),this.state=1600,this.match(t.PRECEDING);break;case 5:this.state=1602,this.numberLiteral(),this.state=1603,this.match(t.FOLLOWING)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}setStatement(){let e=new NB(this.context,this.state);this.enterRule(e,196,t.RULE_setStatement);try{this.enterOuterAlt(e,1),this.state=1607,this.match(t.SET),this.state=1608,this.settingExpressionList()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}showStatement(){let e,s=new LB(this.context,this.state);this.enterRule(s,198,t.RULE_showStatement);try{switch(this.state=1652,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,218,this.context)){case 1:s=new dB(s),this.enterOuterAlt(s,1),this.state=1610,this.match(t.SHOW),this.state=1611,this.match(t.CREATE),this.state=1612,this.match(t.DATABASE),this.state=1613,this.databaseIdentifier();break;case 2:s=new _B(s),this.enterOuterAlt(s,2),this.state=1614,this.match(t.SHOW),this.state=1615,this.match(t.CREATE),this.state=1616,this.match(t.DICTIONARY),this.state=1617,this.tableIdentifier();break;case 3:if(s=new CB(s),this.enterOuterAlt(s,3),1===(this.state=1618,this.match(t.SHOW),this.state=1619,this.match(t.CREATE),this.state=1621,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,211,this.context)))this.state=1620,this.match(t.TEMPORARY);if(1===(this.state=1624,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,212,this.context)))this.state=1623,this.match(t.TABLE);this.state=1626,this.tableIdentifier();break;case 4:s=new UB(s),this.enterOuterAlt(s,4),this.state=1627,this.match(t.SHOW),this.state=1628,this.match(t.DATABASES);break;case 5:s=new MB(s),this.enterOuterAlt(s,5),this.state=1629,this.match(t.SHOW),this.state=1630,this.match(t.DICTIONARIES),this.state=1633,this.errorHandler.sync(this),e=this.tokenStream.LA(1),68===e&&(this.state=1631,this.match(t.FROM),this.state=1632,this.databaseIdentifier());break;case 6:switch(s=new PB(s),this.enterOuterAlt(s,6),this.state=1635,this.match(t.SHOW),this.state=1637,this.errorHandler.sync(this),e=this.tokenStream.LA(1),164===e&&(this.state=1636,this.match(t.TEMPORARY)),this.state=1639,this.match(t.TABLES),this.state=1642,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(68===e||80===e)&&(this.state=1640,e=this.tokenStream.LA(1),68===e||80===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1641,this.databaseIdentifier()),this.state=1647,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LIKE:this.state=1644,this.match(t.LIKE),this.state=1645,this.match(t.STRING_LITERAL);break;case t.WHERE:this.state=1646,this.whereClause();case t.EOF:case t.FORMAT:case t.INTO:case t.LIMIT:case t.RPAREN:case t.SEMICOLON:}this.state=1650,this.errorHandler.sync(this),e=this.tokenStream.LA(1),99===e&&(this.state=1649,this.limitClause())}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}systemStatement(){let e,s=new mB(this.context,this.state);this.enterRule(s,200,t.RULE_systemStatement);try{switch(this.state=1688,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,221,this.context)){case 1:this.enterOuterAlt(s,1),this.state=1654,this.match(t.SYSTEM),this.state=1655,this.match(t.FLUSH),this.state=1656,this.match(t.DISTRIBUTED),this.state=1657,this.tableIdentifier();break;case 2:this.enterOuterAlt(s,2),this.state=1658,this.match(t.SYSTEM),this.state=1659,this.match(t.FLUSH),this.state=1660,this.match(t.LOGS);break;case 3:this.enterOuterAlt(s,3),this.state=1661,this.match(t.SYSTEM),this.state=1662,this.match(t.RELOAD),this.state=1663,this.match(t.DICTIONARIES);break;case 4:this.enterOuterAlt(s,4),this.state=1664,this.match(t.SYSTEM),this.state=1665,this.match(t.RELOAD),this.state=1666,this.match(t.DICTIONARY),this.state=1667,this.tableIdentifier();break;case 5:switch(this.enterOuterAlt(s,5),this.state=1668,this.match(t.SYSTEM),this.state=1669,e=this.tokenStream.LA(1),156===e||157===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1677,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DISTRIBUTED:this.state=1670,this.match(t.DISTRIBUTED),this.state=1671,this.match(t.SENDS);break;case t.FETCHES:this.state=1672,this.match(t.FETCHES);break;case t.MERGES:case t.TTL:this.state=1674,this.errorHandler.sync(this),e=this.tokenStream.LA(1),177===e&&(this.state=1673,this.match(t.TTL)),this.state=1676,this.match(t.MERGES);break;default:throw new Ei(this)}this.state=1679,this.tableIdentifier();break;case 6:this.enterOuterAlt(s,6),this.state=1680,this.match(t.SYSTEM),this.state=1681,e=this.tokenStream.LA(1),156===e||157===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1682,this.match(t.REPLICATED),this.state=1683,this.match(t.SENDS);break;case 7:this.enterOuterAlt(s,7),this.state=1684,this.match(t.SYSTEM),this.state=1685,this.match(t.SYNC),this.state=1686,this.match(t.REPLICA),this.state=1687,this.tableIdentifier()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}truncateStatement(){let e,s=new DB(this.context,this.state);this.enterRule(s,202,t.RULE_truncateStatement);try{if(this.enterOuterAlt(s,1),1===(this.state=1690,this.match(t.TRUNCATE),this.state=1692,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,222,this.context)))this.state=1691,this.match(t.TEMPORARY);if(1===(this.state=1695,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,223,this.context)))this.state=1694,this.match(t.TABLE);if(1===(this.state=1699,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,224,this.context)))this.state=1697,this.match(t.IF),this.state=1698,this.match(t.EXISTS);this.state=1701,this.tableIdentifier(),this.state=1703,this.errorHandler.sync(this),e=this.tokenStream.LA(1),119===e&&(this.state=1702,this.clusterClause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}useStatement(){let e=new pB(this.context,this.state);this.enterRule(e,204,t.RULE_useStatement);try{this.enterOuterAlt(e,1),this.state=1705,this.match(t.USE),this.state=1706,this.databaseIdentifier()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}watchStatement(){let e,s=new gB(this.context,this.state);this.enterRule(s,206,t.RULE_watchStatement);try{this.enterOuterAlt(s,1),this.state=1708,this.match(t.WATCH),this.state=1709,this.tableIdentifier(),this.state=1711,this.errorHandler.sync(this),e=this.tokenStream.LA(1),55===e&&(this.state=1710,this.match(t.EVENTS)),this.state=1715,this.errorHandler.sync(this),e=this.tokenStream.LA(1),99===e&&(this.state=1713,this.match(t.LIMIT),this.state=1714,this.match(t.DECIMAL_LITERAL))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}columnTypeExpression(){let e,s=new xB(this.context,this.state);this.enterRule(s,208,t.RULE_columnTypeExpression);try{switch(this.state=1764,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,232,this.context)){case 1:s=new vB(s),this.enterOuterAlt(s,1),this.state=1717,this.identifier();break;case 2:for(s=new GB(s),this.enterOuterAlt(s,2),this.state=1718,this.identifier(),this.state=1719,this.match(t.LPAREN),this.state=1720,this.identifier(),this.state=1721,this.columnTypeExpression(),this.state=1728,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=1722,this.match(t.COMMA),this.state=1723,this.identifier(),this.state=1724,this.columnTypeExpression(),this.state=1730,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=1731,this.match(t.RPAREN);break;case 3:for(s=new HB(s),this.enterOuterAlt(s,3),this.state=1733,this.identifier(),this.state=1734,this.match(t.LPAREN),this.state=1735,this.enumValue(),this.state=1740,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=1736,this.match(t.COMMA),this.state=1737,this.enumValue(),this.state=1742,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=1743,this.match(t.RPAREN);break;case 4:for(s=new kB(s),this.enterOuterAlt(s,4),this.state=1745,this.identifier(),this.state=1746,this.match(t.LPAREN),this.state=1747,this.columnTypeExpression(),this.state=1752,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=1748,this.match(t.COMMA),this.state=1749,this.columnTypeExpression(),this.state=1754,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=1755,this.match(t.RPAREN);break;case 5:s=new FB(s),this.enterOuterAlt(s,5),this.state=1757,this.identifier(),this.state=1758,this.match(t.LPAREN),this.state=1760,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&4294967292||!(e-32&-32)&&1<<e-32&4290772991||!(e-64&-32)&&1<<e-64&4294967295||!(e-96&-32)&&1<<e-96&2147483647||!(e-129&-32)&&1<<e-129&4294967215||!(e-161&-32)&&1<<e-161&4294950911||!(e-193&-32)&&1<<e-193&1158024191)&&(this.state=1759,this.columnExpressionList()),this.state=1762,this.match(t.RPAREN)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}columnExpressionList(){let e=new BB(this.context,this.state);this.enterRule(e,210,t.RULE_columnExpressionList);try{let s;for(this.enterOuterAlt(e,1),this.state=1766,this.columnsExpression(),this.state=1771,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,233,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=1767,this.match(t.COMMA),this.state=1768,this.columnsExpression()),this.state=1773,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,233,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}columnsExpression(){let e,s=new yB(this.context,this.state);this.enterRule(s,212,t.RULE_columnsExpression);try{switch(this.state=1785,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,235,this.context)){case 1:s=new fB(s),this.enterOuterAlt(s,1),this.state=1777,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&4294967292||!(e-32&-32)&&1<<e-32&4290772991||!(e-64&-32)&&1<<e-64&4294705151||!(e-96&-32)&&1<<e-96&2146303999||!(e-129&-32)&&1<<e-129&4294967215||!(e-161&-32)&&1<<e-161&4294950911||!(e-193&-32)&&1<<e-193&31)&&(this.state=1774,this.tableIdentifier(),this.state=1775,this.match(t.DOT)),this.state=1779,this.match(t.ASTERISK);break;case 2:s=new YB(s),this.enterOuterAlt(s,2),this.state=1780,this.match(t.LPAREN),this.state=1781,this.selectUnionStatement(),this.state=1782,this.match(t.RPAREN);break;case 3:s=new wB(s),this.enterOuterAlt(s,3),this.state=1784,this.columnExpression(0)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}columnExpression(e){void 0===e&&(e=0);let s,a=this.context,r=this.state,i=new bB(this.context,r),c=i,n=214;this.enterRecursionRule(i,214,t.RULE_columnExpression,e);try{let e;switch(this.enterOuterAlt(i,1),this.state=1916,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,248,this.context)){case 1:if(1===(i=new jB(i),this.context=i,c=i,this.state=1788,this.match(t.CASE),this.state=1790,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,236,this.context)))this.state=1789,this.columnExpression(0);this.state=1797,this.errorHandler.sync(this),s=this.tokenStream.LA(1);do{this.state=1792,this.match(t.WHEN),this.state=1793,this.columnExpression(0),this.state=1794,this.match(t.THEN),this.state=1795,this.columnExpression(0),this.state=1799,this.errorHandler.sync(this),s=this.tokenStream.LA(1)}while(190===s);this.state=1803,this.errorHandler.sync(this),s=this.tokenStream.LA(1),51===s&&(this.state=1801,this.match(t.ELSE),this.state=1802,this.columnExpression(0)),this.state=1805,this.match(t.END);break;case 2:i=new uy(i),this.context=i,c=i,this.state=1807,this.match(t.CAST),this.state=1808,this.match(t.LPAREN),this.state=1809,this.columnExpression(0),this.state=1810,this.match(t.AS),this.state=1811,this.columnTypeExpression(),this.state=1812,this.match(t.RPAREN);break;case 3:i=new KB(i),this.context=i,c=i,this.state=1814,this.match(t.DATE),this.state=1815,this.match(t.STRING_LITERAL);break;case 4:i=new Iy(i),this.context=i,c=i,this.state=1816,this.match(t.EXTRACT),this.state=1817,this.match(t.LPAREN),this.state=1818,this.interval(),this.state=1819,this.match(t.FROM),this.state=1820,this.columnExpression(0),this.state=1821,this.match(t.RPAREN);break;case 5:i=new Sy(i),this.context=i,c=i,this.state=1823,this.match(t.INTERVAL),this.state=1824,this.columnExpression(0),this.state=1825,this.interval();break;case 6:i=new qB(i),this.context=i,c=i,this.state=1827,this.match(t.SUBSTRING),this.state=1828,this.match(t.LPAREN),this.state=1829,this.columnExpression(0),this.state=1830,this.match(t.FROM),this.state=1831,this.columnExpression(0),this.state=1834,this.errorHandler.sync(this),s=this.tokenStream.LA(1),65===s&&(this.state=1832,this.match(t.FOR),this.state=1833,this.columnExpression(0)),this.state=1836,this.match(t.RPAREN);break;case 7:i=new oy(i),this.context=i,c=i,this.state=1838,this.match(t.TIMESTAMP),this.state=1839,this.match(t.STRING_LITERAL);break;case 8:i=new JB(i),this.context=i,c=i,this.state=1840,this.match(t.TRIM),this.state=1841,this.match(t.LPAREN),this.state=1842,s=this.tokenStream.LA(1),17===s||95===s||173===s?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1843,this.match(t.STRING_LITERAL),this.state=1844,this.match(t.FROM),this.state=1845,this.columnExpression(0),this.state=1846,this.match(t.RPAREN);break;case 9:i=new ay(i),this.context=i,c=i,this.state=1848,this.identifier(),this.state=1849,this.match(t.LPAREN),this.state=1851,this.errorHandler.sync(this),s=this.tokenStream.LA(1),(!(-32&s)&&1<<s&4294967292||!(s-32&-32)&&1<<s-32&4290772991||!(s-64&-32)&&1<<s-64&4294967295||!(s-96&-32)&&1<<s-96&2147483647||!(s-129&-32)&&1<<s-129&4294967215||!(s-161&-32)&&1<<s-161&4294950911||!(s-193&-32)&&1<<s-193&1158024191)&&(this.state=1850,this.columnExpressionList()),this.state=1853,this.match(t.RPAREN),this.state=1855,this.match(t.OVER),this.state=1856,this.match(t.LPAREN),this.state=1857,this.windowExpression(),this.state=1858,this.match(t.RPAREN);break;case 10:i=new hy(i),this.context=i,c=i,this.state=1860,this.identifier(),this.state=1861,this.match(t.LPAREN),this.state=1863,this.errorHandler.sync(this),s=this.tokenStream.LA(1),(!(-32&s)&&1<<s&4294967292||!(s-32&-32)&&1<<s-32&4290772991||!(s-64&-32)&&1<<s-64&4294967295||!(s-96&-32)&&1<<s-96&2147483647||!(s-129&-32)&&1<<s-129&4294967215||!(s-161&-32)&&1<<s-161&4294950911||!(s-193&-32)&&1<<s-193&1158024191)&&(this.state=1862,this.columnExpressionList()),this.state=1865,this.match(t.RPAREN),this.state=1867,this.match(t.OVER),this.state=1868,this.identifier();break;case 11:if(1===(i=new ty(i),this.context=i,c=i,this.state=1870,this.identifier(),this.state=1876,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,243,this.context)))this.state=1871,this.match(t.LPAREN),this.state=1873,this.errorHandler.sync(this),s=this.tokenStream.LA(1),(!(-32&s)&&1<<s&4294967292||!(s-32&-32)&&1<<s-32&4290772991||!(s-64&-32)&&1<<s-64&4294967295||!(s-96&-32)&&1<<s-96&2147483647||!(s-129&-32)&&1<<s-129&4294967215||!(s-161&-32)&&1<<s-161&4294950911||!(s-193&-32)&&1<<s-193&1158024191)&&(this.state=1872,this.columnExpressionList()),this.state=1875,this.match(t.RPAREN);if(1===(this.state=1878,this.match(t.LPAREN),this.state=1880,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,244,this.context)))this.state=1879,this.match(t.DISTINCT);this.state=1883,this.errorHandler.sync(this),s=this.tokenStream.LA(1),(!(-32&s)&&1<<s&4294967292||!(s-32&-32)&&1<<s-32&4290772991||!(s-64&-32)&&1<<s-64&4294967295||!(s-96&-32)&&1<<s-96&2147483647||!(s-129&-32)&&1<<s-129&4294967215||!(s-161&-32)&&1<<s-161&4294950911||!(s-193&-32)&&1<<s-193&1158024191)&&(this.state=1882,this.columnArgumentList()),this.state=1885,this.match(t.RPAREN);break;case 12:i=new sy(i),this.context=i,c=i,this.state=1887,this.literal();break;case 13:i=new Oy(i),this.context=i,c=i,this.state=1888,this.match(t.DASH),this.state=1889,this.columnExpression(17);break;case 14:i=new ZB(i),this.context=i,c=i,this.state=1890,this.match(t.NOT),this.state=1891,this.columnExpression(12);break;case 15:i=new ey(i),this.context=i,c=i,this.state=1895,this.errorHandler.sync(this),s=this.tokenStream.LA(1),(!(-32&s)&&1<<s&4294967292||!(s-32&-32)&&1<<s-32&4290772991||!(s-64&-32)&&1<<s-64&4294705151||!(s-96&-32)&&1<<s-96&2146303999||!(s-129&-32)&&1<<s-129&4294967215||!(s-161&-32)&&1<<s-161&4294950911||!(s-193&-32)&&1<<s-193&31)&&(this.state=1892,this.tableIdentifier(),this.state=1893,this.match(t.DOT)),this.state=1897,this.match(t.ASTERISK);break;case 16:i=new ly(i),this.context=i,c=i,this.state=1898,this.match(t.LPAREN),this.state=1899,this.selectUnionStatement(),this.state=1900,this.match(t.RPAREN);break;case 17:i=new ny(i),this.context=i,c=i,this.state=1902,this.match(t.LPAREN),this.state=1903,this.columnExpression(0),this.state=1904,this.match(t.RPAREN);break;case 18:i=new VB(i),this.context=i,c=i,this.state=1906,this.match(t.LPAREN),this.state=1907,this.columnExpressionList(),this.state=1908,this.match(t.RPAREN);break;case 19:i=new iy(i),this.context=i,c=i,this.state=1910,this.match(t.LBRACKET),this.state=1912,this.errorHandler.sync(this),s=this.tokenStream.LA(1),(!(-32&s)&&1<<s&4294967292||!(s-32&-32)&&1<<s-32&4290772991||!(s-64&-32)&&1<<s-64&4294967295||!(s-96&-32)&&1<<s-96&2147483647||!(s-129&-32)&&1<<s-129&4294967215||!(s-161&-32)&&1<<s-161&4294950911||!(s-193&-32)&&1<<s-193&1158024191)&&(this.state=1911,this.columnExpressionList()),this.state=1914,this.match(t.RBRACKET);break;case 20:i=new zB(i),this.context=i,c=i,this.state=1915,this.columnIdentifier()}for(this.context.stop=this.tokenStream.LT(-1),this.state=1989,this.errorHandler.sync(this),e=this.interpreter.adaptivePredict(this.tokenStream,257,this.context);2!==e&&e!==ja.INVALID_ALT_NUMBER;){if(1===e)switch(null!=this.parseListeners&&this.triggerExitRuleEvent(),c=i,this.state=1987,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,256,this.context)){case 1:if(i=new Ay(new bB(a,r)),this.pushNewRecursionContext(i,n,t.RULE_columnExpression),this.state=1918,!this.precpred(this.context,16))throw this.createFailedPredicateException("this.precpred(this.context, 16)");this.state=1919,s=this.tokenStream.LA(1),!(s-204&-32)&&1<<s-204&134479873?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1920,this.columnExpression(17);break;case 2:if(i=new Ry(new bB(a,r)),this.pushNewRecursionContext(i,n,t.RULE_columnExpression),this.state=1921,!this.precpred(this.context,15))throw this.createFailedPredicateException("this.precpred(this.context, 15)");this.state=1922,s=this.tokenStream.LA(1),!(s-209&-32)&&1<<s-209&16387?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1923,this.columnExpression(16);break;case 3:if(i=new Ty(new bB(a,r)),this.pushNewRecursionContext(i,n,t.RULE_columnExpression),this.state=1924,!this.precpred(this.context,14))throw this.createFailedPredicateException("this.precpred(this.context, 14)");switch(this.state=1943,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,252,this.context)){case 1:this.state=1925,this.match(t.EQ_DOUBLE);break;case 2:this.state=1926,this.match(t.EQ_SINGLE);break;case 3:this.state=1927,this.match(t.NOT_EQ);break;case 4:this.state=1928,this.match(t.LE);break;case 5:this.state=1929,this.match(t.GE);break;case 6:this.state=1930,this.match(t.LT);break;case 7:this.state=1931,this.match(t.GT);break;case 8:this.state=1933,this.errorHandler.sync(this),s=this.tokenStream.LA(1),71===s&&(this.state=1932,this.match(t.GLOBAL)),this.state=1936,this.errorHandler.sync(this),s=this.tokenStream.LA(1),115===s&&(this.state=1935,this.match(t.NOT)),this.state=1938,this.match(t.IN);break;case 9:this.state=1940,this.errorHandler.sync(this),s=this.tokenStream.LA(1),115===s&&(this.state=1939,this.match(t.NOT)),this.state=1942,s=this.tokenStream.LA(1),79===s||98===s?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}this.state=1945,this.columnExpression(15);break;case 4:if(i=new XB(new bB(a,r)),this.pushNewRecursionContext(i,n,t.RULE_columnExpression),this.state=1946,!this.precpred(this.context,11))throw this.createFailedPredicateException("this.precpred(this.context, 11)");this.state=1947,this.match(t.AND),this.state=1948,this.columnExpression(12);break;case 5:if(i=new Ny(new bB(a,r)),this.pushNewRecursionContext(i,n,t.RULE_columnExpression),this.state=1949,!this.precpred(this.context,10))throw this.createFailedPredicateException("this.precpred(this.context, 10)");this.state=1950,this.match(t.OR),this.state=1951,this.columnExpression(11);break;case 6:if(i=new QB(new bB(a,r)),this.pushNewRecursionContext(i,n,t.RULE_columnExpression),this.state=1952,!this.precpred(this.context,9))throw this.createFailedPredicateException("this.precpred(this.context, 9)");this.state=1954,this.errorHandler.sync(this),s=this.tokenStream.LA(1),115===s&&(this.state=1953,this.match(t.NOT)),this.state=1956,this.match(t.BETWEEN),this.state=1957,this.columnExpression(0),this.state=1958,this.match(t.AND),this.state=1959,this.columnExpression(10);break;case 7:if(i=new ry(new bB(a,r)),this.pushNewRecursionContext(i,n,t.RULE_columnExpression),this.state=1961,!this.precpred(this.context,8))throw this.createFailedPredicateException("this.precpred(this.context, 8)");this.state=1962,this.match(t.QUESTIONMARK),this.state=1963,this.columnExpression(0),this.state=1964,this.match(t.COLON),this.state=1965,this.columnExpression(8);break;case 8:if(i=new $B(new bB(a,r)),this.pushNewRecursionContext(i,n,t.RULE_columnExpression),this.state=1967,!this.precpred(this.context,19))throw this.createFailedPredicateException("this.precpred(this.context, 19)");this.state=1968,this.match(t.LBRACKET),this.state=1969,this.columnExpression(0),this.state=1970,this.match(t.RBRACKET);break;case 9:if(i=new cy(new bB(a,r)),this.pushNewRecursionContext(i,n,t.RULE_columnExpression),this.state=1972,!this.precpred(this.context,18))throw this.createFailedPredicateException("this.precpred(this.context, 18)");this.state=1973,this.match(t.DOT),this.state=1974,this.match(t.DECIMAL_LITERAL);break;case 10:if(i=new WB(new bB(a,r)),this.pushNewRecursionContext(i,n,t.RULE_columnExpression),this.state=1975,!this.precpred(this.context,13))throw this.createFailedPredicateException("this.precpred(this.context, 13)");this.state=1976,this.match(t.IS),this.state=1978,this.errorHandler.sync(this),s=this.tokenStream.LA(1),115===s&&(this.state=1977,this.match(t.NOT)),this.state=1980,this.match(t.NULL_SQL);break;case 11:if(i=new Ey(new bB(a,r)),this.pushNewRecursionContext(i,n,t.RULE_columnExpression),this.state=1981,!this.precpred(this.context,7))throw this.createFailedPredicateException("this.precpred(this.context, 7)");switch(this.state=1985,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DATE:case t.FIRST:case t.ID:case t.KEY:case t.IDENTIFIER:this.state=1982,this.alias();break;case t.AS:this.state=1983,this.match(t.AS),this.state=1984,this.identifier();break;default:throw new Ei(this)}}this.state=1991,this.errorHandler.sync(this),e=this.interpreter.adaptivePredict(this.tokenStream,257,this.context)}}catch(h){if(!(h instanceof jr))throw h;this.errorHandler.reportError(this,h),this.errorHandler.recover(this,h)}finally{this.unrollRecursionContexts(a)}return i}columnArgumentList(){let e,s=new Ly(this.context,this.state);this.enterRule(s,216,t.RULE_columnArgumentList);try{for(this.enterOuterAlt(s,1),this.state=1992,this.columnArgumentExpression(),this.state=1997,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=1993,this.match(t.COMMA),this.state=1994,this.columnArgumentExpression(),this.state=1999,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}columnArgumentExpression(){let e=new Cy(this.context,this.state);this.enterRule(e,218,t.RULE_columnArgumentExpression);try{switch(this.state=2002,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,259,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2e3,this.columnLambdaExpression();break;case 2:this.enterOuterAlt(e,2),this.state=2001,this.columnExpression(0)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}columnLambdaExpression(){let e,s=new _y(this.context,this.state);this.enterRule(s,220,t.RULE_columnLambdaExpression);try{switch(this.enterOuterAlt(s,1),this.state=2023,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LPAREN:for(this.state=2004,this.match(t.LPAREN),this.state=2005,this.identifier(),this.state=2010,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=2006,this.match(t.COMMA),this.state=2007,this.identifier(),this.state=2012,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2013,this.match(t.RPAREN);break;case t.AFTER:case t.ALIAS:case t.ALL:case t.ALTER:case t.AND:case t.ANTI:case t.ANY:case t.ARRAY:case t.AS:case t.ASCENDING:case t.ASOF:case t.AST:case t.ASYNC:case t.ATTACH:case t.BETWEEN:case t.BOTH:case t.BY:case t.CASE:case t.CAST:case t.CHECK:case t.CLEAR:case t.CLUSTER:case t.CODEC:case t.COLLATE:case t.COLUMN:case t.COMMENT:case t.CONSTRAINT:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.DATABASE:case t.DATABASES:case t.DATE:case t.DAY:case t.DEDUPLICATE:case t.DEFAULT:case t.DELAY:case t.DELETE:case t.DESC:case t.DESCENDING:case t.DESCRIBE:case t.DETACH:case t.DICTIONARIES:case t.DICTIONARY:case t.DISK:case t.DISTINCT:case t.DISTRIBUTED:case t.DROP:case t.ELSE:case t.END:case t.ENGINE:case t.EVENTS:case t.EXISTS:case t.EXPLAIN:case t.EXPRESSION:case t.EXTRACT:case t.FETCHES:case t.FINAL:case t.FIRST:case t.FLUSH:case t.FOLLOWING:case t.FOR:case t.FORMAT:case t.FREEZE:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOBAL:case t.GRANULARITY:case t.GROUP:case t.HAVING:case t.HIERARCHICAL:case t.HOUR:case t.ID:case t.IF:case t.ILIKE:case t.IN:case t.INDEX:case t.INJECTIVE:case t.INNER:case t.INSERT:case t.INTERVAL:case t.INTO:case t.IS:case t.IS_OBJECT_ID:case t.JOIN:case t.KEY:case t.KILL:case t.LAST:case t.LAYOUT:case t.LEADING:case t.LEFT:case t.LIFETIME:case t.LIKE:case t.LIMIT:case t.LIVE:case t.LOCAL:case t.LOGS:case t.MATERIALIZE:case t.MATERIALIZED:case t.MAX:case t.MERGES:case t.MIN:case t.MINUTE:case t.MODIFY:case t.MONTH:case t.MOVE:case t.MUTATION:case t.NO:case t.NOT:case t.NULLS:case t.OFFSET:case t.ON:case t.OPTIMIZE:case t.OR:case t.ORDER:case t.OUTER:case t.OUTFILE:case t.OVER:case t.PARTITION:case t.POPULATE:case t.PRECEDING:case t.PREWHERE:case t.PRIMARY:case t.QUARTER:case t.RANGE:case t.RELOAD:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICA:case t.REPLICATED:case t.RIGHT:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SECOND:case t.SELECT:case t.SEMI:case t.SENDS:case t.SET:case t.SETTINGS:case t.SHOW:case t.SOURCE:case t.START:case t.STOP:case t.SUBSTRING:case t.SYNC:case t.SYNTAX:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TEMPORARY:case t.TEST:case t.THEN:case t.TIES:case t.TIMEOUT:case t.TIMESTAMP:case t.TO:case t.TOP:case t.TOTALS:case t.TRAILING:case t.TRIM:case t.TRUNCATE:case t.TTL:case t.TYPE:case t.UNBOUNDED:case t.UNION:case t.UPDATE:case t.USE:case t.USING:case t.UUID:case t.VALUES:case t.VIEW:case t.VOLUME:case t.WATCH:case t.WEEK:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.YEAR:case t.JSON_FALSE:case t.JSON_TRUE:case t.IDENTIFIER:for(this.state=2015,this.identifier(),this.state=2020,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=2016,this.match(t.COMMA),this.state=2017,this.identifier(),this.state=2022,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;default:throw new Ei(this)}this.state=2025,this.match(t.ARROW),this.state=2026,this.columnExpression(0)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}columnIdentifier(){let e=new Py(this.context,this.state);this.enterRule(e,222,t.RULE_columnIdentifier);try{if(this.enterOuterAlt(e,1),1===(this.state=2031,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,263,this.context)))this.state=2028,this.tableIdentifier(),this.state=2029,this.match(t.DOT);if(1===(this.state=2033,this.identifier(),this.state=2036,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,264,this.context)))this.state=2034,this.match(t.DOT),this.state=2035,this.identifier()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableExpression(e){void 0===e&&(e=0);let s=this.context,a=this.state,r=new My(this.context,a),i=r;this.enterRecursionRule(r,224,t.RULE_tableExpression,e);try{let e;switch(this.enterOuterAlt(r,1),this.state=2045,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,265,this.context)){case 1:r=new Uy(r),this.context=r,i=r,this.state=2039,this.tableIdentifier();break;case 2:r=new dy(r),this.context=r,i=r,this.state=2040,this.tableFunctionExpression();break;case 3:r=new Dy(r),this.context=r,i=r,this.state=2041,this.match(t.LPAREN),this.state=2042,this.selectUnionStatement(),this.state=2043,this.match(t.RPAREN)}for(this.context.stop=this.tokenStream.LT(-1),this.state=2055,this.errorHandler.sync(this),e=this.interpreter.adaptivePredict(this.tokenStream,267,this.context);2!==e&&e!==ja.INVALID_ALT_NUMBER;){if(1===e){if(null!=this.parseListeners&&this.triggerExitRuleEvent(),i=r,r=new my(new My(s,a)),this.pushNewRecursionContext(r,224,t.RULE_tableExpression),this.state=2047,!this.precpred(this.context,1))throw this.createFailedPredicateException("this.precpred(this.context, 1)");switch(this.state=2051,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DATE:case t.FIRST:case t.ID:case t.KEY:case t.IDENTIFIER:this.state=2048,this.alias();break;case t.AS:this.state=2049,this.match(t.AS),this.state=2050,this.identifier();break;default:throw new Ei(this)}}this.state=2057,this.errorHandler.sync(this),e=this.interpreter.adaptivePredict(this.tokenStream,267,this.context)}}catch(c){if(!(c instanceof jr))throw c;this.errorHandler.reportError(this,c),this.errorHandler.recover(this,c)}finally{this.unrollRecursionContexts(s)}return r}tableFunctionExpression(){let e,s=new py(this.context,this.state);this.enterRule(s,226,t.RULE_tableFunctionExpression);try{this.enterOuterAlt(s,1),this.state=2058,this.identifier(),this.state=2059,this.match(t.LPAREN),this.state=2061,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&4294967292||!(e-32&-32)&&1<<e-32&4290772991||!(e-64&-32)&&1<<e-64&4294967295||!(e-96&-32)&&1<<e-96&2147483647||!(e-129&-32)&&1<<e-129&4294967215||!(e-161&-32)&&1<<e-161&4294950911||!(e-193&-32)&&1<<e-193&1074136063)&&(this.state=2060,this.tableArgList()),this.state=2063,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableIdentifier(){let e=new gy(this.context,this.state);this.enterRule(e,228,t.RULE_tableIdentifier);try{if(this.enterOuterAlt(e,1),1===(this.state=2068,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,269,this.context)))this.state=2065,this.databaseIdentifier(),this.state=2066,this.match(t.DOT);this.state=2070,this.identifier()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tableArgList(){let e,s=new xy(this.context,this.state);this.enterRule(s,230,t.RULE_tableArgList);try{for(this.enterOuterAlt(s,1),this.state=2072,this.tableArgExpression(),this.state=2077,this.errorHandler.sync(this),e=this.tokenStream.LA(1);208===e;)this.state=2073,this.match(t.COMMA),this.state=2074,this.tableArgExpression(),this.state=2079,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}tableArgExpression(){let e=new ky(this.context,this.state);this.enterRule(e,232,t.RULE_tableArgExpression);try{switch(this.state=2083,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,271,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2080,this.columnIdentifier();break;case 2:this.enterOuterAlt(e,2),this.state=2081,this.tableFunctionExpression();break;case 3:this.enterOuterAlt(e,3),this.state=2082,this.literal()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}databaseIdentifier(){let e=new Hy(this.context,this.state);this.enterRule(e,234,t.RULE_databaseIdentifier);try{this.enterOuterAlt(e,1),this.state=2085,this.identifier()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}floatingLiteral(){let e,s=new Gy(this.context,this.state);this.enterRule(s,236,t.RULE_floatingLiteral);try{switch(this.state=2095,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.FLOATING_LITERAL:this.enterOuterAlt(s,1),this.state=2087,this.match(t.FLOATING_LITERAL);break;case t.DOT:this.enterOuterAlt(s,2),this.state=2088,this.match(t.DOT),this.state=2089,e=this.tokenStream.LA(1),199===e||200===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case t.DECIMAL_LITERAL:if(1===(this.enterOuterAlt(s,3),this.state=2090,this.match(t.DECIMAL_LITERAL),this.state=2091,this.match(t.DOT),this.state=2093,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,272,this.context)))this.state=2092,e=this.tokenStream.LA(1),199===e||200===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}numberLiteral(){let e,s=new Fy(this.context,this.state);this.enterRule(s,238,t.RULE_numberLiteral);try{switch(this.enterOuterAlt(s,1),this.state=2098,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(210===e||223===e)&&(this.state=2097,e=this.tokenStream.LA(1),210===e||223===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2106,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,275,this.context)){case 1:this.state=2100,this.floatingLiteral();break;case 2:this.state=2101,this.match(t.OCTAL_LITERAL);break;case 3:this.state=2102,this.match(t.DECIMAL_LITERAL);break;case 4:this.state=2103,this.match(t.HEXADECIMAL_LITERAL);break;case 5:this.state=2104,this.match(t.INF);break;case 6:this.state=2105,this.match(t.NAN_SQL)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}literal(){let e=new vy(this.context,this.state);this.enterRule(e,240,t.RULE_literal);try{switch(this.state=2111,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.INF:case t.NAN_SQL:case t.FLOATING_LITERAL:case t.OCTAL_LITERAL:case t.DECIMAL_LITERAL:case t.HEXADECIMAL_LITERAL:case t.DASH:case t.DOT:case t.PLUS:this.enterOuterAlt(e,1),this.state=2108,this.numberLiteral();break;case t.STRING_LITERAL:this.enterOuterAlt(e,2),this.state=2109,this.match(t.STRING_LITERAL);break;case t.NULL_SQL:this.enterOuterAlt(e,3),this.state=2110,this.match(t.NULL_SQL);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}interval(){let e,s=new By(this.context,this.state);this.enterRule(s,242,t.RULE_interval);try{this.enterOuterAlt(s,1),this.state=2113,e=this.tokenStream.LA(1),36===e||76===e||!(e-108&-32)&&1<<e-108&67108869||148===e||189===e||194===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}keyword(){let e,s=new yy(this.context,this.state);this.enterRule(s,244,t.RULE_keyword);try{this.enterOuterAlt(s,1),this.state=2115,e=this.tokenStream.LA(1),!(-32&e)&&1<<e&4294967292||!(e-32&-32)&&1<<e-32&4290772975||!(e-64&-32)&&1<<e-64&4294701055||!(e-96&-32)&&1<<e-96&2146283519||!(e-129&-32)&&1<<e-129&4294442895||!(e-161&-32)&&1<<e-161&4026515455||!(e-193&-32)&&1<<e-193&13?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}keywordForAlias(){let e,s=new fy(this.context,this.state);this.enterRule(s,246,t.RULE_keywordForAlias);try{this.enterOuterAlt(s,1),this.state=2117,e=this.tokenStream.LA(1),35===e||62===e||77===e||91===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alias(){let e=new Yy(this.context,this.state);this.enterRule(e,248,t.RULE_alias);try{switch(this.state=2121,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.IDENTIFIER:this.enterOuterAlt(e,1),this.state=2119,this.match(t.IDENTIFIER);break;case t.DATE:case t.FIRST:case t.ID:case t.KEY:this.enterOuterAlt(e,2),this.state=2120,this.keywordForAlias();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}identifier(){let e=new wy(this.context,this.state);this.enterRule(e,250,t.RULE_identifier);try{switch(this.state=2126,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.IDENTIFIER:this.enterOuterAlt(e,1),this.state=2123,this.match(t.IDENTIFIER);break;case t.DAY:case t.HOUR:case t.MINUTE:case t.MONTH:case t.QUARTER:case t.SECOND:case t.WEEK:case t.YEAR:this.enterOuterAlt(e,2),this.state=2124,this.interval();break;case t.AFTER:case t.ALIAS:case t.ALL:case t.ALTER:case t.AND:case t.ANTI:case t.ANY:case t.ARRAY:case t.AS:case t.ASCENDING:case t.ASOF:case t.AST:case t.ASYNC:case t.ATTACH:case t.BETWEEN:case t.BOTH:case t.BY:case t.CASE:case t.CAST:case t.CHECK:case t.CLEAR:case t.CLUSTER:case t.CODEC:case t.COLLATE:case t.COLUMN:case t.COMMENT:case t.CONSTRAINT:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.DATABASE:case t.DATABASES:case t.DATE:case t.DEDUPLICATE:case t.DEFAULT:case t.DELAY:case t.DELETE:case t.DESC:case t.DESCENDING:case t.DESCRIBE:case t.DETACH:case t.DICTIONARIES:case t.DICTIONARY:case t.DISK:case t.DISTINCT:case t.DISTRIBUTED:case t.DROP:case t.ELSE:case t.END:case t.ENGINE:case t.EVENTS:case t.EXISTS:case t.EXPLAIN:case t.EXPRESSION:case t.EXTRACT:case t.FETCHES:case t.FINAL:case t.FIRST:case t.FLUSH:case t.FOLLOWING:case t.FOR:case t.FORMAT:case t.FREEZE:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOBAL:case t.GRANULARITY:case t.GROUP:case t.HAVING:case t.HIERARCHICAL:case t.ID:case t.IF:case t.ILIKE:case t.IN:case t.INDEX:case t.INJECTIVE:case t.INNER:case t.INSERT:case t.INTERVAL:case t.INTO:case t.IS:case t.IS_OBJECT_ID:case t.JOIN:case t.KEY:case t.KILL:case t.LAST:case t.LAYOUT:case t.LEADING:case t.LEFT:case t.LIFETIME:case t.LIKE:case t.LIMIT:case t.LIVE:case t.LOCAL:case t.LOGS:case t.MATERIALIZE:case t.MATERIALIZED:case t.MAX:case t.MERGES:case t.MIN:case t.MODIFY:case t.MOVE:case t.MUTATION:case t.NO:case t.NOT:case t.NULLS:case t.OFFSET:case t.ON:case t.OPTIMIZE:case t.OR:case t.ORDER:case t.OUTER:case t.OUTFILE:case t.OVER:case t.PARTITION:case t.POPULATE:case t.PRECEDING:case t.PREWHERE:case t.PRIMARY:case t.RANGE:case t.RELOAD:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICA:case t.REPLICATED:case t.RIGHT:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SELECT:case t.SEMI:case t.SENDS:case t.SET:case t.SETTINGS:case t.SHOW:case t.SOURCE:case t.START:case t.STOP:case t.SUBSTRING:case t.SYNC:case t.SYNTAX:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TEMPORARY:case t.TEST:case t.THEN:case t.TIES:case t.TIMEOUT:case t.TIMESTAMP:case t.TO:case t.TOP:case t.TOTALS:case t.TRAILING:case t.TRIM:case t.TRUNCATE:case t.TTL:case t.TYPE:case t.UNBOUNDED:case t.UNION:case t.UPDATE:case t.USE:case t.USING:case t.UUID:case t.VALUES:case t.VIEW:case t.VOLUME:case t.WATCH:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.JSON_FALSE:case t.JSON_TRUE:this.enterOuterAlt(e,3),this.state=2125,this.keyword();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}identifierOrNull(){let e=new by(this.context,this.state);this.enterRule(e,252,t.RULE_identifierOrNull);try{switch(this.state=2130,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AFTER:case t.ALIAS:case t.ALL:case t.ALTER:case t.AND:case t.ANTI:case t.ANY:case t.ARRAY:case t.AS:case t.ASCENDING:case t.ASOF:case t.AST:case t.ASYNC:case t.ATTACH:case t.BETWEEN:case t.BOTH:case t.BY:case t.CASE:case t.CAST:case t.CHECK:case t.CLEAR:case t.CLUSTER:case t.CODEC:case t.COLLATE:case t.COLUMN:case t.COMMENT:case t.CONSTRAINT:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.DATABASE:case t.DATABASES:case t.DATE:case t.DAY:case t.DEDUPLICATE:case t.DEFAULT:case t.DELAY:case t.DELETE:case t.DESC:case t.DESCENDING:case t.DESCRIBE:case t.DETACH:case t.DICTIONARIES:case t.DICTIONARY:case t.DISK:case t.DISTINCT:case t.DISTRIBUTED:case t.DROP:case t.ELSE:case t.END:case t.ENGINE:case t.EVENTS:case t.EXISTS:case t.EXPLAIN:case t.EXPRESSION:case t.EXTRACT:case t.FETCHES:case t.FINAL:case t.FIRST:case t.FLUSH:case t.FOLLOWING:case t.FOR:case t.FORMAT:case t.FREEZE:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOBAL:case t.GRANULARITY:case t.GROUP:case t.HAVING:case t.HIERARCHICAL:case t.HOUR:case t.ID:case t.IF:case t.ILIKE:case t.IN:case t.INDEX:case t.INJECTIVE:case t.INNER:case t.INSERT:case t.INTERVAL:case t.INTO:case t.IS:case t.IS_OBJECT_ID:case t.JOIN:case t.KEY:case t.KILL:case t.LAST:case t.LAYOUT:case t.LEADING:case t.LEFT:case t.LIFETIME:case t.LIKE:case t.LIMIT:case t.LIVE:case t.LOCAL:case t.LOGS:case t.MATERIALIZE:case t.MATERIALIZED:case t.MAX:case t.MERGES:case t.MIN:case t.MINUTE:case t.MODIFY:case t.MONTH:case t.MOVE:case t.MUTATION:case t.NO:case t.NOT:case t.NULLS:case t.OFFSET:case t.ON:case t.OPTIMIZE:case t.OR:case t.ORDER:case t.OUTER:case t.OUTFILE:case t.OVER:case t.PARTITION:case t.POPULATE:case t.PRECEDING:case t.PREWHERE:case t.PRIMARY:case t.QUARTER:case t.RANGE:case t.RELOAD:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICA:case t.REPLICATED:case t.RIGHT:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SECOND:case t.SELECT:case t.SEMI:case t.SENDS:case t.SET:case t.SETTINGS:case t.SHOW:case t.SOURCE:case t.START:case t.STOP:case t.SUBSTRING:case t.SYNC:case t.SYNTAX:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TEMPORARY:case t.TEST:case t.THEN:case t.TIES:case t.TIMEOUT:case t.TIMESTAMP:case t.TO:case t.TOP:case t.TOTALS:case t.TRAILING:case t.TRIM:case t.TRUNCATE:case t.TTL:case t.TYPE:case t.UNBOUNDED:case t.UNION:case t.UPDATE:case t.USE:case t.USING:case t.UUID:case t.VALUES:case t.VIEW:case t.VOLUME:case t.WATCH:case t.WEEK:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.YEAR:case t.JSON_FALSE:case t.JSON_TRUE:case t.IDENTIFIER:this.enterOuterAlt(e,1),this.state=2128,this.identifier();break;case t.NULL_SQL:this.enterOuterAlt(e,2),this.state=2129,this.match(t.NULL_SQL);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}enumValue(){let e=new Wy(this.context,this.state);this.enterRule(e,254,t.RULE_enumValue);try{this.enterOuterAlt(e,1),this.state=2132,this.match(t.STRING_LITERAL),this.state=2133,this.match(t.EQ_SINGLE),this.state=2134,this.numberLiteral()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}sempred(t,e,s){switch(e){case 24:return this.dictionaryAttributeDefinition_sempred(t,s);case 25:return this.dictionaryEngineClause_sempred(t,s);case 38:return this.engineClause_sempred(t,s);case 81:return this.joinExpression_sempred(t,s);case 107:return this.columnExpression_sempred(t,s);case 112:return this.tableExpression_sempred(t,s)}return!0}dictionaryAttributeDefinition_sempred(t,e){switch(e){case 0:return!t.attrs.has("default");case 1:return!t.attrs.has("expression");case 2:return!t.attrs.has("hierarchical");case 3:return!t.attrs.has("injective");case 4:return!t.attrs.has("is_object_id")}return!0}dictionaryEngineClause_sempred(t,e){switch(e){case 5:return!t.clauses.has("source");case 6:return!t.clauses.has("lifetime");case 7:return!t.clauses.has("layout");case 8:return!t.clauses.has("range");case 9:return!t.clauses.has("settings")}return!0}engineClause_sempred(t,e){switch(e){case 10:return!t.clauses.has("orderByClause");case 11:return!t.clauses.has("partitionByClause");case 12:return!t.clauses.has("primaryKeyClause");case 13:return!t.clauses.has("sampleByClause");case 14:return!t.clauses.has("ttlClause");case 15:return!t.clauses.has("settingsClause")}return!0}joinExpression_sempred(t,e){switch(e){case 16:return this.precpred(this.context,3);case 17:return this.precpred(this.context,4)}return!0}columnExpression_sempred(t,e){switch(e){case 18:return this.precpred(this.context,16);case 19:return this.precpred(this.context,15);case 20:return this.precpred(this.context,14);case 21:return this.precpred(this.context,11);case 22:return this.precpred(this.context,10);case 23:return this.precpred(this.context,9);case 24:return this.precpred(this.context,8);case 25:return this.precpred(this.context,19);case 26:return this.precpred(this.context,18);case 27:return this.precpred(this.context,13);case 28:return this.precpred(this.context,7)}return!0}tableExpression_sempred(t,e){return 29!==e||this.precpred(this.context,1)}static get _ATN(){return t.__ATN||(t.__ATN=(new fr).deserialize(t._serializedATN)),t.__ATN}get vocabulary(){return t.vocabulary}},Zi.ADD=1,Zi.AFTER=2,Zi.ALIAS=3,Zi.ALL=4,Zi.ALTER=5,Zi.AND=6,Zi.ANTI=7,Zi.ANY=8,Zi.ARRAY=9,Zi.AS=10,Zi.ASCENDING=11,Zi.ASOF=12,Zi.AST=13,Zi.ASYNC=14,Zi.ATTACH=15,Zi.BETWEEN=16,Zi.BOTH=17,Zi.BY=18,Zi.CASE=19,Zi.CAST=20,Zi.CHECK=21,Zi.CLEAR=22,Zi.CLUSTER=23,Zi.CODEC=24,Zi.COLLATE=25,Zi.COLUMN=26,Zi.COMMENT=27,Zi.CONSTRAINT=28,Zi.CREATE=29,Zi.CROSS=30,Zi.CUBE=31,Zi.CURRENT=32,Zi.DATABASE=33,Zi.DATABASES=34,Zi.DATE=35,Zi.DAY=36,Zi.DEDUPLICATE=37,Zi.DEFAULT=38,Zi.DELAY=39,Zi.DELETE=40,Zi.DESC=41,Zi.DESCENDING=42,Zi.DESCRIBE=43,Zi.DETACH=44,Zi.DICTIONARIES=45,Zi.DICTIONARY=46,Zi.DISK=47,Zi.DISTINCT=48,Zi.DISTRIBUTED=49,Zi.DROP=50,Zi.ELSE=51,Zi.END=52,Zi.ENGINE=53,Zi.ESTIMATE=54,Zi.EVENTS=55,Zi.EXISTS=56,Zi.EXPLAIN=57,Zi.EXPRESSION=58,Zi.EXTRACT=59,Zi.FETCHES=60,Zi.FINAL=61,Zi.FIRST=62,Zi.FLUSH=63,Zi.FOLLOWING=64,Zi.FOR=65,Zi.FORMAT=66,Zi.FREEZE=67,Zi.FROM=68,Zi.FULL=69,Zi.FUNCTION=70,Zi.GLOBAL=71,Zi.GRANULARITY=72,Zi.GROUP=73,Zi.HAVING=74,Zi.HIERARCHICAL=75,Zi.HOUR=76,Zi.ID=77,Zi.IF=78,Zi.ILIKE=79,Zi.IN=80,Zi.INDEX=81,Zi.INF=82,Zi.INJECTIVE=83,Zi.INNER=84,Zi.INSERT=85,Zi.INTERVAL=86,Zi.INTO=87,Zi.IS=88,Zi.IS_OBJECT_ID=89,Zi.JOIN=90,Zi.KEY=91,Zi.KILL=92,Zi.LAST=93,Zi.LAYOUT=94,Zi.LEADING=95,Zi.LEFT=96,Zi.LIFETIME=97,Zi.LIKE=98,Zi.LIMIT=99,Zi.LIVE=100,Zi.LOCAL=101,Zi.LOGS=102,Zi.MATERIALIZE=103,Zi.MATERIALIZED=104,Zi.MAX=105,Zi.MERGES=106,Zi.MIN=107,Zi.MINUTE=108,Zi.MODIFY=109,Zi.MONTH=110,Zi.MOVE=111,Zi.MUTATION=112,Zi.NAN_SQL=113,Zi.NO=114,Zi.NOT=115,Zi.NULL_SQL=116,Zi.NULLS=117,Zi.OFFSET=118,Zi.ON=119,Zi.OPTIMIZE=120,Zi.OR=121,Zi.ORDER=122,Zi.OUTER=123,Zi.OUTFILE=124,Zi.OVER=125,Zi.PARTITION=126,Zi.PIPELINE=127,Zi.PLAN=128,Zi.POPULATE=129,Zi.PRECEDING=130,Zi.PREWHERE=131,Zi.PRIMARY=132,Zi.PROJECTION=133,Zi.QUARTER=134,Zi.QUERY=135,Zi.RANGE=136,Zi.RELOAD=137,Zi.REMOVE=138,Zi.RENAME=139,Zi.REPLACE=140,Zi.REPLICA=141,Zi.REPLICATED=142,Zi.RIGHT=143,Zi.ROLLUP=144,Zi.ROW=145,Zi.ROWS=146,Zi.SAMPLE=147,Zi.SECOND=148,Zi.SELECT=149,Zi.SEMI=150,Zi.SENDS=151,Zi.SET=152,Zi.SETTINGS=153,Zi.SHOW=154,Zi.SOURCE=155,Zi.START=156,Zi.STOP=157,Zi.SUBSTRING=158,Zi.SYNC=159,Zi.SYNTAX=160,Zi.SYSTEM=161,Zi.TABLE=162,Zi.TABLES=163,Zi.TEMPORARY=164,Zi.TEST=165,Zi.THEN=166,Zi.TIES=167,Zi.TIMEOUT=168,Zi.TIMESTAMP=169,Zi.TO=170,Zi.TOP=171,Zi.TOTALS=172,Zi.TRAILING=173,Zi.TRIM=174,Zi.TREE=175,Zi.TRUNCATE=176,Zi.TTL=177,Zi.TYPE=178,Zi.UNBOUNDED=179,Zi.UNION=180,Zi.UPDATE=181,Zi.USE=182,Zi.USING=183,Zi.UUID=184,Zi.VALUES=185,Zi.VIEW=186,Zi.VOLUME=187,Zi.WATCH=188,Zi.WEEK=189,Zi.WHEN=190,Zi.WHERE=191,Zi.WINDOW=192,Zi.WITH=193,Zi.YEAR=194,Zi.JSON_FALSE=195,Zi.JSON_TRUE=196,Zi.IDENTIFIER=197,Zi.FLOATING_LITERAL=198,Zi.OCTAL_LITERAL=199,Zi.DECIMAL_LITERAL=200,Zi.HEXADECIMAL_LITERAL=201,Zi.STRING_LITERAL=202,Zi.ARROW=203,Zi.ASTERISK=204,Zi.BACKQUOTE=205,Zi.BACKSLASH=206,Zi.COLON=207,Zi.COMMA=208,Zi.CONCAT=209,Zi.DASH=210,Zi.DOT=211,Zi.EQ_DOUBLE=212,Zi.EQ_SINGLE=213,Zi.GE=214,Zi.GT=215,Zi.LBRACE=216,Zi.LBRACKET=217,Zi.LE=218,Zi.LPAREN=219,Zi.LT=220,Zi.NOT_EQ=221,Zi.PERCENT=222,Zi.PLUS=223,Zi.QUESTIONMARK=224,Zi.QUOTE_DOUBLE=225,Zi.QUOTE_SINGLE=226,Zi.RBRACE=227,Zi.RBRACKET=228,Zi.RPAREN=229,Zi.SEMICOLON=230,Zi.SLASH=231,Zi.UNDERSCORE=232,Zi.MULTI_LINE_COMMENT=233,Zi.SINGLE_LINE_COMMENT=234,Zi.WHITESPACE=235,Zi.RULE_root=0,Zi.RULE_statements=1,Zi.RULE_statement=2,Zi.RULE_notInsertStatement=3,Zi.RULE_commonTableExpressionStatement=4,Zi.RULE_namedQuery=5,Zi.RULE_columnAliases=6,Zi.RULE_alterStatement=7,Zi.RULE_alterTableClause=8,Zi.RULE_assignmentExpressionList=9,Zi.RULE_assignmentExpression=10,Zi.RULE_tableColumnPropertyType=11,Zi.RULE_partitionClause=12,Zi.RULE_attachStatement=13,Zi.RULE_checkStatement=14,Zi.RULE_deleteStatement=15,Zi.RULE_createTableStatement=16,Zi.RULE_createDatabaseStatement=17,Zi.RULE_createDictionaryStatement=18,Zi.RULE_createLiveViewStatement=19,Zi.RULE_createMaterializedViewStatement=20,Zi.RULE_createViewStatement=21,Zi.RULE_createStatement=22,Zi.RULE_dictionarySchemaClause=23,Zi.RULE_dictionaryAttributeDefinition=24,Zi.RULE_dictionaryEngineClause=25,Zi.RULE_dictionaryPrimaryKeyClause=26,Zi.RULE_dictionaryArgumentExpression=27,Zi.RULE_sourceClause=28,Zi.RULE_lifetimeClause=29,Zi.RULE_layoutClause=30,Zi.RULE_rangeClause=31,Zi.RULE_dictionarySettingsClause=32,Zi.RULE_clusterClause=33,Zi.RULE_uuidClause=34,Zi.RULE_destinationClause=35,Zi.RULE_subqueryClause=36,Zi.RULE_tableSchemaClause=37,Zi.RULE_engineClause=38,Zi.RULE_partitionByClause=39,Zi.RULE_primaryKeyClause=40,Zi.RULE_sampleByClause=41,Zi.RULE_ttlClause=42,Zi.RULE_engineExpression=43,Zi.RULE_tableElementExpression=44,Zi.RULE_tableColumnDefinition=45,Zi.RULE_tableColumnPropertyExpression=46,Zi.RULE_tableIndexDefinition=47,Zi.RULE_tableProjectionDefinition=48,Zi.RULE_codecExpression=49,Zi.RULE_codecArgExpression=50,Zi.RULE_ttlExpression=51,Zi.RULE_describeStatement=52,Zi.RULE_dropStatement=53,Zi.RULE_existsStatement=54,Zi.RULE_explainStatement=55,Zi.RULE_insertStatement=56,Zi.RULE_columnsClause=57,Zi.RULE_dataClause=58,Zi.RULE_valuesStatement=59,Zi.RULE_killStatement=60,Zi.RULE_optimizeStatement=61,Zi.RULE_renameStatement=62,Zi.RULE_projectionSelectStatement=63,Zi.RULE_selectUnionStatement=64,Zi.RULE_selectStatementWithParentheses=65,Zi.RULE_selectStatement=66,Zi.RULE_withClause=67,Zi.RULE_topClause=68,Zi.RULE_fromClause=69,Zi.RULE_arrayJoinClause=70,Zi.RULE_windowClause=71,Zi.RULE_prewhereClause=72,Zi.RULE_whereClause=73,Zi.RULE_groupByClause=74,Zi.RULE_havingClause=75,Zi.RULE_orderByClause=76,Zi.RULE_projectionOrderByClause=77,Zi.RULE_limitByClause=78,Zi.RULE_limitClause=79,Zi.RULE_settingsClause=80,Zi.RULE_joinExpression=81,Zi.RULE_joinOperator=82,Zi.RULE_joinOperatorCross=83,Zi.RULE_joinConstraintClause=84,Zi.RULE_sampleClause=85,Zi.RULE_limitExpression=86,Zi.RULE_orderExpressionList=87,Zi.RULE_orderExpression=88,Zi.RULE_ratioExpression=89,Zi.RULE_settingExpressionList=90,Zi.RULE_settingExpression=91,Zi.RULE_windowExpression=92,Zi.RULE_windowPartitionByClause=93,Zi.RULE_windowOrderByClause=94,Zi.RULE_windowFrameClause=95,Zi.RULE_windowFrameExtend=96,Zi.RULE_windowFrameBound=97,Zi.RULE_setStatement=98,Zi.RULE_showStatement=99,Zi.RULE_systemStatement=100,Zi.RULE_truncateStatement=101,Zi.RULE_useStatement=102,Zi.RULE_watchStatement=103,Zi.RULE_columnTypeExpression=104,Zi.RULE_columnExpressionList=105,Zi.RULE_columnsExpression=106,Zi.RULE_columnExpression=107,Zi.RULE_columnArgumentList=108,Zi.RULE_columnArgumentExpression=109,Zi.RULE_columnLambdaExpression=110,Zi.RULE_columnIdentifier=111,Zi.RULE_tableExpression=112,Zi.RULE_tableFunctionExpression=113,Zi.RULE_tableIdentifier=114,Zi.RULE_tableArgList=115,Zi.RULE_tableArgExpression=116,Zi.RULE_databaseIdentifier=117,Zi.RULE_floatingLiteral=118,Zi.RULE_numberLiteral=119,Zi.RULE_literal=120,Zi.RULE_interval=121,Zi.RULE_keyword=122,Zi.RULE_keywordForAlias=123,Zi.RULE_alias=124,Zi.RULE_identifier=125,Zi.RULE_identifierOrNull=126,Zi.RULE_enumValue=127,Zi.literalNames=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"'false'","'true'",null,null,null,null,null,null,"'->'","'*'","'`'","''","':'","','","'||'","'-'","'.'","'=='","'='","'>='","'>'","'{'","'['","'<='","'('","'<'",null,"'%'","'+'","'?'","'\"'","'''","'}'","']'","')'","';'","'/'","'_'"],Zi.symbolicNames=[null,"ADD","AFTER","ALIAS","ALL","ALTER","AND","ANTI","ANY","ARRAY","AS","ASCENDING","ASOF","AST","ASYNC","ATTACH","BETWEEN","BOTH","BY","CASE","CAST","CHECK","CLEAR","CLUSTER","CODEC","COLLATE","COLUMN","COMMENT","CONSTRAINT","CREATE","CROSS","CUBE","CURRENT","DATABASE","DATABASES","DATE","DAY","DEDUPLICATE","DEFAULT","DELAY","DELETE","DESC","DESCENDING","DESCRIBE","DETACH","DICTIONARIES","DICTIONARY","DISK","DISTINCT","DISTRIBUTED","DROP","ELSE","END","ENGINE","ESTIMATE","EVENTS","EXISTS","EXPLAIN","EXPRESSION","EXTRACT","FETCHES","FINAL","FIRST","FLUSH","FOLLOWING","FOR","FORMAT","FREEZE","FROM","FULL","FUNCTION","GLOBAL","GRANULARITY","GROUP","HAVING","HIERARCHICAL","HOUR","ID","IF","ILIKE","IN","INDEX","INF","INJECTIVE","INNER","INSERT","INTERVAL","INTO","IS","IS_OBJECT_ID","JOIN","KEY","KILL","LAST","LAYOUT","LEADING","LEFT","LIFETIME","LIKE","LIMIT","LIVE","LOCAL","LOGS","MATERIALIZE","MATERIALIZED","MAX","MERGES","MIN","MINUTE","MODIFY","MONTH","MOVE","MUTATION","NAN_SQL","NO","NOT","NULL_SQL","NULLS","OFFSET","ON","OPTIMIZE","OR","ORDER","OUTER","OUTFILE","OVER","PARTITION","PIPELINE","PLAN","POPULATE","PRECEDING","PREWHERE","PRIMARY","PROJECTION","QUARTER","QUERY","RANGE","RELOAD","REMOVE","RENAME","REPLACE","REPLICA","REPLICATED","RIGHT","ROLLUP","ROW","ROWS","SAMPLE","SECOND","SELECT","SEMI","SENDS","SET","SETTINGS","SHOW","SOURCE","START","STOP","SUBSTRING","SYNC","SYNTAX","SYSTEM","TABLE","TABLES","TEMPORARY","TEST","THEN","TIES","TIMEOUT","TIMESTAMP","TO","TOP","TOTALS","TRAILING","TRIM","TREE","TRUNCATE","TTL","TYPE","UNBOUNDED","UNION","UPDATE","USE","USING","UUID","VALUES","VIEW","VOLUME","WATCH","WEEK","WHEN","WHERE","WINDOW","WITH","YEAR","JSON_FALSE","JSON_TRUE","IDENTIFIER","FLOATING_LITERAL","OCTAL_LITERAL","DECIMAL_LITERAL","HEXADECIMAL_LITERAL","STRING_LITERAL","ARROW","ASTERISK","BACKQUOTE","BACKSLASH","COLON","COMMA","CONCAT","DASH","DOT","EQ_DOUBLE","EQ_SINGLE","GE","GT","LBRACE","LBRACKET","LE","LPAREN","LT","NOT_EQ","PERCENT","PLUS","QUESTIONMARK","QUOTE_DOUBLE","QUOTE_SINGLE","RBRACE","RBRACKET","RPAREN","SEMICOLON","SLASH","UNDERSCORE","MULTI_LINE_COMMENT","SINGLE_LINE_COMMENT","WHITESPACE"],Zi.ruleNames=["root","statements","statement","notInsertStatement","commonTableExpressionStatement","namedQuery","columnAliases","alterStatement","alterTableClause","assignmentExpressionList","assignmentExpression","tableColumnPropertyType","partitionClause","attachStatement","checkStatement","deleteStatement","createTableStatement","createDatabaseStatement","createDictionaryStatement","createLiveViewStatement","createMaterializedViewStatement","createViewStatement","createStatement","dictionarySchemaClause","dictionaryAttributeDefinition","dictionaryEngineClause","dictionaryPrimaryKeyClause","dictionaryArgumentExpression","sourceClause","lifetimeClause","layoutClause","rangeClause","dictionarySettingsClause","clusterClause","uuidClause","destinationClause","subqueryClause","tableSchemaClause","engineClause","partitionByClause","primaryKeyClause","sampleByClause","ttlClause","engineExpression","tableElementExpression","tableColumnDefinition","tableColumnPropertyExpression","tableIndexDefinition","tableProjectionDefinition","codecExpression","codecArgExpression","ttlExpression","describeStatement","dropStatement","existsStatement","explainStatement","insertStatement","columnsClause","dataClause","valuesStatement","killStatement","optimizeStatement","renameStatement","projectionSelectStatement","selectUnionStatement","selectStatementWithParentheses","selectStatement","withClause","topClause","fromClause","arrayJoinClause","windowClause","prewhereClause","whereClause","groupByClause","havingClause","orderByClause","projectionOrderByClause","limitByClause","limitClause","settingsClause","joinExpression","joinOperator","joinOperatorCross","joinConstraintClause","sampleClause","limitExpression","orderExpressionList","orderExpression","ratioExpression","settingExpressionList","settingExpression","windowExpression","windowPartitionByClause","windowOrderByClause","windowFrameClause","windowFrameExtend","windowFrameBound","setStatement","showStatement","systemStatement","truncateStatement","useStatement","watchStatement","columnTypeExpression","columnExpressionList","columnsExpression","columnExpression","columnArgumentList","columnArgumentExpression","columnLambdaExpression","columnIdentifier","tableExpression","tableFunctionExpression","tableIdentifier","tableArgList","tableArgExpression","databaseIdentifier","floatingLiteral","numberLiteral","literal","interval","keyword","keywordForAlias","alias","identifier","identifierOrNull","enumValue"],Zi._serializedATN=[4,1,235,2137,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,1,0,3,0,258,8,0,1,0,1,0,1,1,1,1,3,1,264,8,1,1,1,1,1,1,1,1,1,3,1,270,8,1,1,2,1,2,1,2,1,2,3,2,276,8,2,1,2,1,2,3,2,280,8,2,1,2,3,2,283,8,2,1,2,3,2,286,8,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,308,8,3,1,3,3,3,311,8,3,1,4,1,4,1,4,1,4,5,4,317,8,4,10,4,12,4,320,9,4,1,5,1,5,3,5,324,8,5,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,5,6,335,8,6,10,6,12,6,338,9,6,1,6,1,6,1,7,1,7,1,7,1,7,3,7,346,8,7,1,7,1,7,1,7,5,7,351,8,7,10,7,12,7,354,9,7,1,8,1,8,1,8,1,8,1,8,3,8,361,8,8,1,8,1,8,1,8,3,8,366,8,8,1,8,1,8,1,8,1,8,1,8,3,8,373,8,8,1,8,1,8,1,8,3,8,378,8,8,1,8,1,8,1,8,1,8,1,8,3,8,385,8,8,1,8,1,8,1,8,3,8,390,8,8,1,8,1,8,1,8,1,8,3,8,396,8,8,1,8,1,8,1,8,1,8,3,8,402,8,8,1,8,1,8,1,8,3,8,407,8,8,1,8,1,8,1,8,1,8,3,8,413,8,8,1,8,1,8,1,8,3,8,418,8,8,1,8,1,8,1,8,1,8,3,8,424,8,8,1,8,1,8,1,8,3,8,429,8,8,1,8,1,8,1,8,1,8,3,8,435,8,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,3,8,449,8,8,1,8,1,8,1,8,1,8,1,8,3,8,456,8,8,1,8,1,8,1,8,1,8,1,8,3,8,463,8,8,1,8,1,8,1,8,1,8,1,8,3,8,470,8,8,1,8,1,8,1,8,1,8,3,8,476,8,8,1,8,1,8,1,8,3,8,481,8,8,1,8,1,8,1,8,1,8,3,8,487,8,8,1,8,1,8,1,8,3,8,492,8,8,1,8,1,8,1,8,1,8,3,8,498,8,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,3,8,507,8,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,3,8,517,8,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,3,8,527,8,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,3,8,547,8,8,1,8,1,8,1,8,1,8,1,8,1,8,3,8,555,8,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,3,8,570,8,8,1,9,1,9,1,9,5,9,575,8,9,10,9,12,9,578,9,9,1,10,1,10,1,10,1,10,1,11,1,11,1,12,1,12,1,12,1,12,1,12,3,12,591,8,12,1,13,1,13,1,13,1,13,3,13,597,8,13,1,14,1,14,1,14,1,14,3,14,603,8,14,1,15,1,15,1,15,1,15,3,15,609,8,15,1,15,3,15,612,8,15,1,16,1,16,1,16,1,16,3,16,618,8,16,1,16,3,16,621,8,16,1,16,3,16,624,8,16,1,16,1,16,1,16,1,16,3,16,630,8,16,1,16,1,16,3,16,634,8,16,1,16,3,16,637,8,16,1,16,3,16,640,8,16,1,16,3,16,643,8,16,1,16,3,16,646,8,16,1,17,1,17,1,17,1,17,1,17,3,17,653,8,17,1,17,1,17,3,17,657,8,17,1,17,1,17,1,18,1,18,1,18,1,18,3,18,665,8,18,1,18,3,18,668,8,18,1,18,1,18,1,18,1,18,3,18,674,8,18,1,18,1,18,3,18,678,8,18,1,18,3,18,681,8,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,3,19,692,8,19,1,19,1,19,3,19,696,8,19,1,19,3,19,699,8,19,1,19,1,19,1,19,3,19,704,8,19,3,19,706,8,19,1,19,3,19,709,8,19,1,19,3,19,712,8,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,20,3,20,722,8,20,1,20,1,20,3,20,726,8,20,1,20,3,20,729,8,20,1,20,3,20,732,8,20,1,20,1,20,1,20,3,20,737,8,20,3,20,739,8,20,1,20,1,20,1,21,1,21,1,21,3,21,746,8,21,1,21,1,21,1,21,1,21,3,21,752,8,21,1,21,1,21,3,21,756,8,21,1,21,3,21,759,8,21,1,21,3,21,762,8,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,22,3,22,772,8,22,1,23,1,23,1,23,1,23,5,23,778,8,23,10,23,12,23,781,9,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,5,24,806,8,24,10,24,12,24,809,9,24,1,25,3,25,812,8,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,5,25,834,8,25,10,25,12,25,837,9,25,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,3,27,847,8,27,1,27,3,27,850,8,27,1,28,1,28,1,28,1,28,1,28,5,28,857,8,28,10,28,12,28,860,9,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,3,29,876,8,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,5,30,885,8,30,10,30,12,30,888,9,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,3,31,905,8,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,3,33,918,8,33,1,34,1,34,1,34,1,35,1,35,1,35,1,36,1,36,1,36,1,37,1,37,1,37,1,37,5,37,933,8,37,10,37,12,37,936,9,37,1,37,1,37,1,37,1,37,1,37,1,37,3,37,944,8,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,5,38,971,8,38,10,38,12,38,974,9,38,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,42,1,42,1,42,1,42,5,42,992,8,42,10,42,12,42,995,9,42,1,43,1,43,3,43,999,8,43,1,43,1,43,1,43,3,43,1004,8,43,1,43,3,43,1007,8,43,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,1019,8,44,1,45,1,45,1,45,3,45,1024,8,45,1,45,1,45,3,45,1028,8,45,1,45,3,45,1031,8,45,1,45,1,45,3,45,1035,8,45,1,45,1,45,3,45,1039,8,45,1,45,1,45,1,45,3,45,1044,8,45,1,45,3,45,1047,8,45,1,45,1,45,3,45,1051,8,45,3,45,1053,8,45,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,5,49,1073,8,49,10,49,12,49,1076,9,49,1,49,1,49,1,50,1,50,1,50,3,50,1083,8,50,1,50,3,50,1086,8,50,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,3,51,1096,8,51,1,52,1,52,3,52,1100,8,52,1,52,1,52,1,53,1,53,1,53,1,53,3,53,1108,8,53,1,53,1,53,3,53,1112,8,53,1,53,1,53,1,53,3,53,1117,8,53,1,53,1,53,3,53,1121,8,53,1,53,1,53,3,53,1125,8,53,1,53,1,53,3,53,1129,8,53,1,53,1,53,3,53,1133,8,53,3,53,1135,8,53,1,54,1,54,1,54,1,54,1,54,1,54,3,54,1143,8,54,1,54,1,54,3,54,1147,8,54,1,54,3,54,1150,8,54,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,3,55,1173,8,55,1,56,1,56,1,56,3,56,1178,8,56,1,56,1,56,1,56,3,56,1183,8,56,1,56,3,56,1186,8,56,1,56,1,56,1,57,1,57,1,57,1,57,5,57,1194,8,57,10,57,12,57,1197,9,57,1,57,1,57,1,58,1,58,1,58,1,58,1,58,3,58,1206,8,58,1,58,1,58,3,58,1210,8,58,1,59,1,59,1,59,3,59,1215,8,59,1,59,1,59,1,59,1,59,3,59,1221,8,59,1,59,5,59,1224,8,59,10,59,12,59,1227,9,59,1,60,1,60,1,60,3,60,1232,8,60,1,60,1,60,3,60,1236,8,60,1,61,1,61,1,61,1,61,3,61,1242,8,61,1,61,3,61,1245,8,61,1,61,3,61,1248,8,61,1,61,3,61,1251,8,61,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,5,62,1263,8,62,10,62,12,62,1266,9,62,1,62,3,62,1269,8,62,1,63,1,63,3,63,1273,8,63,1,63,1,63,1,63,3,63,1278,8,63,1,63,3,63,1281,8,63,1,63,1,63,1,64,1,64,1,64,1,64,5,64,1289,8,64,10,64,12,64,1292,9,64,1,65,1,65,1,65,1,65,1,65,3,65,1299,8,65,1,66,3,66,1302,8,66,1,66,1,66,3,66,1306,8,66,1,66,3,66,1309,8,66,1,66,1,66,3,66,1313,8,66,1,66,3,66,1316,8,66,1,66,3,66,1319,8,66,1,66,3,66,1322,8,66,1,66,3,66,1325,8,66,1,66,3,66,1328,8,66,1,66,1,66,3,66,1332,8,66,1,66,1,66,3,66,1336,8,66,1,66,3,66,1339,8,66,1,66,3,66,1342,8,66,1,66,3,66,1345,8,66,1,66,3,66,1348,8,66,1,66,3,66,1351,8,66,1,67,1,67,1,67,1,68,1,68,1,68,1,68,3,68,1360,8,68,1,69,1,69,1,69,1,70,3,70,1366,8,70,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,72,1,72,1,72,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,3,74,1393,8,74,1,75,1,75,1,75,1,76,1,76,1,76,1,76,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,79,3,79,1415,8,79,1,80,1,80,1,80,1,81,1,81,1,81,3,81,1423,8,81,1,81,3,81,1426,8,81,1,81,1,81,1,81,1,81,3,81,1432,8,81,1,81,1,81,1,81,1,81,1,81,1,81,3,81,1440,8,81,1,81,3,81,1443,8,81,1,81,1,81,1,81,1,81,5,81,1449,8,81,10,81,12,81,1452,9,81,1,82,3,82,1455,8,82,1,82,1,82,1,82,3,82,1460,8,82,1,82,3,82,1463,8,82,1,82,3,82,1466,8,82,1,82,1,82,3,82,1470,8,82,1,82,1,82,3,82,1474,8,82,1,82,3,82,1477,8,82,3,82,1479,8,82,1,82,3,82,1482,8,82,1,82,1,82,3,82,1486,8,82,1,82,1,82,3,82,1490,8,82,1,82,3,82,1493,8,82,3,82,1495,8,82,3,82,1497,8,82,1,83,3,83,1500,8,83,1,83,1,83,1,83,3,83,1505,8,83,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,3,84,1516,8,84,1,85,1,85,1,85,1,85,3,85,1522,8,85,1,86,1,86,1,86,3,86,1527,8,86,1,87,1,87,1,87,5,87,1532,8,87,10,87,12,87,1535,9,87,1,88,1,88,3,88,1539,8,88,1,88,1,88,3,88,1543,8,88,1,88,1,88,3,88,1547,8,88,1,89,1,89,1,89,3,89,1552,8,89,1,90,1,90,1,90,5,90,1557,8,90,10,90,12,90,1560,9,90,1,91,1,91,1,91,1,91,1,92,3,92,1567,8,92,1,92,3,92,1570,8,92,1,92,3,92,1573,8,92,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,96,3,96,1592,8,96,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,3,97,1606,8,97,1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,3,99,1622,8,99,1,99,3,99,1625,8,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,3,99,1634,8,99,1,99,1,99,3,99,1638,8,99,1,99,1,99,1,99,3,99,1643,8,99,1,99,1,99,1,99,3,99,1648,8,99,1,99,3,99,1651,8,99,3,99,1653,8,99,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,3,100,1675,8,100,1,100,3,100,1678,8,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,3,100,1689,8,100,1,101,1,101,3,101,1693,8,101,1,101,3,101,1696,8,101,1,101,1,101,3,101,1700,8,101,1,101,1,101,3,101,1704,8,101,1,102,1,102,1,102,1,103,1,103,1,103,3,103,1712,8,103,1,103,1,103,3,103,1716,8,103,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,5,104,1727,8,104,10,104,12,104,1730,9,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,5,104,1739,8,104,10,104,12,104,1742,9,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,5,104,1751,8,104,10,104,12,104,1754,9,104,1,104,1,104,1,104,1,104,1,104,3,104,1761,8,104,1,104,1,104,3,104,1765,8,104,1,105,1,105,1,105,5,105,1770,8,105,10,105,12,105,1773,9,105,1,106,1,106,1,106,3,106,1778,8,106,1,106,1,106,1,106,1,106,1,106,1,106,3,106,1786,8,106,1,107,1,107,1,107,3,107,1791,8,107,1,107,1,107,1,107,1,107,1,107,4,107,1798,8,107,11,107,12,107,1799,1,107,1,107,3,107,1804,8,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,3,107,1835,8,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,3,107,1852,8,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,3,107,1864,8,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,3,107,1874,8,107,1,107,3,107,1877,8,107,1,107,1,107,3,107,1881,8,107,1,107,3,107,1884,8,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,3,107,1896,8,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,3,107,1913,8,107,1,107,1,107,3,107,1917,8,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,3,107,1934,8,107,1,107,3,107,1937,8,107,1,107,1,107,3,107,1941,8,107,1,107,3,107,1944,8,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,3,107,1955,8,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,3,107,1979,8,107,1,107,1,107,1,107,1,107,1,107,3,107,1986,8,107,5,107,1988,8,107,10,107,12,107,1991,9,107,1,108,1,108,1,108,5,108,1996,8,108,10,108,12,108,1999,9,108,1,109,1,109,3,109,2003,8,109,1,110,1,110,1,110,1,110,5,110,2009,8,110,10,110,12,110,2012,9,110,1,110,1,110,1,110,1,110,1,110,5,110,2019,8,110,10,110,12,110,2022,9,110,3,110,2024,8,110,1,110,1,110,1,110,1,111,1,111,1,111,3,111,2032,8,111,1,111,1,111,1,111,3,111,2037,8,111,1,112,1,112,1,112,1,112,1,112,1,112,1,112,3,112,2046,8,112,1,112,1,112,1,112,1,112,3,112,2052,8,112,5,112,2054,8,112,10,112,12,112,2057,9,112,1,113,1,113,1,113,3,113,2062,8,113,1,113,1,113,1,114,1,114,1,114,3,114,2069,8,114,1,114,1,114,1,115,1,115,1,115,5,115,2076,8,115,10,115,12,115,2079,9,115,1,116,1,116,1,116,3,116,2084,8,116,1,117,1,117,1,118,1,118,1,118,1,118,1,118,1,118,3,118,2094,8,118,3,118,2096,8,118,1,119,3,119,2099,8,119,1,119,1,119,1,119,1,119,1,119,1,119,3,119,2107,8,119,1,120,1,120,1,120,3,120,2112,8,120,1,121,1,121,1,122,1,122,1,123,1,123,1,124,1,124,3,124,2122,8,124,1,125,1,125,1,125,3,125,2127,8,125,1,126,1,126,3,126,2131,8,126,1,127,1,127,1,127,1,127,1,127,0,3,162,214,224,128,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,0,28,6,0,3,3,24,24,27,27,38,38,104,104,177,177,2,0,15,15,29,29,3,0,3,3,38,38,104,104,2,0,41,41,43,43,2,0,44,44,50,50,3,0,14,14,159,159,165,165,2,0,31,31,144,144,2,0,84,84,96,96,2,0,71,71,101,101,3,0,4,4,8,8,12,12,4,0,4,4,7,8,12,12,150,150,2,0,96,96,143,143,2,0,4,4,8,8,2,0,118,118,208,208,2,0,11,11,41,42,2,0,62,62,93,93,2,0,136,136,146,146,2,0,68,68,80,80,1,0,156,157,3,0,17,17,95,95,173,173,3,0,204,204,222,222,231,231,2,0,209,210,223,223,2,0,79,79,98,98,1,0,199,200,2,0,210,210,223,223,8,0,36,36,76,76,108,108,110,110,134,134,148,148,189,189,194,194,15,0,2,35,37,53,55,75,77,81,83,107,109,109,111,112,114,115,117,126,129,132,136,147,149,174,176,188,190,193,195,196,4,0,35,35,62,62,77,77,91,91,2428,0,257,1,0,0,0,2,269,1,0,0,0,4,285,1,0,0,0,6,310,1,0,0,0,8,312,1,0,0,0,10,321,1,0,0,0,12,330,1,0,0,0,14,341,1,0,0,0,16,569,1,0,0,0,18,571,1,0,0,0,20,579,1,0,0,0,22,583,1,0,0,0,24,590,1,0,0,0,26,592,1,0,0,0,28,598,1,0,0,0,30,604,1,0,0,0,32,620,1,0,0,0,34,647,1,0,0,0,36,667,1,0,0,0,38,685,1,0,0,0,40,715,1,0,0,0,42,742,1,0,0,0,44,771,1,0,0,0,46,773,1,0,0,0,48,784,1,0,0,0,50,811,1,0,0,0,52,838,1,0,0,0,54,842,1,0,0,0,56,851,1,0,0,0,58,864,1,0,0,0,60,879,1,0,0,0,62,892,1,0,0,0,64,908,1,0,0,0,66,913,1,0,0,0,68,919,1,0,0,0,70,922,1,0,0,0,72,925,1,0,0,0,74,943,1,0,0,0,76,945,1,0,0,0,78,975,1,0,0,0,80,979,1,0,0,0,82,983,1,0,0,0,84,987,1,0,0,0,86,996,1,0,0,0,88,1018,1,0,0,0,90,1052,1,0,0,0,92,1054,1,0,0,0,94,1057,1,0,0,0,96,1064,1,0,0,0,98,1067,1,0,0,0,100,1079,1,0,0,0,102,1087,1,0,0,0,104,1097,1,0,0,0,106,1134,1,0,0,0,108,1149,1,0,0,0,110,1172,1,0,0,0,112,1174,1,0,0,0,114,1189,1,0,0,0,116,1209,1,0,0,0,118,1211,1,0,0,0,120,1228,1,0,0,0,122,1237,1,0,0,0,124,1252,1,0,0,0,126,1270,1,0,0,0,128,1284,1,0,0,0,130,1298,1,0,0,0,132,1301,1,0,0,0,134,1352,1,0,0,0,136,1355,1,0,0,0,138,1361,1,0,0,0,140,1365,1,0,0,0,142,1371,1,0,0,0,144,1378,1,0,0,0,146,1381,1,0,0,0,148,1384,1,0,0,0,150,1394,1,0,0,0,152,1397,1,0,0,0,154,1401,1,0,0,0,156,1405,1,0,0,0,158,1410,1,0,0,0,160,1416,1,0,0,0,162,1431,1,0,0,0,164,1496,1,0,0,0,166,1504,1,0,0,0,168,1515,1,0,0,0,170,1517,1,0,0,0,172,1523,1,0,0,0,174,1528,1,0,0,0,176,1536,1,0,0,0,178,1548,1,0,0,0,180,1553,1,0,0,0,182,1561,1,0,0,0,184,1566,1,0,0,0,186,1574,1,0,0,0,188,1578,1,0,0,0,190,1582,1,0,0,0,192,1591,1,0,0,0,194,1605,1,0,0,0,196,1607,1,0,0,0,198,1652,1,0,0,0,200,1688,1,0,0,0,202,1690,1,0,0,0,204,1705,1,0,0,0,206,1708,1,0,0,0,208,1764,1,0,0,0,210,1766,1,0,0,0,212,1785,1,0,0,0,214,1916,1,0,0,0,216,1992,1,0,0,0,218,2002,1,0,0,0,220,2023,1,0,0,0,222,2031,1,0,0,0,224,2045,1,0,0,0,226,2058,1,0,0,0,228,2068,1,0,0,0,230,2072,1,0,0,0,232,2083,1,0,0,0,234,2085,1,0,0,0,236,2095,1,0,0,0,238,2098,1,0,0,0,240,2111,1,0,0,0,242,2113,1,0,0,0,244,2115,1,0,0,0,246,2117,1,0,0,0,248,2121,1,0,0,0,250,2126,1,0,0,0,252,2130,1,0,0,0,254,2132,1,0,0,0,256,258,3,2,1,0,257,256,1,0,0,0,257,258,1,0,0,0,258,259,1,0,0,0,259,260,5,0,0,1,260,1,1,0,0,0,261,263,3,4,2,0,262,264,5,230,0,0,263,262,1,0,0,0,263,264,1,0,0,0,264,270,1,0,0,0,265,266,3,4,2,0,266,267,5,230,0,0,267,268,3,2,1,0,268,270,1,0,0,0,269,261,1,0,0,0,269,265,1,0,0,0,270,3,1,0,0,0,271,275,3,6,3,0,272,273,5,87,0,0,273,274,5,124,0,0,274,276,5,202,0,0,275,272,1,0,0,0,275,276,1,0,0,0,276,279,1,0,0,0,277,278,5,66,0,0,278,280,3,252,126,0,279,277,1,0,0,0,279,280,1,0,0,0,280,282,1,0,0,0,281,283,5,230,0,0,282,281,1,0,0,0,282,283,1,0,0,0,283,286,1,0,0,0,284,286,3,112,56,0,285,271,1,0,0,0,285,284,1,0,0,0,286,5,1,0,0,0,287,311,3,14,7,0,288,311,3,26,13,0,289,311,3,28,14,0,290,311,3,44,22,0,291,311,3,104,52,0,292,311,3,30,15,0,293,311,3,106,53,0,294,311,3,108,54,0,295,311,3,110,55,0,296,311,3,120,60,0,297,311,3,122,61,0,298,311,3,124,62,0,299,311,3,128,64,0,300,311,3,196,98,0,301,311,3,198,99,0,302,311,3,200,100,0,303,311,3,202,101,0,304,311,3,204,102,0,305,311,3,206,103,0,306,308,3,8,4,0,307,306,1,0,0,0,307,308,1,0,0,0,308,309,1,0,0,0,309,311,3,132,66,0,310,287,1,0,0,0,310,288,1,0,0,0,310,289,1,0,0,0,310,290,1,0,0,0,310,291,1,0,0,0,310,292,1,0,0,0,310,293,1,0,0,0,310,294,1,0,0,0,310,295,1,0,0,0,310,296,1,0,0,0,310,297,1,0,0,0,310,298,1,0,0,0,310,299,1,0,0,0,310,300,1,0,0,0,310,301,1,0,0,0,310,302,1,0,0,0,310,303,1,0,0,0,310,304,1,0,0,0,310,305,1,0,0,0,310,307,1,0,0,0,311,7,1,0,0,0,312,313,5,193,0,0,313,318,3,10,5,0,314,315,5,208,0,0,315,317,3,10,5,0,316,314,1,0,0,0,317,320,1,0,0,0,318,316,1,0,0,0,318,319,1,0,0,0,319,9,1,0,0,0,320,318,1,0,0,0,321,323,3,250,125,0,322,324,3,12,6,0,323,322,1,0,0,0,323,324,1,0,0,0,324,325,1,0,0,0,325,326,5,10,0,0,326,327,5,219,0,0,327,328,3,6,3,0,328,329,5,229,0,0,329,11,1,0,0,0,330,331,5,219,0,0,331,336,3,250,125,0,332,333,5,208,0,0,333,335,3,250,125,0,334,332,1,0,0,0,335,338,1,0,0,0,336,334,1,0,0,0,336,337,1,0,0,0,337,339,1,0,0,0,338,336,1,0,0,0,339,340,5,229,0,0,340,13,1,0,0,0,341,342,5,5,0,0,342,343,5,162,0,0,343,345,3,228,114,0,344,346,3,66,33,0,345,344,1,0,0,0,345,346,1,0,0,0,346,347,1,0,0,0,347,352,3,16,8,0,348,349,5,208,0,0,349,351,3,16,8,0,350,348,1,0,0,0,351,354,1,0,0,0,352,350,1,0,0,0,352,353,1,0,0,0,353,15,1,0,0,0,354,352,1,0,0,0,355,356,5,1,0,0,356,360,5,26,0,0,357,358,5,78,0,0,358,359,5,115,0,0,359,361,5,56,0,0,360,357,1,0,0,0,360,361,1,0,0,0,361,362,1,0,0,0,362,365,3,90,45,0,363,364,5,2,0,0,364,366,3,222,111,0,365,363,1,0,0,0,365,366,1,0,0,0,366,570,1,0,0,0,367,368,5,1,0,0,368,372,5,81,0,0,369,370,5,78,0,0,370,371,5,115,0,0,371,373,5,56,0,0,372,369,1,0,0,0,372,373,1,0,0,0,373,374,1,0,0,0,374,377,3,94,47,0,375,376,5,2,0,0,376,378,3,222,111,0,377,375,1,0,0,0,377,378,1,0,0,0,378,570,1,0,0,0,379,380,5,1,0,0,380,384,5,133,0,0,381,382,5,78,0,0,382,383,5,115,0,0,383,385,5,56,0,0,384,381,1,0,0,0,384,385,1,0,0,0,385,386,1,0,0,0,386,389,3,96,48,0,387,388,5,2,0,0,388,390,3,222,111,0,389,387,1,0,0,0,389,390,1,0,0,0,390,570,1,0,0,0,391,392,5,15,0,0,392,395,3,24,12,0,393,394,5,68,0,0,394,396,3,228,114,0,395,393,1,0,0,0,395,396,1,0,0,0,396,570,1,0,0,0,397,398,5,22,0,0,398,401,5,26,0,0,399,400,5,78,0,0,400,402,5,56,0,0,401,399,1,0,0,0,401,402,1,0,0,0,402,403,1,0,0,0,403,406,3,222,111,0,404,405,5,80,0,0,405,407,3,24,12,0,406,404,1,0,0,0,406,407,1,0,0,0,407,570,1,0,0,0,408,409,5,22,0,0,409,412,5,81,0,0,410,411,5,78,0,0,411,413,5,56,0,0,412,410,1,0,0,0,412,413,1,0,0,0,413,414,1,0,0,0,414,417,3,222,111,0,415,416,5,80,0,0,416,418,3,24,12,0,417,415,1,0,0,0,417,418,1,0,0,0,418,570,1,0,0,0,419,420,5,22,0,0,420,423,5,133,0,0,421,422,5,78,0,0,422,424,5,56,0,0,423,421,1,0,0,0,423,424,1,0,0,0,424,425,1,0,0,0,425,428,3,222,111,0,426,427,5,80,0,0,427,429,3,24,12,0,428,426,1,0,0,0,428,429,1,0,0,0,429,570,1,0,0,0,430,431,5,27,0,0,431,434,5,26,0,0,432,433,5,78,0,0,433,435,5,56,0,0,434,432,1,0,0,0,434,435,1,0,0,0,435,436,1,0,0,0,436,437,3,222,111,0,437,438,5,202,0,0,438,570,1,0,0,0,439,440,5,40,0,0,440,441,5,191,0,0,441,570,3,214,107,0,442,443,5,44,0,0,443,570,3,24,12,0,444,445,5,50,0,0,445,448,5,26,0,0,446,447,5,78,0,0,447,449,5,56,0,0,448,446,1,0,0,0,448,449,1,0,0,0,449,450,1,0,0,0,450,570,3,222,111,0,451,452,5,50,0,0,452,455,5,81,0,0,453,454,5,78,0,0,454,456,5,56,0,0,455,453,1,0,0,0,455,456,1,0,0,0,456,457,1,0,0,0,457,570,3,222,111,0,458,459,5,50,0,0,459,462,5,133,0,0,460,461,5,78,0,0,461,463,5,56,0,0,462,460,1,0,0,0,462,463,1,0,0,0,463,464,1,0,0,0,464,570,3,222,111,0,465,466,5,50,0,0,466,570,3,24,12,0,467,469,5,67,0,0,468,470,3,24,12,0,469,468,1,0,0,0,469,470,1,0,0,0,470,570,1,0,0,0,471,472,5,103,0,0,472,475,5,81,0,0,473,474,5,78,0,0,474,476,5,56,0,0,475,473,1,0,0,0,475,476,1,0,0,0,476,477,1,0,0,0,477,480,3,222,111,0,478,479,5,80,0,0,479,481,3,24,12,0,480,478,1,0,0,0,480,481,1,0,0,0,481,570,1,0,0,0,482,483,5,103,0,0,483,486,5,133,0,0,484,485,5,78,0,0,485,487,5,56,0,0,486,484,1,0,0,0,486,487,1,0,0,0,487,488,1,0,0,0,488,491,3,222,111,0,489,490,5,80,0,0,490,492,3,24,12,0,491,489,1,0,0,0,491,492,1,0,0,0,492,570,1,0,0,0,493,494,5,109,0,0,494,497,5,26,0,0,495,496,5,78,0,0,496,498,5,56,0,0,497,495,1,0,0,0,497,498,1,0,0,0,498,499,1,0,0,0,499,500,3,222,111,0,500,501,3,98,49,0,501,570,1,0,0,0,502,503,5,109,0,0,503,506,5,26,0,0,504,505,5,78,0,0,505,507,5,56,0,0,506,504,1,0,0,0,506,507,1,0,0,0,507,508,1,0,0,0,508,509,3,222,111,0,509,510,5,27,0,0,510,511,5,202,0,0,511,570,1,0,0,0,512,513,5,109,0,0,513,516,5,26,0,0,514,515,5,78,0,0,515,517,5,56,0,0,516,514,1,0,0,0,516,517,1,0,0,0,517,518,1,0,0,0,518,519,3,222,111,0,519,520,5,138,0,0,520,521,3,22,11,0,521,570,1,0,0,0,522,523,5,109,0,0,523,526,5,26,0,0,524,525,5,78,0,0,525,527,5,56,0,0,526,524,1,0,0,0,526,527,1,0,0,0,527,528,1,0,0,0,528,570,3,90,45,0,529,530,5,109,0,0,530,531,5,122,0,0,531,532,5,18,0,0,532,570,3,214,107,0,533,534,5,109,0,0,534,570,3,84,42,0,535,536,5,111,0,0,536,546,3,24,12,0,537,538,5,170,0,0,538,539,5,47,0,0,539,547,5,202,0,0,540,541,5,170,0,0,541,542,5,187,0,0,542,547,5,202,0,0,543,544,5,170,0,0,544,545,5,162,0,0,545,547,3,228,114,0,546,537,1,0,0,0,546,540,1,0,0,0,546,543,1,0,0,0,547,570,1,0,0,0,548,549,5,138,0,0,549,570,5,177,0,0,550,551,5,139,0,0,551,554,5,26,0,0,552,553,5,78,0,0,553,555,5,56,0,0,554,552,1,0,0,0,554,555,1,0,0,0,555,556,1,0,0,0,556,557,3,222,111,0,557,558,5,170,0,0,558,559,3,222,111,0,559,570,1,0,0,0,560,561,5,140,0,0,561,562,3,24,12,0,562,563,5,68,0,0,563,564,3,228,114,0,564,570,1,0,0,0,565,566,5,181,0,0,566,567,3,18,9,0,567,568,3,146,73,0,568,570,1,0,0,0,569,355,1,0,0,0,569,367,1,0,0,0,569,379,1,0,0,0,569,391,1,0,0,0,569,397,1,0,0,0,569,408,1,0,0,0,569,419,1,0,0,0,569,430,1,0,0,0,569,439,1,0,0,0,569,442,1,0,0,0,569,444,1,0,0,0,569,451,1,0,0,0,569,458,1,0,0,0,569,465,1,0,0,0,569,467,1,0,0,0,569,471,1,0,0,0,569,482,1,0,0,0,569,493,1,0,0,0,569,502,1,0,0,0,569,512,1,0,0,0,569,522,1,0,0,0,569,529,1,0,0,0,569,533,1,0,0,0,569,535,1,0,0,0,569,548,1,0,0,0,569,550,1,0,0,0,569,560,1,0,0,0,569,565,1,0,0,0,570,17,1,0,0,0,571,576,3,20,10,0,572,573,5,208,0,0,573,575,3,20,10,0,574,572,1,0,0,0,575,578,1,0,0,0,576,574,1,0,0,0,576,577,1,0,0,0,577,19,1,0,0,0,578,576,1,0,0,0,579,580,3,222,111,0,580,581,5,213,0,0,581,582,3,214,107,0,582,21,1,0,0,0,583,584,7,0,0,0,584,23,1,0,0,0,585,586,5,126,0,0,586,591,3,214,107,0,587,588,5,126,0,0,588,589,5,77,0,0,589,591,5,202,0,0,590,585,1,0,0,0,590,587,1,0,0,0,591,25,1,0,0,0,592,593,5,15,0,0,593,594,5,46,0,0,594,596,3,228,114,0,595,597,3,66,33,0,596,595,1,0,0,0,596,597,1,0,0,0,597,27,1,0,0,0,598,599,5,21,0,0,599,600,5,162,0,0,600,602,3,228,114,0,601,603,3,24,12,0,602,601,1,0,0,0,602,603,1,0,0,0,603,29,1,0,0,0,604,605,5,40,0,0,605,606,5,68,0,0,606,608,3,228,114,0,607,609,3,66,33,0,608,607,1,0,0,0,608,609,1,0,0,0,609,611,1,0,0,0,610,612,3,146,73,0,611,610,1,0,0,0,611,612,1,0,0,0,612,31,1,0,0,0,613,621,5,15,0,0,614,617,5,29,0,0,615,616,5,121,0,0,616,618,5,140,0,0,617,615,1,0,0,0,617,618,1,0,0,0,618,621,1,0,0,0,619,621,5,140,0,0,620,613,1,0,0,0,620,614,1,0,0,0,620,619,1,0,0,0,621,623,1,0,0,0,622,624,5,164,0,0,623,622,1,0,0,0,623,624,1,0,0,0,624,625,1,0,0,0,625,629,5,162,0,0,626,627,5,78,0,0,627,628,5,115,0,0,628,630,5,56,0,0,629,626,1,0,0,0,629,630,1,0,0,0,630,631,1,0,0,0,631,633,3,228,114,0,632,634,3,68,34,0,633,632,1,0,0,0,633,634,1,0,0,0,634,636,1,0,0,0,635,637,3,66,33,0,636,635,1,0,0,0,636,637,1,0,0,0,637,639,1,0,0,0,638,640,3,74,37,0,639,638,1,0,0,0,639,640,1,0,0,0,640,642,1,0,0,0,641,643,3,76,38,0,642,641,1,0,0,0,642,643,1,0,0,0,643,645,1,0,0,0,644,646,3,72,36,0,645,644,1,0,0,0,645,646,1,0,0,0,646,33,1,0,0,0,647,648,7,1,0,0,648,652,5,33,0,0,649,650,5,78,0,0,650,651,5,115,0,0,651,653,5,56,0,0,652,649,1,0,0,0,652,653,1,0,0,0,653,654,1,0,0,0,654,656,3,250,125,0,655,657,3,66,33,0,656,655,1,0,0,0,656,657,1,0,0,0,657,658,1,0,0,0,658,659,3,86,43,0,659,35,1,0,0,0,660,668,5,15,0,0,661,664,5,29,0,0,662,663,5,121,0,0,663,665,5,140,0,0,664,662,1,0,0,0,664,665,1,0,0,0,665,668,1,0,0,0,666,668,5,140,0,0,667,660,1,0,0,0,667,661,1,0,0,0,667,666,1,0,0,0,668,669,1,0,0,0,669,673,5,46,0,0,670,671,5,78,0,0,671,672,5,115,0,0,672,674,5,56,0,0,673,670,1,0,0,0,673,674,1,0,0,0,674,675,1,0,0,0,675,677,3,228,114,0,676,678,3,68,34,0,677,676,1,0,0,0,677,678,1,0,0,0,678,680,1,0,0,0,679,681,3,66,33,0,680,679,1,0,0,0,680,681,1,0,0,0,681,682,1,0,0,0,682,683,3,46,23,0,683,684,3,50,25,0,684,37,1,0,0,0,685,686,7,1,0,0,686,687,5,100,0,0,687,691,5,186,0,0,688,689,5,78,0,0,689,690,5,115,0,0,690,692,5,56,0,0,691,688,1,0,0,0,691,692,1,0,0,0,692,693,1,0,0,0,693,695,3,228,114,0,694,696,3,68,34,0,695,694,1,0,0,0,695,696,1,0,0,0,696,698,1,0,0,0,697,699,3,66,33,0,698,697,1,0,0,0,698,699,1,0,0,0,699,705,1,0,0,0,700,701,5,193,0,0,701,703,5,168,0,0,702,704,5,200,0,0,703,702,1,0,0,0,703,704,1,0,0,0,704,706,1,0,0,0,705,700,1,0,0,0,705,706,1,0,0,0,706,708,1,0,0,0,707,709,3,70,35,0,708,707,1,0,0,0,708,709,1,0,0,0,709,711,1,0,0,0,710,712,3,74,37,0,711,710,1,0,0,0,711,712,1,0,0,0,712,713,1,0,0,0,713,714,3,72,36,0,714,39,1,0,0,0,715,716,7,1,0,0,716,717,5,104,0,0,717,721,5,186,0,0,718,719,5,78,0,0,719,720,5,115,0,0,720,722,5,56,0,0,721,718,1,0,0,0,721,722,1,0,0,0,722,723,1,0,0,0,723,725,3,228,114,0,724,726,3,68,34,0,725,724,1,0,0,0,725,726,1,0,0,0,726,728,1,0,0,0,727,729,3,66,33,0,728,727,1,0,0,0,728,729,1,0,0,0,729,731,1,0,0,0,730,732,3,74,37,0,731,730,1,0,0,0,731,732,1,0,0,0,732,738,1,0,0,0,733,739,3,70,35,0,734,736,3,76,38,0,735,737,5,129,0,0,736,735,1,0,0,0,736,737,1,0,0,0,737,739,1,0,0,0,738,733,1,0,0,0,738,734,1,0,0,0,739,740,1,0,0,0,740,741,3,72,36,0,741,41,1,0,0,0,742,745,7,1,0,0,743,744,5,121,0,0,744,746,5,140,0,0,745,743,1,0,0,0,745,746,1,0,0,0,746,747,1,0,0,0,747,751,5,186,0,0,748,749,5,78,0,0,749,750,5,115,0,0,750,752,5,56,0,0,751,748,1,0,0,0,751,752,1,0,0,0,752,753,1,0,0,0,753,755,3,228,114,0,754,756,3,68,34,0,755,754,1,0,0,0,755,756,1,0,0,0,756,758,1,0,0,0,757,759,3,66,33,0,758,757,1,0,0,0,758,759,1,0,0,0,759,761,1,0,0,0,760,762,3,74,37,0,761,760,1,0,0,0,761,762,1,0,0,0,762,763,1,0,0,0,763,764,3,72,36,0,764,43,1,0,0,0,765,772,3,34,17,0,766,772,3,36,18,0,767,772,3,38,19,0,768,772,3,40,20,0,769,772,3,32,16,0,770,772,3,42,21,0,771,765,1,0,0,0,771,766,1,0,0,0,771,767,1,0,0,0,771,768,1,0,0,0,771,769,1,0,0,0,771,770,1,0,0,0,772,45,1,0,0,0,773,774,5,219,0,0,774,779,3,48,24,0,775,776,5,208,0,0,776,778,3,48,24,0,777,775,1,0,0,0,778,781,1,0,0,0,779,777,1,0,0,0,779,780,1,0,0,0,780,782,1,0,0,0,781,779,1,0,0,0,782,783,5,229,0,0,783,47,1,0,0,0,784,785,3,250,125,0,785,807,3,208,104,0,786,787,4,24,0,1,787,788,5,38,0,0,788,789,3,240,120,0,789,790,6,24,-1,0,790,806,1,0,0,0,791,792,4,24,1,1,792,793,5,58,0,0,793,794,3,214,107,0,794,795,6,24,-1,0,795,806,1,0,0,0,796,797,4,24,2,1,797,798,5,75,0,0,798,806,6,24,-1,0,799,800,4,24,3,1,800,801,5,83,0,0,801,806,6,24,-1,0,802,803,4,24,4,1,803,804,5,89,0,0,804,806,6,24,-1,0,805,786,1,0,0,0,805,791,1,0,0,0,805,796,1,0,0,0,805,799,1,0,0,0,805,802,1,0,0,0,806,809,1,0,0,0,807,805,1,0,0,0,807,808,1,0,0,0,808,49,1,0,0,0,809,807,1,0,0,0,810,812,3,52,26,0,811,810,1,0,0,0,811,812,1,0,0,0,812,835,1,0,0,0,813,814,4,25,5,1,814,815,3,56,28,0,815,816,6,25,-1,0,816,834,1,0,0,0,817,818,4,25,6,1,818,819,3,58,29,0,819,820,6,25,-1,0,820,834,1,0,0,0,821,822,4,25,7,1,822,823,3,60,30,0,823,824,6,25,-1,0,824,834,1,0,0,0,825,826,4,25,8,1,826,827,3,62,31,0,827,828,6,25,-1,0,828,834,1,0,0,0,829,830,4,25,9,1,830,831,3,64,32,0,831,832,6,25,-1,0,832,834,1,0,0,0,833,813,1,0,0,0,833,817,1,0,0,0,833,821,1,0,0,0,833,825,1,0,0,0,833,829,1,0,0,0,834,837,1,0,0,0,835,833,1,0,0,0,835,836,1,0,0,0,836,51,1,0,0,0,837,835,1,0,0,0,838,839,5,132,0,0,839,840,5,91,0,0,840,841,3,210,105,0,841,53,1,0,0,0,842,849,3,250,125,0,843,846,3,250,125,0,844,845,5,219,0,0,845,847,5,229,0,0,846,844,1,0,0,0,846,847,1,0,0,0,847,850,1,0,0,0,848,850,3,240,120,0,849,843,1,0,0,0,849,848,1,0,0,0,850,55,1,0,0,0,851,852,5,155,0,0,852,853,5,219,0,0,853,854,3,250,125,0,854,858,5,219,0,0,855,857,3,54,27,0,856,855,1,0,0,0,857,860,1,0,0,0,858,856,1,0,0,0,858,859,1,0,0,0,859,861,1,0,0,0,860,858,1,0,0,0,861,862,5,229,0,0,862,863,5,229,0,0,863,57,1,0,0,0,864,865,5,97,0,0,865,875,5,219,0,0,866,876,5,200,0,0,867,868,5,107,0,0,868,869,5,200,0,0,869,870,5,105,0,0,870,876,5,200,0,0,871,872,5,105,0,0,872,873,5,200,0,0,873,874,5,107,0,0,874,876,5,200,0,0,875,866,1,0,0,0,875,867,1,0,0,0,875,871,1,0,0,0,876,877,1,0,0,0,877,878,5,229,0,0,878,59,1,0,0,0,879,880,5,94,0,0,880,881,5,219,0,0,881,882,3,250,125,0,882,886,5,219,0,0,883,885,3,54,27,0,884,883,1,0,0,0,885,888,1,0,0,0,886,884,1,0,0,0,886,887,1,0,0,0,887,889,1,0,0,0,888,886,1,0,0,0,889,890,5,229,0,0,890,891,5,229,0,0,891,61,1,0,0,0,892,893,5,136,0,0,893,904,5,219,0,0,894,895,5,107,0,0,895,896,3,250,125,0,896,897,5,105,0,0,897,898,3,250,125,0,898,905,1,0,0,0,899,900,5,105,0,0,900,901,3,250,125,0,901,902,5,107,0,0,902,903,3,250,125,0,903,905,1,0,0,0,904,894,1,0,0,0,904,899,1,0,0,0,905,906,1,0,0,0,906,907,5,229,0,0,907,63,1,0,0,0,908,909,5,153,0,0,909,910,5,219,0,0,910,911,3,180,90,0,911,912,5,229,0,0,912,65,1,0,0,0,913,914,5,119,0,0,914,917,5,23,0,0,915,918,3,250,125,0,916,918,5,202,0,0,917,915,1,0,0,0,917,916,1,0,0,0,918,67,1,0,0,0,919,920,5,184,0,0,920,921,5,202,0,0,921,69,1,0,0,0,922,923,5,170,0,0,923,924,3,228,114,0,924,71,1,0,0,0,925,926,5,10,0,0,926,927,3,128,64,0,927,73,1,0,0,0,928,929,5,219,0,0,929,934,3,88,44,0,930,931,5,208,0,0,931,933,3,88,44,0,932,930,1,0,0,0,933,936,1,0,0,0,934,932,1,0,0,0,934,935,1,0,0,0,935,937,1,0,0,0,936,934,1,0,0,0,937,938,5,229,0,0,938,944,1,0,0,0,939,940,5,10,0,0,940,944,3,228,114,0,941,942,5,10,0,0,942,944,3,226,113,0,943,928,1,0,0,0,943,939,1,0,0,0,943,941,1,0,0,0,944,75,1,0,0,0,945,972,3,86,43,0,946,947,4,38,10,1,947,948,3,152,76,0,948,949,6,38,-1,0,949,971,1,0,0,0,950,951,4,38,11,1,951,952,3,78,39,0,952,953,6,38,-1,0,953,971,1,0,0,0,954,955,4,38,12,1,955,956,3,80,40,0,956,957,6,38,-1,0,957,971,1,0,0,0,958,959,4,38,13,1,959,960,3,82,41,0,960,961,6,38,-1,0,961,971,1,0,0,0,962,963,4,38,14,1,963,964,3,84,42,0,964,965,6,38,-1,0,965,971,1,0,0,0,966,967,4,38,15,1,967,968,3,160,80,0,968,969,6,38,-1,0,969,971,1,0,0,0,970,946,1,0,0,0,970,950,1,0,0,0,970,954,1,0,0,0,970,958,1,0,0,0,970,962,1,0,0,0,970,966,1,0,0,0,971,974,1,0,0,0,972,970,1,0,0,0,972,973,1,0,0,0,973,77,1,0,0,0,974,972,1,0,0,0,975,976,5,126,0,0,976,977,5,18,0,0,977,978,3,214,107,0,978,79,1,0,0,0,979,980,5,132,0,0,980,981,5,91,0,0,981,982,3,214,107,0,982,81,1,0,0,0,983,984,5,147,0,0,984,985,5,18,0,0,985,986,3,214,107,0,986,83,1,0,0,0,987,988,5,177,0,0,988,993,3,102,51,0,989,990,5,208,0,0,990,992,3,102,51,0,991,989,1,0,0,0,992,995,1,0,0,0,993,991,1,0,0,0,993,994,1,0,0,0,994,85,1,0,0,0,995,993,1,0,0,0,996,998,5,53,0,0,997,999,5,213,0,0,998,997,1,0,0,0,998,999,1,0,0,0,999,1e3,1,0,0,0,1e3,1006,3,252,126,0,1001,1003,5,219,0,0,1002,1004,3,210,105,0,1003,1002,1,0,0,0,1003,1004,1,0,0,0,1004,1005,1,0,0,0,1005,1007,5,229,0,0,1006,1001,1,0,0,0,1006,1007,1,0,0,0,1007,87,1,0,0,0,1008,1019,3,90,45,0,1009,1010,5,28,0,0,1010,1011,3,250,125,0,1011,1012,5,21,0,0,1012,1013,3,214,107,0,1013,1019,1,0,0,0,1014,1015,5,81,0,0,1015,1019,3,94,47,0,1016,1017,5,133,0,0,1017,1019,3,96,48,0,1018,1008,1,0,0,0,1018,1009,1,0,0,0,1018,1014,1,0,0,0,1018,1016,1,0,0,0,1019,89,1,0,0,0,1020,1021,3,222,111,0,1021,1023,3,208,104,0,1022,1024,3,92,46,0,1023,1022,1,0,0,0,1023,1024,1,0,0,0,1024,1027,1,0,0,0,1025,1026,5,27,0,0,1026,1028,5,202,0,0,1027,1025,1,0,0,0,1027,1028,1,0,0,0,1028,1030,1,0,0,0,1029,1031,3,98,49,0,1030,1029,1,0,0,0,1030,1031,1,0,0,0,1031,1034,1,0,0,0,1032,1033,5,177,0,0,1033,1035,3,214,107,0,1034,1032,1,0,0,0,1034,1035,1,0,0,0,1035,1053,1,0,0,0,1036,1038,3,222,111,0,1037,1039,3,208,104,0,1038,1037,1,0,0,0,1038,1039,1,0,0,0,1039,1040,1,0,0,0,1040,1043,3,92,46,0,1041,1042,5,27,0,0,1042,1044,5,202,0,0,1043,1041,1,0,0,0,1043,1044,1,0,0,0,1044,1046,1,0,0,0,1045,1047,3,98,49,0,1046,1045,1,0,0,0,1046,1047,1,0,0,0,1047,1050,1,0,0,0,1048,1049,5,177,0,0,1049,1051,3,214,107,0,1050,1048,1,0,0,0,1050,1051,1,0,0,0,1051,1053,1,0,0,0,1052,1020,1,0,0,0,1052,1036,1,0,0,0,1053,91,1,0,0,0,1054,1055,7,2,0,0,1055,1056,3,214,107,0,1056,93,1,0,0,0,1057,1058,3,222,111,0,1058,1059,3,214,107,0,1059,1060,5,178,0,0,1060,1061,3,208,104,0,1061,1062,5,72,0,0,1062,1063,5,200,0,0,1063,95,1,0,0,0,1064,1065,3,222,111,0,1065,1066,3,126,63,0,1066,97,1,0,0,0,1067,1068,5,24,0,0,1068,1069,5,219,0,0,1069,1074,3,100,50,0,1070,1071,5,208,0,0,1071,1073,3,100,50,0,1072,1070,1,0,0,0,1073,1076,1,0,0,0,1074,1072,1,0,0,0,1074,1075,1,0,0,0,1075,1077,1,0,0,0,1076,1074,1,0,0,0,1077,1078,5,229,0,0,1078,99,1,0,0,0,1079,1085,3,250,125,0,1080,1082,5,219,0,0,1081,1083,3,210,105,0,1082,1081,1,0,0,0,1082,1083,1,0,0,0,1083,1084,1,0,0,0,1084,1086,5,229,0,0,1085,1080,1,0,0,0,1085,1086,1,0,0,0,1086,101,1,0,0,0,1087,1095,3,214,107,0,1088,1096,5,40,0,0,1089,1090,5,170,0,0,1090,1091,5,47,0,0,1091,1096,5,202,0,0,1092,1093,5,170,0,0,1093,1094,5,187,0,0,1094,1096,5,202,0,0,1095,1088,1,0,0,0,1095,1089,1,0,0,0,1095,1092,1,0,0,0,1095,1096,1,0,0,0,1096,103,1,0,0,0,1097,1099,7,3,0,0,1098,1100,5,162,0,0,1099,1098,1,0,0,0,1099,1100,1,0,0,0,1100,1101,1,0,0,0,1101,1102,3,224,112,0,1102,105,1,0,0,0,1103,1104,7,4,0,0,1104,1107,5,33,0,0,1105,1106,5,78,0,0,1106,1108,5,56,0,0,1107,1105,1,0,0,0,1107,1108,1,0,0,0,1108,1109,1,0,0,0,1109,1111,3,234,117,0,1110,1112,3,66,33,0,1111,1110,1,0,0,0,1111,1112,1,0,0,0,1112,1135,1,0,0,0,1113,1120,7,4,0,0,1114,1121,5,46,0,0,1115,1117,5,164,0,0,1116,1115,1,0,0,0,1116,1117,1,0,0,0,1117,1118,1,0,0,0,1118,1121,5,162,0,0,1119,1121,5,186,0,0,1120,1114,1,0,0,0,1120,1116,1,0,0,0,1120,1119,1,0,0,0,1121,1124,1,0,0,0,1122,1123,5,78,0,0,1123,1125,5,56,0,0,1124,1122,1,0,0,0,1124,1125,1,0,0,0,1125,1126,1,0,0,0,1126,1128,3,228,114,0,1127,1129,3,66,33,0,1128,1127,1,0,0,0,1128,1129,1,0,0,0,1129,1132,1,0,0,0,1130,1131,5,114,0,0,1131,1133,5,39,0,0,1132,1130,1,0,0,0,1132,1133,1,0,0,0,1133,1135,1,0,0,0,1134,1103,1,0,0,0,1134,1113,1,0,0,0,1135,107,1,0,0,0,1136,1137,5,56,0,0,1137,1138,5,33,0,0,1138,1150,3,234,117,0,1139,1146,5,56,0,0,1140,1147,5,46,0,0,1141,1143,5,164,0,0,1142,1141,1,0,0,0,1142,1143,1,0,0,0,1143,1144,1,0,0,0,1144,1147,5,162,0,0,1145,1147,5,186,0,0,1146,1140,1,0,0,0,1146,1142,1,0,0,0,1146,1145,1,0,0,0,1146,1147,1,0,0,0,1147,1148,1,0,0,0,1148,1150,3,228,114,0,1149,1136,1,0,0,0,1149,1139,1,0,0,0,1150,109,1,0,0,0,1151,1152,5,57,0,0,1152,1173,3,6,3,0,1153,1154,5,57,0,0,1154,1155,5,13,0,0,1155,1173,3,6,3,0,1156,1157,5,57,0,0,1157,1158,5,160,0,0,1158,1173,3,6,3,0,1159,1160,5,57,0,0,1160,1161,5,127,0,0,1161,1173,3,6,3,0,1162,1163,5,57,0,0,1163,1164,5,128,0,0,1164,1173,3,6,3,0,1165,1166,5,57,0,0,1166,1167,5,135,0,0,1167,1168,5,175,0,0,1168,1173,3,6,3,0,1169,1170,5,57,0,0,1170,1171,5,54,0,0,1171,1173,3,6,3,0,1172,1151,1,0,0,0,1172,1153,1,0,0,0,1172,1156,1,0,0,0,1172,1159,1,0,0,0,1172,1162,1,0,0,0,1172,1165,1,0,0,0,1172,1169,1,0,0,0,1173,111,1,0,0,0,1174,1175,5,85,0,0,1175,1177,5,87,0,0,1176,1178,5,162,0,0,1177,1176,1,0,0,0,1177,1178,1,0,0,0,1178,1182,1,0,0,0,1179,1183,3,228,114,0,1180,1181,5,70,0,0,1181,1183,3,226,113,0,1182,1179,1,0,0,0,1182,1180,1,0,0,0,1183,1185,1,0,0,0,1184,1186,3,114,57,0,1185,1184,1,0,0,0,1185,1186,1,0,0,0,1186,1187,1,0,0,0,1187,1188,3,116,58,0,1188,113,1,0,0,0,1189,1190,5,219,0,0,1190,1195,3,222,111,0,1191,1192,5,208,0,0,1192,1194,3,222,111,0,1193,1191,1,0,0,0,1194,1197,1,0,0,0,1195,1193,1,0,0,0,1195,1196,1,0,0,0,1196,1198,1,0,0,0,1197,1195,1,0,0,0,1198,1199,5,229,0,0,1199,115,1,0,0,0,1200,1201,5,66,0,0,1201,1210,3,250,125,0,1202,1210,3,118,59,0,1203,1205,3,128,64,0,1204,1206,5,230,0,0,1205,1204,1,0,0,0,1205,1206,1,0,0,0,1206,1207,1,0,0,0,1207,1208,5,0,0,1,1208,1210,1,0,0,0,1209,1200,1,0,0,0,1209,1202,1,0,0,0,1209,1203,1,0,0,0,1210,117,1,0,0,0,1211,1212,5,185,0,0,1212,1214,5,219,0,0,1213,1215,3,240,120,0,1214,1213,1,0,0,0,1214,1215,1,0,0,0,1215,1216,1,0,0,0,1216,1225,5,229,0,0,1217,1218,5,208,0,0,1218,1220,5,219,0,0,1219,1221,3,240,120,0,1220,1219,1,0,0,0,1220,1221,1,0,0,0,1221,1222,1,0,0,0,1222,1224,5,229,0,0,1223,1217,1,0,0,0,1224,1227,1,0,0,0,1225,1223,1,0,0,0,1225,1226,1,0,0,0,1226,119,1,0,0,0,1227,1225,1,0,0,0,1228,1229,5,92,0,0,1229,1231,5,112,0,0,1230,1232,3,66,33,0,1231,1230,1,0,0,0,1231,1232,1,0,0,0,1232,1233,1,0,0,0,1233,1235,3,146,73,0,1234,1236,7,5,0,0,1235,1234,1,0,0,0,1235,1236,1,0,0,0,1236,121,1,0,0,0,1237,1238,5,120,0,0,1238,1239,5,162,0,0,1239,1241,3,228,114,0,1240,1242,3,66,33,0,1241,1240,1,0,0,0,1241,1242,1,0,0,0,1242,1244,1,0,0,0,1243,1245,3,24,12,0,1244,1243,1,0,0,0,1244,1245,1,0,0,0,1245,1247,1,0,0,0,1246,1248,5,61,0,0,1247,1246,1,0,0,0,1247,1248,1,0,0,0,1248,1250,1,0,0,0,1249,1251,5,37,0,0,1250,1249,1,0,0,0,1250,1251,1,0,0,0,1251,123,1,0,0,0,1252,1253,5,139,0,0,1253,1254,5,162,0,0,1254,1255,3,228,114,0,1255,1256,5,170,0,0,1256,1264,3,228,114,0,1257,1258,5,208,0,0,1258,1259,3,228,114,0,1259,1260,5,170,0,0,1260,1261,3,228,114,0,1261,1263,1,0,0,0,1262,1257,1,0,0,0,1263,1266,1,0,0,0,1264,1262,1,0,0,0,1264,1265,1,0,0,0,1265,1268,1,0,0,0,1266,1264,1,0,0,0,1267,1269,3,66,33,0,1268,1267,1,0,0,0,1268,1269,1,0,0,0,1269,125,1,0,0,0,1270,1272,5,219,0,0,1271,1273,3,134,67,0,1272,1271,1,0,0,0,1272,1273,1,0,0,0,1273,1274,1,0,0,0,1274,1275,5,149,0,0,1275,1277,3,210,105,0,1276,1278,3,148,74,0,1277,1276,1,0,0,0,1277,1278,1,0,0,0,1278,1280,1,0,0,0,1279,1281,3,154,77,0,1280,1279,1,0,0,0,1280,1281,1,0,0,0,1281,1282,1,0,0,0,1282,1283,5,229,0,0,1283,127,1,0,0,0,1284,1290,3,130,65,0,1285,1286,5,180,0,0,1286,1287,5,4,0,0,1287,1289,3,130,65,0,1288,1285,1,0,0,0,1289,1292,1,0,0,0,1290,1288,1,0,0,0,1290,1291,1,0,0,0,1291,129,1,0,0,0,1292,1290,1,0,0,0,1293,1299,3,132,66,0,1294,1295,5,219,0,0,1295,1296,3,128,64,0,1296,1297,5,229,0,0,1297,1299,1,0,0,0,1298,1293,1,0,0,0,1298,1294,1,0,0,0,1299,131,1,0,0,0,1300,1302,3,134,67,0,1301,1300,1,0,0,0,1301,1302,1,0,0,0,1302,1303,1,0,0,0,1303,1305,5,149,0,0,1304,1306,5,48,0,0,1305,1304,1,0,0,0,1305,1306,1,0,0,0,1306,1308,1,0,0,0,1307,1309,3,136,68,0,1308,1307,1,0,0,0,1308,1309,1,0,0,0,1309,1310,1,0,0,0,1310,1312,3,210,105,0,1311,1313,3,138,69,0,1312,1311,1,0,0,0,1312,1313,1,0,0,0,1313,1315,1,0,0,0,1314,1316,3,140,70,0,1315,1314,1,0,0,0,1315,1316,1,0,0,0,1316,1318,1,0,0,0,1317,1319,3,142,71,0,1318,1317,1,0,0,0,1318,1319,1,0,0,0,1319,1321,1,0,0,0,1320,1322,3,144,72,0,1321,1320,1,0,0,0,1321,1322,1,0,0,0,1322,1324,1,0,0,0,1323,1325,3,146,73,0,1324,1323,1,0,0,0,1324,1325,1,0,0,0,1325,1327,1,0,0,0,1326,1328,3,148,74,0,1327,1326,1,0,0,0,1327,1328,1,0,0,0,1328,1331,1,0,0,0,1329,1330,5,193,0,0,1330,1332,7,6,0,0,1331,1329,1,0,0,0,1331,1332,1,0,0,0,1332,1335,1,0,0,0,1333,1334,5,193,0,0,1334,1336,5,172,0,0,1335,1333,1,0,0,0,1335,1336,1,0,0,0,1336,1338,1,0,0,0,1337,1339,3,150,75,0,1338,1337,1,0,0,0,1338,1339,1,0,0,0,1339,1341,1,0,0,0,1340,1342,3,152,76,0,1341,1340,1,0,0,0,1341,1342,1,0,0,0,1342,1344,1,0,0,0,1343,1345,3,156,78,0,1344,1343,1,0,0,0,1344,1345,1,0,0,0,1345,1347,1,0,0,0,1346,1348,3,158,79,0,1347,1346,1,0,0,0,1347,1348,1,0,0,0,1348,1350,1,0,0,0,1349,1351,3,160,80,0,1350,1349,1,0,0,0,1350,1351,1,0,0,0,1351,133,1,0,0,0,1352,1353,5,193,0,0,1353,1354,3,210,105,0,1354,135,1,0,0,0,1355,1356,5,171,0,0,1356,1359,5,200,0,0,1357,1358,5,193,0,0,1358,1360,5,167,0,0,1359,1357,1,0,0,0,1359,1360,1,0,0,0,1360,137,1,0,0,0,1361,1362,5,68,0,0,1362,1363,3,162,81,0,1363,139,1,0,0,0,1364,1366,7,7,0,0,1365,1364,1,0,0,0,1365,1366,1,0,0,0,1366,1367,1,0,0,0,1367,1368,5,9,0,0,1368,1369,5,90,0,0,1369,1370,3,210,105,0,1370,141,1,0,0,0,1371,1372,5,192,0,0,1372,1373,3,250,125,0,1373,1374,5,10,0,0,1374,1375,5,219,0,0,1375,1376,3,184,92,0,1376,1377,5,229,0,0,1377,143,1,0,0,0,1378,1379,5,131,0,0,1379,1380,3,214,107,0,1380,145,1,0,0,0,1381,1382,5,191,0,0,1382,1383,3,214,107,0,1383,147,1,0,0,0,1384,1385,5,73,0,0,1385,1392,5,18,0,0,1386,1387,7,6,0,0,1387,1388,5,219,0,0,1388,1389,3,210,105,0,1389,1390,5,229,0,0,1390,1393,1,0,0,0,1391,1393,3,210,105,0,1392,1386,1,0,0,0,1392,1391,1,0,0,0,1393,149,1,0,0,0,1394,1395,5,74,0,0,1395,1396,3,214,107,0,1396,151,1,0,0,0,1397,1398,5,122,0,0,1398,1399,5,18,0,0,1399,1400,3,174,87,0,1400,153,1,0,0,0,1401,1402,5,122,0,0,1402,1403,5,18,0,0,1403,1404,3,210,105,0,1404,155,1,0,0,0,1405,1406,5,99,0,0,1406,1407,3,172,86,0,1407,1408,5,18,0,0,1408,1409,3,210,105,0,1409,157,1,0,0,0,1410,1411,5,99,0,0,1411,1414,3,172,86,0,1412,1413,5,193,0,0,1413,1415,5,167,0,0,1414,1412,1,0,0,0,1414,1415,1,0,0,0,1415,159,1,0,0,0,1416,1417,5,153,0,0,1417,1418,3,180,90,0,1418,161,1,0,0,0,1419,1420,6,81,-1,0,1420,1422,3,224,112,0,1421,1423,5,61,0,0,1422,1421,1,0,0,0,1422,1423,1,0,0,0,1423,1425,1,0,0,0,1424,1426,3,170,85,0,1425,1424,1,0,0,0,1425,1426,1,0,0,0,1426,1432,1,0,0,0,1427,1428,5,219,0,0,1428,1429,3,162,81,0,1429,1430,5,229,0,0,1430,1432,1,0,0,0,1431,1419,1,0,0,0,1431,1427,1,0,0,0,1432,1450,1,0,0,0,1433,1434,10,3,0,0,1434,1435,3,166,83,0,1435,1436,3,162,81,4,1436,1449,1,0,0,0,1437,1439,10,4,0,0,1438,1440,7,8,0,0,1439,1438,1,0,0,0,1439,1440,1,0,0,0,1440,1442,1,0,0,0,1441,1443,3,164,82,0,1442,1441,1,0,0,0,1442,1443,1,0,0,0,1443,1444,1,0,0,0,1444,1445,5,90,0,0,1445,1446,3,162,81,0,1446,1447,3,168,84,0,1447,1449,1,0,0,0,1448,1433,1,0,0,0,1448,1437,1,0,0,0,1449,1452,1,0,0,0,1450,1448,1,0,0,0,1450,1451,1,0,0,0,1451,163,1,0,0,0,1452,1450,1,0,0,0,1453,1455,7,9,0,0,1454,1453,1,0,0,0,1454,1455,1,0,0,0,1455,1456,1,0,0,0,1456,1463,5,84,0,0,1457,1459,5,84,0,0,1458,1460,7,9,0,0,1459,1458,1,0,0,0,1459,1460,1,0,0,0,1460,1463,1,0,0,0,1461,1463,7,9,0,0,1462,1454,1,0,0,0,1462,1457,1,0,0,0,1462,1461,1,0,0,0,1463,1497,1,0,0,0,1464,1466,7,10,0,0,1465,1464,1,0,0,0,1465,1466,1,0,0,0,1466,1467,1,0,0,0,1467,1469,7,11,0,0,1468,1470,5,123,0,0,1469,1468,1,0,0,0,1469,1470,1,0,0,0,1470,1479,1,0,0,0,1471,1473,7,11,0,0,1472,1474,5,123,0,0,1473,1472,1,0,0,0,1473,1474,1,0,0,0,1474,1476,1,0,0,0,1475,1477,7,10,0,0,1476,1475,1,0,0,0,1476,1477,1,0,0,0,1477,1479,1,0,0,0,1478,1465,1,0,0,0,1478,1471,1,0,0,0,1479,1497,1,0,0,0,1480,1482,7,12,0,0,1481,1480,1,0,0,0,1481,1482,1,0,0,0,1482,1483,1,0,0,0,1483,1485,5,69,0,0,1484,1486,5,123,0,0,1485,1484,1,0,0,0,1485,1486,1,0,0,0,1486,1495,1,0,0,0,1487,1489,5,69,0,0,1488,1490,5,123,0,0,1489,1488,1,0,0,0,1489,1490,1,0,0,0,1490,1492,1,0,0,0,1491,1493,7,12,0,0,1492,1491,1,0,0,0,1492,1493,1,0,0,0,1493,1495,1,0,0,0,1494,1481,1,0,0,0,1494,1487,1,0,0,0,1495,1497,1,0,0,0,1496,1462,1,0,0,0,1496,1478,1,0,0,0,1496,1494,1,0,0,0,1497,165,1,0,0,0,1498,1500,7,8,0,0,1499,1498,1,0,0,0,1499,1500,1,0,0,0,1500,1501,1,0,0,0,1501,1502,5,30,0,0,1502,1505,5,90,0,0,1503,1505,5,208,0,0,1504,1499,1,0,0,0,1504,1503,1,0,0,0,1505,167,1,0,0,0,1506,1507,5,119,0,0,1507,1516,3,210,105,0,1508,1509,5,183,0,0,1509,1510,5,219,0,0,1510,1511,3,210,105,0,1511,1512,5,229,0,0,1512,1516,1,0,0,0,1513,1514,5,183,0,0,1514,1516,3,210,105,0,1515,1506,1,0,0,0,1515,1508,1,0,0,0,1515,1513,1,0,0,0,1516,169,1,0,0,0,1517,1518,5,147,0,0,1518,1521,3,178,89,0,1519,1520,5,118,0,0,1520,1522,3,178,89,0,1521,1519,1,0,0,0,1521,1522,1,0,0,0,1522,171,1,0,0,0,1523,1526,3,214,107,0,1524,1525,7,13,0,0,1525,1527,3,214,107,0,1526,1524,1,0,0,0,1526,1527,1,0,0,0,1527,173,1,0,0,0,1528,1533,3,176,88,0,1529,1530,5,208,0,0,1530,1532,3,176,88,0,1531,1529,1,0,0,0,1532,1535,1,0,0,0,1533,1531,1,0,0,0,1533,1534,1,0,0,0,1534,175,1,0,0,0,1535,1533,1,0,0,0,1536,1538,3,214,107,0,1537,1539,7,14,0,0,1538,1537,1,0,0,0,1538,1539,1,0,0,0,1539,1542,1,0,0,0,1540,1541,5,117,0,0,1541,1543,7,15,0,0,1542,1540,1,0,0,0,1542,1543,1,0,0,0,1543,1546,1,0,0,0,1544,1545,5,25,0,0,1545,1547,5,202,0,0,1546,1544,1,0,0,0,1546,1547,1,0,0,0,1547,177,1,0,0,0,1548,1551,3,238,119,0,1549,1550,5,231,0,0,1550,1552,3,238,119,0,1551,1549,1,0,0,0,1551,1552,1,0,0,0,1552,179,1,0,0,0,1553,1558,3,182,91,0,1554,1555,5,208,0,0,1555,1557,3,182,91,0,1556,1554,1,0,0,0,1557,1560,1,0,0,0,1558,1556,1,0,0,0,1558,1559,1,0,0,0,1559,181,1,0,0,0,1560,1558,1,0,0,0,1561,1562,3,250,125,0,1562,1563,5,213,0,0,1563,1564,3,240,120,0,1564,183,1,0,0,0,1565,1567,3,186,93,0,1566,1565,1,0,0,0,1566,1567,1,0,0,0,1567,1569,1,0,0,0,1568,1570,3,188,94,0,1569,1568,1,0,0,0,1569,1570,1,0,0,0,1570,1572,1,0,0,0,1571,1573,3,190,95,0,1572,1571,1,0,0,0,1572,1573,1,0,0,0,1573,185,1,0,0,0,1574,1575,5,126,0,0,1575,1576,5,18,0,0,1576,1577,3,210,105,0,1577,187,1,0,0,0,1578,1579,5,122,0,0,1579,1580,5,18,0,0,1580,1581,3,174,87,0,1581,189,1,0,0,0,1582,1583,7,16,0,0,1583,1584,3,192,96,0,1584,191,1,0,0,0,1585,1592,3,194,97,0,1586,1587,5,16,0,0,1587,1588,3,194,97,0,1588,1589,5,6,0,0,1589,1590,3,194,97,0,1590,1592,1,0,0,0,1591,1585,1,0,0,0,1591,1586,1,0,0,0,1592,193,1,0,0,0,1593,1594,5,32,0,0,1594,1606,5,145,0,0,1595,1596,5,179,0,0,1596,1606,5,130,0,0,1597,1598,5,179,0,0,1598,1606,5,64,0,0,1599,1600,3,238,119,0,1600,1601,5,130,0,0,1601,1606,1,0,0,0,1602,1603,3,238,119,0,1603,1604,5,64,0,0,1604,1606,1,0,0,0,1605,1593,1,0,0,0,1605,1595,1,0,0,0,1605,1597,1,0,0,0,1605,1599,1,0,0,0,1605,1602,1,0,0,0,1606,195,1,0,0,0,1607,1608,5,152,0,0,1608,1609,3,180,90,0,1609,197,1,0,0,0,1610,1611,5,154,0,0,1611,1612,5,29,0,0,1612,1613,5,33,0,0,1613,1653,3,234,117,0,1614,1615,5,154,0,0,1615,1616,5,29,0,0,1616,1617,5,46,0,0,1617,1653,3,228,114,0,1618,1619,5,154,0,0,1619,1621,5,29,0,0,1620,1622,5,164,0,0,1621,1620,1,0,0,0,1621,1622,1,0,0,0,1622,1624,1,0,0,0,1623,1625,5,162,0,0,1624,1623,1,0,0,0,1624,1625,1,0,0,0,1625,1626,1,0,0,0,1626,1653,3,228,114,0,1627,1628,5,154,0,0,1628,1653,5,34,0,0,1629,1630,5,154,0,0,1630,1633,5,45,0,0,1631,1632,5,68,0,0,1632,1634,3,234,117,0,1633,1631,1,0,0,0,1633,1634,1,0,0,0,1634,1653,1,0,0,0,1635,1637,5,154,0,0,1636,1638,5,164,0,0,1637,1636,1,0,0,0,1637,1638,1,0,0,0,1638,1639,1,0,0,0,1639,1642,5,163,0,0,1640,1641,7,17,0,0,1641,1643,3,234,117,0,1642,1640,1,0,0,0,1642,1643,1,0,0,0,1643,1647,1,0,0,0,1644,1645,5,98,0,0,1645,1648,5,202,0,0,1646,1648,3,146,73,0,1647,1644,1,0,0,0,1647,1646,1,0,0,0,1647,1648,1,0,0,0,1648,1650,1,0,0,0,1649,1651,3,158,79,0,1650,1649,1,0,0,0,1650,1651,1,0,0,0,1651,1653,1,0,0,0,1652,1610,1,0,0,0,1652,1614,1,0,0,0,1652,1618,1,0,0,0,1652,1627,1,0,0,0,1652,1629,1,0,0,0,1652,1635,1,0,0,0,1653,199,1,0,0,0,1654,1655,5,161,0,0,1655,1656,5,63,0,0,1656,1657,5,49,0,0,1657,1689,3,228,114,0,1658,1659,5,161,0,0,1659,1660,5,63,0,0,1660,1689,5,102,0,0,1661,1662,5,161,0,0,1662,1663,5,137,0,0,1663,1689,5,45,0,0,1664,1665,5,161,0,0,1665,1666,5,137,0,0,1666,1667,5,46,0,0,1667,1689,3,228,114,0,1668,1669,5,161,0,0,1669,1677,7,18,0,0,1670,1671,5,49,0,0,1671,1678,5,151,0,0,1672,1678,5,60,0,0,1673,1675,5,177,0,0,1674,1673,1,0,0,0,1674,1675,1,0,0,0,1675,1676,1,0,0,0,1676,1678,5,106,0,0,1677,1670,1,0,0,0,1677,1672,1,0,0,0,1677,1674,1,0,0,0,1678,1679,1,0,0,0,1679,1689,3,228,114,0,1680,1681,5,161,0,0,1681,1682,7,18,0,0,1682,1683,5,142,0,0,1683,1689,5,151,0,0,1684,1685,5,161,0,0,1685,1686,5,159,0,0,1686,1687,5,141,0,0,1687,1689,3,228,114,0,1688,1654,1,0,0,0,1688,1658,1,0,0,0,1688,1661,1,0,0,0,1688,1664,1,0,0,0,1688,1668,1,0,0,0,1688,1680,1,0,0,0,1688,1684,1,0,0,0,1689,201,1,0,0,0,1690,1692,5,176,0,0,1691,1693,5,164,0,0,1692,1691,1,0,0,0,1692,1693,1,0,0,0,1693,1695,1,0,0,0,1694,1696,5,162,0,0,1695,1694,1,0,0,0,1695,1696,1,0,0,0,1696,1699,1,0,0,0,1697,1698,5,78,0,0,1698,1700,5,56,0,0,1699,1697,1,0,0,0,1699,1700,1,0,0,0,1700,1701,1,0,0,0,1701,1703,3,228,114,0,1702,1704,3,66,33,0,1703,1702,1,0,0,0,1703,1704,1,0,0,0,1704,203,1,0,0,0,1705,1706,5,182,0,0,1706,1707,3,234,117,0,1707,205,1,0,0,0,1708,1709,5,188,0,0,1709,1711,3,228,114,0,1710,1712,5,55,0,0,1711,1710,1,0,0,0,1711,1712,1,0,0,0,1712,1715,1,0,0,0,1713,1714,5,99,0,0,1714,1716,5,200,0,0,1715,1713,1,0,0,0,1715,1716,1,0,0,0,1716,207,1,0,0,0,1717,1765,3,250,125,0,1718,1719,3,250,125,0,1719,1720,5,219,0,0,1720,1721,3,250,125,0,1721,1728,3,208,104,0,1722,1723,5,208,0,0,1723,1724,3,250,125,0,1724,1725,3,208,104,0,1725,1727,1,0,0,0,1726,1722,1,0,0,0,1727,1730,1,0,0,0,1728,1726,1,0,0,0,1728,1729,1,0,0,0,1729,1731,1,0,0,0,1730,1728,1,0,0,0,1731,1732,5,229,0,0,1732,1765,1,0,0,0,1733,1734,3,250,125,0,1734,1735,5,219,0,0,1735,1740,3,254,127,0,1736,1737,5,208,0,0,1737,1739,3,254,127,0,1738,1736,1,0,0,0,1739,1742,1,0,0,0,1740,1738,1,0,0,0,1740,1741,1,0,0,0,1741,1743,1,0,0,0,1742,1740,1,0,0,0,1743,1744,5,229,0,0,1744,1765,1,0,0,0,1745,1746,3,250,125,0,1746,1747,5,219,0,0,1747,1752,3,208,104,0,1748,1749,5,208,0,0,1749,1751,3,208,104,0,1750,1748,1,0,0,0,1751,1754,1,0,0,0,1752,1750,1,0,0,0,1752,1753,1,0,0,0,1753,1755,1,0,0,0,1754,1752,1,0,0,0,1755,1756,5,229,0,0,1756,1765,1,0,0,0,1757,1758,3,250,125,0,1758,1760,5,219,0,0,1759,1761,3,210,105,0,1760,1759,1,0,0,0,1760,1761,1,0,0,0,1761,1762,1,0,0,0,1762,1763,5,229,0,0,1763,1765,1,0,0,0,1764,1717,1,0,0,0,1764,1718,1,0,0,0,1764,1733,1,0,0,0,1764,1745,1,0,0,0,1764,1757,1,0,0,0,1765,209,1,0,0,0,1766,1771,3,212,106,0,1767,1768,5,208,0,0,1768,1770,3,212,106,0,1769,1767,1,0,0,0,1770,1773,1,0,0,0,1771,1769,1,0,0,0,1771,1772,1,0,0,0,1772,211,1,0,0,0,1773,1771,1,0,0,0,1774,1775,3,228,114,0,1775,1776,5,211,0,0,1776,1778,1,0,0,0,1777,1774,1,0,0,0,1777,1778,1,0,0,0,1778,1779,1,0,0,0,1779,1786,5,204,0,0,1780,1781,5,219,0,0,1781,1782,3,128,64,0,1782,1783,5,229,0,0,1783,1786,1,0,0,0,1784,1786,3,214,107,0,1785,1777,1,0,0,0,1785,1780,1,0,0,0,1785,1784,1,0,0,0,1786,213,1,0,0,0,1787,1788,6,107,-1,0,1788,1790,5,19,0,0,1789,1791,3,214,107,0,1790,1789,1,0,0,0,1790,1791,1,0,0,0,1791,1797,1,0,0,0,1792,1793,5,190,0,0,1793,1794,3,214,107,0,1794,1795,5,166,0,0,1795,1796,3,214,107,0,1796,1798,1,0,0,0,1797,1792,1,0,0,0,1798,1799,1,0,0,0,1799,1797,1,0,0,0,1799,1800,1,0,0,0,1800,1803,1,0,0,0,1801,1802,5,51,0,0,1802,1804,3,214,107,0,1803,1801,1,0,0,0,1803,1804,1,0,0,0,1804,1805,1,0,0,0,1805,1806,5,52,0,0,1806,1917,1,0,0,0,1807,1808,5,20,0,0,1808,1809,5,219,0,0,1809,1810,3,214,107,0,1810,1811,5,10,0,0,1811,1812,3,208,104,0,1812,1813,5,229,0,0,1813,1917,1,0,0,0,1814,1815,5,35,0,0,1815,1917,5,202,0,0,1816,1817,5,59,0,0,1817,1818,5,219,0,0,1818,1819,3,242,121,0,1819,1820,5,68,0,0,1820,1821,3,214,107,0,1821,1822,5,229,0,0,1822,1917,1,0,0,0,1823,1824,5,86,0,0,1824,1825,3,214,107,0,1825,1826,3,242,121,0,1826,1917,1,0,0,0,1827,1828,5,158,0,0,1828,1829,5,219,0,0,1829,1830,3,214,107,0,1830,1831,5,68,0,0,1831,1834,3,214,107,0,1832,1833,5,65,0,0,1833,1835,3,214,107,0,1834,1832,1,0,0,0,1834,1835,1,0,0,0,1835,1836,1,0,0,0,1836,1837,5,229,0,0,1837,1917,1,0,0,0,1838,1839,5,169,0,0,1839,1917,5,202,0,0,1840,1841,5,174,0,0,1841,1842,5,219,0,0,1842,1843,7,19,0,0,1843,1844,5,202,0,0,1844,1845,5,68,0,0,1845,1846,3,214,107,0,1846,1847,5,229,0,0,1847,1917,1,0,0,0,1848,1849,3,250,125,0,1849,1851,5,219,0,0,1850,1852,3,210,105,0,1851,1850,1,0,0,0,1851,1852,1,0,0,0,1852,1853,1,0,0,0,1853,1854,5,229,0,0,1854,1855,1,0,0,0,1855,1856,5,125,0,0,1856,1857,5,219,0,0,1857,1858,3,184,92,0,1858,1859,5,229,0,0,1859,1917,1,0,0,0,1860,1861,3,250,125,0,1861,1863,5,219,0,0,1862,1864,3,210,105,0,1863,1862,1,0,0,0,1863,1864,1,0,0,0,1864,1865,1,0,0,0,1865,1866,5,229,0,0,1866,1867,1,0,0,0,1867,1868,5,125,0,0,1868,1869,3,250,125,0,1869,1917,1,0,0,0,1870,1876,3,250,125,0,1871,1873,5,219,0,0,1872,1874,3,210,105,0,1873,1872,1,0,0,0,1873,1874,1,0,0,0,1874,1875,1,0,0,0,1875,1877,5,229,0,0,1876,1871,1,0,0,0,1876,1877,1,0,0,0,1877,1878,1,0,0,0,1878,1880,5,219,0,0,1879,1881,5,48,0,0,1880,1879,1,0,0,0,1880,1881,1,0,0,0,1881,1883,1,0,0,0,1882,1884,3,216,108,0,1883,1882,1,0,0,0,1883,1884,1,0,0,0,1884,1885,1,0,0,0,1885,1886,5,229,0,0,1886,1917,1,0,0,0,1887,1917,3,240,120,0,1888,1889,5,210,0,0,1889,1917,3,214,107,17,1890,1891,5,115,0,0,1891,1917,3,214,107,12,1892,1893,3,228,114,0,1893,1894,5,211,0,0,1894,1896,1,0,0,0,1895,1892,1,0,0,0,1895,1896,1,0,0,0,1896,1897,1,0,0,0,1897,1917,5,204,0,0,1898,1899,5,219,0,0,1899,1900,3,128,64,0,1900,1901,5,229,0,0,1901,1917,1,0,0,0,1902,1903,5,219,0,0,1903,1904,3,214,107,0,1904,1905,5,229,0,0,1905,1917,1,0,0,0,1906,1907,5,219,0,0,1907,1908,3,210,105,0,1908,1909,5,229,0,0,1909,1917,1,0,0,0,1910,1912,5,217,0,0,1911,1913,3,210,105,0,1912,1911,1,0,0,0,1912,1913,1,0,0,0,1913,1914,1,0,0,0,1914,1917,5,228,0,0,1915,1917,3,222,111,0,1916,1787,1,0,0,0,1916,1807,1,0,0,0,1916,1814,1,0,0,0,1916,1816,1,0,0,0,1916,1823,1,0,0,0,1916,1827,1,0,0,0,1916,1838,1,0,0,0,1916,1840,1,0,0,0,1916,1848,1,0,0,0,1916,1860,1,0,0,0,1916,1870,1,0,0,0,1916,1887,1,0,0,0,1916,1888,1,0,0,0,1916,1890,1,0,0,0,1916,1895,1,0,0,0,1916,1898,1,0,0,0,1916,1902,1,0,0,0,1916,1906,1,0,0,0,1916,1910,1,0,0,0,1916,1915,1,0,0,0,1917,1989,1,0,0,0,1918,1919,10,16,0,0,1919,1920,7,20,0,0,1920,1988,3,214,107,17,1921,1922,10,15,0,0,1922,1923,7,21,0,0,1923,1988,3,214,107,16,1924,1943,10,14,0,0,1925,1944,5,212,0,0,1926,1944,5,213,0,0,1927,1944,5,221,0,0,1928,1944,5,218,0,0,1929,1944,5,214,0,0,1930,1944,5,220,0,0,1931,1944,5,215,0,0,1932,1934,5,71,0,0,1933,1932,1,0,0,0,1933,1934,1,0,0,0,1934,1936,1,0,0,0,1935,1937,5,115,0,0,1936,1935,1,0,0,0,1936,1937,1,0,0,0,1937,1938,1,0,0,0,1938,1944,5,80,0,0,1939,1941,5,115,0,0,1940,1939,1,0,0,0,1940,1941,1,0,0,0,1941,1942,1,0,0,0,1942,1944,7,22,0,0,1943,1925,1,0,0,0,1943,1926,1,0,0,0,1943,1927,1,0,0,0,1943,1928,1,0,0,0,1943,1929,1,0,0,0,1943,1930,1,0,0,0,1943,1931,1,0,0,0,1943,1933,1,0,0,0,1943,1940,1,0,0,0,1944,1945,1,0,0,0,1945,1988,3,214,107,15,1946,1947,10,11,0,0,1947,1948,5,6,0,0,1948,1988,3,214,107,12,1949,1950,10,10,0,0,1950,1951,5,121,0,0,1951,1988,3,214,107,11,1952,1954,10,9,0,0,1953,1955,5,115,0,0,1954,1953,1,0,0,0,1954,1955,1,0,0,0,1955,1956,1,0,0,0,1956,1957,5,16,0,0,1957,1958,3,214,107,0,1958,1959,5,6,0,0,1959,1960,3,214,107,10,1960,1988,1,0,0,0,1961,1962,10,8,0,0,1962,1963,5,224,0,0,1963,1964,3,214,107,0,1964,1965,5,207,0,0,1965,1966,3,214,107,8,1966,1988,1,0,0,0,1967,1968,10,19,0,0,1968,1969,5,217,0,0,1969,1970,3,214,107,0,1970,1971,5,228,0,0,1971,1988,1,0,0,0,1972,1973,10,18,0,0,1973,1974,5,211,0,0,1974,1988,5,200,0,0,1975,1976,10,13,0,0,1976,1978,5,88,0,0,1977,1979,5,115,0,0,1978,1977,1,0,0,0,1978,1979,1,0,0,0,1979,1980,1,0,0,0,1980,1988,5,116,0,0,1981,1985,10,7,0,0,1982,1986,3,248,124,0,1983,1984,5,10,0,0,1984,1986,3,250,125,0,1985,1982,1,0,0,0,1985,1983,1,0,0,0,1986,1988,1,0,0,0,1987,1918,1,0,0,0,1987,1921,1,0,0,0,1987,1924,1,0,0,0,1987,1946,1,0,0,0,1987,1949,1,0,0,0,1987,1952,1,0,0,0,1987,1961,1,0,0,0,1987,1967,1,0,0,0,1987,1972,1,0,0,0,1987,1975,1,0,0,0,1987,1981,1,0,0,0,1988,1991,1,0,0,0,1989,1987,1,0,0,0,1989,1990,1,0,0,0,1990,215,1,0,0,0,1991,1989,1,0,0,0,1992,1997,3,218,109,0,1993,1994,5,208,0,0,1994,1996,3,218,109,0,1995,1993,1,0,0,0,1996,1999,1,0,0,0,1997,1995,1,0,0,0,1997,1998,1,0,0,0,1998,217,1,0,0,0,1999,1997,1,0,0,0,2e3,2003,3,220,110,0,2001,2003,3,214,107,0,2002,2e3,1,0,0,0,2002,2001,1,0,0,0,2003,219,1,0,0,0,2004,2005,5,219,0,0,2005,2010,3,250,125,0,2006,2007,5,208,0,0,2007,2009,3,250,125,0,2008,2006,1,0,0,0,2009,2012,1,0,0,0,2010,2008,1,0,0,0,2010,2011,1,0,0,0,2011,2013,1,0,0,0,2012,2010,1,0,0,0,2013,2014,5,229,0,0,2014,2024,1,0,0,0,2015,2020,3,250,125,0,2016,2017,5,208,0,0,2017,2019,3,250,125,0,2018,2016,1,0,0,0,2019,2022,1,0,0,0,2020,2018,1,0,0,0,2020,2021,1,0,0,0,2021,2024,1,0,0,0,2022,2020,1,0,0,0,2023,2004,1,0,0,0,2023,2015,1,0,0,0,2024,2025,1,0,0,0,2025,2026,5,203,0,0,2026,2027,3,214,107,0,2027,221,1,0,0,0,2028,2029,3,228,114,0,2029,2030,5,211,0,0,2030,2032,1,0,0,0,2031,2028,1,0,0,0,2031,2032,1,0,0,0,2032,2033,1,0,0,0,2033,2036,3,250,125,0,2034,2035,5,211,0,0,2035,2037,3,250,125,0,2036,2034,1,0,0,0,2036,2037,1,0,0,0,2037,223,1,0,0,0,2038,2039,6,112,-1,0,2039,2046,3,228,114,0,2040,2046,3,226,113,0,2041,2042,5,219,0,0,2042,2043,3,128,64,0,2043,2044,5,229,0,0,2044,2046,1,0,0,0,2045,2038,1,0,0,0,2045,2040,1,0,0,0,2045,2041,1,0,0,0,2046,2055,1,0,0,0,2047,2051,10,1,0,0,2048,2052,3,248,124,0,2049,2050,5,10,0,0,2050,2052,3,250,125,0,2051,2048,1,0,0,0,2051,2049,1,0,0,0,2052,2054,1,0,0,0,2053,2047,1,0,0,0,2054,2057,1,0,0,0,2055,2053,1,0,0,0,2055,2056,1,0,0,0,2056,225,1,0,0,0,2057,2055,1,0,0,0,2058,2059,3,250,125,0,2059,2061,5,219,0,0,2060,2062,3,230,115,0,2061,2060,1,0,0,0,2061,2062,1,0,0,0,2062,2063,1,0,0,0,2063,2064,5,229,0,0,2064,227,1,0,0,0,2065,2066,3,234,117,0,2066,2067,5,211,0,0,2067,2069,1,0,0,0,2068,2065,1,0,0,0,2068,2069,1,0,0,0,2069,2070,1,0,0,0,2070,2071,3,250,125,0,2071,229,1,0,0,0,2072,2077,3,232,116,0,2073,2074,5,208,0,0,2074,2076,3,232,116,0,2075,2073,1,0,0,0,2076,2079,1,0,0,0,2077,2075,1,0,0,0,2077,2078,1,0,0,0,2078,231,1,0,0,0,2079,2077,1,0,0,0,2080,2084,3,222,111,0,2081,2084,3,226,113,0,2082,2084,3,240,120,0,2083,2080,1,0,0,0,2083,2081,1,0,0,0,2083,2082,1,0,0,0,2084,233,1,0,0,0,2085,2086,3,250,125,0,2086,235,1,0,0,0,2087,2096,5,198,0,0,2088,2089,5,211,0,0,2089,2096,7,23,0,0,2090,2091,5,200,0,0,2091,2093,5,211,0,0,2092,2094,7,23,0,0,2093,2092,1,0,0,0,2093,2094,1,0,0,0,2094,2096,1,0,0,0,2095,2087,1,0,0,0,2095,2088,1,0,0,0,2095,2090,1,0,0,0,2096,237,1,0,0,0,2097,2099,7,24,0,0,2098,2097,1,0,0,0,2098,2099,1,0,0,0,2099,2106,1,0,0,0,2100,2107,3,236,118,0,2101,2107,5,199,0,0,2102,2107,5,200,0,0,2103,2107,5,201,0,0,2104,2107,5,82,0,0,2105,2107,5,113,0,0,2106,2100,1,0,0,0,2106,2101,1,0,0,0,2106,2102,1,0,0,0,2106,2103,1,0,0,0,2106,2104,1,0,0,0,2106,2105,1,0,0,0,2107,239,1,0,0,0,2108,2112,3,238,119,0,2109,2112,5,202,0,0,2110,2112,5,116,0,0,2111,2108,1,0,0,0,2111,2109,1,0,0,0,2111,2110,1,0,0,0,2112,241,1,0,0,0,2113,2114,7,25,0,0,2114,243,1,0,0,0,2115,2116,7,26,0,0,2116,245,1,0,0,0,2117,2118,7,27,0,0,2118,247,1,0,0,0,2119,2122,5,197,0,0,2120,2122,3,246,123,0,2121,2119,1,0,0,0,2121,2120,1,0,0,0,2122,249,1,0,0,0,2123,2127,5,197,0,0,2124,2127,3,242,121,0,2125,2127,3,244,122,0,2126,2123,1,0,0,0,2126,2124,1,0,0,0,2126,2125,1,0,0,0,2127,251,1,0,0,0,2128,2131,3,250,125,0,2129,2131,5,116,0,0,2130,2128,1,0,0,0,2130,2129,1,0,0,0,2131,253,1,0,0,0,2132,2133,5,202,0,0,2133,2134,5,213,0,0,2134,2135,3,238,119,0,2135,255,1,0,0,0,280,257,263,269,275,279,282,285,307,310,318,323,336,345,352,360,365,372,377,384,389,395,401,406,412,417,423,428,434,448,455,462,469,475,480,486,491,497,506,516,526,546,554,569,576,590,596,602,608,611,617,620,623,629,633,636,639,642,645,652,656,664,667,673,677,680,691,695,698,703,705,708,711,721,725,728,731,736,738,745,751,755,758,761,771,779,805,807,811,833,835,846,849,858,875,886,904,917,934,943,970,972,993,998,1003,1006,1018,1023,1027,1030,1034,1038,1043,1046,1050,1052,1074,1082,1085,1095,1099,1107,1111,1116,1120,1124,1128,1132,1134,1142,1146,1149,1172,1177,1182,1185,1195,1205,1209,1214,1220,1225,1231,1235,1241,1244,1247,1250,1264,1268,1272,1277,1280,1290,1298,1301,1305,1308,1312,1315,1318,1321,1324,1327,1331,1335,1338,1341,1344,1347,1350,1359,1365,1392,1414,1422,1425,1431,1439,1442,1448,1450,1454,1459,1462,1465,1469,1473,1476,1478,1481,1485,1489,1492,1494,1496,1499,1504,1515,1521,1526,1533,1538,1542,1546,1551,1558,1566,1569,1572,1591,1605,1621,1624,1633,1637,1642,1647,1650,1652,1674,1677,1688,1692,1695,1699,1703,1711,1715,1728,1740,1752,1760,1764,1771,1777,1785,1790,1799,1803,1834,1851,1863,1873,1876,1880,1883,1895,1912,1916,1933,1936,1940,1943,1954,1978,1985,1987,1989,1997,2002,2010,2020,2023,2031,2036,2045,2051,2055,2061,2068,2077,2083,2093,2095,2098,2106,2111,2121,2126,2130],Zi.vocabulary=new Ra(Zi.literalNames,Zi.symbolicNames,[]),Zi.decisionsToDFA=Zi._ATN.decisionToState.map(((t,e)=>new ni(t,e))),Zi),_G=class extends ga{constructor(t,e){super(t,e)}EOF(){return this.getToken(CG.EOF,0)}statements(){return this.getRuleContext(0,PG)}get ruleIndex(){return CG.RULE_root}accept(t){return t.visitRoot?t.visitRoot(this):t.visitChildren(this)}},PG=class t extends ga{constructor(t,e){super(t,e)}statement(){return this.getRuleContext(0,MG)}SEMICOLON(){return this.getToken(CG.SEMICOLON,0)}statements(){return this.getRuleContext(0,t)}get ruleIndex(){return CG.RULE_statements}accept(t){return t.visitStatements?t.visitStatements(this):t.visitChildren(this)}},MG=class extends ga{constructor(t,e){super(t,e)}notInsertStatement(){return this.getRuleContext(0,dG)}INTO(){return this.getToken(CG.INTO,0)}OUTFILE(){return this.getToken(CG.OUTFILE,0)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}FORMAT(){return this.getToken(CG.FORMAT,0)}identifierOrNull(){return this.getRuleContext(0,by)}SEMICOLON(){return this.getToken(CG.SEMICOLON,0)}insertStatement(){return this.getRuleContext(0,uv)}get ruleIndex(){return CG.RULE_statement}accept(t){return t.visitStatement?t.visitStatement(this):t.visitChildren(this)}},dG=class extends ga{constructor(t,e){super(t,e)}alterStatement(){return this.getRuleContext(0,pG)}attachStatement(){return this.getRuleContext(0,TF)}checkStatement(){return this.getRuleContext(0,RF)}createStatement(){return this.getRuleContext(0,LF)}describeStatement(){return this.getRuleContext(0,av)}deleteStatement(){return this.getRuleContext(0,AF)}dropStatement(){return this.getRuleContext(0,rv)}existsStatement(){return this.getRuleContext(0,nv)}explainStatement(){return this.getRuleContext(0,Tv)}killStatement(){return this.getRuleContext(0,dv)}optimizeStatement(){return this.getRuleContext(0,mv)}renameStatement(){return this.getRuleContext(0,Dv)}selectUnionStatement(){return this.getRuleContext(0,gv)}setStatement(){return this.getRuleContext(0,NB)}showStatement(){return this.getRuleContext(0,LB)}systemStatement(){return this.getRuleContext(0,mB)}truncateStatement(){return this.getRuleContext(0,DB)}useStatement(){return this.getRuleContext(0,pB)}watchStatement(){return this.getRuleContext(0,gB)}selectStatement(){return this.getRuleContext(0,kv)}commonTableExpressionStatement(){return this.getRuleContext(0,UG)}get ruleIndex(){return CG.RULE_notInsertStatement}accept(t){return t.visitNotInsertStatement?t.visitNotInsertStatement(this):t.visitChildren(this)}},UG=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(CG.WITH,0)}namedQuery(t){return void 0===t?this.getRuleContexts(mG):this.getRuleContext(t,mG)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}get ruleIndex(){return CG.RULE_commonTableExpressionStatement}accept(t){return t.visitCommonTableExpressionStatement?t.visitCommonTableExpressionStatement(this):t.visitChildren(this)}},mG=class extends ga{constructor(t,e){super(t,e)}AS(){return this.getToken(CG.AS,0)}LPAREN(){return this.getToken(CG.LPAREN,0)}notInsertStatement(){return this.getRuleContext(0,dG)}RPAREN(){return this.getToken(CG.RPAREN,0)}identifier(){return this.getRuleContext(0,wy)}columnAliases(){return this.getRuleContext(0,DG)}get ruleIndex(){return CG.RULE_namedQuery}accept(t){return t.visitNamedQuery?t.visitNamedQuery(this):t.visitChildren(this)}},DG=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(CG.LPAREN,0)}identifier(t){return void 0===t?this.getRuleContexts(wy):this.getRuleContext(t,wy)}RPAREN(){return this.getToken(CG.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}get ruleIndex(){return CG.RULE_columnAliases}accept(t){return t.visitColumnAliases?t.visitColumnAliases(this):t.visitChildren(this)}},pG=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_alterStatement}copyFrom(t){super.copyFrom(t)}},gG=class extends pG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ALTER(){return this.getToken(CG.ALTER,0)}TABLE(){return this.getToken(CG.TABLE,0)}tableIdentifier(){return this.getRuleContext(0,gy)}alterTableClause(t){return void 0===t?this.getRuleContexts(xG):this.getRuleContext(t,xG)}clusterClause(){return this.getRuleContext(0,xF)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}accept(t){return t.visitAlterTableStatement?t.visitAlterTableStatement(this):t.visitChildren(this)}},xG=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_alterTableClause}copyFrom(t){super.copyFrom(t)}},kG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REPLACE(){return this.getToken(CG.REPLACE,0)}partitionClause(){return this.getRuleContext(0,EF)}FROM(){return this.getToken(CG.FROM,0)}tableIdentifier(){return this.getRuleContext(0,gy)}accept(t){return t.visitAlterTableClauseReplace?t.visitAlterTableClauseReplace(this):t.visitChildren(this)}},HG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MODIFY(){return this.getToken(CG.MODIFY,0)}ORDER(){return this.getToken(CG.ORDER,0)}BY(){return this.getToken(CG.BY,0)}columnExpression(){return this.getRuleContext(0,bB)}accept(t){return t.visitAlterTableClauseModifyOrderBy?t.visitAlterTableClauseModifyOrderBy(this):t.visitChildren(this)}},GG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}UPDATE(){return this.getToken(CG.UPDATE,0)}assignmentExpressionList(){return this.getRuleContext(0,cF)}whereClause(){return this.getRuleContext(0,fv)}accept(t){return t.visitAlterTableClauseUpdate?t.visitAlterTableClauseUpdate(this):t.visitChildren(this)}},FG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CLEAR(){return this.getToken(CG.CLEAR,0)}PROJECTION(){return this.getToken(CG.PROJECTION,0)}columnIdentifier(){return this.getRuleContext(0,Py)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}IN(){return this.getToken(CG.IN,0)}partitionClause(){return this.getRuleContext(0,EF)}accept(t){return t.visitAlterTableClauseClearProjection?t.visitAlterTableClauseClearProjection(this):t.visitChildren(this)}},vG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MODIFY(){return this.getToken(CG.MODIFY,0)}COLUMN(){return this.getToken(CG.COLUMN,0)}columnIdentifier(){return this.getRuleContext(0,Py)}REMOVE(){return this.getToken(CG.REMOVE,0)}tableColumnPropertyType(){return this.getRuleContext(0,hF)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}accept(t){return t.visitAlterTableClauseModifyRemove?t.visitAlterTableClauseModifyRemove(this):t.visitChildren(this)}},BG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DELETE(){return this.getToken(CG.DELETE,0)}WHERE(){return this.getToken(CG.WHERE,0)}columnExpression(){return this.getRuleContext(0,bB)}accept(t){return t.visitAlterTableClauseDelete?t.visitAlterTableClauseDelete(this):t.visitChildren(this)}},yG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}COMMENT(){return this.getToken(CG.COMMENT,0)}COLUMN(){return this.getToken(CG.COLUMN,0)}columnIdentifier(){return this.getRuleContext(0,Py)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}accept(t){return t.visitAlterTableClauseComment?t.visitAlterTableClauseComment(this):t.visitChildren(this)}},fG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DROP(){return this.getToken(CG.DROP,0)}COLUMN(){return this.getToken(CG.COLUMN,0)}columnIdentifier(){return this.getRuleContext(0,Py)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}accept(t){return t.visitAlterTableClauseDropColumn?t.visitAlterTableClauseDropColumn(this):t.visitChildren(this)}},YG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DETACH(){return this.getToken(CG.DETACH,0)}partitionClause(){return this.getRuleContext(0,EF)}accept(t){return t.visitAlterTableClauseDetach?t.visitAlterTableClauseDetach(this):t.visitChildren(this)}},wG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ADD(){return this.getToken(CG.ADD,0)}INDEX(){return this.getToken(CG.INDEX,0)}tableIndexDefinition(){return this.getRuleContext(0,zF)}IF(){return this.getToken(CG.IF,0)}NOT(){return this.getToken(CG.NOT,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}AFTER(){return this.getToken(CG.AFTER,0)}columnIdentifier(){return this.getRuleContext(0,Py)}accept(t){return t.visitAlterTableClauseAddIndex?t.visitAlterTableClauseAddIndex(this):t.visitChildren(this)}},bG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DROP(){return this.getToken(CG.DROP,0)}partitionClause(){return this.getRuleContext(0,EF)}accept(t){return t.visitAlterTableClauseDropPartition?t.visitAlterTableClauseDropPartition(this):t.visitChildren(this)}},WG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MATERIALIZE(){return this.getToken(CG.MATERIALIZE,0)}INDEX(){return this.getToken(CG.INDEX,0)}columnIdentifier(){return this.getRuleContext(0,Py)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}IN(){return this.getToken(CG.IN,0)}partitionClause(){return this.getRuleContext(0,EF)}accept(t){return t.visitAlterTableClauseMaterializeIndex?t.visitAlterTableClauseMaterializeIndex(this):t.visitChildren(this)}},VG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MATERIALIZE(){return this.getToken(CG.MATERIALIZE,0)}PROJECTION(){return this.getToken(CG.PROJECTION,0)}columnIdentifier(){return this.getRuleContext(0,Py)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}IN(){return this.getToken(CG.IN,0)}partitionClause(){return this.getRuleContext(0,EF)}accept(t){return t.visitAlterTableClauseMaterializeProjection?t.visitAlterTableClauseMaterializeProjection(this):t.visitChildren(this)}},XG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MOVE(){return this.getToken(CG.MOVE,0)}partitionClause(){return this.getRuleContext(0,EF)}TO(){return this.getToken(CG.TO,0)}DISK(){return this.getToken(CG.DISK,0)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}VOLUME(){return this.getToken(CG.VOLUME,0)}TABLE(){return this.getToken(CG.TABLE,0)}tableIdentifier(){return this.getRuleContext(0,gy)}accept(t){return t.visitAlterTableClauseMovePartition?t.visitAlterTableClauseMovePartition(this):t.visitChildren(this)}},KG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}RENAME(){return this.getToken(CG.RENAME,0)}COLUMN(){return this.getToken(CG.COLUMN,0)}columnIdentifier(t){return void 0===t?this.getRuleContexts(Py):this.getRuleContext(t,Py)}TO(){return this.getToken(CG.TO,0)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}accept(t){return t.visitAlterTableClauseRename?t.visitAlterTableClauseRename(this):t.visitChildren(this)}},QG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}FREEZE(){return this.getToken(CG.FREEZE,0)}partitionClause(){return this.getRuleContext(0,EF)}accept(t){return t.visitAlterTableClauseFreezePartition?t.visitAlterTableClauseFreezePartition(this):t.visitChildren(this)}},JG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CLEAR(){return this.getToken(CG.CLEAR,0)}COLUMN(){return this.getToken(CG.COLUMN,0)}columnIdentifier(){return this.getRuleContext(0,Py)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}IN(){return this.getToken(CG.IN,0)}partitionClause(){return this.getRuleContext(0,EF)}accept(t){return t.visitAlterTableClauseClearColumn?t.visitAlterTableClauseClearColumn(this):t.visitChildren(this)}},ZG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MODIFY(){return this.getToken(CG.MODIFY,0)}COLUMN(){return this.getToken(CG.COLUMN,0)}tableColumnDefinition(){return this.getRuleContext(0,qF)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}accept(t){return t.visitAlterTableClauseModify?t.visitAlterTableClauseModify(this):t.visitChildren(this)}},qG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CLEAR(){return this.getToken(CG.CLEAR,0)}INDEX(){return this.getToken(CG.INDEX,0)}columnIdentifier(){return this.getRuleContext(0,Py)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}IN(){return this.getToken(CG.IN,0)}partitionClause(){return this.getRuleContext(0,EF)}accept(t){return t.visitAlterTableClauseClearIndex?t.visitAlterTableClauseClearIndex(this):t.visitChildren(this)}},jG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}REMOVE(){return this.getToken(CG.REMOVE,0)}TTL(){return this.getToken(CG.TTL,0)}accept(t){return t.visitAlterTableClauseRemoveTTL?t.visitAlterTableClauseRemoveTTL(this):t.visitChildren(this)}},zG=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MODIFY(){return this.getToken(CG.MODIFY,0)}COLUMN(){return this.getToken(CG.COLUMN,0)}columnIdentifier(){return this.getRuleContext(0,Py)}codecExpression(){return this.getRuleContext(0,tv)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}accept(t){return t.visitAlterTableClauseModifyCodec?t.visitAlterTableClauseModifyCodec(this):t.visitChildren(this)}},$G=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ATTACH(){return this.getToken(CG.ATTACH,0)}partitionClause(){return this.getRuleContext(0,EF)}FROM(){return this.getToken(CG.FROM,0)}tableIdentifier(){return this.getRuleContext(0,gy)}accept(t){return t.visitAlterTableClauseAttach?t.visitAlterTableClauseAttach(this):t.visitChildren(this)}},tF=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DROP(){return this.getToken(CG.DROP,0)}PROJECTION(){return this.getToken(CG.PROJECTION,0)}columnIdentifier(){return this.getRuleContext(0,Py)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}accept(t){return t.visitAlterTableClauseDropProjection?t.visitAlterTableClauseDropProjection(this):t.visitChildren(this)}},eF=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DROP(){return this.getToken(CG.DROP,0)}INDEX(){return this.getToken(CG.INDEX,0)}columnIdentifier(){return this.getRuleContext(0,Py)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}accept(t){return t.visitAlterTableClauseDropIndex?t.visitAlterTableClauseDropIndex(this):t.visitChildren(this)}},sF=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MODIFY(){return this.getToken(CG.MODIFY,0)}COLUMN(){return this.getToken(CG.COLUMN,0)}columnIdentifier(){return this.getRuleContext(0,Py)}COMMENT(){return this.getToken(CG.COMMENT,0)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}accept(t){return t.visitAlterTableClauseModifyComment?t.visitAlterTableClauseModifyComment(this):t.visitChildren(this)}},aF=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}MODIFY(){return this.getToken(CG.MODIFY,0)}ttlClause(){return this.getRuleContext(0,WF)}accept(t){return t.visitAlterTableClauseModifyTTL?t.visitAlterTableClauseModifyTTL(this):t.visitChildren(this)}},rF=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ADD(){return this.getToken(CG.ADD,0)}PROJECTION(){return this.getToken(CG.PROJECTION,0)}tableProjectionDefinition(){return this.getRuleContext(0,$F)}IF(){return this.getToken(CG.IF,0)}NOT(){return this.getToken(CG.NOT,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}AFTER(){return this.getToken(CG.AFTER,0)}columnIdentifier(){return this.getRuleContext(0,Py)}accept(t){return t.visitAlterTableClauseAddProjection?t.visitAlterTableClauseAddProjection(this):t.visitChildren(this)}},iF=class extends xG{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ADD(){return this.getToken(CG.ADD,0)}COLUMN(){return this.getToken(CG.COLUMN,0)}tableColumnDefinition(){return this.getRuleContext(0,qF)}IF(){return this.getToken(CG.IF,0)}NOT(){return this.getToken(CG.NOT,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}AFTER(){return this.getToken(CG.AFTER,0)}columnIdentifier(){return this.getRuleContext(0,Py)}accept(t){return t.visitAlterTableClauseAddColumn?t.visitAlterTableClauseAddColumn(this):t.visitChildren(this)}},cF=class extends ga{constructor(t,e){super(t,e)}assignmentExpression(t){return void 0===t?this.getRuleContexts(nF):this.getRuleContext(t,nF)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}get ruleIndex(){return CG.RULE_assignmentExpressionList}accept(t){return t.visitAssignmentExpressionList?t.visitAssignmentExpressionList(this):t.visitChildren(this)}},nF=class extends ga{constructor(t,e){super(t,e)}columnIdentifier(){return this.getRuleContext(0,Py)}EQ_SINGLE(){return this.getToken(CG.EQ_SINGLE,0)}columnExpression(){return this.getRuleContext(0,bB)}get ruleIndex(){return CG.RULE_assignmentExpression}accept(t){return t.visitAssignmentExpression?t.visitAssignmentExpression(this):t.visitChildren(this)}},hF=class extends ga{constructor(t,e){super(t,e)}ALIAS(){return this.getToken(CG.ALIAS,0)}CODEC(){return this.getToken(CG.CODEC,0)}COMMENT(){return this.getToken(CG.COMMENT,0)}DEFAULT(){return this.getToken(CG.DEFAULT,0)}MATERIALIZED(){return this.getToken(CG.MATERIALIZED,0)}TTL(){return this.getToken(CG.TTL,0)}get ruleIndex(){return CG.RULE_tableColumnPropertyType}accept(t){return t.visitTableColumnPropertyType?t.visitTableColumnPropertyType(this):t.visitChildren(this)}},EF=class extends ga{constructor(t,e){super(t,e)}PARTITION(){return this.getToken(CG.PARTITION,0)}columnExpression(){return this.getRuleContext(0,bB)}ID(){return this.getToken(CG.ID,0)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}get ruleIndex(){return CG.RULE_partitionClause}accept(t){return t.visitPartitionClause?t.visitPartitionClause(this):t.visitChildren(this)}},TF=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_attachStatement}copyFrom(t){super.copyFrom(t)}},oF=class extends TF{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ATTACH(){return this.getToken(CG.ATTACH,0)}DICTIONARY(){return this.getToken(CG.DICTIONARY,0)}tableIdentifier(){return this.getRuleContext(0,gy)}clusterClause(){return this.getRuleContext(0,xF)}accept(t){return t.visitAttachDictionaryStatement?t.visitAttachDictionaryStatement(this):t.visitChildren(this)}},RF=class extends ga{constructor(t,e){super(t,e)}CHECK(){return this.getToken(CG.CHECK,0)}TABLE(){return this.getToken(CG.TABLE,0)}tableIdentifier(){return this.getRuleContext(0,gy)}partitionClause(){return this.getRuleContext(0,EF)}get ruleIndex(){return CG.RULE_checkStatement}accept(t){return t.visitCheckStatement?t.visitCheckStatement(this):t.visitChildren(this)}},AF=class extends ga{constructor(t,e){super(t,e)}DELETE(){return this.getToken(CG.DELETE,0)}FROM(){return this.getToken(CG.FROM,0)}tableIdentifier(){return this.getRuleContext(0,gy)}clusterClause(){return this.getRuleContext(0,xF)}whereClause(){return this.getRuleContext(0,fv)}get ruleIndex(){return CG.RULE_deleteStatement}accept(t){return t.visitDeleteStatement?t.visitDeleteStatement(this):t.visitChildren(this)}},SF=class extends ga{constructor(t,e){super(t,e)}TABLE(){return this.getToken(CG.TABLE,0)}tableIdentifier(){return this.getRuleContext(0,gy)}ATTACH(){return this.getToken(CG.ATTACH,0)}CREATE(){return this.getToken(CG.CREATE,0)}REPLACE(){return this.getToken(CG.REPLACE,0)}TEMPORARY(){return this.getToken(CG.TEMPORARY,0)}IF(){return this.getToken(CG.IF,0)}NOT(){return this.getToken(CG.NOT,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}uuidClause(){return this.getRuleContext(0,kF)}clusterClause(){return this.getRuleContext(0,xF)}tableSchemaClause(){return this.getRuleContext(0,FF)}engineClause(){return this.getRuleContext(0,fF)}subqueryClause(){return this.getRuleContext(0,GF)}OR(){return this.getToken(CG.OR,0)}get ruleIndex(){return CG.RULE_createTableStatement}accept(t){return t.visitCreateTableStatement?t.visitCreateTableStatement(this):t.visitChildren(this)}},lF=class extends ga{constructor(t,e){super(t,e)}DATABASE(){return this.getToken(CG.DATABASE,0)}identifier(){return this.getRuleContext(0,wy)}engineExpression(){return this.getRuleContext(0,VF)}ATTACH(){return this.getToken(CG.ATTACH,0)}CREATE(){return this.getToken(CG.CREATE,0)}IF(){return this.getToken(CG.IF,0)}NOT(){return this.getToken(CG.NOT,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}clusterClause(){return this.getRuleContext(0,xF)}get ruleIndex(){return CG.RULE_createDatabaseStatement}accept(t){return t.visitCreateDatabaseStatement?t.visitCreateDatabaseStatement(this):t.visitChildren(this)}},OF=class extends ga{constructor(t,e){super(t,e)}DICTIONARY(){return this.getToken(CG.DICTIONARY,0)}tableIdentifier(){return this.getRuleContext(0,gy)}dictionarySchemaClause(){return this.getRuleContext(0,CF)}dictionaryEngineClause(){return this.getRuleContext(0,PF)}ATTACH(){return this.getToken(CG.ATTACH,0)}CREATE(){return this.getToken(CG.CREATE,0)}REPLACE(){return this.getToken(CG.REPLACE,0)}IF(){return this.getToken(CG.IF,0)}NOT(){return this.getToken(CG.NOT,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}uuidClause(){return this.getRuleContext(0,kF)}clusterClause(){return this.getRuleContext(0,xF)}OR(){return this.getToken(CG.OR,0)}get ruleIndex(){return CG.RULE_createDictionaryStatement}accept(t){return t.visitCreateDictionaryStatement?t.visitCreateDictionaryStatement(this):t.visitChildren(this)}},IF=class extends ga{constructor(t,e){super(t,e)}LIVE(){return this.getToken(CG.LIVE,0)}VIEW(){return this.getToken(CG.VIEW,0)}tableIdentifier(){return this.getRuleContext(0,gy)}subqueryClause(){return this.getRuleContext(0,GF)}ATTACH(){return this.getToken(CG.ATTACH,0)}CREATE(){return this.getToken(CG.CREATE,0)}IF(){return this.getToken(CG.IF,0)}NOT(){return this.getToken(CG.NOT,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}uuidClause(){return this.getRuleContext(0,kF)}clusterClause(){return this.getRuleContext(0,xF)}WITH(){return this.getToken(CG.WITH,0)}TIMEOUT(){return this.getToken(CG.TIMEOUT,0)}destinationClause(){return this.getRuleContext(0,HF)}tableSchemaClause(){return this.getRuleContext(0,FF)}DECIMAL_LITERAL(){return this.getToken(CG.DECIMAL_LITERAL,0)}get ruleIndex(){return CG.RULE_createLiveViewStatement}accept(t){return t.visitCreateLiveViewStatement?t.visitCreateLiveViewStatement(this):t.visitChildren(this)}},uF=class extends ga{constructor(t,e){super(t,e)}MATERIALIZED(){return this.getToken(CG.MATERIALIZED,0)}VIEW(){return this.getToken(CG.VIEW,0)}tableIdentifier(){return this.getRuleContext(0,gy)}subqueryClause(){return this.getRuleContext(0,GF)}ATTACH(){return this.getToken(CG.ATTACH,0)}CREATE(){return this.getToken(CG.CREATE,0)}destinationClause(){return this.getRuleContext(0,HF)}engineClause(){return this.getRuleContext(0,fF)}IF(){return this.getToken(CG.IF,0)}NOT(){return this.getToken(CG.NOT,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}uuidClause(){return this.getRuleContext(0,kF)}clusterClause(){return this.getRuleContext(0,xF)}tableSchemaClause(){return this.getRuleContext(0,FF)}POPULATE(){return this.getToken(CG.POPULATE,0)}get ruleIndex(){return CG.RULE_createMaterializedViewStatement}accept(t){return t.visitCreateMaterializedViewStatement?t.visitCreateMaterializedViewStatement(this):t.visitChildren(this)}},NF=class extends ga{constructor(t,e){super(t,e)}VIEW(){return this.getToken(CG.VIEW,0)}tableIdentifier(){return this.getRuleContext(0,gy)}subqueryClause(){return this.getRuleContext(0,GF)}ATTACH(){return this.getToken(CG.ATTACH,0)}CREATE(){return this.getToken(CG.CREATE,0)}OR(){return this.getToken(CG.OR,0)}REPLACE(){return this.getToken(CG.REPLACE,0)}IF(){return this.getToken(CG.IF,0)}NOT(){return this.getToken(CG.NOT,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}uuidClause(){return this.getRuleContext(0,kF)}clusterClause(){return this.getRuleContext(0,xF)}tableSchemaClause(){return this.getRuleContext(0,FF)}get ruleIndex(){return CG.RULE_createViewStatement}accept(t){return t.visitCreateViewStatement?t.visitCreateViewStatement(this):t.visitChildren(this)}},LF=class extends ga{constructor(t,e){super(t,e)}createDatabaseStatement(){return this.getRuleContext(0,lF)}createDictionaryStatement(){return this.getRuleContext(0,OF)}createLiveViewStatement(){return this.getRuleContext(0,IF)}createMaterializedViewStatement(){return this.getRuleContext(0,uF)}createTableStatement(){return this.getRuleContext(0,SF)}createViewStatement(){return this.getRuleContext(0,NF)}get ruleIndex(){return CG.RULE_createStatement}accept(t){return t.visitCreateStatement?t.visitCreateStatement(this):t.visitChildren(this)}},CF=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(CG.LPAREN,0)}dictionaryAttributeDefinition(t){return void 0===t?this.getRuleContexts(_F):this.getRuleContext(t,_F)}RPAREN(){return this.getToken(CG.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}get ruleIndex(){return CG.RULE_dictionarySchemaClause}accept(t){return t.visitDictionarySchemaClause?t.visitDictionarySchemaClause(this):t.visitChildren(this)}},_F=class extends ga{constructor(t,e){super(t,e),this.attrs=new Set}identifier(){return this.getRuleContext(0,wy)}columnTypeExpression(){return this.getRuleContext(0,xB)}DEFAULT(t){return void 0===t?this.getTokens(CG.DEFAULT):this.getToken(CG.DEFAULT,t)}literal(t){return void 0===t?this.getRuleContexts(vy):this.getRuleContext(t,vy)}EXPRESSION(t){return void 0===t?this.getTokens(CG.EXPRESSION):this.getToken(CG.EXPRESSION,t)}columnExpression(t){return void 0===t?this.getRuleContexts(bB):this.getRuleContext(t,bB)}HIERARCHICAL(t){return void 0===t?this.getTokens(CG.HIERARCHICAL):this.getToken(CG.HIERARCHICAL,t)}INJECTIVE(t){return void 0===t?this.getTokens(CG.INJECTIVE):this.getToken(CG.INJECTIVE,t)}IS_OBJECT_ID(t){return void 0===t?this.getTokens(CG.IS_OBJECT_ID):this.getToken(CG.IS_OBJECT_ID,t)}get ruleIndex(){return CG.RULE_dictionaryAttributeDefinition}accept(t){return t.visitDictionaryAttributeDefinition?t.visitDictionaryAttributeDefinition(this):t.visitChildren(this)}},PF=class extends ga{constructor(t,e){super(t,e),this.clauses=new Set}dictionaryPrimaryKeyClause(){return this.getRuleContext(0,MF)}sourceClause(t){return void 0===t?this.getRuleContexts(UF):this.getRuleContext(t,UF)}lifetimeClause(t){return void 0===t?this.getRuleContexts(mF):this.getRuleContext(t,mF)}layoutClause(t){return void 0===t?this.getRuleContexts(DF):this.getRuleContext(t,DF)}rangeClause(t){return void 0===t?this.getRuleContexts(pF):this.getRuleContext(t,pF)}dictionarySettingsClause(t){return void 0===t?this.getRuleContexts(gF):this.getRuleContext(t,gF)}get ruleIndex(){return CG.RULE_dictionaryEngineClause}accept(t){return t.visitDictionaryEngineClause?t.visitDictionaryEngineClause(this):t.visitChildren(this)}},MF=class extends ga{constructor(t,e){super(t,e)}PRIMARY(){return this.getToken(CG.PRIMARY,0)}KEY(){return this.getToken(CG.KEY,0)}columnExpressionList(){return this.getRuleContext(0,BB)}get ruleIndex(){return CG.RULE_dictionaryPrimaryKeyClause}accept(t){return t.visitDictionaryPrimaryKeyClause?t.visitDictionaryPrimaryKeyClause(this):t.visitChildren(this)}},dF=class extends ga{constructor(t,e){super(t,e)}identifier(t){return void 0===t?this.getRuleContexts(wy):this.getRuleContext(t,wy)}literal(){return this.getRuleContext(0,vy)}LPAREN(){return this.getToken(CG.LPAREN,0)}RPAREN(){return this.getToken(CG.RPAREN,0)}get ruleIndex(){return CG.RULE_dictionaryArgumentExpression}accept(t){return t.visitDictionaryArgumentExpression?t.visitDictionaryArgumentExpression(this):t.visitChildren(this)}},UF=class extends ga{constructor(t,e){super(t,e)}SOURCE(){return this.getToken(CG.SOURCE,0)}LPAREN(t){return void 0===t?this.getTokens(CG.LPAREN):this.getToken(CG.LPAREN,t)}identifier(){return this.getRuleContext(0,wy)}RPAREN(t){return void 0===t?this.getTokens(CG.RPAREN):this.getToken(CG.RPAREN,t)}dictionaryArgumentExpression(t){return void 0===t?this.getRuleContexts(dF):this.getRuleContext(t,dF)}get ruleIndex(){return CG.RULE_sourceClause}accept(t){return t.visitSourceClause?t.visitSourceClause(this):t.visitChildren(this)}},mF=class extends ga{constructor(t,e){super(t,e)}LIFETIME(){return this.getToken(CG.LIFETIME,0)}LPAREN(){return this.getToken(CG.LPAREN,0)}RPAREN(){return this.getToken(CG.RPAREN,0)}DECIMAL_LITERAL(t){return void 0===t?this.getTokens(CG.DECIMAL_LITERAL):this.getToken(CG.DECIMAL_LITERAL,t)}MIN(){return this.getToken(CG.MIN,0)}MAX(){return this.getToken(CG.MAX,0)}get ruleIndex(){return CG.RULE_lifetimeClause}accept(t){return t.visitLifetimeClause?t.visitLifetimeClause(this):t.visitChildren(this)}},DF=class extends ga{constructor(t,e){super(t,e)}LAYOUT(){return this.getToken(CG.LAYOUT,0)}LPAREN(t){return void 0===t?this.getTokens(CG.LPAREN):this.getToken(CG.LPAREN,t)}identifier(){return this.getRuleContext(0,wy)}RPAREN(t){return void 0===t?this.getTokens(CG.RPAREN):this.getToken(CG.RPAREN,t)}dictionaryArgumentExpression(t){return void 0===t?this.getRuleContexts(dF):this.getRuleContext(t,dF)}get ruleIndex(){return CG.RULE_layoutClause}accept(t){return t.visitLayoutClause?t.visitLayoutClause(this):t.visitChildren(this)}},pF=class extends ga{constructor(t,e){super(t,e)}RANGE(){return this.getToken(CG.RANGE,0)}LPAREN(){return this.getToken(CG.LPAREN,0)}RPAREN(){return this.getToken(CG.RPAREN,0)}MIN(){return this.getToken(CG.MIN,0)}identifier(t){return void 0===t?this.getRuleContexts(wy):this.getRuleContext(t,wy)}MAX(){return this.getToken(CG.MAX,0)}get ruleIndex(){return CG.RULE_rangeClause}accept(t){return t.visitRangeClause?t.visitRangeClause(this):t.visitChildren(this)}},gF=class extends ga{constructor(t,e){super(t,e)}SETTINGS(){return this.getToken(CG.SETTINGS,0)}LPAREN(){return this.getToken(CG.LPAREN,0)}settingExpressionList(){return this.getRuleContext(0,EB)}RPAREN(){return this.getToken(CG.RPAREN,0)}get ruleIndex(){return CG.RULE_dictionarySettingsClause}accept(t){return t.visitDictionarySettingsClause?t.visitDictionarySettingsClause(this):t.visitChildren(this)}},xF=class extends ga{constructor(t,e){super(t,e)}ON(){return this.getToken(CG.ON,0)}CLUSTER(){return this.getToken(CG.CLUSTER,0)}identifier(){return this.getRuleContext(0,wy)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}get ruleIndex(){return CG.RULE_clusterClause}accept(t){return t.visitClusterClause?t.visitClusterClause(this):t.visitChildren(this)}},kF=class extends ga{constructor(t,e){super(t,e)}UUID(){return this.getToken(CG.UUID,0)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}get ruleIndex(){return CG.RULE_uuidClause}accept(t){return t.visitUuidClause?t.visitUuidClause(this):t.visitChildren(this)}},HF=class extends ga{constructor(t,e){super(t,e)}TO(){return this.getToken(CG.TO,0)}tableIdentifier(){return this.getRuleContext(0,gy)}get ruleIndex(){return CG.RULE_destinationClause}accept(t){return t.visitDestinationClause?t.visitDestinationClause(this):t.visitChildren(this)}},GF=class extends ga{constructor(t,e){super(t,e)}AS(){return this.getToken(CG.AS,0)}selectUnionStatement(){return this.getRuleContext(0,gv)}get ruleIndex(){return CG.RULE_subqueryClause}accept(t){return t.visitSubqueryClause?t.visitSubqueryClause(this):t.visitChildren(this)}},FF=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_tableSchemaClause}copyFrom(t){super.copyFrom(t)}},vF=class extends FF{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}AS(){return this.getToken(CG.AS,0)}tableIdentifier(){return this.getRuleContext(0,gy)}accept(t){return t.visitSchemaAsTableClause?t.visitSchemaAsTableClause(this):t.visitChildren(this)}},BF=class extends FF{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}AS(){return this.getToken(CG.AS,0)}tableFunctionExpression(){return this.getRuleContext(0,py)}accept(t){return t.visitSchemaAsFunctionClause?t.visitSchemaAsFunctionClause(this):t.visitChildren(this)}},yF=class extends FF{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LPAREN(){return this.getToken(CG.LPAREN,0)}tableElementExpression(t){return void 0===t?this.getRuleContexts(XF):this.getRuleContext(t,XF)}RPAREN(){return this.getToken(CG.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}accept(t){return t.visitSchemaDescriptionClause?t.visitSchemaDescriptionClause(this):t.visitChildren(this)}},fF=class extends ga{constructor(t,e){super(t,e),this.clauses=new Set}engineExpression(){return this.getRuleContext(0,VF)}orderByClause(t){return void 0===t?this.getRuleContexts(bv):this.getRuleContext(t,bv)}partitionByClause(t){return void 0===t?this.getRuleContexts(YF):this.getRuleContext(t,YF)}primaryKeyClause(t){return void 0===t?this.getRuleContexts(wF):this.getRuleContext(t,wF)}sampleByClause(t){return void 0===t?this.getRuleContexts(bF):this.getRuleContext(t,bF)}ttlClause(t){return void 0===t?this.getRuleContexts(WF):this.getRuleContext(t,WF)}settingsClause(t){return void 0===t?this.getRuleContexts(Kv):this.getRuleContext(t,Kv)}get ruleIndex(){return CG.RULE_engineClause}accept(t){return t.visitEngineClause?t.visitEngineClause(this):t.visitChildren(this)}},YF=class extends ga{constructor(t,e){super(t,e)}PARTITION(){return this.getToken(CG.PARTITION,0)}BY(){return this.getToken(CG.BY,0)}columnExpression(){return this.getRuleContext(0,bB)}get ruleIndex(){return CG.RULE_partitionByClause}accept(t){return t.visitPartitionByClause?t.visitPartitionByClause(this):t.visitChildren(this)}},wF=class extends ga{constructor(t,e){super(t,e)}PRIMARY(){return this.getToken(CG.PRIMARY,0)}KEY(){return this.getToken(CG.KEY,0)}columnExpression(){return this.getRuleContext(0,bB)}get ruleIndex(){return CG.RULE_primaryKeyClause}accept(t){return t.visitPrimaryKeyClause?t.visitPrimaryKeyClause(this):t.visitChildren(this)}},bF=class extends ga{constructor(t,e){super(t,e)}SAMPLE(){return this.getToken(CG.SAMPLE,0)}BY(){return this.getToken(CG.BY,0)}columnExpression(){return this.getRuleContext(0,bB)}get ruleIndex(){return CG.RULE_sampleByClause}accept(t){return t.visitSampleByClause?t.visitSampleByClause(this):t.visitChildren(this)}},WF=class extends ga{constructor(t,e){super(t,e)}TTL(){return this.getToken(CG.TTL,0)}ttlExpression(t){return void 0===t?this.getRuleContexts(sv):this.getRuleContext(t,sv)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}get ruleIndex(){return CG.RULE_ttlClause}accept(t){return t.visitTtlClause?t.visitTtlClause(this):t.visitChildren(this)}},VF=class extends ga{constructor(t,e){super(t,e)}ENGINE(){return this.getToken(CG.ENGINE,0)}identifierOrNull(){return this.getRuleContext(0,by)}EQ_SINGLE(){return this.getToken(CG.EQ_SINGLE,0)}LPAREN(){return this.getToken(CG.LPAREN,0)}RPAREN(){return this.getToken(CG.RPAREN,0)}columnExpressionList(){return this.getRuleContext(0,BB)}get ruleIndex(){return CG.RULE_engineExpression}accept(t){return t.visitEngineExpression?t.visitEngineExpression(this):t.visitChildren(this)}},XF=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_tableElementExpression}copyFrom(t){super.copyFrom(t)}},KF=class extends XF{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}tableColumnDefinition(){return this.getRuleContext(0,qF)}accept(t){return t.visitTableElementExpressionColumn?t.visitTableElementExpressionColumn(this):t.visitChildren(this)}},QF=class extends XF{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CONSTRAINT(){return this.getToken(CG.CONSTRAINT,0)}identifier(){return this.getRuleContext(0,wy)}CHECK(){return this.getToken(CG.CHECK,0)}columnExpression(){return this.getRuleContext(0,bB)}accept(t){return t.visitTableElementExpressionConstraint?t.visitTableElementExpressionConstraint(this):t.visitChildren(this)}},JF=class extends XF{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}INDEX(){return this.getToken(CG.INDEX,0)}tableIndexDefinition(){return this.getRuleContext(0,zF)}accept(t){return t.visitTableElementExpressionIndex?t.visitTableElementExpressionIndex(this):t.visitChildren(this)}},ZF=class extends XF{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}PROJECTION(){return this.getToken(CG.PROJECTION,0)}tableProjectionDefinition(){return this.getRuleContext(0,$F)}accept(t){return t.visitTableElementExpressionProjection?t.visitTableElementExpressionProjection(this):t.visitChildren(this)}},qF=class extends ga{constructor(t,e){super(t,e)}columnIdentifier(){return this.getRuleContext(0,Py)}columnTypeExpression(){return this.getRuleContext(0,xB)}tableColumnPropertyExpression(){return this.getRuleContext(0,jF)}COMMENT(){return this.getToken(CG.COMMENT,0)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}codecExpression(){return this.getRuleContext(0,tv)}TTL(){return this.getToken(CG.TTL,0)}columnExpression(){return this.getRuleContext(0,bB)}get ruleIndex(){return CG.RULE_tableColumnDefinition}accept(t){return t.visitTableColumnDefinition?t.visitTableColumnDefinition(this):t.visitChildren(this)}},jF=class extends ga{constructor(t,e){super(t,e)}columnExpression(){return this.getRuleContext(0,bB)}DEFAULT(){return this.getToken(CG.DEFAULT,0)}MATERIALIZED(){return this.getToken(CG.MATERIALIZED,0)}ALIAS(){return this.getToken(CG.ALIAS,0)}get ruleIndex(){return CG.RULE_tableColumnPropertyExpression}accept(t){return t.visitTableColumnPropertyExpression?t.visitTableColumnPropertyExpression(this):t.visitChildren(this)}},zF=class extends ga{constructor(t,e){super(t,e)}columnIdentifier(){return this.getRuleContext(0,Py)}columnExpression(){return this.getRuleContext(0,bB)}TYPE(){return this.getToken(CG.TYPE,0)}columnTypeExpression(){return this.getRuleContext(0,xB)}GRANULARITY(){return this.getToken(CG.GRANULARITY,0)}DECIMAL_LITERAL(){return this.getToken(CG.DECIMAL_LITERAL,0)}get ruleIndex(){return CG.RULE_tableIndexDefinition}accept(t){return t.visitTableIndexDefinition?t.visitTableIndexDefinition(this):t.visitChildren(this)}},$F=class extends ga{constructor(t,e){super(t,e)}columnIdentifier(){return this.getRuleContext(0,Py)}projectionSelectStatement(){return this.getRuleContext(0,pv)}get ruleIndex(){return CG.RULE_tableProjectionDefinition}accept(t){return t.visitTableProjectionDefinition?t.visitTableProjectionDefinition(this):t.visitChildren(this)}},tv=class extends ga{constructor(t,e){super(t,e)}CODEC(){return this.getToken(CG.CODEC,0)}LPAREN(){return this.getToken(CG.LPAREN,0)}codecArgExpression(t){return void 0===t?this.getRuleContexts(ev):this.getRuleContext(t,ev)}RPAREN(){return this.getToken(CG.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}get ruleIndex(){return CG.RULE_codecExpression}accept(t){return t.visitCodecExpression?t.visitCodecExpression(this):t.visitChildren(this)}},ev=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,wy)}LPAREN(){return this.getToken(CG.LPAREN,0)}RPAREN(){return this.getToken(CG.RPAREN,0)}columnExpressionList(){return this.getRuleContext(0,BB)}get ruleIndex(){return CG.RULE_codecArgExpression}accept(t){return t.visitCodecArgExpression?t.visitCodecArgExpression(this):t.visitChildren(this)}},sv=class extends ga{constructor(t,e){super(t,e)}columnExpression(){return this.getRuleContext(0,bB)}DELETE(){return this.getToken(CG.DELETE,0)}TO(){return this.getToken(CG.TO,0)}DISK(){return this.getToken(CG.DISK,0)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}VOLUME(){return this.getToken(CG.VOLUME,0)}get ruleIndex(){return CG.RULE_ttlExpression}accept(t){return t.visitTtlExpression?t.visitTtlExpression(this):t.visitChildren(this)}},av=class extends ga{constructor(t,e){super(t,e)}tableExpression(){return this.getRuleContext(0,My)}DESCRIBE(){return this.getToken(CG.DESCRIBE,0)}DESC(){return this.getToken(CG.DESC,0)}TABLE(){return this.getToken(CG.TABLE,0)}get ruleIndex(){return CG.RULE_describeStatement}accept(t){return t.visitDescribeStatement?t.visitDescribeStatement(this):t.visitChildren(this)}},rv=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_dropStatement}copyFrom(t){super.copyFrom(t)}},iv=class extends rv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DATABASE(){return this.getToken(CG.DATABASE,0)}databaseIdentifier(){return this.getRuleContext(0,Hy)}DETACH(){return this.getToken(CG.DETACH,0)}DROP(){return this.getToken(CG.DROP,0)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}clusterClause(){return this.getRuleContext(0,xF)}accept(t){return t.visitDropDatabaseStatement?t.visitDropDatabaseStatement(this):t.visitChildren(this)}},cv=class extends rv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}tableIdentifier(){return this.getRuleContext(0,gy)}DETACH(){return this.getToken(CG.DETACH,0)}DROP(){return this.getToken(CG.DROP,0)}DICTIONARY(){return this.getToken(CG.DICTIONARY,0)}TABLE(){return this.getToken(CG.TABLE,0)}VIEW(){return this.getToken(CG.VIEW,0)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}clusterClause(){return this.getRuleContext(0,xF)}NO(){return this.getToken(CG.NO,0)}DELAY(){return this.getToken(CG.DELAY,0)}TEMPORARY(){return this.getToken(CG.TEMPORARY,0)}accept(t){return t.visitDropTableStatement?t.visitDropTableStatement(this):t.visitChildren(this)}},nv=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_existsStatement}copyFrom(t){super.copyFrom(t)}},hv=class extends nv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}EXISTS(){return this.getToken(CG.EXISTS,0)}DATABASE(){return this.getToken(CG.DATABASE,0)}databaseIdentifier(){return this.getRuleContext(0,Hy)}accept(t){return t.visitExistsDatabaseStatement?t.visitExistsDatabaseStatement(this):t.visitChildren(this)}},Ev=class extends nv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}EXISTS(){return this.getToken(CG.EXISTS,0)}tableIdentifier(){return this.getRuleContext(0,gy)}DICTIONARY(){return this.getToken(CG.DICTIONARY,0)}TABLE(){return this.getToken(CG.TABLE,0)}VIEW(){return this.getToken(CG.VIEW,0)}TEMPORARY(){return this.getToken(CG.TEMPORARY,0)}accept(t){return t.visitExistsTableStatement?t.visitExistsTableStatement(this):t.visitChildren(this)}},Tv=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_explainStatement}copyFrom(t){super.copyFrom(t)}},ov=class extends Tv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}EXPLAIN(){return this.getToken(CG.EXPLAIN,0)}AST(){return this.getToken(CG.AST,0)}notInsertStatement(){return this.getRuleContext(0,dG)}accept(t){return t.visitExplainASTStatement?t.visitExplainASTStatement(this):t.visitChildren(this)}},Rv=class extends Tv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}EXPLAIN(){return this.getToken(CG.EXPLAIN,0)}QUERY(){return this.getToken(CG.QUERY,0)}TREE(){return this.getToken(CG.TREE,0)}notInsertStatement(){return this.getRuleContext(0,dG)}accept(t){return t.visitExplainQueryTreeStatement?t.visitExplainQueryTreeStatement(this):t.visitChildren(this)}},Av=class extends Tv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}EXPLAIN(){return this.getToken(CG.EXPLAIN,0)}PLAN(){return this.getToken(CG.PLAN,0)}notInsertStatement(){return this.getRuleContext(0,dG)}accept(t){return t.visitExplainPlanStatement?t.visitExplainPlanStatement(this):t.visitChildren(this)}},Sv=class extends Tv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}EXPLAIN(){return this.getToken(CG.EXPLAIN,0)}notInsertStatement(){return this.getRuleContext(0,dG)}accept(t){return t.visitExplainDefaultStatement?t.visitExplainDefaultStatement(this):t.visitChildren(this)}},lv=class extends Tv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}EXPLAIN(){return this.getToken(CG.EXPLAIN,0)}ESTIMATE(){return this.getToken(CG.ESTIMATE,0)}notInsertStatement(){return this.getRuleContext(0,dG)}accept(t){return t.visitExplainEstimateStatement?t.visitExplainEstimateStatement(this):t.visitChildren(this)}},Ov=class extends Tv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}EXPLAIN(){return this.getToken(CG.EXPLAIN,0)}SYNTAX(){return this.getToken(CG.SYNTAX,0)}notInsertStatement(){return this.getRuleContext(0,dG)}accept(t){return t.visitExplainSyntaxStatement?t.visitExplainSyntaxStatement(this):t.visitChildren(this)}},Iv=class extends Tv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}EXPLAIN(){return this.getToken(CG.EXPLAIN,0)}PIPELINE(){return this.getToken(CG.PIPELINE,0)}notInsertStatement(){return this.getRuleContext(0,dG)}accept(t){return t.visitExplainPipelineStatement?t.visitExplainPipelineStatement(this):t.visitChildren(this)}},uv=class extends ga{constructor(t,e){super(t,e)}INSERT(){return this.getToken(CG.INSERT,0)}INTO(){return this.getToken(CG.INTO,0)}dataClause(){return this.getRuleContext(0,Lv)}tableIdentifier(){return this.getRuleContext(0,gy)}FUNCTION(){return this.getToken(CG.FUNCTION,0)}tableFunctionExpression(){return this.getRuleContext(0,py)}TABLE(){return this.getToken(CG.TABLE,0)}columnsClause(){return this.getRuleContext(0,Nv)}get ruleIndex(){return CG.RULE_insertStatement}accept(t){return t.visitInsertStatement?t.visitInsertStatement(this):t.visitChildren(this)}},Nv=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(CG.LPAREN,0)}columnIdentifier(t){return void 0===t?this.getRuleContexts(Py):this.getRuleContext(t,Py)}RPAREN(){return this.getToken(CG.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}get ruleIndex(){return CG.RULE_columnsClause}accept(t){return t.visitColumnsClause?t.visitColumnsClause(this):t.visitChildren(this)}},Lv=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_dataClause}copyFrom(t){super.copyFrom(t)}},Cv=class extends Lv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}valuesStatement(){return this.getRuleContext(0,Mv)}accept(t){return t.visitDataClauseValues?t.visitDataClauseValues(this):t.visitChildren(this)}},_v=class extends Lv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}FORMAT(){return this.getToken(CG.FORMAT,0)}identifier(){return this.getRuleContext(0,wy)}accept(t){return t.visitDataClauseFormat?t.visitDataClauseFormat(this):t.visitChildren(this)}},Pv=class extends Lv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}selectUnionStatement(){return this.getRuleContext(0,gv)}EOF(){return this.getToken(CG.EOF,0)}SEMICOLON(){return this.getToken(CG.SEMICOLON,0)}accept(t){return t.visitDataClauseSelect?t.visitDataClauseSelect(this):t.visitChildren(this)}},Mv=class extends ga{constructor(t,e){super(t,e)}VALUES(){return this.getToken(CG.VALUES,0)}LPAREN(t){return void 0===t?this.getTokens(CG.LPAREN):this.getToken(CG.LPAREN,t)}RPAREN(t){return void 0===t?this.getTokens(CG.RPAREN):this.getToken(CG.RPAREN,t)}literal(t){return void 0===t?this.getRuleContexts(vy):this.getRuleContext(t,vy)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}get ruleIndex(){return CG.RULE_valuesStatement}accept(t){return t.visitValuesStatement?t.visitValuesStatement(this):t.visitChildren(this)}},dv=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_killStatement}copyFrom(t){super.copyFrom(t)}},Uv=class extends dv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}KILL(){return this.getToken(CG.KILL,0)}MUTATION(){return this.getToken(CG.MUTATION,0)}whereClause(){return this.getRuleContext(0,fv)}clusterClause(){return this.getRuleContext(0,xF)}SYNC(){return this.getToken(CG.SYNC,0)}ASYNC(){return this.getToken(CG.ASYNC,0)}TEST(){return this.getToken(CG.TEST,0)}accept(t){return t.visitKillMutationStatement?t.visitKillMutationStatement(this):t.visitChildren(this)}},mv=class extends ga{constructor(t,e){super(t,e)}OPTIMIZE(){return this.getToken(CG.OPTIMIZE,0)}TABLE(){return this.getToken(CG.TABLE,0)}tableIdentifier(){return this.getRuleContext(0,gy)}clusterClause(){return this.getRuleContext(0,xF)}partitionClause(){return this.getRuleContext(0,EF)}FINAL(){return this.getToken(CG.FINAL,0)}DEDUPLICATE(){return this.getToken(CG.DEDUPLICATE,0)}get ruleIndex(){return CG.RULE_optimizeStatement}accept(t){return t.visitOptimizeStatement?t.visitOptimizeStatement(this):t.visitChildren(this)}},Dv=class extends ga{constructor(t,e){super(t,e)}RENAME(){return this.getToken(CG.RENAME,0)}TABLE(){return this.getToken(CG.TABLE,0)}tableIdentifier(t){return void 0===t?this.getRuleContexts(gy):this.getRuleContext(t,gy)}TO(t){return void 0===t?this.getTokens(CG.TO):this.getToken(CG.TO,t)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}clusterClause(){return this.getRuleContext(0,xF)}get ruleIndex(){return CG.RULE_renameStatement}accept(t){return t.visitRenameStatement?t.visitRenameStatement(this):t.visitChildren(this)}},pv=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(CG.LPAREN,0)}SELECT(){return this.getToken(CG.SELECT,0)}columnExpressionList(){return this.getRuleContext(0,BB)}RPAREN(){return this.getToken(CG.RPAREN,0)}withClause(){return this.getRuleContext(0,Hv)}groupByClause(){return this.getRuleContext(0,Yv)}projectionOrderByClause(){return this.getRuleContext(0,Wv)}get ruleIndex(){return CG.RULE_projectionSelectStatement}accept(t){return t.visitProjectionSelectStatement?t.visitProjectionSelectStatement(this):t.visitChildren(this)}},gv=class extends ga{constructor(t,e){super(t,e)}selectStatementWithParentheses(t){return void 0===t?this.getRuleContexts(xv):this.getRuleContext(t,xv)}UNION(t){return void 0===t?this.getTokens(CG.UNION):this.getToken(CG.UNION,t)}ALL(t){return void 0===t?this.getTokens(CG.ALL):this.getToken(CG.ALL,t)}get ruleIndex(){return CG.RULE_selectUnionStatement}accept(t){return t.visitSelectUnionStatement?t.visitSelectUnionStatement(this):t.visitChildren(this)}},xv=class extends ga{constructor(t,e){super(t,e)}selectStatement(){return this.getRuleContext(0,kv)}LPAREN(){return this.getToken(CG.LPAREN,0)}selectUnionStatement(){return this.getRuleContext(0,gv)}RPAREN(){return this.getToken(CG.RPAREN,0)}get ruleIndex(){return CG.RULE_selectStatementWithParentheses}accept(t){return t.visitSelectStatementWithParentheses?t.visitSelectStatementWithParentheses(this):t.visitChildren(this)}},kv=class extends ga{constructor(t,e){super(t,e)}SELECT(){return this.getToken(CG.SELECT,0)}columnExpressionList(){return this.getRuleContext(0,BB)}withClause(){return this.getRuleContext(0,Hv)}DISTINCT(){return this.getToken(CG.DISTINCT,0)}topClause(){return this.getRuleContext(0,Gv)}fromClause(){return this.getRuleContext(0,Fv)}arrayJoinClause(){return this.getRuleContext(0,vv)}windowClause(){return this.getRuleContext(0,Bv)}prewhereClause(){return this.getRuleContext(0,yv)}whereClause(){return this.getRuleContext(0,fv)}groupByClause(){return this.getRuleContext(0,Yv)}WITH(t){return void 0===t?this.getTokens(CG.WITH):this.getToken(CG.WITH,t)}TOTALS(){return this.getToken(CG.TOTALS,0)}havingClause(){return this.getRuleContext(0,wv)}orderByClause(){return this.getRuleContext(0,bv)}limitByClause(){return this.getRuleContext(0,Vv)}limitClause(){return this.getRuleContext(0,Xv)}settingsClause(){return this.getRuleContext(0,Kv)}CUBE(){return this.getToken(CG.CUBE,0)}ROLLUP(){return this.getToken(CG.ROLLUP,0)}get ruleIndex(){return CG.RULE_selectStatement}accept(t){return t.visitSelectStatement?t.visitSelectStatement(this):t.visitChildren(this)}},Hv=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(CG.WITH,0)}columnExpressionList(){return this.getRuleContext(0,BB)}get ruleIndex(){return CG.RULE_withClause}accept(t){return t.visitWithClause?t.visitWithClause(this):t.visitChildren(this)}},Gv=class extends ga{constructor(t,e){super(t,e)}TOP(){return this.getToken(CG.TOP,0)}DECIMAL_LITERAL(){return this.getToken(CG.DECIMAL_LITERAL,0)}WITH(){return this.getToken(CG.WITH,0)}TIES(){return this.getToken(CG.TIES,0)}get ruleIndex(){return CG.RULE_topClause}accept(t){return t.visitTopClause?t.visitTopClause(this):t.visitChildren(this)}},Fv=class extends ga{constructor(t,e){super(t,e)}FROM(){return this.getToken(CG.FROM,0)}joinExpression(){return this.getRuleContext(0,Qv)}get ruleIndex(){return CG.RULE_fromClause}accept(t){return t.visitFromClause?t.visitFromClause(this):t.visitChildren(this)}},vv=class extends ga{constructor(t,e){super(t,e)}ARRAY(){return this.getToken(CG.ARRAY,0)}JOIN(){return this.getToken(CG.JOIN,0)}columnExpressionList(){return this.getRuleContext(0,BB)}LEFT(){return this.getToken(CG.LEFT,0)}INNER(){return this.getToken(CG.INNER,0)}get ruleIndex(){return CG.RULE_arrayJoinClause}accept(t){return t.visitArrayJoinClause?t.visitArrayJoinClause(this):t.visitChildren(this)}},Bv=class extends ga{constructor(t,e){super(t,e)}WINDOW(){return this.getToken(CG.WINDOW,0)}identifier(){return this.getRuleContext(0,wy)}AS(){return this.getToken(CG.AS,0)}LPAREN(){return this.getToken(CG.LPAREN,0)}windowExpression(){return this.getRuleContext(0,oB)}RPAREN(){return this.getToken(CG.RPAREN,0)}get ruleIndex(){return CG.RULE_windowClause}accept(t){return t.visitWindowClause?t.visitWindowClause(this):t.visitChildren(this)}},yv=class extends ga{constructor(t,e){super(t,e)}PREWHERE(){return this.getToken(CG.PREWHERE,0)}columnExpression(){return this.getRuleContext(0,bB)}get ruleIndex(){return CG.RULE_prewhereClause}accept(t){return t.visitPrewhereClause?t.visitPrewhereClause(this):t.visitChildren(this)}},fv=class extends ga{constructor(t,e){super(t,e)}WHERE(){return this.getToken(CG.WHERE,0)}columnExpression(){return this.getRuleContext(0,bB)}get ruleIndex(){return CG.RULE_whereClause}accept(t){return t.visitWhereClause?t.visitWhereClause(this):t.visitChildren(this)}},Yv=class extends ga{constructor(t,e){super(t,e)}GROUP(){return this.getToken(CG.GROUP,0)}BY(){return this.getToken(CG.BY,0)}LPAREN(){return this.getToken(CG.LPAREN,0)}columnExpressionList(){return this.getRuleContext(0,BB)}RPAREN(){return this.getToken(CG.RPAREN,0)}CUBE(){return this.getToken(CG.CUBE,0)}ROLLUP(){return this.getToken(CG.ROLLUP,0)}get ruleIndex(){return CG.RULE_groupByClause}accept(t){return t.visitGroupByClause?t.visitGroupByClause(this):t.visitChildren(this)}},wv=class extends ga{constructor(t,e){super(t,e)}HAVING(){return this.getToken(CG.HAVING,0)}columnExpression(){return this.getRuleContext(0,bB)}get ruleIndex(){return CG.RULE_havingClause}accept(t){return t.visitHavingClause?t.visitHavingClause(this):t.visitChildren(this)}},bv=class extends ga{constructor(t,e){super(t,e)}ORDER(){return this.getToken(CG.ORDER,0)}BY(){return this.getToken(CG.BY,0)}orderExpressionList(){return this.getRuleContext(0,cB)}get ruleIndex(){return CG.RULE_orderByClause}accept(t){return t.visitOrderByClause?t.visitOrderByClause(this):t.visitChildren(this)}},Wv=class extends ga{constructor(t,e){super(t,e)}ORDER(){return this.getToken(CG.ORDER,0)}BY(){return this.getToken(CG.BY,0)}columnExpressionList(){return this.getRuleContext(0,BB)}get ruleIndex(){return CG.RULE_projectionOrderByClause}accept(t){return t.visitProjectionOrderByClause?t.visitProjectionOrderByClause(this):t.visitChildren(this)}},Vv=class extends ga{constructor(t,e){super(t,e)}LIMIT(){return this.getToken(CG.LIMIT,0)}limitExpression(){return this.getRuleContext(0,iB)}BY(){return this.getToken(CG.BY,0)}columnExpressionList(){return this.getRuleContext(0,BB)}get ruleIndex(){return CG.RULE_limitByClause}accept(t){return t.visitLimitByClause?t.visitLimitByClause(this):t.visitChildren(this)}},Xv=class extends ga{constructor(t,e){super(t,e)}LIMIT(){return this.getToken(CG.LIMIT,0)}limitExpression(){return this.getRuleContext(0,iB)}WITH(){return this.getToken(CG.WITH,0)}TIES(){return this.getToken(CG.TIES,0)}get ruleIndex(){return CG.RULE_limitClause}accept(t){return t.visitLimitClause?t.visitLimitClause(this):t.visitChildren(this)}},Kv=class extends ga{constructor(t,e){super(t,e)}SETTINGS(){return this.getToken(CG.SETTINGS,0)}settingExpressionList(){return this.getRuleContext(0,EB)}get ruleIndex(){return CG.RULE_settingsClause}accept(t){return t.visitSettingsClause?t.visitSettingsClause(this):t.visitChildren(this)}},Qv=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_joinExpression}copyFrom(t){super.copyFrom(t)}},Jv=class extends Qv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LPAREN(){return this.getToken(CG.LPAREN,0)}joinExpression(){return this.getRuleContext(0,Qv)}RPAREN(){return this.getToken(CG.RPAREN,0)}accept(t){return t.visitJoinExpressionParens?t.visitJoinExpressionParens(this):t.visitChildren(this)}},Zv=class extends Qv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}tableExpression(){return this.getRuleContext(0,My)}FINAL(){return this.getToken(CG.FINAL,0)}sampleClause(){return this.getRuleContext(0,rB)}accept(t){return t.visitJoinExpressionTable?t.visitJoinExpressionTable(this):t.visitChildren(this)}},qv=class extends Qv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}joinExpression(t){return void 0===t?this.getRuleContexts(Qv):this.getRuleContext(t,Qv)}joinOperatorCross(){return this.getRuleContext(0,sB)}accept(t){return t.visitJoinExpressionCrossOp?t.visitJoinExpressionCrossOp(this):t.visitChildren(this)}},jv=class extends Qv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}joinExpression(t){return void 0===t?this.getRuleContexts(Qv):this.getRuleContext(t,Qv)}JOIN(){return this.getToken(CG.JOIN,0)}joinConstraintClause(){return this.getRuleContext(0,aB)}joinOperator(){return this.getRuleContext(0,zv)}GLOBAL(){return this.getToken(CG.GLOBAL,0)}LOCAL(){return this.getToken(CG.LOCAL,0)}accept(t){return t.visitJoinExpressionOp?t.visitJoinExpressionOp(this):t.visitChildren(this)}},zv=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_joinOperator}copyFrom(t){super.copyFrom(t)}},$v=class extends zv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}FULL(){return this.getToken(CG.FULL,0)}OUTER(){return this.getToken(CG.OUTER,0)}ALL(){return this.getToken(CG.ALL,0)}ANY(){return this.getToken(CG.ANY,0)}accept(t){return t.visitJoinOpFull?t.visitJoinOpFull(this):t.visitChildren(this)}},tB=class extends zv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}INNER(){return this.getToken(CG.INNER,0)}ALL(){return this.getToken(CG.ALL,0)}ANY(){return this.getToken(CG.ANY,0)}ASOF(){return this.getToken(CG.ASOF,0)}accept(t){return t.visitJoinOpInner?t.visitJoinOpInner(this):t.visitChildren(this)}},eB=class extends zv{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LEFT(){return this.getToken(CG.LEFT,0)}RIGHT(){return this.getToken(CG.RIGHT,0)}OUTER(){return this.getToken(CG.OUTER,0)}SEMI(){return this.getToken(CG.SEMI,0)}ALL(){return this.getToken(CG.ALL,0)}ANTI(){return this.getToken(CG.ANTI,0)}ANY(){return this.getToken(CG.ANY,0)}ASOF(){return this.getToken(CG.ASOF,0)}accept(t){return t.visitJoinOpLeftRight?t.visitJoinOpLeftRight(this):t.visitChildren(this)}},sB=class extends ga{constructor(t,e){super(t,e)}CROSS(){return this.getToken(CG.CROSS,0)}JOIN(){return this.getToken(CG.JOIN,0)}GLOBAL(){return this.getToken(CG.GLOBAL,0)}LOCAL(){return this.getToken(CG.LOCAL,0)}COMMA(){return this.getToken(CG.COMMA,0)}get ruleIndex(){return CG.RULE_joinOperatorCross}accept(t){return t.visitJoinOperatorCross?t.visitJoinOperatorCross(this):t.visitChildren(this)}},aB=class extends ga{constructor(t,e){super(t,e)}ON(){return this.getToken(CG.ON,0)}columnExpressionList(){return this.getRuleContext(0,BB)}USING(){return this.getToken(CG.USING,0)}LPAREN(){return this.getToken(CG.LPAREN,0)}RPAREN(){return this.getToken(CG.RPAREN,0)}get ruleIndex(){return CG.RULE_joinConstraintClause}accept(t){return t.visitJoinConstraintClause?t.visitJoinConstraintClause(this):t.visitChildren(this)}},rB=class extends ga{constructor(t,e){super(t,e)}SAMPLE(){return this.getToken(CG.SAMPLE,0)}ratioExpression(t){return void 0===t?this.getRuleContexts(hB):this.getRuleContext(t,hB)}OFFSET(){return this.getToken(CG.OFFSET,0)}get ruleIndex(){return CG.RULE_sampleClause}accept(t){return t.visitSampleClause?t.visitSampleClause(this):t.visitChildren(this)}},iB=class extends ga{constructor(t,e){super(t,e)}columnExpression(t){return void 0===t?this.getRuleContexts(bB):this.getRuleContext(t,bB)}COMMA(){return this.getToken(CG.COMMA,0)}OFFSET(){return this.getToken(CG.OFFSET,0)}get ruleIndex(){return CG.RULE_limitExpression}accept(t){return t.visitLimitExpression?t.visitLimitExpression(this):t.visitChildren(this)}},cB=class extends ga{constructor(t,e){super(t,e)}orderExpression(t){return void 0===t?this.getRuleContexts(nB):this.getRuleContext(t,nB)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}get ruleIndex(){return CG.RULE_orderExpressionList}accept(t){return t.visitOrderExpressionList?t.visitOrderExpressionList(this):t.visitChildren(this)}},nB=class extends ga{constructor(t,e){super(t,e)}columnExpression(){return this.getRuleContext(0,bB)}NULLS(){return this.getToken(CG.NULLS,0)}COLLATE(){return this.getToken(CG.COLLATE,0)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}ASCENDING(){return this.getToken(CG.ASCENDING,0)}DESCENDING(){return this.getToken(CG.DESCENDING,0)}DESC(){return this.getToken(CG.DESC,0)}FIRST(){return this.getToken(CG.FIRST,0)}LAST(){return this.getToken(CG.LAST,0)}get ruleIndex(){return CG.RULE_orderExpression}accept(t){return t.visitOrderExpression?t.visitOrderExpression(this):t.visitChildren(this)}},hB=class extends ga{constructor(t,e){super(t,e)}numberLiteral(t){return void 0===t?this.getRuleContexts(Fy):this.getRuleContext(t,Fy)}SLASH(){return this.getToken(CG.SLASH,0)}get ruleIndex(){return CG.RULE_ratioExpression}accept(t){return t.visitRatioExpression?t.visitRatioExpression(this):t.visitChildren(this)}},EB=class extends ga{constructor(t,e){super(t,e)}settingExpression(t){return void 0===t?this.getRuleContexts(TB):this.getRuleContext(t,TB)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}get ruleIndex(){return CG.RULE_settingExpressionList}accept(t){return t.visitSettingExpressionList?t.visitSettingExpressionList(this):t.visitChildren(this)}},TB=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,wy)}EQ_SINGLE(){return this.getToken(CG.EQ_SINGLE,0)}literal(){return this.getRuleContext(0,vy)}get ruleIndex(){return CG.RULE_settingExpression}accept(t){return t.visitSettingExpression?t.visitSettingExpression(this):t.visitChildren(this)}},oB=class extends ga{constructor(t,e){super(t,e)}windowPartitionByClause(){return this.getRuleContext(0,RB)}windowOrderByClause(){return this.getRuleContext(0,AB)}windowFrameClause(){return this.getRuleContext(0,SB)}get ruleIndex(){return CG.RULE_windowExpression}accept(t){return t.visitWindowExpression?t.visitWindowExpression(this):t.visitChildren(this)}},RB=class extends ga{constructor(t,e){super(t,e)}PARTITION(){return this.getToken(CG.PARTITION,0)}BY(){return this.getToken(CG.BY,0)}columnExpressionList(){return this.getRuleContext(0,BB)}get ruleIndex(){return CG.RULE_windowPartitionByClause}accept(t){return t.visitWindowPartitionByClause?t.visitWindowPartitionByClause(this):t.visitChildren(this)}},AB=class extends ga{constructor(t,e){super(t,e)}ORDER(){return this.getToken(CG.ORDER,0)}BY(){return this.getToken(CG.BY,0)}orderExpressionList(){return this.getRuleContext(0,cB)}get ruleIndex(){return CG.RULE_windowOrderByClause}accept(t){return t.visitWindowOrderByClause?t.visitWindowOrderByClause(this):t.visitChildren(this)}},SB=class extends ga{constructor(t,e){super(t,e)}windowFrameExtend(){return this.getRuleContext(0,lB)}ROWS(){return this.getToken(CG.ROWS,0)}RANGE(){return this.getToken(CG.RANGE,0)}get ruleIndex(){return CG.RULE_windowFrameClause}accept(t){return t.visitWindowFrameClause?t.visitWindowFrameClause(this):t.visitChildren(this)}},lB=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_windowFrameExtend}copyFrom(t){super.copyFrom(t)}},OB=class extends lB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}windowFrameBound(){return this.getRuleContext(0,uB)}accept(t){return t.visitFrameStart?t.visitFrameStart(this):t.visitChildren(this)}},IB=class extends lB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}BETWEEN(){return this.getToken(CG.BETWEEN,0)}windowFrameBound(t){return void 0===t?this.getRuleContexts(uB):this.getRuleContext(t,uB)}AND(){return this.getToken(CG.AND,0)}accept(t){return t.visitFrameBetween?t.visitFrameBetween(this):t.visitChildren(this)}},uB=class extends ga{constructor(t,e){super(t,e)}CURRENT(){return this.getToken(CG.CURRENT,0)}ROW(){return this.getToken(CG.ROW,0)}UNBOUNDED(){return this.getToken(CG.UNBOUNDED,0)}PRECEDING(){return this.getToken(CG.PRECEDING,0)}FOLLOWING(){return this.getToken(CG.FOLLOWING,0)}numberLiteral(){return this.getRuleContext(0,Fy)}get ruleIndex(){return CG.RULE_windowFrameBound}accept(t){return t.visitWindowFrameBound?t.visitWindowFrameBound(this):t.visitChildren(this)}},NB=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(CG.SET,0)}settingExpressionList(){return this.getRuleContext(0,EB)}get ruleIndex(){return CG.RULE_setStatement}accept(t){return t.visitSetStatement?t.visitSetStatement(this):t.visitChildren(this)}},LB=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_showStatement}copyFrom(t){super.copyFrom(t)}},CB=class extends LB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(CG.SHOW,0)}CREATE(){return this.getToken(CG.CREATE,0)}tableIdentifier(){return this.getRuleContext(0,gy)}TEMPORARY(){return this.getToken(CG.TEMPORARY,0)}TABLE(){return this.getToken(CG.TABLE,0)}accept(t){return t.visitShowCreateTableStatement?t.visitShowCreateTableStatement(this):t.visitChildren(this)}},_B=class extends LB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(CG.SHOW,0)}CREATE(){return this.getToken(CG.CREATE,0)}DICTIONARY(){return this.getToken(CG.DICTIONARY,0)}tableIdentifier(){return this.getRuleContext(0,gy)}accept(t){return t.visitShowCreateDictionaryStatement?t.visitShowCreateDictionaryStatement(this):t.visitChildren(this)}},PB=class extends LB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(CG.SHOW,0)}TABLES(){return this.getToken(CG.TABLES,0)}TEMPORARY(){return this.getToken(CG.TEMPORARY,0)}databaseIdentifier(){return this.getRuleContext(0,Hy)}LIKE(){return this.getToken(CG.LIKE,0)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}whereClause(){return this.getRuleContext(0,fv)}limitClause(){return this.getRuleContext(0,Xv)}FROM(){return this.getToken(CG.FROM,0)}IN(){return this.getToken(CG.IN,0)}accept(t){return t.visitShowTablesStatement?t.visitShowTablesStatement(this):t.visitChildren(this)}},MB=class extends LB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(CG.SHOW,0)}DICTIONARIES(){return this.getToken(CG.DICTIONARIES,0)}FROM(){return this.getToken(CG.FROM,0)}databaseIdentifier(){return this.getRuleContext(0,Hy)}accept(t){return t.visitShowDictionariesStatement?t.visitShowDictionariesStatement(this):t.visitChildren(this)}},dB=class extends LB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(CG.SHOW,0)}CREATE(){return this.getToken(CG.CREATE,0)}DATABASE(){return this.getToken(CG.DATABASE,0)}databaseIdentifier(){return this.getRuleContext(0,Hy)}accept(t){return t.visitShowCreateDatabaseStatement?t.visitShowCreateDatabaseStatement(this):t.visitChildren(this)}},UB=class extends LB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SHOW(){return this.getToken(CG.SHOW,0)}DATABASES(){return this.getToken(CG.DATABASES,0)}accept(t){return t.visitShowDatabasesStatement?t.visitShowDatabasesStatement(this):t.visitChildren(this)}},mB=class extends ga{constructor(t,e){super(t,e)}SYSTEM(){return this.getToken(CG.SYSTEM,0)}FLUSH(){return this.getToken(CG.FLUSH,0)}DISTRIBUTED(){return this.getToken(CG.DISTRIBUTED,0)}tableIdentifier(){return this.getRuleContext(0,gy)}LOGS(){return this.getToken(CG.LOGS,0)}RELOAD(){return this.getToken(CG.RELOAD,0)}DICTIONARIES(){return this.getToken(CG.DICTIONARIES,0)}DICTIONARY(){return this.getToken(CG.DICTIONARY,0)}START(){return this.getToken(CG.START,0)}STOP(){return this.getToken(CG.STOP,0)}SENDS(){return this.getToken(CG.SENDS,0)}FETCHES(){return this.getToken(CG.FETCHES,0)}MERGES(){return this.getToken(CG.MERGES,0)}TTL(){return this.getToken(CG.TTL,0)}REPLICATED(){return this.getToken(CG.REPLICATED,0)}SYNC(){return this.getToken(CG.SYNC,0)}REPLICA(){return this.getToken(CG.REPLICA,0)}get ruleIndex(){return CG.RULE_systemStatement}accept(t){return t.visitSystemStatement?t.visitSystemStatement(this):t.visitChildren(this)}},DB=class extends ga{constructor(t,e){super(t,e)}TRUNCATE(){return this.getToken(CG.TRUNCATE,0)}tableIdentifier(){return this.getRuleContext(0,gy)}TEMPORARY(){return this.getToken(CG.TEMPORARY,0)}TABLE(){return this.getToken(CG.TABLE,0)}IF(){return this.getToken(CG.IF,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}clusterClause(){return this.getRuleContext(0,xF)}get ruleIndex(){return CG.RULE_truncateStatement}accept(t){return t.visitTruncateStatement?t.visitTruncateStatement(this):t.visitChildren(this)}},pB=class extends ga{constructor(t,e){super(t,e)}USE(){return this.getToken(CG.USE,0)}databaseIdentifier(){return this.getRuleContext(0,Hy)}get ruleIndex(){return CG.RULE_useStatement}accept(t){return t.visitUseStatement?t.visitUseStatement(this):t.visitChildren(this)}},gB=class extends ga{constructor(t,e){super(t,e)}WATCH(){return this.getToken(CG.WATCH,0)}tableIdentifier(){return this.getRuleContext(0,gy)}EVENTS(){return this.getToken(CG.EVENTS,0)}LIMIT(){return this.getToken(CG.LIMIT,0)}DECIMAL_LITERAL(){return this.getToken(CG.DECIMAL_LITERAL,0)}get ruleIndex(){return CG.RULE_watchStatement}accept(t){return t.visitWatchStatement?t.visitWatchStatement(this):t.visitChildren(this)}},xB=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_columnTypeExpression}copyFrom(t){super.copyFrom(t)}},kB=class extends xB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}identifier(){return this.getRuleContext(0,wy)}LPAREN(){return this.getToken(CG.LPAREN,0)}columnTypeExpression(t){return void 0===t?this.getRuleContexts(xB):this.getRuleContext(t,xB)}RPAREN(){return this.getToken(CG.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}accept(t){return t.visitColumnTypeExpressionComplex?t.visitColumnTypeExpressionComplex(this):t.visitChildren(this)}},HB=class extends xB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}identifier(){return this.getRuleContext(0,wy)}LPAREN(){return this.getToken(CG.LPAREN,0)}enumValue(t){return void 0===t?this.getRuleContexts(Wy):this.getRuleContext(t,Wy)}RPAREN(){return this.getToken(CG.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}accept(t){return t.visitColumnTypeExpressionEnum?t.visitColumnTypeExpressionEnum(this):t.visitChildren(this)}},GB=class extends xB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}identifier(t){return void 0===t?this.getRuleContexts(wy):this.getRuleContext(t,wy)}LPAREN(){return this.getToken(CG.LPAREN,0)}columnTypeExpression(t){return void 0===t?this.getRuleContexts(xB):this.getRuleContext(t,xB)}RPAREN(){return this.getToken(CG.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}accept(t){return t.visitColumnTypeExpressionNested?t.visitColumnTypeExpressionNested(this):t.visitChildren(this)}},FB=class extends xB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}identifier(){return this.getRuleContext(0,wy)}LPAREN(){return this.getToken(CG.LPAREN,0)}RPAREN(){return this.getToken(CG.RPAREN,0)}columnExpressionList(){return this.getRuleContext(0,BB)}accept(t){return t.visitColumnTypeExpressionParam?t.visitColumnTypeExpressionParam(this):t.visitChildren(this)}},vB=class extends xB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}identifier(){return this.getRuleContext(0,wy)}accept(t){return t.visitColumnTypeExpressionSimple?t.visitColumnTypeExpressionSimple(this):t.visitChildren(this)}},BB=class extends ga{constructor(t,e){super(t,e)}columnsExpression(t){return void 0===t?this.getRuleContexts(yB):this.getRuleContext(t,yB)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}get ruleIndex(){return CG.RULE_columnExpressionList}accept(t){return t.visitColumnExpressionList?t.visitColumnExpressionList(this):t.visitChildren(this)}},yB=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_columnsExpression}copyFrom(t){super.copyFrom(t)}},fB=class extends yB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ASTERISK(){return this.getToken(CG.ASTERISK,0)}tableIdentifier(){return this.getRuleContext(0,gy)}DOT(){return this.getToken(CG.DOT,0)}accept(t){return t.visitColumnsExpressionAsterisk?t.visitColumnsExpressionAsterisk(this):t.visitChildren(this)}},YB=class extends yB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LPAREN(){return this.getToken(CG.LPAREN,0)}selectUnionStatement(){return this.getRuleContext(0,gv)}RPAREN(){return this.getToken(CG.RPAREN,0)}accept(t){return t.visitColumnsExpressionSubquery?t.visitColumnsExpressionSubquery(this):t.visitChildren(this)}},wB=class extends yB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}columnExpression(){return this.getRuleContext(0,bB)}accept(t){return t.visitColumnsExpressionColumn?t.visitColumnsExpressionColumn(this):t.visitChildren(this)}},bB=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_columnExpression}copyFrom(t){super.copyFrom(t)}},WB=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}columnExpression(){return this.getRuleContext(0,bB)}IS(){return this.getToken(CG.IS,0)}NULL_SQL(){return this.getToken(CG.NULL_SQL,0)}NOT(){return this.getToken(CG.NOT,0)}accept(t){return t.visitColumnExpressionIsNull?t.visitColumnExpressionIsNull(this):t.visitChildren(this)}},VB=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LPAREN(){return this.getToken(CG.LPAREN,0)}columnExpressionList(){return this.getRuleContext(0,BB)}RPAREN(){return this.getToken(CG.RPAREN,0)}accept(t){return t.visitColumnExpressionTuple?t.visitColumnExpressionTuple(this):t.visitChildren(this)}},XB=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}columnExpression(t){return void 0===t?this.getRuleContexts(bB):this.getRuleContext(t,bB)}AND(){return this.getToken(CG.AND,0)}accept(t){return t.visitColumnExpressionAnd?t.visitColumnExpressionAnd(this):t.visitChildren(this)}},KB=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DATE(){return this.getToken(CG.DATE,0)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}accept(t){return t.visitColumnExpressionDate?t.visitColumnExpressionDate(this):t.visitChildren(this)}},QB=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}columnExpression(t){return void 0===t?this.getRuleContexts(bB):this.getRuleContext(t,bB)}BETWEEN(){return this.getToken(CG.BETWEEN,0)}AND(){return this.getToken(CG.AND,0)}NOT(){return this.getToken(CG.NOT,0)}accept(t){return t.visitColumnExpressionBetween?t.visitColumnExpressionBetween(this):t.visitChildren(this)}},JB=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}TRIM(){return this.getToken(CG.TRIM,0)}LPAREN(){return this.getToken(CG.LPAREN,0)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}FROM(){return this.getToken(CG.FROM,0)}columnExpression(){return this.getRuleContext(0,bB)}RPAREN(){return this.getToken(CG.RPAREN,0)}BOTH(){return this.getToken(CG.BOTH,0)}LEADING(){return this.getToken(CG.LEADING,0)}TRAILING(){return this.getToken(CG.TRAILING,0)}accept(t){return t.visitColumnExpressionTrim?t.visitColumnExpressionTrim(this):t.visitChildren(this)}},ZB=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}NOT(){return this.getToken(CG.NOT,0)}columnExpression(){return this.getRuleContext(0,bB)}accept(t){return t.visitColumnExpressionNot?t.visitColumnExpressionNot(this):t.visitChildren(this)}},qB=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}SUBSTRING(){return this.getToken(CG.SUBSTRING,0)}LPAREN(){return this.getToken(CG.LPAREN,0)}columnExpression(t){return void 0===t?this.getRuleContexts(bB):this.getRuleContext(t,bB)}FROM(){return this.getToken(CG.FROM,0)}RPAREN(){return this.getToken(CG.RPAREN,0)}FOR(){return this.getToken(CG.FOR,0)}accept(t){return t.visitColumnExpressionSubstring?t.visitColumnExpressionSubstring(this):t.visitChildren(this)}},jB=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CASE(){return this.getToken(CG.CASE,0)}END(){return this.getToken(CG.END,0)}columnExpression(t){return void 0===t?this.getRuleContexts(bB):this.getRuleContext(t,bB)}WHEN(t){return void 0===t?this.getTokens(CG.WHEN):this.getToken(CG.WHEN,t)}THEN(t){return void 0===t?this.getTokens(CG.THEN):this.getToken(CG.THEN,t)}ELSE(){return this.getToken(CG.ELSE,0)}accept(t){return t.visitColumnExpressionCase?t.visitColumnExpressionCase(this):t.visitChildren(this)}},zB=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}columnIdentifier(){return this.getRuleContext(0,Py)}accept(t){return t.visitColumnExpressionIdentifier?t.visitColumnExpressionIdentifier(this):t.visitChildren(this)}},$B=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}columnExpression(t){return void 0===t?this.getRuleContexts(bB):this.getRuleContext(t,bB)}LBRACKET(){return this.getToken(CG.LBRACKET,0)}RBRACKET(){return this.getToken(CG.RBRACKET,0)}accept(t){return t.visitColumnExpressionArrayAccess?t.visitColumnExpressionArrayAccess(this):t.visitChildren(this)}},ty=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}identifier(){return this.getRuleContext(0,wy)}LPAREN(t){return void 0===t?this.getTokens(CG.LPAREN):this.getToken(CG.LPAREN,t)}RPAREN(t){return void 0===t?this.getTokens(CG.RPAREN):this.getToken(CG.RPAREN,t)}DISTINCT(){return this.getToken(CG.DISTINCT,0)}columnArgumentList(){return this.getRuleContext(0,Ly)}columnExpressionList(){return this.getRuleContext(0,BB)}accept(t){return t.visitColumnExpressionFunction?t.visitColumnExpressionFunction(this):t.visitChildren(this)}},ey=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}ASTERISK(){return this.getToken(CG.ASTERISK,0)}tableIdentifier(){return this.getRuleContext(0,gy)}DOT(){return this.getToken(CG.DOT,0)}accept(t){return t.visitColumnExpressionAsterisk?t.visitColumnExpressionAsterisk(this):t.visitChildren(this)}},sy=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}literal(){return this.getRuleContext(0,vy)}accept(t){return t.visitColumnExpressionLiteral?t.visitColumnExpressionLiteral(this):t.visitChildren(this)}},ay=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}identifier(){return this.getRuleContext(0,wy)}OVER(){return this.getToken(CG.OVER,0)}LPAREN(t){return void 0===t?this.getTokens(CG.LPAREN):this.getToken(CG.LPAREN,t)}windowExpression(){return this.getRuleContext(0,oB)}RPAREN(t){return void 0===t?this.getTokens(CG.RPAREN):this.getToken(CG.RPAREN,t)}columnExpressionList(){return this.getRuleContext(0,BB)}accept(t){return t.visitColumnExpressionWinFunction?t.visitColumnExpressionWinFunction(this):t.visitChildren(this)}},ry=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}columnExpression(t){return void 0===t?this.getRuleContexts(bB):this.getRuleContext(t,bB)}QUESTIONMARK(){return this.getToken(CG.QUESTIONMARK,0)}COLON(){return this.getToken(CG.COLON,0)}accept(t){return t.visitColumnExpressionTernaryOp?t.visitColumnExpressionTernaryOp(this):t.visitChildren(this)}},iy=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LBRACKET(){return this.getToken(CG.LBRACKET,0)}RBRACKET(){return this.getToken(CG.RBRACKET,0)}columnExpressionList(){return this.getRuleContext(0,BB)}accept(t){return t.visitColumnExpressionArray?t.visitColumnExpressionArray(this):t.visitChildren(this)}},cy=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}columnExpression(){return this.getRuleContext(0,bB)}DOT(){return this.getToken(CG.DOT,0)}DECIMAL_LITERAL(){return this.getToken(CG.DECIMAL_LITERAL,0)}accept(t){return t.visitColumnExpressionTupleAccess?t.visitColumnExpressionTupleAccess(this):t.visitChildren(this)}},ny=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LPAREN(){return this.getToken(CG.LPAREN,0)}columnExpression(){return this.getRuleContext(0,bB)}RPAREN(){return this.getToken(CG.RPAREN,0)}accept(t){return t.visitColumnExpressionParens?t.visitColumnExpressionParens(this):t.visitChildren(this)}},hy=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}identifier(t){return void 0===t?this.getRuleContexts(wy):this.getRuleContext(t,wy)}OVER(){return this.getToken(CG.OVER,0)}LPAREN(){return this.getToken(CG.LPAREN,0)}RPAREN(){return this.getToken(CG.RPAREN,0)}columnExpressionList(){return this.getRuleContext(0,BB)}accept(t){return t.visitColumnExpressionWinFunctionTarget?t.visitColumnExpressionWinFunctionTarget(this):t.visitChildren(this)}},Ey=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}columnExpression(){return this.getRuleContext(0,bB)}alias(){return this.getRuleContext(0,Yy)}AS(){return this.getToken(CG.AS,0)}identifier(){return this.getRuleContext(0,wy)}accept(t){return t.visitColumnExpressionAlias?t.visitColumnExpressionAlias(this):t.visitChildren(this)}},Ty=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}columnExpression(t){return void 0===t?this.getRuleContexts(bB):this.getRuleContext(t,bB)}EQ_DOUBLE(){return this.getToken(CG.EQ_DOUBLE,0)}EQ_SINGLE(){return this.getToken(CG.EQ_SINGLE,0)}NOT_EQ(){return this.getToken(CG.NOT_EQ,0)}LE(){return this.getToken(CG.LE,0)}GE(){return this.getToken(CG.GE,0)}LT(){return this.getToken(CG.LT,0)}GT(){return this.getToken(CG.GT,0)}IN(){return this.getToken(CG.IN,0)}LIKE(){return this.getToken(CG.LIKE,0)}ILIKE(){return this.getToken(CG.ILIKE,0)}GLOBAL(){return this.getToken(CG.GLOBAL,0)}NOT(){return this.getToken(CG.NOT,0)}accept(t){return t.visitColumnExpressionPrecedence3?t.visitColumnExpressionPrecedence3(this):t.visitChildren(this)}},oy=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}TIMESTAMP(){return this.getToken(CG.TIMESTAMP,0)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}accept(t){return t.visitColumnExpressionTimestamp?t.visitColumnExpressionTimestamp(this):t.visitChildren(this)}},Ry=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}columnExpression(t){return void 0===t?this.getRuleContexts(bB):this.getRuleContext(t,bB)}PLUS(){return this.getToken(CG.PLUS,0)}DASH(){return this.getToken(CG.DASH,0)}CONCAT(){return this.getToken(CG.CONCAT,0)}accept(t){return t.visitColumnExpressionPrecedence2?t.visitColumnExpressionPrecedence2(this):t.visitChildren(this)}},Ay=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}columnExpression(t){return void 0===t?this.getRuleContexts(bB):this.getRuleContext(t,bB)}ASTERISK(){return this.getToken(CG.ASTERISK,0)}SLASH(){return this.getToken(CG.SLASH,0)}PERCENT(){return this.getToken(CG.PERCENT,0)}accept(t){return t.visitColumnExpressionPrecedence1?t.visitColumnExpressionPrecedence1(this):t.visitChildren(this)}},Sy=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}INTERVAL(){return this.getToken(CG.INTERVAL,0)}columnExpression(){return this.getRuleContext(0,bB)}interval(){return this.getRuleContext(0,By)}accept(t){return t.visitColumnExpressionInterval?t.visitColumnExpressionInterval(this):t.visitChildren(this)}},ly=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LPAREN(){return this.getToken(CG.LPAREN,0)}selectUnionStatement(){return this.getRuleContext(0,gv)}RPAREN(){return this.getToken(CG.RPAREN,0)}accept(t){return t.visitColumnExpressionSubquery?t.visitColumnExpressionSubquery(this):t.visitChildren(this)}},Oy=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}DASH(){return this.getToken(CG.DASH,0)}columnExpression(){return this.getRuleContext(0,bB)}accept(t){return t.visitColumnExpressionNegate?t.visitColumnExpressionNegate(this):t.visitChildren(this)}},Iy=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}EXTRACT(){return this.getToken(CG.EXTRACT,0)}LPAREN(){return this.getToken(CG.LPAREN,0)}interval(){return this.getRuleContext(0,By)}FROM(){return this.getToken(CG.FROM,0)}columnExpression(){return this.getRuleContext(0,bB)}RPAREN(){return this.getToken(CG.RPAREN,0)}accept(t){return t.visitColumnExpressionExtract?t.visitColumnExpressionExtract(this):t.visitChildren(this)}},uy=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}CAST(){return this.getToken(CG.CAST,0)}LPAREN(){return this.getToken(CG.LPAREN,0)}columnExpression(){return this.getRuleContext(0,bB)}AS(){return this.getToken(CG.AS,0)}columnTypeExpression(){return this.getRuleContext(0,xB)}RPAREN(){return this.getToken(CG.RPAREN,0)}accept(t){return t.visitColumnExpressionCast?t.visitColumnExpressionCast(this):t.visitChildren(this)}},Ny=class extends bB{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}columnExpression(t){return void 0===t?this.getRuleContexts(bB):this.getRuleContext(t,bB)}OR(){return this.getToken(CG.OR,0)}accept(t){return t.visitColumnExpressionOr?t.visitColumnExpressionOr(this):t.visitChildren(this)}},Ly=class extends ga{constructor(t,e){super(t,e)}columnArgumentExpression(t){return void 0===t?this.getRuleContexts(Cy):this.getRuleContext(t,Cy)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}get ruleIndex(){return CG.RULE_columnArgumentList}accept(t){return t.visitColumnArgumentList?t.visitColumnArgumentList(this):t.visitChildren(this)}},Cy=class extends ga{constructor(t,e){super(t,e)}columnLambdaExpression(){return this.getRuleContext(0,_y)}columnExpression(){return this.getRuleContext(0,bB)}get ruleIndex(){return CG.RULE_columnArgumentExpression}accept(t){return t.visitColumnArgumentExpression?t.visitColumnArgumentExpression(this):t.visitChildren(this)}},_y=class extends ga{constructor(t,e){super(t,e)}ARROW(){return this.getToken(CG.ARROW,0)}columnExpression(){return this.getRuleContext(0,bB)}LPAREN(){return this.getToken(CG.LPAREN,0)}identifier(t){return void 0===t?this.getRuleContexts(wy):this.getRuleContext(t,wy)}RPAREN(){return this.getToken(CG.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}get ruleIndex(){return CG.RULE_columnLambdaExpression}accept(t){return t.visitColumnLambdaExpression?t.visitColumnLambdaExpression(this):t.visitChildren(this)}},Py=class extends ga{constructor(t,e){super(t,e)}identifier(t){return void 0===t?this.getRuleContexts(wy):this.getRuleContext(t,wy)}tableIdentifier(){return this.getRuleContext(0,gy)}DOT(t){return void 0===t?this.getTokens(CG.DOT):this.getToken(CG.DOT,t)}get ruleIndex(){return CG.RULE_columnIdentifier}accept(t){return t.visitColumnIdentifier?t.visitColumnIdentifier(this):t.visitChildren(this)}},My=class extends ga{constructor(t,e){super(t,e)}get ruleIndex(){return CG.RULE_tableExpression}copyFrom(t){super.copyFrom(t)}},dy=class extends My{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}tableFunctionExpression(){return this.getRuleContext(0,py)}accept(t){return t.visitTableExpressionFunction?t.visitTableExpressionFunction(this):t.visitChildren(this)}},Uy=class extends My{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}tableIdentifier(){return this.getRuleContext(0,gy)}accept(t){return t.visitTableExpressionIdentifier?t.visitTableExpressionIdentifier(this):t.visitChildren(this)}},my=class extends My{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}tableExpression(){return this.getRuleContext(0,My)}alias(){return this.getRuleContext(0,Yy)}AS(){return this.getToken(CG.AS,0)}identifier(){return this.getRuleContext(0,wy)}accept(t){return t.visitTableExpressionAlias?t.visitTableExpressionAlias(this):t.visitChildren(this)}},Dy=class extends My{constructor(t){super(t.parent,t.invokingState),super.copyFrom(t)}LPAREN(){return this.getToken(CG.LPAREN,0)}selectUnionStatement(){return this.getRuleContext(0,gv)}RPAREN(){return this.getToken(CG.RPAREN,0)}accept(t){return t.visitTableExpressionSubquery?t.visitTableExpressionSubquery(this):t.visitChildren(this)}},py=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,wy)}LPAREN(){return this.getToken(CG.LPAREN,0)}RPAREN(){return this.getToken(CG.RPAREN,0)}tableArgList(){return this.getRuleContext(0,xy)}get ruleIndex(){return CG.RULE_tableFunctionExpression}accept(t){return t.visitTableFunctionExpression?t.visitTableFunctionExpression(this):t.visitChildren(this)}},gy=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,wy)}databaseIdentifier(){return this.getRuleContext(0,Hy)}DOT(){return this.getToken(CG.DOT,0)}get ruleIndex(){return CG.RULE_tableIdentifier}accept(t){return t.visitTableIdentifier?t.visitTableIdentifier(this):t.visitChildren(this)}},xy=class extends ga{constructor(t,e){super(t,e)}tableArgExpression(t){return void 0===t?this.getRuleContexts(ky):this.getRuleContext(t,ky)}COMMA(t){return void 0===t?this.getTokens(CG.COMMA):this.getToken(CG.COMMA,t)}get ruleIndex(){return CG.RULE_tableArgList}accept(t){return t.visitTableArgList?t.visitTableArgList(this):t.visitChildren(this)}},ky=class extends ga{constructor(t,e){super(t,e)}columnIdentifier(){return this.getRuleContext(0,Py)}tableFunctionExpression(){return this.getRuleContext(0,py)}literal(){return this.getRuleContext(0,vy)}get ruleIndex(){return CG.RULE_tableArgExpression}accept(t){return t.visitTableArgExpression?t.visitTableArgExpression(this):t.visitChildren(this)}},Hy=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,wy)}get ruleIndex(){return CG.RULE_databaseIdentifier}accept(t){return t.visitDatabaseIdentifier?t.visitDatabaseIdentifier(this):t.visitChildren(this)}},Gy=class extends ga{constructor(t,e){super(t,e)}FLOATING_LITERAL(){return this.getToken(CG.FLOATING_LITERAL,0)}DOT(){return this.getToken(CG.DOT,0)}DECIMAL_LITERAL(t){return void 0===t?this.getTokens(CG.DECIMAL_LITERAL):this.getToken(CG.DECIMAL_LITERAL,t)}OCTAL_LITERAL(){return this.getToken(CG.OCTAL_LITERAL,0)}get ruleIndex(){return CG.RULE_floatingLiteral}accept(t){return t.visitFloatingLiteral?t.visitFloatingLiteral(this):t.visitChildren(this)}},Fy=class extends ga{constructor(t,e){super(t,e)}floatingLiteral(){return this.getRuleContext(0,Gy)}OCTAL_LITERAL(){return this.getToken(CG.OCTAL_LITERAL,0)}DECIMAL_LITERAL(){return this.getToken(CG.DECIMAL_LITERAL,0)}HEXADECIMAL_LITERAL(){return this.getToken(CG.HEXADECIMAL_LITERAL,0)}INF(){return this.getToken(CG.INF,0)}NAN_SQL(){return this.getToken(CG.NAN_SQL,0)}PLUS(){return this.getToken(CG.PLUS,0)}DASH(){return this.getToken(CG.DASH,0)}get ruleIndex(){return CG.RULE_numberLiteral}accept(t){return t.visitNumberLiteral?t.visitNumberLiteral(this):t.visitChildren(this)}},vy=class extends ga{constructor(t,e){super(t,e)}numberLiteral(){return this.getRuleContext(0,Fy)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}NULL_SQL(){return this.getToken(CG.NULL_SQL,0)}get ruleIndex(){return CG.RULE_literal}accept(t){return t.visitLiteral?t.visitLiteral(this):t.visitChildren(this)}},By=class extends ga{constructor(t,e){super(t,e)}SECOND(){return this.getToken(CG.SECOND,0)}MINUTE(){return this.getToken(CG.MINUTE,0)}HOUR(){return this.getToken(CG.HOUR,0)}DAY(){return this.getToken(CG.DAY,0)}WEEK(){return this.getToken(CG.WEEK,0)}MONTH(){return this.getToken(CG.MONTH,0)}QUARTER(){return this.getToken(CG.QUARTER,0)}YEAR(){return this.getToken(CG.YEAR,0)}get ruleIndex(){return CG.RULE_interval}accept(t){return t.visitInterval?t.visitInterval(this):t.visitChildren(this)}},yy=class extends ga{constructor(t,e){super(t,e)}AFTER(){return this.getToken(CG.AFTER,0)}ALIAS(){return this.getToken(CG.ALIAS,0)}ALL(){return this.getToken(CG.ALL,0)}ALTER(){return this.getToken(CG.ALTER,0)}AND(){return this.getToken(CG.AND,0)}ANTI(){return this.getToken(CG.ANTI,0)}ANY(){return this.getToken(CG.ANY,0)}ARRAY(){return this.getToken(CG.ARRAY,0)}AS(){return this.getToken(CG.AS,0)}ASCENDING(){return this.getToken(CG.ASCENDING,0)}ASOF(){return this.getToken(CG.ASOF,0)}AST(){return this.getToken(CG.AST,0)}ASYNC(){return this.getToken(CG.ASYNC,0)}ATTACH(){return this.getToken(CG.ATTACH,0)}BETWEEN(){return this.getToken(CG.BETWEEN,0)}BOTH(){return this.getToken(CG.BOTH,0)}BY(){return this.getToken(CG.BY,0)}CASE(){return this.getToken(CG.CASE,0)}CAST(){return this.getToken(CG.CAST,0)}CHECK(){return this.getToken(CG.CHECK,0)}CLEAR(){return this.getToken(CG.CLEAR,0)}CLUSTER(){return this.getToken(CG.CLUSTER,0)}CODEC(){return this.getToken(CG.CODEC,0)}COLLATE(){return this.getToken(CG.COLLATE,0)}COLUMN(){return this.getToken(CG.COLUMN,0)}COMMENT(){return this.getToken(CG.COMMENT,0)}CONSTRAINT(){return this.getToken(CG.CONSTRAINT,0)}CREATE(){return this.getToken(CG.CREATE,0)}CROSS(){return this.getToken(CG.CROSS,0)}CUBE(){return this.getToken(CG.CUBE,0)}CURRENT(){return this.getToken(CG.CURRENT,0)}DATABASE(){return this.getToken(CG.DATABASE,0)}DATABASES(){return this.getToken(CG.DATABASES,0)}DATE(){return this.getToken(CG.DATE,0)}DEDUPLICATE(){return this.getToken(CG.DEDUPLICATE,0)}DEFAULT(){return this.getToken(CG.DEFAULT,0)}DELAY(){return this.getToken(CG.DELAY,0)}DELETE(){return this.getToken(CG.DELETE,0)}DESCRIBE(){return this.getToken(CG.DESCRIBE,0)}DESC(){return this.getToken(CG.DESC,0)}DESCENDING(){return this.getToken(CG.DESCENDING,0)}DETACH(){return this.getToken(CG.DETACH,0)}DICTIONARIES(){return this.getToken(CG.DICTIONARIES,0)}DICTIONARY(){return this.getToken(CG.DICTIONARY,0)}DISK(){return this.getToken(CG.DISK,0)}DISTINCT(){return this.getToken(CG.DISTINCT,0)}DISTRIBUTED(){return this.getToken(CG.DISTRIBUTED,0)}DROP(){return this.getToken(CG.DROP,0)}ELSE(){return this.getToken(CG.ELSE,0)}END(){return this.getToken(CG.END,0)}ENGINE(){return this.getToken(CG.ENGINE,0)}EVENTS(){return this.getToken(CG.EVENTS,0)}EXISTS(){return this.getToken(CG.EXISTS,0)}EXPLAIN(){return this.getToken(CG.EXPLAIN,0)}EXPRESSION(){return this.getToken(CG.EXPRESSION,0)}EXTRACT(){return this.getToken(CG.EXTRACT,0)}FETCHES(){return this.getToken(CG.FETCHES,0)}FINAL(){return this.getToken(CG.FINAL,0)}FIRST(){return this.getToken(CG.FIRST,0)}FLUSH(){return this.getToken(CG.FLUSH,0)}FOR(){return this.getToken(CG.FOR,0)}FOLLOWING(){return this.getToken(CG.FOLLOWING,0)}FORMAT(){return this.getToken(CG.FORMAT,0)}FREEZE(){return this.getToken(CG.FREEZE,0)}FROM(){return this.getToken(CG.FROM,0)}FULL(){return this.getToken(CG.FULL,0)}FUNCTION(){return this.getToken(CG.FUNCTION,0)}GLOBAL(){return this.getToken(CG.GLOBAL,0)}GRANULARITY(){return this.getToken(CG.GRANULARITY,0)}GROUP(){return this.getToken(CG.GROUP,0)}HAVING(){return this.getToken(CG.HAVING,0)}HIERARCHICAL(){return this.getToken(CG.HIERARCHICAL,0)}ID(){return this.getToken(CG.ID,0)}IF(){return this.getToken(CG.IF,0)}ILIKE(){return this.getToken(CG.ILIKE,0)}IN(){return this.getToken(CG.IN,0)}INDEX(){return this.getToken(CG.INDEX,0)}INJECTIVE(){return this.getToken(CG.INJECTIVE,0)}INNER(){return this.getToken(CG.INNER,0)}INSERT(){return this.getToken(CG.INSERT,0)}INTERVAL(){return this.getToken(CG.INTERVAL,0)}INTO(){return this.getToken(CG.INTO,0)}IS(){return this.getToken(CG.IS,0)}IS_OBJECT_ID(){return this.getToken(CG.IS_OBJECT_ID,0)}JOIN(){return this.getToken(CG.JOIN,0)}JSON_FALSE(){return this.getToken(CG.JSON_FALSE,0)}JSON_TRUE(){return this.getToken(CG.JSON_TRUE,0)}KEY(){return this.getToken(CG.KEY,0)}KILL(){return this.getToken(CG.KILL,0)}LAST(){return this.getToken(CG.LAST,0)}LAYOUT(){return this.getToken(CG.LAYOUT,0)}LEADING(){return this.getToken(CG.LEADING,0)}LEFT(){return this.getToken(CG.LEFT,0)}LIFETIME(){return this.getToken(CG.LIFETIME,0)}LIKE(){return this.getToken(CG.LIKE,0)}LIMIT(){return this.getToken(CG.LIMIT,0)}LIVE(){return this.getToken(CG.LIVE,0)}LOCAL(){return this.getToken(CG.LOCAL,0)}LOGS(){return this.getToken(CG.LOGS,0)}MATERIALIZE(){return this.getToken(CG.MATERIALIZE,0)}MATERIALIZED(){return this.getToken(CG.MATERIALIZED,0)}MAX(){return this.getToken(CG.MAX,0)}MERGES(){return this.getToken(CG.MERGES,0)}MIN(){return this.getToken(CG.MIN,0)}MODIFY(){return this.getToken(CG.MODIFY,0)}MOVE(){return this.getToken(CG.MOVE,0)}MUTATION(){return this.getToken(CG.MUTATION,0)}NO(){return this.getToken(CG.NO,0)}NOT(){return this.getToken(CG.NOT,0)}NULLS(){return this.getToken(CG.NULLS,0)}OFFSET(){return this.getToken(CG.OFFSET,0)}ON(){return this.getToken(CG.ON,0)}OPTIMIZE(){return this.getToken(CG.OPTIMIZE,0)}OR(){return this.getToken(CG.OR,0)}ORDER(){return this.getToken(CG.ORDER,0)}OUTER(){return this.getToken(CG.OUTER,0)}OUTFILE(){return this.getToken(CG.OUTFILE,0)}OVER(){return this.getToken(CG.OVER,0)}PARTITION(){return this.getToken(CG.PARTITION,0)}POPULATE(){return this.getToken(CG.POPULATE,0)}PRECEDING(){return this.getToken(CG.PRECEDING,0)}PREWHERE(){return this.getToken(CG.PREWHERE,0)}PRIMARY(){return this.getToken(CG.PRIMARY,0)}RANGE(){return this.getToken(CG.RANGE,0)}RELOAD(){return this.getToken(CG.RELOAD,0)}REMOVE(){return this.getToken(CG.REMOVE,0)}RENAME(){return this.getToken(CG.RENAME,0)}REPLACE(){return this.getToken(CG.REPLACE,0)}REPLICA(){return this.getToken(CG.REPLICA,0)}REPLICATED(){return this.getToken(CG.REPLICATED,0)}RIGHT(){return this.getToken(CG.RIGHT,0)}ROLLUP(){return this.getToken(CG.ROLLUP,0)}ROW(){return this.getToken(CG.ROW,0)}ROWS(){return this.getToken(CG.ROWS,0)}SAMPLE(){return this.getToken(CG.SAMPLE,0)}SELECT(){return this.getToken(CG.SELECT,0)}SEMI(){return this.getToken(CG.SEMI,0)}SENDS(){return this.getToken(CG.SENDS,0)}SET(){return this.getToken(CG.SET,0)}SETTINGS(){return this.getToken(CG.SETTINGS,0)}SHOW(){return this.getToken(CG.SHOW,0)}SOURCE(){return this.getToken(CG.SOURCE,0)}START(){return this.getToken(CG.START,0)}STOP(){return this.getToken(CG.STOP,0)}SUBSTRING(){return this.getToken(CG.SUBSTRING,0)}SYNC(){return this.getToken(CG.SYNC,0)}SYNTAX(){return this.getToken(CG.SYNTAX,0)}SYSTEM(){return this.getToken(CG.SYSTEM,0)}TABLE(){return this.getToken(CG.TABLE,0)}TABLES(){return this.getToken(CG.TABLES,0)}TEMPORARY(){return this.getToken(CG.TEMPORARY,0)}TEST(){return this.getToken(CG.TEST,0)}THEN(){return this.getToken(CG.THEN,0)}TIES(){return this.getToken(CG.TIES,0)}TIMEOUT(){return this.getToken(CG.TIMEOUT,0)}TIMESTAMP(){return this.getToken(CG.TIMESTAMP,0)}TOTALS(){return this.getToken(CG.TOTALS,0)}TRAILING(){return this.getToken(CG.TRAILING,0)}TRIM(){return this.getToken(CG.TRIM,0)}TRUNCATE(){return this.getToken(CG.TRUNCATE,0)}TO(){return this.getToken(CG.TO,0)}TOP(){return this.getToken(CG.TOP,0)}TTL(){return this.getToken(CG.TTL,0)}TYPE(){return this.getToken(CG.TYPE,0)}UNBOUNDED(){return this.getToken(CG.UNBOUNDED,0)}UNION(){return this.getToken(CG.UNION,0)}UPDATE(){return this.getToken(CG.UPDATE,0)}USE(){return this.getToken(CG.USE,0)}USING(){return this.getToken(CG.USING,0)}UUID(){return this.getToken(CG.UUID,0)}VALUES(){return this.getToken(CG.VALUES,0)}VIEW(){return this.getToken(CG.VIEW,0)}VOLUME(){return this.getToken(CG.VOLUME,0)}WATCH(){return this.getToken(CG.WATCH,0)}WHEN(){return this.getToken(CG.WHEN,0)}WHERE(){return this.getToken(CG.WHERE,0)}WINDOW(){return this.getToken(CG.WINDOW,0)}WITH(){return this.getToken(CG.WITH,0)}get ruleIndex(){return CG.RULE_keyword}accept(t){return t.visitKeyword?t.visitKeyword(this):t.visitChildren(this)}},fy=class extends ga{constructor(t,e){super(t,e)}DATE(){return this.getToken(CG.DATE,0)}FIRST(){return this.getToken(CG.FIRST,0)}ID(){return this.getToken(CG.ID,0)}KEY(){return this.getToken(CG.KEY,0)}get ruleIndex(){return CG.RULE_keywordForAlias}accept(t){return t.visitKeywordForAlias?t.visitKeywordForAlias(this):t.visitChildren(this)}},Yy=class extends ga{constructor(t,e){super(t,e)}IDENTIFIER(){return this.getToken(CG.IDENTIFIER,0)}keywordForAlias(){return this.getRuleContext(0,fy)}get ruleIndex(){return CG.RULE_alias}accept(t){return t.visitAlias?t.visitAlias(this):t.visitChildren(this)}},wy=class extends ga{constructor(t,e){super(t,e)}IDENTIFIER(){return this.getToken(CG.IDENTIFIER,0)}interval(){return this.getRuleContext(0,By)}keyword(){return this.getRuleContext(0,yy)}get ruleIndex(){return CG.RULE_identifier}accept(t){return t.visitIdentifier?t.visitIdentifier(this):t.visitChildren(this)}},by=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,wy)}NULL_SQL(){return this.getToken(CG.NULL_SQL,0)}get ruleIndex(){return CG.RULE_identifierOrNull}accept(t){return t.visitIdentifierOrNull?t.visitIdentifierOrNull(this):t.visitChildren(this)}},Wy=class extends ga{constructor(t,e){super(t,e)}STRING_LITERAL(){return this.getToken(CG.STRING_LITERAL,0)}EQ_SINGLE(){return this.getToken(CG.EQ_SINGLE,0)}numberLiteral(){return this.getRuleContext(0,Fy)}get ruleIndex(){return CG.RULE_enumValue}accept(t){return t.visitEnumValue?t.visitEnumValue(this):t.visitChildren(this)}},Vy=class extends Ii{},Xy=["Null","Set","Log","Memory","TinyLog","StripeLog"],Ky=["MergeTree()","Merge()","ReplacingMergeTree()","CollapsingMergeTree()","AggregatingMergeTree()","Buffer()","Dictionary()","Distributed()","File()","GraphiteMergeTree()","Join()","Kafka()","MySQL()","URL()","ReplicatedAggregatingMergeTree()","ReplicatedCollapsingMergeTree()","ReplicatedGraphiteMergeTree()","ReplicatedMergeTree()","ReplicatedReplacingMergeTree()","ReplicatedSummingMergeTree()","ReplicatedVersionedCollapsingMergeTree()","SummingMergeTree()","VersionedCollapsingMergeTree()","PostgreSQL()"],Qy={SPACE:CG.WHITESPACE,FROM:CG.FROM,OPENING_BRACKET:CG.LPAREN,CLOSING_BRACKET:CG.RPAREN,ALTER:CG.ALTER,INSERT:CG.INSERT,UPDATE:CG.UPDATE,JOIN:CG.JOIN,SEMICOLON:CG.SEMICOLON,SELECT:CG.SELECT};var Jy=new Set(function(){let t=[],e=CG.JSON_FALSE,s=CG.WHITESPACE;for(let a=e;a<=s;a++)a!==CG.ASTERISK&&t.push(a);return t.push(CG.EOF),t.push(CG.QUESTIONMARK),t}()),Zy=new Set([CG.RULE_databaseIdentifier,CG.RULE_tableIdentifier,CG.RULE_identifier,CG.RULE_columnIdentifier,CG.RULE_identifierOrNull,CG.RULE_literal]),qy=class extends Vy{constructor(){super(),this.visitTableIdentifier=t=>{try{this.symbolTable.addNewSymbolOfType(qc,this.scope,t.getText())}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.visitTableExpressionAlias=t=>{try{var e,s,a;this.symbolTable.addNewSymbolOfType(qc,this.scope,null===(e=t.tableExpression())||void 0===e?void 0:e.getText(),(null===(s=t.alias())||void 0===s?void 0:s.getText())||(null===(a=t.identifier())||void 0===a?void 0:a.getText())||void 0)}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.visitColumnExpressionAlias=t=>{try{var e,s;let a=(null===(e=t.alias())||void 0===e?void 0:e.getText())||(null===(s=t.identifier())||void 0===s?void 0:s.getText());a&&this.symbolTable.addNewSymbolOfType(zc,this.scope,a)}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.symbolTable=new Zc("",{allowDuplicateSymbols:!0}),this.scope=this.symbolTable.addNewSymbolOfType(Bc,void 0)}};function jy(t,e){if(!e||"update"===e)return t.root();switch(e){case"from":return t.fromClause();case"alter":return t.alterStatement();case"insert":return t.insertStatement();case"select":return t.selectStatement()}}var zy={Lexer:LG,Parser:CG,tokenDictionary:Qy,ignoredTokens:Jy,rulesToVisit:Zy,getParseTree:jy,enrichAutocompleteResult:function(t,e,s,a,r,i){let{shouldSuggestColumns:c,shouldSuggestColumnAliases:n,...h}=function(t,e,s){let a,r,i=!1,c=!1,n=!1,h=!1,E=!1;for(let[T,o]of t)if(uC(e,o))switch(T){case CG.RULE_tableIdentifier:if(o.ruleList.includes(CG.RULE_createStatement)||o.ruleList.includes(CG.RULE_columnsExpression))break;a=UC(s,Qy,e,CG.VIEW)?"VIEWS":UC(s,Qy,e,CG.TABLE)?"TABLES":"ALL";break;case CG.RULE_identifier:o.ruleList.includes(CG.RULE_columnExpression)&&(c=!0,i=!0),o.ruleList.includes(CG.RULE_alterTableClause)&&(h=!0);break;case CG.RULE_columnIdentifier:h=!0,(o.ruleList.includes(CG.RULE_orderExpression)||o.ruleList.includes(CG.RULE_groupByClause))&&(E=!0);break;case CG.RULE_identifierOrNull:o.ruleList.includes(CG.RULE_engineClause)&&(r={engines:Xy,functionalEngines:Ky});break;case CG.RULE_databaseIdentifier:n=!0}return{suggestViewsOrTables:a,suggestAggregateFunctions:i,suggestFunctions:c,suggestEngines:r,suggestDatabases:n,shouldSuggestColumns:h,shouldSuggestColumnAliases:E}}(e,a,s),E={...t,...h,suggestTemplates:_C(i,r)};if(c||n){let t=new qy,{tableContextSuggestion:e,suggestColumnAliases:a}=mC(LG,CG,t,Qy,jy,s,r,i);c&&e&&(E.suggestColumns=e),n&&a&&(E.suggestColumnAliases=a)}return E}},$y=(qi=class t extends $r{constructor(e){super(e),this.interpreter=new hi(this,t._ATN,t.decisionsToDFA,new Si)}get grammarFileName(){return"YQL.g4"}get literalNames(){return t.literalNames}get symbolicNames(){return t.symbolicNames}get ruleNames(){return t.ruleNames}get serializedATN(){return t._serializedATN}get channelNames(){return t.channelNames}get modeNames(){return t.modeNames}static get _ATN(){return t.__ATN||(t.__ATN=(new fr).deserialize(t._serializedATN)),t.__ATN}get vocabulary(){return t.vocabulary}},qi.QUERY=1,qi.EQUALS=2,qi.EQUALS2=3,qi.NOT_EQUALS=4,qi.NOT_EQUALS2=5,qi.LESS=6,qi.LESS_OR_EQ=7,qi.GREATER=8,qi.GREATER_OR_EQ=9,qi.SHIFT_LEFT=10,qi.ROT_LEFT=11,qi.AMPERSAND=12,qi.PIPE=13,qi.DOUBLE_PIPE=14,qi.STRUCT_OPEN=15,qi.STRUCT_CLOSE=16,qi.PLUS=17,qi.MINUS=18,qi.TILDA=19,qi.ASTERISK=20,qi.SLASH=21,qi.BACKSLASH=22,qi.PERCENT=23,qi.SEMICOLON=24,qi.DOT=25,qi.COMMA=26,qi.LPAREN=27,qi.RPAREN=28,qi.QUESTION=29,qi.COLON=30,qi.AT=31,qi.DOUBLE_AT=32,qi.DOLLAR=33,qi.QUOTE_DOUBLE=34,qi.QUOTE_SINGLE=35,qi.BACKTICK=36,qi.LBRACE_CURLY=37,qi.RBRACE_CURLY=38,qi.CARET=39,qi.NAMESPACE=40,qi.ARROW=41,qi.RBRACE_SQUARE=42,qi.LBRACE_SQUARE=43,qi.ABORT=44,qi.ACTION=45,qi.ADD=46,qi.AFTER=47,qi.ALL=48,qi.ALTER=49,qi.ANALYZE=50,qi.AND=51,qi.ANSI=52,qi.ANY=53,qi.ARRAY=54,qi.AS=55,qi.ASC=56,qi.ASSUME=57,qi.ASYMMETRIC=58,qi.ASYNC=59,qi.ATTACH=60,qi.ATTRIBUTES=61,qi.AUTOINCREMENT=62,qi.AUTOMAP=63,qi.BEFORE=64,qi.BEGIN=65,qi.BERNOULLI=66,qi.BETWEEN=67,qi.BITCAST=68,qi.BY=69,qi.CALLABLE=70,qi.CASCADE=71,qi.CASE=72,qi.CAST=73,qi.CHANGEFEED=74,qi.CHECK=75,qi.COLLATE=76,qi.COLUMN=77,qi.COLUMNS=78,qi.COMMIT=79,qi.COMPACT=80,qi.CONDITIONAL=81,qi.CONFLICT=82,qi.CONNECT=83,qi.CONSTRAINT=84,qi.CONSUMER=85,qi.COVER=86,qi.CREATE=87,qi.CROSS=88,qi.CUBE=89,qi.CURRENT=90,qi.CURRENT_DATE=91,qi.CURRENT_TIME=92,qi.CURRENT_TIMESTAMP=93,qi.DATA=94,qi.DATABASE=95,qi.DECIMAL=96,qi.DECLARE=97,qi.DEFAULT=98,qi.DEFERRABLE=99,qi.DEFERRED=100,qi.DEFINE=101,qi.DELETE=102,qi.DESC=103,qi.DESCRIBE=104,qi.DETACH=105,qi.DICT=106,qi.DIRECTORY=107,qi.DISABLE=108,qi.DISCARD=109,qi.DISTINCT=110,qi.DO=111,qi.DROP=112,qi.EACH=113,qi.ELSE=114,qi.EMPTY=115,qi.EMPTY_ACTION=116,qi.ENCRYPTED=117,qi.END=118,qi.ENUM=119,qi.ERASE=120,qi.ERROR=121,qi.ESCAPE=122,qi.EVALUATE=123,qi.EXCEPT=124,qi.EXCLUDE=125,qi.EXCLUSION=126,qi.EXCLUSIVE=127,qi.EXISTS=128,qi.EXPLAIN=129,qi.EXPORT=130,qi.EXTERNAL=131,qi.FAIL=132,qi.FALSE=133,qi.FAMILY=134,qi.FILTER=135,qi.FIRST=136,qi.FLATTEN=137,qi.FLOW=138,qi.FOLLOWING=139,qi.FOR=140,qi.FOREIGN=141,qi.FROM=142,qi.FULL=143,qi.FUNCTION=144,qi.GLOB=145,qi.GLOBAL=146,qi.GRANT=147,qi.GROUP=148,qi.GROUPING=149,qi.GROUPS=150,qi.HASH=151,qi.HAVING=152,qi.HOP=153,qi.IF=154,qi.IGNORE=155,qi.ILIKE=156,qi.IMMEDIATE=157,qi.IMPORT=158,qi.IN=159,qi.INDEX=160,qi.INDEXED=161,qi.INHERITS=162,qi.INITIAL=163,qi.INITIALLY=164,qi.INNER=165,qi.INSERT=166,qi.INSTEAD=167,qi.INTERSECT=168,qi.INTO=169,qi.IS=170,qi.ISNULL=171,qi.JOIN=172,qi.JSON_EXISTS=173,qi.JSON_QUERY=174,qi.JSON_VALUE=175,qi.KEY=176,qi.LAST=177,qi.LEFT=178,qi.LEGACY=179,qi.LIKE=180,qi.LIMIT=181,qi.LIST=182,qi.LOCAL=183,qi.MANAGE=184,qi.MATCH=185,qi.MATCHES=186,qi.MATCH_RECOGNIZE=187,qi.MEASURES=188,qi.MICROSECONDS=189,qi.MILLISECONDS=190,qi.MODIFY=191,qi.NANOSECONDS=192,qi.NATURAL=193,qi.NEXT=194,qi.NO=195,qi.NOT=196,qi.NOTNULL=197,qi.NULL=198,qi.NULLS=199,qi.OBJECT=200,qi.OF=201,qi.OFFSET=202,qi.OMIT=203,qi.ON=204,qi.ONE=205,qi.ONLY=206,qi.OPTION=207,qi.OPTIONAL=208,qi.OR=209,qi.ORDER=210,qi.OTHERS=211,qi.OUTER=212,qi.OVER=213,qi.PARALLEL=214,qi.PARTITION=215,qi.PASSING=216,qi.PASSWORD=217,qi.PAST=218,qi.PATTERN=219,qi.PER=220,qi.PERMUTE=221,qi.PLAN=222,qi.PRAGMA=223,qi.PRECEDING=224,qi.PRESORT=225,qi.PRIMARY=226,qi.PRIVILEGES=227,qi.PROCESS=228,qi.QUEUE=229,qi.RAISE=230,qi.RANGE=231,qi.REDUCE=232,qi.REFERENCES=233,qi.REGEXP=234,qi.REINDEX=235,qi.RELEASE=236,qi.REMOVE=237,qi.RENAME=238,qi.REPEATABLE=239,qi.REPLACE=240,qi.REPLICATION=241,qi.RESET=242,qi.RESOURCE=243,qi.RESPECT=244,qi.RESTRICT=245,qi.RESULT=246,qi.RETURN=247,qi.RETURNING=248,qi.REVERT=249,qi.REVOKE=250,qi.RIGHT=251,qi.RLIKE=252,qi.ROLLBACK=253,qi.ROLLUP=254,qi.ROW=255,qi.ROWS=256,qi.SAMPLE=257,qi.SAVEPOINT=258,qi.SCHEMA=259,qi.SECONDS=260,qi.SEEK=261,qi.SELECT=262,qi.SEMI=263,qi.SET=264,qi.SETS=265,qi.SHOW=266,qi.SKIP_RULE=267,qi.SOURCE=268,qi.STREAM=269,qi.STRUCT=270,qi.SUBQUERY=271,qi.SUBSET=272,qi.SYMBOLS=273,qi.SYMMETRIC=274,qi.SYNC=275,qi.SYSTEM=276,qi.TABLE=277,qi.TABLES=278,qi.TABLESAMPLE=279,qi.TABLESTORE=280,qi.TAGGED=281,qi.TEMP=282,qi.TEMPORARY=283,qi.THEN=284,qi.TIES=285,qi.TO=286,qi.TOPIC=287,qi.TRANSACTION=288,qi.TRIGGER=289,qi.TRUE=290,qi.TUPLE=291,qi.TYPE=292,qi.UNBOUNDED=293,qi.UNCONDITIONAL=294,qi.UNION=295,qi.UNIQUE=296,qi.UNKNOWN=297,qi.UNMATCHED=298,qi.UPDATE=299,qi.UPSERT=300,qi.USE=301,qi.USER=302,qi.USING=303,qi.VACUUM=304,qi.VALUES=305,qi.VARIANT=306,qi.VIEW=307,qi.VIRTUAL=308,qi.WHEN=309,qi.WHERE=310,qi.WINDOW=311,qi.WITH=312,qi.WITHOUT=313,qi.WRAPPER=314,qi.XOR=315,qi.STRING_VALUE=316,qi.ID_PLAIN=317,qi.ID_QUOTED=318,qi.DIGITS=319,qi.INTEGER_VALUE=320,qi.REAL=321,qi.BLOB=322,qi.WS=323,qi.COMMENT=324,qi.channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"],qi.literalNames=[null,null,"'='","'=='","'!='","'<>'","'<'","'<='","'>'","'>='","'<<'","'|<<'","'&'","'|'","'||'","'<|'","'|>'","'+'","'-'","'~'","'*'","'/'","''","'%'","';'","'.'","','","'('","')'","'?'","':'","'@'","'@@'","'$'","'\"'","'''","'`'","'{'","'}'","'^'","'::'","'->'","']'","'['"],qi.symbolicNames=[null,"QUERY","EQUALS","EQUALS2","NOT_EQUALS","NOT_EQUALS2","LESS","LESS_OR_EQ","GREATER","GREATER_OR_EQ","SHIFT_LEFT","ROT_LEFT","AMPERSAND","PIPE","DOUBLE_PIPE","STRUCT_OPEN","STRUCT_CLOSE","PLUS","MINUS","TILDA","ASTERISK","SLASH","BACKSLASH","PERCENT","SEMICOLON","DOT","COMMA","LPAREN","RPAREN","QUESTION","COLON","AT","DOUBLE_AT","DOLLAR","QUOTE_DOUBLE","QUOTE_SINGLE","BACKTICK","LBRACE_CURLY","RBRACE_CURLY","CARET","NAMESPACE","ARROW","RBRACE_SQUARE","LBRACE_SQUARE","ABORT","ACTION","ADD","AFTER","ALL","ALTER","ANALYZE","AND","ANSI","ANY","ARRAY","AS","ASC","ASSUME","ASYMMETRIC","ASYNC","ATTACH","ATTRIBUTES","AUTOINCREMENT","AUTOMAP","BEFORE","BEGIN","BERNOULLI","BETWEEN","BITCAST","BY","CALLABLE","CASCADE","CASE","CAST","CHANGEFEED","CHECK","COLLATE","COLUMN","COLUMNS","COMMIT","COMPACT","CONDITIONAL","CONFLICT","CONNECT","CONSTRAINT","CONSUMER","COVER","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATA","DATABASE","DECIMAL","DECLARE","DEFAULT","DEFERRABLE","DEFERRED","DEFINE","DELETE","DESC","DESCRIBE","DETACH","DICT","DIRECTORY","DISABLE","DISCARD","DISTINCT","DO","DROP","EACH","ELSE","EMPTY","EMPTY_ACTION","ENCRYPTED","END","ENUM","ERASE","ERROR","ESCAPE","EVALUATE","EXCEPT","EXCLUDE","EXCLUSION","EXCLUSIVE","EXISTS","EXPLAIN","EXPORT","EXTERNAL","FAIL","FALSE","FAMILY","FILTER","FIRST","FLATTEN","FLOW","FOLLOWING","FOR","FOREIGN","FROM","FULL","FUNCTION","GLOB","GLOBAL","GRANT","GROUP","GROUPING","GROUPS","HASH","HAVING","HOP","IF","IGNORE","ILIKE","IMMEDIATE","IMPORT","IN","INDEX","INDEXED","INHERITS","INITIAL","INITIALLY","INNER","INSERT","INSTEAD","INTERSECT","INTO","IS","ISNULL","JOIN","JSON_EXISTS","JSON_QUERY","JSON_VALUE","KEY","LAST","LEFT","LEGACY","LIKE","LIMIT","LIST","LOCAL","MANAGE","MATCH","MATCHES","MATCH_RECOGNIZE","MEASURES","MICROSECONDS","MILLISECONDS","MODIFY","NANOSECONDS","NATURAL","NEXT","NO","NOT","NOTNULL","NULL","NULLS","OBJECT","OF","OFFSET","OMIT","ON","ONE","ONLY","OPTION","OPTIONAL","OR","ORDER","OTHERS","OUTER","OVER","PARALLEL","PARTITION","PASSING","PASSWORD","PAST","PATTERN","PER","PERMUTE","PLAN","PRAGMA","PRECEDING","PRESORT","PRIMARY","PRIVILEGES","PROCESS","QUEUE","RAISE","RANGE","REDUCE","REFERENCES","REGEXP","REINDEX","RELEASE","REMOVE","RENAME","REPEATABLE","REPLACE","REPLICATION","RESET","RESOURCE","RESPECT","RESTRICT","RESULT","RETURN","RETURNING","REVERT","REVOKE","RIGHT","RLIKE","ROLLBACK","ROLLUP","ROW","ROWS","SAMPLE","SAVEPOINT","SCHEMA","SECONDS","SEEK","SELECT","SEMI","SET","SETS","SHOW","SKIP_RULE","SOURCE","STREAM","STRUCT","SUBQUERY","SUBSET","SYMBOLS","SYMMETRIC","SYNC","SYSTEM","TABLE","TABLES","TABLESAMPLE","TABLESTORE","TAGGED","TEMP","TEMPORARY","THEN","TIES","TO","TOPIC","TRANSACTION","TRIGGER","TRUE","TUPLE","TYPE","UNBOUNDED","UNCONDITIONAL","UNION","UNIQUE","UNKNOWN","UNMATCHED","UPDATE","UPSERT","USE","USER","USING","VACUUM","VALUES","VARIANT","VIEW","VIRTUAL","WHEN","WHERE","WINDOW","WITH","WITHOUT","WRAPPER","XOR","STRING_VALUE","ID_PLAIN","ID_QUOTED","DIGITS","INTEGER_VALUE","REAL","BLOB","WS","COMMENT"],qi.modeNames=["DEFAULT_MODE"],qi.ruleNames=["QUERY","EQUALS","EQUALS2","NOT_EQUALS","NOT_EQUALS2","LESS","LESS_OR_EQ","GREATER","GREATER_OR_EQ","SHIFT_LEFT","ROT_LEFT","AMPERSAND","PIPE","DOUBLE_PIPE","STRUCT_OPEN","STRUCT_CLOSE","PLUS","MINUS","TILDA","ASTERISK","SLASH","BACKSLASH","PERCENT","SEMICOLON","DOT","COMMA","LPAREN","RPAREN","QUESTION","COLON","AT","DOUBLE_AT","DOLLAR","QUOTE_DOUBLE","QUOTE_SINGLE","BACKTICK","LBRACE_CURLY","RBRACE_CURLY","CARET","NAMESPACE","ARROW","RBRACE_SQUARE","LBRACE_SQUARE","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ABORT","ACTION","ADD","AFTER","ALL","ALTER","ANALYZE","AND","ANSI","ANY","ARRAY","AS","ASC","ASSUME","ASYMMETRIC","ASYNC","ATTACH","ATTRIBUTES","AUTOINCREMENT","AUTOMAP","BEFORE","BEGIN","BERNOULLI","BETWEEN","BITCAST","BY","CALLABLE","CASCADE","CASE","CAST","CHANGEFEED","CHECK","COLLATE","COLUMN","COLUMNS","COMMIT","COMPACT","CONDITIONAL","CONFLICT","CONNECT","CONSTRAINT","CONSUMER","COVER","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATA","DATABASE","DECIMAL","DECLARE","DEFAULT","DEFERRABLE","DEFERRED","DEFINE","DELETE","DESC","DESCRIBE","DETACH","DICT","DIRECTORY","DISABLE","DISCARD","DISTINCT","DO","DROP","EACH","ELSE","EMPTY","EMPTY_ACTION","ENCRYPTED","END","ENUM","ERASE","ERROR","ESCAPE","EVALUATE","EXCEPT","EXCLUDE","EXCLUSION","EXCLUSIVE","EXISTS","EXPLAIN","EXPORT","EXTERNAL","FAIL","FALSE","FAMILY","FILTER","FIRST","FLATTEN","FLOW","FOLLOWING","FOR","FOREIGN","FROM","FULL","FUNCTION","GLOB","GLOBAL","GRANT","GROUP","GROUPING","GROUPS","HASH","HAVING","HOP","IF","IGNORE","ILIKE","IMMEDIATE","IMPORT","IN","INDEX","INDEXED","INHERITS","INITIAL","INITIALLY","INNER","INSERT","INSTEAD","INTERSECT","INTO","IS","ISNULL","JOIN","JSON_EXISTS","JSON_QUERY","JSON_VALUE","KEY","LAST","LEFT","LEGACY","LIKE","LIMIT","LIST","LOCAL","MANAGE","MATCH","MATCHES","MATCH_RECOGNIZE","MEASURES","MICROSECONDS","MILLISECONDS","MODIFY","NANOSECONDS","NATURAL","NEXT","NO","NOT","NOTNULL","NULL","NULLS","OBJECT","OF","OFFSET","OMIT","ON","ONE","ONLY","OPTION","OPTIONAL","OR","ORDER","OTHERS","OUTER","OVER","PARALLEL","PARTITION","PASSING","PASSWORD","PAST","PATTERN","PER","PERMUTE","PLAN","PRAGMA","PRECEDING","PRESORT","PRIMARY","PRIVILEGES","PROCESS","QUEUE","RAISE","RANGE","REDUCE","REFERENCES","REGEXP","REINDEX","RELEASE","REMOVE","RENAME","REPEATABLE","REPLACE","REPLICATION","RESET","RESOURCE","RESPECT","RESTRICT","RESULT","RETURN","RETURNING","REVERT","REVOKE","RIGHT","RLIKE","ROLLBACK","ROLLUP","ROW","ROWS","SAMPLE","SAVEPOINT","SCHEMA","SECONDS","SEEK","SELECT","SEMI","SET","SETS","SHOW","SKIP_RULE","SOURCE","STREAM","STRUCT","SUBQUERY","SUBSET","SYMBOLS","SYMMETRIC","SYNC","SYSTEM","TABLE","TABLES","TABLESAMPLE","TABLESTORE","TAGGED","TEMP","TEMPORARY","THEN","TIES","TO","TOPIC","TRANSACTION","TRIGGER","TRUE","TUPLE","TYPE","UNBOUNDED","UNCONDITIONAL","UNION","UNIQUE","UNKNOWN","UNMATCHED","UPDATE","UPSERT","USE","USER","USING","VACUUM","VALUES","VARIANT","VIEW","VIRTUAL","WHEN","WHERE","WINDOW","WITH","WITHOUT","WRAPPER","XOR","STRING_CORE_SINGLE","STRING_CORE_DOUBLE","STRING_SINGLE","STRING_DOUBLE","STRING_MULTILINE","STRING_VALUE","ID_PLAIN","ID_QUOTED_CORE","ID_QUOTED","DIGIT","HEXDIGIT","HEXDIGITS","OCTDIGITS","BINDIGITS","DECDIGITS","DIGITS","INTEGER_VALUE","FLOAT_EXP","REAL","BLOB","MULTILINE_COMMENT","LINE_COMMENT","WS","COMMENT"],qi._serializedATN=[4,0,324,3058,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,2,230,7,230,2,231,7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,235,7,235,2,236,7,236,2,237,7,237,2,238,7,238,2,239,7,239,2,240,7,240,2,241,7,241,2,242,7,242,2,243,7,243,2,244,7,244,2,245,7,245,2,246,7,246,2,247,7,247,2,248,7,248,2,249,7,249,2,250,7,250,2,251,7,251,2,252,7,252,2,253,7,253,2,254,7,254,2,255,7,255,2,256,7,256,2,257,7,257,2,258,7,258,2,259,7,259,2,260,7,260,2,261,7,261,2,262,7,262,2,263,7,263,2,264,7,264,2,265,7,265,2,266,7,266,2,267,7,267,2,268,7,268,2,269,7,269,2,270,7,270,2,271,7,271,2,272,7,272,2,273,7,273,2,274,7,274,2,275,7,275,2,276,7,276,2,277,7,277,2,278,7,278,2,279,7,279,2,280,7,280,2,281,7,281,2,282,7,282,2,283,7,283,2,284,7,284,2,285,7,285,2,286,7,286,2,287,7,287,2,288,7,288,2,289,7,289,2,290,7,290,2,291,7,291,2,292,7,292,2,293,7,293,2,294,7,294,2,295,7,295,2,296,7,296,2,297,7,297,2,298,7,298,2,299,7,299,2,300,7,300,2,301,7,301,2,302,7,302,2,303,7,303,2,304,7,304,2,305,7,305,2,306,7,306,2,307,7,307,2,308,7,308,2,309,7,309,2,310,7,310,2,311,7,311,2,312,7,312,2,313,7,313,2,314,7,314,2,315,7,315,2,316,7,316,2,317,7,317,2,318,7,318,2,319,7,319,2,320,7,320,2,321,7,321,2,322,7,322,2,323,7,323,2,324,7,324,2,325,7,325,2,326,7,326,2,327,7,327,2,328,7,328,2,329,7,329,2,330,7,330,2,331,7,331,2,332,7,332,2,333,7,333,2,334,7,334,2,335,7,335,2,336,7,336,2,337,7,337,2,338,7,338,2,339,7,339,2,340,7,340,2,341,7,341,2,342,7,342,2,343,7,343,2,344,7,344,2,345,7,345,2,346,7,346,2,347,7,347,2,348,7,348,2,349,7,349,2,350,7,350,2,351,7,351,2,352,7,352,2,353,7,353,2,354,7,354,2,355,7,355,2,356,7,356,2,357,7,357,2,358,7,358,2,359,7,359,2,360,7,360,2,361,7,361,2,362,7,362,2,363,7,363,2,364,7,364,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,2,1,2,1,2,1,3,1,3,1,3,1,4,1,4,1,4,1,5,1,5,1,6,1,6,1,6,1,7,1,7,1,8,1,8,1,8,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,11,1,11,1,12,1,12,1,13,1,13,1,13,1,14,1,14,1,14,1,15,1,15,1,15,1,16,1,16,1,17,1,17,1,18,1,18,1,19,1,19,1,20,1,20,1,21,1,21,1,22,1,22,1,23,1,23,1,24,1,24,1,25,1,25,1,26,1,26,1,27,1,27,1,28,1,28,1,29,1,29,1,30,1,30,1,31,1,31,1,31,1,32,1,32,1,33,1,33,1,34,1,34,1,35,1,35,1,36,1,36,1,37,1,37,1,38,1,38,1,39,1,39,1,39,1,40,1,40,1,40,1,41,1,41,1,42,1,42,1,43,1,43,1,44,1,44,1,45,1,45,1,46,1,46,1,47,1,47,1,48,1,48,1,49,1,49,1,50,1,50,1,51,1,51,1,52,1,52,1,53,1,53,1,54,1,54,1,55,1,55,1,56,1,56,1,57,1,57,1,58,1,58,1,59,1,59,1,60,1,60,1,61,1,61,1,62,1,62,1,63,1,63,1,64,1,64,1,65,1,65,1,66,1,66,1,67,1,67,1,68,1,68,1,69,1,69,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,76,1,77,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,79,1,79,1,79,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,111,1,111,1,111,1,111,1,111,1,111,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,113,1,113,1,113,1,113,1,113,1,113,1,114,1,114,1,114,1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,118,1,119,1,119,1,119,1,119,1,119,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,131,1,131,1,131,1,131,1,131,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,136,1,136,1,136,1,137,1,137,1,137,1,137,1,137,1,138,1,138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,1,140,1,140,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,144,1,144,1,144,1,144,1,144,1,145,1,145,1,145,1,145,1,145,1,145,1,146,1,146,1,146,1,146,1,146,1,146,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,157,1,157,1,157,1,157,1,157,1,158,1,158,1,158,1,158,1,158,1,158,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,161,1,161,1,161,1,161,1,161,1,161,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,162,1,163,1,163,1,163,1,163,1,163,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,165,1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,167,1,167,1,167,1,167,1,167,1,168,1,168,1,168,1,168,1,168,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,170,1,170,1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,172,1,172,1,172,1,172,1,172,1,172,1,173,1,173,1,173,1,173,1,173,1,173,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,176,1,176,1,176,1,176,1,176,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,178,1,178,1,178,1,178,1,179,1,179,1,179,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,181,1,181,1,181,1,181,1,181,1,181,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,184,1,184,1,184,1,185,1,185,1,185,1,185,1,185,1,185,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,190,1,190,1,190,1,190,1,190,1,190,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,194,1,194,1,194,1,194,1,194,1,195,1,195,1,195,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,197,1,197,1,197,1,197,1,197,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,201,1,201,1,201,1,201,1,202,1,202,1,202,1,202,1,202,1,203,1,203,1,203,1,203,1,203,1,204,1,204,1,204,1,204,1,204,1,204,1,204,1,205,1,205,1,205,1,205,1,205,1,206,1,206,1,206,1,206,1,206,1,206,1,207,1,207,1,207,1,207,1,207,1,208,1,208,1,208,1,208,1,208,1,208,1,209,1,209,1,209,1,209,1,209,1,209,1,209,1,210,1,210,1,210,1,210,1,210,1,210,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,215,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,219,1,219,1,219,1,219,1,219,1,220,1,220,1,220,1,221,1,221,1,221,1,221,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,223,1,223,1,223,1,223,1,223,1,224,1,224,1,224,1,224,1,224,1,224,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,226,1,226,1,226,1,227,1,227,1,227,1,227,1,227,1,227,1,227,1,228,1,228,1,228,1,228,1,228,1,229,1,229,1,229,1,230,1,230,1,230,1,230,1,231,1,231,1,231,1,231,1,231,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,234,1,234,1,234,1,235,1,235,1,235,1,235,1,235,1,235,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,237,1,237,1,237,1,237,1,237,1,237,1,238,1,238,1,238,1,238,1,238,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,243,1,243,1,243,1,243,1,243,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,245,1,245,1,245,1,245,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,247,1,247,1,247,1,247,1,247,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,254,1,254,1,254,1,254,1,254,1,254,1,255,1,255,1,255,1,255,1,255,1,255,1,256,1,256,1,256,1,256,1,256,1,256,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,267,1,267,1,267,1,267,1,267,1,267,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,268,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,269,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,271,1,271,1,271,1,271,1,271,1,271,1,271,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,276,1,276,1,276,1,276,1,276,1,276,1,277,1,277,1,277,1,277,1,277,1,277,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,280,1,280,1,280,1,280,1,281,1,281,1,281,1,281,1,281,1,282,1,282,1,282,1,282,1,282,1,282,1,282,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,283,1,284,1,284,1,284,1,284,1,284,1,284,1,284,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,1,286,1,286,1,286,1,286,1,286,1,287,1,287,1,287,1,287,1,287,1,287,1,287,1,288,1,288,1,288,1,288,1,288,1,289,1,289,1,289,1,289,1,290,1,290,1,290,1,290,1,290,1,291,1,291,1,291,1,291,1,291,1,292,1,292,1,292,1,292,1,292,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,294,1,294,1,294,1,294,1,294,1,294,1,294,1,295,1,295,1,295,1,295,1,295,1,295,1,295,1,296,1,296,1,296,1,296,1,296,1,296,1,296,1,296,1,296,1,297,1,297,1,297,1,297,1,297,1,297,1,297,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,299,1,299,1,299,1,299,1,299,1,299,1,299,1,299,1,299,1,299,1,300,1,300,1,300,1,300,1,300,1,301,1,301,1,301,1,301,1,301,1,301,1,301,1,302,1,302,1,302,1,302,1,302,1,302,1,303,1,303,1,303,1,303,1,303,1,303,1,303,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,304,1,305,1,305,1,305,1,305,1,305,1,305,1,305,1,305,1,305,1,305,1,305,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,307,1,307,1,307,1,307,1,307,1,308,1,308,1,308,1,308,1,308,1,308,1,308,1,308,1,308,1,308,1,309,1,309,1,309,1,309,1,309,1,310,1,310,1,310,1,310,1,310,1,311,1,311,1,311,1,312,1,312,1,312,1,312,1,312,1,312,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,313,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,314,1,315,1,315,1,315,1,315,1,315,1,316,1,316,1,316,1,316,1,316,1,316,1,317,1,317,1,317,1,317,1,317,1,318,1,318,1,318,1,318,1,318,1,318,1,318,1,318,1,318,1,318,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1,319,1,320,1,320,1,320,1,320,1,320,1,320,1,321,1,321,1,321,1,321,1,321,1,321,1,321,1,322,1,322,1,322,1,322,1,322,1,322,1,322,1,322,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,324,1,324,1,324,1,324,1,324,1,324,1,324,1,325,1,325,1,325,1,325,1,325,1,325,1,325,1,326,1,326,1,326,1,326,1,327,1,327,1,327,1,327,1,327,1,328,1,328,1,328,1,328,1,328,1,328,1,329,1,329,1,329,1,329,1,329,1,329,1,329,1,330,1,330,1,330,1,330,1,330,1,330,1,330,1,331,1,331,1,331,1,331,1,331,1,331,1,331,1,331,1,332,1,332,1,332,1,332,1,332,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,333,1,334,1,334,1,334,1,334,1,334,1,335,1,335,1,335,1,335,1,335,1,335,1,336,1,336,1,336,1,336,1,336,1,336,1,336,1,337,1,337,1,337,1,337,1,337,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,338,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,339,1,340,1,340,1,340,1,340,1,341,1,341,1,341,1,341,3,341,2847,8,341,1,342,1,342,1,342,1,342,3,342,2853,8,342,1,343,1,343,5,343,2857,8,343,10,343,12,343,2860,9,343,1,343,1,343,1,344,1,344,5,344,2866,8,344,10,344,12,344,2869,9,344,1,344,1,344,1,345,1,345,5,345,2875,8,345,10,345,12,345,2878,9,345,1,345,1,345,4,345,2882,8,345,11,345,12,345,2883,1,345,3,345,2887,8,345,1,346,1,346,1,346,3,346,2892,8,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346,3,346,2902,8,346,3,346,2904,8,346,1,347,1,347,1,347,5,347,2909,8,347,10,347,12,347,2912,9,347,1,348,1,348,1,348,1,348,1,348,3,348,2919,8,348,1,349,1,349,5,349,2923,8,349,10,349,12,349,2926,9,349,1,349,1,349,1,350,1,350,1,351,1,351,1,352,1,352,1,352,4,352,2937,8,352,11,352,12,352,2938,1,353,1,353,1,353,4,353,2944,8,353,11,353,12,353,2945,1,354,1,354,1,354,4,354,2951,8,354,11,354,12,354,2952,1,355,4,355,2956,8,355,11,355,12,355,2957,1,356,1,356,1,356,1,356,3,356,2964,8,356,1,357,1,357,1,357,3,357,2969,8,357,1,357,1,357,1,357,1,357,1,357,1,357,3,357,2977,8,357,1,358,1,358,1,358,3,358,2982,8,358,1,358,1,358,1,359,1,359,1,359,5,359,2989,8,359,10,359,12,359,2992,9,359,1,359,3,359,2995,8,359,1,359,1,359,1,359,3,359,3e3,8,359,1,359,1,359,1,359,1,359,1,359,1,359,3,359,3008,8,359,3,359,3010,8,359,1,360,1,360,1,360,4,360,3015,8,360,11,360,12,360,3016,1,360,1,360,1,361,1,361,1,361,1,361,5,361,3025,8,361,10,361,12,361,3028,9,361,1,361,1,361,1,361,1,362,1,362,1,362,1,362,5,362,3037,8,362,10,362,12,362,3040,9,362,1,362,1,362,3,362,3044,8,362,1,362,3,362,3047,8,362,1,363,1,363,1,363,1,363,1,364,1,364,3,364,3055,8,364,1,364,1,364,2,2876,3026,0,365,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,59,30,61,31,63,32,65,33,67,34,69,35,71,36,73,37,75,38,77,39,79,40,81,41,83,42,85,43,87,0,89,0,91,0,93,0,95,0,97,0,99,0,101,0,103,0,105,0,107,0,109,0,111,0,113,0,115,0,117,0,119,0,121,0,123,0,125,0,127,0,129,0,131,0,133,0,135,0,137,0,139,44,141,45,143,46,145,47,147,48,149,49,151,50,153,51,155,52,157,53,159,54,161,55,163,56,165,57,167,58,169,59,171,60,173,61,175,62,177,63,179,64,181,65,183,66,185,67,187,68,189,69,191,70,193,71,195,72,197,73,199,74,201,75,203,76,205,77,207,78,209,79,211,80,213,81,215,82,217,83,219,84,221,85,223,86,225,87,227,88,229,89,231,90,233,91,235,92,237,93,239,94,241,95,243,96,245,97,247,98,249,99,251,100,253,101,255,102,257,103,259,104,261,105,263,106,265,107,267,108,269,109,271,110,273,111,275,112,277,113,279,114,281,115,283,116,285,117,287,118,289,119,291,120,293,121,295,122,297,123,299,124,301,125,303,126,305,127,307,128,309,129,311,130,313,131,315,132,317,133,319,134,321,135,323,136,325,137,327,138,329,139,331,140,333,141,335,142,337,143,339,144,341,145,343,146,345,147,347,148,349,149,351,150,353,151,355,152,357,153,359,154,361,155,363,156,365,157,367,158,369,159,371,160,373,161,375,162,377,163,379,164,381,165,383,166,385,167,387,168,389,169,391,170,393,171,395,172,397,173,399,174,401,175,403,176,405,177,407,178,409,179,411,180,413,181,415,182,417,183,419,184,421,185,423,186,425,187,427,188,429,189,431,190,433,191,435,192,437,193,439,194,441,195,443,196,445,197,447,198,449,199,451,200,453,201,455,202,457,203,459,204,461,205,463,206,465,207,467,208,469,209,471,210,473,211,475,212,477,213,479,214,481,215,483,216,485,217,487,218,489,219,491,220,493,221,495,222,497,223,499,224,501,225,503,226,505,227,507,228,509,229,511,230,513,231,515,232,517,233,519,234,521,235,523,236,525,237,527,238,529,239,531,240,533,241,535,242,537,243,539,244,541,245,543,246,545,247,547,248,549,249,551,250,553,251,555,252,557,253,559,254,561,255,563,256,565,257,567,258,569,259,571,260,573,261,575,262,577,263,579,264,581,265,583,266,585,267,587,268,589,269,591,270,593,271,595,272,597,273,599,274,601,275,603,276,605,277,607,278,609,279,611,280,613,281,615,282,617,283,619,284,621,285,623,286,625,287,627,288,629,289,631,290,633,291,635,292,637,293,639,294,641,295,643,296,645,297,647,298,649,299,651,300,653,301,655,302,657,303,659,304,661,305,663,306,665,307,667,308,669,309,671,310,673,311,675,312,677,313,679,314,681,315,683,0,685,0,687,0,689,0,691,0,693,316,695,317,697,0,699,318,701,0,703,0,705,0,707,0,709,0,711,0,713,319,715,320,717,0,719,321,721,322,723,0,725,0,727,323,729,324,1,0,35,2,0,65,65,97,97,2,0,66,66,98,98,2,0,67,67,99,99,2,0,68,68,100,100,2,0,69,69,101,101,2,0,70,70,102,102,2,0,71,71,103,103,2,0,72,72,104,104,2,0,73,73,105,105,2,0,74,74,106,106,2,0,75,75,107,107,2,0,76,76,108,108,2,0,77,77,109,109,2,0,78,78,110,110,2,0,79,79,111,111,2,0,80,80,112,112,2,0,81,81,113,113,2,0,82,82,114,114,2,0,83,83,115,115,2,0,84,84,116,116,2,0,85,85,117,117,2,0,86,86,118,118,2,0,87,87,119,119,2,0,88,88,120,120,2,0,89,89,121,121,2,0,90,90,122,122,2,0,39,39,92,92,2,0,34,34,92,92,3,0,65,90,95,95,97,122,1,0,96,96,3,0,48,57,65,70,97,102,2,0,52,52,56,56,2,0,10,10,13,13,1,1,10,10,3,0,9,10,12,13,32,32,3068,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0,0,199,1,0,0,0,0,201,1,0,0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207,1,0,0,0,0,209,1,0,0,0,0,211,1,0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,0,217,1,0,0,0,0,219,1,0,0,0,0,221,1,0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,0,227,1,0,0,0,0,229,1,0,0,0,0,231,1,0,0,0,0,233,1,0,0,0,0,235,1,0,0,0,0,237,1,0,0,0,0,239,1,0,0,0,0,241,1,0,0,0,0,243,1,0,0,0,0,245,1,0,0,0,0,247,1,0,0,0,0,249,1,0,0,0,0,251,1,0,0,0,0,253,1,0,0,0,0,255,1,0,0,0,0,257,1,0,0,0,0,259,1,0,0,0,0,261,1,0,0,0,0,263,1,0,0,0,0,265,1,0,0,0,0,267,1,0,0,0,0,269,1,0,0,0,0,271,1,0,0,0,0,273,1,0,0,0,0,275,1,0,0,0,0,277,1,0,0,0,0,279,1,0,0,0,0,281,1,0,0,0,0,283,1,0,0,0,0,285,1,0,0,0,0,287,1,0,0,0,0,289,1,0,0,0,0,291,1,0,0,0,0,293,1,0,0,0,0,295,1,0,0,0,0,297,1,0,0,0,0,299,1,0,0,0,0,301,1,0,0,0,0,303,1,0,0,0,0,305,1,0,0,0,0,307,1,0,0,0,0,309,1,0,0,0,0,311,1,0,0,0,0,313,1,0,0,0,0,315,1,0,0,0,0,317,1,0,0,0,0,319,1,0,0,0,0,321,1,0,0,0,0,323,1,0,0,0,0,325,1,0,0,0,0,327,1,0,0,0,0,329,1,0,0,0,0,331,1,0,0,0,0,333,1,0,0,0,0,335,1,0,0,0,0,337,1,0,0,0,0,339,1,0,0,0,0,341,1,0,0,0,0,343,1,0,0,0,0,345,1,0,0,0,0,347,1,0,0,0,0,349,1,0,0,0,0,351,1,0,0,0,0,353,1,0,0,0,0,355,1,0,0,0,0,357,1,0,0,0,0,359,1,0,0,0,0,361,1,0,0,0,0,363,1,0,0,0,0,365,1,0,0,0,0,367,1,0,0,0,0,369,1,0,0,0,0,371,1,0,0,0,0,373,1,0,0,0,0,375,1,0,0,0,0,377,1,0,0,0,0,379,1,0,0,0,0,381,1,0,0,0,0,383,1,0,0,0,0,385,1,0,0,0,0,387,1,0,0,0,0,389,1,0,0,0,0,391,1,0,0,0,0,393,1,0,0,0,0,395,1,0,0,0,0,397,1,0,0,0,0,399,1,0,0,0,0,401,1,0,0,0,0,403,1,0,0,0,0,405,1,0,0,0,0,407,1,0,0,0,0,409,1,0,0,0,0,411,1,0,0,0,0,413,1,0,0,0,0,415,1,0,0,0,0,417,1,0,0,0,0,419,1,0,0,0,0,421,1,0,0,0,0,423,1,0,0,0,0,425,1,0,0,0,0,427,1,0,0,0,0,429,1,0,0,0,0,431,1,0,0,0,0,433,1,0,0,0,0,435,1,0,0,0,0,437,1,0,0,0,0,439,1,0,0,0,0,441,1,0,0,0,0,443,1,0,0,0,0,445,1,0,0,0,0,447,1,0,0,0,0,449,1,0,0,0,0,451,1,0,0,0,0,453,1,0,0,0,0,455,1,0,0,0,0,457,1,0,0,0,0,459,1,0,0,0,0,461,1,0,0,0,0,463,1,0,0,0,0,465,1,0,0,0,0,467,1,0,0,0,0,469,1,0,0,0,0,471,1,0,0,0,0,473,1,0,0,0,0,475,1,0,0,0,0,477,1,0,0,0,0,479,1,0,0,0,0,481,1,0,0,0,0,483,1,0,0,0,0,485,1,0,0,0,0,487,1,0,0,0,0,489,1,0,0,0,0,491,1,0,0,0,0,493,1,0,0,0,0,495,1,0,0,0,0,497,1,0,0,0,0,499,1,0,0,0,0,501,1,0,0,0,0,503,1,0,0,0,0,505,1,0,0,0,0,507,1,0,0,0,0,509,1,0,0,0,0,511,1,0,0,0,0,513,1,0,0,0,0,515,1,0,0,0,0,517,1,0,0,0,0,519,1,0,0,0,0,521,1,0,0,0,0,523,1,0,0,0,0,525,1,0,0,0,0,527,1,0,0,0,0,529,1,0,0,0,0,531,1,0,0,0,0,533,1,0,0,0,0,535,1,0,0,0,0,537,1,0,0,0,0,539,1,0,0,0,0,541,1,0,0,0,0,543,1,0,0,0,0,545,1,0,0,0,0,547,1,0,0,0,0,549,1,0,0,0,0,551,1,0,0,0,0,553,1,0,0,0,0,555,1,0,0,0,0,557,1,0,0,0,0,559,1,0,0,0,0,561,1,0,0,0,0,563,1,0,0,0,0,565,1,0,0,0,0,567,1,0,0,0,0,569,1,0,0,0,0,571,1,0,0,0,0,573,1,0,0,0,0,575,1,0,0,0,0,577,1,0,0,0,0,579,1,0,0,0,0,581,1,0,0,0,0,583,1,0,0,0,0,585,1,0,0,0,0,587,1,0,0,0,0,589,1,0,0,0,0,591,1,0,0,0,0,593,1,0,0,0,0,595,1,0,0,0,0,597,1,0,0,0,0,599,1,0,0,0,0,601,1,0,0,0,0,603,1,0,0,0,0,605,1,0,0,0,0,607,1,0,0,0,0,609,1,0,0,0,0,611,1,0,0,0,0,613,1,0,0,0,0,615,1,0,0,0,0,617,1,0,0,0,0,619,1,0,0,0,0,621,1,0,0,0,0,623,1,0,0,0,0,625,1,0,0,0,0,627,1,0,0,0,0,629,1,0,0,0,0,631,1,0,0,0,0,633,1,0,0,0,0,635,1,0,0,0,0,637,1,0,0,0,0,639,1,0,0,0,0,641,1,0,0,0,0,643,1,0,0,0,0,645,1,0,0,0,0,647,1,0,0,0,0,649,1,0,0,0,0,651,1,0,0,0,0,653,1,0,0,0,0,655,1,0,0,0,0,657,1,0,0,0,0,659,1,0,0,0,0,661,1,0,0,0,0,663,1,0,0,0,0,665,1,0,0,0,0,667,1,0,0,0,0,669,1,0,0,0,0,671,1,0,0,0,0,673,1,0,0,0,0,675,1,0,0,0,0,677,1,0,0,0,0,679,1,0,0,0,0,681,1,0,0,0,0,693,1,0,0,0,0,695,1,0,0,0,0,699,1,0,0,0,0,713,1,0,0,0,0,715,1,0,0,0,0,719,1,0,0,0,0,721,1,0,0,0,0,727,1,0,0,0,0,729,1,0,0,0,1,731,1,0,0,0,3,737,1,0,0,0,5,739,1,0,0,0,7,742,1,0,0,0,9,745,1,0,0,0,11,748,1,0,0,0,13,750,1,0,0,0,15,753,1,0,0,0,17,755,1,0,0,0,19,758,1,0,0,0,21,761,1,0,0,0,23,765,1,0,0,0,25,767,1,0,0,0,27,769,1,0,0,0,29,772,1,0,0,0,31,775,1,0,0,0,33,778,1,0,0,0,35,780,1,0,0,0,37,782,1,0,0,0,39,784,1,0,0,0,41,786,1,0,0,0,43,788,1,0,0,0,45,790,1,0,0,0,47,792,1,0,0,0,49,794,1,0,0,0,51,796,1,0,0,0,53,798,1,0,0,0,55,800,1,0,0,0,57,802,1,0,0,0,59,804,1,0,0,0,61,806,1,0,0,0,63,808,1,0,0,0,65,811,1,0,0,0,67,813,1,0,0,0,69,815,1,0,0,0,71,817,1,0,0,0,73,819,1,0,0,0,75,821,1,0,0,0,77,823,1,0,0,0,79,825,1,0,0,0,81,828,1,0,0,0,83,831,1,0,0,0,85,833,1,0,0,0,87,835,1,0,0,0,89,837,1,0,0,0,91,839,1,0,0,0,93,841,1,0,0,0,95,843,1,0,0,0,97,845,1,0,0,0,99,847,1,0,0,0,101,849,1,0,0,0,103,851,1,0,0,0,105,853,1,0,0,0,107,855,1,0,0,0,109,857,1,0,0,0,111,859,1,0,0,0,113,861,1,0,0,0,115,863,1,0,0,0,117,865,1,0,0,0,119,867,1,0,0,0,121,869,1,0,0,0,123,871,1,0,0,0,125,873,1,0,0,0,127,875,1,0,0,0,129,877,1,0,0,0,131,879,1,0,0,0,133,881,1,0,0,0,135,883,1,0,0,0,137,885,1,0,0,0,139,887,1,0,0,0,141,893,1,0,0,0,143,900,1,0,0,0,145,904,1,0,0,0,147,910,1,0,0,0,149,914,1,0,0,0,151,920,1,0,0,0,153,928,1,0,0,0,155,932,1,0,0,0,157,937,1,0,0,0,159,941,1,0,0,0,161,947,1,0,0,0,163,950,1,0,0,0,165,954,1,0,0,0,167,961,1,0,0,0,169,972,1,0,0,0,171,978,1,0,0,0,173,985,1,0,0,0,175,996,1,0,0,0,177,1010,1,0,0,0,179,1018,1,0,0,0,181,1025,1,0,0,0,183,1031,1,0,0,0,185,1041,1,0,0,0,187,1049,1,0,0,0,189,1057,1,0,0,0,191,1060,1,0,0,0,193,1069,1,0,0,0,195,1077,1,0,0,0,197,1082,1,0,0,0,199,1087,1,0,0,0,201,1098,1,0,0,0,203,1104,1,0,0,0,205,1112,1,0,0,0,207,1119,1,0,0,0,209,1127,1,0,0,0,211,1134,1,0,0,0,213,1142,1,0,0,0,215,1154,1,0,0,0,217,1163,1,0,0,0,219,1171,1,0,0,0,221,1182,1,0,0,0,223,1191,1,0,0,0,225,1197,1,0,0,0,227,1204,1,0,0,0,229,1210,1,0,0,0,231,1215,1,0,0,0,233,1223,1,0,0,0,235,1236,1,0,0,0,237,1249,1,0,0,0,239,1267,1,0,0,0,241,1272,1,0,0,0,243,1281,1,0,0,0,245,1289,1,0,0,0,247,1297,1,0,0,0,249,1305,1,0,0,0,251,1316,1,0,0,0,253,1325,1,0,0,0,255,1332,1,0,0,0,257,1339,1,0,0,0,259,1344,1,0,0,0,261,1353,1,0,0,0,263,1360,1,0,0,0,265,1365,1,0,0,0,267,1375,1,0,0,0,269,1383,1,0,0,0,271,1391,1,0,0,0,273,1400,1,0,0,0,275,1403,1,0,0,0,277,1408,1,0,0,0,279,1413,1,0,0,0,281,1418,1,0,0,0,283,1424,1,0,0,0,285,1437,1,0,0,0,287,1447,1,0,0,0,289,1451,1,0,0,0,291,1456,1,0,0,0,293,1462,1,0,0,0,295,1468,1,0,0,0,297,1475,1,0,0,0,299,1484,1,0,0,0,301,1491,1,0,0,0,303,1499,1,0,0,0,305,1509,1,0,0,0,307,1519,1,0,0,0,309,1526,1,0,0,0,311,1534,1,0,0,0,313,1541,1,0,0,0,315,1550,1,0,0,0,317,1555,1,0,0,0,319,1561,1,0,0,0,321,1568,1,0,0,0,323,1575,1,0,0,0,325,1581,1,0,0,0,327,1589,1,0,0,0,329,1594,1,0,0,0,331,1604,1,0,0,0,333,1608,1,0,0,0,335,1616,1,0,0,0,337,1621,1,0,0,0,339,1626,1,0,0,0,341,1635,1,0,0,0,343,1640,1,0,0,0,345,1647,1,0,0,0,347,1653,1,0,0,0,349,1659,1,0,0,0,351,1668,1,0,0,0,353,1675,1,0,0,0,355,1680,1,0,0,0,357,1687,1,0,0,0,359,1691,1,0,0,0,361,1694,1,0,0,0,363,1701,1,0,0,0,365,1707,1,0,0,0,367,1717,1,0,0,0,369,1724,1,0,0,0,371,1727,1,0,0,0,373,1733,1,0,0,0,375,1741,1,0,0,0,377,1750,1,0,0,0,379,1758,1,0,0,0,381,1768,1,0,0,0,383,1774,1,0,0,0,385,1781,1,0,0,0,387,1789,1,0,0,0,389,1799,1,0,0,0,391,1804,1,0,0,0,393,1807,1,0,0,0,395,1814,1,0,0,0,397,1819,1,0,0,0,399,1831,1,0,0,0,401,1842,1,0,0,0,403,1853,1,0,0,0,405,1857,1,0,0,0,407,1862,1,0,0,0,409,1867,1,0,0,0,411,1874,1,0,0,0,413,1879,1,0,0,0,415,1885,1,0,0,0,417,1890,1,0,0,0,419,1896,1,0,0,0,421,1903,1,0,0,0,423,1909,1,0,0,0,425,1917,1,0,0,0,427,1933,1,0,0,0,429,1942,1,0,0,0,431,1955,1,0,0,0,433,1968,1,0,0,0,435,1975,1,0,0,0,437,1987,1,0,0,0,439,1995,1,0,0,0,441,2e3,1,0,0,0,443,2003,1,0,0,0,445,2007,1,0,0,0,447,2015,1,0,0,0,449,2020,1,0,0,0,451,2026,1,0,0,0,453,2033,1,0,0,0,455,2036,1,0,0,0,457,2043,1,0,0,0,459,2048,1,0,0,0,461,2051,1,0,0,0,463,2055,1,0,0,0,465,2060,1,0,0,0,467,2067,1,0,0,0,469,2076,1,0,0,0,471,2079,1,0,0,0,473,2085,1,0,0,0,475,2092,1,0,0,0,477,2098,1,0,0,0,479,2103,1,0,0,0,481,2112,1,0,0,0,483,2122,1,0,0,0,485,2130,1,0,0,0,487,2139,1,0,0,0,489,2144,1,0,0,0,491,2152,1,0,0,0,493,2156,1,0,0,0,495,2164,1,0,0,0,497,2169,1,0,0,0,499,2176,1,0,0,0,501,2186,1,0,0,0,503,2194,1,0,0,0,505,2202,1,0,0,0,507,2213,1,0,0,0,509,2221,1,0,0,0,511,2227,1,0,0,0,513,2233,1,0,0,0,515,2239,1,0,0,0,517,2246,1,0,0,0,519,2257,1,0,0,0,521,2264,1,0,0,0,523,2272,1,0,0,0,525,2280,1,0,0,0,527,2287,1,0,0,0,529,2294,1,0,0,0,531,2305,1,0,0,0,533,2313,1,0,0,0,535,2325,1,0,0,0,537,2331,1,0,0,0,539,2340,1,0,0,0,541,2348,1,0,0,0,543,2357,1,0,0,0,545,2364,1,0,0,0,547,2371,1,0,0,0,549,2381,1,0,0,0,551,2388,1,0,0,0,553,2395,1,0,0,0,555,2401,1,0,0,0,557,2407,1,0,0,0,559,2416,1,0,0,0,561,2423,1,0,0,0,563,2427,1,0,0,0,565,2432,1,0,0,0,567,2439,1,0,0,0,569,2449,1,0,0,0,571,2456,1,0,0,0,573,2464,1,0,0,0,575,2469,1,0,0,0,577,2476,1,0,0,0,579,2481,1,0,0,0,581,2485,1,0,0,0,583,2490,1,0,0,0,585,2495,1,0,0,0,587,2500,1,0,0,0,589,2507,1,0,0,0,591,2514,1,0,0,0,593,2521,1,0,0,0,595,2530,1,0,0,0,597,2537,1,0,0,0,599,2545,1,0,0,0,601,2555,1,0,0,0,603,2560,1,0,0,0,605,2567,1,0,0,0,607,2573,1,0,0,0,609,2580,1,0,0,0,611,2592,1,0,0,0,613,2603,1,0,0,0,615,2610,1,0,0,0,617,2615,1,0,0,0,619,2625,1,0,0,0,621,2630,1,0,0,0,623,2635,1,0,0,0,625,2638,1,0,0,0,627,2644,1,0,0,0,629,2656,1,0,0,0,631,2664,1,0,0,0,633,2669,1,0,0,0,635,2675,1,0,0,0,637,2680,1,0,0,0,639,2690,1,0,0,0,641,2704,1,0,0,0,643,2710,1,0,0,0,645,2717,1,0,0,0,647,2725,1,0,0,0,649,2735,1,0,0,0,651,2742,1,0,0,0,653,2749,1,0,0,0,655,2753,1,0,0,0,657,2758,1,0,0,0,659,2764,1,0,0,0,661,2771,1,0,0,0,663,2778,1,0,0,0,665,2786,1,0,0,0,667,2791,1,0,0,0,669,2799,1,0,0,0,671,2804,1,0,0,0,673,2810,1,0,0,0,675,2817,1,0,0,0,677,2822,1,0,0,0,679,2830,1,0,0,0,681,2838,1,0,0,0,683,2846,1,0,0,0,685,2852,1,0,0,0,687,2854,1,0,0,0,689,2863,1,0,0,0,691,2881,1,0,0,0,693,2891,1,0,0,0,695,2905,1,0,0,0,697,2918,1,0,0,0,699,2920,1,0,0,0,701,2929,1,0,0,0,703,2931,1,0,0,0,705,2933,1,0,0,0,707,2940,1,0,0,0,709,2947,1,0,0,0,711,2955,1,0,0,0,713,2963,1,0,0,0,715,2965,1,0,0,0,717,2978,1,0,0,0,719,2999,1,0,0,0,721,3011,1,0,0,0,723,3020,1,0,0,0,725,3032,1,0,0,0,727,3048,1,0,0,0,729,3054,1,0,0,0,731,732,3,119,59,0,732,733,3,127,63,0,733,734,3,95,47,0,734,735,3,121,60,0,735,736,3,135,67,0,736,2,1,0,0,0,737,738,5,61,0,0,738,4,1,0,0,0,739,740,5,61,0,0,740,741,5,61,0,0,741,6,1,0,0,0,742,743,5,33,0,0,743,744,5,61,0,0,744,8,1,0,0,0,745,746,5,60,0,0,746,747,5,62,0,0,747,10,1,0,0,0,748,749,5,60,0,0,749,12,1,0,0,0,750,751,5,60,0,0,751,752,5,61,0,0,752,14,1,0,0,0,753,754,5,62,0,0,754,16,1,0,0,0,755,756,5,62,0,0,756,757,5,61,0,0,757,18,1,0,0,0,758,759,5,60,0,0,759,760,5,60,0,0,760,20,1,0,0,0,761,762,5,124,0,0,762,763,5,60,0,0,763,764,5,60,0,0,764,22,1,0,0,0,765,766,5,38,0,0,766,24,1,0,0,0,767,768,5,124,0,0,768,26,1,0,0,0,769,770,5,124,0,0,770,771,5,124,0,0,771,28,1,0,0,0,772,773,5,60,0,0,773,774,5,124,0,0,774,30,1,0,0,0,775,776,5,124,0,0,776,777,5,62,0,0,777,32,1,0,0,0,778,779,5,43,0,0,779,34,1,0,0,0,780,781,5,45,0,0,781,36,1,0,0,0,782,783,5,126,0,0,783,38,1,0,0,0,784,785,5,42,0,0,785,40,1,0,0,0,786,787,5,47,0,0,787,42,1,0,0,0,788,789,5,92,0,0,789,44,1,0,0,0,790,791,5,37,0,0,791,46,1,0,0,0,792,793,5,59,0,0,793,48,1,0,0,0,794,795,5,46,0,0,795,50,1,0,0,0,796,797,5,44,0,0,797,52,1,0,0,0,798,799,5,40,0,0,799,54,1,0,0,0,800,801,5,41,0,0,801,56,1,0,0,0,802,803,5,63,0,0,803,58,1,0,0,0,804,805,5,58,0,0,805,60,1,0,0,0,806,807,5,64,0,0,807,62,1,0,0,0,808,809,5,64,0,0,809,810,5,64,0,0,810,64,1,0,0,0,811,812,5,36,0,0,812,66,1,0,0,0,813,814,5,34,0,0,814,68,1,0,0,0,815,816,5,39,0,0,816,70,1,0,0,0,817,818,5,96,0,0,818,72,1,0,0,0,819,820,5,123,0,0,820,74,1,0,0,0,821,822,5,125,0,0,822,76,1,0,0,0,823,824,5,94,0,0,824,78,1,0,0,0,825,826,5,58,0,0,826,827,5,58,0,0,827,80,1,0,0,0,828,829,5,45,0,0,829,830,5,62,0,0,830,82,1,0,0,0,831,832,5,93,0,0,832,84,1,0,0,0,833,834,5,91,0,0,834,86,1,0,0,0,835,836,7,0,0,0,836,88,1,0,0,0,837,838,7,1,0,0,838,90,1,0,0,0,839,840,7,2,0,0,840,92,1,0,0,0,841,842,7,3,0,0,842,94,1,0,0,0,843,844,7,4,0,0,844,96,1,0,0,0,845,846,7,5,0,0,846,98,1,0,0,0,847,848,7,6,0,0,848,100,1,0,0,0,849,850,7,7,0,0,850,102,1,0,0,0,851,852,7,8,0,0,852,104,1,0,0,0,853,854,7,9,0,0,854,106,1,0,0,0,855,856,7,10,0,0,856,108,1,0,0,0,857,858,7,11,0,0,858,110,1,0,0,0,859,860,7,12,0,0,860,112,1,0,0,0,861,862,7,13,0,0,862,114,1,0,0,0,863,864,7,14,0,0,864,116,1,0,0,0,865,866,7,15,0,0,866,118,1,0,0,0,867,868,7,16,0,0,868,120,1,0,0,0,869,870,7,17,0,0,870,122,1,0,0,0,871,872,7,18,0,0,872,124,1,0,0,0,873,874,7,19,0,0,874,126,1,0,0,0,875,876,7,20,0,0,876,128,1,0,0,0,877,878,7,21,0,0,878,130,1,0,0,0,879,880,7,22,0,0,880,132,1,0,0,0,881,882,7,23,0,0,882,134,1,0,0,0,883,884,7,24,0,0,884,136,1,0,0,0,885,886,7,25,0,0,886,138,1,0,0,0,887,888,3,87,43,0,888,889,3,89,44,0,889,890,3,115,57,0,890,891,3,121,60,0,891,892,3,125,62,0,892,140,1,0,0,0,893,894,3,87,43,0,894,895,3,91,45,0,895,896,3,125,62,0,896,897,3,103,51,0,897,898,3,115,57,0,898,899,3,113,56,0,899,142,1,0,0,0,900,901,3,87,43,0,901,902,3,93,46,0,902,903,3,93,46,0,903,144,1,0,0,0,904,905,3,87,43,0,905,906,3,97,48,0,906,907,3,125,62,0,907,908,3,95,47,0,908,909,3,121,60,0,909,146,1,0,0,0,910,911,3,87,43,0,911,912,3,109,54,0,912,913,3,109,54,0,913,148,1,0,0,0,914,915,3,87,43,0,915,916,3,109,54,0,916,917,3,125,62,0,917,918,3,95,47,0,918,919,3,121,60,0,919,150,1,0,0,0,920,921,3,87,43,0,921,922,3,113,56,0,922,923,3,87,43,0,923,924,3,109,54,0,924,925,3,135,67,0,925,926,3,137,68,0,926,927,3,95,47,0,927,152,1,0,0,0,928,929,3,87,43,0,929,930,3,113,56,0,930,931,3,93,46,0,931,154,1,0,0,0,932,933,3,87,43,0,933,934,3,113,56,0,934,935,3,123,61,0,935,936,3,103,51,0,936,156,1,0,0,0,937,938,3,87,43,0,938,939,3,113,56,0,939,940,3,135,67,0,940,158,1,0,0,0,941,942,3,87,43,0,942,943,3,121,60,0,943,944,3,121,60,0,944,945,3,87,43,0,945,946,3,135,67,0,946,160,1,0,0,0,947,948,3,87,43,0,948,949,3,123,61,0,949,162,1,0,0,0,950,951,3,87,43,0,951,952,3,123,61,0,952,953,3,91,45,0,953,164,1,0,0,0,954,955,3,87,43,0,955,956,3,123,61,0,956,957,3,123,61,0,957,958,3,127,63,0,958,959,3,111,55,0,959,960,3,95,47,0,960,166,1,0,0,0,961,962,3,87,43,0,962,963,3,123,61,0,963,964,3,135,67,0,964,965,3,111,55,0,965,966,3,111,55,0,966,967,3,95,47,0,967,968,3,125,62,0,968,969,3,121,60,0,969,970,3,103,51,0,970,971,3,91,45,0,971,168,1,0,0,0,972,973,3,87,43,0,973,974,3,123,61,0,974,975,3,135,67,0,975,976,3,113,56,0,976,977,3,91,45,0,977,170,1,0,0,0,978,979,3,87,43,0,979,980,3,125,62,0,980,981,3,125,62,0,981,982,3,87,43,0,982,983,3,91,45,0,983,984,3,101,50,0,984,172,1,0,0,0,985,986,3,87,43,0,986,987,3,125,62,0,987,988,3,125,62,0,988,989,3,121,60,0,989,990,3,103,51,0,990,991,3,89,44,0,991,992,3,127,63,0,992,993,3,125,62,0,993,994,3,95,47,0,994,995,3,123,61,0,995,174,1,0,0,0,996,997,3,87,43,0,997,998,3,127,63,0,998,999,3,125,62,0,999,1e3,3,115,57,0,1e3,1001,3,103,51,0,1001,1002,3,113,56,0,1002,1003,3,91,45,0,1003,1004,3,121,60,0,1004,1005,3,95,47,0,1005,1006,3,111,55,0,1006,1007,3,95,47,0,1007,1008,3,113,56,0,1008,1009,3,125,62,0,1009,176,1,0,0,0,1010,1011,3,87,43,0,1011,1012,3,127,63,0,1012,1013,3,125,62,0,1013,1014,3,115,57,0,1014,1015,3,111,55,0,1015,1016,3,87,43,0,1016,1017,3,117,58,0,1017,178,1,0,0,0,1018,1019,3,89,44,0,1019,1020,3,95,47,0,1020,1021,3,97,48,0,1021,1022,3,115,57,0,1022,1023,3,121,60,0,1023,1024,3,95,47,0,1024,180,1,0,0,0,1025,1026,3,89,44,0,1026,1027,3,95,47,0,1027,1028,3,99,49,0,1028,1029,3,103,51,0,1029,1030,3,113,56,0,1030,182,1,0,0,0,1031,1032,3,89,44,0,1032,1033,3,95,47,0,1033,1034,3,121,60,0,1034,1035,3,113,56,0,1035,1036,3,115,57,0,1036,1037,3,127,63,0,1037,1038,3,109,54,0,1038,1039,3,109,54,0,1039,1040,3,103,51,0,1040,184,1,0,0,0,1041,1042,3,89,44,0,1042,1043,3,95,47,0,1043,1044,3,125,62,0,1044,1045,3,131,65,0,1045,1046,3,95,47,0,1046,1047,3,95,47,0,1047,1048,3,113,56,0,1048,186,1,0,0,0,1049,1050,3,89,44,0,1050,1051,3,103,51,0,1051,1052,3,125,62,0,1052,1053,3,91,45,0,1053,1054,3,87,43,0,1054,1055,3,123,61,0,1055,1056,3,125,62,0,1056,188,1,0,0,0,1057,1058,3,89,44,0,1058,1059,3,135,67,0,1059,190,1,0,0,0,1060,1061,3,91,45,0,1061,1062,3,87,43,0,1062,1063,3,109,54,0,1063,1064,3,109,54,0,1064,1065,3,87,43,0,1065,1066,3,89,44,0,1066,1067,3,109,54,0,1067,1068,3,95,47,0,1068,192,1,0,0,0,1069,1070,3,91,45,0,1070,1071,3,87,43,0,1071,1072,3,123,61,0,1072,1073,3,91,45,0,1073,1074,3,87,43,0,1074,1075,3,93,46,0,1075,1076,3,95,47,0,1076,194,1,0,0,0,1077,1078,3,91,45,0,1078,1079,3,87,43,0,1079,1080,3,123,61,0,1080,1081,3,95,47,0,1081,196,1,0,0,0,1082,1083,3,91,45,0,1083,1084,3,87,43,0,1084,1085,3,123,61,0,1085,1086,3,125,62,0,1086,198,1,0,0,0,1087,1088,3,91,45,0,1088,1089,3,101,50,0,1089,1090,3,87,43,0,1090,1091,3,113,56,0,1091,1092,3,99,49,0,1092,1093,3,95,47,0,1093,1094,3,97,48,0,1094,1095,3,95,47,0,1095,1096,3,95,47,0,1096,1097,3,93,46,0,1097,200,1,0,0,0,1098,1099,3,91,45,0,1099,1100,3,101,50,0,1100,1101,3,95,47,0,1101,1102,3,91,45,0,1102,1103,3,107,53,0,1103,202,1,0,0,0,1104,1105,3,91,45,0,1105,1106,3,115,57,0,1106,1107,3,109,54,0,1107,1108,3,109,54,0,1108,1109,3,87,43,0,1109,1110,3,125,62,0,1110,1111,3,95,47,0,1111,204,1,0,0,0,1112,1113,3,91,45,0,1113,1114,3,115,57,0,1114,1115,3,109,54,0,1115,1116,3,127,63,0,1116,1117,3,111,55,0,1117,1118,3,113,56,0,1118,206,1,0,0,0,1119,1120,3,91,45,0,1120,1121,3,115,57,0,1121,1122,3,109,54,0,1122,1123,3,127,63,0,1123,1124,3,111,55,0,1124,1125,3,113,56,0,1125,1126,3,123,61,0,1126,208,1,0,0,0,1127,1128,3,91,45,0,1128,1129,3,115,57,0,1129,1130,3,111,55,0,1130,1131,3,111,55,0,1131,1132,3,103,51,0,1132,1133,3,125,62,0,1133,210,1,0,0,0,1134,1135,3,91,45,0,1135,1136,3,115,57,0,1136,1137,3,111,55,0,1137,1138,3,117,58,0,1138,1139,3,87,43,0,1139,1140,3,91,45,0,1140,1141,3,125,62,0,1141,212,1,0,0,0,1142,1143,3,91,45,0,1143,1144,3,115,57,0,1144,1145,3,113,56,0,1145,1146,3,93,46,0,1146,1147,3,103,51,0,1147,1148,3,125,62,0,1148,1149,3,103,51,0,1149,1150,3,115,57,0,1150,1151,3,113,56,0,1151,1152,3,87,43,0,1152,1153,3,109,54,0,1153,214,1,0,0,0,1154,1155,3,91,45,0,1155,1156,3,115,57,0,1156,1157,3,113,56,0,1157,1158,3,97,48,0,1158,1159,3,109,54,0,1159,1160,3,103,51,0,1160,1161,3,91,45,0,1161,1162,3,125,62,0,1162,216,1,0,0,0,1163,1164,3,91,45,0,1164,1165,3,115,57,0,1165,1166,3,113,56,0,1166,1167,3,113,56,0,1167,1168,3,95,47,0,1168,1169,3,91,45,0,1169,1170,3,125,62,0,1170,218,1,0,0,0,1171,1172,3,91,45,0,1172,1173,3,115,57,0,1173,1174,3,113,56,0,1174,1175,3,123,61,0,1175,1176,3,125,62,0,1176,1177,3,121,60,0,1177,1178,3,87,43,0,1178,1179,3,103,51,0,1179,1180,3,113,56,0,1180,1181,3,125,62,0,1181,220,1,0,0,0,1182,1183,3,91,45,0,1183,1184,3,115,57,0,1184,1185,3,113,56,0,1185,1186,3,123,61,0,1186,1187,3,127,63,0,1187,1188,3,111,55,0,1188,1189,3,95,47,0,1189,1190,3,121,60,0,1190,222,1,0,0,0,1191,1192,3,91,45,0,1192,1193,3,115,57,0,1193,1194,3,129,64,0,1194,1195,3,95,47,0,1195,1196,3,121,60,0,1196,224,1,0,0,0,1197,1198,3,91,45,0,1198,1199,3,121,60,0,1199,1200,3,95,47,0,1200,1201,3,87,43,0,1201,1202,3,125,62,0,1202,1203,3,95,47,0,1203,226,1,0,0,0,1204,1205,3,91,45,0,1205,1206,3,121,60,0,1206,1207,3,115,57,0,1207,1208,3,123,61,0,1208,1209,3,123,61,0,1209,228,1,0,0,0,1210,1211,3,91,45,0,1211,1212,3,127,63,0,1212,1213,3,89,44,0,1213,1214,3,95,47,0,1214,230,1,0,0,0,1215,1216,3,91,45,0,1216,1217,3,127,63,0,1217,1218,3,121,60,0,1218,1219,3,121,60,0,1219,1220,3,95,47,0,1220,1221,3,113,56,0,1221,1222,3,125,62,0,1222,232,1,0,0,0,1223,1224,3,91,45,0,1224,1225,3,127,63,0,1225,1226,3,121,60,0,1226,1227,3,121,60,0,1227,1228,3,95,47,0,1228,1229,3,113,56,0,1229,1230,3,125,62,0,1230,1231,5,95,0,0,1231,1232,3,93,46,0,1232,1233,3,87,43,0,1233,1234,3,125,62,0,1234,1235,3,95,47,0,1235,234,1,0,0,0,1236,1237,3,91,45,0,1237,1238,3,127,63,0,1238,1239,3,121,60,0,1239,1240,3,121,60,0,1240,1241,3,95,47,0,1241,1242,3,113,56,0,1242,1243,3,125,62,0,1243,1244,5,95,0,0,1244,1245,3,125,62,0,1245,1246,3,103,51,0,1246,1247,3,111,55,0,1247,1248,3,95,47,0,1248,236,1,0,0,0,1249,1250,3,91,45,0,1250,1251,3,127,63,0,1251,1252,3,121,60,0,1252,1253,3,121,60,0,1253,1254,3,95,47,0,1254,1255,3,113,56,0,1255,1256,3,125,62,0,1256,1257,5,95,0,0,1257,1258,3,125,62,0,1258,1259,3,103,51,0,1259,1260,3,111,55,0,1260,1261,3,95,47,0,1261,1262,3,123,61,0,1262,1263,3,125,62,0,1263,1264,3,87,43,0,1264,1265,3,111,55,0,1265,1266,3,117,58,0,1266,238,1,0,0,0,1267,1268,3,93,46,0,1268,1269,3,87,43,0,1269,1270,3,125,62,0,1270,1271,3,87,43,0,1271,240,1,0,0,0,1272,1273,3,93,46,0,1273,1274,3,87,43,0,1274,1275,3,125,62,0,1275,1276,3,87,43,0,1276,1277,3,89,44,0,1277,1278,3,87,43,0,1278,1279,3,123,61,0,1279,1280,3,95,47,0,1280,242,1,0,0,0,1281,1282,3,93,46,0,1282,1283,3,95,47,0,1283,1284,3,91,45,0,1284,1285,3,103,51,0,1285,1286,3,111,55,0,1286,1287,3,87,43,0,1287,1288,3,109,54,0,1288,244,1,0,0,0,1289,1290,3,93,46,0,1290,1291,3,95,47,0,1291,1292,3,91,45,0,1292,1293,3,109,54,0,1293,1294,3,87,43,0,1294,1295,3,121,60,0,1295,1296,3,95,47,0,1296,246,1,0,0,0,1297,1298,3,93,46,0,1298,1299,3,95,47,0,1299,1300,3,97,48,0,1300,1301,3,87,43,0,1301,1302,3,127,63,0,1302,1303,3,109,54,0,1303,1304,3,125,62,0,1304,248,1,0,0,0,1305,1306,3,93,46,0,1306,1307,3,95,47,0,1307,1308,3,97,48,0,1308,1309,3,95,47,0,1309,1310,3,121,60,0,1310,1311,3,121,60,0,1311,1312,3,87,43,0,1312,1313,3,89,44,0,1313,1314,3,109,54,0,1314,1315,3,95,47,0,1315,250,1,0,0,0,1316,1317,3,93,46,0,1317,1318,3,95,47,0,1318,1319,3,97,48,0,1319,1320,3,95,47,0,1320,1321,3,121,60,0,1321,1322,3,121,60,0,1322,1323,3,95,47,0,1323,1324,3,93,46,0,1324,252,1,0,0,0,1325,1326,3,93,46,0,1326,1327,3,95,47,0,1327,1328,3,97,48,0,1328,1329,3,103,51,0,1329,1330,3,113,56,0,1330,1331,3,95,47,0,1331,254,1,0,0,0,1332,1333,3,93,46,0,1333,1334,3,95,47,0,1334,1335,3,109,54,0,1335,1336,3,95,47,0,1336,1337,3,125,62,0,1337,1338,3,95,47,0,1338,256,1,0,0,0,1339,1340,3,93,46,0,1340,1341,3,95,47,0,1341,1342,3,123,61,0,1342,1343,3,91,45,0,1343,258,1,0,0,0,1344,1345,3,93,46,0,1345,1346,3,95,47,0,1346,1347,3,123,61,0,1347,1348,3,91,45,0,1348,1349,3,121,60,0,1349,1350,3,103,51,0,1350,1351,3,89,44,0,1351,1352,3,95,47,0,1352,260,1,0,0,0,1353,1354,3,93,46,0,1354,1355,3,95,47,0,1355,1356,3,125,62,0,1356,1357,3,87,43,0,1357,1358,3,91,45,0,1358,1359,3,101,50,0,1359,262,1,0,0,0,1360,1361,3,93,46,0,1361,1362,3,103,51,0,1362,1363,3,91,45,0,1363,1364,3,125,62,0,1364,264,1,0,0,0,1365,1366,3,93,46,0,1366,1367,3,103,51,0,1367,1368,3,121,60,0,1368,1369,3,95,47,0,1369,1370,3,91,45,0,1370,1371,3,125,62,0,1371,1372,3,115,57,0,1372,1373,3,121,60,0,1373,1374,3,135,67,0,1374,266,1,0,0,0,1375,1376,3,93,46,0,1376,1377,3,103,51,0,1377,1378,3,123,61,0,1378,1379,3,87,43,0,1379,1380,3,89,44,0,1380,1381,3,109,54,0,1381,1382,3,95,47,0,1382,268,1,0,0,0,1383,1384,3,93,46,0,1384,1385,3,103,51,0,1385,1386,3,123,61,0,1386,1387,3,91,45,0,1387,1388,3,87,43,0,1388,1389,3,121,60,0,1389,1390,3,93,46,0,1390,270,1,0,0,0,1391,1392,3,93,46,0,1392,1393,3,103,51,0,1393,1394,3,123,61,0,1394,1395,3,125,62,0,1395,1396,3,103,51,0,1396,1397,3,113,56,0,1397,1398,3,91,45,0,1398,1399,3,125,62,0,1399,272,1,0,0,0,1400,1401,3,93,46,0,1401,1402,3,115,57,0,1402,274,1,0,0,0,1403,1404,3,93,46,0,1404,1405,3,121,60,0,1405,1406,3,115,57,0,1406,1407,3,117,58,0,1407,276,1,0,0,0,1408,1409,3,95,47,0,1409,1410,3,87,43,0,1410,1411,3,91,45,0,1411,1412,3,101,50,0,1412,278,1,0,0,0,1413,1414,3,95,47,0,1414,1415,3,109,54,0,1415,1416,3,123,61,0,1416,1417,3,95,47,0,1417,280,1,0,0,0,1418,1419,3,95,47,0,1419,1420,3,111,55,0,1420,1421,3,117,58,0,1421,1422,3,125,62,0,1422,1423,3,135,67,0,1423,282,1,0,0,0,1424,1425,3,95,47,0,1425,1426,3,111,55,0,1426,1427,3,117,58,0,1427,1428,3,125,62,0,1428,1429,3,135,67,0,1429,1430,5,95,0,0,1430,1431,3,87,43,0,1431,1432,3,91,45,0,1432,1433,3,125,62,0,1433,1434,3,103,51,0,1434,1435,3,115,57,0,1435,1436,3,113,56,0,1436,284,1,0,0,0,1437,1438,3,95,47,0,1438,1439,3,113,56,0,1439,1440,3,91,45,0,1440,1441,3,121,60,0,1441,1442,3,135,67,0,1442,1443,3,117,58,0,1443,1444,3,125,62,0,1444,1445,3,95,47,0,1445,1446,3,93,46,0,1446,286,1,0,0,0,1447,1448,3,95,47,0,1448,1449,3,113,56,0,1449,1450,3,93,46,0,1450,288,1,0,0,0,1451,1452,3,95,47,0,1452,1453,3,113,56,0,1453,1454,3,127,63,0,1454,1455,3,111,55,0,1455,290,1,0,0,0,1456,1457,3,95,47,0,1457,1458,3,121,60,0,1458,1459,3,87,43,0,1459,1460,3,123,61,0,1460,1461,3,95,47,0,1461,292,1,0,0,0,1462,1463,3,95,47,0,1463,1464,3,121,60,0,1464,1465,3,121,60,0,1465,1466,3,115,57,0,1466,1467,3,121,60,0,1467,294,1,0,0,0,1468,1469,3,95,47,0,1469,1470,3,123,61,0,1470,1471,3,91,45,0,1471,1472,3,87,43,0,1472,1473,3,117,58,0,1473,1474,3,95,47,0,1474,296,1,0,0,0,1475,1476,3,95,47,0,1476,1477,3,129,64,0,1477,1478,3,87,43,0,1478,1479,3,109,54,0,1479,1480,3,127,63,0,1480,1481,3,87,43,0,1481,1482,3,125,62,0,1482,1483,3,95,47,0,1483,298,1,0,0,0,1484,1485,3,95,47,0,1485,1486,3,133,66,0,1486,1487,3,91,45,0,1487,1488,3,95,47,0,1488,1489,3,117,58,0,1489,1490,3,125,62,0,1490,300,1,0,0,0,1491,1492,3,95,47,0,1492,1493,3,133,66,0,1493,1494,3,91,45,0,1494,1495,3,109,54,0,1495,1496,3,127,63,0,1496,1497,3,93,46,0,1497,1498,3,95,47,0,1498,302,1,0,0,0,1499,1500,3,95,47,0,1500,1501,3,133,66,0,1501,1502,3,91,45,0,1502,1503,3,109,54,0,1503,1504,3,127,63,0,1504,1505,3,123,61,0,1505,1506,3,103,51,0,1506,1507,3,115,57,0,1507,1508,3,113,56,0,1508,304,1,0,0,0,1509,1510,3,95,47,0,1510,1511,3,133,66,0,1511,1512,3,91,45,0,1512,1513,3,109,54,0,1513,1514,3,127,63,0,1514,1515,3,123,61,0,1515,1516,3,103,51,0,1516,1517,3,129,64,0,1517,1518,3,95,47,0,1518,306,1,0,0,0,1519,1520,3,95,47,0,1520,1521,3,133,66,0,1521,1522,3,103,51,0,1522,1523,3,123,61,0,1523,1524,3,125,62,0,1524,1525,3,123,61,0,1525,308,1,0,0,0,1526,1527,3,95,47,0,1527,1528,3,133,66,0,1528,1529,3,117,58,0,1529,1530,3,109,54,0,1530,1531,3,87,43,0,1531,1532,3,103,51,0,1532,1533,3,113,56,0,1533,310,1,0,0,0,1534,1535,3,95,47,0,1535,1536,3,133,66,0,1536,1537,3,117,58,0,1537,1538,3,115,57,0,1538,1539,3,121,60,0,1539,1540,3,125,62,0,1540,312,1,0,0,0,1541,1542,3,95,47,0,1542,1543,3,133,66,0,1543,1544,3,125,62,0,1544,1545,3,95,47,0,1545,1546,3,121,60,0,1546,1547,3,113,56,0,1547,1548,3,87,43,0,1548,1549,3,109,54,0,1549,314,1,0,0,0,1550,1551,3,97,48,0,1551,1552,3,87,43,0,1552,1553,3,103,51,0,1553,1554,3,109,54,0,1554,316,1,0,0,0,1555,1556,3,97,48,0,1556,1557,3,87,43,0,1557,1558,3,109,54,0,1558,1559,3,123,61,0,1559,1560,3,95,47,0,1560,318,1,0,0,0,1561,1562,3,97,48,0,1562,1563,3,87,43,0,1563,1564,3,111,55,0,1564,1565,3,103,51,0,1565,1566,3,109,54,0,1566,1567,3,135,67,0,1567,320,1,0,0,0,1568,1569,3,97,48,0,1569,1570,3,103,51,0,1570,1571,3,109,54,0,1571,1572,3,125,62,0,1572,1573,3,95,47,0,1573,1574,3,121,60,0,1574,322,1,0,0,0,1575,1576,3,97,48,0,1576,1577,3,103,51,0,1577,1578,3,121,60,0,1578,1579,3,123,61,0,1579,1580,3,125,62,0,1580,324,1,0,0,0,1581,1582,3,97,48,0,1582,1583,3,109,54,0,1583,1584,3,87,43,0,1584,1585,3,125,62,0,1585,1586,3,125,62,0,1586,1587,3,95,47,0,1587,1588,3,113,56,0,1588,326,1,0,0,0,1589,1590,3,97,48,0,1590,1591,3,109,54,0,1591,1592,3,115,57,0,1592,1593,3,131,65,0,1593,328,1,0,0,0,1594,1595,3,97,48,0,1595,1596,3,115,57,0,1596,1597,3,109,54,0,1597,1598,3,109,54,0,1598,1599,3,115,57,0,1599,1600,3,131,65,0,1600,1601,3,103,51,0,1601,1602,3,113,56,0,1602,1603,3,99,49,0,1603,330,1,0,0,0,1604,1605,3,97,48,0,1605,1606,3,115,57,0,1606,1607,3,121,60,0,1607,332,1,0,0,0,1608,1609,3,97,48,0,1609,1610,3,115,57,0,1610,1611,3,121,60,0,1611,1612,3,95,47,0,1612,1613,3,103,51,0,1613,1614,3,99,49,0,1614,1615,3,113,56,0,1615,334,1,0,0,0,1616,1617,3,97,48,0,1617,1618,3,121,60,0,1618,1619,3,115,57,0,1619,1620,3,111,55,0,1620,336,1,0,0,0,1621,1622,3,97,48,0,1622,1623,3,127,63,0,1623,1624,3,109,54,0,1624,1625,3,109,54,0,1625,338,1,0,0,0,1626,1627,3,97,48,0,1627,1628,3,127,63,0,1628,1629,3,113,56,0,1629,1630,3,91,45,0,1630,1631,3,125,62,0,1631,1632,3,103,51,0,1632,1633,3,115,57,0,1633,1634,3,113,56,0,1634,340,1,0,0,0,1635,1636,3,99,49,0,1636,1637,3,109,54,0,1637,1638,3,115,57,0,1638,1639,3,89,44,0,1639,342,1,0,0,0,1640,1641,3,99,49,0,1641,1642,3,109,54,0,1642,1643,3,115,57,0,1643,1644,3,89,44,0,1644,1645,3,87,43,0,1645,1646,3,109,54,0,1646,344,1,0,0,0,1647,1648,3,99,49,0,1648,1649,3,121,60,0,1649,1650,3,87,43,0,1650,1651,3,113,56,0,1651,1652,3,125,62,0,1652,346,1,0,0,0,1653,1654,3,99,49,0,1654,1655,3,121,60,0,1655,1656,3,115,57,0,1656,1657,3,127,63,0,1657,1658,3,117,58,0,1658,348,1,0,0,0,1659,1660,3,99,49,0,1660,1661,3,121,60,0,1661,1662,3,115,57,0,1662,1663,3,127,63,0,1663,1664,3,117,58,0,1664,1665,3,103,51,0,1665,1666,3,113,56,0,1666,1667,3,99,49,0,1667,350,1,0,0,0,1668,1669,3,99,49,0,1669,1670,3,121,60,0,1670,1671,3,115,57,0,1671,1672,3,127,63,0,1672,1673,3,117,58,0,1673,1674,3,123,61,0,1674,352,1,0,0,0,1675,1676,3,101,50,0,1676,1677,3,87,43,0,1677,1678,3,123,61,0,1678,1679,3,101,50,0,1679,354,1,0,0,0,1680,1681,3,101,50,0,1681,1682,3,87,43,0,1682,1683,3,129,64,0,1683,1684,3,103,51,0,1684,1685,3,113,56,0,1685,1686,3,99,49,0,1686,356,1,0,0,0,1687,1688,3,101,50,0,1688,1689,3,115,57,0,1689,1690,3,117,58,0,1690,358,1,0,0,0,1691,1692,3,103,51,0,1692,1693,3,97,48,0,1693,360,1,0,0,0,1694,1695,3,103,51,0,1695,1696,3,99,49,0,1696,1697,3,113,56,0,1697,1698,3,115,57,0,1698,1699,3,121,60,0,1699,1700,3,95,47,0,1700,362,1,0,0,0,1701,1702,3,103,51,0,1702,1703,3,109,54,0,1703,1704,3,103,51,0,1704,1705,3,107,53,0,1705,1706,3,95,47,0,1706,364,1,0,0,0,1707,1708,3,103,51,0,1708,1709,3,111,55,0,1709,1710,3,111,55,0,1710,1711,3,95,47,0,1711,1712,3,93,46,0,1712,1713,3,103,51,0,1713,1714,3,87,43,0,1714,1715,3,125,62,0,1715,1716,3,95,47,0,1716,366,1,0,0,0,1717,1718,3,103,51,0,1718,1719,3,111,55,0,1719,1720,3,117,58,0,1720,1721,3,115,57,0,1721,1722,3,121,60,0,1722,1723,3,125,62,0,1723,368,1,0,0,0,1724,1725,3,103,51,0,1725,1726,3,113,56,0,1726,370,1,0,0,0,1727,1728,3,103,51,0,1728,1729,3,113,56,0,1729,1730,3,93,46,0,1730,1731,3,95,47,0,1731,1732,3,133,66,0,1732,372,1,0,0,0,1733,1734,3,103,51,0,1734,1735,3,113,56,0,1735,1736,3,93,46,0,1736,1737,3,95,47,0,1737,1738,3,133,66,0,1738,1739,3,95,47,0,1739,1740,3,93,46,0,1740,374,1,0,0,0,1741,1742,3,103,51,0,1742,1743,3,113,56,0,1743,1744,3,101,50,0,1744,1745,3,95,47,0,1745,1746,3,121,60,0,1746,1747,3,103,51,0,1747,1748,3,125,62,0,1748,1749,3,123,61,0,1749,376,1,0,0,0,1750,1751,3,103,51,0,1751,1752,3,113,56,0,1752,1753,3,103,51,0,1753,1754,3,125,62,0,1754,1755,3,103,51,0,1755,1756,3,87,43,0,1756,1757,3,109,54,0,1757,378,1,0,0,0,1758,1759,3,103,51,0,1759,1760,3,113,56,0,1760,1761,3,103,51,0,1761,1762,3,125,62,0,1762,1763,3,103,51,0,1763,1764,3,87,43,0,1764,1765,3,109,54,0,1765,1766,3,109,54,0,1766,1767,3,135,67,0,1767,380,1,0,0,0,1768,1769,3,103,51,0,1769,1770,3,113,56,0,1770,1771,3,113,56,0,1771,1772,3,95,47,0,1772,1773,3,121,60,0,1773,382,1,0,0,0,1774,1775,3,103,51,0,1775,1776,3,113,56,0,1776,1777,3,123,61,0,1777,1778,3,95,47,0,1778,1779,3,121,60,0,1779,1780,3,125,62,0,1780,384,1,0,0,0,1781,1782,3,103,51,0,1782,1783,3,113,56,0,1783,1784,3,123,61,0,1784,1785,3,125,62,0,1785,1786,3,95,47,0,1786,1787,3,87,43,0,1787,1788,3,93,46,0,1788,386,1,0,0,0,1789,1790,3,103,51,0,1790,1791,3,113,56,0,1791,1792,3,125,62,0,1792,1793,3,95,47,0,1793,1794,3,121,60,0,1794,1795,3,123,61,0,1795,1796,3,95,47,0,1796,1797,3,91,45,0,1797,1798,3,125,62,0,1798,388,1,0,0,0,1799,1800,3,103,51,0,1800,1801,3,113,56,0,1801,1802,3,125,62,0,1802,1803,3,115,57,0,1803,390,1,0,0,0,1804,1805,3,103,51,0,1805,1806,3,123,61,0,1806,392,1,0,0,0,1807,1808,3,103,51,0,1808,1809,3,123,61,0,1809,1810,3,113,56,0,1810,1811,3,127,63,0,1811,1812,3,109,54,0,1812,1813,3,109,54,0,1813,394,1,0,0,0,1814,1815,3,105,52,0,1815,1816,3,115,57,0,1816,1817,3,103,51,0,1817,1818,3,113,56,0,1818,396,1,0,0,0,1819,1820,3,105,52,0,1820,1821,3,123,61,0,1821,1822,3,115,57,0,1822,1823,3,113,56,0,1823,1824,5,95,0,0,1824,1825,3,95,47,0,1825,1826,3,133,66,0,1826,1827,3,103,51,0,1827,1828,3,123,61,0,1828,1829,3,125,62,0,1829,1830,3,123,61,0,1830,398,1,0,0,0,1831,1832,3,105,52,0,1832,1833,3,123,61,0,1833,1834,3,115,57,0,1834,1835,3,113,56,0,1835,1836,5,95,0,0,1836,1837,3,119,59,0,1837,1838,3,127,63,0,1838,1839,3,95,47,0,1839,1840,3,121,60,0,1840,1841,3,135,67,0,1841,400,1,0,0,0,1842,1843,3,105,52,0,1843,1844,3,123,61,0,1844,1845,3,115,57,0,1845,1846,3,113,56,0,1846,1847,5,95,0,0,1847,1848,3,129,64,0,1848,1849,3,87,43,0,1849,1850,3,109,54,0,1850,1851,3,127,63,0,1851,1852,3,95,47,0,1852,402,1,0,0,0,1853,1854,3,107,53,0,1854,1855,3,95,47,0,1855,1856,3,135,67,0,1856,404,1,0,0,0,1857,1858,3,109,54,0,1858,1859,3,87,43,0,1859,1860,3,123,61,0,1860,1861,3,125,62,0,1861,406,1,0,0,0,1862,1863,3,109,54,0,1863,1864,3,95,47,0,1864,1865,3,97,48,0,1865,1866,3,125,62,0,1866,408,1,0,0,0,1867,1868,3,109,54,0,1868,1869,3,95,47,0,1869,1870,3,99,49,0,1870,1871,3,87,43,0,1871,1872,3,91,45,0,1872,1873,3,135,67,0,1873,410,1,0,0,0,1874,1875,3,109,54,0,1875,1876,3,103,51,0,1876,1877,3,107,53,0,1877,1878,3,95,47,0,1878,412,1,0,0,0,1879,1880,3,109,54,0,1880,1881,3,103,51,0,1881,1882,3,111,55,0,1882,1883,3,103,51,0,1883,1884,3,125,62,0,1884,414,1,0,0,0,1885,1886,3,109,54,0,1886,1887,3,103,51,0,1887,1888,3,123,61,0,1888,1889,3,125,62,0,1889,416,1,0,0,0,1890,1891,3,109,54,0,1891,1892,3,115,57,0,1892,1893,3,91,45,0,1893,1894,3,87,43,0,1894,1895,3,109,54,0,1895,418,1,0,0,0,1896,1897,3,111,55,0,1897,1898,3,87,43,0,1898,1899,3,113,56,0,1899,1900,3,87,43,0,1900,1901,3,99,49,0,1901,1902,3,95,47,0,1902,420,1,0,0,0,1903,1904,3,111,55,0,1904,1905,3,87,43,0,1905,1906,3,125,62,0,1906,1907,3,91,45,0,1907,1908,3,101,50,0,1908,422,1,0,0,0,1909,1910,3,111,55,0,1910,1911,3,87,43,0,1911,1912,3,125,62,0,1912,1913,3,91,45,0,1913,1914,3,101,50,0,1914,1915,3,95,47,0,1915,1916,3,123,61,0,1916,424,1,0,0,0,1917,1918,3,111,55,0,1918,1919,3,87,43,0,1919,1920,3,125,62,0,1920,1921,3,91,45,0,1921,1922,3,101,50,0,1922,1923,5,95,0,0,1923,1924,3,121,60,0,1924,1925,3,95,47,0,1925,1926,3,91,45,0,1926,1927,3,115,57,0,1927,1928,3,99,49,0,1928,1929,3,113,56,0,1929,1930,3,103,51,0,1930,1931,3,137,68,0,1931,1932,3,95,47,0,1932,426,1,0,0,0,1933,1934,3,111,55,0,1934,1935,3,95,47,0,1935,1936,3,87,43,0,1936,1937,3,123,61,0,1937,1938,3,127,63,0,1938,1939,3,121,60,0,1939,1940,3,95,47,0,1940,1941,3,123,61,0,1941,428,1,0,0,0,1942,1943,3,111,55,0,1943,1944,3,103,51,0,1944,1945,3,91,45,0,1945,1946,3,121,60,0,1946,1947,3,115,57,0,1947,1948,3,123,61,0,1948,1949,3,95,47,0,1949,1950,3,91,45,0,1950,1951,3,115,57,0,1951,1952,3,113,56,0,1952,1953,3,93,46,0,1953,1954,3,123,61,0,1954,430,1,0,0,0,1955,1956,3,111,55,0,1956,1957,3,103,51,0,1957,1958,3,109,54,0,1958,1959,3,109,54,0,1959,1960,3,103,51,0,1960,1961,3,123,61,0,1961,1962,3,95,47,0,1962,1963,3,91,45,0,1963,1964,3,115,57,0,1964,1965,3,113,56,0,1965,1966,3,93,46,0,1966,1967,3,123,61,0,1967,432,1,0,0,0,1968,1969,3,111,55,0,1969,1970,3,115,57,0,1970,1971,3,93,46,0,1971,1972,3,103,51,0,1972,1973,3,97,48,0,1973,1974,3,135,67,0,1974,434,1,0,0,0,1975,1976,3,113,56,0,1976,1977,3,87,43,0,1977,1978,3,113,56,0,1978,1979,3,115,57,0,1979,1980,3,123,61,0,1980,1981,3,95,47,0,1981,1982,3,91,45,0,1982,1983,3,115,57,0,1983,1984,3,113,56,0,1984,1985,3,93,46,0,1985,1986,3,123,61,0,1986,436,1,0,0,0,1987,1988,3,113,56,0,1988,1989,3,87,43,0,1989,1990,3,125,62,0,1990,1991,3,127,63,0,1991,1992,3,121,60,0,1992,1993,3,87,43,0,1993,1994,3,109,54,0,1994,438,1,0,0,0,1995,1996,3,113,56,0,1996,1997,3,95,47,0,1997,1998,3,133,66,0,1998,1999,3,125,62,0,1999,440,1,0,0,0,2e3,2001,3,113,56,0,2001,2002,3,115,57,0,2002,442,1,0,0,0,2003,2004,3,113,56,0,2004,2005,3,115,57,0,2005,2006,3,125,62,0,2006,444,1,0,0,0,2007,2008,3,113,56,0,2008,2009,3,115,57,0,2009,2010,3,125,62,0,2010,2011,3,113,56,0,2011,2012,3,127,63,0,2012,2013,3,109,54,0,2013,2014,3,109,54,0,2014,446,1,0,0,0,2015,2016,3,113,56,0,2016,2017,3,127,63,0,2017,2018,3,109,54,0,2018,2019,3,109,54,0,2019,448,1,0,0,0,2020,2021,3,113,56,0,2021,2022,3,127,63,0,2022,2023,3,109,54,0,2023,2024,3,109,54,0,2024,2025,3,123,61,0,2025,450,1,0,0,0,2026,2027,3,115,57,0,2027,2028,3,89,44,0,2028,2029,3,105,52,0,2029,2030,3,95,47,0,2030,2031,3,91,45,0,2031,2032,3,125,62,0,2032,452,1,0,0,0,2033,2034,3,115,57,0,2034,2035,3,97,48,0,2035,454,1,0,0,0,2036,2037,3,115,57,0,2037,2038,3,97,48,0,2038,2039,3,97,48,0,2039,2040,3,123,61,0,2040,2041,3,95,47,0,2041,2042,3,125,62,0,2042,456,1,0,0,0,2043,2044,3,115,57,0,2044,2045,3,111,55,0,2045,2046,3,103,51,0,2046,2047,3,125,62,0,2047,458,1,0,0,0,2048,2049,3,115,57,0,2049,2050,3,113,56,0,2050,460,1,0,0,0,2051,2052,3,115,57,0,2052,2053,3,113,56,0,2053,2054,3,95,47,0,2054,462,1,0,0,0,2055,2056,3,115,57,0,2056,2057,3,113,56,0,2057,2058,3,109,54,0,2058,2059,3,135,67,0,2059,464,1,0,0,0,2060,2061,3,115,57,0,2061,2062,3,117,58,0,2062,2063,3,125,62,0,2063,2064,3,103,51,0,2064,2065,3,115,57,0,2065,2066,3,113,56,0,2066,466,1,0,0,0,2067,2068,3,115,57,0,2068,2069,3,117,58,0,2069,2070,3,125,62,0,2070,2071,3,103,51,0,2071,2072,3,115,57,0,2072,2073,3,113,56,0,2073,2074,3,87,43,0,2074,2075,3,109,54,0,2075,468,1,0,0,0,2076,2077,3,115,57,0,2077,2078,3,121,60,0,2078,470,1,0,0,0,2079,2080,3,115,57,0,2080,2081,3,121,60,0,2081,2082,3,93,46,0,2082,2083,3,95,47,0,2083,2084,3,121,60,0,2084,472,1,0,0,0,2085,2086,3,115,57,0,2086,2087,3,125,62,0,2087,2088,3,101,50,0,2088,2089,3,95,47,0,2089,2090,3,121,60,0,2090,2091,3,123,61,0,2091,474,1,0,0,0,2092,2093,3,115,57,0,2093,2094,3,127,63,0,2094,2095,3,125,62,0,2095,2096,3,95,47,0,2096,2097,3,121,60,0,2097,476,1,0,0,0,2098,2099,3,115,57,0,2099,2100,3,129,64,0,2100,2101,3,95,47,0,2101,2102,3,121,60,0,2102,478,1,0,0,0,2103,2104,3,117,58,0,2104,2105,3,87,43,0,2105,2106,3,121,60,0,2106,2107,3,87,43,0,2107,2108,3,109,54,0,2108,2109,3,109,54,0,2109,2110,3,95,47,0,2110,2111,3,109,54,0,2111,480,1,0,0,0,2112,2113,3,117,58,0,2113,2114,3,87,43,0,2114,2115,3,121,60,0,2115,2116,3,125,62,0,2116,2117,3,103,51,0,2117,2118,3,125,62,0,2118,2119,3,103,51,0,2119,2120,3,115,57,0,2120,2121,3,113,56,0,2121,482,1,0,0,0,2122,2123,3,117,58,0,2123,2124,3,87,43,0,2124,2125,3,123,61,0,2125,2126,3,123,61,0,2126,2127,3,103,51,0,2127,2128,3,113,56,0,2128,2129,3,99,49,0,2129,484,1,0,0,0,2130,2131,3,117,58,0,2131,2132,3,87,43,0,2132,2133,3,123,61,0,2133,2134,3,123,61,0,2134,2135,3,131,65,0,2135,2136,3,115,57,0,2136,2137,3,121,60,0,2137,2138,3,93,46,0,2138,486,1,0,0,0,2139,2140,3,117,58,0,2140,2141,3,87,43,0,2141,2142,3,123,61,0,2142,2143,3,125,62,0,2143,488,1,0,0,0,2144,2145,3,117,58,0,2145,2146,3,87,43,0,2146,2147,3,125,62,0,2147,2148,3,125,62,0,2148,2149,3,95,47,0,2149,2150,3,121,60,0,2150,2151,3,113,56,0,2151,490,1,0,0,0,2152,2153,3,117,58,0,2153,2154,3,95,47,0,2154,2155,3,121,60,0,2155,492,1,0,0,0,2156,2157,3,117,58,0,2157,2158,3,95,47,0,2158,2159,3,121,60,0,2159,2160,3,111,55,0,2160,2161,3,127,63,0,2161,2162,3,125,62,0,2162,2163,3,95,47,0,2163,494,1,0,0,0,2164,2165,3,117,58,0,2165,2166,3,109,54,0,2166,2167,3,87,43,0,2167,2168,3,113,56,0,2168,496,1,0,0,0,2169,2170,3,117,58,0,2170,2171,3,121,60,0,2171,2172,3,87,43,0,2172,2173,3,99,49,0,2173,2174,3,111,55,0,2174,2175,3,87,43,0,2175,498,1,0,0,0,2176,2177,3,117,58,0,2177,2178,3,121,60,0,2178,2179,3,95,47,0,2179,2180,3,91,45,0,2180,2181,3,95,47,0,2181,2182,3,93,46,0,2182,2183,3,103,51,0,2183,2184,3,113,56,0,2184,2185,3,99,49,0,2185,500,1,0,0,0,2186,2187,3,117,58,0,2187,2188,3,121,60,0,2188,2189,3,95,47,0,2189,2190,3,123,61,0,2190,2191,3,115,57,0,2191,2192,3,121,60,0,2192,2193,3,125,62,0,2193,502,1,0,0,0,2194,2195,3,117,58,0,2195,2196,3,121,60,0,2196,2197,3,103,51,0,2197,2198,3,111,55,0,2198,2199,3,87,43,0,2199,2200,3,121,60,0,2200,2201,3,135,67,0,2201,504,1,0,0,0,2202,2203,3,117,58,0,2203,2204,3,121,60,0,2204,2205,3,103,51,0,2205,2206,3,129,64,0,2206,2207,3,103,51,0,2207,2208,3,109,54,0,2208,2209,3,95,47,0,2209,2210,3,99,49,0,2210,2211,3,95,47,0,2211,2212,3,123,61,0,2212,506,1,0,0,0,2213,2214,3,117,58,0,2214,2215,3,121,60,0,2215,2216,3,115,57,0,2216,2217,3,91,45,0,2217,2218,3,95,47,0,2218,2219,3,123,61,0,2219,2220,3,123,61,0,2220,508,1,0,0,0,2221,2222,3,119,59,0,2222,2223,3,127,63,0,2223,2224,3,95,47,0,2224,2225,3,127,63,0,2225,2226,3,95,47,0,2226,510,1,0,0,0,2227,2228,3,121,60,0,2228,2229,3,87,43,0,2229,2230,3,103,51,0,2230,2231,3,123,61,0,2231,2232,3,95,47,0,2232,512,1,0,0,0,2233,2234,3,121,60,0,2234,2235,3,87,43,0,2235,2236,3,113,56,0,2236,2237,3,99,49,0,2237,2238,3,95,47,0,2238,514,1,0,0,0,2239,2240,3,121,60,0,2240,2241,3,95,47,0,2241,2242,3,93,46,0,2242,2243,3,127,63,0,2243,2244,3,91,45,0,2244,2245,3,95,47,0,2245,516,1,0,0,0,2246,2247,3,121,60,0,2247,2248,3,95,47,0,2248,2249,3,97,48,0,2249,2250,3,95,47,0,2250,2251,3,121,60,0,2251,2252,3,95,47,0,2252,2253,3,113,56,0,2253,2254,3,91,45,0,2254,2255,3,95,47,0,2255,2256,3,123,61,0,2256,518,1,0,0,0,2257,2258,3,121,60,0,2258,2259,3,95,47,0,2259,2260,3,99,49,0,2260,2261,3,95,47,0,2261,2262,3,133,66,0,2262,2263,3,117,58,0,2263,520,1,0,0,0,2264,2265,3,121,60,0,2265,2266,3,95,47,0,2266,2267,3,103,51,0,2267,2268,3,113,56,0,2268,2269,3,93,46,0,2269,2270,3,95,47,0,2270,2271,3,133,66,0,2271,522,1,0,0,0,2272,2273,3,121,60,0,2273,2274,3,95,47,0,2274,2275,3,109,54,0,2275,2276,3,95,47,0,2276,2277,3,87,43,0,2277,2278,3,123,61,0,2278,2279,3,95,47,0,2279,524,1,0,0,0,2280,2281,3,121,60,0,2281,2282,3,95,47,0,2282,2283,3,111,55,0,2283,2284,3,115,57,0,2284,2285,3,129,64,0,2285,2286,3,95,47,0,2286,526,1,0,0,0,2287,2288,3,121,60,0,2288,2289,3,95,47,0,2289,2290,3,113,56,0,2290,2291,3,87,43,0,2291,2292,3,111,55,0,2292,2293,3,95,47,0,2293,528,1,0,0,0,2294,2295,3,121,60,0,2295,2296,3,95,47,0,2296,2297,3,117,58,0,2297,2298,3,95,47,0,2298,2299,3,87,43,0,2299,2300,3,125,62,0,2300,2301,3,87,43,0,2301,2302,3,89,44,0,2302,2303,3,109,54,0,2303,2304,3,95,47,0,2304,530,1,0,0,0,2305,2306,3,121,60,0,2306,2307,3,95,47,0,2307,2308,3,117,58,0,2308,2309,3,109,54,0,2309,2310,3,87,43,0,2310,2311,3,91,45,0,2311,2312,3,95,47,0,2312,532,1,0,0,0,2313,2314,3,121,60,0,2314,2315,3,95,47,0,2315,2316,3,117,58,0,2316,2317,3,109,54,0,2317,2318,3,103,51,0,2318,2319,3,91,45,0,2319,2320,3,87,43,0,2320,2321,3,125,62,0,2321,2322,3,103,51,0,2322,2323,3,115,57,0,2323,2324,3,113,56,0,2324,534,1,0,0,0,2325,2326,3,121,60,0,2326,2327,3,95,47,0,2327,2328,3,123,61,0,2328,2329,3,95,47,0,2329,2330,3,125,62,0,2330,536,1,0,0,0,2331,2332,3,121,60,0,2332,2333,3,95,47,0,2333,2334,3,123,61,0,2334,2335,3,115,57,0,2335,2336,3,127,63,0,2336,2337,3,121,60,0,2337,2338,3,91,45,0,2338,2339,3,95,47,0,2339,538,1,0,0,0,2340,2341,3,121,60,0,2341,2342,3,95,47,0,2342,2343,3,123,61,0,2343,2344,3,117,58,0,2344,2345,3,95,47,0,2345,2346,3,91,45,0,2346,2347,3,125,62,0,2347,540,1,0,0,0,2348,2349,3,121,60,0,2349,2350,3,95,47,0,2350,2351,3,123,61,0,2351,2352,3,125,62,0,2352,2353,3,121,60,0,2353,2354,3,103,51,0,2354,2355,3,91,45,0,2355,2356,3,125,62,0,2356,542,1,0,0,0,2357,2358,3,121,60,0,2358,2359,3,95,47,0,2359,2360,3,123,61,0,2360,2361,3,127,63,0,2361,2362,3,109,54,0,2362,2363,3,125,62,0,2363,544,1,0,0,0,2364,2365,3,121,60,0,2365,2366,3,95,47,0,2366,2367,3,125,62,0,2367,2368,3,127,63,0,2368,2369,3,121,60,0,2369,2370,3,113,56,0,2370,546,1,0,0,0,2371,2372,3,121,60,0,2372,2373,3,95,47,0,2373,2374,3,125,62,0,2374,2375,3,127,63,0,2375,2376,3,121,60,0,2376,2377,3,113,56,0,2377,2378,3,103,51,0,2378,2379,3,113,56,0,2379,2380,3,99,49,0,2380,548,1,0,0,0,2381,2382,3,121,60,0,2382,2383,3,95,47,0,2383,2384,3,129,64,0,2384,2385,3,95,47,0,2385,2386,3,121,60,0,2386,2387,3,125,62,0,2387,550,1,0,0,0,2388,2389,3,121,60,0,2389,2390,3,95,47,0,2390,2391,3,129,64,0,2391,2392,3,115,57,0,2392,2393,3,107,53,0,2393,2394,3,95,47,0,2394,552,1,0,0,0,2395,2396,3,121,60,0,2396,2397,3,103,51,0,2397,2398,3,99,49,0,2398,2399,3,101,50,0,2399,2400,3,125,62,0,2400,554,1,0,0,0,2401,2402,3,121,60,0,2402,2403,3,109,54,0,2403,2404,3,103,51,0,2404,2405,3,107,53,0,2405,2406,3,95,47,0,2406,556,1,0,0,0,2407,2408,3,121,60,0,2408,2409,3,115,57,0,2409,2410,3,109,54,0,2410,2411,3,109,54,0,2411,2412,3,89,44,0,2412,2413,3,87,43,0,2413,2414,3,91,45,0,2414,2415,3,107,53,0,2415,558,1,0,0,0,2416,2417,3,121,60,0,2417,2418,3,115,57,0,2418,2419,3,109,54,0,2419,2420,3,109,54,0,2420,2421,3,127,63,0,2421,2422,3,117,58,0,2422,560,1,0,0,0,2423,2424,3,121,60,0,2424,2425,3,115,57,0,2425,2426,3,131,65,0,2426,562,1,0,0,0,2427,2428,3,121,60,0,2428,2429,3,115,57,0,2429,2430,3,131,65,0,2430,2431,3,123,61,0,2431,564,1,0,0,0,2432,2433,3,123,61,0,2433,2434,3,87,43,0,2434,2435,3,111,55,0,2435,2436,3,117,58,0,2436,2437,3,109,54,0,2437,2438,3,95,47,0,2438,566,1,0,0,0,2439,2440,3,123,61,0,2440,2441,3,87,43,0,2441,2442,3,129,64,0,2442,2443,3,95,47,0,2443,2444,3,117,58,0,2444,2445,3,115,57,0,2445,2446,3,103,51,0,2446,2447,3,113,56,0,2447,2448,3,125,62,0,2448,568,1,0,0,0,2449,2450,3,123,61,0,2450,2451,3,91,45,0,2451,2452,3,101,50,0,2452,2453,3,95,47,0,2453,2454,3,111,55,0,2454,2455,3,87,43,0,2455,570,1,0,0,0,2456,2457,3,123,61,0,2457,2458,3,95,47,0,2458,2459,3,91,45,0,2459,2460,3,115,57,0,2460,2461,3,113,56,0,2461,2462,3,93,46,0,2462,2463,3,123,61,0,2463,572,1,0,0,0,2464,2465,3,123,61,0,2465,2466,3,95,47,0,2466,2467,3,95,47,0,2467,2468,3,107,53,0,2468,574,1,0,0,0,2469,2470,3,123,61,0,2470,2471,3,95,47,0,2471,2472,3,109,54,0,2472,2473,3,95,47,0,2473,2474,3,91,45,0,2474,2475,3,125,62,0,2475,576,1,0,0,0,2476,2477,3,123,61,0,2477,2478,3,95,47,0,2478,2479,3,111,55,0,2479,2480,3,103,51,0,2480,578,1,0,0,0,2481,2482,3,123,61,0,2482,2483,3,95,47,0,2483,2484,3,125,62,0,2484,580,1,0,0,0,2485,2486,3,123,61,0,2486,2487,3,95,47,0,2487,2488,3,125,62,0,2488,2489,3,123,61,0,2489,582,1,0,0,0,2490,2491,3,123,61,0,2491,2492,3,101,50,0,2492,2493,3,115,57,0,2493,2494,3,131,65,0,2494,584,1,0,0,0,2495,2496,3,123,61,0,2496,2497,3,107,53,0,2497,2498,3,103,51,0,2498,2499,3,117,58,0,2499,586,1,0,0,0,2500,2501,3,123,61,0,2501,2502,3,115,57,0,2502,2503,3,127,63,0,2503,2504,3,121,60,0,2504,2505,3,91,45,0,2505,2506,3,95,47,0,2506,588,1,0,0,0,2507,2508,3,123,61,0,2508,2509,3,125,62,0,2509,2510,3,121,60,0,2510,2511,3,95,47,0,2511,2512,3,87,43,0,2512,2513,3,111,55,0,2513,590,1,0,0,0,2514,2515,3,123,61,0,2515,2516,3,125,62,0,2516,2517,3,121,60,0,2517,2518,3,127,63,0,2518,2519,3,91,45,0,2519,2520,3,125,62,0,2520,592,1,0,0,0,2521,2522,3,123,61,0,2522,2523,3,127,63,0,2523,2524,3,89,44,0,2524,2525,3,119,59,0,2525,2526,3,127,63,0,2526,2527,3,95,47,0,2527,2528,3,121,60,0,2528,2529,3,135,67,0,2529,594,1,0,0,0,2530,2531,3,123,61,0,2531,2532,3,127,63,0,2532,2533,3,89,44,0,2533,2534,3,123,61,0,2534,2535,3,95,47,0,2535,2536,3,125,62,0,2536,596,1,0,0,0,2537,2538,3,123,61,0,2538,2539,3,135,67,0,2539,2540,3,111,55,0,2540,2541,3,89,44,0,2541,2542,3,115,57,0,2542,2543,3,109,54,0,2543,2544,3,123,61,0,2544,598,1,0,0,0,2545,2546,3,123,61,0,2546,2547,3,135,67,0,2547,2548,3,111,55,0,2548,2549,3,111,55,0,2549,2550,3,95,47,0,2550,2551,3,125,62,0,2551,2552,3,121,60,0,2552,2553,3,103,51,0,2553,2554,3,91,45,0,2554,600,1,0,0,0,2555,2556,3,123,61,0,2556,2557,3,135,67,0,2557,2558,3,113,56,0,2558,2559,3,91,45,0,2559,602,1,0,0,0,2560,2561,3,123,61,0,2561,2562,3,135,67,0,2562,2563,3,123,61,0,2563,2564,3,125,62,0,2564,2565,3,95,47,0,2565,2566,3,111,55,0,2566,604,1,0,0,0,2567,2568,3,125,62,0,2568,2569,3,87,43,0,2569,2570,3,89,44,0,2570,2571,3,109,54,0,2571,2572,3,95,47,0,2572,606,1,0,0,0,2573,2574,3,125,62,0,2574,2575,3,87,43,0,2575,2576,3,89,44,0,2576,2577,3,109,54,0,2577,2578,3,95,47,0,2578,2579,3,123,61,0,2579,608,1,0,0,0,2580,2581,3,125,62,0,2581,2582,3,87,43,0,2582,2583,3,89,44,0,2583,2584,3,109,54,0,2584,2585,3,95,47,0,2585,2586,3,123,61,0,2586,2587,3,87,43,0,2587,2588,3,111,55,0,2588,2589,3,117,58,0,2589,2590,3,109,54,0,2590,2591,3,95,47,0,2591,610,1,0,0,0,2592,2593,3,125,62,0,2593,2594,3,87,43,0,2594,2595,3,89,44,0,2595,2596,3,109,54,0,2596,2597,3,95,47,0,2597,2598,3,123,61,0,2598,2599,3,125,62,0,2599,2600,3,115,57,0,2600,2601,3,121,60,0,2601,2602,3,95,47,0,2602,612,1,0,0,0,2603,2604,3,125,62,0,2604,2605,3,87,43,0,2605,2606,3,99,49,0,2606,2607,3,99,49,0,2607,2608,3,95,47,0,2608,2609,3,93,46,0,2609,614,1,0,0,0,2610,2611,3,125,62,0,2611,2612,3,95,47,0,2612,2613,3,111,55,0,2613,2614,3,117,58,0,2614,616,1,0,0,0,2615,2616,3,125,62,0,2616,2617,3,95,47,0,2617,2618,3,111,55,0,2618,2619,3,117,58,0,2619,2620,3,115,57,0,2620,2621,3,121,60,0,2621,2622,3,87,43,0,2622,2623,3,121,60,0,2623,2624,3,135,67,0,2624,618,1,0,0,0,2625,2626,3,125,62,0,2626,2627,3,101,50,0,2627,2628,3,95,47,0,2628,2629,3,113,56,0,2629,620,1,0,0,0,2630,2631,3,125,62,0,2631,2632,3,103,51,0,2632,2633,3,95,47,0,2633,2634,3,123,61,0,2634,622,1,0,0,0,2635,2636,3,125,62,0,2636,2637,3,115,57,0,2637,624,1,0,0,0,2638,2639,3,125,62,0,2639,2640,3,115,57,0,2640,2641,3,117,58,0,2641,2642,3,103,51,0,2642,2643,3,91,45,0,2643,626,1,0,0,0,2644,2645,3,125,62,0,2645,2646,3,121,60,0,2646,2647,3,87,43,0,2647,2648,3,113,56,0,2648,2649,3,123,61,0,2649,2650,3,87,43,0,2650,2651,3,91,45,0,2651,2652,3,125,62,0,2652,2653,3,103,51,0,2653,2654,3,115,57,0,2654,2655,3,113,56,0,2655,628,1,0,0,0,2656,2657,3,125,62,0,2657,2658,3,121,60,0,2658,2659,3,103,51,0,2659,2660,3,99,49,0,2660,2661,3,99,49,0,2661,2662,3,95,47,0,2662,2663,3,121,60,0,2663,630,1,0,0,0,2664,2665,3,125,62,0,2665,2666,3,121,60,0,2666,2667,3,127,63,0,2667,2668,3,95,47,0,2668,632,1,0,0,0,2669,2670,3,125,62,0,2670,2671,3,127,63,0,2671,2672,3,117,58,0,2672,2673,3,109,54,0,2673,2674,3,95,47,0,2674,634,1,0,0,0,2675,2676,3,125,62,0,2676,2677,3,135,67,0,2677,2678,3,117,58,0,2678,2679,3,95,47,0,2679,636,1,0,0,0,2680,2681,3,127,63,0,2681,2682,3,113,56,0,2682,2683,3,89,44,0,2683,2684,3,115,57,0,2684,2685,3,127,63,0,2685,2686,3,113,56,0,2686,2687,3,93,46,0,2687,2688,3,95,47,0,2688,2689,3,93,46,0,2689,638,1,0,0,0,2690,2691,3,127,63,0,2691,2692,3,113,56,0,2692,2693,3,91,45,0,2693,2694,3,115,57,0,2694,2695,3,113,56,0,2695,2696,3,93,46,0,2696,2697,3,103,51,0,2697,2698,3,125,62,0,2698,2699,3,103,51,0,2699,2700,3,115,57,0,2700,2701,3,113,56,0,2701,2702,3,87,43,0,2702,2703,3,109,54,0,2703,640,1,0,0,0,2704,2705,3,127,63,0,2705,2706,3,113,56,0,2706,2707,3,103,51,0,2707,2708,3,115,57,0,2708,2709,3,113,56,0,2709,642,1,0,0,0,2710,2711,3,127,63,0,2711,2712,3,113,56,0,2712,2713,3,103,51,0,2713,2714,3,119,59,0,2714,2715,3,127,63,0,2715,2716,3,95,47,0,2716,644,1,0,0,0,2717,2718,3,127,63,0,2718,2719,3,113,56,0,2719,2720,3,107,53,0,2720,2721,3,113,56,0,2721,2722,3,115,57,0,2722,2723,3,131,65,0,2723,2724,3,113,56,0,2724,646,1,0,0,0,2725,2726,3,127,63,0,2726,2727,3,113,56,0,2727,2728,3,111,55,0,2728,2729,3,87,43,0,2729,2730,3,125,62,0,2730,2731,3,91,45,0,2731,2732,3,101,50,0,2732,2733,3,95,47,0,2733,2734,3,93,46,0,2734,648,1,0,0,0,2735,2736,3,127,63,0,2736,2737,3,117,58,0,2737,2738,3,93,46,0,2738,2739,3,87,43,0,2739,2740,3,125,62,0,2740,2741,3,95,47,0,2741,650,1,0,0,0,2742,2743,3,127,63,0,2743,2744,3,117,58,0,2744,2745,3,123,61,0,2745,2746,3,95,47,0,2746,2747,3,121,60,0,2747,2748,3,125,62,0,2748,652,1,0,0,0,2749,2750,3,127,63,0,2750,2751,3,123,61,0,2751,2752,3,95,47,0,2752,654,1,0,0,0,2753,2754,3,127,63,0,2754,2755,3,123,61,0,2755,2756,3,95,47,0,2756,2757,3,121,60,0,2757,656,1,0,0,0,2758,2759,3,127,63,0,2759,2760,3,123,61,0,2760,2761,3,103,51,0,2761,2762,3,113,56,0,2762,2763,3,99,49,0,2763,658,1,0,0,0,2764,2765,3,129,64,0,2765,2766,3,87,43,0,2766,2767,3,91,45,0,2767,2768,3,127,63,0,2768,2769,3,127,63,0,2769,2770,3,111,55,0,2770,660,1,0,0,0,2771,2772,3,129,64,0,2772,2773,3,87,43,0,2773,2774,3,109,54,0,2774,2775,3,127,63,0,2775,2776,3,95,47,0,2776,2777,3,123,61,0,2777,662,1,0,0,0,2778,2779,3,129,64,0,2779,2780,3,87,43,0,2780,2781,3,121,60,0,2781,2782,3,103,51,0,2782,2783,3,87,43,0,2783,2784,3,113,56,0,2784,2785,3,125,62,0,2785,664,1,0,0,0,2786,2787,3,129,64,0,2787,2788,3,103,51,0,2788,2789,3,95,47,0,2789,2790,3,131,65,0,2790,666,1,0,0,0,2791,2792,3,129,64,0,2792,2793,3,103,51,0,2793,2794,3,121,60,0,2794,2795,3,125,62,0,2795,2796,3,127,63,0,2796,2797,3,87,43,0,2797,2798,3,109,54,0,2798,668,1,0,0,0,2799,2800,3,131,65,0,2800,2801,3,101,50,0,2801,2802,3,95,47,0,2802,2803,3,113,56,0,2803,670,1,0,0,0,2804,2805,3,131,65,0,2805,2806,3,101,50,0,2806,2807,3,95,47,0,2807,2808,3,121,60,0,2808,2809,3,95,47,0,2809,672,1,0,0,0,2810,2811,3,131,65,0,2811,2812,3,103,51,0,2812,2813,3,113,56,0,2813,2814,3,93,46,0,2814,2815,3,115,57,0,2815,2816,3,131,65,0,2816,674,1,0,0,0,2817,2818,3,131,65,0,2818,2819,3,103,51,0,2819,2820,3,125,62,0,2820,2821,3,101,50,0,2821,676,1,0,0,0,2822,2823,3,131,65,0,2823,2824,3,103,51,0,2824,2825,3,125,62,0,2825,2826,3,101,50,0,2826,2827,3,115,57,0,2827,2828,3,127,63,0,2828,2829,3,125,62,0,2829,678,1,0,0,0,2830,2831,3,131,65,0,2831,2832,3,121,60,0,2832,2833,3,87,43,0,2833,2834,3,117,58,0,2834,2835,3,117,58,0,2835,2836,3,95,47,0,2836,2837,3,121,60,0,2837,680,1,0,0,0,2838,2839,3,133,66,0,2839,2840,3,115,57,0,2840,2841,3,121,60,0,2841,682,1,0,0,0,2842,2847,8,26,0,0,2843,2844,3,43,21,0,2844,2845,9,0,0,0,2845,2847,1,0,0,0,2846,2842,1,0,0,0,2846,2843,1,0,0,0,2847,684,1,0,0,0,2848,2853,8,27,0,0,2849,2850,3,43,21,0,2850,2851,9,0,0,0,2851,2853,1,0,0,0,2852,2848,1,0,0,0,2852,2849,1,0,0,0,2853,686,1,0,0,0,2854,2858,3,69,34,0,2855,2857,3,683,341,0,2856,2855,1,0,0,0,2857,2860,1,0,0,0,2858,2856,1,0,0,0,2858,2859,1,0,0,0,2859,2861,1,0,0,0,2860,2858,1,0,0,0,2861,2862,3,69,34,0,2862,688,1,0,0,0,2863,2867,3,67,33,0,2864,2866,3,685,342,0,2865,2864,1,0,0,0,2866,2869,1,0,0,0,2867,2865,1,0,0,0,2867,2868,1,0,0,0,2868,2870,1,0,0,0,2869,2867,1,0,0,0,2870,2871,3,67,33,0,2871,690,1,0,0,0,2872,2876,3,63,31,0,2873,2875,9,0,0,0,2874,2873,1,0,0,0,2875,2878,1,0,0,0,2876,2877,1,0,0,0,2876,2874,1,0,0,0,2877,2879,1,0,0,0,2878,2876,1,0,0,0,2879,2880,3,63,31,0,2880,2882,1,0,0,0,2881,2872,1,0,0,0,2882,2883,1,0,0,0,2883,2881,1,0,0,0,2883,2884,1,0,0,0,2884,2886,1,0,0,0,2885,2887,3,61,30,0,2886,2885,1,0,0,0,2886,2887,1,0,0,0,2887,692,1,0,0,0,2888,2892,3,687,343,0,2889,2892,3,689,344,0,2890,2892,3,691,345,0,2891,2888,1,0,0,0,2891,2889,1,0,0,0,2891,2890,1,0,0,0,2892,2903,1,0,0,0,2893,2904,3,123,61,0,2894,2904,3,127,63,0,2895,2904,3,135,67,0,2896,2904,3,105,52,0,2897,2901,3,117,58,0,2898,2902,3,125,62,0,2899,2902,3,89,44,0,2900,2902,3,129,64,0,2901,2898,1,0,0,0,2901,2899,1,0,0,0,2901,2900,1,0,0,0,2901,2902,1,0,0,0,2902,2904,1,0,0,0,2903,2893,1,0,0,0,2903,2894,1,0,0,0,2903,2895,1,0,0,0,2903,2896,1,0,0,0,2903,2897,1,0,0,0,2903,2904,1,0,0,0,2904,694,1,0,0,0,2905,2910,7,28,0,0,2906,2909,7,28,0,0,2907,2909,3,701,350,0,2908,2906,1,0,0,0,2908,2907,1,0,0,0,2909,2912,1,0,0,0,2910,2908,1,0,0,0,2910,2911,1,0,0,0,2911,696,1,0,0,0,2912,2910,1,0,0,0,2913,2914,5,96,0,0,2914,2919,5,96,0,0,2915,2916,5,92,0,0,2916,2919,5,96,0,0,2917,2919,8,29,0,0,2918,2913,1,0,0,0,2918,2915,1,0,0,0,2918,2917,1,0,0,0,2919,698,1,0,0,0,2920,2924,3,71,35,0,2921,2923,3,697,348,0,2922,2921,1,0,0,0,2923,2926,1,0,0,0,2924,2922,1,0,0,0,2924,2925,1,0,0,0,2925,2927,1,0,0,0,2926,2924,1,0,0,0,2927,2928,3,71,35,0,2928,700,1,0,0,0,2929,2930,2,48,57,0,2930,702,1,0,0,0,2931,2932,7,30,0,0,2932,704,1,0,0,0,2933,2934,5,48,0,0,2934,2936,3,133,66,0,2935,2937,3,703,351,0,2936,2935,1,0,0,0,2937,2938,1,0,0,0,2938,2936,1,0,0,0,2938,2939,1,0,0,0,2939,706,1,0,0,0,2940,2941,5,48,0,0,2941,2943,3,115,57,0,2942,2944,2,48,56,0,2943,2942,1,0,0,0,2944,2945,1,0,0,0,2945,2943,1,0,0,0,2945,2946,1,0,0,0,2946,708,1,0,0,0,2947,2948,5,48,0,0,2948,2950,3,89,44,0,2949,2951,2,48,49,0,2950,2949,1,0,0,0,2951,2952,1,0,0,0,2952,2950,1,0,0,0,2952,2953,1,0,0,0,2953,710,1,0,0,0,2954,2956,3,701,350,0,2955,2954,1,0,0,0,2956,2957,1,0,0,0,2957,2955,1,0,0,0,2957,2958,1,0,0,0,2958,712,1,0,0,0,2959,2964,3,711,355,0,2960,2964,3,705,352,0,2961,2964,3,707,353,0,2962,2964,3,709,354,0,2963,2959,1,0,0,0,2963,2960,1,0,0,0,2963,2961,1,0,0,0,2963,2962,1,0,0,0,2964,714,1,0,0,0,2965,2968,3,713,356,0,2966,2969,3,117,58,0,2967,2969,3,127,63,0,2968,2966,1,0,0,0,2968,2967,1,0,0,0,2968,2969,1,0,0,0,2969,2976,1,0,0,0,2970,2977,3,109,54,0,2971,2977,3,123,61,0,2972,2977,3,125,62,0,2973,2977,3,103,51,0,2974,2977,3,89,44,0,2975,2977,3,113,56,0,2976,2970,1,0,0,0,2976,2971,1,0,0,0,2976,2972,1,0,0,0,2976,2973,1,0,0,0,2976,2974,1,0,0,0,2976,2975,1,0,0,0,2976,2977,1,0,0,0,2977,716,1,0,0,0,2978,2981,3,95,47,0,2979,2982,3,33,16,0,2980,2982,3,35,17,0,2981,2979,1,0,0,0,2981,2980,1,0,0,0,2981,2982,1,0,0,0,2982,2983,1,0,0,0,2983,2984,3,711,355,0,2984,718,1,0,0,0,2985,2986,3,711,355,0,2986,2990,3,49,24,0,2987,2989,3,701,350,0,2988,2987,1,0,0,0,2989,2992,1,0,0,0,2990,2988,1,0,0,0,2990,2991,1,0,0,0,2991,2994,1,0,0,0,2992,2990,1,0,0,0,2993,2995,3,717,358,0,2994,2993,1,0,0,0,2994,2995,1,0,0,0,2995,3e3,1,0,0,0,2996,2997,3,711,355,0,2997,2998,3,717,358,0,2998,3e3,1,0,0,0,2999,2985,1,0,0,0,2999,2996,1,0,0,0,3e3,3009,1,0,0,0,3001,3010,3,97,48,0,3002,3007,3,117,58,0,3003,3004,3,97,48,0,3004,3005,7,31,0,0,3005,3008,1,0,0,0,3006,3008,3,113,56,0,3007,3003,1,0,0,0,3007,3006,1,0,0,0,3007,3008,1,0,0,0,3008,3010,1,0,0,0,3009,3001,1,0,0,0,3009,3002,1,0,0,0,3009,3010,1,0,0,0,3010,720,1,0,0,0,3011,3012,3,133,66,0,3012,3014,3,69,34,0,3013,3015,3,703,351,0,3014,3013,1,0,0,0,3015,3016,1,0,0,0,3016,3014,1,0,0,0,3016,3017,1,0,0,0,3017,3018,1,0,0,0,3018,3019,3,69,34,0,3019,722,1,0,0,0,3020,3021,5,47,0,0,3021,3022,5,42,0,0,3022,3026,1,0,0,0,3023,3025,9,0,0,0,3024,3023,1,0,0,0,3025,3028,1,0,0,0,3026,3027,1,0,0,0,3026,3024,1,0,0,0,3027,3029,1,0,0,0,3028,3026,1,0,0,0,3029,3030,5,42,0,0,3030,3031,5,47,0,0,3031,724,1,0,0,0,3032,3033,5,45,0,0,3033,3034,5,45,0,0,3034,3038,1,0,0,0,3035,3037,8,32,0,0,3036,3035,1,0,0,0,3037,3040,1,0,0,0,3038,3036,1,0,0,0,3038,3039,1,0,0,0,3039,3046,1,0,0,0,3040,3038,1,0,0,0,3041,3043,5,13,0,0,3042,3044,5,10,0,0,3043,3042,1,0,0,0,3043,3044,1,0,0,0,3044,3047,1,0,0,0,3045,3047,7,33,0,0,3046,3041,1,0,0,0,3046,3045,1,0,0,0,3047,726,1,0,0,0,3048,3049,7,34,0,0,3049,3050,1,0,0,0,3050,3051,6,363,0,0,3051,728,1,0,0,0,3052,3055,3,723,361,0,3053,3055,3,725,362,0,3054,3052,1,0,0,0,3054,3053,1,0,0,0,3055,3056,1,0,0,0,3056,3057,6,364,1,0,3057,730,1,0,0,0,34,0,2846,2852,2858,2867,2876,2883,2886,2891,2901,2903,2908,2910,2918,2924,2938,2945,2952,2957,2963,2968,2976,2981,2990,2994,2999,3007,3009,3016,3026,3038,3043,3046,3054,2,0,1,0,6,0,0],qi.vocabulary=new Ra(qi.literalNames,qi.symbolicNames,[]),qi.decisionsToDFA=qi._ATN.decisionToState.map(((t,e)=>new ni(t,e))),qi),tf=(ji=class t extends Cc{get grammarFileName(){return"YQL.g4"}get literalNames(){return t.literalNames}get symbolicNames(){return t.symbolicNames}get ruleNames(){return t.ruleNames}get serializedATN(){return t._serializedATN}createFailedPredicateException(t,e){return new Sc(this,t,e)}constructor(e){super(e),this.interpreter=new Ai(this,t._ATN,t.decisionsToDFA,new Si)}sql_query(){let e=new ef(this.context,this.state);this.enterRule(e,0,t.RULE_sql_query);try{switch(this.state=811,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,0,this.context)){case 1:this.enterOuterAlt(e,1),this.state=806,this.sql_stmt_list();break;case 2:this.enterOuterAlt(e,2),this.state=807,this.match(t.PRAGMA),this.state=808,this.match(t.ANSI),this.state=809,this.match(t.DIGITS),this.state=810,this.ansi_sql_stmt_list()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}sql_stmt_list(){let e,s=new sf(this.context,this.state);this.enterRule(s,2,t.RULE_sql_stmt_list);try{let a;for(this.enterOuterAlt(s,1),this.state=816,this.errorHandler.sync(this),e=this.tokenStream.LA(1);24===e;)this.state=813,this.match(t.SEMICOLON),this.state=818,this.errorHandler.sync(this),e=this.tokenStream.LA(1);for(this.state=819,this.sql_stmt(),this.state=828,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,3,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;){if(1===a){this.state=821,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=820,this.match(t.SEMICOLON),this.state=823,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(24===e);this.state=825,this.sql_stmt()}this.state=830,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,3,this.context)}for(this.state=834,this.errorHandler.sync(this),e=this.tokenStream.LA(1);24===e;)this.state=831,this.match(t.SEMICOLON),this.state=836,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=837,this.match(t.EOF)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}ansi_sql_stmt_list(){let e,s=new af(this.context,this.state);this.enterRule(s,4,t.RULE_ansi_sql_stmt_list);try{for(this.enterOuterAlt(s,1),this.state=842,this.errorHandler.sync(this),e=this.tokenStream.LA(1);24===e;)this.state=839,this.match(t.SEMICOLON),this.state=844,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=845,this.match(t.EOF)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}lambda_body(){let e,s=new rf(this.context,this.state);this.enterRule(s,6,t.RULE_lambda_body);try{for(this.enterOuterAlt(s,1),this.state=850,this.errorHandler.sync(this),e=this.tokenStream.LA(1);24===e;)this.state=847,this.match(t.SEMICOLON),this.state=852,this.errorHandler.sync(this),e=this.tokenStream.LA(1);for(this.state=861,this.errorHandler.sync(this),e=this.tokenStream.LA(1);33===e||158===e;){this.state=853,this.lambda_stmt(),this.state=855,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=854,this.match(t.SEMICOLON),this.state=857,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(24===e);this.state=863,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}for(this.state=864,this.match(t.RETURN),this.state=865,this.expr(),this.state=869,this.errorHandler.sync(this),e=this.tokenStream.LA(1);24===e;)this.state=866,this.match(t.SEMICOLON),this.state=871,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}lambda_stmt(){let e=new cf(this.context,this.state);this.enterRule(e,8,t.RULE_lambda_stmt);try{switch(this.state=874,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DOLLAR:this.enterOuterAlt(e,1),this.state=872,this.named_nodes_stmt();break;case t.IMPORT:this.enterOuterAlt(e,2),this.state=873,this.import_stmt();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}sql_stmt(){let e,s=new nf(this.context,this.state);this.enterRule(s,10,t.RULE_sql_stmt);try{this.enterOuterAlt(s,1),this.state=881,this.errorHandler.sync(this),e=this.tokenStream.LA(1),129===e&&(this.state=876,this.match(t.EXPLAIN),this.state=879,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1===e&&(this.state=877,this.match(t.QUERY),this.state=878,this.match(t.PLAN))),this.state=883,this.sql_stmt_core()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}sql_stmt_core(){let e=new hf(this.context,this.state);this.enterRule(e,12,t.RULE_sql_stmt_core);try{switch(this.state=929,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,13,this.context)){case 1:this.enterOuterAlt(e,1),this.state=885,this.pragma_stmt();break;case 2:this.enterOuterAlt(e,2),this.state=886,this.select_stmt();break;case 3:this.enterOuterAlt(e,3),this.state=887,this.named_nodes_stmt();break;case 4:this.enterOuterAlt(e,4),this.state=888,this.create_table_stmt();break;case 5:this.enterOuterAlt(e,5),this.state=889,this.drop_table_stmt();break;case 6:this.enterOuterAlt(e,6),this.state=890,this.use_stmt();break;case 7:this.enterOuterAlt(e,7),this.state=891,this.into_table_stmt();break;case 8:this.enterOuterAlt(e,8),this.state=892,this.commit_stmt();break;case 9:this.enterOuterAlt(e,9),this.state=893,this.update_stmt();break;case 10:this.enterOuterAlt(e,10),this.state=894,this.delete_stmt();break;case 11:this.enterOuterAlt(e,11),this.state=895,this.rollback_stmt();break;case 12:this.enterOuterAlt(e,12),this.state=896,this.declare_stmt();break;case 13:this.enterOuterAlt(e,13),this.state=897,this.import_stmt();break;case 14:this.enterOuterAlt(e,14),this.state=898,this.export_stmt();break;case 15:this.enterOuterAlt(e,15),this.state=899,this.alter_table_stmt();break;case 16:this.enterOuterAlt(e,16),this.state=900,this.alter_external_table_stmt();break;case 17:this.enterOuterAlt(e,17),this.state=901,this.do_stmt();break;case 18:this.enterOuterAlt(e,18),this.state=902,this.define_action_or_subquery_stmt();break;case 19:this.enterOuterAlt(e,19),this.state=903,this.if_stmt();break;case 20:this.enterOuterAlt(e,20),this.state=904,this.for_stmt();break;case 21:this.enterOuterAlt(e,21),this.state=905,this.values_stmt();break;case 22:this.enterOuterAlt(e,22),this.state=906,this.create_user_stmt();break;case 23:this.enterOuterAlt(e,23),this.state=907,this.alter_user_stmt();break;case 24:this.enterOuterAlt(e,24),this.state=908,this.create_group_stmt();break;case 25:this.enterOuterAlt(e,25),this.state=909,this.alter_group_stmt();break;case 26:this.enterOuterAlt(e,26),this.state=910,this.drop_role_stmt();break;case 27:this.enterOuterAlt(e,27),this.state=911,this.create_object_stmt();break;case 28:this.enterOuterAlt(e,28),this.state=912,this.alter_object_stmt();break;case 29:this.enterOuterAlt(e,29),this.state=913,this.drop_object_stmt();break;case 30:this.enterOuterAlt(e,30),this.state=914,this.create_external_data_source_stmt();break;case 31:this.enterOuterAlt(e,31),this.state=915,this.alter_external_data_source_stmt();break;case 32:this.enterOuterAlt(e,32),this.state=916,this.drop_external_data_source_stmt();break;case 33:this.enterOuterAlt(e,33),this.state=917,this.create_replication_stmt();break;case 34:this.enterOuterAlt(e,34),this.state=918,this.drop_replication_stmt();break;case 35:this.enterOuterAlt(e,35),this.state=919,this.create_topic_stmt();break;case 36:this.enterOuterAlt(e,36),this.state=920,this.alter_topic_stmt();break;case 37:this.enterOuterAlt(e,37),this.state=921,this.drop_topic_stmt();break;case 38:this.enterOuterAlt(e,38),this.state=922,this.grant_permissions_stmt();break;case 39:this.enterOuterAlt(e,39),this.state=923,this.revoke_permissions_stmt();break;case 40:this.enterOuterAlt(e,40),this.state=924,this.alter_table_store_stmt();break;case 41:this.enterOuterAlt(e,41),this.state=925,this.upsert_object_stmt();break;case 42:this.enterOuterAlt(e,42),this.state=926,this.create_view_stmt();break;case 43:this.enterOuterAlt(e,43),this.state=927,this.drop_view_stmt();break;case 44:this.enterOuterAlt(e,44),this.state=928,this.alter_replication_stmt()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}expr(){let e,s=new Ef(this.context,this.state);this.enterRule(s,14,t.RULE_expr);try{switch(this.state=940,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,15,this.context)){case 1:for(this.enterOuterAlt(s,1),this.state=931,this.or_subexpr(),this.state=936,this.errorHandler.sync(this),e=this.tokenStream.LA(1);209===e;)this.state=932,this.match(t.OR),this.state=933,this.or_subexpr(),this.state=938,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;case 2:this.enterOuterAlt(s,2),this.state=939,this.type_name_composite()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}or_subexpr(){let e,s=new Tf(this.context,this.state);this.enterRule(s,16,t.RULE_or_subexpr);try{for(this.enterOuterAlt(s,1),this.state=942,this.and_subexpr(),this.state=947,this.errorHandler.sync(this),e=this.tokenStream.LA(1);51===e;)this.state=943,this.match(t.AND),this.state=944,this.and_subexpr(),this.state=949,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}and_subexpr(){let e,s=new of(this.context,this.state);this.enterRule(s,18,t.RULE_and_subexpr);try{for(this.enterOuterAlt(s,1),this.state=950,this.xor_subexpr(),this.state=955,this.errorHandler.sync(this),e=this.tokenStream.LA(1);315===e;)this.state=951,this.match(t.XOR),this.state=952,this.xor_subexpr(),this.state=957,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}xor_subexpr(){let e,s=new Rf(this.context,this.state);this.enterRule(s,20,t.RULE_xor_subexpr);try{this.enterOuterAlt(s,1),this.state=958,this.eq_subexpr(),this.state=960,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(-32&e)&&1<<e&60||67===e||!(e-145&-32)&&1<<e-145&100681729||!(e-180&-32)&&1<<e-180&196641||234===e||252===e)&&(this.state=959,this.cond_expr())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}distinct_from_op(){let e,s=new Af(this.context,this.state);this.enterRule(s,22,t.RULE_distinct_from_op);try{this.enterOuterAlt(s,1),this.state=962,this.match(t.IS),this.state=964,this.errorHandler.sync(this),e=this.tokenStream.LA(1),196===e&&(this.state=963,this.match(t.NOT)),this.state=966,this.match(t.DISTINCT),this.state=967,this.match(t.FROM)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}cond_expr(){let e,s=new Sf(this.context,this.state);this.enterRule(s,24,t.RULE_cond_expr);try{switch(this.state=1020,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,30,this.context)){case 1:this.enterOuterAlt(s,1),this.state=970,this.errorHandler.sync(this),e=this.tokenStream.LA(1),196===e&&(this.state=969,this.match(t.NOT)),this.state=972,this.match_op(),this.state=973,this.eq_subexpr(),this.state=976,this.errorHandler.sync(this),e=this.tokenStream.LA(1),122===e&&(this.state=974,this.match(t.ESCAPE),this.state=975,this.eq_subexpr());break;case 2:if(this.enterOuterAlt(s,2),1===(this.state=979,this.errorHandler.sync(this),e=this.tokenStream.LA(1),196===e&&(this.state=978,this.match(t.NOT)),this.state=981,this.match(t.IN),this.state=983,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,23,this.context)))this.state=982,this.match(t.COMPACT);this.state=985,this.in_expr();break;case 3:switch(this.enterOuterAlt(s,3),this.state=995,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,25,this.context)){case 1:this.state=986,this.match(t.ISNULL);break;case 2:this.state=987,this.match(t.NOTNULL);break;case 3:this.state=988,this.match(t.IS),this.state=989,this.match(t.NULL);break;case 4:this.state=991,this.errorHandler.sync(this),e=this.tokenStream.LA(1),170===e&&(this.state=990,this.match(t.IS)),this.state=993,this.match(t.NOT),this.state=994,this.match(t.NULL)}break;case 4:if(this.enterOuterAlt(s,4),1===(this.state=998,this.errorHandler.sync(this),e=this.tokenStream.LA(1),196===e&&(this.state=997,this.match(t.NOT)),this.state=1e3,this.match(t.BETWEEN),this.state=1002,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,27,this.context)))this.state=1001,e=this.tokenStream.LA(1),58===e||274===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);this.state=1004,this.eq_subexpr(),this.state=1005,this.match(t.AND),this.state=1006,this.eq_subexpr();break;case 5:this.enterOuterAlt(s,5),this.state=1016,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{switch(this.state=1013,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.EQUALS:this.state=1008,this.match(t.EQUALS);break;case t.EQUALS2:this.state=1009,this.match(t.EQUALS2);break;case t.NOT_EQUALS:this.state=1010,this.match(t.NOT_EQUALS);break;case t.NOT_EQUALS2:this.state=1011,this.match(t.NOT_EQUALS2);break;case t.IS:this.state=1012,this.distinct_from_op();break;default:throw new Ei(this)}this.state=1015,this.eq_subexpr(),this.state=1018,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(!(-32&e)&&1<<e&60||170===e)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}match_op(){let e,s=new lf(this.context,this.state);this.enterRule(s,26,t.RULE_match_op);try{this.enterOuterAlt(s,1),this.state=1022,e=this.tokenStream.LA(1),145===e||156===e||180===e||185===e||234===e||252===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}eq_subexpr(){let e,s=new Of(this.context,this.state);this.enterRule(s,28,t.RULE_eq_subexpr);try{for(this.enterOuterAlt(s,1),this.state=1024,this.neq_subexpr(),this.state=1029,this.errorHandler.sync(this),e=this.tokenStream.LA(1);!(-32&e)&&1<<e&960;)this.state=1025,e=this.tokenStream.LA(1),!(-32&e)&&1<<e&960?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1026,this.neq_subexpr(),this.state=1031,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}shift_right(){let e=new If(this.context,this.state);this.enterRule(e,30,t.RULE_shift_right);try{this.enterOuterAlt(e,1),this.state=1032,this.match(t.GREATER),this.state=1033,this.match(t.GREATER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}rot_right(){let e=new uf(this.context,this.state);this.enterRule(e,32,t.RULE_rot_right);try{this.enterOuterAlt(e,1),this.state=1035,this.match(t.GREATER),this.state=1036,this.match(t.GREATER),this.state=1037,this.match(t.PIPE)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}double_question(){let e=new Nf(this.context,this.state);this.enterRule(e,34,t.RULE_double_question);try{this.enterOuterAlt(e,1),this.state=1039,this.match(t.QUESTION),this.state=1040,this.match(t.QUESTION)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}neq_subexpr(){let e,s=new Lf(this.context,this.state);this.enterRule(s,36,t.RULE_neq_subexpr);try{let a;for(this.enterOuterAlt(s,1),this.state=1042,this.bit_subexpr(),this.state=1055,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,33,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;){if(1===a){switch(this.state=1050,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,32,this.context)){case 1:this.state=1043,this.match(t.SHIFT_LEFT);break;case 2:this.state=1044,this.shift_right();break;case 3:this.state=1045,this.match(t.ROT_LEFT);break;case 4:this.state=1046,this.rot_right();break;case 5:this.state=1047,this.match(t.AMPERSAND);break;case 6:this.state=1048,this.match(t.PIPE);break;case 7:this.state=1049,this.match(t.CARET)}this.state=1052,this.bit_subexpr()}this.state=1057,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,33,this.context)}switch(this.state=1066,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,35,this.context)){case 1:this.state=1058,this.double_question(),this.state=1059,this.neq_subexpr();break;case 2:this.state=1062,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=1061,this.match(t.QUESTION),this.state=1064,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(29===e)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}bit_subexpr(){let e,s=new Cf(this.context,this.state);this.enterRule(s,38,t.RULE_bit_subexpr);try{for(this.enterOuterAlt(s,1),this.state=1068,this.add_subexpr(),this.state=1073,this.errorHandler.sync(this),e=this.tokenStream.LA(1);17===e||18===e;)this.state=1069,e=this.tokenStream.LA(1),17===e||18===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1070,this.add_subexpr(),this.state=1075,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}add_subexpr(){let e,s=new _f(this.context,this.state);this.enterRule(s,40,t.RULE_add_subexpr);try{for(this.enterOuterAlt(s,1),this.state=1076,this.mul_subexpr(),this.state=1081,this.errorHandler.sync(this),e=this.tokenStream.LA(1);!(-32&e)&&1<<e&11534336;)this.state=1077,e=this.tokenStream.LA(1),!(-32&e)&&1<<e&11534336?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1078,this.mul_subexpr(),this.state=1083,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}mul_subexpr(){let e,s=new Pf(this.context,this.state);this.enterRule(s,42,t.RULE_mul_subexpr);try{for(this.enterOuterAlt(s,1),this.state=1084,this.con_subexpr(),this.state=1089,this.errorHandler.sync(this),e=this.tokenStream.LA(1);14===e;)this.state=1085,this.match(t.DOUBLE_PIPE),this.state=1086,this.con_subexpr(),this.state=1091,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}con_subexpr(){let e=new Mf(this.context,this.state);this.enterRule(e,44,t.RULE_con_subexpr);try{switch(this.state=1096,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,39,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1092,this.unary_subexpr();break;case 2:this.enterOuterAlt(e,2),this.state=1093,this.unary_op(),this.state=1094,this.unary_subexpr()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}unary_op(){let e,s=new df(this.context,this.state);this.enterRule(s,46,t.RULE_unary_op);try{this.enterOuterAlt(s,1),this.state=1098,e=this.tokenStream.LA(1),!(-32&e)&&1<<e&917504||196===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}unary_subexpr_suffix(){let e,s=new Uf(this.context,this.state);this.enterRule(s,48,t.RULE_unary_subexpr_suffix);try{for(this.enterOuterAlt(s,1),this.state=1110,this.errorHandler.sync(this),e=this.tokenStream.LA(1);!(e-25&-32)&&1<<e-25&262149;){switch(this.state=1108,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LBRACE_SQUARE:this.state=1100,this.key_expr();break;case t.LPAREN:this.state=1101,this.invoke_expr();break;case t.DOT:switch(this.state=1102,this.match(t.DOT),this.state=1106,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DOLLAR:this.state=1103,this.bind_parameter();break;case t.DIGITS:this.state=1104,this.match(t.DIGITS);break;case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CALLABLE:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DICT:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ENUM:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FLOW:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LIST:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OPTIONAL:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESOURCE:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SET:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.STRUCT:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TAGGED:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TUPLE:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VARIANT:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.state=1105,this.an_id_or_type();break;default:throw new Ei(this)}break;default:throw new Ei(this)}this.state=1112,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}this.state=1115,this.errorHandler.sync(this),e=this.tokenStream.LA(1),76===e&&(this.state=1113,this.match(t.COLLATE),this.state=1114,this.an_id())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}unary_casual_subexpr(){let e=new mf(this.context,this.state);this.enterRule(e,50,t.RULE_unary_casual_subexpr);try{switch(this.enterOuterAlt(e,1),this.state=1119,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,44,this.context)){case 1:this.state=1117,this.id_expr();break;case 2:this.state=1118,this.atom_expr()}this.state=1121,this.unary_subexpr_suffix()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}in_unary_casual_subexpr(){let e=new Df(this.context,this.state);this.enterRule(e,52,t.RULE_in_unary_casual_subexpr);try{switch(this.enterOuterAlt(e,1),this.state=1125,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,45,this.context)){case 1:this.state=1123,this.id_expr_in();break;case 2:this.state=1124,this.in_atom_expr()}this.state=1127,this.unary_subexpr_suffix()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}unary_subexpr(){let e=new pf(this.context,this.state);this.enterRule(e,54,t.RULE_unary_subexpr);try{switch(this.state=1131,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,46,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1129,this.unary_casual_subexpr();break;case 2:this.enterOuterAlt(e,2),this.state=1130,this.json_api_expr()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}in_unary_subexpr(){let e=new gf(this.context,this.state);this.enterRule(e,56,t.RULE_in_unary_subexpr);try{switch(this.state=1135,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,47,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1133,this.in_unary_casual_subexpr();break;case 2:this.enterOuterAlt(e,2),this.state=1134,this.json_api_expr()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}list_literal(){let e,s=new xf(this.context,this.state);this.enterRule(s,58,t.RULE_list_literal);try{this.enterOuterAlt(s,1),this.state=1137,this.match(t.LBRACE_SQUARE),this.state=1139,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(e-15&-32)&&1<<e-15&4030992413||!(e-47&-32)&&1<<e-47&4294901759||!(e-79&-32)&&1<<e-79&4294967295||!(e-111&-32)&&1<<e-111&4294967295||!(e-143&-32)&&1<<e-143&4294967287||!(e-175&-32)&&1<<e-175&4294967295||!(e-207&-32)&&1<<e-207&4294967295||!(e-240&-32)&&1<<e-240&4294967295||!(e-272&-32)&&1<<e-272&4294967295||!(e-304&-32)&&1<<e-304&524287)&&(this.state=1138,this.expr_list()),this.state=1142,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=1141,this.match(t.COMMA)),this.state=1144,this.match(t.RBRACE_SQUARE)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expr_dict_list(){let e,s=new kf(this.context,this.state);this.enterRule(s,60,t.RULE_expr_dict_list);try{let a;for(this.enterOuterAlt(s,1),this.state=1146,this.expr(),this.state=1149,this.errorHandler.sync(this),e=this.tokenStream.LA(1),30===e&&(this.state=1147,this.match(t.COLON),this.state=1148,this.expr()),this.state=1159,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,52,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=1151,this.match(t.COMMA),this.state=1152,this.expr(),this.state=1155,this.errorHandler.sync(this),e=this.tokenStream.LA(1),30===e&&(this.state=1153,this.match(t.COLON),this.state=1154,this.expr())),this.state=1161,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,52,this.context)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}dict_literal(){let e,s=new Hf(this.context,this.state);this.enterRule(s,62,t.RULE_dict_literal);try{this.enterOuterAlt(s,1),this.state=1162,this.match(t.LBRACE_CURLY),this.state=1164,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(e-15&-32)&&1<<e-15&4030992413||!(e-47&-32)&&1<<e-47&4294901759||!(e-79&-32)&&1<<e-79&4294967295||!(e-111&-32)&&1<<e-111&4294967295||!(e-143&-32)&&1<<e-143&4294967287||!(e-175&-32)&&1<<e-175&4294967295||!(e-207&-32)&&1<<e-207&4294967295||!(e-240&-32)&&1<<e-240&4294967295||!(e-272&-32)&&1<<e-272&4294967295||!(e-304&-32)&&1<<e-304&524287)&&(this.state=1163,this.expr_dict_list()),this.state=1167,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=1166,this.match(t.COMMA)),this.state=1169,this.match(t.RBRACE_CURLY)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expr_struct_list(){let e=new Gf(this.context,this.state);this.enterRule(e,64,t.RULE_expr_struct_list);try{let s;for(this.enterOuterAlt(e,1),this.state=1171,this.expr(),this.state=1172,this.match(t.COLON),this.state=1173,this.expr(),this.state=1181,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,55,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=1174,this.match(t.COMMA),this.state=1175,this.expr(),this.state=1176,this.match(t.COLON),this.state=1177,this.expr()),this.state=1183,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,55,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}struct_literal(){let e,s=new Ff(this.context,this.state);this.enterRule(s,66,t.RULE_struct_literal);try{this.enterOuterAlt(s,1),this.state=1184,this.match(t.STRUCT_OPEN),this.state=1186,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(e-15&-32)&&1<<e-15&4030992413||!(e-47&-32)&&1<<e-47&4294901759||!(e-79&-32)&&1<<e-79&4294967295||!(e-111&-32)&&1<<e-111&4294967295||!(e-143&-32)&&1<<e-143&4294967287||!(e-175&-32)&&1<<e-175&4294967295||!(e-207&-32)&&1<<e-207&4294967295||!(e-240&-32)&&1<<e-240&4294967295||!(e-272&-32)&&1<<e-272&4294967295||!(e-304&-32)&&1<<e-304&524287)&&(this.state=1185,this.expr_struct_list()),this.state=1189,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=1188,this.match(t.COMMA)),this.state=1191,this.match(t.STRUCT_CLOSE)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}atom_expr(){let e=new vf(this.context,this.state);this.enterRule(e,68,t.RULE_atom_expr);try{switch(this.state=1210,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,59,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1193,this.literal_value();break;case 2:this.enterOuterAlt(e,2),this.state=1194,this.bind_parameter();break;case 3:this.enterOuterAlt(e,3),this.state=1195,this.lambda();break;case 4:this.enterOuterAlt(e,4),this.state=1196,this.cast_expr();break;case 5:this.enterOuterAlt(e,5),this.state=1197,this.exists_expr();break;case 6:this.enterOuterAlt(e,6),this.state=1198,this.case_expr();break;case 7:switch(this.enterOuterAlt(e,7),this.state=1199,this.an_id_or_type(),this.state=1200,this.match(t.NAMESPACE),this.state=1203,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CALLABLE:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DICT:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ENUM:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FLOW:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LIST:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OPTIONAL:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESOURCE:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SET:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.STRUCT:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TAGGED:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TUPLE:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VARIANT:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.state=1201,this.id_or_type();break;case t.STRING_VALUE:this.state=1202,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}break;case 8:this.enterOuterAlt(e,8),this.state=1205,this.value_constructor();break;case 9:this.enterOuterAlt(e,9),this.state=1206,this.bitcast_expr();break;case 10:this.enterOuterAlt(e,10),this.state=1207,this.list_literal();break;case 11:this.enterOuterAlt(e,11),this.state=1208,this.dict_literal();break;case 12:this.enterOuterAlt(e,12),this.state=1209,this.struct_literal()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}in_atom_expr(){let e=new Bf(this.context,this.state);this.enterRule(e,70,t.RULE_in_atom_expr);try{switch(this.state=1232,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,61,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1212,this.literal_value();break;case 2:this.enterOuterAlt(e,2),this.state=1213,this.bind_parameter();break;case 3:this.enterOuterAlt(e,3),this.state=1214,this.lambda();break;case 4:this.enterOuterAlt(e,4),this.state=1215,this.cast_expr();break;case 5:this.enterOuterAlt(e,5),this.state=1216,this.case_expr();break;case 6:switch(this.enterOuterAlt(e,6),this.state=1217,this.an_id_or_type(),this.state=1218,this.match(t.NAMESPACE),this.state=1221,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CALLABLE:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DICT:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ENUM:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FLOW:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LIST:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OPTIONAL:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESOURCE:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SET:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.STRUCT:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TAGGED:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TUPLE:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VARIANT:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.state=1219,this.id_or_type();break;case t.STRING_VALUE:this.state=1220,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}break;case 7:this.enterOuterAlt(e,7),this.state=1223,this.match(t.LPAREN),this.state=1224,this.select_stmt(),this.state=1225,this.match(t.RPAREN);break;case 8:this.enterOuterAlt(e,8),this.state=1227,this.value_constructor();break;case 9:this.enterOuterAlt(e,9),this.state=1228,this.bitcast_expr();break;case 10:this.enterOuterAlt(e,10),this.state=1229,this.list_literal();break;case 11:this.enterOuterAlt(e,11),this.state=1230,this.dict_literal();break;case 12:this.enterOuterAlt(e,12),this.state=1231,this.struct_literal()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}cast_expr(){let e=new yf(this.context,this.state);this.enterRule(e,72,t.RULE_cast_expr);try{this.enterOuterAlt(e,1),this.state=1234,this.match(t.CAST),this.state=1235,this.match(t.LPAREN),this.state=1236,this.expr(),this.state=1237,this.match(t.AS),this.state=1238,this.type_name_or_bind(),this.state=1239,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}bitcast_expr(){let e=new ff(this.context,this.state);this.enterRule(e,74,t.RULE_bitcast_expr);try{this.enterOuterAlt(e,1),this.state=1241,this.match(t.BITCAST),this.state=1242,this.match(t.LPAREN),this.state=1243,this.expr(),this.state=1244,this.match(t.AS),this.state=1245,this.type_name_simple(),this.state=1246,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}exists_expr(){let e=new Yf(this.context,this.state);this.enterRule(e,76,t.RULE_exists_expr);try{switch(this.enterOuterAlt(e,1),this.state=1248,this.match(t.EXISTS),this.state=1249,this.match(t.LPAREN),this.state=1252,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LPAREN:case t.DISCARD:case t.FROM:case t.PROCESS:case t.REDUCE:case t.SELECT:this.state=1250,this.select_stmt();break;case t.VALUES:this.state=1251,this.values_stmt();break;default:throw new Ei(this)}this.state=1254,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}case_expr(){let e,s=new wf(this.context,this.state);this.enterRule(s,78,t.RULE_case_expr);try{if(this.enterOuterAlt(s,1),1===(this.state=1256,this.match(t.CASE),this.state=1258,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,63,this.context)))this.state=1257,this.expr();this.state=1261,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=1260,this.when_expr(),this.state=1263,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(309===e);this.state=1267,this.errorHandler.sync(this),e=this.tokenStream.LA(1),114===e&&(this.state=1265,this.match(t.ELSE),this.state=1266,this.expr()),this.state=1269,this.match(t.END)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}lambda(){let e,s=new bf(this.context,this.state);this.enterRule(s,80,t.RULE_lambda);try{if(this.enterOuterAlt(s,1),this.state=1271,this.smart_parenthesis(),this.state=1283,this.errorHandler.sync(this),e=this.tokenStream.LA(1),41===e)switch(this.state=1272,this.match(t.ARROW),this.state=1281,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LPAREN:this.state=1273,this.match(t.LPAREN),this.state=1274,this.expr(),this.state=1275,this.match(t.RPAREN);break;case t.LBRACE_CURLY:this.state=1277,this.match(t.LBRACE_CURLY),this.state=1278,this.lambda_body(),this.state=1279,this.match(t.RBRACE_CURLY);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}in_expr(){let e=new Wf(this.context,this.state);this.enterRule(e,82,t.RULE_in_expr);try{this.enterOuterAlt(e,1),this.state=1285,this.in_unary_subexpr()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}json_api_expr(){let e=new Vf(this.context,this.state);this.enterRule(e,84,t.RULE_json_api_expr);try{switch(this.state=1290,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.JSON_VALUE:this.enterOuterAlt(e,1),this.state=1287,this.json_value();break;case t.JSON_EXISTS:this.enterOuterAlt(e,2),this.state=1288,this.json_exists();break;case t.JSON_QUERY:this.enterOuterAlt(e,3),this.state=1289,this.json_query();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}jsonpath_spec(){let e=new Xf(this.context,this.state);this.enterRule(e,86,t.RULE_jsonpath_spec);try{this.enterOuterAlt(e,1),this.state=1292,this.match(t.STRING_VALUE)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}json_variable_name(){let e=new Kf(this.context,this.state);this.enterRule(e,88,t.RULE_json_variable_name);try{switch(this.state=1296,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ARRAY:case t.ASC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BY:case t.CASCADE:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CURRENT:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.ENCRYPTED:case t.END:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOTNULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNCONDITIONAL:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WITH:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=1294,this.id_expr();break;case t.STRING_VALUE:this.enterOuterAlt(e,2),this.state=1295,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}json_variable(){let e=new Qf(this.context,this.state);this.enterRule(e,90,t.RULE_json_variable);try{this.enterOuterAlt(e,1),this.state=1298,this.expr(),this.state=1299,this.match(t.AS),this.state=1300,this.json_variable_name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}json_variables(){let e,s=new Jf(this.context,this.state);this.enterRule(s,92,t.RULE_json_variables);try{for(this.enterOuterAlt(s,1),this.state=1302,this.json_variable(),this.state=1307,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=1303,this.match(t.COMMA),this.state=1304,this.json_variable(),this.state=1309,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}json_common_args(){let e,s=new Zf(this.context,this.state);this.enterRule(s,94,t.RULE_json_common_args);try{this.enterOuterAlt(s,1),this.state=1310,this.expr(),this.state=1311,this.match(t.COMMA),this.state=1312,this.jsonpath_spec(),this.state=1315,this.errorHandler.sync(this),e=this.tokenStream.LA(1),216===e&&(this.state=1313,this.match(t.PASSING),this.state=1314,this.json_variables())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}json_case_handler(){let e=new qf(this.context,this.state);this.enterRule(e,96,t.RULE_json_case_handler);try{switch(this.state=1321,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ERROR:this.enterOuterAlt(e,1),this.state=1317,this.match(t.ERROR);break;case t.NULL:this.enterOuterAlt(e,2),this.state=1318,this.match(t.NULL);break;case t.DEFAULT:this.enterOuterAlt(e,3),this.state=1319,this.match(t.DEFAULT),this.state=1320,this.expr();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}json_value(){let e,s=new jf(this.context,this.state);this.enterRule(s,98,t.RULE_json_value);try{for(this.enterOuterAlt(s,1),this.state=1323,this.match(t.JSON_VALUE),this.state=1324,this.match(t.LPAREN),this.state=1325,this.json_common_args(),this.state=1328,this.errorHandler.sync(this),e=this.tokenStream.LA(1),248===e&&(this.state=1326,this.match(t.RETURNING),this.state=1327,this.type_name_simple()),this.state=1336,this.errorHandler.sync(this),e=this.tokenStream.LA(1);98===e||121===e||198===e;)this.state=1330,this.json_case_handler(),this.state=1331,this.match(t.ON),this.state=1332,e=this.tokenStream.LA(1),115===e||121===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1338,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=1339,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}json_exists_handler(){let e,s=new zf(this.context,this.state);this.enterRule(s,100,t.RULE_json_exists_handler);try{this.enterOuterAlt(s,1),this.state=1341,e=this.tokenStream.LA(1),121===e||133===e||290===e||297===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1342,this.match(t.ON),this.state=1343,this.match(t.ERROR)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}json_exists(){let e,s=new $f(this.context,this.state);this.enterRule(s,102,t.RULE_json_exists);try{this.enterOuterAlt(s,1),this.state=1345,this.match(t.JSON_EXISTS),this.state=1346,this.match(t.LPAREN),this.state=1347,this.json_common_args(),this.state=1349,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(121===e||133===e||290===e||297===e)&&(this.state=1348,this.json_exists_handler()),this.state=1351,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}json_query_wrapper(){let e,s=new tY(this.context,this.state);this.enterRule(s,104,t.RULE_json_query_wrapper);try{switch(this.state=1364,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WITHOUT:this.enterOuterAlt(s,1),this.state=1353,this.match(t.WITHOUT),this.state=1355,this.errorHandler.sync(this),e=this.tokenStream.LA(1),54===e&&(this.state=1354,this.match(t.ARRAY));break;case t.WITH:this.enterOuterAlt(s,2),this.state=1357,this.match(t.WITH),this.state=1359,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(81===e||294===e)&&(this.state=1358,e=this.tokenStream.LA(1),81===e||294===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=1362,this.errorHandler.sync(this),e=this.tokenStream.LA(1),54===e&&(this.state=1361,this.match(t.ARRAY));break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}json_query_handler(){let e=new eY(this.context,this.state);this.enterRule(e,106,t.RULE_json_query_handler);try{switch(this.state=1372,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,80,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1366,this.match(t.ERROR);break;case 2:this.enterOuterAlt(e,2),this.state=1367,this.match(t.NULL);break;case 3:this.enterOuterAlt(e,3),this.state=1368,this.match(t.EMPTY),this.state=1369,this.match(t.ARRAY);break;case 4:this.enterOuterAlt(e,4),this.state=1370,this.match(t.EMPTY),this.state=1371,this.match(t.OBJECT)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}json_query(){let e,s=new sY(this.context,this.state);this.enterRule(s,108,t.RULE_json_query);try{if(this.enterOuterAlt(s,1),1===(this.state=1374,this.match(t.JSON_QUERY),this.state=1375,this.match(t.LPAREN),this.state=1376,this.json_common_args(),this.state=1380,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(312===e||313===e)&&(this.state=1377,this.json_query_wrapper(),this.state=1378,this.match(t.WRAPPER)),this.state=1386,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,82,this.context)))this.state=1382,this.json_query_handler(),this.state=1383,this.match(t.ON),this.state=1384,this.match(t.EMPTY);this.state=1392,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(115===e||121===e||198===e)&&(this.state=1388,this.json_query_handler(),this.state=1389,this.match(t.ON),this.state=1390,this.match(t.ERROR)),this.state=1394,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}smart_parenthesis(){let e,s=new aY(this.context,this.state);this.enterRule(s,110,t.RULE_smart_parenthesis);try{this.enterOuterAlt(s,1),this.state=1396,this.match(t.LPAREN),this.state=1398,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(e-15&-32)&&1<<e-15&4030992413||!(e-47&-32)&&1<<e-47&4294901759||!(e-79&-32)&&1<<e-79&4294967295||!(e-111&-32)&&1<<e-111&4294967295||!(e-143&-32)&&1<<e-143&4294967287||!(e-175&-32)&&1<<e-175&4294967295||!(e-207&-32)&&1<<e-207&4294967295||!(e-240&-32)&&1<<e-240&4294967295||!(e-272&-32)&&1<<e-272&4294967295||!(e-304&-32)&&1<<e-304&524287)&&(this.state=1397,this.named_expr_list()),this.state=1401,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=1400,this.match(t.COMMA)),this.state=1403,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}expr_list(){let e=new rY(this.context,this.state);this.enterRule(e,112,t.RULE_expr_list);try{let s;for(this.enterOuterAlt(e,1),this.state=1405,this.expr(),this.state=1410,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,86,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=1406,this.match(t.COMMA),this.state=1407,this.expr()),this.state=1412,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,86,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}pure_column_list(){let e,s=new iY(this.context,this.state);this.enterRule(s,114,t.RULE_pure_column_list);try{for(this.enterOuterAlt(s,1),this.state=1413,this.match(t.LPAREN),this.state=1414,this.an_id(),this.state=1419,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=1415,this.match(t.COMMA),this.state=1416,this.an_id(),this.state=1421,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=1422,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}pure_column_or_named(){let e=new cY(this.context,this.state);this.enterRule(e,116,t.RULE_pure_column_or_named);try{switch(this.state=1426,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DOLLAR:this.enterOuterAlt(e,1),this.state=1424,this.bind_parameter();break;case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,2),this.state=1425,this.an_id();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}pure_column_or_named_list(){let e,s=new nY(this.context,this.state);this.enterRule(s,118,t.RULE_pure_column_or_named_list);try{for(this.enterOuterAlt(s,1),this.state=1428,this.match(t.LPAREN),this.state=1429,this.pure_column_or_named(),this.state=1434,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=1430,this.match(t.COMMA),this.state=1431,this.pure_column_or_named(),this.state=1436,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=1437,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}column_name(){let e=new hY(this.context,this.state);this.enterRule(e,120,t.RULE_column_name);try{this.enterOuterAlt(e,1),this.state=1439,this.opt_id_prefix(),this.state=1440,this.an_id()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}without_column_name(){let e=new EY(this.context,this.state);this.enterRule(e,122,t.RULE_without_column_name);try{switch(this.state=1447,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,90,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1442,this.an_id(),this.state=1443,this.match(t.DOT),this.state=1444,this.an_id();break;case 2:this.enterOuterAlt(e,2),this.state=1446,this.an_id_without()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}column_list(){let e,s=new TY(this.context,this.state);this.enterRule(s,124,t.RULE_column_list);try{let a;for(this.enterOuterAlt(s,1),this.state=1449,this.column_name(),this.state=1454,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,91,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=1450,this.match(t.COMMA),this.state=1451,this.column_name()),this.state=1456,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,91,this.context);this.state=1458,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=1457,this.match(t.COMMA))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}without_column_list(){let e,s=new oY(this.context,this.state);this.enterRule(s,126,t.RULE_without_column_list);try{let a;for(this.enterOuterAlt(s,1),this.state=1460,this.without_column_name(),this.state=1465,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,93,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=1461,this.match(t.COMMA),this.state=1462,this.without_column_name()),this.state=1467,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,93,this.context);this.state=1469,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=1468,this.match(t.COMMA))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}named_expr(){let e,s=new RY(this.context,this.state);this.enterRule(s,128,t.RULE_named_expr);try{this.enterOuterAlt(s,1),this.state=1471,this.expr(),this.state=1474,this.errorHandler.sync(this),e=this.tokenStream.LA(1),55===e&&(this.state=1472,this.match(t.AS),this.state=1473,this.an_id_or_type())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}named_expr_list(){let e=new AY(this.context,this.state);this.enterRule(e,130,t.RULE_named_expr_list);try{let s;for(this.enterOuterAlt(e,1),this.state=1476,this.named_expr(),this.state=1481,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,96,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=1477,this.match(t.COMMA),this.state=1478,this.named_expr()),this.state=1483,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,96,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}invoke_expr(){let e,s=new SY(this.context,this.state);this.enterRule(s,132,t.RULE_invoke_expr);try{switch(this.enterOuterAlt(s,1),this.state=1484,this.match(t.LPAREN),this.state=1491,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.STRUCT_OPEN:case t.PLUS:case t.MINUS:case t.TILDA:case t.LPAREN:case t.DOLLAR:case t.LBRACE_CURLY:case t.LBRACE_SQUARE:case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CALLABLE:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DICT:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ENUM:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FALSE:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FLOW:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LIST:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OPTIONAL:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESOURCE:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SET:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.STRUCT:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TAGGED:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TRUE:case t.TUPLE:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VARIANT:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:case t.DIGITS:case t.INTEGER_VALUE:case t.REAL:case t.BLOB:this.state=1485,this.opt_set_quantifier(),this.state=1486,this.named_expr_list(),this.state=1488,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=1487,this.match(t.COMMA));break;case t.ASTERISK:this.state=1490,this.match(t.ASTERISK);case t.RPAREN:}this.state=1493,this.match(t.RPAREN),this.state=1494,this.invoke_expr_tail()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}invoke_expr_tail(){let e,s=new lY(this.context,this.state);this.enterRule(s,134,t.RULE_invoke_expr_tail);try{switch(this.enterOuterAlt(s,1),this.state=1498,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.IGNORE:case t.RESPECT:this.state=1496,this.null_treatment();break;case t.FILTER:this.state=1497,this.filter_clause();case t.EOF:case t.EQUALS:case t.EQUALS2:case t.NOT_EQUALS:case t.NOT_EQUALS2:case t.LESS:case t.LESS_OR_EQ:case t.GREATER:case t.GREATER_OR_EQ:case t.SHIFT_LEFT:case t.ROT_LEFT:case t.AMPERSAND:case t.PIPE:case t.DOUBLE_PIPE:case t.STRUCT_CLOSE:case t.PLUS:case t.MINUS:case t.ASTERISK:case t.SLASH:case t.PERCENT:case t.SEMICOLON:case t.DOT:case t.COMMA:case t.LPAREN:case t.RPAREN:case t.QUESTION:case t.COLON:case t.RBRACE_CURLY:case t.CARET:case t.RBRACE_SQUARE:case t.LBRACE_SQUARE:case t.AFTER:case t.ALL:case t.AND:case t.AS:case t.ASC:case t.ASSUME:case t.ATTRIBUTES:case t.BETWEEN:case t.COLLATE:case t.CONNECT:case t.CONSUMER:case t.CROSS:case t.DATA:case t.DESC:case t.DESCRIBE:case t.DIRECTORY:case t.DO:case t.ELSE:case t.END:case t.ESCAPE:case t.EXCEPT:case t.EXCLUSION:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FROM:case t.FULL:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPS:case t.HAVING:case t.ILIKE:case t.IN:case t.INITIAL:case t.INNER:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NOT:case t.NOTNULL:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.OPTION:case t.OR:case t.ORDER:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PRECEDING:case t.PRESORT:case t.PRIVILEGES:case t.QUEUE:case t.RANGE:case t.REGEXP:case t.REMOVE:case t.REPLICATION:case t.RETURNING:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROWS:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBSET:case t.TABLES:case t.THEN:case t.TOPIC:case t.TYPE:case t.UNION:case t.UNMATCHED:case t.USING:case t.VIEW:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.XOR:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:}this.state=1502,this.errorHandler.sync(this),e=this.tokenStream.LA(1),213===e&&(this.state=1500,this.match(t.OVER),this.state=1501,this.window_name_or_specification())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}using_call_expr(){let e=new OY(this.context,this.state);this.enterRule(e,136,t.RULE_using_call_expr);try{switch(this.enterOuterAlt(e,1),this.state=1512,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,101,this.context)){case 1:this.state=1504,this.an_id_or_type(),this.state=1505,this.match(t.NAMESPACE),this.state=1506,this.an_id_or_type();break;case 2:this.state=1508,this.an_id_expr();break;case 3:this.state=1509,this.bind_parameter();break;case 4:this.state=1510,this.match(t.EXTERNAL),this.state=1511,this.match(t.FUNCTION)}this.state=1514,this.invoke_expr()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}key_expr(){let e=new IY(this.context,this.state);this.enterRule(e,138,t.RULE_key_expr);try{this.enterOuterAlt(e,1),this.state=1516,this.match(t.LBRACE_SQUARE),this.state=1517,this.expr(),this.state=1518,this.match(t.RBRACE_SQUARE)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}when_expr(){let e=new uY(this.context,this.state);this.enterRule(e,140,t.RULE_when_expr);try{this.enterOuterAlt(e,1),this.state=1520,this.match(t.WHEN),this.state=1521,this.expr(),this.state=1522,this.match(t.THEN),this.state=1523,this.expr()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}literal_value(){let e=new NY(this.context,this.state);this.enterRule(e,142,t.RULE_literal_value);try{switch(this.state=1535,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DIGITS:case t.INTEGER_VALUE:this.enterOuterAlt(e,1),this.state=1525,this.integer();break;case t.REAL:this.enterOuterAlt(e,2),this.state=1526,this.real();break;case t.STRING_VALUE:this.enterOuterAlt(e,3),this.state=1527,this.match(t.STRING_VALUE);break;case t.BLOB:this.enterOuterAlt(e,4),this.state=1528,this.match(t.BLOB);break;case t.NULL:this.enterOuterAlt(e,5),this.state=1529,this.match(t.NULL);break;case t.CURRENT_TIME:this.enterOuterAlt(e,6),this.state=1530,this.match(t.CURRENT_TIME);break;case t.CURRENT_DATE:this.enterOuterAlt(e,7),this.state=1531,this.match(t.CURRENT_DATE);break;case t.CURRENT_TIMESTAMP:this.enterOuterAlt(e,8),this.state=1532,this.match(t.CURRENT_TIMESTAMP);break;case t.FALSE:case t.TRUE:this.enterOuterAlt(e,9),this.state=1533,this.bool_value();break;case t.EMPTY_ACTION:this.enterOuterAlt(e,10),this.state=1534,this.match(t.EMPTY_ACTION);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}bind_parameter(){let e=new LY(this.context,this.state);this.enterRule(e,144,t.RULE_bind_parameter);try{switch(this.enterOuterAlt(e,1),this.state=1537,this.match(t.DOLLAR),this.state=1541,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CALLABLE:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DICT:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ENUM:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FLOW:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LIST:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OPTIONAL:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESOURCE:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SET:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.STRUCT:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TAGGED:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TUPLE:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VARIANT:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.state=1538,this.an_id_or_type();break;case t.TRUE:this.state=1539,this.match(t.TRUE);break;case t.FALSE:this.state=1540,this.match(t.FALSE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}opt_bind_parameter(){let e,s=new CY(this.context,this.state);this.enterRule(s,146,t.RULE_opt_bind_parameter);try{this.enterOuterAlt(s,1),this.state=1543,this.bind_parameter(),this.state=1545,this.errorHandler.sync(this),e=this.tokenStream.LA(1),29===e&&(this.state=1544,this.match(t.QUESTION))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}bind_parameter_list(){let e,s=new _Y(this.context,this.state);this.enterRule(s,148,t.RULE_bind_parameter_list);try{for(this.enterOuterAlt(s,1),this.state=1547,this.bind_parameter(),this.state=1552,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=1548,this.match(t.COMMA),this.state=1549,this.bind_parameter(),this.state=1554,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}named_bind_parameter(){let e,s=new PY(this.context,this.state);this.enterRule(s,150,t.RULE_named_bind_parameter);try{this.enterOuterAlt(s,1),this.state=1555,this.bind_parameter(),this.state=1558,this.errorHandler.sync(this),e=this.tokenStream.LA(1),55===e&&(this.state=1556,this.match(t.AS),this.state=1557,this.bind_parameter())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}named_bind_parameter_list(){let e,s=new MY(this.context,this.state);this.enterRule(s,152,t.RULE_named_bind_parameter_list);try{for(this.enterOuterAlt(s,1),this.state=1560,this.named_bind_parameter(),this.state=1565,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=1561,this.match(t.COMMA),this.state=1562,this.named_bind_parameter(),this.state=1567,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}signed_number(){let e,s=new dY(this.context,this.state);this.enterRule(s,154,t.RULE_signed_number);try{switch(this.enterOuterAlt(s,1),this.state=1569,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(17===e||18===e)&&(this.state=1568,e=this.tokenStream.LA(1),17===e||18===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=1573,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DIGITS:case t.INTEGER_VALUE:this.state=1571,this.integer();break;case t.REAL:this.state=1572,this.real();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}type_name_simple(){let e=new UY(this.context,this.state);this.enterRule(e,156,t.RULE_type_name_simple);try{this.enterOuterAlt(e,1),this.state=1575,this.an_id_pure()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}integer_or_bind(){let e=new mY(this.context,this.state);this.enterRule(e,158,t.RULE_integer_or_bind);try{switch(this.state=1579,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DIGITS:case t.INTEGER_VALUE:this.enterOuterAlt(e,1),this.state=1577,this.integer();break;case t.DOLLAR:this.enterOuterAlt(e,2),this.state=1578,this.bind_parameter();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}type_name_tag(){let e=new DY(this.context,this.state);this.enterRule(e,160,t.RULE_type_name_tag);try{switch(this.state=1584,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=1581,this.id();break;case t.STRING_VALUE:this.enterOuterAlt(e,2),this.state=1582,this.match(t.STRING_VALUE);break;case t.DOLLAR:this.enterOuterAlt(e,3),this.state=1583,this.bind_parameter();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}struct_arg(){let e=new pY(this.context,this.state);this.enterRule(e,162,t.RULE_struct_arg);try{this.enterOuterAlt(e,1),this.state=1586,this.type_name_tag(),this.state=1587,this.match(t.COLON),this.state=1588,this.type_name_or_bind()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}struct_arg_positional(){let e,s=new gY(this.context,this.state);this.enterRule(s,164,t.RULE_struct_arg_positional);try{switch(this.state=1602,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,114,this.context)){case 1:this.enterOuterAlt(s,1),this.state=1590,this.type_name_tag(),this.state=1591,this.type_name_or_bind(),this.state=1596,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(196===e||198===e)&&(this.state=1593,this.errorHandler.sync(this),e=this.tokenStream.LA(1),196===e&&(this.state=1592,this.match(t.NOT)),this.state=1595,this.match(t.NULL));break;case 2:this.enterOuterAlt(s,2),this.state=1598,this.type_name_or_bind(),this.state=1599,this.match(t.AS),this.state=1600,this.type_name_tag()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}variant_arg(){let e=new xY(this.context,this.state);this.enterRule(e,166,t.RULE_variant_arg);try{if(this.enterOuterAlt(e,1),1===(this.state=1607,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,115,this.context)))this.state=1604,this.type_name_tag(),this.state=1605,this.match(t.COLON);this.state=1609,this.type_name_or_bind()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}callable_arg(){let e,s=new kY(this.context,this.state);this.enterRule(s,168,t.RULE_callable_arg);try{this.enterOuterAlt(s,1),this.state=1611,this.variant_arg(),this.state=1615,this.errorHandler.sync(this),e=this.tokenStream.LA(1),37===e&&(this.state=1612,this.match(t.LBRACE_CURLY),this.state=1613,this.match(t.AUTOMAP),this.state=1614,this.match(t.RBRACE_CURLY))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}callable_arg_list(){let e=new HY(this.context,this.state);this.enterRule(e,170,t.RULE_callable_arg_list);try{let s;for(this.enterOuterAlt(e,1),this.state=1617,this.callable_arg(),this.state=1622,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,117,this.context);2!==s&&s!==ja.INVALID_ALT_NUMBER;)1===s&&(this.state=1618,this.match(t.COMMA),this.state=1619,this.callable_arg()),this.state=1624,this.errorHandler.sync(this),s=this.interpreter.adaptivePredict(this.tokenStream,117,this.context)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}type_name_decimal(){let e=new GY(this.context,this.state);this.enterRule(e,172,t.RULE_type_name_decimal);try{this.enterOuterAlt(e,1),this.state=1625,this.match(t.DECIMAL),this.state=1626,this.match(t.LPAREN),this.state=1627,this.integer_or_bind(),this.state=1628,this.match(t.COMMA),this.state=1629,this.integer_or_bind(),this.state=1630,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}type_name_optional(){let e=new FY(this.context,this.state);this.enterRule(e,174,t.RULE_type_name_optional);try{this.enterOuterAlt(e,1),this.state=1632,this.match(t.OPTIONAL),this.state=1633,this.match(t.LESS),this.state=1634,this.type_name_or_bind(),this.state=1635,this.match(t.GREATER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}type_name_tuple(){let e,s=new vY(this.context,this.state);this.enterRule(s,176,t.RULE_type_name_tuple);try{let a;switch(this.enterOuterAlt(s,1),this.state=1637,this.match(t.TUPLE),this.state=1654,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LESS:if(this.state=1638,this.match(t.LESS),this.state=1650,this.errorHandler.sync(this),e=this.tokenStream.LA(1),33===e||70===e||96===e||106===e||119===e||138===e||182===e||208===e||!(e-243&-32)&&1<<e-243&203423745||!(e-281&-32)&&1<<e-281&33555457||!(e-316&-32)&&1<<e-316&7){for(this.state=1639,this.type_name_or_bind(),this.state=1644,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,118,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=1640,this.match(t.COMMA),this.state=1641,this.type_name_or_bind()),this.state=1646,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,118,this.context);this.state=1648,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=1647,this.match(t.COMMA))}this.state=1652,this.match(t.GREATER);break;case t.NOT_EQUALS2:this.state=1653,this.match(t.NOT_EQUALS2);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}type_name_struct(){let e,s=new BY(this.context,this.state);this.enterRule(s,178,t.RULE_type_name_struct);try{let a;switch(this.enterOuterAlt(s,1),this.state=1656,this.match(t.STRUCT),this.state=1673,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LESS:if(this.state=1657,this.match(t.LESS),this.state=1669,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-33&-32)&&1<<e-33&3221223425||!(e-65&-32)&&1<<e-65&4294967263||!(e-97&-32)&&1<<e-97&4290772479||!(e-129&-32)&&1<<e-129&4294835695||!(e-161&-32)&&1<<e-161&4292870143||!(e-193&-32)&&1<<e-193&4294934527||!(e-225&-32)&&1<<e-225&4294688767||!(e-257&-32)&&1<<e-257&4278181759||!(e-289&-32)&&1<<e-289&1073610745){for(this.state=1658,this.struct_arg(),this.state=1663,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,122,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=1659,this.match(t.COMMA),this.state=1660,this.struct_arg()),this.state=1665,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,122,this.context);this.state=1667,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=1666,this.match(t.COMMA))}this.state=1671,this.match(t.GREATER);break;case t.NOT_EQUALS2:this.state=1672,this.match(t.NOT_EQUALS2);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}type_name_variant(){let e,s=new yY(this.context,this.state);this.enterRule(s,180,t.RULE_type_name_variant);try{let a;for(this.enterOuterAlt(s,1),this.state=1675,this.match(t.VARIANT),this.state=1676,this.match(t.LESS),this.state=1677,this.variant_arg(),this.state=1682,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,126,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=1678,this.match(t.COMMA),this.state=1679,this.variant_arg()),this.state=1684,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,126,this.context);this.state=1686,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=1685,this.match(t.COMMA)),this.state=1688,this.match(t.GREATER)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}type_name_list(){let e=new fY(this.context,this.state);this.enterRule(e,182,t.RULE_type_name_list);try{this.enterOuterAlt(e,1),this.state=1690,this.match(t.LIST),this.state=1691,this.match(t.LESS),this.state=1692,this.type_name_or_bind(),this.state=1693,this.match(t.GREATER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}type_name_stream(){let e=new YY(this.context,this.state);this.enterRule(e,184,t.RULE_type_name_stream);try{this.enterOuterAlt(e,1),this.state=1695,this.match(t.STREAM),this.state=1696,this.match(t.LESS),this.state=1697,this.type_name_or_bind(),this.state=1698,this.match(t.GREATER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}type_name_flow(){let e=new wY(this.context,this.state);this.enterRule(e,186,t.RULE_type_name_flow);try{this.enterOuterAlt(e,1),this.state=1700,this.match(t.FLOW),this.state=1701,this.match(t.LESS),this.state=1702,this.type_name_or_bind(),this.state=1703,this.match(t.GREATER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}type_name_dict(){let e=new bY(this.context,this.state);this.enterRule(e,188,t.RULE_type_name_dict);try{this.enterOuterAlt(e,1),this.state=1705,this.match(t.DICT),this.state=1706,this.match(t.LESS),this.state=1707,this.type_name_or_bind(),this.state=1708,this.match(t.COMMA),this.state=1709,this.type_name_or_bind(),this.state=1710,this.match(t.GREATER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}type_name_set(){let e=new WY(this.context,this.state);this.enterRule(e,190,t.RULE_type_name_set);try{this.enterOuterAlt(e,1),this.state=1712,this.match(t.SET),this.state=1713,this.match(t.LESS),this.state=1714,this.type_name_or_bind(),this.state=1715,this.match(t.GREATER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}type_name_enum(){let e,s=new VY(this.context,this.state);this.enterRule(s,192,t.RULE_type_name_enum);try{let a;for(this.enterOuterAlt(s,1),this.state=1717,this.match(t.ENUM),this.state=1718,this.match(t.LESS),this.state=1719,this.type_name_tag(),this.state=1724,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,128,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=1720,this.match(t.COMMA),this.state=1721,this.type_name_tag()),this.state=1726,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,128,this.context);this.state=1728,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=1727,this.match(t.COMMA)),this.state=1730,this.match(t.GREATER)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}type_name_resource(){let e=new XY(this.context,this.state);this.enterRule(e,194,t.RULE_type_name_resource);try{this.enterOuterAlt(e,1),this.state=1732,this.match(t.RESOURCE),this.state=1733,this.match(t.LESS),this.state=1734,this.type_name_tag(),this.state=1735,this.match(t.GREATER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}type_name_tagged(){let e=new KY(this.context,this.state);this.enterRule(e,196,t.RULE_type_name_tagged);try{this.enterOuterAlt(e,1),this.state=1737,this.match(t.TAGGED),this.state=1738,this.match(t.LESS),this.state=1739,this.type_name_or_bind(),this.state=1740,this.match(t.COMMA),this.state=1741,this.type_name_tag(),this.state=1742,this.match(t.GREATER)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}type_name_callable(){let e,s=new QY(this.context,this.state);this.enterRule(s,198,t.RULE_type_name_callable);try{this.enterOuterAlt(s,1),this.state=1744,this.match(t.CALLABLE),this.state=1745,this.match(t.LESS),this.state=1746,this.match(t.LPAREN),this.state=1748,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(e-33&-32)&&1<<e-33&3221223425||!(e-65&-32)&&1<<e-65&4294967295||!(e-97&-32)&&1<<e-97&4294967295||!(e-129&-32)&&1<<e-129&4294836207||!(e-161&-32)&&1<<e-161&4294967295||!(e-193&-32)&&1<<e-193&4294967295||!(e-225&-32)&&1<<e-225&4294950911||!(e-257&-32)&&1<<e-257&4294967295||!(e-289&-32)&&1<<e-289&1073741821)&&(this.state=1747,this.callable_arg_list()),this.state=1751,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=1750,this.match(t.COMMA)),this.state=1757,this.errorHandler.sync(this),e=this.tokenStream.LA(1),43===e&&(this.state=1753,this.match(t.LBRACE_SQUARE),this.state=1754,this.callable_arg_list(),this.state=1755,this.match(t.RBRACE_SQUARE)),this.state=1759,this.match(t.RPAREN),this.state=1760,this.match(t.ARROW),this.state=1761,this.type_name_or_bind(),this.state=1762,this.match(t.GREATER)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}type_name_composite(){let e,s=new JY(this.context,this.state);this.enterRule(s,200,t.RULE_type_name_composite);try{switch(this.enterOuterAlt(s,1),this.state=1777,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.OPTIONAL:this.state=1764,this.type_name_optional();break;case t.TUPLE:this.state=1765,this.type_name_tuple();break;case t.STRUCT:this.state=1766,this.type_name_struct();break;case t.VARIANT:this.state=1767,this.type_name_variant();break;case t.LIST:this.state=1768,this.type_name_list();break;case t.STREAM:this.state=1769,this.type_name_stream();break;case t.FLOW:this.state=1770,this.type_name_flow();break;case t.DICT:this.state=1771,this.type_name_dict();break;case t.SET:this.state=1772,this.type_name_set();break;case t.ENUM:this.state=1773,this.type_name_enum();break;case t.RESOURCE:this.state=1774,this.type_name_resource();break;case t.TAGGED:this.state=1775,this.type_name_tagged();break;case t.CALLABLE:this.state=1776,this.type_name_callable();break;default:throw new Ei(this)}for(this.state=1782,this.errorHandler.sync(this),e=this.tokenStream.LA(1);29===e;)this.state=1779,this.match(t.QUESTION),this.state=1784,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}type_name(){let e,s=new ZY(this.context,this.state);this.enterRule(s,202,t.RULE_type_name);try{switch(this.state=1796,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CALLABLE:case t.DICT:case t.ENUM:case t.FLOW:case t.LIST:case t.OPTIONAL:case t.RESOURCE:case t.SET:case t.STREAM:case t.STRUCT:case t.TAGGED:case t.TUPLE:case t.VARIANT:this.enterOuterAlt(s,1),this.state=1785,this.type_name_composite();break;case t.DECIMAL:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:switch(this.enterOuterAlt(s,2),this.state=1788,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DECIMAL:this.state=1786,this.type_name_decimal();break;case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.state=1787,this.type_name_simple();break;default:throw new Ei(this)}for(this.state=1793,this.errorHandler.sync(this),e=this.tokenStream.LA(1);29===e;)this.state=1790,this.match(t.QUESTION),this.state=1795,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}type_name_or_bind(){let e=new qY(this.context,this.state);this.enterRule(e,204,t.RULE_type_name_or_bind);try{switch(this.state=1800,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CALLABLE:case t.DECIMAL:case t.DICT:case t.ENUM:case t.FLOW:case t.LIST:case t.OPTIONAL:case t.RESOURCE:case t.SET:case t.STREAM:case t.STRUCT:case t.TAGGED:case t.TUPLE:case t.VARIANT:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=1798,this.type_name();break;case t.DOLLAR:this.enterOuterAlt(e,2),this.state=1799,this.bind_parameter();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}value_constructor_literal(){let e=new jY(this.context,this.state);this.enterRule(e,206,t.RULE_value_constructor_literal);try{this.enterOuterAlt(e,1),this.state=1802,this.match(t.STRING_VALUE)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}value_constructor(){let e=new zY(this.context,this.state);this.enterRule(e,208,t.RULE_value_constructor);try{switch(this.state=1827,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.VARIANT:this.enterOuterAlt(e,1),this.state=1804,this.match(t.VARIANT),this.state=1805,this.match(t.LPAREN),this.state=1806,this.expr(),this.state=1807,this.match(t.COMMA),this.state=1808,this.expr(),this.state=1809,this.match(t.COMMA),this.state=1810,this.expr(),this.state=1811,this.match(t.RPAREN);break;case t.ENUM:this.enterOuterAlt(e,2),this.state=1813,this.match(t.ENUM),this.state=1814,this.match(t.LPAREN),this.state=1815,this.expr(),this.state=1816,this.match(t.COMMA),this.state=1817,this.expr(),this.state=1818,this.match(t.RPAREN);break;case t.CALLABLE:this.enterOuterAlt(e,3),this.state=1820,this.match(t.CALLABLE),this.state=1821,this.match(t.LPAREN),this.state=1822,this.expr(),this.state=1823,this.match(t.COMMA),this.state=1824,this.expr(),this.state=1825,this.match(t.RPAREN);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}declare_stmt(){let e,s=new $Y(this.context,this.state);this.enterRule(s,210,t.RULE_declare_stmt);try{this.enterOuterAlt(s,1),this.state=1829,this.match(t.DECLARE),this.state=1830,this.bind_parameter(),this.state=1831,this.match(t.AS),this.state=1832,this.type_name(),this.state=1835,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e&&(this.state=1833,this.match(t.EQUALS),this.state=1834,this.literal_value())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}module_path(){let e,s=new tw(this.context,this.state);this.enterRule(s,212,t.RULE_module_path);try{for(this.enterOuterAlt(s,1),this.state=1838,this.errorHandler.sync(this),e=this.tokenStream.LA(1),25===e&&(this.state=1837,this.match(t.DOT)),this.state=1840,this.an_id(),this.state=1845,this.errorHandler.sync(this),e=this.tokenStream.LA(1);25===e;)this.state=1841,this.match(t.DOT),this.state=1842,this.an_id(),this.state=1847,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}import_stmt(){let e=new ew(this.context,this.state);this.enterRule(e,214,t.RULE_import_stmt);try{this.enterOuterAlt(e,1),this.state=1848,this.match(t.IMPORT),this.state=1849,this.module_path(),this.state=1850,this.match(t.SYMBOLS),this.state=1851,this.named_bind_parameter_list()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}export_stmt(){let e=new sw(this.context,this.state);this.enterRule(e,216,t.RULE_export_stmt);try{this.enterOuterAlt(e,1),this.state=1853,this.match(t.EXPORT),this.state=1854,this.bind_parameter_list()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}call_action(){let e,s=new aw(this.context,this.state);this.enterRule(s,218,t.RULE_call_action);try{switch(this.enterOuterAlt(s,1),this.state=1858,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DOLLAR:this.state=1856,this.bind_parameter();break;case t.EMPTY_ACTION:this.state=1857,this.match(t.EMPTY_ACTION);break;default:throw new Ei(this)}this.state=1860,this.match(t.LPAREN),this.state=1862,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(e-15&-32)&&1<<e-15&4030992413||!(e-47&-32)&&1<<e-47&4294901759||!(e-79&-32)&&1<<e-79&4294967295||!(e-111&-32)&&1<<e-111&4294967295||!(e-143&-32)&&1<<e-143&4294967287||!(e-175&-32)&&1<<e-175&4294967295||!(e-207&-32)&&1<<e-207&4294967295||!(e-240&-32)&&1<<e-240&4294967295||!(e-272&-32)&&1<<e-272&4294967295||!(e-304&-32)&&1<<e-304&524287)&&(this.state=1861,this.expr_list()),this.state=1864,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}inline_action(){let e=new rw(this.context,this.state);this.enterRule(e,220,t.RULE_inline_action);try{this.enterOuterAlt(e,1),this.state=1866,this.match(t.BEGIN),this.state=1867,this.define_action_or_subquery_body(),this.state=1868,this.match(t.END),this.state=1869,this.match(t.DO)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}do_stmt(){let e=new iw(this.context,this.state);this.enterRule(e,222,t.RULE_do_stmt);try{switch(this.enterOuterAlt(e,1),this.state=1871,this.match(t.DO),this.state=1874,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DOLLAR:case t.EMPTY_ACTION:this.state=1872,this.call_action();break;case t.BEGIN:this.state=1873,this.inline_action();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}pragma_stmt(){let e,s=new cw(this.context,this.state);this.enterRule(s,224,t.RULE_pragma_stmt);try{switch(this.enterOuterAlt(s,1),this.state=1876,this.match(t.PRAGMA),this.state=1877,this.opt_id_prefix_or_type(),this.state=1878,this.an_id(),this.state=1892,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.EQUALS:this.state=1879,this.match(t.EQUALS),this.state=1880,this.pragma_value();break;case t.LPAREN:for(this.state=1881,this.match(t.LPAREN),this.state=1882,this.pragma_value(),this.state=1887,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=1883,this.match(t.COMMA),this.state=1884,this.pragma_value(),this.state=1889,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=1890,this.match(t.RPAREN);case t.EOF:case t.SEMICOLON:case t.END:}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}pragma_value(){let e=new nw(this.context,this.state);this.enterRule(e,226,t.RULE_pragma_value);try{switch(this.state=1899,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.PLUS:case t.MINUS:case t.DIGITS:case t.INTEGER_VALUE:case t.REAL:this.enterOuterAlt(e,1),this.state=1894,this.signed_number();break;case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,2),this.state=1895,this.id();break;case t.STRING_VALUE:this.enterOuterAlt(e,3),this.state=1896,this.match(t.STRING_VALUE);break;case t.FALSE:case t.TRUE:this.enterOuterAlt(e,4),this.state=1897,this.bool_value();break;case t.DOLLAR:this.enterOuterAlt(e,5),this.state=1898,this.bind_parameter();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}sort_specification(){let e,s=new hw(this.context,this.state);this.enterRule(s,228,t.RULE_sort_specification);try{this.enterOuterAlt(s,1),this.state=1901,this.expr(),this.state=1903,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(56===e||103===e)&&(this.state=1902,e=this.tokenStream.LA(1),56===e||103===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}sort_specification_list(){let e,s=new Ew(this.context,this.state);this.enterRule(s,230,t.RULE_sort_specification_list);try{for(this.enterOuterAlt(s,1),this.state=1905,this.sort_specification(),this.state=1910,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=1906,this.match(t.COMMA),this.state=1907,this.sort_specification(),this.state=1912,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}select_stmt(){let e,s=new Tw(this.context,this.state);this.enterRule(s,232,t.RULE_select_stmt);try{for(this.enterOuterAlt(s,1),this.state=1913,this.select_kind_parenthesis(),this.state=1919,this.errorHandler.sync(this),e=this.tokenStream.LA(1);124===e||168===e||295===e;)this.state=1914,this.select_op(),this.state=1915,this.select_kind_parenthesis(),this.state=1921,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}select_unparenthesized_stmt(){let e,s=new ow(this.context,this.state);this.enterRule(s,234,t.RULE_select_unparenthesized_stmt);try{for(this.enterOuterAlt(s,1),this.state=1922,this.select_kind_partial(),this.state=1928,this.errorHandler.sync(this),e=this.tokenStream.LA(1);124===e||168===e||295===e;)this.state=1923,this.select_op(),this.state=1924,this.select_kind_parenthesis(),this.state=1930,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}select_kind_parenthesis(){let e=new Rw(this.context,this.state);this.enterRule(e,236,t.RULE_select_kind_parenthesis);try{switch(this.state=1936,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DISCARD:case t.FROM:case t.PROCESS:case t.REDUCE:case t.SELECT:this.enterOuterAlt(e,1),this.state=1931,this.select_kind_partial();break;case t.LPAREN:this.enterOuterAlt(e,2),this.state=1932,this.match(t.LPAREN),this.state=1933,this.select_kind_partial(),this.state=1934,this.match(t.RPAREN);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}select_op(){let e,s=new Aw(this.context,this.state);this.enterRule(s,238,t.RULE_select_op);try{switch(this.state=1944,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.UNION:this.enterOuterAlt(s,1),this.state=1938,this.match(t.UNION),this.state=1940,this.errorHandler.sync(this),e=this.tokenStream.LA(1),48===e&&(this.state=1939,this.match(t.ALL));break;case t.INTERSECT:this.enterOuterAlt(s,2),this.state=1942,this.match(t.INTERSECT);break;case t.EXCEPT:this.enterOuterAlt(s,3),this.state=1943,this.match(t.EXCEPT);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}select_kind_partial(){let e,s=new Sw(this.context,this.state);this.enterRule(s,240,t.RULE_select_kind_partial);try{this.enterOuterAlt(s,1),this.state=1946,this.select_kind(),this.state=1953,this.errorHandler.sync(this),e=this.tokenStream.LA(1),181===e&&(this.state=1947,this.match(t.LIMIT),this.state=1948,this.expr(),this.state=1951,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(26===e||202===e)&&(this.state=1949,e=this.tokenStream.LA(1),26===e||202===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1950,this.expr()))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}select_kind(){let e,s=new lw(this.context,this.state);this.enterRule(s,242,t.RULE_select_kind);try{switch(this.enterOuterAlt(s,1),this.state=1956,this.errorHandler.sync(this),e=this.tokenStream.LA(1),109===e&&(this.state=1955,this.match(t.DISCARD)),this.state=1961,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.PROCESS:this.state=1958,this.process_core();break;case t.REDUCE:this.state=1959,this.reduce_core();break;case t.FROM:case t.SELECT:this.state=1960,this.select_core();break;default:throw new Ei(this)}this.state=1966,this.errorHandler.sync(this),e=this.tokenStream.LA(1),169===e&&(this.state=1963,this.match(t.INTO),this.state=1964,this.match(t.RESULT),this.state=1965,this.pure_column_or_named())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}process_core(){let e,s=new Ow(this.context,this.state);this.enterRule(s,244,t.RULE_process_core);try{if(this.enterOuterAlt(s,1),1===(this.state=1968,this.match(t.PROCESS),this.state=1970,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,161,this.context)))this.state=1969,this.match(t.STREAM);for(this.state=1972,this.named_single_source(),this.state=1977,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=1973,this.match(t.COMMA),this.state=1974,this.named_single_source(),this.state=1979,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2001,this.errorHandler.sync(this),e=this.tokenStream.LA(1),303===e&&(this.state=1980,this.match(t.USING),this.state=1981,this.using_call_expr(),this.state=1984,this.errorHandler.sync(this),e=this.tokenStream.LA(1),55===e&&(this.state=1982,this.match(t.AS),this.state=1983,this.an_id()),this.state=1988,this.errorHandler.sync(this),e=this.tokenStream.LA(1),312===e&&(this.state=1986,this.match(t.WITH),this.state=1987,this.external_call_settings()),this.state=1991,this.errorHandler.sync(this),e=this.tokenStream.LA(1),310===e&&(this.state=1990,this.where_expr()),this.state=1995,this.errorHandler.sync(this),e=this.tokenStream.LA(1),152===e&&(this.state=1993,this.match(t.HAVING),this.state=1994,this.expr()),this.state=1999,this.errorHandler.sync(this),e=this.tokenStream.LA(1),57===e&&(this.state=1997,this.match(t.ASSUME),this.state=1998,this.order_by_clause()))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}external_call_param(){let e=new Iw(this.context,this.state);this.enterRule(e,246,t.RULE_external_call_param);try{this.enterOuterAlt(e,1),this.state=2003,this.an_id(),this.state=2004,this.match(t.EQUALS),this.state=2005,this.expr()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}external_call_settings(){let e,s=new uw(this.context,this.state);this.enterRule(s,248,t.RULE_external_call_settings);try{for(this.enterOuterAlt(s,1),this.state=2007,this.external_call_param(),this.state=2012,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2008,this.match(t.COMMA),this.state=2009,this.external_call_param(),this.state=2014,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}reduce_core(){let e,s=new Nw(this.context,this.state);this.enterRule(s,250,t.RULE_reduce_core);try{for(this.enterOuterAlt(s,1),this.state=2015,this.match(t.REDUCE),this.state=2016,this.named_single_source(),this.state=2021,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2017,this.match(t.COMMA),this.state=2018,this.named_single_source(),this.state=2023,this.errorHandler.sync(this),e=this.tokenStream.LA(1);if(1===(this.state=2026,this.errorHandler.sync(this),e=this.tokenStream.LA(1),225===e&&(this.state=2024,this.match(t.PRESORT),this.state=2025,this.sort_specification_list()),this.state=2028,this.match(t.ON),this.state=2029,this.column_list(),this.state=2030,this.match(t.USING),this.state=2032,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,172,this.context)))this.state=2031,this.match(t.ALL);this.state=2034,this.using_call_expr(),this.state=2037,this.errorHandler.sync(this),e=this.tokenStream.LA(1),55===e&&(this.state=2035,this.match(t.AS),this.state=2036,this.an_id()),this.state=2040,this.errorHandler.sync(this),e=this.tokenStream.LA(1),310===e&&(this.state=2039,this.where_expr()),this.state=2044,this.errorHandler.sync(this),e=this.tokenStream.LA(1),152===e&&(this.state=2042,this.match(t.HAVING),this.state=2043,this.expr()),this.state=2048,this.errorHandler.sync(this),e=this.tokenStream.LA(1),57===e&&(this.state=2046,this.match(t.ASSUME),this.state=2047,this.order_by_clause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}opt_set_quantifier(){let e,s=new Lw(this.context,this.state);this.enterRule(s,252,t.RULE_opt_set_quantifier);try{if(1===(this.enterOuterAlt(s,1),this.state=2051,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,177,this.context)))this.state=2050,e=this.tokenStream.LA(1),48===e||110===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}select_core(){let e,s=new Cw(this.context,this.state);this.enterRule(s,254,t.RULE_select_core);try{let a;if(this.enterOuterAlt(s,1),1===(this.state=2055,this.errorHandler.sync(this),e=this.tokenStream.LA(1),142===e&&(this.state=2053,this.match(t.FROM),this.state=2054,this.join_source()),this.state=2057,this.match(t.SELECT),this.state=2059,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,179,this.context)))this.state=2058,this.match(t.STREAM);for(this.state=2061,this.opt_set_quantifier(),this.state=2062,this.result_column(),this.state=2067,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,180,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=2063,this.match(t.COMMA),this.state=2064,this.result_column()),this.state=2069,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,180,this.context);this.state=2071,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=2070,this.match(t.COMMA)),this.state=2075,this.errorHandler.sync(this),e=this.tokenStream.LA(1),313===e&&(this.state=2073,this.match(t.WITHOUT),this.state=2074,this.without_column_list()),this.state=2079,this.errorHandler.sync(this),e=this.tokenStream.LA(1),142===e&&(this.state=2077,this.match(t.FROM),this.state=2078,this.join_source()),this.state=2082,this.errorHandler.sync(this),e=this.tokenStream.LA(1),310===e&&(this.state=2081,this.where_expr()),this.state=2085,this.errorHandler.sync(this),e=this.tokenStream.LA(1),148===e&&(this.state=2084,this.group_by_clause()),this.state=2089,this.errorHandler.sync(this),e=this.tokenStream.LA(1),152===e&&(this.state=2087,this.match(t.HAVING),this.state=2088,this.expr()),this.state=2092,this.errorHandler.sync(this),e=this.tokenStream.LA(1),311===e&&(this.state=2091,this.window_clause()),this.state=2095,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(57===e||210===e)&&(this.state=2094,this.ext_order_by_clause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}row_pattern_recognition_clause(){let e,s=new _w(this.context,this.state);this.enterRule(s,256,t.RULE_row_pattern_recognition_clause);try{this.enterOuterAlt(s,1),this.state=2097,this.match(t.MATCH_RECOGNIZE),this.state=2098,this.match(t.LPAREN),this.state=2100,this.errorHandler.sync(this),e=this.tokenStream.LA(1),215===e&&(this.state=2099,this.window_partition_clause()),this.state=2103,this.errorHandler.sync(this),e=this.tokenStream.LA(1),210===e&&(this.state=2102,this.order_by_clause()),this.state=2106,this.errorHandler.sync(this),e=this.tokenStream.LA(1),188===e&&(this.state=2105,this.row_pattern_measures()),this.state=2109,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(48===e||205===e)&&(this.state=2108,this.row_pattern_rows_per_match()),this.state=2111,this.row_pattern_common_syntax(),this.state=2112,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}row_pattern_rows_per_match(){let e,s=new Pw(this.context,this.state);this.enterRule(s,258,t.RULE_row_pattern_rows_per_match);try{switch(this.state=2125,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ONE:this.enterOuterAlt(s,1),this.state=2114,this.match(t.ONE),this.state=2115,this.match(t.ROW),this.state=2116,this.match(t.PER),this.state=2117,this.match(t.MATCH);break;case t.ALL:this.enterOuterAlt(s,2),this.state=2118,this.match(t.ALL),this.state=2119,this.match(t.ROWS),this.state=2120,this.match(t.PER),this.state=2121,this.match(t.MATCH),this.state=2123,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(203===e||266===e||312===e)&&(this.state=2122,this.row_pattern_empty_match_handling());break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}row_pattern_empty_match_handling(){let e=new Mw(this.context,this.state);this.enterRule(e,260,t.RULE_row_pattern_empty_match_handling);try{switch(this.state=2136,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SHOW:this.enterOuterAlt(e,1),this.state=2127,this.match(t.SHOW),this.state=2128,this.match(t.EMPTY),this.state=2129,this.match(t.MATCHES);break;case t.OMIT:this.enterOuterAlt(e,2),this.state=2130,this.match(t.OMIT),this.state=2131,this.match(t.EMPTY),this.state=2132,this.match(t.MATCHES);break;case t.WITH:this.enterOuterAlt(e,3),this.state=2133,this.match(t.WITH),this.state=2134,this.match(t.UNMATCHED),this.state=2135,this.match(t.ROWS);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}row_pattern_measures(){let e=new dw(this.context,this.state);this.enterRule(e,262,t.RULE_row_pattern_measures);try{this.enterOuterAlt(e,1),this.state=2138,this.match(t.MEASURES),this.state=2139,this.row_pattern_measure_list()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}row_pattern_measure_list(){let e,s=new Uw(this.context,this.state);this.enterRule(s,264,t.RULE_row_pattern_measure_list);try{for(this.enterOuterAlt(s,1),this.state=2141,this.row_pattern_measure_definition(),this.state=2146,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2142,this.match(t.COMMA),this.state=2143,this.row_pattern_measure_definition(),this.state=2148,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}row_pattern_measure_definition(){let e=new mw(this.context,this.state);this.enterRule(e,266,t.RULE_row_pattern_measure_definition);try{this.enterOuterAlt(e,1),this.state=2149,this.expr(),this.state=2150,this.match(t.AS),this.state=2151,this.an_id()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}row_pattern_common_syntax(){let e,s=new Dw(this.context,this.state);this.enterRule(s,268,t.RULE_row_pattern_common_syntax);try{this.enterOuterAlt(s,1),this.state=2156,this.errorHandler.sync(this),e=this.tokenStream.LA(1),47===e&&(this.state=2153,this.match(t.AFTER),this.state=2154,this.match(t.MATCH),this.state=2155,this.row_pattern_skip_to()),this.state=2159,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(163===e||261===e)&&(this.state=2158,this.row_pattern_initial_or_seek()),this.state=2161,this.match(t.PATTERN),this.state=2162,this.match(t.LPAREN),this.state=2163,this.row_pattern(),this.state=2164,this.match(t.RPAREN),this.state=2166,this.errorHandler.sync(this),e=this.tokenStream.LA(1),272===e&&(this.state=2165,this.row_pattern_subset_clause()),this.state=2168,this.match(t.DEFINE),this.state=2169,this.row_pattern_definition_list()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}row_pattern_skip_to(){let e=new pw(this.context,this.state);this.enterRule(e,270,t.RULE_row_pattern_skip_to);try{switch(this.state=2190,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,200,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2171,this.match(t.SKIP_RULE),this.state=2172,this.match(t.TO),this.state=2173,this.match(t.NEXT),this.state=2174,this.match(t.ROW);break;case 2:this.enterOuterAlt(e,2),this.state=2175,this.match(t.SKIP_RULE),this.state=2176,this.match(t.PAST),this.state=2177,this.match(t.LAST),this.state=2178,this.match(t.ROW);break;case 3:this.enterOuterAlt(e,3),this.state=2179,this.match(t.SKIP_RULE),this.state=2180,this.match(t.TO),this.state=2181,this.match(t.FIRST),this.state=2182,this.row_pattern_skip_to_variable_name();break;case 4:this.enterOuterAlt(e,4),this.state=2183,this.match(t.SKIP_RULE),this.state=2184,this.match(t.TO),this.state=2185,this.match(t.LAST),this.state=2186,this.row_pattern_skip_to_variable_name();break;case 5:this.enterOuterAlt(e,5),this.state=2187,this.match(t.SKIP_RULE),this.state=2188,this.match(t.TO),this.state=2189,this.row_pattern_skip_to_variable_name()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}row_pattern_skip_to_variable_name(){let e=new gw(this.context,this.state);this.enterRule(e,272,t.RULE_row_pattern_skip_to_variable_name);try{this.enterOuterAlt(e,1),this.state=2192,this.row_pattern_variable_name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}row_pattern_initial_or_seek(){let e,s=new xw(this.context,this.state);this.enterRule(s,274,t.RULE_row_pattern_initial_or_seek);try{this.enterOuterAlt(s,1),this.state=2194,e=this.tokenStream.LA(1),163===e||261===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}row_pattern(){let e,s=new kw(this.context,this.state);this.enterRule(s,276,t.RULE_row_pattern);try{for(this.enterOuterAlt(s,1),this.state=2196,this.row_pattern_term(),this.state=2201,this.errorHandler.sync(this),e=this.tokenStream.LA(1);13===e;)this.state=2197,this.match(t.PIPE),this.state=2198,this.row_pattern_term(),this.state=2203,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}row_pattern_term(){let e,s=new Hw(this.context,this.state);this.enterRule(s,278,t.RULE_row_pattern_term);try{this.enterOuterAlt(s,1),this.state=2205,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=2204,this.row_pattern_factor(),this.state=2207,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(!(e-27&-32)&&1<<e-27&5185||221===e||317===e||318===e)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}row_pattern_factor(){let e=new Gw(this.context,this.state);this.enterRule(e,280,t.RULE_row_pattern_factor);try{if(1===(this.enterOuterAlt(e,1),this.state=2209,this.row_pattern_primary(),this.state=2211,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,203,this.context)))this.state=2210,this.row_pattern_quantifier()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}row_pattern_quantifier(){let e,s=new Fw(this.context,this.state);this.enterRule(s,282,t.RULE_row_pattern_quantifier);try{switch(this.state=2241,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,210,this.context)){case 1:this.enterOuterAlt(s,1),this.state=2213,this.match(t.ASTERISK),this.state=2215,this.errorHandler.sync(this),e=this.tokenStream.LA(1),29===e&&(this.state=2214,this.match(t.QUESTION));break;case 2:this.enterOuterAlt(s,2),this.state=2217,this.match(t.PLUS),this.state=2219,this.errorHandler.sync(this),e=this.tokenStream.LA(1),29===e&&(this.state=2218,this.match(t.QUESTION));break;case 3:this.enterOuterAlt(s,3),this.state=2221,this.match(t.QUESTION),this.state=2223,this.errorHandler.sync(this),e=this.tokenStream.LA(1),29===e&&(this.state=2222,this.match(t.QUESTION));break;case 4:this.enterOuterAlt(s,4),this.state=2225,this.match(t.LBRACE_CURLY),this.state=2227,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(319===e||320===e)&&(this.state=2226,this.integer()),this.state=2229,this.match(t.COMMA),this.state=2231,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(319===e||320===e)&&(this.state=2230,this.integer()),this.state=2233,this.match(t.RBRACE_CURLY),this.state=2235,this.errorHandler.sync(this),e=this.tokenStream.LA(1),29===e&&(this.state=2234,this.match(t.QUESTION));break;case 5:this.enterOuterAlt(s,5),this.state=2237,this.match(t.LBRACE_CURLY),this.state=2238,this.integer(),this.state=2239,this.match(t.RBRACE_CURLY)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}row_pattern_primary(){let e,s=new vw(this.context,this.state);this.enterRule(s,284,t.RULE_row_pattern_primary);try{switch(this.state=2258,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(s,1),this.state=2243,this.row_pattern_primary_variable_name();break;case t.DOLLAR:this.enterOuterAlt(s,2),this.state=2244,this.match(t.DOLLAR);break;case t.CARET:this.enterOuterAlt(s,3),this.state=2245,this.match(t.CARET);break;case t.LPAREN:this.enterOuterAlt(s,4),this.state=2246,this.match(t.LPAREN),this.state=2248,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(e-27&-32)&&1<<e-27&5185||221===e||317===e||318===e)&&(this.state=2247,this.row_pattern()),this.state=2250,this.match(t.RPAREN);break;case t.LBRACE_CURLY:this.enterOuterAlt(s,5),this.state=2251,this.match(t.LBRACE_CURLY),this.state=2252,this.match(t.MINUS),this.state=2253,this.row_pattern(),this.state=2254,this.match(t.MINUS),this.state=2255,this.match(t.RBRACE_CURLY);break;case t.PERMUTE:this.enterOuterAlt(s,6),this.state=2257,this.row_pattern_permute();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}row_pattern_primary_variable_name(){let e=new Bw(this.context,this.state);this.enterRule(e,286,t.RULE_row_pattern_primary_variable_name);try{this.enterOuterAlt(e,1),this.state=2260,this.row_pattern_variable_name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}row_pattern_permute(){let e,s=new yw(this.context,this.state);this.enterRule(s,288,t.RULE_row_pattern_permute);try{for(this.enterOuterAlt(s,1),this.state=2262,this.match(t.PERMUTE),this.state=2263,this.match(t.LPAREN),this.state=2264,this.row_pattern(),this.state=2269,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2265,this.match(t.COMMA),this.state=2266,this.row_pattern(),this.state=2271,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2272,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}row_pattern_subset_clause(){let e=new fw(this.context,this.state);this.enterRule(e,290,t.RULE_row_pattern_subset_clause);try{this.enterOuterAlt(e,1),this.state=2274,this.match(t.SUBSET),this.state=2275,this.row_pattern_subset_list()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}row_pattern_subset_list(){let e,s=new Yw(this.context,this.state);this.enterRule(s,292,t.RULE_row_pattern_subset_list);try{for(this.enterOuterAlt(s,1),this.state=2277,this.row_pattern_subset_item(),this.state=2282,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2278,this.match(t.COMMA),this.state=2279,this.row_pattern_subset_item(),this.state=2284,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}row_pattern_subset_item(){let e=new ww(this.context,this.state);this.enterRule(e,294,t.RULE_row_pattern_subset_item);try{this.enterOuterAlt(e,1),this.state=2285,this.row_pattern_subset_item_variable_name(),this.state=2286,this.match(t.EQUALS),this.state=2287,this.match(t.LPAREN),this.state=2288,this.row_pattern_subset_rhs(),this.state=2289,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}row_pattern_subset_item_variable_name(){let e=new bw(this.context,this.state);this.enterRule(e,296,t.RULE_row_pattern_subset_item_variable_name);try{this.enterOuterAlt(e,1),this.state=2291,this.row_pattern_variable_name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}row_pattern_subset_rhs(){let e,s=new Ww(this.context,this.state);this.enterRule(s,298,t.RULE_row_pattern_subset_rhs);try{for(this.enterOuterAlt(s,1),this.state=2293,this.row_pattern_subset_rhs_variable_name(),this.state=2298,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2294,this.match(t.COMMA),this.state=2295,this.row_pattern_subset_rhs_variable_name(),this.state=2300,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}row_pattern_subset_rhs_variable_name(){let e=new Vw(this.context,this.state);this.enterRule(e,300,t.RULE_row_pattern_subset_rhs_variable_name);try{this.enterOuterAlt(e,1),this.state=2301,this.row_pattern_variable_name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}row_pattern_definition_list(){let e,s=new Xw(this.context,this.state);this.enterRule(s,302,t.RULE_row_pattern_definition_list);try{for(this.enterOuterAlt(s,1),this.state=2303,this.row_pattern_definition(),this.state=2308,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2304,this.match(t.COMMA),this.state=2305,this.row_pattern_definition(),this.state=2310,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}row_pattern_definition(){let e=new Kw(this.context,this.state);this.enterRule(e,304,t.RULE_row_pattern_definition);try{this.enterOuterAlt(e,1),this.state=2311,this.row_pattern_definition_variable_name(),this.state=2312,this.match(t.AS),this.state=2313,this.row_pattern_definition_search_condition()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}row_pattern_definition_variable_name(){let e=new Qw(this.context,this.state);this.enterRule(e,306,t.RULE_row_pattern_definition_variable_name);try{this.enterOuterAlt(e,1),this.state=2315,this.row_pattern_variable_name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}row_pattern_definition_search_condition(){let e=new Jw(this.context,this.state);this.enterRule(e,308,t.RULE_row_pattern_definition_search_condition);try{this.enterOuterAlt(e,1),this.state=2317,this.search_condition()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}search_condition(){let e=new Zw(this.context,this.state);this.enterRule(e,310,t.RULE_search_condition);try{this.enterOuterAlt(e,1),this.state=2319,this.expr()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}row_pattern_variable_name(){let e=new qw(this.context,this.state);this.enterRule(e,312,t.RULE_row_pattern_variable_name);try{this.enterOuterAlt(e,1),this.state=2321,this.identifier()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}order_by_clause(){let e=new jw(this.context,this.state);this.enterRule(e,314,t.RULE_order_by_clause);try{this.enterOuterAlt(e,1),this.state=2323,this.match(t.ORDER),this.state=2324,this.match(t.BY),this.state=2325,this.sort_specification_list()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}ext_order_by_clause(){let e,s=new zw(this.context,this.state);this.enterRule(s,316,t.RULE_ext_order_by_clause);try{this.enterOuterAlt(s,1),this.state=2328,this.errorHandler.sync(this),e=this.tokenStream.LA(1),57===e&&(this.state=2327,this.match(t.ASSUME)),this.state=2330,this.order_by_clause()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}group_by_clause(){let e,s=new $w(this.context,this.state);this.enterRule(s,318,t.RULE_group_by_clause);try{this.enterOuterAlt(s,1),this.state=2332,this.match(t.GROUP),this.state=2334,this.errorHandler.sync(this),e=this.tokenStream.LA(1),80===e&&(this.state=2333,this.match(t.COMPACT)),this.state=2336,this.match(t.BY),this.state=2337,this.opt_set_quantifier(),this.state=2338,this.grouping_element_list(),this.state=2341,this.errorHandler.sync(this),e=this.tokenStream.LA(1),312===e&&(this.state=2339,this.match(t.WITH),this.state=2340,this.an_id())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}grouping_element_list(){let e,s=new tb(this.context,this.state);this.enterRule(s,320,t.RULE_grouping_element_list);try{for(this.enterOuterAlt(s,1),this.state=2343,this.grouping_element(),this.state=2348,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2344,this.match(t.COMMA),this.state=2345,this.grouping_element(),this.state=2350,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}grouping_element(){let e=new eb(this.context,this.state);this.enterRule(e,322,t.RULE_grouping_element);try{switch(this.state=2356,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,221,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2351,this.ordinary_grouping_set();break;case 2:this.enterOuterAlt(e,2),this.state=2352,this.rollup_list();break;case 3:this.enterOuterAlt(e,3),this.state=2353,this.cube_list();break;case 4:this.enterOuterAlt(e,4),this.state=2354,this.grouping_sets_specification();break;case 5:this.enterOuterAlt(e,5),this.state=2355,this.hopping_window_specification()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}ordinary_grouping_set(){let e=new sb(this.context,this.state);this.enterRule(e,324,t.RULE_ordinary_grouping_set);try{this.enterOuterAlt(e,1),this.state=2358,this.named_expr()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}ordinary_grouping_set_list(){let e,s=new ab(this.context,this.state);this.enterRule(s,326,t.RULE_ordinary_grouping_set_list);try{for(this.enterOuterAlt(s,1),this.state=2360,this.ordinary_grouping_set(),this.state=2365,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2361,this.match(t.COMMA),this.state=2362,this.ordinary_grouping_set(),this.state=2367,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}rollup_list(){let e=new rb(this.context,this.state);this.enterRule(e,328,t.RULE_rollup_list);try{this.enterOuterAlt(e,1),this.state=2368,this.match(t.ROLLUP),this.state=2369,this.match(t.LPAREN),this.state=2370,this.ordinary_grouping_set_list(),this.state=2371,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}cube_list(){let e=new ib(this.context,this.state);this.enterRule(e,330,t.RULE_cube_list);try{this.enterOuterAlt(e,1),this.state=2373,this.match(t.CUBE),this.state=2374,this.match(t.LPAREN),this.state=2375,this.ordinary_grouping_set_list(),this.state=2376,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}grouping_sets_specification(){let e=new cb(this.context,this.state);this.enterRule(e,332,t.RULE_grouping_sets_specification);try{this.enterOuterAlt(e,1),this.state=2378,this.match(t.GROUPING),this.state=2379,this.match(t.SETS),this.state=2380,this.match(t.LPAREN),this.state=2381,this.grouping_element_list(),this.state=2382,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}hopping_window_specification(){let e=new nb(this.context,this.state);this.enterRule(e,334,t.RULE_hopping_window_specification);try{this.enterOuterAlt(e,1),this.state=2384,this.match(t.HOP),this.state=2385,this.match(t.LPAREN),this.state=2386,this.expr(),this.state=2387,this.match(t.COMMA),this.state=2388,this.expr(),this.state=2389,this.match(t.COMMA),this.state=2390,this.expr(),this.state=2391,this.match(t.COMMA),this.state=2392,this.expr(),this.state=2393,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}result_column(){let e=new hb(this.context,this.state);this.enterRule(e,336,t.RULE_result_column);try{switch(this.state=2404,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,224,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2395,this.opt_id_prefix(),this.state=2396,this.match(t.ASTERISK);break;case 2:switch(this.enterOuterAlt(e,2),this.state=2398,this.expr(),this.state=2402,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AS:this.state=2399,this.match(t.AS),this.state=2400,this.an_id_or_type();break;case t.ATTRIBUTES:case t.CONNECT:case t.CONSUMER:case t.DATA:case t.DESCRIBE:case t.DIRECTORY:case t.FIRST:case t.GRANT:case t.INITIAL:case t.LAST:case t.LEGACY:case t.MANAGE:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NEXT:case t.OMIT:case t.ONE:case t.OPTION:case t.PARALLEL:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PRIVILEGES:case t.QUEUE:case t.REMOVE:case t.REPLICATION:case t.REVOKE:case t.SECONDS:case t.SEEK:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBSET:case t.TABLES:case t.TOPIC:case t.TYPE:case t.UNMATCHED:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.state=2401,this.an_id_as_compat();case t.EOF:case t.SEMICOLON:case t.COMMA:case t.RPAREN:case t.ASSUME:case t.END:case t.EXCEPT:case t.FROM:case t.GROUP:case t.HAVING:case t.INTERSECT:case t.INTO:case t.LIMIT:case t.ORDER:case t.RETURNING:case t.UNION:case t.WHERE:case t.WINDOW:case t.WITHOUT:}}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}join_source(){let e,s=new Eb(this.context,this.state);this.enterRule(s,338,t.RULE_join_source);try{if(this.enterOuterAlt(s,1),1===(this.state=2407,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,225,this.context)))this.state=2406,this.match(t.ANY);for(this.state=2409,this.flatten_source(),this.state=2420,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e||88===e||126===e||143===e||!(e-165&-32)&&1<<e-165&268443777||212===e||251===e;){if(1===(this.state=2410,this.join_op(),this.state=2412,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,226,this.context)))this.state=2411,this.match(t.ANY);this.state=2414,this.flatten_source(),this.state=2416,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(204===e||303===e)&&(this.state=2415,this.join_constraint()),this.state=2422,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}named_column(){let e,s=new Tb(this.context,this.state);this.enterRule(s,340,t.RULE_named_column);try{this.enterOuterAlt(s,1),this.state=2423,this.column_name(),this.state=2426,this.errorHandler.sync(this),e=this.tokenStream.LA(1),55===e&&(this.state=2424,this.match(t.AS),this.state=2425,this.an_id())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}flatten_by_arg(){let e,s=new ob(this.context,this.state);this.enterRule(s,342,t.RULE_flatten_by_arg);try{switch(this.state=2436,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(s,1),this.state=2428,this.named_column();break;case t.LPAREN:this.enterOuterAlt(s,2),this.state=2429,this.match(t.LPAREN),this.state=2430,this.named_expr_list(),this.state=2432,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=2431,this.match(t.COMMA)),this.state=2434,this.match(t.RPAREN);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}flatten_source(){let e,s=new Rb(this.context,this.state);this.enterRule(s,344,t.RULE_flatten_source);try{if(this.enterOuterAlt(s,1),this.state=2438,this.named_single_source(),this.state=2448,this.errorHandler.sync(this),e=this.tokenStream.LA(1),137===e)switch(this.state=2439,this.match(t.FLATTEN),this.state=2446,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.BY:case t.DICT:case t.LIST:case t.OPTIONAL:this.state=2441,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(106===e||182===e||208===e)&&(this.state=2440,e=this.tokenStream.LA(1),106===e||182===e||208===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2443,this.match(t.BY),this.state=2444,this.flatten_by_arg();break;case t.COLUMNS:this.state=2445,this.match(t.COLUMNS);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}named_single_source(){let e,s=new Ab(this.context,this.state);this.enterRule(s,346,t.RULE_named_single_source);try{if(this.enterOuterAlt(s,1),1===(this.state=2450,this.single_source(),this.state=2452,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,235,this.context)))this.state=2451,this.row_pattern_recognition_clause();if(this.state=2462,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-55&-32)&&1<<e-55&1342177345||!(e-94&-32)&&1<<e-94&9217||!(e-136&-32)&&1<<e-136&134219777||!(e-177&-32)&&1<<e-177&1409482373||!(e-214&-32)&&1<<e-214&142647537||!(e-250&-32)&&1<<e-250&273091585||!(e-287&-32)&&1<<e-287&3758098465){switch(this.state=2457,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.AS:this.state=2454,this.match(t.AS),this.state=2455,this.an_id();break;case t.ATTRIBUTES:case t.CONNECT:case t.CONSUMER:case t.DATA:case t.DESCRIBE:case t.DIRECTORY:case t.FIRST:case t.GRANT:case t.INITIAL:case t.LAST:case t.LEGACY:case t.MANAGE:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NEXT:case t.OMIT:case t.ONE:case t.OPTION:case t.PARALLEL:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PRIVILEGES:case t.QUEUE:case t.REMOVE:case t.REPLICATION:case t.REVOKE:case t.SECONDS:case t.SEEK:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBSET:case t.TABLES:case t.TOPIC:case t.TYPE:case t.UNMATCHED:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.state=2456,this.an_id_as_compat();break;default:throw new Ei(this)}this.state=2460,this.errorHandler.sync(this),e=this.tokenStream.LA(1),27===e&&(this.state=2459,this.pure_column_list())}switch(this.state=2466,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SAMPLE:this.state=2464,this.sample_clause();break;case t.TABLESAMPLE:this.state=2465,this.tablesample_clause();case t.EOF:case t.SEMICOLON:case t.COMMA:case t.RPAREN:case t.ASSUME:case t.CROSS:case t.END:case t.EXCEPT:case t.EXCLUSION:case t.FLATTEN:case t.FULL:case t.GROUP:case t.HAVING:case t.INNER:case t.INTERSECT:case t.INTO:case t.JOIN:case t.LEFT:case t.LIMIT:case t.NATURAL:case t.ON:case t.ORDER:case t.OUTER:case t.PRESORT:case t.RETURNING:case t.RIGHT:case t.SELECT:case t.UNION:case t.USING:case t.WHERE:case t.WINDOW:}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}single_source(){let e=new Sb(this.context,this.state);this.enterRule(e,348,t.RULE_single_source);try{switch(this.state=2477,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,240,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2468,this.table_ref();break;case 2:this.enterOuterAlt(e,2),this.state=2469,this.match(t.LPAREN),this.state=2470,this.select_stmt(),this.state=2471,this.match(t.RPAREN);break;case 3:this.enterOuterAlt(e,3),this.state=2473,this.match(t.LPAREN),this.state=2474,this.values_stmt(),this.state=2475,this.match(t.RPAREN)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}sample_clause(){let e=new lb(this.context,this.state);this.enterRule(e,350,t.RULE_sample_clause);try{this.enterOuterAlt(e,1),this.state=2479,this.match(t.SAMPLE),this.state=2480,this.expr()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}tablesample_clause(){let e,s=new Ob(this.context,this.state);this.enterRule(s,352,t.RULE_tablesample_clause);try{this.enterOuterAlt(s,1),this.state=2482,this.match(t.TABLESAMPLE),this.state=2483,this.sampling_mode(),this.state=2484,this.match(t.LPAREN),this.state=2485,this.expr(),this.state=2486,this.match(t.RPAREN),this.state=2488,this.errorHandler.sync(this),e=this.tokenStream.LA(1),239===e&&(this.state=2487,this.repeatable_clause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}sampling_mode(){let e,s=new Ib(this.context,this.state);this.enterRule(s,354,t.RULE_sampling_mode);try{this.enterOuterAlt(s,1),this.state=2490,e=this.tokenStream.LA(1),66===e||276===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}repeatable_clause(){let e=new ub(this.context,this.state);this.enterRule(e,356,t.RULE_repeatable_clause);try{this.enterOuterAlt(e,1),this.state=2492,this.match(t.REPEATABLE),this.state=2493,this.match(t.LPAREN),this.state=2494,this.expr(),this.state=2495,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}join_op(){let e,s=new Nb(this.context,this.state);this.enterRule(s,358,t.RULE_join_op);try{switch(this.state=2521,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.COMMA:this.enterOuterAlt(s,1),this.state=2497,this.match(t.COMMA);break;case t.CROSS:case t.EXCLUSION:case t.FULL:case t.INNER:case t.JOIN:case t.LEFT:case t.NATURAL:case t.OUTER:case t.RIGHT:switch(this.enterOuterAlt(s,2),this.state=2499,this.errorHandler.sync(this),e=this.tokenStream.LA(1),193===e&&(this.state=2498,this.match(t.NATURAL)),this.state=2518,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.EXCLUSION:case t.FULL:case t.JOIN:case t.LEFT:case t.OUTER:case t.RIGHT:switch(this.state=2511,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LEFT:this.state=2501,this.match(t.LEFT),this.state=2503,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(206===e||263===e)&&(this.state=2502,e=this.tokenStream.LA(1),206===e||263===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this));break;case t.RIGHT:this.state=2505,this.match(t.RIGHT),this.state=2507,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(206===e||263===e)&&(this.state=2506,e=this.tokenStream.LA(1),206===e||263===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this));break;case t.EXCLUSION:this.state=2509,this.match(t.EXCLUSION);break;case t.FULL:this.state=2510,this.match(t.FULL);case t.JOIN:case t.OUTER:}this.state=2514,this.errorHandler.sync(this),e=this.tokenStream.LA(1),212===e&&(this.state=2513,this.match(t.OUTER));break;case t.INNER:this.state=2516,this.match(t.INNER);break;case t.CROSS:this.state=2517,this.match(t.CROSS);break;default:throw new Ei(this)}this.state=2520,this.match(t.JOIN);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}join_constraint(){let e=new Lb(this.context,this.state);this.enterRule(e,360,t.RULE_join_constraint);try{switch(this.state=2527,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ON:this.enterOuterAlt(e,1),this.state=2523,this.match(t.ON),this.state=2524,this.expr();break;case t.USING:this.enterOuterAlt(e,2),this.state=2525,this.match(t.USING),this.state=2526,this.pure_column_or_named_list();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}returning_columns_list(){let e,s=new Cb(this.context,this.state);this.enterRule(s,362,t.RULE_returning_columns_list);try{switch(this.enterOuterAlt(s,1),this.state=2529,this.match(t.RETURNING),this.state=2539,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ASTERISK:this.state=2530,this.match(t.ASTERISK);break;case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:for(this.state=2531,this.an_id(),this.state=2536,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2532,this.match(t.COMMA),this.state=2533,this.an_id(),this.state=2538,this.errorHandler.sync(this),e=this.tokenStream.LA(1);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}into_table_stmt(){let e,s=new _b(this.context,this.state);this.enterRule(s,364,t.RULE_into_table_stmt);try{switch(this.enterOuterAlt(s,1),this.state=2553,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,252,this.context)){case 1:this.state=2541,this.match(t.INSERT);break;case 2:this.state=2542,this.match(t.INSERT),this.state=2543,this.match(t.OR),this.state=2544,this.match(t.ABORT);break;case 3:this.state=2545,this.match(t.INSERT),this.state=2546,this.match(t.OR),this.state=2547,this.match(t.REVERT);break;case 4:this.state=2548,this.match(t.INSERT),this.state=2549,this.match(t.OR),this.state=2550,this.match(t.IGNORE);break;case 5:this.state=2551,this.match(t.UPSERT);break;case 6:this.state=2552,this.match(t.REPLACE)}this.state=2555,this.match(t.INTO),this.state=2556,this.into_simple_table_ref(),this.state=2557,this.into_values_source(),this.state=2559,this.errorHandler.sync(this),e=this.tokenStream.LA(1),248===e&&(this.state=2558,this.returning_columns_list())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}into_table_stmt_yq(){let e=new Pb(this.context,this.state);this.enterRule(e,366,t.RULE_into_table_stmt_yq);try{switch(this.enterOuterAlt(e,1),this.state=2572,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,254,this.context)){case 1:this.state=2561,this.match(t.INSERT);break;case 2:this.state=2562,this.match(t.INSERT),this.state=2563,this.match(t.OR),this.state=2564,this.match(t.ABORT);break;case 3:this.state=2565,this.match(t.INSERT),this.state=2566,this.match(t.OR),this.state=2567,this.match(t.REVERT);break;case 4:this.state=2568,this.match(t.INSERT),this.state=2569,this.match(t.OR),this.state=2570,this.match(t.IGNORE);break;case 5:this.state=2571,this.match(t.REPLACE)}this.state=2574,this.match(t.INTO),this.state=2575,this.into_simple_table_ref(),this.state=2576,this.into_values_source()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}into_values_source(){let e=new Mb(this.context,this.state);this.enterRule(e,368,t.RULE_into_values_source);try{switch(this.state=2584,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LPAREN:case t.DISCARD:case t.FROM:case t.PROCESS:case t.REDUCE:case t.SELECT:case t.VALUES:if(this.enterOuterAlt(e,1),1===(this.state=2579,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,255,this.context)))this.state=2578,this.pure_column_list();this.state=2581,this.values_source();break;case t.DEFAULT:this.enterOuterAlt(e,2),this.state=2582,this.match(t.DEFAULT),this.state=2583,this.match(t.VALUES);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}values_stmt(){let e=new db(this.context,this.state);this.enterRule(e,370,t.RULE_values_stmt);try{this.enterOuterAlt(e,1),this.state=2586,this.match(t.VALUES),this.state=2587,this.values_source_row_list()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}values_source(){let e=new Ub(this.context,this.state);this.enterRule(e,372,t.RULE_values_source);try{switch(this.state=2591,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.VALUES:this.enterOuterAlt(e,1),this.state=2589,this.values_stmt();break;case t.LPAREN:case t.DISCARD:case t.FROM:case t.PROCESS:case t.REDUCE:case t.SELECT:this.enterOuterAlt(e,2),this.state=2590,this.select_stmt();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}values_source_row_list(){let e,s=new mb(this.context,this.state);this.enterRule(s,374,t.RULE_values_source_row_list);try{for(this.enterOuterAlt(s,1),this.state=2593,this.values_source_row(),this.state=2598,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2594,this.match(t.COMMA),this.state=2595,this.values_source_row(),this.state=2600,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}values_source_row(){let e=new Db(this.context,this.state);this.enterRule(e,376,t.RULE_values_source_row);try{this.enterOuterAlt(e,1),this.state=2601,this.match(t.LPAREN),this.state=2602,this.expr_list(),this.state=2603,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}simple_values_source(){let e=new pb(this.context,this.state);this.enterRule(e,378,t.RULE_simple_values_source);try{switch(this.state=2607,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,259,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2605,this.expr_list();break;case 2:this.enterOuterAlt(e,2),this.state=2606,this.select_stmt()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}create_external_data_source_stmt(){let e,s=new gb(this.context,this.state);this.enterRule(s,380,t.RULE_create_external_data_source_stmt);try{if(this.enterOuterAlt(s,1),1===(this.state=2609,this.match(t.CREATE),this.state=2612,this.errorHandler.sync(this),e=this.tokenStream.LA(1),209===e&&(this.state=2610,this.match(t.OR),this.state=2611,this.match(t.REPLACE)),this.state=2614,this.match(t.EXTERNAL),this.state=2615,this.match(t.DATA),this.state=2616,this.match(t.SOURCE),this.state=2620,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,261,this.context)))this.state=2617,this.match(t.IF),this.state=2618,this.match(t.NOT),this.state=2619,this.match(t.EXISTS);this.state=2622,this.object_ref(),this.state=2623,this.with_table_settings()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alter_external_data_source_stmt(){let e,s=new xb(this.context,this.state);this.enterRule(s,382,t.RULE_alter_external_data_source_stmt);try{for(this.enterOuterAlt(s,1),this.state=2625,this.match(t.ALTER),this.state=2626,this.match(t.EXTERNAL),this.state=2627,this.match(t.DATA),this.state=2628,this.match(t.SOURCE),this.state=2629,this.object_ref(),this.state=2630,this.alter_external_data_source_action(),this.state=2635,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2631,this.match(t.COMMA),this.state=2632,this.alter_external_data_source_action(),this.state=2637,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alter_external_data_source_action(){let e=new kb(this.context,this.state);this.enterRule(e,384,t.RULE_alter_external_data_source_action);try{switch(this.state=2641,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,263,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2638,this.alter_table_set_table_setting_uncompat();break;case 2:this.enterOuterAlt(e,2),this.state=2639,this.alter_table_set_table_setting_compat();break;case 3:this.enterOuterAlt(e,3),this.state=2640,this.alter_table_reset_table_setting()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}drop_external_data_source_stmt(){let e=new Hb(this.context,this.state);this.enterRule(e,386,t.RULE_drop_external_data_source_stmt);try{if(this.enterOuterAlt(e,1),1===(this.state=2643,this.match(t.DROP),this.state=2644,this.match(t.EXTERNAL),this.state=2645,this.match(t.DATA),this.state=2646,this.match(t.SOURCE),this.state=2649,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,264,this.context)))this.state=2647,this.match(t.IF),this.state=2648,this.match(t.EXISTS);this.state=2651,this.object_ref()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}create_view_stmt(){let e=new Gb(this.context,this.state);this.enterRule(e,388,t.RULE_create_view_stmt);try{this.enterOuterAlt(e,1),this.state=2653,this.match(t.CREATE),this.state=2654,this.match(t.VIEW),this.state=2655,this.object_ref(),this.state=2656,this.with_table_settings(),this.state=2657,this.match(t.AS),this.state=2658,this.select_stmt()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}drop_view_stmt(){let e=new Fb(this.context,this.state);this.enterRule(e,390,t.RULE_drop_view_stmt);try{this.enterOuterAlt(e,1),this.state=2660,this.match(t.DROP),this.state=2661,this.match(t.VIEW),this.state=2662,this.object_ref()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}upsert_object_stmt(){let e,s=new vb(this.context,this.state);this.enterRule(s,392,t.RULE_upsert_object_stmt);try{this.enterOuterAlt(s,1),this.state=2664,this.match(t.UPSERT),this.state=2665,this.match(t.OBJECT),this.state=2666,this.object_ref(),this.state=2667,this.match(t.LPAREN),this.state=2668,this.match(t.TYPE),this.state=2669,this.object_type_ref(),this.state=2670,this.match(t.RPAREN),this.state=2672,this.errorHandler.sync(this),e=this.tokenStream.LA(1),312===e&&(this.state=2671,this.create_object_features())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}create_object_stmt(){let e,s=new Bb(this.context,this.state);this.enterRule(s,394,t.RULE_create_object_stmt);try{if(this.enterOuterAlt(s,1),1===(this.state=2674,this.match(t.CREATE),this.state=2675,this.match(t.OBJECT),this.state=2679,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,266,this.context)))this.state=2676,this.match(t.IF),this.state=2677,this.match(t.NOT),this.state=2678,this.match(t.EXISTS);this.state=2681,this.object_ref(),this.state=2682,this.match(t.LPAREN),this.state=2683,this.match(t.TYPE),this.state=2684,this.object_type_ref(),this.state=2685,this.match(t.RPAREN),this.state=2687,this.errorHandler.sync(this),e=this.tokenStream.LA(1),312===e&&(this.state=2686,this.create_object_features())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}create_object_features(){let e=new yb(this.context,this.state);this.enterRule(e,396,t.RULE_create_object_features);try{this.enterOuterAlt(e,1),this.state=2689,this.match(t.WITH),this.state=2690,this.object_features()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_object_stmt(){let e=new fb(this.context,this.state);this.enterRule(e,398,t.RULE_alter_object_stmt);try{this.enterOuterAlt(e,1),this.state=2692,this.match(t.ALTER),this.state=2693,this.match(t.OBJECT),this.state=2694,this.object_ref(),this.state=2695,this.match(t.LPAREN),this.state=2696,this.match(t.TYPE),this.state=2697,this.object_type_ref(),this.state=2698,this.match(t.RPAREN),this.state=2699,this.alter_object_features()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_object_features(){let e=new Yb(this.context,this.state);this.enterRule(e,400,t.RULE_alter_object_features);try{this.enterOuterAlt(e,1),this.state=2701,this.match(t.SET),this.state=2702,this.object_features()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}drop_object_stmt(){let e,s=new wb(this.context,this.state);this.enterRule(s,402,t.RULE_drop_object_stmt);try{if(this.enterOuterAlt(s,1),1===(this.state=2704,this.match(t.DROP),this.state=2705,this.match(t.OBJECT),this.state=2708,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,268,this.context)))this.state=2706,this.match(t.IF),this.state=2707,this.match(t.EXISTS);this.state=2710,this.object_ref(),this.state=2711,this.match(t.LPAREN),this.state=2712,this.match(t.TYPE),this.state=2713,this.object_type_ref(),this.state=2714,this.match(t.RPAREN),this.state=2716,this.errorHandler.sync(this),e=this.tokenStream.LA(1),312===e&&(this.state=2715,this.drop_object_features())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}drop_object_features(){let e=new bb(this.context,this.state);this.enterRule(e,404,t.RULE_drop_object_features);try{this.enterOuterAlt(e,1),this.state=2718,this.match(t.WITH),this.state=2719,this.object_features()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}object_feature_value(){let e=new Wb(this.context,this.state);this.enterRule(e,406,t.RULE_object_feature_value);try{switch(this.state=2724,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CALLABLE:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DICT:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ENUM:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FLOW:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LIST:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OPTIONAL:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESOURCE:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SET:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.STRUCT:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TAGGED:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TUPLE:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VARIANT:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=2721,this.id_or_type();break;case t.DOLLAR:this.enterOuterAlt(e,2),this.state=2722,this.bind_parameter();break;case t.STRING_VALUE:this.enterOuterAlt(e,3),this.state=2723,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}object_feature_kv(){let e=new Vb(this.context,this.state);this.enterRule(e,408,t.RULE_object_feature_kv);try{this.enterOuterAlt(e,1),this.state=2726,this.an_id_or_type(),this.state=2727,this.match(t.EQUALS),this.state=2728,this.object_feature_value()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}object_feature_flag(){let e=new Xb(this.context,this.state);this.enterRule(e,410,t.RULE_object_feature_flag);try{this.enterOuterAlt(e,1),this.state=2730,this.an_id_or_type()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}object_feature(){let e=new Kb(this.context,this.state);this.enterRule(e,412,t.RULE_object_feature);try{switch(this.state=2734,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,271,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2732,this.object_feature_kv();break;case 2:this.enterOuterAlt(e,2),this.state=2733,this.object_feature_flag()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}object_features(){let e,s=new Qb(this.context,this.state);this.enterRule(s,414,t.RULE_object_features);try{switch(this.state=2748,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CALLABLE:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DICT:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ENUM:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FLOW:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LIST:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OPTIONAL:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESOURCE:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SET:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.STRUCT:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TAGGED:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TUPLE:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VARIANT:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(s,1),this.state=2736,this.object_feature();break;case t.LPAREN:for(this.enterOuterAlt(s,2),this.state=2737,this.match(t.LPAREN),this.state=2738,this.object_feature(),this.state=2743,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2739,this.match(t.COMMA),this.state=2740,this.object_feature(),this.state=2745,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2746,this.match(t.RPAREN);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}object_type_ref(){let e=new Jb(this.context,this.state);this.enterRule(e,416,t.RULE_object_type_ref);try{this.enterOuterAlt(e,1),this.state=2750,this.an_id_or_type()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}create_table_stmt(){let e,s=new Zb(this.context,this.state);this.enterRule(s,418,t.RULE_create_table_stmt);try{let a;switch(this.enterOuterAlt(s,1),this.state=2752,this.match(t.CREATE),this.state=2755,this.errorHandler.sync(this),e=this.tokenStream.LA(1),209===e&&(this.state=2753,this.match(t.OR),this.state=2754,this.match(t.REPLACE)),this.state=2765,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.TABLE:this.state=2757,this.match(t.TABLE);break;case t.TABLESTORE:this.state=2758,this.match(t.TABLESTORE);break;case t.EXTERNAL:this.state=2759,this.match(t.EXTERNAL),this.state=2760,this.match(t.TABLE);break;case t.TEMP:this.state=2761,this.match(t.TEMP),this.state=2762,this.match(t.TABLE);break;case t.TEMPORARY:this.state=2763,this.match(t.TEMPORARY),this.state=2764,this.match(t.TABLE);break;default:throw new Ei(this)}if(1===(this.state=2770,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,276,this.context)))this.state=2767,this.match(t.IF),this.state=2768,this.match(t.NOT),this.state=2769,this.match(t.EXISTS);for(this.state=2772,this.simple_table_ref(),this.state=2773,this.match(t.LPAREN),this.state=2774,this.create_table_entry(),this.state=2779,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,277,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=2775,this.match(t.COMMA),this.state=2776,this.create_table_entry()),this.state=2781,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,277,this.context);this.state=2783,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=2782,this.match(t.COMMA)),this.state=2785,this.match(t.RPAREN),this.state=2787,this.errorHandler.sync(this),e=this.tokenStream.LA(1),162===e&&(this.state=2786,this.table_inherits()),this.state=2790,this.errorHandler.sync(this),e=this.tokenStream.LA(1),215===e&&(this.state=2789,this.table_partition_by()),this.state=2793,this.errorHandler.sync(this),e=this.tokenStream.LA(1),312===e&&(this.state=2792,this.with_table_settings()),this.state=2796,this.errorHandler.sync(this),e=this.tokenStream.LA(1),280===e&&(this.state=2795,this.table_tablestore()),this.state=2799,this.errorHandler.sync(this),e=this.tokenStream.LA(1),55===e&&(this.state=2798,this.table_as_source())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}create_table_entry(){let e=new qb(this.context,this.state);this.enterRule(e,420,t.RULE_create_table_entry);try{switch(this.state=2807,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,284,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2801,this.column_schema();break;case 2:this.enterOuterAlt(e,2),this.state=2802,this.table_constraint();break;case 3:this.enterOuterAlt(e,3),this.state=2803,this.table_index();break;case 4:this.enterOuterAlt(e,4),this.state=2804,this.family_entry();break;case 5:this.enterOuterAlt(e,5),this.state=2805,this.changefeed();break;case 6:this.enterOuterAlt(e,6),this.state=2806,this.an_id_schema()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}table_inherits(){let e,s=new jb(this.context,this.state);this.enterRule(s,422,t.RULE_table_inherits);try{for(this.enterOuterAlt(s,1),this.state=2809,this.match(t.INHERITS),this.state=2810,this.match(t.LPAREN),this.state=2811,this.simple_table_ref_core(),this.state=2816,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2812,this.match(t.COMMA),this.state=2813,this.simple_table_ref_core(),this.state=2818,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2819,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}table_partition_by(){let e=new zb(this.context,this.state);this.enterRule(e,424,t.RULE_table_partition_by);try{this.enterOuterAlt(e,1),this.state=2821,this.match(t.PARTITION),this.state=2822,this.match(t.BY),this.state=2823,this.match(t.HASH),this.state=2824,this.pure_column_list()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}with_table_settings(){let e,s=new $b(this.context,this.state);this.enterRule(s,426,t.RULE_with_table_settings);try{for(this.enterOuterAlt(s,1),this.state=2826,this.match(t.WITH),this.state=2827,this.match(t.LPAREN),this.state=2828,this.table_settings_entry(),this.state=2833,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2829,this.match(t.COMMA),this.state=2830,this.table_settings_entry(),this.state=2835,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2836,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}table_tablestore(){let e=new tW(this.context,this.state);this.enterRule(e,428,t.RULE_table_tablestore);try{this.enterOuterAlt(e,1),this.state=2838,this.match(t.TABLESTORE),this.state=2839,this.simple_table_ref_core()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}table_settings_entry(){let e=new eW(this.context,this.state);this.enterRule(e,430,t.RULE_table_settings_entry);try{this.enterOuterAlt(e,1),this.state=2841,this.an_id(),this.state=2842,this.match(t.EQUALS),this.state=2843,this.table_setting_value()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}table_as_source(){let e=new sW(this.context,this.state);this.enterRule(e,432,t.RULE_table_as_source);try{this.enterOuterAlt(e,1),this.state=2845,this.match(t.AS),this.state=2846,this.values_source()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_stmt(){let e,s=new aW(this.context,this.state);this.enterRule(s,434,t.RULE_alter_table_stmt);try{for(this.enterOuterAlt(s,1),this.state=2848,this.match(t.ALTER),this.state=2849,this.match(t.TABLE),this.state=2850,this.simple_table_ref(),this.state=2851,this.alter_table_action(),this.state=2856,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2852,this.match(t.COMMA),this.state=2853,this.alter_table_action(),this.state=2858,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alter_table_action(){let e=new rW(this.context,this.state);this.enterRule(e,436,t.RULE_alter_table_action);try{switch(this.state=2874,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,288,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2859,this.alter_table_add_column();break;case 2:this.enterOuterAlt(e,2),this.state=2860,this.alter_table_drop_column();break;case 3:this.enterOuterAlt(e,3),this.state=2861,this.alter_table_alter_column();break;case 4:this.enterOuterAlt(e,4),this.state=2862,this.alter_table_add_column_family();break;case 5:this.enterOuterAlt(e,5),this.state=2863,this.alter_table_alter_column_family();break;case 6:this.enterOuterAlt(e,6),this.state=2864,this.alter_table_set_table_setting_uncompat();break;case 7:this.enterOuterAlt(e,7),this.state=2865,this.alter_table_set_table_setting_compat();break;case 8:this.enterOuterAlt(e,8),this.state=2866,this.alter_table_reset_table_setting();break;case 9:this.enterOuterAlt(e,9),this.state=2867,this.alter_table_add_index();break;case 10:this.enterOuterAlt(e,10),this.state=2868,this.alter_table_drop_index();break;case 11:this.enterOuterAlt(e,11),this.state=2869,this.alter_table_rename_to();break;case 12:this.enterOuterAlt(e,12),this.state=2870,this.alter_table_add_changefeed();break;case 13:this.enterOuterAlt(e,13),this.state=2871,this.alter_table_alter_changefeed();break;case 14:this.enterOuterAlt(e,14),this.state=2872,this.alter_table_drop_changefeed();break;case 15:this.enterOuterAlt(e,15),this.state=2873,this.alter_table_rename_index_to()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_external_table_stmt(){let e,s=new iW(this.context,this.state);this.enterRule(s,438,t.RULE_alter_external_table_stmt);try{for(this.enterOuterAlt(s,1),this.state=2876,this.match(t.ALTER),this.state=2877,this.match(t.EXTERNAL),this.state=2878,this.match(t.TABLE),this.state=2879,this.simple_table_ref(),this.state=2880,this.alter_external_table_action(),this.state=2885,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2881,this.match(t.COMMA),this.state=2882,this.alter_external_table_action(),this.state=2887,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alter_external_table_action(){let e=new cW(this.context,this.state);this.enterRule(e,440,t.RULE_alter_external_table_action);try{switch(this.state=2893,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,290,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2888,this.alter_table_add_column();break;case 2:this.enterOuterAlt(e,2),this.state=2889,this.alter_table_drop_column();break;case 3:this.enterOuterAlt(e,3),this.state=2890,this.alter_table_set_table_setting_uncompat();break;case 4:this.enterOuterAlt(e,4),this.state=2891,this.alter_table_set_table_setting_compat();break;case 5:this.enterOuterAlt(e,5),this.state=2892,this.alter_table_reset_table_setting()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_store_stmt(){let e,s=new nW(this.context,this.state);this.enterRule(s,442,t.RULE_alter_table_store_stmt);try{for(this.enterOuterAlt(s,1),this.state=2895,this.match(t.ALTER),this.state=2896,this.match(t.TABLESTORE),this.state=2897,this.object_ref(),this.state=2898,this.alter_table_store_action(),this.state=2903,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2899,this.match(t.COMMA),this.state=2900,this.alter_table_store_action(),this.state=2905,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alter_table_store_action(){let e=new hW(this.context,this.state);this.enterRule(e,444,t.RULE_alter_table_store_action);try{switch(this.state=2908,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ADD:this.enterOuterAlt(e,1),this.state=2906,this.alter_table_add_column();break;case t.DROP:this.enterOuterAlt(e,2),this.state=2907,this.alter_table_drop_column();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_add_column(){let e,s=new EW(this.context,this.state);this.enterRule(s,446,t.RULE_alter_table_add_column);try{this.enterOuterAlt(s,1),this.state=2910,this.match(t.ADD),this.state=2912,this.errorHandler.sync(this),e=this.tokenStream.LA(1),77===e&&(this.state=2911,this.match(t.COLUMN)),this.state=2914,this.column_schema()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alter_table_drop_column(){let e=new TW(this.context,this.state);this.enterRule(e,448,t.RULE_alter_table_drop_column);try{if(this.enterOuterAlt(e,1),1===(this.state=2916,this.match(t.DROP),this.state=2918,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,294,this.context)))this.state=2917,this.match(t.COLUMN);this.state=2920,this.an_id()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_alter_column(){let e=new oW(this.context,this.state);this.enterRule(e,450,t.RULE_alter_table_alter_column);try{this.enterOuterAlt(e,1),this.state=2922,this.match(t.ALTER),this.state=2923,this.match(t.COLUMN),this.state=2924,this.an_id(),this.state=2925,this.match(t.SET),this.state=2926,this.family_relation()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_add_column_family(){let e=new RW(this.context,this.state);this.enterRule(e,452,t.RULE_alter_table_add_column_family);try{this.enterOuterAlt(e,1),this.state=2928,this.match(t.ADD),this.state=2929,this.family_entry()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_alter_column_family(){let e=new AW(this.context,this.state);this.enterRule(e,454,t.RULE_alter_table_alter_column_family);try{this.enterOuterAlt(e,1),this.state=2931,this.match(t.ALTER),this.state=2932,this.match(t.FAMILY),this.state=2933,this.an_id(),this.state=2934,this.match(t.SET),this.state=2935,this.an_id(),this.state=2936,this.family_setting_value()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_set_table_setting_uncompat(){let e=new SW(this.context,this.state);this.enterRule(e,456,t.RULE_alter_table_set_table_setting_uncompat);try{this.enterOuterAlt(e,1),this.state=2938,this.match(t.SET),this.state=2939,this.an_id(),this.state=2940,this.table_setting_value()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_set_table_setting_compat(){let e,s=new lW(this.context,this.state);this.enterRule(s,458,t.RULE_alter_table_set_table_setting_compat);try{for(this.enterOuterAlt(s,1),this.state=2942,this.match(t.SET),this.state=2943,this.match(t.LPAREN),this.state=2944,this.alter_table_setting_entry(),this.state=2949,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2945,this.match(t.COMMA),this.state=2946,this.alter_table_setting_entry(),this.state=2951,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2952,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alter_table_reset_table_setting(){let e,s=new OW(this.context,this.state);this.enterRule(s,460,t.RULE_alter_table_reset_table_setting);try{for(this.enterOuterAlt(s,1),this.state=2954,this.match(t.RESET),this.state=2955,this.match(t.LPAREN),this.state=2956,this.an_id(),this.state=2961,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=2957,this.match(t.COMMA),this.state=2958,this.an_id(),this.state=2963,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=2964,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alter_table_add_index(){let e=new IW(this.context,this.state);this.enterRule(e,462,t.RULE_alter_table_add_index);try{this.enterOuterAlt(e,1),this.state=2966,this.match(t.ADD),this.state=2967,this.table_index()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_drop_index(){let e=new uW(this.context,this.state);this.enterRule(e,464,t.RULE_alter_table_drop_index);try{this.enterOuterAlt(e,1),this.state=2969,this.match(t.DROP),this.state=2970,this.match(t.INDEX),this.state=2971,this.an_id()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_rename_to(){let e=new NW(this.context,this.state);this.enterRule(e,466,t.RULE_alter_table_rename_to);try{this.enterOuterAlt(e,1),this.state=2973,this.match(t.RENAME),this.state=2974,this.match(t.TO),this.state=2975,this.an_id_table()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_rename_index_to(){let e=new LW(this.context,this.state);this.enterRule(e,468,t.RULE_alter_table_rename_index_to);try{this.enterOuterAlt(e,1),this.state=2977,this.match(t.RENAME),this.state=2978,this.match(t.INDEX),this.state=2979,this.an_id(),this.state=2980,this.match(t.TO),this.state=2981,this.an_id()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_add_changefeed(){let e=new CW(this.context,this.state);this.enterRule(e,470,t.RULE_alter_table_add_changefeed);try{this.enterOuterAlt(e,1),this.state=2983,this.match(t.ADD),this.state=2984,this.changefeed()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_alter_changefeed(){let e=new _W(this.context,this.state);this.enterRule(e,472,t.RULE_alter_table_alter_changefeed);try{this.enterOuterAlt(e,1),this.state=2986,this.match(t.ALTER),this.state=2987,this.match(t.CHANGEFEED),this.state=2988,this.an_id(),this.state=2989,this.changefeed_alter_settings()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_drop_changefeed(){let e=new PW(this.context,this.state);this.enterRule(e,474,t.RULE_alter_table_drop_changefeed);try{this.enterOuterAlt(e,1),this.state=2991,this.match(t.DROP),this.state=2992,this.match(t.CHANGEFEED),this.state=2993,this.an_id()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}column_schema(){let e,s=new MW(this.context,this.state);this.enterRule(s,476,t.RULE_column_schema);try{this.enterOuterAlt(s,1),this.state=2995,this.an_id_schema(),this.state=2996,this.type_name_or_bind(),this.state=2998,this.errorHandler.sync(this),e=this.tokenStream.LA(1),134===e&&(this.state=2997,this.family_relation()),this.state=3e3,this.opt_column_constraints()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}family_relation(){let e=new dW(this.context,this.state);this.enterRule(e,478,t.RULE_family_relation);try{this.enterOuterAlt(e,1),this.state=3002,this.match(t.FAMILY),this.state=3003,this.an_id()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}opt_column_constraints(){let e,s=new UW(this.context,this.state);this.enterRule(s,480,t.RULE_opt_column_constraints);try{this.enterOuterAlt(s,1),this.state=3009,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(196===e||198===e)&&(this.state=3006,this.errorHandler.sync(this),e=this.tokenStream.LA(1),196===e&&(this.state=3005,this.match(t.NOT)),this.state=3008,this.match(t.NULL)),this.state=3013,this.errorHandler.sync(this),e=this.tokenStream.LA(1),98===e&&(this.state=3011,this.match(t.DEFAULT),this.state=3012,this.expr())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}column_order_by_specification(){let e,s=new mW(this.context,this.state);this.enterRule(s,482,t.RULE_column_order_by_specification);try{this.enterOuterAlt(s,1),this.state=3015,this.an_id(),this.state=3017,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(56===e||103===e)&&(this.state=3016,e=this.tokenStream.LA(1),56===e||103===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}table_constraint(){let e,s=new DW(this.context,this.state);this.enterRule(s,484,t.RULE_table_constraint);try{switch(this.state=3058,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.PRIMARY:for(this.enterOuterAlt(s,1),this.state=3019,this.match(t.PRIMARY),this.state=3020,this.match(t.KEY),this.state=3021,this.match(t.LPAREN),this.state=3022,this.an_id(),this.state=3027,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3023,this.match(t.COMMA),this.state=3024,this.an_id(),this.state=3029,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3030,this.match(t.RPAREN);break;case t.PARTITION:for(this.enterOuterAlt(s,2),this.state=3032,this.match(t.PARTITION),this.state=3033,this.match(t.BY),this.state=3034,this.match(t.LPAREN),this.state=3035,this.an_id(),this.state=3040,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3036,this.match(t.COMMA),this.state=3037,this.an_id(),this.state=3042,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3043,this.match(t.RPAREN);break;case t.ORDER:for(this.enterOuterAlt(s,3),this.state=3045,this.match(t.ORDER),this.state=3046,this.match(t.BY),this.state=3047,this.match(t.LPAREN),this.state=3048,this.column_order_by_specification(),this.state=3053,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3049,this.match(t.COMMA),this.state=3050,this.column_order_by_specification(),this.state=3055,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3056,this.match(t.RPAREN);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}table_index(){let e,s=new pW(this.context,this.state);this.enterRule(s,486,t.RULE_table_index);try{let a;if(this.enterOuterAlt(s,1),this.state=3060,this.match(t.INDEX),this.state=3061,this.an_id(),this.state=3062,this.table_index_type(),this.state=3083,this.errorHandler.sync(this),e=this.tokenStream.LA(1),312===e){for(this.state=3063,this.match(t.WITH),this.state=3064,this.match(t.LPAREN),this.state=3065,this.an_id(),this.state=3066,this.match(t.EQUALS),this.state=3067,this.an_id(),this.state=3075,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,306,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3068,this.match(t.COMMA),this.state=3069,this.an_id(),this.state=3070,this.match(t.EQUALS),this.state=3071,this.an_id()),this.state=3077,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,306,this.context);this.state=3079,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=3078,this.match(t.COMMA)),this.state=3081,this.match(t.RPAREN)}for(this.state=3085,this.match(t.ON),this.state=3086,this.match(t.LPAREN),this.state=3087,this.an_id_schema(),this.state=3092,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3088,this.match(t.COMMA),this.state=3089,this.an_id_schema(),this.state=3094,this.errorHandler.sync(this),e=this.tokenStream.LA(1);if(this.state=3095,this.match(t.RPAREN),this.state=3108,this.errorHandler.sync(this),e=this.tokenStream.LA(1),86===e){for(this.state=3096,this.match(t.COVER),this.state=3097,this.match(t.LPAREN),this.state=3098,this.an_id_schema(),this.state=3103,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3099,this.match(t.COMMA),this.state=3100,this.an_id_schema(),this.state=3105,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3106,this.match(t.RPAREN)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}table_index_type(){let e=new gW(this.context,this.state);this.enterRule(e,488,t.RULE_table_index_type);try{switch(this.state=3112,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.GLOBAL:this.enterOuterAlt(e,1),this.state=3110,this.global_index();break;case t.LOCAL:this.enterOuterAlt(e,2),this.state=3111,this.local_index();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}global_index(){let e,s=new xW(this.context,this.state);this.enterRule(s,490,t.RULE_global_index);try{this.enterOuterAlt(s,1),this.state=3114,this.match(t.GLOBAL),this.state=3116,this.errorHandler.sync(this),e=this.tokenStream.LA(1),296===e&&(this.state=3115,this.match(t.UNIQUE)),this.state=3119,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(59===e||275===e)&&(this.state=3118,e=this.tokenStream.LA(1),59===e||275===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}local_index(){let e=new kW(this.context,this.state);this.enterRule(e,492,t.RULE_local_index);try{this.enterOuterAlt(e,1),this.state=3121,this.match(t.LOCAL)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}changefeed(){let e=new HW(this.context,this.state);this.enterRule(e,494,t.RULE_changefeed);try{this.enterOuterAlt(e,1),this.state=3123,this.match(t.CHANGEFEED),this.state=3124,this.an_id(),this.state=3125,this.match(t.WITH),this.state=3126,this.match(t.LPAREN),this.state=3127,this.changefeed_settings(),this.state=3128,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}changefeed_settings(){let e,s=new GW(this.context,this.state);this.enterRule(s,496,t.RULE_changefeed_settings);try{for(this.enterOuterAlt(s,1),this.state=3130,this.changefeed_settings_entry(),this.state=3135,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3131,this.match(t.COMMA),this.state=3132,this.changefeed_settings_entry(),this.state=3137,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}changefeed_settings_entry(){let e=new FW(this.context,this.state);this.enterRule(e,498,t.RULE_changefeed_settings_entry);try{this.enterOuterAlt(e,1),this.state=3138,this.an_id(),this.state=3139,this.match(t.EQUALS),this.state=3140,this.changefeed_setting_value()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}changefeed_setting_value(){let e=new vW(this.context,this.state);this.enterRule(e,500,t.RULE_changefeed_setting_value);try{this.enterOuterAlt(e,1),this.state=3142,this.expr()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}changefeed_alter_settings(){let e=new BW(this.context,this.state);this.enterRule(e,502,t.RULE_changefeed_alter_settings);try{switch(this.state=3150,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DISABLE:this.enterOuterAlt(e,1),this.state=3144,this.match(t.DISABLE);break;case t.SET:this.enterOuterAlt(e,2),this.state=3145,this.match(t.SET),this.state=3146,this.match(t.LPAREN),this.state=3147,this.changefeed_settings(),this.state=3148,this.match(t.RPAREN);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_setting_entry(){let e=new yW(this.context,this.state);this.enterRule(e,504,t.RULE_alter_table_setting_entry);try{this.enterOuterAlt(e,1),this.state=3152,this.an_id(),this.state=3153,this.match(t.EQUALS),this.state=3154,this.table_setting_value()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}table_setting_value(){let e,s=new fW(this.context,this.state);this.enterRule(s,506,t.RULE_table_setting_value);try{switch(this.state=3168,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,318,this.context)){case 1:this.enterOuterAlt(s,1),this.state=3156,this.id();break;case 2:this.enterOuterAlt(s,2),this.state=3157,this.match(t.STRING_VALUE);break;case 3:this.enterOuterAlt(s,3),this.state=3158,this.integer();break;case 4:this.enterOuterAlt(s,4),this.state=3159,this.split_boundaries();break;case 5:this.enterOuterAlt(s,5),this.state=3160,this.expr(),this.state=3161,this.match(t.ON),this.state=3162,this.an_id(),this.state=3165,this.errorHandler.sync(this),e=this.tokenStream.LA(1),55===e&&(this.state=3163,this.match(t.AS),this.state=3164,e=this.tokenStream.LA(1),!(e-189&-32)&&1<<e-189&11||260===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this));break;case 6:this.enterOuterAlt(s,6),this.state=3167,this.bool_value()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}family_entry(){let e=new YW(this.context,this.state);this.enterRule(e,508,t.RULE_family_entry);try{this.enterOuterAlt(e,1),this.state=3170,this.match(t.FAMILY),this.state=3171,this.an_id(),this.state=3172,this.family_settings()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}family_settings(){let e,s=new wW(this.context,this.state);this.enterRule(s,510,t.RULE_family_settings);try{if(this.enterOuterAlt(s,1),this.state=3174,this.match(t.LPAREN),this.state=3183,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-44&-32)&&1<<e-44&4227334143||!(e-76&-32)&&1<<e-76&3221225471||!(e-108&-32)&&1<<e-108&3187668991||!(e-140&-32)&&1<<e-140&4294967231||!(e-172&-32)&&1<<e-172&4294966271||!(e-204&-32)&&1<<e-204&4294967279||!(e-236&-32)&&1<<e-236&4026531703||!(e-268&-32)&&1<<e-268&4282376187||!(e-300&-32)&&1<<e-300&524223)for(this.state=3175,this.family_settings_entry(),this.state=3180,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3176,this.match(t.COMMA),this.state=3177,this.family_settings_entry(),this.state=3182,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3185,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}family_settings_entry(){let e=new bW(this.context,this.state);this.enterRule(e,512,t.RULE_family_settings_entry);try{this.enterOuterAlt(e,1),this.state=3187,this.an_id(),this.state=3188,this.match(t.EQUALS),this.state=3189,this.family_setting_value()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}family_setting_value(){let e=new WW(this.context,this.state);this.enterRule(e,514,t.RULE_family_setting_value);try{this.enterOuterAlt(e,1),this.state=3191,this.match(t.STRING_VALUE)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}split_boundaries(){let e,s=new VW(this.context,this.state);this.enterRule(s,516,t.RULE_split_boundaries);try{switch(this.state=3205,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,322,this.context)){case 1:for(this.enterOuterAlt(s,1),this.state=3193,this.match(t.LPAREN),this.state=3194,this.literal_value_list(),this.state=3199,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3195,this.match(t.COMMA),this.state=3196,this.literal_value_list(),this.state=3201,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3202,this.match(t.RPAREN);break;case 2:this.enterOuterAlt(s,2),this.state=3204,this.literal_value_list()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}literal_value_list(){let e,s=new XW(this.context,this.state);this.enterRule(s,518,t.RULE_literal_value_list);try{for(this.enterOuterAlt(s,1),this.state=3207,this.match(t.LPAREN),this.state=3208,this.literal_value(),this.state=3213,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3209,this.match(t.COMMA),this.state=3210,this.literal_value(),this.state=3215,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3216,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}drop_table_stmt(){let e=new KW(this.context,this.state);this.enterRule(e,520,t.RULE_drop_table_stmt);try{switch(this.enterOuterAlt(e,1),this.state=3218,this.match(t.DROP),this.state=3223,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.TABLE:this.state=3219,this.match(t.TABLE);break;case t.TABLESTORE:this.state=3220,this.match(t.TABLESTORE);break;case t.EXTERNAL:this.state=3221,this.match(t.EXTERNAL),this.state=3222,this.match(t.TABLE);break;default:throw new Ei(this)}if(1===(this.state=3227,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,325,this.context)))this.state=3225,this.match(t.IF),this.state=3226,this.match(t.EXISTS);this.state=3229,this.simple_table_ref()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}create_user_stmt(){let e,s=new QW(this.context,this.state);this.enterRule(s,522,t.RULE_create_user_stmt);try{this.enterOuterAlt(s,1),this.state=3231,this.match(t.CREATE),this.state=3232,this.match(t.USER),this.state=3233,this.role_name(),this.state=3235,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(117===e||217===e)&&(this.state=3234,this.create_user_option())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alter_user_stmt(){let e,s=new JW(this.context,this.state);this.enterRule(s,524,t.RULE_alter_user_stmt);try{switch(this.enterOuterAlt(s,1),this.state=3237,this.match(t.ALTER),this.state=3238,this.match(t.USER),this.state=3239,this.role_name(),this.state=3247,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ENCRYPTED:case t.PASSWORD:case t.WITH:this.state=3241,this.errorHandler.sync(this),e=this.tokenStream.LA(1),312===e&&(this.state=3240,this.match(t.WITH)),this.state=3243,this.create_user_option();break;case t.RENAME:this.state=3244,this.match(t.RENAME),this.state=3245,this.match(t.TO),this.state=3246,this.role_name();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}create_group_stmt(){let e,s=new ZW(this.context,this.state);this.enterRule(s,526,t.RULE_create_group_stmt);try{let a;if(this.enterOuterAlt(s,1),this.state=3249,this.match(t.CREATE),this.state=3250,this.match(t.GROUP),this.state=3251,this.role_name(),this.state=3265,this.errorHandler.sync(this),e=this.tokenStream.LA(1),312===e){for(this.state=3252,this.match(t.WITH),this.state=3253,this.match(t.USER),this.state=3254,this.role_name(),this.state=3259,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,329,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3255,this.match(t.COMMA),this.state=3256,this.role_name()),this.state=3261,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,329,this.context);this.state=3263,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=3262,this.match(t.COMMA))}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alter_group_stmt(){let e,s=new qW(this.context,this.state);this.enterRule(s,528,t.RULE_alter_group_stmt);try{let a;switch(this.enterOuterAlt(s,1),this.state=3267,this.match(t.ALTER),this.state=3268,this.match(t.GROUP),this.state=3269,this.role_name(),this.state=3286,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ADD:case t.DROP:for(this.state=3270,e=this.tokenStream.LA(1),46===e||112===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3271,this.match(t.USER),this.state=3272,this.role_name(),this.state=3277,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,332,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3273,this.match(t.COMMA),this.state=3274,this.role_name()),this.state=3279,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,332,this.context);this.state=3281,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=3280,this.match(t.COMMA));break;case t.RENAME:this.state=3283,this.match(t.RENAME),this.state=3284,this.match(t.TO),this.state=3285,this.role_name();break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}drop_role_stmt(){let e,s=new jW(this.context,this.state);this.enterRule(s,530,t.RULE_drop_role_stmt);try{let a;if(this.enterOuterAlt(s,1),1===(this.state=3288,this.match(t.DROP),this.state=3289,e=this.tokenStream.LA(1),148===e||302===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3292,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,335,this.context)))this.state=3290,this.match(t.IF),this.state=3291,this.match(t.EXISTS);for(this.state=3294,this.role_name(),this.state=3299,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,336,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3295,this.match(t.COMMA),this.state=3296,this.role_name()),this.state=3301,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,336,this.context);this.state=3303,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=3302,this.match(t.COMMA))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}role_name(){let e=new zW(this.context,this.state);this.enterRule(e,532,t.RULE_role_name);try{switch(this.state=3307,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CALLABLE:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DICT:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ENUM:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FLOW:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LIST:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OPTIONAL:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESOURCE:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SET:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.STRUCT:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TAGGED:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TUPLE:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VARIANT:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=3305,this.an_id_or_type();break;case t.DOLLAR:this.enterOuterAlt(e,2),this.state=3306,this.bind_parameter();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}create_user_option(){let e,s=new $W(this.context,this.state);this.enterRule(s,534,t.RULE_create_user_option);try{this.enterOuterAlt(s,1),this.state=3310,this.errorHandler.sync(this),e=this.tokenStream.LA(1),117===e&&(this.state=3309,this.match(t.ENCRYPTED)),this.state=3312,this.match(t.PASSWORD),this.state=3313,this.expr()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}grant_permissions_stmt(){let e,s=new tV(this.context,this.state);this.enterRule(s,536,t.RULE_grant_permissions_stmt);try{let a;for(this.enterOuterAlt(s,1),this.state=3315,this.match(t.GRANT),this.state=3316,this.permission_name_target(),this.state=3317,this.match(t.ON),this.state=3318,this.an_id_schema(),this.state=3323,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3319,this.match(t.COMMA),this.state=3320,this.an_id_schema(),this.state=3325,this.errorHandler.sync(this),e=this.tokenStream.LA(1);for(this.state=3326,this.match(t.TO),this.state=3327,this.role_name(),this.state=3332,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,341,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3328,this.match(t.COMMA),this.state=3329,this.role_name()),this.state=3334,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,341,this.context);this.state=3336,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=3335,this.match(t.COMMA)),this.state=3341,this.errorHandler.sync(this),e=this.tokenStream.LA(1),312===e&&(this.state=3338,this.match(t.WITH),this.state=3339,this.match(t.GRANT),this.state=3340,this.match(t.OPTION))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}revoke_permissions_stmt(){let e,s=new eV(this.context,this.state);this.enterRule(s,538,t.RULE_revoke_permissions_stmt);try{if(this.enterOuterAlt(s,1),1===(this.state=3343,this.match(t.REVOKE),this.state=3347,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,344,this.context)))this.state=3344,this.match(t.GRANT),this.state=3345,this.match(t.OPTION),this.state=3346,this.match(t.FOR);for(this.state=3349,this.permission_name_target(),this.state=3350,this.match(t.ON),this.state=3351,this.an_id_schema(),this.state=3356,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3352,this.match(t.COMMA),this.state=3353,this.an_id_schema(),this.state=3358,this.errorHandler.sync(this),e=this.tokenStream.LA(1);for(this.state=3359,this.match(t.FROM),this.state=3360,this.role_name(),this.state=3365,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3361,this.match(t.COMMA),this.state=3362,this.role_name(),this.state=3367,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}permission_id(){let e,s=new sV(this.context,this.state);this.enterRule(s,540,t.RULE_permission_id);try{switch(this.state=3392,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.CONNECT:this.enterOuterAlt(s,1),this.state=3368,this.match(t.CONNECT);break;case t.LIST:this.enterOuterAlt(s,2),this.state=3369,this.match(t.LIST);break;case t.INSERT:this.enterOuterAlt(s,3),this.state=3370,this.match(t.INSERT);break;case t.MANAGE:this.enterOuterAlt(s,4),this.state=3371,this.match(t.MANAGE);break;case t.DROP:this.enterOuterAlt(s,5),this.state=3372,this.match(t.DROP);break;case t.GRANT:this.enterOuterAlt(s,6),this.state=3373,this.match(t.GRANT);break;case t.MODIFY:this.enterOuterAlt(s,7),this.state=3374,this.match(t.MODIFY),this.state=3375,e=this.tokenStream.LA(1),61===e||278===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case t.ERASE:case t.UPDATE:this.enterOuterAlt(s,8),this.state=3376,e=this.tokenStream.LA(1),120===e||299===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3377,this.match(t.ROW);break;case t.ALTER:case t.DESCRIBE:case t.REMOVE:this.enterOuterAlt(s,9),this.state=3378,e=this.tokenStream.LA(1),49===e||104===e||237===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3379,this.match(t.SCHEMA);break;case t.SELECT:this.enterOuterAlt(s,10),this.state=3380,this.match(t.SELECT),this.state=3382,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(61===e||255===e||278===e)&&(this.state=3381,e=this.tokenStream.LA(1),61===e||255===e||278===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this));break;case t.FULL:case t.USE:this.enterOuterAlt(s,11),this.state=3384,e=this.tokenStream.LA(1),143===e||301===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3386,this.errorHandler.sync(this),e=this.tokenStream.LA(1),179===e&&(this.state=3385,this.match(t.LEGACY));break;case t.CREATE:this.enterOuterAlt(s,12),this.state=3388,this.match(t.CREATE),this.state=3390,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(107===e||229===e||277===e)&&(this.state=3389,e=this.tokenStream.LA(1),107===e||229===e||277===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this));break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}permission_name(){let e=new aV(this.context,this.state);this.enterRule(e,542,t.RULE_permission_name);try{switch(this.state=3396,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ALTER:case t.CONNECT:case t.CREATE:case t.DESCRIBE:case t.DROP:case t.ERASE:case t.FULL:case t.GRANT:case t.INSERT:case t.LIST:case t.MANAGE:case t.MODIFY:case t.REMOVE:case t.SELECT:case t.UPDATE:case t.USE:this.enterOuterAlt(e,1),this.state=3394,this.permission_id();break;case t.STRING_VALUE:this.enterOuterAlt(e,2),this.state=3395,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}permission_name_target(){let e,s=new rV(this.context,this.state);this.enterRule(s,544,t.RULE_permission_name_target);try{let a;switch(this.state=3413,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ALTER:case t.CONNECT:case t.CREATE:case t.DESCRIBE:case t.DROP:case t.ERASE:case t.FULL:case t.GRANT:case t.INSERT:case t.LIST:case t.MANAGE:case t.MODIFY:case t.REMOVE:case t.SELECT:case t.UPDATE:case t.USE:case t.STRING_VALUE:for(this.enterOuterAlt(s,1),this.state=3398,this.permission_name(),this.state=3403,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,352,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3399,this.match(t.COMMA),this.state=3400,this.permission_name()),this.state=3405,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,352,this.context);this.state=3407,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=3406,this.match(t.COMMA));break;case t.ALL:this.enterOuterAlt(s,2),this.state=3409,this.match(t.ALL),this.state=3411,this.errorHandler.sync(this),e=this.tokenStream.LA(1),227===e&&(this.state=3410,this.match(t.PRIVILEGES));break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}create_replication_stmt(){let e,s=new iV(this.context,this.state);this.enterRule(s,546,t.RULE_create_replication_stmt);try{for(this.enterOuterAlt(s,1),this.state=3415,this.match(t.CREATE),this.state=3416,this.match(t.ASYNC),this.state=3417,this.match(t.REPLICATION),this.state=3418,this.object_ref(),this.state=3419,this.match(t.FOR),this.state=3420,this.replication_target(),this.state=3425,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3421,this.match(t.COMMA),this.state=3422,this.replication_target(),this.state=3427,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3428,this.match(t.WITH),this.state=3429,this.match(t.LPAREN),this.state=3430,this.replication_settings(),this.state=3431,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}replication_target(){let e=new cV(this.context,this.state);this.enterRule(e,548,t.RULE_replication_target);try{this.enterOuterAlt(e,1),this.state=3433,this.object_ref(),this.state=3434,this.replication_name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}replication_settings(){let e,s=new nV(this.context,this.state);this.enterRule(s,550,t.RULE_replication_settings);try{for(this.enterOuterAlt(s,1),this.state=3436,this.replication_settings_entry(),this.state=3441,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3437,this.match(t.COMMA),this.state=3438,this.replication_settings_entry(),this.state=3443,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}replication_settings_entry(){let e=new hV(this.context,this.state);this.enterRule(e,552,t.RULE_replication_settings_entry);try{this.enterOuterAlt(e,1),this.state=3444,this.an_id(),this.state=3445,this.match(t.EQUALS),this.state=3446,this.match(t.STRING_VALUE)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_replication_stmt(){let e,s=new EV(this.context,this.state);this.enterRule(s,554,t.RULE_alter_replication_stmt);try{for(this.enterOuterAlt(s,1),this.state=3448,this.match(t.ALTER),this.state=3449,this.match(t.ASYNC),this.state=3450,this.match(t.REPLICATION),this.state=3451,this.object_ref(),this.state=3452,this.alter_replication_action(),this.state=3457,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3453,this.match(t.COMMA),this.state=3454,this.alter_replication_action(),this.state=3459,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alter_replication_action(){let e=new TV(this.context,this.state);this.enterRule(e,556,t.RULE_alter_replication_action);try{this.enterOuterAlt(e,1),this.state=3460,this.alter_replication_set_setting()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_replication_set_setting(){let e=new oV(this.context,this.state);this.enterRule(e,558,t.RULE_alter_replication_set_setting);try{this.enterOuterAlt(e,1),this.state=3462,this.match(t.SET),this.state=3463,this.match(t.LPAREN),this.state=3464,this.replication_settings(),this.state=3465,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}drop_replication_stmt(){let e,s=new RV(this.context,this.state);this.enterRule(s,560,t.RULE_drop_replication_stmt);try{this.enterOuterAlt(s,1),this.state=3467,this.match(t.DROP),this.state=3468,this.match(t.ASYNC),this.state=3469,this.match(t.REPLICATION),this.state=3470,this.object_ref(),this.state=3472,this.errorHandler.sync(this),e=this.tokenStream.LA(1),71===e&&(this.state=3471,this.match(t.CASCADE))}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}action_or_subquery_args(){let e,s=new AV(this.context,this.state);this.enterRule(s,562,t.RULE_action_or_subquery_args);try{for(this.enterOuterAlt(s,1),this.state=3474,this.opt_bind_parameter(),this.state=3479,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3475,this.match(t.COMMA),this.state=3476,this.opt_bind_parameter(),this.state=3481,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}define_action_or_subquery_stmt(){let e,s=new SV(this.context,this.state);this.enterRule(s,564,t.RULE_define_action_or_subquery_stmt);try{this.enterOuterAlt(s,1),this.state=3482,this.match(t.DEFINE),this.state=3483,e=this.tokenStream.LA(1),45===e||271===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3484,this.bind_parameter(),this.state=3485,this.match(t.LPAREN),this.state=3487,this.errorHandler.sync(this),e=this.tokenStream.LA(1),33===e&&(this.state=3486,this.action_or_subquery_args()),this.state=3489,this.match(t.RPAREN),this.state=3490,this.match(t.AS),this.state=3491,this.define_action_or_subquery_body(),this.state=3492,this.match(t.END),this.state=3493,this.match(t.DEFINE)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}define_action_or_subquery_body(){let e,s=new lV(this.context,this.state);this.enterRule(s,566,t.RULE_define_action_or_subquery_body);try{let a;for(this.enterOuterAlt(s,1),this.state=3498,this.errorHandler.sync(this),e=this.tokenStream.LA(1);24===e;)this.state=3495,this.match(t.SEMICOLON),this.state=3500,this.errorHandler.sync(this),e=this.tokenStream.LA(1);if(this.state=3519,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-27&-32)&&1<<e-27&4194369||!(e-79&-32)&&1<<e-79&1086587137||!(e-111&-32)&&1<<e-111&2684882947||!(e-147&-32)&&1<<e-147&526465||!(e-214&-32)&&1<<e-214&67387905||!(e-250&-32)&&1<<e-250&4105||!(e-299&-32)&&1<<e-299&71){for(this.state=3501,this.sql_stmt_core(),this.state=3510,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,364,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;){if(1===a){this.state=3503,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=3502,this.match(t.SEMICOLON),this.state=3505,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(24===e);this.state=3507,this.sql_stmt_core()}this.state=3512,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,364,this.context)}for(this.state=3516,this.errorHandler.sync(this),e=this.tokenStream.LA(1);24===e;)this.state=3513,this.match(t.SEMICOLON),this.state=3518,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}if_stmt(){let e,s=new OV(this.context,this.state);this.enterRule(s,568,t.RULE_if_stmt);try{this.enterOuterAlt(s,1),this.state=3522,this.errorHandler.sync(this),e=this.tokenStream.LA(1),123===e&&(this.state=3521,this.match(t.EVALUATE)),this.state=3524,this.match(t.IF),this.state=3525,this.expr(),this.state=3526,this.do_stmt(),this.state=3529,this.errorHandler.sync(this),e=this.tokenStream.LA(1),114===e&&(this.state=3527,this.match(t.ELSE),this.state=3528,this.do_stmt())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}for_stmt(){let e,s=new IV(this.context,this.state);this.enterRule(s,570,t.RULE_for_stmt);try{this.enterOuterAlt(s,1),this.state=3532,this.errorHandler.sync(this),e=this.tokenStream.LA(1),123===e&&(this.state=3531,this.match(t.EVALUATE)),this.state=3535,this.errorHandler.sync(this),e=this.tokenStream.LA(1),214===e&&(this.state=3534,this.match(t.PARALLEL)),this.state=3537,this.match(t.FOR),this.state=3538,this.bind_parameter(),this.state=3539,this.match(t.IN),this.state=3540,this.expr(),this.state=3541,this.do_stmt(),this.state=3544,this.errorHandler.sync(this),e=this.tokenStream.LA(1),114===e&&(this.state=3542,this.match(t.ELSE),this.state=3543,this.do_stmt())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}table_ref(){let e,s=new uV(this.context,this.state);this.enterRule(s,572,t.RULE_table_ref);try{let a;if(this.enterOuterAlt(s,1),1===(this.state=3549,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,372,this.context)))this.state=3546,this.cluster_expr(),this.state=3547,this.match(t.DOT);switch(this.state=3552,this.errorHandler.sync(this),e=this.tokenStream.LA(1),31===e&&(this.state=3551,this.match(t.AT)),this.state=3584,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,380,this.context)){case 1:this.state=3554,this.table_key();break;case 2:if(this.state=3555,this.an_id_expr(),this.state=3556,this.match(t.LPAREN),this.state=3568,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-15&-32)&&1<<e-15&4031057949||!(e-47&-32)&&1<<e-47&4294901759||!(e-79&-32)&&1<<e-79&4294967295||!(e-111&-32)&&1<<e-111&4294967295||!(e-143&-32)&&1<<e-143&4294967287||!(e-175&-32)&&1<<e-175&4294967295||!(e-207&-32)&&1<<e-207&4294967295||!(e-240&-32)&&1<<e-240&4294967295||!(e-272&-32)&&1<<e-272&4294967295||!(e-304&-32)&&1<<e-304&524287){for(this.state=3557,this.table_arg(),this.state=3562,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,374,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3558,this.match(t.COMMA),this.state=3559,this.table_arg()),this.state=3564,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,374,this.context);this.state=3566,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=3565,this.match(t.COMMA))}this.state=3570,this.match(t.RPAREN);break;case 3:this.state=3572,this.bind_parameter(),this.state=3578,this.errorHandler.sync(this),e=this.tokenStream.LA(1),27===e&&(this.state=3573,this.match(t.LPAREN),this.state=3575,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(!(e-15&-32)&&1<<e-15&4030992413||!(e-47&-32)&&1<<e-47&4294901759||!(e-79&-32)&&1<<e-79&4294967295||!(e-111&-32)&&1<<e-111&4294967295||!(e-143&-32)&&1<<e-143&4294967287||!(e-175&-32)&&1<<e-175&4294967295||!(e-207&-32)&&1<<e-207&4294967295||!(e-240&-32)&&1<<e-240&4294967295||!(e-272&-32)&&1<<e-272&4294967295||!(e-304&-32)&&1<<e-304&524287)&&(this.state=3574,this.expr_list()),this.state=3577,this.match(t.RPAREN)),this.state=3582,this.errorHandler.sync(this),e=this.tokenStream.LA(1),307===e&&(this.state=3580,this.match(t.VIEW),this.state=3581,this.view_name())}this.state=3587,this.errorHandler.sync(this),e=this.tokenStream.LA(1),312===e&&(this.state=3586,this.table_hints())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}table_key(){let e,s=new NV(this.context,this.state);this.enterRule(s,574,t.RULE_table_key);try{this.enterOuterAlt(s,1),this.state=3589,this.id_table_or_type(),this.state=3592,this.errorHandler.sync(this),e=this.tokenStream.LA(1),307===e&&(this.state=3590,this.match(t.VIEW),this.state=3591,this.view_name())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}table_arg(){let e,s=new LV(this.context,this.state);this.enterRule(s,576,t.RULE_table_arg);try{this.enterOuterAlt(s,1),this.state=3595,this.errorHandler.sync(this),e=this.tokenStream.LA(1),31===e&&(this.state=3594,this.match(t.AT)),this.state=3597,this.named_expr(),this.state=3600,this.errorHandler.sync(this),e=this.tokenStream.LA(1),307===e&&(this.state=3598,this.match(t.VIEW),this.state=3599,this.view_name())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}table_hints(){let e,s=new CV(this.context,this.state);this.enterRule(s,578,t.RULE_table_hints);try{switch(this.enterOuterAlt(s,1),this.state=3602,this.match(t.WITH),this.state=3615,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.state=3603,this.table_hint();break;case t.LPAREN:for(this.state=3604,this.match(t.LPAREN),this.state=3605,this.table_hint(),this.state=3610,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3606,this.match(t.COMMA),this.state=3607,this.table_hint(),this.state=3612,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3613,this.match(t.RPAREN);break;default:throw new Ei(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}table_hint(){let e,s=new _V(this.context,this.state);this.enterRule(s,580,t.RULE_table_hint);try{let a;switch(this.state=3662,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,396,this.context)){case 1:if(this.enterOuterAlt(s,1),this.state=3617,this.an_id_hint(),this.state=3636,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e)switch(this.state=3618,this.match(t.EQUALS),this.state=3634,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DOLLAR:case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.state=3619,this.type_name_tag();break;case t.LPAREN:for(this.state=3620,this.match(t.LPAREN),this.state=3621,this.type_name_tag(),this.state=3626,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,387,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3622,this.match(t.COMMA),this.state=3623,this.type_name_tag()),this.state=3628,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,387,this.context);this.state=3630,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=3629,this.match(t.COMMA)),this.state=3632,this.match(t.RPAREN);break;default:throw new Ei(this)}break;case 2:this.enterOuterAlt(s,2),this.state=3638,e=this.tokenStream.LA(1),78===e||259===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3640,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e&&(this.state=3639,this.match(t.EQUALS)),this.state=3642,this.type_name_or_bind();break;case 3:if(this.enterOuterAlt(s,3),this.state=3643,this.match(t.SCHEMA),this.state=3645,this.errorHandler.sync(this),e=this.tokenStream.LA(1),2===e&&(this.state=3644,this.match(t.EQUALS)),this.state=3647,this.match(t.LPAREN),this.state=3656,this.errorHandler.sync(this),e=this.tokenStream.LA(1),!(e-33&-32)&&1<<e-33&3221223425||!(e-65&-32)&&1<<e-65&4294967295||!(e-97&-32)&&1<<e-97&4294967295||!(e-129&-32)&&1<<e-129&4294836207||!(e-161&-32)&&1<<e-161&4294967295||!(e-193&-32)&&1<<e-193&4294967295||!(e-225&-32)&&1<<e-225&4294950911||!(e-257&-32)&&1<<e-257&4294967295||!(e-289&-32)&&1<<e-289&1073741821)for(this.state=3648,this.struct_arg_positional(),this.state=3653,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,393,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;)1===a&&(this.state=3649,this.match(t.COMMA),this.state=3650,this.struct_arg_positional()),this.state=3655,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,393,this.context);this.state=3659,this.errorHandler.sync(this),e=this.tokenStream.LA(1),26===e&&(this.state=3658,this.match(t.COMMA)),this.state=3661,this.match(t.RPAREN)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}object_ref(){let e=new PV(this.context,this.state);this.enterRule(e,582,t.RULE_object_ref);try{if(this.enterOuterAlt(e,1),1===(this.state=3667,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,397,this.context)))this.state=3664,this.cluster_expr(),this.state=3665,this.match(t.DOT);this.state=3669,this.id_or_at()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}simple_table_ref_core(){let e,s=new MV(this.context,this.state);this.enterRule(s,584,t.RULE_simple_table_ref_core);try{switch(this.state=3676,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,399,this.context)){case 1:this.enterOuterAlt(s,1),this.state=3671,this.object_ref();break;case 2:this.enterOuterAlt(s,2),this.state=3673,this.errorHandler.sync(this),e=this.tokenStream.LA(1),31===e&&(this.state=3672,this.match(t.AT)),this.state=3675,this.bind_parameter()}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}simple_table_ref(){let e,s=new dV(this.context,this.state);this.enterRule(s,586,t.RULE_simple_table_ref);try{this.enterOuterAlt(s,1),this.state=3678,this.simple_table_ref_core(),this.state=3680,this.errorHandler.sync(this),e=this.tokenStream.LA(1),312===e&&(this.state=3679,this.table_hints())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}into_simple_table_ref(){let e,s=new UV(this.context,this.state);this.enterRule(s,588,t.RULE_into_simple_table_ref);try{this.enterOuterAlt(s,1),this.state=3682,this.simple_table_ref(),this.state=3686,this.errorHandler.sync(this),e=this.tokenStream.LA(1),120===e&&(this.state=3683,this.match(t.ERASE),this.state=3684,this.match(t.BY),this.state=3685,this.pure_column_list())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}delete_stmt(){let e,s=new mV(this.context,this.state);this.enterRule(s,590,t.RULE_delete_stmt);try{switch(this.enterOuterAlt(s,1),this.state=3688,this.match(t.DELETE),this.state=3689,this.match(t.FROM),this.state=3690,this.simple_table_ref(),this.state=3694,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.WHERE:this.state=3691,this.where_expr();break;case t.ON:this.state=3692,this.match(t.ON),this.state=3693,this.into_values_source();case t.EOF:case t.SEMICOLON:case t.END:case t.RETURNING:}this.state=3697,this.errorHandler.sync(this),e=this.tokenStream.LA(1),248===e&&(this.state=3696,this.returning_columns_list())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}update_stmt(){let e,s=new DV(this.context,this.state);this.enterRule(s,592,t.RULE_update_stmt);try{switch(this.enterOuterAlt(s,1),this.state=3699,this.match(t.UPDATE),this.state=3700,this.simple_table_ref(),this.state=3708,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SET:this.state=3701,this.match(t.SET),this.state=3702,this.set_clause_choice(),this.state=3704,this.errorHandler.sync(this),e=this.tokenStream.LA(1),310===e&&(this.state=3703,this.where_expr());break;case t.ON:this.state=3706,this.match(t.ON),this.state=3707,this.into_values_source();break;default:throw new Ei(this)}this.state=3711,this.errorHandler.sync(this),e=this.tokenStream.LA(1),248===e&&(this.state=3710,this.returning_columns_list())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}set_clause_choice(){let e=new pV(this.context,this.state);this.enterRule(e,594,t.RULE_set_clause_choice);try{switch(this.state=3715,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=3713,this.set_clause_list();break;case t.LPAREN:this.enterOuterAlt(e,2),this.state=3714,this.multiple_column_assignment();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}set_clause_list(){let e,s=new gV(this.context,this.state);this.enterRule(s,596,t.RULE_set_clause_list);try{for(this.enterOuterAlt(s,1),this.state=3717,this.set_clause(),this.state=3722,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3718,this.match(t.COMMA),this.state=3719,this.set_clause(),this.state=3724,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}set_clause(){let e=new xV(this.context,this.state);this.enterRule(e,598,t.RULE_set_clause);try{this.enterOuterAlt(e,1),this.state=3725,this.set_target(),this.state=3726,this.match(t.EQUALS),this.state=3727,this.expr()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}set_target(){let e=new kV(this.context,this.state);this.enterRule(e,600,t.RULE_set_target);try{this.enterOuterAlt(e,1),this.state=3729,this.column_name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}multiple_column_assignment(){let e=new HV(this.context,this.state);this.enterRule(e,602,t.RULE_multiple_column_assignment);try{this.enterOuterAlt(e,1),this.state=3731,this.set_target_list(),this.state=3732,this.match(t.EQUALS),this.state=3733,this.match(t.LPAREN),this.state=3734,this.simple_values_source(),this.state=3735,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}set_target_list(){let e,s=new GV(this.context,this.state);this.enterRule(s,604,t.RULE_set_target_list);try{for(this.enterOuterAlt(s,1),this.state=3737,this.match(t.LPAREN),this.state=3738,this.set_target(),this.state=3743,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3739,this.match(t.COMMA),this.state=3740,this.set_target(),this.state=3745,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3746,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}create_topic_stmt(){let e,s=new FV(this.context,this.state);this.enterRule(s,606,t.RULE_create_topic_stmt);try{this.enterOuterAlt(s,1),this.state=3748,this.match(t.CREATE),this.state=3749,this.match(t.TOPIC),this.state=3750,this.topic_ref(),this.state=3752,this.errorHandler.sync(this),e=this.tokenStream.LA(1),27===e&&(this.state=3751,this.create_topic_entries()),this.state=3755,this.errorHandler.sync(this),e=this.tokenStream.LA(1),312===e&&(this.state=3754,this.with_topic_settings())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}create_topic_entries(){let e,s=new vV(this.context,this.state);this.enterRule(s,608,t.RULE_create_topic_entries);try{for(this.enterOuterAlt(s,1),this.state=3757,this.match(t.LPAREN),this.state=3758,this.create_topic_entry(),this.state=3763,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3759,this.match(t.COMMA),this.state=3760,this.create_topic_entry(),this.state=3765,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3766,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}create_topic_entry(){let e=new BV(this.context,this.state);this.enterRule(e,610,t.RULE_create_topic_entry);try{this.enterOuterAlt(e,1),this.state=3768,this.topic_create_consumer_entry()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}with_topic_settings(){let e=new yV(this.context,this.state);this.enterRule(e,612,t.RULE_with_topic_settings);try{this.enterOuterAlt(e,1),this.state=3770,this.match(t.WITH),this.state=3771,this.match(t.LPAREN),this.state=3772,this.topic_settings(),this.state=3773,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_topic_stmt(){let e,s=new fV(this.context,this.state);this.enterRule(s,614,t.RULE_alter_topic_stmt);try{for(this.enterOuterAlt(s,1),this.state=3775,this.match(t.ALTER),this.state=3776,this.match(t.TOPIC),this.state=3777,this.topic_ref(),this.state=3778,this.alter_topic_action(),this.state=3783,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3779,this.match(t.COMMA),this.state=3780,this.alter_topic_action(),this.state=3785,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alter_topic_action(){let e=new YV(this.context,this.state);this.enterRule(e,616,t.RULE_alter_topic_action);try{switch(this.state=3791,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ADD:this.enterOuterAlt(e,1),this.state=3786,this.alter_topic_add_consumer();break;case t.ALTER:this.enterOuterAlt(e,2),this.state=3787,this.alter_topic_alter_consumer();break;case t.DROP:this.enterOuterAlt(e,3),this.state=3788,this.alter_topic_drop_consumer();break;case t.SET:this.enterOuterAlt(e,4),this.state=3789,this.alter_topic_set_settings();break;case t.RESET:this.enterOuterAlt(e,5),this.state=3790,this.alter_topic_reset_settings();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_topic_add_consumer(){let e=new wV(this.context,this.state);this.enterRule(e,618,t.RULE_alter_topic_add_consumer);try{this.enterOuterAlt(e,1),this.state=3793,this.match(t.ADD),this.state=3794,this.topic_create_consumer_entry()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}topic_create_consumer_entry(){let e,s=new bV(this.context,this.state);this.enterRule(s,620,t.RULE_topic_create_consumer_entry);try{this.enterOuterAlt(s,1),this.state=3796,this.match(t.CONSUMER),this.state=3797,this.an_id(),this.state=3799,this.errorHandler.sync(this),e=this.tokenStream.LA(1),312===e&&(this.state=3798,this.topic_consumer_with_settings())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alter_topic_alter_consumer(){let e=new WV(this.context,this.state);this.enterRule(e,622,t.RULE_alter_topic_alter_consumer);try{this.enterOuterAlt(e,1),this.state=3801,this.match(t.ALTER),this.state=3802,this.match(t.CONSUMER),this.state=3803,this.topic_consumer_ref(),this.state=3804,this.alter_topic_alter_consumer_entry()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_topic_alter_consumer_entry(){let e=new VV(this.context,this.state);this.enterRule(e,624,t.RULE_alter_topic_alter_consumer_entry);try{switch(this.state=3808,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.SET:this.enterOuterAlt(e,1),this.state=3806,this.topic_alter_consumer_set();break;case t.RESET:this.enterOuterAlt(e,2),this.state=3807,this.topic_alter_consumer_reset();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_topic_drop_consumer(){let e=new XV(this.context,this.state);this.enterRule(e,626,t.RULE_alter_topic_drop_consumer);try{this.enterOuterAlt(e,1),this.state=3810,this.match(t.DROP),this.state=3811,this.match(t.CONSUMER),this.state=3812,this.topic_consumer_ref()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}topic_alter_consumer_set(){let e=new KV(this.context,this.state);this.enterRule(e,628,t.RULE_topic_alter_consumer_set);try{this.enterOuterAlt(e,1),this.state=3814,this.match(t.SET),this.state=3815,this.match(t.LPAREN),this.state=3816,this.topic_consumer_settings(),this.state=3817,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}topic_alter_consumer_reset(){let e,s=new QV(this.context,this.state);this.enterRule(s,630,t.RULE_topic_alter_consumer_reset);try{for(this.enterOuterAlt(s,1),this.state=3819,this.match(t.RESET),this.state=3820,this.match(t.LPAREN),this.state=3821,this.an_id(),this.state=3826,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3822,this.match(t.COMMA),this.state=3823,this.an_id(),this.state=3828,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3829,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}alter_topic_set_settings(){let e=new JV(this.context,this.state);this.enterRule(e,632,t.RULE_alter_topic_set_settings);try{this.enterOuterAlt(e,1),this.state=3831,this.match(t.SET),this.state=3832,this.match(t.LPAREN),this.state=3833,this.topic_settings(),this.state=3834,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_topic_reset_settings(){let e,s=new ZV(this.context,this.state);this.enterRule(s,634,t.RULE_alter_topic_reset_settings);try{for(this.enterOuterAlt(s,1),this.state=3836,this.match(t.RESET),this.state=3837,this.match(t.LPAREN),this.state=3838,this.an_id(),this.state=3843,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3839,this.match(t.COMMA),this.state=3840,this.an_id_pure(),this.state=3845,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=3846,this.match(t.RPAREN)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}drop_topic_stmt(){let e=new qV(this.context,this.state);this.enterRule(e,636,t.RULE_drop_topic_stmt);try{this.enterOuterAlt(e,1),this.state=3848,this.match(t.DROP),this.state=3849,this.match(t.TOPIC),this.state=3850,this.topic_ref()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}topic_settings(){let e,s=new jV(this.context,this.state);this.enterRule(s,638,t.RULE_topic_settings);try{for(this.enterOuterAlt(s,1),this.state=3852,this.topic_settings_entry(),this.state=3857,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3853,this.match(t.COMMA),this.state=3854,this.topic_settings_entry(),this.state=3859,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}topic_settings_entry(){let e=new zV(this.context,this.state);this.enterRule(e,640,t.RULE_topic_settings_entry);try{this.enterOuterAlt(e,1),this.state=3860,this.an_id(),this.state=3861,this.match(t.EQUALS),this.state=3862,this.topic_setting_value()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}topic_setting_value(){let e=new $V(this.context,this.state);this.enterRule(e,642,t.RULE_topic_setting_value);try{this.enterOuterAlt(e,1),this.state=3864,this.expr()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}topic_consumer_with_settings(){let e=new tX(this.context,this.state);this.enterRule(e,644,t.RULE_topic_consumer_with_settings);try{this.enterOuterAlt(e,1),this.state=3866,this.match(t.WITH),this.state=3867,this.match(t.LPAREN),this.state=3868,this.topic_consumer_settings(),this.state=3869,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}topic_consumer_settings(){let e,s=new eX(this.context,this.state);this.enterRule(s,646,t.RULE_topic_consumer_settings);try{for(this.enterOuterAlt(s,1),this.state=3871,this.topic_consumer_settings_entry(),this.state=3876,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3872,this.match(t.COMMA),this.state=3873,this.topic_consumer_settings_entry(),this.state=3878,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}topic_consumer_settings_entry(){let e=new sX(this.context,this.state);this.enterRule(e,648,t.RULE_topic_consumer_settings_entry);try{this.enterOuterAlt(e,1),this.state=3879,this.an_id(),this.state=3880,this.match(t.EQUALS),this.state=3881,this.topic_consumer_setting_value()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}topic_consumer_setting_value(){let e=new aX(this.context,this.state);this.enterRule(e,650,t.RULE_topic_consumer_setting_value);try{this.enterOuterAlt(e,1),this.state=3883,this.expr()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}topic_ref(){let e=new rX(this.context,this.state);this.enterRule(e,652,t.RULE_topic_ref);try{if(this.enterOuterAlt(e,1),1===(this.state=3888,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,421,this.context)))this.state=3885,this.cluster_expr(),this.state=3886,this.match(t.DOT);this.state=3890,this.an_id()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}topic_consumer_ref(){let e=new iX(this.context,this.state);this.enterRule(e,654,t.RULE_topic_consumer_ref);try{this.enterOuterAlt(e,1),this.state=3892,this.an_id_pure()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}null_treatment(){let e=new cX(this.context,this.state);this.enterRule(e,656,t.RULE_null_treatment);try{switch(this.state=3898,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.RESPECT:this.enterOuterAlt(e,1),this.state=3894,this.match(t.RESPECT),this.state=3895,this.match(t.NULLS);break;case t.IGNORE:this.enterOuterAlt(e,2),this.state=3896,this.match(t.IGNORE),this.state=3897,this.match(t.NULLS);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}filter_clause(){let e=new nX(this.context,this.state);this.enterRule(e,658,t.RULE_filter_clause);try{this.enterOuterAlt(e,1),this.state=3900,this.match(t.FILTER),this.state=3901,this.match(t.LPAREN),this.state=3902,this.where_expr(),this.state=3903,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}window_name_or_specification(){let e=new hX(this.context,this.state);this.enterRule(e,660,t.RULE_window_name_or_specification);try{switch(this.state=3907,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=3905,this.window_name();break;case t.LPAREN:this.enterOuterAlt(e,2),this.state=3906,this.window_specification();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}window_name(){let e=new EX(this.context,this.state);this.enterRule(e,662,t.RULE_window_name);try{this.enterOuterAlt(e,1),this.state=3909,this.an_id_window()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}window_clause(){let e=new TX(this.context,this.state);this.enterRule(e,664,t.RULE_window_clause);try{this.enterOuterAlt(e,1),this.state=3911,this.match(t.WINDOW),this.state=3912,this.window_definition_list()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}window_definition_list(){let e,s=new oX(this.context,this.state);this.enterRule(s,666,t.RULE_window_definition_list);try{for(this.enterOuterAlt(s,1),this.state=3914,this.window_definition(),this.state=3919,this.errorHandler.sync(this),e=this.tokenStream.LA(1);26===e;)this.state=3915,this.match(t.COMMA),this.state=3916,this.window_definition(),this.state=3921,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}window_definition(){let e=new RX(this.context,this.state);this.enterRule(e,668,t.RULE_window_definition);try{this.enterOuterAlt(e,1),this.state=3922,this.new_window_name(),this.state=3923,this.match(t.AS),this.state=3924,this.window_specification()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}new_window_name(){let e=new AX(this.context,this.state);this.enterRule(e,670,t.RULE_new_window_name);try{this.enterOuterAlt(e,1),this.state=3926,this.window_name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}window_specification(){let e=new SX(this.context,this.state);this.enterRule(e,672,t.RULE_window_specification);try{this.enterOuterAlt(e,1),this.state=3928,this.match(t.LPAREN),this.state=3929,this.window_specification_details(),this.state=3930,this.match(t.RPAREN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}window_specification_details(){let e,s=new lX(this.context,this.state);this.enterRule(s,674,t.RULE_window_specification_details);try{if(this.enterOuterAlt(s,1),1===(this.state=3933,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,425,this.context)))this.state=3932,this.existing_window_name();this.state=3936,this.errorHandler.sync(this),e=this.tokenStream.LA(1),215===e&&(this.state=3935,this.window_partition_clause()),this.state=3939,this.errorHandler.sync(this),e=this.tokenStream.LA(1),210===e&&(this.state=3938,this.window_order_clause()),this.state=3942,this.errorHandler.sync(this),e=this.tokenStream.LA(1),(150===e||231===e||256===e)&&(this.state=3941,this.window_frame_clause())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}existing_window_name(){let e=new OX(this.context,this.state);this.enterRule(e,676,t.RULE_existing_window_name);try{this.enterOuterAlt(e,1),this.state=3944,this.window_name()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}window_partition_clause(){let e,s=new IX(this.context,this.state);this.enterRule(s,678,t.RULE_window_partition_clause);try{this.enterOuterAlt(s,1),this.state=3946,this.match(t.PARTITION),this.state=3948,this.errorHandler.sync(this),e=this.tokenStream.LA(1),80===e&&(this.state=3947,this.match(t.COMPACT)),this.state=3950,this.match(t.BY),this.state=3951,this.named_expr_list()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}window_order_clause(){let e=new uX(this.context,this.state);this.enterRule(e,680,t.RULE_window_order_clause);try{this.enterOuterAlt(e,1),this.state=3953,this.order_by_clause()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}window_frame_clause(){let e,s=new NX(this.context,this.state);this.enterRule(s,682,t.RULE_window_frame_clause);try{this.enterOuterAlt(s,1),this.state=3955,this.window_frame_units(),this.state=3956,this.window_frame_extent(),this.state=3958,this.errorHandler.sync(this),e=this.tokenStream.LA(1),125===e&&(this.state=3957,this.window_frame_exclusion())}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}window_frame_units(){let e,s=new LX(this.context,this.state);this.enterRule(s,684,t.RULE_window_frame_units);try{this.enterOuterAlt(s,1),this.state=3960,e=this.tokenStream.LA(1),150===e||231===e||256===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}window_frame_extent(){let e=new CX(this.context,this.state);this.enterRule(e,686,t.RULE_window_frame_extent);try{switch(this.state=3964,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,431,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3962,this.window_frame_bound();break;case 2:this.enterOuterAlt(e,2),this.state=3963,this.window_frame_between()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}window_frame_between(){let e=new _X(this.context,this.state);this.enterRule(e,688,t.RULE_window_frame_between);try{this.enterOuterAlt(e,1),this.state=3966,this.match(t.BETWEEN),this.state=3967,this.window_frame_bound(),this.state=3968,this.match(t.AND),this.state=3969,this.window_frame_bound()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}window_frame_bound(){let e,s=new PX(this.context,this.state);this.enterRule(s,690,t.RULE_window_frame_bound);try{switch(this.state=3978,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,433,this.context)){case 1:this.enterOuterAlt(s,1),this.state=3971,this.match(t.CURRENT),this.state=3972,this.match(t.ROW);break;case 2:switch(this.enterOuterAlt(s,2),this.state=3975,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,432,this.context)){case 1:this.state=3973,this.expr();break;case 2:this.state=3974,this.match(t.UNBOUNDED)}this.state=3977,e=this.tokenStream.LA(1),139===e||224===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}window_frame_exclusion(){let e=new MX(this.context,this.state);this.enterRule(e,692,t.RULE_window_frame_exclusion);try{switch(this.state=3990,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,434,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3980,this.match(t.EXCLUDE),this.state=3981,this.match(t.CURRENT),this.state=3982,this.match(t.ROW);break;case 2:this.enterOuterAlt(e,2),this.state=3983,this.match(t.EXCLUDE),this.state=3984,this.match(t.GROUP);break;case 3:this.enterOuterAlt(e,3),this.state=3985,this.match(t.EXCLUDE),this.state=3986,this.match(t.TIES);break;case 4:this.enterOuterAlt(e,4),this.state=3987,this.match(t.EXCLUDE),this.state=3988,this.match(t.NO),this.state=3989,this.match(t.OTHERS)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}use_stmt(){let e=new dX(this.context,this.state);this.enterRule(e,694,t.RULE_use_stmt);try{this.enterOuterAlt(e,1),this.state=3992,this.match(t.USE),this.state=3993,this.cluster_expr()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}subselect_stmt(){let e=new UX(this.context,this.state);this.enterRule(e,696,t.RULE_subselect_stmt);try{switch(this.enterOuterAlt(e,1),this.state=4e3,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.LPAREN:this.state=3995,this.match(t.LPAREN),this.state=3996,this.select_stmt(),this.state=3997,this.match(t.RPAREN);break;case t.DISCARD:case t.FROM:case t.PROCESS:case t.REDUCE:case t.SELECT:this.state=3999,this.select_unparenthesized_stmt();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}named_nodes_stmt(){let e=new mX(this.context,this.state);this.enterRule(e,698,t.RULE_named_nodes_stmt);try{switch(this.enterOuterAlt(e,1),this.state=4002,this.bind_parameter_list(),this.state=4003,this.match(t.EQUALS),this.state=4006,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,436,this.context)){case 1:this.state=4004,this.expr();break;case 2:this.state=4005,this.subselect_stmt()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}commit_stmt(){let e=new DX(this.context,this.state);this.enterRule(e,700,t.RULE_commit_stmt);try{this.enterOuterAlt(e,1),this.state=4008,this.match(t.COMMIT)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}rollback_stmt(){let e=new pX(this.context,this.state);this.enterRule(e,702,t.RULE_rollback_stmt);try{this.enterOuterAlt(e,1),this.state=4010,this.match(t.ROLLBACK)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}identifier(){let e,s=new gX(this.context,this.state);this.enterRule(s,704,t.RULE_identifier);try{this.enterOuterAlt(s,1),this.state=4012,e=this.tokenStream.LA(1),317===e||318===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}id(){let e=new xX(this.context,this.state);this.enterRule(e,706,t.RULE_id);try{switch(this.state=4016,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4014,this.identifier();break;case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:this.enterOuterAlt(e,2),this.state=4015,this.keyword();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}id_schema(){let e=new kX(this.context,this.state);this.enterRule(e,708,t.RULE_id_schema);try{switch(this.state=4025,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4018,this.identifier();break;case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ARRAY:case t.ASC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BY:case t.CASCADE:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COMMIT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CURRENT:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.ENCRYPTED:case t.END:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.HASH:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOTNULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.QUEUE:case t.RAISE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROW:case t.SAMPLE:case t.SAVEPOINT:case t.SECONDS:case t.SEEK:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNCONDITIONAL:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WITH:case t.WRAPPER:case t.XOR:this.enterOuterAlt(e,2),this.state=4019,this.keyword_compat();break;case t.ASYMMETRIC:case t.BETWEEN:case t.BITCAST:case t.CASE:case t.CAST:case t.CUBE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.EMPTY_ACTION:case t.EXISTS:case t.FROM:case t.FULL:case t.HOP:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.LOCAL:case t.NOT:case t.NULL:case t.PROCESS:case t.REDUCE:case t.RETURN:case t.RETURNING:case t.ROLLUP:case t.SELECT:case t.SYMMETRIC:case t.UNBOUNDED:case t.WHEN:case t.WHERE:this.enterOuterAlt(e,3),this.state=4020,this.keyword_expr_uncompat();break;case t.ALL:case t.AS:case t.ASSUME:case t.DISTINCT:case t.EXCEPT:case t.HAVING:case t.INTERSECT:case t.LIMIT:case t.UNION:case t.WINDOW:case t.WITHOUT:this.enterOuterAlt(e,4),this.state=4021,this.keyword_select_uncompat();break;case t.COMPACT:this.enterOuterAlt(e,5),this.state=4022,this.keyword_in_uncompat();break;case t.GROUPS:case t.RANGE:case t.ROWS:this.enterOuterAlt(e,6),this.state=4023,this.keyword_window_uncompat();break;case t.COLUMNS:case t.SCHEMA:this.enterOuterAlt(e,7),this.state=4024,this.keyword_hint_uncompat();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}id_expr(){let e=new HX(this.context,this.state);this.enterRule(e,710,t.RULE_id_expr);try{switch(this.state=4033,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4027,this.identifier();break;case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ARRAY:case t.ASC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BY:case t.CASCADE:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COMMIT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CURRENT:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.ENCRYPTED:case t.END:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.HASH:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOTNULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.QUEUE:case t.RAISE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROW:case t.SAMPLE:case t.SAVEPOINT:case t.SECONDS:case t.SEEK:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNCONDITIONAL:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WITH:case t.WRAPPER:case t.XOR:this.enterOuterAlt(e,2),this.state=4028,this.keyword_compat();break;case t.COLUMN:this.enterOuterAlt(e,3),this.state=4029,this.keyword_alter_uncompat();break;case t.COMPACT:this.enterOuterAlt(e,4),this.state=4030,this.keyword_in_uncompat();break;case t.GROUPS:case t.RANGE:case t.ROWS:this.enterOuterAlt(e,5),this.state=4031,this.keyword_window_uncompat();break;case t.COLUMNS:case t.SCHEMA:this.enterOuterAlt(e,6),this.state=4032,this.keyword_hint_uncompat();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}id_expr_in(){let e=new GX(this.context,this.state);this.enterRule(e,712,t.RULE_id_expr_in);try{switch(this.state=4040,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4035,this.identifier();break;case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ARRAY:case t.ASC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BY:case t.CASCADE:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COMMIT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CURRENT:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.ENCRYPTED:case t.END:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.HASH:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOTNULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.QUEUE:case t.RAISE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROW:case t.SAMPLE:case t.SAVEPOINT:case t.SECONDS:case t.SEEK:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNCONDITIONAL:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WITH:case t.WRAPPER:case t.XOR:this.enterOuterAlt(e,2),this.state=4036,this.keyword_compat();break;case t.COLUMN:this.enterOuterAlt(e,3),this.state=4037,this.keyword_alter_uncompat();break;case t.GROUPS:case t.RANGE:case t.ROWS:this.enterOuterAlt(e,4),this.state=4038,this.keyword_window_uncompat();break;case t.COLUMNS:case t.SCHEMA:this.enterOuterAlt(e,5),this.state=4039,this.keyword_hint_uncompat();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}id_window(){let e=new FX(this.context,this.state);this.enterRule(e,714,t.RULE_id_window);try{switch(this.state=4050,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4042,this.identifier();break;case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ARRAY:case t.ASC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BY:case t.CASCADE:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COMMIT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CURRENT:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.ENCRYPTED:case t.END:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.HASH:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOTNULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.QUEUE:case t.RAISE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROW:case t.SAMPLE:case t.SAVEPOINT:case t.SECONDS:case t.SEEK:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNCONDITIONAL:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WITH:case t.WRAPPER:case t.XOR:this.enterOuterAlt(e,2),this.state=4043,this.keyword_compat();break;case t.ASYMMETRIC:case t.BETWEEN:case t.BITCAST:case t.CASE:case t.CAST:case t.CUBE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.EMPTY_ACTION:case t.EXISTS:case t.FROM:case t.FULL:case t.HOP:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.LOCAL:case t.NOT:case t.NULL:case t.PROCESS:case t.REDUCE:case t.RETURN:case t.RETURNING:case t.ROLLUP:case t.SELECT:case t.SYMMETRIC:case t.UNBOUNDED:case t.WHEN:case t.WHERE:this.enterOuterAlt(e,3),this.state=4044,this.keyword_expr_uncompat();break;case t.ANY:case t.ERASE:case t.STREAM:this.enterOuterAlt(e,4),this.state=4045,this.keyword_table_uncompat();break;case t.ALL:case t.AS:case t.ASSUME:case t.DISTINCT:case t.EXCEPT:case t.HAVING:case t.INTERSECT:case t.LIMIT:case t.UNION:case t.WINDOW:case t.WITHOUT:this.enterOuterAlt(e,5),this.state=4046,this.keyword_select_uncompat();break;case t.COLUMN:this.enterOuterAlt(e,6),this.state=4047,this.keyword_alter_uncompat();break;case t.COMPACT:this.enterOuterAlt(e,7),this.state=4048,this.keyword_in_uncompat();break;case t.COLUMNS:case t.SCHEMA:this.enterOuterAlt(e,8),this.state=4049,this.keyword_hint_uncompat();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}id_table(){let e=new vX(this.context,this.state);this.enterRule(e,716,t.RULE_id_table);try{switch(this.state=4059,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4052,this.identifier();break;case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ARRAY:case t.ASC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BY:case t.CASCADE:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COMMIT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CURRENT:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.ENCRYPTED:case t.END:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.HASH:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOTNULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.QUEUE:case t.RAISE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROW:case t.SAMPLE:case t.SAVEPOINT:case t.SECONDS:case t.SEEK:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNCONDITIONAL:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WITH:case t.WRAPPER:case t.XOR:this.enterOuterAlt(e,2),this.state=4053,this.keyword_compat();break;case t.ASYMMETRIC:case t.BETWEEN:case t.BITCAST:case t.CASE:case t.CAST:case t.CUBE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.EMPTY_ACTION:case t.EXISTS:case t.FROM:case t.FULL:case t.HOP:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.LOCAL:case t.NOT:case t.NULL:case t.PROCESS:case t.REDUCE:case t.RETURN:case t.RETURNING:case t.ROLLUP:case t.SELECT:case t.SYMMETRIC:case t.UNBOUNDED:case t.WHEN:case t.WHERE:this.enterOuterAlt(e,3),this.state=4054,this.keyword_expr_uncompat();break;case t.ALL:case t.AS:case t.ASSUME:case t.DISTINCT:case t.EXCEPT:case t.HAVING:case t.INTERSECT:case t.LIMIT:case t.UNION:case t.WINDOW:case t.WITHOUT:this.enterOuterAlt(e,4),this.state=4055,this.keyword_select_uncompat();break;case t.COMPACT:this.enterOuterAlt(e,5),this.state=4056,this.keyword_in_uncompat();break;case t.GROUPS:case t.RANGE:case t.ROWS:this.enterOuterAlt(e,6),this.state=4057,this.keyword_window_uncompat();break;case t.COLUMNS:case t.SCHEMA:this.enterOuterAlt(e,7),this.state=4058,this.keyword_hint_uncompat();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}id_without(){let e=new BX(this.context,this.state);this.enterRule(e,718,t.RULE_id_without);try{switch(this.state=4068,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4061,this.identifier();break;case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ARRAY:case t.ASC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BY:case t.CASCADE:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COMMIT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CURRENT:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.ENCRYPTED:case t.END:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.HASH:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOTNULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.QUEUE:case t.RAISE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROW:case t.SAMPLE:case t.SAVEPOINT:case t.SECONDS:case t.SEEK:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNCONDITIONAL:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WITH:case t.WRAPPER:case t.XOR:this.enterOuterAlt(e,2),this.state=4062,this.keyword_compat();break;case t.ANY:case t.ERASE:case t.STREAM:this.enterOuterAlt(e,3),this.state=4063,this.keyword_table_uncompat();break;case t.COLUMN:this.enterOuterAlt(e,4),this.state=4064,this.keyword_alter_uncompat();break;case t.COMPACT:this.enterOuterAlt(e,5),this.state=4065,this.keyword_in_uncompat();break;case t.GROUPS:case t.RANGE:case t.ROWS:this.enterOuterAlt(e,6),this.state=4066,this.keyword_window_uncompat();break;case t.COLUMNS:case t.SCHEMA:this.enterOuterAlt(e,7),this.state=4067,this.keyword_hint_uncompat();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}id_hint(){let e=new yX(this.context,this.state);this.enterRule(e,720,t.RULE_id_hint);try{switch(this.state=4078,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4070,this.identifier();break;case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ARRAY:case t.ASC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BY:case t.CASCADE:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COMMIT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CURRENT:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.ENCRYPTED:case t.END:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.HASH:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOTNULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.QUEUE:case t.RAISE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROW:case t.SAMPLE:case t.SAVEPOINT:case t.SECONDS:case t.SEEK:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNCONDITIONAL:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WITH:case t.WRAPPER:case t.XOR:this.enterOuterAlt(e,2),this.state=4071,this.keyword_compat();break;case t.ASYMMETRIC:case t.BETWEEN:case t.BITCAST:case t.CASE:case t.CAST:case t.CUBE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.EMPTY_ACTION:case t.EXISTS:case t.FROM:case t.FULL:case t.HOP:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.LOCAL:case t.NOT:case t.NULL:case t.PROCESS:case t.REDUCE:case t.RETURN:case t.RETURNING:case t.ROLLUP:case t.SELECT:case t.SYMMETRIC:case t.UNBOUNDED:case t.WHEN:case t.WHERE:this.enterOuterAlt(e,3),this.state=4072,this.keyword_expr_uncompat();break;case t.ANY:case t.ERASE:case t.STREAM:this.enterOuterAlt(e,4),this.state=4073,this.keyword_table_uncompat();break;case t.ALL:case t.AS:case t.ASSUME:case t.DISTINCT:case t.EXCEPT:case t.HAVING:case t.INTERSECT:case t.LIMIT:case t.UNION:case t.WINDOW:case t.WITHOUT:this.enterOuterAlt(e,5),this.state=4074,this.keyword_select_uncompat();break;case t.COLUMN:this.enterOuterAlt(e,6),this.state=4075,this.keyword_alter_uncompat();break;case t.COMPACT:this.enterOuterAlt(e,7),this.state=4076,this.keyword_in_uncompat();break;case t.GROUPS:case t.RANGE:case t.ROWS:this.enterOuterAlt(e,8),this.state=4077,this.keyword_window_uncompat();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}id_as_compat(){let e=new fX(this.context,this.state);this.enterRule(e,722,t.RULE_id_as_compat);try{switch(this.state=4082,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4080,this.identifier();break;case t.ATTRIBUTES:case t.CONNECT:case t.CONSUMER:case t.DATA:case t.DESCRIBE:case t.DIRECTORY:case t.FIRST:case t.GRANT:case t.INITIAL:case t.LAST:case t.LEGACY:case t.MANAGE:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NEXT:case t.OMIT:case t.ONE:case t.OPTION:case t.PARALLEL:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PRIVILEGES:case t.QUEUE:case t.REMOVE:case t.REPLICATION:case t.REVOKE:case t.SECONDS:case t.SEEK:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBSET:case t.TABLES:case t.TOPIC:case t.TYPE:case t.UNMATCHED:this.enterOuterAlt(e,2),this.state=4081,this.keyword_as_compat();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}an_id(){let e=new YX(this.context,this.state);this.enterRule(e,724,t.RULE_an_id);try{switch(this.state=4086,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4084,this.id();break;case t.STRING_VALUE:this.enterOuterAlt(e,2),this.state=4085,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}an_id_or_type(){let e=new wX(this.context,this.state);this.enterRule(e,726,t.RULE_an_id_or_type);try{switch(this.state=4090,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CALLABLE:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DICT:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ENUM:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FLOW:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LIST:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OPTIONAL:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESOURCE:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SET:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.STRUCT:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TAGGED:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TUPLE:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VARIANT:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4088,this.id_or_type();break;case t.STRING_VALUE:this.enterOuterAlt(e,2),this.state=4089,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}an_id_schema(){let e=new bX(this.context,this.state);this.enterRule(e,728,t.RULE_an_id_schema);try{switch(this.state=4094,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4092,this.id_schema();break;case t.STRING_VALUE:this.enterOuterAlt(e,2),this.state=4093,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}an_id_expr(){let e=new WX(this.context,this.state);this.enterRule(e,730,t.RULE_an_id_expr);try{switch(this.state=4098,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ARRAY:case t.ASC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BY:case t.CASCADE:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CURRENT:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.ENCRYPTED:case t.END:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOTNULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNCONDITIONAL:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WITH:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4096,this.id_expr();break;case t.STRING_VALUE:this.enterOuterAlt(e,2),this.state=4097,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}an_id_expr_in(){let e=new VX(this.context,this.state);this.enterRule(e,732,t.RULE_an_id_expr_in);try{switch(this.state=4102,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ARRAY:case t.ASC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BY:case t.CASCADE:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CURRENT:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.ENCRYPTED:case t.END:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOTNULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNCONDITIONAL:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WITH:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4100,this.id_expr_in();break;case t.STRING_VALUE:this.enterOuterAlt(e,2),this.state=4101,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}an_id_window(){let e=new XX(this.context,this.state);this.enterRule(e,734,t.RULE_an_id_window);try{switch(this.state=4106,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4104,this.id_window();break;case t.STRING_VALUE:this.enterOuterAlt(e,2),this.state=4105,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}an_id_table(){let e=new KX(this.context,this.state);this.enterRule(e,736,t.RULE_an_id_table);try{switch(this.state=4110,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4108,this.id_table();break;case t.STRING_VALUE:this.enterOuterAlt(e,2),this.state=4109,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}an_id_without(){let e=new QX(this.context,this.state);this.enterRule(e,738,t.RULE_an_id_without);try{switch(this.state=4114,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.ASC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BY:case t.CASCADE:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CURRENT:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOTNULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNCONDITIONAL:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WITH:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4112,this.id_without();break;case t.STRING_VALUE:this.enterOuterAlt(e,2),this.state=4113,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}an_id_hint(){let e=new JX(this.context,this.state);this.enterRule(e,740,t.RULE_an_id_hint);try{switch(this.state=4118,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4116,this.id_hint();break;case t.STRING_VALUE:this.enterOuterAlt(e,2),this.state=4117,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}an_id_pure(){let e=new ZX(this.context,this.state);this.enterRule(e,742,t.RULE_an_id_pure);try{switch(this.state=4122,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4120,this.identifier();break;case t.STRING_VALUE:this.enterOuterAlt(e,2),this.state=4121,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}an_id_as_compat(){let e=new qX(this.context,this.state);this.enterRule(e,744,t.RULE_an_id_as_compat);try{switch(this.state=4126,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ATTRIBUTES:case t.CONNECT:case t.CONSUMER:case t.DATA:case t.DESCRIBE:case t.DIRECTORY:case t.FIRST:case t.GRANT:case t.INITIAL:case t.LAST:case t.LEGACY:case t.MANAGE:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NEXT:case t.OMIT:case t.ONE:case t.OPTION:case t.PARALLEL:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PRIVILEGES:case t.QUEUE:case t.REMOVE:case t.REPLICATION:case t.REVOKE:case t.SECONDS:case t.SEEK:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBSET:case t.TABLES:case t.TOPIC:case t.TYPE:case t.UNMATCHED:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4124,this.id_as_compat();break;case t.STRING_VALUE:this.enterOuterAlt(e,2),this.state=4125,this.match(t.STRING_VALUE);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}view_name(){let e=new jX(this.context,this.state);this.enterRule(e,746,t.RULE_view_name);try{switch(this.state=4131,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,457,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4128,this.an_id();break;case 2:this.enterOuterAlt(e,2),this.state=4129,this.match(t.PRIMARY),this.state=4130,this.match(t.KEY)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}opt_id_prefix(){let e=new zX(this.context,this.state);this.enterRule(e,748,t.RULE_opt_id_prefix);try{if(1===(this.enterOuterAlt(e,1),this.state=4136,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,458,this.context)))this.state=4133,this.an_id(),this.state=4134,this.match(t.DOT)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}cluster_expr(){let e=new $X(this.context,this.state);this.enterRule(e,750,t.RULE_cluster_expr);try{if(this.enterOuterAlt(e,1),1===(this.state=4141,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,459,this.context)))this.state=4138,this.an_id(),this.state=4139,this.match(t.COLON);switch(this.state=4145,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.DOLLAR:case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.state=4143,this.pure_column_or_named();break;case t.ASTERISK:this.state=4144,this.match(t.ASTERISK);break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}id_or_type(){let e=new tK(this.context,this.state);this.enterRule(e,752,t.RULE_id_or_type);try{switch(this.state=4149,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ANY:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMN:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERASE:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.STREAM:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4147,this.id();break;case t.CALLABLE:case t.DICT:case t.ENUM:case t.FLOW:case t.LIST:case t.OPTIONAL:case t.RESOURCE:case t.SET:case t.STRUCT:case t.TAGGED:case t.TUPLE:case t.VARIANT:this.enterOuterAlt(e,2),this.state=4148,this.type_id();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}opt_id_prefix_or_type(){let e=new eK(this.context,this.state);this.enterRule(e,754,t.RULE_opt_id_prefix_or_type);try{if(1===(this.enterOuterAlt(e,1),this.state=4154,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,462,this.context)))this.state=4151,this.an_id_or_type(),this.state=4152,this.match(t.DOT)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}id_or_at(){let e,s=new sK(this.context,this.state);this.enterRule(s,756,t.RULE_id_or_at);try{this.enterOuterAlt(s,1),this.state=4157,this.errorHandler.sync(this),e=this.tokenStream.LA(1),31===e&&(this.state=4156,this.match(t.AT)),this.state=4159,this.an_id_or_type()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}id_table_or_type(){let e=new aK(this.context,this.state);this.enterRule(e,758,t.RULE_id_table_or_type);try{switch(this.state=4163,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALL:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ARRAY:case t.AS:case t.ASC:case t.ASSUME:case t.ASYMMETRIC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BETWEEN:case t.BITCAST:case t.BY:case t.CASCADE:case t.CASE:case t.CAST:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COLUMNS:case t.COMMIT:case t.COMPACT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CUBE:case t.CURRENT:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DISTINCT:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.EMPTY_ACTION:case t.ENCRYPTED:case t.END:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCEPT:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXISTS:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FROM:case t.FULL:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.GROUPS:case t.HASH:case t.HAVING:case t.HOP:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTERSECT:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.LIMIT:case t.LOCAL:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOT:case t.NOTNULL:case t.NULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.PROCESS:case t.QUEUE:case t.RAISE:case t.RANGE:case t.REDUCE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.RETURN:case t.RETURNING:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROLLUP:case t.ROW:case t.ROWS:case t.SAMPLE:case t.SAVEPOINT:case t.SCHEMA:case t.SECONDS:case t.SEEK:case t.SELECT:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYMMETRIC:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNBOUNDED:case t.UNCONDITIONAL:case t.UNION:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WHEN:case t.WHERE:case t.WINDOW:case t.WITH:case t.WITHOUT:case t.WRAPPER:case t.XOR:case t.STRING_VALUE:case t.ID_PLAIN:case t.ID_QUOTED:this.enterOuterAlt(e,1),this.state=4161,this.an_id_table();break;case t.CALLABLE:case t.DICT:case t.ENUM:case t.FLOW:case t.LIST:case t.OPTIONAL:case t.RESOURCE:case t.SET:case t.STRUCT:case t.TAGGED:case t.TUPLE:case t.VARIANT:this.enterOuterAlt(e,2),this.state=4162,this.type_id();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}id_table_or_at(){let e,s=new rK(this.context,this.state);this.enterRule(s,760,t.RULE_id_table_or_at);try{this.enterOuterAlt(s,1),this.state=4166,this.errorHandler.sync(this),e=this.tokenStream.LA(1),31===e&&(this.state=4165,this.match(t.AT)),this.state=4168,this.id_table_or_type()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}keyword(){let e=new iK(this.context,this.state);this.enterRule(e,762,t.RULE_keyword);try{switch(this.state=4178,this.errorHandler.sync(this),this.tokenStream.LA(1)){case t.ABORT:case t.ACTION:case t.ADD:case t.AFTER:case t.ALTER:case t.ANALYZE:case t.AND:case t.ANSI:case t.ARRAY:case t.ASC:case t.ASYNC:case t.ATTACH:case t.ATTRIBUTES:case t.AUTOINCREMENT:case t.BEFORE:case t.BEGIN:case t.BERNOULLI:case t.BY:case t.CASCADE:case t.CHANGEFEED:case t.CHECK:case t.COLLATE:case t.COMMIT:case t.CONDITIONAL:case t.CONFLICT:case t.CONNECT:case t.CONSTRAINT:case t.CONSUMER:case t.COVER:case t.CREATE:case t.CROSS:case t.CURRENT:case t.DATA:case t.DATABASE:case t.DECIMAL:case t.DECLARE:case t.DEFAULT:case t.DEFERRABLE:case t.DEFERRED:case t.DEFINE:case t.DELETE:case t.DESC:case t.DESCRIBE:case t.DETACH:case t.DIRECTORY:case t.DISABLE:case t.DISCARD:case t.DO:case t.DROP:case t.EACH:case t.ELSE:case t.EMPTY:case t.ENCRYPTED:case t.END:case t.ERROR:case t.ESCAPE:case t.EVALUATE:case t.EXCLUDE:case t.EXCLUSION:case t.EXCLUSIVE:case t.EXPLAIN:case t.EXPORT:case t.EXTERNAL:case t.FAIL:case t.FAMILY:case t.FILTER:case t.FIRST:case t.FLATTEN:case t.FOLLOWING:case t.FOR:case t.FOREIGN:case t.FUNCTION:case t.GLOB:case t.GRANT:case t.GROUP:case t.GROUPING:case t.HASH:case t.IF:case t.IGNORE:case t.ILIKE:case t.IMMEDIATE:case t.IMPORT:case t.IN:case t.INDEX:case t.INDEXED:case t.INHERITS:case t.INITIAL:case t.INITIALLY:case t.INNER:case t.INSERT:case t.INSTEAD:case t.INTO:case t.IS:case t.ISNULL:case t.JOIN:case t.KEY:case t.LAST:case t.LEFT:case t.LEGACY:case t.LIKE:case t.MANAGE:case t.MATCH:case t.MATCHES:case t.MATCH_RECOGNIZE:case t.MEASURES:case t.MICROSECONDS:case t.MILLISECONDS:case t.MODIFY:case t.NANOSECONDS:case t.NATURAL:case t.NEXT:case t.NO:case t.NOTNULL:case t.NULLS:case t.OBJECT:case t.OF:case t.OFFSET:case t.OMIT:case t.ON:case t.ONE:case t.ONLY:case t.OPTION:case t.OR:case t.ORDER:case t.OTHERS:case t.OUTER:case t.OVER:case t.PARALLEL:case t.PARTITION:case t.PASSING:case t.PASSWORD:case t.PAST:case t.PATTERN:case t.PER:case t.PERMUTE:case t.PLAN:case t.PRAGMA:case t.PRECEDING:case t.PRESORT:case t.PRIMARY:case t.PRIVILEGES:case t.QUEUE:case t.RAISE:case t.REFERENCES:case t.REGEXP:case t.REINDEX:case t.RELEASE:case t.REMOVE:case t.RENAME:case t.REPLACE:case t.REPLICATION:case t.RESET:case t.RESPECT:case t.RESTRICT:case t.RESULT:case t.REVERT:case t.REVOKE:case t.RIGHT:case t.RLIKE:case t.ROLLBACK:case t.ROW:case t.SAMPLE:case t.SAVEPOINT:case t.SECONDS:case t.SEEK:case t.SEMI:case t.SETS:case t.SHOW:case t.SKIP_RULE:case t.SOURCE:case t.SUBQUERY:case t.SUBSET:case t.SYMBOLS:case t.SYNC:case t.SYSTEM:case t.TABLE:case t.TABLES:case t.TABLESAMPLE:case t.TABLESTORE:case t.TEMP:case t.TEMPORARY:case t.THEN:case t.TIES:case t.TO:case t.TOPIC:case t.TRANSACTION:case t.TRIGGER:case t.TYPE:case t.UNCONDITIONAL:case t.UNIQUE:case t.UNKNOWN:case t.UNMATCHED:case t.UPDATE:case t.UPSERT:case t.USE:case t.USER:case t.USING:case t.VACUUM:case t.VALUES:case t.VIEW:case t.VIRTUAL:case t.WITH:case t.WRAPPER:case t.XOR:this.enterOuterAlt(e,1),this.state=4170,this.keyword_compat();break;case t.ASYMMETRIC:case t.BETWEEN:case t.BITCAST:case t.CASE:case t.CAST:case t.CUBE:case t.CURRENT_DATE:case t.CURRENT_TIME:case t.CURRENT_TIMESTAMP:case t.EMPTY_ACTION:case t.EXISTS:case t.FROM:case t.FULL:case t.HOP:case t.JSON_EXISTS:case t.JSON_QUERY:case t.JSON_VALUE:case t.LOCAL:case t.NOT:case t.NULL:case t.PROCESS:case t.REDUCE:case t.RETURN:case t.RETURNING:case t.ROLLUP:case t.SELECT:case t.SYMMETRIC:case t.UNBOUNDED:case t.WHEN:case t.WHERE:this.enterOuterAlt(e,2),this.state=4171,this.keyword_expr_uncompat();break;case t.ANY:case t.ERASE:case t.STREAM:this.enterOuterAlt(e,3),this.state=4172,this.keyword_table_uncompat();break;case t.ALL:case t.AS:case t.ASSUME:case t.DISTINCT:case t.EXCEPT:case t.HAVING:case t.INTERSECT:case t.LIMIT:case t.UNION:case t.WINDOW:case t.WITHOUT:this.enterOuterAlt(e,4),this.state=4173,this.keyword_select_uncompat();break;case t.COLUMN:this.enterOuterAlt(e,5),this.state=4174,this.keyword_alter_uncompat();break;case t.COMPACT:this.enterOuterAlt(e,6),this.state=4175,this.keyword_in_uncompat();break;case t.GROUPS:case t.RANGE:case t.ROWS:this.enterOuterAlt(e,7),this.state=4176,this.keyword_window_uncompat();break;case t.COLUMNS:case t.SCHEMA:this.enterOuterAlt(e,8),this.state=4177,this.keyword_hint_uncompat();break;default:throw new Ei(this)}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}keyword_expr_uncompat(){let e,s=new cK(this.context,this.state);this.enterRule(s,764,t.RULE_keyword_expr_uncompat);try{this.enterOuterAlt(s,1),this.state=4180,e=this.tokenStream.LA(1),!(e-58&-32)&&1<<e-58&2147534337||!(e-91&-32)&&1<<e-91&33554439||!(e-128&-32)&&1<<e-128&33603585||!(e-173&-32)&&1<<e-173&41944071||!(e-228&-32)&&1<<e-228&68681745||!(e-262&-32)&&1<<e-262&2147487745||309===e||310===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}keyword_table_uncompat(){let e,s=new nK(this.context,this.state);this.enterRule(s,766,t.RULE_keyword_table_uncompat);try{this.enterOuterAlt(s,1),this.state=4182,e=this.tokenStream.LA(1),53===e||120===e||269===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}keyword_select_uncompat(){let e,s=new hK(this.context,this.state);this.enterRule(s,768,t.RULE_keyword_select_uncompat);try{this.enterOuterAlt(s,1),this.state=4184,e=this.tokenStream.LA(1),!(e-48&-32)&&1<<e-48&641||110===e||124===e||!(e-152&-32)&&1<<e-152&536936449||!(e-295&-32)&&1<<e-295&327681?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}keyword_alter_uncompat(){let e=new EK(this.context,this.state);this.enterRule(e,770,t.RULE_keyword_alter_uncompat);try{this.enterOuterAlt(e,1),this.state=4186,this.match(t.COLUMN)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}keyword_in_uncompat(){let e=new TK(this.context,this.state);this.enterRule(e,772,t.RULE_keyword_in_uncompat);try{this.enterOuterAlt(e,1),this.state=4188,this.match(t.COMPACT)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}keyword_window_uncompat(){let e,s=new oK(this.context,this.state);this.enterRule(s,774,t.RULE_keyword_window_uncompat);try{this.enterOuterAlt(s,1),this.state=4190,e=this.tokenStream.LA(1),150===e||231===e||256===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}keyword_hint_uncompat(){let e,s=new RK(this.context,this.state);this.enterRule(s,776,t.RULE_keyword_hint_uncompat);try{this.enterOuterAlt(s,1),this.state=4192,e=this.tokenStream.LA(1),78===e||259===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}keyword_as_compat(){let e,s=new AK(this.context,this.state);this.enterRule(s,778,t.RULE_keyword_as_compat);try{this.enterOuterAlt(s,1),this.state=4194,e=this.tokenStream.LA(1),!(e-61&-32)&&1<<e-61&20971521||!(e-94&-32)&&1<<e-94&9217||!(e-136&-32)&&1<<e-136&134219777||!(e-177&-32)&&1<<e-177&1409482373||!(e-214&-32)&&1<<e-214&142647537||!(e-250&-32)&&1<<e-250&273091585||!(e-287&-32)&&1<<e-287&2081?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}keyword_compat(){let e,s=new SK(this.context,this.state);this.enterRule(s,780,t.RULE_keyword_compat);try{this.enterOuterAlt(s,1),this.state=4196,e=this.tokenStream.LA(1),!(e-44&-32)&&1<<e-44&3396834799||!(e-76&-32)&&1<<e-76&3220987881||!(e-108&-32)&&1<<e-108&3186550523||!(e-140&-32)&&1<<e-140&4026518451||!(e-172&-32)&&1<<e-172&4211077617||!(e-204&-32)&&1<<e-204&3875536879||!(e-236&-32)&&1<<e-236&3949717367||!(e-268&-32)&&1<<e-268&4114603961||!(e-300&-32)&&1<<e-300&53695?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}type_id(){let e,s=new lK(this.context,this.state);this.enterRule(s,782,t.RULE_type_id);try{this.enterOuterAlt(s,1),this.state=4198,e=this.tokenStream.LA(1),70===e||106===e||119===e||138===e||182===e||208===e||!(e-243&-32)&&1<<e-243&136314881||!(e-281&-32)&&1<<e-281&33555457?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}bool_value(){let e,s=new OK(this.context,this.state);this.enterRule(s,784,t.RULE_bool_value);try{this.enterOuterAlt(s,1),this.state=4200,e=this.tokenStream.LA(1),133===e||290===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}real(){let e=new IK(this.context,this.state);this.enterRule(e,786,t.RULE_real);try{this.enterOuterAlt(e,1),this.state=4202,this.match(t.REAL)}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}integer(){let e,s=new uK(this.context,this.state);this.enterRule(s,788,t.RULE_integer);try{this.enterOuterAlt(s,1),this.state=4204,e=this.tokenStream.LA(1),319===e||320===e?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}sql_query_yq(){let e=new NK(this.context,this.state);this.enterRule(e,790,t.RULE_sql_query_yq);try{switch(this.state=4211,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,467,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4206,this.sql_stmt_list_yq();break;case 2:this.enterOuterAlt(e,2),this.state=4207,this.match(t.PRAGMA),this.state=4208,this.match(t.ANSI),this.state=4209,this.match(t.DIGITS),this.state=4210,this.ansi_sql_stmt_list()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}sql_stmt_list_yq(){let e,s=new LK(this.context,this.state);this.enterRule(s,792,t.RULE_sql_stmt_list_yq);try{let a;for(this.enterOuterAlt(s,1),this.state=4216,this.errorHandler.sync(this),e=this.tokenStream.LA(1);24===e;)this.state=4213,this.match(t.SEMICOLON),this.state=4218,this.errorHandler.sync(this),e=this.tokenStream.LA(1);for(this.state=4219,this.sql_stmt_yq(),this.state=4228,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,470,this.context);2!==a&&a!==ja.INVALID_ALT_NUMBER;){if(1===a){this.state=4221,this.errorHandler.sync(this),e=this.tokenStream.LA(1);do{this.state=4220,this.match(t.SEMICOLON),this.state=4223,this.errorHandler.sync(this),e=this.tokenStream.LA(1)}while(24===e);this.state=4225,this.sql_stmt_yq()}this.state=4230,this.errorHandler.sync(this),a=this.interpreter.adaptivePredict(this.tokenStream,470,this.context)}for(this.state=4234,this.errorHandler.sync(this),e=this.tokenStream.LA(1);24===e;)this.state=4231,this.match(t.SEMICOLON),this.state=4236,this.errorHandler.sync(this),e=this.tokenStream.LA(1);this.state=4237,this.match(t.EOF)}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}sql_stmt_yq(){let e,s=new CK(this.context,this.state);this.enterRule(s,794,t.RULE_sql_stmt_yq);try{this.enterOuterAlt(s,1),this.state=4244,this.errorHandler.sync(this),e=this.tokenStream.LA(1),129===e&&(this.state=4239,this.match(t.EXPLAIN),this.state=4242,this.errorHandler.sync(this),e=this.tokenStream.LA(1),1===e&&(this.state=4240,this.match(t.QUERY),this.state=4241,this.match(t.PLAN))),this.state=4246,this.sql_stmt_core_yq()}catch($c){if(!($c instanceof jr))throw $c;this.errorHandler.reportError(this,$c),this.errorHandler.recover(this,$c)}finally{this.exitRule()}return s}sql_stmt_core_yq(){let e=new _K(this.context,this.state);this.enterRule(e,796,t.RULE_sql_stmt_core_yq);try{switch(this.state=4261,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,474,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4248,this.pragma_stmt();break;case 2:this.enterOuterAlt(e,2),this.state=4249,this.select_stmt();break;case 3:this.enterOuterAlt(e,3),this.state=4250,this.named_nodes_stmt();break;case 4:this.enterOuterAlt(e,4),this.state=4251,this.use_stmt();break;case 5:this.enterOuterAlt(e,5),this.state=4252,this.into_table_stmt_yq();break;case 6:this.enterOuterAlt(e,6),this.state=4253,this.declare_stmt();break;case 7:this.enterOuterAlt(e,7),this.state=4254,this.import_stmt();break;case 8:this.enterOuterAlt(e,8),this.state=4255,this.export_stmt();break;case 9:this.enterOuterAlt(e,9),this.state=4256,this.do_stmt();break;case 10:this.enterOuterAlt(e,10),this.state=4257,this.define_action_or_subquery_stmt();break;case 11:this.enterOuterAlt(e,11),this.state=4258,this.if_stmt();break;case 12:this.enterOuterAlt(e,12),this.state=4259,this.for_stmt();break;case 13:this.enterOuterAlt(e,13),this.state=4260,this.values_stmt()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}replication_name(){let e=new PK(this.context,this.state);this.enterRule(e,798,t.RULE_replication_name);try{this.enterOuterAlt(e,1),this.state=4263,this.match(t.AS),this.state=4264,this.object_ref()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}where_expr(){let e=new MK(this.context,this.state);this.enterRule(e,800,t.RULE_where_expr);try{this.enterOuterAlt(e,1),this.state=4266,this.match(t.WHERE),this.state=4267,this.expr()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}from_stmt(){let e=new dK(this.context,this.state);this.enterRule(e,802,t.RULE_from_stmt);try{this.enterOuterAlt(e,1),this.state=4269,this.match(t.FROM),this.state=4270,this.join_source()}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}alter_table_for_autocomplete(){let e=new UK(this.context,this.state);this.enterRule(e,804,t.RULE_alter_table_for_autocomplete);try{switch(this.state=4274,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,475,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4272,this.alter_table_stmt();break;case 2:this.enterOuterAlt(e,2),this.state=4273,this.alter_table_store_stmt()}}catch(s){if(!(s instanceof jr))throw s;this.errorHandler.reportError(this,s),this.errorHandler.recover(this,s)}finally{this.exitRule()}return e}static get _ATN(){return t.__ATN||(t.__ATN=(new fr).deserialize(t._serializedATN)),t.__ATN}get vocabulary(){return t.vocabulary}},ji.QUERY=1,ji.EQUALS=2,ji.EQUALS2=3,ji.NOT_EQUALS=4,ji.NOT_EQUALS2=5,ji.LESS=6,ji.LESS_OR_EQ=7,ji.GREATER=8,ji.GREATER_OR_EQ=9,ji.SHIFT_LEFT=10,ji.ROT_LEFT=11,ji.AMPERSAND=12,ji.PIPE=13,ji.DOUBLE_PIPE=14,ji.STRUCT_OPEN=15,ji.STRUCT_CLOSE=16,ji.PLUS=17,ji.MINUS=18,ji.TILDA=19,ji.ASTERISK=20,ji.SLASH=21,ji.BACKSLASH=22,ji.PERCENT=23,ji.SEMICOLON=24,ji.DOT=25,ji.COMMA=26,ji.LPAREN=27,ji.RPAREN=28,ji.QUESTION=29,ji.COLON=30,ji.AT=31,ji.DOUBLE_AT=32,ji.DOLLAR=33,ji.QUOTE_DOUBLE=34,ji.QUOTE_SINGLE=35,ji.BACKTICK=36,ji.LBRACE_CURLY=37,ji.RBRACE_CURLY=38,ji.CARET=39,ji.NAMESPACE=40,ji.ARROW=41,ji.RBRACE_SQUARE=42,ji.LBRACE_SQUARE=43,ji.ABORT=44,ji.ACTION=45,ji.ADD=46,ji.AFTER=47,ji.ALL=48,ji.ALTER=49,ji.ANALYZE=50,ji.AND=51,ji.ANSI=52,ji.ANY=53,ji.ARRAY=54,ji.AS=55,ji.ASC=56,ji.ASSUME=57,ji.ASYMMETRIC=58,ji.ASYNC=59,ji.ATTACH=60,ji.ATTRIBUTES=61,ji.AUTOINCREMENT=62,ji.AUTOMAP=63,ji.BEFORE=64,ji.BEGIN=65,ji.BERNOULLI=66,ji.BETWEEN=67,ji.BITCAST=68,ji.BY=69,ji.CALLABLE=70,ji.CASCADE=71,ji.CASE=72,ji.CAST=73,ji.CHANGEFEED=74,ji.CHECK=75,ji.COLLATE=76,ji.COLUMN=77,ji.COLUMNS=78,ji.COMMIT=79,ji.COMPACT=80,ji.CONDITIONAL=81,ji.CONFLICT=82,ji.CONNECT=83,ji.CONSTRAINT=84,ji.CONSUMER=85,ji.COVER=86,ji.CREATE=87,ji.CROSS=88,ji.CUBE=89,ji.CURRENT=90,ji.CURRENT_DATE=91,ji.CURRENT_TIME=92,ji.CURRENT_TIMESTAMP=93,ji.DATA=94,ji.DATABASE=95,ji.DECIMAL=96,ji.DECLARE=97,ji.DEFAULT=98,ji.DEFERRABLE=99,ji.DEFERRED=100,ji.DEFINE=101,ji.DELETE=102,ji.DESC=103,ji.DESCRIBE=104,ji.DETACH=105,ji.DICT=106,ji.DIRECTORY=107,ji.DISABLE=108,ji.DISCARD=109,ji.DISTINCT=110,ji.DO=111,ji.DROP=112,ji.EACH=113,ji.ELSE=114,ji.EMPTY=115,ji.EMPTY_ACTION=116,ji.ENCRYPTED=117,ji.END=118,ji.ENUM=119,ji.ERASE=120,ji.ERROR=121,ji.ESCAPE=122,ji.EVALUATE=123,ji.EXCEPT=124,ji.EXCLUDE=125,ji.EXCLUSION=126,ji.EXCLUSIVE=127,ji.EXISTS=128,ji.EXPLAIN=129,ji.EXPORT=130,ji.EXTERNAL=131,ji.FAIL=132,ji.FALSE=133,ji.FAMILY=134,ji.FILTER=135,ji.FIRST=136,ji.FLATTEN=137,ji.FLOW=138,ji.FOLLOWING=139,ji.FOR=140,ji.FOREIGN=141,ji.FROM=142,ji.FULL=143,ji.FUNCTION=144,ji.GLOB=145,ji.GLOBAL=146,ji.GRANT=147,ji.GROUP=148,ji.GROUPING=149,ji.GROUPS=150,ji.HASH=151,ji.HAVING=152,ji.HOP=153,ji.IF=154,ji.IGNORE=155,ji.ILIKE=156,ji.IMMEDIATE=157,ji.IMPORT=158,ji.IN=159,ji.INDEX=160,ji.INDEXED=161,ji.INHERITS=162,ji.INITIAL=163,ji.INITIALLY=164,ji.INNER=165,ji.INSERT=166,ji.INSTEAD=167,ji.INTERSECT=168,ji.INTO=169,ji.IS=170,ji.ISNULL=171,ji.JOIN=172,ji.JSON_EXISTS=173,ji.JSON_QUERY=174,ji.JSON_VALUE=175,ji.KEY=176,ji.LAST=177,ji.LEFT=178,ji.LEGACY=179,ji.LIKE=180,ji.LIMIT=181,ji.LIST=182,ji.LOCAL=183,ji.MANAGE=184,ji.MATCH=185,ji.MATCHES=186,ji.MATCH_RECOGNIZE=187,ji.MEASURES=188,ji.MICROSECONDS=189,ji.MILLISECONDS=190,ji.MODIFY=191,ji.NANOSECONDS=192,ji.NATURAL=193,ji.NEXT=194,ji.NO=195,ji.NOT=196,ji.NOTNULL=197,ji.NULL=198,ji.NULLS=199,ji.OBJECT=200,ji.OF=201,ji.OFFSET=202,ji.OMIT=203,ji.ON=204,ji.ONE=205,ji.ONLY=206,ji.OPTION=207,ji.OPTIONAL=208,ji.OR=209,ji.ORDER=210,ji.OTHERS=211,ji.OUTER=212,ji.OVER=213,ji.PARALLEL=214,ji.PARTITION=215,ji.PASSING=216,ji.PASSWORD=217,ji.PAST=218,ji.PATTERN=219,ji.PER=220,ji.PERMUTE=221,ji.PLAN=222,ji.PRAGMA=223,ji.PRECEDING=224,ji.PRESORT=225,ji.PRIMARY=226,ji.PRIVILEGES=227,ji.PROCESS=228,ji.QUEUE=229,ji.RAISE=230,ji.RANGE=231,ji.REDUCE=232,ji.REFERENCES=233,ji.REGEXP=234,ji.REINDEX=235,ji.RELEASE=236,ji.REMOVE=237,ji.RENAME=238,ji.REPEATABLE=239,ji.REPLACE=240,ji.REPLICATION=241,ji.RESET=242,ji.RESOURCE=243,ji.RESPECT=244,ji.RESTRICT=245,ji.RESULT=246,ji.RETURN=247,ji.RETURNING=248,ji.REVERT=249,ji.REVOKE=250,ji.RIGHT=251,ji.RLIKE=252,ji.ROLLBACK=253,ji.ROLLUP=254,ji.ROW=255,ji.ROWS=256,ji.SAMPLE=257,ji.SAVEPOINT=258,ji.SCHEMA=259,ji.SECONDS=260,ji.SEEK=261,ji.SELECT=262,ji.SEMI=263,ji.SET=264,ji.SETS=265,ji.SHOW=266,ji.SKIP_RULE=267,ji.SOURCE=268,ji.STREAM=269,ji.STRUCT=270,ji.SUBQUERY=271,ji.SUBSET=272,ji.SYMBOLS=273,ji.SYMMETRIC=274,ji.SYNC=275,ji.SYSTEM=276,ji.TABLE=277,ji.TABLES=278,ji.TABLESAMPLE=279,ji.TABLESTORE=280,ji.TAGGED=281,ji.TEMP=282,ji.TEMPORARY=283,ji.THEN=284,ji.TIES=285,ji.TO=286,ji.TOPIC=287,ji.TRANSACTION=288,ji.TRIGGER=289,ji.TRUE=290,ji.TUPLE=291,ji.TYPE=292,ji.UNBOUNDED=293,ji.UNCONDITIONAL=294,ji.UNION=295,ji.UNIQUE=296,ji.UNKNOWN=297,ji.UNMATCHED=298,ji.UPDATE=299,ji.UPSERT=300,ji.USE=301,ji.USER=302,ji.USING=303,ji.VACUUM=304,ji.VALUES=305,ji.VARIANT=306,ji.VIEW=307,ji.VIRTUAL=308,ji.WHEN=309,ji.WHERE=310,ji.WINDOW=311,ji.WITH=312,ji.WITHOUT=313,ji.WRAPPER=314,ji.XOR=315,ji.STRING_VALUE=316,ji.ID_PLAIN=317,ji.ID_QUOTED=318,ji.DIGITS=319,ji.INTEGER_VALUE=320,ji.REAL=321,ji.BLOB=322,ji.WS=323,ji.COMMENT=324,ji.RULE_sql_query=0,ji.RULE_sql_stmt_list=1,ji.RULE_ansi_sql_stmt_list=2,ji.RULE_lambda_body=3,ji.RULE_lambda_stmt=4,ji.RULE_sql_stmt=5,ji.RULE_sql_stmt_core=6,ji.RULE_expr=7,ji.RULE_or_subexpr=8,ji.RULE_and_subexpr=9,ji.RULE_xor_subexpr=10,ji.RULE_distinct_from_op=11,ji.RULE_cond_expr=12,ji.RULE_match_op=13,ji.RULE_eq_subexpr=14,ji.RULE_shift_right=15,ji.RULE_rot_right=16,ji.RULE_double_question=17,ji.RULE_neq_subexpr=18,ji.RULE_bit_subexpr=19,ji.RULE_add_subexpr=20,ji.RULE_mul_subexpr=21,ji.RULE_con_subexpr=22,ji.RULE_unary_op=23,ji.RULE_unary_subexpr_suffix=24,ji.RULE_unary_casual_subexpr=25,ji.RULE_in_unary_casual_subexpr=26,ji.RULE_unary_subexpr=27,ji.RULE_in_unary_subexpr=28,ji.RULE_list_literal=29,ji.RULE_expr_dict_list=30,ji.RULE_dict_literal=31,ji.RULE_expr_struct_list=32,ji.RULE_struct_literal=33,ji.RULE_atom_expr=34,ji.RULE_in_atom_expr=35,ji.RULE_cast_expr=36,ji.RULE_bitcast_expr=37,ji.RULE_exists_expr=38,ji.RULE_case_expr=39,ji.RULE_lambda=40,ji.RULE_in_expr=41,ji.RULE_json_api_expr=42,ji.RULE_jsonpath_spec=43,ji.RULE_json_variable_name=44,ji.RULE_json_variable=45,ji.RULE_json_variables=46,ji.RULE_json_common_args=47,ji.RULE_json_case_handler=48,ji.RULE_json_value=49,ji.RULE_json_exists_handler=50,ji.RULE_json_exists=51,ji.RULE_json_query_wrapper=52,ji.RULE_json_query_handler=53,ji.RULE_json_query=54,ji.RULE_smart_parenthesis=55,ji.RULE_expr_list=56,ji.RULE_pure_column_list=57,ji.RULE_pure_column_or_named=58,ji.RULE_pure_column_or_named_list=59,ji.RULE_column_name=60,ji.RULE_without_column_name=61,ji.RULE_column_list=62,ji.RULE_without_column_list=63,ji.RULE_named_expr=64,ji.RULE_named_expr_list=65,ji.RULE_invoke_expr=66,ji.RULE_invoke_expr_tail=67,ji.RULE_using_call_expr=68,ji.RULE_key_expr=69,ji.RULE_when_expr=70,ji.RULE_literal_value=71,ji.RULE_bind_parameter=72,ji.RULE_opt_bind_parameter=73,ji.RULE_bind_parameter_list=74,ji.RULE_named_bind_parameter=75,ji.RULE_named_bind_parameter_list=76,ji.RULE_signed_number=77,ji.RULE_type_name_simple=78,ji.RULE_integer_or_bind=79,ji.RULE_type_name_tag=80,ji.RULE_struct_arg=81,ji.RULE_struct_arg_positional=82,ji.RULE_variant_arg=83,ji.RULE_callable_arg=84,ji.RULE_callable_arg_list=85,ji.RULE_type_name_decimal=86,ji.RULE_type_name_optional=87,ji.RULE_type_name_tuple=88,ji.RULE_type_name_struct=89,ji.RULE_type_name_variant=90,ji.RULE_type_name_list=91,ji.RULE_type_name_stream=92,ji.RULE_type_name_flow=93,ji.RULE_type_name_dict=94,ji.RULE_type_name_set=95,ji.RULE_type_name_enum=96,ji.RULE_type_name_resource=97,ji.RULE_type_name_tagged=98,ji.RULE_type_name_callable=99,ji.RULE_type_name_composite=100,ji.RULE_type_name=101,ji.RULE_type_name_or_bind=102,ji.RULE_value_constructor_literal=103,ji.RULE_value_constructor=104,ji.RULE_declare_stmt=105,ji.RULE_module_path=106,ji.RULE_import_stmt=107,ji.RULE_export_stmt=108,ji.RULE_call_action=109,ji.RULE_inline_action=110,ji.RULE_do_stmt=111,ji.RULE_pragma_stmt=112,ji.RULE_pragma_value=113,ji.RULE_sort_specification=114,ji.RULE_sort_specification_list=115,ji.RULE_select_stmt=116,ji.RULE_select_unparenthesized_stmt=117,ji.RULE_select_kind_parenthesis=118,ji.RULE_select_op=119,ji.RULE_select_kind_partial=120,ji.RULE_select_kind=121,ji.RULE_process_core=122,ji.RULE_external_call_param=123,ji.RULE_external_call_settings=124,ji.RULE_reduce_core=125,ji.RULE_opt_set_quantifier=126,ji.RULE_select_core=127,ji.RULE_row_pattern_recognition_clause=128,ji.RULE_row_pattern_rows_per_match=129,ji.RULE_row_pattern_empty_match_handling=130,ji.RULE_row_pattern_measures=131,ji.RULE_row_pattern_measure_list=132,ji.RULE_row_pattern_measure_definition=133,ji.RULE_row_pattern_common_syntax=134,ji.RULE_row_pattern_skip_to=135,ji.RULE_row_pattern_skip_to_variable_name=136,ji.RULE_row_pattern_initial_or_seek=137,ji.RULE_row_pattern=138,ji.RULE_row_pattern_term=139,ji.RULE_row_pattern_factor=140,ji.RULE_row_pattern_quantifier=141,ji.RULE_row_pattern_primary=142,ji.RULE_row_pattern_primary_variable_name=143,ji.RULE_row_pattern_permute=144,ji.RULE_row_pattern_subset_clause=145,ji.RULE_row_pattern_subset_list=146,ji.RULE_row_pattern_subset_item=147,ji.RULE_row_pattern_subset_item_variable_name=148,ji.RULE_row_pattern_subset_rhs=149,ji.RULE_row_pattern_subset_rhs_variable_name=150,ji.RULE_row_pattern_definition_list=151,ji.RULE_row_pattern_definition=152,ji.RULE_row_pattern_definition_variable_name=153,ji.RULE_row_pattern_definition_search_condition=154,ji.RULE_search_condition=155,ji.RULE_row_pattern_variable_name=156,ji.RULE_order_by_clause=157,ji.RULE_ext_order_by_clause=158,ji.RULE_group_by_clause=159,ji.RULE_grouping_element_list=160,ji.RULE_grouping_element=161,ji.RULE_ordinary_grouping_set=162,ji.RULE_ordinary_grouping_set_list=163,ji.RULE_rollup_list=164,ji.RULE_cube_list=165,ji.RULE_grouping_sets_specification=166,ji.RULE_hopping_window_specification=167,ji.RULE_result_column=168,ji.RULE_join_source=169,ji.RULE_named_column=170,ji.RULE_flatten_by_arg=171,ji.RULE_flatten_source=172,ji.RULE_named_single_source=173,ji.RULE_single_source=174,ji.RULE_sample_clause=175,ji.RULE_tablesample_clause=176,ji.RULE_sampling_mode=177,ji.RULE_repeatable_clause=178,ji.RULE_join_op=179,ji.RULE_join_constraint=180,ji.RULE_returning_columns_list=181,ji.RULE_into_table_stmt=182,ji.RULE_into_table_stmt_yq=183,ji.RULE_into_values_source=184,ji.RULE_values_stmt=185,ji.RULE_values_source=186,ji.RULE_values_source_row_list=187,ji.RULE_values_source_row=188,ji.RULE_simple_values_source=189,ji.RULE_create_external_data_source_stmt=190,ji.RULE_alter_external_data_source_stmt=191,ji.RULE_alter_external_data_source_action=192,ji.RULE_drop_external_data_source_stmt=193,ji.RULE_create_view_stmt=194,ji.RULE_drop_view_stmt=195,ji.RULE_upsert_object_stmt=196,ji.RULE_create_object_stmt=197,ji.RULE_create_object_features=198,ji.RULE_alter_object_stmt=199,ji.RULE_alter_object_features=200,ji.RULE_drop_object_stmt=201,ji.RULE_drop_object_features=202,ji.RULE_object_feature_value=203,ji.RULE_object_feature_kv=204,ji.RULE_object_feature_flag=205,ji.RULE_object_feature=206,ji.RULE_object_features=207,ji.RULE_object_type_ref=208,ji.RULE_create_table_stmt=209,ji.RULE_create_table_entry=210,ji.RULE_table_inherits=211,ji.RULE_table_partition_by=212,ji.RULE_with_table_settings=213,ji.RULE_table_tablestore=214,ji.RULE_table_settings_entry=215,ji.RULE_table_as_source=216,ji.RULE_alter_table_stmt=217,ji.RULE_alter_table_action=218,ji.RULE_alter_external_table_stmt=219,ji.RULE_alter_external_table_action=220,ji.RULE_alter_table_store_stmt=221,ji.RULE_alter_table_store_action=222,ji.RULE_alter_table_add_column=223,ji.RULE_alter_table_drop_column=224,ji.RULE_alter_table_alter_column=225,ji.RULE_alter_table_add_column_family=226,ji.RULE_alter_table_alter_column_family=227,ji.RULE_alter_table_set_table_setting_uncompat=228,ji.RULE_alter_table_set_table_setting_compat=229,ji.RULE_alter_table_reset_table_setting=230,ji.RULE_alter_table_add_index=231,ji.RULE_alter_table_drop_index=232,ji.RULE_alter_table_rename_to=233,ji.RULE_alter_table_rename_index_to=234,ji.RULE_alter_table_add_changefeed=235,ji.RULE_alter_table_alter_changefeed=236,ji.RULE_alter_table_drop_changefeed=237,ji.RULE_column_schema=238,ji.RULE_family_relation=239,ji.RULE_opt_column_constraints=240,ji.RULE_column_order_by_specification=241,ji.RULE_table_constraint=242,ji.RULE_table_index=243,ji.RULE_table_index_type=244,ji.RULE_global_index=245,ji.RULE_local_index=246,ji.RULE_changefeed=247,ji.RULE_changefeed_settings=248,ji.RULE_changefeed_settings_entry=249,ji.RULE_changefeed_setting_value=250,ji.RULE_changefeed_alter_settings=251,ji.RULE_alter_table_setting_entry=252,ji.RULE_table_setting_value=253,ji.RULE_family_entry=254,ji.RULE_family_settings=255,ji.RULE_family_settings_entry=256,ji.RULE_family_setting_value=257,ji.RULE_split_boundaries=258,ji.RULE_literal_value_list=259,ji.RULE_drop_table_stmt=260,ji.RULE_create_user_stmt=261,ji.RULE_alter_user_stmt=262,ji.RULE_create_group_stmt=263,ji.RULE_alter_group_stmt=264,ji.RULE_drop_role_stmt=265,ji.RULE_role_name=266,ji.RULE_create_user_option=267,ji.RULE_grant_permissions_stmt=268,ji.RULE_revoke_permissions_stmt=269,ji.RULE_permission_id=270,ji.RULE_permission_name=271,ji.RULE_permission_name_target=272,ji.RULE_create_replication_stmt=273,ji.RULE_replication_target=274,ji.RULE_replication_settings=275,ji.RULE_replication_settings_entry=276,ji.RULE_alter_replication_stmt=277,ji.RULE_alter_replication_action=278,ji.RULE_alter_replication_set_setting=279,ji.RULE_drop_replication_stmt=280,ji.RULE_action_or_subquery_args=281,ji.RULE_define_action_or_subquery_stmt=282,ji.RULE_define_action_or_subquery_body=283,ji.RULE_if_stmt=284,ji.RULE_for_stmt=285,ji.RULE_table_ref=286,ji.RULE_table_key=287,ji.RULE_table_arg=288,ji.RULE_table_hints=289,ji.RULE_table_hint=290,ji.RULE_object_ref=291,ji.RULE_simple_table_ref_core=292,ji.RULE_simple_table_ref=293,ji.RULE_into_simple_table_ref=294,ji.RULE_delete_stmt=295,ji.RULE_update_stmt=296,ji.RULE_set_clause_choice=297,ji.RULE_set_clause_list=298,ji.RULE_set_clause=299,ji.RULE_set_target=300,ji.RULE_multiple_column_assignment=301,ji.RULE_set_target_list=302,ji.RULE_create_topic_stmt=303,ji.RULE_create_topic_entries=304,ji.RULE_create_topic_entry=305,ji.RULE_with_topic_settings=306,ji.RULE_alter_topic_stmt=307,ji.RULE_alter_topic_action=308,ji.RULE_alter_topic_add_consumer=309,ji.RULE_topic_create_consumer_entry=310,ji.RULE_alter_topic_alter_consumer=311,ji.RULE_alter_topic_alter_consumer_entry=312,ji.RULE_alter_topic_drop_consumer=313,ji.RULE_topic_alter_consumer_set=314,ji.RULE_topic_alter_consumer_reset=315,ji.RULE_alter_topic_set_settings=316,ji.RULE_alter_topic_reset_settings=317,ji.RULE_drop_topic_stmt=318,ji.RULE_topic_settings=319,ji.RULE_topic_settings_entry=320,ji.RULE_topic_setting_value=321,ji.RULE_topic_consumer_with_settings=322,ji.RULE_topic_consumer_settings=323,ji.RULE_topic_consumer_settings_entry=324,ji.RULE_topic_consumer_setting_value=325,ji.RULE_topic_ref=326,ji.RULE_topic_consumer_ref=327,ji.RULE_null_treatment=328,ji.RULE_filter_clause=329,ji.RULE_window_name_or_specification=330,ji.RULE_window_name=331,ji.RULE_window_clause=332,ji.RULE_window_definition_list=333,ji.RULE_window_definition=334,ji.RULE_new_window_name=335,ji.RULE_window_specification=336,ji.RULE_window_specification_details=337,ji.RULE_existing_window_name=338,ji.RULE_window_partition_clause=339,ji.RULE_window_order_clause=340,ji.RULE_window_frame_clause=341,ji.RULE_window_frame_units=342,ji.RULE_window_frame_extent=343,ji.RULE_window_frame_between=344,ji.RULE_window_frame_bound=345,ji.RULE_window_frame_exclusion=346,ji.RULE_use_stmt=347,ji.RULE_subselect_stmt=348,ji.RULE_named_nodes_stmt=349,ji.RULE_commit_stmt=350,ji.RULE_rollback_stmt=351,ji.RULE_identifier=352,ji.RULE_id=353,ji.RULE_id_schema=354,ji.RULE_id_expr=355,ji.RULE_id_expr_in=356,ji.RULE_id_window=357,ji.RULE_id_table=358,ji.RULE_id_without=359,ji.RULE_id_hint=360,ji.RULE_id_as_compat=361,ji.RULE_an_id=362,ji.RULE_an_id_or_type=363,ji.RULE_an_id_schema=364,ji.RULE_an_id_expr=365,ji.RULE_an_id_expr_in=366,ji.RULE_an_id_window=367,ji.RULE_an_id_table=368,ji.RULE_an_id_without=369,ji.RULE_an_id_hint=370,ji.RULE_an_id_pure=371,ji.RULE_an_id_as_compat=372,ji.RULE_view_name=373,ji.RULE_opt_id_prefix=374,ji.RULE_cluster_expr=375,ji.RULE_id_or_type=376,ji.RULE_opt_id_prefix_or_type=377,ji.RULE_id_or_at=378,ji.RULE_id_table_or_type=379,ji.RULE_id_table_or_at=380,ji.RULE_keyword=381,ji.RULE_keyword_expr_uncompat=382,ji.RULE_keyword_table_uncompat=383,ji.RULE_keyword_select_uncompat=384,ji.RULE_keyword_alter_uncompat=385,ji.RULE_keyword_in_uncompat=386,ji.RULE_keyword_window_uncompat=387,ji.RULE_keyword_hint_uncompat=388,ji.RULE_keyword_as_compat=389,ji.RULE_keyword_compat=390,ji.RULE_type_id=391,ji.RULE_bool_value=392,ji.RULE_real=393,ji.RULE_integer=394,ji.RULE_sql_query_yq=395,ji.RULE_sql_stmt_list_yq=396,ji.RULE_sql_stmt_yq=397,ji.RULE_sql_stmt_core_yq=398,ji.RULE_replication_name=399,ji.RULE_where_expr=400,ji.RULE_from_stmt=401,ji.RULE_alter_table_for_autocomplete=402,ji.literalNames=[null,null,"'='","'=='","'!='","'<>'","'<'","'<='","'>'","'>='","'<<'","'|<<'","'&'","'|'","'||'","'<|'","'|>'","'+'","'-'","'~'","'*'","'/'","''","'%'","';'","'.'","','","'('","')'","'?'","':'","'@'","'@@'","'$'","'\"'","'''","'`'","'{'","'}'","'^'","'::'","'->'","']'","'['"],ji.symbolicNames=[null,"QUERY","EQUALS","EQUALS2","NOT_EQUALS","NOT_EQUALS2","LESS","LESS_OR_EQ","GREATER","GREATER_OR_EQ","SHIFT_LEFT","ROT_LEFT","AMPERSAND","PIPE","DOUBLE_PIPE","STRUCT_OPEN","STRUCT_CLOSE","PLUS","MINUS","TILDA","ASTERISK","SLASH","BACKSLASH","PERCENT","SEMICOLON","DOT","COMMA","LPAREN","RPAREN","QUESTION","COLON","AT","DOUBLE_AT","DOLLAR","QUOTE_DOUBLE","QUOTE_SINGLE","BACKTICK","LBRACE_CURLY","RBRACE_CURLY","CARET","NAMESPACE","ARROW","RBRACE_SQUARE","LBRACE_SQUARE","ABORT","ACTION","ADD","AFTER","ALL","ALTER","ANALYZE","AND","ANSI","ANY","ARRAY","AS","ASC","ASSUME","ASYMMETRIC","ASYNC","ATTACH","ATTRIBUTES","AUTOINCREMENT","AUTOMAP","BEFORE","BEGIN","BERNOULLI","BETWEEN","BITCAST","BY","CALLABLE","CASCADE","CASE","CAST","CHANGEFEED","CHECK","COLLATE","COLUMN","COLUMNS","COMMIT","COMPACT","CONDITIONAL","CONFLICT","CONNECT","CONSTRAINT","CONSUMER","COVER","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATA","DATABASE","DECIMAL","DECLARE","DEFAULT","DEFERRABLE","DEFERRED","DEFINE","DELETE","DESC","DESCRIBE","DETACH","DICT","DIRECTORY","DISABLE","DISCARD","DISTINCT","DO","DROP","EACH","ELSE","EMPTY","EMPTY_ACTION","ENCRYPTED","END","ENUM","ERASE","ERROR","ESCAPE","EVALUATE","EXCEPT","EXCLUDE","EXCLUSION","EXCLUSIVE","EXISTS","EXPLAIN","EXPORT","EXTERNAL","FAIL","FALSE","FAMILY","FILTER","FIRST","FLATTEN","FLOW","FOLLOWING","FOR","FOREIGN","FROM","FULL","FUNCTION","GLOB","GLOBAL","GRANT","GROUP","GROUPING","GROUPS","HASH","HAVING","HOP","IF","IGNORE","ILIKE","IMMEDIATE","IMPORT","IN","INDEX","INDEXED","INHERITS","INITIAL","INITIALLY","INNER","INSERT","INSTEAD","INTERSECT","INTO","IS","ISNULL","JOIN","JSON_EXISTS","JSON_QUERY","JSON_VALUE","KEY","LAST","LEFT","LEGACY","LIKE","LIMIT","LIST","LOCAL","MANAGE","MATCH","MATCHES","MATCH_RECOGNIZE","MEASURES","MICROSECONDS","MILLISECONDS","MODIFY","NANOSECONDS","NATURAL","NEXT","NO","NOT","NOTNULL","NULL","NULLS","OBJECT","OF","OFFSET","OMIT","ON","ONE","ONLY","OPTION","OPTIONAL","OR","ORDER","OTHERS","OUTER","OVER","PARALLEL","PARTITION","PASSING","PASSWORD","PAST","PATTERN","PER","PERMUTE","PLAN","PRAGMA","PRECEDING","PRESORT","PRIMARY","PRIVILEGES","PROCESS","QUEUE","RAISE","RANGE","REDUCE","REFERENCES","REGEXP","REINDEX","RELEASE","REMOVE","RENAME","REPEATABLE","REPLACE","REPLICATION","RESET","RESOURCE","RESPECT","RESTRICT","RESULT","RETURN","RETURNING","REVERT","REVOKE","RIGHT","RLIKE","ROLLBACK","ROLLUP","ROW","ROWS","SAMPLE","SAVEPOINT","SCHEMA","SECONDS","SEEK","SELECT","SEMI","SET","SETS","SHOW","SKIP_RULE","SOURCE","STREAM","STRUCT","SUBQUERY","SUBSET","SYMBOLS","SYMMETRIC","SYNC","SYSTEM","TABLE","TABLES","TABLESAMPLE","TABLESTORE","TAGGED","TEMP","TEMPORARY","THEN","TIES","TO","TOPIC","TRANSACTION","TRIGGER","TRUE","TUPLE","TYPE","UNBOUNDED","UNCONDITIONAL","UNION","UNIQUE","UNKNOWN","UNMATCHED","UPDATE","UPSERT","USE","USER","USING","VACUUM","VALUES","VARIANT","VIEW","VIRTUAL","WHEN","WHERE","WINDOW","WITH","WITHOUT","WRAPPER","XOR","STRING_VALUE","ID_PLAIN","ID_QUOTED","DIGITS","INTEGER_VALUE","REAL","BLOB","WS","COMMENT"],ji.ruleNames=["sql_query","sql_stmt_list","ansi_sql_stmt_list","lambda_body","lambda_stmt","sql_stmt","sql_stmt_core","expr","or_subexpr","and_subexpr","xor_subexpr","distinct_from_op","cond_expr","match_op","eq_subexpr","shift_right","rot_right","double_question","neq_subexpr","bit_subexpr","add_subexpr","mul_subexpr","con_subexpr","unary_op","unary_subexpr_suffix","unary_casual_subexpr","in_unary_casual_subexpr","unary_subexpr","in_unary_subexpr","list_literal","expr_dict_list","dict_literal","expr_struct_list","struct_literal","atom_expr","in_atom_expr","cast_expr","bitcast_expr","exists_expr","case_expr","lambda","in_expr","json_api_expr","jsonpath_spec","json_variable_name","json_variable","json_variables","json_common_args","json_case_handler","json_value","json_exists_handler","json_exists","json_query_wrapper","json_query_handler","json_query","smart_parenthesis","expr_list","pure_column_list","pure_column_or_named","pure_column_or_named_list","column_name","without_column_name","column_list","without_column_list","named_expr","named_expr_list","invoke_expr","invoke_expr_tail","using_call_expr","key_expr","when_expr","literal_value","bind_parameter","opt_bind_parameter","bind_parameter_list","named_bind_parameter","named_bind_parameter_list","signed_number","type_name_simple","integer_or_bind","type_name_tag","struct_arg","struct_arg_positional","variant_arg","callable_arg","callable_arg_list","type_name_decimal","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","type_name_composite","type_name","type_name_or_bind","value_constructor_literal","value_constructor","declare_stmt","module_path","import_stmt","export_stmt","call_action","inline_action","do_stmt","pragma_stmt","pragma_value","sort_specification","sort_specification_list","select_stmt","select_unparenthesized_stmt","select_kind_parenthesis","select_op","select_kind_partial","select_kind","process_core","external_call_param","external_call_settings","reduce_core","opt_set_quantifier","select_core","row_pattern_recognition_clause","row_pattern_rows_per_match","row_pattern_empty_match_handling","row_pattern_measures","row_pattern_measure_list","row_pattern_measure_definition","row_pattern_common_syntax","row_pattern_skip_to","row_pattern_skip_to_variable_name","row_pattern_initial_or_seek","row_pattern","row_pattern_term","row_pattern_factor","row_pattern_quantifier","row_pattern_primary","row_pattern_primary_variable_name","row_pattern_permute","row_pattern_subset_clause","row_pattern_subset_list","row_pattern_subset_item","row_pattern_subset_item_variable_name","row_pattern_subset_rhs","row_pattern_subset_rhs_variable_name","row_pattern_definition_list","row_pattern_definition","row_pattern_definition_variable_name","row_pattern_definition_search_condition","search_condition","row_pattern_variable_name","order_by_clause","ext_order_by_clause","group_by_clause","grouping_element_list","grouping_element","ordinary_grouping_set","ordinary_grouping_set_list","rollup_list","cube_list","grouping_sets_specification","hopping_window_specification","result_column","join_source","named_column","flatten_by_arg","flatten_source","named_single_source","single_source","sample_clause","tablesample_clause","sampling_mode","repeatable_clause","join_op","join_constraint","returning_columns_list","into_table_stmt","into_table_stmt_yq","into_values_source","values_stmt","values_source","values_source_row_list","values_source_row","simple_values_source","create_external_data_source_stmt","alter_external_data_source_stmt","alter_external_data_source_action","drop_external_data_source_stmt","create_view_stmt","drop_view_stmt","upsert_object_stmt","create_object_stmt","create_object_features","alter_object_stmt","alter_object_features","drop_object_stmt","drop_object_features","object_feature_value","object_feature_kv","object_feature_flag","object_feature","object_features","object_type_ref","create_table_stmt","create_table_entry","table_inherits","table_partition_by","with_table_settings","table_tablestore","table_settings_entry","table_as_source","alter_table_stmt","alter_table_action","alter_external_table_stmt","alter_external_table_action","alter_table_store_stmt","alter_table_store_action","alter_table_add_column","alter_table_drop_column","alter_table_alter_column","alter_table_add_column_family","alter_table_alter_column_family","alter_table_set_table_setting_uncompat","alter_table_set_table_setting_compat","alter_table_reset_table_setting","alter_table_add_index","alter_table_drop_index","alter_table_rename_to","alter_table_rename_index_to","alter_table_add_changefeed","alter_table_alter_changefeed","alter_table_drop_changefeed","column_schema","family_relation","opt_column_constraints","column_order_by_specification","table_constraint","table_index","table_index_type","global_index","local_index","changefeed","changefeed_settings","changefeed_settings_entry","changefeed_setting_value","changefeed_alter_settings","alter_table_setting_entry","table_setting_value","family_entry","family_settings","family_settings_entry","family_setting_value","split_boundaries","literal_value_list","drop_table_stmt","create_user_stmt","alter_user_stmt","create_group_stmt","alter_group_stmt","drop_role_stmt","role_name","create_user_option","grant_permissions_stmt","revoke_permissions_stmt","permission_id","permission_name","permission_name_target","create_replication_stmt","replication_target","replication_settings","replication_settings_entry","alter_replication_stmt","alter_replication_action","alter_replication_set_setting","drop_replication_stmt","action_or_subquery_args","define_action_or_subquery_stmt","define_action_or_subquery_body","if_stmt","for_stmt","table_ref","table_key","table_arg","table_hints","table_hint","object_ref","simple_table_ref_core","simple_table_ref","into_simple_table_ref","delete_stmt","update_stmt","set_clause_choice","set_clause_list","set_clause","set_target","multiple_column_assignment","set_target_list","create_topic_stmt","create_topic_entries","create_topic_entry","with_topic_settings","alter_topic_stmt","alter_topic_action","alter_topic_add_consumer","topic_create_consumer_entry","alter_topic_alter_consumer","alter_topic_alter_consumer_entry","alter_topic_drop_consumer","topic_alter_consumer_set","topic_alter_consumer_reset","alter_topic_set_settings","alter_topic_reset_settings","drop_topic_stmt","topic_settings","topic_settings_entry","topic_setting_value","topic_consumer_with_settings","topic_consumer_settings","topic_consumer_settings_entry","topic_consumer_setting_value","topic_ref","topic_consumer_ref","null_treatment","filter_clause","window_name_or_specification","window_name","window_clause","window_definition_list","window_definition","new_window_name","window_specification","window_specification_details","existing_window_name","window_partition_clause","window_order_clause","window_frame_clause","window_frame_units","window_frame_extent","window_frame_between","window_frame_bound","window_frame_exclusion","use_stmt","subselect_stmt","named_nodes_stmt","commit_stmt","rollback_stmt","identifier","id","id_schema","id_expr","id_expr_in","id_window","id_table","id_without","id_hint","id_as_compat","an_id","an_id_or_type","an_id_schema","an_id_expr","an_id_expr_in","an_id_window","an_id_table","an_id_without","an_id_hint","an_id_pure","an_id_as_compat","view_name","opt_id_prefix","cluster_expr","id_or_type","opt_id_prefix_or_type","id_or_at","id_table_or_type","id_table_or_at","keyword","keyword_expr_uncompat","keyword_table_uncompat","keyword_select_uncompat","keyword_alter_uncompat","keyword_in_uncompat","keyword_window_uncompat","keyword_hint_uncompat","keyword_as_compat","keyword_compat","type_id","bool_value","real","integer","sql_query_yq","sql_stmt_list_yq","sql_stmt_yq","sql_stmt_core_yq","replication_name","where_expr","from_stmt","alter_table_for_autocomplete"],ji._serializedATN=[4,1,324,4277,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,2,230,7,230,2,231,7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,235,7,235,2,236,7,236,2,237,7,237,2,238,7,238,2,239,7,239,2,240,7,240,2,241,7,241,2,242,7,242,2,243,7,243,2,244,7,244,2,245,7,245,2,246,7,246,2,247,7,247,2,248,7,248,2,249,7,249,2,250,7,250,2,251,7,251,2,252,7,252,2,253,7,253,2,254,7,254,2,255,7,255,2,256,7,256,2,257,7,257,2,258,7,258,2,259,7,259,2,260,7,260,2,261,7,261,2,262,7,262,2,263,7,263,2,264,7,264,2,265,7,265,2,266,7,266,2,267,7,267,2,268,7,268,2,269,7,269,2,270,7,270,2,271,7,271,2,272,7,272,2,273,7,273,2,274,7,274,2,275,7,275,2,276,7,276,2,277,7,277,2,278,7,278,2,279,7,279,2,280,7,280,2,281,7,281,2,282,7,282,2,283,7,283,2,284,7,284,2,285,7,285,2,286,7,286,2,287,7,287,2,288,7,288,2,289,7,289,2,290,7,290,2,291,7,291,2,292,7,292,2,293,7,293,2,294,7,294,2,295,7,295,2,296,7,296,2,297,7,297,2,298,7,298,2,299,7,299,2,300,7,300,2,301,7,301,2,302,7,302,2,303,7,303,2,304,7,304,2,305,7,305,2,306,7,306,2,307,7,307,2,308,7,308,2,309,7,309,2,310,7,310,2,311,7,311,2,312,7,312,2,313,7,313,2,314,7,314,2,315,7,315,2,316,7,316,2,317,7,317,2,318,7,318,2,319,7,319,2,320,7,320,2,321,7,321,2,322,7,322,2,323,7,323,2,324,7,324,2,325,7,325,2,326,7,326,2,327,7,327,2,328,7,328,2,329,7,329,2,330,7,330,2,331,7,331,2,332,7,332,2,333,7,333,2,334,7,334,2,335,7,335,2,336,7,336,2,337,7,337,2,338,7,338,2,339,7,339,2,340,7,340,2,341,7,341,2,342,7,342,2,343,7,343,2,344,7,344,2,345,7,345,2,346,7,346,2,347,7,347,2,348,7,348,2,349,7,349,2,350,7,350,2,351,7,351,2,352,7,352,2,353,7,353,2,354,7,354,2,355,7,355,2,356,7,356,2,357,7,357,2,358,7,358,2,359,7,359,2,360,7,360,2,361,7,361,2,362,7,362,2,363,7,363,2,364,7,364,2,365,7,365,2,366,7,366,2,367,7,367,2,368,7,368,2,369,7,369,2,370,7,370,2,371,7,371,2,372,7,372,2,373,7,373,2,374,7,374,2,375,7,375,2,376,7,376,2,377,7,377,2,378,7,378,2,379,7,379,2,380,7,380,2,381,7,381,2,382,7,382,2,383,7,383,2,384,7,384,2,385,7,385,2,386,7,386,2,387,7,387,2,388,7,388,2,389,7,389,2,390,7,390,2,391,7,391,2,392,7,392,2,393,7,393,2,394,7,394,2,395,7,395,2,396,7,396,2,397,7,397,2,398,7,398,2,399,7,399,2,400,7,400,2,401,7,401,2,402,7,402,1,0,1,0,1,0,1,0,1,0,3,0,812,8,0,1,1,5,1,815,8,1,10,1,12,1,818,9,1,1,1,1,1,4,1,822,8,1,11,1,12,1,823,1,1,5,1,827,8,1,10,1,12,1,830,9,1,1,1,5,1,833,8,1,10,1,12,1,836,9,1,1,1,1,1,1,2,5,2,841,8,2,10,2,12,2,844,9,2,1,2,1,2,1,3,5,3,849,8,3,10,3,12,3,852,9,3,1,3,1,3,4,3,856,8,3,11,3,12,3,857,5,3,860,8,3,10,3,12,3,863,9,3,1,3,1,3,1,3,5,3,868,8,3,10,3,12,3,871,9,3,1,4,1,4,3,4,875,8,4,1,5,1,5,1,5,3,5,880,8,5,3,5,882,8,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,3,6,930,8,6,1,7,1,7,1,7,5,7,935,8,7,10,7,12,7,938,9,7,1,7,3,7,941,8,7,1,8,1,8,1,8,5,8,946,8,8,10,8,12,8,949,9,8,1,9,1,9,1,9,5,9,954,8,9,10,9,12,9,957,9,9,1,10,1,10,3,10,961,8,10,1,11,1,11,3,11,965,8,11,1,11,1,11,1,11,1,12,3,12,971,8,12,1,12,1,12,1,12,1,12,3,12,977,8,12,1,12,3,12,980,8,12,1,12,1,12,3,12,984,8,12,1,12,1,12,1,12,1,12,1,12,1,12,3,12,992,8,12,1,12,1,12,3,12,996,8,12,1,12,3,12,999,8,12,1,12,1,12,3,12,1003,8,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,1,12,3,12,1014,8,12,1,12,4,12,1017,8,12,11,12,12,12,1018,3,12,1021,8,12,1,13,1,13,1,14,1,14,1,14,5,14,1028,8,14,10,14,12,14,1031,9,14,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,3,18,1051,8,18,1,18,5,18,1054,8,18,10,18,12,18,1057,9,18,1,18,1,18,1,18,1,18,4,18,1063,8,18,11,18,12,18,1064,3,18,1067,8,18,1,19,1,19,1,19,5,19,1072,8,19,10,19,12,19,1075,9,19,1,20,1,20,1,20,5,20,1080,8,20,10,20,12,20,1083,9,20,1,21,1,21,1,21,5,21,1088,8,21,10,21,12,21,1091,9,21,1,22,1,22,1,22,1,22,3,22,1097,8,22,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,24,3,24,1107,8,24,5,24,1109,8,24,10,24,12,24,1112,9,24,1,24,1,24,3,24,1116,8,24,1,25,1,25,3,25,1120,8,25,1,25,1,25,1,26,1,26,3,26,1126,8,26,1,26,1,26,1,27,1,27,3,27,1132,8,27,1,28,1,28,3,28,1136,8,28,1,29,1,29,3,29,1140,8,29,1,29,3,29,1143,8,29,1,29,1,29,1,30,1,30,1,30,3,30,1150,8,30,1,30,1,30,1,30,1,30,3,30,1156,8,30,5,30,1158,8,30,10,30,12,30,1161,9,30,1,31,1,31,3,31,1165,8,31,1,31,3,31,1168,8,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,5,32,1180,8,32,10,32,12,32,1183,9,32,1,33,1,33,3,33,1187,8,33,1,33,3,33,1190,8,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,3,34,1204,8,34,1,34,1,34,1,34,1,34,1,34,3,34,1211,8,34,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,3,35,1222,8,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,3,35,1233,8,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,3,38,1253,8,38,1,38,1,38,1,39,1,39,3,39,1259,8,39,1,39,4,39,1262,8,39,11,39,12,39,1263,1,39,1,39,3,39,1268,8,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,3,40,1282,8,40,3,40,1284,8,40,1,41,1,41,1,42,1,42,1,42,3,42,1291,8,42,1,43,1,43,1,44,1,44,3,44,1297,8,44,1,45,1,45,1,45,1,45,1,46,1,46,1,46,5,46,1306,8,46,10,46,12,46,1309,9,46,1,47,1,47,1,47,1,47,1,47,3,47,1316,8,47,1,48,1,48,1,48,1,48,3,48,1322,8,48,1,49,1,49,1,49,1,49,1,49,3,49,1329,8,49,1,49,1,49,1,49,1,49,5,49,1335,8,49,10,49,12,49,1338,9,49,1,49,1,49,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,3,51,1350,8,51,1,51,1,51,1,52,1,52,3,52,1356,8,52,1,52,1,52,3,52,1360,8,52,1,52,3,52,1363,8,52,3,52,1365,8,52,1,53,1,53,1,53,1,53,1,53,1,53,3,53,1373,8,53,1,54,1,54,1,54,1,54,1,54,1,54,3,54,1381,8,54,1,54,1,54,1,54,1,54,3,54,1387,8,54,1,54,1,54,1,54,1,54,3,54,1393,8,54,1,54,1,54,1,55,1,55,3,55,1399,8,55,1,55,3,55,1402,8,55,1,55,1,55,1,56,1,56,1,56,5,56,1409,8,56,10,56,12,56,1412,9,56,1,57,1,57,1,57,1,57,5,57,1418,8,57,10,57,12,57,1421,9,57,1,57,1,57,1,58,1,58,3,58,1427,8,58,1,59,1,59,1,59,1,59,5,59,1433,8,59,10,59,12,59,1436,9,59,1,59,1,59,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,3,61,1448,8,61,1,62,1,62,1,62,5,62,1453,8,62,10,62,12,62,1456,9,62,1,62,3,62,1459,8,62,1,63,1,63,1,63,5,63,1464,8,63,10,63,12,63,1467,9,63,1,63,3,63,1470,8,63,1,64,1,64,1,64,3,64,1475,8,64,1,65,1,65,1,65,5,65,1480,8,65,10,65,12,65,1483,9,65,1,66,1,66,1,66,1,66,3,66,1489,8,66,1,66,3,66,1492,8,66,1,66,1,66,1,66,1,67,1,67,3,67,1499,8,67,1,67,1,67,3,67,1503,8,67,1,68,1,68,1,68,1,68,1,68,1,68,1,68,1,68,3,68,1513,8,68,1,68,1,68,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,3,71,1536,8,71,1,72,1,72,1,72,1,72,3,72,1542,8,72,1,73,1,73,3,73,1546,8,73,1,74,1,74,1,74,5,74,1551,8,74,10,74,12,74,1554,9,74,1,75,1,75,1,75,3,75,1559,8,75,1,76,1,76,1,76,5,76,1564,8,76,10,76,12,76,1567,9,76,1,77,3,77,1570,8,77,1,77,1,77,3,77,1574,8,77,1,78,1,78,1,79,1,79,3,79,1580,8,79,1,80,1,80,1,80,3,80,1585,8,80,1,81,1,81,1,81,1,81,1,82,1,82,1,82,3,82,1594,8,82,1,82,3,82,1597,8,82,1,82,1,82,1,82,1,82,3,82,1603,8,82,1,83,1,83,1,83,3,83,1608,8,83,1,83,1,83,1,84,1,84,1,84,1,84,3,84,1616,8,84,1,85,1,85,1,85,5,85,1621,8,85,10,85,12,85,1624,9,85,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,88,1,88,1,88,1,88,1,88,5,88,1643,8,88,10,88,12,88,1646,9,88,1,88,3,88,1649,8,88,3,88,1651,8,88,1,88,1,88,3,88,1655,8,88,1,89,1,89,1,89,1,89,1,89,5,89,1662,8,89,10,89,12,89,1665,9,89,1,89,3,89,1668,8,89,3,89,1670,8,89,1,89,1,89,3,89,1674,8,89,1,90,1,90,1,90,1,90,1,90,5,90,1681,8,90,10,90,12,90,1684,9,90,1,90,3,90,1687,8,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,95,1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,5,96,1723,8,96,10,96,12,96,1726,9,96,1,96,3,96,1729,8,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,99,1,99,1,99,1,99,3,99,1749,8,99,1,99,3,99,1752,8,99,1,99,1,99,1,99,1,99,3,99,1758,8,99,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,3,100,1778,8,100,1,100,5,100,1781,8,100,10,100,12,100,1784,9,100,1,101,1,101,1,101,3,101,1789,8,101,1,101,5,101,1792,8,101,10,101,12,101,1795,9,101,3,101,1797,8,101,1,102,1,102,3,102,1801,8,102,1,103,1,103,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,3,104,1828,8,104,1,105,1,105,1,105,1,105,1,105,1,105,3,105,1836,8,105,1,106,3,106,1839,8,106,1,106,1,106,1,106,5,106,1844,8,106,10,106,12,106,1847,9,106,1,107,1,107,1,107,1,107,1,107,1,108,1,108,1,108,1,109,1,109,3,109,1859,8,109,1,109,1,109,3,109,1863,8,109,1,109,1,109,1,110,1,110,1,110,1,110,1,110,1,111,1,111,1,111,3,111,1875,8,111,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,5,112,1886,8,112,10,112,12,112,1889,9,112,1,112,1,112,3,112,1893,8,112,1,113,1,113,1,113,1,113,1,113,3,113,1900,8,113,1,114,1,114,3,114,1904,8,114,1,115,1,115,1,115,5,115,1909,8,115,10,115,12,115,1912,9,115,1,116,1,116,1,116,1,116,5,116,1918,8,116,10,116,12,116,1921,9,116,1,117,1,117,1,117,1,117,5,117,1927,8,117,10,117,12,117,1930,9,117,1,118,1,118,1,118,1,118,1,118,3,118,1937,8,118,1,119,1,119,3,119,1941,8,119,1,119,1,119,3,119,1945,8,119,1,120,1,120,1,120,1,120,1,120,3,120,1952,8,120,3,120,1954,8,120,1,121,3,121,1957,8,121,1,121,1,121,1,121,3,121,1962,8,121,1,121,1,121,1,121,3,121,1967,8,121,1,122,1,122,3,122,1971,8,122,1,122,1,122,1,122,5,122,1976,8,122,10,122,12,122,1979,9,122,1,122,1,122,1,122,1,122,3,122,1985,8,122,1,122,1,122,3,122,1989,8,122,1,122,3,122,1992,8,122,1,122,1,122,3,122,1996,8,122,1,122,1,122,3,122,2e3,8,122,3,122,2002,8,122,1,123,1,123,1,123,1,123,1,124,1,124,1,124,5,124,2011,8,124,10,124,12,124,2014,9,124,1,125,1,125,1,125,1,125,5,125,2020,8,125,10,125,12,125,2023,9,125,1,125,1,125,3,125,2027,8,125,1,125,1,125,1,125,1,125,3,125,2033,8,125,1,125,1,125,1,125,3,125,2038,8,125,1,125,3,125,2041,8,125,1,125,1,125,3,125,2045,8,125,1,125,1,125,3,125,2049,8,125,1,126,3,126,2052,8,126,1,127,1,127,3,127,2056,8,127,1,127,1,127,3,127,2060,8,127,1,127,1,127,1,127,1,127,5,127,2066,8,127,10,127,12,127,2069,9,127,1,127,3,127,2072,8,127,1,127,1,127,3,127,2076,8,127,1,127,1,127,3,127,2080,8,127,1,127,3,127,2083,8,127,1,127,3,127,2086,8,127,1,127,1,127,3,127,2090,8,127,1,127,3,127,2093,8,127,1,127,3,127,2096,8,127,1,128,1,128,1,128,3,128,2101,8,128,1,128,3,128,2104,8,128,1,128,3,128,2107,8,128,1,128,3,128,2110,8,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,3,129,2124,8,129,3,129,2126,8,129,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,3,130,2137,8,130,1,131,1,131,1,131,1,132,1,132,1,132,5,132,2145,8,132,10,132,12,132,2148,9,132,1,133,1,133,1,133,1,133,1,134,1,134,1,134,3,134,2157,8,134,1,134,3,134,2160,8,134,1,134,1,134,1,134,1,134,1,134,3,134,2167,8,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,3,135,2191,8,135,1,136,1,136,1,137,1,137,1,138,1,138,1,138,5,138,2200,8,138,10,138,12,138,2203,9,138,1,139,4,139,2206,8,139,11,139,12,139,2207,1,140,1,140,3,140,2212,8,140,1,141,1,141,3,141,2216,8,141,1,141,1,141,3,141,2220,8,141,1,141,1,141,3,141,2224,8,141,1,141,1,141,3,141,2228,8,141,1,141,1,141,3,141,2232,8,141,1,141,1,141,3,141,2236,8,141,1,141,1,141,1,141,1,141,3,141,2242,8,141,1,142,1,142,1,142,1,142,1,142,3,142,2249,8,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,3,142,2259,8,142,1,143,1,143,1,144,1,144,1,144,1,144,1,144,5,144,2268,8,144,10,144,12,144,2271,9,144,1,144,1,144,1,145,1,145,1,145,1,146,1,146,1,146,5,146,2281,8,146,10,146,12,146,2284,9,146,1,147,1,147,1,147,1,147,1,147,1,147,1,148,1,148,1,149,1,149,1,149,5,149,2297,8,149,10,149,12,149,2300,9,149,1,150,1,150,1,151,1,151,1,151,5,151,2307,8,151,10,151,12,151,2310,9,151,1,152,1,152,1,152,1,152,1,153,1,153,1,154,1,154,1,155,1,155,1,156,1,156,1,157,1,157,1,157,1,157,1,158,3,158,2329,8,158,1,158,1,158,1,159,1,159,3,159,2335,8,159,1,159,1,159,1,159,1,159,1,159,3,159,2342,8,159,1,160,1,160,1,160,5,160,2347,8,160,10,160,12,160,2350,9,160,1,161,1,161,1,161,1,161,1,161,3,161,2357,8,161,1,162,1,162,1,163,1,163,1,163,5,163,2364,8,163,10,163,12,163,2367,9,163,1,164,1,164,1,164,1,164,1,164,1,165,1,165,1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,166,1,166,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,168,1,168,1,168,1,168,1,168,1,168,1,168,3,168,2403,8,168,3,168,2405,8,168,1,169,3,169,2408,8,169,1,169,1,169,1,169,3,169,2413,8,169,1,169,1,169,3,169,2417,8,169,5,169,2419,8,169,10,169,12,169,2422,9,169,1,170,1,170,1,170,3,170,2427,8,170,1,171,1,171,1,171,1,171,3,171,2433,8,171,1,171,1,171,3,171,2437,8,171,1,172,1,172,1,172,3,172,2442,8,172,1,172,1,172,1,172,3,172,2447,8,172,3,172,2449,8,172,1,173,1,173,3,173,2453,8,173,1,173,1,173,1,173,3,173,2458,8,173,1,173,3,173,2461,8,173,3,173,2463,8,173,1,173,1,173,3,173,2467,8,173,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,3,174,2478,8,174,1,175,1,175,1,175,1,176,1,176,1,176,1,176,1,176,1,176,3,176,2489,8,176,1,177,1,177,1,178,1,178,1,178,1,178,1,178,1,179,1,179,3,179,2500,8,179,1,179,1,179,3,179,2504,8,179,1,179,1,179,3,179,2508,8,179,1,179,1,179,3,179,2512,8,179,1,179,3,179,2515,8,179,1,179,1,179,3,179,2519,8,179,1,179,3,179,2522,8,179,1,180,1,180,1,180,1,180,3,180,2528,8,180,1,181,1,181,1,181,1,181,1,181,5,181,2535,8,181,10,181,12,181,2538,9,181,3,181,2540,8,181,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,1,182,3,182,2554,8,182,1,182,1,182,1,182,1,182,3,182,2560,8,182,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,183,3,183,2573,8,183,1,183,1,183,1,183,1,183,1,184,3,184,2580,8,184,1,184,1,184,1,184,3,184,2585,8,184,1,185,1,185,1,185,1,186,1,186,3,186,2592,8,186,1,187,1,187,1,187,5,187,2597,8,187,10,187,12,187,2600,9,187,1,188,1,188,1,188,1,188,1,189,1,189,3,189,2608,8,189,1,190,1,190,1,190,3,190,2613,8,190,1,190,1,190,1,190,1,190,1,190,1,190,3,190,2621,8,190,1,190,1,190,1,190,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,191,5,191,2634,8,191,10,191,12,191,2637,9,191,1,192,1,192,1,192,3,192,2642,8,192,1,193,1,193,1,193,1,193,1,193,1,193,3,193,2650,8,193,1,193,1,193,1,194,1,194,1,194,1,194,1,194,1,194,1,194,1,195,1,195,1,195,1,195,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,3,196,2673,8,196,1,197,1,197,1,197,1,197,1,197,3,197,2680,8,197,1,197,1,197,1,197,1,197,1,197,1,197,3,197,2688,8,197,1,198,1,198,1,198,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,200,1,200,1,200,1,201,1,201,1,201,1,201,3,201,2709,8,201,1,201,1,201,1,201,1,201,1,201,1,201,3,201,2717,8,201,1,202,1,202,1,202,1,203,1,203,1,203,3,203,2725,8,203,1,204,1,204,1,204,1,204,1,205,1,205,1,206,1,206,3,206,2735,8,206,1,207,1,207,1,207,1,207,1,207,5,207,2742,8,207,10,207,12,207,2745,9,207,1,207,1,207,3,207,2749,8,207,1,208,1,208,1,209,1,209,1,209,3,209,2756,8,209,1,209,1,209,1,209,1,209,1,209,1,209,1,209,1,209,3,209,2766,8,209,1,209,1,209,1,209,3,209,2771,8,209,1,209,1,209,1,209,1,209,1,209,5,209,2778,8,209,10,209,12,209,2781,9,209,1,209,3,209,2784,8,209,1,209,1,209,3,209,2788,8,209,1,209,3,209,2791,8,209,1,209,3,209,2794,8,209,1,209,3,209,2797,8,209,1,209,3,209,2800,8,209,1,210,1,210,1,210,1,210,1,210,1,210,3,210,2808,8,210,1,211,1,211,1,211,1,211,1,211,5,211,2815,8,211,10,211,12,211,2818,9,211,1,211,1,211,1,212,1,212,1,212,1,212,1,212,1,213,1,213,1,213,1,213,1,213,5,213,2832,8,213,10,213,12,213,2835,9,213,1,213,1,213,1,214,1,214,1,214,1,215,1,215,1,215,1,215,1,216,1,216,1,216,1,217,1,217,1,217,1,217,1,217,1,217,5,217,2855,8,217,10,217,12,217,2858,9,217,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,3,218,2875,8,218,1,219,1,219,1,219,1,219,1,219,1,219,1,219,5,219,2884,8,219,10,219,12,219,2887,9,219,1,220,1,220,1,220,1,220,1,220,3,220,2894,8,220,1,221,1,221,1,221,1,221,1,221,1,221,5,221,2902,8,221,10,221,12,221,2905,9,221,1,222,1,222,3,222,2909,8,222,1,223,1,223,3,223,2913,8,223,1,223,1,223,1,224,1,224,3,224,2919,8,224,1,224,1,224,1,225,1,225,1,225,1,225,1,225,1,225,1,226,1,226,1,226,1,227,1,227,1,227,1,227,1,227,1,227,1,227,1,228,1,228,1,228,1,228,1,229,1,229,1,229,1,229,1,229,5,229,2948,8,229,10,229,12,229,2951,9,229,1,229,1,229,1,230,1,230,1,230,1,230,1,230,5,230,2960,8,230,10,230,12,230,2963,9,230,1,230,1,230,1,231,1,231,1,231,1,232,1,232,1,232,1,232,1,233,1,233,1,233,1,233,1,234,1,234,1,234,1,234,1,234,1,234,1,235,1,235,1,235,1,236,1,236,1,236,1,236,1,236,1,237,1,237,1,237,1,237,1,238,1,238,1,238,3,238,2999,8,238,1,238,1,238,1,239,1,239,1,239,1,240,3,240,3007,8,240,1,240,3,240,3010,8,240,1,240,1,240,3,240,3014,8,240,1,241,1,241,3,241,3018,8,241,1,242,1,242,1,242,1,242,1,242,1,242,5,242,3026,8,242,10,242,12,242,3029,9,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,5,242,3039,8,242,10,242,12,242,3042,9,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,5,242,3052,8,242,10,242,12,242,3055,9,242,1,242,1,242,3,242,3059,8,242,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,5,243,3074,8,243,10,243,12,243,3077,9,243,1,243,3,243,3080,8,243,1,243,1,243,3,243,3084,8,243,1,243,1,243,1,243,1,243,1,243,5,243,3091,8,243,10,243,12,243,3094,9,243,1,243,1,243,1,243,1,243,1,243,1,243,5,243,3102,8,243,10,243,12,243,3105,9,243,1,243,1,243,3,243,3109,8,243,1,244,1,244,3,244,3113,8,244,1,245,1,245,3,245,3117,8,245,1,245,3,245,3120,8,245,1,246,1,246,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,248,1,248,1,248,5,248,3134,8,248,10,248,12,248,3137,9,248,1,249,1,249,1,249,1,249,1,250,1,250,1,251,1,251,1,251,1,251,1,251,1,251,3,251,3151,8,251,1,252,1,252,1,252,1,252,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,3,253,3166,8,253,1,253,3,253,3169,8,253,1,254,1,254,1,254,1,254,1,255,1,255,1,255,1,255,5,255,3179,8,255,10,255,12,255,3182,9,255,3,255,3184,8,255,1,255,1,255,1,256,1,256,1,256,1,256,1,257,1,257,1,258,1,258,1,258,1,258,5,258,3198,8,258,10,258,12,258,3201,9,258,1,258,1,258,1,258,3,258,3206,8,258,1,259,1,259,1,259,1,259,5,259,3212,8,259,10,259,12,259,3215,9,259,1,259,1,259,1,260,1,260,1,260,1,260,1,260,3,260,3224,8,260,1,260,1,260,3,260,3228,8,260,1,260,1,260,1,261,1,261,1,261,1,261,3,261,3236,8,261,1,262,1,262,1,262,1,262,3,262,3242,8,262,1,262,1,262,1,262,1,262,3,262,3248,8,262,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,5,263,3258,8,263,10,263,12,263,3261,9,263,1,263,3,263,3264,8,263,3,263,3266,8,263,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,5,264,3276,8,264,10,264,12,264,3279,9,264,1,264,3,264,3282,8,264,1,264,1,264,1,264,3,264,3287,8,264,1,265,1,265,1,265,1,265,3,265,3293,8,265,1,265,1,265,1,265,5,265,3298,8,265,10,265,12,265,3301,9,265,1,265,3,265,3304,8,265,1,266,1,266,3,266,3308,8,266,1,267,3,267,3311,8,267,1,267,1,267,1,267,1,268,1,268,1,268,1,268,1,268,1,268,5,268,3322,8,268,10,268,12,268,3325,9,268,1,268,1,268,1,268,1,268,5,268,3331,8,268,10,268,12,268,3334,9,268,1,268,3,268,3337,8,268,1,268,1,268,1,268,3,268,3342,8,268,1,269,1,269,1,269,1,269,3,269,3348,8,269,1,269,1,269,1,269,1,269,1,269,5,269,3355,8,269,10,269,12,269,3358,9,269,1,269,1,269,1,269,1,269,5,269,3364,8,269,10,269,12,269,3367,9,269,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,1,270,3,270,3383,8,270,1,270,1,270,3,270,3387,8,270,1,270,1,270,3,270,3391,8,270,3,270,3393,8,270,1,271,1,271,3,271,3397,8,271,1,272,1,272,1,272,5,272,3402,8,272,10,272,12,272,3405,9,272,1,272,3,272,3408,8,272,1,272,1,272,3,272,3412,8,272,3,272,3414,8,272,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,5,273,3424,8,273,10,273,12,273,3427,9,273,1,273,1,273,1,273,1,273,1,273,1,274,1,274,1,274,1,275,1,275,1,275,5,275,3440,8,275,10,275,12,275,3443,9,275,1,276,1,276,1,276,1,276,1,277,1,277,1,277,1,277,1,277,1,277,1,277,5,277,3456,8,277,10,277,12,277,3459,9,277,1,278,1,278,1,279,1,279,1,279,1,279,1,279,1,280,1,280,1,280,1,280,1,280,3,280,3473,8,280,1,281,1,281,1,281,5,281,3478,8,281,10,281,12,281,3481,9,281,1,282,1,282,1,282,1,282,1,282,3,282,3488,8,282,1,282,1,282,1,282,1,282,1,282,1,282,1,283,5,283,3497,8,283,10,283,12,283,3500,9,283,1,283,1,283,4,283,3504,8,283,11,283,12,283,3505,1,283,5,283,3509,8,283,10,283,12,283,3512,9,283,1,283,5,283,3515,8,283,10,283,12,283,3518,9,283,3,283,3520,8,283,1,284,3,284,3523,8,284,1,284,1,284,1,284,1,284,1,284,3,284,3530,8,284,1,285,3,285,3533,8,285,1,285,3,285,3536,8,285,1,285,1,285,1,285,1,285,1,285,1,285,1,285,3,285,3545,8,285,1,286,1,286,1,286,3,286,3550,8,286,1,286,3,286,3553,8,286,1,286,1,286,1,286,1,286,1,286,1,286,5,286,3561,8,286,10,286,12,286,3564,9,286,1,286,3,286,3567,8,286,3,286,3569,8,286,1,286,1,286,1,286,1,286,1,286,3,286,3576,8,286,1,286,3,286,3579,8,286,1,286,1,286,3,286,3583,8,286,3,286,3585,8,286,1,286,3,286,3588,8,286,1,287,1,287,1,287,3,287,3593,8,287,1,288,3,288,3596,8,288,1,288,1,288,1,288,3,288,3601,8,288,1,289,1,289,1,289,1,289,1,289,1,289,5,289,3609,8,289,10,289,12,289,3612,9,289,1,289,1,289,3,289,3616,8,289,1,290,1,290,1,290,1,290,1,290,1,290,1,290,5,290,3625,8,290,10,290,12,290,3628,9,290,1,290,3,290,3631,8,290,1,290,1,290,3,290,3635,8,290,3,290,3637,8,290,1,290,1,290,3,290,3641,8,290,1,290,1,290,1,290,3,290,3646,8,290,1,290,1,290,1,290,1,290,5,290,3652,8,290,10,290,12,290,3655,9,290,3,290,3657,8,290,1,290,3,290,3660,8,290,1,290,3,290,3663,8,290,1,291,1,291,1,291,3,291,3668,8,291,1,291,1,291,1,292,1,292,3,292,3674,8,292,1,292,3,292,3677,8,292,1,293,1,293,3,293,3681,8,293,1,294,1,294,1,294,1,294,3,294,3687,8,294,1,295,1,295,1,295,1,295,1,295,1,295,3,295,3695,8,295,1,295,3,295,3698,8,295,1,296,1,296,1,296,1,296,1,296,3,296,3705,8,296,1,296,1,296,3,296,3709,8,296,1,296,3,296,3712,8,296,1,297,1,297,3,297,3716,8,297,1,298,1,298,1,298,5,298,3721,8,298,10,298,12,298,3724,9,298,1,299,1,299,1,299,1,299,1,300,1,300,1,301,1,301,1,301,1,301,1,301,1,301,1,302,1,302,1,302,1,302,5,302,3742,8,302,10,302,12,302,3745,9,302,1,302,1,302,1,303,1,303,1,303,1,303,3,303,3753,8,303,1,303,3,303,3756,8,303,1,304,1,304,1,304,1,304,5,304,3762,8,304,10,304,12,304,3765,9,304,1,304,1,304,1,305,1,305,1,306,1,306,1,306,1,306,1,306,1,307,1,307,1,307,1,307,1,307,1,307,5,307,3782,8,307,10,307,12,307,3785,9,307,1,308,1,308,1,308,1,308,1,308,3,308,3792,8,308,1,309,1,309,1,309,1,310,1,310,1,310,3,310,3800,8,310,1,311,1,311,1,311,1,311,1,311,1,312,1,312,3,312,3809,8,312,1,313,1,313,1,313,1,313,1,314,1,314,1,314,1,314,1,314,1,315,1,315,1,315,1,315,1,315,5,315,3825,8,315,10,315,12,315,3828,9,315,1,315,1,315,1,316,1,316,1,316,1,316,1,316,1,317,1,317,1,317,1,317,1,317,5,317,3842,8,317,10,317,12,317,3845,9,317,1,317,1,317,1,318,1,318,1,318,1,318,1,319,1,319,1,319,5,319,3856,8,319,10,319,12,319,3859,9,319,1,320,1,320,1,320,1,320,1,321,1,321,1,322,1,322,1,322,1,322,1,322,1,323,1,323,1,323,5,323,3875,8,323,10,323,12,323,3878,9,323,1,324,1,324,1,324,1,324,1,325,1,325,1,326,1,326,1,326,3,326,3889,8,326,1,326,1,326,1,327,1,327,1,328,1,328,1,328,1,328,3,328,3899,8,328,1,329,1,329,1,329,1,329,1,329,1,330,1,330,3,330,3908,8,330,1,331,1,331,1,332,1,332,1,332,1,333,1,333,1,333,5,333,3918,8,333,10,333,12,333,3921,9,333,1,334,1,334,1,334,1,334,1,335,1,335,1,336,1,336,1,336,1,336,1,337,3,337,3934,8,337,1,337,3,337,3937,8,337,1,337,3,337,3940,8,337,1,337,3,337,3943,8,337,1,338,1,338,1,339,1,339,3,339,3949,8,339,1,339,1,339,1,339,1,340,1,340,1,341,1,341,1,341,3,341,3959,8,341,1,342,1,342,1,343,1,343,3,343,3965,8,343,1,344,1,344,1,344,1,344,1,344,1,345,1,345,1,345,1,345,3,345,3976,8,345,1,345,3,345,3979,8,345,1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346,1,346,3,346,3991,8,346,1,347,1,347,1,347,1,348,1,348,1,348,1,348,1,348,3,348,4001,8,348,1,349,1,349,1,349,1,349,3,349,4007,8,349,1,350,1,350,1,351,1,351,1,352,1,352,1,353,1,353,3,353,4017,8,353,1,354,1,354,1,354,1,354,1,354,1,354,1,354,3,354,4026,8,354,1,355,1,355,1,355,1,355,1,355,1,355,3,355,4034,8,355,1,356,1,356,1,356,1,356,1,356,3,356,4041,8,356,1,357,1,357,1,357,1,357,1,357,1,357,1,357,1,357,3,357,4051,8,357,1,358,1,358,1,358,1,358,1,358,1,358,1,358,3,358,4060,8,358,1,359,1,359,1,359,1,359,1,359,1,359,1,359,3,359,4069,8,359,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,360,3,360,4079,8,360,1,361,1,361,3,361,4083,8,361,1,362,1,362,3,362,4087,8,362,1,363,1,363,3,363,4091,8,363,1,364,1,364,3,364,4095,8,364,1,365,1,365,3,365,4099,8,365,1,366,1,366,3,366,4103,8,366,1,367,1,367,3,367,4107,8,367,1,368,1,368,3,368,4111,8,368,1,369,1,369,3,369,4115,8,369,1,370,1,370,3,370,4119,8,370,1,371,1,371,3,371,4123,8,371,1,372,1,372,3,372,4127,8,372,1,373,1,373,1,373,3,373,4132,8,373,1,374,1,374,1,374,3,374,4137,8,374,1,375,1,375,1,375,3,375,4142,8,375,1,375,1,375,3,375,4146,8,375,1,376,1,376,3,376,4150,8,376,1,377,1,377,1,377,3,377,4155,8,377,1,378,3,378,4158,8,378,1,378,1,378,1,379,1,379,3,379,4164,8,379,1,380,3,380,4167,8,380,1,380,1,380,1,381,1,381,1,381,1,381,1,381,1,381,1,381,1,381,3,381,4179,8,381,1,382,1,382,1,383,1,383,1,384,1,384,1,385,1,385,1,386,1,386,1,387,1,387,1,388,1,388,1,389,1,389,1,390,1,390,1,391,1,391,1,392,1,392,1,393,1,393,1,394,1,394,1,395,1,395,1,395,1,395,1,395,3,395,4212,8,395,1,396,5,396,4215,8,396,10,396,12,396,4218,9,396,1,396,1,396,4,396,4222,8,396,11,396,12,396,4223,1,396,5,396,4227,8,396,10,396,12,396,4230,9,396,1,396,5,396,4233,8,396,10,396,12,396,4236,9,396,1,396,1,396,1,397,1,397,1,397,3,397,4243,8,397,3,397,4245,8,397,1,397,1,397,1,398,1,398,1,398,1,398,1,398,1,398,1,398,1,398,1,398,1,398,1,398,1,398,1,398,3,398,4262,8,398,1,399,1,399,1,399,1,400,1,400,1,400,1,401,1,401,1,401,1,402,1,402,3,402,4275,8,402,1,402,0,0,403,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,486,488,490,492,494,496,498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752,754,756,758,760,762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796,798,800,802,804,0,39,2,0,58,58,274,274,6,0,145,145,156,156,180,180,185,185,234,234,252,252,1,0,6,9,1,0,17,18,2,0,20,21,23,23,2,0,17,19,196,196,2,0,115,115,121,121,4,0,121,121,133,133,290,290,297,297,2,0,81,81,294,294,2,0,56,56,103,103,2,0,26,26,202,202,2,0,48,48,110,110,2,0,163,163,261,261,3,0,106,106,182,182,208,208,2,0,66,66,276,276,2,0,206,206,263,263,2,0,59,59,275,275,3,0,189,190,192,192,260,260,2,0,46,46,112,112,2,0,148,148,302,302,2,0,61,61,278,278,2,0,120,120,299,299,3,0,49,49,104,104,237,237,3,0,61,61,255,255,278,278,2,0,143,143,301,301,3,0,107,107,229,229,277,277,2,0,45,45,271,271,2,0,78,78,259,259,3,0,150,150,231,231,256,256,2,0,139,139,224,224,1,0,317,318,21,0,58,58,67,68,72,73,89,89,91,93,116,116,128,128,142,143,153,153,173,175,183,183,196,196,198,198,228,228,232,232,247,248,254,254,262,262,274,274,293,293,309,310,3,0,53,53,120,120,269,269,11,0,48,48,55,55,57,57,110,110,124,124,152,152,168,168,181,181,295,295,311,311,313,313,31,0,61,61,83,83,85,85,94,94,104,104,107,107,136,136,147,147,163,163,177,177,179,179,184,184,186,192,194,194,203,203,205,205,207,207,214,214,218,221,227,227,229,229,237,237,241,241,250,250,260,261,266,268,272,272,278,278,287,287,292,292,298,298,50,0,44,47,49,52,54,54,56,56,59,62,64,66,69,69,71,71,74,76,79,79,81,88,90,90,94,105,107,109,111,115,117,118,121,123,125,127,129,132,134,137,139,141,144,145,147,149,151,151,154,167,169,172,176,180,184,195,197,197,199,207,209,227,229,230,233,238,240,242,244,246,249,253,255,255,257,258,260,261,263,263,265,268,271,273,275,280,282,289,292,292,294,294,296,305,307,308,312,312,314,315,12,0,70,70,106,106,119,119,138,138,182,182,208,208,243,243,264,264,270,270,281,281,291,291,306,306,2,0,133,133,290,290,1,0,319,320,4591,0,811,1,0,0,0,2,816,1,0,0,0,4,842,1,0,0,0,6,850,1,0,0,0,8,874,1,0,0,0,10,881,1,0,0,0,12,929,1,0,0,0,14,940,1,0,0,0,16,942,1,0,0,0,18,950,1,0,0,0,20,958,1,0,0,0,22,962,1,0,0,0,24,1020,1,0,0,0,26,1022,1,0,0,0,28,1024,1,0,0,0,30,1032,1,0,0,0,32,1035,1,0,0,0,34,1039,1,0,0,0,36,1042,1,0,0,0,38,1068,1,0,0,0,40,1076,1,0,0,0,42,1084,1,0,0,0,44,1096,1,0,0,0,46,1098,1,0,0,0,48,1110,1,0,0,0,50,1119,1,0,0,0,52,1125,1,0,0,0,54,1131,1,0,0,0,56,1135,1,0,0,0,58,1137,1,0,0,0,60,1146,1,0,0,0,62,1162,1,0,0,0,64,1171,1,0,0,0,66,1184,1,0,0,0,68,1210,1,0,0,0,70,1232,1,0,0,0,72,1234,1,0,0,0,74,1241,1,0,0,0,76,1248,1,0,0,0,78,1256,1,0,0,0,80,1271,1,0,0,0,82,1285,1,0,0,0,84,1290,1,0,0,0,86,1292,1,0,0,0,88,1296,1,0,0,0,90,1298,1,0,0,0,92,1302,1,0,0,0,94,1310,1,0,0,0,96,1321,1,0,0,0,98,1323,1,0,0,0,100,1341,1,0,0,0,102,1345,1,0,0,0,104,1364,1,0,0,0,106,1372,1,0,0,0,108,1374,1,0,0,0,110,1396,1,0,0,0,112,1405,1,0,0,0,114,1413,1,0,0,0,116,1426,1,0,0,0,118,1428,1,0,0,0,120,1439,1,0,0,0,122,1447,1,0,0,0,124,1449,1,0,0,0,126,1460,1,0,0,0,128,1471,1,0,0,0,130,1476,1,0,0,0,132,1484,1,0,0,0,134,1498,1,0,0,0,136,1512,1,0,0,0,138,1516,1,0,0,0,140,1520,1,0,0,0,142,1535,1,0,0,0,144,1537,1,0,0,0,146,1543,1,0,0,0,148,1547,1,0,0,0,150,1555,1,0,0,0,152,1560,1,0,0,0,154,1569,1,0,0,0,156,1575,1,0,0,0,158,1579,1,0,0,0,160,1584,1,0,0,0,162,1586,1,0,0,0,164,1602,1,0,0,0,166,1607,1,0,0,0,168,1611,1,0,0,0,170,1617,1,0,0,0,172,1625,1,0,0,0,174,1632,1,0,0,0,176,1637,1,0,0,0,178,1656,1,0,0,0,180,1675,1,0,0,0,182,1690,1,0,0,0,184,1695,1,0,0,0,186,1700,1,0,0,0,188,1705,1,0,0,0,190,1712,1,0,0,0,192,1717,1,0,0,0,194,1732,1,0,0,0,196,1737,1,0,0,0,198,1744,1,0,0,0,200,1777,1,0,0,0,202,1796,1,0,0,0,204,1800,1,0,0,0,206,1802,1,0,0,0,208,1827,1,0,0,0,210,1829,1,0,0,0,212,1838,1,0,0,0,214,1848,1,0,0,0,216,1853,1,0,0,0,218,1858,1,0,0,0,220,1866,1,0,0,0,222,1871,1,0,0,0,224,1876,1,0,0,0,226,1899,1,0,0,0,228,1901,1,0,0,0,230,1905,1,0,0,0,232,1913,1,0,0,0,234,1922,1,0,0,0,236,1936,1,0,0,0,238,1944,1,0,0,0,240,1946,1,0,0,0,242,1956,1,0,0,0,244,1968,1,0,0,0,246,2003,1,0,0,0,248,2007,1,0,0,0,250,2015,1,0,0,0,252,2051,1,0,0,0,254,2055,1,0,0,0,256,2097,1,0,0,0,258,2125,1,0,0,0,260,2136,1,0,0,0,262,2138,1,0,0,0,264,2141,1,0,0,0,266,2149,1,0,0,0,268,2156,1,0,0,0,270,2190,1,0,0,0,272,2192,1,0,0,0,274,2194,1,0,0,0,276,2196,1,0,0,0,278,2205,1,0,0,0,280,2209,1,0,0,0,282,2241,1,0,0,0,284,2258,1,0,0,0,286,2260,1,0,0,0,288,2262,1,0,0,0,290,2274,1,0,0,0,292,2277,1,0,0,0,294,2285,1,0,0,0,296,2291,1,0,0,0,298,2293,1,0,0,0,300,2301,1,0,0,0,302,2303,1,0,0,0,304,2311,1,0,0,0,306,2315,1,0,0,0,308,2317,1,0,0,0,310,2319,1,0,0,0,312,2321,1,0,0,0,314,2323,1,0,0,0,316,2328,1,0,0,0,318,2332,1,0,0,0,320,2343,1,0,0,0,322,2356,1,0,0,0,324,2358,1,0,0,0,326,2360,1,0,0,0,328,2368,1,0,0,0,330,2373,1,0,0,0,332,2378,1,0,0,0,334,2384,1,0,0,0,336,2404,1,0,0,0,338,2407,1,0,0,0,340,2423,1,0,0,0,342,2436,1,0,0,0,344,2438,1,0,0,0,346,2450,1,0,0,0,348,2477,1,0,0,0,350,2479,1,0,0,0,352,2482,1,0,0,0,354,2490,1,0,0,0,356,2492,1,0,0,0,358,2521,1,0,0,0,360,2527,1,0,0,0,362,2529,1,0,0,0,364,2553,1,0,0,0,366,2572,1,0,0,0,368,2584,1,0,0,0,370,2586,1,0,0,0,372,2591,1,0,0,0,374,2593,1,0,0,0,376,2601,1,0,0,0,378,2607,1,0,0,0,380,2609,1,0,0,0,382,2625,1,0,0,0,384,2641,1,0,0,0,386,2643,1,0,0,0,388,2653,1,0,0,0,390,2660,1,0,0,0,392,2664,1,0,0,0,394,2674,1,0,0,0,396,2689,1,0,0,0,398,2692,1,0,0,0,400,2701,1,0,0,0,402,2704,1,0,0,0,404,2718,1,0,0,0,406,2724,1,0,0,0,408,2726,1,0,0,0,410,2730,1,0,0,0,412,2734,1,0,0,0,414,2748,1,0,0,0,416,2750,1,0,0,0,418,2752,1,0,0,0,420,2807,1,0,0,0,422,2809,1,0,0,0,424,2821,1,0,0,0,426,2826,1,0,0,0,428,2838,1,0,0,0,430,2841,1,0,0,0,432,2845,1,0,0,0,434,2848,1,0,0,0,436,2874,1,0,0,0,438,2876,1,0,0,0,440,2893,1,0,0,0,442,2895,1,0,0,0,444,2908,1,0,0,0,446,2910,1,0,0,0,448,2916,1,0,0,0,450,2922,1,0,0,0,452,2928,1,0,0,0,454,2931,1,0,0,0,456,2938,1,0,0,0,458,2942,1,0,0,0,460,2954,1,0,0,0,462,2966,1,0,0,0,464,2969,1,0,0,0,466,2973,1,0,0,0,468,2977,1,0,0,0,470,2983,1,0,0,0,472,2986,1,0,0,0,474,2991,1,0,0,0,476,2995,1,0,0,0,478,3002,1,0,0,0,480,3009,1,0,0,0,482,3015,1,0,0,0,484,3058,1,0,0,0,486,3060,1,0,0,0,488,3112,1,0,0,0,490,3114,1,0,0,0,492,3121,1,0,0,0,494,3123,1,0,0,0,496,3130,1,0,0,0,498,3138,1,0,0,0,500,3142,1,0,0,0,502,3150,1,0,0,0,504,3152,1,0,0,0,506,3168,1,0,0,0,508,3170,1,0,0,0,510,3174,1,0,0,0,512,3187,1,0,0,0,514,3191,1,0,0,0,516,3205,1,0,0,0,518,3207,1,0,0,0,520,3218,1,0,0,0,522,3231,1,0,0,0,524,3237,1,0,0,0,526,3249,1,0,0,0,528,3267,1,0,0,0,530,3288,1,0,0,0,532,3307,1,0,0,0,534,3310,1,0,0,0,536,3315,1,0,0,0,538,3343,1,0,0,0,540,3392,1,0,0,0,542,3396,1,0,0,0,544,3413,1,0,0,0,546,3415,1,0,0,0,548,3433,1,0,0,0,550,3436,1,0,0,0,552,3444,1,0,0,0,554,3448,1,0,0,0,556,3460,1,0,0,0,558,3462,1,0,0,0,560,3467,1,0,0,0,562,3474,1,0,0,0,564,3482,1,0,0,0,566,3498,1,0,0,0,568,3522,1,0,0,0,570,3532,1,0,0,0,572,3549,1,0,0,0,574,3589,1,0,0,0,576,3595,1,0,0,0,578,3602,1,0,0,0,580,3662,1,0,0,0,582,3667,1,0,0,0,584,3676,1,0,0,0,586,3678,1,0,0,0,588,3682,1,0,0,0,590,3688,1,0,0,0,592,3699,1,0,0,0,594,3715,1,0,0,0,596,3717,1,0,0,0,598,3725,1,0,0,0,600,3729,1,0,0,0,602,3731,1,0,0,0,604,3737,1,0,0,0,606,3748,1,0,0,0,608,3757,1,0,0,0,610,3768,1,0,0,0,612,3770,1,0,0,0,614,3775,1,0,0,0,616,3791,1,0,0,0,618,3793,1,0,0,0,620,3796,1,0,0,0,622,3801,1,0,0,0,624,3808,1,0,0,0,626,3810,1,0,0,0,628,3814,1,0,0,0,630,3819,1,0,0,0,632,3831,1,0,0,0,634,3836,1,0,0,0,636,3848,1,0,0,0,638,3852,1,0,0,0,640,3860,1,0,0,0,642,3864,1,0,0,0,644,3866,1,0,0,0,646,3871,1,0,0,0,648,3879,1,0,0,0,650,3883,1,0,0,0,652,3888,1,0,0,0,654,3892,1,0,0,0,656,3898,1,0,0,0,658,3900,1,0,0,0,660,3907,1,0,0,0,662,3909,1,0,0,0,664,3911,1,0,0,0,666,3914,1,0,0,0,668,3922,1,0,0,0,670,3926,1,0,0,0,672,3928,1,0,0,0,674,3933,1,0,0,0,676,3944,1,0,0,0,678,3946,1,0,0,0,680,3953,1,0,0,0,682,3955,1,0,0,0,684,3960,1,0,0,0,686,3964,1,0,0,0,688,3966,1,0,0,0,690,3978,1,0,0,0,692,3990,1,0,0,0,694,3992,1,0,0,0,696,4e3,1,0,0,0,698,4002,1,0,0,0,700,4008,1,0,0,0,702,4010,1,0,0,0,704,4012,1,0,0,0,706,4016,1,0,0,0,708,4025,1,0,0,0,710,4033,1,0,0,0,712,4040,1,0,0,0,714,4050,1,0,0,0,716,4059,1,0,0,0,718,4068,1,0,0,0,720,4078,1,0,0,0,722,4082,1,0,0,0,724,4086,1,0,0,0,726,4090,1,0,0,0,728,4094,1,0,0,0,730,4098,1,0,0,0,732,4102,1,0,0,0,734,4106,1,0,0,0,736,4110,1,0,0,0,738,4114,1,0,0,0,740,4118,1,0,0,0,742,4122,1,0,0,0,744,4126,1,0,0,0,746,4131,1,0,0,0,748,4136,1,0,0,0,750,4141,1,0,0,0,752,4149,1,0,0,0,754,4154,1,0,0,0,756,4157,1,0,0,0,758,4163,1,0,0,0,760,4166,1,0,0,0,762,4178,1,0,0,0,764,4180,1,0,0,0,766,4182,1,0,0,0,768,4184,1,0,0,0,770,4186,1,0,0,0,772,4188,1,0,0,0,774,4190,1,0,0,0,776,4192,1,0,0,0,778,4194,1,0,0,0,780,4196,1,0,0,0,782,4198,1,0,0,0,784,4200,1,0,0,0,786,4202,1,0,0,0,788,4204,1,0,0,0,790,4211,1,0,0,0,792,4216,1,0,0,0,794,4244,1,0,0,0,796,4261,1,0,0,0,798,4263,1,0,0,0,800,4266,1,0,0,0,802,4269,1,0,0,0,804,4274,1,0,0,0,806,812,3,2,1,0,807,808,5,223,0,0,808,809,5,52,0,0,809,810,5,319,0,0,810,812,3,4,2,0,811,806,1,0,0,0,811,807,1,0,0,0,812,1,1,0,0,0,813,815,5,24,0,0,814,813,1,0,0,0,815,818,1,0,0,0,816,814,1,0,0,0,816,817,1,0,0,0,817,819,1,0,0,0,818,816,1,0,0,0,819,828,3,10,5,0,820,822,5,24,0,0,821,820,1,0,0,0,822,823,1,0,0,0,823,821,1,0,0,0,823,824,1,0,0,0,824,825,1,0,0,0,825,827,3,10,5,0,826,821,1,0,0,0,827,830,1,0,0,0,828,826,1,0,0,0,828,829,1,0,0,0,829,834,1,0,0,0,830,828,1,0,0,0,831,833,5,24,0,0,832,831,1,0,0,0,833,836,1,0,0,0,834,832,1,0,0,0,834,835,1,0,0,0,835,837,1,0,0,0,836,834,1,0,0,0,837,838,5,0,0,1,838,3,1,0,0,0,839,841,5,24,0,0,840,839,1,0,0,0,841,844,1,0,0,0,842,840,1,0,0,0,842,843,1,0,0,0,843,845,1,0,0,0,844,842,1,0,0,0,845,846,5,0,0,1,846,5,1,0,0,0,847,849,5,24,0,0,848,847,1,0,0,0,849,852,1,0,0,0,850,848,1,0,0,0,850,851,1,0,0,0,851,861,1,0,0,0,852,850,1,0,0,0,853,855,3,8,4,0,854,856,5,24,0,0,855,854,1,0,0,0,856,857,1,0,0,0,857,855,1,0,0,0,857,858,1,0,0,0,858,860,1,0,0,0,859,853,1,0,0,0,860,863,1,0,0,0,861,859,1,0,0,0,861,862,1,0,0,0,862,864,1,0,0,0,863,861,1,0,0,0,864,865,5,247,0,0,865,869,3,14,7,0,866,868,5,24,0,0,867,866,1,0,0,0,868,871,1,0,0,0,869,867,1,0,0,0,869,870,1,0,0,0,870,7,1,0,0,0,871,869,1,0,0,0,872,875,3,698,349,0,873,875,3,214,107,0,874,872,1,0,0,0,874,873,1,0,0,0,875,9,1,0,0,0,876,879,5,129,0,0,877,878,5,1,0,0,878,880,5,222,0,0,879,877,1,0,0,0,879,880,1,0,0,0,880,882,1,0,0,0,881,876,1,0,0,0,881,882,1,0,0,0,882,883,1,0,0,0,883,884,3,12,6,0,884,11,1,0,0,0,885,930,3,224,112,0,886,930,3,232,116,0,887,930,3,698,349,0,888,930,3,418,209,0,889,930,3,520,260,0,890,930,3,694,347,0,891,930,3,364,182,0,892,930,3,700,350,0,893,930,3,592,296,0,894,930,3,590,295,0,895,930,3,702,351,0,896,930,3,210,105,0,897,930,3,214,107,0,898,930,3,216,108,0,899,930,3,434,217,0,900,930,3,438,219,0,901,930,3,222,111,0,902,930,3,564,282,0,903,930,3,568,284,0,904,930,3,570,285,0,905,930,3,370,185,0,906,930,3,522,261,0,907,930,3,524,262,0,908,930,3,526,263,0,909,930,3,528,264,0,910,930,3,530,265,0,911,930,3,394,197,0,912,930,3,398,199,0,913,930,3,402,201,0,914,930,3,380,190,0,915,930,3,382,191,0,916,930,3,386,193,0,917,930,3,546,273,0,918,930,3,560,280,0,919,930,3,606,303,0,920,930,3,614,307,0,921,930,3,636,318,0,922,930,3,536,268,0,923,930,3,538,269,0,924,930,3,442,221,0,925,930,3,392,196,0,926,930,3,388,194,0,927,930,3,390,195,0,928,930,3,554,277,0,929,885,1,0,0,0,929,886,1,0,0,0,929,887,1,0,0,0,929,888,1,0,0,0,929,889,1,0,0,0,929,890,1,0,0,0,929,891,1,0,0,0,929,892,1,0,0,0,929,893,1,0,0,0,929,894,1,0,0,0,929,895,1,0,0,0,929,896,1,0,0,0,929,897,1,0,0,0,929,898,1,0,0,0,929,899,1,0,0,0,929,900,1,0,0,0,929,901,1,0,0,0,929,902,1,0,0,0,929,903,1,0,0,0,929,904,1,0,0,0,929,905,1,0,0,0,929,906,1,0,0,0,929,907,1,0,0,0,929,908,1,0,0,0,929,909,1,0,0,0,929,910,1,0,0,0,929,911,1,0,0,0,929,912,1,0,0,0,929,913,1,0,0,0,929,914,1,0,0,0,929,915,1,0,0,0,929,916,1,0,0,0,929,917,1,0,0,0,929,918,1,0,0,0,929,919,1,0,0,0,929,920,1,0,0,0,929,921,1,0,0,0,929,922,1,0,0,0,929,923,1,0,0,0,929,924,1,0,0,0,929,925,1,0,0,0,929,926,1,0,0,0,929,927,1,0,0,0,929,928,1,0,0,0,930,13,1,0,0,0,931,936,3,16,8,0,932,933,5,209,0,0,933,935,3,16,8,0,934,932,1,0,0,0,935,938,1,0,0,0,936,934,1,0,0,0,936,937,1,0,0,0,937,941,1,0,0,0,938,936,1,0,0,0,939,941,3,200,100,0,940,931,1,0,0,0,940,939,1,0,0,0,941,15,1,0,0,0,942,947,3,18,9,0,943,944,5,51,0,0,944,946,3,18,9,0,945,943,1,0,0,0,946,949,1,0,0,0,947,945,1,0,0,0,947,948,1,0,0,0,948,17,1,0,0,0,949,947,1,0,0,0,950,955,3,20,10,0,951,952,5,315,0,0,952,954,3,20,10,0,953,951,1,0,0,0,954,957,1,0,0,0,955,953,1,0,0,0,955,956,1,0,0,0,956,19,1,0,0,0,957,955,1,0,0,0,958,960,3,28,14,0,959,961,3,24,12,0,960,959,1,0,0,0,960,961,1,0,0,0,961,21,1,0,0,0,962,964,5,170,0,0,963,965,5,196,0,0,964,963,1,0,0,0,964,965,1,0,0,0,965,966,1,0,0,0,966,967,5,110,0,0,967,968,5,142,0,0,968,23,1,0,0,0,969,971,5,196,0,0,970,969,1,0,0,0,970,971,1,0,0,0,971,972,1,0,0,0,972,973,3,26,13,0,973,976,3,28,14,0,974,975,5,122,0,0,975,977,3,28,14,0,976,974,1,0,0,0,976,977,1,0,0,0,977,1021,1,0,0,0,978,980,5,196,0,0,979,978,1,0,0,0,979,980,1,0,0,0,980,981,1,0,0,0,981,983,5,159,0,0,982,984,5,80,0,0,983,982,1,0,0,0,983,984,1,0,0,0,984,985,1,0,0,0,985,1021,3,82,41,0,986,996,5,171,0,0,987,996,5,197,0,0,988,989,5,170,0,0,989,996,5,198,0,0,990,992,5,170,0,0,991,990,1,0,0,0,991,992,1,0,0,0,992,993,1,0,0,0,993,994,5,196,0,0,994,996,5,198,0,0,995,986,1,0,0,0,995,987,1,0,0,0,995,988,1,0,0,0,995,991,1,0,0,0,996,1021,1,0,0,0,997,999,5,196,0,0,998,997,1,0,0,0,998,999,1,0,0,0,999,1e3,1,0,0,0,1e3,1002,5,67,0,0,1001,1003,7,0,0,0,1002,1001,1,0,0,0,1002,1003,1,0,0,0,1003,1004,1,0,0,0,1004,1005,3,28,14,0,1005,1006,5,51,0,0,1006,1007,3,28,14,0,1007,1021,1,0,0,0,1008,1014,5,2,0,0,1009,1014,5,3,0,0,1010,1014,5,4,0,0,1011,1014,5,5,0,0,1012,1014,3,22,11,0,1013,1008,1,0,0,0,1013,1009,1,0,0,0,1013,1010,1,0,0,0,1013,1011,1,0,0,0,1013,1012,1,0,0,0,1014,1015,1,0,0,0,1015,1017,3,28,14,0,1016,1013,1,0,0,0,1017,1018,1,0,0,0,1018,1016,1,0,0,0,1018,1019,1,0,0,0,1019,1021,1,0,0,0,1020,970,1,0,0,0,1020,979,1,0,0,0,1020,995,1,0,0,0,1020,998,1,0,0,0,1020,1016,1,0,0,0,1021,25,1,0,0,0,1022,1023,7,1,0,0,1023,27,1,0,0,0,1024,1029,3,36,18,0,1025,1026,7,2,0,0,1026,1028,3,36,18,0,1027,1025,1,0,0,0,1028,1031,1,0,0,0,1029,1027,1,0,0,0,1029,1030,1,0,0,0,1030,29,1,0,0,0,1031,1029,1,0,0,0,1032,1033,5,8,0,0,1033,1034,5,8,0,0,1034,31,1,0,0,0,1035,1036,5,8,0,0,1036,1037,5,8,0,0,1037,1038,5,13,0,0,1038,33,1,0,0,0,1039,1040,5,29,0,0,1040,1041,5,29,0,0,1041,35,1,0,0,0,1042,1055,3,38,19,0,1043,1051,5,10,0,0,1044,1051,3,30,15,0,1045,1051,5,11,0,0,1046,1051,3,32,16,0,1047,1051,5,12,0,0,1048,1051,5,13,0,0,1049,1051,5,39,0,0,1050,1043,1,0,0,0,1050,1044,1,0,0,0,1050,1045,1,0,0,0,1050,1046,1,0,0,0,1050,1047,1,0,0,0,1050,1048,1,0,0,0,1050,1049,1,0,0,0,1051,1052,1,0,0,0,1052,1054,3,38,19,0,1053,1050,1,0,0,0,1054,1057,1,0,0,0,1055,1053,1,0,0,0,1055,1056,1,0,0,0,1056,1066,1,0,0,0,1057,1055,1,0,0,0,1058,1059,3,34,17,0,1059,1060,3,36,18,0,1060,1067,1,0,0,0,1061,1063,5,29,0,0,1062,1061,1,0,0,0,1063,1064,1,0,0,0,1064,1062,1,0,0,0,1064,1065,1,0,0,0,1065,1067,1,0,0,0,1066,1058,1,0,0,0,1066,1062,1,0,0,0,1066,1067,1,0,0,0,1067,37,1,0,0,0,1068,1073,3,40,20,0,1069,1070,7,3,0,0,1070,1072,3,40,20,0,1071,1069,1,0,0,0,1072,1075,1,0,0,0,1073,1071,1,0,0,0,1073,1074,1,0,0,0,1074,39,1,0,0,0,1075,1073,1,0,0,0,1076,1081,3,42,21,0,1077,1078,7,4,0,0,1078,1080,3,42,21,0,1079,1077,1,0,0,0,1080,1083,1,0,0,0,1081,1079,1,0,0,0,1081,1082,1,0,0,0,1082,41,1,0,0,0,1083,1081,1,0,0,0,1084,1089,3,44,22,0,1085,1086,5,14,0,0,1086,1088,3,44,22,0,1087,1085,1,0,0,0,1088,1091,1,0,0,0,1089,1087,1,0,0,0,1089,1090,1,0,0,0,1090,43,1,0,0,0,1091,1089,1,0,0,0,1092,1097,3,54,27,0,1093,1094,3,46,23,0,1094,1095,3,54,27,0,1095,1097,1,0,0,0,1096,1092,1,0,0,0,1096,1093,1,0,0,0,1097,45,1,0,0,0,1098,1099,7,5,0,0,1099,47,1,0,0,0,1100,1109,3,138,69,0,1101,1109,3,132,66,0,1102,1106,5,25,0,0,1103,1107,3,144,72,0,1104,1107,5,319,0,0,1105,1107,3,726,363,0,1106,1103,1,0,0,0,1106,1104,1,0,0,0,1106,1105,1,0,0,0,1107,1109,1,0,0,0,1108,1100,1,0,0,0,1108,1101,1,0,0,0,1108,1102,1,0,0,0,1109,1112,1,0,0,0,1110,1108,1,0,0,0,1110,1111,1,0,0,0,1111,1115,1,0,0,0,1112,1110,1,0,0,0,1113,1114,5,76,0,0,1114,1116,3,724,362,0,1115,1113,1,0,0,0,1115,1116,1,0,0,0,1116,49,1,0,0,0,1117,1120,3,710,355,0,1118,1120,3,68,34,0,1119,1117,1,0,0,0,1119,1118,1,0,0,0,1120,1121,1,0,0,0,1121,1122,3,48,24,0,1122,51,1,0,0,0,1123,1126,3,712,356,0,1124,1126,3,70,35,0,1125,1123,1,0,0,0,1125,1124,1,0,0,0,1126,1127,1,0,0,0,1127,1128,3,48,24,0,1128,53,1,0,0,0,1129,1132,3,50,25,0,1130,1132,3,84,42,0,1131,1129,1,0,0,0,1131,1130,1,0,0,0,1132,55,1,0,0,0,1133,1136,3,52,26,0,1134,1136,3,84,42,0,1135,1133,1,0,0,0,1135,1134,1,0,0,0,1136,57,1,0,0,0,1137,1139,5,43,0,0,1138,1140,3,112,56,0,1139,1138,1,0,0,0,1139,1140,1,0,0,0,1140,1142,1,0,0,0,1141,1143,5,26,0,0,1142,1141,1,0,0,0,1142,1143,1,0,0,0,1143,1144,1,0,0,0,1144,1145,5,42,0,0,1145,59,1,0,0,0,1146,1149,3,14,7,0,1147,1148,5,30,0,0,1148,1150,3,14,7,0,1149,1147,1,0,0,0,1149,1150,1,0,0,0,1150,1159,1,0,0,0,1151,1152,5,26,0,0,1152,1155,3,14,7,0,1153,1154,5,30,0,0,1154,1156,3,14,7,0,1155,1153,1,0,0,0,1155,1156,1,0,0,0,1156,1158,1,0,0,0,1157,1151,1,0,0,0,1158,1161,1,0,0,0,1159,1157,1,0,0,0,1159,1160,1,0,0,0,1160,61,1,0,0,0,1161,1159,1,0,0,0,1162,1164,5,37,0,0,1163,1165,3,60,30,0,1164,1163,1,0,0,0,1164,1165,1,0,0,0,1165,1167,1,0,0,0,1166,1168,5,26,0,0,1167,1166,1,0,0,0,1167,1168,1,0,0,0,1168,1169,1,0,0,0,1169,1170,5,38,0,0,1170,63,1,0,0,0,1171,1172,3,14,7,0,1172,1173,5,30,0,0,1173,1181,3,14,7,0,1174,1175,5,26,0,0,1175,1176,3,14,7,0,1176,1177,5,30,0,0,1177,1178,3,14,7,0,1178,1180,1,0,0,0,1179,1174,1,0,0,0,1180,1183,1,0,0,0,1181,1179,1,0,0,0,1181,1182,1,0,0,0,1182,65,1,0,0,0,1183,1181,1,0,0,0,1184,1186,5,15,0,0,1185,1187,3,64,32,0,1186,1185,1,0,0,0,1186,1187,1,0,0,0,1187,1189,1,0,0,0,1188,1190,5,26,0,0,1189,1188,1,0,0,0,1189,1190,1,0,0,0,1190,1191,1,0,0,0,1191,1192,5,16,0,0,1192,67,1,0,0,0,1193,1211,3,142,71,0,1194,1211,3,144,72,0,1195,1211,3,80,40,0,1196,1211,3,72,36,0,1197,1211,3,76,38,0,1198,1211,3,78,39,0,1199,1200,3,726,363,0,1200,1203,5,40,0,0,1201,1204,3,752,376,0,1202,1204,5,316,0,0,1203,1201,1,0,0,0,1203,1202,1,0,0,0,1204,1211,1,0,0,0,1205,1211,3,208,104,0,1206,1211,3,74,37,0,1207,1211,3,58,29,0,1208,1211,3,62,31,0,1209,1211,3,66,33,0,1210,1193,1,0,0,0,1210,1194,1,0,0,0,1210,1195,1,0,0,0,1210,1196,1,0,0,0,1210,1197,1,0,0,0,1210,1198,1,0,0,0,1210,1199,1,0,0,0,1210,1205,1,0,0,0,1210,1206,1,0,0,0,1210,1207,1,0,0,0,1210,1208,1,0,0,0,1210,1209,1,0,0,0,1211,69,1,0,0,0,1212,1233,3,142,71,0,1213,1233,3,144,72,0,1214,1233,3,80,40,0,1215,1233,3,72,36,0,1216,1233,3,78,39,0,1217,1218,3,726,363,0,1218,1221,5,40,0,0,1219,1222,3,752,376,0,1220,1222,5,316,0,0,1221,1219,1,0,0,0,1221,1220,1,0,0,0,1222,1233,1,0,0,0,1223,1224,5,27,0,0,1224,1225,3,232,116,0,1225,1226,5,28,0,0,1226,1233,1,0,0,0,1227,1233,3,208,104,0,1228,1233,3,74,37,0,1229,1233,3,58,29,0,1230,1233,3,62,31,0,1231,1233,3,66,33,0,1232,1212,1,0,0,0,1232,1213,1,0,0,0,1232,1214,1,0,0,0,1232,1215,1,0,0,0,1232,1216,1,0,0,0,1232,1217,1,0,0,0,1232,1223,1,0,0,0,1232,1227,1,0,0,0,1232,1228,1,0,0,0,1232,1229,1,0,0,0,1232,1230,1,0,0,0,1232,1231,1,0,0,0,1233,71,1,0,0,0,1234,1235,5,73,0,0,1235,1236,5,27,0,0,1236,1237,3,14,7,0,1237,1238,5,55,0,0,1238,1239,3,204,102,0,1239,1240,5,28,0,0,1240,73,1,0,0,0,1241,1242,5,68,0,0,1242,1243,5,27,0,0,1243,1244,3,14,7,0,1244,1245,5,55,0,0,1245,1246,3,156,78,0,1246,1247,5,28,0,0,1247,75,1,0,0,0,1248,1249,5,128,0,0,1249,1252,5,27,0,0,1250,1253,3,232,116,0,1251,1253,3,370,185,0,1252,1250,1,0,0,0,1252,1251,1,0,0,0,1253,1254,1,0,0,0,1254,1255,5,28,0,0,1255,77,1,0,0,0,1256,1258,5,72,0,0,1257,1259,3,14,7,0,1258,1257,1,0,0,0,1258,1259,1,0,0,0,1259,1261,1,0,0,0,1260,1262,3,140,70,0,1261,1260,1,0,0,0,1262,1263,1,0,0,0,1263,1261,1,0,0,0,1263,1264,1,0,0,0,1264,1267,1,0,0,0,1265,1266,5,114,0,0,1266,1268,3,14,7,0,1267,1265,1,0,0,0,1267,1268,1,0,0,0,1268,1269,1,0,0,0,1269,1270,5,118,0,0,1270,79,1,0,0,0,1271,1283,3,110,55,0,1272,1281,5,41,0,0,1273,1274,5,27,0,0,1274,1275,3,14,7,0,1275,1276,5,28,0,0,1276,1282,1,0,0,0,1277,1278,5,37,0,0,1278,1279,3,6,3,0,1279,1280,5,38,0,0,1280,1282,1,0,0,0,1281,1273,1,0,0,0,1281,1277,1,0,0,0,1282,1284,1,0,0,0,1283,1272,1,0,0,0,1283,1284,1,0,0,0,1284,81,1,0,0,0,1285,1286,3,56,28,0,1286,83,1,0,0,0,1287,1291,3,98,49,0,1288,1291,3,102,51,0,1289,1291,3,108,54,0,1290,1287,1,0,0,0,1290,1288,1,0,0,0,1290,1289,1,0,0,0,1291,85,1,0,0,0,1292,1293,5,316,0,0,1293,87,1,0,0,0,1294,1297,3,710,355,0,1295,1297,5,316,0,0,1296,1294,1,0,0,0,1296,1295,1,0,0,0,1297,89,1,0,0,0,1298,1299,3,14,7,0,1299,1300,5,55,0,0,1300,1301,3,88,44,0,1301,91,1,0,0,0,1302,1307,3,90,45,0,1303,1304,5,26,0,0,1304,1306,3,90,45,0,1305,1303,1,0,0,0,1306,1309,1,0,0,0,1307,1305,1,0,0,0,1307,1308,1,0,0,0,1308,93,1,0,0,0,1309,1307,1,0,0,0,1310,1311,3,14,7,0,1311,1312,5,26,0,0,1312,1315,3,86,43,0,1313,1314,5,216,0,0,1314,1316,3,92,46,0,1315,1313,1,0,0,0,1315,1316,1,0,0,0,1316,95,1,0,0,0,1317,1322,5,121,0,0,1318,1322,5,198,0,0,1319,1320,5,98,0,0,1320,1322,3,14,7,0,1321,1317,1,0,0,0,1321,1318,1,0,0,0,1321,1319,1,0,0,0,1322,97,1,0,0,0,1323,1324,5,175,0,0,1324,1325,5,27,0,0,1325,1328,3,94,47,0,1326,1327,5,248,0,0,1327,1329,3,156,78,0,1328,1326,1,0,0,0,1328,1329,1,0,0,0,1329,1336,1,0,0,0,1330,1331,3,96,48,0,1331,1332,5,204,0,0,1332,1333,7,6,0,0,1333,1335,1,0,0,0,1334,1330,1,0,0,0,1335,1338,1,0,0,0,1336,1334,1,0,0,0,1336,1337,1,0,0,0,1337,1339,1,0,0,0,1338,1336,1,0,0,0,1339,1340,5,28,0,0,1340,99,1,0,0,0,1341,1342,7,7,0,0,1342,1343,5,204,0,0,1343,1344,5,121,0,0,1344,101,1,0,0,0,1345,1346,5,173,0,0,1346,1347,5,27,0,0,1347,1349,3,94,47,0,1348,1350,3,100,50,0,1349,1348,1,0,0,0,1349,1350,1,0,0,0,1350,1351,1,0,0,0,1351,1352,5,28,0,0,1352,103,1,0,0,0,1353,1355,5,313,0,0,1354,1356,5,54,0,0,1355,1354,1,0,0,0,1355,1356,1,0,0,0,1356,1365,1,0,0,0,1357,1359,5,312,0,0,1358,1360,7,8,0,0,1359,1358,1,0,0,0,1359,1360,1,0,0,0,1360,1362,1,0,0,0,1361,1363,5,54,0,0,1362,1361,1,0,0,0,1362,1363,1,0,0,0,1363,1365,1,0,0,0,1364,1353,1,0,0,0,1364,1357,1,0,0,0,1365,105,1,0,0,0,1366,1373,5,121,0,0,1367,1373,5,198,0,0,1368,1369,5,115,0,0,1369,1373,5,54,0,0,1370,1371,5,115,0,0,1371,1373,5,200,0,0,1372,1366,1,0,0,0,1372,1367,1,0,0,0,1372,1368,1,0,0,0,1372,1370,1,0,0,0,1373,107,1,0,0,0,1374,1375,5,174,0,0,1375,1376,5,27,0,0,1376,1380,3,94,47,0,1377,1378,3,104,52,0,1378,1379,5,314,0,0,1379,1381,1,0,0,0,1380,1377,1,0,0,0,1380,1381,1,0,0,0,1381,1386,1,0,0,0,1382,1383,3,106,53,0,1383,1384,5,204,0,0,1384,1385,5,115,0,0,1385,1387,1,0,0,0,1386,1382,1,0,0,0,1386,1387,1,0,0,0,1387,1392,1,0,0,0,1388,1389,3,106,53,0,1389,1390,5,204,0,0,1390,1391,5,121,0,0,1391,1393,1,0,0,0,1392,1388,1,0,0,0,1392,1393,1,0,0,0,1393,1394,1,0,0,0,1394,1395,5,28,0,0,1395,109,1,0,0,0,1396,1398,5,27,0,0,1397,1399,3,130,65,0,1398,1397,1,0,0,0,1398,1399,1,0,0,0,1399,1401,1,0,0,0,1400,1402,5,26,0,0,1401,1400,1,0,0,0,1401,1402,1,0,0,0,1402,1403,1,0,0,0,1403,1404,5,28,0,0,1404,111,1,0,0,0,1405,1410,3,14,7,0,1406,1407,5,26,0,0,1407,1409,3,14,7,0,1408,1406,1,0,0,0,1409,1412,1,0,0,0,1410,1408,1,0,0,0,1410,1411,1,0,0,0,1411,113,1,0,0,0,1412,1410,1,0,0,0,1413,1414,5,27,0,0,1414,1419,3,724,362,0,1415,1416,5,26,0,0,1416,1418,3,724,362,0,1417,1415,1,0,0,0,1418,1421,1,0,0,0,1419,1417,1,0,0,0,1419,1420,1,0,0,0,1420,1422,1,0,0,0,1421,1419,1,0,0,0,1422,1423,5,28,0,0,1423,115,1,0,0,0,1424,1427,3,144,72,0,1425,1427,3,724,362,0,1426,1424,1,0,0,0,1426,1425,1,0,0,0,1427,117,1,0,0,0,1428,1429,5,27,0,0,1429,1434,3,116,58,0,1430,1431,5,26,0,0,1431,1433,3,116,58,0,1432,1430,1,0,0,0,1433,1436,1,0,0,0,1434,1432,1,0,0,0,1434,1435,1,0,0,0,1435,1437,1,0,0,0,1436,1434,1,0,0,0,1437,1438,5,28,0,0,1438,119,1,0,0,0,1439,1440,3,748,374,0,1440,1441,3,724,362,0,1441,121,1,0,0,0,1442,1443,3,724,362,0,1443,1444,5,25,0,0,1444,1445,3,724,362,0,1445,1448,1,0,0,0,1446,1448,3,738,369,0,1447,1442,1,0,0,0,1447,1446,1,0,0,0,1448,123,1,0,0,0,1449,1454,3,120,60,0,1450,1451,5,26,0,0,1451,1453,3,120,60,0,1452,1450,1,0,0,0,1453,1456,1,0,0,0,1454,1452,1,0,0,0,1454,1455,1,0,0,0,1455,1458,1,0,0,0,1456,1454,1,0,0,0,1457,1459,5,26,0,0,1458,1457,1,0,0,0,1458,1459,1,0,0,0,1459,125,1,0,0,0,1460,1465,3,122,61,0,1461,1462,5,26,0,0,1462,1464,3,122,61,0,1463,1461,1,0,0,0,1464,1467,1,0,0,0,1465,1463,1,0,0,0,1465,1466,1,0,0,0,1466,1469,1,0,0,0,1467,1465,1,0,0,0,1468,1470,5,26,0,0,1469,1468,1,0,0,0,1469,1470,1,0,0,0,1470,127,1,0,0,0,1471,1474,3,14,7,0,1472,1473,5,55,0,0,1473,1475,3,726,363,0,1474,1472,1,0,0,0,1474,1475,1,0,0,0,1475,129,1,0,0,0,1476,1481,3,128,64,0,1477,1478,5,26,0,0,1478,1480,3,128,64,0,1479,1477,1,0,0,0,1480,1483,1,0,0,0,1481,1479,1,0,0,0,1481,1482,1,0,0,0,1482,131,1,0,0,0,1483,1481,1,0,0,0,1484,1491,5,27,0,0,1485,1486,3,252,126,0,1486,1488,3,130,65,0,1487,1489,5,26,0,0,1488,1487,1,0,0,0,1488,1489,1,0,0,0,1489,1492,1,0,0,0,1490,1492,5,20,0,0,1491,1485,1,0,0,0,1491,1490,1,0,0,0,1491,1492,1,0,0,0,1492,1493,1,0,0,0,1493,1494,5,28,0,0,1494,1495,3,134,67,0,1495,133,1,0,0,0,1496,1499,3,656,328,0,1497,1499,3,658,329,0,1498,1496,1,0,0,0,1498,1497,1,0,0,0,1498,1499,1,0,0,0,1499,1502,1,0,0,0,1500,1501,5,213,0,0,1501,1503,3,660,330,0,1502,1500,1,0,0,0,1502,1503,1,0,0,0,1503,135,1,0,0,0,1504,1505,3,726,363,0,1505,1506,5,40,0,0,1506,1507,3,726,363,0,1507,1513,1,0,0,0,1508,1513,3,730,365,0,1509,1513,3,144,72,0,1510,1511,5,131,0,0,1511,1513,5,144,0,0,1512,1504,1,0,0,0,1512,1508,1,0,0,0,1512,1509,1,0,0,0,1512,1510,1,0,0,0,1513,1514,1,0,0,0,1514,1515,3,132,66,0,1515,137,1,0,0,0,1516,1517,5,43,0,0,1517,1518,3,14,7,0,1518,1519,5,42,0,0,1519,139,1,0,0,0,1520,1521,5,309,0,0,1521,1522,3,14,7,0,1522,1523,5,284,0,0,1523,1524,3,14,7,0,1524,141,1,0,0,0,1525,1536,3,788,394,0,1526,1536,3,786,393,0,1527,1536,5,316,0,0,1528,1536,5,322,0,0,1529,1536,5,198,0,0,1530,1536,5,92,0,0,1531,1536,5,91,0,0,1532,1536,5,93,0,0,1533,1536,3,784,392,0,1534,1536,5,116,0,0,1535,1525,1,0,0,0,1535,1526,1,0,0,0,1535,1527,1,0,0,0,1535,1528,1,0,0,0,1535,1529,1,0,0,0,1535,1530,1,0,0,0,1535,1531,1,0,0,0,1535,1532,1,0,0,0,1535,1533,1,0,0,0,1535,1534,1,0,0,0,1536,143,1,0,0,0,1537,1541,5,33,0,0,1538,1542,3,726,363,0,1539,1542,5,290,0,0,1540,1542,5,133,0,0,1541,1538,1,0,0,0,1541,1539,1,0,0,0,1541,1540,1,0,0,0,1542,145,1,0,0,0,1543,1545,3,144,72,0,1544,1546,5,29,0,0,1545,1544,1,0,0,0,1545,1546,1,0,0,0,1546,147,1,0,0,0,1547,1552,3,144,72,0,1548,1549,5,26,0,0,1549,1551,3,144,72,0,1550,1548,1,0,0,0,1551,1554,1,0,0,0,1552,1550,1,0,0,0,1552,1553,1,0,0,0,1553,149,1,0,0,0,1554,1552,1,0,0,0,1555,1558,3,144,72,0,1556,1557,5,55,0,0,1557,1559,3,144,72,0,1558,1556,1,0,0,0,1558,1559,1,0,0,0,1559,151,1,0,0,0,1560,1565,3,150,75,0,1561,1562,5,26,0,0,1562,1564,3,150,75,0,1563,1561,1,0,0,0,1564,1567,1,0,0,0,1565,1563,1,0,0,0,1565,1566,1,0,0,0,1566,153,1,0,0,0,1567,1565,1,0,0,0,1568,1570,7,3,0,0,1569,1568,1,0,0,0,1569,1570,1,0,0,0,1570,1573,1,0,0,0,1571,1574,3,788,394,0,1572,1574,3,786,393,0,1573,1571,1,0,0,0,1573,1572,1,0,0,0,1574,155,1,0,0,0,1575,1576,3,742,371,0,1576,157,1,0,0,0,1577,1580,3,788,394,0,1578,1580,3,144,72,0,1579,1577,1,0,0,0,1579,1578,1,0,0,0,1580,159,1,0,0,0,1581,1585,3,706,353,0,1582,1585,5,316,0,0,1583,1585,3,144,72,0,1584,1581,1,0,0,0,1584,1582,1,0,0,0,1584,1583,1,0,0,0,1585,161,1,0,0,0,1586,1587,3,160,80,0,1587,1588,5,30,0,0,1588,1589,3,204,102,0,1589,163,1,0,0,0,1590,1591,3,160,80,0,1591,1596,3,204,102,0,1592,1594,5,196,0,0,1593,1592,1,0,0,0,1593,1594,1,0,0,0,1594,1595,1,0,0,0,1595,1597,5,198,0,0,1596,1593,1,0,0,0,1596,1597,1,0,0,0,1597,1603,1,0,0,0,1598,1599,3,204,102,0,1599,1600,5,55,0,0,1600,1601,3,160,80,0,1601,1603,1,0,0,0,1602,1590,1,0,0,0,1602,1598,1,0,0,0,1603,165,1,0,0,0,1604,1605,3,160,80,0,1605,1606,5,30,0,0,1606,1608,1,0,0,0,1607,1604,1,0,0,0,1607,1608,1,0,0,0,1608,1609,1,0,0,0,1609,1610,3,204,102,0,1610,167,1,0,0,0,1611,1615,3,166,83,0,1612,1613,5,37,0,0,1613,1614,5,63,0,0,1614,1616,5,38,0,0,1615,1612,1,0,0,0,1615,1616,1,0,0,0,1616,169,1,0,0,0,1617,1622,3,168,84,0,1618,1619,5,26,0,0,1619,1621,3,168,84,0,1620,1618,1,0,0,0,1621,1624,1,0,0,0,1622,1620,1,0,0,0,1622,1623,1,0,0,0,1623,171,1,0,0,0,1624,1622,1,0,0,0,1625,1626,5,96,0,0,1626,1627,5,27,0,0,1627,1628,3,158,79,0,1628,1629,5,26,0,0,1629,1630,3,158,79,0,1630,1631,5,28,0,0,1631,173,1,0,0,0,1632,1633,5,208,0,0,1633,1634,5,6,0,0,1634,1635,3,204,102,0,1635,1636,5,8,0,0,1636,175,1,0,0,0,1637,1654,5,291,0,0,1638,1650,5,6,0,0,1639,1644,3,204,102,0,1640,1641,5,26,0,0,1641,1643,3,204,102,0,1642,1640,1,0,0,0,1643,1646,1,0,0,0,1644,1642,1,0,0,0,1644,1645,1,0,0,0,1645,1648,1,0,0,0,1646,1644,1,0,0,0,1647,1649,5,26,0,0,1648,1647,1,0,0,0,1648,1649,1,0,0,0,1649,1651,1,0,0,0,1650,1639,1,0,0,0,1650,1651,1,0,0,0,1651,1652,1,0,0,0,1652,1655,5,8,0,0,1653,1655,5,5,0,0,1654,1638,1,0,0,0,1654,1653,1,0,0,0,1655,177,1,0,0,0,1656,1673,5,270,0,0,1657,1669,5,6,0,0,1658,1663,3,162,81,0,1659,1660,5,26,0,0,1660,1662,3,162,81,0,1661,1659,1,0,0,0,1662,1665,1,0,0,0,1663,1661,1,0,0,0,1663,1664,1,0,0,0,1664,1667,1,0,0,0,1665,1663,1,0,0,0,1666,1668,5,26,0,0,1667,1666,1,0,0,0,1667,1668,1,0,0,0,1668,1670,1,0,0,0,1669,1658,1,0,0,0,1669,1670,1,0,0,0,1670,1671,1,0,0,0,1671,1674,5,8,0,0,1672,1674,5,5,0,0,1673,1657,1,0,0,0,1673,1672,1,0,0,0,1674,179,1,0,0,0,1675,1676,5,306,0,0,1676,1677,5,6,0,0,1677,1682,3,166,83,0,1678,1679,5,26,0,0,1679,1681,3,166,83,0,1680,1678,1,0,0,0,1681,1684,1,0,0,0,1682,1680,1,0,0,0,1682,1683,1,0,0,0,1683,1686,1,0,0,0,1684,1682,1,0,0,0,1685,1687,5,26,0,0,1686,1685,1,0,0,0,1686,1687,1,0,0,0,1687,1688,1,0,0,0,1688,1689,5,8,0,0,1689,181,1,0,0,0,1690,1691,5,182,0,0,1691,1692,5,6,0,0,1692,1693,3,204,102,0,1693,1694,5,8,0,0,1694,183,1,0,0,0,1695,1696,5,269,0,0,1696,1697,5,6,0,0,1697,1698,3,204,102,0,1698,1699,5,8,0,0,1699,185,1,0,0,0,1700,1701,5,138,0,0,1701,1702,5,6,0,0,1702,1703,3,204,102,0,1703,1704,5,8,0,0,1704,187,1,0,0,0,1705,1706,5,106,0,0,1706,1707,5,6,0,0,1707,1708,3,204,102,0,1708,1709,5,26,0,0,1709,1710,3,204,102,0,1710,1711,5,8,0,0,1711,189,1,0,0,0,1712,1713,5,264,0,0,1713,1714,5,6,0,0,1714,1715,3,204,102,0,1715,1716,5,8,0,0,1716,191,1,0,0,0,1717,1718,5,119,0,0,1718,1719,5,6,0,0,1719,1724,3,160,80,0,1720,1721,5,26,0,0,1721,1723,3,160,80,0,1722,1720,1,0,0,0,1723,1726,1,0,0,0,1724,1722,1,0,0,0,1724,1725,1,0,0,0,1725,1728,1,0,0,0,1726,1724,1,0,0,0,1727,1729,5,26,0,0,1728,1727,1,0,0,0,1728,1729,1,0,0,0,1729,1730,1,0,0,0,1730,1731,5,8,0,0,1731,193,1,0,0,0,1732,1733,5,243,0,0,1733,1734,5,6,0,0,1734,1735,3,160,80,0,1735,1736,5,8,0,0,1736,195,1,0,0,0,1737,1738,5,281,0,0,1738,1739,5,6,0,0,1739,1740,3,204,102,0,1740,1741,5,26,0,0,1741,1742,3,160,80,0,1742,1743,5,8,0,0,1743,197,1,0,0,0,1744,1745,5,70,0,0,1745,1746,5,6,0,0,1746,1748,5,27,0,0,1747,1749,3,170,85,0,1748,1747,1,0,0,0,1748,1749,1,0,0,0,1749,1751,1,0,0,0,1750,1752,5,26,0,0,1751,1750,1,0,0,0,1751,1752,1,0,0,0,1752,1757,1,0,0,0,1753,1754,5,43,0,0,1754,1755,3,170,85,0,1755,1756,5,42,0,0,1756,1758,1,0,0,0,1757,1753,1,0,0,0,1757,1758,1,0,0,0,1758,1759,1,0,0,0,1759,1760,5,28,0,0,1760,1761,5,41,0,0,1761,1762,3,204,102,0,1762,1763,5,8,0,0,1763,199,1,0,0,0,1764,1778,3,174,87,0,1765,1778,3,176,88,0,1766,1778,3,178,89,0,1767,1778,3,180,90,0,1768,1778,3,182,91,0,1769,1778,3,184,92,0,1770,1778,3,186,93,0,1771,1778,3,188,94,0,1772,1778,3,190,95,0,1773,1778,3,192,96,0,1774,1778,3,194,97,0,1775,1778,3,196,98,0,1776,1778,3,198,99,0,1777,1764,1,0,0,0,1777,1765,1,0,0,0,1777,1766,1,0,0,0,1777,1767,1,0,0,0,1777,1768,1,0,0,0,1777,1769,1,0,0,0,1777,1770,1,0,0,0,1777,1771,1,0,0,0,1777,1772,1,0,0,0,1777,1773,1,0,0,0,1777,1774,1,0,0,0,1777,1775,1,0,0,0,1777,1776,1,0,0,0,1778,1782,1,0,0,0,1779,1781,5,29,0,0,1780,1779,1,0,0,0,1781,1784,1,0,0,0,1782,1780,1,0,0,0,1782,1783,1,0,0,0,1783,201,1,0,0,0,1784,1782,1,0,0,0,1785,1797,3,200,100,0,1786,1789,3,172,86,0,1787,1789,3,156,78,0,1788,1786,1,0,0,0,1788,1787,1,0,0,0,1789,1793,1,0,0,0,1790,1792,5,29,0,0,1791,1790,1,0,0,0,1792,1795,1,0,0,0,1793,1791,1,0,0,0,1793,1794,1,0,0,0,1794,1797,1,0,0,0,1795,1793,1,0,0,0,1796,1785,1,0,0,0,1796,1788,1,0,0,0,1797,203,1,0,0,0,1798,1801,3,202,101,0,1799,1801,3,144,72,0,1800,1798,1,0,0,0,1800,1799,1,0,0,0,1801,205,1,0,0,0,1802,1803,5,316,0,0,1803,207,1,0,0,0,1804,1805,5,306,0,0,1805,1806,5,27,0,0,1806,1807,3,14,7,0,1807,1808,5,26,0,0,1808,1809,3,14,7,0,1809,1810,5,26,0,0,1810,1811,3,14,7,0,1811,1812,5,28,0,0,1812,1828,1,0,0,0,1813,1814,5,119,0,0,1814,1815,5,27,0,0,1815,1816,3,14,7,0,1816,1817,5,26,0,0,1817,1818,3,14,7,0,1818,1819,5,28,0,0,1819,1828,1,0,0,0,1820,1821,5,70,0,0,1821,1822,5,27,0,0,1822,1823,3,14,7,0,1823,1824,5,26,0,0,1824,1825,3,14,7,0,1825,1826,5,28,0,0,1826,1828,1,0,0,0,1827,1804,1,0,0,0,1827,1813,1,0,0,0,1827,1820,1,0,0,0,1828,209,1,0,0,0,1829,1830,5,97,0,0,1830,1831,3,144,72,0,1831,1832,5,55,0,0,1832,1835,3,202,101,0,1833,1834,5,2,0,0,1834,1836,3,142,71,0,1835,1833,1,0,0,0,1835,1836,1,0,0,0,1836,211,1,0,0,0,1837,1839,5,25,0,0,1838,1837,1,0,0,0,1838,1839,1,0,0,0,1839,1840,1,0,0,0,1840,1845,3,724,362,0,1841,1842,5,25,0,0,1842,1844,3,724,362,0,1843,1841,1,0,0,0,1844,1847,1,0,0,0,1845,1843,1,0,0,0,1845,1846,1,0,0,0,1846,213,1,0,0,0,1847,1845,1,0,0,0,1848,1849,5,158,0,0,1849,1850,3,212,106,0,1850,1851,5,273,0,0,1851,1852,3,152,76,0,1852,215,1,0,0,0,1853,1854,5,130,0,0,1854,1855,3,148,74,0,1855,217,1,0,0,0,1856,1859,3,144,72,0,1857,1859,5,116,0,0,1858,1856,1,0,0,0,1858,1857,1,0,0,0,1859,1860,1,0,0,0,1860,1862,5,27,0,0,1861,1863,3,112,56,0,1862,1861,1,0,0,0,1862,1863,1,0,0,0,1863,1864,1,0,0,0,1864,1865,5,28,0,0,1865,219,1,0,0,0,1866,1867,5,65,0,0,1867,1868,3,566,283,0,1868,1869,5,118,0,0,1869,1870,5,111,0,0,1870,221,1,0,0,0,1871,1874,5,111,0,0,1872,1875,3,218,109,0,1873,1875,3,220,110,0,1874,1872,1,0,0,0,1874,1873,1,0,0,0,1875,223,1,0,0,0,1876,1877,5,223,0,0,1877,1878,3,754,377,0,1878,1892,3,724,362,0,1879,1880,5,2,0,0,1880,1893,3,226,113,0,1881,1882,5,27,0,0,1882,1887,3,226,113,0,1883,1884,5,26,0,0,1884,1886,3,226,113,0,1885,1883,1,0,0,0,1886,1889,1,0,0,0,1887,1885,1,0,0,0,1887,1888,1,0,0,0,1888,1890,1,0,0,0,1889,1887,1,0,0,0,1890,1891,5,28,0,0,1891,1893,1,0,0,0,1892,1879,1,0,0,0,1892,1881,1,0,0,0,1892,1893,1,0,0,0,1893,225,1,0,0,0,1894,1900,3,154,77,0,1895,1900,3,706,353,0,1896,1900,5,316,0,0,1897,1900,3,784,392,0,1898,1900,3,144,72,0,1899,1894,1,0,0,0,1899,1895,1,0,0,0,1899,1896,1,0,0,0,1899,1897,1,0,0,0,1899,1898,1,0,0,0,1900,227,1,0,0,0,1901,1903,3,14,7,0,1902,1904,7,9,0,0,1903,1902,1,0,0,0,1903,1904,1,0,0,0,1904,229,1,0,0,0,1905,1910,3,228,114,0,1906,1907,5,26,0,0,1907,1909,3,228,114,0,1908,1906,1,0,0,0,1909,1912,1,0,0,0,1910,1908,1,0,0,0,1910,1911,1,0,0,0,1911,231,1,0,0,0,1912,1910,1,0,0,0,1913,1919,3,236,118,0,1914,1915,3,238,119,0,1915,1916,3,236,118,0,1916,1918,1,0,0,0,1917,1914,1,0,0,0,1918,1921,1,0,0,0,1919,1917,1,0,0,0,1919,1920,1,0,0,0,1920,233,1,0,0,0,1921,1919,1,0,0,0,1922,1928,3,240,120,0,1923,1924,3,238,119,0,1924,1925,3,236,118,0,1925,1927,1,0,0,0,1926,1923,1,0,0,0,1927,1930,1,0,0,0,1928,1926,1,0,0,0,1928,1929,1,0,0,0,1929,235,1,0,0,0,1930,1928,1,0,0,0,1931,1937,3,240,120,0,1932,1933,5,27,0,0,1933,1934,3,240,120,0,1934,1935,5,28,0,0,1935,1937,1,0,0,0,1936,1931,1,0,0,0,1936,1932,1,0,0,0,1937,237,1,0,0,0,1938,1940,5,295,0,0,1939,1941,5,48,0,0,1940,1939,1,0,0,0,1940,1941,1,0,0,0,1941,1945,1,0,0,0,1942,1945,5,168,0,0,1943,1945,5,124,0,0,1944,1938,1,0,0,0,1944,1942,1,0,0,0,1944,1943,1,0,0,0,1945,239,1,0,0,0,1946,1953,3,242,121,0,1947,1948,5,181,0,0,1948,1951,3,14,7,0,1949,1950,7,10,0,0,1950,1952,3,14,7,0,1951,1949,1,0,0,0,1951,1952,1,0,0,0,1952,1954,1,0,0,0,1953,1947,1,0,0,0,1953,1954,1,0,0,0,1954,241,1,0,0,0,1955,1957,5,109,0,0,1956,1955,1,0,0,0,1956,1957,1,0,0,0,1957,1961,1,0,0,0,1958,1962,3,244,122,0,1959,1962,3,250,125,0,1960,1962,3,254,127,0,1961,1958,1,0,0,0,1961,1959,1,0,0,0,1961,1960,1,0,0,0,1962,1966,1,0,0,0,1963,1964,5,169,0,0,1964,1965,5,246,0,0,1965,1967,3,116,58,0,1966,1963,1,0,0,0,1966,1967,1,0,0,0,1967,243,1,0,0,0,1968,1970,5,228,0,0,1969,1971,5,269,0,0,1970,1969,1,0,0,0,1970,1971,1,0,0,0,1971,1972,1,0,0,0,1972,1977,3,346,173,0,1973,1974,5,26,0,0,1974,1976,3,346,173,0,1975,1973,1,0,0,0,1976,1979,1,0,0,0,1977,1975,1,0,0,0,1977,1978,1,0,0,0,1978,2001,1,0,0,0,1979,1977,1,0,0,0,1980,1981,5,303,0,0,1981,1984,3,136,68,0,1982,1983,5,55,0,0,1983,1985,3,724,362,0,1984,1982,1,0,0,0,1984,1985,1,0,0,0,1985,1988,1,0,0,0,1986,1987,5,312,0,0,1987,1989,3,248,124,0,1988,1986,1,0,0,0,1988,1989,1,0,0,0,1989,1991,1,0,0,0,1990,1992,3,800,400,0,1991,1990,1,0,0,0,1991,1992,1,0,0,0,1992,1995,1,0,0,0,1993,1994,5,152,0,0,1994,1996,3,14,7,0,1995,1993,1,0,0,0,1995,1996,1,0,0,0,1996,1999,1,0,0,0,1997,1998,5,57,0,0,1998,2e3,3,314,157,0,1999,1997,1,0,0,0,1999,2e3,1,0,0,0,2e3,2002,1,0,0,0,2001,1980,1,0,0,0,2001,2002,1,0,0,0,2002,245,1,0,0,0,2003,2004,3,724,362,0,2004,2005,5,2,0,0,2005,2006,3,14,7,0,2006,247,1,0,0,0,2007,2012,3,246,123,0,2008,2009,5,26,0,0,2009,2011,3,246,123,0,2010,2008,1,0,0,0,2011,2014,1,0,0,0,2012,2010,1,0,0,0,2012,2013,1,0,0,0,2013,249,1,0,0,0,2014,2012,1,0,0,0,2015,2016,5,232,0,0,2016,2021,3,346,173,0,2017,2018,5,26,0,0,2018,2020,3,346,173,0,2019,2017,1,0,0,0,2020,2023,1,0,0,0,2021,2019,1,0,0,0,2021,2022,1,0,0,0,2022,2026,1,0,0,0,2023,2021,1,0,0,0,2024,2025,5,225,0,0,2025,2027,3,230,115,0,2026,2024,1,0,0,0,2026,2027,1,0,0,0,2027,2028,1,0,0,0,2028,2029,5,204,0,0,2029,2030,3,124,62,0,2030,2032,5,303,0,0,2031,2033,5,48,0,0,2032,2031,1,0,0,0,2032,2033,1,0,0,0,2033,2034,1,0,0,0,2034,2037,3,136,68,0,2035,2036,5,55,0,0,2036,2038,3,724,362,0,2037,2035,1,0,0,0,2037,2038,1,0,0,0,2038,2040,1,0,0,0,2039,2041,3,800,400,0,2040,2039,1,0,0,0,2040,2041,1,0,0,0,2041,2044,1,0,0,0,2042,2043,5,152,0,0,2043,2045,3,14,7,0,2044,2042,1,0,0,0,2044,2045,1,0,0,0,2045,2048,1,0,0,0,2046,2047,5,57,0,0,2047,2049,3,314,157,0,2048,2046,1,0,0,0,2048,2049,1,0,0,0,2049,251,1,0,0,0,2050,2052,7,11,0,0,2051,2050,1,0,0,0,2051,2052,1,0,0,0,2052,253,1,0,0,0,2053,2054,5,142,0,0,2054,2056,3,338,169,0,2055,2053,1,0,0,0,2055,2056,1,0,0,0,2056,2057,1,0,0,0,2057,2059,5,262,0,0,2058,2060,5,269,0,0,2059,2058,1,0,0,0,2059,2060,1,0,0,0,2060,2061,1,0,0,0,2061,2062,3,252,126,0,2062,2067,3,336,168,0,2063,2064,5,26,0,0,2064,2066,3,336,168,0,2065,2063,1,0,0,0,2066,2069,1,0,0,0,2067,2065,1,0,0,0,2067,2068,1,0,0,0,2068,2071,1,0,0,0,2069,2067,1,0,0,0,2070,2072,5,26,0,0,2071,2070,1,0,0,0,2071,2072,1,0,0,0,2072,2075,1,0,0,0,2073,2074,5,313,0,0,2074,2076,3,126,63,0,2075,2073,1,0,0,0,2075,2076,1,0,0,0,2076,2079,1,0,0,0,2077,2078,5,142,0,0,2078,2080,3,338,169,0,2079,2077,1,0,0,0,2079,2080,1,0,0,0,2080,2082,1,0,0,0,2081,2083,3,800,400,0,2082,2081,1,0,0,0,2082,2083,1,0,0,0,2083,2085,1,0,0,0,2084,2086,3,318,159,0,2085,2084,1,0,0,0,2085,2086,1,0,0,0,2086,2089,1,0,0,0,2087,2088,5,152,0,0,2088,2090,3,14,7,0,2089,2087,1,0,0,0,2089,2090,1,0,0,0,2090,2092,1,0,0,0,2091,2093,3,664,332,0,2092,2091,1,0,0,0,2092,2093,1,0,0,0,2093,2095,1,0,0,0,2094,2096,3,316,158,0,2095,2094,1,0,0,0,2095,2096,1,0,0,0,2096,255,1,0,0,0,2097,2098,5,187,0,0,2098,2100,5,27,0,0,2099,2101,3,678,339,0,2100,2099,1,0,0,0,2100,2101,1,0,0,0,2101,2103,1,0,0,0,2102,2104,3,314,157,0,2103,2102,1,0,0,0,2103,2104,1,0,0,0,2104,2106,1,0,0,0,2105,2107,3,262,131,0,2106,2105,1,0,0,0,2106,2107,1,0,0,0,2107,2109,1,0,0,0,2108,2110,3,258,129,0,2109,2108,1,0,0,0,2109,2110,1,0,0,0,2110,2111,1,0,0,0,2111,2112,3,268,134,0,2112,2113,5,28,0,0,2113,257,1,0,0,0,2114,2115,5,205,0,0,2115,2116,5,255,0,0,2116,2117,5,220,0,0,2117,2126,5,185,0,0,2118,2119,5,48,0,0,2119,2120,5,256,0,0,2120,2121,5,220,0,0,2121,2123,5,185,0,0,2122,2124,3,260,130,0,2123,2122,1,0,0,0,2123,2124,1,0,0,0,2124,2126,1,0,0,0,2125,2114,1,0,0,0,2125,2118,1,0,0,0,2126,259,1,0,0,0,2127,2128,5,266,0,0,2128,2129,5,115,0,0,2129,2137,5,186,0,0,2130,2131,5,203,0,0,2131,2132,5,115,0,0,2132,2137,5,186,0,0,2133,2134,5,312,0,0,2134,2135,5,298,0,0,2135,2137,5,256,0,0,2136,2127,1,0,0,0,2136,2130,1,0,0,0,2136,2133,1,0,0,0,2137,261,1,0,0,0,2138,2139,5,188,0,0,2139,2140,3,264,132,0,2140,263,1,0,0,0,2141,2146,3,266,133,0,2142,2143,5,26,0,0,2143,2145,3,266,133,0,2144,2142,1,0,0,0,2145,2148,1,0,0,0,2146,2144,1,0,0,0,2146,2147,1,0,0,0,2147,265,1,0,0,0,2148,2146,1,0,0,0,2149,2150,3,14,7,0,2150,2151,5,55,0,0,2151,2152,3,724,362,0,2152,267,1,0,0,0,2153,2154,5,47,0,0,2154,2155,5,185,0,0,2155,2157,3,270,135,0,2156,2153,1,0,0,0,2156,2157,1,0,0,0,2157,2159,1,0,0,0,2158,2160,3,274,137,0,2159,2158,1,0,0,0,2159,2160,1,0,0,0,2160,2161,1,0,0,0,2161,2162,5,219,0,0,2162,2163,5,27,0,0,2163,2164,3,276,138,0,2164,2166,5,28,0,0,2165,2167,3,290,145,0,2166,2165,1,0,0,0,2166,2167,1,0,0,0,2167,2168,1,0,0,0,2168,2169,5,101,0,0,2169,2170,3,302,151,0,2170,269,1,0,0,0,2171,2172,5,267,0,0,2172,2173,5,286,0,0,2173,2174,5,194,0,0,2174,2191,5,255,0,0,2175,2176,5,267,0,0,2176,2177,5,218,0,0,2177,2178,5,177,0,0,2178,2191,5,255,0,0,2179,2180,5,267,0,0,2180,2181,5,286,0,0,2181,2182,5,136,0,0,2182,2191,3,272,136,0,2183,2184,5,267,0,0,2184,2185,5,286,0,0,2185,2186,5,177,0,0,2186,2191,3,272,136,0,2187,2188,5,267,0,0,2188,2189,5,286,0,0,2189,2191,3,272,136,0,2190,2171,1,0,0,0,2190,2175,1,0,0,0,2190,2179,1,0,0,0,2190,2183,1,0,0,0,2190,2187,1,0,0,0,2191,271,1,0,0,0,2192,2193,3,312,156,0,2193,273,1,0,0,0,2194,2195,7,12,0,0,2195,275,1,0,0,0,2196,2201,3,278,139,0,2197,2198,5,13,0,0,2198,2200,3,278,139,0,2199,2197,1,0,0,0,2200,2203,1,0,0,0,2201,2199,1,0,0,0,2201,2202,1,0,0,0,2202,277,1,0,0,0,2203,2201,1,0,0,0,2204,2206,3,280,140,0,2205,2204,1,0,0,0,2206,2207,1,0,0,0,2207,2205,1,0,0,0,2207,2208,1,0,0,0,2208,279,1,0,0,0,2209,2211,3,284,142,0,2210,2212,3,282,141,0,2211,2210,1,0,0,0,2211,2212,1,0,0,0,2212,281,1,0,0,0,2213,2215,5,20,0,0,2214,2216,5,29,0,0,2215,2214,1,0,0,0,2215,2216,1,0,0,0,2216,2242,1,0,0,0,2217,2219,5,17,0,0,2218,2220,5,29,0,0,2219,2218,1,0,0,0,2219,2220,1,0,0,0,2220,2242,1,0,0,0,2221,2223,5,29,0,0,2222,2224,5,29,0,0,2223,2222,1,0,0,0,2223,2224,1,0,0,0,2224,2242,1,0,0,0,2225,2227,5,37,0,0,2226,2228,3,788,394,0,2227,2226,1,0,0,0,2227,2228,1,0,0,0,2228,2229,1,0,0,0,2229,2231,5,26,0,0,2230,2232,3,788,394,0,2231,2230,1,0,0,0,2231,2232,1,0,0,0,2232,2233,1,0,0,0,2233,2235,5,38,0,0,2234,2236,5,29,0,0,2235,2234,1,0,0,0,2235,2236,1,0,0,0,2236,2242,1,0,0,0,2237,2238,5,37,0,0,2238,2239,3,788,394,0,2239,2240,5,38,0,0,2240,2242,1,0,0,0,2241,2213,1,0,0,0,2241,2217,1,0,0,0,2241,2221,1,0,0,0,2241,2225,1,0,0,0,2241,2237,1,0,0,0,2242,283,1,0,0,0,2243,2259,3,286,143,0,2244,2259,5,33,0,0,2245,2259,5,39,0,0,2246,2248,5,27,0,0,2247,2249,3,276,138,0,2248,2247,1,0,0,0,2248,2249,1,0,0,0,2249,2250,1,0,0,0,2250,2259,5,28,0,0,2251,2252,5,37,0,0,2252,2253,5,18,0,0,2253,2254,3,276,138,0,2254,2255,5,18,0,0,2255,2256,5,38,0,0,2256,2259,1,0,0,0,2257,2259,3,288,144,0,2258,2243,1,0,0,0,2258,2244,1,0,0,0,2258,2245,1,0,0,0,2258,2246,1,0,0,0,2258,2251,1,0,0,0,2258,2257,1,0,0,0,2259,285,1,0,0,0,2260,2261,3,312,156,0,2261,287,1,0,0,0,2262,2263,5,221,0,0,2263,2264,5,27,0,0,2264,2269,3,276,138,0,2265,2266,5,26,0,0,2266,2268,3,276,138,0,2267,2265,1,0,0,0,2268,2271,1,0,0,0,2269,2267,1,0,0,0,2269,2270,1,0,0,0,2270,2272,1,0,0,0,2271,2269,1,0,0,0,2272,2273,5,28,0,0,2273,289,1,0,0,0,2274,2275,5,272,0,0,2275,2276,3,292,146,0,2276,291,1,0,0,0,2277,2282,3,294,147,0,2278,2279,5,26,0,0,2279,2281,3,294,147,0,2280,2278,1,0,0,0,2281,2284,1,0,0,0,2282,2280,1,0,0,0,2282,2283,1,0,0,0,2283,293,1,0,0,0,2284,2282,1,0,0,0,2285,2286,3,296,148,0,2286,2287,5,2,0,0,2287,2288,5,27,0,0,2288,2289,3,298,149,0,2289,2290,5,28,0,0,2290,295,1,0,0,0,2291,2292,3,312,156,0,2292,297,1,0,0,0,2293,2298,3,300,150,0,2294,2295,5,26,0,0,2295,2297,3,300,150,0,2296,2294,1,0,0,0,2297,2300,1,0,0,0,2298,2296,1,0,0,0,2298,2299,1,0,0,0,2299,299,1,0,0,0,2300,2298,1,0,0,0,2301,2302,3,312,156,0,2302,301,1,0,0,0,2303,2308,3,304,152,0,2304,2305,5,26,0,0,2305,2307,3,304,152,0,2306,2304,1,0,0,0,2307,2310,1,0,0,0,2308,2306,1,0,0,0,2308,2309,1,0,0,0,2309,303,1,0,0,0,2310,2308,1,0,0,0,2311,2312,3,306,153,0,2312,2313,5,55,0,0,2313,2314,3,308,154,0,2314,305,1,0,0,0,2315,2316,3,312,156,0,2316,307,1,0,0,0,2317,2318,3,310,155,0,2318,309,1,0,0,0,2319,2320,3,14,7,0,2320,311,1,0,0,0,2321,2322,3,704,352,0,2322,313,1,0,0,0,2323,2324,5,210,0,0,2324,2325,5,69,0,0,2325,2326,3,230,115,0,2326,315,1,0,0,0,2327,2329,5,57,0,0,2328,2327,1,0,0,0,2328,2329,1,0,0,0,2329,2330,1,0,0,0,2330,2331,3,314,157,0,2331,317,1,0,0,0,2332,2334,5,148,0,0,2333,2335,5,80,0,0,2334,2333,1,0,0,0,2334,2335,1,0,0,0,2335,2336,1,0,0,0,2336,2337,5,69,0,0,2337,2338,3,252,126,0,2338,2341,3,320,160,0,2339,2340,5,312,0,0,2340,2342,3,724,362,0,2341,2339,1,0,0,0,2341,2342,1,0,0,0,2342,319,1,0,0,0,2343,2348,3,322,161,0,2344,2345,5,26,0,0,2345,2347,3,322,161,0,2346,2344,1,0,0,0,2347,2350,1,0,0,0,2348,2346,1,0,0,0,2348,2349,1,0,0,0,2349,321,1,0,0,0,2350,2348,1,0,0,0,2351,2357,3,324,162,0,2352,2357,3,328,164,0,2353,2357,3,330,165,0,2354,2357,3,332,166,0,2355,2357,3,334,167,0,2356,2351,1,0,0,0,2356,2352,1,0,0,0,2356,2353,1,0,0,0,2356,2354,1,0,0,0,2356,2355,1,0,0,0,2357,323,1,0,0,0,2358,2359,3,128,64,0,2359,325,1,0,0,0,2360,2365,3,324,162,0,2361,2362,5,26,0,0,2362,2364,3,324,162,0,2363,2361,1,0,0,0,2364,2367,1,0,0,0,2365,2363,1,0,0,0,2365,2366,1,0,0,0,2366,327,1,0,0,0,2367,2365,1,0,0,0,2368,2369,5,254,0,0,2369,2370,5,27,0,0,2370,2371,3,326,163,0,2371,2372,5,28,0,0,2372,329,1,0,0,0,2373,2374,5,89,0,0,2374,2375,5,27,0,0,2375,2376,3,326,163,0,2376,2377,5,28,0,0,2377,331,1,0,0,0,2378,2379,5,149,0,0,2379,2380,5,265,0,0,2380,2381,5,27,0,0,2381,2382,3,320,160,0,2382,2383,5,28,0,0,2383,333,1,0,0,0,2384,2385,5,153,0,0,2385,2386,5,27,0,0,2386,2387,3,14,7,0,2387,2388,5,26,0,0,2388,2389,3,14,7,0,2389,2390,5,26,0,0,2390,2391,3,14,7,0,2391,2392,5,26,0,0,2392,2393,3,14,7,0,2393,2394,5,28,0,0,2394,335,1,0,0,0,2395,2396,3,748,374,0,2396,2397,5,20,0,0,2397,2405,1,0,0,0,2398,2402,3,14,7,0,2399,2400,5,55,0,0,2400,2403,3,726,363,0,2401,2403,3,744,372,0,2402,2399,1,0,0,0,2402,2401,1,0,0,0,2402,2403,1,0,0,0,2403,2405,1,0,0,0,2404,2395,1,0,0,0,2404,2398,1,0,0,0,2405,337,1,0,0,0,2406,2408,5,53,0,0,2407,2406,1,0,0,0,2407,2408,1,0,0,0,2408,2409,1,0,0,0,2409,2420,3,344,172,0,2410,2412,3,358,179,0,2411,2413,5,53,0,0,2412,2411,1,0,0,0,2412,2413,1,0,0,0,2413,2414,1,0,0,0,2414,2416,3,344,172,0,2415,2417,3,360,180,0,2416,2415,1,0,0,0,2416,2417,1,0,0,0,2417,2419,1,0,0,0,2418,2410,1,0,0,0,2419,2422,1,0,0,0,2420,2418,1,0,0,0,2420,2421,1,0,0,0,2421,339,1,0,0,0,2422,2420,1,0,0,0,2423,2426,3,120,60,0,2424,2425,5,55,0,0,2425,2427,3,724,362,0,2426,2424,1,0,0,0,2426,2427,1,0,0,0,2427,341,1,0,0,0,2428,2437,3,340,170,0,2429,2430,5,27,0,0,2430,2432,3,130,65,0,2431,2433,5,26,0,0,2432,2431,1,0,0,0,2432,2433,1,0,0,0,2433,2434,1,0,0,0,2434,2435,5,28,0,0,2435,2437,1,0,0,0,2436,2428,1,0,0,0,2436,2429,1,0,0,0,2437,343,1,0,0,0,2438,2448,3,346,173,0,2439,2446,5,137,0,0,2440,2442,7,13,0,0,2441,2440,1,0,0,0,2441,2442,1,0,0,0,2442,2443,1,0,0,0,2443,2444,5,69,0,0,2444,2447,3,342,171,0,2445,2447,5,78,0,0,2446,2441,1,0,0,0,2446,2445,1,0,0,0,2447,2449,1,0,0,0,2448,2439,1,0,0,0,2448,2449,1,0,0,0,2449,345,1,0,0,0,2450,2452,3,348,174,0,2451,2453,3,256,128,0,2452,2451,1,0,0,0,2452,2453,1,0,0,0,2453,2462,1,0,0,0,2454,2455,5,55,0,0,2455,2458,3,724,362,0,2456,2458,3,744,372,0,2457,2454,1,0,0,0,2457,2456,1,0,0,0,2458,2460,1,0,0,0,2459,2461,3,114,57,0,2460,2459,1,0,0,0,2460,2461,1,0,0,0,2461,2463,1,0,0,0,2462,2457,1,0,0,0,2462,2463,1,0,0,0,2463,2466,1,0,0,0,2464,2467,3,350,175,0,2465,2467,3,352,176,0,2466,2464,1,0,0,0,2466,2465,1,0,0,0,2466,2467,1,0,0,0,2467,347,1,0,0,0,2468,2478,3,572,286,0,2469,2470,5,27,0,0,2470,2471,3,232,116,0,2471,2472,5,28,0,0,2472,2478,1,0,0,0,2473,2474,5,27,0,0,2474,2475,3,370,185,0,2475,2476,5,28,0,0,2476,2478,1,0,0,0,2477,2468,1,0,0,0,2477,2469,1,0,0,0,2477,2473,1,0,0,0,2478,349,1,0,0,0,2479,2480,5,257,0,0,2480,2481,3,14,7,0,2481,351,1,0,0,0,2482,2483,5,279,0,0,2483,2484,3,354,177,0,2484,2485,5,27,0,0,2485,2486,3,14,7,0,2486,2488,5,28,0,0,2487,2489,3,356,178,0,2488,2487,1,0,0,0,2488,2489,1,0,0,0,2489,353,1,0,0,0,2490,2491,7,14,0,0,2491,355,1,0,0,0,2492,2493,5,239,0,0,2493,2494,5,27,0,0,2494,2495,3,14,7,0,2495,2496,5,28,0,0,2496,357,1,0,0,0,2497,2522,5,26,0,0,2498,2500,5,193,0,0,2499,2498,1,0,0,0,2499,2500,1,0,0,0,2500,2518,1,0,0,0,2501,2503,5,178,0,0,2502,2504,7,15,0,0,2503,2502,1,0,0,0,2503,2504,1,0,0,0,2504,2512,1,0,0,0,2505,2507,5,251,0,0,2506,2508,7,15,0,0,2507,2506,1,0,0,0,2507,2508,1,0,0,0,2508,2512,1,0,0,0,2509,2512,5,126,0,0,2510,2512,5,143,0,0,2511,2501,1,0,0,0,2511,2505,1,0,0,0,2511,2509,1,0,0,0,2511,2510,1,0,0,0,2511,2512,1,0,0,0,2512,2514,1,0,0,0,2513,2515,5,212,0,0,2514,2513,1,0,0,0,2514,2515,1,0,0,0,2515,2519,1,0,0,0,2516,2519,5,165,0,0,2517,2519,5,88,0,0,2518,2511,1,0,0,0,2518,2516,1,0,0,0,2518,2517,1,0,0,0,2519,2520,1,0,0,0,2520,2522,5,172,0,0,2521,2497,1,0,0,0,2521,2499,1,0,0,0,2522,359,1,0,0,0,2523,2524,5,204,0,0,2524,2528,3,14,7,0,2525,2526,5,303,0,0,2526,2528,3,118,59,0,2527,2523,1,0,0,0,2527,2525,1,0,0,0,2528,361,1,0,0,0,2529,2539,5,248,0,0,2530,2540,5,20,0,0,2531,2536,3,724,362,0,2532,2533,5,26,0,0,2533,2535,3,724,362,0,2534,2532,1,0,0,0,2535,2538,1,0,0,0,2536,2534,1,0,0,0,2536,2537,1,0,0,0,2537,2540,1,0,0,0,2538,2536,1,0,0,0,2539,2530,1,0,0,0,2539,2531,1,0,0,0,2540,363,1,0,0,0,2541,2554,5,166,0,0,2542,2543,5,166,0,0,2543,2544,5,209,0,0,2544,2554,5,44,0,0,2545,2546,5,166,0,0,2546,2547,5,209,0,0,2547,2554,5,249,0,0,2548,2549,5,166,0,0,2549,2550,5,209,0,0,2550,2554,5,155,0,0,2551,2554,5,300,0,0,2552,2554,5,240,0,0,2553,2541,1,0,0,0,2553,2542,1,0,0,0,2553,2545,1,0,0,0,2553,2548,1,0,0,0,2553,2551,1,0,0,0,2553,2552,1,0,0,0,2554,2555,1,0,0,0,2555,2556,5,169,0,0,2556,2557,3,588,294,0,2557,2559,3,368,184,0,2558,2560,3,362,181,0,2559,2558,1,0,0,0,2559,2560,1,0,0,0,2560,365,1,0,0,0,2561,2573,5,166,0,0,2562,2563,5,166,0,0,2563,2564,5,209,0,0,2564,2573,5,44,0,0,2565,2566,5,166,0,0,2566,2567,5,209,0,0,2567,2573,5,249,0,0,2568,2569,5,166,0,0,2569,2570,5,209,0,0,2570,2573,5,155,0,0,2571,2573,5,240,0,0,2572,2561,1,0,0,0,2572,2562,1,0,0,0,2572,2565,1,0,0,0,2572,2568,1,0,0,0,2572,2571,1,0,0,0,2573,2574,1,0,0,0,2574,2575,5,169,0,0,2575,2576,3,588,294,0,2576,2577,3,368,184,0,2577,367,1,0,0,0,2578,2580,3,114,57,0,2579,2578,1,0,0,0,2579,2580,1,0,0,0,2580,2581,1,0,0,0,2581,2585,3,372,186,0,2582,2583,5,98,0,0,2583,2585,5,305,0,0,2584,2579,1,0,0,0,2584,2582,1,0,0,0,2585,369,1,0,0,0,2586,2587,5,305,0,0,2587,2588,3,374,187,0,2588,371,1,0,0,0,2589,2592,3,370,185,0,2590,2592,3,232,116,0,2591,2589,1,0,0,0,2591,2590,1,0,0,0,2592,373,1,0,0,0,2593,2598,3,376,188,0,2594,2595,5,26,0,0,2595,2597,3,376,188,0,2596,2594,1,0,0,0,2597,2600,1,0,0,0,2598,2596,1,0,0,0,2598,2599,1,0,0,0,2599,375,1,0,0,0,2600,2598,1,0,0,0,2601,2602,5,27,0,0,2602,2603,3,112,56,0,2603,2604,5,28,0,0,2604,377,1,0,0,0,2605,2608,3,112,56,0,2606,2608,3,232,116,0,2607,2605,1,0,0,0,2607,2606,1,0,0,0,2608,379,1,0,0,0,2609,2612,5,87,0,0,2610,2611,5,209,0,0,2611,2613,5,240,0,0,2612,2610,1,0,0,0,2612,2613,1,0,0,0,2613,2614,1,0,0,0,2614,2615,5,131,0,0,2615,2616,5,94,0,0,2616,2620,5,268,0,0,2617,2618,5,154,0,0,2618,2619,5,196,0,0,2619,2621,5,128,0,0,2620,2617,1,0,0,0,2620,2621,1,0,0,0,2621,2622,1,0,0,0,2622,2623,3,582,291,0,2623,2624,3,426,213,0,2624,381,1,0,0,0,2625,2626,5,49,0,0,2626,2627,5,131,0,0,2627,2628,5,94,0,0,2628,2629,5,268,0,0,2629,2630,3,582,291,0,2630,2635,3,384,192,0,2631,2632,5,26,0,0,2632,2634,3,384,192,0,2633,2631,1,0,0,0,2634,2637,1,0,0,0,2635,2633,1,0,0,0,2635,2636,1,0,0,0,2636,383,1,0,0,0,2637,2635,1,0,0,0,2638,2642,3,456,228,0,2639,2642,3,458,229,0,2640,2642,3,460,230,0,2641,2638,1,0,0,0,2641,2639,1,0,0,0,2641,2640,1,0,0,0,2642,385,1,0,0,0,2643,2644,5,112,0,0,2644,2645,5,131,0,0,2645,2646,5,94,0,0,2646,2649,5,268,0,0,2647,2648,5,154,0,0,2648,2650,5,128,0,0,2649,2647,1,0,0,0,2649,2650,1,0,0,0,2650,2651,1,0,0,0,2651,2652,3,582,291,0,2652,387,1,0,0,0,2653,2654,5,87,0,0,2654,2655,5,307,0,0,2655,2656,3,582,291,0,2656,2657,3,426,213,0,2657,2658,5,55,0,0,2658,2659,3,232,116,0,2659,389,1,0,0,0,2660,2661,5,112,0,0,2661,2662,5,307,0,0,2662,2663,3,582,291,0,2663,391,1,0,0,0,2664,2665,5,300,0,0,2665,2666,5,200,0,0,2666,2667,3,582,291,0,2667,2668,5,27,0,0,2668,2669,5,292,0,0,2669,2670,3,416,208,0,2670,2672,5,28,0,0,2671,2673,3,396,198,0,2672,2671,1,0,0,0,2672,2673,1,0,0,0,2673,393,1,0,0,0,2674,2675,5,87,0,0,2675,2679,5,200,0,0,2676,2677,5,154,0,0,2677,2678,5,196,0,0,2678,2680,5,128,0,0,2679,2676,1,0,0,0,2679,2680,1,0,0,0,2680,2681,1,0,0,0,2681,2682,3,582,291,0,2682,2683,5,27,0,0,2683,2684,5,292,0,0,2684,2685,3,416,208,0,2685,2687,5,28,0,0,2686,2688,3,396,198,0,2687,2686,1,0,0,0,2687,2688,1,0,0,0,2688,395,1,0,0,0,2689,2690,5,312,0,0,2690,2691,3,414,207,0,2691,397,1,0,0,0,2692,2693,5,49,0,0,2693,2694,5,200,0,0,2694,2695,3,582,291,0,2695,2696,5,27,0,0,2696,2697,5,292,0,0,2697,2698,3,416,208,0,2698,2699,5,28,0,0,2699,2700,3,400,200,0,2700,399,1,0,0,0,2701,2702,5,264,0,0,2702,2703,3,414,207,0,2703,401,1,0,0,0,2704,2705,5,112,0,0,2705,2708,5,200,0,0,2706,2707,5,154,0,0,2707,2709,5,128,0,0,2708,2706,1,0,0,0,2708,2709,1,0,0,0,2709,2710,1,0,0,0,2710,2711,3,582,291,0,2711,2712,5,27,0,0,2712,2713,5,292,0,0,2713,2714,3,416,208,0,2714,2716,5,28,0,0,2715,2717,3,404,202,0,2716,2715,1,0,0,0,2716,2717,1,0,0,0,2717,403,1,0,0,0,2718,2719,5,312,0,0,2719,2720,3,414,207,0,2720,405,1,0,0,0,2721,2725,3,752,376,0,2722,2725,3,144,72,0,2723,2725,5,316,0,0,2724,2721,1,0,0,0,2724,2722,1,0,0,0,2724,2723,1,0,0,0,2725,407,1,0,0,0,2726,2727,3,726,363,0,2727,2728,5,2,0,0,2728,2729,3,406,203,0,2729,409,1,0,0,0,2730,2731,3,726,363,0,2731,411,1,0,0,0,2732,2735,3,408,204,0,2733,2735,3,410,205,0,2734,2732,1,0,0,0,2734,2733,1,0,0,0,2735,413,1,0,0,0,2736,2749,3,412,206,0,2737,2738,5,27,0,0,2738,2743,3,412,206,0,2739,2740,5,26,0,0,2740,2742,3,412,206,0,2741,2739,1,0,0,0,2742,2745,1,0,0,0,2743,2741,1,0,0,0,2743,2744,1,0,0,0,2744,2746,1,0,0,0,2745,2743,1,0,0,0,2746,2747,5,28,0,0,2747,2749,1,0,0,0,2748,2736,1,0,0,0,2748,2737,1,0,0,0,2749,415,1,0,0,0,2750,2751,3,726,363,0,2751,417,1,0,0,0,2752,2755,5,87,0,0,2753,2754,5,209,0,0,2754,2756,5,240,0,0,2755,2753,1,0,0,0,2755,2756,1,0,0,0,2756,2765,1,0,0,0,2757,2766,5,277,0,0,2758,2766,5,280,0,0,2759,2760,5,131,0,0,2760,2766,5,277,0,0,2761,2762,5,282,0,0,2762,2766,5,277,0,0,2763,2764,5,283,0,0,2764,2766,5,277,0,0,2765,2757,1,0,0,0,2765,2758,1,0,0,0,2765,2759,1,0,0,0,2765,2761,1,0,0,0,2765,2763,1,0,0,0,2766,2770,1,0,0,0,2767,2768,5,154,0,0,2768,2769,5,196,0,0,2769,2771,5,128,0,0,2770,2767,1,0,0,0,2770,2771,1,0,0,0,2771,2772,1,0,0,0,2772,2773,3,586,293,0,2773,2774,5,27,0,0,2774,2779,3,420,210,0,2775,2776,5,26,0,0,2776,2778,3,420,210,0,2777,2775,1,0,0,0,2778,2781,1,0,0,0,2779,2777,1,0,0,0,2779,2780,1,0,0,0,2780,2783,1,0,0,0,2781,2779,1,0,0,0,2782,2784,5,26,0,0,2783,2782,1,0,0,0,2783,2784,1,0,0,0,2784,2785,1,0,0,0,2785,2787,5,28,0,0,2786,2788,3,422,211,0,2787,2786,1,0,0,0,2787,2788,1,0,0,0,2788,2790,1,0,0,0,2789,2791,3,424,212,0,2790,2789,1,0,0,0,2790,2791,1,0,0,0,2791,2793,1,0,0,0,2792,2794,3,426,213,0,2793,2792,1,0,0,0,2793,2794,1,0,0,0,2794,2796,1,0,0,0,2795,2797,3,428,214,0,2796,2795,1,0,0,0,2796,2797,1,0,0,0,2797,2799,1,0,0,0,2798,2800,3,432,216,0,2799,2798,1,0,0,0,2799,2800,1,0,0,0,2800,419,1,0,0,0,2801,2808,3,476,238,0,2802,2808,3,484,242,0,2803,2808,3,486,243,0,2804,2808,3,508,254,0,2805,2808,3,494,247,0,2806,2808,3,728,364,0,2807,2801,1,0,0,0,2807,2802,1,0,0,0,2807,2803,1,0,0,0,2807,2804,1,0,0,0,2807,2805,1,0,0,0,2807,2806,1,0,0,0,2808,421,1,0,0,0,2809,2810,5,162,0,0,2810,2811,5,27,0,0,2811,2816,3,584,292,0,2812,2813,5,26,0,0,2813,2815,3,584,292,0,2814,2812,1,0,0,0,2815,2818,1,0,0,0,2816,2814,1,0,0,0,2816,2817,1,0,0,0,2817,2819,1,0,0,0,2818,2816,1,0,0,0,2819,2820,5,28,0,0,2820,423,1,0,0,0,2821,2822,5,215,0,0,2822,2823,5,69,0,0,2823,2824,5,151,0,0,2824,2825,3,114,57,0,2825,425,1,0,0,0,2826,2827,5,312,0,0,2827,2828,5,27,0,0,2828,2833,3,430,215,0,2829,2830,5,26,0,0,2830,2832,3,430,215,0,2831,2829,1,0,0,0,2832,2835,1,0,0,0,2833,2831,1,0,0,0,2833,2834,1,0,0,0,2834,2836,1,0,0,0,2835,2833,1,0,0,0,2836,2837,5,28,0,0,2837,427,1,0,0,0,2838,2839,5,280,0,0,2839,2840,3,584,292,0,2840,429,1,0,0,0,2841,2842,3,724,362,0,2842,2843,5,2,0,0,2843,2844,3,506,253,0,2844,431,1,0,0,0,2845,2846,5,55,0,0,2846,2847,3,372,186,0,2847,433,1,0,0,0,2848,2849,5,49,0,0,2849,2850,5,277,0,0,2850,2851,3,586,293,0,2851,2856,3,436,218,0,2852,2853,5,26,0,0,2853,2855,3,436,218,0,2854,2852,1,0,0,0,2855,2858,1,0,0,0,2856,2854,1,0,0,0,2856,2857,1,0,0,0,2857,435,1,0,0,0,2858,2856,1,0,0,0,2859,2875,3,446,223,0,2860,2875,3,448,224,0,2861,2875,3,450,225,0,2862,2875,3,452,226,0,2863,2875,3,454,227,0,2864,2875,3,456,228,0,2865,2875,3,458,229,0,2866,2875,3,460,230,0,2867,2875,3,462,231,0,2868,2875,3,464,232,0,2869,2875,3,466,233,0,2870,2875,3,470,235,0,2871,2875,3,472,236,0,2872,2875,3,474,237,0,2873,2875,3,468,234,0,2874,2859,1,0,0,0,2874,2860,1,0,0,0,2874,2861,1,0,0,0,2874,2862,1,0,0,0,2874,2863,1,0,0,0,2874,2864,1,0,0,0,2874,2865,1,0,0,0,2874,2866,1,0,0,0,2874,2867,1,0,0,0,2874,2868,1,0,0,0,2874,2869,1,0,0,0,2874,2870,1,0,0,0,2874,2871,1,0,0,0,2874,2872,1,0,0,0,2874,2873,1,0,0,0,2875,437,1,0,0,0,2876,2877,5,49,0,0,2877,2878,5,131,0,0,2878,2879,5,277,0,0,2879,2880,3,586,293,0,2880,2885,3,440,220,0,2881,2882,5,26,0,0,2882,2884,3,440,220,0,2883,2881,1,0,0,0,2884,2887,1,0,0,0,2885,2883,1,0,0,0,2885,2886,1,0,0,0,2886,439,1,0,0,0,2887,2885,1,0,0,0,2888,2894,3,446,223,0,2889,2894,3,448,224,0,2890,2894,3,456,228,0,2891,2894,3,458,229,0,2892,2894,3,460,230,0,2893,2888,1,0,0,0,2893,2889,1,0,0,0,2893,2890,1,0,0,0,2893,2891,1,0,0,0,2893,2892,1,0,0,0,2894,441,1,0,0,0,2895,2896,5,49,0,0,2896,2897,5,280,0,0,2897,2898,3,582,291,0,2898,2903,3,444,222,0,2899,2900,5,26,0,0,2900,2902,3,444,222,0,2901,2899,1,0,0,0,2902,2905,1,0,0,0,2903,2901,1,0,0,0,2903,2904,1,0,0,0,2904,443,1,0,0,0,2905,2903,1,0,0,0,2906,2909,3,446,223,0,2907,2909,3,448,224,0,2908,2906,1,0,0,0,2908,2907,1,0,0,0,2909,445,1,0,0,0,2910,2912,5,46,0,0,2911,2913,5,77,0,0,2912,2911,1,0,0,0,2912,2913,1,0,0,0,2913,2914,1,0,0,0,2914,2915,3,476,238,0,2915,447,1,0,0,0,2916,2918,5,112,0,0,2917,2919,5,77,0,0,2918,2917,1,0,0,0,2918,2919,1,0,0,0,2919,2920,1,0,0,0,2920,2921,3,724,362,0,2921,449,1,0,0,0,2922,2923,5,49,0,0,2923,2924,5,77,0,0,2924,2925,3,724,362,0,2925,2926,5,264,0,0,2926,2927,3,478,239,0,2927,451,1,0,0,0,2928,2929,5,46,0,0,2929,2930,3,508,254,0,2930,453,1,0,0,0,2931,2932,5,49,0,0,2932,2933,5,134,0,0,2933,2934,3,724,362,0,2934,2935,5,264,0,0,2935,2936,3,724,362,0,2936,2937,3,514,257,0,2937,455,1,0,0,0,2938,2939,5,264,0,0,2939,2940,3,724,362,0,2940,2941,3,506,253,0,2941,457,1,0,0,0,2942,2943,5,264,0,0,2943,2944,5,27,0,0,2944,2949,3,504,252,0,2945,2946,5,26,0,0,2946,2948,3,504,252,0,2947,2945,1,0,0,0,2948,2951,1,0,0,0,2949,2947,1,0,0,0,2949,2950,1,0,0,0,2950,2952,1,0,0,0,2951,2949,1,0,0,0,2952,2953,5,28,0,0,2953,459,1,0,0,0,2954,2955,5,242,0,0,2955,2956,5,27,0,0,2956,2961,3,724,362,0,2957,2958,5,26,0,0,2958,2960,3,724,362,0,2959,2957,1,0,0,0,2960,2963,1,0,0,0,2961,2959,1,0,0,0,2961,2962,1,0,0,0,2962,2964,1,0,0,0,2963,2961,1,0,0,0,2964,2965,5,28,0,0,2965,461,1,0,0,0,2966,2967,5,46,0,0,2967,2968,3,486,243,0,2968,463,1,0,0,0,2969,2970,5,112,0,0,2970,2971,5,160,0,0,2971,2972,3,724,362,0,2972,465,1,0,0,0,2973,2974,5,238,0,0,2974,2975,5,286,0,0,2975,2976,3,736,368,0,2976,467,1,0,0,0,2977,2978,5,238,0,0,2978,2979,5,160,0,0,2979,2980,3,724,362,0,2980,2981,5,286,0,0,2981,2982,3,724,362,0,2982,469,1,0,0,0,2983,2984,5,46,0,0,2984,2985,3,494,247,0,2985,471,1,0,0,0,2986,2987,5,49,0,0,2987,2988,5,74,0,0,2988,2989,3,724,362,0,2989,2990,3,502,251,0,2990,473,1,0,0,0,2991,2992,5,112,0,0,2992,2993,5,74,0,0,2993,2994,3,724,362,0,2994,475,1,0,0,0,2995,2996,3,728,364,0,2996,2998,3,204,102,0,2997,2999,3,478,239,0,2998,2997,1,0,0,0,2998,2999,1,0,0,0,2999,3e3,1,0,0,0,3e3,3001,3,480,240,0,3001,477,1,0,0,0,3002,3003,5,134,0,0,3003,3004,3,724,362,0,3004,479,1,0,0,0,3005,3007,5,196,0,0,3006,3005,1,0,0,0,3006,3007,1,0,0,0,3007,3008,1,0,0,0,3008,3010,5,198,0,0,3009,3006,1,0,0,0,3009,3010,1,0,0,0,3010,3013,1,0,0,0,3011,3012,5,98,0,0,3012,3014,3,14,7,0,3013,3011,1,0,0,0,3013,3014,1,0,0,0,3014,481,1,0,0,0,3015,3017,3,724,362,0,3016,3018,7,9,0,0,3017,3016,1,0,0,0,3017,3018,1,0,0,0,3018,483,1,0,0,0,3019,3020,5,226,0,0,3020,3021,5,176,0,0,3021,3022,5,27,0,0,3022,3027,3,724,362,0,3023,3024,5,26,0,0,3024,3026,3,724,362,0,3025,3023,1,0,0,0,3026,3029,1,0,0,0,3027,3025,1,0,0,0,3027,3028,1,0,0,0,3028,3030,1,0,0,0,3029,3027,1,0,0,0,3030,3031,5,28,0,0,3031,3059,1,0,0,0,3032,3033,5,215,0,0,3033,3034,5,69,0,0,3034,3035,5,27,0,0,3035,3040,3,724,362,0,3036,3037,5,26,0,0,3037,3039,3,724,362,0,3038,3036,1,0,0,0,3039,3042,1,0,0,0,3040,3038,1,0,0,0,3040,3041,1,0,0,0,3041,3043,1,0,0,0,3042,3040,1,0,0,0,3043,3044,5,28,0,0,3044,3059,1,0,0,0,3045,3046,5,210,0,0,3046,3047,5,69,0,0,3047,3048,5,27,0,0,3048,3053,3,482,241,0,3049,3050,5,26,0,0,3050,3052,3,482,241,0,3051,3049,1,0,0,0,3052,3055,1,0,0,0,3053,3051,1,0,0,0,3053,3054,1,0,0,0,3054,3056,1,0,0,0,3055,3053,1,0,0,0,3056,3057,5,28,0,0,3057,3059,1,0,0,0,3058,3019,1,0,0,0,3058,3032,1,0,0,0,3058,3045,1,0,0,0,3059,485,1,0,0,0,3060,3061,5,160,0,0,3061,3062,3,724,362,0,3062,3083,3,488,244,0,3063,3064,5,312,0,0,3064,3065,5,27,0,0,3065,3066,3,724,362,0,3066,3067,5,2,0,0,3067,3075,3,724,362,0,3068,3069,5,26,0,0,3069,3070,3,724,362,0,3070,3071,5,2,0,0,3071,3072,3,724,362,0,3072,3074,1,0,0,0,3073,3068,1,0,0,0,3074,3077,1,0,0,0,3075,3073,1,0,0,0,3075,3076,1,0,0,0,3076,3079,1,0,0,0,3077,3075,1,0,0,0,3078,3080,5,26,0,0,3079,3078,1,0,0,0,3079,3080,1,0,0,0,3080,3081,1,0,0,0,3081,3082,5,28,0,0,3082,3084,1,0,0,0,3083,3063,1,0,0,0,3083,3084,1,0,0,0,3084,3085,1,0,0,0,3085,3086,5,204,0,0,3086,3087,5,27,0,0,3087,3092,3,728,364,0,3088,3089,5,26,0,0,3089,3091,3,728,364,0,3090,3088,1,0,0,0,3091,3094,1,0,0,0,3092,3090,1,0,0,0,3092,3093,1,0,0,0,3093,3095,1,0,0,0,3094,3092,1,0,0,0,3095,3108,5,28,0,0,3096,3097,5,86,0,0,3097,3098,5,27,0,0,3098,3103,3,728,364,0,3099,3100,5,26,0,0,3100,3102,3,728,364,0,3101,3099,1,0,0,0,3102,3105,1,0,0,0,3103,3101,1,0,0,0,3103,3104,1,0,0,0,3104,3106,1,0,0,0,3105,3103,1,0,0,0,3106,3107,5,28,0,0,3107,3109,1,0,0,0,3108,3096,1,0,0,0,3108,3109,1,0,0,0,3109,487,1,0,0,0,3110,3113,3,490,245,0,3111,3113,3,492,246,0,3112,3110,1,0,0,0,3112,3111,1,0,0,0,3113,489,1,0,0,0,3114,3116,5,146,0,0,3115,3117,5,296,0,0,3116,3115,1,0,0,0,3116,3117,1,0,0,0,3117,3119,1,0,0,0,3118,3120,7,16,0,0,3119,3118,1,0,0,0,3119,3120,1,0,0,0,3120,491,1,0,0,0,3121,3122,5,183,0,0,3122,493,1,0,0,0,3123,3124,5,74,0,0,3124,3125,3,724,362,0,3125,3126,5,312,0,0,3126,3127,5,27,0,0,3127,3128,3,496,248,0,3128,3129,5,28,0,0,3129,495,1,0,0,0,3130,3135,3,498,249,0,3131,3132,5,26,0,0,3132,3134,3,498,249,0,3133,3131,1,0,0,0,3134,3137,1,0,0,0,3135,3133,1,0,0,0,3135,3136,1,0,0,0,3136,497,1,0,0,0,3137,3135,1,0,0,0,3138,3139,3,724,362,0,3139,3140,5,2,0,0,3140,3141,3,500,250,0,3141,499,1,0,0,0,3142,3143,3,14,7,0,3143,501,1,0,0,0,3144,3151,5,108,0,0,3145,3146,5,264,0,0,3146,3147,5,27,0,0,3147,3148,3,496,248,0,3148,3149,5,28,0,0,3149,3151,1,0,0,0,3150,3144,1,0,0,0,3150,3145,1,0,0,0,3151,503,1,0,0,0,3152,3153,3,724,362,0,3153,3154,5,2,0,0,3154,3155,3,506,253,0,3155,505,1,0,0,0,3156,3169,3,706,353,0,3157,3169,5,316,0,0,3158,3169,3,788,394,0,3159,3169,3,516,258,0,3160,3161,3,14,7,0,3161,3162,5,204,0,0,3162,3165,3,724,362,0,3163,3164,5,55,0,0,3164,3166,7,17,0,0,3165,3163,1,0,0,0,3165,3166,1,0,0,0,3166,3169,1,0,0,0,3167,3169,3,784,392,0,3168,3156,1,0,0,0,3168,3157,1,0,0,0,3168,3158,1,0,0,0,3168,3159,1,0,0,0,3168,3160,1,0,0,0,3168,3167,1,0,0,0,3169,507,1,0,0,0,3170,3171,5,134,0,0,3171,3172,3,724,362,0,3172,3173,3,510,255,0,3173,509,1,0,0,0,3174,3183,5,27,0,0,3175,3180,3,512,256,0,3176,3177,5,26,0,0,3177,3179,3,512,256,0,3178,3176,1,0,0,0,3179,3182,1,0,0,0,3180,3178,1,0,0,0,3180,3181,1,0,0,0,3181,3184,1,0,0,0,3182,3180,1,0,0,0,3183,3175,1,0,0,0,3183,3184,1,0,0,0,3184,3185,1,0,0,0,3185,3186,5,28,0,0,3186,511,1,0,0,0,3187,3188,3,724,362,0,3188,3189,5,2,0,0,3189,3190,3,514,257,0,3190,513,1,0,0,0,3191,3192,5,316,0,0,3192,515,1,0,0,0,3193,3194,5,27,0,0,3194,3199,3,518,259,0,3195,3196,5,26,0,0,3196,3198,3,518,259,0,3197,3195,1,0,0,0,3198,3201,1,0,0,0,3199,3197,1,0,0,0,3199,3200,1,0,0,0,3200,3202,1,0,0,0,3201,3199,1,0,0,0,3202,3203,5,28,0,0,3203,3206,1,0,0,0,3204,3206,3,518,259,0,3205,3193,1,0,0,0,3205,3204,1,0,0,0,3206,517,1,0,0,0,3207,3208,5,27,0,0,3208,3213,3,142,71,0,3209,3210,5,26,0,0,3210,3212,3,142,71,0,3211,3209,1,0,0,0,3212,3215,1,0,0,0,3213,3211,1,0,0,0,3213,3214,1,0,0,0,3214,3216,1,0,0,0,3215,3213,1,0,0,0,3216,3217,5,28,0,0,3217,519,1,0,0,0,3218,3223,5,112,0,0,3219,3224,5,277,0,0,3220,3224,5,280,0,0,3221,3222,5,131,0,0,3222,3224,5,277,0,0,3223,3219,1,0,0,0,3223,3220,1,0,0,0,3223,3221,1,0,0,0,3224,3227,1,0,0,0,3225,3226,5,154,0,0,3226,3228,5,128,0,0,3227,3225,1,0,0,0,3227,3228,1,0,0,0,3228,3229,1,0,0,0,3229,3230,3,586,293,0,3230,521,1,0,0,0,3231,3232,5,87,0,0,3232,3233,5,302,0,0,3233,3235,3,532,266,0,3234,3236,3,534,267,0,3235,3234,1,0,0,0,3235,3236,1,0,0,0,3236,523,1,0,0,0,3237,3238,5,49,0,0,3238,3239,5,302,0,0,3239,3247,3,532,266,0,3240,3242,5,312,0,0,3241,3240,1,0,0,0,3241,3242,1,0,0,0,3242,3243,1,0,0,0,3243,3248,3,534,267,0,3244,3245,5,238,0,0,3245,3246,5,286,0,0,3246,3248,3,532,266,0,3247,3241,1,0,0,0,3247,3244,1,0,0,0,3248,525,1,0,0,0,3249,3250,5,87,0,0,3250,3251,5,148,0,0,3251,3265,3,532,266,0,3252,3253,5,312,0,0,3253,3254,5,302,0,0,3254,3259,3,532,266,0,3255,3256,5,26,0,0,3256,3258,3,532,266,0,3257,3255,1,0,0,0,3258,3261,1,0,0,0,3259,3257,1,0,0,0,3259,3260,1,0,0,0,3260,3263,1,0,0,0,3261,3259,1,0,0,0,3262,3264,5,26,0,0,3263,3262,1,0,0,0,3263,3264,1,0,0,0,3264,3266,1,0,0,0,3265,3252,1,0,0,0,3265,3266,1,0,0,0,3266,527,1,0,0,0,3267,3268,5,49,0,0,3268,3269,5,148,0,0,3269,3286,3,532,266,0,3270,3271,7,18,0,0,3271,3272,5,302,0,0,3272,3277,3,532,266,0,3273,3274,5,26,0,0,3274,3276,3,532,266,0,3275,3273,1,0,0,0,3276,3279,1,0,0,0,3277,3275,1,0,0,0,3277,3278,1,0,0,0,3278,3281,1,0,0,0,3279,3277,1,0,0,0,3280,3282,5,26,0,0,3281,3280,1,0,0,0,3281,3282,1,0,0,0,3282,3287,1,0,0,0,3283,3284,5,238,0,0,3284,3285,5,286,0,0,3285,3287,3,532,266,0,3286,3270,1,0,0,0,3286,3283,1,0,0,0,3287,529,1,0,0,0,3288,3289,5,112,0,0,3289,3292,7,19,0,0,3290,3291,5,154,0,0,3291,3293,5,128,0,0,3292,3290,1,0,0,0,3292,3293,1,0,0,0,3293,3294,1,0,0,0,3294,3299,3,532,266,0,3295,3296,5,26,0,0,3296,3298,3,532,266,0,3297,3295,1,0,0,0,3298,3301,1,0,0,0,3299,3297,1,0,0,0,3299,3300,1,0,0,0,3300,3303,1,0,0,0,3301,3299,1,0,0,0,3302,3304,5,26,0,0,3303,3302,1,0,0,0,3303,3304,1,0,0,0,3304,531,1,0,0,0,3305,3308,3,726,363,0,3306,3308,3,144,72,0,3307,3305,1,0,0,0,3307,3306,1,0,0,0,3308,533,1,0,0,0,3309,3311,5,117,0,0,3310,3309,1,0,0,0,3310,3311,1,0,0,0,3311,3312,1,0,0,0,3312,3313,5,217,0,0,3313,3314,3,14,7,0,3314,535,1,0,0,0,3315,3316,5,147,0,0,3316,3317,3,544,272,0,3317,3318,5,204,0,0,3318,3323,3,728,364,0,3319,3320,5,26,0,0,3320,3322,3,728,364,0,3321,3319,1,0,0,0,3322,3325,1,0,0,0,3323,3321,1,0,0,0,3323,3324,1,0,0,0,3324,3326,1,0,0,0,3325,3323,1,0,0,0,3326,3327,5,286,0,0,3327,3332,3,532,266,0,3328,3329,5,26,0,0,3329,3331,3,532,266,0,3330,3328,1,0,0,0,3331,3334,1,0,0,0,3332,3330,1,0,0,0,3332,3333,1,0,0,0,3333,3336,1,0,0,0,3334,3332,1,0,0,0,3335,3337,5,26,0,0,3336,3335,1,0,0,0,3336,3337,1,0,0,0,3337,3341,1,0,0,0,3338,3339,5,312,0,0,3339,3340,5,147,0,0,3340,3342,5,207,0,0,3341,3338,1,0,0,0,3341,3342,1,0,0,0,3342,537,1,0,0,0,3343,3347,5,250,0,0,3344,3345,5,147,0,0,3345,3346,5,207,0,0,3346,3348,5,140,0,0,3347,3344,1,0,0,0,3347,3348,1,0,0,0,3348,3349,1,0,0,0,3349,3350,3,544,272,0,3350,3351,5,204,0,0,3351,3356,3,728,364,0,3352,3353,5,26,0,0,3353,3355,3,728,364,0,3354,3352,1,0,0,0,3355,3358,1,0,0,0,3356,3354,1,0,0,0,3356,3357,1,0,0,0,3357,3359,1,0,0,0,3358,3356,1,0,0,0,3359,3360,5,142,0,0,3360,3365,3,532,266,0,3361,3362,5,26,0,0,3362,3364,3,532,266,0,3363,3361,1,0,0,0,3364,3367,1,0,0,0,3365,3363,1,0,0,0,3365,3366,1,0,0,0,3366,539,1,0,0,0,3367,3365,1,0,0,0,3368,3393,5,83,0,0,3369,3393,5,182,0,0,3370,3393,5,166,0,0,3371,3393,5,184,0,0,3372,3393,5,112,0,0,3373,3393,5,147,0,0,3374,3375,5,191,0,0,3375,3393,7,20,0,0,3376,3377,7,21,0,0,3377,3393,5,255,0,0,3378,3379,7,22,0,0,3379,3393,5,259,0,0,3380,3382,5,262,0,0,3381,3383,7,23,0,0,3382,3381,1,0,0,0,3382,3383,1,0,0,0,3383,3393,1,0,0,0,3384,3386,7,24,0,0,3385,3387,5,179,0,0,3386,3385,1,0,0,0,3386,3387,1,0,0,0,3387,3393,1,0,0,0,3388,3390,5,87,0,0,3389,3391,7,25,0,0,3390,3389,1,0,0,0,3390,3391,1,0,0,0,3391,3393,1,0,0,0,3392,3368,1,0,0,0,3392,3369,1,0,0,0,3392,3370,1,0,0,0,3392,3371,1,0,0,0,3392,3372,1,0,0,0,3392,3373,1,0,0,0,3392,3374,1,0,0,0,3392,3376,1,0,0,0,3392,3378,1,0,0,0,3392,3380,1,0,0,0,3392,3384,1,0,0,0,3392,3388,1,0,0,0,3393,541,1,0,0,0,3394,3397,3,540,270,0,3395,3397,5,316,0,0,3396,3394,1,0,0,0,3396,3395,1,0,0,0,3397,543,1,0,0,0,3398,3403,3,542,271,0,3399,3400,5,26,0,0,3400,3402,3,542,271,0,3401,3399,1,0,0,0,3402,3405,1,0,0,0,3403,3401,1,0,0,0,3403,3404,1,0,0,0,3404,3407,1,0,0,0,3405,3403,1,0,0,0,3406,3408,5,26,0,0,3407,3406,1,0,0,0,3407,3408,1,0,0,0,3408,3414,1,0,0,0,3409,3411,5,48,0,0,3410,3412,5,227,0,0,3411,3410,1,0,0,0,3411,3412,1,0,0,0,3412,3414,1,0,0,0,3413,3398,1,0,0,0,3413,3409,1,0,0,0,3414,545,1,0,0,0,3415,3416,5,87,0,0,3416,3417,5,59,0,0,3417,3418,5,241,0,0,3418,3419,3,582,291,0,3419,3420,5,140,0,0,3420,3425,3,548,274,0,3421,3422,5,26,0,0,3422,3424,3,548,274,0,3423,3421,1,0,0,0,3424,3427,1,0,0,0,3425,3423,1,0,0,0,3425,3426,1,0,0,0,3426,3428,1,0,0,0,3427,3425,1,0,0,0,3428,3429,5,312,0,0,3429,3430,5,27,0,0,3430,3431,3,550,275,0,3431,3432,5,28,0,0,3432,547,1,0,0,0,3433,3434,3,582,291,0,3434,3435,3,798,399,0,3435,549,1,0,0,0,3436,3441,3,552,276,0,3437,3438,5,26,0,0,3438,3440,3,552,276,0,3439,3437,1,0,0,0,3440,3443,1,0,0,0,3441,3439,1,0,0,0,3441,3442,1,0,0,0,3442,551,1,0,0,0,3443,3441,1,0,0,0,3444,3445,3,724,362,0,3445,3446,5,2,0,0,3446,3447,5,316,0,0,3447,553,1,0,0,0,3448,3449,5,49,0,0,3449,3450,5,59,0,0,3450,3451,5,241,0,0,3451,3452,3,582,291,0,3452,3457,3,556,278,0,3453,3454,5,26,0,0,3454,3456,3,556,278,0,3455,3453,1,0,0,0,3456,3459,1,0,0,0,3457,3455,1,0,0,0,3457,3458,1,0,0,0,3458,555,1,0,0,0,3459,3457,1,0,0,0,3460,3461,3,558,279,0,3461,557,1,0,0,0,3462,3463,5,264,0,0,3463,3464,5,27,0,0,3464,3465,3,550,275,0,3465,3466,5,28,0,0,3466,559,1,0,0,0,3467,3468,5,112,0,0,3468,3469,5,59,0,0,3469,3470,5,241,0,0,3470,3472,3,582,291,0,3471,3473,5,71,0,0,3472,3471,1,0,0,0,3472,3473,1,0,0,0,3473,561,1,0,0,0,3474,3479,3,146,73,0,3475,3476,5,26,0,0,3476,3478,3,146,73,0,3477,3475,1,0,0,0,3478,3481,1,0,0,0,3479,3477,1,0,0,0,3479,3480,1,0,0,0,3480,563,1,0,0,0,3481,3479,1,0,0,0,3482,3483,5,101,0,0,3483,3484,7,26,0,0,3484,3485,3,144,72,0,3485,3487,5,27,0,0,3486,3488,3,562,281,0,3487,3486,1,0,0,0,3487,3488,1,0,0,0,3488,3489,1,0,0,0,3489,3490,5,28,0,0,3490,3491,5,55,0,0,3491,3492,3,566,283,0,3492,3493,5,118,0,0,3493,3494,5,101,0,0,3494,565,1,0,0,0,3495,3497,5,24,0,0,3496,3495,1,0,0,0,3497,3500,1,0,0,0,3498,3496,1,0,0,0,3498,3499,1,0,0,0,3499,3519,1,0,0,0,3500,3498,1,0,0,0,3501,3510,3,12,6,0,3502,3504,5,24,0,0,3503,3502,1,0,0,0,3504,3505,1,0,0,0,3505,3503,1,0,0,0,3505,3506,1,0,0,0,3506,3507,1,0,0,0,3507,3509,3,12,6,0,3508,3503,1,0,0,0,3509,3512,1,0,0,0,3510,3508,1,0,0,0,3510,3511,1,0,0,0,3511,3516,1,0,0,0,3512,3510,1,0,0,0,3513,3515,5,24,0,0,3514,3513,1,0,0,0,3515,3518,1,0,0,0,3516,3514,1,0,0,0,3516,3517,1,0,0,0,3517,3520,1,0,0,0,3518,3516,1,0,0,0,3519,3501,1,0,0,0,3519,3520,1,0,0,0,3520,567,1,0,0,0,3521,3523,5,123,0,0,3522,3521,1,0,0,0,3522,3523,1,0,0,0,3523,3524,1,0,0,0,3524,3525,5,154,0,0,3525,3526,3,14,7,0,3526,3529,3,222,111,0,3527,3528,5,114,0,0,3528,3530,3,222,111,0,3529,3527,1,0,0,0,3529,3530,1,0,0,0,3530,569,1,0,0,0,3531,3533,5,123,0,0,3532,3531,1,0,0,0,3532,3533,1,0,0,0,3533,3535,1,0,0,0,3534,3536,5,214,0,0,3535,3534,1,0,0,0,3535,3536,1,0,0,0,3536,3537,1,0,0,0,3537,3538,5,140,0,0,3538,3539,3,144,72,0,3539,3540,5,159,0,0,3540,3541,3,14,7,0,3541,3544,3,222,111,0,3542,3543,5,114,0,0,3543,3545,3,222,111,0,3544,3542,1,0,0,0,3544,3545,1,0,0,0,3545,571,1,0,0,0,3546,3547,3,750,375,0,3547,3548,5,25,0,0,3548,3550,1,0,0,0,3549,3546,1,0,0,0,3549,3550,1,0,0,0,3550,3552,1,0,0,0,3551,3553,5,31,0,0,3552,3551,1,0,0,0,3552,3553,1,0,0,0,3553,3584,1,0,0,0,3554,3585,3,574,287,0,3555,3556,3,730,365,0,3556,3568,5,27,0,0,3557,3562,3,576,288,0,3558,3559,5,26,0,0,3559,3561,3,576,288,0,3560,3558,1,0,0,0,3561,3564,1,0,0,0,3562,3560,1,0,0,0,3562,3563,1,0,0,0,3563,3566,1,0,0,0,3564,3562,1,0,0,0,3565,3567,5,26,0,0,3566,3565,1,0,0,0,3566,3567,1,0,0,0,3567,3569,1,0,0,0,3568,3557,1,0,0,0,3568,3569,1,0,0,0,3569,3570,1,0,0,0,3570,3571,5,28,0,0,3571,3585,1,0,0,0,3572,3578,3,144,72,0,3573,3575,5,27,0,0,3574,3576,3,112,56,0,3575,3574,1,0,0,0,3575,3576,1,0,0,0,3576,3577,1,0,0,0,3577,3579,5,28,0,0,3578,3573,1,0,0,0,3578,3579,1,0,0,0,3579,3582,1,0,0,0,3580,3581,5,307,0,0,3581,3583,3,746,373,0,3582,3580,1,0,0,0,3582,3583,1,0,0,0,3583,3585,1,0,0,0,3584,3554,1,0,0,0,3584,3555,1,0,0,0,3584,3572,1,0,0,0,3585,3587,1,0,0,0,3586,3588,3,578,289,0,3587,3586,1,0,0,0,3587,3588,1,0,0,0,3588,573,1,0,0,0,3589,3592,3,758,379,0,3590,3591,5,307,0,0,3591,3593,3,746,373,0,3592,3590,1,0,0,0,3592,3593,1,0,0,0,3593,575,1,0,0,0,3594,3596,5,31,0,0,3595,3594,1,0,0,0,3595,3596,1,0,0,0,3596,3597,1,0,0,0,3597,3600,3,128,64,0,3598,3599,5,307,0,0,3599,3601,3,746,373,0,3600,3598,1,0,0,0,3600,3601,1,0,0,0,3601,577,1,0,0,0,3602,3615,5,312,0,0,3603,3616,3,580,290,0,3604,3605,5,27,0,0,3605,3610,3,580,290,0,3606,3607,5,26,0,0,3607,3609,3,580,290,0,3608,3606,1,0,0,0,3609,3612,1,0,0,0,3610,3608,1,0,0,0,3610,3611,1,0,0,0,3611,3613,1,0,0,0,3612,3610,1,0,0,0,3613,3614,5,28,0,0,3614,3616,1,0,0,0,3615,3603,1,0,0,0,3615,3604,1,0,0,0,3616,579,1,0,0,0,3617,3636,3,740,370,0,3618,3634,5,2,0,0,3619,3635,3,160,80,0,3620,3621,5,27,0,0,3621,3626,3,160,80,0,3622,3623,5,26,0,0,3623,3625,3,160,80,0,3624,3622,1,0,0,0,3625,3628,1,0,0,0,3626,3624,1,0,0,0,3626,3627,1,0,0,0,3627,3630,1,0,0,0,3628,3626,1,0,0,0,3629,3631,5,26,0,0,3630,3629,1,0,0,0,3630,3631,1,0,0,0,3631,3632,1,0,0,0,3632,3633,5,28,0,0,3633,3635,1,0,0,0,3634,3619,1,0,0,0,3634,3620,1,0,0,0,3635,3637,1,0,0,0,3636,3618,1,0,0,0,3636,3637,1,0,0,0,3637,3663,1,0,0,0,3638,3640,7,27,0,0,3639,3641,5,2,0,0,3640,3639,1,0,0,0,3640,3641,1,0,0,0,3641,3642,1,0,0,0,3642,3663,3,204,102,0,3643,3645,5,259,0,0,3644,3646,5,2,0,0,3645,3644,1,0,0,0,3645,3646,1,0,0,0,3646,3647,1,0,0,0,3647,3656,5,27,0,0,3648,3653,3,164,82,0,3649,3650,5,26,0,0,3650,3652,3,164,82,0,3651,3649,1,0,0,0,3652,3655,1,0,0,0,3653,3651,1,0,0,0,3653,3654,1,0,0,0,3654,3657,1,0,0,0,3655,3653,1,0,0,0,3656,3648,1,0,0,0,3656,3657,1,0,0,0,3657,3659,1,0,0,0,3658,3660,5,26,0,0,3659,3658,1,0,0,0,3659,3660,1,0,0,0,3660,3661,1,0,0,0,3661,3663,5,28,0,0,3662,3617,1,0,0,0,3662,3638,1,0,0,0,3662,3643,1,0,0,0,3663,581,1,0,0,0,3664,3665,3,750,375,0,3665,3666,5,25,0,0,3666,3668,1,0,0,0,3667,3664,1,0,0,0,3667,3668,1,0,0,0,3668,3669,1,0,0,0,3669,3670,3,756,378,0,3670,583,1,0,0,0,3671,3677,3,582,291,0,3672,3674,5,31,0,0,3673,3672,1,0,0,0,3673,3674,1,0,0,0,3674,3675,1,0,0,0,3675,3677,3,144,72,0,3676,3671,1,0,0,0,3676,3673,1,0,0,0,3677,585,1,0,0,0,3678,3680,3,584,292,0,3679,3681,3,578,289,0,3680,3679,1,0,0,0,3680,3681,1,0,0,0,3681,587,1,0,0,0,3682,3686,3,586,293,0,3683,3684,5,120,0,0,3684,3685,5,69,0,0,3685,3687,3,114,57,0,3686,3683,1,0,0,0,3686,3687,1,0,0,0,3687,589,1,0,0,0,3688,3689,5,102,0,0,3689,3690,5,142,0,0,3690,3694,3,586,293,0,3691,3695,3,800,400,0,3692,3693,5,204,0,0,3693,3695,3,368,184,0,3694,3691,1,0,0,0,3694,3692,1,0,0,0,3694,3695,1,0,0,0,3695,3697,1,0,0,0,3696,3698,3,362,181,0,3697,3696,1,0,0,0,3697,3698,1,0,0,0,3698,591,1,0,0,0,3699,3700,5,299,0,0,3700,3708,3,586,293,0,3701,3702,5,264,0,0,3702,3704,3,594,297,0,3703,3705,3,800,400,0,3704,3703,1,0,0,0,3704,3705,1,0,0,0,3705,3709,1,0,0,0,3706,3707,5,204,0,0,3707,3709,3,368,184,0,3708,3701,1,0,0,0,3708,3706,1,0,0,0,3709,3711,1,0,0,0,3710,3712,3,362,181,0,3711,3710,1,0,0,0,3711,3712,1,0,0,0,3712,593,1,0,0,0,3713,3716,3,596,298,0,3714,3716,3,602,301,0,3715,3713,1,0,0,0,3715,3714,1,0,0,0,3716,595,1,0,0,0,3717,3722,3,598,299,0,3718,3719,5,26,0,0,3719,3721,3,598,299,0,3720,3718,1,0,0,0,3721,3724,1,0,0,0,3722,3720,1,0,0,0,3722,3723,1,0,0,0,3723,597,1,0,0,0,3724,3722,1,0,0,0,3725,3726,3,600,300,0,3726,3727,5,2,0,0,3727,3728,3,14,7,0,3728,599,1,0,0,0,3729,3730,3,120,60,0,3730,601,1,0,0,0,3731,3732,3,604,302,0,3732,3733,5,2,0,0,3733,3734,5,27,0,0,3734,3735,3,378,189,0,3735,3736,5,28,0,0,3736,603,1,0,0,0,3737,3738,5,27,0,0,3738,3743,3,600,300,0,3739,3740,5,26,0,0,3740,3742,3,600,300,0,3741,3739,1,0,0,0,3742,3745,1,0,0,0,3743,3741,1,0,0,0,3743,3744,1,0,0,0,3744,3746,1,0,0,0,3745,3743,1,0,0,0,3746,3747,5,28,0,0,3747,605,1,0,0,0,3748,3749,5,87,0,0,3749,3750,5,287,0,0,3750,3752,3,652,326,0,3751,3753,3,608,304,0,3752,3751,1,0,0,0,3752,3753,1,0,0,0,3753,3755,1,0,0,0,3754,3756,3,612,306,0,3755,3754,1,0,0,0,3755,3756,1,0,0,0,3756,607,1,0,0,0,3757,3758,5,27,0,0,3758,3763,3,610,305,0,3759,3760,5,26,0,0,3760,3762,3,610,305,0,3761,3759,1,0,0,0,3762,3765,1,0,0,0,3763,3761,1,0,0,0,3763,3764,1,0,0,0,3764,3766,1,0,0,0,3765,3763,1,0,0,0,3766,3767,5,28,0,0,3767,609,1,0,0,0,3768,3769,3,620,310,0,3769,611,1,0,0,0,3770,3771,5,312,0,0,3771,3772,5,27,0,0,3772,3773,3,638,319,0,3773,3774,5,28,0,0,3774,613,1,0,0,0,3775,3776,5,49,0,0,3776,3777,5,287,0,0,3777,3778,3,652,326,0,3778,3783,3,616,308,0,3779,3780,5,26,0,0,3780,3782,3,616,308,0,3781,3779,1,0,0,0,3782,3785,1,0,0,0,3783,3781,1,0,0,0,3783,3784,1,0,0,0,3784,615,1,0,0,0,3785,3783,1,0,0,0,3786,3792,3,618,309,0,3787,3792,3,622,311,0,3788,3792,3,626,313,0,3789,3792,3,632,316,0,3790,3792,3,634,317,0,3791,3786,1,0,0,0,3791,3787,1,0,0,0,3791,3788,1,0,0,0,3791,3789,1,0,0,0,3791,3790,1,0,0,0,3792,617,1,0,0,0,3793,3794,5,46,0,0,3794,3795,3,620,310,0,3795,619,1,0,0,0,3796,3797,5,85,0,0,3797,3799,3,724,362,0,3798,3800,3,644,322,0,3799,3798,1,0,0,0,3799,3800,1,0,0,0,3800,621,1,0,0,0,3801,3802,5,49,0,0,3802,3803,5,85,0,0,3803,3804,3,654,327,0,3804,3805,3,624,312,0,3805,623,1,0,0,0,3806,3809,3,628,314,0,3807,3809,3,630,315,0,3808,3806,1,0,0,0,3808,3807,1,0,0,0,3809,625,1,0,0,0,3810,3811,5,112,0,0,3811,3812,5,85,0,0,3812,3813,3,654,327,0,3813,627,1,0,0,0,3814,3815,5,264,0,0,3815,3816,5,27,0,0,3816,3817,3,646,323,0,3817,3818,5,28,0,0,3818,629,1,0,0,0,3819,3820,5,242,0,0,3820,3821,5,27,0,0,3821,3826,3,724,362,0,3822,3823,5,26,0,0,3823,3825,3,724,362,0,3824,3822,1,0,0,0,3825,3828,1,0,0,0,3826,3824,1,0,0,0,3826,3827,1,0,0,0,3827,3829,1,0,0,0,3828,3826,1,0,0,0,3829,3830,5,28,0,0,3830,631,1,0,0,0,3831,3832,5,264,0,0,3832,3833,5,27,0,0,3833,3834,3,638,319,0,3834,3835,5,28,0,0,3835,633,1,0,0,0,3836,3837,5,242,0,0,3837,3838,5,27,0,0,3838,3843,3,724,362,0,3839,3840,5,26,0,0,3840,3842,3,742,371,0,3841,3839,1,0,0,0,3842,3845,1,0,0,0,3843,3841,1,0,0,0,3843,3844,1,0,0,0,3844,3846,1,0,0,0,3845,3843,1,0,0,0,3846,3847,5,28,0,0,3847,635,1,0,0,0,3848,3849,5,112,0,0,3849,3850,5,287,0,0,3850,3851,3,652,326,0,3851,637,1,0,0,0,3852,3857,3,640,320,0,3853,3854,5,26,0,0,3854,3856,3,640,320,0,3855,3853,1,0,0,0,3856,3859,1,0,0,0,3857,3855,1,0,0,0,3857,3858,1,0,0,0,3858,639,1,0,0,0,3859,3857,1,0,0,0,3860,3861,3,724,362,0,3861,3862,5,2,0,0,3862,3863,3,642,321,0,3863,641,1,0,0,0,3864,3865,3,14,7,0,3865,643,1,0,0,0,3866,3867,5,312,0,0,3867,3868,5,27,0,0,3868,3869,3,646,323,0,3869,3870,5,28,0,0,3870,645,1,0,0,0,3871,3876,3,648,324,0,3872,3873,5,26,0,0,3873,3875,3,648,324,0,3874,3872,1,0,0,0,3875,3878,1,0,0,0,3876,3874,1,0,0,0,3876,3877,1,0,0,0,3877,647,1,0,0,0,3878,3876,1,0,0,0,3879,3880,3,724,362,0,3880,3881,5,2,0,0,3881,3882,3,650,325,0,3882,649,1,0,0,0,3883,3884,3,14,7,0,3884,651,1,0,0,0,3885,3886,3,750,375,0,3886,3887,5,25,0,0,3887,3889,1,0,0,0,3888,3885,1,0,0,0,3888,3889,1,0,0,0,3889,3890,1,0,0,0,3890,3891,3,724,362,0,3891,653,1,0,0,0,3892,3893,3,742,371,0,3893,655,1,0,0,0,3894,3895,5,244,0,0,3895,3899,5,199,0,0,3896,3897,5,155,0,0,3897,3899,5,199,0,0,3898,3894,1,0,0,0,3898,3896,1,0,0,0,3899,657,1,0,0,0,3900,3901,5,135,0,0,3901,3902,5,27,0,0,3902,3903,3,800,400,0,3903,3904,5,28,0,0,3904,659,1,0,0,0,3905,3908,3,662,331,0,3906,3908,3,672,336,0,3907,3905,1,0,0,0,3907,3906,1,0,0,0,3908,661,1,0,0,0,3909,3910,3,734,367,0,3910,663,1,0,0,0,3911,3912,5,311,0,0,3912,3913,3,666,333,0,3913,665,1,0,0,0,3914,3919,3,668,334,0,3915,3916,5,26,0,0,3916,3918,3,668,334,0,3917,3915,1,0,0,0,3918,3921,1,0,0,0,3919,3917,1,0,0,0,3919,3920,1,0,0,0,3920,667,1,0,0,0,3921,3919,1,0,0,0,3922,3923,3,670,335,0,3923,3924,5,55,0,0,3924,3925,3,672,336,0,3925,669,1,0,0,0,3926,3927,3,662,331,0,3927,671,1,0,0,0,3928,3929,5,27,0,0,3929,3930,3,674,337,0,3930,3931,5,28,0,0,3931,673,1,0,0,0,3932,3934,3,676,338,0,3933,3932,1,0,0,0,3933,3934,1,0,0,0,3934,3936,1,0,0,0,3935,3937,3,678,339,0,3936,3935,1,0,0,0,3936,3937,1,0,0,0,3937,3939,1,0,0,0,3938,3940,3,680,340,0,3939,3938,1,0,0,0,3939,3940,1,0,0,0,3940,3942,1,0,0,0,3941,3943,3,682,341,0,3942,3941,1,0,0,0,3942,3943,1,0,0,0,3943,675,1,0,0,0,3944,3945,3,662,331,0,3945,677,1,0,0,0,3946,3948,5,215,0,0,3947,3949,5,80,0,0,3948,3947,1,0,0,0,3948,3949,1,0,0,0,3949,3950,1,0,0,0,3950,3951,5,69,0,0,3951,3952,3,130,65,0,3952,679,1,0,0,0,3953,3954,3,314,157,0,3954,681,1,0,0,0,3955,3956,3,684,342,0,3956,3958,3,686,343,0,3957,3959,3,692,346,0,3958,3957,1,0,0,0,3958,3959,1,0,0,0,3959,683,1,0,0,0,3960,3961,7,28,0,0,3961,685,1,0,0,0,3962,3965,3,690,345,0,3963,3965,3,688,344,0,3964,3962,1,0,0,0,3964,3963,1,0,0,0,3965,687,1,0,0,0,3966,3967,5,67,0,0,3967,3968,3,690,345,0,3968,3969,5,51,0,0,3969,3970,3,690,345,0,3970,689,1,0,0,0,3971,3972,5,90,0,0,3972,3979,5,255,0,0,3973,3976,3,14,7,0,3974,3976,5,293,0,0,3975,3973,1,0,0,0,3975,3974,1,0,0,0,3976,3977,1,0,0,0,3977,3979,7,29,0,0,3978,3971,1,0,0,0,3978,3975,1,0,0,0,3979,691,1,0,0,0,3980,3981,5,125,0,0,3981,3982,5,90,0,0,3982,3991,5,255,0,0,3983,3984,5,125,0,0,3984,3991,5,148,0,0,3985,3986,5,125,0,0,3986,3991,5,285,0,0,3987,3988,5,125,0,0,3988,3989,5,195,0,0,3989,3991,5,211,0,0,3990,3980,1,0,0,0,3990,3983,1,0,0,0,3990,3985,1,0,0,0,3990,3987,1,0,0,0,3991,693,1,0,0,0,3992,3993,5,301,0,0,3993,3994,3,750,375,0,3994,695,1,0,0,0,3995,3996,5,27,0,0,3996,3997,3,232,116,0,3997,3998,5,28,0,0,3998,4001,1,0,0,0,3999,4001,3,234,117,0,4e3,3995,1,0,0,0,4e3,3999,1,0,0,0,4001,697,1,0,0,0,4002,4003,3,148,74,0,4003,4006,5,2,0,0,4004,4007,3,14,7,0,4005,4007,3,696,348,0,4006,4004,1,0,0,0,4006,4005,1,0,0,0,4007,699,1,0,0,0,4008,4009,5,79,0,0,4009,701,1,0,0,0,4010,4011,5,253,0,0,4011,703,1,0,0,0,4012,4013,7,30,0,0,4013,705,1,0,0,0,4014,4017,3,704,352,0,4015,4017,3,762,381,0,4016,4014,1,0,0,0,4016,4015,1,0,0,0,4017,707,1,0,0,0,4018,4026,3,704,352,0,4019,4026,3,780,390,0,4020,4026,3,764,382,0,4021,4026,3,768,384,0,4022,4026,3,772,386,0,4023,4026,3,774,387,0,4024,4026,3,776,388,0,4025,4018,1,0,0,0,4025,4019,1,0,0,0,4025,4020,1,0,0,0,4025,4021,1,0,0,0,4025,4022,1,0,0,0,4025,4023,1,0,0,0,4025,4024,1,0,0,0,4026,709,1,0,0,0,4027,4034,3,704,352,0,4028,4034,3,780,390,0,4029,4034,3,770,385,0,4030,4034,3,772,386,0,4031,4034,3,774,387,0,4032,4034,3,776,388,0,4033,4027,1,0,0,0,4033,4028,1,0,0,0,4033,4029,1,0,0,0,4033,4030,1,0,0,0,4033,4031,1,0,0,0,4033,4032,1,0,0,0,4034,711,1,0,0,0,4035,4041,3,704,352,0,4036,4041,3,780,390,0,4037,4041,3,770,385,0,4038,4041,3,774,387,0,4039,4041,3,776,388,0,4040,4035,1,0,0,0,4040,4036,1,0,0,0,4040,4037,1,0,0,0,4040,4038,1,0,0,0,4040,4039,1,0,0,0,4041,713,1,0,0,0,4042,4051,3,704,352,0,4043,4051,3,780,390,0,4044,4051,3,764,382,0,4045,4051,3,766,383,0,4046,4051,3,768,384,0,4047,4051,3,770,385,0,4048,4051,3,772,386,0,4049,4051,3,776,388,0,4050,4042,1,0,0,0,4050,4043,1,0,0,0,4050,4044,1,0,0,0,4050,4045,1,0,0,0,4050,4046,1,0,0,0,4050,4047,1,0,0,0,4050,4048,1,0,0,0,4050,4049,1,0,0,0,4051,715,1,0,0,0,4052,4060,3,704,352,0,4053,4060,3,780,390,0,4054,4060,3,764,382,0,4055,4060,3,768,384,0,4056,4060,3,772,386,0,4057,4060,3,774,387,0,4058,4060,3,776,388,0,4059,4052,1,0,0,0,4059,4053,1,0,0,0,4059,4054,1,0,0,0,4059,4055,1,0,0,0,4059,4056,1,0,0,0,4059,4057,1,0,0,0,4059,4058,1,0,0,0,4060,717,1,0,0,0,4061,4069,3,704,352,0,4062,4069,3,780,390,0,4063,4069,3,766,383,0,4064,4069,3,770,385,0,4065,4069,3,772,386,0,4066,4069,3,774,387,0,4067,4069,3,776,388,0,4068,4061,1,0,0,0,4068,4062,1,0,0,0,4068,4063,1,0,0,0,4068,4064,1,0,0,0,4068,4065,1,0,0,0,4068,4066,1,0,0,0,4068,4067,1,0,0,0,4069,719,1,0,0,0,4070,4079,3,704,352,0,4071,4079,3,780,390,0,4072,4079,3,764,382,0,4073,4079,3,766,383,0,4074,4079,3,768,384,0,4075,4079,3,770,385,0,4076,4079,3,772,386,0,4077,4079,3,774,387,0,4078,4070,1,0,0,0,4078,4071,1,0,0,0,4078,4072,1,0,0,0,4078,4073,1,0,0,0,4078,4074,1,0,0,0,4078,4075,1,0,0,0,4078,4076,1,0,0,0,4078,4077,1,0,0,0,4079,721,1,0,0,0,4080,4083,3,704,352,0,4081,4083,3,778,389,0,4082,4080,1,0,0,0,4082,4081,1,0,0,0,4083,723,1,0,0,0,4084,4087,3,706,353,0,4085,4087,5,316,0,0,4086,4084,1,0,0,0,4086,4085,1,0,0,0,4087,725,1,0,0,0,4088,4091,3,752,376,0,4089,4091,5,316,0,0,4090,4088,1,0,0,0,4090,4089,1,0,0,0,4091,727,1,0,0,0,4092,4095,3,708,354,0,4093,4095,5,316,0,0,4094,4092,1,0,0,0,4094,4093,1,0,0,0,4095,729,1,0,0,0,4096,4099,3,710,355,0,4097,4099,5,316,0,0,4098,4096,1,0,0,0,4098,4097,1,0,0,0,4099,731,1,0,0,0,4100,4103,3,712,356,0,4101,4103,5,316,0,0,4102,4100,1,0,0,0,4102,4101,1,0,0,0,4103,733,1,0,0,0,4104,4107,3,714,357,0,4105,4107,5,316,0,0,4106,4104,1,0,0,0,4106,4105,1,0,0,0,4107,735,1,0,0,0,4108,4111,3,716,358,0,4109,4111,5,316,0,0,4110,4108,1,0,0,0,4110,4109,1,0,0,0,4111,737,1,0,0,0,4112,4115,3,718,359,0,4113,4115,5,316,0,0,4114,4112,1,0,0,0,4114,4113,1,0,0,0,4115,739,1,0,0,0,4116,4119,3,720,360,0,4117,4119,5,316,0,0,4118,4116,1,0,0,0,4118,4117,1,0,0,0,4119,741,1,0,0,0,4120,4123,3,704,352,0,4121,4123,5,316,0,0,4122,4120,1,0,0,0,4122,4121,1,0,0,0,4123,743,1,0,0,0,4124,4127,3,722,361,0,4125,4127,5,316,0,0,4126,4124,1,0,0,0,4126,4125,1,0,0,0,4127,745,1,0,0,0,4128,4132,3,724,362,0,4129,4130,5,226,0,0,4130,4132,5,176,0,0,4131,4128,1,0,0,0,4131,4129,1,0,0,0,4132,747,1,0,0,0,4133,4134,3,724,362,0,4134,4135,5,25,0,0,4135,4137,1,0,0,0,4136,4133,1,0,0,0,4136,4137,1,0,0,0,4137,749,1,0,0,0,4138,4139,3,724,362,0,4139,4140,5,30,0,0,4140,4142,1,0,0,0,4141,4138,1,0,0,0,4141,4142,1,0,0,0,4142,4145,1,0,0,0,4143,4146,3,116,58,0,4144,4146,5,20,0,0,4145,4143,1,0,0,0,4145,4144,1,0,0,0,4146,751,1,0,0,0,4147,4150,3,706,353,0,4148,4150,3,782,391,0,4149,4147,1,0,0,0,4149,4148,1,0,0,0,4150,753,1,0,0,0,4151,4152,3,726,363,0,4152,4153,5,25,0,0,4153,4155,1,0,0,0,4154,4151,1,0,0,0,4154,4155,1,0,0,0,4155,755,1,0,0,0,4156,4158,5,31,0,0,4157,4156,1,0,0,0,4157,4158,1,0,0,0,4158,4159,1,0,0,0,4159,4160,3,726,363,0,4160,757,1,0,0,0,4161,4164,3,736,368,0,4162,4164,3,782,391,0,4163,4161,1,0,0,0,4163,4162,1,0,0,0,4164,759,1,0,0,0,4165,4167,5,31,0,0,4166,4165,1,0,0,0,4166,4167,1,0,0,0,4167,4168,1,0,0,0,4168,4169,3,758,379,0,4169,761,1,0,0,0,4170,4179,3,780,390,0,4171,4179,3,764,382,0,4172,4179,3,766,383,0,4173,4179,3,768,384,0,4174,4179,3,770,385,0,4175,4179,3,772,386,0,4176,4179,3,774,387,0,4177,4179,3,776,388,0,4178,4170,1,0,0,0,4178,4171,1,0,0,0,4178,4172,1,0,0,0,4178,4173,1,0,0,0,4178,4174,1,0,0,0,4178,4175,1,0,0,0,4178,4176,1,0,0,0,4178,4177,1,0,0,0,4179,763,1,0,0,0,4180,4181,7,31,0,0,4181,765,1,0,0,0,4182,4183,7,32,0,0,4183,767,1,0,0,0,4184,4185,7,33,0,0,4185,769,1,0,0,0,4186,4187,5,77,0,0,4187,771,1,0,0,0,4188,4189,5,80,0,0,4189,773,1,0,0,0,4190,4191,7,28,0,0,4191,775,1,0,0,0,4192,4193,7,27,0,0,4193,777,1,0,0,0,4194,4195,7,34,0,0,4195,779,1,0,0,0,4196,4197,7,35,0,0,4197,781,1,0,0,0,4198,4199,7,36,0,0,4199,783,1,0,0,0,4200,4201,7,37,0,0,4201,785,1,0,0,0,4202,4203,5,321,0,0,4203,787,1,0,0,0,4204,4205,7,38,0,0,4205,789,1,0,0,0,4206,4212,3,792,396,0,4207,4208,5,223,0,0,4208,4209,5,52,0,0,4209,4210,5,319,0,0,4210,4212,3,4,2,0,4211,4206,1,0,0,0,4211,4207,1,0,0,0,4212,791,1,0,0,0,4213,4215,5,24,0,0,4214,4213,1,0,0,0,4215,4218,1,0,0,0,4216,4214,1,0,0,0,4216,4217,1,0,0,0,4217,4219,1,0,0,0,4218,4216,1,0,0,0,4219,4228,3,794,397,0,4220,4222,5,24,0,0,4221,4220,1,0,0,0,4222,4223,1,0,0,0,4223,4221,1,0,0,0,4223,4224,1,0,0,0,4224,4225,1,0,0,0,4225,4227,3,794,397,0,4226,4221,1,0,0,0,4227,4230,1,0,0,0,4228,4226,1,0,0,0,4228,4229,1,0,0,0,4229,4234,1,0,0,0,4230,4228,1,0,0,0,4231,4233,5,24,0,0,4232,4231,1,0,0,0,4233,4236,1,0,0,0,4234,4232,1,0,0,0,4234,4235,1,0,0,0,4235,4237,1,0,0,0,4236,4234,1,0,0,0,4237,4238,5,0,0,1,4238,793,1,0,0,0,4239,4242,5,129,0,0,4240,4241,5,1,0,0,4241,4243,5,222,0,0,4242,4240,1,0,0,0,4242,4243,1,0,0,0,4243,4245,1,0,0,0,4244,4239,1,0,0,0,4244,4245,1,0,0,0,4245,4246,1,0,0,0,4246,4247,3,796,398,0,4247,795,1,0,0,0,4248,4262,3,224,112,0,4249,4262,3,232,116,0,4250,4262,3,698,349,0,4251,4262,3,694,347,0,4252,4262,3,366,183,0,4253,4262,3,210,105,0,4254,4262,3,214,107,0,4255,4262,3,216,108,0,4256,4262,3,222,111,0,4257,4262,3,564,282,0,4258,4262,3,568,284,0,4259,4262,3,570,285,0,4260,4262,3,370,185,0,4261,4248,1,0,0,0,4261,4249,1,0,0,0,4261,4250,1,0,0,0,4261,4251,1,0,0,0,4261,4252,1,0,0,0,4261,4253,1,0,0,0,4261,4254,1,0,0,0,4261,4255,1,0,0,0,4261,4256,1,0,0,0,4261,4257,1,0,0,0,4261,4258,1,0,0,0,4261,4259,1,0,0,0,4261,4260,1,0,0,0,4262,797,1,0,0,0,4263,4264,5,55,0,0,4264,4265,3,582,291,0,4265,799,1,0,0,0,4266,4267,5,310,0,0,4267,4268,3,14,7,0,4268,801,1,0,0,0,4269,4270,5,142,0,0,4270,4271,3,338,169,0,4271,803,1,0,0,0,4272,4275,3,434,217,0,4273,4275,3,442,221,0,4274,4272,1,0,0,0,4274,4273,1,0,0,0,4275,805,1,0,0,0,476,811,816,823,828,834,842,850,857,861,869,874,879,881,929,936,940,947,955,960,964,970,976,979,983,991,995,998,1002,1013,1018,1020,1029,1050,1055,1064,1066,1073,1081,1089,1096,1106,1108,1110,1115,1119,1125,1131,1135,1139,1142,1149,1155,1159,1164,1167,1181,1186,1189,1203,1210,1221,1232,1252,1258,1263,1267,1281,1283,1290,1296,1307,1315,1321,1328,1336,1349,1355,1359,1362,1364,1372,1380,1386,1392,1398,1401,1410,1419,1426,1434,1447,1454,1458,1465,1469,1474,1481,1488,1491,1498,1502,1512,1535,1541,1545,1552,1558,1565,1569,1573,1579,1584,1593,1596,1602,1607,1615,1622,1644,1648,1650,1654,1663,1667,1669,1673,1682,1686,1724,1728,1748,1751,1757,1777,1782,1788,1793,1796,1800,1827,1835,1838,1845,1858,1862,1874,1887,1892,1899,1903,1910,1919,1928,1936,1940,1944,1951,1953,1956,1961,1966,1970,1977,1984,1988,1991,1995,1999,2001,2012,2021,2026,2032,2037,2040,2044,2048,2051,2055,2059,2067,2071,2075,2079,2082,2085,2089,2092,2095,2100,2103,2106,2109,2123,2125,2136,2146,2156,2159,2166,2190,2201,2207,2211,2215,2219,2223,2227,2231,2235,2241,2248,2258,2269,2282,2298,2308,2328,2334,2341,2348,2356,2365,2402,2404,2407,2412,2416,2420,2426,2432,2436,2441,2446,2448,2452,2457,2460,2462,2466,2477,2488,2499,2503,2507,2511,2514,2518,2521,2527,2536,2539,2553,2559,2572,2579,2584,2591,2598,2607,2612,2620,2635,2641,2649,2672,2679,2687,2708,2716,2724,2734,2743,2748,2755,2765,2770,2779,2783,2787,2790,2793,2796,2799,2807,2816,2833,2856,2874,2885,2893,2903,2908,2912,2918,2949,2961,2998,3006,3009,3013,3017,3027,3040,3053,3058,3075,3079,3083,3092,3103,3108,3112,3116,3119,3135,3150,3165,3168,3180,3183,3199,3205,3213,3223,3227,3235,3241,3247,3259,3263,3265,3277,3281,3286,3292,3299,3303,3307,3310,3323,3332,3336,3341,3347,3356,3365,3382,3386,3390,3392,3396,3403,3407,3411,3413,3425,3441,3457,3472,3479,3487,3498,3505,3510,3516,3519,3522,3529,3532,3535,3544,3549,3552,3562,3566,3568,3575,3578,3582,3584,3587,3592,3595,3600,3610,3615,3626,3630,3634,3636,3640,3645,3653,3656,3659,3662,3667,3673,3676,3680,3686,3694,3697,3704,3708,3711,3715,3722,3743,3752,3755,3763,3783,3791,3799,3808,3826,3843,3857,3876,3888,3898,3907,3919,3933,3936,3939,3942,3948,3958,3964,3975,3978,3990,4e3,4006,4016,4025,4033,4040,4050,4059,4068,4078,4082,4086,4090,4094,4098,4102,4106,4110,4114,4118,4122,4126,4131,4136,4141,4145,4149,4154,4157,4163,4166,4178,4211,4216,4223,4228,4234,4242,4244,4261,4274],ji.vocabulary=new Ra(ji.literalNames,ji.symbolicNames,[]),ji.decisionsToDFA=ji._ATN.decisionToState.map(((t,e)=>new ni(t,e))),ji),ef=class extends ga{constructor(t,e){super(t,e)}sql_stmt_list(){return this.getRuleContext(0,sf)}PRAGMA(){return this.getToken(tf.PRAGMA,0)}ANSI(){return this.getToken(tf.ANSI,0)}DIGITS(){return this.getToken(tf.DIGITS,0)}ansi_sql_stmt_list(){return this.getRuleContext(0,af)}get ruleIndex(){return tf.RULE_sql_query}accept(t){return t.visitSql_query?t.visitSql_query(this):t.visitChildren(this)}},sf=class extends ga{constructor(t,e){super(t,e)}sql_stmt(t){return void 0===t?this.getRuleContexts(nf):this.getRuleContext(t,nf)}EOF(){return this.getToken(tf.EOF,0)}SEMICOLON(t){return void 0===t?this.getTokens(tf.SEMICOLON):this.getToken(tf.SEMICOLON,t)}get ruleIndex(){return tf.RULE_sql_stmt_list}accept(t){return t.visitSql_stmt_list?t.visitSql_stmt_list(this):t.visitChildren(this)}},af=class extends ga{constructor(t,e){super(t,e)}EOF(){return this.getToken(tf.EOF,0)}SEMICOLON(t){return void 0===t?this.getTokens(tf.SEMICOLON):this.getToken(tf.SEMICOLON,t)}get ruleIndex(){return tf.RULE_ansi_sql_stmt_list}accept(t){return t.visitAnsi_sql_stmt_list?t.visitAnsi_sql_stmt_list(this):t.visitChildren(this)}},rf=class extends ga{constructor(t,e){super(t,e)}RETURN(){return this.getToken(tf.RETURN,0)}expr(){return this.getRuleContext(0,Ef)}SEMICOLON(t){return void 0===t?this.getTokens(tf.SEMICOLON):this.getToken(tf.SEMICOLON,t)}lambda_stmt(t){return void 0===t?this.getRuleContexts(cf):this.getRuleContext(t,cf)}get ruleIndex(){return tf.RULE_lambda_body}accept(t){return t.visitLambda_body?t.visitLambda_body(this):t.visitChildren(this)}},cf=class extends ga{constructor(t,e){super(t,e)}named_nodes_stmt(){return this.getRuleContext(0,mX)}import_stmt(){return this.getRuleContext(0,ew)}get ruleIndex(){return tf.RULE_lambda_stmt}accept(t){return t.visitLambda_stmt?t.visitLambda_stmt(this):t.visitChildren(this)}},nf=class extends ga{constructor(t,e){super(t,e)}sql_stmt_core(){return this.getRuleContext(0,hf)}EXPLAIN(){return this.getToken(tf.EXPLAIN,0)}QUERY(){return this.getToken(tf.QUERY,0)}PLAN(){return this.getToken(tf.PLAN,0)}get ruleIndex(){return tf.RULE_sql_stmt}accept(t){return t.visitSql_stmt?t.visitSql_stmt(this):t.visitChildren(this)}},hf=class extends ga{constructor(t,e){super(t,e)}pragma_stmt(){return this.getRuleContext(0,cw)}select_stmt(){return this.getRuleContext(0,Tw)}named_nodes_stmt(){return this.getRuleContext(0,mX)}create_table_stmt(){return this.getRuleContext(0,Zb)}drop_table_stmt(){return this.getRuleContext(0,KW)}use_stmt(){return this.getRuleContext(0,dX)}into_table_stmt(){return this.getRuleContext(0,_b)}commit_stmt(){return this.getRuleContext(0,DX)}update_stmt(){return this.getRuleContext(0,DV)}delete_stmt(){return this.getRuleContext(0,mV)}rollback_stmt(){return this.getRuleContext(0,pX)}declare_stmt(){return this.getRuleContext(0,$Y)}import_stmt(){return this.getRuleContext(0,ew)}export_stmt(){return this.getRuleContext(0,sw)}alter_table_stmt(){return this.getRuleContext(0,aW)}alter_external_table_stmt(){return this.getRuleContext(0,iW)}do_stmt(){return this.getRuleContext(0,iw)}define_action_or_subquery_stmt(){return this.getRuleContext(0,SV)}if_stmt(){return this.getRuleContext(0,OV)}for_stmt(){return this.getRuleContext(0,IV)}values_stmt(){return this.getRuleContext(0,db)}create_user_stmt(){return this.getRuleContext(0,QW)}alter_user_stmt(){return this.getRuleContext(0,JW)}create_group_stmt(){return this.getRuleContext(0,ZW)}alter_group_stmt(){return this.getRuleContext(0,qW)}drop_role_stmt(){return this.getRuleContext(0,jW)}create_object_stmt(){return this.getRuleContext(0,Bb)}alter_object_stmt(){return this.getRuleContext(0,fb)}drop_object_stmt(){return this.getRuleContext(0,wb)}create_external_data_source_stmt(){return this.getRuleContext(0,gb)}alter_external_data_source_stmt(){return this.getRuleContext(0,xb)}drop_external_data_source_stmt(){return this.getRuleContext(0,Hb)}create_replication_stmt(){return this.getRuleContext(0,iV)}drop_replication_stmt(){return this.getRuleContext(0,RV)}create_topic_stmt(){return this.getRuleContext(0,FV)}alter_topic_stmt(){return this.getRuleContext(0,fV)}drop_topic_stmt(){return this.getRuleContext(0,qV)}grant_permissions_stmt(){return this.getRuleContext(0,tV)}revoke_permissions_stmt(){return this.getRuleContext(0,eV)}alter_table_store_stmt(){return this.getRuleContext(0,nW)}upsert_object_stmt(){return this.getRuleContext(0,vb)}create_view_stmt(){return this.getRuleContext(0,Gb)}drop_view_stmt(){return this.getRuleContext(0,Fb)}alter_replication_stmt(){return this.getRuleContext(0,EV)}get ruleIndex(){return tf.RULE_sql_stmt_core}accept(t){return t.visitSql_stmt_core?t.visitSql_stmt_core(this):t.visitChildren(this)}},Ef=class extends ga{constructor(t,e){super(t,e)}or_subexpr(t){return void 0===t?this.getRuleContexts(Tf):this.getRuleContext(t,Tf)}OR(t){return void 0===t?this.getTokens(tf.OR):this.getToken(tf.OR,t)}type_name_composite(){return this.getRuleContext(0,JY)}get ruleIndex(){return tf.RULE_expr}accept(t){return t.visitExpr?t.visitExpr(this):t.visitChildren(this)}},Tf=class extends ga{constructor(t,e){super(t,e)}and_subexpr(t){return void 0===t?this.getRuleContexts(of):this.getRuleContext(t,of)}AND(t){return void 0===t?this.getTokens(tf.AND):this.getToken(tf.AND,t)}get ruleIndex(){return tf.RULE_or_subexpr}accept(t){return t.visitOr_subexpr?t.visitOr_subexpr(this):t.visitChildren(this)}},of=class extends ga{constructor(t,e){super(t,e)}xor_subexpr(t){return void 0===t?this.getRuleContexts(Rf):this.getRuleContext(t,Rf)}XOR(t){return void 0===t?this.getTokens(tf.XOR):this.getToken(tf.XOR,t)}get ruleIndex(){return tf.RULE_and_subexpr}accept(t){return t.visitAnd_subexpr?t.visitAnd_subexpr(this):t.visitChildren(this)}},Rf=class extends ga{constructor(t,e){super(t,e)}eq_subexpr(){return this.getRuleContext(0,Of)}cond_expr(){return this.getRuleContext(0,Sf)}get ruleIndex(){return tf.RULE_xor_subexpr}accept(t){return t.visitXor_subexpr?t.visitXor_subexpr(this):t.visitChildren(this)}},Af=class extends ga{constructor(t,e){super(t,e)}IS(){return this.getToken(tf.IS,0)}DISTINCT(){return this.getToken(tf.DISTINCT,0)}FROM(){return this.getToken(tf.FROM,0)}NOT(){return this.getToken(tf.NOT,0)}get ruleIndex(){return tf.RULE_distinct_from_op}accept(t){return t.visitDistinct_from_op?t.visitDistinct_from_op(this):t.visitChildren(this)}},Sf=class extends ga{constructor(t,e){super(t,e)}match_op(){return this.getRuleContext(0,lf)}eq_subexpr(t){return void 0===t?this.getRuleContexts(Of):this.getRuleContext(t,Of)}NOT(){return this.getToken(tf.NOT,0)}ESCAPE(){return this.getToken(tf.ESCAPE,0)}IN(){return this.getToken(tf.IN,0)}in_expr(){return this.getRuleContext(0,Wf)}COMPACT(){return this.getToken(tf.COMPACT,0)}ISNULL(){return this.getToken(tf.ISNULL,0)}NOTNULL(){return this.getToken(tf.NOTNULL,0)}IS(){return this.getToken(tf.IS,0)}NULL(){return this.getToken(tf.NULL,0)}BETWEEN(){return this.getToken(tf.BETWEEN,0)}AND(){return this.getToken(tf.AND,0)}SYMMETRIC(){return this.getToken(tf.SYMMETRIC,0)}ASYMMETRIC(){return this.getToken(tf.ASYMMETRIC,0)}EQUALS(t){return void 0===t?this.getTokens(tf.EQUALS):this.getToken(tf.EQUALS,t)}EQUALS2(t){return void 0===t?this.getTokens(tf.EQUALS2):this.getToken(tf.EQUALS2,t)}NOT_EQUALS(t){return void 0===t?this.getTokens(tf.NOT_EQUALS):this.getToken(tf.NOT_EQUALS,t)}NOT_EQUALS2(t){return void 0===t?this.getTokens(tf.NOT_EQUALS2):this.getToken(tf.NOT_EQUALS2,t)}distinct_from_op(t){return void 0===t?this.getRuleContexts(Af):this.getRuleContext(t,Af)}get ruleIndex(){return tf.RULE_cond_expr}accept(t){return t.visitCond_expr?t.visitCond_expr(this):t.visitChildren(this)}},lf=class extends ga{constructor(t,e){super(t,e)}LIKE(){return this.getToken(tf.LIKE,0)}ILIKE(){return this.getToken(tf.ILIKE,0)}GLOB(){return this.getToken(tf.GLOB,0)}REGEXP(){return this.getToken(tf.REGEXP,0)}RLIKE(){return this.getToken(tf.RLIKE,0)}MATCH(){return this.getToken(tf.MATCH,0)}get ruleIndex(){return tf.RULE_match_op}accept(t){return t.visitMatch_op?t.visitMatch_op(this):t.visitChildren(this)}},Of=class extends ga{constructor(t,e){super(t,e)}neq_subexpr(t){return void 0===t?this.getRuleContexts(Lf):this.getRuleContext(t,Lf)}LESS(t){return void 0===t?this.getTokens(tf.LESS):this.getToken(tf.LESS,t)}LESS_OR_EQ(t){return void 0===t?this.getTokens(tf.LESS_OR_EQ):this.getToken(tf.LESS_OR_EQ,t)}GREATER(t){return void 0===t?this.getTokens(tf.GREATER):this.getToken(tf.GREATER,t)}GREATER_OR_EQ(t){return void 0===t?this.getTokens(tf.GREATER_OR_EQ):this.getToken(tf.GREATER_OR_EQ,t)}get ruleIndex(){return tf.RULE_eq_subexpr}accept(t){return t.visitEq_subexpr?t.visitEq_subexpr(this):t.visitChildren(this)}},If=class extends ga{constructor(t,e){super(t,e)}GREATER(t){return void 0===t?this.getTokens(tf.GREATER):this.getToken(tf.GREATER,t)}get ruleIndex(){return tf.RULE_shift_right}accept(t){return t.visitShift_right?t.visitShift_right(this):t.visitChildren(this)}},uf=class extends ga{constructor(t,e){super(t,e)}GREATER(t){return void 0===t?this.getTokens(tf.GREATER):this.getToken(tf.GREATER,t)}PIPE(){return this.getToken(tf.PIPE,0)}get ruleIndex(){return tf.RULE_rot_right}accept(t){return t.visitRot_right?t.visitRot_right(this):t.visitChildren(this)}},Nf=class extends ga{constructor(t,e){super(t,e)}QUESTION(t){return void 0===t?this.getTokens(tf.QUESTION):this.getToken(tf.QUESTION,t)}get ruleIndex(){return tf.RULE_double_question}accept(t){return t.visitDouble_question?t.visitDouble_question(this):t.visitChildren(this)}},Lf=class t extends ga{constructor(t,e){super(t,e)}bit_subexpr(t){return void 0===t?this.getRuleContexts(Cf):this.getRuleContext(t,Cf)}SHIFT_LEFT(t){return void 0===t?this.getTokens(tf.SHIFT_LEFT):this.getToken(tf.SHIFT_LEFT,t)}shift_right(t){return void 0===t?this.getRuleContexts(If):this.getRuleContext(t,If)}ROT_LEFT(t){return void 0===t?this.getTokens(tf.ROT_LEFT):this.getToken(tf.ROT_LEFT,t)}rot_right(t){return void 0===t?this.getRuleContexts(uf):this.getRuleContext(t,uf)}AMPERSAND(t){return void 0===t?this.getTokens(tf.AMPERSAND):this.getToken(tf.AMPERSAND,t)}PIPE(t){return void 0===t?this.getTokens(tf.PIPE):this.getToken(tf.PIPE,t)}CARET(t){return void 0===t?this.getTokens(tf.CARET):this.getToken(tf.CARET,t)}double_question(){return this.getRuleContext(0,Nf)}neq_subexpr(){return this.getRuleContext(0,t)}QUESTION(t){return void 0===t?this.getTokens(tf.QUESTION):this.getToken(tf.QUESTION,t)}get ruleIndex(){return tf.RULE_neq_subexpr}accept(t){return t.visitNeq_subexpr?t.visitNeq_subexpr(this):t.visitChildren(this)}},Cf=class extends ga{constructor(t,e){super(t,e)}add_subexpr(t){return void 0===t?this.getRuleContexts(_f):this.getRuleContext(t,_f)}PLUS(t){return void 0===t?this.getTokens(tf.PLUS):this.getToken(tf.PLUS,t)}MINUS(t){return void 0===t?this.getTokens(tf.MINUS):this.getToken(tf.MINUS,t)}get ruleIndex(){return tf.RULE_bit_subexpr}accept(t){return t.visitBit_subexpr?t.visitBit_subexpr(this):t.visitChildren(this)}},_f=class extends ga{constructor(t,e){super(t,e)}mul_subexpr(t){return void 0===t?this.getRuleContexts(Pf):this.getRuleContext(t,Pf)}ASTERISK(t){return void 0===t?this.getTokens(tf.ASTERISK):this.getToken(tf.ASTERISK,t)}SLASH(t){return void 0===t?this.getTokens(tf.SLASH):this.getToken(tf.SLASH,t)}PERCENT(t){return void 0===t?this.getTokens(tf.PERCENT):this.getToken(tf.PERCENT,t)}get ruleIndex(){return tf.RULE_add_subexpr}accept(t){return t.visitAdd_subexpr?t.visitAdd_subexpr(this):t.visitChildren(this)}},Pf=class extends ga{constructor(t,e){super(t,e)}con_subexpr(t){return void 0===t?this.getRuleContexts(Mf):this.getRuleContext(t,Mf)}DOUBLE_PIPE(t){return void 0===t?this.getTokens(tf.DOUBLE_PIPE):this.getToken(tf.DOUBLE_PIPE,t)}get ruleIndex(){return tf.RULE_mul_subexpr}accept(t){return t.visitMul_subexpr?t.visitMul_subexpr(this):t.visitChildren(this)}},Mf=class extends ga{constructor(t,e){super(t,e)}unary_subexpr(){return this.getRuleContext(0,pf)}unary_op(){return this.getRuleContext(0,df)}get ruleIndex(){return tf.RULE_con_subexpr}accept(t){return t.visitCon_subexpr?t.visitCon_subexpr(this):t.visitChildren(this)}},df=class extends ga{constructor(t,e){super(t,e)}PLUS(){return this.getToken(tf.PLUS,0)}MINUS(){return this.getToken(tf.MINUS,0)}TILDA(){return this.getToken(tf.TILDA,0)}NOT(){return this.getToken(tf.NOT,0)}get ruleIndex(){return tf.RULE_unary_op}accept(t){return t.visitUnary_op?t.visitUnary_op(this):t.visitChildren(this)}},Uf=class extends ga{constructor(t,e){super(t,e)}key_expr(t){return void 0===t?this.getRuleContexts(IY):this.getRuleContext(t,IY)}invoke_expr(t){return void 0===t?this.getRuleContexts(SY):this.getRuleContext(t,SY)}COLLATE(){return this.getToken(tf.COLLATE,0)}an_id(){return this.getRuleContext(0,YX)}DOT(t){return void 0===t?this.getTokens(tf.DOT):this.getToken(tf.DOT,t)}bind_parameter(t){return void 0===t?this.getRuleContexts(LY):this.getRuleContext(t,LY)}DIGITS(t){return void 0===t?this.getTokens(tf.DIGITS):this.getToken(tf.DIGITS,t)}an_id_or_type(t){return void 0===t?this.getRuleContexts(wX):this.getRuleContext(t,wX)}get ruleIndex(){return tf.RULE_unary_subexpr_suffix}accept(t){return t.visitUnary_subexpr_suffix?t.visitUnary_subexpr_suffix(this):t.visitChildren(this)}},mf=class extends ga{constructor(t,e){super(t,e)}unary_subexpr_suffix(){return this.getRuleContext(0,Uf)}id_expr(){return this.getRuleContext(0,HX)}atom_expr(){return this.getRuleContext(0,vf)}get ruleIndex(){return tf.RULE_unary_casual_subexpr}accept(t){return t.visitUnary_casual_subexpr?t.visitUnary_casual_subexpr(this):t.visitChildren(this)}},Df=class extends ga{constructor(t,e){super(t,e)}unary_subexpr_suffix(){return this.getRuleContext(0,Uf)}id_expr_in(){return this.getRuleContext(0,GX)}in_atom_expr(){return this.getRuleContext(0,Bf)}get ruleIndex(){return tf.RULE_in_unary_casual_subexpr}accept(t){return t.visitIn_unary_casual_subexpr?t.visitIn_unary_casual_subexpr(this):t.visitChildren(this)}},pf=class extends ga{constructor(t,e){super(t,e)}unary_casual_subexpr(){return this.getRuleContext(0,mf)}json_api_expr(){return this.getRuleContext(0,Vf)}get ruleIndex(){return tf.RULE_unary_subexpr}accept(t){return t.visitUnary_subexpr?t.visitUnary_subexpr(this):t.visitChildren(this)}},gf=class extends ga{constructor(t,e){super(t,e)}in_unary_casual_subexpr(){return this.getRuleContext(0,Df)}json_api_expr(){return this.getRuleContext(0,Vf)}get ruleIndex(){return tf.RULE_in_unary_subexpr}accept(t){return t.visitIn_unary_subexpr?t.visitIn_unary_subexpr(this):t.visitChildren(this)}},xf=class extends ga{constructor(t,e){super(t,e)}LBRACE_SQUARE(){return this.getToken(tf.LBRACE_SQUARE,0)}RBRACE_SQUARE(){return this.getToken(tf.RBRACE_SQUARE,0)}expr_list(){return this.getRuleContext(0,rY)}COMMA(){return this.getToken(tf.COMMA,0)}get ruleIndex(){return tf.RULE_list_literal}accept(t){return t.visitList_literal?t.visitList_literal(this):t.visitChildren(this)}},kf=class extends ga{constructor(t,e){super(t,e)}expr(t){return void 0===t?this.getRuleContexts(Ef):this.getRuleContext(t,Ef)}COLON(t){return void 0===t?this.getTokens(tf.COLON):this.getToken(tf.COLON,t)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_expr_dict_list}accept(t){return t.visitExpr_dict_list?t.visitExpr_dict_list(this):t.visitChildren(this)}},Hf=class extends ga{constructor(t,e){super(t,e)}LBRACE_CURLY(){return this.getToken(tf.LBRACE_CURLY,0)}RBRACE_CURLY(){return this.getToken(tf.RBRACE_CURLY,0)}expr_dict_list(){return this.getRuleContext(0,kf)}COMMA(){return this.getToken(tf.COMMA,0)}get ruleIndex(){return tf.RULE_dict_literal}accept(t){return t.visitDict_literal?t.visitDict_literal(this):t.visitChildren(this)}},Gf=class extends ga{constructor(t,e){super(t,e)}expr(t){return void 0===t?this.getRuleContexts(Ef):this.getRuleContext(t,Ef)}COLON(t){return void 0===t?this.getTokens(tf.COLON):this.getToken(tf.COLON,t)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_expr_struct_list}accept(t){return t.visitExpr_struct_list?t.visitExpr_struct_list(this):t.visitChildren(this)}},Ff=class extends ga{constructor(t,e){super(t,e)}STRUCT_OPEN(){return this.getToken(tf.STRUCT_OPEN,0)}STRUCT_CLOSE(){return this.getToken(tf.STRUCT_CLOSE,0)}expr_struct_list(){return this.getRuleContext(0,Gf)}COMMA(){return this.getToken(tf.COMMA,0)}get ruleIndex(){return tf.RULE_struct_literal}accept(t){return t.visitStruct_literal?t.visitStruct_literal(this):t.visitChildren(this)}},vf=class extends ga{constructor(t,e){super(t,e)}literal_value(){return this.getRuleContext(0,NY)}bind_parameter(){return this.getRuleContext(0,LY)}lambda(){return this.getRuleContext(0,bf)}cast_expr(){return this.getRuleContext(0,yf)}exists_expr(){return this.getRuleContext(0,Yf)}case_expr(){return this.getRuleContext(0,wf)}an_id_or_type(){return this.getRuleContext(0,wX)}NAMESPACE(){return this.getToken(tf.NAMESPACE,0)}id_or_type(){return this.getRuleContext(0,tK)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}value_constructor(){return this.getRuleContext(0,zY)}bitcast_expr(){return this.getRuleContext(0,ff)}list_literal(){return this.getRuleContext(0,xf)}dict_literal(){return this.getRuleContext(0,Hf)}struct_literal(){return this.getRuleContext(0,Ff)}get ruleIndex(){return tf.RULE_atom_expr}accept(t){return t.visitAtom_expr?t.visitAtom_expr(this):t.visitChildren(this)}},Bf=class extends ga{constructor(t,e){super(t,e)}literal_value(){return this.getRuleContext(0,NY)}bind_parameter(){return this.getRuleContext(0,LY)}lambda(){return this.getRuleContext(0,bf)}cast_expr(){return this.getRuleContext(0,yf)}case_expr(){return this.getRuleContext(0,wf)}an_id_or_type(){return this.getRuleContext(0,wX)}NAMESPACE(){return this.getToken(tf.NAMESPACE,0)}id_or_type(){return this.getRuleContext(0,tK)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}select_stmt(){return this.getRuleContext(0,Tw)}RPAREN(){return this.getToken(tf.RPAREN,0)}value_constructor(){return this.getRuleContext(0,zY)}bitcast_expr(){return this.getRuleContext(0,ff)}list_literal(){return this.getRuleContext(0,xf)}dict_literal(){return this.getRuleContext(0,Hf)}struct_literal(){return this.getRuleContext(0,Ff)}get ruleIndex(){return tf.RULE_in_atom_expr}accept(t){return t.visitIn_atom_expr?t.visitIn_atom_expr(this):t.visitChildren(this)}},yf=class extends ga{constructor(t,e){super(t,e)}CAST(){return this.getToken(tf.CAST,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}expr(){return this.getRuleContext(0,Ef)}AS(){return this.getToken(tf.AS,0)}type_name_or_bind(){return this.getRuleContext(0,qY)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_cast_expr}accept(t){return t.visitCast_expr?t.visitCast_expr(this):t.visitChildren(this)}},ff=class extends ga{constructor(t,e){super(t,e)}BITCAST(){return this.getToken(tf.BITCAST,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}expr(){return this.getRuleContext(0,Ef)}AS(){return this.getToken(tf.AS,0)}type_name_simple(){return this.getRuleContext(0,UY)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_bitcast_expr}accept(t){return t.visitBitcast_expr?t.visitBitcast_expr(this):t.visitChildren(this)}},Yf=class extends ga{constructor(t,e){super(t,e)}EXISTS(){return this.getToken(tf.EXISTS,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}RPAREN(){return this.getToken(tf.RPAREN,0)}select_stmt(){return this.getRuleContext(0,Tw)}values_stmt(){return this.getRuleContext(0,db)}get ruleIndex(){return tf.RULE_exists_expr}accept(t){return t.visitExists_expr?t.visitExists_expr(this):t.visitChildren(this)}},wf=class extends ga{constructor(t,e){super(t,e)}CASE(){return this.getToken(tf.CASE,0)}END(){return this.getToken(tf.END,0)}expr(t){return void 0===t?this.getRuleContexts(Ef):this.getRuleContext(t,Ef)}when_expr(t){return void 0===t?this.getRuleContexts(uY):this.getRuleContext(t,uY)}ELSE(){return this.getToken(tf.ELSE,0)}get ruleIndex(){return tf.RULE_case_expr}accept(t){return t.visitCase_expr?t.visitCase_expr(this):t.visitChildren(this)}},bf=class extends ga{constructor(t,e){super(t,e)}smart_parenthesis(){return this.getRuleContext(0,aY)}ARROW(){return this.getToken(tf.ARROW,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}expr(){return this.getRuleContext(0,Ef)}RPAREN(){return this.getToken(tf.RPAREN,0)}LBRACE_CURLY(){return this.getToken(tf.LBRACE_CURLY,0)}lambda_body(){return this.getRuleContext(0,rf)}RBRACE_CURLY(){return this.getToken(tf.RBRACE_CURLY,0)}get ruleIndex(){return tf.RULE_lambda}accept(t){return t.visitLambda?t.visitLambda(this):t.visitChildren(this)}},Wf=class extends ga{constructor(t,e){super(t,e)}in_unary_subexpr(){return this.getRuleContext(0,gf)}get ruleIndex(){return tf.RULE_in_expr}accept(t){return t.visitIn_expr?t.visitIn_expr(this):t.visitChildren(this)}},Vf=class extends ga{constructor(t,e){super(t,e)}json_value(){return this.getRuleContext(0,jf)}json_exists(){return this.getRuleContext(0,$f)}json_query(){return this.getRuleContext(0,sY)}get ruleIndex(){return tf.RULE_json_api_expr}accept(t){return t.visitJson_api_expr?t.visitJson_api_expr(this):t.visitChildren(this)}},Xf=class extends ga{constructor(t,e){super(t,e)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_jsonpath_spec}accept(t){return t.visitJsonpath_spec?t.visitJsonpath_spec(this):t.visitChildren(this)}},Kf=class extends ga{constructor(t,e){super(t,e)}id_expr(){return this.getRuleContext(0,HX)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_json_variable_name}accept(t){return t.visitJson_variable_name?t.visitJson_variable_name(this):t.visitChildren(this)}},Qf=class extends ga{constructor(t,e){super(t,e)}expr(){return this.getRuleContext(0,Ef)}AS(){return this.getToken(tf.AS,0)}json_variable_name(){return this.getRuleContext(0,Kf)}get ruleIndex(){return tf.RULE_json_variable}accept(t){return t.visitJson_variable?t.visitJson_variable(this):t.visitChildren(this)}},Jf=class extends ga{constructor(t,e){super(t,e)}json_variable(t){return void 0===t?this.getRuleContexts(Qf):this.getRuleContext(t,Qf)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_json_variables}accept(t){return t.visitJson_variables?t.visitJson_variables(this):t.visitChildren(this)}},Zf=class extends ga{constructor(t,e){super(t,e)}expr(){return this.getRuleContext(0,Ef)}COMMA(){return this.getToken(tf.COMMA,0)}jsonpath_spec(){return this.getRuleContext(0,Xf)}PASSING(){return this.getToken(tf.PASSING,0)}json_variables(){return this.getRuleContext(0,Jf)}get ruleIndex(){return tf.RULE_json_common_args}accept(t){return t.visitJson_common_args?t.visitJson_common_args(this):t.visitChildren(this)}},qf=class extends ga{constructor(t,e){super(t,e)}ERROR(){return this.getToken(tf.ERROR,0)}NULL(){return this.getToken(tf.NULL,0)}DEFAULT(){return this.getToken(tf.DEFAULT,0)}expr(){return this.getRuleContext(0,Ef)}get ruleIndex(){return tf.RULE_json_case_handler}accept(t){return t.visitJson_case_handler?t.visitJson_case_handler(this):t.visitChildren(this)}},jf=class extends ga{constructor(t,e){super(t,e)}JSON_VALUE(){return this.getToken(tf.JSON_VALUE,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}json_common_args(){return this.getRuleContext(0,Zf)}RPAREN(){return this.getToken(tf.RPAREN,0)}RETURNING(){return this.getToken(tf.RETURNING,0)}type_name_simple(){return this.getRuleContext(0,UY)}json_case_handler(t){return void 0===t?this.getRuleContexts(qf):this.getRuleContext(t,qf)}ON(t){return void 0===t?this.getTokens(tf.ON):this.getToken(tf.ON,t)}EMPTY(t){return void 0===t?this.getTokens(tf.EMPTY):this.getToken(tf.EMPTY,t)}ERROR(t){return void 0===t?this.getTokens(tf.ERROR):this.getToken(tf.ERROR,t)}get ruleIndex(){return tf.RULE_json_value}accept(t){return t.visitJson_value?t.visitJson_value(this):t.visitChildren(this)}},zf=class extends ga{constructor(t,e){super(t,e)}ON(){return this.getToken(tf.ON,0)}ERROR(t){return void 0===t?this.getTokens(tf.ERROR):this.getToken(tf.ERROR,t)}TRUE(){return this.getToken(tf.TRUE,0)}FALSE(){return this.getToken(tf.FALSE,0)}UNKNOWN(){return this.getToken(tf.UNKNOWN,0)}get ruleIndex(){return tf.RULE_json_exists_handler}accept(t){return t.visitJson_exists_handler?t.visitJson_exists_handler(this):t.visitChildren(this)}},$f=class extends ga{constructor(t,e){super(t,e)}JSON_EXISTS(){return this.getToken(tf.JSON_EXISTS,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}json_common_args(){return this.getRuleContext(0,Zf)}RPAREN(){return this.getToken(tf.RPAREN,0)}json_exists_handler(){return this.getRuleContext(0,zf)}get ruleIndex(){return tf.RULE_json_exists}accept(t){return t.visitJson_exists?t.visitJson_exists(this):t.visitChildren(this)}},tY=class extends ga{constructor(t,e){super(t,e)}WITHOUT(){return this.getToken(tf.WITHOUT,0)}ARRAY(){return this.getToken(tf.ARRAY,0)}WITH(){return this.getToken(tf.WITH,0)}CONDITIONAL(){return this.getToken(tf.CONDITIONAL,0)}UNCONDITIONAL(){return this.getToken(tf.UNCONDITIONAL,0)}get ruleIndex(){return tf.RULE_json_query_wrapper}accept(t){return t.visitJson_query_wrapper?t.visitJson_query_wrapper(this):t.visitChildren(this)}},eY=class extends ga{constructor(t,e){super(t,e)}ERROR(){return this.getToken(tf.ERROR,0)}NULL(){return this.getToken(tf.NULL,0)}EMPTY(){return this.getToken(tf.EMPTY,0)}ARRAY(){return this.getToken(tf.ARRAY,0)}OBJECT(){return this.getToken(tf.OBJECT,0)}get ruleIndex(){return tf.RULE_json_query_handler}accept(t){return t.visitJson_query_handler?t.visitJson_query_handler(this):t.visitChildren(this)}},sY=class extends ga{constructor(t,e){super(t,e)}JSON_QUERY(){return this.getToken(tf.JSON_QUERY,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}json_common_args(){return this.getRuleContext(0,Zf)}RPAREN(){return this.getToken(tf.RPAREN,0)}json_query_wrapper(){return this.getRuleContext(0,tY)}WRAPPER(){return this.getToken(tf.WRAPPER,0)}json_query_handler(t){return void 0===t?this.getRuleContexts(eY):this.getRuleContext(t,eY)}ON(t){return void 0===t?this.getTokens(tf.ON):this.getToken(tf.ON,t)}EMPTY(){return this.getToken(tf.EMPTY,0)}ERROR(){return this.getToken(tf.ERROR,0)}get ruleIndex(){return tf.RULE_json_query}accept(t){return t.visitJson_query?t.visitJson_query(this):t.visitChildren(this)}},aY=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(tf.LPAREN,0)}RPAREN(){return this.getToken(tf.RPAREN,0)}named_expr_list(){return this.getRuleContext(0,AY)}COMMA(){return this.getToken(tf.COMMA,0)}get ruleIndex(){return tf.RULE_smart_parenthesis}accept(t){return t.visitSmart_parenthesis?t.visitSmart_parenthesis(this):t.visitChildren(this)}},rY=class extends ga{constructor(t,e){super(t,e)}expr(t){return void 0===t?this.getRuleContexts(Ef):this.getRuleContext(t,Ef)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_expr_list}accept(t){return t.visitExpr_list?t.visitExpr_list(this):t.visitChildren(this)}},iY=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(tf.LPAREN,0)}an_id(t){return void 0===t?this.getRuleContexts(YX):this.getRuleContext(t,YX)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_pure_column_list}accept(t){return t.visitPure_column_list?t.visitPure_column_list(this):t.visitChildren(this)}},cY=class extends ga{constructor(t,e){super(t,e)}bind_parameter(){return this.getRuleContext(0,LY)}an_id(){return this.getRuleContext(0,YX)}get ruleIndex(){return tf.RULE_pure_column_or_named}accept(t){return t.visitPure_column_or_named?t.visitPure_column_or_named(this):t.visitChildren(this)}},nY=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(tf.LPAREN,0)}pure_column_or_named(t){return void 0===t?this.getRuleContexts(cY):this.getRuleContext(t,cY)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_pure_column_or_named_list}accept(t){return t.visitPure_column_or_named_list?t.visitPure_column_or_named_list(this):t.visitChildren(this)}},hY=class extends ga{constructor(t,e){super(t,e)}opt_id_prefix(){return this.getRuleContext(0,zX)}an_id(){return this.getRuleContext(0,YX)}get ruleIndex(){return tf.RULE_column_name}accept(t){return t.visitColumn_name?t.visitColumn_name(this):t.visitChildren(this)}},EY=class extends ga{constructor(t,e){super(t,e)}an_id(t){return void 0===t?this.getRuleContexts(YX):this.getRuleContext(t,YX)}DOT(){return this.getToken(tf.DOT,0)}an_id_without(){return this.getRuleContext(0,QX)}get ruleIndex(){return tf.RULE_without_column_name}accept(t){return t.visitWithout_column_name?t.visitWithout_column_name(this):t.visitChildren(this)}},TY=class extends ga{constructor(t,e){super(t,e)}column_name(t){return void 0===t?this.getRuleContexts(hY):this.getRuleContext(t,hY)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_column_list}accept(t){return t.visitColumn_list?t.visitColumn_list(this):t.visitChildren(this)}},oY=class extends ga{constructor(t,e){super(t,e)}without_column_name(t){return void 0===t?this.getRuleContexts(EY):this.getRuleContext(t,EY)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_without_column_list}accept(t){return t.visitWithout_column_list?t.visitWithout_column_list(this):t.visitChildren(this)}},RY=class extends ga{constructor(t,e){super(t,e)}expr(){return this.getRuleContext(0,Ef)}AS(){return this.getToken(tf.AS,0)}an_id_or_type(){return this.getRuleContext(0,wX)}get ruleIndex(){return tf.RULE_named_expr}accept(t){return t.visitNamed_expr?t.visitNamed_expr(this):t.visitChildren(this)}},AY=class extends ga{constructor(t,e){super(t,e)}named_expr(t){return void 0===t?this.getRuleContexts(RY):this.getRuleContext(t,RY)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_named_expr_list}accept(t){return t.visitNamed_expr_list?t.visitNamed_expr_list(this):t.visitChildren(this)}},SY=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(tf.LPAREN,0)}RPAREN(){return this.getToken(tf.RPAREN,0)}invoke_expr_tail(){return this.getRuleContext(0,lY)}opt_set_quantifier(){return this.getRuleContext(0,Lw)}named_expr_list(){return this.getRuleContext(0,AY)}ASTERISK(){return this.getToken(tf.ASTERISK,0)}COMMA(){return this.getToken(tf.COMMA,0)}get ruleIndex(){return tf.RULE_invoke_expr}accept(t){return t.visitInvoke_expr?t.visitInvoke_expr(this):t.visitChildren(this)}},lY=class extends ga{constructor(t,e){super(t,e)}null_treatment(){return this.getRuleContext(0,cX)}filter_clause(){return this.getRuleContext(0,nX)}OVER(){return this.getToken(tf.OVER,0)}window_name_or_specification(){return this.getRuleContext(0,hX)}get ruleIndex(){return tf.RULE_invoke_expr_tail}accept(t){return t.visitInvoke_expr_tail?t.visitInvoke_expr_tail(this):t.visitChildren(this)}},OY=class extends ga{constructor(t,e){super(t,e)}invoke_expr(){return this.getRuleContext(0,SY)}an_id_expr(){return this.getRuleContext(0,WX)}bind_parameter(){return this.getRuleContext(0,LY)}an_id_or_type(t){return void 0===t?this.getRuleContexts(wX):this.getRuleContext(t,wX)}NAMESPACE(){return this.getToken(tf.NAMESPACE,0)}EXTERNAL(){return this.getToken(tf.EXTERNAL,0)}FUNCTION(){return this.getToken(tf.FUNCTION,0)}get ruleIndex(){return tf.RULE_using_call_expr}accept(t){return t.visitUsing_call_expr?t.visitUsing_call_expr(this):t.visitChildren(this)}},IY=class extends ga{constructor(t,e){super(t,e)}LBRACE_SQUARE(){return this.getToken(tf.LBRACE_SQUARE,0)}expr(){return this.getRuleContext(0,Ef)}RBRACE_SQUARE(){return this.getToken(tf.RBRACE_SQUARE,0)}get ruleIndex(){return tf.RULE_key_expr}accept(t){return t.visitKey_expr?t.visitKey_expr(this):t.visitChildren(this)}},uY=class extends ga{constructor(t,e){super(t,e)}WHEN(){return this.getToken(tf.WHEN,0)}expr(t){return void 0===t?this.getRuleContexts(Ef):this.getRuleContext(t,Ef)}THEN(){return this.getToken(tf.THEN,0)}get ruleIndex(){return tf.RULE_when_expr}accept(t){return t.visitWhen_expr?t.visitWhen_expr(this):t.visitChildren(this)}},NY=class extends ga{constructor(t,e){super(t,e)}integer(){return this.getRuleContext(0,uK)}real(){return this.getRuleContext(0,IK)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}BLOB(){return this.getToken(tf.BLOB,0)}NULL(){return this.getToken(tf.NULL,0)}CURRENT_TIME(){return this.getToken(tf.CURRENT_TIME,0)}CURRENT_DATE(){return this.getToken(tf.CURRENT_DATE,0)}CURRENT_TIMESTAMP(){return this.getToken(tf.CURRENT_TIMESTAMP,0)}bool_value(){return this.getRuleContext(0,OK)}EMPTY_ACTION(){return this.getToken(tf.EMPTY_ACTION,0)}get ruleIndex(){return tf.RULE_literal_value}accept(t){return t.visitLiteral_value?t.visitLiteral_value(this):t.visitChildren(this)}},LY=class extends ga{constructor(t,e){super(t,e)}DOLLAR(){return this.getToken(tf.DOLLAR,0)}an_id_or_type(){return this.getRuleContext(0,wX)}TRUE(){return this.getToken(tf.TRUE,0)}FALSE(){return this.getToken(tf.FALSE,0)}get ruleIndex(){return tf.RULE_bind_parameter}accept(t){return t.visitBind_parameter?t.visitBind_parameter(this):t.visitChildren(this)}},CY=class extends ga{constructor(t,e){super(t,e)}bind_parameter(){return this.getRuleContext(0,LY)}QUESTION(){return this.getToken(tf.QUESTION,0)}get ruleIndex(){return tf.RULE_opt_bind_parameter}accept(t){return t.visitOpt_bind_parameter?t.visitOpt_bind_parameter(this):t.visitChildren(this)}},_Y=class extends ga{constructor(t,e){super(t,e)}bind_parameter(t){return void 0===t?this.getRuleContexts(LY):this.getRuleContext(t,LY)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_bind_parameter_list}accept(t){return t.visitBind_parameter_list?t.visitBind_parameter_list(this):t.visitChildren(this)}},PY=class extends ga{constructor(t,e){super(t,e)}bind_parameter(t){return void 0===t?this.getRuleContexts(LY):this.getRuleContext(t,LY)}AS(){return this.getToken(tf.AS,0)}get ruleIndex(){return tf.RULE_named_bind_parameter}accept(t){return t.visitNamed_bind_parameter?t.visitNamed_bind_parameter(this):t.visitChildren(this)}},MY=class extends ga{constructor(t,e){super(t,e)}named_bind_parameter(t){return void 0===t?this.getRuleContexts(PY):this.getRuleContext(t,PY)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_named_bind_parameter_list}accept(t){return t.visitNamed_bind_parameter_list?t.visitNamed_bind_parameter_list(this):t.visitChildren(this)}},dY=class extends ga{constructor(t,e){super(t,e)}integer(){return this.getRuleContext(0,uK)}real(){return this.getRuleContext(0,IK)}PLUS(){return this.getToken(tf.PLUS,0)}MINUS(){return this.getToken(tf.MINUS,0)}get ruleIndex(){return tf.RULE_signed_number}accept(t){return t.visitSigned_number?t.visitSigned_number(this):t.visitChildren(this)}},UY=class extends ga{constructor(t,e){super(t,e)}an_id_pure(){return this.getRuleContext(0,ZX)}get ruleIndex(){return tf.RULE_type_name_simple}accept(t){return t.visitType_name_simple?t.visitType_name_simple(this):t.visitChildren(this)}},mY=class extends ga{constructor(t,e){super(t,e)}integer(){return this.getRuleContext(0,uK)}bind_parameter(){return this.getRuleContext(0,LY)}get ruleIndex(){return tf.RULE_integer_or_bind}accept(t){return t.visitInteger_or_bind?t.visitInteger_or_bind(this):t.visitChildren(this)}},DY=class extends ga{constructor(t,e){super(t,e)}id(){return this.getRuleContext(0,xX)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}bind_parameter(){return this.getRuleContext(0,LY)}get ruleIndex(){return tf.RULE_type_name_tag}accept(t){return t.visitType_name_tag?t.visitType_name_tag(this):t.visitChildren(this)}},pY=class extends ga{constructor(t,e){super(t,e)}type_name_tag(){return this.getRuleContext(0,DY)}COLON(){return this.getToken(tf.COLON,0)}type_name_or_bind(){return this.getRuleContext(0,qY)}get ruleIndex(){return tf.RULE_struct_arg}accept(t){return t.visitStruct_arg?t.visitStruct_arg(this):t.visitChildren(this)}},gY=class extends ga{constructor(t,e){super(t,e)}type_name_tag(){return this.getRuleContext(0,DY)}type_name_or_bind(){return this.getRuleContext(0,qY)}NULL(){return this.getToken(tf.NULL,0)}NOT(){return this.getToken(tf.NOT,0)}AS(){return this.getToken(tf.AS,0)}get ruleIndex(){return tf.RULE_struct_arg_positional}accept(t){return t.visitStruct_arg_positional?t.visitStruct_arg_positional(this):t.visitChildren(this)}},xY=class extends ga{constructor(t,e){super(t,e)}type_name_or_bind(){return this.getRuleContext(0,qY)}type_name_tag(){return this.getRuleContext(0,DY)}COLON(){return this.getToken(tf.COLON,0)}get ruleIndex(){return tf.RULE_variant_arg}accept(t){return t.visitVariant_arg?t.visitVariant_arg(this):t.visitChildren(this)}},kY=class extends ga{constructor(t,e){super(t,e)}variant_arg(){return this.getRuleContext(0,xY)}LBRACE_CURLY(){return this.getToken(tf.LBRACE_CURLY,0)}AUTOMAP(){return this.getToken(tf.AUTOMAP,0)}RBRACE_CURLY(){return this.getToken(tf.RBRACE_CURLY,0)}get ruleIndex(){return tf.RULE_callable_arg}accept(t){return t.visitCallable_arg?t.visitCallable_arg(this):t.visitChildren(this)}},HY=class extends ga{constructor(t,e){super(t,e)}callable_arg(t){return void 0===t?this.getRuleContexts(kY):this.getRuleContext(t,kY)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_callable_arg_list}accept(t){return t.visitCallable_arg_list?t.visitCallable_arg_list(this):t.visitChildren(this)}},GY=class extends ga{constructor(t,e){super(t,e)}DECIMAL(){return this.getToken(tf.DECIMAL,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}integer_or_bind(t){return void 0===t?this.getRuleContexts(mY):this.getRuleContext(t,mY)}COMMA(){return this.getToken(tf.COMMA,0)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_type_name_decimal}accept(t){return t.visitType_name_decimal?t.visitType_name_decimal(this):t.visitChildren(this)}},FY=class extends ga{constructor(t,e){super(t,e)}OPTIONAL(){return this.getToken(tf.OPTIONAL,0)}LESS(){return this.getToken(tf.LESS,0)}type_name_or_bind(){return this.getRuleContext(0,qY)}GREATER(){return this.getToken(tf.GREATER,0)}get ruleIndex(){return tf.RULE_type_name_optional}accept(t){return t.visitType_name_optional?t.visitType_name_optional(this):t.visitChildren(this)}},vY=class extends ga{constructor(t,e){super(t,e)}TUPLE(){return this.getToken(tf.TUPLE,0)}LESS(){return this.getToken(tf.LESS,0)}GREATER(){return this.getToken(tf.GREATER,0)}NOT_EQUALS2(){return this.getToken(tf.NOT_EQUALS2,0)}type_name_or_bind(t){return void 0===t?this.getRuleContexts(qY):this.getRuleContext(t,qY)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_type_name_tuple}accept(t){return t.visitType_name_tuple?t.visitType_name_tuple(this):t.visitChildren(this)}},BY=class extends ga{constructor(t,e){super(t,e)}STRUCT(){return this.getToken(tf.STRUCT,0)}LESS(){return this.getToken(tf.LESS,0)}GREATER(){return this.getToken(tf.GREATER,0)}NOT_EQUALS2(){return this.getToken(tf.NOT_EQUALS2,0)}struct_arg(t){return void 0===t?this.getRuleContexts(pY):this.getRuleContext(t,pY)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_type_name_struct}accept(t){return t.visitType_name_struct?t.visitType_name_struct(this):t.visitChildren(this)}},yY=class extends ga{constructor(t,e){super(t,e)}VARIANT(){return this.getToken(tf.VARIANT,0)}LESS(){return this.getToken(tf.LESS,0)}variant_arg(t){return void 0===t?this.getRuleContexts(xY):this.getRuleContext(t,xY)}GREATER(){return this.getToken(tf.GREATER,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_type_name_variant}accept(t){return t.visitType_name_variant?t.visitType_name_variant(this):t.visitChildren(this)}},fY=class extends ga{constructor(t,e){super(t,e)}LIST(){return this.getToken(tf.LIST,0)}LESS(){return this.getToken(tf.LESS,0)}type_name_or_bind(){return this.getRuleContext(0,qY)}GREATER(){return this.getToken(tf.GREATER,0)}get ruleIndex(){return tf.RULE_type_name_list}accept(t){return t.visitType_name_list?t.visitType_name_list(this):t.visitChildren(this)}},YY=class extends ga{constructor(t,e){super(t,e)}STREAM(){return this.getToken(tf.STREAM,0)}LESS(){return this.getToken(tf.LESS,0)}type_name_or_bind(){return this.getRuleContext(0,qY)}GREATER(){return this.getToken(tf.GREATER,0)}get ruleIndex(){return tf.RULE_type_name_stream}accept(t){return t.visitType_name_stream?t.visitType_name_stream(this):t.visitChildren(this)}},wY=class extends ga{constructor(t,e){super(t,e)}FLOW(){return this.getToken(tf.FLOW,0)}LESS(){return this.getToken(tf.LESS,0)}type_name_or_bind(){return this.getRuleContext(0,qY)}GREATER(){return this.getToken(tf.GREATER,0)}get ruleIndex(){return tf.RULE_type_name_flow}accept(t){return t.visitType_name_flow?t.visitType_name_flow(this):t.visitChildren(this)}},bY=class extends ga{constructor(t,e){super(t,e)}DICT(){return this.getToken(tf.DICT,0)}LESS(){return this.getToken(tf.LESS,0)}type_name_or_bind(t){return void 0===t?this.getRuleContexts(qY):this.getRuleContext(t,qY)}COMMA(){return this.getToken(tf.COMMA,0)}GREATER(){return this.getToken(tf.GREATER,0)}get ruleIndex(){return tf.RULE_type_name_dict}accept(t){return t.visitType_name_dict?t.visitType_name_dict(this):t.visitChildren(this)}},WY=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(tf.SET,0)}LESS(){return this.getToken(tf.LESS,0)}type_name_or_bind(){return this.getRuleContext(0,qY)}GREATER(){return this.getToken(tf.GREATER,0)}get ruleIndex(){return tf.RULE_type_name_set}accept(t){return t.visitType_name_set?t.visitType_name_set(this):t.visitChildren(this)}},VY=class extends ga{constructor(t,e){super(t,e)}ENUM(){return this.getToken(tf.ENUM,0)}LESS(){return this.getToken(tf.LESS,0)}type_name_tag(t){return void 0===t?this.getRuleContexts(DY):this.getRuleContext(t,DY)}GREATER(){return this.getToken(tf.GREATER,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_type_name_enum}accept(t){return t.visitType_name_enum?t.visitType_name_enum(this):t.visitChildren(this)}},XY=class extends ga{constructor(t,e){super(t,e)}RESOURCE(){return this.getToken(tf.RESOURCE,0)}LESS(){return this.getToken(tf.LESS,0)}type_name_tag(){return this.getRuleContext(0,DY)}GREATER(){return this.getToken(tf.GREATER,0)}get ruleIndex(){return tf.RULE_type_name_resource}accept(t){return t.visitType_name_resource?t.visitType_name_resource(this):t.visitChildren(this)}},KY=class extends ga{constructor(t,e){super(t,e)}TAGGED(){return this.getToken(tf.TAGGED,0)}LESS(){return this.getToken(tf.LESS,0)}type_name_or_bind(){return this.getRuleContext(0,qY)}COMMA(){return this.getToken(tf.COMMA,0)}type_name_tag(){return this.getRuleContext(0,DY)}GREATER(){return this.getToken(tf.GREATER,0)}get ruleIndex(){return tf.RULE_type_name_tagged}accept(t){return t.visitType_name_tagged?t.visitType_name_tagged(this):t.visitChildren(this)}},QY=class extends ga{constructor(t,e){super(t,e)}CALLABLE(){return this.getToken(tf.CALLABLE,0)}LESS(){return this.getToken(tf.LESS,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}RPAREN(){return this.getToken(tf.RPAREN,0)}ARROW(){return this.getToken(tf.ARROW,0)}type_name_or_bind(){return this.getRuleContext(0,qY)}GREATER(){return this.getToken(tf.GREATER,0)}callable_arg_list(t){return void 0===t?this.getRuleContexts(HY):this.getRuleContext(t,HY)}COMMA(){return this.getToken(tf.COMMA,0)}LBRACE_SQUARE(){return this.getToken(tf.LBRACE_SQUARE,0)}RBRACE_SQUARE(){return this.getToken(tf.RBRACE_SQUARE,0)}get ruleIndex(){return tf.RULE_type_name_callable}accept(t){return t.visitType_name_callable?t.visitType_name_callable(this):t.visitChildren(this)}},JY=class extends ga{constructor(t,e){super(t,e)}type_name_optional(){return this.getRuleContext(0,FY)}type_name_tuple(){return this.getRuleContext(0,vY)}type_name_struct(){return this.getRuleContext(0,BY)}type_name_variant(){return this.getRuleContext(0,yY)}type_name_list(){return this.getRuleContext(0,fY)}type_name_stream(){return this.getRuleContext(0,YY)}type_name_flow(){return this.getRuleContext(0,wY)}type_name_dict(){return this.getRuleContext(0,bY)}type_name_set(){return this.getRuleContext(0,WY)}type_name_enum(){return this.getRuleContext(0,VY)}type_name_resource(){return this.getRuleContext(0,XY)}type_name_tagged(){return this.getRuleContext(0,KY)}type_name_callable(){return this.getRuleContext(0,QY)}QUESTION(t){return void 0===t?this.getTokens(tf.QUESTION):this.getToken(tf.QUESTION,t)}get ruleIndex(){return tf.RULE_type_name_composite}accept(t){return t.visitType_name_composite?t.visitType_name_composite(this):t.visitChildren(this)}},ZY=class extends ga{constructor(t,e){super(t,e)}type_name_composite(){return this.getRuleContext(0,JY)}type_name_decimal(){return this.getRuleContext(0,GY)}type_name_simple(){return this.getRuleContext(0,UY)}QUESTION(t){return void 0===t?this.getTokens(tf.QUESTION):this.getToken(tf.QUESTION,t)}get ruleIndex(){return tf.RULE_type_name}accept(t){return t.visitType_name?t.visitType_name(this):t.visitChildren(this)}},qY=class extends ga{constructor(t,e){super(t,e)}type_name(){return this.getRuleContext(0,ZY)}bind_parameter(){return this.getRuleContext(0,LY)}get ruleIndex(){return tf.RULE_type_name_or_bind}accept(t){return t.visitType_name_or_bind?t.visitType_name_or_bind(this):t.visitChildren(this)}},jY=class extends ga{constructor(t,e){super(t,e)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_value_constructor_literal}accept(t){return t.visitValue_constructor_literal?t.visitValue_constructor_literal(this):t.visitChildren(this)}},zY=class extends ga{constructor(t,e){super(t,e)}VARIANT(){return this.getToken(tf.VARIANT,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}expr(t){return void 0===t?this.getRuleContexts(Ef):this.getRuleContext(t,Ef)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}RPAREN(){return this.getToken(tf.RPAREN,0)}ENUM(){return this.getToken(tf.ENUM,0)}CALLABLE(){return this.getToken(tf.CALLABLE,0)}get ruleIndex(){return tf.RULE_value_constructor}accept(t){return t.visitValue_constructor?t.visitValue_constructor(this):t.visitChildren(this)}},$Y=class extends ga{constructor(t,e){super(t,e)}DECLARE(){return this.getToken(tf.DECLARE,0)}bind_parameter(){return this.getRuleContext(0,LY)}AS(){return this.getToken(tf.AS,0)}type_name(){return this.getRuleContext(0,ZY)}EQUALS(){return this.getToken(tf.EQUALS,0)}literal_value(){return this.getRuleContext(0,NY)}get ruleIndex(){return tf.RULE_declare_stmt}accept(t){return t.visitDeclare_stmt?t.visitDeclare_stmt(this):t.visitChildren(this)}},tw=class extends ga{constructor(t,e){super(t,e)}an_id(t){return void 0===t?this.getRuleContexts(YX):this.getRuleContext(t,YX)}DOT(t){return void 0===t?this.getTokens(tf.DOT):this.getToken(tf.DOT,t)}get ruleIndex(){return tf.RULE_module_path}accept(t){return t.visitModule_path?t.visitModule_path(this):t.visitChildren(this)}},ew=class extends ga{constructor(t,e){super(t,e)}IMPORT(){return this.getToken(tf.IMPORT,0)}module_path(){return this.getRuleContext(0,tw)}SYMBOLS(){return this.getToken(tf.SYMBOLS,0)}named_bind_parameter_list(){return this.getRuleContext(0,MY)}get ruleIndex(){return tf.RULE_import_stmt}accept(t){return t.visitImport_stmt?t.visitImport_stmt(this):t.visitChildren(this)}},sw=class extends ga{constructor(t,e){super(t,e)}EXPORT(){return this.getToken(tf.EXPORT,0)}bind_parameter_list(){return this.getRuleContext(0,_Y)}get ruleIndex(){return tf.RULE_export_stmt}accept(t){return t.visitExport_stmt?t.visitExport_stmt(this):t.visitChildren(this)}},aw=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(tf.LPAREN,0)}RPAREN(){return this.getToken(tf.RPAREN,0)}bind_parameter(){return this.getRuleContext(0,LY)}EMPTY_ACTION(){return this.getToken(tf.EMPTY_ACTION,0)}expr_list(){return this.getRuleContext(0,rY)}get ruleIndex(){return tf.RULE_call_action}accept(t){return t.visitCall_action?t.visitCall_action(this):t.visitChildren(this)}},rw=class extends ga{constructor(t,e){super(t,e)}BEGIN(){return this.getToken(tf.BEGIN,0)}define_action_or_subquery_body(){return this.getRuleContext(0,lV)}END(){return this.getToken(tf.END,0)}DO(){return this.getToken(tf.DO,0)}get ruleIndex(){return tf.RULE_inline_action}accept(t){return t.visitInline_action?t.visitInline_action(this):t.visitChildren(this)}},iw=class extends ga{constructor(t,e){super(t,e)}DO(){return this.getToken(tf.DO,0)}call_action(){return this.getRuleContext(0,aw)}inline_action(){return this.getRuleContext(0,rw)}get ruleIndex(){return tf.RULE_do_stmt}accept(t){return t.visitDo_stmt?t.visitDo_stmt(this):t.visitChildren(this)}},cw=class extends ga{constructor(t,e){super(t,e)}PRAGMA(){return this.getToken(tf.PRAGMA,0)}opt_id_prefix_or_type(){return this.getRuleContext(0,eK)}an_id(){return this.getRuleContext(0,YX)}EQUALS(){return this.getToken(tf.EQUALS,0)}pragma_value(t){return void 0===t?this.getRuleContexts(nw):this.getRuleContext(t,nw)}LPAREN(){return this.getToken(tf.LPAREN,0)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_pragma_stmt}accept(t){return t.visitPragma_stmt?t.visitPragma_stmt(this):t.visitChildren(this)}},nw=class extends ga{constructor(t,e){super(t,e)}signed_number(){return this.getRuleContext(0,dY)}id(){return this.getRuleContext(0,xX)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}bool_value(){return this.getRuleContext(0,OK)}bind_parameter(){return this.getRuleContext(0,LY)}get ruleIndex(){return tf.RULE_pragma_value}accept(t){return t.visitPragma_value?t.visitPragma_value(this):t.visitChildren(this)}},hw=class extends ga{constructor(t,e){super(t,e)}expr(){return this.getRuleContext(0,Ef)}ASC(){return this.getToken(tf.ASC,0)}DESC(){return this.getToken(tf.DESC,0)}get ruleIndex(){return tf.RULE_sort_specification}accept(t){return t.visitSort_specification?t.visitSort_specification(this):t.visitChildren(this)}},Ew=class extends ga{constructor(t,e){super(t,e)}sort_specification(t){return void 0===t?this.getRuleContexts(hw):this.getRuleContext(t,hw)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_sort_specification_list}accept(t){return t.visitSort_specification_list?t.visitSort_specification_list(this):t.visitChildren(this)}},Tw=class extends ga{constructor(t,e){super(t,e)}select_kind_parenthesis(t){return void 0===t?this.getRuleContexts(Rw):this.getRuleContext(t,Rw)}select_op(t){return void 0===t?this.getRuleContexts(Aw):this.getRuleContext(t,Aw)}get ruleIndex(){return tf.RULE_select_stmt}accept(t){return t.visitSelect_stmt?t.visitSelect_stmt(this):t.visitChildren(this)}},ow=class extends ga{constructor(t,e){super(t,e)}select_kind_partial(){return this.getRuleContext(0,Sw)}select_op(t){return void 0===t?this.getRuleContexts(Aw):this.getRuleContext(t,Aw)}select_kind_parenthesis(t){return void 0===t?this.getRuleContexts(Rw):this.getRuleContext(t,Rw)}get ruleIndex(){return tf.RULE_select_unparenthesized_stmt}accept(t){return t.visitSelect_unparenthesized_stmt?t.visitSelect_unparenthesized_stmt(this):t.visitChildren(this)}},Rw=class extends ga{constructor(t,e){super(t,e)}select_kind_partial(){return this.getRuleContext(0,Sw)}LPAREN(){return this.getToken(tf.LPAREN,0)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_select_kind_parenthesis}accept(t){return t.visitSelect_kind_parenthesis?t.visitSelect_kind_parenthesis(this):t.visitChildren(this)}},Aw=class extends ga{constructor(t,e){super(t,e)}UNION(){return this.getToken(tf.UNION,0)}ALL(){return this.getToken(tf.ALL,0)}INTERSECT(){return this.getToken(tf.INTERSECT,0)}EXCEPT(){return this.getToken(tf.EXCEPT,0)}get ruleIndex(){return tf.RULE_select_op}accept(t){return t.visitSelect_op?t.visitSelect_op(this):t.visitChildren(this)}},Sw=class extends ga{constructor(t,e){super(t,e)}select_kind(){return this.getRuleContext(0,lw)}LIMIT(){return this.getToken(tf.LIMIT,0)}expr(t){return void 0===t?this.getRuleContexts(Ef):this.getRuleContext(t,Ef)}OFFSET(){return this.getToken(tf.OFFSET,0)}COMMA(){return this.getToken(tf.COMMA,0)}get ruleIndex(){return tf.RULE_select_kind_partial}accept(t){return t.visitSelect_kind_partial?t.visitSelect_kind_partial(this):t.visitChildren(this)}},lw=class extends ga{constructor(t,e){super(t,e)}process_core(){return this.getRuleContext(0,Ow)}reduce_core(){return this.getRuleContext(0,Nw)}select_core(){return this.getRuleContext(0,Cw)}DISCARD(){return this.getToken(tf.DISCARD,0)}INTO(){return this.getToken(tf.INTO,0)}RESULT(){return this.getToken(tf.RESULT,0)}pure_column_or_named(){return this.getRuleContext(0,cY)}get ruleIndex(){return tf.RULE_select_kind}accept(t){return t.visitSelect_kind?t.visitSelect_kind(this):t.visitChildren(this)}},Ow=class extends ga{constructor(t,e){super(t,e)}PROCESS(){return this.getToken(tf.PROCESS,0)}named_single_source(t){return void 0===t?this.getRuleContexts(Ab):this.getRuleContext(t,Ab)}STREAM(){return this.getToken(tf.STREAM,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}USING(){return this.getToken(tf.USING,0)}using_call_expr(){return this.getRuleContext(0,OY)}AS(){return this.getToken(tf.AS,0)}an_id(){return this.getRuleContext(0,YX)}WITH(){return this.getToken(tf.WITH,0)}external_call_settings(){return this.getRuleContext(0,uw)}where_expr(){return this.getRuleContext(0,MK)}HAVING(){return this.getToken(tf.HAVING,0)}expr(){return this.getRuleContext(0,Ef)}ASSUME(){return this.getToken(tf.ASSUME,0)}order_by_clause(){return this.getRuleContext(0,jw)}get ruleIndex(){return tf.RULE_process_core}accept(t){return t.visitProcess_core?t.visitProcess_core(this):t.visitChildren(this)}},Iw=class extends ga{constructor(t,e){super(t,e)}an_id(){return this.getRuleContext(0,YX)}EQUALS(){return this.getToken(tf.EQUALS,0)}expr(){return this.getRuleContext(0,Ef)}get ruleIndex(){return tf.RULE_external_call_param}accept(t){return t.visitExternal_call_param?t.visitExternal_call_param(this):t.visitChildren(this)}},uw=class extends ga{constructor(t,e){super(t,e)}external_call_param(t){return void 0===t?this.getRuleContexts(Iw):this.getRuleContext(t,Iw)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_external_call_settings}accept(t){return t.visitExternal_call_settings?t.visitExternal_call_settings(this):t.visitChildren(this)}},Nw=class extends ga{constructor(t,e){super(t,e)}REDUCE(){return this.getToken(tf.REDUCE,0)}named_single_source(t){return void 0===t?this.getRuleContexts(Ab):this.getRuleContext(t,Ab)}ON(){return this.getToken(tf.ON,0)}column_list(){return this.getRuleContext(0,TY)}USING(){return this.getToken(tf.USING,0)}using_call_expr(){return this.getRuleContext(0,OY)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}PRESORT(){return this.getToken(tf.PRESORT,0)}sort_specification_list(){return this.getRuleContext(0,Ew)}ALL(){return this.getToken(tf.ALL,0)}AS(){return this.getToken(tf.AS,0)}an_id(){return this.getRuleContext(0,YX)}where_expr(){return this.getRuleContext(0,MK)}HAVING(){return this.getToken(tf.HAVING,0)}expr(){return this.getRuleContext(0,Ef)}ASSUME(){return this.getToken(tf.ASSUME,0)}order_by_clause(){return this.getRuleContext(0,jw)}get ruleIndex(){return tf.RULE_reduce_core}accept(t){return t.visitReduce_core?t.visitReduce_core(this):t.visitChildren(this)}},Lw=class extends ga{constructor(t,e){super(t,e)}ALL(){return this.getToken(tf.ALL,0)}DISTINCT(){return this.getToken(tf.DISTINCT,0)}get ruleIndex(){return tf.RULE_opt_set_quantifier}accept(t){return t.visitOpt_set_quantifier?t.visitOpt_set_quantifier(this):t.visitChildren(this)}},Cw=class extends ga{constructor(t,e){super(t,e)}SELECT(){return this.getToken(tf.SELECT,0)}opt_set_quantifier(){return this.getRuleContext(0,Lw)}result_column(t){return void 0===t?this.getRuleContexts(hb):this.getRuleContext(t,hb)}FROM(t){return void 0===t?this.getTokens(tf.FROM):this.getToken(tf.FROM,t)}join_source(t){return void 0===t?this.getRuleContexts(Eb):this.getRuleContext(t,Eb)}STREAM(){return this.getToken(tf.STREAM,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}WITHOUT(){return this.getToken(tf.WITHOUT,0)}without_column_list(){return this.getRuleContext(0,oY)}where_expr(){return this.getRuleContext(0,MK)}group_by_clause(){return this.getRuleContext(0,$w)}HAVING(){return this.getToken(tf.HAVING,0)}expr(){return this.getRuleContext(0,Ef)}window_clause(){return this.getRuleContext(0,TX)}ext_order_by_clause(){return this.getRuleContext(0,zw)}get ruleIndex(){return tf.RULE_select_core}accept(t){return t.visitSelect_core?t.visitSelect_core(this):t.visitChildren(this)}},_w=class extends ga{constructor(t,e){super(t,e)}MATCH_RECOGNIZE(){return this.getToken(tf.MATCH_RECOGNIZE,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}row_pattern_common_syntax(){return this.getRuleContext(0,Dw)}RPAREN(){return this.getToken(tf.RPAREN,0)}window_partition_clause(){return this.getRuleContext(0,IX)}order_by_clause(){return this.getRuleContext(0,jw)}row_pattern_measures(){return this.getRuleContext(0,dw)}row_pattern_rows_per_match(){return this.getRuleContext(0,Pw)}get ruleIndex(){return tf.RULE_row_pattern_recognition_clause}accept(t){return t.visitRow_pattern_recognition_clause?t.visitRow_pattern_recognition_clause(this):t.visitChildren(this)}},Pw=class extends ga{constructor(t,e){super(t,e)}ONE(){return this.getToken(tf.ONE,0)}ROW(){return this.getToken(tf.ROW,0)}PER(){return this.getToken(tf.PER,0)}MATCH(){return this.getToken(tf.MATCH,0)}ALL(){return this.getToken(tf.ALL,0)}ROWS(){return this.getToken(tf.ROWS,0)}row_pattern_empty_match_handling(){return this.getRuleContext(0,Mw)}get ruleIndex(){return tf.RULE_row_pattern_rows_per_match}accept(t){return t.visitRow_pattern_rows_per_match?t.visitRow_pattern_rows_per_match(this):t.visitChildren(this)}},Mw=class extends ga{constructor(t,e){super(t,e)}SHOW(){return this.getToken(tf.SHOW,0)}EMPTY(){return this.getToken(tf.EMPTY,0)}MATCHES(){return this.getToken(tf.MATCHES,0)}OMIT(){return this.getToken(tf.OMIT,0)}WITH(){return this.getToken(tf.WITH,0)}UNMATCHED(){return this.getToken(tf.UNMATCHED,0)}ROWS(){return this.getToken(tf.ROWS,0)}get ruleIndex(){return tf.RULE_row_pattern_empty_match_handling}accept(t){return t.visitRow_pattern_empty_match_handling?t.visitRow_pattern_empty_match_handling(this):t.visitChildren(this)}},dw=class extends ga{constructor(t,e){super(t,e)}MEASURES(){return this.getToken(tf.MEASURES,0)}row_pattern_measure_list(){return this.getRuleContext(0,Uw)}get ruleIndex(){return tf.RULE_row_pattern_measures}accept(t){return t.visitRow_pattern_measures?t.visitRow_pattern_measures(this):t.visitChildren(this)}},Uw=class extends ga{constructor(t,e){super(t,e)}row_pattern_measure_definition(t){return void 0===t?this.getRuleContexts(mw):this.getRuleContext(t,mw)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_row_pattern_measure_list}accept(t){return t.visitRow_pattern_measure_list?t.visitRow_pattern_measure_list(this):t.visitChildren(this)}},mw=class extends ga{constructor(t,e){super(t,e)}expr(){return this.getRuleContext(0,Ef)}AS(){return this.getToken(tf.AS,0)}an_id(){return this.getRuleContext(0,YX)}get ruleIndex(){return tf.RULE_row_pattern_measure_definition}accept(t){return t.visitRow_pattern_measure_definition?t.visitRow_pattern_measure_definition(this):t.visitChildren(this)}},Dw=class extends ga{constructor(t,e){super(t,e)}PATTERN(){return this.getToken(tf.PATTERN,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}row_pattern(){return this.getRuleContext(0,kw)}RPAREN(){return this.getToken(tf.RPAREN,0)}DEFINE(){return this.getToken(tf.DEFINE,0)}row_pattern_definition_list(){return this.getRuleContext(0,Xw)}AFTER(){return this.getToken(tf.AFTER,0)}MATCH(){return this.getToken(tf.MATCH,0)}row_pattern_skip_to(){return this.getRuleContext(0,pw)}row_pattern_initial_or_seek(){return this.getRuleContext(0,xw)}row_pattern_subset_clause(){return this.getRuleContext(0,fw)}get ruleIndex(){return tf.RULE_row_pattern_common_syntax}accept(t){return t.visitRow_pattern_common_syntax?t.visitRow_pattern_common_syntax(this):t.visitChildren(this)}},pw=class extends ga{constructor(t,e){super(t,e)}SKIP_RULE(){return this.getToken(tf.SKIP_RULE,0)}TO(){return this.getToken(tf.TO,0)}NEXT(){return this.getToken(tf.NEXT,0)}ROW(){return this.getToken(tf.ROW,0)}PAST(){return this.getToken(tf.PAST,0)}LAST(){return this.getToken(tf.LAST,0)}FIRST(){return this.getToken(tf.FIRST,0)}row_pattern_skip_to_variable_name(){return this.getRuleContext(0,gw)}get ruleIndex(){return tf.RULE_row_pattern_skip_to}accept(t){return t.visitRow_pattern_skip_to?t.visitRow_pattern_skip_to(this):t.visitChildren(this)}},gw=class extends ga{constructor(t,e){super(t,e)}row_pattern_variable_name(){return this.getRuleContext(0,qw)}get ruleIndex(){return tf.RULE_row_pattern_skip_to_variable_name}accept(t){return t.visitRow_pattern_skip_to_variable_name?t.visitRow_pattern_skip_to_variable_name(this):t.visitChildren(this)}},xw=class extends ga{constructor(t,e){super(t,e)}INITIAL(){return this.getToken(tf.INITIAL,0)}SEEK(){return this.getToken(tf.SEEK,0)}get ruleIndex(){return tf.RULE_row_pattern_initial_or_seek}accept(t){return t.visitRow_pattern_initial_or_seek?t.visitRow_pattern_initial_or_seek(this):t.visitChildren(this)}},kw=class extends ga{constructor(t,e){super(t,e)}row_pattern_term(t){return void 0===t?this.getRuleContexts(Hw):this.getRuleContext(t,Hw)}PIPE(t){return void 0===t?this.getTokens(tf.PIPE):this.getToken(tf.PIPE,t)}get ruleIndex(){return tf.RULE_row_pattern}accept(t){return t.visitRow_pattern?t.visitRow_pattern(this):t.visitChildren(this)}},Hw=class extends ga{constructor(t,e){super(t,e)}row_pattern_factor(t){return void 0===t?this.getRuleContexts(Gw):this.getRuleContext(t,Gw)}get ruleIndex(){return tf.RULE_row_pattern_term}accept(t){return t.visitRow_pattern_term?t.visitRow_pattern_term(this):t.visitChildren(this)}},Gw=class extends ga{constructor(t,e){super(t,e)}row_pattern_primary(){return this.getRuleContext(0,vw)}row_pattern_quantifier(){return this.getRuleContext(0,Fw)}get ruleIndex(){return tf.RULE_row_pattern_factor}accept(t){return t.visitRow_pattern_factor?t.visitRow_pattern_factor(this):t.visitChildren(this)}},Fw=class extends ga{constructor(t,e){super(t,e)}ASTERISK(){return this.getToken(tf.ASTERISK,0)}QUESTION(t){return void 0===t?this.getTokens(tf.QUESTION):this.getToken(tf.QUESTION,t)}PLUS(){return this.getToken(tf.PLUS,0)}LBRACE_CURLY(){return this.getToken(tf.LBRACE_CURLY,0)}COMMA(){return this.getToken(tf.COMMA,0)}RBRACE_CURLY(){return this.getToken(tf.RBRACE_CURLY,0)}integer(t){return void 0===t?this.getRuleContexts(uK):this.getRuleContext(t,uK)}get ruleIndex(){return tf.RULE_row_pattern_quantifier}accept(t){return t.visitRow_pattern_quantifier?t.visitRow_pattern_quantifier(this):t.visitChildren(this)}},vw=class extends ga{constructor(t,e){super(t,e)}row_pattern_primary_variable_name(){return this.getRuleContext(0,Bw)}DOLLAR(){return this.getToken(tf.DOLLAR,0)}CARET(){return this.getToken(tf.CARET,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}RPAREN(){return this.getToken(tf.RPAREN,0)}row_pattern(){return this.getRuleContext(0,kw)}LBRACE_CURLY(){return this.getToken(tf.LBRACE_CURLY,0)}MINUS(t){return void 0===t?this.getTokens(tf.MINUS):this.getToken(tf.MINUS,t)}RBRACE_CURLY(){return this.getToken(tf.RBRACE_CURLY,0)}row_pattern_permute(){return this.getRuleContext(0,yw)}get ruleIndex(){return tf.RULE_row_pattern_primary}accept(t){return t.visitRow_pattern_primary?t.visitRow_pattern_primary(this):t.visitChildren(this)}},Bw=class extends ga{constructor(t,e){super(t,e)}row_pattern_variable_name(){return this.getRuleContext(0,qw)}get ruleIndex(){return tf.RULE_row_pattern_primary_variable_name}accept(t){return t.visitRow_pattern_primary_variable_name?t.visitRow_pattern_primary_variable_name(this):t.visitChildren(this)}},yw=class extends ga{constructor(t,e){super(t,e)}PERMUTE(){return this.getToken(tf.PERMUTE,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}row_pattern(t){return void 0===t?this.getRuleContexts(kw):this.getRuleContext(t,kw)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_row_pattern_permute}accept(t){return t.visitRow_pattern_permute?t.visitRow_pattern_permute(this):t.visitChildren(this)}},fw=class extends ga{constructor(t,e){super(t,e)}SUBSET(){return this.getToken(tf.SUBSET,0)}row_pattern_subset_list(){return this.getRuleContext(0,Yw)}get ruleIndex(){return tf.RULE_row_pattern_subset_clause}accept(t){return t.visitRow_pattern_subset_clause?t.visitRow_pattern_subset_clause(this):t.visitChildren(this)}},Yw=class extends ga{constructor(t,e){super(t,e)}row_pattern_subset_item(t){return void 0===t?this.getRuleContexts(ww):this.getRuleContext(t,ww)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_row_pattern_subset_list}accept(t){return t.visitRow_pattern_subset_list?t.visitRow_pattern_subset_list(this):t.visitChildren(this)}},ww=class extends ga{constructor(t,e){super(t,e)}row_pattern_subset_item_variable_name(){return this.getRuleContext(0,bw)}EQUALS(){return this.getToken(tf.EQUALS,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}row_pattern_subset_rhs(){return this.getRuleContext(0,Ww)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_row_pattern_subset_item}accept(t){return t.visitRow_pattern_subset_item?t.visitRow_pattern_subset_item(this):t.visitChildren(this)}},bw=class extends ga{constructor(t,e){super(t,e)}row_pattern_variable_name(){return this.getRuleContext(0,qw)}get ruleIndex(){return tf.RULE_row_pattern_subset_item_variable_name}accept(t){return t.visitRow_pattern_subset_item_variable_name?t.visitRow_pattern_subset_item_variable_name(this):t.visitChildren(this)}},Ww=class extends ga{constructor(t,e){super(t,e)}row_pattern_subset_rhs_variable_name(t){return void 0===t?this.getRuleContexts(Vw):this.getRuleContext(t,Vw)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_row_pattern_subset_rhs}accept(t){return t.visitRow_pattern_subset_rhs?t.visitRow_pattern_subset_rhs(this):t.visitChildren(this)}},Vw=class extends ga{constructor(t,e){super(t,e)}row_pattern_variable_name(){return this.getRuleContext(0,qw)}get ruleIndex(){return tf.RULE_row_pattern_subset_rhs_variable_name}accept(t){return t.visitRow_pattern_subset_rhs_variable_name?t.visitRow_pattern_subset_rhs_variable_name(this):t.visitChildren(this)}},Xw=class extends ga{constructor(t,e){super(t,e)}row_pattern_definition(t){return void 0===t?this.getRuleContexts(Kw):this.getRuleContext(t,Kw)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_row_pattern_definition_list}accept(t){return t.visitRow_pattern_definition_list?t.visitRow_pattern_definition_list(this):t.visitChildren(this)}},Kw=class extends ga{constructor(t,e){super(t,e)}row_pattern_definition_variable_name(){return this.getRuleContext(0,Qw)}AS(){return this.getToken(tf.AS,0)}row_pattern_definition_search_condition(){return this.getRuleContext(0,Jw)}get ruleIndex(){return tf.RULE_row_pattern_definition}accept(t){return t.visitRow_pattern_definition?t.visitRow_pattern_definition(this):t.visitChildren(this)}},Qw=class extends ga{constructor(t,e){super(t,e)}row_pattern_variable_name(){return this.getRuleContext(0,qw)}get ruleIndex(){return tf.RULE_row_pattern_definition_variable_name}accept(t){return t.visitRow_pattern_definition_variable_name?t.visitRow_pattern_definition_variable_name(this):t.visitChildren(this)}},Jw=class extends ga{constructor(t,e){super(t,e)}search_condition(){return this.getRuleContext(0,Zw)}get ruleIndex(){return tf.RULE_row_pattern_definition_search_condition}accept(t){return t.visitRow_pattern_definition_search_condition?t.visitRow_pattern_definition_search_condition(this):t.visitChildren(this)}},Zw=class extends ga{constructor(t,e){super(t,e)}expr(){return this.getRuleContext(0,Ef)}get ruleIndex(){return tf.RULE_search_condition}accept(t){return t.visitSearch_condition?t.visitSearch_condition(this):t.visitChildren(this)}},qw=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,gX)}get ruleIndex(){return tf.RULE_row_pattern_variable_name}accept(t){return t.visitRow_pattern_variable_name?t.visitRow_pattern_variable_name(this):t.visitChildren(this)}},jw=class extends ga{constructor(t,e){super(t,e)}ORDER(){return this.getToken(tf.ORDER,0)}BY(){return this.getToken(tf.BY,0)}sort_specification_list(){return this.getRuleContext(0,Ew)}get ruleIndex(){return tf.RULE_order_by_clause}accept(t){return t.visitOrder_by_clause?t.visitOrder_by_clause(this):t.visitChildren(this)}},zw=class extends ga{constructor(t,e){super(t,e)}order_by_clause(){return this.getRuleContext(0,jw)}ASSUME(){return this.getToken(tf.ASSUME,0)}get ruleIndex(){return tf.RULE_ext_order_by_clause}accept(t){return t.visitExt_order_by_clause?t.visitExt_order_by_clause(this):t.visitChildren(this)}},$w=class extends ga{constructor(t,e){super(t,e)}GROUP(){return this.getToken(tf.GROUP,0)}BY(){return this.getToken(tf.BY,0)}opt_set_quantifier(){return this.getRuleContext(0,Lw)}grouping_element_list(){return this.getRuleContext(0,tb)}COMPACT(){return this.getToken(tf.COMPACT,0)}WITH(){return this.getToken(tf.WITH,0)}an_id(){return this.getRuleContext(0,YX)}get ruleIndex(){return tf.RULE_group_by_clause}accept(t){return t.visitGroup_by_clause?t.visitGroup_by_clause(this):t.visitChildren(this)}},tb=class extends ga{constructor(t,e){super(t,e)}grouping_element(t){return void 0===t?this.getRuleContexts(eb):this.getRuleContext(t,eb)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_grouping_element_list}accept(t){return t.visitGrouping_element_list?t.visitGrouping_element_list(this):t.visitChildren(this)}},eb=class extends ga{constructor(t,e){super(t,e)}ordinary_grouping_set(){return this.getRuleContext(0,sb)}rollup_list(){return this.getRuleContext(0,rb)}cube_list(){return this.getRuleContext(0,ib)}grouping_sets_specification(){return this.getRuleContext(0,cb)}hopping_window_specification(){return this.getRuleContext(0,nb)}get ruleIndex(){return tf.RULE_grouping_element}accept(t){return t.visitGrouping_element?t.visitGrouping_element(this):t.visitChildren(this)}},sb=class extends ga{constructor(t,e){super(t,e)}named_expr(){return this.getRuleContext(0,RY)}get ruleIndex(){return tf.RULE_ordinary_grouping_set}accept(t){return t.visitOrdinary_grouping_set?t.visitOrdinary_grouping_set(this):t.visitChildren(this)}},ab=class extends ga{constructor(t,e){super(t,e)}ordinary_grouping_set(t){return void 0===t?this.getRuleContexts(sb):this.getRuleContext(t,sb)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_ordinary_grouping_set_list}accept(t){return t.visitOrdinary_grouping_set_list?t.visitOrdinary_grouping_set_list(this):t.visitChildren(this)}},rb=class extends ga{constructor(t,e){super(t,e)}ROLLUP(){return this.getToken(tf.ROLLUP,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}ordinary_grouping_set_list(){return this.getRuleContext(0,ab)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_rollup_list}accept(t){return t.visitRollup_list?t.visitRollup_list(this):t.visitChildren(this)}},ib=class extends ga{constructor(t,e){super(t,e)}CUBE(){return this.getToken(tf.CUBE,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}ordinary_grouping_set_list(){return this.getRuleContext(0,ab)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_cube_list}accept(t){return t.visitCube_list?t.visitCube_list(this):t.visitChildren(this)}},cb=class extends ga{constructor(t,e){super(t,e)}GROUPING(){return this.getToken(tf.GROUPING,0)}SETS(){return this.getToken(tf.SETS,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}grouping_element_list(){return this.getRuleContext(0,tb)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_grouping_sets_specification}accept(t){return t.visitGrouping_sets_specification?t.visitGrouping_sets_specification(this):t.visitChildren(this)}},nb=class extends ga{constructor(t,e){super(t,e)}HOP(){return this.getToken(tf.HOP,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}expr(t){return void 0===t?this.getRuleContexts(Ef):this.getRuleContext(t,Ef)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_hopping_window_specification}accept(t){return t.visitHopping_window_specification?t.visitHopping_window_specification(this):t.visitChildren(this)}},hb=class extends ga{constructor(t,e){super(t,e)}opt_id_prefix(){return this.getRuleContext(0,zX)}ASTERISK(){return this.getToken(tf.ASTERISK,0)}expr(){return this.getRuleContext(0,Ef)}an_id_as_compat(){return this.getRuleContext(0,qX)}AS(){return this.getToken(tf.AS,0)}an_id_or_type(){return this.getRuleContext(0,wX)}get ruleIndex(){return tf.RULE_result_column}accept(t){return t.visitResult_column?t.visitResult_column(this):t.visitChildren(this)}},Eb=class extends ga{constructor(t,e){super(t,e)}flatten_source(t){return void 0===t?this.getRuleContexts(Rb):this.getRuleContext(t,Rb)}ANY(t){return void 0===t?this.getTokens(tf.ANY):this.getToken(tf.ANY,t)}join_op(t){return void 0===t?this.getRuleContexts(Nb):this.getRuleContext(t,Nb)}join_constraint(t){return void 0===t?this.getRuleContexts(Lb):this.getRuleContext(t,Lb)}get ruleIndex(){return tf.RULE_join_source}accept(t){return t.visitJoin_source?t.visitJoin_source(this):t.visitChildren(this)}},Tb=class extends ga{constructor(t,e){super(t,e)}column_name(){return this.getRuleContext(0,hY)}AS(){return this.getToken(tf.AS,0)}an_id(){return this.getRuleContext(0,YX)}get ruleIndex(){return tf.RULE_named_column}accept(t){return t.visitNamed_column?t.visitNamed_column(this):t.visitChildren(this)}},ob=class extends ga{constructor(t,e){super(t,e)}named_column(){return this.getRuleContext(0,Tb)}LPAREN(){return this.getToken(tf.LPAREN,0)}named_expr_list(){return this.getRuleContext(0,AY)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(){return this.getToken(tf.COMMA,0)}get ruleIndex(){return tf.RULE_flatten_by_arg}accept(t){return t.visitFlatten_by_arg?t.visitFlatten_by_arg(this):t.visitChildren(this)}},Rb=class extends ga{constructor(t,e){super(t,e)}named_single_source(){return this.getRuleContext(0,Ab)}FLATTEN(){return this.getToken(tf.FLATTEN,0)}BY(){return this.getToken(tf.BY,0)}flatten_by_arg(){return this.getRuleContext(0,ob)}COLUMNS(){return this.getToken(tf.COLUMNS,0)}OPTIONAL(){return this.getToken(tf.OPTIONAL,0)}LIST(){return this.getToken(tf.LIST,0)}DICT(){return this.getToken(tf.DICT,0)}get ruleIndex(){return tf.RULE_flatten_source}accept(t){return t.visitFlatten_source?t.visitFlatten_source(this):t.visitChildren(this)}},Ab=class extends ga{constructor(t,e){super(t,e)}single_source(){return this.getRuleContext(0,Sb)}row_pattern_recognition_clause(){return this.getRuleContext(0,_w)}sample_clause(){return this.getRuleContext(0,lb)}tablesample_clause(){return this.getRuleContext(0,Ob)}an_id_as_compat(){return this.getRuleContext(0,qX)}pure_column_list(){return this.getRuleContext(0,iY)}AS(){return this.getToken(tf.AS,0)}an_id(){return this.getRuleContext(0,YX)}get ruleIndex(){return tf.RULE_named_single_source}accept(t){return t.visitNamed_single_source?t.visitNamed_single_source(this):t.visitChildren(this)}},Sb=class extends ga{constructor(t,e){super(t,e)}table_ref(){return this.getRuleContext(0,uV)}LPAREN(){return this.getToken(tf.LPAREN,0)}select_stmt(){return this.getRuleContext(0,Tw)}RPAREN(){return this.getToken(tf.RPAREN,0)}values_stmt(){return this.getRuleContext(0,db)}get ruleIndex(){return tf.RULE_single_source}accept(t){return t.visitSingle_source?t.visitSingle_source(this):t.visitChildren(this)}},lb=class extends ga{constructor(t,e){super(t,e)}SAMPLE(){return this.getToken(tf.SAMPLE,0)}expr(){return this.getRuleContext(0,Ef)}get ruleIndex(){return tf.RULE_sample_clause}accept(t){return t.visitSample_clause?t.visitSample_clause(this):t.visitChildren(this)}},Ob=class extends ga{constructor(t,e){super(t,e)}TABLESAMPLE(){return this.getToken(tf.TABLESAMPLE,0)}sampling_mode(){return this.getRuleContext(0,Ib)}LPAREN(){return this.getToken(tf.LPAREN,0)}expr(){return this.getRuleContext(0,Ef)}RPAREN(){return this.getToken(tf.RPAREN,0)}repeatable_clause(){return this.getRuleContext(0,ub)}get ruleIndex(){return tf.RULE_tablesample_clause}accept(t){return t.visitTablesample_clause?t.visitTablesample_clause(this):t.visitChildren(this)}},Ib=class extends ga{constructor(t,e){super(t,e)}BERNOULLI(){return this.getToken(tf.BERNOULLI,0)}SYSTEM(){return this.getToken(tf.SYSTEM,0)}get ruleIndex(){return tf.RULE_sampling_mode}accept(t){return t.visitSampling_mode?t.visitSampling_mode(this):t.visitChildren(this)}},ub=class extends ga{constructor(t,e){super(t,e)}REPEATABLE(){return this.getToken(tf.REPEATABLE,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}expr(){return this.getRuleContext(0,Ef)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_repeatable_clause}accept(t){return t.visitRepeatable_clause?t.visitRepeatable_clause(this):t.visitChildren(this)}},Nb=class extends ga{constructor(t,e){super(t,e)}COMMA(){return this.getToken(tf.COMMA,0)}JOIN(){return this.getToken(tf.JOIN,0)}INNER(){return this.getToken(tf.INNER,0)}CROSS(){return this.getToken(tf.CROSS,0)}NATURAL(){return this.getToken(tf.NATURAL,0)}LEFT(){return this.getToken(tf.LEFT,0)}RIGHT(){return this.getToken(tf.RIGHT,0)}EXCLUSION(){return this.getToken(tf.EXCLUSION,0)}FULL(){return this.getToken(tf.FULL,0)}OUTER(){return this.getToken(tf.OUTER,0)}ONLY(){return this.getToken(tf.ONLY,0)}SEMI(){return this.getToken(tf.SEMI,0)}get ruleIndex(){return tf.RULE_join_op}accept(t){return t.visitJoin_op?t.visitJoin_op(this):t.visitChildren(this)}},Lb=class extends ga{constructor(t,e){super(t,e)}ON(){return this.getToken(tf.ON,0)}expr(){return this.getRuleContext(0,Ef)}USING(){return this.getToken(tf.USING,0)}pure_column_or_named_list(){return this.getRuleContext(0,nY)}get ruleIndex(){return tf.RULE_join_constraint}accept(t){return t.visitJoin_constraint?t.visitJoin_constraint(this):t.visitChildren(this)}},Cb=class extends ga{constructor(t,e){super(t,e)}RETURNING(){return this.getToken(tf.RETURNING,0)}ASTERISK(){return this.getToken(tf.ASTERISK,0)}an_id(t){return void 0===t?this.getRuleContexts(YX):this.getRuleContext(t,YX)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_returning_columns_list}accept(t){return t.visitReturning_columns_list?t.visitReturning_columns_list(this):t.visitChildren(this)}},_b=class extends ga{constructor(t,e){super(t,e)}INTO(){return this.getToken(tf.INTO,0)}into_simple_table_ref(){return this.getRuleContext(0,UV)}into_values_source(){return this.getRuleContext(0,Mb)}INSERT(){return this.getToken(tf.INSERT,0)}OR(){return this.getToken(tf.OR,0)}ABORT(){return this.getToken(tf.ABORT,0)}REVERT(){return this.getToken(tf.REVERT,0)}IGNORE(){return this.getToken(tf.IGNORE,0)}UPSERT(){return this.getToken(tf.UPSERT,0)}REPLACE(){return this.getToken(tf.REPLACE,0)}returning_columns_list(){return this.getRuleContext(0,Cb)}get ruleIndex(){return tf.RULE_into_table_stmt}accept(t){return t.visitInto_table_stmt?t.visitInto_table_stmt(this):t.visitChildren(this)}},Pb=class extends ga{constructor(t,e){super(t,e)}INTO(){return this.getToken(tf.INTO,0)}into_simple_table_ref(){return this.getRuleContext(0,UV)}into_values_source(){return this.getRuleContext(0,Mb)}INSERT(){return this.getToken(tf.INSERT,0)}OR(){return this.getToken(tf.OR,0)}ABORT(){return this.getToken(tf.ABORT,0)}REVERT(){return this.getToken(tf.REVERT,0)}IGNORE(){return this.getToken(tf.IGNORE,0)}REPLACE(){return this.getToken(tf.REPLACE,0)}get ruleIndex(){return tf.RULE_into_table_stmt_yq}accept(t){return t.visitInto_table_stmt_yq?t.visitInto_table_stmt_yq(this):t.visitChildren(this)}},Mb=class extends ga{constructor(t,e){super(t,e)}values_source(){return this.getRuleContext(0,Ub)}pure_column_list(){return this.getRuleContext(0,iY)}DEFAULT(){return this.getToken(tf.DEFAULT,0)}VALUES(){return this.getToken(tf.VALUES,0)}get ruleIndex(){return tf.RULE_into_values_source}accept(t){return t.visitInto_values_source?t.visitInto_values_source(this):t.visitChildren(this)}},db=class extends ga{constructor(t,e){super(t,e)}VALUES(){return this.getToken(tf.VALUES,0)}values_source_row_list(){return this.getRuleContext(0,mb)}get ruleIndex(){return tf.RULE_values_stmt}accept(t){return t.visitValues_stmt?t.visitValues_stmt(this):t.visitChildren(this)}},Ub=class extends ga{constructor(t,e){super(t,e)}values_stmt(){return this.getRuleContext(0,db)}select_stmt(){return this.getRuleContext(0,Tw)}get ruleIndex(){return tf.RULE_values_source}accept(t){return t.visitValues_source?t.visitValues_source(this):t.visitChildren(this)}},mb=class extends ga{constructor(t,e){super(t,e)}values_source_row(t){return void 0===t?this.getRuleContexts(Db):this.getRuleContext(t,Db)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_values_source_row_list}accept(t){return t.visitValues_source_row_list?t.visitValues_source_row_list(this):t.visitChildren(this)}},Db=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(tf.LPAREN,0)}expr_list(){return this.getRuleContext(0,rY)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_values_source_row}accept(t){return t.visitValues_source_row?t.visitValues_source_row(this):t.visitChildren(this)}},pb=class extends ga{constructor(t,e){super(t,e)}expr_list(){return this.getRuleContext(0,rY)}select_stmt(){return this.getRuleContext(0,Tw)}get ruleIndex(){return tf.RULE_simple_values_source}accept(t){return t.visitSimple_values_source?t.visitSimple_values_source(this):t.visitChildren(this)}},gb=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(tf.CREATE,0)}EXTERNAL(){return this.getToken(tf.EXTERNAL,0)}DATA(){return this.getToken(tf.DATA,0)}SOURCE(){return this.getToken(tf.SOURCE,0)}object_ref(){return this.getRuleContext(0,PV)}with_table_settings(){return this.getRuleContext(0,$b)}OR(){return this.getToken(tf.OR,0)}REPLACE(){return this.getToken(tf.REPLACE,0)}IF(){return this.getToken(tf.IF,0)}NOT(){return this.getToken(tf.NOT,0)}EXISTS(){return this.getToken(tf.EXISTS,0)}get ruleIndex(){return tf.RULE_create_external_data_source_stmt}accept(t){return t.visitCreate_external_data_source_stmt?t.visitCreate_external_data_source_stmt(this):t.visitChildren(this)}},xb=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(tf.ALTER,0)}EXTERNAL(){return this.getToken(tf.EXTERNAL,0)}DATA(){return this.getToken(tf.DATA,0)}SOURCE(){return this.getToken(tf.SOURCE,0)}object_ref(){return this.getRuleContext(0,PV)}alter_external_data_source_action(t){return void 0===t?this.getRuleContexts(kb):this.getRuleContext(t,kb)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_alter_external_data_source_stmt}accept(t){return t.visitAlter_external_data_source_stmt?t.visitAlter_external_data_source_stmt(this):t.visitChildren(this)}},kb=class extends ga{constructor(t,e){super(t,e)}alter_table_set_table_setting_uncompat(){return this.getRuleContext(0,SW)}alter_table_set_table_setting_compat(){return this.getRuleContext(0,lW)}alter_table_reset_table_setting(){return this.getRuleContext(0,OW)}get ruleIndex(){return tf.RULE_alter_external_data_source_action}accept(t){return t.visitAlter_external_data_source_action?t.visitAlter_external_data_source_action(this):t.visitChildren(this)}},Hb=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(tf.DROP,0)}EXTERNAL(){return this.getToken(tf.EXTERNAL,0)}DATA(){return this.getToken(tf.DATA,0)}SOURCE(){return this.getToken(tf.SOURCE,0)}object_ref(){return this.getRuleContext(0,PV)}IF(){return this.getToken(tf.IF,0)}EXISTS(){return this.getToken(tf.EXISTS,0)}get ruleIndex(){return tf.RULE_drop_external_data_source_stmt}accept(t){return t.visitDrop_external_data_source_stmt?t.visitDrop_external_data_source_stmt(this):t.visitChildren(this)}},Gb=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(tf.CREATE,0)}VIEW(){return this.getToken(tf.VIEW,0)}object_ref(){return this.getRuleContext(0,PV)}with_table_settings(){return this.getRuleContext(0,$b)}AS(){return this.getToken(tf.AS,0)}select_stmt(){return this.getRuleContext(0,Tw)}get ruleIndex(){return tf.RULE_create_view_stmt}accept(t){return t.visitCreate_view_stmt?t.visitCreate_view_stmt(this):t.visitChildren(this)}},Fb=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(tf.DROP,0)}VIEW(){return this.getToken(tf.VIEW,0)}object_ref(){return this.getRuleContext(0,PV)}get ruleIndex(){return tf.RULE_drop_view_stmt}accept(t){return t.visitDrop_view_stmt?t.visitDrop_view_stmt(this):t.visitChildren(this)}},vb=class extends ga{constructor(t,e){super(t,e)}UPSERT(){return this.getToken(tf.UPSERT,0)}OBJECT(){return this.getToken(tf.OBJECT,0)}object_ref(){return this.getRuleContext(0,PV)}LPAREN(){return this.getToken(tf.LPAREN,0)}TYPE(){return this.getToken(tf.TYPE,0)}object_type_ref(){return this.getRuleContext(0,Jb)}RPAREN(){return this.getToken(tf.RPAREN,0)}create_object_features(){return this.getRuleContext(0,yb)}get ruleIndex(){return tf.RULE_upsert_object_stmt}accept(t){return t.visitUpsert_object_stmt?t.visitUpsert_object_stmt(this):t.visitChildren(this)}},Bb=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(tf.CREATE,0)}OBJECT(){return this.getToken(tf.OBJECT,0)}object_ref(){return this.getRuleContext(0,PV)}LPAREN(){return this.getToken(tf.LPAREN,0)}TYPE(){return this.getToken(tf.TYPE,0)}object_type_ref(){return this.getRuleContext(0,Jb)}RPAREN(){return this.getToken(tf.RPAREN,0)}IF(){return this.getToken(tf.IF,0)}NOT(){return this.getToken(tf.NOT,0)}EXISTS(){return this.getToken(tf.EXISTS,0)}create_object_features(){return this.getRuleContext(0,yb)}get ruleIndex(){return tf.RULE_create_object_stmt}accept(t){return t.visitCreate_object_stmt?t.visitCreate_object_stmt(this):t.visitChildren(this)}},yb=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(tf.WITH,0)}object_features(){return this.getRuleContext(0,Qb)}get ruleIndex(){return tf.RULE_create_object_features}accept(t){return t.visitCreate_object_features?t.visitCreate_object_features(this):t.visitChildren(this)}},fb=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(tf.ALTER,0)}OBJECT(){return this.getToken(tf.OBJECT,0)}object_ref(){return this.getRuleContext(0,PV)}LPAREN(){return this.getToken(tf.LPAREN,0)}TYPE(){return this.getToken(tf.TYPE,0)}object_type_ref(){return this.getRuleContext(0,Jb)}RPAREN(){return this.getToken(tf.RPAREN,0)}alter_object_features(){return this.getRuleContext(0,Yb)}get ruleIndex(){return tf.RULE_alter_object_stmt}accept(t){return t.visitAlter_object_stmt?t.visitAlter_object_stmt(this):t.visitChildren(this)}},Yb=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(tf.SET,0)}object_features(){return this.getRuleContext(0,Qb)}get ruleIndex(){return tf.RULE_alter_object_features}accept(t){return t.visitAlter_object_features?t.visitAlter_object_features(this):t.visitChildren(this)}},wb=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(tf.DROP,0)}OBJECT(){return this.getToken(tf.OBJECT,0)}object_ref(){return this.getRuleContext(0,PV)}LPAREN(){return this.getToken(tf.LPAREN,0)}TYPE(){return this.getToken(tf.TYPE,0)}object_type_ref(){return this.getRuleContext(0,Jb)}RPAREN(){return this.getToken(tf.RPAREN,0)}IF(){return this.getToken(tf.IF,0)}EXISTS(){return this.getToken(tf.EXISTS,0)}drop_object_features(){return this.getRuleContext(0,bb)}get ruleIndex(){return tf.RULE_drop_object_stmt}accept(t){return t.visitDrop_object_stmt?t.visitDrop_object_stmt(this):t.visitChildren(this)}},bb=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(tf.WITH,0)}object_features(){return this.getRuleContext(0,Qb)}get ruleIndex(){return tf.RULE_drop_object_features}accept(t){return t.visitDrop_object_features?t.visitDrop_object_features(this):t.visitChildren(this)}},Wb=class extends ga{constructor(t,e){super(t,e)}id_or_type(){return this.getRuleContext(0,tK)}bind_parameter(){return this.getRuleContext(0,LY)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_object_feature_value}accept(t){return t.visitObject_feature_value?t.visitObject_feature_value(this):t.visitChildren(this)}},Vb=class extends ga{constructor(t,e){super(t,e)}an_id_or_type(){return this.getRuleContext(0,wX)}EQUALS(){return this.getToken(tf.EQUALS,0)}object_feature_value(){return this.getRuleContext(0,Wb)}get ruleIndex(){return tf.RULE_object_feature_kv}accept(t){return t.visitObject_feature_kv?t.visitObject_feature_kv(this):t.visitChildren(this)}},Xb=class extends ga{constructor(t,e){super(t,e)}an_id_or_type(){return this.getRuleContext(0,wX)}get ruleIndex(){return tf.RULE_object_feature_flag}accept(t){return t.visitObject_feature_flag?t.visitObject_feature_flag(this):t.visitChildren(this)}},Kb=class extends ga{constructor(t,e){super(t,e)}object_feature_kv(){return this.getRuleContext(0,Vb)}object_feature_flag(){return this.getRuleContext(0,Xb)}get ruleIndex(){return tf.RULE_object_feature}accept(t){return t.visitObject_feature?t.visitObject_feature(this):t.visitChildren(this)}},Qb=class extends ga{constructor(t,e){super(t,e)}object_feature(t){return void 0===t?this.getRuleContexts(Kb):this.getRuleContext(t,Kb)}LPAREN(){return this.getToken(tf.LPAREN,0)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_object_features}accept(t){return t.visitObject_features?t.visitObject_features(this):t.visitChildren(this)}},Jb=class extends ga{constructor(t,e){super(t,e)}an_id_or_type(){return this.getRuleContext(0,wX)}get ruleIndex(){return tf.RULE_object_type_ref}accept(t){return t.visitObject_type_ref?t.visitObject_type_ref(this):t.visitChildren(this)}},Zb=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(tf.CREATE,0)}simple_table_ref(){return this.getRuleContext(0,dV)}LPAREN(){return this.getToken(tf.LPAREN,0)}create_table_entry(t){return void 0===t?this.getRuleContexts(qb):this.getRuleContext(t,qb)}RPAREN(){return this.getToken(tf.RPAREN,0)}TABLE(){return this.getToken(tf.TABLE,0)}TABLESTORE(){return this.getToken(tf.TABLESTORE,0)}EXTERNAL(){return this.getToken(tf.EXTERNAL,0)}TEMP(){return this.getToken(tf.TEMP,0)}TEMPORARY(){return this.getToken(tf.TEMPORARY,0)}OR(){return this.getToken(tf.OR,0)}REPLACE(){return this.getToken(tf.REPLACE,0)}IF(){return this.getToken(tf.IF,0)}NOT(){return this.getToken(tf.NOT,0)}EXISTS(){return this.getToken(tf.EXISTS,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}table_inherits(){return this.getRuleContext(0,jb)}table_partition_by(){return this.getRuleContext(0,zb)}with_table_settings(){return this.getRuleContext(0,$b)}table_tablestore(){return this.getRuleContext(0,tW)}table_as_source(){return this.getRuleContext(0,sW)}get ruleIndex(){return tf.RULE_create_table_stmt}accept(t){return t.visitCreate_table_stmt?t.visitCreate_table_stmt(this):t.visitChildren(this)}},qb=class extends ga{constructor(t,e){super(t,e)}column_schema(){return this.getRuleContext(0,MW)}table_constraint(){return this.getRuleContext(0,DW)}table_index(){return this.getRuleContext(0,pW)}family_entry(){return this.getRuleContext(0,YW)}changefeed(){return this.getRuleContext(0,HW)}an_id_schema(){return this.getRuleContext(0,bX)}get ruleIndex(){return tf.RULE_create_table_entry}accept(t){return t.visitCreate_table_entry?t.visitCreate_table_entry(this):t.visitChildren(this)}},jb=class extends ga{constructor(t,e){super(t,e)}INHERITS(){return this.getToken(tf.INHERITS,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}simple_table_ref_core(t){return void 0===t?this.getRuleContexts(MV):this.getRuleContext(t,MV)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_table_inherits}accept(t){return t.visitTable_inherits?t.visitTable_inherits(this):t.visitChildren(this)}},zb=class extends ga{constructor(t,e){super(t,e)}PARTITION(){return this.getToken(tf.PARTITION,0)}BY(){return this.getToken(tf.BY,0)}HASH(){return this.getToken(tf.HASH,0)}pure_column_list(){return this.getRuleContext(0,iY)}get ruleIndex(){return tf.RULE_table_partition_by}accept(t){return t.visitTable_partition_by?t.visitTable_partition_by(this):t.visitChildren(this)}},$b=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(tf.WITH,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}table_settings_entry(t){return void 0===t?this.getRuleContexts(eW):this.getRuleContext(t,eW)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_with_table_settings}accept(t){return t.visitWith_table_settings?t.visitWith_table_settings(this):t.visitChildren(this)}},tW=class extends ga{constructor(t,e){super(t,e)}TABLESTORE(){return this.getToken(tf.TABLESTORE,0)}simple_table_ref_core(){return this.getRuleContext(0,MV)}get ruleIndex(){return tf.RULE_table_tablestore}accept(t){return t.visitTable_tablestore?t.visitTable_tablestore(this):t.visitChildren(this)}},eW=class extends ga{constructor(t,e){super(t,e)}an_id(){return this.getRuleContext(0,YX)}EQUALS(){return this.getToken(tf.EQUALS,0)}table_setting_value(){return this.getRuleContext(0,fW)}get ruleIndex(){return tf.RULE_table_settings_entry}accept(t){return t.visitTable_settings_entry?t.visitTable_settings_entry(this):t.visitChildren(this)}},sW=class extends ga{constructor(t,e){super(t,e)}AS(){return this.getToken(tf.AS,0)}values_source(){return this.getRuleContext(0,Ub)}get ruleIndex(){return tf.RULE_table_as_source}accept(t){return t.visitTable_as_source?t.visitTable_as_source(this):t.visitChildren(this)}},aW=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(tf.ALTER,0)}TABLE(){return this.getToken(tf.TABLE,0)}simple_table_ref(){return this.getRuleContext(0,dV)}alter_table_action(t){return void 0===t?this.getRuleContexts(rW):this.getRuleContext(t,rW)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_alter_table_stmt}accept(t){return t.visitAlter_table_stmt?t.visitAlter_table_stmt(this):t.visitChildren(this)}},rW=class extends ga{constructor(t,e){super(t,e)}alter_table_add_column(){return this.getRuleContext(0,EW)}alter_table_drop_column(){return this.getRuleContext(0,TW)}alter_table_alter_column(){return this.getRuleContext(0,oW)}alter_table_add_column_family(){return this.getRuleContext(0,RW)}alter_table_alter_column_family(){return this.getRuleContext(0,AW)}alter_table_set_table_setting_uncompat(){return this.getRuleContext(0,SW)}alter_table_set_table_setting_compat(){return this.getRuleContext(0,lW)}alter_table_reset_table_setting(){return this.getRuleContext(0,OW)}alter_table_add_index(){return this.getRuleContext(0,IW)}alter_table_drop_index(){return this.getRuleContext(0,uW)}alter_table_rename_to(){return this.getRuleContext(0,NW)}alter_table_add_changefeed(){return this.getRuleContext(0,CW)}alter_table_alter_changefeed(){return this.getRuleContext(0,_W)}alter_table_drop_changefeed(){return this.getRuleContext(0,PW)}alter_table_rename_index_to(){return this.getRuleContext(0,LW)}get ruleIndex(){return tf.RULE_alter_table_action}accept(t){return t.visitAlter_table_action?t.visitAlter_table_action(this):t.visitChildren(this)}},iW=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(tf.ALTER,0)}EXTERNAL(){return this.getToken(tf.EXTERNAL,0)}TABLE(){return this.getToken(tf.TABLE,0)}simple_table_ref(){return this.getRuleContext(0,dV)}alter_external_table_action(t){return void 0===t?this.getRuleContexts(cW):this.getRuleContext(t,cW)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_alter_external_table_stmt}accept(t){return t.visitAlter_external_table_stmt?t.visitAlter_external_table_stmt(this):t.visitChildren(this)}},cW=class extends ga{constructor(t,e){super(t,e)}alter_table_add_column(){return this.getRuleContext(0,EW)}alter_table_drop_column(){return this.getRuleContext(0,TW)}alter_table_set_table_setting_uncompat(){return this.getRuleContext(0,SW)}alter_table_set_table_setting_compat(){return this.getRuleContext(0,lW)}alter_table_reset_table_setting(){return this.getRuleContext(0,OW)}get ruleIndex(){return tf.RULE_alter_external_table_action}accept(t){return t.visitAlter_external_table_action?t.visitAlter_external_table_action(this):t.visitChildren(this)}},nW=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(tf.ALTER,0)}TABLESTORE(){return this.getToken(tf.TABLESTORE,0)}object_ref(){return this.getRuleContext(0,PV)}alter_table_store_action(t){return void 0===t?this.getRuleContexts(hW):this.getRuleContext(t,hW)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_alter_table_store_stmt}accept(t){return t.visitAlter_table_store_stmt?t.visitAlter_table_store_stmt(this):t.visitChildren(this)}},hW=class extends ga{constructor(t,e){super(t,e)}alter_table_add_column(){return this.getRuleContext(0,EW)}alter_table_drop_column(){return this.getRuleContext(0,TW)}get ruleIndex(){return tf.RULE_alter_table_store_action}accept(t){return t.visitAlter_table_store_action?t.visitAlter_table_store_action(this):t.visitChildren(this)}},EW=class extends ga{constructor(t,e){super(t,e)}ADD(){return this.getToken(tf.ADD,0)}column_schema(){return this.getRuleContext(0,MW)}COLUMN(){return this.getToken(tf.COLUMN,0)}get ruleIndex(){return tf.RULE_alter_table_add_column}accept(t){return t.visitAlter_table_add_column?t.visitAlter_table_add_column(this):t.visitChildren(this)}},TW=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(tf.DROP,0)}an_id(){return this.getRuleContext(0,YX)}COLUMN(){return this.getToken(tf.COLUMN,0)}get ruleIndex(){return tf.RULE_alter_table_drop_column}accept(t){return t.visitAlter_table_drop_column?t.visitAlter_table_drop_column(this):t.visitChildren(this)}},oW=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(tf.ALTER,0)}COLUMN(){return this.getToken(tf.COLUMN,0)}an_id(){return this.getRuleContext(0,YX)}SET(){return this.getToken(tf.SET,0)}family_relation(){return this.getRuleContext(0,dW)}get ruleIndex(){return tf.RULE_alter_table_alter_column}accept(t){return t.visitAlter_table_alter_column?t.visitAlter_table_alter_column(this):t.visitChildren(this)}},RW=class extends ga{constructor(t,e){super(t,e)}ADD(){return this.getToken(tf.ADD,0)}family_entry(){return this.getRuleContext(0,YW)}get ruleIndex(){return tf.RULE_alter_table_add_column_family}accept(t){return t.visitAlter_table_add_column_family?t.visitAlter_table_add_column_family(this):t.visitChildren(this)}},AW=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(tf.ALTER,0)}FAMILY(){return this.getToken(tf.FAMILY,0)}an_id(t){return void 0===t?this.getRuleContexts(YX):this.getRuleContext(t,YX)}SET(){return this.getToken(tf.SET,0)}family_setting_value(){return this.getRuleContext(0,WW)}get ruleIndex(){return tf.RULE_alter_table_alter_column_family}accept(t){return t.visitAlter_table_alter_column_family?t.visitAlter_table_alter_column_family(this):t.visitChildren(this)}},SW=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(tf.SET,0)}an_id(){return this.getRuleContext(0,YX)}table_setting_value(){return this.getRuleContext(0,fW)}get ruleIndex(){return tf.RULE_alter_table_set_table_setting_uncompat}accept(t){return t.visitAlter_table_set_table_setting_uncompat?t.visitAlter_table_set_table_setting_uncompat(this):t.visitChildren(this)}},lW=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(tf.SET,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}alter_table_setting_entry(t){return void 0===t?this.getRuleContexts(yW):this.getRuleContext(t,yW)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_alter_table_set_table_setting_compat}accept(t){return t.visitAlter_table_set_table_setting_compat?t.visitAlter_table_set_table_setting_compat(this):t.visitChildren(this)}},OW=class extends ga{constructor(t,e){super(t,e)}RESET(){return this.getToken(tf.RESET,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}an_id(t){return void 0===t?this.getRuleContexts(YX):this.getRuleContext(t,YX)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_alter_table_reset_table_setting}accept(t){return t.visitAlter_table_reset_table_setting?t.visitAlter_table_reset_table_setting(this):t.visitChildren(this)}},IW=class extends ga{constructor(t,e){super(t,e)}ADD(){return this.getToken(tf.ADD,0)}table_index(){return this.getRuleContext(0,pW)}get ruleIndex(){return tf.RULE_alter_table_add_index}accept(t){return t.visitAlter_table_add_index?t.visitAlter_table_add_index(this):t.visitChildren(this)}},uW=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(tf.DROP,0)}INDEX(){return this.getToken(tf.INDEX,0)}an_id(){return this.getRuleContext(0,YX)}get ruleIndex(){return tf.RULE_alter_table_drop_index}accept(t){return t.visitAlter_table_drop_index?t.visitAlter_table_drop_index(this):t.visitChildren(this)}},NW=class extends ga{constructor(t,e){super(t,e)}RENAME(){return this.getToken(tf.RENAME,0)}TO(){return this.getToken(tf.TO,0)}an_id_table(){return this.getRuleContext(0,KX)}get ruleIndex(){return tf.RULE_alter_table_rename_to}accept(t){return t.visitAlter_table_rename_to?t.visitAlter_table_rename_to(this):t.visitChildren(this)}},LW=class extends ga{constructor(t,e){super(t,e)}RENAME(){return this.getToken(tf.RENAME,0)}INDEX(){return this.getToken(tf.INDEX,0)}an_id(t){return void 0===t?this.getRuleContexts(YX):this.getRuleContext(t,YX)}TO(){return this.getToken(tf.TO,0)}get ruleIndex(){return tf.RULE_alter_table_rename_index_to}accept(t){return t.visitAlter_table_rename_index_to?t.visitAlter_table_rename_index_to(this):t.visitChildren(this)}},CW=class extends ga{constructor(t,e){super(t,e)}ADD(){return this.getToken(tf.ADD,0)}changefeed(){return this.getRuleContext(0,HW)}get ruleIndex(){return tf.RULE_alter_table_add_changefeed}accept(t){return t.visitAlter_table_add_changefeed?t.visitAlter_table_add_changefeed(this):t.visitChildren(this)}},_W=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(tf.ALTER,0)}CHANGEFEED(){return this.getToken(tf.CHANGEFEED,0)}an_id(){return this.getRuleContext(0,YX)}changefeed_alter_settings(){return this.getRuleContext(0,BW)}get ruleIndex(){return tf.RULE_alter_table_alter_changefeed}accept(t){return t.visitAlter_table_alter_changefeed?t.visitAlter_table_alter_changefeed(this):t.visitChildren(this)}},PW=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(tf.DROP,0)}CHANGEFEED(){return this.getToken(tf.CHANGEFEED,0)}an_id(){return this.getRuleContext(0,YX)}get ruleIndex(){return tf.RULE_alter_table_drop_changefeed}accept(t){return t.visitAlter_table_drop_changefeed?t.visitAlter_table_drop_changefeed(this):t.visitChildren(this)}},MW=class extends ga{constructor(t,e){super(t,e)}an_id_schema(){return this.getRuleContext(0,bX)}type_name_or_bind(){return this.getRuleContext(0,qY)}opt_column_constraints(){return this.getRuleContext(0,UW)}family_relation(){return this.getRuleContext(0,dW)}get ruleIndex(){return tf.RULE_column_schema}accept(t){return t.visitColumn_schema?t.visitColumn_schema(this):t.visitChildren(this)}},dW=class extends ga{constructor(t,e){super(t,e)}FAMILY(){return this.getToken(tf.FAMILY,0)}an_id(){return this.getRuleContext(0,YX)}get ruleIndex(){return tf.RULE_family_relation}accept(t){return t.visitFamily_relation?t.visitFamily_relation(this):t.visitChildren(this)}},UW=class extends ga{constructor(t,e){super(t,e)}NULL(){return this.getToken(tf.NULL,0)}DEFAULT(){return this.getToken(tf.DEFAULT,0)}expr(){return this.getRuleContext(0,Ef)}NOT(){return this.getToken(tf.NOT,0)}get ruleIndex(){return tf.RULE_opt_column_constraints}accept(t){return t.visitOpt_column_constraints?t.visitOpt_column_constraints(this):t.visitChildren(this)}},mW=class extends ga{constructor(t,e){super(t,e)}an_id(){return this.getRuleContext(0,YX)}ASC(){return this.getToken(tf.ASC,0)}DESC(){return this.getToken(tf.DESC,0)}get ruleIndex(){return tf.RULE_column_order_by_specification}accept(t){return t.visitColumn_order_by_specification?t.visitColumn_order_by_specification(this):t.visitChildren(this)}},DW=class extends ga{constructor(t,e){super(t,e)}PRIMARY(){return this.getToken(tf.PRIMARY,0)}KEY(){return this.getToken(tf.KEY,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}an_id(t){return void 0===t?this.getRuleContexts(YX):this.getRuleContext(t,YX)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}PARTITION(){return this.getToken(tf.PARTITION,0)}BY(){return this.getToken(tf.BY,0)}ORDER(){return this.getToken(tf.ORDER,0)}column_order_by_specification(t){return void 0===t?this.getRuleContexts(mW):this.getRuleContext(t,mW)}get ruleIndex(){return tf.RULE_table_constraint}accept(t){return t.visitTable_constraint?t.visitTable_constraint(this):t.visitChildren(this)}},pW=class extends ga{constructor(t,e){super(t,e)}INDEX(){return this.getToken(tf.INDEX,0)}an_id(t){return void 0===t?this.getRuleContexts(YX):this.getRuleContext(t,YX)}table_index_type(){return this.getRuleContext(0,gW)}ON(){return this.getToken(tf.ON,0)}LPAREN(t){return void 0===t?this.getTokens(tf.LPAREN):this.getToken(tf.LPAREN,t)}an_id_schema(t){return void 0===t?this.getRuleContexts(bX):this.getRuleContext(t,bX)}RPAREN(t){return void 0===t?this.getTokens(tf.RPAREN):this.getToken(tf.RPAREN,t)}WITH(){return this.getToken(tf.WITH,0)}EQUALS(t){return void 0===t?this.getTokens(tf.EQUALS):this.getToken(tf.EQUALS,t)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}COVER(){return this.getToken(tf.COVER,0)}get ruleIndex(){return tf.RULE_table_index}accept(t){return t.visitTable_index?t.visitTable_index(this):t.visitChildren(this)}},gW=class extends ga{constructor(t,e){super(t,e)}global_index(){return this.getRuleContext(0,xW)}local_index(){return this.getRuleContext(0,kW)}get ruleIndex(){return tf.RULE_table_index_type}accept(t){return t.visitTable_index_type?t.visitTable_index_type(this):t.visitChildren(this)}},xW=class extends ga{constructor(t,e){super(t,e)}GLOBAL(){return this.getToken(tf.GLOBAL,0)}UNIQUE(){return this.getToken(tf.UNIQUE,0)}SYNC(){return this.getToken(tf.SYNC,0)}ASYNC(){return this.getToken(tf.ASYNC,0)}get ruleIndex(){return tf.RULE_global_index}accept(t){return t.visitGlobal_index?t.visitGlobal_index(this):t.visitChildren(this)}},kW=class extends ga{constructor(t,e){super(t,e)}LOCAL(){return this.getToken(tf.LOCAL,0)}get ruleIndex(){return tf.RULE_local_index}accept(t){return t.visitLocal_index?t.visitLocal_index(this):t.visitChildren(this)}},HW=class extends ga{constructor(t,e){super(t,e)}CHANGEFEED(){return this.getToken(tf.CHANGEFEED,0)}an_id(){return this.getRuleContext(0,YX)}WITH(){return this.getToken(tf.WITH,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}changefeed_settings(){return this.getRuleContext(0,GW)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_changefeed}accept(t){return t.visitChangefeed?t.visitChangefeed(this):t.visitChildren(this)}},GW=class extends ga{constructor(t,e){super(t,e)}changefeed_settings_entry(t){return void 0===t?this.getRuleContexts(FW):this.getRuleContext(t,FW)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_changefeed_settings}accept(t){return t.visitChangefeed_settings?t.visitChangefeed_settings(this):t.visitChildren(this)}},FW=class extends ga{constructor(t,e){super(t,e)}an_id(){return this.getRuleContext(0,YX)}EQUALS(){return this.getToken(tf.EQUALS,0)}changefeed_setting_value(){return this.getRuleContext(0,vW)}get ruleIndex(){return tf.RULE_changefeed_settings_entry}accept(t){return t.visitChangefeed_settings_entry?t.visitChangefeed_settings_entry(this):t.visitChildren(this)}},vW=class extends ga{constructor(t,e){super(t,e)}expr(){return this.getRuleContext(0,Ef)}get ruleIndex(){return tf.RULE_changefeed_setting_value}accept(t){return t.visitChangefeed_setting_value?t.visitChangefeed_setting_value(this):t.visitChildren(this)}},BW=class extends ga{constructor(t,e){super(t,e)}DISABLE(){return this.getToken(tf.DISABLE,0)}SET(){return this.getToken(tf.SET,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}changefeed_settings(){return this.getRuleContext(0,GW)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_changefeed_alter_settings}accept(t){return t.visitChangefeed_alter_settings?t.visitChangefeed_alter_settings(this):t.visitChildren(this)}},yW=class extends ga{constructor(t,e){super(t,e)}an_id(){return this.getRuleContext(0,YX)}EQUALS(){return this.getToken(tf.EQUALS,0)}table_setting_value(){return this.getRuleContext(0,fW)}get ruleIndex(){return tf.RULE_alter_table_setting_entry}accept(t){return t.visitAlter_table_setting_entry?t.visitAlter_table_setting_entry(this):t.visitChildren(this)}},fW=class extends ga{constructor(t,e){super(t,e)}id(){return this.getRuleContext(0,xX)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}integer(){return this.getRuleContext(0,uK)}split_boundaries(){return this.getRuleContext(0,VW)}expr(){return this.getRuleContext(0,Ef)}ON(){return this.getToken(tf.ON,0)}an_id(){return this.getRuleContext(0,YX)}AS(){return this.getToken(tf.AS,0)}SECONDS(){return this.getToken(tf.SECONDS,0)}MILLISECONDS(){return this.getToken(tf.MILLISECONDS,0)}MICROSECONDS(){return this.getToken(tf.MICROSECONDS,0)}NANOSECONDS(){return this.getToken(tf.NANOSECONDS,0)}bool_value(){return this.getRuleContext(0,OK)}get ruleIndex(){return tf.RULE_table_setting_value}accept(t){return t.visitTable_setting_value?t.visitTable_setting_value(this):t.visitChildren(this)}},YW=class extends ga{constructor(t,e){super(t,e)}FAMILY(){return this.getToken(tf.FAMILY,0)}an_id(){return this.getRuleContext(0,YX)}family_settings(){return this.getRuleContext(0,wW)}get ruleIndex(){return tf.RULE_family_entry}accept(t){return t.visitFamily_entry?t.visitFamily_entry(this):t.visitChildren(this)}},wW=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(tf.LPAREN,0)}RPAREN(){return this.getToken(tf.RPAREN,0)}family_settings_entry(t){return void 0===t?this.getRuleContexts(bW):this.getRuleContext(t,bW)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_family_settings}accept(t){return t.visitFamily_settings?t.visitFamily_settings(this):t.visitChildren(this)}},bW=class extends ga{constructor(t,e){super(t,e)}an_id(){return this.getRuleContext(0,YX)}EQUALS(){return this.getToken(tf.EQUALS,0)}family_setting_value(){return this.getRuleContext(0,WW)}get ruleIndex(){return tf.RULE_family_settings_entry}accept(t){return t.visitFamily_settings_entry?t.visitFamily_settings_entry(this):t.visitChildren(this)}},WW=class extends ga{constructor(t,e){super(t,e)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_family_setting_value}accept(t){return t.visitFamily_setting_value?t.visitFamily_setting_value(this):t.visitChildren(this)}},VW=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(tf.LPAREN,0)}literal_value_list(t){return void 0===t?this.getRuleContexts(XW):this.getRuleContext(t,XW)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_split_boundaries}accept(t){return t.visitSplit_boundaries?t.visitSplit_boundaries(this):t.visitChildren(this)}},XW=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(tf.LPAREN,0)}literal_value(t){return void 0===t?this.getRuleContexts(NY):this.getRuleContext(t,NY)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_literal_value_list}accept(t){return t.visitLiteral_value_list?t.visitLiteral_value_list(this):t.visitChildren(this)}},KW=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(tf.DROP,0)}simple_table_ref(){return this.getRuleContext(0,dV)}TABLE(){return this.getToken(tf.TABLE,0)}TABLESTORE(){return this.getToken(tf.TABLESTORE,0)}EXTERNAL(){return this.getToken(tf.EXTERNAL,0)}IF(){return this.getToken(tf.IF,0)}EXISTS(){return this.getToken(tf.EXISTS,0)}get ruleIndex(){return tf.RULE_drop_table_stmt}accept(t){return t.visitDrop_table_stmt?t.visitDrop_table_stmt(this):t.visitChildren(this)}},QW=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(tf.CREATE,0)}USER(){return this.getToken(tf.USER,0)}role_name(){return this.getRuleContext(0,zW)}create_user_option(){return this.getRuleContext(0,$W)}get ruleIndex(){return tf.RULE_create_user_stmt}accept(t){return t.visitCreate_user_stmt?t.visitCreate_user_stmt(this):t.visitChildren(this)}},JW=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(tf.ALTER,0)}USER(){return this.getToken(tf.USER,0)}role_name(t){return void 0===t?this.getRuleContexts(zW):this.getRuleContext(t,zW)}create_user_option(){return this.getRuleContext(0,$W)}RENAME(){return this.getToken(tf.RENAME,0)}TO(){return this.getToken(tf.TO,0)}WITH(){return this.getToken(tf.WITH,0)}get ruleIndex(){return tf.RULE_alter_user_stmt}accept(t){return t.visitAlter_user_stmt?t.visitAlter_user_stmt(this):t.visitChildren(this)}},ZW=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(tf.CREATE,0)}GROUP(){return this.getToken(tf.GROUP,0)}role_name(t){return void 0===t?this.getRuleContexts(zW):this.getRuleContext(t,zW)}WITH(){return this.getToken(tf.WITH,0)}USER(){return this.getToken(tf.USER,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_create_group_stmt}accept(t){return t.visitCreate_group_stmt?t.visitCreate_group_stmt(this):t.visitChildren(this)}},qW=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(tf.ALTER,0)}GROUP(){return this.getToken(tf.GROUP,0)}role_name(t){return void 0===t?this.getRuleContexts(zW):this.getRuleContext(t,zW)}USER(){return this.getToken(tf.USER,0)}RENAME(){return this.getToken(tf.RENAME,0)}TO(){return this.getToken(tf.TO,0)}ADD(){return this.getToken(tf.ADD,0)}DROP(){return this.getToken(tf.DROP,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_alter_group_stmt}accept(t){return t.visitAlter_group_stmt?t.visitAlter_group_stmt(this):t.visitChildren(this)}},jW=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(tf.DROP,0)}role_name(t){return void 0===t?this.getRuleContexts(zW):this.getRuleContext(t,zW)}USER(){return this.getToken(tf.USER,0)}GROUP(){return this.getToken(tf.GROUP,0)}IF(){return this.getToken(tf.IF,0)}EXISTS(){return this.getToken(tf.EXISTS,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_drop_role_stmt}accept(t){return t.visitDrop_role_stmt?t.visitDrop_role_stmt(this):t.visitChildren(this)}},zW=class extends ga{constructor(t,e){super(t,e)}an_id_or_type(){return this.getRuleContext(0,wX)}bind_parameter(){return this.getRuleContext(0,LY)}get ruleIndex(){return tf.RULE_role_name}accept(t){return t.visitRole_name?t.visitRole_name(this):t.visitChildren(this)}},$W=class extends ga{constructor(t,e){super(t,e)}PASSWORD(){return this.getToken(tf.PASSWORD,0)}expr(){return this.getRuleContext(0,Ef)}ENCRYPTED(){return this.getToken(tf.ENCRYPTED,0)}get ruleIndex(){return tf.RULE_create_user_option}accept(t){return t.visitCreate_user_option?t.visitCreate_user_option(this):t.visitChildren(this)}},tV=class extends ga{constructor(t,e){super(t,e)}GRANT(t){return void 0===t?this.getTokens(tf.GRANT):this.getToken(tf.GRANT,t)}permission_name_target(){return this.getRuleContext(0,rV)}ON(){return this.getToken(tf.ON,0)}an_id_schema(t){return void 0===t?this.getRuleContexts(bX):this.getRuleContext(t,bX)}TO(){return this.getToken(tf.TO,0)}role_name(t){return void 0===t?this.getRuleContexts(zW):this.getRuleContext(t,zW)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}WITH(){return this.getToken(tf.WITH,0)}OPTION(){return this.getToken(tf.OPTION,0)}get ruleIndex(){return tf.RULE_grant_permissions_stmt}accept(t){return t.visitGrant_permissions_stmt?t.visitGrant_permissions_stmt(this):t.visitChildren(this)}},eV=class extends ga{constructor(t,e){super(t,e)}REVOKE(){return this.getToken(tf.REVOKE,0)}permission_name_target(){return this.getRuleContext(0,rV)}ON(){return this.getToken(tf.ON,0)}an_id_schema(t){return void 0===t?this.getRuleContexts(bX):this.getRuleContext(t,bX)}FROM(){return this.getToken(tf.FROM,0)}role_name(t){return void 0===t?this.getRuleContexts(zW):this.getRuleContext(t,zW)}GRANT(){return this.getToken(tf.GRANT,0)}OPTION(){return this.getToken(tf.OPTION,0)}FOR(){return this.getToken(tf.FOR,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_revoke_permissions_stmt}accept(t){return t.visitRevoke_permissions_stmt?t.visitRevoke_permissions_stmt(this):t.visitChildren(this)}},sV=class extends ga{constructor(t,e){super(t,e)}CONNECT(){return this.getToken(tf.CONNECT,0)}LIST(){return this.getToken(tf.LIST,0)}INSERT(){return this.getToken(tf.INSERT,0)}MANAGE(){return this.getToken(tf.MANAGE,0)}DROP(){return this.getToken(tf.DROP,0)}GRANT(){return this.getToken(tf.GRANT,0)}MODIFY(){return this.getToken(tf.MODIFY,0)}TABLES(){return this.getToken(tf.TABLES,0)}ATTRIBUTES(){return this.getToken(tf.ATTRIBUTES,0)}ROW(){return this.getToken(tf.ROW,0)}UPDATE(){return this.getToken(tf.UPDATE,0)}ERASE(){return this.getToken(tf.ERASE,0)}SCHEMA(){return this.getToken(tf.SCHEMA,0)}REMOVE(){return this.getToken(tf.REMOVE,0)}DESCRIBE(){return this.getToken(tf.DESCRIBE,0)}ALTER(){return this.getToken(tf.ALTER,0)}SELECT(){return this.getToken(tf.SELECT,0)}USE(){return this.getToken(tf.USE,0)}FULL(){return this.getToken(tf.FULL,0)}LEGACY(){return this.getToken(tf.LEGACY,0)}CREATE(){return this.getToken(tf.CREATE,0)}DIRECTORY(){return this.getToken(tf.DIRECTORY,0)}TABLE(){return this.getToken(tf.TABLE,0)}QUEUE(){return this.getToken(tf.QUEUE,0)}get ruleIndex(){return tf.RULE_permission_id}accept(t){return t.visitPermission_id?t.visitPermission_id(this):t.visitChildren(this)}},aV=class extends ga{constructor(t,e){super(t,e)}permission_id(){return this.getRuleContext(0,sV)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_permission_name}accept(t){return t.visitPermission_name?t.visitPermission_name(this):t.visitChildren(this)}},rV=class extends ga{constructor(t,e){super(t,e)}permission_name(t){return void 0===t?this.getRuleContexts(aV):this.getRuleContext(t,aV)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}ALL(){return this.getToken(tf.ALL,0)}PRIVILEGES(){return this.getToken(tf.PRIVILEGES,0)}get ruleIndex(){return tf.RULE_permission_name_target}accept(t){return t.visitPermission_name_target?t.visitPermission_name_target(this):t.visitChildren(this)}},iV=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(tf.CREATE,0)}ASYNC(){return this.getToken(tf.ASYNC,0)}REPLICATION(){return this.getToken(tf.REPLICATION,0)}object_ref(){return this.getRuleContext(0,PV)}FOR(){return this.getToken(tf.FOR,0)}replication_target(t){return void 0===t?this.getRuleContexts(cV):this.getRuleContext(t,cV)}WITH(){return this.getToken(tf.WITH,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}replication_settings(){return this.getRuleContext(0,nV)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_create_replication_stmt}accept(t){return t.visitCreate_replication_stmt?t.visitCreate_replication_stmt(this):t.visitChildren(this)}},cV=class extends ga{constructor(t,e){super(t,e)}object_ref(){return this.getRuleContext(0,PV)}replication_name(){return this.getRuleContext(0,PK)}get ruleIndex(){return tf.RULE_replication_target}accept(t){return t.visitReplication_target?t.visitReplication_target(this):t.visitChildren(this)}},nV=class extends ga{constructor(t,e){super(t,e)}replication_settings_entry(t){return void 0===t?this.getRuleContexts(hV):this.getRuleContext(t,hV)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_replication_settings}accept(t){return t.visitReplication_settings?t.visitReplication_settings(this):t.visitChildren(this)}},hV=class extends ga{constructor(t,e){super(t,e)}an_id(){return this.getRuleContext(0,YX)}EQUALS(){return this.getToken(tf.EQUALS,0)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_replication_settings_entry}accept(t){return t.visitReplication_settings_entry?t.visitReplication_settings_entry(this):t.visitChildren(this)}},EV=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(tf.ALTER,0)}ASYNC(){return this.getToken(tf.ASYNC,0)}REPLICATION(){return this.getToken(tf.REPLICATION,0)}object_ref(){return this.getRuleContext(0,PV)}alter_replication_action(t){return void 0===t?this.getRuleContexts(TV):this.getRuleContext(t,TV)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_alter_replication_stmt}accept(t){return t.visitAlter_replication_stmt?t.visitAlter_replication_stmt(this):t.visitChildren(this)}},TV=class extends ga{constructor(t,e){super(t,e)}alter_replication_set_setting(){return this.getRuleContext(0,oV)}get ruleIndex(){return tf.RULE_alter_replication_action}accept(t){return t.visitAlter_replication_action?t.visitAlter_replication_action(this):t.visitChildren(this)}},oV=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(tf.SET,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}replication_settings(){return this.getRuleContext(0,nV)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_alter_replication_set_setting}accept(t){return t.visitAlter_replication_set_setting?t.visitAlter_replication_set_setting(this):t.visitChildren(this)}},RV=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(tf.DROP,0)}ASYNC(){return this.getToken(tf.ASYNC,0)}REPLICATION(){return this.getToken(tf.REPLICATION,0)}object_ref(){return this.getRuleContext(0,PV)}CASCADE(){return this.getToken(tf.CASCADE,0)}get ruleIndex(){return tf.RULE_drop_replication_stmt}accept(t){return t.visitDrop_replication_stmt?t.visitDrop_replication_stmt(this):t.visitChildren(this)}},AV=class extends ga{constructor(t,e){super(t,e)}opt_bind_parameter(t){return void 0===t?this.getRuleContexts(CY):this.getRuleContext(t,CY)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_action_or_subquery_args}accept(t){return t.visitAction_or_subquery_args?t.visitAction_or_subquery_args(this):t.visitChildren(this)}},SV=class extends ga{constructor(t,e){super(t,e)}DEFINE(t){return void 0===t?this.getTokens(tf.DEFINE):this.getToken(tf.DEFINE,t)}bind_parameter(){return this.getRuleContext(0,LY)}LPAREN(){return this.getToken(tf.LPAREN,0)}RPAREN(){return this.getToken(tf.RPAREN,0)}AS(){return this.getToken(tf.AS,0)}define_action_or_subquery_body(){return this.getRuleContext(0,lV)}END(){return this.getToken(tf.END,0)}ACTION(){return this.getToken(tf.ACTION,0)}SUBQUERY(){return this.getToken(tf.SUBQUERY,0)}action_or_subquery_args(){return this.getRuleContext(0,AV)}get ruleIndex(){return tf.RULE_define_action_or_subquery_stmt}accept(t){return t.visitDefine_action_or_subquery_stmt?t.visitDefine_action_or_subquery_stmt(this):t.visitChildren(this)}},lV=class extends ga{constructor(t,e){super(t,e)}SEMICOLON(t){return void 0===t?this.getTokens(tf.SEMICOLON):this.getToken(tf.SEMICOLON,t)}sql_stmt_core(t){return void 0===t?this.getRuleContexts(hf):this.getRuleContext(t,hf)}get ruleIndex(){return tf.RULE_define_action_or_subquery_body}accept(t){return t.visitDefine_action_or_subquery_body?t.visitDefine_action_or_subquery_body(this):t.visitChildren(this)}},OV=class extends ga{constructor(t,e){super(t,e)}IF(){return this.getToken(tf.IF,0)}expr(){return this.getRuleContext(0,Ef)}do_stmt(t){return void 0===t?this.getRuleContexts(iw):this.getRuleContext(t,iw)}EVALUATE(){return this.getToken(tf.EVALUATE,0)}ELSE(){return this.getToken(tf.ELSE,0)}get ruleIndex(){return tf.RULE_if_stmt}accept(t){return t.visitIf_stmt?t.visitIf_stmt(this):t.visitChildren(this)}},IV=class extends ga{constructor(t,e){super(t,e)}FOR(){return this.getToken(tf.FOR,0)}bind_parameter(){return this.getRuleContext(0,LY)}IN(){return this.getToken(tf.IN,0)}expr(){return this.getRuleContext(0,Ef)}do_stmt(t){return void 0===t?this.getRuleContexts(iw):this.getRuleContext(t,iw)}EVALUATE(){return this.getToken(tf.EVALUATE,0)}PARALLEL(){return this.getToken(tf.PARALLEL,0)}ELSE(){return this.getToken(tf.ELSE,0)}get ruleIndex(){return tf.RULE_for_stmt}accept(t){return t.visitFor_stmt?t.visitFor_stmt(this):t.visitChildren(this)}},uV=class extends ga{constructor(t,e){super(t,e)}table_key(){return this.getRuleContext(0,NV)}an_id_expr(){return this.getRuleContext(0,WX)}LPAREN(){return this.getToken(tf.LPAREN,0)}RPAREN(){return this.getToken(tf.RPAREN,0)}bind_parameter(){return this.getRuleContext(0,LY)}cluster_expr(){return this.getRuleContext(0,$X)}DOT(){return this.getToken(tf.DOT,0)}AT(){return this.getToken(tf.AT,0)}table_hints(){return this.getRuleContext(0,CV)}table_arg(t){return void 0===t?this.getRuleContexts(LV):this.getRuleContext(t,LV)}VIEW(){return this.getToken(tf.VIEW,0)}view_name(){return this.getRuleContext(0,jX)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}expr_list(){return this.getRuleContext(0,rY)}get ruleIndex(){return tf.RULE_table_ref}accept(t){return t.visitTable_ref?t.visitTable_ref(this):t.visitChildren(this)}},NV=class extends ga{constructor(t,e){super(t,e)}id_table_or_type(){return this.getRuleContext(0,aK)}VIEW(){return this.getToken(tf.VIEW,0)}view_name(){return this.getRuleContext(0,jX)}get ruleIndex(){return tf.RULE_table_key}accept(t){return t.visitTable_key?t.visitTable_key(this):t.visitChildren(this)}},LV=class extends ga{constructor(t,e){super(t,e)}named_expr(){return this.getRuleContext(0,RY)}AT(){return this.getToken(tf.AT,0)}VIEW(){return this.getToken(tf.VIEW,0)}view_name(){return this.getRuleContext(0,jX)}get ruleIndex(){return tf.RULE_table_arg}accept(t){return t.visitTable_arg?t.visitTable_arg(this):t.visitChildren(this)}},CV=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(tf.WITH,0)}table_hint(t){return void 0===t?this.getRuleContexts(_V):this.getRuleContext(t,_V)}LPAREN(){return this.getToken(tf.LPAREN,0)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_table_hints}accept(t){return t.visitTable_hints?t.visitTable_hints(this):t.visitChildren(this)}},_V=class extends ga{constructor(t,e){super(t,e)}an_id_hint(){return this.getRuleContext(0,JX)}EQUALS(){return this.getToken(tf.EQUALS,0)}type_name_tag(t){return void 0===t?this.getRuleContexts(DY):this.getRuleContext(t,DY)}LPAREN(){return this.getToken(tf.LPAREN,0)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}type_name_or_bind(){return this.getRuleContext(0,qY)}SCHEMA(){return this.getToken(tf.SCHEMA,0)}COLUMNS(){return this.getToken(tf.COLUMNS,0)}struct_arg_positional(t){return void 0===t?this.getRuleContexts(gY):this.getRuleContext(t,gY)}get ruleIndex(){return tf.RULE_table_hint}accept(t){return t.visitTable_hint?t.visitTable_hint(this):t.visitChildren(this)}},PV=class extends ga{constructor(t,e){super(t,e)}id_or_at(){return this.getRuleContext(0,sK)}cluster_expr(){return this.getRuleContext(0,$X)}DOT(){return this.getToken(tf.DOT,0)}get ruleIndex(){return tf.RULE_object_ref}accept(t){return t.visitObject_ref?t.visitObject_ref(this):t.visitChildren(this)}},MV=class extends ga{constructor(t,e){super(t,e)}object_ref(){return this.getRuleContext(0,PV)}bind_parameter(){return this.getRuleContext(0,LY)}AT(){return this.getToken(tf.AT,0)}get ruleIndex(){return tf.RULE_simple_table_ref_core}accept(t){return t.visitSimple_table_ref_core?t.visitSimple_table_ref_core(this):t.visitChildren(this)}},dV=class extends ga{constructor(t,e){super(t,e)}simple_table_ref_core(){return this.getRuleContext(0,MV)}table_hints(){return this.getRuleContext(0,CV)}get ruleIndex(){return tf.RULE_simple_table_ref}accept(t){return t.visitSimple_table_ref?t.visitSimple_table_ref(this):t.visitChildren(this)}},UV=class extends ga{constructor(t,e){super(t,e)}simple_table_ref(){return this.getRuleContext(0,dV)}ERASE(){return this.getToken(tf.ERASE,0)}BY(){return this.getToken(tf.BY,0)}pure_column_list(){return this.getRuleContext(0,iY)}get ruleIndex(){return tf.RULE_into_simple_table_ref}accept(t){return t.visitInto_simple_table_ref?t.visitInto_simple_table_ref(this):t.visitChildren(this)}},mV=class extends ga{constructor(t,e){super(t,e)}DELETE(){return this.getToken(tf.DELETE,0)}FROM(){return this.getToken(tf.FROM,0)}simple_table_ref(){return this.getRuleContext(0,dV)}where_expr(){return this.getRuleContext(0,MK)}ON(){return this.getToken(tf.ON,0)}into_values_source(){return this.getRuleContext(0,Mb)}returning_columns_list(){return this.getRuleContext(0,Cb)}get ruleIndex(){return tf.RULE_delete_stmt}accept(t){return t.visitDelete_stmt?t.visitDelete_stmt(this):t.visitChildren(this)}},DV=class extends ga{constructor(t,e){super(t,e)}UPDATE(){return this.getToken(tf.UPDATE,0)}simple_table_ref(){return this.getRuleContext(0,dV)}SET(){return this.getToken(tf.SET,0)}set_clause_choice(){return this.getRuleContext(0,pV)}ON(){return this.getToken(tf.ON,0)}into_values_source(){return this.getRuleContext(0,Mb)}returning_columns_list(){return this.getRuleContext(0,Cb)}where_expr(){return this.getRuleContext(0,MK)}get ruleIndex(){return tf.RULE_update_stmt}accept(t){return t.visitUpdate_stmt?t.visitUpdate_stmt(this):t.visitChildren(this)}},pV=class extends ga{constructor(t,e){super(t,e)}set_clause_list(){return this.getRuleContext(0,gV)}multiple_column_assignment(){return this.getRuleContext(0,HV)}get ruleIndex(){return tf.RULE_set_clause_choice}accept(t){return t.visitSet_clause_choice?t.visitSet_clause_choice(this):t.visitChildren(this)}},gV=class extends ga{constructor(t,e){super(t,e)}set_clause(t){return void 0===t?this.getRuleContexts(xV):this.getRuleContext(t,xV)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_set_clause_list}accept(t){return t.visitSet_clause_list?t.visitSet_clause_list(this):t.visitChildren(this)}},xV=class extends ga{constructor(t,e){super(t,e)}set_target(){return this.getRuleContext(0,kV)}EQUALS(){return this.getToken(tf.EQUALS,0)}expr(){return this.getRuleContext(0,Ef)}get ruleIndex(){return tf.RULE_set_clause}accept(t){return t.visitSet_clause?t.visitSet_clause(this):t.visitChildren(this)}},kV=class extends ga{constructor(t,e){super(t,e)}column_name(){return this.getRuleContext(0,hY)}get ruleIndex(){return tf.RULE_set_target}accept(t){return t.visitSet_target?t.visitSet_target(this):t.visitChildren(this)}},HV=class extends ga{constructor(t,e){super(t,e)}set_target_list(){return this.getRuleContext(0,GV)}EQUALS(){return this.getToken(tf.EQUALS,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}simple_values_source(){return this.getRuleContext(0,pb)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_multiple_column_assignment}accept(t){return t.visitMultiple_column_assignment?t.visitMultiple_column_assignment(this):t.visitChildren(this)}},GV=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(tf.LPAREN,0)}set_target(t){return void 0===t?this.getRuleContexts(kV):this.getRuleContext(t,kV)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_set_target_list}accept(t){return t.visitSet_target_list?t.visitSet_target_list(this):t.visitChildren(this)}},FV=class extends ga{constructor(t,e){super(t,e)}CREATE(){return this.getToken(tf.CREATE,0)}TOPIC(){return this.getToken(tf.TOPIC,0)}topic_ref(){return this.getRuleContext(0,rX)}create_topic_entries(){return this.getRuleContext(0,vV)}with_topic_settings(){return this.getRuleContext(0,yV)}get ruleIndex(){return tf.RULE_create_topic_stmt}accept(t){return t.visitCreate_topic_stmt?t.visitCreate_topic_stmt(this):t.visitChildren(this)}},vV=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(tf.LPAREN,0)}create_topic_entry(t){return void 0===t?this.getRuleContexts(BV):this.getRuleContext(t,BV)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_create_topic_entries}accept(t){return t.visitCreate_topic_entries?t.visitCreate_topic_entries(this):t.visitChildren(this)}},BV=class extends ga{constructor(t,e){super(t,e)}topic_create_consumer_entry(){return this.getRuleContext(0,bV)}get ruleIndex(){return tf.RULE_create_topic_entry}accept(t){return t.visitCreate_topic_entry?t.visitCreate_topic_entry(this):t.visitChildren(this)}},yV=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(tf.WITH,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}topic_settings(){return this.getRuleContext(0,jV)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_with_topic_settings}accept(t){return t.visitWith_topic_settings?t.visitWith_topic_settings(this):t.visitChildren(this)}},fV=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(tf.ALTER,0)}TOPIC(){return this.getToken(tf.TOPIC,0)}topic_ref(){return this.getRuleContext(0,rX)}alter_topic_action(t){return void 0===t?this.getRuleContexts(YV):this.getRuleContext(t,YV)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_alter_topic_stmt}accept(t){return t.visitAlter_topic_stmt?t.visitAlter_topic_stmt(this):t.visitChildren(this)}},YV=class extends ga{constructor(t,e){super(t,e)}alter_topic_add_consumer(){return this.getRuleContext(0,wV)}alter_topic_alter_consumer(){return this.getRuleContext(0,WV)}alter_topic_drop_consumer(){return this.getRuleContext(0,XV)}alter_topic_set_settings(){return this.getRuleContext(0,JV)}alter_topic_reset_settings(){return this.getRuleContext(0,ZV)}get ruleIndex(){return tf.RULE_alter_topic_action}accept(t){return t.visitAlter_topic_action?t.visitAlter_topic_action(this):t.visitChildren(this)}},wV=class extends ga{constructor(t,e){super(t,e)}ADD(){return this.getToken(tf.ADD,0)}topic_create_consumer_entry(){return this.getRuleContext(0,bV)}get ruleIndex(){return tf.RULE_alter_topic_add_consumer}accept(t){return t.visitAlter_topic_add_consumer?t.visitAlter_topic_add_consumer(this):t.visitChildren(this)}},bV=class extends ga{constructor(t,e){super(t,e)}CONSUMER(){return this.getToken(tf.CONSUMER,0)}an_id(){return this.getRuleContext(0,YX)}topic_consumer_with_settings(){return this.getRuleContext(0,tX)}get ruleIndex(){return tf.RULE_topic_create_consumer_entry}accept(t){return t.visitTopic_create_consumer_entry?t.visitTopic_create_consumer_entry(this):t.visitChildren(this)}},WV=class extends ga{constructor(t,e){super(t,e)}ALTER(){return this.getToken(tf.ALTER,0)}CONSUMER(){return this.getToken(tf.CONSUMER,0)}topic_consumer_ref(){return this.getRuleContext(0,iX)}alter_topic_alter_consumer_entry(){return this.getRuleContext(0,VV)}get ruleIndex(){return tf.RULE_alter_topic_alter_consumer}accept(t){return t.visitAlter_topic_alter_consumer?t.visitAlter_topic_alter_consumer(this):t.visitChildren(this)}},VV=class extends ga{constructor(t,e){super(t,e)}topic_alter_consumer_set(){return this.getRuleContext(0,KV)}topic_alter_consumer_reset(){return this.getRuleContext(0,QV)}get ruleIndex(){return tf.RULE_alter_topic_alter_consumer_entry}accept(t){return t.visitAlter_topic_alter_consumer_entry?t.visitAlter_topic_alter_consumer_entry(this):t.visitChildren(this)}},XV=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(tf.DROP,0)}CONSUMER(){return this.getToken(tf.CONSUMER,0)}topic_consumer_ref(){return this.getRuleContext(0,iX)}get ruleIndex(){return tf.RULE_alter_topic_drop_consumer}accept(t){return t.visitAlter_topic_drop_consumer?t.visitAlter_topic_drop_consumer(this):t.visitChildren(this)}},KV=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(tf.SET,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}topic_consumer_settings(){return this.getRuleContext(0,eX)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_topic_alter_consumer_set}accept(t){return t.visitTopic_alter_consumer_set?t.visitTopic_alter_consumer_set(this):t.visitChildren(this)}},QV=class extends ga{constructor(t,e){super(t,e)}RESET(){return this.getToken(tf.RESET,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}an_id(t){return void 0===t?this.getRuleContexts(YX):this.getRuleContext(t,YX)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_topic_alter_consumer_reset}accept(t){return t.visitTopic_alter_consumer_reset?t.visitTopic_alter_consumer_reset(this):t.visitChildren(this)}},JV=class extends ga{constructor(t,e){super(t,e)}SET(){return this.getToken(tf.SET,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}topic_settings(){return this.getRuleContext(0,jV)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_alter_topic_set_settings}accept(t){return t.visitAlter_topic_set_settings?t.visitAlter_topic_set_settings(this):t.visitChildren(this)}},ZV=class extends ga{constructor(t,e){super(t,e)}RESET(){return this.getToken(tf.RESET,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}an_id(){return this.getRuleContext(0,YX)}RPAREN(){return this.getToken(tf.RPAREN,0)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}an_id_pure(t){return void 0===t?this.getRuleContexts(ZX):this.getRuleContext(t,ZX)}get ruleIndex(){return tf.RULE_alter_topic_reset_settings}accept(t){return t.visitAlter_topic_reset_settings?t.visitAlter_topic_reset_settings(this):t.visitChildren(this)}},qV=class extends ga{constructor(t,e){super(t,e)}DROP(){return this.getToken(tf.DROP,0)}TOPIC(){return this.getToken(tf.TOPIC,0)}topic_ref(){return this.getRuleContext(0,rX)}get ruleIndex(){return tf.RULE_drop_topic_stmt}accept(t){return t.visitDrop_topic_stmt?t.visitDrop_topic_stmt(this):t.visitChildren(this)}},jV=class extends ga{constructor(t,e){super(t,e)}topic_settings_entry(t){return void 0===t?this.getRuleContexts(zV):this.getRuleContext(t,zV)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_topic_settings}accept(t){return t.visitTopic_settings?t.visitTopic_settings(this):t.visitChildren(this)}},zV=class extends ga{constructor(t,e){super(t,e)}an_id(){return this.getRuleContext(0,YX)}EQUALS(){return this.getToken(tf.EQUALS,0)}topic_setting_value(){return this.getRuleContext(0,$V)}get ruleIndex(){return tf.RULE_topic_settings_entry}accept(t){return t.visitTopic_settings_entry?t.visitTopic_settings_entry(this):t.visitChildren(this)}},$V=class extends ga{constructor(t,e){super(t,e)}expr(){return this.getRuleContext(0,Ef)}get ruleIndex(){return tf.RULE_topic_setting_value}accept(t){return t.visitTopic_setting_value?t.visitTopic_setting_value(this):t.visitChildren(this)}},tX=class extends ga{constructor(t,e){super(t,e)}WITH(){return this.getToken(tf.WITH,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}topic_consumer_settings(){return this.getRuleContext(0,eX)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_topic_consumer_with_settings}accept(t){return t.visitTopic_consumer_with_settings?t.visitTopic_consumer_with_settings(this):t.visitChildren(this)}},eX=class extends ga{constructor(t,e){super(t,e)}topic_consumer_settings_entry(t){return void 0===t?this.getRuleContexts(sX):this.getRuleContext(t,sX)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_topic_consumer_settings}accept(t){return t.visitTopic_consumer_settings?t.visitTopic_consumer_settings(this):t.visitChildren(this)}},sX=class extends ga{constructor(t,e){super(t,e)}an_id(){return this.getRuleContext(0,YX)}EQUALS(){return this.getToken(tf.EQUALS,0)}topic_consumer_setting_value(){return this.getRuleContext(0,aX)}get ruleIndex(){return tf.RULE_topic_consumer_settings_entry}accept(t){return t.visitTopic_consumer_settings_entry?t.visitTopic_consumer_settings_entry(this):t.visitChildren(this)}},aX=class extends ga{constructor(t,e){super(t,e)}expr(){return this.getRuleContext(0,Ef)}get ruleIndex(){return tf.RULE_topic_consumer_setting_value}accept(t){return t.visitTopic_consumer_setting_value?t.visitTopic_consumer_setting_value(this):t.visitChildren(this)}},rX=class extends ga{constructor(t,e){super(t,e)}an_id(){return this.getRuleContext(0,YX)}cluster_expr(){return this.getRuleContext(0,$X)}DOT(){return this.getToken(tf.DOT,0)}get ruleIndex(){return tf.RULE_topic_ref}accept(t){return t.visitTopic_ref?t.visitTopic_ref(this):t.visitChildren(this)}},iX=class extends ga{constructor(t,e){super(t,e)}an_id_pure(){return this.getRuleContext(0,ZX)}get ruleIndex(){return tf.RULE_topic_consumer_ref}accept(t){return t.visitTopic_consumer_ref?t.visitTopic_consumer_ref(this):t.visitChildren(this)}},cX=class extends ga{constructor(t,e){super(t,e)}RESPECT(){return this.getToken(tf.RESPECT,0)}NULLS(){return this.getToken(tf.NULLS,0)}IGNORE(){return this.getToken(tf.IGNORE,0)}get ruleIndex(){return tf.RULE_null_treatment}accept(t){return t.visitNull_treatment?t.visitNull_treatment(this):t.visitChildren(this)}},nX=class extends ga{constructor(t,e){super(t,e)}FILTER(){return this.getToken(tf.FILTER,0)}LPAREN(){return this.getToken(tf.LPAREN,0)}where_expr(){return this.getRuleContext(0,MK)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_filter_clause}accept(t){return t.visitFilter_clause?t.visitFilter_clause(this):t.visitChildren(this)}},hX=class extends ga{constructor(t,e){super(t,e)}window_name(){return this.getRuleContext(0,EX)}window_specification(){return this.getRuleContext(0,SX)}get ruleIndex(){return tf.RULE_window_name_or_specification}accept(t){return t.visitWindow_name_or_specification?t.visitWindow_name_or_specification(this):t.visitChildren(this)}},EX=class extends ga{constructor(t,e){super(t,e)}an_id_window(){return this.getRuleContext(0,XX)}get ruleIndex(){return tf.RULE_window_name}accept(t){return t.visitWindow_name?t.visitWindow_name(this):t.visitChildren(this)}},TX=class extends ga{constructor(t,e){super(t,e)}WINDOW(){return this.getToken(tf.WINDOW,0)}window_definition_list(){return this.getRuleContext(0,oX)}get ruleIndex(){return tf.RULE_window_clause}accept(t){return t.visitWindow_clause?t.visitWindow_clause(this):t.visitChildren(this)}},oX=class extends ga{constructor(t,e){super(t,e)}window_definition(t){return void 0===t?this.getRuleContexts(RX):this.getRuleContext(t,RX)}COMMA(t){return void 0===t?this.getTokens(tf.COMMA):this.getToken(tf.COMMA,t)}get ruleIndex(){return tf.RULE_window_definition_list}accept(t){return t.visitWindow_definition_list?t.visitWindow_definition_list(this):t.visitChildren(this)}},RX=class extends ga{constructor(t,e){super(t,e)}new_window_name(){return this.getRuleContext(0,AX)}AS(){return this.getToken(tf.AS,0)}window_specification(){return this.getRuleContext(0,SX)}get ruleIndex(){return tf.RULE_window_definition}accept(t){return t.visitWindow_definition?t.visitWindow_definition(this):t.visitChildren(this)}},AX=class extends ga{constructor(t,e){super(t,e)}window_name(){return this.getRuleContext(0,EX)}get ruleIndex(){return tf.RULE_new_window_name}accept(t){return t.visitNew_window_name?t.visitNew_window_name(this):t.visitChildren(this)}},SX=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(tf.LPAREN,0)}window_specification_details(){return this.getRuleContext(0,lX)}RPAREN(){return this.getToken(tf.RPAREN,0)}get ruleIndex(){return tf.RULE_window_specification}accept(t){return t.visitWindow_specification?t.visitWindow_specification(this):t.visitChildren(this)}},lX=class extends ga{constructor(t,e){super(t,e)}existing_window_name(){return this.getRuleContext(0,OX)}window_partition_clause(){return this.getRuleContext(0,IX)}window_order_clause(){return this.getRuleContext(0,uX)}window_frame_clause(){return this.getRuleContext(0,NX)}get ruleIndex(){return tf.RULE_window_specification_details}accept(t){return t.visitWindow_specification_details?t.visitWindow_specification_details(this):t.visitChildren(this)}},OX=class extends ga{constructor(t,e){super(t,e)}window_name(){return this.getRuleContext(0,EX)}get ruleIndex(){return tf.RULE_existing_window_name}accept(t){return t.visitExisting_window_name?t.visitExisting_window_name(this):t.visitChildren(this)}},IX=class extends ga{constructor(t,e){super(t,e)}PARTITION(){return this.getToken(tf.PARTITION,0)}BY(){return this.getToken(tf.BY,0)}named_expr_list(){return this.getRuleContext(0,AY)}COMPACT(){return this.getToken(tf.COMPACT,0)}get ruleIndex(){return tf.RULE_window_partition_clause}accept(t){return t.visitWindow_partition_clause?t.visitWindow_partition_clause(this):t.visitChildren(this)}},uX=class extends ga{constructor(t,e){super(t,e)}order_by_clause(){return this.getRuleContext(0,jw)}get ruleIndex(){return tf.RULE_window_order_clause}accept(t){return t.visitWindow_order_clause?t.visitWindow_order_clause(this):t.visitChildren(this)}},NX=class extends ga{constructor(t,e){super(t,e)}window_frame_units(){return this.getRuleContext(0,LX)}window_frame_extent(){return this.getRuleContext(0,CX)}window_frame_exclusion(){return this.getRuleContext(0,MX)}get ruleIndex(){return tf.RULE_window_frame_clause}accept(t){return t.visitWindow_frame_clause?t.visitWindow_frame_clause(this):t.visitChildren(this)}},LX=class extends ga{constructor(t,e){super(t,e)}ROWS(){return this.getToken(tf.ROWS,0)}RANGE(){return this.getToken(tf.RANGE,0)}GROUPS(){return this.getToken(tf.GROUPS,0)}get ruleIndex(){return tf.RULE_window_frame_units}accept(t){return t.visitWindow_frame_units?t.visitWindow_frame_units(this):t.visitChildren(this)}},CX=class extends ga{constructor(t,e){super(t,e)}window_frame_bound(){return this.getRuleContext(0,PX)}window_frame_between(){return this.getRuleContext(0,_X)}get ruleIndex(){return tf.RULE_window_frame_extent}accept(t){return t.visitWindow_frame_extent?t.visitWindow_frame_extent(this):t.visitChildren(this)}},_X=class extends ga{constructor(t,e){super(t,e)}BETWEEN(){return this.getToken(tf.BETWEEN,0)}window_frame_bound(t){return void 0===t?this.getRuleContexts(PX):this.getRuleContext(t,PX)}AND(){return this.getToken(tf.AND,0)}get ruleIndex(){return tf.RULE_window_frame_between}accept(t){return t.visitWindow_frame_between?t.visitWindow_frame_between(this):t.visitChildren(this)}},PX=class extends ga{constructor(t,e){super(t,e)}CURRENT(){return this.getToken(tf.CURRENT,0)}ROW(){return this.getToken(tf.ROW,0)}PRECEDING(){return this.getToken(tf.PRECEDING,0)}FOLLOWING(){return this.getToken(tf.FOLLOWING,0)}expr(){return this.getRuleContext(0,Ef)}UNBOUNDED(){return this.getToken(tf.UNBOUNDED,0)}get ruleIndex(){return tf.RULE_window_frame_bound}accept(t){return t.visitWindow_frame_bound?t.visitWindow_frame_bound(this):t.visitChildren(this)}},MX=class extends ga{constructor(t,e){super(t,e)}EXCLUDE(){return this.getToken(tf.EXCLUDE,0)}CURRENT(){return this.getToken(tf.CURRENT,0)}ROW(){return this.getToken(tf.ROW,0)}GROUP(){return this.getToken(tf.GROUP,0)}TIES(){return this.getToken(tf.TIES,0)}NO(){return this.getToken(tf.NO,0)}OTHERS(){return this.getToken(tf.OTHERS,0)}get ruleIndex(){return tf.RULE_window_frame_exclusion}accept(t){return t.visitWindow_frame_exclusion?t.visitWindow_frame_exclusion(this):t.visitChildren(this)}},dX=class extends ga{constructor(t,e){super(t,e)}USE(){return this.getToken(tf.USE,0)}cluster_expr(){return this.getRuleContext(0,$X)}get ruleIndex(){return tf.RULE_use_stmt}accept(t){return t.visitUse_stmt?t.visitUse_stmt(this):t.visitChildren(this)}},UX=class extends ga{constructor(t,e){super(t,e)}LPAREN(){return this.getToken(tf.LPAREN,0)}select_stmt(){return this.getRuleContext(0,Tw)}RPAREN(){return this.getToken(tf.RPAREN,0)}select_unparenthesized_stmt(){return this.getRuleContext(0,ow)}get ruleIndex(){return tf.RULE_subselect_stmt}accept(t){return t.visitSubselect_stmt?t.visitSubselect_stmt(this):t.visitChildren(this)}},mX=class extends ga{constructor(t,e){super(t,e)}bind_parameter_list(){return this.getRuleContext(0,_Y)}EQUALS(){return this.getToken(tf.EQUALS,0)}expr(){return this.getRuleContext(0,Ef)}subselect_stmt(){return this.getRuleContext(0,UX)}get ruleIndex(){return tf.RULE_named_nodes_stmt}accept(t){return t.visitNamed_nodes_stmt?t.visitNamed_nodes_stmt(this):t.visitChildren(this)}},DX=class extends ga{constructor(t,e){super(t,e)}COMMIT(){return this.getToken(tf.COMMIT,0)}get ruleIndex(){return tf.RULE_commit_stmt}accept(t){return t.visitCommit_stmt?t.visitCommit_stmt(this):t.visitChildren(this)}},pX=class extends ga{constructor(t,e){super(t,e)}ROLLBACK(){return this.getToken(tf.ROLLBACK,0)}get ruleIndex(){return tf.RULE_rollback_stmt}accept(t){return t.visitRollback_stmt?t.visitRollback_stmt(this):t.visitChildren(this)}},gX=class extends ga{constructor(t,e){super(t,e)}ID_PLAIN(){return this.getToken(tf.ID_PLAIN,0)}ID_QUOTED(){return this.getToken(tf.ID_QUOTED,0)}get ruleIndex(){return tf.RULE_identifier}accept(t){return t.visitIdentifier?t.visitIdentifier(this):t.visitChildren(this)}},xX=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,gX)}keyword(){return this.getRuleContext(0,iK)}get ruleIndex(){return tf.RULE_id}accept(t){return t.visitId?t.visitId(this):t.visitChildren(this)}},kX=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,gX)}keyword_compat(){return this.getRuleContext(0,SK)}keyword_expr_uncompat(){return this.getRuleContext(0,cK)}keyword_select_uncompat(){return this.getRuleContext(0,hK)}keyword_in_uncompat(){return this.getRuleContext(0,TK)}keyword_window_uncompat(){return this.getRuleContext(0,oK)}keyword_hint_uncompat(){return this.getRuleContext(0,RK)}get ruleIndex(){return tf.RULE_id_schema}accept(t){return t.visitId_schema?t.visitId_schema(this):t.visitChildren(this)}},HX=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,gX)}keyword_compat(){return this.getRuleContext(0,SK)}keyword_alter_uncompat(){return this.getRuleContext(0,EK)}keyword_in_uncompat(){return this.getRuleContext(0,TK)}keyword_window_uncompat(){return this.getRuleContext(0,oK)}keyword_hint_uncompat(){return this.getRuleContext(0,RK)}get ruleIndex(){return tf.RULE_id_expr}accept(t){return t.visitId_expr?t.visitId_expr(this):t.visitChildren(this)}},GX=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,gX)}keyword_compat(){return this.getRuleContext(0,SK)}keyword_alter_uncompat(){return this.getRuleContext(0,EK)}keyword_window_uncompat(){return this.getRuleContext(0,oK)}keyword_hint_uncompat(){return this.getRuleContext(0,RK)}get ruleIndex(){return tf.RULE_id_expr_in}accept(t){return t.visitId_expr_in?t.visitId_expr_in(this):t.visitChildren(this)}},FX=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,gX)}keyword_compat(){return this.getRuleContext(0,SK)}keyword_expr_uncompat(){return this.getRuleContext(0,cK)}keyword_table_uncompat(){return this.getRuleContext(0,nK)}keyword_select_uncompat(){return this.getRuleContext(0,hK)}keyword_alter_uncompat(){return this.getRuleContext(0,EK)}keyword_in_uncompat(){return this.getRuleContext(0,TK)}keyword_hint_uncompat(){return this.getRuleContext(0,RK)}get ruleIndex(){return tf.RULE_id_window}accept(t){return t.visitId_window?t.visitId_window(this):t.visitChildren(this)}},vX=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,gX)}keyword_compat(){return this.getRuleContext(0,SK)}keyword_expr_uncompat(){return this.getRuleContext(0,cK)}keyword_select_uncompat(){return this.getRuleContext(0,hK)}keyword_in_uncompat(){return this.getRuleContext(0,TK)}keyword_window_uncompat(){return this.getRuleContext(0,oK)}keyword_hint_uncompat(){return this.getRuleContext(0,RK)}get ruleIndex(){return tf.RULE_id_table}accept(t){return t.visitId_table?t.visitId_table(this):t.visitChildren(this)}},BX=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,gX)}keyword_compat(){return this.getRuleContext(0,SK)}keyword_table_uncompat(){return this.getRuleContext(0,nK)}keyword_alter_uncompat(){return this.getRuleContext(0,EK)}keyword_in_uncompat(){return this.getRuleContext(0,TK)}keyword_window_uncompat(){return this.getRuleContext(0,oK)}keyword_hint_uncompat(){return this.getRuleContext(0,RK)}get ruleIndex(){return tf.RULE_id_without}accept(t){return t.visitId_without?t.visitId_without(this):t.visitChildren(this)}},yX=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,gX)}keyword_compat(){return this.getRuleContext(0,SK)}keyword_expr_uncompat(){return this.getRuleContext(0,cK)}keyword_table_uncompat(){return this.getRuleContext(0,nK)}keyword_select_uncompat(){return this.getRuleContext(0,hK)}keyword_alter_uncompat(){return this.getRuleContext(0,EK)}keyword_in_uncompat(){return this.getRuleContext(0,TK)}keyword_window_uncompat(){return this.getRuleContext(0,oK)}get ruleIndex(){return tf.RULE_id_hint}accept(t){return t.visitId_hint?t.visitId_hint(this):t.visitChildren(this)}},fX=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,gX)}keyword_as_compat(){return this.getRuleContext(0,AK)}get ruleIndex(){return tf.RULE_id_as_compat}accept(t){return t.visitId_as_compat?t.visitId_as_compat(this):t.visitChildren(this)}},YX=class extends ga{constructor(t,e){super(t,e)}id(){return this.getRuleContext(0,xX)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_an_id}accept(t){return t.visitAn_id?t.visitAn_id(this):t.visitChildren(this)}},wX=class extends ga{constructor(t,e){super(t,e)}id_or_type(){return this.getRuleContext(0,tK)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_an_id_or_type}accept(t){return t.visitAn_id_or_type?t.visitAn_id_or_type(this):t.visitChildren(this)}},bX=class extends ga{constructor(t,e){super(t,e)}id_schema(){return this.getRuleContext(0,kX)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_an_id_schema}accept(t){return t.visitAn_id_schema?t.visitAn_id_schema(this):t.visitChildren(this)}},WX=class extends ga{constructor(t,e){super(t,e)}id_expr(){return this.getRuleContext(0,HX)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_an_id_expr}accept(t){return t.visitAn_id_expr?t.visitAn_id_expr(this):t.visitChildren(this)}},VX=class extends ga{constructor(t,e){super(t,e)}id_expr_in(){return this.getRuleContext(0,GX)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_an_id_expr_in}accept(t){return t.visitAn_id_expr_in?t.visitAn_id_expr_in(this):t.visitChildren(this)}},XX=class extends ga{constructor(t,e){super(t,e)}id_window(){return this.getRuleContext(0,FX)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_an_id_window}accept(t){return t.visitAn_id_window?t.visitAn_id_window(this):t.visitChildren(this)}},KX=class extends ga{constructor(t,e){super(t,e)}id_table(){return this.getRuleContext(0,vX)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_an_id_table}accept(t){return t.visitAn_id_table?t.visitAn_id_table(this):t.visitChildren(this)}},QX=class extends ga{constructor(t,e){super(t,e)}id_without(){return this.getRuleContext(0,BX)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_an_id_without}accept(t){return t.visitAn_id_without?t.visitAn_id_without(this):t.visitChildren(this)}},JX=class extends ga{constructor(t,e){super(t,e)}id_hint(){return this.getRuleContext(0,yX)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_an_id_hint}accept(t){return t.visitAn_id_hint?t.visitAn_id_hint(this):t.visitChildren(this)}},ZX=class extends ga{constructor(t,e){super(t,e)}identifier(){return this.getRuleContext(0,gX)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_an_id_pure}accept(t){return t.visitAn_id_pure?t.visitAn_id_pure(this):t.visitChildren(this)}},qX=class extends ga{constructor(t,e){super(t,e)}id_as_compat(){return this.getRuleContext(0,fX)}STRING_VALUE(){return this.getToken(tf.STRING_VALUE,0)}get ruleIndex(){return tf.RULE_an_id_as_compat}accept(t){return t.visitAn_id_as_compat?t.visitAn_id_as_compat(this):t.visitChildren(this)}},jX=class extends ga{constructor(t,e){super(t,e)}an_id(){return this.getRuleContext(0,YX)}PRIMARY(){return this.getToken(tf.PRIMARY,0)}KEY(){return this.getToken(tf.KEY,0)}get ruleIndex(){return tf.RULE_view_name}accept(t){return t.visitView_name?t.visitView_name(this):t.visitChildren(this)}},zX=class extends ga{constructor(t,e){super(t,e)}an_id(){return this.getRuleContext(0,YX)}DOT(){return this.getToken(tf.DOT,0)}get ruleIndex(){return tf.RULE_opt_id_prefix}accept(t){return t.visitOpt_id_prefix?t.visitOpt_id_prefix(this):t.visitChildren(this)}},$X=class extends ga{constructor(t,e){super(t,e)}pure_column_or_named(){return this.getRuleContext(0,cY)}ASTERISK(){return this.getToken(tf.ASTERISK,0)}an_id(){return this.getRuleContext(0,YX)}COLON(){return this.getToken(tf.COLON,0)}get ruleIndex(){return tf.RULE_cluster_expr}accept(t){return t.visitCluster_expr?t.visitCluster_expr(this):t.visitChildren(this)}},tK=class extends ga{constructor(t,e){super(t,e)}id(){return this.getRuleContext(0,xX)}type_id(){return this.getRuleContext(0,lK)}get ruleIndex(){return tf.RULE_id_or_type}accept(t){return t.visitId_or_type?t.visitId_or_type(this):t.visitChildren(this)}},eK=class extends ga{constructor(t,e){super(t,e)}an_id_or_type(){return this.getRuleContext(0,wX)}DOT(){return this.getToken(tf.DOT,0)}get ruleIndex(){return tf.RULE_opt_id_prefix_or_type}accept(t){return t.visitOpt_id_prefix_or_type?t.visitOpt_id_prefix_or_type(this):t.visitChildren(this)}},sK=class extends ga{constructor(t,e){super(t,e)}an_id_or_type(){return this.getRuleContext(0,wX)}AT(){return this.getToken(tf.AT,0)}get ruleIndex(){return tf.RULE_id_or_at}accept(t){return t.visitId_or_at?t.visitId_or_at(this):t.visitChildren(this)}},aK=class extends ga{constructor(t,e){super(t,e)}an_id_table(){return this.getRuleContext(0,KX)}type_id(){return this.getRuleContext(0,lK)}get ruleIndex(){return tf.RULE_id_table_or_type}accept(t){return t.visitId_table_or_type?t.visitId_table_or_type(this):t.visitChildren(this)}},rK=class extends ga{constructor(t,e){super(t,e)}id_table_or_type(){return this.getRuleContext(0,aK)}AT(){return this.getToken(tf.AT,0)}get ruleIndex(){return tf.RULE_id_table_or_at}accept(t){return t.visitId_table_or_at?t.visitId_table_or_at(this):t.visitChildren(this)}},iK=class extends ga{constructor(t,e){super(t,e)}keyword_compat(){return this.getRuleContext(0,SK)}keyword_expr_uncompat(){return this.getRuleContext(0,cK)}keyword_table_uncompat(){return this.getRuleContext(0,nK)}keyword_select_uncompat(){return this.getRuleContext(0,hK)}keyword_alter_uncompat(){return this.getRuleContext(0,EK)}keyword_in_uncompat(){return this.getRuleContext(0,TK)}keyword_window_uncompat(){return this.getRuleContext(0,oK)}keyword_hint_uncompat(){return this.getRuleContext(0,RK)}get ruleIndex(){return tf.RULE_keyword}accept(t){return t.visitKeyword?t.visitKeyword(this):t.visitChildren(this)}},cK=class extends ga{constructor(t,e){super(t,e)}ASYMMETRIC(){return this.getToken(tf.ASYMMETRIC,0)}BETWEEN(){return this.getToken(tf.BETWEEN,0)}BITCAST(){return this.getToken(tf.BITCAST,0)}CASE(){return this.getToken(tf.CASE,0)}CAST(){return this.getToken(tf.CAST,0)}CUBE(){return this.getToken(tf.CUBE,0)}CURRENT_DATE(){return this.getToken(tf.CURRENT_DATE,0)}CURRENT_TIME(){return this.getToken(tf.CURRENT_TIME,0)}CURRENT_TIMESTAMP(){return this.getToken(tf.CURRENT_TIMESTAMP,0)}EMPTY_ACTION(){return this.getToken(tf.EMPTY_ACTION,0)}EXISTS(){return this.getToken(tf.EXISTS,0)}FROM(){return this.getToken(tf.FROM,0)}FULL(){return this.getToken(tf.FULL,0)}HOP(){return this.getToken(tf.HOP,0)}JSON_EXISTS(){return this.getToken(tf.JSON_EXISTS,0)}JSON_VALUE(){return this.getToken(tf.JSON_VALUE,0)}JSON_QUERY(){return this.getToken(tf.JSON_QUERY,0)}LOCAL(){return this.getToken(tf.LOCAL,0)}NOT(){return this.getToken(tf.NOT,0)}NULL(){return this.getToken(tf.NULL,0)}PROCESS(){return this.getToken(tf.PROCESS,0)}REDUCE(){return this.getToken(tf.REDUCE,0)}RETURN(){return this.getToken(tf.RETURN,0)}RETURNING(){return this.getToken(tf.RETURNING,0)}ROLLUP(){return this.getToken(tf.ROLLUP,0)}SELECT(){return this.getToken(tf.SELECT,0)}SYMMETRIC(){return this.getToken(tf.SYMMETRIC,0)}UNBOUNDED(){return this.getToken(tf.UNBOUNDED,0)}WHEN(){return this.getToken(tf.WHEN,0)}WHERE(){return this.getToken(tf.WHERE,0)}get ruleIndex(){return tf.RULE_keyword_expr_uncompat}accept(t){return t.visitKeyword_expr_uncompat?t.visitKeyword_expr_uncompat(this):t.visitChildren(this)}},nK=class extends ga{constructor(t,e){super(t,e)}ANY(){return this.getToken(tf.ANY,0)}ERASE(){return this.getToken(tf.ERASE,0)}STREAM(){return this.getToken(tf.STREAM,0)}get ruleIndex(){return tf.RULE_keyword_table_uncompat}accept(t){return t.visitKeyword_table_uncompat?t.visitKeyword_table_uncompat(this):t.visitChildren(this)}},hK=class extends ga{constructor(t,e){super(t,e)}ALL(){return this.getToken(tf.ALL,0)}AS(){return this.getToken(tf.AS,0)}ASSUME(){return this.getToken(tf.ASSUME,0)}DISTINCT(){return this.getToken(tf.DISTINCT,0)}EXCEPT(){return this.getToken(tf.EXCEPT,0)}HAVING(){return this.getToken(tf.HAVING,0)}INTERSECT(){return this.getToken(tf.INTERSECT,0)}LIMIT(){return this.getToken(tf.LIMIT,0)}UNION(){return this.getToken(tf.UNION,0)}WINDOW(){return this.getToken(tf.WINDOW,0)}WITHOUT(){return this.getToken(tf.WITHOUT,0)}get ruleIndex(){return tf.RULE_keyword_select_uncompat}accept(t){return t.visitKeyword_select_uncompat?t.visitKeyword_select_uncompat(this):t.visitChildren(this)}},EK=class extends ga{constructor(t,e){super(t,e)}COLUMN(){return this.getToken(tf.COLUMN,0)}get ruleIndex(){return tf.RULE_keyword_alter_uncompat}accept(t){return t.visitKeyword_alter_uncompat?t.visitKeyword_alter_uncompat(this):t.visitChildren(this)}},TK=class extends ga{constructor(t,e){super(t,e)}COMPACT(){return this.getToken(tf.COMPACT,0)}get ruleIndex(){return tf.RULE_keyword_in_uncompat}accept(t){return t.visitKeyword_in_uncompat?t.visitKeyword_in_uncompat(this):t.visitChildren(this)}},oK=class extends ga{constructor(t,e){super(t,e)}GROUPS(){return this.getToken(tf.GROUPS,0)}RANGE(){return this.getToken(tf.RANGE,0)}ROWS(){return this.getToken(tf.ROWS,0)}get ruleIndex(){return tf.RULE_keyword_window_uncompat}accept(t){return t.visitKeyword_window_uncompat?t.visitKeyword_window_uncompat(this):t.visitChildren(this)}},RK=class extends ga{constructor(t,e){super(t,e)}SCHEMA(){return this.getToken(tf.SCHEMA,0)}COLUMNS(){return this.getToken(tf.COLUMNS,0)}get ruleIndex(){return tf.RULE_keyword_hint_uncompat}accept(t){return t.visitKeyword_hint_uncompat?t.visitKeyword_hint_uncompat(this):t.visitChildren(this)}},AK=class extends ga{constructor(t,e){super(t,e)}ATTRIBUTES(){return this.getToken(tf.ATTRIBUTES,0)}CONNECT(){return this.getToken(tf.CONNECT,0)}CONSUMER(){return this.getToken(tf.CONSUMER,0)}DATA(){return this.getToken(tf.DATA,0)}DESCRIBE(){return this.getToken(tf.DESCRIBE,0)}DIRECTORY(){return this.getToken(tf.DIRECTORY,0)}FIRST(){return this.getToken(tf.FIRST,0)}GRANT(){return this.getToken(tf.GRANT,0)}INITIAL(){return this.getToken(tf.INITIAL,0)}LAST(){return this.getToken(tf.LAST,0)}LEGACY(){return this.getToken(tf.LEGACY,0)}MANAGE(){return this.getToken(tf.MANAGE,0)}MATCHES(){return this.getToken(tf.MATCHES,0)}MATCH_RECOGNIZE(){return this.getToken(tf.MATCH_RECOGNIZE,0)}MEASURES(){return this.getToken(tf.MEASURES,0)}MICROSECONDS(){return this.getToken(tf.MICROSECONDS,0)}MILLISECONDS(){return this.getToken(tf.MILLISECONDS,0)}MODIFY(){return this.getToken(tf.MODIFY,0)}NANOSECONDS(){return this.getToken(tf.NANOSECONDS,0)}NEXT(){return this.getToken(tf.NEXT,0)}OMIT(){return this.getToken(tf.OMIT,0)}ONE(){return this.getToken(tf.ONE,0)}OPTION(){return this.getToken(tf.OPTION,0)}PARALLEL(){return this.getToken(tf.PARALLEL,0)}PAST(){return this.getToken(tf.PAST,0)}PATTERN(){return this.getToken(tf.PATTERN,0)}PER(){return this.getToken(tf.PER,0)}PERMUTE(){return this.getToken(tf.PERMUTE,0)}PRIVILEGES(){return this.getToken(tf.PRIVILEGES,0)}QUEUE(){return this.getToken(tf.QUEUE,0)}REMOVE(){return this.getToken(tf.REMOVE,0)}REPLICATION(){return this.getToken(tf.REPLICATION,0)}REVOKE(){return this.getToken(tf.REVOKE,0)}SECONDS(){return this.getToken(tf.SECONDS,0)}SEEK(){return this.getToken(tf.SEEK,0)}SHOW(){return this.getToken(tf.SHOW,0)}SKIP_RULE(){return this.getToken(tf.SKIP_RULE,0)}SOURCE(){return this.getToken(tf.SOURCE,0)}SUBSET(){return this.getToken(tf.SUBSET,0)}TABLES(){return this.getToken(tf.TABLES,0)}TOPIC(){return this.getToken(tf.TOPIC,0)}TYPE(){return this.getToken(tf.TYPE,0)}UNMATCHED(){return this.getToken(tf.UNMATCHED,0)}get ruleIndex(){return tf.RULE_keyword_as_compat}accept(t){return t.visitKeyword_as_compat?t.visitKeyword_as_compat(this):t.visitChildren(this)}},SK=class extends ga{constructor(t,e){super(t,e)}ABORT(){return this.getToken(tf.ABORT,0)}ACTION(){return this.getToken(tf.ACTION,0)}ADD(){return this.getToken(tf.ADD,0)}AFTER(){return this.getToken(tf.AFTER,0)}ALTER(){return this.getToken(tf.ALTER,0)}ANALYZE(){return this.getToken(tf.ANALYZE,0)}AND(){return this.getToken(tf.AND,0)}ANSI(){return this.getToken(tf.ANSI,0)}ARRAY(){return this.getToken(tf.ARRAY,0)}ASC(){return this.getToken(tf.ASC,0)}ASYNC(){return this.getToken(tf.ASYNC,0)}ATTACH(){return this.getToken(tf.ATTACH,0)}ATTRIBUTES(){return this.getToken(tf.ATTRIBUTES,0)}AUTOINCREMENT(){return this.getToken(tf.AUTOINCREMENT,0)}BEFORE(){return this.getToken(tf.BEFORE,0)}BEGIN(){return this.getToken(tf.BEGIN,0)}BERNOULLI(){return this.getToken(tf.BERNOULLI,0)}BY(){return this.getToken(tf.BY,0)}CASCADE(){return this.getToken(tf.CASCADE,0)}CHANGEFEED(){return this.getToken(tf.CHANGEFEED,0)}CHECK(){return this.getToken(tf.CHECK,0)}COLLATE(){return this.getToken(tf.COLLATE,0)}COMMIT(){return this.getToken(tf.COMMIT,0)}CONDITIONAL(){return this.getToken(tf.CONDITIONAL,0)}CONFLICT(){return this.getToken(tf.CONFLICT,0)}CONNECT(){return this.getToken(tf.CONNECT,0)}CONSTRAINT(){return this.getToken(tf.CONSTRAINT,0)}CONSUMER(){return this.getToken(tf.CONSUMER,0)}COVER(){return this.getToken(tf.COVER,0)}CREATE(){return this.getToken(tf.CREATE,0)}CROSS(){return this.getToken(tf.CROSS,0)}CURRENT(){return this.getToken(tf.CURRENT,0)}DATA(){return this.getToken(tf.DATA,0)}DATABASE(){return this.getToken(tf.DATABASE,0)}DECIMAL(){return this.getToken(tf.DECIMAL,0)}DECLARE(){return this.getToken(tf.DECLARE,0)}DEFAULT(){return this.getToken(tf.DEFAULT,0)}DEFERRABLE(){return this.getToken(tf.DEFERRABLE,0)}DEFERRED(){return this.getToken(tf.DEFERRED,0)}DEFINE(){return this.getToken(tf.DEFINE,0)}DELETE(){return this.getToken(tf.DELETE,0)}DESC(){return this.getToken(tf.DESC,0)}DESCRIBE(){return this.getToken(tf.DESCRIBE,0)}DETACH(){return this.getToken(tf.DETACH,0)}DIRECTORY(){return this.getToken(tf.DIRECTORY,0)}DISABLE(){return this.getToken(tf.DISABLE,0)}DISCARD(){return this.getToken(tf.DISCARD,0)}DO(){return this.getToken(tf.DO,0)}DROP(){return this.getToken(tf.DROP,0)}EACH(){return this.getToken(tf.EACH,0)}ELSE(){return this.getToken(tf.ELSE,0)}EMPTY(){return this.getToken(tf.EMPTY,0)}ENCRYPTED(){return this.getToken(tf.ENCRYPTED,0)}END(){return this.getToken(tf.END,0)}ERROR(){return this.getToken(tf.ERROR,0)}ESCAPE(){return this.getToken(tf.ESCAPE,0)}EVALUATE(){return this.getToken(tf.EVALUATE,0)}EXCLUDE(){return this.getToken(tf.EXCLUDE,0)}EXCLUSION(){return this.getToken(tf.EXCLUSION,0)}EXCLUSIVE(){return this.getToken(tf.EXCLUSIVE,0)}EXPLAIN(){return this.getToken(tf.EXPLAIN,0)}EXPORT(){return this.getToken(tf.EXPORT,0)}EXTERNAL(){return this.getToken(tf.EXTERNAL,0)}FAIL(){return this.getToken(tf.FAIL,0)}FAMILY(){return this.getToken(tf.FAMILY,0)}FILTER(){return this.getToken(tf.FILTER,0)}FIRST(){return this.getToken(tf.FIRST,0)}FLATTEN(){return this.getToken(tf.FLATTEN,0)}FOLLOWING(){return this.getToken(tf.FOLLOWING,0)}FOR(){return this.getToken(tf.FOR,0)}FOREIGN(){return this.getToken(tf.FOREIGN,0)}FUNCTION(){return this.getToken(tf.FUNCTION,0)}GLOB(){return this.getToken(tf.GLOB,0)}GRANT(){return this.getToken(tf.GRANT,0)}GROUP(){return this.getToken(tf.GROUP,0)}GROUPING(){return this.getToken(tf.GROUPING,0)}HASH(){return this.getToken(tf.HASH,0)}IF(){return this.getToken(tf.IF,0)}IGNORE(){return this.getToken(tf.IGNORE,0)}ILIKE(){return this.getToken(tf.ILIKE,0)}IMMEDIATE(){return this.getToken(tf.IMMEDIATE,0)}IMPORT(){return this.getToken(tf.IMPORT,0)}IN(){return this.getToken(tf.IN,0)}INDEX(){return this.getToken(tf.INDEX,0)}INDEXED(){return this.getToken(tf.INDEXED,0)}INHERITS(){return this.getToken(tf.INHERITS,0)}INITIAL(){return this.getToken(tf.INITIAL,0)}INITIALLY(){return this.getToken(tf.INITIALLY,0)}INNER(){return this.getToken(tf.INNER,0)}INSERT(){return this.getToken(tf.INSERT,0)}INSTEAD(){return this.getToken(tf.INSTEAD,0)}INTO(){return this.getToken(tf.INTO,0)}IS(){return this.getToken(tf.IS,0)}ISNULL(){return this.getToken(tf.ISNULL,0)}JOIN(){return this.getToken(tf.JOIN,0)}KEY(){return this.getToken(tf.KEY,0)}LAST(){return this.getToken(tf.LAST,0)}LEFT(){return this.getToken(tf.LEFT,0)}LEGACY(){return this.getToken(tf.LEGACY,0)}LIKE(){return this.getToken(tf.LIKE,0)}MANAGE(){return this.getToken(tf.MANAGE,0)}MATCH(){return this.getToken(tf.MATCH,0)}MATCHES(){return this.getToken(tf.MATCHES,0)}MATCH_RECOGNIZE(){return this.getToken(tf.MATCH_RECOGNIZE,0)}MEASURES(){return this.getToken(tf.MEASURES,0)}MICROSECONDS(){return this.getToken(tf.MICROSECONDS,0)}MILLISECONDS(){return this.getToken(tf.MILLISECONDS,0)}MODIFY(){return this.getToken(tf.MODIFY,0)}NANOSECONDS(){return this.getToken(tf.NANOSECONDS,0)}NATURAL(){return this.getToken(tf.NATURAL,0)}NEXT(){return this.getToken(tf.NEXT,0)}NO(){return this.getToken(tf.NO,0)}NOTNULL(){return this.getToken(tf.NOTNULL,0)}NULLS(){return this.getToken(tf.NULLS,0)}OBJECT(){return this.getToken(tf.OBJECT,0)}OF(){return this.getToken(tf.OF,0)}OFFSET(){return this.getToken(tf.OFFSET,0)}OMIT(){return this.getToken(tf.OMIT,0)}ON(){return this.getToken(tf.ON,0)}ONE(){return this.getToken(tf.ONE,0)}ONLY(){return this.getToken(tf.ONLY,0)}OPTION(){return this.getToken(tf.OPTION,0)}OR(){return this.getToken(tf.OR,0)}ORDER(){return this.getToken(tf.ORDER,0)}OTHERS(){return this.getToken(tf.OTHERS,0)}OUTER(){return this.getToken(tf.OUTER,0)}OVER(){return this.getToken(tf.OVER,0)}PARALLEL(){return this.getToken(tf.PARALLEL,0)}PARTITION(){return this.getToken(tf.PARTITION,0)}PASSING(){return this.getToken(tf.PASSING,0)}PASSWORD(){return this.getToken(tf.PASSWORD,0)}PAST(){return this.getToken(tf.PAST,0)}PATTERN(){return this.getToken(tf.PATTERN,0)}PER(){return this.getToken(tf.PER,0)}PERMUTE(){return this.getToken(tf.PERMUTE,0)}PLAN(){return this.getToken(tf.PLAN,0)}PRAGMA(){return this.getToken(tf.PRAGMA,0)}PRECEDING(){return this.getToken(tf.PRECEDING,0)}PRESORT(){return this.getToken(tf.PRESORT,0)}PRIMARY(){return this.getToken(tf.PRIMARY,0)}PRIVILEGES(){return this.getToken(tf.PRIVILEGES,0)}QUEUE(){return this.getToken(tf.QUEUE,0)}RAISE(){return this.getToken(tf.RAISE,0)}REFERENCES(){return this.getToken(tf.REFERENCES,0)}REGEXP(){return this.getToken(tf.REGEXP,0)}REINDEX(){return this.getToken(tf.REINDEX,0)}RELEASE(){return this.getToken(tf.RELEASE,0)}REMOVE(){return this.getToken(tf.REMOVE,0)}RENAME(){return this.getToken(tf.RENAME,0)}REPLACE(){return this.getToken(tf.REPLACE,0)}REPLICATION(){return this.getToken(tf.REPLICATION,0)}RESET(){return this.getToken(tf.RESET,0)}RESPECT(){return this.getToken(tf.RESPECT,0)}RESTRICT(){return this.getToken(tf.RESTRICT,0)}RESULT(){return this.getToken(tf.RESULT,0)}REVERT(){return this.getToken(tf.REVERT,0)}REVOKE(){return this.getToken(tf.REVOKE,0)}RIGHT(){return this.getToken(tf.RIGHT,0)}RLIKE(){return this.getToken(tf.RLIKE,0)}ROLLBACK(){return this.getToken(tf.ROLLBACK,0)}ROW(){return this.getToken(tf.ROW,0)}SAMPLE(){return this.getToken(tf.SAMPLE,0)}SAVEPOINT(){return this.getToken(tf.SAVEPOINT,0)}SECONDS(){return this.getToken(tf.SECONDS,0)}SEEK(){return this.getToken(tf.SEEK,0)}SEMI(){return this.getToken(tf.SEMI,0)}SETS(){return this.getToken(tf.SETS,0)}SHOW(){return this.getToken(tf.SHOW,0)}SKIP_RULE(){return this.getToken(tf.SKIP_RULE,0)}SOURCE(){return this.getToken(tf.SOURCE,0)}SUBQUERY(){return this.getToken(tf.SUBQUERY,0)}SUBSET(){return this.getToken(tf.SUBSET,0)}SYMBOLS(){return this.getToken(tf.SYMBOLS,0)}SYNC(){return this.getToken(tf.SYNC,0)}SYSTEM(){return this.getToken(tf.SYSTEM,0)}TABLE(){return this.getToken(tf.TABLE,0)}TABLES(){return this.getToken(tf.TABLES,0)}TABLESAMPLE(){return this.getToken(tf.TABLESAMPLE,0)}TABLESTORE(){return this.getToken(tf.TABLESTORE,0)}TEMP(){return this.getToken(tf.TEMP,0)}TEMPORARY(){return this.getToken(tf.TEMPORARY,0)}THEN(){return this.getToken(tf.THEN,0)}TIES(){return this.getToken(tf.TIES,0)}TO(){return this.getToken(tf.TO,0)}TOPIC(){return this.getToken(tf.TOPIC,0)}TRANSACTION(){return this.getToken(tf.TRANSACTION,0)}TRIGGER(){return this.getToken(tf.TRIGGER,0)}TYPE(){return this.getToken(tf.TYPE,0)}UNCONDITIONAL(){return this.getToken(tf.UNCONDITIONAL,0)}UNIQUE(){return this.getToken(tf.UNIQUE,0)}UNKNOWN(){return this.getToken(tf.UNKNOWN,0)}UNMATCHED(){return this.getToken(tf.UNMATCHED,0)}UPDATE(){return this.getToken(tf.UPDATE,0)}UPSERT(){return this.getToken(tf.UPSERT,0)}USE(){return this.getToken(tf.USE,0)}USER(){return this.getToken(tf.USER,0)}USING(){return this.getToken(tf.USING,0)}VACUUM(){return this.getToken(tf.VACUUM,0)}VALUES(){return this.getToken(tf.VALUES,0)}VIEW(){return this.getToken(tf.VIEW,0)}VIRTUAL(){return this.getToken(tf.VIRTUAL,0)}WITH(){return this.getToken(tf.WITH,0)}WRAPPER(){return this.getToken(tf.WRAPPER,0)}XOR(){return this.getToken(tf.XOR,0)}get ruleIndex(){return tf.RULE_keyword_compat}accept(t){return t.visitKeyword_compat?t.visitKeyword_compat(this):t.visitChildren(this)}},lK=class extends ga{constructor(t,e){super(t,e)}OPTIONAL(){return this.getToken(tf.OPTIONAL,0)}TUPLE(){return this.getToken(tf.TUPLE,0)}STRUCT(){return this.getToken(tf.STRUCT,0)}VARIANT(){return this.getToken(tf.VARIANT,0)}LIST(){return this.getToken(tf.LIST,0)}FLOW(){return this.getToken(tf.FLOW,0)}DICT(){return this.getToken(tf.DICT,0)}SET(){return this.getToken(tf.SET,0)}ENUM(){return this.getToken(tf.ENUM,0)}RESOURCE(){return this.getToken(tf.RESOURCE,0)}TAGGED(){return this.getToken(tf.TAGGED,0)}CALLABLE(){return this.getToken(tf.CALLABLE,0)}get ruleIndex(){return tf.RULE_type_id}accept(t){return t.visitType_id?t.visitType_id(this):t.visitChildren(this)}},OK=class extends ga{constructor(t,e){super(t,e)}TRUE(){return this.getToken(tf.TRUE,0)}FALSE(){return this.getToken(tf.FALSE,0)}get ruleIndex(){return tf.RULE_bool_value}accept(t){return t.visitBool_value?t.visitBool_value(this):t.visitChildren(this)}},IK=class extends ga{constructor(t,e){super(t,e)}REAL(){return this.getToken(tf.REAL,0)}get ruleIndex(){return tf.RULE_real}accept(t){return t.visitReal?t.visitReal(this):t.visitChildren(this)}},uK=class extends ga{constructor(t,e){super(t,e)}DIGITS(){return this.getToken(tf.DIGITS,0)}INTEGER_VALUE(){return this.getToken(tf.INTEGER_VALUE,0)}get ruleIndex(){return tf.RULE_integer}accept(t){return t.visitInteger?t.visitInteger(this):t.visitChildren(this)}},NK=class extends ga{constructor(t,e){super(t,e)}sql_stmt_list_yq(){return this.getRuleContext(0,LK)}PRAGMA(){return this.getToken(tf.PRAGMA,0)}ANSI(){return this.getToken(tf.ANSI,0)}DIGITS(){return this.getToken(tf.DIGITS,0)}ansi_sql_stmt_list(){return this.getRuleContext(0,af)}get ruleIndex(){return tf.RULE_sql_query_yq}accept(t){return t.visitSql_query_yq?t.visitSql_query_yq(this):t.visitChildren(this)}},LK=class extends ga{constructor(t,e){super(t,e)}sql_stmt_yq(t){return void 0===t?this.getRuleContexts(CK):this.getRuleContext(t,CK)}EOF(){return this.getToken(tf.EOF,0)}SEMICOLON(t){return void 0===t?this.getTokens(tf.SEMICOLON):this.getToken(tf.SEMICOLON,t)}get ruleIndex(){return tf.RULE_sql_stmt_list_yq}accept(t){return t.visitSql_stmt_list_yq?t.visitSql_stmt_list_yq(this):t.visitChildren(this)}},CK=class extends ga{constructor(t,e){super(t,e)}sql_stmt_core_yq(){return this.getRuleContext(0,_K)}EXPLAIN(){return this.getToken(tf.EXPLAIN,0)}QUERY(){return this.getToken(tf.QUERY,0)}PLAN(){return this.getToken(tf.PLAN,0)}get ruleIndex(){return tf.RULE_sql_stmt_yq}accept(t){return t.visitSql_stmt_yq?t.visitSql_stmt_yq(this):t.visitChildren(this)}},_K=class extends ga{constructor(t,e){super(t,e)}pragma_stmt(){return this.getRuleContext(0,cw)}select_stmt(){return this.getRuleContext(0,Tw)}named_nodes_stmt(){return this.getRuleContext(0,mX)}use_stmt(){return this.getRuleContext(0,dX)}into_table_stmt_yq(){return this.getRuleContext(0,Pb)}declare_stmt(){return this.getRuleContext(0,$Y)}import_stmt(){return this.getRuleContext(0,ew)}export_stmt(){return this.getRuleContext(0,sw)}do_stmt(){return this.getRuleContext(0,iw)}define_action_or_subquery_stmt(){return this.getRuleContext(0,SV)}if_stmt(){return this.getRuleContext(0,OV)}for_stmt(){return this.getRuleContext(0,IV)}values_stmt(){return this.getRuleContext(0,db)}get ruleIndex(){return tf.RULE_sql_stmt_core_yq}accept(t){return t.visitSql_stmt_core_yq?t.visitSql_stmt_core_yq(this):t.visitChildren(this)}},PK=class extends ga{constructor(t,e){super(t,e)}AS(){return this.getToken(tf.AS,0)}object_ref(){return this.getRuleContext(0,PV)}get ruleIndex(){return tf.RULE_replication_name}accept(t){return t.visitReplication_name?t.visitReplication_name(this):t.visitChildren(this)}},MK=class extends ga{constructor(t,e){super(t,e)}WHERE(){return this.getToken(tf.WHERE,0)}expr(){return this.getRuleContext(0,Ef)}get ruleIndex(){return tf.RULE_where_expr}accept(t){return t.visitWhere_expr?t.visitWhere_expr(this):t.visitChildren(this)}},dK=class extends ga{constructor(t,e){super(t,e)}FROM(){return this.getToken(tf.FROM,0)}join_source(){return this.getRuleContext(0,Eb)}get ruleIndex(){return tf.RULE_from_stmt}accept(t){return t.visitFrom_stmt?t.visitFrom_stmt(this):t.visitChildren(this)}},UK=class extends ga{constructor(t,e){super(t,e)}alter_table_stmt(){return this.getRuleContext(0,aW)}alter_table_store_stmt(){return this.getRuleContext(0,nW)}get ruleIndex(){return tf.RULE_alter_table_for_autocomplete}accept(t){return t.visitAlter_table_for_autocomplete?t.visitAlter_table_for_autocomplete(this):t.visitChildren(this)}},mK=class extends Ii{},DK={SPACE:tf.WS,FROM:tf.FROM,OPENING_BRACKET:tf.LPAREN,CLOSING_BRACKET:tf.RPAREN,ALTER:tf.ALTER,INSERT:tf.INSERT,UPDATE:tf.UPDATE,JOIN:tf.JOIN,SEMICOLON:tf.SEMICOLON,SELECT:tf.SELECT};function pK(t){let e=new Map(t.map((t=>[t,!0])));return{anyRuleInList:t=>(Array.isArray(t)?t:[t]).some((t=>e.has(t))),allRulesInList:t=>!t.some((t=>!e.has(t)))}}var gK=tf.ruleNames;function xK(t){let e=t.findIndex((t=>t===tf.RULE_sql_stmt_core||t===tf.RULE_sql_stmt_core_yq));if(-1===e)return;let s=t[e+1];return s?gK[s]:void 0}var kK={suggestObject:"object",suggestTableStore:"tableStore",suggestTable:"table",suggestExternalTable:"externalTable",suggestExternalDatasource:"externalDataSource",suggestTopic:"topic",suggestView:"view",suggestReplication:"replication",suggestGroup:"group",suggestUser:"user"};function HK(t,e,s){let a={...pK(t),cursorTokenIndex:e,tokenStream:s},r=function(t){let{anyRuleInList:e,allRulesInList:s}=t;if(s([tf.RULE_select_stmt,tf.RULE_id_expr]))return!e([tf.RULE_window_specification_details,tf.RULE_group_by_clause,tf.RULE_table_ref,tf.RULE_where_expr])||void 0}(a),i=function(t){let{anyRuleInList:e}=t;return e([tf.RULE_alter_object_stmt,tf.RULE_drop_object_stmt])&&e(tf.RULE_id_or_at)}(a),c=function(t){let{anyRuleInList:e,tokenStream:s,cursorTokenIndex:a}=t;if(!e(tf.RULE_id_or_at))return;let r=e(tf.RULE_drop_table_stmt)&&!!UC(s,DK,a,tf.TABLESTORE);return e(tf.RULE_alter_table_store_stmt)||r}(a),n=function(t){let{anyRuleInList:e,allRulesInList:s,tokenStream:a,cursorTokenIndex:r}=t;if(!e([tf.RULE_id_or_at,tf.RULE_id_table_or_type]))return;let i=e(tf.RULE_replication_target)&&!e(tf.RULE_replication_name),c=s([tf.RULE_simple_table_ref])&&!UC(a,DK,r,tf.CREATE)&&!UC(a,DK,r,tf.EXTERNAL);return e([tf.RULE_table_ref,tf.RULE_table_inherits])||c||i}(a),h=function(t){let{anyRuleInList:e,tokenStream:s,cursorTokenIndex:a}=t;if(!e(tf.RULE_role_name))return;let r=!!UC(s,DK,a,tf.USER),i=!!UC(s,DK,a,tf.RENAME),c=e(tf.RULE_revoke_permissions_stmt),n=e(tf.RULE_alter_group_stmt)&&!i&&r,h=e(tf.RULE_create_group_stmt)&&r,E=e(tf.RULE_alter_user_stmt)&&!i;return e(tf.RULE_drop_role_stmt)&&r||E||h||n||c}(a),E=function(t){let{anyRuleInList:e,tokenStream:s,cursorTokenIndex:a}=t;if(!e(tf.RULE_role_name))return;let r=!!UC(s,DK,a,tf.GROUP),i=!!UC(s,DK,a,tf.USER),c=!!UC(s,DK,a,tf.RENAME),n=e(tf.RULE_drop_role_stmt)&&r,h=e(tf.RULE_alter_group_stmt)&&!c&&!i;return e(tf.RULE_revoke_permissions_stmt)||h||n}(a),T=function(t){let{anyRuleInList:e}=t;if(e([tf.RULE_an_id,tf.RULE_topic_ref]))return e([tf.RULE_drop_topic_stmt,tf.RULE_alter_topic_stmt])}(a),o=function(t){let{allRulesInList:e}=t;return e([tf.RULE_drop_view_stmt,tf.RULE_id_or_at])||e([tf.RULE_table_ref,tf.RULE_id_table_or_type])}(a),R=function(t){let{anyRuleInList:e}=t;if(e(tf.RULE_id_or_at))return e([tf.RULE_alter_replication_stmt,tf.RULE_drop_replication_stmt])}(a),A=function(t){let{allRulesInList:e,tokenStream:s,cursorTokenIndex:a}=t,r=!!UC(s,DK,a,tf.EXTERNAL);return e([tf.RULE_id_or_at,tf.RULE_drop_table_stmt])&&r||e([tf.RULE_table_ref,tf.RULE_id_table_or_type])}(a),S=function(t){let{anyRuleInList:e}=t;if(e(tf.RULE_id_or_at))return e([tf.RULE_drop_external_data_source_stmt,tf.RULE_alter_external_data_source_stmt])}(a),l=function(t){let{anyRuleInList:e}=t;if(e(tf.RULE_an_id))return e([tf.RULE_alter_table_drop_index,tf.RULE_alter_table_rename_index_to])}(a),O=function(t){let{anyRuleInList:e,tokenStream:s,cursorTokenIndex:a}=t;if(!e([tf.RULE_an_id,tf.RULE_id_expr])||e([tf.RULE_table_ref,tf.RULE_values_stmt,tf.RULE_alter_table_add_column,tf.RULE_lambda_stmt]))return;let r=e(tf.RULE_select_kind)&&!UC(s,DK,a,tf.LIMIT),i=e(tf.RULE_alter_table_alter_column)&&!UC(s,DK,a,tf.FAMILY);return e([tf.RULE_pure_column_list,tf.RULE_pure_column_or_named,tf.RULE_column_name,tf.RULE_without_column_name,tf.RULE_alter_table_drop_column,tf.RULE_delete_stmt])||i||r}(a),I=function(t){let{anyRuleInList:e}=t;return e(tf.RULE_type_name_simple)}(a),u=function(t){let{allRulesInList:e}=t;return e([tf.RULE_an_id,tf.RULE_pragma_stmt])}(a),N=function(t){let{anyRuleInList:e}=t;if(e([tf.RULE_atom_expr,tf.RULE_in_atom_expr])&&!e(tf.RULE_table_ref))return e(tf.RULE_select_stmt)}(a),L=function(t){let{allRulesInList:e}=t;return e([tf.RULE_id_expr,tf.RULE_table_ref])}(a),C=function(t){let{anyRuleInList:e}=t;if(e(tf.RULE_id_expr)&&!e(tf.RULE_table_ref))return e(tf.RULE_select_stmt)}(a),_=function(t){let{anyRuleInList:e,allRulesInList:s}=t;if(s([tf.RULE_select_stmt,tf.RULE_id_expr]))return!e([tf.RULE_group_by_clause,tf.RULE_table_ref,tf.RULE_where_expr])||void 0}(a),P=function(t){let{allRulesInList:e}=t;return e([tf.RULE_an_id_hint,tf.RULE_table_hint])}(a),M=function(t){let{allRulesInList:e,anyRuleInList:s}=t;if(!s([tf.RULE_table_setting_value,tf.RULE_topic_setting_value,tf.RULE_topic_consumer_setting_value])){if(e([tf.RULE_with_table_settings,tf.RULE_an_id]))return s(tf.RULE_create_external_data_source_stmt)?"externalDataSource":s(tf.RULE_create_view_stmt)?"view":s(tf.RULE_create_table_stmt)?"table":void 0;if(e([tf.RULE_with_topic_settings,tf.RULE_an_id]))return"topic";if(e([tf.RULE_topic_consumer_with_settings,tf.RULE_an_id]))return"topicConsumer";if(e([tf.RULE_replication_settings,tf.RULE_an_id]))return"replication"}}(a);return{suggestWindowFunctions:r,shouldSuggestTableIndexes:l,shouldSuggestColumns:O,shouldSuggestColumnAliases:O,suggestSimpleTypes:I,suggestPragmas:u,suggestUdfs:N,suggestTableFunctions:L,suggestFunctions:C,suggestAggregateFunctions:_,suggestTableHints:P?xK(t):void 0,suggestEntitySettings:M,suggestObject:i,suggestTableStore:c,suggestTable:n,suggestUser:h,suggestGroup:E,suggestTopic:T,suggestView:o,suggestReplication:R,suggestExternalTable:A,suggestExternalDatasource:S}}var GK=new Set(function(){let t=[],e=tf.EQUALS,s=tf.LBRACE_SQUARE;for(let a=e;a<=s;a++)a!==tf.ASTERISK&&t.push(a);return t.push(tf.STREAM),t.push(tf.STRING_VALUE),t.push(tf.REAL),t.push(tf.EOF),t.push(tf.DIGITS),t.push(tf.BLOB),t.push(tf.CURRENT_TIME),t.push(tf.CURRENT_DATE),t.push(tf.CURRENT_TIMESTAMP),t}()),FK=new Set([tf.RULE_id_or_type,tf.RULE_cluster_expr,tf.RULE_identifier,tf.RULE_id,tf.RULE_integer,tf.RULE_type_id,tf.RULE_keyword,tf.RULE_keyword_compat,tf.RULE_keyword_expr_uncompat,tf.RULE_keyword_table_uncompat,tf.RULE_keyword_select_uncompat,tf.RULE_keyword_alter_uncompat,tf.RULE_keyword_in_uncompat,tf.RULE_keyword_window_uncompat,tf.RULE_keyword_hint_uncompat,tf.RULE_id_schema,tf.RULE_id_expr_in,tf.RULE_id_window,tf.RULE_id_table,tf.RULE_id_without,tf.RULE_id_hint,tf.RULE_id_as_compat]),vK=class extends mK{constructor(){super(),this.visitSimple_table_ref_core=t=>{try{var e,s,a;let r=null===(e=t.object_ref())||void 0===e||null===(s=e.id_or_at())||void 0===s||null===(a=s.an_id_or_type())||void 0===a?void 0:a.getText();r&&this.symbolTable.addNewSymbolOfType(qc,this.scope,r)}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.visitAlter_table_store_stmt=t=>{try{var e,s;this.symbolTable.addNewSymbolOfType(qc,this.scope,null===(e=t.object_ref())||void 0===e||null===(s=e.id_or_at())||void 0===s?void 0:s.getText())}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.visitNamed_single_source=t=>{try{var e,s,a,r,i;this.symbolTable.addNewSymbolOfType(qc,this.scope,null!==(e=null===(s=t.single_source().table_ref())||void 0===s?void 0:s.getText())&&void 0!==e?e:"",null!==(a=null===(r=t.an_id())||void 0===r?void 0:r.getText())&&void 0!==a?a:null===(i=t.an_id_as_compat())||void 0===i?void 0:i.getText())}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.visitNamed_column=t=>{try{var e;let s=null===(e=t.an_id())||void 0===e?void 0:e.getText();s&&this.symbolTable.addNewSymbolOfType(zc,this.scope,s)}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.visitNamed_expr=t=>{try{var e;let s=null===(e=t.an_id_or_type())||void 0===e?void 0:e.getText();s&&this.symbolTable.addNewSymbolOfType(zc,this.scope,s)}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.visitResult_column=t=>{try{var e,s,a;let r=null!==(e=null===(s=t.an_id_or_type())||void 0===s?void 0:s.getText())&&void 0!==e?e:null===(a=t.an_id_as_compat())||void 0===a?void 0:a.getText();r&&this.symbolTable.addNewSymbolOfType(zc,this.scope,r)}catch($c){if(!($c instanceof vc))throw $c}return this.visitChildren(t)},this.symbolTable=new Zc("",{allowDuplicateSymbols:!0}),this.scope=this.symbolTable.addNewSymbolOfType(Bc,void 0)}};function BK(t,e){return e?fK(t,e):t.sql_query()}function yK(t,e){return e?fK(t,e):t.sql_query_yq()}function fK(t,e){switch(e){case"from":return t.from_stmt();case"alter":return t.alter_table_for_autocomplete();case"insert":return t.into_table_stmt();case"update":return t.update_stmt();case"select":return t.select_core()}}function YK(t){return(e,s,a,r,i,c)=>{let{shouldSuggestColumns:n,shouldSuggestColumnAliases:h,shouldSuggestTableIndexes:E,...T}=function(t,e,s){let a={};for(let[O,I]of t){if(!uC(e,I))break;switch(O){case tf.RULE_id_table:case tf.RULE_id_hint:case tf.RULE_identifier:case tf.RULE_id_or_type:case tf.RULE_id:{let t=HK(I.ruleList,e,s),r=Object.fromEntries(Object.entries(t).filter((t=>{let[e,s]=t;return s})));a={...a,...r}}}}let{suggestObject:r,suggestTableStore:i,suggestTable:c,suggestUser:n,suggestGroup:h,suggestTopic:E,suggestView:T,suggestReplication:o,suggestExternalTable:R,suggestExternalDatasource:A,...S}=a,l=Object.entries({suggestObject:r,suggestTableStore:i,suggestTable:c,suggestUser:n,suggestGroup:h,suggestTopic:E,suggestView:T,suggestReplication:o,suggestExternalTable:R,suggestExternalDatasource:A}).filter((t=>{let[e,s]=t;return s})).map((t=>{let[e]=t;return kK[e]}));return{suggestEntity:l.length?l:void 0,...S}}(s,r,a),o={...e,...T,suggestTemplates:_C(c,i)};if(n||h||E){let e=new vK,{tableContextSuggestion:s,suggestColumnAliases:r}=mC($y,tf,e,DK,t,a,i,c,!0);n&&s&&(o.suggestColumns={tables:s.tables}),E&&s&&(o.suggestTableIndexes={tables:s.tables}),h&&r&&(o.suggestColumnAliases=r)}return o}}var wK=new ef(null,-1),bK={Lexer:$y,Parser:tf,tokenDictionary:DK,ignoredTokens:GK,rulesToVisit:FK,getParseTree:BK,enrichAutocompleteResult:YK(BK),context:wK},WK=new NK(null,-1),VK={Lexer:$y,Parser:tf,tokenDictionary:DK,ignoredTokens:GK,rulesToVisit:FK,getParseTree:yK,enrichAutocompleteResult:YK(yK),context:WK};function XK(t,e,s,a,r){let i=PC(t,e,r),c=new NG(s.SPACE);return i.removeErrorListeners(),i.addErrorListener(c),a(i),{errors:c.errors}}var KK=/^'(.*)'$/;function QK(t,e,s,a,r,i,c,n,h,E){let T=PC(t,e,n),{tokenStream:o}=T,R=new NG(s.SPACE);T.removeErrorListeners(),T.addErrorListener(R),i(T);let A=new Jc(T);A.ignoredTokens=a,A.preferredRules=r;let S=IC(o,h,s.SPACE);if(void 0===S)throw new Error("Could not find cursor token index for line: ".concat(h.line,", column: ").concat(h.column));let l=[],{tokens:O,rules:I}=A.collectCandidates(S,E);return O.forEach(((t,e)=>{var s;let a=(null===(s=T.vocabulary.getLiteralName(e))||void 0===s?void 0:s.replace(KK,"$1"))||T.vocabulary.getSymbolicName(e);if(!a)throw new Error("Could not get name for token ".concat(e));l.push({value:a})})),c({errors:R.errors,suggestKeywords:l},I,o,S,h,n)}function JK(t){return XK(uG.Lexer,uG.Parser,uG.tokenDictionary,uG.getParseTree,t)}function ZK(t,e){return QK(uG.Lexer,uG.Parser,uG.tokenDictionary,uG.ignoredTokens,uG.rulesToVisit,uG.getParseTree,uG.enrichAutocompleteResult,t,e)}function qK(t){return XK(HC.Lexer,HC.Parser,HC.tokenDictionary,HC.getParseTree,t)}function jK(t,e){return QK(HC.Lexer,HC.Parser,HC.tokenDictionary,HC.ignoredTokens,HC.rulesToVisit,HC.getParseTree,HC.enrichAutocompleteResult,t,e)}function zK(t){return XK(zy.Lexer,zy.Parser,zy.tokenDictionary,zy.getParseTree,t)}function $K(t,e){return QK(zy.Lexer,zy.Parser,zy.tokenDictionary,zy.ignoredTokens,zy.rulesToVisit,zy.getParseTree,zy.enrichAutocompleteResult,t,e)}function tQ(t){return XK(bK.Lexer,bK.Parser,bK.tokenDictionary,bK.getParseTree,t)}function eQ(t,e){return QK(bK.Lexer,bK.Parser,bK.tokenDictionary,bK.ignoredTokens,bK.rulesToVisit,bK.getParseTree,bK.enrichAutocompleteResult,t,e,bK.context)}function sQ(t){return XK(VK.Lexer,VK.Parser,VK.tokenDictionary,VK.getParseTree,t)}function aQ(t,e){return QK(VK.Lexer,VK.Parser,VK.tokenDictionary,VK.ignoredTokens,VK.rulesToVisit,VK.getParseTree,VK.enrichAutocompleteResult,t,e,VK.context)}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8622.49f3054c.chunk.js b/ydb/core/viewer/monitoring/static/js/8622.49f3054c.chunk.js new file mode 100644 index 000000000000..e6f1c1b0eea3 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8622.49f3054c.chunk.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8622],{28622:(e,t,C)=>{C.r(t),C.d(t,{ReactComponent:()=>u,default:()=>E});var r,a,n,o,i,l,s,d,c,H,p,V,k,M=C(68963);function h(){return h=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var C=arguments[t];for(var r in C)Object.prototype.hasOwnProperty.call(C,r)&&(e[r]=C[r])}return e},h.apply(this,arguments)}function Z(e,t){let{title:C,titleId:Z,...u}=e;return M.createElement("svg",h({width:260,height:260,viewBox:"0 0 520 520",fill:"none",xmlns:"http://www.w3.org/2000/svg",ref:t,"aria-labelledby":Z},u),C?M.createElement("title",{id:Z},C):null,r||(r=M.createElement("path",{opacity:.1,d:"M228.637 445C217.178 445.049 206.065 441.074 197.233 433.768L28.4227 288.499C24.7711 285.319 22.4943 280.846 22.0715 276.02C21.6487 271.195 23.1128 266.393 26.1557 262.626L65.3512 214.612C66.9235 212.684 68.8667 211.091 71.0657 209.927C73.2646 208.764 75.6745 208.055 78.1525 207.841C80.6305 207.627 83.1263 207.913 85.4917 208.682C87.8572 209.452 90.0443 210.688 91.9234 212.319L223.682 326.793L435.516 94.088C438.811 90.4596 443.405 88.2807 448.298 88.0253C453.191 87.7699 457.987 89.4587 461.642 92.7243L507.824 134.205C509.647 135.841 511.129 137.821 512.184 140.032C513.24 142.243 513.849 144.64 513.975 147.087C514.102 149.534 513.744 151.982 512.922 154.29C512.101 156.598 510.831 158.721 509.187 160.536L265.553 428.549C260.881 433.709 255.185 437.838 248.829 440.671C242.472 443.503 235.595 444.978 228.637 445Z",fill:"#509CF5"})),a||(a=M.createElement("path",{d:"M412.933 102.332H294.933C289.433 102.332 284.933 106.832 284.933 112.332V315.432C284.933 320.932 289.433 325.432 294.933 325.432H446.433C451.933 325.432 456.433 320.932 456.433 315.432V133.732L429.933 107.332",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4.01 10.02"})),n||(n=M.createElement("path",{d:"M425.033 102.332V104.332",stroke:"#00E6C5",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round"})),o||(o=M.createElement("path",{d:"M425.033 115.031V126.331C425.033 130.431 428.333 133.731 432.433 133.731H449.033",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4.27 10.68"})),i||(i=M.createElement("path",{d:"M454.333 133.73H456.333",stroke:"#00E6C5",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round"})),l||(l=M.createElement("path",{d:"M77 397.052L89.1 409L110 388",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4.84211,strokeLinecap:"round",strokeLinejoin:"round"})),s||(s=M.createElement("path",{d:"M125 398C125 416.775 109.775 432 91 432C72.2252 432 57 416.775 57 398C57 379.225 72.2252 364 91 364C109.775 364 125 379.225 125 398Z",stroke:"#00E6C5",strokeOpacity:.8,strokeWidth:4.84211,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4.84 12.11"})),d||(d=M.createElement("path",{d:"M147.5 119C147.5 117.895 146.605 117 145.5 117C144.395 117 143.5 117.895 143.5 119H147.5ZM143.5 129.8C143.5 130.905 144.395 131.8 145.5 131.8C146.605 131.8 147.5 130.905 147.5 129.8H143.5ZM147.5 152.5C147.5 151.395 146.605 150.5 145.5 150.5C144.395 150.5 143.5 151.395 143.5 152.5H147.5ZM143.5 164.2C143.5 165.305 144.395 166.2 145.5 166.2C146.605 166.2 147.5 165.305 147.5 164.2H143.5ZM168.1 143.602C169.205 143.602 170.1 142.706 170.1 141.602C170.1 140.497 169.205 139.602 168.1 139.602V143.602ZM157.2 139.602C156.096 139.602 155.2 140.497 155.2 141.602C155.2 142.706 156.096 143.602 157.2 143.602V139.602ZM133.7 143.602C134.805 143.602 135.7 142.706 135.7 141.602C135.7 140.497 134.805 139.602 133.7 139.602V143.602ZM122.9 139.602C121.795 139.602 120.9 140.497 120.9 141.602C120.9 142.706 121.795 143.602 122.9 143.602V139.602ZM143.5 119V129.8H147.5V119H143.5ZM143.5 152.5V164.2H147.5V152.5H143.5ZM168.1 139.602H157.2V143.602H168.1V139.602ZM133.7 139.602H122.9V143.602H133.7V139.602Z",fill:"#2EE5C0",fillOpacity:.8})),c||(c=M.createElement("path",{d:"M406.3 397.5C406.3 396.395 405.405 395.5 404.3 395.5C403.195 395.5 402.3 396.395 402.3 397.5H406.3ZM402.3 403.1C402.3 404.205 403.195 405.1 404.3 405.1C405.405 405.1 406.3 404.205 406.3 403.1H402.3ZM406.3 414.898C406.3 413.794 405.405 412.898 404.3 412.898C403.195 412.898 402.3 413.794 402.3 414.898H406.3ZM402.3 420.998C402.3 422.103 403.195 422.998 404.3 422.998C405.405 422.998 406.3 422.103 406.3 420.998H402.3ZM416.1 411.2C417.205 411.2 418.1 410.305 418.1 409.2C418.1 408.095 417.205 407.2 416.1 407.2V411.2ZM410.4 407.2C409.295 407.2 408.4 408.095 408.4 409.2C408.4 410.305 409.295 411.2 410.4 411.2V407.2ZM398.2 411.2C399.305 411.2 400.2 410.305 400.2 409.2C400.2 408.095 399.305 407.2 398.2 407.2V411.2ZM392.5 407.2C391.395 407.2 390.5 408.095 390.5 409.2C390.5 410.305 391.395 411.2 392.5 411.2V407.2ZM402.3 397.5V403.1H406.3V397.5H402.3ZM402.3 414.898V420.998H406.3V414.898H402.3ZM416.1 407.2H410.4V411.2H416.1V407.2ZM398.2 407.2H392.5V411.2H398.2V407.2Z",fill:"#2EE5C0",fillOpacity:.8})),H||(H=M.createElement("path",{d:"M186 385.667V394.833C186 397.264 185.012 399.596 183.254 401.315C181.496 403.034 179.111 404 176.625 404H121C115.477 404 111 399.523 111 394V249C111 243.477 115.477 239 121 239H176.625C179.111 239 181.496 239.966 183.254 241.685C185.012 243.404 186 245.736 186 248.167V385.667Z",fill:"#0067C1"})),p||(p=M.createElement("path",{d:"M177.143 375.273V384.637C177.143 387.12 176.153 389.501 174.392 391.257C172.63 393.013 170.241 394 167.75 394H112C106.477 394 102 389.522 102 384V235.465C102 229.942 106.477 225.465 112 225.465H167.75C170.241 225.465 172.63 226.451 174.392 228.207C176.153 229.963 177.143 232.345 177.143 234.828V375.273Z",fill:"#007CE9"})),V||(V=M.createElement("path",{d:"M292.385 235.185C291.545 236.543 292.529 238.321 294.126 238.321H375.327C379.067 238.242 382.784 238.917 386.255 240.305C389.726 241.693 392.879 243.765 395.524 246.398C398.169 249.031 400.252 252.169 401.646 255.623C403.041 259.078 403.718 262.778 403.639 266.5C403.639 294.679 394.201 398 356.452 398H242.081C230.712 398 219.806 393.497 211.748 385.477L206.04 379.797C205.665 379.424 205.158 379.214 204.629 379.214H191.299H179.143C178.038 379.214 177.143 378.319 177.143 377.214V239.495C177.143 238.847 177.668 238.321 178.317 238.321C195.697 238.321 212.371 231.438 224.69 219.177L233.949 209.961C240.092 203.848 245.391 196.942 249.705 189.426L267.012 159.283C275.636 144.262 293.887 133.185 306.212 145.354C312.929 151.987 316.741 160.994 316.815 170.411C316.815 171.538 316.721 172.665 316.626 173.886C314.302 197.951 298.104 225.943 292.385 235.185Z",fill:"#FFCC00"})),k||(k=M.createElement("path",{d:"M356.457 369.801H237.651C229.12 369.801 220.937 366.421 214.893 360.401C208.849 354.381 200.666 351.001 192.135 351.001H177.143V379.2H192.135C200.666 379.2 208.849 382.58 214.893 388.6C220.937 394.62 229.12 398 237.651 398H356.457C394.207 398 403.645 294.601 403.645 266.402C403.645 263.723 403.328 261.054 402.701 258.449C399.568 298.831 387.743 369.801 356.457 369.801Z",fill:"#DEB700"})))}const u=M.forwardRef(Z),E=C.p+"static/media/thumbsUp.d4a03fbaa64ce85a0045bf8ba77f8e2b.svg"}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8695.f17f8853.chunk.js b/ydb/core/viewer/monitoring/static/js/8695.f17f8853.chunk.js new file mode 100644 index 000000000000..5992a9b85fc6 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8695.f17f8853.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8695],{68695:function(a,e,i){a.exports=function(a){"use strict";function e(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var i=e(a),_={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(a){return a},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 i.default.locale(_,null,!0),_}(i(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8702.69a3e0d5.chunk.js b/ydb/core/viewer/monitoring/static/js/8702.69a3e0d5.chunk.js new file mode 100644 index 000000000000..6507fc7dcd69 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8702.69a3e0d5.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8702],{58702:function(e,_,a){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=_(e),t={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 _=["th","st","nd","rd"],a=e%100;return"["+e+(_[(a-20)%10]||_[a]||_[0])+"]"}};return a.default.locale(t,null,!0),t}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8747.baf63d86.chunk.js b/ydb/core/viewer/monitoring/static/js/8747.baf63d86.chunk.js new file mode 100644 index 000000000000..91d0893926a3 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8747.baf63d86.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8747],{38747:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),n={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(_){return _},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 t.default.locale(n,null,!0),n}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8791.b209de42.chunk.js b/ydb/core/viewer/monitoring/static/js/8791.b209de42.chunk.js new file mode 100644 index 000000000000..0fed58d59b35 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8791.b209de42.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 8791.b209de42.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8791],{98791:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>o,language:()=>s});var o={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`"},{open:'"',close:'"'},{open:"'",close:"'"}]},s={defaultToken:"",tokenPostfix:".go",keywords:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var","bool","true","false","uint8","uint16","uint32","uint64","int8","int16","int32","int64","float32","float64","complex64","complex128","byte","rune","uint","int","uintptr","string","nil"],operators:["+","-","*","/","%","&","|","^","<<",">>","&^","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=","&^=","&&","||","<-","++","--","==","<",">","=","!","!=","<=",">=",":=","...","(",")","","]","{","}",",",";",".",":"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/\[\[.*\]\]/,"annotation"],[/^\s*#\w+/,"keyword"],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex"],[/0[0-7']*[0-7]/,"number.octal"],[/0[bB][0-1']*[0-1]/,"number.binary"],[/\d[\d']*/,"number"],[/\d/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/`/,"string","@rawstring"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],rawstring:[[/[^\`]/,"string"],[/`/,"string","@pop"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8791.b209de42.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/8791.b209de42.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8791.b209de42.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/8794.5ad5fb7d.chunk.js b/ydb/core/viewer/monitoring/static/js/8794.5ad5fb7d.chunk.js deleted file mode 100644 index 674a35d3fcfb..000000000000 --- a/ydb/core/viewer/monitoring/static/js/8794.5ad5fb7d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8794],{58794:function(e,t,n){n.r(t),n.d(t,{conf:function(){return m},language:function(){return i}});var a=n(37456),r=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],m={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{{!--","--}}"]},brackets:[["\x3c!--","--\x3e"],["<",">"],["{{","}}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp("<(?!(?:"+r.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:a.Mj.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(?!(?:"+r.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:a.Mj.IndentAction.Indent}}]},i={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/\{\{!--/,"comment.block.start.handlebars","@commentBlock"],[/\{\{!/,"comment.start.handlebars","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.root"}],[/<!DOCTYPE/,"metatag.html","@doctype"],[/<!--/,"comment.html","@commentHtml"],[/(<)(\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"],[/\{/,"delimiter.html"],[/[^<{]+/]],doctype:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/\}\}/,"comment.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentBlock:[[/--\}\}/,"comment.block.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentHtml:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.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:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.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:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.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:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.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:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.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:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.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:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],handlebarsInSimpleState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3"}],{include:"handlebarsRoot"}],handlebarsInEmbeddedState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"handlebarsRoot"}],handlebarsRoot:[[/"[^"]*"/,"string.handlebars"],[/[#/][^\s}]+/,"keyword.helper.handlebars"],[/else\b/,"keyword.helper.handlebars"],[/[\s]+/],[/[^}]/,"variable.parameter.handlebars"]]}}}}]); -//# sourceMappingURL=8794.5ad5fb7d.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8797.f8f0ce13.chunk.js b/ydb/core/viewer/monitoring/static/js/8797.f8f0ce13.chunk.js new file mode 100644 index 000000000000..31da3559f005 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8797.f8f0ce13.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 8797.f8f0ce13.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8797],{98797:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>i,language:()=>o});var i={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],autoCloseBefore:".,=}])>' \n\t",indentationRules:{increaseIndentPattern:new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),decreaseIndentPattern:new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")}},o={defaultToken:"",tokenPostfix:".proto",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],symbols:/[=><!~?:&|+\-*/^%]+/,keywords:["syntax","import","weak","public","package","option","repeated","oneof","map","reserved","to","max","enum","message","service","rpc","stream","returns","package","optional","true","false"],builtinTypes:["double","float","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","bool","string","bytes"],operators:["=","+","-"],namedLiterals:["true","false"],escapes:"\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)",identifier:/[a-zA-Z]\w*/,fullIdentifier:/@identifier(?:\s*\.\s*@identifier)*/,optionName:/(?:@identifier|\(\s*@fullIdentifier\s*\))(?:\s*\.\s*@identifier)*/,messageName:/@identifier/,enumName:/@identifier/,messageType:/\.?\s*(?:@identifier\s*\.\s*)*@messageName/,enumType:/\.?\s*(?:@identifier\s*\.\s*)*@enumName/,floatLit:/[0-9]+\s*\.\s*[0-9]*(?:@exponent)?|[0-9]+@exponent|\.[0-9]+(?:@exponent)?/,exponent:/[eE]\s*[+-]?\s*[0-9]+/,boolLit:/true\b|false\b/,decimalLit:/[1-9][0-9]*/,octalLit:/0[0-7]*/,hexLit:/0[xX][0-9a-fA-F]+/,type:/double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes|@messageType|@enumType/,keyType:/int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string/,tokenizer:{root:[{include:"@whitespace"},[/syntax/,"keyword"],[/=/,"operators"],[/;/,"delimiter"],[/(")(proto3)(")/,["string.quote","string",{token:"string.quote",switchTo:"@topLevel.proto3"}]],[/(")(proto2)(")/,["string.quote","string",{token:"string.quote",switchTo:"@topLevel.proto2"}]],[/.*?/,{token:"",switchTo:"@topLevel.proto2"}]],topLevel:[{include:"@whitespace"},{include:"@constant"},[/=/,"operators"],[/[;.]/,"delimiter"],[/@fullIdentifier/,{cases:{option:{token:"keyword",next:"@option.$S2"},enum:{token:"keyword",next:"@enumDecl.$S2"},message:{token:"keyword",next:"@messageDecl.$S2"},service:{token:"keyword",next:"@serviceDecl.$S2"},extend:{cases:{"$S2==proto2":{token:"keyword",next:"@extendDecl.$S2"}}},"@keywords":"keyword","@default":"identifier"}}]],enumDecl:[{include:"@whitespace"},[/@identifier/,"type.identifier"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@enumBody.$S2"}]],enumBody:[{include:"@whitespace"},{include:"@constant"},[/=/,"operators"],[/;/,"delimiter"],[/option\b/,"keyword","@option.$S2"],[/@identifier/,"identifier"],[/\[/,{token:"@brackets",bracket:"@open",next:"@options.$S2"}],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],messageDecl:[{include:"@whitespace"},[/@identifier/,"type.identifier"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@messageBody.$S2"}]],messageBody:[{include:"@whitespace"},{include:"@constant"},[/=/,"operators"],[/;/,"delimiter"],["(map)(s*)(<)",["keyword","white",{token:"@brackets",bracket:"@open",next:"@map.$S2"}]],[/@identifier/,{cases:{option:{token:"keyword",next:"@option.$S2"},enum:{token:"keyword",next:"@enumDecl.$S2"},message:{token:"keyword",next:"@messageDecl.$S2"},oneof:{token:"keyword",next:"@oneofDecl.$S2"},extensions:{cases:{"$S2==proto2":{token:"keyword",next:"@reserved.$S2"}}},reserved:{token:"keyword",next:"@reserved.$S2"},"(?:repeated|optional)":{token:"keyword",next:"@field.$S2"},required:{cases:{"$S2==proto2":{token:"keyword",next:"@field.$S2"}}},"$S2==proto3":{token:"@rematch",next:"@field.$S2"}}}],[/\[/,{token:"@brackets",bracket:"@open",next:"@options.$S2"}],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],extendDecl:[{include:"@whitespace"},[/@identifier/,"type.identifier"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@extendBody.$S2"}]],extendBody:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],[/(?:repeated|optional|required)/,"keyword","@field.$S2"],[/\[/,{token:"@brackets",bracket:"@open",next:"@options.$S2"}],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],options:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],[/@optionName/,"annotation"],[/[()]/,"annotation.brackets"],[/=/,"operator"],[/\]/,{token:"@brackets",bracket:"@close",next:"@pop"}]],option:[{include:"@whitespace"},[/@optionName/,"annotation"],[/[()]/,"annotation.brackets"],[/=/,"operator","@pop"]],oneofDecl:[{include:"@whitespace"},[/@identifier/,"identifier"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@oneofBody.$S2"}]],oneofBody:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],[/(@identifier)(\s*)(=)/,["identifier","white","delimiter"]],[/@fullIdentifier|\./,{cases:{"@builtinTypes":"keyword","@default":"type.identifier"}}],[/\[/,{token:"@brackets",bracket:"@open",next:"@options.$S2"}],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],reserved:[{include:"@whitespace"},[/,/,"delimiter"],[/;/,"delimiter","@pop"],{include:"@constant"},[/to\b|max\b/,"keyword"]],map:[{include:"@whitespace"},[/@fullIdentifier|\./,{cases:{"@builtinTypes":"keyword","@default":"type.identifier"}}],[/,/,"delimiter"],[/>/,{token:"@brackets",bracket:"@close",switchTo:"identifier"}]],field:[{include:"@whitespace"},["group",{cases:{"$S2==proto2":{token:"keyword",switchTo:"@groupDecl.$S2"}}}],[/(@identifier)(\s*)(=)/,["identifier","white",{token:"delimiter",next:"@pop"}]],[/@fullIdentifier|\./,{cases:{"@builtinTypes":"keyword","@default":"type.identifier"}}]],groupDecl:[{include:"@whitespace"},[/@identifier/,"identifier"],["=","operator"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@messageBody.$S2"}],{include:"@constant"}],type:[{include:"@whitespace"},[/@identifier/,"type.identifier","@pop"],[/./,"delimiter"]],identifier:[{include:"@whitespace"},[/@identifier/,"identifier","@pop"]],serviceDecl:[{include:"@whitespace"},[/@identifier/,"identifier"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@serviceBody.$S2"}]],serviceBody:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],[/option\b/,"keyword","@option.$S2"],[/rpc\b/,"keyword","@rpc.$S2"],[/\[/,{token:"@brackets",bracket:"@open",next:"@options.$S2"}],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],rpc:[{include:"@whitespace"},[/@identifier/,"identifier"],[/\(/,{token:"@brackets",bracket:"@open",switchTo:"@request.$S2"}],[/{/,{token:"@brackets",bracket:"@open",next:"@methodOptions.$S2"}],[/;/,"delimiter","@pop"]],request:[{include:"@whitespace"},[/@messageType/,{cases:{stream:{token:"keyword",next:"@type.$S2"},"@default":"type.identifier"}}],[/\)/,{token:"@brackets",bracket:"@close",switchTo:"@returns.$S2"}]],returns:[{include:"@whitespace"},[/returns\b/,"keyword"],[/\(/,{token:"@brackets",bracket:"@open",switchTo:"@response.$S2"}]],response:[{include:"@whitespace"},[/@messageType/,{cases:{stream:{token:"keyword",next:"@type.$S2"},"@default":"type.identifier"}}],[/\)/,{token:"@brackets",bracket:"@close",switchTo:"@rpc.$S2"}]],methodOptions:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],["option","keyword"],[/@optionName/,"annotation"],[/[()]/,"annotation.brackets"],[/=/,"operator"],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],stringSingle:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],constant:[["@boolLit","keyword.constant"],["@hexLit","number.hex"],["@octalLit","number.octal"],["@decimalLit","number"],["@floatLit","number.float"],[/("([^"\\]|\\.)*|'([^'\\]|\\.)*)$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],[/'/,{token:"string.quote",bracket:"@open",next:"@stringSingle"}],[/{/,{token:"@brackets",bracket:"@open",next:"@prototext"}],[/identifier/,"identifier"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],prototext:[{include:"@whitespace"},{include:"@constant"},[/@identifier/,"identifier"],[/[:;]/,"delimiter"],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8797.f8f0ce13.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/8797.f8f0ce13.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8797.f8f0ce13.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/8850.97635389.chunk.js b/ydb/core/viewer/monitoring/static/js/8850.97635389.chunk.js new file mode 100644 index 000000000000..619cac8e3024 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8850.97635389.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8850],{98850:function(e,_,a){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=_(e),u={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 a.default.locale(u,null,!0),u}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8853.c8f9e9d6.chunk.js b/ydb/core/viewer/monitoring/static/js/8853.c8f9e9d6.chunk.js new file mode 100644 index 000000000000..6be8840f2919 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8853.c8f9e9d6.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8853],{8853:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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:"%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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8858.cd9d49a5.chunk.js b/ydb/core/viewer/monitoring/static/js/8858.cd9d49a5.chunk.js new file mode 100644 index 000000000000..da94c3eb4a11 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8858.cd9d49a5.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8858],{48858:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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(_){return _>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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8905.b8a9fd91.chunk.js b/ydb/core/viewer/monitoring/static/js/8905.b8a9fd91.chunk.js new file mode 100644 index 000000000000..4ad82ee5d44c --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8905.b8a9fd91.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 8905.b8a9fd91.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[8905],{98905:(e,t,p)=>{p.r(t),p.d(t,{conf:()=>n,language:()=>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})/}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/8905.b8a9fd91.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/8905.b8a9fd91.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/8905.b8a9fd91.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/9005.053ddf1a.chunk.js b/ydb/core/viewer/monitoring/static/js/9005.053ddf1a.chunk.js deleted file mode 100644 index 62dfb54698a8..000000000000 --- a/ydb/core/viewer/monitoring/static/js/9005.053ddf1a.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9005],{29005:function(e,n,o){o.r(n),o.d(n,{conf:function(){return t},language:function(){return s}});var t={comments:{lineComment:";",blockComment:["#|","|#"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".scheme",brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],keywords:["case","do","let","loop","if","else","when","cons","car","cdr","cond","lambda","lambda*","syntax-rules","format","set!","quote","eval","append","list","list?","member?","load"],constants:["#t","#f"],operators:["eq?","eqv?","equal?","and","or","not","null?"],tokenizer:{root:[[/#[xXoObB][0-9a-fA-F]+/,"number.hex"],[/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/,"number.float"],[/(?:\b(?:(define|define-syntax|define-macro))\b)(\s+)((?:\w|\-|\!|\?)*)/,["keyword","white","variable"]],{include:"@whitespace"},{include:"@strings"},[/[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/,{cases:{"@keywords":"keyword","@constants":"constant","@operators":"operators","@default":"identifier"}}]],comment:[[/[^\|#]+/,"comment"],[/#\|/,"comment","@push"],[/\|#/,"comment","@pop"],[/[\|#]/,"comment"]],whitespace:[[/[ \t\r\n]+/,"white"],[/#\|/,"comment","@comment"],[/;.*$/,"comment"]],strings:[[/"$/,"string","@popall"],[/"(?=.)/,"string","@multiLineString"]],multiLineString:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string.escape"],[/"/,"string","@popall"],[/\\$/,"string"]]}}}}]); -//# sourceMappingURL=9005.053ddf1a.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9011.f3cf1dfe.chunk.js b/ydb/core/viewer/monitoring/static/js/9011.f3cf1dfe.chunk.js deleted file mode 100644 index a07d92565b40..000000000000 --- a/ydb/core/viewer/monitoring/static/js/9011.f3cf1dfe.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9011],{69011:function(e,t,a){a.r(t),a.d(t,{conf:function(){return n},language:function(){return i}});var n={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment","identifier"]},{open:"[",close:"]",notIn:["string","comment","identifier"]},{open:"(",close:")",notIn:["string","comment","identifier"]},{open:"{",close:"}",notIn:["string","comment","identifier"]}]},i={defaultToken:"",tokenPostfix:".pq",ignoreCase:!1,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.brackets"},{open:"(",close:")",token:"delimiter.parenthesis"}],operatorKeywords:["and","not","or"],keywords:["as","each","else","error","false","if","in","is","let","meta","otherwise","section","shared","then","true","try","type"],constructors:["#binary","#date","#datetime","#datetimezone","#duration","#table","#time"],constants:["#infinity","#nan","#sections","#shared"],typeKeywords:["action","any","anynonnull","none","null","logical","number","time","date","datetime","datetimezone","duration","text","binary","list","record","table","function"],builtinFunctions:["Access.Database","Action.Return","Action.Sequence","Action.Try","ActiveDirectory.Domains","AdoDotNet.DataSource","AdoDotNet.Query","AdobeAnalytics.Cubes","AnalysisServices.Database","AnalysisServices.Databases","AzureStorage.BlobContents","AzureStorage.Blobs","AzureStorage.Tables","Binary.Buffer","Binary.Combine","Binary.Compress","Binary.Decompress","Binary.End","Binary.From","Binary.FromList","Binary.FromText","Binary.InferContentType","Binary.Length","Binary.ToList","Binary.ToText","BinaryFormat.7BitEncodedSignedInteger","BinaryFormat.7BitEncodedUnsignedInteger","BinaryFormat.Binary","BinaryFormat.Byte","BinaryFormat.ByteOrder","BinaryFormat.Choice","BinaryFormat.Decimal","BinaryFormat.Double","BinaryFormat.Group","BinaryFormat.Length","BinaryFormat.List","BinaryFormat.Null","BinaryFormat.Record","BinaryFormat.SignedInteger16","BinaryFormat.SignedInteger32","BinaryFormat.SignedInteger64","BinaryFormat.Single","BinaryFormat.Text","BinaryFormat.Transform","BinaryFormat.UnsignedInteger16","BinaryFormat.UnsignedInteger32","BinaryFormat.UnsignedInteger64","Byte.From","Character.FromNumber","Character.ToNumber","Combiner.CombineTextByDelimiter","Combiner.CombineTextByEachDelimiter","Combiner.CombineTextByLengths","Combiner.CombineTextByPositions","Combiner.CombineTextByRanges","Comparer.Equals","Comparer.FromCulture","Comparer.Ordinal","Comparer.OrdinalIgnoreCase","Csv.Document","Cube.AddAndExpandDimensionColumn","Cube.AddMeasureColumn","Cube.ApplyParameter","Cube.AttributeMemberId","Cube.AttributeMemberProperty","Cube.CollapseAndRemoveColumns","Cube.Dimensions","Cube.DisplayFolders","Cube.Measures","Cube.Parameters","Cube.Properties","Cube.PropertyKey","Cube.ReplaceDimensions","Cube.Transform","Currency.From","DB2.Database","Date.AddDays","Date.AddMonths","Date.AddQuarters","Date.AddWeeks","Date.AddYears","Date.Day","Date.DayOfWeek","Date.DayOfWeekName","Date.DayOfYear","Date.DaysInMonth","Date.EndOfDay","Date.EndOfMonth","Date.EndOfQuarter","Date.EndOfWeek","Date.EndOfYear","Date.From","Date.FromText","Date.IsInCurrentDay","Date.IsInCurrentMonth","Date.IsInCurrentQuarter","Date.IsInCurrentWeek","Date.IsInCurrentYear","Date.IsInNextDay","Date.IsInNextMonth","Date.IsInNextNDays","Date.IsInNextNMonths","Date.IsInNextNQuarters","Date.IsInNextNWeeks","Date.IsInNextNYears","Date.IsInNextQuarter","Date.IsInNextWeek","Date.IsInNextYear","Date.IsInPreviousDay","Date.IsInPreviousMonth","Date.IsInPreviousNDays","Date.IsInPreviousNMonths","Date.IsInPreviousNQuarters","Date.IsInPreviousNWeeks","Date.IsInPreviousNYears","Date.IsInPreviousQuarter","Date.IsInPreviousWeek","Date.IsInPreviousYear","Date.IsInYearToDate","Date.IsLeapYear","Date.Month","Date.MonthName","Date.QuarterOfYear","Date.StartOfDay","Date.StartOfMonth","Date.StartOfQuarter","Date.StartOfWeek","Date.StartOfYear","Date.ToRecord","Date.ToText","Date.WeekOfMonth","Date.WeekOfYear","Date.Year","DateTime.AddZone","DateTime.Date","DateTime.FixedLocalNow","DateTime.From","DateTime.FromFileTime","DateTime.FromText","DateTime.IsInCurrentHour","DateTime.IsInCurrentMinute","DateTime.IsInCurrentSecond","DateTime.IsInNextHour","DateTime.IsInNextMinute","DateTime.IsInNextNHours","DateTime.IsInNextNMinutes","DateTime.IsInNextNSeconds","DateTime.IsInNextSecond","DateTime.IsInPreviousHour","DateTime.IsInPreviousMinute","DateTime.IsInPreviousNHours","DateTime.IsInPreviousNMinutes","DateTime.IsInPreviousNSeconds","DateTime.IsInPreviousSecond","DateTime.LocalNow","DateTime.Time","DateTime.ToRecord","DateTime.ToText","DateTimeZone.FixedLocalNow","DateTimeZone.FixedUtcNow","DateTimeZone.From","DateTimeZone.FromFileTime","DateTimeZone.FromText","DateTimeZone.LocalNow","DateTimeZone.RemoveZone","DateTimeZone.SwitchZone","DateTimeZone.ToLocal","DateTimeZone.ToRecord","DateTimeZone.ToText","DateTimeZone.ToUtc","DateTimeZone.UtcNow","DateTimeZone.ZoneHours","DateTimeZone.ZoneMinutes","Decimal.From","Diagnostics.ActivityId","Diagnostics.Trace","DirectQueryCapabilities.From","Double.From","Duration.Days","Duration.From","Duration.FromText","Duration.Hours","Duration.Minutes","Duration.Seconds","Duration.ToRecord","Duration.ToText","Duration.TotalDays","Duration.TotalHours","Duration.TotalMinutes","Duration.TotalSeconds","Embedded.Value","Error.Record","Excel.CurrentWorkbook","Excel.Workbook","Exchange.Contents","Expression.Constant","Expression.Evaluate","Expression.Identifier","Facebook.Graph","File.Contents","Folder.Contents","Folder.Files","Function.From","Function.Invoke","Function.InvokeAfter","Function.IsDataSource","GoogleAnalytics.Accounts","Guid.From","HdInsight.Containers","HdInsight.Contents","HdInsight.Files","Hdfs.Contents","Hdfs.Files","Informix.Database","Int16.From","Int32.From","Int64.From","Int8.From","ItemExpression.From","Json.Document","Json.FromValue","Lines.FromBinary","Lines.FromText","Lines.ToBinary","Lines.ToText","List.Accumulate","List.AllTrue","List.Alternate","List.AnyTrue","List.Average","List.Buffer","List.Combine","List.Contains","List.ContainsAll","List.ContainsAny","List.Count","List.Covariance","List.DateTimeZones","List.DateTimes","List.Dates","List.Difference","List.Distinct","List.Durations","List.FindText","List.First","List.FirstN","List.Generate","List.InsertRange","List.Intersect","List.IsDistinct","List.IsEmpty","List.Last","List.LastN","List.MatchesAll","List.MatchesAny","List.Max","List.MaxN","List.Median","List.Min","List.MinN","List.Mode","List.Modes","List.NonNullCount","List.Numbers","List.PositionOf","List.PositionOfAny","List.Positions","List.Product","List.Random","List.Range","List.RemoveFirstN","List.RemoveItems","List.RemoveLastN","List.RemoveMatchingItems","List.RemoveNulls","List.RemoveRange","List.Repeat","List.ReplaceMatchingItems","List.ReplaceRange","List.ReplaceValue","List.Reverse","List.Select","List.Single","List.SingleOrDefault","List.Skip","List.Sort","List.StandardDeviation","List.Sum","List.Times","List.Transform","List.TransformMany","List.Union","List.Zip","Logical.From","Logical.FromText","Logical.ToText","MQ.Queue","MySQL.Database","Number.Abs","Number.Acos","Number.Asin","Number.Atan","Number.Atan2","Number.BitwiseAnd","Number.BitwiseNot","Number.BitwiseOr","Number.BitwiseShiftLeft","Number.BitwiseShiftRight","Number.BitwiseXor","Number.Combinations","Number.Cos","Number.Cosh","Number.Exp","Number.Factorial","Number.From","Number.FromText","Number.IntegerDivide","Number.IsEven","Number.IsNaN","Number.IsOdd","Number.Ln","Number.Log","Number.Log10","Number.Mod","Number.Permutations","Number.Power","Number.Random","Number.RandomBetween","Number.Round","Number.RoundAwayFromZero","Number.RoundDown","Number.RoundTowardZero","Number.RoundUp","Number.Sign","Number.Sin","Number.Sinh","Number.Sqrt","Number.Tan","Number.Tanh","Number.ToText","OData.Feed","Odbc.DataSource","Odbc.Query","OleDb.DataSource","OleDb.Query","Oracle.Database","Percentage.From","PostgreSQL.Database","RData.FromBinary","Record.AddField","Record.Combine","Record.Field","Record.FieldCount","Record.FieldNames","Record.FieldOrDefault","Record.FieldValues","Record.FromList","Record.FromTable","Record.HasFields","Record.RemoveFields","Record.RenameFields","Record.ReorderFields","Record.SelectFields","Record.ToList","Record.ToTable","Record.TransformFields","Replacer.ReplaceText","Replacer.ReplaceValue","RowExpression.Column","RowExpression.From","Salesforce.Data","Salesforce.Reports","SapBusinessWarehouse.Cubes","SapHana.Database","SharePoint.Contents","SharePoint.Files","SharePoint.Tables","Single.From","Soda.Feed","Splitter.SplitByNothing","Splitter.SplitTextByAnyDelimiter","Splitter.SplitTextByDelimiter","Splitter.SplitTextByEachDelimiter","Splitter.SplitTextByLengths","Splitter.SplitTextByPositions","Splitter.SplitTextByRanges","Splitter.SplitTextByRepeatedLengths","Splitter.SplitTextByWhitespace","Sql.Database","Sql.Databases","SqlExpression.SchemaFrom","SqlExpression.ToExpression","Sybase.Database","Table.AddColumn","Table.AddIndexColumn","Table.AddJoinColumn","Table.AddKey","Table.AggregateTableColumn","Table.AlternateRows","Table.Buffer","Table.Column","Table.ColumnCount","Table.ColumnNames","Table.ColumnsOfType","Table.Combine","Table.CombineColumns","Table.Contains","Table.ContainsAll","Table.ContainsAny","Table.DemoteHeaders","Table.Distinct","Table.DuplicateColumn","Table.ExpandListColumn","Table.ExpandRecordColumn","Table.ExpandTableColumn","Table.FillDown","Table.FillUp","Table.FilterWithDataTable","Table.FindText","Table.First","Table.FirstN","Table.FirstValue","Table.FromColumns","Table.FromList","Table.FromPartitions","Table.FromRecords","Table.FromRows","Table.FromValue","Table.Group","Table.HasColumns","Table.InsertRows","Table.IsDistinct","Table.IsEmpty","Table.Join","Table.Keys","Table.Last","Table.LastN","Table.MatchesAllRows","Table.MatchesAnyRows","Table.Max","Table.MaxN","Table.Min","Table.MinN","Table.NestedJoin","Table.Partition","Table.PartitionValues","Table.Pivot","Table.PositionOf","Table.PositionOfAny","Table.PrefixColumns","Table.Profile","Table.PromoteHeaders","Table.Range","Table.RemoveColumns","Table.RemoveFirstN","Table.RemoveLastN","Table.RemoveMatchingRows","Table.RemoveRows","Table.RemoveRowsWithErrors","Table.RenameColumns","Table.ReorderColumns","Table.Repeat","Table.ReplaceErrorValues","Table.ReplaceKeys","Table.ReplaceMatchingRows","Table.ReplaceRelationshipIdentity","Table.ReplaceRows","Table.ReplaceValue","Table.ReverseRows","Table.RowCount","Table.Schema","Table.SelectColumns","Table.SelectRows","Table.SelectRowsWithErrors","Table.SingleRow","Table.Skip","Table.Sort","Table.SplitColumn","Table.ToColumns","Table.ToList","Table.ToRecords","Table.ToRows","Table.TransformColumnNames","Table.TransformColumnTypes","Table.TransformColumns","Table.TransformRows","Table.Transpose","Table.Unpivot","Table.UnpivotOtherColumns","Table.View","Table.ViewFunction","TableAction.DeleteRows","TableAction.InsertRows","TableAction.UpdateRows","Tables.GetRelationships","Teradata.Database","Text.AfterDelimiter","Text.At","Text.BeforeDelimiter","Text.BetweenDelimiters","Text.Clean","Text.Combine","Text.Contains","Text.End","Text.EndsWith","Text.Format","Text.From","Text.FromBinary","Text.Insert","Text.Length","Text.Lower","Text.Middle","Text.NewGuid","Text.PadEnd","Text.PadStart","Text.PositionOf","Text.PositionOfAny","Text.Proper","Text.Range","Text.Remove","Text.RemoveRange","Text.Repeat","Text.Replace","Text.ReplaceRange","Text.Select","Text.Split","Text.SplitAny","Text.Start","Text.StartsWith","Text.ToBinary","Text.ToList","Text.Trim","Text.TrimEnd","Text.TrimStart","Text.Upper","Time.EndOfHour","Time.From","Time.FromText","Time.Hour","Time.Minute","Time.Second","Time.StartOfHour","Time.ToRecord","Time.ToText","Type.AddTableKey","Type.ClosedRecord","Type.Facets","Type.ForFunction","Type.ForRecord","Type.FunctionParameters","Type.FunctionRequiredParameters","Type.FunctionReturn","Type.Is","Type.IsNullable","Type.IsOpenRecord","Type.ListItem","Type.NonNullable","Type.OpenRecord","Type.RecordFields","Type.ReplaceFacets","Type.ReplaceTableKeys","Type.TableColumn","Type.TableKeys","Type.TableRow","Type.TableSchema","Type.Union","Uri.BuildQueryString","Uri.Combine","Uri.EscapeDataString","Uri.Parts","Value.Add","Value.As","Value.Compare","Value.Divide","Value.Equals","Value.Firewall","Value.FromText","Value.Is","Value.Metadata","Value.Multiply","Value.NativeQuery","Value.NullableEquals","Value.RemoveMetadata","Value.ReplaceMetadata","Value.ReplaceType","Value.Subtract","Value.Type","ValueAction.NativeStatement","ValueAction.Replace","Variable.Value","Web.Contents","Web.Page","WebAction.Request","Xml.Document","Xml.Tables"],builtinConstants:["BinaryEncoding.Base64","BinaryEncoding.Hex","BinaryOccurrence.Optional","BinaryOccurrence.Repeating","BinaryOccurrence.Required","ByteOrder.BigEndian","ByteOrder.LittleEndian","Compression.Deflate","Compression.GZip","CsvStyle.QuoteAfterDelimiter","CsvStyle.QuoteAlways","Culture.Current","Day.Friday","Day.Monday","Day.Saturday","Day.Sunday","Day.Thursday","Day.Tuesday","Day.Wednesday","ExtraValues.Error","ExtraValues.Ignore","ExtraValues.List","GroupKind.Global","GroupKind.Local","JoinAlgorithm.Dynamic","JoinAlgorithm.LeftHash","JoinAlgorithm.LeftIndex","JoinAlgorithm.PairwiseHash","JoinAlgorithm.RightHash","JoinAlgorithm.RightIndex","JoinAlgorithm.SortMerge","JoinKind.FullOuter","JoinKind.Inner","JoinKind.LeftAnti","JoinKind.LeftOuter","JoinKind.RightAnti","JoinKind.RightOuter","JoinSide.Left","JoinSide.Right","MissingField.Error","MissingField.Ignore","MissingField.UseNull","Number.E","Number.Epsilon","Number.NaN","Number.NegativeInfinity","Number.PI","Number.PositiveInfinity","Occurrence.All","Occurrence.First","Occurrence.Last","Occurrence.Optional","Occurrence.Repeating","Occurrence.Required","Order.Ascending","Order.Descending","Precision.Decimal","Precision.Double","QuoteStyle.Csv","QuoteStyle.None","RelativePosition.FromEnd","RelativePosition.FromStart","RoundingMode.AwayFromZero","RoundingMode.Down","RoundingMode.ToEven","RoundingMode.TowardZero","RoundingMode.Up","SapHanaDistribution.All","SapHanaDistribution.Connection","SapHanaDistribution.Off","SapHanaDistribution.Statement","SapHanaRangeOperator.Equals","SapHanaRangeOperator.GreaterThan","SapHanaRangeOperator.GreaterThanOrEquals","SapHanaRangeOperator.LessThan","SapHanaRangeOperator.LessThanOrEquals","SapHanaRangeOperator.NotEquals","TextEncoding.Ascii","TextEncoding.BigEndianUnicode","TextEncoding.Unicode","TextEncoding.Utf16","TextEncoding.Utf8","TextEncoding.Windows","TraceLevel.Critical","TraceLevel.Error","TraceLevel.Information","TraceLevel.Verbose","TraceLevel.Warning","WebMethod.Delete","WebMethod.Get","WebMethod.Head","WebMethod.Patch","WebMethod.Post","WebMethod.Put"],builtinTypes:["Action.Type","Any.Type","Binary.Type","BinaryEncoding.Type","BinaryOccurrence.Type","Byte.Type","ByteOrder.Type","Character.Type","Compression.Type","CsvStyle.Type","Currency.Type","Date.Type","DateTime.Type","DateTimeZone.Type","Day.Type","Decimal.Type","Double.Type","Duration.Type","ExtraValues.Type","Function.Type","GroupKind.Type","Guid.Type","Int16.Type","Int32.Type","Int64.Type","Int8.Type","JoinAlgorithm.Type","JoinKind.Type","JoinSide.Type","List.Type","Logical.Type","MissingField.Type","None.Type","Null.Type","Number.Type","Occurrence.Type","Order.Type","Password.Type","Percentage.Type","Precision.Type","QuoteStyle.Type","Record.Type","RelativePosition.Type","RoundingMode.Type","SapHanaDistribution.Type","SapHanaRangeOperator.Type","Single.Type","Table.Type","Text.Type","TextEncoding.Type","Time.Type","TraceLevel.Type","Type.Type","Uri.Type","WebMethod.Type"],tokenizer:{root:[[/#"[\w \.]+"/,"identifier.quote"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+([eE][\-+]?\d+)?/,"number"],[/(#?[a-z]+)\b/,{cases:{"@typeKeywords":"type","@keywords":"keyword","@constants":"constant","@constructors":"constructor","@operatorKeywords":"operators","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.Type)\b/,{cases:{"@builtinTypes":"type","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.[A-Z][a-zA-Z0-9]+)\b/,{cases:{"@builtinFunctions":"keyword.function","@builtinConstants":"constant","@default":"identifier"}}],[/\b([a-zA-Z_][\w\.]*)\b/,"identifier"],{include:"@whitespace"},{include:"@comments"},{include:"@strings"},[/[{}()\[\]]/,"@brackets"],[/([=\+<>\-\*&@\?\/!])|([<>]=)|(<>)|(=>)|(\.\.\.)|(\.\.)/,"operators"],[/[,;]/,"delimiter"]],whitespace:[[/\s+/,"white"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],strings:[['"',"string","@string"]],string:[['""',"string.escape"],['"',"string","@pop"],[".","string"]]}}}}]); -//# sourceMappingURL=9011.f3cf1dfe.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9101.ce051539.chunk.js b/ydb/core/viewer/monitoring/static/js/9101.ce051539.chunk.js new file mode 100644 index 000000000000..6b3b0d24b4b9 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9101.ce051539.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9101],{79101:function(_,d,t){_.exports=function(_){"use strict";function d(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=d(_),r={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(_){return _},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 t.default.locale(r,null,!0),r}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9163.de992e19.chunk.js b/ydb/core/viewer/monitoring/static/js/9163.de992e19.chunk.js deleted file mode 100644 index 73805949f32c..000000000000 --- a/ydb/core/viewer/monitoring/static/js/9163.de992e19.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9163],{89163:function(e,n,t){t.r(n),t.d(n,{conf:function(){return r},language:function(){return i}});var o="\\b"+"[_a-zA-Z][_a-zA-Z0-9]*"+"\\b",r={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:"'''",close:"'''"}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:"'''",close:"'''",notIn:["string","comment"]}],autoCloseBefore:":.,=}])' \n\t",indentationRules:{increaseIndentPattern:new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),decreaseIndentPattern:new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")}},i={defaultToken:"",tokenPostfix:".bicep",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[=><!~?:&|+\-*/^%]+/,keywords:["targetScope","resource","module","param","var","output","for","in","if","existing"],namedLiterals:["true","false","null"],escapes:"\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)",tokenizer:{root:[{include:"@expression"},{include:"@whitespace"}],stringVerbatim:[{regex:"(|'|'')[^']",action:{token:"string"}},{regex:"'''",action:{token:"string.quote",next:"@pop"}}],stringLiteral:[{regex:"\\${",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:"[^\\\\'$]+",action:{token:"string"}},{regex:"@escapes",action:{token:"string.escape"}},{regex:"\\\\.",action:{token:"string.escape.invalid"}},{regex:"'",action:{token:"string",next:"@pop"}}],bracketCounting:[{regex:"{",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:"}",action:{token:"delimiter.bracket",next:"@pop"}},{include:"expression"}],comment:[{regex:"[^\\*]+",action:{token:"comment"}},{regex:"\\*\\/",action:{token:"comment",next:"@pop"}},{regex:"[\\/*]",action:{token:"comment"}}],whitespace:[{regex:"[ \\t\\r\\n]"},{regex:"\\/\\*",action:{token:"comment",next:"@comment"}},{regex:"\\/\\/.*$",action:{token:"comment"}}],expression:[{regex:"'''",action:{token:"string.quote",next:"@stringVerbatim"}},{regex:"'",action:{token:"string.quote",next:"@stringLiteral"}},{regex:"[0-9]+",action:{token:"number"}},{regex:o,action:{cases:{"@keywords":{token:"keyword"},"@namedLiterals":{token:"keyword"},"@default":{token:"identifier"}}}}]}}}}]); -//# sourceMappingURL=9163.de992e19.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9173.71d773f2.chunk.js b/ydb/core/viewer/monitoring/static/js/9173.71d773f2.chunk.js new file mode 100644 index 000000000000..e761067467e6 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9173.71d773f2.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 9173.71d773f2.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9173],{39173:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>h,language:()=>b});var a,r,m=n(41551),l=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,d=Object.prototype.hasOwnProperty,s=(e,t,n,a)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let r of o(t))d.call(e,r)||r===n||l(e,r,{get:()=>t[r],enumerable:!(a=i(t,r))||a.enumerable});return e},c={};s(c,a=m,"default"),r&&s(r,a,"default");var p=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],h={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{{!--","--}}"]},brackets:[["\x3c!--","--\x3e"],["<",">"],["{{","}}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp("<(?!(?:".concat(p.join("|"),"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$"),"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:c.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(?!(?:".concat(p.join("|"),"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$"),"i"),action:{indentAction:c.languages.IndentAction.Indent}}]},b={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/\{\{!--/,"comment.block.start.handlebars","@commentBlock"],[/\{\{!/,"comment.start.handlebars","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.root"}],[/<!DOCTYPE/,"metatag.html","@doctype"],[/<!--/,"comment.html","@commentHtml"],[/(<)(\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"],[/\{/,"delimiter.html"],[/[^<{]+/]],doctype:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/\}\}/,"comment.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentBlock:[[/--\}\}/,"comment.block.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentHtml:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.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:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.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:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.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:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.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:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.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:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.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:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],handlebarsInSimpleState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3"}],{include:"handlebarsRoot"}],handlebarsInEmbeddedState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"handlebarsRoot"}],handlebarsRoot:[[/"[^"]*"/,"string.handlebars"],[/[#/][^\s}]+/,"keyword.helper.handlebars"],[/else\b/,"keyword.helper.handlebars"],[/[\s]+/],[/[^}]/,"variable.parameter.handlebars"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9173.71d773f2.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/9173.71d773f2.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9173.71d773f2.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/919.53e04507.chunk.js b/ydb/core/viewer/monitoring/static/js/919.53e04507.chunk.js new file mode 100644 index 000000000000..4a349ad1d412 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/919.53e04507.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 919.53e04507.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[919],{50919:(e,s,t)=>{t.r(s),t.d(s,{conf:()=>n,language:()=>i});var n={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"'",close:"'",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"}]},i={defaultToken:"",tokenPostfix:".rq",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["add","as","asc","ask","base","by","clear","construct","copy","create","data","delete","desc","describe","distinct","drop","false","filter","from","graph","group","having","in","insert","limit","load","minus","move","named","not","offset","optional","order","prefix","reduced","select","service","silent","to","true","undef","union","using","values","where","with"],builtinFunctions:["a","abs","avg","bind","bnode","bound","ceil","coalesce","concat","contains","count","datatype","day","encode_for_uri","exists","floor","group_concat","hours","if","iri","isblank","isiri","isliteral","isnumeric","isuri","lang","langmatches","lcase","max","md5","min","minutes","month","now","rand","regex","replace","round","sameterm","sample","seconds","sha1","sha256","sha384","sha512","str","strafter","strbefore","strdt","strends","strlang","strlen","strstarts","struuid","substr","sum","timezone","tz","ucase","uri","uuid","year"],ignoreCase:!0,tokenizer:{root:[[/<[^\s\u00a0>]*>?/,"tag"],{include:"@strings"},[/#.*/,"comment"],[/[{}()\[\]]/,"@brackets"],[/[;,.]/,"delimiter"],[/[_\w\d]+:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])*/,"tag"],[/:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/,"tag"],[/[$?]?[_\w\d]+/,{cases:{"@keywords":{token:"keyword"},"@builtinFunctions":{token:"predefined.sql"},"@default":"identifier"}}],[/\^\^/,"operator.sql"],[/\^[*+\-<>=&|^\/!?]*/,"operator.sql"],[/[*+\-<>=&|\/!?]/,"operator.sql"],[/@[a-z\d\-]*/,"metatag.html"],[/\s+/,"white"]],strings:[[/'([^'\\]|\\.)*$/,"string.invalid"],[/'$/,"string.sql","@pop"],[/'/,"string.sql","@stringBody"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"$/,"string.sql","@pop"],[/"/,"string.sql","@dblStringBody"]],stringBody:[[/[^\\']+/,"string.sql"],[/\\./,"string.escape"],[/'/,"string.sql","@pop"]],dblStringBody:[[/[^\\"]+/,"string.sql"],[/\\./,"string.escape"],[/"/,"string.sql","@pop"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/919.53e04507.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/919.53e04507.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/919.53e04507.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/9204.77418f94.chunk.js b/ydb/core/viewer/monitoring/static/js/9204.77418f94.chunk.js new file mode 100644 index 000000000000..ef0327f1535b --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9204.77418f94.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9204],{89204:function(e,t,_){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=t(e),n="\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"},d={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},u={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:n,monthsShort:n,weekStart:6,meridiem:function(e){return e>12?"\u0645":"\u0635"},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 d[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 _.default.locale(u,null,!0),u}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9207.5881b206.chunk.js b/ydb/core/viewer/monitoring/static/js/9207.5881b206.chunk.js new file mode 100644 index 000000000000..59ecb7fc636e --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9207.5881b206.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9207],{89207:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9212.870f16f0.chunk.js b/ydb/core/viewer/monitoring/static/js/9212.870f16f0.chunk.js new file mode 100644 index 000000000000..ca03594510ca --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9212.870f16f0.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9212],{89212:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _+"."}};return t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9219.24a20881.chunk.js b/ydb/core/viewer/monitoring/static/js/9219.24a20881.chunk.js new file mode 100644 index 000000000000..0ce10a1f7878 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9219.24a20881.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9219],{29219:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),d={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(_){return _},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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/924.382f18b1.chunk.js b/ydb/core/viewer/monitoring/static/js/924.382f18b1.chunk.js new file mode 100644 index 000000000000..9218774950ad --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/924.382f18b1.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 924.382f18b1.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[924],{90924:(t,e,r)=>{r.r(e),r.d(e,{conf:()=>s,language:()=>o});var s={brackets:[],autoClosingPairs:[],surroundingPairs:[]},o={keywords:[],typeKeywords:[],tokenPostfix:".csp",operators:[],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/child-src/,"string.quote"],[/connect-src/,"string.quote"],[/default-src/,"string.quote"],[/font-src/,"string.quote"],[/frame-src/,"string.quote"],[/img-src/,"string.quote"],[/manifest-src/,"string.quote"],[/media-src/,"string.quote"],[/object-src/,"string.quote"],[/script-src/,"string.quote"],[/style-src/,"string.quote"],[/worker-src/,"string.quote"],[/base-uri/,"string.quote"],[/plugin-types/,"string.quote"],[/sandbox/,"string.quote"],[/disown-opener/,"string.quote"],[/form-action/,"string.quote"],[/frame-ancestors/,"string.quote"],[/report-uri/,"string.quote"],[/report-to/,"string.quote"],[/upgrade-insecure-requests/,"string.quote"],[/block-all-mixed-content/,"string.quote"],[/require-sri-for/,"string.quote"],[/reflected-xss/,"string.quote"],[/referrer/,"string.quote"],[/policy-uri/,"string.quote"],[/'self'/,"string.quote"],[/'unsafe-inline'/,"string.quote"],[/'unsafe-eval'/,"string.quote"],[/'strict-dynamic'/,"string.quote"],[/'unsafe-hashed-attributes'/,"string.quote"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/924.382f18b1.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/924.382f18b1.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/924.382f18b1.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/9280.40cff028.chunk.js b/ydb/core/viewer/monitoring/static/js/9280.40cff028.chunk.js new file mode 100644 index 000000000000..b813c4112507 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9280.40cff028.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9280],{9280:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),n={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},d={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"},r={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(_){return _.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,(function(_){return d[_]}))},postformat:function(_){return _.replace(/\d/g,(function(_){return n[_]}))},ordinal:function(_){return _},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 t.default.locale(r,null,!0),r}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9292.3ccb6509.chunk.js b/ydb/core/viewer/monitoring/static/js/9292.3ccb6509.chunk.js deleted file mode 100644 index aa45e59783ea..000000000000 --- a/ydb/core/viewer/monitoring/static/js/9292.3ccb6509.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9292],{89292:function(e,t,n){n.r(t),n.d(t,{conf:function(){return o},language:function(){return s}});var o={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},s={tokenPostfix:".rust",defaultToken:"invalid",keywords:["as","async","await","box","break","const","continue","crate","dyn","else","enum","extern","false","fn","for","if","impl","in","let","loop","match","mod","move","mut","pub","ref","return","self","static","struct","super","trait","true","try","type","unsafe","use","where","while","catch","default","union","static","abstract","alignof","become","do","final","macro","offsetof","override","priv","proc","pure","sizeof","typeof","unsized","virtual","yield"],typeKeywords:["Self","m32","m64","m128","f80","f16","f128","int","uint","float","char","bool","u8","u16","u32","u64","f32","f64","i8","i16","i32","i64","str","Option","Either","c_float","c_double","c_void","FILE","fpos_t","DIR","dirent","c_char","c_schar","c_uchar","c_short","c_ushort","c_int","c_uint","c_long","c_ulong","size_t","ptrdiff_t","clock_t","time_t","c_longlong","c_ulonglong","intptr_t","uintptr_t","off_t","dev_t","ino_t","pid_t","mode_t","ssize_t"],constants:["true","false","Some","None","Left","Right","Ok","Err"],supportConstants:["EXIT_FAILURE","EXIT_SUCCESS","RAND_MAX","EOF","SEEK_SET","SEEK_CUR","SEEK_END","_IOFBF","_IONBF","_IOLBF","BUFSIZ","FOPEN_MAX","FILENAME_MAX","L_tmpnam","TMP_MAX","O_RDONLY","O_WRONLY","O_RDWR","O_APPEND","O_CREAT","O_EXCL","O_TRUNC","S_IFIFO","S_IFCHR","S_IFBLK","S_IFDIR","S_IFREG","S_IFMT","S_IEXEC","S_IWRITE","S_IREAD","S_IRWXU","S_IXUSR","S_IWUSR","S_IRUSR","F_OK","R_OK","W_OK","X_OK","STDIN_FILENO","STDOUT_FILENO","STDERR_FILENO"],supportMacros:["format!","print!","println!","panic!","format_args!","unreachable!","write!","writeln!"],operators:["!","!=","%","%=","&","&=","&&","*","*=","+","+=","-","-=","->",".","..","...","/","/=",":",";","<<","<<=","<","<=","=","==","=>",">",">=",">>",">>=","@","^","^=","|","|=","||","_","?","#"],escapes:/\\([nrt0\"''\\]|x\h{2}|u\{\h{1,6}\})/,delimiters:/[,]/,symbols:/[\#\!\%\&\*\+\-\.\/\:\;\<\=\>\@\^\|_\?]+/,intSuffixes:/[iu](8|16|32|64|128|size)/,floatSuffixes:/f(32|64)/,tokenizer:{root:[[/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,{cases:{"@typeKeywords":"keyword.type","@keywords":"keyword","@supportConstants":"keyword","@supportMacros":"keyword","@constants":"keyword","@default":"identifier"}}],[/\$/,"identifier"],[/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\'])/,"identifier"],[/'\S'/,"string.byteliteral"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],{include:"@numbers"},{include:"@whitespace"},[/@delimiters/,{cases:{"@keywords":"keyword","@default":"delimiter"}}],[/[{}()\[\]<>]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],numbers:[[/(0o[0-7_]+)(@intSuffixes)?/,{token:"number"}],[/(0b[0-1_]+)(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(\.[\d][\d_]*)?[eE][+-][\d_]+(@floatSuffixes)?/,{token:"number"}],[/\b(\d\.?[\d_]*)(@floatSuffixes)?\b/,{token:"number"}],[/(0x[\da-fA-F]+)_?(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(@intSuffixes?)?/,{token:"number"}]]}}}}]); -//# sourceMappingURL=9292.3ccb6509.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9292.91ed23f7.chunk.js b/ydb/core/viewer/monitoring/static/js/9292.91ed23f7.chunk.js new file mode 100644 index 000000000000..d9d0b64eeafe --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9292.91ed23f7.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9292],{49292:function(e,u,_){e.exports=function(e){"use strict";function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=u(e),a={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 _.default.locale(a,null,!0),a}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9297.eadc4dba.chunk.js b/ydb/core/viewer/monitoring/static/js/9297.eadc4dba.chunk.js new file mode 100644 index 000000000000..84fb0c4ea9d6 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9297.eadc4dba.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9297],{29297:function(e,_,a){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=_(e),u={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 a.default.locale(u,null,!0),u}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9308.c72b8585.chunk.js b/ydb/core/viewer/monitoring/static/js/9308.c72b8585.chunk.js new file mode 100644 index 000000000000..a100d0dd25c8 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9308.c72b8585.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9308],{69308:function(e,a,t){e.exports=function(e){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=a(e),r={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,a){return e%10>=1&&e%10<=4&&(e%100<10||e%100>=20)?e%10==1?a[0]:a[1]:a[2]},relativeTimeFormatter:function(e,a,t,d){var n=r.words[t];if(1===t.length)return"y"===t&&a?"jedna godina":d||a?n[0]:n[1];var i=r.correctGrammarCase(e,n);return"yy"===t&&a&&"%d godinu"===i?e+" godina":i.replace("%d",e)}},d={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:r.relativeTimeFormatter,mm:r.relativeTimeFormatter,h:r.relativeTimeFormatter,hh:r.relativeTimeFormatter,d:r.relativeTimeFormatter,dd:r.relativeTimeFormatter,M:r.relativeTimeFormatter,MM:r.relativeTimeFormatter,y:r.relativeTimeFormatter,yy:r.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 t.default.locale(d,null,!0),d}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9319.40f9e46a.chunk.js b/ydb/core/viewer/monitoring/static/js/9319.40f9e46a.chunk.js new file mode 100644 index 000000000000..a6cb82ee6af7 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9319.40f9e46a.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 9319.40f9e46a.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9319],{49319:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>s,language:()=>o});var s={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},o={defaultToken:"",tokenPostfix:".cs",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["extern","alias","using","bool","decimal","sbyte","byte","short","ushort","int","uint","long","ulong","char","float","double","object","dynamic","string","assembly","is","as","ref","out","this","base","new","typeof","void","checked","unchecked","default","delegate","var","const","if","else","switch","case","while","do","for","foreach","in","break","continue","goto","return","throw","try","catch","finally","lock","yield","from","let","where","join","on","equals","into","orderby","ascending","descending","select","group","by","namespace","partial","class","field","event","method","param","public","protected","internal","private","abstract","sealed","static","struct","readonly","volatile","virtual","override","params","get","set","add","remove","operator","true","false","implicit","explicit","interface","enum","null","async","await","fixed","sizeof","stackalloc","unsafe","nameof","when"],namespaceFollows:["namespace","using"],parenFollows:["if","for","while","switch","foreach","using","catch","when"],operators:["=","??","||","&&","|","^","&","==","!=","<=",">=","<<","+","-","*","/","%","!","~","++","--","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=",">>","=>"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\@?[a-zA-Z_]\w*/,{cases:{"@namespaceFollows":{token:"keyword.$0",next:"@namespace"},"@keywords":{token:"keyword.$0",next:"@qualified"},"@default":{token:"identifier",next:"@qualified"}}}],{include:"@whitespace"},[/}/,{cases:{"$S2==interpolatedstring":{token:"string.quote",next:"@pop"},"$S2==litinterpstring":{token:"string.quote",next:"@pop"},"@default":"@brackets"}}],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01_]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",next:"@string"}],[/\$\@"/,{token:"string.quote",next:"@litinterpstring"}],[/\@"/,{token:"string.quote",next:"@litstring"}],[/\$"/,{token:"string.quote",next:"@interpolatedstring"}],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],qualified:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/\./,"delimiter"],["","","@pop"]],namespace:[{include:"@whitespace"},[/[A-Z]\w*/,"namespace"],[/[\.=]/,"delimiter"],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]],litinterpstring:[[/[^"{]+/,"string"],[/""/,"string.escape"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.litinterpstring"}],[/"/,{token:"string.quote",next:"@pop"}]],interpolatedstring:[[/[^\\"{]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.interpolatedstring"}],[/"/,{token:"string.quote",next:"@pop"}]],whitespace:[[/^[ \t\v\f]*#((r)|(load))(?=\s)/,"directive.csx"],[/^[ \t\v\f]*#\w.*$/,"namespace.cpp"],[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9319.40f9e46a.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/9319.40f9e46a.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9319.40f9e46a.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/9371.b42befbc.chunk.js b/ydb/core/viewer/monitoring/static/js/9371.b42befbc.chunk.js new file mode 100644 index 000000000000..b7f20ffae45e --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9371.b42befbc.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 9371.b42befbc.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9371],{29371:(e,t,r)=>{r.r(t),r.d(t,{conf:()=>h,language:()=>u});var o,n,a=r(41551),i=Object.defineProperty,m=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,l=(e,t,r,o)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let n of c(t))s.call(e,n)||n===r||i(e,n,{get:()=>t[n],enumerable:!(o=m(t,n))||o.enumerable});return e},d={};l(d,o=a,"default"),n&&l(n,o,"default");var p=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],h={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["\x3c!--","--\x3e"],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp("<(?!(?:".concat(p.join("|"),"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$"),"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:d.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(?!(?:".concat(p.join("|"),"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$"),"i"),action:{indentAction:d.languages.IndentAction.Indent}}]},u={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/@@@@/],[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.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"],[/[ \t\r\n]+/],[/[^<@]+/]],doctype:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.comment"}],[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.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:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.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:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.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:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.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:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.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:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.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:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],razorInSimpleState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3"}]],razorInEmbeddedState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],razorBlockCommentTopLevel:[[/\*@/,"@rematch","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorBlockComment:[[/\*@/,"comment.cs","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorRootTopLevel:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/[})]/,"@rematch","@pop"],{include:"razorCommon"}],razorRoot:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/\}/,"delimiter.bracket.cs","@pop"],[/\)/,"delimiter.parenthesis.cs","@pop"],{include:"razorCommon"}],razorCommon:[[/[a-zA-Z_]\w*/,{cases:{"@razorKeywords":{token:"keyword.cs"},"@default":"identifier.cs"}}],[/[\[\]]/,"delimiter.array.cs"],[/[ \t\r\n]+/],[/\/\/.*$/,"comment.cs"],[/@\*/,"comment.cs","@razorBlockComment"],[/"([^"]*)"/,"string.cs"],[/'([^']*)'/,"string.cs"],[/(<)([\w\-]+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<\/)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/,"delimiter.cs"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.cs"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.cs"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.cs"],[/0[0-7']*[0-7]/,"number.octal.cs"],[/0[bB][0-1']*[0-1]/,"number.binary.cs"],[/\d[\d']*/,"number.cs"],[/\d/,"number.cs"]]},razorKeywords:["abstract","as","async","await","base","bool","break","by","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","descending","explicit","event","extern","else","enum","false","finally","fixed","float","for","foreach","from","goto","group","if","implicit","in","int","interface","internal","into","is","lock","long","nameof","new","null","namespace","object","operator","out","override","orderby","params","private","protected","public","readonly","ref","return","switch","struct","sbyte","sealed","short","sizeof","stackalloc","static","string","select","this","throw","true","try","typeof","uint","ulong","unchecked","unsafe","ushort","using","var","virtual","volatile","void","when","while","where","yield","model","inject"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9371.b42befbc.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/9371.b42befbc.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9371.b42befbc.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/939.4c5d6b68.chunk.js b/ydb/core/viewer/monitoring/static/js/939.4c5d6b68.chunk.js deleted file mode 100644 index 5777aa2b8338..000000000000 --- a/ydb/core/viewer/monitoring/static/js/939.4c5d6b68.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[939],{50325:function(e,n,o){o.r(n),o.d(n,{conf:function(){return t},language:function(){return r}});var t={comments:{lineComment:"'"},brackets:[["(",")"],["[","]"],["If","EndIf"],["While","EndWhile"],["For","EndFor"],["Sub","EndSub"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]}]},r={defaultToken:"",tokenPostfix:".sb",ignoreCase:!0,brackets:[{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"keyword.tag-if",open:"If",close:"EndIf"},{token:"keyword.tag-while",open:"While",close:"EndWhile"},{token:"keyword.tag-for",open:"For",close:"EndFor"},{token:"keyword.tag-sub",open:"Sub",close:"EndSub"}],keywords:["Else","ElseIf","EndFor","EndIf","EndSub","EndWhile","For","Goto","If","Step","Sub","Then","To","While"],tagwords:["If","Sub","While","For"],operators:[">","<","<>","<=",">=","And","Or","+","-","*","/","="],identifier:/[a-zA-Z_][\w]*/,symbols:/[=><:+\-*\/%\.,]+/,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"},[/(@identifier)(?=[.])/,"type"],[/@identifier/,{cases:{"@keywords":{token:"keyword.$0"},"@operators":"operator","@default":"variable.name"}}],[/([.])(@identifier)/,{cases:{$2:["delimiter","type.member"],"@default":""}}],[/\d*\.\d+/,"number.float"],[/\d+/,"number"],[/[()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":"delimiter"}}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],whitespace:[[/[ \t\r\n]+/,""],[/(\').*$/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"C?/,"string","@pop"]]}}}}]); -//# sourceMappingURL=939.4c5d6b68.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9411.96fb3e2f.chunk.js b/ydb/core/viewer/monitoring/static/js/9411.96fb3e2f.chunk.js new file mode 100644 index 000000000000..55dc3770bd4c --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9411.96fb3e2f.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9411],{99411:function(e,n,a){e.exports=function(e){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=n(e),_={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 a.default.locale(_,null,!0),_}(a(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9413.b2921c36.chunk.js b/ydb/core/viewer/monitoring/static/js/9413.b2921c36.chunk.js new file mode 100644 index 000000000000..34a3b613c665 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9413.b2921c36.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9413],{19413:function(e,_,o){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=_(e),s={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 o.default.locale(s,null,!0),s}(o(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9433.7ce648d0.chunk.js b/ydb/core/viewer/monitoring/static/js/9433.7ce648d0.chunk.js new file mode 100644 index 000000000000..0006bbc7710c --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9433.7ce648d0.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 9433.7ce648d0.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9433],{49433:(E,T,A)=>{A.r(T),A.d(T,{conf:()=>N,language:()=>e});var N={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]}]},e={defaultToken:"",tokenPostfix:".msdax",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.brackets"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["VAR","RETURN","NOT","EVALUATE","DATATABLE","ORDER","BY","START","AT","DEFINE","MEASURE","ASC","DESC","IN","BOOLEAN","DOUBLE","INTEGER","DATETIME","CURRENCY","STRING"],functions:["CLOSINGBALANCEMONTH","CLOSINGBALANCEQUARTER","CLOSINGBALANCEYEAR","DATEADD","DATESBETWEEN","DATESINPERIOD","DATESMTD","DATESQTD","DATESYTD","ENDOFMONTH","ENDOFQUARTER","ENDOFYEAR","FIRSTDATE","FIRSTNONBLANK","LASTDATE","LASTNONBLANK","NEXTDAY","NEXTMONTH","NEXTQUARTER","NEXTYEAR","OPENINGBALANCEMONTH","OPENINGBALANCEQUARTER","OPENINGBALANCEYEAR","PARALLELPERIOD","PREVIOUSDAY","PREVIOUSMONTH","PREVIOUSQUARTER","PREVIOUSYEAR","SAMEPERIODLASTYEAR","STARTOFMONTH","STARTOFQUARTER","STARTOFYEAR","TOTALMTD","TOTALQTD","TOTALYTD","ADDCOLUMNS","ADDMISSINGITEMS","ALL","ALLEXCEPT","ALLNOBLANKROW","ALLSELECTED","CALCULATE","CALCULATETABLE","CALENDAR","CALENDARAUTO","CROSSFILTER","CROSSJOIN","CURRENTGROUP","DATATABLE","DETAILROWS","DISTINCT","EARLIER","EARLIEST","EXCEPT","FILTER","FILTERS","GENERATE","GENERATEALL","GROUPBY","IGNORE","INTERSECT","ISONORAFTER","KEEPFILTERS","LOOKUPVALUE","NATURALINNERJOIN","NATURALLEFTOUTERJOIN","RELATED","RELATEDTABLE","ROLLUP","ROLLUPADDISSUBTOTAL","ROLLUPGROUP","ROLLUPISSUBTOTAL","ROW","SAMPLE","SELECTCOLUMNS","SUBSTITUTEWITHINDEX","SUMMARIZE","SUMMARIZECOLUMNS","TOPN","TREATAS","UNION","USERELATIONSHIP","VALUES","SUM","SUMX","PATH","PATHCONTAINS","PATHITEM","PATHITEMREVERSE","PATHLENGTH","AVERAGE","AVERAGEA","AVERAGEX","COUNT","COUNTA","COUNTAX","COUNTBLANK","COUNTROWS","COUNTX","DISTINCTCOUNT","DIVIDE","GEOMEAN","GEOMEANX","MAX","MAXA","MAXX","MEDIAN","MEDIANX","MIN","MINA","MINX","PERCENTILE.EXC","PERCENTILE.INC","PERCENTILEX.EXC","PERCENTILEX.INC","PRODUCT","PRODUCTX","RANK.EQ","RANKX","STDEV.P","STDEV.S","STDEVX.P","STDEVX.S","VAR.P","VAR.S","VARX.P","VARX.S","XIRR","XNPV","DATE","DATEDIFF","DATEVALUE","DAY","EDATE","EOMONTH","HOUR","MINUTE","MONTH","NOW","SECOND","TIME","TIMEVALUE","TODAY","WEEKDAY","WEEKNUM","YEAR","YEARFRAC","CONTAINS","CONTAINSROW","CUSTOMDATA","ERROR","HASONEFILTER","HASONEVALUE","ISBLANK","ISCROSSFILTERED","ISEMPTY","ISERROR","ISEVEN","ISFILTERED","ISLOGICAL","ISNONTEXT","ISNUMBER","ISODD","ISSUBTOTAL","ISTEXT","USERNAME","USERPRINCIPALNAME","AND","FALSE","IF","IFERROR","NOT","OR","SWITCH","TRUE","ABS","ACOS","ACOSH","ACOT","ACOTH","ASIN","ASINH","ATAN","ATANH","BETA.DIST","BETA.INV","CEILING","CHISQ.DIST","CHISQ.DIST.RT","CHISQ.INV","CHISQ.INV.RT","COMBIN","COMBINA","CONFIDENCE.NORM","CONFIDENCE.T","COS","COSH","COT","COTH","CURRENCY","DEGREES","EVEN","EXP","EXPON.DIST","FACT","FLOOR","GCD","INT","ISO.CEILING","LCM","LN","LOG","LOG10","MOD","MROUND","ODD","PERMUT","PI","POISSON.DIST","POWER","QUOTIENT","RADIANS","RAND","RANDBETWEEN","ROUND","ROUNDDOWN","ROUNDUP","SIGN","SIN","SINH","SQRT","SQRTPI","TAN","TANH","TRUNC","BLANK","CONCATENATE","CONCATENATEX","EXACT","FIND","FIXED","FORMAT","LEFT","LEN","LOWER","MID","REPLACE","REPT","RIGHT","SEARCH","SUBSTITUTE","TRIM","UNICHAR","UNICODE","UPPER","VALUE"],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},[/[;,.]/,"delimiter"],[/[({})]/,"@brackets"],[/[a-z_][a-zA-Z0-9_]*/,{cases:{"@keywords":"keyword","@functions":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/\/\/+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/N"/,{token:"string",next:"@string"}],[/"/,{token:"string",next:"@string"}]],string:[[/[^"]+/,"string"],[/""/,"string"],[/"/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/\[/,{token:"identifier.quote",next:"@bracketedIdentifier"}],[/'/,{token:"identifier.quote",next:"@quotedIdentifier"}]],bracketedIdentifier:[[/[^\]]+/,"identifier"],[/]]/,"identifier"],[/]/,{token:"identifier.quote",next:"@pop"}]],quotedIdentifier:[[/[^']+/,"identifier"],[/''/,"identifier"],[/'/,{token:"identifier.quote",next:"@pop"}]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9433.7ce648d0.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/9433.7ce648d0.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9433.7ce648d0.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/9526.10bb1684.chunk.js b/ydb/core/viewer/monitoring/static/js/9526.10bb1684.chunk.js new file mode 100644 index 000000000000..be536b7d997e --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9526.10bb1684.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 9526.10bb1684.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9526],{29526:(e,t,s)=>{s.r(t),s.d(t,{conf:()=>r,language:()=>n});var r={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},n={defaultToken:"",tokenPostfix:".perl",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["__DATA__","else","lock","__END__","elsif","lt","__FILE__","eq","__LINE__","exp","ne","sub","__PACKAGE__","for","no","and","foreach","or","unless","cmp","ge","package","until","continue","gt","while","CORE","if","xor","do","le","__DIE__","__WARN__"],builtinFunctions:["-A","END","length","setpgrp","-B","endgrent","link","setpriority","-b","endhostent","listen","setprotoent","-C","endnetent","local","setpwent","-c","endprotoent","localtime","setservent","-d","endpwent","log","setsockopt","-e","endservent","lstat","shift","-f","eof","map","shmctl","-g","eval","mkdir","shmget","-k","exec","msgctl","shmread","-l","exists","msgget","shmwrite","-M","exit","msgrcv","shutdown","-O","fcntl","msgsnd","sin","-o","fileno","my","sleep","-p","flock","next","socket","-r","fork","not","socketpair","-R","format","oct","sort","-S","formline","open","splice","-s","getc","opendir","split","-T","getgrent","ord","sprintf","-t","getgrgid","our","sqrt","-u","getgrnam","pack","srand","-w","gethostbyaddr","pipe","stat","-W","gethostbyname","pop","state","-X","gethostent","pos","study","-x","getlogin","print","substr","-z","getnetbyaddr","printf","symlink","abs","getnetbyname","prototype","syscall","accept","getnetent","push","sysopen","alarm","getpeername","quotemeta","sysread","atan2","getpgrp","rand","sysseek","AUTOLOAD","getppid","read","system","BEGIN","getpriority","readdir","syswrite","bind","getprotobyname","readline","tell","binmode","getprotobynumber","readlink","telldir","bless","getprotoent","readpipe","tie","break","getpwent","recv","tied","caller","getpwnam","redo","time","chdir","getpwuid","ref","times","CHECK","getservbyname","rename","truncate","chmod","getservbyport","require","uc","chomp","getservent","reset","ucfirst","chop","getsockname","return","umask","chown","getsockopt","reverse","undef","chr","glob","rewinddir","UNITCHECK","chroot","gmtime","rindex","unlink","close","goto","rmdir","unpack","closedir","grep","say","unshift","connect","hex","scalar","untie","cos","index","seek","use","crypt","INIT","seekdir","utime","dbmclose","int","select","values","dbmopen","ioctl","semctl","vec","defined","join","semget","wait","delete","keys","semop","waitpid","DESTROY","kill","send","wantarray","die","last","setgrent","warn","dump","lc","sethostent","write","each","lcfirst","setnetent"],builtinFileHandlers:["ARGV","STDERR","STDOUT","ARGVOUT","STDIN","ENV"],builtinVariables:["$!","$^RE_TRIE_MAXBUF","$LAST_REGEXP_CODE_RESULT",'$"',"$^S","$LIST_SEPARATOR","$#","$^T","$MATCH","$$","$^TAINT","$MULTILINE_MATCHING","$%","$^UNICODE","$NR","$&","$^UTF8LOCALE","$OFMT","$'","$^V","$OFS","$(","$^W","$ORS","$)","$^WARNING_BITS","$OS_ERROR","$*","$^WIDE_SYSTEM_CALLS","$OSNAME","$+","$^X","$OUTPUT_AUTO_FLUSH","$,","$_","$OUTPUT_FIELD_SEPARATOR","$-","$`","$OUTPUT_RECORD_SEPARATOR","$.","$a","$PERL_VERSION","$/","$ACCUMULATOR","$PERLDB","$0","$ARG","$PID","$:","$ARGV","$POSTMATCH","$;","$b","$PREMATCH","$<","$BASETIME","$PROCESS_ID","$=","$CHILD_ERROR","$PROGRAM_NAME","$>","$COMPILING","$REAL_GROUP_ID","$?","$DEBUGGING","$REAL_USER_ID","$@","$EFFECTIVE_GROUP_ID","$RS","$[","$EFFECTIVE_USER_ID","$SUBSCRIPT_SEPARATOR","$\\","$EGID","$SUBSEP","$]","$ERRNO","$SYSTEM_FD_MAX","$^","$EUID","$UID","$^A","$EVAL_ERROR","$WARNING","$^C","$EXCEPTIONS_BEING_CAUGHT","$|","$^CHILD_ERROR_NATIVE","$EXECUTABLE_NAME","$~","$^D","$EXTENDED_OS_ERROR","%!","$^E","$FORMAT_FORMFEED","%^H","$^ENCODING","$FORMAT_LINE_BREAK_CHARACTERS","%ENV","$^F","$FORMAT_LINES_LEFT","%INC","$^H","$FORMAT_LINES_PER_PAGE","%OVERLOAD","$^I","$FORMAT_NAME","%SIG","$^L","$FORMAT_PAGE_NUMBER","@+","$^M","$FORMAT_TOP_NAME","@-","$^N","$GID","@_","$^O","$INPLACE_EDIT","@ARGV","$^OPEN","$INPUT_LINE_NUMBER","@INC","$^P","$INPUT_RECORD_SEPARATOR","@LAST_MATCH_START","$^R","$LAST_MATCH_END","$^RE_DEBUG_FLAGS","$LAST_PAREN_MATCH"],symbols:/[:+\-\^*$&%@=<>!?|\/~\.]/,quoteLikeOps:["qr","m","s","q","qq","qx","qw","tr","y"],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"},[/[a-zA-Z\-_][\w\-_]*/,{cases:{"@keywords":"keyword","@builtinFunctions":"type.identifier","@builtinFileHandlers":"variable.predefined","@quoteLikeOps":{token:"@rematch",next:"quotedConstructs"},"@default":""}}],[/[\$@%][*@#?\+\-\$!\w\\\^><~:;\.]+/,{cases:{"@builtinVariables":"variable.predefined","@default":"variable"}}],{include:"@strings"},{include:"@dblStrings"},{include:"@perldoc"},{include:"@heredoc"},[/[{}\[\]()]/,"@brackets"],[/[\/](?:(?:\[(?:\\]|[^\]])+\])|(?:\\\/|[^\]\/]))*[\/]\w*\s*(?=[).,;]|$)/,"regexp"],[/@symbols/,"operators"],{include:"@numbers"},[/[,;]/,"delimiter"]],whitespace:[[/\s+/,"white"],[/(^#!.*$)/,"metatag"],[/(^#.*$)/,"comment"]],numbers:[[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+/,"number"]],strings:[[/'/,"string","@stringBody"]],stringBody:[[/'/,"string","@popall"],[/\\'/,"string.escape"],[/./,"string"]],dblStrings:[[/"/,"string","@dblStringBody"]],dblStringBody:[[/"/,"string","@popall"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],{include:"@variables"},[/./,"string"]],quotedConstructs:[[/(q|qw|tr|y)\s*\(/,{token:"string.delim",switchTo:"@qstring.(.)"}],[/(q|qw|tr|y)\s*\[/,{token:"string.delim",switchTo:"@qstring.[.]"}],[/(q|qw|tr|y)\s*\{/,{token:"string.delim",switchTo:"@qstring.{.}"}],[/(q|qw|tr|y)\s*</,{token:"string.delim",switchTo:"@qstring.<.>"}],[/(q|qw|tr|y)#/,{token:"string.delim",switchTo:"@qstring.#.#"}],[/(q|qw|tr|y)\s*([^A-Za-z0-9#\s])/,{token:"string.delim",switchTo:"@qstring.$2.$2"}],[/(q|qw|tr|y)\s+(\w)/,{token:"string.delim",switchTo:"@qstring.$2.$2"}],[/(qr|m|s)\s*\(/,{token:"regexp.delim",switchTo:"@qregexp.(.)"}],[/(qr|m|s)\s*\[/,{token:"regexp.delim",switchTo:"@qregexp.[.]"}],[/(qr|m|s)\s*\{/,{token:"regexp.delim",switchTo:"@qregexp.{.}"}],[/(qr|m|s)\s*</,{token:"regexp.delim",switchTo:"@qregexp.<.>"}],[/(qr|m|s)#/,{token:"regexp.delim",switchTo:"@qregexp.#.#"}],[/(qr|m|s)\s*([^A-Za-z0-9_#\s])/,{token:"regexp.delim",switchTo:"@qregexp.$2.$2"}],[/(qr|m|s)\s+(\w)/,{token:"regexp.delim",switchTo:"@qregexp.$2.$2"}],[/(qq|qx)\s*\(/,{token:"string.delim",switchTo:"@qqstring.(.)"}],[/(qq|qx)\s*\[/,{token:"string.delim",switchTo:"@qqstring.[.]"}],[/(qq|qx)\s*\{/,{token:"string.delim",switchTo:"@qqstring.{.}"}],[/(qq|qx)\s*</,{token:"string.delim",switchTo:"@qqstring.<.>"}],[/(qq|qx)#/,{token:"string.delim",switchTo:"@qqstring.#.#"}],[/(qq|qx)\s*([^A-Za-z0-9#\s])/,{token:"string.delim",switchTo:"@qqstring.$2.$2"}],[/(qq|qx)\s+(\w)/,{token:"string.delim",switchTo:"@qqstring.$2.$2"}]],qstring:[[/\\./,"string.escape"],[/./,{cases:{"$#==$S3":{token:"string.delim",next:"@pop"},"$#==$S2":{token:"string.delim",next:"@push"},"@default":"string"}}]],qregexp:[{include:"@variables"},[/\\./,"regexp.escape"],[/./,{cases:{"$#==$S3":{token:"regexp.delim",next:"@regexpModifiers"},"$#==$S2":{token:"regexp.delim",next:"@push"},"@default":"regexp"}}]],regexpModifiers:[[/[msixpodualngcer]+/,{token:"regexp.modifier",next:"@popall"}]],qqstring:[{include:"@variables"},{include:"@qstring"}],heredoc:[[/<<\s*['"`]?([\w\-]+)['"`]?/,{token:"string.heredoc.delimiter",next:"@heredocBody.$1"}]],heredocBody:[[/^([\w\-]+)$/,{cases:{"$1==$S2":[{token:"string.heredoc.delimiter",next:"@popall"}],"@default":"string.heredoc"}}],[/./,"string.heredoc"]],perldoc:[[/^=\w/,"comment.doc","@perldocBody"]],perldocBody:[[/^=cut\b/,"type.identifier","@popall"],[/./,"comment.doc"]],variables:[[/\$\w+/,"variable"],[/@\w+/,"variable"],[/%\w+/,"variable"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9526.10bb1684.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/9526.10bb1684.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9526.10bb1684.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/9528.9991c023.chunk.js b/ydb/core/viewer/monitoring/static/js/9528.9991c023.chunk.js new file mode 100644 index 000000000000..b8543cbd17f9 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9528.9991c023.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9528],{99528:function(a,e,_){a.exports=function(a){"use strict";function e(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var _=e(a),m={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(a){return a},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 _.default.locale(m,null,!0),m}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9555.c9b5ee61.chunk.js b/ydb/core/viewer/monitoring/static/js/9555.c9b5ee61.chunk.js new file mode 100644 index 000000000000..7ab23f4a8bdd --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9555.c9b5ee61.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9555],{49555:function(a,n,e){a.exports=function(a){"use strict";function n(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var e=n(a),t={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(a){return a},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 e.default.locale(t,null,!0),t}(e(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9572.9f83f004.chunk.js b/ydb/core/viewer/monitoring/static/js/9572.9f83f004.chunk.js new file mode 100644 index 000000000000..f710dd04621a --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9572.9f83f004.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9572],{59572:function(_,e,t){_.exports=function(_){"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var t=e(_),n={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(_){return _},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 t.default.locale(n,null,!0),n}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/96.6e1bf3f4.chunk.js b/ydb/core/viewer/monitoring/static/js/96.6e1bf3f4.chunk.js new file mode 100644 index 000000000000..8f49ccac2fa1 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/96.6e1bf3f4.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[96],{80096:function(e,_,t){e.exports=function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),r={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 t.default.locale(r,null,!0),r}(t(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9621.48073631.chunk.js b/ydb/core/viewer/monitoring/static/js/9621.48073631.chunk.js new file mode 100644 index 000000000000..2f2decae5534 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9621.48073631.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 9621.48073631.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9621],{19621:(e,o,n)=>{n.r(o),n.d(o,{conf:()=>t,language:()=>s});var t={comments:{lineComment:";",blockComment:["#|","|#"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".scheme",brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],keywords:["case","do","let","loop","if","else","when","cons","car","cdr","cond","lambda","lambda*","syntax-rules","format","set!","quote","eval","append","list","list?","member?","load"],constants:["#t","#f"],operators:["eq?","eqv?","equal?","and","or","not","null?"],tokenizer:{root:[[/#[xXoObB][0-9a-fA-F]+/,"number.hex"],[/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/,"number.float"],[/(?:\b(?:(define|define-syntax|define-macro))\b)(\s+)((?:\w|\-|\!|\?)*)/,["keyword","white","variable"]],{include:"@whitespace"},{include:"@strings"},[/[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/,{cases:{"@keywords":"keyword","@constants":"constant","@operators":"operators","@default":"identifier"}}]],comment:[[/[^\|#]+/,"comment"],[/#\|/,"comment","@push"],[/\|#/,"comment","@pop"],[/[\|#]/,"comment"]],whitespace:[[/[ \t\r\n]+/,"white"],[/#\|/,"comment","@comment"],[/;.*$/,"comment"]],strings:[[/"$/,"string","@popall"],[/"(?=.)/,"string","@multiLineString"]],multiLineString:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string.escape"],[/"/,"string","@popall"],[/\\$/,"string"]]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9621.48073631.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/9621.48073631.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9621.48073631.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/9803.e1567af5.chunk.js b/ydb/core/viewer/monitoring/static/js/9803.e1567af5.chunk.js deleted file mode 100644 index 5bd1c8e6ed23..000000000000 --- a/ydb/core/viewer/monitoring/static/js/9803.e1567af5.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9803],{79803:function(e,t,o){o.r(t),o.d(t,{conf:function(){return r},language:function(){return n}});var r={wordPattern:/(unary_[@~!#%^&*()\-=+\\|:<>\/?]+)|([a-zA-Z_$][\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\w$]*)/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:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))"),end:new RegExp("^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))")}}},n={tokenPostfix:".scala",keywords:["asInstanceOf","catch","class","classOf","def","do","else","extends","finally","for","foreach","forSome","if","import","isInstanceOf","macro","match","new","object","package","return","throw","trait","try","type","until","val","var","while","with","yield","given","enum","then"],softKeywords:["as","export","extension","end","derives","on"],constants:["true","false","null","this","super"],modifiers:["abstract","final","implicit","lazy","override","private","protected","sealed"],softModifiers:["inline","opaque","open","transparent","using"],name:/(?:[a-z_$][\w$]*|`[^`]+`)/,type:/(?:[A-Z][\w$]*)/,symbols:/[=><!~?:&|+\-*\/^\\%@#]+/,digits:/\d+(_+\d+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,escapes:/\\(?:[btnfr\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,fstring_conv:/[bBhHsScCdoxXeEfgGaAt]|[Tn](?:[HIklMSLNpzZsQ]|[BbhAaCYyjmde]|[RTrDFC])/,tokenizer:{root:[[/\braw"""/,{token:"string.quote",bracket:"@open",next:"@rawstringt"}],[/\braw"/,{token:"string.quote",bracket:"@open",next:"@rawstring"}],[/\bs"""/,{token:"string.quote",bracket:"@open",next:"@sstringt"}],[/\bs"/,{token:"string.quote",bracket:"@open",next:"@sstring"}],[/\bf""""/,{token:"string.quote",bracket:"@open",next:"@fstringt"}],[/\bf"/,{token:"string.quote",bracket:"@open",next:"@fstring"}],[/"""/,{token:"string.quote",bracket:"@open",next:"@stringt"}],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float","@allowMethod"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float","@allowMethod"],[/0[xX](@hexdigits)[Ll]?/,"number.hex","@allowMethod"],[/(@digits)[fFdD]/,"number.float","@allowMethod"],[/(@digits)[lL]?/,"number","@allowMethod"],[/\b_\*/,"key"],[/\b(_)\b/,"keyword","@allowMethod"],[/\bimport\b/,"keyword","@import"],[/\b(case)([ \t]+)(class)\b/,["keyword.modifier","white","keyword"]],[/\bcase\b/,"keyword","@case"],[/\bva[lr]\b/,"keyword","@vardef"],[/\b(def)([ \t]+)((?:unary_)?@symbols|@name(?:_=)|@name)/,["keyword","white","identifier"]],[/@name(?=[ \t]*:(?!:))/,"variable"],[/(\.)(@name|@symbols)/,["operator",{token:"@rematch",next:"@allowMethod"}]],[/([{(])(\s*)(@name(?=\s*=>))/,["@brackets","white","variable"]],[/@name/,{cases:{"@keywords":"keyword","@softKeywords":"keyword","@modifiers":"keyword.modifier","@softModifiers":"keyword.modifier","@constants":{token:"constant",next:"@allowMethod"},"@default":{token:"identifier",next:"@allowMethod"}}}],[/@type/,"type","@allowMethod"],{include:"@whitespace"},[/@[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*/,"annotation"],[/[{(]/,"@brackets"],[/[})]/,"@brackets","@allowMethod"],[/\[/,"operator.square"],[/](?!\s*(?:va[rl]|def|type)\b)/,"operator.square","@allowMethod"],[/]/,"operator.square"],[/([=-]>|<-|>:|<:|:>|<%)(?=[\s\w()[\]{},\."'`])/,"keyword"],[/@symbols/,"operator"],[/[;,\.]/,"delimiter"],[/'[a-zA-Z$][\w$]*(?!')/,"attribute.name"],[/'[^\\']'/,"string","@allowMethod"],[/(')(@escapes)(')/,["string","string.escape",{token:"string",next:"@allowMethod"}]],[/'/,"string.invalid"]],import:[[/;/,"delimiter","@pop"],[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/@name|@type/,"type"],[/[(){}]/,"@brackets"],[/[[\]]/,"operator.square"],[/[\.,]/,"delimiter"]],allowMethod:[[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/(?==>[\s\w([{])/,"keyword","@pop"],[/(@name|@symbols)(?=[ \t]*[[({"'`]|[ \t]+(?:[+-]?\.?\d|\w))/,{cases:{"@keywords":{token:"keyword",next:"@pop"},"->|<-|>:|<:|<%":{token:"keyword",next:"@pop"},"@default":{token:"@rematch",next:"@pop"}}}],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],case:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword","@allowMethod"],[/\bif\b|=>/,"keyword","@pop"],[/`[^`]+`/,"identifier","@allowMethod"],[/@name/,"variable","@allowMethod"],[/:::?|\||@(?![a-z_$])/,"keyword"],{include:"@root"}],vardef:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword"],[/@name/,"variable"],[/:::?|\||@(?![a-z_$])/,"keyword"],[/=|:(?!:)/,"operator","@pop"],[/$/,"white","@pop"],{include:"@root"}],string:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],stringt:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],fstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],fstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],sstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],sstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],interp:[[/{/,"operator","@push"],[/}/,"operator","@pop"],{include:"@root"}],rawstring:[[/[^"]/,"string"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],rawstringt:[[/[^"]/,"string"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); -//# sourceMappingURL=9803.e1567af5.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/983.18afe3d6.chunk.js b/ydb/core/viewer/monitoring/static/js/983.18afe3d6.chunk.js deleted file mode 100644 index 8b5d8752a03c..000000000000 --- a/ydb/core/viewer/monitoring/static/js/983.18afe3d6.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[983],{80983:function(e,t,i){i.r(t),i.d(t,{conf:function(){return r},language:function(){return l}});var n=i(37456),o=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],r={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,brackets:[["\x3c!--","--\x3e"],["<",">"],["{{","}}"],["{%","%}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"%",close:"%"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp("<(?!(?:"+o.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:n.Mj.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(?!(?:"+o.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:n.Mj.IndentAction.Indent}}]},l={defaultToken:"",tokenPostfix:"",builtinTags:["if","else","elseif","endif","render","assign","capture","endcapture","case","endcase","comment","endcomment","cycle","decrement","for","endfor","include","increment","layout","raw","endraw","render","tablerow","endtablerow","unless","endunless"],builtinFilters:["abs","append","at_least","at_most","capitalize","ceil","compact","date","default","divided_by","downcase","escape","escape_once","first","floor","join","json","last","lstrip","map","minus","modulo","newline_to_br","plus","prepend","remove","remove_first","replace","replace_first","reverse","round","rstrip","size","slice","sort","sort_natural","split","strip","strip_html","strip_newlines","times","truncate","truncatewords","uniq","upcase","url_decode","url_encode","where"],constants:["true","false"],operators:["==","!=",">","<",">=","<="],symbol:/[=><!]+/,identifier:/[a-zA-Z_][\w]*/,tokenizer:{root:[[/\{\%\s*comment\s*\%\}/,"comment.start.liquid","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@liquidState.root"}],[/\{\%/,{token:"@rematch",switchTo:"@liquidState.root"}],[/(<)(\w+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/</,"delimiter.html"],[/\{/,"delimiter.html"],[/[^<{]+/]],comment:[[/\{\%\s*endcomment\s*\%\}/,"comment.end.liquid","@pop"],[/./,"comment.content.liquid"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@liquidState.otherTag"}],[/\{\%/,{token:"@rematch",switchTo:"@liquidState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],liquidState:[[/\{\{/,"delimiter.output.liquid"],[/\}\}/,{token:"delimiter.output.liquid",switchTo:"@$S2.$S3"}],[/\{\%/,"delimiter.tag.liquid"],[/raw\s*\%\}/,"delimiter.tag.liquid","@liquidRaw"],[/\%\}/,{token:"delimiter.tag.liquid",switchTo:"@$S2.$S3"}],{include:"liquidRoot"}],liquidRaw:[[/^(?!\{\%\s*endraw\s*\%\}).+/],[/\{\%/,"delimiter.tag.liquid"],[/@identifier/],[/\%\}/,{token:"delimiter.tag.liquid",next:"@root"}]],liquidRoot:[[/\d+(\.\d+)?/,"number.liquid"],[/"[^"]*"/,"string.liquid"],[/'[^']*'/,"string.liquid"],[/\s+/],[/@symbol/,{cases:{"@operators":"operator.liquid","@default":""}}],[/\./],[/@identifier/,{cases:{"@constants":"keyword.liquid","@builtinFilters":"predefined.liquid","@builtinTags":"predefined.liquid","@default":"variable.liquid"}}],[/[^}|%]/,"variable.liquid"]]}}}}]); -//# sourceMappingURL=983.18afe3d6.chunk.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9876.b336d1f5.chunk.js b/ydb/core/viewer/monitoring/static/js/9876.b336d1f5.chunk.js new file mode 100644 index 000000000000..bbe86e74984d --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9876.b336d1f5.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 9876.b336d1f5.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9876],{89876:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>l,language:()=>m});var o,r,i=n(41551),s=Object.defineProperty,c=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,p=Object.prototype.hasOwnProperty,g=(e,t,n,o)=>{if(t&&"object"===typeof t||"function"===typeof t)for(let r of a(t))p.call(e,r)||r===n||s(e,r,{get:()=>t[r],enumerable:!(o=c(t,r))||o.enumerable});return e},d={};g(d,o=i,"default"),r&&g(r,o,"default");var l={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:d.languages.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:d.languages.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:d.languages.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:d.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},m={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","satisfies","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],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]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,"delimiter.bracket"],{include:"common"}],common:[[/#?[a-z_$][\w$]*/,{cases:{"@keywords":"keyword","@default":"identifier"}}],[/[A-Z][\w\$]*/,"type.identifier"],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([dgimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:"regexp",bracket:"@open",next:"@regexp"}],[/[()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9876.b336d1f5.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/9876.b336d1f5.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9876.b336d1f5.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/9917.67d792e3.chunk.js b/ydb/core/viewer/monitoring/static/js/9917.67d792e3.chunk.js new file mode 100644 index 000000000000..089a0f64b2e1 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9917.67d792e3.chunk.js @@ -0,0 +1 @@ +(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9917],{59917:function(e,t,_){e.exports=function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var _=t(e),a={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 _.default.locale(a,null,!0),a}(_(22877))}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9923.270f0a19.chunk.js b/ydb/core/viewer/monitoring/static/js/9923.270f0a19.chunk.js new file mode 100644 index 000000000000..4eaaa7ffa7b4 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9923.270f0a19.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 9923.270f0a19.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[]).push([[9923],{39923:(E,S,e)=>{e.r(S),e.d(S,{conf:()=>T,language:()=>R});var T={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},R={defaultToken:"",tokenPostfix:".redis",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["APPEND","AUTH","BGREWRITEAOF","BGSAVE","BITCOUNT","BITFIELD","BITOP","BITPOS","BLPOP","BRPOP","BRPOPLPUSH","CLIENT","KILL","LIST","GETNAME","PAUSE","REPLY","SETNAME","CLUSTER","ADDSLOTS","COUNT-FAILURE-REPORTS","COUNTKEYSINSLOT","DELSLOTS","FAILOVER","FORGET","GETKEYSINSLOT","INFO","KEYSLOT","MEET","NODES","REPLICATE","RESET","SAVECONFIG","SET-CONFIG-EPOCH","SETSLOT","SLAVES","SLOTS","COMMAND","COUNT","GETKEYS","CONFIG","GET","REWRITE","SET","RESETSTAT","DBSIZE","DEBUG","OBJECT","SEGFAULT","DECR","DECRBY","DEL","DISCARD","DUMP","ECHO","EVAL","EVALSHA","EXEC","EXISTS","EXPIRE","EXPIREAT","FLUSHALL","FLUSHDB","GEOADD","GEOHASH","GEOPOS","GEODIST","GEORADIUS","GEORADIUSBYMEMBER","GETBIT","GETRANGE","GETSET","HDEL","HEXISTS","HGET","HGETALL","HINCRBY","HINCRBYFLOAT","HKEYS","HLEN","HMGET","HMSET","HSET","HSETNX","HSTRLEN","HVALS","INCR","INCRBY","INCRBYFLOAT","KEYS","LASTSAVE","LINDEX","LINSERT","LLEN","LPOP","LPUSH","LPUSHX","LRANGE","LREM","LSET","LTRIM","MGET","MIGRATE","MONITOR","MOVE","MSET","MSETNX","MULTI","PERSIST","PEXPIRE","PEXPIREAT","PFADD","PFCOUNT","PFMERGE","PING","PSETEX","PSUBSCRIBE","PUBSUB","PTTL","PUBLISH","PUNSUBSCRIBE","QUIT","RANDOMKEY","READONLY","READWRITE","RENAME","RENAMENX","RESTORE","ROLE","RPOP","RPOPLPUSH","RPUSH","RPUSHX","SADD","SAVE","SCARD","SCRIPT","FLUSH","LOAD","SDIFF","SDIFFSTORE","SELECT","SETBIT","SETEX","SETNX","SETRANGE","SHUTDOWN","SINTER","SINTERSTORE","SISMEMBER","SLAVEOF","SLOWLOG","SMEMBERS","SMOVE","SORT","SPOP","SRANDMEMBER","SREM","STRLEN","SUBSCRIBE","SUNION","SUNIONSTORE","SWAPDB","SYNC","TIME","TOUCH","TTL","TYPE","UNSUBSCRIBE","UNLINK","UNWATCH","WAIT","WATCH","ZADD","ZCARD","ZCOUNT","ZINCRBY","ZINTERSTORE","ZLEXCOUNT","ZRANGE","ZRANGEBYLEX","ZREVRANGEBYLEX","ZRANGEBYSCORE","ZRANK","ZREM","ZREMRANGEBYLEX","ZREMRANGEBYRANK","ZREMRANGEBYSCORE","ZREVRANGE","ZREVRANGEBYSCORE","ZREVRANK","ZSCORE","ZUNIONSTORE","SCAN","SSCAN","HSCAN","ZSCAN"],operators:[],builtinFunctions:[],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}],[/"/,{token:"string.double",next:"@stringDouble"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],stringDouble:[[/[^"]+/,"string.double"],[/""/,"string.double"],[/"/,{token:"string.double",next:"@pop"}]],scopes:[]}}}}]); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/9923.270f0a19.chunk.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/9923.270f0a19.chunk.js.LICENSE.txt new file mode 100644 index 000000000000..a62733317c00 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/9923.270f0a19.chunk.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.48.0(0037b13fb5d186fdf1e7df51a9416a2de2b8c670) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/ydb/core/viewer/monitoring/static/js/main.2c02e91d.js b/ydb/core/viewer/monitoring/static/js/main.2c02e91d.js deleted file mode 100644 index de3aeba78923..000000000000 --- a/ydb/core/viewer/monitoring/static/js/main.2c02e91d.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see main.2c02e91d.js.LICENSE.txt */ -!function(){var e={87757:function(e,t,n){e.exports=n(9780)},11231:function(e,t){"use strict";function n(e){function t(t,r,o,a){var s=r?n+t+e.e+r:n+t,u=s;if(o){var l=" "+u+e.m;for(var c in o)if(o.hasOwnProperty(c)){var d=o[c];!0===d?u+=l+c:d&&(u+=l+c+i+d)}}if(void 0!==a)for(var h=0,f=(a=Array.isArray(a)?a:[a]).length;h<f;h++){var p=a[h];if(p&&"string"==typeof p.valueOf())for(var g=p.valueOf().split(" "),v=0;v<g.length;v++){var m=g[v];m!==s&&(u+=" "+m)}}return u}var n=e.n||"",i=e.v||e.m;return function(e,n){return function(i,r,o){return"string"==typeof i?"string"==typeof r||Array.isArray(r)?t(e,i,void 0,r):t(e,i,r,o):t(e,n,i,r)}}}n({e:"-",m:"_"}),t.withNaming=n},50348:function(e,t,n){"use strict";e.exports=n(11231)},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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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)}},96434:function(e,t,n){"use strict";var i=n(4519);t.Z=function(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),i.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M13.5 8a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0ZM15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0Zm-3.9-1.55a.75.75 0 1 0-1.2-.9L7.419 8.858 6.03 7.47a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.13-.08l3-4Z",clipRule:"evenodd"}))}},72697:function(e,t,n){"use strict";var i=n(4519);t.Z=function(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),i.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 13.5a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11ZM8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14Zm1-9.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm-.25 3a.75.75 0 0 0-1.5 0V11a.75.75 0 0 0 1.5 0V8.5Z",clipRule:"evenodd"}))}},15557:function(e,t,n){"use strict";var i=n(4519);t.Z=function(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),i.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"m7.835 6 .76-2.027L9.336 2H5.5a.716.716 0 0 0-.664.45L2.513 8.257a.177.177 0 0 0 .164.243h4.965l-.732 2.013-1.082 2.975a.382.382 0 0 0 .637.392l6.956-7.391A.29.29 0 0 0 13.21 6H7.835Zm1.558-4.154ZM10.563 3l.235-.627A1.386 1.386 0 0 0 9.5.5h-4c-.906 0-1.72.552-2.057 1.393L1.12 7.7A1.677 1.677 0 0 0 2.677 10H5.5l-.545 1.5-.537 1.475a1.882 1.882 0 0 0 3.14 1.933l6.956-7.391A1.79 1.79 0 0 0 13.21 4.5H10l.563-1.5Z",clipRule:"evenodd"}))}},82024:function(e,t,n){"use strict";var i=n(4519);t.Z=function(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),i.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M7.134 2.994 2.217 11.5a1 1 0 0 0 .866 1.5h9.834a1 1 0 0 0 .866-1.5L8.866 2.993a1 1 0 0 0-1.732 0Zm3.03-.75c-.962-1.665-3.366-1.665-4.328 0L.919 10.749c-.964 1.666.239 3.751 2.164 3.751h9.834c1.925 0 3.128-2.085 2.164-3.751l-4.917-8.505ZM8 5a.75.75 0 0 1 .75.75v2a.75.75 0 0 1-1.5 0v-2A.75.75 0 0 1 8 5Zm1 5.75a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z",clipRule:"evenodd"}))}},84480:function(e,t,n){"use strict";var i=n(4519);t.Z=function(e){return i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),i.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M3.47 3.47a.75.75 0 0 1 1.06 0L8 6.94l3.47-3.47a.75.75 0 1 1 1.06 1.06L9.06 8l3.47 3.47a.75.75 0 1 1-1.06 1.06L8 9.06l-3.47 3.47a.75.75 0 0 1-1.06-1.06L6.94 8 3.47 4.53a.75.75 0 0 1 0-1.06Z",clipRule:"evenodd"}))}},31853:function(e,t,n){"use strict";n.d(t,{b:function(){return r}});var i=n(50348);(0,i.withNaming)({e:"__",m:"_"});var r=(0,i.withNaming)({n:"gn-",e:"__",m:"_"})},95234:function(e,t,n){"use strict";n.d(t,{d:function(){return V}});var i="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:"undefined"!==typeof self?self:{};var r=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},o="object"==typeof i&&i&&i.Object===Object&&i,a="object"==typeof self&&self&&self.Object===Object&&self,s=o||a||Function("return this")(),u=s,l=function(){return u.Date.now()},c=/\s/;var d=function(e){for(var t=e.length;t--&&c.test(e.charAt(t)););return t},h=/^\s+/;var f=function(e){return e?e.slice(0,d(e)+1).replace(h,""):e},p=s.Symbol,g=p,v=Object.prototype,m=v.hasOwnProperty,_=v.toString,y=g?g.toStringTag:void 0;var b=function(e){var t=m.call(e,y),n=e[y];try{e[y]=void 0;var i=!0}catch(o){}var r=_.call(e);return i&&(t?e[y]=n:delete e[y]),r},w=Object.prototype.toString;var C=b,k=function(e){return w.call(e)},S="[object Null]",x="[object Undefined]",L=p?p.toStringTag:void 0;var E=function(e){return null==e?void 0===e?x:S:L&&L in Object(e)?C(e):k(e)},D=function(e){return null!=e&&"object"==typeof e},N="[object Symbol]";var M=f,T=r,I=function(e){return"symbol"==typeof e||D(e)&&E(e)==N},O=NaN,A=/^[-+]0x[0-9a-f]+$/i,R=/^0b[01]+$/i,P=/^0o[0-7]+$/i,Z=parseInt;var F=r,j=l,H=function(e){if("number"==typeof e)return e;if(I(e))return O;if(T(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=T(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=M(e);var n=R.test(e);return n||P.test(e)?Z(e.slice(2),n?2:8):A.test(e)?O:+e},B="Expected a function",z=Math.max,W=Math.min;var V=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(B);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=j();if(p(e))return v(e);s=setTimeout(g,function(e){var n=t-(e-u);return d?W(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=j(),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=H(t)||0,F(n)&&(c=!!n.leading,o=(d="maxWait"in n)?z(H(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(j())},m}},44591:function(e,t,n){"use strict";n.d(t,{b:function(){return i}});var i=(0,n(31853).b)("aside-header")},13649: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}},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"},D={x:"scrollWidth",y:"scrollHeight"},N={x:"scrollLeft",y:"scrollTop"},M={x:"width",y:"height"},T=function(){},I=!!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},O="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(O);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,I),this.scrollParent.removeEventListener("mousewheel",T,I)}},{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=N[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[N[n]]=e}},{key:"getScrollSize",value:function(){var e=this.scrollParent,t=document,n=t.body,i=t.documentElement,r=D[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,I),this.scrollParent.addEventListener("mousewheel",T,I))}},{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)},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(32711),s=n(24237),u=n(74601),l=(0,o.Ge)("button"),c=function(e){var t=e.side,n=e.className,i=e.children;return r.createElement("span",{className:l("icon",{side:t},n)},r.createElement("span",{className:l("icon-inner")},i))};c.displayName="Button.Icon";var 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=e.disabled,f=void 0!==h&&h,p=e.loading,v=void 0!==p&&p,m=e.width,_=e.title,y=e.tabIndex,b=e.type,w=void 0===b?"button":b,C=e.component,k=e.href,S=e.target,x=e.rel,L=e.extraProps,E=e.onClick,D=e.onMouseEnter,N=e.onMouseLeave,M=e.onFocus,T=e.onBlur,I=e.children,O=e.id,A=e.style,R=e.className,P=e.qa,Z={title:_,tabIndex:y,onClick:E,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:N,onFocus:M,onBlur:T,id:O,style:A,className:d({view:i,size:a,pin:l,selected:c,disabled:f||v,loading:v,width:m},R),"data-qa":P};if("string"===typeof k||C){var F={href:k,target:S,rel:"_blank"!==S||x?x:"noopener noreferrer"};return r.createElement(C||"a",Object.assign(Object.assign(Object.assign(Object.assign({},L),Z),C?{}:F),{ref:t,"aria-disabled":f||v}),g(I))}return r.createElement("button",Object.assign({},L,Z,{ref:t,type:w,disabled:f||v,"aria-pressed":c}),g(I))}));h.displayName="Button";var f=Object.assign(h,{Icon:c}),p=(0,u.s)(c);function g(e){var t=r.Children.toArray(e);if(1===t.length){var n=t[0];return p(n)?n:(0,a.y)(n)?r.createElement(f.Icon,{key:"icon"},n):r.createElement("span",{key:"text",className:d("text")},n)}var o,s,u,l,c=[],h=(0,i.Z)(t);try{for(h.s();!(l=h.n()).done;){var g=l.value,v=(0,a.y)(g),m=p(g);if(v||m)if(o||0!==c.length){if(!s&&0!==c.length){var _="right";s=v?r.createElement(f.Icon,{key:"icon-right",side:_},g):r.cloneElement(g,{side:_})}}else{var y="left";o=v?r.createElement(f.Icon,{key:"icon-left",side:y},g):r.cloneElement(g,{side:y})}else c.push(g)}}catch(b){h.e(b)}finally{h.f()}return c.length>0&&(u=r.createElement("span",{key:"text",className:d("text")},c)),[o,s,u]}},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"),l=i.forwardRef((function(e,t){var n,r,c,d=e.data,h=e.width,f=e.height,p=e.size,g=e.className,v=e.fill,m=void 0===v?"currentColor":v,_=e.stroke,y=void 0===_?"none":_,b=e.qa;if(p&&(n=p,r=p),h&&(n=h),f&&(r=f),a(d))c=d.viewBox;else if(s(d))c=function(e){var t=e.match(/viewBox=(["']?)([\d\s,-]+)\1/);return t?t[2]:void 0}(d);else if(function(e){return"object"===typeof e&&"defaultProps"in e}(d))c=d.defaultProps.viewBox;else if(function(e){return"function"===typeof e&&(!e.prototype||!e.prototype.render)}(d)){var w=d({});w&&(c=w.props.viewBox)}if(c&&(!n||!r)){var C=c.split(/\s+|\s*,\s*/);n||(n=C[2]),r||(r=C[3])}var k=Object.assign({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:n,height:r,className:u(null,g),fill:m,stroke:y,"data-qa":b},o.i);if(s(d)){var S=function(e){return e.replace(/<svg[^>]*>/,(function(e){return e.replace(/(width|height)=(["']?)\d+\2/g,"").replace(/(\s){2,}\b/g,"$1").replace(/(\s)+>/g,">")}))}(d);return i.createElement("svg",Object.assign({},k,{ref:t,dangerouslySetInnerHTML:{__html:S}}))}if(a(d)){var x=l.prefix+(d.url||"#".concat(d.id));return i.createElement("svg",Object.assign({},k,{viewBox:c,ref:t}),i.createElement("use",{href:x,xlinkHref:x}))}var L=d;return L.defaultProps&&(L.defaultProps.width=L.defaultProps.height=void 0),i.createElement("svg",Object.assign({},k,{ref:t}),i.createElement(L,{width:void 0,height:void 0}))}));l.displayName="Icon",l.prefix=""},92673:function(e,t,n){"use strict";n.d(t,{x:function(){return u}});var i=n(59833),r=n(4519),o=n(12490),a=(0,n(67119).Ge)("text"),s=function(e,t){var n=e.variant,i=void 0===n?"body-1":n,r=e.ellipsis,o=e.whiteSpace,s=e.wordBreak;return a({variant:i,ellipsis:r,ws:o,wb:s},t)},u=r.forwardRef((function(e,t){var n=e.as,a=e.children,u=e.variant,l=e.className,c=e.ellipsis,d=e.color,h=e.whiteSpace,f=e.wordBreak,p=e.qa,g=(0,i._T)(e,["as","children","variant","className","ellipsis","color","whiteSpace","wordBreak","qa"]),v=n||"span";return r.createElement(v,Object.assign({ref:t,className:s({variant:u,ellipsis:c,whiteSpace:h,wordBreak:f},d?(0,o.V)({color:d},l):l),"data-qa":p},g),a)}));u.displayName="Text"},12490:function(e,t,n){"use strict";n.d(t,{V:function(){return r}});var i=(0,n(67119).Ge)("color-text"),r=function(e,t){var n=e.color;return i({color:n},t)}},11598:function(e,t,n){"use strict";n.d(t,{k:function(){return c}});var i=n(59833),r=n(4519),o=n(67119),a=n(52729),s=r.createContext({theme:a.A,activeMediaQuery:"s"}),u=n(4452),l=(0,o.Ge)("flex"),c=r.forwardRef((function(e,t){var n=e.as,o=void 0===n?"div":n,a=e.direction,c=e.width,d=e.grow,h=e.basis,f=e.children,p=e.style,g=e.alignContent,v=e.alignItems,m=e.alignSelf,_=e.justifyContent,y=e.justifyItems,b=e.justifySelf,w=e.shrink,C=e.wrap,k=e.inline,S=e.title,x=e.gap,L=e.gapRow,E=e.className,D=e.space,N=e.qa,M=(0,i._T)(e,["as","direction","width","grow","basis","children","style","alignContent","alignItems","alignSelf","justifyContent","justifyItems","justifySelf","shrink","wrap","inline","title","gap","gapRow","className","space","qa"]),T=function(){var e=r.useContext(s),t=e.activeMediaQuery,n=e.theme,i=r.useMemo((function(){return{isMediaActive:(0,u.ur)(t),getClosestMediaProps:(0,u.GD)(t)}}),[t]),o=i.isMediaActive,a=i.getClosestMediaProps;return{theme:n,activeMediaQuery:t,isMediaActive:o,getClosestMediaProps:a}}(),I=T.getClosestMediaProps,O=T.theme.spaceBaseSize,A=function(e){return"object"===typeof e&&null!==e?I(e):e},R=A(x),P=R?O*Number(R):void 0,Z=A(L)||R,F=Z?O*Number(Z):void 0,j=A(D),H=x||L||!j?void 0:(0,u.cA)(j);return r.createElement(o,Object.assign({className:l({inline:k,s:H},E),style:Object.assign({width:c,flexDirection:A(a),flexGrow:!0===d?1:d,flexWrap:!0===C?"wrap":C,flexBasis:h,flexShrink:w,columnGap:P,rowGap:F,alignContent:A(g),alignItems:A(v),alignSelf:A(m),justifyContent:A(_),justifyItems:A(y),justifySelf:A(b)},p),title:S,ref:t,"data-qa":N},M),D?r.Children.map(f,(function(e){return e?r.createElement("div",{className:l("wr")},e):e})):f)}))},52729:function(e,t,n){"use strict";n.d(t,{A:function(){return r},Q:function(){return i}});var i={.5:"half"},r={breakpoints:{s:576,m:768,l:1080,xl:1200,xxl:1400,xxxl:1920},spaceBaseSize:4,components:{container:{gutters:"3",media:{l:{gutters:"5"}}}}}},4452:function(e,t,n){"use strict";n.d(t,{GD:function(){return s},cA:function(){return u},ur:function(){return o}});var i=n(52729),r={s:0,m:1,l:2,xl:3,xxl:4,xxxl:5},o=function(e){return function(t){return e in r&&r[e]-r[t]>=0}},a=["s","m","l","xl","xxl","xxxl"],s=function(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(e)for(var n=e;n;){if(t[n])return t[n];n=a[r[n]-1]}}},u=function(e){return e in i.Q?i.Q[e]:String(e)}},67119:function(e,t,n){"use strict";n.d(t,{A7:function(){return r},B_:function(){return s},Ge:function(){return a},Ui:function(){return u},bJ:function(){return o}});var i=n(50348),r="yc-",o="g-",a=((0,i.withNaming)({e:"__",m:"_"}),(0,i.withNaming)({n:r,e:"__",m:"_"})),s=(0,i.withNaming)({n:o,e:"__",m:"_"});function u(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(88216),r=n(67119),o=n(74601),a=1;function s(){return"".concat(r.A7,"uniq-").concat(a++)}var u=(0,o.s)(i.J)},24237:function(e,t,n){"use strict";n.d(t,{P:function(){return s}});var i=n(15671),r=n(43144),o=n(59833),a=n(67119),s=new(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}())(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(!i.isValidElement(t))return!1;var n=t.type;return n===i.Component||n.displayName===e.displayName}}},93453:function(e,t,n){"use strict";n.d(t,{i:function(){return i}});var i={"aria-hidden":!0}},30590:function(e,t,n){"use strict";n.d(t,{V:function(){return i}});var i={BACKSPACE:"Backspace",ENTER:"Enter",TAB:"Tab",SPACEBAR:" ",SPACEBAR_OLD:"Spacebar",ESCAPE:"Escape",ARROW_UP:"ArrowUp",ARROW_DOWN:"ArrowDown"}},133:function(e,t,n){"use strict";n.d(t,{b:function(){return o}});var i=n(4519),r=n(30590);function o(e){return{onKeyDown:i.useCallback((function(t){e&&[r.V.ENTER,r.V.SPACEBAR,r.V.SPACEBAR_OLD].includes(t.key)&&e(t)}),[e])}}},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},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}},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}},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}},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)}},27534:function(e){e.exports=function(e,t){return null!=e&&t in Object(e)}},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 D=L?e.value():e,N=E?t.value():t;return _||(_=new i),m(D,N,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}},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}},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)}}},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))}},88517:function(e,t,n){var i=n(3650)["__core-js_shared__"];e.exports=i},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)}}},97771:function(e,t,n){var i=n(3650),r=n(60389),o=n(1584),a=n(5881),s=i.isFinite,u=Math.min;e.exports=function(e){var t=Math[e];return function(e,n){if(e=o(e),(n=null==n?0:u(r(n),292))&&s(e)){var i=(a(e)+"e").split("e"),l=t(i[0]+"e"+(+i[1]+n));return+((i=(a(l)+"e").split("e"))[0]+"e"+(+i[1]-n))}return t(e)}}},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 D=x.get(e);if(D)return D==t;i|=c,x.set(e,t);var N=a(L(e),L(t),i,C,S,x);return x.delete(e),N;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))}},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}},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))}}},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}},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}},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}},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}},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}},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)}},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},37750:function(e,t,n){var i=n(72467),r=n(81591),o=n(10878),a=n(60508),s=n(75359),u=n(47874),l=n(9986),c=n(52841),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}},62892:function(e,t,n){var i=n(22327);e.exports=function(e,t){return i(e,t)}},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}},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}},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)}},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},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},56430:function(e,t,n){var i=n(97771)("round");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}},60389:function(e,t,n){var i=n(11347);e.exports=function(e){var t=i(e),n=t%1;return t===t?n?t-n:t: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)}},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.ariaHidden="true",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}},64603:function(e,t){var n;n=function(e){e.version="1.2.2";var t=function(){for(var e=0,t=new Array(256),n=0;256!=n;++n)e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=n)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1,t[n]=e;return"undefined"!==typeof Int32Array?new Int32Array(t):t}(),n=function(e){var t=0,n=0,i=0,r="undefined"!==typeof Int32Array?new Int32Array(4096):new Array(4096);for(i=0;256!=i;++i)r[i]=e[i];for(i=0;256!=i;++i)for(n=e[i],t=256+i;t<4096;t+=256)n=r[t]=n>>>8^e[255&n];var o=[];for(i=1;16!=i;++i)o[i-1]="undefined"!==typeof Int32Array?r.subarray(256*i,256*i+256):r.slice(256*i,256*i+256);return o}(t),i=n[0],r=n[1],o=n[2],a=n[3],s=n[4],u=n[5],l=n[6],c=n[7],d=n[8],h=n[9],f=n[10],p=n[11],g=n[12],v=n[13],m=n[14];e.table=t,e.bstr=function(e,n){for(var i=-1^n,r=0,o=e.length;r<o;)i=i>>>8^t[255&(i^e.charCodeAt(r++))];return~i},e.buf=function(e,n){for(var _=-1^n,y=e.length-15,b=0;b<y;)_=m[e[b++]^255&_]^v[e[b++]^_>>8&255]^g[e[b++]^_>>16&255]^p[e[b++]^_>>>24]^f[e[b++]]^h[e[b++]]^d[e[b++]]^c[e[b++]]^l[e[b++]]^u[e[b++]]^s[e[b++]]^a[e[b++]]^o[e[b++]]^r[e[b++]]^i[e[b++]]^t[e[b++]];for(y+=15;b<y;)_=_>>>8^t[255&(_^e[b++])];return~_},e.str=function(e,n){for(var i=-1^n,r=0,o=e.length,a=0,s=0;r<o;)(a=e.charCodeAt(r++))<128?i=i>>>8^t[255&(i^a)]:a<2048?i=(i=i>>>8^t[255&(i^(192|a>>6&31))])>>>8^t[255&(i^(128|63&a))]:a>=55296&&a<57344?(a=64+(1023&a),s=1023&e.charCodeAt(r++),i=(i=(i=(i=i>>>8^t[255&(i^(240|a>>8&7))])>>>8^t[255&(i^(128|a>>2&63))])>>>8^t[255&(i^(128|s>>6&15|(3&a)<<4))])>>>8^t[255&(i^(128|63&s))]):i=(i=(i=i>>>8^t[255&(i^(224|a>>12&15))])>>>8^t[255&(i^(128|a>>6&63))])>>>8^t[255&(i^(128|63&a))];return~i}},"undefined"===typeof DO_NOT_EXPORT_CRC?n(t):n({})},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,D=h*x+f*L+.5*t,N=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)),I=[],O=M/T,A=8/3*Math.sin(O/4)*Math.sin(O/4)/Math.sin(O/2),R=N+O,P=0;P<T;P++)I[P]=i(N,R,f,h,n,o,E,D,A,p,g),p=I[P][5],g=I[P][6],N=R,R+=O;return I}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,D,N=k.length,M=N;N--;)L=(D=1-(p=k[N]))*D*D*t+3*D*D*p*i+3*D*p*p*a+p*p*p*u,S[0][N]=L,E=D*D*D*n+3*D*D*p*o+3*D*p*p*s+p*p*p*l,S[1][N]=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,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")},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),D=t.original,N=E/(Math.abs(u.x*D.scaleX/f.scaleX)+Math.abs(u.y*D.scaleY/f.scaleY));a=D.scaleX*N,s=D.scaleY*N}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,D,N,M,T,I,O;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,D=0,N=0,M=0,T=0,S=C.x-_;S<=C.x+_;S++)if(!(S<0||S>=t)){I=i(1e3*o(S-w.x)),b[I]||(b[I]={});for(var A=C.y-y;A<=C.y+y;A++)A<0||A>=a||(O=i(1e3*o(A-w.y)),b[I][O]||(b[I][O]=f(r(n(I*v,2)+n(O*m,2))/1e3)),(x=b[I][O])>0&&(E+=x,D+=x*c[L=4*(A*t+S)],N+=x*c[L+1],M+=x*c[L+2],T+=x*c[L+3]))}h[L=4*(k*s+u)]=D/E,h[L+1]=N/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 D=o(L-(E+.5))/h,N=(m+.5)*l,M=D*D,T=i(m*l);T<(m+1)*l;T++){var I=o(N-(T+.5))/d,O=r(M+I*I);O>1&&O<-1||(y=2*O*O*O-3*O*O+1)>0&&(x+=y*f[(I=4*(T+E*t))+3],w+=y,f[I+3]<255&&(y=y*f[I+3]/250),C+=y*f[I],k+=y*f[I+1],S+=y*f[I+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(D){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)},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},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},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}},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]",D="[object Function]",N="[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[D]=T["[object WeakMap]"]=!1,e.exports=function e(t,n,I,O,A,R){var P,Z=n&S,F=n&x,j=n&L;if(I&&(P=A?I(t,O,A,R):I(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==D||B==N;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,I,i,t,R))})),P;if(b(t))return t.forEach((function(i,r){P.set(r,e(i,n,I,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,I,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},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}},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)}},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 D=L?e.value():e,N=E?t.value():t;return _||(_=new i),m(D,N,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}},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)]}},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}},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}},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}},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)}}},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)}},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},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 D=x.get(e);if(D)return D==t;i|=c,x.set(e,t);var N=a(L(e),L(t),i,C,S,x);return x.delete(e),N;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)}},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}},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]}},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))}},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}},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}},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)}},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}},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}},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))}},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)}},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},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}},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""}},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}}},93841:function(e){e.exports=function(e,t){return e===t||e!==e&&t!==t}},68369:function(e,t,n){var i=n(31368);e.exports=function(e){return(null==e?0:e.length)?i(e,1):[]}},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,D=y.isWeakMap,N=y.keys,M=y.rearg,T=y.toInteger,I=y.toPath,O=N(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(N(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=I(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)||D(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(O,(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(O,(function(e){S(i.aryMethod[e],(function(e){var t=z[i.remap[e]||e];t&&W.push([e,B(e,t,z)])}))})),S(N(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(N(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}},37421:function(e){e.exports={}},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}},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)}},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},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="...",D=800,N=16,M=1,T=2,I=1/0,O=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,De=/<%=([\s\S]+?)%>/g,Ne=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Me=/^\w*$/,Te=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ie=/[\\^$.*+?()[\]{}|]/g,Oe=RegExp(Ie.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("|")+")",Dt=RegExp(ot,"g"),Nt=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"),It=RegExp("["+_t+Xe+Je+it+"]"),Ot=/[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 Dn(e,t){return cn(t,(function(t){return e[t]}))}function Nn(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 In=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"}),On=kn({"&":"&","<":"<",">":">",'"':""","'":"'"});function An(e){return"\\"+Ft[e]}function Rn(e){return It.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({"&":"&","<":"<",">":">",""":'"',"'":"'"});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(Ie,"\\$&").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){}}(),It=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(Ds(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))&&Ii(e,t,n)}function Di(e,t,n){var i=e[t];ct.call(e,t)&&fs(i,n)&&(n!==r||t in e)||Ii(e,t,n)}function Ni(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 Ii(e,t,n){"__proto__"==t&&Mt?Mt(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function Oi(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),Os(e))return e.forEach((function(i){s.add(Ri(i,t,n,i,e,a))})),s;if(Ns(e))return e.forEach((function(i,r){s.set(r,Ri(i,t,n,r,e,a))})),s;var _=p?r:(c?l?Io:To:l?ou:ru)(e);return rn(_||e,(function(i,r){_&&(i=e[r=i]),Di(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=Nn,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:De,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=Ni(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=Ni(t,e);return n<0?r:t[n][1]},yi.prototype.has=function(e){return Ni(this.__data__,e)>-1},yi.prototype.set=function(e,t){var n=this.__data__,i=Ni(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?Nn(p,v):o(d,v,i))){for(u=s;--u;){var m=l[u];if(!(m?Nn(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 Ds(e)&&Xi(e)==H}function or(e,t,n,i,o){return e===t||(null==e||null==t||!Ds(e)&&!Ds(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)?No(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=No(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>O)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])?[]:{})}Di(u,l,c),u=u[l]}return e}var Er=ii?function(e,t){return ii.set(e,t),e}:Mu,Dr=Mt?function(e,t){return Mt(e,"toString",{configurable:!0,enumerable:!1,value:Eu(t),writable:!0})}:Mu;function Nr(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 Ir(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 Or(e,t,Mu,n)}function Or(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==-I?"-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=Nn,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=It||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?Ii(n,u,l):Di(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(Dt,"")),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?Oo(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]==I?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:Oo(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 Do(e){return Ts(e)?r:e}function No(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(!Nn(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 Io(e){return Qi(e,ou,Bo)}var Oo=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?O: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)||!Ne.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=Oo(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(Dr);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=N-(i-n);if(n=i,o>0){if(++t>=D)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==-I?"-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=Oi(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 Da=kr((function(e){return Zr(Vi(e,1,bs,!0))})),Na=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 Ia(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 Oa=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,Ia(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 Oi(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]:Ii(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):Ii(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){Ii(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 Ds(e)&&ct.call(e,"callee")&&!kt.call(e,"callee")},ms=n.isArray,_s=Gt?En(Gt):function(e){return Ds(e)&&Xi(e)==ue};function ys(e){return null!=e&&Ls(e.length)&&!Ss(e)}function bs(e){return Ds(e)&&ys(e)}var ws=Kt||Wu,Cs=$t?En($t):function(e){return Ds(e)&&Xi(e)==V};function ks(e){if(!Ds(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<=O}function Es(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ds(e){return null!=e&&"object"==typeof e}var Ns=Qt?En(Qt):function(e){return Ds(e)&&zo(e)==G};function Ms(e){return"number"==typeof e||Ds(e)&&Xi(e)==$}function Ts(e){if(!Ds(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&<.call(n)==pt}var Is=Xt?En(Xt):function(e){return Ds(e)&&Xi(e)==te};var Os=Jt?En(Jt):function(e){return Ds(e)&&zo(e)==ne};function As(e){return"string"==typeof e||!ms(e)&&Ds(e)&&Xi(e)==ie}function Rs(e){return"symbol"==typeof e||Ds(e)&&Xi(e)==re}var Ps=en?En(en):function(e){return Ds(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))===I||e===-I?(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)&&Di(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(Oi);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,Io(e),n),i&&(n=Ri(n,d|h|f,Do));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(Io(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?[]:Dn(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,In).replace(Nt,"")}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 Ot.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),Ii(e,t,ns(e[t],e))})),e}));function Eu(e){return function(){return e}}var Du=fo(),Nu=fo(!0);function Mu(e){return e}function Tu(e){return ur("function"==typeof e?e:Ri(e,d))}var Iu=kr((function(e,t){return function(n){return ir(n,e,t)}})),Ou=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),I)},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,I):[]},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=Du,fi.flowRight=Nu,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){Ii(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){Ii(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=Iu,fi.methodOf=Ou,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:Nr)(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&&!Is(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=Da,fi.unionBy=Na,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=Ia,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?[]:Dn(e,ou(e))},fi.without=Oa,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||[],Di)},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,On):e},fi.escapeRegExp=function(e){return(e=Ys(e))&&Oe.test(e)?e.replace(Ie,"\\$&"):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||Ds(e)&&Xi(e)==W},fi.isBuffer=ws,fi.isDate=Cs,fi.isElement=function(e){return Ds(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=Ns,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=Ds,fi.isPlainObject=Ts,fi.isRegExp=Is,fi.isSafeInteger=function(e){return xs(e)&&e>=-O&&e<=O},fi.isSet=Os,fi.isString=As,fi.isSymbol=Rs,fi.isTypedArray=Ps,fi.isUndefined=function(e){return e===r},fi.isWeakMap=function(e){return Ds(e)&&zo(e)==ae},fi.isWeakSet=function(e){return Ds(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 Ir(e,t)},fi.sortedIndexBy=function(e,t,n){return Or(e,t,Po(n,2))},fi.sortedIndexOf=function(e,t){var n=null==e?0:e.length;if(n){var i=Ir(e,t);if(i<n&&fs(e[i],t))return i}return-1},fi.sortedLastIndex=function(e,t){return Ir(e,t,!0)},fi.sortedLastIndexBy=function(e,t,n){return Or(e,t,Po(n,2),!0)},fi.sortedLastIndexOf=function(e,t){if(null==e?0:e.length){var n=Ir(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=Dn(s,u),c=0,d=t.interpolate||$e,h="__p += '",f=nt((t.escape||$e).source+"|"+d.source+"|"+(d===De?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>O)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),-O,O):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),Is(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 D(e){return function(t){return e(t)}}function N(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 I(e,t){for(var n=e.length;n--&&-1<y(t,e[n],0););return n}function O(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(Ne.test(e)){for(var t=Ee.lastIndex=0;Ee.test(e);)++t;e=t}else e=Qe(e);return e}function j(e){return Ne.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"),De=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"),Ne=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(" "),Ie={};Ie["[object Float32Array]"]=Ie["[object Float64Array]"]=Ie["[object Int8Array]"]=Ie["[object Int16Array]"]=Ie["[object Int32Array]"]=Ie["[object Uint8Array]"]=Ie["[object Uint8ClampedArray]"]=Ie["[object Uint16Array]"]=Ie["[object Uint32Array]"]=!0,Ie["[object Arguments]"]=Ie["[object Array]"]=Ie["[object ArrayBuffer]"]=Ie["[object Boolean]"]=Ie["[object DataView]"]=Ie["[object Date]"]=Ie["[object Error]"]=Ie["[object Function]"]=Ie["[object Map]"]=Ie["[object Number]"]=Ie["[object Object]"]=Ie["[object RegExp]"]=Ie["[object Set]"]=Ie["[object String]"]=Ie["[object WeakMap]"]=!1;var Oe={};Oe["[object Arguments]"]=Oe["[object Array]"]=Oe["[object ArrayBuffer]"]=Oe["[object DataView]"]=Oe["[object Boolean]"]=Oe["[object Date]"]=Oe["[object Float32Array]"]=Oe["[object Float64Array]"]=Oe["[object Int8Array]"]=Oe["[object Int16Array]"]=Oe["[object Int32Array]"]=Oe["[object Map]"]=Oe["[object Number]"]=Oe["[object Object]"]=Oe["[object RegExp]"]=Oe["[object Set]"]=Oe["[object String]"]=Oe["[object Symbol]"]=Oe["[object Uint8Array]"]=Oe["[object Uint8ClampedArray]"]=Oe["[object Uint16Array]"]=Oe["[object Uint32Array]"]=!0,Oe["[object Error]"]=Oe["[object Function]"]=Oe["[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({"&":"&","<":"<",">":">",'"':""","'":"'"}),et=S({"&":"&","<":"<",">":">",""":'"',"'":"'"}),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(!Oe[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 Oo?Nr(Oo.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=Nr(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 Ir("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,D(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 Nr(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 Nr(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,D(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 Dt(e){return Gi(e)&&"[object Arguments]"==Ct(e)}function Nt(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,Nt,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(Oo)return Oo.call(e)==Oo.call(t)}return!1}(e,t,o,n,i,Nt,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=Nt(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&&!Nt(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=Nr(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?!Nt(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 It(e){return"function"==typeof e?e:null==e?mr:"object"==typeof e?Za(e)?Zt(e[0],e[1]):Pt(e):wr(e)}function Ot(e){if(!di(e))return ho(e);var t,n=[];for(t in Nr(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):Nt(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],D(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,D(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=Nr(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=Nr(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=Nr(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=Ne.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 Dn(e){return function(t){return p(gr(pr(t).replace(xe,"")),e,"")}}function Nn(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=Nn(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,On,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=Nr(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 In(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 Ir("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 On(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:Nn(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,On,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||Nn(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,D(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))),Ne.test(t)?pn(j(n),0,e).join(""):n.slice(0,e))}function Fn(e,t,n,i){var o=1&t,a=Nn(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=Dr[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 Ir("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?On.apply(H,o):Fn(e,t,n,i):function(e,t,n){var i=1&t,r=Nn(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?It: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 Nr(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 Nr(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 Di(e){return null==e?e:_o.call(e)}function Ni(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=Ni(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 Ii(e,t){return t(e)}function Oi(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 Ir("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 Ir("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 Ir("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 Ir("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):Ot(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 Nr(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?[]:N(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(De)||[]:e.match(de)||[]:e.match(t)||[]}function vr(e){return function(){return e}}function mr(e){return e}function _r(e){return It("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,Dr=t.Math,Nr=t.Object,Mr=t.RegExp,Tr=t.String,Ir=t.TypeError,Or=Sr.prototype,Ar=Nr.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(Nr),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(Nr.getPrototypeOf,Nr),Gr=Nr.create,$r=Ar.propertyIsEnumerable,Qr=Or.splice,Xr=Yr?Yr.isConcatSpreadable:H,Jr=Yr?Yr.iterator:H,eo=Yr?Yr.toStringTag:H,to=function(){try{var e=ii(Nr,"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=Dr.ceil,ao=Dr.floor,so=Nr.getOwnPropertySymbols,uo=Vr?Vr.isBuffer:H,lo=t.isFinite,co=Or.join,ho=R(Nr.keys,Nr),fo=Dr.max,po=Dr.min,go=xr.now,vo=t.parseInt,mo=Dr.random,_o=Or.reverse,yo=ii(t,"DataView"),bo=ii(t,"Map"),wo=ii(t,"Promise"),Co=ii(t,"Set"),ko=ii(t,"WeakMap"),So=ii(Nr,"create"),xo=ko&&new ko,Lo={},Eo=yi(yo),Do=yi(bo),No=yi(wo),Mo=yi(Co),To=yi(ko),Io=Yr?Yr.prototype:H,Oo=Io?Io.valueOf:H,Ao=Io?Io.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=Nr(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 Do:return"[object Map]";case No: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(Ni),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:Ii,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)})),Da=Ut((function(e,t){return dt(e,1,t)})),Na=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],D(ei())):h(vt(t,1),D(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)))})),Ia=Ut((function(e,t){return Vn(e,64,H,t,P(t,Jn(Ia)))})),Oa=Gn((function(e,t){return Vn(e,256,H,H,H,t)})),Aa=Hn(kt),Ra=Hn((function(e,t){return e>=t})),Pa=Dt(function(){return arguments}())?Dt:function(e){return Gi(e)&&Zr.call(e,"callee")&&!$r.call(e,"callee")},Za=Sr.isArray,Fa=Ye?D(Ye):function(e){return Gi(e)&&"[object ArrayBuffer]"==Ct(e)},ja=uo||kr,Ha=Ue?D(Ue):function(e){return Gi(e)&&"[object Date]"==Ct(e)},Ba=Ke?D(Ke):function(e){return Gi(e)&&"[object Map]"==Ko(e)},za=qe?D(qe):function(e){return Gi(e)&&"[object RegExp]"==Ct(e)},Wa=Ge?D(Ge):function(e){return Gi(e)&&"[object Set]"==Ko(e)},Va=$e?D($e):function(e){return Gi(e)&&Ki(e.length)&&!!Ie[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=Nr(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=Dn((function(e,t,n){return t=t.toLowerCase(),e+(n?fr(t):t)})),cs=Dn((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),ds=Dn((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),hs=En("toLowerCase"),fs=Dn((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()})),ps=Dn((function(e,t,n){return e+(n?" ":"")+vs(t)})),gs=Dn((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=In(),bs=In(!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),Ds=Rn((function(e,t){return e+t}),0),Ns=zn("ceil"),Ms=Rn((function(e,t){return e/t}),1),Ts=zn("floor"),Is=Rn((function(e,t){return e*t}),1),Os=zn("round"),As=Rn((function(e,t){return e-t}),0);return n.after=function(e,t){if("function"!=typeof t)throw new Ir("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 Ir("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=Da,n.delay=Na,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=Ia,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=Oa,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 Ir("Expected a function");return Ut(e,t=t===H?t:nr(t))},n.reverse=Di,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))&&Ne.test(e))?pn(j(e),0,n):e.split(t,n):[]},n.spread=function(e,t){if("function"!=typeof e)throw new Ir("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 Ir("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=Ii,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=Ni,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?[]:N(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=Ds,n.attempt=ms,n.camelCase=ls,n.capitalize=fr,n.ceil=Ns,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=Oi,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!Ot(e).length;for(var n in e)if(Zr.call(e,n))return!1;return!0},n.isEqual=function(e,t){return Nt(e,t)},n.isEqualWith=function(e,t,n){var i=(n="function"==typeof n?n:H)?n(e,t):H;return i===H?Nt(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=Is,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=Os,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:Ot(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=N(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,O),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=I(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=I(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(Ne.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=Oi,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:Ii,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=Or[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[On(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:Ii,args:[Di],thisArg:H}),new S(e,this.__chain__)):this.thru(Di)},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},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},59537:function(e,t,n){var i=n(32559);e.exports=function(e,t,n){return null==e?e:i(e,t,n)}},8304:function(e){e.exports=function(){return[]}},54666:function(e){e.exports=function(){return!1}},20403:function(e,t,n){var i=n(24714);e.exports=function(e){return null==e?"":i(e)}},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 D},addDisposableListener:function(){return k},addDisposableNonBubblingMouseOutListener:function(){return N},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 Ne},asCSSUrl:function(){return De},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 I},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(43668),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 D(e,t,n){return k(e,m.gn&&y.D.pointerEvents?ce.POINTER_UP:ce.MOUSE_UP,t,n)}function N(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,I,O=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};I=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){O||(O=self.requestAnimationFrame||self.msRequestAnimationFrame||self.webkitRequestAnimationFrame||self.mozRequestAnimationFrame||self.oRequestAnimationFrame||function(e){return setTimeout((function(){return e((new Date).getTime())}),0)});O.call(self,e)}(r)),i},T=function(e,n){if(i){var r=new A(e,n);return t.push(r),r}return I(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=I((function n(){e(),t=I(n)}));return(0,v.OF)((function(){return t.dispose()}))}function De(e){return e?"url('".concat(_.Gi.asBrowserUri(e).toString(!0).replace(/'/g,"%27"),"')"):"url('')"}function Ne(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(43668),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(43668),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(43668),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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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(43668),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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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(43668),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 D},Bv:function(){return I}});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},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}(),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}(),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){}})),I=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),D=E.start;D<E.end;D++)this.updateItemInDOM(this.items[D],D);var N,M=p.e.relativeComplement(L,x),T=(0,i.Z)(M);try{for(T.s();!(N=T.n()).done;)for(var I=N.value,O=I.start;O<I.end;O++)this.removeItemFromDOM(O)}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 D(i),k.P$.CurrentDragAndDropData=new N(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(N){g.e(N)}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(N){b.e(N)}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,D=this.elementTop(r)-o+E;this.setScrollTop(D,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}();I.InstanceCount=0,L([w.H],I.prototype,"onMouseClick",null),L([w.H],I.prototype,"onMouseDblClick",null),L([w.H],I.prototype,"onMouseMiddleClick",null),L([w.H],I.prototype,"onMouseDown",null),L([w.H],I.prototype,"onContextMenu",null),L([w.H],I.prototype,"onTouchStart",null),L([w.H],I.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(43668),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),D=n(50482),N=n(52180),M=n(84540),T=n(27997),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},O=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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}();I([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,N.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,D.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 O(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 O(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}();I([v.H],ie.prototype,"onDidChangeFocus",null),I([v.H],ie.prototype,"onDidChangeSelection",null),I([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(43668),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(43668),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),D=(0,k.CM)("scrollbar-button-down",k.lA.triangleDown),N=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:D,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),I=n(84539),O=(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 O(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 N(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,I.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 D}});var i,r,o=n(93433),a=n(37762),s=n(11752),u=n(61120),l=n(60136),c=n(43668),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 D=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)})),D=(0,f.F8)(b,C,S,x,v),N={sash:v,disposable:D};this.sashItems.splice(r-1,0,N)}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),D=0===h.length?Number.NEGATIVE_INFINITY:h.reduce((function(e,t){return e+(i[t]-n.viewItems[t].maximumSize)}),0),N=Math.max(x,D,s),M=Math.min(E,L,u),T=!1;if(l){var I=this.viewItems[l.index],O=t>=l.limitDelta;T=O!==I.visible,I.setVisible(O,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,N,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(43668),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(43668),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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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 D=x+e;D===k||D<S&&l[D-1]<l[D+1]?(g=(d=l[D+1])-x-i,d<L&&C.MarkNextChange(),L=d,C.AddModifiedElement(d+1,g),x=D+1-e):(g=(d=l[D-1]+1)-x-i,d<L&&C.MarkNextChange(),L=d-1,C.AddOriginalElement(d,g+1),x=D-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 N=p[0]+1,M=m[0]+1;if(null!==b&&b.length>0){var T=b[b.length-1];N=Math.max(N,T.getOriginalEnd()),M=Math.max(M,T.getModifiedEnd())}w=[new a(N,f-N+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 I=x+r;I===k||I<S&&c[I-1]>=c[I+1]?(g=(d=c[I+1]-1)-x-u,d>L&&C.MarkNextChange(),L=d+1,C.AddOriginalElement(d+1,g+1),x=I+1-r):(g=(d=c[I-1])-x-u,d>L&&C.MarkNextChange(),L=d,C.AddModifiedElement(d+1,g+1),x=I-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 D=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,D<=_[E]&&S<=1448?this.WALKTRACE(y,c,h,w,b,f,p,C,m,_,u,t,r,l,i,o,k,s):null}var N=(x-e+(L-n)-S)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(x,N))return s[0]=!0,r[0]=x,o[0]=L,N>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 I=new Int32Array(h-c+2);I[0]=y-c+1,d.Copy2(m,c,I,1,h-c+1),this.m_forwardHistory.push(I),(I=new Int32Array(p-f+2))[0]=b-f+1,d.Copy2(_,f,I,1,p-f+1),this.m_reverseHistory.push(I)}}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,D=x.originalStart,N=L.originalStart+L.originalLength,M=N-D,T=x.modifiedStart,I=L.modifiedStart+L.modifiedLength,O=I-T;if(E<5&&M<20&&O<20){var A=this._findBetterContiguousSequence(D,M,T,O,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=N-L.originalStart,L.modifiedLength=I-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(43668),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 I},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 D},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 D(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 N=128;function M(){for(var e=[],t=[],n=0;n<=N;n++)t[n]=0;for(var i=0;i<=N;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 I,O=T(2*N),A=T(2*N),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>N?N:e.length,u=i.length>N?N: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&&(O[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=O[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 D=Z[l][E];if(3===D)E-=2;else{if(2!==D)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]}}(I||(I={}))},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(D(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(D(n,t)))?N(i[1].substr(1),n,!0):(i=C.exec(D(n,t)))?N(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 D(e,t){return t.trimForExclusions&&e.endsWith("/**")?e.substr(0,e.length-2):e}function N(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(43668),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(43668),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={"&":"&","<":"<",">":">",'"':""","'":"'"},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]=D(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 D(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 N(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 I={escape:f,unescape:g,edit:m,cleanUrl:b,resolveUrl:x,noopTest:{exec:function(){}},merge:L,splitCells:E,rtrim:D,findClosingBracket:N,checkSanitizeDeprecation:M,repeatString:T},O=a.defaults,A=I.rtrim,R=I.splitCells,P=I.escape,Z=I.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||O}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=I.noopTest,z=I.edit,W=I.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,$=I.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=I.cleanUrl,ne=I.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=I.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=I.merge,ce=I.checkSanitizeDeprecation,de=I.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 O},DZ:function(){return R},Fv:function(){return M},KR:function(){return N},Gf:function(){return I},DB:function(){return T},ir:function(){return P},Ku:function(){return D}});var i,r=n(43144),o=n(15671),a=n(60136),s=n(43668),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 D={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 D.normalize(e)},relative:function(e,t){if(C(e,"from"),C(t,"to"),e===t)return"";var n=D.resolve(e),i=D.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=D.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},N={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?".":N.normalize(e)},relative:function(e,t){if(C(e,"from"),C(t,"to"),e===t)return"";if((e=N.resolve(e))===(t=N.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};N.win32=D.win32=D,N.posix=D.posix=N;var M="win32"===h?D.normalize:N.normalize,T="win32"===h?D.resolve:N.resolve,I="win32"===h?D.relative:N.relative,O="win32"===h?D.dirname:N.dirname,A="win32"===h?D.basename:N.basename,R="win32"===h?D.extname:N.extname,P="win32"===h?D.sep:N.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 D},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(I){}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)}}(),D=a||c?2:o?1:3,N=!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);N=513===t[0]}return N}},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(43668),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 I},P1:function(){return O},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 N},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"<";case">":return">";case"&":return"&";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 D(e){return L(e)||E(e)}function N(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(D(r)&&D(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 I(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 O(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(43668),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(43668),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,D=n.length;x&&E<D;E++){var N=L-n[E].width;if(N<-.001||N>.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(43668),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 D}});var i,r,o=n(29439),a=n(15671),s=n(43144),u=n(60136),l=n(43668),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 D,N=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 D=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 D({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 D({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 I=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=I,e.EditorScroll=(0,p.fK)(new I),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 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))._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 O({inSelectionMode:!1,id:"_wordSelect",precondition:void 0})),e.WordSelectDrag=(0,p.fK)(new O({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}(N)),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)))}(D||(D={}));var M,T=S.Ao.and(k.u.textInputFocus,k.u.columnSelection);function I(e,t){x.W.registerKeybindingRule({id:e,primary:t,when:T,weight:L+1})}function O(e){return e.register(),e}I(D.CursorColumnSelectLeft.id,1039),I(D.CursorColumnSelectRight.id,1041),I(D.CursorColumnSelectUp.id,1040),I(D.CursorColumnSelectPageUp.id,1035),I(D.CursorColumnSelectDown.id,1042),I(D.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}(N)),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}(N))}(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){O(new A("default:"+e,e)),O(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(43668),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(43668),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 O},R6:function(){return D},Sq:function(){return B},Uc:function(){return i},_K:function(){return P},_l:function(){return E},f:function(){return T},fK:function(){return I},jY:function(){return N},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(43668),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),D=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),N=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}(D);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 I(e){return Z.INSTANCE.registerEditorCommand(e),e}function O(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(43668),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(43668),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),D=n(30487),N=n(25044),M=n(55076),T=n(27997),I=n(78101),O=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 O(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 O(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 I.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=!!D.tY||!(D.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 O(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 De(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(D.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;D.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 De=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 Ne,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),Ne=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}();Ne.CLEAR_MOUSE_DOWN_COUNT_TIME=400;var Me=n(32721),Te=n(83106),Ie=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(N.o.addTarget(o.viewHelper.linesContentDomNode)),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,N.t.Tap,(function(e){return o.onTap(e)}))),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,N.t.Change,(function(e){return o.onChange(e)}))),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,N.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),Oe=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(N.o.addTarget(o.viewHelper.linesContentDomNode)),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,N.t.Tap,(function(e){return o.onTap(e)}))),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,N.t.Change,(function(e){return o.onChange(e)}))),o._register(_.addDisposableListener(o.viewHelper.linesContentDomNode,N.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),D.gn&&Me.D.pointerEvents?o.handler=o._register(new Ie(e,i,r)):window.TouchEvent?o.handler=o._register(new Oe(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=D.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,D.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(D.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.",D.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():D.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=D.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&<(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&<(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(),D.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),Dt=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}();Dt.Empty=new Dt(0,0,0,0);var Nt=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(),Nt.RW.onDidChange((function(e){e.changedColorMap&&t._updateColorMap()}))}return(0,d.Z)(e,[{key:"_updateColorMap",value:function(){var e=Nt.RW.getColorMap();if(!e)return this._colors=[Dt.Empty],void(this._backgroundIsLight=!0);this._colors=[Dt.Empty];for(var t=1;t<e.length;t++){var n=e[t].rgba;this._colors[t]=new Dt(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),It=n(92992),Ot=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)(Ot);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(It.kV);return n?new Dt(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),D=l*E,N=0;t.scrollBeyondLastLine&&(N=o/m-1);if(v>=s+N){return new e(l,c,f>0,E,D,h,1,s)}var M=Math.max(1,Math.floor(n-D*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(It.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 I.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=N.o.addTarget(r._domNode.domNode),r._sliderTouchStartListener=_.addDisposableListener(r._domNode.domNode,N.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,N.t.Change,(function(e){e.preventDefault(),e.stopPropagation(),r._lastRenderData&&r._gestureInProgress&&r.scrollDueToTouchEvent(e)}),{passive:!1}),r._sliderTouchEndListener=_.addStandardDisposableListener(r._domNode.domNode,N.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(D.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,I.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(It.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 D=-1===c?0:c,N=(-1===d?s.height:d)-D;return this._canvas.domNode.getContext("2d").putImageData(s,0,0,0,D,s.width,N),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,D=(L+i)*f*4,N=C*f*4,M=(C+i)*f*4;y===E&&w===N?(y=D,w=M):(-1!==_&&(p.set(l.subarray(_,y),b),-1===v&&0===_&&_===b&&(v=y),-1===m&&y===g&&_===b&&(m=_)),_=E,y=D,b=N,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,D=0;D<E;D++)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(It.kV);n&&t.addRule(".monaco-editor .minimap > canvas { opacity: ".concat(n.rgba.a,"; will-change: opacity; }"));var i=e.getColor(It.CA);i&&t.addRule(".monaco-editor .minimap-slider .minimap-slider-horizontal { background: ".concat(i,"; }"));var r=e.getColor(It.Xy);r&&t.addRule(".monaco-editor .minimap-slider:hover .minimap-slider-horizontal { background: ".concat(r,"; }"));var o=e.getColor(It.br);o&&t.addRule(".monaco-editor .minimap-slider.active .minimap-slider-horizontal { background: ".concat(o,"; }"));var a=e.getColor(It._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_)||Nt.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=Nt.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,D=E/2|0,N=this._settings.x[7],M=this._settings.w[7];u.fillStyle=this._settings.cursorColor;for(var T=-100,I=-100,O=0,A=this._cursorPositions.length;O<A;O++){var R=this._cursorPositions[O],P=i.getVerticalOffsetForLineNumber(R.lineNumber)*r|0;P<D?P=D:P+D>t&&(P=t-D);var Z=P-D,F=Z+E;Z>I+1?(0!==O&&u.fillRect(N,T,M,I-T),T=Z,I=F):F>I&&(I=F)}u.fillRect(N,T,M,I-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(It._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,D=w.endStyle;0===E.top&&(L+=" "+n.SELECTION_TOP_LEFT),0===E.bottom&&(L+=" "+n.SELECTION_BOTTOM_LEFT),0===D.top&&(L+=" "+n.SELECTION_TOP_RIGHT),0===D.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(It.hE);n&&t.addRule(".monaco-editor .focused .selected-text { background-color: ".concat(n,"; }"));var i=e.getColor(It.ES);i&&t.addRule(".monaco-editor .selected-text { background-color: ".concat(i,"; }"));var r=e.getColor(It.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})),Dn=(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)})),Nn=(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})),In=(0,d.Z)((function e(){(0,c.Z)(this,e),this.type=8})),On=(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 On(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 On(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}(),Di=!0,Ni=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,Di&&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 Nn),e.emitViewEvent(new In),e.emitViewEvent(new Dn(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 Dn(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 Nn),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],D=L[1],N=L[2],M=L[3];s=E,D&&o.emitViewEvent(D),N&&(o.emitViewEvent(N),e.viewLayout.onLinesInserted(N.fromLineNumber,N.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 In),o.emitViewEvent(new Dn(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 I=e.coordinatesConverter.convertModelPositionToViewPosition(T.getStartPosition()),O=e.viewLayout.getVerticalOffsetForLineNumber(I.lineNumber);e.viewLayout.setScrollPosition({scrollTop:O+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 Nn),n.emitViewEvent(new In),n.emitViewEvent(new Dn(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 Dn(t))})))}},{key:"setHiddenAreas",value:function(e){try{var t=this._eventDispatcher.beginEmitViewEvents();this._lines.setHiddenAreas(e)&&(t.emitViewEvent(new Nn),t.emitViewEvent(new In),t.emitViewEvent(new Dn(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,D.ED)}return s}},{key:"_getColorMap",value:function(){var e=Nt.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),Ii=n(84596),Oi=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 D=k,N=0===C?0:n.charCodeAt(C-1),M=0===C?0:e.get(N),T=!0,I=C;I<s;I++){var O=I,A=n.charCodeAt(I),R=void 0,P=void 0;if(Re.ZG(A)?(I++,R=0,P=2):(R=e.get(A),P=Wi(A,D,i,o)),O>g&&Yi(N,M,A,R)&&(S=O,x=D),(D+=P)>m){O>g?(L=O,E=D-P):(L=I+1,E=D),D-x>d&&(S=0),T=!1;break}N=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(),D=null!==(o=null===Ki||void 0===Ki?void 0:Ki.createHTML(E))&&void 0!==o?o:E;c.innerHTML=D,c.style.position="absolute",c.style.top="10000",c.style.wordWrap="break-word",document.body.appendChild(c);for(var N=document.createRange(),M=Array.prototype.slice.call(c.children,0),T=[],I=0;I<e.length;I++){var O=$i(N,M[I],p[I],g[I]);if(null!==O){for(var A=h[I],R=f[I],P=v[I],Z=[],F=0,j=O.length;F<j;F++)Z[F]=P[O[F]];if(0!==A)for(var H=0,B=O.length;H<B;H++)O[H]+=A;T[I]=new Tt.le(O,Z,R)}else T[I]=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("<");break;case 62:r.appendASCIIString(">");break;case 38:r.appendASCIIString("&");break;case 0:r.appendASCIIString("�");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 Oi.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 Ni(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,Ii.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(Nt.KZ.onDidChange(o)),r._register(Nt.H9.onDidChange(o)),r._register(Nt.He.onDidChange(o)),r._register(Nt.Ct.onDidChange(o)),r._register(Nt.RN.onDidChange(o)),r._register(Nt.vI.onDidChange(o)),r._register(Nt.tA.onDidChange(o)),r._register(Nt.xp.onDidChange(o)),r._register(Nt.vH.onDidChange(o)),r._register(Nt.vJ.onDidChange(o)),r._register(Nt.FL.onDidChange(o)),r._register(Nt.G0.onDidChange(o)),r._register(Nt.Az.onDidChange(o)),r._register(Nt.vN.onDidChange(o)),r._register(Nt.nD.onDidChange(o)),r._register(Nt.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(Nt.KZ.has(t)),e._hasCodeActionsProvider.set(Nt.H9.has(t)),e._hasCodeLensProvider.set(Nt.He.has(t)),e._hasDefinitionProvider.set(Nt.Ct.has(t)),e._hasDeclarationProvider.set(Nt.RN.has(t)),e._hasImplementationProvider.set(Nt.vI.has(t)),e._hasTypeDefinitionProvider.set(Nt.tA.has(t)),e._hasHoverProvider.set(Nt.xp.has(t)),e._hasDocumentHighlightProvider.set(Nt.vH.has(t)),e._hasDocumentSymbolProvider.set(Nt.vJ.has(t)),e._hasReferenceProvider.set(Nt.FL.has(t)),e._hasRenameProvider.set(Nt.G0.has(t)),e._hasSignatureHelpProvider.set(Nt.nD.has(t)),e._hasInlineHintsProvider.set(Nt.wo.has(t)),e._hasDocumentFormattingProvider.set(Nt.Az.has(t)||Nt.vN.has(t)),e._hasDocumentSelectionFormattingProvider.set(Nt.vN.has(t)),e._hasMultipleDocumentFormattingProvider.set(Nt.Az.all(t).length+Nt.vN.all(t).length>1),e._hasMultipleDocumentSelectionFormattingProvider.set(Nt.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(It.b6);n&&t.addRule(".monaco-editor .".concat("squiggly-error"," { border-bottom: 4px double ",n,"; }"));var i=e.getColor(It.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(It.A2);r&&t.addRule(".monaco-editor .".concat("squiggly-error","::before { display: block; content: ''; width: 100%; height: 100%; background: ",r,"; }"));var o=e.getColor(It.pW);o&&t.addRule(".monaco-editor .".concat("squiggly-warning"," { border-bottom: 4px double ",o,"; }"));var a=e.getColor(It.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(It.gp);s&&t.addRule(".monaco-editor .".concat("squiggly-warning","::before { display: block; content: ''; width: 100%; height: 100%; background: ",s,"; }"));var u=e.getColor(It.T8);u&&t.addRule(".monaco-editor .".concat("squiggly-info"," { border-bottom: 4px double ",u,"; }"));var l=e.getColor(It.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(It.fe);c&&t.addRule(".monaco-editor .".concat("squiggly-info","::before { display: block; content: ''; width: 100%; height: 100%; background: ",c,"; }"));var d=e.getColor(It.fE);d&&t.addRule(".monaco-editor .".concat("squiggly-hint"," { border-bottom: 2px dotted ",d,"; }"));var h=e.getColor(It.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(It.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(43668),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),D=n(33399),N=n(76556),M=n(34763),T=n(67297),I=n(80449),O=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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 D=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)},N=D(L),M=D(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,N,p,M)),S.appendChild(x),S.setAttribute("role","listitem"),l.appendChild(S);for(var T=t.get(55),I=p,O=0,A=u.length;O<A;O++){var R=u[O];n._renderSection(l,R,I,T,this._width,e,i,o,t,r,a),0!==R.modifiedLineStart&&(I=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 D=k+3-1,N=S+3-1;if(D>x){var M=x-D;D+=M,N+=M}if(N>L){var T=L-N;D+=T,N+=T}h[f++]=new B(k,D,S,N),i[r++]=new z(h)}for(var I=i[0].entries,O=[],A=0,R=1,P=i.length;R<P;R++){var Z=i[R].entries,F=I[I.length-1],j=Z[0];0===F.getType()&&0===j.getType()&&j.originalLineStart<=F.originalLineEnd?(I[I.length-1]=new B(F.originalLineStart,j.originalLineEnd,F.modifiedLineStart,j.modifiedLineEnd),I=I.concat(Z.slice(1))):(O[A++]=new z(I),I=Z)}return O[A++]=new z(I),O}},{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,D=0===y?0:y+L,N=document.createElement("div");N.style.minWidth=o+"px",N.className=p,N.setAttribute("role","listitem"),0!==D&&(i=D),N.setAttribute("data-line",String(i));var M=document.createElement("div");M.className="diff-review-cell",M.style.height="".concat(r,"px"),N.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 I=document.createElement("span");I.style.width=x+"px",I.style.minWidth=x+"px",I.style.paddingRight="10px",I.className="diff-review-line-number"+g,0!==D?I.appendChild(document.createTextNode(String(D))):I.innerText="\xa0",M.appendChild(I);var O=document.createElement("span");if(O.className="diff-review-spacer",v){var A=document.createElement("span");A.className=Z.kS.asClassName(v),A.innerText="\xa0\xa0",O.appendChild(A)}else O.innerText="\xa0\xa0";M.appendChild(O);var R=void 0;if(0!==D){var P=this._renderLine(c,l,d.tabSize,D);n._ttPolicy&&(P=n._ttPolicy.createHTML(P)),M.insertAdjacentHTML("beforeend",P),R=c.getLineContent(D)}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===D?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,D);break;case 1:j=h.N("insertLine","+ {0} modified line {1}",R,D);break;case 2:j=h.N("deleteLine","- {0} original line {1}",R,E)}N.setAttribute("aria-label",j),e.appendChild(N)}}},{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,O.tF)(new O.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)!==N.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(I.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}(D.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}(D.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,D.Qr)(K),(0,D.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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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,N.O7)(i.originalEditable,!1),w._diffCodeLens=(0,N.O7)(i.diffCodeLens,!1),w._diffWordWrap=Ie(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 De(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=D.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,N.O7)(e.originalEditable,this._originalIsEditable),this._diffCodeLens=(0,N.O7)(e.diffCodeLens,this._diffCodeLens),this._diffWordWrap=Ie(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 De(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=N.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 D=void 0;D=x?x.originalEndLineNumber>0?x.originalStartLineNumber-w:x.modifiedStartLineNumber-C:a.getLineCount()-w;for(var N=0;N<D;N++){var M=w+N,T=C+N,I=s.getModelLineViewLineCount(M),O=u.getModelLineViewLineCount(T);I<O?L.push({afterLineNumber:M,heightInLines:O-I,domNode:null,marginDomNode:null}):I>O&&E.push({afterLineNumber:T,heightInLines:I-O,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&&Oe(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"})},De=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 Ne(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}),Oe(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(Oe(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(Oe(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);De.MINIMUM_EDITOR_WIDTH=100;var Ne=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(Oe(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(Oe(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 D=S.length>0,N=(0,X.l$)(1e4),M=0,T=0,I=null,O=b.originalStartLineNumber;O<=b.originalEndLineNumber;O++){var R=O-b.originalStartLineNumber,P=this._originalModel.getLineTokens(O),Z=P.getLineContent(),F=v[m++],j=ie.Kp.filter(S,O,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),D,s,u,i,r,c,d,h,f,p,g,n,N,k)),B=W}}catch($){z.e($)}finally{z.f()}for(I||(I=[]);I.length<R;)I[I.length]=1;I[R]=F.breakOffsets.length,w.heightInLines+=F.breakOffsets.length-1;var U=document.createElement("div");U.className="line-delete",e.original.push({afterLineNumber:O,afterColumn:0,heightInLines:F.breakOffsets.length-1,domNode:Re(),marginDomNode:U})}else M=Math.max(M,this._renderOriginalLine(T++,Z,P,j,D,s,u,i,r,c,d,h,f,p,g,n,N,k))}M+=a;var K=N.build(),q=we?we.createHTML(K):K;if(C.innerHTML=q,w.minWidthInPx=M*o,I)for(var G=b.originalEndLineNumber-b.originalStartLineNumber;I.length<=G;)I[I.length]=1;w.diff.viewLineCounts=I}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,O.d1)(new O.IJ(s.isMonospace&&!u,s.canUseHalfwidthRightwardsArrow,t,!1,_,y,0,n,i,g,0,s.spaceWidth,s.middotWidth,s.wsmiddotWidth,d,h,f,p!==N.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 Ie(e,t){return(0,N.NY)(e,t,["off","on","inherit"])}function Oe(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(43668),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),D=o.LC(E);if((!this._opts.isUnshift||0!==E.length&&0!==D)&&((p||this._opts.isUnshift||0!==E.length)&&(-1===D&&(D=E.length),!this._opts.isUnshift||0!==D)))if(this._opts.isUnshift){D=Math.min(D,h);for(var N=0;N<D;N++){if(9===E.charCodeAt(N)){D=N+1;break}}this._addEditOperation(n,new s.e(L,1,L,D+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(43668),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),D=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 N,M,T=(0,o.Z)(f.Bc);try{for(T.s();!(N=T.n()).done;){var I=N.value,O=I.schema;if("undefined"!==typeof O)if("undefined"!==typeof(M=O).type||"undefined"!==typeof M.anyOf)D.properties["editor.".concat(I.name)]=O;else for(var A in O)b.call(O,A)&&(D.properties[A]=O[A])}}catch(j){T.e(j)}finally{T.f()}var R=null;function P(){return null===R&&(R=Object.create(null),Object.keys(D.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(D)},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 I},y0:function(){return d}});var i=n(37762),r=n(60136),o=n(43668),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),D=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 N=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),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,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);I.OFF='"liga" off, "calt" off',I.ON='"liga" on, "calt" on';var 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,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,D=1;if("fill"===g||"fit"===g){var N=n.computeContainedMinimapLineCount({viewLineCount:_,scrollBeyondLastLine:c,height:r,lineHeight:u,pixelRatio:o}),M=N.typicalViewportLineCount,T=N.extraLinesBeyondLastLine,I=N.desiredRatio;if(_/N.minimapLineCount>1)S=!0,x=!0,L=1,E=(f=1)/o;else{var O=!1,A=f+1;if("fit"===g){var R=Math.ceil((_+T)*L);b&&s&&y<=t.stableFitRemainingWidth?(O=!0,A=t.stableFitMaxMinimapScale):(O=R>C,b&&O?(t.stableMinimapLayoutInput=e,t.stableFitRemainingWidth=y):(t.stableMinimapLayoutInput=null,t.stableFitRemainingWidth=0))}if("fill"===g||O){S=!0;var P=f;L=Math.min(u*o,Math.max(1,Math.floor(1/I))),(f=Math.min(A,Math.max(1,Math.floor(L/w))))>P&&(D=Math.min(2,f/P)),E=f/o/D,C=Math.ceil(Math.max(M,_+T)*L),b&&O&&(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*D),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,D=x.arrowSize,N=x.horizontalScrollbarSize,M=e.get(54),T=e.get(35);if("string"===typeof M&&/^\d+(\.\d+)?ch$/.test(M)){var I=parseFloat(M.substr(0,M.length-2));i=b.clampedInt(I*u,0,0,1e3)}else i=b.clampedInt(M,0,0,1e3);T&&(i+=16);var O=0;if(w){var A=Math.max(s,C);O=Math.round(A*l)}var R=0;y&&(R=a);var P=0,Z=P+R,F=Z+O,j=F+i,H=r-R-O-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?D: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:O,decorationsLeft:F,decorationsWidth:i,contentLeft:j,contentWidth:Y,minimap:V,viewportColumn:U,isWordWrapMinified:B,isViewportWrapping:z,wrappingColumn:W,verticalScrollbarWidth:L,horizontalScrollbarHeight:N,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 D),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 O),fontLigatures2:oe(new I),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 N),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(43668),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(43668),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(43668),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(43668),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(43668),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(43668),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 D(e,t){e.metadata=253&e.metadata|(t?1:0)<<1}function N(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 I(e,t){e.metadata=247&e.metadata|(t?1:0)<<3}function O(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),O(this,1),I(this,!1),A(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=n,this.cachedAbsoluteEnd=i,this.range=null,D(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),O(this,this.options.stickiness),I(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))D(a.left,!1),D(a.right,!1),a===a.parent.right&&(s-=a.parent.delta),a=a.parent;else{if(!E(a.left)){if(s+a.maxEnd<t){D(a,!0);continue}if(a.left!==P){a=a.left;continue}}if((u=s+a.start)>n)D(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&&N(a)&&(h=!1),h&&(c[d++]=a)}D(a,!0),a.right===P||E(a.right)||(s+=a.delta,a=a.right)}}return D(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))D(r.left,!1),D(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&&N(r)&&(c=!1),c&&(u[l++]=r),D(r,!0),r.right===P||E(r.right)||(o+=r.delta,r=r.right)}else r=r.left;return D(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)?(D(n.left,!1),D(n.right,!1),n=n.parent):n.left===P||E(n.left)?(n.ownerId===t&&(i[r++]=n),D(n,!0),n.right===P||E(n.right)||(n=n.right)):n=n.left;return D(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)?(D(t.left,!1),D(t.right,!1),t=t.parent):t.left===P||E(t.left)?t.right===P||E(t.right)?(n[i++]=t,D(t,!0)):t=t.right:t=t.left;return D(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))D(i.left,!1),D(i.right,!1),i===i.parent.right&&(r-=i.parent.delta),i=i.parent;else{if(!E(i.left)){if(r+i.maxEnd<t){D(i,!0);continue}if(i.left!==P){i=i.left;continue}}(o=r+i.start)>n?D(i,!0):((a=r+i.end)>=t&&(i.setCachedOffsets(o,a,0),s[u++]=i),D(i,!0),i.right===P||E(i.right)||(r+=i.delta,i=i.right))}return D(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))D(r.left,!1),D(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){D(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),D(r,!0)):(D(r,!0),r.right===P||E(r.right)||(o+=r.delta,r=r.right))}D(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),D(t,!0),D(t.left,!1),D(t.right,!1),t===t.parent.right&&(n-=t.parent.delta),t=t.parent):(n+=t.delta,t=t.right):t=t.left;D(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(),D=l[x+1].range.getStartPosition();if(D.isBeforeOrEqual(E)){if(D.isBefore(E))throw new Error("Overlapping ranges are not allowed!");S=!0}}u&&(l=this._reduceOperations(l));var N=r||t?n._getInverseEditRanges(l):[],M=[];if(t)for(var T=0;T<l.length;T++){var I=l[T],O=N[T];if(I.isAutoWhitespaceEdit&&I.range.isEmpty())for(var A=O.startLineNumber;A<=O.endLineNumber;A++){var R="";A===O.startLineNumber&&(R=this.getLineContent(I.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=N[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})),De=(0,c.Z)((function e(){(0,l.Z)(this,e),this.changeType=5})),Ne=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=Ne.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),Ie=n(34763),Oe=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(Oe.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:Oe.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)),Ie.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 Ne([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 Ne([new De],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,D=b-w,N=o-u-D+E+1,M=[],T=0;T<D;T++){var I=N+T;M[I-N]=this.getLineContent(I)}s.push(new Ee(E+1,m+b,M))}u+=C}this._increaseVersionId(),this._emitContentChangedEvent(new Ne(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 D=-1;if(b){var N=this._computeIndentLevel(x-1);N>=0?(h=x-1,f=N,D=Math.ceil(N/this._options.indentSize)):(v(x),D=this._getIndentLevelForWhitespaceLine(a,f,g))}if(0!==k){if(1===k){if(x<=r&&D>=0&&C+1===D){_=!1,m=x,y=x,w=D;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&&(D>=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 D},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 I},wo:function(){return R},rl:function(){return g},pM:function(){return H},id:function(){return N},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 O},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,D=new c.c,N=new c.c,M=new c.c,T=new c.c,I=new c.c,O=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?" ":" ",g--;break;case 60:f+="<";break;case 62:f+=">";break;case 38:f+="&";break;case 0:f+="�";break;case 65279:case 8232:case 8233:case 133:f+="\ufffd";break;case 13:f+="​";break;case 32:f+=a?" ":" ";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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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(43668),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),D=n(55585),N=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},I=function(e,t){return function(n,i){t(n,i,e)}};function O(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(O(e.uri),e),this._disposedModelsHeapSize+=e.heapSize}},{key:"_removeDisposedModel",value:function(e){var t=this._disposedModels.get(O(e));return t&&(this._disposedModelsHeapSize-=t.heapSize),this._disposedModels.delete(O(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(O(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 _=O(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[O(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=O(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=O(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===D.lg.file||t.scheme===D.lg.vscodeRemote||t.scheme===D.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([I(0,b.Ui),I(1,y.y),I(2,k.XE),I(3,S.VZ),I(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 N.$(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(I){d.e(I)}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,N.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,D=(0,o.Z)(S.changes);try{for(D.s();!(L=D.n()).done;){var T=L.value;E.applyEdit(T.range,T.text)}}catch(I){D.e(I)}finally{D.f()}}}catch(I){x.e(I)}finally{x.f()}}}catch(I){C.e(I)}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],D=i[w+4],N=t.getMetadata(E,D,n);2147483647!==N&&(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]=N,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 O},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 D},lK:function(){return I},m9:function(){return T},n0:function(){return f},tR:function(){return v},zk:function(){return w},zu:function(){return N},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.")),D=(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.")),N=(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),I=(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.")),O=(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,D=l.length;E<D;E++){L+=x;var N=l[E],M=N.endIndex,T=N.type,I=0!==_&&N.isWhitespace(),O=I&&!n&&("mtkw"===T||!r),A=w===M&&4===N.metadata;if(k=0,t.appendASCIIString('<span class="'),t.appendASCIIString(O?"mtkz":T),t.appendASCII(34),I){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(O&&(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("<");break;case 62:t.appendASCIIString(">");break;case 38:t.appendASCIIString("&");break;case 0:y?t.write1(9216):t.appendASCIIString("�");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>…</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,D=s;D<n;D++){var N=t.charCodeAt(D);L&&D>=L.endOffset&&(x++,L=h&&h[x]);var M=void 0;if(D<k||D>r)M=!0;else if(9===N)M=!0;else if(32===N)if(f)if(S)M=!0;else{var T=D+1<n?t.charCodeAt(D+1):0;M=32===T||9===T}else M=!0;else M=!1;if(M&&h&&(M=!!L&&L.startOffset<=D&&L.endOffset>D),M&&p&&(M=C||D>r),S){if(!M||!d&&E>=u){if(g)for(var I=(m>0?v[m-1].endIndex:s)+1;I<=D;I++)v[m++]=new l(I,"mtkw",1);else v[m++]=new l(D,"mtkw",1);E%=u}}else(D===b||M&&D>s)&&(v[m++]=new l(D,y,0),E%=u);for(9===N?E=u:a.K7(N)?E+=2:E++,S=M;D===b;)++_<w&&(y=i[_].type,b=i[_].endIndex)}var O=!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||(O=!0)}else O=!0;if(O)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 I},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),D=n(72611),N=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function I(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 O(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,D,N,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 D=a.sent,a.next=16,u.computeMoreMinimalEdits(c.uri,D);case 16:if((N=a.sent)&&S.push.apply(S,(0,r.Z)(N)),!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),I(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=O(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&&(I(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,D.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,N.p_)(p.o.isUri(r)),(0,N.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)})),D.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,N.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=O(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)})),D.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,N.p_)(p.o.isUri(r)),(0,N.p_)(m.L.isIPosition(o)),(0,N.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,D,N,M,T,I,O,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"}(D||(D={})),function(e){e[e.LTR=0]="LTR",e[e.RTL=1]="RTL"}(N||(N={})),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"}(I||(I={})),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"}(O||(O={})),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:N,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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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(43668),Ee=n(11752),De=n(61120),Ne=n(27997),Me=n(81626),Te=n(8729),Ie=n(30487),Oe=n(25941),Ae="$initialize",Re=!1;function Pe(e){Ie.$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=Oe.$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(Oe.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(Ie.li.MonacoEnvironment){if("function"===typeof Ie.li.MonacoEnvironment.getWorker)return Ie.li.MonacoEnvironment.getWorker(e,t);if("function"===typeof Ie.li.MonacoEnvironment.getWorkerUrl){var n=Ie.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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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:Oe.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(Oe.$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&&(Ie.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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},Lt=6e4,Et=3e5;function Dt(e,t){var n=e.getModel(t);return!!n&&!n.isTooLargeForSyncing()}var Nt=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 Dt(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,De.Z)(n.prototype),"dispose",this).call(this)}},{key:"canComputeDiff",value:function(e,t){return Dt(this._modelService,e)&&Dt(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(!Dt(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,Ne.Vs)(1e3).then((function(){return t}))])}return Promise.resolve(void 0)}},{key:"canNavigateValueSet",value:function(e){return Dt(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 Dt(this._modelService,e)}},{key:"computeWordRanges",value:function(e,t){return this._workerManager.withWorker().then((function(n){return n.computeWordRanges(e,t)}))}}]),n}(Me.JT);Nt=kt([St(0,yt.q),St(1,bt.V),St(2,Ct.VZ)],Nt);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}Dt(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,Dt(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 Ne.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,De.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),It=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 Ne.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,De.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),Ot=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 Ot(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 Ot(new _t(new At(e),null)),e._getOrCreateWorker().getProxyObject()}))}},{key:"_getOrCreateModelManager",value:function(e){return this._modelManager||(this._modelManager=this._register(new It(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,De.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?Oe.$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,D=l.substr(f),N=(0,X.Z)(L);try{for(N.s();!(E=N.n()).done;){var M=E.value;if((0===f||!M.matchOnlyAtLineStart)&&(b=D.match(M.regex))){w=b[0],C=M.action;break}}}catch(B){N.e(B)}finally{N.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 I=Kt(this._lexer,C.switchTo,w,b,y);if("@"===I[0]&&(I=I.substr(1)),!qt(this._lexer,I))throw Ut(this._lexer,"trying to switch to a state '"+I+"' that is undefined in rule: "+this._safeRuleName(k));h=h.switchTo(I)}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 O=Kt(this._lexer,C.next,w,b,y);if("@"===O[0]&&(O=O.substr(1)),!qt(this._lexer,O))throw Ut(this._lexer,"trying to set a next state '"+O+"' that is undefined in rule: "+this._safeRuleName(k));h=h.push(O)}}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 Ne._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&&Oe.Kn(e[r])&&Oe.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 Ne.zh,s._currentChordStatusMessage=null,s._currentSingleModifier=null,s._currentSingleModifierClearTimeout=new Ne._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,De.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 Dn=n(51519),Nn=(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),In=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),On=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}(In),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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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,Ie.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(Dn.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 Nn(h,a.command,a.commandArgs,s,t,null,!1)}}catch(f){d.e(f)}finally{d.f()}}else i[r++]=new Nn(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 On(e,Ie.OS)]}},{key:"resolveKeyboardEvent",value:function(e){var t=new z.QC(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,e.keyCode).toChord();return new On(t,Ie.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:Ie.IJ||Ie.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}(),Di=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},Ni=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=Di([Ni(1,li.i6),Ni(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},Ii=function(e,t){return function(n,i){t(n,i,e)}},Oi=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_"+ ++Oi,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,De.Z)(n.prototype),"_triggerCommand",this).call(this,e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else(0,Ee.Z)((0,De.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,De.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,De.Z)(n.prototype),"updateOptions",this).call(this,e)}},{key:"_attachModel",value:function(e){(0,Ee.Z)((0,De.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,De.Z)(n.prototype),"_postDetachModelCleanup",this).call(this,e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}}]),n}(Ri=Ti([Ii(2,di.TG),Ii(3,Q.$),Ii(4,ue.H),Ii(5,li.i6),Ii(6,hi.d),Ii(7,fi.XE),Ii(8,An.lT),Ii(9,pi.F)],Ri));Pi=Ti([Ii(3,di.TG),Ii(4,Q.$),Ii(5,ue.H),Ii(6,li.i6),Ii(7,hi.d),Ii(8,ci.u),Ii(9,si.Z),Ii(10,An.lT),Ii(11,vn.Ui),Ii(12,pi.F),Ii(13,yt.q),Ii(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,De.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,De.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,De.Z)(n.prototype),"getOriginalEditor",this).call(this)}},{key:"getModifiedEditor",value:function(){return(0,Ee.Z)((0,De.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([Ii(3,di.TG),Ii(4,li.i6),Ii(5,hi.d),Ii(6,ci.u),Ii(7,Ce.p),Ii(8,Q.$),Ii(9,si.Z),Ii(10,An.lT),Ii(11,vn.Ui),Ii(12,ci.i),Ii(13,vi.e),Ii(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),Dr=function(){function e(t,n){(0,F.Z)(this,e),this.semanticHighlighting=!1,this.themeData=n;var i=n.base;t.length>0?(Nr(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 Nr(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 Dr(e,t)}var Ir=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(!Nr(t.base)&&!Nr(e))throw new Error("Illegal theme base!");this._knownThemes.set(e,new Dr(e,t)),Nr(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),Or=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(Or.$.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)(Or.$.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,De.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,De.Z)(n.prototype),"setValue",this).call(this,e,t)}},{key:"removeValue",value:function(e){return(0,Ee.Z)((0,De.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||Ie.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,De.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=/(&)?(&)([^\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)(Ie.dz||Ie.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)}}}))),Ie.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,De.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 Ne.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,De.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,De.Z)(n.prototype),"blur",this).call(this),this.applyStyle()}},{key:"focus",value:function(){(0,Ee.Z)((0,De.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(/&&/g,"&")};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 Ne.pY((function(){a.mouseOver&&(a.cleanupExistingSubmenu(!1),a.createSubmenu(!1))}),250),a.hideScheduler=new Ne.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,De.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,De.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,De.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"),Do=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},No=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=Do([No(0,Eo)],Mo);var To=n(34782),Io=n(5647),Oo=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,Oo.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,Io.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 Ne.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:Or.$.empty():W.o.isUri(e)?null!==(r=null===(i=this._byResource.get(e))||void 0===i?void 0:i.values())&&void 0!==r?r:Or.$.empty():Or.$.map(Or.$.concat.apply(Or.$,(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(N){l.e(N)}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(N){_.e(N)}finally{_.f()}}}catch(N){g.e(N)}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 D=C.push(E);if(o>0&&D===o)return C}}}catch(N){L.e(N)}finally{L.f()}}}catch(N){k.e(N)}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 Ne.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 Ne.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,De.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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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),Da=new Ne.Ue((function(){var e=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});return{collator:e,collatorIsNumeric:e.resolvedOptions().numeric}}));function Na(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=Da.value.collator.compare(n,i);return Da.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),Ia=n(94995),Oa=n(12394),Aa={},Ra=new Oa.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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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,Ie.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:(Ie.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,Oe.f6)((0,lo.Gt)(e,(0,lo.Ho)(i.saneLabel))):void 0,o=n.matchOnDescription?(0,Oe.f6)((0,lo.Gt)(e,(0,lo.Ho)(i.saneDescription||""))):void 0,a=n.matchOnDetail?(0,Oe.f6)((0,lo.Gt)(e,(0,lo.Ho)(i.saneDetail||""))):void 0,s=n.matchOnMeta?(0,Oe.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 Na(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([Ia.H],Ua.prototype,"onDidChangeFocus",null),ja([Ia.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 Ne.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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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||" "===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 Ne._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,De.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,De.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,De.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,De.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 Ns(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 Ds,Ns=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}();Ns.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 Ir})),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 Nt(e.modelService.get(t),e.resourceConfigurationService.get(t),e.logService.get(t))}))}(Ds||(Ds={}));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=Ds.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(Ds.codeEditorService.get(Q.$),e)}));g(ps.eJ,(function(){return new Ls(u,Ds.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(Ds.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 Is(e,t,n){var i=new Ms(e,t),r=null;i.has(Se.S)||(r=new Bn(Ds.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 Os(e,t,n){return Is(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 Ds.codeEditorService.get().onCodeEditorAdd((function(t){e(t)}))}function Rs(e,t,n){return Is(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(Ds.modelService.get(),Ds.modeService.get(),e,t,n)}function Fs(e,t){Ds.modelService.get().setMode(e,Ds.modeService.get().create(t))}function js(e,t,n){e&&Ds.markerService.get().changeOne(t,e.uri,n)}function Hs(e){return Ds.markerService.get().read(e)}function Bs(e){return Ds.markerService.get().onMarkerChanged(e)}function zs(e){return Ds.modelService.get().getModel(e)}function Ws(){return Ds.modelService.get().getModels()}function Vs(e){return Ds.modelService.get().onModelAdded(e)}function Ys(e){return Ds.modelService.get().onModelRemoved(e)}function Us(e){return Ds.modelService.get().onModelModeChanged((function(t){e({model:t.model,oldLanguage:t.oldModeId})}))}function Ks(e){return function(e,t){return new Pt(e,t)}(Ds.modelService.get(),e)}function qs(e,t){var n=Ds.standaloneThemeService.get();return n.registerEditorContainer(e),sn.colorizeElement(n,Ds.modeService.get(),e,t)}function Gs(e,t,n){return Ds.standaloneThemeService.get().registerEditorContainer(document.body),sn.colorize(Ds.modeService.get(),e,t,n)}function $s(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4;return Ds.standaloneThemeService.get().registerEditorContainer(document.body),sn.colorizeModelLine(e,t,n)}function Qs(e,t){Ds.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){Ds.standaloneThemeService.get().defineTheme(e,t)}function Js(e){Ds.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=Ds.modeService.get().getLanguageIdentifier(e);return t?t.id:0}function hu(e,t){var n=Ds.modeService.get().onDidCreateMode((function(i){i.getId()===e&&(n.dispose(),t())}));return n}function fu(e,t){var n=Ds.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]);Ds.standaloneThemeService.get().setColorMapOverride(t)}else Ds.standaloneThemeService.get().setColorMapOverride(null)}function _u(e,t){var n=Ds.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(Ds.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)}(Ds.modeService.get(),Ds.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 Du(e,t){return be.vI.register(e,t)}function Nu(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=Ds.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 Iu(e,t){return be.Az.register(e,t)}function Ou(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:Os,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:D,ScrollType:E,TextEditorCursorBlinkingStyle:O,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:Du,registerTypeDefinitionProvider:Nu,registerCodeLensProvider:Mu,registerCodeActionProvider:Tu,registerDocumentFormattingEditProvider:Iu,registerDocumentRangeFormattingEditProvider:Ou,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:I,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=Ie.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(43668),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 O}});var i=n(60136),r=n(43668),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 N.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 I.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 I.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 N.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 D.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 D.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}(),D=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}(),N=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 I.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=I.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}(),I=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}(),O=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);O._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")},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 gt}});var i=n(4942),r=n(29439),o=n(97326),a=n(11752),s=n(61120),u=n(60136),l=n(43668),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),D=n(38774),N=n(35215),M=n(70182),T=n(49357),I=n(98900),O=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(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 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]:I.$.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=I.$.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)},g=Math.min(u.children.length,c+n),v=l.length,m=(0,O.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,I.$.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]:I.$.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=I.$.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,O.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)),D=0,N=(0,O.Z)(E);try{for(N.s();!(L=N.n()).done;){L.value.visible&&D++}}catch(Z){N.e(Z)}finally{N.f()}if(0!==D)for(var M=g+w.length;M<l.children.length;M++){var T=l.children[M];T.visible&&(T.visibleChildIndex-=D)}if(l.visibleChildrenCount+=C-D,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&&!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,O.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||I.$.empty(),d=i&&0!==u&&!s.collapsed,h=I.$.map(c,(function(e){return a.createTreeNode(e,s,u,d,r,o)})),f=0,p=1,g=(0,O.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,O.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,O.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(),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(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=v.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),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,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,O.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 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"+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=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&&($.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&&($.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 ge(e,t){t(e),e.children.forEach((function(e){return ge(e,t)}))}var ve=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 ge(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 ge(e,s)}));var u=new Map,l=function(e){return u.set(t.identityProvider.getId(e.element).toString(),e)};n.forEach((function(e){return ge(e,l)}));var c,d=[],h=(0,O.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,O.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,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),_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}(g.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 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 le(i),u=new v.ZD,l=new v.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,O.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 ve(a.identityProvider),this.selection=new ve(a.identityProvider),this.anchor=new ve(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=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,O.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,O.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 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 v.ju.map(this.view.onMouseDblClick,pe)}},{key:"onPointer",get:function(){return v.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,O.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]:I.$.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]:I.$.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]:I.$.empty();return this.sorter&&(t=(0,A.Z)(t).sort(this.sorter.compare.bind(this.sorter))),I.$.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:I.$.map(I.$.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=I.$.consume(I.$.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:I.$.map(I.$.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)]:I.$.map(I.$.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:I.$.map(I.$.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]:I.$.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=I.$.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=I.$.map(t,Se),i=I.$.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,O.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,O.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}(),De=function(e){return e[e.length-1]},Ne=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||De;var o=function(e){return i.elementMapper(e.elements)};this.nodeMapper=new F((function(e){return new Ne(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 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]:I.$.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),Ie=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){(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]:I.$.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}();Ie([Te.H],Ae.prototype,"compressedTreeNodeProvider",null);var Re=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]:I.$.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}(Oe),Pe=n(87757),Ze=n.n(Pe),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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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 v.Q5,this._onDidChangeNodeSlowState=new v.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 v.ju.map(this.tree.onDidChangeFocus,Ye)}},{key:"onDidChangeSelection",get:function(){return v.ju.map(this.tree.onDidChangeSelection,Ye)}},{key:"onMouseDblClick",get:function(){return v.ju.map(this.tree.onMouseDblClick,Ue)}},{key:"onPointer",get:function(){return v.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 Oe(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,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 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,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 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(I.$.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,O.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=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})),v=(0,O.Z)(u.values());try{for(v.s();!(f=v.n()).done;){Qe(f.value,(function(e){return o.nodes.delete(e.element)}))}}catch(b){v.e(b)}finally{v.f()}var m,_=(0,O.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?I.$.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 Re(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,O.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,O.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=I.$.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,O.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,O.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 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}(),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 g.aV(t,this.domNode,(f=i,{getHeight:function(e){return f.getHeight(e)},getTemplateId:function(){return ot.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}();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 g.wD((0,h.createStyleSheet)(),"");this.disposables.add((0,N.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),gt=x.Ao.and(ft,x.Ao.not(T.d)),vt=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",Dt="workbench.list.keyboardNavigation",Nt="workbench.list.automaticKeyboardNavigation",Mt="workbench.tree.indent",Tt="workbench.tree.renderIndentGuides",It="workbench.list.smoothScrolling",Ot="workbench.tree.expandMode";function At(e){return"alt"===e.getValue(xt)}var Rt=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,g.Zo)(e)}},{key:"isSelectionRangeChangeEvent",value:function(e){return(0,g.wn)(e)}}]),n}(f.JT);function Pt(e,t,n){var i=new f.SL,r=Object.assign({},e);if(!1!==e.multipleSelectionSupport&&!e.multipleSelectionController){var o=new Rt(t);r.multipleSelectionController=o,i.add(o)}return r.keyboardNavigationDelegate={mightProducePrintableCharacter:function(e){return n.mightProducePrintableCharacter(e)}},r.smoothScrolling=t.getValue(It),[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 g;(0,c.Z)(this,n);var v="undefined"!==typeof u.horizontalScrolling?u.horizontalScrolling:f.getValue(Et),m=Pt(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,N.o)(h.getColorTheme(),N.O2)),y),{horizontalScrolling:v}))).disposables.add(b),g.contextKeyService=St(l,(0,o.Z)(g)),g.themeService=h,pt.bindTo(g.contextKeyService).set(!(!1===u.multipleSelectionSupport)),yt.bindTo(g.contextKeyService).set(Boolean(u.selectionNavigation)),g.listHasSelectionOrFocus=vt.bindTo(g.contextKeyService),g.listDoubleSelection=mt.bindTo(g.contextKeyService),g.listMultiSelection=_t.bindTo(g.contextKeyService),g.horizontalScrolling=u.horizontalScrolling,g._useAltAsMultipleSelectionModifier=At(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(xt)&&(g._useAltAsMultipleSelectionModifier=At(f));var t={};if(e.affectsConfiguration(Et)&&void 0===g.horizontalScrolling){var n=f.getValue(Et);t=Object.assign(Object.assign({},t),{horizontalScrolling:n})}if(e.affectsConfiguration(It)){var i=f.getValue(It);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: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,N.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);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,g){var v;(0,c.Z)(this,n);var m="undefined"!==typeof u.horizontalScrolling?u.horizontalScrolling:p.getValue(Et),_=Pt(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,N.o)(h.getColorTheme(),N.O2)),b),{horizontalScrolling:m}))).disposables=new f.SL,v.disposables.add(w),v.contextKeyService=St(l,(0,o.Z)(v)),v.themeService=h,v.horizontalScrolling=u.horizontalScrolling,pt.bindTo(v.contextKeyService).set(!(!1===u.multipleSelectionSupport)),yt.bindTo(v.contextKeyService).set(Boolean(u.selectionNavigation)),v._useAltAsMultipleSelectionModifier=At(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,N.Jl)((0,o.Z)(v),h,u.overrideStyles)),v.disposables.add(p.onDidChangeConfiguration((function(e){e.affectsConfiguration(xt)&&(v._useAltAsMultipleSelectionModifier=At(p));var t={};if(e.affectsConfiguration(Et)&&void 0===v.horizontalScrolling){var n=p.getValue(Et);t=Object.assign(Object.assign({},t),{horizontalScrolling:n})}if(e.affectsConfiguration(It)){var i=p.getValue(It);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: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,N.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,g,v){var m;(0,c.Z)(this,n);var _="undefined"!==typeof l.horizontalScrolling?l.horizontalScrolling:g.getValue(Et),y=Pt(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,N.o)(p.getColorTheme(),N.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=vt.bindTo(m.contextKeyService),m.listDoubleSelection=mt.bindTo(m.contextKeyService),m.listMultiSelection=_t.bindTo(m.contextKeyService),m.horizontalScrolling=l.horizontalScrolling,m._useAltAsMultipleSelectionModifier=At(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(xt)&&(m._useAltAsMultipleSelectionModifier=At(g));var t={};if(e.affectsConfiguration(Et)&&void 0===m.horizontalScrolling){var n=g.getValue(Et);t=Object.assign(Object.assign({},t),{horizontalScrolling:n})}if(e.affectsConfiguration(It)){var i=g.getValue(It);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: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,N.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 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(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 g;(0,c.Z)(this,n);var v=$t(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 Qt((0,o.Z)(g),s,_,s.overrideStyles,u,l,d,h,p),g.disposables.add(g.internals),g}return(0,d.Z)(n)}(Oe);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 g;(0,c.Z)(this,n);var v=$t(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 Qt((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}(Re);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,g){var v;(0,c.Z)(this,n);var m=$t(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 Qt((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}(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,g){var v;(0,c.Z)(this,n);var m=$t(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 Qt((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}(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,g,v){var m;(0,c.Z)(this,n);var _=$t(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 Qt((0,o.Z)(m),l,b,l.overrideStyles,d,h,f,p,v),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(Nt)),e},l=a.isScreenReaderOptimized(),c=t.simpleKeyboardNavigation||l?"simple":i.getValue(Dt),d=void 0!==t.horizontalScrolling?t.horizontalScrolling:i.getValue(Et),h=Pt(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(Mt),renderIndentGuides:i.getValue(Tt),smoothScrolling:i.getValue(It),automaticKeyboardNavigation:u(),simpleKeyboardNavigation:"simple"===c,filterOnType:"filter"===c,horizontalScrolling:d,keyboardNavigationEventFilter:Vt(e,o),additionalScrollHeight:v,hideTwistiesOfChildlessElements:t.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:null!==(s=t.expandOnlyOnTwistieClick)&&void 0!==s?s:"doubleClick"===i.getValue(Ot)})}}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=vt.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(Dt);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(It)){var s=u.getValue(It);r=Object.assign(Object.assign({},r),{smoothScrolling:s})}if(e.affectsConfiguration(Dt)&&f(),e.affectsConfiguration(Nt)&&(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(Ot)&&void 0===n.expandOnlyOnTwistieClick&&(r=Object.assign(Object.assign({},r),{expandOnlyOnTwistieClick:"doubleClick"===u.getValue(Ot)})),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,N.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),D.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,It,{type:"boolean",default:!1,description:(0,C.N)("list smoothScrolling setting","Controls whether lists and trees have smooth scrolling.")}),(0,i.Z)(at,Dt,{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,Nt,{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,Ot,{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 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(43668),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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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(43668),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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).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 I},ES:function(){return xe},Ei:function(){return Ie},F3:function(){return at},Fm:function(){return Nt},Fu:function(){return ze},GO:function(){return W},Gj:function(){return Ot},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 Ne},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 N},R8:function(){return _},RV:function(){return O},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 Dt},Un:function(){return pt},Vq:function(){return mt},XE:function(){return D},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 Oe},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 De},oQ:function(){return ye},oS:function(){return ht},op:function(){return _e},ov:function(){return It},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.")),D=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.")),N=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.")),I=p("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hc:y},u.N("inputValidationInfoBorder","Input validation border color for information severity.")),O=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.")),De=p("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hc:null},u.N("editorFindMatch","Color of the current search match.")),Ne=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.")),Ie=p("editor.findMatchHighlightBorder",{light:null,dark:null,hc:b},u.N("findMatchHighlightBorder","Border color of the other search matches.")),Oe=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.")),Dt=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.")),Nt=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),It=p("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hc:"#ffffff"},u.N("minimapSelectionHighlight","Minimap marker color for the editor selection."),!0),Ot=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(43668),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,D=Object.getOwnPropertySymbols,N="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,I=Object.prototype.propertyIsEnumerable,O=("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,""")}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||!N)return!1;try{return N.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 D=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"):N.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 D&&!function(e){for(var t=0;t<e.length;t++)if(V(e[t],"\n")>=0)return!1;return!0}(ne)?"["+$(ne,D)+"]":"[ "+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&&!I.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,D)}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,D)}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=O?O(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+"{}":D?ce+"{"+$(ae,D)+"}":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 D?D(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 D)for(var l=0;l<a.length;l++)I.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,D=!1;void 0!==(L=L.get(g))&&!D;){var N=L.get(t);if(E+=1,"undefined"!==typeof N){if(N===E)throw new RangeError("Cyclic object value");D=!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),","),I="",O=0;O<T.length;++O)I+=(0===O?"":",")+b(h(T[O],p.encoder,C,"value",y));return[b(M)+(a&&u(x)&&1===T.length?"[]":"")+"="+I]}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,D=60110,N=60112,M=60113,T=60120,I=60115,O=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"),D=j("react.context"),N=j("react.forward_ref"),M=j("react.suspense"),T=j("react.suspense_list"),I=j("react.memo"),O=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 D:return(e.displayName||"Context")+".Consumer";case E:return(e._context.displayName||"Context")+".Provider";case N:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case I:return K(e.type);case A:return K(e._render);case O: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,De=null;function Ne(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?De?De.push(e):De=[e]:Ee=e}function Te(){if(Ee){var e=Ee,t=De;if(De=Ee=null,Ne(e),t)for(e=0;e<t.length;e++)Ne(t[e])}}function Ie(e,t){return e(t)}function Oe(e,t,n,i,r){return e(t,n,i,r)}function Ae(){}var Re=Ie,Pe=!1,Ze=!1;function Fe(){null===Ee&&null===De||(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"),Dt=Lt("animationiteration"),Nt=Lt("animationstart"),Mt=Lt("transitionend"),Tt=new Map,It=new Map,Ot=["abort","abort",Et,"animationEnd",Dt,"animationIteration",Nt,"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)),It.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{Oe(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 Dn=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}}),Nn=sn(Dn),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})),In=sn(r({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),On=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(On),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){Di(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{Ie(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(Ot,2);for(var ki="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),Si=0;Si<ki.length;Si++)It.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 Di(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 Ni(e,t){var n=or(t),i=e+"__bubble";n.has(i)||(Oi(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)||Ii(t,!1,e,null),Ii(t,!0,e,null)})))}function Ii(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),Oi(o,e,r,t),a.add(s))}function Oi(e,t,n,i){var r=It.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=Nn;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 Dt:case Nt:u=yn;break;case Mt:u=In;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=_))}Di(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,Dr=o.unstable_requestPaint,Nr=o.unstable_now,Mr=o.unstable_getCurrentPriorityLevel,Tr=o.unstable_ImmediatePriority,Ir=o.unstable_UserBlockingPriority,Or=o.unstable_NormalPriority,Ar=o.unstable_LowPriority,Rr=o.unstable_IdlePriority,Pr={},Zr=void 0!==Dr?Dr:function(){},Fr=null,jr=null,Hr=!1,Br=Nr(),zr=1e4>Br?Nr:function(){return Nr()-Br};function Wr(){switch(Mr()){case Tr:return 99;case Ir:return 98;case Or: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 Ir;case 97:return Or;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),Do={},No=ur(Do),Mo=ur(Do),To=ur(Do);function Io(e){if(e===Do)throw Error(a(174));return e}function Oo(e,t){switch(cr(To,t),cr(Mo,e),cr(No,Do),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(No),cr(No,t)}function Ao(){lr(No),lr(Mo),lr(To)}function Ro(e){Io(To.current);var t=Io(No.current),n=fe(t,e.type);t!==n&&(cr(Mo,e),cr(No,n))}function Po(e){Mo.current===e&&(lr(No),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?Ia:Oa,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=Os;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 Da(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 Na(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},Ia={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=Na.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},Oa={readContext:oo,useCallback:Ea,useContext:oo,useEffect:Ca,useImperativeHandle:xa,useLayoutEffect:ka,useMemo:Da,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:Da,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),Oo(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=Io(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=Io(No.current),Uo(t)){i=t.stateNode,n=t.type;var s=t.memoizedProps;switch(i[Qi]=t,i[Xi]=s,n){case"dialog":Ni("cancel",i),Ni("close",i);break;case"iframe":case"object":case"embed":Ni("load",i);break;case"video":case"audio":for(e=0;e<xi.length;e++)Ni(xi[e],i);break;case"source":Ni("error",i);break;case"img":case"image":case"link":Ni("error",i),Ni("load",i);break;case"details":Ni("toggle",i);break;case"input":ee(i,s),Ni("invalid",i);break;case"select":i._wrapperState={wasMultiple:!!s.multiple},Ni("invalid",i);break;case"textarea":ue(i,s),Ni("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&&Ni("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":Ni("cancel",e),Ni("close",e),o=i;break;case"iframe":case"object":case"embed":Ni("load",e),o=i;break;case"video":case"audio":for(o=0;o<xi.length;o++)Ni(xi[o],e);o=i;break;case"source":Ni("error",e),o=i;break;case"img":case"image":case"link":Ni("error",e),Ni("load",e),o=i;break;case"details":Ni("toggle",e),o=i;break;case"input":ee(e,i),o=J(e,i),Ni("invalid",e);break;case"option":o=oe(e,i);break;case"select":e._wrapperState={wasMultiple:!!i.multiple},o=r({},i,{value:void 0}),Ni("invalid",e);break;case"textarea":ue(e,i),o=se(e,i),Ni("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&&Ni("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=Io(To.current),Io(No.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===Os||0===(134217727&Bs)&&0===(134217727&zs)||_u(Os,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,Io(No.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&&Ni("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 Ds(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ns=Math.ceil,Ms=w.ReactCurrentDispatcher,Ts=w.ReactCurrentOwner,Is=0,Os=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&Is)?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&Is)&&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===Os&&(zs|=t,4===Fs&&_u(e,Rs));var i=Wr();1===t?0!==(8&Is)&&0===(48&Is)?yu(e):(vu(e,n),0===Is&&(Ks(),Kr())):(0===(4&Is)||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===Os?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&Is))throw Error(a(327));var t=e.callbackNode;if(Ru()&&e.callbackNode!==t)return null;var n=Zt(e,e===Os?Rs:0);if(0===n)return null;var i=n,r=Is;Is|=16;var o=Lu();for(Os===e&&Rs===i||(Ks(),Su(e,i));;)try{Nu();break}catch(u){xu(e,u)}if(to(),Ms.current=o,Is=r,null!==As?i=0:(Os=null,Rs=0,i=Fs),0!==(Hs&zs))Su(e,0);else if(0!==i){if(2===i&&(Is|=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:Iu(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(Iu.bind(null,e),i);break}Iu(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*Ns(n/1960))-n)){e.timeoutHandle=Vi(Iu.bind(null,e),n);break}Iu(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&Is))throw Error(a(327));if(Ru(),e===Os&&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&&(Is|=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,Iu(e),vu(e,zr()),null}function bu(e,t){var n=Is;Is|=1;try{return e(t)}finally{0===(Is=n)&&(Ks(),Kr())}}function wu(e,t){var n=Is;Is&=-2,Is|=8;try{return e(t)}finally{0===(Is=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}Os=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=Is;Is|=16;var i=Lu();for(Os===e&&Rs===t||Su(e,t);;)try{Du();break}catch(r){xu(e,r)}if(to(),Is=n,Ms.current=i,null!==As)throw Error(a(261));return Os=null,Rs=0,Fs}function Du(){for(;null!==As;)Mu(As)}function Nu(){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 Iu(e){var t=Wr();return Yr(99,Ou.bind(null,e,t)),null}function Ou(e,t){do{Ru()}while(null!==eu);if(0!==(48&Is))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===Os&&(As=Os=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=Is,Is|=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(),Is=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&Is)||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&&Ds(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&Is))throw Error(a(331));var t=Is;Is|=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 Is=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,Os===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 D:s=9;break e;case N:s=11;break e;case I:s=14;break e;case O: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:Oo(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)===N)return 11;if(e===I)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 Oo(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)}},Ie=bu,Oe=function(e,t,n,i,r){var o=Is;Is|=4;try{return Yr(98,e.bind(null,t,n,i,r))}finally{0===(Is=o)&&(Ks(),Kr())}},Ae=function(){0===(49&Is)&&(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=Is;Is|=2;try{return e(t)}finally{0===(Is=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=Is;if(0!==(48&n))return e(t);Is|=1;try{if(e)return Yr(99,e.bind(null,t))}finally{Is=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,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},D=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:D,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)},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 D(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 N(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 I={ReactCurrentDispatcher:M,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:b,IsSomeRendererActing:{current:!1},assign:i};t.Children={map:D,forEach:function(e,t,n){D(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return D(e,(function(){t++})),t},toArray:function(e){return D(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=I,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:N}},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,r=n.toString(),o=e[n].toString();return"undefined"===typeof(i=o)||null===i||Array.isArray(o)&&!o.length?t:[].concat(s(t),[l(r)+"="+l(o)])}),[]);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 D(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(N([])));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 D(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(L,this),this.reset(!0)}function N(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=N,D.prototype={constructor:D,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:N(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)}},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=[],D=1,N=null,M=3,T=!1,I=!1,O=!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(O=!1,A(e),!I)if(null!==k(L))I=!0,n(P);else{var t=k(E);null!==t&&i(R,t.startTime-e)}}function P(e,n){I=!1,O&&(O=!1,r()),T=!0;var o=M;try{for(A(n),N=k(L);null!==N&&(!(N.expirationTime>n)||e&&!t.unstable_shouldYield());){var a=N.callback;if("function"===typeof a){N.callback=null,M=N.priorityLevel;var s=a(N.expirationTime<=n);n=t.unstable_now(),"function"===typeof s?N.callback=s:N===k(L)&&S(L),A(n)}else S(L);N=k(L)}if(null!==N)var u=!0;else{var l=k(E);null!==l&&i(R,l.startTime-n),u=!1}return u}finally{N=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(){I||T||(I=!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:D++,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)&&(O?r():O=!0,i(R,a-s))):(e.sortIndex=u,C(L,e),I||T||(I=!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 D(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function N(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=N(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(D(m+x%S,0))),h=w(x/S);E.push(C(D(h,0))),o=N(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!==(D=y.indexOf(h[E]))&&(-1===L||D<L)&&(L=D)}-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 D;-1!==(D=y.indexOf(d[E]))&&(-1===L||D<L)&&(L=D)}-1===L&&(L=y.length),this.host=y.slice(0,L),y=y.slice(L),this.parseHost(),this.hostname=this.hostname||"";var N="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!N)for(var M=this.hostname.split(/\./),T=(E=0,M.length);E<T;E++){var I=M[E];if(I&&!I.match(f)){for(var O="",A=0,R=I.length;A<R;A++)I.charCodeAt(A)>127?O+="x":O+=I[A];if(!O.match(f)){var P=M.slice(0,E),Z=M.slice(E+1),F=I.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(),N||(this.hostname=i.toASCII(this.hostname));var j=this.port?":"+this.port:"",H=this.hostname||"";this.host=H+j,this.href+=this.host,N&&(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(),(N=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=N.shift(),n.host=n.hostname=N.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,D=k.length;D>=0;D--)"."===(x=k[D])?k.splice(D,1):".."===x?(k.splice(D,1),E++):E&&(k.splice(D,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 N,M=""===k[0]||k[0]&&"/"===k[0].charAt(0);S&&(n.hostname=n.host=M?"":k.length?k.shift():"",(N=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=N.shift(),n.host=n.hostname=N.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}}},89804:function(e,t,n){"use strict";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.Z=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"},D={x:"scrollWidth",y:"scrollHeight"},N={x:"scrollLeft",y:"scrollTop"},M={x:"width",y:"height"},T=function(){},I=!!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},O="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(O);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,I),this.scrollParent.removeEventListener("mousewheel",T,I)}},{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=N[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[N[n]]=e}},{key:"getScrollSize",value:function(){var e=this.scrollParent,t=document,n=t.body,i=t.documentElement,r=D[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,I),this.scrollParent.addEventListener("mousewheel",T,I))}},{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(){},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}}}}},43668:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var i=n(61120),r=n(78814);function o(e){return o="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},o(e)}var a=n(97326);function s(e){var t=(0,r.Z)();return function(){var n,r=(0,i.Z)(e);if(t){var s=(0,i.Z)(this).constructor;n=Reflect.construct(r,arguments,s)}else n=r.apply(this,arguments);return function(e,t){if(t&&("object"===o(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,a.Z)(e)}(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}})},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)}},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}})},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)}},59833: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;"function"===typeof SuppressedError&&SuppressedError}},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",1593:"571b4393",1602:"86ed3169",1876:"2f512037",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",3848:"be131fc6",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",8546:"79cce20d",8558:"47b3557b",8590:"b8446f1d",8794:"5ad5fb7d",9005:"053ddf1a",9011:"f3cf1dfe",9163:"de992e19",9292:"3ccb6509",9803:"e1567af5"}[e]+".chunk.js"},n.miniCssF=function(e){return"static/css/"+e+".65946fb2.chunk.css"},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(){if("undefined"!==typeof document){var e=function(e){return new Promise((function(t,i){var r=n.miniCssF(e),o=n.p+r;if(function(e,t){for(var n=document.getElementsByTagName("link"),i=0;i<n.length;i++){var r=(a=n[i]).getAttribute("data-href")||a.getAttribute("href");if("stylesheet"===a.rel&&(r===e||r===t))return a}var o=document.getElementsByTagName("style");for(i=0;i<o.length;i++){var a;if((r=(a=o[i]).getAttribute("data-href"))===e||r===t)return a}}(r,o))return t();!function(e,t,n,i,r){var o=document.createElement("link");o.rel="stylesheet",o.type="text/css",o.onerror=o.onload=function(n){if(o.onerror=o.onload=null,"load"===n.type)i();else{var a=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.href||t,u=new Error("Loading CSS chunk "+e+" failed.\n("+s+")");u.code="CSS_CHUNK_LOAD_FAILED",u.type=a,u.request=s,o.parentNode.removeChild(o),r(u)}},o.href=t,n?n.parentNode.insertBefore(o,n.nextSibling):document.head.appendChild(o)}(e,o,null,t,i)}))},t={179:0};n.f.miniCss=function(n,i){t[n]?i.push(t[n]):0!==t[n]&&{8546:1}[n]&&i.push(t[n]=e(n).then((function(){t[n]=0}),(function(e){throw delete t[n],e})))}}}(),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=e.createContext(null);var r=function(e){e()},o=function(){return r};var a={notify:function(){},get:function(){return[]}};function s(e,t){var n,i=a;function r(){u.onStateChange&&u.onStateChange()}function s(){n||(n=t?t.addNestedSub(r):e.subscribe(r),i=function(){var e=o(),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 u={addNestedSub:function(e){return s(),i.subscribe(e)},notifyNestedSubs:function(){i.notify()},handleChangeWrapper:r,isSubscribed:function(){return Boolean(n)},trySubscribe:s,tryUnsubscribe:function(){n&&(n(),n=void 0,i.clear(),i=a)},getListeners:function(){return i}};return u}var u="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement?e.useLayoutEffect:e.useEffect;var l=function(t){var n=t.store,r=t.context,o=t.children,a=(0,e.useMemo)((function(){var e=s(n);return e.onStateChange=e.notifyNestedSubs,{store:n,subscription:e}}),[n]),l=(0,e.useMemo)((function(){return n.getState()}),[n]);u((function(){var e=a.subscription;return e.trySubscribe(),l!==n.getState()&&e.notifyNestedSubs(),function(){e.tryUnsubscribe(),e.onStateChange=null}}),[a,l]);var c=r||i;return e.createElement(c.Provider,{value:a},o)};function c(){return c=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},c.apply(this,arguments)}function d(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}var h=n(63993),f=n.n(h),p=n(78003),g=["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"],v=["reactReduxForwardedRef"],m=[],_=[null,null];function y(e,t){var n=e[1];return[t.payload,n+1]}function b(e,t,n){u((function(){return e.apply(void 0,t)}),n)}function w(e,t,n,i,r,o,a){e.current=i,t.current=r,n.current=!1,o.current&&(o.current=null,a())}function C(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 k=function(){return[null,0]};function S(t,n){void 0===n&&(n={});var r=n,o=r.getDisplayName,a=void 0===o?function(e){return"ConnectAdvanced("+e+")"}:o,u=r.methodName,l=void 0===u?"connectAdvanced":u,h=r.renderCountProp,S=void 0===h?void 0:h,x=r.shouldHandleStateChanges,L=void 0===x||x,E=r.storeKey,D=void 0===E?"store":E,N=(r.withRef,r.forwardRef),M=void 0!==N&&N,T=r.context,I=void 0===T?i:T,O=d(r,g),A=I;return function(n){var i=n.displayName||n.name||"Component",r=a(i),o=c({},O,{getDisplayName:a,methodName:l,renderCountProp:S,shouldHandleStateChanges:L,storeKey:D,displayName:r,wrappedComponentName:i,WrappedComponent:n}),u=O.pure;var h=u?e.useMemo:function(e){return e()};function g(i){var r=(0,e.useMemo)((function(){var e=i.reactReduxForwardedRef,t=d(i,v);return[i.context,e,t]}),[i]),a=r[0],u=r[1],l=r[2],f=(0,e.useMemo)((function(){return a&&a.Consumer&&(0,p.isContextConsumer)(e.createElement(a.Consumer,null))?a:A}),[a,A]),g=(0,e.useContext)(f),S=Boolean(i.store)&&Boolean(i.store.getState)&&Boolean(i.store.dispatch);Boolean(g)&&Boolean(g.store);var x=S?i.store:g.store,E=(0,e.useMemo)((function(){return function(e){return t(e.dispatch,o)}(x)}),[x]),D=(0,e.useMemo)((function(){if(!L)return _;var e=s(x,S?null:g.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]}),[x,S,g]),N=D[0],M=D[1],T=(0,e.useMemo)((function(){return S?g:c({},g,{subscription:N})}),[S,g,N]),I=(0,e.useReducer)(y,m,k),O=I[0][0],R=I[1];if(O&&O.error)throw O.error;var P=(0,e.useRef)(),Z=(0,e.useRef)(l),F=(0,e.useRef)(),j=(0,e.useRef)(!1),H=h((function(){return F.current&&l===Z.current?F.current:E(x.getState(),l)}),[x,O,l]);b(w,[Z,P,j,l,H,F,M]),b(C,[L,x,N,E,Z,P,j,F,M,R],[x,N,E]);var B=(0,e.useMemo)((function(){return e.createElement(n,c({},H,{ref:u}))}),[u,n,H]);return(0,e.useMemo)((function(){return L?e.createElement(f.Provider,{value:T},B):B}),[f,B,T])}var x=u?e.memo(g):g;if(x.WrappedComponent=n,x.displayName=g.displayName=r,M){var E=e.forwardRef((function(t,n){return e.createElement(x,c({},t,{reactReduxForwardedRef:n}))}));return E.displayName=r,E.WrappedComponent=n,f()(E,n)}return f()(x,n)}}function x(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function L(e,t){if(x(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])||!x(e[n[r]],t[n[r]]))return!1;return!0}function E(e){return function(t,n){var i=e(t,n);function r(){return i}return r.dependsOnOwnProps=!1,r}}function D(e){return null!==e.dependsOnOwnProps&&void 0!==e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function N(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=D(e);var r=i(t,n);return"function"===typeof r&&(i.mapToProps=r,i.dependsOnOwnProps=D(r),r=i(t,n)),r},i}}var M=[function(e){return"function"===typeof e?N(e):void 0},function(e){return e?void 0:E((function(e){return{dispatch:e}}))},function(e){return e&&"object"===typeof e?E((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 T=[function(e){return"function"===typeof e?N(e):void 0},function(e){return e?void 0:E((function(){return{}}))}];function I(e,t,n){return c({},n,e,t)}var O=[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 I}}],A=["initMapStateToProps","initMapDispatchToProps","initMergeProps"];function R(e,t,n,i){return function(r,o){return n(e(r,o),t(i,o),o)}}function P(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 Z(e,t){var n=t.initMapStateToProps,i=t.initMapDispatchToProps,r=t.initMergeProps,o=d(t,A),a=n(e,o),s=i(e,o),u=r(e,o);return(o.pure?P:R)(a,s,u,e,o)}var F=["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"];function j(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 H(e,t){return e===t}function B(e){var t=void 0===e?{}:e,n=t.connectHOC,i=void 0===n?S:n,r=t.mapStateToPropsFactories,o=void 0===r?T:r,a=t.mapDispatchToPropsFactories,s=void 0===a?M:a,u=t.mergePropsFactories,l=void 0===u?O:u,h=t.selectorFactory,f=void 0===h?Z:h;return function(e,t,n,r){void 0===r&&(r={});var a=r,u=a.pure,h=void 0===u||u,p=a.areStatesEqual,g=void 0===p?H:p,v=a.areOwnPropsEqual,m=void 0===v?L:v,_=a.areStatePropsEqual,y=void 0===_?L:_,b=a.areMergedPropsEqual,w=void 0===b?L:b,C=d(a,F),k=j(e,o,"mapStateToProps"),S=j(t,s,"mapDispatchToProps"),x=j(n,l,"mergeProps");return i(f,c({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:k,initMapDispatchToProps:S,initMergeProps:x,pure:h,areStatesEqual:g,areOwnPropsEqual:m,areStatePropsEqual:y,areMergedPropsEqual:w},C))}}var z=B();function W(){return(0,e.useContext)(i)}function V(t){void 0===t&&(t=i);var n=t===i?W:function(){return(0,e.useContext)(t)};return function(){return n().store}}var Y=V();function U(e){void 0===e&&(e=i);var t=e===i?Y:V(e);return function(){return t().dispatch}}var K=U(),q=function(e,t){return e===t};function G(t){void 0===t&&(t=i);var n=t===i?W:function(){return(0,e.useContext)(t)};return function(t,i){void 0===i&&(i=q);var r=n(),o=function(t,n,i,r){var o,a=(0,e.useReducer)((function(e){return e+1}),0)[1],l=(0,e.useMemo)((function(){return s(i,r)}),[i,r]),c=(0,e.useRef)(),d=(0,e.useRef)(),h=(0,e.useRef)(),f=(0,e.useRef)(),p=i.getState();try{if(t!==d.current||p!==h.current||c.current){var g=t(p);o=void 0!==f.current&&n(g,f.current)?f.current:g}else o=f.current}catch(v){throw c.current&&(v.message+="\nThe error may be correlated with this previous error:\n"+c.current.stack+"\n\n"),v}return u((function(){d.current=t,h.current=p,f.current=o,c.current=void 0})),u((function(){function e(){try{var e=i.getState();if(e===h.current)return;var t=d.current(e);if(n(t,f.current))return;f.current=t,h.current=e}catch(v){c.current=v}a()}return l.onStateChange=e,l.trySubscribe(),e(),function(){return l.tryUnsubscribe()}}),[i,l]),o}(t,i,r.store,r.subscription);return(0,e.useDebugValue)(o),o}}var $,Q=G();$=t.unstable_batchedUpdates,r=$;var X=n(15671),J=n(43144),ee=n(60136),te=n(43668),ne=n(29439),ie=n(89611);function re(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,ie.Z)(e,t)}function oe(e){return"/"===e.charAt(0)}function ae(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 se=function(e,t){void 0===t&&(t="");var n,i=e&&e.split("/")||[],r=t&&t.split("/")||[],o=e&&oe(e),a=t&&oe(t),s=o||a;if(e&&oe(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?ae(r,c):".."===d?(ae(r,c),l++):l&&(ae(r,c),l--)}if(!s)for(;l--;l)r.unshift("..");!s||""===r[0]||r[0]&&oe(r[0])||r.unshift("");var h=r.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function ue(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var le=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=ue(t),r=ue(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},ce=!0,de="Invariant failed";function he(e,t){if(!e){if(ce)throw new Error(de);var n="function"===typeof t?t():t;throw new Error(n?de+": "+n:de)}}function fe(e){return"/"===e.charAt(0)?e:"/"+e}function pe(e){return"/"===e.charAt(0)?e.substr(1):e}function ge(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 ve(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function me(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 _e(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=c({},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=se(r.pathname,i.pathname)):r.pathname=i.pathname:r.pathname||(r.pathname="/"),r}function ye(){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 be=!("undefined"===typeof window||!window.document||!window.document.createElement);function we(e,t){t(window.confirm(e))}var Ce="popstate",ke="hashchange";function Se(){try{return window.history.state||{}}catch(e){return{}}}function xe(e){void 0===e&&(e={}),be||he(!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?we:s,l=r.keyLength,d=void 0===l?6:l,h=e.basename?ve(fe(e.basename)):"";function f(e){var t=e||{},n=t.key,i=t.state,r=window.location,o=r.pathname+r.search+r.hash;return h&&(o=ge(o,h)),_e(o,i,n)}function p(){return Math.random().toString(36).substr(2,d)}var g=ye();function v(e){c(D,e),D.length=t.length,g.notifyListeners(D.location,D.action)}function m(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||b(f(e.state))}function _(){b(f(Se()))}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=D.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=f(Se()),C=[w.key];function k(e){return h+me(e)}function S(e){t.go(e)}var x=0;function L(e){1===(x+=e)&&1===e?(window.addEventListener(Ce,m),i&&window.addEventListener(ke,_)):0===x&&(window.removeEventListener(Ce,m),i&&window.removeEventListener(ke,_))}var E=!1;var D={length:t.length,action:"POP",location:w,createHref:k,push:function(e,i){var r="PUSH",o=_e(e,i,p(),D.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(D.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=_e(e,i,p(),D.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(D.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 D}var Le="hashchange",Ee={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+pe(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:pe,decodePath:fe},slash:{encodePath:fe,decodePath:fe}};function De(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function Ne(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function Me(e){window.location.replace(De(window.location.href)+"#"+e)}function Te(e){void 0===e&&{},be||he(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),i=n.getUserConfirmation,r=void 0===i?we:i,o=n.hashType,a=void 0===o?"slash":o,s=e.basename?ve(fe(e.basename)):"",u=Ee[a],l=u.encodePath,d=u.decodePath;function h(){var e=d(Ne());return s&&ge(e,s),_e(e)}var f=ye();function p(e){c(L,e),L.length=t.length,f.notifyListeners(L.location,L.action)}var g=!1,v=null;function m(){var e=Ne(),t=l(e);if(e!==t)Me(t);else{var n=h(),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===me(n))return;null,function(e){if(g)!1,p();else{var t="POP";f.confirmTransitionTo(e,t,r,(function(n){n?p({action:t,location:e}):function(e){var t=L.location,n=w.lastIndexOf(me(t));-1===n&&0;var i=w.lastIndexOf(me(e));-1===i&&0;var r=n-i;r&&(!0,C(r))}(e)}))}}(n)}}var _=Ne(),y=l(_);_!==y&&Me(y);var b=h(),w=[me(b)];function C(e){t.go(e)}var k=0;function S(e){1===(k+=e)&&1===e?window.addEventListener(Le,m):0===k&&window.removeEventListener(Le,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")&&De(window.location.href),n+"#"+l(s+me(e))},push:function(e,t){var n="PUSH",i=_e(e,void 0,void 0,L.location);f.confirmTransitionTo(i,n,r,(function(e){if(e){var t=me(i),r=l(s+t);if(Ne()!==r){t,function(e){window.location.hash=e}(r);var o=w.lastIndexOf(me(L.location)),a=w.slice(0,o+1);a.push(t),a,p({action:n,location:i})}else p()}}))},replace:function(e,t){var n="REPLACE",i=_e(e,void 0,void 0,L.location);f.confirmTransitionTo(i,n,r,(function(e){if(e){var t=me(i),r=l(s+t);Ne()!==r&&(t,Me(r));var o=w.indexOf(me(L.location));-1!==o&&(w[o]=t),p({action:n,location:i})}}))},go:C,goBack:function(){C(-1)},goForward:function(){C(1)},block:function(e){void 0===e&&!1;var t=f.setPrompt(e);return x||(S(1),!0),function(){return x&&(!1,S(-1)),t()}},listen:function(e){var t=f.appendListener(e);return S(1),function(){S(-1),t()}}};return L}function Ie(e,t,n){return Math.min(Math.max(e,t),n)}var Oe=n(91386),Ae=n.n(Oe),Re=1073741823,Pe="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:{};var Ze=e.createContext||function(t,n){var i,r,o="__create-react-context-"+function(){var e="__global_unique_id__";return Pe[e]=(Pe[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}re(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):Re,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]=Ae().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}re(n,e);var i=n.prototype;return i.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=void 0===t||null===t?Re: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?Re: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]=Ae().object,r),{Provider:a,Consumer:s}},Fe=Ze,je=n(39801),He=n.n(je),Be=(n(29685),function(e){var t=Fe();return t.displayName=e,t}),ze=Be("Router-History"),We=Be("Router"),Ve=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}re(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(We.Provider,{value:{history:this.props.history,location:this.state.location,match:n.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},e.createElement(ze.Provider,{children:this.props.children||null,value:this.props.history}))},n}(e.Component);e.Component;var Ye=function(e){function t(){return e.apply(this,arguments)||this}re(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 Ue={},Ke=1e4,qe=0;function Ge(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(Ue[e])return Ue[e];var t=He().compile(e);return qe<Ke&&(Ue[e]=t,qe++),t}(e)(t,{pretty:!0})}function $e(t){var n=t.computedMatch,i=t.to,r=t.push,o=void 0!==r&&r;return e.createElement(We.Consumer,null,(function(t){t||he(!1);var r=t.history,a=t.staticContext,s=o?r.push:r.replace,u=_e(n?"string"===typeof i?Ge(i,n.params):c({},i,{pathname:Ge(i.pathname,n.params)}):i);return a?(s(u),null):e.createElement(Ye,{onMount:function(){s(u)},onUpdate:function(e,t){var n=_e(t.to);(function(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&le(e.state,t.state)})(n,c({},u,{key:n.key}))||s(u)},to:i})}))}var Qe={},Xe=1e4,Je=0;function et(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=Qe[n]||(Qe[n]={});if(i[e])return i[e];var r=[],o={regexp:He()(e,r,t),keys:r};return Je<Xe&&(i[e]=o,Je++),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 tt=function(t){function n(){return t.apply(this,arguments)||this}return re(n,t),n.prototype.render=function(){var t=this;return e.createElement(We.Consumer,null,(function(n){n||he(!1);var i=t.props.location||n.location,r=c({},n,{location:i,match:t.props.computedMatch?t.props.computedMatch:t.props.path?et(i.pathname,t.props):n.match}),o=t.props,a=o.children,s=o.component,u=o.render;return Array.isArray(a)&&function(t){return 0===e.Children.count(t)}(a)&&(a=null),e.createElement(We.Provider,{value:r},r.match?a?"function"===typeof a?a(r):a:s?e.createElement(s,r):u?u(r):null:"function"===typeof a?a(r):null)}))},n}(e.Component);function nt(e){return"/"===e.charAt(0)?e:"/"+e}function it(e,t){if(!e)return t;var n=nt(e);return 0!==t.pathname.indexOf(n)?t:c({},t,{pathname:t.pathname.substr(n.length)})}function rt(e){return"string"===typeof e?e:me(e)}function ot(e){return function(){he(!1)}}function at(){}e.Component;var st=function(t){function n(){return t.apply(this,arguments)||this}return re(n,t),n.prototype.render=function(){var t=this;return e.createElement(We.Consumer,null,(function(n){n||he(!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?et(o.pathname,c({},t.props,{path:a})):n.match}})),r?e.cloneElement(i,{location:o,computedMatch:r}):null}))},n}(e.Component);var ut=e.useContext;function lt(){return ut(ze)}function ct(){return ut(We).location}function dt(e){var t=ct(),n=ut(We).match;return e?et(t.pathname,e):n}var ht=n(78243),ft=n(67119),pt="system",gt="light",vt="dark",mt=([].concat(["light","light-hc"],["dark","dark-hc"]),"root"),_t={theme:pt,themeValue:gt},yt=e.createContext(_t);yt.displayName="ThemeContext";var bt=e.createContext(void 0);bt.displayName="ThemeSettingsContext";var wt=n(4942),Ct=n(93433),kt=(0,ft.Ge)(mt),St=(0,ft.B_)(mt),xt=kt(),Lt=St(),Et={"native-scrollbar":!1};function Dt(e,t,n){var i=document.body;(i.classList.contains(xt)||i.classList.add(xt),i.classList.contains(Lt)||i.classList.add(Lt),n)&&n.split(" ").forEach((function(e){e&&!i.classList.contains(e)&&i.classList.add(e)}));(0,Ct.Z)(i.classList).forEach((function(e){e.startsWith((0,ft.Ui)(kt({theme:!0})))&&i.classList.remove(e),e.startsWith((0,ft.Ui)(St({theme:!0})))&&i.classList.remove(e)})),i.classList.add((0,ft.Ui)(kt({theme:e}))),i.classList.add((0,ft.Ui)(St({theme:e})));for(var r=0,o=Object.entries(Object.assign(Object.assign({},Et),t));r<o.length;r++){var a=(0,ne.Z)(o[r],2),s=a[0],u=a[1];i.classList.toggle((0,ft.Ui)(kt((0,wt.Z)({},s,!0))),u),i.classList.toggle((0,ft.Ui)(St((0,wt.Z)({},s,!0))),u)}}var Nt=function(){return window.matchMedia("(prefers-color-scheme: dark)")};function Mt(){var t=e.useState("object"===typeof window&&Nt().matches?"dark":"light"),n=(0,ne.Z)(t,2),i=n[0],r=n[1];return 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)}}(Nt(),(function(e){r(e.matches?"dark":"light")}));return function(){return e()}}),[]),i}var Tt=(0,ft.Ge)(mt),It=(0,ft.B_)(mt);function Ot(t){var n=t.theme,i=void 0===n?pt:n,r=t.systemLightTheme,o=void 0===r?gt:r,a=t.systemDarkTheme,s=void 0===a?vt: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,g="light"===Mt()?o:s,v="system"===i?g:i;e.useEffect((function(){d||Dt(v,{"native-scrollbar":l},f)}),[l,v,d,f]);var m=e.useMemo((function(){return{theme:i,themeValue:v}}),[i,v]),_=e.useMemo((function(){return{systemLightTheme:o,systemDarkTheme:s}}),[o,s]);return e.createElement(yt.Provider,{value:m},e.createElement(bt.Provider,{value:_},d?e.createElement("div",{className:It({theme:v,"native-scrollbar":l},[Tt({theme:v,"native-scrollbar":l}),f])},p):p))}function At(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?At(Object(n),!0).forEach((function(t){(0,wt.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):At(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ot.displayName="ThemeProvider";var Pt=n(22637),Zt=n.n(Pt),Ft=n(2137),jt=n(20061),Ht=n.n(jt),Bt=n(83077),zt=function(){return Math.random().toString(36).substring(7).split("").join(".")},Wt={INIT:"@@redux/INIT"+zt(),REPLACE:"@@redux/REPLACE"+zt(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+zt()}};function Vt(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 Yt(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(Yt)(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(!Vt(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:Wt.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:Wt.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 Ut(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 Kt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qt(){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 Gt(){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){Kt(e,t,n[t])}))}return e}({},n,{dispatch:i=qt.apply(void 0,o)(n.dispatch)})}}}function $t(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 Qt=$t();Qt.withExtraArgument=$t;var Xt=Qt,Jt=n(22458),en=n(33119),tn=function(e,t){if(t){if(window.custom_backend)return{basename:"/",backend:en.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=en.parse(e,!0).query;return{basename:"/",backend:r.backend,clusterName:r.clusterName}};function nn(e,t){if(null==e)return{};var n,i,r=d(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 rn=n(32048),on=n.n(rn),an=n(77847),sn=n(85292),un=n(34737),ln=n(8606);function cn(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 dn(e){return function(){var t=this,n=arguments;return new Promise((function(i,r){var o=e.apply(t,n);function a(e){cn(o,i,r,a,s,"next",e)}function s(e){cn(o,i,r,a,s,"throw",e)}a(void 0)}))}}var hn=n(87757),fn=n.n(hn),pn=n(40794),gn=n.n(pn),vn=n(56787),mn=n.n(vn),_n=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,X.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 i=n.config,r=void 0===i?{}:i,o=n.apiEndpoint,a=void 0===o?"/api":o,s=n.collector,u=void 0===s?{}:s,l=Object.assign({xsrfCookieName:"",timeout:e.DEFAULT_TIMEOUT,withCredentials:!0},r);this._axios=mn().create(l),this._axios.defaults.headers=gn()(this._axios.defaults.headers),this.requestTokens={},this.setApiEndpoint(a),this.collectorSettings=u,this.collector={errors:[],requests:[]}}return(0,J.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,Ct.Z)(this.collector.errors),[b]).slice(-h)),f&&(this.collector.requests=[].concat((0,Ct.Z)(this.collector.requests),[b]).slice(-f))}}},{key:"getCollectedRequests",value:function(){return{errors:(0,Ct.Z)(this.collector.errors),requests:(0,Ct.Z)(this.collector.requests)}}},{key:"request",value:function(){var e=dn(fn().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 fn().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),!mn().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:mn().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=mn().CancelToken.source();return this.requestTokens[e]=t,t.token}}},{key:"clearRequestToken",value:function(e){e&&this.requestTokens[e]&&delete this.requestTokens[e]}}]),e}();_n.DEFAULT_TIMEOUT=6e4;var yn=1,bn=-1,wn="fixed",Cn="moving",kn="__index__",Sn=function(e){return e?(arguments.length>1&&void 0!==arguments[1]?arguments[1]:bn)===bn?"-"+e:e:""},xn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return new RegExp((0,rn.escapeRegExp)(e),"i")},Ln=["visibleEntities","type","tablets","sortOrder","sortValue"],En=["sortOrder","sortValue"],Dn=["tenant","visibleEntities","nodeId","sortOrder","sortValue"],Nn=["schema"],Mn={withCredentials:!window.custom_backend},Tn=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"getPath",value:function(e){return"".concat(ng).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,n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.get(this.getPath("/viewer/json/tenantinfo"),{path:t,tablets:!0,storage:!0},{concurrentId:n||"getTenantInfo|".concat(t)})}},{key:"getNodes",value:function(e){var t=e.visibleEntities,n=e.type,i=void 0===n?"any":n,r=e.tablets,o=void 0===r||r,a=e.sortOrder,s=e.sortValue,u=nn(e,Ln),l=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId,c=Sn(s,a);return this.get(this.getPath("/viewer/json/nodes?enums=true"),Rt({with:t,type:i,tablets:o,sort:c},u),{concurrentId:l})}},{key:"getCompute",value:function(e){var t=e.sortOrder,n=e.sortValue,i=nn(e,En),r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId,o=Sn(n,t);return this.get(this.getPath("/viewer/json/compute?enums=true"),Rt({sort:o},i),{concurrentId:r})}},{key:"getStorageInfo",value:function(e){var t=e.tenant,n=e.visibleEntities,i=e.nodeId,r=e.sortOrder,o=e.sortValue,a=nn(e,Dn),s=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId,u=Sn(o,r);return this.get(this.getPath("/viewer/json/storage?enums=true"),Rt({tenant:t,node_id:i,with:n,sort:u},a),{concurrentId:s})}},{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"})}},{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.schema,n=nn(e,Nn),i=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.post(this.getPath("/viewer/json/query?timeout=".concat(6e5).concat(t?"&schema=".concat(t):"")),n,{},{concurrentId:i,timeout:54e4})}},{key:"getExplainQuery",value:function(e,t,n,i){return this.post(this.getPath("/viewer/json/query"),{query:e,database:t,action:n||"explain",syntax:i,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){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).concurrentId;return this.get(this.getPath("/viewer/json/healthcheck?merge_records=true"),{tenant:e},{concurrentId:t})}},{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,n){return this.request({method:"PATCH",url:e,data:(0,wt.Z)({},t,n)})}},{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}(_n),In=new Tn({config:Mn});window.api=In;var On="tenantPage",An={query:"query",diagnostics:"diagnostics"},Rn={newQuery:"newQuery",history:"history",saved:"saved"},Pn={overview:"overview",topQueries:"topQueries",topShards:"topShards",nodes:"nodes",tablets:"tablets",storage:"storage",network:"network",describe:"describe",hotKeys:"hotKeys",graph:"graph",consumers:"consumers",partitions:"partitions"},Zn={overview:"overview",acl:"acl",schema:"schema"},Fn={cpu:"cpu",storage:"storage",memory:"memory",healthcheck:"healthcheck"};function jn(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),Bn=n.n(Hn);var zn=function(){var e=document.createElement("a").style;return e.cssText="position:sticky; position:-webkit-sticky;",-1!==e.position.indexOf("sticky")}(),Wn={getSrcElement:function(){return null},onHeightChange:function(){}},Vn=function(){function e(t){var n=this;(0,X.Z)(this,e),this.prevHeight=0,this.params=Wn,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,J.Z)(e,[{key:"destroy",value:function(){this.updateHeight(0),this.params=Wn}},{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 Yn(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===yn?bn:yn:void 0),!u)return v?{sortOrder:(0,wt.Z)({},n,v),sortColumns:[n]}:f;var m=o,_=n,y=(m[_],jn(m,["symbol"===typeof _?_:_+""]));return v?(y[n]=v,new Set(s).has(n)||(p=[].concat((0,Ct.Z)(s),[n]))):p=s.filter((function(e){return e!==n})),{sortOrder:y,sortColumns:p}}function Un(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 Kn(e,t,n,i){var r=n.sortOrder,o=n.sortColumns,a={};t.forEach((function(e){r[e.name]?a[e.name]=Un(e,r[e.name],i):e.group&&e.autogroup&&(a[e.name]=Un(e,yn,i))}));var s=t.filter((function(e){return e.group})),u=s.length>0,l=[].concat((0,Ct.Z)(s.map((function(e){return a[e.name]})).filter(Boolean)),(0,Ct.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 qn(e,t){return(Array.isArray(e)?e:[e]).reduce((function(e,n){return Yn({name:n.columnId,defaultOrder:n.order},e,!0,t)}),{sortOrder:{},sortColumns:[]})}var Gn=(0,ht.Z)("data-table"),$n=e.createElement("svg",{className:Gn("icon"),viewBox:"0 0 10 6",width:"10",height:"6"},e.createElement("path",{fill:"currentColor",d:"M0 5h10l-5 -5z"})),Qn=e.createElement("svg",{className:Gn("icon"),viewBox:"0 0 10 6",width:"10",height:"6"},e.createElement("path",{fill:"currentColor",d:"M0 1h10l-5 5z"})),Xn={ICON_ASC:$n,ICON_DESC:Qn};var Jn=function(t){var n=t.sortOrder,i=t.sortIndex,r=t.sortable,o=t.defaultOrder;return r?e.createElement("span",{className:Gn("sort-icon",{shadow:!n}),"data-index":i},function(e){switch(e){case yn:return Xn.ICON_ASC;case bn:return Xn.ICON_DESC;default:return!1}}(n||o)):null};Jn.propTypes={sortOrder:Ae().oneOf([yn,bn]),sortable:Ae().bool,defaultOrder:Ae().oneOf([yn,bn])};var ei=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var e;return(0,X.Z)(this,i),(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,J.Z)(i,[{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:Gn("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}))})))}}]),i}(e.PureComponent);ei.defaultProps={footer:!1};var ti=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var t;return(0,X.Z)(this,i),(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:Gn("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:Gn("head-cell")},l,e.createElement(Jn,Object.assign({},i))))},t.renderHeadLevel=function(n,i){return e.createElement("tr",{key:i,className:Gn("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,J.Z)(i,[{key:"componentDidMount",value:function(){var e=this;this._calculateColumnsWidth(),"function"===typeof this.props.onDataRowsHeightChange&&(this.dataRowsHeightObserver=new Vn({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:Gn("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===kn?function(){t.onSort()}:i?function(n){t.onSort(e,n.ctrlKey||n.metaKey)}:void 0}}]),i}(e.Component);ti.propTypes={headColumns:Ae().array.isRequired,dataColumns:Ae().array.isRequired,displayIndices:Ae().bool.isRequired,onSort:Ae().func,onColumnsUpdated:Ae().func,renderedDataRows:Ae().node};var ni=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var e;return(0,X.Z)(this,i),(e=n.apply(this,arguments)).state={style:{top:i.defaultProps.top}},e.onDataRowsHeightChange=function(t){e.props.onDataRowsHeightChange(t+1)},e._nodeRef=function(t){e._node=t},e}return(0,J.Z)(i,[{key:"render",value:function(){var t=this.props,n=t.mode,i=(t.top,jn(t,["mode","top"]));if(n===Cn){var r=this.state.style;return e.createElement("div",{className:Gn("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:Gn("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===Cn||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:Gn("table-wrapper",{sticky:!0})},e.createElement("table",{className:Gn("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(ti,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}}]),i}(e.Component);ni.propTypes={mode:Ae().oneOf([wn,Cn]),top:Ae().number,renderedDataRows:Ae().node},ni.defaultProps={top:0};var ii=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var e;return(0,X.Z)(this,i),(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,J.Z)(i,[{key:"componentDidMount",value:function(){var e=this;this.heightObserver=new Vn({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===Cn){var r=this.state.style;return e.createElement("div",{ref:this._nodeMovingRef,className:Gn("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:Gn("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:Gn("table-wrapper",{sticky:!0})},e.createElement("table",{className:Gn("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}}]),i}(e.PureComponent);ii.defaultProps={bottom:0};var ri=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var t;return(0,X.Z)(this,i),(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(ei,{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:Gn("table-wrapper"),style:d===Cn?c:void 0},e.createElement("table",{className:Gn("table"),style:s===Cn?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:Gn("foot",{"has-sticky-footer":d})},o.map(t.renderFooterRow))))},t}return(0,J.Z)(i,[{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:Gn("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:Gn("row")},e.createElement("td",{className:Gn("td",Gn("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(ti,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(ni,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(ii,{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(Bn(),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}}]),i}(e.PureComponent);ri.propTypes={className:Ae().string,settings:Ae().object,refs:Ae().object,headerData:Ae().array,data:Ae().array,footerData:Ae().array,columns:Ae().object,emptyDataMessage:Ae().string,onRowClick:Ae().func,rowClassName:Ae().func,rowKey:Ae().func,startIndex:Ae().number,onSort:Ae().func,renderEmptyRow:Ae().func};var oi=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 ai={columnId:Ae().string,order:Ae().oneOf([yn,bn])},si=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var t;return(0,X.Z)(this,i),(t=n.apply(this,arguments)).state=Object.assign({settings:{}},qn(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(oi,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=Gn("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},D="function"===typeof e.customStyle?e.customStyle:function(){},N="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:N,customStyle:D,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=Yn(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,J.Z)(i,[{key:"render",value:function(){var t=this.props,n=t.headerData,r=t.data,o=t.footerData,a=t.columns,s=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=Gn({"highlight-rows":b,"striped-rows":C,header:void 0!==k&&k,theme:h}),x=this.getComplexColumns(a);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(ri,{ref:this._tableRef,className:S,settings:v,startIndex:s,columns:x,emptyDataMessage:u,renderEmptyRow:f,rowClassName:l,rowKey:c||i.defaultProps.rowKey,onRowClick:d,headerData:n,data:Kn(r,x.dataColumns,{sortOrder:m,sortColumns:_},{nullBeforeNumbers:p,externalSort:null===v||void 0===v?void 0:v.externalSort}),footerData:o,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,Ct.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!==Cn||zn?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({},i.defaultProps.settings),e),{stickyHead:i.normalizeStickyHead(e.stickyHead),stickyFooter:i.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:kn,header:"#",className:Gn("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=i.calculateSettings(e.settings);return Object.assign({settings:t,indexColumn:Boolean(t.displayIndices)&&i.getIndexColumn(e)},e.sortOrder?Object.assign({},qn(e.sortOrder,e.settings)):void 0)}}]),i}(e.Component);function ui(e){return new Set(e.map((function(e){return e.name}))).size!==e.length}si.propTypes={columns:Ae().array.isRequired,headerData:Ae().array,data:Ae().array.isRequired,footerData:Ae().array,startIndex:Ae().number,emptyDataMessage:Ae().string,renderEmptyRow:Ae().func,rowClassName:Ae().func,rowKey:Ae().func,visibleRowIndex:Ae().func,initialSortOrder:Ae().oneOfType([Ae().shape(ai),Ae().arrayOf(Ae().shape(ai))]),sortOrder:Ae().oneOfType([Ae().shape(ai),Ae().arrayOf(Ae().shape(ai))]),settings:Ae().shape({displayIndices:Ae().bool,dynamicRender:Ae().bool,dynamicRenderType:Ae().oneOf(["simple","uniform","variable"]),dynamicRenderUseStaticSize:Ae().bool,dynamicRenderThreshold:Ae().number,dynamicRenderMinSize:Ae().number,dynamicRenderScrollParentGetter:Ae().func,dynamicRenderScrollParentViewportSizeGetter:Ae().func,dynamicItemSizeEstimator:Ae().func,dynamicItemSizeGetter:Ae().func,stickyHead:Ae().oneOf([!1,wn,Cn]),stickyTop:Ae().oneOfType([Ae().number,Ae().oneOf(["auto"])]),sortable:Ae().bool,externalSort:Ae().bool,highlightRows:Ae().bool,stripedRows:Ae().bool,headerMod:Ae().oneOf(["multiline","pre"]),defaultOrder:Ae().oneOf([yn,bn]),syncHeadOnResize:Ae().bool}),theme:Ae().string,onSort:Ae().func},si.defaultProps={startIndex:0,emptyDataMessage:"No data",settings:{displayIndices:!0,dynamicRenderMinSize:1,stickyHead:!1,stickyFooter:!1,sortable:!0,externalSort:!1,defaultOrder:yn},rowKey:function(e,t){return Object.prototype.hasOwnProperty.call(e,"id")?e.id:t},initialSortOrder:{},initialSortColumns:[],theme:"yandex-cloud"},si.getSortedData=Kn;var li="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.",ci=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var e;return(0,X.Z)(this,i),(e=n.apply(this,arguments)).state={},e._tableRef=function(t){e.table=t},e}return(0,J.Z)(i,[{key:"componentDidMount",value:function(){ui(this.props.columns)&&console.warn(li)}},{key:"componentDidUpdate",value:function(e){var t=this.props.columns;t!==e.columns&&ui(t)&&console.warn(li)}},{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:Gn("error")},"DataTable got stuck in invalid state. Please tell developers about it.","\n\n",t.stack&&String(t.stack)||String(t)):e.createElement(si,Object.assign({ref:this._tableRef},this.props))}},{key:"resize",value:function(){this.table&&this.table.resize()}}],[{key:"setCustomIcons",value:function(e){Xn.ICON_ASC=e.ICON_ASC||$n,Xn.ICON_DESC=e.ICON_DESC||Qn}}]),i}(e.PureComponent);ci.FIXED=wn,ci.MOVING=Cn,ci.ASCENDING=yn,ci.DESCENDING=bn,ci.LEFT="left",ci.CENTER="center",ci.RIGHT="right";var di,hi,fi,pi=ci;!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"}(di||(di={})),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"}(hi||(hi={}));var gi,vi=1e4,mi=1e9,_i=3600,yi=24*_i,bi=(fi={},(0,wt.Z)(fi,di.OldTxProxy,"P"),(0,wt.Z)(fi,di.TxProxy,"P"),(0,wt.Z)(fi,di.BSController,"BS"),(0,wt.Z)(fi,di.Dummy,"DY"),(0,wt.Z)(fi,di.RTMRPartition,"RP"),(0,wt.Z)(fi,di.PersQueueReadBalancer,"PB"),(0,wt.Z)(fi,di.Cms,"CM"),(0,wt.Z)(fi,di.BlockStorePartition,"BP"),(0,wt.Z)(fi,di.BlockStoreVolume,"BV"),(0,wt.Z)(fi,di.Console,"CN"),(0,wt.Z)(fi,di.TenantSlotBroker,"TB"),(0,wt.Z)(fi,di.BlockStoreDiskRegistry,"BDR"),fi),wi=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 bi}(e)?bi[e]:n}},Ci=["1 min","5 min","15 min"],ki={green:5,yellow:4,orange:3,red:2,blue:1,grey:1},Si=5,xi="Developer UI",Li="Cluster",Ei="Database",Di="theme",Ni="language",Mi="invertedDisks",Ti="useNodesEndpointInDiagnostics",Ii="saved_queries",Oi="asideHeaderCompact",Ai="queries_history",Ri="default-size-result-pane",Pi="default-size-tenant-summary-pane",Zi="default-size-tenant-pane",Fi="default-is-tenant-summary-collapsed",ji="default-is-tenant-common-info-collapsed",Hi="default-is-query-result-collapsed",Bi={displayIndices:!1,stickyHead:pi.MOVING,syncHeadOnResize:!0,dynamicRender:!0,highlightRows:!0},zi=Rt(Rt({},Bi),{},{stickyHead:"fixed",dynamicRender:!1}),Wi="query_initial_mode",Vi="last_used_query_action",Yi="partitionsHiddenColumns",Ui="clusterInfoHidden",Ki="saved_tenant_initial_tab",qi="useBackendParamsForTables",Gi="queryUseMultiSchema";!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"}(gi||(gi={}));var $i=["result","columns"],Qi=["result"],Xi={execute:"execute",explain:"explain"},Ji={scan:"scan",script:"script",data:"data",query:"query",pg:"pg"},er={scan:"Scan",script:"YQL Script",data:"Data",query:"YQL - QueryService",pg:"PostgreSQL"},tr={yql:"yql_v1",pg:"pg"},nr=function(e,t){return e.map((function(e){return e.reduce((function(e,n,i){return e[t[i].name]=n,e}),{})}))},ir=function(e){return Boolean(!e||"object"!==typeof e||Array.isArray(e)||"result"in e&&!Array.isArray(e.result))},rr=function(e){return ir(e)?{}:(t=e,Boolean(t&&!Array.isArray(t)&&Array.isArray(t.result)&&"object"===typeof t.result[0]&&"rows"in t.result[0]&&"columns"in t.result[0])?function(e){var t=e.result,n=nn(e,Qi),i=null===t||void 0===t?void 0:t.map((function(e){var t,n=e.rows,i=e.columns;return i&&(t=[]),n&&i&&(t=nr(n,i)),{columns:i,result:t}}));return Rt({resultSets:i},n)}(e):function(e){return Boolean(e&&!Array.isArray(e)&&Array.isArray(e.result)&&Array.isArray(e.columns))}(e)?function(e){var t=e.result,n=e.columns,i=nn(e,$i);return Rt({result:t&&n&&nr(t,n),columns:n},i)}(e):e);var t},or=function(e){return ir(e)?{}:e},ar=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 sr(e){var t,n;return(null===(t=e.data)||void 0===t||null===(n=t.error)||void 0===n?void 0:n.message)||e.statusText}var ur,lr=[" B"," KB"," MB"," GB"," TB"," PB"," EB"],cr=1e3;function dr(e){return"".concat(function(e){if(isNaN(e))return"";var t=e/Math.pow(cr,2);return t<10?t.toFixed(2)+lr[2]:t<100?t.toFixed(1)+lr[2]:t.toFixed()+lr[2]}(e)).concat(e?"ps":"")}function hr(e,t){if(isNaN(e))return"N/A";var n=e/1e9;return t?n.toFixed()+lr[3]:n<10?n.toFixed(2)+lr[3]:n<100?n.toFixed(1)+lr[3]:n.toFixed()+lr[3]}function fr(e){for(var t=e,n=String(e).length;n<9;n++)t="0"+t;return t}function pr(e){return!isNaN(e)&&!isNaN(parseFloat(e))}var gr="useLocalStorageForSettings",vr=(ur={},(0,wt.Z)(ur,Di,"system"),(0,wt.Z)(ur,Ni,void 0),(0,wt.Z)(ur,Mi,!1),(0,wt.Z)(ur,Ti,!1),(0,wt.Z)(ur,Gi,!1),(0,wt.Z)(ur,Ii,[]),(0,wt.Z)(ur,Ki,An.query),(0,wt.Z)(ur,Wi,Ji.script),(0,wt.Z)(ur,Vi,Xi.execute),(0,wt.Z)(ur,Oi,!0),(0,wt.Z)(ur,Yi,[]),(0,wt.Z)(ur,Ui,!0),(0,wt.Z)(ur,qi,!1),ur),mr=function(){function e(){var t,n=this;(0,X.Z)(this,e),this.extractSettingsFromLS=function(e){return Object.entries(e).reduce((function(e,t){var i=(0,ne.Z)(t,2),r=i[0],o=i[1];return e[r]=n.readUserSettingsValue(r,o),e}),{})},this.readValueFromLS=function(e){try{return function(e){if(e)try{return JSON.parse(e)}catch(t){return e}}(localStorage.getItem(e))}catch(t){return}},this.setValueToLS=function(e,t){try{"string"===typeof t?localStorage.setItem(e,t):localStorage.setItem(e,JSON.stringify(t))}catch(n){}};var i=window.web_version?null===(t=window.systemSettings)||void 0===t?void 0:t.settingsApi:void 0,r=this.readUserSettingsValue(gr);if(i&&!r){var o=window.userSettings;o&&Object.entries(o).forEach((function(e){var t=(0,ne.Z)(e,2),i=t[0],r=t[1];return n.setUserSettingsValue(i,r)})),this.setUserSettingsValue(gr,!0)}}return(0,J.Z)(e,[{key:"readUserSettingsValue",value:function(e,t){var n;return null!==(n=this.readValueFromLS(e))&&void 0!==n?n:t}},{key:"setUserSettingsValue",value:function(e,t){return this.setValueToLS(e,t)}}]),e}(),_r=new mr,yr="settings/CHANGE_PROBLEM_FILTER",br="settings/SET_VALUE",wr="settings/SET_USER_SETTINGS",Cr={ALL:"All",PROBLEMS:"With problems"},kr=_r.extractSettingsFromLS(vr),Sr=window.systemSettings||{},xr={problemFilter:Cr.ALL,userSettings:kr,systemSettings:Sr},Lr=function(e){return{type:yr,data:e}},Er=function(e){return e.settings.problemFilter},Dr=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:xr,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case yr:return Rt(Rt({},e),{},{problemFilter:t.data});case br:var n=Rt(Rt({},e.userSettings),{},(0,wt.Z)({},t.data.name,t.data.value));return Rt(Rt({},e),{},{userSettings:n});case wr:return Rt(Rt({},e),{},{userSettings:Rt(Rt({},e.userSettings),t.data)});default:return e}},Nr=n(11141),Mr=n.n(Nr);function Tr(e,t){return e.findIndex((function(e){return e.name===t}))}function Ir(e,t){return-1!==Tr(e,t)}function Or(e,t){return Ir(e,t)?e.filter((function(e){return e.name!==t})):e}var Ar=e.createContext(null);Ar.displayName="ToasterContext";var Rr=e.createContext([]);Rr.displayName="ToastsContext";var Pr,Zr=e.forwardRef((function(t,n){var i=t.children,r=e.useState([]),o=(0,ne.Z)(r,2),a=o[0],s=o[1],u=e.useCallback((function(t){var n=t.name;s((function(i){var r=i;return Ir(i,n)&&(r=Or(i,n)),[].concat((0,Ct.Z)(r),[Object.assign(Object.assign({},t),{addedAt:Date.now(),ref:e.createRef()})])}))}),[]),l=e.useCallback((function(e){s((function(t){return Or(t,e)}))}),[]),c=e.useCallback((function(){s((function(){return[]}))}),[]),d=e.useCallback((function(e,t){s((function(n){if(!Ir(n,e))return n;var i=Tr(n,e);return[].concat((0,Ct.Z)(n.slice(0,i)),[Object.assign(Object.assign({},n[i]),t)],(0,Ct.Z)(n.slice(i+1)))}))}),[]),h=e.useRef(a);e.useEffect((function(){h.current=a}),[a]);var f=e.useCallback((function(e){return!!h.current&&Ir(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(Ar.Provider,{value:p},e.createElement(Rr.Provider,{value:a},i))}));Zr.displayName="ToasterProvider",function(e){e.IOS="ios",e.ANDROID="android",e.BROWSER="browser"}(Pr||(Pr={}));(0,ft.Ge)("root")({mobile:!0}).split(/\s+/)[1];var Fr={mobile:!1,platform:Pr.BROWSER,useHistory:function(){return{action:"",replace:function(){},push:function(){},goBack:function(){}}},useLocation:function(){return{pathname:"",search:"",hash:""}},setMobile:function(){},setPlatform:function(){}},jr=e.createContext(Fr);function Hr(){var t=e.useContext(jr);return[t.mobile,t.setMobile]}var Br=n(97326),zr=e.createContext(null);function Wr(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 Vr(e,t,n){return null!=n[t]?n[t]:e.props[t]}function Yr(t,n,i){var r=Wr(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:Vr(s,"exit",t),enter:Vr(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:Vr(s,"exit",t),enter:Vr(s,"enter",t)})}})),o}var Ur=Object.values||function(e){return Object.keys(e).map((function(t){return e[t]}))},Kr=function(t){function n(e,n){var i,r=(i=t.call(this,e,n)||this).handleExited.bind((0,Br.Z)(i));return i.state={contextValue:{isMounting:!0},handleExited:r,firstRender:!0},i}re(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,Wr(i.children,(function(t){return(0,e.cloneElement)(t,{onExited:r.bind(null,t),in:!0,appear:Vr(t,"appear",i),enter:Vr(t,"enter",i),exit:Vr(t,"exit",i)})}))):Yr(t,o,a),firstRender:!1}},i.handleExited=function(e,t){var n=Wr(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState((function(t){var n=c({},t.children);return delete n[e.key],{children:n}})))},i.render=function(){var t=this.props,n=t.component,i=t.childFactory,r=d(t,["component","childFactory"]),o=this.state.contextValue,a=Ur(this.state.children).map(i);return delete r.appear,delete r.enter,delete r.exit,null===n?e.createElement(zr.Provider,{value:o},a):e.createElement(zr.Provider,{value:o},e.createElement(n,r,a))},n}(e.Component);Kr.propTypes={},Kr.defaultProps={component:"div",childFactory:function(e){return e}};var qr=Kr;function Gr(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}var $r=!1,Qr=function(e){return e.scrollTop},Xr="unmounted",Jr="exited",eo="entering",to="entered",no="exiting",io=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=Jr,i.appearStatus=eo):r=to:r=e.unmountOnExit||e.mountOnEnter?Xr:Jr,i.state={status:r},i.nextCallback=null,i}re(i,n),i.getDerivedStateFromProps=function(e,t){return e.in&&t.status===Xr?{status:Jr}: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!==eo&&n!==to&&(t=eo):n!==eo&&n!==to||(t=no)}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===eo){if(this.props.unmountOnExit||this.props.mountOnEnter){var i=this.props.nodeRef?this.props.nodeRef.current:t.findDOMNode(this);i&&Qr(i)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===Jr&&this.setState({status:Xr})},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||$r?this.safeSetState({status:to},(function(){n.props.onEntered(a)})):(this.props.onEnter(a,s),this.safeSetState({status:eo},(function(){n.props.onEntering(a,s),n.onTransitionEnd(l,(function(){n.safeSetState({status:to},(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&&!$r?(this.props.onExit(r),this.safeSetState({status:no},(function(){e.props.onExiting(r),e.onTransitionEnd(i.exit,(function(){e.safeSetState({status:Jr},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:Jr},(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===Xr)return null;var n=this.props,i=n.children,r=(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,d(n,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return e.createElement(zr.Provider,{value:null},"function"===typeof i?i(t,r):e.cloneElement(e.Children.only(i),r))},i}(e.Component);function ro(){}io.contextType=zr,io.propTypes={},io.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:ro,onEntering:ro,onEntered:ro,onExit:ro,onExiting:ro,onExited:ro},io.UNMOUNTED=Xr,io.EXITED=Jr,io.ENTERING=eo,io.ENTERED=to,io.EXITING=no;var oo=io,ao=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=Gr(n.className,i):n.setAttribute("class",Gr(n.className&&n.className.baseVal||"",i)));var n,i}))},so=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}re(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&&Qr(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))},i.removeClasses=function(e,t){var n=this.appliedClasses[t],i=n.base,r=n.active,o=n.done;this.appliedClasses[t]={},i&&ao(e,i),r&&ao(e,r),o&&ao(e,o)},i.render=function(){var t=this.props,n=(t.classNames,d(t,["classNames"]));return e.createElement(oo,c({},n,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},n}(e.Component);so.defaultProps={classNames:""},so.propTypes={};var uo=so;function lo(e){return{appear:(0,ft.Ui)(e({appear:!0})),appearActive:(0,ft.Ui)(e({appear:"active"})),appearDone:(0,ft.Ui)(e({appear:"done"})),enter:(0,ft.Ui)(e({enter:!0})),enterActive:(0,ft.Ui)(e({enter:"active"})),enterDone:(0,ft.Ui)(e({enter:"done"})),exit:(0,ft.Ui)(e({exit:!0})),exitActive:(0,ft.Ui)(e({exit:"active"})),exitDone:(0,ft.Ui)(e({exit:"done"}))}}var co=n(72697),ho=n(96434),fo=n(82024),po=n(15557),go=n(84480);function vo(t){var n,i,r=t.onClose,o=t.timeout,a=function(){var t=e.useState(!1),n=(0,ne.Z)(t,2),i=n[0],r=n[1];return[e.useCallback((function(){r(!0)}),[]),e.useCallback((function(){r(!1)}),[]),i]}(),s=(0,ne.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 mo,_o=n(20970),yo=n(88216),bo=/{{(.*?)}}/g;function wo(e,t){return 0===e?t.None:1===e||-1===e?t.One:t.Many}function Co(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"}(mo||(mo={}));var ko,So=function(){function e(t){(0,X.Z)(this,e),this.data={},this.lang=void 0,this.pluralizers={en:wo,ru:Co},this.logger=null,this.logger=(null===t||void 0===t?void 0:t.logger)||null}return(0,J.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,wt.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 i=this.getLanguageData(this.lang);if("undefined"===typeof i)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(i).length)return this.warn("Language data is empty."),t;var r=i[e];if(!r)return this.warn("Keyset not found.",e),t;if(0===Object.keys(r).length)return this.warn("Keyset is empty.",e),t;var o,a=r&&r[t];if("undefined"===typeof a)return this.warn("Missing key.",e,t),t;if(Array.isArray(a)){if(a.length<3)return this.warn("Missing required plurals",e,t),t;var s=Number(null===n||void 0===n?void 0:n.count);if(Number.isNaN(s))return this.warn("Missing params.count for key.",e,t),t;o=a[this.getLanguagePluralizer(this.lang)(s,mo)]||a[mo.Many],void 0===a[mo.None]&&this.warn("Missing key for 0",e,t)}else o=a;return n&&(o=function(e,t){for(var n,i="",r=bo.lastIndex=0;n=bo.exec(e);){r!==n.index&&(i+=e.slice(r,n.index)),r=bo.lastIndex;var o=n,a=(0,ne.Z)(o,2),s=a[0],u=a[1];Object.prototype.hasOwnProperty.call(t,u)?i+=t[u]:i+=s}return r<e.length&&(i+=e.slice(r)),i}(o,n)),o}},{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||wo}}]),e}();!function(e){e.Ru="ru",e.En="en"}(ko||(ko={}));var xo,Lo=[],Eo={lang:ko.En},Do=new So;function No(e,t){return Object.entries(e).forEach((function(e){var n=(0,ne.Z)(e,2),i=n[0],r=n[1];return Do.registerKeyset(i,t,r)})),Do.keyset(t)}Do.setLang(Eo.lang),xo=function(e){Do.setLang(e.lang)},Lo.push(xo);var Mo=No({en:JSON.parse('{"label_close-button":"Close"}'),ru:JSON.parse('{"label_close-button":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c"}')},"Toaster"),To=(0,ft.Ge)("toast"),Io={info:co.Z,success:ho.Z,warning:fo.Z,error:fo.Z,utility:po.Z};var Oo=e.forwardRef((function(t,n){var i=t.name,r=t.content,o=t.actions,a=t.title,s=t.className,u=t.type,l=t.renderIcon,c=t.autoHiding,d=void 0===c?5e3:c,h=t.isClosable,f=void 0===h||h,p=t.mobile,g=void 0!==p&&p,v=t.removeCallback,m=e.useCallback((function(){return v(i)}),[v,i]),_=vo({onClose:m,timeout:"number"===typeof d?d:void 0}),y=(0,wt.Z)({mobile:g},u||"default",!0),b=Boolean(a),w=Boolean(r),C=l?l(t):function(t){var n=t.type;return n?e.createElement(yo.J,{data:Io[n],size:20,className:To("icon",(0,wt.Z)({},n,!0))}):null}({type:u});return e.createElement("div",Object.assign({ref:n,className:To(y,s)},_,{"data-toast":!0}),C&&e.createElement("div",{className:To("icon-container")},C),e.createElement("div",{className:To("container")},b&&e.createElement("h3",{className:To("title")},a),f&&e.createElement(_o.z,{size:"s",view:"flat",className:To("btn-close"),onClick:m,extraProps:{"aria-label":Mo("label_close-button")}},e.createElement(yo.J,{data:go.Z})),w&&e.createElement("div",{className:To("content",{"without-title":!b})},r),function(t){var n=t.actions,i=t.onClose;return n&&n.length?e.createElement("div",{className:To("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(_o.z,{key:"".concat(r,"__").concat(n),className:To("action"),onClick:function(){o(),l&&i()},type:"button",size:"l",view:s,width:"auto"},r)}))):null}({actions:o,onClose:m})))})),Ao=lo((0,ft.Ge)("toast-animation-desktop")),Ro=lo((0,ft.Ge)("toast-animation-mobile"));function Po(t){var n=t.toasts,i=t.mobile,r=t.removeCallback;return e.createElement(qr,{component:null},n.map((function(t){return e.createElement(uo,{key:"".concat(t.name,"_").concat(t.addedAt),nodeRef:t.ref,classNames:i?Ro:Ao,addEndListener:function(e){var n,i;return null===(i=null===(n=t.ref)||void 0===n?void 0:n.current)||void 0===i?void 0:i.addEventListener("animationend",e)},onEnter:function(){return Zo(t)},onExit:function(){return Zo(t)}},e.createElement(Oo,Object.assign({},t,{mobile:i,removeCallback:r})))})))}function Zo(e){var t;(null===(t=e.ref)||void 0===t?void 0:t.current)&&e.ref.current.style.setProperty("--yc-toast-height","".concat(e.ref.current.offsetHeight,"px"))}var Fo=e.createContext({current:null});function jo(n){var i=n.container,r=n.children,o=n.disablePortal,a=function(){var t,n=e.useContext(Fo),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}Fo.displayName="PortalContext";var Ho=(0,ft.Ge)("toaster");function Bo(t){var n=t.children,i=t.className,r=t.mobile,o=e.useRef("undefined"===typeof document?void 0:document.createElement("div"));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=Ho({mobile:r},i))}),[i,r]),e.createElement(jo,{container:o.current},n)}function zo(t){var n=t.className,i=t.mobile,r=t.hasPortal,o=void 0===r||r,a=Hr(),s=(0,ne.Z)(a,1)[0],u=function(){var t=e.useContext(Ar);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(Rr),d=e.createElement(Po,{toasts:c,removeCallback:l,mobile:null!==i&&void 0!==i?i:s});return o?e.createElement(Bo,{className:n||"",mobile:null!==i&&void 0!==i?i:s},d):d}Bo.displayName="ToasterPortal",zo.displayName="ToasterComponent";var Wo,Vo=Symbol("Toaster instance key"),Yo=(0,ft.Ge)("toaster"),Uo=function(){function n(e){var t=this;(0,X.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 i=Mr()(e,["className"],""),r=Mr()(e,["mobile"],!1);if(window[Vo]instanceof n){var o=window[Vo];return o.className=i,o.mobile=r,o.setRootNodeClassName(),o}this.className=i,this.mobile=r,this.createRootNode(),this.createReactRoot(),this.render(),window[Vo]=this}return(0,J.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(){Wo&&(this.reactRoot=Wo.createRoot(this.rootNode))}},{key:"render",value:function(){var n=this,i=e.createElement(Zr,{ref:function(e){n.componentAPI=e}},e.createElement(zo,{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){Wo=e}}]),n}(),Ko=new Uo;var qo=function(e){var t=e.name,n=e.title,i=e.type,r=e.content;return Ko.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})},Go=ia("authentication","SET_UNAUTHENTICATED"),$o=ia("authentication","SET_AUTHENTICATED"),Qo=ia("authentication","FETCH_USER"),Xo={isAuthenticated:!0,user:"",error:void 0},Jo=function(e,t){return oa({request:window.api.authenticate(e,t),actions:$o})},ea=function(){return oa({request:window.api.logout(),actions:Go})},ta=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 Go.SUCCESS:return Rt(Rt({},e),{},{isAuthenticated:!1,user:"",error:void 0});case $o.SUCCESS:return Rt(Rt({},e),{},{isAuthenticated:!0,error:void 0});case $o.FAILURE:return Rt(Rt({},e),{},{error:t.error});case Qo.SUCCESS:return Rt(Rt({},e),{},{user:t.data});default:return Rt({},e)}},na=function(e){return e};function ia(e,t){return{REQUEST:"".concat(e,"/").concat(t,"_REQUEST"),SUCCESS:"".concat(e,"/").concat(t,"_SUCCESS"),FAILURE:"".concat(e,"/").concat(t,"_FAILURE")}}var ra=function(e){return e&&"status"in e};function oa(e){var t=e.actions,n=e.request,i=e.dataHandler,r=void 0===i?na:i,o=function(){var e=dn(fn().mark((function e(i,o){var a,s;return fn().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),ra(e.t0)&&401===e.t0.status?i({type:Go.SUCCESS}):ra(e.t0)&&e.t0.status>=500&&e.t0.statusText&&qo({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 aa=ia("heatmap","FETCH_HEATMAP"),sa="heatmap/SET_HEATMAP_OPTIONS",ua={loading:!1,wasLoaded:!1,currentMetric:void 0,sort:!1,heatmap:!1};function la(e){return{type:sa,data:e}}var ca=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ua,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case aa.REQUEST:return Rt(Rt({},e),{},{loading:!0});case aa.SUCCESS:return Rt(Rt(Rt({},e),t.data),{},{loading:!1,wasLoaded:!0,error:void 0});case aa.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1,wasLoaded:!1});case sa:return Rt(Rt({},e),t.data);default:return e}},da=["search"],ha={global:{problemFilter:{stateKey:"settings.problemFilter",initialState:xr.problemFilter}},"/tenant":{sort:{stateKey:"heatmap.sort",initialState:ua.sort,type:"bool"},heatmap:{stateKey:"heatmap.heatmap",initialState:ua.heatmap,type:"bool"},currentMetric:{stateKey:"heatmap.currentMetric",initialState:ua.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"},summaryTab:{stateKey:"tenant.summaryTab"},metricsTab:{stateKey:"tenant.metricsTab"},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 fa(e,t){return on().merge({},e,t.query)}var pa,ga,va,ma="";function _a(e,t,n){var i=(0,an.stateToParams)(e,t,n),r=i.location;if(r.search!==ma){return ma=r.search,/\?\w+/.test(n.search)&&(r=function(e,t){var n=e.search,i=nn(e,da),r=Zt().parse(t.search.slice(1)),o=(0,ln.getMatchingDeclaredPath)(ha,e),a=o&&ha[o];on().each(on().keys(a),(function(e){delete r[e]})),on().each(on().keys(ha.global||{}),(function(e){delete r[e]}));var s=Zt().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 ya(e,t,n){return function(i,r){var o=function(n,i){var r=i.type,o=i.payload;return!o||un.LOCATION_POP!==r&&un.LOCATION_PUSH!==r?n:(o.query=(0,sn.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"}(pa||(pa={})),function(e){e.All="All",e.SmallUptime="SmallUptime"}(va||(va={}));var ba,wa=(ga={},(0,wt.Z)(ga,va.All,"All"),(0,wt.Z)(ga,va.SmallUptime,"Uptime < 1h"),ga),Ca=function(e){return!e.SystemState||e.SystemState===pa.Grey},ka=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)},Sa=function(e){return e===Cr.PROBLEMS},xa=function(e){return e===va.SmallUptime?_i:void 0},La={NodeId:"NodeId",Host:"Host",DC:"DC",Rack:"Rack",Version:"Version",Uptime:"Uptime",Memory:"Memory",CPU:"CPU",LoadAverage:"LoadAverage"},Ea=function(e){return Object.values(La).includes(e)};!function(e){e.v1="v1",e.v2="v2"}(ba||(ba={}));var Da,Na=n(37762),Ma=n(7406),Ta=n(25017),Ia=n.n(Ta),Oa=(n(10135),/{{(.*?)}}/g);function Aa(e,t){return 0===e?t.None:1===e||-1===e?t.One:t.Many}function Ra(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"}(Da||(Da={}));var Pa,Za=function(){function e(t){(0,X.Z)(this,e),this.data={},this.lang=void 0,this.pluralizers={en:Aa,ru:Ra},this.logger=null,this.logger=(null===t||void 0===t?void 0:t.logger)||null}return(0,J.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,wt.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 i=this.getLanguageData(this.lang);if("undefined"===typeof i)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(i).length)return this.warn("Language data is empty."),t;var r=i[e];if(!r)return this.warn("Keyset not found.",e),t;if(0===Object.keys(r).length)return this.warn("Keyset is empty.",e),t;var o,a=r&&r[t];if("undefined"===typeof a)return this.warn("Missing key.",e,t),t;if(Array.isArray(a)){if(a.length<3)return this.warn("Missing required plurals",e,t),t;var s=Number(null===n||void 0===n?void 0:n.count);if(Number.isNaN(s))return this.warn("Missing params.count for key.",e,t),t;o=a[this.getLanguagePluralizer(this.lang)(s,Da)]||a[Da.Many],void 0===a[Da.None]&&this.warn("Missing key for 0",e,t)}else o=a;return n&&(o=function(e,t){for(var n,i="",r=Oa.lastIndex=0;n=Oa.exec(e);){r!==n.index&&(i+=e.slice(r,n.index)),r=Oa.lastIndex;var o=n,a=(0,ne.Z)(o,2),s=a[0],u=a[1];Object.prototype.hasOwnProperty.call(t,u)?i+=t[u]:i+=s}return r<e.length&&(i+=e.slice(r)),i}(o,n)),o}},{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||Aa}}]),e}();!function(e){e.Ru="ru",e.En="en"}(Pa||(Pa={}));var Fa,ja=[],Ha={};!function(e){e.En="en",e.Ru="ru"}(Fa||(Fa={}));var Ba,za=Fa.En,Wa=_r.readUserSettingsValue(Ni,za),Va=new Za;Va.setLang(Wa),Ba={lang:Wa},Object.assign(Ha,Ba),ja.forEach((function(e){e(Ha)})),function(e){Object.assign(Eo,e),Lo.forEach((function(e){e(Eo)}))}({lang:Wa}),Ia().locale(Va.lang);var Ya=Ia(),Ua=JSON.parse('{"b":"B","kb":"KB","mb":"MB","gb":"GB","tb":"TB","perSecond":"/s"}'),Ka=JSON.parse('{"b":"\u0411","kb":"\u041a\u0411","mb":"\u041c\u0411","gb":"\u0413\u0411","tb":"\u0422\u0411","perSecond":"/\u0441"}'),qa="ydb-bytes-parsers";Va.registerKeyset(Fa.En,qa,Ua),Va.registerKeyset(Fa.Ru,qa,Ka);var Ga=Va.keyset(qa),$a=["value","size","withSpeedLabel","withSizeLabel","significantDigits"],Qa={b:{value:1,label:Ga("b")},kb:{value:1e3,label:Ga("kb")},mb:{value:1e6,label:Ga("mb")},gb:{value:mi,label:Ga("gb")},tb:{value:1e12,label:Ga("tb")}},Xa=function(e,t){var n=Math.pow(10,t),i=Qa.tb.value*n,r=Qa.gb.value*n,o=Qa.mb.value*n,a="b";return e>=Qa.kb.value*n&&(a="kb"),e>=o&&(a="mb"),e>=r&&(a="gb"),e>=i&&(a="tb"),a},Ja=function(e,t){return e+" ".concat(Qa[t].label)},es=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=nn(e,$a);if(!pr(t))return"";var c=Number(t),d=null!==n&&void 0!==n?n:Xa(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=ps(Number(t)/Qa[i].value,o);return fs(a)}(Rt({value:c,size:d},l));return r?function(e,t){return Ja(e,t)+Ga("perSecond")}(h,d):a?Ja(h,d):h},ts=JSON.parse('{"format-cpu.cores":["core","cores","cores","cores"]}'),ns=JSON.parse('{"format-cpu.cores":["\u044f\u0434\u0440\u043e","\u044f\u0434\u0440\u0430","\u044f\u0434\u0435\u0440","\u044f\u0434\u0435\u0440"]}'),is="ydb-format-cpu";Va.registerKeyset(Fa.En,is,ts),Va.registerKeyset(Fa.Ru,is,ns);var rs=Va.keyset(is),os=function(e){return pr(e)?Ya(e).format("0 b"):""},as=function(e){var t=os(e);return t?t+"/s":""},ss=function(e){return"".concat(Math.floor(Number(e)/mi)," GB")},us=function(e){return e?Object.values(e).join("-"):""},ls=function(e){var t=Math.floor(e/yi),n=e%yi;return[t&&"".concat(t,"d"),Ya(n).format("00:00:00")].filter(Boolean).join(" ")},cs=function(e){return e&&ls(e/1e3)},ds=function(e,t,n){var i=Xa(Number(e),0),r=!0,o=0;return pr(t)&&(i=Xa(Number(t),0),r=!1,o=1),[es({value:e,withSizeLabel:r,size:n||i,precision:o}),es({value:t,size:n||i})]},hs=function(e,t){return ds(e,t,"gb")},fs=function(e){return pr(e)?Ya(e).format("0,0.[00000]"):""},ps=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=String(e).split("."),i=(0,ne.Z)(n,1)[0];return Number(e)<1&&(i=""),i.length>=t?Math.round(Number(e)):Number(Number(e).toFixed(t-i.length))},gs=function(e){var t=Number(e)/1e6;return ps(t,3)},vs=function(e){if(void 0!==e)return Ya(gs(e)).format("0.[000]")},ms=function(e){if(void 0!==e){var t=gs(e),n=Ya(t).format("0.[000]");return"".concat(n," ").concat(rs("format-cpu.cores",{count:t}))}},_s=function(e){var t;if(!pr(e))return"";var n=null===(t=(0,Ma.J)(Number(e)))||void 0===t?void 0:t.format("YYYY-MM-DD HH:mm");return Number(e)>0&&n?n:"N/A"},ys=function(e){var t=(new Date).getTime()-Number(e);return t<=0?0:t/1e3},bs=function(e){return ls(ys(Number(e)))},ws=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}},Cs=function(e,t){var n;return Rt(Rt({},e),{},{TenantName:null!==(n=e.Tenant)&&void 0!==n?n:t,SystemState:null===e||void 0===e?void 0:e.Overall,Uptime:bs(null===e||void 0===e?void 0:e.StartTime)})},ks=function(e){var t=function(e,t){var n=[];if(e)e.forEach((function(e){n.push(Cs(e))}));else if(t){var i,r=(0,Na.Z)(t);try{var o=function(){var e,t=i.value;null===(e=t.Nodes)||void 0===e||e.forEach((function(e){n.push(Cs(e,t.Name))}))};for(r.s();!(i=r.n()).done;)o()}catch(a){r.e(a)}finally{r.f()}}return n}(e.Nodes,e.Tenants);return{Nodes:t,TotalNodes:Number(e.TotalNodes)||t.length,FoundNodes:Number(e.FoundNodes)}},Ss=function(e){var t=(e.Nodes||[]).map((function(e){var t,n,i,r,o,a=Number(null===(t=e.SystemState.SharedCacheStats)||void 0===t?void 0:t.LimitBytes)||void 0;return Rt(Rt({},e.SystemState),{},{Tablets:e.Tablets,NodeId:e.NodeId,Uptime:bs(null===(n=e.SystemState)||void 0===n?void 0:n.StartTime),TenantName:null===(i=e.SystemState)||void 0===i||null===(r=i.Tenants)||void 0===r?void 0:r[0],SharedCacheUsed:null===(o=e.SystemState.SharedCacheStats)||void 0===o?void 0:o.UsedBytes,SharedCacheLimit:a})}));return{Nodes:t,TotalNodes:Number(e.TotalNodes)||t.length,FoundNodes:Number(e.FoundNodes)}},xs=ws(60,80,["success","warning","danger"]),Ls=["type","storage"],Es=["version"],Ds=ia("nodes","FETCH_NODES"),Ns="nodes/RESET_NODES_STATE",Ms="nodes/SET_NODES_UPTIME_FILTER",Ts="nodes/SET_DATA_WAS_NOT_LOADED",Is="nodes/SET_SEARCH_VALUE",Os="nodes/SET_SORT",As={loading:!1,wasLoaded:!1,nodesUptimeFilter:va.All,searchValue:""},Rs="getNodes";var Ps=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:As,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Ds.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Ds.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 Ds.FAILURE:var r;return null!==(r=t.error)&&void 0!==r&&r.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});case Ns:return Rt(Rt({},e),{},{loading:As.loading,wasLoaded:As.wasLoaded,nodesUptimeFilter:As.nodesUptimeFilter,searchValue:As.searchValue});case Ms:return Rt(Rt({},e),{},{nodesUptimeFilter:t.data});case Is:return Rt(Rt({},e),{},{searchValue:t.data});case Os:return Rt(Rt({},e),{},{sortValue:t.data.sortValue,sortOrder:t.data.sortOrder});case Ts:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},Zs=["type","sortOrder","sortValue","limit"],Fs=ia("topNodesByLoad","FETCH_TOP_NODES_BY_LOAD"),js="topNodesByLoad/SET_DATA_WAS_NOT_LOADED",Hs={loading:!1,wasLoaded:!1},Bs="getTopNodesByLoad";var zs=function(e){return e.topNodesByLoad.data},Ws=function(){return{type:js}},Vs=["type","sortOrder","sortValue","limit"],Ys=ia("topNodesByCpu","FETCH_TOP_NODES_BY_CPU"),Us="topNodesByCpu/SET_DATA_WAS_NOT_LOADED",Ks={loading:!1,wasLoaded:!1},qs="getTopNodeByCpu";var Gs=function(e){return e.topNodesByCpu.data},$s=function(){return{type:Us}},Qs=["type","sortOrder","sortValue","limit"],Xs=ia("topNodesByMemory","FETCH_TOP_NODES_BY_MEMORY"),Js="topNodesByMemory/SET_DATA_WAS_NOT_LOADED",eu={loading:!1,wasLoaded:!1},tu="getTopNodeByMemory";var nu=function(e){return e.topNodesByMemory.data},iu=function(){return{type:Js}};function ru(){ru=function(e,t){return new n(e,void 0,t)};var e=RegExp.prototype,t=new WeakMap;function n(e,i,r){var o=new RegExp(e,i);return t.set(o,r||t.get(e)),(0,ie.Z)(o,n.prototype)}function i(e,n){var i=t.get(n);return Object.keys(i).reduce((function(t,n){var r=i[n];if("number"==typeof r)t[n]=e[r];else{for(var o=0;void 0===e[r[o]]&&o+1<r.length;)o++;t[n]=e[r[o]]}return t}),Object.create(null))}return(0,ee.Z)(n,RegExp),n.prototype.exec=function(t){var n=e.exec.call(this,t);if(n){n.groups=i(n,this);var r=n.indices;r&&(r.groups=i(r,this))}return n},n.prototype[Symbol.replace]=function(n,r){if("string"==typeof r){var o=t.get(this);return e[Symbol.replace].call(this,n,r.replace(/\$<([^>]+)>/g,(function(e,t){var n=o[t];return"$"+(Array.isArray(n)?n.join("$"):n)})))}if("function"==typeof r){var a=this;return e[Symbol.replace].call(this,n,(function(){var e=arguments;return"object"!=typeof e[e.length-1]&&(e=[].slice.call(e)).push(i(e,a)),r.apply(this,e)}))}return e[Symbol.replace].call(this,n,r)},ru.apply(this,arguments)}var ou=function(e){return"\nSELECT \n PDiskFilter,\n ErasureSpecies,\n CurrentAvailableSize,\n CurrentAllocatedSize,\n CurrentGroupsCreated,\n AvailableGroupsToCreate\n FROM `".concat(e,"/.sys/ds_storage_stats`\n ORDER BY CurrentGroupsCreated DESC;\n")},au=function(e){var t=rr(e).result,n={};return null===t||void 0===t||t.forEach((function(e){var t=e.PDiskFilter,i=e.ErasureSpecies,r=e.CurrentAvailableSize,o=e.CurrentAllocatedSize,a=e.CurrentGroupsCreated,s=e.AvailableGroupsToCreate,u=Number(a)||0,l=u+(Number(s)||0),c=Number(o)||0,d=Number(r)||0,h=t&&"string"===typeof t&&function(e){var t,n,i=ru(/^Type:([A-Za-z]+)/,{type:1}),r=null===(t=e.match(i))||void 0===t||null===(n=t.groups)||void 0===n?void 0:n.type;return"ROT"===r?"HDD":r}(t);if(h&&i&&"string"===typeof i&&u){var f={diskType:h,erasure:i,createdGroups:u,totalGroups:l,allocatedSize:c,availableSize:d};if(n[h])if(n[h][i]){var p=Rt({},n[h][i]);n[h][i]={diskType:h,erasure:i,createdGroups:p.createdGroups+u,totalGroups:p.totalGroups+l,allocatedSize:p.allocatedSize+c,availableSize:p.availableSize+d}}else n[h][i]=f;else n[h]=(0,wt.Z)({},i,f)}})),n},su=ia("cluster","FETCH_CLUSTER"),uu={loading:!0,wasLoaded:!1};function lu(e){function t(){return(t=dn(fn().mark((function t(){var n,i,r,o;return fn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,window.api.getClusterInfo(e);case 2:if(n=t.sent,t.prev=3,i=n.Domain){t.next=7;break}return t.abrupt("return",{clusterData:n});case 7:return r=ou(i),t.next=10,window.api.sendQuery({schema:"modern",query:r,database:i,action:"execute-scan"});case 10:return o=t.sent,t.abrupt("return",{clusterData:n,groupsStats:au(o)});case 14:return t.prev=14,t.t0=t.catch(3),t.abrupt("return",{clusterData:n});case 17:case"end":return t.stop()}}),t,null,[[3,14]])})))).apply(this,arguments)}return oa({request:function(){return t.apply(this,arguments)}(),actions:su})}var cu=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:uu,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case su.REQUEST:return Rt(Rt({},e),{},{loading:!0});case su.SUCCESS:var n=t.data,i=n.clusterData,r=n.groupsStats;return Rt(Rt({},e),{},{data:i,groupsStats:r,loading:!1,wasLoaded:!0,error:void 0});case su.FAILURE:var o;return null!==(o=t.error)&&void 0!==o&&o.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});default:return e}},du=ia("cluster","FETCH_CLUSTER_NODES"),hu={loading:!1,wasLoaded:!1};function fu(){return oa({request:window.api.getClusterNodes(),actions:du,dataHandler:function(e){var t=e.SystemStateInfo;return(void 0===t?[]:t).map((function(e){return Rt(Rt({},e),{},{uptime:bs(e.StartTime)})}))}})}var pu=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:hu,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case du.REQUEST:return Rt(Rt({},e),{},{loading:!0});case du.SUCCESS:var n=t.data,i=void 0===n?[]:n;return Rt(Rt({},e),{},{nodes:i,loading:!1,wasLoaded:!0,error:void 0});case du.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}},gu=ia("tenant","FETCH_TENANT"),vu="tenant/SET_TOP_LEVEL_TAB",mu="tenant/SET_QUERY_TAB",_u="tenant/SET_DIAGNOSTICS_TAB",yu="tenant/SET_SUMMARY_TAB",bu="tenant/SET_METRICS_TAB",wu="tenant/CLEAR_TENANT",Cu="tenant/SET_DATA_WAS_NOT_LOADED",ku={loading:!1,wasLoaded:!1},Su=function(e){var t=e.path;return oa({request:window.api.getTenantInfo({path:t},{concurrentId:"getTenantInfo"}),actions:gu,dataHandler:function(e){var t;return null===(t=e.TenantInfo)||void 0===t?void 0:t[0]}})};function xu(e){return{type:vu,data:e}}function Lu(e){return{type:mu,data:e}}var Eu,Du=function(){return{type:Cu}},Nu=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ku,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case gu.REQUEST:return Rt(Rt({},e),{},{loading:!0});case gu.SUCCESS:return Rt(Rt({},e),{},{tenant:t.data,loading:!1,wasLoaded:!0,error:void 0});case gu.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 wu:return Rt(Rt({},e),{},{tenant:void 0,loading:!0});case vu:return Rt(Rt({},e),{},{tenantPage:t.data});case mu:return Rt(Rt({},e),{},{queryTab:t.data});case _u:return Rt(Rt({},e),{},{diagnosticsTab:t.data});case yu:return Rt(Rt({},e),{},{summaryTab:t.data});case bu:return Rt(Rt({},e),{},{metricsTab:t.data});case Cu:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}};!function(e){e.v1="v1",e.v2="v2"}(Eu||(Eu={}));var Mu,Tu,Iu={all:"all",missing:"missing",space:"space"},Ou="groups",Au="nodes";!function(e){e.Initial="Initial",e.LocalRecoveryError="LocalRecoveryError",e.SyncGuidRecovery="SyncGuidRecovery",e.SyncGuidRecoveryError="SyncGuidRecoveryError",e.OK="OK",e.PDiskError="PDiskError"}(Mu||(Mu={})),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"}(Tu||(Tu={}));var Ru;!function(e){e.HDD="HDD",e.SSD="SSD",e.MVME="NVME"}(Ru||(Ru={}));var Pu,Zu=function(e){if(e.Category){var t=function(e,t){var n={};return Object.entries(t).reduce((function(t,i){var r=(0,ne.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 Ru.SSD;case 2:return Ru.MVME}else if("0"===t.typeExt)return Ru.HDD}},Fu=function(e){return"VDiskId"in e},ju=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=e.Limit?100*e.Used/e.Limit:0;return Math.floor(n/t)*t},Hu={PoolName:"PoolName",Kind:"Kind",Erasure:"Erasure",Degraded:"Degraded",Usage:"Usage",GroupId:"GroupId",Used:"Used",Limit:"Limit",Read:"Read",Write:"Write"},Bu=(Pu={},(0,wt.Z)(Pu,pa.Green,1),(0,wt.Z)(Pu,pa.Yellow,100),(0,wt.Z)(Pu,pa.Orange,1e4),(0,wt.Z)(Pu,pa.Red,1e6),Pu),zu=function(e,t){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})}))})},Wu=function(e){var t=e.VDisks,n=void 0===t?[]:t,i=e.PoolName,r=e.Usage,o=void 0===r?0:r,a=e.Read,s=void 0===a?0:a,u=e.Write,l=void 0===u?0:u,c=e.Used,d=void 0===c?0:c,h=e.Limit,f=void 0===h?0:h,p=e.Degraded,g=void 0===p?0:p,v=e.Kind,m=n.reduce((function(e,t){var n=t.DiskSpace;return n&&n!==pa.Grey?e+Bu[n]:e}),0),_=n.map((function(e){return zu(e,i)})),y=Math.floor(100*Number(o));return Rt(Rt({},e),{},{UsedSpaceFlag:m,PoolName:i,Kind:v,VDisks:_,Usage:y,Read:Number(s),Write:Number(l),Used:Number(d),Limit:Number(f),Degraded:Number(g)})},Vu=function(e,t){var n=[];return e?n=e.map(Wu):null===t||void 0===t||t.forEach((function(e){var t;null===(t=e.Groups)||void 0===t||t.forEach((function(t){n.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,Na.Z)(e.VDisks);try{for(d.s();!(c=d.n()).done;){var h=c.value,f=h.Replicated,p=h.VDiskState,g=h.AvailableSize,v=h.AllocatedSize,m=h.PDisk,_=h.DiskSpace,y=h.ReadThroughput,b=h.WriteThroughput;f&&(null===m||void 0===m?void 0:m.State)===Tu.Normal&&p===Mu.OK||(i+=1),_&&_!==pa.Grey&&(r+=Bu[_]);var w=Number(null!==g&&void 0!==g?g:null===m||void 0===m?void 0:m.AvailableSize)||0,C=Number(v)||0;o+=C,a+=w+C,s+=Number(y)||0,u+=Number(b)||0;var k=Zu(m||{});l=!k||k!==l&&""!==l?"Mixed":k}}catch(L){d.e(L)}finally{d.f()}}var S=null===(n=e.VDisks)||void 0===n?void 0:n.map((function(e){return zu(e,t)})),x=ju({Used:o,Limit:a},5);return Rt(Rt({},e),{},{VDisks:S,Usage:x,Read:s,Write:u,PoolName:t,Used:o,Limit:a,Degraded:i,UsedSpaceFlag:r,Kind:l||void 0})}(t,e.Name))}))})),n},Yu=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!==Tu.Normal})).length)||0;return{NodeId:e.NodeId,SystemState:i.SystemState,DataCenter:i.DataCenter,Rack:i.Rack,Host:i.Host,Endpoints:i.Endpoints,Uptime:bs(i.StartTime),StartTime:i.StartTime,PDisks:e.PDisks,VDisks:e.VDisks,Missing:r}},Uu=function(e){var t=e.Nodes,n=e.TotalNodes,i=e.FoundNodes,r=null===t||void 0===t?void 0:t.map(Yu);return{nodes:r,total:Number(n)||(null===r||void 0===r?void 0:r.length),found:Number(i)}},Ku=function(e){var t=e.StoragePools,n=e.StorageGroups,i=e.TotalGroups,r=e.FoundGroups,o=Vu(n,t);return{groups:o,total:Number(i)||o.length,found:Number(r)}},qu=["tenant","visibleEntities"],Gu=["tenant","visibleEntities","nodeId","version"],$u=ia("storage","FETCH_STORAGE"),Qu="storage/SET_INITIAL",Xu="storage/SET_FILTER",Ju="storage/SET_USAGE_FILTER",el="storage/SET_VISIBLE_GROUPS",tl="storage/SET_STORAGE_TYPE",nl="storage/SET_NODES_UPTIME_FILTER",il="storage/SET_DATA_WAS_NOT_LOADED",rl="storage/SET_NODES_SORT_PARAMS",ol="storage/SET_GROUPS_SORT_PARAMS",al={loading:!0,wasLoaded:!1,filter:"",usageFilter:[],visible:Iu.all,nodesUptimeFilter:va.All,type:Ou},sl="getStorageInfo";var ul=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 $u.REQUEST:return Rt(Rt({},e),{},{loading:!0});case $u.SUCCESS:return Rt(Rt({},e),{},{nodes:t.data.nodes,groups:t.data.groups,total:t.data.total,found:t.data.found,loading:!1,wasLoaded:!0,error:void 0});case $u.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 Qu:return Rt({},al);case Xu:return Rt(Rt({},e),{},{filter:t.data});case Ju:return Rt(Rt({},e),{},{usageFilter:t.data});case el:return Rt(Rt({},e),{},{visible:t.data,usageFilter:[],wasLoaded:!1,error:void 0});case nl:return Rt(Rt({},e),{},{nodesUptimeFilter:t.data});case tl:return Rt(Rt({},e),{},{type:t.data,filter:"",usageFilter:[],wasLoaded:!1,error:void 0});case il:return Rt(Rt({},e),{},{wasLoaded:!1});case rl:return Rt(Rt({},e),{},{nodesSortValue:t.data.sortValue,nodesSortOrder:t.data.sortOrder});case ol:return Rt(Rt({},e),{},{groupsSortValue:t.data.sortValue,groupsSortOrder:t.data.sortOrder});default:return e}},ll=function(e){var t=e.StoragePools,n=e.StorageGroups,i=Vu(n,t);return t&&i.sort((function(e,t){return t.Usage-e.Usage})),{groups:i.slice(0,Si)}},cl=["tenant","visibleEntities","nodeId","sortOrder","sortValue","limit","version"],dl=ia("topStorageGroups","FETCH_TOP_STORAGE_GROUPS"),hl="topStorageGroups/SET_DATA_WAS_NOT_LOADED",fl={loading:!0,wasLoaded:!1},pl=function(e){var t=e.tenant,n=e.visibleEntities,i=void 0===n?"all":n,r=e.nodeId,o=e.sortOrder,a=void 0===o?-1:o,s=e.sortValue,u=void 0===s?"Usage":s,l=e.limit,c=void 0===l?Si:l,d=e.version,h=void 0===d?Eu.v2:d,f=nn(e,cl);return oa({request:window.api.getStorageInfo(Rt({tenant:t,visibleEntities:i,nodeId:r,version:h,sortOrder:a,sortValue:u,limit:c},f),{concurrentId:"getTopStorageGroups"}),actions:dl,dataHandler:ll})},gl=function(e){return e.topStorageGroups.data},vl=function(){return{type:hl}},ml=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 dl.REQUEST:return Rt(Rt({},e),{},{loading:!0});case dl.SUCCESS:return Rt(Rt({},e),{},{data:t.data.groups,loading:!1,wasLoaded:!0,error:void 0});case dl.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 hl:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},_l=ia("node","FETCH_NODE"),yl=ia("node","FETCH_NODE_STRUCTURE"),bl="node/RESET_NODE",wl={data:{},loading:!0,wasLoaded:!1,nodeStructure:{},loadingStructure:!0,wasLoadedStructure:!1},Cl=function(e){return oa({request:window.api.getNodeInfo(e),actions:_l})},kl=function(e){return oa({request:window.api.getStorageInfo({nodeId:e},{concurrentId:"getNodeStructure"}),actions:yl})};var Sl=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:wl,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case _l.REQUEST:return Rt(Rt({},e),{},{loading:!0});case _l.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case _l.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});case yl.REQUEST:return Rt(Rt({},e),{},{loadingStructure:!0});case yl.SUCCESS:return Rt(Rt({},e),{},{nodeStructure:t.data,loadingStructure:!1,wasLoadedStructure:!0,errorStructure:void 0});case yl.FAILURE:return Rt(Rt({},e),{},{errorStructure:t.error,loadingStructure:!1});case bl:return Rt(Rt({},e),{},{data:{},wasLoaded:!1,nodeStructure:{},wasLoadedStructure:!1});default:return e}},xl=n(34495),Ll=n.n(xl),El=n(18878),Dl=n.n(El),Nl=n(2556),Ml=(0,ht.Z)("info-viewer"),Tl=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,Nl.jsxs)("div",{className:Ml({size:o},a),children:[t&&(0,Nl.jsx)("div",{className:Ml("title"),children:t}),n&&n.length>0?(0,Nl.jsx)("div",{className:Ml("items"),children:n.map((function(e,t){return(0,Nl.jsxs)("div",{className:Ml("row"),children:[(0,Nl.jsxs)("div",{className:Ml("label"),children:[(0,Nl.jsx)("div",{className:Ml("label-text",{multiline:s}),children:e.label}),r&&(0,Nl.jsx)("div",{className:Ml("dots")})]}),(0,Nl.jsx)("div",{className:Ml("value"),children:e.value})]},t)}))}):(0,Nl.jsxs)(Nl.Fragment,{children:["No ",t," data"]})]}):(0,Nl.jsx)(Nl.Fragment,{children:u({title:t,size:o})})};function Il(e,t){var n;return null!==(n=t[e])&&void 0!==n?n:e}function Ol(e,t,n,i){var r=n[e]||i;return r?r(t):t}function Al(e){var t=e.values,n=e.labels,i=e.defaultValueFormatter;return function(e,r){return{label:Il(e,n||{}),value:Ol(e,r,t||{},i)}}}var Rl=function(e,t){return t?Object.entries(t).map((function(t){var n=(0,ne.Z)(t,2),i=n[0],r=n[1];return e(i,r)})).filter((function(e){var t=e.value;return Boolean(t)})):[]},Pl=(0,ht.Z)("ydb-node-endpoints-tooltip-content"),Zl=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,Nl.jsx)(Tl,{className:Pl(null),info:n,dots:!1,size:"s"})},Fl=Al({values:{ChangeTime:function(e){return bs(e)}},labels:{TabletId:"Tablet"},defaultValueFormatter:function(e){return e&&String(e)}}),jl=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=Rl(Fl,{TabletId:r,NodeId:o,State:a,Type:s,ChangeTime:u,Generation:l});return(0,Nl.jsx)(Tl,{className:i,info:c,dots:!1,size:"s"})},Hl=Al({values:{Usage:function(e){return e&&"".concat((100*Number(e)).toFixed(2)," %")}},labels:{Name:"Pool"},defaultValueFormatter:function(e){return e&&String(e)}}),Bl=function(e){var t=e.data,n=void 0===t?{}:t,i=e.className,r=Rl(Hl,n);return(0,Nl.jsx)(Tl,{className:i,info:r,dots:!1,size:"s"})},zl=(0,ht.Z)("node-tootltip"),Wl=function(e){var t=e.data;return t&&(0,Nl.jsx)("div",{className:zl(),children:(0,Nl.jsx)("table",{children:(0,Nl.jsxs)("tbody",{children:[(0,Nl.jsxs)("tr",{children:[(0,Nl.jsx)("td",{className:zl("label"),children:"ID"}),(0,Nl.jsx)("td",{className:zl("value"),children:t.nodeId||"?"})]}),(0,Nl.jsxs)("tr",{children:[(0,Nl.jsx)("td",{className:zl("label"),children:"Rack"}),(0,Nl.jsx)("td",{className:zl("value"),children:t.rack||"?"})]}),t.connected&&t.capacity&&(0,Nl.jsxs)("tr",{children:[(0,Nl.jsx)("td",{className:zl("label"),children:"Net"}),(0,Nl.jsx)("td",{className:zl("value"),children:"".concat(t.connected," / ").concat(t.capacity)})]})]})})})},Vl=(0,ht.Z)("tabletsOverall-tooltip"),Yl=function(e){var t=e.data;return t&&(0,Nl.jsx)("div",{className:Vl(),children:(0,Nl.jsx)("table",{children:(0,Nl.jsx)("tbody",{children:t.map((function(e,t){return(0,Nl.jsxs)("tr",{children:[(0,Nl.jsxs)("td",{className:Vl("label"),children:[e.color,":"]}),(0,Nl.jsx)("td",{className:Vl("value"),children:"".concat(e.value,"/").concat(e.total," (").concat(e.percents.toFixed(2),"%)")})]},t)}))})})})},Ul=(0,ht.Z)("histogram-tooltip"),Kl=function(e){var t=e.data;return t&&(0,Nl.jsx)("div",{className:Ul(),children:(0,Nl.jsx)("table",{children:(0,Nl.jsxs)("tbody",{children:[(0,Nl.jsxs)("tr",{children:[(0,Nl.jsx)("td",{className:Ul("label"),children:"Count"}),(0,Nl.jsx)("td",{className:Ul("value"),children:t.count||"?"})]}),(0,Nl.jsxs)("tr",{children:[(0,Nl.jsx)("td",{className:Ul("label"),children:"From"}),(0,Nl.jsx)("td",{className:Ul("value"),children:t.leftBound||"?"})]}),(0,Nl.jsxs)("tr",{children:[(0,Nl.jsx)("td",{className:Ul("label"),children:"To"}),(0,Nl.jsx)("td",{className:Ul("value"),children:t.rightBound||"?"})]})]})})})},ql=(0,ht.Z)("cell-tooltip"),Gl=(0,ht.Z)("json-tooltip"),$l={pool:function(e){return(0,Nl.jsx)(Bl,{data:e})},tablet:function(e){return(0,Nl.jsx)(jl,{data:e})},node:function(e){return(0,Nl.jsx)(Wl,{data:e})},nodeEndpoints:function(e){return(0,Nl.jsx)(Zl,{data:e})},tabletsOverall:function(e){return(0,Nl.jsx)(Yl,{data:e})},histogram:function(e){return(0,Nl.jsx)(Kl,{data:e})},cell:function(e){return(0,Nl.jsx)("div",{className:ql(),children:e})},json:function(e){return(0,Nl.jsx)("div",{className:Gl(),children:(0,Nl.jsx)(Dl(),{data:e,search:!1,isExpanded:function(){return!0},className:Gl("inspector")})})}},Ql="tooltip/HIDE_TOOLTIP",Xl="tooltip/UPDATE_REF",Jl={toolTipVisible:!1,currentHoveredRef:void 0,data:void 0,templateType:"pool",template:$l.pool},ec=function(){return{type:Ql}},tc=function(e,t,n,i,r){return{type:Xl,node:e,data:t,templateType:n,additionalData:i,positions:r}},nc=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Jl,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Ql:return Rt(Rt({},e),{},{currentHoveredRef:void 0,toolTipVisible:!1});case Xl:return"cell"===t.templateType&&Ll()(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:$l[t.templateType]});default:return e}},ic=ia("tablets","FETCH_TABLETS"),rc="tablets/CLEAR_WAS_LOADING_TABLETS",oc="tablets/SET_STATE_FILTER",ac="tablets/SET_TYPE_FILTER",sc={loading:!0,wasLoaded:!1,stateFilter:[],typeFilter:[]};function uc(e){return oa({request:window.api.getTabletsInfo(e),actions:ic})}var lc=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:sc,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case ic.REQUEST:return Rt(Rt({},e),{},{loading:!0});case ic.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case ic.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});case rc:return Rt(Rt({},e),{},{wasLoaded:!1,loading:!0});case oc:return Rt(Rt({},e),{},{stateFilter:t.data});case ac:return Rt(Rt({},e),{},{typeFilter:t.data});default:return e}},cc="NOT_FOUND";var dc=function(e,t){return e===t};function hc(e,t){var n="object"===typeof t?t:{equalityCheck:t},i=n.equalityCheck,r=void 0===i?dc: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:cc},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 cc}return{get:i,put:function(t,r){i(t)===cc&&(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===cc){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 fc(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 pc,gc,vc,mc,_c,yc,bc,wc,Cc,kc,Sc,xc,Lc,Ec,Dc,Nc,Mc,Tc,Ic,Oc,Ac,Rc,Pc,Zc,Fc,jc,Hc,Bc,zc,Wc,Vc,Yc,Uc,Kc,qc,Gc,$c=fc(hc);!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"}(pc||(pc={})),function(e){e.UNKNOWN="UNKNOWN",e.USER="USER",e.GROUP="GROUP"}(gc||(gc={})),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",e.EPathTypeExternalDataSource="EPathTypeExternalDataSource",e.EPathTypeExternalTable="EPathTypeExternalTable"}(vc||(vc={})),function(e){e.EPathSubTypeEmpty="EPathSubTypeEmpty",e.EPathSubTypeSyncIndexImplTable="EPathSubTypeSyncIndexImplTable",e.EPathSubTypeAsyncIndexImplTable="EPathSubTypeAsyncIndexImplTable",e.EPathSubTypeStreamImpl="EPathSubTypeStreamImpl"}(mc||(mc={})),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"}(_c||(_c={})),function(e){e.ColumnCodecPlain="ColumnCodecPlain",e.ColumnCodecLZ4="ColumnCodecLZ4",e.ColumnCodecZSTD="ColumnCodecZSTD"}(yc||(yc={})),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"}(bc||(bc={})),function(e){e.ECdcStreamModeInvalid="ECdcStreamModeInvalid",e.ECdcStreamModeKeysOnly="ECdcStreamModeKeysOnly",e.ECdcStreamModeUpdate="ECdcStreamModeUpdate",e.ECdcStreamModeNewImage="ECdcStreamModeNewImage",e.ECdcStreamModeOldImage="ECdcStreamModeOldImage",e.ECdcStreamModeNewAndOldImages="ECdcStreamModeNewAndOldImages"}(wc||(wc={})),function(e){e.ECdcStreamFormatInvalid="ECdcStreamFormatInvalid",e.ECdcStreamFormatProto="ECdcStreamFormatProto",e.ECdcStreamFormatJson="ECdcStreamFormatJson"}(Cc||(Cc={})),function(e){e.ECdcStreamStateInvalid="ECdcStreamStateInvalid",e.ECdcStreamStateReady="ECdcStreamStateReady",e.ECdcStreamStateDisabled="ECdcStreamStateDisabled"}(kc||(kc={})),function(e){e.HASH_FUNCTION_MODULO_N="HASH_FUNCTION_MODULO_N",e.HASH_FUNCTION_CLOUD_LOGS="HASH_FUNCTION_CLOUD_LOGS"}(Sc||(Sc={})),function(e){e.COLUMN_ENGINE_NONE="COLUMN_ENGINE_NONE",e.COLUMN_ENGINE_REPLACING_TIMESERIES="COLUMN_ENGINE_REPLACING_TIMESERIES"}(xc||(xc={})),function(e){e.METERING_MODE_RESERVED_CAPACITY="METERING_MODE_RESERVED_CAPACITY",e.METERING_MODE_REQUEST_UNITS="METERING_MODE_REQUEST_UNITS"}(Lc||(Lc={})),function(e){e.SysLog="SysLog",e.Log="Log",e.Data="Data",e.External="External"}(Ec||(Ec={})),function(e){e.Unspecified="Unspecified",e.Freeze="Freeze",e.Unfreeze="Unfreeze"}(Dc||(Dc={})),function(e){e.ColumnCacheNone="ColumnCacheNone",e.ColumnCacheOnce="ColumnCacheOnce",e.ColumnCacheEver="ColumnCacheEver"}(Nc||(Nc={})),function(e){e.ColumnStorage1="ColumnStorage1",e.ColumnStorage2="ColumnStorage2",e.ColumnStorage1Ext1="ColumnStorage1Ext1",e.ColumnStorage1Ext2="ColumnStorage1Ext2",e.ColumnStorage2Ext1="ColumnStorage2Ext1",e.ColumnStorage2Ext2="ColumnStorage2Ext2",e.ColumnStorage1Med2Ext2="ColumnStorage1Med2Ext2",e.ColumnStorage2Med2Ext2="ColumnStorage2Med2Ext2",e.ColumnStorageTest_1_2_1k="ColumnStorageTest_1_2_1k"}(Mc||(Mc={})),function(e){e.CompactionStrategyUnset="CompactionStrategyUnset",e.CompactionStrategyGenerational="CompactionStrategyGenerational",e.CompactionStrategySharded="CompactionStrategySharded"}(Tc||(Tc={})),function(e){e.EIndexTypeInvalid="EIndexTypeInvalid",e.EIndexTypeGlobal="EIndexTypeGlobal",e.EIndexTypeGlobalAsync="EIndexTypeGlobalAsync"}(Ic||(Ic={})),function(e){e.EIndexStateInvalid="EIndexStateInvalid",e.EIndexStateReady="EIndexStateReady",e.EIndexStateNotReady="EIndexStateNotReady",e.EIndexStateWriteOnly="EIndexStateWriteOnly"}(Oc||(Oc={})),function(e){e.UnknownTenantType="UnknownTenantType",e.Domain="Domain",e.Dedicated="Dedicated",e.Shared="Shared",e.Serverless="Serverless"}(Ac||(Ac={})),function(e){e.STATE_UNSPECIFIED="STATE_UNSPECIFIED",e.CREATING="CREATING",e.RUNNING="RUNNING",e.REMOVING="REMOVING",e.PENDING_RESOURCES="PENDING_RESOURCES",e.CONFIGURING="CONFIGURING"}(Rc||(Rc={})),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"}(Pc||(Pc={}));var Qc=(Zc={},(0,wt.Z)(Zc,mc.EPathSubTypeSyncIndexImplTable,"index_table"),(0,wt.Z)(Zc,mc.EPathSubTypeAsyncIndexImplTable,"index_table"),(0,wt.Z)(Zc,mc.EPathSubTypeStreamImpl,void 0),(0,wt.Z)(Zc,mc.EPathSubTypeEmpty,void 0),Zc),Xc=(Fc={},(0,wt.Z)(Fc,vc.EPathTypeInvalid,void 0),(0,wt.Z)(Fc,vc.EPathTypeSubDomain,"database"),(0,wt.Z)(Fc,vc.EPathTypeExtSubDomain,"database"),(0,wt.Z)(Fc,vc.EPathTypeDir,"directory"),(0,wt.Z)(Fc,vc.EPathTypeColumnStore,"directory"),(0,wt.Z)(Fc,vc.EPathTypeTable,"table"),(0,wt.Z)(Fc,vc.EPathTypeTableIndex,"index"),(0,wt.Z)(Fc,vc.EPathTypeColumnTable,"column_table"),(0,wt.Z)(Fc,vc.EPathTypeCdcStream,"stream"),(0,wt.Z)(Fc,vc.EPathTypePersQueueGroup,"topic"),(0,wt.Z)(Fc,vc.EPathTypeExternalDataSource,"external_data_source"),(0,wt.Z)(Fc,vc.EPathTypeExternalTable,"external_table"),Fc),Jc=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:vc.EPathTypeDir,t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"directory";return t&&Qc[t]||Xc[e]||n},ed=(jc={},(0,wt.Z)(jc,mc.EPathSubTypeSyncIndexImplTable,"Secondary Index Table"),(0,wt.Z)(jc,mc.EPathSubTypeAsyncIndexImplTable,"Secondary Index Table"),(0,wt.Z)(jc,mc.EPathSubTypeStreamImpl,void 0),(0,wt.Z)(jc,mc.EPathSubTypeEmpty,void 0),jc),td=(Hc={},(0,wt.Z)(Hc,vc.EPathTypeInvalid,void 0),(0,wt.Z)(Hc,vc.EPathTypeSubDomain,"Database"),(0,wt.Z)(Hc,vc.EPathTypeExtSubDomain,"Database"),(0,wt.Z)(Hc,vc.EPathTypeDir,"Directory"),(0,wt.Z)(Hc,vc.EPathTypeTable,"Table"),(0,wt.Z)(Hc,vc.EPathTypeTableIndex,"Secondary Index"),(0,wt.Z)(Hc,vc.EPathTypeColumnStore,"Tablestore"),(0,wt.Z)(Hc,vc.EPathTypeColumnTable,"Columntable"),(0,wt.Z)(Hc,vc.EPathTypeCdcStream,"Changefeed"),(0,wt.Z)(Hc,vc.EPathTypePersQueueGroup,"Topic"),(0,wt.Z)(Hc,vc.EPathTypeExternalDataSource,"External Data Source"),(0,wt.Z)(Hc,vc.EPathTypeExternalTable,"External Table"),Hc),nd=(Bc={},(0,wt.Z)(Bc,Ac.UnknownTenantType,"Database"),(0,wt.Z)(Bc,Ac.Domain,"Cluster Root"),(0,wt.Z)(Bc,Ac.Dedicated,"Dedicated Database"),(0,wt.Z)(Bc,Ac.Shared,"Shared Database"),(0,wt.Z)(Bc,Ac.Serverless,"Serverless Database"),Bc),id=function(e){return e&&nd[e]},rd=(zc={},(0,wt.Z)(zc,vc.EPathTypeTable,!0),(0,wt.Z)(zc,vc.EPathTypeColumnTable,!0),(0,wt.Z)(zc,vc.EPathTypeExternalTable,!0),(0,wt.Z)(zc,vc.EPathTypeInvalid,!1),(0,wt.Z)(zc,vc.EPathTypeDir,!1),(0,wt.Z)(zc,vc.EPathTypeSubDomain,!1),(0,wt.Z)(zc,vc.EPathTypeTableIndex,!1),(0,wt.Z)(zc,vc.EPathTypeExtSubDomain,!1),(0,wt.Z)(zc,vc.EPathTypeColumnStore,!1),(0,wt.Z)(zc,vc.EPathTypeCdcStream,!1),(0,wt.Z)(zc,vc.EPathTypePersQueueGroup,!1),(0,wt.Z)(zc,vc.EPathTypeExternalDataSource,!1),zc),od=function(e){var t;return null!==(t=e&&rd[e])&&void 0!==t&&t},ad=(Wc={},(0,wt.Z)(Wc,mc.EPathSubTypeSyncIndexImplTable,!0),(0,wt.Z)(Wc,mc.EPathSubTypeAsyncIndexImplTable,!0),(0,wt.Z)(Wc,mc.EPathSubTypeStreamImpl,!1),(0,wt.Z)(Wc,mc.EPathSubTypeEmpty,!1),Wc),sd=function(e){var t;return null!==(t=e&&ad[e])&&void 0!==t&&t},ud=(Vc={},(0,wt.Z)(Vc,vc.EPathTypeColumnStore,!0),(0,wt.Z)(Vc,vc.EPathTypeColumnTable,!0),(0,wt.Z)(Vc,vc.EPathTypeInvalid,!1),(0,wt.Z)(Vc,vc.EPathTypeDir,!1),(0,wt.Z)(Vc,vc.EPathTypeTable,!1),(0,wt.Z)(Vc,vc.EPathTypeSubDomain,!1),(0,wt.Z)(Vc,vc.EPathTypeTableIndex,!1),(0,wt.Z)(Vc,vc.EPathTypeExtSubDomain,!1),(0,wt.Z)(Vc,vc.EPathTypeCdcStream,!1),(0,wt.Z)(Vc,vc.EPathTypePersQueueGroup,!1),(0,wt.Z)(Vc,vc.EPathTypeExternalDataSource,!1),(0,wt.Z)(Vc,vc.EPathTypeExternalTable,!1),Vc),ld=function(e){var t;return null!==(t=e&&ud[e])&&void 0!==t&&t},cd=(Yc={},(0,wt.Z)(Yc,vc.EPathTypeSubDomain,!0),(0,wt.Z)(Yc,vc.EPathTypeExtSubDomain,!0),(0,wt.Z)(Yc,vc.EPathTypeInvalid,!1),(0,wt.Z)(Yc,vc.EPathTypeDir,!1),(0,wt.Z)(Yc,vc.EPathTypeColumnStore,!1),(0,wt.Z)(Yc,vc.EPathTypeColumnTable,!1),(0,wt.Z)(Yc,vc.EPathTypeTable,!1),(0,wt.Z)(Yc,vc.EPathTypeTableIndex,!1),(0,wt.Z)(Yc,vc.EPathTypeCdcStream,!1),(0,wt.Z)(Yc,vc.EPathTypePersQueueGroup,!1),(0,wt.Z)(Yc,vc.EPathTypeExternalDataSource,!1),(0,wt.Z)(Yc,vc.EPathTypeExternalTable,!1),Yc),dd=function(e){var t;return null!==(t=e&&cd[e])&&void 0!==t&&t},hd=(Uc={},(0,wt.Z)(Uc,vc.EPathTypeCdcStream,!0),(0,wt.Z)(Uc,vc.EPathTypePersQueueGroup,!1),(0,wt.Z)(Uc,vc.EPathTypeInvalid,!1),(0,wt.Z)(Uc,vc.EPathTypeColumnStore,!1),(0,wt.Z)(Uc,vc.EPathTypeColumnTable,!1),(0,wt.Z)(Uc,vc.EPathTypeDir,!1),(0,wt.Z)(Uc,vc.EPathTypeTable,!1),(0,wt.Z)(Uc,vc.EPathTypeSubDomain,!1),(0,wt.Z)(Uc,vc.EPathTypeTableIndex,!1),(0,wt.Z)(Uc,vc.EPathTypeExtSubDomain,!1),(0,wt.Z)(Uc,vc.EPathTypeExternalDataSource,!1),(0,wt.Z)(Uc,vc.EPathTypeExternalTable,!1),Uc),fd=function(e){var t;return null!==(t=e&&hd[e])&&void 0!==t&&t},pd=(Kc={},(0,wt.Z)(Kc,mc.EPathSubTypeSyncIndexImplTable,!0),(0,wt.Z)(Kc,mc.EPathSubTypeAsyncIndexImplTable,!0),(0,wt.Z)(Kc,mc.EPathSubTypeStreamImpl,!1),(0,wt.Z)(Kc,mc.EPathSubTypeEmpty,!1),Kc),gd=(qc={},(0,wt.Z)(qc,vc.EPathTypeCdcStream,!0),(0,wt.Z)(qc,vc.EPathTypePersQueueGroup,!0),(0,wt.Z)(qc,vc.EPathTypeExternalDataSource,!0),(0,wt.Z)(qc,vc.EPathTypeExternalTable,!0),(0,wt.Z)(qc,vc.EPathTypeInvalid,!1),(0,wt.Z)(qc,vc.EPathTypeColumnStore,!1),(0,wt.Z)(qc,vc.EPathTypeColumnTable,!1),(0,wt.Z)(qc,vc.EPathTypeDir,!1),(0,wt.Z)(qc,vc.EPathTypeTable,!1),(0,wt.Z)(qc,vc.EPathTypeSubDomain,!1),(0,wt.Z)(qc,vc.EPathTypeTableIndex,!1),(0,wt.Z)(qc,vc.EPathTypeExtSubDomain,!1),qc),vd=function(e,t){var n;return null!==(n=t&&pd[t]||e&&gd[e])&&void 0!==n&&n},md=(Gc={},(0,wt.Z)(Gc,vc.EPathTypeCdcStream,!0),(0,wt.Z)(Gc,vc.EPathTypePersQueueGroup,!0),(0,wt.Z)(Gc,vc.EPathTypeInvalid,!1),(0,wt.Z)(Gc,vc.EPathTypeColumnStore,!1),(0,wt.Z)(Gc,vc.EPathTypeColumnTable,!1),(0,wt.Z)(Gc,vc.EPathTypeDir,!1),(0,wt.Z)(Gc,vc.EPathTypeTable,!1),(0,wt.Z)(Gc,vc.EPathTypeSubDomain,!1),(0,wt.Z)(Gc,vc.EPathTypeTableIndex,!1),(0,wt.Z)(Gc,vc.EPathTypeExtSubDomain,!1),(0,wt.Z)(Gc,vc.EPathTypeExternalDataSource,!1),(0,wt.Z)(Gc,vc.EPathTypeExternalTable,!1),Gc),_d=function(e){var t;return null!==(t=e&&md[e])&&void 0!==t&&t},yd=function(e){return e===vc.EPathTypeExternalTable},bd=ia("schema","FETCH_SCHEMA"),wd="schema/PRELOAD_SCHEMAS",Cd="schema/SET_SCHEMA",kd="schema/SET_SHOW_PREVIEW",Sd="schema/ENABLE_AUTOREFRESH",xd="schema/DISABLE_AUTOREFRESH",Ld="schema/RESET_LOADING_STATE",Ed={loading:!0,wasLoaded:!1,data:{},currentSchemaPath:void 0,autorefresh:!1,showPreview:!1};function Dd(e){var t=e.path;return oa({request:window.api.getSchema({path:t}),actions:bd,dataHandler:function(e){var t={};return e.Path&&(t[e.Path]=e),{path:e.Path,currentSchema:e,data:t}}})}function Nd(){return{type:xd}}function Md(e){return{type:kd,data:e}}var Td=$c([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 fd(t)?null===n||void 0===n?void 0:n.map((function(t){var n=t.Name;return e+"/"+n})):void 0})),Id=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 bd.REQUEST:return Rt(Rt({},e),{},{loading:!0});case bd.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 bd.FAILURE:var r;return null!==(r=t.error)&&void 0!==r&&r.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});case wd:return Rt(Rt({},e),{},{data:Rt(Rt({},t.data),e.data)});case Cd:return Rt(Rt({},e),{},{currentSchemaPath:t.data});case Sd:return Rt(Rt({},e),{},{autorefresh:!0});case xd:return Rt(Rt({},e),{},{autorefresh:!1});case kd:return Rt(Rt({},e),{},{showPreview:t.data});case Ld:return Rt(Rt({},e),{},{wasLoaded:Ed.wasLoaded});default:return e}},Od=n(84506),Ad=ia("overview","FETCH_OVERVIEW"),Rd="overview/SET_CURRENT_OVERVIEW_PATH",Pd="overview/SET_DATA_WAS_NOT_LOADED",Zd={loading:!0,wasLoaded:!1};var Fd=function(e){return{type:Rd,data:e}},jd=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Zd,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Ad.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Ad.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 Ad.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});case Rd:return Rt(Rt({},e),{},{currentOverviewPath:t.data});case Pd:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},Hd=ia("host","FETCH_HOST"),Bd={loading:!0,wasLoaded:!1,data:{}};var zd=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Bd,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;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 Hd.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});default:return e}},Wd=ia("network","FETCH_ALL_NODES_NETWORK"),Vd="network/SET_DATA_WAS_NOT_LOADED",Yd={loading:!1,wasLoaded:!1},Ud=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 Wd.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Wd.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case Wd.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});case Vd:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},Kd=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)/_i):0,perDay:e&&e.per_day?Math.round(Number(e.per_day)/yi):0}},qd="Unspecified",Gd="Good",$d="Warning",Qd="Danger",Xd=function(e){var t,n,i=e||{},r=i.CoresUsed,o=i.MemoryUsed,a=i.StorageAllocatedSize,s=i.MemoryLimit,u=i.StorageAllocatedLimit,l=i.PoolStats,c=i.Metrics,d=void 0===c?{}:c,h=i.DatabaseQuotas,f=void 0===h?{}:h,p=null===l||void 0===l||null===(t=l.find((function(e){return"System"===e.Name})))||void 0===t?void 0:t.Usage,g=null===l||void 0===l||null===(n=l.find((function(e){return"User"===e.Name})))||void 0===n?void 0:n.Usage;return{cpu:pr(r)?1e6*Number(r):void 0,memory:pr(o)?Number(o):void 0,blobStorage:pr(a)?Number(a):void 0,tableStorage:pr(d.Storage)?Number(d.Storage):void 0,cpuUsage:pr(p)||pr(g)?100*Math.max(Number(p),Number(g)):void 0,memoryLimit:pr(s)?Number(s):void 0,blobStorageLimit:pr(u)?Number(u):void 0,tableStorageLimit:pr(f.data_size_hard_quota)?Number(f.data_size_hard_quota):void 0}},Jd=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,i=null===(t=e.Name)||void 0===t?void 0:t.split("/"),r=null!==i&&void 0!==i&&i.length?i[i.length-1]:"\u2014",o=null===(n=e.ControlPlane)||void 0===n?void 0:n.name;return null!==o&&void 0!==o?o:r}(n),s=Xd(n),u=s.cpu,l=s.memory,c=s.blobStorage,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:pr(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})}))},eh=function(e,t){if(e&&t)return 100*e/t},th=function(e){if(e)return"".concat(e.toFixed(),"%")},nh=function(e){return e?e>70?Qd:e>60?$d:Gd:qd},ih=function(e){return e?e>85?Qd:e>75?$d:Gd:qd},rh=function(e){return e?e>70?Qd:e>60?$d:Gd:qd},oh=function(e){var t=e.cpu,n=e.storage,i=e.memory;return{cpu:ms(t),storage:es({value:n,significantDigits:2})||void 0,memory:es({value:i,significantDigits:2})||void 0}},ah=function(e){return e>=100?100:e<=0?0:e},sh=ia("tenants","FETCH_TENANTS"),uh="tenants/SET_SEARCH_VALUE",lh={loading:!0,wasLoaded:!1,searchValue:"",tenants:[]};var ch=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:lh,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case sh.REQUEST:return Rt(Rt({},e),{},{loading:!0});case sh.SUCCESS:return Rt(Rt({},e),{},{tenants:t.data,loading:!1,wasLoaded:!0,error:void 0});case sh.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});case uh:return Rt(Rt({},e),{},{searchValue:t.data});default:return e}},dh=ia("TABLET","FETCH_TABLET"),hh=ia("TABLET","FETCH_TABLET_DESCRIBE"),fh="tablet/CLEAR_TABLET_DATA",ph={loading:!1,tenantPath:void 0},gh=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ph,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case dh.REQUEST:return Rt(Rt({},e),{},{loading:!0});case dh.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 dh.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});case hh.SUCCESS:var a=t.data.tenantPath;return Rt(Rt({},e),{},{tenantPath:a,error:void 0});case fh:return Rt(Rt({},e),{},{id:void 0,tenantPath:void 0,data:void 0,history:void 0});default:return e}},vh=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"}'),mh=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"}'),_h="ydb-time-parsers";Va.registerKeyset(Fa.En,_h,vh),Va.registerKeyset(Fa.Ru,_h,mh);var yh=Va.keyset(_h),bh=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/yi);i%=yi;var o=Math.floor(i/_i);i%=_i;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 yh("daysHours",u);if(o>0)return yh("hoursMin",u);if(a>0)return yh("minSec",u);if(s>0)return yh("secMs",u)}if(1===t){if(r>0)return yh("days",u);if(o>0)return yh("hours",u);if(a>0)return yh("min",u);if(s>0)return yh("sec",u)}return yh("ms",u)},wh=function(e){return(e.seconds?1e3*Number(e.seconds):0)+(e.nanos?e.nanos/1e6:0)},Ch=function(e){return e?function(e){return"string"===typeof e?1e3*parseInt(e,10):wh(e)}(e):0},kh=function(e){if(!e)return 0;var t=Date.now()-function(e){return"string"===typeof e?Date.parse(e):wh(e)}(e);return t<0?0:t},Sh=ia("topic","FETCH_TOPIC"),xh="topic/SET_DATA_WAS_NOT_LOADED",Lh="topic/CLEAN_TOPIC_DATA",Eh={loading:!0,wasLoaded:!1,data:void 0},Dh=function(){return{type:xh}};function Nh(e){return oa({request:window.api.getTopic({path:e}),actions:Sh})}var Mh=function(e){var t;return null===(t=e.topic.data)||void 0===t?void 0:t.consumers},Th=$c([Mh],(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}))})),Ih=$c([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:kh(r),partitionsWriteLag:Ch(o),writeSpeed:Kd(a)}}})),Oh=$c([Mh],(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:Kd(s),writeLag:Ch(a),readLag:Ch(o),readIdleTime:kh(r)}}))})),Ah=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Eh,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Sh.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Sh.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 Sh.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});case xh:return Rt(Rt({},e),{},{wasLoaded:!1});case Lh:return Rt(Rt({},e),{},{data:void 0});default:return e}},Rh=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:Kd(s),partitionWriteLag:Ch(a),partitionWriteIdleTime:kh(o),startOffset:h,endOffset:p,partitionNodeId:l}},Ph=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},Rh(i))}))},Zh=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=Rh(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,g=s.max_write_time_lag,v=s.bytes_read,m=s.reader_name,_=s.connection_node_id,y=void 0===_?0:_,b=pr(a)&&pr(d)?Number(a)-Number(d):0,w=pr(a)&&pr(l)?Number(a)-Number(l):0;return Rt(Rt({},o),{},{partitionId:n,readSpeed:Kd(v),consumerWriteLag:Ch(g),consumerReadLag:Ch(p),consumerReadIdleTime:kh(f),uncommitedMessages:b,unreadMessages:w,commitedOffset:d,readSessionId:h,readerName:m,connectionNodeId:y})}))},Fh=ia("partitions","FETCH_PARTITIONS"),jh="partitions/SET_SELECTED_CONSUMER",Hh="partitions/SET_DATA_WAS_NOT_LOADED",Bh={loading:!1,wasLoaded:!1,selectedConsumer:""},zh=function(e){return{type:jh,data:e}};var Wh=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Bh,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Fh.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Fh.SUCCESS:return Rt(Rt({},e),{},{partitions:t.data,loading:!1,wasLoaded:!0,error:void 0});case Fh.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});case jh:return Rt(Rt({},e),{},{selectedConsumer:t.data});case Hh:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},Vh=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"},Yh=20,Uh=ia("query","SEND_QUERY"),Kh="query/CHANGE_USER_INPUT",qh="query/SAVE_QUERY_TO_HISTORY",Gh="query/GO_TO_PREVIOUS_QUERY",$h="query/GO_TO_NEXT_QUERY",Qh="query/SET_MONACO_HOT_KEY",Xh="query/SET_TENANT_PATH",Jh=_r.readUserSettingsValue(Ai,[]),ef=Jh.length-Yh,tf={sendQuery:"sendQuery",goPrev:"goPrev",goNext:"goNext"},nf={loading:!1,input:"",history:{queries:Jh.slice(ef<0?0:ef),currentIndex:Jh.length>Yh?Yh-1:Jh.length-1},monacoHotKey:null},rf=function(e){var t=e.input;return{type:Kh,data:{input:t}}},of=function(e){return e.executeQuery.history.queries.map((function(e){return"string"===typeof e?{queryText:e}:e}))},af=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:nf,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Uh.REQUEST:return Rt(Rt({},e),{},{loading:!0,data:void 0,error:void 0});case Uh.SUCCESS:return Rt(Rt({},e),{},{data:t.data,stats:t.data.stats,loading:!1,error:void 0});case Uh.FAILURE:return Rt(Rt({},e),{},{error:Vh(t.error),loading:!1});case Kh:return Rt(Rt({},e),{},{input:t.data.input});case qh:var n=t.data.queryText,i=t.data.mode===Ji.pg?tr.pg:void 0,r=[].concat((0,Ct.Z)(e.history.queries),[{queryText:n,syntax:i}]).slice(e.history.queries.length>=Yh?1:0);_r.setUserSettingsValue(Ai,r);var o=r.length-1;return Rt(Rt({},e),{},{history:{queries:r,currentIndex:o}});case Gh:var a=Math.max(0,e.history.currentIndex-1);return Rt(Rt({},e),{},{history:Rt(Rt({},e.history),{},{currentIndex:a})});case $h:var s=e.history.queries.length-1,u=Math.min(s,e.history.currentIndex+1);return Rt(Rt({},e),{},{history:Rt(Rt({},e.history),{},{currentIndex:u})});case Qh:return Rt(Rt({},e),{},{monacoHotKey:t.data});case Xh:return Rt(Rt({},e),{},{tenantPath:t.data});default:return e}},sf=new Set(["PlanNodeId","PlanNodeType","Node Type","Plans"]);function uf(e){var t=[];if(e.Operators){var n,i=[],r=(0,Na.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,ne.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,ne.Z)(g[p],2),m=v[0],_=v[1];sf.has(m)||f.push({name:m,value:String(_)})}f.length>0&&t.push({group:"Attributes",stats:f})}return t}function lf(e){switch(e.PlanNodeType){case"Connection":return"connection";case"ResultSet":return"result";case"Query":return"query";default:return"stage"}}var cf=ia("query","GET_EXPLAIN_QUERY"),df=ia("query","GET_EXPLAIN_QUERY_AST"),hf={loading:!1},ff={v2:"0.2"},pf=Object.values(ff),gf=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:hf,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case cf.REQUEST:return Rt(Rt({},e),{},{loading:!0,data:void 0,error:void 0,dataAst:void 0,errorAst:void 0});case cf.SUCCESS:return Rt(Rt({},e),{},{data:t.data.plan,dataAst:t.data.ast,loading:!1,error:void 0});case cf.FAILURE:return Rt(Rt({},e),{},{error:Vh(t.error),loading:!1});case df.REQUEST:return Rt(Rt({},e),{},{loadingAst:!0,dataAst:void 0,errorAst:void 0});case df.SUCCESS:return Rt(Rt({},e),{},{dataAst:t.data.ast,loadingAst:!1,error:void 0});case df.FAILURE:return Rt(Rt({},e),{},{errorAst:Vh(t.error),loadingAst:!1});default:return e}},vf=ia("tabletsFilters","FETCH_TABLETS_FILTERS"),mf={data:void 0,loading:!0,wasLoaded:!1,stateFilter:[],typeFilter:[]};var _f=function(e){var t=e.tabletsFilters.tabletsData;return(null===t||void 0===t?void 0:t.TabletStateInfo)||[]},yf=$c([_f,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})),bf=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:mf,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case vf.REQUEST:return Rt(Rt({},e),{},{loading:!0,requestTime:(new Date).getTime()});case vf.SUCCESS:var n=(new Date).getTime()-e.requestTime,i=(0,ne.Z)(t.data,2),r=i[0],o=i[1];return Rt(Rt({},e),{},{tabletsData:r,nodes:o,loading:!1,wasLoaded:!0,timeoutForRequest:n>vi?n:vi,error:void 0});case vf.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({},mf),{},{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}},wf=ia("preview","SEND_QUERY"),Cf="preview/SET_QUERY_OPTIONS",kf={loading:!1,wasLoaded:!1};var Sf=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:kf,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case wf.REQUEST:return Rt(Rt({},e),{},{loading:!0,error:void 0});case wf.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case wf.FAILURE:return Rt(Rt({},e),{},{error:t.error||"Unauthorized",loading:!1});case Cf:return Rt(Rt({},e),t.data);default:return e}},xf=ia("nodesList","FETCH_NODES_LIST"),Lf={loading:!0,wasLoaded:!1,data:[]};function Ef(){return oa({request:window.api.getNodesList(),actions:xf})}var Df=function(e){return ka(e.nodesList.data)},Nf=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Lf,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case xf.REQUEST:return Rt(Rt({},e),{},{loading:!0});case xf.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,wasLoaded:!0,error:void 0});case xf.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});default:return e}},Mf=ia("describe","FETCH_DESCRIBE"),Tf="describe/SET_CURRENT_DESCRIBE_PATH",If="describe/SET_DATA_WAS_NOT_LOADED",Of={loading:!1,wasLoaded:!1,data:{},currentDescribe:void 0,currentDescribePath:void 0};var Af=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Of,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Mf.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Mf.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 Mf.FAILURE:var r;return null!==(r=t.error)&&void 0!==r&&r.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});case Tf:return Rt(Rt({},e),{},{currentDescribePath:t.data});case If:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},Rf=ia("schemaAcl","FETCH_SCHEMA_ACL"),Pf="schemaAcl/SET_DATA_WAS_NOT_LOADED",Zf={loading:!1,wasLoaded:!1};var Ff=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Zf,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Rf.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Rf.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 Rf.FAILURE:var a;return null!==(a=t.error)&&void 0!==a&&a.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});case Pf:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},jf=function(e){return"(\n SELECT\n MAX(IntervalEnd)\n FROM `".concat(e,"/.sys/top_queries_by_cpu_time_one_hour`\n)")};var Hf=ia("top-queries","FETCH_TOP_QUERIES"),Bf="top-queries/SET_TOP_QUERIES_STATE",zf="top-queries/SET_TOP_QUERIES_FILTERS",Wf={loading:!1,wasLoaded:!1,filters:{}},Vf=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(jf(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 Yf=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Wf,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Hf.REQUEST:return Rt(Rt({},e),{},{loading:!0,error:void 0});case Hf.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case Hf.FAILURE:return Rt(Rt({},e),{},{error:t.error||"Unauthorized",loading:!1});case Bf:return Rt(Rt({},e),t.data);case zf:return Rt(Rt({},e),{},{filters:Rt(Rt({},e.filters),t.filters)});default:return e}},Uf=ia("tenantOverviewTopQueries","FETCH_TOP_QUERIES"),Kf="tenantOverviewTopQueries/SET_DATA_WAS_NOT_LOADED",qf={loading:!1,wasLoaded:!1,filters:{}},Gf=function(e){return"\nSELECT\n CPUTime as CPUTimeUs,\n QueryText,\nFROM `".concat(e,"/.sys/top_queries_by_cpu_time_one_hour`\nORDER BY CPUTimeUs DESC\nLIMIT ").concat(Si,"\n")},$f=function(e){return oa({request:window.api.sendQuery({schema:"modern",query:Gf(e),database:e,action:"execute-scan"},{concurrentId:"executeTopQueries"}),actions:Uf,dataHandler:rr})};var Qf=ia("top-tables","FETCH_TOP_TABLES"),Xf="top-tables/SET_DATA_WAS_NOT_LOADED",Jf={loading:!1,wasLoaded:!1},ep=function(e){return"\nSELECT\n Path, SUM(DataSize) as Size\nFROM `".concat(e,"/.sys/partition_stats`\nGROUP BY Path\n ORDER BY Size DESC\n LIMIT ").concat(Si,"\n")},tp=function(e){return oa({request:window.api.sendQuery({schema:"modern",query:ep(e),database:e,action:"execute-scan"},{concurrentId:"executeTopTables"}),actions:Qf,dataHandler:rr})};var np=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Jf,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Qf.REQUEST:return Rt(Rt({},e),{},{loading:!0,error:void 0});case Qf.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case Qf.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:Rt(Rt({},e),{},{error:t.error||"Unauthorized",loading:!1});case Xf:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},ip=ia("cluster","FETCH_HEALTHCHECK"),rp="healthcheckInfo/SET_DATA_WAS_NOT_LOADED",op={loading:!1,wasLoaded:!1},ap={RED:0,ORANGE:1,YELLOW:2,BLUE:3,GREEN:4},sp=function(e){return e.sort((function(e,t){return(ap[e.status]||0)-(ap[t.status]||0)}))},up=function(e){var t=e.issue,n=e.data;return sp(n.filter((function(e){return t.reason&&-1!==t.reason.indexOf(e.id)})))},lp=function(e){return sp(e.filter((function(t){return!e.find((function(e){return e.reason&&-1!==e.reason.indexOf(t.id)}))})))},cp=function e(t){var n=t.data,i=t.roots;return i?i.map((function(t){var i=e({roots:up({issue:t,data:n}),data:n});return Rt(Rt({},t),{},{reasonsItems:i})})):[]},dp=function(e){var t,n={},i=(0,Na.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;n[r.status]||(n[r.status]=0),n[r.status]++}}catch(o){i.e(o)}finally{i.f()}return Object.entries(n).sort((function(e,t){var n=(0,ne.Z)(e,1)[0],i=(0,ne.Z)(t,1)[0];return(ap[n]||0)-(ap[i]||0)}))},hp=function(e){var t;return null===(t=e.healthcheckInfo.data)||void 0===t?void 0:t.issue_log},fp=$c(hp,(function(){return lp(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])})),pp=$c([hp,fp],(function(){return cp({data:arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],roots:arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]})})),gp=$c(hp,(function(){return dp(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])}));var vp,mp=function(){return{type:rp}},_p=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:op,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case ip.REQUEST:return Rt(Rt({},e),{},{loading:!0});case ip.SUCCESS:var n=t.data;return Rt(Rt({},e),{},{data:n,wasLoaded:!0,loading:!1,error:void 0});case ip.FAILURE:var i;return null!==(i=t.error)&&void 0!==i&&i.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1,wasLoaded:!0,data:void 0});case rp:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}};!function(e){e.Immediate="immediate",e.History="history"}(vp||(vp={}));var yp=ia("query","SEND_SHARD_QUERY"),bp="query/SET_SHARD_STATE",wp="shardsWorkload/SET_SHARD_QUERY_FILTERS",Cp={loading:!1,wasLoaded:!1,filters:{}};function kp(e){var t=e.columnId,n=e.order;return"".concat(t," ").concat(n)}function Sp(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(kp).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 xp(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(kp).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 Lp=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Cp,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case yp.REQUEST:return Rt(Rt({},e),{},{loading:!0,error:void 0});case yp.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case yp.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:Rt(Rt({},e),{},{error:t.error||"Unauthorized",loading:!1});case bp:return Rt(Rt({},e),t.data);case wp:return Rt(Rt({},e),{},{filters:Rt(Rt({},e.filters),t.filters)});default:return e}},Ep=ia("tenantOverviewTopShards","FETCH_TENANT_OVERVIEW_TOP_SHARDS"),Dp="tenantOverviewTopShards/SET_DATA_WAS_NOT_LOADED",Np={loading:!1,wasLoaded:!1};function Mp(e,t){var n=t?"CAST(SUBSTRING(CAST(Path AS String), ".concat(t.length,") AS Utf8) AS Path"):"Path";return"SELECT\n ".concat(n,",\n TabletId,\n CPUCores,\nFROM `.sys/partition_stats`\nWHERE\n Path='").concat(e,"'\n OR Path LIKE '").concat(e,"/%'\nORDER BY CPUCores DESC\nLIMIT ").concat(Si)}var Tp="execute-scan";var Ip=ia("hot_keys","FETCH_HOT_KEYS"),Op="hot_keys/SET_HOT_KEYS_OPTIONS",Ap={loading:!0,data:{},wasLoaded:!1};var Rp=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ap,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Ip.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Ip.SUCCESS:return Rt(Rt({},e),{},{data:t.data.hotkeys,loading:!1,error:void 0,wasLoaded:!0});case Ip.FAILURE:return Rt(Rt({},e),{},{error:t.error,loading:!1});case Op:return Rt(Rt({},e),t.data);default:return e}},Pp=ia("query","SEND_OLAP_STATS_QUERY"),Zp="olapStats/RESET_LOADING_STATE",Fp={loading:!1,wasLoaded:!1};function jp(e){return"SELECT * FROM `".concat(e,"/.sys/primary_index_stats`")}var Hp=function(e){var t=e.path,n=void 0===t?"":t;return oa({request:window.api.sendQuery({schema:"modern",query:jp(n),database:n,action:"execute-scan"}),actions:Pp,dataHandler:rr})};var Bp=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Fp,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Pp.REQUEST:return Rt(Rt({},e),{},{loading:!0,error:void 0});case Pp.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case Pp.FAILURE:return Rt(Rt({},e),{},{error:t.error||"Unauthorized",loading:!1});case Zp:return Rt(Rt({},e),{},{wasLoaded:Fp.wasLoaded});default:return e}},zp="header/SET_HEADER_BREADCRUMBS",Wp={pageBreadcrumbsOptions:{}};function Vp(e,t){return{type:zp,page:e,options:t}}var Yp=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Wp,t=arguments.length>1?arguments[1]:void 0;return t.type===zp?{page:t.page,pageBreadcrumbsOptions:t.options}:e},Up="SET_QUERY_NAME_TO_EDIT",Kp="CLEAR_QUERY_NAME_TO_EDIT",qp=null;function Gp(e){return{type:Up,data:e}}var $p=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:qp,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Up:return t.data;case Kp:return null;default:return e}},Qp="ENABLE_FULLSCREEN_MODE",Xp="DISABLE_FULLSCREEN_MODE",Jp=!1;function eg(){return{type:Xp}}var tg=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Jp;switch((arguments.length>1?arguments[1]:void 0).type){case Xp:return!1;case Qp:return!0;default:return e}};var ng,ig,rg,og=function(){return!(arguments.length>0&&void 0!==arguments[0])||arguments[0]},ag={singleClusterMode:og,nodes:Ps,topNodesByLoad:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Hs,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Fs.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Fs.SUCCESS:var n;return Rt(Rt({},e),{},{data:null===(n=t.data)||void 0===n?void 0:n.Nodes,loading:!1,wasLoaded:!0,error:void 0});case Fs.FAILURE:var i;return null!==(i=t.error)&&void 0!==i&&i.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});case js:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},topNodesByCpu:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ks,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Ys.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Ys.SUCCESS:var n;return Rt(Rt({},e),{},{data:null===(n=t.data)||void 0===n?void 0:n.Nodes,loading:!1,wasLoaded:!0,error:void 0});case Ys.FAILURE:var i;return null!==(i=t.error)&&void 0!==i&&i.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});case Us:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},topNodesByMemory: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 Xs.REQUEST:return Rt(Rt({},e),{},{loading:!0});case Xs.SUCCESS:var n;return Rt(Rt({},e),{},{data:null===(n=t.data)||void 0===n?void 0:n.Nodes,loading:!1,wasLoaded:!0,error:void 0});case Xs.FAILURE:var i;return null!==(i=t.error)&&void 0!==i&&i.isCancelled?e:Rt(Rt({},e),{},{error:t.error,loading:!1});case Js:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},cluster:cu,clusterNodes:pu,tenant:Nu,storage:ul,topStorageGroups:ml,node:Sl,tooltip:nc,tablets:lc,schema:Id,overview:jd,olapStats:Bp,host:zd,network:Ud,tenants:ch,tablet:gh,topic:Ah,partitions:Wh,executeQuery:af,explainQuery:gf,tabletsFilters:bf,heatmap:ca,settings:Dr,preview:Sf,nodesList:Nf,describe:Af,schemaAcl:Ff,executeTopQueries:Yf,executeTopTables:np,tenantOverviewTopQueries:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:qf,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Uf.REQUEST:return Rt(Rt({},e),{},{loading:!0,error:void 0});case Uf.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case Uf.FAILURE:return Rt(Rt({},e),{},{error:t.error||"Unauthorized",loading:!1});case Kf:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},healthcheckInfo:_p,shardsWorkload:Lp,tenantOverviewTopShards:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Np,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Ep.REQUEST:return Rt(Rt({},e),{},{loading:!0,error:void 0});case Ep.SUCCESS:return Rt(Rt({},e),{},{data:t.data,loading:!1,error:void 0,wasLoaded:!0});case Ep.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:Rt(Rt({},e),{},{error:t.error||"Unauthorized",loading:!1});case Dp:return Rt(Rt({},e),{},{wasLoaded:!1});default:return e}},hotKeys:Rp,authentication:ta,header:Yp,saveQuery:$p,fullscreen:tg},sg=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:Wt.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:Wt.PROBE_UNKNOWN_ACTION()}))throw new Error('Reducer "'+t+"\" returned undefined when probed with a random type. Don't try to handle "+Wt.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=Ut(u,t);throw new Error(h)}r[u]=d,i=i||d!==c}return i?r:e}}(Rt({},ag)),ug=sg,lg=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||qt;function cg(e,t,n){var i=function(e,t){return{locationMiddleware:(0,Jt.zl)(ha,fa,e,t,_a).locationMiddleware,reducersWithLocation:ya(ha,fa,t)}}(t,e),r=i.locationMiddleware,o=i.reducersWithLocation,a=Gt(Xt,r);return lg(a)(Yt)(o,{singleClusterMode:n})}var dg=window.web_version,hg=window.custom_backend,fg=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ug,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=tn(window.location.href,t);ng=n.backend,ig=n.basename,rg=n.clusterName;var i=xe({basename:ig}),r=cg(e,i,t);return(0,Jt.C1)(r,i),{history:i,store:r}},pg="tenant",gg={cluster:"/".concat("cluster","/:activeTab?"),tenant:"/".concat(pg),node:"/".concat("node","/:id/:activeTab?"),tablet:"/".concat("tablet","/:id"),tabletsFilters:"/tabletsFilters",auth:"/auth"},vg=function(e){return Zt().parse(e.search,{ignoreQueryPrefix:!0})},mg=function(e){var t=e,n=/:\d{3,5}/g,i=e.match(n);if(i){var r=i[0];t=e.replace(n,":\\"+r.slice(1))}return t};function _g(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n,r=Boolean(n.backend);ng&&!r&&dg&&(i=Rt(Rt({},n),{},{backend:ng}));var o=Boolean(n.clusterName);rg&&!o&&dg&&(i=Rt(Rt({},i),{},{clusterName:rg}));var a=Ht()(i)?"":"?".concat(Zt().stringify(i,{encode:!1})),s=mg(e);return"".concat((0,Ft.compile)(s)(t)).concat(a)}var yg=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return _g(window.location.pathname,void 0,e)},bg=gg,wg=e.createContext({activeTabId:void 0});wg.displayName="TabsContext";var Cg,kg=n(133);!function(e){e.Pending="pending",e.Success="success",e.Error="error"}(Cg||(Cg={}));var Sg,xg=n(93453),Lg=(0,ft.Ge)("clipboard-icon"),Eg=function(t){return e.createElement("path",{stroke:"currentColor",fill:"transparent",className:Lg("state"),strokeWidth:"1.5",d:t})},Dg=(Sg={},(0,wt.Z)(Sg,Cg.Success,Eg("M9.5 13l3 3l5 -5")),(0,wt.Z)(Sg,Cg.Error,Eg("M9.5 10l8 8m-8 0l8 -8")),Sg);function Ng(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:Lg(null,r)},xg.i),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===Cg.Pending?null:Dg[i])}var Mg=n(17972),Tg=n.n(Mg),Ig=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var e;return(0,X.Z)(this,i),(e=n.apply(this,arguments)).state={status:i.INITIAL_STATUS},e.handleCopy=function(t,n){var r=e.props,o=r.timeout,a=r.onCopy;e.setState({status:n?Cg.Success:Cg.Error}),clearTimeout(e.timerId),e.timerId=window.setTimeout((function(){e.setState({status:i.INITIAL_STATUS}),e.timerId=void 0}),o),null===a||void 0===a||a(t,n)},e}return(0,J.Z)(i,[{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(Tg(),{text:String(i),onCopy:this.handleCopy,options:r},o)}}]),i}(e.Component);Ig.INITIAL_STATUS=Cg.Pending;var Og=(0,ft.Ge)("label"),Ag={xs:{copyIconSize:12,closeIconSize:12,buttonSize:"xs"},s:{copyIconSize:14,closeIconSize:14,buttonSize:"s"},m:{copyIconSize:16,closeIconSize:16,buttonSize:"m"}},Rg={pin:"brick-round",className:Og("addon",{side:"right",interactive:!0})},Pg=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.icon,c=t.children,d=t.onClose,h=t.className,f=t.disabled,p=t.copyText,g=t.closeButtonLabel,v=t.copyButtonLabel,m=t.interactive,_=void 0!==m&&m,y=t.value,b=t.onCopy,w=t.onClick,C=t.qa,k=e.useRef(null),S=Boolean(""!==c&&e.Children.count(c)>0),x="close"===r&&S,L="copy"===r&&S,E=Boolean(w),D=Boolean(L&&p),N=(E||D||_)&&!f,M=Ag[u],T=M.copyIconSize,I=M.closeIconSize,O=M.buttonSize,A=l&&e.createElement("div",{className:Og("addon",{side:S?"left":void 0})},l),R=S&&e.createElement("div",{className:Og("text")},e.createElement("div",{className:Og("content")},c),Boolean(y)&&e.createElement("div",{className:Og("value")},e.createElement("div",{className:Og("separator")},":"),e.createElement("div",{className:Og("key")},y))),P=function(e){E&&e.stopPropagation(),d&&d(e)},Z=function(e){var t;(null===(t=k.current)||void 0===t?void 0:t.contains(e.target))||null===w||void 0===w||w(e)},F=(0,kg.b)(Z).onKeyDown,j=function(t){var i;return L?i=e.createElement(_o.z,Object.assign({ref:k,size:O,extraProps:{"aria-label":v||void 0}},Rg),e.createElement(_o.z.Icon,null,e.createElement(Ng,{status:t||Cg.Pending,size:T}))):x&&(i=e.createElement(_o.z,Object.assign({ref:k,onClick:d?P:void 0,size:O,extraProps:{"aria-label":g||void 0}},Rg),e.createElement(yo.J,{size:I,data:go.Z}))),e.createElement("div",{ref:n,role:E?"button":void 0,tabIndex:E?0:void 0,onClick:E?Z:void 0,onKeyDown:E?F:void 0,className:Og({theme:a,size:u,type:r,"is-interactive":N,"has-right-addon":Boolean(i),"has-left-addon":Boolean(A),disabled:f},h),"data-qa":C},A,R,i)};return D&&p&&!E?e.createElement(Ig,{text:p,onCopy:b,timeout:1e3},(function(e){return j(e)})):j()})),Zg=(0,ft.Ge)("tabs");function Fg(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,g=e.useContext(wg).activeTabId,v="boolean"===typeof c?c:g===n,m=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":v,"aria-disabled":!0===d,tabIndex:d?-1:0,className:Zg("item",{active:v,disabled:d,overflow:Boolean(h)},i),title:m,onClick:function(){p(n)},onKeyDown:function(e){" "===e.key&&p(n)}}),e.createElement("div",{className:Zg("item-content")},s&&e.createElement("div",{className:Zg("item-icon")},s),e.createElement("div",{className:Zg("item-title")},r||n),"number"===typeof u&&e.createElement("div",{className:Zg("item-counter")},u),l&&e.createElement(Pg,{className:Zg("item-label"),theme:l.theme},l.content)),o&&e.createElement("div",{className:Zg("item-meta")},o))}Fg.displayName="Tabs.Item";var jg,Hg=(0,ft.Ge)("tabs");!function(e){e.Horizontal="horizontal",e.Vertical="vertical"}(jg||(jg={}));var Bg=[],zg=e.forwardRef((function(t,n){var i=t.direction,r=void 0===i?jg.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?Bg:c,h=t.children,f=t.className,p=t.onSelectTab,g=t.wrapTo,v=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),_=e.useMemo((function(){return{activeTabId:m}}),[m]),y=e.useMemo((function(){var t=function(e){p&&p(e)};return d.map((function(n,i){var r=e.createElement(Fg,Object.assign({key:n.id},n,{onClick:t}));return g?g(n,r,i):r}))}),[d,p,g]);return e.createElement("div",{role:"tablist",className:Hg({direction:r,size:a},f),"data-qa":v,ref:n},e.createElement(wg.Provider,{value:_},h||y))}));zg.displayName="Tabs";var Wg=Object.assign(zg,{Item:Fg}),Vg=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},Yg=function(e){var t=Vg(e);return/\d{1,}-\d{1,}-\d{1,}/.test(t)?t.replace(/-\d{1,}$/,""):t},Ug=function(e){return e.split("").reduce((function(e,t){var n=(e<<5)-e+t.charCodeAt(0);return n&n}),0)},Kg=["#008000","#4169e1","#ffd700","#ff8c00","#808000","#e9967a","#ff1493","#00bfff","#da70d6","#3cb371","#b22222"],qg=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Map;return e.forEach((function(e){var n,i=Yg(e),r=Vg(e);t.has(i)||t.set(i,new Set),null===(n=t.get(i))||void 0===n||n.add(r)})),t},Gg=function(e){var t=Array.from(e.keys()).map((function(e){return{version:e,hash:Ug(e)}})),n=new Map,i=Kg.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)%Kg.length,n.set(t.version,Kg[i]);var r=Array.from(e.get(t.version)||[]).filter((function(e){return e!==t.version})).map((function(e){return{version:e,hash:Ug(e)}})),o=r.length;r.sort((function(e,t){return t.hash-e.hash})).forEach((function(e,t){var r=Kg[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},$g=function(){return Gg(qg(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]))},Qg=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(Vg(i)),value:n[i]/e.length*100}}))},Xg=function(){function e(){(0,X.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,J.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=dn(fn().mark((function t(n){var i,r,o,a,s;return fn().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}();Xg.DEFAULT_TIMEOUT=3e4,Xg.MIN_TIMEOUT=3e4;var Jg=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 Xg);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,Ct.Z)(n)))},ev=Q,tv=function(t,n){var i=K(),r=ev((function(e){var i;return null!==(i=function(e,t){return e.settings.userSettings[t]}(e,t))&&void 0!==i?i:n})),o=(0,e.useCallback)((function(e){i(function(e,t){return function(n){n({type:br,data:{name:e,value:t}}),_r.setUserSettingsValue(e,t)}}(t,e))}),[i,t]);return[r,o]},nv=function(){return tv(Wi)},iv=function(t,n){var i=t.sortValue,r=t.sortOrder,o=void 0===r?bn:r;return[(0,e.useMemo)((function(){if(i)return{columnId:i,order:o}}),[i,o]),function(e){var t=Array.isArray(e)?e[0]:e;n({sortValue:null===t||void 0===t?void 0:t.columnId,sortOrder:null===t||void 0===t?void 0:t.order})}]},rv=function(){var e=ct();return vg(e)};e.Component;e.Component;var ov=function(e,t){return"function"===typeof e?e(t):e},av=function(e,t){return"string"===typeof e?_e(e,null,null,t):e},sv=function(e){return e},uv=e.forwardRef;"undefined"===typeof uv&&(uv=sv);var lv=uv((function(t,n){var i=t.innerRef,r=t.navigate,o=t.onClick,a=d(t,["innerRef","navigate","onClick"]),s=a.target,u=c({},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=sv!==uv&&n||i,e.createElement("a",u)}));var cv=uv((function(t,n){var i=t.component,r=void 0===i?lv:i,o=t.replace,a=t.to,s=t.innerRef,u=d(t,["component","replace","to","innerRef"]);return e.createElement(We.Consumer,null,(function(t){t||he(!1);var i=t.history,l=av(ov(a,t.location),t.location),d=l?i.createHref(l):"",h=c({},u,{href:d,navigate:function(){var e=ov(a,t.location),n=me(t.location)===me(av(e));(o||n?i.replace:i.push)(e)}});return sv!==uv?h.ref=n||s:h.innerRef=s,e.createElement(r,h)}))})),dv=function(e){return e},hv=e.forwardRef;"undefined"===typeof hv&&(hv=dv);hv((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,h=t.isActive,f=t.location,p=t.sensitive,g=t.strict,v=t.style,m=t.to,_=t.innerRef,y=d(t,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return e.createElement(We.Consumer,null,(function(t){t||he(!1);var i=f||t.location,o=av(ov(m,i),i),d=o.pathname,b=d&&d.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),w=b?et(i.pathname,{path:b,exact:l,sensitive:p,strict:g}):null,C=!!(h?h(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=c({},S,s));var x=c({"aria-current":C&&r||null,className:k,style:S,to:o},y);return dv!==hv?x.ref=n||_:x.innerRef=_,e.createElement(cv,x)}))}));var fv,pv=["className","to","onClick"],gv=(0,ht.Z)("yc-link"),vv=function(e){var t=e.className,n=e.to,i=e.onClick,r=nn(e,pv);return n?(0,Nl.jsx)(cv,Rt({to:n,onClick:i,className:gv({view:"normal"},t)},r)):(0,Nl.jsx)("span",{className:t,onClick:i,children:r.children})},mv=n(24237),_v=(0,ft.Ge)("link"),yv=e.forwardRef((function(t,n){var i=t.view,r=void 0===i?"normal":i,o=t.visitable,a=t.href,s=t.target,u=t.rel,l=t.title,c=t.children,d=t.extraProps,h=t.onClick,f=t.onFocus,p=t.onBlur,g=t.id,v=t.style,m=t.className,_=t.qa,y={title:l,onClick:h,onClickCapture:e.useCallback((function(e){mv.P.publish({componentId:"Link",eventId:"click",domEvent:e})}),[]),onFocus:f,onBlur:p,id:g,style:v,className:_v({view:r,visitable:o},m),"data-qa":_};if("string"===typeof a){var b="_blank"!==s||u?u:"noopener noreferrer";return e.createElement("a",Object.assign({},d,y,{ref:n,href:a,target:s,rel:b}),c)}return e.createElement("span",Object.assign({},d,y,{ref:n,tabIndex:0}),c)}));function bv(){return bv=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},bv.apply(this,arguments)}var wv,Cv=function(t){return e.createElement("svg",bv({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),fv||(fv=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 kv(){return kv=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},kv.apply(this,arguments)}var Sv,xv=function(t){return e.createElement("svg",kv({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),wv||(wv=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 Lv(){return Lv=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},Lv.apply(this,arguments)}var Ev,Dv=function(t){return e.createElement("svg",Lv({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),Sv||(Sv=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"})))};function Nv(){return Nv=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},Nv.apply(this,arguments)}var Mv=function(t){return e.createElement("svg",Nv({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),Ev||(Ev=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"})))},Tv=n(30590);function Iv(e,t){"function"===typeof e?e(t):e&&(e.current=t)}function Ov(){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++){Iv(i[t],e)}}}),n)}function Av(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Rv(e){return e instanceof Av(e).Element||e instanceof Element}function Pv(e){return e instanceof Av(e).HTMLElement||e instanceof HTMLElement}function Zv(e){return"undefined"!==typeof ShadowRoot&&(e instanceof Av(e).ShadowRoot||e instanceof ShadowRoot)}var Fv=Math.max,jv=Math.min,Hv=Math.round;function Bv(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function zv(){return!/^((?!chrome|android).)*safari/i.test(Bv())}function Wv(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var i=e.getBoundingClientRect(),r=1,o=1;t&&Pv(e)&&(r=e.offsetWidth>0&&Hv(i.width)/e.offsetWidth||1,o=e.offsetHeight>0&&Hv(i.height)/e.offsetHeight||1);var a=(Rv(e)?Av(e):window).visualViewport,s=!zv()&&n,u=(i.left+(s&&a?a.offsetLeft:0))/r,l=(i.top+(s&&a?a.offsetTop:0))/o,c=i.width/r,d=i.height/o;return{width:c,height:d,top:l,right:u+c,bottom:l+d,left:u,x:u,y:l}}function Vv(e){var t=Av(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Yv(e){return e?(e.nodeName||"").toLowerCase():null}function Uv(e){return((Rv(e)?e.ownerDocument:e.document)||window.document).documentElement}function Kv(e){return Wv(Uv(e)).left+Vv(e).scrollLeft}function qv(e){return Av(e).getComputedStyle(e)}function Gv(e){var t=qv(e),n=t.overflow,i=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+i)}function $v(e,t,n){void 0===n&&(n=!1);var i=Pv(t),r=Pv(t)&&function(e){var t=e.getBoundingClientRect(),n=Hv(t.width)/e.offsetWidth||1,i=Hv(t.height)/e.offsetHeight||1;return 1!==n||1!==i}(t),o=Uv(t),a=Wv(e,r,n),s={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(i||!i&&!n)&&(("body"!==Yv(t)||Gv(o))&&(s=function(e){return e!==Av(e)&&Pv(e)?{scrollLeft:(t=e).scrollLeft,scrollTop:t.scrollTop}:Vv(e);var t}(t)),Pv(t)?((u=Wv(t,!0)).x+=t.clientLeft,u.y+=t.clientTop):o&&(u.x=Kv(o))),{x:a.left+s.scrollLeft-u.x,y:a.top+s.scrollTop-u.y,width:a.width,height:a.height}}function Qv(e){var t=Wv(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 Xv(e){return"html"===Yv(e)?e:e.assignedSlot||e.parentNode||(Zv(e)?e.host:null)||Uv(e)}function Jv(e){return["html","body","#document"].indexOf(Yv(e))>=0?e.ownerDocument.body:Pv(e)&&Gv(e)?e:Jv(Xv(e))}function em(e,t){var n;void 0===t&&(t=[]);var i=Jv(e),r=i===(null==(n=e.ownerDocument)?void 0:n.body),o=Av(i),a=r?[o].concat(o.visualViewport||[],Gv(i)?i:[]):i,s=t.concat(a);return r?s:s.concat(em(Xv(a)))}function tm(e){return["table","td","th"].indexOf(Yv(e))>=0}function nm(e){return Pv(e)&&"fixed"!==qv(e).position?e.offsetParent:null}function im(e){for(var t=Av(e),n=nm(e);n&&tm(n)&&"static"===qv(n).position;)n=nm(n);return n&&("html"===Yv(n)||"body"===Yv(n)&&"static"===qv(n).position)?t:n||function(e){var t=/firefox/i.test(Bv());if(/Trident/i.test(Bv())&&Pv(e)&&"fixed"===qv(e).position)return null;var n=Xv(e);for(Zv(n)&&(n=n.host);Pv(n)&&["html","body"].indexOf(Yv(n))<0;){var i=qv(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 rm="top",om="bottom",am="right",sm="left",um="auto",lm=[rm,om,am,sm],cm="start",dm="end",hm="clippingParents",fm="viewport",pm="popper",gm="reference",vm=lm.reduce((function(e,t){return e.concat([t+"-"+cm,t+"-"+dm])}),[]),mm=[].concat(lm,[um]).reduce((function(e,t){return e.concat([t,t+"-"+cm,t+"-"+dm])}),[]),_m=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function ym(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 bm(e){var t;return function(){return t||(t=new Promise((function(n){Promise.resolve().then((function(){t=void 0,n(e())}))}))),t}}var wm={placement:"bottom",modifiers:[],strategy:"absolute"};function Cm(){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 km(e){void 0===e&&(e={});var t=e,n=t.defaultModifiers,i=void 0===n?[]:n,r=t.defaultOptions,o=void 0===r?wm:r;return function(e,t,n){void 0===n&&(n=o);var r={placement:"bottom",orderedModifiers:[],options:Object.assign({},wm,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:Rv(e)?em(e):e.contextElement?em(e.contextElement):[],popper:em(t)};var c=function(e){var t=ym(e);return _m.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(Cm(t,n)){r.rects={reference:$v(t,im(n),"fixed"===r.options.strategy),popper:Qv(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:bm((function(){return new Promise((function(e){u.forceUpdate(),e(r)}))})),destroy:function(){l(),s=!0}};if(!Cm(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 Sm={passive:!0};function xm(e){return e.split("-")[0]}function Lm(e){return e.split("-")[1]}function Em(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Dm(e){var t,n=e.reference,i=e.element,r=e.placement,o=r?xm(r):null,a=r?Lm(r):null,s=n.x+n.width/2-i.width/2,u=n.y+n.height/2-i.height/2;switch(o){case rm:t={x:s,y:n.y-i.height};break;case om:t={x:s,y:n.y+n.height};break;case am:t={x:n.x+n.width,y:u};break;case sm:t={x:n.x-i.width,y:u};break;default:t={x:n.x,y:n.y}}var l=o?Em(o):null;if(null!=l){var c="y"===l?"height":"width";switch(a){case cm:t[l]=t[l]-(n[c]/2-i[c]/2);break;case dm:t[l]=t[l]+(n[c]/2-i[c]/2)}}return t}var Nm={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Mm(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,d=e.isFixed,h=a.x,f=void 0===h?0:h,p=a.y,g=void 0===p?0:p,v="function"===typeof c?c({x:f,y:g}):{x:f,y:g};f=v.x,g=v.y;var m=a.hasOwnProperty("x"),_=a.hasOwnProperty("y"),y=sm,b=rm,w=window;if(l){var C=im(n),k="clientHeight",S="clientWidth";if(C===Av(n)&&"static"!==qv(C=Uv(n)).position&&"absolute"===s&&(k="scrollHeight",S="scrollWidth"),r===rm||(r===sm||r===am)&&o===dm)b=om,g-=(d&&C===w&&w.visualViewport?w.visualViewport.height:C[k])-i.height,g*=u?1:-1;if(r===sm||(r===rm||r===om)&&o===dm)y=am,f-=(d&&C===w&&w.visualViewport?w.visualViewport.width:C[S])-i.width,f*=u?1:-1}var x,L=Object.assign({position:s},l&&Nm),E=!0===c?function(e,t){var n=e.x,i=e.y,r=t.devicePixelRatio||1;return{x:Hv(n*r)/r||0,y:Hv(i*r)/r||0}}({x:f,y:g},Av(n)):{x:f,y:g};return f=E.x,g=E.y,u?Object.assign({},L,((x={})[b]=_?"0":"",x[y]=m?"0":"",x.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+g+"px)":"translate3d("+f+"px, "+g+"px, 0)",x)):Object.assign({},L,((t={})[b]=_?g+"px":"",t[y]=m?f+"px":"",t.transform="",t))}var Tm={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];Pv(r)&&Yv(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}),{});Pv(i)&&Yv(i)&&(Object.assign(i.style,o),Object.keys(r).forEach((function(e){i.removeAttribute(e)})))}))}},requires:["computeStyles"]};var Im={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=mm.reduce((function(e,n){return e[n]=function(e,t,n){var i=xm(e),r=[sm,rm].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,[sm,am].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}},Om={left:"right",right:"left",bottom:"top",top:"bottom"};function Am(e){return e.replace(/left|right|bottom|top/g,(function(e){return Om[e]}))}var Rm={start:"end",end:"start"};function Pm(e){return e.replace(/start|end/g,(function(e){return Rm[e]}))}function Zm(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Zv(n)){var i=t;do{if(i&&e.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function Fm(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function jm(e,t,n){return t===fm?Fm(function(e,t){var n=Av(e),i=Uv(e),r=n.visualViewport,o=i.clientWidth,a=i.clientHeight,s=0,u=0;if(r){o=r.width,a=r.height;var l=zv();(l||!l&&"fixed"===t)&&(s=r.offsetLeft,u=r.offsetTop)}return{width:o,height:a,x:s+Kv(e),y:u}}(e,n)):Rv(t)?function(e,t){var n=Wv(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):Fm(function(e){var t,n=Uv(e),i=Vv(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=Fv(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=Fv(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),s=-i.scrollLeft+Kv(e),u=-i.scrollTop;return"rtl"===qv(r||n).direction&&(s+=Fv(n.clientWidth,r?r.clientWidth:0)-o),{width:o,height:a,x:s,y:u}}(Uv(e)))}function Hm(e,t,n,i){var r="clippingParents"===t?function(e){var t=em(Xv(e)),n=["absolute","fixed"].indexOf(qv(e).position)>=0&&Pv(e)?im(e):e;return Rv(n)?t.filter((function(e){return Rv(e)&&Zm(e,n)&&"body"!==Yv(e)})):[]}(e):[].concat(t),o=[].concat(r,[n]),a=o[0],s=o.reduce((function(t,n){var r=jm(e,n,i);return t.top=Fv(r.top,t.top),t.right=jv(r.right,t.right),t.bottom=jv(r.bottom,t.bottom),t.left=Fv(r.left,t.left),t}),jm(e,a,i));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Bm(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function zm(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function Wm(e,t){void 0===t&&(t={});var n=t,i=n.placement,r=void 0===i?e.placement:i,o=n.strategy,a=void 0===o?e.strategy:o,s=n.boundary,u=void 0===s?hm:s,l=n.rootBoundary,c=void 0===l?fm:l,d=n.elementContext,h=void 0===d?pm:d,f=n.altBoundary,p=void 0!==f&&f,g=n.padding,v=void 0===g?0:g,m=Bm("number"!==typeof v?v:zm(v,lm)),_=h===pm?gm:pm,y=e.rects.popper,b=e.elements[p?_:h],w=Hm(Rv(b)?b:b.contextElement||Uv(e.elements.popper),u,c,a),C=Wv(e.elements.reference),k=Dm({reference:C,element:y,strategy:"absolute",placement:r}),S=Fm(Object.assign({},y,k)),x=h===pm?S:C,L={top:w.top-x.top+m.top,bottom:x.bottom-w.bottom+m.bottom,left:w.left-x.left+m.left,right:x.right-w.right+m.right},E=e.modifiersData.offset;if(h===pm&&E){var D=E[r];Object.keys(L).forEach((function(e){var t=[am,om].indexOf(e)>=0?1:-1,n=[rm,om].indexOf(e)>=0?"y":"x";L[e]+=D[n]*t}))}return L}var Vm={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=xm(v),_=u||(m===v||!p?[Am(v)]:function(e){if(xm(e)===um)return[];var t=Am(e);return[Pm(e),t,Pm(t)]}(v)),y=[v].concat(_).reduce((function(e,n){return e.concat(xm(n)===um?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?mm:u,c=Lm(i),d=c?s?vm:vm.filter((function(e){return Lm(e)===c})):lm,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]=Wm(e,{placement:n,boundary:r,rootBoundary:o,padding:a})[xm(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=xm(L),D=Lm(L)===cm,N=[rm,om].indexOf(E)>=0,M=N?"width":"height",T=Wm(t,{placement:L,boundary:c,rootBoundary:d,altBoundary:h,padding:l}),I=N?D?am:sm:D?om:rm;b[M]>w[M]&&(I=Am(I));var O=Am(I),A=[];if(o&&A.push(T[E]<=0),s&&A.push(T[I]<=0,T[O]<=0),A.every((function(e){return e}))){S=L,k=!1;break}C.set(L,A)}if(k)for(var R=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"},P=p?3:1;P>0;P--){if("break"===R(P))break}t.placement!==S&&(t.modifiersData[i]._skip=!0,t.placement=S,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Ym(e,t,n){return Fv(e,jv(t,n))}var Um={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,g=void 0===p?0:p,v=Wm(t,{boundary:u,rootBoundary:l,padding:d,altBoundary:c}),m=xm(t.placement),_=Lm(t.placement),y=!_,b=Em(m),w="x"===b?"y":"x",C=t.modifiersData.popperOffsets,k=t.rects.reference,S=t.rects.popper,x="function"===typeof g?g(Object.assign({},t.rects,{placement:t.placement})):g,L="number"===typeof x?{mainAxis:x,altAxis:x}:Object.assign({mainAxis:0,altAxis:0},x),E=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,D={x:0,y:0};if(C){if(o){var N,M="y"===b?rm:sm,T="y"===b?om:am,I="y"===b?"height":"width",O=C[b],A=O+v[M],R=O-v[T],P=f?-S[I]/2:0,Z=_===cm?k[I]:S[I],F=_===cm?-S[I]:-k[I],j=t.elements.arrow,H=f&&j?Qv(j):{width:0,height:0},B=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[M],W=B[T],V=Ym(0,k[I],H[I]),Y=y?k[I]/2-P-V-z-L.mainAxis:Z-V-z-L.mainAxis,U=y?-k[I]/2+P+V+W+L.mainAxis:F+V+W+L.mainAxis,K=t.elements.arrow&&im(t.elements.arrow),q=K?"y"===b?K.clientTop||0:K.clientLeft||0:0,G=null!=(N=null==E?void 0:E[b])?N:0,$=O+U-G,Q=Ym(f?jv(A,O+Y-G-q):A,O,f?Fv(R,$):R);C[b]=Q,D[b]=Q-O}if(s){var X,J="x"===b?rm:sm,ee="x"===b?om:am,te=C[w],ne="y"===w?"height":"width",ie=te+v[J],re=te-v[ee],oe=-1!==[rm,sm].indexOf(m),ae=null!=(X=null==E?void 0:E[w])?X:0,se=oe?ie:te-k[ne]-S[ne]-ae+L.altAxis,ue=oe?te+k[ne]+S[ne]-ae-L.altAxis:re,le=f&&oe?function(e,t,n){var i=Ym(e,t,n);return i>n?n:i}(se,te,ue):Ym(f?se:ie,te,f?ue:re);C[w]=le,D[w]=le-te}t.modifiersData[i]=D}},requiresIfExists:["offset"]},Km=function(e,t){return Bm("number"!==typeof(e="function"===typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:zm(e,lm))};var qm={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=xm(n.placement),u=Em(s),l=[sm,am].indexOf(s)>=0?"height":"width";if(o&&a){var c=Km(r.padding,n),d=Qv(o),h="y"===u?rm:sm,f="y"===u?om:am,p=n.rects.reference[l]+n.rects.reference[u]-a[u]-n.rects.popper[l],g=a[u]-n.rects.reference[u],v=im(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=Ym(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)))&&Zm(t.elements.popper,i)&&(t.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Gm(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 $m(e){return[rm,am,om,sm].some((function(t){return e[t]>=0}))}var Qm=km({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=Av(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&l.forEach((function(e){e.addEventListener("scroll",n.update,Sm)})),s&&u.addEventListener("resize",n.update,Sm),function(){o&&l.forEach((function(e){e.removeEventListener("scroll",n.update,Sm)})),s&&u.removeEventListener("resize",n.update,Sm)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=Dm({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:xm(t.placement),variation:Lm(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,Mm(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,Mm(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:{}},Tm,Im,Vm,Um,qm,{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=Wm(t,{elementContext:"reference"}),s=Wm(t,{altBoundary:!0}),u=Gm(a,i),l=Gm(s,r,o),c=$m(u),d=$m(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})}}]}),Xm=n(88807),Jm=n.n(Xm),e_=function(e){return e.reduce((function(e,t){var n=t[0],i=t[1];return e[n]=i,e}),{})},t_="undefined"!==typeof window&&window.document&&window.document.createElement?e.useLayoutEffect:e.useEffect,n_=[],i_=function(n,i,r){void 0===r&&(r={});var o=e.useRef(null),a={onFirstUpdate:r.onFirstUpdate,placement:r.placement||"bottom",strategy:r.strategy||"absolute",modifiers:r.modifiers||n_},s=e.useState({styles:{popper:{position:a.strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),u=s[0],l=s[1],c=e.useMemo((function(){return{name:"updateState",enabled:!0,phase:"write",fn:function(e){var n=e.state,i=Object.keys(n.elements);t.flushSync((function(){l({styles:e_(i.map((function(e){return[e,n.styles[e]||{}]}))),attributes:e_(i.map((function(e){return[e,n.attributes[e]]})))})}))},requires:["computeStyles"]}}),[]),d=e.useMemo((function(){var e={onFirstUpdate:a.onFirstUpdate,placement:a.placement,strategy:a.strategy,modifiers:[].concat(a.modifiers,[c,{name:"applyStyles",enabled:!1}])};return Jm()(o.current,e)?o.current||e:(o.current=e,e)}),[a.onFirstUpdate,a.placement,a.strategy,a.modifiers,c]),h=e.useRef();return t_((function(){h.current&&h.current.setOptions(d)}),[d]),t_((function(){if(null!=n&&null!=i){var e=(r.createPopper||Qm)(n,i,d);return h.current=e,function(){e.destroy(),h.current=null}}}),[n,i,r.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}},r_=["bottom-start","bottom","bottom-end","top-start","top","top-end","right-start","right","right-end","left-start","left","left-end"];var o_=["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])"],a_=o_.join(","),s_="undefined"===typeof Element,u_=s_?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,l_=!s_&&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},c_=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)},d_=function(e,t,n){if(c_(e))return[];var i=Array.prototype.slice.apply(e.querySelectorAll(a_));return t&&u_.call(e,a_)&&i.unshift(e),i=i.filter(n)},h_=function e(t,n,i){for(var r=[],o=Array.from(t);o.length;){var a=o.shift();if(!c_(a,!1))if("SLOT"===a.tagName){var s=a.assignedElements(),u=e(s.length?s:a.children,!0,i);i.flatten?r.push.apply(r,u):r.push({scopeParent:a,candidates:u})}else{u_.call(a,a_)&&i.filter(a)&&(n||!t.includes(a))&&r.push(a);var l=a.shadowRoot||"function"===typeof i.getShadowRoot&&i.getShadowRoot(a),c=!c_(l,!1)&&(!i.shadowRootFilter||i.shadowRootFilter(a));if(l&&c){var d=e(!0===l?a.children:l.children,!0,i);i.flatten?r.push.apply(r,d):r.push({scopeParent:a,candidates:d})}else o.unshift.apply(o,a.children)}}return r},f_=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},p_=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(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))&&!f_(e)?0:e.tabIndex},g_=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},v_=function(e){return"INPUT"===e.tagName},m_=function(e){return function(e){return v_(e)&&"radio"===e.type}(e)&&!function(e){if(!e.name)return!0;var t,n=e.form||l_(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)},__=function(e){var t=e.getBoundingClientRect(),n=t.width,i=t.height;return 0===n&&0===i},y_=function(e,t){var n=t.displayCheck,i=t.getShadowRoot;if("hidden"===getComputedStyle(e).visibility)return!0;var r=u_.call(e,"details>summary:first-of-type")?e.parentElement:e;if(u_.call(r,"details:not([open]) *"))return!0;if(n&&"full"!==n&&"legacy-full"!==n){if("non-zero-area"===n)return __(e)}else{if("function"===typeof i){for(var o=e;e;){var a=e.parentElement,s=l_(e);if(a&&!a.shadowRoot&&!0===i(a))return __(e);e=e.assignedSlot?e.assignedSlot:a||s===e.ownerDocument?a:s.host}e=o}if(function(e){var t,n,i,r,o=e&&l_(e),a=null===(t=o)||void 0===t?void 0:t.host,s=!1;if(o&&o!==e)for(s=!!(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));!s&&a;){var u,l,c;s=!(null===(l=a=null===(u=o=l_(a))||void 0===u?void 0:u.host)||void 0===l||null===(c=l.ownerDocument)||void 0===c||!c.contains(a))}return s}(e))return!e.getClientRects().length;if("legacy-full"!==n)return!0}return!1},b_=function(e,t){return!(t.disabled||c_(t)||function(e){return v_(e)&&"hidden"===e.type}(t)||y_(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!!u_.call(t,"fieldset[disabled] *")||!i.contains(e)}return!0}t=t.parentElement}return!1}(t))},w_=function(e,t){return!(m_(t)||p_(t)<0||!b_(e,t))},C_=function(e){var t=parseInt(e.getAttribute("tabindex"),10);return!!(isNaN(t)||t>=0)},k_=function e(t){var n=[],i=[];return t.forEach((function(t,r){var o=!!t.scopeParent,a=o?t.scopeParent:t,s=function(e,t){var n=p_(e);return n<0&&t&&!f_(e)?0:n}(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(g_).reduce((function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e}),[]).concat(n)},S_=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==u_.call(e,a_)&&w_(t,e)},x_=o_.concat("iframe").join(","),L_=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==u_.call(e,x_)&&b_(t,e)};function E_(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&&S_(t)&&(s.current=t)},t=function(e){var t=e.target;t instanceof HTMLElement&&S_(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=n&&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)&&S_(t)&&(e=t),e&&"function"===typeof e.focus&&document.contains(e)&&L_(e)&&(e!==document.activeElement&&setTimeout((function(){null===e||void 0===e||e.focus()}),0),a.current=null,s.current=null)}}),[n]),{onFocus:function(e){var t;n&&null===a.current&&(a.current=e.relatedTarget,s.current=a.current,o.current=null!==(t=(null===i||void 0===i?void 0:i.current)||a.current)&&void 0!==t?t:null)}}}function D_(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 N_(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?D_(Object(n),!0).forEach((function(t){M_(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D_(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function M_(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 T_=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)},I_=function(e,t){var n=e.indexOf(t);-1!==n&&e.splice(n,1),e.length>0&&e[e.length-1].unpause()},O_=function(e){return"Tab"===(null===e||void 0===e?void 0:e.key)||9===(null===e||void 0===e?void 0:e.keyCode)},A_=function(e){return O_(e)&&!e.shiftKey},R_=function(e){return O_(e)&&e.shiftKey},P_=function(e){return setTimeout(e,0)},Z_=function(e,t){var n=-1;return e.every((function(e,i){return!t(e)||(n=i,!1)})),n},F_=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},j_=function(e){return e.target.shadowRoot&&"function"===typeof e.composedPath?e.composedPath()[0]:e.target},H_=[],B_=function(e,t){var n,i=(null===t||void 0===t?void 0:t.document)||document,r=(null===t||void 0===t?void 0:t.trapStack)||H_,o=N_({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0,isKeyForward:A_,isKeyBackward:R_},t),a={containers:[],containerGroups:[],tabbableGroups:[],nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,delayInitialFocusTimer:void 0,recentNavEvent:void 0},s=function(e,t,n){return e&&void 0!==e[t]?e[t]:o[n||t]},u=function(e,t){var n="function"===typeof(null===t||void 0===t?void 0:t.composedPath)?t.composedPath():void 0;return a.containerGroups.findIndex((function(t){var i=t.container,r=t.tabbableNodes;return i.contains(e)||(null===n||void 0===n?void 0:n.includes(i))||r.find((function(t){return t===e}))}))},l=function(e){var t=o[e];if("function"===typeof t){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];t=t.apply(void 0,r)}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 s=t;if("string"===typeof t&&!(s=i.querySelector(t)))throw new Error("`".concat(e,"` as selector refers to no known node"));return s},c=function(){var e=l("initialFocus");if(!1===e)return!1;if(void 0===e||!L_(e,o.tabbableOptions))if(u(i.activeElement)>=0)e=i.activeElement;else{var t=a.tabbableGroups[0];e=t&&t.firstTabbableNode||l("fallbackFocus")}if(!e)throw new Error("Your focus-trap needs to have at least one focusable element");return e},d=function(){if(a.containerGroups=a.containers.map((function(e){var t=function(e,t){var n;return n=(t=t||{}).getShadowRoot?h_([e],t.includeContainer,{filter:w_.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:C_}):d_(e,t.includeContainer,w_.bind(null,t)),k_(n)}(e,o.tabbableOptions),n=function(e,t){return(t=t||{}).getShadowRoot?h_([e],t.includeContainer,{filter:b_.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):d_(e,t.includeContainer,b_.bind(null,t))}(e,o.tabbableOptions),i=t.length>0?t[0]:void 0,r=t.length>0?t[t.length-1]:void 0,a=n.find((function(e){return S_(e)})),s=n.slice().reverse().find((function(e){return S_(e)})),u=!!t.find((function(e){return p_(e)>0}));return{container:e,tabbableNodes:t,focusableNodes:n,posTabIndexesFound:u,firstTabbableNode:i,lastTabbableNode:r,firstDomTabbableNode:a,lastDomTabbableNode:s,nextTabbableNode:function(e){var i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=t.indexOf(e);return r<0?i?n.slice(n.indexOf(e)+1).find((function(e){return S_(e)})):n.slice(0,n.indexOf(e)).reverse().find((function(e){return S_(e)})):t[r+(i?1:-1)]}}})),a.tabbableGroups=a.containerGroups.filter((function(e){return e.tabbableNodes.length>0})),a.tabbableGroups.length<=0&&!l("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(a.containerGroups.find((function(e){return e.posTabIndexesFound}))&&a.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},h=function e(t){var n=t.activeElement;if(n)return n.shadowRoot&&null!==n.shadowRoot.activeElement?e(n.shadowRoot):n},f=function e(t){!1!==t&&t!==h(document)&&(t&&t.focus?(t.focus({preventScroll:!!o.preventScroll}),a.mostRecentlyFocusedNode=t,function(e){return e.tagName&&"input"===e.tagName.toLowerCase()&&"function"===typeof e.select}(t)&&t.select()):e(c()))},p=function(e){var t=l("setReturnFocus",e);return t||!1!==t&&e},g=function(e){var t=e.target,n=e.event,i=e.isBackward,r=void 0!==i&&i;t=t||j_(n),d();var s=null;if(a.tabbableGroups.length>0){var c=u(t,n),h=c>=0?a.containerGroups[c]:void 0;if(c<0)s=r?a.tabbableGroups[a.tabbableGroups.length-1].lastTabbableNode:a.tabbableGroups[0].firstTabbableNode;else if(r){var f=Z_(a.tabbableGroups,(function(e){var n=e.firstTabbableNode;return t===n}));if(f<0&&(h.container===t||L_(t,o.tabbableOptions)&&!S_(t,o.tabbableOptions)&&!h.nextTabbableNode(t,!1))&&(f=c),f>=0){var p=0===f?a.tabbableGroups.length-1:f-1,g=a.tabbableGroups[p];s=p_(t)>=0?g.lastTabbableNode:g.lastDomTabbableNode}else O_(n)||(s=h.nextTabbableNode(t,!1))}else{var v=Z_(a.tabbableGroups,(function(e){var n=e.lastTabbableNode;return t===n}));if(v<0&&(h.container===t||L_(t,o.tabbableOptions)&&!S_(t,o.tabbableOptions)&&!h.nextTabbableNode(t))&&(v=c),v>=0){var m=v===a.tabbableGroups.length-1?0:v+1,_=a.tabbableGroups[m];s=p_(t)>=0?_.firstTabbableNode:_.firstDomTabbableNode}else O_(n)||(s=h.nextTabbableNode(t))}}else s=l("fallbackFocus");return s},v=function(e){var t=j_(e);u(t,e)>=0||(F_(o.clickOutsideDeactivates,e)?n.deactivate({returnFocus:o.returnFocusOnDeactivate}):F_(o.allowOutsideClick,e)||e.preventDefault())},m=function(e){var t=j_(e),n=u(t,e)>=0;if(n||t instanceof Document)n&&(a.mostRecentlyFocusedNode=t);else{var i;e.stopImmediatePropagation();var r=!0;if(a.mostRecentlyFocusedNode)if(p_(a.mostRecentlyFocusedNode)>0){var s=u(a.mostRecentlyFocusedNode),l=a.containerGroups[s].tabbableNodes;if(l.length>0){var d=l.findIndex((function(e){return e===a.mostRecentlyFocusedNode}));d>=0&&(o.isKeyForward(a.recentNavEvent)?d+1<l.length&&(i=l[d+1],r=!1):d-1>=0&&(i=l[d-1],r=!1))}}else a.containerGroups.some((function(e){return e.tabbableNodes.some((function(e){return p_(e)>0}))}))||(r=!1);else r=!1;r&&(i=g({target:a.mostRecentlyFocusedNode,isBackward:o.isKeyBackward(a.recentNavEvent)})),f(i||(a.mostRecentlyFocusedNode||c()))}a.recentNavEvent=void 0},_=function(e){if(("Escape"===(null===(t=e)||void 0===t?void 0:t.key)||"Esc"===(null===t||void 0===t?void 0:t.key)||27===(null===t||void 0===t?void 0:t.keyCode))&&!1!==F_(o.escapeDeactivates,e))return e.preventDefault(),void n.deactivate();var t;(o.isKeyForward(e)||o.isKeyBackward(e))&&function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];a.recentNavEvent=e;var n=g({event:e,isBackward:t});n&&(O_(e)&&e.preventDefault(),f(n))}(e,o.isKeyBackward(e))},y=function(e){var t=j_(e);u(t,e)>=0||F_(o.clickOutsideDeactivates,e)||F_(o.allowOutsideClick,e)||(e.preventDefault(),e.stopImmediatePropagation())},b=function(){if(a.active)return T_(r,n),a.delayInitialFocusTimer=o.delayInitialFocus?P_((function(){f(c())})):f(c()),i.addEventListener("focusin",m,!0),i.addEventListener("mousedown",v,{capture:!0,passive:!1}),i.addEventListener("touchstart",v,{capture:!0,passive:!1}),i.addEventListener("click",y,{capture:!0,passive:!1}),i.addEventListener("keydown",_,{capture:!0,passive:!1}),n},w=function(){if(a.active)return i.removeEventListener("focusin",m,!0),i.removeEventListener("mousedown",v,!0),i.removeEventListener("touchstart",v,!0),i.removeEventListener("click",y,!0),i.removeEventListener("keydown",_,!0),n},C="undefined"!==typeof window&&"MutationObserver"in window?new MutationObserver((function(e){var t=e.some((function(e){return Array.from(e.removedNodes).some((function(e){return e===a.mostRecentlyFocusedNode}))}));t&&f(c())})):void 0,k=function(){C&&(C.disconnect(),a.active&&!a.paused&&a.containers.map((function(e){C.observe(e,{subtree:!0,childList:!0})})))};return(n={get active(){return a.active},get paused(){return a.paused},activate:function(e){if(a.active)return this;var t=s(e,"onActivate"),n=s(e,"onPostActivate"),r=s(e,"checkCanFocusTrap");r||d(),a.active=!0,a.paused=!1,a.nodeFocusedBeforeActivation=i.activeElement,null===t||void 0===t||t();var o=function(){r&&d(),b(),k(),null===n||void 0===n||n()};return r?(r(a.containers.concat()).then(o,o),this):(o(),this)},deactivate:function(e){if(!a.active)return this;var t=N_({onDeactivate:o.onDeactivate,onPostDeactivate:o.onPostDeactivate,checkCanReturnFocus:o.checkCanReturnFocus},e);clearTimeout(a.delayInitialFocusTimer),a.delayInitialFocusTimer=void 0,w(),a.active=!1,a.paused=!1,k(),I_(r,n);var i=s(t,"onDeactivate"),u=s(t,"onPostDeactivate"),l=s(t,"checkCanReturnFocus"),c=s(t,"returnFocus","returnFocusOnDeactivate");null===i||void 0===i||i();var d=function(){P_((function(){c&&f(p(a.nodeFocusedBeforeActivation)),null===u||void 0===u||u()}))};return c&&l?(l(p(a.nodeFocusedBeforeActivation)).then(d,d),this):(d(),this)},pause:function(e){if(a.paused||!a.active)return this;var t=s(e,"onPause"),n=s(e,"onPostPause");return a.paused=!0,null===t||void 0===t||t(),w(),k(),null===n||void 0===n||n(),this},unpause:function(e){if(!a.paused||!a.active)return this;var t=s(e,"onUnpause"),n=s(e,"onPostUnpause");return a.paused=!1,null===t||void 0===t||t(),d(),b(),k(),null===n||void 0===n||n(),this},updateContainerElements:function(e){var t=[].concat(e).filter(Boolean);return a.containers=t.map((function(e){return"string"===typeof e?i.querySelector(e):e})),a.active&&d(),k(),this}}).updateContainerElements(e),n},z_=n(32711);var W_="function"===typeof e.useId?function(){return"".concat(ft.bJ).concat(e.useId())}:function(){var t=e.useRef();return void 0===t.current&&(t.current=(0,z_.x)()),t.current},V_=e.createContext(void 0);function Y_(t){var n=t.children,i=t.enabled,r=void 0===i||i,o=t.disableAutoFocus,a=t.autoFocus,s=void 0===a||a,u=e.useRef(null),l=e.useRef(!o&&s);e.useEffect((function(){l.current=!o&&s}));var c=e.useRef(),d=e.useRef({}),h=e.useCallback((function(){var e;null===(e=c.current)||void 0===e||e.updateContainerElements([u.current].concat((0,Ct.Z)(Object.values(d.current))))}),[]),f=e.useMemo((function(){return{addNode:function(e,t){var n;d.current[e]===t||(null===(n=u.current)||void 0===n?void 0:n.contains(t))||(d.current[e]=t,h())},removeNode:function(e){d.current[e]&&(delete d.current[e],h())}}}),[h]),p=e.useCallback((function(e){var t;r&&e?(u.current=e,c.current||(c.current=B_([],{initialFocus:function(){return l.current&&function(e){if(!(document.activeElement instanceof HTMLElement)||!e.contains(document.activeElement))return e.hasAttribute("tabIndex")||e.setAttribute("tabIndex","-1"),e;return document.activeElement}(e)},fallbackFocus:function(){return e},returnFocusOnDeactivate:!1,escapeDeactivates:!1,clickOutsideDeactivates:!1,allowOutsideClick:!0})),h(),c.current.activate()):(null===(t=c.current)||void 0===t||t.deactivate(),u.current=null)}),[r,h]),g=e.Children.only(n);if(!e.isValidElement(g))throw new Error("Children must contain only one valid element");var v=Ov(p,g.ref);return e.createElement(V_.Provider,{value:f},e.cloneElement(g,{ref:v}))}var U_=function(){function e(){var t=this;(0,X.Z)(this,e),this.stack=[],this.handleDocumentKeyDown=function(e){var n,i,r;if(e.code===Tv.V.ESCAPE){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;if(!t.isToastClick(e)){var 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,J.Z)(e,[{key:"add",value:function(e){this.stack.push(e),1===this.stack.length&&this.addListeners(),this.notifyLayersChange()}},{key:"remove",value:function(e){var t=this.stack.indexOf(e);this.stack.splice(t,1),0===this.stack.length&&this.removeListeners(),this.notifyLayersChange()}},{key:"getLayersCount",value:function(){return this.stack.length}},{key:"getLayers",value:function(){return this.stack.map((function(e){return{type:e.type}}))}},{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:"notifyLayersChange",value:function(){mv.P.publish({componentId:"LayerManager",eventId:"layerschange",meta:{layersCount:this.getLayersCount(),layers:this.getLayers()}})}},{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}},{key:"isToastClick",value:function(e){return("function"===typeof e.composedPath?e.composedPath():[]).some((function(e){var t;return Boolean(null===(t=null===e||void 0===e?void 0:e.dataset)||void 0===t?void 0:t.toast)}))}}]),e}(),K_=new U_;function q_(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=t.type,f=e.useRef({disableEscapeKeyDown:i,disableOutsideClick:r,onEscapeKeyDown:o,onEnterKeyDown:a,onOutsideClick:s,onClose:u,contentRefs:l,type:h});e.useEffect((function(){Object.assign(f.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=f.current;return K_.add(e),function(){K_.remove(e)}}}),[n,d])}var G_=(0,ft.Ge)("popup");function $_(t){var n=t.styles,i=t.attributes,r=t.setArrowRef;return e.createElement("div",Object.assign({"data-popper-arrow":!0,ref:r,className:G_("arrow"),style:n},i),e.createElement("div",{className:G_("arrow-content")},e.createElement("div",{className:G_("arrow-circle-wrapper")},e.createElement("div",{className:G_("arrow-circle",{left:!0})})),e.createElement("div",{className:G_("arrow-circle-wrapper")},e.createElement("div",{className:G_("arrow-circle",{right:!0})}))))}var Q_=(0,ft.Ge)("popup"),X_=8;function J_(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,g=t.className,v=t.contentClassName,m=t.modifiers,_=void 0===m?[]:m,y=t.children,b=t.onEscapeKeyDown,w=t.onOutsideClick,C=t.onClose,k=t.onClick,S=t.onMouseEnter,x=t.onMouseLeave,L=t.onFocus,E=t.onBlur,D=t.disablePortal,N=t.container,M=t.strategy,T=t.qa,I=t.restoreFocus,O=t.restoreFocusRef,A=t.role,R=t.id,P=t.focusTrap,Z=void 0!==P&&P,F=t.autoFocus,j=void 0!==F&&F,H=e.useRef(null);q_({open:u,disableEscapeKeyDown:d,disableOutsideClick:h,onEscapeKeyDown:b,onOutsideClick:w,onClose:C,contentRefs:[c,H],enabled:!f,type:"popup"});var B=function(t){var n=t.anchorRef,i=t.placement,r=void 0===i?r_:i,o=t.offset,a=t.modifiers,s=void 0===a?[]:a,u=t.strategy,l=t.altBoundary,c=e.useState(null),d=(0,ne.Z)(c,2),h=d[0],f=d[1],p=e.useState(null),g=(0,ne.Z)(p,2),v=g[0],m=g[1],_=Array.isArray(r)?r:[r],y=i_(null===n||void 0===n?void 0:n.current,h,{strategy:u,modifiers:[{name:"arrow",options:{element:v}},{name:"offset",options:{offset:o,altBoundary:l}},{name:"flip",options:{fallbackPlacements:_.slice(1),altBoundary:l}}].concat((0,Ct.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]+X_]:s,strategy:M,altBoundary:D,modifiers:[{name:"arrow",options:{enabled:o,padding:4}},{name:"preventOverflow",options:{padding:1,altBoundary:D}}].concat((0,Ct.Z)(_))}),z=B.attributes,W=B.styles,V=B.setPopperRef,Y=B.setArrowRef,U=Ov(V,H,function(){var t=e.useContext(V_),n=W_();return e.useMemo((function(){if(t)return function(e){e?t.addNode(n,e):t.removeNode(n)}}),[t,n])}()),K=E_({enabled:Boolean(I&&u),restoreFocusRef:O});return e.createElement(jo,{container:N,disablePortal:D},e.createElement(uo,{nodeRef:H,in:u,addEndListener:function(e){var t;return null===(t=H.current)||void 0===t?void 0:t.addEventListener("animationend",e)},classNames:lo(Q_),mountOnEnter:!i,unmountOnExit:!i,appear:!0},e.createElement("div",Object.assign({ref:U,style:W.popper},z.popper,K,{className:Q_({open:u},g),"data-qa":T,id:R,role:A}),e.createElement(Y_,{enabled:Z&&u,disableAutoFocus:!j},e.createElement("div",{onClick:k,onMouseEnter:S,onMouseLeave:x,onFocus:L,onBlur:E,className:Q_("content",v),style:p,tabIndex:-1},o&&e.createElement($_,{styles:W.arrow,attributes:z.arrow,setArrowRef:Y}),y)))))}var ey=(0,ft.Ge)("tooltip"),ty=["bottom","top"],ny=function(t){var n=t.children,i=t.content,r=t.disabled,o=t.placement,a=void 0===o?ty:o,s=t.qa,u=e.useState(null),l=(0,ne.Z)(u,2),c=l[0],d=l[1],h=function(t,n){var i=n.openDelay,r=void 0===i?250:i,o=n.closeDelay,a=function(t){var n=e.useState(t),i=(0,ne.Z)(n,2),r=i[0],o=i[1];return[r,e.useCallback((function(){return o(!0)}),[]),e.useCallback((function(){return o(!1)}),[]),e.useCallback((function(){return o((function(e){return!e}))}),[])]}(!1),s=(0,ne.Z)(a,3),u=s[0],l=s[1],c=s[2],d=e.useRef(),h=e.useRef(!1);return e.useEffect((function(){if(t)return t.addEventListener("mouseenter",e),t.addEventListener("mouseleave",n),t.addEventListener("focus",i),t.addEventListener("blur",a),t.addEventListener("keydown",s),function(){t.removeEventListener("mouseenter",e),t.removeEventListener("mouseleave",n),t.removeEventListener("focus",i),t.removeEventListener("blur",a),t.removeEventListener("keydown",s)};function e(){clearTimeout(d.current),d.current=window.setTimeout(l,r)}function n(){clearTimeout(d.current),d.current=window.setTimeout(c,o)}function i(e){h.current||document.activeElement!==e.target||(h.current=!0,clearTimeout(d.current),l())}function a(e){h.current&&!e.currentTarget.contains(e.relatedTarget)&&(h.current=!1,clearTimeout(d.current),c())}function s(e){e.key===Tv.V.ESCAPE&&(clearTimeout(d.current),c())}}),[t,l,c,r,o]),u}(c,t),f=e.Children.only(n),p=Ov(d,f.ref);return e.createElement(e.Fragment,null,e.cloneElement(f,{ref:p}),c?e.createElement(J_,{id:t.id,role:"tooltip",className:ey(null,t.className),style:t.style,open:h&&!r,placement:a,anchorRef:{current:c},disablePortal:t.disablePortal,disableEscapeKeyDown:!0,disableOutsideClick:!0,disableLayer:!0,qa:s},e.createElement("div",{className:ey("content",t.contentClassName)},i)):null)};var iy=["className","status","title"],ry=["text"],oy=(0,ht.Z)("clipboard-button");function ay(e){var t=e.className,n=e.status,i=e.title,r=nn(e,iy);return(0,Nl.jsx)(ny,{content:n===Cg.Success?"Copied!":i||"Copy",placement:"bottom-start",children:(0,Nl.jsx)(_o.z,Rt(Rt({},r),{},{className:oy(null,t),children:(0,Nl.jsx)(_o.z.Icon,{children:(0,Nl.jsx)(Ng,{status:n,size:16})})}))})}function sy(e){var t=e.text,n=nn(e,ry);return(0,Nl.jsx)(Ig,{text:t,timeout:1e3,children:function(e){return(0,Nl.jsx)(ay,Rt(Rt({},n),{},{status:e}))}})}var uy={BLUE:xv,YELLOW:Cv,ORANGE:Mv,RED:Dv},ly=(0,ht.Z)("entity-status"),cy=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.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&&uy[t]?(0,Nl.jsx)(yo.J,{className:ly("status-icon",o),data:uy[t]}):(0,Nl.jsx)("div",{className:ly("status-color",o)})}},{key:"renderStatusLink",value:function(){var e=this.props.iconPath;return(0,Nl.jsx)(yv,{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,Nl.jsx)(yv,{className:ly("name"),href:i,children:n}):i?(0,Nl.jsx)(cv,{className:ly("name"),to:i,onMouseEnter:r,onMouseLeave:o,children:n}):n&&(0,Nl.jsx)("span",{className:ly("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,a=e.size,s=e.status;return(0,Nl.jsxs)("div",{className:ly(null,o),title:t,children:[i?this.renderStatusLink():this.renderIcon(),n&&(0,Nl.jsx)("span",{title:n,className:ly("label",{size:a,state:s.toLowerCase()}),children:n}),(0,Nl.jsx)("span",{className:ly("link",{"with-left-trim":this.props.withLeftTrim}),children:this.renderLink()}),r&&(0,Nl.jsx)(sy,{text:t,size:"s",className:ly("clipboard-button",{visible:this.props.clipboardButtonAlwaysVisible})})]})}}]),n}(e.Component);cy.defaultProps={status:"gray",text:"",size:"s",label:"",showStatus:!0,externalLink:!1,mode:"color",withLeftTrim:!1,clipboardButtonAlwaysVisible:!1};var dy,hy=cy,fy=["children","content","className","hasArrow","placement"],py=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=nn(t,fy),c=(0,e.useState)(!1),d=(0,ne.Z)(c,2),h=d[0],f=d[1],p=(0,e.useRef)(null);return(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)(J_,Rt(Rt({anchorRef:p,open:h,placement:u,hasArrow:a},l),{},{children:i})),(0,Nl.jsx)("span",{className:r,ref:p,onMouseEnter:function(){f(!0)},onMouseLeave:function(){f(!1)},children:n})]})},gy=(0,ht.Z)("ydb-pool-bar"),vy=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,Nl.jsx)(py,{className:gy({type:a}),content:(0,Nl.jsx)(Bl,{data:n,className:gy("popup-content")}),children:(0,Nl.jsx)("div",{style:{height:"".concat(o,"%")},className:gy("value",{type:a})})})},my=(0,ht.Z)("ydb-pools-graph"),_y=function(e){var t=e.pools,n=void 0===t?[]:t;return(0,Nl.jsx)("div",{className:my(),children:n.map((function(e,t){return(0,Nl.jsx)(vy,{data:e},t)}))})},yy=(dy={},(0,wt.Z)(dy,hi.Dead,pa.Red),(0,wt.Z)(dy,hi.Created,pa.Yellow),(0,wt.Z)(dy,hi.ResolveStateStorage,pa.Yellow),(0,wt.Z)(dy,hi.Candidate,pa.Yellow),(0,wt.Z)(dy,hi.BlockBlobStorage,pa.Yellow),(0,wt.Z)(dy,hi.WriteZeroEntry,pa.Yellow),(0,wt.Z)(dy,hi.Restored,pa.Yellow),(0,wt.Z)(dy,hi.Discover,pa.Yellow),(0,wt.Z)(dy,hi.Lock,pa.Yellow),(0,wt.Z)(dy,hi.Stopped,pa.Yellow),(0,wt.Z)(dy,hi.ResolveLeader,pa.Yellow),(0,wt.Z)(dy,hi.RebuildGraph,pa.Yellow),(0,wt.Z)(dy,hi.Deleted,pa.Green),(0,wt.Z)(dy,hi.Active,pa.Green),dy),by=Object.keys(hi),wy=Object.entries(yy).reduce((function(e,t){var n=(0,ne.Z)(t,2),i=n[0],r=n[1];return e[r]?e[r].push(i):e[r]=[i],e}),{}),Cy=function(e){if(!e)return pa.Grey;var t;return t=e,Object.values(pa).includes(t)?e:yy[e]},ky=(0,ht.Z)("tablets-statistic"),Sy=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:wi(e.Type),type:e.Type,count:e.Count,state:Cy(e.State)}}));return t.sort((function(e,t){return String(e.label).localeCompare(String(t.label))}))}(n);return(0,Nl.jsx)("div",{className:ky(),children:a.map((function(e,t){var n,a=_g(bg.tabletsFilters,void 0,{nodeIds:r,state:e.state,type:e.type,path:i,backend:o}),s="".concat(e.label,": ").concat(e.count),u=ky("tablet",{state:null===(n=e.state)||void 0===n?void 0:n.toLowerCase()});return o?(0,Nl.jsx)("a",{href:a,className:u,children:s},t):(0,Nl.jsx)(cv,{to:a,className:u,children:s},t)}))})};var xy=(0,ft.Ge)("radio-button"),Ly=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=W_(),g=e.useRef(null),v=e.useState(null!==o&&void 0!==o&&o),m=(0,ne.Z)(v,2),_=m[0],y=m[1],b="boolean"===typeof r,w=b?r:_,C=Ov(s,g);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){mv.P.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=(0,z_.y)(c);return e.createElement("label",{className:xy("option",{disabled:r,checked:u}),ref:n},e.createElement("input",Object.assign({},l,{className:xy("option-control")})),e.createElement("span",{className:xy("option-outline")}),c&&e.createElement("span",{className:xy("option-text",{icon:d})},c))})),Ey=(0,ft.Ge)("radio-button"),Dy=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=e.useRef(null),h=e.useRef(),f=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=e.useCallback((function(e){e.currentTarget.hidden=!0}),[]),g=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=W_(),g=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()),v=(0,ne.Z)(g,2),m=v[0],_=v[1],y="undefined"!==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: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})),v=g.containerProps,m=g.optionsProps;return e.createElement("div",Object.assign({},v,{ref:n,style:a,className:Ey({size:r,width:o},s),"data-qa":u}),e.createElement("div",{ref:d,className:Ey("plate"),onTransitionEnd:p,hidden:!0}),m.map((function(t){return e.createElement(Ly,Object.assign({},t,{key:t.value,ref:t.checked?f:void 0}))})))}));Dy.Option=Ly;var Ny=function(e){var t=e.value,n=e.onChange,i=e.className;return(0,Nl.jsxs)(Dy,{value:t,onUpdate:n,className:i,children:[(0,Nl.jsx)(Dy.Option,{value:Cr.ALL,children:Cr.ALL}),(0,Nl.jsx)(Dy.Option,{value:Cr.PROBLEMS,children:Cr.PROBLEMS})]})};function My(){return e.useContext(yt).themeValue}var Ty=["name","className"],Iy={light:{403:function(){return n.e(1058).then(n.bind(n,11058))},thumbsUp:function(){return n.e(6550).then(n.bind(n,26550))},error:function(){return n.e(3848).then(n.bind(n,93848))}},dark:{403:function(){return n.e(2991).then(n.bind(n,22991))},thumbsUp:function(){return n.e(1593).then(n.bind(n,21593))},error:function(){return n.e(1876).then(n.bind(n,1876))}}},Oy=(0,ht.Z)("kv-illustration"),Ay=function(t){var n=t.name,i=t.className,r=nn(t,Ty),o=My(),a=(0,e.useState)(""),s=(0,ne.Z)(a,2),u=s[0],l=s[1],c=Iy[o]&&Iy[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,Nl.jsx)("img",Rt({alt:n,src:u,className:Oy(null,i)},r))},Ry=n(56430),Py=n.n(Ry),Zy=n(17571),Fy=n.n(Zy),jy=16,Hy=2;function By(t,n){var i=e.useState({width:0,height:0}),r=(0,ne.Z)(i,2),o=r[0],a=r[1];return e.useLayoutEffect((function(){if(null===t||void 0===t?void 0:t.current){var e=new ResizeObserver(Fy()((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:Py()(n.inlineSize,Hy),height:Py()(n.blockSize,Hy)})}else{var i=t.target;a({width:Py()(i.offsetWidth,Hy),height:Py()(i.offsetHeight,Hy)})}}}),jy));return e.observe(t.current),function(){e.disconnect()}}}),[t,n]),o}var zy,Wy,Vy=(0,ft.Ge)("popover"),Yy=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"}},Uy=function(t){var n=t.theme,i=t.tooltipActionButton,r=t.tooltipCancelButton;return i||r?e.createElement("div",{className:Vy("tooltip-buttons")},i&&e.createElement(_o.z,{view:Yy(n,!0),width:"max",onClick:i.onClick,className:Vy("tooltip-button")},i.text),r&&e.createElement(_o.z,{view:Yy(n,!1),width:"max",onClick:r.onClick,className:Vy("tooltip-button")},r.text)):null},Ky=function(t){var n=t.secondary,i=t.htmlContent,r=t.content,o=t.className;return i||r?i?e.createElement("div",{className:Vy("tooltip-content",{secondary:n},o),dangerouslySetInnerHTML:{__html:i}}):r?e.createElement("div",{className:Vy("tooltip-content",{secondary:n},o)},r):null:null},qy=function(t){var n=t.links;return 0===n.length?null:e.createElement("div",{className:Vy("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(yv,{href:r,target:a,onClick:s,className:Vy("tooltip-link")},i),e.createElement("br",null))})))},Gy=function(t){var n=t.open,i=t.openOnHover,r=t.disabled,o=t.className,a=t.openTooltip,s=t.closeTooltip,u=t.closedManually,l=t.onClick,c=t.children,d=function(){var e=dn(fn().mark((function e(t){var o;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n&&i,!r&&!o){e.next=3;break}return e.abrupt("return");case 3:if(e.t0=!l,e.t0){e.next=8;break}return e.next=7,l(t);case 7:e.t0=e.sent;case 8:if(e.t0){e.next=11;break}return e.abrupt("return");case 11:(function(){!n?(a(),u.current=!1):(s(),u.current=!0)})();case 13:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),h=(0,kg.b)(d).onKeyDown;return"function"===typeof c?e.createElement(e.Fragment,null,c({onClick:d,onKeyDown:h})):e.createElement("div",{className:o,onClick:d,onKeyDown:l?h:void 0},c)};!function(e){e.Immediate="immediate",e.Delayed="delayed",e.DelayedClosing="delayedClosing"}(Wy||(Wy={}));var $y=(zy={},(0,wt.Z)(zy,Wy.Immediate,[0,0]),(0,wt.Z)(zy,Wy.Delayed,[300,300]),(0,wt.Z)(zy,Wy.DelayedClosing,[0,300]),zy),Qy=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=e.useRef(null),d=e.useRef(null),h=e.useState(n),f=(0,ne.Z)(h,2),p=f[0],g=f[1],v=e.useCallback((function(){c.current&&(clearTimeout(c.current),c.current=null)}),[]),m=e.useCallback((function(){d.current&&(clearTimeout(d.current),d.current=null)}),[]);e.useEffect((function(){return function(){v(),m()}}),[m,v]);var _=e.useCallback((function(e){g(e),l.current=e,null===o||void 0===o||o(e)}),[o,l]),y=e.useCallback((function(){v(),_(!0)}),[_,v]),b=e.useCallback((function(){m(),_(!1)}),[_,m]);e.useEffect((function(){i&&b()}),[i,b]),function(t,n){var i=e.useRef(!0);e.useEffect((function(){i.current?i.current=!1:t()}),n)}((function(){r&&!l.current&&b()}),[r,b,l]);var w=(0,ne.Z)($y[u],2),C=w[0],k=w[1],S=e.useCallback((function(){c.current=setTimeout((function(){c.current=null,y()}),null!==a&&void 0!==a?a:C)}),[C,a,y]),x=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:v,closeTooltip:b,closeTooltipDelayed:x,unsetClosingTimeout:m}},Xy=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,g=void 0===p?Wy.Delayed:p,v=t.placement,m=void 0===v?["right","bottom"]:v,_=t.offset,y=void 0===_?{}:_,b=t.tooltipOffset,w=t.tooltipClassName,C=t.tooltipContentClassName,k=t.theme,S=void 0===k?"info":k,x=t.size,L=void 0===x?"s":x,E=t.hasArrow,D=void 0===E||E,N=t.hasClose,M=void 0!==N&&N,T=t.className,I=t.children,O=t.title,A=t.content,R=t.htmlContent,P=t.contentClassName,Z=t.links,F=t.forceLinksAppearance,j=void 0!==F&&F,H=t.tooltipActionButton,B=t.tooltipCancelButton,z=t.onOpenChange,W=t.onCloseClick,V=t.onClick,Y=t.anchorRef,U=t.strategy,K=t.qa,q=t.disablePortal,G=void 0!==q&&q,$=t.tooltipId,Q=t.focusTrap,X=t.autoFocus,J=t.restoreFocusRef,ee=t.modifiers,te=e.useRef(null),ne=e.useRef(!1),ie=e.useRef(o),re=Qy({initialOpen:o,disabled:s,autoclosable:l,onOpenChange:z,delayOpening:h,delayClosing:f,behavior:g,shouldBeOpen:ie}),oe=re.isOpen,ae=re.closingTimeout,se=re.openTooltip,ue=re.openTooltipDelayed,le=re.unsetOpeningTimeout,ce=re.closeTooltip,de=re.closeTooltipDelayed,he=re.unsetClosingTimeout;e.useImperativeHandle(n,(function(){return{openTooltip:se,closeTooltip:ce}}),[se,ce]);var fe=function(){var e=dn(fn().mark((function e(t){return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:ce(),null===W||void 0===W||W(t);case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),pe=Boolean(O),ge=e.createElement(J_,{id:$,role:d?"tooltip":"dialog",strategy:U,anchorRef:Y||te,className:Vy("tooltip",(i={theme:S,size:L},(0,wt.Z)(i,"with-close",M),(0,wt.Z)(i,"force-links-appearance",j),i),w),contentClassName:Vy("tooltip-popup-content",C),open:oe,placement:m,hasArrow:D,offset:b,onClose:Y?void 0:ce,qa:K?"".concat(K,"-tooltip"):"",disablePortal:G,focusTrap:Q,autoFocus:X,restoreFocus:!0,restoreFocusRef:J||te,modifiers:ee},e.createElement(e.Fragment,null,O&&e.createElement("h3",{className:Vy("tooltip-title")},O),e.createElement(Ky,{secondary:!!pe&&"announcement"!==S,content:A,htmlContent:R,className:P}),Z&&e.createElement(qy,{links:Z}),e.createElement(Uy,{theme:S,tooltipActionButton:H,tooltipCancelButton:B}),M&&e.createElement("div",{className:Vy("tooltip-close")},e.createElement(_o.z,{size:"s",view:"flat-secondary",onClick:fe,extraProps:{"aria-label":"Close"}},e.createElement(yo.J,{data:go.Z,size:16})))));if(Y)return ge;var ve=function(){he(),oe||s||ne.current?ie.current=!0:ue()},me=function(){!l||ne.current||ae.current?ie.current=!1:(le(),de()),ne.current=!1};return e.createElement("div",{ref:te,className:Vy({disabled:s},T),onMouseEnter:d?ve:void 0,onMouseLeave:d?me:void 0,onFocus:d?ve:void 0,onBlur:d?me:void 0,style:{top:y.top,left:y.left},"data-qa":K},e.createElement(Gy,{closeTooltip:ce,openTooltip:se,open:oe,openOnHover:d,className:Vy("handler"),disabled:s,onClick:V,closedManually:ne},I),ge)}));Xy.displayName="Popover";var Jy=No({en:JSON.parse('{"label_clear-button":"Clear"}'),ru:JSON.parse('{"label_clear-button":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c"}')},"".concat(ft.bJ,"clear-button")),eb=(0,ft.B_)("clear-button"),tb=function(e){switch(e){case"s":return"xs";case"m":return"s";case"l":return"m";case"xl":return"l";default:throw new Error('Unknown text input size "'.concat(e,'"'))}},nb=function(t){var n=t.size,i=t.className,r=t.onClick;return e.createElement(_o.z,{size:n,className:eb(null,i),onClick:r,extraProps:{"aria-label":Jy("label_clear-button")}},e.createElement(yo.J,{data:go.Z,size:16}))},ib=function(e){return"boolean"===typeof e?e?"on":"off":e},rb=(0,ft.Ge)("outer-additional-content"),ob=function(t){var n=t.errorMessage,i=t.note,r=t.noteId,o=t.errorMessageId;return n||i?e.createElement("div",{className:rb()},n&&e.createElement("div",{className:rb("error"),id:o,"data-qa":"control-error-message-qa"},n),i&&e.createElement("div",{className:rb("note"),id:r},i)):null},ab=(0,ft.Ge)("text-input"),sb=e.forwardRef((function(t,n){var i=t.placement,r=t.children,o=t.onClick;return r?e.createElement("div",{ref:n,className:ab("additional-content",{placement:i}),onClick:o},r):null})),ub=(0,ft.Ge)("text-input");function lb(t){var n=t.controlProps,i=t.controlRef,r=t.type,o=t.name,a=t.id,s=t.tabIndex,u=t.autoComplete,l=t.placeholder,c=t.value,d=t.defaultValue,h=t.autoFocus,f=t.disabled,p=t.onChange,g=t.onFocus,v=t.onBlur,m=t.onKeyDown,_=t.onKeyUp,y=t.onKeyPress;return e.createElement("input",Object.assign({},n,{ref:i,className:ub("control",{type:"input"},null===n||void 0===n?void 0:n.className),type:r,name:o,id:a,tabIndex:s,placeholder:l,value:c,defaultValue:d,autoFocus:h,autoComplete:u,onChange:p,onFocus:g,onBlur:v,onKeyDown:m,onKeyUp:_,onKeyPress:y,disabled:f}))}var cb=(0,ft.Ge)("text-input"),db=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,g=t.hasClear,v=void 0!==g&&g,m=t.error,_=t.errorMessage,y=t.errorPlacement,b=void 0===y?"outside":y,w=t.validationState,C=t.autoComplete,k=t.id,S=t.tabIndex,x=t.style,L=t.className,E=t.qa,D=t.controlProps,N=t.leftContent,M=t.rightContent,T=t.note,I=t.onUpdate,O=t.onChange,A=function(e){var t,n,i=e.error,r=e.errorMessage,o=e.errorPlacement;return"string"===typeof i&&(t=i),r&&(t=r),("invalid"===e.validationState||Boolean(i))&&(n="invalid"),{errorMessage:t,errorPlacement:o,validationState:n}}({error:m,errorMessage:_,errorPlacement:b,validationState:w}),R=A.errorMessage,P=A.errorPlacement,Z=A.validationState,F=e.useState(null!==d&&void 0!==d?d:""),j=(0,ne.Z)(F,2),H=j[0],B=j[1],z=e.useRef(null),W=Ov(t.controlRef,z),V=e.useRef(null),Y=e.useRef(null),U=function(e){return"invalid"===e?"error":void 0}(Z),K=void 0!==c,q=K?c:H,G=Boolean(h),$="invalid"===Z&&Boolean(R)&&"outside"===P,Q="invalid"===Z&&Boolean(R)&&"inside"===P,X=Boolean(v&&!p&&q),J=Boolean(N),ee=Boolean(M),te=G&&!k&&!l&&"undefined"===typeof C,ie=W_(),re=G?k||ie:k,oe=By(G?V:null,a),ae=By(J?Y:null,a),se=W_(),ue=W_(),le=[null===D||void 0===D?void 0:D["aria-describedby"],T?ue:void 0,$?se:void 0].filter(Boolean).join(" "),ce=Object.assign(Object.assign({},D),{style:Object.assign(Object.assign({},null===D||void 0===D?void 0:D.style),G&&oe.width?{paddingLeft:"".concat(oe.width,"px")}:{}),"aria-invalid":"invalid"===Z||void 0,"aria-describedby":le||void 0}),de={id:re,tabIndex:S,name:l,onChange:function(e){var t=e.target.value;K||B(t),O&&O(e),I&&I(t)},autoComplete:te?"off":ib(C),controlProps:ce},he=function(e){var t,n,i=e.currentTarget.contains(document.activeElement),r=Boolean(null===(t=document.getSelection())||void 0===t?void 0:t.toString());i||r||null===(n=z.current)||void 0===n||n.focus()};return e.createElement("span",{ref:n,style:x,className:cb({view:r,size:a,disabled:p,state:U,pin:"clear"===r?void 0:u,"has-clear":X,"has-left-content":J,"has-right-content":X||ee},L),"data-qa":E},e.createElement("span",{className:cb("content")},J&&e.createElement(sb,{ref:Y,placement:"left",onClick:he},N),G&&e.createElement("label",{ref:V,style:{left:J?ae.width:void 0,maxWidth:"calc(50% - ".concat(ae.width,"px)")},className:cb("label"),title:h,htmlFor:re},"".concat(h)),e.createElement(lb,Object.assign({},t,de,{controlRef:W})),X&&e.createElement(nb,{size:tb(a),onClick:function(e){var t=z.current;if(t){t.focus();var n=Object.create(e);n.target=t,n.currentTarget=t,t.value="",O&&O(n),I&&I("")}K||B("")},className:cb("clear")}),ee&&e.createElement(sb,{placement:"right",onClick:he},M),Q&&e.createElement(Xy,{content:R},e.createElement("span",{"data-qa":"control-error-icon-qa"},e.createElement(yo.J,{data:fo.Z,className:cb("error-icon"),size:"s"===a?12:16})))),e.createElement(ob,{note:T,errorMessage:$?R:null,noteId:ue,errorMessageId:se}))})),hb=(0,ht.Z)("ydb-search"),fb=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,ne.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,Nl.jsx)(db,{hasClear:!0,autoFocus:!0,className:hb(null,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)}})},pb=(0,ft.Ge)("skeleton");function gb(t){var n=t.className,i=t.style,r=t.qa;return e.createElement("div",{className:pb(null,n),style:i,"data-qa":r})}var vb=(0,ht.Z)("table-skeleton"),mb=function(e){var t=e.rows,n=void 0===t?2:t,i=e.className;return(0,Nl.jsxs)("div",{className:vb(null,i),children:[(0,Nl.jsxs)("div",{className:vb("row"),children:[(0,Nl.jsx)(gb,{className:vb("col-1")}),(0,Nl.jsx)(gb,{className:vb("col-2")}),(0,Nl.jsx)(gb,{className:vb("col-3")}),(0,Nl.jsx)(gb,{className:vb("col-4")}),(0,Nl.jsx)(gb,{className:vb("col-5")})]}),(0,Ct.Z)(new Array(n)).map((function(e,t){return(0,Nl.jsx)("div",{className:vb("row"),children:(0,Nl.jsx)(gb,{className:vb("col-full")})},"skeleton-row-".concat(t))}))]})},_b=(0,ht.Z)("ydb-table-with-controls-layout"),yb=function(e){var t=e.children,n=e.className;return(0,Nl.jsx)("div",{className:_b(null,n),children:t})};yb.Controls=function(e){var t=e.children,n=e.className;return(0,Nl.jsx)("div",{className:_b("controls-wrapper"),children:(0,Nl.jsx)("div",{className:_b("controls",n),children:t})})},yb.Table=function(e){var t=e.children,n=e.loading,i=e.className;return n?(0,Nl.jsx)(mb,{className:_b("loader")}):(0,Nl.jsx)("div",{className:_b("table",i),children:t})};var bb=JSON.parse('{"403.title":"Access denied","403.description":"You don\u2019t have the necessary roles to view this page.","responseError.defaultMessage":"Response error"}'),wb=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"}'),Cb="ydb-errors-access-denied";Va.registerKeyset(Fa.En,Cb,bb),Va.registerKeyset(Fa.Ru,Cb,wb);var kb=Va.keyset(Cb),Sb=function(e){var t=e.error,n=e.className,i=e.defaultMessage,r=void 0===i?kb("responseError.defaultMessage"):i;return(0,Nl.jsx)("div",{className:"error ".concat(n),children:(null===t||void 0===t?void 0:t.statusText)||r})},xb=function(e){return e.tenants.searchValue},Lb=$c([function(e){return e.tenants.tenants},Er,xb],(function(e,t,n){var i=function(e,t){return t===Cr.ALL?e:e.filter((function(e){return e.Overall&&e.Overall!==pa.Green}))}(e,t);return i=function(e,t){return e.filter((function(e){var n=new RegExp((0,rn.escapeRegExp)(t),"i");return n.test(e.Name||"")||n.test(e.controlPlaneName)}))}(i,n),i})),Eb={summaryTab:"summaryTab",queryTab:"queryTab",diagnosticsTab:"diagnosticsTab",metricsTab:"metricsTab"},Db=[{id:Zn.overview,title:"Overview"},{id:Zn.acl,title:"ACL"}],Nb=[{id:Zn.schema,title:"Schema"}],Mb=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return _g(bg.tenant,void 0,e)},Tb=(0,ht.Z)("tenants"),Ib=function(e){var t=e.additionalTenantsProps,n=K(),i=ev((function(e){return e.tenants})),r=i.error,o=i.loading,a=i.wasLoaded,s=ev(xb),u=ev(Lb),l=ev(Er);Jg((function(){n(function(e){return oa({request:window.api.getTenants(e),actions:sh,dataHandler:function(e,t){var n=t().singleClusterMode;return e.TenantInfo?Jd(e.TenantInfo,n):[]}})}(rg))}),[n],!0);var c=function(e){n(Lr(e))},d=function(e){n(function(e){return{type:uh,data:e}}(e))};return r?(0,Nl.jsx)(Sb,{error:r}):(0,Nl.jsxs)(yb,{children:[(0,Nl.jsx)(yb.Controls,{children:(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)(fb,{value:s,onChange:d,placeholder:"Database name",className:Tb("search")}),(0,Nl.jsx)(Ny,{value:l,onChange:c})]})}),(0,Nl.jsx)(yb.Table,{loading:o&&!a,className:Tb("table"),children:function(){var e=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)},n=[{name:"Name",header:"Database",render:function(n){var i,r=n.row,o=e(r),a=Boolean(o);return(0,Nl.jsxs)("div",{className:Tb("name-wrapper"),children:[(0,Nl.jsx)(hy,{externalLink:a,className:Tb("name"),name:r.Name||"unknown database",withLeftTrim:!0,status:r.Overall,hasClipboardButton:!0,path:Mb({name:r.Name,backend:o})}),null===t||void 0===t||null===(i=t.getMonitoringLink)||void 0===i?void 0:i.call(t,r.Name,r.Type)]})},width:440,sortable:!0,defaultOrder:pi.DESCENDING},{name:"controlPlaneName",header:"Name",render:function(e){return e.row.controlPlaneName},width:200,sortable:!0,defaultOrder:pi.DESCENDING},{name:"Type",width:200,render:function(e){var t=e.row;return"Serverless"!==t.Type?t.Type:(0,Nl.jsxs)("div",{className:Tb("type"),children:[(0,Nl.jsx)("span",{className:Tb("type-value"),children:t.Type}),(0,Nl.jsx)(_o.z,{className:Tb("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?vs(t.cpu):"\u2014"},align:pi.RIGHT,defaultOrder:pi.DESCENDING},{name:"memory",header:"Memory",width:120,render:function(e){var t=e.row;return t.memory?ss(t.memory):"\u2014"},align:pi.RIGHT,defaultOrder:pi.DESCENDING},{name:"storage",header:"Storage",width:120,render:function(e){var t=e.row;return t.storage?ss(t.storage):"\u2014"},align:pi.RIGHT,defaultOrder:pi.DESCENDING},{name:"nodesCount",header:"Nodes",width:100,render:function(e){var t=e.row;return t.nodesCount?fs(t.nodesCount):"\u2014"},align:pi.RIGHT,defaultOrder:pi.DESCENDING},{name:"groupsCount",header:"Groups",width:100,render:function(e){var t=e.row;return t.groupsCount?fs(t.groupsCount):"\u2014"},align:pi.RIGHT,defaultOrder:pi.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:pi.DESCENDING,align:pi.LEFT,render:function(e){var t=e.row;return(0,Nl.jsx)(_y,{pools:t.PoolStats})}},{name:"Tablets",header:"Tablets States",sortable:!1,width:430,render:function(t){var n=t.row,i=e(n);return n.Tablets?(0,Nl.jsx)(Sy,{path:n.Name,tablets:n.Tablets,nodeIds:n.NodeIds||[],backend:i}):"\u2014"}}];return 0===u.length&&l!==Cr.ALL?(0,Nl.jsx)(Ay,{name:"thumbsUp",width:"200"}):(0,Nl.jsx)(pi,{theme:"yandex-cloud",data:u,columns:n,settings:Bi,emptyDataMessage:"No such tenants"})}()})]})},Ob=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,Nl.jsx)(yo.J,{data:{id:"icon.".concat(t),viewBox:s},height:i,width:o,className:u,onClick:l})};Ob.displayName="Icon";var Ab=(0,ht.Z)("empty-state"),Rb={s:150,m:250,l:350},Pb=function(e){var t=e.image,n=e.title,i=e.description,r=e.actions,o=e.size,a=void 0===o?"m":o,s=e.position,u=void 0===s?"center":s;return(0,Nl.jsx)("div",{className:Ab({size:a}),children:(0,Nl.jsxs)("div",{className:Ab("wrapper",{size:a,position:u}),children:[(0,Nl.jsx)("div",{className:Ab("image"),children:t||(0,Nl.jsx)(Ob,{viewBox:"0 0 383 396",name:"emptyState",width:Rb[a],height:Rb[a]})}),(0,Nl.jsx)("div",{className:Ab("title",{size:a}),children:n}),(0,Nl.jsx)("div",{className:Ab("description"),children:i}),(0,Nl.jsx)("div",{className:Ab("actions"),children:r})]})})},Zb=["title","description"],Fb=function(e){var t=e.title,n=e.description,i=nn(e,Zb);return(0,Nl.jsx)(Pb,Rt({image:(0,Nl.jsx)(Ay,{name:"403"}),title:t||kb("403.title"),description:n||kb("403.description")},i))},jb="ydb-entities-count";Va.registerKeyset(Fa.En,jb,{of:"of"}),Va.registerKeyset(Fa.Ru,jb,{of:"\u0438\u0437"});var Hb=Va.keyset(jb),Bb=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(Hb("of")," ").concat(t))),(0,Nl.jsx)(Pg,{theme:"info",size:"m",className:o,children:a})},zb=function(e){var t=e.value,n=e.onChange,i=e.className;return(0,Nl.jsxs)(Dy,{value:t,onUpdate:n,className:i,children:[(0,Nl.jsx)(Dy.Option,{value:va.All,children:wa[va.All]}),(0,Nl.jsx)(Dy.Option,{value:va.SmallUptime,children:wa[va.SmallUptime]})]})},Wb=n(59833),Vb=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,ne.Z)(s,2),l=u[0],c=u[1],d=e.useState(),h=(0,ne.Z)(d,2),f=h[0],p=h[1],g=n||l,v=!n,m=function(t){var n=e.useState(t.defaultOpen||!1),i=(0,ne.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),_=m.toggleOpen,y=(0,Wb._T)(m,["toggleOpen"]),b=e.useCallback((function(e){if(!g.includes(e.value)){var t=[e.value];null===a||void 0===a||a(t),v&&c(t)}_(!1)}),[g,v,a,_]),w=e.useCallback((function(e){var t=g.includes(e.value)?g.filter((function(t){return t!==e.value})):[].concat((0,Ct.Z)(g),[e.value]);null===a||void 0===a||a(t),v&&c(t)}),[g,v,a]),C=e.useCallback((function(e){o?w(e):b(e)}),[o,b,w]),k=e.useCallback((function(){null===a||void 0===a||a([]),c([])}),[a]);return Object.assign({value:g,activeIndex:f,handleSelection:C,handleClearValue:k,setOpen:_,toggleOpen:_,setActiveIndex:p},y)},Yb=function(){function e(t,n){var i,r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,X.Z)(this,e),this.nativeEvent=n,this.target=null!==(i=o.target)&&void 0!==i?i:n.target,this.currentTarget=null!==(r=o.currentTarget)&&void 0!==r?r:n.currentTarget,this.relatedTarget=n.relatedTarget,this.bubbles=n.bubbles,this.cancelable=n.cancelable,this.defaultPrevented=n.defaultPrevented,this.eventPhase=n.eventPhase,this.isTrusted=n.isTrusted,this.timeStamp=n.timeStamp,this.type=t}return(0,J.Z)(e,[{key:"isDefaultPrevented",value:function(){return this.nativeEvent.defaultPrevented}},{key:"preventDefault",value:function(){this.defaultPrevented=!0,this.nativeEvent.preventDefault()}},{key:"stopPropagation",value:function(){this.nativeEvent.stopPropagation(),this.isPropagationStopped=function(){return!0}}},{key:"isPropagationStopped",value:function(){return!1}},{key:"persist",value:function(){}}]),e}();function Ub(t){var n=t.onFocusWithin,i=t.onBlurWithin,r=t.onFocusWithinChange,o=t.isDisabled,a=e.useRef(!1),s=function(t){var n=t.onFocus,i=t.onBlur,r=t.isDisabled,o=e.useRef(!1),a=e.useRef(null);e.useEffect((function(){if(!r){var e=function(){o.current=!1},t=function(e){if(!o.current&&a.current){var t=new FocusEvent("blur",Object.assign(Object.assign({},e),{relatedTarget:e.target,bubbles:!1,cancelable:!1}));i(new Yb("blur",t,{target:a.current,currentTarget:a.current})),a.current=null}};return window.addEventListener("focus",e,{capture:!0}),window.addEventListener("focusin",t),function(){window.removeEventListener("focus",e,{capture:!0}),window.removeEventListener("focusin",t)}}}),[r,i]);var s=e.useCallback((function(e){null!==e.relatedTarget&&e.relatedTarget!==document.body&&e.relatedTarget!==document||(i(e),a.current=null)}),[i]),u=function(t){var n=e.useRef({isFocused:!1,observer:null});return e.useEffect((function(){var e=n.current;return function(){e.observer&&(e.observer.disconnect(),e.observer=null)}}),[]),e.useCallback((function(e){var i=e.target;if(i instanceof HTMLButtonElement||i instanceof HTMLInputElement||i instanceof HTMLTextAreaElement||i instanceof HTMLSelectElement){n.current.isFocused=!0,i.addEventListener("focusout",(function(e){n.current.isFocused=!1,i.disabled&&(null===t||void 0===t||t(new Yb("blur",e))),n.current.observer&&(n.current.observer.disconnect(),n.current.observer=null)}),{once:!0});var r=new MutationObserver((function(){if(n.current.isFocused&&i.disabled){r.disconnect(),n.current.observer=null;var e=i===document.activeElement?null:document.activeElement;i.dispatchEvent(new FocusEvent("blur",{relatedTarget:e})),i.dispatchEvent(new FocusEvent("focusout",{relatedTarget:e,bubbles:!0}))}}));r.observe(i,{attributes:!0,attributeFilter:["disabled"]}),n.current.observer=r}}),[t])}(i),l=e.useCallback((function(e){o.current=!0,a.current=e.target,u(e),n(e)}),[u,n]);return{onBlur:s,onFocus:l}}({onFocus:e.useCallback((function(e){a.current||document.activeElement!==e.target||(a.current=!0,n&&n(e),r&&r(!0))}),[n,r]),onBlur:e.useCallback((function(e){a.current&&(a.current=!1,i&&i(e),r&&r(!1))}),[i,r]),isDisabled:o}),u=s.onBlur,l=s.onFocus;return o?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:l,onBlur:u}}}var Kb=function(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},t),e.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M2.97 5.47a.75.75 0 0 1 1.06 0L8 9.44l3.97-3.97a.75.75 0 1 1 1.06 1.06l-4.5 4.5a.75.75 0 0 1-1.06 0l-4.5-4.5a.75.75 0 0 1 0-1.06Z",clipRule:"evenodd"}))},qb=n(37750),Gb=n.n(qb),$b=(0,ft.B_)("select"),Qb=(0,ft.B_)("select-control"),Xb=(0,ft.B_)("select-control__button"),Jb=(0,ft.B_)("select-list"),ew=(0,ft.B_)("select-clear"),tw={s:28,m:28,l:32,xl:36},nw="select-list",iw="select-popup",rw="select-sheet",ow="select-clear",aw=No({en:JSON.parse('{"label_clear":"Clear"}'),ru:JSON.parse('{"label_clear":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c"}')},"Select"),sw=function(t){var n=t.size,i=t.onClick,r=t.onMouseEnter,o=t.onMouseLeave,a=t.renderIcon,s=a?a():e.createElement(yo.J,{className:ew("clear"),data:go.Z});return e.createElement("button",{className:ew({size:n}),"aria-label":aw("label_clear"),onClick:i,onMouseEnter:r,onMouseLeave:o,"data-qa":ow},s)};sw.displayName="SelectClear";var uw=e.forwardRef((function(t,n){var i=t.toggleOpen,r=t.clearValue,o=t.onKeyDown,a=t.renderControl,s=t.view,u=t.size,l=t.pin,c=t.selectedOptionsContent,d=t.className,h=t.qa,f=t.name,p=t.label,g=t.placeholder,v=t.error,m=t.open,_=t.disabled,y=t.value,b=t.hasClear,w=t.popupId,C=t.selectId,k=t.activeIndex,S=Boolean(c),x=Boolean(g&&!S),L=Array.isArray(y)&&!Gb()(y.filter(Boolean)),E=e.useState(!1),D=(0,ne.Z)(E,2),N=D[0],M=D[1],T={open:m,size:u,pin:l,disabled:_,error:Boolean(v),"has-clear":b,"no-active":N,"has-value":L},I={open:m,size:u,view:s,pin:l,disabled:_,error:Boolean(v)},O=e.useCallback((function(){M(!0)}),[]),A=e.useCallback((function(){M(!1)}),[]),R=e.useCallback((function(){M(!1),r()}),[r]),P=function(t){var n=!(null===y||void 0===y?void 0:y[0]);return!b||!r||n||_?null:e.createElement(sw,{size:u,onClick:R,onMouseEnter:O,onMouseLeave:A,renderIcon:t.renderIcon})};return a?a({onKeyDown:o,onClear:r,onClick:i,renderClear:function(e){return P(e)},ref:n,open:Boolean(m),popupId:w,selectId:C,activeIndex:k},{value:y}):e.createElement(e.Fragment,null,e.createElement("div",{className:Qb(T),role:"group"},e.createElement("button",{ref:n,role:"combobox","aria-controls":w,className:Xb(I,d),"aria-haspopup":"listbox","aria-expanded":m,"aria-activedescendant":void 0===k?void 0:"".concat(C,"-list-item-").concat(k),name:f,disabled:_,onClick:i,onKeyDown:o,type:"button","data-qa":h},p&&e.createElement("span",{className:Qb("label")},p),x&&e.createElement("span",{className:Qb("placeholder")},g),S&&e.createElement("span",{className:Qb("option-text")},c)),P({}),e.createElement(yo.J,{className:Qb("chevron-icon",{disabled:_}),data:Kb,"aria-hidden":"true"})),"string"===typeof v&&e.createElement("div",{className:Qb("error")},v))}));uw.displayName="SelectControl";var lw=(0,ft.Ge)("sheet"),cw=(0,J.Z)((function e(t,n){(0,X.Z)(this,e),this.x=t,this.y=n,this.timeStamp=Date.now()})),dw=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;(0,X.Z)(this,e),this.points=[],this.pointsLen=t,this.clear()}return(0,J.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 cw(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}(),hw="0.3s",fw=50,pw=.08,gw=-.02,vw=.9,mw=[],_w=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var t;return(0,X.Z)(this,i),(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 dw,t.observer=null,t.transitionDuration=hw,t.state={startScrollTop:0,startY:0,deltaY:0,prevSheetHeight: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>fw&&n<=pw&&n>=gw||n>pw?t.hide():0!==e&&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(){if(t.sheetRef.current&&t.sheetContentRef.current){var e=t.sheetTitleHeight+t.innerContentHeight+t.sheetTopHeight,n=window.innerHeight*vw,i=e>=n?n:e;t.sheetContentRef.current.style.transition=t.state.prevSheetHeight>e?"height 0s ease ".concat(t.transitionDuration):"none",t.sheetContentRef.current.style.height="".concat(i-t.sheetTopHeight,"px"),t.sheetRef.current.style.transform="translate3d(0, -".concat(i,"px, 0)"),t.setState({prevSheetHeight:e})}},t}return(0,J.Z)(i,[{key:"componentDidMount",value:function(){this.addListeners(),this.show(),this.setInitialStyles(),this.setState({prevSheetHeight:this.sheetTitleHeight+this.innerContentHeight+this.sheetTopHeight})}},{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&&(mw=[])}},{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"]},g={"without-scroll":u>0&&c||l};return e.createElement(e.Fragment,null,e.createElement("div",{ref:this.veilRef,className:lw("veil",f),onClick:h?void 0:this.onVeilClick,onTransitionEnd:this.onVeilTransitionEnd}),e.createElement("div",{ref:this.sheetRef,className:lw("sheet",p)},!o&&e.createElement("div",{ref:this.sheetTopRef,className:lw("sheet-top")},e.createElement("div",{className:lw("sheet-top-resizer")})),e.createElement("div",{className:lw("sheet-swipe-area",r),onTouchStart:this.onSwipeAreaTouchStart,onTouchMove:this.onSwipeAriaTouchMove,onTouchEnd:this.onSwipeAriaTouchEnd}),e.createElement("div",{ref:this.sheetContentRef,className:lw("sheet-content",g,i),onTouchStart:this.onContentTouchStart,onTouchMove:this.onContentTouchMove,onTouchEnd:this.onContentTouchEnd,onTransitionEnd:this.onContentTransitionEnd},a&&e.createElement("div",{ref:this.sheetTitleRef,className:lw("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!==Pr.BROWSER){var o=Object.assign(Object.assign({},i),{hash:t});switch(n){case Pr.IOS:i.hash&&mw.push(i.hash),r.replace(o);break;case Pr.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!==Pr.BROWSER&&r.hash==="#".concat(n))switch(i){case Pr.IOS:o.replace(Object.assign(Object.assign({},r),{hash:null!==(e=mw.pop())&&void 0!==e?e:""}));break;case Pr.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!==Pr.BROWSER&&"POP"===o.action&&e.location.hash!==r.hash&&r.hash!=="#".concat(n)}}]),i}(e.Component);_w.defaultProps={id:"sheet",allowHideOnContentScroll:!0};var yw=function(t){var n,i,r=(i=t).displayName||i.name||"Component";return n=function(n){(0,ee.Z)(r,n);var i=(0,te.Z)(r);function r(){return(0,X.Z)(this,r),i.apply(this,arguments)}return(0,J.Z)(r,[{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}))}}]),r}(e.Component),n.displayName="withMobile(".concat(r,")"),n.contextType=jr,n}(function(t){var n=function(n){var i=n.useHistory,r=n.useLocation,o=(0,Wb._T)(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}(_w)),bw=function(n){(0,ee.Z)(r,n);var i=(0,te.Z)(r);function r(){var e;return(0,X.Z)(this,r),(e=i.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,J.Z)(r,[{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&&(r.restoreBodyScroll(),this.bodyScrollLocked=!1)}},{key:"lockBodyScroll",value:function(){r.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:lw(null,r)},e.createElement(yw,{id:n,content:i,contentClassName:o,swipeAreaClassName:a,title:s,visible:u,allowHideOnContentScroll:l,hideTopBar:c,hideSheet:this.hideSheet}))}}],[{key:"lockBodyScroll",value:function(){1===++r.bodyScrollLocksCount&&(r.bodyInitialOverflow=document.body.style.overflow,document.body.style.overflow="hidden")}},{key:"restoreBodyScroll",value:function(){0!==r.bodyScrollLocksCount&&0===--r.bodyScrollLocksCount&&(document.body.style.overflow=r.bodyInitialOverflow||"",r.bodyInitialOverflow=void 0)}}]),r}(e.Component);bw.bodyScrollLocksCount=0,bw.bodyInitialOverflow=void 0;var ww=function(e){return e-2},Cw=function(e,t,n){var i=t;return i="number"===typeof e?e:"fit"===e?ww(t):function(e,t){return t?e>100?e:100:ww(e)}(t,n),"".concat(i,"px")},kw=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,r=e.state,o=e.name;if(!(null===(n=r.modifiersData["".concat(o,"#persistent")])||void 0===n?void 0:n.skip)){var a=Cw(t,r.rects.reference.width,i);"number"!==typeof t&&"fit"!==t?(r.styles.popper.minWidth=a,r.styles.popper.width=void 0):(r.styles.popper.minWidth=a,r.styles.popper.width=a),r.styles.popper.maxWidth="max(90vw, ".concat(ww(r.rects.reference.width),"px)"),r.modifiersData["".concat(o,"#persistent")]={skip:"number"!==typeof t}}},effect:function(e){var n,r=e.state,o=e.name;if(!(null===(n=r.modifiersData["".concat(o,"#persistent")])||void 0===n?void 0:n.skip)){var a=Cw(t,r.elements.reference.offsetWidth,i);"number"!==typeof t&&"fit"!==t?r.elements.popper.style.minWidth=a:(r.elements.popper.style.minWidth=a,r.elements.popper.style.width=a),r.elements.popper.style.maxWidth="max(90vw, ".concat(r.elements.reference.offsetWidth,"px)")}}};return[r,{name:"preventOverflow",options:{padding:10,altBoundary:n,altAxis:!0}}]},Sw=(0,ft.B_)("select-popup"),xw=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,d=t.mobile,h=t.id;return d?e.createElement(bw,{qa:rw,className:u,visible:Boolean(o),onClose:i},s):e.createElement(J_,{contentClassName:Sw(null,u),qa:iw,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:kw({width:r,disablePortal:l,virtualized:c}),id:h},s)}));xw.displayName="SelectPopup";var Lw=(0,ft.B_)("select-filter"),Ew={padding:"4px 4px 0"},Dw=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);return e.useImperativeHandle(n,(function(){return{focus:function(){var e;return null===(e=l.current)||void 0===e?void 0:e.focus({preventScroll:!0})}}}),[]),o?o({onChange:i,onKeyDown:r,value:s,ref:l,style:Ew}):e.createElement("div",{className:Lw(),style:Ew},e.createElement(db,{controlRef:l,controlProps:{className:Lw("input"),size:1},size:a,value:s,placeholder:u,onUpdate:i,onKeyDown:r}))}));Dw.displayName="SelectFilter";var Nw=n(62892),Mw=n.n(Nw),Tw=n(82222),Iw=n.n(Tw);function Ow(e){return"Minified Redux error #"+e+"; visit https://redux.js.org/Errors?code="+e+" for the full message or use the non-minified dev environment for full errors. "}var Aw="function"===typeof Symbol&&Symbol.observable||"@@observable",Rw=function(){return Math.random().toString(36).substring(7).split("").join(".")},Pw={INIT:"@@redux/INIT"+Rw(),REPLACE:"@@redux/REPLACE"+Rw(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+Rw()}};function Zw(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 Fw(e,t,n){var i;if("function"===typeof t&&"function"===typeof n||"function"===typeof n&&"function"===typeof arguments[3])throw new Error(Ow(0));if("function"===typeof t&&"undefined"===typeof n&&(n=t,t=void 0),"undefined"!==typeof n){if("function"!==typeof n)throw new Error(Ow(1));return n(Fw)(e,t)}if("function"!==typeof e)throw new Error(Ow(2));var r=e,o=t,a=[],s=a,u=!1;function l(){s===a&&(s=a.slice())}function c(){if(u)throw new Error(Ow(3));return o}function d(e){if("function"!==typeof e)throw new Error(Ow(4));if(u)throw new Error(Ow(5));var t=!0;return l(),s.push(e),function(){if(t){if(u)throw new Error(Ow(6));t=!1,l();var n=s.indexOf(e);s.splice(n,1),a=null}}}function h(e){if(!Zw(e))throw new Error(Ow(7));if("undefined"===typeof e.type)throw new Error(Ow(8));if(u)throw new Error(Ow(9));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:Pw.INIT}),(i={dispatch:h,subscribe:d,getState:c,replaceReducer:function(e){if("function"!==typeof e)throw new Error(Ow(10));r=e,h({type:Pw.REPLACE})}})[Aw]=function(){var e,t=d;return(e={subscribe:function(e){if("object"!==typeof e||null===e)throw new Error(Ow(11));function n(){e.next&&e.next(c())}return n(),{unsubscribe:t(n)}}})[Aw]=function(){return this},e},i}function jw(e,t){return function(){return t(e.apply(this,arguments))}}function Hw(e,t){if("function"===typeof e)return jw(e,t);if("object"!==typeof e||null===e)throw new Error(Ow(16));var n={};for(var i in e){var r=e[i];"function"===typeof r&&(n[i]=jw(r,t))}return n}function Bw(){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 zw(t,n){var i=(0,e.useState)((function(){return{inputs:n,result:t()}}))[0],r=(0,e.useRef)(!0),o=(0,e.useRef)(i),a=r.current||Boolean(n&&o.current.inputs&&function(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}(n,o.current.inputs)),s=a?o.current:{inputs:n,result:t()};return(0,e.useEffect)((function(){r.current=!1,o.current=s}),[s]),s.result}var Ww=zw,Vw=function(e,t){return zw((function(){return e}),t)},Yw=function(e){var 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,x:r,y:t,center:{x:(n+r)/2,y:(i+t)/2}}},Uw=function(e,t){return{top:e.top-t.top,left:e.left-t.left,bottom:e.bottom+t.bottom,right:e.right+t.right}},Kw=function(e,t){return{top:e.top+t.top,left:e.left+t.left,bottom:e.bottom-t.bottom,right:e.right-t.right}},qw={top:0,right:0,bottom:0,left:0},Gw=function(e){var t=e.borderBox,n=e.margin,i=void 0===n?qw:n,r=e.border,o=void 0===r?qw:r,a=e.padding,s=void 0===a?qw:a,u=Yw(Uw(t,i)),l=Yw(Kw(t,o)),c=Yw(Kw(l,s));return{marginBox:u,borderBox:Yw(t),paddingBox:l,contentBox:c,margin:i,border:o,padding:s}},$w=function(e){var t=e.slice(0,-2);if("px"!==e.slice(-2))return 0;var n=Number(t);return isNaN(n)&&he(!1),n},Qw=function(e,t){var n,i,r=e.borderBox,o=e.border,a=e.margin,s=e.padding,u=(i=t,{top:(n=r).top+i.y,left:n.left+i.x,bottom:n.bottom+i.y,right:n.right+i.x});return Gw({borderBox:u,border:o,margin:a,padding:s})},Xw=function(e,t){return void 0===t&&(t={x:window.pageXOffset,y:window.pageYOffset}),Qw(e,t)},Jw=function(e,t){var n={top:$w(t.marginTop),right:$w(t.marginRight),bottom:$w(t.marginBottom),left:$w(t.marginLeft)},i={top:$w(t.paddingTop),right:$w(t.paddingRight),bottom:$w(t.paddingBottom),left:$w(t.paddingLeft)},r={top:$w(t.borderTopWidth),right:$w(t.borderRightWidth),bottom:$w(t.borderBottomWidth),left:$w(t.borderLeftWidth)};return Gw({borderBox:e,margin:n,padding:i,border:r})},eC=function(e){var t=e.getBoundingClientRect(),n=window.getComputedStyle(e);return Jw(t,n)},tC=Number.isNaN||function(e){return"number"===typeof e&&e!==e};function nC(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||tC(i)&&tC(r)))return!1;var i,r;return!0}var iC=function(e,t){var n;void 0===t&&(t=nC);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}},rC=function(e){var t=[],n=null,i=function(){for(var i=arguments.length,r=new Array(i),o=0;o<i;o++)r[o]=arguments[o];t=r,n||(n=requestAnimationFrame((function(){n=null,e.apply(void 0,t)})))};return i.cancel=function(){n&&(cancelAnimationFrame(n),n=null)},i},oC=!0,aC=/[ \t]{2,}/g,sC=/^[ \t]*/gm,uC=function(e){return e.replace(aC," ").replace(sC,"").trim()},lC=function(e){return uC("\n %creact-beautiful-dnd\n\n %c"+uC(e)+"\n\n %c\ud83d\udc77\u200d This is a development only message. It will be removed in production builds.\n")},cC=function(e){return[lC(e),"color: #00C584; font-size: 1.2em; font-weight: bold;","line-height: 1.5","color: #723874;"]},dC="__react-beautiful-dnd-disable-dev-warnings";function hC(e,t){var n;oC||"undefined"!==typeof window&&window[dC]||(n=console)[e].apply(n,cC(t))}hC.bind(null,"warn"),hC.bind(null,"error");function fC(){}function pC(e,t,n){var i=t.map((function(t){var i=function(e,t){return c({},e,{},t)}(n,t.options);return e.addEventListener(t.eventName,t.fn,i),function(){e.removeEventListener(t.eventName,t.fn,i)}}));return function(){i.forEach((function(e){e()}))}}var gC=!0,vC="Invariant failed";function mC(e){this.message=e}function _C(e,t){if(!e)throw new mC(gC?vC:vC+": "+(t||""))}mC.prototype.toString=function(){return this.message};var yC=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).callbacks=null,t.unbind=fC,t.onWindowError=function(e){var n=t.getCallbacks();n.isDragging()&&n.tryAbort(),e.error instanceof mC&&e.preventDefault()},t.getCallbacks=function(){if(!t.callbacks)throw new Error("Unable to find AppCallbacks in <ErrorBoundary/>");return t.callbacks},t.setCallbacks=function(e){t.callbacks=e},t}re(t,e);var n=t.prototype;return n.componentDidMount=function(){this.unbind=pC(window,[{eventName:"error",fn:this.onWindowError}])},n.componentDidCatch=function(e){if(!(e instanceof mC))throw e;this.setState({})},n.componentWillUnmount=function(){this.unbind()},n.render=function(){return this.props.children(this.setCallbacks)},t}(e.Component),bC=function(e){return e+1},wC=function(e,t){var n=e.droppableId===t.droppableId,i=bC(e.index),r=bC(t.index);return n?"\n You have moved the item from position "+i+"\n to position "+r+"\n ":"\n You have moved the item from position "+i+"\n in list "+e.droppableId+"\n to list "+t.droppableId+"\n in position "+r+"\n "},CC=function(e,t,n){return t.droppableId===n.droppableId?"\n The item "+e+"\n has been combined with "+n.draggableId:"\n The item "+e+"\n in list "+t.droppableId+"\n has been combined with "+n.draggableId+"\n in list "+n.droppableId+"\n "},kC=function(e){return"\n The item has returned to its starting position\n of "+bC(e.index)+"\n"},SC={dragHandleUsageInstructions:"\n Press space bar to start a drag.\n When dragging you can use the arrow keys to move the item around and escape to cancel.\n Some screen readers may require you to be in focus mode or to use your pass through key\n",onDragStart:function(e){return"\n You have lifted an item in position "+bC(e.source.index)+"\n"},onDragUpdate:function(e){var t=e.destination;if(t)return wC(e.source,t);var n=e.combine;return n?CC(e.draggableId,e.source,n):"You are over an area that cannot be dropped on"},onDragEnd:function(e){if("CANCEL"===e.reason)return"\n Movement cancelled.\n "+kC(e.source)+"\n ";var t=e.destination,n=e.combine;return t?"\n You have dropped the item.\n "+wC(e.source,t)+"\n ":n?"\n You have dropped the item.\n "+CC(e.draggableId,e.source,n)+"\n ":"\n The item has been dropped while not over a drop area.\n "+kC(e.source)+"\n "}},xC={x:0,y:0},LC=function(e,t){return{x:e.x+t.x,y:e.y+t.y}},EC=function(e,t){return{x:e.x-t.x,y:e.y-t.y}},DC=function(e,t){return e.x===t.x&&e.y===t.y},NC=function(e){return{x:0!==e.x?-e.x:0,y:0!==e.y?-e.y:0}},MC=function(e,t,n){var i;return void 0===n&&(n=0),(i={})[e]=t,i["x"===e?"y":"x"]=n,i},TC=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},IC=function(e,t){return Math.min.apply(Math,t.map((function(t){return TC(e,t)})))},OC=function(e){return function(t){return{x:e(t.x),y:e(t.y)}}},AC=function(e,t){return{top:e.top+t.y,left:e.left+t.x,bottom:e.bottom+t.y,right:e.right+t.x}},RC=function(e){return[{x:e.left,y:e.top},{x:e.right,y:e.top},{x:e.left,y:e.bottom},{x:e.right,y:e.bottom}]},PC=function(e,t){return t&&t.shouldClipSubject?function(e,t){var n=Yw({top:Math.max(t.top,e.top),right:Math.min(t.right,e.right),bottom:Math.min(t.bottom,e.bottom),left:Math.max(t.left,e.left)});return n.width<=0||n.height<=0?null:n}(t.pageMarginBox,e):Yw(e)},ZC=function(e){var t=e.page,n=e.withPlaceholder,i=e.axis,r=e.frame,o=function(e,t){return t?AC(e,t.scroll.diff.displacement):e}(t.marginBox,r),a=function(e,t,n){var i;return n&&n.increasedBy?c({},e,((i={})[t.end]=e[t.end]+n.increasedBy[t.line],i)):e}(o,i,n);return{page:t,withPlaceholder:n,active:PC(a,r)}},FC=function(e,t){e.frame||_C(!1);var n=e.frame,i=EC(t,n.scroll.initial),r=NC(i),o=c({},n,{scroll:{initial:n.scroll.initial,current:t,diff:{value:i,displacement:r},max:n.scroll.max}});return c({},e,{frame:o,subject:ZC({page:e.subject.page,withPlaceholder:e.subject.withPlaceholder,axis:e.axis,frame:o})})};function jC(e){return Object.values?Object.values(e):Object.keys(e).map((function(t){return e[t]}))}function HC(e,t){if(e.findIndex)return e.findIndex(t);for(var n=0;n<e.length;n++)if(t(e[n]))return n;return-1}function BC(e,t){if(e.find)return e.find(t);var n=HC(e,t);return-1!==n?e[n]:void 0}function zC(e){return Array.prototype.slice.call(e)}var WC=iC((function(e){return e.reduce((function(e,t){return e[t.descriptor.id]=t,e}),{})})),VC=iC((function(e){return e.reduce((function(e,t){return e[t.descriptor.id]=t,e}),{})})),YC=iC((function(e){return jC(e)})),UC=iC((function(e){return jC(e)})),KC=iC((function(e,t){var n=UC(t).filter((function(t){return e===t.descriptor.droppableId})).sort((function(e,t){return e.descriptor.index-t.descriptor.index}));return n}));function qC(e){return e.at&&"REORDER"===e.at.type?e.at.destination:null}function GC(e){return e.at&&"COMBINE"===e.at.type?e.at.combine:null}var $C=iC((function(e,t){return t.filter((function(t){return t.descriptor.id!==e.descriptor.id}))})),QC=function(e,t){return e.descriptor.droppableId===t.descriptor.id},XC={point:xC,value:0},JC={invisible:{},visible:{},all:[]},ek={displaced:JC,displacedBy:XC,at:null},tk=function(e,t){return function(n){return e<=n&&n<=t}},nk=function(e){var t=tk(e.top,e.bottom),n=tk(e.left,e.right);return function(i){if(t(i.top)&&t(i.bottom)&&n(i.left)&&n(i.right))return!0;var r=t(i.top)||t(i.bottom),o=n(i.left)||n(i.right);if(r&&o)return!0;var a=i.top<e.top&&i.bottom>e.bottom,s=i.left<e.left&&i.right>e.right;return!(!a||!s)||(a&&o||s&&r)}},ik=function(e){var t=tk(e.top,e.bottom),n=tk(e.left,e.right);return function(e){return t(e.top)&&t(e.bottom)&&n(e.left)&&n(e.right)}},rk={direction:"vertical",line:"y",crossAxisLine:"x",start:"top",end:"bottom",size:"height",crossAxisStart:"left",crossAxisEnd:"right",crossAxisSize:"width"},ok={direction:"horizontal",line:"x",crossAxisLine:"y",start:"left",end:"right",size:"width",crossAxisStart:"top",crossAxisEnd:"bottom",crossAxisSize:"height"},ak=function(e){var t=e.target,n=e.destination,i=e.viewport,r=e.withDroppableDisplacement,o=e.isVisibleThroughFrameFn,a=r?function(e,t){var n=t.frame?t.frame.scroll.diff.displacement:xC;return AC(e,n)}(t,n):t;return function(e,t,n){return!!t.subject.active&&n(t.subject.active)(e)}(a,n,o)&&function(e,t,n){return n(t)(e)}(a,i,o)},sk=function(e){return ak(c({},e,{isVisibleThroughFrameFn:nk}))},uk=function(e){return ak(c({},e,{isVisibleThroughFrameFn:ik}))},lk=function(e,t,n){if("boolean"===typeof n)return n;if(!t)return!0;var i=t.invisible,r=t.visible;if(i[e])return!1;var o=r[e];return!o||o.shouldAnimate};function ck(e){var t=e.afterDragging,n=e.destination,i=e.displacedBy,r=e.viewport,o=e.forceShouldAnimate,a=e.last;return t.reduce((function(e,t){var s=function(e,t){var n=e.page.marginBox,i={top:t.point.y,right:0,bottom:0,left:t.point.x};return Yw(Uw(n,i))}(t,i),u=t.descriptor.id;if(e.all.push(u),!sk({target:s,destination:n,viewport:r,withDroppableDisplacement:!0}))return e.invisible[t.descriptor.id]=!0,e;var l={draggableId:u,shouldAnimate:lk(u,a,o)};return e.visible[u]=l,e}),{all:[],visible:{},invisible:{}})}function dk(e){var t=e.insideDestination,n=e.inHomeList,i=e.displacedBy,r=e.destination,o=function(e,t){if(!e.length)return 0;var n=e[e.length-1].descriptor.index;return t.inHomeList?n:n+1}(t,{inHomeList:n});return{displaced:JC,displacedBy:i,at:{type:"REORDER",destination:{droppableId:r.descriptor.id,index:o}}}}function hk(e){var t=e.draggable,n=e.insideDestination,i=e.destination,r=e.viewport,o=e.displacedBy,a=e.last,s=e.index,u=e.forceShouldAnimate,l=QC(t,i);if(null==s)return dk({insideDestination:n,inHomeList:l,displacedBy:o,destination:i});var c=BC(n,(function(e){return e.descriptor.index===s}));if(!c)return dk({insideDestination:n,inHomeList:l,displacedBy:o,destination:i});var d=$C(t,n),h=n.indexOf(c);return{displaced:ck({afterDragging:d.slice(h),destination:i,displacedBy:o,last:a,viewport:r.frame,forceShouldAnimate:u}),displacedBy:o,at:{type:"REORDER",destination:{droppableId:i.descriptor.id,index:s}}}}function fk(e,t){return Boolean(t.effected[e])}var pk=function(e){var t=e.isMovingForward,n=e.isInHomeList,i=e.draggable,r=e.draggables,o=e.destination,a=e.insideDestination,s=e.previousImpact,u=e.viewport,l=e.afterCritical,c=s.at;if(c||_C(!1),"REORDER"===c.type){var d=function(e){var t=e.isMovingForward,n=e.isInHomeList,i=e.insideDestination,r=e.location;if(!i.length)return null;var o=r.index,a=t?o+1:o-1,s=i[0].descriptor.index,u=i[i.length-1].descriptor.index;return a<s||a>(n?u:u+1)?null:a}({isMovingForward:t,isInHomeList:n,location:c.destination,insideDestination:a});return null==d?null:hk({draggable:i,insideDestination:a,destination:o,viewport:u,last:s.displaced,displacedBy:s.displacedBy,index:d})}var h=function(e){var t=e.isMovingForward,n=e.destination,i=e.draggables,r=e.combine,o=e.afterCritical;if(!n.isCombineEnabled)return null;var a=r.draggableId,s=i[a].descriptor.index;return fk(a,o)?t?s:s-1:t?s+1:s}({isMovingForward:t,destination:o,displaced:s.displaced,draggables:r,combine:c.combine,afterCritical:l});return null==h?null:hk({draggable:i,insideDestination:a,destination:o,viewport:u,last:s.displaced,displacedBy:s.displacedBy,index:h})},gk=function(e){var t=e.afterCritical,n=e.impact,i=e.draggables,r=GC(n);r||_C(!1);var o=r.draggableId,a=i[o].page.borderBox.center,s=function(e){var t=e.displaced,n=e.afterCritical,i=e.combineWith,r=e.displacedBy,o=Boolean(t.visible[i]||t.invisible[i]);return fk(i,n)?o?xC:NC(r.point):o?r.point:xC}({displaced:n.displaced,afterCritical:t,combineWith:o,displacedBy:n.displacedBy});return LC(a,s)},vk=function(e,t){return t.margin[e.start]+t.borderBox[e.size]/2},mk=function(e,t,n){return t[e.crossAxisStart]+n.margin[e.crossAxisStart]+n.borderBox[e.crossAxisSize]/2},_k=function(e){var t=e.axis,n=e.moveRelativeTo,i=e.isMoving;return MC(t.line,n.marginBox[t.end]+vk(t,i),mk(t,n.marginBox,i))},yk=function(e){var t=e.axis,n=e.moveRelativeTo,i=e.isMoving;return MC(t.line,n.marginBox[t.start]-function(e,t){return t.margin[e.end]+t.borderBox[e.size]/2}(t,i),mk(t,n.marginBox,i))},bk=function(e){var t=e.impact,n=e.draggable,i=e.draggables,r=e.droppable,o=e.afterCritical,a=KC(r.descriptor.id,i),s=n.page,u=r.axis;if(!a.length)return function(e){var t=e.axis,n=e.moveInto,i=e.isMoving;return MC(t.line,n.contentBox[t.start]+vk(t,i),mk(t,n.contentBox,i))}({axis:u,moveInto:r.page,isMoving:s});var l=t.displaced,c=t.displacedBy,d=l.all[0];if(d){var h=i[d];if(fk(d,o))return yk({axis:u,moveRelativeTo:h.page,isMoving:s});var f=Qw(h.page,c.point);return yk({axis:u,moveRelativeTo:f,isMoving:s})}var p=a[a.length-1];if(p.descriptor.id===n.descriptor.id)return s.borderBox.center;if(fk(p.descriptor.id,o)){var g=Qw(p.page,NC(o.displacedBy.point));return _k({axis:u,moveRelativeTo:g,isMoving:s})}return _k({axis:u,moveRelativeTo:p.page,isMoving:s})},wk=function(e,t){var n=e.frame;return n?LC(t,n.scroll.diff.displacement):t},Ck=function(e){var t=function(e){var t=e.impact,n=e.draggable,i=e.droppable,r=e.draggables,o=e.afterCritical,a=n.page.borderBox.center,s=t.at;return i&&s?"REORDER"===s.type?bk({impact:t,draggable:n,draggables:r,droppable:i,afterCritical:o}):gk({impact:t,draggables:r,afterCritical:o}):a}(e),n=e.droppable;return n?wk(n,t):t},kk=function(e,t){var n=EC(t,e.scroll.initial),i=NC(n);return{frame:Yw({top:t.y,bottom:t.y+e.frame.height,left:t.x,right:t.x+e.frame.width}),scroll:{initial:e.scroll.initial,max:e.scroll.max,current:t,diff:{value:n,displacement:i}}}};function Sk(e,t){return e.map((function(e){return t[e]}))}var xk=function(e){var t=e.pageBorderBoxCenter,n=e.draggable,i=function(e,t){return LC(e.scroll.diff.displacement,t)}(e.viewport,t),r=EC(i,n.page.borderBox.center);return LC(n.client.borderBox.center,r)},Lk=function(e){var t=e.draggable,n=e.destination,i=e.newPageBorderBoxCenter,r=e.viewport,o=e.withDroppableDisplacement,a=e.onlyOnMainAxis,s=void 0!==a&&a,u=EC(i,t.page.borderBox.center),l={target:AC(t.page.borderBox,u),destination:n,withDroppableDisplacement:o,viewport:r};return s?function(e){return ak(c({},e,{isVisibleThroughFrameFn:(t=e.destination.axis,function(e){var n=tk(e.top,e.bottom),i=tk(e.left,e.right);return function(e){return t===rk?n(e.top)&&n(e.bottom):i(e.left)&&i(e.right)}})}));var t}(l):uk(l)},Ek=function(e){var t=e.isMovingForward,n=e.draggable,i=e.destination,r=e.draggables,o=e.previousImpact,a=e.viewport,s=e.previousPageBorderBoxCenter,u=e.previousClientSelection,l=e.afterCritical;if(!i.isEnabled)return null;var d=KC(i.descriptor.id,r),h=QC(n,i),f=function(e){var t=e.isMovingForward,n=e.draggable,i=e.destination,r=e.insideDestination,o=e.previousImpact;if(!i.isCombineEnabled)return null;if(!qC(o))return null;function a(e){var t={type:"COMBINE",combine:{draggableId:e,droppableId:i.descriptor.id}};return c({},o,{at:t})}var s=o.displaced.all,u=s.length?s[0]:null;if(t)return u?a(u):null;var l=$C(n,r);if(!u)return l.length?a(l[l.length-1].descriptor.id):null;var d=HC(l,(function(e){return e.descriptor.id===u}));-1===d&&_C(!1);var h=d-1;return h<0?null:a(l[h].descriptor.id)}({isMovingForward:t,draggable:n,destination:i,insideDestination:d,previousImpact:o})||pk({isMovingForward:t,isInHomeList:h,draggable:n,draggables:r,destination:i,insideDestination:d,previousImpact:o,viewport:a,afterCritical:l});if(!f)return null;var p=Ck({impact:f,draggable:n,droppable:i,draggables:r,afterCritical:l});if(Lk({draggable:n,destination:i,newPageBorderBoxCenter:p,viewport:a.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0}))return{clientSelection:xk({pageBorderBoxCenter:p,draggable:n,viewport:a}),impact:f,scrollJumpRequest:null};var g=EC(p,s),v=function(e){var t=e.impact,n=e.viewport,i=e.destination,r=e.draggables,o=e.maxScrollChange,a=kk(n,LC(n.scroll.current,o)),s=i.frame?FC(i,LC(i.frame.scroll.current,o)):i,u=t.displaced,l=ck({afterDragging:Sk(u.all,r),destination:i,displacedBy:t.displacedBy,viewport:a.frame,last:u,forceShouldAnimate:!1}),d=ck({afterDragging:Sk(u.all,r),destination:s,displacedBy:t.displacedBy,viewport:n.frame,last:u,forceShouldAnimate:!1}),h={},f={},p=[u,l,d];return u.all.forEach((function(e){var t=function(e,t){for(var n=0;n<t.length;n++){var i=t[n].visible[e];if(i)return i}return null}(e,p);t?f[e]=t:h[e]=!0})),c({},t,{displaced:{all:u.all,invisible:h,visible:f}})}({impact:f,viewport:a,destination:i,draggables:r,maxScrollChange:g});return{clientSelection:u,impact:v,scrollJumpRequest:g}},Dk=function(e){var t=e.subject.active;return t||_C(!1),t},Nk=function(e,t){var n=e.page.borderBox.center;return fk(e.descriptor.id,t)?EC(n,t.displacedBy.point):n},Mk=function(e,t){var n=e.page.borderBox;return fk(e.descriptor.id,t)?AC(n,NC(t.displacedBy.point)):n},Tk=iC((function(e,t){var n=t[e.line];return{value:n,point:MC(e.line,n)}})),Ik=function(e,t){return c({},e,{scroll:c({},e.scroll,{max:t})})},Ok=function(e,t,n){var i=e.frame;QC(t,e)&&_C(!1),e.subject.withPlaceholder&&_C(!1);var r=Tk(e.axis,t.displaceBy).point,o=function(e,t,n){var i=e.axis;if("virtual"===e.descriptor.mode)return MC(i.line,t[i.line]);var r=e.subject.page.contentBox[i.size],o=KC(e.descriptor.id,n).reduce((function(e,t){return e+t.client.marginBox[i.size]}),0)+t[i.line]-r;return o<=0?null:MC(i.line,o)}(e,r,n),a={placeholderSize:r,increasedBy:o,oldFrameMaxScroll:e.frame?e.frame.scroll.max:null};if(!i)return c({},e,{subject:ZC({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:e.frame})});var s=o?LC(i.scroll.max,o):i.scroll.max,u=Ik(i,s);return c({},e,{subject:ZC({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:u}),frame:u})},Ak=function(e){var t=e.isMovingForward,n=e.previousPageBorderBoxCenter,i=e.draggable,r=e.isOver,o=e.draggables,a=e.droppables,s=e.viewport,u=e.afterCritical,l=function(e){var t=e.isMovingForward,n=e.pageBorderBoxCenter,i=e.source,r=e.droppables,o=e.viewport,a=i.subject.active;if(!a)return null;var s=i.axis,u=tk(a[s.start],a[s.end]),l=YC(r).filter((function(e){return e!==i})).filter((function(e){return e.isEnabled})).filter((function(e){return Boolean(e.subject.active)})).filter((function(e){return nk(o.frame)(Dk(e))})).filter((function(e){var n=Dk(e);return t?a[s.crossAxisEnd]<n[s.crossAxisEnd]:n[s.crossAxisStart]<a[s.crossAxisStart]})).filter((function(e){var t=Dk(e),n=tk(t[s.start],t[s.end]);return u(t[s.start])||u(t[s.end])||n(a[s.start])||n(a[s.end])})).sort((function(e,n){var i=Dk(e)[s.crossAxisStart],r=Dk(n)[s.crossAxisStart];return t?i-r:r-i})).filter((function(e,t,n){return Dk(e)[s.crossAxisStart]===Dk(n[0])[s.crossAxisStart]}));if(!l.length)return null;if(1===l.length)return l[0];var c=l.filter((function(e){return tk(Dk(e)[s.start],Dk(e)[s.end])(n[s.line])}));return 1===c.length?c[0]:c.length>1?c.sort((function(e,t){return Dk(e)[s.start]-Dk(t)[s.start]}))[0]:l.sort((function(e,t){var i=IC(n,RC(Dk(e))),r=IC(n,RC(Dk(t)));return i!==r?i-r:Dk(e)[s.start]-Dk(t)[s.start]}))[0]}({isMovingForward:t,pageBorderBoxCenter:n,source:r,droppables:a,viewport:s});if(!l)return null;var c=KC(l.descriptor.id,o),d=function(e){var t=e.pageBorderBoxCenter,n=e.viewport,i=e.destination,r=e.insideDestination,o=e.afterCritical,a=r.filter((function(e){return uk({target:Mk(e,o),destination:i,viewport:n.frame,withDroppableDisplacement:!0})})).sort((function(e,n){var r=TC(t,wk(i,Nk(e,o))),a=TC(t,wk(i,Nk(n,o)));return r<a?-1:a<r?1:e.descriptor.index-n.descriptor.index}));return a[0]||null}({pageBorderBoxCenter:n,viewport:s,destination:l,insideDestination:c,afterCritical:u}),h=function(e){var t=e.previousPageBorderBoxCenter,n=e.moveRelativeTo,i=e.insideDestination,r=e.draggable,o=e.draggables,a=e.destination,s=e.viewport,u=e.afterCritical;if(!n){if(i.length)return null;var l={displaced:JC,displacedBy:XC,at:{type:"REORDER",destination:{droppableId:a.descriptor.id,index:0}}},c=Ck({impact:l,draggable:r,droppable:a,draggables:o,afterCritical:u}),d=QC(r,a)?a:Ok(a,r,o);return Lk({draggable:r,destination:d,newPageBorderBoxCenter:c,viewport:s.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0})?l:null}var h=Boolean(t[a.axis.line]<=n.page.borderBox.center[a.axis.line]),f=function(){var e=n.descriptor.index;return n.descriptor.id===r.descriptor.id||h?e:e+1}(),p=Tk(a.axis,r.displaceBy);return hk({draggable:r,insideDestination:i,destination:a,viewport:s,displacedBy:p,last:JC,index:f})}({previousPageBorderBoxCenter:n,destination:l,draggable:i,draggables:o,moveRelativeTo:d,insideDestination:c,viewport:s,afterCritical:u});if(!h)return null;var f=Ck({impact:h,draggable:i,droppable:l,draggables:o,afterCritical:u});return{clientSelection:xk({pageBorderBoxCenter:f,draggable:i,viewport:s}),impact:h,scrollJumpRequest:null}},Rk=function(e){var t=e.at;return t?"REORDER"===t.type?t.destination.droppableId:t.combine.droppableId:null},Pk=function(e){var t=e.state,n=e.type,i=function(e,t){var n=Rk(e);return n?t[n]:null}(t.impact,t.dimensions.droppables),r=Boolean(i),o=t.dimensions.droppables[t.critical.droppable.id],a=i||o,s=a.axis.direction,u="vertical"===s&&("MOVE_UP"===n||"MOVE_DOWN"===n)||"horizontal"===s&&("MOVE_LEFT"===n||"MOVE_RIGHT"===n);if(u&&!r)return null;var l="MOVE_DOWN"===n||"MOVE_RIGHT"===n,c=t.dimensions.draggables[t.critical.draggable.id],d=t.current.page.borderBoxCenter,h=t.dimensions,f=h.draggables,p=h.droppables;return u?Ek({isMovingForward:l,previousPageBorderBoxCenter:d,draggable:c,destination:a,draggables:f,viewport:t.viewport,previousClientSelection:t.current.client.selection,previousImpact:t.impact,afterCritical:t.afterCritical}):Ak({isMovingForward:l,previousPageBorderBoxCenter:d,draggable:c,isOver:a,draggables:f,droppables:p,viewport:t.viewport,afterCritical:t.afterCritical})};function Zk(e){return"DRAGGING"===e.phase||"COLLECTING"===e.phase}function Fk(e){var t=tk(e.top,e.bottom),n=tk(e.left,e.right);return function(e){return t(e.y)&&n(e.x)}}function jk(e){var t=e.pageBorderBox,n=e.draggable,i=e.droppables,r=YC(i).filter((function(e){if(!e.isEnabled)return!1;var n,i,r=e.subject.active;if(!r)return!1;if(i=r,!((n=t).left<i.right&&n.right>i.left&&n.top<i.bottom&&n.bottom>i.top))return!1;if(Fk(r)(t.center))return!0;var o=e.axis,a=r.center[o.crossAxisLine],s=t[o.crossAxisStart],u=t[o.crossAxisEnd],l=tk(r[o.crossAxisStart],r[o.crossAxisEnd]),c=l(s),d=l(u);return!c&&!d||(c?s<a:u>a)}));return r.length?1===r.length?r[0].descriptor.id:function(e){var t=e.pageBorderBox,n=e.draggable,i=e.candidates,r=n.page.borderBox.center,o=i.map((function(e){var n=e.axis,i=MC(e.axis.line,t.center[n.line],e.page.borderBox.center[n.crossAxisLine]);return{id:e.descriptor.id,distance:TC(r,i)}})).sort((function(e,t){return t.distance-e.distance}));return o[0]?o[0].id:null}({pageBorderBox:t,draggable:n,candidates:r}):null}var Hk=function(e,t){return Yw(AC(e,t))};function Bk(e){var t=e.displaced,n=e.id;return Boolean(t.visible[n]||t.invisible[n])}var zk=function(e){var t=e.pageOffset,n=e.draggable,i=e.draggables,r=e.droppables,o=e.previousImpact,a=e.viewport,s=e.afterCritical,u=Hk(n.page.borderBox,t),l=jk({pageBorderBox:u,draggable:n,droppables:r});if(!l)return ek;var c=r[l],d=KC(c.descriptor.id,i),h=function(e,t){var n=e.frame;return n?Hk(t,n.scroll.diff.value):t}(c,u);return function(e){var t=e.draggable,n=e.pageBorderBoxWithDroppableScroll,i=e.previousImpact,r=e.destination,o=e.insideDestination,a=e.afterCritical;if(!r.isCombineEnabled)return null;var s=r.axis,u=Tk(r.axis,t.displaceBy),l=u.value,c=n[s.start],d=n[s.end],h=BC($C(t,o),(function(e){var t=e.descriptor.id,n=e.page.borderBox,r=n[s.size]/4,o=fk(t,a),u=Bk({displaced:i.displaced,id:t});return o?u?d>n[s.start]+r&&d<n[s.end]-r:c>n[s.start]-l+r&&c<n[s.end]-l-r:u?d>n[s.start]+l+r&&d<n[s.end]+l-r:c>n[s.start]+r&&c<n[s.end]-r}));return h?{displacedBy:u,displaced:i.displaced,at:{type:"COMBINE",combine:{draggableId:h.descriptor.id,droppableId:r.descriptor.id}}}:null}({pageBorderBoxWithDroppableScroll:h,draggable:n,previousImpact:o,destination:c,insideDestination:d,afterCritical:s})||function(e){var t=e.pageBorderBoxWithDroppableScroll,n=e.draggable,i=e.destination,r=e.insideDestination,o=e.last,a=e.viewport,s=e.afterCritical,u=i.axis,l=Tk(i.axis,n.displaceBy),c=l.value,d=t[u.start],h=t[u.end],f=function(e){var t=e.draggable,n=e.closest,i=e.inHomeList;return n?i&&n.descriptor.index>t.descriptor.index?n.descriptor.index-1:n.descriptor.index:null}({draggable:n,closest:BC($C(n,r),(function(e){var t=e.descriptor.id,n=e.page.borderBox.center[u.line],i=fk(t,s),r=Bk({displaced:o,id:t});return i?r?h<=n:d<n-c:r?h<=n+c:d<n})),inHomeList:QC(n,i)});return hk({draggable:n,insideDestination:r,destination:i,viewport:a,last:o,displacedBy:l,index:f})}({pageBorderBoxWithDroppableScroll:h,draggable:n,destination:c,insideDestination:d,last:o.displaced,viewport:a,afterCritical:s})},Wk=function(e,t){var n;return c({},e,((n={})[t.descriptor.id]=t,n))},Vk=function(e){var t=e.previousImpact,n=e.impact,i=e.droppables,r=Rk(t),o=Rk(n);if(!r)return i;if(r===o)return i;var a=i[r];if(!a.subject.withPlaceholder)return i;var s=function(e){var t=e.subject.withPlaceholder;t||_C(!1);var n=e.frame;if(!n)return c({},e,{subject:ZC({page:e.subject.page,axis:e.axis,frame:null,withPlaceholder:null})});var i=t.oldFrameMaxScroll;i||_C(!1);var r=Ik(n,i);return c({},e,{subject:ZC({page:e.subject.page,axis:e.axis,frame:r,withPlaceholder:null}),frame:r})}(a);return Wk(i,s)},Yk=function(e){var t=e.state,n=e.clientSelection,i=e.dimensions,r=e.viewport,o=e.impact,a=e.scrollJumpRequest,s=r||t.viewport,u=i||t.dimensions,l=n||t.current.client.selection,d=EC(l,t.initial.client.selection),h={offset:d,selection:l,borderBoxCenter:LC(t.initial.client.borderBoxCenter,d)},f={selection:LC(h.selection,s.scroll.current),borderBoxCenter:LC(h.borderBoxCenter,s.scroll.current),offset:LC(h.offset,s.scroll.diff.value)},p={client:h,page:f};if("COLLECTING"===t.phase)return c({phase:"COLLECTING"},t,{dimensions:u,viewport:s,current:p});var g=u.draggables[t.critical.draggable.id],v=o||zk({pageOffset:f.offset,draggable:g,draggables:u.draggables,droppables:u.droppables,previousImpact:t.impact,viewport:s,afterCritical:t.afterCritical}),m=function(e){var t=e.draggable,n=e.draggables,i=e.droppables,r=e.previousImpact,o=e.impact,a=Vk({previousImpact:r,impact:o,droppables:i}),s=Rk(o);if(!s)return a;var u=i[s];if(QC(t,u))return a;if(u.subject.withPlaceholder)return a;var l=Ok(u,t,n);return Wk(a,l)}({draggable:g,impact:v,previousImpact:t.impact,draggables:u.draggables,droppables:u.droppables});return c({},t,{current:p,dimensions:{draggables:u.draggables,droppables:m},impact:v,viewport:s,scrollJumpRequest:a||null,forceShouldAnimate:!a&&null})};var Uk=function(e){var t=e.impact,n=e.viewport,i=e.draggables,r=e.destination,o=e.forceShouldAnimate,a=t.displaced,s=function(e,t){return e.map((function(e){return t[e]}))}(a.all,i);return c({},t,{displaced:ck({afterDragging:s,destination:r,displacedBy:t.displacedBy,viewport:n.frame,forceShouldAnimate:o,last:a})})},Kk=function(e){var t=e.impact,n=e.draggable,i=e.droppable,r=e.draggables,o=e.viewport,a=e.afterCritical,s=Ck({impact:t,draggable:n,draggables:r,droppable:i,afterCritical:a});return xk({pageBorderBoxCenter:s,draggable:n,viewport:o})},qk=function(e){var t=e.state,n=e.dimensions,i=e.viewport;"SNAP"!==t.movementMode&&_C(!1);var r=t.impact,o=i||t.viewport,a=n||t.dimensions,s=a.draggables,u=a.droppables,l=s[t.critical.draggable.id],c=Rk(r);c||_C(!1);var d=u[c],h=Uk({impact:r,viewport:o,destination:d,draggables:s}),f=Kk({impact:h,draggable:l,droppable:d,draggables:s,viewport:o,afterCritical:t.afterCritical});return Yk({impact:h,clientSelection:f,state:t,dimensions:a,viewport:o})},Gk=function(e){var t=e.draggable,n=e.home,i=e.draggables,r=e.viewport,o=Tk(n.axis,t.displaceBy),a=KC(n.descriptor.id,i),s=a.indexOf(t);-1===s&&_C(!1);var u,l=a.slice(s+1),c=l.reduce((function(e,t){return e[t.descriptor.id]=!0,e}),{}),d={inVirtualList:"virtual"===n.descriptor.mode,displacedBy:o,effected:c};return{impact:{displaced:ck({afterDragging:l,destination:n,displacedBy:o,last:null,viewport:r.frame,forceShouldAnimate:!1}),displacedBy:o,at:{type:"REORDER",destination:(u=t.descriptor,{index:u.index,droppableId:u.droppableId})}},afterCritical:d}},$k=function(e){0},Qk=function(e){0},Xk=function(e){var t=e.additions,n=e.updatedDroppables,i=e.viewport,r=i.scroll.diff.value;return t.map((function(e){var t=e.descriptor.droppableId,o=function(e){var t=e.frame;return t||_C(!1),t}(n[t]),a=o.scroll.diff.value,s=function(e){var t=e.draggable,n=e.offset,i=e.initialWindowScroll,r=Qw(t.client,n),o=Xw(r,i);return c({},t,{placeholder:c({},t.placeholder,{client:r}),client:r,page:o})}({draggable:e,offset:LC(r,a),initialWindowScroll:i.scroll.initial});return s}))},Jk=function(e){return"SNAP"===e.movementMode},eS=function(e,t,n){var i=function(e,t){return{draggables:e.draggables,droppables:Wk(e.droppables,t)}}(e.dimensions,t);return!Jk(e)||n?Yk({state:e,dimensions:i}):qk({state:e,dimensions:i})};function tS(e){return e.isDragging&&"SNAP"===e.movementMode?c({phase:"DRAGGING"},e,{scrollJumpRequest:null}):e}var nS={phase:"IDLE",completed:null,shouldFlush:!1},iS=function(e,t){if(void 0===e&&(e=nS),"FLUSH"===t.type)return c({},nS,{shouldFlush:!0});if("INITIAL_PUBLISH"===t.type){"IDLE"!==e.phase&&_C(!1);var n=t.payload,i=n.critical,r=n.clientSelection,o=n.viewport,a=n.dimensions,s=n.movementMode,u=a.draggables[i.draggable.id],l=a.droppables[i.droppable.id],d={selection:r,borderBoxCenter:u.client.borderBox.center,offset:xC},h={client:d,page:{selection:LC(d.selection,o.scroll.initial),borderBoxCenter:LC(d.selection,o.scroll.initial),offset:LC(d.selection,o.scroll.diff.value)}},f=YC(a.droppables).every((function(e){return!e.isFixedOnPage})),p=Gk({draggable:u,home:l,draggables:a.draggables,viewport:o}),g=p.impact;return{phase:"DRAGGING",isDragging:!0,critical:i,movementMode:s,dimensions:a,initial:h,current:h,isWindowScrollAllowed:f,impact:g,afterCritical:p.afterCritical,onLiftImpact:g,viewport:o,scrollJumpRequest:null,forceShouldAnimate:null}}if("COLLECTION_STARTING"===t.type)return"COLLECTING"===e.phase||"DROP_PENDING"===e.phase?e:("DRAGGING"!==e.phase&&_C(!1),c({phase:"COLLECTING"},e,{phase:"COLLECTING"}));if("PUBLISH_WHILE_DRAGGING"===t.type)return"COLLECTING"!==e.phase&&"DROP_PENDING"!==e.phase&&_C(!1),function(e){var t=e.state,n=e.published;$k();var i=n.modified.map((function(e){var n=t.dimensions.droppables[e.droppableId];return FC(n,e.scroll)})),r=c({},t.dimensions.droppables,{},WC(i)),o=VC(Xk({additions:n.additions,updatedDroppables:r,viewport:t.viewport})),a=c({},t.dimensions.draggables,{},o);n.removals.forEach((function(e){delete a[e]}));var s={droppables:r,draggables:a},u=Rk(t.impact),l=u?s.droppables[u]:null,d=s.draggables[t.critical.draggable.id],h=s.droppables[t.critical.droppable.id],f=Gk({draggable:d,home:h,draggables:a,viewport:t.viewport}),p=f.impact,g=f.afterCritical,v=l&&l.isCombineEnabled?t.impact:p,m=zk({pageOffset:t.current.page.offset,draggable:s.draggables[t.critical.draggable.id],draggables:s.draggables,droppables:s.droppables,previousImpact:v,viewport:t.viewport,afterCritical:g});Qk();var _=c({phase:"DRAGGING"},t,{phase:"DRAGGING",impact:m,onLiftImpact:p,dimensions:s,afterCritical:g,forceShouldAnimate:!1});return"COLLECTING"===t.phase?_:c({phase:"DROP_PENDING"},_,{phase:"DROP_PENDING",reason:t.reason,isWaiting:!1})}({state:e,published:t.payload});if("MOVE"===t.type){if("DROP_PENDING"===e.phase)return e;Zk(e)||_C(!1);var v=t.payload.client;return DC(v,e.current.client.selection)?e:Yk({state:e,clientSelection:v,impact:Jk(e)?e.impact:null})}if("UPDATE_DROPPABLE_SCROLL"===t.type){if("DROP_PENDING"===e.phase)return tS(e);if("COLLECTING"===e.phase)return tS(e);Zk(e)||_C(!1);var m=t.payload,_=m.id,y=m.newScroll,b=e.dimensions.droppables[_];if(!b)return e;var w=FC(b,y);return eS(e,w,!1)}if("UPDATE_DROPPABLE_IS_ENABLED"===t.type){if("DROP_PENDING"===e.phase)return e;Zk(e)||_C(!1);var C=t.payload,k=C.id,S=C.isEnabled,x=e.dimensions.droppables[k];x||_C(!1),x.isEnabled===S&&_C(!1);var L=c({},x,{isEnabled:S});return eS(e,L,!0)}if("UPDATE_DROPPABLE_IS_COMBINE_ENABLED"===t.type){if("DROP_PENDING"===e.phase)return e;Zk(e)||_C(!1);var E=t.payload,D=E.id,N=E.isCombineEnabled,M=e.dimensions.droppables[D];M||_C(!1),M.isCombineEnabled===N&&_C(!1);var T=c({},M,{isCombineEnabled:N});return eS(e,T,!0)}if("MOVE_BY_WINDOW_SCROLL"===t.type){if("DROP_PENDING"===e.phase||"DROP_ANIMATING"===e.phase)return e;Zk(e)||_C(!1),e.isWindowScrollAllowed||_C(!1);var I=t.payload.newScroll;if(DC(e.viewport.scroll.current,I))return tS(e);var O=kk(e.viewport,I);return Jk(e)?qk({state:e,viewport:O}):Yk({state:e,viewport:O})}if("UPDATE_VIEWPORT_MAX_SCROLL"===t.type){if(!Zk(e))return e;var A=t.payload.maxScroll;if(DC(A,e.viewport.scroll.max))return e;var R=c({},e.viewport,{scroll:c({},e.viewport.scroll,{max:A})});return c({phase:"DRAGGING"},e,{viewport:R})}if("MOVE_UP"===t.type||"MOVE_DOWN"===t.type||"MOVE_LEFT"===t.type||"MOVE_RIGHT"===t.type){if("COLLECTING"===e.phase||"DROP_PENDING"===e.phase)return e;"DRAGGING"!==e.phase&&_C(!1);var P=Pk({state:e,type:t.type});return P?Yk({state:e,impact:P.impact,clientSelection:P.clientSelection,scrollJumpRequest:P.scrollJumpRequest}):e}if("DROP_PENDING"===t.type){var Z=t.payload.reason;return"COLLECTING"!==e.phase&&_C(!1),c({phase:"DROP_PENDING"},e,{phase:"DROP_PENDING",isWaiting:!0,reason:Z})}if("DROP_ANIMATE"===t.type){var F=t.payload,j=F.completed,H=F.dropDuration,B=F.newHomeClientOffset;return"DRAGGING"!==e.phase&&"DROP_PENDING"!==e.phase&&_C(!1),{phase:"DROP_ANIMATING",completed:j,dropDuration:H,newHomeClientOffset:B,dimensions:e.dimensions}}return"DROP_COMPLETE"===t.type?{phase:"IDLE",completed:t.payload.completed,shouldFlush:!1}:e},rS=function(e){return{type:"LIFT",payload:e}},oS=function(e){return{type:"PUBLISH_WHILE_DRAGGING",payload:e}},aS=function(){return{type:"COLLECTION_STARTING",payload:null}},sS=function(e){return{type:"UPDATE_DROPPABLE_SCROLL",payload:e}},uS=function(e){return{type:"UPDATE_DROPPABLE_IS_ENABLED",payload:e}},lS=function(e){return{type:"UPDATE_DROPPABLE_IS_COMBINE_ENABLED",payload:e}},cS=function(e){return{type:"MOVE",payload:e}},dS=function(){return{type:"MOVE_UP",payload:null}},hS=function(){return{type:"MOVE_DOWN",payload:null}},fS=function(){return{type:"MOVE_RIGHT",payload:null}},pS=function(){return{type:"MOVE_LEFT",payload:null}},gS=function(){return{type:"FLUSH",payload:null}},vS=function(e){return{type:"DROP_COMPLETE",payload:e}},mS=function(e){return{type:"DROP",payload:e}},_S=function(){return{type:"DROP_ANIMATION_FINISHED",payload:null}};var yS={outOfTheWay:"cubic-bezier(0.2, 0, 0, 1)",drop:"cubic-bezier(.2,1,.1,1)"},bS={opacity:{drop:0,combining:.7},scale:{drop:.75}},wS=.33,CS=.55,kS=.2+"s "+yS.outOfTheWay,SS={fluid:"opacity "+kS,snap:"transform "+kS+", opacity "+kS,drop:function(e){var t=e+"s "+yS.drop;return"transform "+t+", opacity "+t},outOfTheWay:"transform "+kS,placeholder:"height "+kS+", width "+kS+", margin "+kS},xS=function(e){return DC(e,xC)?null:"translate("+e.x+"px, "+e.y+"px)"},LS={moveTo:xS,drop:function(e,t){var n=xS(e);return n?t?n+" scale("+bS.scale.drop+")":n:null}},ES=wS,DS=CS,NS=DS-ES,MS=function(e){var t=e.getState,n=e.dispatch;return function(e){return function(i){if("DROP"===i.type){var r=t(),o=i.payload.reason;if("COLLECTING"!==r.phase){if("IDLE"!==r.phase){"DROP_PENDING"===r.phase&&r.isWaiting&&_C(!1),"DRAGGING"!==r.phase&&"DROP_PENDING"!==r.phase&&_C(!1);var a=r.critical,s=r.dimensions,u=s.draggables[r.critical.draggable.id],l=function(e){var t=e.draggables,n=e.reason,i=e.lastImpact,r=e.home,o=e.viewport,a=e.onLiftImpact;return i.at&&"DROP"===n?"REORDER"===i.at.type?{impact:i,didDropInsideDroppable:!0}:{impact:c({},i,{displaced:JC}),didDropInsideDroppable:!0}:{impact:Uk({draggables:t,impact:a,destination:r,viewport:o,forceShouldAnimate:!0}),didDropInsideDroppable:!1}}({reason:o,lastImpact:r.impact,afterCritical:r.afterCritical,onLiftImpact:r.onLiftImpact,home:r.dimensions.droppables[r.critical.droppable.id],viewport:r.viewport,draggables:r.dimensions.draggables}),d=l.impact,h=l.didDropInsideDroppable,f=h?qC(d):null,p=h?GC(d):null,g={index:a.draggable.index,droppableId:a.droppable.id},v={draggableId:u.descriptor.id,type:u.descriptor.type,source:g,reason:o,mode:r.movementMode,destination:f,combine:p},m=function(e){var t=e.impact,n=e.draggable,i=e.dimensions,r=e.viewport,o=e.afterCritical,a=i.draggables,s=i.droppables,u=Rk(t),l=u?s[u]:null,c=s[n.descriptor.droppableId],d=Kk({impact:t,draggable:n,draggables:a,afterCritical:o,droppable:l||c,viewport:r});return EC(d,n.client.borderBox.center)}({impact:d,draggable:u,dimensions:s,viewport:r.viewport,afterCritical:r.afterCritical}),_={critical:r.critical,afterCritical:r.afterCritical,result:v,impact:d};if(!DC(r.current.client.offset,m)||Boolean(v.combine)){var y=function(e){var t=e.current,n=e.destination,i=e.reason,r=TC(t,n);if(r<=0)return ES;if(r>=1500)return DS;var o=ES+NS*(r/1500);return Number(("CANCEL"===i?.6*o:o).toFixed(2))}({current:r.current.client.offset,destination:m,reason:o});n(function(e){return{type:"DROP_ANIMATE",payload:e}}({newHomeClientOffset:m,dropDuration:y,completed:_}))}else n(vS({completed:_}))}}else n(function(e){return{type:"DROP_PENDING",payload:e}}({reason:o}))}else e(i)}}},TS=function(){return{x:window.pageXOffset,y:window.pageYOffset}};function IS(e){var t=e.onWindowScroll;var n=rC((function(){t(TS())})),i=function(e){return{eventName:"scroll",options:{passive:!0,capture:!1},fn:function(t){t.target!==window&&t.target!==window.document||e()}}}(n),r=fC;function o(){return r!==fC}return{start:function(){o()&&_C(!1),r=pC(window,[i])},stop:function(){o()||_C(!1),n.cancel(),r(),r=fC},isActive:o}}var OS=function(e){var t=IS({onWindowScroll:function(t){e.dispatch({type:"MOVE_BY_WINDOW_SCROLL",payload:{newScroll:t}})}});return function(e){return function(n){t.isActive()||"INITIAL_PUBLISH"!==n.type||t.start(),t.isActive()&&function(e){return"DROP_COMPLETE"===e.type||"DROP_ANIMATE"===e.type||"FLUSH"===e.type}(n)&&t.stop(),e(n)}}},AS=function(){var e=[];return{add:function(t){var n=setTimeout((function(){return function(t){var n=HC(e,(function(e){return e.timerId===t}));-1===n&&_C(!1),e.splice(n,1)[0].callback()}(n)})),i={timerId:n,callback:t};e.push(i)},flush:function(){if(e.length){var t=[].concat(e);e.length=0,t.forEach((function(e){clearTimeout(e.timerId),e.callback()}))}}}},RS=function(e,t){$k(),t(),Qk()},PS=function(e,t){return{draggableId:e.draggable.id,type:e.droppable.type,source:{droppableId:e.droppable.id,index:e.draggable.index},mode:t}},ZS=function(e,t,n,i){if(e){var r=function(e){var t=!1,n=!1,i=setTimeout((function(){n=!0})),r=function(r){t||n||(t=!0,e(r),clearTimeout(i))};return r.wasCalled=function(){return t},r}(n);e(t,{announce:r}),r.wasCalled()||n(i(t))}else n(i(t))},FS=function(e,t){var n=function(e,t){var n=AS(),i=null,r=function(n){i||_C(!1),i=null,RS(0,(function(){return ZS(e().onDragEnd,n,t,SC.onDragEnd)}))};return{beforeCapture:function(t,n){i&&_C(!1),RS(0,(function(){var i=e().onBeforeCapture;i&&i({draggableId:t,mode:n})}))},beforeStart:function(t,n){i&&_C(!1),RS(0,(function(){var i=e().onBeforeDragStart;i&&i(PS(t,n))}))},start:function(r,o){i&&_C(!1);var a=PS(r,o);i={mode:o,lastCritical:r,lastLocation:a.source,lastCombine:null},n.add((function(){RS(0,(function(){return ZS(e().onDragStart,a,t,SC.onDragStart)}))}))},update:function(r,o){var a=qC(o),s=GC(o);i||_C(!1);var u=!function(e,t){if(e===t)return!0;var n=e.draggable.id===t.draggable.id&&e.draggable.droppableId===t.draggable.droppableId&&e.draggable.type===t.draggable.type&&e.draggable.index===t.draggable.index,i=e.droppable.id===t.droppable.id&&e.droppable.type===t.droppable.type;return n&&i}(r,i.lastCritical);u&&(i.lastCritical=r);var l,d,h=(d=a,!(null==(l=i.lastLocation)&&null==d||null!=l&&null!=d&&l.droppableId===d.droppableId&&l.index===d.index));h&&(i.lastLocation=a);var f=!function(e,t){return null==e&&null==t||null!=e&&null!=t&&e.draggableId===t.draggableId&&e.droppableId===t.droppableId}(i.lastCombine,s);if(f&&(i.lastCombine=s),u||h||f){var p=c({},PS(r,i.mode),{combine:s,destination:a});n.add((function(){RS(0,(function(){return ZS(e().onDragUpdate,p,t,SC.onDragUpdate)}))}))}},flush:function(){i||_C(!1),n.flush()},drop:r,abort:function(){if(i){var e=c({},PS(i.lastCritical,i.mode),{combine:null,destination:null,reason:"CANCEL"});r(e)}}}}(e,t);return function(e){return function(t){return function(i){if("BEFORE_INITIAL_CAPTURE"!==i.type){if("INITIAL_PUBLISH"===i.type){var r=i.payload.critical;return n.beforeStart(r,i.payload.movementMode),t(i),void n.start(r,i.payload.movementMode)}if("DROP_COMPLETE"===i.type){var o=i.payload.completed.result;return n.flush(),t(i),void n.drop(o)}if(t(i),"FLUSH"!==i.type){var a=e.getState();"DRAGGING"===a.phase&&n.update(a.critical,a.impact)}else n.abort()}else n.beforeCapture(i.payload.draggableId,i.payload.movementMode)}}}},jS=function(e){return function(t){return function(n){if("DROP_ANIMATION_FINISHED"===n.type){var i=e.getState();"DROP_ANIMATING"!==i.phase&&_C(!1),e.dispatch(vS({completed:i.completed}))}else t(n)}}},HS=function(e){var t=null,n=null;return function(i){return function(r){if("FLUSH"!==r.type&&"DROP_COMPLETE"!==r.type&&"DROP_ANIMATION_FINISHED"!==r.type||(n&&(cancelAnimationFrame(n),n=null),t&&(t(),t=null)),i(r),"DROP_ANIMATE"===r.type){var o={eventName:"scroll",options:{capture:!0,passive:!1,once:!0},fn:function(){"DROP_ANIMATING"===e.getState().phase&&e.dispatch({type:"DROP_ANIMATION_FINISHED",payload:null})}};n=requestAnimationFrame((function(){n=null,t=pC(window,[o])}))}}}},BS=function(e){return function(t){return function(n){if(t(n),"PUBLISH_WHILE_DRAGGING"===n.type){var i=e.getState();"DROP_PENDING"===i.phase&&(i.isWaiting||e.dispatch(mS({reason:i.reason})))}}}},zS=Bw,WS=function(e){var t,n=e.dimensionMarshal,i=e.focusMarshal,r=e.styleMarshal,o=e.getResponders,a=e.announce,s=e.autoScroller;return Fw(iS,zS(function(){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(Ow(15))},r={getState:n.getState,dispatch:function(){return i.apply(void 0,arguments)}},o=t.map((function(e){return e(r)}));return i=Bw.apply(void 0,o)(n.dispatch),Rt(Rt({},n),{},{dispatch:i})}}}((t=r,function(){return function(e){return function(n){"INITIAL_PUBLISH"===n.type&&t.dragging(),"DROP_ANIMATE"===n.type&&t.dropping(n.payload.completed.result.reason),"FLUSH"!==n.type&&"DROP_COMPLETE"!==n.type||t.resting(),e(n)}}}),function(e){return function(){return function(t){return function(n){"DROP_COMPLETE"!==n.type&&"FLUSH"!==n.type&&"DROP_ANIMATE"!==n.type||e.stopPublishing(),t(n)}}}}(n),function(e){return function(t){var n=t.getState,i=t.dispatch;return function(t){return function(r){if("LIFT"===r.type){var o=r.payload,a=o.id,s=o.clientSelection,u=o.movementMode,l=n();"DROP_ANIMATING"===l.phase&&i(vS({completed:l.completed})),"IDLE"!==n().phase&&_C(!1),i(gS()),i({type:"BEFORE_INITIAL_CAPTURE",payload:{draggableId:a,movementMode:u}});var c={draggableId:a,scrollOptions:{shouldPublishImmediately:"SNAP"===u}},d=e.startPublishing(c),h=d.critical,f=d.dimensions,p=d.viewport;i({type:"INITIAL_PUBLISH",payload:{critical:h,dimensions:f,clientSelection:s,movementMode:u,viewport:p}})}else t(r)}}}}(n),MS,jS,HS,BS,function(e){return function(t){return function(n){return function(i){if(function(e){return"DROP_COMPLETE"===e.type||"DROP_ANIMATE"===e.type||"FLUSH"===e.type}(i))return e.stop(),void n(i);if("INITIAL_PUBLISH"===i.type){n(i);var r=t.getState();return"DRAGGING"!==r.phase&&_C(!1),void e.start(r)}n(i),e.scroll(t.getState())}}}}(s),OS,function(e){var t=!1;return function(){return function(n){return function(i){if("INITIAL_PUBLISH"===i.type)return t=!0,e.tryRecordFocus(i.payload.critical.draggable.id),n(i),void e.tryRestoreFocusRecorded();if(n(i),t){if("FLUSH"===i.type)return t=!1,void e.tryRestoreFocusRecorded();if("DROP_COMPLETE"===i.type){t=!1;var r=i.payload.completed.result;r.combine&&e.tryShiftRecord(r.draggableId,r.combine.draggableId),e.tryRestoreFocusRecorded()}}}}}}(i),FS(o,a))))},VS=function(){return{additions:{},removals:{},modified:{}}};var YS=function(e){var t=e.scrollHeight,n=e.scrollWidth,i=e.height,r=e.width,o=EC({x:n,y:t},{x:r,y:i});return{x:Math.max(0,o.x),y:Math.max(0,o.y)}},US=function(){var e=document.documentElement;return e||_C(!1),e},KS=function(){var e=US();return YS({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,width:e.clientWidth,height:e.clientHeight})},qS=function(e){var t=e.critical,n=e.scrollOptions,i=e.registry;$k();var r=function(){var e=TS(),t=KS(),n=e.y,i=e.x,r=US(),o=r.clientWidth,a=r.clientHeight;return{frame:Yw({top:n,left:i,right:i+o,bottom:n+a}),scroll:{initial:e,current:e,max:t,diff:{value:xC,displacement:xC}}}}(),o=r.scroll.current,a=t.droppable,s=i.droppable.getAllByType(a.type).map((function(e){return e.callbacks.getDimensionAndWatchScroll(o,n)})),u=i.draggable.getAllByType(t.draggable.type).map((function(e){return e.getDimension(o)})),l={draggables:VC(u),droppables:WC(s)};return Qk(),{dimensions:l,critical:t,viewport:r}};function GS(e,t,n){return n.descriptor.id!==t.id&&(n.descriptor.type===t.type&&"virtual"===e.droppable.getById(n.descriptor.droppableId).descriptor.mode)}var $S=function(e,t){var n=null,i=function(e){var t=e.registry,n=e.callbacks,i=VS(),r=null,o=function(){r||(n.collectionStarting(),r=requestAnimationFrame((function(){r=null,$k();var e=i,o=e.additions,a=e.removals,s=e.modified,u=Object.keys(o).map((function(e){return t.draggable.getById(e).getDimension(xC)})).sort((function(e,t){return e.descriptor.index-t.descriptor.index})),l=Object.keys(s).map((function(e){return{droppableId:e,scroll:t.droppable.getById(e).callbacks.getScrollWhileDragging()}})),c={additions:u,removals:Object.keys(a),modified:l};i=VS(),Qk(),n.publish(c)})))};return{add:function(e){var t=e.descriptor.id;i.additions[t]=e,i.modified[e.descriptor.droppableId]=!0,i.removals[t]&&delete i.removals[t],o()},remove:function(e){var t=e.descriptor;i.removals[t.id]=!0,i.modified[t.droppableId]=!0,i.additions[t.id]&&delete i.additions[t.id],o()},stop:function(){r&&(cancelAnimationFrame(r),r=null,i=VS())}}}({callbacks:{publish:t.publishWhileDragging,collectionStarting:t.collectionStarting},registry:e}),r=function(t){n||_C(!1);var r=n.critical.draggable;"ADDITION"===t.type&&GS(e,r,t.value)&&i.add(t.value),"REMOVAL"===t.type&&GS(e,r,t.value)&&i.remove(t.value)},o={updateDroppableIsEnabled:function(i,r){e.droppable.exists(i)||_C(!1),n&&t.updateDroppableIsEnabled({id:i,isEnabled:r})},updateDroppableIsCombineEnabled:function(i,r){n&&(e.droppable.exists(i)||_C(!1),t.updateDroppableIsCombineEnabled({id:i,isCombineEnabled:r}))},scrollDroppable:function(t,i){n&&e.droppable.getById(t).callbacks.scroll(i)},updateDroppableScroll:function(i,r){n&&(e.droppable.exists(i)||_C(!1),t.updateDroppableScroll({id:i,newScroll:r}))},startPublishing:function(t){n&&_C(!1);var i=e.draggable.getById(t.draggableId),o=e.droppable.getById(i.descriptor.droppableId),a={draggable:i.descriptor,droppable:o.descriptor},s=e.subscribe(r);return n={critical:a,unsubscribe:s},qS({critical:a,registry:e,scrollOptions:t.scrollOptions})},stopPublishing:function(){if(n){i.stop();var t=n.critical.droppable;e.droppable.getAllByType(t.type).forEach((function(e){return e.callbacks.dragStopped()})),n.unsubscribe(),n=null}}};return o},QS=function(e,t){return"IDLE"===e.phase||"DROP_ANIMATING"===e.phase&&(e.completed.result.draggableId!==t&&"DROP"===e.completed.result.reason)},XS=function(e){window.scrollBy(e.x,e.y)},JS=iC((function(e){return YC(e).filter((function(e){return!!e.isEnabled&&!!e.frame}))})),ex=function(e){var t=e.center,n=e.destination,i=e.droppables;if(n){var r=i[n];return r.frame?r:null}var o=function(e,t){var n=BC(JS(t),(function(t){return t.frame||_C(!1),Fk(t.frame.pageMarginBox)(e)}));return n}(t,i);return o},tx=.25,nx=.05,ix=28,rx=function(e){return Math.pow(e,2)},ox={stopDampeningAt:1200,accelerateAt:360},ax=function(e){var t=e.startOfRange,n=e.endOfRange,i=e.current,r=n-t;return 0===r?0:(i-t)/r},sx=ox.accelerateAt,ux=ox.stopDampeningAt,lx=function(e){var t=e.distanceToEdge,n=e.thresholds,i=e.dragStartTime,r=e.shouldUseTimeDampening,o=function(e,t){if(e>t.startScrollingFrom)return 0;if(e<=t.maxScrollValueAt)return ix;if(e===t.startScrollingFrom)return 1;var n=ax({startOfRange:t.maxScrollValueAt,endOfRange:t.startScrollingFrom,current:e}),i=ix*rx(1-n);return Math.ceil(i)}(t,n);return 0===o?0:r?Math.max(function(e,t){var n=t,i=ux,r=Date.now()-n;if(r>=ux)return e;if(r<sx)return 1;var o=ax({startOfRange:sx,endOfRange:i,current:r}),a=e*rx(o);return Math.ceil(a)}(o,i),1):o},cx=function(e){var t=e.container,n=e.distanceToEdges,i=e.dragStartTime,r=e.axis,o=e.shouldUseTimeDampening,a=function(e,t){return{startScrollingFrom:e[t.size]*tx,maxScrollValueAt:e[t.size]*nx}}(t,r);return n[r.end]<n[r.start]?lx({distanceToEdge:n[r.end],thresholds:a,dragStartTime:i,shouldUseTimeDampening:o}):-1*lx({distanceToEdge:n[r.start],thresholds:a,dragStartTime:i,shouldUseTimeDampening:o})},dx=OC((function(e){return 0===e?0:e})),hx=function(e){var t=e.dragStartTime,n=e.container,i=e.subject,r=e.center,o=e.shouldUseTimeDampening,a={top:r.y-n.top,right:n.right-r.x,bottom:n.bottom-r.y,left:r.x-n.left},s=cx({container:n,distanceToEdges:a,dragStartTime:t,axis:rk,shouldUseTimeDampening:o}),u=cx({container:n,distanceToEdges:a,dragStartTime:t,axis:ok,shouldUseTimeDampening:o}),l=dx({x:u,y:s});if(DC(l,xC))return null;var c=function(e){var t=e.container,n=e.subject,i=e.proposedScroll,r=n.height>t.height,o=n.width>t.width;return o||r?o&&r?null:{x:o?0:i.x,y:r?0:i.y}:i}({container:n,subject:i,proposedScroll:l});return c?DC(c,xC)?null:c:null},fx=OC((function(e){return 0===e?0:e>0?1:-1})),px=function(){var e=function(e,t){return e<0?e:e>t?e-t:0};return function(t){var n=t.current,i=t.max,r=t.change,o=LC(n,r),a={x:e(o.x,i.x),y:e(o.y,i.y)};return DC(a,xC)?null:a}}(),gx=function(e){var t=e.max,n=e.current,i=e.change,r={x:Math.max(n.x,t.x),y:Math.max(n.y,t.y)},o=fx(i),a=px({max:r,current:n,change:o});return!a||(0!==o.x&&0===a.x||0!==o.y&&0===a.y)},vx=function(e,t){return gx({current:e.scroll.current,max:e.scroll.max,change:t})},mx=function(e,t){var n=e.frame;return!!n&&gx({current:n.scroll.current,max:n.scroll.max,change:t})},_x=function(e){var t=e.state,n=e.dragStartTime,i=e.shouldUseTimeDampening,r=e.scrollWindow,o=e.scrollDroppable,a=t.current.page.borderBoxCenter,s=t.dimensions.draggables[t.critical.draggable.id].page.marginBox;if(t.isWindowScrollAllowed){var u=function(e){var t=e.viewport,n=e.subject,i=e.center,r=e.dragStartTime,o=e.shouldUseTimeDampening,a=hx({dragStartTime:r,container:t.frame,subject:n,center:i,shouldUseTimeDampening:o});return a&&vx(t,a)?a:null}({dragStartTime:n,viewport:t.viewport,subject:s,center:a,shouldUseTimeDampening:i});if(u)return void r(u)}var l=ex({center:a,destination:Rk(t.impact),droppables:t.dimensions.droppables});if(l){var c=function(e){var t=e.droppable,n=e.subject,i=e.center,r=e.dragStartTime,o=e.shouldUseTimeDampening,a=t.frame;if(!a)return null;var s=hx({dragStartTime:r,container:a.pageMarginBox,subject:n,center:i,shouldUseTimeDampening:o});return s&&mx(t,s)?s:null}({dragStartTime:n,droppable:l,subject:s,center:a,shouldUseTimeDampening:i});c&&o(l.descriptor.id,c)}},yx=function(e){var t=e.move,n=e.scrollDroppable,i=e.scrollWindow,r=function(e,t){if(!mx(e,t))return t;var i=function(e,t){var n=e.frame;return n&&mx(e,t)?px({current:n.scroll.current,max:n.scroll.max,change:t}):null}(e,t);if(!i)return n(e.descriptor.id,t),null;var r=EC(t,i);return n(e.descriptor.id,r),EC(t,r)},o=function(e,t,n){if(!e)return n;if(!vx(t,n))return n;var r=function(e,t){if(!vx(e,t))return null;var n=e.scroll.max,i=e.scroll.current;return px({current:i,max:n,change:t})}(t,n);if(!r)return i(n),null;var o=EC(n,r);return i(o),EC(n,o)};return function(e){var n=e.scrollJumpRequest;if(n){var i=Rk(e.impact);i||_C(!1);var a=r(e.dimensions.droppables[i],n);if(a){var s=e.viewport,u=o(e.isWindowScrollAllowed,s,a);u&&function(e,n){var i=LC(e.current.client.selection,n);t({client:i})}(e,u)}}}},bx=function(e){var t=e.scrollDroppable,n=e.scrollWindow,i=e.move,r=function(e){var t=e.scrollWindow,n=e.scrollDroppable,i=rC(t),r=rC(n),o=null,a=function(e){o||_C(!1);var t=o,n=t.shouldUseTimeDampening,a=t.dragStartTime;_x({state:e,scrollWindow:i,scrollDroppable:r,dragStartTime:a,shouldUseTimeDampening:n})};return{start:function(e){$k(),o&&_C(!1);var t=Date.now(),n=!1,i=function(){n=!0};_x({state:e,dragStartTime:0,shouldUseTimeDampening:!1,scrollWindow:i,scrollDroppable:i}),o={dragStartTime:t,shouldUseTimeDampening:n},Qk(),n&&a(e)},stop:function(){o&&(i.cancel(),r.cancel(),o=null)},scroll:a}}({scrollWindow:n,scrollDroppable:t}),o=yx({move:i,scrollWindow:n,scrollDroppable:t});return{scroll:function(e){"DRAGGING"===e.phase&&("FLUID"!==e.movementMode?e.scrollJumpRequest&&o(e):r.scroll(e))},start:r.start,stop:r.stop}},wx="data-rbd",Cx=function(){var e=wx+"-drag-handle";return{base:e,draggableId:e+"-draggable-id",contextId:e+"-context-id"}}(),kx=function(){var e=wx+"-draggable";return{base:e,contextId:e+"-context-id",id:e+"-id"}}(),Sx=function(){var e=wx+"-droppable";return{base:e,contextId:e+"-context-id",id:e+"-id"}}(),xx={contextId:wx+"-scroll-container-context-id"},Lx=function(e,t){return e.map((function(e){var n=e.styles[t];return n?e.selector+" { "+n+" }":""})).join(" ")},Ex=function(e){var t=function(e){return function(t){return"["+t+'="'+e+'"]'}}(e),n=function(){var e="\n cursor: -webkit-grab;\n cursor: grab;\n ";return{selector:t(Cx.contextId),styles:{always:"\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n touch-action: manipulation;\n ",resting:e,dragging:"pointer-events: none;",dropAnimating:e}}}(),i=[function(){var e="\n transition: "+SS.outOfTheWay+";\n ";return{selector:t(kx.contextId),styles:{dragging:e,dropAnimating:e,userCancel:e}}}(),n,{selector:t(Sx.contextId),styles:{always:"overflow-anchor: none;"}},{selector:"body",styles:{dragging:"\n cursor: grabbing;\n cursor: -webkit-grabbing;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n overflow-anchor: none;\n "}}];return{always:Lx(i,"always"),resting:Lx(i,"resting"),dragging:Lx(i,"dragging"),dropAnimating:Lx(i,"dropAnimating"),userCancel:Lx(i,"userCancel")}},Dx="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement?e.useLayoutEffect:e.useEffect,Nx=function(){var e=document.querySelector("head");return e||_C(!1),e},Mx=function(e){var t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.type="text/css",t};var Tx=function(e){return e&&e.ownerDocument?e.ownerDocument.defaultView:window};function Ix(e){return e instanceof Tx(e).HTMLElement}function Ox(e,t){var n="["+Cx.contextId+'="'+e+'"]',i=zC(document.querySelectorAll(n));if(!i.length)return null;var r=BC(i,(function(e){return e.getAttribute(Cx.draggableId)===t}));return r&&Ix(r)?r:null}function Ax(){var e={draggables:{},droppables:{}},t=[];function n(e){t.length&&t.forEach((function(t){return t(e)}))}function i(t){return e.draggables[t]||null}function r(t){return e.droppables[t]||null}return{draggable:{register:function(t){e.draggables[t.descriptor.id]=t,n({type:"ADDITION",value:t})},update:function(t,n){var i=e.draggables[n.descriptor.id];i&&i.uniqueId===t.uniqueId&&(delete e.draggables[n.descriptor.id],e.draggables[t.descriptor.id]=t)},unregister:function(t){var r=t.descriptor.id,o=i(r);o&&t.uniqueId===o.uniqueId&&(delete e.draggables[r],n({type:"REMOVAL",value:t}))},getById:function(e){var t=i(e);return t||_C(!1),t},findById:i,exists:function(e){return Boolean(i(e))},getAllByType:function(t){return jC(e.draggables).filter((function(e){return e.descriptor.type===t}))}},droppable:{register:function(t){e.droppables[t.descriptor.id]=t},unregister:function(t){var n=r(t.descriptor.id);n&&t.uniqueId===n.uniqueId&&delete e.droppables[t.descriptor.id]},getById:function(e){var t=r(e);return t||_C(!1),t},findById:r,exists:function(e){return Boolean(r(e))},getAllByType:function(t){return jC(e.droppables).filter((function(e){return e.descriptor.type===t}))}},subscribe:function(e){return t.push(e),function(){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}},clean:function(){e.draggables={},e.droppables={},t.length=0}}}var Rx=e.createContext(null),Px=function(){var e=document.body;return e||_C(!1),e},Zx={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)","clip-path":"inset(100%)"},Fx=function(e){return"rbd-announcement-"+e};var jx=0,Hx={separator:"::"};function Bx(e,t){return void 0===t&&(t=Hx),Ww((function(){return""+e+t.separator+jx++}),[t.separator,e])}var zx=e.createContext(null);function Wx(e){0}function Vx(e,t){Wx()}function Yx(t){var n=(0,e.useRef)(t);return(0,e.useEffect)((function(){n.current=t})),n}var Ux,Kx=27,qx=32,Gx=37,$x=38,Qx=39,Xx=40,Jx=((Ux={})[13]=!0,Ux[9]=!0,Ux),eL=function(e){Jx[e.keyCode]&&e.preventDefault()},tL=function(){var e="visibilitychange";return"undefined"===typeof document?e:BC([e,"ms"+e,"webkit"+e,"moz"+e,"o"+e],(function(e){return"on"+e in document}))||e}(),nL=0,iL=5;var rL,oL={type:"IDLE"};function aL(e){var t=e.cancel,n=e.completed,i=e.getPhase,r=e.setPhase;return[{eventName:"mousemove",fn:function(e){var t=e.button,n=e.clientX,o=e.clientY;if(t===nL){var a={x:n,y:o},s=i();if("DRAGGING"===s.type)return e.preventDefault(),void s.actions.move(a);"PENDING"!==s.type&&_C(!1);var u=s.point;if(l=u,c=a,Math.abs(c.x-l.x)>=iL||Math.abs(c.y-l.y)>=iL){var l,c;e.preventDefault();var d=s.actions.fluidLift(a);r({type:"DRAGGING",actions:d})}}}},{eventName:"mouseup",fn:function(e){var r=i();"DRAGGING"===r.type?(e.preventDefault(),r.actions.drop({shouldBlockNextClick:!0}),n()):t()}},{eventName:"mousedown",fn:function(e){"DRAGGING"===i().type&&e.preventDefault(),t()}},{eventName:"keydown",fn:function(e){if("PENDING"!==i().type)return e.keyCode===Kx?(e.preventDefault(),void t()):void eL(e);t()}},{eventName:"resize",fn:t},{eventName:"scroll",options:{passive:!0,capture:!1},fn:function(){"PENDING"===i().type&&t()}},{eventName:"webkitmouseforcedown",fn:function(e){var n=i();"IDLE"===n.type&&_C(!1),n.actions.shouldRespectForcePress()?t():e.preventDefault()}},{eventName:tL,fn:t}]}function sL(){}var uL=((rL={})[34]=!0,rL[33]=!0,rL[36]=!0,rL[35]=!0,rL);function lL(e,t){function n(){t(),e.cancel()}return[{eventName:"keydown",fn:function(i){return i.keyCode===Kx?(i.preventDefault(),void n()):i.keyCode===qx?(i.preventDefault(),t(),void e.drop()):i.keyCode===Xx?(i.preventDefault(),void e.moveDown()):i.keyCode===$x?(i.preventDefault(),void e.moveUp()):i.keyCode===Qx?(i.preventDefault(),void e.moveRight()):i.keyCode===Gx?(i.preventDefault(),void e.moveLeft()):void(uL[i.keyCode]?i.preventDefault():eL(i))}},{eventName:"mousedown",fn:n},{eventName:"mouseup",fn:n},{eventName:"click",fn:n},{eventName:"touchstart",fn:n},{eventName:"resize",fn:n},{eventName:"wheel",fn:n,options:{passive:!0}},{eventName:tL,fn:n}]}var cL={type:"IDLE"},dL=120,hL=.15;var fL={input:!0,button:!0,textarea:!0,select:!0,option:!0,optgroup:!0,video:!0,audio:!0};function pL(e,t){if(null==t)return!1;if(Boolean(fL[t.tagName.toLowerCase()]))return!0;var n=t.getAttribute("contenteditable");return"true"===n||""===n||t!==e&&pL(e,t.parentElement)}function gL(e,t){var n=t.target;return!!Ix(n)&&pL(e,n)}var vL=function(e){return Yw(e.getBoundingClientRect()).center};var mL=function(){var e="matches";return"undefined"===typeof document?e:BC([e,"msMatchesSelector","webkitMatchesSelector"],(function(e){return e in Element.prototype}))||e}();function _L(e,t){return null==e?null:e[mL](t)?e:_L(e.parentElement,t)}function yL(e,t){return e.closest?e.closest(t):_L(e,t)}function bL(e,t){var n,i=t.target;if(!((n=i)instanceof Tx(n).Element))return null;var r=function(e){return"["+Cx.contextId+'="'+e+'"]'}(e),o=yL(i,r);return o&&Ix(o)?o:null}function wL(e){e.preventDefault()}function CL(e){var t=e.expected,n=e.phase,i=e.isLockActive;e.shouldWarn;return!!i()&&t===n}function kL(e){var t=e.lockAPI,n=e.store,i=e.registry,r=e.draggableId;if(t.isClaimed())return!1;var o=i.draggable.findById(r);return!!o&&(!!o.options.isEnabled&&!!QS(n.getState(),r))}function SL(e){var t=e.lockAPI,n=e.contextId,i=e.store,r=e.registry,o=e.draggableId,a=e.forceSensorStop,s=e.sourceEvent;if(!kL({lockAPI:t,store:i,registry:r,draggableId:o}))return null;var u=r.draggable.getById(o),l=function(e,t){var n="["+kx.contextId+'="'+e+'"]',i=BC(zC(document.querySelectorAll(n)),(function(e){return e.getAttribute(kx.id)===t}));return i&&Ix(i)?i:null}(n,u.descriptor.id);if(!l)return null;if(s&&!u.options.canDragInteractiveElements&&gL(l,s))return null;var d=t.claim(a||fC),h="PRE_DRAG";function f(){return u.options.shouldRespectForcePress}function p(){return t.isActive(d)}var g=function(e,t){CL({expected:e,phase:h,isLockActive:p,shouldWarn:!0})&&i.dispatch(t())}.bind(null,"DRAGGING");function v(e){function n(){t.release(),h="COMPLETED"}function r(t,r){if(void 0===r&&(r={shouldBlockNextClick:!1}),e.cleanup(),r.shouldBlockNextClick){var o=pC(window,[{eventName:"click",fn:wL,options:{once:!0,passive:!1,capture:!0}}]);setTimeout(o)}n(),i.dispatch(mS({reason:t}))}return"PRE_DRAG"!==h&&(n(),"PRE_DRAG"!==h&&_C(!1)),i.dispatch(rS(e.liftActionArgs)),h="DRAGGING",c({isActive:function(){return CL({expected:"DRAGGING",phase:h,isLockActive:p,shouldWarn:!1})},shouldRespectForcePress:f,drop:function(e){return r("DROP",e)},cancel:function(e){return r("CANCEL",e)}},e.actions)}return{isActive:function(){return CL({expected:"PRE_DRAG",phase:h,isLockActive:p,shouldWarn:!1})},shouldRespectForcePress:f,fluidLift:function(e){var t=rC((function(e){g((function(){return cS({client:e})}))}));return c({},v({liftActionArgs:{id:o,clientSelection:e,movementMode:"FLUID"},cleanup:function(){return t.cancel()},actions:{move:t}}),{move:t})},snapLift:function(){var e={moveUp:function(){return g(dS)},moveRight:function(){return g(fS)},moveDown:function(){return g(hS)},moveLeft:function(){return g(pS)}};return v({liftActionArgs:{id:o,clientSelection:vL(l),movementMode:"SNAP"},cleanup:fC,actions:e})},abort:function(){CL({expected:"PRE_DRAG",phase:h,isLockActive:p,shouldWarn:!0})&&t.release()}}}var xL=[function(t){var n=(0,e.useRef)(oL),i=(0,e.useRef)(fC),r=Ww((function(){return{eventName:"mousedown",fn:function(e){if(!e.defaultPrevented&&e.button===nL&&!(e.ctrlKey||e.metaKey||e.shiftKey||e.altKey)){var n=t.findClosestDraggableId(e);if(n){var r=t.tryGetLock(n,s,{sourceEvent:e});if(r){e.preventDefault();var o={x:e.clientX,y:e.clientY};i.current(),c(r,o)}}}}}}),[t]),o=Ww((function(){return{eventName:"webkitmouseforcewillbegin",fn:function(e){if(!e.defaultPrevented){var n=t.findClosestDraggableId(e);if(n){var i=t.findOptionsForDraggable(n);i&&(i.shouldRespectForcePress||t.canGetLock(n)&&e.preventDefault())}}}}}),[t]),a=Vw((function(){i.current=pC(window,[o,r],{passive:!1,capture:!0})}),[o,r]),s=Vw((function(){"IDLE"!==n.current.type&&(n.current=oL,i.current(),a())}),[a]),u=Vw((function(){var e=n.current;s(),"DRAGGING"===e.type&&e.actions.cancel({shouldBlockNextClick:!0}),"PENDING"===e.type&&e.actions.abort()}),[s]),l=Vw((function(){var e=aL({cancel:u,completed:s,getPhase:function(){return n.current},setPhase:function(e){n.current=e}});i.current=pC(window,e,{capture:!0,passive:!1})}),[u,s]),c=Vw((function(e,t){"IDLE"!==n.current.type&&_C(!1),n.current={type:"PENDING",point:t,actions:e},l()}),[l]);Dx((function(){return a(),function(){i.current()}}),[a])},function(t){var n=(0,e.useRef)(sL),i=Ww((function(){return{eventName:"keydown",fn:function(e){if(!e.defaultPrevented&&e.keyCode===qx){var i=t.findClosestDraggableId(e);if(i){var o=t.tryGetLock(i,u,{sourceEvent:e});if(o){e.preventDefault();var a=!0,s=o.snapLift();n.current(),n.current=pC(window,lL(s,u),{capture:!0,passive:!1})}}}function u(){a||_C(!1),a=!1,n.current(),r()}}}}),[t]),r=Vw((function(){n.current=pC(window,[i],{passive:!1,capture:!0})}),[i]);Dx((function(){return r(),function(){n.current()}}),[r])},function(t){var n=(0,e.useRef)(cL),i=(0,e.useRef)(fC),r=Vw((function(){return n.current}),[]),o=Vw((function(e){n.current=e}),[]),a=Ww((function(){return{eventName:"touchstart",fn:function(e){if(!e.defaultPrevented){var n=t.findClosestDraggableId(e);if(n){var r=t.tryGetLock(n,u,{sourceEvent:e});if(r){var o=e.touches[0],a={x:o.clientX,y:o.clientY};i.current(),h(r,a)}}}}}}),[t]),s=Vw((function(){i.current=pC(window,[a],{capture:!0,passive:!1})}),[a]),u=Vw((function(){var e=n.current;"IDLE"!==e.type&&("PENDING"===e.type&&clearTimeout(e.longPressTimerId),o(cL),i.current(),s())}),[s,o]),l=Vw((function(){var e=n.current;u(),"DRAGGING"===e.type&&e.actions.cancel({shouldBlockNextClick:!0}),"PENDING"===e.type&&e.actions.abort()}),[u]),c=Vw((function(){var e={capture:!0,passive:!1},t={cancel:l,completed:u,getPhase:r},n=pC(window,function(e){var t=e.cancel,n=e.completed,i=e.getPhase;return[{eventName:"touchmove",options:{capture:!1},fn:function(e){var n=i();if("DRAGGING"===n.type){n.hasMoved=!0;var r=e.touches[0],o={x:r.clientX,y:r.clientY};e.preventDefault(),n.actions.move(o)}else t()}},{eventName:"touchend",fn:function(e){var r=i();"DRAGGING"===r.type?(e.preventDefault(),r.actions.drop({shouldBlockNextClick:!0}),n()):t()}},{eventName:"touchcancel",fn:function(e){"DRAGGING"===i().type?(e.preventDefault(),t()):t()}},{eventName:"touchforcechange",fn:function(e){var n=i();"IDLE"===n.type&&_C(!1);var r=e.touches[0];if(r&&r.force>=hL){var o=n.actions.shouldRespectForcePress();if("PENDING"!==n.type)return o?n.hasMoved?void e.preventDefault():void t():void e.preventDefault();o&&t()}}},{eventName:tL,fn:t}]}(t),e),o=pC(window,function(e){var t=e.cancel,n=e.getPhase;return[{eventName:"orientationchange",fn:t},{eventName:"resize",fn:t},{eventName:"contextmenu",fn:function(e){e.preventDefault()}},{eventName:"keydown",fn:function(e){"DRAGGING"===n().type?(e.keyCode===Kx&&e.preventDefault(),t()):t()}},{eventName:tL,fn:t}]}(t),e);i.current=function(){n(),o()}}),[l,r,u]),d=Vw((function(){var e=r();"PENDING"!==e.type&&_C(!1);var t=e.actions.fluidLift(e.point);o({type:"DRAGGING",actions:t,hasMoved:!1})}),[r,o]),h=Vw((function(e,t){"IDLE"!==r().type&&_C(!1);var n=setTimeout(d,dL);o({type:"PENDING",point:t,actions:e,longPressTimerId:n}),c()}),[c,r,o,d]);Dx((function(){return s(),function(){i.current();var e=r();"PENDING"===e.type&&(clearTimeout(e.longPressTimerId),o(cL))}}),[r,s,o]),Dx((function(){return pC(window,[{eventName:"touchmove",fn:function(){},options:{capture:!1,passive:!1}}])}),[])}];function LL(t){var n=t.contextId,i=t.store,r=t.registry,o=t.customSensors,a=t.enableDefaultSensors,s=[].concat(a?xL:[],o||[]),u=(0,e.useState)((function(){return function(){var e=null;function t(){e||_C(!1),e=null}return{isClaimed:function(){return Boolean(e)},isActive:function(t){return t===e},claim:function(t){e&&_C(!1);var n={abandon:t};return e=n,n},release:t,tryAbandon:function(){e&&(e.abandon(),t())}}}()}))[0],l=Vw((function(e,t){e.isDragging&&!t.isDragging&&u.tryAbandon()}),[u]);Dx((function(){var e=i.getState();return i.subscribe((function(){var t=i.getState();l(e,t),e=t}))}),[u,i,l]),Dx((function(){return u.tryAbandon}),[u.tryAbandon]);var c=Vw((function(e){return kL({lockAPI:u,registry:r,store:i,draggableId:e})}),[u,r,i]),d=Vw((function(e,t,o){return SL({lockAPI:u,registry:r,contextId:n,store:i,draggableId:e,forceSensorStop:t,sourceEvent:o&&o.sourceEvent?o.sourceEvent:null})}),[n,u,r,i]),h=Vw((function(e){return function(e,t){var n=bL(e,t);return n?n.getAttribute(Cx.draggableId):null}(n,e)}),[n]),f=Vw((function(e){var t=r.draggable.findById(e);return t?t.options:null}),[r.draggable]),p=Vw((function(){u.isClaimed()&&(u.tryAbandon(),"IDLE"!==i.getState().phase&&i.dispatch(gS()))}),[u,i]),g=Vw(u.isClaimed,[u]),v=Ww((function(){return{canGetLock:c,tryGetLock:d,findClosestDraggableId:h,findOptionsForDraggable:f,tryReleaseLock:p,isLockClaimed:g}}),[c,d,h,f,p,g]);Wx();for(var m=0;m<s.length;m++)s[m](v)}var EL=function(e){return{onBeforeCapture:e.onBeforeCapture,onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragEnd:e.onDragEnd,onDragUpdate:e.onDragUpdate}};function DL(e){return e.current||_C(!1),e.current}function NL(t){var n=t.contextId,i=t.setCallbacks,r=t.sensors,o=t.nonce,a=t.dragHandleUsageInstructions,s=(0,e.useRef)(null);Vx();var u=Yx(t),d=Vw((function(){return EL(u.current)}),[u]),h=function(t){var n=Ww((function(){return Fx(t)}),[t]),i=(0,e.useRef)(null);return(0,e.useEffect)((function(){var e=document.createElement("div");return i.current=e,e.id=n,e.setAttribute("aria-live","assertive"),e.setAttribute("aria-atomic","true"),c(e.style,Zx),Px().appendChild(e),function(){setTimeout((function(){var t=Px();t.contains(e)&&t.removeChild(e),e===i.current&&(i.current=null)}))}}),[n]),Vw((function(e){var t=i.current;t&&(t.textContent=e)}),[])}(n),f=function(t){var n=t.contextId,i=t.text,r=Bx("hidden-text",{separator:"-"}),o=Ww((function(){return"rbd-hidden-text-"+(e={contextId:n,uniqueId:r}).contextId+"-"+e.uniqueId;var e}),[r,n]);return(0,e.useEffect)((function(){var e=document.createElement("div");return e.id=o,e.textContent=i,e.style.display="none",Px().appendChild(e),function(){var t=Px();t.contains(e)&&t.removeChild(e)}}),[o,i]),o}({contextId:n,text:a}),p=function(t,n){var i=Ww((function(){return Ex(t)}),[t]),r=(0,e.useRef)(null),o=(0,e.useRef)(null),a=Vw(iC((function(e){var t=o.current;t||_C(!1),t.textContent=e})),[]),s=Vw((function(e){var t=r.current;t||_C(!1),t.textContent=e}),[]);Dx((function(){(r.current||o.current)&&_C(!1);var e=Mx(n),u=Mx(n);return r.current=e,o.current=u,e.setAttribute(wx+"-always",t),u.setAttribute(wx+"-dynamic",t),Nx().appendChild(e),Nx().appendChild(u),s(i.always),a(i.resting),function(){var e=function(e){var t=e.current;t||_C(!1),Nx().removeChild(t),e.current=null};e(r),e(o)}}),[n,s,a,i.always,i.resting,t]);var u=Vw((function(){return a(i.dragging)}),[a,i.dragging]),l=Vw((function(e){a("DROP"!==e?i.userCancel:i.dropAnimating)}),[a,i.dropAnimating,i.userCancel]),c=Vw((function(){o.current&&a(i.resting)}),[a,i.resting]);return Ww((function(){return{dragging:u,dropping:l,resting:c}}),[u,l,c])}(n,o),g=Vw((function(e){DL(s).dispatch(e)}),[]),v=Ww((function(){return Hw({publishWhileDragging:oS,updateDroppableScroll:sS,updateDroppableIsEnabled:uS,updateDroppableIsCombineEnabled:lS,collectionStarting:aS},g)}),[g]),m=function(){var t=Ww(Ax,[]);return(0,e.useEffect)((function(){return function(){requestAnimationFrame(t.clean)}}),[t]),t}(),_=Ww((function(){return $S(m,v)}),[m,v]),y=Ww((function(){return bx(c({scrollWindow:XS,scrollDroppable:_.scrollDroppable},Hw({move:cS},g)))}),[_.scrollDroppable,g]),b=function(t){var n=(0,e.useRef)({}),i=(0,e.useRef)(null),r=(0,e.useRef)(null),o=(0,e.useRef)(!1),a=Vw((function(e,t){var i={id:e,focus:t};return n.current[e]=i,function(){var t=n.current;t[e]!==i&&delete t[e]}}),[]),s=Vw((function(e){var n=Ox(t,e);n&&n!==document.activeElement&&n.focus()}),[t]),u=Vw((function(e,t){i.current===e&&(i.current=t)}),[]),l=Vw((function(){r.current||o.current&&(r.current=requestAnimationFrame((function(){r.current=null;var e=i.current;e&&s(e)})))}),[s]),c=Vw((function(e){i.current=null;var t=document.activeElement;t&&t.getAttribute(Cx.draggableId)===e&&(i.current=e)}),[]);return Dx((function(){return o.current=!0,function(){o.current=!1;var e=r.current;e&&cancelAnimationFrame(e)}}),[]),Ww((function(){return{register:a,tryRecordFocus:c,tryRestoreFocusRecorded:l,tryShiftRecord:u}}),[a,c,l,u])}(n),w=Ww((function(){return WS({announce:h,autoScroller:y,dimensionMarshal:_,focusMarshal:b,getResponders:d,styleMarshal:p})}),[h,y,_,b,d,p]);s.current=w;var C=Vw((function(){var e=DL(s);"IDLE"!==e.getState().phase&&e.dispatch(gS())}),[]),k=Vw((function(){var e=DL(s).getState();return e.isDragging||"DROP_ANIMATING"===e.phase}),[]);i(Ww((function(){return{isDragging:k,tryAbort:C}}),[k,C]));var S=Vw((function(e){return QS(DL(s).getState(),e)}),[]),x=Vw((function(){return Zk(DL(s).getState())}),[]),L=Ww((function(){return{marshal:_,focus:b,contextId:n,canLift:S,isMovementAllowed:x,dragHandleUsageInstructionsId:f,registry:m}}),[n,_,f,b,S,x,m]);return LL({contextId:n,store:w,registry:m,customSensors:r,enableDefaultSensors:!1!==t.enableDefaultSensors}),(0,e.useEffect)((function(){return C}),[C]),e.createElement(zx.Provider,{value:L},e.createElement(l,{context:Rx,store:w},t.children))}var ML=0;function TL(t){var n=Ww((function(){return""+ML++}),[]),i=t.dragHandleUsageInstructions||SC.dragHandleUsageInstructions;return e.createElement(yC,null,(function(r){return e.createElement(NL,{nonce:t.nonce,contextId:n,setCallbacks:r,dragHandleUsageInstructions:i,enableDefaultSensors:t.enableDefaultSensors,sensors:t.sensors,onBeforeCapture:t.onBeforeCapture,onBeforeDragStart:t.onBeforeDragStart,onDragStart:t.onDragStart,onDragUpdate:t.onDragUpdate,onDragEnd:t.onDragEnd},t.children)}))}var IL=function(e){return function(t){return e===t}},OL=IL("scroll"),AL=IL("auto"),RL=(IL("visible"),function(e,t){return t(e.overflowX)||t(e.overflowY)}),PL=function(e){var t=window.getComputedStyle(e),n={overflowX:t.overflowX,overflowY:t.overflowY};return RL(n,OL)||RL(n,AL)},ZL=function e(t){return null==t||t===document.body||t===document.documentElement?null:PL(t)?t:e(t.parentElement)},FL=function(e){return{x:e.scrollLeft,y:e.scrollTop}},jL=function e(t){return!!t&&("fixed"===window.getComputedStyle(t).position||e(t.parentElement))},HL=function(e){return{closestScrollable:ZL(e),isFixedOnPage:jL(e)}},BL=function(e){var t=e.ref,n=e.descriptor,i=e.env,r=e.windowScroll,o=e.direction,a=e.isDropDisabled,s=e.isCombineEnabled,u=e.shouldClipSubject,l=i.closestScrollable,c=function(e,t){var n=eC(e);if(!t)return n;if(e!==t)return n;var i=n.paddingBox.top-t.scrollTop,r=n.paddingBox.left-t.scrollLeft,o=i+t.scrollHeight,a=r+t.scrollWidth,s=Uw({top:i,right:a,bottom:o,left:r},n.border);return Gw({borderBox:s,margin:n.margin,border:n.border,padding:n.padding})}(t,l),d=Xw(c,r),h=function(){if(!l)return null;var e=eC(l),t={scrollHeight:l.scrollHeight,scrollWidth:l.scrollWidth};return{client:e,page:Xw(e,r),scroll:FL(l),scrollSize:t,shouldClipSubject:u}}(),f=function(e){var t=e.descriptor,n=e.isEnabled,i=e.isCombineEnabled,r=e.isFixedOnPage,o=e.direction,a=e.client,s=e.page,u=e.closest,l=function(){if(!u)return null;var e=u.scrollSize,t=u.client,n=YS({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,height:t.paddingBox.height,width:t.paddingBox.width});return{pageMarginBox:u.page.marginBox,frameClient:t,scrollSize:e,shouldClipSubject:u.shouldClipSubject,scroll:{initial:u.scroll,current:u.scroll,max:n,diff:{value:xC,displacement:xC}}}}(),c="vertical"===o?rk:ok;return{descriptor:t,isCombineEnabled:i,isFixedOnPage:r,axis:c,isEnabled:n,client:a,page:s,frame:l,subject:ZC({page:s,withPlaceholder:null,axis:c,frame:l})}}({descriptor:n,isEnabled:!a,isCombineEnabled:s,isFixedOnPage:i.isFixedOnPage,direction:o,client:c,page:d,closest:h});return f},zL={passive:!1},WL={passive:!0},VL=function(e){return e.shouldPublishImmediately?zL:WL};function YL(t){var n=(0,e.useContext)(t);return n||_C(!1),n}var UL=function(e){return e&&e.env.closestScrollable||null};function KL(){}var qL={width:0,height:0,margin:{top:0,right:0,bottom:0,left:0}},GL=function(e){var t=e.isAnimatingOpenOnMount,n=e.placeholder,i=e.animate,r=function(e){var t=e.isAnimatingOpenOnMount,n=e.placeholder,i=e.animate;return t||"close"===i?qL:{height:n.client.borderBox.height,width:n.client.borderBox.width,margin:n.client.margin}}({isAnimatingOpenOnMount:t,placeholder:n,animate:i});return{display:n.display,boxSizing:"border-box",width:r.width,height:r.height,marginTop:r.margin.top,marginRight:r.margin.right,marginBottom:r.margin.bottom,marginLeft:r.margin.left,flexShrink:"0",flexGrow:"0",pointerEvents:"none",transition:"none"!==i?SS.placeholder:null}};var $L=e.memo((function(t){var n=(0,e.useRef)(null),i=Vw((function(){n.current&&(clearTimeout(n.current),n.current=null)}),[]),r=t.animate,o=t.onTransitionEnd,a=t.onClose,s=t.contextId,u=(0,e.useState)("open"===t.animate),l=u[0],c=u[1];(0,e.useEffect)((function(){return l?"open"!==r?(i(),c(!1),KL):n.current?KL:(n.current=setTimeout((function(){n.current=null,c(!1)})),i):KL}),[r,l,i]);var d=Vw((function(e){"height"===e.propertyName&&(o(),"close"===r&&a())}),[r,a,o]),h=GL({isAnimatingOpenOnMount:l,animate:t.animate,placeholder:t.placeholder});return e.createElement(t.placeholder.tagName,{style:h,"data-rbd-placeholder-context-id":s,onTransitionEnd:d,ref:t.innerRef})})),QL=e.createContext(null);var XL=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={isVisible:Boolean(t.props.on),data:t.props.on,animate:t.props.shouldAnimate&&t.props.on?"open":"none"},t.onClose=function(){"close"===t.state.animate&&t.setState({isVisible:!1})},t}return re(t,e),t.getDerivedStateFromProps=function(e,t){return e.shouldAnimate?e.on?{isVisible:!0,data:e.on,animate:"open"}:t.isVisible?{isVisible:!0,data:t.data,animate:"close"}:{isVisible:!1,animate:"close",data:null}:{isVisible:Boolean(e.on),data:e.on,animate:"none"}},t.prototype.render=function(){if(!this.state.isVisible)return null;var e={onClose:this.onClose,data:this.state.data,animate:this.state.animate};return this.props.children(e)},t}(e.PureComponent),JL={dragging:5e3,dropAnimating:4500},eE=function(e,t){return t?SS.drop(t.duration):e?SS.snap:SS.fluid},tE=function(e,t){return e?t?bS.opacity.drop:bS.opacity.combining:null},nE=function(e){return null!=e.forceShouldAnimate?e.forceShouldAnimate:"SNAP"===e.mode};function iE(e){return"DRAGGING"===e.type?function(e){var t=e.dimension.client,n=e.offset,i=e.combineWith,r=e.dropping,o=Boolean(i),a=nE(e),s=Boolean(r),u=s?LS.drop(n,o):LS.moveTo(n);return{position:"fixed",top:t.marginBox.top,left:t.marginBox.left,boxSizing:"border-box",width:t.borderBox.width,height:t.borderBox.height,transition:eE(a,r),transform:u,opacity:tE(o,s),zIndex:s?JL.dropAnimating:JL.dragging,pointerEvents:"none"}}(e):(t=e,{transform:LS.moveTo(t.offset),transition:t.shouldAnimateDisplacement?null:"none"});var t}function rE(t){var n=Bx("draggable"),i=t.descriptor,r=t.registry,o=t.getDraggableRef,a=t.canDragInteractiveElements,s=t.shouldRespectForcePress,u=t.isEnabled,l=Ww((function(){return{canDragInteractiveElements:a,shouldRespectForcePress:s,isEnabled:u}}),[a,u,s]),c=Vw((function(e){var t=o();return t||_C(!1),function(e,t,n){void 0===n&&(n=xC);var i=window.getComputedStyle(t),r=t.getBoundingClientRect(),o=Jw(r,i),a=Xw(o,n);return{descriptor:e,placeholder:{client:o,tagName:t.tagName.toLowerCase(),display:i.display},displaceBy:{x:o.marginBox.width,y:o.marginBox.height},client:o,page:a}}(i,t,e)}),[i,o]),d=Ww((function(){return{uniqueId:n,descriptor:i,options:l,getDimension:c}}),[i,c,l,n]),h=(0,e.useRef)(d),f=(0,e.useRef)(!0);Dx((function(){return r.draggable.register(h.current),function(){return r.draggable.unregister(h.current)}}),[r.draggable]),Dx((function(){if(f.current)f.current=!1;else{var e=h.current;h.current=d,r.draggable.update(d,e)}}),[d,r.draggable])}function oE(e,t,n){Vx()}function aE(e){e.preventDefault()}var sE=function(e,t){return e===t},uE=function(e){var t=e.combine,n=e.destination;return n?n.droppableId:t?t.droppableId:null},lE=function(e){return e.combine?e.combine.draggableId:null},cE=function(e){return e.at&&"COMBINE"===e.at.type?e.at.combine.draggableId:null};function dE(e){return{isDragging:!1,isDropAnimating:!1,isClone:!1,dropAnimation:null,mode:null,draggingOver:null,combineTargetFor:e,combineWith:null}}var hE={mapped:{type:"SECONDARY",offset:xC,combineTargetFor:null,shouldAnimateDisplacement:!0,snapshot:dE(null)}};var fE=z((function(){var e=function(){var e=iC((function(e,t){return{x:e,y:t}})),t=iC((function(e,t,n,i,r){return{isDragging:!0,isClone:t,isDropAnimating:Boolean(r),dropAnimation:r,mode:e,draggingOver:n,combineWith:i,combineTargetFor:null}})),n=iC((function(e,n,i,r,o,a,s){return{mapped:{type:"DRAGGING",dropping:null,draggingOver:o,combineWith:a,mode:n,offset:e,dimension:i,forceShouldAnimate:s,snapshot:t(n,r,o,a,null)}}}));return function(i,r){if(i.isDragging){if(i.critical.draggable.id!==r.draggableId)return null;var o=i.current.client.offset,a=i.dimensions.draggables[r.draggableId],s=Rk(i.impact),u=cE(i.impact),l=i.forceShouldAnimate;return n(e(o.x,o.y),i.movementMode,a,r.isClone,s,u,l)}if("DROP_ANIMATING"===i.phase){var c=i.completed;if(c.result.draggableId!==r.draggableId)return null;var d=r.isClone,h=i.dimensions.draggables[r.draggableId],f=c.result,p=f.mode,g=uE(f),v=lE(f),m={duration:i.dropDuration,curve:yS.drop,moveTo:i.newHomeClientOffset,opacity:v?bS.opacity.drop:null,scale:v?bS.scale.drop:null};return{mapped:{type:"DRAGGING",offset:i.newHomeClientOffset,dimension:h,dropping:m,draggingOver:g,combineWith:v,mode:p,forceShouldAnimate:null,snapshot:t(p,d,g,v,m)}}}return null}}(),t=function(){var e=iC((function(e,t){return{x:e,y:t}})),t=iC(dE),n=iC((function(e,n,i){return void 0===n&&(n=null),{mapped:{type:"SECONDARY",offset:e,combineTargetFor:n,shouldAnimateDisplacement:i,snapshot:t(n)}}})),i=function(e){return e?n(xC,e,!0):null},r=function(t,r,o,a){var s=o.displaced.visible[t],u=Boolean(a.inVirtualList&&a.effected[t]),l=GC(o),c=l&&l.draggableId===t?r:null;if(!s){if(!u)return i(c);if(o.displaced.invisible[t])return null;var d=NC(a.displacedBy.point),h=e(d.x,d.y);return n(h,c,!0)}if(u)return i(c);var f=o.displacedBy.point,p=e(f.x,f.y);return n(p,c,s.shouldAnimate)};return function(e,t){if(e.isDragging)return e.critical.draggable.id===t.draggableId?null:r(t.draggableId,e.critical.draggable.id,e.impact,e.afterCritical);if("DROP_ANIMATING"===e.phase){var n=e.completed;return n.result.draggableId===t.draggableId?null:r(t.draggableId,n.result.draggableId,n.impact,n.afterCritical)}return null}}();return function(n,i){return e(n,i)||t(n,i)||hE}}),{dropAnimationFinished:_S},null,{context:Rx,pure:!0,areStatePropsEqual:sE})((function(t){var n=(0,e.useRef)(null),i=Vw((function(e){n.current=e}),[]),r=Vw((function(){return n.current}),[]),o=YL(zx),a=o.contextId,s=o.dragHandleUsageInstructionsId,u=o.registry,l=YL(QL),c=l.type,d=l.droppableId,h=Ww((function(){return{id:t.draggableId,index:t.index,type:c,droppableId:d}}),[t.draggableId,t.index,c,d]),f=t.children,p=t.draggableId,g=t.isEnabled,v=t.shouldRespectForcePress,m=t.canDragInteractiveElements,_=t.isClone,y=t.mapped,b=t.dropAnimationFinished;oE(),Wx(),_||rE(Ww((function(){return{descriptor:h,registry:u,getDraggableRef:r,canDragInteractiveElements:m,shouldRespectForcePress:v,isEnabled:g}}),[h,u,r,m,v,g]));var w=Ww((function(){return g?{tabIndex:0,role:"button","aria-describedby":s,"data-rbd-drag-handle-draggable-id":p,"data-rbd-drag-handle-context-id":a,draggable:!1,onDragStart:aE}:null}),[a,s,p,g]),C=Vw((function(e){"DRAGGING"===y.type&&y.dropping&&"transform"===e.propertyName&&b()}),[b,y]),k=Ww((function(){var e=iE(y),t="DRAGGING"===y.type&&y.dropping?C:null;return{innerRef:i,draggableProps:{"data-rbd-draggable-context-id":a,"data-rbd-draggable-id":p,style:e,onTransitionEnd:t},dragHandleProps:w}}),[a,w,p,y,C,i]),S=Ww((function(){return{draggableId:h.id,type:h.type,source:{index:h.index,droppableId:h.droppableId}}}),[h.droppableId,h.id,h.index,h.type]);return f(k,y.snapshot,S)}));function pE(t){return YL(QL).isUsingCloneFor!==t.draggableId||t.isClone?e.createElement(fE,t):null}function gE(t){var n="boolean"!==typeof t.isDragDisabled||!t.isDragDisabled,i=Boolean(t.disableInteractiveElementBlocking),r=Boolean(t.shouldRespectForcePress);return e.createElement(pE,c({},t,{isClone:!1,isEnabled:n,canDragInteractiveElements:i,shouldRespectForcePress:r}))}var vE=function(e,t){return e===t.droppable.type},mE=function(e,t){return t.draggables[e.draggable.id]};var _E={mode:"standard",type:"DEFAULT",direction:"vertical",isDropDisabled:!1,isCombineEnabled:!1,ignoreContainerClipping:!1,renderClone:null,getContainerForClone:function(){return document.body||_C(!1),document.body}},yE=z((function(){var e={placeholder:null,shouldAnimatePlaceholder:!0,snapshot:{isDraggingOver:!1,draggingOverWith:null,draggingFromThisWith:null,isUsingPlaceholder:!1},useClone:null},t=c({},e,{shouldAnimatePlaceholder:!1}),n=iC((function(e){return{draggableId:e.id,type:e.type,source:{index:e.index,droppableId:e.droppableId}}})),i=iC((function(i,r,o,a,s,u){var l=s.descriptor.id;if(s.descriptor.droppableId===i){var c=u?{render:u,dragging:n(s.descriptor)}:null,d={isDraggingOver:o,draggingOverWith:o?l:null,draggingFromThisWith:l,isUsingPlaceholder:!0};return{placeholder:s.placeholder,shouldAnimatePlaceholder:!1,snapshot:d,useClone:c}}if(!r)return t;if(!a)return e;var h={isDraggingOver:o,draggingOverWith:l,draggingFromThisWith:null,isUsingPlaceholder:!0};return{placeholder:s.placeholder,shouldAnimatePlaceholder:!0,snapshot:h,useClone:null}}));return function(n,r){var o=r.droppableId,a=r.type,s=!r.isDropDisabled,u=r.renderClone;if(n.isDragging){var l=n.critical;if(!vE(a,l))return t;var c=mE(l,n.dimensions),d=Rk(n.impact)===o;return i(o,s,d,d,c,u)}if("DROP_ANIMATING"===n.phase){var h=n.completed;if(!vE(a,h.critical))return t;var f=mE(h.critical,n.dimensions);return i(o,s,uE(h.result)===o,Rk(h.impact)===o,f,u)}if("IDLE"===n.phase&&n.completed&&!n.shouldFlush){var p=n.completed;if(!vE(a,p.critical))return t;var g=Rk(p.impact)===o,v=Boolean(p.impact.at&&"COMBINE"===p.impact.at.type),m=p.critical.droppable.id===o;return g?v?e:t:m?e:t}return t}}),{updateViewportMaxScroll:function(e){return{type:"UPDATE_VIEWPORT_MAX_SCROLL",payload:e}}},null,{context:Rx,pure:!0,areStatePropsEqual:sE})((function(n){var i=(0,e.useContext)(zx);i||_C(!1);var r=i.contextId,o=i.isMovementAllowed,a=(0,e.useRef)(null),s=(0,e.useRef)(null),u=n.children,l=n.droppableId,c=n.type,d=n.mode,h=n.direction,f=n.ignoreContainerClipping,p=n.isDropDisabled,g=n.isCombineEnabled,v=n.snapshot,m=n.useClone,_=n.updateViewportMaxScroll,y=n.getContainerForClone,b=Vw((function(){return a.current}),[]),w=Vw((function(e){a.current=e}),[]),C=(Vw((function(){return s.current}),[]),Vw((function(e){s.current=e}),[]));Vx();var k=Vw((function(){o()&&_({maxScroll:KS()})}),[o,_]);!function(t){var n=(0,e.useRef)(null),i=YL(zx),r=Bx("droppable"),o=i.registry,a=i.marshal,s=Yx(t),u=Ww((function(){return{id:t.droppableId,type:t.type,mode:t.mode}}),[t.droppableId,t.mode,t.type]),l=(0,e.useRef)(u),c=Ww((function(){return iC((function(e,t){n.current||_C(!1);var i={x:e,y:t};a.updateDroppableScroll(u.id,i)}))}),[u.id,a]),d=Vw((function(){var e=n.current;return e&&e.env.closestScrollable?FL(e.env.closestScrollable):xC}),[]),h=Vw((function(){var e=d();c(e.x,e.y)}),[d,c]),f=Ww((function(){return rC(h)}),[h]),p=Vw((function(){var e=n.current,t=UL(e);e&&t||_C(!1),e.scrollOptions.shouldPublishImmediately?h():f()}),[f,h]),g=Vw((function(e,t){n.current&&_C(!1);var r=s.current,o=r.getDroppableRef();o||_C(!1);var a=HL(o),l={ref:o,descriptor:u,env:a,scrollOptions:t};n.current=l;var c=BL({ref:o,descriptor:u,env:a,windowScroll:e,direction:r.direction,isDropDisabled:r.isDropDisabled,isCombineEnabled:r.isCombineEnabled,shouldClipSubject:!r.ignoreContainerClipping}),d=a.closestScrollable;return d&&(d.setAttribute(xx.contextId,i.contextId),d.addEventListener("scroll",p,VL(l.scrollOptions))),c}),[i.contextId,u,p,s]),v=Vw((function(){var e=n.current,t=UL(e);return e&&t||_C(!1),FL(t)}),[]),m=Vw((function(){var e=n.current;e||_C(!1);var t=UL(e);n.current=null,t&&(f.cancel(),t.removeAttribute(xx.contextId),t.removeEventListener("scroll",p,VL(e.scrollOptions)))}),[p,f]),_=Vw((function(e){var t=n.current;t||_C(!1);var i=UL(t);i||_C(!1),i.scrollTop+=e.y,i.scrollLeft+=e.x}),[]),y=Ww((function(){return{getDimensionAndWatchScroll:g,getScrollWhileDragging:v,dragStopped:m,scroll:_}}),[m,g,v,_]),b=Ww((function(){return{uniqueId:r,descriptor:u,callbacks:y}}),[y,u,r]);Dx((function(){return l.current=b.descriptor,o.droppable.register(b),function(){n.current&&m(),o.droppable.unregister(b)}}),[y,u,m,b,a,o.droppable]),Dx((function(){n.current&&a.updateDroppableIsEnabled(l.current.id,!t.isDropDisabled)}),[t.isDropDisabled,a]),Dx((function(){n.current&&a.updateDroppableIsCombineEnabled(l.current.id,t.isCombineEnabled)}),[t.isCombineEnabled,a])}({droppableId:l,type:c,mode:d,direction:h,isDropDisabled:p,isCombineEnabled:g,ignoreContainerClipping:f,getDroppableRef:b});var S=e.createElement(XL,{on:n.placeholder,shouldAnimate:n.shouldAnimatePlaceholder},(function(t){var n=t.onClose,i=t.data,o=t.animate;return e.createElement($L,{placeholder:i,onClose:n,innerRef:C,animate:o,contextId:r,onTransitionEnd:k})})),x=Ww((function(){return{innerRef:w,placeholder:S,droppableProps:{"data-rbd-droppable-id":l,"data-rbd-droppable-context-id":r}}}),[r,l,S,w]),L=m?m.dragging.draggableId:null,E=Ww((function(){return{droppableId:l,type:c,isUsingCloneFor:L}}),[l,L,c]);return e.createElement(QL.Provider,{value:E},u(x,v),function(){if(!m)return null;var n=m.dragging,i=m.render,r=e.createElement(pE,{draggableId:n.draggableId,index:n.source.index,isClone:!0,isEnabled:!0,shouldRespectForcePress:!1,canDragInteractiveElements:!0},(function(e,t){return i(e,t,n)}));return t.createPortal(r,y())}())}));yE.defaultProps=_E;var bE,wE=["children","defaultHeight","defaultWidth","disableHeight","disableWidth","nonce","onResize","style","tagName"];bE="undefined"!==typeof window?window:"undefined"!==typeof self?self:n.g;var CE=null,kE=null,SE=bE.clearTimeout,xE=bE.setTimeout,LE=bE.cancelAnimationFrame||bE.mozCancelAnimationFrame||bE.webkitCancelAnimationFrame,EE=bE.requestAnimationFrame||bE.mozRequestAnimationFrame||bE.webkitRequestAnimationFrame;function DE(e){var t,n,i,r,o,a,s,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__&&CE(this.__resizeRAF__),this.__resizeRAF__=kE((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=bE.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==LE||null==EE?(CE=SE,kE=function(e){return xE(e,20)}):(CE=function(e){var t=(0,ne.Z)(e,2),n=t[0],i=t[1];LE(n),SE(i)},kE=function(e){var t=EE((function(){SE(n),e()})),n=xE((function(){LE(t),e()}),20);return[t,n]});var NE=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var e;(0,X.Z)(this,i);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={height:e.props.defaultHeight||0,scaledHeight:e.props.defaultHeight||0,scaledWidth:e.props.defaultWidth||0,width:e.props.defaultWidth||0},e._autoSizer=null,e._detectElementResize=null,e._parentNode=null,e._resizeObserver=null,e._timeoutId=null,e._onResize=function(){e._timeoutId=null;var t=e.props,n=t.disableHeight,i=t.disableWidth,r=t.onResize;if(e._parentNode){var o,a,s,u,l=window.getComputedStyle(e._parentNode)||{},c=parseFloat(null!==(o=l.paddingLeft)&&void 0!==o?o:"0"),d=parseFloat(null!==(a=l.paddingRight)&&void 0!==a?a:"0"),h=parseFloat(null!==(s=l.paddingTop)&&void 0!==s?s:"0"),f=parseFloat(null!==(u=l.paddingBottom)&&void 0!==u?u:"0"),p=e._parentNode.getBoundingClientRect(),g=p.height-h-f,v=p.width-c-d,m=e._parentNode.offsetHeight-h-f,_=e._parentNode.offsetWidth-c-d;(n||e.state.height===m&&e.state.scaledHeight===g)&&(i||e.state.width===_&&e.state.scaledWidth===v)||(e.setState({height:m,width:_,scaledHeight:g,scaledWidth:v}),"function"===typeof r&&r({height:m,scaledHeight:g,scaledWidth:v,width:_}))}},e._setRef=function(t){e._autoSizer=t},e}return(0,J.Z)(i,[{key:"componentDidMount",value:function(){var e=this,t=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,null!=this._parentNode&&("undefined"!==typeof ResizeObserver?(this._resizeObserver=new ResizeObserver((function(){e._timeoutId=setTimeout(e._onResize,0)})),this._resizeObserver.observe(this._parentNode)):(this._detectElementResize=DE(t),this._detectElementResize.addResizeListener(this._parentNode,this._onResize)),this._onResize()))}},{key:"componentWillUnmount",value:function(){this._parentNode&&(this._detectElementResize&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize),null!==this._timeoutId&&clearTimeout(this._timeoutId),this._resizeObserver&&(this._resizeObserver.observe(this._parentNode),this._resizeObserver.disconnect()))}},{key:"render",value:function(){var t=this.props,n=t.children,i=(t.defaultHeight,t.defaultWidth,t.disableHeight),r=void 0!==i&&i,o=t.disableWidth,a=void 0!==o&&o,s=(t.nonce,t.onResize,t.style),u=void 0===s?{}:s,l=t.tagName,c=void 0===l?"div":l,d=nn(t,wE),h=this.state,f=h.height,p=h.scaledHeight,g=h.scaledWidth,v=h.width,m={overflow:"visible"},_={},y=!1;return r||(0===f&&(y=!0),m.height=0,_.height=f,_.scaledHeight=p),a||(0===v&&(y=!0),m.width=0,_.width=v,_.scaledWidth=g),(0,e.createElement)(c,Rt({ref:this._setRef,style:Rt(Rt({},m),u)},d),!y&&n(_))}}]),i}(e.Component);var ME="object"===typeof performance&&"function"===typeof performance.now?function(){return performance.now()}:function(){return Date.now()};function TE(e){cancelAnimationFrame(e.id)}function IE(e,t){var n=ME();var i={id:requestAnimationFrame((function r(){ME()-n>=t?e.call(null):i.id=requestAnimationFrame(r)}))};return i}var OE=-1;function AE(e){if(void 0===e&&(e=!1),-1===OE||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",document.body.appendChild(t),OE=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return OE}var RE=null;function PE(e){if(void 0===e&&(e=!1),null===RE||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?RE="positive-descending":(t.scrollLeft=1,RE=0===t.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(t),RE}return RE}var ZE=150,FE=function(e,t){return e};function jE(t){var n,i=t.getItemOffset,r=t.getEstimatedTotalSize,o=t.getItemSize,a=t.getOffsetForIndexAndAlignment,s=t.getStartIndexForOffset,u=t.getStopIndexForStartIndex,l=t.initInstanceProps,d=t.shouldResetStyleCacheOnItemSizeChange,h=t.validateProps;return n=function(t){function n(e){var n;return(n=t.call(this,e)||this)._instanceProps=l(n.props,(0,Br.Z)(n)),n._outerRef=void 0,n._resetIsScrollingTimeoutId=null,n.state={instance:(0,Br.Z)(n),isScrolling:!1,scrollDirection:"forward",scrollOffset:"number"===typeof n.props.initialScrollOffset?n.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},n._callOnItemsRendered=void 0,n._callOnItemsRendered=iC((function(e,t,i,r){return n.props.onItemsRendered({overscanStartIndex:e,overscanStopIndex:t,visibleStartIndex:i,visibleStopIndex:r})})),n._callOnScroll=void 0,n._callOnScroll=iC((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=iC((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(PE()){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<a?"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&&TE(n._resetIsScrollingTimeoutId),n._resetIsScrollingTimeoutId=IE(n._resetIsScrolling,ZE)},n._resetIsScrolling=function(){n._resetIsScrollingTimeoutId=null,n.setState({isScrolling:!1},(function(){n._getItemStyleCache(-1,null)}))},n}re(n,t),n.getDerivedStateFromProps=function(e,t){return HE(e,t),h(e),null};var f=n.prototype;return f.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)},f.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 s=0;if(this._outerRef){var u=this._outerRef;s="vertical"===r?u.scrollWidth>u.clientWidth?AE():0:u.scrollHeight>u.clientHeight?AE():0}this.scrollTo(a(this.props,e,t,o,this._instanceProps,s))},f.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()},f.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(PE()){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()},f.componentWillUnmount=function(){null!==this._resetIsScrollingTimeoutId&&TE(this._resetIsScrollingTimeoutId)},f.render=function(){var t=this.props,n=t.children,i=t.className,o=t.direction,a=t.height,s=t.innerRef,u=t.innerElementType,l=t.innerTagName,d=t.itemCount,h=t.itemData,f=t.itemKey,p=void 0===f?FE:f,g=t.layout,v=t.outerElementType,m=t.outerTagName,_=t.style,y=t.useIsScrolling,b=t.width,w=this.state.isScrolling,C="horizontal"===o||"horizontal"===g,k=C?this._onScrollHorizontal:this._onScrollVertical,S=this._getRangeToRender(),x=S[0],L=S[1],E=[];if(d>0)for(var D=x;D<=L;D++)E.push((0,e.createElement)(n,{data:h,key:p(D,h),index:D,isScrolling:y?w:void 0,style:this._getItemStyle(D)}));var N=r(this.props,this._instanceProps);return(0,e.createElement)(v||m||"div",{className:i,onScroll:k,ref:this._outerRefSetter,style:c({position:"relative",height:a,width:b,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:o},_)},(0,e.createElement)(u||l||"div",{children:E,ref:s,style:{height:C?"100%":N,pointerEvents:w?"none":void 0,width:C?N:"100%"}}))},f._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)}},f._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 l=s(this.props,a,this._instanceProps),c=u(this.props,l,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,l-d),Math.max(0,Math.min(t-1,c+h)),l,c]},n}(e.PureComponent),n.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},n}var HE=function(e,t){e.children,e.direction,e.height,e.layout,e.innerTagName,e.outerTagName,e.width,t.instance},BE=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]},zE=function(e,t,n,i,r){for(;i<=n;){var o=i+Math.floor((n-i)/2),a=BE(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},WE=function(e,t,n,i){for(var r=e.itemCount,o=1;n<r&&BE(e,n,t).offset<i;)n+=o,o*=2;return zE(e,t,Math.min(n,r-1),Math.floor(n/2),i)},VE=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},YE=jE({getItemOffset:function(e,t,n){return BE(e,t,n).offset},getItemSize:function(e,t,n){return n.itemMetadataMap[t].size},getEstimatedTotalSize:VE,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=BE(e,t,r),h=VE(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?zE(e,t,r,0,n):WE(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=BE(e,t,i),d=n+l,h=c.offset+c.size,f=t;f<a-1&&h<d;)f++,h+=BE(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 UE=(0,ft.Ge)("loader");function KE(t){var n=t.size,i=void 0===n?"s":n,r=t.className,o=t.qa;return e.createElement("div",{className:UE({size:i},r),"data-qa":o},e.createElement("div",{className:UE("left")}),e.createElement("div",{className:UE("center")}),e.createElement("div",{className:UE("right")}))}var qE=function(t){var n=e.useRef(null);return function(t){var n=t.element,i=t.options,r=t.onIntersect;e.useEffect((function(){var e=new IntersectionObserver((function(e){(0,ne.Z)(e,1)[0].isIntersecting&&(null===r||void 0===r||r())}),i);return n&&e.observe(n),function(){return null===n?void 0:e.unobserve(n)}}),[n,i,r])}({element:n.current,onIntersect:null===t||void 0===t?void 0:t.onIntersect}),e.createElement("div",{ref:n,className:Jb("loading-indicator")},e.createElement(KE,null))},GE=function(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},t),e.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M7 3a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM5.5 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm0-5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM7 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm3.5 1.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z",clipRule:"evenodd"}))},$E="list-active-item",QE=[Tv.V.TAB],XE=(0,ft.Ge)("list"),JE=function(e){return String(e)};function eD(e,t){return t?Object.assign(Object.assign({},null===e||void 0===e?void 0:e.draggableProps.style),t):null===e||void 0===e?void 0:e.draggableProps.style}var tD=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var e;return(0,X.Z)(this,i),(e=n.apply(this,arguments)).node=null,e.getNode=function(){return e.node},e.setRef=function(t){var n;e.node=t,null===(n=e.props.provided)||void 0===n||n.innerRef(t)},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){i.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,J.Z)(i,[{key:"render",value:function(){var t,n,i=this.props,r=i.item,o=i.style,a=i.sortable,s=i.sortHandleAlign,u=i.itemClassName,l=i.selected,c=i.active,d=i.role,h=void 0===d?"listitem":d,f=i.isDragging,p=void 0!==f&&f;return e.createElement("div",Object.assign({role:h,"aria-selected":l,"data-qa":c?$E:void 0,className:XE("item",{sortable:a,active:c,selected:l,inactive:r.disabled,"sort-handle-align":s,dragging:p},u)},null===(t=this.props.provided)||void 0===t?void 0:t.draggableProps,null===(n=this.props.provided)||void 0===n?void 0:n.dragHandleProps,{style:eD(this.props.provided,o),onClick:r.disabled?void 0:this.onClick,onClickCapture:r.disabled?void 0:this.onClickCapture,onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave,ref:this.setRef,id:"".concat(this.props.listId,"-item-").concat(this.props.itemIndex)}),this.renderSortIcon(),this.renderContent())}},{key:"renderSortIcon",value:function(){return this.props.sortable?e.createElement("div",{className:XE("item-sort-icon")},e.createElement(yo.J,{data:GE,size:12})):null}},{key:"renderContent",value:function(){var t=this.props,n=t.renderItem,i=void 0===n?JE:n,r=t.item,o=t.active,a=t.itemIndex;return e.createElement("div",{className:XE("item-content")},i(r,o,a))}}]),i}(e.Component);tD.publishEvent=mv.P.withEventPublisher("List");var nD=n(61883),iD=n.n(nD);function rD(t){return iD()(t).reduce((function(t,n){return t[n]=e.createRef(),t}),{})}var oD=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(e){var t;return(0,X.Z)(this,i),(t=n.call(this,e)).node=null,t.setRef=function(e){var n;t.node=e,null===(n=t.props.provided)||void 0===n||n.innerRef(e)},t.state={refsList:rD(e.itemCount)},t}return(0,J.Z)(i,[{key:"componentDidMount",value:function(){if(this.node&&this.props.sortable){var e=this.node.getBoundingClientRect(),t=e.width,n=e.height;this.setState({minWidth:t,minHeight:n})}}},{key:"render",value:function(){var t=this,n=this.state,i=n.minWidth,r=n.minHeight,o=e.Children.map(this.props.children,(function(n,i){return e.cloneElement(n,{ref:t.state.refsList[i]})}));return e.createElement("div",{ref:this.setRef,style:{minWidth:i,minHeight:r}},o)}},{key:"scrollToItem",value:function(e){var t,n,i=null===(t=this.state.refsList[e])||void 0===t?void 0:t.current;if(i&&"function"===typeof i.getNode){var r=i.getNode();r&&(null===(n=r.scrollIntoView)||void 0===n||n.call(r,{block:"nearest"}))}}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=e.itemCount;return n===Object.keys(t.refsList).length?t:{refsList:rD(n)}}}]),i}(e.Component),aD=(0,ft.Ge)("list"),sD=28,uD=function(e,t,n){var i=Array.from(e),r=i.splice(t,1),o=(0,ne.Z)(r,1)[0];return i.splice(n,0,o),i},lD=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var t;return(0,X.Z)(this,i),(t=n.apply(this,arguments)).state={items:t.props.items,filter:""},t.refFilter=e.createRef(),t.refContainer=e.createRef(),t.blurTimer=null,t.loadingItem={value:"__LIST_ITEM_LOADING__",disabled:!0},t.uniqId=(0,z_.x)(),t.onKeyDown=function(e){var n=t.state,i=n.activeItem,r=n.pageSize;if(!QE.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.renderItemContent=function(n,i,r){var o=t.props.onLoadMore;return Iw()(n)&&"value"in n&&n.value===t.loadingItem.value?e.createElement(qE,{onIntersect:0===r?void 0:o}):t.props.renderItem?t.props.renderItem(n,i,r):JE(n)},t.renderItem=function(n){var i,r=n.index,o=n.style,a=n.provided,s=n.isDragging,u=t.props,l=u.sortHandleAlign,c=u.role,d=t.state,h=d.items,f=d.activeItem,p=t.getItemsWithLoading()[r],g=t.props.sortable&&h.length>1&&!t.getFilter(),v=r===f||r===t.props.activeItemIndex,m=Array.isArray(t.props.selectedItemIndex)?t.props.selectedItemIndex.includes(r):r===t.props.selectedItemIndex;return e.createElement(tD,{key:r,style:o,itemIndex:r,item:p,sortable:g,sortHandleAlign:l,renderItem:t.renderItemContent,itemClassName:t.props.itemClassName,active:v,selected:m,onActivate:t.onItemActivate,onClick:t.props.onItemClick,role:"listbox"===c?"option":"listitem",listId:null!==(i=t.props.id)&&void 0!==i?i:t.uniqId,provided:a,isDragging:s})},t.renderVirtualizedItem=function(n){var i=n.index,r=n.style;return e.createElement(gE,{draggableId:String(i),index:i,key:"item-key-".concat(i)},(function(e){return t.renderItem({index:i,style:r,provided:e})}))},t.filterItem=function(e){return function(t){return String(t).includes(e)}},t.scrollToIndex=function(e){var n=t.refContainer.current;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){if(e.destination&&e.source.index!==e.destination.index){var n=e.source.index,i=e.destination.index;t.props.onSortEnd&&t.props.onSortEnd({oldIndex:n,newIndex:i});var r=uD(t.getItems(),n,i);t.setState({activeItem:i,items:r,sorting:!1})}},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)||sD},t}return(0,J.Z)(i,[{key:"componentDidUpdate",value:function(e,t){if(!Mw()(this.props.items,e.items)){var n=this.getFilter();n&&!this.props.onFilterUpdate?this.onUpdateFilterInternal(n):this.setState({items:this.props.items})}this.props.activeItemIndex!==e.activeItemIndex&&this.activateItem(this.props.activeItemIndex),this.props.onChangeActive&&this.state.activeItem!==t.activeItem&&this.props.onChangeActive(this.state.activeItem)}},{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=n.role,l=void 0===u?"list":u,c=this.state.items;return e.createElement(jr.Consumer,null,(function(n){var u=n.mobile;return e.createElement("div",{className:aD({mobile:u},o),"data-qa":s,tabIndex:-1,onFocus:t.handleFocus,onBlur:t.handleBlur,onKeyDown:t.onKeyDown},t.renderFilter(),e.createElement("div",{className:aD("items",{virtualized:r},a),style:t.getItemsStyle(),onMouseLeave:t.onMouseLeave,role:l},t.renderItems(),0===c.length&&Boolean(i)&&e.createElement("div",{className:aD("empty-placeholder")},i)))}))}},{key:"getItems",value:function(){return this.state.items}},{key:"getItemsWithLoading",value:function(){return this.props.sortable?this.getItems():this.props.loading?[].concat((0,Ct.Z)(this.state.items),[this.loadingItem]):this.getItems()}},{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:aD("filter",u)},e.createElement(db,{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.getItemsWithLoading();return n?e.createElement(TL,{onDragStart:this.onSortStart,onDragEnd:this.onSortEnd},e.createElement(yE,{droppableId:"droppable",renderClone:function(e,n,i){return t.renderItem({index:i.source.index,provided:e,isDragging:n.isDragging})}},(function(r){return e.createElement(oD,{ref:t.refContainer,itemCount:i.length,provided:r,sortable:n},i.map((function(n,i){return e.createElement(gE,{draggableId:String(i),index:i,key:"item-key-".concat(i)},(function(e,n){return t.renderItem({index:i,isDragging:n.isDragging,provided:e,style:{height:t.getItemHeight(i)}})}))})))}))):e.createElement(oD,{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.getItems();return this.props.sortable?e.createElement(TL,{onDragStart:this.onSortStart,onDragEnd:this.onSortEnd},e.createElement(yE,{droppableId:"droppable",mode:"virtual",renderClone:function(e,n,i){return t.renderItem({index:i.source.index,provided:e,isDragging:n.isDragging})}},(function(i){return e.createElement(NE,null,(function(r){var o=r.width,a=r.height;return e.createElement(YE,{ref:t.refContainer,outerRef:i.innerRef,width:o,height:a,itemSize:t.getVirtualizedItemHeight,itemData:n,itemCount:n.length,overscanCount:10,onItemsRendered:t.onItemsRendered,activeItem:t.state.activeItem},t.renderVirtualizedItem)}))}))):e.createElement(NE,null,(function(i){var r=i.width,o=i.height;return e.createElement(YE,{ref:t.refContainer,width:r,height:o,itemSize:t.getVirtualizedItemHeight,itemData:n,itemCount:n.length,overscanCount:10,onItemsRendered:t.onItemsRendered,activeItem:t.state.activeItem},t.renderItem)}))}},{key:"renderItems",value:function(){return this.props.virtualized?this.renderVirtualizedContainer():this.renderSimpleContainer()}},{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 r=this.state.activeItem,o=void 0===r?n:r;this.activateItem(i.findNextIndex(this.state.items,o+t,Math.sign(t)))}}],[{key:"moveListElement",value:function(e,t,n){if(t!==n){var i=e.splice(t,1),r=(0,ne.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}}}]),i}(e.Component);lD.defaultProps={items:[],itemClassName:"",filterable:!0,sortable:!1,virtualized:!0,deactivateOnLeave:!0};var cD=function(e){var t=e.getOptionHeight,n=e.getOptionGroupHeight,i=e.size,r=e.option,o=e.index,a=e.mobile?32:tw[i];if("label"in r){var s=0===o?0:5;return a=""===r.label?0:a,n?n(r,o):a+s}return t?t(r,o):a},dD=function(e){return"string"===typeof e.content?e.content:"string"===typeof e.children?e.children:e.text?e.text:e.value},hD=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}),[])},fD=function(e,t){return t?t.findIndex((function(t){if("label"in t)return!1;if(t.disabled)return!1;var n,i=dD(t);return(n=e,new RegExp(n.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"i")).test(i)})):-1},pD=function(e){var t;return(null===(t=null===e||void 0===e?void 0:e.current)||void 0===t?void 0:t.getItems())||[]},gD=function(e){return Boolean(e&&"label"in e)},vD=function(e){var t=e.options,n=e.filter,i=e.filterOption,r=t.filter((function(e){return!!gD(e)||(i?i(e,n):function(e,t){var n=dD(e).toLocaleLowerCase(),i=t.toLocaleLowerCase();return-1!==n.indexOf(i)}(e,n))}));return r.reduce((function(e,t,n){var i=gD(t),o=gD(e[e.length-1]),a=n===r.length-1;return i&&o&&e.pop(),(!i||i&&!a)&&e.push(t),e}),[])},mD=(0,ft.B_)("select-list"),_D=function(t){var n=t.option,i=t.renderOptionGroup;return i?e.createElement("div",{className:mD("group-label-custom")},i(n)):e.createElement("div",{className:mD("group-label",{empty:""===n.label})},e.createElement("div",{className:mD("group-label-content")},n.label))},yD=function(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},t),e.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M13.488 3.43a.75.75 0 0 1 .081 1.058l-6 7a.75.75 0 0 1-1.1.042l-3.5-3.5A.75.75 0 0 1 4.03 6.97l2.928 2.927 5.473-6.385a.75.75 0 0 1 1.057-.081Z",clipRule:"evenodd"}))},bD=(0,ft.B_)("select-list"),wD=function(t){var n=t.option,i=n.content,r=n.children,o=n.disabled;return e.createElement("span",{className:bD("option-default-label",{disabled:o})},i||r)},CD=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(wD,{option:r});return e.createElement("div",{"data-qa":r.qa,className:bD("option",{colored:a&&!o,disabled:r.disabled})},o&&e.createElement(yo.J,{className:bD("tick-icon",{shown:a&&o}),data:yD}),s)},kD={value:"__SELECT_LIST_ITEM_LOADING__",disabled:!0},SD=e.forwardRef((function(t,n){var i=t.onOptionClick,r=t.renderOption,o=t.renderOptionGroup,a=t.getOptionHeight,s=t.getOptionGroupHeight,u=t.size,l=t.flattenOptions,c=t.value,d=t.multiple,h=t.virtualized,f=t.mobile,p=t.loading,g=t.onLoadMore,v=t.selectId,m=t.onChangeActive,_=e.useMemo((function(){return p?[].concat((0,Ct.Z)(l),[kD]):l}),[l,p]),y=e.useMemo((function(){return l.reduce((function(e,t,n){return"value"in t&&c.includes(t.value)&&e.push(n),e}),[])}),[l,c]),b=function(e){var t=e.getOptionHeight,n=e.getOptionGroupHeight,i=e.size,r=e.options,o=e.mobile;return r.reduce((function(e,r,a){return e+cD({getOptionHeight:t,getOptionGroupHeight:n,size:i,option:r,index:a,mobile:o})}),0)}({options:_,getOptionHeight:a,getOptionGroupHeight:s,size:u,mobile:f}),w=e.useCallback((function(e,t){return cD({getOptionHeight:a,getOptionGroupHeight:s,size:u,option:e,index:t,mobile:f})}),[a,s,f,u]),C=e.useCallback((function(t,n,i){if("label"in t){var a=o?function(e){return o(e,{itemHeight:w(e,i)})}:void 0;return e.createElement(_D,{option:t,renderOptionGroup:a})}if(t.value===kD.value)return e.createElement(qE,{onIntersect:0===i?void 0:g});var s=r?function(e){return r(e,{itemHeight:w(e,i)})}:void 0;return e.createElement(CD,{option:t,value:c,multiple:d,renderOption:s})}),[r,o,c,d,w,g]);return e.createElement(lD,{ref:n,className:Jb({size:u,virtualized:h,mobile:f}),qa:nw,itemClassName:Jb("item"),itemHeight:w,itemsHeight:h?b:void 0,items:_,filterable:!1,virtualized:h,renderItem:C,onItemClick:i,selectedItemIndex:y,id:"".concat(v,"-list"),role:"listbox",onChangeActive:m})}));SD.displayName="SelectList";var xD=(0,ft.B_)("select-empty-placeholder"),LD=function(t){var n=t.renderEmptyOptions,i=t.filter;return e.createElement("div",{className:xD({empty:!n})},null===n||void 0===n?void 0:n({filter:i}))},ED=function(t){var n=t.onChange,i=t.open,r=t.disabled,o=e.useState(""),a=(0,ne.Z)(o,2),s=a[0],u=a[1],l=e.useState(),c=(0,ne.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===Tv.V.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])},DD={filter:""},ND=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:DD,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},MD=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.renderOptionGroup,c=t.renderSelectedOption,d=t.renderEmptyOptions,h=t.getOptionHeight,f=t.getOptionGroupHeight,p=t.filterOption,g=t.name,v=t.className,m=t.controlClassName,_=t.popupClassName,y=t.qa,b=t.value,w=t.defaultValue,C=t.defaultOpen,k=t.open,S=t.label,x=t.placeholder,L=t.filterPlaceholder,E=t.width,D=t.popupWidth,N=t.error,M=t.virtualizationThreshold,T=void 0===M?50:M,I=t.view,O=void 0===I?"normal":I,A=t.size,R=void 0===A?"m":A,P=t.pin,Z=void 0===P?"round-round":P,F=t.multiple,j=void 0!==F&&F,H=t.disabled,B=void 0!==H&&H,z=t.filterable,W=void 0!==z&&z,V=t.disablePortal,Y=t.hasClear,U=void 0!==Y&&Y,K=t.onClose,q=t.id,G=Hr(),$=(0,ne.Z)(G,1)[0],Q=e.useReducer(ND,DD),X=(0,ne.Z)(Q,2),J=X[0].filter,ee=X[1],te=e.useRef(null),ie=e.useRef(null),re=e.useRef(null),oe=e.useRef(null),ae=Ov(n,ie),se=Vb({onUpdate:i,value:b,defaultValue:w,defaultOpen:C,multiple:j,open:k,onClose:K,onOpenChange:r}),ue=se.value,le=se.open,ce=se.activeIndex,de=se.toggleOpen,he=se.handleSelection,fe=se.handleClearValue,pe=se.setActiveIndex,ge=W_(),ve=null!==q&&void 0!==q?q:ge,me=function(e){return e.reduce((function(e,t){return"label"in t?(e.push({label:t.label,disabled:!0}),e.push.apply(e,(0,Ct.Z)(t.options||[]))):e.push(t),e}),[])}(t.options||hD(t.children)),_e=W?vD({options:me,filter:J,filterOption:p}):me,ye=function(t,n,i){if(0===n.length)return null;var r=t.filter((function(e){return!("label"in e)})),o=n.reduce((function(e,t){var n=r.find((function(e){return e.value===t}));return e.push(n||{value:t}),e}),[]);return i?o.map((function(t,n){return e.createElement(e.Fragment,{key:t.value},i(t,n))})):o.map((function(e){return dD(e)})).join(", ")}(me,ue,c),be=_e.length>=T,we=e.useCallback((function(e){var t,n;if(e&&!(null===e||void 0===e?void 0:e.disabled)&&!("label"in e)){if(j){var i=null===(t=null===oe||void 0===oe?void 0:oe.current)||void 0===t?void 0:t.getActiveItem();null===(n=re.current)||void 0===n||n.focus(),"number"===typeof i&&setTimeout((function(){var e;null===(e=null===oe||void 0===oe?void 0:oe.current)||void 0===e||e.activateItem(i,!0)}),50)}he(e)}}),[he,j]),Ce=e.useCallback((function(e){var t;[Tv.V.ENTER,Tv.V.SPACEBAR].includes(e.key)&&le&&(e.preventDefault(),e.key===Tv.V.SPACEBAR&&we(function(e){var t,n=pD(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}(oe))),[Tv.V.ARROW_DOWN,Tv.V.ARROW_UP].includes(e.key)&&!le&&(e.preventDefault(),de()),null===(t=null===oe||void 0===oe?void 0:oe.current)||void 0===t||t.onKeyDown(e)}),[we,le,de]),ke=e.useCallback((function(e){var t;null===(t=null===oe||void 0===oe?void 0:oe.current)||void 0===t||t.onKeyDown(e)}),[]),Se=e.useCallback((function(e){null===o||void 0===o||o(e),ee({type:"SET_FILTER",payload:{filter:e}})}),[o]),xe=e.useCallback((function(e){var t;if(e){var n=fD(e,pD(oe));"number"===typeof n&&-1!==n&&(null===(t=null===oe||void 0===oe?void 0:oe.current)||void 0===t||t.activateItem(n,!0))}}),[]);ED({onChange:xe,open:le,disabled:W}),e.useEffect((function(){var e;le?(!function(e){var t,n=pD(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)}(oe),W&&(null===(e=re.current)||void 0===e||e.focus())):Se("")}),[le,W,Se]);var Le=Object.assign({},"max"===E&&{width:E}),Ee={};"number"===typeof E&&(Ee.width=E);var De=e.useCallback((function(){return de(!1)}),[de]),Ne=t.onFocus,Me=t.onBlur,Te=Ub({onFocusWithin:Ne,onBlurWithin:e.useCallback((function(e){null===Me||void 0===Me||Me(e),De()}),[De,Me])}).focusWithinProps;return e.createElement("div",Object.assign({ref:te,className:$b(Le,v)},Te,{style:Ee}),e.createElement(uw,{toggleOpen:de,hasClear:U,clearValue:fe,ref:ae,className:m,qa:y,name:g,view:O,size:R,pin:Z,label:S,placeholder:x,selectedOptionsContent:ye,error:N,open:le,disabled:B,onKeyDown:Ce,renderControl:a,value:ue,popupId:"select-popup-".concat(ve),selectId:"select-".concat(ve),activeIndex:ce}),e.createElement(xw,{ref:te,className:_,controlRef:ie,width:D,open:le,handleClose:De,disablePortal:V,virtualized:be,mobile:$,id:"select-popup-".concat(ve)},W&&e.createElement(Dw,{ref:re,size:R,value:J,placeholder:L,onChange:Se,onKeyDown:ke,renderFilter:s}),_e.length||t.loading?e.createElement(SD,{ref:oe,size:R,value:ue,mobile:$,flattenOptions:_e,multiple:j,virtualized:be,onOptionClick:we,renderOption:u,renderOptionGroup:l,getOptionHeight:h,getOptionGroupHeight:f,loading:t.loading,onLoadMore:t.onLoadMore,selectId:"select-".concat(ve),onChangeActive:pe}):e.createElement(LD,{filter:J,renderEmptyOptions:d})))}));MD.Option=function(e){return null},MD.OptionGroup=function(e){return null};var TD,ID=(0,ht.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"}(TD||(TD={}));var OD=Object.entries(TD).reduce((function(e,t){var n=(0,ne.Z)(t,2),i=n[0],r=n[1];return Rt(Rt({},e),{},(0,wt.Z)({},r,i))}),{});function AD(t){var n=t.diskAllocatedPercent,i=void 0===n?-1:n,r=t.severity,o=t.compact,a=tv(Mi),s=(0,ne.Z)(a,1)[0],u={inverted:s,compact:o},l=void 0!==r&&OD[r];return l&&(u[l.toLocaleLowerCase()]=!0),(0,Nl.jsx)("div",{className:ID(u),role:"meter","aria-label":"Disk allocated space","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":i,children:o?(0,Nl.jsx)("div",{className:ID("filled"),style:{width:"100%"}}):i>=0&&(0,Nl.jsxs)(e.Fragment,{children:[(0,Nl.jsx)("div",{className:ID("filled"),style:{width:"".concat(s?100-i:i,"%")}}),(0,Nl.jsx)("div",{className:ID("filled-title"),children:"".concat(Math.round(i),"%")})]})})}var RD=TD.Grey,PD=ws(1,2,["success","warning","danger"]),ZD={"block-4-2":ws(1,2,["success","warning","danger"]),"mirror-3-dc":ws(1,3,["success","warning","danger"])},FD=function(e){var t;return(void 0!==(t=e.ErasureSpecies)&&t in ZD?ZD[e.ErasureSpecies]:PD)(e.Degraded)},jD=ws(80,85,["success","warning","danger"]),HD=ws(80,85,["Green","Yellow","Red"]),BD=ws(85,95,[pa.Green,pa.Yellow,pa.Red]),zD=JSON.parse('{"label":"Usage:","default_value":"Any","groups_count":["{{count}} group","{{count}} groups","{{count}} groups","No groups"]}'),WD=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"]}'),VD="ydb-usage-filter";Va.registerKeyset(Fa.En,VD,zD),Va.registerKeyset(Fa.Ru,VD,WD);var YD,UD,KD=Va.keyset(VD),qD=(0,ht.Z)("usage-filter"),GD=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=(0,e.useState)(r),d=(0,ne.Z)(c,2),h=d[0],f=d[1],p=(0,e.useRef)();(0,e.useEffect)((function(){f((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]),v=Math.max.apply(Math,(0,Ct.Z)(a.map((function(e){return e.count}))));return(0,Nl.jsx)(MD,{className:qD(null,n),label:KD("label"),value:h,placeholder:KD("default_value"),options:g,multiple:!0,onUpdate:function(e){f(e),window.clearTimeout(p.current),p.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,Nl.jsxs)("div",{className:qD("option"),children:[(0,Nl.jsx)(hy,{className:qD("option-title"),status:HD(Number(t)),name:i,size:"xs"}),(0,Nl.jsxs)("div",{className:qD("option-meta"),children:[KD("groups_count",{count:n.count}),(0,Nl.jsx)("div",{className:qD("option-bar"),style:{width:"".concat(n.count/v*100,"%")}})]})]})},getOptionHeight:function(){return 50},popupWidth:280,disabled:0===a.length})},$D=(YD={},(0,wt.Z)(YD,Ou,"Groups"),(0,wt.Z)(YD,Au,"Nodes"),YD),QD=function(e){var t=e.value,n=e.onChange;return(0,Nl.jsxs)(Dy,{value:t,onUpdate:n,qa:"storage-type-filter",children:[(0,Nl.jsx)(Dy.Option,{value:Ou,children:$D[Ou]}),(0,Nl.jsx)(Dy.Option,{value:Au,children:$D[Au]})]})},XD=(UD={},(0,wt.Z)(UD,Iu.all,"All"),(0,wt.Z)(UD,Iu.missing,"Degraded"),(0,wt.Z)(UD,Iu.space,"Out of Space"),UD),JD=function(e){var t=e.value,n=e.onChange;return(0,Nl.jsxs)(Dy,{value:t,onUpdate:n,qa:"storage-visible-entities-filter",children:[(0,Nl.jsx)(Dy.Option,{value:Iu.missing,children:XD[Iu.missing]}),(0,Nl.jsx)(Dy.Option,{value:Iu.space,children:XD[Iu.space]}),(0,Nl.jsx)(Dy.Option,{value:Iu.all,children:XD[Iu.all]})]})},eN=JSON.parse('{"groups":"Groups","nodes":"Nodes","controls_groups-search-placeholder":"Group ID, Pool name","controls_nodes-search-placeholder":"Node ID, FQDN"}'),tN=JSON.parse('{"groups":"\u0413\u0440\u0443\u043f\u043f\u044b","nodes":"\u041d\u043e\u0434\u044b","controls_groups-search-placeholder":"ID \u0433\u0440\u0443\u043f\u043f\u044b, \u0438\u043c\u044f \u043f\u0443\u043b\u0430","controls_nodes-search-placeholder":"ID \u0443\u0437\u043b\u0430, FQDN"}'),nN="ydb-storage";Va.registerKeyset(Fa.En,nN,eN),Va.registerKeyset(Fa.Ru,nN,tN);var iN=Va.keyset(nN),rN=(0,ht.Z)("global-storage"),oN=function(e){var t=e.searchValue,n=e.handleSearchValueChange,i=e.withTypeSelector,r=e.storageType,o=e.handleStorageTypeChange,a=e.visibleEntities,s=e.handleVisibleEntitiesChange,u=e.nodesUptimeFilter,l=e.handleNodesUptimeFilterChange,c=e.withGroupsUsageFilter,d=e.groupsUsageFilter,h=e.groupsUsageFilterOptions,f=e.handleGroupsUsageFilterChange,p=e.entitiesCountCurrent,g=e.entitiesCountTotal,v=e.entitiesLoading,m=r===Au,_=iN(m?"nodes":"groups");return(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)(fb,{value:t,onChange:n,placeholder:iN(m?"controls_nodes-search-placeholder":"controls_groups-search-placeholder"),className:rN("search")}),i&&(0,Nl.jsx)(QD,{value:r,onChange:o}),(0,Nl.jsx)(JD,{value:a,onChange:s}),m&&(0,Nl.jsx)(zb,{value:u,onChange:l}),!m&&c&&(0,Nl.jsx)(GD,{value:d,onChange:f,groups:h}),(0,Nl.jsx)(Bb,{label:_,loading:v,total:g,current:p})]})},aN=function(e){return(0,Ct.Z)(Array(e).keys())},sN="infiniteTable/INIT_CHUNK",uN="infiniteTable/REMOVE_CHUNK",lN="infiniteTable/SET_CHUNK_LOADING",cN="infiniteTable/SET_CHUNK_DATA",dN="infiniteTable/SET_CHUNK_ERROR",hN="infiniteTable/RESET_CHUNKS",fN=function(e,t){return{type:cN,data:{id:e,data:t}}},pN=function(e,t){return{type:dN,data:{id:e,error:t}}},gN=function(e){return{type:sN,data:{id:e}}},vN=function(e){return{type:lN,data:{id:e}}},mN=(0,ht.Z)("ydb-virtual-table"),_N=function(e){var t=e.order;return(0,Nl.jsx)("svg",{className:mN("icon",{desc:-1===t}),viewBox:"0 0 10 6",width:"10",height:"6",children:(0,Nl.jsx)("path",{fill:"currentColor",d:"M0 5h10l-5 -5z"})})},yN=function(e){var t=e.sortOrder,n=e.sortable,i=e.defaultSortOrder;return n?(0,Nl.jsx)("span",{className:mN("sort-icon",{shadow:!t}),children:(0,Nl.jsx)(_N,{order:t||i})}):null},bN=function(t){var n=t.columns,i=t.onSort,r=t.defaultSortOrder,o=void 0===r?-1:r,a=t.rowHeight,s=void 0===a?40:a,u=(0,e.useState)({}),l=(0,ne.Z)(u,2),c=l[0],d=l[1];return(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)("colgroup",{children:n.map((function(e){return(0,Nl.jsx)("col",{style:{width:"".concat(e.width,"px")}},e.name)}))}),(0,Nl.jsx)("thead",{className:mN("head"),children:(0,Nl.jsx)("tr",{children:n.map((function(e){var t,n=null!==(t=e.header)&&void 0!==t?t:e.name,r=c.columnId===e.name?c.sortOrder:void 0;return(0,Nl.jsx)("th",{className:mN("th",{align:e.align,sortable:e.sortable},e.className),style:{height:"".concat(s,"px")},onClick:function(){!function(e){var t={};if(e===c.columnId){if(c.sortOrder&&c.sortOrder!==o)return d(t),void(null===i||void 0===i||i(t));t={sortOrder:1===c.sortOrder?-1:1,columnId:e}}else t={sortOrder:o,columnId:e};null===i||void 0===i||i(t),d(t)}(e.name)},children:(0,Nl.jsxs)("div",{className:mN("head-cell"),children:[n,(0,Nl.jsx)(yN,{sortOrder:r,sortable:e.sortable,defaultSortOrder:o})]})},e.name)}))})})]})},wN=function(e){var t=e.children,n=e.className,i=e.height,r=e.align,o=void 0===r?"left":r;return(0,Nl.jsx)("td",{className:mN("td",{align:o},n),style:{height:"".concat(i,"px")},children:t})},CN=function(e){var t=e.index,n=e.columns,i=e.height;return(0,Nl.jsx)("tr",{className:mN("row"),children:n.map((function(e){return(0,Nl.jsx)(wN,{height:i,align:e.align,className:e.className,children:(0,Nl.jsx)(gb,{style:{width:"80%",height:"50%"}})},"".concat(e.name).concat(t))}))})},kN=function(e){var t=e.row,n=e.index,i=e.columns,r=e.getRowClassName,o=e.height,a=null===r||void 0===r?void 0:r(t);return(0,Nl.jsx)("tr",{className:mN("row",a),children:i.map((function(e){return(0,Nl.jsx)(wN,{height:o,align:e.align,className:e.className,children:e.render({row:t,index:n})},"".concat(e.name).concat(n))}))})},SN=function(e){var t=e.columns,n=e.children;return(0,Nl.jsx)("tr",{className:mN("row",{empty:!0}),children:(0,Nl.jsx)("td",{colSpan:t.length,className:mN("td"),children:n})})},xN=(0,e.memo)((function(t){var n,i=t.id,r=t.chunkSize,o=t.rowHeight,a=t.columns,s=t.chunkData,u=t.observer,l=t.getRowClassName,c=(0,e.useRef)(null);(0,e.useEffect)((function(){var e=c.current;return e&&u.observe(e),function(){e&&u.unobserve(e)}}),[u]);var d=null===s||void 0===s||null===(n=s.data)||void 0===n?void 0:n.length,h=d?d*o:r*o;return(0,Nl.jsx)("tbody",{ref:c,id:i.toString(),style:{height:"".concat(h,"px")},children:function(){var e;return s&&s.active?s.loading||s.error?aN(r).map((function(e){return(0,Nl.jsx)(CN,{columns:a,height:o,index:e},e)})):null===(e=s.data)||void 0===e?void 0:e.map((function(e,t){return(0,Nl.jsx)(kN,{index:t,row:e,columns:a,height:o,getRowClassName:l},t)})):null}()})})),LN=JSON.parse('{"empty":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445"}'),EN="ydb-virtual-table";Va.registerKeyset(Fa.En,EN,{empty:"No data"}),Va.registerKeyset(Fa.Ru,EN,LN);var DN=Va.keyset(EN),NN=function(t){var n=t.limit,i=t.fetchData,r=t.columns,o=t.getRowClassName,a=t.rowHeight,s=void 0===a?40:a,u=t.parentContainer,l=t.initialSortParams,c=t.renderControls,d=t.renderEmptyDataMessage,h=t.renderErrorMessage,f=t.dependencyArray,p=(0,e.useRef)(!1),g=(0,e.useRef)(null),v=(0,e.useReducer)((function(e,t){switch(t.type){case cN:var n=t.data,i=n.id,r=n.data;return Rt(Rt({},e),{},(0,wt.Z)({},i,{loading:!1,wasLoaded:!0,active:!0,data:r}));case dN:var o=t.data,a=o.id,s=o.error;return Rt(Rt({},e),{},(0,wt.Z)({},a,{loading:!1,wasLoaded:!0,active:!0,error:s}));case sN:var u=t.data.id;return Rt(Rt({},e),{},(0,wt.Z)({},u,{loading:!1,wasLoaded:!1,active:!0}));case lN:var l=t.data.id;return Rt(Rt({},e),{},(0,wt.Z)({},l,{loading:!0,wasLoaded:!1,active:!0}));case uN:var c=t.data.id,d=Rt({},e);return delete d[c],d;case hN:return{};default:return e}}),{}),m=(0,ne.Z)(v,2),_=m[0],y=m[1],b=(0,e.useState)(l),w=(0,ne.Z)(b,2),C=w[0],k=w[1],S=(0,e.useState)(n),x=(0,ne.Z)(S,2),L=x[0],E=x[1],D=(0,e.useState)(0),N=(0,ne.Z)(D,2),M=N[0],T=N[1],I=(0,e.useState)(),O=(0,ne.Z)(I,2),A=O[0],R=O[1],P=(0,e.useState)({}),Z=(0,ne.Z)(P,2),F=Z[0],j=Z[1],H=(0,e.useCallback)(function(){var e=dn(fn().mark((function e(t){var r;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:y(vN(t)),r=setTimeout(dn(fn().mark((function e(){var r,o,a,s,u;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=Number(t)*n,e.prev=1,e.next=4,i(n,r,C);case 4:o=e.sent,a=o.data,s=o.total,u=o.found,E(s),T(u),p.current=!0,y(fN(t,a)),e.next=18;break;case 12:if(e.prev=12,e.t0=e.catch(1),null===e.t0||void 0===e.t0||!e.t0.isCancelled){e.next=16;break}return e.abrupt("return");case 16:y(pN(t,e.t0)),R(e.t0);case 18:case"end":return e.stop()}}),e,null,[[1,12]])}))),200),j((function(e){return e[t]=r,e}));case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[i,n,C]),B=(0,e.useCallback)((function(e){y(gN(e))}),[]),z=(0,e.useCallback)((function(e){if(y(function(e){return{type:uN,data:{id:e}}}(e)),F[e]){var t=F[e];window.clearTimeout(t),delete F[e]}}),[F]);(0,e.useEffect)((function(){for(var e=0,t=Object.keys(_);e<t.length;e++){var n=t[e],i=_[Number(n)];null===i||void 0===i||!i.active||null!==i&&void 0!==i&&i.loading||null!==i&&void 0!==i&&i.wasLoaded||H(n)}}),[H,_]),(0,e.useEffect)((function(){var e;(E(n),T(0),R(void 0),y({type:hN}),p.current=!1,u)?u.scrollTo(0,0):null===(e=g.current)||void 0===e||e.scrollTo(0,0);y(gN("0"))}),[f,n,u]);var W=function(e){k(e),function(){for(var e=0,t=Object.keys(_);e<t.length;e++){var n,i=t[e];null!==(n=_[Number(i)])&&void 0!==n&&n.active&&y(gN(i))}}()},V=function(t){var n=t.onEntry,i=t.onLeave,r=t.parentContainer,o=(0,e.useRef)();return(0,e.useEffect)((function(){return o.current=new IntersectionObserver((function(e){e.forEach((function(e){e.isIntersecting?n(e.target.id):i(e.target.id)}))}),{root:r,rootMargin:"100%"}),function(){var e;null===(e=o.current)||void 0===e||e.disconnect(),o.current=void 0}}),[r,n,i]),o.current}({onEntry:B,onLeave:z,parentContainer:u}),Y=M||n,U=Math.ceil(Y/n),K=function(){return p.current&&0===M?(0,Nl.jsx)("tbody",{children:(0,Nl.jsx)(SN,{columns:r,children:d?d():DN("empty")})}):!p.current&&A?(0,Nl.jsx)("tbody",{children:(0,Nl.jsx)(SN,{columns:r,children:h?h(A):(0,Nl.jsx)(Sb,{error:A})})}):V?aN(U).map((function(e){var t=_[e];return(0,Nl.jsx)(xN,{observer:V,id:e,chunkSize:n,rowHeight:s,columns:r,chunkData:t,getRowClassName:o},e)})):null},q=function(){return(0,Nl.jsxs)("table",{className:mN("table"),children:[(0,Nl.jsx)(bN,{columns:r,onSort:W}),K()]})};return(0,Nl.jsx)("div",{ref:g,className:mN(null),children:c?(0,Nl.jsxs)(yb,{children:[(0,Nl.jsx)(yb.Controls,{children:c({inited:p.current,totalEntities:L,foundEntities:M})}),(0,Nl.jsx)(yb.Table,{children:q()})]}):q()})},MN=JSON.parse('{"default_message":"Everything is fine!","default_button_label":"Show All"}'),TN=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"}'),IN="ydb-storage-empty-filter";Va.registerKeyset(Fa.En,IN,MN),Va.registerKeyset(Fa.Ru,IN,TN);var ON=Va.keyset(IN),AN=function(e){var t=e.title,n=e.message,i=void 0===n?ON("default_message"):n,r=e.showAll,o=void 0===r?ON("default_button_label"):r,a=e.onShowAll;return(0,Nl.jsx)(Pb,{image:(0,Nl.jsx)(Ay,{name:"thumbsUp"}),position:"left",title:t,description:i,actions:a&&[(0,Nl.jsx)(_o.z,{onClick:a,children:o},"show-all")]})},RN=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"}'),PN=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"}'),ZN="ydb-storage-groups";Va.registerKeyset(Fa.En,ZN,RN),Va.registerKeyset(Fa.Ru,ZN,PN);var FN,jN=Va.keyset(ZN),HN=function(e){var t,n=e.visibleEntities,i=e.onShowAll;return n===Iu.space&&(t=jN("empty.out_of_space")),n===Iu.missing&&(t=jN("empty.degraded")),t?(0,Nl.jsx)(AN,{title:t,showAll:jN("show_all"),onShowAll:i}):null};function BN(){return BN=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},BN.apply(this,arguments)}var zN=function(t){return e.createElement("svg",BN({viewBox:"0 0 18 18",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},t),FN||(FN=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"})))},WN=(0,ht.Z)("stack"),VN=function(t){var n=t.children,i=t.className;return(0,Nl.jsx)("div",{className:WN(null,i),children:e.Children.map(n,(function(t,n){return e.isValidElement(t)?(0,Nl.jsx)("div",{className:WN("layer"),style:(0,wt.Z)({},"--ydb-stack-level",n),children:t}):null}))})},YN=["children","className","wrapperClassName"],UN=(0,ht.Z)("ydb-cell-with-popover");function KN(e){var t=e.children,n=e.className,i=e.wrapperClassName,r=nn(e,YN);return(0,Nl.jsx)("div",{className:UN(null,i),children:(0,Nl.jsx)(Xy,Rt(Rt({className:UN("popover",n)},r),{},{children:t}))})}var qN=["value","overloadThreshold","theme"],GN=(0,ht.Z)("ydb-usage-label");function $N(e){var t=e.value,n=e.overloadThreshold,i=void 0===n?90:n,r=e.theme,o=nn(e,qN);return(0,Nl.jsxs)(Pg,Rt(Rt({theme:r,className:GN({overload:Number(t)>=i})},o),{},{children:[t||0,"%"]}))}var QN="storage",XN="tablets",JN="overview",eM="structure",tM=[{id:JN,name:"Overview"},{id:QN,name:"Storage"},{id:eM,name:"Structure"},{id:XN,name:"Tablets"}];function nM(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _g(bg.node,{id:e,activeTab:JN},t)}var iM=["data","nodes"],rM=(0,ht.Z)("pdisk-storage-popup"),oM=[pa.Orange,pa.Red,pa.Yellow],aM=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},(n.NodeId&&n.PDiskId?"".concat(n.NodeId,"-").concat(n.PDiskId):void 0)||"-")},{label:"State",value:o||"not available"},{label:"Type",value:Zu(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(hr(i)," of ").concat(hr(r))}),l&&oM.includes(l)&&d.push({label:"Realtime",value:l}),c&&oM.includes(c)&&d.push({label:"Device",value:c}),d},sM=function(t){var n=t.data,i=t.nodes,r=nn(t,iM),o=(0,e.useMemo)((function(){return aM(n,i)}),[n,i]);return(0,Nl.jsx)(J_,Rt(Rt({contentClassName:rM(),placement:["top","bottom"],offset:[0,12]},r),{},{children:(0,Nl.jsx)(Tl,{title:"PDisk",info:o,size:"s"})}))},uM=["data","nodes"],lM=(0,ht.Z)("vdisk-storage-popup"),cM=function(t){var n=t.data,i=t.nodes,r=nn(t,uM),o=Fu(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,g=e.ReadThroughput,v=e.WriteThroughput,m=e.StoragePoolName,_=[{label:"VDisk",value:us(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)!==pa.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)!==pa.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!==pa.Green&&_.push({label:"Space",value:c}),d&&d!==pa.Green&&_.push({label:"FrontQueues",value:d}),h||_.push({label:"Replicated",value:"NO"}),f&&_.push({label:"UnsyncVDisks",value:f}),Number(p)&&_.push({label:"Allocated",value:hr(p)}),Number(g)&&_.push({label:"Read",value:dr(g)}),Number(v)&&_.push({label:"Write",value:dr(v)}),_}(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&&aM(n.PDisk,i)}),[n,i,o]);return(0,Nl.jsxs)(J_,Rt(Rt({contentClassName:lM(),placement:["top","bottom"],offset:[0,12]},r),{},{children:[n.DonorMode&&(0,Nl.jsx)(Pg,{className:lM("donor-label"),children:"Donor"}),(0,Nl.jsx)(Tl,{title:"VDisk",info:a,size:"s"}),s&&(0,Nl.jsx)(Tl,{title:"PDisk",info:s,size:"s"})]}))},dM=(0,ht.Z)("vdisk-storage"),hM={Initial:TD.Yellow,LocalRecoveryError:TD.Red,SyncGuidRecoveryError:TD.Red,SyncGuidRecovery:TD.Yellow,PDiskError:TD.Red,OK:TD.Green},fM=function(e){var t;return e&&null!==(t=hM[e])&&void 0!==t?t:RD},pM=function(e){var t;return e&&null!==(t=TD[e])&&void 0!==t?t:TD.Grey},gM=function(t){var n,i,r=t.data,o=void 0===r?{}:r,a=t.nodes,s=t.compact,u=Fu(o),l=(0,e.useState)(fM(u?o.VDiskState:void 0)),c=(0,ne.Z)(l,2),d=c[0],h=c[1],f=(0,e.useState)(!1),p=(0,ne.Z)(f,2),g=p[0],v=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=pM(e),s=fM(t),l=Math.min(TD.Orange,pM(n)),c=Math.max(a,s,l);i||r||c!==TD.Green||(c=TD.Blue),h(c)}else h(RD)}else h(RD)}),[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,Nl.jsxs)(e.Fragment,{children:[(0,Nl.jsx)(cM,{data:o,nodes:a,anchorRef:m,open:g}),(0,Nl.jsx)("div",{className:dM(),ref:m,onMouseEnter:function(){v(!0)},onMouseLeave:function(){v(!1)},children:o.NodeId&&u?(0,Nl.jsx)(vv,{to:_g(bg.node,{id:o.NodeId,activeTab:eM},{pdiskId:null!==(n=o.PDiskId)&&void 0!==n?n:null===(i=o.PDisk)||void 0===i?void 0:i.PDiskId,vdiskId:us(o.VDiskId)}),className:dM("content"),children:(0,Nl.jsx)(AD,{diskAllocatedPercent:_,severity:d,compact:s})}):(0,Nl.jsx)(AD,{diskAllocatedPercent:_,severity:d,compact:s})})]})},vM=(0,ht.Z)("global-storage-groups"),mM="Kind",_M="Erasure",yM="GroupId",bM="Used",wM="Limit",CM="Usage",kM="UsedSpaceFlag",SM="Read",xM="Write",LM="VDisks",EM="Degraded",DM={name:"PoolName",header:"Pool Name",width:250,render:function(e){var t,n=e.row,i=null===(t=n.PoolName)||void 0===t?void 0:t.split("/");return i&&(0,Nl.jsx)(KN,{wrapperClassName:vM("pool-name-wrapper"),content:n.PoolName,placement:["right"],behavior:Wy.Immediate,children:i[i.length-1]})},align:pi.LEFT},NM={name:mM,header:"Type",width:100,align:pi.LEFT,render:function(e){var t=e.row;return(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)(Pg,{children:t.Kind||"\u2014"}),"\xa0",t.Encryption&&(0,Nl.jsx)(Xy,{content:jN("encrypted"),placement:"right",behavior:Wy.Immediate,children:(0,Nl.jsx)(Pg,{children:(0,Nl.jsx)(yo.J,{data:zN})})})]})},sortable:!1},MM={name:_M,header:"Erasure",width:100,render:function(e){var t=e.row;return t.ErasureSpecies?t.ErasureSpecies:"-"},align:pi.LEFT,sortable:!1},TM={name:EM,header:"Degraded",width:100,render:function(e){var t=e.row;return t.Degraded?(0,Nl.jsxs)(Pg,{theme:FD(t),children:["Degraded: ",t.Degraded]}):"-"},align:pi.LEFT,defaultOrder:pi.DESCENDING},IM={name:CM,header:"Usage",width:100,render:function(e){var t=e.row;return t.Limit?(0,Nl.jsx)($N,{value:t.Usage,theme:jD(t.Usage)}):"-"},sortAccessor:function(e){return e.Limit?ju(e):null},align:pi.LEFT,sortable:!1},OM={name:yM,header:"Group ID",width:130,render:function(e){var t=e.row;return(0,Nl.jsx)("span",{className:vM("group-id"),children:t.GroupID})},sortAccessor:function(e){return Number(e.GroupID)},align:pi.RIGHT,sortable:!1},AM={name:bM,header:"Used",width:100,render:function(e){return hr(e.row.Used,!0)},align:pi.RIGHT,sortable:!1},RM={name:wM,header:"Limit",width:100,render:function(e){return hr(e.row.Limit)},align:pi.RIGHT,sortable:!1},PM={name:kM,header:"Space",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,Nl.jsx)(hy,{status:n})},align:pi.CENTER},ZM={name:SM,header:"Read",width:100,render:function(e){var t=e.row;return t.Read?dr(t.Read):"-"},align:pi.RIGHT},FM={name:xM,header:"Write",width:100,render:function(e){var t=e.row;return t.Write?dr(t.Write):"-"},align:pi.RIGHT},jM=function(e){return{name:LM,className:vM("vdisks-column"),header:"VDisks",render:function(t){var n,i=t.row;return(0,Nl.jsx)("div",{className:vM("vdisks-wrapper"),children:null===(n=i.VDisks)||void 0===n?void 0:n.map((function(t){var n=t.Donors;return n&&n.length>0?(0,Nl.jsxs)(VN,{className:vM("vdisks-item"),children:[(0,Nl.jsx)(gM,{data:t,nodes:e}),n.map((function(t){var n=Fu(t);return(0,Nl.jsx)(gM,{data:n?t:Rt(Rt({},t),{},{DonorMode:!0}),nodes:e},us(n?t.VDiskId:t))}))]},us(t.VDiskId)):(0,Nl.jsx)("div",{className:vM("vdisks-item"),children:(0,Nl.jsx)(gM,{data:t,nodes:e})},us(t.VDiskId))}))})},align:pi.CENTER,width:900}},HM=function(){return[OM,NM,MM,IM,AM,RM]},BM=function(e,t){var n=function(e){return[DM,NM,MM,TM,IM,OM,AM,RM,PM,ZM,FM,jM(e)]}(e),i=function(e,t){return t===Iu.space?e.filter((function(e){return e.name!==EM})):t===Iu.missing?e.filter((function(e){return e.name!==kM})):e.filter((function(e){return e.name!==EM&&e.name!==kM}))}(n,t);return i.map((function(e){return Rt(Rt({},e),{},{sortable:(t=e.name,Object.values(Hu).includes(t))});var t}))},zM=["limit","offset"],WM=function(e,t){return"getStorageGroups|offset".concat(t,"|limit").concat(e)},VM=function(){var e=dn(fn().mark((function e(t){var n,i,r,o,a;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.limit,i=t.offset,r=nn(t,zM),e.next=3,window.api.getStorageInfo(Rt({version:Eu.v2,limit:n,offset:i},r),{concurrentId:WM(n,i)});case 3:return o=e.sent,a=Ku(o),e.abrupt("return",{data:a.groups||[],found:a.found||0,total:a.total||0});case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),YM=function(t){var n=t.searchValue,i=t.visibleEntities,r=t.tenant,o=t.nodeId,a=t.nodesMap,s=t.onShowAll,u=t.parentContainer,l=t.renderControls,c=t.renderErrorMessage,d=(0,e.useMemo)((function(){return[n,i,r,o]}),[n,i,r,o]),h=(0,e.useCallback)(function(){var e=dn(fn().mark((function e(t,a){var s,u,l,c=arguments;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return u=(s=c.length>2&&void 0!==c[2]?c[2]:{}).sortOrder,l=s.columnId,e.next=3,VM({limit:t,offset:a,filter:n,visibleEntities:i,tenant:r,nodeId:o,sortOrder:u,sortValue:l});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),[o,n,r,i]),f=(0,e.useMemo)((function(){return BM(a,i)}),[a,i]);return(0,Nl.jsx)(NN,{parentContainer:u,columns:f,fetchData:h,limit:50,renderControls:l,renderErrorMessage:c,renderEmptyDataMessage:function(){return i!==Iu.all?(0,Nl.jsx)(HN,{onShowAll:s,visibleEntities:i}):jN("empty.default")},dependencyArray:d})},UM=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"}'),KM=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"}'),qM="ydb-storage-nodes";Va.registerKeyset(Fa.En,qM,UM),Va.registerKeyset(Fa.Ru,qM,KM);var GM,$M=Va.keyset(qM),QM=function(e){var t,n=e.visibleEntities,i=e.nodesUptimeFilter,r=e.onShowAll;return n===Iu.space&&(t=$M("empty.out_of_space")),n===Iu.missing&&(t=$M("empty.degraded")),i===va.SmallUptime&&(t=$M("empty.small_uptime")),n!==Iu.all&&i!==va.All&&(t=$M("empty.several_filters")),t?(0,Nl.jsx)(AN,{title:t,showAll:$M("show_all"),onShowAll:r}):null},XM=(0,ht.Z)("ydb-node-host-wrapper"),JM=function(e){var t=e.node,n=e.getNodeRef;if(!t.Host)return(0,Nl.jsx)("span",{children:"\u2014"});var i=!Ca(t),r=i&&n?n(t)+"internal":void 0,o=i?nM(t.NodeId,{tenantName:t.TenantName}):void 0;return(0,Nl.jsx)(KN,{disabled:!i,content:(0,Nl.jsx)(Zl,{data:t}),placement:["top","bottom"],behavior:Wy.Immediate,children:(0,Nl.jsxs)("div",{className:XM("host-wrapper"),children:[(0,Nl.jsx)(hy,{name:t.Host,status:t.SystemState,path:o,hasClipboardButton:!0,className:XM("host")}),r&&(0,Nl.jsx)(_o.z,{size:"s",href:r,className:XM("external-button"),target:"_blank",children:(0,Nl.jsx)(Ob,{name:"external"})})]})})},eT=(0,ht.Z)("pdisk-storage"),tT=(GM={},(0,wt.Z)(GM,Tu.Initial,TD.Grey),(0,wt.Z)(GM,Tu.Normal,TD.Green),(0,wt.Z)(GM,Tu.InitialFormatRead,TD.Yellow),(0,wt.Z)(GM,Tu.InitialSysLogRead,TD.Yellow),(0,wt.Z)(GM,Tu.InitialCommonLogRead,TD.Yellow),(0,wt.Z)(GM,Tu.InitialFormatReadError,TD.Red),(0,wt.Z)(GM,Tu.InitialSysLogReadError,TD.Red),(0,wt.Z)(GM,Tu.InitialSysLogParseError,TD.Red),(0,wt.Z)(GM,Tu.InitialCommonLogReadError,TD.Red),(0,wt.Z)(GM,Tu.InitialCommonLogParseError,TD.Red),(0,wt.Z)(GM,Tu.CommonLoggerInitError,TD.Red),(0,wt.Z)(GM,Tu.OpenFileError,TD.Red),(0,wt.Z)(GM,Tu.ChunkQuotaError,TD.Red),(0,wt.Z)(GM,Tu.DeviceIoError,TD.Red),GM),nT=function(e){return function(e){return void 0!==e&&e in tT}(e)?tT[e]:RD},iT=function(t){var n=t.nodeId,i=t.data,r=void 0===i?{}:i,o=t.vDisks,a=(0,e.useMemo)((function(){return Rt(Rt({},r),{},{NodeId:n})}),[r,n]),s=(0,e.useState)(nT(a.State)),u=(0,ne.Z)(s,2),l=u[0],c=u[1],d=(0,e.useState)(!1),h=(0,ne.Z)(d,2),f=h[0],p=h[1],g=(0,e.useRef)(null),v=(0,e.useMemo)((function(){var e=a.AvailableSize,t=a.TotalSize;if(e&&t)return isNaN(Number(e))||isNaN(Number(t))?void 0:Math.round(100*(Number(t)-Number(e))/Number(t))}),[a]);(0,e.useEffect)((function(){var e,t=nT(a.State),n=BD(v||0);e=t!==RD&&n?Math.max(t,TD[n]):t,c(e)}),[a.State,v]);return(0,Nl.jsxs)(e.Fragment,{children:[(0,Nl.jsx)(sM,{data:a,anchorRef:g,open:f}),(0,Nl.jsxs)("div",{className:eT(),ref:g,children:[null!==o&&void 0!==o&&o.length?(0,Nl.jsx)("div",{className:eT("vdisks"),children:o.map((function(e){var t=e.Donors;return(0,Nl.jsx)("div",{className:eT("vdisks-item"),style:{flexGrow:Number(e.AllocatedSize)||1},children:t&&t.length?(0,Nl.jsxs)(VN,{className:eT("donors-stack"),children:[(0,Nl.jsx)(gM,{data:e,compact:!0}),t.map((function(e){var t=Fu(e);return(0,Nl.jsx)(gM,{compact:!0,data:t?e:Rt(Rt({},e),{},{DonorMode:!0})},us(t?e.VDiskId:e))}))]},us(e.VDiskId)):(0,Nl.jsx)(gM,{data:e,compact:!0})},us(e.VDiskId))}))}):null,(0,Nl.jsxs)(vv,{to:_g(bg.node,{id:n,activeTab:eM},{pdiskId:a.PDiskId||""}),className:eT("content"),onMouseEnter:function(){p(!0)},onMouseLeave:function(){p(!1)},children:[(0,Nl.jsx)(AD,{diskAllocatedPercent:v,severity:l}),(0,Nl.jsx)("div",{className:eT("media-type"),children:Zu(a)})]})]})]})},rT=(0,ht.Z)("global-storage-nodes"),oT=function(e){return rT("node",{unavailable:Ca(e)})},aT="NodeId",sT="Host",uT="DC",lT="Rack",cT="Uptime",dT="PDisks",hT="Missing",fT=function(e,t){var n=function(e){var t=null===e||void 0===e?void 0:e.getNodeRef;return[{name:aT,header:"Node ID",width:100,align:pi.RIGHT,render:function(e){return e.row.NodeId}},{name:sT,header:"Host",width:350,render:function(e){var n=e.row;return(0,Nl.jsx)(JM,{node:n,getNodeRef:t})},align:pi.LEFT},{name:uT,header:"DC",width:100,render:function(e){return e.row.DataCenter||"\u2014"},align:pi.LEFT},{name:lT,header:"Rack",width:100,render:function(e){return e.row.Rack||"\u2014"},align:pi.LEFT},{name:cT,header:"Uptime",width:130,sortAccessor:function(e){var t=e.StartTime;return t?-t:0},align:pi.RIGHT,render:function(e){return e.row.Uptime}},{name:hT,header:"Missing",width:100,align:pi.CENTER,defaultOrder:pi.DESCENDING,render:function(e){return e.row.Missing}},{name:dT,className:rT("pdisks-column"),header:"PDisks",render:function(e){var t,n=e.row;return(0,Nl.jsx)("div",{className:rT("pdisks-wrapper"),children:null===(t=n.PDisks)||void 0===t?void 0:t.map((function(e){var t,i=null===(t=n.VDisks)||void 0===t?void 0:t.filter((function(t){return t.PDiskId===e.PDiskId})).map((function(e){return Rt(Rt({},e),{},{NodeId:n.NodeId})}));return(0,Nl.jsx)("div",{className:rT("pdisks-item"),children:(0,Nl.jsx)(iT,{data:e,nodeId:n.NodeId,vDisks:i})},e.PDiskId)}))})},align:pi.CENTER,sortable:!1,width:900}]}(e),i=n.map((function(e){return Rt(Rt({},e),{},{sortable:Ea(e.name)})}));return t!==Iu.missing?i.filter((function(e){return e.name!==hT})):i},pT=["type","storage","limit","offset"],gT=function(e,t){return"getStorageNodes|offset".concat(t,"|limit").concat(e)},vT=function(){var e=dn(fn().mark((function e(t){var n,i,r,o,a,s,u,l,c;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.type,i=void 0===n?"static":n,r=t.storage,o=void 0===r||r,a=t.limit,s=t.offset,u=nn(t,pT),e.next=3,window.api.getNodes(Rt({type:i,storage:o,limit:a,offset:s},u),{concurrentId:gT(a,s)});case 3:return l=e.sent,c=Uu(l),e.abrupt("return",{data:c.nodes||[],found:c.found||0,total:c.total||0});case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),mT=function(t){var n=t.searchValue,i=t.visibleEntities,r=t.nodesUptimeFilter,o=t.tenant,a=t.additionalNodesProps,s=t.onShowAll,u=t.parentContainer,l=t.renderControls,c=t.renderErrorMessage,d=(0,e.useMemo)((function(){return[n,i,r,o]}),[n,i,r,o]),h=(0,e.useCallback)(function(){var e=dn(fn().mark((function e(t,a){var s,u,l,c=arguments;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return u=(s=c.length>2&&void 0!==c[2]?c[2]:{}).sortOrder,l=s.columnId,e.next=3,vT({limit:t,offset:a,filter:n,uptime:xa(r),visibleEntities:i,tenant:o,sortOrder:u,sortValue:l});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),[r,n,o,i]),f=(0,e.useMemo)((function(){return fT(a,i)}),[a,i]);return(0,Nl.jsx)(NN,{parentContainer:u,columns:f,fetchData:h,rowHeight:50,limit:50,renderControls:l,renderErrorMessage:c,renderEmptyDataMessage:function(){return i!==Iu.all||r!==va.All?(0,Nl.jsx)(QM,{onShowAll:s,nodesUptimeFilter:r,visibleEntities:i}):$M("empty.default")},getRowClassName:oT,dependencyArray:d})},_T=function(t){var n=t.tenant,i=t.nodeId,r=t.parentContainer,o=t.additionalNodesProps,a=K(),s=(0,e.useState)(""),u=(0,ne.Z)(s,2),l=u[0],c=u[1],d=(0,e.useState)(Ou),h=(0,ne.Z)(d,2),f=h[0],p=h[1],g=(0,e.useState)(Iu.all),v=(0,ne.Z)(g,2),m=v[0],_=v[1],y=(0,e.useState)(va.All),b=(0,ne.Z)(y,2),w=b[0],C=b[1],k=ev(Df);(0,e.useEffect)((function(){a(Ef())}),[a]);var S=function(e){var t=e.totalEntities,n=e.foundEntities,r=e.inited;return(0,Nl.jsx)(oN,{searchValue:l,handleSearchValueChange:c,withTypeSelector:!i,storageType:f,handleStorageTypeChange:p,visibleEntities:m,handleVisibleEntitiesChange:_,nodesUptimeFilter:w,handleNodesUptimeFilterChange:C,withGroupsUsageFilter:!1,entitiesCountCurrent:n,entitiesCountTotal:t,entitiesLoading:!r})},x=function(e){return 403===e.status?(0,Nl.jsx)(Fb,{position:"left"}):(0,Nl.jsx)(Sb,{error:e})};return f===Au?(0,Nl.jsx)(mT,{searchValue:l,visibleEntities:m,nodesUptimeFilter:w,tenant:n,additionalNodesProps:o,onShowAll:function(){_(Iu.all),C(va.All)},parentContainer:r,renderControls:S,renderErrorMessage:x}):(0,Nl.jsx)(YM,{searchValue:l,visibleEntities:m,tenant:n,nodeId:i,nodesMap:k,onShowAll:function(){_(Iu.all)},parentContainer:r,renderControls:S,renderErrorMessage:x})},yT=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(arguments.length>1?arguments[1]:void 0)===va.All?e:e.filter((function(e){var t=e.StartTime;return!t||ys(t)<_i}))},bT=$c([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=yT(e,t);return r=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(arguments.length>1?arguments[1]:void 0)===Cr.ALL?e:e.filter((function(e){var t=e.SystemState;return t&&t!==pa.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=xn(t);return e.filter((function(e){return!e.Host||n.test(e.Host)||n.test(String(e.NodeId))}))}(r,n),r})),wT=function(e){return e.trim().toLowerCase()},CT=function(e){return{total:e.storage.total,found:e.storage.found}},kT=function(e){return e.storage.groups},ST=function(e){return e.storage.filter},xT=function(e){var t=La.NodeId,n=yn;return{sortValue:e.storage.nodesSortValue||t,sortOrder:e.storage.nodesSortOrder||n}},LT=function(e){var t=e.storage.visible,n=Hu.PoolName,i=yn;return t===Iu.missing&&(n=Hu.Degraded,i=bn),t===Iu.space&&(n=Hu.Usage,i=bn),{sortValue:e.storage.groupsSortValue||n,sortOrder:e.storage.groupsSortOrder||i}},ET=$c(kT,(function(e){var t={};return null===e||void 0===e||e.forEach((function(e){var n=ju(e,5);Object.prototype.hasOwnProperty.call(t,n)||(t[n]=0),t[n]+=1})),Object.entries(t).map((function(e){var t=(0,ne.Z)(e,2),n=t[0],i=t[1];return{threshold:Number(n),count:i}})).sort((function(e,t){return t.threshold-e.threshold}))})),DT=$c([function(e){return e.storage.nodes},ST,function(e){return e.storage.nodesUptimeFilter}],(function(e,t,n){var i=e||[];return i=function(e,t){var n=wT(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=yT(i,n)})),NT=$c([kT,ST,function(e){return e.storage.usageFilter}],(function(e,t,n){var i,r,o=e||[];return o=function(e,t){var n=wT(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=e.Usage;return r.some((function(e){return Number(e)<=t&&t<Number(e)+5}))})):i}));function MT(t){var n=t.data,i=t.tableSettings,r=t.visibleEntities,o=t.nodes,a=t.onShowAll,s=t.sort,u=t.handleSort,l=(0,e.useMemo)((function(){return BM(o,r)}),[o,r]);return n.length||r===Iu.all?(0,Nl.jsx)(pi,{theme:"yandex-cloud",data:n,columns:l,settings:i,emptyDataMessage:jN("empty.default"),sortOrder:s,onSort:u},r):(0,Nl.jsx)(HN,{onShowAll:a,visibleEntities:r})}function TT(e){var t=e.data,n=e.tableSettings,i=e.visibleEntities,r=e.onShowAll,o=e.nodesUptimeFilter,a=e.additionalNodesProps,s=e.sort,u=e.handleSort,l=fT(a,i);return t.length||i===Iu.all&&o===va.All?(0,Nl.jsx)(pi,{theme:"yandex-cloud",data:t,columns:l,settings:Rt(Rt({},n),{},{dynamicRenderType:"variable"}),emptyDataMessage:$M("empty.default"),rowClassName:oT,sortOrder:s,onSort:u},i):(0,Nl.jsx)(QM,{visibleEntities:i,nodesUptimeFilter:o,onShowAll:r})}var IT=function(t){var n=t.additionalNodesProps,i=t.tenant,r=t.nodeId,o=K(),a=ev((function(e){return e.schema})).autorefresh,s=ev((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,g=s.nodesUptimeFilter,v=ev(DT),m=ev(NT),_=ev(CT),y=ev(Df),b=ev(ET),w=ev(xT),C=ev(LT),k=void 0!==r,S=k?Ou:d;(0,e.useEffect)((function(){return o(Ef()),function(){o({type:Qu})}}),[o]);var x=function(t){var n=t.filter,i=t.problemFilter,r=t.nodesUptimeFilter,o=t.sortOrder,a=t.sortValue,s=tv(qi),u=(0,ne.Z)(s,1)[0];return(0,e.useMemo)((function(){if(u){var e=Sa(i),t=xa(r);return{filter:n,problems_only:e,uptime:t,sortOrder:o,sortValue:a}}}),[u,n,i,r,o,a])}(Rt({filter:f,nodesUptimeFilter:g},w)),L=function(t){var n=t.filter,i=t.sortOrder,r=t.sortValue,o=tv(qi),a=(0,ne.Z)(o,1)[0];return(0,e.useMemo)((function(){if(a)return{version:Eu.v2,filter:n,sortOrder:i,sortValue:r}}),[a,n,i,r])}(Rt({filter:f},C)),E=iv(w,(function(e){return o({type:rl,data:e})})),D=(0,ne.Z)(E,2),N=D[0],M=D[1],T=iv(C,(function(e){return o({type:ol,data:e})})),I=(0,ne.Z)(T,2),O=I[0],A=I[1],R=(0,e.useCallback)((function(e){e||o({type:il});var t=L||{};o(S===Au?function(e){var t=e.tenant,n=e.visibleEntities,i=nn(e,qu);return oa({request:window.api.getNodes(Rt({tenant:t,visibleEntities:n,storage:!0,type:"static"},i),{concurrentId:sl}),actions:$u,dataHandler:Uu})}(Rt({tenant:i,visibleEntities:h},x||{})):function(e){var t=e.tenant,n=e.visibleEntities,i=e.nodeId,r=e.version,o=void 0===r?Eu.v1:r,a=nn(e,Gu);return oa({request:window.api.getStorageInfo(Rt({tenant:t,visibleEntities:n,nodeId:i,version:o},a),{concurrentId:sl}),actions:$u,dataHandler:Ku})}(Rt({tenant:i,visibleEntities:h,nodeId:r},t)))}),[o,i,r,h,S,L,x]);Jg(R,[R],!i||a);var P=function(e){o(function(e){return{type:Ju,data:e}}(e))},Z=function(e){o(function(e){return{type:Xu,data:e}}(e))},F=function(e){o(function(e){return{type:el,data:e}}(e))},j=function(e){o(function(e){return{type:tl,data:e}}(e))},H=function(e){o(function(e){return{type:nl,data:e}}(e))},B=function(){F(Iu.all),H(va.All)};return c?403===c.status?(0,Nl.jsx)(Fb,{position:"left"}):(0,Nl.jsx)(Sb,{error:c}):(0,Nl.jsxs)(yb,{children:[(0,Nl.jsx)(yb.Controls,{children:(0,Nl.jsx)(oN,{searchValue:f,handleSearchValueChange:Z,withTypeSelector:!k,storageType:S,handleStorageTypeChange:j,visibleEntities:h,handleVisibleEntitiesChange:F,nodesUptimeFilter:g,handleNodesUptimeFilterChange:H,groupsUsageFilter:p,groupsUsageFilterOptions:b,handleGroupsUsageFilterChange:P,entitiesCountCurrent:S===Ou?m.length:v.length,entitiesCountTotal:_.total,entitiesLoading:u&&!l})}),(0,Nl.jsx)(yb.Table,{loading:u&&!l,className:rN("table"),children:(0,Nl.jsxs)(Nl.Fragment,{children:[S===Ou&&(0,Nl.jsx)(MT,{visibleEntities:h,data:m,tableSettings:Bi,nodes:y,onShowAll:function(){return F(Iu.all)},sort:O,handleSort:A}),S===Au&&(0,Nl.jsx)(TT,{visibleEntities:h,nodesUptimeFilter:g,data:v,tableSettings:Bi,onShowAll:B,additionalNodesProps:n,sort:N,handleSort:M})]})})]})},OT=["parentContainer"],AT=function(e){var t=e.parentContainer,n=nn(e,OT),i=tv(qi);return(0,ne.Z)(i,1)[0]?(0,Nl.jsx)(_T,Rt({parentContainer:t},n)):(0,Nl.jsx)(IT,Rt({},n))},RT=(0,ht.Z)("progress-viewer"),PT={xs:"xs",s:"s",ns:"ns",m:"m",n:"n",l:"l",head:"head"},ZT=function(e){return fs(ps(Number(e),2))},FT=function(e,t){return[ZT(e),ZT(t)]};function jT(e){var t=e.value,n=e.capacity,i=e.formatValues,r=void 0===i?FT:i,o=e.percents,a=e.className,s=e.size,u=void 0===s?PT.xs:s,l=e.colorizeProgress,c=e.inverseColorize,d=e.warningThreshold,h=void 0===d?60:d,f=e.dangerThreshold,p=void 0===f?80:f,g=Math.round(parseFloat(String(t))/parseFloat(String(n))*100)||0;g=g>100?100:g;var v=t,m=n,_="/";if(o)v=g+"%",m="",_="";else if(r){var y=r(Number(t),Number(n)),b=(0,ne.Z)(y,2);v=b[0],m=b[1]}var w=c?"scarlet":"apple";l&&(g>h&&g<=p?w="saffron":g>p&&(w=c?"apple":"scarlet"));var C={width:g+"%"},k=g>60?"contrast0":"contrast70";return pr(t)?(0,Nl.jsxs)("div",{className:RT({size:u},a),children:[(0,Nl.jsx)("div",{className:RT("line",{bg:w}),style:C}),(0,Nl.jsx)("span",{className:RT("text",{text:k}),children:pr(n)?"".concat(v," ").concat(_," ").concat(m):v})]}):(0,Nl.jsx)("div",{className:"".concat(RT({size:u})," ").concat(a," error"),children:"no data"})}var HT="Host",BT="DC",zT="Rack",WT="Version",VT="Uptime",YT="Memory",UT="CPU",KT="LoadAverage",qT="Tablets",GT="TopNodesLoadAverage",$T="TopNodesMemory",QT="SharedCacheUsage",XT="MemoryUsedInAlloc",JT="TotalSessions",eI={name:"NodeId",header:"#",width:80,render:function(e){return e.row.NodeId},align:pi.RIGHT,sortable:!1},tI=function(e){return{name:HT,render:function(t){var n=t.row;return(0,Nl.jsx)(JM,{node:n,getNodeRef:e})},width:350,align:pi.LEFT,sortable:!1}},nI=function(e){return Rt(Rt({},tI(e)),{},{width:void 0})},iI={name:BT,header:"DC",align:pi.LEFT,render:function(e){var t=e.row;return t.DataCenter?t.DataCenter:"\u2014"},width:60},rI={name:zT,header:"Rack",align:pi.LEFT,render:function(e){var t=e.row;return t.Rack?t.Rack:"\u2014"},width:80},oI={name:WT,width:200,align:pi.LEFT,render:function(e){var t=e.row;return(0,Nl.jsx)(KN,{content:t.Version,children:t.Version})},sortable:!1},aI={name:VT,header:"Uptime",sortAccessor:function(e){var t=e.StartTime;return t&&-t},render:function(e){return e.row.Uptime},align:pi.RIGHT,width:110,sortable:!1},sI={name:YT,header:"Memory",sortAccessor:function(e){var t=e.MemoryUsed;return Number(void 0===t?0:t)},defaultOrder:pi.DESCENDING,render:function(e){var t=e.row;return t.MemoryUsed?ss(t.MemoryUsed):"\u2014"},align:pi.RIGHT,width:120},uI={name:UT,header:"CPU",sortAccessor:function(e){var t=e.PoolStats,n=void 0===t?[]:t;return Math.max.apply(Math,(0,Ct.Z)(n.map((function(e){var t=e.Usage;return Number(t)}))))},defaultOrder:pi.DESCENDING,render:function(e){var t=e.row;return t.PoolStats?(0,Nl.jsx)(_y,{pools:t.PoolStats}):"\u2014"},align:pi.LEFT,width:80,sortable:!1},lI={name:KT,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:pi.DESCENDING,render:function(e){var t=e.row;return t.LoadAverage&&t.LoadAverage.length>0?(0,Nl.jsx)(jT,{value:t.LoadAverage[0],percents:!0,colorizeProgress:!0,capacity:100}):"\u2014"},align:pi.LEFT,width:140,sortable:!1},cI=function(e){return{name:qT,width:430,render:function(t){var n=t.row;return n.Tablets?(0,Nl.jsx)(Sy,{path:null!==e&&void 0!==e?e:n.TenantName,nodeIds:[n.NodeId],tablets:n.Tablets}):"\u2014"},align:pi.LEFT,sortable:!1}},dI={name:GT,header:"Load",render:function(e){var t=e.row;return t.LoadAverage&&t.LoadAverage.length>0?(0,Nl.jsx)($N,{value:t.LoadAverage[0].toFixed(),theme:xs(t.LoadAverage[0])}):"\u2014"},align:pi.LEFT,width:80,sortable:!1},hI={name:$T,header:"Process",render:function(e){var t=e.row;return(0,Nl.jsx)(jT,{value:t.MemoryUsed,capacity:t.MemoryLimit,formatValues:hs,colorizeProgress:!0})},align:pi.LEFT,width:140,sortable:!1},fI={name:QT,header:"Tablet Cache",render:function(e){var t=e.row;return(0,Nl.jsx)(jT,{value:t.SharedCacheUsed,capacity:t.SharedCacheLimit,formatValues:hs,colorizeProgress:!0})},align:pi.LEFT,width:140,sortable:!1},pI={name:XT,header:"Query Runtime",render:function(e){var t=e.row;return(0,Nl.jsx)(jT,{value:t.MemoryUsedInAlloc,capacity:t.MemoryLimit,formatValues:hs,colorizeProgress:!0})},align:pi.LEFT,width:140,sortable:!1},gI={name:JT,header:"Sessions",render:function(e){var t;return null!==(t=e.row.TotalSessions)&&void 0!==t?t:"\u2014"},align:pi.RIGHT,width:100,sortable:!1};function vI(e){var t=e.tabletsPath,n=e.getNodeRef;return[eI,tI(n),iI,rI,oI,aI,sI,uI,lI,cI(t)]}var mI=["type","storage","limit","offset"],_I=function(e,t){return"getNodes|offset".concat(t,"|limit").concat(e)},yI=function(){var e=dn(fn().mark((function e(t){var n,i,r,o,a,s,u,l,c;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.type,i=void 0===n?"any":n,r=t.storage,o=void 0!==r&&r,a=t.limit,s=t.offset,u=nn(t,mI),e.next=3,window.api.getNodes(Rt({type:i,storage:o,limit:a,offset:s},u),{concurrentId:_I(a,s)});case 3:return l=e.sent,c=Ss(l),e.abrupt("return",{data:c.Nodes||[],found:c.FoundNodes||0,total:c.TotalNodes||0});case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),bI=JSON.parse('{"empty.default":"No such nodes"}'),wI=JSON.parse('{"empty.default":"\u041d\u0435\u0442 \u0443\u0437\u043b\u043e\u0432"}'),CI="ydb-nodes";Va.registerKeyset(Fa.En,CI,bI),Va.registerKeyset(Fa.Ru,CI,wI);var kI=Va.keyset(CI),SI=(0,ht.Z)("ydb-nodes"),xI=function(t){var n=t.parentContainer,i=t.additionalNodesProps,r=(0,e.useState)(""),o=(0,ne.Z)(r,2),a=o[0],s=o[1],u=(0,e.useState)(Cr.ALL),l=(0,ne.Z)(u,2),c=l[0],d=l[1],h=(0,e.useState)(va.All),f=(0,ne.Z)(h,2),p=f[0],g=f[1],v=(0,e.useMemo)((function(){return[a,c,p]}),[a,c,p]),m=(0,e.useCallback)(function(){var e=dn(fn().mark((function e(t,n){var i,r,o,s=arguments;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=(i=s.length>2&&void 0!==s[2]?s[2]:{}).sortOrder,o=i.columnId,e.next=3,yI({limit:t,offset:n,filter:a,problems_only:Sa(c),uptime:xa(p),sortOrder:r,sortValue:o});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}(),[c,a,p]),_=vI({getNodeRef:null===i||void 0===i?void 0:i.getNodeRef}).map((function(e){return Rt(Rt({},e),{},{sortable:Ea(e.name)})}));return(0,Nl.jsx)(NN,{parentContainer:n,columns:_,fetchData:m,limit:50,renderControls:function(e){var t=e.totalEntities,n=e.foundEntities,i=e.inited;return(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)(fb,{onChange:s,placeholder:"Host name",className:SI("search"),value:a}),(0,Nl.jsx)(Ny,{value:c,onChange:d}),(0,Nl.jsx)(zb,{value:p,onChange:g}),(0,Nl.jsx)(Bb,{total:t,current:n,label:"Nodes",loading:!i})]})},renderErrorMessage:function(e){return e&&403===e.status?(0,Nl.jsx)(Fb,{position:"left"}):(0,Nl.jsx)(Sb,{error:e})},renderEmptyDataMessage:function(){return c!==Cr.ALL||p!==va.All?(0,Nl.jsx)(Ay,{name:"thumbsUp",width:"200"}):kI("empty.default")},dependencyArray:v,getRowClassName:function(e){return SI("node",{unavailable:Ca(e)})}})},LI=(0,ht.Z)("ydb-nodes"),EI=function(t){var n=t.path,i=t.additionalNodesProps,r=void 0===i?{}:i,o=K(),a=!n;(0,e.useEffect)((function(){o({type:Ns})}),[o,n]);var s=ev((function(e){return e.nodes})),u=s.wasLoaded,l=s.loading,c=s.error,d=s.nodesUptimeFilter,h=s.searchValue,f=s.sortOrder,p=void 0===f?yn:f,g=s.sortValue,v=void 0===g?"NodeId":g,m=s.totalNodes,_=ev((function(e){return e.settings.problemFilter})),y=ev((function(e){return e.schema})).autorefresh,b=ev(bT),w=tv(Ti),C=(0,ne.Z)(w,1)[0],k=(0,e.useCallback)((function(e){e||o({type:Ts}),o(n&&!C?function(e){var t=e.version,n=void 0===t?ba.v2:t,i=nn(e,Es);return oa({request:window.api.getCompute(Rt({version:n},i),{concurrentId:Rs}),actions:Ds,dataHandler:ks})}({path:n}):function(e){var t=e.type,n=void 0===t?"any":t,i=e.storage,r=void 0!==i&&i,o=nn(e,Ls);return oa({request:window.api.getNodes(Rt({type:n,storage:r},o),{concurrentId:Rs}),actions:Ds,dataHandler:Ss})}({path:n}))}),[o,n,C]);Jg(k,[k],!!a||y);var S=iv({sortValue:v,sortOrder:p},(function(e){return o(function(e){return{type:Os,data:e}}(e))})),x=(0,ne.Z)(S,2),L=x[0],E=x[1],D=function(e){o(function(e){return{type:Is,data:e}}(e))},N=function(e){o(Lr(e))},M=function(e){o(function(e){return{type:Ms,data:e}}(e))};return c?403===c.status?(0,Nl.jsx)(Fb,{}):(0,Nl.jsx)(Sb,{error:c}):(0,Nl.jsxs)(yb,{children:[(0,Nl.jsx)(yb.Controls,{children:(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)(fb,{onChange:D,placeholder:"Host name",className:LI("search"),value:h}),(0,Nl.jsx)(Ny,{value:_,onChange:N}),(0,Nl.jsx)(zb,{value:d,onChange:M}),(0,Nl.jsx)(Bb,{total:m,current:(null===b||void 0===b?void 0:b.length)||0,label:"Nodes",loading:l&&!u})]})}),(0,Nl.jsx)(yb.Table,{loading:l&&!u,className:LI("table"),children:function(){var e=vI({getNodeRef:r.getNodeRef}).map((function(e){return Rt(Rt({},e),{},{sortable:Ea(e.name)})}));return!b||0!==b.length||_===Cr.ALL&&d===va.All?(0,Nl.jsx)(pi,{theme:"yandex-cloud",data:b||[],columns:e,settings:Bi,sortOrder:L,onSort:E,emptyDataMessage:kI("empty.default"),rowClassName:function(e){return LI("node",{unavailable:Ca(e)})}}):(0,Nl.jsx)(Ay,{name:"thumbsUp",width:"200"})}()})]})},DI=["parentContainer"],NI=function(e){var t=e.parentContainer,n=nn(e,DI),i=tv(qi);return(0,ne.Z)(i,1)[0]?(0,Nl.jsx)(xI,Rt({parentContainer:t},n)):(0,Nl.jsx)(EI,Rt({},n))};function MI(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,g=e.useRef(null),v=e.useState(null!==o&&void 0!==o&&o),m=(0,ne.Z)(v,2),_=m[0],y=m[1],b="boolean"===typeof a,w=b?a:_,C=!s&&a,k=s?"mixed":w,S=Ov(c,g);e.useLayoutEffect((function(){g.current&&(g.current.indeterminate=Boolean(s))}),[s]);var x=e.useCallback((function(e){mv.P.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})}}var TI=(0,ft.Ge)("control-label"),II=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=e.cloneElement(c,{className:TI("indicator",c.props.className)});return e.createElement("label",{ref:n,title:a,style:s,className:TI({size:h,disabled:l},r),"data-qa":f},p,i?e.createElement("span",{className:TI("text",o)},i):null)}));function OI(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"}))}function AI(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"}))}II.displayName="ControlLabel";var RI,PI=(0,ft.Ge)("checkbox"),ZI=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=MI(t),g=p.checked,v=p.inputProps,m=u||l,_=e.createElement("span",{className:PI("indicator")},e.createElement("span",{className:PI("icon"),"aria-hidden":!0},o?e.createElement(OI,{className:PI("icon-svg",{type:"dash"})}):e.createElement(AI,{className:PI("icon-svg",{type:"tick"})})),e.createElement("input",Object.assign({},v,{className:PI("control")})),e.createElement("span",{className:PI("outline")}));return e.createElement(II,{ref:n,title:c,style:d,size:r,disabled:s,className:PI({size:r,disabled:s,indeterminate:o,checked:g},h),qa:f,control:_},m)})),FI=(0,ht.Z)("ydb-loader"),jI=function(e){var t=e.size,n=void 0===t?"m":t;return(0,Nl.jsx)("div",{className:FI(),children:(0,Nl.jsx)(KE,{size:n})})};!function(e){e.VERSION="Version",e.TENANT="Database",e.STORAGE="Storage"}(RI||(RI={}));var HI=function(e,t){var n;return(null===(n=e.title)||void 0===n?void 0:n.localeCompare(t.title||""))||-1},BI=function(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},t),e.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M3 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm5 0a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z",clipRule:"evenodd"}))},zI=(0,ft.Ge)("dropdown-menu"),WI=e.createContext({toggle:function(){},data:void 0});WI.displayName="DropdownMenu.Context";var VI=function(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},t),e.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M5.47 13.03a.75.75 0 0 1 0-1.06L9.44 8 5.47 4.03a.75.75 0 0 1 1.06-1.06l4.5 4.5a.75.75 0 0 1 0 1.06l-4.5 4.5a.75.75 0 0 1-1.06 0Z",clipRule:"evenodd"}))},YI=(0,ft.Ge)("menu"),UI=e.forwardRef((function(t,n){var i=t.label,r=t.children,o=t.style,a=t.className,s=t.qa,u=W_();return e.createElement("li",{ref:n,className:YI("list-group-item")},e.createElement("div",{style:o,className:YI("group",a),"data-qa":s},i&&e.createElement("div",{id:u,className:YI("group-label")},i),e.createElement("ul",{role:"group","aria-labelledby":u,className:YI("group-list")},r)))})),KI=(0,ft.Ge)("menu"),qI=e.forwardRef((function(t,n){var i,r=t.icon,o=t.iconStart,a=void 0===o?r:o,s=t.iconEnd,u=t.title,l=t.disabled,c=t.active,d=t.selected,h=t.href,f=t.target,p=t.rel,g=t.onClick,v=t.style,m=t.className,_=t.theme,y=t.extraProps,b=t.children,w=t.qa,C=(0,kg.b)(g).onKeyDown,k=e.useCallback((function(e){mv.P.publish({componentId:"MenuItem",eventId:"click",domEvent:e})}),[]),S={role:"menuitem",onKeyDown:g&&!l?C:void 0},x={title:u,onClick:l?void 0:g,onClickCapture:l?void 0:k,style:v,tabIndex:l?-1:0,className:KI("item",{disabled:l,active:c,selected:d,theme:_},m),"data-qa":w},L=[a&&e.createElement("div",{key:"icon-start",className:KI("item-icon")},a),e.createElement("div",{key:"content",className:KI("item-content")},b),s&&e.createElement("div",{key:"icon-end",className:KI("item-icon-end")},s)];return i=h?e.createElement("a",Object.assign({},S,y,x,{href:h,target:f,rel:p}),L):e.createElement("div",Object.assign({},S,y,x),L),e.createElement("li",{ref:n,className:KI("list-item")},i)})),GI=(0,ft.Ge)("menu"),$I=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:GI({size:r},s),"data-qa":u},o)}));function QI(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])?QI(e,r,1,i):r}function XI(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])?XI(e,i,1,n):i}$I.Item=qI,$I.Group=UI;var JI=[],eO=e.createContext({activeMenuPath:JI,setActiveMenuPath:function(){},anchorRef:{current:null}}),tO=function(t){var n=t.anchorRef,i=t.children,r=t.disabled,o=e.useState(JI),a=(0,ne.Z)(o,2),s=a[0],u=a[1];e.useEffect((function(){r&&u(JI)}),[r]);var l=e.useMemo((function(){return{activeMenuPath:s,setActiveMenuPath:u,anchorRef:n}}),[s,n]);return e.createElement(eO.Provider,{value:l},i)},nO=["right-start","left-start"],iO={text:"",action:function(){},path:[]};function rO(e){return e===iO}function oO(e){return e.disabled||rO(e)}function aO(e){var t;return null!==(t=null===e||void 0===e?void 0:e.join(" "))&&void 0!==t?t:""}var sO=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=e.useContext(WI),f=h.toggle,p=h.data,g=e.useContext(eO),v=g.activeMenuPath,m=g.setActiveMenuPath,_=g.anchorRef,y=d.length>0,b=e.useCallback((function(){m(d.slice(0,d.length-1))}),[m,d]),w=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=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=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=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&&aO(d)===aO(v),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,g=e.useState(f),v=(0,ne.Z)(g,2),m=v[0],_=v[1],y=e.useCallback((function(){_(f)}),[f]);return e.useEffect((function(){n&&y()}),[n,y]),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":e.preventDefault(),_((function(e){return XI(n,e,1,i)}));break;case"ArrowUp":e.preventDefault(),_((function(e){return QI(n,e,1,i)}));break;case"PageDown":if(!r)return;e.preventDefault(),_((function(e){return XI(n,e,r,i)}));break;case"PageUp":if(!r)return;e.preventDefault(),_((function(e){return QI(n,e,r,i)}));break;case"Home":if(!a)return;e.preventDefault(),_((function(e){return QI(n,e,e,i)}));break;case"End":if(!u)return;e.preventDefault(),_((function(e){return QI(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:oO,anchorRef:_,onAnchorKeyDown:S,disabled:!x,initialValue:y?0:-1}),E=L.activeItemIndex,D=L.setActiveItemIndex,N=L.reset;return e.useEffect((function(){i||N()}),[i,N]),e.createElement(J_,Object.assign({open:i,anchorRef:r,onClose:o},l,{onMouseEnter:w,onMouseLeave:C}),u||e.createElement($I,Object.assign({className:zI("menu"),size:a},s),n.map((function(t,n){var i=x&&E===n,r=Object.assign(Object.assign({},t.extraProps),{onMouseEnter:function(){return D(n)}});return e.createElement(cO,Object.assign({key:n,className:zI("menu-item",{separator:rO(t)},t.className),selected:i,popupProps:l,closeMenu:o},t,{extraProps:r}))}))))};function uO(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 lO(t){var n=t.items,i=t.path,r=e.useContext(eO),o=r.activeMenuPath,a=r.setActiveMenuPath,s=Boolean(i)&&Boolean(null===n||void 0===n?void 0:n.length),u=e.useCallback((function(){i&&a(i.slice(0,i.length-1))}),[i,a]),l=e.useCallback((function(){i&&a(i)}),[i,a]);return{hasSubmenu:s,isSubmenuOpen:uO(i,o),openSubmenu:l,closeSubmenu:u}}var cO=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,Wb._T)(t,["text","action","items","popupProps","closeMenu","children","path"]),c=e.useContext(WI),d=c.toggle,h=c.data,f=e.useRef(null),p=lO({items:r,path:u}),g=p.hasSubmenu,v=p.isSubmenuOpen,m=p.closeSubmenu,_=p.openSubmenu,y=e.useCallback((function(){var e=function(){a?a():d(!1)};g?(m(),requestAnimationFrame(e)):e()}),[a,m,g,d]),b=e.useCallback((function(e){g||(null===i||void 0===i||i(e,h),y())}),[i,h,y,g]),w=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),g&&_()},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),g&&m()}})}),[l.extraProps,m,g,_]),C=g?e.createElement(yo.J,{data:VI,size:10,className:zI("sub-menu-arrow")}):l.iconEnd;return e.createElement(e.Fragment,null,e.createElement($I.Item,Object.assign({ref:f},l,{extraProps:w,onClick:b,iconEnd:C}),n||s),g&&r&&e.createElement(sO,{popupProps:Object.assign(Object.assign({},o),{className:zI("sub-menu",null===o||void 0===o?void 0:o.className),placement:nO}),items:r,path:u,open:v,anchorRef:f,onClose:y}))},dO=function(e){return"function"===typeof e};function hO(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=e.useState(t),r=(0,ne.Z)(i,2),o=r[0],a=r[1];return[o,e.useCallback((function(e){dO(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 fO(e,t){var n,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=[],o=!1,a=-1,s=(0,Na.Z)(e);try{for(s.s();!(n=s.n()).done;){var u=n.value;if(Array.isArray(u)){var l=fO(u,t,[].concat((0,Ct.Z)(i),[a]));if(0===l.length)continue;0!==r.length&&r.push(t);var c,d=(0,Na.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,Ct.Z)(l)),o=!0}else{if(u.hidden)continue;o&&r.push(t);var h=Object.assign({},u);h.path=[].concat((0,Ct.Z)(i),[++a]),u.items&&(h.items=fO(u.items,t,h.path)),r.push(h),o=!1}}}catch(f){s.e(f)}finally{s.f()}return r}var pO=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(yo.J,{data:BI}):a,u=t.open,l=t.onOpenToggle,c=t.hideOnScroll,d=void 0===c||c,h=t.data,f=t.disabled,p=t.switcher,g=t.renderSwitcher,v=t.switcherWrapperClassName,m=t.defaultSwitcherProps,_=t.defaultSwitcherClassName,y=t.onSwitcherClick,b=t.menuProps,w=t.popupProps,C=t.children,k=e.useRef(null),S=function(t,n,i){var r=hO(t,n,!1),o=(0,ne.Z)(r,2),a=o[0],s=o[1],u=e.useCallback((function(e){s((function(t){return"boolean"===typeof e?e:!t}))}),[s]),l=e.useCallback((function(){s(!1)}),[s]);return e.useEffect((function(){i&&a&&l()}),[l,i,a]),{isPopupShown:a,togglePopup:u,closePopup:l}}(u,l,f),x=S.isPopupShown,L=S.togglePopup,E=S.closePopup;!function(t,n,i){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])}(E,k,!x||!d);var D=e.useMemo((function(){return{toggle:L,data:h}}),[h,L]),N=e.useMemo((function(){return fO(i,iO)}),[i]),M=e.useCallback((function(e){f||(null===y||void 0===y||y(e),L())}),[f,y,L]),T=(0,kg.b)(M).onKeyDown,I=e.useMemo((function(){return{onClick:M,onKeyDown:T}}),[M,T]);return e.createElement(WI.Provider,{value:D},e.createElement("div",Object.assign({ref:k,className:zI("switcher-wrapper",v)},g?{}:I),(null===g||void 0===g?void 0:g(I))||p||e.createElement(_o.z,Object.assign({view:"flat",size:o},m,{className:zI("switcher-button",_),disabled:f}),s)),e.createElement(tO,{anchorRef:k,disabled:!x},e.createElement(sO,{items:N,open:x,size:o,menuProps:b,anchorRef:k,onClose:E,popupProps:w},C)))}),{Item:cO}),gO=n(89804);function vO(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var mO="--ydb-tree-view-level",_O=(0,gO.Z)("ydb-tree-view");function yO(t){var n=t.children,i=t.name,r=t.title,o=t.icon,a=t.collapsed,s=void 0===a||a,u=t.active,l=void 0!==u&&u,c=t.onClick,d=t.onArrowClick,h=t.hasArrow,f=void 0!==h&&h,p=t.actions,g=t.additionalNodeElements,v=t.level,m=(0,e.useCallback)((function(e){c&&(e.nativeEvent.composedPath().some((function(e){return e instanceof HTMLElement&&("BUTTON"===e.nodeName&&!e.hasAttribute("disabled")||e.hasAttribute("tabindex")&&e.tabIndex>-1)}))||c())}),[c]),_=d||c,y="tree-view_arrow",b="tree-view_children";return s&&(y+=" tree-view_arrow-collapsed",b+=" tree-view_children-collapsed"),e.createElement("div",{className:_O(),style:vO({},mO,v)},e.createElement("div",{className:"tree-view"},e.createElement("div",{className:"".concat("tree-view_item"," ").concat(_O("item",{active:l})),onClick:m},e.createElement("button",{type:"button",className:"".concat(y," ").concat(_O("arrow",{collapsed:s,hidden:!f})),disabled:!_,onClick:_}),e.createElement("div",{className:_O("content")},o&&e.createElement("div",{className:_O("icon")},o),e.createElement("div",{className:_O("text"),title:r},i),p&&p.length>0&&e.createElement("div",{className:_O("actions")},g,e.createElement(pO,{defaultSwitcherProps:{view:"flat-secondary",size:"s",pin:"brick-brick"},items:p})))),e.createElement("div",{className:"".concat(b," ").concat(_O("container",{collapsed:s}))},s?null:n)))}var bO=n(780),wO=n.n(bO),CO=(0,ft.Ge)("progress"),kO=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){return(0,X.Z)(this,i),n.apply(this,arguments)}return(0,J.Z)(i,[{key:"render",value:function(){var t=this.props,n=t.size,i=t.className,r=t.qa;return e.createElement("div",{className:CO({size:n},i),"data-qa":r},this.renderText(),this.renderContent())}},{key:"getTheme",value:function(){var e=this.props;if(i.isProgressWithStack(e))throw new Error("Unexpected behavior");var t=e.theme,n=e.colorStops,r=e.colorStopsValue,o=e.value;if(n){var a=n.find((function(e,t){var a="number"===typeof r?r:o;return i.isBetween(a,t>1?n[t-1].stop:0,t<n.length-1?e.stop:100)}));return a?a.theme:t}return t}},{key:"renderContent",value:function(){var e=this.props;return i.isProgressWithStack(e)?this.renderStack(e):this.renderItem(e)}},{key:"renderItem",value:function(t){var n=t.value,r=CO("item",{theme:this.getTheme(),loading:this.props.loading}),o=i.getOffset(n),a={transform:"translateX(".concat(o,"%)")};return i.isFiniteNumber(n)?e.createElement("div",{className:r,style:a},this.renderInnerText(o)):null}},{key:"renderStack",value:function(t){var n=t.stack,r=t.stackClassName,o=CO("stack",r),a=t.value||i.getValueFromStack(n),s=i.getOffset(a),u={transform:"translateX(".concat(s,"%)")},l={width:"".concat(-s,"%")};return e.createElement("div",{className:o,style:u},e.createElement("div",{className:CO("item"),style:l}),n.map((function(t,n){var r=t.value,o=t.color,s=t.title,u=t.theme,c=t.loading,d=void 0!==c&&c,h=t.className,f=t.content;l={width:"".concat(r,"%"),backgroundColor:o};var p={loading:d};return"undefined"===typeof o&&(p.theme=u||"default"),i.isFiniteNumber(a)?e.createElement("div",{key:n,className:CO("item",p,h),style:l,title:s},f):null})),this.renderInnerText(s))}},{key:"renderInnerText",value:function(t){var n=this.props.text;if(!n)return null;var i=CO("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=CO("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 wO()(e,(function(e){return e.value}))}},{key:"isProgressWithStack",value:function(e){return void 0!==e.stack}}]),i}(e.Component);kO.defaultProps={text:"",theme:"default",size:"m",loading:!1};var SO=(0,ht.Z)("ydb-versions-nodes-tree-title"),xO=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,Nl.jsxs)("div",{className:SO("overview"),children:[(0,Nl.jsxs)("div",{className:SO("overview-container"),children:[o?(0,Nl.jsx)("div",{className:SO("version-color"),style:{background:o}}):null,n?(0,Nl.jsxs)("span",{className:SO("overview-title"),children:[n,(0,Nl.jsx)(sy,{text:n,size:"s",className:SO("clipboard-button")})]}):null]}),(0,Nl.jsxs)("div",{className:SO("overview-info"),children:[(0,Nl.jsxs)("div",{children:[(0,Nl.jsx)("span",{className:SO("info-value"),children:t}),(0,Nl.jsx)("span",{className:SO("info-label",{margin:"left"}),children:"Nodes"})]}),a?(0,Nl.jsxs)("div",{className:SO("version-progress"),children:[(0,Nl.jsx)("span",{className:SO("info-label",{margin:"right"}),children:"Versions"}),(0,Nl.jsx)(kO,{size:"s",value:100,stack:a})]}):null]})]})},LO=[{name:"NodeId",header:"#",width:"80px",align:pi.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=!Ca(n)&&n.NodeId?nM(n.NodeId):void 0;return(0,Nl.jsx)(hy,{name:r,path:o,hasClipboardButton:!0,showStatus:!1})},width:"400px",align:pi.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:pi.LEFT},{name:"uptime",header:"Uptime",sortAccessor:function(e){var t=e.StartTime;return t&&-t},width:"120px",align:pi.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:pi.DESCENDING,render:function(e){var t=e.row;return t.MemoryUsed?os(t.MemoryUsed):"\u2014"},width:"120px",align:pi.RIGHT},{name:"MemoryLimit",header:"Memory limit",sortAccessor:function(e){var t=e.MemoryLimit;return Number(void 0===t?0:t)},defaultOrder:pi.DESCENDING,render:function(e){var t=e.row;return t.MemoryLimit?os(t.MemoryLimit):"\u2014"},width:"120px",align:pi.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:pi.DESCENDING,width:"120px",render:function(e){var t=e.row;return t.PoolStats?(0,Nl.jsx)(_y,{pools:t.PoolStats}):"\u2014"},align:pi.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:pi.DESCENDING,width:"200px",render:function(e){var t=e.row;return t.LoadAverage&&t.LoadAverage.length>0?(0,Nl.jsx)(jT,{value:t.LoadAverage[0],percents:!0,capacity:100,colorizeProgress:!0}):"\u2014"},align:pi.LEFT}],EO=function(e){var t=e.nodes;return(0,Nl.jsx)(pi,{theme:"yandex-cloud",data:t,columns:LO,settings:Bi})},DO=(0,ht.Z)("ydb-versions-grouped-node-tree"),NO=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,ne.Z)(h,2),p=f[0],g=f[1];(0,e.useEffect)((function(){g(s)}),[s]);var v=(0,Nl.jsx)(xO,{title:i,nodes:r,items:o,versionColor:u,versionsValues:l}),m=function(){g((function(e){return!e}))};return o?(0,Nl.jsx)("div",{className:DO({"first-level":0===d}),children:(0,Nl.jsx)(yO,{name:v,collapsed:!p,hasArrow:!0,onClick:m,onArrowClick:m,children:o.map((function(e,n){return(0,Nl.jsx)(t,{title:e.title,nodes:e.nodes,expanded:s,versionColor:e.versionColor,level:d+1},n)}))},i)}):(0,Nl.jsx)("div",{className:DO({"first-level":0===d}),children:(0,Nl.jsx)(yO,{name:v,collapsed:!p,hasArrow:!0,onClick:m,onArrowClick:m,children:(0,Nl.jsx)("div",{className:DO("dt-wrapper"),children:(0,Nl.jsx)(EO,{nodes:r||[]})})},i)})},MO=(0,ht.Z)("ydb-versions"),TO=function(t){var n=t.versionToColor,i=K(),r=ev((function(e){return e.clusterNodes})),o=r.nodes,a=void 0===o?[]:o,s=r.loading,u=r.wasLoaded;Jg((function(){return i(fu())}),[i],!0);var l=(0,e.useState)(RI.VERSION),c=(0,ne.Z)(l,2),d=c[0],h=c[1],f=(0,e.useState)(!1),p=(0,ne.Z)(f,2),g=p[0],v=p[1],m=function(e){h(e)};if(s&&!u)return(0,Nl.jsx)(jI,{});var _=function(e,t,n){if(e&&e.length){if(n===RI.VERSION){var i=(0,rn.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,rn.groupBy)(n,"Tenants"),o=Object.keys(r).map((function(e){return{title:e,nodes:r[e]}})).sort(HI);return o.length?{title:e,items:o,versionColor:null===t||void 0===t?void 0:t.get(Vg(e))}:null})).filter((function(e){return Boolean(e)}))}var r=e.filter((function(e){var t=e.Tenants;return Boolean(t)})),o=(0,rn.groupBy)(r,"Tenants");return Object.keys(o).map((function(e){var n=Qg(o[e],t),i=(0,rn.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(Vg(e))}}));return r.length?{title:e,items:r,versionsValues:n}:null})).filter((function(e){return Boolean(e)})).sort(HI)}}(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,rn.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(Vg(e))}}))}}(a,n),b=function(e,t){if(e&&e.length){var n=e.filter((function(e){return!e.Roles})),i=(0,rn.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(Vg(e))}}))}}(a,n),w=null!==y&&void 0!==y&&y.length?(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)("h3",{children:"Storage nodes"}),y.map((function(e){var t=e.title,n=e.nodes,i=e.items,r=e.versionColor;return(0,Nl.jsx)(NO,{title:t,nodes:n,items:i,versionColor:r},"storage-nodes-".concat(t))}))]}):null,C=null!==_&&void 0!==_&&_.length?(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)("h3",{children:"Database nodes"}),(0,Nl.jsxs)("div",{className:MO("controls"),children:[(0,Nl.jsxs)("div",{className:MO("group"),children:[(0,Nl.jsx)("span",{className:MO("label"),children:"Group by:"}),(0,Nl.jsxs)(Dy,{value:d,onUpdate:m,children:[(0,Nl.jsx)(Dy.Option,{value:RI.TENANT,children:RI.TENANT}),(0,Nl.jsx)(Dy.Option,{value:RI.VERSION,children:RI.VERSION})]})]}),(0,Nl.jsx)(ZI,{className:MO("checkbox"),onChange:function(){return v((function(e){return!e}))},checked:g,children:"All expanded"})]}),_.map((function(e){var t=e.title,n=e.nodes,i=e.items,r=e.versionColor,o=e.versionsValues;return(0,Nl.jsx)(NO,{title:t,nodes:n,items:i,expanded:g,versionColor:r,versionsValues:o},"tenant-nodes-".concat(t))}))]}):null,k=null!==b&&void 0!==b&&b.length?(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.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,Nl.jsx)(NO,{title:t,nodes:n,items:i,versionColor:r,versionsValues:o},"other-nodes-".concat(t))}))]}):null;return(0,Nl.jsxs)("div",{className:MO("versions"),children:[w,C,k]})},IO=(0,ht.Z)("tag"),OO=function(e){var t=e.text,n=e.type;return(0,Nl.jsx)("div",{className:IO({type:n}),children:t})},AO=(0,ht.Z)("tags"),RO=function(e){var t=e.tags,n=e.tagsType,i=e.className,r=void 0===i?"":i;return(0,Nl.jsx)("div",{className:AO(null,r),children:t&&t.map((function(e,t){return(0,Nl.jsx)(OO,{text:e,type:n},t)}))})},PO=(0,ht.Z)("tablet-icon"),ZO=function(e){var t=e.text,n=e.className;return(0,Nl.jsx)("div",{className:PO(null,n),children:(0,Nl.jsx)("div",{className:PO("type"),children:t||"T"})})},FO=(0,ht.Z)("tablet"),jO=function(e){var t,n=e.tablet,i=void 0===n?{}:n,r=e.tenantName,o=i.TabletId,a=i.NodeId,s=i.Type,u=null===(t=i.Overall)||void 0===t?void 0:t.toLowerCase(),l=o&&_g(bg.tablet,{id:o},{nodeId:a,tenantName:r,type:s});return(0,Nl.jsx)(py,{className:FO("wrapper"),content:(0,Nl.jsx)(jl,{data:i,className:FO("popup-content")}),children:(0,Nl.jsx)(vv,{to:l,children:(0,Nl.jsx)(ZO,{className:FO({status:u}),text:wi(i.Type)})})})},HO=(0,ht.Z)("ydb-external-link-with-icon"),BO=function(e){var t=e.title,n=e.url;return(0,Nl.jsxs)(yv,{href:n,target:"_blank",className:HO(),children:[t,"\xa0",(0,Nl.jsx)(Ob,{name:"external",viewBox:"0 0 16 16",width:16,height:16})]})},zO=(0,ht.Z)("ydb-cluster-versions-bar"),WO=function(e){var t=e.versionsValues,n=void 0===t?[]:t;return(0,Nl.jsxs)("div",{className:zO(),children:[(0,Nl.jsx)(kO,{value:100,stack:n,size:"s"}),(0,Nl.jsx)("div",{className:zO("versions"),children:n.map((function(e,t){return(0,Nl.jsx)("div",{className:zO("version-title"),style:{color:e.color},title:e.version,children:"".concat(e.version).concat(t===n.length-1?"":",")},e.version)}))})]})},VO=(0,ht.Z)("ydb-cluster-info-skeleton"),YO=function(){return(0,Nl.jsxs)("div",{className:VO("label"),children:[(0,Nl.jsx)(gb,{className:VO("label__text")}),(0,Nl.jsx)("div",{className:VO("label__dots")})]})},UO=function(e){var t=e.rows,n=void 0===t?8:t,i=e.className;return(0,Nl.jsxs)("div",{className:VO(null,i),children:[(0,Ct.Z)(new Array(n)).map((function(e,t){return(0,Nl.jsxs)("div",{className:VO("row"),children:[(0,Nl.jsx)(YO,{}),(0,Nl.jsx)(gb,{className:VO("value")})]},"skeleton-row-".concat(t))})),(0,Nl.jsxs)("div",{className:VO("row"),children:[(0,Nl.jsx)(YO,{}),(0,Nl.jsx)(gb,{className:VO("versions")})]},"versions")]})},KO=JSON.parse('{"disk-type":"Disk Type","erasure":"Erasure","allocated":"Allocated","available":"Available","usage":"Usage","dc":"DC","tablets":"Tablets","databases":"Databases","nodes":"Nodes","load":"Load","storage-size":"Storage size","storage-groups":"Storage groups, {{diskType}}","links":"Links","versions":"Versions"}'),qO=JSON.parse('{"disk-type":"\u0422\u0438\u043f \u0434\u0438\u0441\u043a\u0430","erasure":"\u0420\u0435\u0436\u0438\u043c","allocated":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e","available":"\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e","usage":"\u041f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435","dc":"\u0414\u0426","tablets":"\u0422\u0430\u0431\u043b\u0435\u0442\u043a\u0438","databases":"\u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445","nodes":"\u0423\u0437\u043b\u044b","load":"\u041d\u0430\u0433\u0440\u0443\u0437\u043a\u0430","storage-size":"\u0420\u0430\u0437\u043c\u0435\u0440 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430","storage-groups":"\u0413\u0440\u0443\u043f\u043f\u044b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, {{diskType}}","links":"\u0421\u0441\u044b\u043b\u043a\u0438","versions":"\u0412\u0435\u0440\u0441\u0438\u0438"}'),GO="ydb-cluster";Va.registerKeyset(Fa.En,GO,KO),Va.registerKeyset(Fa.Ru,GO,qO);var $O=Va.keyset(GO),QO=function(e,t){return e.Type===di.TxAllocator?1:t.Type===di.TxAllocator?-1:0},XO=(0,ht.Z)("cluster-info"),JO=function(e){var t=e.stats,n=t.diskType,i=t.erasure,r=t.allocatedSize,o=t.availableSize,a=Xa(Math.max(r,o),2),s=es({value:r,size:a}),u=es({value:o,size:a}),l=Math.round(r/(r+o)*100),c=[{label:$O("disk-type"),value:n},{label:$O("erasure"),value:i},{label:$O("allocated"),value:s},{label:$O("available"),value:u},{label:$O("usage"),value:l+"%"}];return(0,Nl.jsx)(Tl,{dots:!0,info:c,className:XO("groups-stats-popup-content"),size:"s"})},eA=function(e){var t=e.stats;return(0,Nl.jsx)("div",{className:XO("storage-groups-stats"),children:Object.values(t).map((function(e){return(0,Nl.jsx)(py,{placement:["right"],content:(0,Nl.jsx)(JO,{stats:e}),children:(0,Nl.jsx)(jT,{className:XO("groups-stats-bar"),value:e.createdGroups,capacity:e.totalGroups})},e.erasure)}))})},tA=function(e,t,n,i,r){var o=[];return e.DataCenters&&o.push({label:$O("dc"),value:(0,Nl.jsx)(RO,{tags:e.DataCenters})}),e.SystemTablets&&o.push({label:$O("tablets"),value:(0,Nl.jsx)("div",{className:XO("system-tablets"),children:e.SystemTablets.sort(QO).map((function(e,t){return(0,Nl.jsx)(jO,{tablet:e},t)}))})}),e.Tenants&&o.push({label:$O("databases"),value:e.Tenants}),o.push({label:$O("nodes"),value:(0,Nl.jsx)(jT,{value:null===e||void 0===e?void 0:e.NodesAlive,capacity:null===e||void 0===e?void 0:e.NodesTotal})},{label:$O("load"),value:(0,Nl.jsx)(jT,{value:null===e||void 0===e?void 0:e.LoadAverage,capacity:null===e||void 0===e?void 0:e.NumberOfCpus})},{label:$O("storage-size"),value:(0,Nl.jsx)(jT,{value:null===e||void 0===e?void 0:e.StorageUsed,capacity:null===e||void 0===e?void 0:e.StorageTotal,formatValues:ds})}),Object.keys(n).length&&o.push.apply(o,(0,Ct.Z)(function(e){return Object.keys(e).map((function(t){return{label:$O("storage-groups",{diskType:t}),value:(0,Nl.jsx)(eA,{stats:e[t]})}}))}(n))),o.push.apply(o,(0,Ct.Z)(i).concat([{label:$O("links"),value:(0,Nl.jsx)("div",{className:XO("links"),children:r.map((function(e){var t=e.title,n=e.url;return(0,Nl.jsx)(BO,{title:t,url:n},t)}))})},{label:$O("versions"),value:(0,Nl.jsx)(WO,{versionsValues:t})}])),o},nA=function(e){var t=e.cluster,n=void 0===t?{}:t,i=e.versionsValues,r=void 0===i?[]:i,o=e.groupsStats,a=void 0===o?{}:o,s=e.loading,u=e.error,l=e.additionalClusterProps,c=void 0===l?{}:l,d=ev((function(e){return e.singleClusterMode})),h=tv(Ui),f=(0,ne.Z)(h,2),p=f[0],g=f[1],v=ng+"/internal";d&&!hg&&(v="/internal");var m=c.info,_=void 0===m?[]:m,y=c.links,b=void 0===y?[]:y,w=tA(n,r,a,_,[{title:xi,url:v}].concat((0,Ct.Z)(b)));return(0,Nl.jsxs)("div",{className:XO(),children:[(0,Nl.jsxs)("div",{className:XO("header"),onClick:function(){g(!p)},children:[function(){var e;return s?(0,Nl.jsx)(gb,{className:XO("title-skeleton")}):(0,Nl.jsx)(hy,{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:Li,className:XO("title")})}(),(0,Nl.jsx)(Ob,{name:"chevron-down",width:24,height:24,className:XO("header__expand-button",{rotate:p})})]}),(0,Nl.jsx)("div",{className:XO("info",{hidden:p}),children:s?(0,Nl.jsx)(UO,{}):(u&&XO("error"),(0,Nl.jsx)(Tl,{dots:!0,info:w}))})]})},iA={tenants:"tenants",nodes:"nodes",storage:"storage",versions:"versions"},rA=[{id:iA.tenants,title:"Databases"},{id:iA.nodes,title:"Nodes"},{id:iA.storage,title:"Storage"},{id:iA.versions,title:"Versions"}],oA=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:iA.tenants,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _g(bg.cluster,{activeTab:e},t)},aA=(0,ht.Z)("cluster");var sA=function(t){var n=t.additionalClusterProps,i=t.additionalTenantsProps,r=t.additionalNodesProps,o=t.additionalVersionsProps,a=(0,e.useRef)(null),s=K(),u=dt(bg.cluster),l=((null===u||void 0===u?void 0:u.params)||{}).activeTab,c=void 0===l?iA.tenants:l,d=ct(),h=Zt().parse(d.search,{ignoreQueryPrefix:!0}),f=h.clusterName,p=ev((function(e){return e.cluster})),g=p.data,v=void 0===g?{}:g,m=p.loading,_=p.wasLoaded,y=p.error,b=p.groupsStats,w=ev((function(e){return e.clusterNodes})),C=w.nodes,k=w.loading,S=w.wasLoaded,x=v.Name,L=m&&!_||k&&!S;(0,e.useEffect)((function(){s(fu())}),[s]),Jg((function(){return s(lu(f?String(f):void 0))}),[s,f],!0),(0,e.useEffect)((function(){s(Vp("cluster",{}))}),[s,x]);var E=(0,e.useMemo)((function(){return null!==o&&void 0!==o&&o.getVersionToColorMap?null===o||void 0===o?void 0:o.getVersionToColorMap():$g(null===v||void 0===v?void 0:v.Versions)}),[o,v]),D=(0,e.useMemo)((function(){return Qg(C,E)}),[C,E]);return(0,Nl.jsxs)("div",{className:aA(),ref:a,children:[(0,Nl.jsx)(nA,{cluster:v,groupsStats:b,versionsValues:D,loading:L,error:y,additionalClusterProps:n}),(0,Nl.jsx)("div",{className:aA("tabs"),children:(0,Nl.jsx)(Wg,{size:"l",allowNotSelected:!0,activeTab:c,items:rA,wrapTo:function(e,t){var n=e.id,i=oA(n,h);return(0,Nl.jsx)(vv,{to:i,children:t},n)}})}),(0,Nl.jsx)("div",{children:function(){switch(c){case iA.tenants:return(0,Nl.jsx)(Ib,{additionalTenantsProps:i});case iA.nodes:return(0,Nl.jsx)(NI,{parentContainer:a.current,additionalNodesProps:r});case iA.storage:return(0,Nl.jsx)(AT,{parentContainer:a.current,additionalNodesProps:r});case iA.versions:return(0,Nl.jsx)(TO,{versionToColor:E});default:return null}}()})]})},uA="undefined"!==typeof window?window:null,lA=null===uA,cA=lA?void 0:uA.document,dA="addEventListener",hA="removeEventListener",fA="getBoundingClientRect",pA="_a",gA="_b",vA="_c",mA="horizontal",_A=function(){return!1},yA=lA?"calc":["","-webkit-","-moz-","-o-"].filter((function(e){var t=cA.createElement("div");return t.style.cssText="width:"+e+"calc(9px)",!!t.style.length})).shift()+"calc",bA=function(e){return"string"===typeof e||e instanceof String},wA=function(e){if(bA(e)){var t=cA.querySelector(e);if(!t)throw new Error("Selector "+e+" did not match a DOM element");return t}return e},CA=function(e,t,n){var i=e[t];return void 0!==i?i:n},kA=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},SA=function(e,t){var n=cA.createElement("div");return n.className="gutter gutter-"+t,n},xA=function(e,t,n){var i={};return bA(t)?i[e]=t:i[e]=yA+"("+t+"% - "+n+"px)",i},LA=function(e,t){var n;return(n={})[e]=t+"px",n},EA=function(e,t){if(void 0===t&&(t={}),lA)return{};var n,i,r,o,a,s,u=e;Array.from&&(u=Array.from(u));var l=wA(u[0]).parentNode,c=getComputedStyle?getComputedStyle(l):null,d=c?c.flexDirection:null,h=CA(t,"sizes")||u.map((function(){return 100/u.length})),f=CA(t,"minSize",100),p=Array.isArray(f)?f:u.map((function(){return f})),g=CA(t,"maxSize",1/0),v=Array.isArray(g)?g:u.map((function(){return g})),m=CA(t,"expandToMin",!1),_=CA(t,"gutterSize",10),y=CA(t,"gutterAlign","center"),b=CA(t,"snapOffset",30),w=Array.isArray(b)?b:u.map((function(){return b})),C=CA(t,"dragInterval",1),k=CA(t,"direction",mA),S=CA(t,"cursor",k===mA?"col-resize":"row-resize"),x=CA(t,"gutter",SA),L=CA(t,"elementStyle",xA),E=CA(t,"gutterStyle",LA);function D(e,t,i,r){var o=L(n,t,i,r);Object.keys(o).forEach((function(t){e.style[t]=o[t]}))}function N(){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,D(t.element,t.size,this[gA],t.i),D(n.element,n.size,this[vA],n.i)}function I(e){var n,i=s[this.a],r=s[this.b];this.dragging&&(n=M(e)-this.start+(this[gA]-this.dragOffset),C>1&&(n=Math.round(n/C)*C),n<=i.minSize+i.snapOffset+this[gA]?n=i.minSize+this[gA]:n>=this.size-(r.minSize+r.snapOffset+this[vA])&&(n=this.size-(r.minSize+this[vA])),n>=i.maxSize-i.snapOffset+this[gA]?n=i.maxSize+this[gA]:n<=this.size-(r.maxSize-r.snapOffset+this[vA])&&(n=this.size-(r.maxSize+this[vA])),T.call(this,n),CA(t,"onDrag",_A)(N()))}function O(){var e=s[this.a].element,t=s[this.b].element,i=e[fA](),a=t[fA]();this.size=i[n]+a[n]+this[gA]+this[vA],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===mA?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=kA(_,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&&CA(t,"onDragEnd",_A)(N()),e.dragging=!1,uA[hA]("mouseup",e.stop),uA[hA]("touchend",e.stop),uA[hA]("touchcancel",e.stop),uA[hA]("mousemove",e.move),uA[hA]("touchmove",e.move),e.stop=null,e.move=null,n[hA]("selectstart",_A),n[hA]("dragstart",_A),i[hA]("selectstart",_A),i[hA]("dragstart",_A),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="",cA.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||CA(t,"onDragStart",_A)(N()),e.preventDefault(),n.dragging=!0,n.move=I.bind(n),n.stop=R.bind(n),uA[dA]("mouseup",n.stop),uA[dA]("touchend",n.stop),uA[dA]("touchcancel",n.stop),uA[dA]("mousemove",n.move),uA[dA]("touchmove",n.move),i[dA]("selectstart",_A),i[dA]("dragstart",_A),r[dA]("selectstart",_A),r[dA]("dragstart",_A),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,cA.body.style.cursor=S,O.call(n),n.dragOffset=M(e)-n.end}}k===mA?(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];O.call(n);var i=t?n.size-e.minSize-n[vA]:e.minSize+n[gA];T.call(n,i)}return s=u.map((function(e,t){var i,r={element:wA(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})[gA]=kA(_,t-1===0,!1,y),i[vA]=kA(_,!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[pA]=P.bind(i),a[dA]("mousedown",i[pA]),a[dA]("touchstart",i[pA]),l.insertBefore(a,r.element),i.gutter=a}return D(r.element,r.size,kA(_,0===t,t===u.length-1,y),t),t>0&&Z.push(i),r})),s.forEach((function(e){var t=e.element[fA]()[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,D(r.element,r.size,i[gA],r.i),D(o.element,o.size,i[vA],o.i)}}))},getSizes:N,collapse:function(e){F(s[e])},destroy:function(e,t){Z.forEach((function(i){if(!0!==t?i.parent.removeChild(i.gutter):(i.gutter[hA]("mousedown",i[pA]),i.gutter[hA]("touchstart",i[pA])),!0!==e){var r=L(n,i.a.size,i[gA]);Object.keys(r).forEach((function(e){s[i.a].element.style[e]="",s[i.b].element.style[e]=""}))}}))},parent:l,pairs:Z}};function DA(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 NA=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=DA(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=EA(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=DA(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=EA(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=DA(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);NA.propTypes={sizes:Ae().arrayOf(Ae().number),minSize:Ae().oneOfType([Ae().number,Ae().arrayOf(Ae().number)]),maxSize:Ae().oneOfType([Ae().number,Ae().arrayOf(Ae().number)]),expandToMin:Ae().bool,gutterSize:Ae().number,gutterAlign:Ae().string,snapOffset:Ae().oneOfType([Ae().number,Ae().arrayOf(Ae().number)]),dragInterval:Ae().number,direction:Ae().string,cursor:Ae().string,gutter:Ae().func,elementStyle:Ae().func,gutterStyle:Ae().func,onDrag:Ae().func,onDragStart:Ae().func,onDragEnd:Ae().func,collapsed:Ae().number,children:Ae().arrayOf(Ae().element)},NA.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 MA=NA,TA=(0,ht.Z)("kv-split"),IA=[0,100],OA=[50,50];var AA=function(t){var n=(0,e.useState)(),i=(0,ne.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||IA;a(n),o(n)}}),[t.triggerCollapse]),(0,e.useEffect)((function(){var e=t.triggerExpand,n=t.defaultSizes||OA;e&&(a(n),o(n))}),[t.triggerExpand]),(0,Nl.jsx)(e.Fragment,{children:(0,Nl.jsx)(MA,{direction:t.direction||"horizontal",sizes:r||function(){var e,n=t.defaultSizePaneKey,i=t.defaultSizes,r=void 0===i?OA: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:TA(null,t.direction||"horizontal"),gutterSize:8,onDragStart:function(){var e=t.onSplitStartDragAdditional;e&&e(),o(void 0)},expandToMin:!0,children:t.children})})},RA=AA,PA=n(50348);(0,PA.withNaming)({e:"__",m:"_",v:"_"});function ZA(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","aria-hidden":!0},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 FA=(0,PA.withNaming)({n:"gc-",e:"__",m:"_",v:"_"})("help-popover"),jA=16;function HA(t){var n;return e.createElement(Xy,Object.assign({},t,{className:FA(null,t.className)}),e.createElement("button",Object.assign({ref:t.buttonRef,type:"button"},t.buttonProps,{className:FA("button",null===(n=t.buttonProps)||void 0===n?void 0:n.className)}),e.createElement(yo.J,{data:ZA,size:jA})))}var BA=JSON.parse('{"common.created":"Created","common.type":"Type"}'),zA=JSON.parse('{"common.created":"\u0421\u043e\u0437\u0434\u0430\u043d\u043e","common.type":"\u0422\u0438\u043f"}'),WA="ydb-components-info-viewer";Va.registerKeyset(Fa.En,WA,BA),Va.registerKeyset(Fa.Ru,WA,zA);var VA,YA=Va.keyset(WA),UA=Al({values:{PathType:function(e){return null===e||void 0===e?void 0:e.substring("EPathType".length)},CreateStep:_s},labels:{PathType:YA("common.type"),CreateStep:YA("common.created")}}),KA=["value","withSpeedLabel"],qA=function(e){var t=e.value,n=e.withSpeedLabel,i=nn(e,KA),r=es(Rt({value:t,withSpeedLabel:n},i)),o=es({value:t,withSpeedLabel:n,size:"b"});return(0,Nl.jsx)("span",{title:o,children:r})},GA=function(e,t){return e?(0,Nl.jsx)(qA,Rt({value:e,significantDigits:2},t)):null},$A=Al({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:GA},labels:{KeyColumnNames:"Columns",DataColumnNames:"Includes"}}),QA=(VA={},(0,wt.Z)(VA,Lc.METERING_MODE_REQUEST_UNITS,"request-units"),(0,wt.Z)(VA,Lc.METERING_MODE_RESERVED_CAPACITY,"reserved-capacity"),VA),XA=Al({values:{Partitions:function(e){return fs((null===e||void 0===e?void 0:e.length)||0)},PQTabletConfig:function(e){var t=Math.round(e.PartitionConfig.LifetimeSeconds/_i*100)/100;return"".concat(fs(t)," hours")}},labels:{Partitions:"Partitions count",PQTabletConfig:"Retention"}}),JA=Al({values:{Codecs:function(e){return e&&Object.values(e.Codecs||{}).join(", ")},MeteringMode:function(e){return e&&QA[e]}},labels:{MeteringMode:"Metering mode"}}),eR=Al({values:{StorageLimitBytes:os,WriteSpeedInBytesPerSecond:as},labels:{StorageLimitBytes:"Retention storage",WriteSpeedInBytesPerSecond:"Partitions write speed"}}),tR=Al({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)}}}),nR=Al({values:{CPU:vs,Memory:GA,Storage:GA,Network:as,ReadThroughput:as,WriteThroughput:as},defaultValueFormatter:fs}),iR=Al({values:{FollowerCount:fs},labels:{FollowerCountPerDataCenter:"FollowerCountPerDC"},defaultValueFormatter:function(e){return e&&String(e)}}),rR=Al({values:{FollowerCount:fs,CrossDataCenterFollowerCount:fs}}),oR=Al({values:{DataSize:GA,IndexSize:GA,LastAccessTime:_s,LastUpdateTime:_s},defaultValueFormatter:fs}),aR=new Set(["Mode","Format"]),sR=function(e){var t,n,i,r,o,a=e.data;if(!a)return(0,Nl.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(UA("PathType",null===(n=a.PathDescription)||void 0===n||null===(i=n.Self)||void 0===i?void 0:i.PathType)),l.push(UA("CreateStep",null===(r=a.PathDescription)||void 0===r||null===(o=r.Self)||void 0===o?void 0:o.CreateStep)),u)aR.has(s)&&l.push(tR(s,null===u||void 0===u?void 0:u[s]));return(0,Nl.jsx)(Nl.Fragment,{children:l.length?(0,Nl.jsx)(Tl,{info:l}):(0,Nl.jsx)(Nl.Fragment,{children:"Empty"})})},uR=function(e){var t,n,i,r,o,a=e.data;if(!a)return(0,Nl.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(UA("PathType",null===(n=a.PathDescription)||void 0===n||null===(i=n.Self)||void 0===i?void 0:i.PathType)),u.push(UA("CreateStep",null===(r=a.PathDescription)||void 0===r||null===(o=r.Self)||void 0===o?void 0:o.CreateStep)),u.push(XA("Partitions",(null===s||void 0===s?void 0:s.Partitions)||[])),u.push(XA("PQTabletConfig",(null===s||void 0===s?void 0:s.PQTabletConfig)||{PartitionConfig:{LifetimeSeconds:0}})),(0,Nl.jsx)(Nl.Fragment,{children:u.length?(0,Nl.jsx)(Tl,{info:u}):(0,Nl.jsx)(Nl.Fragment,{children:"Empty"})})},lR=JSON.parse('{"acl.owner":"Owner","acl.empty":"No Acl data","summary.navigation":"Navigation","summary.showPreview":"Show preview","summary.copySchemaPath":"Copy schema path","actions.copied":"The path is copied to the clipboard","actions.notCopied":"Couldn\u2019t copy the path","actions.externalTableSelectUnavailable":"Select query for external tables available only with \'YQL - QueryService\' query mode. You need to turn in additional query modes in settings to enable it","actions.copyPath":"Copy path","actions.openPreview":"Open preview","actions.createTable":"Create table...","actions.createExternalTable":"Create external table...","actions.createTopic":"Create topic...","actions.dropTable":"Drop table...","actions.dropTopic":"Drop topic...","actions.alterTable":"Alter table...","actions.alterTopic":"Alter topic...","actions.selectQuery":"Select query...","actions.upsertQuery":"Upsert query..."}'),cR=JSON.parse('{"acl.owner":"\u0412\u043b\u0430\u0434\u0435\u043b\u0435\u0446","acl.empty":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0431 Acl","summary.navigation":"\u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f","summary.showPreview":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u0435\u0432\u044c\u044e","summary.copySchemaPath":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0443\u0442\u044c","actions.copied":"\u041f\u0443\u0442\u044c \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d","actions.notCopied":"\u041d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0443\u0442\u044c","actions.externalTableSelectUnavailable":"Select \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \'YQL - QueryService\'. \u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\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 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445","actions.copyPath":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0443\u0442\u044c","actions.openPreview":"\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u0440\u0435\u0432\u044c\u044e","actions.createTable":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443...","actions.createExternalTable":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u044e\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443...","actions.createTopic":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u043e\u043f\u0438\u043a...","actions.dropTable":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443...","actions.dropTopic":"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u043e\u043f\u0438\u043a...","actions.alterTable":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443...","actions.alterTopic":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u043e\u043f\u0438\u043a...","actions.selectQuery":"Select \u0437\u0430\u043f\u0440\u043e\u0441...","actions.upsertQuery":"Upsert \u0437\u0430\u043f\u0440\u043e\u0441..."}'),dR="ydb-tenant";Va.registerKeyset(Fa.En,dR,lR),Va.registerKeyset(Fa.Ru,dR,cR);var hR=Va.keyset(dR),fR=(0,ht.Z)("ydb-acl"),pR=Rt(Rt({},Bi),{},{dynamicRender:!1,stickyTop:36}),gR=function(e){return e&&e.endsWith("@staff")&&!e.startsWith("svc_")?e.split("@")[0]:e},vR=[{name:"AccessType",header:"Access Type",sortable:!1,render:function(e){return e.row.AccessType}},{name:"AccessRights",header:"Access Rights",render:function(e){var t;return null===(t=e.row.AccessRights)||void 0===t?void 0:t.map((function(e,t){return(0,Nl.jsx)("div",{children:e},t)}))},sortable:!1},{name:"Subject",sortable:!1,render:function(e){var t=e.row;return gR(t.Subject)},width:140},{name:"InheritanceType",header:"Inheritance Type",render:function(e){var t;return null===(t=e.row.InheritanceType)||void 0===t?void 0:t.map((function(e,t){return(0,Nl.jsx)("div",{children:e},t)}))},sortable:!1}],mR=function(){var t=K(),n=ev((function(e){return e.schema})).currentSchemaPath,i=ev((function(e){return e.schemaAcl})),r=i.loading,o=i.error,a=i.acl,s=i.owner,u=i.wasLoaded;(0,e.useEffect)((function(){return n&&t(function(e){var t=e.path;return oa({request:window.api.getSchemaAcl({path:t}),actions:Rf})}({path:n})),function(){t({type:Pf})}}),[n,t]);return r&&!u?(0,Nl.jsx)(jI,{}):o?(0,Nl.jsx)(Sb,{error:o,className:fR("message-container")}):r||a||s?(0,Nl.jsx)("div",{className:fR(),children:(0,Nl.jsxs)("div",{className:fR("result"),children:[s?(0,Nl.jsxs)("div",{className:fR("owner-container"),children:[(0,Nl.jsx)("span",{className:fR("owner-label"),children:"".concat(hR("acl.owner"),": ")}),gR(s)]}):null,a&&a.length?(0,Nl.jsx)(pi,{theme:"yandex-cloud",columns:vR,data:a,settings:pR}):null]})}):(0,Nl.jsx)("div",{className:fR("message-container"),children:hR("acl.empty")})},_R=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)&&ed[n]||t&&td[t]},yR=JSON.parse('{"external-objects.source-type":"Source Type","external-objects.data-source":"Data Source","external-objects.location":"Location","external-objects.auth-method":"Auth Method","external-objects.auth-method.none":"None","external-objects.auth-method.service-account":"Service Account"}'),bR=JSON.parse('{"external-objects.source-type":"\u0422\u0438\u043f \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430","external-objects.data-source":"\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a","external-objects.location":"\u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435","external-objects.auth-method":"\u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f","external-objects.auth-method.none":"\u041d\u0435\u0442","external-objects.auth-method.service-account":"\u0421\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442"}'),wR="ydb-tenant-objects-info";Va.registerKeyset(Fa.En,wR,yR),Va.registerKeyset(Fa.Ru,wR,bR);var CR,kR=Va.keyset(wR),SR=(0,ht.Z)("ydb-external-data-source-info"),xR=function(e){var t,n,i,r;return[{label:kR("external-objects.source-type"),value:null===(t=e.PathDescription)||void 0===t||null===(n=t.ExternalDataSourceDescription)||void 0===n?void 0:n.SourceType},UA("CreateStep",null===(i=e.PathDescription)||void 0===i||null===(r=i.Self)||void 0===r?void 0:r.CreateStep)]},LR=function(e){var t,n=(null===(t=e.PathDescription)||void 0===t?void 0:t.ExternalDataSourceDescription)||{},i=n.Location,r=n.Auth;return[].concat((0,Ct.Z)(xR(e)),[{label:kR("external-objects.location"),value:(0,Nl.jsx)(hy,{name:i,showStatus:!1,hasClipboardButton:!0,clipboardButtonAlwaysVisible:!0,className:SR("location")})},{label:kR("external-objects.auth-method"),value:null!==r&&void 0!==r&&r.ServiceAccount?kR("external-objects.auth-method.service-account"):kR("external-objects.auth-method.none")}])},ER=function(e){var t=e.data,n=e.prepareData,i=_R(null===t||void 0===t?void 0:t.PathDescription),r=ev((function(e){return e.schema})).error;return r?(0,Nl.jsx)(Sb,{error:r}):t?(0,Nl.jsx)(Tl,{title:i,info:n(t)}):(0,Nl.jsxs)("div",{className:"error",children:["No ",i," data"]})},DR=function(e){var t=e.data;return(0,Nl.jsx)(ER,{data:t,prepareData:LR})},NR=function(e){var t=e.data;return(0,Nl.jsx)(ER,{data:t,prepareData:xR})},MR=(0,ht.Z)("ydb-external-table-info"),TR=function(e,t){var n,i,r=((null===(n=e.PathDescription)||void 0===n?void 0:n.Self)||{}).CreateStep,o=(null===(i=e.PathDescription)||void 0===i?void 0:i.ExternalTableDescription)||{},a=o.SourceType,s=o.DataSourcePath,u=null===s||void 0===s?void 0:s.split("/").pop();return[{label:kR("external-objects.source-type"),value:a},UA("CreateStep",r),{label:kR("external-objects.data-source"),value:s&&(0,Nl.jsx)("span",{title:s,children:(0,Nl.jsx)(BO,{title:u||"",url:t})})}]},IR=function(e,t){var n,i,r=null===(n=e.PathDescription)||void 0===n||null===(i=n.ExternalTableDescription)||void 0===i?void 0:i.Location;return[].concat((0,Ct.Z)(TR(e,t)),[{label:kR("external-objects.location"),value:(0,Nl.jsx)(hy,{name:r,showStatus:!1,hasClipboardButton:!0,clipboardButtonAlwaysVisible:!0,className:MR("location")})}])},OR=function(e){var t,n,i=e.data,r=e.prepareData,o=ct(),a=vg(o),s=yg(Rt(Rt({},a),{},{schema:null===i||void 0===i||null===(t=i.PathDescription)||void 0===t||null===(n=t.ExternalTableDescription)||void 0===n?void 0:n.DataSourcePath})),u=_R(null===i||void 0===i?void 0:i.PathDescription),l=ev((function(e){return e.schema})).error;return l?(0,Nl.jsx)(Sb,{error:l}):i?(0,Nl.jsx)(Tl,{title:u,info:r(i,s)}):(0,Nl.jsxs)("div",{className:"error",children:["No ",u," data"]})},AR=function(e){var t=e.data;return(0,Nl.jsx)(OR,{data:t,prepareData:IR})},RR=function(e){var t=e.data;return(0,Nl.jsx)(OR,{data:t,prepareData:TR})},PR=n(1720),ZR=n.n(PR);function FR(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 jR(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 jR(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 o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function jR(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 HR(e){return"status"in e}function BR(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=e[t];if(r&&(n(r,i,t,e),!r.collapsed)){var o,a=FR(r.children);try{for(a.s();!(o=a.n()).done;){var s=o.value;BR(e,"".concat(t,"/").concat(s),n,i+1)}}catch(u){a.e(u)}finally{a.f()}}}function zR(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 WR(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 WR(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 o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function WR(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 VR(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 YR(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?VR(Object(n),!0).forEach((function(t){UR(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):VR(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function UR(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function KR(e){return YR(YR({},{collapsed:!0,loading:!1,loaded:!1,error:!1,children:[]}),{},{expandable:"database"===e.type||"directory"===e.type},e)}function qR(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case CR.ToggleCollapsed:return YR(YR({},e),{},UR({},t.payload.path,YR(YR({},e[t.payload.path]),{},{collapsed:!e[t.payload.path].collapsed})));case CR.StartLoading:return YR(YR({},e),{},UR({},t.payload.path,YR(YR({},e[t.payload.path]),{},{loading:!0,loaded:!1,error:!1,children:[]})));case CR.FinishLoading:var n=YR(YR({},e),{},UR({},t.payload.path,YR(YR({},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 i,r=zR(t.payload.data);try{for(r.s();!(i=r.n()).done;){var o,a,s=i.value,u="".concat(t.payload.path,"/").concat(s.name),l=t.payload.activePath,c=void 0===l?"":l,d=null!==(o=null===(a=e[u])||void 0===a?void 0:a.collapsed)&&void 0!==o?o:!c.startsWith("".concat(u,"/"));n[u]=KR(YR(YR({},s),{},{collapsed:d,path:u}))}}catch(h){r.e(h)}finally{r.f()}}return n;case CR.ResetNode:return YR(YR({},e),{},UR({},t.payload.path,YR(YR({},e[t.payload.path]),{collapsed:!0,loading:!1,loaded:!1,error:!1,children:[]})));default:return e}}function GR(e,t){var n=[];return BR(e,t,(function(e,t){n.push(YR(YR({},e),{},{level:t}));var i=function(e,t){if(!e.collapsed)return e.loading?{path:e.path,status:"loading",level:t+1}:e.error?{path:e.path,status:"error",level:t+1}:e.loaded&&0===e.children.length?{path:e.path,status:"empty",level:t+1}:void 0}(e,t);i&&n.push(i)})),n}function $R(){return $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},$R.apply(this,arguments)}function QR(t){return e.createElement("svg",$R({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",fill:"currentColor"},t),e.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"}))}function XR(){return XR=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},XR.apply(this,arguments)}function JR(t){return e.createElement("svg",XR({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},t),e.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"}))}function eP(){return eP=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},eP.apply(this,arguments)}function tP(t){return e.createElement("svg",eP({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},t),e.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"}))}function nP(){return nP=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},nP.apply(this,arguments)}function iP(t){return e.createElement("svg",nP({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},t),e.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"}))}function rP(){return rP=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},rP.apply(this,arguments)}function oP(t){return e.createElement("svg",rP({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},t),e.createElement("rect",{x:"2",y:"2.20001",width:"9",height:"2.5",rx:"0.5"}),e.createElement("rect",{x:"5",y:"6.70001",width:"9",height:"2.5",rx:"0.5"}),e.createElement("rect",{x:"2",y:"11.2",width:"9",height:"2.5",rx:"0.5"}))}function aP(){return aP=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},aP.apply(this,arguments)}function sP(t){return e.createElement("svg",aP({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},t),e.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"}))}function uP(){return uP=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},uP.apply(this,arguments)}function lP(t){return e.createElement("svg",uP({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},t),e.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"}))}function cP(){return cP=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},cP.apply(this,arguments)}function dP(t){return e.createElement("svg",cP({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},t),e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0 6.75C0 6.35156 0.351562 6 0.75 6L3.75 6V3L0.75 3C0.351562 3 0 2.67188 0 2.25C0 1.85156 0.351562 1.5 0.75 1.5L3.75 1.5V0.750001C3.75 0.351563 4.10156 0 4.5 0C4.92188 0 5.25 0.351563 5.25 0.750001H6C7.82812 0.750001 9.32812 2.03906 9.67969 3.75H12V5.25H9.67969C9.60376 5.62455 9.47428 5.97724 9.2995 6.30005H7.19969C6.09701 6.30005 5.26846 7.20143 5.25 8.25C5.25 8.67188 4.92188 9 4.5 9C4.10156 9 3.75 8.67188 3.75 8.25V7.5L0.75 7.5C0.351562 7.5 0 7.17188 0 6.75ZM16 8.28571C16 7.58259 15.4336 7 14.75 7H7.25C6.54688 7 6 7.58259 6 8.28571V14.7143C6 15.4375 6.54688 16 7.25 16H14.75C15.4336 16 16 15.4375 16 14.7143V8.28571ZM10.375 9.57143V11.5H7.25V9.57143H10.375ZM7.25 14.7143V12.7857H10.375V14.7143H7.25ZM14.75 14.7143H11.625V12.7857H14.75V14.7143ZM14.75 9.57143V11.5H11.625V9.57143H14.75Z"}))}function hP(){return hP=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},hP.apply(this,arguments)}function fP(t){return e.createElement("svg",hP({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},t),e.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0 6.75C0 6.35156 0.338542 6 0.722222 6L3.61111 6V3L0.722222 3C0.338542 3 0 2.67188 0 2.25C0 1.85156 0.338542 1.5 0.722222 1.5L3.61111 1.5V0.750001C3.61111 0.351563 3.94965 0 4.33333 0C4.73958 0 5.05556 0.351563 5.05556 0.750001H5.77778C7.53819 0.750001 8.98264 2.03906 9.32118 3.75H12V5.25H9.32118C9.29095 5.4049 9.25189 5.55606 9.20457 5.70291C9.10459 5.73587 9.00778 5.77066 8.9144 5.80723C8.505 5.96755 8.12646 6.17556 7.83841 6.44187C7.5498 6.70871 7.3 7.08678 7.3 7.56255V7.90902C6.83862 8.12843 6.32337 8.25 5.77778 8.25H5.05556C5.05556 8.67188 4.73958 9 4.33333 9C3.94965 9 3.61111 8.67188 3.61111 8.25V7.5L0.722222 7.5C0.338542 7.5 0 7.17188 0 6.75ZM16 8.5V7.5625C16 6.70312 14.1964 6 12 6C9.78571 6 8 6.70312 8 7.5625V8.5C8 9.37891 9.78571 10.0625 12 10.0625C14.1964 10.0625 16 9.37891 16 8.5ZM16 9.65234C15.7321 9.86719 15.375 10.0625 15.0179 10.1992C14.2143 10.5117 13.1429 10.6875 12 10.6875C10.8393 10.6875 9.76786 10.5117 8.96429 10.1992C8.60714 10.0625 8.25 9.86719 8 9.65234V11.625C8 12.5039 9.78571 13.1875 12 13.1875C14.1964 13.1875 16 12.5039 16 11.625V9.65234ZM12 13.8125C10.8393 13.8125 9.76786 13.6367 8.96429 13.3242C8.60714 13.1875 8.25 12.9922 8 12.7773V14.4375C8 15.3164 9.78571 16 12 16C14.1964 16 16 15.3164 16 14.4375V12.7773C15.7321 12.9922 15.375 13.1875 15.0179 13.3242C14.2143 13.6367 13.1429 13.8125 12 13.8125Z"}))}function pP(t,n){switch(t){case"database":return e.createElement(QR,{height:14});case"directory":return n?e.createElement(JR,{height:16}):e.createElement(tP,{height:16});case"index":return e.createElement(sP,{height:16});case"table":case"index_table":return e.createElement(iP,{height:16});case"column_table":return e.createElement(lP,{height:16});case"stream":case"topic":return e.createElement(oP,{height:16});case"external_table":return e.createElement(dP,{height:16});case"external_data_source":return e.createElement(fP,{height:16});default:return null}}function gP(t){var n=t.path,i=t.fetchPath,r=t.activePath,o=t.state,a=t.level,s=t.dispatch,u=t.children,l=t.onActivate,c=t.getActions,d=t.renderAdditionalNodeElements,h=t.cache,f=o[n];e.useEffect((function(){f.collapsed?h||s({type:CR.ResetNode,payload:{path:n}}):f.loaded||f.loading||(s({type:CR.StartLoading,payload:{path:n}}),i(n).then((function(e){s({type:CR.FinishLoading,payload:{path:n,activePath:r,data:e}})})).catch((function(e){s({type:CR.FinishLoading,payload:{path:n,error:e}})})))}),[f.collapsed]);var p=e.useCallback((function(){l&&l(n)}),[n,l]),g=e.useCallback((function(){s({type:CR.ToggleCollapsed,payload:{path:n}})}),[]),v=e.useMemo((function(){return null===d||void 0===d?void 0:d(f.path,f.type)}),[d,f]),m=e.useMemo((function(){return null===c||void 0===c?void 0:c(f.path,f.type)}),[c,f]);return e.createElement(yO,{name:f.name,icon:pP(f.type,f.collapsed),collapsed:f.collapsed,active:f.path===r,actions:m,additionalNodeElements:v,hasArrow:f.expandable,onClick:p,onArrowClick:g,level:a},u)}!function(e){e.ToggleCollapsed="toggle-collapsed",e.StartLoading="start-loading",e.FinishLoading="finish-loading",e.ResetNode="reset-node"}(CR||(CR={}));var vP=(0,ft.Ge)("spin"),mP=e.forwardRef((function(t,n){var i=t.size,r=void 0===i?"m":i,o=t.style,a=t.className,s=t.qa;return e.createElement("div",{ref:n,style:o,className:vP({size:r},a),"data-qa":s},e.createElement("div",{className:vP("inner")}))})),_P=(0,gO.Z)("ydb-navigation-tree-view-loader");function yP(t){var n=t.level;return e.createElement(yO,{name:e.createElement("div",{className:_P()},e.createElement(mP,{size:"xs"})),level:n})}var bP=new Za;bP.setLang(Ha.lang||Pa.En),function(e){ja.push(e)}((function(e){e.lang&&bP.setLang(e.lang)}));var wP=JSON.parse('{"label_error":"Error","label_empty":"No data"}'),CP=JSON.parse('{"label_error":"\u041e\u0448\u0438\u0431\u043a\u0430","label_empty":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445"}'),kP="ydb-navigation-tree";bP.registerKeyset(Pa.En,kP,wP),bP.registerKeyset(Pa.Ru,kP,CP);var SP=bP.keyset(kP),xP=(0,gO.Z)("ydb-navigation-tree-view-error");function LP(t){var n=t.level;return e.createElement(yO,{name:e.createElement("span",{className:xP()},SP("label_error")),level:n})}var EP=(0,gO.Z)("ydb-navigation-tree-view-empty");function DP(t){var n=t.level;return e.createElement(yO,{name:e.createElement("span",{className:EP()},SP("label_empty")),level:n})}function NP(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;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)||function(e,t){if(!e)return;if("string"===typeof e)return MP(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 MP(e,t)}(e,t)||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.")}()}function MP(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 TP=function(t){var n="".concat(t.path,"|").concat(t.status);return"loading"===t.status?e.createElement(yP,{key:n,level:t.level}):"error"===t.status?e.createElement(LP,{key:n,level:t.level}):e.createElement(DP,{key:n,level:t.level})};function IP(t){var n=t.rootState,i=t.fetchPath,r=t.getActions,o=t.renderAdditionalNodeElements,a=t.activePath,s=t.onActivePathUpdate,u=t.cache,l=void 0===u||u,c=t.virtualize,d=void 0!==c&&c,h=e.useReducer(qR,function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},n.path,KR(n))),f=NP(h,2),p=f[0],g=f[1],v=e.useMemo((function(){return GR(p,n.path)}),[p]),m=function(t){return e.createElement(gP,{key:t.path,state:p,path:t.path,activePath:a,fetchPath:i,dispatch:g,onActivate:s,getActions:r,renderAdditionalNodeElements:o,cache:l,level:t.level})};return d?e.createElement(ZR(),{type:"uniform",length:v.length,useStaticSize:!0,itemRenderer:function(e){var t=v[e];return HR(t)?TP(t):m(t)}}):e.createElement(e.Fragment,null,v.map((function(e){return HR(e)?TP(e):m(e)})))}var OP=n(80358),AP=n.n(OP),RP=function(e){return"-- docs: https://ydb.tech/en/docs/yql/reference/syntax/create_table\nCREATE TABLE `".concat(e,"/ydb_row_table` (\n category_id Uint64 NOT NULL,\n id Uint64,\n expire_at Datetime,\n updated_on Datetime,\n name Text,\n `binary-payload` Bytes,\n attributes JsonDocument,\n -- uncomment to add a secondary index\n -- INDEX idx_row_table_id GLOBAL SYNC ON ( id ) COVER ( name, attributes ), -- Secondary indexes docs https://ydb.tech/en/docs/yql/reference/syntax/create_table#secondary_index\n PRIMARY KEY (category_id, id)\n) \nWITH (\n AUTO_PARTITIONING_BY_SIZE = ENABLED,\n AUTO_PARTITIONING_PARTITION_SIZE_MB = 2048,\n AUTO_PARTITIONING_BY_LOAD = ENABLED,\n AUTO_PARTITIONING_MIN_PARTITIONS_COUNT = 4,\n AUTO_PARTITIONING_MAX_PARTITIONS_COUNT = 1024,\n -- uncomment to create a table with predefined partitions\n -- UNIFORM_PARTITIONS = 4, -- The number of partitions for uniform initial table partitioning.\n -- The primary key's first column must have type Uint64 or Uint32.\n -- A created table is immediately divided into the specified number of partitions\n -- uncomment to launch read only replicas in every AZ\n -- READ_REPLICAS_SETTINGS = 'PER_AZ:1', -- Enable read replicas for stale read, launch one replica in every availability zone\n -- uncomment to enable ttl\n -- TTL = Interval(\"PT1H\") ON expire_at, -- Enable background deletion of expired rows https://ydb.tech/en/docs/concepts/ttl\n KEY_BLOOM_FILTER = ENABLED -- With a Bloom filter, you can more efficiently determine\n -- if some keys are missing in a table when making multiple single queries by the primary key.\n)")},PP=function(e){return"ALTER TABLE `".concat(e,"`\n ADD COLUMN is_deleted Bool;")},ZP=function(e){return"SELECT *\n FROM `".concat(e,"`\n LIMIT 10;")},FP=function(e){return"UPSERT INTO `".concat(e,"`\n ( `id`, `name` )\nVALUES ( );")},jP=function(e){return"DROP EXTERNAL TABLE `".concat(e,"`;")},HP=function(e){var t=e.split("/").slice(0,-1).join("/");return"CREATE EXTERNAL TABLE `".concat(t,'/my_external_table` (\n column1 Int,\n column2 Int\n) WITH (\n DATA_SOURCE="').concat(e,'",\n LOCATION="",\n FORMAT="json_as_string",\n `file_pattern`=""\n);')},BP=function(e){return"-- docs: https://ydb.tech/en/docs/yql/reference/syntax/create_topic\nCREATE TOPIC `".concat(e,"/my_topic` (\n CONSUMER consumer1,\n CONSUMER consumer2 WITH (read_from = Datetime('1970-01-01T00:00:00Z')) -- Sets up the message write time starting from which the consumer will receive data.\n -- Value type: Datetime OR Timestamp OR integer (unix-timestamp in the numeric format). \n -- Default value: now\n) WITH (\n min_active_partitions = 1, -- Minimum number of topic partitions.\n partition_count_limit = 0, -- Maximum number of active partitions in the topic. 0 is interpreted as unlimited.\n retention_period = Interval('PT18H'), -- Data retention period in the topic. Value type: Interval.\n retention_storage_mb = 0, -- Limit on the maximum disk space occupied by the topic data. \n -- When this value is exceeded, the older data is cleared, like under a retention policy. \n -- 0 is interpreted as unlimited.\n partition_write_speed_bytes_per_second = 1048576, -- Maximum allowed write speed per partition.\n partition_write_burst_bytes = 0 -- Write quota allocated for write bursts. \n -- When set to zero, the actual write_burst value is equalled to \n -- the quota value (this allows write bursts of up to one second).\n);")},zP=function(e){return"-- docs: https://ydb.tech/en/docs/yql/reference/syntax/alter_topic\nALTER TOPIC `".concat(e,"`\n ADD CONSUMER new_consumer WITH (read_from = Datetime('1970-01-01T00:00:00Z')), -- Sets up the message write time starting from which the consumer will receive data.\n -- Value type: Datetime OR Timestamp OR integer (unix-timestamp in the numeric format).\n -- Default value: now\n ALTER CONSUMER consumer1 SET (read_from = Datetime('1970-01-01T00:00:00Z')),\n DROP CONSUMER consumer2,\n SET (\n min_active_partitions = 1, -- Minimum number of topic partitions.\n partition_count_limit = 0, -- Maximum number of active partitions in the topic. 0 is interpreted as unlimited.\n retention_period = Interval('PT18H'), -- Data retention period in the topic. Value type: Interval.\n retention_storage_mb = 0, -- Limit on the maximum disk space occupied by the topic data. \n -- When this value is exceeded, the older data is cleared, like under a retention policy. \n -- 0 is interpreted as unlimited.\n partition_write_speed_bytes_per_second = 1048576, -- Maximum allowed write speed per partition.\n partition_write_burst_bytes = 0 -- Write quota allocated for write bursts. \n -- When set to zero, the actual write_burst value is equalled to\n -- the quota value (this allows write bursts of up to one second).\n );")},WP=function(e){return"DROP TOPIC `".concat(e,"`;")},VP=function(e,t){return function(n,i){var r=function(e,t,n){var i=n.setActivePath,r=n.setQueryMode,o=function(n,o){return function(){o&&r(o),t(rf({input:n(e)})),t(xu(An.query)),t(Lu(Rn.newQuery)),i(e)}};return{createTable:o(RP,"script"),alterTable:o(PP,"script"),selectQuery:o(ZP),upsertQuery:o(FP),createExternalTable:o(HP,"script"),dropExternalTable:o(jP,"script"),selectQueryFromExternalTable:o(ZP,"query"),createTopic:o(BP,"script"),alterTopic:o(zP,"script"),dropTopic:o(WP,"script"),copyPath:function(){try{AP()(e),qo({name:"Copied",title:hR("actions.copied"),type:"success"})}catch(t){qo({name:"Not copied",title:hR("actions.notCopied"),type:"error"})}}}}(n,e,t),o={text:hR("actions.copyPath"),action:r.copyPath},a=[[o],[{text:hR("actions.createTable"),action:r.createTable},{text:hR("actions.createTopic"),action:r.createTopic}]],s=[[o],[{text:hR("actions.alterTable"),action:r.alterTable},{text:hR("actions.selectQuery"),action:r.selectQuery},{text:hR("actions.upsertQuery"),action:r.upsertQuery}]],u=[o];return{database:a,directory:a,table:s,column_table:s,index_table:u,topic:[[o],[{text:hR("actions.alterTopic"),action:r.alterTopic},{text:hR("actions.dropTopic"),action:r.dropTopic}]],stream:u,index:u,external_table:[[o],[{text:hR("actions.selectQuery"),action:r.selectQueryFromExternalTable}],[{text:hR("actions.dropTable"),action:r.dropExternalTable}]],external_data_source:[[o],[{text:hR("actions.createExternalTable"),action:r.createExternalTable}]]}[i]}},YP=function(e,t){return function(n,i){var r=function(e,t,n){var i=n.setActivePath;return{openPreview:function(){t(Md(!0)),t(xu(An.query)),t(Lu(Rn.newQuery)),i(e)}}}(n,e,t),o=(0,Nl.jsx)(_o.z,{view:"flat-secondary",onClick:r.openPreview,title:hR("actions.openPreview"),size:"s",children:(0,Nl.jsx)(Ob,{name:"tablePreview"})});return{database:void 0,directory:void 0,table:o,column_table:o,index_table:void 0,topic:void 0,stream:void 0,index:void 0,external_table:o,external_data_source:void 0}[i]}};function UP(t){var n=t.rootPath,i=t.rootName,r=t.rootType,o=t.currentPath,a=K(),s=nv(),u=(0,ne.Z)(s,2),l=(u[0],u[1]),c=function(e){a({type:Cd,data:e})};return(0,e.useEffect)((function(){null!==o&&void 0!==o&&o.startsWith(n)||c(n)}),[]),(0,Nl.jsx)(IP,{rootState:{path:n,name:i,type:Jc(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,wt.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:Jc(r,a),expandable:!vd(r,a)}}));return a(function(e){return{type:wd,data:e}}(o)),s}))},getActions:VP(a,{setActivePath:c,setQueryMode:l}),renderAdditionalNodeElements:YP(a,{setActivePath:c}),activePath:o,onActivePathUpdate:c,cache:!1,virtualize:!0})}var KP,qP=(0,ht.Z)("schema-viewer"),GP="Id",$P="Name",QP="Key",XP="Type",JP="NotNull",eZ=function(t){var n=t.keyColumnIds,i=void 0===n?[]:n,r=t.columns,o=void 0===r?[]:r,a=t.type,s=(0,e.useMemo)((function(){return i.reduce((function(e,t,n){return e[t]=n-i.length,e}),{})}),[i]),u=[{name:GP,width:40},{name:QP,width:40,defaultOrder:pi.ASCENDING,sortAccessor:function(e){return e.Id&&s[e.Id]||1},render:function(e){var t=e.row;return t.Id&&i.includes(t.Id)?(0,Nl.jsx)("div",{className:qP("key-icon"),children:(0,Nl.jsx)(Ob,{name:"key",viewBox:"0 0 12 7",width:12,height:7})}):null}},{name:$P,width:100},{name:XP,width:100},{name:JP,width:100,defaultOrder:pi.DESCENDING,render:function(e){if(e.row.NotNull)return"\u2713"}}];return yd(a)&&(u=u.filter((function(e){return e.name!==QP}))),(0,Nl.jsx)("div",{className:qP(),children:(0,Nl.jsx)(pi,{theme:"yandex-cloud",data:o,columns:u,settings:Bi,initialSortOrder:{columnId:QP,order:pi.ASCENDING}})})};!function(e){e.triggerCollapse="triggerCollapse",e.triggerExpand="triggerExpand",e.clear="clear"}(KP||(KP={}));var tZ=function(e){localStorage.setItem(e,"true")},nZ=function(e){localStorage.removeItem(e)};function iZ(e){return function(t,n){switch(n){case KP.triggerCollapse:return tZ(e),Rt(Rt({},t),{},{triggerCollapse:!0,triggerExpand:!1,collapsed:!0});case KP.triggerExpand:return nZ(e),Rt(Rt({},t),{},{triggerCollapse:!1,triggerExpand:!0,collapsed:!1});case KP.clear:return nZ(e),{triggerCollapse:!1,triggerExpand:!1,collapsed:!1};default:return t}}}var rZ=(0,ht.Z)("kv-pane-visibility-button");function oZ(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,Nl.jsxs)(e.Fragment,{children:[(0,Nl.jsx)(_o.z,{view:"flat-secondary",onClick:n,className:rZ({hidden:r},s),title:"Collapse",children:(0,Nl.jsx)(Ob,{name:"collapse",viewBox:"0 0 384 512",width:14,height:14,className:rZ((0,wt.Z)({},a,!0))})}),(0,Nl.jsx)(_o.z,{view:"flat-secondary",onClick:i,className:rZ({hidden:!r},s),title:"Expand",children:(0,Nl.jsx)(Ob,{name:"collapse",viewBox:"0 0 384 512",width:14,height:14,className:rZ((0,wt.Z)({},a,!0),"rotate")})})]})}var aZ=(0,ht.Z)("object-summary"),sZ=function(){return{triggerExpand:!1,triggerCollapse:!1,collapsed:Boolean(localStorage.getItem(ji))}};function uZ(t){var n,i,r,o,a,s=t.type,u=t.subType,l=t.onCollapseSummary,c=t.onExpandSummary,d=t.isCollapsed,h=K(),f=(0,e.useReducer)(iZ(ji),void 0,sZ),p=(0,ne.Z)(f,2),g=p[0],v=p[1],m=ev((function(e){return e.schema})),_=m.data,y=m.currentSchemaPath,b=m.currentSchema,w=void 0===b?{}:b,C=m.loading,k=ev((function(e){return e.tenant})).summaryTab,S=void 0===k?Zn.overview:k,x=ct(),L=Zt().parse(x.search,{ignoreQueryPrefix:!0}),E=L.name,D=E?null===(n=_[E.toString()])||void 0===n||null===(i=n.PathDescription)||void 0===i?void 0:i.Self:void 0,N=y?_[y]:void 0,M=null===N||void 0===N||null===(r=N.PathDescription)||void 0===r?void 0:r.Self;if(od(s)&&ld(s)){var T,I=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})).filter((function(e){return void 0!==e}));return{Columns:i,KeyColumnNames:r,Name:t,KeyColumnIds:o}}return{Name:t}}(null===N||void 0===N||null===(T=N.PathDescription)||void 0===T?void 0:T.ColumnTableDescription);o=I.KeyColumnIds,a=I.Columns}else if(yd(s)){var O,A;a=null===N||void 0===N||null===(O=N.PathDescription)||void 0===O||null===(A=O.ExternalTableDescription)||void 0===A?void 0:A.Columns}else{var R,P,Z,F;o=null===N||void 0===N||null===(R=N.PathDescription)||void 0===R||null===(P=R.Table)||void 0===P?void 0:P.KeyColumnIds,a=null===N||void 0===N||null===(Z=N.PathDescription)||void 0===Z||null===(F=Z.Table)||void 0===F?void 0:F.Columns}(0,e.useEffect)((function(){var e=od(s);!s||e||Db.find((function(e){return e.id===S}))||h(function(e){return{type:yu,data:e}}(Zn.overview))}),[h,s,S]);var j=function(){var e=od(s)?[].concat((0,Ct.Z)(Db),(0,Ct.Z)(Nb)):Db;return(0,Nl.jsx)("div",{className:aZ("tabs"),children:(0,Nl.jsx)(Wg,{size:"l",items:e,activeTab:S,wrapTo:function(e,t){var n=e.id,i=_g(bg.tenant,void 0,Rt(Rt({},L),{},(0,wt.Z)({name:E},Eb.summaryTab,n)));return(0,Nl.jsx)(cv,{to:i,className:aZ("tab"),children:t},n)},allowNotSelected:!0})})},H=function(){return(0,Nl.jsx)("div",{children:(0,Nl.jsx)(jI,{})})},B=function(){switch(S){case Zn.acl:return(0,Nl.jsx)(mR,{});case Zn.schema:return C?H():(0,Nl.jsx)("div",{className:aZ("schema"),children:(0,Nl.jsx)(eZ,{keyColumnIds:o,columns:a,type:s})});default:return function(){var e,t,n=(e={},(0,wt.Z)(e,vc.EPathTypeInvalid,void 0),(0,wt.Z)(e,vc.EPathTypeDir,void 0),(0,wt.Z)(e,vc.EPathTypeTable,void 0),(0,wt.Z)(e,vc.EPathTypeSubDomain,void 0),(0,wt.Z)(e,vc.EPathTypeTableIndex,void 0),(0,wt.Z)(e,vc.EPathTypeExtSubDomain,void 0),(0,wt.Z)(e,vc.EPathTypeColumnStore,void 0),(0,wt.Z)(e,vc.EPathTypeColumnTable,void 0),(0,wt.Z)(e,vc.EPathTypeCdcStream,(function(){return(0,Nl.jsx)(sR,{data:N})})),(0,wt.Z)(e,vc.EPathTypePersQueueGroup,(function(){return(0,Nl.jsx)(uR,{data:N})})),(0,wt.Z)(e,vc.EPathTypeExternalTable,(function(){return(0,Nl.jsx)(RR,{data:N})})),(0,wt.Z)(e,vc.EPathTypeExternalDataSource,(function(){return(0,Nl.jsx)(NR,{data:N})})),e),i=(null===M||void 0===M?void 0:M.PathType)&&(null===(t=n[M.PathType])||void 0===t?void 0:t.call(n));if(!i){var r=Number(null===M||void 0===M?void 0:M.CreateStep),o="";r&&(o=_s(r)),i=(0,Nl.jsx)(Tl,{info:[{label:"Create time",value:o}]})}return(0,Nl.jsx)("div",{className:aZ("overview-wrapper"),children:i})}()}},z=function(){v(KP.triggerCollapse)},W=function(){v(KP.triggerExpand)},V=function(){v(KP.clear)},Y=function(){h(Md(!0)),h(xu(An.query)),h(Lu(Rn.newQuery))},U=function(){var t=od(s)&&!sd(u);return(0,Nl.jsxs)(e.Fragment,{children:[t&&(0,Nl.jsx)(_o.z,{view:"flat-secondary",onClick:Y,title:hR("summary.showPreview"),children:(0,Nl.jsx)(Ob,{name:"tablePreview",viewBox:"0 0 16 16",height:16,width:16})}),y&&(0,Nl.jsx)(sy,{text:y,view:"flat-secondary",title:hR("summary.copySchemaPath")}),(0,Nl.jsx)(oZ,{onCollapse:z,onExpand:W,isCollapsed:g.collapsed,initialDirection:"bottom"})]})},q=function(){var e,t=w.Status,n=w.Reason;return!s&&t&&n&&(e="".concat(t,": ").concat(n)),s?(0,Nl.jsx)("div",{className:aZ("entity-type"),children:s.replace("EPathType","")}):(0,Nl.jsx)("div",{className:aZ("entity-type",{error:!0}),children:(0,Nl.jsx)(HA,{content:e,offset:{left:0}})})};return E?(0,Nl.jsxs)("div",{className:aZ(),children:[(0,Nl.jsx)("div",{className:aZ({hidden:d}),children:(0,Nl.jsxs)(RA,{direction:"vertical",defaultSizePaneKey:Pi,onSplitStartDragAdditional:V,triggerCollapse:g.triggerCollapse,triggerExpand:g.triggerExpand,minSize:[200,52],collapsedSizes:[100,0],children:[y?(0,Nl.jsxs)("div",{className:aZ("tree-wrapper"),children:[(0,Nl.jsx)("div",{className:aZ("tree-header"),children:hR("summary.navigation")}),(0,Nl.jsx)("div",{className:aZ("tree"),children:D&&(0,Nl.jsx)(UP,{rootPath:E,rootName:D.Name||String(E),rootType:D.PathType,currentPath:y})})]}):H(),(0,Nl.jsxs)("div",{className:aZ("info"),children:[(0,Nl.jsxs)("div",{className:aZ("sticky-top"),children:[(0,Nl.jsxs)("div",{className:aZ("info-header"),children:[(0,Nl.jsxs)("div",{className:aZ("info-title"),children:[q(),(0,Nl.jsx)("div",{className:aZ("path-name"),children:y})]}),(0,Nl.jsx)("div",{className:aZ("info-controls"),children:U()})]}),j()]}),B()]})]})}),(0,Nl.jsx)(oZ,{onCollapse:l,onExpand:c,isCollapsed:d,initialDirection:"left",className:aZ("action-button")})]}):null}var lZ=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","method-description.script":"For YQL-scripts combining DDL and DML.\\nAPI call: schema.scripting","method-description.scan":"Read-only queries, potentially reading a lot of data.\\nAPI call: table.ExecuteScan","method-description.data":"DML queries for changing and fetching data in serialization mode.\\nAPI call: table.executeDataQuery","method-description.query":"Any query. An experimental API call supposed to replace all existing methods.\\nAPI Call: query.ExecuteScript","method-description.pg":"Queries in postgresql syntax.\\nAPI call: query.ExecuteScript","query-duration.description":"Duration of server-side query execution"}'),cZ=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","method-description.script":"\u0414\u043b\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432, \u0441\u043e\u0432\u043c\u0435\u0449\u0430\u044e\u0449\u0438\u0445 DDL \u0438 DML-\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438.\\nAPI call: schema.scripting","method-description.scan":"\u0422\u043e\u043b\u044c\u043a\u043e \u0447\u0438\u0442\u0430\u044e\u0449\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0447\u0438\u0442\u0430\u044e\u0449\u0438\u0435 \u043c\u043d\u043e\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u0445.\\nAPI call: table.ExecuteScan","method-description.data":"DML-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438 \u0432\u044b\u0431\u043e\u0440\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 Serializable.\\nAPI call: table.executeDataQuery","method-description.query":"\u041b\u044e\u0431\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b. \u042d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0437\u0430\u043c\u0435\u043d\u0438\u0442 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435.\\nAPI call: query.ExecuteScript","method-description.pg":"\u0417\u0430\u043f\u0440\u043e\u0441\u044b \u0432 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435 postgresql.\\nAPI call: query.ExecuteScript","query-duration.description":"\u0412\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430"}'),dZ="ydb-query-editor";Va.registerKeyset(Fa.En,dZ,lZ),Va.registerKeyset(Fa.Ru,dZ,cZ);var hZ,fZ=Va.keyset(dZ),pZ=[{id:Rn.newQuery,title:fZ("tabs.newQuery")},{id:Rn.history,title:fZ("tabs.history")},{id:Rn.saved,title:fZ("tabs.saved")}],gZ=function(e){var t=e.className,n=e.activeTab,i=ct(),r=vg(i);return(0,Nl.jsx)("div",{className:t,children:(0,Nl.jsx)(Wg,{size:"l",allowNotSelected:!0,activeTab:n,items:pZ,wrapTo:function(e,t){var n=e.id,i=Mb(Rt(Rt({},r),{},(0,wt.Z)({},Eb.queryTab,n)));return(0,Nl.jsx)(vv,{to:i,children:t},n)}})})},vZ=0;function mZ(t){var n=t.enabled;e.useLayoutEffect((function(){if(n)return 1===++vZ&&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)}}();hZ=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===--vZ&&(hZ?document.body.style.cssText=hZ:document.body.removeAttribute("style"))}}),[n])}var _Z=(0,ft.Ge)("modal");function yZ(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.focusTrap,f=void 0===h||h,p=t.autoFocus,g=void 0===p||p,v=t.restoreFocusRef,m=t.onEscapeKeyDown,_=t.onEnterKeyDown,y=t.onOutsideClick,b=t.onClose,w=t.onTransitionEnter,C=t.onTransitionEntered,k=t.onTransitionExit,S=t.onTransitionExited,x=t.children,L=t.style,E=t.className,D=t.contentClassName,N=t["aria-labelledby"],M=t["aria-label"],T=t.container,I=t.qa,O=e.useRef(null),A=e.useRef(null),R=e.useState(!1),P=(0,ne.Z)(R,2),Z=P[0],F=P[1];mZ({enabled:!s&&(i||Z)});var j=E_({enabled:i||Z,restoreFocusRef:v,focusTrapped:!0});return q_({open:i,disableEscapeKeyDown:u,disableOutsideClick:l,onEscapeKeyDown:m,onEnterKeyDown:_,onOutsideClick:y,onClose:b,contentRefs:[A],type:"modal"}),e.createElement(jo,{container:T},e.createElement(uo,{nodeRef:O,in:i,addEndListener:function(e){var t;return null===(t=O.current)||void 0===t?void 0:t.addEventListener("animationend",e)},classNames:lo(_Z),mountOnEnter:!o,unmountOnExit:!o,appear:!0,onEnter:function(){F(!0),null===w||void 0===w||w()},onExit:function(){F(!0),null===k||void 0===k||k()},onEntered:function(){F(!1),null===C||void 0===C||C()},onExited:function(){F(!1),null===S||void 0===S||S()}},e.createElement("div",{ref:O,style:L,className:_Z({open:i},E),"data-qa":I},e.createElement("div",{className:_Z("table")},e.createElement("div",{className:_Z("cell")},e.createElement(Y_,{enabled:!c&&f&&i&&!Z,autoFocus:!d&&g},e.createElement("div",Object.assign({ref:A,tabIndex:-1,role:"dialog","aria-modal":i,"aria-label":M,"aria-labelledby":N,className:_Z("content",D)},j),x)))))))}var bZ=No({en:JSON.parse('{"close":"Close dialog"}'),ru:JSON.parse('{"close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e"}')},"Dialog"),wZ=(0,ft.Ge)("dialog-btn-close");function CZ(t){var n=t.onClose;return e.createElement("div",{className:wZ()},e.createElement(_o.z,{view:"flat",size:"l",className:wZ("btn"),onClick:function(e){return n(e,{isOutsideClick:!1})},extraProps:{"aria-label":bZ("close")}},e.createElement(yo.J,{data:go.Z,size:20})))}var kZ=(0,ft.Ge)("dialog-body");var SZ=(0,ft.Ge)("dialog-divider");var xZ=(0,ft.Ge)("dialog-footer");var LZ=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var t;return(0,X.Z)(this,i),(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,J.Z)(i,[{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:xZ("button",{action:"cancel"})},e.createElement(_o.z,Object.assign({view:a?"flat":"normal",size:"l",width:"max",onClick:n,disabled:r},s),o)),g=e.createElement("div",{className:xZ("button",{action:"apply"})},e.createElement(_o.z,Object.assign({ref:this.errorTooltipRef,type:"submit",view:"action",size:"l",width:"max",onClick:i,loading:r,className:xZ("button-apply",{preset:l})},u),a),d&&e.createElement(J_,{open:h,anchorRef:this.errorTooltipRef,placement:["bottom","top"],disableLayer:!0,hasArrow:!0},e.createElement("div",{className:xZ("error")},d)));return e.createElement("div",{className:xZ()},e.createElement("div",{className:xZ("children")},c),e.createElement("div",{className:xZ("bts-wrapper")},f?f(g,p):e.createElement(e.Fragment,null,o&&p,a&&g)))}},{key:"attachKeyDownListeners",value:function(){var e=this;setTimeout((function(){window.addEventListener("keydown",e.handleKeyDown)}),0)}},{key:"detachKeyDownListeners",value:function(){window.removeEventListener("keydown",this.handleKeyDown)}}]),i}(e.Component);LZ.defaultProps={preset:"default",showError:!1,listenKeyEnter:!1};var EZ=(0,ft.Ge)("dialog-header");var DZ=(0,ft.Ge)("dialog"),NZ=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var e;return(0,X.Z)(this,i),(e=n.apply(this,arguments)).handleCloseButtonClick=function(t){(0,e.props.onClose)(t.nativeEvent,"closeButtonClick")},e}return(0,J.Z)(i,[{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,g=t.hasCloseButton,v=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(yZ,{open:r,disableBodyScrollLock:o,disableEscapeKeyDown:a,disableOutsideClick:s,disableFocusTrap:u,disableAutoFocus:l,restoreFocusRef:c,keepMounted:d,onEscapeKeyDown:v,onEnterKeyDown:m,onOutsideClick:_,onClose:y,onTransitionEnter:b,onTransitionEntered:w,onTransitionExit:C,onTransitionExited:k,className:DZ("modal",p),"aria-label":S,"aria-labelledby":x,container:n,qa:L},e.createElement("div",{className:DZ({size:h,"has-close":g},f)},i,g&&e.createElement(CZ,{onClose:this.handleCloseButtonClick})))}}]),i}(e.Component);NZ.defaultProps={disableBodyScrollLock:!1,disableEscapeKeyDown:!1,disableOutsideClick:!1,keepMounted:!1,hasCloseButton:!0},NZ.Footer=LZ,NZ.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:EZ(null,a)},r,e.createElement("div",{className:EZ("caption"),id:s},i),o)},NZ.Body=function(t){var n=t.className;return e.createElement("div",{className:kZ(null,n)},t.children)},NZ.Divider=function(t){var n=t.className;return e.createElement("div",{className:SZ(null,n)})};var MZ=(0,ht.Z)("kv-truncated-query"),TZ=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,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)("span",{className:MZ(),children:a}),(0,Nl.jsx)("span",{className:MZ("message",{color:"secondary"}),children:"\n...\nThe request was truncated. Click on the line to show the full query on the query tab"})]})}return(0,Nl.jsx)(Nl.Fragment,{children:n})},IZ=function(e){var t=e.value,n=void 0===t?"":t;return(0,Nl.jsx)(KN,{contentClassName:MZ("popover-content"),content:n,children:n})},OZ=6,AZ=Rt(Rt({},Bi),{},{dynamicRenderType:"variable"}),RZ=(0,ht.Z)("ydb-saved-queries"),PZ=function(e){var t=e.visible,n=e.queryName,i=e.onCancelClick,r=e.onConfirmClick;return(0,Nl.jsxs)(NZ,{open:t,hasCloseButton:!1,size:"s",onClose:i,onEnterKeyDown:r,children:[(0,Nl.jsx)(NZ.Header,{caption:fZ("delete-dialog.header")}),(0,Nl.jsxs)(NZ.Body,{className:RZ("dialog-body"),children:[fZ("delete-dialog.question"),(0,Nl.jsx)("span",{className:RZ("dialog-query-name"),children:" ".concat(n,"?")})]}),(0,Nl.jsx)(NZ.Footer,{textButtonApply:fZ("delete-dialog.delete"),textButtonCancel:fZ("delete-dialog.cancel"),onClickButtonCancel:i,onClickButtonApply:r})]})},ZZ=function(t){var n=t.savedQueries,i=t.changeUserInput,r=t.onDeleteQuery,o=K(),a=(0,e.useState)(!1),s=(0,ne.Z)(a,2),u=s[0],l=s[1],c=(0,e.useState)(""),d=(0,ne.Z)(c,2),h=d[0],f=d[1],p=function(){l(!1),f("")},g=[{name:"name",header:"Name",render:function(e){var t=e.row;return(0,Nl.jsx)("div",{className:RZ("query-name"),children:t.name})},width:200},{name:"body",header:"Query Text",render:function(e){var t,n=e.row;return(0,Nl.jsxs)("div",{className:RZ("query"),children:[(0,Nl.jsx)("div",{className:RZ("query-body"),children:(0,Nl.jsx)(TZ,{value:n.body,maxQueryHeight:OZ})}),(0,Nl.jsxs)("span",{className:RZ("controls"),children:[(0,Nl.jsx)(_o.z,{view:"flat-secondary",children:(0,Nl.jsx)(Ob,{name:"pencil",viewBox:"0 0 24 24"})}),(0,Nl.jsx)(_o.z,{view:"flat-secondary",onClick:(t=n.name,function(e){e.stopPropagation(),l(!0),f(t)}),children:(0,Nl.jsx)(Ob,{name:"trash",viewBox:"0 0 24 24"})})]})]})},sortable:!1}];return(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)("div",{className:RZ(),children:(0,Nl.jsx)(pi,{theme:"yandex-cloud",columns:g,data:n,settings:AZ,emptyDataMessage:fZ("saved.empty"),rowClassName:function(){return RZ("row")},onRowClick:function(e){return t=e.body,n=e.name,i({input:t}),o(Gp(n)),void o(Lu(Rn.newQuery));var t,n},initialSortOrder:{columnId:"name",order:pi.ASCENDING}})}),(0,Nl.jsx)(PZ,{visible:u,queryName:h,onCancelClick:function(){p()},onConfirmClick:function(){p(),r(h),f("")}})]})},FZ=(0,ht.Z)("ydb-queries-history");var jZ=function(e){var t=e.changeUserInput,n=K(),i=nv(),r=(0,ne.Z)(i,2),o=r[0],a=r[1],s=ev(of),u=(0,Ct.Z)(s).reverse(),l=[{name:"queryText",header:"Query Text",render:function(e){var t=e.row;return(0,Nl.jsx)("div",{className:FZ("query"),children:(0,Nl.jsx)(TZ,{value:t.queryText,maxQueryHeight:OZ})})},sortable:!1},{name:"syntax",header:"Syntax",render:function(e){return e.row.syntax===tr.pg?"PostgreSQL":"YQL"},sortable:!1,width:200}];return(0,Nl.jsx)("div",{className:FZ(),children:(0,Nl.jsx)(pi,{theme:"yandex-cloud",columns:l,data:u,settings:AZ,emptyDataMessage:fZ("history.empty"),onRowClick:function(e){return(i=e).syntax===tr.pg&&o!==Ji.pg?a(Ji.pg):i.syntax!==tr.pg&&o===Ji.pg&&a(Ji.script),t({input:i.queryText}),void n(Lu(Rn.newQuery));var i},rowClassName:function(){return FZ("table-row")}})})},HZ=n(77810),BZ=(0,ht.Z)("kv-fullscreen"),zZ=function(e){(0,ee.Z)(i,e);var n=(0,te.Z)(i);function i(e){var t;return(0,X.Z)(this,i),(t=n.call(this,e)).modalRoot=null,t.el=void 0,t.el=document.createElement("div"),t}return(0,J.Z)(i,[{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)}}]),i}(e.Component);var WZ=function(t){var n=K(),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(eg())};return(0,Nl.jsx)(zZ,{children:(0,Nl.jsxs)("div",{className:BZ(null,t.className),children:[(0,Nl.jsx)(_o.z,{onClick:r,view:"raised",className:BZ("close-button"),children:(0,Nl.jsx)(Ob,{name:"disableFullscreen",viewBox:"0 0 16 16 ",width:16,height:16})}),t.children]})})},VZ=e.memo((function(t){var n=t.className,i=t.value,r=K();return(0,e.useEffect)((function(){return function(){r(ec())}}),[r]),(0,Nl.jsx)("span",{className:QZ("cell",n),onClick:function(e){return r(tc(e.target,i,"cell"))},children:i})})),YZ=JSON.parse('{"empty":"Table is empty"}'),UZ=JSON.parse('{"empty":"\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u0443\u0441\u0442\u0430\u044f"}'),KZ="ydb-query-result-table";Va.registerKeyset(Fa.En,KZ,YZ),Va.registerKeyset(Fa.Ru,KZ,UZ);var qZ=Va.keyset(KZ),GZ=["columns","data","settings"],$Z=Rt(Rt({},Bi),{},{stripedRows:!0,dynamicRenderType:"variable",dynamicItemSizeGetter:function(){return 40}}),QZ=(0,ht.Z)("ydb-query-result-table"),XZ=function(e){return e.length?e.map((function(e){var t=e.name,n=function(e){switch(e.replace(/\?$/,"")){case gi.Bool:return"boolean";case gi.Int8:case gi.Int16:case gi.Int32:case gi.Int64:case gi.Uint8:case gi.Uint16:case gi.Uint32:case gi.Uint64:case gi.Float:case gi.Double:case gi.Decimal:return"number";case gi.String:case gi.Utf8:case gi.Json:case gi.JsonDocument:case gi.Yson:case gi.Uuid:return"string";case gi.Date:case gi.Datetime:case gi.Timestamp:case gi.Interval:case gi.TzDate:case gi.TzDateTime:case gi.TzTimestamp:return"date";default:return}}(e.type);return{name:t,align:"number"===n?pi.RIGHT:pi.LEFT,sortAccessor:function(e){var i=e[t];return void 0===i||null===i?null:"number"===n?BigInt(i):i},render:function(e){var n=e.row;return(0,Nl.jsx)(VZ,{value:String(n[t])})}}})):[]},JZ=function(e,t){return t},eF=function(t){var n=t.columns,i=t.data,r=t.settings,o=nn(t,GZ),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];null!==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?XZ(n):function(e){return e.length?Object.keys(e[0]).map((function(t){return{name:t,align:pr(e[0][t])?pi.RIGHT:pi.LEFT,sortAccessor:function(e){return pr(e[t])?Number(e[t]):e[t]},render:function(e){var n=e.row;return(0,Nl.jsx)(VZ,{value:String(n[t])})}}})):[]}(a)}),[a,n]),u=(0,e.useMemo)((function(){return Rt(Rt({},$Z),r)}),[r]);return Array.isArray(i)?s.length?(0,Nl.jsx)(pi,Rt({theme:"yandex-cloud",data:a,columns:s,settings:u,rowKey:JZ},o)):(0,Nl.jsx)("div",{className:QZ("message"),children:qZ("empty")}):null};var tF=function(e){var t=e.disabled,n=K();return(0,Nl.jsx)(_o.z,{onClick:function(){n({type:Qp})},view:"flat-secondary",disabled:t,title:"Fullscreen",children:(0,Nl.jsx)(Ob,{name:"enableFullscreen",viewBox:"0 0 16 16",height:16,width:16})})},nF=(0,ht.Z)("kv-preview"),iF=function(t){var n,i=t.database,r=t.type,o=K(),a=ev((function(e){return e.preview})),s=a.data,u=void 0===s?{}:s,l=a.loading,c=a.error,d=a.wasLoaded,h=ev((function(e){return e.schema})),f=h.autorefresh,p=h.currentSchemaPath,g=ev((function(e){return e.fullscreen})),v=(0,e.useCallback)((function(e){if(od(r)){e||o({type:Cf,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 oa({request:window.api.sendQuery({schema:"modern",query:t,database:n,action:i}),actions:wf,dataHandler:rr})}({query:t,database:i,action:yd(r)?"execute-query":"execute-scan"}))}}),[o,i,p,r]);Jg(v,[v],f);var m,_=function(){o(Md(!1))};if(l&&!d)return(0,Nl.jsx)("div",{className:nF("loader-container"),children:(0,Nl.jsx)(KE,{size:"m"})});od(r)?c&&(m=(0,Nl.jsx)("div",{className:nF("message-container","error"),children:sr(c)})):m=(0,Nl.jsx)("div",{className:nF("message-container"),children:fZ("preview.not-available")});var y=null!==(n=m)&&void 0!==n?n:(0,Nl.jsx)("div",{className:nF("result"),children:(0,Nl.jsx)(eF,{data:u.result,columns:u.columns})});return(0,Nl.jsxs)("div",{className:nF(),children:[(0,Nl.jsxs)("div",{className:nF("header"),children:[(0,Nl.jsxs)("div",{className:nF("title"),children:[fZ("preview.title")," ",(0,Nl.jsx)("div",{className:nF("table-name"),children:p})]}),(0,Nl.jsxs)("div",{className:nF("controls-left"),children:[(0,Nl.jsx)(tF,{disabled:Boolean(c)}),(0,Nl.jsx)(_o.z,{view:"flat-secondary",onClick:_,title:fZ("preview.close"),children:(0,Nl.jsx)(Ob,{name:"close",viewBox:"0 0 16 16",width:16,height:16})})]})]}),g?(0,Nl.jsx)(WZ,{children:y}):y]})},rF=(0,ht.Z)("kv-divider");var oF,aF=function(){return(0,Nl.jsx)("div",{className:rF()})};function sF(){return sF=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},sF.apply(this,arguments)}var uF=function(t){return e.createElement("svg",sF({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),oF||(oF=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"})))},lF=(0,ht.Z)("kv-query-execution-status"),cF=function(e){var t,n,i=e.className,r=e.error;if("object"===typeof r&&"ECONNABORTED"===(null===r||void 0===r?void 0:r.code))t=(0,Nl.jsx)(yo.J,{data:uF,size:16}),n="Connection aborted";else{var o=Boolean(r);t=(0,Nl.jsx)(Ob,{name:o?"failure":"success",viewBox:o?"0 0 512 512":"0 0 16 16",width:16,height:16,className:lF("result-status-icon",{error:o})}),n=o?"Failed":"Completed"}return(0,Nl.jsxs)("div",{className:lF(null,i),children:[t,n]})},dF=(0,ft.Ge)("arrow-toggle");function hF(t){var n=t.size,i=void 0===n?16:n,r=t.direction,o=void 0===r?"bottom":r,a=t.className,s=t.qa;return e.createElement("span",{style:{width:i,height:i},className:dF({direction:o},a),"data-qa":s},e.createElement(yo.J,{data:Kb,size:i}))}var fF=JSON.parse('{"default_collapse_label":"Show less","default_expand_label":"Show more","chars_count":[" ({{count}} symbol)"," ({{count}} symbols)"," ({{count}} symbols)"," ({{count}} symbols)"]}'),pF=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)"]}'),gF="ydb-shorty-string";Va.registerKeyset(Fa.En,gF,fF),Va.registerKeyset(Fa.Ru,gF,pF);var vF=Va.keyset(gF),mF=(0,ht.Z)("kv-shorty-string");function _F(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?vF("default_expand_label"):f,g=t.collapseLabel,v=void 0===g?vF("default_collapse_label"):g,m=e.useState(!1),_=(0,ne.Z)(m,2),y=_[0],b=_[1],w=(y?v:p)+(l&&!y?vF("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,Nl.jsxs)("div",{className:mF(),children:[d(k),C?(0,Nl.jsx)(yv,{className:mF("toggle"),onClick:function(e){e.stopPropagation(),b((function(e){return!e})),null===h||void 0===h||h()},children:w}):null]})}var yF=["S_FATAL","S_ERROR","S_WARNING","S_INFO"];function bF(e){return function(e){return!!e&&void 0!==yF[e]}(e)?yF[e]:"S_INFO"}var wF=(0,ht.Z)("kv-result-issues"),CF=(0,ht.Z)("kv-issues"),kF=(0,ht.Z)("kv-issue");function SF(t){var n=t.data,i=e.useState(!1),r=(0,ne.Z)(i,2),o=r[0],a=r[1],s="string"===typeof n||null===n||void 0===n?void 0:n.issues,u=Array.isArray(s)&&s.length>0;return(0,Nl.jsxs)("div",{className:wF(),children:[(0,Nl.jsxs)("div",{className:wF("error-message"),children:[function(){var t;if("string"===typeof n)t=n;else{var i,r,o=bF(null===n||void 0===n||null===(i=n.error)||void 0===i?void 0:i.severity);t=(0,Nl.jsxs)(e.Fragment,{children:[(0,Nl.jsx)(MF,{severity:o})," ",(0,Nl.jsx)("span",{className:wF("error-message-text"),children:null===n||void 0===n||null===(r=n.error)||void 0===r?void 0:r.message})]})}return t}(),u&&(0,Nl.jsx)(_o.z,{view:"normal",onClick:function(){return a(!o)},children:o?"Hide details":"Show details"})]}),u&&o&&(0,Nl.jsx)(xF,{issues:s})]})}function xF(e){var t=e.issues,n=null===t||void 0===t?void 0: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,Nl.jsx)("div",{className:CF(null),children:null===t||void 0===t?void 0:t.map((function(e,t){return(0,Nl.jsx)(LF,{issue:e,expanded:e===n},t)}))})}function LF(t){var n=t.issue,i=t.level,r=void 0===i?0:i,o=e.useState(!0),a=(0,ne.Z)(o,2),s=a[0],u=a[1],l=bF(n.severity),c=function(e){var t=e.position,n=void 0===t?{}:t;if(!n)return!1;var i=n.file,r=n.row,o=n.column;return"".concat(i?"file:":"").concat(r,":").concat(o)}(n),d=n.issues,h=Array.isArray(d)&&d.length>0,f=s?"bottom":"right";return(0,Nl.jsxs)("div",{className:kF({leaf:!h,"has-issues":h}),children:[(0,Nl.jsxs)("div",{className:kF("line"),children:[h&&(0,Nl.jsx)(_o.z,{view:"flat-secondary",onClick:function(){return u(!s)},className:kF("arrow-toggle"),children:(0,Nl.jsx)(hF,{direction:f,size:16})}),(0,Nl.jsx)(MF,{severity:l}),(0,Nl.jsxs)("span",{className:kF("message"),children:[c&&(0,Nl.jsx)("span",{className:kF("place-text"),title:"Position",children:c}),(0,Nl.jsx)("div",{className:kF("message-text"),children:(0,Nl.jsx)(_F,{value:n.message,expandLabel:"Show full message"})})]}),n.issue_code?(0,Nl.jsxs)("span",{className:kF("code"),children:["Code: ",n.issue_code]}):null]}),h&&s&&(0,Nl.jsx)("div",{className:kF("issues"),children:(0,Nl.jsx)(EF,{issues:d,level:r+1,expanded:s})})]})}function EF(e){var t=e.issues,n=e.level,i=e.expanded;return(0,Nl.jsx)("div",{className:kF("list"),children:t.map((function(e,t){return(0,Nl.jsx)(LF,{issue:e,level:n,expanded:i},t)}))})}var DF={S_INFO:xv,S_WARNING:Cv,S_ERROR:Mv,S_FATAL:Dv},NF=(0,ht.Z)("yql-issue-severity");function MF(e){var t=e.severity,n=t.slice(2).toLowerCase();return(0,Nl.jsxs)("span",{className:NF({severity:n}),children:[(0,Nl.jsx)(yo.J,{className:NF("icon"),data:DF[t],size:16}),(0,Nl.jsx)("span",{className:NF("title"),children:n})]})}var TF=function(e){var t=e.text,n=e.popoverContent,i=e.className,r=e.contentClassName;return(0,Nl.jsxs)("div",{className:i,children:[t,"\xa0",(0,Nl.jsx)(HA,{content:n,contentClassName:r})]})},IF=(0,ht.Z)("ydb-query-duration"),OF=function(e){var t=e.duration;if(!t)return null;var n,i=bh((n=t)&&pr(n)?Math.round(Number(n)/1e3):0,1);return(0,Nl.jsx)("span",{className:IF(),children:(0,Nl.jsx)(TF,{className:IF("item-with-popover"),contentClassName:IF("popover"),text:i,popoverContent:fZ("query-duration.description")})})},AF=function(e){if(null===e||void 0===e||!e.length)return"";var t=Object.keys(e[0]);return Array(t).concat(e).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")},RF=(0,ht.Z)("ydb-query-execute-result"),PF={result:"result",stats:"stats"},ZF=[{value:PF.result,content:"Result"},{value:PF.stats,content:"Stats"}];function FF(t){var n,i,r,o=t.data,a=t.stats,s=t.error,u=t.isResultsCollapsed,l=t.onCollapseResults,c=t.onExpandResults,d=(0,e.useState)(0),h=(0,ne.Z)(d,2),f=h[0],p=h[1],g=(0,e.useState)(PF.result),v=(0,ne.Z)(g,2),m=v[0],_=v[1],y=ev((function(e){return e.fullscreen})),b=K(),w=null===o||void 0===o||null===(n=o.resultSets)||void 0===n?void 0:n.length,C=w&&w>0,k=C?null===o||void 0===o||null===(i=o.resultSets)||void 0===i?void 0:i[f].result:null===o||void 0===o?void 0:o.result,S=C?null===o||void 0===o||null===(r=o.resultSets)||void 0===r?void 0:r[f].columns:null===o||void 0===o?void 0:o.columns,x=AF(k),L=!x.length;(0,e.useEffect)((function(){return function(){b(eg())}}),[b]);var E=function(e,t){return(0,Nl.jsx)(eF,{data:e,columns:t,settings:{sortable:!1}})},D=function(){var t=(0,Nl.jsx)(Dl(),{data:a,isExpanded:function(){return!0},className:RF("inspector"),searchOptions:{debounceTime:300}});return(0,Nl.jsxs)(e.Fragment,{children:[t,y&&(0,Nl.jsx)(WZ,{children:(0,Nl.jsx)("div",{className:RF("inspector",{fullscreen:!0}),children:t})})]})},N=function(){var t=(0,Nl.jsxs)(Nl.Fragment,{children:[C&&w>1&&(0,Nl.jsx)("div",{children:(0,Nl.jsx)(Wg,{className:RF("result-tabs"),size:"l",items:aN(w).map((function(e){return{id:String(e),title:"Result #".concat(e+1)}})),activeTab:String(f),onSelectTab:function(e){return p(Number(e))}})}),(0,Nl.jsx)("div",{className:RF("result"),children:E(k,S)})]});return(0,Nl.jsxs)(e.Fragment,{children:[t,y&&(0,Nl.jsx)(WZ,{children:(0,Nl.jsx)("div",{className:RF("result-fullscreen-wrapper"),children:t})})]})},M=function(){var t;if(!s)return null;if("object"===typeof s&&null!==(t=s.data)&&void 0!==t&&t.issues&&Array.isArray(s.data.issues)){var n=(0,Nl.jsx)(SF,{data:s.data});return(0,Nl.jsxs)(e.Fragment,{children:[n,y&&(0,Nl.jsx)(WZ,{children:(0,Nl.jsx)("div",{className:RF("result-fullscreen-wrapper",RF("result")),children:n})})]})}var i="string"===typeof s?s:sr(s);return(0,Nl.jsx)("div",{className:RF("error"),children:i})};return(0,Nl.jsxs)(e.Fragment,{children:[(0,Nl.jsxs)("div",{className:RF("controls"),children:[(0,Nl.jsxs)("div",{className:RF("controls-right"),children:[(0,Nl.jsx)(cF,{error:s}),a&&!s&&(0,Nl.jsxs)(e.Fragment,{children:[(0,Nl.jsx)(OF,{duration:null===a||void 0===a?void 0:a.DurationUs}),(0,Nl.jsx)(aF,{}),(0,Nl.jsx)(Dy,{options:ZF,value:m,onUpdate:function(e){_(e)}})]})]}),(0,Nl.jsxs)("div",{className:RF("controls-left"),children:[(0,Nl.jsx)(sy,{text:x,view:"flat-secondary",title:"Copy results",disabled:L}),(0,Nl.jsx)(tF,{}),(0,Nl.jsx)(oZ,{onCollapse:l,onExpand:c,isCollapsed:u,initialDirection:"bottom"})]})]}),m!==PF.result||s?(0,Nl.jsxs)("div",{className:RF("result"),children:[m===PF.stats&&!s&&D(),M()]}):N()]})}var jF,HF,BF=n(59312);!function(e){e.Arrow="arrow",e.Line="line"}(jF||(jF={})),function(e){e.Normal="normal",e.Ellipsis="ellipsis"}(HF||(HF={}));function zF(e,t){var n=document.createElement("button");return n.innerText=e,n.className="paranoid-button paranoid-button_".concat(t),n}var WF="ParanoidC";function VF(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=zF("+","plus"),r=zF("-","minus"),o=zF("1:1","normal"),a=function(e,t){var n=document.createElement("canvas");n.setAttribute("id",WF),n.setAttribute("width",String(e.offsetWidth)),n.setAttribute("height",String(e.offsetHeight)),e.appendChild(n);var i=t.colors||{};return new BF.fabric.Canvas(WF,{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 YF,UF={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)"},KF={hasControls:!1,hasRotatingPoint:!1,lockMovementX:!0,lockMovementY:!0,selectable:!1,hoverCursor:"default",subTargetCheck:!0},qF="Arial, sans-serif",GF=13,$F=1.38;!function(e){e.Group="GROUP"}(YF||(YF={}));var QF={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},XF={radius:3,paddingRight:8},JF={paddingTop:16,paddingLeft:16,paddingRight:16,paddingBottom:14},ej=8;function tj(e,t,n){return new BF.fabric.Circle({top:e,left:t,radius:XF.radius,fill:n.nodeFill,stroke:n.stroke})}function nj(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 ij=n(13649),rj=n.n(ij),oj="\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",aj="M9.5 13l3 3l5 -5",sj="M9.5 10l8 8m-8 0l8 -8";function uj(e,t){switch(e.theme){case"warning":return t.warning;case"danger":return t.error}return t.textColor}function lj(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 cj(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||HF.Ellipsis,f=l?l(s):s.name,p=new BF.fabric.Text(f||"",{fontSize:QF.titleFontSize,lineHeight:QF.titleLineHeight,left:QF.paddingLeft,top:QF.paddingTop,fontFamily:qF,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 BF.fabric.Text(s.meta||"",{fontSize:QF.textFontSize,lineHeight:QF.textLineHeight,left:QF.paddingLeft,top:QF.paddingTop+p.getBoundingRect().height+QF.metaMarginTop,fontFamily:qF,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 BF.fabric.Text(g.name+": ",{fontSize:QF.textFontSize,lineHeight:QF.textLineHeight,fontFamily:qF,fill:i.textColor}),m=new BF.fabric.Text(g.value,{fontSize:QF.textFontSize,lineHeight:QF.textLineHeight,fontFamily:qF,fill:uj(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)+QF.metricsPadding);var _=new BF.fabric.Group([v,m],{top:h,left:f});f+=(null!==(l=_.width)&&void 0!==l?l:0)+QF.metricsPadding,d.push(_)}return new BF.fabric.Group(d,{top:e,left:t})}(QF.paddingTop+p.getBoundingRect().height+v.getBoundingRect().height+QF.metaMarginTop+QF.metricsMarginTop,QF.paddingLeft,s.metrics,u,h===HF.Ellipsis?QF.width-QF.paddingLeft-QF.paddingRight:1/0):void 0;if(s.status){var _=new BF.fabric.Rect({width:12,height:12,fill:lj(s.status,u),rx:3,ry:3}),y=new BF.fabric.Text(s.status,{fontSize:QF.textFontSize,lineHeight:QF.textLineHeight,left:16,fontFamily:qF,fill:u.textColor});g=new BF.fabric.Group([_,y],{top:v.getBoundingRect().top+v.getBoundingRect().height-v.getHeightOfLine(0),left:QF.width-y.getLineWidth(0)-16-12,padding:12})}var b=i?QF.widthWithAnchor:QF.width;if(h===HF.Ellipsis)nj(p,QF.titleMaxWidth),nj(v,QF.metaMaxWidth);else{var w=p.getBoundingRect().width,C=v.getBoundingRect().width,k=g?g.getBoundingRect().width:0,S=m?m.getBoundingRect().width+QF.paddingLeft+QF.paddingRight:0;b=Math.max(b,QF.paddingLeft+Math.max(w,C)+Math.max(ej+QF.paddingRight,k)+(i?QF.anchorOffset:0),S),g&&(g.left=b-k+12-(i?QF.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?QF.paddingTop+n.getBoundingRect().height+QF.metaMarginTop+i.getBoundingRect().height+(r?QF.metricsMarginTop+r.getBoundingRect().height:0)+QF.paddingBottom:QF.height}(s,f,p,v,m),L=new BF.fabric.Rect({width:b,height:x,fill:u.nodeFill,stroke:u.nodeShadow,rx:QF.borderRadius,ry:QF.borderRadius,shadow:new BF.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 BF.fabric.Path(oj,{fill:o.stroke,hoverCursor:"pointer"}),u=new BF.fabric.Path(aj,{stroke:o.stroke,fill:"",hoverCursor:"pointer",opacity:0}),l=new BF.fabric.Path(sj,{stroke:o.stroke,fill:"",hoverCursor:"pointer",opacity:0}),c=new BF.fabric.Group([s,u,l],{top:n,left:i-ej,scaleX:.6,scaleY:.6});return"function"===typeof a&&c.on("mousedown",(function(){var n=a(t),i=rj()(n)?u:l;i.animate("opacity",1,{duration:150,onChange:e.requestRenderAll.bind(e),easing:BF.fabric.util.ease.easeInOutSine,onComplete:function(){setTimeout((function(){i.set("opacity",0),e.requestRenderAll()}),1e3)}})})),c}(e,s,QF.paddingTop,b-QF.paddingLeft-QF.paddingRight,n);E.set("visible",!1);var D=[L,p,E,v,g,m].filter(Boolean);i&&D.push(tj(x/2-XF.radius,b-XF.paddingRight-2*QF.borderRadius,u));var N=new BF.fabric.Group(D,Object.assign({left:o,top:a},KF));return"function"===typeof d&&(N.on("mouseover",(function(){E.set("visible",!0),e.requestRenderAll()})),N.on("mouseout",(function(){E.set("visible",!1),e.requestRenderAll()}))),N}var dj=10,hj=10,fj=15,pj=40;function gj(e){var t=arguments.length>3?arguments[3]:void 0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:hj,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:dj,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+pj*l+s,f=n+c.reduce((function(e,t){return e+t.getScaledHeight()||0}),0)+fj*a,p=function(e,t,n,i,r,o){var a,s=[],u=i.data;if(i.members.length>0){var l=n+JF.paddingRight,c=t+JF.paddingTop+JF.paddingTop+JF.paddingBottom,d=0,h=0,f=i.members.reduce((function(t,n){n.setCanvas(e),n.setNodesWithChildren(o);var i=gj(n,c,l,r),a=i.nodes,s=i.bottom,u=i.right;return c=s+fj,s>d&&(d=s),u>h&&(h=u),t.push.apply(t,(0,Ct.Z)(a)),t}),[]);a=function(e,t,n,i){var r=t.left,o=t.top,a=t.width,s=t.height,u=new BF.fabric.Text(e||"",{fontSize:QF.titleFontSize,lineHeight:18,left:JF.paddingLeft,top:JF.paddingTop,fontFamily:qF,fill:n.titleColor}),l=s+JF.paddingBottom+(u.height||0),c=a+JF.paddingLeft+JF.paddingRight;i&&(c+=XF.paddingRight);var d=[new BF.fabric.Rect({width:c,height:l,stroke:n.groupBorderColor,fill:n.groupFill,rx:QF.borderRadius,ry:QF.borderRadius}),u];return i&&d.push(tj(l/2-XF.radius,c-QF.paddingLeft-2*QF.borderRadius,n)),new BF.fabric.Group(d,Object.assign({left:r,top:o},KF))}(u.name,{top:t,left:n,width:h-n-JF.paddingRight,height:d-t-JF.paddingTop},r.colors,o.includes(i.data.name)),s.push.apply(s,(0,Ct.Z)(f))}else a=cj(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,Ct.Z)(v)),d+=g.getScaledHeight()+fj;var m=g.getScaledWidth();return m>h&&(h=m),r.addCanvasNode(g),c.push(g),g}));r.push.apply(r,(0,Ct.Z)(f)),r.push.apply(r,o),s+=h,(d-=fj)>a&&(a=d)}));var u=e.getTreeDepth()*pj;return{nodes:r,bottom:a+n,right:s+i+u}}var vj=function(){function e(t,n){(0,X.Z)(this,e),this.children=[],this.members=[],this.data=t,this.canvasNode=n}return(0,J.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 mj=function(){function e(t){(0,X.Z)(this,e),this.nodesWithChildren=[],this.root=t}return(0,J.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,Ct.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,Ct.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}(),_j=function(){function e(t,n){(0,X.Z)(this,e),this.nodes=new Map,this.data=t,this.opts=n}return(0,J.Z)(e,[{key:"parseData",value:function(){var e=this,t=this.data,n=this.getGroups(t),i=(0,Ct.Z)(t.nodes);n.forEach((function(e,t){i.push({name:t,children:e,type:YF.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,Ct.Z)(s),(0,Ct.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 mj(r),groups:o,notGroupMemebersChildren:l}}},{key:"appendGoup",value:function(e,t){var n=t.data;t.data.type===YF.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 vj(e);return this.nodes.set(e.name,t),t}}]),e}();var yj=4,bj=12;function wj(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:jF.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+yj},d={y:l,x:u-bj},h=new BF.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}),f=[h];if(i!==jF.Line){var p=new BF.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});f.push(p)}return new BF.fabric.Group(f,Object.assign({},KF))}var Cj=function(){function e(t,n,i){(0,X.Z)(this,e),this.nodesWithChildren=i.links.reduce((function(e,t){return e.set(t.from,[]),e}),new Map),this.parser=new _j(i,n),this.opts=n,this.canvas=VF(t,n)}return(0,J.Z)(e,[{key:"destroy",value:function(){var e=document.getElementById(WF);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=gj(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 _j(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=gj(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,Ct.Z)(t).concat((0,Ct.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,Na.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(wj(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!==YF.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 BF.fabric.Point(u,s))}}}]),e}(),kj=n(28664),Sj=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n)}((0,kj.Z)(CustomEvent)),xj=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"dispatch",value:function(e,t){this.dispatchEvent(new Sj(e,{detail:t}))}}]),n}((0,kj.Z)(EventTarget)),Lj=16,Ej=16,Dj=24;function Nj(e){switch(e){case 0:return 0;case 1:return Ej;default:return Dj}}function Mj(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)*Lj+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,Na.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+Lj,d.children.length){var _=0,y=l.get(d);y<g&&(_=Math.floor((g-y)/2));var b=n+p+Nj(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 Tj(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 Ij(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 Oj=function(){function e(t,n,i,r){(0,X.Z)(this,e),this.canvas=VF(t,n),this.parser=new _j(i,n),this.opts=n,this.shapes=r,this.em=new xj,this.trees=[],this.nodes=[],this.links=[],this.listenNodeResize()}return(0,J.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(WF);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=Mj(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,Ct.Z)(l)),(i=n.canvas).add.apply(i,(0,Ct.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=Tj(a),u=s.x,l=s.y,c=new BF.fabric.Path("M ".concat(u," ").concat(l,"\n V ").concat(l+Ej),{fill:"",stroke:n.stroke,strokeWidth:1});t.push(new BF.fabric.Group([c],Object.assign({},KF))),i.push(o)}if(a&&a.children.length>1&&!i.includes(o)){var d=Tj(a),h=d.x,f=d.y,p=Dj/2,g=[new BF.fabric.Path("M ".concat(h," ").concat(f,"\n V ").concat(f+p),{fill:"",stroke:n.stroke,strokeWidth:1})],v=Ij(a.children[0]),m=v.x,_=v.y,y=Ij(a.children[a.children.length-1]),b=y.x,w=y.y,C=new BF.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=Ij(e),r=i.x,o=i.y,s=new BF.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 BF.fabric.Group(g,Object.assign({},KF))),i.push(o)}return t}),[])}(this.parser,this.opts);(e=this.links).push.apply(e,(0,Ct.Z)(l)),(t=this.canvas).add.apply(t,(0,Ct.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 BF.fabric.Point(u,s))}}}]),e}();function Aj(){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({},UF),n),{getCommonColor:function(e){return t.getPropertyValue("--yc-color-".concat(e)).replace(/ /g,"")}})}var Rj={linkType:jF.Arrow};function Pj(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Rj,t=e.colors||{};return Object.assign(Object.assign({initialTop:10,initialLeft:10},e),{colors:Object.assign(Object.assign(Object.assign({},UF),Aj()),t)})}function Zj(e,t,n){var i=Pj(n);return new Cj(e,i,t)}function Fj(e,t,n,i){var r=Pj(n);return new Oj(e,r,t,i)}var jj=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}()}(),Hj="undefined"!==typeof window&&"undefined"!==typeof document&&window.document===document,Bj="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")(),zj="function"===typeof requestAnimationFrame?requestAnimationFrame.bind(Bj):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)},Wj=2;var Vj=20,Yj=["top","right","bottom","left","width","height","size","weight"],Uj="undefined"!==typeof MutationObserver,Kj=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&&s()}function a(){zj(o)}function s(){var e=Date.now();if(n){if(e-r<Wj)return;i=!0}else n=!0,i=!1,setTimeout(a,t);r=e}return s}(this.refresh.bind(this),Vj)}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(){Hj&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Uj?(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(){Hj&&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,i=Yj.some((function(e){return!!~n.indexOf(e)}));i&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),qj=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},Gj=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||Bj},$j=nH(0,0,0,0);function Qj(e){return parseFloat(e)||0}function Xj(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+Qj(e["border-"+n+"-width"])}),0)}function Jj(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return $j;var i=Gj(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]=Qj(o)}return t}(i),o=r.left+r.right,a=r.top+r.bottom,s=Qj(i.width),u=Qj(i.height);if("border-box"===i.boxSizing&&(Math.round(s+o)!==t&&(s-=Xj(i,"left","right")+o),Math.round(u+a)!==n&&(u-=Xj(i,"top","bottom")+a)),!function(e){return e===Gj(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 nH(r.left,r.top,s,u)}var eH="undefined"!==typeof SVGGraphicsElement?function(e){return e instanceof Gj(e).SVGGraphicsElement}:function(e){return e instanceof Gj(e).SVGElement&&"function"===typeof e.getBBox};function tH(e){return Hj?eH(e)?function(e){var t=e.getBBox();return nH(0,0,t.width,t.height)}(e):Jj(e):$j}function nH(e,t,n,i){return{x:e,y:t,width:n,height:i}}var iH=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=nH(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=tH(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}(),rH=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 qj(a,{x:t,y:n,width:i,height:r,top:n,right:t+i,bottom:r+n,left:t}),a}(t);qj(this,{target:e,contentRect:n})},oH=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new jj,"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 Gj(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new iH(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 Gj(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 rH(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}(),aH="undefined"!==typeof WeakMap?new WeakMap:new jj,sH=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=Kj.getInstance(),i=new oH(t,n,this);aH.set(this,i)};["observe","unobserve","disconnect"].forEach((function(e){sH.prototype[e]=function(){var t;return(t=aH.get(this))[e].apply(t,arguments)}}));var uH="undefined"!==typeof Bj.ResizeObserver?Bj.ResizeObserver:sH,lH="paranoidRoot",cH=(e.Component,"paranoidRoot"),dH=(e.Component,{width:280,expandedWidth:360,borderRadius:4,titleFontSize:GF,titleLineHeight:$F,textFontSize:GF,textLineHeight:$F,padding:12,timeMaxWidth:25,percentageMaxWidth:25,textOffset:8,tagLeftOffset:4,tagTopOffset:5,statsOffset:24});var hH=function(){function e(t,n,i,r){(0,X.Z)(this,e),this.top=0,this.left=0,this.canvas=t,this.stats=n,this.coords=i,this.colors=r,this.textProps={fontSize:dH.textFontSize,lineHeight:dH.textLineHeight,fontFamily:qF,fill:null===r||void 0===r?void 0:r.titleColor},this.selectedGroup=n[0].group;var o=this.createTitles(),a=o.map((function(e){return e.getScaledHeight()})),s=Math.max.apply(null,a);this.lineTop=this.top+s+dH.textOffset;var u=this.createLine();this.content=this.createContent(o),this.group=this.createGroup(o,u,this.content),this.initListeners()}return(0,J.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 BF.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()+dH.statsOffset,o}))}},{key:"createLine",value:function(){return new BF.fabric.Path("M ".concat(this.left," ").concat(this.lineTop,"\n H ").concat(dH.expandedWidth-2*dH.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 BF.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*dH.textOffset,r=[],o=function(e){e.forEach((function(e){var t,o=e.name,a=e.value,s=new BF.fabric.Text(o,Object.assign({left:n.left,top:i},n.textProps)),u=dH.expandedWidth/2-dH.padding,l=dH.expandedWidth-2*dH.padding,c=new BF.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())+dH.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 BF.fabric.Text(s,Object.assign(Object.assign({left:n.left,top:i},n.textProps),{fontWeight:"bold"}));if(r.push(l),i+=l.getScaledHeight()+dH.textOffset,o(u),a!==e.length-1){var c=new BF.fabric.Path("M ".concat(n.left," ").concat(i,"\n H ").concat(dH.expandedWidth-2*dH.padding),{fill:"",stroke:n.colors.stroke,strokeWidth:1,strokeDashArray:[6,4]});r.push(c),i+=c.getScaledHeight()+dH.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 BF.fabric.Group([].concat((0,Ct.Z)(e),[t],(0,Ct.Z)(i),(0,Ct.Z)(r)),Object.assign({left:this.coords.left,top:this.coords.top},KF))}},{key:"createHoverLine",value:function(e,t,n){return new BF.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 fH(e,t,n,i,r){return new hH(e,t,{top:n,left:i},r).getCanvasObject()}function pH(e,t,n){return new BF.fabric.Textbox(e?"#".concat(e):"",{fontSize:12,lineHeight:14,textAlign:"right",fontFamily:qF,fill:n.getCommonColor("text-secondary"),hoverCursor:t?"pointer":"default"})}var gH={width:112,expandedWidth:360,borderRadius:6,titleFontSize:GF,titleLineHeight:$F,textFontSize:GF,textLineHeight:$F,padding:16,textOffset:8},vH={scaleX:16/512,scaleY:16/512,originY:"center"};function mH(e,t,n){var i,r=new BF.fabric.Text(e,{fontSize:gH.textFontSize,lineHeight:gH.textFontSize,fontFamily:qF,fill:n.getCommonColor("text-misc"),originY:"center"}),o=[r];switch(e){case"Merge":i=new BF.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",vH);break;case"UnionAll":i=new BF.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",vH);break;case"HashShuffle":i=new BF.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",vH);break;case"Map":i=new BF.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",vH);break;case"Broadcast":i=new BF.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",vH)}return i&&(i.set({fill:n.getCommonColor("text-misc"),top:0,left:0,originY:"center"}),r.set({left:22}),o.push(i)),new BF.fabric.Group(o,Object.assign(Object.assign({},KF),{hoverCursor:t?"pointer":"default"}))}var _H=function(){function e(t,n,i,r,o){(0,X.Z)(this,e),this.expanded=!1,this.expandedNodeHeight=0,this.nodeHeight=0,this.canvas=t,this.coords=n,this.treeNode=i,this.opts=r,this.em=o,this.data=on().get(i,["data","data"]),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup(),this.initListeners()}return(0,J.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()+gH.padding,new BF.fabric.Rect({width:gH.width,height:this.nodeHeight,fill:this.getFillColor(),shadow:this.getShadow(),stroke:e.getCommonColor("line-misc"),rx:gH.borderRadius,ry:gH.borderRadius,hoverCursor:this.isExpandable()?"pointer":"default"})}},{key:"prepareShapeObjects",value:function(){return[pH(this.data.id,this.isExpandable(),this.opts.colors),mH(this.data.name||"",this.isExpandable(),this.opts.colors)]}},{key:"setShapeObjectsCoords",value:function(){var e=(0,ne.Z)(this.objects,2),t=e[0],n=e[1],i=gH.padding,r=this.expanded?gH.expandedWidth:gH.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 BF.fabric.Group([this.body].concat((0,Ct.Z)(this.objects)),Object.assign({top:t,left:n},KF))}},{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,ne.Z)(this.objects,2),r=i[0],o=i[1],a=o.getScaledWidth();this.expanded?(this.stats=fH(this.canvas,this.data.stats,(this.group.top||0)+this.body.getScaledHeight()+gH.padding,(this.group.left||0)+gH.padding,n),this.expandedNodeHeight=this.nodeHeight+this.stats.getScaledHeight()+2*gH.padding,e=gH.expandedWidth,t=this.expandedNodeHeight,this.group.addWithUpdate(this.stats)):(e=gH.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}(),yH={width:190,bevelSize:10,titleFontSize:GF,titleLineHeight:$F,padding:12};var bH=function(){function e(t,n,i,r,o){(0,X.Z)(this,e),this.nodeHeight=0,this.coords=n,this.opts=r,this.data=on().get(i,["data","data"]),this.shadow=new BF.fabric.Shadow({color:r.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new BF.fabric.Shadow({color:r.colors.nodeShadow,offsetY:3,blur:8}),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup()}return(0,J.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()+yH.padding,new BF.fabric.Polygon([{x:yH.bevelSize,y:0},{x:yH.width-yH.bevelSize,y:0},{x:yH.width,y:yH.bevelSize},{x:yH.width,y:this.nodeHeight-yH.bevelSize},{x:yH.width-yH.bevelSize,y:this.nodeHeight},{x:yH.bevelSize,y:this.nodeHeight},{x:0,y:this.nodeHeight-yH.bevelSize},{x:0,y:yH.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 BF.fabric.Text(e.join("\n"),{fontSize:yH.titleFontSize,lineHeight:yH.titleLineHeight,left:0,top:26,fontFamily:qF,fontStyle:"italic",fill:t.getCommonColor("text-primary")})}([this.data.name||""],this.opts.colors);return[e]}},{key:"setShapeObjectsCoords",value:function(){var e=(0,ne.Z)(this.objects,1)[0],t=yH.padding,n=e.getScaledWidth();e.set({left:yH.width/2-n/2,top:t})}},{key:"createGroup",value:function(){var e=this.coords,t=e.top,n=e.left;return new BF.fabric.Group([this.body].concat((0,Ct.Z)(this.objects)),Object.assign({top:t,left:n},KF))}}]),e}(),wH=40,CH=40,kH=20,SH=function(){function e(t,n,i,r,o){(0,X.Z)(this,e),this.coords=n,this.opts=r,this.shadow=new BF.fabric.Shadow({color:r.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new BF.fabric.Shadow({color:r.colors.nodeShadow,offsetY:3,blur:8}),this.body=this.prepareNodeBody(),this.group=this.createGroup()}return(0,J.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 BF.fabric.Rect({width:wH,height:CH,fill:this.getFillColor(),stroke:null===e||void 0===e?void 0:e.nodeShadow,rx:kH,ry:kH,shadow:this.getShadow(),hoverCursor:"default"})}},{key:"createGroup",value:function(){var e=this.coords,t=e.top,n=e.left;return new BF.fabric.Group([this.body],Object.assign({top:t,left:n},KF))}}]),e}(),xH={width:112,borderRadius:6,titleFontSize:GF,titleLineHeight:$F,textFontSize:GF,textLineHeight:$F,padding:12,textOffset:8};var LH=function(){function e(t,n,i,r,o){(0,X.Z)(this,e),this.nodeHeight=0,this.coords=n,this.opts=r,this.data=on().get(i,["data","data"]),this.shadow=new BF.fabric.Shadow({color:r.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new BF.fabric.Shadow({color:r.colors.nodeShadow,offsetY:3,blur:8}),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup()}return(0,J.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()+xH.padding,new BF.fabric.Rect({width:xH.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 BF.fabric.Text(e.join("\n"),{fontSize:xH.textFontSize,lineHeight:xH.textLineHeight,left:0,top:26,fontFamily:qF,fill:t.getCommonColor("text-primary")})}([this.data.name||""],this.opts.colors);return[e]}},{key:"setShapeObjectsCoords",value:function(){var e=(0,ne.Z)(this.objects,1)[0],t=xH.padding,n=e.getScaledWidth();e.set({left:xH.width/2-n/2,top:t})}},{key:"createGroup",value:function(){var e=this.coords,t=e.top,n=e.left;return new BF.fabric.Group([this.body].concat((0,Ct.Z)(this.objects)),Object.assign({top:t,left:n},KF))}}]),e}(),EH={width:248,expandedWidth:360,borderRadius:6,titleFontSize:GF,titleLineHeight:$F,textFontSize:GF,textLineHeight:$F,padding:12,textOffset:8};var DH=function(){function e(t,n,i,r,o){(0,X.Z)(this,e),this.expanded=!1,this.expandedNodeHeight=0,this.nodeHeight=0,this.canvas=t,this.coords=n,this.treeNode=i,this.opts=r,this.em=o,this.data=on().get(i,["data","data"]),this.shadow=new BF.fabric.Shadow({color:r.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new BF.fabric.Shadow({color:r.colors.nodeShadow,offsetY:3,blur:8}),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup(),this.initListeners()}return(0,J.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()+EH.padding,new BF.fabric.Rect({width:EH.width,height:this.nodeHeight,fill:this.getFillColor(),stroke:null===e||void 0===e?void 0:e.nodeShadow,rx:EH.borderRadius,ry:EH.borderRadius,shadow:this.getShadow(),hoverCursor:this.isExpandable()?"pointer":"default"})}},{key:"prepareShapeObjects",value:function(){var e=pH(this.data.id,this.isExpandable(),this.opts.colors),t=function(e,t,n){return new BF.fabric.Text(e.join("\n"),{fontSize:EH.textFontSize,lineHeight:EH.textLineHeight,fontFamily:qF,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 BF.fabric.Group([],Object.assign({top:0,left:0},KF));var n=new BF.fabric.Text("Tables:",{fontSize:EH.textFontSize,lineHeight:EH.textLineHeight,fontFamily:qF,fill:t.getCommonColor("text-secondary"),hoverCursor:"pointer"}),i=n.getScaledWidth()+2,r=EH.width-2*EH.padding-i,o=new BF.fabric.Textbox(e.join("\n"),{left:i,width:r,fontSize:EH.textFontSize,lineHeight:EH.textLineHeight,fontFamily:qF,fill:t.getCommonColor("text-primary"),splitByGrapheme:!0,hoverCursor:"pointer"});return new BF.fabric.Group([n,o],Object.assign({top:0,left:0},KF))}(this.data.tables||[],this.opts.colors),i=function(e,t){if(!e)return new BF.fabric.Group([],Object.assign({top:0,left:0},KF));var n=new BF.fabric.Text("CTE:",{fontSize:EH.textFontSize,lineHeight:EH.textLineHeight,fontFamily:qF,fill:t.getCommonColor("text-secondary"),hoverCursor:"pointer"}),i=n.getScaledWidth()+2,r=EH.width-2*EH.padding-i,o=new BF.fabric.Textbox(e,{left:i,width:r,fontSize:EH.textFontSize,lineHeight:EH.textLineHeight,fontFamily:qF,fill:t.getCommonColor("text-primary"),splitByGrapheme:!0,hoverCursor:"pointer"});return new BF.fabric.Group([n,o],Object.assign({top:0,left:0},KF))}(this.data.cte||"",this.opts.colors);return[e,t,n,i]}},{key:"setShapeObjectsCoords",value:function(){var e=(0,ne.Z)(this.objects,4),t=e[0],n=e[1],i=e[2],r=e[3],o=EH.padding,a=EH.padding;t.set({left:0,top:4,width:(this.expanded?EH.expandedWidth:EH.width)-4}),n.set({left:a,top:o}),o+=n.getScaledHeight(),i.set({left:a,top:o+(0===i.size()?0:EH.textOffset)}),o+=i.getScaledHeight(),r.set({left:a,top:o+(0===r.size()?0:EH.textOffset)})}},{key:"createGroup",value:function(){var e=this.coords,t=e.top,n=e.left;return new BF.fabric.Group([this.body].concat((0,Ct.Z)(this.objects)),Object.assign({top:t,left:n},KF))}},{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=EH.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=fH(this.canvas,this.data.stats,(this.group.top||0)+this.body.getScaledHeight()+EH.padding,(this.group.left||0)+EH.padding,e),this.expandedNodeHeight=this.nodeHeight+this.stats.getScaledHeight()+2*EH.padding;var i=EH.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 NH(e,t,n,i,r){return function(e){var t=on().get(e,["data","data"]);return"connection"===(null===t||void 0===t?void 0:t.type)}(n)?new _H(e,t,n,i,r):function(e){var t=on().get(e,["data","data"]);return"result"===(null===t||void 0===t?void 0:t.type)}(n)?new LH(e,t,n,i,r):function(e){var t=on().get(e,["data","data"]);return"query"===(null===t||void 0===t?void 0:t.type)}(n)?new SH(e,t,n,i,r):function(e){var t=on().get(e,["data","data"]);return"materialize"===(null===t||void 0===t?void 0:t.type)}(n)?new bH(e,t,n,i,r):new DH(e,t,n,i,r)}var MH,TH,IH,OH,AH,RH=n(14717),PH=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"}(MH||(MH={})),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"}(TH||(TH={})),function(e){e[e.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",e[e.LineFeed=1]="LineFeed"}(IH||(IH={})),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"}(OH||(OH={})),function(e){e[e.Classic=1]="Classic",e[e.NodeJs=2]="NodeJs"}(AH||(AH={}));var ZH=function(){function e(e,t,n){this._onDidChange=new PH.Q5,this._onDidExtraLibsChange=new PH.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}(),FH=new ZH({allowNonTsExtensions:!0,target:OH.Latest},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{}),jH=new ZH({allowNonTsExtensions:!0,allowJs:!0,target:OH.Latest},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{});function HH(){return n.e(7548).then(n.bind(n,17548))}PH.Mj.typescript={ModuleKind:MH,JsxEmit:TH,NewLineKind:IH,ScriptTarget:OH,ModuleResolutionKind:AH,typescriptVersion:"4.2.4",typescriptDefaults:FH,javascriptDefaults:jH,getTypeScriptWorker:function(){return HH().then((function(e){return e.getTypeScriptWorker()}))},getJavaScriptWorker:function(){return HH().then((function(e){return e.getJavaScriptWorker()}))}},PH.Mj.onLanguage("typescript",(function(){return HH().then((function(e){return e.setupTypeScript(FH)}))})),PH.Mj.onLanguage("javascript",(function(){return HH().then((function(e){return e.setupJavaScript(jH)}))}));var BH=n(24116),zH=function(){function e(e,t,n){this._onDidChange=new BH.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}(),WH={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"}},VH={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},YH=new zH("css",WH,VH),UH=new zH("scss",WH,VH),KH=new zH("less",WH,VH);function qH(){return n.e(6060).then(n.bind(n,16060))}BH.Mj.css={cssDefaults:YH,lessDefaults:KH,scssDefaults:UH},BH.Mj.onLanguage("less",(function(){qH().then((function(e){return e.setupMode(KH)}))})),BH.Mj.onLanguage("scss",(function(){qH().then((function(e){return e.setupMode(UH)}))})),BH.Mj.onLanguage("css",(function(){qH().then((function(e){return e.setupMode(YH)}))}));var GH=n(3570),$H=function(){function e(e,t,n){this._onDidChange=new GH.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}(),QH=new $H("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});GH.Mj.json={jsonDefaults:QH},GH.Mj.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]}),GH.Mj.onLanguage("json",(function(){n.e(4952).then(n.bind(n,64952)).then((function(e){return e.setupMode(QH)}))}));var XH=n(38429),JH=function(){function e(e,t,n){this._onDidChange=new XH.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}(),eB={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"},tB={format:eB,suggest:{html5:!0}},nB={format:eB,suggest:{html5:!0,razor:!0}};function iB(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===rB,documentFormattingEdits:e===rB,documentRangeFormattingEdits:e===rB}}var rB="html",oB="handlebars",aB="razor",sB=new JH(rB,{format:eB,suggest:{html5:!0,angular1:!0,ionic:!0}},iB(rB)),uB=new JH(oB,tB,iB(oB)),lB=new JH(aB,nB,iB(aB));function cB(){return n.e(254).then(n.bind(n,80254))}XH.Mj.html={htmlDefaults:sB,razorDefaults:lB,handlebarDefaults:uB},XH.Mj.onLanguage(rB,(function(){cB().then((function(e){return e.setupMode(sB)}))})),XH.Mj.onLanguage(oB,(function(){cB().then((function(e){return e.setupMode(uB)}))})),XH.Mj.onLanguage(aB,(function(){cB().then((function(e){return e.setupMode(lB)}))}));var dB=n(37456),hB={},fB={},pB=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 fB[t]||(fB[t]=new e(t)),fB[t]},e.prototype.whenLoaded=function(){return this._lazyLoadPromise},e.prototype.load=function(){var e=this;return this._loadingTriggered||(this._loadingTriggered=!0,hB[this._languageId].loader().then((function(t){return e._lazyLoadPromiseResolve(t)}),(function(t){return e._lazyLoadPromiseReject(t)}))),this._lazyLoadPromise},e}();function gB(e){var t=e.id;hB[t]=e,dB.Mj.register(e);var n=pB.getOrCreate(t);dB.Mj.setMonarchTokensProvider(t,n.whenLoaded().then((function(e){return e.language}))),dB.Mj.onLanguage(t,(function(){n.load().then((function(e){dB.Mj.setLanguageConfiguration(t,e.conf)}))}))}gB({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:function(){return n.e(7953).then(n.bind(n,27953))}}),gB({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))}}),gB({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:function(){return n.e(805).then(n.bind(n,50805))}}),gB({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:function(){return n.e(371).then(n.bind(n,20371))}}),gB({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:function(){return n.e(9163).then(n.bind(n,89163))}}),gB({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:function(){return n.e(5784).then(n.bind(n,45784))}}),gB({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:function(){return n.e(3001).then(n.bind(n,23001))}}),gB({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))}}),gB({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:function(){return n.e(6559).then(n.bind(n,26559))}}),gB({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:function(){return n.e(6559).then(n.bind(n,26559))}}),gB({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:function(){return n.e(6266).then(n.bind(n,66266))}}),gB({id:"csp",extensions:[],aliases:["CSP","csp"],loader:function(){return n.e(7664).then(n.bind(n,27664))}}),gB({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:function(){return n.e(245).then(n.bind(n,90245))}}),gB({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))}}),gB({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:function(){return n.e(3258).then(n.bind(n,43258))}}),gB({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:function(){return n.e(5444).then(n.bind(n,95444))}}),gB({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:function(){return n.e(7168).then(n.bind(n,77168))}}),gB({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:function(){return n.e(7661).then(n.bind(n,77661))}}),gB({id:"go",extensions:[".go"],aliases:["Go"],loader:function(){return n.e(2799).then(n.bind(n,12799))}}),gB({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:function(){return n.e(5748).then(n.bind(n,95748))}}),gB({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))}}),gB({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:function(){return n.e(6892).then(n.bind(n,66892))}}),gB({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))}}),gB({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))}}),gB({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))}}),gB({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))}}),gB({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:function(){return n.e(3254).then(n.bind(n,93254))}}),gB({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))}}),gB({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:function(){return n.e(2291).then(n.bind(n,22291))}}),gB({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:function(){return n.e(7478).then(n.bind(n,37478))}}),gB({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:function(){return n.e(4731).then(n.bind(n,84731))}}),gB({id:"liquid",extensions:[".liquid",".liquid.html",".liquid.css"],loader:function(){return n.e(983).then(n.bind(n,80983))}}),gB({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:function(){return n.e(8335).then(n.bind(n,28335))}}),gB({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))}}),gB({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))}}),gB({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:function(){return n.e(1234).then(n.bind(n,31234))}}),gB({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:function(){return n.e(8590).then(n.bind(n,18590))}}),gB({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:function(){return n.e(5695).then(n.bind(n,25695))}}),gB({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))}}),gB({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:function(){return n.e(8005).then(n.bind(n,58005))}}),gB({id:"perl",extensions:[".pl"],aliases:["Perl","pl"],loader:function(){return n.e(2119).then(n.bind(n,72119))}}),gB({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:function(){return n.e(8520).then(n.bind(n,18520))}}),gB({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))}}),gB({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:function(){return n.e(5885).then(n.bind(n,65885))}}),gB({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:function(){return n.e(9011).then(n.bind(n,69011))}}),gB({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:function(){return n.e(7768).then(n.bind(n,37768))}}),gB({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:function(){return n.e(1115).then(n.bind(n,1115))}}),gB({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))}}),gB({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:function(){return n.e(2081).then(n.bind(n,62081))}}),gB({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:function(){return n.e(3191).then(n.bind(n,13191))}}),gB({id:"redis",extensions:[".redis"],aliases:["redis"],loader:function(){return n.e(2507).then(n.bind(n,2507))}}),gB({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:function(){return n.e(5646).then(n.bind(n,95646))}}),gB({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:function(){return n.e(842).then(n.bind(n,60842))}}),gB({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))}}),gB({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:function(){return n.e(9292).then(n.bind(n,89292))}}),gB({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:function(){return n.e(939).then(n.bind(n,50325))}}),gB({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))}}),gB({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:function(){return n.e(9005).then(n.bind(n,29005))}}),gB({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))}}),gB({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:function(){return n.e(1474).then(n.bind(n,51474))}}),gB({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:function(){return n.e(2174).then(n.bind(n,82174))}}),gB({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:function(){return n.e(248).then(n.bind(n,248))}}),gB({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:function(){return n.e(5012).then(n.bind(n,5012))}}),gB({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib"],aliases:["StructuredText","scl","stl"],loader:function(){return n.e(5210).then(n.bind(n,75210))}}),gB({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:function(){return n.e(4712).then(n.bind(n,94712))}}),gB({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:function(){return n.e(1522).then(n.bind(n,81522))}}),gB({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:function(){return n.e(1522).then(n.bind(n,81522))}}),gB({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:function(){return n.e(3451).then(n.bind(n,73451))}}),gB({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:function(){return n.e(2862).then(n.bind(n,12862))}}),gB({id:"typescript",extensions:[".ts",".tsx"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:function(){return n.e(698).then(n.bind(n,90698))}}),gB({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:function(){return n.e(758).then(n.bind(n,30758))}}),gB({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))}}),gB({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 vB=n(8518),mB=n(95079),_B=(n(20224),n(59180),n(33399)),yB=n(56345),bB=n(21204),wB=n(74964),CB=n(38792),kB=n(18948),SB=n(49396),xB=n(10939),LB=n(8729),EB=function(){function e(){var t,n,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if((0,X.Z)(this,e),this.value=i,"string"!==typeof this.value)throw(0,LB.b1)("value");"boolean"===typeof r?(this.isTrusted=r,this.supportThemeIcons=!1):(this.isTrusted=null!==(t=r.isTrusted)&&void 0!==t?t:void 0,this.supportThemeIcons=null!==(n=r.supportThemeIcons)&&void 0!==n&&n)}return(0,J.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,xB.Qo)(e):e,t.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")).replace(/([ \t]+)/g,(function(e,t){return" ".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 DB(e){return NB(e)?!e.value:!Array.isArray(e)||e.every(DB)}function NB(e){return e instanceof EB||!(!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 MB(e,t){return e===t||!(!e||!t)&&(e.value===t.value&&e.isTrusted===t.isTrusted&&e.supportThemeIcons===t.supportThemeIcons)}function TB(e){return e?e.replace(/\\([\\`*_{}[\]()#+\-.!])/g,"$1"):e}var IB=n(52180),OB=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},AB=function(e,t){return function(n,i){t(n,i,e)}},RB=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},PB=new kB.uy("selectionAnchorSet",!1),ZB=function(){function e(t,n){var i=this;(0,X.Z)(this,e),this.editor=t,this.selectionAnchorSetContextKey=PB.bindTo(n),this.modelChangeListener=t.onDidChangeModel((function(){return i.selectionAnchorSetContextKey.reset()}))}return(0,J.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:wB.Y.fromPositions(e,e),options:{stickiness:1,hoverMessage:(new EB).appendText((0,yB.N)("selectionAnchor","Selection Anchor")),className:"selection-anchor"}}]);this.decorationId=n[0],this.selectionAnchorSetContextKey.set(!!this.decorationId),(0,IB.Z9)((0,yB.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(wB.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}();ZB.ID="editor.contrib.selectionAnchorController",ZB=OB([AB(1,kB.i6)],ZB);var FB=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.setSelectionAnchor",label:(0,yB.N)("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2080),weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){return RB(this,void 0,void 0,fn().mark((function e(){return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:ZB.get(t).setSelectionAnchor();case 2:case"end":return e.stop()}}),e)})))}}]),n}(_B.R6),jB=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.goToSelectionAnchor",label:(0,yB.N)("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:PB})}return(0,J.Z)(n,[{key:"run",value:function(e,t){return RB(this,void 0,void 0,fn().mark((function e(){return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:ZB.get(t).goToSelectionAnchor();case 2:case"end":return e.stop()}}),e)})))}}]),n}(_B.R6),HB=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.selectFromAnchorToCursor",label:(0,yB.N)("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:PB,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2089),weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){return RB(this,void 0,void 0,fn().mark((function e(){return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:ZB.get(t).selectFromAnchorToCursor();case 2:case"end":return e.stop()}}),e)})))}}]),n}(_B.R6),BB=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.cancelSelectionAnchor",label:(0,yB.N)("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:PB,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:9,weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){return RB(this,void 0,void 0,fn().mark((function e(){return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:ZB.get(t).cancelSelectionAnchor();case 2:case"end":return e.stop()}}),e)})))}}]),n}(_B.R6);(0,_B._K)(ZB.ID,ZB),(0,_B.Qr)(FB),(0,_B.Qr)(jB),(0,_B.Qr)(HB),(0,_B.Qr)(BB);var zB=n(27997),WB=n(81626),VB=n(67297),YB=n(67033),UB=n(46502),KB=n(28893),qB=n(80449),GB=n(92992),$B=n(70182),QB=n(31585),XB=(0,GB.P6)("editorOverviewRuler.bracketMatchForeground",{dark:"#A0A0A0",light:"#A0A0A0",hc:"#A0A0A0"},yB.N("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets.")),JB=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.jumpToBracket",label:yB.N("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:3160,weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=nz.get(t);n&&n.jumpToBracket()}}]),n}(_B.R6),ez=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.selectToBracket",label:yB.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,J.Z)(n,[{key:"run",value:function(e,t,n){var i=nz.get(t);if(i){var r=!0;n&&!1===n.selectBrackets&&(r=!1),i.selectToBracket(r)}}}]),n}(_B.R6),tz=(0,J.Z)((function e(t,n,i){(0,X.Z)(this,e),this.position=t,this.brackets=n,this.options=i})),nz=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this))._editor=e,i._lastBracketsData=[],i._lastVersionId=0,i._decorations=[],i._updateBracketsSoon=i._register(new zB.pY((function(){return i._updateBrackets()}),50)),i._matchBrackets=i._editor.getOption(60),i._updateBracketsSoon.schedule(),i._register(e.onDidChangeCursorPosition((function(e){"never"!==i._matchBrackets&&i._updateBracketsSoon.schedule()}))),i._register(e.onDidChangeModelContent((function(e){i._updateBracketsSoon.schedule()}))),i._register(e.onDidChangeModel((function(e){i._lastBracketsData=[],i._decorations=[],i._updateBracketsSoon.schedule()}))),i._register(e.onDidChangeModelLanguageConfiguration((function(e){i._lastBracketsData=[],i._updateBracketsSoon.schedule()}))),i._register(e.onDidChangeConfiguration((function(e){e.hasChanged(60)&&(i._matchBrackets=i._editor.getOption(60),i._decorations=i._editor.deltaDecorations(i._decorations,[]),i._lastBracketsData=[],i._lastVersionId=0,i._updateBracketsSoon.schedule())}))),i}return(0,J.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 wB.Y(r.lineNumber,r.column,r.lineNumber,r.column):new wB.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(YB.e.compareRangesUsingStarts);var l=o,c=(0,ne.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 wB.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,Na.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(VB.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 tz(v,m,_)}}this._lastBracketsData=c,this._lastVersionId=i}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(WB.JT);nz.ID="editor.contrib.bracketMatchingController",nz._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=KB.qx.register({stickiness:1,className:"bracket-match",overviewRuler:{color:(0,$B.EN)(XB),position:UB.sh.Center}}),nz._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=KB.qx.register({stickiness:1,className:"bracket-match"}),(0,_B._K)(nz.ID,nz),(0,_B.Qr)(ez),(0,_B.Qr)(JB),(0,$B.Ic)((function(e,t){var n=e.getColor(qB.TC);n&&t.addRule(".monaco-editor .bracket-match { background-color: ".concat(n,"; }"));var i=e.getColor(qB.Dl);i&&t.addRule(".monaco-editor .bracket-match { border: 1px solid ".concat(i,"; }"))})),QB.BH.appendMenuItem(QB.eH.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:yB.N({key:"miGoToBracket",comment:["&& denotes a mnemonic"]},"Go to &&Bracket")},order:2});var iz=function(){function e(t,n){(0,X.Z)(this,e),this._selection=t,this._isMovingLeft=n}return(0,J.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 YB.e(n,i-1,n,i),a=e.getValueInRange(o);t.addEditOperation(o,null),t.addEditOperation(new YB.e(n,r,n,r),a)}else{var s=new YB.e(n,r,n,r+1),u=e.getValueInRange(s);t.addEditOperation(s,null),t.addEditOperation(new YB.e(n,i,n,i),u)}}}},{key:"computeCursorState",value:function(e,t){return this._isMovingLeft?new wB.Y(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new wB.Y(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}]),e}(),rz=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this,i)).left=e,r}return(0,J.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n,i=[],r=t.getSelections(),o=(0,Na.Z)(r);try{for(o.s();!(n=o.n()).done;){var a=n.value;i.push(new iz(a,this.left))}}catch(s){o.e(s)}finally{o.f()}t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}}]),n}(_B.R6),oz=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!0,{id:"editor.action.moveCarretLeftAction",label:yB.N("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:bB.u.writable})}return(0,J.Z)(n)}(rz),az=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!1,{id:"editor.action.moveCarretRightAction",label:yB.N("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:bB.u.writable})}return(0,J.Z)(n)}(rz);(0,_B.Qr)(oz),(0,_B.Qr)(az);var sz=n(97033),uz=n(15432),lz=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.transposeLetters",label:yB.N("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.textInputFocus,primary:0,mac:{primary:306},weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n,i=t.getModel(),r=[],o=t.getSelections(),a=(0,Na.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():uz.o.rightPosition(i,s.getPosition().lineNumber,s.getPosition().column),h=uz.o.leftPosition(i,d.lineNumber,d.column),f=uz.o.leftPosition(i,h.lineNumber,h.column),p=i.getValueInRange(YB.e.fromPositions(f,h)),g=i.getValueInRange(YB.e.fromPositions(h,d)),v=YB.e.fromPositions(f,d);r.push(new sz.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}(_B.R6);(0,_B.Qr)(lz);var cz=n(84539),dz=n(30487),hz=n(83106),fz=n(8295),pz=n(38794),gz=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},vz="9_cutcopypaste",mz=dz.tY||document.queryCommandSupported("cut"),_z=dz.tY||document.queryCommandSupported("copy"),yz="undefined"!==typeof navigator.clipboard&&!cz.vU||document.queryCommandSupported("paste");function bz(e){return e.register(),e}var wz=mz?bz(new _B.AJ({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:dz.tY?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:QB.eH.MenubarEditMenu,group:"2_ccp",title:yB.N({key:"miCut",comment:["&& denotes a mnemonic"]},"Cu&&t"),order:1},{menuId:QB.eH.EditorContext,group:vz,title:yB.N("actions.clipboard.cutLabel","Cut"),when:bB.u.writable,order:1},{menuId:QB.eH.CommandPalette,group:"",title:yB.N("actions.clipboard.cutLabel","Cut"),order:1}]})):void 0,Cz=_z?bz(new _B.AJ({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:dz.tY?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:QB.eH.MenubarEditMenu,group:"2_ccp",title:yB.N({key:"miCopy",comment:["&& denotes a mnemonic"]},"&&Copy"),order:2},{menuId:QB.eH.EditorContext,group:vz,title:yB.N("actions.clipboard.copyLabel","Copy"),order:2},{menuId:QB.eH.CommandPalette,group:"",title:yB.N("actions.clipboard.copyLabel","Copy"),order:1}]})):void 0;QB.BH.appendMenuItem(QB.eH.MenubarEditMenu,{submenu:QB.eH.MenubarCopy,title:{value:yB.N("copy as","Copy As"),original:"Copy As"},group:"2_ccp",order:3}),QB.BH.appendMenuItem(QB.eH.EditorContext,{submenu:QB.eH.EditorContextCopy,title:{value:yB.N("copy as","Copy As"),original:"Copy As"},group:vz,order:3});var kz=yz?bz(new _B.AJ({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:dz.tY?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:QB.eH.MenubarEditMenu,group:"2_ccp",title:yB.N({key:"miPaste",comment:["&& denotes a mnemonic"]},"&&Paste"),order:4},{menuId:QB.eH.EditorContext,group:vz,title:yB.N("actions.clipboard.pasteLabel","Paste"),when:bB.u.writable,order:4},{menuId:QB.eH.CommandPalette,group:"",title:yB.N("actions.clipboard.pasteLabel","Paste"),order:1}]})):void 0,Sz=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:yB.N("actions.clipboard.copyWithSyntaxHighlightingLabel","Copy With Syntax Highlighting"),alias:"Copy With Syntax Highlighting",precondition:void 0,kbOpts:{kbExpr:bB.u.textInputFocus,primary:0,weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){t.hasModel()&&(!t.getOption(30)&&t.getSelection().isEmpty()||(hz.RA.forceCopyWithSyntaxHighlighting=!0,t.focus(),document.execCommand("copy"),hz.RA.forceCopyWithSyntaxHighlighting=!1))}}]),n}(_B.R6);function xz(e,t){e&&(e.addImplementation(1e4,"code-editor",(function(e,n){var i=e.get(fz.$).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})))}xz(wz,"cut"),xz(Cz,"copy"),kz&&(kz.addImplementation(1e4,"code-editor",(function(e,t){var n=e.get(fz.$),i=e.get(pz.p),r=n.getFocusedCodeEditor();return!(!r||!r.hasTextFocus())&&(!(!document.execCommand("paste")&&dz.$L)||(gz(void 0,void 0,void 0,fn().mark((function e(){var t,n,o,a,s;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.readText();case 2:""!==(t=e.sent)&&(n=hz.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))})),kz.addImplementation(0,"generic-dom",(function(e,t){return document.execCommand("paste"),!0}))),_z&&(0,_B.Qr)(Sz);var Lz=n(66526),Ez=function(){function e(t){(0,X.Z)(this,e),this.executor=t,this._didRun=!1}return(0,J.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}(),Dz=n(51747),Nz=n(49803),Mz=n(67775),Tz=n(47908),Iz=n(99404),Oz=n(49076),Az=function(){function e(t){(0,X.Z)(this,e),this.value=t}return(0,J.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 Rz(e,t){var n=t.kind?new Az(t.kind):void 0;return!!(!e.include||n&&e.include.contains(n))&&(!(e.excludes&&n&&e.excludes.some((function(t){return Pz(n,t,e.include)})))&&(!(!e.includeSourceActions&&n&&Az.Source.contains(n))&&!(e.onlyIncludePreferredActions&&!t.isPreferred)))}function Pz(e,t,n){return!!t.contains(e)&&(!n||!t.contains(n))}Az.sep=".",Az.None=new Az("@@none@@"),Az.Empty=new Az(""),Az.QuickFix=new Az("quickfix"),Az.Refactor=new Az("refactor"),Az.Source=new Az("source"),Az.SourceOrganizeImports=Az.Source.append("organizeImports"),Az.SourceFixAll=Az.Source.append("fixAll");var Zz=function(){function e(t,n,i){(0,X.Z)(this,e),this.kind=t,this.apply=n,this.preferred=i}return(0,J.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 Az(e.kind):t}},{key:"getPreferredUser",value:function(e){return"boolean"===typeof e.preferred&&e.preferred}}]),e}(),Fz=n(18085),jz=n(72611),Hz=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},Bz="editor.action.codeAction",zz="editor.action.refactor",Wz="editor.action.sourceAction",Vz="editor.action.organizeImports",Yz="editor.action.fixAll",Uz=function(){function e(t,n){(0,X.Z)(this,e),this.action=t,this.provider=n}return(0,J.Z)(e,[{key:"resolve",value:function(e){var t;return Hz(this,void 0,void 0,fn().mark((function n(){var i;return fn().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,LB.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}(),Kz=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o;return(0,X.Z)(this,n),(o=t.call(this)).documentation=i,o._register(r),o.allActions=(0,Ct.Z)(e).sort(n.codeActionsComparator),o.validActions=o.allActions.filter((function(e){return!e.action.disabled})),o}return(0,J.Z)(n,[{key:"hasAutoFix",get:function(){return this.validActions.some((function(e){var t=e.action;return!!t.kind&&Az.QuickFix.contains(new Az(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,SB.Of)(n.diagnostics)?(0,SB.Of)(i.diagnostics)?n.diagnostics[0].message.localeCompare(i.diagnostics[0].message):-1:(0,SB.Of)(i.diagnostics)?1:0}}]),n}(WB.JT),qz={actions:[],documentation:void 0};function Gz(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 Tz.YQ(e,r),c=function(e,t){return Iz.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 Pz(t,n,e.include)})))&&!(!e.includeSourceActions&&Az.Source.contains(t))}(t,new Az(e))}))}))}(e,s),d=new WB.SL,h=c.map((function(n){return Hz(a,void 0,void 0,fn().mark((function r(){var o,a,c;return fn().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",qz);case 8:return a=((null===o||void 0===o?void 0:o.actions)||[]).filter((function(e){return e&&Rz(s,e)})),c=$z(n,a,s.include),r.abrupt("return",{actions:a.map((function(e){return new Uz(e,n)})),documentation:c});case 13:if(r.prev=13,r.t0=r.catch(0),!(0,LB.VV)(r.t0)){r.next=17;break}throw r.t0;case 17:return(0,LB.Cp)(r.t0),r.abrupt("return",qz);case 19:case"end":return r.stop()}}),r,null,[[0,13]])})))})),f=Iz.H9.onDidChange((function(){var t=Iz.H9.all(e);(0,SB.fS)(t,c)||l.cancel()}));return Promise.all(h).then((function(e){var t=(0,SB.xH)(e.map((function(e){return e.actions}))),n=(0,SB.kX)(e.map((function(e){return e.documentation})));return new Kz(t,n,d)})).finally((function(){f.dispose(),l.dispose()}))}function $z(e,t,n){if(e.documentation){var i=e.documentation.map((function(e){return{kind:new Az(e.kind),command:e.command}}));if(n){var r,o,a=(0,Na.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,Na.Z)(t);try{for(l.s();!(u=l.n()).done;){var c=u.value;if(c.kind){var d,h=(0,Na.Z)(i);try{for(h.s();!(d=h.n()).done;){var f=d.value;if(f.kind.contains(new Az(c.kind)))return f.command}}catch(p){h.e(p)}finally{h.f()}}}}catch(p){l.e(p)}finally{l.f()}}}jz.P.registerCommand("_executeCodeActionProvider",(function(e,t,n,i,r){return Hz(this,void 0,void 0,fn().mark((function o(){var a,s,u,l,c,d,h;return fn().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(t instanceof Mz.o){o.next=2;break}throw(0,LB.b1)();case 2:if(a=e.get(Oz.q).getModel(t)){o.next=5;break}throw(0,LB.b1)();case 5:if(s=wB.Y.isISelection(n)?wB.Y.liftSelection(n):YB.e.isIRange(n)?a.validateRange(n):void 0){o.next=8;break}throw(0,LB.b1)();case 8:return u="string"===typeof i?new Az(i):void 0,o.next=11,Gz(a,s,{type:1,filter:{includeSourceActions:!0,include:u}},Fz.E.None,Lz.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(Lz.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 Qz=n(11752),Xz=n(61120),Jz=n(7644),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},tW=function(e,t){return function(n,i){t(n,i,e)}},nW=function(){function e(t,n){var i=this;(0,X.Z)(this,e),this._messageWidget=new WB.XK,this._messageListeners=new WB.SL,this._editor=t,this._visible=e.MESSAGE_VISIBLE.bindTo(n),this._editorListener=this._editor.onDidAttemptReadOnlyEdit((function(){return i._onDidAttemptReadOnlyEdit()}))}return(0,J.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,IB.Z9)(e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._messageWidget.value=new rW(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 zB._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 YB.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(rW.fadeOut(this._messageWidget.value))}},{key:"_onDidAttemptReadOnlyEdit",value:function(){this._editor.hasModel()&&this.showMessage(yB.N("editor.readonly","Cannot edit in read-only editor"),this._editor.getPosition())}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();nW.ID="editor.contrib.messageController",nW.MESSAGE_VISIBLE=new kB.uy("messageVisible",!1,yB.N("messageVisible","Whether the editor is currently showing an inline message")),nW=eW([tW(1,kB.i6)],nW);var iW=_B._l.bindToContribution(nW.get);(0,_B.fK)(new iW({id:"leaveEditorMessage",precondition:nW.MESSAGE_VISIBLE,handler:function(e){return e.closeMessage()},kbOpts:{weight:130,primary:9}}));var rW=function(){function e(t,n,i){var r=n.lineNumber,o=n.column;(0,X.Z)(this,e),this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=t,this._editor.revealLinesInCenterIfOutsideViewport(r,r,0),this._position={lineNumber:r,column:o-1},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage");var a=document.createElement("div");a.classList.add("anchor","top"),this._domNode.appendChild(a);var s=document.createElement("div");s.classList.add("message"),s.textContent=i,this._domNode.appendChild(s);var u=document.createElement("div");u.classList.add("anchor","below"),this._domNode.appendChild(u),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}return(0,J.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,_B._K)(nW.ID,nW),(0,$B.Ic)((function(e,t){var n=e.getColor(GB.EP);if(n){var i=e.type===Jz.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(GB._l);r&&t.addRule(".monaco-editor .monaco-editor-overlaymessage .message { background-color: ".concat(r,"; }"));var o=e.getColor(GB.YI);o&&t.addRule(".monaco-editor .monaco-editor-overlaymessage .message { color: ".concat(o,"; }"))}));var oW=n(84596),aW=n(84540),sW=n(29077),uW=n(98989),lW=n(97963),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=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},fW=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this,e.command?e.command.id:e.title,e.title.replace(/\r\n|\r|\n/g," "),void 0,!e.disabled,i)).action=e,r}return(0,J.Z)(n)}(sW.aU);var pW=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a;return(0,X.Z)(this,n),(a=t.call(this))._editor=e,a._delegate=i,a._contextMenuService=r,a._visible=!1,a._showingActions=a._register(new WB.XK),a._keybindingResolver=new gW({getKeybindings:function(){return o.getKeybindings()}}),a}return(0,J.Z)(n,[{key:"isVisible",get:function(){return this._visible}},{key:"show",value:function(e,t,n,i){return hW(this,void 0,void 0,fn().mark((function r(){var o,a,s,u,l,c=this;return fn().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,LB.F0)();case 7:this._visible=!0,this._showingActions.value=t,a=this.getMenuActions(e,o,t.documentation),s=VB.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 fW?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 fW(e.action,(function(){return o._delegate.onSelectCodeAction(e)}))},s=t.map(a),u=(0,Ct.Z)(n),l=this._editor.getModel();if(l&&s.length){var c,d=(0,Na.Z)(Iz.H9.all(l));try{for(d.s();!(c=d.n()).done;){var h=c.value;h._getAdditionalMenuItems&&u.push.apply(u,(0,Ct.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 sW.Z0].concat((0,Ct.Z)(u.map((function(e){return a(new Uz({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,aW.getDomNodePagePosition)(this._editor.getDomNode());return{x:n.left+t.left,y:n.top+t.top+t.height}}}]),n}(WB.JT);pW=cW([dW(2,uW.i),dW(3,lW.d)],pW);var gW=function(){function e(t){(0,X.Z)(this,e),this._keybindingProvider=t}return(0,J.Z)(e,[{key:"getResolver",value:function(){var t=this,n=new Ez((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===Vz?t={kind:Az.SourceOrganizeImports.value}:e.command===Yz&&(t={kind:Az.SourceFixAll.value}),Object.assign({resolvedKeybinding:e.resolvedKeybinding},Zz.fromUser(t,{kind:Az.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 Az(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}();gW.codeActionCommands=[zz,Bz,Wz,Vz,Yz];var vW,mW=n(78101),_W=n(11732),yW=n(25044),bW=n(4354),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)}};!function(e){e.Hidden={type:0};var t=(0,J.Z)((function e(t,n,i,r){(0,X.Z)(this,e),this.actions=t,this.trigger=n,this.editorPosition=i,this.widgetPosition=r,this.type=1}));e.Showing=t}(vW||(vW={}));var kW=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a;return(0,X.Z)(this,n),(a=t.call(this))._editor=e,a._quickFixActionId=i,a._preferredFixActionId=r,a._keybindingService=o,a._onClick=a._register(new _W.Q5),a.onClick=a._onClick.event,a._state=vW.Hidden,a._domNode=document.createElement("div"),a._domNode.className=bW.lA.lightBulb.classNames,a._editor.addContentWidget((0,Br.Z)(a)),a._register(a._editor.onDidChangeModelContent((function(e){var t=a._editor.getModel();(1!==a.state.type||!t||a.state.editorPosition.lineNumber>=t.getLineCount())&&a.hide()}))),yW.o.ignoreTarget(a._domNode),a._register(aW.addStandardDisposableGenericMouseDownListner(a._domNode,(function(e){if(1===a.state.type){a._editor.focus(),e.preventDefault();var t=aW.getDomNodePagePosition(a._domNode),n=t.top,i=t.height,r=a._editor.getOption(55),o=Math.floor(r/3);null!==a.state.widgetPosition.position&&a.state.widgetPosition.position.lineNumber<a.state.editorPosition.lineNumber&&(o+=r),a._onClick.fire({x:e.posx,y:n+i+o,actions:a.state.actions,trigger:a.state.trigger})}}))),a._register(aW.addDisposableListener(a._domNode,"mouseenter",(function(e){if(1===(1&e.buttons)){a.hide();var t=new mW.Z;t.startMonitoring(e.target,e.buttons,mW.e,(function(){}),(function(){t.dispose()}))}}))),a._register(a._editor.onDidChangeConfiguration((function(e){e.hasChanged(53)&&!a._editor.getOption(53).enabled&&a.hide()}))),a._updateLightBulbTitleAndIcon(),a._register(a._keybindingService.onDidUpdateKeybindings(a._updateLightBulbTitleAndIcon,(0,Br.Z)(a))),a}return(0,J.Z)(n,[{key:"dispose",value:function(){(0,Qz.Z)((0,Xz.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=KB.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 vW.Showing(e,t,i,{position:{lineNumber:g,column:1},preference:n._posPref}),this._editor.layoutContentWidget(this)}},{key:"hide",value:function(){this.state=vW.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,Ct.Z)(bW.lA.lightBulb.classNamesArray)),(i=this._domNode.classList).add.apply(i,(0,Ct.Z)(bW.lA.lightbulbAutofix.classNamesArray));var r=this._keybindingService.lookupKeybinding(this._preferredFixActionId);if(r)return void(this.title=yB.N("prefferedQuickFixWithKb","Show Fixes. Preferred Fix Available ({0})",r.getLabel()))}(e=this._domNode.classList).remove.apply(e,(0,Ct.Z)(bW.lA.lightbulbAutofix.classNamesArray)),(t=this._domNode.classList).add.apply(t,(0,Ct.Z)(bW.lA.lightBulb.classNamesArray));var o=this._keybindingService.lookupKeybinding(this._quickFixActionId);this.title=o?yB.N("quickFixWithKb","Show Fixes ({0})",o.getLabel()):yB.N("quickFix","Show Fixes")}},{key:"title",set:function(e){this._domNode.title=e}}]),n}(WB.JT);kW._posPref=[0],kW=wW([CW(3,lW.d)],kW),(0,$B.Ic)((function(e,t){var n,i=null===(n=e.getColor(GB.cv))||void 0===n?void 0:n.transparent(.7),r=e.getColor(GB.Fu);r&&t.addRule("\n\t\t.monaco-editor .contentWidgets ".concat(bW.lA.lightBulb.cssSelector," {\n\t\t\tcolor: ").concat(r,";\n\t\t\tbackground-color: ").concat(i,";\n\t\t}"));var o=e.getColor(GB.sK);o&&t.addRule("\n\t\t.monaco-editor .contentWidgets ".concat(bW.lA.lightbulbAutofix.cssSelector," {\n\t\t\tcolor: ").concat(o,";\n\t\t\tbackground-color: ").concat(i,";\n\t\t}"))}));var SW,xW=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},LW=function(e,t){return function(n,i){t(n,i,e)}},EW=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},DW=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},NW=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)},MW=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o,a){var s;return(0,X.Z)(this,n),(s=t.call(this))._editor=e,s.delegate=o,s._activeCodeActions=s._register(new WB.XK),SW.set((0,Br.Z)(s),!1),s._codeActionWidget=new Ez((function(){return s._register(a.createInstance(pW,s._editor,{onSelectCodeAction:function(e){return EW((0,Br.Z)(s),void 0,void 0,fn().mark((function t(){return fn().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)})))}}))})),s._lightBulbWidget=new Ez((function(){var e=s._register(a.createInstance(kW,s._editor,i,r));return s._register(e.onClick((function(e){return s.showCodeActionList(e.trigger,e.actions,e,{includeDisabledActions:!1})}))),e})),s}return(0,J.Z)(n,[{key:"dispose",value:function(){DW(this,SW,!0,"f"),(0,Qz.Z)((0,Xz.Z)(n.prototype),"dispose",this).call(this)}},{key:"update",value:function(e){var t,n,i;return EW(this,void 0,void 0,fn().mark((function r(){var o,a,s,u;return fn().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,LB.dL)(r.t0),r.abrupt("return");case 13:if(!NW(this,SW,"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 nW.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 nW.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 EW(this,void 0,void 0,fn().mark((function r(){return fn().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}(WB.JT);SW=new WeakMap,MW=xW([LW(4,oW.TG)],MW);var TW,IW,OW=n(95123),AW=n(71574),RW=n(45014),PW=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)},FW=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},jW=new kB.uy("supportedCodeAction",""),HW=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:250;return(0,X.Z)(this,n),(o=t.call(this))._editor=e,o._markerService=i,o._signalChange=r,o._delay=a,o._autoTriggerTimer=o._register(new zB._F),o._register(o._markerService.onMarkerChanged((function(e){return o._onMarkerChanges(e)}))),o._register(o._editor.onDidChangeCursorPosition((function(){return o._onCursorChange()}))),o}return(0,J.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,PW.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,Na.Z)(this._markerService.read({resource:t.uri}));try{for(i.s();!(n=i.n()).done;){var r=n.value,o=t.validateRange(r);if(YB.e.intersectRanges(o,e))return YB.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}(WB.JT);!function(e){e.Empty={type:0};var t=function(){function e(t,n,i,r){(0,X.Z)(this,e),this.trigger=t,this.rangeOrSelection=n,this.position=i,this._cancellablePromise=r,this.type=1,this.actions=r.catch((function(e){if((0,LB.VV)(e))return BW;throw e}))}return(0,J.Z)(e,[{key:"cancel",value:function(){this._cancellablePromise.cancel()}}]),e}();e.Triggered=t}(IW||(IW={}));var BW={allActions:[],validActions:[],dispose:function(){},documentation:[],hasAutoFix:!1},zW=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a;return(0,X.Z)(this,n),(a=t.call(this))._editor=e,a._markerService=i,a._progressService=o,a._codeActionOracle=a._register(new WB.XK),a._state=IW.Empty,a._onDidChangeState=a._register(new _W.Q5),a.onDidChangeState=a._onDidChangeState.event,TW.set((0,Br.Z)(a),!1),a._supportedCodeActions=jW.bindTo(r),a._register(a._editor.onDidChangeModel((function(){return a._update()}))),a._register(a._editor.onDidChangeModelLanguage((function(){return a._update()}))),a._register(Iz.H9.onDidChange((function(){return a._update()}))),a._update(),a}return(0,J.Z)(n,[{key:"dispose",value:function(){ZW(this,TW,"f")||(FW(this,TW,!0,"f"),(0,Qz.Z)((0,Xz.Z)(n.prototype),"dispose",this).call(this),this.setState(IW.Empty,!0))}},{key:"_update",value:function(){var e=this;if(!ZW(this,TW,"f")){this._codeActionOracle.value=void 0,this.setState(IW.Empty);var t=this._editor.getModel();if(t&&Iz.H9.has(t)&&!this._editor.getOption(77)){var n,i=[],r=(0,Na.Z)(Iz.H9.all(t));try{for(r.s();!(n=r.n()).done;){var o=n.value;Array.isArray(o.providedCodeActionKinds)&&i.push.apply(i,(0,Ct.Z)(o.providedCodeActionKinds))}}catch(a){r.e(a)}finally{r.f()}this._supportedCodeActions.set(i.join(" ")),this._codeActionOracle.value=new HW(this._editor,this._markerService,(function(n){var i;if(n){var r=(0,zB.PG)((function(e){return Gz(t,n.selection,n.trigger,Fz.E.None,e)}));1===n.trigger.type&&(null===(i=e._progressService)||void 0===i||i.showWhile(r,250)),e.setState(new IW.Triggered(n.trigger,n.selection,n.position,r))}else e.setState(IW.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,TW,"f")||this._onDidChangeState.fire(e))}}]),n}(WB.JT);TW=new WeakMap;var 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},VW=function(e,t){return function(n,i){t(n,i,e)}},YW=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function UW(e){return kB.Ao.regex(jW.keys()[0],new RegExp("(\\s|^)"+(0,Dz.ec)(e.value)+"\\b"))}var KW={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:yB.N("args.schema.kind","Kind of the code action to run.")},apply:{type:"string",description:yB.N("args.schema.apply","Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[yB.N("args.schema.apply.first","Always apply the first returned code action."),yB.N("args.schema.apply.ifSingle","Apply the first returned code action if it is the only one."),yB.N("args.schema.apply.never","Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:yB.N("args.schema.preferred","Controls if only preferred code actions should be returned.")}}},qW=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o,a){var s;return(0,X.Z)(this,n),(s=t.call(this))._instantiationService=a,s._editor=e,s._model=s._register(new zW(s._editor,i,r,o)),s._register(s._model.onDidChangeState((function(e){return s.update(e)}))),s._ui=new Ez((function(){return s._register(new MW(e,XW.Id,rV.Id,{applyCodeAction:function(e,t){return YW((0,Br.Z)(s),void 0,void 0,fn().mark((function n(){return fn().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]])})))}},s._instantiationService))})),s}return(0,J.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()){nW.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(GW,e,this._editor)}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(WB.JT);function GW(e,t,n){return YW(this,void 0,void 0,fn().mark((function i(){var r,o,a,s,u;return fn().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return r=e.get(Nz.vu),o=e.get(jz.H),a=e.get(RW.b),s=e.get(AW.lT),a.publicLog2("codeAction.applyCodeAction",{codeActionTitle:t.action.title,codeActionKind:t.action.kind,codeActionIsPreferred:!!t.action.isPreferred}),i.next=7,t.resolve(Lz.T.None);case 7:if(!t.action.edit){i.next=10;break}return i.next=10,r.apply(Nz.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,Ct.Z)(t.action.command.arguments||[])));case 14:i.next=20;break;case 16:i.prev=16,i.t0=i.catch(11),u=$W(i.t0),s.error("string"===typeof u?u:yB.N("applyCodeActionFailed","An unknown error occurred while applying the code action"));case 20:case"end":return i.stop()}}),i,null,[[11,16]])})))}function $W(e){return"string"===typeof e?e:e instanceof Error&&"string"===typeof e.message?e.message:void 0}function QW(e,t,n,i){if(e.hasModel()){var r=qW.get(e);r&&r.manualTriggerAtCurrentPosition(t,n,i)}}qW.ID="editor.contrib.quickFixController",qW=WW([VW(1,OW.lT),VW(2,kB.i6),VW(3,Fz.e),VW(4,oW.TG)],qW);var XW=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:n.Id,label:yB.N("quickfix.trigger.label","Quick Fix..."),alias:"Quick Fix...",precondition:kB.Ao.and(bB.u.writable,bB.u.hasCodeActionsProvider),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:2132,weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){return QW(t,yB.N("editor.action.quickFix.noneMessage","No code actions available"),void 0,void 0)}}]),n}(_B.R6);XW.Id="editor.action.quickFix";var JW=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:Bz,precondition:kB.Ao.and(bB.u.writable,bB.u.hasCodeActionsProvider),description:{description:"Trigger a code action",args:[{name:"args",schema:KW}]}})}return(0,J.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=Zz.fromUser(n,{kind:Az.Empty,apply:"ifSingle"});return QW(t,"string"===typeof(null===n||void 0===n?void 0:n.kind)?i.preferred?yB.N("editor.action.codeAction.noneMessage.preferred.kind","No preferred code actions for '{0}' available",n.kind):yB.N("editor.action.codeAction.noneMessage.kind","No code actions for '{0}' available",n.kind):i.preferred?yB.N("editor.action.codeAction.noneMessage.preferred","No preferred code actions available"):yB.N("editor.action.codeAction.noneMessage","No code actions available"),{include:i.kind,includeSourceActions:!0,onlyIncludePreferredActions:i.preferred},i.apply)}}]),n}(_B._l),eV=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:zz,label:yB.N("refactor.label","Refactor..."),alias:"Refactor...",precondition:kB.Ao.and(bB.u.writable,bB.u.hasCodeActionsProvider),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:kB.Ao.and(bB.u.writable,UW(Az.Refactor))},description:{description:"Refactor...",args:[{name:"args",schema:KW}]}})}return(0,J.Z)(n,[{key:"run",value:function(e,t,n){var i=Zz.fromUser(n,{kind:Az.Refactor,apply:"never"});return QW(t,"string"===typeof(null===n||void 0===n?void 0:n.kind)?i.preferred?yB.N("editor.action.refactor.noneMessage.preferred.kind","No preferred refactorings for '{0}' available",n.kind):yB.N("editor.action.refactor.noneMessage.kind","No refactorings for '{0}' available",n.kind):i.preferred?yB.N("editor.action.refactor.noneMessage.preferred","No preferred refactorings available"):yB.N("editor.action.refactor.noneMessage","No refactorings available"),{include:Az.Refactor.contains(i.kind)?i.kind:Az.None,onlyIncludePreferredActions:i.preferred},i.apply)}}]),n}(_B.R6),tV=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:Wz,label:yB.N("source.label","Source Action..."),alias:"Source Action...",precondition:kB.Ao.and(bB.u.writable,bB.u.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:kB.Ao.and(bB.u.writable,UW(Az.Source))},description:{description:"Source Action...",args:[{name:"args",schema:KW}]}})}return(0,J.Z)(n,[{key:"run",value:function(e,t,n){var i=Zz.fromUser(n,{kind:Az.Source,apply:"never"});return QW(t,"string"===typeof(null===n||void 0===n?void 0:n.kind)?i.preferred?yB.N("editor.action.source.noneMessage.preferred.kind","No preferred source actions for '{0}' available",n.kind):yB.N("editor.action.source.noneMessage.kind","No source actions for '{0}' available",n.kind):i.preferred?yB.N("editor.action.source.noneMessage.preferred","No preferred source actions available"):yB.N("editor.action.source.noneMessage","No source actions available"),{include:Az.Source.contains(i.kind)?i.kind:Az.None,includeSourceActions:!0,onlyIncludePreferredActions:i.preferred},i.apply)}}]),n}(_B.R6),nV=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:Vz,label:yB.N("organizeImports.label","Organize Imports"),alias:"Organize Imports",precondition:kB.Ao.and(bB.u.writable,UW(Az.SourceOrganizeImports)),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:1581,weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){return QW(t,yB.N("editor.action.organize.noneMessage","No organize imports action available"),{include:Az.SourceOrganizeImports,includeSourceActions:!0},"ifSingle")}}]),n}(_B.R6),iV=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:Yz,label:yB.N("fixAll.label","Fix All"),alias:"Fix All",precondition:kB.Ao.and(bB.u.writable,UW(Az.SourceFixAll))})}return(0,J.Z)(n,[{key:"run",value:function(e,t){return QW(t,yB.N("fixAll.noneMessage","No fix all action available"),{include:Az.SourceFixAll,includeSourceActions:!0},"ifSingle")}}]),n}(_B.R6),rV=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:n.Id,label:yB.N("autoFix.label","Auto Fix..."),alias:"Auto Fix...",precondition:kB.Ao.and(bB.u.writable,UW(Az.QuickFix)),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:1620,mac:{primary:2644},weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){return QW(t,yB.N("editor.action.autoFix.noneMessage","No auto fixes available"),{include:Az.QuickFix,onlyIncludePreferredActions:!0},"ifSingle")}}]),n}(_B.R6);rV.Id="editor.action.autoFix",(0,_B._K)(qW.ID,qW),(0,_B.Qr)(XW),(0,_B.Qr)(eV),(0,_B.Qr)(tV),(0,_B.Qr)(nV),(0,_B.Qr)(rV),(0,_B.Qr)(iV),(0,_B.fK)(new JW);var oV=n(25941),aV=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},sV=function(){function e(){(0,X.Z)(this,e),this.lenses=[],this._disposables=new WB.SL}return(0,J.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose()}},{key:"add",value:function(e,t){this._disposables.add(e);var n,i=(0,Na.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 uV(e,t){return aV(this,void 0,void 0,fn().mark((function n(){var i,r,o,a,s=this;return fn().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return i=Iz.He.ordered(e),r=new Map,o=new sV,a=i.map((function(n,i){return aV(s,void 0,void 0,fn().mark((function a(){var s;return fn().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,LB.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)})))}jz.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,oV.p_)(Mz.o.isUri(r)),(0,oV.p_)("number"===typeof o||!o);var a=e.get(Oz.q).getModel(r);if(!a)throw(0,LB.b1)();var s=[],u=new WB.SL;return uV(a,Lz.T.None).then((function(e){u.add(e);var t,n=[],i=(0,Na.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,Lz.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 lV=n(66404),cV=function(){function e(t,n,i){(0,X.Z)(this,e),this.afterLineNumber=t,this.heightInPx=n,this._onHeight=i,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}return(0,J.Z)(e,[{key:"onComputedHeight",value:function(e){void 0===this._lastHeight?this._lastHeight=e:this._lastHeight!==e&&(this._lastHeight=e,this._onHeight())}}]),e}(),dV=function(){function e(t,n,i){(0,X.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(i),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration ".concat(n)}return(0,J.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,lV.T)(o.command.title.trim());o.command.id?(n.push(aW.$.apply(aW,["a",{id:String(r),title:o.command.tooltip}].concat((0,Ct.Z)(a)))),this._commands.set(String(r),o.command)):n.push(aW.$.apply(aW,["span",{title:o.command.tooltip}].concat((0,Ct.Z)(a)))),r+1<e.length&&n.push(aW.$("span",void 0,"\xa0|\xa0"))}}i?(aW.reset.apply(aW,[this._domNode].concat(n)),this._isEmpty&&t&&this._domNode.classList.add("fadein"),this._isEmpty=!1):aW.reset(this._domNode,aW.$("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}();dV._idPool=0;var hV=function(){function e(){(0,X.Z)(this,e),this._removeDecorations=[],this._addDecorations=[],this._addDecorationsCallbacks=[]}return(0,J.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}(),fV=function(){function e(t,n,i,r,o,a,s){var u,l=this;(0,X.Z)(this,e),this._isDisposed=!1,this._editor=n,this._className=i,this._data=t,this._decorationIds=[];var c=[];this._data.forEach((function(e,t){e.symbol.command&&c.push(e.symbol),r.addDecoration({range:e.symbol.range,options:KB.qx.EMPTY},(function(e){return l._decorationIds[t]=e})),u=u?YB.e.plusRange(u,e.symbol.range):YB.e.lift(e.symbol.range)})),this._viewZone=new cV(u.startLineNumber-1,a,s),this._viewZoneId=o.addZone(this._viewZone),c.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(c,!1))}return(0,J.Z)(e,[{key:"_createContentWidgetIfNecessary",value:function(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new dV(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||YB.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:KB.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,$B.Ic)((function(e,t){var n=e.getColor(qB.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(GB._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 pV=n(77863),gV=n(15022),vV=n(59319),mV=n(60106),_V=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},yV=function(e,t){return function(n,i){t(n,i,e)}},bV=(0,oW.yh)("ICodeLensCache"),wV=(0,J.Z)((function e(t,n){(0,X.Z)(this,e),this.lineCount=t,this.data=n})),CV=function(){function e(t){var n=this;(0,X.Z)(this,e),this._fakeProvider=new(function(){function e(){(0,X.Z)(this,e)}return(0,J.Z)(e,[{key:"provideCodeLenses",value:function(){throw new Error("not supported")}}]),e}()),this._cache=new gV.z6(20,.75);(0,zB.To)((function(){return t.remove("codelens/cache",1)}));var i="codelens/cache2",r=t.get(i,1,"{}");this._deserialize(r),(0,mV.I)(t.onWillSaveState)((function(e){e.reason===vV.fk.SHUTDOWN&&t.store(i,n._serialize(),1,1)}))}return(0,J.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 sV;i.add({lenses:n,dispose:function(){}},this._fakeProvider);var r=new wV(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,Na.Z)(this._cache);try{for(n.s();!(e=n.n()).done;){var i,r=(0,ne.Z)(e.value,2),o=r[0],a=r[1],s=new Set,u=(0,Na.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,Ct.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,Na.Z)(r.lines);try{for(a.s();!(i=a.n()).done;){var s=i.value;o.push({range:new YB.e(s,1,s,11)})}}catch(l){a.e(l)}finally{a.f()}var u=new sV;u.add({lenses:o,dispose:function(){}},this._fakeProvider),this._cache.set(n,new wV(r.lineCount,u))}}catch(FU){}}}]),e}();CV=_V([yV(0,vV.Uy)],CV),(0,pV.z)(bV,CV);var kV=n(25567),SV=n(62137),xV=n(66748),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},EV=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},NV=function(){function e(t,n,i,r){var o=this;(0,X.Z)(this,e),this._editor=t,this._commandService=n,this._notificationService=i,this._codeLensCache=r,this._disposables=new WB.SL,this._localToDispose=new WB.SL,this._lenses=[],this._getCodeLensModelDelays=new xV.Y(Iz.He,250,2500),this._oldCodeLensModels=new WB.SL,this._resolveCodeLensesDelays=new xV.Y(Iz.He,250,2500),this._resolveCodeLensesScheduler=new zB.pY((function(){return o._resolveCodeLensesInViewport()}),this._resolveCodeLensesDelays.min),this._disposables.add(this._editor.onDidChangeModel((function(){return o._onModelChange()}))),this._disposables.add(this._editor.onDidChangeModelLanguage((function(){return o._onModelChange()}))),this._disposables.add(this._editor.onDidChangeConfiguration((function(e){(e.hasChanged(40)||e.hasChanged(14)||e.hasChanged(13))&&o._updateLensStyle(),e.hasChanged(12)&&o._onModelChange()}))),this._disposables.add(Iz.He.onDidChange(this._onModelChange,this)),this._onModelChange(),this._styleClassName="_"+(0,kV.vp)(this._editor.getId()).toString(16),this._styleElement=aW.createStyleSheet(aW.isInShadowDOM(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0),this._updateLensStyle()}return(0,J.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,Na.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),Iz.He.has(t)){var i,r=(0,Na.Z)(Iz.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 zB.pY((function(){var n,i=Date.now();null===(n=e._getCodeLensModelPromise)||void 0===n||n.cancel(),e._getCodeLensModelPromise=(0,zB.PG)((function(e){return uV(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()}),LB.dL)}),this._getCodeLensModelDelays.get(t));this._localToDispose.add(s),this._localToDispose.add((0,WB.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 hV;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,WB.OF)((function(){if(e._editor.getModel()){var t=Tz.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,Na.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,Ct.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,zB.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 hV,r=(0,Na.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,Na.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=Tz.ZF.capture(this._editor),c=this._getLayoutInfo();this._editor.changeDecorations((function(e){t._editor.changeViewZones((function(n){for(var i=new hV,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 fV(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 fV(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,zB.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}),LB.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,LB.dL)(e),a===t._resolveCodeLensesPromise&&(t._resolveCodeLensesPromise=void 0)}))}}}},{key:"getLenses",value:function(){return this._lenses}}]),e}();NV.ID="css.editor.codeLens",NV=LV([EV(1,jz.H),EV(2,AW.lT),EV(3,bV)],NV),(0,_B._K)(NV.ID,NV),(0,_B.Qr)(function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"codelens.showLensesInCurrentLine",precondition:bB.u.hasCodeLensProvider,label:(0,yB.N)("showLensOnLine","Show CodeLens Commands For Current Line"),alias:"Show CodeLens Commands For Current Line"})}return(0,J.Z)(n,[{key:"run",value:function(e,t){return DV(this,void 0,void 0,fn().mark((function n(){var i,r,o,a,s,u,l,c,d,h,f,p,g,v;return fn().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(SV.eJ),r=e.get(jz.H),o=e.get(AW.lT),a=t.getSelection().positionLineNumber,s=t.getContribution(NV.ID),u=[],l=(0,Na.Z)(s.getLenses());try{for(l.s();!(c=l.n()).done;)if((d=c.value).getLineNumber()===a){h=(0,Na.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,Ct.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}(_B.R6));var MV=n(89938);function TV(e,t,n,i){return Promise.resolve(n.provideColorPresentations(e,t,i))}jz.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 Mz.o))throw(0,LB.b1)();var o=e.get(Oz.q).getModel(r);if(!o)throw(0,LB.b1)();var a=[],s=Iz.OH.ordered(o).reverse().map((function(e){return Promise.resolve(e.provideDocumentColors(o,Lz.T.None)).then((function(e){if(Array.isArray(e)){var t,n=(0,Na.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}))})),jz.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 Mz.o)||!Array.isArray(r)||4!==r.length||!YB.e.isIRange(s))throw(0,LB.b1)();var u=(0,ne.Z)(r,4),l=u[0],c=u[1],d=u[2],h=u[3],f=e.get(Oz.q).getModel(a);if(!f)throw(0,LB.b1)();var p={range:s,color:{red:l,green:c,blue:d,alpha:h}},g=[],v=Iz.OH.ordered(f).reverse().map((function(e){return Promise.resolve(e.provideColorPresentations(f,p,Lz.T.None)).then((function(e){Array.isArray(e)&&g.push.apply(g,(0,Ct.Z)(e))}))}));return Promise.all(v).then((function(){return g}))}));var IV=n(98921),OV=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},AV=function(e,t){return function(n,i){t(n,i,e)}},RV=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o;return(0,X.Z)(this,n),(o=t.call(this))._editor=e,o._codeEditorService=i,o._configurationService=r,o._localToDispose=o._register(new WB.SL),o._decorationsIds=[],o._colorDatas=new Map,o._colorDecoratorIds=[],o._decorationsTypes=new Set,o._register(e.onDidChangeModel((function(){o._isEnabled=o.isEnabled(),o.onModelChanged()}))),o._register(e.onDidChangeModelLanguage((function(){return o.onModelChanged()}))),o._register(Iz.OH.onDidChange((function(){return o.onModelChanged()}))),o._register(e.onDidChangeConfiguration((function(){var e=o._isEnabled;o._isEnabled=o.isEnabled(),e!==o._isEnabled&&(o._isEnabled?o.onModelChanged():o.removeAllDecorations())}))),o._timeoutTimer=null,o._computePromise=null,o._isEnabled=o.isEnabled(),o.onModelChanged(),o}return(0,J.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,Qz.Z)((0,Xz.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&&Iz.OH.has(t)&&(this._localToDispose.add(this._editor.onDidChangeModelContent((function(){e._timeoutTimer||(e._timeoutTimer=new zB._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,zB.PG)((function(t){var n=e._editor.getModel();return n?function(e,t){var n=[],i=Iz.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,Na.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}),LB.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:KB.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 MV.VS(Math.round(255*a),Math.round(255*s),Math.round(255*u),l),d=(0,kV.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(YB.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}(WB.JT);RV.ID="editor.contrib.colorDetector",RV.RECOMPUTE_TIME=1e3,RV=OV([AV(1,fz.$),AV(2,IV.Ui)],RV),(0,_B._K)(RV.ID,RV);var PV=n(49829),ZV=function(){function e(t,n,i){(0,X.Z)(this,e),this.presentationIndex=i,this._onColorFlushed=new _W.Q5,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new _W.Q5,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new _W.Q5,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=t,this._color=t,this._colorPresentations=n}return(0,J.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}(),FV=n(43257),jV=aW.$,HV=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o;(0,X.Z)(this,n),(o=t.call(this)).model=i,o.domNode=jV(".colorpicker-header"),aW.append(e,o.domNode),o.pickedColorNode=aW.append(o.domNode,jV(".picked-color"));var a=aW.append(o.domNode,jV(".original-color"));return a.style.backgroundColor=MV.Il.Format.CSS.format(o.model.originalColor)||"",o.backgroundColor=r.getColorTheme().getColor(GB.yJ)||MV.Il.white,o._register((0,$B.Ic)((function(e,t){o.backgroundColor=e.getColor(GB.yJ)||MV.Il.white}))),o._register(aW.addDisposableListener(o.pickedColorNode,aW.EventType.CLICK,(function(){return o.model.selectNextColorPresentation()}))),o._register(aW.addDisposableListener(a,aW.EventType.CLICK,(function(){o.model.color=o.model.originalColor,o.model.flushColor()}))),o._register(i.onDidChangeColor(o.onDidChangeColor,(0,Br.Z)(o))),o._register(i.onDidChangePresentation(o.onDidChangePresentation,(0,Br.Z)(o))),o.pickedColorNode.style.backgroundColor=MV.Il.Format.CSS.format(i.color)||"",o.pickedColorNode.classList.toggle("light",i.color.rgba.a<.5?o.backgroundColor.isLighter():i.color.isLighter()),o}return(0,J.Z)(n,[{key:"onDidChangeColor",value:function(e){this.pickedColorNode.style.backgroundColor=MV.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}(WB.JT),BV=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o;return(0,X.Z)(this,n),(o=t.call(this)).model=i,o.pixelRatio=r,o.domNode=jV(".colorpicker-body"),aW.append(e,o.domNode),o.saturationBox=new zV(o.domNode,o.model,o.pixelRatio),o._register(o.saturationBox),o._register(o.saturationBox.onDidChange(o.onDidSaturationValueChange,(0,Br.Z)(o))),o._register(o.saturationBox.onColorFlushed(o.flushColor,(0,Br.Z)(o))),o.opacityStrip=new VV(o.domNode,o.model),o._register(o.opacityStrip),o._register(o.opacityStrip.onDidChange(o.onDidOpacityChange,(0,Br.Z)(o))),o._register(o.opacityStrip.onColorFlushed(o.flushColor,(0,Br.Z)(o))),o.hueStrip=new YV(o.domNode,o.model),o._register(o.hueStrip),o._register(o.hueStrip.onDidChange(o.onDidHueChange,(0,Br.Z)(o))),o._register(o.hueStrip.onColorFlushed(o.flushColor,(0,Br.Z)(o))),o}return(0,J.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 MV.Il(new MV.tx(i.h,t,n,i.a))}},{key:"onDidOpacityChange",value:function(e){var t=this.model.color.hsva;this.model.color=new MV.Il(new MV.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 MV.Il(new MV.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}(WB.JT),zV=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o;return(0,X.Z)(this,n),(o=t.call(this)).model=i,o.pixelRatio=r,o._onDidChange=new _W.Q5,o.onDidChange=o._onDidChange.event,o._onColorFlushed=new _W.Q5,o.onColorFlushed=o._onColorFlushed.event,o.domNode=jV(".saturation-wrap"),aW.append(e,o.domNode),o.canvas=document.createElement("canvas"),o.canvas.className="saturation-box",aW.append(o.domNode,o.canvas),o.selection=jV(".saturation-selection"),aW.append(o.domNode,o.selection),o.layout(),o._register(aW.addDisposableGenericMouseDownListner(o.domNode,(function(e){return o.onMouseDown(e)}))),o._register(o.model.onDidChangeColor(o.onDidChangeColor,(0,Br.Z)(o))),o.monitor=null,o}return(0,J.Z)(n,[{key:"onMouseDown",value:function(e){var t=this;this.monitor=this._register(new mW.Z);var n=aW.getDomNodePagePosition(this.domNode);e.target!==this.selection&&this.onDidChangePosition(e.offsetX,e.offsetY),this.monitor.startMonitoring(e.target,e.buttons,mW.e,(function(e){return t.onDidChangePosition(e.posx-n.left,e.posy-n.top)}),(function(){return null}));var i=aW.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 MV.Il(new MV.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=MV.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}(WB.JT),WV=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this)).model=i,r._onDidChange=new _W.Q5,r.onDidChange=r._onDidChange.event,r._onColorFlushed=new _W.Q5,r.onColorFlushed=r._onColorFlushed.event,r.domNode=aW.append(e,jV(".strip")),r.overlay=aW.append(r.domNode,jV(".overlay")),r.slider=aW.append(r.domNode,jV(".slider")),r.slider.style.top="0px",r._register(aW.addDisposableGenericMouseDownListner(r.domNode,(function(e){return r.onMouseDown(e)}))),r.layout(),r}return(0,J.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 mW.Z),i=aW.getDomNodePagePosition(this.domNode);this.domNode.classList.add("grabbing"),e.target!==this.slider&&this.onDidChangeTop(e.offsetY),n.startMonitoring(e.target,e.buttons,mW.e,(function(e){return t.onDidChangeTop(e.posy-i.top)}),(function(){return null}));var r=aW.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}(WB.JT),VV=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this,e,i)).domNode.classList.add("opacity-strip"),r._register(i.onDidChangeColor(r.onDidChangeColor,(0,Br.Z)(r))),r.onDidChangeColor(r.model.color),r}return(0,J.Z)(n,[{key:"onDidChangeColor",value:function(e){var t=e.rgba,n=t.r,i=t.g,r=t.b,o=new MV.Il(new MV.VS(n,i,r,1)),a=new MV.Il(new MV.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}(WV),YV=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this,e,i)).domNode.classList.add("hue-strip"),r}return(0,J.Z)(n,[{key:"getValue",value:function(e){return 1-e.hsva.h/360}}]),n}(WV),UV=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a;(0,X.Z)(this,n),(a=t.call(this)).model=i,a.pixelRatio=r,a._register((0,cz.fX)((function(){return a.layout()})));var s=jV(".colorpicker-widget");e.appendChild(s);var u=new HV(s,a.model,o);return a.body=new BV(s,a.model,a.pixelRatio),a._register(u),a._register(a.body),a}return(0,J.Z)(n,[{key:"layout",value:function(){this.body.layout()}}]),n}(FV.$),KV=function(){function e(t,n,i,r,o){var a=this;(0,X.Z)(this,e),this._computer=t,this._state=0,this._hoverTime=o,this._firstWaitScheduler=new zB.pY((function(){return a._triggerAsyncComputation()}),0),this._secondWaitScheduler=new zB.pY((function(){return a._triggerSyncComputation()}),0),this._loadingMessageScheduler=new zB.pY((function(){return a._showLoadingMessage()}),0),this._asyncComputationPromise=null,this._asyncComputationPromiseDone=!1,this._completeCallback=n,this._errorCallback=i,this._progressCallback=r}return(0,J.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,zB.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,LB.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}(),qV=n(61727),GV=aW.$,$V=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;return(0,X.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 qV.s$(e.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),e.containerDomNode.appendChild(e._scrollbar.getDomNode()),e}return(0,J.Z)(n,[{key:"onContentsChanged",value:function(){this._scrollbar.scanDomNode()}}]),n}(WB.JT);var QV=n(50816),XV=n(9696),JV=n(55585),eY=n(67537);function tY(e){if(e){"string"===typeof e&&(e=Mz.o.file(e));var t=(0,PW.EZ)(e)||(e.scheme===JV.lg.file?e.fsPath:e.path);return dz.ED&&(0,eY.vY)(t)?nY(t):t}}function nY(e){return(0,eY.oP)(e)?e.charAt(0).toUpperCase()+e.slice(1):e}var iY=n(67404),rY=n(10405),oY=n(40782),aY=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},sY=function(e,t){return function(n,i){t(n,i,e)}},uY=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o,a,s,u,l,c,d){var h,f;return(0,X.Z)(this,n),(f=t.call(this,e,Object.assign(Object.assign({},r.getRawOptions()),{overflowWidgetsDomNode:r.getOverflowWidgetsDomNode()}),{},o,a,s,u,l,c,d))._parentEditor=r,f._overwriteOptions=i,(0,Qz.Z)((h=(0,Br.Z)(f),(0,Xz.Z)(n.prototype)),"updateOptions",h).call(h,f._overwriteOptions),f._register(r.onDidChangeConfiguration((function(e){return f._onParentConfigurationChanged(e)}))),f}return(0,J.Z)(n,[{key:"getParentEditor",value:function(){return this._parentEditor}},{key:"_onParentConfigurationChanged",value:function(e){(0,Qz.Z)((0,Xz.Z)(n.prototype),"updateOptions",this).call(this,this._parentEditor.getRawOptions()),(0,Qz.Z)((0,Xz.Z)(n.prototype),"updateOptions",this).call(this,this._overwriteOptions)}},{key:"updateOptions",value:function(e){rY.jB(this._overwriteOptions,e,!0),(0,Qz.Z)((0,Xz.Z)(n.prototype),"updateOptions",this).call(this,this._overwriteOptions)}}]),n}(mB.Gm);uY=aY([sY(3,oW.TG),sY(4,fz.$),sY(5,jz.H),sY(6,kB.i6),sY(7,$B.XE),sY(8,AW.lT),sY(9,oY.F)],uY);var lY=n(2523),cY=n(12394),dY=new MV.Il(new MV.VS(0,122,204)),hY={showArrow:!0,showFrame:!0,className:"",frameColor:dY,arrowColor:dY,keepEditorSelection:!1},fY=function(){function e(t,n,i,r,o,a){(0,X.Z)(this,e),this.id="",this.domNode=t,this.afterLineNumber=n,this.afterColumn=i,this.heightInLines=r,this._onDomNodeTop=o,this._onComputedHeight=a}return(0,J.Z)(e,[{key:"onDomNodeTop",value:function(e){this._onDomNodeTop(e)}},{key:"onComputedHeight",value:function(e){this._onComputedHeight(e)}}]),e}(),pY=function(){function e(t,n){(0,X.Z)(this,e),this._id=t,this._domNode=n}return(0,J.Z)(e,[{key:"getId",value:function(){return this._id}},{key:"getDomNode",value:function(){return this._domNode}},{key:"getPosition",value:function(){return null}}]),e}(),gY=function(){function e(t){(0,X.Z)(this,e),this._editor=t,this._ruleName=e._IdGenerator.nextId(),this._decorations=[],this._color=null,this._height=-1}return(0,J.Z)(e,[{key:"dispose",value:function(){this.hide(),aW.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(){aW.removeCSSRulesContainingSelector(this._ruleName),aW.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:YB.e.fromPositions(e),options:{className:this._ruleName,stickiness:1}}])}},{key:"hide",value:function(){this._editor.deltaDecorations(this._decorations,[])}}]),e}();gY._IdGenerator=new cY.R(".arrow-decoration-");var vY=function(){function e(t){var n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,X.Z)(this,e),this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._positionMarkerId=[],this._viewZone=null,this._disposables=new WB.SL,this.container=null,this._isShowing=!1,this.editor=t,this.options=rY.I8(i),rY.jB(this.options,hY,!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,J.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 gY(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,ne.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=YB.e.isIRange(e)?YB.e.lift(e):YB.e.fromPositions(e);this._isShowing=!0,this._showImpl(n,t),this._isShowing=!1,this._positionMarkerId=this.editor.deltaDecorations(this._positionMarkerId,[{range:n,options:KB.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 fY(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 pY("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 lY.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}(),mY=n(61680),_Y=n(85733),yY=n(84039),bY=n(31737),wY=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this,e,i))._actions=[],r._contextMenuProvider=i.contextMenuProvider,r.actions=i.actions||[],r.actionProvider=i.actionProvider,r.menuClassName=i.menuClassName||"",r.menuAsChild=!!i.menuAsChild,r}return(0,J.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,Qz.Z)((0,Xz.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,Qz.Z)((0,Xz.Z)(n.prototype),"hide",this).call(this)}},{key:"onHide",value:function(){this.hide(),this.element.classList.remove("active")}}]),n}(function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;(0,X.Z)(this,n),(r=t.call(this))._onDidChangeVisibility=new _W.Q5,r.onDidChangeVisibility=r._onDidChangeVisibility.event,r._element=(0,aW.append)(e,(0,aW.$)(".monaco-dropdown")),r._label=(0,aW.append)(r._element,(0,aW.$)(".dropdown-label"));var o=i.labelRenderer;o||(o=function(e){return e.textContent=i.label||"",null});for(var a=0,s=[aW.EventType.CLICK,aW.EventType.MOUSE_DOWN,yW.t.Tap];a<s.length;a++){var u=s[a];r._register((0,aW.addDisposableListener)(r.element,u,(function(e){return aW.EventHelper.stop(e,!0)})))}for(var l=0,c=[aW.EventType.MOUSE_DOWN,yW.t.Tap];l<c.length;l++){var d=c[l];r._register((0,aW.addDisposableListener)(r._label,d,(function(e){e instanceof MouseEvent&&e.detail>1||(r.visible?r.hide():r.show())})))}r._register((0,aW.addDisposableListener)(r._label,aW.EventType.KEY_UP,(function(e){var t=new bY.y(e);(t.equals(3)||t.equals(10))&&(aW.EventHelper.stop(e,!0),r.visible?r.hide():r.show())})));var h=o(r._label);return h&&r._register(h),r._register(yW.o.addTarget(r._label)),r}return(0,J.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,Qz.Z)((0,Xz.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}(sW.Wi)),CY=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Object.create(null);return(0,X.Z)(this,n),(o=t.call(this,null,e,a)).actionItem=null,o._onDidChangeVisibility=o._register(new _W.Q5),o.menuActionsOrProvider=i,o.contextMenuProvider=r,o.options=a,o.options.actionRunner&&(o.actionRunner=o.options.actionRunner),o}return(0,J.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,aW.append)(e,(0,aW.$)("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,Ct.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 wY(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,Qz.Z)((0,Xz.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}(yY.Y),kY=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},SY=function(e,t){return function(n,i){t(n,i,e)}};function xY(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,Na.Z)(e);try{for(c.s();!(u=c.n()).done;){var d=(0,ne.Z)(u.value,2),h=d[0],f=d[1],p=void 0;h===o?p=i:(p=r).length>0&&p.push(new sW.Z0);var g,v=(0,Na.Z)(f);try{for(v.s();!(g=v.n()).done;){var m=g.value;n&&(m=m instanceof QB.U8&&m.alt?m.alt:m);var _=p.push(m);m instanceof sW.wY&&l.add({group:h,action:m,index:_-1})}}catch(N){v.e(N)}finally{v.f()}}}catch(N){c.e(N)}finally{c.f()}var y,b=(0,Na.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,Ct.Z)(L)))}}catch(N){b.e(N)}finally{b.f()}if(i!==r&&i.length>a){var E,D=i.splice(a,i.length-a);(E=r).unshift.apply(E,(0,Ct.Z)(D).concat([new sW.Z0]))}}(a,n,!1,i,r,o),function(e){var t,n=new WB.SL,i=(0,Na.Z)(e);try{for(i.s();!(t=i.n()).done;){var r,o=(0,ne.Z)(t.value,2)[1],a=(0,Na.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 LY=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o;return(0,X.Z)(this,n),(o=t.call(this,void 0,e,{icon:!(!e.class&&!e.item.icon),label:!e.class&&!e.item.icon}))._keybindingService=i,o._notificationService=r,o._wantsAltCommand=!1,o._itemClassDispose=o._register(new WB.XK),o._altKey=aW.ModifierKeyEmitter.getInstance(),o}return(0,J.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,Qz.Z)((0,Xz.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||(dz.ED||dz.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||(dz.ED||dz.IJ)&&e.shiftKey,o()}))),this._register((0,mY.jt)(e,"mouseleave")((function(e){i=!1,o()}))),this._register((0,mY.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,yB.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,yB.N)("titleAndKb","{0} ({1})",r,a):r;i+="\n[".concat(_Y.xo.modifierLabels[dz.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($B.kS.isThemeIcon(r)){var o,a=$B.kS.asClassNameArray(r);(o=i.classList).add.apply(o,(0,Ct.Z)(a)),this._itemClassDispose.value=(0,WB.OF)((function(){var e;(e=i.classList).remove.apply(e,(0,Ct.Z)(a))}))}else r.light&&i.style.setProperty("--menu-entry-icon-light",(0,aW.asCSSUrl)(r.light)),r.dark&&i.style.setProperty("--menu-entry-icon-dark",(0,aW.asCSSUrl)(r.dark)),i.classList.add("icon"),this._itemClassDispose.value=(0,WB.OF)((function(){i.classList.remove("icon"),i.style.removeProperty("--menu-entry-icon-light"),i.style.removeProperty("--menu-entry-icon-dark")}))}}}]),n}(yY.g);LY=kY([SY(1,lW.d),SY(2,AW.lT)],LY);var EY=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){return(0,X.Z)(this,n),t.call(this,e,{getActions:function(){return e.actions}},i,{menuAsChild:!0,classNames:$B.kS.isThemeIcon(e.item.icon)?$B.kS.asClassName(e.item.icon):void 0})}return(0,J.Z)(n,[{key:"render",value:function(e){if((0,Qz.Z)((0,Xz.Z)(n.prototype),"render",this).call(this,e),this.element){e.classList.add("menu-entry");var t=this._action.item.icon;t&&!$B.kS.isThemeIcon(t)&&(this.element.classList.add("icon"),t.light&&this.element.style.setProperty("--menu-entry-icon-light",(0,aW.asCSSUrl)(t.light)),t.dark&&this.element.style.setProperty("--menu-entry-icon-dark",(0,aW.asCSSUrl)(t.dark)))}}}]),n}(CY);function DY(e,t){return t instanceof QB.U8?e.createInstance(LY,t):t instanceof QB.NZ?e.createInstance(EY,t):void 0}EY=kY([SY(1,uW.i)],EY);var NY,MY=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},TY=function(e,t){return function(n,i){t(n,i,e)}},IY=(0,oW.yh)("IPeekViewService");(0,pV.z)(IY,function(){function e(){(0,X.Z)(this,e),this._widgets=new Map}return(0,J.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 kB.uy("inReferenceSearchEditor",!0,yB.N("inReferenceSearchEditor","Whether the current code editor is embedded inside peek")),e.notInPeekEditor=e.inPeekEditor.toNegated()}(NY||(NY={}));var OY=function(){function e(t,n){(0,X.Z)(this,e),t instanceof uY&&NY.inPeekEditor.bindTo(n)}return(0,J.Z)(e,[{key:"dispose",value:function(){}}]),e}();OY.ID="editor.contrib.referenceController",OY=MY([TY(1,kB.i6)],OY),(0,_B._K)(OY.ID,OY);var AY={headerBackgroundColor:MV.Il.white,primaryHeadingColor:MV.Il.fromHex("#333333"),secondaryHeadingColor:MV.Il.fromHex("#6c6c6cb3")},RY=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o;return(0,X.Z)(this,n),(o=t.call(this,e,i)).instantiationService=r,o._onDidClose=new _W.Q5,o.onDidClose=o._onDidClose.event,rY.jB(o.options,AY,!1),o}return(0,J.Z)(n,[{key:"dispose",value:function(){this.disposed||(this.disposed=!0,(0,Qz.Z)((0,Xz.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,Qz.Z)((0,Xz.Z)(n.prototype),"style",this).call(this,e)}},{key:"_applyStyles",value:function(){(0,Qz.Z)((0,Xz.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=aW.$(".head"),this._bodyElement=aW.$(".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=aW.$(".peekview-title");aW.append(this._headElement,i),aW.addStandardDisposableListener(i,"click",(function(e){return n._onTitleClick(e)})),this._fillTitleIcon(i),this._primaryHeading=aW.$("span.filename"),this._secondaryHeading=aW.$("span.dirname"),this._metaHeading=aW.$("span.meta"),aW.append(i,this._primaryHeading,this._secondaryHeading,this._metaHeading);var r=aW.$(".peekview-actions");aW.append(this._headElement,r);var o=this._getActionBarOptions();this._actionbarWidget=new iY.o(r,o),this._disposables.add(this._actionbarWidget),t||this._actionbarWidget.push(new sW.aU("peekview.close",yB.N("label.close","Close"),bW.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:DY.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:aW.clearNode(this._secondaryHeading))}},{key:"setMetaTitle",value:function(e){this._metaHeading&&(e?(this._metaHeading.innerText=e,aW.show(this._metaHeading)):aW.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}(vY);RY=MY([TY(2,oW.TG)],RY);var PY,ZY=(0,GB.P6)("peekViewTitle.background",{dark:"#1E1E1E",light:"#FFFFFF",hc:"#0C141F"},yB.N("peekViewTitleBackground","Background color of the peek view title area.")),FY=(0,GB.P6)("peekViewTitleLabel.foreground",{dark:"#FFFFFF",light:"#333333",hc:"#FFFFFF"},yB.N("peekViewTitleForeground","Color of the peek view title.")),jY=(0,GB.P6)("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161e6",hc:"#FFFFFF99"},yB.N("peekViewTitleInfoForeground","Color of the peek view title info.")),HY=(0,GB.P6)("peekView.border",{dark:"#007acc",light:"#007acc",hc:GB.lR},yB.N("peekViewBorder","Color of the peek view borders and arrow.")),BY=(0,GB.P6)("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hc:MV.Il.black},yB.N("peekViewResultsBackground","Background color of the peek view result list.")),zY=(0,GB.P6)("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hc:MV.Il.white},yB.N("peekViewResultsMatchForeground","Foreground color for line nodes in the peek view result list.")),WY=(0,GB.P6)("peekViewResult.fileForeground",{dark:MV.Il.white,light:"#1E1E1E",hc:MV.Il.white},yB.N("peekViewResultsFileForeground","Foreground color for file nodes in the peek view result list.")),VY=(0,GB.P6)("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hc:null},yB.N("peekViewResultsSelectionBackground","Background color of the selected entry in the peek view result list.")),YY=(0,GB.P6)("peekViewResult.selectionForeground",{dark:MV.Il.white,light:"#6C6C6C",hc:MV.Il.white},yB.N("peekViewResultsSelectionForeground","Foreground color of the selected entry in the peek view result list.")),UY=(0,GB.P6)("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hc:MV.Il.black},yB.N("peekViewEditorBackground","Background color of the peek view editor.")),KY=(0,GB.P6)("peekViewEditorGutter.background",{dark:UY,light:UY,hc:UY},yB.N("peekViewEditorGutterBackground","Background color of the gutter in the peek view editor.")),qY=(0,GB.P6)("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hc:null},yB.N("peekViewResultsMatchHighlight","Match highlight color in the peek view result list.")),GY=(0,GB.P6)("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hc:null},yB.N("peekViewEditorMatchHighlight","Match highlight color in the peek view editor.")),$Y=(0,GB.P6)("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hc:GB.xL},yB.N("peekViewEditorMatchHighlightBorder","Match highlight border in the peek view editor.")),QY=n(55046);!function(e){e.className=function(e){switch(e){case QY.Z.Ignore:return"severity-ignore "+bW.lA.info.classNames;case QY.Z.Info:return bW.lA.info.classNames;case QY.Z.Warning:return bW.lA.warning.classNames;case QY.Z.Error:return bW.lA.error.classNames;default:return""}}}(PY||(PY={})),(0,$B.Ic)((function(e,t){var n=e.getColor(GB.Jp);if(n){var i=bW.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(GB.BO);if(r){var o=bW.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(GB.OL);if(a){var s=bW.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 XY=n(5399),JY=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},eU=function(e,t){return function(n,i){t(n,i,e)}},tU=function(){function e(t,n,i,r,o){var a=this;(0,X.Z)(this,e),this._openerService=r,this._labelService=o,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new WB.SL,this._editor=n;var s=document.createElement("div");s.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),s.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),s.appendChild(this._relatedBlock),this._disposables.add(aW.addStandardDisposableListener(this._relatedBlock,"click",(function(e){e.preventDefault();var t=a._relatedDiagnostics.get(e.target);t&&i(t)}))),this._scrollable=new qV.NB(s,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:3,verticalScrollbarSize:3}),t.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll((function(e){s.style.left="-".concat(e.scrollLeft,"px"),s.style.top="-".concat(e.scrollTop,"px")}))),this._disposables.add(this._scrollable)}return(0,J.Z)(e,[{key:"dispose",value:function(){(0,WB.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,Dz.uq)(i);this._lines=s.length,this._longestLineLength=0;var u,l=(0,Na.Z)(s);try{for(l.s();!(u=l.n()).done;){var c=u.value;this._longestLineLength=Math.max(c.length+a,this._longestLineLength)}}catch(D){l.e(D)}finally{l.f()}aW.clearNode(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(e)),this._editor.applyFontInfo(this._messageBlock);var d,h=this._messageBlock,f=(0,Na.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(D){f.e(D)}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=aW.$("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()},aW.append(this._codeLink,aW.$("span")).innerText=o.value,g.appendChild(this._codeLink)}}if(aW.clearNode(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),(0,SB.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,Na.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(tY(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(D){b.e(D)}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 OW.ZL.Error:t=yB.N("Error","Error");break;case OW.ZL.Warning:t=yB.N("Warning","Warning");break;case OW.ZL.Info:t=yB.N("Info","Info");break;case OW.ZL.Hint:t=yB.N("Hint","Hint")}var n=yB.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}(),nU=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o,a,s,u){var l;return(0,X.Z)(this,n),(l=t.call(this,e,{showArrow:!0,showFrame:!0,isAccessible:!0},a))._themeService=i,l._openerService=r,l._menuService=o,l._contextKeyService=s,l._labelService=u,l._callOnDispose=new WB.SL,l._onDidSelectRelatedInformation=new _W.Q5,l.onDidSelectRelatedInformation=l._onDidSelectRelatedInformation.event,l._severity=OW.ZL.Warning,l._backgroundColor=MV.Il.white,l._applyTheme(i.getColorTheme()),l._callOnDispose.add(i.onDidColorThemeChange(l._applyTheme.bind((0,Br.Z)(l)))),l.create(),l}return(0,J.Z)(n,[{key:"_applyTheme",value:function(e){this._backgroundColor=e.getColor(lU);var t=aU;this._severity===OW.ZL.Warning?t=sU:this._severity===OW.ZL.Info&&(t=uU);var n=e.getColor(t);this.style({arrowColor:n,frameColor:n,headerBackgroundColor:this._backgroundColor,primaryHeadingColor:e.getColor(FY),secondaryHeadingColor:e.getColor(jY)})}},{key:"_applyStyles",value:function(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),(0,Qz.Z)((0,Xz.Z)(n.prototype),"_applyStyles",this).call(this)}},{key:"dispose",value:function(){this._callOnDispose.dispose(),(0,Qz.Z)((0,Xz.Z)(n.prototype),"dispose",this).call(this)}},{key:"_fillHead",value:function(e){var t=this;(0,Qz.Z)((0,Xz.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);xY(r,void 0,i),this._actionbarWidget.push(i,{label:!1,icon:!0,index:0}),r.dispose()}},{key:"_fillTitleIcon",value:function(e){this._icon=aW.append(e,aW.$(""))}},{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 tU(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=YB.e.lift(e),o=this.editor.getPosition(),a=o&&r.containsPosition(o)?o:r.getStartPosition();(0,Qz.Z)((0,Xz.Z)(n.prototype),"show",this).call(this,a,this.computeRequiredHeight());var s=this.editor.getModel();if(s){var u=i>1?yB.N("problems","{0} of {1} problems",t,i):yB.N("change","{0} of {1} problem",t,i);this.setTitle((0,PW.EZ)(s.uri),u)}this._icon.className="codicon ".concat(PY.className(OW.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,Qz.Z)((0,Xz.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,Qz.Z)((0,Xz.Z)(n.prototype),"_relayout",this).call(this,this.computeRequiredHeight())}},{key:"computeRequiredHeight",value:function(){return 3+this._message.getHeightInLines()}}]),n}(RY);nU.TitleMenu=new QB.eH("gotoErrorTitleMenu"),nU=JY([eU(1,$B.XE),eU(2,XV.v4),eU(3,QB.co),eU(4,oW.TG),eU(5,kB.i6),eU(6,XY.e)],nU);var iU=(0,GB.kw)(GB.lX,GB.b6),rU=(0,GB.kw)(GB.uo,GB.pW),oU=(0,GB.kw)(GB.c6,GB.T8),aU=(0,GB.P6)("editorMarkerNavigationError.background",{dark:iU,light:iU,hc:iU},yB.N("editorMarkerNavigationError","Editor marker navigation widget error color.")),sU=(0,GB.P6)("editorMarkerNavigationWarning.background",{dark:rU,light:rU,hc:rU},yB.N("editorMarkerNavigationWarning","Editor marker navigation widget warning color.")),uU=(0,GB.P6)("editorMarkerNavigationInfo.background",{dark:oU,light:oU,hc:oU},yB.N("editorMarkerNavigationInfo","Editor marker navigation widget info color.")),lU=(0,GB.P6)("editorMarkerNavigation.background",{dark:"#2D2D30",light:MV.Il.white,hc:"#0C141F"},yB.N("editorMarkerNavigationBackground","Editor marker navigation widget background."));(0,$B.Ic)((function(e,t){var n=e.getColor(GB.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 cU=n(28214),dU=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},hU=function(e,t){return function(n,i){t(n,i,e)}},fU=(0,J.Z)((function e(t,n,i){(0,X.Z)(this,e),this.marker=t,this.index=n,this.total=i})),pU=function(){function e(t,n){var i=this;(0,X.Z)(this,e),this._markerService=n,this._onDidChange=new _W.Q5,this.onDidChange=this._onDidChange.event,this._dispoables=new WB.SL,this._markers=[],this._nextIdx=-1,Mz.o.isUri(t)?this._resourceFilter=function(e){return e.toString()===t.toString()}:t&&(this._resourceFilter=t);var r=function(){i._markers=i._markerService.read({resource:Mz.o.isUri(t)?t:void 0,severities:OW.ZL.Error|OW.ZL.Warning|OW.ZL.Info}),"function"===typeof t&&(i._markers=i._markers.filter((function(e){return i._resourceFilter(e.resource)}))),i._markers.sort(e._compareMarker)};r(),this._dispoables.add(n.onMarkerChanged((function(e){i._resourceFilter&&!e.some((function(e){return i._resourceFilter(e)}))||(r(),i._nextIdx=-1,i._onDidChange.fire())})))}return(0,J.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 fU(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,SB.ry)(this._markers,{resource:e.uri},(function(e,t){return(0,Dz.qu)(e.resource.toString(),t.resource.toString())})),r<0&&(r=~r));for(var o=r;o<this._markers.length;o++){var a=YB.e.lift(this._markers[o]);if(a.isEmpty()){var s=e.getWordAtPosition(a.getStartPosition());s&&(a=new YB.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(YB.e.containsPosition(this._markers[n],t))return new fU(this._markers[n],n+1,this._markers.length)}}],[{key:"_compareMarker",value:function(e,t){var n=(0,Dz.qu)(e.resource.toString(),t.resource.toString());return 0===n&&(n=OW.ZL.compare(e.severity,t.severity)),0===n&&(n=YB.e.compareRangesUsingStarts(e,t)),n}}]),e}();pU=dU([hU(1,OW.lT)],pU);var gU=(0,oW.yh)("IMarkerNavigationService"),vU=function(){function e(t){(0,X.Z)(this,e),this._markerService=t,this._provider=new cU.S}return(0,J.Z)(e,[{key:"getMarkerList",value:function(e){var t,n=(0,Na.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 pU(e,this._markerService)}}]),e}();vU=dU([hU(0,OW.lT)],vU),(0,pV.z)(gU,vU,!0);var mU=n(62239),_U=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},yU=function(e,t){return function(n,i){t(n,i,e)}},bU=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},wU=function(){function e(t,n,i,r,o){(0,X.Z)(this,e),this._markerNavigationService=n,this._contextKeyService=i,this._editorService=r,this._instantiationService=o,this._sessionDispoables=new WB.SL,this._editor=t,this._widgetVisible=EU.bindTo(this._contextKeyService)}return(0,J.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(nU,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)&&YB.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:YB.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 VB.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 bU(this,void 0,void 0,fn().mark((function i(){var r,o;return fn().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}();wU.ID="editor.contrib.markerController",wU=_U([yU(1,gU),yU(2,kB.i6),yU(3,fz.$),yU(4,oW.TG)],wU);var CU=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o;return(0,X.Z)(this,n),(o=t.call(this,r))._next=e,o._multiFile=i,o}return(0,J.Z)(n,[{key:"run",value:function(e,t){return bU(this,void 0,void 0,fn().mark((function e(){return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t.hasModel()&&wU.get(t).nagivate(this._next,this._multiFile);case 1:case"end":return e.stop()}}),e,this)})))}}]),n}(_B.R6),kU=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.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:bB.u.focus,primary:578,weight:100},menuOpts:{menuId:nU.TitleMenu,title:n.LABEL,icon:(0,mU.q5)("marker-navigation-next",bW.lA.chevronDown,yB.N("nextMarkerIcon","Icon for goto next marker.")),group:"navigation",order:1}})}return(0,J.Z)(n)}(CU);kU.ID="editor.action.marker.next",kU.LABEL=yB.N("markerAction.next.label","Go to Next Problem (Error, Warning, Info)");var SU=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.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:bB.u.focus,primary:1602,weight:100},menuOpts:{menuId:nU.TitleMenu,title:kU.LABEL,icon:(0,mU.q5)("marker-navigation-previous",bW.lA.chevronUp,yB.N("previousMarkerIcon","Icon for goto previous marker.")),group:"navigation",order:2}})}return(0,J.Z)(n)}(CU);SU.ID="editor.action.marker.prev",SU.LABEL=yB.N("markerAction.previous.label","Go to Previous Problem (Error, Warning, Info)");var xU=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!0,!0,{id:"editor.action.marker.nextInFiles",label:yB.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:bB.u.focus,primary:66,weight:100},menuOpts:{menuId:QB.eH.MenubarGoMenu,title:yB.N({key:"miGotoNextProblem",comment:["&& denotes a mnemonic"]},"Next &&Problem"),group:"6_problem_nav",order:1}})}return(0,J.Z)(n)}(CU),LU=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!1,!0,{id:"editor.action.marker.prevInFiles",label:yB.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:bB.u.focus,primary:1090,weight:100},menuOpts:{menuId:QB.eH.MenubarGoMenu,title:yB.N({key:"miGotoPreviousProblem",comment:["&& denotes a mnemonic"]},"Previous &&Problem"),group:"6_problem_nav",order:2}})}return(0,J.Z)(n)}(CU);(0,_B._K)(wU.ID,wU),(0,_B.Qr)(kU),(0,_B.Qr)(SU),(0,_B.Qr)(xU),(0,_B.Qr)(LU);var EU=new kB.uy("markersNavigationVisible",!1),DU=_B._l.bindToContribution(wU.get);(0,_B.fK)(new DU({id:"closeMarkersNavigation",precondition:EU,handler:function(e){return e.close()},kbOpts:{weight:150,kbExpr:bB.u.focus,primary:9,secondary:[1033]}}));var NU=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},MU=function(e,t){return function(n,i){t(n,i,e)}},TU=aW.$,IU=function(){function e(t,n){(0,X.Z)(this,e),this.range=t,this.marker=n}return(0,J.Z)(e,[{key:"equals",value:function(t){return t instanceof e&&OW.H0.makeKey(this.marker)===OW.H0.makeKey(t.marker)}}]),e}(),OU={type:1,filter:{include:Az.QuickFix}},AU=function(){function e(t,n,i,r,o){(0,X.Z)(this,e),this._editor=t,this._hover=n,this._markerDecorationsService=i,this._keybindingService=r,this._openerService=o,this.recentMarkerCodeActionsInfo=void 0}return(0,J.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,Na.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 YB.e(e.startLineNumber,l,e.startLineNumber,c);a.push(new IU(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 WB.JT.None;var i=new WB.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 OW.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=TU("div.hover-row"),r=aW.append(i,TU("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=aW.append(r,TU("span"));if(c.style.whiteSpace="pre-wrap",c.innerText=s,a||u)if(u&&"string"!==typeof u){var d=TU("span");if(a)aW.append(d,TU("span")).innerText=a;var h=aW.append(d,TU("a.code-link"));h.setAttribute("href",u.target.toString()),t.add(aW.addDisposableListener(h,"click",(function(e){n._openerService.open(u.target,{allowCommands:!0}),e.preventDefault(),e.stopPropagation()}))),aW.append(h,TU("span")).innerText=u.value;var f=aW.append(r,d);f.style.opacity="0.6",f.style.paddingLeft="6px"}else{var p=aW.append(r,TU("span"));p.style.opacity="0.6",p.style.paddingLeft="6px",p.innerText=a&&u?"".concat(a,"(").concat(u,")"):a||"(".concat(u,")")}if((0,SB.Of)(l)){var g,v=(0,Na.Z)(l);try{var m=function(){var e=g.value,i=e.message,o=e.resource,a=e.startLineNumber,s=e.startColumn,u=aW.append(r,TU("div"));u.style.marginTop="8px";var l=aW.append(u,TU("a"));l.innerText="".concat((0,PW.EZ)(o),"(").concat(a,", ").concat(s,"): "),l.style.cursor="pointer",t.add(aW.addDisposableListener(l,"click",(function(e){e.stopPropagation(),e.preventDefault(),n._openerService&&n._openerService.open(o,{fromUserGesture:!0,editorOptions:{selection:{startLineNumber:a,startColumn:s}}}).catch(LB.dL)})));var c=aW.append(u,TU("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=TU("div.hover-row.status-bar"),r=aW.append(i,TU("div.actions"));if(e.marker.severity!==OW.ZL.Error&&e.marker.severity!==OW.ZL.Warning&&e.marker.severity!==OW.ZL.Info||t.add(this.renderAction(r,{label:yB.N("view problem","View Problem"),commandId:kU.ID,run:function(){n._hover.hide(),wU.get(n._editor).showAtMarker(e.marker),n._editor.focus()}})),!this._editor.getOption(77)){var o=aW.append(r,TU("div"));this.recentMarkerCodeActionsInfo&&(OW.H0.makeKey(this.recentMarkerCodeActionsInfo.marker)===OW.H0.makeKey(e.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(o.textContent=yB.N("noQuickFixes","No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);var a=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?WB.JT.None:t.add((0,zB.Vg)((function(){return o.textContent=yB.N("checkingForQuickFixes","Checking for quick fixes...")}),200));o.textContent||(o.textContent=String.fromCharCode(160));var s=this.getCodeActions(e.marker);t.add((0,WB.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=yB.N("noQuickFixes","No quick fixes available"));o.style.display="none";var s=!1;t.add((0,WB.OF)((function(){s||i.dispose()}))),t.add(n.renderAction(r,{label:yB.N("quick fixes","Quick Fix..."),commandId:XW.Id,run:function(e){s=!0;var t=qW.get(n._editor),r=aW.getDomNodePagePosition(e);n._hover.hide(),t.showCodeActions(OU,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=aW.append(e,GV("div.action-container")),r=aW.append(i,GV("a.action"));return r.setAttribute("href","#"),r.setAttribute("role","button"),t.iconClass&&aW.append(r,GV("span.icon.".concat(t.iconClass))),aW.append(r,GV("span")).textContent=n?"".concat(t.label," (").concat(n,")"):t.label,aW.addDisposableListener(i,aW.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,zB.PG)((function(n){return Gz(t._editor.getModel(),new YB.e(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),OU,Fz.E.None,n)}))}}]),e}();AU=NU([MU(2,QV.i),MU(3,lW.d),MU(4,XV.v4)],AU);var RU,PU=n(83935),ZU=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,RU=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={"&":"&","<":"<",">":">",'"':""","'":"'"},r={"&":"&","<":"<",">":">",""":'"',"'":"'"},o=/(&|<|>|"|')/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 FU,jU=RU,HU=n(83312),BU=n(55076),zU=null===(FU=window.trustedTypes)||void 0===FU?void 0:FU.createPolicy("insane",{createHTML:function(e,t){return jU(e,t)}});function WU(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,PU.az)(i),a=function(t){var n;try{n=(0,HU.Q)(decodeURIComponent(t))}catch(i){}return n?(n=(0,rY.rs)(n,(function(t){return e.uris&&e.uris[t]?Mz.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=Mz.o.revive(i);return Mz.o.parse(t).toString()===r.toString()?t:n?JV.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 ZU.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=Mz.o.parse(e);i.baseUrl&&u.scheme===JV.lg.file&&(e=(0,PW.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=TB(r)),t=s(t,!1),i.baseUrl)&&(/^\w[\w\d+.-]*:/.test(t)||(t=(0,PW.i3)(i.baseUrl,t).toString()));return n=TB(n),!(t=TB(t))||t.match(/^data:|javascript:/i)||t.match(/^command:/i)&&!e.isTrusted||t.match(/^command:(\/\/\/)?_workbench\.downloadResource/i)?r:(t=t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),'<a href="#" data-href="'.concat(t,'" title="').concat(n||t,'">').concat(r,"</a>"))},l.paragraph=function(t){e.supportThemeIcons&&(t=(0,lV.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=cY.a.nextId(),a=Promise.all([n,u]).then((function(e){var t=o.querySelector('div[data-code="'.concat(r,'"]'));t&&aW.reset(t,e[0])})).catch((function(e){}));return i.asyncRenderCallback&&a.then(i.asyncRenderCallback),'<div class="code" data-code="'.concat(r,'">').concat((0,Dz.YU)(e),"</div>")}),i.actionHandler&&i.actionHandler.disposeables.add(_W.ju.any((0,mY.jt)(o,"click"),(0,mY.jt)(o,"auxclick"))((function(e){var t=new BU.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,LB.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,xB.f$)(c));var d=ZU.parse(c,r);if(o.innerHTML=function(e,t){var n,i=function(e){var t=[JV.lg.http,JV.lg.https,JV.lg.mailto,JV.lg.data,JV.lg.file,JV.lg.vscodeRemote,JV.lg.vscodeRemoteResource];e.isTrusted&&t.push(JV.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===zU||void 0===zU?void 0:zU.createHTML(t,i))&&void 0!==n?n:jU(t,i)}(e,d),n(),i.asyncRenderCallback){var h,f=(0,Na.Z)(o.getElementsByTagName("img"));try{var p=function(){var e=h.value,t=aW.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 VU,YU=n(54821),UU=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},KU=function(e,t){return function(n,i){t(n,i,e)}},qU=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},GU=function(){function e(t,n,i){(0,X.Z)(this,e),this._options=t,this._modeService=n,this._openerService=i,this._onDidRenderAsync=new _W.Q5,this.onDidRenderAsync=this._onDidRenderAsync.event}return(0,J.Z)(e,[{key:"dispose",value:function(){this._onDidRenderAsync.dispose()}},{key:"render",value:function(e,t,n){var i=new WB.SL;return{element:e?WU(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 qU(i,void 0,void 0,fn().mark((function i(){var r,o,a,s,u,l,c,d;return fn().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,Iz.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,YU.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(LB.dL)},disposeables:n}}}}]),e}();function $U(e,t,n){var i=Iz.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,LB.Cp)(e)}))}));return Promise.all(i).then(SB.kX)}GU._ttpTokenizer=null===(VU=window.trustedTypes)||void 0===VU?void 0:VU.createPolicy("tokenizeToString",{createHTML:function(e,t){return(0,YU.C)(e,t)}}),GU=UU([KU(1,PV.h),KU(2,XV.v4)],GU),(0,_B.sb)("_executeHoverProvider",(function(e,t){return $U(e,t,Lz.T.None)}));var QU=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},XU=function(e,t){return function(n,i){t(n,i,e)}},JU=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},eK=aW.$,tK=function(){function e(t,n){(0,X.Z)(this,e),this.range=t,this.contents=n}return(0,J.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,SB.fS)(e,t,MB):!(!NB(e)||!NB(t))&&MB(e,t))}(this.contents,t.contents)}}]),e}(),nK=function(){function e(t,n,i,r){(0,X.Z)(this,e),this._editor=t,this._hover=n,this._modeService=i,this._openerService=r}return(0,J.Z)(e,[{key:"createLoadingMessage",value:function(e){return new tK(e,[(new EB).appendText(yB.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,Na.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&&!DB(d)){var h=new YB.e(e.startLineNumber,l,e.startLineNumber,c);a.push(new tK(h,(0,SB._2)(d)))}}}catch(f){s.e(f)}finally{s.f()}return a}},{key:"computeAsync",value:function(e,t){return JU(this,void 0,void 0,fn().mark((function n(){var i,r,o,a,s,u,l;return fn().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(),Iz.xp.has(i)){n.next=5;break}return n.abrupt("return",Promise.resolve([]));case 5:return n.next=7,$U(i,new VB.L(e.startLineNumber,e.startColumn),t);case 7:r=n.sent,o=[],a=(0,Na.Z)(r),n.prev=10,a.s();case 12:if((s=a.n()).done){n.next=20;break}if(!DB((u=s.value).contents)){n.next=16;break}return n.abrupt("continue",18);case 16:l=u.range?YB.e.lift(u.range):e,o.push(new tK(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 WB.SL,o=(0,Na.Z)(e);try{for(o.s();!(n=o.n()).done;){var a,s=n.value,u=(0,Na.Z)(s.contents);try{var l=function(){var e=a.value;if(DB(e))return"continue";var n=eK("div.hover-row.markdown-hover"),o=aW.append(n,eK("div.hover-contents")),s=r.add(new GU({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}();nK=QU([XU(2,PV.h),XU(3,XV.v4)],nK);var iK=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},rK=function(){function e(t,n,i){(0,X.Z)(this,e),this.range=t,this.color=n,this.provider=i}return(0,J.Z)(e,[{key:"equals",value:function(e){return!1}}]),e}(),oK=(0,J.Z)((function e(t,n){(0,X.Z)(this,e),this.owner=t,this.data=n})),aK=function(){function e(t,n,i){(0,X.Z)(this,e),this._markerHoverParticipant=n,this._markdownHoverParticipant=i,this._editor=t,this._result=[],this._range=null}return(0,J.Z)(e,[{key:"setRange",value:function(e){this._range=e,this._result=[]}},{key:"clearResult",value:function(){this._result=[]}},{key:"computeAsync",value:function(e){return iK(this,void 0,void 0,fn().mark((function t(){var n,i=this;return fn().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 oK(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=RV.get(this._editor),l=(0,Na.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 oK(null,new rK(YB.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 oK(e._markdownHoverParticipant,t)})));var v=this._markerHoverParticipant.computeSync(this._range,a);return s=s.concat(v.map((function(t){return new oK(e._markerHoverParticipant,t)}))),(0,SB.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 oK(this._markdownHoverParticipant,this._markdownHoverParticipant.createLoadingMessage(this._range));return this._result.slice(0).concat([e])}return this._result.slice(0)}}]),e}(),sK=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a;return(0,X.Z)(this,n),(a=t.call(this))._hoverVisibleKey=i,a._themeService=o,a.allowEditorOverflow=!0,a._markerHoverParticipant=r.createInstance(AU,e,(0,Br.Z)(a)),a._markdownHoverParticipant=r.createInstance(nK,e,(0,Br.Z)(a)),a._hover=a._register(new $V),a._id=n.ID,a._editor=e,a._isVisible=!1,a._stoleFocus=!1,a._renderDisposable=null,a.onkeydown(a._hover.containerDomNode,(function(e){e.equals(9)&&a.hide()})),a._register(a._editor.onDidChangeConfiguration((function(e){e.hasChanged(40)&&a._updateFont()}))),a._editor.onDidLayoutChange((function(){return a.layout()})),a.layout(),a._editor.addContentWidget((0,Br.Z)(a)),a._showAtPosition=null,a._showAtRange=null,a._stoleFocus=!1,a._messages=[],a._lastRange=null,a._computer=new aK(a._editor,a._markerHoverParticipant,a._markdownHoverParticipant),a._highlightDecorations=[],a._isChangingDecorations=!1,a._shouldFocus=!1,a._colorPicker=null,a._hoverOperation=new KV(a._computer,(function(e){return a._withResult(e,!0)}),null,(function(e){return a._withResult(e,!1)}),a._editor.getOption(50).delay),a._register(aW.addStandardDisposableListener(a.getDomNode(),aW.EventType.FOCUS,(function(){a._colorPicker&&a.getDomNode().classList.add("colorpicker-hover")}))),a._register(aW.addStandardDisposableListener(a.getDomNode(),aW.EventType.BLUR,(function(){a.getDomNode().classList.remove("colorpicker-hover")}))),a._register(e.onDidChangeConfiguration((function(){a._hoverOperation.setHoverTime(a._editor.getOption(50).delay)}))),a._register(Iz.RW.onDidChange((function(){a._isVisible&&a._lastRange&&a._messages.length>0&&(a._messages=a._messages.map((function(e){var t,n;if(e.data instanceof rK&&(null===(t=a._lastRange)||void 0===t?void 0:t.intersectRanges(e.data.range))&&(null===(n=a._colorPicker)||void 0===n?void 0:n.model.color)){var i=a._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 oK(e.owner,new rK(e.data.range,r,e.data.provider))}return e})),a._hover.contentsDomNode.textContent="",a._renderMessages(a._lastRange,a._messages))}))),a}return(0,J.Z)(n,[{key:"dispose",value:function(){this._hoverOperation.cancel(),this._editor.removeContentWidget(this),(0,Qz.Z)((0,Xz.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?YB.e.lift(t[0].data.range):null,a=document.createDocumentFragment(),s=!1,u=new WB.SL,l=[],c=[];t.forEach((function(e){var t=e.data;if(t.range)if(r=Math.min(r,t.range.startColumn),o=o?YB.e.plusRange(o,t.range):YB.e.lift(t.range),t instanceof rK){s=!0;var n=t.color,d=n.red,h=n.green,f=n.blue,p=n.alpha,g=new MV.VS(Math.round(255*d),Math.round(255*h),Math.round(255*f),p),v=new MV.Il(g);if(!i._editor.hasModel())return;var m=i._editor.getModel(),_=new YB.e(t.range.startLineNumber,t.range.startColumn,t.range.endLineNumber,t.range.endColumn),y={range:t.range,color:t.color},b=new ZV(v,[],0),w=new UV(a,b,i._editor.getOption(125),i._themeService);TV(m,y,t.provider,Lz.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 YB.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,Ct.Z)(b.presentation.additionalTextEdits),i._editor.executeEdits("colorpicker",e),i.hide()),i._editor.pushUndoStop(),_=t},o=function(e){return TV(m,{range:_,color:{red:e.rgba.r/255,green:e.rgba.g/255,blue:e.rgba.b/255,alpha:e.rgba.a}},t.provider,Lz.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,WB.F8)(s,l,w,u)}}))}else t instanceof IU?l.push(t):t instanceof tK&&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 VB.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}(FV.$);sK.ID="editor.contrib.modesContentHoverWidget",sK._DECORATION_OPTIONS=KB.qx.register({className:"hoverHighlight"}),(0,$B.Ic)((function(e,t){var n=e.getColor(GB.ur);n&&t.addRule(".monaco-hover .hover-contents a.code-link span:hover { color: ".concat(n,"; }"))}));var uK=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this))._id=e,r._editor=i,r._isVisible=!1,r._domNode=document.createElement("div"),r._domNode.className="monaco-hover hidden",r._domNode.setAttribute("aria-hidden","true"),r._domNode.setAttribute("role","tooltip"),r._showAtLineNumber=-1,r._register(r._editor.onDidChangeConfiguration((function(e){e.hasChanged(40)&&r.updateFont()}))),r._editor.addOverlayWidget((0,Br.Z)(r)),r}return(0,J.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,Qz.Z)((0,Xz.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,Ct.Z)(t),(0,Ct.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}(FV.$),lK=function(){function e(t){(0,X.Z)(this,e),this._editor=t,this._lineNumber=-1,this._result=[]}return(0,J.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,Na.Z)(t);try{for(r.s();!(i=r.n()).done;){var o=i.value;if(o.options.glyphMarginClassName){var a=o.options.glyphMarginHoverMessage;a&&!DB(a)&&n.push.apply(n,(0,Ct.Z)((0,SB._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}(),cK=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:XV.SW;return(0,X.Z)(this,n),(r=t.call(this,n.ID,e))._renderDisposeables=r._register(new WB.SL),r._messages=[],r._lastLineNumber=-1,r._markdownRenderer=r._register(new GU({editor:r._editor},i,o)),r._computer=new lK(r._editor),r._hoverOperation=new KV(r._computer,(function(e){return r._withResult(e)}),void 0,(function(e){return r._withResult(e)}),300),r}return(0,J.Z)(n,[{key:"dispose",value:function(){this._hoverOperation.cancel(),(0,Qz.Z)((0,Xz.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,Qz.Z)((0,Xz.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,Na.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,aW.$)("div.hover-row",void 0,a.element))}}catch(s){r.e(s)}finally{r.f()}this.updateContents(i),this.showAt(e)}}]),n}(uK);cK.ID="editor.contrib.modesGlyphHoverWidget";var dK=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},hK=function(){function e(t,n,i,r){(0,X.Z)(this,e),this.isProviderFirst=t,this.parent=n,this.link=i,this._rangeCallback=r,this.id=cY.a.nextId()}return(0,J.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,yB.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,PW.EZ)(this.uri),this.range.startLineNumber,this.range.startColumn,t.value):(0,yB.N)("aria.oneReference","symbol in {0} on line {1} at column {2}",(0,PW.EZ)(this.uri),this.range.startLineNumber,this.range.startColumn)}}]),e}(),fK=function(){function e(t){(0,X.Z)(this,e),this._modelReference=t}return(0,J.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 YB.e(i,s.startColumn,i,r),l=new YB.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}(),pK=function(){function e(t,n){(0,X.Z)(this,e),this.parent=t,this.uri=n,this.children=[],this._previews=new gV.Y9}return(0,J.Z)(e,[{key:"dispose",value:function(){(0,WB.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,yB.N)("aria.fileReferences.1","1 symbol in {0}, full path {1}",(0,PW.EZ)(this.uri),this.uri.fsPath):(0,yB.N)("aria.fileReferences.N","{0} symbols in {1}, full path {2}",e,(0,PW.EZ)(this.uri),this.uri.fsPath)}},{key:"resolve",value:function(e){return dK(this,void 0,void 0,fn().mark((function t(){var n,i,r,o;return fn().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,Na.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 fK(o)),t.next=19;break;case 16:t.prev=16,t.t0=t.catch(9),(0,LB.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}(),gK=function(){function e(t,n){var i=this;(0,X.Z)(this,e),this.groups=[],this.references=[],this._onDidChangeReferenceRange=new _W.Q5,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=t,this._title=n;var r,o=(0,ne.Z)(t,1)[0];t.sort(e._compareReferences);var a,s=(0,Na.Z)(t);try{for(s.s();!(a=s.n()).done;){var u=a.value;if(r&&PW.SF.isEqual(r.uri,u.uri,!0)||(r=new pK(this,u.uri),this.groups.push(r)),0===r.children.length||0!==e._compareReferences(u,r.children[r.children.length-1])){var l=new hK(o===u,r,u,(function(e){return i._onDidChangeReferenceRange.fire(e)}));this.references.push(l),r.children.push(l)}}}catch(c){s.e(c)}finally{s.f()}}return(0,J.Z)(e,[{key:"dispose",value:function(){(0,WB.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,yB.N)("aria.result.0","No results found"):1===this.references.length?(0,yB.N)("aria.result.1","Found 1 symbol in {0}",this.references[0].uri.fsPath):1===this.groups.length?(0,yB.N)("aria.result.n1","Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):(0,yB.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:Dz.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,Na.Z)(this.references);try{for(i.s();!(n=i.n()).done;){var r=n.value;if(r.uri.toString()===e.toString()&&YB.e.containsPosition(r.range,t))return r}}catch(o){i.e(o)}finally{i.f()}}},{key:"firstReference",value:function(){var e,t=(0,Na.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 PW.SF.compare(e.uri,t.uri)||YB.e.compareRangesUsingStarts(e.range,t.range)}}]),e}(),vK=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function mK(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,LB.Cp)(e)}))}));return Promise.all(r).then((function(e){var t,n=[],i=(0,Na.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;Array.isArray(r)?n.push.apply(n,(0,Ct.Z)(r)):r&&n.push(r)}}catch(o){i.e(o)}finally{i.f()}return n}))}function _K(e,t,n){return mK(e,t,Iz.Ct,(function(e,t,i){return e.provideDefinition(t,i,n)}))}function yK(e,t,n){return mK(e,t,Iz.RN,(function(e,t,i){return e.provideDeclaration(t,i,n)}))}function bK(e,t,n){return mK(e,t,Iz.vI,(function(e,t,i){return e.provideImplementation(t,i,n)}))}function wK(e,t,n){return mK(e,t,Iz.tA,(function(e,t,i){return e.provideTypeDefinition(t,i,n)}))}function CK(e,t,n,i){var r=this;return mK(e,t,Iz.FL,(function(e,t,o){return vK(r,void 0,void 0,fn().mark((function r(){var a,s;return fn().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 kK(e){return vK(this,void 0,void 0,fn().mark((function t(){var n,i,r;return fn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e();case 2:return n=t.sent,i=new gK(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,_B.sb)("_executeDefinitionProvider",(function(e,t){return kK((function(){return _K(e,t,Lz.T.None)}))})),(0,_B.sb)("_executeDeclarationProvider",(function(e,t){return kK((function(){return yK(e,t,Lz.T.None)}))})),(0,_B.sb)("_executeImplementationProvider",(function(e,t){return kK((function(){return bK(e,t,Lz.T.None)}))})),(0,_B.sb)("_executeTypeDefinitionProvider",(function(e,t){return kK((function(){return wK(e,t,Lz.T.None)}))})),(0,_B.sb)("_executeReferenceProvider",(function(e,t){return kK((function(){return CK(e,t,!1,Lz.T.None)}))}));var SK=n(44148),xK=n(76191),LK=n(5677),EK=n(57502),DK=n(35215),NK=n(50482),MK=n(61743),TK=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},IK=function(e,t){return function(n,i){t(n,i,e)}},OK=function(){function e(t){(0,X.Z)(this,e),this._resolverService=t}return(0,J.Z)(e,[{key:"hasChildren",value:function(e){return e instanceof gK||e instanceof pK}},{key:"getChildren",value:function(e){if(e instanceof gK)return e.groups;if(e instanceof pK)return e.resolve(this._resolverService).then((function(e){return e.children}));throw new Error("bad tree")}}]),e}();OK=TK([IK(0,SK.S)],OK);var AK=function(){function e(){(0,X.Z)(this,e)}return(0,J.Z)(e,[{key:"getHeight",value:function(){return 23}},{key:"getTemplateId",value:function(e){return e instanceof pK?FK.id:HK.id}}]),e}(),RK=function(){function e(t){(0,X.Z)(this,e),this._keybindingService=t}return(0,J.Z)(e,[{key:"getKeyboardNavigationLabel",value:function(e){var t;if(e instanceof hK){var n=null===(t=e.parent.getPreview(e))||void 0===t?void 0:t.preview(e.range);if(n)return n.value}return(0,PW.EZ)(e.uri)}}]),e}();RK=TK([IK(0,lW.d)],RK);var PK=function(){function e(){(0,X.Z)(this,e)}return(0,J.Z)(e,[{key:"getId",value:function(e){return e instanceof hK?e.id:e.uri}}]),e}(),ZK=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o;(0,X.Z)(this,n),(o=t.call(this))._uriLabel=i;var a=document.createElement("div");return a.classList.add("reference-file"),o.file=o._register(new LK.g(a,{supportHighlights:!0})),o.badge=new EK.Z(aW.append(a,aW.$(".count"))),o._register((0,DK.WZ)(o.badge,r)),e.appendChild(a),o}return(0,J.Z)(n,[{key:"set",value:function(e,t){var n=(0,PW.XX)(e.uri);this.file.setLabel(tY(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,yB.N)("referencesCount","{0} references",i)):this.badge.setTitleFormat((0,yB.N)("referenceCount","{0} reference",i))}}]),n}(WB.JT);ZK=TK([IK(1,XY.e),IK(2,$B.XE)],ZK);var FK=function(){function e(t){(0,X.Z)(this,e),this._instantiationService=t,this.templateId=e.id}return(0,J.Z)(e,[{key:"renderTemplate",value:function(e){return this._instantiationService.createInstance(ZK,e)}},{key:"renderElement",value:function(e,t,n){n.set(e.element,(0,NK.mB)(e.filterData))}},{key:"disposeTemplate",value:function(e){e.dispose()}}]),e}();FK.id="FileReferencesRenderer",FK=TK([IK(0,oW.TG)],FK);var jK=function(){function e(t){(0,X.Z)(this,e),this.label=new MK.q(t,!1)}return(0,J.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&&!NK.CL.isDefault(t)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(r,(0,NK.mB)(t))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(r,[o]))}else this.label.set("".concat((0,PW.EZ)(e.uri),":").concat(e.range.startLineNumber+1,":").concat(e.range.startColumn+1))}}]),e}(),HK=function(){function e(){(0,X.Z)(this,e),this.templateId=e.id}return(0,J.Z)(e,[{key:"renderTemplate",value:function(e){return new jK(e)}},{key:"renderElement",value:function(e,t,n){n.set(e.element,e.filterData)}},{key:"disposeTemplate",value:function(){}}]),e}();HK.id="OneReferenceRenderer";var BK=function(){function e(){(0,X.Z)(this,e)}return(0,J.Z)(e,[{key:"getWidgetAriaLabel",value:function(){return(0,yB.N)("treeAriaLabel","References")}},{key:"getAriaLabel",value:function(e){return e.ariaMessage}}]),e}(),zK=n(2285),WK=n(44393),VK=n(45822),YK=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},UK=function(e,t){return function(n,i){t(n,i,e)}},KK=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},qK=function(){function e(t,n){var i=this;(0,X.Z)(this,e),this._editor=t,this._model=n,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new WB.SL,this._callOnModelChange=new WB.SL,this._callOnDispose.add(this._editor.onDidChangeModel((function(){return i._onModelChanged()}))),this._onModelChanged()}return(0,J.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,Na.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,Na.Z)(this._decorations);try{for(i.s();!(n=i.n()).done;){var r=(0,ne.Z)(n.value,2),o=r[0],a=r[1],s=t.getDecorationRange(o);if(s){var u=!1;if(!YB.e.equalsRange(s,a.range)){if(YB.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,Ct.Z)(this._decorations.keys()),[]),this._decorations.clear()}}]),e}();qK.DecorationOptions=KB.qx.register({stickiness:1,className:"reference-decoration"});var GK=function(){function e(){(0,X.Z)(this,e),this.ratio=.7,this.heightInLines=18}return(0,J.Z)(e,null,[{key:"fromJSON",value:function(e){var t,n;try{var i=JSON.parse(e);t=i.ratio,n=i.heightInLines}catch(FU){}return{ratio:t||.7,heightInLines:n||18}}}]),e}(),$K=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n)}(zK.ls),QK=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o,a,s,u,l,c,d){var h;return(0,X.Z)(this,n),(h=t.call(this,e,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0},s))._defaultTreeKeyboardSupport=i,h.layoutData=r,h._textModelResolverService=a,h._instantiationService=s,h._peekViewService=u,h._uriLabel=l,h._undoRedoService=c,h._keybindingService=d,h._disposeOnNewModel=new WB.SL,h._callOnDispose=new WB.SL,h._onDidSelectReference=new _W.Q5,h.onDidSelectReference=h._onDidSelectReference.event,h._dim=new aW.Dimension(0,0),h._applyTheme(o.getColorTheme()),h._callOnDispose.add(o.onDidColorThemeChange(h._applyTheme.bind((0,Br.Z)(h)))),h._peekViewService.addExclusiveWidget(e,(0,Br.Z)(h)),h.create(),h}return(0,J.Z)(n,[{key:"dispose",value:function(){this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),(0,WB.B9)(this._preview),(0,WB.B9)(this._previewNotAvailableMessage),(0,WB.B9)(this._tree),(0,WB.B9)(this._previewModelReference),this._splitView.dispose(),(0,Qz.Z)((0,Xz.Z)(n.prototype),"dispose",this).call(this)}},{key:"_applyTheme",value:function(e){var t=e.getColor(HY)||MV.Il.transparent;this.style({arrowColor:t,frameColor:t,headerBackgroundColor:e.getColor(ZY)||MV.Il.transparent,primaryHeadingColor:e.getColor(FY),secondaryHeadingColor:e.getColor(jY)})}},{key:"show",value:function(e){this.editor.revealRangeInCenterIfOutsideViewport(e,0),(0,Qz.Z)((0,Xz.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=aW.append(e,aW.$("div.messages")),aW.hide(this._messageContainer),this._splitView=new WK.z(e,{orientation:1}),this._previewContainer=aW.append(e,aW.$("div.preview.inline"));this._preview=this._instantiationService.createInstance(uY,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),aW.hide(this._previewContainer),this._previewNotAvailableMessage=new KB.yO(yB.N("missingPreviewMessage","no preview available"),KB.yO.DEFAULT_CREATION_OPTIONS,null,null,this._undoRedoService),this._treeContainer=aW.append(e,aW.$("div.ref-tree.inline"));var n={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new BK,keyboardNavigationLabelProvider:this._instantiationService.createInstance(RK),identityProvider:new PK,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:BY}};this._defaultTreeKeyboardSupport&&this._callOnDispose.add(aW.addStandardDisposableListener(this._treeContainer,"keydown",(function(e){e.equals(9)&&(t._keybindingService.dispatchEvent(e,e.target),e.stopPropagation())}),!0)),this._tree=this._instantiationService.createInstance($K,"ReferencesWidget",this._treeContainer,new AK,[this._instantiationService.createInstance(FK),this._instantiationService.createInstance(HK)],this._instantiationService.createInstance(OK),n),this._splitView.addView({onDidChange:_W.ju.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:function(e){t._preview.layout({height:t._dim.height,width:e})}},WK.M.Distribute),this._splitView.addView({onDidChange:_W.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)}},WK.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 hK&&("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")})),aW.hide(this._treeContainer)}},{key:"_onWidth",value:function(e){this._dim&&this._doLayoutBody(this._dim.height,e)}},{key:"_doLayoutBody",value:function(e,t){(0,Qz.Z)((0,Xz.Z)(n.prototype),"_doLayoutBody",this).call(this,e,t),this._dim=new aW.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=yB.N("noResults","No results"),aW.show(this._messageContainer),Promise.resolve(void 0)):(aW.hide(this._messageContainer),this._decorationsManager=new qK(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"),aW.show(this._treeContainer),aW.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,ne.Z)(e,1)[0];return t instanceof hK?t:t instanceof pK&&t.children.length>0?t.children[0]:void 0}},{key:"revealReference",value:function(e){return KK(this,void 0,void 0,fn().mark((function t(){return fn().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 KK(this,void 0,void 0,fn().mark((function n(){var i,r,o,a,s;return fn().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!==JV.lg.inMemory?this.setTitle((0,PW.Hx)(e.uri),this._uriLabel.getUriLabel((0,PW.XX)(e.uri))):this.setTitle(yB.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,WB.B9)(this._previewModelReference),(o=r.object)?(a=this._preview.getModel()===o.textEditorModel?0:1,s=YB.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}(RY);QK=YK([UK(3,$B.XE),UK(4,SK.S),UK(5,oW.TG),UK(6,IY),UK(7,XY.e),UK(8,VK.tJ),UK(9,lW.d)],QK),(0,$B.Ic)((function(e,t){var n=e.getColor(qY);n&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { background-color: ".concat(n,"; }"));var i=e.getColor(GY);i&&t.addRule(".monaco-editor .reference-zone-widget .preview .reference-decoration { background-color: ".concat(i,"; }"));var r=e.getColor($Y);r&&t.addRule(".monaco-editor .reference-zone-widget .preview .reference-decoration { border: 2px solid ".concat(r,"; box-sizing: border-box; }"));var o=e.getColor(GB.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(BY);a&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree { background-color: ".concat(a,"; }"));var s=e.getColor(zY);s&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree { color: ".concat(s,"; }"));var u=e.getColor(WY);u&&t.addRule(".monaco-editor .reference-zone-widget .ref-tree .reference-file { color: ".concat(u,"; }"));var l=e.getColor(VY);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(YY);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(UY);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(KY);h&&t.addRule(".monaco-editor .reference-zone-widget .preview .monaco-editor .margin {"+"\tbackground-color: ".concat(h,";")+"}")}));var XK=n(51519),JK=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},eq=function(e,t){return function(n,i){t(n,i,e)}},tq=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},nq=new kB.uy("referenceSearchVisible",!1,yB.N("referenceSearchVisible","Whether reference peek is visible, like 'Peek References' or 'Peek Definition'")),iq=function(){function e(t,n,i,r,o,a,s,u){(0,X.Z)(this,e),this._defaultTreeKeyboardSupport=t,this._editor=n,this._editorService=r,this._notificationService=o,this._instantiationService=a,this._storageService=s,this._configurationService=u,this._disposables=new WB.SL,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=nq.bindTo(i)}return(0,J.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=GK.fromJSON(this._storageService.get(o,0,"{}"));this._widget=this._instantiationService.createInstance(QK,this._editor,this._defaultTreeKeyboardSupport,a),this._widget.setTitle(yB.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(yB.N("metaTitle.N","{0} ({1})",r._model.title,r._model.references.length));var t=r._editor.getModel().uri,n=new VB.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 tq(this,void 0,void 0,fn().mark((function t(){var n,i,r,o,a;return fn().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 tq(this,void 0,void 0,fn().mark((function t(){return fn().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=YB.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,zB.PG)((function(e){return Promise.resolve(a)})),null!==(r=n._peekMode)&&void 0!==r&&r)}else n.closeWidget()}),(function(e){n._ignoreModelChangeEvent=!1,(0,LB.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 rq(e,t){var n=function(e){var t=e.get(fz.$).getFocusedCodeEditor();return t instanceof uY?t.getParentEditor():t}(e);if(n){var i=iq.get(n);i&&t(i)}}iq.ID="editor.contrib.referencesController",iq=JK([eq(2,kB.i6),eq(3,fz.$),eq(4,AW.lT),eq(5,oW.TG),eq(6,vV.Uy),eq(7,IV.Ui)],iq),XK.W.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:(0,CB.gx)(2089,60),when:kB.Ao.or(nq,NY.inPeekEditor),handler:function(e){rq(e,(function(e){e.changeFocusBetweenPreviewAndReferences()}))}}),XK.W.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:kB.Ao.or(nq,NY.inPeekEditor),handler:function(e){rq(e,(function(e){e.goToNextOrPreviousReference(!0)}))}}),XK.W.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:kB.Ao.or(nq,NY.inPeekEditor),handler:function(e){rq(e,(function(e){e.goToNextOrPreviousReference(!1)}))}}),jz.P.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference"),jz.P.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference"),jz.P.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch"),jz.P.registerCommand("closeReferenceSearch",(function(e){return rq(e,(function(e){return e.closeWidget()}))})),XK.W.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:kB.Ao.and(NY.inPeekEditor,kB.Ao.not("config.editor.stablePeek"))}),XK.W.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:kB.Ao.and(nq,kB.Ao.not("config.editor.stablePeek"))}),XK.W.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:kB.Ao.and(nq,zK.CQ),handler:function(e){var t,n=null===(t=e.get(zK.Lw).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(n)&&n[0]instanceof hK&&rq(e,(function(e){return e.revealReference(n[0])}))}}),XK.W.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:kB.Ao.and(nq,zK.CQ),handler:function(e){var t,n=null===(t=e.get(zK.Lw).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(n)&&n[0]instanceof hK&&rq(e,(function(e){return e.openReference(n[0],!0,!0)}))}}),jz.P.registerCommand("openReference",(function(e){var t,n=null===(t=e.get(zK.Lw).lastFocusedList)||void 0===t?void 0:t.getFocus();Array.isArray(n)&&n[0]instanceof hK&&rq(e,(function(e){return e.openReference(n[0],!1,!0)}))}));var oq=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},aq=function(e,t){return function(n,i){t(n,i,e)}},sq=new kB.uy("hasSymbols",!1,(0,yB.N)("hasSymbols","Whether there are symbol locations that can be navigated via keyboard-only.")),uq=(0,oW.yh)("ISymbolNavigationService"),lq=function(){function e(t,n,i,r){(0,X.Z)(this,e),this._editorService=n,this._notificationService=i,this._keybindingService=r,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=sq.bindTo(t)}return(0,J.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 cq(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,Na.Z)(n.references);try{for(l.s();!(a=l.n()).done;){var c=a.value;if((0,PW.Xy)(c.uri,r.uri))s=!0,u=u||YB.e.containsPosition(c.range,o);else if(s)break}}catch(d){l.e(d)}finally{l.f()}s&&u||t.reset()}}}}));this._currentState=(0,WB.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:YB.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,yB.N)("location.kb","Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,t.getLabel()):(0,yB.N)("location","Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(n)}}]),e}();lq=oq([aq(0,kB.i6),aq(1,fz.$),aq(2,AW.lT),aq(3,lW.d)],lq),(0,pV.z)(uq,lq,!0),(0,_B.fK)(new(function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.gotoNextSymbolFromResult",precondition:sq,kbOpts:{weight:100,primary:70}})}return(0,J.Z)(n,[{key:"runEditorCommand",value:function(e,t){return e.get(uq).revealNext(t)}}]),n}(_B._l))),XK.W.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:sq,primary:9,handler:function(e){e.get(uq).reset()}});var cq=function(){function e(t){(0,X.Z)(this,e),this._listener=new Map,this._disposables=new WB.SL,this._onDidChange=new _W.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,J.Z)(e,[{key:"dispose",value:function(){this._disposables.dispose(),this._onDidChange.dispose(),(0,WB.B9)(this._listener.values())}},{key:"_onDidAddEditor",value:function(e){var t=this;this._listener.set(e,(0,WB.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}();cq=oq([aq(0,fz.$)],cq);var dq,hq,fq,pq,gq,vq,mq,_q,yq=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))};QB.BH.appendMenuItem(QB.eH.EditorContext,{submenu:QB.eH.EditorContextPeek,title:yB.N("peek.submenu","Peek"),group:"navigation",order:100});var bq=new Set;function wq(e){var t=new e;return(0,_B.QG)(t),bq.add(t.id),t}var Cq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this,i))._configuration=e,r}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=this;if(!t.hasModel())return Promise.resolve(void 0);var i=e.get(AW.lT),r=e.get(fz.$),o=e.get(Fz.e),a=e.get(uq),s=t.getModel(),u=t.getPosition(),l=new Tz.Dl(t,5),c=(0,zB.eP)(this._getLocationModel(s,u,l.token),l.token).then((function(e){return yq(n,void 0,void 0,fn().mark((function n(){var i,o,c,d;return fn().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,IB.Z9)(e.ariaMessage),e.referenceAt(s.uri,u)&&(o=this._getAlternativeCommand(t))!==this.id&&bq.has(o)&&(i=t.getAction(o)),0!==(c=e.references.length)){n.next=9;break}this._configuration.muteMessage||(d=s.getWordAtPosition(u),nW.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 yq(this,void 0,void 0,fn().mark((function r(){var o,a,s,u;return fn().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=this._getGoToPreference(n),n instanceof uY||!(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 yq(this,void 0,void 0,fn().mark((function o(){var a,s,u,l;return fn().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(a=void 0,(0,Iz.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:YB.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=iq.get(e);n&&e.hasModel()?n.toggleWidget(e.getSelection(),(0,zB.PG)((function(e){return Promise.resolve(t)})),this._configuration.openInPeek):t.dispose()}}]),n}(_B.R6),kq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return yq(this,void 0,void 0,fn().mark((function i(){return fn().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=gK,i.next=3,_K(e,t,n);case 3:return i.t1=i.sent,i.t2=yB.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?yB.N("noResultWord","No definition found for '{0}'",e.word):yB.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}(Cq),Sq=dz.$L&&!cz.$W?2118:70;wq(((dq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;return(0,X.Z)(this,n),e=t.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:n.id,label:yB.N("actions.goToDecl.label","Go to Definition"),alias:"Go to Definition",precondition:kB.Ao.and(bB.u.hasDefinitionProvider,bB.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:Sq,weight:100},contextMenuOpts:{group:"navigation",order:1.1},menuOpts:{menuId:QB.eH.MenubarGoMenu,group:"4_symbol_nav",order:2,title:yB.N({key:"miGotoDefinition",comment:["&& denotes a mnemonic"]},"Go to &&Definition")}}),jz.P.registerCommandAlias("editor.action.goToDeclaration",n.id),e}return(0,J.Z)(n)}(kq)).id="editor.action.revealDefinition",dq)),wq(((hq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;return(0,X.Z)(this,n),e=t.call(this,{openToSide:!0,openInPeek:!1,muteMessage:!1},{id:n.id,label:yB.N("actions.goToDeclToSide.label","Open Definition to the Side"),alias:"Open Definition to the Side",precondition:kB.Ao.and(bB.u.hasDefinitionProvider,bB.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,Sq),weight:100}}),jz.P.registerCommandAlias("editor.action.openDeclarationToTheSide",n.id),e}return(0,J.Z)(n)}(kq)).id="editor.action.revealDefinitionAside",hq)),wq(((fq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;return(0,X.Z)(this,n),e=t.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:n.id,label:yB.N("actions.previewDecl.label","Peek Definition"),alias:"Peek Definition",precondition:kB.Ao.and(bB.u.hasDefinitionProvider,NY.notInPeekEditor,bB.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:582,linux:{primary:3140},weight:100},contextMenuOpts:{menuId:QB.eH.EditorContextPeek,group:"peek",order:2}}),jz.P.registerCommandAlias("editor.action.previewDeclaration",n.id),e}return(0,J.Z)(n)}(kq)).id="editor.action.peekDefinition",fq));var xq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return yq(this,void 0,void 0,fn().mark((function i(){return fn().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=gK,i.next=3,yK(e,t,n);case 3:return i.t1=i.sent,i.t2=yB.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?yB.N("decl.noResultWord","No declaration found for '{0}'",e.word):yB.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}(Cq);wq(((pq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:n.id,label:yB.N("actions.goToDeclaration.label","Go to Declaration"),alias:"Go to Declaration",precondition:kB.Ao.and(bB.u.hasDeclarationProvider,bB.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{group:"navigation",order:1.3},menuOpts:{menuId:QB.eH.MenubarGoMenu,group:"4_symbol_nav",order:3,title:yB.N({key:"miGotoDeclaration",comment:["&& denotes a mnemonic"]},"Go to &&Declaration")}})}return(0,J.Z)(n,[{key:"_getNoResultFoundMessage",value:function(e){return e&&e.word?yB.N("decl.noResultWord","No declaration found for '{0}'",e.word):yB.N("decl.generic.noResults","No declaration found")}}]),n}(xq)).id="editor.action.revealDeclaration",pq)),wq(function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",label:yB.N("actions.peekDecl.label","Peek Declaration"),alias:"Peek Declaration",precondition:kB.Ao.and(bB.u.hasDeclarationProvider,NY.notInPeekEditor,bB.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{menuId:QB.eH.EditorContextPeek,group:"peek",order:3}})}return(0,J.Z)(n)}(xq));var Lq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return yq(this,void 0,void 0,fn().mark((function i(){return fn().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=gK,i.next=3,wK(e,t,n);case 3:return i.t1=i.sent,i.t2=yB.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?yB.N("goToTypeDefinition.noResultWord","No type definition found for '{0}'",e.word):yB.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}(Cq);wq(((gq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:n.ID,label:yB.N("actions.goToTypeDefinition.label","Go to Type Definition"),alias:"Go to Type Definition",precondition:kB.Ao.and(bB.u.hasTypeDefinitionProvider,bB.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:0,weight:100},contextMenuOpts:{group:"navigation",order:1.4},menuOpts:{menuId:QB.eH.MenubarGoMenu,group:"4_symbol_nav",order:3,title:yB.N({key:"miGotoTypeDefinition",comment:["&& denotes a mnemonic"]},"Go to &&Type Definition")}})}return(0,J.Z)(n)}(Lq)).ID="editor.action.goToTypeDefinition",gq)),wq(((vq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:n.ID,label:yB.N("actions.peekTypeDefinition.label","Peek Type Definition"),alias:"Peek Type Definition",precondition:kB.Ao.and(bB.u.hasTypeDefinitionProvider,NY.notInPeekEditor,bB.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{menuId:QB.eH.EditorContextPeek,group:"peek",order:4}})}return(0,J.Z)(n)}(Lq)).ID="editor.action.peekTypeDefinition",vq));var Eq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return yq(this,void 0,void 0,fn().mark((function i(){return fn().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=gK,i.next=3,bK(e,t,n);case 3:return i.t1=i.sent,i.t2=yB.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?yB.N("goToImplementation.noResultWord","No implementation found for '{0}'",e.word):yB.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}(Cq);wq(((mq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:n.ID,label:yB.N("actions.goToImplementation.label","Go to Implementations"),alias:"Go to Implementations",precondition:kB.Ao.and(bB.u.hasImplementationProvider,bB.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:2118,weight:100},menuOpts:{menuId:QB.eH.MenubarGoMenu,group:"4_symbol_nav",order:4,title:yB.N({key:"miGotoImplementation",comment:["&& denotes a mnemonic"]},"Go to &&Implementations")},contextMenuOpts:{group:"navigation",order:1.45}})}return(0,J.Z)(n)}(Eq)).ID="editor.action.goToImplementation",mq)),wq(((_q=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:n.ID,label:yB.N("actions.peekImplementation.label","Peek Implementations"),alias:"Peek Implementations",precondition:kB.Ao.and(bB.u.hasImplementationProvider,NY.notInPeekEditor,bB.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:3142,weight:100},contextMenuOpts:{menuId:QB.eH.EditorContextPeek,group:"peek",order:5}})}return(0,J.Z)(n)}(Eq)).ID="editor.action.peekImplementation",_q));var Dq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"_getNoResultFoundMessage",value:function(e){return e?yB.N("references.no","No references found for '{0}'",e.word):yB.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}(Cq);wq(function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",label:yB.N("goToReferences.label","Go to References"),alias:"Go to References",precondition:kB.Ao.and(bB.u.hasReferenceProvider,NY.notInPeekEditor,bB.u.isInWalkThroughSnippet.toNegated()),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:1094,weight:100},contextMenuOpts:{group:"navigation",order:1.45},menuOpts:{menuId:QB.eH.MenubarGoMenu,group:"4_symbol_nav",order:5,title:yB.N({key:"miGotoReference",comment:["&& denotes a mnemonic"]},"Go to &&References")}})}return(0,J.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return yq(this,void 0,void 0,fn().mark((function i(){return fn().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=gK,i.next=3,CK(e,t,!0,n);case 3:return i.t1=i.sent,i.t2=yB.N("ref.title","References"),i.abrupt("return",new i.t0(i.t1,i.t2));case 6:case"end":return i.stop()}}),i)})))}}]),n}(Dq)),wq(function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",label:yB.N("references.action.label","Peek References"),alias:"Peek References",precondition:kB.Ao.and(bB.u.hasReferenceProvider,NY.notInPeekEditor,bB.u.isInWalkThroughSnippet.toNegated()),contextMenuOpts:{menuId:QB.eH.EditorContextPeek,group:"peek",order:6}})}return(0,J.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return yq(this,void 0,void 0,fn().mark((function i(){return fn().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.t0=gK,i.next=3,CK(e,t,!1,n);case 3:return i.t1=i.sent,i.t2=yB.N("ref.title","References"),i.abrupt("return",new i.t0(i.t1,i.t2));case 6:case"end":return i.stop()}}),i)})))}}]),n}(Dq));var Nq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o;return(0,X.Z)(this,n),(o=t.call(this,e,{id:"editor.action.goToLocation",label:yB.N("label.generic","Go To Any Symbol"),alias:"Go To Any Symbol",precondition:kB.Ao.and(NY.notInPeekEditor,bB.u.isInWalkThroughSnippet.toNegated())}))._references=i,o._gotoMultipleBehaviour=r,o}return(0,J.Z)(n,[{key:"_getLocationModel",value:function(e,t,n){return yq(this,void 0,void 0,fn().mark((function e(){return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new gK(this._references,yB.N("generic.title","Locations")));case 1:case"end":return e.stop()}}),e,this)})))}},{key:"_getNoResultFoundMessage",value:function(e){return e&&yB.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}(Cq);function Mq(e,t){return!!e[t]}jz.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:Mz.o},{name:"position",description:"The position at which to start",constraint:VB.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,i,r,o,a){return yq(void 0,void 0,void 0,fn().mark((function s(){var u,l;return fn().wrap((function(s){for(;;)switch(s.prev=s.next){case 0:return(0,oV.p_)(Mz.o.isUri(t)),(0,oV.p_)(VB.L.isIPosition(n)),(0,oV.p_)(Array.isArray(i)),(0,oV.p_)("undefined"===typeof r||"string"===typeof r),(0,oV.p_)("undefined"===typeof a||"boolean"===typeof a),u=e.get(fz.$),s.next=8,u.openCodeEditor({resource:t},u.getFocusedCodeEditor());case 8:if(l=s.sent,!(0,xK.CL)(l)){s.next=13;break}return l.setPosition(n),l.revealPositionInCenterIfOutsideViewport(n,0),s.abrupt("return",l.invokeWithinContext((function(e){var t=new(function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"_getNoResultFoundMessage",value:function(e){return o||(0,Qz.Z)((0,Xz.Z)(n.prototype),"_getNoResultFoundMessage",this).call(this,e)}}]),n}(Nq))({muteMessage:!Boolean(o),openInPeek:Boolean(a),openToSide:!1},i,r);e.get(oW.TG).invokeFunction(t.run.bind(t),l)})));case 13:case"end":return s.stop()}}),s)})))}}),jz.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:Mz.o},{name:"position",description:"The position at which to start",constraint:VB.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 yq(void 0,void 0,void 0,fn().mark((function o(){return fn().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:e.get(jz.H).executeCommand("editor.action.goToLocations",t,n,i,r,void 0,!0);case 1:case"end":return o.stop()}}),o)})))}}),jz.P.registerCommand({id:"editor.action.findReferences",handler:function(e,t,n){(0,oV.p_)(Mz.o.isUri(t)),(0,oV.p_)(VB.L.isIPosition(n));var i=e.get(fz.$);return i.openCodeEditor({resource:t},i.getFocusedCodeEditor()).then((function(e){if((0,xK.CL)(e)&&e.hasModel()){var t=iq.get(e);if(t){var i=(0,zB.PG)((function(t){return CK(e.getModel(),VB.L.lift(n),!1,t).then((function(e){return new gK(e,yB.N("ref.title","References"))}))})),r=new YB.e(n.lineNumber,n.column,n.lineNumber,n.column);return Promise.resolve(t.toggleWidget(r,i,!1))}}}))}}),jz.P.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");var Tq=(0,J.Z)((function e(t,n){(0,X.Z)(this,e),this.target=t.target,this.hasTriggerModifier=Mq(t.event,n.triggerModifier),this.hasSideBySideModifier=Mq(t.event,n.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=t.event.detail<=1})),Iq=(0,J.Z)((function e(t,n){(0,X.Z)(this,e),this.keyCodeIsTriggerKey=t.keyCode===n.triggerKey,this.keyCodeIsSideBySideKey=t.keyCode===n.triggerSideBySideKey,this.hasTriggerModifier=Mq(t,n.triggerModifier)})),Oq=function(){function e(t,n,i,r){(0,X.Z)(this,e),this.triggerKey=t,this.triggerModifier=n,this.triggerSideBySideKey=i,this.triggerSideBySideModifier=r}return(0,J.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 Aq(e){return"altKey"===e?dz.dz?new Oq(57,"metaKey",6,"altKey"):new Oq(5,"ctrlKey",6,"altKey"):dz.dz?new Oq(6,"altKey",57,"metaKey"):new Oq(6,"altKey",5,"ctrlKey")}var Rq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this))._onMouseMoveOrRelevantKeyDown=i._register(new _W.Q5),i.onMouseMoveOrRelevantKeyDown=i._onMouseMoveOrRelevantKeyDown.event,i._onExecute=i._register(new _W.Q5),i.onExecute=i._onExecute.event,i._onCancel=i._register(new _W.Q5),i.onCancel=i._onCancel.event,i._editor=e,i._opts=Aq(i._editor.getOption(66)),i._lastMouseMoveEvent=null,i._hasTriggerKeyOnMouseDown=!1,i._lineNumberOnMouseDown=0,i._register(i._editor.onDidChangeConfiguration((function(e){if(e.hasChanged(66)){var t=Aq(i._editor.getOption(66));if(i._opts.equals(t))return;i._opts=t,i._lastMouseMoveEvent=null,i._hasTriggerKeyOnMouseDown=!1,i._lineNumberOnMouseDown=0,i._onCancel.fire()}}))),i._register(i._editor.onMouseMove((function(e){return i._onEditorMouseMove(new Tq(e,i._opts))}))),i._register(i._editor.onMouseDown((function(e){return i._onEditorMouseDown(new Tq(e,i._opts))}))),i._register(i._editor.onMouseUp((function(e){return i._onEditorMouseUp(new Tq(e,i._opts))}))),i._register(i._editor.onKeyDown((function(e){return i._onEditorKeyDown(new Iq(e,i._opts))}))),i._register(i._editor.onKeyUp((function(e){return i._onEditorKeyUp(new Iq(e,i._opts))}))),i._register(i._editor.onMouseDrag((function(){return i._resetHandler()}))),i._register(i._editor.onDidChangeCursorSelection((function(e){return i._onDidChangeCursorSelection(e)}))),i._register(i._editor.onDidChangeModel((function(e){return i._resetHandler()}))),i._register(i._editor.onDidChangeModelContent((function(){return i._resetHandler()}))),i._register(i._editor.onDidScrollChange((function(e){(e.scrollTopChanged||e.scrollLeftChanged)&&i._resetHandler()}))),i}return(0,J.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}(WB.JT),Pq=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},Zq=function(e,t){return function(n,i){t(n,i,e)}},Fq=function(){function e(t,n,i){var r=this;(0,X.Z)(this,e),this.textModelResolverService=n,this.modeService=i,this.toUnhook=new WB.SL,this.toUnhookForKeyboard=new WB.SL,this.linkDecorations=[],this.currentWordAtPosition=null,this.previousPromise=null,this.editor=t;var o=new Rq(t);this.toUnhook.add(o),this.toUnhook.add(o.onMouseMoveOrRelevantKeyDown((function(e){var t=(0,ne.Z)(e,2),n=t[0],i=t[1];r.startFindDefinitionFromMouse(n,(0,oV.f6)(i))}))),this.toUnhook.add(o.onExecute((function(e){r.isEnabled(e)&&r.gotoDefinition(e.target.position,e.hasSideBySideModifier).then((function(){r.removeLinkDecorations()}),(function(e){r.removeLinkDecorations(),(0,LB.dL)(e)}))}))),this.toUnhook.add(o.onCancel((function(){r.removeLinkDecorations(),r.currentWordAtPosition=null})))}return(0,J.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 Tz.yy(this.editor,15);return this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=(0,zB.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 YB.e(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn),(new EB).appendText(yB.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?YB.e.lift(o.originSelectionRange):new YB.e(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn);var l=n.modeService.getModeIdByFilepathOrFirstLine(r.uri);n.addDecoration(s,(new EB).appendCodeblock(l||"",u)),t.dispose()}}else t.dispose()}))}else n.removeLinkDecorations()})).then(void 0,LB.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 YB.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 VB.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 YB.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 YB.e(n,1,i+1,1);a=t.findNextBracket(new VB.L(l,c))}return new YB.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)&&Iz.Ct.has(this.editor.getModel())}},{key:"findDefinition",value:function(e,t){var n=this.editor.getModel();return n?_K(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 kq({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(kB.i6);return NY.inPeekEditor.getValue(t)}},{key:"dispose",value:function(){this.toUnhook.dispose()}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();Fq.ID="editor.contrib.gotodefinitionatposition",Fq.MAX_SOURCE_PREVIEW_LINES=8,Fq=Pq([Zq(1,SK.S),Zq(2,PV.h)],Fq),(0,_B._K)(Fq.ID,Fq),(0,$B.Ic)((function(e,t){var n=e.getColor(GB._Y);n&&t.addRule(".monaco-editor .goto-definition-link { color: ".concat(n," !important; }"))}));var jq=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},Hq=function(e,t){return function(n,i){t(n,i,e)}},Bq=function(){function e(t,n,i,r,o,a){var s=this;(0,X.Z)(this,e),this._editor=t,this._instantiationService=n,this._openerService=i,this._modeService=r,this._themeService=o,this._toUnhook=new WB.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)&&(s._unhookEvents(),s._hookEvents())})),this._hoverVisibleKey=bB.u.hoverVisible.bindTo(a)}return(0,J.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!==sK.ID?12===t&&e.target.detail===cK.ID||(12!==t&&e.target.detail!==cK.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!==sK.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!==sK.ID||!(null===(i=this._contentWidget)||void 0===i?void 0:i.isColorPickerVisible()))&&(!this._isHoverSticky||12!==s||e.target.detail!==cK.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,Ct.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 YB.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 sK(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 cK(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 sK(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}();Bq.ID="editor.contrib.hover",Bq=jq([Hq(1,oW.TG),Hq(2,XV.v4),Hq(3,PV.h),Hq(4,$B.XE),Hq(5,kB.i6)],Bq);var zq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.showHover",label:yB.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:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2087),weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n=Bq.get(t);if(n){var i=t.getPosition(),r=new YB.e(i.lineNumber,i.column,i.lineNumber,i.column),o=2===t.getOption(2);n.showContentHover(r,1,o)}}}}]),n}(_B.R6),Wq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.showDefinitionPreviewHover",label:yB.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,J.Z)(n,[{key:"run",value:function(e,t){var n=Bq.get(t);if(n){var i=t.getPosition();if(i){var r=new YB.e(i.lineNumber,i.column,i.lineNumber,i.column);Fq.get(t).startFindDefinitionFromCursor(i).then((function(){n.showContentHover(r,1,!0)}))}}}}]),n}(_B.R6);(0,_B._K)(Bq.ID,Bq),(0,_B.Qr)(zq),(0,_B.Qr)(Wq),(0,$B.Ic)((function(e,t){var n=e.getColor(GB.pt);n&&t.addRule(".monaco-editor .hoverHighlight { background-color: ".concat(n,"; }"));var i=e.getColor(GB.yJ);i&&t.addRule(".monaco-editor .monaco-hover { background-color: ".concat(i,"; }"));var r=e.getColor(GB.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(GB.ur);o&&t.addRule(".monaco-editor .monaco-hover a { color: ".concat(o,"; }"));var a=e.getColor(GB.Sb);a&&t.addRule(".monaco-editor .monaco-hover { color: ".concat(a,"; }"));var s=e.getColor(GB.Lo);s&&t.addRule(".monaco-editor .monaco-hover .hover-row .actions { background-color: ".concat(s,"; }"));var u=e.getColor(GB.Sw);u&&t.addRule(".monaco-editor .monaco-hover code { background-color: ".concat(u,"; }"))}));var Vq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this))._editor=e,i._register(e.onMouseDown((function(e){return i.onMouseDown(e)}))),i}return(0,J.Z)(n,[{key:"dispose",value:function(){(0,Qz.Z)((0,Xz.Z)(n.prototype),"dispose",this).call(this)}},{key:"onMouseDown",value:function(e){var t;if(6===e.target.type&&((0,Ct.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(Bq.ID);if(!n.isColorPickerVisible()){var i=new YB.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}(WB.JT);Vq.ID="editor.contrib.colorContribution",(0,_B._K)(Vq.ID,Vq);var Yq=n(85025),Uq=n(65262),Kq=function(){function e(t,n){(0,X.Z)(this,e),this._selection=t,this._insertSpace=n,this._usedEndToken=null}return(0,J.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 YB.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,Na.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=Uq.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 wB.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 wB.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 YB.e.isEmpty(e)?i.push(Yq.h.delete(new YB.e(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+n.length))):(i.push(Yq.h.delete(new YB.e(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),i.push(Yq.h.delete(new YB.e(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+n.length)))),i}},{key:"_createAddBlockCommentOperations",value:function(e,t,n,i){var r=[];return YB.e.isEmpty(e)?r.push(Yq.h.replace(new YB.e(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+" "+n)):(r.push(Yq.h.insert(new VB.L(e.startLineNumber,e.startColumn),t+(i?" ":""))),r.push(Yq.h.insert(new VB.L(e.endLineNumber,e.endColumn),(i?" ":"")+n))),r}}]),e}(),qq=function(){function e(t,n,i,r,o,a){(0,X.Z)(this,e),this._selection=t,this._tabSize=n,this._type=i,this._insertSpace=r,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=o,this._ignoreFirstLine=a||!1}return(0,J.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 VB.L(r.positionLineNumber,r.positionColumn),s=0,u=o.length;s<u;s++){if(n.addEditOperation(o[s].range,o[s].text),YB.e.isEmpty(o[s].range)&&YB.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?Kq._createRemoveBlockCommentOperations(new YB.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=Uq.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=Dz.LC(u);-1===l&&(l=u.length),s=Kq._createAddBlockCommentOperations(new YB.e(n.startLineNumber,l+1,n.startLineNumber,u.length+1),o,a,this._insertSpace)}else s=Kq._createAddBlockCommentOperations(new YB.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,Na.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 YB.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 wB.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(Yq.h.insert(new VB.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=Uq.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=Dz.LC(f);if(-1!==p){if(u=!1,d.ignore=!1,d.commentStrOffset=p,s&&!Kq._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(Yq.h.delete(new YB.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}(),Gq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this,i))._type=e,r}return(0,J.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 YB.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,Na.Z)(o);try{for(c.s();!(l=c.n()).done;){var d=l.value;n.push(new qq(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}(_B.R6),$q=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,0,{id:"editor.action.commentLine",label:yB.N("comment.line","Toggle Line Comment"),alias:"Toggle Line Comment",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:2133,weight:100},menuOpts:{menuId:QB.eH.MenubarEditMenu,group:"5_insert",title:yB.N({key:"miToggleLineComment",comment:["&& denotes a mnemonic"]},"&&Toggle Line Comment"),order:1}})}return(0,J.Z)(n)}(Gq),Qq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,1,{id:"editor.action.addCommentLine",label:yB.N("comment.line.add","Add Line Comment"),alias:"Add Line Comment",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2081),weight:100}})}return(0,J.Z)(n)}(Gq),Xq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,2,{id:"editor.action.removeCommentLine",label:yB.N("comment.line.remove","Remove Line Comment"),alias:"Remove Line Comment",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2099),weight:100}})}return(0,J.Z)(n)}(Gq),Jq=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.blockComment",label:yB.N("comment.block","Toggle Block Comment"),alias:"Toggle Block Comment",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:QB.eH.MenubarEditMenu,group:"5_insert",title:yB.N({key:"miToggleBlockComment",comment:["&& denotes a mnemonic"]},"Toggle &&Block Comment"),order:2}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n,i=t.getOption(17),r=[],o=t.getSelections(),a=(0,Na.Z)(o);try{for(a.s();!(n=a.n()).done;){var s=n.value;r.push(new Kq(s,i.insertSpace))}}catch(u){a.e(u)}finally{a.f()}t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}}]),n}(_B.R6);(0,_B.Qr)($q),(0,_B.Qr)(Qq),(0,_B.Qr)(Xq),(0,_B.Qr)(Jq);var eG=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},tG=function(e,t){return function(n,i){t(n,i,e)}},nG=function(){function e(t,n,i,r,o,a){var s=this;(0,X.Z)(this,e),this._contextMenuService=n,this._contextViewService=i,this._contextKeyService=r,this._keybindingService=o,this._menuService=a,this._toDispose=new WB.SL,this._contextMenuIsBeingShownCount=0,this._editor=t,this._toDispose.add(this._editor.onContextMenu((function(e){return s._onContextMenu(e)}))),this._toDispose.add(this._editor.onMouseWheel((function(e){if(s._contextMenuIsBeingShownCount>0){var t=s._contextViewService.getContextViewElement(),n=e.srcElement;n.shadowRoot&&aW.getShadowRoot(t)===n.shadowRoot||s._contextViewService.hideContextView()}}))),this._toDispose.add(this._editor.onKeyDown((function(e){58===e.keyCode&&(e.preventDefault(),e.stopPropagation(),s.showContextMenu())})))}return(0,J.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,Na.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(),QB.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,Na.Z)(r);try{for(a.s();!(o=a.n()).done;){var s,u=o.value,l=(0,ne.Z)(u,2)[1],c=0,d=(0,Na.Z)(l);try{for(d.s();!(s=d.n()).done;){var h=s.value;if(h instanceof QB.NZ){var f=this._getMenuActions(e,h.item.submenu);f.length>0&&(n.push(new sW.wY(h.id,h.label,f)),c++)}else n.push(h),c++}}catch(p){d.e(p)}finally{d.f()}c&&n.push(new sW.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=aW.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 yY.g(e,e,{label:!0,keybinding:n.getLabel(),isMenu:!0});var i=e;return"function"===typeof i.getActionViewItem?i.getActionViewItem():new yY.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}();nG.ID="editor.contrib.contextmenu",nG=eG([tG(1,uW.i),tG(2,uW.u),tG(3,kB.i6),tG(4,lW.d),tG(5,QB.co)],nG);var iG=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.showContextMenu",label:yB.N("action.showContextMenu.label","Show Editor Context Menu"),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:bB.u.textInputFocus,primary:1092,weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){nG.get(t).showContextMenu()}}]),n}(_B.R6);(0,_B._K)(nG.ID,nG),(0,_B.Qr)(iG);var rG=function(){function e(t){(0,X.Z)(this,e),this.selections=t}return(0,J.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}(),oG=(0,J.Z)((function e(t,n,i){(0,X.Z)(this,e),this.cursorState=t,this.scrollTop=n,this.scrollLeft=i})),aG=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this))._editor=e,i._isCursorUndoRedo=!1,i._undoStack=[],i._redoStack=[],i._register(e.onDidChangeModel((function(e){i._undoStack=[],i._redoStack=[]}))),i._register(e.onDidChangeModelContent((function(e){i._undoStack=[],i._redoStack=[]}))),i._register(e.onDidChangeCursorSelection((function(t){if(!i._isCursorUndoRedo&&t.oldSelections&&t.oldModelVersionId===t.modelVersionId){var n=new rG(t.oldSelections);i._undoStack.length>0&&i._undoStack[i._undoStack.length-1].cursorState.equals(n)||(i._undoStack.push(new oG(n,e.getScrollTop(),e.getScrollLeft())),i._redoStack=[],i._undoStack.length>50&&i._undoStack.shift())}}))),i}return(0,J.Z)(n,[{key:"cursorUndo",value:function(){this._editor.hasModel()&&0!==this._undoStack.length&&(this._redoStack.push(new oG(new rG(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 oG(new rG(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}(WB.JT);aG.ID="editor.contrib.cursorUndoRedoController";var sG=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"cursorUndo",label:yB.N("cursor.undo","Cursor Undo"),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:bB.u.textInputFocus,primary:2099,weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t,n){aG.get(t).cursorUndo()}}]),n}(_B.R6),uG=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"cursorRedo",label:yB.N("cursor.redo","Cursor Redo"),alias:"Cursor Redo",precondition:void 0})}return(0,J.Z)(n,[{key:"run",value:function(e,t,n){aG.get(t).cursorRedo()}}]),n}(_B.R6);(0,_B._K)(aG.ID,aG),(0,_B.Qr)(sG),(0,_B.Qr)(uG);var lG=function(){function e(t,n,i){(0,X.Z)(this,e),this.selection=t,this.targetPosition=n,this.copy=i,this.targetSelection=null}return(0,J.Z)(e,[{key:"getEditOperations",value:function(e,t){var n=e.getValueInRange(this.selection);this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new YB.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 wB.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 wB.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 wB.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 wB.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 wB.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 cG(e){return dz.dz?e.altKey:e.ctrlKey}var dG=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this))._editor=e,i._register(i._editor.onMouseDown((function(e){return i._onEditorMouseDown(e)}))),i._register(i._editor.onMouseUp((function(e){return i._onEditorMouseUp(e)}))),i._register(i._editor.onMouseDrag((function(e){return i._onEditorMouseDrag(e)}))),i._register(i._editor.onMouseDrop((function(e){return i._onEditorMouseDrop(e)}))),i._register(i._editor.onMouseDropCanceled((function(){return i._onEditorMouseDropCanceled()}))),i._register(i._editor.onKeyDown((function(e){return i.onEditorKeyDown(e)}))),i._register(i._editor.onKeyUp((function(e){return i.onEditorKeyUp(e)}))),i._register(i._editor.onDidBlurEditorWidget((function(){return i.onEditorBlur()}))),i._register(i._editor.onDidBlurEditorText((function(){return i.onEditorBlur()}))),i._dndDecorationIds=[],i._mouseDown=!1,i._modifierPressed=!1,i._dragSelection=null,i}return(0,J.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)&&(cG(e)&&(this._modifierPressed=!0),this._mouseDown&&cG(e)&&this._editor.updateOptions({mouseStyle:"copy"}))}},{key:"onEditorKeyUp",value:function(e){this._editor.getOption(29)&&!this._editor.getOption(16)&&(cG(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]}cG(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 VB.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 wB.Y(o,a,t.lineNumber,t.column)]}}else i=(this._editor.getSelections()||[]).map((function(e){return e.containsPosition(t)?new wB.Y(t.lineNumber,t.column,t.lineNumber,t.column):e}));this._editor.setSelections(i||[],"mouse",3)}else(!this._dragSelection.containsPosition(t)||(cG(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(t)||this._dragSelection.getStartPosition().equals(t)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(n.ID,new lG(this._dragSelection,t,cG(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 YB.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,Qz.Z)((0,Xz.Z)(n.prototype),"dispose",this).call(this)}}]),n}(WB.JT);dG.ID="editor.contrib.dragAndDrop",dG.TRIGGER_KEY_VALUE=dz.dz?6:5,dG._DECORATION_OPTIONS=KB.qx.register({className:"dnd-target"}),(0,_B._K)(dG.ID,dG);var hG=n(44322),fG=function(){function e(t){(0,X.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,J.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,Na.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 YB.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 YB.e(c,1,d,1),options:e._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),c=p.startLineNumber,d=p.endLineNumber)}a.push({range:new YB.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,Ct.Z)(this._findScopeDecorationIds));return this._rangeHighlightDecorationId&&t.push(this._rangeHighlightDecorationId),t}}]),e}();fG._CURRENT_FIND_MATCH_DECORATION=KB.qx.register({stickiness:1,zIndex:13,className:"currentFindMatch",showIfCollapsed:!0,overviewRuler:{color:(0,$B.EN)(GB.Fm),position:UB.sh.Center},minimap:{color:(0,$B.EN)(GB.KT),position:UB.F5.Inline}}),fG._FIND_MATCH_DECORATION=KB.qx.register({stickiness:1,className:"findMatch",showIfCollapsed:!0,overviewRuler:{color:(0,$B.EN)(GB.Fm),position:UB.sh.Center},minimap:{color:(0,$B.EN)(GB.KT),position:UB.F5.Inline}}),fG._FIND_MATCH_NO_OVERVIEW_DECORATION=KB.qx.register({stickiness:1,className:"findMatch",showIfCollapsed:!0}),fG._FIND_MATCH_ONLY_OVERVIEW_DECORATION=KB.qx.register({stickiness:1,overviewRuler:{color:(0,$B.EN)(GB.Fm),position:UB.sh.Center}}),fG._RANGE_HIGHLIGHT_DECORATION=KB.qx.register({stickiness:1,className:"rangeHighlight",isWholeLine:!0}),fG._FIND_SCOPE_DECORATION=KB.qx.register({className:"findScope",isWholeLine:!0});var pG=function(){function e(t,n,i){(0,X.Z)(this,e),this._editorSelection=t,this._ranges=n,this._replaceStrings=i,this._trackedEditorSelectionId=null}return(0,J.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 YB.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 gG(e,t){if(e&&""!==e[0]){var n=vG(e,t,"-"),i=vG(e,t,"_");return n&&!i?mG(e,t,"-"):!n&&i?mG(e,t,"_"):e[0].toUpperCase()===e[0]?t.toUpperCase():e[0].toLowerCase()===e[0]?t.toLowerCase():Dz.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 vG(e,t,n){return-1!==e[0].indexOf(n)&&-1!==t.indexOf(n)&&e[0].split(n).length===t.split(n).length}function mG(e,t,n){var i=t.split(n),r=e[0].split(n),o="";return i.forEach((function(e,t){o+=gG([r[t]],e)+n})),o.slice(0,-1)}var _G=(0,J.Z)((function e(t){(0,X.Z)(this,e),this.staticValue=t,this.kind=0})),yG=(0,J.Z)((function e(t){(0,X.Z)(this,e),this.pieces=t,this.kind=1})),bG=function(){function e(t){(0,X.Z)(this,e),t&&0!==t.length?1===t.length&&null!==t[0].staticValue?this._state=new _G(t[0].staticValue):this._state=new yG(t):this._state=new _G("")}return(0,J.Z)(e,[{key:"hasReplacementPatterns",get:function(){return 1===this._state.kind}},{key:"buildReplaceString",value:function(t,n){if(0===this._state.kind)return n?gG(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([wG.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}(),wG=function(){function e(t,n,i){(0,X.Z)(this,e),this.staticValue=t,this.matchIndex=n,i&&0!==i.length?this.caseOps=i.slice(0):this.caseOps=null}return(0,J.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}(),CG=function(){function e(t){(0,X.Z)(this,e),this._source=t,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=""}return(0,J.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++]=wG.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),this._result[this._resultLen++]=wG.caseOps(e,n),this._lastCharIndex=t}},{key:"finalize",value:function(){return this.emitUnchanged(this._source.length),0!==this._currentStaticPiece.length&&(this._result[this._resultLen++]=wG.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),new bG(this._result)}}]),e}();var kG=new kB.uy("findWidgetVisible",!1),SG=new kB.uy("findInputFocussed",!1),xG=new kB.uy("replaceInputFocussed",!1),LG={primary:545,mac:{primary:2593}},EG={primary:565,mac:{primary:2613}},DG={primary:560,mac:{primary:2608}},NG={primary:554,mac:{primary:2602}},MG={primary:558,mac:{primary:2606}},TG={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"},IG=19999,OG=function(){function e(t,n){var i=this;(0,X.Z)(this,e),this._toDispose=new WB.SL,this._editor=t,this._state=n,this._isDisposed=!1,this._startSearchingTimer=new zB._F,this._decorations=new fG(t),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new zB.pY((function(){return i.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||i._decorations.setStartPosition(i._editor.getPosition())}))),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent((function(e){i._ignoreModelContentChanged||(e.isFlush&&i._decorations.reset(),i._decorations.setStartPosition(i._editor.getPosition()),i._updateDecorationsScheduler.schedule())}))),this._toDispose.add(this._state.onFindReplaceStateChange((function(e){return i._onStateChanged(e)}))),this.research(!1,this._state.searchScope)}return(0,J.Z)(e,[{key:"dispose",value:function(){this._isDisposed=!0,(0,WB.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 YB.e(e.startLineNumber,1,t,n._editor.getModel().getLineMaxColumn(t))}return e})));var r=this._findMatches(i,!1,IG);this._decorations.set(r,i);var o=this._editor.getSelection(),a=this._decorations.getCurrentMatchesPosition(o);if(0===a&&r.length>0){var s=(0,SB.lG)(r.map((function(e){return e.range})),(function(e){return YB.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 VB.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()<IG){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 VB.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 VB.L(n,i)}},{key:"_moveToNextMatch",value:function(e){if(this._state.canNavigateForward()){if(this._decorations.getCount()<IG){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 VB.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 bG(null);for(var t=[],n=new CG(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):bG.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 sz.T4(t,i);this._executeEditorCommand("replace",r),this._decorations.setStartPosition(new VB.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>=IG?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}}},{key:"_largeReplaceAll",value:function(){var e=new hG.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 sz.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 pG(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 wB.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}(),AG={inputActiveOptionBorder:MV.Il.fromHex("#007ACC00"),inputActiveOptionForeground:MV.Il.fromHex("#FFFFFF"),inputActiveOptionBackground:MV.Il.fromHex("#0E639C50")},RG=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i,r;(0,X.Z)(this,n),(r=t.call(this))._onChange=r._register(new _W.Q5),r.onChange=r._onChange.event,r._onKeyDown=r._register(new _W.Q5),r.onKeyDown=r._onKeyDown.event,r._opts=Object.assign(Object.assign({},AG),e),r._checked=r._opts.isChecked;var o=["monaco-custom-checkbox"];return r._opts.icon&&o.push.apply(o,(0,Ct.Z)(bW.dT.asClassNameArray(r._opts.icon))),r._opts.actionClassName&&o.push.apply(o,(0,Ct.Z)(r._opts.actionClassName.split(" "))),r._checked&&o.push("checked"),r.domNode=document.createElement("div"),r.domNode.title=r._opts.title,(i=r.domNode.classList).add.apply(i,o),r._opts.notFocusable||(r.domNode.tabIndex=0),r.domNode.setAttribute("role","checkbox"),r.domNode.setAttribute("aria-checked",String(r._checked)),r.domNode.setAttribute("aria-label",r._opts.title),r.applyStyles(),r.onclick(r.domNode,(function(e){r.checked=!r._checked,r._onChange.fire(!1),e.preventDefault()})),r.ignoreGesture(r.domNode),r.onkeydown(r.domNode,(function(e){if(10===e.keyCode||3===e.keyCode)return r.checked=!r._checked,r._onChange.fire(!0),void e.preventDefault();r._onKeyDown.fire(e)})),r}return(0,J.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}(FV.$),PG=yB.N("caseDescription","Match Case"),ZG=yB.N("wordsDescription","Match Whole Word"),FG=yB.N("regexDescription","Use Regular Expression"),jG=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){return(0,X.Z)(this,n),t.call(this,{icon:bW.lA.caseSensitive,title:PG+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}return(0,J.Z)(n)}(RG),HG=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){return(0,X.Z)(this,n),t.call(this,{icon:bW.lA.wholeWord,title:ZG+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}return(0,J.Z)(n)}(RG),BG=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){return(0,X.Z)(this,n),t.call(this,{icon:bW.lA.regex,title:FG+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}return(0,J.Z)(n)}(RG),zG=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a;(0,X.Z)(this,n),(a=t.call(this))._hideSoon=a._register(new zB.pY((function(){return a._hide()}),2e3)),a._isVisible=!1,a._editor=e,a._state=i,a._keybindingService=r,a._domNode=document.createElement("div"),a._domNode.className="findOptionsWidget",a._domNode.style.display="none",a._domNode.style.top="10px",a._domNode.setAttribute("role","presentation"),a._domNode.setAttribute("aria-hidden","true");var s=o.getColorTheme().getColor(GB.PR),u=o.getColorTheme().getColor(GB.Pv),l=o.getColorTheme().getColor(GB.XE);return a.caseSensitive=a._register(new jG({appendTitle:a._keybindingLabelFor(TG.ToggleCaseSensitiveCommand),isChecked:a._state.matchCase,inputActiveOptionBorder:s,inputActiveOptionForeground:u,inputActiveOptionBackground:l})),a._domNode.appendChild(a.caseSensitive.domNode),a._register(a.caseSensitive.onChange((function(){a._state.change({matchCase:a.caseSensitive.checked},!1)}))),a.wholeWords=a._register(new HG({appendTitle:a._keybindingLabelFor(TG.ToggleWholeWordCommand),isChecked:a._state.wholeWord,inputActiveOptionBorder:s,inputActiveOptionForeground:u,inputActiveOptionBackground:l})),a._domNode.appendChild(a.wholeWords.domNode),a._register(a.wholeWords.onChange((function(){a._state.change({wholeWord:a.wholeWords.checked},!1)}))),a.regex=a._register(new BG({appendTitle:a._keybindingLabelFor(TG.ToggleRegexCommand),isChecked:a._state.isRegex,inputActiveOptionBorder:s,inputActiveOptionForeground:u,inputActiveOptionBackground:l})),a._domNode.appendChild(a.regex.domNode),a._register(a.regex.onChange((function(){a._state.change({isRegex:a.regex.checked},!1)}))),a._editor.addOverlayWidget((0,Br.Z)(a)),a._register(a._state.onFindReplaceStateChange((function(e){var t=!1;e.isRegex&&(a.regex.checked=a._state.isRegex,t=!0),e.wholeWord&&(a.wholeWords.checked=a._state.wholeWord,t=!0),e.matchCase&&(a.caseSensitive.checked=a._state.matchCase,t=!0),!a._state.isRevealed&&t&&a._revealTemporarily()}))),a._register(aW.addDisposableNonBubblingMouseOutListener(a._domNode,(function(e){return a._onMouseOut()}))),a._register(aW.addDisposableListener(a._domNode,"mouseover",(function(e){return a._onMouseOver()}))),a._applyTheme(o.getColorTheme()),a._register(o.onDidColorThemeChange(a._applyTheme.bind((0,Br.Z)(a)))),a}return(0,J.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,Qz.Z)((0,Xz.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(GB.PR),inputActiveOptionForeground:e.getColor(GB.Pv),inputActiveOptionBackground:e.getColor(GB.XE)};this.caseSensitive.style(t),this.wholeWords.style(t),this.regex.style(t)}}]),n}(FV.$);function WG(e,t){return 1===e||2!==e&&t}zG.ID="editor.contrib.findOptionsWidget",(0,$B.Ic)((function(e,t){var n=e.getColor(GB.D0);n&&t.addRule(".monaco-editor .findOptionsWidget { background-color: ".concat(n,"; }"));var i=e.getColor(GB.Hf);i&&t.addRule(".monaco-editor .findOptionsWidget { color: ".concat(i,"; }"));var r=e.getColor(GB.rh);r&&t.addRule(".monaco-editor .findOptionsWidget { box-shadow: 0 0 8px 2px ".concat(r,"; }"));var o=e.getColor(GB.lR);o&&t.addRule(".monaco-editor .findOptionsWidget { border: 2px solid ".concat(o,"; }"))}));var VG=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;return(0,X.Z)(this,n),(e=t.call(this))._onFindReplaceStateChange=e._register(new _W.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,J.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 WG(this._isRegexOverride,this._isRegex)}},{key:"wholeWord",get:function(){return WG(this._wholeWordOverride,this._wholeWord)}},{key:"matchCase",get:function(){return WG(this._matchCaseOverride,this._matchCase)}},{key:"preserveCase",get:function(){return WG(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&&(YB.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!YB.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>=IG}}]),n}(WB.JT),YG=n(68027),UG=yB.N("defaultLabel","input"),KG=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a;(0,X.Z)(this,n),(a=t.call(this))._showOptionButtons=r,a.fixFocusOnOptionClickEnabled=!0,a._onDidOptionChange=a._register(new _W.Q5),a.onDidOptionChange=a._onDidOptionChange.event,a._onKeyDown=a._register(new _W.Q5),a.onKeyDown=a._onKeyDown.event,a._onMouseDown=a._register(new _W.Q5),a.onMouseDown=a._onMouseDown.event,a._onInput=a._register(new _W.Q5),a._onKeyUp=a._register(new _W.Q5),a._onCaseSensitiveKeyDown=a._register(new _W.Q5),a.onCaseSensitiveKeyDown=a._onCaseSensitiveKeyDown.event,a._onRegexKeyDown=a._register(new _W.Q5),a.onRegexKeyDown=a._onRegexKeyDown.event,a._lastHighlightFindOptions=0,a.contextViewProvider=i,a.placeholder=o.placeholder||"",a.validation=o.validation,a.label=o.label||UG,a.inputActiveOptionBorder=o.inputActiveOptionBorder,a.inputActiveOptionForeground=o.inputActiveOptionForeground,a.inputActiveOptionBackground=o.inputActiveOptionBackground,a.inputBackground=o.inputBackground,a.inputForeground=o.inputForeground,a.inputBorder=o.inputBorder,a.inputValidationInfoBorder=o.inputValidationInfoBorder,a.inputValidationInfoBackground=o.inputValidationInfoBackground,a.inputValidationInfoForeground=o.inputValidationInfoForeground,a.inputValidationWarningBorder=o.inputValidationWarningBorder,a.inputValidationWarningBackground=o.inputValidationWarningBackground,a.inputValidationWarningForeground=o.inputValidationWarningForeground,a.inputValidationErrorBorder=o.inputValidationErrorBorder,a.inputValidationErrorBackground=o.inputValidationErrorBackground,a.inputValidationErrorForeground=o.inputValidationErrorForeground;var s=o.appendCaseSensitiveLabel||"",u=o.appendWholeWordsLabel||"",l=o.appendRegexLabel||"",c=o.history||[],d=!!o.flexibleHeight,h=!!o.flexibleWidth,f=o.flexibleMaxHeight;a.domNode=document.createElement("div"),a.domNode.classList.add("monaco-findInput"),a.inputBox=a._register(new YG.p(a.domNode,a.contextViewProvider,{placeholder:a.placeholder||"",ariaLabel:a.label||"",validationOptions:{validation:a.validation},inputBackground:a.inputBackground,inputForeground:a.inputForeground,inputBorder:a.inputBorder,inputValidationInfoBackground:a.inputValidationInfoBackground,inputValidationInfoForeground:a.inputValidationInfoForeground,inputValidationInfoBorder:a.inputValidationInfoBorder,inputValidationWarningBackground:a.inputValidationWarningBackground,inputValidationWarningForeground:a.inputValidationWarningForeground,inputValidationWarningBorder:a.inputValidationWarningBorder,inputValidationErrorBackground:a.inputValidationErrorBackground,inputValidationErrorForeground:a.inputValidationErrorForeground,inputValidationErrorBorder:a.inputValidationErrorBorder,history:c,flexibleHeight:d,flexibleWidth:h,flexibleMaxHeight:f})),a.regex=a._register(new BG({appendTitle:l,isChecked:!1,inputActiveOptionBorder:a.inputActiveOptionBorder,inputActiveOptionForeground:a.inputActiveOptionForeground,inputActiveOptionBackground:a.inputActiveOptionBackground})),a._register(a.regex.onChange((function(e){a._onDidOptionChange.fire(e),!e&&a.fixFocusOnOptionClickEnabled&&a.inputBox.focus(),a.validate()}))),a._register(a.regex.onKeyDown((function(e){a._onRegexKeyDown.fire(e)}))),a.wholeWords=a._register(new HG({appendTitle:u,isChecked:!1,inputActiveOptionBorder:a.inputActiveOptionBorder,inputActiveOptionForeground:a.inputActiveOptionForeground,inputActiveOptionBackground:a.inputActiveOptionBackground})),a._register(a.wholeWords.onChange((function(e){a._onDidOptionChange.fire(e),!e&&a.fixFocusOnOptionClickEnabled&&a.inputBox.focus(),a.validate()}))),a.caseSensitive=a._register(new jG({appendTitle:s,isChecked:!1,inputActiveOptionBorder:a.inputActiveOptionBorder,inputActiveOptionForeground:a.inputActiveOptionForeground,inputActiveOptionBackground:a.inputActiveOptionBackground})),a._register(a.caseSensitive.onChange((function(e){a._onDidOptionChange.fire(e),!e&&a.fixFocusOnOptionClickEnabled&&a.inputBox.focus(),a.validate()}))),a._register(a.caseSensitive.onKeyDown((function(e){a._onCaseSensitiveKeyDown.fire(e)}))),a._showOptionButtons&&(a.inputBox.paddingRight=a.caseSensitive.width()+a.wholeWords.width()+a.regex.width());var p=[a.caseSensitive.domNode,a.wholeWords.domNode,a.regex.domNode];a.onkeydown(a.domNode,(function(e){if(e.equals(15)||e.equals(17)||e.equals(9)){var t=p.indexOf(document.activeElement);if(t>=0){var n=-1;e.equals(17)?n=(t+1)%p.length:e.equals(15)&&(n=0===t?p.length-1:t-1),e.equals(9)?(p[t].blur(),a.inputBox.focus()):n>=0&&p[n].focus(),aW.EventHelper.stop(e,!0)}}}));var g=document.createElement("div");return g.className="controls",g.style.display=a._showOptionButtons?"block":"none",g.appendChild(a.caseSensitive.domNode),g.appendChild(a.wholeWords.domNode),g.appendChild(a.regex.domNode),a.domNode.appendChild(g),e&&e.appendChild(a.domNode),a.onkeydown(a.inputBox.inputElement,(function(e){return a._onKeyDown.fire(e)})),a.onkeyup(a.inputBox.inputElement,(function(e){return a._onKeyUp.fire(e)})),a.oninput(a.inputBox.inputElement,(function(e){return a._onInput.fire()})),a.onmousedown(a.inputBox.inputElement,(function(e){return a._onMouseDown.fire(e)})),a}return(0,J.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}(FV.$),qG=yB.N("defaultLabel","input"),GG=yB.N("label.preserveCaseCheckbox","Preserve Case"),$G=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){return(0,X.Z)(this,n),t.call(this,{icon:bW.lA.preserveCase,title:GG+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}return(0,J.Z)(n)}(RG),QG=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a;(0,X.Z)(this,n),(a=t.call(this))._showOptionButtons=r,a.fixFocusOnOptionClickEnabled=!0,a.cachedOptionsWidth=0,a._onDidOptionChange=a._register(new _W.Q5),a.onDidOptionChange=a._onDidOptionChange.event,a._onKeyDown=a._register(new _W.Q5),a.onKeyDown=a._onKeyDown.event,a._onMouseDown=a._register(new _W.Q5),a._onInput=a._register(new _W.Q5),a._onKeyUp=a._register(new _W.Q5),a._onPreserveCaseKeyDown=a._register(new _W.Q5),a.onPreserveCaseKeyDown=a._onPreserveCaseKeyDown.event,a.contextViewProvider=i,a.placeholder=o.placeholder||"",a.validation=o.validation,a.label=o.label||qG,a.inputActiveOptionBorder=o.inputActiveOptionBorder,a.inputActiveOptionForeground=o.inputActiveOptionForeground,a.inputActiveOptionBackground=o.inputActiveOptionBackground,a.inputBackground=o.inputBackground,a.inputForeground=o.inputForeground,a.inputBorder=o.inputBorder,a.inputValidationInfoBorder=o.inputValidationInfoBorder,a.inputValidationInfoBackground=o.inputValidationInfoBackground,a.inputValidationInfoForeground=o.inputValidationInfoForeground,a.inputValidationWarningBorder=o.inputValidationWarningBorder,a.inputValidationWarningBackground=o.inputValidationWarningBackground,a.inputValidationWarningForeground=o.inputValidationWarningForeground,a.inputValidationErrorBorder=o.inputValidationErrorBorder,a.inputValidationErrorBackground=o.inputValidationErrorBackground,a.inputValidationErrorForeground=o.inputValidationErrorForeground;var s=o.appendPreserveCaseLabel||"",u=o.history||[],l=!!o.flexibleHeight,c=!!o.flexibleWidth,d=o.flexibleMaxHeight;a.domNode=document.createElement("div"),a.domNode.classList.add("monaco-findInput"),a.inputBox=a._register(new YG.p(a.domNode,a.contextViewProvider,{ariaLabel:a.label||"",placeholder:a.placeholder||"",validationOptions:{validation:a.validation},inputBackground:a.inputBackground,inputForeground:a.inputForeground,inputBorder:a.inputBorder,inputValidationInfoBackground:a.inputValidationInfoBackground,inputValidationInfoForeground:a.inputValidationInfoForeground,inputValidationInfoBorder:a.inputValidationInfoBorder,inputValidationWarningBackground:a.inputValidationWarningBackground,inputValidationWarningForeground:a.inputValidationWarningForeground,inputValidationWarningBorder:a.inputValidationWarningBorder,inputValidationErrorBackground:a.inputValidationErrorBackground,inputValidationErrorForeground:a.inputValidationErrorForeground,inputValidationErrorBorder:a.inputValidationErrorBorder,history:u,flexibleHeight:l,flexibleWidth:c,flexibleMaxHeight:d})),a.preserveCase=a._register(new $G({appendTitle:s,isChecked:!1,inputActiveOptionBorder:a.inputActiveOptionBorder,inputActiveOptionForeground:a.inputActiveOptionForeground,inputActiveOptionBackground:a.inputActiveOptionBackground})),a._register(a.preserveCase.onChange((function(e){a._onDidOptionChange.fire(e),!e&&a.fixFocusOnOptionClickEnabled&&a.inputBox.focus(),a.validate()}))),a._register(a.preserveCase.onKeyDown((function(e){a._onPreserveCaseKeyDown.fire(e)}))),a._showOptionButtons?a.cachedOptionsWidth=a.preserveCase.width():a.cachedOptionsWidth=0;var h=[a.preserveCase.domNode];a.onkeydown(a.domNode,(function(e){if(e.equals(15)||e.equals(17)||e.equals(9)){var t=h.indexOf(document.activeElement);if(t>=0){var n=-1;e.equals(17)?n=(t+1)%h.length:e.equals(15)&&(n=0===t?h.length-1:t-1),e.equals(9)?(h[t].blur(),a.inputBox.focus()):n>=0&&h[n].focus(),aW.EventHelper.stop(e,!0)}}}));var f=document.createElement("div");return f.className="controls",f.style.display=a._showOptionButtons?"block":"none",f.appendChild(a.preserveCase.domNode),a.domNode.appendChild(f),e&&e.appendChild(a.domNode),a.onkeydown(a.inputBox.inputElement,(function(e){return a._onKeyDown.fire(e)})),a.onkeyup(a.inputBox.inputElement,(function(e){return a._onKeyUp.fire(e)})),a.oninput(a.inputBox.inputElement,(function(e){return a._onInput.fire()})),a.onmousedown(a.inputBox.inputElement,(function(e){return a._onMouseDown.fire(e)})),a}return(0,J.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,Qz.Z)((0,Xz.Z)(n.prototype),"dispose",this).call(this)}}]),n}(FV.$),XG=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},JG=function(e,t){return function(n,i){t(n,i,e)}},e$="historyNavigationWidget",t$="historyNavigationEnabled";function n$(e,t){return e.getContext(document.activeElement).getValue(t)}function i$(e,t){var n=function(e,t){return e.createScoped(t.target)}(e,t);return function(e,t,n){new kB.uy(n,t).bindTo(e)}(n,t,e$),{scopedContextKeyService:n,historyNavigationEnablement:new kB.uy(t$,!0).bindTo(n)}}var r$=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a,s=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return(0,X.Z)(this,n),(a=t.call(this,e,i,s,r))._register(i$(o,{target:a.inputBox.element,historyNavigator:a.inputBox}).scopedContextKeyService),a}return(0,J.Z)(n)}(KG);r$=XG([JG(3,kB.i6)],r$);var o$=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a,s=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return(0,X.Z)(this,n),(a=t.call(this,e,i,s,r))._register(i$(o,{target:a.inputBox.element,historyNavigator:a.inputBox}).scopedContextKeyService),a}return(0,J.Z)(n)}(QG);o$=XG([JG(3,kB.i6)],o$),XK.W.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:kB.Ao.and(kB.Ao.has(e$),kB.Ao.equals(t$,!0)),primary:16,secondary:[528],handler:function(e,t){var n=n$(e.get(kB.i6),e$);n&&n.historyNavigator.showPreviousValue()}}),XK.W.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:kB.Ao.and(kB.Ao.has(e$),kB.Ao.equals(t$,!0)),primary:18,secondary:[530],handler:function(e,t){var n=n$(e.get(kB.i6),e$);n&&n.historyNavigator.showNextValue()}});var a$=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},s$=(0,mU.q5)("find-selection",bW.lA.selection,yB.N("findSelectionIcon","Icon for 'Find in Selection' in the editor find widget.")),u$=(0,mU.q5)("find-collapsed",bW.lA.chevronRight,yB.N("findCollapsedIcon","Icon to indicate that the editor find widget is collapsed.")),l$=(0,mU.q5)("find-expanded",bW.lA.chevronDown,yB.N("findExpandedIcon","Icon to indicate that the editor find widget is expanded.")),c$=(0,mU.q5)("find-replace",bW.lA.replace,yB.N("findReplaceIcon","Icon for 'Replace' in the editor find widget.")),d$=(0,mU.q5)("find-replace-all",bW.lA.replaceAll,yB.N("findReplaceAllIcon","Icon for 'Replace All' in the editor find widget.")),h$=(0,mU.q5)("find-previous-match",bW.lA.arrowUp,yB.N("findPreviousMatchIcon","Icon for 'Find Previous' in the editor find widget.")),f$=(0,mU.q5)("find-next-match",bW.lA.arrowDown,yB.N("findNextMatchIcon","Icon for 'Find Next' in the editor find widget.")),p$=yB.N("label.find","Find"),g$=yB.N("placeholder.find","Find"),v$=yB.N("label.previousMatchButton","Previous match"),m$=yB.N("label.nextMatchButton","Next match"),_$=yB.N("label.toggleSelectionFind","Find in selection"),y$=yB.N("label.closeButton","Close"),b$=yB.N("label.replace","Replace"),w$=yB.N("placeholder.replace","Replace"),C$=yB.N("label.replaceButton","Replace"),k$=yB.N("label.replaceAllButton","Replace All"),S$=yB.N("label.toggleReplaceButton","Toggle Replace mode"),x$=yB.N("title.matchesCountLimit","Only the first {0} results are highlighted, but all find operations work on the entire text.",IG),L$=yB.N("label.matchesLocation","{0} of {1}"),E$=yB.N("label.noResults","No results"),D$=419,N$=69,M$="ctrlEnterReplaceAll.windows.donotask",T$=dz.dz?256:2048,I$=(0,J.Z)((function e(t){(0,X.Z)(this,e),this.afterLineNumber=t,this.heightInPx=33,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}));function O$(e,t,n){var i=!!t.match(/\n/);n&&i&&n.selectionStart>0&&e.stopPropagation()}function A$(e,t,n){var i=!!t.match(/\n/);n&&i&&n.selectionEnd<n.value.length&&e.stopPropagation()}var R$=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o,a,s,u,l,c){var d;return(0,X.Z)(this,n),(d=t.call(this))._cachedHeight=null,d._revealTimeouts=[],d._codeEditor=e,d._controller=i,d._state=r,d._contextViewProvider=o,d._keybindingService=a,d._contextKeyService=s,d._storageService=l,d._notificationService=c,d._ctrlEnterReplaceAllWarningPrompted=!!l.getBoolean(M$,0),d._isVisible=!1,d._isReplaceVisible=!1,d._ignoreChangeEvent=!1,d._updateHistoryDelayer=new zB.vp(500),d._register((0,WB.OF)((function(){return d._updateHistoryDelayer.cancel()}))),d._register(d._state.onFindReplaceStateChange((function(e){return d._onStateChanged(e)}))),d._buildDomNode(),d._updateButtons(),d._tryUpdateWidgetWidth(),d._findInput.inputBox.layout(),d._register(d._codeEditor.onDidChangeConfiguration((function(e){if(e.hasChanged(77)&&(d._codeEditor.getOption(77)&&d._state.change({isReplaceRevealed:!1},!1),d._updateButtons()),e.hasChanged(127)&&d._tryUpdateWidgetWidth(),e.hasChanged(2)&&d.updateAccessibilitySupport(),e.hasChanged(33)){var t=d._codeEditor.getOption(33).addExtraSpaceOnTop;t&&!d._viewZone&&(d._viewZone=new I$(0),d._showViewZone()),!t&&d._viewZone&&d._removeViewZone()}}))),d.updateAccessibilitySupport(),d._register(d._codeEditor.onDidChangeCursorSelection((function(){d._isVisible&&d._updateToggleSelectionFindButton()}))),d._register(d._codeEditor.onDidFocusEditorWidget((function(){return a$((0,Br.Z)(d),void 0,void 0,fn().mark((function e(){var t;return fn().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)})))}))),d._findInputFocused=SG.bindTo(s),d._findFocusTracker=d._register(aW.trackFocus(d._findInput.inputBox.inputElement)),d._register(d._findFocusTracker.onDidFocus((function(){d._findInputFocused.set(!0),d._updateSearchScope()}))),d._register(d._findFocusTracker.onDidBlur((function(){d._findInputFocused.set(!1)}))),d._replaceInputFocused=xG.bindTo(s),d._replaceFocusTracker=d._register(aW.trackFocus(d._replaceInput.inputBox.inputElement)),d._register(d._replaceFocusTracker.onDidFocus((function(){d._replaceInputFocused.set(!0),d._updateSearchScope()}))),d._register(d._replaceFocusTracker.onDidBlur((function(){d._replaceInputFocused.set(!1)}))),d._codeEditor.addOverlayWidget((0,Br.Z)(d)),d._codeEditor.getOption(33).addExtraSpaceOnTop&&(d._viewZone=new I$(0)),d._applyTheme(u.getColorTheme()),d._register(u.onDidColorThemeChange(d._applyTheme.bind((0,Br.Z)(d)))),d._register(d._codeEditor.onDidChangeModel((function(){d._isVisible&&(d._viewZoneId=void 0)}))),d._register(d._codeEditor.onDidScrollChange((function(e){e.scrollTopChanged?d._layoutViewZone():setTimeout((function(){d._layoutViewZone()}),0)}))),d}return(0,J.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=aW.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,LB.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=N$+"px",this._state.matchesCount>=IG?this._matchesCount.title=x$: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>=IG&&(t+="+");var n=String(this._state.matchesPosition);"0"===n&&(n="?"),e=Dz.WU(L$,n,t)}else e=E$;this._matchesCount.appendChild(document.createTextNode(e)),(0,IB.Z9)(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),N$=Math.max(N$,this._matchesCount.clientWidth)}},{key:"_getAriaLabel",value:function(e,t,n){if(e===E$)return""===n?yB.N("ariaSearchNoResultEmpty","{0} found",e):yB.N("ariaSearchNoResult","{0} found for '{1}'",e,n);if(t){var i=yB.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 yB.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=aW.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=aW.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 I$(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(GB.PR),inputActiveOptionBackground:e.getColor(GB.XE),inputActiveOptionForeground:e.getColor(GB.Pv),inputBackground:e.getColor(GB.sE),inputForeground:e.getColor(GB.zJ),inputBorder:e.getColor(GB.dt),inputValidationInfoBackground:e.getColor(GB._l),inputValidationInfoForeground:e.getColor(GB.YI),inputValidationInfoBorder:e.getColor(GB.EP),inputValidationWarningBackground:e.getColor(GB.RV),inputValidationWarningForeground:e.getColor(GB.SU),inputValidationWarningBorder:e.getColor(GB.C3),inputValidationErrorBackground:e.getColor(GB.p),inputValidationErrorForeground:e.getColor(GB._t),inputValidationErrorBorder:e.getColor(GB.OZ)};this._findInput.style(t),this._replaceInput.style(t),this._toggleSelectionFind.style(t)}},{key:"_tryUpdateWidgetWidth",value:function(){if(this._isVisible&&aW.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(aW.getTotalWidth(this._domNode)>D$)return this._domNode.style.maxWidth="".concat(t-28-n-15,"px"),void(this._replaceInput.width=aW.getTotalWidth(this._findInput.domNode));if(447+n>=t&&(r=!0),447+n-N$>=t&&(o=!0),447+n-N$>=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=aW.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||YB.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|T$)?(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)?O$(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):e.equals(18)?A$(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):void 0}},{key:"_onReplaceInputKeyDown",value:function(e){return e.equals(3|T$)?(dz.ED&&dz.tY&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(yB.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(M$,!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)?O$(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):e.equals(18)?A$(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 r$(null,this._contextViewProvider,{width:221,label:p$,placeholder:g$,appendCaseSensitiveLabel:this._keybindingLabelFor(TG.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(TG.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(TG.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()}))),dz.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 P$({label:v$+this._keybindingLabelFor(TG.PreviousMatchFindAction),icon:h$,onTrigger:function(){e._codeEditor.getAction(TG.PreviousMatchFindAction).run().then(void 0,LB.dL)}})),this._nextBtn=this._register(new P$({label:m$+this._keybindingLabelFor(TG.NextMatchFindAction),icon:f$,onTrigger:function(){e._codeEditor.getAction(TG.NextMatchFindAction).run().then(void 0,LB.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 RG({icon:s$,title:_$+this._keybindingLabelFor(TG.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 P$({label:y$+this._keybindingLabelFor(TG.CloseFindWidgetCommand),icon:mU.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 o$(null,void 0,{label:b$,placeholder:w$,appendPreserveCaseLabel:this._keybindingLabelFor(TG.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 P$({label:C$+this._keybindingLabelFor(TG.ReplaceOneAction),icon:c$,onTrigger:function(){e._controller.replace()},onKeyDown:function(t){t.equals(1026)&&(e._closeBtn.focus(),t.preventDefault())}})),this._replaceAllBtn=this._register(new P$({label:k$+this._keybindingLabelFor(TG.ReplaceAllAction),icon:d$,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 P$({label:S$,className:"codicon toggle left",onTrigger:function(){e._state.change({isReplaceRevealed:!e._isReplaceVisible},!1),e._isReplaceVisible&&(e._replaceInput.width=aW.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(D$,"px"),this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(t),this._domNode.appendChild(i),this._resizeSash=new lY.g(this._domNode,this,{orientation:0,size:2}),this._resized=!1;var o=D$;this._register(this._resizeSash.onDidStart((function(){o=aW.getTotalWidth(e._domNode)}))),this._register(this._resizeSash.onDidChange((function(t){e._resized=!0;var n=o+t.startX-t.currentX;n<D$||(n>(parseFloat(aW.getComputedStyle(e._domNode).maxWidth)||0)||(e._domNode.style.width="".concat(n,"px"),e._isReplaceVisible&&(e._replaceInput.width=aW.getTotalWidth(e._findInput.domNode)),e._findInput.inputBox.layout(),e._tryUpdateHeight()))}))),this._register(this._resizeSash.onDidReset((function(){var t=aW.getTotalWidth(e._domNode);if(!(t<D$)){var n=D$;if(!e._resized||t===D$){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=aW.getTotalWidth(e._findInput.domNode)),e._findInput.inputBox.layout()}})))}},{key:"updateAccessibilitySupport",value:function(){var e=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(2!==e)}}]),n}(FV.$);R$.ID="editor.contrib.findWidget";var P$=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;(0,X.Z)(this,n),(i=t.call(this))._opts=e;var r="button";return i._opts.className&&(r=r+" "+i._opts.className),i._opts.icon&&(r=r+" "+$B.kS.asClassName(i._opts.icon)),i._domNode=document.createElement("div"),i._domNode.title=i._opts.label,i._domNode.tabIndex=0,i._domNode.className=r,i._domNode.setAttribute("role","button"),i._domNode.setAttribute("aria-label",i._opts.label),i.onclick(i._domNode,(function(e){i._opts.onTrigger(),e.preventDefault()})),i.onkeydown(i._domNode,(function(e){if(e.equals(10)||e.equals(3))return i._opts.onTrigger(),void e.preventDefault();i._opts.onKeyDown&&i._opts.onKeyDown(e)})),i}return(0,J.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,Ct.Z)($B.kS.asClassNameArray(u$))),(n=this._domNode.classList).add.apply(n,(0,Ct.Z)($B.kS.asClassNameArray(l$)))):((i=this._domNode.classList).remove.apply(i,(0,Ct.Z)($B.kS.asClassNameArray(l$))),(r=this._domNode.classList).add.apply(r,(0,Ct.Z)($B.kS.asClassNameArray(u$))))}}]),n}(FV.$);(0,$B.Ic)((function(e,t){var n=function(e,n){n&&t.addRule(".monaco-editor ".concat(e," { background-color: ").concat(n,"; }"))};n(".findMatch",e.getColor(GB.MU)),n(".currentFindMatch",e.getColor(GB.ny)),n(".findScope",e.getColor(GB.jU)),n(".find-widget",e.getColor(GB.D0));var i=e.getColor(GB.rh);i&&t.addRule(".monaco-editor .find-widget { box-shadow: 0 0 8px 2px ".concat(i,"; }"));var r=e.getColor(GB.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(GB.pn);o&&t.addRule(".monaco-editor .currentFindMatch { border: 2px solid ".concat(o,"; padding: 1px; box-sizing: border-box; }"));var a=e.getColor(GB.gk);a&&t.addRule(".monaco-editor .findScope { border: 1px ".concat("hc"===e.type?"dashed":"solid"," ").concat(a,"; }"));var s=e.getColor(GB.lR);s&&t.addRule(".monaco-editor .find-widget { border: 1px solid ".concat(s,"; }"));var u=e.getColor(GB.Hf);u&&t.addRule(".monaco-editor .find-widget { color: ".concat(u,"; }"));var l=e.getColor(GB.Id);l&&t.addRule(".monaco-editor .find-widget.no-results .matchesCount { color: ".concat(l,"; }"));var c=e.getColor(GB.Ng);if(c)t.addRule(".monaco-editor .find-widget .monaco-sash { background-color: ".concat(c,"; }"));else{var d=e.getColor(GB.D1);d&&t.addRule(".monaco-editor .find-widget .monaco-sash { background-color: ".concat(d,"; }"))}var h=e.getColor(GB.R8);h&&t.addRule(".monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: ".concat(h,"; }"))}));var Z$=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},F$=function(e,t){return function(n,i){t(n,i,e)}},j$=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},H$=524288;function B$(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)<H$)return e.getModel().getValueInRange(n);return null}var z$=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a;return(0,X.Z)(this,n),(a=t.call(this))._editor=e,a._findWidgetVisible=kG.bindTo(i),a._contextKeyService=i,a._storageService=r,a._clipboardService=o,a._updateHistoryDelayer=new zB.vp(500),a._state=a._register(new VG),a.loadQueryState(),a._register(a._state.onFindReplaceStateChange((function(e){return a._onStateChanged(e)}))),a._model=null,a._register(a._editor.onDidChangeModel((function(){var e=a._editor.getModel()&&a._state.isRevealed;a.disposeModel(),a._state.change({searchScope:null,matchCase:a._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:a._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:a._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:a._storageService.getBoolean("editor.preserveCase",1,!1)},!1),e&&a._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:a._editor.getOption(33).loop})}))),a}return(0,J.Z)(n,[{key:"editor",get:function(){return this._editor}},{key:"dispose",value:function(){this.disposeModel(),(0,Qz.Z)((0,Xz.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!!SG.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=Dz.ec(e)),this._state.change({searchString:e},!1)}},{key:"highlightFindOptions",value:function(){}},{key:"_start",value:function(e){return j$(this,void 0,void 0,fn().mark((function t(){var n,i,r,o,a;return fn().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=B$(this._editor,e.seedSearchStringFromSelection))&&(this._state.isRegex?n.searchString=Dz.ec(i):n.searchString=i):"multiple"!==e.seedSearchStringFromSelection||e.updateSearchScope||(r=B$(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 OG(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 j$(this,void 0,void 0,fn().mark((function e(){return fn().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}(WB.JT);z$.ID="editor.contrib.findController";var W$=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o,a,s,u,l){var c;return(0,X.Z)(this,n),(c=t.call(this,e,r,u,l))._contextViewService=i,c._keybindingService=o,c._themeService=a,c._notificationService=s,c._widget=null,c._findOptionsWidget=null,c}return(0,J.Z)(n,[{key:"_start",value:function(e){var t=this,i=Object.create(null,{_start:{get:function(){return(0,Qz.Z)((0,Xz.Z)(n.prototype),"_start",t)}}});return j$(this,void 0,void 0,fn().mark((function t(){var n,r,o;return fn().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 R$(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService)),this._findOptionsWidget=this._register(new zG(this._editor,this._state,this._keybindingService,this._themeService))}}]),n}(z$=Z$([F$(1,kB.i6),F$(2,vV.Uy),F$(3,pz.p)],z$));W$=Z$([F$(1,uW.u),F$(2,kB.i6),F$(3,lW.d),F$(4,$B.XE),F$(5,AW.lT),F$(6,vV.Uy),F$(7,pz.p)],W$),(0,_B.rn)(new _B.jY({id:TG.StartFindAction,label:yB.N("startFindAction","Find"),alias:"Find",precondition:kB.Ao.or(bB.u.focus,kB.Ao.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:QB.eH.MenubarEditMenu,group:"3_find",title:yB.N({key:"miFind",comment:["&& denotes a mnemonic"]},"&&Find"),order:1}})).addImplementation(0,(function(e,t,n){var i=z$.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 V$=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:TG.StartFindWithSelection,label:yB.N("startFindWithSelectionAction","Find With Selection"),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){return j$(this,void 0,void 0,fn().mark((function e(){var n;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(n=z$.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}(_B.R6),Y$=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"run",value:function(e,t){return j$(this,void 0,void 0,fn().mark((function e(){var n;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(n=z$.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}(_B.R6),U$=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:TG.NextMatchFindAction,label:yB.N("findNextMatchAction","Find Next"),alias:"Find Next",precondition:void 0,kbOpts:{kbExpr:bB.u.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100}})}return(0,J.Z)(n,[{key:"_run",value:function(e){return!!e.moveToNextMatch()&&(e.editor.pushUndoStop(),!0)}}]),n}(Y$),K$=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:TG.NextMatchFindAction,label:yB.N("findNextMatchAction","Find Next"),alias:"Find Next",precondition:void 0,kbOpts:{kbExpr:kB.Ao.and(bB.u.focus,SG),primary:3,weight:100}})}return(0,J.Z)(n,[{key:"_run",value:function(e){return!!e.moveToNextMatch()&&(e.editor.pushUndoStop(),!0)}}]),n}(Y$),q$=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:TG.PreviousMatchFindAction,label:yB.N("findPreviousMatchAction","Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:{kbExpr:bB.u.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100}})}return(0,J.Z)(n,[{key:"_run",value:function(e){return e.moveToPrevMatch()}}]),n}(Y$),G$=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:TG.PreviousMatchFindAction,label:yB.N("findPreviousMatchAction","Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:{kbExpr:kB.Ao.and(bB.u.focus,SG),primary:1027,weight:100}})}return(0,J.Z)(n,[{key:"_run",value:function(e){return e.moveToPrevMatch()}}]),n}(Y$),$$=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"run",value:function(e,t){return j$(this,void 0,void 0,fn().mark((function e(){var n,i;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=z$.get(t)){e.next=3;break}return e.abrupt("return");case 3:if((i=B$(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}(_B.R6),Q$=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:TG.NextSelectionMatchFindAction,label:yB.N("nextSelectionMatchFindAction","Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:bB.u.focus,primary:2109,weight:100}})}return(0,J.Z)(n,[{key:"_run",value:function(e){return e.moveToNextMatch()}}]),n}($$),X$=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:TG.PreviousSelectionMatchFindAction,label:yB.N("previousSelectionMatchFindAction","Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:bB.u.focus,primary:3133,weight:100}})}return(0,J.Z)(n,[{key:"_run",value:function(e){return e.moveToPrevMatch()}}]),n}($$);(0,_B.rn)(new _B.jY({id:TG.StartFindReplaceAction,label:yB.N("startReplace","Replace"),alias:"Replace",precondition:kB.Ao.or(bB.u.focus,kB.Ao.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:QB.eH.MenubarEditMenu,group:"3_find",title:yB.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=z$.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,_B._K)(z$.ID,W$),(0,_B.Qr)(V$),(0,_B.Qr)(U$),(0,_B.Qr)(K$),(0,_B.Qr)(q$),(0,_B.Qr)(G$),(0,_B.Qr)(Q$),(0,_B.Qr)(X$);var J$=_B._l.bindToContribution(z$.get);(0,_B.fK)(new J$({id:TG.CloseFindWidgetCommand,precondition:kG,handler:function(e){return e.closeFindWidget()},kbOpts:{weight:105,kbExpr:kB.Ao.and(bB.u.focus,kB.Ao.not("isComposing")),primary:9,secondary:[1033]}})),(0,_B.fK)(new J$({id:TG.ToggleCaseSensitiveCommand,precondition:void 0,handler:function(e){return e.toggleCaseSensitive()},kbOpts:{weight:105,kbExpr:bB.u.focus,primary:LG.primary,mac:LG.mac,win:LG.win,linux:LG.linux}})),(0,_B.fK)(new J$({id:TG.ToggleWholeWordCommand,precondition:void 0,handler:function(e){return e.toggleWholeWords()},kbOpts:{weight:105,kbExpr:bB.u.focus,primary:EG.primary,mac:EG.mac,win:EG.win,linux:EG.linux}})),(0,_B.fK)(new J$({id:TG.ToggleRegexCommand,precondition:void 0,handler:function(e){return e.toggleRegex()},kbOpts:{weight:105,kbExpr:bB.u.focus,primary:DG.primary,mac:DG.mac,win:DG.win,linux:DG.linux}})),(0,_B.fK)(new J$({id:TG.ToggleSearchScopeCommand,precondition:void 0,handler:function(e){return e.toggleSearchScope()},kbOpts:{weight:105,kbExpr:bB.u.focus,primary:NG.primary,mac:NG.mac,win:NG.win,linux:NG.linux}})),(0,_B.fK)(new J$({id:TG.TogglePreserveCaseCommand,precondition:void 0,handler:function(e){return e.togglePreserveCase()},kbOpts:{weight:105,kbExpr:bB.u.focus,primary:MG.primary,mac:MG.mac,win:MG.win,linux:MG.linux}})),(0,_B.fK)(new J$({id:TG.ReplaceOneAction,precondition:kG,handler:function(e){return e.replace()},kbOpts:{weight:105,kbExpr:bB.u.focus,primary:3094}})),(0,_B.fK)(new J$({id:TG.ReplaceOneAction,precondition:kG,handler:function(e){return e.replace()},kbOpts:{weight:105,kbExpr:kB.Ao.and(bB.u.focus,xG),primary:3}})),(0,_B.fK)(new J$({id:TG.ReplaceAllAction,precondition:kG,handler:function(e){return e.replaceAll()},kbOpts:{weight:105,kbExpr:bB.u.focus,primary:2563}})),(0,_B.fK)(new J$({id:TG.ReplaceAllAction,precondition:kG,handler:function(e){return e.replaceAll()},kbOpts:{weight:105,kbExpr:kB.Ao.and(bB.u.focus,xG),primary:void 0,mac:{primary:2051}}})),(0,_B.fK)(new J$({id:TG.SelectAllMatchesAction,precondition:kG,handler:function(e){return e.selectAllMatches()},kbOpts:{weight:105,kbExpr:bB.u.focus,primary:515}}));var eQ=65535,tQ=16777215,nQ=4278190080,iQ=function(){function e(t,n,i){if((0,X.Z)(this,e),t.length!==n.length||t.length>eQ)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=i,this._parentsComputed=!1}return(0,J.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>tQ||a>tQ)throw new Error("startLineNumber or endLineNumber must not exceed "+tQ);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]&tQ}},{key:"getEndLineNumber",value:function(e){return this._endIndexes[e]&tQ}},{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 rQ(this,e)}},{key:"getParentIndex",value:function(e){this.ensureParentIndices();var t=((this._startIndexes[e]&nQ)>>>24)+((this._endIndexes[e]&nQ)>>>16);return t===eQ?-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}(),rQ=function(){function e(t,n){(0,X.Z)(this,e),this.ranges=t,this.index=n}return(0,J.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}(),oQ=function(){function e(t,n){(0,X.Z)(this,e),this._updateEventEmitter=new _W.Q5,this.onDidChange=this._updateEventEmitter.event,this._textModel=t,this._decorationProvider=n,this._regions=new iQ(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[],this._isInitialized=!1}return(0,J.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,Na.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,Na.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,Na.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 aQ(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,Na.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,Ct.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,Ct.Z)(c))}e.toggleCollapseState(r)}function sQ(e,t,n,i){var r,o=[],a=(0,Na.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,Ct.Z)(u))}}catch(l){a.e(l)}finally{a.f()}e.toggleCollapseState(o)}function uQ(e,t,n){var i,r=[],o=(0,Na.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 lQ(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 cQ(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 dQ=(0,mU.q5)("folding-expanded",bW.lA.chevronDown,(0,yB.N)("foldingExpandedIcon","Icon for expanded ranges in the editor glyph margin.")),hQ=(0,mU.q5)("folding-collapsed",bW.lA.chevronRight,(0,yB.N)("foldingCollapsedIcon","Icon for collapsed ranges in the editor glyph margin.")),fQ=function(){function e(t){(0,X.Z)(this,e),this.editor=t,this.autoHideFoldingControls=!0,this.showFoldingHighlights=!0}return(0,J.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}();fQ.COLLAPSED_VISUAL_DECORATION=KB.qx.register({stickiness:1,afterContentClassName:"inline-folded",isWholeLine:!0,firstLineDecorationClassName:$B.kS.asClassName(hQ)}),fQ.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=KB.qx.register({stickiness:1,afterContentClassName:"inline-folded",className:"folded-background",isWholeLine:!0,firstLineDecorationClassName:$B.kS.asClassName(hQ)}),fQ.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=KB.qx.register({stickiness:1,isWholeLine:!0,firstLineDecorationClassName:$B.kS.asClassName(dQ)}),fQ.EXPANDED_VISUAL_DECORATION=KB.qx.register({stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+$B.kS.asClassName(dQ)}),fQ.HIDDEN_RANGE_DECORATION=KB.qx.register({stickiness:1});var pQ=function(){function e(t){var n=this;(0,X.Z)(this,e),this._updateEventEmitter=new _W.Q5,this._foldingModel=t,this._foldingModelListener=t.onDidChange((function(e){return n.updateHiddenRanges()})),this._hiddenRanges=[],t.regions.length&&this.updateHiddenRanges()}return(0,J.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 YB.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,Na.Z)(e);try{for(i.s();!(t=i.n()).done;){var r=t.value;if(!r.startLineNumber||!r.endLineNumber)return!1;n.push(new YB.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!==gQ(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=gQ(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 gQ(e,t){var n=(0,SB.lG)(e,(function(e){return t<e.startLineNumber}))-1;return n>=0&&e[n].endLineNumber>=t?e[n]:null}var vQ=5e3,mQ="indent",_Q=function(){function e(t){(0,X.Z)(this,e),this.editorModel=t,this.id=mQ}return(0,J.Z)(e,[{key:"dispose",value:function(){}},{key:"compute",value:function(e){var t=Uq.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]:vQ,r=e.getOptions().tabSize,o=new yQ(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=KB.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}(),yQ=function(){function e(t){(0,X.Z)(this,e),this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=t}return(0,J.Z)(e,[{key:"insertFirst",value:function(e,t,n){if(!(e>tQ||t>tQ)){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 iQ(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=KB.yO.computeIndentLevel(g,l);(v<a||v===a&&o++<this._foldingRangesLimit)&&(c[f]=p,d[f]=this._endIndexes[h],f++)}return new iQ(c,d)}}]),e}();var bQ=5e3,wQ={},CQ="syntax",kQ=function(){function e(t,n,i){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:bQ;(0,X.Z)(this,e),this.editorModel=t,this.providers=n,this.limit=r,this.id=CQ;var o,a=(0,Na.Z)(n);try{for(a.s();!(o=a.n()).done;){var s=o.value;"function"===typeof s.onDidChange&&(this.disposables||(this.disposables=new WB.SL),this.disposables.add(s.onDidChange(i)))}}catch(u){a.e(u)}finally{a.f()}}return(0,J.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,wQ,n)).then((function(e){if(!n.isCancellationRequested&&Array.isArray(e)){Array.isArray(i)||(i=[]);var o,a=t.getLineCount(),s=(0,Na.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()}}}),LB.Cp)}));return Promise.all(r).then((function(e){return i}))}(this.providers,this.editorModel,e).then((function(e){return e?xQ(e,t.limit):null}))}},{key:"dispose",value:function(){var e;null===(e=this.disposables)||void 0===e||e.dispose()}}]),e}();var SQ=function(){function e(t){(0,X.Z)(this,e),this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=t}return(0,J.Z)(e,[{key:"add",value:function(e,t,n,i){if(!(e>tQ||t>tQ)){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 iQ(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 iQ(s,u,l)}}]),e}();function xQ(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 SQ(t),o=void 0,a=[],s=(0,Na.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 LQ="init",EQ=function(){function e(t,n,i,r){if((0,X.Z)(this,e),this.editorModel=t,this.id=LQ,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(i,r)}}return(0,J.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,Na.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(xQ(t,Number.MAX_VALUE))}}]),e}(),DQ=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},NQ=function(e,t){return function(n,i){t(n,i,e)}},MQ=new kB.uy("foldingEnabled",!1),TQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;(0,X.Z)(this,n),(r=t.call(this)).contextKeyService=i,r.localToDispose=r._register(new WB.SL),r.editor=e;var o=r.editor.getOptions();return r._isEnabled=o.get(35),r._useFoldingProviders="indentation"!==o.get(36),r._unfoldOnClickAfterEndOfLine=o.get(38),r._restoringViewState=!1,r.foldingModel=null,r.hiddenRangeModel=null,r.rangeProvider=null,r.foldingRegionPromise=null,r.foldingStateMemento=null,r.foldingModelPromise=null,r.updateScheduler=null,r.cursorChangedScheduler=null,r.mouseDownInfo=null,r.foldingDecorationProvider=new fQ(e),r.foldingDecorationProvider.autoHideFoldingControls="mouseover"===o.get(96),r.foldingDecorationProvider.showFoldingHighlights=o.get(37),r.foldingEnabled=MQ.bindTo(r.contextKeyService),r.foldingEnabled.set(r._isEnabled),r._register(r.editor.onDidChangeModel((function(){return r.onModelChanged()}))),r._register(r.editor.onDidChangeConfiguration((function(e){if(e.hasChanged(35)&&(r._isEnabled=r.editor.getOptions().get(35),r.foldingEnabled.set(r._isEnabled),r.onModelChanged()),e.hasChanged(96)||e.hasChanged(37)){var t=r.editor.getOptions();r.foldingDecorationProvider.autoHideFoldingControls="mouseover"===t.get(96),r.foldingDecorationProvider.showFoldingHighlights=t.get(37),r.onModelContentChanged()}e.hasChanged(36)&&(r._useFoldingProviders="indentation"!==r.editor.getOptions().get(36),r.onFoldingStrategyChanged()),e.hasChanged(38)&&(r._unfoldOnClickAfterEndOfLine=r.editor.getOptions().get(38))}))),r.onModelChanged(),r}return(0,J.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!==CQ&&e.provider!==LQ||(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,LB.dL)}}}},{key:"onModelChanged",value:function(){var e=this;this.localToDispose.clear();var t=this.editor.getModel();this._isEnabled&&t&&!t.isTooLargeForTokenization()&&(this.foldingModel=new oQ(t,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new pQ(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((function(t){return e.onHiddenRangesChanges(t)}))),this.updateScheduler=new zB.vp(200),this.cursorChangedScheduler=new zB.pY((function(){return e.revealCursor()}),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(Iz.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 _Q(e),this._useFoldingProviders&&this.foldingModel){var n=Iz.aC.ordered(this.foldingModel.textModel);if(0===n.length&&this.foldingStateMemento&&this.foldingStateMemento.collapsedRegions)return this.rangeProvider=new EQ(e,this.foldingStateMemento.collapsedRegions,(function(){t.foldingStateMemento=null,t.onFoldingStrategyChanged()}),3e4);n.length>0&&(this.rangeProvider=new kQ(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,zB.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,LB.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,Na.Z)(n);try{var a=function(){var n=i.value.selectionStartLineNumber;e.hiddenRangeModel&&e.hiddenRangeModel.isHidden(n)&&r.push.apply(r,(0,Ct.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,LB.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,Na.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,Na.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,LB.dL)}}}},{key:"reveal",value:function(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(WB.JT);TQ.ID="editor.contrib.folding",TQ=DQ([NQ(1,kB.i6)],TQ);var IQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=this,r=TQ.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}(_B.R6);function OQ(e){if(!oV.o8(e)){if(!oV.Kn(e))return!1;var t=e;if(!oV.o8(t.levels)&&!oV.hj(t.levels))return!1;if(!oV.o8(t.direction)&&!oV.HD(t.direction))return!1;if(!oV.o8(t.selectionLines)&&(!oV.kJ(t.selectionLines)||!t.selectionLines.every(oV.hj)))return!1}return!0}var AQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.unfold",label:yB.N("unfoldAction.label","Unfold"),alias:"Unfold",precondition:MQ,kbOpts:{kbExpr:bB.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:OQ,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,J.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?sQ(t,!1,r,o):aQ(t,!1,r,o)}}]),n}(IQ),RQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.unfoldRecursively",label:yB.N("unFoldRecursivelyAction.label","Unfold Recursively"),alias:"Unfold Recursively",precondition:MQ,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2137),weight:100}})}return(0,J.Z)(n,[{key:"invoke",value:function(e,t,n,i){aQ(t,!1,Number.MAX_VALUE,this.getSelectedLines(n))}}]),n}(IQ),PQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.fold",label:yB.N("foldAction.label","Fold"),alias:"Fold",precondition:MQ,kbOpts:{kbExpr:bB.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:OQ,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}return(0,J.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,Na.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?sQ(t,!0,o||1,r):aQ(t,!0,o||1,r)}}]),n}(IQ),ZQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.toggleFold",label:yB.N("toggleFoldAction.label","Toggle Fold"),alias:"Toggle Fold",precondition:MQ,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2090),weight:100}})}return(0,J.Z)(n,[{key:"invoke",value:function(e,t,n){!function(e,t,n){var i,r=[],o=(0,Na.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,Ct.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}(IQ),FQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.foldRecursively",label:yB.N("foldRecursivelyAction.label","Fold Recursively"),alias:"Fold Recursively",precondition:MQ,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2135),weight:100}})}return(0,J.Z)(n,[{key:"invoke",value:function(e,t,n){var i=this.getSelectedLines(n);aQ(t,!0,Number.MAX_VALUE,i)}}]),n}(IQ),jQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.foldAllBlockComments",label:yB.N("foldAllBlockComments.label","Fold All Block Comments"),alias:"Fold All Block Comments",precondition:MQ,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2133),weight:100}})}return(0,J.Z)(n,[{key:"invoke",value:function(e,t,n){if(t.regions.hasTypes())cQ(t,Iz.AD.Comment.value,!0);else{var i=n.getModel();if(!i)return;var r=Uq.zu.getComments(i.getLanguageIdentifier().id);if(r&&r.blockCommentStartToken)lQ(t,new RegExp("^\\s*"+(0,Dz.ec)(r.blockCommentStartToken)),!0)}}}]),n}(IQ),HQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.foldAllMarkerRegions",label:yB.N("foldAllMarkerRegions.label","Fold All Regions"),alias:"Fold All Regions",precondition:MQ,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2077),weight:100}})}return(0,J.Z)(n,[{key:"invoke",value:function(e,t,n){if(t.regions.hasTypes())cQ(t,Iz.AD.Region.value,!0);else{var i=n.getModel();if(!i)return;var r=Uq.zu.getFoldingRules(i.getLanguageIdentifier().id);if(r&&r.markers&&r.markers.start)lQ(t,new RegExp(r.markers.start),!0)}}}]),n}(IQ),BQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.unfoldAllMarkerRegions",label:yB.N("unfoldAllMarkerRegions.label","Unfold All Regions"),alias:"Unfold All Regions",precondition:MQ,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2078),weight:100}})}return(0,J.Z)(n,[{key:"invoke",value:function(e,t,n){if(t.regions.hasTypes())cQ(t,Iz.AD.Region.value,!1);else{var i=n.getModel();if(!i)return;var r=Uq.zu.getFoldingRules(i.getLanguageIdentifier().id);if(r&&r.markers&&r.markers.start)lQ(t,new RegExp(r.markers.start),!1)}}}]),n}(IQ),zQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.foldAllExcept",label:yB.N("foldAllExcept.label","Fold All Regions Except Selected"),alias:"Fold All Regions Except Selected",precondition:MQ,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2131),weight:100}})}return(0,J.Z)(n,[{key:"invoke",value:function(e,t,n){uQ(t,!0,this.getSelectedLines(n))}}]),n}(IQ),WQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.unfoldAllExcept",label:yB.N("unfoldAllExcept.label","Unfold All Regions Except Selected"),alias:"Unfold All Regions Except Selected",precondition:MQ,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2129),weight:100}})}return(0,J.Z)(n,[{key:"invoke",value:function(e,t,n){uQ(t,!1,this.getSelectedLines(n))}}]),n}(IQ),VQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.foldAll",label:yB.N("foldAllAction.label","Fold All"),alias:"Fold All",precondition:MQ,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2069),weight:100}})}return(0,J.Z)(n,[{key:"invoke",value:function(e,t,n){aQ(t,!0)}}]),n}(IQ),YQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.unfoldAll",label:yB.N("unfoldAllAction.label","Unfold All"),alias:"Unfold All",precondition:MQ,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2088),weight:100}})}return(0,J.Z)(n,[{key:"invoke",value:function(e,t,n){aQ(t,!1)}}]),n}(IQ),UQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.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}(IQ);UQ.ID_PREFIX="editor.foldLevel",UQ.ID=function(e){return UQ.ID_PREFIX+e},(0,_B._K)(TQ.ID,TQ),(0,_B.Qr)(AQ),(0,_B.Qr)(RQ),(0,_B.Qr)(PQ),(0,_B.Qr)(FQ),(0,_B.Qr)(VQ),(0,_B.Qr)(YQ),(0,_B.Qr)(jQ),(0,_B.Qr)(HQ),(0,_B.Qr)(BQ),(0,_B.Qr)(zQ),(0,_B.Qr)(WQ),(0,_B.Qr)(ZQ);for(var KQ=1;KQ<=7;KQ++)(0,_B.QG)(new UQ({id:UQ.ID(KQ),label:yB.N("foldLevelAction.label","Fold Level {0}",KQ),alias:"Fold Level ".concat(KQ),precondition:MQ,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2048|21+KQ),weight:100}}));var qQ=(0,GB.P6)("editor.foldBackground",{light:(0,GB.Zn)(GB.hE,.3),dark:(0,GB.Zn)(GB.hE,.3),hc:null},yB.N("foldBackgroundBackground","Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0),GQ=(0,GB.P6)("editorGutter.foldingControlForeground",{dark:GB.XZ,light:GB.XZ,hc:GB.XZ},yB.N("editorGutter.foldingControlForeground","Color of the folding control in the editor gutter."));(0,$B.Ic)((function(e,t){var n=e.getColor(qQ);n&&t.addRule(".monaco-editor .folded-background { background-color: ".concat(n,"; }"));var i=e.getColor(GQ);i&&t.addRule("\n\t\t.monaco-editor .cldr".concat($B.kS.asCSSSelector(dQ),",\n\t\t.monaco-editor .cldr").concat($B.kS.asCSSSelector(hQ)," {\n\t\t\tcolor: ").concat(i," !important;\n\t\t}\n\t\t"))}));var $Q=n(51164),QQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.fontZoomIn",label:yB.N("EditorFontZoomIn.label","Editor Font Zoom In"),alias:"Editor Font Zoom In",precondition:void 0})}return(0,J.Z)(n,[{key:"run",value:function(e,t){$Q.C.setZoomLevel($Q.C.getZoomLevel()+1)}}]),n}(_B.R6),XQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.fontZoomOut",label:yB.N("EditorFontZoomOut.label","Editor Font Zoom Out"),alias:"Editor Font Zoom Out",precondition:void 0})}return(0,J.Z)(n,[{key:"run",value:function(e,t){$Q.C.setZoomLevel($Q.C.getZoomLevel()-1)}}]),n}(_B.R6),JQ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.fontZoomReset",label:yB.N("EditorFontZoomReset.label","Editor Font Zoom Reset"),alias:"Editor Font Zoom Reset",precondition:void 0})}return(0,J.Z)(n,[{key:"run",value:function(e,t){$Q.C.setZoomLevel(0)}}]),n}(_B.R6);(0,_B.Qr)(QQ),(0,_B.Qr)(XQ),(0,_B.Qr)(JQ);var eX=n(84516),tX=n(333),nX=n(61335),iX=n(71481),rX=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},oX=function(e,t){return function(n,i){t(n,i,e)}},aX=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},sX=function(){function e(t,n){var i=this;(0,X.Z)(this,e),this._workerService=n,this._callOnDispose=new WB.SL,this._callOnModel=new WB.SL,this._editor=t,this._callOnDispose.add(t.onDidChangeConfiguration((function(){return i._update()}))),this._callOnDispose.add(t.onDidChangeModel((function(){return i._update()}))),this._callOnDispose.add(t.onDidChangeModelLanguage((function(){return i._update()}))),this._callOnDispose.add(Iz.ln.onDidChange(this._update,this))}return(0,J.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=Iz.ln.ordered(t),i=(0,ne.Z)(n,1)[0];if(i&&i.autoFormatTriggerCharacters){var r,o=new eX.q,a=(0,Na.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,nX.Qs)(this._workerService,n,i,e,n.getFormattingOptions()).then((function(e){o.dispose(),r||(0,SB.Of)(e)&&(iX.V.execute(t._editor,e,!0),(0,nX.Zg)(e))}),(function(e){throw o.dispose(),e}))}}}]),e}();sX.ID="editor.contrib.autoFormat",sX=rX([oX(1,tX.p)],sX);var uX=function(){function e(t,n){var i=this;(0,X.Z)(this,e),this.editor=t,this._instantiationService=n,this._callOnDispose=new WB.SL,this._callOnModel=new WB.SL,this._callOnDispose.add(t.onDidChangeConfiguration((function(){return i._update()}))),this._callOnDispose.add(t.onDidChangeModel((function(){return i._update()}))),this._callOnDispose.add(t.onDidChangeModelLanguage((function(){return i._update()}))),this._callOnDispose.add(Iz.vN.onDidChange(this._update,this))}return(0,J.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()&&Iz.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(nX.x$,this.editor,e,2,Fz.E.None,Lz.T.None).catch(LB.dL))}}]),e}();uX.ID="editor.contrib.formatOnPaste",uX=rX([oX(1,oW.TG)],uX);var lX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.formatDocument",label:yB.N("formatDocument.label","Format Document"),alias:"Format Document",precondition:kB.Ao.and(bB.u.notInCompositeEditor,bB.u.writable,bB.u.hasDocumentFormattingProvider),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){return aX(this,void 0,void 0,fn().mark((function n(){var i,r;return fn().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!t.hasModel()){n.next=5;break}return i=e.get(oW.TG),r=e.get(Fz.e),n.next=5,r.showWhile(i.invokeFunction(nX.Qq,t,1,Fz.E.None,Lz.T.None),250);case 5:case"end":return n.stop()}}),n)})))}}]),n}(_B.R6),cX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.formatSelection",label:yB.N("formatSelection.label","Format Selection"),alias:"Format Selection",precondition:kB.Ao.and(bB.u.writable,bB.u.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2084),weight:100},contextMenuOpts:{when:bB.u.hasNonEmptySelection,group:"1_modification",order:1.31}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){return aX(this,void 0,void 0,fn().mark((function n(){var i,r,o,a;return fn().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(oW.TG),r=t.getModel(),o=t.getSelections().map((function(e){return e.isEmpty()?new YB.e(e.startLineNumber,1,e.startLineNumber,r.getLineMaxColumn(e.startLineNumber)):e})),a=e.get(Fz.e),n.next=8,a.showWhile(i.invokeFunction(nX.x$,t,o,1,Fz.E.None,Lz.T.None),250);case 8:case"end":return n.stop()}}),n)})))}}]),n}(_B.R6);(0,_B._K)(sX.ID,sX),(0,_B._K)(uX.ID,uX),(0,_B.Qr)(lX),(0,_B.Qr)(cX),jz.P.registerCommand("editor.action.format",(function(e){return aX(void 0,void 0,void 0,fn().mark((function t(){var n,i;return fn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((n=e.get(fz.$).getFocusedCodeEditor())&&n.hasModel()){t.next=3;break}return t.abrupt("return");case 3:if(i=e.get(jz.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 dX=n(98900),hX=function(){function e(){(0,X.Z)(this,e)}return(0,J.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}(),fX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o;return(0,X.Z)(this,n),(o=t.call(this)).id=e,o.parent=i,o.symbol=r,o.children=new Map,o}return(0,J.Z)(n)}(hX),pX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a;return(0,X.Z)(this,n),(a=t.call(this)).id=e,a.parent=i,a.label=r,a.order=o,a.children=new Map,a}return(0,J.Z)(n)}(hX),gX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this)).uri=e,i.id="root",i.parent=void 0,i._groups=new Map,i.children=new Map,i.id="root",i.parent=void 0,i}return(0,J.Z)(n,[{key:"_compact",value:function(){var e,t=0,n=(0,Na.Z)(this._groups);try{for(n.s();!(e=n.n()).done;){var i=(0,ne.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=dX.$.first(this._groups.values()),s=(0,Na.Z)(a.children);try{for(s.s();!(o=s.n()).done;){var u=(0,ne.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,Na.Z)(this.children.values());try{for(n.s();!(e=n.n()).done;){var i=e.value;i instanceof fX?t.push(i.symbol):t.push.apply(t,(0,Ct.Z)(dX.$.map(i.children.values(),(function(e){return e.symbol}))))}}catch(r){n.e(r)}finally{n.f()}return t.sort((function(e,t){return YB.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 YB.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 Lz.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 Lz.A(t),r=new n(e.uri),o=Iz.vJ.ordered(e),a=o.map((function(t,o){var a,s=hX.findId("provider_".concat(o),r),u=new pX(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,Na.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,LB.Cp)(e),u})).then((function(e){hX.empty(e)?e.remove():r._groups.set(s,e)}))})),s=Iz.vJ.onDidChange((function(){var t=Iz.vJ.ordered(e);(0,SB.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=hX.findId(e,t),r=new fX(i,t,e);if(e.children){var o,a=(0,Na.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,Na.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}(hX);gX._requestDurations=new xV.Y(Iz.vJ,350),gX._requests=new gV.z6(9,.75),gX._keys=new(function(){function e(){(0,X.Z)(this,e),this._counter=1,this._data=new WeakMap}return(0,J.Z)(e,[{key:"for",value:function(e,t){return"".concat(e.id,"/").concat(t?e.getVersionId():"","/").concat(this._hash(Iz.vJ.all(e)))}},{key:"_hash",value:function(e){var t,n="",i=(0,Na.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 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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function mX(e,t,n){return vX(this,void 0,void 0,fn().mark((function i(){var r;return fn().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,gX.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)})))}jz.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 vX(this,void 0,void 0,fn().mark((function t(){var i,r,o;return fn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=n[0],(0,oV.p_)(Mz.o.isUri(i)),!(r=e.get(Oz.q).getModel(i))){t.next=5;break}return t.abrupt("return",mX(r,!1,Lz.T.None));case 5:return t.next=7,e.get(SK.S).createModelReference(i);case 7:return o=t.sent,t.prev=8,t.next=11,mX(o.object.textEditorModel,!1,Lz.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 _X=n(83);function yX(e,t){for(var n=0,i=0;i<e.length;i++)"\t"===e.charAt(i)?n+=t:n++;return n}function bX(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 wX(e,t,n,i){if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return[];var r=Uq.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,_X.U.shiftIndent(e,e.length+t,u,l,c)},h=function(e,t){return t=t||1,_X.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=Dz.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(Yq.h.replaceMove(new wB.Y(t,1,t,v.length+1),KB.yO.normalizeIndentation(a,l,c)))}else a=Dz.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=Dz.V8(y),w=m+y.substring(b.length);r.decreaseIndentPattern&&r.decreaseIndentPattern.test(w)&&(m=h(m),a=h(a)),b!==m&&f.push(Yq.h.replaceMove(new wB.Y(_,1,_,b.length+1),KB.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 CX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:n.ID,label:yB.N("indentationToSpaces","Convert Indentation to Spaces"),alias:"Convert Indentation to Spaces",precondition:bB.u.writable})}return(0,J.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 OX(r,i.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[o]),t.pushUndoStop(),n.updateOptions({insertSpaces:!0})}}}}]),n}(_B.R6);CX.ID="editor.action.indentationToSpaces";var kX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:n.ID,label:yB.N("indentationToTabs","Convert Indentation to Tabs"),alias:"Convert Indentation to Tabs",precondition:bB.u.writable})}return(0,J.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 AX(r,i.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[o]),t.pushUndoStop(),n.updateOptions({insertSpaces:!1})}}}}]),n}(_B.R6);kX.ID="editor.action.indentationToTabs";var SX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this,i)).insertSpaces=e,r}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=this,i=e.get(SV.eJ),r=e.get(Oz.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?yB.N("configuredTabSize","Configured Tab Size"):void 0}})),u=Math.min(o.getOptions().tabSize-1,7);setTimeout((function(){i.pick(s,{placeHolder:yB.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}(_B.R6),xX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!1,{id:n.ID,label:yB.N("indentUsingTabs","Indent Using Tabs"),alias:"Indent Using Tabs",precondition:void 0})}return(0,J.Z)(n)}(SX);xX.ID="editor.action.indentUsingTabs";var LX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!0,{id:n.ID,label:yB.N("indentUsingSpaces","Indent Using Spaces"),alias:"Indent Using Spaces",precondition:void 0})}return(0,J.Z)(n)}(SX);LX.ID="editor.action.indentUsingSpaces";var EX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:n.ID,label:yB.N("detectIndentation","Detect Indentation from Content"),alias:"Detect Indentation from Content",precondition:void 0})}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=e.get(Oz.q),i=t.getModel();if(i){var r=n.getCreationOptions(i.getLanguageIdentifier().language,i.uri,i.isForSimpleWidget);i.detectIndentation(r.insertSpaces,r.tabSize)}}}]),n}(_B.R6);EX.ID="editor.action.detectIndentation";var DX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.reindentlines",label:yB.N("editor.reindentlines","Reindent Lines"),alias:"Reindent Lines",precondition:bB.u.writable})}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=t.getModel();if(n){var i=wX(n,1,n.getLineCount());i.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,i),t.pushUndoStop())}}}]),n}(_B.R6),NX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.reindentselectedlines",label:yB.N("editor.reindentselectedlines","Reindent Selected Lines"),alias:"Reindent Selected Lines",precondition:bB.u.writable})}return(0,J.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,Na.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=wX(n,u,l);o.push.apply(o,(0,Ct.Z)(c))}}catch(d){a.e(d)}finally{a.f()}o.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,o),t.pushUndoStop())}}}}]),n}(_B.R6),MX=function(){function e(t,n){(0,X.Z)(this,e),this._initialSelection=n,this._edits=[],this._selectionId=null;var i,r=(0,Na.Z)(t);try{for(r.s();!(i=r.n()).done;){var o=i.value;o.range&&"string"===typeof o.text&&this._edits.push(o)}}catch(a){r.e(a)}finally{r.f()}}return(0,J.Z)(e,[{key:"getEditOperations",value:function(e,t){var n,i=(0,Na.Z)(this._edits);try{for(i.s();!(n=i.n()).done;){var r=n.value;t.addEditOperation(YB.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}(),TX=function(){function e(t){var n=this;(0,X.Z)(this,e),this.callOnDispose=new WB.SL,this.callOnModel=new WB.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,J.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 _X.U.shiftIndent(e,e.length+1,o,a,s)},unshiftIndent:function(e){return _X.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=Uq.zu.getGoodIndentForLine(i,n,n.getLanguageIdentifier().id,c,l);if(null!==h){var f=Dz.V8(d),p=yX(h,o);if(p!==yX(f,o)){var g=bX(p,o,s);u.push({range:new YB.e(c,1,c,f.length+1),text:g}),d=g+d.substr(f.length)}else{var v=Uq.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=Uq.zu.getGoodIndentForLine(i,_,n.getLanguageIdentifier().id,c+1,l);if(null!==y){var b=yX(y,o),w=yX(Dz.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=Dz.V8(S),L=bX(yX(x,o)+C,o,s);L!==x&&u.push({range:new YB.e(k,1,k,x.length+1),text:L})}}}if(u.length>0){this.editor.pushUndoStop();var E=new MX(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 IX(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 YB.e(s,1,s,l),d=e.getValueInRange(c),h=i?d.replace(/\t/gi,r):d.replace(a,"\t");t.addEditOperation(c,h)}}}}TX.ID="editor.contrib.autoIndentOnPaste";var OX=function(){function e(t,n){(0,X.Z)(this,e),this.selection=t,this.tabSize=n,this.selectionId=null}return(0,J.Z)(e,[{key:"getEditOperations",value:function(e,t){this.selectionId=t.trackSelection(this.selection),IX(e,t,this.tabSize,!0)}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this.selectionId)}}]),e}(),AX=function(){function e(t,n){(0,X.Z)(this,e),this.selection=t,this.tabSize=n,this.selectionId=null}return(0,J.Z)(e,[{key:"getEditOperations",value:function(e,t){this.selectionId=t.trackSelection(this.selection),IX(e,t,this.tabSize,!1)}},{key:"computeCursorState",value:function(e,t){return t.getTrackedSelection(this.selectionId)}}]),e}();(0,_B._K)(TX.ID,TX),(0,_B.Qr)(CX),(0,_B.Qr)(kX),(0,_B.Qr)(xX),(0,_B.Qr)(LX),(0,_B.Qr)(EX),(0,_B.Qr)(DX),(0,_B.Qr)(NX);var RX=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},PX=function(e,t){return function(n,i){t(n,i,e)}},ZX=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function FX(e,t,n){return ZX(this,void 0,void 0,fn().mark((function i(){var r,o,a;return fn().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return r=[],o=Iz.wo.ordered(e).reverse(),a=(0,SB.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,LB.Cp)(e)}))}))}))),i.next=5,Promise.all(a);case 5:return i.abrupt("return",r);case 6:case"end":return i.stop()}}),i)})))}var jX=function(){function e(t,n,i){var r=this;(0,X.Z)(this,e),this._editor=t,this._codeEditorService=n,this._themeService=i,this._disposables=new WB.SL,this._sessionDisposables=new WB.SL,this._getInlineHintsDelays=new xV.Y(Iz.wo,250,2500),this._decorationsTypeIds=[],this._decorationIds=[],this._disposables.add(Iz.wo.onDidChange((function(){return r._update()}))),this._disposables.add(i.onDidColorThemeChange((function(){return r._update()}))),this._disposables.add(t.onDidChangeModel((function(){return r._update()}))),this._disposables.add(t.onDidChangeModelLanguage((function(){return r._update()}))),this._disposables.add(t.onDidChangeConfiguration((function(e){e.hasChanged(123)&&r._update()}))),this._update()}return(0,J.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&&Iz.wo.has(t)){var n=new zB.pY((function(){return ZX(e,void 0,void 0,fn().mark((function e(){var i,r,o,a,s;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=Date.now(),r=new Lz.A,this._sessionDisposables.add((0,WB.OF)((function(){return r.dispose(!0)}))),o=this._editor.getVisibleRangesPlusViewportAboveBelow(),e.next=6,FX(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 WB.SL;this._sessionDisposables.add(i);var r,o=(0,Na.Z)(Iz.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(GB.IB),o=this._themeService.getColorTheme().getColor(GB.w),a=[],s=[],u="--inlineHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(u,i);var l,c=(0,Na.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,kV.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 EB).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}();jX.ID="editor.contrib.InlineHints",jX=RX([PX(1,fz.$),PX(2,$B.XE)],jX),(0,_B._K)(jX.ID,jX),jz.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 ZX(void 0,void 0,void 0,fn().mark((function t(){var i,r,o,a;return fn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=n[0],r=n[1],(0,oV.p_)(Mz.o.isUri(i)),(0,oV.p_)(YB.e.isIRange(r)),t.next=5,e.get(SK.S).createModelReference(i);case 5:return o=t.sent,t.prev=6,t.next=9,FX(o.object.textEditorModel,[YB.e.lift(r)],Lz.T.None);case 9:return a=t.sent,t.abrupt("return",(0,SB.xH)(a.map((function(e){return e.list}))).sort((function(e,t){return YB.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 HX=function(){function e(t,n,i){(0,X.Z)(this,e),this._editRange=t,this._originalSelection=n,this._text=i}return(0,J.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 wB.Y(n.endLineNumber,Math.min(this._originalSelection.positionColumn,n.endColumn),n.endLineNumber,Math.min(this._originalSelection.positionColumn,n.endColumn)):new wB.Y(n.endLineNumber,n.endColumn-this._text.length,n.endLineNumber,n.endColumn)}}]),e}(),BX=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)}},WX=function(){function e(t,n){(0,X.Z)(this,e),this.decorationIds=[],this.editor=t,this.editorWorkerService=n}return(0,J.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 Tz.yy(this.editor,5),u=o.uri;return this.editorWorkerService.canNavigateValueSet(u)?(this.currentRequest=(0,zB.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=YB.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 wB.Y(a.startLineNumber,a.startColumn,a.endLineNumber,a.endColumn+u-1));var l=new HX(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,zB.Vs)(350),i.decorationRemover.then((function(){return i.decorationIds=i.editor.deltaDecorations(i.decorationIds,[])})).catch(LB.dL)}})).catch(LB.dL)):Promise.resolve(void 0)}}}}],[{key:"get",value:function(t){return t.getContribution(e.ID)}}]),e}();WX.ID="editor.contrib.inPlaceReplaceController",WX.DECORATION=KB.qx.register({className:"valueSetReplacement"}),WX=BX([zX(1,tX.p)],WX);var VX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.inPlaceReplace.up",label:yB.N("InPlaceReplaceAction.previous.label","Replace with Previous Value"),alias:"Replace with Previous Value",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:3154,weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=WX.get(t);return n?n.run(this.id,!0):Promise.resolve(void 0)}}]),n}(_B.R6),YX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.inPlaceReplace.down",label:yB.N("InPlaceReplaceAction.next.label","Replace with Next Value"),alias:"Replace with Next Value",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:3156,weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=WX.get(t);return n?n.run(this.id,!1):Promise.resolve(void 0)}}]),n}(_B.R6);(0,_B._K)(WX.ID,WX),(0,_B.Qr)(VX),(0,_B.Qr)(YX),(0,$B.Ic)((function(e,t){var n=e.getColor(qB.Dl);n&&t.addRule(".monaco-editor.vs .valueSetReplacement { outline: solid 2px ".concat(n,"; }"))}));var UX=function(){function e(t,n){(0,X.Z)(this,e),this._selection=t,this._cursors=n,this._selectionId=null}return(0,J.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=Dz.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++]=Yq.h.delete(new YB.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 KX=n(22268),qX=function(){function e(t,n,i){(0,X.Z)(this,e),this._selection=t,this._isCopyingDown=n,this._noop=i||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}return(0,J.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 YB.e(n.endLineNumber,e.getLineMaxColumn(n.endLineNumber),n.endLineNumber+1,1),n.endLineNumber===e.getLineCount()?"":"\n"):this._isCopyingDown?t.addEditOperation(new YB.e(n.startLineNumber,1,n.startLineNumber,1),o+"\n"):t.addEditOperation(new YB.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=wB.Y.createWithDirection(i,r,o,a,this._selectionDirection)}return n}}]),e}(),GX=n(7273),$X=function(){function e(t,n,i){(0,X.Z)(this,e),this._selection=t,this._isMovingDown=n,this._autoIndent=i,this._selectionId=null,this._moveEndLineSelectionShrink=!1}return(0,J.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 YB.e(1,1,1,1),null):(t.addEditOperation(new YB.e(c,1,c,1),e.getLineContent(d)),t.addEditOperation(new YB.e(d,1,d,e.getLineMaxColumn(d)),null)),i=new wB.Y(d,1,d,1)}else{var h,f;if(this._isMovingDown){h=i.endLineNumber+1,f=e.getLineContent(h),t.addEditOperation(new YB.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=bX(g+yX(Dz.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=Uq.zu.getGoodIndentForLine(this._autoIndent,l,e.getLanguageIdAtPosition(h,1),i.startLineNumber,u);if(null!==m){var _=Dz.V8(e.getLineContent(h)),y=yX(m,o);if(y!==yX(_,o)){var b=bX(y,o,s);p=b+this.trimLeft(f)}}}t.addEditOperation(new YB.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=Uq.zu.getGoodIndentForLine(this._autoIndent,l,e.getLanguageIdAtPosition(h,1),i.startLineNumber+1,u);if(null!==C){var k=Dz.V8(e.getLineContent(i.startLineNumber)),S=yX(C,o),x=yX(k,o);if(S!==x){var L=S-x;this.getIndentEditsOfMovingBlock(e,t,i,o,s,L)}}}}else t.addEditOperation(new YB.e(i.startLineNumber,1,i.startLineNumber,1),p+"\n")}else if(h=i.startLineNumber-1,f=e.getLineContent(h),t.addEditOperation(new YB.e(h,1,h+1,1),null),t.addEditOperation(new YB.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 D=Uq.zu.getGoodIndentForLine(this._autoIndent,l,e.getLanguageIdAtPosition(i.startLineNumber,1),h,u);if(null!==D){var N=Dz.V8(e.getLineContent(i.startLineNumber)),M=yX(D,o),T=yX(N,o);if(M!==T){var I=M-T;this.getIndentEditsOfMovingBlock(e,t,i,o,s,I)}}}}}this._selectionId=t.trackSelection(i)}else this._selectionId=t.trackSelection(this._selection)}},{key:"buildIndentConverter",value:function(e,t,n){return{shiftIndent:function(i){return _X.U.shiftIndent(i,i.length+1,e,t,n)},unshiftIndent:function(i){return _X.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===GX.wU.None||r.indentAction===GX.wU.Indent?o=r.indentation+r.appendText:r.indentAction===GX.wU.IndentOutdent?o=r.indentation:r.indentAction===GX.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=Dz.V8(e.getLineContent(i)),u=Dz.V8(o),l=Uq.zu.getIndentMetadata(e,i);return null!==l&&2&l&&(u=t.unshiftIndent(u)),yX(u,n)-yX(s,n)}}return null}},{key:"matchEnterRuleMovingDown",value:function(e,t,n,i,r,o){if(Dz.ow(o)>=0){var a=e.getLineMaxColumn(r),s=Uq.zu.getEnterAction(this._autoIndent,e,new YB.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(Dz.ow(l)>=0)break;u--}if(u<1||i>e.getLineCount())return null;var c=e.getLineMaxColumn(u),d=Uq.zu.getEnterAction(this._autoIndent,e,new YB.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),Dz.ow(s)>=0)break;a--}if(a<1||i>e.getLineCount())return null;var u=e.getLineMaxColumn(a),l=Uq.zu.getEnterAction(this._autoIndent,e,new YB.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!==Uq.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=Dz.V8(s),l=bX(yX(u,i)+o,i,r);l!==u&&(t.addEditOperation(new YB.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}(),QX=function(){function e(t,n){(0,X.Z)(this,e),this.selection=t,this.descending=n,this.selectionId=null}return(0,J.Z)(e,[{key:"getEditOperations",value:function(e,t){var n=function(e,t,n){var i=XX(e,t,n);if(!i)return null;return Yq.h.replace(new YB.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=XX(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 XX(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(QX.getCollator().compare),!0===n&&(s=s.reverse()),{startLineNumber:i,endLineNumber:r,before:o,after:s}}QX._COLLATOR=null;var JX=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this,i)).down=e,r}return(0,J.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 YB.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,Na.Z)(n);try{for(u.s();!(a=u.n()).done;){var l=a.value;s.push(new qX(l.selection,this.down,l.ignore))}}catch(c){u.e(c)}finally{u.f()}t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}}]),n}(_B.R6),eJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!1,{id:"editor.action.copyLinesUpAction",label:yB.N("lines.copyUp","Copy Line Up"),alias:"Copy Line Up",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:QB.eH.MenubarSelectionMenu,group:"2_line",title:yB.N({key:"miCopyLinesUp",comment:["&& denotes a mnemonic"]},"&&Copy Line Up"),order:1}})}return(0,J.Z)(n)}(JX),tJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!0,{id:"editor.action.copyLinesDownAction",label:yB.N("lines.copyDown","Copy Line Down"),alias:"Copy Line Down",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:QB.eH.MenubarSelectionMenu,group:"2_line",title:yB.N({key:"miCopyLinesDown",comment:["&& denotes a mnemonic"]},"Co&&py Line Down"),order:2}})}return(0,J.Z)(n)}(JX),nJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.duplicateSelection",label:yB.N("duplicateSelection","Duplicate Selection"),alias:"Duplicate Selection",precondition:bB.u.writable,menuOpts:{menuId:QB.eH.MenubarSelectionMenu,group:"2_line",title:yB.N({key:"miDuplicateSelection",comment:["&& denotes a mnemonic"]},"&&Duplicate Selection"),order:5}})}return(0,J.Z)(n,[{key:"run",value:function(e,t,n){if(t.hasModel()){var i,r=[],o=t.getSelections(),a=t.getModel(),s=(0,Na.Z)(o);try{for(s.s();!(i=s.n()).done;){var u=i.value;if(u.isEmpty())r.push(new qX(u,!0));else{var l=new wB.Y(u.endLineNumber,u.endColumn,u.endLineNumber,u.endColumn);r.push(new sz.OY(l,a.getValueInRange(u)))}}}catch(c){s.e(c)}finally{s.f()}t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}}]),n}(_B.R6),iJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this,i)).down=e,r}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n,i=[],r=t.getSelections()||[],o=t.getOption(9),a=(0,Na.Z)(r);try{for(a.s();!(n=a.n()).done;){var s=n.value;i.push(new $X(s,this.down,o))}}catch(u){a.e(u)}finally{a.f()}t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}]),n}(_B.R6),rJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!1,{id:"editor.action.moveLinesUpAction",label:yB.N("lines.moveUp","Move Line Up"),alias:"Move Line Up",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:QB.eH.MenubarSelectionMenu,group:"2_line",title:yB.N({key:"miMoveLinesUp",comment:["&& denotes a mnemonic"]},"Mo&&ve Line Up"),order:3}})}return(0,J.Z)(n)}(iJ),oJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!0,{id:"editor.action.moveLinesDownAction",label:yB.N("lines.moveDown","Move Line Down"),alias:"Move Line Down",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:QB.eH.MenubarSelectionMenu,group:"2_line",title:yB.N({key:"miMoveLinesDown",comment:["&& denotes a mnemonic"]},"Move &&Line Down"),order:4}})}return(0,J.Z)(n)}(iJ),aJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this,i)).descending=e,r}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n,i=t.getSelections()||[],r=(0,Na.Z)(i);try{for(r.s();!(n=r.n()).done;){var o=n.value;if(!QX.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 QX(i[s],this.descending);t.pushUndoStop(),t.executeCommands(this.id,a),t.pushUndoStop()}}]),n}(_B.R6),sJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!1,{id:"editor.action.sortLinesAscending",label:yB.N("lines.sortAscending","Sort Lines Ascending"),alias:"Sort Lines Ascending",precondition:bB.u.writable})}return(0,J.Z)(n)}(aJ),uJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!0,{id:"editor.action.sortLinesDescending",label:yB.N("lines.sortDescending","Sort Lines Descending"),alias:"Sort Lines Descending",precondition:bB.u.writable})}return(0,J.Z)(n)}(aJ),lJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:n.ID,label:yB.N("lines.trimTrailingWhitespace","Trim Trailing Whitespace"),alias:"Trim Trailing Whitespace",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:(0,CB.gx)(2089,2102),weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t,n){var i=[];"auto-save"===n.reason&&(i=(t.getSelections()||[]).map((function(e){return new VB.L(e.positionLineNumber,e.positionColumn)})));var r=t.getSelection();if(null!==r){var o=new UX(r,i);t.pushUndoStop(),t.executeCommands(this.id,[o]),t.pushUndoStop()}}}]),n}(_B.R6);lJ.ID="editor.action.trimTrailingWhitespace";var cJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.deleteLines",label:yB.N("lines.delete","Delete Line"),alias:"Delete Line",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.textInputFocus,primary:3113,weight:100}})}return(0,J.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(Yq.h.replace(new wB.Y(c,h,d,f),"")),a.push(new wB.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}(_B.R6),dJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.indentLines",label:yB.N("lines.indent","Indent Line"),alias:"Indent Line",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:2137,weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=t._getViewModel();n&&(t.pushUndoStop(),t.executeCommands(this.id,KX.u.indent(n.cursorConfig,t.getModel(),t.getSelections())),t.pushUndoStop())}}]),n}(_B.R6),hJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.outdentLines",label:yB.N("lines.outdent","Outdent Line"),alias:"Outdent Line",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:2135,weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){vB.wk.Outdent.runEditorCommand(e,t,null)}}]),n}(_B.R6),fJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.insertLineBefore",label:yB.N("lines.insertBefore","Insert Line Above"),alias:"Insert Line Above",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:3075,weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=t._getViewModel();n&&(t.pushUndoStop(),t.executeCommands(this.id,KX.u.lineInsertBefore(n.cursorConfig,t.getModel(),t.getSelections())))}}]),n}(_B.R6),pJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.insertLineAfter",label:yB.N("lines.insertAfter","Insert Line Below"),alias:"Insert Line Below",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:2051,weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=t._getViewModel();n&&(t.pushUndoStop(),t.executeCommands(this.id,KX.u.lineInsertAfter(n.cursorConfig,t.getModel(),t.getSelections())))}}]),n}(_B.R6),gJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.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===YB.e.intersectRanges(s,u)?r.push(s):i[o+1]=YB.e.plusRange(s,u)}r.push(i[i.length-1]);var l=this._getEndCursorState(n,r),c=r.map((function(e){return Yq.h.replace(e,"")}));t.pushUndoStop(),t.executeEdits(this.id,c,l),t.pushUndoStop()}}}]),n}(_B.R6),vJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"deleteAllLeft",label:yB.N("lines.deleteAllLeft","Delete All Left"),alias:"Delete All Left",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}return(0,J.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 wB.Y(a,t.startColumn,a,t.startColumn)}else o=new wB.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(YB.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 YB.e(t,n,e.startLineNumber,1)}return new YB.e(e.startLineNumber,1,e.startLineNumber,e.startColumn)}return new YB.e(e.startLineNumber,1,e.endLineNumber,e.endColumn)})))}}]),n}(gJ),mJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"deleteAllRight",label:yB.N("lines.deleteAllRight","Delete All Right"),alias:"Delete All Right",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}return(0,J.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 wB.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 YB.e(e.startLineNumber,e.startColumn,e.startLineNumber+1,1):new YB.e(e.startLineNumber,e.startColumn,e.startLineNumber,n)}return e}));return i.sort(YB.e.compareRangesUsingStarts),i}}]),n}(gJ),_J=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.joinLines",label:yB.N("lines.joinLines","Join Lines"),alias:"Join Lines",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=t.getSelections();if(null!==n){var i=t.getSelection();if(null!==i){n.sort(YB.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 wB.Y(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn):t.startLineNumber>e.endLineNumber?(r.push(e),t):new wB.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 YB.e(p,1,v,m);if(!L.isEmpty()){var E=void 0;f.isEmpty()?(s.push(Yq.h.replace(L,b)),E=new wB.Y(L.startLineNumber-c,b.length-g+1,p-c,b.length-g+1)):f.startLineNumber===f.endLineNumber?(s.push(Yq.h.replace(L,b)),E=new wB.Y(f.startLineNumber-c,f.startColumn,f.endLineNumber-c,f.endColumn)):(s.push(Yq.h.replace(L,b)),E=new wB.Y(f.startLineNumber-c,f.startColumn,f.startLineNumber-c,b.length-_)),null!==YB.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}(_B.R6),yJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.transpose",label:yB.N("editor.transpose","Transpose characters around the cursor"),alias:"Transpose characters around the cursor",precondition:bB.u.writable})}return(0,J.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 YB.e(u.lineNumber,Math.max(1,u.column-1),u.lineNumber+1,1),d=i.getValueInRange(c).split("").reverse().join("");r.push(new sz.T4(new wB.Y(u.lineNumber,Math.max(1,u.column-1),u.lineNumber+1,1),d))}else{var h=new YB.e(u.lineNumber,Math.max(1,u.column-1),u.lineNumber,u.column+1),f=i.getValueInRange(h).split("").reverse().join("");r.push(new sz.hP(h,f,new wB.Y(u.lineNumber,u.column+1,u.lineNumber,u.column+1)))}}}t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}}}]),n}(_B.R6),bJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.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,Na.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 YB.e(l.lineNumber,c.startColumn,l.lineNumber,c.endColumn),h=i.getValueInRange(d);a.push(Yq.h.replace(d,this._modifyText(h,o)))}else{var f=i.getValueInRange(u);a.push(Yq.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}(_B.R6),wJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.transformToUppercase",label:yB.N("editor.transformToUppercase","Transform to Uppercase"),alias:"Transform to Uppercase",precondition:bB.u.writable})}return(0,J.Z)(n,[{key:"_modifyText",value:function(e,t){return e.toLocaleUpperCase()}}]),n}(bJ),CJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.transformToLowercase",label:yB.N("editor.transformToLowercase","Transform to Lowercase"),alias:"Transform to Lowercase",precondition:bB.u.writable})}return(0,J.Z)(n,[{key:"_modifyText",value:function(e,t){return e.toLocaleLowerCase()}}]),n}(bJ),kJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.transformToTitlecase",label:yB.N("editor.transformToTitlecase","Transform to Title Case"),alias:"Transform to Title Case",precondition:bB.u.writable})}return(0,J.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}(bJ),SJ=function(){function e(t,n){(0,X.Z)(this,e),this._pattern=t,this._flags=n,this._actual=null,this._evaluated=!1}return(0,J.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}(),xJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.transformToSnakecase",label:yB.N("editor.transformToSnakecase","Transform to Snake Case"),alias:"Transform to Snake Case",precondition:bB.u.writable})}return(0,J.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}(bJ);xJ.regExp1=new SJ("(\\p{Ll})(\\p{Lu})","gmu"),xJ.regExp2=new SJ("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu"),(0,_B.Qr)(eJ),(0,_B.Qr)(tJ),(0,_B.Qr)(nJ),(0,_B.Qr)(rJ),(0,_B.Qr)(oJ),(0,_B.Qr)(sJ),(0,_B.Qr)(uJ),(0,_B.Qr)(lJ),(0,_B.Qr)(cJ),(0,_B.Qr)(dJ),(0,_B.Qr)(hJ),(0,_B.Qr)(fJ),(0,_B.Qr)(pJ),(0,_B.Qr)(vJ),(0,_B.Qr)(mJ),(0,_B.Qr)(_J),(0,_B.Qr)(yJ),(0,_B.Qr)(wJ),(0,_B.Qr)(CJ),(0,_B.Qr)(kJ),xJ.regExp1.isSupported()&&xJ.regExp2.isSupported()&&(0,_B.Qr)(xJ);var LJ=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},EJ=function(e,t){return function(n,i){t(n,i,e)}},DJ=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},NJ=new kB.uy("LinkedEditingInputVisible",!1),MJ="linked-editing-decoration",TJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this))._debounceDuration=200,r._localToDispose=r._register(new WB.SL),r._editor=e,r._enabled=!1,r._visibleContextKey=NJ.bindTo(i),r._currentDecorations=[],r._languageWordPattern=null,r._currentWordPattern=null,r._ignoreChangeEvent=!1,r._localToDispose=r._register(new WB.SL),r._rangeUpdateTriggerPromise=null,r._rangeSyncTriggerPromise=null,r._currentRequest=null,r._currentRequestPosition=null,r._currentRequestModelVersion=null,r._register(r._editor.onDidChangeModel((function(){return r.reinitialize()}))),r._register(r._editor.onDidChangeConfiguration((function(e){(e.hasChanged(58)||e.hasChanged(78))&&r.reinitialize()}))),r._register(Iz.id.onDidChange((function(){return r.reinitialize()}))),r._register(r._editor.onDidChangeModelLanguage((function(){return r.reinitialize()}))),r.reinitialize(),r}return(0,J.Z)(n,[{key:"reinitialize",value:function(){var e=this,t=this._editor.getModel(),n=null!==t&&(this._editor.getOption(58)||this._editor.getOption(78))&&Iz.id.has(t);if(n!==this._enabled&&(this._enabled=n,this.clearRanges(),this._localToDispose.clear(),n&&null!==t)){this._languageWordPattern=Uq.zu.getWordDefinition(t.getLanguageIdentifier().id),this._localToDispose.add(t.onDidChangeLanguageConfiguration((function(){e._languageWordPattern=Uq.zu.getWordDefinition(t.getLanguageIdentifier().id)})));var i=new zB.vp(this._debounceDuration),r=function(){e._rangeUpdateTriggerPromise=i.trigger((function(){return e.updateRanges()}),e._debounceDuration)},o=new zB.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=Dz.Mh(l,c);d+=f,l=l.substr(f),c=c.substr(f);var p=Dz.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 YB.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,Qz.Z)((0,Xz.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 DJ(this,void 0,void 0,fn().mark((function t(){var i,r,o,a,s,u=this;return fn().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,zB.PG)((function(e){return DJ(u,void 0,void 0,fn().mark((function t(){var a,u,l,c,d,h,f;return fn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,AJ(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(!YB.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,LB.VV)(t.t0)||(0,LB.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}(WB.JT);TJ.ID="editor.contrib.linkedEditing",TJ.DECORATION=KB.qx.register({stickiness:0,className:MJ}),TJ=LJ([EJ(1,kB.i6)],TJ);var IJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.linkedEditing",label:yB.N("linkedEditing.label","Start Linked Editing"),alias:"Start Linked Editing",precondition:kB.Ao.and(bB.u.writable,bB.u.hasRenameProvider),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:3132,weight:100}})}return(0,J.Z)(n,[{key:"runCommand",value:function(e,t){var i=this,r=e.get(fz.$),o=Array.isArray(t)&&t||[void 0,void 0],a=(0,ne.Z)(o,2),s=a[0],u=a[1];return Mz.o.isUri(s)&&VB.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)})))}),LB.dL):(0,Qz.Z)((0,Xz.Z)(n.prototype),"runCommand",this).call(this,e,t)}},{key:"run",value:function(e,t){var n=TJ.get(t);return n?Promise.resolve(n.updateRanges(!0)):Promise.resolve()}}]),n}(_B.R6),OJ=_B._l.bindToContribution(TJ.get);function AJ(e,t,n){var i=this,r=Iz.id.ordered(e);return(0,zB.Ps)(r.map((function(r){return function(){return DJ(i,void 0,void 0,fn().mark((function i(){return fn().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,LB.Cp)(i.t0),i.abrupt("return",void 0);case 10:case"end":return i.stop()}}),i,null,[[0,6]])})))}})),(function(e){return!!e&&SB.Of(null===e||void 0===e?void 0:e.ranges)}))}(0,_B.fK)(new OJ({id:"cancelLinkedEditingInput",precondition:NJ,handler:function(e){return e.clearRanges()},kbOpts:{kbExpr:bB.u.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));var RJ=(0,GB.P6)("editor.linkedEditingBackground",{dark:MV.Il.fromHex("#f00").transparent(.3),light:MV.Il.fromHex("#f00").transparent(.3),hc:MV.Il.fromHex("#f00").transparent(.3)},yB.N("editorLinkedEditingBackground","Background color when the editor auto renames on type."));(0,$B.Ic)((function(e,t){var n=e.getColor(RJ);n&&t.addRule(".monaco-editor .".concat(MJ," { background: ").concat(n,"; border-left-color: ").concat(n,"; }"))})),(0,_B.sb)("_executeLinkedEditingProvider",(function(e,t){return AJ(e,t,Lz.T.None)})),(0,_B._K)(TJ.ID,TJ),(0,_B.Qr)(IJ);var PJ=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},ZJ=function(){function e(t,n){(0,X.Z)(this,e),this._link=t,this._provider=n}return(0,J.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 PJ(this,void 0,void 0,fn().mark((function t(){var n=this;return fn().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}(),FJ=function(){function e(t){var n=this;(0,X.Z)(this,e),this._disposables=new WB.SL;var i,r=[],o=(0,Na.Z)(t);try{var a=function(){var t=(0,ne.Z)(i.value,2),o=t[0],a=t[1],s=o.links.map((function(e){return new ZJ(e,a)}));r=e._union(r,s),(0,WB.Wf)(o)&&n._disposables.add(o)};for(o.s();!(i=o.n()).done;)a()}catch(s){o.e(s)}finally{o.f()}this.links=r}return(0,J.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(YB.e.areIntersectingOrTouching(s.range,u.range))n++;else YB.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 jJ(e,t){var n=[],i=Iz.pM.ordered(e).reverse().map((function(i,r){return Promise.resolve(i.provideLinks(e,t)).then((function(e){e&&(n[r]=[e,i])}),LB.Cp)}));return Promise.all(i).then((function(){var e=new FJ((0,SB.kX)(n));return t.isCancellationRequested?(e.dispose(),new FJ([])):e}))}jz.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 PJ(void 0,void 0,void 0,fn().mark((function t(){var i,r,o,a,s,u;return fn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=n[0],r=n[1],(0,oV.p_)(i instanceof Mz.o),"number"!==typeof r&&(r=0),o=e.get(Oz.q).getModel(i)){t.next=6;break}return t.abrupt("return",[]);case 6:return t.next=8,jJ(o,Lz.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(Lz.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 HJ=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},BJ=function(e,t){return function(n,i){t(n,i,e)}},zJ=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))};var WJ={general:KB.qx.register({stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:KB.qx.register({stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})},VJ=function(){function e(t,n){(0,X.Z)(this,e),this.link=t,this.decorationId=n}return(0,J.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?WJ.active:WJ.general);return i.hoverMessage=function(e,t){var n=e.url&&/^command:/i.test(e.url.toString()),i=e.tooltip?e.tooltip:n?yB.N("links.navigate.executeCmd","Execute command"):yB.N("links.navigate.follow","Follow link"),r=t?dz.dz?yB.N("links.navigate.kb.meta.mac","cmd + click"):yB.N("links.navigate.kb.meta","ctrl + click"):dz.dz?yB.N("links.navigate.kb.alt.mac","option + click"):yB.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=yB.N("tooltip.explanation","Execute command {0}",s);o=' "'.concat(u,'"')}}return new EB("",!0).appendMarkdown("[".concat(i,"](").concat(e.url.toString(!0)).concat(o,") (").concat(r,")"))}return(new EB).appendText("".concat(i," (").concat(r,")"))}(e,t),i}}]),e}(),YJ=function(){function e(t,n,i){var r=this;(0,X.Z)(this,e),this.listenersToRemove=new WB.SL,this.editor=t,this.openerService=n,this.notificationService=i;var o=new Rq(t);this.listenersToRemove.add(o),this.listenersToRemove.add(o.onMouseMoveOrRelevantKeyDown((function(e){var t=(0,ne.Z)(e,2),n=t[0],i=t[1];r._onEditorMouseMove(n,i)}))),this.listenersToRemove.add(o.onExecute((function(e){r.onEditorMouseUp(e)}))),this.listenersToRemove.add(o.onCancel((function(e){r.cleanUpActiveLinkDecoration()}))),this.enabled=t.getOption(59),this.listenersToRemove.add(t.onDidChangeConfiguration((function(e){var n=t.getOption(59);r.enabled!==n&&(r.enabled=n,r.updateDecorations([]),r.stop(),r.beginCompute())}))),this.listenersToRemove.add(t.onDidChangeModelContent((function(e){return r.onChange()}))),this.listenersToRemove.add(t.onDidChangeModel((function(e){return r.onModelChanged()}))),this.listenersToRemove.add(t.onDidChangeModelLanguage((function(e){return r.onModelModeChanged()}))),this.listenersToRemove.add(Iz.pM.onDidChange((function(e){return r.onModelModeChanged()}))),this.timeout=new zB._F,this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null,this.beginCompute()}return(0,J.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 zJ(this,void 0,void 0,fn().mark((function e(){var t;return fn().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(),Iz.pM.has(t)){e.next=5;break}return e.abrupt("return");case 5:return this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=zB.PG((function(e){return jJ(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,LB.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,Na.Z)(e);try{for(c.s();!(l=c.n()).done;){var d=l.value;u.push(VJ.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 VJ(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(Lz.T.None).then((function(e){if("string"===typeof e&&n.editor.hasModel()){var r=n.editor.getModel().uri;if(r.scheme===JV.lg.file&&e.startsWith("".concat(JV.lg.file,":"))){var o=Mz.o.parse(e);if(o.scheme===JV.lg.file){var a=PW.z_(o),s=null;a.startsWith("/./")?s=".".concat(a.substr(1)):a.startsWith("//./")&&(s=".".concat(a.substr(2))),s&&(e=PW.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(yB.N("invalid.url","Failed to open this link because it is not well-formed: {0}",r.url.toString())):"missing"===t?n.notificationService.warn(yB.N("missing.url","Failed to open this link because its target is missing.")):(0,LB.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,Na.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}();YJ.ID="editor.linkDetector",YJ.RECOMPUTE_TIME=1e3,YJ=HJ([BJ(1,XV.v4),BJ(2,AW.lT)],YJ);var UJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.openLink",label:yB.N("label","Open Link"),alias:"Open Link",precondition:void 0})}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=YJ.get(t);if(n&&t.hasModel()){var i,r=t.getSelections(),o=(0,Na.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}(_B.R6);(0,_B._K)(YJ.ID,YJ),(0,_B.Qr)(UJ),(0,$B.Ic)((function(e,t){var n=e.getColor(GB._Y);n&&t.addRule(".monaco-editor .detected-link-active { color: ".concat(n," !important; }"))}));var KJ=n(55561);function qJ(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?yB.N("cursorAdded","Cursor added: {0}",i):yB.N("cursorsAdded","Cursors added: {0}",i);(0,IB.i7)(r)}}var GJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.insertCursorAbove",label:yB.N("mutlicursor.insertAbove","Add Cursor Above"),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:QB.eH.MenubarSelectionMenu,group:"3_multi",title:yB.N({key:"miInsertCursorAbove",comment:["&& denotes a mnemonic"]},"&&Add Cursor Above"),order:2}})}return(0,J.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,KJ.P.addCursorUp(r,o,i)),r.revealTopMostCursor(n.source),qJ(o,r.getCursorStates())}}}}]),n}(_B.R6),$J=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.insertCursorBelow",label:yB.N("mutlicursor.insertBelow","Add Cursor Below"),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:QB.eH.MenubarSelectionMenu,group:"3_multi",title:yB.N({key:"miInsertCursorBelow",comment:["&& denotes a mnemonic"]},"A&&dd Cursor Below"),order:3}})}return(0,J.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,KJ.P.addCursorDown(r,o,i)),r.revealBottomMostCursor(n.source),qJ(o,r.getCursorStates())}}}}]),n}(_B.R6),QJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.insertCursorAtEndOfEachLineSelected",label:yB.N("mutlicursor.insertAtEndOfEachLineSelected","Add Cursors to Line Ends"),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:QB.eH.MenubarSelectionMenu,group:"3_multi",title:yB.N({key:"miInsertCursorAtEndOfEachLineSelected",comment:["&& denotes a mnemonic"]},"Add C&&ursors to Line Ends"),order:4}})}return(0,J.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 wB.Y(i,r,i,r))}e.endColumn>1&&n.push(new wB.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),qJ(a,o.getCursorStates())}}}]),n}(_B.R6),XJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.addCursorsToBottom",label:yB.N("mutlicursor.addCursorsToBottom","Add Cursors To Bottom"),alias:"Add Cursors To Bottom",precondition:void 0})}return(0,J.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 wB.Y(o,n[0].startColumn,o,n[0].endColumn));var a=t._getViewModel(),s=a.getCursorStates();r.length>0&&t.setSelections(r),qJ(s,a.getCursorStates())}}}]),n}(_B.R6),JJ=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.addCursorsToTop",label:yB.N("mutlicursor.addCursorsToTop","Add Cursors To Top"),alias:"Add Cursors To Top",precondition:void 0})}return(0,J.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 wB.Y(r,n[0].startColumn,r,n[0].endColumn));var o=t._getViewModel(),a=o.getCursorStates();i.length>0&&t.setSelections(i),qJ(a,o.getCursorStates())}}}]),n}(_B.R6),e0=(0,J.Z)((function e(t,n,i){(0,X.Z)(this,e),this.selections=t,this.revealRange=n,this.revealScrollType=i})),t0=function(){function e(t,n,i,r,o,a,s){(0,X.Z)(this,e),this._editor=t,this.findController=n,this.isDisconnectedFromFindController=i,this.searchText=r,this.wholeWord=o,this.matchCase=a,this.currentMatch=s}return(0,J.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 e0(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 e0(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 wB.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 e0(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 e0(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 wB.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 wB.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}(),n0=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this))._sessionDispose=i._register(new WB.SL),i._editor=e,i._ignoreSelectionChange=!1,i._session=null,i}return(0,J.Z)(n,[{key:"dispose",value:function(){this._endSession(),(0,Qz.Z)((0,Xz.Z)(n.prototype),"dispose",this).call(this)}},{key:"_beginSessionIfNeeded",value:function(e){var t=this;if(!this._session){var n=t0.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 wB.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(!h0(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 wB.Y(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)})))}}}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(WB.JT);n0.ID="editor.contrib.multiCursorController";var i0=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=n0.get(t);if(n){var i=z$.get(t);if(i){var r=t._getViewModel();if(r){var o=r.getCursorStates();this._run(n,i),qJ(o,r.getCursorStates())}}}}}]),n}(_B.R6),r0=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.addSelectionToNextFindMatch",label:yB.N("addSelectionToNextFindMatch","Add Selection To Next Find Match"),alias:"Add Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:bB.u.focus,primary:2082,weight:100},menuOpts:{menuId:QB.eH.MenubarSelectionMenu,group:"3_multi",title:yB.N({key:"miAddSelectionToNextFindMatch",comment:["&& denotes a mnemonic"]},"Add &&Next Occurrence"),order:5}})}return(0,J.Z)(n,[{key:"_run",value:function(e,t){e.addSelectionToNextFindMatch(t)}}]),n}(i0),o0=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.addSelectionToPreviousFindMatch",label:yB.N("addSelectionToPreviousFindMatch","Add Selection To Previous Find Match"),alias:"Add Selection To Previous Find Match",precondition:void 0,menuOpts:{menuId:QB.eH.MenubarSelectionMenu,group:"3_multi",title:yB.N({key:"miAddSelectionToPreviousFindMatch",comment:["&& denotes a mnemonic"]},"Add P&&revious Occurrence"),order:6}})}return(0,J.Z)(n,[{key:"_run",value:function(e,t){e.addSelectionToPreviousFindMatch(t)}}]),n}(i0),a0=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.moveSelectionToNextFindMatch",label:yB.N("moveSelectionToNextFindMatch","Move Last Selection To Next Find Match"),alias:"Move Last Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:bB.u.focus,primary:(0,CB.gx)(2089,2082),weight:100}})}return(0,J.Z)(n,[{key:"_run",value:function(e,t){e.moveSelectionToNextFindMatch(t)}}]),n}(i0),s0=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.moveSelectionToPreviousFindMatch",label:yB.N("moveSelectionToPreviousFindMatch","Move Last Selection To Previous Find Match"),alias:"Move Last Selection To Previous Find Match",precondition:void 0})}return(0,J.Z)(n,[{key:"_run",value:function(e,t){e.moveSelectionToPreviousFindMatch(t)}}]),n}(i0),u0=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.selectHighlights",label:yB.N("selectAllOccurrencesOfFindMatch","Select All Occurrences of Find Match"),alias:"Select All Occurrences of Find Match",precondition:void 0,kbOpts:{kbExpr:bB.u.focus,primary:3114,weight:100},menuOpts:{menuId:QB.eH.MenubarSelectionMenu,group:"3_multi",title:yB.N({key:"miSelectHighlights",comment:["&& denotes a mnemonic"]},"Select All &&Occurrences"),order:7}})}return(0,J.Z)(n,[{key:"_run",value:function(e,t){e.selectAll(t)}}]),n}(i0),l0=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.changeAll",label:yB.N("changeAll.label","Change All Occurrences"),alias:"Change All Occurrences",precondition:kB.Ao.and(bB.u.writable,bB.u.editorTextFocus),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}return(0,J.Z)(n,[{key:"_run",value:function(e,t){e.selectAll(t)}}]),n}(i0),c0=function(){function e(t,n,i,r){(0,X.Z)(this,e),this.searchText=t,this.matchCase=n,this.wordSeparators=i,this.modelVersionId=r}return(0,J.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}(),d0=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this)).editor=e,i._isEnabled=e.getOption(94),i.decorations=[],i.updateSoon=i._register(new zB.pY((function(){return i._update()}),300)),i.state=null,i._register(e.onDidChangeConfiguration((function(t){i._isEnabled=e.getOption(94)}))),i._register(e.onDidChangeCursorSelection((function(e){i._isEnabled&&(e.selection.isEmpty()?3===e.reason?(i.state&&i._setState(null),i.updateSoon.schedule()):i._setState(null):i._update())}))),i._register(e.onDidChangeModel((function(e){i._setState(null)}))),i._register(e.onDidChangeModelContent((function(e){i._isEnabled&&i.updateSoon.schedule()}))),i._register(z$.get(e).getState().onFindReplaceStateChange((function(e){i._update()}))),i}return(0,J.Z)(n,[{key:"_update",value:function(){this._setState(n._createState(this._isEnabled,this.editor))}},{key:"_setState",value:function(e){if(c0.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=Iz.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(YB.e.compareRangesUsingStarts);var o=this.editor.getSelections();o.sort(YB.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=YB.e.compareRangesUsingStarts(d,o[u]);h<0?(!o[u].isEmpty()&&YB.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,Qz.Z)((0,Xz.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=n0.get(t);if(!i)return null;var r=z$.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(!h0(t.getModel(),a,s))return null}o=t0.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 c0(o.searchText,o.matchCase,o.wholeWord?t.getOption(113):null,t.getModel().getVersionId())}}]),n}(WB.JT);function h0(e,t,n){for(var i=f0(e,t[0],!n),r=1,o=t.length;r<o;r++){var a=t[r];if(a.isEmpty())return!1;if(i!==f0(e,a,!n))return!1}return!0}function f0(e,t,n){var i=e.getValueInRange(t);return n?i.toLowerCase():i}d0.ID="editor.contrib.selectionHighlighter",d0._SELECTION_HIGHLIGHT_OVERVIEW=KB.qx.register({stickiness:1,className:"selectionHighlight",overviewRuler:{color:(0,$B.EN)(GB.SP),position:UB.sh.Center}}),d0._SELECTION_HIGHLIGHT=KB.qx.register({stickiness:1,className:"selectionHighlight"}),(0,_B._K)(n0.ID,n0),(0,_B._K)(d0.ID,d0),(0,_B.Qr)(GJ),(0,_B.Qr)($J),(0,_B.Qr)(QJ),(0,_B.Qr)(r0),(0,_B.Qr)(o0),(0,_B.Qr)(a0),(0,_B.Qr)(s0),(0,_B.Qr)(u0),(0,_B.Qr)(l0),(0,_B.Qr)(XJ),(0,_B.Qr)(JJ);var p0=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},g0={Visible:new kB.uy("parameterHintsVisible",!1),MultipleSignatures:new kB.uy("parameterHintsMultipleSignatures",!1)};function v0(e,t,n,i){return p0(this,void 0,void 0,fn().mark((function r(){var o,a,s,u,l;return fn().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:o=Iz.nD.ordered(e),a=(0,Na.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,LB.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]])})))}jz.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 p0(void 0,void 0,void 0,fn().mark((function t(){var i,r,o,a,s;return fn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=n[0],r=n[1],o=n[2],(0,oV.p_)(Mz.o.isUri(i)),(0,oV.p_)(VB.L.isIPosition(r)),(0,oV.p_)("string"===typeof o||!o),t.next=6,e.get(SK.S).createModelReference(i);case 6:return a=t.sent,t.prev=7,t.next=10,v0(a.object.textEditorModel,VB.L.lift(r),{triggerKind:Iz.WW.Invoke,isRetrigger:!1,triggerCharacter:o},Lz.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 m0,_0=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))};!function(e){e.Default={type:0};var t=(0,J.Z)((function e(t,n){(0,X.Z)(this,e),this.request=t,this.previouslyActiveHints=n,this.type=2}));e.Pending=t;var n=(0,J.Z)((function e(t){(0,X.Z)(this,e),this.hints=t,this.type=1}));e.Active=n}(m0||(m0={}));var y0=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.DEFAULT_DELAY;return(0,X.Z)(this,n),(i=t.call(this))._onChangedHints=i._register(new _W.Q5),i.onChangedHints=i._onChangedHints.event,i.triggerOnType=!1,i._state=m0.Default,i._pendingTriggers=[],i._lastSignatureHelpResult=i._register(new WB.XK),i.triggerChars=new eX.q,i.retriggerChars=new eX.q,i.triggerId=0,i.editor=e,i.throttledDelayer=new zB.vp(r),i._register(i.editor.onDidBlurEditorWidget((function(){return i.cancel()}))),i._register(i.editor.onDidChangeConfiguration((function(){return i.onEditorConfigurationChange()}))),i._register(i.editor.onDidChangeModel((function(e){return i.onModelChanged()}))),i._register(i.editor.onDidChangeModelLanguage((function(e){return i.onModelChanged()}))),i._register(i.editor.onDidChangeCursorSelection((function(e){return i.onCursorChange(e)}))),i._register(i.editor.onDidChangeModelContent((function(e){return i.onModelContentChange()}))),i._register(Iz.nD.onDidChange(i.onModelChanged,(0,Br.Z)(i))),i._register(i.editor.onDidType((function(e){return i.onDidType(e)}))),i.onEditorConfigurationChange(),i.onModelChanged(),i}return(0,J.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=m0.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&&Iz.nD.has(i)){var r=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger((function(){return n.doTrigger(r)}),t).catch(LB.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 m0.Active(Object.assign(Object.assign({},this.state.hints),{activeSignature:e})),this._onChangedHints.fire(this.state.hints))}},{key:"doTrigger",value:function(e){return _0(this,void 0,void 0,fn().mark((function t(){var n,i,r,o,a,s,u;return fn().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(b0),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 m0.Pending((0,zB.PG)((function(e){return v0(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 m0.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=m0.Default),(0,LB.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 eX.q,this.retriggerChars=new eX.q;var e=this.editor.getModel();if(e){var t,n=(0,Na.Z)(Iz.nD.ordered(e));try{for(n.s();!(t=n.n()).done;){var i,r=t.value,o=(0,Na.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,Na.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:Iz.WW.TriggerCharacter,triggerCharacter:e.charAt(t)})}}},{key:"onCursorChange",value:function(e){"mouse"===e.source?this.cancel():this.isTriggered&&this.trigger({triggerKind:Iz.WW.ContentChange})}},{key:"onModelContentChange",value:function(){this.isTriggered&&this.trigger({triggerKind:Iz.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,Qz.Z)((0,Xz.Z)(n.prototype),"dispose",this).call(this)}}]),n}(WB.JT);function b0(e,t){switch(t.triggerKind){case Iz.WW.Invoke:return t;case Iz.WW.ContentChange:return e;case Iz.WW.TriggerCharacter:default:return t}}y0.DEFAULT_DELAY=120;var w0=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},C0=function(e,t){return function(n,i){t(n,i,e)}},k0=aW.$,S0=(0,mU.q5)("parameter-hints-next",bW.lA.chevronDown,yB.N("parameterHintsNextIcon","Icon for show next parameter hint.")),x0=(0,mU.q5)("parameter-hints-previous",bW.lA.chevronUp,yB.N("parameterHintsPreviousIcon","Icon for show previous parameter hint.")),L0=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a;return(0,X.Z)(this,n),(a=t.call(this)).editor=e,a.renderDisposeables=a._register(new WB.SL),a.visible=!1,a.announcedLabel=null,a.allowEditorOverflow=!0,a.markdownRenderer=a._register(new GU({editor:e},o,r)),a.model=a._register(new y0(e)),a.keyVisible=g0.Visible.bindTo(i),a.keyMultipleSignatures=g0.MultipleSignatures.bindTo(i),a._register(a.model.onChangedHints((function(e){e?(a.show(),a.render(e)):a.hide()}))),a}return(0,J.Z)(n,[{key:"createParamaterHintDOMNodes",value:function(){var e=this,t=k0(".editor-widget.parameter-hints-widget"),n=aW.append(t,k0(".phwrapper"));n.tabIndex=-1;var i=aW.append(n,k0(".controls")),r=aW.append(i,k0(".button"+$B.kS.asCSSSelector(x0))),o=aW.append(i,k0(".overloads")),a=aW.append(i,k0(".button"+$B.kS.asCSSSelector(S0))),s=(0,mY.sT)((0,mY.jt)(r,"click"));this._register(s(this.previous,this));var u=(0,mY.sT)((0,mY.jt)(a,"click"));this._register(u(this.next,this));var l=k0(".body"),c=new qV.s$(l,{});this._register(c),n.appendChild(c.getDomNode());var d=aW.append(l,k0(".signature")),h=aW.append(l,k0(".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(_W.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=aW.append(this.domNodes.signature,k0(".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 aW.append(r,k0("span")).textContent=i.label;var u=i.parameters[s];if(null===u||void 0===u?void 0:u.documentation){var l=k0("span.documentation");if("string"===typeof u.documentation)l.textContent=u.documentation;else{var c=this.renderMarkdownDocs(u.documentation);l.appendChild(c.element)}aW.append(this.domNodes.docs,k0("p",{},l))}if(void 0===i.documentation);else if("string"===typeof i.documentation)aW.append(this.domNodes.docs,k0("p",{},i.documentation));else{var d=this.renderMarkdownDocs(i.documentation);aW.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&&(IB.Z9(yB.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,oV.cW)(t.documentation).length>0)||(!!(t&&"object"===typeof t.documentation&&(0,oV.cW)(t.documentation).value.length>0)||(!!(e.documentation&&"string"===typeof e.documentation&&(0,oV.cW)(e.documentation).length>0)||!!(e.documentation&&"object"===typeof e.documentation&&(0,oV.cW)(e.documentation.value).length>0)))}},{key:"renderParameters",value:function(e,t,n){var i=this.getParameterLabelOffsets(t,n),r=(0,ne.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),aW.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,Dz.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}(WB.JT);L0.ID="editor.widget.parameterHintsWidget",L0=w0([C0(1,kB.i6),C0(2,XV.v4),C0(3,PV.h)],L0),(0,$B.Ic)((function(e,t){var n=e.getColor(GB.CN);if(n){var i=e.type===Jz.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(GB.yJ);r&&t.addRule(".monaco-editor .parameter-hints-widget { background-color: ".concat(r,"; }"));var o=e.getColor(GB.ur);o&&t.addRule(".monaco-editor .parameter-hints-widget a { color: ".concat(o,"; }"));var a=e.getColor(GB.Sb);a&&t.addRule(".monaco-editor .parameter-hints-widget { color: ".concat(a,"; }"));var s=e.getColor(GB.Sw);s&&t.addRule(".monaco-editor .parameter-hints-widget code { background-color: ".concat(s,"; }"))}));var E0=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},D0=function(e,t){return function(n,i){t(n,i,e)}},N0=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this)).editor=e,r.widget=r._register(i.createInstance(L0,r.editor)),r}return(0,J.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}(WB.JT);N0.ID="editor.controller.parameterHints",N0=E0([D0(1,oW.TG)],N0);var M0=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.triggerParameterHints",label:yB.N("parameterHints.trigger.label","Trigger Parameter Hints"),alias:"Trigger Parameter Hints",precondition:bB.u.hasSignatureHelpProvider,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:3082,weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=N0.get(t);n&&n.trigger({triggerKind:Iz.WW.Invoke})}}]),n}(_B.R6);(0,_B._K)(N0.ID,N0),(0,_B.Qr)(M0);var T0=_B._l.bindToContribution(N0.get);(0,_B.fK)(new T0({id:"closeParameterHints",precondition:g0.Visible,handler:function(e){return e.cancel()},kbOpts:{weight:175,kbExpr:bB.u.focus,primary:9,secondary:[1033]}})),(0,_B.fK)(new T0({id:"showPrevParameterHint",precondition:kB.Ao.and(g0.Visible,g0.MultipleSignatures),handler:function(e){return e.previous()},kbOpts:{weight:175,kbExpr:bB.u.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),(0,_B.fK)(new T0({id:"showNextParameterHint",precondition:kB.Ao.and(g0.Visible,g0.MultipleSignatures),handler:function(e){return e.next()},kbOpts:{weight:175,kbExpr:bB.u.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var I0=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},O0=function(e,t){return function(n,i){t(n,i,e)}},A0=new kB.uy("renameInputVisible",!1,(0,yB.N)("renameInputVisible","Whether the rename input widget is visible")),R0=function(){function e(t,n,i,r,o){var a=this;(0,X.Z)(this,e),this._editor=t,this._acceptKeybindings=n,this._themeService=i,this._keybindingService=r,this._disposables=new WB.SL,this.allowEditorOverflow=!0,this._visibleContextKey=A0.bindTo(o),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration((function(e){e.hasChanged(40)&&a._updateFont()}))),this._disposables.add(i.onDidColorThemeChange(this._updateStyles,this))}return(0,J.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,yB.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,ne.Z)(e._acceptKeybindings,2),r=i[0],o=i[1];e._keybindingService.lookupKeybinding(r),e._label.innerText=(0,yB.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(GB.rh);this._domNode.style.backgroundColor=String(null!==(t=e.getColor(GB.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(GB.zJ))&&void 0!==n?n:""),this._input.style.backgroundColor=String(null!==(i=e.getColor(GB.sE))&&void 0!==i?i:"");var a=e.getColor(GB.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 VB.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 WB.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}();R0=I0([O0(2,$B.XE),O0(3,lW.d),O0(4,kB.i6)],R0);var P0=n(19974),Z0=n(38774),F0=n(72885),j0=n(45862),H0=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},B0=function(e,t){return function(n,i){t(n,i,e)}},z0=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},W0=function(){function e(t,n){(0,X.Z)(this,e),this.model=t,this.position=n,this._providerRenameIdx=0,this._providers=Iz.G0.ordered(t)}return(0,J.Z)(e,[{key:"hasProvider",value:function(){return this._providers.length>0}},{key:"resolveRenameLocation",value:function(e){return z0(this,void 0,void 0,fn().mark((function t(){var n,i,r,o;return fn().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:YB.e.fromPositions(this.position),text:"",rejectReason:n.length>0?n.join("\n"):void 0});case 21:return t.abrupt("return",{range:new YB.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 z0(this,void 0,void 0,fn().mark((function n(){return fn().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 z0(this,void 0,void 0,fn().mark((function r(){var o,a;return fn().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(yB.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 V0=function(){function e(t,n,i,r,o,a,s){var u=this;(0,X.Z)(this,e),this.editor=t,this._instaService=n,this._notificationService=i,this._bulkEditService=r,this._progressService=o,this._logService=a,this._configService=s,this._dispoableStore=new WB.SL,this._cts=new Lz.A,this._renameInputField=this._dispoableStore.add(new zB.Ue((function(){return u._dispoableStore.add(u._instaService.createInstance(R0,u.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))})))}return(0,J.Z)(e,[{key:"dispose",value:function(){this._dispoableStore.dispose(),this._cts.dispose(!0)}},{key:"run",value:function(){return z0(this,void 0,void 0,fn().mark((function e(){var t,n,i,r,o,a,s,u,l,c,d=this;return fn().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 W0(this.editor.getModel(),t)).hasProvider()){e.next=7;break}return e.abrupt("return",void 0);case 7:return this._cts=new Tz.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),nW.get(this.editor).showMessage(e.t0||yB.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 nW.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 Tz.Dl(this.editor,5,i.range),o=this.editor.getSelection(),a=0,s=i.text.length,YB.e.isEmpty(o)||YB.e.spansMultipleLines(o)||!YB.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,zB.eP)(n.provideRenameEdits(l.newName,this._cts.token),this._cts.token).then((function(e){return z0(d,void 0,void 0,fn().mark((function t(){var n=this;return fn().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(Nz.fo.convert(e),{editor:this.editor,showPreview:l.wantsPreview,label:yB.N("label","Renaming '{0}'",null===i||void 0===i?void 0:i.text),quotableLabel:yB.N("quotableLabel","Renaming {0}",null===i||void 0===i?void 0:i.text)}).then((function(e){e.ariaSummary&&(0,IB.Z9)(yB.N("aria","Successfully renamed '{0}' to '{1}'. Summary: {2}",i.text,l.newName,e.ariaSummary))})).catch((function(e){n._notificationService.error(yB.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(yB.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}();V0.ID="editor.contrib.renameController",V0=H0([B0(1,oW.TG),B0(2,AW.lT),B0(3,Nz.vu),B0(4,Fz.e),B0(5,P0.VZ),B0(6,j0.V)],V0);var Y0=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.rename",label:yB.N("rename.label","Rename Symbol"),alias:"Rename Symbol",precondition:kB.Ao.and(bB.u.writable,bB.u.hasRenameProvider),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}return(0,J.Z)(n,[{key:"runCommand",value:function(e,t){var i=this,r=e.get(fz.$),o=Array.isArray(t)&&t||[void 0,void 0],a=(0,ne.Z)(o,2),s=a[0],u=a[1];return Mz.o.isUri(s)&&VB.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)})))}),LB.dL):(0,Qz.Z)((0,Xz.Z)(n.prototype),"runCommand",this).call(this,e,t)}},{key:"run",value:function(e,t){var n=V0.get(t);return n?n.run():Promise.resolve()}}]),n}(_B.R6);(0,_B._K)(V0.ID,V0),(0,_B.Qr)(Y0);var U0=_B._l.bindToContribution(V0.get);(0,_B.fK)(new U0({id:"acceptRenameInput",precondition:A0,handler:function(e){return e.acceptRenameInput(!1)},kbOpts:{weight:199,kbExpr:bB.u.focus,primary:3}})),(0,_B.fK)(new U0({id:"acceptRenameInputWithPreview",precondition:kB.Ao.and(A0,kB.Ao.has("config.editor.rename.enablePreview")),handler:function(e){return e.acceptRenameInput(!0)},kbOpts:{weight:199,kbExpr:bB.u.focus,primary:1027}})),(0,_B.fK)(new U0({id:"cancelRenameInput",precondition:A0,handler:function(e){return e.cancelRenameInput()},kbOpts:{weight:199,kbExpr:bB.u.focus,primary:9,secondary:[1033]}})),(0,_B.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,oV.p_)("string"===typeof o),function(e,t,n){return z0(this,void 0,void 0,fn().mark((function i(){var r,o;return fn().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return r=new W0(e,t),i.next=3,r.resolveRenameLocation(Lz.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,Lz.T.None));case 7:case"end":return i.stop()}}),i)})))}(e,t,o)})),Z0.B.as(F0.IP.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:yB.N("enablePreview","Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var K0=function(){function e(){(0,X.Z)(this,e)}return(0,J.Z)(e,[{key:"provideSelectionRanges",value:function(e,t){var n,i=[],r=(0,Na.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,Dz.mK)(c)&&(0,Dz.df)(l))break;l=c}for(s+=1;u<r.length;u++){var d=r.charCodeAt(u);if((0,Dz.df)(d)&&(0,Dz.mK)(l))break;if(95===d||45===d)break;l=d}s<u&&e.push({range:new YB.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 YB.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 YB.e(n.lineNumber,1,n.lineNumber,t.getLineMaxColumn(n.lineNumber))})}}]),e}(),q0=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},G0=function(){function e(){(0,X.Z)(this,e)}return(0,J.Z)(e,[{key:"provideSelectionRanges",value:function(t,n){return q0(this,void 0,void 0,fn().mark((function i(){var r,o,a,s;return fn().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:r=[],o=(0,Na.Z)(n),i.prev=2,s=fn().mark((function n(){var i,o,s;return fn().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 cU.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=YB.e.fromPositions(l.range.getEndPosition(),f.getStartPosition()),g=YB.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:YB.e.fromPositions(new VB.L(i,r),t.getEndPosition())}),n.push({range:YB.e.fromPositions(new VB.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:YB.e.fromPositions(new VB.L(o,a),t.getEndPosition())}),n.push({range:YB.e.fromPositions(new VB.L(o,1),t.getEndPosition())}))}}}}]),e}();G0._maxDuration=30,G0._maxRounds=2;var $0=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},Q0=function(){function e(t,n){(0,X.Z)(this,e),this.index=t,this.ranges=n}return(0,J.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}(),X0=function(){function e(t){(0,X.Z)(this,e),this._editor=t,this._ignoreSelection=!1}return(0,J.Z)(e,[{key:"dispose",value:function(){var e;null===(e=this._selectionListener)||void 0===e||e.dispose()}},{key:"run",value:function(e){return $0(this,void 0,void 0,fn().mark((function t(){var n,i,r,o=this;return fn().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(),Iz.AC.has(i)){t.next=6;break}return t.abrupt("return");case 6:if(this._state){t.next=9;break}return t.next=9,i1(i,n.map((function(e){return e.getPosition()})),this._editor.getOption(99),Lz.T.None).then((function(e){var t;if(SB.Of(e)&&e.length===n.length&&o._editor.hasModel()&&SB.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 Q0(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 wB.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}();X0.ID="editor.contrib.smartSelectController";var J0=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this,i))._forward=e,r}return(0,J.Z)(n,[{key:"run",value:function(e,t){return $0(this,void 0,void 0,fn().mark((function e(){var n;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(n=X0.get(t))){e.next=4;break}return e.next=4,n.run(this._forward);case 4:case"end":return e.stop()}}),e,this)})))}}]),n}(_B.R6),e1=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!0,{id:"editor.action.smartSelect.expand",label:yB.N("smartSelect.expand","Expand Selection"),alias:"Expand Selection",precondition:void 0,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:QB.eH.MenubarSelectionMenu,group:"1_basic",title:yB.N({key:"miSmartSelectGrow",comment:["&& denotes a mnemonic"]},"&&Expand Selection"),order:2}})}return(0,J.Z)(n)}(J0);jz.P.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");var t1,n1=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!1,{id:"editor.action.smartSelect.shrink",label:yB.N("smartSelect.shrink","Shrink Selection"),alias:"Shrink Selection",precondition:void 0,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:QB.eH.MenubarSelectionMenu,group:"1_basic",title:yB.N({key:"miSmartSelectShrink",comment:["&& denotes a mnemonic"]},"&&Shrink Selection"),order:3}})}return(0,J.Z)(n)}(J0);function i1(e,t,n,i){return $0(this,void 0,void 0,fn().mark((function r(){var o,a,s,u,l,c;return fn().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:1===(o=Iz.AC.all(e)).length&&o.unshift(new G0),a=[],s=[],u=(0,Na.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(SB.Of(e)&&e.length===t.length)for(var n=0;n<t.length;n++){s[n]||(s[n]=[]);var i,r=(0,Na.Z)(e[n]);try{for(r.s();!(i=r.n()).done;){var o=i.value;YB.e.isIRange(o.range)&&YB.e.containsPosition(o.range,t[n])&&s[n].push(YB.e.lift(o.range))}}catch(a){r.e(a)}finally{r.f()}}}),LB.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 VB.L.isBefore(e.getStartPosition(),t.getStartPosition())?1:VB.L.isBefore(t.getStartPosition(),e.getStartPosition())||VB.L.isBefore(e.getEndPosition(),t.getEndPosition())?-1:VB.L.isBefore(t.getEndPosition(),e.getEndPosition())?1:0}));var i,r,o=[],a=(0,Na.Z)(t);try{for(a.s();!(r=a.n()).done;){var s=r.value;(!i||YB.e.containsRange(s,i)&&!YB.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 YB.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 YB.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,_B._K)(X0.ID,X0),(0,_B.Qr)(e1),(0,_B.Qr)(n1),Iz.AC.register("*",new K0),(0,_B.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 i1(e,n[0],{selectLeadingAndTrailingWhitespace:!0},Lz.T.None)}));var r1=function(){function e(){(0,X.Z)(this,e),this.value="",this.pos=0}return(0,J.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}();r1._table=(t1={},(0,wt.Z)(t1,36,0),(0,wt.Z)(t1,58,1),(0,wt.Z)(t1,44,2),(0,wt.Z)(t1,123,3),(0,wt.Z)(t1,125,4),(0,wt.Z)(t1,92,5),(0,wt.Z)(t1,47,6),(0,wt.Z)(t1,124,7),(0,wt.Z)(t1,43,11),(0,wt.Z)(t1,45,12),(0,wt.Z)(t1,63,13),t1);var o1=function(){function e(){(0,X.Z)(this,e),this._children=[]}return(0,J.Z)(e,[{key:"appendChild",value:function(e){return e instanceof a1&&this._children[this._children.length-1]instanceof a1?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,Ct.Z)(t))),n._children=r,function e(t,n){var i,r=(0,Na.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 g1)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}(),a1=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this)).value=e,i}return(0,J.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}(o1),s1=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n)}(o1),u1=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this)).index=e,i}return(0,J.Z)(n,[{key:"isFinalTabstop",get:function(){return 0===this.index}},{key:"choice",get:function(){return 1===this._children.length&&this._children[0]instanceof l1?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}(s1),l1=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;return(0,X.Z)(this,n),(e=t.apply(this,arguments)).options=[],e}return(0,J.Z)(n,[{key:"appendChild",value:function(e){return e instanceof a1&&(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}(o1),c1=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;return(0,X.Z)(this,n),(e=t.apply(this,arguments)).regexp=new RegExp(""),e}return(0,J.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 d1&&Boolean(e.elseValue)}))&&(i=this._replace([])),i}},{key:"_replace",value:function(e){var t,n="",i=(0,Na.Z)(this._children);try{for(i.s();!(t=i.n()).done;){var r=t.value;if(r instanceof d1){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}(o1),d1=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a;return(0,X.Z)(this,n),(a=t.call(this)).index=e,a.shorthandName=i,a.ifValue=r,a.elseValue=o,a}return(0,J.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}(o1),h1=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this)).name=e,i}return(0,J.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 a1(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}(s1);function f1(e,t){for(var n=(0,Ct.Z)(e);n.length>0;){var i=n.shift();if(!t(i))break;n.unshift.apply(n,(0,Ct.Z)(i.children))}}var p1,g1=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"placeholderInfo",get:function(){if(!this._placeholders){var e,t=[];this.walk((function(n){return n instanceof u1&&(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 f1([e],(function(e){return t+=e.len(),!0})),t}},{key:"enclosingPlaceholders",value:function(e){for(var t=[],n=e.parent;n;)n instanceof u1&&t.push(n),n=n.parent;return t}},{key:"resolveVariables",value:function(e){var t=this;return this.walk((function(n){return n instanceof h1&&n.resolve(e)&&(t._placeholders=void 0),!0})),this}},{key:"appendChild",value:function(e){return this._placeholders=void 0,(0,Qz.Z)((0,Xz.Z)(n.prototype),"appendChild",this).call(this,e)}},{key:"replace",value:function(e,t){return this._placeholders=void 0,(0,Qz.Z)((0,Xz.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){f1(this.children,e)}}]),n}(o1),v1=function(){function e(){(0,X.Z)(this,e),this._scanner=new r1,this._token={type:14,pos:0,len:0}}return(0,J.Z)(e,[{key:"parse",value:function(e,t,n){this._scanner.text(e),this._token=this._scanner.next();for(var i=new g1;this._parse(i););var r=new Map,o=[],a=0;i.walk((function(e){return e instanceof u1&&(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 u1(l.index);d.transform=l.transform;var h,f=(0,Na.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 u1(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 a1(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 u1(Number(t)):new h1(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 u1(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(i),!0;if(!this._parse(i))return e.appendChild(new a1("${"+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 l1;;){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 a1(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 h1(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 a1("${"+t+":")),i.children.forEach(e.appendChild,e),!0}}},{key:"_parseTransform",value:function(e){for(var t=new c1,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 a1(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 d1(Number(i))),!0;if(this._accept(4))return e.appendChild(new d1(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 d1(Number(i),r)),!0):(this._backTo(t),!1)}if(this._accept(11)){var o=this._until(4);if(o)return e.appendChild(new d1(Number(i),void 0,o,void 0)),!0}else if(this._accept(12)){var a=this._until(4);if(a)return e.appendChild(new d1(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 d1(Number(i),void 0,s,u)),!0}}else{var l=this._until(4);if(l)return e.appendChild(new d1(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 a1(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}(),m1=n(96257),_1=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},y1={Visible:new kB.uy("suggestWidgetVisible",!1,(0,yB.N)("suggestWidgetVisible","Whether suggestion are visible")),DetailsVisible:new kB.uy("suggestWidgetDetailsVisible",!1,(0,yB.N)("suggestWidgetDetailsVisible","Whether suggestion details are visible")),MultipleSuggestions:new kB.uy("suggestWidgetMultipleSuggestions",!1,(0,yB.N)("suggestWidgetMultipleSuggestions","Whether there are multiple suggestions to pick from")),MakesTextEdit:new kB.uy("suggestionMakesTextEdit",!0,(0,yB.N)("suggestionMakesTextEdit","Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new kB.uy("acceptSuggestionOnEnter",!0,(0,yB.N)("acceptSuggestionOnEnter","Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new kB.uy("suggestionHasInsertAndReplaceRange",!1,(0,yB.N)("suggestionHasInsertAndReplaceRange","Whether the current suggestion has insert and replace behaviour")),InsertMode:new kB.uy("suggestionInsertMode",void 0,{type:"string",description:(0,yB.N)("suggestionInsertMode","Whether the default behaviour is to insert or replace")}),CanResolve:new kB.uy("suggestionCanResolve",!1,(0,yB.N)("suggestionCanResolve","Whether the current suggestion supports to resolve further details"))},b1=new QB.eH("suggestWidgetStatusBar"),w1=function(){function e(t,n,i,r){(0,X.Z)(this,e),this.position=t,this.completion=n,this.container=i,this.provider=r,this.isInvalid=!1,this.score=NK.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(),YB.e.isIRange(n.range)?(this.editStart=new VB.L(n.range.startLineNumber,n.range.startColumn),this.editInsertEnd=new VB.L(n.range.endLineNumber,n.range.endColumn),this.editReplaceEnd=new VB.L(n.range.endLineNumber,n.range.endColumn),this.isInvalid=this.isInvalid||YB.e.spansMultipleLines(n.range)||n.range.startLineNumber!==t.lineNumber):(this.editStart=new VB.L(n.range.insert.startLineNumber,n.range.insert.startColumn),this.editInsertEnd=new VB.L(n.range.insert.endLineNumber,n.range.insert.endColumn),this.editReplaceEnd=new VB.L(n.range.replace.endLineNumber,n.range.replace.endColumn),this.isInvalid=this.isInvalid||YB.e.spansMultipleLines(n.range.insert)||YB.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 r.resolveCompletionItem&&(this._resolveCache=Promise.resolve(),this._isResolved=!0)}return(0,J.Z)(e,[{key:"isResolved",get:function(){return!!this._isResolved}},{key:"resolve",value:function(e){return _1(this,void 0,void 0,fn().mark((function t(){var n,i=this;return fn().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,LB.VV)(e)&&(i._resolveCache=void 0,i._isResolved=!1)}))),t.abrupt("return",this._resolveCache);case 2:case"end":return t.stop()}}),t,this)})))}}]),e}(),C1=(0,J.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,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set;(0,X.Z)(this,e),this.snippetSortOrder=t,this.kindFilter=n,this.providerFilter=i}));C1.default=new C1;var k1=(0,J.Z)((function e(t,n,i,r){(0,X.Z)(this,e),this.items=t,this.needsClipboard=n,this.durations=i,this.disposable=r}));function S1(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:C1.default,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{triggerKind:0},r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Lz.T.None;return _1(this,void 0,void 0,fn().mark((function o(){var a,s,u,l,c,d,h,f,p,g,v,m,_,y,b=this;return fn().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:a=new m1.G(!0),t=t.clone(),s=e.getWordAtPosition(t),u=s?new YB.e(t.lineNumber,s.startColumn,t.lineNumber,s.endColumn):YB.e.fromPositions(t),l={replace:u,insert:u.setEndPosition(t.lineNumber,t.column)},c=[],d=new WB.SL,h=[],f=!1,p=function(e,i,r){var o,a;if(i){var s,u=(0,Na.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=v1.guessNeedsClipboard(p.insertText)),c.push(new w1(t,p,i,e)))}}catch(g){u.e(g)}finally{u.f()}(0,WB.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=_1(b,void 0,void 0,fn().mark((function o(){var a,s;return fn().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:if(p1&&!n.kindFilter.has(27)){o.next=2;break}return o.abrupt("return");case 2:if(!(n.providerFilter.size>0)||n.providerFilter.has(p1)){o.next=4;break}return o.abrupt("return");case 4:return a=new m1.G(!0),o.next=7,p1.provideCompletionItems(e,t,i,r);case 7:s=o.sent,p(p1,s,a);case 9:case"end":return o.stop()}}),o)}))),v=(0,Na.Z)(Iz.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 _1(b,void 0,void 0,fn().mark((function a(){var s,u;return fn().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 m1.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,LB.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,LB.F0)()));case 36:return o.abrupt("return",new k1(c.sort(E1(n.snippetSortOrder)),f,{entries:h,elapsed:a.elapsed()},d));case 37:case"end":return o.stop()}}),o,null,[[12,25,28,31]])})))}function x1(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 L1=new Map;function E1(e){return L1.get(e)}L1.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 x1(e,t)})),L1.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 x1(e,t)})),L1.set(1,x1),jz.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 _1(void 0,void 0,void 0,fn().mark((function t(){var i,r,o,a,s,u,l,c,d,h,f;return fn().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,oV.p_)(Mz.o.isUri(i)),(0,oV.p_)(VB.L.isIPosition(r)),(0,oV.p_)("string"===typeof o||!o),(0,oV.p_)("number"===typeof a||!a),t.next=7,e.get(SK.S).createModelReference(i);case 7:return s=t.sent,t.prev=8,u={incomplete:!1,suggestions:[]},l=[],t.next=13,S1(s.object.textEditorModel,VB.L.lift(r),void 0,{triggerCharacter:o,triggerKind:o?1:0});case 13:c=t.sent,d=(0,Na.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(Lz.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 D1=new(function(){function e(){(0,X.Z)(this,e),this.onlyOnceSuggestions=[]}return(0,J.Z)(e,[{key:"provideCompletionItems",value:function(){var e={suggestions:this.onlyOnceSuggestions.slice(0)};return this.onlyOnceSuggestions.length=0,e}}]),e}());Iz.KZ.register("*",D1);var N1=n(37753),M1=n(36912),T1="code-workspace";function I1(e){var t=e;return"string"===typeof(null===t||void 0===t?void 0:t.id)&&Mz.o.isUri(t.uri)}for(var O1,A1=new Uint8Array(16),R1=[],P1=0;P1<256;P1++)R1.push(P1.toString(16).padStart(2,"0"));O1="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 Z1=function(){function e(t){(0,X.Z)(this,e),this._delegates=t}return(0,J.Z)(e,[{key:"resolve",value:function(e){var t,n=(0,Na.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}(),F1=function(){function e(t,n,i,r){(0,X.Z)(this,e),this._model=t,this._selection=n,this._selectionIdx=i,this._overtypingCapturer=r}return(0,J.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,Dz.V8)(o,0,this._selection.startColumn-1),s=a;e.snippet.walk((function(t){return t!==e&&(t instanceof a1&&(s=(0,Dz.V8)((0,Dz.uq)(t.value).pop())),!0)}));var u=(0,Dz.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}(),j1=function(){function e(t,n){(0,X.Z)(this,e),this._labelService=t,this._model=n}return(0,J.Z)(e,[{key:"resolve",value:function(e){var t=e.name;if("TM_FILENAME"===t)return M1.EZ(this._model.uri.fsPath);if("TM_FILENAME_BASE"===t){var n=M1.EZ(this._model.uri.fsPath),i=n.lastIndexOf(".");return i<=0?n:n.slice(0,i)}return"TM_DIRECTORY"===t&&this._labelService?"."===M1.XX(this._model.uri.fsPath)?"":this._labelService.getUriLabel((0,PW.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}(),H1=function(){function e(t,n,i,r){(0,X.Z)(this,e),this._readClipboardText=t,this._selectionIdx=n,this._selectionCount=i,this._spread=r}return(0,J.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,Dz.m5)(e)}));if(n.length===this._selectionCount)return n[this._selectionIdx]}return t}}}}]),e}(),B1=function(){function e(t,n){(0,X.Z)(this,e),this._model=t,this._selection=n}return(0,J.Z)(e,[{key:"resolve",value:function(e){var t=e.name,n=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),i=Uq.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}(),z1=function(){function e(){(0,X.Z)(this,e)}return(0,J.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}();z1.dayNames=[yB.N("Sunday","Sunday"),yB.N("Monday","Monday"),yB.N("Tuesday","Tuesday"),yB.N("Wednesday","Wednesday"),yB.N("Thursday","Thursday"),yB.N("Friday","Friday"),yB.N("Saturday","Saturday")],z1.dayNamesShort=[yB.N("SundayShort","Sun"),yB.N("MondayShort","Mon"),yB.N("TuesdayShort","Tue"),yB.N("WednesdayShort","Wed"),yB.N("ThursdayShort","Thu"),yB.N("FridayShort","Fri"),yB.N("SaturdayShort","Sat")],z1.monthNames=[yB.N("January","January"),yB.N("February","February"),yB.N("March","March"),yB.N("April","April"),yB.N("May","May"),yB.N("June","June"),yB.N("July","July"),yB.N("August","August"),yB.N("September","September"),yB.N("October","October"),yB.N("November","November"),yB.N("December","December")],z1.monthNamesShort=[yB.N("JanuaryShort","Jan"),yB.N("FebruaryShort","Feb"),yB.N("MarchShort","Mar"),yB.N("AprilShort","Apr"),yB.N("MayShort","May"),yB.N("JuneShort","Jun"),yB.N("JulyShort","Jul"),yB.N("AugustShort","Aug"),yB.N("SeptemberShort","Sep"),yB.N("OctoberShort","Oct"),yB.N("NovemberShort","Nov"),yB.N("DecemberShort","Dec")];var W1=function(){function e(t){(0,X.Z)(this,e),this._workspaceService=t}return(0,J.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(I1(e))return M1.EZ(e.uri.path);var t=M1.EZ(e.configPath.path);return t.endsWith(T1)&&(t=t.substr(0,t.length-T1.length-1)),t}},{key:"_resoveWorkspacePath",value:function(e){if(I1(e))return nY(e.uri.fsPath);var t=M1.EZ(e.configPath.path),n=e.configPath.fsPath;return n.endsWith(t)&&(n=n.substr(0,n.length-t.length-1)),n?nY(n):"/"}}]),e}(),V1=function(){function e(){(0,X.Z)(this,e)}return(0,J.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(){O1(A1),A1[6]=15&A1[6]|64,A1[8]=63&A1[8]|128;var e=0,t="";return t+=R1[A1[e++]],t+=R1[A1[e++]],t+=R1[A1[e++]],t+=R1[A1[e++]],t+="-",t+=R1[A1[e++]],t+=R1[A1[e++]],t+="-",t+=R1[A1[e++]],t+=R1[A1[e++]],t+="-",t+=R1[A1[e++]],t+=R1[A1[e++]],t+="-",t+=R1[A1[e++]],t+=R1[A1[e++]],t+=R1[A1[e++]],t+=R1[A1[e++]],t+=R1[A1[e++]],t+R1[A1[e++]]}():void 0}}]),e}();(0,$B.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(GB.u2),"; outline-color: ").concat(n(GB.Pk),"; }")),t.addRule(".monaco-editor .finish-snippet-placeholder { background-color: ".concat(n(GB.I1),"; outline-color: ").concat(n(GB.U6),"; }"))}));var Y1=function(){function e(t,n,i,r){(0,X.Z)(this,e),this._editor=t,this._snippet=n,this._offset=i,this._snippetLineLeadingWhitespace=r,this._nestingLevel=1,this._placeholderGroups=(0,SB.vM)(n.placeholders,u1.compareByIndex),this._placeholderGroupsIdx=-1}return(0,J.Z)(e,[{key:"dispose",value:function(){this._placeholderDecorations&&this._editor.deltaDecorations((0,Ct.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,Na.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=YB.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,Na.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(Yq.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,Na.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 wB.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,Na.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,Na.Z)(n._placeholderDecorations);try{for(m.s();!(v=m.n()).done;){var _=(0,ne.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 u1){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,Na.Z)(this._placeholderGroups);try{for(n.s();!(e=n.n()).done;){var i,r=e.value,o=void 0,a=(0,Na.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,Na.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,Na.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,Na.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=YB.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,SB.vM)(n._snippet.placeholders,u1.compareByIndex)}))}}]),e}();Y1._decor={active:KB.qx.register({stickiness:0,className:"snippet-placeholder"}),inactive:KB.qx.register({stickiness:1,className:"snippet-placeholder"}),activeFinal:KB.qx.register({stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:KB.qx.register({stickiness:1,className:"finish-snippet-placeholder"})};var U1={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},K1=function(){function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:U1;(0,X.Z)(this,e),this._templateMerges=[],this._snippets=[],this._editor=t,this._template=n,this._options=i}return(0,J.Z)(e,[{key:"dispose",value:function(){(0,WB.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 wB.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]:U1;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,Na.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 wB.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,Na.Z)(this._snippets);try{for(i.s();!(t=i.n()).done;){var r=t.value.move(e);n.push.apply(n,(0,Ct.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,Na.Z)(this._snippets);try{var r=function(){var i=t.value.computePossibleSelections();if(0===n.size){var r,o=(0,Na.Z)(i);try{for(o.s();!(r=o.n()).done;){var a=(0,ne.Z)(r.value,2),s=a[0],u=a[1];u.sort(YB.e.compareRangesUsingStarts);var l,c=(0,Na.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,Ct.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(YB.e.compareRangesUsingStarts);var a,s=(0,Na.Z)(n);try{for(s.s();!(a=s.n()).done;){var u=(0,ne.Z)(a.value,2),l=u[0],c=u[1];if(c.length===e.length){c.sort(YB.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,Dz.V8)(a,0,t.column-1);return n.walk((function(t){if(!(t instanceof a1)||t.parent instanceof l1)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 a1(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=wB.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(N1.ec,oW.jt)})),p=t.invokeWithinContext((function(e){return new j1(e.get(XY.e,oW.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 YB.e.compareRangesUsingStarts(e.selection,t.selection)})),w=(0,Na.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),D=(new v1).parse(n,!0,o),N=E.getStartPosition(),M=e.adjustWhitespace(h,N,D,a||S>0&&y!==h.getLineFirstNonWhitespaceColumn(k.positionLineNumber),!0);D.resolveVariables(new Z1([p,new H1(g,S,b.length,"spread"===t.getOption(67)),new F1(h,k,S,u),new B1(h,k),new z1,new W1(f),new V1]));var T=h.getOffsetAt(N)+v;v+=D.toString().length-h.getValueLengthInRange(E),l[S]=Yq.h.replace(E,D.toString()),l[S].identifier={major:S,minor:0},c[S]=new Y1(t,D,T,M)}}catch(I){w.e(I)}finally{w.f()}return{edits:l,snippets:c}}}]),e}(),q1=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},G1=function(e,t){return function(n,i){t(n,i,e)}},$1={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},Q1=function(){function e(t,n,i){(0,X.Z)(this,e),this._editor=t,this._logService=n,this._snippetListener=new WB.SL,this._modelVersionId=-1,this._inSnippet=e.InSnippetMode.bindTo(i),this._hasNextTabstop=e.HasNextTabstop.bindTo(i),this._hasPrevTabstop=e.HasPrevTabstop.bindTo(i)}return(0,J.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?$1:Object.assign(Object.assign({},$1),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 K1(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 wB.Y.fromPositions(e.getStartPosition())})));var r=(0,ne.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:YB.e.fromPositions(e._editor.getPosition(),e._editor.getPosition().delta(0,r.value.length))}})),setTimeout((function(){var e;(e=D1.onlyOnceSuggestions).push.apply(e,(0,Ct.Z)(n)),t.getContribution("editor.contrib.suggestController").triggerSuggest((new Set).add(D1))}),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}();Q1.ID="snippetController2",Q1.InSnippetMode=new kB.uy("inSnippetMode",!1,(0,yB.N)("inSnippetMode","Whether the editor in current in snippet mode")),Q1.HasNextTabstop=new kB.uy("hasNextTabstop",!1,(0,yB.N)("hasNextTabstop","Whether there is a next tab stop when in snippet mode")),Q1.HasPrevTabstop=new kB.uy("hasPrevTabstop",!1,(0,yB.N)("hasPrevTabstop","Whether there is a previous tab stop when in snippet mode")),Q1=q1([G1(1,P0.VZ),G1(2,kB.i6)],Q1),(0,_B._K)(Q1.ID,Q1);var X1=_B._l.bindToContribution(Q1.get);(0,_B.fK)(new X1({id:"jumpToNextSnippetPlaceholder",precondition:kB.Ao.and(Q1.InSnippetMode,Q1.HasNextTabstop),handler:function(e){return e.next()},kbOpts:{weight:130,kbExpr:bB.u.editorTextFocus,primary:2}})),(0,_B.fK)(new X1({id:"jumpToPrevSnippetPlaceholder",precondition:kB.Ao.and(Q1.InSnippetMode,Q1.HasPrevTabstop),handler:function(e){return e.prev()},kbOpts:{weight:130,kbExpr:bB.u.editorTextFocus,primary:1026}})),(0,_B.fK)(new X1({id:"leaveSnippet",precondition:Q1.InSnippetMode,handler:function(e){return e.cancel(!0)},kbOpts:{weight:130,kbExpr:bB.u.editorTextFocus,primary:9,secondary:[1033]}})),(0,_B.fK)(new X1({id:"acceptSnippet",precondition:Q1.InSnippetMode,handler:function(e){return e.finish()}}));var J1=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},e2=function(e,t){return function(n,i){t(n,i,e)}},t2=function(){function e(t){(0,X.Z)(this,e),this.name=t}return(0,J.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}(),n2=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,"first")}return(0,J.Z)(n,[{key:"memorize",value:function(e,t,n){}},{key:"toJSON",value:function(){}},{key:"fromJSON",value:function(){}}]),n}(t2),i2=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;return(0,X.Z)(this,n),(e=t.call(this,"recentlyUsed"))._cache=new gV.z6(300,.66),e._seq=0,e}return(0,J.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,Qz.Z)((0,Xz.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,Na.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=(0,ne.Z)(t.value,2),r=i[0],o=i[1];o.touch=0,o.type="number"===typeof o.type?o.type:(0,Iz.jr)(o.type),this._cache.set(r,o)}}catch(a){n.e(a)}finally{n.f()}this._seq=this._cache.size}}]),n}(t2),r2=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;return(0,X.Z)(this,n),(e=t.call(this,"recentlyUsedByPrefix"))._trie=gV.Id.forStrings(),e._seq=0,e}return(0,J.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,Qz.Z)((0,Xz.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,Qz.Z)((0,Xz.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,Na.Z)(e);try{for(n.s();!(t=n.n()).done;){var i=(0,ne.Z)(t.value,2),r=i[0],o=i[1];o.type="number"===typeof o.type?o.type:(0,Iz.jr)(o.type),this._trie.set(r,o)}}catch(a){n.e(a)}finally{n.f()}}}}]),n}(t2),o2=function(){function e(t,n,i){var r=this;(0,X.Z)(this,e),this._storageService=t,this._modeService=n,this._configService=i,this._disposables=new WB.SL,this._persistSoon=new zB.pY((function(){return r._saveState()}),500),this._disposables.add(t.onWillSaveState((function(e){e.reason===vV.fk.SHUTDOWN&&r._saveState()})))}return(0,J.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)||n2;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}();o2._strategyCtors=new Map([["recentlyUsedByPrefix",r2],["recentlyUsed",i2],["first",n2]]),o2._storagePrefix="suggest/memories",o2=J1([e2(0,vV.Uy),e2(1,PV.h),e2(2,IV.Ui)],o2);var a2=(0,oW.yh)("ISuggestMemories");(0,pV.z)(a2,o2,!0);var s2=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},u2=function(e,t){return function(n,i){t(n,i,e)}},l2=function(){function e(t,n){(0,X.Z)(this,e),this._editor=t,this._index=0,this._ckOtherSuggestions=e.OtherSuggestions.bindTo(n)}return(0,J.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}();l2.OtherSuggestions=new kB.uy("hasOtherSuggestions",!1),l2=s2([u2(1,kB.i6)],l2);var c2=function(){function e(t,n,i,r,o,a,s){(0,X.Z)(this,e),this.clipboardText=s,this._snippetCompareFn=e._compareCompletionItems,this._items=t,this._column=n,this._wordDistance=r,this._options=o,this._refilterKind=1,this._lineContext=i,"top"===a?this._snippetCompareFn=e._compareCompletionItemsSnippetsUp:"bottom"===a&&(this._snippetCompareFn=e._compareCompletionItemsSnippetsDown)}return(0,J.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,Na.Z)(this._providerInfo);try{for(n.s();!(e=n.n()).done;){var i=(0,ne.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?NK.EW:NK.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=NK.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=NK.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,Dz.zY)(c.completion.filterText,c.textLabel)?c.score=g:(c.score=(0,NK.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,SB.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}(),d2=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},h2=function(){function e(){(0,X.Z)(this,e)}return(0,J.Z)(e,null,[{key:"create",value:function(t,n){return d2(this,void 0,void 0,fn().mark((function i(){var r,o,a,s,u,l,c;return fn().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(n.getOption(103).localityBonus){i.next=2;break}return i.abrupt("return",e.None);case 2:if(n.hasModel()){i.next=4;break}return i.abrupt("return",e.None);case 4:if(r=n.getModel(),o=n.getPosition(),t.canComputeWordRanges(r.uri)){i.next=8;break}return i.abrupt("return",e.None);case 8:return i.next=10,(new G0).provideSelectionRanges(r,[o]);case 10:if(a=i.sent,s=(0,ne.Z)(a,1),0!==(u=s[0]).length){i.next=15;break}return i.abrupt("return",e.None);case 15:return i.next=17,t.computeWordRanges(r.uri,u[0].range);case 17:if(l=i.sent){i.next=20;break}return i.abrupt("return",e.None);case 20:return c=r.getWordUntilPosition(o),delete l[c.word],i.abrupt("return",new(function(e){(0,ee.Z)(i,e);var t=(0,te.Z)(i);function i(){return(0,X.Z)(this,i),t.apply(this,arguments)}return(0,J.Z)(i,[{key:"distance",value:function(e,t){if(!o.equals(n.getPosition()))return 0;if(17===t.kind)return 2<<20;var i="string"===typeof t.label?t.label:t.label.name,r=l[i];if((0,SB.XY)(r))return 2<<20;var a,s=(0,SB.ry)(r,YB.e.fromPositions(e),YB.e.compareRangesUsingStarts),c=s>=0?r[s]:r[Math.max(0,~s-1)],d=u.length,h=(0,Na.Z)(u);try{for(h.s();!(a=h.n()).done;){var f=a.value;if(!YB.e.containsRange(f.range,c))break;d-=1}}catch(p){h.e(p)}finally{h.f()}return d}}]),i}(e)));case 23:case"end":return i.stop()}}),i)})))}}]),e}();h2.None=new(function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"distance",value:function(){return 0}}]),n}(h2));var f2=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},p2=function(e,t){return function(n,i){t(n,i,e)}},g2=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},v2=function(){function e(t,n,i,r){(0,X.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=i,this.shy=r}return(0,J.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}(),m2=function(){function e(t,n,i,r,o){var a=this;(0,X.Z)(this,e),this._editor=t,this._editorWorkerService=n,this._clipboardService=i,this._telemetryService=r,this._logService=o,this._toDispose=new WB.SL,this._quickSuggestDelay=10,this._triggerCharacterListener=new WB.SL,this._triggerQuickSuggest=new zB._F,this._state=0,this._completionDisposables=new WB.SL,this._onDidCancel=new _W.Q5,this._onDidTrigger=new _W.Q5,this._onDidSuggest=new _W.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 wB.Y(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel((function(){a._updateTriggerCharacters(),a.cancel()}))),this._toDispose.add(this._editor.onDidChangeModelLanguage((function(){a._updateTriggerCharacters(),a.cancel()}))),this._toDispose.add(this._editor.onDidChangeConfiguration((function(){a._updateTriggerCharacters(),a._updateQuickSuggest()}))),this._toDispose.add(Iz.KZ.onDidChange((function(){a._updateTriggerCharacters(),a._updateActiveSuggestSession()}))),this._toDispose.add(this._editor.onDidChangeCursorSelection((function(e){a._onCursorChange(e)})));var s=!1;this._toDispose.add(this._editor.onDidCompositionStart((function(){s=!0}))),this._toDispose.add(this._editor.onDidCompositionEnd((function(){s=!1,a._refilterCompletionItems()}))),this._toDispose.add(this._editor.onDidChangeModelContent((function(){s||a._refilterCompletionItems()}))),this._updateTriggerCharacters(),this._updateQuickSuggest()}return(0,J.Z)(e,[{key:"dispose",value:function(){(0,WB.B9)(this._triggerCharacterListener),(0,WB.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,Na.Z)(Iz.KZ.all(this._editor.getModel()));try{for(i.s();!(t=i.n()).done;){var r,o=t.value,a=(0,Na.Z)(o.triggerCharacters||[]);try{for(a.s();!(r=a.n()).done;){var s=r.value,u=n.get(s);u||((u=new Set).add(p1),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,Dz.YK)(t.charCodeAt(t.length-1))?(0,Dz.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()&&Iz.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(Iz.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&&Q1.get(this._editor).isInSnippet())return;this.cancel(),this._triggerQuickSuggest.cancelAndSet((function(){if(0===t._state&&v2.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 v2(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 v2(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 Lz.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=h2.create(this._editorWorkerService,this._editor),g=S1(s,this._editor.getPosition(),new C1(h,f,o),c,this._requestToken.token);Promise.all([g,p]).then((function(e){var n=(0,ne.Z)(e,2),r=n[0],o=n[1];return g2(i,void 0,void 0,fn().mark((function e(){var n,i,s,l,c,d;return fn().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=E1(h),l=l.concat(a.items).sort(c)),d=new v2(s,this._editor.getPosition(),u,t.shy),this._completionModel=new c2(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(LB.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,Dz.V8)(e.leadingLineContent)===(0,Dz.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(Iz.KZ.all(this._editor.getModel())),i=(0,Na.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(v2.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}();m2=f2([p2(1,tX.p),p2(2,pz.p),p2(3,RW.b),p2(4,P0.VZ)],m2);n(22410);var _2=(0,GB.P6)("symbolIcon.arrayForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.arrayForeground","The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),y2=(0,GB.P6)("symbolIcon.booleanForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.booleanForeground","The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),b2=(0,GB.P6)("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hc:"#EE9D28"},(0,yB.N)("symbolIcon.classForeground","The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),w2=(0,GB.P6)("symbolIcon.colorForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.colorForeground","The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),C2=(0,GB.P6)("symbolIcon.constantForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.constantForeground","The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),k2=(0,GB.P6)("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hc:"#B180D7"},(0,yB.N)("symbolIcon.constructorForeground","The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),S2=(0,GB.P6)("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hc:"#EE9D28"},(0,yB.N)("symbolIcon.enumeratorForeground","The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),x2=(0,GB.P6)("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},(0,yB.N)("symbolIcon.enumeratorMemberForeground","The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),L2=(0,GB.P6)("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hc:"#EE9D28"},(0,yB.N)("symbolIcon.eventForeground","The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),E2=(0,GB.P6)("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},(0,yB.N)("symbolIcon.fieldForeground","The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),D2=(0,GB.P6)("symbolIcon.fileForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.fileForeground","The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),N2=(0,GB.P6)("symbolIcon.folderForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.folderForeground","The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),M2=(0,GB.P6)("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hc:"#B180D7"},(0,yB.N)("symbolIcon.functionForeground","The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),T2=(0,GB.P6)("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},(0,yB.N)("symbolIcon.interfaceForeground","The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),I2=(0,GB.P6)("symbolIcon.keyForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.keyForeground","The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),O2=(0,GB.P6)("symbolIcon.keywordForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.keywordForeground","The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),A2=(0,GB.P6)("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hc:"#B180D7"},(0,yB.N)("symbolIcon.methodForeground","The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),R2=(0,GB.P6)("symbolIcon.moduleForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.moduleForeground","The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),P2=(0,GB.P6)("symbolIcon.namespaceForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.namespaceForeground","The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),Z2=(0,GB.P6)("symbolIcon.nullForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.nullForeground","The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),F2=(0,GB.P6)("symbolIcon.numberForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.numberForeground","The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),j2=(0,GB.P6)("symbolIcon.objectForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.objectForeground","The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),H2=(0,GB.P6)("symbolIcon.operatorForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.operatorForeground","The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),B2=(0,GB.P6)("symbolIcon.packageForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.packageForeground","The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),z2=(0,GB.P6)("symbolIcon.propertyForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.propertyForeground","The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),W2=(0,GB.P6)("symbolIcon.referenceForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.referenceForeground","The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),V2=(0,GB.P6)("symbolIcon.snippetForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.snippetForeground","The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),Y2=(0,GB.P6)("symbolIcon.stringForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.stringForeground","The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),U2=(0,GB.P6)("symbolIcon.structForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.structForeground","The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),K2=(0,GB.P6)("symbolIcon.textForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.textForeground","The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),q2=(0,GB.P6)("symbolIcon.typeParameterForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.typeParameterForeground","The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),G2=(0,GB.P6)("symbolIcon.unitForeground",{dark:GB.dR,light:GB.dR,hc:GB.dR},(0,yB.N)("symbolIcon.unitForeground","The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),$2=(0,GB.P6)("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hc:"#75BEFF"},(0,yB.N)("symbolIcon.variableForeground","The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));(0,$B.Ic)((function(e,t){var n=e.getColor(_2);n&&t.addRule("".concat(bW.lA.symbolArray.cssSelector," { color: ").concat(n,"; }"));var i=e.getColor(y2);i&&t.addRule("".concat(bW.lA.symbolBoolean.cssSelector," { color: ").concat(i,"; }"));var r=e.getColor(b2);r&&t.addRule("".concat(bW.lA.symbolClass.cssSelector," { color: ").concat(r,"; }"));var o=e.getColor(A2);o&&t.addRule("".concat(bW.lA.symbolMethod.cssSelector," { color: ").concat(o,"; }"));var a=e.getColor(w2);a&&t.addRule("".concat(bW.lA.symbolColor.cssSelector," { color: ").concat(a,"; }"));var s=e.getColor(C2);s&&t.addRule("".concat(bW.lA.symbolConstant.cssSelector," { color: ").concat(s,"; }"));var u=e.getColor(k2);u&&t.addRule("".concat(bW.lA.symbolConstructor.cssSelector," { color: ").concat(u,"; }"));var l=e.getColor(S2);l&&t.addRule("\n\t\t\t".concat(bW.lA.symbolValue.cssSelector,",").concat(bW.lA.symbolEnum.cssSelector," { color: ").concat(l,"; }"));var c=e.getColor(x2);c&&t.addRule("".concat(bW.lA.symbolEnumMember.cssSelector," { color: ").concat(c,"; }"));var d=e.getColor(L2);d&&t.addRule("".concat(bW.lA.symbolEvent.cssSelector," { color: ").concat(d,"; }"));var h=e.getColor(E2);h&&t.addRule("".concat(bW.lA.symbolField.cssSelector," { color: ").concat(h,"; }"));var f=e.getColor(D2);f&&t.addRule("".concat(bW.lA.symbolFile.cssSelector," { color: ").concat(f,"; }"));var p=e.getColor(N2);p&&t.addRule("".concat(bW.lA.symbolFolder.cssSelector," { color: ").concat(p,"; }"));var g=e.getColor(M2);g&&t.addRule("".concat(bW.lA.symbolFunction.cssSelector," { color: ").concat(g,"; }"));var v=e.getColor(T2);v&&t.addRule("".concat(bW.lA.symbolInterface.cssSelector," { color: ").concat(v,"; }"));var m=e.getColor(I2);m&&t.addRule("".concat(bW.lA.symbolKey.cssSelector," { color: ").concat(m,"; }"));var _=e.getColor(O2);_&&t.addRule("".concat(bW.lA.symbolKeyword.cssSelector," { color: ").concat(_,"; }"));var y=e.getColor(R2);y&&t.addRule("".concat(bW.lA.symbolModule.cssSelector," { color: ").concat(y,"; }"));var b=e.getColor(P2);b&&t.addRule("".concat(bW.lA.symbolNamespace.cssSelector," { color: ").concat(b,"; }"));var w=e.getColor(Z2);w&&t.addRule("".concat(bW.lA.symbolNull.cssSelector," { color: ").concat(w,"; }"));var C=e.getColor(F2);C&&t.addRule("".concat(bW.lA.symbolNumber.cssSelector," { color: ").concat(C,"; }"));var k=e.getColor(j2);k&&t.addRule("".concat(bW.lA.symbolObject.cssSelector," { color: ").concat(k,"; }"));var S=e.getColor(H2);S&&t.addRule("".concat(bW.lA.symbolOperator.cssSelector," { color: ").concat(S,"; }"));var x=e.getColor(B2);x&&t.addRule("".concat(bW.lA.symbolPackage.cssSelector," { color: ").concat(x,"; }"));var L=e.getColor(z2);L&&t.addRule("".concat(bW.lA.symbolProperty.cssSelector," { color: ").concat(L,"; }"));var E=e.getColor(W2);E&&t.addRule("".concat(bW.lA.symbolReference.cssSelector," { color: ").concat(E,"; }"));var D=e.getColor(V2);D&&t.addRule("".concat(bW.lA.symbolSnippet.cssSelector," { color: ").concat(D,"; }"));var N=e.getColor(Y2);N&&t.addRule("".concat(bW.lA.symbolString.cssSelector," { color: ").concat(N,"; }"));var M=e.getColor(U2);M&&t.addRule("".concat(bW.lA.symbolStruct.cssSelector," { color: ").concat(M,"; }"));var T=e.getColor(K2);T&&t.addRule("".concat(bW.lA.symbolText.cssSelector," { color: ").concat(T,"; }"));var I=e.getColor(q2);I&&t.addRule("".concat(bW.lA.symbolTypeParameter.cssSelector," { color: ").concat(I,"; }"));var O=e.getColor(G2);O&&t.addRule("".concat(bW.lA.symbolUnit.cssSelector," { color: ").concat(O,"; }"));var A=e.getColor($2);A&&t.addRule("".concat(bW.lA.symbolVariable.cssSelector," { color: ").concat(A,"; }"))}));var Q2=n(92814),X2=function(){function e(){var t,n=this;(0,X.Z)(this,e),this._onDidWillResize=new _W.Q5,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new _W.Q5,this.onDidResize=this._onDidResize.event,this._sashListener=new WB.SL,this._size=new aW.Dimension(0,0),this._minSize=new aW.Dimension(0,0),this._maxSize=new aW.Dimension(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new lY.g(this.domNode,{getVerticalSashLeft:function(){return n._size.width}},{orientation:0}),this._westSash=new lY.g(this.domNode,{getVerticalSashLeft:function(){return 0}},{orientation:0}),this._northSash=new lY.g(this.domNode,{getHorizontalSashTop:function(){return 0}},{orientation:1,orthogonalEdge:lY.l.North}),this._southSash=new lY.g(this.domNode,{getHorizontalSashTop:function(){return n._size.height}},{orientation:1,orthogonalEdge:lY.l.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;var i=0,r=0;this._sashListener.add(_W.ju.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)((function(){void 0===t&&(n._onDidWillResize.fire(),t=n._size,i=0,r=0)}))),this._sashListener.add(_W.ju.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)((function(){void 0!==t&&(t=void 0,i=0,r=0,n._onDidResize.fire({dimension:n._size,done:!0}))}))),this._sashListener.add(this._eastSash.onDidChange((function(e){t&&(r=e.currentX-e.startX,n.layout(t.height+i,t.width+r),n._onDidResize.fire({dimension:n._size,done:!1,east:!0}))}))),this._sashListener.add(this._westSash.onDidChange((function(e){t&&(r=-(e.currentX-e.startX),n.layout(t.height+i,t.width+r),n._onDidResize.fire({dimension:n._size,done:!1,west:!0}))}))),this._sashListener.add(this._northSash.onDidChange((function(e){t&&(i=-(e.currentY-e.startY),n.layout(t.height+i,t.width+r),n._onDidResize.fire({dimension:n._size,done:!1,north:!0}))}))),this._sashListener.add(this._southSash.onDidChange((function(e){t&&(i=e.currentY-e.startY,n.layout(t.height+i,t.width+r),n._onDidResize.fire({dimension:n._size,done:!1,south:!0}))}))),this._sashListener.add(_W.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(_W.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,J.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 aW.Dimension(t,e);aW.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}(),J2=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},e3=function(e,t){return function(n,i){t(n,i,e)}};function t3(e){return!!e&&Boolean(e.completion.documentation||e.completion.detail&&e.completion.detail!==e.completion.label)}var n3=function(){function e(t,n){var i=this;(0,X.Z)(this,e),this._editor=t,this._onDidClose=new _W.Q5,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new _W.Q5,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new WB.SL,this._renderDisposeable=new WB.SL,this._borderWidth=1,this._size=new aW.Dimension(330,0),this.domNode=aW.$(".suggest-details"),this.domNode.classList.add("no-docs"),this._markdownRenderer=n.createInstance(GU,{editor:t}),this._body=aW.$(".body"),this._scrollbar=new qV.s$(this._body,{}),aW.append(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=aW.append(this._body,aW.$(".header")),this._close=aW.append(this._header,aW.$("span"+bW.lA.close.cssSelector)),this._close.title=yB.N("details.close","Close"),this._type=aW.append(this._header,aW.$("p.type")),this._docs=aW.append(this._body,aW.$("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration((function(e){e.hasChanged(40)&&i._configureFont()})))}return(0,J.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=yB.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 EB).appendCodeblock("empty",u),a="Provider: ".concat(e.provider._debugDisplayName)}if(t||t3(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,aW.show(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gim.test(l))}else aW.clearNode(this._type),this._type.title="",aW.hide(this._type),this.domNode.classList.add("no-type");if(aW.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"),aW.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 aW.Dimension(e,t);aW.Dimension.equals(n,this._size)||(this._size=n,aW.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}();n3=J2([e3(1,oW.TG)],n3);var i3=function(){function e(t,n){var i,r,o=this;(0,X.Z)(this,e),this.widget=t,this._editor=n,this._disposables=new WB.SL,this._added=!1,this._resizable=new X2,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(t.domNode),this._resizable.enableSashes(!1,!0,!0,!1);var a=0,s=0;this._disposables.add(this._resizable.onDidWillResize((function(){i=o._topLeft,r=o._resizable.size}))),this._disposables.add(this._resizable.onDidResize((function(e){if(i&&r){o.widget.layout(e.dimension.width,e.dimension.height);var t=!1;e.west&&(s=r.width-e.dimension.width,t=!0),e.north&&(a=r.height-e.dimension.height,t=!0),t&&o._applyTopLeft({top:i.top+a,left:i.left+s})}e.done&&(i=void 0,r=void 0,a=0,s=0,o._userSize=e.dimension)}))),this._disposables.add(this.widget.onDidChangeContents((function(){var e;o._anchorBox&&o._placeAtAnchor(o._anchorBox,null!==(e=o._userSize)&&void 0!==e?e:o.widget.size)})))}return(0,J.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=aW.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=aW.getClientArea(document.body),s=this.widget.getLayoutInfo(),u=new aW.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 aW.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 aW.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}(),r3=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},o3=function(e,t){return function(n,i){t(n,i,e)}},a3=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"updateLabel",value:function(){var e=this._keybindingService.lookupKeybinding(this._action.id);if(!e)return(0,Qz.Z)((0,Xz.Z)(n.prototype),"updateLabel",this).call(this);this.label&&(this.label.textContent=(0,yB.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}(LY),s3=function(){function e(t,n,i,r){(0,X.Z)(this,e),this._menuService=i,this._contextKeyService=r,this._menuDisposables=new WB.SL,this.element=aW.append(t,aW.$(".suggest-status-bar"));var o=function(e){return e instanceof QB.U8?n.createInstance(a3,e):void 0};this._leftActions=new iY.o(this.element,{actionViewItemProvider:o}),this._rightActions=new iY.o(this.element,{actionViewItemProvider:o}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}return(0,J.Z)(e,[{key:"dispose",value:function(){this._menuDisposables.dispose(),this.element.remove()}},{key:"show",value:function(){var e=this,t=this._menuService.createMenu(b1,this._contextKeyService);this._menuDisposables.add(t.onDidChange((function(){return function(){var n,i=[],r=[],o=(0,Na.Z)(t.getActions());try{for(o.s();!(n=o.n()).done;){var a=(0,ne.Z)(n.value,2),s=a[0],u=a[1];"left"===s?i.push.apply(i,(0,Ct.Z)(u)):r.push.apply(r,(0,Ct.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}();s3=r3([o3(1,oW.TG),o3(2,QB.co),o3(3,kB.i6)],s3);var u3,l3=n(54970);function c3(e,t,n,i){var r=i===u3.ROOT_FOLDER?["rootfolder-icon"]:i===u3.FOLDER?["folder-icon"]:["file-icon"];if(n){var o;if(n.scheme===JV.lg.data)o=PW.Vb.parseMetaData(n).get(PW.Vb.META_DATA_LABEL);else o=d3((0,PW.Hx)(n).toLowerCase());if(i===u3.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===JV.lg.data){var r=PW.Vb.parseMetaData(n).get(PW.Vb.META_DATA_MIME);r&&(i=t.getModeId(r))}else{var o=e.getModel(n);o&&(i=o.getModeId())}if(i&&i!==l3.XT)return i;return t.getModeIdByFilepathOrFirstLine(n)}(e,t,n);u&&r.push("".concat(d3(u),"-lang-file-icon"))}}return r}function d3(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"}(u3||(u3={}));var h3,f3=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},p3=function(e,t){return function(n,i){t(n,i,e)}};function g3(e){return"suggest-aria-id:".concat(e)}var v3=(0,mU.q5)("suggest-more-info",bW.lA.chevronRight,yB.N("suggestMoreInfoIcon","Icon for more information in the suggest widget.")),m3=new(h3=function(){function e(){(0,X.Z)(this,e)}return(0,J.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}(),h3._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*\))/,h3._regexStrict=new RegExp("^".concat(h3._regexRelaxed.source,"$"),"i"),h3),_3=function(){function e(t,n,i,r){(0,X.Z)(this,e),this._editor=t,this._modelService=n,this._modeService=i,this._themeService=r,this._onDidToggleDetails=new _W.Q5,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}return(0,J.Z)(e,[{key:"dispose",value:function(){this._onDidToggleDetails.dispose()}},{key:"renderTemplate",value:function(e){var t=this,n=Object.create(null);n.disposables=new WB.SL,n.root=e,n.root.classList.add("show-file-icons"),n.icon=(0,aW.append)(e,(0,aW.$)(".icon")),n.colorspan=(0,aW.append)(n.icon,(0,aW.$)("span.colorspan"));var i=(0,aW.append)(e,(0,aW.$)(".contents")),r=(0,aW.append)(i,(0,aW.$)(".main"));n.iconContainer=(0,aW.append)(r,(0,aW.$)(".icon-label.codicon")),n.left=(0,aW.append)(r,(0,aW.$)("span.left")),n.right=(0,aW.append)(r,(0,aW.$)("span.right")),n.iconLabel=new LK.g(n.left,{supportHighlights:!0,supportIcons:!0}),n.disposables.add(n.iconLabel),n.parametersLabel=(0,aW.append)(n.left,(0,aW.$)("span.signature-label")),n.qualifierLabel=(0,aW.append)(n.left,(0,aW.$)("span.qualifier-label")),n.detailsLabel=(0,aW.append)(n.right,(0,aW.$)("span.details-label")),n.readMore=(0,aW.append)(n.right,(0,aW.$)("span.readMore"+$B.kS.asCSSSelector(v3))),n.readMore.title=yB.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=g3(t),n.colorspan.style.backgroundColor="";var u={labelEscapeNewLines:!0,matches:(0,NK.mB)(e.score)},l=[];if(19===s.kind&&m3.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=c3(this._modelService,this._modeService,Mz.o.from({scheme:"fake",path:e.textLabel}),u3.FILE),d=c3(this._modelService,this._modeService,Mz.o.from({scheme:"fake",path:s.detail}),u3.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,SB.xH)([c3(this._modelService,this._modeService,Mz.o.from({scheme:"fake",path:e.textLabel}),u3.FOLDER),c3(this._modelService,this._modeService,Mz.o.from({scheme:"fake",path:s.detail}),u3.FOLDER)]);else{var h;n.icon.className="icon hide",n.iconContainer.className="",(h=n.iconContainer.classList).add.apply(h,["suggest-icon"].concat((0,Ct.Z)((0,Iz.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,aW.show)(n.detailsLabel):(0,aW.hide)(n.detailsLabel),t3(e)?(n.right.classList.add("can-expand-details"),(0,aW.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,aW.hide)(n.readMore),n.readMore.onmousedown=null,n.readMore.onclick=null)}},{key:"disposeTemplate",value:function(e){e.disposables.dispose()}}]),e}();_3=f3([p3(1,Oz.q),p3(2,PV.h),p3(3,$B.XE)],_3);var y3=n(5265),b3=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},w3=function(e,t){return function(n,i){t(n,i,e)}},C3=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},k3=(0,GB.P6)("editorSuggestWidget.background",{dark:GB.D0,light:GB.D0,hc:GB.D0},yB.N("editorSuggestWidgetBackground","Background color of the suggest widget.")),S3=(0,GB.P6)("editorSuggestWidget.border",{dark:GB.D1,light:GB.D1,hc:GB.D1},yB.N("editorSuggestWidgetBorder","Border color of the suggest widget.")),x3=(0,GB.P6)("editorSuggestWidget.foreground",{dark:GB.NO,light:GB.NO,hc:GB.NO},yB.N("editorSuggestWidgetForeground","Foreground color of the suggest widget.")),L3=(0,GB.P6)("editorSuggestWidget.selectedBackground",{dark:GB.Vq,light:GB.Vq,hc:GB.Vq},yB.N("editorSuggestWidgetSelectedBackground","Background color of the selected entry in the suggest widget.")),E3=(0,GB.P6)("editorSuggestWidget.highlightForeground",{dark:GB.Gw,light:GB.Gw,hc:GB.Gw},yB.N("editorSuggestWidgetHighlightForeground","Color of the match highlights in the suggest widget.")),D3=function(){function e(t,n){(0,X.Z)(this,e),this._service=t,this._key="suggestWidget.size/".concat(n.getEditorType(),"/").concat(n instanceof uY)}return(0,J.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(aW.Dimension.is(n))return aW.Dimension.lift(n)}catch(hq){}}},{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}(),N3=function(){function e(t,n,i,r,o){var a=this;(0,X.Z)(this,e),this.editor=t,this._storageService=n,this._state=0,this._isAuto=!1,this._ignoreFocusEvents=!1,this._explainMode=!1,this._showTimeout=new zB._F,this._disposables=new WB.SL,this._onDidSelect=new _W.Q5,this._onDidFocus=new _W.Q5,this._onDidHide=new _W.Q5,this._onDidShow=new _W.Q5,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new _W.Q5,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new X2,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new M3(this,t),this._persistedSize=new D3(n,t);var s,u=(0,J.Z)((function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];(0,X.Z)(this,e),this.persistedSize=t,this.currentSize=n,this.persistHeight=i,this.persistWidth=r}));this._disposables.add(this.element.onDidWillResize((function(){a._contentWidget.lockPreference(),s=new u(a._persistedSize.restore(),a.element.size)}))),this._disposables.add(this.element.onDidResize((function(e){var t,n,i,r;if(a._resize(e.dimension.width,e.dimension.height),s&&(s.persistHeight=s.persistHeight||!!e.north||!!e.south,s.persistWidth=s.persistWidth||!!e.east||!!e.west),e.done){if(s){var o=a.getLayoutInfo(),u=o.itemHeight,l=o.defaultSize,c=Math.round(u/2),d=a.element.size,h=d.width,f=d.height;(!s.persistHeight||Math.abs(s.currentSize.height-f)<=c)&&(f=null!==(n=null===(t=s.persistedSize)||void 0===t?void 0:t.height)&&void 0!==n?n:l.height),(!s.persistWidth||Math.abs(s.currentSize.width-h)<=c)&&(h=null!==(r=null===(i=s.persistedSize)||void 0===i?void 0:i.width)&&void 0!==r?r:l.width),a._persistedSize.store(new aW.Dimension(h,f))}a._contentWidget.unlockPreference(),s=void 0}}))),this._messageElement=aW.append(this.element.domNode,aW.$(".message")),this._listElement=aW.append(this.element.domNode,aW.$(".tree"));var l=o.createInstance(n3,this.editor);l.onDidClose(this.toggleDetails,this,this._disposables),this._details=new i3(l,this.editor);var c=function(){return a.element.domNode.classList.toggle("no-icons",!a.editor.getOption(103).showIcons)};c();var d=o.createInstance(_3,this.editor);this._disposables.add(d),this._disposables.add(d.onDidToggleDetails((function(){return a.toggleDetails()}))),this._list=new Q2.aV("SuggestWidget",this._listElement,{getHeight:function(e){return a.getLayoutInfo().itemHeight},getTemplateId:function(e){return"suggestion"}},[d],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,accessibilityProvider:{getRole:function(){return"option"},getAriaLabel:function(e){if(e.isResolved&&a._isDetailsVisible()){var t=e.completion,n=t.documentation,i=t.detail,r=Dz.WU("{0}{1}",i||"",n?"string"===typeof n?n:n.value:"");return yB.N("ariaCurrenttSuggestionReadDetails","{0}, docs: {1}",e.textLabel,r)}return e.textLabel},getWidgetAriaLabel:function(){return yB.N("suggest","Suggest")},getWidgetRole:function(){return"listbox"}}}),this._status=o.createInstance(s3,this.element.domNode);var h=function(){return a.element.domNode.classList.toggle("with-status-bar",a.editor.getOption(103).showStatusBar)};h(),this._disposables.add((0,DK.Jl)(this._list,r,{listInactiveFocusBackground:L3,listInactiveFocusOutline:GB.xL})),this._disposables.add(r.onDidColorThemeChange((function(e){return a._onThemeChange(e)}))),this._onThemeChange(r.getColorTheme()),this._disposables.add(this._list.onMouseDown((function(e){return a._onListMouseDownOrTap(e)}))),this._disposables.add(this._list.onTap((function(e){return a._onListMouseDownOrTap(e)}))),this._disposables.add(this._list.onDidChangeSelection((function(e){return a._onListSelection(e)}))),this._disposables.add(this._list.onDidChangeFocus((function(e){return a._onListFocus(e)}))),this._disposables.add(this.editor.onDidChangeCursorSelection((function(){return a._onCursorSelectionChanged()}))),this._disposables.add(this.editor.onDidChangeConfiguration((function(e){e.hasChanged(103)&&(h(),c())}))),this._ctxSuggestWidgetVisible=y1.Visible.bindTo(i),this._ctxSuggestWidgetDetailsVisible=y1.DetailsVisible.bindTo(i),this._ctxSuggestWidgetMultipleSuggestions=y1.MultipleSuggestions.bindTo(i),this._disposables.add(aW.addStandardDisposableListener(this._details.widget.domNode,"keydown",(function(e){a._onDetailsKeydown.fire(e)}))),this._disposables.add(this.editor.onMouseDown((function(e){return a._onEditorMouseDown(e)})))}return(0,J.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(k3);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(S3);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(GB.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,zB.PG)((function(e){return C3(n,void 0,void 0,fn().mark((function t(){var n,r,o=this;return fn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=(0,zB.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:g3(r)}))})).catch(LB.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:aW.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,aW.hide(this._listElement,this._status.element),aW.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,aW.hide(this._listElement,this._status.element),aW.show(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0;break;case 3:case 4:aW.hide(this._messageElement),aW.show(this._listElement,this._status.element),this._show();break;case 5:aW.hide(this._messageElement),aW.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,zB.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")):!t3(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=aW.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 aW.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=aW.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 aW.Dimension(l,o.defaultSize.height),this.element.maxSize=new aW.Dimension(u,m),this.element.minSize=new aW.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,y3.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 aW.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}();N3.LOADING_MESSAGE=yB.N("suggestWidget.loading","Loading..."),N3.NO_SUGGESTIONS_MESSAGE=yB.N("suggestWidget.noSuggestions","No suggestions."),N3=b3([w3(1,vV.Uy),w3(2,kB.i6),w3(3,$B.XE),w3(4,oW.TG)],N3);var M3=function(){function e(t,n){(0,X.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,J.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 aW.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,$B.Ic)((function(e,t){var n=e.getColor(E3);n&&t.addRule(".monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight { color: ".concat(n,"; }"));var i=e.getColor(x3);i&&t.addRule(".monaco-editor .suggest-widget, .monaco-editor .suggest-details { color: ".concat(i,"; }"));var r=e.getColor(GB.ur);r&&t.addRule(".monaco-editor .suggest-details a { color: ".concat(r,"; }"));var o=e.getColor(GB.Sw);o&&t.addRule(".monaco-editor .suggest-details code { background-color: ".concat(o,"; }"))}));var T3=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},I3=function(e,t){return function(n,i){t(n,i,e)}},O3=function(){function e(t,n){var i=this;(0,X.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)&&i._update()})),this._update()}return(0,J.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}();O3.AtEnd=new kB.uy("atEndOfWord",!1),O3=T3([I3(1,kB.i6)],O3);var A3=function(){function e(t,n,i){var r=this;(0,X.Z)(this,e),this._disposables=new WB.SL,this._disposables.add(n.onDidShow((function(){return r._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(r._active&&!n.isFrozen()){var o=e.charCodeAt(e.length-1);r._active.acceptCharacters.has(o)&&t.getOption(0)&&i(r._active.item)}})))}return(0,J.Z)(e,[{key:"_onItem",value:function(e){if(e&&(0,SB.Of)(e.item.completion.commitCharacters)){if(!this._active||this._active.item.item!==e.item){var t,n=new eX.q,i=(0,Na.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}(),R3=function(){function e(t,n){var i=this;(0,X.Z)(this,e),this._disposables=new WB.SL,this._lastOvertyped=[],this._empty=!0,this._disposables.add(t.onWillType((function(){if(i._empty&&t.hasModel()){for(var n=t.getSelections(),r=n.length,o=!1,a=0;a<r;a++)if(!n[a].isEmpty()){o=!0;break}if(o){i._lastOvertyped=[];for(var s=t.getModel(),u=0;u<r;u++){var l=n[u];if(s.getValueLengthInRange(l)>e._maxSelectionLength)return;i._lastOvertyped[u]={value:s.getValueInRange(l),multiline:l.startLineNumber!==l.endLineNumber}}i._empty=!1}}}))),this._disposables.add(n.onDidCancel((function(e){i._empty||e.retrigger||(i._empty=!0)})))}return(0,J.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}();R3._maxSelectionLength=51200;var P3=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},Z3=function(e,t){return function(n,i){t(n,i,e)}},F3=!1,j3=function(){function e(t,n){if((0,X.Z)(this,e),this._model=t,this._position=n,t.getLineMaxColumn(n.lineNumber)!==n.column){var i=t.getOffsetAt(n),r=t.getPositionAt(i+1);this._marker=t.deltaDecorations([],[{range:YB.e.fromPositions(n,r),options:{stickiness:1}}])}}return(0,J.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}(),H3=function(){function e(t,n,i,r,o,a){var s=this;(0,X.Z)(this,e),this._memoryService=n,this._commandService=i,this._contextKeyService=r,this._instantiationService=o,this._logService=a,this._lineSuffix=new WB.XK,this._toDispose=new WB.SL,this.editor=t,this.model=o.createInstance(m2,this.editor);var u=y1.InsertMode.bindTo(r);u.set(t.getOption(103).insertMode),this.model.onDidTrigger((function(){return u.set(t.getOption(103).insertMode)})),this.widget=this._toDispose.add(new zB.Ue((function(){var e=s._instantiationService.createInstance(N3,s.editor);s._toDispose.add(e),s._toDispose.add(e.onDidSelect((function(e){return s._insertSuggestion(e,0)}),s));var t=new A3(s.editor,e,(function(e){return s._insertSuggestion(e,2)}));s._toDispose.add(t),s._toDispose.add(s.model.onDidSuggest((function(e){0===e.completionModel.items.length&&t.reset()})));var n=y1.MakesTextEdit.bindTo(s._contextKeyService),i=y1.HasInsertAndReplaceRange.bindTo(s._contextKeyService),r=y1.CanResolve.bindTo(s._contextKeyService);return s._toDispose.add((0,WB.OF)((function(){n.reset(),i.reset(),r.reset()}))),s._toDispose.add(e.onDidFocus((function(e){var t=e.item,o=s.editor.getPosition(),a=t.editStart.column,u=o.column,l=!0;"smart"!==s.editor.getOption(1)||2!==s.model.state||t.completion.command||t.completion.additionalTextEdits||4&t.completion.insertTextRules||u-a!==t.completion.insertText.length||(l=s.editor.getModel().getValueInRange({startLineNumber:o.lineNumber,startColumn:a,endLineNumber:o.lineNumber,endColumn:u})!==t.completion.insertText);n.set(l),i.set(!VB.L.equals(t.editInsertEnd,t.editReplaceEnd)),r.set(Boolean(t.provider.resolveCompletionItem)||Boolean(t.completion.documentation)||t.completion.detail!==t.completion.label)}))),s._toDispose.add(e.onDetailsKeyDown((function(e){e.toKeybinding().equals(new CB.QC(!0,!1,!1,!1,33))||dz.dz&&e.toKeybinding().equals(new CB.QC(!1,!1,!1,!0,33))?e.stopPropagation():e.toKeybinding().isModifierKey()||s.editor.focus()}))),e}))),this._overtypingCapturer=this._toDispose.add(new zB.Ue((function(){return s._toDispose.add(new R3(s.editor,s.model))}))),this._alternatives=this._toDispose.add(new zB.Ue((function(){return s._toDispose.add(new l2(s.editor,s._contextKeyService))}))),this._toDispose.add(o.createInstance(O3,t)),this._toDispose.add(this.model.onDidTrigger((function(e){s.widget.value.showTriggered(e.auto,e.shy?250:50),s._lineSuffix.value=new j3(s.editor.getModel(),e.position)}))),this._toDispose.add(this.model.onDidSuggest((function(e){if(!e.shy){var t=s._memoryService.select(s.editor.getModel(),s.editor.getPosition(),e.completionModel.items);s.widget.value.showSuggestions(e.completionModel,t,e.isFrozen,e.auto)}}))),this._toDispose.add(this.model.onDidCancel((function(e){e.retrigger||s.widget.value.hideWidget()}))),this._toDispose.add(this.editor.onDidBlurEditorWidget((function(){F3||(s.model.cancel(),s.model.clear())})));var l=y1.AcceptSuggestionsOnEnter.bindTo(r),c=function(){var e=s.editor.getOption(1);l.set("on"===e||"smart"===e)};this._toDispose.add(this.editor.onDidChangeConfiguration((function(){return c()}))),c()}return(0,J.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 Lz.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=Tz.ZF.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",o.completion.additionalTextEdits.map((function(e){return Yq.h.replace(YB.e.lift(e.range),e.text)}))),l.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!o.isResolved){var c,d=new m1.G(!0),h=i.onDidChangeContent((function(e){if(e.isFlush)return s.cancel(),void h.dispose();var t,n=(0,Na.Z)(e.changes);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=YB.e.getEndPosition(i.range);c&&!VB.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 VB.L.isBefore(c,YB.e.getStartPosition(e.range))})))return!1;p&&n.editor.pushUndoStop();var e=Tz.ZF.capture(n.editor);return n.editor.executeEdits("suggestController.additionalTextEdits.async",o.completion.additionalTextEdits.map((function(e){return Yq.h.replace(YB.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=v1.escape(v)),Q1.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===B3.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,Ct.Z)(o.completion.command.arguments?(0,Ct.Z)(o.completion.command.arguments):[]))).catch(LB.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,oV.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,SB.Of)(e.completion.additionalTextEdits)){var t=yB.N("aria.alert.snippet","Accepting '{0}' made {1} additional edits",e.textLabel,e.completion.additionalTextEdits.length);(0,IB.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)};_W.ju.once(this.model.onDidTrigger)((function(e){var n=[];_W.ju.any(t.model.onDidTrigger,t.model.onDidCancel)((function(){(0,WB.B9)(n),i()}),void 0,n),t.model.onDidSuggest((function(e){var r=e.completionModel;if((0,WB.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}();H3.ID="editor.contrib.suggestController",H3=P3([Z3(1,a2),Z3(2,jz.H),Z3(3,kB.i6),Z3(4,oW.TG),Z3(5,P0.VZ)],H3);var B3=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:n.id,label:yB.N("suggest.trigger.label","Trigger Suggest"),alias:"Trigger Suggest",precondition:kB.Ao.and(bB.u.writable,bB.u.hasCompletionItemProvider),kbOpts:{kbExpr:bB.u.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=H3.get(t);n&&n.triggerSuggest()}}]),n}(_B.R6);B3.id="editor.action.triggerSuggest",(0,_B._K)(H3.ID,H3),(0,_B.Qr)(B3);var z3=190,W3=_B._l.bindToContribution(H3.get);(0,_B.fK)(new W3({id:"acceptSelectedSuggestion",precondition:y1.Visible,handler:function(e){e.acceptSelectedSuggestion(!0,!1)}})),XK.W.registerKeybindingRule({id:"acceptSelectedSuggestion",when:kB.Ao.and(y1.Visible,bB.u.textInputFocus),primary:2,weight:z3}),XK.W.registerKeybindingRule({id:"acceptSelectedSuggestion",when:kB.Ao.and(y1.Visible,bB.u.textInputFocus,y1.AcceptSuggestionsOnEnter,y1.MakesTextEdit),primary:3,weight:z3}),QB.BH.appendMenuItem(b1,{command:{id:"acceptSelectedSuggestion",title:yB.N("accept.insert","Insert")},group:"left",order:1,when:y1.HasInsertAndReplaceRange.toNegated()}),QB.BH.appendMenuItem(b1,{command:{id:"acceptSelectedSuggestion",title:yB.N("accept.insert","Insert")},group:"left",order:1,when:kB.Ao.and(y1.HasInsertAndReplaceRange,y1.InsertMode.isEqualTo("insert"))}),QB.BH.appendMenuItem(b1,{command:{id:"acceptSelectedSuggestion",title:yB.N("accept.replace","Replace")},group:"left",order:1,when:kB.Ao.and(y1.HasInsertAndReplaceRange,y1.InsertMode.isEqualTo("replace"))}),(0,_B.fK)(new W3({id:"acceptAlternativeSelectedSuggestion",precondition:kB.Ao.and(y1.Visible,bB.u.textInputFocus),kbOpts:{weight:z3,kbExpr:bB.u.textInputFocus,primary:1027,secondary:[1026]},handler:function(e){e.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:b1,group:"left",order:2,when:kB.Ao.and(y1.HasInsertAndReplaceRange,y1.InsertMode.isEqualTo("insert")),title:yB.N("accept.replace","Replace")},{menuId:b1,group:"left",order:2,when:kB.Ao.and(y1.HasInsertAndReplaceRange,y1.InsertMode.isEqualTo("replace")),title:yB.N("accept.insert","Insert")}]})),jz.P.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion"),(0,_B.fK)(new W3({id:"hideSuggestWidget",precondition:y1.Visible,handler:function(e){return e.cancelSuggestWidget()},kbOpts:{weight:z3,kbExpr:bB.u.textInputFocus,primary:9,secondary:[1033]}})),(0,_B.fK)(new W3({id:"selectNextSuggestion",precondition:kB.Ao.and(y1.Visible,y1.MultipleSuggestions),handler:function(e){return e.selectNextSuggestion()},kbOpts:{weight:z3,kbExpr:bB.u.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),(0,_B.fK)(new W3({id:"selectNextPageSuggestion",precondition:kB.Ao.and(y1.Visible,y1.MultipleSuggestions),handler:function(e){return e.selectNextPageSuggestion()},kbOpts:{weight:z3,kbExpr:bB.u.textInputFocus,primary:12,secondary:[2060]}})),(0,_B.fK)(new W3({id:"selectLastSuggestion",precondition:kB.Ao.and(y1.Visible,y1.MultipleSuggestions),handler:function(e){return e.selectLastSuggestion()}})),(0,_B.fK)(new W3({id:"selectPrevSuggestion",precondition:kB.Ao.and(y1.Visible,y1.MultipleSuggestions),handler:function(e){return e.selectPrevSuggestion()},kbOpts:{weight:z3,kbExpr:bB.u.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),(0,_B.fK)(new W3({id:"selectPrevPageSuggestion",precondition:kB.Ao.and(y1.Visible,y1.MultipleSuggestions),handler:function(e){return e.selectPrevPageSuggestion()},kbOpts:{weight:z3,kbExpr:bB.u.textInputFocus,primary:11,secondary:[2059]}})),(0,_B.fK)(new W3({id:"selectFirstSuggestion",precondition:kB.Ao.and(y1.Visible,y1.MultipleSuggestions),handler:function(e){return e.selectFirstSuggestion()}})),(0,_B.fK)(new W3({id:"toggleSuggestionDetails",precondition:y1.Visible,handler:function(e){return e.toggleSuggestionDetails()},kbOpts:{weight:z3,kbExpr:bB.u.textInputFocus,primary:2058,mac:{primary:266}},menuOpts:[{menuId:b1,group:"right",order:1,when:kB.Ao.and(y1.DetailsVisible,y1.CanResolve),title:yB.N("detail.more","show less")},{menuId:b1,group:"right",order:1,when:kB.Ao.and(y1.DetailsVisible.toNegated(),y1.CanResolve),title:yB.N("detail.less","show more")}]})),(0,_B.fK)(new W3({id:"toggleExplainMode",precondition:y1.Visible,handler:function(e){return e.toggleExplainMode()},kbOpts:{weight:100,primary:2133}})),(0,_B.fK)(new W3({id:"toggleSuggestionFocus",precondition:y1.Visible,handler:function(e){return e.toggleSuggestionFocus()},kbOpts:{weight:z3,kbExpr:bB.u.textInputFocus,primary:2570,mac:{primary:778}}})),(0,_B.fK)(new W3({id:"insertBestCompletion",precondition:kB.Ao.and(bB.u.textInputFocus,kB.Ao.equals("config.editor.tabCompletion","on"),O3.AtEnd,y1.Visible.toNegated(),l2.OtherSuggestions.toNegated(),Q1.InSnippetMode.toNegated()),handler:function(e,t){e.triggerSuggestAndAcceptBest((0,oV.Kn)(t)?Object.assign({fallback:"tab"},t):{fallback:"tab"})},kbOpts:{weight:z3,primary:2}})),(0,_B.fK)(new W3({id:"insertNextSuggestion",precondition:kB.Ao.and(bB.u.textInputFocus,kB.Ao.equals("config.editor.tabCompletion","on"),l2.OtherSuggestions,y1.Visible.toNegated(),Q1.InSnippetMode.toNegated()),handler:function(e){return e.acceptNextSuggestion()},kbOpts:{weight:z3,kbExpr:bB.u.textInputFocus,primary:2}})),(0,_B.fK)(new W3({id:"insertPrevSuggestion",precondition:kB.Ao.and(bB.u.textInputFocus,kB.Ao.equals("config.editor.tabCompletion","on"),l2.OtherSuggestions,y1.Visible.toNegated(),Q1.InSnippetMode.toNegated()),handler:function(e){return e.acceptPrevSuggestion()},kbOpts:{weight:z3,kbExpr:bB.u.textInputFocus,primary:1026}})),(0,_B.Qr)(function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.resetSuggestSize",label:yB.N("suggest.reset.label","Reset Suggest Widget Size"),alias:"Reset Suggest Widget Size",precondition:void 0})}return(0,J.Z)(n,[{key:"run",value:function(e,t){H3.get(t).resetWidgetSize()}}]),n}(_B.R6));var V3=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.forceRetokenize",label:yB.N("forceRetokenize","Developer: Force Retokenize"),alias:"Developer: Force Retokenize",precondition:void 0})}return(0,J.Z)(n,[{key:"run",value:function(e,t){if(t.hasModel()){var n=t.getModel();n.resetTokenization();var i=new m1.G(!0);n.forceTokenization(n.getLineCount()),i.stop(),console.log("tokenization took ".concat(i.elapsed()))}}}]),n}(_B.R6);(0,_B.Qr)(V3);var Y3=n(32995),U3=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:n.ID,label:yB.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,J.Z)(n,[{key:"run",value:function(e,t){var n=!Y3.nG.getTabFocusMode();Y3.nG.setTabFocusMode(n),n?(0,IB.Z9)(yB.N("toggle.tabMovesFocus.on","Pressing Tab will now move focus to the next focusable element")):(0,IB.Z9)(yB.N("toggle.tabMovesFocus.off","Pressing Tab will now insert the tab character"))}}]),n}(_B.R6);U3.ID="editor.action.toggleTabFocusMode",(0,_B.Qr)(U3);var K3=n(34782),q3=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},G3=function(e,t){return function(n,i){t(n,i,e)}},$3=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},Q3="ignoreUnusualLineTerminators";function X3(e,t,n){e.setModelProperty(t.uri,Q3,n)}function J3(e,t){return e.getModelProperty(t.uri,Q3)}var e5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o;return(0,X.Z)(this,n),(o=t.call(this))._editor=e,o._dialogService=i,o._codeEditorService=r,o._config=o._editor.getOption(110),o._register(o._editor.onDidChangeConfiguration((function(e){e.hasChanged(110)&&(o._config=o._editor.getOption(110),o._checkForUnusualLineTerminators())}))),o._register(o._editor.onDidChangeModel((function(){o._checkForUnusualLineTerminators()}))),o._register(o._editor.onDidChangeModelContent((function(e){e.isUndoing||o._checkForUnusualLineTerminators()}))),o}return(0,J.Z)(n,[{key:"_checkForUnusualLineTerminators",value:function(){return $3(this,void 0,void 0,fn().mark((function e(){var t;return fn().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!==J3(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:yB.N("unusualLineTerminators.title","Unusual Line Terminators"),message:yB.N("unusualLineTerminators.message","Detected unusual line terminators"),detail:yB.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:yB.N("unusualLineTerminators.fix","Fix this file"),secondaryButton:yB.N("unusualLineTerminators.ignore","Ignore problem for this file")});case 17:if(e.sent.confirmed){e.next=21;break}return X3(this._codeEditorService,t,!0),e.abrupt("return");case 21:t.removeUnusualLineTerminators(this._editor.getSelections());case 22:case"end":return e.stop()}}),e,this)})))}}]),n}(WB.JT);e5.ID="editor.contrib.unusualLineTerminatorsDetector",e5=q3([G3(1,K3.S),G3(2,fz.$)],e5),(0,_B._K)(e5.ID,e5);var t5=n(93445),n5=n(77993),i5=n(7845),r5=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},o5=function(e,t){return function(n,i){t(n,i,e)}},a5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a;return(0,X.Z)(this,n),(a=t.call(this))._modelService=i,a._themeService=r,a._configurationService=o,a._editor=e,a._tokenizeViewport=new zB.pY((function(){return a._tokenizeViewportNow()}),100),a._outstandingRequests=[],a._register(a._editor.onDidScrollChange((function(){a._tokenizeViewport.schedule()}))),a._register(a._editor.onDidChangeModel((function(){a._cancelAll(),a._tokenizeViewport.schedule()}))),a._register(a._editor.onDidChangeModelContent((function(e){a._cancelAll(),a._tokenizeViewport.schedule()}))),a._register(Iz.K7.onDidChange((function(){a._cancelAll(),a._tokenizeViewport.schedule()}))),a._register(a._configurationService.onDidChangeConfiguration((function(e){e.affectsConfiguration(n5.e3)&&(a._cancelAll(),a._tokenizeViewport.schedule())}))),a._register(a._themeService.onDidColorThemeChange((function(){a._cancelAll(),a._tokenizeViewport.schedule()}))),a}return(0,J.Z)(n,[{key:"_cancelAll",value:function(){var e,t=(0,Na.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,n5.tw)(t,this._themeService,this._configurationService)){var n=(0,i5.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,zB.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,t5.h)(n,i,e.getLanguageIdentifier()))})).then((function(){return r._removeOutstandingRequest(a)}),(function(){return r._removeOutstandingRequest(a)})),a}}]),n}(WB.JT);a5.ID="editor.contrib.viewportSemanticTokens",a5=r5([o5(1,Oz.q),o5(2,$B.XE),o5(3,IV.Ui)],a5),(0,_B._K)(a5.ID,a5);var s5=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},u5=function(e,t){return function(n,i){t(n,i,e)}},l5=(0,GB.P6)("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hc:null},yB.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),c5=(0,GB.P6)("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hc:null},yB.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),d5=(0,GB.P6)("editor.wordHighlightBorder",{light:null,dark:null,hc:GB.xL},yB.N("wordHighlightBorder","Border color of a symbol during read-access, like reading a variable.")),h5=(0,GB.P6)("editor.wordHighlightStrongBorder",{light:null,dark:null,hc:GB.xL},yB.N("wordHighlightStrongBorder","Border color of a symbol during write-access, like writing to a variable.")),f5=(0,GB.P6)("editorOverviewRuler.wordHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hc:"#A0A0A0CC"},yB.N("overviewRulerWordHighlightForeground","Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),p5=(0,GB.P6)("editorOverviewRuler.wordHighlightStrongForeground",{dark:"#C0A0C0CC",light:"#C0A0C0CC",hc:"#C0A0C0CC"},yB.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),g5=new kB.uy("hasWordHighlights",!1);function v5(e,t,n){var i=Iz.vH.ordered(e);return(0,zB.Ps)(i.map((function(i){return function(){return Promise.resolve(i.provideDocumentHighlights(e,t,n)).then(void 0,LB.Cp)}})),SB.Of)}var m5=function(){function e(t,n,i){var r=this;(0,X.Z)(this,e),this._wordRange=this._getCurrentWordRange(t,n),this.result=(0,zB.PG)((function(e){return r._compute(t,n,i,e)}))}return(0,J.Z)(e,[{key:"_getCurrentWordRange",value:function(e,t){var n=e.getWordAtPosition(t.getPosition());return n?new YB.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}(),_5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"_compute",value:function(e,t,n,i){return v5(e,t.getPosition(),i).then((function(e){return e||[]}))}}]),n}(m5),y5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o;return(0,X.Z)(this,n),(o=t.call(this,e,i,r))._selectionIsEmpty=i.isEmpty(),o}return(0,J.Z)(n,[{key:"_compute",value:function(e,t,n,i){return(0,zB.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:Iz.MY.Text}}))}))}},{key:"isValid",value:function(e,t,i){var r=t.isEmpty();return this._selectionIsEmpty===r&&(0,Qz.Z)((0,Xz.Z)(n.prototype),"isValid",this).call(this,e,t,i)}}]),n}(m5);(0,_B.sb)("_executeDocumentHighlights",(function(e,t){return v5(e,t,Lz.T.None)}));var b5=function(){function e(t,n){var i=this;(0,X.Z)(this,e),this.toUnhook=new WB.SL,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=[],this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=t,this._hasWordHighlights=g5.bindTo(n),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(68),this.model=this.editor.getModel(),this.toUnhook.add(t.onDidChangeCursorPosition((function(e){i._ignorePositionChangeEvent||i.occurrencesHighlight&&i._onPositionChanged(e)}))),this.toUnhook.add(t.onDidChangeModelContent((function(e){i._stopAll()}))),this.toUnhook.add(t.onDidChangeConfiguration((function(e){var t=i.editor.getOption(68);i.occurrencesHighlight!==t&&(i.occurrencesHighlight=t,i._stopAll())}))),this._decorationIds=[],this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1}return(0,J.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 SB.kX(this._decorationIds.map((function(t){return e.model.getDecorationRange(t)})).sort(YB.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,IB.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,IB.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 Iz.vH.has(e)?new _5(e,t,n):new y5(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())}),LB.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,Na.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===Iz.MY.Write?this._WRITE_OPTIONS:e===Iz.MY.Text?this._TEXT_OPTIONS:this._REGULAR_OPTIONS}}]),e}();b5._WRITE_OPTIONS=KB.qx.register({stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:(0,$B.EN)(p5),position:UB.sh.Center}}),b5._TEXT_OPTIONS=KB.qx.register({stickiness:1,className:"selectionHighlight",overviewRuler:{color:(0,$B.EN)(GB.SP),position:UB.sh.Center}}),b5._REGULAR_OPTIONS=KB.qx.register({stickiness:1,className:"wordHighlight",overviewRuler:{color:(0,$B.EN)(f5),position:UB.sh.Center}});var w5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;(0,X.Z)(this,n),(r=t.call(this)).wordHighlighter=null;var o=function(){e.hasModel()&&(r.wordHighlighter=new b5(e,i))};return r._register(e.onDidChangeModel((function(e){r.wordHighlighter&&(r.wordHighlighter.dispose(),r.wordHighlighter=null),o()}))),o(),r}return(0,J.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,Qz.Z)((0,Xz.Z)(n.prototype),"dispose",this).call(this)}}],[{key:"get",value:function(e){return e.getContribution(n.ID)}}]),n}(WB.JT);w5.ID="editor.contrib.wordHighlighter",w5=s5([u5(1,kB.i6)],w5);var C5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this,i))._isNext=e,r}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=w5.get(t);n&&(this._isNext?n.moveNext():n.moveBack())}}]),n}(_B.R6),k5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!0,{id:"editor.action.wordHighlight.next",label:yB.N("wordHighlight.next.label","Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:g5,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:65,weight:100}})}return(0,J.Z)(n)}(C5),S5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,!1,{id:"editor.action.wordHighlight.prev",label:yB.N("wordHighlight.previous.label","Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:g5,kbOpts:{kbExpr:bB.u.editorTextFocus,primary:1089,weight:100}})}return(0,J.Z)(n)}(C5),x5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.wordHighlight.trigger",label:yB.N("wordHighlight.trigger.label","Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:g5.toNegated(),kbOpts:{kbExpr:bB.u.editorTextFocus,primary:0,weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e,t,n){var i=w5.get(t);i&&i.restoreViewState(!0)}}]),n}(_B.R6);(0,_B._K)(w5.ID,w5),(0,_B.Qr)(k5),(0,_B.Qr)(S5),(0,_B.Qr)(x5),(0,$B.Ic)((function(e,t){var n=e.getColor(GB.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(l5);i&&t.addRule(".monaco-editor .wordHighlight { background-color: ".concat(i,"; }"));var r=e.getColor(c5);r&&t.addRule(".monaco-editor .wordHighlightStrong { background-color: ".concat(r,"; }"));var o=e.getColor(GB.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(d5);a&&t.addRule(".monaco-editor .wordHighlight { border: 1px ".concat("hc"===e.type?"dashed":"solid"," ").concat(a,"; box-sizing: border-box; }"));var s=e.getColor(h5);s&&t.addRule(".monaco-editor .wordHighlightStrong { border: 1px ".concat("hc"===e.type?"dashed":"solid"," ").concat(s,"; box-sizing: border-box; }"))}));var L5=n(16274),E5=n(86441),D5=n(20937),N5=n(76556),M5=n(49357),T5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this,e))._inSelectionMode=e.inSelectionMode,i._wordNavigationType=e.wordNavigationType,i}return(0,J.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=this;if(t.hasModel()){var r=(0,D5.u)(t.getOption(113)),o=t.getModel(),a=t.getSelections().map((function(e){var t=new VB.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 L5.Vi.fromModelSelection(e)}))),1===a.length){var s=new VB.L(a[0].positionLineNumber,a[0].positionColumn);t.revealPosition(s,0)}}}},{key:"_moveTo",value:function(e,t,n){return n?new wB.Y(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new wB.Y(t.lineNumber,t.column,t.lineNumber,t.column)}}]),n}(_B._l),I5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"_move",value:function(e,t,n,i){return E5.w.moveWordLeft(e,t,n,i)}}]),n}(T5),O5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"_move",value:function(e,t,n,i){return E5.w.moveWordRight(e,t,n,i)}}]),n}(T5),A5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}return(0,J.Z)(n)}(I5),R5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}return(0,J.Z)(n)}(I5),P5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:kB.Ao.and(bB.u.textInputFocus,null===(e=kB.Ao.and(oY.U,M5.c))||void 0===e?void 0:e.negate()),primary:2063,mac:{primary:527},weight:100}})}return(0,J.Z)(n)}(I5),Z5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}return(0,J.Z)(n)}(I5),F5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}return(0,J.Z)(n)}(I5),j5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:kB.Ao.and(bB.u.textInputFocus,null===(e=kB.Ao.and(oY.U,M5.c))||void 0===e?void 0:e.negate()),primary:3087,mac:{primary:1551},weight:100}})}return(0,J.Z)(n)}(I5),H5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}return(0,J.Z)(n,[{key:"_move",value:function(e,t,i,r){return(0,Qz.Z)((0,Xz.Z)(n.prototype),"_move",this).call(this,(0,D5.u)(N5.BH.wordSeparators.defaultValue),t,i,r)}}]),n}(I5),B5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}return(0,J.Z)(n,[{key:"_move",value:function(e,t,i,r){return(0,Qz.Z)((0,Xz.Z)(n.prototype),"_move",this).call(this,(0,D5.u)(N5.BH.wordSeparators.defaultValue),t,i,r)}}]),n}(I5),z5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}return(0,J.Z)(n)}(O5),W5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:kB.Ao.and(bB.u.textInputFocus,null===(e=kB.Ao.and(oY.U,M5.c))||void 0===e?void 0:e.negate()),primary:2065,mac:{primary:529},weight:100}})}return(0,J.Z)(n)}(O5),V5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}return(0,J.Z)(n)}(O5),Y5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}return(0,J.Z)(n)}(O5),U5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:kB.Ao.and(bB.u.textInputFocus,null===(e=kB.Ao.and(oY.U,M5.c))||void 0===e?void 0:e.negate()),primary:3089,mac:{primary:1553},weight:100}})}return(0,J.Z)(n)}(O5),K5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}return(0,J.Z)(n)}(O5),q5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}return(0,J.Z)(n,[{key:"_move",value:function(e,t,i,r){return(0,Qz.Z)((0,Xz.Z)(n.prototype),"_move",this).call(this,(0,D5.u)(N5.BH.wordSeparators.defaultValue),t,i,r)}}]),n}(O5),G5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}return(0,J.Z)(n,[{key:"_move",value:function(e,t,i,r){return(0,Qz.Z)((0,Xz.Z)(n.prototype),"_move",this).call(this,(0,D5.u)(N5.BH.wordSeparators.defaultValue),t,i,r)}}]),n}(O5),$5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this,e))._whitespaceHeuristics=e.whitespaceHeuristics,i._wordNavigationType=e.wordNavigationType,i}return(0,J.Z)(n,[{key:"runEditorCommand",value:function(e,t,n){var i=this;if(t.hasModel()){var r=(0,D5.u)(t.getOption(113)),o=t.getModel(),a=t.getSelections(),s=t.getOption(5),u=t.getOption(8),l=Uq.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 sz.T4(n,"")}));t.pushUndoStop(),t.executeCommands(this.id,d),t.pushUndoStop()}}}]),n}(_B._l),Q5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"_delete",value:function(e,t){var n=E5.w.deleteWordLeft(e,t);return n||new YB.e(1,1,1,1)}}]),n}($5),X5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"_delete",value:function(e,t){var n=E5.w.deleteWordRight(e,t);if(n)return n;var i=e.model.getLineCount(),r=e.model.getLineMaxColumn(i);return new YB.e(i,r,i,r)}}]),n}($5),J5=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:bB.u.writable})}return(0,J.Z)(n)}(Q5),e4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:bB.u.writable})}return(0,J.Z)(n)}(Q5),t4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}return(0,J.Z)(n)}(Q5),n4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:bB.u.writable})}return(0,J.Z)(n)}(X5),i4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:bB.u.writable})}return(0,J.Z)(n)}(X5),r4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}return(0,J.Z)(n)}(X5),o4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"deleteInsideWord",precondition:bB.u.writable,label:yB.N("deleteInsideWord","Delete Word"),alias:"Delete Word"})}return(0,J.Z)(n,[{key:"run",value:function(e,t,n){if(t.hasModel()){var i=(0,D5.u)(t.getOption(113)),r=t.getModel(),o=t.getSelections().map((function(e){var t=E5.w.deleteInsideWord(i,r,e);return new sz.T4(t,"")}));t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}}]),n}(_B.R6);(0,_B.fK)(new A5),(0,_B.fK)(new R5),(0,_B.fK)(new P5),(0,_B.fK)(new Z5),(0,_B.fK)(new F5),(0,_B.fK)(new j5),(0,_B.fK)(new z5),(0,_B.fK)(new W5),(0,_B.fK)(new V5),(0,_B.fK)(new Y5),(0,_B.fK)(new U5),(0,_B.fK)(new K5),(0,_B.fK)(new H5),(0,_B.fK)(new B5),(0,_B.fK)(new q5),(0,_B.fK)(new G5),(0,_B.fK)(new J5),(0,_B.fK)(new e4),(0,_B.fK)(new t4),(0,_B.fK)(new n4),(0,_B.fK)(new i4),(0,_B.fK)(new r4),(0,_B.Qr)(o4);var a4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.textInputFocus,primary:0,mac:{primary:769},weight:100}})}return(0,J.Z)(n,[{key:"_delete",value:function(e,t){var n=E5.L.deleteWordPartLeft(e);return n||new YB.e(1,1,1,1)}}]),n}($5),s4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:bB.u.writable,kbOpts:{kbExpr:bB.u.textInputFocus,primary:0,mac:{primary:788},weight:100}})}return(0,J.Z)(n,[{key:"_delete",value:function(e,t){var n=E5.L.deleteWordPartRight(e);if(n)return n;var i=e.model.getLineCount(),r=e.model.getLineMaxColumn(i);return new YB.e(i,r,i,r)}}]),n}($5),u4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"_move",value:function(e,t,n,i){return E5.L.moveWordPartLeft(e,t,n)}}]),n}(T5),l4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:bB.u.textInputFocus,primary:0,mac:{primary:783},weight:100}})}return(0,J.Z)(n)}(u4);jz.P.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");var c4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:bB.u.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}return(0,J.Z)(n)}(u4);jz.P.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");var d4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.Z)(n,[{key:"_move",value:function(e,t,n,i){return E5.L.moveWordPartRight(e,t,n)}}]),n}(T5),h4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:bB.u.textInputFocus,primary:0,mac:{primary:785},weight:100}})}return(0,J.Z)(n)}(d4),f4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:bB.u.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}return(0,J.Z)(n)}(d4);(0,_B.fK)(new a4),(0,_B.fK)(new s4),(0,_B.fK)(new l4),(0,_B.fK)(new c4),(0,_B.fK)(new h4),(0,_B.fK)(new f4);var p4=n(25741),g4=n(41149),v4=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},m4=function(e,t){return function(n,i){t(n,i,e)}},_4=new kB.uy("accessibilityHelpWidgetVisible",!1),y4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this))._editor=e,r._widget=r._register(i.createInstance(b4,r._editor)),r}return(0,J.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}(WB.JT);y4.ID="editor.contrib.accessibilityHelpController",y4=v4([m4(1,oW.TG)],y4);var b4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o){var a;return(0,X.Z)(this,n),(a=t.call(this))._contextKeyService=i,a._keybindingService=r,a._openerService=o,a._editor=e,a._isVisibleKey=_4.bindTo(a._contextKeyService),a._domNode=(0,g4.X)(document.createElement("div")),a._domNode.setClassName("accessibilityHelpWidget"),a._domNode.setDisplay("none"),a._domNode.setAttribute("role","dialog"),a._domNode.setAttribute("aria-hidden","true"),a._contentDomNode=(0,g4.X)(document.createElement("div")),a._contentDomNode.setAttribute("role","document"),a._domNode.appendChild(a._contentDomNode),a._isVisible=!1,a._register(a._editor.onDidLayoutChange((function(){a._isVisible&&a._layout()}))),a._register(aW.addStandardDisposableListener(a._contentDomNode.domNode,"keydown",(function(e){if(a._isVisible&&(e.equals(2083)&&((0,IB.Z9)(p4.Oe.emergencyConfOn),a._editor.updateOptions({accessibilitySupport:"on"}),aW.clearNode(a._contentDomNode.domNode),a._buildContent(),a._contentDomNode.domNode.focus(),e.preventDefault(),e.stopPropagation()),e.equals(2086))){(0,IB.Z9)(p4.Oe.openingDocs);var t=a._editor.getRawOptions().accessibilityHelpUrl;"undefined"===typeof t&&(t="https://go.microsoft.com/fwlink/?linkid=852450"),a._openerService.open(Mz.o.parse(t)),e.preventDefault(),e.stopPropagation()}}))),a.onblur(a._contentDomNode.domNode,(function(){a.hide()})),a._editor.addOverlayWidget((0,Br.Z)(a)),a}return(0,J.Z)(n,[{key:"dispose",value:function(){this._editor.removeOverlayWidget(this),(0,Qz.Z)((0,Xz.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?Dz.WU(t,i.getAriaLabel()):Dz.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?Dz.WU(p4.Oe.singleSelectionRange,e[0].positionLineNumber,e[0].positionColumn,t):Dz.WU(p4.Oe.singleSelection,e[0].positionLineNumber,e[0].positionColumn):t?Dz.WU(p4.Oe.multiSelectionRange,e.length,t):e.length>0?Dz.WU(p4.Oe.multiSelection,e.length):"":p4.Oe.noSelection}(t,n);e.get(51)?e.get(77)?r+=p4.Oe.readonlyDiffEditor:r+=p4.Oe.editableDiffEditor:e.get(77)?r+=p4.Oe.readonlyEditor:r+=p4.Oe.editableEditor;var o=dz.dz?p4.Oe.changeConfigToOnMac:p4.Oe.changeConfigToOnWinLinux;switch(e.get(2)){case 0:r+="\n\n - "+o;break;case 2:r+="\n\n - "+p4.Oe.auto_on;break;case 1:r+="\n\n - "+p4.Oe.auto_off,r+=" "+o}e.get(126)?r+="\n\n - "+this._descriptionForCommand(U3.ID,p4.Oe.tabFocusModeOnMsg,p4.Oe.tabFocusModeOnMsgNoKb):r+="\n\n - "+this._descriptionForCommand(U3.ID,p4.Oe.tabFocusModeOffMsg,p4.Oe.tabFocusModeOffMsgNoKb),r+="\n\n - "+(dz.dz?p4.Oe.openDocMac:p4.Oe.openDocWinLinux),r+="\n\n"+p4.Oe.outroMsg,this._contentDomNode.domNode.appendChild((0,PU.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,aW.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}(FV.$);b4.ID="editor.contrib.accessibilityHelpWidget",b4.WIDTH=500,b4.HEIGHT=300,b4=v4([m4(1,kB.i6),m4(2,lW.d),m4(3,XV.v4)],b4);var w4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.showAccessibilityHelp",label:p4.Oe.showAccessibilityHelpAction,alias:"Show Accessibility Help",precondition:void 0,kbOpts:{primary:571,weight:100,linux:{primary:1595,secondary:[571]}}})}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=y4.get(t);n&&n.show()}}]),n}(_B.R6);(0,_B._K)(y4.ID,y4),(0,_B.Qr)(w4);var C4=_B._l.bindToContribution(y4.get);(0,_B.fK)(new C4({id:"closeAccessibilityHelp",precondition:_4,handler:function(e){return e.hide()},kbOpts:{weight:200,kbExpr:bB.u.focus,primary:9,secondary:[1033]}})),(0,$B.Ic)((function(e,t){var n=e.getColor(GB.D0);n&&t.addRule(".monaco-editor .accessibilityHelpWidget { background-color: ".concat(n,"; }"));var i=e.getColor(GB.Hf);i&&t.addRule(".monaco-editor .accessibilityHelpWidget { color: ".concat(i,"; }"));var r=e.getColor(GB.rh);r&&t.addRule(".monaco-editor .accessibilityHelpWidget { box-shadow: 0 2px 8px ".concat(r,"; }"));var o=e.getColor(GB.lR);o&&t.addRule(".monaco-editor .accessibilityHelpWidget { border: 2px solid ".concat(o,"; }"))}));var k4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this)).editor=e,i.widget=null,cz.zc&&(i._register(e.onDidChangeConfiguration((function(){return i.update()}))),i.update()),i}return(0,J.Z)(n,[{key:"update",value:function(){var e=!this.editor.getOption(77);!this.widget&&e?this.widget=new S4(this.editor):this.widget&&!e&&(this.widget.dispose(),this.widget=null)}},{key:"dispose",value:function(){(0,Qz.Z)((0,Xz.Z)(n.prototype),"dispose",this).call(this),this.widget&&(this.widget.dispose(),this.widget=null)}}]),n}(WB.JT);k4.ID="editor.contrib.iPadShowKeyboard";var S4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this)).editor=e,i._domNode=document.createElement("textarea"),i._domNode.className="iPadShowKeyboard",i._register(aW.addDisposableListener(i._domNode,"touchstart",(function(e){i.editor.focus()}))),i._register(aW.addDisposableListener(i._domNode,"focus",(function(e){i.editor.focus()}))),i.editor.addOverlayWidget((0,Br.Z)(i)),i}return(0,J.Z)(n,[{key:"dispose",value:function(){this.editor.removeOverlayWidget(this),(0,Qz.Z)((0,Xz.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}(WB.JT);S4.ID="editor.contrib.ShowKeyboardWidget",(0,_B._K)(k4.ID,k4);var x4=n(59401),L4=n(51342),E4=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},D4=function(e,t){return function(n,i){t(n,i,e)}},N4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r){var o;return(0,X.Z)(this,n),(o=t.call(this))._editor=e,o._modeService=r,o._widget=null,o._register(o._editor.onDidChangeModel((function(e){return o.stop()}))),o._register(o._editor.onDidChangeModelLanguage((function(e){return o.stop()}))),o._register(Iz.RW.onDidChange((function(e){return o.stop()}))),o._register(o._editor.onKeyUp((function(e){return 9===e.keyCode&&o.stop()}))),o}return(0,J.Z)(n,[{key:"dispose",value:function(){this.stop(),(0,Qz.Z)((0,Xz.Z)(n.prototype),"dispose",this).call(this)}},{key:"launch",value:function(){this._widget||this._editor.hasModel()&&(this._widget=new T4(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}(WB.JT);N4.ID="editor.contrib.inspectTokens",N4=E4([D4(1,L4.Z),D4(2,PV.h)],N4);var M4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.inspectTokens",label:p4.ug.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=N4.get(t);n&&n.launch()}}]),n}(_B.R6);var T4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r,o;return(0,X.Z)(this,n),(r=t.call(this)).allowEditorOverflow=!0,r._editor=e,r._modeService=i,r._model=r._editor.getModel(),r._domNode=document.createElement("div"),r._domNode.className="tokens-inspect-widget",r._tokenizationSupport=(o=r._model.getLanguageIdentifier(),Iz.RW.get(o.language)||{getInitialState:function(){return x4.nO},tokenize:function(e,t,n,i){return(0,x4.Ri)(o.language,e,n,i)},tokenize2:function(e,t,n,i){return(0,x4.mh)(o.id,e,n,i)}}),r._compute(r._editor.getPosition()),r._register(r._editor.onDidChangeCursorPosition((function(e){return r._compute(r._editor.getPosition())}))),r._editor.addContentWidget((0,Br.Z)(r)),r}return(0,J.Z)(n,[{key:"dispose",value:function(){this._editor.removeContentWidget(this),(0,Qz.Z)((0,Xz.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,aW.reset)(this._domNode,(0,aW.$)("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,aW.$)("span.tm-token-length",void 0,"".concat(u.length," ").concat(1===u.length?"char":"chars")))),(0,aW.append)(this._domNode,(0,aW.$)("hr.tokens-inspect-separator",{style:"clear:both"}));var d=1+(o<<1)<t.tokens2.length?this._decodeMetadata(t.tokens2[1+(o<<1)]):null;(0,aW.append)(this._domNode,(0,aW.$)("table.tm-metadata-table",void 0,(0,aW.$)("tbody",void 0,(0,aW.$)("tr",void 0,(0,aW.$)("td.tm-metadata-key",void 0,"language"),(0,aW.$)("td.tm-metadata-value",void 0,"".concat(d?d.languageIdentifier.language:"-?-"))),(0,aW.$)("tr",void 0,(0,aW.$)("td.tm-metadata-key",void 0,"token type"),(0,aW.$)("td.tm-metadata-value",void 0,"".concat(d?this._tokenTypeToString(d.tokenType):"-?-"))),(0,aW.$)("tr",void 0,(0,aW.$)("td.tm-metadata-key",void 0,"font style"),(0,aW.$)("td.tm-metadata-value",void 0,"".concat(d?this._fontStyleToString(d.fontStyle):"-?-"))),(0,aW.$)("tr",void 0,(0,aW.$)("td.tm-metadata-key",void 0,"foreground"),(0,aW.$)("td.tm-metadata-value",void 0,"".concat(d?MV.Il.Format.CSS.formatHex(d.foreground):"-?-"))),(0,aW.$)("tr",void 0,(0,aW.$)("td.tm-metadata-key",void 0,"background"),(0,aW.$)("td.tm-metadata-value",void 0,"".concat(d?MV.Il.Format.CSS.formatHex(d.background):"-?-")))))),(0,aW.append)(this._domNode,(0,aW.$)("hr.tokens-inspect-separator")),n<t.tokens1.length&&(0,aW.append)(this._domNode,(0,aW.$)("span.tm-token-type",void 0,t.tokens1[n].type)),this._editor.layoutContentWidget(this)}},{key:"_decodeMetadata",value:function(e){var t=Iz.RW.getColorMap(),n=Iz.NX.getLanguageId(e),i=Iz.NX.getTokenType(e),r=Iz.NX.getFontStyle(e),o=Iz.NX.getForeground(e),a=Iz.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}(WB.JT);T4._ID="editor.contrib.inspectTokensWidget",(0,_B._K)(N4.ID,N4),(0,_B.Qr)(M4),(0,$B.Ic)((function(e,t){var n=e.getColor(GB.CN);if(n){var i=e.type===Jz.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(GB.yJ);r&&t.addRule(".monaco-editor .tokens-inspect-widget { background-color: ".concat(r,"; }"));var o=e.getColor(GB.Sb);o&&t.addRule(".monaco-editor .tokens-inspect-widget { color: ".concat(o,"; }"))}));var I4=n(73921),O4=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},A4=function(e,t){return function(n,i){t(n,i,e)}},R4=function(){function e(t){(0,X.Z)(this,e),this.quickInputService=t,this.registry=Z0.B.as(I4.IP.Quickaccess)}return(0,J.Z)(e,[{key:"provide",value:function(t){var n=this,i=new WB.SL;i.add(t.onDidAccept((function(){var e=(0,ne.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,Ct.Z)(0===o.length?a:o):[{label:(0,yB.N)("globalCommands","global commands"),type:"separator"}].concat((0,Ct.Z)(a),[{label:(0,yB.N)("editorCommands","editor commands"),type:"separator"}],(0,Ct.Z)(o)),i}},{key:"getQuickAccessProviders",value:function(){var t,n=[],i=[],r=(0,Na.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,Na.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,yB.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}();R4.PREFIX="?",R4=O4([A4(0,SV.eJ)],R4),Z0.B.as(I4.IP.Quickaccess).registerQuickAccessProvider({ctor:R4,prefix:"",helpEntries:[{description:p4.ld.helpQuickAccessActionLabel,needsEditor:!0}]});var P4=function(){function e(t){(0,X.Z)(this,e),this.options=t,this.rangeHighlightDecorationId=void 0}return(0,J.Z)(e,[{key:"provide",value:function(e,t){var n,i=this,r=new WB.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 WB.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 WB.SL,r=this.activeTextEditorControl;if(r&&this.canProvideWithTextEditor(r)){var o={editor:r},a=(0,xK.Pi)(r);if(a){var s=(0,oV.f6)(r.saveViewState());i.add(a.onDidChangeCursorPosition((function(){s=(0,oV.f6)(r.saveViewState())}))),o.restoreViewState=function(){s&&r===n.activeTextEditorControl&&r.restoreViewState(s)},i.add((0,mV.I)(t.onCancellationRequested)((function(){var e;return null===(e=o.restoreViewState)||void 0===e?void 0:e.call(o)})))}i.add((0,WB.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,xK.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,$B.EN)(qB.m9),position:UB.sh.Full}}}],o=e.deltaDecorations(i,r),a=(0,ne.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}(),Z4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{canAcceptInBackground:!0})}return(0,J.Z)(n,[{key:"provideWithoutTextEditor",value:function(e){var t=(0,yB.N)("cannotRunGotoLine","Open a text editor first to go to a line.");return e.items=[{label:t}],e.ariaLabel=t,WB.JT.None}},{key:"provideWithTextEditor",value:function(e,t,i){var r=this,o=e.editor,a=new WB.SL;a.add(t.onDidAccept((function(n){var i=(0,ne.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,xK.Pi)(o);u&&(2===u.getOptions().get(56).renderType&&(u.updateOptions({lineNumbers:"on"}),a.add((0,WB.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,yB.N)("gotoLineColumnLabel","Go to line {0} and character {1}.",t,n):(0,yB.N)("gotoLineLabel","Go to line {0}.",t);var i=e.getPosition()||{lineNumber:1,column:1},r=this.lineCount(e);return r>1?(0,yB.N)("gotoLineLabelEmptyWithLimit","Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.",i.lineNumber,i.column,r):(0,yB.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}(P4);Z4.PREFIX=":";var F4=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},j4=function(e,t){return function(n,i){t(n,i,e)}},H4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this)).editorService=e,i.onDidActiveTextEditorControlChange=_W.ju.None,i}return(0,J.Z)(n,[{key:"activeTextEditorControl",get:function(){return(0,oV.f6)(this.editorService.getFocusedCodeEditor())}}]),n}(Z4);H4=F4([j4(0,fz.$)],H4),Z0.B.as(I4.IP.Quickaccess).registerQuickAccessProvider({ctor:H4,prefix:H4.PREFIX,helpEntries:[{description:p4.qq.gotoLineActionLabel,needsEditor:!0}]});var B4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.gotoLine",label:p4.qq.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:bB.u.focus,primary:2085,mac:{primary:293},weight:100}})}return(0,J.Z)(n,[{key:"run",value:function(e){e.get(SV.eJ).quickAccess.show(H4.PREFIX)}}]),n}(_B.R6);(0,_B.Qr)(B4);var z4=[void 0,[]];function W4(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,Na.Z)(t);try{for(s.s();!(r=s.n()).done;){var u=V4(e,r.value,n,i),l=(0,ne.Z)(u,2),c=l[0],d=l[1];if("number"!==typeof c)return z4;o+=c,a.push.apply(a,(0,Ct.Z)(d))}}catch(h){s.e(h)}finally{s.f()}return[o,Y4(a)]}(e,r.values,n,i):V4(e,t,n,i)}function V4(e,t,n,i){var r=(0,NK.EW)(t.original,t.originalLowercase,n,e,e.toLowerCase(),i,!0);return r?[r[0],(0,NK.mB)(r)]:z4}function Y4(e){var t,n=e.sort((function(e,t){return e.start-t.start})),i=[],r=void 0,o=(0,Na.Z)(n);try{for(o.s();!(t=o.n()).done;){var a=t.value;r&&U4(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 U4(e,t){return!(e.end<t.start)&&!(t.end<e.start)}var K4,q4=" ";function G4(e){"string"!==typeof e&&(e="");var t=e.toLowerCase(),n=$4(e),i=n.pathNormalized,r=n.normalized,o=n.normalizedLowercase,a=i.indexOf(M1.ir)>=0,s=void 0,u=e.split(q4);if(u.length>1){var l,c=(0,Na.Z)(u);try{for(c.s();!(l=c.n()).done;){var d=l.value,h=$4(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 $4(e){var t;t=dz.ED?e.replace(/\//g,M1.ir):e.replace(/\\/g,M1.ir);var n=(0,Dz.R1)(t).replace(/\s/g,"");return{pathNormalized:t,normalized:n,normalizedLowercase:n.toLowerCase()}}function Q4(e){return Array.isArray(e)?G4(e.map((function(e){return e.original})).join(q4)):G4(e.original)}var X4=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},J4=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Object.create(null);return(0,X.Z)(this,n),(e=t.call(this,i)).options=i,e.options.canAcceptInBackground=!0,e}return(0,J.Z)(n,[{key:"provideWithoutTextEditor",value:function(e){return this.provideLabelPick(e,(0,yB.N)("cannotRunGotoSymbolWithoutEditor","To go to a symbol, first open a text editor with symbol information.")),WB.JT.None}},{key:"provideWithTextEditor",value:function(e,t,n){var i=e.editor,r=this.getModel(i);return r?Iz.vJ.has(r)?this.doProvideWithEditorSymbols(e,r,t,n):this.doProvideWithoutEditorSymbols(e,r,t,n):WB.JT.None}},{key:"doProvideWithoutEditorSymbols",value:function(e,t,n,i){var r=this,o=new WB.SL;return this.provideLabelPick(n,(0,yB.N)("cannotRunGotoSymbolWithoutSymbolProvider","The active text editor does not provide symbol information.")),X4(r,void 0,void 0,fn().mark((function r(){return fn().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 X4(this,void 0,void 0,fn().mark((function n(){var i,r,o;return fn().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!Iz.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(Iz.vJ.onDidChange((function(){Iz.vJ.has(e)&&(o.dispose(),i(!0))}))),t.add((0,WB.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 WB.SL;s.add(i.onDidAccept((function(t){var n=(0,ne.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 X4(o,void 0,void 0,fn().mark((function e(){var t,o;return fn().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 Lz.A(r),i.busy=!0,e.prev=4,t=G4(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,yB.N)("noMatchingSymbolResults","No matching editor symbols")):this.provideLabelPick(i,(0,yB.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,ne.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 X4(this,void 0,void 0,fn().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,D,N,M,T,I,O,A,R,P,Z,F,j=this;return fn().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=Q4(t.values[0]),c=Q4(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,Dz.fy)(f.name),g="$(symbol-".concat(Iz.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=W4(g,Object.assign(Object.assign({},t),{values:void 0}),u,v),S=(0,ne.Z)(k,2),_=S[0],y=S[1],"number"===typeof _&&(C=!0)),"number"===typeof _){o.next=31;break}if(x=W4(g,l,u,v),L=(0,ne.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=W4(m,c),D=(0,ne.Z)(E,2),b=D[0],w=D[1]),"number"===typeof b){o.next=35;break}return o.abrupt("continue",38);case 35:"number"===typeof _&&(_+=b);case 36:N=f.tags&&f.tags.indexOf(1)>=0,d.push({index:h,kind:f.kind,score:_,label:g,ariaLabel:p,description:m,highlights:N?void 0:{label:y,description:w},range:{selection:YB.e.collapseToStart(f.selectionRange),decoration:f.range},strikethrough:N,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?bW.lA.splitHorizontal.classNames:bW.lA.splitVertical.classNames,tooltip:"right"===n?(0,yB.N)("openToSide","Open to the Side"):(0,yB.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){I=function(){A&&"number"===typeof O&&R>0&&(A.label=(0,Dz.WU)(t6[O]||e6,R))},O=void 0,A=void 0,R=0,P=(0,Na.Z)(M);try{for(P.s();!(Z=P.n()).done;)F=Z.value,O!==F.kind?(I(),O=F.kind,R=1,A={type:"separator"},T.push(A)):R++,T.push(F)}catch(H){P.e(H)}finally{P.f()}I()}else M.length>0&&(T=[{label:(0,yB.N)("symbols","symbols ({0})",d.length),type:"separator"}].concat((0,Ct.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=t6[e.kind]||e6,i=t6[t.kind]||e6,r=n.localeCompare(i);return 0===r?this.compareByScore(e,t):r}},{key:"getDocumentSymbols",value:function(e,t){return X4(this,void 0,void 0,fn().mark((function n(){var i;return fn().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,gX.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}(P4);J4.PREFIX="@",J4.SCOPE_PREFIX=":",J4.PREFIX_BY_CATEGORY="".concat(J4.PREFIX).concat(J4.SCOPE_PREFIX);var e6=(0,yB.N)("property","properties ({0})"),t6=(K4={},(0,wt.Z)(K4,5,(0,yB.N)("method","methods ({0})")),(0,wt.Z)(K4,11,(0,yB.N)("function","functions ({0})")),(0,wt.Z)(K4,8,(0,yB.N)("_constructor","constructors ({0})")),(0,wt.Z)(K4,12,(0,yB.N)("variable","variables ({0})")),(0,wt.Z)(K4,4,(0,yB.N)("class","classes ({0})")),(0,wt.Z)(K4,22,(0,yB.N)("struct","structs ({0})")),(0,wt.Z)(K4,23,(0,yB.N)("event","events ({0})")),(0,wt.Z)(K4,24,(0,yB.N)("operator","operators ({0})")),(0,wt.Z)(K4,10,(0,yB.N)("interface","interfaces ({0})")),(0,wt.Z)(K4,2,(0,yB.N)("namespace","namespaces ({0})")),(0,wt.Z)(K4,3,(0,yB.N)("package","packages ({0})")),(0,wt.Z)(K4,25,(0,yB.N)("typeParameter","type parameters ({0})")),(0,wt.Z)(K4,1,(0,yB.N)("modules","modules ({0})")),(0,wt.Z)(K4,6,(0,yB.N)("property","properties ({0})")),(0,wt.Z)(K4,9,(0,yB.N)("enum","enumerations ({0})")),(0,wt.Z)(K4,21,(0,yB.N)("enumMember","enumeration members ({0})")),(0,wt.Z)(K4,14,(0,yB.N)("string","strings ({0})")),(0,wt.Z)(K4,0,(0,yB.N)("file","files ({0})")),(0,wt.Z)(K4,17,(0,yB.N)("array","arrays ({0})")),(0,wt.Z)(K4,15,(0,yB.N)("number","numbers ({0})")),(0,wt.Z)(K4,16,(0,yB.N)("boolean","booleans ({0})")),(0,wt.Z)(K4,18,(0,yB.N)("object","objects ({0})")),(0,wt.Z)(K4,19,(0,yB.N)("key","keys ({0})")),(0,wt.Z)(K4,7,(0,yB.N)("field","fields ({0})")),(0,wt.Z)(K4,13,(0,yB.N)("constant","constants ({0})")),K4),n6=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},i6=function(e,t){return function(n,i){t(n,i,e)}},r6=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e){var i;return(0,X.Z)(this,n),(i=t.call(this)).editorService=e,i.onDidActiveTextEditorControlChange=_W.ju.None,i}return(0,J.Z)(n,[{key:"activeTextEditorControl",get:function(){return(0,oV.f6)(this.editorService.getFocusedCodeEditor())}}]),n}(J4);r6=n6([i6(0,fz.$)],r6),Z0.B.as(I4.IP.Quickaccess).registerQuickAccessProvider({ctor:r6,prefix:J4.PREFIX,helpEntries:[{description:p4.aq.quickOutlineActionLabel,prefix:J4.PREFIX,needsEditor:!0},{description:p4.aq.quickOutlineByCategoryActionLabel,prefix:J4.PREFIX_BY_CATEGORY,needsEditor:!0}]});var o6=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.quickOutline",label:p4.aq.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:bB.u.hasDocumentSymbolProvider,kbOpts:{kbExpr:bB.u.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}return(0,J.Z)(n,[{key:"run",value:function(e){e.get(SV.eJ).quickAccess.show(J4.PREFIX)}}]),n}(_B.R6);(0,_B.Qr)(o6);var a6,s6=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))};function u6(e){var t=e;return Array.isArray(t.items)}function l6(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"}(a6||(a6={}));var c6=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this)).prefix=e,r.options=i,r}return(0,J.Z)(n,[{key:"provide",value:function(e,t){var i,r=this,o=new WB.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 WB.XK),u=function(){return s6(r,void 0,void 0,fn().mark((function i(){var r,o,u,l,c,d,h,f,p=this;return fn().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:if(r=s.value=new WB.SL,null===a||void 0===a||a.dispose(!0),e.busy=!1,a=new Lz.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(u6(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(!l6(l)){i.next=18;break}return d=!1,h=!1,i.next=16,Promise.all([s6(p,void 0,void 0,fn().mark((function e(){return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,zB.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)}))),s6(p,void 0,void 0,fn().mark((function t(){var n,i,r,a,s,u,f;return fn().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,u6(l.picks)?(i=l.picks.items,r=l.picks.active):i=l.picks,s=void 0,u6(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,Ct.Z)(i),(0,Ct.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,ne.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 s6(r,void 0,void 0,fn().mark((function n(){var r,a,s,l,c,d,h;return fn().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===a6.NO_ACTION?17:n.t1===a6.CLOSE_PICKER?18:n.t1===a6.REFRESH_PICKER?20:n.t1===a6.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}(WB.JT);function d6(e,t){return t&&(e.stack||e.stacktrace)?yB.N("stackTrace.format","{0}: {1}",f6(e),h6(e.stack)||h6(e.stacktrace)):f6(e)}function h6(e){return Array.isArray(e)?e.join("\n"):e}function f6(e){return"string"===typeof e.code&&"number"===typeof e.errno&&"string"===typeof e.syscall?yB.N("nodeExceptionMessage","A system error occurred ({0})",e.message):e.message||yB.N("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}function p6(){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 yB.N("error.defaultMessage","An unknown error occurred. Please consult the log for more details.");if(Array.isArray(e)){var n=SB.kX(e),i=p6(n[0],t);return n.length>1?yB.N("error.moreErrors","{0} ({1} errors in total)",i,n.length):i}if(oV.HD(e))return e;if(e.detail){var r=e.detail;if(r.error)return d6(r.error,t);if(r.exception)return d6(r.exception,t)}return e.stack?d6(e,t):e.message?e.message:yB.N("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}c6.FAST_PICKS_RACE_DELAY=200;var g6=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},v6=function(e,t){return function(n,i){t(n,i,e)}},m6=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},_6=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o,a,s){var u;return(0,X.Z)(this,n),(u=t.call(this,n.PREFIX,e)).instantiationService=i,u.keybindingService=r,u.commandService=o,u.telemetryService=a,u.notificationService=s,u.commandsHistory=u._register(u.instantiationService.createInstance(y6)),u.options=e,u}return(0,J.Z)(n,[{key:"getPicks",value:function(e,t,i){return m6(this,void 0,void 0,fn().mark((function r(){var o,a,s,u,l,c,d,h,f,p,g,v,m,_,y,b,w=this;return fn().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,Na.Z)(o);try{for(s.s();!(u=s.n()).done;)l=u.value,c=(0,oV.f6)(n.WORD_FILTER(e,l.label)),d=l.commandAlias?(0,oV.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=fn().mark((function e(){var t,n,i;return fn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=a[b],n=w.keybindingService.lookupKeybinding(t.commandId),i=n?(0,yB.N)("commandPickAriaLabelWithKeybinding","{0}, {1}",t.label,n.getAriaLabel()):t.label,0===b&&w.commandsHistory.peek(t.commandId)&&(m.push({type:"separator",label:(0,yB.N)("recentlyUsed","recently used")}),_=!0),0!==b&&_&&!w.commandsHistory.peek(t.commandId)&&(m.push({type:"separator",label:(0,yB.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 m6(w,void 0,void 0,fn().mark((function e(){return fn().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,LB.VV)(e.t0)||this.notificationService.error((0,yB.N)("canNotRun","Command '{0}' resulted in an error ({1})",t.label,p6(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}(c6);_6.PREFIX=">",_6.WORD_FILTER=(0,NK.or)(NK.Ji,NK.KZ,NK.ir),_6=g6([v6(1,oW.TG),v6(2,lW.d),v6(3,jz.H),v6(4,RW.b),v6(5,AW.lT)],_6);var y6=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i){var r;return(0,X.Z)(this,n),(r=t.call(this)).storageService=e,r.configurationService=i,r.configuredCommandsHistoryLength=0,r.updateConfiguration(),r.load(),r.registerListeners(),r}return(0,J.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 gV.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}(WB.JT);y6.DEFAULT_COMMANDS_HISTORY_LENGTH=50,y6.PREF_KEY_CACHE="commandPalette.mru.cache",y6.PREF_KEY_COUNTER="commandPalette.mru.counter",y6.counter=1,y6=g6([v6(0,vV.Uy),v6(1,IV.Ui)],y6);var b6=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},w6=function(e,t){return function(n,i){t(n,i,e)}},C6=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){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((i=i.apply(e,t||[])).next())}))},k6=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o,a,s){var u;return(0,X.Z)(this,n),(u=t.call(this,{showAlias:!1},e,r,o,a,s)).codeEditorService=i,u}return(0,J.Z)(n,[{key:"activeTextEditorControl",get:function(){return(0,oV.f6)(this.codeEditorService.getFocusedCodeEditor())}},{key:"getCommandPicks",value:function(){return C6(this,void 0,void 0,fn().mark((function e(){return fn().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,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o,a,s){return(0,X.Z)(this,n),t.call(this,e,i,r,o,a,s)}return(0,J.Z)(n,[{key:"getCodeEditorCommandPicks",value:function(){var e=this.activeTextEditorControl;if(!e)return[];var t,n=[],i=(0,Na.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,xB.x$)(r.label)||r.id})}}catch(o){i.e(o)}finally{i.f()}return n}}]),n}(_6));k6=b6([w6(0,oW.TG),w6(1,fz.$),w6(2,lW.d),w6(3,jz.H),w6(4,RW.b),w6(5,AW.lT)],k6),Z0.B.as(I4.IP.Quickaccess).registerQuickAccessProvider({ctor:k6,prefix:k6.PREFIX,helpEntries:[{description:p4.UX.quickCommandHelp,needsEditor:!0}]});var S6=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.call(this,{id:"editor.action.quickCommand",label:p4.UX.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:bB.u.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}return(0,J.Z)(n,[{key:"run",value:function(e){e.get(SV.eJ).quickAccess.show(k6.PREFIX)}}]),n}(_B.R6);(0,_B.Qr)(S6);var x6=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},L6=function(e,t){return function(n,i){t(n,i,e)}},E6=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(e,i,r,o,a,s,u){return(0,X.Z)(this,n),t.call(this,!0,e,i,r,o,a,s,u)}return(0,J.Z)(n)}(iq);E6=x6([L6(1,kB.i6),L6(2,fz.$),L6(3,AW.lT),L6(4,oW.TG),L6(5,vV.Uy),L6(6,IV.Ui)],E6),(0,_B._K)(iq.ID,E6);var D6=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;return(0,X.Z)(this,n),(e=t.call(this,{id:"editor.action.toggleHighContrast",label:p4.xi.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}))._originalThemeName=null,e}return(0,J.Z)(n,[{key:"run",value:function(e,t){var n=e.get(L4.Z);this._originalThemeName?(n.setTheme(this._originalThemeName),this._originalThemeName=null):(this._originalThemeName=n.getColorTheme().themeName,n.setTheme("hc-black"))}}]),n}(_B.R6);(0,_B.Qr)(D6);var N6="s-expression";var M6=function(e){var t=e.name.split("|");return t.length>1?t[1]:e.name},T6=(0,ht.Z)("ydb-query-explain-result"),I6={automaticLayout:!0,selectOnLineNumbers:!0,readOnly:!0,minimap:{enabled:!1},wrappingIndent:"indent"},O6={schema:"schema",json:"json",ast:"ast"},A6=[{value:O6.schema,content:"Schema"},{value:O6.json,content:"JSON"},{value:O6.ast,content:"AST"}];function R6(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,ne.Z)(s,2),l=u[0],c=u[1];(0,e.useEffect)((function(){c(a)}),[a]);var d=function(){n.current=Fj("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,Nl.jsx)("div",{id:"graphRoot",style:{height:"100vh"}})}function P6(t){var n=K(),i=(0,e.useState)(O6.schema),r=(0,ne.Z)(i,2),o=r[0],a=r[1],s=Q((function(e){return e.fullscreen}));(0,e.useEffect)((function(){return function(){n(eg())}}),[]);var u=function(){var e,n;switch(o){case O6.schema:return Boolean(null===(e=t.explain)||void 0===e||null===(n=e.nodes)||void 0===n?void 0:n.length);case O6.json:return Boolean(t.explain);case O6.ast:return Boolean(t.ast);default:return!1}};return(0,Nl.jsxs)(e.Fragment,{children:[(0,Nl.jsx)("div",{className:T6("controls"),children:!t.loading&&(0,Nl.jsxs)(e.Fragment,{children:[(0,Nl.jsxs)("div",{className:T6("controls-right"),children:[(0,Nl.jsx)(cF,{error:t.error}),!t.error&&(0,Nl.jsxs)(e.Fragment,{children:[(0,Nl.jsx)(aF,{}),(0,Nl.jsx)(Dy,{options:A6,value:o,onUpdate:function(e){a(e)}})]})]}),(0,Nl.jsxs)("div",{className:T6("controls-left"),children:[(0,Nl.jsx)(tF,{disabled:Boolean(t.error)||!u()}),(0,Nl.jsx)(oZ,{onCollapse:t.onCollapseResults,onExpand:t.onExpandResults,isCollapsed:t.isResultsCollapsed,initialDirection:"bottom"})]})]})}),(0,Nl.jsx)("div",{className:T6("result"),children:function(){var n=t.error,i=t.loading,r=t.loadingAst;if(i||r)return(0,Nl.jsx)("div",{className:T6("loader"),children:(0,Nl.jsx)(KE,{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,Nl.jsx)("div",{className:T6("text-message"),children:e})}();if(!u())return(0,Nl.jsx)("div",{className:T6("text-message"),children:"There is no ".concat(o," for the request")});switch(o){case O6.json:return function(){var n,i=(0,Nl.jsx)(Dl(),{data:null===(n=t.explain)||void 0===n?void 0:n.pristine,isExpanded:function(){return!0},className:T6("inspector"),searchOptions:{debounceTime:300}});return(0,Nl.jsxs)(e.Fragment,{children:[i,s&&(0,Nl.jsx)(WZ,{children:i})]})}();case O6.ast:return function(){var n=(0,Nl.jsx)("div",{className:T6("ast"),children:(0,Nl.jsx)(HZ.ZP,{language:N6,value:t.ast,options:I6,wrappingIndent:"indent"})});return(0,Nl.jsxs)(e.Fragment,{children:[n,s&&(0,Nl.jsx)(WZ,{children:n})]})}();case O6.schema:return function(){var n=t.explain,i=void 0===n?{}:n,r=t.theme,a=i.links,u=i.nodes,l=i.version===ff.v2,c=a&&u&&u.length,d=l&&c?(0,Nl.jsx)("div",{className:T6("explain-canvas-container",{hidden:o!==O6.schema}),children:(0,Nl.jsx)(R6,{theme:r,data:{links:a,nodes:u},opts:{renderNodeTitle:M6,textOverflow:HF.Normal,initialZoomFitsCanvas:!0},shapes:{node:NH}})}):null;return(0,Nl.jsxs)(e.Fragment,{children:[!s&&d,s&&(0,Nl.jsx)(WZ,{children:d})]})}();default:return null}}()})]})}var Z6=(0,ht.Z)("kv-save-query");var F6,j6=function(t){var n=t.savedQueries,i=t.onSaveQuery,r=t.saveButtonDisabled,o=Q((function(e){return e.singleClusterMode})),a=(0,e.useState)(!1),s=(0,ne.Z)(a,2),u=s[0],l=s[1],c=(0,e.useState)(""),d=(0,ne.Z)(c,2),h=d[0],f=d[1],p=(0,e.useState)(null),g=(0,ne.Z)(p,2),v=g[0],m=g[1],_=Q((function(e){return e.saveQuery})),y=K(),b=function(){l(!0),y(Gp(null))},w=function(){l(!1),f(""),m(null)},C=function(e){f(e),m(k(e))},k=function(e){return on().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(Gp(null))},L=function(e){return(0,Nl.jsx)(_o.z,{onClick:e,disabled:r,children:_?"Edit query":"Save query"})};return(0,Nl.jsxs)(e.Fragment,{children:[_?function(){var e=[{action:x,text:"Edit existing"},{action:b,text:"Save as new"}];return(0,Nl.jsx)(pO,{items:e,switcher:L(),popupPlacement:["top"]})}():L(b),u&&(0,Nl.jsxs)(NZ,{open:u,hasCloseButton:!1,size:"s",onClose:w,onEnterKeyDown:S,children:[(0,Nl.jsx)(NZ.Header,{caption:"Save query"}),(0,Nl.jsxs)(NZ.Body,{className:Z6("dialog-body"),children:[o&&(0,Nl.jsx)("div",{className:Z6("dialog-row"),children:"The query will be saved in your browser"}),(0,Nl.jsxs)("div",{className:Z6("dialog-row"),children:[(0,Nl.jsx)("label",{htmlFor:"queryName",className:Z6("field-title","required"),children:"Query name"}),(0,Nl.jsxs)("div",{className:Z6("control-wrapper"),children:[(0,Nl.jsx)(db,{id:"queryName",placeholder:"Enter query name",value:h,onUpdate:C,hasClear:!0,autoFocus:!0}),(0,Nl.jsx)("span",{className:Z6("error"),children:v})]})]})]}),(0,Nl.jsx)(NZ.Footer,{textButtonApply:"Save",textButtonCancel:"Cancel",onClickButtonCancel:w,onClickButtonApply:S,propsButtonApply:{disabled:!h||Boolean(v)}})]})]})},H6=(0,ht.Z)("ydb-query-editor-controls"),B6=(F6={},(0,wt.Z)(F6,Ji.script,{title:er[Ji.script],description:fZ("method-description.script")}),(0,wt.Z)(F6,Ji.scan,{title:er[Ji.scan],description:fZ("method-description.scan")}),(0,wt.Z)(F6,Ji.data,{title:er[Ji.data],description:fZ("method-description.data")}),(0,wt.Z)(F6,Ji.query,{title:er[Ji.query],description:fZ("method-description.query")}),(0,wt.Z)(F6,Ji.pg,{title:er[Ji.pg],description:fZ("method-description.pg")}),F6),z6=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=(0,e.useMemo)((function(){return Object.entries(B6).map((function(e){var t=(0,ne.Z)(e,2),n=t[0],i=t[1],r=i.title,o=i.description;return{text:(0,Nl.jsx)(TF,{className:H6("item-with-popover"),contentClassName:H6("popover"),text:r,popoverContent:o}),action:function(){l(n)}}}))}),[l]),f="execute"===d?"action":void 0,p="explain"===d?"action":void 0;return(0,Nl.jsxs)("div",{className:H6(),children:[(0,Nl.jsxs)("div",{className:H6("left"),children:[(0,Nl.jsxs)(_o.z,{onClick:function(){n(c)},disabled:u,loading:i,view:f,children:[(0,Nl.jsx)(Ob,{name:"startPlay",viewBox:"0 0 16 16",width:16,height:16}),"Run"]}),(0,Nl.jsx)(_o.z,{onClick:function(){r(c)},disabled:u,loading:o,view:p,children:"Explain"}),(0,Nl.jsx)("div",{className:H6("mode-selector"),children:(0,Nl.jsx)(pO,{items:h,popupProps:{className:H6("mode-selector__popup"),qa:"query-mode-selector-popup"},switcher:(0,Nl.jsx)(_o.z,{className:H6("mode-selector__button"),qa:"query-mode-selector",children:(0,Nl.jsxs)("span",{className:H6("mode-selector__button-content"),children:["".concat(fZ("controls.query-mode-selector_type")," ").concat(B6[c].title),(0,Nl.jsx)(Ob,{name:"chevron-down",width:16,height:16})]})})})})]}),(0,Nl.jsx)(j6,{savedQueries:s,onSaveQuery:a,saveButtonDisabled:u})]})},W6={automaticLayout:!0,selectOnLineNumbers:!0,minimap:{enabled:!1}},V6="navigation",Y6={EXECUTE:"execute",EXPLAIN:"explain"},U6=(0,ht.Z)("query-editor"),K6={triggerExpand:!1,triggerCollapse:!1,collapsed:!0};var q6={sendExecuteQuery:function(e){var t=e.query,n=e.database,i=e.mode,r=e.schema,o=void 0===r?"modern":r,a="execute",s=tr.yql;return"pg"===i?(a="execute-query",s=tr.pg):i&&(a="execute-".concat(i)),oa({request:window.api.sendQuery({schema:o,query:t,database:n,action:a,syntax:s,stats:"profile"}),actions:Uh,dataHandler:rr})},saveQueryToHistory:function(e,t){return{type:qh,data:{queryText:e,mode:t}}},goToPreviousQuery:function(){return{type:Gh}},goToNextQuery:function(){return{type:$h}},getExplainQuery:function(e){var t=e.query,n=e.database,i=e.mode,r="explain",o=tr.yql;return"pg"===i?(r="explain-query",o=tr.pg):i&&(r="explain-".concat(i)),oa({request:window.api.getExplainQuery(t,n,r,o),actions:cf,dataHandler:function(e){var t=or(e),n=t.plan,i=t.ast;if(!n)return{ast:i};var r=ar(n),o=r.tables,a=r.meta,s=r.Plan;if(-1===pf.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:lf(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:lf(r),name:r["Node Type"],operators:null===(o=r.Operators)||void 0===o?void 0:o.map((function(e){return e.Name})),stats:uf(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 oa({request:window.api.getExplainQueryAst(t,n),actions:df,dataHandler:or})},setShowPreview:Md,setMonacoHotKey:function(e){return{type:Qh,data:e}},setTenantPath:function(e){return{type:Xh,data:e}}},G6=z((function(e){var t;return{executeQuery:e.executeQuery,explainQuery:e.explainQuery,showPreview:e.schema.showPreview,currentSchema:e.schema.currentSchema,monacoHotKey:null===(t=e.executeQuery)||void 0===t?void 0:t.monacoHotKey}}),q6)((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)(Y6.EXECUTE),l=(0,ne.Z)(u,2),c=l[0],d=l[1],h=(0,e.useState)(!1),f=(0,ne.Z)(h,2),p=f[0],g=f[1],v=nv(),m=(0,ne.Z)(v,2),_=m[0],y=m[1],b=tv(Gi),w=(0,ne.Z)(b,1)[0],C=tv(Vi),k=(0,ne.Z)(C,2),S=k[0],x=k[1],L=tv(Ii),E=(0,ne.Z)(L,2),D=E[0],N=E[1];(0,e.useEffect)((function(){s!==n&&(s&&a({input:""}),o(n))}),[a,o,n,s]);var M=(0,e.useReducer)(iZ(Hi),K6),T=(0,ne.Z)(M,2),I=T[0],O=T[1],A=(0,e.useRef)(null);(0,e.useEffect)((function(){return q(),window.addEventListener("resize",U),window.addEventListener("storage",K),function(){window.removeEventListener("resize",U),window.removeEventListener("storage",K),window.onbeforeunload=void 0,t.setMonacoHotKey(null)}}),[]),(0,e.useEffect)((function(){O(KP.triggerCollapse)}),[]),(0,e.useEffect)((function(){t.showPreview||p?O(KP.triggerExpand):O(KP.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?R:void 0,n&&Y6.EXPLAIN}),[t.executeQuery,t.executeQuery]),(0,e.useEffect)((function(){var e=t.monacoHotKey,n=t.setMonacoHotKey;if(null!==e)switch(n(null),e){case tf.sendQuery:return S===Xi.explain?F(_):Z(_);case tf.goPrev:return z();case tf.goNext:return W();default:return}}),[t.monacoHotKey]);var R=function(e){e.preventDefault(),e.returnValue=""},P=function(e){return function(){return t.setMonacoHotKey(e)}},Z=function(e){var n=t.path,i=t.executeQuery,r=i.input,o=i.history,a=t.sendExecuteQuery,s=t.saveQueryToHistory,u=t.setShowPreview,l=w?"multi":"modern";x(Xi.execute),d(Y6.EXECUTE),a({query:r,database:n,mode:e,schema:l}),g(!0),u(!1),r!==o.queries[o.currentIndex]&&s(r,e),O(KP.triggerExpand)},F=function(e){var n=t.path,i=t.executeQuery.input,r=t.getExplainQuery,o=t.setShowPreview;x(Xi.explain),d(Y6.EXPLAIN),r({query:i,database:n,mode:e}),g(!0),o(!1),O(KP.triggerExpand)},j=function(){var e=t.path,n=t.executeQuery.input;(0,t.getExplainQueryAst)({query:n,database:e})},H=function(){O(KP.triggerCollapse)},B=function(){O(KP.triggerExpand)},z=function(){var e=t.changeUserInput,n=t.executeQuery.history,i=t.goToPreviousQuery,r=n.queries,o=n.currentIndex;V()||(i(),e({input:r[o-1]}))},W=function(){var e=t.changeUserInput,n=t.executeQuery.history,i=t.goToNextQuery,r=n.queries,o=n.currentIndex;Y()||(i(),e({input:r[o+1]}))},V=function(){return t.executeQuery.history.currentIndex<=0},Y=function(){var e=t.executeQuery.history,n=e.queries,i=e.currentIndex;return n.length-1===i},U=on().throttle((function(){q()}),100),K=function(e){e.key===Ii&&N(e.newValue)},q=function(){A.current&&A.current.layout()},G=function(e){var n=t.executeQuery.input,i=D.findIndex((function(t){return t.name.toLowerCase()===e.toLowerCase()})),r=(0,Ct.Z)(D),o={name:e,body:n};-1!==i?r[i]=o:r.push(o),N(r)},$=function(){var e;switch(c){case Y6.EXECUTE:e=function(){var e=t.executeQuery,n=e.data,i=e.error,r=e.stats;return n||i?(0,Nl.jsx)(FF,{data:n,stats:r,error:i,isResultsCollapsed:I.collapsed,onExpandResults:B,onCollapseResults:H}):null}();break;case Y6.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,Nl.jsx)(P6,{error:r,explain:n,astQuery:j,ast:i,loading:o,loadingAst:a,theme:s,isResultsCollapsed:I.collapsed,onExpandResults:B,onCollapseResults:H})}();break;default:e=null}return e}();return(0,Nl.jsx)("div",{className:U6(),children:(0,Nl.jsxs)(RA,{direction:"vertical",defaultSizePaneKey:Ri,triggerCollapse:I.triggerCollapse,triggerExpand:I.triggerExpand,minSize:[0,52],collapsedSizes:[100,0],onSplitStartDragAdditional:function(){O(KP.clear)},children:[(0,Nl.jsxs)("div",{className:U6("pane-wrapper",{top:!0}),children:[(0,Nl.jsx)("div",{className:U6("monaco-wrapper"),children:(0,Nl.jsx)("div",{className:U6("monaco"),children:(0,Nl.jsx)(HZ.ZP,{language:"sql",value:i.input,options:W6,onChange:function(e){t.changeUserInput({input:e})},editorDidMount:function(e,t){A.current=e,e.focus(),e.addAction({id:"sendQuery",label:"Send query",keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.Enter],precondition:null,keybindingContext:null,contextMenuGroupId:V6,contextMenuOrder:1,run:P(tf.sendQuery)}),e.addAction({id:"previous-query",label:"Previous query",keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.UpArrow],contextMenuGroupId:V6,contextMenuOrder:2,run:P(tf.goPrev)}),e.addAction({id:"next-query",label:"Next query",keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.DownArrow],contextMenuGroupId:V6,contextMenuOrder:3,run:P(tf.goNext)})},theme:"vs-".concat(r)})})}),function(){var e=t.executeQuery,n=t.explainQuery;return(0,Nl.jsx)(z6,{onRunButtonClick:Z,runIsLoading:e.loading,onExplainButtonClick:F,explainIsLoading:n.loading,onSaveQueryClick:G,savedQueries:D,disabled:!e.input,onUpdateQueryMode:y,queryMode:_,highlitedAction:S})}()]}),(0,Nl.jsx)("div",{className:U6("pane-wrapper"),children:t.showPreview?function(){var e=t.path,n=t.type;return(0,Nl.jsx)(iF,{database:e,type:n})}():$})]})})})),$6=(0,ht.Z)("ydb-query"),Q6=function(e){var t=K(),n=ev((function(e){return e.tenant})).queryTab,i=void 0===n?Rn.newQuery:n,r=tv(Ii,[]),o=(0,ne.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(rf(e))};return(0,Nl.jsxs)("div",{className:$6(),children:[(0,Nl.jsx)(gZ,{className:$6("tabs"),activeTab:i}),(0,Nl.jsx)("div",{className:$6("content"),children:function(){switch(i){case Rn.newQuery:return(0,Nl.jsx)(G6,Rt({changeUserInput:l},e));case Rn.history:return(0,Nl.jsx)(jZ,{changeUserInput:l});case Rn.saved:return(0,Nl.jsx)(ZZ,{changeUserInput:l,savedQueries:a,onDeleteQuery:u});default:return null}}()})]})},X6=(0,ft.Ge)("switch"),J6=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=MI(t),p=f.checked,g=f.inputProps,v=s||u,m=e.createElement("span",{className:X6("indicator")},e.createElement("input",Object.assign({},g,{className:X6("control")})),e.createElement("span",{className:X6("outline")}),e.createElement("span",{className:X6("slider")}));return e.createElement(II,{ref:n,title:l,style:c,size:r,disabled:a,className:X6({size:r,disabled:a,checked:p},d),labelClassName:X6("text"),qa:h,control:m},v)})),e7={r:255,g:4,b:0},t7={r:255,g:219,b:77},n7={r:59,g:201,b:53},i7={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}},r7=function(e){var t=e.toString(16);return 1===t.length?"0".concat(t):t},o7=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(r7(t)).concat(r7(n)).concat(r7(i))}(e)}))},a7=function(e){var t=Math.floor(e/2),n=t+1,i=o7(e%2===0?t:t+1,n7,t7),r=o7(n,t7,e7);return[].concat((0,Ct.Z)(i),(0,Ct.Z)(r.slice(1)))},s7=function(e,t){var n=new Set,i=i7[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]}},u7=(0,ht.Z)("heatmap"),l7={width:0,height:0},c7=10,d7=2,h7=function(t){var n=(0,e.useState)(l7),i=(0,ne.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*(c7+d7),a=Math.floor(n/i)*(c7+d7);e.fillStyle=t.color||"gray",e.fillRect(o,a,c7,c7)}}(t))})),(0,e.useLayoutEffect)((function(){var e=u.current;if(e){var t=e.offsetWidth-15,n=Math.floor(t/(c7+d7)),i=Math.ceil(a.length/n);o({width:t,height:i*(c7+d7),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=c7+d7,o=c7+d7,a=Math.floor(e/i);return n*Math.floor(t/o)+a},h=on().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,Nl.jsx)("div",{ref:u,className:u7("canvas-container"),onMouseLeave:function(){setTimeout((function(){t.hideTooltip()}),40)},children:(0,Nl.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=_g(bg.tablet,{id:t}),r=[n,ig,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)}})})},f7=(0,ht.Z)("histogram"),p7=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,Nl.jsx)("div",{ref:n,className:f7("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})},g7=function(e){var t=e.tablets,n=e.currentMetric,i=s7(n,t),r=i.min,o=i.max,a=a7(50),s=(o-r)/50,u=a.map((function(e,t){return{color:e,count:0,leftBound:fs(r+t*s),rightBound:fs(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,Nl.jsx)("div",{className:f7(),children:(0,Nl.jsxs)("div",{className:f7("chart"),children:[Boolean(o)&&u.map((function(t,n){return(0,Nl.jsx)(p7,{data:t,maxCount:l,showTooltip:e.showTooltip,hideTooltip:e.hideTooltip},n)})),(0,Nl.jsx)("div",{className:f7("x-min"),children:fs(r)}),(0,Nl.jsx)("div",{className:f7("x-max"),children:fs(o)}),(0,Nl.jsx)("div",{className:f7("y-min"),children:"0"}),(0,Nl.jsx)("div",{className:f7("y-max"),children:fs(l)})]})})},v7=(0,ht.Z)("heatmap"),m7=a7(500),_7=function(t){var n=t.path,i=K(),r=e.createRef(),o=ev((function(e){return e.schema})).autorefresh,a=ev((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,ne.Z)(v,2),_=m[0],y=m[1];(0,e.useEffect)((function(){!f&&h&&h.length&&i(la({currentMetric:h[0].value})),f&&y([f])}),[f,h,i]);var b=(0,e.useCallback)((function(e){e||i(la({wasLoaded:!1})),i(function(e){var t=e.nodes,n=e.path;return oa({request:Promise.all([window.api.getTabletsInfo({nodes:t,path:n}),window.api.getHeatmapData({path:n})]),actions:aa,dataHandler:function(e){var t=(0,ne.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,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]);Jg(b,[b],o);var w=function(){i(tc.apply(void 0,arguments))},C=function(){i(ec)},k=function(e){i(la({currentMetric:e[0]}))},S=function(){i(la({sort:!c}))},x=function(){i(la({heatmap:!d}))},L=function(){var e=s7(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=m7[o];return Rt(Rt({},e),{},{color:a,value:r,formattedValue:fs(r),currentMetric:f})})),o=c?i.sort((function(e,t){return Number(t.value)-Number(e.value)})):i;return(0,Nl.jsx)("div",{ref:r,className:v7("items"),children:(0,Nl.jsx)(h7,{tablets:o,parentRef:r,showTooltip:w,hideTooltip:C,currentMetric:f})})};return s&&!u?(0,Nl.jsx)(jI,{}):l?(0,Nl.jsx)(Sb,{error:l}):function(){var e=s7(f,g),t=e.min,n=e.max;return(0,Nl.jsxs)("div",{className:v7(),children:[(0,Nl.jsxs)("div",{className:v7("filters"),children:[(0,Nl.jsx)(MD,{className:v7("heatmap-select"),value:_,options:h,onUpdate:k,width:200}),(0,Nl.jsx)("div",{className:v7("sort-checkbox"),children:(0,Nl.jsx)(ZI,{onUpdate:S,checked:c,children:"Sort"})}),(0,Nl.jsx)("div",{className:v7("histogram-checkbox"),children:(0,Nl.jsx)(ZI,{onUpdate:x,checked:d,children:"Heatmap"})}),(0,Nl.jsxs)("div",{className:v7("limits"),children:[(0,Nl.jsxs)("div",{className:v7("limits-block"),children:[(0,Nl.jsx)("div",{className:v7("limits-title"),children:"min:"}),(0,Nl.jsx)("div",{className:v7("limits-value"),children:Number.isInteger(t)?fs(t):"\u2014"})]}),(0,Nl.jsxs)("div",{className:v7("limits-block"),children:[(0,Nl.jsx)("div",{className:v7("limits-title"),children:"max:"}),(0,Nl.jsx)("div",{className:v7("limits-value"),children:Number.isInteger(n)?fs(n):"\u2014"})]}),(0,Nl.jsxs)("div",{className:v7("limits-block"),children:[(0,Nl.jsx)("div",{className:v7("limits-title"),children:"count:"}),(0,Nl.jsx)("div",{className:v7("limits-value"),children:fs(g.length)})]})]})]}),d?L():(0,Nl.jsx)(g7,{tablets:g,currentMetric:f,showTooltip:w,hideTooltip:C})]})}()},y7=n(74140),b7=n.n(y7),w7=3,C7={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)"},k7=(0,ht.Z)("kv-tablets-overall");var S7=function(e){var t=e.tablets,n=K(),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]<w7&&(!function(e,t){Object.keys(e).some((function(n){return e[n]>10&&(e[n]-=w7-t,!0)}))}(r,r[e]),r[e]=w7)}));var a=Object.keys(r).map((function(e){return{color:C7[e],colorKey:e,value:r[e]}}));return a.sort((function(e,t){return ki[t.colorKey]-ki[e.colorKey]})),(0,Nl.jsxs)("div",{className:k7("row",{overall:!0}),children:[(0,Nl.jsx)("span",{className:k7("label",{overall:!0}),children:"Overall:"}),(0,Nl.jsx)("div",{onMouseLeave:function(){return n(ec())},onMouseEnter:function(e){return n(tc(e.target,o,"tabletsOverall"))},children:(0,Nl.jsx)(kO,{value:100,stack:a})})]})},x7=JSON.parse('{"controls.type":"Type","controls.state":"State","controls.allItems":"All items","noTabletsData":"No tablets data"}'),L7=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"}'),E7="ydb-tablets";Va.registerKeyset(Fa.En,E7,x7),Va.registerKeyset(Fa.Ru,E7,L7);var D7=Va.keyset(E7),N7=(0,ht.Z)("tablets"),M7=function(t){var n=t.path,i=t.nodeId,r=t.className,o=K(),a=ev((function(e){return e.tablets})),s=a.data,u=a.wasLoaded,l=a.loading,c=a.error,d=a.stateFilter,h=a.typeFilter,f=ev((function(e){return e.schema})).autorefresh,p=(0,e.useMemo)((function(){return(null===s||void 0===s?void 0:s.TabletStateInfo)||[]}),[s]),g=(0,e.useCallback)((function(e){e||o({type:rc}),i?o(uc({nodes:[String(i)]})):n&&o(uc({path:n}))}),[n,i,o]);Jg(g,[g],f);var v=(0,e.useState)([]),m=(0,ne.Z)(v,2),_=m[0],y=m[1];(0,e.useEffect)((function(){var e=p;h.length>0&&(e=e.filter((function(e){return h.some((function(t){return e.Type===t}))}))),d.length>0&&(e=e.filter((function(e){return d.some((function(t){return e.State===t}))}))),y(e)}),[p,d,h]);var b=function(e){o(function(e){return{type:oc,data:e}}(e))},w=function(e){o(function(e){return{type:ac,data:e}}(e))},C=function(e){return(0,Nl.jsx)(jO,{tablet:_[e]},e)};return l&&!u?(0,Nl.jsx)(jI,{}):c?(0,Nl.jsx)("div",{className:"error",children:c.statusText}):p.length>0?function(){var e=Array.from(new Set(p.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(p.map((function(e){return e.Type})))).filter((function(e){return void 0!==e})).map((function(e){return{value:e,content:e}}));return(0,Nl.jsxs)("div",{className:N7(null,r),children:[(0,Nl.jsxs)("div",{className:N7("header"),children:[(0,Nl.jsx)(MD,{className:N7("filter-control"),multiple:!0,placeholder:D7("controls.allItems"),label:"".concat(D7("controls.state"),":"),options:e,value:d,onUpdate:b}),(0,Nl.jsx)(MD,{className:N7("filter-control"),multiple:!0,placeholder:D7("controls.allItems"),label:"".concat(D7("controls.type"),":"),options:t,value:h,onUpdate:w}),(0,Nl.jsx)(S7,{tablets:p})]}),(0,Nl.jsx)("div",{className:N7("items"),children:(0,Nl.jsx)(b7(),{itemRenderer:C,length:_.length,type:"uniform"})})]})}():(0,Nl.jsx)("div",{className:"error",children:D7("noTabletsData")})},T7=(0,ht.Z)("kv-describe"),I7=new Map,O7=function(t){var n=t.tenant,i=t.type,r=K(),o=ev((function(e){return e.describe})),a=o.currentDescribe,s=o.error,u=o.loading,l=o.wasLoaded,c=(0,e.useState)(),d=(0,ne.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=ev((function(e){return e.schema})),g=p.autorefresh,v=p.currentSchemaPath,m=fd(i),_=ev((function(e){return Td(e,v,i)}),L),y=(0,e.useCallback)((function(e){e||r({type:If});var t=v||n;r(function(e){return{type:Tf,data:e}}(t)),m?_&&r(function(e){var t=e.map((function(e){return window.api.getDescribe({path:e})}));return oa({request:Promise.all(t),actions:Mf,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,Ct.Z)(_)))):r(function(e){var t=e.path;return oa({request:window.api.getDescribe({path:t}),actions:Mf,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 Jg(y,[y],g),u&&!l||m&&!_?(0,Nl.jsx)(jI,{size:"m"}):s?(0,Nl.jsx)(Sb,{error:s,className:T7("message-container")}):u||h?(0,Nl.jsx)("div",{className:T7(),children:(0,Nl.jsx)("div",{className:T7("result"),children:(0,Nl.jsx)(Dl(),{data:h,className:T7("tree"),onClick:function(e){var t=e.path,n=!I7.get(t);I7.set(t,n)},searchOptions:{debounceTime:300},isExpanded:function(e){return I7.get(e)||!1}})})}):(0,Nl.jsx)("div",{className:T7("message-container"),children:"Empty"})},A7=(0,ht.Z)("hot-keys"),R7={displayIndices:!1,syncHeadOnResize:!0,stickyHead:pi.MOVING,stickyTop:0},P7={accessSample:"accessSample",keyValues:"keyValues"},Z7=new Xg;var F7=z((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 oa({request:window.api.getHotKeys(e,t),actions:Ip})},setHotKeysOptions:function(e){return{type:Op,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(){od(d)&&!ld(d)&&n(i)};(0,e.useEffect)((function(){return u?(h(),Z7.start(),Z7.fetch((function(){return h()}))):Z7.stop(),function(){Z7.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:P7.accessSample,header:"Samples",sortable:!1,align:pi.RIGHT}].concat((0,Ct.Z)(i.map((function(e,t){return{name:e,header:(0,Nl.jsxs)("div",{className:A7("primary-key-column"),children:[(0,Nl.jsx)(Ob,{name:"key",viewBox:"0 0 12 7",width:12,height:7}),e]}),render:function(e){return e.row[P7.keyValues][t]},align:pi.RIGHT,sortable:!1}}))))}),[c]);return r||void 0!==s?(0,Nl.jsx)("div",{className:A7(),children:r&&!o?(0,Nl.jsx)("div",{className:A7("loader"),children:(0,Nl.jsx)(KE,{size:"l"})}):a?(0,Nl.jsx)(Sb,{error:a}):null!==s?(0,Nl.jsx)("div",{className:A7("table-content"),children:(0,Nl.jsx)(pi,{columns:f,data:s,settings:R7,theme:"yandex-cloud",initialSortOrder:{columnId:P7.accessSample,order:pi.DESCENDING}})}):(0,Nl.jsx)("div",{className:A7("stub"),children:"No information about hot keys"})}):(0,Nl.jsx)("div",{className:A7("stub"),children:"Cluster version does not support hot keys viewing"})})),j7=(0,ht.Z)("node-network"),H7=function(e,t){var n=Math.floor(e/t*100);return 100===n?"green":n>=70?"yellow":n>=1?"red":"gray"},B7=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var t;(0,X.Z)(this,i);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,J.Z)(i,[{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,Nl.jsx)("div",{ref:this.node,className:j7((e={},(0,wt.Z)(e,(null===o||void 0===o?void 0:o.toLowerCase())||H7(i,r),!0),(0,wt.Z)(e,"id",s),(0,wt.Z)(e,"blur",u),e)),onMouseEnter:this._onNodeHover,onMouseLeave:this._onNodeLeave,onClick:function(){return a(n)},children:s&&n})}}]),i}(e.Component);B7.defaultProps={onMouseEnter:function(){},onMouseLeave:function(){},onClick:function(){}};var z7=B7,W7=function(e){return null===e||void 0===e?void 0:e.reduce((function(e,t){return t.Connected?e+1:e}),0)},V7=(0,ht.Z)("network"),Y7=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;(0,X.Z)(this,n);for(var i=arguments.length,r=new Array(i),o=0;o<i;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))).state={howNodeSeeOtherNodesSortType:"",howOthersSeeNodeSortType:"",howNodeSeeOtherSearch:"",howOtherSeeNodeSearch:"",hoveredNode:void 0,clickedNode:void 0,highlightedNodes:[],showId:!1,showRacks:!1},e.onChange=function(t,n){e.setState((0,wt.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 on().reduce(e,(function(e,n){return e[n[t]]?e[n[t]].push(n):e[n[t]]=[n],e}),{})},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,Nl.jsxs)("div",{className:V7("nodes-container",{right:n}),children:[(0,Nl.jsxs)("div",{className:V7("nodes-title"),children:[i," nodes"]}),(0,Nl.jsx)("div",{className:V7("nodes"),children:o?Object.keys(h).map((function(t,i){return(0,Nl.jsxs)("div",{className:V7("rack-column"),children:[(0,Nl.jsx)("div",{className:V7("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=W7(null===t||void 0===t?void 0:t.Peers)),d===Cr.PROBLEMS&&o!==u||d===Cr.ALL||n)return s++,(0,Nl.jsx)(z7,{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=W7(null===t||void 0===t?void 0:t.Peers));if(d===Cr.PROBLEMS&&o!==u||d===Cr.ALL||n)return s++,(0,Nl.jsx)(z7,{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)&&W7(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===Cr.PROBLEMS&&0===s?(0,Nl.jsx)(Ay,{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,Nl.jsx)("div",{className:V7(),children:(0,Nl.jsx)("div",{className:V7("inner"),children:(0,Nl.jsxs)("div",{className:V7("nodes-row"),children:[(0,Nl.jsxs)("div",{className:V7("left"),children:[(0,Nl.jsx)("div",{className:V7("controls-wrapper"),children:(0,Nl.jsxs)("div",{className:V7("controls"),children:[(0,Nl.jsx)(Ny,{value:i,onChange:r,className:V7("problem-filter")}),(0,Nl.jsx)("div",{className:V7("checkbox-wrapper"),children:(0,Nl.jsx)(ZI,{onUpdate:function(){return e.onChange("showId",!a)},checked:a,children:"ID"})}),(0,Nl.jsx)("div",{className:V7("checkbox-wrapper"),children:(0,Nl.jsx)(ZI,{onUpdate:function(){return e.onChange("showRacks",!s)},checked:s,children:"Racks"})})]})}),e.renderNodes(d)]}),(0,Nl.jsx)("div",{className:V7("right"),children:l?(0,Nl.jsxs)("div",{children:[(0,Nl.jsxs)("div",{className:V7("label"),children:["Connectivity of node"," ",(0,Nl.jsx)(cv,{className:V7("link"),to:nM(l.NodeId),children:l.NodeId})," ","to other nodes"]}),(0,Nl.jsx)("div",{className:V7("nodes-row"),children:e.renderNodes(u,!0)})]}):(0,Nl.jsxs)("div",{className:V7("placeholder"),children:[(0,Nl.jsx)("div",{className:V7("placeholder-img"),children:(0,Nl.jsx)(Ob,{name:"network-placeholder",viewBox:"0 0 221 204",width:221,height:204})}),(0,Nl.jsx)("div",{className:V7("placeholder-text"),children:"Select node to see its connectivity to other nodes"})]})})]})})}):(0,Nl.jsx)("div",{className:"error",children:"no nodes data"})},e}return(0,J.Z)(n,[{key:"componentDidMount",value:function(){var e=this.props,t=e.path,n=e.autorefresh,i=e.getNetworkInfo;this.autofetcher=new Xg,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,Nl.jsx)("div",{children:r.statusText}):this.renderContent()}}],[{key:"renderLoader",value:function(){return(0,Nl.jsx)("div",{className:"loader",children:(0,Nl.jsx)(KE,{size:"l"})})}}]),n}(e.Component);Y7.defaultProps={};var U7={getNetworkInfo:function(e){return oa({request:window.api.getNetwork(e),actions:Wd})},hideTooltip:ec,showTooltip:tc,changeFilter:Lr,setDataWasNotLoaded:function(){return{type:Vd}}},K7=z((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}}),U7)(Y7),q7=n(46553),G7=function(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},t),e.createElement("g",{clipPath:"url(#a)"},e.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M7.199 2H8.8a.2.2 0 0 1 .2.2c0 1.808 1.958 2.939 3.524 2.034a.199.199 0 0 1 .271.073l.802 1.388a.199.199 0 0 1-.073.272c-1.566.904-1.566 3.164 0 4.069a.199.199 0 0 1 .073.271l-.802 1.388a.199.199 0 0 1-.271.073C10.958 10.863 9 11.993 9 13.8a.2.2 0 0 1-.199.2H7.2a.199.199 0 0 1-.2-.2c0-1.808-1.958-2.938-3.524-2.034a.199.199 0 0 1-.272-.073l-.8-1.388a.199.199 0 0 1 .072-.271c1.566-.905 1.566-3.165 0-4.07a.199.199 0 0 1-.073-.271l.801-1.388a.199.199 0 0 1 .272-.073C5.042 5.138 7 4.007 7 2.2c0-.11.089-.199.199-.199ZM5.5 2.2c0-.94.76-1.7 1.699-1.7H8.8c.94 0 1.7.76 1.7 1.7a.85.85 0 0 0 1.274.735 1.699 1.699 0 0 1 2.32.622l.802 1.388c.469.813.19 1.851-.622 2.32a.85.85 0 0 0 0 1.472 1.7 1.7 0 0 1 .622 2.32l-.802 1.388a1.699 1.699 0 0 1-2.32.622.85.85 0 0 0-1.274.735c0 .939-.76 1.7-1.699 1.7H7.2a1.7 1.7 0 0 1-1.699-1.7.85.85 0 0 0-1.274-.735 1.698 1.698 0 0 1-2.32-.622l-.802-1.388a1.699 1.699 0 0 1 .622-2.32.85.85 0 0 0 0-1.471 1.699 1.699 0 0 1-.622-2.321l.801-1.388a1.699 1.699 0 0 1 2.32-.622A.85.85 0 0 0 5.5 2.2Zm4 5.8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z",clipRule:"evenodd"})),e.createElement("defs",null,e.createElement("clipPath",{id:"a"},e.createElement("path",{fill:"currentColor",d:"M0 0h16v16H0z"}))))};function $7(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"},xg.i,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"}))}function Q7(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"},xg.i,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"}))}var X7,J7,e8,t8=No({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"),n8=(0,ft.Ge)("table-column-setup"),i8=function(t){var n=t.switcher,i=t.renderSwitcher,r=t.disabled,o=t.popupWidth,a=t.popupPlacement,s=t.className,u=t.items,l=t.getItemTitle,c=void 0===l?function(e){return e.title}:l,d=t.sortable,h=void 0===d||d,f=t.filterable,p=void 0!==f&&f,g=t.showStatus,v=e.useState(!1),m=(0,ne.Z)(v,2),_=m[0],y=m[1],b=e.useState([]),w=(0,ne.Z)(b,2),C=w[0],k=w[1],S=e.useState([]),x=(0,ne.Z)(S,2),L=x[0],E=x[1],D=e.useState([]),N=(0,ne.Z)(D,2),M=N[0],T=N[1],I=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})}))},A=function(e){return e.filter((function(e){return!e.required}))};e.useEffect((function(){u!==C&&(k(u),T(O(u)),E(A(u)))}),[C,u]);var R=function(){y(!1),T(O(C)),E(A(C))},P=function(e){return 36*Math.min(5,e.length)+18},Z=function(e){return 36*e.length},F=e.useCallback((function(){r||(y(!_),T(O(C)),E(A(C)))}),[r,_,C]),j=function(e){!function(e){E(e)}(L.map((function(t){return t===e?Object.assign(Object.assign({},t),{selected:!t.selected}):t})))},H=function(t){return e.createElement("div",{className:n8("item-content")},t.required?e.createElement("div",{className:n8("lock-wrap",{visible:t.selected})},e.createElement(yo.J,{data:$7})):e.createElement("div",{className:n8("tick-wrap",{visible:t.selected})},e.createElement(yo.J,{data:Q7,className:n8("tick"),width:10,height:10})),e.createElement("div",{className:n8("title")},c(t)))},B=(0,kg.b)(F).onKeyDown,z=e.useMemo((function(){return{onClick:F,onKeyDown:B}}),[F,B]);return e.createElement("div",{className:n8(null,s)},e.createElement("div",Object.assign({className:n8("control"),ref:I},i?{}:z),(null===i||void 0===i?void 0:i(z))||n||e.createElement(_o.z,{disabled:r},e.createElement(yo.J,{data:G7}),t8("button_switcher"),function(){if(!g)return null;var t=C.reduce((function(e,t){return t.selected?e+1:e}),0),n=u.length,i="".concat(t,"/").concat(n);return e.createElement("span",{className:n8("status")},i)}())),e.createElement(J_,{anchorRef:I,placement:a||["bottom-start","bottom-end","top-start","top-end"],open:_,onClose:function(){return R()},className:n8("popup"),style:{width:o}},M.length?e.createElement(lD,{items:M,itemHeight:36,itemsHeight:Z,filterable:p,renderItem:H,itemsClassName:n8("items"),itemClassName:n8("item"),virtualized:!1}):null,function(){return e.createElement(lD,{items:L,itemHeight:36,itemsHeight:P,sortable:h,filterable:p,sortHandleAlign:"right",onSortEnd:(t=L,function(e){var n=e.oldIndex,i=e.newIndex;E(lD.moveListElement(t.slice(),n,i))}),onItemClick:j,renderItem:H,itemsClassName:n8("items"),itemClassName:n8("item"),virtualized:!1});var t}(),e.createElement("div",{className:n8("controls")},e.createElement(_o.z,{view:"action",width:"max",onClick:function(){R();var e=M.concat(L);C!==e&&t.onUpdate(e)}},t8("button_apply")))))},r8={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"},o8=(X7={},(0,wt.Z)(X7,r8.PARTITION_ID,"Partition ID"),(0,wt.Z)(X7,r8.STORE_SIZE,"Store size"),(0,wt.Z)(X7,r8.WRITE_SPEED,"Write speed"),(0,wt.Z)(X7,r8.READ_SPEED,"Read speed"),(0,wt.Z)(X7,r8.WRITE_LAGS,"Write lags, duration"),(0,wt.Z)(X7,r8.READ_LAGS,"Read lags, duration"),(0,wt.Z)(X7,r8.UNCOMMITED_MESSAGES,"Uncommited messages"),(0,wt.Z)(X7,r8.UNREAD_MESSAGES,"Unread messages"),(0,wt.Z)(X7,r8.START_OFFSET,"Start offset"),(0,wt.Z)(X7,r8.END_OFFSET,"End offset"),(0,wt.Z)(X7,r8.COMMITED_OFFSET,"Commited offset"),(0,wt.Z)(X7,r8.READ_SESSION_ID,"Read session ID"),(0,wt.Z)(X7,r8.READER_NAME,"Reader name"),(0,wt.Z)(X7,r8.PARTITION_HOST,"Partition host"),(0,wt.Z)(X7,r8.CONNECTION_HOST,"Connection host"),X7),a8="partitionWriteLag",s8="partitionWriteIdleTime",u8=(J7={},(0,wt.Z)(J7,a8,"write lag"),(0,wt.Z)(J7,s8,"write idle time"),J7),l8="consumerWriteLag",c8="consumerReadLag",d8="consumerReadIdleTime",h8=(e8={},(0,wt.Z)(e8,l8,"write lag"),(0,wt.Z)(e8,c8,"read lag"),(0,wt.Z)(e8,d8,"read idle time"),e8),f8=[r8.PARTITION_ID,r8.STORE_SIZE,r8.WRITE_SPEED,r8.WRITE_LAGS,r8.START_OFFSET,r8.END_OFFSET,r8.PARTITION_HOST],p8=Object.values(r8),g8=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"}'),v8=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"}'),m8="ydb-diagnostics-partitions";Va.registerKeyset(Fa.En,m8,g8),Va.registerKeyset(Fa.Ru,m8,v8);var _8=Va.keyset(m8),y8=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,ne.Z)(d,2),f=h[0],p=h[1],g=(0,e.useState)(""),v=(0,ne.Z)(g,2),m=v[0],_=v[1];(0,e.useEffect)((function(){if(a){var e=new RegExp((0,q7.escapeRegExp)(m),"i"),t=new RegExp((0,q7.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:_8("controls.consumerSelector.emptyOption")}].concat((0,Ct.Z)(e))}),[n]),b=(0,e.useMemo)((function(){return c.map((function(e){return{title:o8[e],selected:Boolean(!u.includes(e)),id:e,required:e===r8.PARTITION_ID}}))}),[c,u]),w=function(e){return(0,Nl.jsx)("div",{className:X8("select-option",{empty:""===e.value}),children:e.content})};return(0,Nl.jsxs)("div",{className:X8("controls"),children:[(0,Nl.jsx)(MD,{className:X8("consumer-select"),label:_8("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,Nl.jsx)(fb,{onChange:function(e){_(e)},placeholder:_8("controls.partitionSearch"),className:X8("search",{partition:!0}),value:m}),(0,Nl.jsx)(fb,{onChange:function(e){p(e)},placeholder:_8("controls.generalSearch"),className:X8("search",{general:!0}),value:f}),(0,Nl.jsx)(i8,{popupWidth:"242px",items:b,showStatus:!0,onUpdate:function(e){var t=(0,Ct.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)}},"TableColumnSetup")]})},b8=JSON.parse('{"averageSpeed":"Average speed","perMinute":"per minute","perHour":"per hour","perDay":"per day"}'),w8=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"}'),C8="ydb-components-speed-multimeter";Va.registerKeyset(Fa.En,C8,b8),Va.registerKeyset(Fa.Ru,C8,w8);var k8,S8,x8=Va.keyset(C8),L8=(0,ht.Z)("speed-multimeter"),E8=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 es({value:e,size:r,withSpeedLabel:!0})},_=[{value:m(d),label:x8("perMinute")},{value:m(f),label:x8("perHour")},{value:m(g),label:x8("perDay")}],y=(0,e.useState)(d),b=(0,ne.Z)(y,2),w=b[0],C=b[1],k=(0,e.useState)(a?0:void 0),S=(0,ne.Z)(k,2),x=S[0],L=S[1],E=(0,e.useState)(),D=(0,ne.Z)(E,2),N=D[0],M=D[1],T=function(e,t){C(e[t]),L(t),M(t)},I=function(e){return x===e},O=function(e){return N===e};return(0,Nl.jsx)("div",{className:L8(),children:(0,Nl.jsxs)("div",{className:L8("content"),children:[a&&(0,Nl.jsx)("div",{className:L8("displayed-value"),children:m(w)}),(0,Nl.jsx)(Xy,{content:(0,Nl.jsxs)("div",{className:L8("popover-content"),children:[(0,Nl.jsx)("span",{className:L8("popover-header"),children:x8("averageSpeed")}),_.map((function(e,t){return(0,Nl.jsx)("span",{className:L8("popover-row",(n=I(t),n?{color:"primary"}:{color:"secondary"})),children:"".concat(e.label,": ").concat(e.value)},t);var n}))]}),className:L8("popover-container"),placement:"bottom",disabled:!u,hasArrow:!0,size:"s",children:(0,Nl.jsx)("div",{className:L8("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,Nl.jsx)("div",{className:L8("bar-container",{highlighted:O(n)}),onMouseEnter:T.bind(null,v,n),children:(0,Nl.jsx)("div",{className:L8("bar",{color:I(n)?"dark":"light"}),style:{width:"".concat(100*t/e,"%")}})},n)}))}()})})]})})},D8=70,N8=54,M8=268,T8="#ADE8F5",I8="#f5be9d",O8=function(e){var t=e.width,n=e.height,i=e.transform;return(0,Nl.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})},A8=function(e){var t=e.width;return(0,Nl.jsx)("path",{fill:"none",strokeWidth:"2",d:"M0 0 h".concat(t," l-10 -5 m0 10 l10 -5")})},R8=function(){return(0,Nl.jsxs)("g",{fill:"var(--yc-color-text-primary)",fontSize:"12",children:[(0,Nl.jsx)("g",{transform:"translate(0, ".concat(27,")"),stroke:I8,children:(0,Nl.jsx)(A8,{width:203})}),(0,Nl.jsxs)("g",{transform:"translate(".concat(30,", 0)"),children:[(0,Nl.jsxs)("g",{transform:"translate(".concat(35,", ").concat(27,")"),children:[(0,Nl.jsx)(O8,{width:D8,height:15}),(0,Nl.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,Nl.jsx)("tspan",{x:"0",dy:"0",children:"write lag"})})]}),(0,Nl.jsxs)("g",{transform:"translate(".concat(119,", ").concat(27,")"),children:[(0,Nl.jsx)(O8,{width:98,height:15}),(0,Nl.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,Nl.jsx)("tspan",{x:"0",dy:"0",children:"write idle time"})})]})]}),(0,Nl.jsxs)("g",{transform:"translate(".concat(30,", 0)"),children:[(0,Nl.jsxs)("g",{transform:"translate(".concat(0,", ",27,")"),children:[(0,Nl.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:I8}),(0,Nl.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,Nl.jsx)("tspan",{x:"0",dy:"0",children:"create time"})})]}),(0,Nl.jsxs)("g",{transform:"translate(".concat(D8,", ").concat(27,")"),children:[(0,Nl.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:I8}),(0,Nl.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,Nl.jsx)("tspan",{x:"0",dy:"0",children:"write time"})})]}),(0,Nl.jsx)("g",{transform:"translate(".concat(168,", ").concat(27,")"),children:(0,Nl.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,Nl.jsx)("tspan",{x:"0",dy:"0",children:"now"})})})]})]})},P8=function(){return(0,Nl.jsxs)("g",{fill:"var(--yc-color-text-primary)",fontSize:"12",children:[(0,Nl.jsx)("g",{transform:"translate(0, ".concat(27,")"),stroke:T8,children:(0,Nl.jsx)(A8,{width:M8})}),(0,Nl.jsxs)("g",{transform:"translate(".concat(30,", 0)"),children:[(0,Nl.jsxs)("g",{transform:"translate(".concat(105,", ").concat(27,")"),children:[(0,Nl.jsx)(O8,{width:D8,height:15}),(0,Nl.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,Nl.jsx)("tspan",{x:"0",dy:"0",children:"read lag"})})]}),(0,Nl.jsxs)("g",{transform:"translate(".concat(35,", ").concat(27,")"),children:[(0,Nl.jsx)(O8,{width:D8,height:15}),(0,Nl.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,Nl.jsx)("tspan",{x:"0",dy:"0",children:"write lag"})})]}),(0,Nl.jsxs)("g",{transform:"translate(".concat(182,", ").concat(27,")"),children:[(0,Nl.jsx)(O8,{width:91,height:15}),(0,Nl.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,Nl.jsx)("tspan",{x:"0",dy:"0",children:"read idle time"})})]})]}),(0,Nl.jsxs)("g",{transform:"translate(".concat(30,", ").concat(27,")"),children:[(0,Nl.jsxs)("g",{transform:"translate(".concat(0,", 0)"),children:[(0,Nl.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:T8}),(0,Nl.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,Nl.jsx)("tspan",{x:"0",dy:"0",children:"create time"})})]}),(0,Nl.jsxs)("g",{transform:"translate(".concat(D8,", 0)"),children:[(0,Nl.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:T8}),(0,Nl.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,Nl.jsx)("tspan",{x:"0",dy:"0",children:"write time"})})]}),(0,Nl.jsxs)("g",{transform:"translate(".concat(140,", 0)"),children:[(0,Nl.jsx)("use",{x:"-2",y:"-10",xlinkHref:"#check",stroke:T8}),(0,Nl.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,Nl.jsx)("tspan",{x:"0",dy:"0",children:"read time"})})]}),(0,Nl.jsx)("g",{transform:"translate(".concat(224,", 0)"),children:(0,Nl.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,Nl.jsx)("tspan",{x:"0",dy:"0",children:"now"})})})]})]})},Z8=function(e){var t=e.id,n=e.fill;return(0,Nl.jsx)("pattern",{id:t,x:"0",y:"0",width:"8",height:"8",patternUnits:"userSpaceOnUse",children:(0,Nl.jsx)("path",{d:"M0 5L5 0H8L0 8V5M5 8L8 5V8Z",fill:n})})},F8=function(){return(0,Nl.jsxs)("svg",{className:"paint",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 ".concat(M8," ").concat(N8),width:M8,height:N8,children:[(0,Nl.jsxs)("defs",{children:[(0,Nl.jsx)("g",{id:"check",children:(0,Nl.jsx)("path",{d:"M0 3 v14",strokeWidth:"2"})}),(0,Nl.jsx)(Z8,{id:"latest-read",fill:T8}),(0,Nl.jsx)(Z8,{id:"latest-write",fill:I8})]}),(0,Nl.jsx)(R8,{})]})},j8=function(){return(0,Nl.jsxs)("svg",{className:"paint",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 ".concat(M8," ").concat(N8),width:M8,height:N8,children:[(0,Nl.jsxs)("defs",{children:[(0,Nl.jsx)("g",{id:"check",children:(0,Nl.jsx)("path",{d:"M0 3 v14",strokeWidth:"2"})}),(0,Nl.jsx)(Z8,{id:"latest-read",fill:T8}),(0,Nl.jsx)(Z8,{id:"latest-write",fill:I8})]}),(0,Nl.jsx)(P8,{})]})},H8=(0,ht.Z)("ydb-lag-popover-content"),B8=function(e){var t=e.text,n=e.type;return(0,Nl.jsxs)("div",{className:H8({type:n}),children:[(0,Nl.jsx)("div",{className:H8("text"),children:t}),(0,Nl.jsx)("div",{children:"read"===n?(0,Nl.jsx)(j8,{}):(0,Nl.jsx)(F8,{})})]})},z8=(0,ht.Z)("ydb-diagnostics-partitions-columns-header"),W8=function(e){var t=e.title;return(0,Nl.jsx)("div",{className:z8("multiline"),children:t})},V8=function(){return(0,Nl.jsx)("div",{className:z8("read-session"),children:o8[r8.READ_SESSION_ID]})},Y8=function(){return(0,Nl.jsx)(TF,{className:z8("lags"),text:o8[r8.WRITE_LAGS],popoverContent:(0,Nl.jsx)(B8,{text:_8("lagsPopover.writeLags"),type:"write"})})},U8=function(){return(0,Nl.jsx)(TF,{className:z8("lags"),text:o8[r8.READ_LAGS],popoverContent:(0,Nl.jsx)(B8,{text:_8("lagsPopover.readLags"),type:"read"})})},K8=function(){return(0,Nl.jsx)(TF,{className:z8("messages"),text:o8[r8.UNREAD_MESSAGES],popoverContent:(0,Nl.jsx)("div",{className:z8("messages-popover-content"),children:_8("headers.unread")})})},q8=function(){return(0,Nl.jsx)(TF,{className:z8("messages"),text:o8[r8.UNCOMMITED_MESSAGES],popoverContent:(0,Nl.jsx)("div",{className:z8("messages-popover-content"),children:_8("headers.uncommited")})})},G8=(0,ht.Z)("ydb-diagnostics-partitions-columns"),$8=[{name:r8.PARTITION_ID,header:(0,Nl.jsx)(W8,{title:o8[r8.PARTITION_ID]}),sortAccessor:function(e){return pr(e.partitionId)&&Number(e.partitionId)},align:pi.LEFT,render:function(e){return e.row.partitionId}},{name:r8.STORE_SIZE,header:(0,Nl.jsx)(W8,{title:o8[r8.STORE_SIZE]}),align:pi.RIGHT,render:function(e){var t=e.row;return os(t.storeSize)}},{name:r8.WRITE_SPEED,header:o8[r8.WRITE_SPEED],align:pi.LEFT,sortAccessor:function(e){return e.writeSpeed.perMinute},render:function(e){var t=e.row;return(0,Nl.jsx)(E8,{data:t.writeSpeed})}},{name:r8.READ_SPEED,header:o8[r8.READ_SPEED],align:pi.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,Nl.jsx)(E8,{data:t.readSpeed})}},{name:r8.WRITE_LAGS,header:(0,Nl.jsx)(Y8,{}),className:G8("lags-header"),sub:[{name:a8,header:u8[a8],align:pi.RIGHT,render:function(e){var t=e.row;return cs(t.partitionWriteLag)}},{name:s8,header:u8[s8],align:pi.RIGHT,render:function(e){var t=e.row;return cs(t.partitionWriteIdleTime)}}]},{name:r8.READ_LAGS,header:(0,Nl.jsx)(U8,{}),className:G8("lags-header"),sub:[{name:l8,header:h8[l8],align:pi.RIGHT,render:function(e){var t=e.row;return cs(t.consumerWriteLag)}},{name:c8,header:h8[c8],align:pi.RIGHT,render:function(e){var t=e.row;return cs(t.consumerReadLag)}},{name:d8,header:h8[d8],align:pi.RIGHT,render:function(e){var t=e.row;return cs(t.consumerReadIdleTime)}}]},{name:r8.UNCOMMITED_MESSAGES,header:(0,Nl.jsx)(q8,{}),align:pi.RIGHT,render:function(e){return e.row.uncommitedMessages}},{name:r8.UNREAD_MESSAGES,header:(0,Nl.jsx)(K8,{}),align:pi.RIGHT,render:function(e){return e.row.unreadMessages}},{name:r8.START_OFFSET,header:(0,Nl.jsx)(W8,{title:o8[r8.START_OFFSET]}),sortAccessor:function(e){return pr(e.startOffset)&&Number(e.startOffset)},align:pi.RIGHT,render:function(e){return e.row.startOffset}},{name:r8.END_OFFSET,header:(0,Nl.jsx)(W8,{title:o8[r8.END_OFFSET]}),sortAccessor:function(e){return pr(e.endOffset)&&Number(e.endOffset)},align:pi.RIGHT,render:function(e){return e.row.endOffset}},{name:r8.COMMITED_OFFSET,header:(0,Nl.jsx)(W8,{title:o8[r8.COMMITED_OFFSET]}),sortAccessor:function(e){return pr(e.commitedOffset)&&Number(e.commitedOffset)},align:pi.RIGHT,render:function(e){return e.row.commitedOffset}},{name:r8.READ_SESSION_ID,header:(0,Nl.jsx)(V8,{}),align:pi.LEFT,render:function(e){var t=e.row;return t.readSessionId?(0,Nl.jsx)(hy,{name:t.readSessionId,showStatus:!1,hasClipboardButton:!0,className:G8("string-with-copy")}):"\u2013"}},{name:r8.READER_NAME,header:(0,Nl.jsx)(W8,{title:o8[r8.READER_NAME]}),align:pi.LEFT,render:function(e){var t=e.row;return t.readerName?(0,Nl.jsx)(hy,{name:t.readerName,showStatus:!1,hasClipboardButton:!0,className:G8("string-with-copy")}):"\u2013"}},{name:r8.PARTITION_HOST,header:(0,Nl.jsx)(W8,{title:o8[r8.PARTITION_HOST]}),align:pi.LEFT,render:function(e){var t=e.row;return t.partitionNodeId&&t.partitionHost?(0,Nl.jsx)(hy,{name:t.partitionHost,path:nM(t.partitionNodeId),showStatus:!1,hasClipboardButton:!0,className:G8("string-with-copy")}):"\u2013"}},{name:r8.CONNECTION_HOST,header:(0,Nl.jsx)(W8,{title:o8[r8.CONNECTION_HOST]}),align:pi.LEFT,render:function(e){var t=e.row;return t.connectionNodeId&&t.connectionHost?(0,Nl.jsx)(hy,{name:t.connectionHost,path:nM(t.connectionNodeId),showStatus:!1,hasClipboardButton:!0,className:G8("string-with-copy")}):"\u2013"}}],Q8=$8.filter((function(e){return f8.includes(e.name)})),X8=(0,ht.Z)("ydb-diagnostics-partitions"),J8=function(t){var n=t.path,i=K(),r=(0,e.useState)(n),o=(0,ne.Z)(r,2),a=o[0],s=o[1],u=(0,e.useState)([]),l=(0,ne.Z)(u,2),c=l[0],d=l[1],h=ev(Th),f=ev(Df),p=ev((function(e){return e.schema})).autorefresh,g=ev((function(e){return e.partitions})),v=g.loading,m=g.wasLoaded,_=g.error,y=g.partitions,b=g.selectedConsumer,w=ev((function(e){return e.topic})),C=w.loading,k=w.wasLoaded,S=w.error,x=ev((function(e){return e.nodesList})),L=x.loading,E=x.wasLoaded,D=x.error,N=tv(Yi),M=(0,ne.Z)(N,2),T=M[0],I=M[1],O=function(t){var n=(0,e.useState)([]),i=(0,ne.Z)(n,2),r=i[0],o=i[1],a=(0,e.useState)([]),s=(0,ne.Z)(a,2),u=s[0],l=s[1];return(0,e.useEffect)((function(){t?(o($8),l(p8)):(o(Q8),l(f8))}),[t]),[r,u]}(b),A=(0,ne.Z)(O,2),R=A[0],P=A[1];(0,e.useEffect)((function(){i({type:Lh}),i(Dh()),i(Ef()),i(Nh(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:Hh}),k&&a&&i(function(e,t){return oa(t?{request:window.api.getConsumer({path:e,consumer:t},{concurrentId:"getPartitions"}),actions:Fh,dataHandler:function(e){var t=e.partitions;return Zh(t)}}:{request:window.api.getTopic({path:e},{concurrentId:"getPartitions"}),actions:Fh,dataHandler:function(e){var t=e.partitions;return Ph(t)}})}(a,b))}),[i,b,a,k]);Jg(F,[F],p),(0,e.useEffect)((function(){var e=k&&!h,t=b&&h&&!h.includes(b);(e||t)&&i(zh(""))}),[i,k,b,h]);var j=(0,e.useMemo)((function(){return R.filter((function(e){return!T.includes(e.name)}))}),[R,T]),H=C&&!k||L&&!E||v&&!m,B=D||S||_;return(0,Nl.jsxs)("div",{className:X8(),children:[(0,Nl.jsx)(y8,{consumers:h,selectedConsumer:b,onSelectedConsumerChange:function(e){i(zh(e))},selectDisabled:Boolean(B)||H,partitions:Z,onSearchChange:d,hiddenColumns:T,onHiddenColumnsChange:function(e){I(e)},initialColumnsIds:P}),(0,Nl.jsx)("div",{className:X8("table-wrapper"),children:(0,Nl.jsx)("div",{className:X8("table-content"),children:H?(0,Nl.jsx)(mb,{className:X8("loader")}):B?(0,Nl.jsx)(Sb,{error:B}):(0,Nl.jsx)(pi,{theme:"yandex-cloud",data:c,columns:j,settings:Bi,emptyDataMessage:_8("table.emptyDataMessage")})})})]})},e9=(0,ht.Z)("ydb-diagnostics-consumers-topic-stats"),t9=function(e){var t=e.data||{},n=t.writeSpeed,i=t.partitionsWriteLag,r=t.partitionsIdleTime,o=[{label:"Write speed",value:(0,Nl.jsx)(E8,{data:n})},{label:"Write lag",value:cs(i||0)},{label:"Write idle time",value:cs(r||0)}];return(0,Nl.jsx)("div",{className:e9("wrapper"),children:o.map((function(e,t){return(0,Nl.jsxs)("div",{className:e9("item"),children:[(0,Nl.jsx)("div",{className:e9("label"),children:e.label}),(0,Nl.jsx)("div",{className:e9("value"),children:e.value})]},t)}))})},n9="consumer",i9="readSpeed",r9="readLags",o9=(k8={},(0,wt.Z)(k8,n9,"Consumer"),(0,wt.Z)(k8,i9,"Read speed"),(0,wt.Z)(k8,r9,"Read lags, duration"),k8),a9="writeLag",s9="readLag",u9="readIdleTime",l9=(S8={},(0,wt.Z)(S8,a9,"write lag"),(0,wt.Z)(S8,s9,"read lag"),(0,wt.Z)(S8,u9,"read idle time"),S8),c9=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"}'),d9=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"}'),h9="ydb-diagnostics-consumers";Va.registerKeyset(Fa.En,h9,c9),Va.registerKeyset(Fa.Ru,h9,d9);var f9=Va.keyset(h9),p9=(0,ht.Z)("ydb-diagnostics-consumers-columns-header"),g9=function(){return(0,Nl.jsx)(TF,{className:p9("lags"),text:o9[r9],popoverContent:(0,Nl.jsx)(B8,{text:f9("lagsPopover.readLags"),type:"read"})})},v9=(0,ht.Z)("ydb-diagnostics-consumers-columns"),m9=[{name:n9,header:o9[n9],align:pi.LEFT,render:function(e){var t,n=e.row;if(!n.name)return"\u2013";var i=Zt().parse(location.search,{ignoreQueryPrefix:!0});return(0,Nl.jsx)(vv,{to:_g(bg.tenant,void 0,Rt(Rt({},i),{},(t={},(0,wt.Z)(t,Eb.diagnosticsTab,Pn.partitions),(0,wt.Z)(t,"selectedConsumer",n.name),t))),children:n.name})}},{name:i9,header:o9[i9],align:pi.RIGHT,sortAccessor:function(e){return e.readSpeed.perMinute},render:function(e){var t=e.row;return(0,Nl.jsx)(E8,{data:t.readSpeed})}},{name:r9,header:(0,Nl.jsx)(g9,{}),className:v9("lags-header"),sub:[{name:a9,header:l9[a9],align:pi.RIGHT,render:function(e){var t=e.row;return cs(t.writeLag)}},{name:s9,header:l9[s9],align:pi.RIGHT,render:function(e){var t=e.row;return cs(t.readLag)}},{name:u9,header:l9[u9],align:pi.RIGHT,render:function(e){var t=e.row;return cs(t.readIdleTime)}}]}],_9=(0,ht.Z)("ydb-diagnostics-consumers"),y9=function(t){var n=t.path,i=function(e){return e===vc.EPathTypeCdcStream}(t.type),r=K(),o=(0,e.useState)(""),a=(0,ne.Z)(o,2),s=a[0],u=a[1],l=ev((function(e){return e.schema})).autorefresh,c=ev((function(e){return e.topic})),d=c.loading,h=c.wasLoaded,f=c.error,p=ev((function(e){return Oh(e)})),g=ev((function(e){return Ih(e)})),v=(0,e.useCallback)((function(e){e||r(Dh),r(Nh(n))}),[r,n]);Jg(v,[v],l);var m=(0,e.useMemo)((function(){if(!p)return[];var e=new RegExp((0,q7.escapeRegExp)(s),"i");return p.filter((function(t){return e.test(String(t.name))}))}),[p,s]);return d&&!h?(0,Nl.jsx)(jI,{size:"m"}):f?(0,Nl.jsx)(Sb,{error:f}):p&&p.length?(0,Nl.jsxs)("div",{className:_9(),children:[(0,Nl.jsxs)("div",{className:_9("controls"),children:[(0,Nl.jsx)(fb,{onChange:function(e){u(e)},placeholder:f9("controls.search"),className:_9("search"),value:s}),g&&(0,Nl.jsx)(t9,{data:g})]}),(0,Nl.jsx)("div",{className:_9("table-wrapper"),children:(0,Nl.jsx)("div",{className:_9("table-content"),children:(0,Nl.jsx)(pi,{theme:"yandex-cloud",data:m,columns:m9,settings:Bi,emptyDataMessage:f9("table.emptyDataMessage")})})})]}):(0,Nl.jsx)("div",{children:f9("noConsumersMessage.".concat(i?"stream":"topic"))})},b9=(0,ht.Z)("date-range"),w9=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)}},C9=function(e){var t=e.from,n=e.to,i=e.className,r=e.onChange,o=w9(t),a=w9(n);return(0,Nl.jsxs)("div",{className:b9(null,i),children:[(0,Nl.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:b9("input")}),"\u2014",(0,Nl.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:b9("input")})]})},k9={CPUCores:"CPUCores",DataSize:"DataSize",InFlightTxCount:"InFlightTxCount"},S9={CPUTimeUs:"CPUTimeUs",EndTime:"EndTime",ReadRows:"ReadRows",ReadBytes:"ReadBytes",UserSID:"UserSID"},x9=n(64603),L9=n.n(x9),E9=(0,ht.Z)("kv-top-queries"),D9="QueryText",N9="EndTime",M9="ReadRows",T9="ReadBytes",I9="UserSID",O9="OneLineQueryText",A9="QueryHash",R9={name:"CPUTimeUs",sortAccessor:function(e){return Number(e.CPUTimeUs)},width:120,align:pi.RIGHT,sortable:!1},P9={name:D9,sortAccessor:function(e){return Number(e.CPUTimeUs)},render:function(e){var t,n=e.row;return(0,Nl.jsx)("div",{className:E9("query"),children:(0,Nl.jsx)(TZ,{value:null===(t=n.QueryText)||void 0===t?void 0:t.toString(),maxQueryHeight:OZ})})},sortable:!1},Z9={name:N9,render:function(e){var t=e.row;return _s(new Date(t.EndTime).getTime())},align:pi.RIGHT},F9={name:M9,render:function(e){var t=e.row;return fs(t.ReadRows)},sortAccessor:function(e){return Number(e.ReadRows)},align:pi.RIGHT},j9={name:T9,render:function(e){var t=e.row;return fs(t.ReadBytes)},sortAccessor:function(e){return Number(e.ReadBytes)},align:pi.RIGHT},H9={name:I9,render:function(e){var t=e.row;return(0,Nl.jsx)("div",{className:E9("user-sid"),children:t.UserSID||"\u2013"})},sortAccessor:function(e){return String(e.UserSID)},align:pi.LEFT},B9={name:O9,header:"QueryText",render:function(e){var t,n=e.row;return(0,Nl.jsx)(IZ,{value:null===(t=n.QueryText)||void 0===t?void 0:t.toString()})},sortable:!1},z9={name:A9,render:function(e){var t,n=e.row;return t=String(n.QueryText),(L9().str(t)>>>0).toString(16).toUpperCase().padStart(8,"0")},width:130,sortable:!1},W9=function(){return[z9,B9,R9]},V9=JSON.parse('{"no-data":"No data","filter.text.placeholder":"Search by query text..."}'),Y9=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..."}'),U9="ydb-diagnostics-top-queries";Va.registerKeyset(Fa.En,U9,V9),Va.registerKeyset(Fa.Ru,U9,Y9);var K9=Va.keyset(U9),q9=(0,ht.Z)("kv-top-queries"),G9=function(t){var n=t.path,i=t.type,r=K(),o=ct(),a=lt(),s=ev((function(e){return e.schema})).autorefresh,u=ev((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,g=u.filters,v=[R9,P9,Z9,F9,j9,H9],m=(0,e.useRef)(!1),_=(0,e.useState)(g),y=(0,ne.Z)(_,2),b=y[0],w=y[1];(0,e.useEffect)((function(){r(function(e){return{type:zf,filters:e}}(b))}),[r,b]);var C=v.map((function(e){return Rt(Rt({},e),{},{sortable:(t=e.name,Object.values(S9).includes(t))});var t})),k=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*_i).getTime();w((function(e){return e.from||e.to?e:(m.current=!0,Rt(Rt({},e),{},{from:o,to:r}))}))}};Jg((function(e){m.current?m.current=!1:(e||r({type:Bf,data:{wasLoaded:!1,data:void 0}}),r(function(e){var t=e.database,n=e.filters;return oa({request:window.api.sendQuery({schema:"modern",query:Vf(t,n),database:t,action:"execute-scan"},{concurrentId:"executeTopQueries"}),actions:Hf,dataHandler:rr})}({database:n,filters:b})).then(k))}),[r,b,n],s);var S=(0,e.useCallback)((function(e){var t,n=e.QueryText;r(rf({input:n}));var i=vg(o),s=Mb(Rt(Rt({},i),{},(t={},(0,wt.Z)(t,On,An.query),(0,wt.Z)(t,Eb.queryTab,Rn.newQuery),t)));a.push(s)}),[r,a,o]);return(0,Nl.jsxs)("div",{className:q9(),children:[(0,Nl.jsxs)("div",{className:q9("controls"),children:[(0,Nl.jsx)(fb,{value:b.text,onChange:function(e){w((function(t){return Rt(Rt({},t),{},{text:e})}))},placeholder:K9("filter.text.placeholder"),className:q9("search")}),(0,Nl.jsx)(C9,{from:b.from,to:b.to,onChange:function(e){w((function(t){return Rt(Rt({},t),e)}))}})]}),l&&!c?(0,Nl.jsx)("div",{className:q9("loader"),children:(0,Nl.jsx)(KE,{size:"m"})}):d&&!d.isCancelled?(0,Nl.jsx)("div",{className:"error",children:sr(d)}):!p||ld(i)?K9("no-data"):(0,Nl.jsx)("div",{className:q9("table"),children:(0,Nl.jsx)(pi,{columns:C,data:p,settings:AZ,onRowClick:S,theme:"yandex-cloud"})})]})},$9=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%"}'),Q9=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%"}'),X9="ydb-diagnostics-top-shards";Va.registerKeyset(Fa.En,X9,$9),Va.registerKeyset(Fa.Ru,X9,Q9);var J9=Va.keyset(X9),eee=function(e){var t=e.value,n=e.onChange,i=e.className,r=t.mode===vp.Immediate?void 0:t.from,o=t.mode===vp.Immediate?void 0:t.to;return(0,Nl.jsxs)("div",{className:_ee("filters",i),children:[(0,Nl.jsxs)(Dy,{value:t.mode,onUpdate:function(e){if(!function(e,t){return Object.values(e).includes(t)}(vp,e)){var t=Object.values(vp).join(", ");throw new Error('Unexpected TopShards mode "'.concat(e,'". Should be one of: ').concat(t))}n({mode:e})},children:[(0,Nl.jsx)(Dy.Option,{value:vp.Immediate,children:J9("filters.mode.immediate")}),(0,Nl.jsx)(Dy.Option,{value:vp.History,children:J9("filters.mode.history")})]}),(0,Nl.jsx)(C9,{from:r,to:o,onChange:function(e){n(Rt({mode:vp.History},e))}})]})},tee=ws(60,80,["success","warning","danger"]),nee=["path","location"];function iee(e){var t=e.path,n=e.location,i=nn(e,nee),r=vg(n),o=yg(Rt(Rt({},r),{},{schema:t}));return(0,Nl.jsx)(yv,Rt({view:"normal",href:o},i))}var ree="TabletId",oee="CPUCores",aee="DataSize",see="Path",uee="NodeId",lee="InFlightTxCount",cee={TabletId:"TabletId",CPUCores:"CPUCores",DataSize:"DataSize (B)",Path:"Path",NodeId:"NodeId",PeakTime:"PeakTime",InFlightTxCount:"InFlightTxCount",IntervalEnd:"IntervalEnd"};var dee=function(e,t){return{name:see,header:cee[see],render:function(n){var i=n.row;return(0,Nl.jsx)(iee,{path:e+i.Path,location:t,children:i.Path})},sortable:!1}},hee={name:oee,header:cee[oee],render:function(e){var t,n=e.row;return t=n.CPUCores||0,"".concat(ps(100*Number(t),2),"%")},align:pi.RIGHT},fee={name:aee,header:cee[aee],render:function(e){var t=e.row;return fs(t.DataSize)},align:pi.RIGHT},pee={name:ree,header:cee[ree],render:function(e){var t=e.row;return t.TabletId?(0,Nl.jsx)(vv,{to:_g(bg.tablet,{id:t.TabletId}),children:t.TabletId}):"\u2013"},sortable:!1},gee={name:uee,header:cee[uee],render:function(e){var t=e.row;return t.NodeId?(0,Nl.jsx)(vv,{to:nM(t.NodeId),children:t.NodeId}):"\u2013"},align:pi.RIGHT},vee={name:oee,header:cee[oee],render:function(e){var t=e.row;return(0,Nl.jsx)($N,{value:ps(100*Number(t.CPUCores),2),theme:tee(100*Number(t.CPUCores))})},align:pi.RIGHT,sortable:!1},mee={name:lee,header:cee[lee],render:function(e){var t=e.row;return fs(t.InFlightTxCount)},align:pi.RIGHT},_ee=(0,ht.Z)("top-shards"),yee=Rt(Rt({},Bi),{},{dynamicRender:!1,externalSort:!0,disableSortReset:!0,defaultOrder:pi.DESCENDING}),bee="CPUCores",wee="PeakTime",Cee="IntervalEnd";function kee(e){return e?_s(new Date(e).getTime()):"\u2013"}function See(e){return e.to=Date.now(),e.from=e.to-1e3*_i,e}var xee=function(t){var n=t.tenantPath,i=t.type,r=K(),o=ct(),a=ev((function(e){return e.schema})),s=a.autorefresh,u=a.currentSchemaPath,l=ev((function(e){return e.shardsWorkload})),c=l.loading,d=l.data,h=(void 0===d?{}:d).result,f=void 0===h?void 0:h,p=l.filters,g=l.error,v=l.wasLoaded,m=(0,e.useState)((function(){var e=Rt({},p);return e.mode||(e.mode=vp.Immediate),e.from||e.to||See(e),e})),_=(0,ne.Z)(m,2),y=_[0],b=_[1],w=(0,e.useState)(bee),C=(0,ne.Z)(w,2),k=C[0],S=C[1];Jg((function(){var e;r(function(e){var t=e.database,n=e.path,i=void 0===n?"":n,r=e.sortOrder,o=e.filters;try{return oa({request:window.api.sendQuery({schema:"modern",query:(null===o||void 0===o?void 0:o.mode)===vp.Immediate?xp(i,r,t):Sp(i,o,r,t),database:t,action:"execute-scan"},{concurrentId:"shardsWorkload"}),actions:yp,dataHandler:rr})}catch(g){return{type:yp.FAILURE,error:g}}}({database:n,path:u,sortOrder:(e=k,e?e.split(",").map((function(e){return{columnId:e,order:"DESC"}})):void 0),filters:y}))}),[r,n,u,k,y],s),(0,e.useEffect)((function(){r({type:bp,data:{wasLoaded:!1,data:void 0}})}),[r,u,n,y]);var x=function(e){S(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=function(e,t){return[dee(e,t),hee,fee,pee,gee,mee]}(n,o),t=e.map((function(e){return Rt(Rt({},e),{},{sortable:(t=e.name,Object.values(k9).includes(t))});var t}));return y.mode===vp.History&&(t.splice(5,0,{name:wee,render:function(e){return kee(e.row.PeakTime)},sortable:!1}),t.push({name:Cee,render:function(e){return kee(e.row.IntervalEnd)}})),t}),[y.mode,n,o]);return(0,Nl.jsxs)("div",{className:_ee(),children:[(0,Nl.jsx)(eee,{value:y,onChange:function(e){var t=Rt({},e);if(!p.from&&!p.to&&!e.from&&!e.to)switch(e.mode){case vp.Immediate:t.from=t.to=void 0;break;case vp.History:See(t)}r(function(e){return{type:wp,filters:e}}(e)),b((function(e){return Rt(Rt({},e),t)}))}}),y.mode===vp.History&&(0,Nl.jsx)("div",{children:J9("description")}),function(){return c&&!v?(0,Nl.jsx)("div",{className:_ee("loader"),children:(0,Nl.jsx)(KE,{size:"m"})}):g&&!g.isCancelled?(0,Nl.jsx)("div",{className:"error",children:sr(g)}):!f||ld(i)?J9("no-data"):(0,Nl.jsx)("div",{className:_ee("table"),children:(0,Nl.jsx)(pi,{columns:L,data:f,settings:yee,theme:"yandex-cloud",onSort:x,sortOrder:(e=k,e?e.split(",").map((function(e){return{columnId:e,order:pi.DESCENDING}})):void 0)})});var e}()]})},Lee=new Set(["Type","State","DataSize","KeyColumnNames","DataColumnNames"]),Eee=function(e){var t,n=e.data,i=_R(null===n||void 0===n?void 0:n.PathDescription);if(!n)return(0,Nl.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)Lee.has(r)&&a.push($A(r,null===o||void 0===o?void 0:o[r]));return(0,Nl.jsx)(Tl,{title:i,info:a})},Dee=function(e){var t,n=null===e||void 0===e||null===(t=e.PathDescription)||void 0===t?void 0:t.PersQueueGroup;if(!n)return[];var i=n.Partitions,r=void 0===i?[]:i,o=n.PQTabletConfig,a=void 0===o?{PartitionConfig:{LifetimeSeconds:0}}:o,s=a.Codecs,u=a.MeteringMode,l=a.PartitionConfig,c=l.WriteSpeedInBytesPerSecond,d=l.StorageLimitBytes,h=Rl(XA,{Partitions:r,PQTabletConfig:a}),f=Rl(eR,{StorageLimitBytes:d,WriteSpeedInBytesPerSecond:c}),p=Rl(JA,{Codecs:s,MeteringMode:u});return[].concat((0,Ct.Z)(h),(0,Ct.Z)(f),(0,Ct.Z)(p))},Nee=JSON.parse('{"writeLagPopover":"Write lag, maximum among all topic partitions","writeIdleTimePopover":"Write idle time, maximum among all topic partitions"}'),Mee=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"}'),Tee="ydb-diagnostics-overview-topic-stats";Va.registerKeyset(Fa.En,Tee,Nee),Va.registerKeyset(Fa.Ru,Tee,Mee);var Iee=Va.keyset(Tee),Oee=(0,ht.Z)("ydb-overview-topic-stats"),Aee=function(e){return[{label:"Store size",value:os(e.storeSize)},{label:(0,Nl.jsx)(TF,{text:"Write idle time",popoverContent:(0,Nl.jsx)(B8,{text:Iee("writeIdleTimePopover"),type:"write"})}),value:bh(e.partitionsIdleTime)},{label:(0,Nl.jsx)(TF,{text:"Write lag",popoverContent:(0,Nl.jsx)(B8,{text:Iee("writeLagPopover"),type:"write"})}),value:bh(e.partitionsWriteLag)},{label:"Average write speed",value:(0,Nl.jsx)(E8,{data:e.writeSpeed,withValue:!1})}]},Ree=function(e){var t=e.writeSpeed;return[{label:"per minute",value:as(t.perMinute)},{label:"per hour",value:as(t.perHour)},{label:"per day",value:as(t.perDay)}]},Pee=function(){var e=ev((function(e){return e.topic})),t=e.error,n=e.loading,i=e.wasLoaded,r=ev(Ih);return n&&!i?(0,Nl.jsx)("div",{className:Oee(),children:(0,Nl.jsx)(jI,{size:"s"})}):t||!r?(0,Nl.jsxs)("div",{className:Oee(),children:[(0,Nl.jsx)("div",{className:Oee("title"),children:"Stats"}),(0,Nl.jsx)(Sb,{error:t})]}):(0,Nl.jsxs)("div",{className:Oee(),children:[(0,Nl.jsx)("div",{className:Oee("title"),children:"Stats"}),(0,Nl.jsx)("div",{className:Oee("info"),children:(0,Nl.jsx)(Tl,{info:Aee(r),multilineLabels:!0})}),(0,Nl.jsx)("div",{className:Oee("bytes-written"),children:(0,Nl.jsx)(Tl,{info:Ree(r)})})]})},Zee=function(e){var t=e.data,n=_R(null===t||void 0===t?void 0:t.PathDescription),i=ev((function(e){return e.schema})).error;return i?(0,Nl.jsx)("div",{className:"error",children:i.statusText}):t?(0,Nl.jsxs)("div",{children:[(0,Nl.jsx)(Tl,{title:n,info:Dee(t)}),(0,Nl.jsx)(Pee,{})]}):(0,Nl.jsxs)("div",{className:"error",children:["No ",n," data"]})},Fee=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=UA("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=Rl(tR,{Mode:a,Format:s}),c=Dee(t);return[u].concat((0,Ct.Z)(l),(0,Ct.Z)(c))},jee=function(e){var t=e.data,n=e.topic,i=_R(null===t||void 0===t?void 0:t.PathDescription),r=ev((function(e){return e.schema})).error;return r?(0,Nl.jsx)("div",{className:"error",children:r.statusText}):t&&n?(0,Nl.jsxs)("div",{children:[(0,Nl.jsx)(Tl,{title:i,info:Fee(t,n)}),(0,Nl.jsx)(Pee,{})]}):(0,Nl.jsxs)("div",{className:"error",children:["No ",i," data"]})},Hee=function(e){return e.SchemaPresetName&&void 0!==e.SchemaPresetId},Bee=function(e){var t,n,i,r=null===e||void 0===e?void 0:e.reduce((function(e,t){return e+(pr(t.Bytes)?Number(t.Bytes):0)}),0),o=null===e||void 0===e?void 0:e.reduce((function(e,t){return e+(pr(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=fs(o))&&void 0!==n?n:0},{label:"DataSize",value:null!==(i=os(r))&&void 0!==i?i:0}]},zee=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(bh(1e3*e.Enabled.ExpireAfterSeconds,1))}};var Wee=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,g=o.ColumnTableDescription,v=void 0===g?{}:g,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,D=s.InFlightTxCount,N=s.RowUpdates,M=s.RowDeletes,T=s.RowReads,I=s.RangeReads,O=s.RangeReadRows,A=f.FollowerGroups,R=f.FollowerCount,P=f.CrossDataCenterFollowerCount,Z=[];switch(t){case vc.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(os(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 g=zee(t);g&&s.push(g)}return s.push({label:"Bloom filter",value:a?"Enabled":"Disabled"}),s}(f,p);break;case vc.EPathTypeColumnTable:Z=function(e){var t=[];if(t.push({label:"Standalone",value:String(!Hee(e))}),e.Sharding&&e.Sharding.HashSharding&&t.push({label:"Sharding",value:"hash"}),e.TtlSettings){var n=zee(null===e||void 0===e?void 0:e.TtlSettings);n&&t.push(n)}return t}(v)}i=t===vc.EPathTypeColumnTable&&Hee(v)?[Bee(n)]:[Rl(oR,{PartCount:m,RowCount:_,DataSize:y,IndexSize:b}),Rl(oR,{LastAccessTime:w,LastUpdateTime:C}),Rl(oR,{ImmediateTxCompleted:k,PlannedTxCompleted:S,TxRejectedByOverload:x,TxRejectedBySpace:L,TxCompleteLagMsec:E,InFlightTxCount:D}),Rl(oR,{RowUpdates:N,RowDeletes:M,RowReads:T,RangeReads:I,RangeReadRows:O})];var F=Rl(nR,l),j=[];return Array.isArray(A)&&A.length>0?j=Rl(iR,A[0]):void 0!==R?j.push(rR("FollowerCount",R)):void 0!==P&&j.push(rR("CrossDataCenterFollowerCount",P)),{generalInfo:Z,tableStatsInfo:i,tabletMetricsInfo:F,partitionConfigInfo:j}},Vee=JSON.parse('{"tableStats":"Table Stats","tabletMetrics":"Tablet Metrics","partitionConfig":"Partition Config"}'),Yee=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"}'),Uee="ydb-diagnostics-overview-table-info";Va.registerKeyset(Fa.En,Uee,Vee),Va.registerKeyset(Fa.Ru,Uee,Yee);var Kee=Va.keyset(Uee),qee=(0,ht.Z)("ydb-diagnostics-table-info"),Gee=function(t){var n=t.data,i=t.type,r=t.olapStats,o=_R(null===n||void 0===n?void 0:n.PathDescription),a=(0,e.useMemo)((function(){return Wee(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,Nl.jsxs)("div",{className:qee(),children:[(0,Nl.jsx)(Tl,{info:u,title:o,className:qee("info-block"),renderEmptyState:function(){return(0,Nl.jsx)("div",{className:qee("title"),children:o})}}),(0,Nl.jsxs)("div",{className:qee("row"),children:[(0,Nl.jsx)("div",{className:qee("col"),children:c.map((function(e,t){return(0,Nl.jsx)(Tl,{info:e,title:0===t?Kee("tableStats"):void 0,className:qee("info-block"),renderEmptyState:function(){return null}},t)}))}),h.length>0||p.length>0?(0,Nl.jsxs)("div",{className:qee("col"),children:[(0,Nl.jsx)(Tl,{info:h,title:Kee("tabletMetrics"),className:qee("info-block"),renderEmptyState:function(){return null}}),(0,Nl.jsx)(Tl,{info:p,title:Kee("partitionConfig"),className:qee("info-block"),renderEmptyState:function(){return null}})]}):null]})]})};var $ee=function(t){var n=t.type,i=t.tenantName,r=K(),o=ev((function(e){return e.schema})),a=o.autorefresh,s=o.currentSchemaPath,u=ev((function(e){return e.overview})),l=u.data,c=u.additionalData,d=u.loading,h=u.wasLoaded,f=u.error,p=ev((function(e){return e.olapStats})),g=p.data,v=(void 0===g?{result:void 0}:g).result,m=p.loading,_=p.wasLoaded,y=fd(n),b=ev((function(e){return Td(e,s,n)}),L),w=d&&!h||m&&!_,C=y&&!b,k=(0,e.useCallback)((function(e){var t=s||i;t&&(r(Fd(t)),e||r({type:Pd}),y?b&&r(function(e){var t=e.map((function(e){return window.api.getDescribe({path:e},{concurrentId:"getOverviewBatched|".concat(e)})}));return oa({request:Promise.all(t),actions:Ad,dataHandler:function(e){var t=(0,Od.Z)(e);return{data:t[0],additionalData:t.slice(1)}}})}([t].concat((0,Ct.Z)(b)))):r(function(e){var t=e.path;return oa({request:window.api.getDescribe({path:t},{concurrentId:"getOverview"}),actions:Ad,dataHandler:function(e){return{data:e}}})}({path:t})),od(n)&&ld(n)&&(e||r({type:Zp}),r(Hp({path:t}))),_d(n)&&r(Nh(s)))}),[i,s,n,y,b,r]);return Jg(k,[k],a),w||C?(0,Nl.jsx)(jI,{size:"m"}):f?(0,Nl.jsx)(Sb,{error:f}):(0,Nl.jsx)("div",{children:function(){var e,t,i=(e={},(0,wt.Z)(e,vc.EPathTypeInvalid,void 0),(0,wt.Z)(e,vc.EPathTypeDir,void 0),(0,wt.Z)(e,vc.EPathTypeTable,void 0),(0,wt.Z)(e,vc.EPathTypeSubDomain,void 0),(0,wt.Z)(e,vc.EPathTypeTableIndex,(function(){return(0,Nl.jsx)(Eee,{data:l})})),(0,wt.Z)(e,vc.EPathTypeExtSubDomain,void 0),(0,wt.Z)(e,vc.EPathTypeColumnStore,void 0),(0,wt.Z)(e,vc.EPathTypeColumnTable,void 0),(0,wt.Z)(e,vc.EPathTypeCdcStream,(function(){return(0,Nl.jsx)(jee,{data:l,topic:null===c||void 0===c?void 0:c[0]})})),(0,wt.Z)(e,vc.EPathTypePersQueueGroup,(function(){return(0,Nl.jsx)(Zee,{data:l})})),(0,wt.Z)(e,vc.EPathTypeExternalTable,(function(){return(0,Nl.jsx)(AR,{data:l})})),(0,wt.Z)(e,vc.EPathTypeExternalDataSource,(function(){return(0,Nl.jsx)(DR,{data:l})})),e);return n&&(null===(t=i[n])||void 0===t?void 0:t.call(i))||(0,Nl.jsx)(Gee,{data:l,type:n,olapStats:v})}()})},Qee=["title","error","loading","wasLoaded","tableClassNameModifiers"],Xee=(0,ht.Z)("tenant-overview");function Jee(e){var t=e.title,n=e.error,i=e.loading,r=e.wasLoaded,o=e.tableClassNameModifiers,a=void 0===o?{}:o,s=nn(e,Qee);return(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)("div",{className:Xee("title"),children:t}),(0,Nl.jsx)("div",{className:Xee("table",a),children:n?(0,Nl.jsx)(Sb,{error:n}):i&&!r?(0,Nl.jsx)(mb,{rows:Si}):(0,Nl.jsx)(pi,Rt({theme:"yandex-cloud",settings:zi},s))})]})}var ete=JSON.parse('{"no-data":"No data","no-pools-data":"No pools data","top-nodes.empty-data":"No such nodes","title.pools":"Pools","title.metrics":"Metrics","top-groups.empty-data":"No such groups","top":"Top","nodes":"nodes","shards":"shards","groups":"groups","queries":"queries","tables":"tables","by-pools-usage":"by pools usage","by-cpu-time":"by cpu time","by-cpu-usage":"by cpu usage","by-load":"by load","by-memory":"by memory","by-usage":"by usage","by-size":"by size"}'),tte=JSON.parse('{"no-data":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445","no-pools-data":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u043f\u0443\u043b\u0430\u0445","top-nodes.empty-data":"\u041d\u0435\u0442 \u0443\u0437\u043b\u043e\u0432","title.pools":"\u041f\u0443\u043b\u044b","title.metrics":"\u041c\u0435\u0442\u0440\u0438\u043a\u0438","top-groups.empty-data":"\u041d\u0435\u0442 \u0433\u0440\u0443\u043f\u043f","top":"\u0422\u043e\u043f","nodes":"\u0443\u0437\u043b\u043e\u0432","shards":"\u0448\u0430\u0440\u0434\u043e\u0432","groups":"\u0433\u0440\u0443\u043f\u043f","queries":"\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432","tables":"\u0442\u0430\u0431\u043b\u0438\u0446","by-pools-usage":"\u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u043f\u0443\u043b\u043e\u0432","by-cpu-time":"\u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 cpu","by-cpu-usage":"\u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e cpu","by-load":"\u043f\u043e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435","by-memory":"\u043f\u043e \u043f\u0430\u043c\u044f\u0442\u0438","by-usage":"\u043f\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044e","by-size":"\u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443"}'),nte="ydb-diagnostics-tenant-overview";Va.registerKeyset(Fa.En,nte,ete),Va.registerKeyset(Fa.Ru,nte,tte);var ite=Va.keyset(nte),rte=function(e){var t=e.prefix,n=void 0===t?ite("top"):t,i=e.entity,r=e.postfix,o=e.link;return o?(0,Nl.jsxs)(Nl.Fragment,{children:[n," ",(0,Nl.jsx)(vv,{to:o,children:i})," ",r]}):"".concat(n," ").concat(i," ").concat(r)};function ote(t){var n,i=t.path,r=t.additionalNodesProps,o=K(),a=rv(),s=ev((function(e){return e.topNodesByLoad})),u=s.wasLoaded,l=s.loading,c=s.error,d=ev((function(e){return e.schema})).autorefresh,h=ev(zs),f=(n=null===r||void 0===r?void 0:r.getNodeRef,[dI,eI,nI(n),oI]),p=(0,e.useCallback)((function(e){e||o(Ws()),o(function(e){var t=e.type,n=void 0===t?"any":t,i=e.sortOrder,r=void 0===i?-1:i,o=e.sortValue,a=void 0===o?"LoadAverage":o,s=e.limit,u=void 0===s?Si:s,l=nn(e,Zs);return oa({request:window.api.getNodes(Rt({type:n,sortOrder:r,sortValue:a,limit:u},l),{concurrentId:Bs}),actions:Fs,dataHandler:Ss})}({tenant:i}))}),[o,i]);Jg(p,[p],d);var g=rte({entity:ite("nodes"),postfix:ite("by-load"),link:Mb(Rt(Rt({},a),{},(0,wt.Z)({},Eb.diagnosticsTab,Pn.nodes)))});return(0,Nl.jsx)(Jee,{data:h||[],columns:f,title:g,loading:l,wasLoaded:u,error:c,emptyDataMessage:ite("top-nodes.empty-data")})}function ate(t){var n,i=t.path,r=t.additionalNodesProps,o=K(),a=rv(),s=ev((function(e){return e.topNodesByCpu})),u=s.wasLoaded,l=s.loading,c=s.error,d=ev((function(e){return e.schema})).autorefresh,h=ev(Gs),f=(n=null===r||void 0===r?void 0:r.getNodeRef,[uI,eI,nI(n)]),p=(0,e.useCallback)((function(e){e||o($s()),o(function(e){var t=e.type,n=void 0===t?"any":t,i=e.sortOrder,r=void 0===i?-1:i,o=e.sortValue,a=void 0===o?"CPU":o,s=e.limit,u=void 0===s?Si:s,l=nn(e,Vs);return oa({request:window.api.getNodes(Rt({type:n,sortOrder:r,sortValue:a,limit:u},l),{concurrentId:qs}),actions:Ys,dataHandler:Ss})}({tenant:i}))}),[o,i]);Jg(p,[p],d);var g=rte({entity:ite("nodes"),postfix:ite("by-pools-usage"),link:Mb(Rt(Rt({},a),{},(0,wt.Z)({},Eb.diagnosticsTab,Pn.nodes)))});return(0,Nl.jsx)(Jee,{data:h||[],columns:f,title:g,loading:l,wasLoaded:u,error:c,emptyDataMessage:ite("top-nodes.empty-data")})}var ste=function(e){var t=e.path,n=K(),i=ct(),r=vg(i),o=ev((function(e){return e.schema})),a=o.autorefresh,s=o.currentSchemaPath,u=ev((function(e){return e.tenantOverviewTopShards})),l=u.loading,c=u.data,d=(void 0===c?{}:c).result,h=void 0===d?void 0:d,f=u.error,p=u.wasLoaded;Jg((function(e){e||n({type:Dp}),n(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return oa({request:window.api.sendQuery({schema:"modern",query:Mp(t,e),database:e,action:Tp},{concurrentId:"executeTopShards"}),actions:Ep,dataHandler:rr})}(t,s))}),[n,t,s],a);var g=function(e,t){return[pee,dee(e,t),vee]}(t,i),v=rte({entity:ite("shards"),postfix:ite("by-cpu-usage"),link:Mb(Rt(Rt({},r),{},(0,wt.Z)({},Eb.diagnosticsTab,Pn.topShards)))});return(0,Nl.jsx)(Jee,{data:h||[],columns:g,title:v,loading:l,wasLoaded:p,error:f,tableClassNameModifiers:{"top-queries":!0}})};function ute(t){var n=t.path,i=K(),r=ct(),o=lt(),a=vg(r),s=ev((function(e){return e.schema})).autorefresh,u=ev((function(e){return e.tenantOverviewTopQueries})),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,g=W9();Jg((function(e){e||i({type:Kf}),i($f(n))}),[i,n],s);var v=(0,e.useCallback)((function(e){var t,n=e.QueryText;i(rf({input:n}));var a=vg(r),s=Mb(Rt(Rt({},a),{},(t={},(0,wt.Z)(t,On,An.query),(0,wt.Z)(t,Eb.queryTab,Rn.newQuery),t)));o.push(s)}),[i,o,r]),m=rte({entity:ite("queries"),postfix:ite("by-cpu-time"),link:Mb(Rt(Rt({},a),{},(0,wt.Z)({},Eb.diagnosticsTab,Pn.topQueries)))});return(0,Nl.jsx)(Jee,{data:p||[],columns:g,onRowClick:v,title:m,loading:l,wasLoaded:c,error:d,tableClassNameModifiers:{"top-queries":!0}})}function lte(e){var t=e.path,n=e.additionalNodesProps;return(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)(ote,{path:t,additionalNodesProps:n}),(0,Nl.jsx)(ate,{path:t,additionalNodesProps:n}),(0,Nl.jsx)(ste,{path:t}),(0,Nl.jsx)(ute,{path:t})]})}var cte=n(66589),dte=n.n(cte),hte=(0,ht.Z)("issue-tree-item"),fte=function(e){var t=e.status,n=e.message,i=e.type,r=e.onClick;return(0,Nl.jsxs)("div",{className:hte(),onClick:r,children:[(0,Nl.jsx)("div",{className:hte("field",{status:!0}),children:(0,Nl.jsx)(hy,{mode:"icons",status:t,name:i})}),(0,Nl.jsx)("div",{className:hte("field",{message:!0}),children:n})]})},pte=["status","message","type","reasonsItems","level"],gte=(0,ht.Z)("issue-tree"),vte=function(t){var n=t.issueTree,i=(0,e.useState)({}),r=(0,ne.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=nn(e,pte),h="undefined"===typeof o[t]||o[t],f=function(){a((function(e){return Rt(Rt({},e),{},(0,wt.Z)({},t,!h))}))};return(0,Nl.jsxs)(yO,{name:(0,Nl.jsx)(fte,{status:n,message:i,type:r}),collapsed:h,hasArrow:!0,onClick:f,onArrowClick:f,level:c-1,children:[u(dte()(d,["reason"])),s(l||[])]},t)}))}),[n,o]),u=(0,e.useCallback)((function(e){return e?(0,Nl.jsx)("div",{className:gte("info-panel"),children:(0,Nl.jsx)(Dl(),{data:e,search:!1,isExpanded:function(){return!0},className:gte("inspector")})}):null}),[n]);return(0,Nl.jsx)("div",{className:gte(),children:(0,Nl.jsx)("div",{className:gte("block"),children:s([n])})})},mte=JSON.parse('{"title.healthcheck":"Healthcheck","label.update":"Update","label.show-details":"Show details","label.issues":"Issues:","status_message.ok":"No issues","no-data":"no healthcheck data"}'),_te=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","label.issues":"\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b:","status_message.ok":"\u041d\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c","no-data":"\u043d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 healthcheck"}'),yte="ydb-diagnostics-healthcheck";Va.registerKeyset(Fa.En,yte,mte),Va.registerKeyset(Fa.Ru,yte,_te);var bte,wte,Cte,kte=Va.keyset(yte),Ste=(0,ht.Z)("healthcheck");function xte(e){var t=e.issueTrees,n=e.loading,i=e.wasLoaded,r=e.error;return(0,Nl.jsx)("div",{className:Ste("details"),children:(0,Nl.jsx)("div",{className:Ste("details-content-wrapper"),children:r?(0,Nl.jsx)(Sb,{error:r,defaultMessage:kte("no-data")}):n&&!i?(0,Nl.jsx)(jI,{size:"m"}):t&&t.length?(0,Nl.jsx)(Nl.Fragment,{children:t.map((function(e){return(0,Nl.jsx)(vte,{issueTree:e},e.id)}))}):kte("status_message.ok")})})}function Lte(){return Lte=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},Lte.apply(this,arguments)}var Ete=function(t){return e.createElement("svg",Lte({viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),bte||(bte=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"})),wte||(wte=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"})),Cte||(Cte=e.createElement("path",{d:"M19 3v4h-4",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})))},Dte=(0,ht.Z)("ydb-diagnostic-card");function Nte(e){var t=e.children,n=e.className,i=e.active;return(0,Nl.jsx)("div",{className:Dte({active:i},n),children:t})}var Mte=(0,ht.Z)("healthcheck");function Tte(e){var t=e.selfCheckResult,n=e.issuesStatistics,i=e.loading,r=e.wasLoaded,o=e.onUpdate,a=e.error,s=e.active;return(0,Nl.jsxs)(Nte,{className:Mte("preview"),active:s,children:[function(){var e=t.toLowerCase();return i&&!r?null:(0,Nl.jsxs)("div",{className:Mte("preview-header"),children:[(0,Nl.jsxs)("div",{className:Mte("preview-title-wrapper"),children:[(0,Nl.jsx)("div",{className:Mte("preview-title"),children:kte("title.healthcheck")}),(0,Nl.jsx)(_o.z,{size:"s",onClick:o,loading:i,view:"flat-secondary",children:(0,Nl.jsx)(yo.J,{data:Ete,width:20,height:20})})]}),(0,Nl.jsx)("div",{className:Mte("self-check-status-indicator",(0,wt.Z)({},e,!0)),children:t})]})}(),a?(0,Nl.jsx)(Sb,{error:a,defaultMessage:kte("no-data")}):i&&!r?(0,Nl.jsx)(jI,{size:"m"}):(0,Nl.jsx)("div",{className:Mte("preview-content"),children:n&&n.length?(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)("div",{children:kte("label.issues")}),(0,Nl.jsx)("div",{className:Mte("issues-statistics"),children:n.map((function(e){var t=(0,ne.Z)(e,2),n=t[0],i=t[1];return(0,Nl.jsx)(hy,{mode:"icons",status:n,label:i.toString(),size:"l"},n)}))})]}):kte("status_message.ok")})]})}var Ite=(0,ht.Z)("ydb-circular-progress-bar");function Ote(e){var t=e.size,n=void 0===t?100:t,i=e.progress,r=void 0===i?0:i,o=e.strokeWidth,a=void 0===o?10:o,s=e.content,u=e.status,l=e.circleBgClassName,c=n/2,d=n/2-a/2,h=2*Math.PI*d,f=(100-ah(r))/100*h;return(0,Nl.jsxs)("div",{className:Ite("wrapper"),children:[s&&(0,Nl.jsx)("div",{className:Ite("content"),children:s}),(0,Nl.jsxs)("svg",{className:Ite(),width:n,height:n,children:[(0,Nl.jsx)("circle",{className:Ite("circle-bg",l),cx:c,cy:c,r:d,strokeWidth:a}),(0,Nl.jsx)("circle",{className:Ite("circle",{status:null===u||void 0===u?void 0:u.toLocaleLowerCase()}),cx:c,cy:c,r:d,strokeWidth:a,strokeDasharray:h,strokeDashoffset:f})]})]})}var Ate=(0,ht.Z)("ydb-metrics-card");function Rte(e){var t=e.active,n=e.progress,i=e.label,r=e.status,o=e.resourcesUsed;return(0,Nl.jsxs)(Nte,{className:Ate({active:t}),active:t,children:[(0,Nl.jsx)("div",{className:Ate("header"),children:i&&(0,Nl.jsx)("div",{className:Ate("label"),children:i})}),(0,Nl.jsx)(Ote,{size:172,strokeWidth:11,progress:n||0,content:(0,Nl.jsxs)("div",{className:Ate("content"),children:[n&&(0,Nl.jsx)("div",{className:Ate("progress"),children:th(n)}),o?(0,Nl.jsx)("div",{className:Ate("resources"),children:o}):ite("no-data")]}),status:r,circleBgClassName:Ate("progress-bar-circle-bg")})]})}var Pte=(0,ht.Z)("metrics-cards");function Zte(e){var t,n=e.metrics,i=e.issuesStatistics,r=e.selfCheckResult,o=e.fetchHealthcheck,a=e.healthcheckLoading,s=e.healthCheckWasLoaded,u=e.healthcheckError,l=ct(),c=n||{},d=c.memoryUsed,h=c.memoryLimit,f=c.cpuUsed,p=c.cpuUsage,g=c.storageUsed,v=c.storageLimit,m=ev((function(e){return e.tenant})).metricsTab,_=eh(g,v),y=eh(d,h),b=nh(p),w=ih(_),C=rh(y),k=oh({cpu:f,storage:g,memory:d}),S=k.cpu,x=k.storage,L=k.memory,E=vg(l),D=(t={},(0,wt.Z)(t,Fn.cpu,Mb(Rt(Rt({},E),{},(0,wt.Z)({},Eb.metricsTab,Fn.cpu)))),(0,wt.Z)(t,Fn.storage,Mb(Rt(Rt({},E),{},(0,wt.Z)({},Eb.metricsTab,Fn.storage)))),(0,wt.Z)(t,Fn.memory,Mb(Rt(Rt({},E),{},(0,wt.Z)({},Eb.metricsTab,Fn.memory)))),(0,wt.Z)(t,Fn.healthcheck,Mb(Rt(Rt({},E),{},(0,wt.Z)({},Eb.metricsTab,Fn.healthcheck)))),t);return(0,Nl.jsxs)("div",{className:Pte(),children:[(0,Nl.jsx)(cv,{to:D.cpu,className:Pte("tab"),children:(0,Nl.jsx)(Rte,{label:"CPU",progress:p,status:b,resourcesUsed:S,active:m===Fn.cpu})}),(0,Nl.jsx)(cv,{to:D.storage,className:Pte("tab"),children:(0,Nl.jsx)(Rte,{label:"Storage",progress:_,status:w,resourcesUsed:x,active:m===Fn.storage})}),(0,Nl.jsx)(cv,{to:D.memory,className:Pte("tab"),children:(0,Nl.jsx)(Rte,{label:"Memory",progress:y,status:C,resourcesUsed:L,active:m===Fn.memory})}),(0,Nl.jsx)(cv,{to:D.healthcheck,className:Pte("tab"),children:(0,Nl.jsx)(Tte,{selfCheckResult:r,issuesStatistics:i,onUpdate:o,loading:a,wasLoaded:s,error:u,active:m===Fn.healthcheck})})]})}function Fte(e){var t=e.path,n=K(),i=ct(),r=ev((function(e){return e.schema})).autorefresh,o=ev((function(e){return e.executeTopTables})),a=o.loading,s=o.wasLoaded,u=o.error,l=o.data,c=(void 0===l?{}:l).result,d=void 0===c?void 0:c;Jg((function(e){e||n({type:Xf}),n(tp(t))}),[n,t],r);var h=[{name:"Size",width:80,sortable:!1,render:function(e){var t=e.row;return function(e){var t=Xa(null!==d&&void 0!==d&&d.length?Number(d[0].Size):0,0);return es({value:e,size:t,precision:1})}(Number(t.Size))},align:pi.RIGHT},{name:"Path",sortable:!1,render:function(e){var t=e.row;return t.Path?(0,Nl.jsx)(KN,{content:t.Path,children:(0,Nl.jsx)(iee,{path:String(t.Path),location:i,children:t.Path})}):null}}],f=rte({entity:ite("tables"),postfix:ite("by-size")});return(0,Nl.jsx)(Jee,{data:d||[],columns:h,title:f,loading:a,wasLoaded:s,error:u})}function jte(t){var n=t.tenant,i=K(),r=rv(),o=ev((function(e){return e.schema})).autorefresh,a=ev((function(e){return e.topStorageGroups})),s=a.loading,u=a.wasLoaded,l=a.error,c=ev(gl),d=HM(),h=(0,e.useCallback)((function(e){e||i(vl()),i(pl({tenant:n}))}),[i,n]);Jg(h,[h],o);var f=rte({entity:ite("groups"),postfix:ite("by-usage"),link:Mb(Rt(Rt({},r),{},(0,wt.Z)({},Eb.diagnosticsTab,Pn.storage)))});return(0,Nl.jsx)(Jee,{data:c||[],columns:d,title:f,loading:s,wasLoaded:u,error:l})}var Hte,Bte,zte=(0,ht.Z)("tenant-overview");function Wte(e){var t=e.tenantName,n=e.metrics,i=n.blobStorageUsed,r=n.tableStorageUsed,o=n.blobStorageLimit,a=n.tableStorageLimit,s=function(e,t){var n=Xa(Number(o||i),0);return ds(e,t,n)},u=[{label:"Database storage",value:(0,Nl.jsx)(jT,{value:i,capacity:o,formatValues:s,colorizeProgress:!0,warningThreshold:75,dangerThreshold:85})},{label:"Table storage",value:(0,Nl.jsx)(jT,{value:r,capacity:a,formatValues:s,colorizeProgress:!0,warningThreshold:75,dangerThreshold:85})}];return(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)(Tl,{className:zte("storage-info"),title:"Storage details",info:u}),(0,Nl.jsx)(Fte,{path:t}),(0,Nl.jsx)(jte,{tenant:t})]})}function Vte(t){var n=t.path,i=t.additionalNodesProps,r=K(),o=rv(),a=ev((function(e){return e.topNodesByMemory})),s=a.wasLoaded,u=a.loading,l=a.error,c=ev((function(e){return e.schema})).autorefresh,d=ev(nu),h=function(e){var t=e.tabletsPath,n=e.getNodeRef;return[eI,tI(n),aI,dI,hI,fI,pI,gI,cI(t)]}({getNodeRef:null===i||void 0===i?void 0:i.getNodeRef}),f=(0,e.useCallback)((function(e){e||r(iu()),r(function(e){var t=e.type,n=void 0===t?"any":t,i=e.sortOrder,r=void 0===i?-1:i,o=e.sortValue,a=void 0===o?"Memory":o,s=e.limit,u=void 0===s?Si:s,l=nn(e,Qs);return oa({request:window.api.getNodes(Rt({type:n,sortOrder:r,sortValue:a,limit:u},l),{concurrentId:tu}),actions:Xs,dataHandler:Ss})}({tenant:n}))}),[r,n]);Jg(f,[f],c);var p=rte({entity:ite("nodes"),postfix:ite("by-memory"),link:Mb(Rt(Rt({},o),{},(0,wt.Z)({},Eb.diagnosticsTab,Pn.nodes)))});return(0,Nl.jsx)(Jee,{data:d||[],columns:h,title:p,loading:u,wasLoaded:s,error:l,emptyDataMessage:ite("top-nodes.empty-data")})}function Yte(e){var t=e.path;return(0,Nl.jsx)(Vte,{path:t})}!function(e){e.UNSPECIFIED="UNSPECIFIED",e.GOOD="GOOD",e.DEGRADED="DEGRADED",e.MAINTENANCE_REQUIRED="MAINTENANCE_REQUIRED",e.EMERGENCY="EMERGENCY"}(Hte||(Hte={})),function(e){e.UNSPECIFIED="UNSPECIFIED",e.GREY="GREY",e.GREEN="GREEN",e.BLUE="BLUE",e.YELLOW="YELLOW",e.ORANGE="ORANGE",e.RED="RED"}(Bte||(Bte={}));var Ute=function(t){var n=K(),i=ev((function(e){return e.healthcheckInfo})),r=i.data,o=i.loading,a=i.wasLoaded,s=i.error,u=(null===r||void 0===r?void 0:r.self_check_result)||Hte.UNSPECIFIED,l=ev(gp),c=ev(pp),d=(0,e.useCallback)((function(){var e;!(arguments.length>0&&void 0!==arguments[0])||arguments[0]||n(mp()),n((e=t,oa({request:window.api.getHealthcheckInfo(e,{concurrentId:"getHealthcheckInfo"}),actions:ip})))}),[n,t]);return{issueTrees:c,issuesStatistics:l,fetchHealthcheck:d,loading:o,wasLoaded:a,error:s,selfCheckResult:u}},Kte=(0,ht.Z)("tenant-overview");function qte(t){var n,i=t.tenantName,r=t.additionalTenantProps,o=t.additionalNodesProps,a=K(),s=ev((function(e){return e.tenant})),u=s.tenant,l=s.loading,c=s.wasLoaded,d=s.metricsTab,h=ev((function(e){return e.schema})).autorefresh,f=Ute(i),p=f.issueTrees,g=f.issuesStatistics,v=f.selfCheckResult,m=f.fetchHealthcheck,_=f.loading,y=f.wasLoaded,b=f.error,w=(0,e.useCallback)((function(){!(arguments.length>0&&void 0!==arguments[0])||arguments[0]||a(Du()),a(Su({path:i}))}),[a,i]);Jg((function(e){w(e),m(e)}),[w,m],h);var C=u||{},k=C.Name,S=C.State,x=C.Type,L=id(x),E=Xd(u),D=E.cpu,N=E.blobStorage,M=E.tableStorage,T=E.memory,I=E.cpuUsage,O=E.blobStorageLimit,A=E.tableStorageLimit,R={memoryUsed:T,memoryLimit:E.memoryLimit,cpuUsed:D,cpuUsage:I,storageUsed:N,storageLimit:O},P={blobStorageUsed:N,blobStorageLimit:O,tableStorageUsed:M,tableStorageLimit:A};return l&&!c?(0,Nl.jsx)("div",{className:Kte("loader"),children:(0,Nl.jsx)(KE,{size:"m"})}):(0,Nl.jsxs)("div",{className:Kte(),children:[(0,Nl.jsxs)("div",{className:Kte("info"),children:[(0,Nl.jsx)("div",{className:Kte("top-label"),children:L}),(0,Nl.jsxs)("div",{className:Kte("top"),children:[(0,Nl.jsx)("div",{className:Kte("tenant-name-wrapper"),children:(0,Nl.jsx)(hy,{status:S,name:k||Ei,withLeftTrim:!0,hasClipboardButton:Boolean(u),clipboardButtonAlwaysVisible:!0})}),null===r||void 0===r||null===(n=r.getMonitoringLink)||void 0===n?void 0:n.call(r,k,x)]}),(0,Nl.jsx)(Zte,{metrics:R,issuesStatistics:g,selfCheckResult:v,fetchHealthcheck:m,healthcheckLoading:_,healthCheckWasLoaded:y,healthcheckError:b})]}),function(){switch(d){case Fn.cpu:return(0,Nl.jsx)(lte,{path:i,additionalNodesProps:o});case Fn.storage:return(0,Nl.jsx)(Wte,{tenantName:i,metrics:P});case Fn.memory:return(0,Nl.jsx)(Yte,{path:i});case Fn.healthcheck:return(0,Nl.jsx)(xte,{issueTrees:p,loading:_,wasLoaded:y,error:b});default:return}}()]})}var Gte=(0,ht.Z)("kv-detailed-overview");var $te,Qte=function(e){var t=e.type,n=e.tenantName,i=e.additionalTenantProps,r=e.additionalNodesProps,o=Q((function(e){return e.schema})).currentSchemaPath,a=n===o;return(0,Nl.jsx)("div",{className:Gte(),children:a?(0,Nl.jsx)("div",{className:Gte("section"),children:(0,Nl.jsx)(qte,{tenantName:n,additionalTenantProps:i,additionalNodesProps:r})}):(0,Nl.jsx)($ee,{type:t,tenantName:n})})},Xte={id:Pn.overview,title:"Info"},Jte={id:Pn.topQueries,title:"Top queries"},ene={id:Pn.topShards,title:"Top shards"},tne={id:Pn.nodes,title:"Nodes"},nne={id:Pn.tablets,title:"Tablets"},ine={id:Pn.storage,title:"Storage"},rne={id:Pn.network,title:"Network"},one={id:Pn.describe,title:"Describe"},ane={id:Pn.hotKeys,title:"Hot keys"},sne={id:Pn.graph,title:"Graph"},une={id:Pn.consumers,title:"Consumers"},lne={id:Pn.partitions,title:"Partitions"},cne=[Xte,Jte,ene,tne,nne,ine,rne,one],dne=[Xte,ene,tne,sne,nne,ane,one],hne=[Xte,ene,tne,one],fne=[Xte,une,lne,tne,one],pne=[Xte,une,lne,tne,one],gne=[Xte,one],vne=[Xte,one],mne=($te={},(0,wt.Z)($te,vc.EPathTypeInvalid,void 0),(0,wt.Z)($te,vc.EPathTypeSubDomain,cne),(0,wt.Z)($te,vc.EPathTypeExtSubDomain,cne),(0,wt.Z)($te,vc.EPathTypeColumnStore,cne),(0,wt.Z)($te,vc.EPathTypeTable,dne),(0,wt.Z)($te,vc.EPathTypeColumnTable,dne),(0,wt.Z)($te,vc.EPathTypeDir,hne),(0,wt.Z)($te,vc.EPathTypeTableIndex,hne),(0,wt.Z)($te,vc.EPathTypeCdcStream,fne),(0,wt.Z)($te,vc.EPathTypePersQueueGroup,pne),(0,wt.Z)($te,vc.EPathTypeExternalDataSource,gne),(0,wt.Z)($te,vc.EPathTypeExternalTable,vne),$te),_ne=function(e){return e&&mne[e]||hne},yne=(0,ht.Z)("kv-tenant-diagnostics");var bne=function(t){var n=K(),i=Q((function(e){return e.schema})),r=i.currentSchemaPath,o=i.autorefresh,a=i.wasLoaded,s=ev((function(e){return e.tenant})).diagnosticsTab,u=void 0===s?Pn.overview:s,l=ct(),c=Zt().parse(l.search,{ignoreQueryPrefix:!0}),d=c.name,h=dd(t.type)?r:d,f=dd(t.type)||r===d,p=(0,e.useMemo)((function(){return f?cne:_ne(t.type)}),[t.type,f]),g=function(e){n(function(e){return{type:_u,data:e}}(e))},v=(0,e.useMemo)((function(){if(a){if(p.find((function(e){return e.id===u})))return u;var e=p[0].id;return g(e),e}}),[p,u,a]),m=function(e){n(e?{type:Sd}:Nd())};return a?(0,Nl.jsxs)("div",{className:yne(),children:[(0,Nl.jsx)("div",{className:yne("header-wrapper"),children:(0,Nl.jsxs)("div",{className:yne("tabs"),children:[(0,Nl.jsx)(Wg,{size:"l",items:p,activeTab:v,wrapTo:function(e,t){var n=e.id,i=_g(bg.tenant,void 0,Rt(Rt({},c),{},(0,wt.Z)({},Eb.diagnosticsTab,n)));return(0,Nl.jsx)(cv,{to:i,className:yne("tab"),children:t},n)},allowNotSelected:!0}),(0,Nl.jsx)(J6,{checked:o,onUpdate:m,content:"Autorefresh"})]})}),(0,Nl.jsx)("div",{className:yne("page-wrapper"),children:function(){var e=t.type,n=h;switch(u){case Pn.overview:return(0,Nl.jsx)(Qte,{type:e,tenantName:n,additionalTenantProps:t.additionalTenantProps,additionalNodesProps:t.additionalNodesProps});case Pn.topQueries:return(0,Nl.jsx)(G9,{path:n,type:e});case Pn.topShards:return(0,Nl.jsx)(xee,{tenantPath:n,type:e});case Pn.nodes:return(0,Nl.jsx)(EI,{path:r,additionalNodesProps:t.additionalNodesProps});case Pn.tablets:return(0,Nl.jsx)(M7,{path:r});case Pn.storage:return(0,Nl.jsx)(IT,{tenant:n});case Pn.network:return(0,Nl.jsx)(K7,{path:n});case Pn.describe:return(0,Nl.jsx)(O7,{tenant:n,type:e});case Pn.hotKeys:return(0,Nl.jsx)(F7,{type:e});case Pn.graph:return(0,Nl.jsx)(_7,{path:r});case Pn.consumers:return(0,Nl.jsx)(y9,{path:r,type:e});case Pn.partitions:return(0,Nl.jsx)(J8,{path:r});default:return(0,Nl.jsx)("div",{children:"No data..."})}}()})]}):(0,Nl.jsx)(jI,{size:"l"})},wne=(0,ht.Z)("object-general");var Cne=function(e){var t=ct(),n=My(),i=tv(Ki),r=(0,ne.Z)(i,1)[0],o=vg(t),a=o.name,s=o.tenantPage,u=void 0===s?r:s,l=function(){var t=e.type,i=e.additionalTenantProps,r=e.additionalNodesProps;return u===An.query?(0,Nl.jsx)(Q6,{path:a,theme:n,type:t}):(0,Nl.jsx)(bne,{type:t,additionalTenantProps:i,additionalNodesProps:r})};return a?(0,Nl.jsx)("div",{className:wne(),children:l()}):null},kne=(0,ht.Z)("tenant-page"),Sne=function(){return{triggerExpand:!1,triggerCollapse:!1,collapsed:Boolean(localStorage.getItem(Fi))}};var xne=function(t){var n,i=(0,e.useReducer)(iZ(Fi),void 0,Sne),r=(0,ne.Z)(i,2),o=r[0],a=r[1],s=Q((function(e){return e.schema})),u=s.currentSchemaPath,l=s.currentSchema,c=void 0===l?{}:l,d=Q((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=ev((function(e){return e.schema})).error,_=(void 0===m?{}:m).status,y=void 0===_?200:_,b=K(),w=ct(),C=Zt().parse(w.search,{ignoreQueryPrefix:!0}).name;(0,e.useEffect)((function(){b(Dd({path:C}))}),[C,b]),(0,e.useEffect)((function(){b(Dd({path:u}))}),[u,b]),(0,e.useEffect)((function(){b(Nd())}),[u,C,b]),(0,e.useEffect)((function(){C&&b(Vp("tenant",{tenantName:C}))}),[C,b]);var k=403===y;return(0,Nl.jsx)("div",{className:kne(),children:k?(0,Nl.jsx)(Fb,{}):(0,Nl.jsxs)(RA,{defaultSizePaneKey:Zi,defaultSizes:[25,75],triggerCollapse:o.triggerCollapse,triggerExpand:o.triggerExpand,minSize:[36,200],onSplitStartDragAdditional:function(){a(KP.clear)},children:[(0,Nl.jsx)(uZ,{type:h||g,subType:f||v,onCollapseSummary:function(){a(KP.triggerCollapse)},onExpandSummary:function(){a(KP.triggerExpand)},isCollapsed:o.collapsed}),(0,Nl.jsx)(Cne,{type:h||g,additionalTenantProps:t.additionalTenantProps,additionalNodesProps:t.additionalNodesProps})]})})},Lne=$c([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=us(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})),Ene=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ng,n=/\/node\/\d+\/?$/g;return n.test(String(t))?String(t).replace(n,"/node/".concat(e,"/")):"".concat(null!==t&&void 0!==t?t:"","/node/").concat(e,"/")},Dne=function(e){var t=e.nodeId,n=e.pDiskId,i=e.host,r="actors/pdisks/pdisk"+fr(n);return Ene(t,i)+r},Nne=function(e){var t=e.nodeId,n=e.pDiskId,i=e.vDiskSlotId,r=e.host,o="actors/vdisks/vdisk"+fr(n)+"_"+fr(i);return Ene(t,r)+o},Mne=JSON.parse('{"pdisk.developer-ui-button-title":"PDisk Developer UI page","vdisk.developer-ui-button-title":"VDisk Developer UI page"}'),Tne=JSON.parse('{"pdisk.developer-ui-button-title":"\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 PDisk \u0432 Developer UI","vdisk.developer-ui-button-title":"\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 VDisk \u0432 Developer UI"}'),Ine="ydb-node-page";Va.registerKeyset(Fa.En,Ine,Mne),Va.registerKeyset(Fa.Ru,Ine,Tne);var One=Va.keyset(Ine),Ane=(0,ht.Z)("kv-node-structure");function Rne(t){var n,i,r,o,a=t.AllocatedSize,s=t.DiskSpace,u=t.FrontQueues,l=t.Guid,c=t.Replicated,d=t.VDiskState,h=t.VDiskId,f=t.VDiskSlotId,p=t.Kind,g=t.SatisfactionRank,v=t.AvailableSize,m=t.HasUnreadableBlobs,_=t.IncarnationGuid,y=t.InstanceGuid,b=t.StoragePoolName,w=t.ReadThroughput,C=t.WriteThroughput,k=[];(Vne(f)&&k.push({label:"VDisk Slot Id",value:f}),Vne(l)&&k.push({label:"GUID",value:l}),Vne(p)&&k.push({label:"Kind",value:p}),Vne(d)&&k.push({label:"VDisk State",value:d}),Vne(s)&&k.push({label:"Disk Space",value:(0,Nl.jsx)(hy,{status:s})}),Vne(null===g||void 0===g||null===(n=g.FreshRank)||void 0===n?void 0:n.Flag))&&k.push({label:"Fresh Rank Satisfaction",value:(0,Nl.jsx)(hy,{status:null===g||void 0===g||null===(r=g.FreshRank)||void 0===r?void 0:r.Flag})});Vne(null===g||void 0===g||null===(i=g.LevelRank)||void 0===i?void 0:i.Flag)&&k.push({label:"Level Rank Satisfaction",value:(0,Nl.jsx)(hy,{status:null===g||void 0===g||null===(o=g.LevelRank)||void 0===o?void 0:o.Flag})});return k.push({label:"Replicated",value:c?"Yes":"No"}),k.push({label:"Allocated Size",value:hr(a)}),k.push({label:"Available Size",value:hr(v)}),Number(a)>=0&&Number(v)>=0&&k.push({label:"Size",value:(0,Nl.jsx)(jT,{value:a,capacity:Number(a)+Number(v),formatValues:hs,colorizeProgress:!0})}),k.push({label:"Has Unreadable Blobs",value:m?"Yes":"No"}),Vne(_)&&k.push({label:"Incarnation GUID",value:_}),Vne(y)&&k.push({label:"Instance GUID",value:y}),Vne(u)&&k.push({label:"Front Queues",value:(0,Nl.jsx)(hy,{status:u})}),Vne(b)&&k.push({label:"Storage Pool Name",value:b}),k.push({label:"Read Throughput",value:dr(w)}),k.push({label:"Write Throughput",value:dr(C)}),(0,Nl.jsxs)(e.Fragment,{children:[(0,Nl.jsxs)("div",{className:Ane("row"),children:[(0,Nl.jsx)("span",{className:Ane("title"),children:"VDisk "}),(0,Nl.jsx)(hy,{status:"OK"===d?"green":"red",name:us(h)})]}),(0,Nl.jsx)("div",{className:Ane("column"),children:(0,Nl.jsx)(Tl,{className:Ane("section"),info:k})})]})}var Pne=(0,ht.Z)("kv-node-structure");function Zne(e){var t=e.label,n=e.value,i=e.className;return(0,Nl.jsxs)("span",{className:Pne("pdisk-title-item",i),children:[t&&(0,Nl.jsxs)("span",{className:Pne("pdisk-title-item-label"),children:[t,":"]}),(0,Nl.jsx)("span",{className:Pne("pdisk-title-item-value"),children:n})]})}var Fne,jne=(0,ht.Z)("kv-node-structure");!function(e){e.slotId="VDiskSlotId",e.VDiskState="VDiskState",e.Size="Size",e.Info="Info"}(Fne||(Fne={}));var Hne={VDiskSlotId:"Slot id",VDiskState:"Status",Size:"Size",Info:""};function Bne(e){var t=e.pDiskId,n=e.selectedVdiskId,i=e.nodeId;return[{name:Fne.slotId,header:Hne[Fne.slotId],width:100,render:function(e){var r=e.row,o=r.VDiskSlotId,a=null;return Vne(i)&&Vne(t)&&Vne(o)&&(a=Nne({nodeId:i,pDiskId:t,vDiskSlotId:o})),(0,Nl.jsxs)("div",{className:jne("vdisk-id",{selected:r.id===n}),children:[(0,Nl.jsx)("span",{children:o}),a&&(0,Nl.jsx)(_o.z,{size:"s",className:jne("external-button",{hidden:!0}),href:a,target:"_blank",title:One("vdisk.developer-ui-button-title"),children:(0,Nl.jsx)(Ob,{name:"external"})})]})},align:pi.LEFT},{name:Fne.VDiskState,header:Hne[Fne.VDiskState],width:70,render:function(e){var t=e.row;return(0,Nl.jsx)(hy,{status:t.VDiskState===Mu.OK?"green":"red"})},sortAccessor:function(e){return e.VDiskState===Mu.OK?1:0},align:pi.CENTER},{name:Fne.Size,header:Hne[Fne.Size],width:100,render:function(e){var t=e.row;return(0,Nl.jsx)(jT,{value:t.AllocatedSize,capacity:Number(t.AllocatedSize)+Number(t.AvailableSize),formatValues:hs,colorizeProgress:!0})},sortAccessor:function(e){return Number(e.AllocatedSize)},align:pi.CENTER},{name:Fne.Info,header:Hne[Fne.Info],width:70,render:function(e){var t=e.row;return(0,Nl.jsx)(Xy,{placement:["right"],content:(0,Nl.jsx)(Rne,Rt({},t)),tooltipContentClassName:jne("vdisk-details"),children:(0,Nl.jsx)(_o.z,{view:"flat-secondary",className:jne("vdisk-details-button",{selected:t.id===n}),children:(0,Nl.jsx)(Ob,{name:"information",viewBox:"0 0 512 512",height:16,width:16})})})},sortable:!1}]}function zne(t){var n=t.id,i=t.data,r=t.selectedVdiskId,o=t.nodeId,a=t.unfolded,s=(0,e.useState)(null!==a&&void 0!==a&&a),u=(0,ne.Z)(s,2),l=u[0],c=u[1],d=i.TotalSize,h=void 0===d?0:d,f=i.AvailableSize,p=void 0===f?0:f,g=i.Device,v=i.Guid,m=i.PDiskId,_=i.Path,y=i.Realtime,b=i.State,w=i.Category,C=i.SerialNumber,k=i.vDisks,S=Number(h),x=Number(p);return(0,Nl.jsxs)("div",{className:jne("pdisk"),id:n,children:[(0,Nl.jsxs)("div",{className:jne("pdisk-header"),children:[(0,Nl.jsxs)("div",{className:jne("pdisk-title-wrapper"),children:[(0,Nl.jsx)(hy,{status:g}),(0,Nl.jsx)(Zne,{label:"PDiskID",value:m,className:jne("pdisk-title-id")}),(0,Nl.jsx)(Zne,{value:Zu(i),className:jne("pdisk-title-type")}),(0,Nl.jsx)(jT,{value:S-x,capacity:S,formatValues:hs,colorizeProgress:!0,className:jne("pdisk-title-size")}),(0,Nl.jsx)(Zne,{label:"VDisks",value:k.length})]}),(0,Nl.jsx)(_o.z,{onClick:l?function(){c(!1)}:function(){c(!0)},view:"flat-secondary",children:(0,Nl.jsx)(hF,{direction:l?"top":"bottom"})})]}),l&&function(){if((0,q7.isEmpty)(i))return(0,Nl.jsx)("div",{children:"No information about PDisk"});var e=null;Vne(m)&&Vne(o)&&(e=Dne({nodeId:o,pDiskId:m}));var t=[{label:"PDisk Id",value:(0,Nl.jsxs)("div",{className:jne("pdisk-id"),children:[m,e&&(0,Nl.jsx)(_o.z,{size:"s",className:jne("external-button"),href:e,target:"_blank",view:"flat-secondary",title:One("pdisk.developer-ui-button-title"),children:(0,Nl.jsx)(Ob,{name:"external"})})]})}];return Vne(_)&&t.push({label:"Path",value:_}),Vne(v)&&t.push({label:"GUID",value:v}),Vne(w)&&(t.push({label:"Category",value:w}),t.push({label:"Type",value:Zu(i)})),t.push({label:"Allocated Size",value:hr(S-x)}),t.push({label:"Available Size",value:hr(x)}),S>=0&&x>=0&&t.push({label:"Size",value:(0,Nl.jsx)(jT,{value:S-x,capacity:S,formatValues:hs,colorizeProgress:!0,className:jne("size")})}),Vne(b)&&t.push({label:"State",value:b}),Vne(g)&&t.push({label:"Device",value:(0,Nl.jsx)(hy,{status:g})}),Vne(y)&&t.push({label:"Realtime",value:(0,Nl.jsx)(hy,{status:y})}),Vne(C)&&t.push({label:"SerialNumber",value:C}),(0,Nl.jsxs)("div",{children:[(0,Nl.jsx)(Tl,{className:jne("pdisk-details"),info:t}),(0,Nl.jsxs)("div",{className:jne("vdisks-container"),children:[(0,Nl.jsx)("div",{className:jne("vdisks-header"),children:"VDisks"}),(0,Nl.jsx)(pi,{theme:"yandex-cloud",data:k,columns:Bne({nodeId:o,pDiskId:m,selectedVdiskId:r}),settings:Rt(Rt({},Bi),{},{dynamicRender:!1}),rowClassName:function(e){return e.id===r?jne("selected-vdisk"):""}})]})]})}()]})}var Wne=(0,ht.Z)("kv-node-structure");function Vne(e){return null!==e&&void 0!==e}function Yne(e){var t=e.type,n=e.id;return"".concat(t,"-").concat(n)}var Une=new Xg;var Kne=function(t){var n=t.nodeId,i=t.className,r=K(),o=ev(Lne),a=ev((function(e){return e.node})),s=a.loadingStructure,u=a.wasLoadedStructure,l=en.parse(window.location.href,!0).query,c=l.pdiskId,d=l.vdiskId,h=(0,e.useRef)(null),f=(0,e.useRef)(!1),p=(0,e.useRef)(!1);return(0,e.useEffect)((function(){return r(kl(n)),Une.start(),Une.fetch((function(){return r(kl(n))})),function(){p.current=!1,f.current=!1,Une.stop()}}),[n,r]),(0,e.useEffect)((function(){!(0,q7.isEmpty)(o)&&h.current&&(f.current=!0)}),[o]),(0,e.useEffect)((function(){if(f.current&&!p.current&&h.current){var e=document.getElementById(Yne({type:"pdisk",id:c})),t=0;if(d){var n,i=null===(n=o[c])||void 0===n?void 0:n.vDisks,r=null===i||void 0===i?void 0:i.find((function(e){return e.id===d})),a=r?document.querySelector(".data-table"):void 0,s=(null===r||void 0===r?void 0:r.order)||0;a&&(t+=a.offsetTop+40*s)}e&&(h.current.scrollTo({behavior:"smooth",top:t||e.offsetTop}),p.current=!0)}}),[o,c,d]),(0,Nl.jsx)("div",{className:Wne(),ref:h,children:(0,Nl.jsx)("div",{className:i,children:s&&!u?(0,Nl.jsx)(jI,{size:"m"}):function(){var e=Object.keys(o);return e.length>0?e.map((function(e){return(0,Nl.jsx)(zne,{data:o[e],id:Yne({type:"pdisk",id:e}),unfolded:c===e,selectedVdiskId:d,nodeId:n},e)})):"There is no information about node structure."}()})})},qne=(0,ht.Z)("basic-node-viewer"),Gne=function(e){var t=e.node,n=e.additionalNodesProps,i=e.className,r=null!==n&&void 0!==n&&n.getNodeRef?n.getNodeRef(t)+"internal":void 0;return(0,Nl.jsx)("div",{className:qne(null,i),children:t?(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)("div",{className:qne("title"),children:"Node"}),(0,Nl.jsx)(hy,{status:t.SystemState,name:t.Host}),r&&(0,Nl.jsx)("a",{rel:"noopener noreferrer",className:qne("link",{external:!0}),href:r,target:"_blank",children:(0,Nl.jsx)(Ob,{name:"external"})}),(0,Nl.jsxs)("div",{className:qne("id"),children:[(0,Nl.jsx)("label",{className:qne("label"),children:"NodeID"}),(0,Nl.jsx)("label",{children:t.NodeId})]}),t.DataCenter&&(0,Nl.jsx)(RO,{tags:[t.DataCenter]}),t.Roles&&(0,Nl.jsx)(RO,{tags:t.Roles,tagsType:"blue"})]}):(0,Nl.jsx)("div",{className:"error",children:"no data"})})},$ne=(0,ht.Z)("ydb-pool-usage"),Qne=function(e){var t="green";return e>60&&e<=80?t="yellow":e>80&&(t="red"),t},Xne=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,Nl.jsxs)("div",{className:$ne(),children:[(0,Nl.jsxs)("div",{className:$ne("info"),children:[(0,Nl.jsx)("div",{className:$ne("pool-name"),children:o}),u&&(0,Nl.jsxs)("div",{className:$ne("value"),children:[(0,Nl.jsxs)("div",{className:$ne("percents"),children:[l<1?"<1":l,"%"]}),(0,Nl.jsxs)("div",{className:$ne("threads"),children:["(\xd7",i,")"]})]})]}),(0,Nl.jsx)("div",{className:$ne("visual"),children:(0,Nl.jsx)("div",{className:$ne("usage-line",{type:Qne(c)}),style:{width:"".concat(c,"%")}})})]})},Jne=(0,ht.Z)("full-node-viewer"),eie=function(e){var t,n,i,r,o=e.node,a=e.className,s=null===o||void 0===o||null===(t=o.Endpoints)||void 0===t?void 0:t.map((function(e){return{label:e.Name,value:e.Address}})),u=[];null!==o&&void 0!==o&&null!==(n=o.Tenants)&&void 0!==n&&n.length&&u.push({label:"Database",value:o.Tenants[0]}),u.push({label:"Version",value:null===o||void 0===o?void 0:o.Version},{label:"Uptime",value:bs(null===o||void 0===o?void 0:o.StartTime)},{label:"DC",value:null===o||void 0===o?void 0:o.DataCenterDescription},{label:"Rack",value:null===o||void 0===o?void 0:o.Rack});var l=null===o||void 0===o||null===(i=o.LoadAverage)||void 0===i?void 0:i.map((function(e,t){return{label:Ci[t],value:(0,Nl.jsx)(jT,{value:e,percents:!0,colorizeProgress:!0,capacity:100})}}));return(0,Nl.jsx)("div",{className:"".concat(Jne()," ").concat(a),children:o?(0,Nl.jsxs)("div",{className:Jne("common-info"),children:[(0,Nl.jsxs)("div",{children:[(0,Nl.jsx)("div",{className:Jne("section-title"),children:"Pools"}),(0,Nl.jsx)("div",{className:Jne("section",{pools:!0}),children:null===o||void 0===o||null===(r=o.PoolStats)||void 0===r?void 0:r.map((function(e,t){return(0,Nl.jsx)(Xne,{data:e},t)}))})]}),s&&s.length&&(0,Nl.jsx)(Tl,{title:"Endpoints",className:Jne("section"),info:s}),(0,Nl.jsx)(Tl,{title:"Common info",className:Jne("section"),info:u}),(0,Nl.jsx)(Tl,{title:"Load average",className:Jne("section",{average:!0}),info:l})]}):(0,Nl.jsx)("div",{className:"error",children:"no data"})})},tie=(0,ht.Z)("node"),nie="Storage",iie=new Xg;var rie=function(t){var n,i,r=K(),o=ct(),a=ev((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=dt(bg.node))&&void 0!==i?i:Object.create(null)).params,f=h.id,p=h.activeTab,g=vg(o).tenantName,v=e.useMemo((function(){var e,t=null===d||void 0===d||null===(e=d.Roles)||void 0===e?void 0:e.find((function(e){return e===nie})),n=p;return t||p!==QN||(n=JN),{activeTabVerified:n,nodeTabs:(t?tM:tM.filter((function(e){return e.id!==QN}))).map((function(e){return Rt(Rt({},e),{},{title:e.name})}))}}),[p,d]),m=v.activeTabVerified,_=v.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===g||void 0===g?void 0:g.toString());r(Vp("node",{clusterTab:iA.nodes,tenantName:t,nodeId:f}))}),[r,d,f,g]),e.useEffect((function(){var e=function(){return r(Cl(f))};return e(),iie.start(),iie.fetch((function(){return e()})),function(){iie.stop(),r({type:bl})}}),[r,f]),s&&!u?(0,Nl.jsx)(jI,{size:"l"}):l?(0,Nl.jsx)("div",{children:l.statusText}):d?(0,Nl.jsxs)("div",{className:tie(null,t.className),children:[(0,Nl.jsx)(Gne,{node:d,additionalNodesProps:t.additionalNodesProps,className:tie("header")}),(0,Nl.jsx)("div",{className:tie("tabs"),children:(0,Nl.jsx)(Wg,{size:"l",items:_,activeTab:m,wrapTo:function(e,t){var n=e.id;return(0,Nl.jsx)(cv,{to:_g(bg.node,{id:f,activeTab:n}),className:tie("tab"),children:t},n)},allowNotSelected:!0})}),(0,Nl.jsx)("div",{className:tie("content"),children:function(){switch(p){case QN:return(0,Nl.jsx)("div",{className:tie("storage"),children:(0,Nl.jsx)(IT,{nodeId:f})});case XN:return(0,Nl.jsx)(M7,{nodeId:f,className:tie("node-page-wrapper")});case JN:return(0,Nl.jsx)(eie,{node:d,className:tie("overview-wrapper")});case eM:return(0,Nl.jsx)(Kne,{className:tie("node-page-wrapper"),nodeId:f});default:return!1}}()})]}):(0,Nl.jsx)("div",{className:"error",children:"no node data"})},oie=[{name:"Generation",align:pi.RIGHT,render:function(e){return e.row.generation}},{name:"Change time",align:pi.RIGHT,sortable:!1,render:function(e){var t=e.row;return bs(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:pi.RIGHT,sortable:!1,render:function(e){var t=e.row;return(0,Nl.jsx)(vv,{to:nM(t.nodeId),children:t.nodeId})}},{name:"Node FQDN",sortable:!1,render:function(e){var t=e.row;return t.fqdn?(0,Nl.jsx)("div",{className:mie("host"),children:(0,Nl.jsx)(hy,{name:t.fqdn,showStatus:!1,hasClipboardButton:!0})}):(0,Nl.jsx)("span",{children:"\u2014"})}}],aie={displayIndices:!1},sie=function(e){var t=e.history;return(0,Nl.jsx)(pi,{theme:"yandex-cloud",data:t,columns:oie,settings:aie,initialSortOrder:{columnId:"Generation",order:pi.DESCENDING}})},uie=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===hi.Active,p=[{label:"Database",value:n||"-"}];return h&&p.push({label:"HiveId",value:(0,Nl.jsx)(yv,{href:_g(bg.tablet,{id:s}),target:"_blank",children:s})}),d&&p.push({label:"SchemeShard",value:(0,Nl.jsx)(yv,{href:_g(bg.tablet,{id:d}),target:"_blank",children:d})}),p.push({label:"Type",value:l},{label:"State",value:u}),f&&p.push({label:"Uptime",value:bs(i)}),p.push({label:"Generation",value:r},{label:"Node",value:(0,Nl.jsx)(cv,{className:mie("link"),to:nM(String(a)),children:a})}),o&&p.push({label:"Follower",value:o}),(0,Nl.jsx)(Tl,{info:p})},lie=(0,ht.Z)("ydb-critical-dialog"),cie=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,ne.Z)(s,2),l=u[0],c=u[1],d=function(){var e=dn(fn().mark((function e(t){return fn().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,Nl.jsx)(NZ,{open:n,hasCloseButton:!1,className:lie(),size:"s",onClose:r,children:(0,Nl.jsxs)("form",{onSubmit:d,children:[(0,Nl.jsxs)(NZ.Body,{className:lie("body"),children:[(0,Nl.jsx)("span",{className:lie("warning-icon"),children:(0,Nl.jsx)(Ob,{name:"dialog-warning",width:"24",height:"22",viewBox:"0 0 24 22"})}),i]}),(0,Nl.jsx)(NZ.Footer,{loading:l,preset:"default",textButtonApply:"Confirm",textButtonCancel:"Cancel",propsButtonApply:{type:"submit"},onClickButtonCancel:r,onClickButtonApply:function(){}})]})})},die=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"}'),hie=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"}'),fie="ydb-tablet-page";Va.registerKeyset(Fa.En,fie,die),Va.registerKeyset(Fa.Ru,fie,hie);var pie,gie=Va.keyset(fie);!function(e){e.kill="kill",e.stop="stop",e.resume="resume"}(pie||(pie={}));var vie=function(t){var n=t.tablet,i=t.fetchData,r=n.TabletId,o=n.HiveId,a=(0,e.useState)(!1),s=(0,ne.Z)(a,2),u=s[0],l=s[1],c=(0,e.useState)(null),d=(0,ne.Z)(c,2),h=d[0],f=d[1],p=(0,e.useState)(!1),g=(0,ne.Z)(p,2),v=g[0],m=g[1];(0,e.useEffect)((function(){m(!1)}),[n]);var _=function(e){return function(){l(!0),f(e)}},y=_(pie.kill),b=_(pie.stop),w=_(pie.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!==hi.Stopped&&n.State!==hi.Dead,E=n.State===hi.Stopped||n.State===hi.Deleted;return(0,Nl.jsxs)("div",{className:mie("controls"),children:[(0,Nl.jsx)(_o.z,{onClick:y,view:"action",loading:v,className:mie("control"),children:gie("controls.kill")}),o&&"0"!==o?(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)(_o.z,{onClick:b,view:"action",disabled:E,loading:!E&&v,className:mie("control"),children:gie("controls.stop")}),(0,Nl.jsx)(_o.z,{onClick:w,view:"action",disabled:L,loading:!L&&v,className:mie("control"),children:gie("controls.resume")})]}):null,function(){if(!u)return null;switch(h){case pie.kill:return(0,Nl.jsx)(cie,{visible:u,text:gie("dialog.kill"),onClose:C,onConfirm:k,onConfirmActionFinish:i});case pie.stop:return(0,Nl.jsx)(cie,{visible:u,text:gie("dialog.stop"),onClose:C,onConfirm:S,onConfirmActionFinish:i});case pie.resume:return(0,Nl.jsx)(cie,{visible:u,text:gie("dialog.resume"),onClose:C,onConfirm:x,onConfirmActionFinish:i});default:return null}}()]})},mie=(0,ht.Z)("tablet-page"),_ie=function(){var t,n=(0,e.useRef)(!0),i=K(),r=ct(),o=function(){var e=ut(We).match;return e?e.params:{}}(),a=o.id,s=ev((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,g=s.error,v=vg(r),m=v.nodeId,_=v.tenantName,y=v.type,b=(null===(t=l.NodeId)||void 0===t?void 0:t.toString())||(null===m||void 0===m?void 0:m.toString()),w=p||(null===_||void 0===_?void 0:_.toString()),C=l.Type||(null===y||void 0===y?void 0:y.toString());(0,e.useEffect)((function(){return function(){i({type:fh})}}),[i]),(0,e.useEffect)((function(){n.current&&l&&l.TenantId&&(i(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return oa({request:window.api.getTabletDescribe(e),actions:hh,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 k=(0,e.useCallback)((function(){i(function(e){return oa({request:Promise.all([window.api.getTablet({id:e}),window.api.getTabletHistory({id:e}),window.api.getNodesList()]),actions:dh,dataHandler:function(e){var t=(0,ne.Z)(e,3),n=t[0],i=t[1],r=t[2],o=ka(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,ne.Z)(u,1)[0];return{tabletData:void 0===l?{}:l,historyData:a}}})}(a))}),[i,a]);Jg(k,[k],!0),(0,e.useEffect)((function(){i(Vp("tablet",{nodeIds:b?[b]:[],tenantName:w,tabletId:a,tabletType:C}))}),[i,w,a,b,C]);if(c&&a!==d&&n.current)return(0,Nl.jsx)(jI,{size:"l"});if(g)return(0,Nl.jsx)(Sb,{error:g});if(!l||!Object.keys(l).length)return(0,Nl.jsx)("div",{className:mie("placeholder"),children:(0,Nl.jsx)(Pb,{title:gie("emptyState")})});var S=l.TabletId,x=l.Overall,L=l.Leader,E=[{name:"".concat(xi," - tablet"),path:"/tablets?TabletID=".concat(S)}];return(0,Nl.jsx)("div",{className:mie(),children:(0,Nl.jsxs)("div",{className:mie("pane-wrapper"),children:[(0,Nl.jsxs)("div",{className:mie("left-pane"),children:[(0,Nl.jsx)("ul",{className:mie("links"),children:E.map((function(e,t){return(0,Nl.jsx)("li",{className:mie("link",{external:!0}),children:(0,Nl.jsx)(yv,{href:"".concat(ng).concat(e.path),target:"_blank",children:e.name})},t)}))}),(0,Nl.jsxs)("div",{className:mie("row",{header:!0}),children:[(0,Nl.jsx)("span",{className:mie("title"),children:gie("tablet.header")}),(0,Nl.jsx)(hy,{status:x,name:S}),(0,Nl.jsx)("a",{rel:"noopener noreferrer",className:mie("link",{external:!0}),href:"".concat(ng,"/tablets?TabletID=").concat(S),target:"_blank",children:(0,Nl.jsx)(Ob,{name:"external"})}),L&&(0,Nl.jsx)(OO,{text:"Leader",type:"blue"}),(0,Nl.jsx)("span",{className:mie("loader"),children:c&&(0,Nl.jsx)(jI,{size:"s"})})]}),(0,Nl.jsx)(uie,{tablet:l,tenantPath:w}),(0,Nl.jsx)(vie,{tablet:l,fetchData:k})]}),(0,Nl.jsx)("div",{className:mie("rigth-pane"),children:(0,Nl.jsx)(sie,{history:f})})]})})},yie=n(5647),bie=(0,ht.Z)("tablets-filters"),wie=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){var e;(0,X.Z)(this,n);for(var i=arguments.length,r=new Array(i),o=0;o<i;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))).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,Nl.jsx)(jO,{tablet:r[t],tenantName:e.state.tenantPath,size:o,className:bie("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=by.map((function(e){return{value:e,content:e}})),h=Array.from((0,yie.Z)(Set,[on().map(o,(function(e){return e.Type}))])).map((function(e){return{value:e,content:e}})),f=on().map(s,(function(e){return{content:e.Id,value:e.Id,meta:e.Host}}));return(0,Nl.jsxs)("div",{className:bie(),children:[i?(0,Nl.jsx)("div",{className:bie("tenant"),children:(0,Nl.jsxs)(Nl.Fragment,{children:[(0,Nl.jsx)("span",{className:bie("label"),children:"Database: "})," ",i]})}):null,(0,Nl.jsx)(kie,{nodesForSelect:f,nodeFilter:n,onChangeNodes:e.handleNodeFilterChange,states:d,stateFilter:u,onChangeStates:e.handleStateFilterChange,types:h,typeFilter:l,onChangeTypes:e.handleTypeFilterChange}),c&&(0,Nl.jsx)("div",{className:"error",children:c}),a.length>0?(0,Nl.jsx)("div",{className:bie("items"),children:(0,Nl.jsx)(b7(),{itemRenderer:e.renderTablet,length:a.length,type:"uniform"})}):!c&&(0,Nl.jsx)("div",{className:bie("empty-message"),children:"no tablets"})]})},e}return(0,J.Z)(n,[{key:"componentDidMount",value:function(){var e=this,t=this.props,i=t.setStateFilter,r=t.setTypeFilter,o=t.setHeaderBreadcrumbs,a=Zt().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,Nl.jsx)(Fb,{}):(0,Nl.jsx)("div",{children:r.statusText}):this.renderContent()}}],[{key:"renderLoader",value:function(){return(0,Nl.jsx)("div",{className:"loader",children:(0,Nl.jsx)(KE,{size:"l"})})}}]),n}(e.Component);wie.parseNodes=function(e){if(Array.isArray(e))return e.map(Number).filter(Number.isInteger)},wie.getStateFiltersFromColor=function(e){return wy[e]||[e]},wie.CONTROL_WIDTH=220,wie.POPUP_WIDTH=300;var Cie=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,Nl.jsxs)("div",{className:bie("filters"),children:[(0,Nl.jsx)("div",{className:bie("filter-wrapper"),children:(0,Nl.jsx)(MD,{multiple:!0,label:"Node ID",width:wie.CONTROL_WIDTH,popupWidth:wie.POPUP_WIDTH,placeholder:"All",options:t,value:n,onUpdate:i,renderOption:function(e){return(0,Nl.jsxs)("div",{className:bie("node"),children:[(0,Nl.jsx)("div",{children:e.content}),(0,Nl.jsx)("div",{className:bie("node-meta"),title:e.meta,children:e.meta})]})},getOptionHeight:function(){return 40}})}),(0,Nl.jsx)("div",{className:bie("filter-wrapper"),children:(0,Nl.jsx)(MD,{multiple:!0,label:"multiple",width:wie.CONTROL_WIDTH,placeholder:"All",options:r,value:o,onUpdate:a})}),(0,Nl.jsx)("div",{className:bie("filter-wrapper"),children:(0,Nl.jsx)(MD,{multiple:!0,label:"Types",width:wie.CONTROL_WIDTH,placeholder:"All",options:s,value:u,onUpdate:l})})]})},kie=e.memo(Cie,(function(e,t){return on().isEqual(e.nodeFilter,t.nodeFilter)&&on().isEqual(e.stateFilter,t.stateFilter)&&on().isEqual(e.typeFilter,t.typeFilter)})),Sie=z((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:_f(e),filteredTablets:yf(e),nodes:n,timeoutForRequest:o,wasLoaded:i,loading:r,stateFilter:a,typeFilter:s,error:u}}),{getTabletsInfo:function(e){return oa({request:Promise.all([window.api.getTabletsInfo(e),window.api.getNodesList()]),actions:vf})},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:Vp})(wie),xie={top:0,right:0,bottom:0,left:0};var Lie=z((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:ec})((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(xie),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=xie;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,Nl.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,Nl.jsx)(e.Fragment,{children:(0,Nl.jsx)(J_,{open:n,placement:["top","bottom","left","right"],contentClassName: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,Nl.jsx)(J_,{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)})})),Eie=(0,ft.Ge)("breadcrumbs");var Die=e.memo((function(t){var n=t.data,i=t.isCurrent,r=t.isPrevCurrent,o=t.renderItem,a=n.text,s=n.title,u=n.href,l=n.action,c=s||a;return r||!i?e.createElement(yv,{key:a,view:"secondary",href:u,title:c,onClick:l,className:Eie("item",{"prev-current":r})},o?o(n,i,r):a):e.createElement("div",{title:c,className:Eie("item",{current:!0})},o?o(n,i,r):a)}));Die.displayName="Breadcrumbs.Item";var Nie=No({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"),Mie=(0,ft.Ge)("breadcrumbs");function Tie(t){var n=t.popupStyle,i=t.popupPlacement,r=t.items;return e.createElement(pO,{items:r,popupProps:{className:Mie("popup",{staircase:"staircase"===n}),placement:i},renderSwitcher:function(t){var n=t.onClick;return e.createElement(yv,{view:"secondary",title:Nie("label_more"),className:Mie("item",{more:!0}),onClick:n},"...")}})}Tie.displayName="Breadcrumbs.More";var Iie=(0,ft.Ge)("breadcrumbs");function Oie(t){var n=t.renderItemDivider;return e.createElement("div",{"aria-hidden":!0,className:Iie("divider")},n?n():"/")}Oie.displayName="Breadcrumbs.Separator";var Aie,Rie,Pie=200,Zie=(0,ft.Ge)("breadcrumbs");!function(e){e[e.One=1]="One",e[e.Two=2]="Two"}(Aie||(Aie={})),function(e){e[e.Zero=0]="Zero",e[e.One=1]="One"}(Rie||(Rie={}));var Fie=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(t){var r;return(0,X.Z)(this,i),(r=n.call(this,t)).handleResize=function(){var e=i.prepareInitialState(r.props);r.setState(e,r.recalculate)},r.handleResize=Fy()(r.handleResize,Pie),r.resizeObserver=new ResizeObserver(r.handleResize),r.container=e.createRef(),r.state=i.prepareInitialState(t),r}return(0,J.Z)(i,[{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,n=t.className,i=t.qa,r=this.state.calculated,o=this.renderRootItem();return e.createElement("div",{className:Zie({calculated:r?"yes":"no"},n),"data-qa":i},e.createElement("div",{className:Zie("inner"),ref:this.container},o,this.renderMoreItem(),this.renderVisibleItems()))}},{key:"renderItem",value:function(t,n,i){var r=this.props.renderItemContent;return e.createElement(Die,{data:t,isCurrent:n,isPrevCurrent:i,renderItem:r})}},{key:"renderItemDivider",value:function(){var t=this.props.renderItemDivider;return e.createElement(Oie,{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(Die,{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(Oie,{renderItemDivider:o}),e.createElement(Tie,{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(Zie("divider")))),o=Array.from(this.container.current.querySelectorAll(".".concat(Zie("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===Aie.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?i.prepareInitialState(e):null}}]),i}(e.Component);Fie.defaultProps={popupPlacement:["bottom","top"]};var jie=function(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},t),e.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M11 2.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3ZM14 4a3 3 0 1 0-5.895.79L6.15 5.908a3 3 0 1 0 0 4.185l1.955 1.117A3.003 3.003 0 0 0 11 15a3 3 0 1 0-2.15-5.092L6.895 8.79a3.003 3.003 0 0 0 0-1.58L8.85 6.092A3 3 0 0 0 14 4Zm-3 6.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3ZM2.5 8a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Z",clipRule:"evenodd"}))},Hie=function(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},t),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"}))},Bie=function(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},t),e.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M12 8.5a1.5 1.5 0 0 1 1.5 1.5v1a1.5 1.5 0 0 1-1.5 1.5H4A1.5 1.5 0 0 1 2.5 11v-1A1.5 1.5 0 0 1 4 8.5h8Zm.89-1.366L11.488 4.33a1.5 1.5 0 0 0-1.342-.829H5.854a1.5 1.5 0 0 0-1.342.83L3.11 7.133A3 3 0 0 1 4 7h8a3 3 0 0 1 .89.134ZM15 9.18V11a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V9.18a5 5 0 0 1 .528-2.236L3.17 3.658A3 3 0 0 1 5.854 2h4.292a3 3 0 0 1 2.683 1.658l1.643 3.286A5 5 0 0 1 15 9.18Zm-6 .57a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5H9Z",clipRule:"evenodd"}))},zie=function(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},t),e.createElement("g",{clipPath:"url(#a)"},e.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M7 1.25a.75.75 0 0 0-1.5 0V2.5a3 3 0 0 0-3 3H1.25a.75.75 0 0 0 0 1.5H2.5v2H1.25a.75.75 0 0 0 0 1.5H2.5a3 3 0 0 0 3 3v1.25a.75.75 0 0 0 1.5 0V13.5h2v1.25a.75.75 0 0 0 1.5 0V13.5a3 3 0 0 0 3-3h1.25a.75.75 0 1 0 0-1.5H13.5V7h1.25a.75.75 0 1 0 0-1.5H13.5a3 3 0 0 0-3-3V1.25a.75.75 0 0 0-1.5 0V2.5H7V1.25ZM10.5 4h-5A1.5 1.5 0 0 0 4 5.5v5A1.5 1.5 0 0 0 5.5 12h5a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 10.5 4Zm0 2.25a.75.75 0 0 0-.75-.75h-3.5a.75.75 0 0 0-.75.75v3.5a.75.75 0 0 0 .75.75h3.5a.75.75 0 0 0 .75-.75v-3.5ZM7 7h2v2H7V7Z",clipRule:"evenodd"})),e.createElement("defs",null,e.createElement("clipPath",{id:"a"},e.createElement("path",{fill:"currentColor",d:"M0 0h16v16H0z"}))))},Wie=function(e){return e.startsWith("/")?e.slice(1):e},Vie=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.clusterName,i=e.clusterTab;return[{text:n||Li,link:oA(i,t),icon:(0,Nl.jsx)(jie,{})}]},Yie=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.tenantName,i=n?Wie(n):"Tenant",r=n?Mb(Rt(Rt({},t),{},{name:n})):void 0;return[].concat((0,Ct.Z)(Vie(e,t)),[{text:i,link:r,icon:(0,Nl.jsx)(Hie,{})}])},Uie=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,wt.Z)(t,On,An.diagnostics),(0,wt.Z)(t,Eb.diagnosticsTab,Pn.nodes),t));n=a?Vie(e,i):Yie(e,s);var u=o?"Node ".concat(o):"Node",l=o?nM(o,i):void 0,c=a?(0,Nl.jsx)(Bie,{}):(0,Nl.jsx)(zie,{});return n.push({text:u,link:l,icon:c}),n},Kie=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,wt.Z)(t,On,An.diagnostics),(0,wt.Z)(t,Eb.diagnosticsTab,Pn.tablets),t));n=r?Yie(e,a):Vie(e,i);var s=_g(bg.tabletsFilters,void 0,Rt(Rt({},i),{},{nodeIds:o,path:r}));return n.push({text:"Tablets",link:s}),n},qie=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.tabletId,i=e.tabletType,r=Kie(e,t);return r.push({text:n||"Tablet",icon:(0,Nl.jsx)(ZO,{text:wi(i)})}),r},Gie=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,Ct.Z)(n),(0,Ct.Z)(Vie(t,i)));case"tenant":return[].concat((0,Ct.Z)(n),(0,Ct.Z)(Yie(t,i)));case"node":return[].concat((0,Ct.Z)(n),(0,Ct.Z)(Uie(t,i)));case"tablets":return[].concat((0,Ct.Z)(n),(0,Ct.Z)(Kie(t,i)));case"tablet":return[].concat((0,Ct.Z)(n),(0,Ct.Z)(qie(t,i)));default:return n}},$ie=(0,ht.Z)("header"),Qie=function(e){return e&&!hg?"/internal":ng+"/internal"};var Xie=function(t){var n,i=t.mainPage,r=K(),o=lt(),a=ct(),s=ev((function(e){return e.singleClusterMode})),u=ev((function(e){return e.header})),l=u.page,c=u.pageBreadcrumbsOptions,d=ev((function(e){return e.cluster})).data,h=vg(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(lu(f))}),[r,f]);var g=(0,e.useMemo)((function(){var e=[],t=c;return i&&e.push(i),p&&(t=Rt(Rt({},c),{},{clusterName:p})),Gie(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,Nl.jsxs)("header",{className:$ie(),children:[(0,Nl.jsx)("div",{children:(0,Nl.jsx)(Fie,{items:g,lastDisplayedItemsCount:1,firstDisplayedItemsCount:1,renderItemContent:function(e){var t=e.icon,n=e.text;return t?(0,Nl.jsxs)("span",{className:$ie("breadcrumb"),children:[(0,Nl.jsx)("div",{className:$ie("breadcrumb__icon"),children:t}),n]}):n}})}),(0,Nl.jsx)(BO,{title:xi,url:Qie(s)})]})},Jie=function(){return(0,Nl.jsx)("svg",{width:"0",height:"0",children:(0,Nl.jsxs)("defs",{children:[(0,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.jsxs)("g",{id:"icon.network-placeholder",children:[(0,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.jsx)("path",{d:"M10.8223 98.592H144.495",stroke:"#2EE5C0",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round"}),(0,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.jsxs)("g",{id:"icon.404",children:[(0,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.jsx)("path",{d:"M2.5332 228.129H231.433",stroke:"#00E6C5",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4 10",fill:"#FFFFFF"}),(0,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.jsx)("g",{id:"icon.chevron-down",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",width:"16",height:"16",children:(0,Nl.jsx)("path",{stroke:"currentColor",fill:"none",d:"M3 6l5 5 5-5"})}),"/* theme icons */",(0,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.jsx)("path",{d:"M2.533 228.129h228.9",stroke:"#00E6C5",strokeWidth:"4",strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4 10"}),(0,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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,Nl.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"})]})]})})},ere=e.createContext(xe());ere.displayName="HistoryContext";var tre,nre,ire=ere;function rre(){return rre=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},rre.apply(this,arguments)}var ore,are=function(t){return e.createElement("svg",rre({viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),tre||(tre=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"})),nre||(nre=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 sre(){return sre=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},sre.apply(this,arguments)}var ure,lre=function(t){return e.createElement("svg",sre({"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),ore||(ore=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 cre(){return cre=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},cre.apply(this,arguments)}var dre,hre=function(t){return e.createElement("svg",cre({"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),ure||(ure=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 fre(){return fre=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},fre.apply(this,arguments)}var pre=function(t){return e.createElement("svg",fre({"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),dre||(dre=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"})))},gre=(0,ht.Z)("authentication");var vre=function(t){var n=t.closable,i=void 0!==n&&n,r=K(),o=lt(),a=ct(),s=vg(a).returnUrl,u=ev((function(e){return e.authentication})).error,l=(0,e.useState)(""),c=(0,ne.Z)(l,2),d=c[0],h=c[1],f=(0,e.useState)(""),p=(0,ne.Z)(f,2),g=p[0],v=p[1],m=(0,e.useState)(""),_=(0,ne.Z)(m,2),y=_[0],b=_[1],w=(0,e.useState)(""),C=(0,ne.Z)(w,2),k=C[0],S=C[1],x=(0,e.useState)(!1),L=(0,ne.Z)(x,2),E=L[0],D=L[1];(0,e.useEffect)((function(){var e,t,n,i;null!==u&&void 0!==u&&null!==(e=u.data)&&void 0!==e&&null!==(t=e.error)&&void 0!==t&&t.includes("user")&&b(u.data.error),null!==u&&void 0!==u&&null!==(n=u.data)&&void 0!==n&&null!==(i=n.error)&&void 0!==i&&i.includes("password")&&S(u.data.error)}),[u]);var N=function(){r(Jo(d,g)).then((function(){if(s){var e=decodeURIComponent(s.toString()),t=new URL(e),n=t.pathname+t.search;o.replace(n)}}))},M=function(e){13===e.keyCode&&N()};return(0,Nl.jsxs)("section",{className:gre(),children:[(0,Nl.jsxs)("form",{className:gre("form-wrapper"),children:[(0,Nl.jsxs)("div",{className:gre("header"),children:[(0,Nl.jsxs)("div",{className:gre("logo"),children:[(0,Nl.jsx)(yo.J,{data:are,size:24}),"YDB"]}),(0,Nl.jsx)(yv,{href:"http://ydb.tech/docs",target:"_blank",children:"Documentation"})]}),(0,Nl.jsx)("h2",{className:gre("title"),children:"Sign in"}),(0,Nl.jsx)("div",{className:gre("field-wrapper"),children:(0,Nl.jsx)(db,{value:d,onUpdate:function(e){h(e),b("")},placeholder:"Username",error:y,onKeyDown:M,size:"l",autoFocus:!0})}),(0,Nl.jsxs)("div",{className:gre("field-wrapper"),children:[(0,Nl.jsx)(db,{value:g,onUpdate:function(e){v(e),S("")},type:E?"text":"password",placeholder:"Password",error:k,onKeyDown:M,size:"l"}),(0,Nl.jsx)(_o.z,{onClick:function(){D((function(e){return!e}))},size:"l",className:gre("show-password-button"),children:(0,Nl.jsx)(yo.J,{data:E?hre:lre,size:16})})]}),(0,Nl.jsx)(_o.z,{view:"action",onClick:N,width:"max",size:"l",disabled:Boolean(!d||y||k),className:gre("button-sign-in"),children:"Sign in"})]}),i&&o.length>1&&(0,Nl.jsx)(_o.z,{onClick:function(){o.go(-1)},className:gre("close"),children:(0,Nl.jsx)(yo.J,{data:pre,size:24})})]})},mre=(0,ht.Z)("app");function _re(t){var n=ct(),i=t.singleClusterMode,r=n.pathname.includes("/clusters")||!i&&"/"===n.pathname;return(0,Nl.jsxs)(e.Fragment,{children:[!r&&(0,Nl.jsx)(Xie,{mainPage:t.mainPage}),(0,Nl.jsx)("main",{className:mre("main"),children:t.children||(0,Nl.jsxs)(st,{children:[(0,Nl.jsx)(tt,{path:bg.cluster,component:sA}),(0,Nl.jsx)(tt,{path:bg.tenant,component:xne}),(0,Nl.jsx)(tt,{path:bg.node,component:rie}),(0,Nl.jsx)(tt,{path:bg.tablet,component:_ie}),(0,Nl.jsx)(tt,{path:bg.tabletsFilters,component:Sie}),(0,Nl.jsx)($e,{to:_g(bg.cluster,{activeTab:iA.tenants})})]})}),(0,Nl.jsx)(Lie,{}),(0,Nl.jsx)(Jie,{})]})}var yre=z((function(e){return{isAuthenticated:e.authentication.isAuthenticated,singleClusterMode:e.singleClusterMode}}))((function(e){var t=e.singleClusterMode,n=e.isAuthenticated,i=tv(Di),r=(0,ne.Z)(i,1)[0];return(0,Nl.jsx)(ire.Consumer,{children:function(i){return(0,Nl.jsx)(Ve,{history:i,children:(0,Nl.jsxs)(st,{children:[(0,Nl.jsx)(tt,{path:bg.auth,children:(0,Nl.jsx)(vre,{closable:!0})}),(0,Nl.jsx)(tt,{children:(0,Nl.jsx)(Ot,{theme:r,children:(0,Nl.jsx)("div",{className:mre({embedded:t}),children:n?e.children:(0,Nl.jsx)(vre,{})})})})]})})}})}));function bre(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"===typeof SuppressedError&&SuppressedError;var wre=n(31853),Cre=40,kre=n(95234),Sre=e.createContext(void 0);Sre.displayName="AsideHeaderInnerContext";var xre=Sre.Provider,Lre=function(){var t=e.useContext(Sre);if(void 0===t)throw new Error("AsideHeaderInnerContext is not initialized.\n Please check if you wrapped your component with AsideHeaderInnerContext.Provider");return t},Ere=e.createContext(void 0);Ere.displayName="AsideHeaderContext";var Dre=Ere.Provider,Nre=function(){var t=e.useContext(Ere);if(void 0===t)throw new Error("AsideHeaderContext is not initialized.\n Please check if you wrapped your component with AsideHeader\n Context.Provider");return t};function Mre(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))}}var Tre="collapse-item-id",Ire=["right-start","right-end","right"],Ore=28;function Are(e){if(!Fre(e))return Cre;switch(e.type){case"action":return 50;case"divider":return 15;default:return Cre}}function Rre(e){return e.reduce((function(e,t){return e+Are(t)}),0)}function Pre(e){var t=e.findIndex((function(e){var t=e.current;return Boolean(t)}));return-1===t?void 0:t}function Zre(e){var t=function(e){var t,n=[],i=(0,Na.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 Rre(t)+Rre(n)+(t.length===e.length?0:Cre)}function Fre(e){return void 0!==(null===e||void 0===e?void 0:e.id)}Mre('.gn-composite-bar-highlighted-item{display:flex;justify-content:center;position:absolute;z-index:10000}.gn-composite-bar-highlighted-item__icon{align-items:center;background-color:var(--g-color-base-background);border-radius:7px;box-shadow:0 8px 20px 0 var(--g-color-sfx-shadow);cursor:pointer;display:flex;height:var(--gn-aside-header-item-icon-background-size);justify-content:center;overflow:hidden;position:relative;transform:translateY(1px);width:var(--gn-aside-header-item-icon-background-size)}.gn-composite-bar-highlighted-item__icon:before{background-color:var(--g-color-base-selection);content:"";height:100%;position:absolute;width:100%;z-index:-1}.gn-composite-bar-highlighted-item__icon:hover:before{background-color:var(--g-color-base-selection-hover)}');var jre=(0,wre.b)("composite-bar-highlighted-item"),Hre=function(t){var n=t.iconRef,i=t.iconNode,r=t.onClick,o=t.onClickCapture,a=Lre().openModalSubscriber,s=(0,e.useState)({top:0,left:0,width:0,height:0}),u=(0,ne.Z)(s,2),l=u[0],c=l.top,d=l.left,h=l.width,f=l.height,p=u[1],g=(0,e.useState)(!1),v=(0,ne.Z)(g,2),m=v[0],_=v[1],y=(0,e.useMemo)((function(){return(0,kre.d)((function(){var e,t=(null===(e=null===n||void 0===n?void 0:n.current)||void 0===e?void 0:e.getBoundingClientRect())||{},i=t.top,r=void 0===i?0:i,o=t.left,a=void 0===o?0:o,s=t.width,u=void 0===s?0:s,l=t.height,c=void 0===l?0:l;p({top:r+window.scrollY,left:a+window.scrollX,width:u,height:c})}),200,{leading:!0})}),[n]),b=(0,e.useCallback)((function(){return y()}),[y]);return(0,e.useEffect)((function(){if(m)return b(),window.addEventListener("resize",b),function(){return window.removeEventListener("resize",b)}}),[b,m]),null===a||void 0===a||a((function(e){_(e)})),i&&m?e.createElement(jo,null,e.createElement("div",{className:jre(),style:{left:d,top:c,width:h,height:f},onClick:r,onClickCapture:o,"data-toast":!0},e.createElement("div",{className:jre("icon")},i))):null};Hre.displayName="HighlightedItem";Mre('.gn-composite-bar-item{--gn-composite-bar-item-action-size:36px;align-items:center;cursor:pointer;display:flex;height:100%;width:100%}.gn-composite-bar-item__icon{color:var(--gn-aside-header-menu-item-icon-color)}.gn-composite-bar-highlighted-item .gn-composite-bar-item__icon,.gn-footer-item .gn-composite-bar-item__icon{color:var(--gn-aside-header-footer-item-icon-color)}.gn-composite-bar_subheader .gn-composite-bar-item__icon{color:var(--gn-aside-header-subheader-item-icon-color)}.gn-composite-bar-item__icon-place{align-items:center;display:flex;flex-shrink:0;height:100%;justify-content:center;width:var(--gn-aside-header-min-width)}.gn-composite-bar-item__title{display:flex;overflow:hidden}.gn-composite-bar-item__title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gn-composite-bar-item__title-adornment{margin:0 10px}.gn-composite-bar-item__collapse-item{align-items:center;cursor:pointer;display:flex;height:100%;padding:0 16px;width:100%}.gn-composite-bar-item__collapse-item .gn-composite-bar-item__title-adornment{margin-right:0}.gn-composite-bar-item__menu-divider{border-top:1px solid var(--g-color-line-generic);cursor:default;margin:0 8px;width:100%}.gn-composite-bar-item__collapse-items-popup-content{padding:4px 0}.gn-composite-bar-item__link{align-items:center;display:flex;height:100%;width:100%}.gn-composite-bar-item__link,.gn-composite-bar-item__link:active,.gn-composite-bar-item__link:focus,.gn-composite-bar-item__link:hover,.gn-composite-bar-item__link:visited{color:inherit;outline:none;text-decoration:none}.gn-composite-bar-item__btn-icon{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.gn-composite-bar-item_type_action{background:var(--g-color-base-float);border-radius:var(--gn-composite-bar-item-action-size);box-shadow:0 0 0 1px rgba(0,0,0,.03),0 5px 6px rgba(0,0,0,.12);height:var(--gn-composite-bar-item-action-size);justify-content:center;margin:0 10px 8px;transition:transform .1s ease-out,background-color .15s linear}.gn-composite-bar-item_type_action:focus{box-shadow:0 0 0 2px var(--g-color-line-misc)}.gn-composite-bar-item_type_action:focus:not(:focus-visible){box-shadow:none}.gn-composite-bar-item_type_action:hover{background-color:var(--g-color-base-float-hover)}.gn-composite-bar-item_type_action:active{box-shadow:0 1px 2px var(--g-color-sfx-shadow);transform:scale(.96);transition:none}.gn-composite-bar-item_type_action .gn-composite-bar-item__icon-place{width:var(--gn-composite-bar-item-action-size)}.gn-composite-bar-item_type_action .gn-composite-bar-item__title{margin-right:16px}.gn-composite-bar-item__icon-tooltip_item-type_action{margin-left:10px}.gn-composite-bar-item:not(.gn-composite-bar-item_compact).gn-composite-bar-item_current.gn-composite-bar-item_type_regular{background-color:var(--g-color-base-selection)}.gn-composite-bar-item:not(.gn-composite-bar-item_compact):not(.gn-composite-bar-item_current):hover.gn-composite-bar-item_type_regular{background-color:var(--g-color-base-simple-hover)}.gn-composite-bar-item_compact.gn-composite-bar-item_type_action{width:var(--gn-composite-bar-item-action-size)}.gn-composite-bar-item_compact.gn-composite-bar-item_type_action .gn-composite-bar-item__title{margin:0}.gn-composite-bar-item_compact.gn-composite-bar-item_current.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon{background-color:transparent;position:relative}.gn-composite-bar-item_compact.gn-composite-bar-item_current.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon:before{background-color:var(--g-color-base-selection);border-radius:7px;content:"";height:var(--gn-aside-header-item-icon-background-size);left:50%;margin-left:-19px;margin-top:-19px;position:absolute;top:50%;width:var(--gn-aside-header-item-icon-background-size);z-index:-1}.gn-composite-bar-item_compact:not(.gn-composite-bar-item_current):hover.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon{background-color:transparent;position:relative}.gn-composite-bar-item_compact:not(.gn-composite-bar-item_current):hover.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon:before{background-color:var(--g-color-base-simple-hover);border-radius:7px;content:"";height:var(--gn-aside-header-item-icon-background-size);left:50%;margin-left:-19px;margin-top:-19px;position:absolute;top:50%;width:var(--gn-aside-header-item-icon-background-size);z-index:-1}');var Bre=(0,wre.b)("composite-bar-item");function zre(t){var n=e.createElement("div",{className:Bre("title-text")},t.title);return t.rightAdornment&&(n=e.createElement(e.Fragment,null,n,e.createElement("div",{className:Bre("title-adornment")},t.rightAdornment))),n}var Wre=["right-end"],Vre=[-20,8],Yre=function(t){var n=t.item,i=t.className,r=t.collapseItems,o=t.onMouseLeave,a=t.onMouseEnter,s=t.enableTooltip,u=void 0===s||s,l=t.popupVisible,c=void 0!==l&&l,d=t.popupAnchor,h=t.popupPlacement,f=void 0===h?Wre:h,p=t.popupOffset,g=void 0===p?Vre:p,v=t.popupKeepMounted,m=t.renderPopupContent,_=t.onClosePopup,y=t.onItemClick,b=t.onItemClickCapture,w=t.bringForward,C=Nre().compact,k=e.useState(!1),S=(0,ne.Z)(k,2),x=S[0],L=S[1],E=e.useRef(null),D=d||E,N=e.useRef(null),M=n.type||"regular",T=n.current||!1,I=n.tooltipText||n.title,O=n.icon,A=n.iconSize||18,R=n.id===Tre,P=e.useMemo((function(){return[{name:"compact",enabled:!0,options:{compact:C},phase:"main",fn:function(){}}]}),[C]),Z=e.useCallback((function(e){var t;e instanceof MouseEvent&&e.target&&(null===(t=E.current)||void 0===t?void 0:t.contains(e.target))||null===_||void 0===_||_()}),[_]);if("divider"===n.type)return e.createElement("div",{className:Bre("menu-divider")});var F,j=function(t){return C?e.createElement(ny,{content:I,disabled:!u||R&&x||c,placement:"right",className:Bre("icon-tooltip",{"item-type":M})},e.createElement("div",{onMouseEnter:function(){return null===a||void 0===a?void 0:a()},onMouseLeave:function(){return null===o||void 0===o?void 0:o()},className:Bre("btn-icon")},t)):t},H=function(t){var r=t.icon,s=t.title,u=e.createElement(e.Fragment,null,e.createElement("div",{className:Bre({type:M,current:T,compact:C},i),ref:E,onClick:function(e){R?L(!x):null===y||void 0===y||y(n,!1,e)},onClickCapture:b,onMouseEnter:function(){C||null===a||void 0===a||a()},onMouseLeave:function(){C||null===o||void 0===o||o()}},e.createElement("div",{className:Bre("icon-place"),ref:N},j(r)),e.createElement("div",{className:Bre("title"),title:"string"===typeof n.title?n.title:void 0},s)),m&&Boolean(null===D||void 0===D?void 0:D.current)&&e.createElement(J_,{contentClassName:Bre("popup"),open:c,keepMounted:v,placement:f,offset:g,anchorRef:D,onClose:Z,modifiers:P},m()));return n.link?e.createElement("a",{href:n.link,className:Bre("link")},u):u},B=O?e.createElement(yo.J,{data:O,size:A,className:Bre("icon")}):null,z={icon:B,title:zre(n)},W=null,V={compact:Boolean(C),collapsed:!1,item:n,ref:E};return"function"===typeof n.itemWrapper?(F=n.itemWrapper(z,H,V),W=w&&n.itemWrapper(z,(function(e){var t=e.icon;return j(t)}),V)):(F=H(z),W=w&&j(B)),e.createElement(e.Fragment,null,w&&e.createElement(Hre,{iconNode:W,iconRef:N,onClick:function(e){return null===y||void 0===y?void 0:y(n,!1,e)},onClickCapture:b}),F,x&&R&&(null===r||void 0===r?void 0:r.length)&&Boolean(null===D||void 0===D?void 0:D.current)&&e.createElement(Ure,Object.assign({},t,{anchorRef:E,onClose:function(){return L(!1)}})))};function Ure(t){var n=t.onItemClick,i=t.collapseItems,r=t.anchorRef,o=t.onClose,a=Nre().compact;return(null===i||void 0===i?void 0:i.length)?e.createElement(J_,{placement:Ire,open:!0,anchorRef:r,onClose:o},e.createElement("div",{className:Bre("collapse-items-popup-content")},e.createElement(lD,{itemClassName:Bre("root-collapse-item"),items:i,selectedItemIndex:Pre(i),itemHeight:Ore,itemsHeight:i.length*Ore,virtualized:!1,filterable:!1,sortable:!1,onItemClick:o,renderItem:function(t){var i=function(i){var r=i.title,o=e.createElement("div",{className:Bre("collapse-item"),onClick:function(e){null===n||void 0===n||n(t,!0,e)}},r);return t.link?e.createElement("a",{href:t.link,className:Bre("link")},o):o},o={title:zre(t)},s={compact:Boolean(a),collapsed:!0,item:t,ref:r};return"function"===typeof t.itemWrapper?t.itemWrapper(o,i,s):i(o)}}))):null}Yre.displayName="Item";Mre(".gn-footer-item{height:40px;width:100%}");var Kre=(0,wre.b)("footer-item"),qre=function(t){var n=t.item,i=bre(t,["item"]);return e.createElement(Yre,Object.assign({},i,{item:Object.assign({iconSize:18},n),className:Kre({compact:i.compact}),onItemClick:n.onItemClick,onItemClickCapture:n.onItemClickCapture}))},Gre=e.memo((function(t){var n=t.renderContent,i=t.size;return e.createElement(e.Fragment,null,n({size:i}))}));Gre.displayName="RenderContent";var $re=function(t){var n=t.size,i=t.className,r=t.cssSizeVariableName,o=void 0===r?"--gn-aside-header-size":r,a=t.renderContent,s=t.children;return e.createElement("div",{className:i,style:Object.assign({},(0,wt.Z)({},o,"".concat(n,"px")))},"function"===typeof a?e.createElement(Gre,{size:n,renderContent:a}):s)},Qre=n(44591);Mre('.g-root{--gn-aside-header-background-color:var(--g-color-base-warning-light);--gn-aside-header-collapse-button-divider-line-color:var(\n --gn-aside-header-subheader-divider-line-color\n );--gn-aside-header-menu-item-icon-color:var(--g-color-text-misc);--gn-aside-header-footer-item-icon-color:var(--g-color-text-primary);--gn-aside-header-subheader-item-icon-color:var(--g-color-text-primary);--gn-aside-header-item-icon-background-size:38px;--gn-aside-top-panel-height:0px}.g-root_theme_light,.g-root_theme_light-hc{--gn-aside-header-divider-line-color:var(--g-color-line-generic);--gn-aside-header-subheader-divider-line-color:var(--g-color-line-generic)}.g-root_theme_dark,.g-root_theme_dark-hc{--gn-aside-header-divider-line-color:var(--g-color-line-generic-solid);--gn-aside-header-subheader-divider-line-color:var(--g-color-line-generic-solid)}.gn-aside-header{--gn-aside-header-min-width:56px;height:100%;position:relative;width:100%}.gn-aside-header,.gn-aside-header__aside{background-color:var(--g-color-base-background)}.gn-aside-header__aside{box-sizing:border-box;display:flex;flex-direction:column;height:100vh;left:0;margin-top:var(--gn-aside-top-panel-height);max-height:calc(100vh - var(--gn-aside-top-panel-height));position:sticky;top:var(--gn-aside-top-panel-height);width:inherit;z-index:100}.gn-aside-header__aside:after{background-color:var(--gn-aside-header-divider-line-color);content:"";height:100%;position:absolute;right:0;top:0;width:1px;z-index:2}.gn-aside-header__aside-popup-anchor{bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.gn-aside-header__aside-content{--gradient-height:334px;display:flex;flex-direction:column;height:inherit;overflow-x:hidden;position:relative;user-select:none;width:inherit;z-index:2}.gn-aside-header__aside-content>.gn-aside-header-logo{margin:8px 0}.gn-aside-header__aside-content_with-decoration{background:linear-gradient(180deg,var(--gn-aside-header-background-color) calc(var(--gradient-height)*.33),transparent calc(var(--gradient-height)*.88))}.gn-aside-header__aside-custom-background{bottom:0;display:flex;position:absolute;top:0;z-index:-1}.gn-aside-header_compact .gn-aside-header__aside-content{background:transparent}.gn-aside-header__header{--gn-aside-header-header-divider-height:29px;box-sizing:border-box;flex:none;padding-bottom:22px;padding-top:8px;position:relative;width:100%;z-index:1}.gn-aside-header__header .gn-aside-header__header-divider{bottom:0;color:var(--gn-aside-header-background-color);display:none;left:0;position:absolute;z-index:-2}.gn-aside-header__header_with-decoration:before{background-color:var(--gn-aside-header-background-color);content:"";display:none;height:calc(100% - var(--gn-aside-header-header-divider-height));left:0;position:absolute;top:0;width:100%;z-index:-2}.gn-aside-header__header:after{background-color:var(--gn-aside-header-subheader-divider-line-color);bottom:12px;content:"";height:1px;left:0;position:absolute;width:100%;z-index:-2}.gn-aside-header_compact .gn-aside-header__header:before,.gn-aside-header_compact .gn-aside-header__header_with-decoration .gn-aside-header__header-divider{display:block}.gn-aside-header_compact .gn-aside-header__header_with-decoration:after{display:none}.gn-aside-header__menu-items{flex-grow:1}.gn-aside-header__footer{display:flex;flex-direction:column;flex-shrink:0;margin:8px 0;width:100%}.gn-aside-header__panels{bottom:0;left:0;max-height:calc(100vh - var(--gn-aside-top-panel-height));overflow:auto;position:fixed;right:0;top:var(--gn-aside-top-panel-height);z-index:98}.gn-aside-header__panel{height:100%}.gn-aside-header__pane-container{display:flex;flex-direction:row;outline:none;overflow:visible;user-select:text}.gn-aside-header__pane-top-divider{background-color:var(--gn-aside-header-divider-line-color);height:1px;margin-top:-1px}.gn-aside-header__pane-top{background:var(--g-color-base-background);position:fixed;top:0;width:100%;z-index:98}.gn-aside-header__pane-top-alert_centered{display:flex;justify-content:space-around}.gn-aside-header__pane-top-alert_dense{padding-bottom:var(--g-spacing-2);padding-top:var(--g-spacing-2)}.gn-aside-header__content{margin-top:var(--gn-aside-top-panel-height);width:calc(100% - var(--gn-aside-header-size));z-index:95}.gn-aside-header__collapse-button{--yc-button-background-color-hover:transparent;border-top:1px solid var(--gn-aside-header-collapse-button-divider-line-color);box-sizing:border-box;flex:none;height:20px;margin-top:auto;overflow:hidden;width:100%}.gn-aside-header__collapse-button>.yc-button__text{align-items:center;display:flex;height:20px;justify-content:center}.gn-aside-header__collapse-button:not(.gn-aside-header__collapse-button_compact) .gn-aside-header__collapse-icon{transform:rotate(180deg)}.gn-aside-header__collapse-button .gn-aside-header__collapse-icon{color:var(--g-color-text-secondary)}.gn-aside-header__collapse-button:hover .gn-aside-header__collapse-icon{color:var(--g-color-text-primary)}');var Xre,Jre=e.lazy((function(){return n.e(8546).then(n.bind(n,38546)).then((function(e){return{default:e.TopPanel}}))})),eoe=Object.assign((function(t){var n=t.compact,i=t.className,r=t.children,o=t.topAlert,a=n?56:236,s=(0,e.useMemo)((function(){return{size:a,compact:n}}),[n,a]);return e.createElement(Dre,{value:s},e.createElement("div",{className:(0,Qre.b)({compact:n},i),style:Object.assign({},{"--gn-aside-header-size":"".concat(a,"px")})},o&&e.createElement(e.Suspense,{fallback:null},e.createElement(Jre,{topAlert:o})),e.createElement("div",{className:(0,Qre.b)("pane-container")},r)))}),{Content:function(t){var n=t.children,i=t.renderContent,r=Nre().size;return e.createElement($re,{size:r,className:(0,Qre.b)("content"),renderContent:i},n)}}),toe=n(11598),noe=n(92673),ioe=function(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},t),e.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M10.5 2.255v-.01c.003-.03.013-.157-.361-.35C9.703 1.668 8.966 1.5 8 1.5c-.967 0-1.703.169-2.138.394-.375.194-.365.32-.362.351v.01c-.003.03-.013.157.362.35C6.297 2.832 7.033 3 8 3c.967 0 1.703-.169 2.139-.394.374-.194.364-.32.361-.351ZM8 4.5c.506 0 .99-.04 1.436-.118l.84 2.352.253.707.717.221c.648.2 1.055.44 1.277.65.192.18.227.31.227.438 0 .14-.055.488-.937.878-.869.384-2.2.622-3.813.622s-2.944-.238-3.813-.622c-.882-.39-.937-.738-.937-.878 0-.128.035-.259.227-.439.222-.209.629-.448 1.277-.649l.717-.221.253-.707.84-2.352c.445.079.93.118 1.436.118Zm4-2.25c0 .738-.433 1.294-1.136 1.669l.825 2.31c1.553.48 2.561 1.32 2.561 2.52 0 1.854-2.402 2.848-5.5 2.985V15a.75.75 0 0 1-1.5 0v-3.266c-3.098-.136-5.5-1.131-5.5-2.984 0-1.2 1.008-2.04 2.561-2.52l.825-2.311C4.433 3.544 4 2.988 4 2.25 4 .75 5.79 0 8 0s4 .75 4 2.25Z",clipRule:"evenodd"}))},roe=function(t){return e.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},t),e.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M10.5 2.255v-.01c.003-.03.013-.157-.361-.35C9.703 1.668 8.966 1.5 8 1.5c-.967 0-1.703.169-2.138.394-.375.194-.365.32-.362.351v.01c-.003.03-.013.157.362.35C6.297 2.832 7.033 3 8 3c.967 0 1.703-.169 2.139-.394.374-.194.364-.32.361-.351ZM12 2.25c0 .738-.433 1.294-1.136 1.669l.825 2.31c1.553.48 2.561 1.32 2.561 2.52 0 1.854-2.402 2.848-5.5 2.985V15a.75.75 0 0 1-1.5 0v-3.266c-3.098-.136-5.5-1.131-5.5-2.984 0-1.2 1.008-2.04 2.561-2.52l.825-2.311C4.433 3.544 4 2.988 4 2.25 4 .75 5.79 0 8 0s4 .75 4 2.25Z",clipRule:"evenodd"}))},ooe=/{{(.*?)}}/g;function aoe(e,t){return 0===e?t.None:1===e||-1===e?t.One:t.Many}function soe(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"}(Xre||(Xre={}));var uoe,loe=function(){function e(t){(0,X.Z)(this,e),this.data={},this.lang=void 0,this.pluralizers={en:aoe,ru:soe},this.logger=null,this.logger=(null===t||void 0===t?void 0:t.logger)||null}return(0,J.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,wt.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 i=this.getLanguageData(this.lang);if("undefined"===typeof i)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(i).length)return this.warn("Language data is empty."),t;var r=i[e];if(!r)return this.warn("Keyset not found.",e),t;if(0===Object.keys(r).length)return this.warn("Keyset is empty.",e),t;var o,a=r&&r[t];if("undefined"===typeof a)return this.warn("Missing key.",e,t),t;if(Array.isArray(a)){if(a.length<3)return this.warn("Missing required plurals",e,t),t;var s=Number(null===n||void 0===n?void 0:n.count);if(Number.isNaN(s))return this.warn("Missing params.count for key.",e,t),t;o=a[this.getLanguagePluralizer(this.lang)(s,Xre)]||a[Xre.Many],void 0===a[Xre.None]&&this.warn("Missing key for 0",e,t)}else o=a;return n&&(o=function(e,t){for(var n,i="",r=ooe.lastIndex=0;n=ooe.exec(e);){r!==n.index&&(i+=e.slice(r,n.index)),r=ooe.lastIndex;var o=n,a=(0,ne.Z)(o,2),s=a[0],u=a[1];Object.prototype.hasOwnProperty.call(t,u)?i+=t[u]:i+=s}return r<e.length&&(i+=e.slice(r)),i}(o,n)),o}},{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||aoe}}]),e}();!function(e){e.Ru="ru",e.En="en"}(uoe||(uoe={}));var coe,doe=[],hoe={lang:uoe.En},foe=new loe;function poe(e,t){return Object.entries(e).forEach((function(e){var n=(0,ne.Z)(e,2),i=n[0],r=n[1];return foe.registerKeyset(i,t,r)})),foe.keyset(t)}function goe(){return goe=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},goe.apply(this,arguments)}foe.setLang(hoe.lang),function(e){doe.push(e)}((function(e){foe.setLang(e.lang)}));var voe=function(t){return e.createElement("svg",goe({width:56,height:29,viewBox:"0 0 56 29",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},t),coe||(coe=e.createElement("path",{d:"M56 0v29c-.8-1-7-6.1-17.7-8.4L13 15.7A16 16 0 0 1 0 0Z"})))};function moe(){return moe=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},moe.apply(this,arguments)}function _oe(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 yoe(e,t){return yoe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},yoe(e,t)}function boe(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,yoe(e,t)}var woe,Coe,koe,Soe;function xoe(){if(Coe)return woe;Coe=1;return woe="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}function Loe(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}(function(){if(Soe)return koe;Soe=1;var e=xoe();function t(){}function n(){}return n.resetWarningCache=t,koe=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 Eoe=!1,Doe=e.createContext(null),Noe=function(e){return e.scrollTop},Moe="unmounted",Toe="exited",Ioe="entering",Ooe="entered",Aoe="exiting",Roe=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=Toe,i.appearStatus=Ioe):r=Ooe:r=e.unmountOnExit||e.mountOnEnter?Moe:Toe,i.state={status:r},i.nextCallback=null,i}boe(i,n),i.getDerivedStateFromProps=function(e,t){return e.in&&t.status===Moe?{status:Toe}: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!==Ioe&&n!==Ooe&&(t=Ioe):n!==Ioe&&n!==Ooe||(t=Aoe)}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===Ioe){if(this.props.unmountOnExit||this.props.mountOnEnter){var i=this.props.nodeRef?this.props.nodeRef.current:t.findDOMNode(this);i&&Noe(i)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===Toe&&this.setState({status:Moe})},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||Eoe?this.safeSetState({status:Ooe},(function(){n.props.onEntered(a)})):(this.props.onEnter(a,s),this.safeSetState({status:Ioe},(function(){n.props.onEntering(a,s),n.onTransitionEnd(l,(function(){n.safeSetState({status:Ooe},(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&&!Eoe?(this.props.onExit(r),this.safeSetState({status:Aoe},(function(){e.props.onExiting(r),e.onTransitionEnd(i.exit,(function(){e.safeSetState({status:Toe},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:Toe},(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===Moe)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=_oe(n,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return e.createElement(Doe.Provider,{value:null},"function"===typeof i?i(t,r):e.cloneElement(e.Children.only(i),r))},i}(e.Component);function Poe(){}Roe.contextType=Doe,Roe.propTypes={},Roe.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:Poe,onEntering:Poe,onEntered:Poe,onExit:Poe,onExiting:Poe,onExited:Poe},Roe.UNMOUNTED=Moe,Roe.EXITED=Toe,Roe.ENTERING=Ioe,Roe.ENTERED=Ooe,Roe.EXITING=Aoe;var Zoe=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}))},Foe=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=Loe(n.className,i):n.setAttribute("class",Loe(n.className&&n.className.baseVal||"",i)));var n,i}))},joe=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}boe(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&&Noe(e),i&&(this.appliedClasses[t][n]=i,Zoe(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&&Foe(e,i),r&&Foe(e,r),o&&Foe(e,o)},i.render=function(){var t=this.props;t.classNames;var n=_oe(t,["classNames"]);return e.createElement(Roe,moe({},n,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},n}(e.Component);function Hoe(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 Boe(e,t,n){return null!=n[t]?n[t]:e.props[t]}function zoe(t,n,i){var r=Hoe(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:Boe(s,"exit",t),enter:Boe(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:Boe(s,"exit",t),enter:Boe(s,"enter",t)})}})),o}joe.defaultProps={classNames:""},joe.propTypes={};var Woe=Object.values||function(e){return Object.keys(e).map((function(t){return e[t]}))},Voe=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}boe(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,Hoe(i.children,(function(t){return(0,e.cloneElement)(t,{onExited:r.bind(null,t),in:!0,appear:Boe(t,"appear",i),enter:Boe(t,"enter",i),exit:Boe(t,"exit",i)})}))):zoe(t,o,a),firstRender:!1}},i.handleExited=function(e,t){var n=Hoe(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState((function(t){var n=moe({},t.children);return delete n[e.key],{children:n}})))},i.render=function(){var t=this.props,n=t.component,i=t.childFactory,r=_oe(t,["component","childFactory"]),o=this.state.contextValue,a=Woe(this.state.children).map(i);return delete r.appear,delete r.enter,delete r.exit,null===n?e.createElement(Doe.Provider,{value:o},a):e.createElement(Doe.Provider,{value:o},e.createElement(n,r,a))},n}(e.Component);Voe.propTypes={},Voe.defaultProps={component:"div",childFactory:function(e){return e}};var Yoe,Uoe,Koe=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}boe(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=_oe(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(Voe,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);Koe.propTypes={};var qoe="out-in",Goe="in-out",$oe=function(e,t,n){return function(){var i;e.props[t]&&(i=e.props)[t].apply(i,arguments),n()}},Qoe=((Yoe={})[qoe]=function(t){var n=t.current,i=t.changeState;return e.cloneElement(n,{in:!1,onExited:$oe(n,"onExited",(function(){i(Ioe,null)}))})},Yoe[Goe]=function(t){var n=t.current,i=t.changeState,r=t.children;return[n,e.cloneElement(r,{in:!0,onEntered:$oe(r,"onEntered",(function(){i(Ioe)}))})]},Yoe),Xoe=((Uoe={})[qoe]=function(t){var n=t.children,i=t.changeState;return e.cloneElement(n,{in:!0,onEntered:$oe(n,"onEntered",(function(){i(Ooe,e.cloneElement(n,{in:!0}))}))})},Uoe[Goe]=function(t){var n=t.current,i=t.children,r=t.changeState;return[e.cloneElement(n,{in:!1,onExited:$oe(n,"onExited",(function(){r(Ooe,e.cloneElement(i,{in:!0}))}))}),e.cloneElement(i,{in:!0})]},Uoe),Joe=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:Ooe,current:null},e.appeared=!1,e.changeState=function(t,n){void 0===n&&(n=e.state.current),e.setState({status:t,current:n})},e}boe(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===Ioe&&t.mode===Goe?{status:Ioe}:!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:Aoe};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 Ioe:t=Xoe[r](u);break;case Aoe:t=Qoe[r](u);break;case Ooe:t=s}return e.createElement(Doe.Provider,{value:{isMounting:!this.appeared}},t)},n}(e.Component);Joe.propTypes={},Joe.defaultProps={mode:qoe};Mre(".gn-drawer__item{background-color:var(--g-color-base-background);bottom:0;height:100%;left:0;position:absolute;top:0;will-change:transform}.gn-drawer__item_direction_right{left:auto;right:0}.gn-drawer__item-transition-enter{transform:translate(-100%)}.gn-drawer__item-transition_direction_right-enter{transform:translate(100%)}.gn-drawer__item-transition-enter-active,.gn-drawer__item-transition_direction_right-enter-active{transform:translate(0);transition:transform .3s}.gn-drawer__item-transition-enter-done,.gn-drawer__item-transition_direction_right-enter-done{filter:blur(0);transform:translateZ(0)}.gn-drawer__item-transition-exit,.gn-drawer__item-transition_direction_right-exit{transform:translate(0)}.gn-drawer__item-transition-exit-active,.gn-drawer__item-transition_direction_right-exit-active{transition:transform .3s}.gn-drawer__item-transition-exit-active{transform:translate(-100%)}.gn-drawer__item-transition_direction_right-exit-active{transform:translate(100%)}.gn-drawer__item-transition-exit-done,.gn-drawer__item-transition_direction_right-exit-done{visibility:hidden}.gn-drawer__veil{background-color:var(--g-color-sfx-veil);bottom:0;left:0;position:absolute;right:0;top:0}.gn-drawer__veil-transition-enter{opacity:0}.gn-drawer__veil-transition-enter-active{opacity:1;transition:opacity .3s}.gn-drawer__veil-transition-exit{opacity:1}.gn-drawer__veil-transition-exit-active{opacity:0;transition:opacity .3s}.gn-drawer__veil-transition-exit-done{visibility:hidden}");var eae,tae=(0,wre.b)("drawer"),nae=function(t){var n=t.visible,i=t.content,r=t.direction,o=t.className,a=e.useRef(null),s="left"===r?void 0:r;return e.createElement(joe,{in:n,timeout:300,unmountOnExit:!0,classNames:tae("item-transition",{direction:s}),nodeRef:a},e.createElement("div",{ref:a,className:tae("item",{direction:s},o)},i))},iae=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===nae&&(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]),mZ({enabled:u&&l});var c=e.useRef(null),d=e.useRef(null);return e.createElement(Roe,{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:tae(null,n),style:r},e.createElement(joe,{in:a,timeout:300,unmountOnExit:!0,classNames:tae("veil-transition"),nodeRef:d},e.createElement("div",{ref:d,className:tae("veil"),onClick:o})),e.Children.map(i,(function(t){var n=t;if(n.type===nae){var i=Boolean(n.props.visible);return e.cloneElement(n,Object.assign(Object.assign({},n.props),{visible:i&&a}))}return t})))}))},rae=["children","defaultHeight","defaultWidth","disableHeight","disableWidth","nonce","onResize","style","tagName"];eae="undefined"!==typeof window?window:"undefined"!==typeof self?self:n.g;var oae=null,aae=null,sae=eae.clearTimeout,uae=eae.setTimeout,lae=eae.cancelAnimationFrame||eae.mozCancelAnimationFrame||eae.webkitCancelAnimationFrame,cae=eae.requestAnimationFrame||eae.mozRequestAnimationFrame||eae.webkitRequestAnimationFrame;function dae(e){var t,n,i,r,o,a,s,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__&&oae(this.__resizeRAF__),this.__resizeRAF__=aae((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=eae.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==lae||null==cae?(oae=sae,aae=function(e){return uae(e,20)}):(oae=function(e){var t=(0,ne.Z)(e,2),n=t[0],i=t[1];lae(n),sae(i)},aae=function(e){var t=cae((function(){sae(n),e()})),n=uae((function(){lae(t),e()}),20);return[t,n]});var hae=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var e;(0,X.Z)(this,i);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={height:e.props.defaultHeight||0,scaledHeight:e.props.defaultHeight||0,scaledWidth:e.props.defaultWidth||0,width:e.props.defaultWidth||0},e._autoSizer=null,e._detectElementResize=null,e._parentNode=null,e._resizeObserver=null,e._timeoutId=null,e._onResize=function(){e._timeoutId=null;var t=e.props,n=t.disableHeight,i=t.disableWidth,r=t.onResize;if(e._parentNode){var o,a,s,u,l=window.getComputedStyle(e._parentNode)||{},c=parseFloat(null!==(o=l.paddingLeft)&&void 0!==o?o:"0"),d=parseFloat(null!==(a=l.paddingRight)&&void 0!==a?a:"0"),h=parseFloat(null!==(s=l.paddingTop)&&void 0!==s?s:"0"),f=parseFloat(null!==(u=l.paddingBottom)&&void 0!==u?u:"0"),p=e._parentNode.getBoundingClientRect(),g=p.height-h-f,v=p.width-c-d,m=e._parentNode.offsetHeight-h-f,_=e._parentNode.offsetWidth-c-d;(n||e.state.height===m&&e.state.scaledHeight===g)&&(i||e.state.width===_&&e.state.scaledWidth===v)||(e.setState({height:m,width:_,scaledHeight:g,scaledWidth:v}),"function"===typeof r&&r({height:m,scaledHeight:g,scaledWidth:v,width:_}))}},e._setRef=function(t){e._autoSizer=t},e}return(0,J.Z)(i,[{key:"componentDidMount",value:function(){var e=this,t=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,null!=this._parentNode&&("undefined"!==typeof ResizeObserver?(this._resizeObserver=new ResizeObserver((function(){e._timeoutId=setTimeout(e._onResize,0)})),this._resizeObserver.observe(this._parentNode)):(this._detectElementResize=dae(t),this._detectElementResize.addResizeListener(this._parentNode,this._onResize)),this._onResize()))}},{key:"componentWillUnmount",value:function(){this._parentNode&&(this._detectElementResize&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize),null!==this._timeoutId&&clearTimeout(this._timeoutId),this._resizeObserver&&(this._resizeObserver.observe(this._parentNode),this._resizeObserver.disconnect()))}},{key:"render",value:function(){var t=this.props,n=t.children,i=(t.defaultHeight,t.defaultWidth,t.disableHeight),r=void 0!==i&&i,o=t.disableWidth,a=void 0!==o&&o,s=(t.nonce,t.onResize,t.style),u=void 0===s?{}:s,l=t.tagName,c=void 0===l?"div":l,d=nn(t,rae),h=this.state,f=h.height,p=h.scaledHeight,g=h.scaledWidth,v=h.width,m={overflow:"visible"},_={},y=!1;return r||(0===f&&(y=!0),m.height=0,_.height=f,_.scaledHeight=p),a||(0===v&&(y=!0),m.width=0,_.width=v,_.scaledWidth=g),(0,e.createElement)(c,Rt({ref:this._setRef,style:Rt(Rt({},m),u)},d),!y&&n(_))}}]),i}(e.Component),fae={active:!1,activeIndex:void 0,hideCollapseItemTooltip:!1,lastClickedItemIndex:void 0,setValue:function(){}},pae=e.createContext(fae),gae=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(){var e;return(0,X.Z)(this,i),(e=n.apply(this,arguments)).state=Object.assign({},fae),e.setValue=function(t){e.setState(Object.assign({},t))},e}return(0,J.Z)(i,[{key:"render",value:function(){var t=this.props.children;return e.createElement(pae.Provider,{value:Object.assign(Object.assign({},this.state),{setValue:this.setValue})},t)}}]),i}(e.PureComponent);Mre('.g-root_theme_dark .gn-multiple-tooltip,.g-root_theme_dark-hc .gn-multiple-tooltip{--multiple-tooltip-item-bg-color:#424147;--multiple-tooltip-item-active-bg-color:var(--g-color-base-float-heavy);--multiple-tooltip-backdrop-background:linear-gradient(90deg,#313036,rgba(49,48,54,.3));--multiple-tooltip-backdrop-filter:blur(16px)}.g-root_theme_light .gn-multiple-tooltip,.g-root_theme_light-hc .gn-multiple-tooltip{--multiple-tooltip-item-bg-color:#7a7a7a;--multiple-tooltip-item-active-bg-color:var(--g-color-base-float-heavy);--multiple-tooltip-backdrop-background:linear-gradient(90deg,#fff,hsla(0,0%,100%,.3));--multiple-tooltip-backdrop-filter:blur(12px)}.gn-multiple-tooltip{background-color:transparent;box-shadow:none}.gn-multiple-tooltip:before{background:var(--multiple-tooltip-backdrop-background);box-shadow:none;content:"";filter:var(--multiple-tooltip-backdrop-filter);height:100%;position:absolute;width:100%;z-index:-1}.gn-multiple-tooltip__items-container{align-items:flex-start;display:flex;flex-direction:column;padding:32px 40px 32px 12px}.gn-multiple-tooltip__item{align-items:center;background-color:var(--multiple-tooltip-item-bg-color);border-radius:5px;box-sizing:border-box;color:var(--g-color-text-light-primary);display:flex;height:30px;margin-bottom:5px;padding:8px 12px;position:relative;transition:transform .1s ease-in-out}.gn-multiple-tooltip__item:first-child,.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider)+.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider){margin-top:5px}.gn-multiple-tooltip__item_divider+.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider){margin-top:4px}.gn-multiple-tooltip__item_active{background-color:var(--multiple-tooltip-item-active-bg-color);transform:translateX(-12px)}.gn-multiple-tooltip__item_divider{height:15px;margin:0;visibility:hidden}');var vae=(0,wre.b)("multiple-tooltip"),mae=[-32,4],_ae=[{name:"preventOverflow",enabled:!1}],yae=function(t){var n=t.items,i=t.open,r=t.anchorRef,o=t.placement,a=e.useContext(pae),s=a.activeIndex,u=a.hideCollapseItemTooltip,l=void 0===s?null:n[s];return e.createElement(J_,{open:i,anchorRef:r,placement:o,offset:mae,contentClassName:vae(null),modifiers:_ae,disableLayer:!0},e.createElement("div",{className:vae("items-container")},n.filter((function(e){var t=e.type,n=void 0===t?"regular":t,i=e.id;return!u||i!==Tre&&"action"!==n})).map((function(t,n){return"divider"===t.type?e.createElement("div",{className:vae("item",{divider:!0}),key:n},t.title):e.createElement("div",{className:vae("item",{active:t===l}),key:n},t.title)}))))};Mre(".gn-composite-bar{flex:1 0 auto;min-height:40px;width:100%}.gn-composite-bar .gn-composite-bar__root-menu-item[class]{background-color:transparent}");var bae=(0,wre.b)("composite-bar"),wae=function(t){var n=t.type,i=t.items,r=t.onItemClick,o=t.collapseItems,a=t.multipleTooltip,s=void 0!==a&&a,u=(0,e.useRef)(null),l=(0,e.useRef)(null),c=(0,e.useContext)(pae),d=c.setValue,h=c.active,f=c.activeIndex,p=c.lastClickedItemIndex,g=Nre().compact;e.useEffect((function(){function e(){s&&h&&d({active:!1})}return window.addEventListener("blur",e),function(){window.removeEventListener("blur",e)}}),[s,h,d]);var v=(0,e.useCallback)((function(e){s&&g&&!h&&document.hasFocus()&&f!==p&&e.clientX<=56&&(null===d||void 0===d||d({active:!0}))}),[s,g,h,f,p,d]),m=(0,e.useCallback)((function(){s&&h&&document.hasFocus()&&(null===d||void 0===d||d({active:!1,lastClickedItemIndex:void 0}))}),[s,h,d]),_=(0,e.useCallback)((function(e){return function(){if(s&&document.hasFocus()){var t=h;if(h||e===p||(t=!0),f===e&&h===t)return;d({activeIndex:e,active:t})}}}),[s,h,p,f,d]),y=(0,e.useCallback)((function(){var e;g&&document.hasFocus()&&(null===(e=u.current)||void 0===e||e.activateItem(void 0),!s||void 0===f&&void 0===p||d({activeIndex:void 0,lastClickedItemIndex:void 0}))}),[f,g,p,s,d]),b=(0,e.useCallback)((function(e){return function(t,n,i){g&&s&&e!==p&&t.id!==Tre&&d({lastClickedItemIndex:e,active:!1}),null===r||void 0===r||r(t,n,i)}}),[g,p,s,r,d]);return e.createElement(e.Fragment,null,e.createElement("div",{ref:l,onMouseEnter:v,onMouseLeave:m},e.createElement(lD,{ref:u,items:i,selectedItemIndex:"menu"===n?Pre(i):void 0,itemHeight:Are,itemsHeight:Rre,itemClassName:bae("root-menu-item"),virtualized:!1,filterable:!1,sortable:!1,renderItem:function(t,n,i){var r=Fre(t)?{item:t}:t,a=Fre(t)?!s:t.enableTooltip;return e.createElement(Yre,Object.assign({},r,{enableTooltip:a,onMouseEnter:_(i),onMouseLeave:y,onItemClick:b(i),collapseItems:o}))}})),"menu"===n&&s&&e.createElement(yae,{open:g&&h,anchorRef:l,placement:["right-start"],items:i}))},Cae=function(t){var n,i=t.type,r=t.items,o=t.menuMoreTitle,a=t.onItemClick,s=t.multipleTooltip,u=void 0!==s&&s;if(0===r.length)return null;if("menu"===i){var l=Zre(r),c=function(e){return{id:Tre,title:e,icon:BI,iconSize:18}}(o);n=e.createElement("div",{className:bae({autosizer:!0}),style:{minHeight:l}},0!==r.length&&e.createElement(hae,null,(function(t){var n=t.width,i=t.height,o=function(e,t,n){var i,r,o,a=e.filter((function(e){return e.afterMoreButton})),s=e.filter((function(e){return!e.afterMoreButton})),u=[].concat((0,Ct.Z)(s),(0,Ct.Z)(a)),l=Rre(u);if(l<=t)return{listItems:u,collapseItems:[]};var c=Are(n);u.splice(s.length,0,n);for(var d=[],h=l+c,f=u.length;h>t&&0!==f;){var p=u[--f];p.pinned||p.id===Tre||p.afterMoreButton||("divider"!==p.type?(h-=Are(p),d.unshift.apply(d,(0,Ct.Z)(u.splice(f,1)))):f+1<u.length&&"divider"===(null===(i=u[f+1])||void 0===i?void 0:i.type)&&(h-=Are(p),u.splice(f,1)))}return"divider"!==(null===(r=u[f])||void 0===r?void 0:r.type)||0!==f&&"divider"!==(null===(o=u[f-1])||void 0===o?void 0:o.type)||u.splice(f,1),{listItems:u,collapseItems:d}}(r,i,c),s=o.listItems,l=o.collapseItems;return e.createElement("div",{style:{width:n,height:i}},e.createElement(wae,{type:"menu",items:s,onItemClick:a,collapseItems:l,multipleTooltip:u}))})))}else n=e.createElement("div",{className:bae({subheader:!0})},e.createElement(wae,{type:"subheader",items:r,onItemClick:a}));return e.createElement(gae,null,n)},kae=poe({en:{"menu-item.all-pages.title":"All pages","all-panel.menu.category.allOther":"All other","all-panel.resetToDefault":"Reset to default","all-panel.title.editing":"Editing","all-panel.title.main":"All pages"},ru:{"menu-item.all-pages.title":"\u0412\u0441\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b","all-panel.menu.category.allOther":"\u041e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435","all-panel.resetToDefault":"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","all-panel.title.editing":"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435","all-panel.title.main":"\u0412\u0441\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b"}},"AllPagesPanel"),Sae="all-pages";Mre(".gn-all-pages-list-item{align-items:center;column-gap:var(--g-spacing-4);display:flex;height:40px;padding:0 var(--g-spacing-6);width:100%}.gn-all-pages-list-item__text{flex:1}.gn-all-pages-list-item__icon{color:var(--g-color-text-misc)}");var xae=(0,wre.b)("all-pages-list-item"),Lae=function(t){var n=t.item,i=t.editMode,r=t.onToggle,o=(0,e.useCallback)((function(e){e.stopPropagation(),e.preventDefault(),r()}),[r]);return e.createElement("div",{className:xae(),onClick:function(e){i&&(e.stopPropagation(),e.preventDefault())}},n.icon?e.createElement(yo.J,{className:xae("icon"),data:n.icon,size:n.iconSize}):null,e.createElement("span",{className:xae("text")},n.title),i&&e.createElement(_o.z,{onClick:o,view:n.hidden?"flat-secondary":"flat-action"},e.createElement(_o.z.Icon,null,n.hidden?e.createElement(ioe,null):e.createElement(roe,null))))};Mre(".gn-all-pages-panel{box-sizing:border-box;height:100%;min-width:300px;padding:var(--g-spacing-4) var(--g-spacing-6)}.gn-all-pages-panel__content{flex:1;margin:0 calc(var(--g-spacing-6)*-1);overflow:auto}.gn-all-pages-panel__category{padding:0 var(--g-spacing-6)}.gn-all-pages-panel__discoverable-feature-wrapper{display:flex}");var Eae=(0,wre.b)("all-pages-panel"),Dae=function(t){var n=t.startEditIcon,i=t.onEditModeChanged,r=t.className,o=Lre(),a=o.menuItems,s=o.onMenuItemsChanged,u=(0,e.useRef)(a);u.current=a;var l=(0,e.useState)(!1),c=(0,ne.Z)(l,2),d=c[0],h=c[1],f=(0,e.useCallback)((function(){h((function(e){return!e}))}),[]),p=function(t){var n=(0,e.useMemo)((function(){var e=t.filter((function(e){return"divider"!==e.type&&e.id!==Sae}));return e.sort((function(e,t){return"action"===e.type?1:"action"===t.type?-1:0})),e.reduce((function(e,t){var n=t.category||kae("all-panel.menu.category.allOther");return e[n]||(e[n]=[]),e[n].push(t),e}),{})}),[t]);return n}(a);(0,e.useEffect)((function(){null===i||void 0===i||i(d)}),[d,i]);var g=(0,e.useCallback)((function(e){var t;null===(t=e.onItemClick)||void 0===t||t.call(e,e,!1)}),[]),v=(0,e.useCallback)((function(e){if(s){var t=Object.assign(Object.assign({},e),{hidden:!e.hidden}),n=u.current.filter((function(e){return e.id!==Sae}));s(n.map((function(e){return e.id!==t.id?e:t})))}}),[s]),m=(0,e.useCallback)((function(t,n,i){return e.createElement(Lae,{item:t,editMode:d,onToggle:function(){return v(t)}})}),[d,v]),_=(0,e.useCallback)((function(){if(s){var e=u.current.filter((function(e){return e.id!==Sae}));s(e.map((function(e){return Object.assign(Object.assign({},e),{hidden:!1})})))}}),[s]);return e.createElement(toe.k,{className:Eae(null,r),gap:"5",direction:"column"},e.createElement(toe.k,{gap:"4",alignItems:"center",justifyContent:"space-between"},e.createElement(noe.x,{variant:"subheader-2"},kae(d?"all-panel.title.editing":"all-panel.title.main")),e.createElement(_o.z,{selected:d,view:"normal",onClick:f},n||e.createElement(yo.J,{data:G7}))),e.createElement(toe.k,{className:Eae("content"),gap:"5",direction:"column"},Object.keys(p).map((function(t){return e.createElement(toe.k,{key:t,direction:"column",gap:"3"},e.createElement(noe.x,{className:Eae("category"),variant:"body-1",color:"secondary"},t),e.createElement(lD,{virtualized:!1,filterable:!1,items:p[t],onItemClick:g,renderItem:m}))}))),d&&e.createElement(_o.z,{onClick:_},kae("all-panel.resetToDefault")))},Nae=poe({en:{button_collapse:"Collapse",button_expand:"Expand",label_more:"More"},ru:{button_collapse:"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c",button_expand:"\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c",label_more:"\u0415\u0449\u0451"}},"AsideHeader");Mre(".gn-logo{height:40px}.gn-logo,.gn-logo__logo-btn-place{align-items:center;display:flex;flex-shrink:0}.gn-logo__logo-btn-place{cursor:pointer;justify-content:center;width:var(--gn-aside-header-min-width)}.gn-logo__logo-btn-place .yc-button:before{background-color:transparent}.gn-logo__btn-logo.yc-button_view_flat.yc-button_size_l{--yc-button-height:var(--gn-aside-header-item-icon-background-size)}.gn-logo__logo{cursor:pointer;font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height);vertical-align:middle}.gn-logo__logo-link,.gn-logo__logo-link:active,.gn-logo__logo-link:focus,.gn-logo__logo-link:hover,.gn-logo__logo-link:visited{color:inherit;outline:none;text-decoration:none}.g-root .gn-logo__btn-logo.button2_theme_flat.button2_hovered_yes:before{background-color:transparent}");var Mae,Tae=(0,wre.b)("logo"),Iae=function(t){var n,i=t.text,r=t.icon,o=t.iconSrc,a=t.iconClassName,s=t.iconSize,u=void 0===s?24:s,l=t.textSize,c=void 0===l?15:l,d=t.href,h=t.wrapper,f=t.onClick,p=Nre().compact,g="function"===typeof h;o?n=e.createElement(_o.z.Icon,{className:a},e.createElement("img",{alt:"logo icon",src:o,width:u,height:u})):r&&(n=e.createElement(yo.J,{data:r,size:u,className:a}));var v,m=e.createElement(_o.z,{view:"flat",size:"l",className:Tae("btn-logo"),component:g?"span":void 0,onClick:f,target:"_self",href:d},n);return v="function"===typeof i?i():e.createElement("div",{className:Tae("logo"),style:{fontSize:c}},i),e.createElement("div",{className:Tae()},e.createElement("div",{className:Tae("logo-btn-place")},g?h(m,Boolean(p)):m),!p&&(g?e.createElement("div",{onClick:f},h(v,Boolean(p))):e.createElement("a",{href:null!==d&&void 0!==d?d:"/",target:"_self",className:Tae("logo-link"),onClick:f},v)))},Oae=[],Aae=function(){var t=Lre(),n=t.logo,i=t.onItemClick,r=t.onClosePanel,o=t.headerDecoration,a=t.subheaderItems,s=n.onClick,u=(0,e.useCallback)((function(e){null===r||void 0===r||r(),null===s||void 0===s||s(e)}),[r,s]);return e.createElement("div",{className:(0,Qre.b)("header",(0,wt.Z)({},"with-decoration",o))},e.createElement(Iae,Object.assign({},n,{onClick:u})),e.createElement(Cae,{type:"subheader",items:a||Oae,onItemClick:i}),e.createElement(yo.J,{data:voe,className:(0,Qre.b)("header-divider"),width:56,height:29}))};function Rae(){return Rae=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},Rae.apply(this,arguments)}var Pae,Zae=function(t){return e.createElement("svg",Rae({width:8,height:8,viewBox:"0 0 8 8",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},t),Mae||(Mae=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"})))},Fae=function(t,n){var i=function(t){return e.createElement(n,Object.assign({},t))};return i.displayName=t,i}("NotIcon",yo.J),jae=function(){var t=Lre(),n=t.onChangeCompact,i=t.compact,r=t.expandTitle,o=t.collapseTitle,a=(0,e.useCallback)((function(){null===n||void 0===n||n(!i)}),[i,n]),s=i?r||Nae("button_expand"):o||Nae("button_collapse");return e.createElement(_o.z,{className:(0,Qre.b)("collapse-button",{compact:i}),view:"flat",onClick:a,title:s},e.createElement(Fae,{data:Zae,className:(0,Qre.b)("collapse-icon"),width:"16",height:"10"}))},Hae=function(){var t=Lre(),n=t.panelItems,i=t.onClosePanel,r=t.size;return n?e.createElement(iae,{className:(0,Qre.b)("panels"),onVeilClick:i,onEscape:i,style:{left:r}},n.map((function(t){return e.createElement(nae,Object.assign({key:t.id},t))}))):null},Bae=e.forwardRef((function(t,n){var i=Lre(),r=i.size,o=i.onItemClick,a=i.headerDecoration,s=i.multipleTooltip,u=i.menuMoreTitle,l=i.renderFooter,c=i.compact,d=i.customBackground,h=i.customBackgroundClassName,f=function(){var t=Lre(),n=t.menuItems,i=t.allPagesIsAvailable;return(0,e.useMemo)((function(){if(!i)return n;var e=0;return n.filter((function(t,n,i){return!t.hidden&&(!(n>0&&"divider"===t.type)||"divider"!==i[e].type&&!i[e].hidden)&&(e=n,!0)}))}),[i,n])}(),p=(0,e.useRef)(null);return e.useEffect((function(){Iv(n,p.current)}),[n]),e.createElement(e.Fragment,null,e.createElement("div",{className:(0,Qre.b)("aside"),style:{width:r}},e.createElement("div",{className:(0,Qre.b)("aside-popup-anchor"),ref:p}),e.createElement("div",{className:(0,Qre.b)("aside-content",(0,wt.Z)({},"with-decoration",a))},d&&e.createElement("div",{className:(0,Qre.b)("aside-custom-background",h)},d),e.createElement(Aae,null),(null===f||void 0===f?void 0:f.length)?e.createElement(Cae,{type:"menu",items:f,menuMoreTitle:null!==u&&void 0!==u?u:Nae("label_more"),onItemClick:o,multipleTooltip:s}):e.createElement("div",{className:(0,Qre.b)("menu-items")}),e.createElement("div",{className:(0,Qre.b)("footer")},null===l||void 0===l?void 0:l({size:r,compact:Boolean(c),asideRef:p})),e.createElement(jae,null))),e.createElement(Hae,null))}));!function(e){e.AllPages="all-pages"}(Pae||(Pae={}));var zae,Wae=[],Vae=function(t){var n=t.size,i=t.onClosePanel,r=t.menuItems,o=t.panelItems,a=t.onMenuItemsChanged,s=(0,e.useState)(),u=(0,ne.Z)(s,2),l=u[0],c=u[1],d=e.useMemo((function(){return{id:Sae,title:kae("menu-item.all-pages.title"),tooltipText:kae("menu-item.all-pages.title"),icon:BI}}),[]),h=Boolean(a)&&(!r||(null===r||void 0===r?void 0:r.length)>0);(0,e.useEffect)((function(){(null===o||void 0===o?void 0:o.some((function(e){return e.visible})))&&c(void 0)}),[o]);var f=(0,e.useCallback)((function(){c(void 0),null===i||void 0===i||i()}),[i]),p=(0,e.useCallback)((function(e,t,n){var i;e.id===d.id?c((function(e){return e===Pae.AllPages?void 0:Pae.AllPages})):f(),null===(i=e.onItemClick)||void 0===i||i.call(e,e,t,n)}),[f,d]),g=(0,e.useMemo)((function(){return h?[].concat((0,Ct.Z)(r||Wae),[Object.assign(Object.assign({},d),{current:l===Pae.AllPages})]):r||Wae}),[h,r,l,d]),v=(0,e.useMemo)((function(){return h?[].concat((0,Ct.Z)(o||[]),[{id:Pae.AllPages,content:e.createElement(Dae,null),visible:l===Pae.AllPages}]):o}),[h,o,l]);return Object.assign(Object.assign({},t),{onClosePanel:f,allPagesIsAvailable:h,menuItems:g,panelItems:v,size:n,onItemClick:p})},Yae=e.forwardRef((function(t,n){var i=Nre(),r=i.size,o=i.compact,a=Vae(Object.assign({size:r,compact:o},t));return e.createElement(xre,{value:a},e.createElement(Bae,{ref:n}))})),Uae=e.forwardRef((function(t,n){var i=t.compact,r=t.className,o=t.topAlert,a=bre(t,["compact","className","topAlert"]);return e.createElement(eoe,{compact:i,className:r,topAlert:o},e.createElement(Yae,Object.assign({ref:n},a)),e.createElement(eoe.Content,{renderContent:a.renderContent}))}));function Kae(){return Kae=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},Kae.apply(this,arguments)}var qae,Gae=function(t){return e.createElement("svg",Kae({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},t),zae||(zae=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 $ae(){return $ae=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},$ae.apply(this,arguments)}var Qae,Xae=function(t){return e.createElement("svg",$ae({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16"},t),qae||(qae=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 Jae(){return Jae=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},Jae.apply(this,arguments)}var ese,tse=function(t){return e.createElement("svg",Jae({"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),Qae||(Qae=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 nse(){return nse=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},nse.apply(this,arguments)}var ise,rse=function(t){return e.createElement("svg",nse({"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),ese||(ese=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 ose(){return ose=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},ose.apply(this,arguments)}var ase,sse=function(t){return e.createElement("svg",ose({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},t),ise||(ise=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 use(){return use=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},use.apply(this,arguments)}var lse,cse=function(t){return e.createElement("svg",use({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},t),ase||(ase=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 dse(){return dse=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},dse.apply(this,arguments)}var hse,fse=function(t){return e.createElement("svg",dse({viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),lse||(lse=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 pse(){return pse=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},pse.apply(this,arguments)}var gse=function(t){return e.createElement("svg",pse({viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),hse||(hse=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"})))},vse=poe({en:{button_close:"Close"},ru:{button_close:"\u0417\u0430\u043a\u0440\u044b\u0442\u044c"}},"Title");Mre(".gn-title{align-items:center;box-sizing:border-box;display:flex;justify-content:space-between;min-height:64px;padding:14px 10px 14px 20px}.gn-title_separator{border-bottom:1px solid var(--g-color-line-generic)}.gn-title__text{margin:0 20px 0 0}");var mse=(0,wre.b)("title"),_se=function(t){var n=t.children,i=t.closeIconSize,r=void 0===i?23:i,o=t.hasSeparator,a=t.closeTitle,s=void 0===a?vse("button_close"):a,u=t.onClose;return e.createElement("div",{className:mse({separator:o})},e.createElement(noe.x,{className:mse("text"),as:"h3",variant:"subheader-3"},n),u&&e.createElement(_o.z,{onClick:u,view:"flat",size:"l",extraProps:{"aria-label":s}},e.createElement(yo.J,{data:go.Z,size:r})))};function yse(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 bse(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function wse(e){var t=bse(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").replace(/\s+/g,".*?");return Cse(e,"",new RegExp(t,"i"))}function Cse(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=Cse(t.props.children,n,i),l=u.menu,c=u.pages;r.push.apply(r,(0,Ct.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=Cse(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]=kse(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 kse(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=kse(t.props.children,n),a=o.sections,s=o.withBadge,u=o.hidden;(r=i.sections).push.apply(r,(0,Ct.Z)(a)),i.withBadge=s||i.withBadge,i.hidden=u&&i.hidden}else{var l=t.props,c=l.withBadge,d=l.showTitle,h=void 0===d||d,f=Sse(t.props.children,n),p=f.items,g=f.hidden;i.withBadge=c||i.withBadge,i.hidden=g&&i.hidden,i.sections.push(Object.assign(Object.assign({},t.props),{withBadge:c,items:p,hidden:g,showTitle:h}))}})),i}function Sse(t,n){var i=!0,r=[];return e.Children.forEach(t,(function(t){if(e.isValidElement(t))if(t.type===e.Fragment){var o=Sse(t.props.children,n);r.push.apply(r,(0,Ct.Z)(o.items)),i=i&&o.hidden}else{var a=Object.assign(Object.assign({},t.props),{element:t,hidden:!n.test(t.props.title)});r.push(a),i=i&&a.hidden}})),{items:r,hidden:i}}_se.displayName="Title";var xse=e.createContext({});function Lse(t,n){var i=e.useRef(null);return e.useMemo((function(){return n?Object.assign({selectedRef:i},function(e,t){if(!t.settingId&&!t.section&&!t.page)return{};for(var n=0,i=Object.values(e);n<i.length;n++){var r=i[n];if(!t.settingId&&!t.section){if(t.page!==r.id)continue;return{page:r}}var o,a=(0,Na.Z)(r.sections);try{for(a.s();!(o=a.n()).done;){var s=o.value;if(t.settingId){var u,l=(0,Na.Z)(s.items);try{for(l.s();!(u=l.n()).done;){var c=u.value;if(c.id===t.settingId)return{page:r,section:s,setting:c}}}catch(d){l.e(d)}finally{l.f()}}else if(t.section&&("id"in t.section?t.section.id===s.id:t.section.title===s.title))return{page:r,section:s}}}catch(d){a.e(d)}finally{a.f()}}return{}}(t,n)):{selectedRef:i}}),[t,n])}xse.displayName="SettingsSelectionContext";var Ese=xse.Provider;var Dse=function(e){return e},Nse=(0,wre.b)("settings-search");function Mse(t){var n=t.className,i=t.initialValue,r=t.onChange,o=t.debounce,a=void 0===o?200:o,s=t.inputRef,u=t.inputSize,l=t.placeholder,c=t.autoFocus,d=void 0===c||c,h=e.useState(null!==i&&void 0!==i?i:""),f=(0,ne.Z)(h,2),p=f[0],g=f[1],v=yse((0,kre.d)(r,a)),m=yse((function(e){g(e),v(e)}));return e.createElement("div",{className:Nse(null,n)},e.createElement(db,{value:p,controlRef:s,hasClear:!0,autoFocus:d,size:u,placeholder:l,onUpdate:m}))}Mre('.gn-settings-menu__group-heading{display:inline-block;font-weight:var(--g-text-accent-font-weight);line-height:18px;margin-bottom:12px;padding:0 20px}.gn-settings-menu__group+.gn-settings-menu__group{margin-top:24px}.gn-settings-menu__item{align-items:center;color:var(--g-color-text-primary);cursor:pointer;display:flex;height:40px;padding:0 20px}.gn-settings-menu__item-icon{color:var(--g-color-text-misc);margin-right:5px}.gn-settings-menu__item:hover,.gn-settings-menu__item_focused{background:var(--g-color-base-simple-hover)}.gn-settings-menu__item_selected{background:var(--g-color-base-selection)}.gn-settings-menu__item_selected.gn-settings-menu__item_focused,.gn-settings-menu__item_selected:hover{background:var(--g-color-base-selection-hover)}.gn-settings-menu__item_disabled{color:var(--g-color-text-secondary);cursor:auto}.gn-settings-menu__item_disabled:hover{background:none}.gn-settings-menu__item_disabled .gn-settings-menu__item-icon{color:var(--g-color-base-misc-heavy)}.gn-settings-menu__item_badge{position:relative}.gn-settings-menu__item_badge:after{background-color:var(--g-color-text-danger);border-radius:50%;content:"";display:block;height:6px;position:absolute;right:9px;top:calc(50% - 3px);width:6px}');var Tse=(0,wre.b)("settings-menu"),Ise=e.forwardRef((function(t,n){var i=t.items,r=t.onChange,o=t.activeItemId,a=e.useState(),s=(0,ne.Z)(a,2),u=s[0],l=s[1],c=e.useRef(null),d=yse(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(Ase(c.current,t,1)),!0):"ArrowUp"===e.key&&(l(Ase(c.current,t,-1)),!0)},clearFocus:function(){l(void 0)}}}),[h,d]),e.createElement("div",{ref:c,className:Tse()},i.map((function(t){return"groupTitle"in t?e.createElement("div",{key:t.groupTitle,className:Tse("group")},e.createElement("span",{className:Tse("group-heading")},t.groupTitle),t.items.map((function(e){return Ose(e,r,o,u)}))):Ose(t,r,o,u)})))}));function Ose(t,n,i,r){return e.createElement("span",{key:t.title,className:Tse("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(yo.J,Object.assign({size:16},t.icon,{className:Tse("item-icon")})):void 0,e.createElement("span",null,t.title))}function Ase(e,t,n){var i,r=e.querySelectorAll(".".concat(Tse("item"),":not(.").concat(Tse("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}}Mre('.gn-settings-menu-mobile.yc-tabs_direction_horizontal{-ms-overflow-style:none;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:none;scrollbar-width:none}.gn-settings-menu-mobile.yc-tabs_direction_horizontal::-webkit-scrollbar{display:none}.gn-settings-menu-mobile__item_badge{position:relative}.gn-settings-menu-mobile__item_badge:after{background-color:var(--g-color-text-danger);border-radius:50%;content:"";display:block;height:6px;position:absolute;right:-8px;top:11px;width:6px}');var Rse=(0,wre.b)("settings-menu-mobile"),Pse=function(t){var n=t.items,i=t.onChange,r=t.activeItemId,o=t.className,a=e.useRef(null),s=e.useMemo((function(){var e=[];return n.forEach((function(t){if("groupTitle"in t)e.push.apply(e,(0,Ct.Z)(t.items.map((function(e){var t=e.id,n=e.title,i=e.disabled,r=e.withBadge;return{id:t,title:n,disabled:i,className:Rse("item",{badge:r})}}))));else{var n=t.id,i=t.title,r=t.disabled,o=t.withBadge;e.push({id:n,title:i,disabled:r,className:Rse("item",{badge:o})})}})),e}),[n]);return e.createElement("div",{ref:a,onTouchMove:function(e){e.stopPropagation()}},e.createElement(Wg,{items:s,className:Rse(null,o),size:"l",activeTab:r,onSelectTab:i}))},Zse=poe({en:{label_title:"Settings","label_filter-placeholder":"Search settings","label_empty-placeholder":"No results found"},ru:{label_title:"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","label_filter-placeholder":"\u041d\u0430\u0439\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","label_empty-placeholder":"\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e"}},"Settings");Mre('.gn-settings{display:grid;grid-template-columns:216px 1fr;height:100%;width:834px}.gn-settings_view_mobile{display:block;height:calc(80vh - 56px);overflow-x:hidden;width:auto}@supports (height:90dvh){.gn-settings_view_mobile{height:calc(90dvh - 56px)}}.gn-settings_view_mobile.gn-settings_loading{text-align:center}.gn-settings_view_mobile .gn-settings__loader{margin-top:20px}.gn-settings_view_mobile .gn-settings__search{margin:4px 0 16px;padding:0 20px}.gn-settings_view_mobile .gn-settings__page{overflow-y:visible}.gn-settings_view_mobile .gn-settings__tabs .yc-tabs__item:first-child{margin-left:20px}.gn-settings_view_mobile .gn-settings__tabs .yc-tabs__item:last-child{margin-right:20px}.gn-settings_view_mobile .gn-settings__section-heading{font-size:var(--g-text-subheader-3-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-3-line-height)}.gn-settings_view_mobile .gn-settings__section-subheader{color:var(--g-color-text-secondary)}.gn-settings_view_mobile .gn-settings__section-heading+.gn-settings-subheader{margin-top:8px}.gn-settings_view_mobile .gn-settings__section-item{margin-top:0}.gn-settings_view_mobile .gn-settings__section-heading+.gn-settings__section-item,.gn-settings_view_mobile .gn-settings__section-subheader+.gn-settings__section-item{margin-top:30px}.gn-settings_view_mobile .gn-settings__section-item+.gn-settings__section-item{margin-top:22px}.gn-settings_view_mobile .gn-settings__item:not(.gn-settings_view_mobile .gn-settings__item_mode_row){gap:8px;grid-template-columns:1fr}.gn-settings_view_mobile .gn-settings__item-heading{font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height)}.gn-settings_view_mobile .gn-settings__item-description{font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height)}.gn-settings_view_mobile .gn-settings__item_mode_row{grid-template-columns:1fr auto}.gn-settings_view_mobile .gn-settings__item_mode_row .gn-settings__item-heading{padding-right:20px}.gn-settings_view_mobile .gn-settings__item-content{width:100%}.gn-settings_view_mobile .gn-settings__not-found{color:var(--g-color-text-hint);font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);justify-items:start;line-height:var(--g-text-body-2-line-height);margin:20px 0 0 20px}.gn-settings_loading{grid-template-columns:auto}.gn-settings__loader{align-self:center;justify-self:center}.gn-settings__not-found{align-items:center;display:grid;height:100%;justify-items:center}.gn-settings__menu{border-right:1px solid var(--g-color-line-generic)}.gn-settings__heading{font-size:var(--g-text-subheader-2-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-2-line-height);margin:20px 20px 0}.gn-settings__search{margin:0 20px 16px}.gn-settings__page{overflow-y:auto}.gn-settings__content{padding:20px}.gn-settings__section-right-adornment_hidden{opacity:0;transition:opacity .2s}.gn-settings__section-heading:hover .gn-settings__section-right-adornment_hidden{opacity:1}.gn-settings__section-heading{font-size:var(--g-text-subheader-2-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-2-line-height);margin:0}.gn-settings__section-item{margin-top:24px}.gn-settings__section+.gn-settings__section{margin-top:32px}.gn-settings__item{display:grid;grid-template-columns:216px 1fr;justify-items:start}.gn-settings__item_align_top{align-items:start}.gn-settings__item_align_center{align-items:center}.gn-settings__item-title_badge{position:relative}.gn-settings__item-title_badge:after{background-color:var(--g-color-text-danger);border-radius:50%;content:"";display:block;height:6px;position:absolute;right:-8px;top:1px;width:6px}.gn-settings__item-description{color:var(--g-color-text-secondary);display:block;font-size:var(--g-text-caption-2-font-size);font-weight:var(--g-text-caption-font-weight);line-height:var(--g-text-caption-2-line-height);margin-top:2px;padding-right:20px}.gn-settings__item-right-adornment_hidden{opacity:0;transition:opacity .2s}.gn-settings__item:hover .gn-settings__item-right-adornment_hidden{opacity:1}.gn-settings__item_selected,.gn-settings__section_selected{background:var(--g-color-base-selection);border-radius:8px;margin-left:-8px;padding:8px}.gn-settings__found{background:var(--g-color-base-selection);font-weight:var(--g-text-accent-font-weight)}');var Fse=(0,wre.b)("settings"),jse=e.createContext({}),Hse=function(){return e.useContext(jse)};function Bse(t){var n=t.loading,i=t.renderLoading,r=t.children,o=t.view,a=void 0===o?"normal":o,s=t.renderRightAdornment,u=t.renderSectionRightAdornment,l=t.showRightAdornmentOnHover,c=void 0===l||l,d=bre(t,["loading","renderLoading","children","view","renderRightAdornment","renderSectionRightAdornment","showRightAdornmentOnHover"]);return n?e.createElement("div",{className:Fse({loading:!0,view:a})},"function"===typeof i?i():e.createElement(KE,{className:Fse("loader"),size:"m"})):e.createElement(jse.Provider,{value:{renderRightAdornment:s,renderSectionRightAdornment:u,showRightAdornmentOnHover:c}},e.createElement(Vse,Object.assign({view:a},d),r))}var zse,Wse=function(e,t){var n,i=(0,Na.Z)(e);try{for(i.s();!(n=i.n()).done;){var r=n.value;if("groupTitle"in r){var o,a=(0,Na.Z)(r.items);try{for(a.s();!(o=a.n()).done;){var s=o.value;if(s.id===t)return s.title}}catch(u){a.e(u)}finally{a.f()}}else if(r.id===t)return r.title}}catch(u){i.e(u)}finally{i.f()}return""};function Vse(t){var n,i,r=t.initialPage,o=t.initialSearch,a=t.selection,s=t.children,u=t.renderNotFound,l=t.title,c=void 0===l?Zse("label_title"):l,d=t.filterPlaceholder,h=void 0===d?Zse("label_filter-placeholder"):d,f=t.emptyPlaceholder,p=void 0===f?Zse("label_empty-placeholder"):f,g=t.view,v=t.onPageChange,m=t.onClose,_=Hse(),y=_.renderSectionRightAdornment,b=_.showRightAdornmentOnHover,w=e.useState(null!==o&&void 0!==o?o:""),C=(0,ne.Z)(w,2),k=C[0],S=C[1],x=wse(s,k),L=x.menu,E=x.pages,D=Lse(E,a),N=Object.keys(E),M=D.page&&N.includes(D.page.id)?D.page.id:void 0,T=e.useState(M||(r&&N.includes(r)?r:void 0)),I=(0,ne.Z)(T,2),O=I[0],A=I[1],R=e.useRef(null),P=e.useRef(null),Z="mobile"===g;e.useEffect((function(){var e;null===(e=P.current)||void 0===e||e.clearFocus()}),[k]),e.useEffect((function(){var e=function(){var e;null===(e=P.current)||void 0===e||e.clearFocus()};return window.addEventListener("click",e),function(){window.removeEventListener("click",e)}}),[]);var F=O;F&&!(null===(n=E[F])||void 0===n?void 0:n.hidden)||(F=null===(i=Object.values(E).find((function(e){return!e.hidden})))||void 0===i?void 0:i.id);var j=function(e){A((function(t){return t!==e&&(null===v||void 0===v||v(e)),e}))};e.useEffect((function(){F!==O&&j(F)})),e.useEffect((function(){M&&A(M)}),[M]),e.useEffect((function(){var e;(null===(e=D.selectedRef)||void 0===e?void 0:e.current)&&D.selectedRef.current.scrollIntoView()}),[D.selectedRef]);var H=function(t,n){var i=function(e,t,n){var i;return!(!e.section||e.setting)&&(!(!e.section.id||e.section.id!==n.id)||!((null===(i=e.page)||void 0===i?void 0:i.id)!==t||!e.section.title||e.section.title!==n.title))}(D,t,n);return e.createElement("div",{key:n.title,className:Fse("section",{selected:i}),ref:i?D.selectedRef:void 0},n.showTitle&&e.createElement("h3",{className:Fse("section-heading")},y?e.createElement(toe.k,{gap:2,alignItems:"center"},n.title,e.createElement("div",{className:Fse("section-right-adornment",{hidden:b})},y(n))):n.title),n.header&&(Z?e.createElement("div",{className:Fse("section-subheader")},n.header):n.header),n.items.map((function(t){return t.hidden?null:function(t){var n=t.title,i=t.element;return e.createElement("div",{key:n,className:Fse("section-item")},e.cloneElement(i,Object.assign(Object.assign({},i.props),{highlightedTitle:k&&n?Yse(n,k):n})))}(t)})))};return e.createElement(Ese,{value:D},e.createElement("div",{className:Fse({view:g})},Z?e.createElement(e.Fragment,null,e.createElement(Mse,{inputRef:R,className:Fse("search"),initialValue:o,onChange:S,autoFocus:!1,inputSize:"xl"}),e.createElement(Pse,{items:L,onChange:j,activeItemId:F,className:Fse("tabs")})):e.createElement("div",{className:Fse("menu"),onClick:function(){R.current&&R.current.focus()},onKeyDown:function(e){P.current&&P.current.handleKeyDown(e)&&e.preventDefault()}},e.createElement(_se,null,c),e.createElement(Mse,{inputRef:R,className:Fse("search"),initialValue:o,onChange:S,placeholder:h,autoFocus:!0}),e.createElement(Ise,{ref:P,items:L,onChange:j,activeItemId:F})),e.createElement("div",{className:Fse("page")},function(t){if(!t)return"function"===typeof u?u():e.createElement("div",{className:Fse("not-found")},p);var n=E[t].sections.filter((function(e){return!e.hidden}));return e.createElement(e.Fragment,null,!Z&&e.createElement(_se,{hasSeparator:!0,onClose:m},Wse(L,t)),e.createElement("div",{className:Fse("content")},n.map((function(e){return H(t,e)}))))}(F))))}function Yse(t,n){var i,r=t.slice(0),o=[],a=bse(n).split(" ").filter(Boolean),s=0,u=(0,Na.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:Fse("found")},d)),r=r.slice(h+d.length)}}}catch(f){u.e(f)}finally{u.f()}return r&&o.push(r),o}function Use(){return Use=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},Use.apply(this,arguments)}Bse.Group=function(t){var n=t.children;return e.createElement(e.Fragment,null,n)},Bse.Page=function(t){var n=t.children;return e.createElement(e.Fragment,null,n)},Bse.Section=function(t){var n=t.children;return e.createElement(e.Fragment,null,n)},Bse.Item=function(t){var n=t.id,i=t.highlightedTitle,r=t.children,o=t.align,a=void 0===o?"center":o,s=t.withBadge,u=t.renderTitleComponent,l=void 0===u?Dse:u,c=t.mode,d=t.description,h=e.useContext(xse),f=h.setting&&h.setting.id===n,p=Hse(),g=p.renderRightAdornment,v=p.showRightAdornmentOnHover,m=e.createElement("span",{className:Fse("item-title",{badge:s})},l(i));return e.createElement("div",{className:Fse("item",{align:a,mode:c,selected:f}),ref:f?h.selectedRef:void 0},e.createElement("label",{className:Fse("item-heading")},g?e.createElement(toe.k,{className:Fse("item-title-wrapper"),gap:3},m,e.createElement("div",{className:Fse("item-right-adornment",{hidden:v})},g(t))):m,d?e.createElement("span",{className:Fse("item-description")},d):null),e.createElement("div",{className:Fse("item-content")},r))};var Kse,qse=function(t){return e.createElement("svg",Use({"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),zse||(zse=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 Gse(){return Gse=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},Gse.apply(this,arguments)}var $se=function(t){return e.createElement("svg",Gse({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512"},t),Kse||(Kse=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"})))},Qse=JSON.parse('{"page.general":"General","section.appearance":"Appearance","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.language.title":"Interface language","settings.language.option-russian":"Russian","settings.language.option-english":"English","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 could return incorrect data on some versions","settings.useVirtualTables.title":"Use table with data load on scroll for Nodes and Storage cluster tabs","settings.useVirtualTables.popover":"It will increase performance, but could work unstable","settings.queryUseMultiSchema.title":"Allow queries with multiple result sets","settings.queryUseMultiSchema.popover":"Use \'multi\' schema for queries that enables queries with multiple result sets. Returns nothing on versions 23-3 and older"}'),Xse=JSON.parse('{"page.general":"\u041e\u0431\u0449\u0438\u0435","section.appearance":"\u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u0432\u0438\u0434","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.language.title":"\u042f\u0437\u044b\u043a \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430","settings.language.option-russian":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","settings.language.option-english":"English","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 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445","settings.useVirtualTables.title":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0441\u043a\u0440\u043e\u043b\u043b\u0443 \u0434\u043b\u044f \u0432\u043a\u043b\u0430\u0434\u043e\u043a Nodes \u0438 Storage \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430","settings.useVirtualTables.popover":"\u042d\u0442\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e","settings.queryUseMultiSchema.title":"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438","settings.queryUseMultiSchema.popover":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0441\u0445\u0435\u043c\u0443 \'multi\', \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438. \u041d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 23-3 \u0438 \u0441\u0442\u0430\u0440\u0448\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u043e\u0431\u0449\u0435"}'),Jse="ydb-user-settings";Va.registerKeyset(Fa.En,Jse,Qse),Va.registerKeyset(Fa.Ru,Jse,Xse);var eue=Va.keyset(Jse),tue=[{value:"system",content:eue("settings.theme.option-system")},{value:"light",content:eue("settings.theme.option-light")},{value:"dark",content:eue("settings.theme.option-dark")}],nue={settingKey:Di,title:eue("settings.theme.title"),type:"radio",options:tue},iue=(Fa.Ru,eue("settings.language.option-russian"),Fa.En,eue("settings.language.option-english"),eue("settings.language.title"),{settingKey:Mi,title:eue("settings.invertedDisks.title")}),rue={settingKey:Ti,title:eue("settings.useNodesEndpoint.title"),helpPopoverContent:eue("settings.useNodesEndpoint.popover")},oue={settingKey:qi,title:eue("settings.useVirtualTables.title"),helpPopoverContent:eue("settings.useVirtualTables.popover")},aue={settingKey:Gi,title:eue("settings.queryUseMultiSchema.title"),helpPopoverContent:eue("settings.queryUseMultiSchema.popover")},sue={id:"appearanceSection",title:eue("section.appearance"),settings:[nue,iue]},uue={id:"experimentsSection",title:eue("section.experiments"),settings:[rue,oue,aue]},lue=[{id:"generalPage",title:eue("page.general"),icon:{data:qse,height:14,width:14},sections:[sue]},{id:"experimentsPage",title:eue("page.experiments"),icon:{data:$se},sections:[uue]}],cue=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=e.onValueUpdate,l=tv(i,s),c=(0,ne.Z)(l,2),d=c[0],h=c[1],f=function(e){h(e),null===u||void 0===u||u()};return(0,Nl.jsx)(Bse.Item,{title:r,highlightedTitle:r,renderTitleComponent:function(e){return o?(0,Nl.jsx)(TF,{className:due("item-with-popup"),contentClassName:due("popup"),text:e,popoverContent:o}):e},children:function(e){switch(e){case"switch":return(0,Nl.jsx)(J6,{checked:Boolean(d),onUpdate:f});case"radio":return a?(0,Nl.jsx)(Dy,{value:String(d),onUpdate:f,children:a.map((function(e){var t=e.value,n=e.content;return(0,Nl.jsx)(Dy.Option,{value:t,children:n},t)}))}):null;default:return null}}(n)})},due=(0,ht.Z)("ydb-user-settings"),hue=function(e){var t=e.settings,n=void 0===t?lue:t;return(0,Nl.jsx)(Bse,{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,Nl.jsx)(Bse.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,Nl.jsx)(Bse.Section,{title:n,children:r.map((function(e){return(0,Nl.jsx)(cue,Rt({},e),e.settingKey)}))},t)}))},t)}))})},fue=JSON.parse('{"pages.query":"Query","pages.diagnostics":"Diagnostics","navigation-item.documentation":"Documentation","navigation-item.settings":"Settings","navigation-item.account":"Account","account.user":"YDB User","account.login":"Login","account.logout":"Logout"}'),pue=JSON.parse('{"pages.query":"\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432","pages.diagnostics":"\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430","navigation-item.documentation":"\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f","navigation-item.settings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","navigation-item.account":"\u0410\u043a\u043a\u0430\u0443\u043d\u0442","account.user":"\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c YDB","account.login":"\u0412\u043e\u0439\u0442\u0438","account.logout":"\u0412\u044b\u0439\u0442\u0438"}'),gue="ydb-aside-navigation";Va.registerKeyset(Fa.En,gue,fue),Va.registerKeyset(Fa.Ru,gue,pue);var vue,mue=Va.keyset(gue),_ue=(0,ht.Z)("kv-navigation");function yue(e){var t=e.ydbUser,n=e.logout,i=lt();return(0,Nl.jsxs)("div",{className:_ue("internal-user"),children:[(0,Nl.jsxs)("div",{className:_ue("user-info-wrapper"),children:[(0,Nl.jsx)("div",{className:_ue("ydb-internal-user-title"),children:mue("account.user")}),t&&(0,Nl.jsx)("div",{className:_ue("username"),children:t})]}),t?(0,Nl.jsx)(_o.z,{view:"flat-secondary",title:mue("account.logout"),onClick:n,children:(0,Nl.jsx)(yo.J,{data:tse,size:16})}):(0,Nl.jsx)(_o.z,{view:"flat-secondary",title:mue("account.login"),onClick:function(){i.push(_g(bg.auth,void 0,{returnUrl:encodeURIComponent(location.href)}))},children:(0,Nl.jsx)(yo.J,{data:rse,size:16})})]})}function bue(t){var n,i=t.isCompact,r=t.popupAnchor,o=t.ydbUser,a=(0,e.useState)(!1),s=(0,ne.Z)(a,2),u=s[0],l=s[1],c=null!==o&&void 0!==o&&o.login?cse:sse;return(0,Nl.jsx)(qre,{compact:i,item:{id:"user-popup",title:null!==(n=null===o||void 0===o?void 0:o.login)&&void 0!==n?n:mue("navigation-item.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,Nl.jsx)("div",{className:_ue("ydb-user-wrapper"),children:(0,Nl.jsx)(yue,{ydbUser:o.login,logout:o.logout})})}})}!function(e){e.UserSettings="UserSettings"}(vue||(vue={}));var wue=function(){var t=ct(),n=lt(),i=tv(Ki),r=(0,ne.Z)(i,2),o=r[0],a=r[1],s=ev((function(e){return e.tenant})).tenantPage,u=void 0===s?o:s,l=t.pathname,c=vg(t),d=l==="/".concat(pg);return e.useMemo((function(){return d?[{id:An.query,title:mue("pages.query"),icon:Gae,iconSize:20,location:Mb(Rt(Rt({},c),{},(0,wt.Z)({},On,An.query)))},{id:An.diagnostics,title:mue("pages.diagnostics"),icon:Xae,iconSize:20,location:Mb(Rt(Rt({},c),{},(0,wt.Z)({},On,An.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 Cue=function(t){var n=lt(),i=K(),r=(0,e.useState)(),o=(0,ne.Z)(r,2),a=o[0],s=o[1],u=ev((function(e){return e.authentication})).user,l=tv(Oi),c=(0,ne.Z)(l,2),d=c[0],h=c[1],f=wue(),p=function(){i(ea())};return(0,Nl.jsx)(e.Fragment,{children:(0,Nl.jsx)(Uae,{logo:{text:"YDB",icon:are,onClick:function(){return n.push("/")}},menuItems:f,compact:d,onChangeCompact:h,className:_ue(),renderContent:function(){return t.children},renderFooter:function(t){var n=t.compact,i=t.asideRef;return(0,Nl.jsxs)(e.Fragment,{children:[(0,Nl.jsx)(qre,{compact:n,item:{id:"documentation",title:mue("navigation-item.documentation"),icon:gse,iconSize:24,onItemClick:function(){window.open("https://ydb.tech/docs","_blank","noreferrer")}}}),(0,Nl.jsx)(qre,{item:{id:"user-settings",title:mue("navigation-item.settings"),icon:fse,iconSize:24,current:a===vue.UserSettings,onItemClick:function(){s(a===vue.UserSettings?void 0:vue.UserSettings)}},compact:n}),(0,Nl.jsx)(bue,{isCompact:n,popupAnchor:i,ydbUser:{login:u,logout:p}})]})},panelItems:[{id:"user-settings",visible:a===vue.UserSettings,content:(0,Nl.jsx)(hue,{})}],onClosePanel:function(){s(void 0)}})})},kue=(0,e.createContext)(null),Sue={didCatch:!1,error:null},xue=function(t){(0,ee.Z)(i,t);var n=(0,te.Z)(i);function i(e){var t;return(0,X.Z)(this,i),(t=n.call(this,e)).resetErrorBoundary=t.resetErrorBoundary.bind((0,Br.Z)(t)),t.state=Sue,t}return(0,J.Z)(i,[{key:"resetErrorBoundary",value:function(){if(null!==this.state.error){for(var e,t,n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];null===(e=(t=this.props).onReset)||void 0===e||e.call(t,{args:i,reason:"imperative-api"}),this.setState(Sue)}}},{key:"componentDidCatch",value:function(e,t){var n,i;null===(n=(i=this.props).onError)||void 0===n||n.call(i,e,t)}},{key:"componentDidUpdate",value:function(e,t){var n,i,r=this.state.didCatch,o=this.props.resetKeys;r&&null!==t.error&&function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.length!==t.length||e.some((function(e,n){return!Object.is(e,t[n])}))}(e.resetKeys,o)&&(null===(n=(i=this.props).onReset)||void 0===n||n.call(i,{next:o,prev:e.resetKeys,reason:"keys"}),this.setState(Sue))}},{key:"render",value:function(){var t=this.props,n=t.children,i=t.fallbackRender,r=t.FallbackComponent,o=t.fallback,a=this.state,s=a.didCatch,u=a.error,l=n;if(s){var c={error:u,resetErrorBoundary:this.resetErrorBoundary};if("function"===typeof i)l=i(c);else if(r)l=(0,e.createElement)(r,c);else{if(null!==o&&!(0,e.isValidElement)(o))throw u;l=o}}return(0,e.createElement)(kue.Provider,{value:{didCatch:s,error:u,resetErrorBoundary:this.resetErrorBoundary}},l)}}],[{key:"getDerivedStateFromError",value:function(e){return{didCatch:!0,error:e}}}]),i}(e.Component);var Lue=n(74601),Eue=e.createContext(void 0),Due=e.createContext(void 0);function Nue(t){var n=t.size,i=t.disabled,r=t.defaultExpanded,o=t.arrowPosition,a=t.summary,s=t.keepMounted,u=t.onUpdate,l=t.expanded,c=e.useState((function(){return Boolean(r)})),d=(0,ne.Z)(c,2),h=d[0],f=d[1],p=void 0!==l,g=W_(),v="disclosure".concat(g);return e.createElement(Eue.Provider,{value:{size:n,disabled:i,summary:a,arrowPosition:o,keepMounted:s,expanded:p?l:h,ariaControls:g,ariaLabelledby:v}},e.createElement(Due.Provider,{value:function(){f((function(e){return!e})),u(p?!l:!h)}},t.children))}function Mue(){var t=e.useContext(Eue);if(void 0===t)throw new Error("useDisclosureAttributes must be used within DisclosureProvider");return t}var Tue=(0,ft.B_)("disclosure");function Iue(t){var n=t.children,i=e.useRef(null),r=Mue(),o=r.ariaControls,a=r.ariaLabelledby,s=r.keepMounted,u=r.expanded;return e.createElement(uo,{nodeRef:i,in:u,addEndListener:function(e){var t;return null===(t=i.current)||void 0===t?void 0:t.addEventListener("animationend",e)},classNames:lo(Tue),mountOnEnter:!s,unmountOnExit:!s,appear:!0},e.createElement("div",{ref:i,id:o,role:"region","aria-labelledby":a,className:Tue("content",{visible:u})},n))}Iue.displayName="DisclosureDetails";var Oue={m:14,l:16,xl:20};function Aue(t){var n=t.children,i=function(){var t=e.useContext(Due);if(void 0===t)throw new Error("useToggleDisclosure must be used within DisclosureProvider");return t}(),r=Mue();return n({onClick:i,ariaControls:r.ariaControls,id:r.ariaLabelledby,expanded:r.expanded,disabled:r.disabled})}function Rue(t){var n=t.onClick,i=t.ariaControls,r=t.id,o=t.expanded,a=t.disabled,s=Mue(),u=s.size,l=s.summary,c=s.arrowPosition;return e.createElement("button",{type:"button","aria-expanded":o,className:Tue("trigger",{disabled:a,"arrow-right":"right"===c}),"aria-controls":i,id:r,onClick:n,disabled:a},e.createElement(hF,{size:Oue[u],direction:o?"top":"bottom"}),l)}Aue.displayName="DisclosureSummary";var Pue=(0,Lue.s)(Aue),Zue=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.defaultExpanded,u=void 0!==s&&s,l=t.arrowPosition,c=void 0===l?"left":l,d=t.summary,h=void 0===d?"":d,f=t.className,p=t.keepMounted,g=void 0===p||p,v=t.children,m=t.onUpdate,_=void 0===m?function(){}:m,y=t.expanded,b=t.qa,w=function(t){var n,i,r,o=e.Children.toArray(t),a=[],s=(0,Na.Z)(o);try{for(s.s();!(r=s.n()).done;){var u=r.value;if(Pue(u)){if(n)throw new Error("Only one <Disclosure.Summary> component is allowed");n=u}else a.push(u)}}catch(l){s.e(l)}finally{s.f()}a.length>0&&(i=e.createElement(Iue,null,a));n||(n=e.createElement(Aue,null,(function(t){return e.createElement(Rue,Object.assign({},t))})));return[n,i]}(v),C=(0,ne.Z)(w,2),k=C[0],S=C[1];return e.createElement(Nue,{disabled:a,defaultExpanded:u,expanded:y,keepMounted:g,size:r,summary:h,arrowPosition:c,onUpdate:_},e.createElement("section",{ref:n,className:Tue({size:r},f),"data-qa":b},k,S))}));Zue.Summary=Aue,Zue.displayName="Disclosure";var Fue=JSON.parse('{"error-title":"Something went wrong","error-description":"We have something broken, but don\'t worry, it won\'t last long","show-details":"Show details","report-problem":"Report a problem","button-reset":"Try again"}'),jue=JSON.parse('{"error-title":"\u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a","error-description":"\u0423 \u043d\u0430\u0441 \u0447\u0442\u043e-\u0442\u043e \u0441\u043b\u043e\u043c\u0430\u043b\u043e\u0441\u044c, \u043d\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0439\u0442\u0435, \u044d\u0442\u043e \u043d\u0435\u043d\u0430\u0434\u043e\u043b\u0433\u043e","show-details":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0438","report-problem":"\u0421\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435","button-reset":"\u041f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043d\u043e\u0432\u0430"}'),Hue="ydb-error-boundary";Va.registerKeyset(Fa.En,Hue,Fue),Va.registerKeyset(Fa.Ru,Hue,jue);var Bue=Va.keyset(Hue),zue=(0,ht.Z)("ydb-error-boundary"),Wue=function(e){var t=e.children,n=e.useRetry,i=void 0===n||n,r=e.onReportProblem;return(0,Nl.jsx)(xue,{onError:function(e,t){!function(e,t){var n,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"error";"undefined"!==typeof window&&null!==(n=window.Ya)&&void 0!==n&&n.Rum?window.Ya.Rum.logError({additional:{url:window.location.href},type:i,message:t,level:window.Ya.Rum.ERROR_LEVEL.ERROR},e):console.error(e)}(e,t.componentStack,"error-boundary")},fallbackRender:function(e){var t=e.error,n=e.resetErrorBoundary;return(0,Nl.jsxs)("div",{className:zue(null),children:[(0,Nl.jsx)(Ay,{name:"error",className:zue("illustration")}),(0,Nl.jsxs)("div",{className:zue("content"),children:[(0,Nl.jsx)("h2",{className:zue("error-title"),children:Bue("error-title")}),(0,Nl.jsx)("div",{className:zue("error-description"),children:Bue("error-description")}),(0,Nl.jsx)(Zue,{summary:Bue("show-details"),className:zue("show-details"),size:"m",children:(0,Nl.jsx)("pre",{className:zue("error-details"),children:t.stack})}),(0,Nl.jsxs)("div",{className:zue("actions"),children:[i&&(0,Nl.jsx)(_o.z,{view:"outlined",onClick:n,children:Bue("button-reset")}),r&&(0,Nl.jsx)(_o.z,{view:"outlined",onClick:function(){return r(t)},children:Bue("report-problem")})]})]})]})},children:t})};RH.languages.register({id:N6}),RH.languages.setMonarchTokensProvider(N6,{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 Vue=function(e){(0,ee.Z)(n,e);var t=(0,te.Z)(n);function n(){return(0,X.Z)(this,n),t.apply(this,arguments)}return(0,J.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,Nl.jsx)(Cue,{children:(0,Nl.jsxs)(Wue,{children:[(0,Nl.jsx)(_re,{singleClusterMode:t,clusterName:n}),(0,Nl.jsx)("div",{id:"fullscreen-root"})]})})}},{key:"render",value:function(){return(0,Nl.jsx)(yre,{children:this.renderContentWithNavigation()})}}]),n}(e.Component);var Yue=z((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 oa({request:window.api.whoami(),actions:Qo,dataHandler:function(e){var t=e.UserSID;return"Login"===e.AuthType?t:void 0}})}})(Vue),Uue=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)}))},Kue=fg(),que=Kue.store,Gue=Kue.history;window.store=que,t.render((0,Nl.jsx)(e.StrictMode,{children:(0,Nl.jsx)(Wue,{children:(0,Nl.jsx)(l,{store:que,children:(0,Nl.jsx)(ire.Provider,{value:Gue,children:(0,Nl.jsx)(Yue,{})})})})}),document.getElementById("root")),Uue()}()}(); -//# sourceMappingURL=main.2c02e91d.js.map \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/main.62a60ecb.js b/ydb/core/viewer/monitoring/static/js/main.62a60ecb.js new file mode 100644 index 000000000000..31e7683bbe77 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/main.62a60ecb.js @@ -0,0 +1,2 @@ +/*! For license information please see main.62a60ecb.js.LICENSE.txt */ +(()=>{var e={81003:(e,t,n)=>{"use strict";n.d(t,{B7:()=>s,V2:()=>a,_Y:()=>o,xu:()=>i});var r=n(54665);const i={overview:"overview",tenants:"tenants",nodes:"nodes",storage:"storage",versions:"versions"},o=[{id:i.overview,title:"Overview"},{id:i.tenants,title:"Databases"},{id:i.nodes,title:"Nodes"},{id:i.storage,title:"Storage"},{id:i.versions,title:"Versions"}];function a(e){return Object.values(i).includes(e)}const s=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,r.ax)(r.ZP.cluster,e?{activeTab:e}:void 0,t)}},6523:(e,t,n)=>{"use strict";n.d(t,{$J:()=>k,Jp:()=>y,Sb:()=>T,St:()=>_,TV:()=>h,d:()=>u,dC:()=>g,dw:()=>x,fd:()=>N,lZ:()=>s,uL:()=>O,vp:()=>f,zf:()=>w});var r=n(35638),i=n(9416);const o={[r.mR.EPathSubTypeSyncIndexImplTable]:"index_table",[r.mR.EPathSubTypeAsyncIndexImplTable]:"index_table",[r.mR.EPathSubTypeStreamImpl]:void 0,[r.mR.EPathSubTypeEmpty]:void 0},a={[r.gb.EPathTypeInvalid]:void 0,[r.gb.EPathTypeSubDomain]:"database",[r.gb.EPathTypeExtSubDomain]:"database",[r.gb.EPathTypeDir]:"directory",[r.gb.EPathTypeColumnStore]:"directory",[r.gb.EPathTypeTable]:"table",[r.gb.EPathTypeTableIndex]:"index",[r.gb.EPathTypeColumnTable]:"column_table",[r.gb.EPathTypeCdcStream]:"stream",[r.gb.EPathTypePersQueueGroup]:"topic",[r.gb.EPathTypeExternalDataSource]:"external_data_source",[r.gb.EPathTypeExternalTable]:"external_table",[r.gb.EPathTypeView]:"view",[r.gb.EPathTypeReplication]:"async_replication"},s=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r.gb.EPathTypeDir,t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"directory";return t&&o[t]||a[e]||n},l={[r.mR.EPathSubTypeSyncIndexImplTable]:"Secondary Index Table",[r.mR.EPathSubTypeAsyncIndexImplTable]:"Secondary Index Table",[r.mR.EPathSubTypeStreamImpl]:void 0,[r.mR.EPathSubTypeEmpty]:void 0},c={[r.gb.EPathTypeInvalid]:void 0,[r.gb.EPathTypeSubDomain]:"Database",[r.gb.EPathTypeExtSubDomain]:"Database",[r.gb.EPathTypeDir]:"Directory",[r.gb.EPathTypeTable]:"Table",[r.gb.EPathTypeTableIndex]:"Secondary Index",[r.gb.EPathTypeColumnStore]:"Tablestore",[r.gb.EPathTypeColumnTable]:"Columntable",[r.gb.EPathTypeCdcStream]:"Changefeed",[r.gb.EPathTypePersQueueGroup]:"Topic",[r.gb.EPathTypeExternalDataSource]:"External Data Source",[r.gb.EPathTypeExternalTable]:"External Table",[r.gb.EPathTypeView]:"View",[r.gb.EPathTypeReplication]:"Async Replication"},u=(e,t)=>t&&l[t]||e&&c[e],d={[i.Hi.UnknownTenantType]:"Database",[i.Hi.Domain]:"Cluster Root",[i.Hi.Dedicated]:"Dedicated Database",[i.Hi.Shared]:"Shared Database",[i.Hi.Serverless]:"Serverless Database"},h=e=>e&&d[e],p={[r.gb.EPathTypeTable]:!0,[r.gb.EPathTypeColumnTable]:!0,[r.gb.EPathTypeExternalTable]:!0,[r.gb.EPathTypeView]:!0,[r.gb.EPathTypeInvalid]:!1,[r.gb.EPathTypeDir]:!1,[r.gb.EPathTypeSubDomain]:!1,[r.gb.EPathTypeTableIndex]:!1,[r.gb.EPathTypeExtSubDomain]:!1,[r.gb.EPathTypeColumnStore]:!1,[r.gb.EPathTypeCdcStream]:!1,[r.gb.EPathTypePersQueueGroup]:!1,[r.gb.EPathTypeExternalDataSource]:!1,[r.gb.EPathTypeReplication]:!1},f=e=>{var t;return null!==(t=e&&p[e])&&void 0!==t&&t},m={[r.mR.EPathSubTypeSyncIndexImplTable]:!0,[r.mR.EPathSubTypeAsyncIndexImplTable]:!0,[r.mR.EPathSubTypeStreamImpl]:!1,[r.mR.EPathSubTypeEmpty]:!1},g=e=>{var t;return null!==(t=e&&m[e])&&void 0!==t&&t},v={[r.gb.EPathTypeColumnStore]:!0,[r.gb.EPathTypeColumnTable]:!0,[r.gb.EPathTypeInvalid]:!1,[r.gb.EPathTypeDir]:!1,[r.gb.EPathTypeTable]:!1,[r.gb.EPathTypeSubDomain]:!1,[r.gb.EPathTypeTableIndex]:!1,[r.gb.EPathTypeExtSubDomain]:!1,[r.gb.EPathTypeCdcStream]:!1,[r.gb.EPathTypePersQueueGroup]:!1,[r.gb.EPathTypeExternalDataSource]:!1,[r.gb.EPathTypeExternalTable]:!1,[r.gb.EPathTypeView]:!1,[r.gb.EPathTypeReplication]:!1},y=e=>{var t;return null!==(t=e&&v[e])&&void 0!==t&&t},b={[r.gb.EPathTypeSubDomain]:!0,[r.gb.EPathTypeExtSubDomain]:!0,[r.gb.EPathTypeInvalid]:!1,[r.gb.EPathTypeDir]:!1,[r.gb.EPathTypeColumnStore]:!1,[r.gb.EPathTypeColumnTable]:!1,[r.gb.EPathTypeTable]:!1,[r.gb.EPathTypeTableIndex]:!1,[r.gb.EPathTypeCdcStream]:!1,[r.gb.EPathTypePersQueueGroup]:!1,[r.gb.EPathTypeExternalDataSource]:!1,[r.gb.EPathTypeExternalTable]:!1,[r.gb.EPathTypeView]:!1,[r.gb.EPathTypeReplication]:!1},x=e=>{var t;return null!==(t=e&&b[e])&&void 0!==t&&t},w=e=>e===r.gb.EPathTypeCdcStream,S={[r.gb.EPathTypeCdcStream]:!0,[r.gb.EPathTypePersQueueGroup]:!1,[r.gb.EPathTypeInvalid]:!1,[r.gb.EPathTypeColumnStore]:!1,[r.gb.EPathTypeColumnTable]:!1,[r.gb.EPathTypeDir]:!1,[r.gb.EPathTypeTable]:!1,[r.gb.EPathTypeSubDomain]:!1,[r.gb.EPathTypeTableIndex]:!1,[r.gb.EPathTypeExtSubDomain]:!1,[r.gb.EPathTypeExternalDataSource]:!1,[r.gb.EPathTypeExternalTable]:!1,[r.gb.EPathTypeView]:!1,[r.gb.EPathTypeReplication]:!1},_=e=>{var t;return null!==(t=e&&S[e])&&void 0!==t&&t},C={[r.mR.EPathSubTypeSyncIndexImplTable]:!0,[r.mR.EPathSubTypeAsyncIndexImplTable]:!0,[r.mR.EPathSubTypeStreamImpl]:!1,[r.mR.EPathSubTypeEmpty]:!1},E={[r.gb.EPathTypeCdcStream]:!0,[r.gb.EPathTypePersQueueGroup]:!0,[r.gb.EPathTypeExternalDataSource]:!0,[r.gb.EPathTypeExternalTable]:!0,[r.gb.EPathTypeView]:!0,[r.gb.EPathTypeReplication]:!0,[r.gb.EPathTypeInvalid]:!1,[r.gb.EPathTypeColumnStore]:!1,[r.gb.EPathTypeColumnTable]:!1,[r.gb.EPathTypeDir]:!1,[r.gb.EPathTypeTable]:!1,[r.gb.EPathTypeSubDomain]:!1,[r.gb.EPathTypeTableIndex]:!1,[r.gb.EPathTypeExtSubDomain]:!1},T=(e,t)=>{var n;return null!==(n=t&&C[t]||e&&E[e])&&void 0!==n&&n},O=(r.gb.EPathTypeCdcStream,r.gb.EPathTypePersQueueGroup,r.gb.EPathTypeInvalid,r.gb.EPathTypeColumnStore,r.gb.EPathTypeColumnTable,r.gb.EPathTypeDir,r.gb.EPathTypeTable,r.gb.EPathTypeSubDomain,r.gb.EPathTypeTableIndex,r.gb.EPathTypeExtSubDomain,r.gb.EPathTypeExternalDataSource,r.gb.EPathTypeExternalTable,r.gb.EPathTypeView,r.gb.EPathTypeReplication,e=>e===r.gb.EPathTypeExternalTable),N=e=>e===r.gb.EPathTypeTable,k=e=>e===r.gb.EPathTypeView},36084:(e,t,n)=>{"use strict";n.r(t),n.d(t,{ASIDE_HEADER_COMPACT_KEY:()=>Lo.Ac,AUTOCOMPLETE_ON_ENTER:()=>Lo.XX,AUTO_REFRESH_INTERVAL:()=>Lo.KU,AUTO_RELOAD_INTERVAL:()=>Lo.t_,AppSlots:()=>r,BINARY_DATA_IN_PLAIN_TEXT_DISPLAY:()=>Lo.N1,CLUSTER_DEFAULT_TITLE:()=>Lo.DO,COLORS_PRIORITY:()=>Lo.sl,DATA_QA_TUNE_COLUMNS_POPUP:()=>Lo.KS,DAY_IN_SECONDS:()=>Lo.ii,DEFAULT_CLUSTER_TAB_KEY:()=>Lo.S7,DEFAULT_IS_QUERY_RESULT_COLLAPSED:()=>Lo.eG,DEFAULT_IS_TENANT_COMMON_INFO_COLLAPSED:()=>Lo.Mn,DEFAULT_IS_TENANT_SUMMARY_COLLAPSED:()=>Lo.sO,DEFAULT_POLLING_INTERVAL:()=>Lo.ME,DEFAULT_SIZE_RESULT_PANE_KEY:()=>Lo.XN,DEFAULT_SIZE_TENANT_KEY:()=>Lo.z4,DEFAULT_SIZE_TENANT_SUMMARY_KEY:()=>Lo.wr,DEFAULT_TABLE_SETTINGS:()=>Lo.LE,DEVELOPER_UI_TITLE:()=>Lo.Ah,EMPTY_DATA_PLACEHOLDER:()=>Lo.jX,ENABLE_AUTOCOMPLETE:()=>Lo.y6,ErrorBoundary:()=>Xe,ErrorBoundaryFallback:()=>$e,GIGABYTE:()=>Lo.GS,HOUR_IN_SECONDS:()=>Lo.RQ,INVERTED_DISKS_KEY:()=>Lo.yT,IS_HOTKEYS_HELP_HIDDDEN_KEY:()=>Lo.JZ,KILOBYTE:()=>Lo.h0,LANGUAGE_KEY:()=>Lo.Px,LAST_USED_QUERY_ACTION_KEY:()=>Lo.w7,LOAD_AVERAGE_TIME_INTERVALS:()=>Lo.x5,Lang:()=>We.Uo,MEGABYTE:()=>Lo.nQ,MINUTE_IN_SECONDS:()=>Lo.sU,MS_IN_NANOSECONDS:()=>Lo.yD,MultiClusterApp:()=>aq,PARTITIONS_HIDDEN_COLUMNS_KEY:()=>Lo.ZY,QUERIES_HISTORY_KEY:()=>Lo.if,QUERY_INITIAL_MODE_KEY:()=>Lo.Wm,QUERY_USE_MULTI_SCHEMA_KEY:()=>Lo.Rq,SAVED_QUERIES_KEY:()=>Lo.DG,SingleClusterApp:()=>PW,TABLET_COLORS:()=>Lo.HN,TABLET_SYMBOLS:()=>Lo.tV,TENANT_DEFAULT_TITLE:()=>Lo.FU,TENANT_INITIAL_PAGE_KEY:()=>Lo.pf,TENANT_OVERVIEW_TABLES_LIMIT:()=>Lo.fl,TENANT_OVERVIEW_TABLES_SETTINGS:()=>Lo.E6,TERABYTE:()=>Lo.Bp,THEME_KEY:()=>Lo.bw,USE_BACKEND_PARAMS_FOR_TABLES_KEY:()=>Lo.ET,USE_CLUSTER_BALANCER_AS_BACKEND_KEY:()=>Lo.IG,USE_NODES_ENDPOINT_IN_DIAGNOSTICS_KEY:()=>Lo.UF,YdbEmbeddedAPI:()=>sq.su,YdbWebVersionAPI:()=>sq.Iy,appRoutes:()=>Ta.ZP,cn:()=>Me,componentsRegistry:()=>kW,configureStore:()=>h_.xC,createApi:()=>sq.LC,getMonitoringClusterLink:()=>MW,getMonitoringLink:()=>RW,getTabletLabel:()=>Lo.qV,i18n:()=>We.ag,reportWebVitals:()=>cq.Z,rootReducer:()=>h_.QW,setUserSettings:()=>Ro.m9,settingsManager:()=>Vc.r,toaster:()=>lq.m,useSetting:()=>Mo,useTypedSelector:()=>Do,userSettings:()=>Xa});var r={};n.r(r),n.d(r,{ClusterSlot:()=>qH,ClustersSlot:()=>WH,NodeSlot:()=>YH,PDiskPageSlot:()=>KH,RedirectSlot:()=>eV,RoutesSlot:()=>JH,TabletSlot:()=>XH,TabletsFiltersSlot:()=>$H,TenantSlot:()=>ZH,VDiskPageSlot:()=>QH});var i,o,a=n(68963),s=n(64572),l=n(77808),c=n.n(l),u=n(32733),d=n.n(u),h=n(69612),p=n.n(h),f=(e=>(e.BASE="base",e.BODY="body",e.HEAD="head",e.HTML="html",e.LINK="link",e.META="meta",e.NOSCRIPT="noscript",e.SCRIPT="script",e.STYLE="style",e.TITLE="title",e.FRAGMENT="Symbol(react.fragment)",e))(f||{}),m={rel:["amphtml","canonical","alternate"]},g={type:["application/ld+json"]},v={charset:"",name:["generator","robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},y=Object.values(f),b={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.entries(b).reduce(((e,t)=>{let[n,r]=t;return e[r]=n,e}),{}),w="data-rh",S="defaultTitle",_="defer",C="encodeSpecialCharacters",E="onChangeClientState",T="titleTemplate",O="prioritizeSeoTags",N=(e,t)=>{for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},k=e=>{let t=N(e,"title");const n=N(e,T);if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(()=>t));const r=N(e,S);return t||r||void 0},j=e=>N(e,E)||(()=>{}),I=(e,t)=>t.filter((t=>"undefined"!==typeof t[e])).map((t=>t[e])).reduce(((e,t)=>({...e,...t})),{}),P=(e,t)=>t.filter((e=>"undefined"!==typeof e.base)).map((e=>e.base)).reverse().reduce(((t,n)=>{if(!t.length){const r=Object.keys(n);for(let i=0;i<r.length;i+=1){const o=r[i].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}}return t}),[]),D=(e,t,n)=>{const r={};return n.filter((t=>{return!!Array.isArray(t[e])||("undefined"!==typeof t[e]&&(n="Helmet: ".concat(e,' should be of type "Array". Instead found type "').concat(typeof t[e],'"'),console&&"function"===typeof console.warn&&console.warn(n)),!1);var n})).map((t=>t[e])).reverse().reduce(((e,n)=>{const i={};n.filter((e=>{let n;const o=Object.keys(e);for(let r=0;r<o.length;r+=1){const i=o[r],a=i.toLowerCase();-1===t.indexOf(a)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===a&&"stylesheet"===e[a].toLowerCase()||(n=a),-1===t.indexOf(i)||"innerHTML"!==i&&"cssText"!==i&&"itemprop"!==i||(n=i)}if(!n||!e[n])return!1;const a=e[n].toLowerCase();return r[n]||(r[n]={}),i[n]||(i[n]={}),!r[n][a]&&(i[n][a]=!0,!0)})).reverse().forEach((t=>e.push(t)));const o=Object.keys(i);for(let t=0;t<o.length;t+=1){const e=o[t],n={...r[e],...i[e]};r[e]=n}return e}),[]).reverse()},A=(e,t)=>{if(Array.isArray(e)&&e.length)for(let n=0;n<e.length;n+=1){if(e[n][t])return!0}return!1},R=e=>Array.isArray(e)?e.join(""):e,M=(e,t)=>Array.isArray(e)?e.reduce(((e,n)=>(((e,t)=>{const n=Object.keys(e);for(let r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1})(n,t)?e.priority.push(n):e.default.push(n),e)),{priority:[],default:[]}):{default:e,priority:[]},L=(e,t)=>({...e,[t]:void 0}),F=["noscript","script","style"],z=function(e){return!1===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},B=e=>Object.keys(e).reduce(((t,n)=>{const r="undefined"!==typeof e[n]?"".concat(n,'="').concat(e[n],'"'):"".concat(n);return t?"".concat(t," ").concat(r):r}),""),U=(e,t,n,r)=>{const i=B(n),o=R(t);return i?"<".concat(e," ").concat(w,'="true" ').concat(i,">").concat(z(o,r),"</").concat(e,">"):"<".concat(e," ").concat(w,'="true">').concat(z(o,r),"</").concat(e,">")},H=function(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t.reduce(((t,r)=>{const i=r,o=Object.keys(i).filter((e=>!("innerHTML"===e||"cssText"===e))).reduce(((e,t)=>{const r="undefined"===typeof i[t]?t:"".concat(t,'="').concat(z(i[t],n),'"');return e?"".concat(e," ").concat(r):r}),""),a=i.innerHTML||i.cssText||"",s=-1===F.indexOf(e);return"".concat(t,"<").concat(e," ").concat(w,'="true" ').concat(o).concat(s?"/>":">".concat(a,"</").concat(e,">"))}),"")},V=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce(((t,n)=>(t[b[n]||n]=e[n],t)),t)},G=(e,t,n)=>{const r=V(n,{key:t,[w]:!0});return[a.createElement("title",r,t)]},W=(e,t)=>t.map(((t,n)=>{const r={key:n,[w]:!0};return Object.keys(t).forEach((e=>{const n=b[e]||e;if("innerHTML"===n||"cssText"===n){const e=t.innerHTML||t.cssText;r.dangerouslySetInnerHTML={__html:e}}else r[n]=t[e]})),a.createElement(e,r)})),q=function(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];switch(e){case"title":return{toComponent:()=>G(e,t.title,t.titleAttributes),toString:()=>U(e,t.title,t.titleAttributes,n)};case"bodyAttributes":case"htmlAttributes":return{toComponent:()=>V(t),toString:()=>B(t)};default:return{toComponent:()=>W(e,t),toString:()=>H(e,t,n)}}},Z=e=>{const{baseTag:t,bodyAttributes:n,encode:r=!0,htmlAttributes:i,noscriptTags:o,styleTags:a,title:s="",titleAttributes:l,prioritizeSeoTags:c}=e;let{linkTags:u,metaTags:d,scriptTags:h}=e,p={toComponent:()=>{},toString:()=>""};return c&&({priorityMethods:p,linkTags:u,metaTags:d,scriptTags:h}=(e=>{let{metaTags:t,linkTags:n,scriptTags:r,encode:i}=e;const o=M(t,v),a=M(n,m),s=M(r,g);return{priorityMethods:{toComponent:()=>[...W("meta",o.priority),...W("link",a.priority),...W("script",s.priority)],toString:()=>"".concat(q("meta",o.priority,i)," ").concat(q("link",a.priority,i)," ").concat(q("script",s.priority,i))},metaTags:o.default,linkTags:a.default,scriptTags:s.default}})(e)),{priority:p,base:q("base",t,r),bodyAttributes:q("bodyAttributes",n,r),htmlAttributes:q("htmlAttributes",i,r),link:q("link",u,r),meta:q("meta",d,r),noscript:q("noscript",o,r),script:q("script",h,r),style:q("style",a,r),title:q("title",{title:s,titleAttributes:l},r)}},Y=[],K=!("undefined"===typeof window||!window.document||!window.document.createElement),Q=class{constructor(e,t){(0,s.Z)(this,"instances",[]),(0,s.Z)(this,"canUseDOM",K),(0,s.Z)(this,"context",void 0),(0,s.Z)(this,"value",{setHelmet:e=>{this.context.helmet=e},helmetInstances:{get:()=>this.canUseDOM?Y:this.instances,add:e=>{(this.canUseDOM?Y:this.instances).push(e)},remove:e=>{const t=(this.canUseDOM?Y:this.instances).indexOf(e);(this.canUseDOM?Y:this.instances).splice(t,1)}}}),this.context=e,this.canUseDOM=t||!1,t||(e.helmet=Z({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))}},X=a.createContext({}),$=(i=class e extends a.Component{constructor(t){super(t),(0,s.Z)(this,"helmetData",void 0),this.helmetData=new Q(this.props.context||{},e.canUseDOM)}render(){return a.createElement(X.Provider,{value:this.helmetData.value},this.props.children)}},(0,s.Z)(i,"canUseDOM",K),i),J=(e,t)=>{const n=document.head||document.querySelector("head"),r=n.querySelectorAll("".concat(e,"[").concat(w,"]")),i=[].slice.call(r),o=[];let a;return t&&t.length&&t.forEach((t=>{const n=document.createElement(e);for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))if("innerHTML"===e)n.innerHTML=t.innerHTML;else if("cssText"===e)n.styleSheet?n.styleSheet.cssText=t.cssText:n.appendChild(document.createTextNode(t.cssText));else{const r=e,i="undefined"===typeof t[r]?"":t[r];n.setAttribute(e,i)}n.setAttribute(w,"true"),i.some(((e,t)=>(a=t,n.isEqualNode(e))))?i.splice(a,1):o.push(n)})),i.forEach((e=>{var t;return null===(t=e.parentNode)||void 0===t?void 0:t.removeChild(e)})),o.forEach((e=>n.appendChild(e))),{oldTags:i,newTags:o}},ee=(e,t)=>{const n=document.getElementsByTagName(e)[0];if(!n)return;const r=n.getAttribute(w),i=r?r.split(","):[],o=[...i],a=Object.keys(t);for(const s of a){const e=t[s]||"";n.getAttribute(s)!==e&&n.setAttribute(s,e),-1===i.indexOf(s)&&i.push(s);const r=o.indexOf(s);-1!==r&&o.splice(r,1)}for(let s=o.length-1;s>=0;s-=1)n.removeAttribute(o[s]);i.length===o.length?n.removeAttribute(w):n.getAttribute(w)!==a.join(",")&&n.setAttribute(w,a.join(","))},te=(e,t)=>{const{baseTag:n,bodyAttributes:r,htmlAttributes:i,linkTags:o,metaTags:a,noscriptTags:s,onChangeClientState:l,scriptTags:c,styleTags:u,title:d,titleAttributes:h}=e;ee("body",r),ee("html",i),((e,t)=>{"undefined"!==typeof e&&document.title!==e&&(document.title=R(e)),ee("title",t)})(d,h);const p={baseTag:J("base",n),linkTags:J("link",o),metaTags:J("meta",a),noscriptTags:J("noscript",s),scriptTags:J("script",c),styleTags:J("style",u)},f={},m={};Object.keys(p).forEach((e=>{const{newTags:t,oldTags:n}=p[e];t.length&&(f[e]=t),n.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,f,m)},ne=null,re=e=>{ne&&cancelAnimationFrame(ne),e.defer?ne=requestAnimationFrame((()=>{te(e,(()=>{ne=null}))})):(te(e),ne=null)},ie=class extends a.Component{constructor(){super(...arguments),(0,s.Z)(this,"rendered",!1)}shouldComponentUpdate(e){return!p()(e,this.props)}componentDidUpdate(){this.emitChange()}componentWillUnmount(){const{helmetInstances:e}=this.props.context;e.remove(this),this.emitChange()}emitChange(){const{helmetInstances:e,setHelmet:t}=this.props.context;let n=null;const r=(i=e.get().map((e=>{const t={...e.props};return delete t.context,t})),{baseTag:P(["href"],i),bodyAttributes:I("bodyAttributes",i),defer:N(i,_),encode:N(i,C),htmlAttributes:I("htmlAttributes",i),linkTags:D("link",["rel","href"],i),metaTags:D("meta",["name","charset","http-equiv","property","itemprop"],i),noscriptTags:D("noscript",["innerHTML"],i),onChangeClientState:j(i),scriptTags:D("script",["src","innerHTML"],i),styleTags:D("style",["cssText"],i),title:k(i),titleAttributes:I("titleAttributes",i),prioritizeSeoTags:A(i,O)});var i;$.canUseDOM?re(r):Z&&(n=Z(r)),t(n)}init(){if(this.rendered)return;this.rendered=!0;const{helmetInstances:e}=this.props.context;e.add(this),this.emitChange()}render(){return this.init(),null}},oe=(o=class extends a.Component{shouldComponentUpdate(e){return!c()(L(this.props,"helmetData"),L(e,"helmetData"))}mapNestedChildrenToProps(e,t){if(!t)return null;switch(e.type){case"script":case"noscript":return{innerHTML:t};case"style":return{cssText:t};default:throw new Error("<".concat(e.type," /> elements are self-closing and can not contain children. Refer to our API for more information."))}}flattenArrayTypeChildren(e,t,n,r){return{...t,[e.type]:[...t[e.type]||[],{...n,...this.mapNestedChildrenToProps(e,r)}]}}mapObjectTypeChildren(e,t,n,r){switch(e.type){case"title":return{...t,[e.type]:r,titleAttributes:{...n}};case"body":return{...t,bodyAttributes:{...n}};case"html":return{...t,htmlAttributes:{...n}};default:return{...t,[e.type]:{...n}}}}mapArrayTypeChildrenToProps(e,t){let n={...t};return Object.keys(e).forEach((t=>{n={...n,[t]:e[t]}})),n}warnOnInvalidChildren(e,t){return d()(y.some((t=>e.type===t)),"function"===typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types ".concat(y.join(", ")," are allowed. Helmet does not support rendering <").concat(e.type,"> elements. Refer to our API for more information.")),d()(!t||"string"===typeof t||Array.isArray(t)&&!t.some((e=>"string"!==typeof e)),"Helmet expects a string as a child of <".concat(e.type,">. Did you forget to wrap your children in braces? ( <").concat(e.type,">{``}</").concat(e.type,"> ) Refer to our API for more information.")),!0}mapChildrenToProps(e,t){let n={};return a.Children.forEach(e,(e=>{if(!e||!e.props)return;const{children:r,...i}=e.props,o=Object.keys(i).reduce(((e,t)=>(e[x[t]||t]=i[t],e)),{});let{type:a}=e;switch("symbol"===typeof a?a=a.toString():this.warnOnInvalidChildren(e,r),a){case"Symbol(react.fragment)":t=this.mapChildrenToProps(r,t);break;case"link":case"meta":case"noscript":case"script":case"style":n=this.flattenArrayTypeChildren(e,n,o,r);break;default:t=this.mapObjectTypeChildren(e,t,o,r)}})),this.mapArrayTypeChildrenToProps(n,t)}render(){const{children:e,...t}=this.props;let n={...t},{helmetData:r}=t;if(e&&(n=this.mapChildrenToProps(e,n)),r&&!(r instanceof Q)){r=new Q(r.context,!0),delete n.helmetData}return r?a.createElement(ie,{...n,context:r.value}):a.createElement(X.Consumer,null,(e=>a.createElement(ie,{...n,context:e})))}},(0,s.Z)(o,"defaultProps",{defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1}),o),ae=n(87555),se=n(70292),le=n(36951),ce=n(99742);const ue="function"===typeof a.useId?function(){return"".concat(le.A7).concat(a.useId())}:function(){const e=a.useRef();return void 0===e.current&&(e.current=(0,ce.x)()),e.current},de=a.createContext(void 0),he=a.createContext(void 0);function pe(e){const{size:t,disabled:n,defaultExpanded:r,arrowPosition:i,summary:o,keepMounted:s,onUpdate:l,expanded:c}=e,[u,d]=a.useState((()=>Boolean(r))),h=void 0!==c,p=ue(),f="disclosure".concat(p);return a.createElement(de.Provider,{value:{size:t,disabled:n,summary:o,arrowPosition:i,keepMounted:s,expanded:h?c:u,ariaControls:p,ariaLabelledby:f}},a.createElement(he.Provider,{value:()=>{d((e=>!e));l(h?!c:!u)}},e.children))}function fe(){const e=a.useContext(de);if(void 0===e)throw new Error("useDisclosureAttributes must be used within DisclosureProvider");return e}var me=n(62685),ge=n(31445);const ve=(0,le.Ge)("disclosure"),ye={SUMMARY:"disclosure-summary",DETAILS:"disclosure-details"};function be(e){let{children:t}=e;const n=a.useRef(null),{ariaControls:r,ariaLabelledby:i,keepMounted:o,expanded:s}=fe();return a.createElement(me.Z,{nodeRef:n,in:s,addEndListener:e=>{var t;return null===(t=n.current)||void 0===t?void 0:t.addEventListener("animationend",e)},classNames:(0,ge.Y)(ve),mountOnEnter:!o,unmountOnExit:!o,appear:!0},a.createElement("div",{ref:n,id:r,role:"region","aria-labelledby":i,className:ve("content",{visible:s}),"data-qa":ye.DETAILS},t))}be.displayName="DisclosureDetails";const xe=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M2.97 5.47a.75.75 0 0 1 1.06 0L8 9.44l3.97-3.97a.75.75 0 1 1 1.06 1.06l-4.5 4.5a.75.75 0 0 1-1.06 0l-4.5-4.5a.75.75 0 0 1 0-1.06Z",clipRule:"evenodd"}));var we=n(88776);const Se=(0,le.Ge)("arrow-toggle");function _e(e){let{size:t=16,direction:n="bottom",className:r,qa:i}=e;return a.createElement("span",{style:{width:t,height:t},className:Se({direction:n},r),"data-qa":i},a.createElement(we.J,{data:xe,size:t}))}var Ce=n(12913);const Ee={m:14,l:16,xl:20};function Te(){(0,Ce.O)('[Disclosure] Physical values (left, right) of "arrowPosition" property are deprecated. Use logical values (start, end) instead.')}function Oe(e){let{children:t}=e;const n=function(){const e=a.useContext(he);if(void 0===e)throw new Error("useToggleDisclosure must be used within DisclosureProvider");return e}(),{ariaControls:r,ariaLabelledby:i,expanded:o,disabled:s}=fe(),l={onClick:n,ariaControls:r,id:i,expanded:o,disabled:s};return t(l,a.createElement(Ne,Object.assign({},l)))}function Ne(e){let{onClick:t,ariaControls:n,id:r,expanded:i,disabled:o}=e;const{size:s,summary:l,arrowPosition:c}=fe();let u=c;return"left"===u&&(Te(),u="start"),"right"===u&&(Te(),u="end"),a.createElement("button",{type:"button","aria-expanded":i,className:ve("trigger",{disabled:o,arrow:u}),"aria-controls":n,id:r,onClick:t,disabled:o,"data-qa":ye.SUMMARY},a.createElement(_e,{size:Ee[s],direction:i?"top":"bottom"}),l)}Oe.displayName="DisclosureSummary";const ke=(0,se.s)(Oe),je=a.forwardRef((function(e,t){const{size:n="m",disabled:r=!1,defaultExpanded:i=!1,arrowPosition:o="start",summary:s="",className:l,keepMounted:c=!0,children:u,onUpdate:d=(()=>{}),expanded:h,qa:p}=e,[f,m]=function(e){const t=a.Children.toArray(e);let n,r;const i=[];for(const o of t){if(ke(o)){if(n)throw new Error("Only one <Disclosure.Summary> component is allowed");n=o}else i.push(o)}i.length>0&&(r=a.createElement(be,null,i));n||(n=a.createElement(Oe,null,(e=>a.createElement(Ne,Object.assign({},e)))));return[n,r]}(u);return a.createElement(pe,{disabled:r,defaultExpanded:i,expanded:h,keepMounted:c,size:n,summary:s,arrowPosition:o,onUpdate:d},a.createElement("section",{ref:t,className:ve({size:n},l),"data-qa":p},f,m))}));je.Summary=Oe,je.displayName="Disclosure";var Ie=n(17176);const Pe=(0,a.createContext)(null),De={didCatch:!1,error:null};class Ae extends a.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=De}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){const{error:e}=this.state;if(null!==e){for(var t,n,r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];null===(t=(n=this.props).onReset)||void 0===t||t.call(n,{args:i,reason:"imperative-api"}),this.setState(De)}}componentDidCatch(e,t){var n,r;null===(n=(r=this.props).onError)||void 0===n||n.call(r,e,t)}componentDidUpdate(e,t){const{didCatch:n}=this.state,{resetKeys:r}=this.props;var i,o;n&&null!==t.error&&function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e.length!==t.length||e.some(((e,n)=>!Object.is(e,t[n])))}(e.resetKeys,r)&&(null===(i=(o=this.props).onReset)||void 0===i||i.call(o,{next:r,prev:e.resetKeys,reason:"keys"}),this.setState(De))}render(){const{children:e,fallbackRender:t,FallbackComponent:n,fallback:r}=this.props,{didCatch:i,error:o}=this.state;let s=e;if(i){const e={error:o,resetErrorBoundary:this.resetErrorBoundary};if("function"===typeof t)s=t(e);else if(n)s=(0,a.createElement)(n,e);else{if(null!==r&&!(0,a.isValidElement)(r))throw o;s=r}}return(0,a.createElement)(Pe.Provider,{value:{didCatch:i,error:o,resetErrorBoundary:this.resetErrorBoundary}},s)}}var Re=n(5247);const Me=(0,Re.withNaming)({e:"__",m:"_"});var Le=n(75859);const Fe=a.createContext(void 0);function ze(e){let{children:t,registry:n}=e;return(0,Le.jsx)(Fe.Provider,{value:n,children:t})}function Be(e){const t=a.useContext(Fe);if(void 0===t)throw new Error("useComponent must be used within ComponentsProvider");return t.get(e)}var Ue=n(64270);const He={light:{403:()=>n.e(3457).then(n.bind(n,73457)),thumbsUp:()=>n.e(6876).then(n.bind(n,36876)),error:()=>n.e(2435).then(n.bind(n,32435))},dark:{403:()=>n.e(7409).then(n.bind(n,77409)),thumbsUp:()=>n.e(8622).then(n.bind(n,28622)),error:()=>n.e(598).then(n.bind(n,40598))}},Ve=Me("kv-illustration"),Ge=e=>{let{name:t,className:n,...r}=e;const i=(0,Ue.C)(),[o,s]=a.useState(""),l=He[i]&&He[i][t];return a.useEffect((()=>{"function"===typeof l&&l().then((e=>s(e.default))).catch((e=>{console.error(e),s("")}))}),[l]),o?(0,Le.jsx)("img",{alt:t,src:o,className:Ve(null,n),...r}):null};var We=n(30817);const qe=JSON.parse('{"error-title":"Something went wrong","error-description":"We have something broken, but don\'t worry, it won\'t last long","show-details":"Show details","report-problem":"Report a problem","button-reset":"Try again"}'),Ze=JSON.parse('{"error-title":"\u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a","error-description":"\u0423 \u043d\u0430\u0441 \u0447\u0442\u043e-\u0442\u043e \u0441\u043b\u043e\u043c\u0430\u043b\u043e\u0441\u044c, \u043d\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0439\u0442\u0435, \u044d\u0442\u043e \u043d\u0435\u043d\u0430\u0434\u043e\u043b\u0433\u043e","show-details":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0438","report-problem":"\u0421\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435","button-reset":"\u041f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043d\u043e\u0432\u0430"}'),Ye=(0,We.wZ)("ydb-error-boundary",{ru:Ze,en:qe}),Ke=Me("ydb-error-boundary");function Qe(e){let{children:t}=e;const n=Be("ErrorBoundary");return(0,Le.jsx)(n,{children:t})}function Xe(e){let{children:t,useRetry:n=!0,onReportProblem:r}=e;return(0,Le.jsx)(Ae,{onError:(e,t)=>{var n;!function(e,t){var n;let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"error";"undefined"!==typeof window&&null!==(n=window.Ya)&&void 0!==n&&n.Rum?window.Ya.Rum.logError({additional:{url:window.location.href},type:r,message:t,level:window.Ya.Rum.ERROR_LEVEL.ERROR},e):console.error(e)}(e,null!==(n=t.componentStack)&&void 0!==n?n:void 0,"error-boundary")},fallbackRender:e=>{let{error:t,resetErrorBoundary:i}=e;return(0,Le.jsx)($e,{error:t,useRetry:n,resetErrorBoundary:i,onReportProblem:r})},children:t})}function $e(e){let{error:t,resetErrorBoundary:n,useRetry:r,onReportProblem:i}=e;return(0,Le.jsxs)("div",{className:Ke(),children:[(0,Le.jsx)(Ge,{name:"error",className:Ke("illustration")}),(0,Le.jsxs)("div",{className:Ke("content"),children:[(0,Le.jsx)("h2",{className:Ke("error-title"),children:Ye("error-title")}),(0,Le.jsx)("div",{className:Ke("error-description"),children:Ye("error-description")}),(0,Le.jsx)(je,{summary:Ye("show-details"),className:Ke("show-details"),size:"m",children:(0,Le.jsx)("pre",{className:Ke("error-details"),children:t.stack})}),(0,Le.jsxs)("div",{className:Ke("actions"),children:[r&&(0,Le.jsx)(Ie.z,{view:"outlined",onClick:n,children:Ye("button-reset")}),i&&(0,Le.jsx)(Ie.z,{view:"outlined",onClick:()=>i(t),children:Ye("report-problem")})]})]})]})}function Je(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}"function"===typeof SuppressedError&&SuppressedError;const et=a.createContext({activeTabId:void 0});et.displayName="TabsContext";var tt=n(77280),nt=n(95097);const rt=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M9.5 12c0 .414-.168.79-.44 1.06A1.49 1.49 0 0 1 8 13.5H4a1.49 1.49 0 0 1-1.06-.44A1.496 1.496 0 0 1 2.5 12V8c0-.414.168-.79.44-1.06A1.49 1.49 0 0 1 4 6.5h4c.414 0 .79.168 1.06.44.272.27.44.646.44 1.06v4Zm-1.47-1.03s.001 0 0 0L7.06 10l.97-.97a.75.75 0 0 0-1.06-1.06L6 8.94l-.97-.97a.75.75 0 0 0-1.06 1.06l.97.97-.97.97a.75.75 0 0 0 1.06 1.06c0 .001 0 0 0 0l.97-.97.97.97a.75.75 0 0 0 1.06-1.06ZM6.5 5H8a3 3 0 0 1 3 3v1.5h1A1.498 1.498 0 0 0 13.5 8V4A1.5 1.5 0 0 0 12 2.5H8A1.5 1.5 0 0 0 6.5 4v1ZM5 4a3 3 0 0 1 3-3h4a3 3 0 0 1 3 3v4a3 3 0 0 1-3 3h-1v1a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V8a3 3 0 0 1 3-3h1V4Z",clipRule:"evenodd"})),it=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("g",{fill:"currentColor"},a.createElement("path",{d:"m8 9.076.085-.107a.751.751 0 1 0-1.171-.937L5.438 9.877 5.03 9.47a.747.747 0 0 0-1.06 0 .75.75 0 0 0 0 1.06l.407.408.593.592a.75.75 0 0 0 1.116-.061l.522-.654h.001L8 9.074Z"}),a.createElement("path",{fillRule:"evenodd",d:"M12 11a3 3 0 0 0 3-3V4a3 3 0 0 0-3-3H8a3 3 0 0 0-3 3v1H4a3 3 0 0 0-3 3v4a3 3 0 0 0 3 3h4a3 3 0 0 0 3-3v-1h1ZM4 6.5A1.5 1.5 0 0 0 2.5 8v4A1.5 1.5 0 0 0 4 13.5h4A1.5 1.5 0 0 0 9.5 12V8A1.498 1.498 0 0 0 8 6.5H4ZM13.5 4A1.5 1.5 0 0 0 12 2.5H8A1.5 1.5 0 0 0 6.5 4v1H8a3 3 0 0 1 3 3v1.5h1A1.498 1.498 0 0 0 13.5 8V4Z",clipRule:"evenodd"}))),ot=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M12 2.5H8A1.5 1.5 0 0 0 6.5 4v1H8a3 3 0 0 1 3 3v1.5h1A1.5 1.5 0 0 0 13.5 8V4A1.5 1.5 0 0 0 12 2.5ZM11 11h1a3 3 0 0 0 3-3V4a3 3 0 0 0-3-3H8a3 3 0 0 0-3 3v1H4a3 3 0 0 0-3 3v4a3 3 0 0 0 3 3h4a3 3 0 0 0 3-3v-1ZM4 6.5h4A1.5 1.5 0 0 1 9.5 8v4A1.5 1.5 0 0 1 8 13.5H4A1.5 1.5 0 0 1 2.5 12V8A1.5 1.5 0 0 1 4 6.5Z",clipRule:"evenodd"}));function at(e){var{status:t}=e,n=(0,nt._T)(e,["status"]);return"error"===t?a.createElement(we.J,Object.assign({data:rt},n)):"success"===t?a.createElement(we.J,Object.assign({data:it},n)):a.createElement(we.J,Object.assign({data:ot},n))}var st=n(15942),lt=n.n(st);const ct="pending";function ut(e){const{children:t,text:n,options:r,timeout:i,onCopy:o}=e,[s,l]=a.useState(ct),c=a.useRef(),u=a.useMemo((()=>t(s)),[t,s]),d=a.useCallback(((e,t)=>{l(t?"success":"error"),window.clearTimeout(c.current),c.current=window.setTimeout((()=>l(ct)),i),null===o||void 0===o||o(e,t)}),[o,i]);if(a.useEffect((()=>()=>window.clearTimeout(c.current)),[]),!a.isValidElement(u))throw new Error("Content must be a valid react element");return a.createElement(lt(),{text:n,onCopy:d,options:r},u)}const dt=(0,le.Ge)("label"),ht={xs:{copyIconSize:12,closeIconSize:12,buttonSize:"xs"},s:{copyIconSize:14,closeIconSize:14,buttonSize:"s"},m:{copyIconSize:16,closeIconSize:16,buttonSize:"m"}},pt={pin:"brick-round",className:dt("addon",{side:"right",interactive:!0})},ft=a.forwardRef((function(e,t){const{type:n="default",theme:r="normal",size:i="xs",icon:o,children:s,onCloseClick:l,className:c,disabled:u,copyText:d,closeButtonLabel:h,copyButtonLabel:p,interactive:f=!1,value:m,onCopy:g,onClick:v,qa:y}=e,b=Boolean(""!==s&&a.Children.count(s)>0),x="close"===n&&b,w="copy"===n&&b,S="function"===typeof v,_=Boolean(w&&d),C=(S||_||f)&&!u,{copyIconSize:E,closeIconSize:T,buttonSize:O}=ht[i],N=o&&a.createElement("div",{className:dt("addon",{side:b?"left":void 0})},o),k=b&&a.createElement("div",{className:dt("text")},a.createElement("div",{className:dt("content")},s),Boolean(m)&&a.createElement("div",{className:dt("value")},a.createElement("div",{className:dt("separator")},":"),a.createElement("div",{className:dt("key")},m))),j=e=>{let o;return w?o=a.createElement(Ie.z,Object.assign({size:O,extraProps:{"aria-label":p||void 0},onClick:S?v:void 0,disabled:u},pt),a.createElement(Ie.z.Icon,null,a.createElement(at,{status:e||"pending",size:E}))):x&&(o=a.createElement(Ie.z,Object.assign({onClick:l,size:O,extraProps:{"aria-label":h||void 0},disabled:u},pt),a.createElement(we.J,{size:T,data:tt.Z}))),a.createElement("div",{ref:t,className:dt({theme:r,size:i,type:n,"is-interactive":C,"has-right-addon":Boolean(o),"has-left-addon":Boolean(N),disabled:u},c),"data-qa":y},N,S?a.createElement("button",{disabled:u,type:"button",onClick:v,className:dt("action-button")},k):k,o)};return _&&d&&!S?a.createElement(ut,{text:d,onCopy:g,timeout:1e3},(e=>j(e))):j()})),mt=(0,le.Ge)("tabs");function gt(e){let{id:t,className:n,title:r,meta:i,hint:o,icon:s,counter:l,label:c,active:u,disabled:d,hasOverflow:h,extraProps:p,onClick:f}=e;const{activeTabId:m}=a.useContext(et),g="boolean"===typeof u?u:m===t,v=a.useMemo((()=>void 0!==o?o:"string"===typeof r?r:void 0),[o,r]);return a.createElement("div",Object.assign({},p,{role:"tab","aria-selected":g,"aria-disabled":!0===d,tabIndex:d?-1:0,className:mt("item",{active:g,disabled:d,overflow:Boolean(h)},n),title:v,onClick:()=>{f(t)},onKeyDown:e=>{" "===e.key&&f(t)}}),a.createElement("div",{className:mt("item-content")},s&&a.createElement("div",{className:mt("item-icon")},s),a.createElement("div",{className:mt("item-title")},r||t),"number"===typeof l&&a.createElement("div",{className:mt("item-counter")},l),c&&a.createElement(ft,{className:mt("item-label"),theme:c.theme},c.content)),i&&a.createElement("div",{className:mt("item-meta")},i))}gt.displayName="Tabs.Item";const vt=(0,le.Ge)("tabs");var yt;!function(e){e.Horizontal="horizontal",e.Vertical="vertical"}(yt||(yt={}));const bt=[],xt=a.forwardRef(((e,t)=>{let{direction:n=yt.Horizontal,size:r="m",activeTab:i,allowNotSelected:o=!1,items:s=bt,children:l,className:c,onSelectTab:u,wrapTo:d,qa:h}=e;const p=((e,t,n)=>{var r;return e||(t||0===(null===n||void 0===n?void 0:n.length)||null===(r=null===n||void 0===n?void 0:n[0])||void 0===r?void 0:r.id)})(i,o,s),f=a.useMemo((()=>({activeTabId:p})),[p]),m=a.useMemo((()=>{const e=e=>{u&&u(e)};return s.map(((t,n)=>{const r=a.createElement(gt,Object.assign({key:t.id},t,{onClick:e}));return d?d(t,r,n):r}))}),[s,u,d]);return a.createElement("div",{role:"tablist",className:vt({direction:n,size:r},c),"data-qa":h,ref:t},a.createElement(et.Provider,{value:f},l||m))}));xt.displayName="Tabs";const wt=Object.assign(xt,{Item:gt});var St=n(93316);function _t(e,t,n){const[r,i]=a.useState(null!==e&&void 0!==e?e:t),o=a.useRef(void 0!==e),s=void 0!==e;a.useEffect((()=>{const e=o.current;e!==s&&console.error("[useControlledState] A component changed from ".concat(e?"controlled":"uncontrolled"," to ").concat(s?"controlled":"uncontrolled",".")),o.current=s}),[s]);let l=s?e:r;const c=a.useCallback((function(e){if(!Object.is(l,e)){for(var t=arguments.length,r=new Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];null===n||void 0===n||n(e,...r)}s||(l=e,i(e))}),[s,n,l]);return[l,c]}function Ct(e,t){"function"===typeof e?e(t):e&&(e.current=t)}function Et(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return a.useMemo((()=>t.every((e=>null===e||void 0===e))?null:e=>{for(const n of t)Ct(n,e)}),t)}var Tt=n(54466),Ot=n.n(Tt),Nt=n(43832),kt=n.n(Nt);const jt=16,It=2;function Pt(e,t){const[n,r]=a.useState({width:0,height:0});return a.useLayoutEffect((()=>{if(!(null===e||void 0===e?void 0:e.current))return;const t=new ResizeObserver(kt()((e=>{if(!Array.isArray(e))return;const t=e[0];if(t.borderBoxSize){const e=t.borderBoxSize[0]?t.borderBoxSize[0]:t.borderBoxSize;r({width:Ot()(e.inlineSize,It),height:Ot()(e.blockSize,It)})}else{const e=t.target;r({width:Ot()(e.offsetWidth,It),height:Ot()(e.offsetHeight,It)})}}),jt));return t.observe(e.current),()=>{t.disconnect()}}),[e,t]),n}var Dt=n(38886);function At(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Rt(e){return e instanceof At(e).Element||e instanceof Element}function Mt(e){return e instanceof At(e).HTMLElement||e instanceof HTMLElement}function Lt(e){return"undefined"!==typeof ShadowRoot&&(e instanceof At(e).ShadowRoot||e instanceof ShadowRoot)}var Ft=Math.max,zt=Math.min,Bt=Math.round;function Ut(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function Ht(){return!/^((?!chrome|android).)*safari/i.test(Ut())}function Vt(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var r=e.getBoundingClientRect(),i=1,o=1;t&&Mt(e)&&(i=e.offsetWidth>0&&Bt(r.width)/e.offsetWidth||1,o=e.offsetHeight>0&&Bt(r.height)/e.offsetHeight||1);var a=(Rt(e)?At(e):window).visualViewport,s=!Ht()&&n,l=(r.left+(s&&a?a.offsetLeft:0))/i,c=(r.top+(s&&a?a.offsetTop:0))/o,u=r.width/i,d=r.height/o;return{width:u,height:d,top:c,right:l+u,bottom:c+d,left:l,x:l,y:c}}function Gt(e){var t=At(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Wt(e){return e?(e.nodeName||"").toLowerCase():null}function qt(e){return((Rt(e)?e.ownerDocument:e.document)||window.document).documentElement}function Zt(e){return Vt(qt(e)).left+Gt(e).scrollLeft}function Yt(e){return At(e).getComputedStyle(e)}function Kt(e){var t=Yt(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function Qt(e,t,n){void 0===n&&(n=!1);var r=Mt(t),i=Mt(t)&&function(e){var t=e.getBoundingClientRect(),n=Bt(t.width)/e.offsetWidth||1,r=Bt(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),o=qt(t),a=Vt(e,i,n),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&(("body"!==Wt(t)||Kt(o))&&(s=function(e){return e!==At(e)&&Mt(e)?{scrollLeft:(t=e).scrollLeft,scrollTop:t.scrollTop}:Gt(e);var t}(t)),Mt(t)?((l=Vt(t,!0)).x+=t.clientLeft,l.y+=t.clientTop):o&&(l.x=Zt(o))),{x:a.left+s.scrollLeft-l.x,y:a.top+s.scrollTop-l.y,width:a.width,height:a.height}}function Xt(e){var t=Vt(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function $t(e){return"html"===Wt(e)?e:e.assignedSlot||e.parentNode||(Lt(e)?e.host:null)||qt(e)}function Jt(e){return["html","body","#document"].indexOf(Wt(e))>=0?e.ownerDocument.body:Mt(e)&&Kt(e)?e:Jt($t(e))}function en(e,t){var n;void 0===t&&(t=[]);var r=Jt(e),i=r===(null==(n=e.ownerDocument)?void 0:n.body),o=At(r),a=i?[o].concat(o.visualViewport||[],Kt(r)?r:[]):r,s=t.concat(a);return i?s:s.concat(en($t(a)))}function tn(e){return["table","td","th"].indexOf(Wt(e))>=0}function nn(e){return Mt(e)&&"fixed"!==Yt(e).position?e.offsetParent:null}function rn(e){for(var t=At(e),n=nn(e);n&&tn(n)&&"static"===Yt(n).position;)n=nn(n);return n&&("html"===Wt(n)||"body"===Wt(n)&&"static"===Yt(n).position)?t:n||function(e){var t=/firefox/i.test(Ut());if(/Trident/i.test(Ut())&&Mt(e)&&"fixed"===Yt(e).position)return null;var n=$t(e);for(Lt(n)&&(n=n.host);Mt(n)&&["html","body"].indexOf(Wt(n))<0;){var r=Yt(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t}var on="top",an="bottom",sn="right",ln="left",cn="auto",un=[on,an,sn,ln],dn="start",hn="end",pn="clippingParents",fn="viewport",mn="popper",gn="reference",vn=un.reduce((function(e,t){return e.concat([t+"-"+dn,t+"-"+hn])}),[]),yn=[].concat(un,[cn]).reduce((function(e,t){return e.concat([t,t+"-"+dn,t+"-"+hn])}),[]),bn=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function xn(e){var t=new Map,n=new Set,r=[];function i(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&i(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||i(e)})),r}function wn(e){var t;return function(){return t||(t=new Promise((function(n){Promise.resolve().then((function(){t=void 0,n(e())}))}))),t}}var Sn={placement:"bottom",modifiers:[],strategy:"absolute"};function _n(){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 Cn(e){void 0===e&&(e={});var t=e,n=t.defaultModifiers,r=void 0===n?[]:n,i=t.defaultOptions,o=void 0===i?Sn:i;return function(e,t,n){void 0===n&&(n=o);var i={placement:"bottom",orderedModifiers:[],options:Object.assign({},Sn,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},a=[],s=!1,l={state:i,setOptions:function(n){var s="function"===typeof n?n(i.options):n;c(),i.options=Object.assign({},o,i.options,s),i.scrollParents={reference:Rt(e)?en(e):e.contextElement?en(e.contextElement):[],popper:en(t)};var u=function(e){var t=xn(e);return bn.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(r,i.options.modifiers)));return i.orderedModifiers=u.filter((function(e){return e.enabled})),i.orderedModifiers.forEach((function(e){var t=e.name,n=e.options,r=void 0===n?{}:n,o=e.effect;if("function"===typeof o){var s=o({state:i,name:t,instance:l,options:r}),c=function(){};a.push(s||c)}})),l.update()},forceUpdate:function(){if(!s){var e=i.elements,t=e.reference,n=e.popper;if(_n(t,n)){i.rects={reference:Qt(t,rn(n),"fixed"===i.options.strategy),popper:Xt(n)},i.reset=!1,i.placement=i.options.placement,i.orderedModifiers.forEach((function(e){return i.modifiersData[e.name]=Object.assign({},e.data)}));for(var r=0;r<i.orderedModifiers.length;r++)if(!0!==i.reset){var o=i.orderedModifiers[r],a=o.fn,c=o.options,u=void 0===c?{}:c,d=o.name;"function"===typeof a&&(i=a({state:i,options:u,name:d,instance:l})||i)}else i.reset=!1,r=-1}}},update:wn((function(){return new Promise((function(e){l.forceUpdate(),e(i)}))})),destroy:function(){c(),s=!0}};if(!_n(e,t))return l;function c(){a.forEach((function(e){return e()})),a=[]}return l.setOptions(n).then((function(e){!s&&n.onFirstUpdate&&n.onFirstUpdate(e)})),l}}var En={passive:!0};function Tn(e){return e.split("-")[0]}function On(e){return e.split("-")[1]}function Nn(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function kn(e){var t,n=e.reference,r=e.element,i=e.placement,o=i?Tn(i):null,a=i?On(i):null,s=n.x+n.width/2-r.width/2,l=n.y+n.height/2-r.height/2;switch(o){case on:t={x:s,y:n.y-r.height};break;case an:t={x:s,y:n.y+n.height};break;case sn:t={x:n.x+n.width,y:l};break;case ln:t={x:n.x-r.width,y:l};break;default:t={x:n.x,y:n.y}}var c=o?Nn(o):null;if(null!=c){var u="y"===c?"height":"width";switch(a){case dn:t[c]=t[c]-(n[u]/2-r[u]/2);break;case hn:t[c]=t[c]+(n[u]/2-r[u]/2)}}return t}var jn={top:"auto",right:"auto",bottom:"auto",left:"auto"};function In(e){var t,n=e.popper,r=e.popperRect,i=e.placement,o=e.variation,a=e.offsets,s=e.position,l=e.gpuAcceleration,c=e.adaptive,u=e.roundOffsets,d=e.isFixed,h=a.x,p=void 0===h?0:h,f=a.y,m=void 0===f?0:f,g="function"===typeof u?u({x:p,y:m}):{x:p,y:m};p=g.x,m=g.y;var v=a.hasOwnProperty("x"),y=a.hasOwnProperty("y"),b=ln,x=on,w=window;if(c){var S=rn(n),_="clientHeight",C="clientWidth";if(S===At(n)&&"static"!==Yt(S=qt(n)).position&&"absolute"===s&&(_="scrollHeight",C="scrollWidth"),i===on||(i===ln||i===sn)&&o===hn)x=an,m-=(d&&S===w&&w.visualViewport?w.visualViewport.height:S[_])-r.height,m*=l?1:-1;if(i===ln||(i===on||i===an)&&o===hn)b=sn,p-=(d&&S===w&&w.visualViewport?w.visualViewport.width:S[C])-r.width,p*=l?1:-1}var E,T=Object.assign({position:s},c&&jn),O=!0===u?function(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:Bt(n*i)/i||0,y:Bt(r*i)/i||0}}({x:p,y:m},At(n)):{x:p,y:m};return p=O.x,m=O.y,l?Object.assign({},T,((E={})[x]=y?"0":"",E[b]=v?"0":"",E.transform=(w.devicePixelRatio||1)<=1?"translate("+p+"px, "+m+"px)":"translate3d("+p+"px, "+m+"px, 0)",E)):Object.assign({},T,((t={})[x]=y?m+"px":"",t[b]=v?p+"px":"",t.transform="",t))}const Pn={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]||{},r=t.attributes[e]||{},i=t.elements[e];Mt(i)&&Wt(i)&&(Object.assign(i.style,n),Object.keys(r).forEach((function(e){var t=r[e];!1===t?i.removeAttribute(e):i.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 r=t.elements[e],i=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});Mt(r)&&Wt(r)&&(Object.assign(r.style,o),Object.keys(i).forEach((function(e){r.removeAttribute(e)})))}))}},requires:["computeStyles"]};const Dn={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,i=n.offset,o=void 0===i?[0,0]:i,a=yn.reduce((function(e,n){return e[n]=function(e,t,n){var r=Tn(e),i=[ln,on].indexOf(r)>=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)*i,[ln,sn].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,o),e}),{}),s=a[t.placement],l=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}};var An={left:"right",right:"left",bottom:"top",top:"bottom"};function Rn(e){return e.replace(/left|right|bottom|top/g,(function(e){return An[e]}))}var Mn={start:"end",end:"start"};function Ln(e){return e.replace(/start|end/g,(function(e){return Mn[e]}))}function Fn(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Lt(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function zn(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function Bn(e,t,n){return t===fn?zn(function(e,t){var n=At(e),r=qt(e),i=n.visualViewport,o=r.clientWidth,a=r.clientHeight,s=0,l=0;if(i){o=i.width,a=i.height;var c=Ht();(c||!c&&"fixed"===t)&&(s=i.offsetLeft,l=i.offsetTop)}return{width:o,height:a,x:s+Zt(e),y:l}}(e,n)):Rt(t)?function(e,t){var n=Vt(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):zn(function(e){var t,n=qt(e),r=Gt(e),i=null==(t=e.ownerDocument)?void 0:t.body,o=Ft(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),a=Ft(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),s=-r.scrollLeft+Zt(e),l=-r.scrollTop;return"rtl"===Yt(i||n).direction&&(s+=Ft(n.clientWidth,i?i.clientWidth:0)-o),{width:o,height:a,x:s,y:l}}(qt(e)))}function Un(e,t,n,r){var i="clippingParents"===t?function(e){var t=en($t(e)),n=["absolute","fixed"].indexOf(Yt(e).position)>=0&&Mt(e)?rn(e):e;return Rt(n)?t.filter((function(e){return Rt(e)&&Fn(e,n)&&"body"!==Wt(e)})):[]}(e):[].concat(t),o=[].concat(i,[n]),a=o[0],s=o.reduce((function(t,n){var i=Bn(e,n,r);return t.top=Ft(i.top,t.top),t.right=zt(i.right,t.right),t.bottom=zt(i.bottom,t.bottom),t.left=Ft(i.left,t.left),t}),Bn(e,a,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Hn(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function Vn(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function Gn(e,t){void 0===t&&(t={});var n=t,r=n.placement,i=void 0===r?e.placement:r,o=n.strategy,a=void 0===o?e.strategy:o,s=n.boundary,l=void 0===s?pn:s,c=n.rootBoundary,u=void 0===c?fn:c,d=n.elementContext,h=void 0===d?mn:d,p=n.altBoundary,f=void 0!==p&&p,m=n.padding,g=void 0===m?0:m,v=Hn("number"!==typeof g?g:Vn(g,un)),y=h===mn?gn:mn,b=e.rects.popper,x=e.elements[f?y:h],w=Un(Rt(x)?x:x.contextElement||qt(e.elements.popper),l,u,a),S=Vt(e.elements.reference),_=kn({reference:S,element:b,strategy:"absolute",placement:i}),C=zn(Object.assign({},b,_)),E=h===mn?C:S,T={top:w.top-E.top+v.top,bottom:E.bottom-w.bottom+v.bottom,left:w.left-E.left+v.left,right:E.right-w.right+v.right},O=e.modifiersData.offset;if(h===mn&&O){var N=O[i];Object.keys(T).forEach((function(e){var t=[sn,an].indexOf(e)>=0?1:-1,n=[on,an].indexOf(e)>=0?"y":"x";T[e]+=N[n]*t}))}return T}const Wn={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,o=void 0===i||i,a=n.altAxis,s=void 0===a||a,l=n.fallbackPlacements,c=n.padding,u=n.boundary,d=n.rootBoundary,h=n.altBoundary,p=n.flipVariations,f=void 0===p||p,m=n.allowedAutoPlacements,g=t.options.placement,v=Tn(g),y=l||(v===g||!f?[Rn(g)]:function(e){if(Tn(e)===cn)return[];var t=Rn(e);return[Ln(e),t,Ln(t)]}(g)),b=[g].concat(y).reduce((function(e,n){return e.concat(Tn(n)===cn?function(e,t){void 0===t&&(t={});var n=t,r=n.placement,i=n.boundary,o=n.rootBoundary,a=n.padding,s=n.flipVariations,l=n.allowedAutoPlacements,c=void 0===l?yn:l,u=On(r),d=u?s?vn:vn.filter((function(e){return On(e)===u})):un,h=d.filter((function(e){return c.indexOf(e)>=0}));0===h.length&&(h=d);var p=h.reduce((function(t,n){return t[n]=Gn(e,{placement:n,boundary:i,rootBoundary:o,padding:a})[Tn(n)],t}),{});return Object.keys(p).sort((function(e,t){return p[e]-p[t]}))}(t,{placement:n,boundary:u,rootBoundary:d,padding:c,flipVariations:f,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,S=new Map,_=!0,C=b[0],E=0;E<b.length;E++){var T=b[E],O=Tn(T),N=On(T)===dn,k=[on,an].indexOf(O)>=0,j=k?"width":"height",I=Gn(t,{placement:T,boundary:u,rootBoundary:d,altBoundary:h,padding:c}),P=k?N?sn:ln:N?an:on;x[j]>w[j]&&(P=Rn(P));var D=Rn(P),A=[];if(o&&A.push(I[O]<=0),s&&A.push(I[P]<=0,I[D]<=0),A.every((function(e){return e}))){C=T,_=!1;break}S.set(T,A)}if(_)for(var R=function(e){var t=b.find((function(t){var n=S.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return C=t,"break"},M=f?3:1;M>0;M--){if("break"===R(M))break}t.placement!==C&&(t.modifiersData[r]._skip=!0,t.placement=C,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function qn(e,t,n){return Ft(e,zt(t,n))}const Zn={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,o=void 0===i||i,a=n.altAxis,s=void 0!==a&&a,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,d=n.padding,h=n.tether,p=void 0===h||h,f=n.tetherOffset,m=void 0===f?0:f,g=Gn(t,{boundary:l,rootBoundary:c,padding:d,altBoundary:u}),v=Tn(t.placement),y=On(t.placement),b=!y,x=Nn(v),w="x"===x?"y":"x",S=t.modifiersData.popperOffsets,_=t.rects.reference,C=t.rects.popper,E="function"===typeof m?m(Object.assign({},t.rects,{placement:t.placement})):m,T="number"===typeof E?{mainAxis:E,altAxis:E}:Object.assign({mainAxis:0,altAxis:0},E),O=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,N={x:0,y:0};if(S){if(o){var k,j="y"===x?on:ln,I="y"===x?an:sn,P="y"===x?"height":"width",D=S[x],A=D+g[j],R=D-g[I],M=p?-C[P]/2:0,L=y===dn?_[P]:C[P],F=y===dn?-C[P]:-_[P],z=t.elements.arrow,B=p&&z?Xt(z):{width:0,height:0},U=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},H=U[j],V=U[I],G=qn(0,_[P],B[P]),W=b?_[P]/2-M-G-H-T.mainAxis:L-G-H-T.mainAxis,q=b?-_[P]/2+M+G+V+T.mainAxis:F+G+V+T.mainAxis,Z=t.elements.arrow&&rn(t.elements.arrow),Y=Z?"y"===x?Z.clientTop||0:Z.clientLeft||0:0,K=null!=(k=null==O?void 0:O[x])?k:0,Q=D+q-K,X=qn(p?zt(A,D+W-K-Y):A,D,p?Ft(R,Q):R);S[x]=X,N[x]=X-D}if(s){var $,J="x"===x?on:ln,ee="x"===x?an:sn,te=S[w],ne="y"===w?"height":"width",re=te+g[J],ie=te-g[ee],oe=-1!==[on,ln].indexOf(v),ae=null!=($=null==O?void 0:O[w])?$:0,se=oe?re:te-_[ne]-C[ne]-ae+T.altAxis,le=oe?te+_[ne]+C[ne]-ae-T.altAxis:ie,ce=p&&oe?function(e,t,n){var r=qn(e,t,n);return r>n?n:r}(se,te,le):qn(p?se:re,te,p?le:ie);S[w]=ce,N[w]=ce-te}t.modifiersData[r]=N}},requiresIfExists:["offset"]};var Yn=function(e,t){return Hn("number"!==typeof(e="function"===typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:Vn(e,un))};const Kn={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,i=e.options,o=n.elements.arrow,a=n.modifiersData.popperOffsets,s=Tn(n.placement),l=Nn(s),c=[ln,sn].indexOf(s)>=0?"height":"width";if(o&&a){var u=Yn(i.padding,n),d=Xt(o),h="y"===l?on:ln,p="y"===l?an:sn,f=n.rects.reference[c]+n.rects.reference[l]-a[l]-n.rects.popper[c],m=a[l]-n.rects.reference[l],g=rn(o),v=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,y=f/2-m/2,b=u[h],x=v-d[c]-u[p],w=v/2-d[c]/2+y,S=qn(b,w,x),_=l;n.modifiersData[r]=((t={})[_]=S,t.centerOffset=S-w,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!==typeof r||(r=t.elements.popper.querySelector(r)))&&Fn(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Qn(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 Xn(e){return[on,sn,an,ln].some((function(t){return e[t]>=0}))}var $n=Cn({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,o=void 0===i||i,a=r.resize,s=void 0===a||a,l=At(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach((function(e){e.addEventListener("scroll",n.update,En)})),s&&l.addEventListener("resize",n.update,En),function(){o&&c.forEach((function(e){e.removeEventListener("scroll",n.update,En)})),s&&l.removeEventListener("resize",n.update,En)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=kn({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,r=n.gpuAcceleration,i=void 0===r||r,o=n.adaptive,a=void 0===o||o,s=n.roundOffsets,l=void 0===s||s,c={placement:Tn(t.placement),variation:On(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,In(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:a,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,In(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},Pn,Dn,Wn,Zn,Kn,{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,a=Gn(t,{elementContext:"reference"}),s=Gn(t,{altBoundary:!0}),l=Qn(a,r),c=Qn(s,i,o),u=Xn(l),d=Xn(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}}]}),Jn=function(e){return e.reduce((function(e,t){var n=t[0],r=t[1];return e[n]=r,e}),{})},er="undefined"!==typeof window&&window.document&&window.document.createElement?a.useLayoutEffect:a.useEffect,tr=[],nr=function(e,t,n){void 0===n&&(n={});var r=a.useRef(null),i={onFirstUpdate:n.onFirstUpdate,placement:n.placement||"bottom",strategy:n.strategy||"absolute",modifiers:n.modifiers||tr},o=a.useState({styles:{popper:{position:i.strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),s=o[0],l=o[1],u=a.useMemo((function(){return{name:"updateState",enabled:!0,phase:"write",fn:function(e){var t=e.state,n=Object.keys(t.elements);Dt.flushSync((function(){l({styles:Jn(n.map((function(e){return[e,t.styles[e]||{}]}))),attributes:Jn(n.map((function(e){return[e,t.attributes[e]]})))})}))},requires:["computeStyles"]}}),[]),d=a.useMemo((function(){var e={onFirstUpdate:i.onFirstUpdate,placement:i.placement,strategy:i.strategy,modifiers:[].concat(i.modifiers,[u,{name:"applyStyles",enabled:!1}])};return c()(r.current,e)?r.current||e:(r.current=e,e)}),[i.onFirstUpdate,i.placement,i.strategy,i.modifiers,u]),h=a.useRef();return er((function(){h.current&&h.current.setOptions(d)}),[d]),er((function(){if(null!=e&&null!=t){var r=(n.createPopper||$n)(e,t,d);return h.current=r,function(){r.destroy(),h.current=null}}}),[e,t,n.createPopper]),{state:h.current?h.current.state:null,styles:s.styles,attributes:s.attributes,update:h.current?h.current.update:null,forceUpdate:h.current?h.current.forceUpdate:null}},rr=n(40797);function ir(){return(0,rr.T)().direction}const or=["bottom-start","bottom","bottom-end","top-start","top","top-end","right-start","right","right-end","left-start","left","left-end"],ar={name:"rtlOffsetFix",enabled:!0,phase:"main",requires:["offset"],fn(e){let{state:t}=e;var n;if(!t.placement.startsWith("top")&&!t.placement.startsWith("bottom"))return;const r=null===(n=t.modifiersData.offset)||void 0===n?void 0:n[t.placement];r&&(t.modifiersData.popperOffsets.x-=2*r.x)}};var sr=["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])"],lr=sr.join(","),cr="undefined"===typeof Element,ur=cr?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,dr=!cr&&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},hr=function e(t,n){var r;void 0===n&&(n=!0);var i=null===t||void 0===t||null===(r=t.getAttribute)||void 0===r?void 0:r.call(t,"inert");return""===i||"true"===i||n&&t&&e(t.parentNode)},pr=function(e,t,n){if(hr(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(lr));return t&&ur.call(e,lr)&&r.unshift(e),r=r.filter(n)},fr=function e(t,n,r){for(var i=[],o=Array.from(t);o.length;){var a=o.shift();if(!hr(a,!1))if("SLOT"===a.tagName){var s=a.assignedElements(),l=e(s.length?s:a.children,!0,r);r.flatten?i.push.apply(i,l):i.push({scopeParent:a,candidates:l})}else{ur.call(a,lr)&&r.filter(a)&&(n||!t.includes(a))&&i.push(a);var c=a.shadowRoot||"function"===typeof r.getShadowRoot&&r.getShadowRoot(a),u=!hr(c,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(a));if(c&&u){var d=e(!0===c?a.children:c.children,!0,r);r.flatten?i.push.apply(i,d):i.push({scopeParent:a,candidates:d})}else o.unshift.apply(o,a.children)}}return i},mr=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},gr=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(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))&&!mr(e)?0:e.tabIndex},vr=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},yr=function(e){return"INPUT"===e.tagName},br=function(e){return function(e){return yr(e)&&"radio"===e.type}(e)&&!function(e){if(!e.name)return!0;var t,n=e.form||dr(e),r=function(e){return n.querySelectorAll('input[type="radio"][name="'+e+'"]')};if("undefined"!==typeof window&&"undefined"!==typeof window.CSS&&"function"===typeof window.CSS.escape)t=r(window.CSS.escape(e.name));else try{t=r(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 i=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!i||i===e}(e)},xr=function(e){var t=e.getBoundingClientRect(),n=t.width,r=t.height;return 0===n&&0===r},wr=function(e,t){var n=t.displayCheck,r=t.getShadowRoot;if("hidden"===getComputedStyle(e).visibility)return!0;var i=ur.call(e,"details>summary:first-of-type")?e.parentElement:e;if(ur.call(i,"details:not([open]) *"))return!0;if(n&&"full"!==n&&"legacy-full"!==n){if("non-zero-area"===n)return xr(e)}else{if("function"===typeof r){for(var o=e;e;){var a=e.parentElement,s=dr(e);if(a&&!a.shadowRoot&&!0===r(a))return xr(e);e=e.assignedSlot?e.assignedSlot:a||s===e.ownerDocument?a:s.host}e=o}if(function(e){var t,n,r,i,o=e&&dr(e),a=null===(t=o)||void 0===t?void 0:t.host,s=!1;if(o&&o!==e)for(s=!!(null!==(n=a)&&void 0!==n&&null!==(r=n.ownerDocument)&&void 0!==r&&r.contains(a)||null!==e&&void 0!==e&&null!==(i=e.ownerDocument)&&void 0!==i&&i.contains(e));!s&&a;){var l,c,u;s=!(null===(c=a=null===(l=o=dr(a))||void 0===l?void 0:l.host)||void 0===c||null===(u=c.ownerDocument)||void 0===u||!u.contains(a))}return s}(e))return!e.getClientRects().length;if("legacy-full"!==n)return!0}return!1},Sr=function(e,t){return!(t.disabled||hr(t)||function(e){return yr(e)&&"hidden"===e.type}(t)||wr(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 r=t.children.item(n);if("LEGEND"===r.tagName)return!!ur.call(t,"fieldset[disabled] *")||!r.contains(e)}return!0}t=t.parentElement}return!1}(t))},_r=function(e,t){return!(br(t)||gr(t)<0||!Sr(e,t))},Cr=function(e){var t=parseInt(e.getAttribute("tabindex"),10);return!!(isNaN(t)||t>=0)},Er=function e(t){var n=[],r=[];return t.forEach((function(t,i){var o=!!t.scopeParent,a=o?t.scopeParent:t,s=function(e,t){var n=gr(e);return n<0&&t&&!mr(e)?0:n}(a,o),l=o?e(t.candidates):a;0===s?o?n.push.apply(n,l):n.push(a):r.push({documentOrder:i,tabIndex:s,item:t,isScope:o,content:l})})),r.sort(vr).reduce((function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e}),[]).concat(n)},Tr=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==ur.call(e,lr)&&_r(t,e)},Or=sr.concat("iframe").join(","),Nr=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==ur.call(e,Or)&&Sr(t,e)};function kr(e){let{enabled:t,restoreFocusRef:n,focusTrapped:r}=e;const i=a.useRef(null),o=a.useRef(null),s=a.useRef(null);return a.useEffect((()=>{if(!t)return;const e=e=>{const t=e.target;!r&&t instanceof HTMLElement&&Tr(t)&&(s.current=t)},n=e=>{const t=e.target;t instanceof HTMLElement&&Tr(t)?s.current=t:s.current=null};return window.addEventListener("focusin",e),window.addEventListener("mousedown",n),window.addEventListener("touchstart",n),()=>{window.removeEventListener("focusin",e),window.removeEventListener("mousedown",n),window.removeEventListener("touchstart",n)}}),[t,r]),a.useEffect((()=>{var e;i.current=t&&null!==(e=(null===n||void 0===n?void 0:n.current)||o.current)&&void 0!==e?e:null})),a.useEffect((()=>{if(t)return()=>{let e=i.current;const t=s.current;t&&document.contains(t)&&Tr(t)&&(e=t),e&&"function"===typeof e.focus&&document.contains(e)&&Nr(e)&&(e!==document.activeElement&&setTimeout((()=>{null===e||void 0===e||e.focus()}),0),o.current=null,s.current=null)}}),[t]),{onFocus:e=>{var r;t&&null===o.current&&(o.current=e.relatedTarget,s.current=o.current,i.current=null!==(r=(null===n||void 0===n?void 0:n.current)||o.current)&&void 0!==r?r:null)}}}var jr=n(57107);function Ir(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ir(Object(n),!0).forEach((function(t){Dr(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ir(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Dr(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 r=n.call(e,t||"default");if("object"!==typeof r)return r;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 Ar=function(e,t){if(e.length>0){var n=e[e.length-1];n!==t&&n.pause()}var r=e.indexOf(t);-1===r||e.splice(r,1),e.push(t)},Rr=function(e,t){var n=e.indexOf(t);-1!==n&&e.splice(n,1),e.length>0&&e[e.length-1].unpause()},Mr=function(e){return"Tab"===(null===e||void 0===e?void 0:e.key)||9===(null===e||void 0===e?void 0:e.keyCode)},Lr=function(e){return Mr(e)&&!e.shiftKey},Fr=function(e){return Mr(e)&&e.shiftKey},zr=function(e){return setTimeout(e,0)},Br=function(e,t){var n=-1;return e.every((function(e,r){return!t(e)||(n=r,!1)})),n},Ur=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return"function"===typeof e?e.apply(void 0,n):e},Hr=function(e){return e.target.shadowRoot&&"function"===typeof e.composedPath?e.composedPath()[0]:e.target},Vr=[],Gr=function(e,t){var n,r=(null===t||void 0===t?void 0:t.document)||document,i=(null===t||void 0===t?void 0:t.trapStack)||Vr,o=Pr({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0,isKeyForward:Lr,isKeyBackward:Fr},t),a={containers:[],containerGroups:[],tabbableGroups:[],nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,delayInitialFocusTimer:void 0,recentNavEvent:void 0},s=function(e,t,n){return e&&void 0!==e[t]?e[t]:o[n||t]},l=function(e,t){var n="function"===typeof(null===t||void 0===t?void 0:t.composedPath)?t.composedPath():void 0;return a.containerGroups.findIndex((function(t){var r=t.container,i=t.tabbableNodes;return r.contains(e)||(null===n||void 0===n?void 0:n.includes(r))||i.find((function(t){return t===e}))}))},c=function(e){var t=o[e];if("function"===typeof t){for(var n=arguments.length,i=new Array(n>1?n-1:0),a=1;a<n;a++)i[a-1]=arguments[a];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 s=t;if("string"===typeof t&&!(s=r.querySelector(t)))throw new Error("`".concat(e,"` as selector refers to no known node"));return s},u=function(){var e=c("initialFocus");if(!1===e)return!1;if(void 0===e||!Nr(e,o.tabbableOptions))if(l(r.activeElement)>=0)e=r.activeElement;else{var t=a.tabbableGroups[0];e=t&&t.firstTabbableNode||c("fallbackFocus")}if(!e)throw new Error("Your focus-trap needs to have at least one focusable element");return e},d=function(){if(a.containerGroups=a.containers.map((function(e){var t=function(e,t){var n;return n=(t=t||{}).getShadowRoot?fr([e],t.includeContainer,{filter:_r.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:Cr}):pr(e,t.includeContainer,_r.bind(null,t)),Er(n)}(e,o.tabbableOptions),n=function(e,t){return(t=t||{}).getShadowRoot?fr([e],t.includeContainer,{filter:Sr.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):pr(e,t.includeContainer,Sr.bind(null,t))}(e,o.tabbableOptions),r=t.length>0?t[0]:void 0,i=t.length>0?t[t.length-1]:void 0,a=n.find((function(e){return Tr(e)})),s=n.slice().reverse().find((function(e){return Tr(e)})),l=!!t.find((function(e){return gr(e)>0}));return{container:e,tabbableNodes:t,focusableNodes:n,posTabIndexesFound:l,firstTabbableNode:r,lastTabbableNode:i,firstDomTabbableNode:a,lastDomTabbableNode:s,nextTabbableNode:function(e){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=t.indexOf(e);return i<0?r?n.slice(n.indexOf(e)+1).find((function(e){return Tr(e)})):n.slice(0,n.indexOf(e)).reverse().find((function(e){return Tr(e)})):t[i+(r?1:-1)]}}})),a.tabbableGroups=a.containerGroups.filter((function(e){return e.tabbableNodes.length>0})),a.tabbableGroups.length<=0&&!c("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(a.containerGroups.find((function(e){return e.posTabIndexesFound}))&&a.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},h=function e(t){var n=t.activeElement;if(n)return n.shadowRoot&&null!==n.shadowRoot.activeElement?e(n.shadowRoot):n},p=function e(t){!1!==t&&t!==h(document)&&(t&&t.focus?(t.focus({preventScroll:!!o.preventScroll}),a.mostRecentlyFocusedNode=t,function(e){return e.tagName&&"input"===e.tagName.toLowerCase()&&"function"===typeof e.select}(t)&&t.select()):e(u()))},f=function(e){var t=c("setReturnFocus",e);return t||!1!==t&&e},m=function(e){var t=e.target,n=e.event,r=e.isBackward,i=void 0!==r&&r;t=t||Hr(n),d();var s=null;if(a.tabbableGroups.length>0){var u=l(t,n),h=u>=0?a.containerGroups[u]:void 0;if(u<0)s=i?a.tabbableGroups[a.tabbableGroups.length-1].lastTabbableNode:a.tabbableGroups[0].firstTabbableNode;else if(i){var p=Br(a.tabbableGroups,(function(e){var n=e.firstTabbableNode;return t===n}));if(p<0&&(h.container===t||Nr(t,o.tabbableOptions)&&!Tr(t,o.tabbableOptions)&&!h.nextTabbableNode(t,!1))&&(p=u),p>=0){var f=0===p?a.tabbableGroups.length-1:p-1,m=a.tabbableGroups[f];s=gr(t)>=0?m.lastTabbableNode:m.lastDomTabbableNode}else Mr(n)||(s=h.nextTabbableNode(t,!1))}else{var g=Br(a.tabbableGroups,(function(e){var n=e.lastTabbableNode;return t===n}));if(g<0&&(h.container===t||Nr(t,o.tabbableOptions)&&!Tr(t,o.tabbableOptions)&&!h.nextTabbableNode(t))&&(g=u),g>=0){var v=g===a.tabbableGroups.length-1?0:g+1,y=a.tabbableGroups[v];s=gr(t)>=0?y.firstTabbableNode:y.firstDomTabbableNode}else Mr(n)||(s=h.nextTabbableNode(t))}}else s=c("fallbackFocus");return s},g=function(e){var t=Hr(e);l(t,e)>=0||(Ur(o.clickOutsideDeactivates,e)?n.deactivate({returnFocus:o.returnFocusOnDeactivate}):Ur(o.allowOutsideClick,e)||e.preventDefault())},v=function(e){var t=Hr(e),n=l(t,e)>=0;if(n||t instanceof Document)n&&(a.mostRecentlyFocusedNode=t);else{var r;e.stopImmediatePropagation();var i=!0;if(a.mostRecentlyFocusedNode)if(gr(a.mostRecentlyFocusedNode)>0){var s=l(a.mostRecentlyFocusedNode),c=a.containerGroups[s].tabbableNodes;if(c.length>0){var d=c.findIndex((function(e){return e===a.mostRecentlyFocusedNode}));d>=0&&(o.isKeyForward(a.recentNavEvent)?d+1<c.length&&(r=c[d+1],i=!1):d-1>=0&&(r=c[d-1],i=!1))}}else a.containerGroups.some((function(e){return e.tabbableNodes.some((function(e){return gr(e)>0}))}))||(i=!1);else i=!1;i&&(r=m({target:a.mostRecentlyFocusedNode,isBackward:o.isKeyBackward(a.recentNavEvent)})),p(r||(a.mostRecentlyFocusedNode||u()))}a.recentNavEvent=void 0},y=function(e){if(function(e){return"Escape"===(null===e||void 0===e?void 0:e.key)||"Esc"===(null===e||void 0===e?void 0:e.key)||27===(null===e||void 0===e?void 0:e.keyCode)}(e)&&!1!==Ur(o.escapeDeactivates,e))return e.preventDefault(),void n.deactivate();(o.isKeyForward(e)||o.isKeyBackward(e))&&function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];a.recentNavEvent=e;var n=m({event:e,isBackward:t});n&&(Mr(e)&&e.preventDefault(),p(n))}(e,o.isKeyBackward(e))},b=function(e){var t=Hr(e);l(t,e)>=0||Ur(o.clickOutsideDeactivates,e)||Ur(o.allowOutsideClick,e)||(e.preventDefault(),e.stopImmediatePropagation())},x=function(){if(a.active)return Ar(i,n),a.delayInitialFocusTimer=o.delayInitialFocus?zr((function(){p(u())})):p(u()),r.addEventListener("focusin",v,!0),r.addEventListener("mousedown",g,{capture:!0,passive:!1}),r.addEventListener("touchstart",g,{capture:!0,passive:!1}),r.addEventListener("click",b,{capture:!0,passive:!1}),r.addEventListener("keydown",y,{capture:!0,passive:!1}),n},w=function(){if(a.active)return r.removeEventListener("focusin",v,!0),r.removeEventListener("mousedown",g,!0),r.removeEventListener("touchstart",g,!0),r.removeEventListener("click",b,!0),r.removeEventListener("keydown",y,!0),n},S="undefined"!==typeof window&&"MutationObserver"in window?new MutationObserver((function(e){e.some((function(e){return Array.from(e.removedNodes).some((function(e){return e===a.mostRecentlyFocusedNode}))}))&&p(u())})):void 0,_=function(){S&&(S.disconnect(),a.active&&!a.paused&&a.containers.map((function(e){S.observe(e,{subtree:!0,childList:!0})})))};return(n={get active(){return a.active},get paused(){return a.paused},activate:function(e){if(a.active)return this;var t=s(e,"onActivate"),n=s(e,"onPostActivate"),i=s(e,"checkCanFocusTrap");i||d(),a.active=!0,a.paused=!1,a.nodeFocusedBeforeActivation=r.activeElement,null===t||void 0===t||t();var o=function(){i&&d(),x(),_(),null===n||void 0===n||n()};return i?(i(a.containers.concat()).then(o,o),this):(o(),this)},deactivate:function(e){if(!a.active)return this;var t=Pr({onDeactivate:o.onDeactivate,onPostDeactivate:o.onPostDeactivate,checkCanReturnFocus:o.checkCanReturnFocus},e);clearTimeout(a.delayInitialFocusTimer),a.delayInitialFocusTimer=void 0,w(),a.active=!1,a.paused=!1,_(),Rr(i,n);var r=s(t,"onDeactivate"),l=s(t,"onPostDeactivate"),c=s(t,"checkCanReturnFocus"),u=s(t,"returnFocus","returnFocusOnDeactivate");null===r||void 0===r||r();var d=function(){zr((function(){u&&p(f(a.nodeFocusedBeforeActivation)),null===l||void 0===l||l()}))};return u&&c?(c(f(a.nodeFocusedBeforeActivation)).then(d,d),this):(d(),this)},pause:function(e){if(a.paused||!a.active)return this;var t=s(e,"onPause"),n=s(e,"onPostPause");return a.paused=!0,null===t||void 0===t||t(),w(),_(),null===n||void 0===n||n(),this},unpause:function(e){if(!a.paused||!a.active)return this;var t=s(e,"onUnpause"),n=s(e,"onPostUnpause");return a.paused=!1,null===t||void 0===t||t(),d(),x(),_(),null===n||void 0===n||n(),this},updateContainerElements:function(e){var t=[].concat(e).filter(Boolean);return a.containers=t.map((function(e){return"string"===typeof e?r.querySelector(e):e})),a.active&&d(),_(),this}}).updateContainerElements(e),n};const Wr=a.createContext(void 0);function qr(e){let{children:t,enabled:n=!0,disableAutoFocus:r,autoFocus:i=!0}=e;const o=a.useRef(null),s=a.useRef(!r&&i);a.useEffect((()=>{s.current=!r&&i}));const l=a.useRef(),c=a.useRef({}),u=a.useCallback((()=>{var e;null===(e=l.current)||void 0===e||e.updateContainerElements([o.current,...Object.values(c.current)])}),[]),d=a.useMemo((()=>({addNode(e,t){var n;c.current[e]===t||(null===(n=o.current)||void 0===n?void 0:n.contains(t))||(c.current[e]=t,u())},removeNode(e){c.current[e]&&(delete c.current[e],u())}})),[u]),h=a.useCallback((e=>{var t;n&&e?(o.current=e,l.current||(l.current=Gr([],{initialFocus:()=>s.current&&function(e){if(!(document.activeElement instanceof HTMLElement)||!e.contains(document.activeElement))return e.hasAttribute("tabIndex")||e.setAttribute("tabIndex","-1"),e;return document.activeElement}(e),fallbackFocus:()=>e,returnFocusOnDeactivate:!1,escapeDeactivates:!1,clickOutsideDeactivates:!1,allowOutsideClick:!0})),u(),l.current.activate()):(null===(t=l.current)||void 0===t||t.deactivate(),o.current=null)}),[n,u]),p=a.Children.only(t);if(!a.isValidElement(p))throw new Error("Children must contain only one valid element");const f=Et(h,p.ref);return a.createElement(Wr.Provider,{value:d},a.cloneElement(p,{ref:f}))}var Zr=n(59926),Yr=n(93404);const Kr=new class{constructor(){this.stack=[],this.handleDocumentKeyDown=e=>{var t,n,r;if(e.code===Zr.V.ESCAPE){const r=this.getTopLayer();r.disableEscapeKeyDown||(null===(t=r.onEscapeKeyDown)||void 0===t||t.call(r,e),null===(n=r.onClose)||void 0===n||n.call(r,e,"escapeKeyDown"))}if("Enter"===e.code){const t=this.getTopLayer();null===(r=t.onEnterKeyDown)||void 0===r||r.call(t,e)}},this.handleDocumentClick=e=>{var t,n;if(this.isToastClick(e))return;let r,i=null;if(this.mouseDownLayerTarget){if(r=this.mouseDownLayerTarget.layer,i=this.mouseDownLayerTarget.target,this.mouseDownLayerTarget=void 0,!this.stack.includes(r))return}else r=this.getTopLayer();!r.disableOutsideClick&&this.isOutsideClick(r,e,i)&&(null===(t=r.onOutsideClick)||void 0===t||t.call(r,e),null===(n=r.onClose)||void 0===n||n.call(r,e,"outsideClick"))},this.handleDocumentMouseDown=e=>{const t=this.getTopLayer();t&&(this.mouseDownLayerTarget={layer:t,target:e.target})}}add(e){this.stack.push(e),1===this.stack.length&&this.addListeners(),this.notifyLayersChange()}remove(e){const t=this.stack.indexOf(e);this.stack.splice(t,1),0===this.stack.length&&this.removeListeners(),this.notifyLayersChange()}getLayersCount(){return this.stack.length}getLayers(){return this.stack.map((e=>{let{type:t}=e;return{type:t}}))}addListeners(){document.addEventListener("keydown",this.handleDocumentKeyDown),document.addEventListener("click",this.handleDocumentClick,!0),document.addEventListener("mousedown",this.handleDocumentMouseDown,!0)}removeListeners(){document.removeEventListener("keydown",this.handleDocumentKeyDown),document.removeEventListener("click",this.handleDocumentClick,!0),document.removeEventListener("mousedown",this.handleDocumentMouseDown,!0)}notifyLayersChange(){Yr.P.publish({componentId:"LayerManager",eventId:"layerschange",meta:{layersCount:this.getLayersCount(),layers:this.getLayers()}})}getTopLayer(){return this.stack[this.stack.length-1]}isOutsideClick(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;const r=e.contentRefs||[],{target:i}=t,o="function"===typeof t.composedPath?t.composedPath():[];if(r.length>0){return!r.some((e=>{var t,r,a,s;return(null===(r=null===(t=null===e||void 0===e?void 0:e.current)||void 0===t?void 0:t.contains)||void 0===r?void 0:r.call(t,i))||(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!1}isToastClick(e){return("function"===typeof e.composedPath?e.composedPath():[]).some((e=>{var t;return Boolean(null===(t=null===e||void 0===e?void 0:e.dataset)||void 0===t?void 0:t.toast)}))}};function Qr(e){let{open:t,disableEscapeKeyDown:n,disableOutsideClick:r,onEscapeKeyDown:i,onEnterKeyDown:o,onOutsideClick:s,onClose:l,contentRefs:c,enabled:u=!0,type:d}=e;const h=a.useRef({disableEscapeKeyDown:n,disableOutsideClick:r,onEscapeKeyDown:i,onEnterKeyDown:o,onOutsideClick:s,onClose:l,contentRefs:c,type:d});a.useEffect((()=>{Object.assign(h.current,{disableEscapeKeyDown:n,disableOutsideClick:r,onEscapeKeyDown:i,onEnterKeyDown:o,onOutsideClick:s,onClose:l,contentRefs:c,enabled:u})}),[n,r,i,o,s,l,c,u]),a.useEffect((()=>{if(t&&u){const e=h.current;return Kr.add(e),()=>{Kr.remove(e)}}}),[t,u])}const Xr=(0,le.Ge)("popup");function $r(e){let{styles:t,attributes:n,setArrowRef:r}=e;return a.createElement("div",Object.assign({"data-popper-arrow":!0,ref:r,className:Xr("arrow"),style:t},n),a.createElement("div",{className:Xr("arrow-content")},a.createElement("div",{className:Xr("arrow-circle-wrapper")},a.createElement("div",{className:Xr("arrow-circle",{left:!0})})),a.createElement("div",{className:Xr("arrow-circle-wrapper")},a.createElement("div",{className:Xr("arrow-circle",{right:!0})}))))}const Jr=(0,le.Ge)("popup"),ei=8;function ti(e){let{keepMounted:t=!1,hasArrow:n=!1,offset:r=[0,4],open:i,placement:o,anchorRef:s,disableEscapeKeyDown:l,disableOutsideClick:c,disableLayer:u,style:d,className:h,contentClassName:p,modifiers:f=[],children:m,onEscapeKeyDown:g,onOutsideClick:v,onClose:y,onClick:b,onMouseEnter:x,onMouseLeave:w,onFocus:S,onBlur:_,onTransitionEnter:C,onTransitionEntered:E,onTransitionExit:T,onTransitionExited:O,disablePortal:N,container:k,strategy:j,qa:I,restoreFocus:P,restoreFocusRef:D,"aria-label":A,"aria-labelledby":R,role:M,id:L,focusTrap:F=!1,autoFocus:z=!1}=e;const B=a.useRef(null);Qr({open:i,disableEscapeKeyDown:l,disableOutsideClick:c,onEscapeKeyDown:g,onOutsideClick:v,onClose:y,contentRefs:[s,B],enabled:!u,type:"popup"});const{attributes:U,styles:H,setPopperRef:V,setArrowRef:G}=function(e){let{anchorRef:t,placement:n=or,offset:r,modifiers:i=[],strategy:o,altBoundary:s}=e;const[l,c]=a.useState(null),[u,d]=a.useState(null),h=ir(),p=a.useMemo((()=>{let e=Array.isArray(n)?n:[n];return"rtl"===h&&(e=e.map((e=>e.replace(/(top|bottom)-(start|end)/g,((e,t,n)=>"start"===n?t+"-end":"end"===n?t+"-start":e))))),e}),[n,h]),{attributes:f,styles:m}=nr(null===t||void 0===t?void 0:t.current,l,{strategy:o,modifiers:[{name:"arrow",options:{element:u}},{name:"offset",options:{offset:r,altBoundary:s}},{name:"flip",options:{fallbackPlacements:p.slice(1),altBoundary:s}},..."rtl"===h?[ar]:[],...i],placement:p[0]});return{attributes:f,styles:m,setPopperRef:c,setArrowRef:d}}({anchorRef:s,placement:o,offset:n?[r[0],r[1]+ei]:r,strategy:j,altBoundary:N,modifiers:[{name:"arrow",options:{enabled:n,padding:4}},{name:"preventOverflow",options:{padding:1,altBoundary:N}},...f]}),W=Et(V,B,function(){const e=a.useContext(Wr),t=ue();return a.useMemo((()=>{if(e)return n=>{n?e.addNode(t,n):e.removeNode(t)}}),[e,t])}()),q=kr({enabled:Boolean(P&&i),restoreFocusRef:D});return a.createElement(me.Z,{nodeRef:B,in:i,addEndListener:e=>{var t;return null===(t=B.current)||void 0===t?void 0:t.addEventListener("animationend",e)},classNames:(0,ge.Y)(Jr),mountOnEnter:!t,unmountOnExit:!t,appear:!0,onEnter:()=>{null===C||void 0===C||C()},onEntered:()=>{null===E||void 0===E||E()},onExit:()=>{null===T||void 0===T||T()},onExited:()=>{null===O||void 0===O||O()}},a.createElement(jr.h,{container:k,disablePortal:N},a.createElement("div",Object.assign({ref:W,style:H.popper},U.popper,q,{className:Jr({open:i},h),"data-qa":I,id:L,role:M,"aria-label":A,"aria-labelledby":R}),a.createElement(qr,{enabled:F&&i,disableAutoFocus:!z},a.createElement("div",{onClick:b,onMouseEnter:x,onMouseLeave:w,onFocus:S,onBlur:_,className:Jr("content",p),style:d,tabIndex:-1},n&&a.createElement($r,{styles:H.arrow,attributes:U.arrow,setArrowRef:G}),m)))))}const ni=(0,le.Ge)("popover"),ri=function(e){let 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"}},ii=e=>{let{theme:t,tooltipActionButton:n,tooltipCancelButton:r}=e;return n||r?a.createElement("div",{className:ni("tooltip-buttons")},n&&a.createElement(Ie.z,{view:ri(t,!0),width:"max",onClick:n.onClick,className:ni("tooltip-button")},n.text),r&&a.createElement(Ie.z,{view:ri(t,!1),width:"max",onClick:r.onClick,className:ni("tooltip-button")},r.text)):null},oi=e=>{let{secondary:t,htmlContent:n,content:r,className:i}=e;return n||r?n?a.createElement("div",{className:ni("tooltip-content",{secondary:t},i),dangerouslySetInnerHTML:{__html:n}}):r?a.createElement("div",{className:ni("tooltip-content",{secondary:t},i)},r):null:null},ai=(0,le.Ge)("link"),si=a.forwardRef((function(e,t){let{view:n="normal",visitable:r,href:i,target:o,rel:s,title:l,children:c,extraProps:u,onClick:d,onFocus:h,onBlur:p,id:f,style:m,className:g,qa:v}=e;const y={title:l,onClick:d,onClickCapture:a.useCallback((e=>{Yr.P.publish({componentId:"Link",eventId:"click",domEvent:e})}),[]),onFocus:h,onBlur:p,id:f,style:m,className:ai({view:n,visitable:r},g),"data-qa":v},b="_blank"!==o||s?s:"noopener noreferrer";return a.createElement("a",Object.assign({},u,y,{ref:t,href:i,target:o,rel:b}),c)})),li=e=>{let{links:t}=e;return 0===t.length?null:a.createElement("div",{className:ni("tooltip-links")},t.map(((e,t)=>{const{text:n,href:r,target:i="_blank",onClick:o}=e;return a.createElement(a.Fragment,{key:"link-".concat(t)},a.createElement(si,{href:r,target:i,onClick:o,className:ni("tooltip-link")},n),a.createElement("br",null))})))};var ci=n(68512);const ui=e=>{let{open:t,openOnHover:n,disabled:r,className:i,openTooltip:o,closeTooltip:s,closedManually:l,onClick:c,children:u}=e;const d=async e=>{if(r||t&&n)return;if(!(!c||await c(e)))return;t?(s(),l.current=!0):(o(),l.current=!1)},{onKeyDown:h}=(0,ci.b)(d);return"function"===typeof u?a.createElement(a.Fragment,null,u({onClick:d,onKeyDown:h,open:t})):a.createElement("div",{className:i,onClick:d,onKeyDown:c?h:void 0},u)};var di;!function(e){e.Immediate="immediate",e.Delayed="delayed",e.DelayedClosing="delayedClosing"}(di||(di={}));const hi={[di.Immediate]:[0,0],[di.Delayed]:[300,300],[di.DelayedClosing]:[0,300]},pi=e=>{let{initialOpen:t,disabled:n,autoclosable:r,onOpenChange:i,delayOpening:o,delayClosing:s,behavior:l,shouldBeOpen:c}=e;const u=a.useRef(null),d=a.useRef(null),[h,p]=a.useState(t),f=a.useCallback((()=>{u.current&&(clearTimeout(u.current),u.current=null)}),[]),m=a.useCallback((()=>{d.current&&(clearTimeout(d.current),d.current=null)}),[]);a.useEffect((()=>()=>{f(),m()}),[m,f]);const g=a.useCallback((e=>{p(e),c.current=e,null===i||void 0===i||i(e)}),[i,c]),v=a.useCallback((()=>{f(),g(!0)}),[g,f]),y=a.useCallback((()=>{m(),g(!1)}),[g,m]);a.useEffect((()=>{n&&y()}),[n,y]),((e,t)=>{const n=a.useRef(!0);a.useEffect((()=>{n.current?n.current=!1:e()}),t)})((()=>{r&&!c.current&&y()}),[r,y,c]);const[b,x]=hi[l],w=a.useCallback((()=>{u.current=setTimeout((()=>{u.current=null,v()}),null!==o&&void 0!==o?o:b)}),[b,o,v]),S=a.useCallback((()=>{d.current=setTimeout((()=>{d.current=null,y()}),null!==s&&void 0!==s?s:x)}),[y,x,s]);return{isOpen:h,closingTimeout:d,openTooltip:v,openTooltipDelayed:w,unsetOpeningTimeout:f,closeTooltip:y,closeTooltipDelayed:S,unsetClosingTimeout:m}},fi=a.forwardRef((function(e,t){let{initialOpen:n=!1,disabled:r=!1,autoclosable:i=!0,openOnHover:o=!0,delayOpening:s,delayClosing:l,behavior:c=di.Delayed,placement:u,offset:d={},tooltipOffset:h,tooltipClassName:p,tooltipContentClassName:f,theme:m="info",size:g="s",hasArrow:v=!0,hasClose:y=!1,className:b,children:x,title:w,content:S,htmlContent:_,contentClassName:C,links:E,forceLinksAppearance:T=!1,tooltipActionButton:O,tooltipCancelButton:N,onOpenChange:k,onCloseClick:j,onClick:I,anchorRef:P,strategy:D,qa:A,disablePortal:R=!1,tooltipId:M,focusTrap:L,autoFocus:F,restoreFocusRef:z,modifiers:B}=e;const U=ir(),H=a.useRef(null),V=a.useRef(!1),G=a.useRef(n),{isOpen:W,closingTimeout:q,openTooltip:Z,openTooltipDelayed:Y,unsetOpeningTimeout:K,closeTooltip:Q,closeTooltipDelayed:X,unsetClosingTimeout:$}=pi({initialOpen:n,disabled:r,autoclosable:i,onOpenChange:k,delayOpening:s,delayClosing:l,behavior:c,shouldBeOpen:G}),J=a.useMemo((()=>u||("rtl"===U?["left","bottom"]:["right","bottom"])),[U,u]);a.useImperativeHandle(t,(()=>({openTooltip:Z,closeTooltip:Q})),[Z,Q]);const ee=Boolean(w),te=a.createElement(ti,{id:M,role:o?"tooltip":"dialog",strategy:D,anchorRef:P||H,className:ni("tooltip",{theme:m,size:g,"with-close":y,"force-links-appearance":T},p),contentClassName:ni("tooltip-popup-content",f),open:W,placement:J,hasArrow:v,offset:h,onClose:P?void 0:Q,qa:A?"".concat(A,"-tooltip"):"",disablePortal:R,focusTrap:L,autoFocus:F,restoreFocus:!0,restoreFocusRef:z||H,modifiers:B},a.createElement(a.Fragment,null,w&&a.createElement("h3",{className:ni("tooltip-title")},w),a.createElement(oi,{secondary:!!ee&&"announcement"!==m,content:S,htmlContent:_,className:C}),E&&a.createElement(li,{links:E}),a.createElement(ii,{theme:m,tooltipActionButton:O,tooltipCancelButton:N}),y&&a.createElement("div",{className:ni("tooltip-close")},a.createElement(Ie.z,{size:"s",view:"flat-secondary",onClick:async e=>{Q(),null===j||void 0===j||j(e)},extraProps:{"aria-label":"Close"}},a.createElement(we.J,{data:tt.Z,size:16})))));if(P)return te;const ne=()=>{$(),W||r||V.current?G.current=!0:Y()},re=()=>{!i||V.current||q.current?G.current=!1:(K(),X()),V.current=!1};return!d||"number"!==typeof d.top&&"number"!==typeof d.left||(0,Ce.O)('[Popover] Physical names (top, left) of "offset" property are deprecated. Use logical names (block, inline) instead.'),a.createElement("div",{ref:H,className:ni({disabled:r},b),onMouseEnter:o?ne:void 0,onMouseLeave:o?re:void 0,onFocus:o?ne:void 0,onBlur:o?re:void 0,style:{top:d.top,left:d.left,insetBlockStart:d.block,insetInlineStart:d.inline},"data-qa":A},a.createElement(ui,{closeTooltip:Q,openTooltip:Z,open:W,openOnHover:o,className:ni("handler"),disabled:r,onClick:I,closedManually:V},x),te)}));fi.displayName="Popover";var mi=n(54973);const gi=JSON.parse('{"label_clear-button":"Clear"}'),vi=JSON.parse('{"label_clear-button":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c"}'),yi=(0,mi.e)({en:gi,ru:vi},"".concat(le.A7,"clear-button")),bi=(0,le.Ge)("clear-button"),xi=e=>{switch(e){case"s":return"xs";case"m":return"s";case"l":return"m";case"xl":return"l";default:throw new Error('Unknown text input size "'.concat(e,'"'))}},wi=e=>{const{size:t,className:n,onClick:r}=e;return a.createElement(Ie.z,{size:t,className:bi(null,n),onClick:r,extraProps:{onMouseDown:e=>{e.preventDefault()},"aria-label":yi("label_clear-button")}},a.createElement(we.J,{data:tt.Z,size:16}))},Si=e=>"boolean"===typeof e?e?"on":"off":e,_i=e=>{const{error:t,errorMessage:n,errorPlacement:r,validationState:i}=e;let o,a;return"string"===typeof t&&(o=t),n&&(o=n),("invalid"===i||Boolean(t))&&(a="invalid"),{errorMessage:o,errorPlacement:r,validationState:a}},Ci=(0,le.Ge)("outer-additional-content"),Ei=e=>{let{errorMessage:t,note:n,noteId:r,errorMessageId:i}=e;return t||n?a.createElement("div",{className:Ci()},t&&a.createElement("div",{className:Ci("error"),id:i,"data-qa":"control-error-message-qa"},t),n&&a.createElement("div",{className:Ci("note"),id:r},n)):null},Ti=(0,le.Ge)("text-input"),Oi=a.forwardRef((function(e,t){let{placement:n,children:r,onClick:i}=e;return r?a.createElement("div",{ref:t,className:Ti("additional-content",{placement:n}),onClick:i},r):null})),Ni=(0,le.Ge)("text-input");function ki(e){const{controlProps:t,controlRef:n,type:r,name:i,id:o,tabIndex:s,autoComplete:l,placeholder:c,value:u,defaultValue:d,autoFocus:h,disabled:p,onChange:f,onFocus:m,onBlur:g,onKeyDown:v,onKeyUp:y,onKeyPress:b}=e;return a.createElement("input",Object.assign({},t,{ref:n,className:Ni("control",{type:"input"},t.className),type:r,name:i,id:o,tabIndex:s,placeholder:c,value:u,defaultValue:d,autoFocus:h,autoComplete:l,onChange:f,onFocus:m,onBlur:g,onKeyDown:v,onKeyUp:y,onKeyPress:b,disabled:null!==p&&void 0!==p?p:t.disabled}))}const ji=(0,le.Ge)("text-input"),Ii=a.forwardRef((function(e,t){const{view:n="normal",size:r="m",pin:i="round-round",name:o,value:s,defaultValue:l,label:c,disabled:u=!1,hasClear:d=!1,error:h,errorMessage:p,errorPlacement:f="outside",validationState:m,autoComplete:g,id:v,tabIndex:y,style:b,className:x,qa:w,controlProps:S,leftContent:_,rightContent:C,startContent:E=_,endContent:T=C,note:O,onUpdate:N,onChange:k}=e,{errorMessage:j,errorPlacement:I,validationState:P}=_i({error:h,errorMessage:p,errorPlacement:f,validationState:m}),[D,A]=_t(s,null!==l&&void 0!==l?l:"",N),R=a.useRef(null),M=Et(e.controlRef,R),L=a.useRef(null),F=a.useRef(null),z=(e=>"invalid"===e?"error":void 0)(P),B=Boolean(c),U="invalid"===P&&Boolean(j)&&"outside"===I,H="invalid"===P&&Boolean(j)&&"inside"===I,V=Boolean(d&&!u&&D),G=Boolean(E),W=Boolean(T),q=B&&!v&&!o&&"undefined"===typeof g,Z=ue(),Y=B?v||Z:v,K=Pt(B?L:null,r),Q=Pt(G?F:null,r),X=ue(),$=ue(),J=[null===S||void 0===S?void 0:S["aria-describedby"],O?$:void 0,U?X:void 0].filter(Boolean).join(" "),ee=Object.assign(Object.assign({},S),{style:Object.assign(Object.assign({},null===S||void 0===S?void 0:S.style),B&&K.width?{paddingInlineStart:"".concat(K.width,"px")}:{}),"aria-invalid":"invalid"===P||void 0,"aria-describedby":J||void 0}),te={id:Y,tabIndex:y,name:o,onChange(e){A(e.target.value),k&&k(e)},autoComplete:q?"off":Si(g),controlProps:ee},ne=e=>{var t,n;const r=!e.currentTarget.contains(document.activeElement)&&e.currentTarget.contains(e.target),i=Boolean(null===(t=document.getSelection())||void 0===t?void 0:t.toString());r&&!i&&(null===(n=R.current)||void 0===n||n.focus())};return a.createElement("span",{ref:t,style:b,className:ji({view:n,size:r,disabled:u,state:z,pin:"clear"===n?void 0:i,"has-clear":V,"has-start-content":G,"has-end-content":V||W},x),"data-qa":w},a.createElement("span",{className:ji("content")},G&&a.createElement(Oi,{ref:F,placement:"start",onClick:ne},E),B&&a.createElement("label",{ref:L,style:{insetInlineStart:G?Q.width:void 0,maxWidth:"calc(50% - ".concat(Q.width,"px)")},className:ji("label"),title:c,htmlFor:Y},"".concat(c)),a.createElement(ki,Object.assign({},e,te,{controlRef:M})),V&&a.createElement(wi,{size:xi(r),onClick:e=>{A("");const t=R.current;if(t){const n=Object.create(e);n.target=t,n.currentTarget=t,t.value="",k&&k(n)}},className:ji("clear",{size:r})}),W&&a.createElement(Oi,{placement:"end",onClick:ne},T),H&&a.createElement(fi,{content:j},a.createElement("span",{"data-qa":"control-error-icon-qa"},a.createElement(we.J,{data:St.Z,className:ji("error-icon"),size:"s"===r?12:16})))),a.createElement(Ei,{note:O,errorMessage:U?j:null,noteId:$,errorMessageId:X}))})),Pi=(0,le.Ge)("loader");function Di(e){let{size:t="s",className:n,qa:r}=e;return a.createElement("div",{className:Pi({size:t},n),"data-qa":r},a.createElement("div",{className:Pi("left")}),a.createElement("div",{className:Pi("center")}),a.createElement("div",{className:Pi("right")}))}var Ai=n(77796),Ri=n(5718);function Mi(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!==typeof document){var r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===n&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}var Li=n(5687),Fi=n(10288),zi={button_close:"Close"},Bi={button_close:"\u0417\u0430\u043a\u0440\u044b\u0442\u044c"};var Ui=(0,mi.e)({en:zi,ru:Bi},"".concat(Ri.N).concat("Title"));Mi(".gn-title{align-items:center;box-sizing:border-box;display:flex;justify-content:space-between;min-height:64px;padding:14px 10px 14px 20px}.gn-title_separator{border-bottom:1px solid var(--g-color-line-generic)}.gn-title__text{margin:0 20px 0 0}");const Hi=(0,Ri.b)("title"),Vi=e=>{let{children:t,closeIconSize:n=23,hasSeparator:r,closeTitle:i=Ui("button_close"),onClose:o}=e;return a.createElement("div",{className:Hi({separator:r})},a.createElement(Fi.x,{className:Hi("text"),as:"h3",variant:"subheader-3"},t),o&&a.createElement(Ie.z,{onClick:o,view:"flat",size:"l",extraProps:{"aria-label":i}},a.createElement(we.J,{data:tt.Z,size:n})))};function Gi(e){const t=a.useRef();return a.useEffect((()=>(t.current=e,()=>{t.current=void 0})),[e]),a.useCallback((function(){if("function"===typeof t.current)return t.current(...arguments)}),[])}function Wi(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function qi(e){const t=Wi(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").replace(/\s+/g,".*?");return Zi(e,"",new RegExp(t,"i"))}function Zi(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0;const r=[],i={};let o=!1,s=!1;return a.Children.forEach(e,(e=>{var l,c;if(a.isValidElement(e))if(e.type===a.Fragment){const{menu:o,pages:a}=Zi(e.props.children,t,n);r.push(...o),Object.assign(i,a)}else if(e.props.groupTitle){0;const a="".concat(t,"/").concat(null!==(l=e.props.id)&&void 0!==l?l:e.props.groupTitle);o=!0;const{menu:s,pages:c}=Zi(e.props.children,a,n);0,r.push({groupTitle:e.props.groupTitle,items:s}),Object.assign(i,c)}else{s=!0;const o="".concat(t,"/").concat(null!==(c=e.props.id)&&void 0!==c?c:e.props.title);0,i[o]=Yi(e.props.children,n),i[o].id=o,r.push({id:o,title:e.props.title,icon:e.props.icon,withBadge:i[o].withBadge,disabled:i[o].hidden})}})),{menu:r,pages:i}}function Yi(e,t){const n={id:"",sections:[],hidden:!0};return a.Children.forEach(e,(e=>{if(a.isValidElement(e))if(e.type===a.Fragment){const{sections:r,withBadge:i,hidden:o}=Yi(e.props.children,t);n.sections.push(...r),n.withBadge=i||n.withBadge,n.hidden=o&&n.hidden}else{const{withBadge:r,showTitle:i=!0}=e.props,{items:o,hidden:a}=Ki(e.props.children,t);n.withBadge=r||n.withBadge,n.hidden=a&&n.hidden,n.sections.push(Object.assign(Object.assign({},e.props),{withBadge:r,items:o,hidden:a,showTitle:i}))}})),n}function Ki(e,t){let n=!0;const r=[];return a.Children.forEach(e,(e=>{if(a.isValidElement(e))if(e.type===a.Fragment){const i=Ki(e.props.children,t);r.push(...i.items),n=n&&i.hidden}else{const i=Object.assign(Object.assign({},e.props),{element:e,hidden:!t.test(e.props.title)});r.push(i),n=n&&i.hidden}})),{items:r,hidden:n}}Vi.displayName="Title";const Qi=a.createContext({});function Xi(e,t){const n=a.useRef(null);return a.useMemo((()=>t?Object.assign({selectedRef:n},function(e,t){if(!t.settingId&&!t.section&&!t.page)return{};for(const n of Object.values(e)){if(!t.settingId&&!t.section){if(t.page!==n.id)continue;return{page:n}}for(const e of n.sections)if(t.settingId){for(const r of e.items)if(r.id===t.settingId)return{page:n,section:e,setting:r}}else if(t.section&&("id"in t.section?t.section.id===e.id:t.section.title===e.title))return{page:n,section:e}}return{}}(e,t)):{selectedRef:n}),[e,t])}Qi.displayName="SettingsSelectionContext";const $i=Qi.Provider;var Ji=function(e){return e};Mi('.gn-settings-menu__group-heading{display:inline-block;font-weight:var(--g-text-accent-font-weight);line-height:18px;margin-bottom:12px;padding:0 20px}.gn-settings-menu__group+.gn-settings-menu__group{margin-top:24px}.gn-settings-menu__item{align-items:center;color:var(--g-color-text-primary);cursor:pointer;display:flex;height:40px;padding:0 20px}.gn-settings-menu__item-icon{color:var(--g-color-text-misc);margin-right:5px}.gn-settings-menu__item:hover,.gn-settings-menu__item_focused{background:var(--g-color-base-simple-hover)}.gn-settings-menu__item_selected{background:var(--g-color-base-selection)}.gn-settings-menu__item_selected.gn-settings-menu__item_focused,.gn-settings-menu__item_selected:hover{background:var(--g-color-base-selection-hover)}.gn-settings-menu__item_disabled{color:var(--g-color-text-secondary);cursor:auto}.gn-settings-menu__item_disabled:hover{background:none}.gn-settings-menu__item_disabled .gn-settings-menu__item-icon{color:var(--g-color-base-misc-heavy)}.gn-settings-menu__item_badge{position:relative}.gn-settings-menu__item_badge:after{background-color:var(--g-color-text-danger);border-radius:50%;content:"";display:block;height:6px;position:absolute;right:9px;top:calc(50% - 3px);width:6px}');const eo=(0,Ri.b)("settings-menu"),to=a.forwardRef((function(e,t){let{items:n,onChange:r,activeItemId:i}=e;const[o,s]=a.useState(),l=a.useRef(null),c=Gi(r),u=function(e){const t=a.useRef(e);return t.current=e,a.useCallback((()=>t.current),[])}(o);return a.useImperativeHandle(t,(()=>({handleKeyDown(e){if(!l.current)return!1;const t=u();return t&&"Enter"===e.key?(c(t),!0):"ArrowDown"===e.key?(s(ro(l.current,t,1)),!0):"ArrowUp"===e.key&&(s(ro(l.current,t,-1)),!0)},clearFocus(){s(void 0)}})),[u,c]),a.createElement("div",{ref:l,className:eo()},n.map((e=>"groupTitle"in e?a.createElement("div",{key:e.groupTitle,className:eo("group")},a.createElement("span",{className:eo("group-heading")},e.groupTitle),e.items.map((e=>no(e,r,i,o)))):no(e,r,i,o))))}));function no(e,t,n,r){return a.createElement("span",{key:e.title,className:eo("item",{selected:n===e.id,disabled:e.disabled,focused:r===e.id,badge:e.withBadge}),onClick:()=>{e.disabled||t(e.id)},"data-id":e.id},e.icon?a.createElement(we.J,Object.assign({size:16},e.icon,{className:eo("item-icon")})):void 0,a.createElement("span",null,e.title))}function ro(e,t,n){var r;const i=e.querySelectorAll(".".concat(eo("item"),":not(.").concat(eo("item"),"_disabled)"));if(0===i.length)return;let o=n>0?-1:0;return t&&(o=Array.prototype.findIndex.call(i,(e=>e.getAttribute("data-id")===t))),o=(i.length+o+n)%i.length,null!==(r=i[o].getAttribute("data-id"))&&void 0!==r?r:void 0}Mi('.gn-settings-menu-mobile.g-tabs_direction_horizontal{-ms-overflow-style:none;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:none;scrollbar-width:none}.gn-settings-menu-mobile.g-tabs_direction_horizontal::-webkit-scrollbar{display:none}.gn-settings-menu-mobile__item_badge{position:relative}.gn-settings-menu-mobile__item_badge:after{background-color:var(--g-color-text-danger);border-radius:50%;content:"";display:block;height:6px;position:absolute;right:-8px;top:11px;width:6px}');const io=(0,Ri.b)("settings-menu-mobile"),oo=e=>{let{items:t,onChange:n,activeItemId:r,className:i}=e;const o=a.useRef(null),s=a.useMemo((()=>{const e=[];return t.forEach((t=>{if("groupTitle"in t)e.push(...t.items.map((e=>{let{id:t,title:n,disabled:r,withBadge:i}=e;return{id:t,title:n,disabled:r,className:io("item",{badge:i})}})));else{const{id:n,title:r,disabled:i,withBadge:o}=t;e.push({id:n,title:r,disabled:i,className:io("item",{badge:o})})}})),e}),[t]);return a.createElement("div",{ref:o,onTouchMove:e=>{e.stopPropagation()}},a.createElement(wt,{items:s,className:io(null,i),size:"l",activeTab:r,onSelectTab:n}))};var ao={label_title:"Settings","label_filter-placeholder":"Search settings","label_empty-placeholder":"No results found",label_search:"Search"},so={label_title:"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","label_filter-placeholder":"\u041d\u0430\u0439\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","label_empty-placeholder":"\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e",label_search:"\u041f\u043e\u0438\u0441\u043a"};var lo=(0,mi.e)({en:ao,ru:so},"".concat(Ri.N).concat("Settings"));const co=(0,Ri.b)("settings-search");function uo(e){let{className:t,initialValue:n,onChange:r,debounce:i=200,inputRef:o,inputSize:s,placeholder:l,autoFocus:c=!0}=e;const[u,d]=a.useState(null!==n&&void 0!==n?n:""),h=Gi((0,Li.d)(r,i)),p=Gi((e=>{d(e),h(e)}));return a.createElement("div",{className:co(null,t)},a.createElement(Ii,{value:u,controlRef:o,hasClear:!0,autoFocus:c,size:s,placeholder:l,onUpdate:p,controlProps:{"aria-label":lo("label_search")}}))}Mi('.gn-settings{display:grid;grid-template-columns:216px 1fr;height:100%;width:834px}.gn-settings_view_mobile{display:block;height:calc(80vh - 56px);overflow-x:hidden;width:auto}@supports (height:90dvh){.gn-settings_view_mobile{height:calc(90dvh - 56px)}}.gn-settings_view_mobile.gn-settings_loading{text-align:center}.gn-settings_view_mobile .gn-settings__loader{margin-top:20px}.gn-settings_view_mobile .gn-settings__search{margin:4px 0 16px;padding:0 20px}.gn-settings_view_mobile .gn-settings__page{overflow-y:visible}.gn-settings_view_mobile .gn-settings__tabs .g-tabs__item:first-child{margin-left:20px}.gn-settings_view_mobile .gn-settings__tabs .g-tabs__item:last-child{margin-right:20px}.gn-settings_view_mobile .gn-settings__section-heading{font-size:var(--g-text-subheader-3-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-3-line-height)}.gn-settings_view_mobile .gn-settings__section-subheader{color:var(--g-color-text-secondary)}.gn-settings_view_mobile .gn-settings__section-heading+.gn-settings-subheader{margin-top:8px}.gn-settings_view_mobile .gn-settings__section-item{margin-top:0}.gn-settings_view_mobile .gn-settings__section-heading+.gn-settings__section-item,.gn-settings_view_mobile .gn-settings__section-subheader+.gn-settings__section-item{margin-top:30px}.gn-settings_view_mobile .gn-settings__section-item+.gn-settings__section-item{margin-top:22px}.gn-settings_view_mobile .gn-settings__item:not(.gn-settings_view_mobile .gn-settings__item_mode_row){gap:8px;grid-template-columns:1fr}.gn-settings_view_mobile .gn-settings__item-heading{font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height)}.gn-settings_view_mobile .gn-settings__item-description{font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height)}.gn-settings_view_mobile .gn-settings__item_mode_row{grid-template-columns:1fr auto}.gn-settings_view_mobile .gn-settings__item_mode_row .gn-settings__item-heading{padding-right:20px}.gn-settings_view_mobile .gn-settings__item-content{width:100%}.gn-settings_view_mobile .gn-settings__not-found{color:var(--g-color-text-hint);font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);justify-items:start;line-height:var(--g-text-body-2-line-height);margin:20px 0 0 20px}.gn-settings_loading{grid-template-columns:auto}.gn-settings__loader{place-self:center}.gn-settings__not-found{display:grid;height:100%;place-items:center}.gn-settings__menu{border-right:1px solid var(--g-color-line-generic)}.gn-settings__heading{font-size:var(--g-text-subheader-2-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-2-line-height);margin:20px 20px 0}.gn-settings__search{margin:0 20px 16px}.gn-settings__page{overflow-y:auto}.gn-settings__content{padding:20px}.gn-settings__section-right-adornment_hidden{opacity:0;transition:opacity .2s}.gn-settings__section-heading:hover .gn-settings__section-right-adornment_hidden{opacity:1}.gn-settings__section-heading{font-size:var(--g-text-subheader-2-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-2-line-height);margin:0}.gn-settings__section-item{margin-top:24px}.gn-settings__section+.gn-settings__section{margin-top:32px}.gn-settings__item{display:grid;grid-template-columns:216px 1fr;justify-items:start}.gn-settings__item_align_top{align-items:start}.gn-settings__item_align_center{align-items:center}.gn-settings__item-title_badge{position:relative}.gn-settings__item-title_badge:after{background-color:var(--g-color-text-danger);border-radius:50%;content:"";display:block;height:6px;position:absolute;right:-8px;top:1px;width:6px}.gn-settings__item-description{color:var(--g-color-text-secondary);display:block;font-size:var(--g-text-caption-2-font-size);font-weight:var(--g-text-caption-font-weight);line-height:var(--g-text-caption-2-line-height);margin-top:2px;padding-right:20px}.gn-settings__item-right-adornment_hidden{opacity:0;transition:opacity .2s}.gn-settings__item:hover .gn-settings__item-right-adornment_hidden{opacity:1}.gn-settings__item_selected,.gn-settings__section_selected{background:var(--g-color-base-selection);border-radius:8px;margin-left:-8px;padding:8px}.gn-settings__found{background:var(--g-color-base-selection);font-weight:var(--g-text-accent-font-weight)}');const ho=(0,Ri.b)("settings"),po=a.createContext({}),fo=()=>a.useContext(po);function mo(e){var{loading:t,renderLoading:n,children:r,view:i="normal",renderRightAdornment:o,renderSectionRightAdornment:s,showRightAdornmentOnHover:l=!0}=e,c=Je(e,["loading","renderLoading","children","view","renderRightAdornment","renderSectionRightAdornment","showRightAdornmentOnHover"]);return t?a.createElement("div",{className:ho({loading:!0,view:i})},"function"===typeof n?n():a.createElement(Di,{className:ho("loader"),size:"m"})):a.createElement(po.Provider,{value:{renderRightAdornment:o,renderSectionRightAdornment:s,showRightAdornmentOnHover:l}},a.createElement(vo,Object.assign({view:i},c),r))}const go=(e,t)=>{for(const n of e)if("groupTitle"in n){for(const e of n.items)if(e.id===t)return e.title}else if(n.id===t)return n.title;return""};function vo(e){let{initialPage:t,initialSearch:n,selection:r,children:i,renderNotFound:o,title:s=lo("label_title"),filterPlaceholder:l=lo("label_filter-placeholder"),emptyPlaceholder:c=lo("label_empty-placeholder"),view:u,onPageChange:d,onClose:h}=e;var p,f;const{renderSectionRightAdornment:m,showRightAdornmentOnHover:g}=fo(),[v,y]=a.useState(null!==n&&void 0!==n?n:""),{menu:b,pages:x}=qi(i,v),w=Xi(x,r),S=Object.keys(x),_=w.page&&S.includes(w.page.id)?w.page.id:void 0,[C,E]=a.useState(_||(t&&S.includes(t)?t:void 0)),T=a.useRef(null),O=a.useRef(null),N="mobile"===u;a.useEffect((()=>{var e;null===(e=O.current)||void 0===e||e.clearFocus()}),[v]),a.useEffect((()=>{const e=()=>{var e;null===(e=O.current)||void 0===e||e.clearFocus()};return window.addEventListener("click",e),()=>{window.removeEventListener("click",e)}}),[]);let k=C;k&&!(null===(p=x[k])||void 0===p?void 0:p.hidden)||(k=null===(f=Object.values(x).find((e=>{let{hidden:t}=e;return!t})))||void 0===f?void 0:f.id);const j=e=>{E((t=>(t!==e&&(null===d||void 0===d||d(e)),e)))};a.useEffect((()=>{k!==C&&j(k)})),a.useEffect((()=>{_&&E(_)}),[_]),a.useEffect((()=>{var e;(null===(e=w.selectedRef)||void 0===e?void 0:e.current)&&w.selectedRef.current.scrollIntoView()}),[w.selectedRef]);const I=(e,t)=>{const n=function(e,t,n){var r;return!(!e.section||e.setting)&&(!(!e.section.id||e.section.id!==n.id)||!((null===(r=e.page)||void 0===r?void 0:r.id)!==t||!e.section.title||e.section.title!==n.title))}(w,e,t);return a.createElement("div",{key:t.title,className:ho("section",{selected:n}),ref:n?w.selectedRef:void 0},t.showTitle&&a.createElement("h3",{className:ho("section-heading")},m?a.createElement(Ai.k,{gap:2,alignItems:"center"},t.title,a.createElement("div",{className:ho("section-right-adornment",{hidden:g})},m(t))):t.title),t.header&&(N?a.createElement("div",{className:ho("section-subheader")},t.header):t.header),t.items.map((e=>e.hidden?null:(e=>{let{title:t,element:n}=e;return a.createElement("div",{key:t,className:ho("section-item")},a.cloneElement(n,Object.assign(Object.assign({},n.props),{highlightedTitle:v&&t?yo(t,v):t})))})(e))))};return a.createElement($i,{value:w},a.createElement("div",{className:ho({view:u})},N?a.createElement(a.Fragment,null,a.createElement(uo,{inputRef:T,className:ho("search"),initialValue:n,onChange:y,autoFocus:!1,inputSize:"xl"}),a.createElement(oo,{items:b,onChange:j,activeItemId:k,className:ho("tabs")})):a.createElement("div",{className:ho("menu"),onClick:()=>{T.current&&T.current.focus()},onKeyDown:e=>{O.current&&O.current.handleKeyDown(e)&&e.preventDefault()}},a.createElement(Vi,null,s),a.createElement(uo,{inputRef:T,className:ho("search"),initialValue:n,onChange:y,placeholder:l,autoFocus:!0}),a.createElement(to,{ref:O,items:b,onChange:j,activeItemId:k})),a.createElement("div",{className:ho("page")},(e=>{if(!e)return"function"===typeof o?o():a.createElement("div",{className:ho("not-found")},c);const t=x[e].sections.filter((e=>!e.hidden));return a.createElement(a.Fragment,null,!N&&a.createElement(Vi,{hasSeparator:!0,onClose:h},go(b,e)),a.createElement("div",{className:ho("content")},t.map((t=>I(e,t)))))})(k))))}function yo(e,t){let n=e.slice(0);const r=[],i=Wi(t).split(" ").filter(Boolean);let o=0;for(const s of i){const e=new RegExp(s,"ig").exec(n);if(e){const t=e[0],i=e.index;i>0&&r.push(n.slice(0,i)),r.push(a.createElement("strong",{key:o++,className:ho("found")},t)),n=n.slice(i+t.length)}}return n&&r.push(n),r}function bo(e){let{name:t,value:n,id:r,defaultChecked:i,checked:o,indeterminate:s,onUpdate:l,onChange:c,controlRef:u,controlProps:d,onFocus:h,onBlur:p,disabled:f}=e;const m=a.useRef(null),[g,v]=_t(o,null!==i&&void 0!==i&&i,l),y=!s&&o,b=s?"mixed":g,x=Et(u,m);a.useLayoutEffect((()=>{m.current&&(m.current.indeterminate=Boolean(s))}),[s]);const w=a.useCallback((e=>{Yr.P.publish({componentId:"Checkbox",eventId:"click",domEvent:e,meta:{checked:e.target.checked}})}),[]);return{checked:g,inputProps:Object.assign(Object.assign({},d),{name:t,value:n,id:r,onFocus:h,onBlur:p,disabled:f,type:"checkbox",onChange:e=>{v(e.target.checked),c&&c(e)},onClickCapture:w,defaultChecked:i,checked:y,"aria-checked":b,ref:x})}}mo.Group=function(e){let{children:t}=e;return a.createElement(a.Fragment,null,t)},mo.Page=function(e){let{children:t}=e;return a.createElement(a.Fragment,null,t)},mo.Section=function(e){let{children:t}=e;return a.createElement(a.Fragment,null,t)},mo.Item=function(e){const{id:t,labelId:n,highlightedTitle:r,children:i,align:o="center",withBadge:s,renderTitleComponent:l=Ji,mode:c,description:u}=e,d=a.useContext(Qi),h=d.setting&&d.setting.id===t,{renderRightAdornment:p,showRightAdornmentOnHover:f}=fo(),m=a.createElement("span",{className:ho("item-title",{badge:s})},l(r));return a.createElement("div",{className:ho("item",{align:o,mode:c,selected:h}),ref:h?d.selectedRef:void 0},a.createElement("label",{className:ho("item-heading"),id:n},p?a.createElement(Ai.k,{className:ho("item-title-wrapper"),gap:3},m,a.createElement("div",{className:ho("item-right-adornment",{hidden:f})},p(e))):m,u?a.createElement("span",{className:ho("item-description")},u):null),a.createElement("div",{className:ho("item-content")},i))};const xo=(0,le.Ge)("control-label"),wo=a.forwardRef(((e,t)=>{let{children:n,className:r,labelClassName:i,title:o,style:s,disabled:l=!1,control:c,size:u="m",qa:d}=e;const h=a.cloneElement(c,{className:xo("indicator",c.props.className)});return a.createElement("label",{ref:t,title:o,style:s,className:xo({size:u,disabled:l},r),"data-qa":d},h,n?a.createElement("span",{className:xo("text",i)},n):null)}));wo.displayName="ControlLabel";const So=(0,le.Ge)("switch"),_o=a.forwardRef((function(e,t){const{size:n="m",disabled:r=!1,content:i,children:o,title:s,style:l,className:c,qa:u}=e,{checked:d,inputProps:h}=bo(Object.assign(Object.assign({},e),{controlProps:Object.assign(Object.assign({},e.controlProps),{role:"switch"})})),p=i||o,f=a.createElement("span",{className:So("indicator")},a.createElement("input",Object.assign({},h,{className:So("control")})),a.createElement("span",{className:So("outline")}),a.createElement("span",{className:So("slider")}));return a.createElement(wo,{ref:t,title:s,style:l,size:n,disabled:r,className:So({size:n,disabled:r,checked:d},c),labelClassName:So("text"),qa:u,control:f},p)}));const Co=(0,le.Ge)("radio-button"),Eo=a.forwardRef((function(e,t){const{disabled:n=!1,content:r,children:i,title:o}=e,{checked:s,inputProps:l}=function(e){let{name:t,value:n,checked:r,defaultChecked:i,disabled:o,controlRef:s,controlProps:l,onUpdate:c,onChange:u,onFocus:d,onBlur:h,id:p}=e;const f=ue(),m=a.useRef(null),[g,v]=a.useState(null!==i&&void 0!==i&&i),y="boolean"===typeof r,b=y?r:g,x=Et(s,m);return{checked:b,inputProps:Object.assign(Object.assign({},l),{name:t||f,value:n,id:p,onFocus:d,onBlur:h,disabled:o,type:"radio",onChange:e=>{y||v(e.target.checked),u&&u(e),c&&c(e.target.checked)},onChangeCapture:e=>{Yr.P.publish({componentId:"Radio",eventId:"click",domEvent:e})},checked:r,defaultChecked:i,"aria-checked":b,ref:x})}}(e),c=r||i,u=(0,ce.y)(c);return a.createElement("label",{className:Co("option",{disabled:n,checked:s}),ref:t,title:o},a.createElement("input",Object.assign({},l,{className:Co("option-control")})),a.createElement("span",{className:Co("option-outline")}),c&&a.createElement("span",{className:Co("option-text",{icon:u})},c))})),To=(0,le.Ge)("radio-button"),Oo=a.forwardRef((function(e,t){const{size:n="m",width:r,style:i,className:o,qa:s,children:l}=e;let c=e.options;c||(c=a.Children.toArray(l).map((e=>{let{props:t}=e;return{value:t.value,content:t.content||t.children,disabled:t.disabled,title:t.title}})));const u=a.useRef(null),d=a.useRef(),h=a.useCallback((e=>{if(!e)return;const t=u.current;if(!t)return;const n=d.current;if(n&&n!==e){const r=e=>{t.style.left="".concat(e.offsetLeft,"px"),t.style.width="".concat(e.offsetWidth,"px")};r(n),t.hidden=!1,r(e)}d.current=e}),[]),p=a.useCallback((e=>{e.currentTarget.hidden=!0}),[]),{containerProps:f,optionsProps:m}=function(e){var t,n;const{name:r,value:i,defaultValue:o,options:s=[],disabled:l,onUpdate:c,onChange:u,onFocus:d,onBlur:h}=e,p=ue(),[f,m]=a.useState(null!==o&&void 0!==o?o:null===(n=null===(t=s[0])||void 0===t?void 0:t.value)||void 0===n?void 0:n.toString()),g="undefined"!==typeof i,v=g?i:f,y=a.useCallback((e=>{g||m(e.target.value),u&&u(e),c&&c(e.target.value)}),[g,c,u]);return{containerProps:{role:"radiogroup","aria-disabled":l,"aria-label":e["aria-label"],"aria-labelledby":e["aria-labelledby"]},optionsProps:s.map((e=>({name:r||p,value:e.value,content:e.content,title:e.title,checked:v===String(e.value),disabled:l||e.disabled,onChange:y,onFocus:d,onBlur:h})))}}(Object.assign(Object.assign({},e),{options:c}));return a.createElement("div",Object.assign({},f,{ref:t,style:i,className:To({size:n,width:r},o),"data-qa":s}),a.createElement("div",{ref:u,className:To("plate"),onTransitionEnd:p,hidden:!0}),m.map((e=>a.createElement(Eo,Object.assign({},e,{key:e.value,ref:e.checked?h:void 0})))))}));Oo.Option=Eo;const No=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 13.5a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11ZM8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14ZM6.44 4.54c.43-.354.994-.565 1.56-.565 1.217 0 2.34.82 2.34 2.14 0 .377-.079.745-.298 1.1-.208.339-.513.614-.875.867-.217.153-.326.257-.379.328-.038.052-.038.07-.038.089a.75.75 0 0 1-1.5 0c0-.794.544-1.286 1.057-1.645.28-.196.4-.332.458-.426a.543.543 0 0 0 .074-.312c0-.3-.243-.641-.839-.641a.997.997 0 0 0-.608.223c-.167.138-.231.287-.231.418a.75.75 0 1 1-1.5 0c0-.674.345-1.22.78-1.577ZM8 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z",clipRule:"evenodd"})),ko=((0,Re.withNaming)({e:"__",m:"_",v:"_"}),(0,Re.withNaming)({n:"gc-",e:"__",m:"_",v:"_"})("help-popover")),jo=16;function Io(e){var t;return a.createElement(fi,Object.assign({},e,{className:ko(null,e.className)}),a.createElement("button",Object.assign({ref:e.buttonRef,type:"button"},e.buttonProps,{className:ko("button",null===(t=e.buttonProps)||void 0===t?void 0:t.className)}),a.createElement(we.J,{data:No,size:jo})))}const Po=e=>{let{text:t,popoverContent:n,className:r,contentClassName:i}=e;return(0,Le.jsxs)("div",{className:r,children:[t,"\xa0",(0,Le.jsx)(Io,{content:n,contentClassName:i})]})},Do=ae.v9,Ao=ae.I0;var Ro=n(80839);const Mo=(e,t)=>{const n=Ao();return[Do((n=>{var r;return null!==(r=(0,Ro.Cx)(n,e))&&void 0!==r?r:t})),a.useCallback((t=>{n((0,Ro.xI)(e,t))}),[n,e])]};var Lo=n(52317);const Fo=()=>Mo(Lo.Wm);var zo=n(81413);const Bo=(e,t)=>{let{sortValue:n,sortOrder:r=zo.hr}=e;return[a.useMemo((()=>{if(n)return{columnId:n,order:r}}),[n,r]),e=>{const n=Array.isArray(e)?e[0]:e;t({sortValue:null===n||void 0===n?void 0:n.columnId,sortOrder:null===n||void 0===n?void 0:n.order})}]};var Uo=n(51721),Ho=n(50134),Vo=n.n(Ho),Go=n(91668),Wo=n(35731),qo=n(87462),Zo=n(85528),Yo=n.n(Zo),Ko=(n(99898),n(63366)),Qo=n(15170),Xo=n.n(Qo),$o=1073741823,Jo="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:{};var ea=a.createContext||function(e,t){var n,r,i="__create-react-context-"+function(){var e="__global_unique_id__";return Jo[e]=(Jo[e]||0)+1}()+"__",o=function(e){function n(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return(t=e.call.apply(e,[this].concat(r))||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,r){e=n,t.forEach((function(t){return t(e,r)}))}}}(t.props.value),t}(0,Uo.Z)(n,e);var r=n.prototype;return r.getChildContext=function(){var e;return(e={})[i]=this.emitter,e},r.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,i=e.value;!function(e,t){return e===t?0!==e||1/e===1/t:e!==e&&t!==t}(r,i)?(n="function"===typeof t?t(r,i):$o,0!==(n|=0)&&this.emitter.set(e.value,n)):n=0}},r.render=function(){return this.props.children},n}(a.Component);o.childContextTypes=((n={})[i]=Vo().object.isRequired,n);var s=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!==((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,Uo.Z)(n,t);var r=n.prototype;return r.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=void 0===t||null===t?$o:t},r.componentDidMount=function(){this.context[i]&&this.context[i].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=void 0===e||null===e?$o:e},r.componentWillUnmount=function(){this.context[i]&&this.context[i].off(this.onUpdate)},r.getValue=function(){return this.context[i]?this.context[i].get():e},r.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return s.contextTypes=((r={})[i]=Vo().object,r),{Provider:o,Consumer:s}},ta=function(e){var t=ea();return t.displayName=e,t},na=ta("Router-History"),ra=ta("Router"),ia=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,Uo.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(ra.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(na.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;var oa=function(e){function t(){return e.apply(this,arguments)||this}(0,Uo.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}(a.Component);var aa={},sa=1e4,la=0;function ca(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(aa[e])return aa[e];var t=Yo().compile(e);return la<sa&&(aa[e]=t,la++),t}(e)(t,{pretty:!0})}function ua(e){var t=e.computedMatch,n=e.to,r=e.push,i=void 0!==r&&r;return a.createElement(ra.Consumer,null,(function(e){e||(0,Wo.Z)(!1);var r=e.history,o=e.staticContext,s=i?r.push:r.replace,l=(0,Go.ob)(t?"string"===typeof n?ca(n,t.params):(0,qo.Z)({},n,{pathname:ca(n.pathname,t.params)}):n);return o?(s(l),null):a.createElement(oa,{onMount:function(){s(l)},onUpdate:function(e,t){var n=(0,Go.ob)(t.to);(0,Go.Hp)(n,(0,qo.Z)({},l,{key:n.key}))||s(l)},to:n})}))}var da={},ha=1e4,pa=0;function fa(e,t){void 0===t&&(t={}),("string"===typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,i=n.exact,o=void 0!==i&&i,a=n.strict,s=void 0!==a&&a,l=n.sensitive,c=void 0!==l&&l;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=da[n]||(da[n]={});if(r[e])return r[e];var i=[],o={regexp:Yo()(e,i,t),keys:i};return pa<ha&&(r[e]=o,pa++),o}(n,{end:o,strict:s,sensitive:c}),i=r.regexp,a=r.keys,l=i.exec(e);if(!l)return null;var u=l[0],d=l.slice(1),h=e===u;return o&&!h?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:h,params:a.reduce((function(e,t,n){return e[t.name]=d[n],e}),{})}}),null)}var ma=function(e){function t(){return e.apply(this,arguments)||this}return(0,Uo.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(ra.Consumer,null,(function(t){t||(0,Wo.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?fa(n.pathname,e.props):t.match,i=(0,qo.Z)({},t,{location:n,match:r}),o=e.props,s=o.children,l=o.component,c=o.render;return Array.isArray(s)&&function(e){return 0===a.Children.count(e)}(s)&&(s=null),a.createElement(ra.Provider,{value:i},i.match?s?"function"===typeof s?s(i):s:l?a.createElement(l,i):c?c(i):null:"function"===typeof s?s(i):null)}))},t}(a.Component);function ga(e){return"/"===e.charAt(0)?e:"/"+e}function va(e,t){if(!e)return t;var n=ga(e);return 0!==t.pathname.indexOf(n)?t:(0,qo.Z)({},t,{pathname:t.pathname.substr(n.length)})}function ya(e){return"string"===typeof e?e:(0,Go.Ep)(e)}function ba(e){return function(){(0,Wo.Z)(!1)}}function xa(){}a.Component;var wa=function(e){function t(){return e.apply(this,arguments)||this}return(0,Uo.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(ra.Consumer,null,(function(t){t||(0,Wo.Z)(!1);var n,r,i=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var o=e.props.path||e.props.from;r=o?fa(i.pathname,(0,qo.Z)({},e.props,{path:o})):t.match}})),r?a.cloneElement(n,{location:i,computedMatch:r}):null}))},t}(a.Component);var Sa=a.useContext;function _a(){return Sa(na)}function Ca(){return Sa(ra).location}function Ea(e){var t=Ca(),n=Sa(ra).match;return e?fa(t.pathname,e):n}var Ta=n(54665);const Oa=()=>{const e=Ca();return(0,Ta.mB)(e)};var Na=n(51688);let ka;!function(e){e.v1="v1",e.v2="v2"}(ka||(ka={}));const ja=e=>{let{type:t="switch",settingKey:n,title:r,description:i,helpPopoverContent:o,options:a,defaultValue:s,onValueUpdate:l}=e;const[c,u]=Mo(n,s),d=e=>{u(e),null===l||void 0===l||l()};return(0,Le.jsx)(mo.Item,{title:r,highlightedTitle:r,description:i,renderTitleComponent:e=>o?(0,Le.jsx)(Po,{className:$a("item-with-popup"),contentClassName:$a("popup"),text:e,popoverContent:o}):e,children:(e=>{switch(e){case"switch":return(0,Le.jsx)(_o,{checked:Boolean(c),onUpdate:d});case"radio":return a?(0,Le.jsx)(Oo,{value:String(c),onUpdate:d,children:a.map((e=>{let{value:t,content:n}=e;return(0,Le.jsx)(Oo.Option,{value:t,children:n},t)}))}):null;default:return null}})(t)})},Ia=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",d:"M6.886.773C7.29-.231 8.71-.231 9.114.773l1.472 3.667 3.943.268c1.08.073 1.518 1.424.688 2.118L12.185 9.36l.964 3.832c.264 1.05-.886 1.884-1.802 1.31L8 12.4l-3.347 2.101c-.916.575-2.066-.26-1.802-1.309l.964-3.832L.783 6.826c-.83-.694-.391-2.045.688-2.118l3.943-.268L6.886.773Z"})),Pa=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M11.494 13.2c.837-.482 1.006-.946 1.006-1.2 0-.35-.105-.692-.303-.981L9.072 6.435a1.854 1.854 0 0 1-.322-1.044V2.909C8.518 2.968 8.265 3 8 3s-.518-.032-.75-.09v2.48c0 .373-.112.737-.322 1.045L3.803 11.02c-.198.289-.303.63-.303.981 0 .254.169.718 1.006 1.2.813.468 2.043.8 3.494.8s2.68-.332 3.494-.8ZM8 .5c2 0 2.25 1 2.25 1.5v3.39c0 .072.021.141.062.2l3.125 4.584c.367.538.563 1.175.563 1.826 0 2-2.686 3.5-6 3.5S2 14 2 12c0-.652.196-1.288.563-1.826L5.69 5.59a.354.354 0 0 0 .061-.2V2C5.75 1.5 6 .5 8 .5Zm.084 7.626a.75.75 0 0 1 1.04.208l1.5 2.25a.75.75 0 1 1-1.248.832l-1.5-2.25a.75.75 0 0 1 .208-1.04Z",clipRule:"evenodd"})),Da=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M6.169 6.331a3 3 0 0 0-.833 1.6l-.338 1.912a1 1 0 0 0 1.159 1.159l1.912-.338a3 3 0 0 0 1.6-.833l3.07-3.07 2-2A.894.894 0 0 0 15 4.13 3.13 3.13 0 0 0 11.87 1a.894.894 0 0 0-.632.262l-2 2-3.07 3.07Zm3.936-1.814L7.229 7.392a1.5 1.5 0 0 0-.416.8L6.6 9.4l1.208-.213.057-.01a1.5 1.5 0 0 0 .743-.406l2.875-2.876a1.63 1.63 0 0 0-1.378-1.378Zm2.558.199a3.143 3.143 0 0 0-1.379-1.38l.82-.82a1.63 1.63 0 0 1 1.38 1.38l-.82.82ZM8 2.25a.75.75 0 0 0-.75-.75H4.5a3 3 0 0 0-3 3v7a3 3 0 0 0 3 3h7a3 3 0 0 0 3-3V8.75a.75.75 0 0 0-1.5 0v2.75a1.5 1.5 0 0 1-1.5 1.5h-7A1.5 1.5 0 0 1 3 11.5v-7A1.5 1.5 0 0 1 4.5 3h2.75A.75.75 0 0 0 8 2.25Z",clipRule:"evenodd"}));function Aa(e){let{children:t,mode:n}=e;return Do((e=>"single"===n?e.singleClusterMode:!e.singleClusterMode))?(0,Le.jsx)(a.Fragment,{children:t}):null}const Ra=JSON.parse('{"page.general":"General","section.appearance":"Appearance","page.experiments":"Experiments","section.experiments":"Experiments","page.editor":"Editor","section.dev-setting":"Development settings","settings.editor.autocomplete.title":"Enable autocomplete","settings.editor.autocomplete.description":"You\u2019re always able to get suggestions by pressing Ctrl+Space.","settings.editor.autocomplete-on-enter.title":"Accept suggestion on Enter","settings.editor.autocomplete-on-enter.description":"Controls whether suggestions should be accepted on Enter, in addition to Tab. Helps to avoid ambiguity between inserting new lines or accepting suggestions.","settings.theme.title":"Interface theme","settings.theme.option-dark":"Dark","settings.theme.option-light":"Light","settings.theme.option-system":"System","settings.language.title":"Interface language","settings.language.option-russian":"Russian","settings.language.option-english":"English","settings.binaryDataInPlainTextDisplay.title":"Display binary data in plain text","settings.binaryDataInPlainTextDisplay.description":"Available starting from version 24.1","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 could return incorrect data on some versions","settings.useVirtualTables.title":"Use table with data load on scroll for Nodes and Storage tabs","settings.useVirtualTables.popover":"It will increase performance, but could work unstable","settings.queryUseMultiSchema.title":"Allow queries with multiple result sets","settings.queryUseMultiSchema.popover":"Use \'multi\' schema for queries that enables queries with multiple result sets. Returns nothing on versions 23-3 and older"}'),Ma=(0,We.wZ)("ydb-user-settings",{en:Ra}),La=[{value:"system",content:Ma("settings.theme.option-system")},{value:"light",content:Ma("settings.theme.option-light")},{value:"dark",content:Ma("settings.theme.option-dark")}],Fa={settingKey:Lo.bw,title:Ma("settings.theme.title"),type:"radio",options:La},za=(We.Uo.Ru,Ma("settings.language.option-russian"),We.Uo.En,Ma("settings.language.option-english"),Lo.Px,Ma("settings.language.title"),We.Fp,{settingKey:Lo.N1,title:Ma("settings.binaryDataInPlainTextDisplay.title"),description:(0,Le.jsx)(Aa,{mode:"multi",children:Ma("settings.binaryDataInPlainTextDisplay.description")})}),Ba={settingKey:Lo.yT,title:Ma("settings.invertedDisks.title")},Ua={settingKey:Lo.UF,title:Ma("settings.useNodesEndpoint.title"),helpPopoverContent:Ma("settings.useNodesEndpoint.popover")},Ha={settingKey:Lo.ET,title:Ma("settings.useVirtualTables.title"),helpPopoverContent:Ma("settings.useVirtualTables.popover")},Va={settingKey:Lo.Rq,title:Ma("settings.queryUseMultiSchema.title"),helpPopoverContent:Ma("settings.queryUseMultiSchema.popover")},Ga={settingKey:Lo.y6,title:Ma("settings.editor.autocomplete.title"),description:Ma("settings.editor.autocomplete.description")},Wa={settingKey:Lo.XX,title:Ma("settings.editor.autocomplete-on-enter.title"),description:Ma("settings.editor.autocomplete-on-enter.description")},qa={id:"appearanceSection",title:Ma("section.appearance"),settings:[Fa,Ba,za]},Za={id:"experimentsSection",title:Ma("section.experiments"),settings:[Ua,Ha,Va]},Ya={id:"devSettingsSection",title:Ma("section.dev-setting"),settings:[Ga,Wa]},Ka={id:"generalPage",title:Ma("page.general"),icon:{data:Ia,height:14,width:14},sections:[qa]},Qa={id:"experimentsPage",title:Ma("page.experiments"),icon:{data:Pa},sections:[Za]},Xa=[Ka,{id:"editorPage",title:Ma("page.editor"),icon:{data:Da},sections:[Ya]},Qa],$a=Me("ydb-user-settings"),Ja=e=>{let{settings:t=Xa}=e;return(0,Le.jsx)(mo,{children:t.map((e=>{const{id:t,title:n,icon:r,sections:i=[]}=e;return(0,Le.jsx)(mo.Page,{id:t,title:n,icon:r,children:i.map((e=>{const{title:n,settings:r=[]}=e;return(0,Le.jsx)(mo.Section,{title:n,children:r.map((e=>(0,Le.jsx)(ja,{...e},e.settingKey)))},t)}))},t)}))})},es=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M14.78 7.47a.75.75 0 0 1 0 1.06l-2.5 2.5a.75.75 0 1 1-1.06-1.06l1.22-1.22H4.75a.75.75 0 0 1 0-1.5h7.69l-1.22-1.22a.75.75 0 0 1 1.06-1.06l2.5 2.5ZM9.5 4.25a.75.75 0 0 1-1.5 0V4a1.5 1.5 0 0 0-1.5-1.5H4A1.5 1.5 0 0 0 2.5 4v8A1.5 1.5 0 0 0 4 13.5h2.5A1.5 1.5 0 0 0 8 12v-.25a.75.75 0 0 1 1.5 0V12a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3h2.5a3 3 0 0 1 3 3v.25Z",clipRule:"evenodd"})),ts=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M11.78 7.47a.75.75 0 0 1 0 1.06l-2.5 2.5a.75.75 0 1 1-1.06-1.06l1.22-1.22H1.75a.75.75 0 0 1 0-1.5h7.69L8.22 6.03a.75.75 0 0 1 1.06-1.06l2.5 2.5ZM4 11.75a.75.75 0 0 1 1.5 0V12A1.5 1.5 0 0 0 7 13.5h5a1.5 1.5 0 0 0 1.5-1.5V4A1.5 1.5 0 0 0 12 2.5H7A1.5 1.5 0 0 0 5.5 4v.25a.75.75 0 0 1-1.5 0V4a3 3 0 0 1 3-3h5a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3v-.25Z",clipRule:"evenodd"}));var ns=n(14146);const rs=JSON.parse('{"pages.query":"Query","pages.diagnostics":"Diagnostics","navigation-item.documentation":"Documentation","navigation-item.settings":"Settings","navigation-item.account":"Account","account.user":"YDB User","account.login":"Login","account.logout":"Logout"}'),is=JSON.parse('{"pages.query":"\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432","pages.diagnostics":"\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430","navigation-item.documentation":"\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f","navigation-item.settings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","navigation-item.account":"\u0410\u043a\u043a\u0430\u0443\u043d\u0442","account.user":"\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c YDB","account.login":"\u0412\u043e\u0439\u0442\u0438","account.logout":"\u0412\u044b\u0439\u0442\u0438"}'),os=(0,We.wZ)("ydb-aside-navigation",{ru:is,en:rs}),as=Me("kv-ydb-internal-user");function ss(){const{user:e}=Do((e=>e.authentication)),t=_a(),n=Ao();return(0,Le.jsxs)("div",{className:as(),children:[(0,Le.jsxs)("div",{className:as("user-info-wrapper"),children:[(0,Le.jsx)("div",{className:as("ydb-internal-user-title"),children:os("account.user")}),e&&(0,Le.jsx)("div",{className:as("username"),children:e})]}),e?(0,Le.jsx)(Ie.z,{view:"flat-secondary",title:os("account.logout"),onClick:()=>{n(ns.kS)},children:(0,Le.jsx)(we.J,{data:es})}):(0,Le.jsx)(Ie.z,{view:"flat-secondary",title:os("account.login"),onClick:()=>{t.push((0,Ta.ax)(Ta.ZP.auth,void 0,{returnUrl:encodeURIComponent(location.href)}))},children:(0,Le.jsx)(we.J,{data:ts})})]})}const ls=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M12 3.5H4A1.5 1.5 0 0 0 2.5 5v6A1.5 1.5 0 0 0 4 12.5h8a1.5 1.5 0 0 0 1.5-1.5V5A1.5 1.5 0 0 0 12 3.5ZM4 2a3 3 0 0 0-3 3v6a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V5a3 3 0 0 0-3-3H4Zm.47 8.53a.75.75 0 0 1 0-1.06L5.94 8 4.47 6.53a.75.75 0 0 1 1.06-1.06l2 2a.75.75 0 0 1 0 1.06l-2 2a.75.75 0 0 1-1.06 0ZM8.75 9.5a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5h-2.5Z",clipRule:"evenodd"})),cs=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("g",{clipPath:"url(#a)"},a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M9.235 1a.75.75 0 0 1 .74.56l2.034 7.726 1.09-1.908A.75.75 0 0 1 13.75 7h1.5a.75.75 0 0 1 0 1.5h-1.065l-1.784 3.122a.75.75 0 0 1-1.376-.181l-1.71-6.496-2.083 9.466a.75.75 0 0 1-1.446.07L3.544 7.55l-.65 1.085A.75.75 0 0 1 2.25 9H.75a.75.75 0 1 1 0-1.5h1.075l1.282-2.136a.75.75 0 0 1 1.357.155l1.898 5.868 2.156-9.798A.75.75 0 0 1 9.235 1Z",clipRule:"evenodd"})),a.createElement("defs",null,a.createElement("clipPath",{id:"a"},a.createElement("path",{fill:"currentColor",d:"M0 0h16v16H0z"}))));var us=n(24015);const ds={summaryTab:"summaryTab",queryTab:"queryTab",diagnosticsTab:"diagnosticsTab",metricsTab:"metricsTab"},hs=[{id:us.uw.overview,title:"Overview"},{id:us.uw.acl,title:"ACL"}],ps=[{id:us.uw.schema,title:"Schema"}],fs=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,Ta.ax)(Ta.ZP.tenant,void 0,e)};function ms(e){let{children:t,userSettings:n}=e;const r=Be("AsideNavigation"),i=function(){const e=Ca(),t=_a(),[,n]=Mo(Lo.pf),{tenantPage:r}=Do((e=>e.tenant)),{pathname:i}=e,o=(0,Ta.mB)(e),s=i===Ta.ZP.tenant;return a.useMemo((()=>s?[{id:us.m2.query,title:os("pages.query"),icon:ls,iconSize:20,location:fs({...o,[us.bS]:us.m2.query})},{id:us.m2.diagnostics,title:os("pages.diagnostics"),icon:cs,iconSize:20,location:fs({...o,[us.bS]:us.m2.diagnostics})}].map((e=>{const i=e.id===r;return{id:e.id,title:e.title,icon:e.icon,iconSize:e.iconSize,current:i,onItemClick:()=>{n(e.id),t.push(e.location)}}})):[]),[r,s,n,t,o])}();return(0,Le.jsx)(r,{settings:(0,Le.jsx)(Ja,{settings:n}),menuItems:i,ydbInternalUser:(0,Le.jsx)(ss,{}),content:t})}const gs={top:0,right:0,bottom:0,left:0};var vs=n(3027),ys=n(83326),bs=n.n(ys);const xs=Me("info-viewer"),ws=e=>{let{title:t,info:n,dots:r=!0,size:i,className:o,multilineLabels:s,renderEmptyState:l}=e;return n&&n.length||!l?(0,Le.jsxs)("div",{className:xs({size:i},o),children:[t&&(0,Le.jsx)("div",{className:xs("title"),children:t}),n&&n.length>0?(0,Le.jsx)("div",{className:xs("items"),children:n.map(((e,t)=>(0,Le.jsxs)("div",{className:xs("row"),children:[(0,Le.jsxs)("div",{className:xs("label"),children:[(0,Le.jsx)("div",{className:xs("label-text",{multiline:s}),children:e.label}),r&&(0,Le.jsx)("div",{className:xs("dots")})]}),(0,Le.jsx)("div",{className:xs("value"),children:e.value})]},t)))}):(0,Le.jsxs)(a.Fragment,{children:["No ",t," data"]})]}):(0,Le.jsx)(a.Fragment,{children:l({title:t,size:i})})},Ss=ws;function _s(e,t){var n;return null!==(n=t[e])&&void 0!==n?n:e}function Cs(e,t,n,r){const i=n[e]||r;return i?i(t):t}function Es(e){let{values:t,labels:n,defaultValueFormatter:r}=e;return(e,i)=>({label:_s(e,n||{}),value:Cs(e,i,t||{},r)})}const Ts=(e,t)=>t?Object.entries(t).map((t=>{let[n,r]=t;return e(n,r)})).filter((e=>{let{value:t}=e;return Boolean(t)})):[],Os=Me("ydb-node-endpoints-tooltip-content"),Ns=e=>{let{data:t}=e;const 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((e=>{let{Name:t,Address:r}=e;t&&r&&n.push({label:t,value:r})})),(0,Le.jsx)(Ss,{className:Os(null),info:n,dots:!1,size:"s"})};var ks=n(4119);const js=Es({values:{ChangeTime:e=>(0,ks.fG)(e)},labels:{TabletId:"Tablet"},defaultValueFormatter:e=>e&&String(e)}),Is=e=>{let{data:t={},className:n}=e;const{TabletId:r,NodeId:i,State:o,Type:a,ChangeTime:s,Generation:l}=t,c=Ts(js,{TabletId:r,NodeId:i,State:o,Type:a,ChangeTime:s,Generation:l});return(0,Le.jsx)(Ss,{className:n,info:c,dots:!1,size:"s"})},Ps=Es({values:{Usage:e=>e&&"".concat((100*Number(e)).toFixed(2)," %")},labels:{Name:"Pool"},defaultValueFormatter:e=>e&&String(e)}),Ds=e=>{let{data:t={},className:n}=e;const r=Ts(Ps,t);return(0,Le.jsx)(Ss,{className:n,info:r,dots:!1,size:"s"})},As=Me("node-tootltip"),Rs=e=>{const{data:t}=e;return t&&(0,Le.jsx)("div",{className:As(),children:(0,Le.jsx)("table",{children:(0,Le.jsxs)("tbody",{children:[(0,Le.jsxs)("tr",{children:[(0,Le.jsx)("td",{className:As("label"),children:"ID"}),(0,Le.jsx)("td",{className:As("value"),children:t.nodeId||"?"})]}),(0,Le.jsxs)("tr",{children:[(0,Le.jsx)("td",{className:As("label"),children:"Rack"}),(0,Le.jsx)("td",{className:As("value"),children:t.rack||"?"})]}),t.connected&&t.capacity?(0,Le.jsxs)("tr",{children:[(0,Le.jsx)("td",{className:As("label"),children:"Net"}),(0,Le.jsx)("td",{className:As("value"),children:"".concat(t.connected," / ").concat(t.capacity)})]}):null]})})})},Ms=Me("tabletsOverall-tooltip"),Ls=e=>{const{data:t}=e;return t&&(0,Le.jsx)("div",{className:Ms(),children:(0,Le.jsx)("table",{children:(0,Le.jsx)("tbody",{children:t.map(((e,t)=>(0,Le.jsxs)("tr",{children:[(0,Le.jsxs)("td",{className:Ms("label"),children:[e.color,":"]}),(0,Le.jsx)("td",{className:Ms("value"),children:"".concat(e.value,"/").concat(e.total," (").concat(e.percents.toFixed(2),"%)")})]},t)))})})})},Fs=Me("histogram-tooltip"),zs=e=>{const{data:t}=e;return t&&(0,Le.jsx)("div",{className:Fs(),children:(0,Le.jsx)("table",{children:(0,Le.jsxs)("tbody",{children:[(0,Le.jsxs)("tr",{children:[(0,Le.jsx)("td",{className:Fs("label"),children:"Count"}),(0,Le.jsx)("td",{className:Fs("value"),children:t.count||"?"})]}),(0,Le.jsxs)("tr",{children:[(0,Le.jsx)("td",{className:Fs("label"),children:"From"}),(0,Le.jsx)("td",{className:Fs("value"),children:t.leftBound||"?"})]}),(0,Le.jsxs)("tr",{children:[(0,Le.jsx)("td",{className:Fs("label"),children:"To"}),(0,Le.jsx)("td",{className:Fs("value"),children:t.rightBound||"?"})]})]})})})},Bs=Me("cell-tooltip"),Us=Me("json-tooltip"),Hs={pool:e=>(0,Le.jsx)(Ds,{data:e}),tablet:e=>(0,Le.jsx)(Is,{data:e}),node:e=>(0,Le.jsx)(Rs,{data:e}),nodeEndpoints:e=>(0,Le.jsx)(Ns,{data:e}),tabletsOverall:e=>(0,Le.jsx)(Ls,{data:e}),histogram:e=>(0,Le.jsx)(zs,{data:e}),cell:e=>(0,Le.jsx)("div",{className:Bs(),children:e}),json:e=>(0,Le.jsx)("div",{className:Us(),children:(0,Le.jsx)(bs(),{data:e,search:!1,isExpanded:()=>!0,className:Us("inspector")})})};const Vs=(0,ae.$j)((e=>{const{toolTipVisible:t,currentHoveredRef:n,data:r,templateType:i,additionalData:o,positions:a}=e.tooltip,{popupClassName:s}=o||{};return{toolTipVisible:t,currentHoveredRef:n,data:r,template:Hs[i],additionalData:o,positions:a,popupClassName:s}}),{hideTooltip:vs.i8})((function(e){var t,n;const r=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{rect:t,contextElement:n}=e,r=a.useRef(gs),i=a.useRef({contextElement:n,getBoundingClientRect(){const{top:e,right:t,bottom:n,left:i}=r.current;return{top:e,right:t,bottom:n,left:i,width:t-i,height:n-e}}});if(i.current.contextElement=n,t){const{top:e=0,left:n=0,right:i=n,bottom:o=e}=t;r.current={top:e,right:i,bottom:o,left:n}}else r.current=gs;return i}({rect:{top:null===(t=e.positions)||void 0===t?void 0:t.top,left:null===(n=e.positions)||void 0===n?void 0:n.left}});a.useEffect((()=>(window.addEventListener("scroll",i,!0),()=>{window.removeEventListener("scroll",i)})),[]);const i=()=>{const{hideTooltip:t,toolTipVisible:n}=e;n&&setTimeout((()=>t()),500)},{className:o="",toolTipVisible:s,currentHoveredRef:l,data:c,additionalData:u,positions:d}=e;return(0,Le.jsx)("div",{className:"redux-tooltip ".concat(o),children:d?((t,n,i,o)=>{const{template:s,popupClassName:l,hideTooltip:c}=e;return(0,Le.jsx)(a.Fragment,{children:(0,Le.jsx)(ti,{open:t,placement:["top","bottom","left","right"],contentClassName:l,anchorRef:r,onOutsideClick:c,children:i&&s(i,o)})})})(s,0,c,u):((t,n,r,i)=>{const{template:o,popupClassName:a,hideTooltip:s}=e;return(0,Le.jsx)(ti,{open:t,anchorRef:{current:n},hasArrow:!0,placement:["top","bottom","left","right"],className:a,onOutsideClick:s,children:r&&o(r,i)})})(s,l,c,u)})}));function Gs(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"unknown";const t=()=>null;return t.displayName="Slot(".concat(e,")"),t.__slotName=e,t}function Ws(e){return"function"===typeof e&&"__slotName"in e}class qs{constructor(e){this.children=null,this.slots=void 0;const t=[];this.slots=new Map,a.Children.forEach(e,(e=>{if(n=e,a.isValidElement(n)&&Ws(n.type)){const{type:t,props:n,ref:r}=e;if(this.slots.has(t))throw new Error('Duplicate slot elements with name "'.concat(t.__slotName,'" found.'));this.slots.set(t,{name:t.__slotName,props:n,ref:r,rendered:n.children})}else null!==e&&void 0!==e&&""!==e&&t.push(e);var n}));t.length>0&&(this.children=t)}get(e){if(!Ws(e))throw new Error('Invalid slot component. Should be a component created using "createSlot".');return this.slots.get(e)}}var Zs=n(99337);const Ys=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M3.03 1.97a.75.75 0 0 0-1.06 1.06l.83.83A8.206 8.206 0 0 0 .5 6.876l-.26.585a1.328 1.328 0 0 0 0 1.079l.26.585a8.208 8.208 0 0 0 11.434 3.87l1.036 1.035a.75.75 0 1 0 1.06-1.06l-11-11Zm7.788 9.908-1.294-1.293a3 3 0 0 1-4.109-4.109L3.866 4.927A6.707 6.707 0 0 0 1.87 7.486L1.641 8l.23.515a6.708 6.708 0 0 0 8.947 3.363ZM6.55 7.611A1.502 1.502 0 0 0 8.389 9.45L6.55 7.611Zm1.658-2.604 2.784 2.784a3 3 0 0 0-2.784-2.784Zm5.92 3.508a6.704 6.704 0 0 1-.915 1.496l1.065 1.066A8.203 8.203 0 0 0 15.5 9.125l.26-.585a1.328 1.328 0 0 0 0-1.08l-.26-.584A8.208 8.208 0 0 0 5.572 2.37L6.81 3.61a6.708 6.708 0 0 1 7.32 3.877l.228.514-.228.515Z",clipRule:"evenodd"})),Ks=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M1.87 8.515 1.641 8l.229-.515a6.708 6.708 0 0 1 12.26 0l.228.515-.229.515a6.708 6.708 0 0 1-12.259 0ZM.5 6.876l-.26.585a1.328 1.328 0 0 0 0 1.079l.26.584a8.208 8.208 0 0 0 15 0l.26-.584a1.328 1.328 0 0 0 0-1.08l-.26-.584a8.208 8.208 0 0 0-15 0ZM9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z",clipRule:"evenodd"}));var Qs,Xs;function $s(){return $s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},$s.apply(this,arguments)}const Js=function(e){return a.createElement("svg",$s({viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),Qs||(Qs=a.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"})),Xs||(Xs=a.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"})))},el=Me("authentication");const tl=function(e){let{closable:t=!1}=e;const n=Ao(),r=_a(),i=Ca(),{returnUrl:o}=(0,Ta.mB)(i),{error:s}=Do((e=>e.authentication)),[l,c]=a.useState(""),[u,d]=a.useState(""),[h,p]=a.useState(""),[f,m]=a.useState(""),[g,v]=a.useState(!1);a.useEffect((()=>{var e,t,n,r;null!==s&&void 0!==s&&null!==(e=s.data)&&void 0!==e&&null!==(t=e.error)&&void 0!==t&&t.includes("user")&&p(s.data.error),null!==s&&void 0!==s&&null!==(n=s.data)&&void 0!==n&&null!==(r=n.error)&&void 0!==r&&r.includes("password")&&m(s.data.error)}),[s]);const y=()=>{n((0,ns.YR)(l,u)).then((()=>{if(o){const e=decodeURIComponent(o.toString()),t=new URL(e),n=t.pathname+t.search;r.replace(n)}}))},b=e=>{13===e.keyCode&&y()};return(0,Le.jsxs)("section",{className:el(),children:[(0,Le.jsxs)("form",{className:el("form-wrapper"),children:[(0,Le.jsxs)("div",{className:el("header"),children:[(0,Le.jsxs)("div",{className:el("logo"),children:[(0,Le.jsx)(we.J,{data:Js,size:24}),"YDB"]}),(0,Le.jsx)(si,{href:"http://ydb.tech/docs",target:"_blank",children:"Documentation"})]}),(0,Le.jsx)("h2",{className:el("title"),children:"Sign in"}),(0,Le.jsx)("div",{className:el("field-wrapper"),children:(0,Le.jsx)(Ii,{value:l,onUpdate:e=>{c(e),p("")},placeholder:"Username",error:h,onKeyDown:b,size:"l",autoFocus:!0})}),(0,Le.jsxs)("div",{className:el("field-wrapper"),children:[(0,Le.jsx)(Ii,{value:u,onUpdate:e=>{d(e),m("")},type:g?"text":"password",placeholder:"Password",error:f,onKeyDown:b,size:"l"}),(0,Le.jsx)(Ie.z,{onClick:()=>{v((e=>!e))},size:"l",className:el("show-password-button"),children:(0,Le.jsx)(we.J,{data:g?Ys:Ks,size:16})})]}),(0,Le.jsx)(Ie.z,{view:"action",onClick:y,width:"max",size:"l",disabled:Boolean(!l||h||f),className:el("button-sign-in"),children:"Sign in"})]}),t&&r.length>1&&(0,Le.jsx)(Ie.z,{onClick:()=>{r.go(-1)},className:el("close"),children:(0,Le.jsx)(we.J,{data:tt.Z,size:24})})]})},nl=(0,le.Ge)("skeleton");function rl(e){let{className:t,style:n,qa:r}=e;return a.createElement("div",{className:nl(null,t),style:n,"data-qa":r})}var il=n(63041),ol=n.n(il),al=n(75850);const sl=(e,t)=>{let{openDelay:n=250,closeDelay:r,preventTriggerOnFocus:i=!1}=t;const[o,s,l]=function(e){const[t,n]=a.useState(e);return[t,a.useCallback((()=>n(!0)),[]),a.useCallback((()=>n(!1)),[]),a.useCallback((()=>n((e=>!e))),[])]}(!1),c=a.useRef(),u=a.useRef(!1);return a.useEffect((()=>{if(e)return e.addEventListener("mouseenter",t),e.addEventListener("mouseleave",o),e.addEventListener("keydown",h),i||(e.addEventListener("focus",a),e.addEventListener("blur",d)),()=>{e.removeEventListener("mouseenter",t),e.removeEventListener("mouseleave",o),e.removeEventListener("focus",a),e.removeEventListener("blur",d),e.removeEventListener("keydown",h)};function t(){clearTimeout(c.current),c.current=window.setTimeout(s,n)}function o(){clearTimeout(c.current),c.current=window.setTimeout(l,r)}function a(e){u.current||document.activeElement!==e.target||(u.current=!0,clearTimeout(c.current),s())}function d(e){u.current&&!e.currentTarget.contains(e.relatedTarget)&&(u.current=!1,clearTimeout(c.current),l())}function h(e){e.key===Zr.V.ESCAPE&&(clearTimeout(c.current),l())}}),[e,s,l,n,r,i]),o},ll=(0,le.Ge)("tooltip"),cl=["bottom","top"],ul=e=>{const{children:t,content:n,disabled:r,placement:i=cl,qa:o,id:s,className:l,style:c,disablePortal:u,contentClassName:d,openDelay:h=1e3,closeDelay:p}=e,[f,m]=a.useState(null),g=sl(f,{openDelay:h,closeDelay:p,preventTriggerOnFocus:!0}),v=a.Children.only(t),y=Et(m,v.ref);return a.createElement(a.Fragment,null,a.cloneElement(v,{ref:y}),f?a.createElement(ti,{id:s,role:"tooltip",className:ll(null,l),style:c,open:g&&!r,placement:i,anchorRef:{current:f},disablePortal:u,disableEscapeKeyDown:!0,disableOutsideClick:!0,disableLayer:!0,qa:o},a.createElement("div",{className:ll("content",d)},a.createElement(Fi.x,{variant:"body-short",color:"complementary"},n))):null)},dl=Me("clipboard-button");function hl(e){let{className:t,status:n,title:r,...i}=e;return(0,Le.jsx)(ul,{content:"success"===n?"Copied!":r||"Copy",placement:"bottom-start",children:(0,Le.jsx)(Ie.z,{...i,className:dl(null,t),children:(0,Le.jsx)(Ie.z.Icon,{children:(0,Le.jsx)(at,{status:n,size:16})})})})}function pl(e){let{text:t,...n}=e;return(0,Le.jsx)(ut,{text:t,timeout:1e3,children:e=>(0,Le.jsx)(hl,{...n,status:e})})}a.Component;a.Component;var fl=function(e,t){return"function"===typeof e?e(t):e},ml=function(e,t){return"string"===typeof e?(0,Go.ob)(e,null,null,t):e},gl=function(e){return e},vl=a.forwardRef;"undefined"===typeof vl&&(vl=gl);var yl=vl((function(e,t){var n=e.innerRef,r=e.navigate,i=e.onClick,o=(0,Ko.Z)(e,["innerRef","navigate","onClick"]),s=o.target,l=(0,qo.Z)({},o,{onClick:function(e){try{i&&i(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 l.ref=gl!==vl&&t||n,a.createElement("a",l)}));var bl=vl((function(e,t){var n=e.component,r=void 0===n?yl:n,i=e.replace,o=e.to,s=e.innerRef,l=(0,Ko.Z)(e,["component","replace","to","innerRef"]);return a.createElement(ra.Consumer,null,(function(e){e||(0,Wo.Z)(!1);var n=e.history,c=ml(fl(o,e.location),e.location),u=c?n.createHref(c):"",d=(0,qo.Z)({},l,{href:u,navigate:function(){var t=fl(o,e.location),r=(0,Go.Ep)(e.location)===(0,Go.Ep)(ml(t));(i||r?n.replace:n.push)(t)}});return gl!==vl?d.ref=t||s:d.innerRef=s,a.createElement(r,d)}))})),xl=function(e){return e},wl=a.forwardRef;"undefined"===typeof wl&&(wl=xl);wl((function(e,t){var n=e["aria-current"],r=void 0===n?"page":n,i=e.activeClassName,o=void 0===i?"active":i,s=e.activeStyle,l=e.className,c=e.exact,u=e.isActive,d=e.location,h=e.sensitive,p=e.strict,f=e.style,m=e.to,g=e.innerRef,v=(0,Ko.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(ra.Consumer,null,(function(e){e||(0,Wo.Z)(!1);var n=d||e.location,i=ml(fl(m,n),n),y=i.pathname,b=y&&y.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),x=b?fa(n.pathname,{path:b,exact:c,sensitive:h,strict:p}):null,w=!!(u?u(x,n):x),S="function"===typeof l?l(w):l,_="function"===typeof f?f(w):f;w&&(S=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(" ")}(S,o),_=(0,qo.Z)({},_,s));var C=(0,qo.Z)({"aria-current":w&&r||null,className:S,style:_,to:i},v);return xl!==wl?C.ref=t||g:C.innerRef=g,a.createElement(bl,C)}))}));const Sl=Me("g-link"),_l=e=>{let{className:t,to:n,onClick:r,...i}=e;return n?(0,Le.jsx)(bl,{to:n,onClick:r,className:Sl({view:"normal"},t),...i}):(0,Le.jsx)("span",{className:t,onClick:r,children:i.children})};var Cl=n(67585);const El=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0Zm-6 2.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM8.75 5a.75.75 0 0 0-1.5 0v2.5a.75.75 0 0 0 1.5 0V5Z",clipRule:"evenodd"}));var Tl=n(71586);const Ol=Me("ydb-status-icon"),Nl={[al.K.Blue]:Cl.Z,[al.K.Yellow]:El,[al.K.Orange]:Tl.Z,[al.K.Red]:El};function kl(e){let{status:t=al.K.Grey,size:n="s",mode:r="color",className:i}=e;const o={state:t.toLowerCase(),size:n};return"icons"===r&&t in Nl?(0,Le.jsx)(we.J,{className:Ol("status-icon",o,i),data:Nl[t]}):(0,Le.jsx)("div",{className:Ol("status-color",o,i)})}const jl=Me("entity-status");function Il(e){let{status:t=al.K.Grey,name:n="",label:r,path:i,iconPath:o,size:a="s",mode:s="color",showStatus:l=!0,externalLink:c=!1,withLeftTrim:u=!1,hasClipboardButton:d,clipboardButtonAlwaysVisible:h=!1,className:p,additionalControls:f}=e;const m=()=>l?(0,Le.jsx)(kl,{className:jl("icon"),status:t,size:a,mode:s}):null;return(0,Le.jsxs)("div",{className:jl(null,p),title:n,children:[o?(g=o,(0,Le.jsx)(si,{target:"_blank",href:g,children:m()})):m(),r&&(0,Le.jsx)("span",{title:r,className:jl("label",{size:a,state:t.toLowerCase()}),children:r}),(0,Le.jsx)("span",{className:jl("link",{"with-left-trim":u}),children:i?c?(0,Le.jsx)(si,{className:jl("name"),href:i,children:n}):(0,Le.jsx)(_l,{className:jl("name"),to:i,children:n}):n&&(0,Le.jsx)("span",{className:jl("name"),children:n})}),d&&(0,Le.jsx)(pl,{text:n,size:"s",className:jl("clipboard-button",{visible:h})}),f]});var g}var Pl=n(77915),Dl=n(905);const Al=Dl.h.injectEndpoints({endpoints:e=>({getClusterNodes:e.query({queryFn:async()=>{try{const e=await window.api.getClusterNodes(),{SystemStateInfo:t=[]}=e;return{data:t.map((e=>({...e,uptime:(0,ks.fG)(e.StartTime)})))}}catch(e){return{error:e}}},providesTags:["All"]})}),overrideExisting:"throw"});var Rl=n(79061),Ml=n(94076),Ll=n(30601);const Fl=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;const n=e.reduce(((e,t)=>(t.Version&&(e[t.Version]?e[t.Version]=e[t.Version]+1:e[t.Version]=1),e)),{});return Object.keys(n).map((r=>({title:r,version:r,color:null===t||void 0===t?void 0:t.get((0,Ll.H)(r)),value:n[r]/e.length*100})))};var zl=n(17095);function Bl(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return{...e,default:t,decode:function(){const r=e.decode(...arguments);return void 0===r||n&&null===r?t:r}}}function Ul(e,t){if(null==e)return e;if(0===e.length&&(!t||t&&""!==e))return null;const n=e instanceof Array?e[0]:e;return null==n||t||""!==n?n:null}function Hl(e){const t=Ul(e,!0);return null==t?t:String(t)}function Vl(e){const t=function(e){return null==e||e instanceof Array?e:""===e?[]:[e]}(e);return t}const Gl={encode:function(e){return null==e?e:String(e)},decode:Hl},Wl={encode:function(e){return e},decode:Vl};'{}[],":'.split("").map((e=>[e,encodeURIComponent(e)]));function ql(e,t){const n={},r=Object.keys(t);for(const i of r){const r=t[i];e[i]?n[i]=e[i].encode(t[i]):n[i]=null==r?r:String(r)}return n}const Zl=new class{constructor(){this.paramsMap=new Map,this.registeredParams=new Map}set(e,t,n,r){this.paramsMap.set(e,{stringified:t,decoded:n,decode:r})}has(e,t,n){if(!this.paramsMap.has(e))return!1;const r=this.paramsMap.get(e);return!!r&&(r.stringified===t&&(null==n||r.decode===n))}get(e){var t;if(this.paramsMap.has(e))return null==(t=this.paramsMap.get(e))?void 0:t.decoded}registerParams(e){for(const t of e){const e=this.registeredParams.get(t)||0;this.registeredParams.set(t,e+1)}}unregisterParams(e){for(const t of e){const e=(this.registeredParams.get(t)||0)-1;e<=0?(this.registeredParams.delete(t),this.paramsMap.has(t)&&this.paramsMap.delete(t)):this.registeredParams.set(t,e)}}clear(){this.paramsMap.clear(),this.registeredParams.clear()}};function Yl(e,t,n,r){var i;if(!n||!t.length)return e;let o={...e},a=!1;for(const s of t)Object.prototype.hasOwnProperty.call(o,s)||(o[s]=null!=(i=n[s])?i:r,a=!0);return a?o:e}const Kl=Object.prototype.hasOwnProperty;function Ql(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function Xl(e,t,n){var r,i;if(Ql(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;const o=Object.keys(e),a=Object.keys(t);if(o.length!==a.length)return!1;for(let s=0;s<o.length;s++){const a=null!=(i=null==(r=null==n?void 0:n[o[s]])?void 0:r.equals)?i:Ql;if(!Kl.call(t,o[s])||!a(e[o[s]],t[o[s]]))return!1}return!0}function $l(e,t,n){const r={},i=Object.keys(t);for(const o of i){const i=t[o],a=e[o];let s;if(n.has(o,a,i.decode))s=n.get(o);else{if(s=i.decode(a),i.equals&&n.has(o,a)){const e=n.get(o);i.equals(s,e)&&(s=e)}void 0!==s&&n.set(o,a,s,i.decode)}void 0===s&&void 0!==i.default&&(s=i.default),r[o]=s}return r}function Jl(){let e;return function(t,n,r){const i=$l(t,n,r);return null!=e&&Xl(e,i)?e:(e=i,i)}}let ec,tc,nc,rc={};const ic=(e,t,n)=>{if(ec===t&&nc===e&&tc===n)return rc;ec=t,nc=e;const r=e(null!=t?t:"");tc=n;const i=function(e){if(e)return Object.fromEntries(e.split("\n").map((e=>e.split("\0"))))}(n);for(let[o,a]of Object.entries(r)){(null==i?void 0:i[o])&&(delete r[o],o=i[o],r[o]=a);const e=rc[o];Xl(a,e)&&(r[o]=e)}return rc=r,r},oc={searchStringToObject:function(e){const t=new URLSearchParams(e),n={};for(let[r,i]of t)Object.prototype.hasOwnProperty.call(n,r)?Array.isArray(n[r])?n[r].push(i):n[r]=[n[r],i]:n[r]=i;return n},objectToSearchString:function(e){const t=new URLSearchParams,n=Object.entries(e);for(const[r,i]of n)if(void 0!==i&&null!==i)if(Array.isArray(i))for(const e of i)t.append(r,null!=e?e:"");else t.append(r,i);return t.toString()},updateType:"pushIn",includeKnownParams:void 0,includeAllParams:!1,removeDefaultsFromUrl:!1,enableBatching:!1,skipUpdateWhenNoChange:!0};function ac(e,t){null==t&&(t={});const n={...e,...t};return t.params&&e.params&&(n.params={...e.params,...t.params}),n}const sc={adapter:{},options:oc},lc=a.createContext(sc);function cc(e){let{children:t,adapter:n,options:r}=e;const{adapter:i,options:o}=a.useContext(lc),s=a.useMemo((()=>({adapter:null!=n?n:i,options:ac(o,r)})),[n,r,i,o]);return a.createElement(lc.Provider,{value:s},t)}function uc(e){let{children:t,adapter:n,options:r}=e;const i=n;return i?a.createElement(i,null,(e=>a.createElement(cc,{adapter:e,options:r},t))):a.createElement(cc,{options:r},t)}function dc(e){let{changes:t,updateType:n,currentSearchString:r,paramConfigMap:i,options:o}=e;const{searchStringToObject:a,objectToSearchString:s}=o;let l;null==n&&(n=o.updateType);const c=ic(a,r),u=Yl(i,Object.keys(t),o.params);let d,h;if("function"===typeof t){d=t($l(c,u,Zl))}else d=t;return l=ql(u,d),o.removeDefaultsFromUrl&&function(e,t){var n;for(const r in e)void 0!==(null==(n=t[r])?void 0:n.default)&&void 0!==e[r]&&t[r].encode(t[r].default)===e[r]&&(e[r]=void 0)}(l,u),l=function(e,t){var n;let r={};for(const i in e)null!=(null==(n=t[i])?void 0:n.urlName)?r[t[i].urlName]=e[i]:r[i]=e[i];return r}(l,u),h=s("push"===n||"replace"===n?l:{...c,...l}),(null==h?void 0:h.length)&&"?"!==h[0]&&(h="?".concat(h)),null!=h?h:""}const hc=e=>e(),pc=e=>setTimeout((()=>e()),0),fc=[];function mc(e,t){const{adapter:n,options:r}=function(){const e=a.useContext(lc);if(void 0===e||e===sc)throw new Error("useQueryParams must be used within a QueryParamProvider");return e}(),[i]=(0,a.useState)(Jl),{paramConfigMap:o,options:s}=function(e,t){let n,r;void 0===e?(n={},r=t):Array.isArray(e)?(n=Object.fromEntries(e.map((e=>[e,"inherit"]))),r=t):(n=e,r=t);return{paramConfigMap:n,options:r}}(e,t),l=(0,a.useMemo)((()=>ac(r,s)),[r,s]);let c=function(e,t){var n,r,i;const o={};let a=!1;const s=Object.keys(e);let l=s;if(t.includeKnownParams||!1!==t.includeKnownParams&&0===s.length){const e=Object.keys(null!=(n=t.params)?n:{});l.push(...e)}for(const c of l){const n=e[c];null==n||"object"!==typeof n?(a=!0,o[c]=null!=(i=null==(r=t.params)?void 0:r[c])?i:Gl):o[c]=n}return a?o:e}(o,l);const u=ic(l.searchStringToObject,n.location.search,function(e){let t;for(const n in e)if(e[n].urlName){const r=e[n].urlName,i="".concat(r,"\0").concat(n);t?t.push(i):t=[i]}return t?t.join("\n"):void 0}(c));l.includeAllParams&&(c=Yl(c,Object.keys(u),l.params,Gl));const d=i(u,c,Zl),h=Object.keys(c).join("\0");(0,a.useEffect)((()=>{const e=h.split("\0");return Zl.registerParams(e),()=>{Zl.unregisterParams(e)}}),[h]);const p={adapter:n,paramConfigMap:c,options:l},f=(0,a.useRef)(p);null==f.current&&(f.current=p),(0,a.useEffect)((()=>{f.current.adapter=n,f.current.paramConfigMap=c,f.current.options=l}),[n,c,l]);const[m]=(0,a.useState)((()=>(e,t)=>{const{adapter:n,paramConfigMap:r,options:i}=f.current;null==t&&(t=i.updateType),function(e){let{immediate:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};fc.push(e);let n=t?hc:pc;1===fc.length&&n((()=>{const t=fc.slice();fc.length=0;const n=t[0].currentSearchString;let r;for(let e=0;e<t.length;++e)r=dc(0===e?t[e]:{...t[e],currentSearchString:r});e.options.skipUpdateWhenNoChange&&r===n||function(e){let{searchString:t,adapter:n,navigate:r,updateType:i}=e;const o={...n.location,search:t};r&&("string"===typeof i&&i.startsWith("replace")?n.replace(o):n.push(o))}({searchString:null!=r?r:"",adapter:t[t.length-1].adapter,navigate:!0,updateType:t[t.length-1].updateType})}))}({changes:e,updateType:t,currentSearchString:n.location.search,paramConfigMap:r,options:i,adapter:n},{immediate:!i.enableBatching})}));return[d,m]}var gc=mc;const vc=(0,We.wZ)("ydb-entities-count",{ru:{of:"\u0438\u0437"},en:{of:"of"}}),yc=e=>{let{total:t,current:n,label:r,loading:i,className:o}=e,a="";return r&&(a+="".concat(r,": ")),i?a+="...":(a+="".concat(n),t&&Number(t)!==Number(n)&&(a+=" ".concat(vc("of")," ").concat(t))),(0,Le.jsx)(ft,{theme:"info",size:"m",className:o,children:a})};var bc,xc,wc,Sc,_c,Cc,Ec,Tc,Oc,Nc,kc;function jc(){return jc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},jc.apply(this,arguments)}const Ic=function(e){return a.createElement("svg",jc({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 383 396",fill:"none"},e),bc||(bc=a.createElement("path",{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 001.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"})),xc||(xc=a.createElement("path",{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"})),wc||(wc=a.createElement("path",{d:"M21.034 214.732a5.2 5.2 0 100-10.4 5.2 5.2 0 000 10.4zm16.899 0a5.2 5.2 0 100-10.4 5.2 5.2 0 000 10.4zm16.9 0a5.2 5.2 0 100-10.4 5.2 5.2 0 000 10.4z",fill:"#2EE5C0"})),Sc||(Sc=a.createElement("path",{d:"M2.533 228.129h228.9",stroke:"#00E6C5",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round",strokeDasharray:"4 10"})),_c||(_c=a.createElement("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"})),Cc||(Cc=a.createElement("path",{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"})),Ec||(Ec=a.createElement("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"})),Tc||(Tc=a.createElement("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"})),Oc||(Oc=a.createElement("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"})),Nc||(Nc=a.createElement("path",{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"})),kc||(kc=a.createElement("path",{d:"M41.034 42.73a2 2 0 10-4 0h4zm-4 8.3a2 2 0 004 0h-4zm4 17.2a2 2 0 10-4 0h4zm-4 8.9a2 2 0 004 0h-4zm19.2-15.2a2 2 0 000-4v4zm-8.2-4a2 2 0 100 4v-4zm-17.9 4a2 2 0 000-4v4zm-8.2-4a2 2 0 100 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"})))},Pc=Me("empty-state"),Dc={s:150,m:250,l:350},Ac=e=>{let{image:t,title:n,description:r,actions:i,size:o="m",position:a="center"}=e;return(0,Le.jsx)("div",{className:Pc({size:o}),children:(0,Le.jsxs)("div",{className:Pc("wrapper",{size:o,position:a}),children:[(0,Le.jsx)("div",{className:Pc("image"),children:t||(0,Le.jsx)(we.J,{data:Ic,width:Dc[o],height:Dc[o]})}),(0,Le.jsx)("div",{className:Pc("title",{size:o}),children:n}),(0,Le.jsx)("div",{className:Pc("description"),children:r}),(0,Le.jsx)("div",{className:Pc("actions"),children:i})]})})},Rc=JSON.parse('{"403.title":"Access denied","403.description":"You don\u2019t have the necessary roles to view this page.","responseError.defaultMessage":"Response error"}'),Mc=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"}'),Lc=(0,We.wZ)("ydb-errors-access-denied",{ru:Mc,en:Rc}),Fc=e=>{let{title:t,description:n,...r}=e;return(0,Le.jsx)(Ac,{image:(0,Le.jsx)(Ge,{name:"403"}),title:t||Lc("403.title"),description:n||Lc("403.description"),...r})},zc=e=>{let{error:t,className:n,defaultMessage:r=Lc("responseError.defaultMessage")}=e,i="";return t&&"string"===typeof t&&(i=t),t&&"object"===typeof t&&("statusText"in t&&"string"===typeof t.statusText?i=t.statusText:"message"in t&&"string"===typeof t.message&&(i=t.message)),(0,Le.jsx)("div",{className:"error ".concat(n),children:i||r})},Bc=e=>{let{value:t,onChange:n,className:r}=e;return(0,Le.jsxs)(Oo,{value:t,onUpdate:n,className:r,children:[(0,Le.jsx)(Oo.Option,{value:Ro.pu.ALL,children:Ro.pu.ALL}),(0,Le.jsx)(Oo.Option,{value:Ro.pu.PROBLEMS,children:Ro.pu.PROBLEMS})]})};function Uc(e,t){return e.map((e=>{var n;let r;e.sub&&(r=Uc(e.sub,t));const i=null!==(n=t[e.name])&&void 0!==n?n:e.width;return Object.assign(Object.assign({},e),{width:i,sub:r})}))}var Hc=n(19812),Vc=n(18193);const Gc=e=>{const t=a.useCallback((()=>e?Vc.r.readUserSettingsValue(e,{}):{}),[e]);return function(e){let{saveSizes:t,getSizes:n}=e;const[r,i]=a.useState((()=>n()));return[r,a.useCallback(((e,n)=>{i((r=>{const i=Object.assign(Object.assign({},r),{[e]:n});return t(i),i}))}),[t])]}({saveSizes:a.useCallback((t=>{e&&Vc.r.setUserSettingsValue(e,t)}),[e]),getSizes:t})},Wc=Me("ydb-resizeable-data-table");function qc(e){let{columnsWidthLSKey:t,columns:n,settings:r,wrapperClassName:i,...o}=e;const[a,s]=Gc(t),l=Uc(n,a),c={...r,defaultResizeable:!0};return(0,Le.jsx)("div",{className:Wc(null,i),children:(0,Le.jsx)(Hc.ZP,{theme:"yandex-cloud",columns:l,onResize:s,settings:c,...o})})}const Zc=Me("ydb-search"),Yc=e=>{let{onChange:t,value:n="",className:r,debounce:i=200,placeholder:o}=e;const[s,l]=a.useState(n),c=a.useRef();a.useEffect((()=>{l((e=>e!==n?n:e))}),[n]);return(0,Le.jsx)(Ii,{hasClear:!0,autoFocus:!0,className:Zc(null,r),placeholder:o,value:s,onUpdate:e=>{l(e),window.clearTimeout(c.current),c.current=window.setTimeout((()=>{null===t||void 0===t||t(e)}),i)}})},Kc=Me("table-skeleton"),Qc=e=>{let{rows:t=2,className:n}=e;return(0,Le.jsxs)("div",{className:Kc(null,n),children:[(0,Le.jsxs)("div",{className:Kc("row"),children:[(0,Le.jsx)(rl,{className:Kc("col-1")}),(0,Le.jsx)(rl,{className:Kc("col-2")}),(0,Le.jsx)(rl,{className:Kc("col-3")}),(0,Le.jsx)(rl,{className:Kc("col-4")}),(0,Le.jsx)(rl,{className:Kc("col-5")})]}),[...new Array(t)].map(((e,t)=>(0,Le.jsx)("div",{className:Kc("row"),children:(0,Le.jsx)(rl,{className:Kc("col-full")})},"skeleton-row-".concat(t))))]})},Xc=Me("ydb-table-with-controls-layout"),$c=e=>{let{children:t,className:n}=e;return(0,Le.jsx)("div",{className:Xc(null,n),children:t})};$c.Controls=function(e){let{children:t,className:n}=e;return(0,Le.jsx)("div",{className:Xc("controls-wrapper"),children:(0,Le.jsx)("div",{className:Xc("controls",n),children:t})})},$c.Table=function(e){let{children:t,loading:n,className:r}=e;return n?(0,Le.jsx)(Qc,{className:Xc("loader")}):(0,Le.jsx)("div",{className:Xc("table",r),children:t})};const Jc=e=>{let{value:t,onChange:n,className:r}=e;return(0,Le.jsxs)(Oo,{value:t,onUpdate:n,className:r,children:[(0,Le.jsx)(Oo.Option,{value:Na.Uu.All,children:Na.qU[Na.Uu.All]}),(0,Le.jsx)(Oo.Option,{value:Na.Uu.SmallUptime,children:Na.qU[Na.Uu.SmallUptime]})]})};let eu;!function(e){e.v1="v1",e.v2="v2"}(eu||(eu={}));const tu=(e,t,n)=>r=>0<=r&&r<e?n[0]:e<=r&&r<t?n[1]:t<=r?n[2]:void 0,nu=(e,t)=>{var n;return{...e,TenantName:null!==(n=e.Tenant)&&void 0!==n?n:t,SystemState:null===e||void 0===e?void 0:e.Overall,Uptime:(0,ks.fG)(null===e||void 0===e?void 0:e.StartTime),DC:e.DataCenter}},ru=e=>{const t=((e,t)=>{const n=[];if(e)e.forEach((e=>{n.push(nu(e))}));else if(t)for(const i of t){var r;null===(r=i.Nodes)||void 0===r||r.forEach((e=>{n.push(nu(e,i.Name))}))}return n})(e.Nodes,e.Tenants);return{Nodes:t,TotalNodes:Number(e.TotalNodes)||t.length,FoundNodes:Number(e.FoundNodes)}},iu=e=>{const t=(e.Nodes||[]).map((e=>{var t,n,r,i;const o=Number(null===(t=e.SystemState.SharedCacheStats)||void 0===t?void 0:t.LimitBytes)||void 0;return{...(0,Na.Ns)(e.SystemState),Tablets:e.Tablets,NodeId:e.NodeId,TenantName:null===(n=e.SystemState)||void 0===n||null===(r=n.Tenants)||void 0===r?void 0:r[0],SharedCacheUsed:null===(i=e.SystemState.SharedCacheStats)||void 0===i?void 0:i.UsedBytes,SharedCacheLimit:o}}));return{Nodes:t,TotalNodes:Number(e.TotalNodes)||t.length,FoundNodes:Number(e.FoundNodes)}},ou=tu(60,80,["success","warning","danger"]),au=Dl.h.injectEndpoints({endpoints:e=>({getNodes:e.query({queryFn:async(e,t)=>{let{signal:n}=t;try{const t=await window.api.getNodes({type:"any",storage:!1,...e},{signal:n});return{data:iu(t)}}catch(r){return{error:r}}},providesTags:["All"]}),getComputeNodes:e.query({queryFn:async(e,t)=>{let{signal:n}=t;try{const t=await window.api.getCompute({version:eu.v2,...e},{signal:n});return{data:ru(t)}}catch(r){return{error:r}}},providesTags:["All"]})}),overrideExisting:"throw"});var su=n(27070);const lu=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(arguments.length>1?arguments[1]:void 0)===Ro.pu.ALL?e:e.filter((e=>{let{SystemState:t}=e;return t&&t!==al.K.Green}))},cu=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(arguments.length>1?arguments[1]:void 0)===Na.Uu.All?e:e.filter((e=>{let{StartTime:t}=e;return!t||(0,ks.OW)(t)<Lo.RQ}))},uu=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;if(!t)return e;const n=(0,su.Y)(t);return e.filter((e=>!e.Host||(n.test(e.Host)||n.test(String(e.NodeId)))))};const du=Me("ydb-cell-with-popover");function hu(e){let{children:t,className:n,wrapperClassName:r,...i}=e;return(0,Le.jsx)("div",{className:du(null,r),children:(0,Le.jsx)(fi,{className:du("popover",n),...i,children:t})})}const pu=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M10 1.5A.75.75 0 0 0 10 3h1.94L6.97 7.97a.75.75 0 0 0 1.06 1.06L13 4.06V6a.75.75 0 0 0 1.5 0V2.25a.75.75 0 0 0-.75-.75H10ZM7.5 3.25a.75.75 0 0 0-.75-.75H4.5a3 3 0 0 0-3 3v6a3 3 0 0 0 3 3h6a3 3 0 0 0 3-3V9.25a.75.75 0 0 0-1.5 0v2.25a1.5 1.5 0 0 1-1.5 1.5h-6A1.5 1.5 0 0 1 3 11.5v-6A1.5 1.5 0 0 1 4.5 4h2.25a.75.75 0 0 0 .75-.75Z",clipRule:"evenodd"})),fu="storage",mu="tablets",gu="overview",vu="structure",yu=[{id:gu,name:"Overview"},{id:fu,name:"Storage"},{id:vu,name:"Structure"},{id:mu,name:"Tablets"}];function bu(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,Ta.ax)(Ta.ZP.node,{id:e,activeTab:gu},t)}const xu=Me("ydb-node-host-wrapper"),wu=e=>{let{node:t,getNodeRef:n}=e;if(!t.Host)return(0,Le.jsx)("span",{children:"\u2014"});const r=!(0,Na.TA)(t),i=r&&n?n(t)+"internal":void 0,o=r?bu(t.NodeId,{tenantName:t.TenantName}):void 0,a=i?(0,Le.jsx)(Ie.z,{size:"s",href:i,className:xu("external-button"),target:"_blank",children:(0,Le.jsx)(we.J,{data:pu})}):null;return(0,Le.jsx)(hu,{disabled:!r,content:(0,Le.jsx)(Ns,{data:t}),placement:["top","bottom"],behavior:di.Immediate,children:(0,Le.jsx)(Il,{name:t.Host,status:t.SystemState,path:o,hasClipboardButton:!0,additionalControls:a})})},Su=e=>{let{children:t,content:n,className:r,hasArrow:i=!0,placement:o=["top","bottom"],...s}=e;const[l,c]=a.useState(!1),u=a.useRef(null);return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(ti,{anchorRef:u,open:l,placement:o,hasArrow:i,...s,children:n}),(0,Le.jsx)("span",{className:r,ref:u,onMouseEnter:()=>{c(!0)},onMouseLeave:()=>{c(!1)},children:t})]})},_u=Me("ydb-pool-bar"),Cu=e=>{let{data:t={}}=e;const{Usage:n=0}=t,r=Math.min(100*n,100),i=(e=>e>=75?"danger":e>=50&&e<75?"warning":"normal")(r);return(0,Le.jsx)(Su,{className:_u({type:i}),content:(0,Le.jsx)(Ds,{data:t,className:_u("popup-content")}),children:(0,Le.jsx)("div",{style:{height:"".concat(r,"%")},className:_u("value",{type:i})})})},Eu=Me("ydb-pools-graph"),Tu=e=>{let{pools:t=[]}=e;return(0,Le.jsx)("div",{className:Eu(),children:t.map(((e,t)=>(0,Le.jsx)(Cu,{data:e},t)))})};var Ou=n(47651);const Nu=Me("progress-viewer"),ku=e=>(0,ks.uf)((0,ks.W0)(Number(e),2)),ju=(e,t)=>[ku(e),ku(t)];function Iu(e){let{value:t,capacity:n,formatValues:r=ju,percents:i,className:o,size:a="xs",colorizeProgress:s,inverseColorize:l,warningThreshold:c=60,dangerThreshold:u=80}=e;const d=(0,rr.T)().theme;let h=Math.round(parseFloat(String(t))/parseFloat(String(n))*100)||0;h=h>100?100:h;let p=t,f=n,m="/";i?(p=h+"%",f="",m=""):r&&([p,f]=r(Number(t),Number(n)));let g=l?"danger":"good";s&&(h>c&&h<=u?g="warning":h>u&&(g=l?"good":"danger"));const v={width:h+"%"};return(0,Ou.kE)(t)?(0,Le.jsxs)("div",{className:Nu({size:a,theme:d,status:g},o),children:[(0,Le.jsx)("div",{className:Nu("line"),style:v}),(0,Le.jsx)("span",{className:Nu("text"),children:(0,Ou.kE)(n)?"".concat(p," ").concat(m," ").concat(f):p})]}):(0,Le.jsx)("div",{className:"".concat(Nu({size:a})," ").concat(o," error"),children:"no data"})}var Pu=n(28164);const Du={[Pu.g.Dead]:al.K.Red,[Pu.g.Created]:al.K.Yellow,[Pu.g.ResolveStateStorage]:al.K.Yellow,[Pu.g.Candidate]:al.K.Yellow,[Pu.g.BlockBlobStorage]:al.K.Yellow,[Pu.g.WriteZeroEntry]:al.K.Yellow,[Pu.g.Restored]:al.K.Yellow,[Pu.g.Discover]:al.K.Yellow,[Pu.g.Lock]:al.K.Yellow,[Pu.g.Stopped]:al.K.Yellow,[Pu.g.ResolveLeader]:al.K.Yellow,[Pu.g.RebuildGraph]:al.K.Yellow,[Pu.g.Deleted]:al.K.Green,[Pu.g.Active]:al.K.Green},Au=Object.keys(Pu.g),Ru=Object.entries(Du).reduce(((e,t)=>{let[n,r]=t;return e[r]?e[r].push(n):e[r]=[n],e}),{}),Mu=e=>{if(!e)return al.K.Grey;return t=e,Object.values(al.K).includes(t)?e:Du[e];var t};function Lu(e){if(!e)return"unknown";switch(e){case Pu.g.Dead:return"danger";case Pu.g.Active:case Pu.g.Deleted:return"success";default:return"warning"}}const Fu=Me("tablets-statistic"),zu=e=>{let{tablets:t=[],path:n,nodeIds:r,backend:i}=e;const o=(e=>e.map((e=>({label:(0,Lo.qV)(e.Type),type:e.Type,count:e.Count,state:Mu(e.State)}))).sort(((e,t)=>String(e.label).localeCompare(String(t.label)))))(t);return(0,Le.jsx)("div",{className:Fu(),children:o.map(((e,t)=>{var o;const a=(0,Ta.ax)(Ta.ZP.tabletsFilters,void 0,{nodeIds:r,state:e.state,type:e.type,path:n,backend:i}),s="".concat(e.label,": ").concat(e.count),l=Fu("tablet",{state:null===(o=e.state)||void 0===o?void 0:o.toLowerCase()});return i?(0,Le.jsx)("a",{href:a,className:l,children:s},t):(0,Le.jsx)(bl,{to:a,className:l,children:s},t)}))})},Bu=Me("ydb-usage-label");function Uu(e){let{value:t,overloadThreshold:n=90,theme:r,...i}=e;return(0,Le.jsxs)(ft,{theme:r,className:Bu({overload:Number(t)>=n}),...i,children:[t||0,"%"]})}const Hu="nodesTableColumnsWidth",Vu="Host",Gu="DC",Wu="Rack",qu="Version",Zu="Uptime",Yu="Memory",Ku="CPU",Qu="LoadAverage",Xu="Tablets",$u="TopNodesLoadAverage",Ju="TopNodesMemory",ed="SharedCacheUsage",td="MemoryUsedInAlloc",nd="TotalSessions",rd={name:"NodeId",header:"#",width:80,render:e=>{let{row:t}=e;return t.NodeId},align:Hc.ZP.RIGHT,sortable:!1},id=e=>({name:Vu,render:t=>{let{row:n}=t;return(0,Le.jsx)(wu,{node:n,getNodeRef:e})},width:350,align:Hc.ZP.LEFT,sortable:!1}),od=e=>({...id(e),width:void 0}),ad={name:Gu,header:"DC",align:Hc.ZP.LEFT,render:e=>{let{row:t}=e;return t.DC||Lo.jX},width:60},sd={name:Wu,header:"Rack",align:Hc.ZP.LEFT,render:e=>{let{row:t}=e;return t.Rack?t.Rack:"\u2014"},width:80},ld={name:qu,width:200,align:Hc.ZP.LEFT,render:e=>{let{row:t}=e;return(0,Le.jsx)(hu,{content:t.Version,children:t.Version})},sortable:!1},cd={name:Zu,header:"Uptime",sortAccessor:e=>{let{StartTime:t}=e;return t&&-t},render:e=>{let{row:t}=e;return t.Uptime},align:Hc.ZP.RIGHT,width:110,sortable:!1},ud={name:Yu,header:"Memory",sortAccessor:e=>{let{MemoryUsed:t=0}=e;return Number(t)},defaultOrder:Hc.ZP.DESCENDING,render:e=>{let{row:t}=e;return t.MemoryUsed?(0,ks.SX)(t.MemoryUsed):"\u2014"},align:Hc.ZP.RIGHT,width:120},dd={name:Ku,header:"CPU",sortAccessor:e=>{let{PoolStats:t=[]}=e;return Math.max(...t.map((e=>{let{Usage:t}=e;return Number(t)})))},defaultOrder:Hc.ZP.DESCENDING,render:e=>{let{row:t}=e;return t.PoolStats?(0,Le.jsx)(Tu,{pools:t.PoolStats}):"\u2014"},align:Hc.ZP.LEFT,width:80,resizeMinWidth:60,sortable:!1},hd={name:Qu,header:"Load average",sortAccessor:e=>{let{LoadAverage:t=[]}=e;return t.slice(0,1).reduce(((e,t)=>e+t),0)},defaultOrder:Hc.ZP.DESCENDING,render:e=>{let{row:t}=e;return t.LoadAverage&&t.LoadAverage.length>0?(0,Le.jsx)(Iu,{value:t.LoadAverage[0],percents:!0,colorizeProgress:!0,capacity:100}):"\u2014"},align:Hc.ZP.LEFT,width:140,resizeMinWidth:140,sortable:!1},pd=e=>({name:Xu,width:500,resizeMinWidth:500,render:t=>{let{row:n}=t;return n.Tablets?(0,Le.jsx)(zu,{path:null!==e&&void 0!==e?e:n.TenantName,nodeIds:[n.NodeId],tablets:n.Tablets}):"\u2014"},align:Hc.ZP.LEFT,sortable:!1}),fd={name:$u,header:"Load",render:e=>{let{row:t}=e;return t.LoadAverage&&t.LoadAverage.length>0?(0,Le.jsx)(Uu,{value:t.LoadAverage[0].toFixed(),theme:ou(t.LoadAverage[0])}):"\u2014"},align:Hc.ZP.LEFT,width:80,resizeMinWidth:70,sortable:!1},md={name:Ju,header:"Process",render:e=>{let{row:t}=e;return(0,Le.jsx)(Iu,{value:t.MemoryUsed,capacity:t.MemoryLimit,formatValues:ks.q3,colorizeProgress:!0})},align:Hc.ZP.LEFT,width:140,resizeMinWidth:140,sortable:!1},gd={name:ed,header:"Tablet Cache",render:e=>{let{row:t}=e;return(0,Le.jsx)(Iu,{value:t.SharedCacheUsed,capacity:t.SharedCacheLimit,formatValues:ks.q3,colorizeProgress:!0})},align:Hc.ZP.LEFT,width:140,resizeMinWidth:140,sortable:!1},vd={name:td,header:"Query Runtime",render:e=>{let{row:t}=e;return(0,Le.jsx)(Iu,{value:t.MemoryUsedInAlloc,capacity:t.MemoryLimit,formatValues:ks.q3,colorizeProgress:!0})},align:Hc.ZP.LEFT,width:140,resizeMinWidth:140,sortable:!1},yd={name:nd,header:"Sessions",render:e=>{var t;let{row:n}=e;return null!==(t=n.TotalSessions)&&void 0!==t?t:"\u2014"},align:Hc.ZP.RIGHT,width:100,sortable:!1};function bd(e){let{tabletsPath:t,getNodeRef:n}=e;return[rd,id(n),ad,sd,ld,cd,ud,dd,hd,pd(t)]}const xd=JSON.parse('{"empty.default":"No such nodes"}'),wd=JSON.parse('{"empty.default":"\u041d\u0435\u0442 \u0443\u0437\u043b\u043e\u0432"}'),Sd=(0,We.wZ)("ydb-nodes",{ru:wd,en:xd}),_d=Me("ydb-nodes"),Cd=e=>{var t;let{path:n,additionalNodesProps:r={}}=e;const[i,o]=mc({uptimeFilter:Gl,search:Gl}),s=Na.U8.parse(i.uptimeFilter),l=null!==(t=i.search)&&void 0!==t?t:"",c=Ao(),u=!n,d=Do((e=>e.settings.problemFilter)),{autorefresh:h}=Do((e=>e.schema)),[p]=Mo(Lo.UF),f=u?Lo.ME:h,m=n&&!p,g=au.useGetNodesQuery(m?zl.CN:{path:n},{pollingInterval:f}),v=au.useGetComputeNodesQuery(m?{path:n}:zl.CN,{pollingInterval:f}),{currentData:y,isLoading:b,error:x}=m?v:g,[w,S]=a.useState({sortValue:"NodeId",sortOrder:zo.zE}),[_,C]=Bo(w,(e=>{S(e)})),E=e=>{o({search:e||void 0},"replaceIn")},T=e=>{c((0,Ro.M6)(e))},O=e=>{o({uptimeFilter:e},"replaceIn")},N=a.useMemo((()=>function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],{uptimeFilter:t,searchValue:n,problemFilter:r}=arguments.length>1?arguments[1]:void 0,i=cu(e,t);return i=lu(i,r),i=uu(i,n),i}(null===y||void 0===y?void 0:y.Nodes,{searchValue:l,uptimeFilter:s,problemFilter:d})),[y,l,s,d]),k=(null===y||void 0===y?void 0:y.TotalNodes)||0;return x?403===x.status?(0,Le.jsx)(Fc,{}):(0,Le.jsx)(zc,{error:x}):(0,Le.jsxs)($c,{children:[(0,Le.jsx)($c.Controls,{children:(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(Yc,{onChange:E,placeholder:"Host name",className:_d("search"),value:l}),(0,Le.jsx)(Bc,{value:d,onChange:T}),(0,Le.jsx)(Jc,{value:s,onChange:O}),(0,Le.jsx)(yc,{total:k,current:(null===N||void 0===N?void 0:N.length)||0,label:"Nodes",loading:b})]})}),(0,Le.jsx)($c.Table,{loading:b,children:(()=>{const e=bd({getNodeRef:r.getNodeRef}).map((e=>({...e,sortable:(0,Na.oh)(e.name)})));return!N||0!==N.length||d===Ro.pu.ALL&&s===Na.Uu.All?(0,Le.jsx)(qc,{columnsWidthLSKey:Hu,data:N||[],columns:e,settings:Lo.LE,sortOrder:_,onSort:C,emptyDataMessage:Sd("empty.default"),rowClassName:e=>_d("node",{unavailable:(0,Na.TA)(e)})}):(0,Le.jsx)(Ge,{name:"thumbsUp",width:"200"})})()})]})},Ed=e=>[...Array(e).keys()];function Td(e){return null!==e&&void 0!==e}const Od="left",Nd=-1,kd=40,jd=Me("ydb-virtual-table"),Id=e=>{let{children:t,className:n,height:r,width:i,align:o=Od}=e;return(0,Le.jsx)("td",{className:jd("row-cell",{align:o},n),style:{height:"".concat(r,"px"),width:"".concat(i,"px"),maxWidth:"".concat(i,"px")},children:t})},Pd=e=>{let{index:t,columns:n,height:r}=e;return(0,Le.jsx)("tr",{className:jd("row"),children:n.map((e=>(0,Le.jsx)(Id,{height:r,width:e.width,align:e.align,className:e.className,children:(0,Le.jsx)(rl,{style:{width:"80%",height:"50%"}})},"".concat(e.name).concat(t))))})},Dd=e=>{let{row:t,index:n,columns:r,getRowClassName:i,height:o}=e;const a=null===i||void 0===i?void 0:i(t);return(0,Le.jsx)("tr",{className:jd("row",a),children:r.map((e=>(0,Le.jsx)(Id,{height:o,width:e.width,align:e.align,className:e.className,children:e.render({row:t,index:n})},"".concat(e.name).concat(n))))})},Ad=e=>{let{columns:t,children:n}=e;return(0,Le.jsx)("tr",{className:jd("row",{empty:!0}),children:(0,Le.jsx)("td",{colSpan:t.length,className:jd("td"),children:n})})},Rd=(0,a.memo)((function(e){var t;let{id:n,chunkSize:r,rowHeight:i,columns:o,chunkData:s,observer:l,getRowClassName:c}=e;const u=a.useRef(null);a.useEffect((()=>{const e=u.current;return e&&l.observe(e),()=>{e&&l.unobserve(e)}}),[l]);const d=null===s||void 0===s||null===(t=s.data)||void 0===t?void 0:t.length,h=d?d*i:r*i;return(0,Le.jsx)("tbody",{ref:u,id:n.toString(),style:{height:"".concat(h,"px")},children:(()=>{var e;return s&&s.active?s.loading||s.error?Ed(r).map((e=>(0,Le.jsx)(Pd,{columns:o,height:i,index:e},e))):null===(e=s.data)||void 0===e?void 0:e.map(((e,t)=>(0,Le.jsx)(Dd,{index:t,row:e,columns:o,height:i,getRowClassName:c},t))):null})()})}));function Md(e){let{minWidth:t,maxWidth:n,getCurrentColumnWidth:r,onResize:i}=e;const o=a.useRef(null),[s,l]=a.useState(!1);return a.useEffect((()=>{const e=o.current;if(!e)return;let a,s,c;const u=function(e){let t,n=null;return function(){for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];t=i,"number"!==typeof n&&(n=requestAnimationFrame((()=>{e(...t),n=null})))}}((e=>{if(Ld(e),"number"!==typeof a||"number"!==typeof s)return;const r=e.clientX-a,o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:40,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0;return Math.max(t,Math.min(e,n))}(s+r,t,n);o!==c&&(c=o,null===i||void 0===i||i(c))})),d=e=>{Ld(e),void 0!==c&&(null===i||void 0===i||i(c)),l(!1),a=void 0,document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",d)},h=e=>{s=r(),Ld(e),a=e.clientX,l(!0),document.addEventListener("mousemove",u),document.addEventListener("mouseup",d)};return e.addEventListener("mousedown",h),()=>{e.removeEventListener("mousedown",h),document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",d)}}),[i,t,n,r]),(0,Le.jsx)("span",{ref:o,className:jd("resize-handler",{resizing:s}),onClick:e=>Ld(e)})}function Ld(e){e.preventDefault(),e.stopPropagation()}const Fd=e=>{let{order:t}=e;return(0,Le.jsx)("svg",{className:jd("sort-icon",{desc:-1===t}),viewBox:"0 0 10 6",width:"10",height:"6",children:(0,Le.jsx)("path",{fill:"currentColor",d:"M0 5h10l-5 -5z"})})},zd=e=>{let{sortOrder:t,sortable:n,defaultSortOrder:r}=e;return n?(0,Le.jsx)("span",{className:jd("sort-icon-container",{shadow:!t}),children:(0,Le.jsx)(Fd,{order:t||r})}):null},Bd=e=>{var t;let{column:n,resizeable:r,sortOrder:i,defaultSortOrder:o,onSort:s,rowHeight:l,onCellMount:c,onCellUnMount:u,onColumnsResize:d}=e;const h=a.useRef(null);a.useEffect((()=>{const e=h.current;return e&&(null===c||void 0===c||c(e)),()=>{e&&(null===u||void 0===u||u(e))}}),[c,u]);const p=a.useCallback((()=>{var e;return null===(e=h.current)||void 0===e?void 0:e.getBoundingClientRect().width}),[]),f=a.useCallback((e=>{null===d||void 0===d||d(n.name,e)}),[d,n.name]),m=null!==(t=n.header)&&void 0!==t?t:n.name;return(0,Le.jsx)("th",{children:(0,Le.jsxs)("div",{ref:h,className:jd("head-cell-wrapper"),style:{height:"".concat(l,"px"),width:"".concat(n.width,"px")},children:[(0,Le.jsxs)("div",{className:jd("head-cell",{align:n.align,sortable:n.sortable},n.className),onClick:()=>{n.sortable&&(null===s||void 0===s||s(n.name))},children:[(0,Le.jsx)("div",{className:jd("head-cell-content"),children:m}),(0,Le.jsx)(zd,{sortOrder:i,sortable:n.sortable,defaultSortOrder:o})]}),r?(0,Le.jsx)(Md,{maxWidth:n.resizeMaxWidth,minWidth:n.resizeMinWidth,getCurrentColumnWidth:p,onResize:f}):null]})})},Ud=e=>{let{columns:t,onSort:n,onColumnsResize:r,defaultSortOrder:i=Nd,rowHeight:o=kd}=e;const[s,l]=a.useState({}),c=e=>{let t={};if(e===s.columnId){if(s.sortOrder&&s.sortOrder!==i)return l(t),void(null===n||void 0===n||n(t));t={sortOrder:1===s.sortOrder?-1:1,columnId:e}}else t={sortOrder:i,columnId:e};null===n||void 0===n||n(t),l(t)};return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)("colgroup",{children:t.map((e=>(0,Le.jsx)("col",{style:{width:"".concat(e.width,"px")}},e.name)))}),(0,Le.jsx)("thead",{className:jd("head"),children:(0,Le.jsx)("tr",{children:t.map((e=>{var t;const n=s.columnId===e.name?s.sortOrder:void 0,a=r&&(null===(t=e.resizeable)||void 0===t||t);return(0,Le.jsx)(Bd,{column:e,resizeable:a,sortOrder:n,defaultSortOrder:i,onSort:c,rowHeight:o,onColumnsResize:r},e.name)}))})})]})},Hd=JSON.parse('{"empty":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445"}'),Vd=(0,We.wZ)("ydb-virtual-table",{ru:Hd,en:{empty:"No data"}}),Gd="infiniteTable/INIT_CHUNK",Wd="infiniteTable/REMOVE_CHUNK",qd="infiniteTable/SET_CHUNK_LOADING",Zd="infiniteTable/SET_CHUNK_DATA",Yd="infiniteTable/SET_CHUNK_ERROR",Kd="infiniteTable/RESET_CHUNKS",Qd=e=>({type:Gd,data:{id:e}}),Xd=e=>{let{limit:t,fetchData:n,columns:r,getRowClassName:i,rowHeight:o=kd,parentContainer:s,initialSortParams:l,onColumnsResize:c,renderControls:u,renderEmptyDataMessage:d,renderErrorMessage:h,dependencyArray:p}=e;const f=a.useRef(!1),m=a.useRef(null),[g,v]=a.useReducer(((e,t)=>{switch(t.type){case Zd:{const{id:n,data:r}=t.data;return{...e,[n]:{loading:!1,wasLoaded:!0,active:!0,data:r}}}case Yd:{const{id:n,error:r}=t.data;return{...e,[n]:{loading:!1,wasLoaded:!0,active:!0,error:r}}}case Gd:{const{id:n}=t.data;return{...e,[n]:{loading:!1,wasLoaded:!1,active:!0}}}case qd:{const{id:n}=t.data;return{...e,[n]:{loading:!0,wasLoaded:!1,active:!0}}}case Wd:{const{id:n}=t.data,r={...e};return delete r[n],r}case Kd:return{};default:return e}}),{}),[y,b]=a.useState(l),[x,w]=a.useState(t),[S,_]=a.useState(0),[C,E]=a.useState(),T=a.useRef({}),O=a.useCallback((async e=>{v((e=>({type:qd,data:{id:e}}))(e));const r=setTimeout((async()=>{const r=Number(e)*t;try{const i=await n(t,r,y),{data:o,total:a,found:s}=i;w(a),_(s),f.current=!0,v(((e,t)=>({type:Zd,data:{id:e,data:t}}))(e,o))}catch(i){if(null!==i&&void 0!==i&&i.isCancelled)return;v(((e,t)=>({type:Yd,data:{id:e,error:t}}))(e,i)),E(i)}}),200);if(T.current[e]){const t=T.current[e];window.clearTimeout(t)}T.current[e]=r}),[n,t,y]),N=a.useCallback((e=>{v(Qd(e))}),[]),k=a.useCallback((e=>{if(v((e=>({type:Wd,data:{id:e}}))(e)),T.current[e]){const t=T.current[e];window.clearTimeout(t),delete T.current[e]}}),[]);a.useEffect((()=>()=>{Object.values(T.current).forEach((e=>{window.clearTimeout(e)})),T.current={}}),[]),a.useEffect((()=>{for(const e of Object.keys(g)){const t=g[Number(e)];null===t||void 0===t||!t.active||null!==t&&void 0!==t&&t.loading||null!==t&&void 0!==t&&t.wasLoaded||O(e)}}),[O,g]),a.useEffect((()=>{var e;(w(t),_(0),E(void 0),v({type:Kd}),f.current=!1,s)?s.scrollTo(0,0):null===(e=m.current)||void 0===e||e.scrollTo(0,0);v(Qd("0"))}),[p,t,s]);const j=e=>{b(e),(()=>{for(const t of Object.keys(g)){var e;null!==(e=g[Number(t)])&&void 0!==e&&e.active&&v(Qd(t))}})()},I=(e=>{let{onEntry:t,onLeave:n,parentContainer:r}=e;const i=a.useRef();return a.useEffect((()=>(i.current=new IntersectionObserver((e=>{e.forEach((e=>{e.isIntersecting?t(e.target.id):n(e.target.id)}))}),{root:r,rootMargin:"100%"}),()=>{var e;null===(e=i.current)||void 0===e||e.disconnect(),i.current=void 0})),[r,t,n]),i.current})({onEntry:N,onLeave:k,parentContainer:s}),P=S||t,D=Math.ceil(P/t),A=()=>f.current&&0===S?(0,Le.jsx)("tbody",{children:(0,Le.jsx)(Ad,{columns:r,children:d?d():Vd("empty")})}):!f.current&&C?(0,Le.jsx)("tbody",{children:(0,Le.jsx)(Ad,{columns:r,children:h?h(C):(0,Le.jsx)(zc,{error:C})})}):I?Ed(D).map((e=>{const n=g[e];return(0,Le.jsx)(Rd,{observer:I,id:e,chunkSize:t,rowHeight:o,columns:r,chunkData:n,getRowClassName:i},e)})):null,R=()=>(0,Le.jsxs)("table",{className:jd("table"),children:[(0,Le.jsx)(Ud,{columns:r,onSort:j,onColumnsResize:c}),A()]});return(0,Le.jsx)("div",{ref:m,className:jd(null),children:u?(0,Le.jsxs)($c,{children:[(0,Le.jsx)($c.Controls,{children:u({inited:f.current,totalEntities:x,foundEntities:S})}),(0,Le.jsx)($c.Table,{children:R()})]}):R()})};function $d(e){let{columnsWidthLSKey:t,columns:n,...r}=e;const[i,o]=Gc(t),a=function(e,t){return e.map((e=>{var n;return{...e,width:null!==(n=t[e.name])&&void 0!==n?n:e.width}}))}(n,i);return(0,Le.jsx)(Xd,{columns:a,onColumnsResize:o,...r})}const Jd=(e,t)=>"getNodes|offset".concat(t,"|limit").concat(e),eh=async e=>{let{type:t="any",storage:n=!1,limit:r,offset:i,...o}=e;const a=await window.api.getNodes({type:t,storage:n,limit:r,offset:i,...o},{concurrentId:Jd(r,i)}),s=iu(a);return{data:s.Nodes||[],found:s.FoundNodes||0,total:s.TotalNodes||0}},th=Me("ydb-nodes"),nh=e=>{var t;let{path:n,parentContainer:r,additionalNodesProps:i}=e;const[o,s]=mc({uptimeFilter:Gl,search:Gl}),l=Na.U8.parse(o.uptimeFilter),c=null!==(t=o.search)&&void 0!==t?t:"",u=Ao(),d=Do((e=>e.settings.problemFilter)),h=a.useMemo((()=>[n,c,d,l]),[n,c,d,l]),p=a.useCallback((async function(e,t){let{sortOrder:r,columnId:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return await eh({limit:e,offset:t,path:n,filter:c,problems_only:(0,Na.eV)(d),uptime:(0,Na.RW)(l),sortOrder:r,sortValue:i})}),[n,d,c,l]),f=bd({getNodeRef:null===i||void 0===i?void 0:i.getNodeRef}).map((e=>({...e,sortable:(0,Na.oh)(e.name)})));return(0,Le.jsx)($d,{columnsWidthLSKey:Hu,parentContainer:r,columns:f,fetchData:p,limit:50,renderControls:e=>{let{totalEntities:t,foundEntities:n,inited:r}=e;return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(Yc,{onChange:e=>{s({search:e||void 0},"replaceIn")},placeholder:"Host name",className:th("search"),value:c}),(0,Le.jsx)(Bc,{value:d,onChange:e=>{u((0,Ro.M6)(e))}}),(0,Le.jsx)(Jc,{value:l,onChange:e=>{s({uptimeFilter:e},"replaceIn")}}),(0,Le.jsx)(yc,{total:t,current:n,label:"Nodes",loading:!r})]})},renderErrorMessage:e=>e&&403===e.status?(0,Le.jsx)(Fc,{position:"left"}):(0,Le.jsx)(zc,{error:e}),renderEmptyDataMessage:()=>d!==Ro.pu.ALL||l!==Na.Uu.All?(0,Le.jsx)(Ge,{name:"thumbsUp",width:"200"}):Sd("empty.default"),dependencyArray:h,getRowClassName:e=>th("node",{unavailable:(0,Na.TA)(e)})})},rh=e=>{let{parentContainer:t,...n}=e;const[r]=Mo(Lo.ET);return r?(0,Le.jsx)(nh,{parentContainer:t,...n}):(0,Le.jsx)(Cd,{...n})},ih={all:"all",missing:"missing",space:"space"},oh={groups:"groups",nodes:"nodes"},ah=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;const n=e.Limit?100*e.Used/e.Limit:0;return Math.floor(n/t)*t},sh={PoolName:"PoolName",Kind:"Kind",MediaType:"MediaType",Erasure:"Erasure",Degraded:"Degraded",Usage:"Usage",GroupId:"GroupId",Used:"Used",Limit:"Limit",Read:"Read",Write:"Write"},lh=e=>e.trim().toLowerCase(),ch=(e,t)=>{const n=lh(t);return n?e.filter((e=>{var t,r;return(null===(t=e.NodeId)||void 0===t?void 0:t.toString().includes(n))||(null===(r=e.Host)||void 0===r?void 0:r.toLowerCase().includes(n))})):e},uh=(e,t)=>{const n=lh(t);return n?e.filter((e=>{var t,r;return(null===(t=e.PoolName)||void 0===t?void 0:t.toLowerCase().includes(n))||(null===(r=e.GroupID)||void 0===r?void 0:r.toString().includes(n))})):e},dh=(e,t)=>Array.isArray(t)&&0!==t.length?e.filter((e=>{const n=e.Usage;return t.some((e=>Number(e)<=n&&n<Number(e)+5))})):e;let hh,ph;!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"}(hh||(hh={})),function(e){e.Initial="Initial",e.LocalRecoveryError="LocalRecoveryError",e.SyncGuidRecovery="SyncGuidRecovery",e.SyncGuidRecoveryError="SyncGuidRecoveryError",e.OK="OK",e.PDiskError="PDiskError"}(ph||(ph={}));const fh={Grey:0,Green:1,Blue:2,Yellow:3,Orange:4,Red:5},mh=Object.entries(fh).reduce(((e,t)=>{let[n,r]=t;return{...e,[r]:n}}),{}),gh=fh.Grey,vh=mh[gh],yh={[ph.OK]:fh.Green,[ph.Initial]:fh.Yellow,[ph.SyncGuidRecovery]:fh.Yellow,[ph.LocalRecoveryError]:fh.Red,[ph.SyncGuidRecoveryError]:fh.Red,[ph.PDiskError]:fh.Red},bh={[hh.Initial]:fh.Grey,[hh.Normal]:fh.Green,[hh.InitialFormatRead]:fh.Yellow,[hh.InitialSysLogRead]:fh.Yellow,[hh.InitialCommonLogRead]:fh.Yellow,[hh.InitialFormatReadError]:fh.Red,[hh.InitialSysLogReadError]:fh.Red,[hh.InitialSysLogParseError]:fh.Red,[hh.InitialCommonLogReadError]:fh.Red,[hh.InitialCommonLogParseError]:fh.Red,[hh.CommonLoggerInitError]:fh.Red,[hh.OpenFileError]:fh.Red,[hh.ChunkQuotaError]:fh.Red,[hh.DeviceIoError]:fh.Red},xh=tu(85,95,[al.K.Green,al.K.Yellow,al.K.Red]);function wh(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const n=function(e){return void 0!==e&&e in bh}(r=e.State)?bh[r]:gh;var r;const i=xh(t);return n!==gh&&i?Math.max(n,fh[i]):n}function Sh(e){return"VDiskId"in e}function _h(e){return void 0===e?vh:mh[e]||vh}function Ch(e){if(!Sh(e))return gh;const{DiskSpace:t,VDiskState:n,FrontQueues:r,Replicated:i,DonorMode:o}=e;if(!n)return gh;const a=Eh(t),s=function(e){var t;if(!e)return gh;return null!==(t=yh[e])&&void 0!==t?t:gh}(n),l=Math.min(fh.Orange,Eh(r));let c=Math.max(a,s,l);return i||o||c!==fh.Green||(c=fh.Blue),c}function Eh(e){var t;return e&&null!==(t=fh[e])&&void 0!==t?t:gh}const Th={HDD:"HDD",SSD:"SSD",MVME:"NVME"};function Oh(e){if(!e)return;const t=function(e,t){const n={};return Object.entries(t).reduce(((t,r)=>{let[i,o]=r;const a=e.length-t,s=a-o;return n[i]=e.substring(s,a)||"0",t+o}),0),n}(BigInt(e).toString(2),{isSolidState:1,kind:55,typeExt:8});if("1"===t.isSolidState)switch(parseInt(t.typeExt,2)){case 0:return Th.SSD;case 2:return Th.MVME}else if("0"===t.typeExt)return Th.HDD}function Nh(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=t.PDisk?kh(t.PDisk):void 0,r=function(e,t,n){const r=null!==t&&void 0!==t?t:n;if(!(0,Ou.kE)(e)||!(0,Ou.kE)(r))return;return Math.round(100*Number(e)/(Number(e)+Number(r)))}(t.AllocatedSize,t.AvailableSize,null===n||void 0===n?void 0:n.AvailableSize),i=null===(e=t.Donors)||void 0===e?void 0:e.map((e=>Nh({...e,DonorMode:!0}))),o=Ch(t);return{...t,PDisk:n,AllocatedPercent:r,Donors:i,Severity:o}}function kh(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{AvailableSize:t,TotalSize:n,Category:r}=e,i=Oh(r),o=function(e,t){if(!(0,Ou.kE)(e)||!(0,Ou.kE)(t))return;return Math.round(100*(Number(t)-Number(e))/Number(t))}(t,n),a=wh(e,o);return{...e,Type:i,AllocatedPercent:o,Severity:a}}const jh={[al.K.Grey]:0,[al.K.Blue]:0,[al.K.Green]:1,[al.K.Yellow]:100,[al.K.Orange]:1e4,[al.K.Red]:1e6},Ih=(e,t)=>{var n;const r=Nh(e);return{...r,StoragePoolName:t,Donors:null===r||void 0===r||null===(n=r.Donors)||void 0===n?void 0:n.map((e=>({...e,StoragePoolName:t})))}},Ph=(e,t)=>{var n;let r,i=0,o=0,a=0,s=0,l=0,c=0;const{Name:u,MediaType:d}=t;if(e.VDisks)for(const f of e.VDisks){const{Replicated:e,VDiskState:t,AvailableSize:n,AllocatedSize:u,PDisk:d,DiskSpace:h,ReadThroughput:p,WriteThroughput:m}=f,{Type:g,State:v,AvailableSize:y}=kh(d);e&&v===hh.Normal&&t===ph.OK||(i+=1),h&&(o+=jh[h]);const b=Number(null!==n&&void 0!==n?n:y)||0,x=Number(u)||0;a+=x,s+=b+x,l+=Number(p)||0,c+=Number(m)||0,r=!g||g!==r&&r?"Mixed":g}const h=null===(n=e.VDisks)||void 0===n?void 0:n.map((e=>Ih(e,u))),p=ah({Used:a,Limit:s},5);return{...e,VDisks:h,Usage:p,Read:l,Write:c,PoolName:u,Used:a,Limit:s,Degraded:i,UsedSpaceFlag:o,MediaType:d||r||void 0}},Dh=e=>{const{VDisks:t=[],PoolName:n,Usage:r=0,Read:i=0,Write:o=0,Used:a=0,Limit:s=0,Degraded:l=0,Kind:c,MediaType:u}=e,d=t.reduce(((e,t)=>{let{DiskSpace:n}=t;return n&&n!==al.K.Grey?e+jh[n]:e}),0),h=t.map((e=>Ih(e,n))),p=Math.floor(100*Number(r));return{...e,UsedSpaceFlag:d,PoolName:n,MediaType:u||c,VDisks:h,Usage:p,Read:Number(i),Write:Number(o),Used:Number(a),Limit:Number(s),Degraded:Number(l)}},Ah=(e,t)=>{let n=[];return e?n=e.map(Dh):null===t||void 0===t||t.forEach((e=>{var t;null===(t=e.Groups)||void 0===t||t.forEach((t=>{n.push(Ph(t,e))}))})),n},Rh=e=>{var t,n,r;const i=(null===(t=e.PDisks)||void 0===t?void 0:t.filter((e=>e.State!==hh.Normal)).length)||0,o=null===(n=e.PDisks)||void 0===n?void 0:n.map((t=>({...kh(t),NodeId:e.NodeId}))),a=null===(r=e.VDisks)||void 0===r?void 0:r.map((t=>({...Nh(t),NodeId:e.NodeId})));return{...(0,Na.Ns)(e.SystemState),NodeId:e.NodeId,PDisks:o,VDisks:a,Missing:i}},Mh=e=>{const{Nodes:t,TotalNodes:n,FoundNodes:r}=e,i=null===t||void 0===t?void 0:t.map(Rh);return{nodes:i,total:Number(n)||(null===i||void 0===i?void 0:i.length),found:Number(r)}},Lh=e=>{const{StoragePools:t,StorageGroups:n,TotalGroups:r,FoundGroups:i}=e,o=Ah(n,t);return{groups:o,total:Number(r)||o.length,found:Number(i)}},Fh=Dl.h.injectEndpoints({endpoints:e=>({getStorageNodesInfo:e.query({queryFn:async(e,t)=>{let{signal:n}=t;try{const t=await window.api.getNodes({storage:!0,type:"static",...e},{signal:n});return{data:Mh(t)}}catch(r){return{error:r}}},providesTags:["All"]}),getStorageGroupsInfo:e.query({queryFn:async(e,t)=>{let{signal:n}=t;try{const t=await window.api.getStorageInfo({version:ka.v1,...e},{signal:n});return{data:Lh(t)}}catch(r){return{error:r}}},providesTags:["All"]})}),overrideExisting:"throw"});var zh=n(95408);const Bh=zh.z.nativeEnum(ih).catch(ih.all),Uh=zh.z.nativeEnum(oh).catch(oh.groups),Hh={[oh.groups]:"Groups",[oh.nodes]:"Nodes"},Vh=e=>{let{value:t,onChange:n}=e;return(0,Le.jsxs)(Oo,{value:t,onUpdate:n,qa:"storage-type-filter",children:[(0,Le.jsx)(Oo.Option,{value:oh.groups,children:Hh[oh.groups]}),(0,Le.jsx)(Oo.Option,{value:oh.nodes,children:Hh[oh.nodes]})]})},Gh={[ih.all]:"All",[ih.missing]:"Degraded",[ih.space]:"Out of Space"},Wh=e=>{let{value:t,onChange:n}=e;return(0,Le.jsxs)(Oo,{value:t,onUpdate:n,qa:"storage-visible-entities-filter",children:[(0,Le.jsx)(Oo.Option,{value:ih.missing,children:Gh[ih.missing]}),(0,Le.jsx)(Oo.Option,{value:ih.space,children:Gh[ih.space]}),(0,Le.jsx)(Oo.Option,{value:ih.all,children:Gh[ih.all]})]})},qh=e=>{var t;const[n,r]=_t(e.open,null!==(t=e.defaultOpen)&&void 0!==t&&t,e.onOpenChange),{onClose:i}=e,o=a.useCallback((e=>{const t="boolean"===typeof e?e:!n;t!==n&&r(t),!1===t&&i&&i()}),[n,r,i]);return{open:n,toggleOpen:o}};class Zh{constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};var r,i;this.nativeEvent=t,this.target=null!==(r=n.target)&&void 0!==r?r:t.target,this.currentTarget=null!==(i=n.currentTarget)&&void 0!==i?i:t.currentTarget,this.relatedTarget=t.relatedTarget,this.bubbles=t.bubbles,this.cancelable=t.cancelable,this.defaultPrevented=t.defaultPrevented,this.eventPhase=t.eventPhase,this.isTrusted=t.isTrusted,this.timeStamp=t.timeStamp,this.type=e}isDefaultPrevented(){return this.nativeEvent.defaultPrevented}preventDefault(){this.defaultPrevented=!0,this.nativeEvent.preventDefault()}stopPropagation(){this.nativeEvent.stopPropagation(),this.isPropagationStopped=()=>!0}isPropagationStopped(){return!1}persist(){}}function Yh(e){const{onFocusWithin:t,onBlurWithin:n,onFocusWithinChange:r,isDisabled:i}=e,o=a.useRef(!1),s=a.useCallback((e=>{o.current||document.activeElement!==e.target||(o.current=!0,t&&t(e),r&&r(!0))}),[t,r]),l=a.useCallback((e=>{o.current&&(o.current=!1,n&&n(e),r&&r(!1))}),[n,r]),{onBlur:c,onFocus:u}=function(e){let{onFocus:t,onBlur:n,isDisabled:r}=e;const i=a.useRef(!1),o=a.useRef(null);a.useEffect((()=>{if(r)return;const e=function(){i.current=!1},t=function(e){if(!i.current&&o.current){const t=new FocusEvent("blur",Object.assign(Object.assign({},e),{relatedTarget:e.target,bubbles:!1,cancelable:!1}));n(new Zh("blur",t,{target:o.current,currentTarget:o.current})),o.current=null}};return window.addEventListener("focus",e,{capture:!0}),window.addEventListener("focusin",t),()=>{window.removeEventListener("focus",e,{capture:!0}),window.removeEventListener("focusin",t)}}),[r,n]);const s=a.useCallback((e=>{null!==e.relatedTarget&&e.relatedTarget!==document.body&&e.relatedTarget!==document||(n(e),o.current=null)}),[n]),l=function(e){const t=a.useRef({isFocused:!1,observer:null});a.useEffect((()=>{const e=t.current;return()=>{e.observer&&(e.observer.disconnect(),e.observer=null)}}),[]);const n=a.useCallback((n=>{const r=n.target;if(r instanceof HTMLButtonElement||r instanceof HTMLInputElement||r instanceof HTMLTextAreaElement||r instanceof HTMLSelectElement){t.current.isFocused=!0;const n=n=>{t.current.isFocused=!1,r.disabled&&(null===e||void 0===e||e(new Zh("blur",n))),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};r.addEventListener("focusout",n,{once:!0});const i=new MutationObserver((()=>{if(t.current.isFocused&&r.disabled){i.disconnect(),t.current.observer=null;const e=r===document.activeElement?null:document.activeElement;r.dispatchEvent(new FocusEvent("blur",{relatedTarget:e})),r.dispatchEvent(new FocusEvent("focusout",{relatedTarget:e,bubbles:!0}))}}));i.observe(r,{attributes:!0,attributeFilter:["disabled"]}),t.current.observer=i}}),[e]);return n}(n),c=a.useCallback((e=>{i.current=!0,o.current=e.target,l(e),t(e)}),[l,t]);return{onBlur:s,onFocus:c}}({onFocus:s,onBlur:l,isDisabled:i});return i?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:u,onBlur:c}}}var Kh=n(79805);const Qh=(0,le.Ge)("select"),Xh=(0,le.Ge)("select-control"),$h=(0,le.Ge)("select-control__button"),Jh=(0,le.Ge)("select-list"),ep=(0,le.Ge)("select-clear"),tp={s:28,m:28,l:32,xl:36},np=50,rp="select-list",ip="select-popup",op="select-sheet",ap="select-clear",sp="select-filter-input",lp=Symbol("flatten"),cp=(0,le.Ge)("select-filter"),up={padding:"4px 4px 0"},dp=a.forwardRef(((e,t)=>{const{onChange:n,onKeyDown:r,renderFilter:i,size:o,value:s,placeholder:l}=e,c=a.useRef(null);return a.useImperativeHandle(t,(()=>({focus:()=>{var e;return null===(e=c.current)||void 0===e?void 0:e.focus({preventScroll:!0})}})),[]),i?i({onChange:n,onKeyDown:r,value:s,ref:c,style:up}):a.createElement("div",{className:cp(),style:up},a.createElement(Ii,{controlRef:c,controlProps:{className:cp("input"),size:1},size:o,value:s,placeholder:l,onUpdate:n,onKeyDown:r,qa:sp}))}));dp.displayName="SelectFilter";var hp=n(85690),pp=n.n(hp),fp=n(95188),mp=n.n(fp),gp=n(38907),vp=a.createContext(null);var yp=function(e){e()},bp=function(){return yp};var xp={notify:function(){},get:function(){return[]}};function wp(e,t){var n,r=xp;function i(){a.onStateChange&&a.onStateChange()}function o(){n||(n=t?t.addNestedSub(i):e.subscribe(i),r=function(){var e=bp(),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 r=!0,i=n={callback:e,next:null,prev:n};return i.prev?i.prev.next=i:t=i,function(){r&&null!==t&&(r=!1,i.next?i.next.prev=i.prev:n=i.prev,i.prev?i.prev.next=i.next:t=i.next)}}}}())}var a={addNestedSub:function(e){return o(),r.subscribe(e)},notifyNestedSubs:function(){r.notify()},handleChangeWrapper:i,isSubscribed:function(){return Boolean(n)},trySubscribe:o,tryUnsubscribe:function(){n&&(n(),n=void 0,r.clear(),r=xp)},getListeners:function(){return r}};return a}var Sp="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement?a.useLayoutEffect:a.useEffect;const _p=function(e){var t=e.store,n=e.context,r=e.children,i=(0,a.useMemo)((function(){var e=wp(t);return{store:t,subscription:e}}),[t]),o=(0,a.useMemo)((function(){return t.getState()}),[t]);Sp((function(){var e=i.subscription;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),o!==t.getState()&&e.notifyNestedSubs(),function(){e.tryUnsubscribe(),e.onStateChange=null}}),[i,o]);var s=n||vp;return a.createElement(s.Provider,{value:i},r)};var Cp=n(60380),Ep=["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"],Tp=["reactReduxForwardedRef"],Op=[],Np=[null,null];function kp(e,t){var n=e[1];return[t.payload,n+1]}function jp(e,t,n){Sp((function(){return e.apply(void 0,t)}),n)}function Ip(e,t,n,r,i,o,a){e.current=r,t.current=i,n.current=!1,o.current&&(o.current=null,a())}function Pp(e,t,n,r,i,o,a,s,l,c){if(e){var u=!1,d=null,h=function(){if(!u){var e,n,h=t.getState();try{e=r(h,i.current)}catch(tD){n=tD,d=tD}n||(d=null),e===o.current?a.current||l():(o.current=e,s.current=e,a.current=!0,c({type:"STORE_UPDATED",payload:{error:n}}))}};n.onStateChange=h,n.trySubscribe(),h();return function(){if(u=!0,n.tryUnsubscribe(),n.onStateChange=null,d)throw d}}}var Dp=function(){return[null,0]};function Ap(e,t){void 0===t&&(t={});var n=t,r=n.getDisplayName,i=void 0===r?function(e){return"ConnectAdvanced("+e+")"}:r,o=n.methodName,s=void 0===o?"connectAdvanced":o,l=n.renderCountProp,c=void 0===l?void 0:l,u=n.shouldHandleStateChanges,d=void 0===u||u,h=n.storeKey,p=void 0===h?"store":h,f=(n.withRef,n.forwardRef),m=void 0!==f&&f,g=n.context,v=void 0===g?vp:g,y=(0,Ko.Z)(n,Ep),b=v;return function(t){var n=t.displayName||t.name||"Component",r=i(n),o=(0,qo.Z)({},y,{getDisplayName:i,methodName:s,renderCountProp:c,shouldHandleStateChanges:d,storeKey:p,displayName:r,wrappedComponentName:n,WrappedComponent:t}),l=y.pure;var u=l?a.useMemo:function(e){return e()};function h(n){var r=(0,a.useMemo)((function(){var e=n.reactReduxForwardedRef,t=(0,Ko.Z)(n,Tp);return[n.context,e,t]}),[n]),i=r[0],s=r[1],l=r[2],c=(0,a.useMemo)((function(){return i&&i.Consumer&&(0,Cp.isContextConsumer)(a.createElement(i.Consumer,null))?i:b}),[i,b]),h=(0,a.useContext)(c),p=Boolean(n.store)&&Boolean(n.store.getState)&&Boolean(n.store.dispatch);Boolean(h)&&Boolean(h.store);var f=p?n.store:h.store,m=(0,a.useMemo)((function(){return function(t){return e(t.dispatch,o)}(f)}),[f]),g=(0,a.useMemo)((function(){if(!d)return Np;var e=wp(f,p?null:h.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]}),[f,p,h]),v=g[0],y=g[1],x=(0,a.useMemo)((function(){return p?h:(0,qo.Z)({},h,{subscription:v})}),[p,h,v]),w=(0,a.useReducer)(kp,Op,Dp),S=w[0][0],_=w[1];if(S&&S.error)throw S.error;var C=(0,a.useRef)(),E=(0,a.useRef)(l),T=(0,a.useRef)(),O=(0,a.useRef)(!1),N=u((function(){return T.current&&l===E.current?T.current:m(f.getState(),l)}),[f,S,l]);jp(Ip,[E,C,O,l,N,T,y]),jp(Pp,[d,f,v,m,E,C,O,T,y,_],[f,v,m]);var k=(0,a.useMemo)((function(){return a.createElement(t,(0,qo.Z)({},N,{ref:s}))}),[s,t,N]);return(0,a.useMemo)((function(){return d?a.createElement(c.Provider,{value:x},k):k}),[c,k,x])}var f=l?a.memo(h):h;if(f.WrappedComponent=t,f.displayName=h.displayName=r,m){var g=a.forwardRef((function(e,t){return a.createElement(f,(0,qo.Z)({},e,{reactReduxForwardedRef:t}))}));return g.displayName=r,g.WrappedComponent=t,Xo()(g,t)}return Xo()(f,t)}}function Rp(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function Mp(e,t){if(Rp(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=0;i<n.length;i++)if(!Object.prototype.hasOwnProperty.call(t,n[i])||!Rp(e[n[i]],t[n[i]]))return!1;return!0}function Lp(e){return function(t,n){var r=e(t,n);function i(){return r}return i.dependsOnOwnProps=!1,i}}function Fp(e){return null!==e.dependsOnOwnProps&&void 0!==e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function zp(e,t){return function(t,n){n.displayName;var r=function(e,t){return r.dependsOnOwnProps?r.mapToProps(e,t):r.mapToProps(e)};return r.dependsOnOwnProps=!0,r.mapToProps=function(t,n){r.mapToProps=e,r.dependsOnOwnProps=Fp(e);var i=r(t,n);return"function"===typeof i&&(r.mapToProps=i,r.dependsOnOwnProps=Fp(i),i=r(t,n)),i},r}}const Bp=[function(e){return"function"===typeof e?zp(e):void 0},function(e){return e?void 0:Lp((function(e){return{dispatch:e}}))},function(e){return e&&"object"===typeof e?Lp((function(t){return function(e,t){var n={},r=function(r){var i=e[r];"function"===typeof i&&(n[r]=function(){return t(i.apply(void 0,arguments))})};for(var i in e)r(i);return n}(e,t)})):void 0}];const Up=[function(e){return"function"===typeof e?zp(e):void 0},function(e){return e?void 0:Lp((function(){return{}}))}];function Hp(e,t,n){return(0,qo.Z)({},n,e,t)}const Vp=[function(e){return"function"===typeof e?function(e){return function(t,n){n.displayName;var r,i=n.pure,o=n.areMergedPropsEqual,a=!1;return function(t,n,s){var l=e(t,n,s);return a?i&&o(l,r)||(r=l):(a=!0,r=l),r}}}(e):void 0},function(e){return e?void 0:function(){return Hp}}];var Gp=["initMapStateToProps","initMapDispatchToProps","initMergeProps"];function Wp(e,t,n,r){return function(i,o){return n(e(i,o),t(r,o),o)}}function qp(e,t,n,r,i){var o,a,s,l,c,u=i.areStatesEqual,d=i.areOwnPropsEqual,h=i.areStatePropsEqual,p=!1;function f(i,p){var f=!d(p,a),m=!u(i,o,p,a);return o=i,a=p,f&&m?(s=e(o,a),t.dependsOnOwnProps&&(l=t(r,a)),c=n(s,l,a)):f?(e.dependsOnOwnProps&&(s=e(o,a)),t.dependsOnOwnProps&&(l=t(r,a)),c=n(s,l,a)):m?function(){var t=e(o,a),r=!h(t,s);return s=t,r&&(c=n(s,l,a)),c}():c}return function(i,u){return p?f(i,u):(s=e(o=i,a=u),l=t(r,a),c=n(s,l,a),p=!0,c)}}function Zp(e,t){var n=t.initMapStateToProps,r=t.initMapDispatchToProps,i=t.initMergeProps,o=(0,Ko.Z)(t,Gp),a=n(e,o),s=r(e,o),l=i(e,o);return(o.pure?qp:Wp)(a,s,l,e,o)}var Yp=["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"];function Kp(e,t,n){for(var r=t.length-1;r>=0;r--){var i=t[r](e);if(i)return i}return function(t,r){throw new Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function Qp(e,t){return e===t}function Xp(e){var t=void 0===e?{}:e,n=t.connectHOC,r=void 0===n?Ap:n,i=t.mapStateToPropsFactories,o=void 0===i?Up:i,a=t.mapDispatchToPropsFactories,s=void 0===a?Bp:a,l=t.mergePropsFactories,c=void 0===l?Vp:l,u=t.selectorFactory,d=void 0===u?Zp:u;return function(e,t,n,i){void 0===i&&(i={});var a=i,l=a.pure,u=void 0===l||l,h=a.areStatesEqual,p=void 0===h?Qp:h,f=a.areOwnPropsEqual,m=void 0===f?Mp:f,g=a.areStatePropsEqual,v=void 0===g?Mp:g,y=a.areMergedPropsEqual,b=void 0===y?Mp:y,x=(0,Ko.Z)(a,Yp),w=Kp(e,o,"mapStateToProps"),S=Kp(t,s,"mapDispatchToProps"),_=Kp(n,c,"mergeProps");return r(d,(0,qo.Z)({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:w,initMapDispatchToProps:S,initMergeProps:_,pure:u,areStatesEqual:p,areOwnPropsEqual:m,areStatePropsEqual:v,areMergedPropsEqual:b},x))}}const $p=Xp();var Jp;function ef(e,t){var n=(0,a.useState)((function(){return{inputs:t,result:e()}}))[0],r=(0,a.useRef)(!0),i=(0,a.useRef)(n),o=r.current||Boolean(t&&i.current.inputs&&function(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}(t,i.current.inputs)),s=o?i.current:{inputs:t,result:e()};return(0,a.useEffect)((function(){r.current=!1,i.current=s}),[s]),s.result}Jp=Dt.unstable_batchedUpdates,yp=Jp;var tf=ef,nf=function(e,t){return ef((function(){return e}),t)},rf=function(e){var t=e.top,n=e.right,r=e.bottom,i=e.left;return{top:t,right:n,bottom:r,left:i,width:n-i,height:r-t,x:i,y:t,center:{x:(n+i)/2,y:(r+t)/2}}},of=function(e,t){return{top:e.top-t.top,left:e.left-t.left,bottom:e.bottom+t.bottom,right:e.right+t.right}},af=function(e,t){return{top:e.top+t.top,left:e.left+t.left,bottom:e.bottom-t.bottom,right:e.right-t.right}},sf={top:0,right:0,bottom:0,left:0},lf=function(e){var t=e.borderBox,n=e.margin,r=void 0===n?sf:n,i=e.border,o=void 0===i?sf:i,a=e.padding,s=void 0===a?sf:a,l=rf(of(t,r)),c=rf(af(t,o)),u=rf(af(c,s));return{marginBox:l,borderBox:rf(t),paddingBox:c,contentBox:u,margin:r,border:o,padding:s}},cf=function(e){var t=e.slice(0,-2);if("px"!==e.slice(-2))return 0;var n=Number(t);return isNaN(n)&&(0,Wo.Z)(!1),n},uf=function(e,t){var n,r,i=e.borderBox,o=e.border,a=e.margin,s=e.padding,l=(r=t,{top:(n=i).top+r.y,left:n.left+r.x,bottom:n.bottom+r.y,right:n.right+r.x});return lf({borderBox:l,border:o,margin:a,padding:s})},df=function(e,t){return void 0===t&&(t={x:window.pageXOffset,y:window.pageYOffset}),uf(e,t)},hf=function(e,t){var n={top:cf(t.marginTop),right:cf(t.marginRight),bottom:cf(t.marginBottom),left:cf(t.marginLeft)},r={top:cf(t.paddingTop),right:cf(t.paddingRight),bottom:cf(t.paddingBottom),left:cf(t.paddingLeft)},i={top:cf(t.borderTopWidth),right:cf(t.borderRightWidth),bottom:cf(t.borderBottomWidth),left:cf(t.borderLeftWidth)};return lf({borderBox:e,margin:n,padding:r,border:i})},pf=function(e){var t=e.getBoundingClientRect(),n=window.getComputedStyle(e);return hf(t,n)},ff=Number.isNaN||function(e){return"number"===typeof e&&e!==e};function mf(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(r=e[n],i=t[n],!(r===i||ff(r)&&ff(i)))return!1;var r,i;return!0}const gf=function(e,t){var n;void 0===t&&(t=mf);var r,i=[],o=!1;return function(){for(var a=[],s=0;s<arguments.length;s++)a[s]=arguments[s];return o&&n===this&&t(a,i)||(r=e.apply(this,a),o=!0,n=this,i=a),r}};const vf=function(e){var t=[],n=null,r=function(){for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];t=i,n||(n=requestAnimationFrame((function(){n=null,e.apply(void 0,t)})))};return r.cancel=function(){n&&(cancelAnimationFrame(n),n=null)},r};var yf=!0,bf=/[ \t]{2,}/g,xf=/^[ \t]*/gm,wf=function(e){return e.replace(bf," ").replace(xf,"").trim()},Sf=function(e){return wf("\n %creact-beautiful-dnd\n\n %c"+wf(e)+"\n\n %c\ud83d\udc77\u200d This is a development only message. It will be removed in production builds.\n")},_f=function(e){return[Sf(e),"color: #00C584; font-size: 1.2em; font-weight: bold;","line-height: 1.5","color: #723874;"]},Cf="__react-beautiful-dnd-disable-dev-warnings";function Ef(e,t){var n;yf||"undefined"!==typeof window&&window[Cf]||(n=console)[e].apply(n,_f(t))}Ef.bind(null,"warn"),Ef.bind(null,"error");function Tf(){}function Of(e,t,n){var r=t.map((function(t){var r=function(e,t){return(0,qo.Z)({},e,{},t)}(n,t.options);return e.addEventListener(t.eventName,t.fn,r),function(){e.removeEventListener(t.eventName,t.fn,r)}}));return function(){r.forEach((function(e){e()}))}}var Nf=!0,kf="Invariant failed";function jf(e){this.message=e}function If(e,t){if(!e)throw new jf(Nf?kf:kf+": "+(t||""))}jf.prototype.toString=function(){return this.message};var Pf=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return(t=e.call.apply(e,[this].concat(r))||this).callbacks=null,t.unbind=Tf,t.onWindowError=function(e){var n=t.getCallbacks();n.isDragging()&&n.tryAbort(),e.error instanceof jf&&e.preventDefault()},t.getCallbacks=function(){if(!t.callbacks)throw new Error("Unable to find AppCallbacks in <ErrorBoundary/>");return t.callbacks},t.setCallbacks=function(e){t.callbacks=e},t}(0,Uo.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.unbind=Of(window,[{eventName:"error",fn:this.onWindowError}])},n.componentDidCatch=function(e){if(!(e instanceof jf))throw e;this.setState({})},n.componentWillUnmount=function(){this.unbind()},n.render=function(){return this.props.children(this.setCallbacks)},t}(a.Component),Df=function(e){return e+1},Af=function(e,t){var n=e.droppableId===t.droppableId,r=Df(e.index),i=Df(t.index);return n?"\n You have moved the item from position "+r+"\n to position "+i+"\n ":"\n You have moved the item from position "+r+"\n in list "+e.droppableId+"\n to list "+t.droppableId+"\n in position "+i+"\n "},Rf=function(e,t,n){return t.droppableId===n.droppableId?"\n The item "+e+"\n has been combined with "+n.draggableId:"\n The item "+e+"\n in list "+t.droppableId+"\n has been combined with "+n.draggableId+"\n in list "+n.droppableId+"\n "},Mf=function(e){return"\n The item has returned to its starting position\n of "+Df(e.index)+"\n"},Lf={dragHandleUsageInstructions:"\n Press space bar to start a drag.\n When dragging you can use the arrow keys to move the item around and escape to cancel.\n Some screen readers may require you to be in focus mode or to use your pass through key\n",onDragStart:function(e){return"\n You have lifted an item in position "+Df(e.source.index)+"\n"},onDragUpdate:function(e){var t=e.destination;if(t)return Af(e.source,t);var n=e.combine;return n?Rf(e.draggableId,e.source,n):"You are over an area that cannot be dropped on"},onDragEnd:function(e){if("CANCEL"===e.reason)return"\n Movement cancelled.\n "+Mf(e.source)+"\n ";var t=e.destination,n=e.combine;return t?"\n You have dropped the item.\n "+Af(e.source,t)+"\n ":n?"\n You have dropped the item.\n "+Rf(e.draggableId,e.source,n)+"\n ":"\n The item has been dropped while not over a drop area.\n "+Mf(e.source)+"\n "}},Ff={x:0,y:0},zf=function(e,t){return{x:e.x+t.x,y:e.y+t.y}},Bf=function(e,t){return{x:e.x-t.x,y:e.y-t.y}},Uf=function(e,t){return e.x===t.x&&e.y===t.y},Hf=function(e){return{x:0!==e.x?-e.x:0,y:0!==e.y?-e.y:0}},Vf=function(e,t,n){var r;return void 0===n&&(n=0),(r={})[e]=t,r["x"===e?"y":"x"]=n,r},Gf=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},Wf=function(e,t){return Math.min.apply(Math,t.map((function(t){return Gf(e,t)})))},qf=function(e){return function(t){return{x:e(t.x),y:e(t.y)}}},Zf=function(e,t){return{top:e.top+t.y,left:e.left+t.x,bottom:e.bottom+t.y,right:e.right+t.x}},Yf=function(e){return[{x:e.left,y:e.top},{x:e.right,y:e.top},{x:e.left,y:e.bottom},{x:e.right,y:e.bottom}]},Kf=function(e,t){return t&&t.shouldClipSubject?function(e,t){var n=rf({top:Math.max(t.top,e.top),right:Math.min(t.right,e.right),bottom:Math.min(t.bottom,e.bottom),left:Math.max(t.left,e.left)});return n.width<=0||n.height<=0?null:n}(t.pageMarginBox,e):rf(e)},Qf=function(e){var t=e.page,n=e.withPlaceholder,r=e.axis,i=e.frame,o=function(e,t){return t?Zf(e,t.scroll.diff.displacement):e}(t.marginBox,i),a=function(e,t,n){var r;return n&&n.increasedBy?(0,qo.Z)({},e,((r={})[t.end]=e[t.end]+n.increasedBy[t.line],r)):e}(o,r,n);return{page:t,withPlaceholder:n,active:Kf(a,i)}},Xf=function(e,t){e.frame||If(!1);var n=e.frame,r=Bf(t,n.scroll.initial),i=Hf(r),o=(0,qo.Z)({},n,{scroll:{initial:n.scroll.initial,current:t,diff:{value:r,displacement:i},max:n.scroll.max}}),a=Qf({page:e.subject.page,withPlaceholder:e.subject.withPlaceholder,axis:e.axis,frame:o});return(0,qo.Z)({},e,{frame:o,subject:a})};function $f(e){return Object.values?Object.values(e):Object.keys(e).map((function(t){return e[t]}))}function Jf(e,t){if(e.findIndex)return e.findIndex(t);for(var n=0;n<e.length;n++)if(t(e[n]))return n;return-1}function em(e,t){if(e.find)return e.find(t);var n=Jf(e,t);return-1!==n?e[n]:void 0}function tm(e){return Array.prototype.slice.call(e)}var nm=gf((function(e){return e.reduce((function(e,t){return e[t.descriptor.id]=t,e}),{})})),rm=gf((function(e){return e.reduce((function(e,t){return e[t.descriptor.id]=t,e}),{})})),im=gf((function(e){return $f(e)})),om=gf((function(e){return $f(e)})),am=gf((function(e,t){var n=om(t).filter((function(t){return e===t.descriptor.droppableId})).sort((function(e,t){return e.descriptor.index-t.descriptor.index}));return n}));function sm(e){return e.at&&"REORDER"===e.at.type?e.at.destination:null}function lm(e){return e.at&&"COMBINE"===e.at.type?e.at.combine:null}var cm=gf((function(e,t){return t.filter((function(t){return t.descriptor.id!==e.descriptor.id}))})),um=function(e,t){return e.descriptor.droppableId===t.descriptor.id},dm={point:Ff,value:0},hm={invisible:{},visible:{},all:[]},pm={displaced:hm,displacedBy:dm,at:null},fm=function(e,t){return function(n){return e<=n&&n<=t}},mm=function(e){var t=fm(e.top,e.bottom),n=fm(e.left,e.right);return function(r){if(t(r.top)&&t(r.bottom)&&n(r.left)&&n(r.right))return!0;var i=t(r.top)||t(r.bottom),o=n(r.left)||n(r.right);if(i&&o)return!0;var a=r.top<e.top&&r.bottom>e.bottom,s=r.left<e.left&&r.right>e.right;return!(!a||!s)||(a&&o||s&&i)}},gm=function(e){var t=fm(e.top,e.bottom),n=fm(e.left,e.right);return function(e){return t(e.top)&&t(e.bottom)&&n(e.left)&&n(e.right)}},vm={direction:"vertical",line:"y",crossAxisLine:"x",start:"top",end:"bottom",size:"height",crossAxisStart:"left",crossAxisEnd:"right",crossAxisSize:"width"},ym={direction:"horizontal",line:"x",crossAxisLine:"y",start:"left",end:"right",size:"width",crossAxisStart:"top",crossAxisEnd:"bottom",crossAxisSize:"height"},bm=function(e){var t=e.target,n=e.destination,r=e.viewport,i=e.withDroppableDisplacement,o=e.isVisibleThroughFrameFn,a=i?function(e,t){var n=t.frame?t.frame.scroll.diff.displacement:Ff;return Zf(e,n)}(t,n):t;return function(e,t,n){return!!t.subject.active&&n(t.subject.active)(e)}(a,n,o)&&function(e,t,n){return n(t)(e)}(a,r,o)},xm=function(e){return bm((0,qo.Z)({},e,{isVisibleThroughFrameFn:mm}))},wm=function(e){return bm((0,qo.Z)({},e,{isVisibleThroughFrameFn:gm}))},Sm=function(e,t,n){if("boolean"===typeof n)return n;if(!t)return!0;var r=t.invisible,i=t.visible;if(r[e])return!1;var o=i[e];return!o||o.shouldAnimate};function _m(e){var t=e.afterDragging,n=e.destination,r=e.displacedBy,i=e.viewport,o=e.forceShouldAnimate,a=e.last;return t.reduce((function(e,t){var s=function(e,t){var n=e.page.marginBox,r={top:t.point.y,right:0,bottom:0,left:t.point.x};return rf(of(n,r))}(t,r),l=t.descriptor.id;if(e.all.push(l),!xm({target:s,destination:n,viewport:i,withDroppableDisplacement:!0}))return e.invisible[t.descriptor.id]=!0,e;var c={draggableId:l,shouldAnimate:Sm(l,a,o)};return e.visible[l]=c,e}),{all:[],visible:{},invisible:{}})}function Cm(e){var t=e.insideDestination,n=e.inHomeList,r=e.displacedBy,i=e.destination,o=function(e,t){if(!e.length)return 0;var n=e[e.length-1].descriptor.index;return t.inHomeList?n:n+1}(t,{inHomeList:n});return{displaced:hm,displacedBy:r,at:{type:"REORDER",destination:{droppableId:i.descriptor.id,index:o}}}}function Em(e){var t=e.draggable,n=e.insideDestination,r=e.destination,i=e.viewport,o=e.displacedBy,a=e.last,s=e.index,l=e.forceShouldAnimate,c=um(t,r);if(null==s)return Cm({insideDestination:n,inHomeList:c,displacedBy:o,destination:r});var u=em(n,(function(e){return e.descriptor.index===s}));if(!u)return Cm({insideDestination:n,inHomeList:c,displacedBy:o,destination:r});var d=cm(t,n),h=n.indexOf(u);return{displaced:_m({afterDragging:d.slice(h),destination:r,displacedBy:o,last:a,viewport:i.frame,forceShouldAnimate:l}),displacedBy:o,at:{type:"REORDER",destination:{droppableId:r.descriptor.id,index:s}}}}function Tm(e,t){return Boolean(t.effected[e])}var Om=function(e){var t=e.isMovingForward,n=e.isInHomeList,r=e.draggable,i=e.draggables,o=e.destination,a=e.insideDestination,s=e.previousImpact,l=e.viewport,c=e.afterCritical,u=s.at;if(u||If(!1),"REORDER"===u.type){var d=function(e){var t=e.isMovingForward,n=e.isInHomeList,r=e.insideDestination,i=e.location;if(!r.length)return null;var o=i.index,a=t?o+1:o-1,s=r[0].descriptor.index,l=r[r.length-1].descriptor.index;return a<s||a>(n?l:l+1)?null:a}({isMovingForward:t,isInHomeList:n,location:u.destination,insideDestination:a});return null==d?null:Em({draggable:r,insideDestination:a,destination:o,viewport:l,last:s.displaced,displacedBy:s.displacedBy,index:d})}var h=function(e){var t=e.isMovingForward,n=e.destination,r=e.draggables,i=e.combine,o=e.afterCritical;if(!n.isCombineEnabled)return null;var a=i.draggableId,s=r[a].descriptor.index;return Tm(a,o)?t?s:s-1:t?s+1:s}({isMovingForward:t,destination:o,displaced:s.displaced,draggables:i,combine:u.combine,afterCritical:c});return null==h?null:Em({draggable:r,insideDestination:a,destination:o,viewport:l,last:s.displaced,displacedBy:s.displacedBy,index:h})},Nm=function(e){var t=e.afterCritical,n=e.impact,r=e.draggables,i=lm(n);i||If(!1);var o=i.draggableId,a=r[o].page.borderBox.center,s=function(e){var t=e.displaced,n=e.afterCritical,r=e.combineWith,i=e.displacedBy,o=Boolean(t.visible[r]||t.invisible[r]);return Tm(r,n)?o?Ff:Hf(i.point):o?i.point:Ff}({displaced:n.displaced,afterCritical:t,combineWith:o,displacedBy:n.displacedBy});return zf(a,s)},km=function(e,t){return t.margin[e.start]+t.borderBox[e.size]/2},jm=function(e,t,n){return t[e.crossAxisStart]+n.margin[e.crossAxisStart]+n.borderBox[e.crossAxisSize]/2},Im=function(e){var t=e.axis,n=e.moveRelativeTo,r=e.isMoving;return Vf(t.line,n.marginBox[t.end]+km(t,r),jm(t,n.marginBox,r))},Pm=function(e){var t=e.axis,n=e.moveRelativeTo,r=e.isMoving;return Vf(t.line,n.marginBox[t.start]-function(e,t){return t.margin[e.end]+t.borderBox[e.size]/2}(t,r),jm(t,n.marginBox,r))},Dm=function(e){var t=e.impact,n=e.draggable,r=e.draggables,i=e.droppable,o=e.afterCritical,a=am(i.descriptor.id,r),s=n.page,l=i.axis;if(!a.length)return function(e){var t=e.axis,n=e.moveInto,r=e.isMoving;return Vf(t.line,n.contentBox[t.start]+km(t,r),jm(t,n.contentBox,r))}({axis:l,moveInto:i.page,isMoving:s});var c=t.displaced,u=t.displacedBy,d=c.all[0];if(d){var h=r[d];if(Tm(d,o))return Pm({axis:l,moveRelativeTo:h.page,isMoving:s});var p=uf(h.page,u.point);return Pm({axis:l,moveRelativeTo:p,isMoving:s})}var f=a[a.length-1];if(f.descriptor.id===n.descriptor.id)return s.borderBox.center;if(Tm(f.descriptor.id,o)){var m=uf(f.page,Hf(o.displacedBy.point));return Im({axis:l,moveRelativeTo:m,isMoving:s})}return Im({axis:l,moveRelativeTo:f.page,isMoving:s})},Am=function(e,t){var n=e.frame;return n?zf(t,n.scroll.diff.displacement):t},Rm=function(e){var t=function(e){var t=e.impact,n=e.draggable,r=e.droppable,i=e.draggables,o=e.afterCritical,a=n.page.borderBox.center,s=t.at;return r&&s?"REORDER"===s.type?Dm({impact:t,draggable:n,draggables:i,droppable:r,afterCritical:o}):Nm({impact:t,draggables:i,afterCritical:o}):a}(e),n=e.droppable;return n?Am(n,t):t},Mm=function(e,t){var n=Bf(t,e.scroll.initial),r=Hf(n);return{frame:rf({top:t.y,bottom:t.y+e.frame.height,left:t.x,right:t.x+e.frame.width}),scroll:{initial:e.scroll.initial,max:e.scroll.max,current:t,diff:{value:n,displacement:r}}}};function Lm(e,t){return e.map((function(e){return t[e]}))}var Fm=function(e){var t=e.pageBorderBoxCenter,n=e.draggable,r=function(e,t){return zf(e.scroll.diff.displacement,t)}(e.viewport,t),i=Bf(r,n.page.borderBox.center);return zf(n.client.borderBox.center,i)},zm=function(e){var t=e.draggable,n=e.destination,r=e.newPageBorderBoxCenter,i=e.viewport,o=e.withDroppableDisplacement,a=e.onlyOnMainAxis,s=void 0!==a&&a,l=Bf(r,t.page.borderBox.center),c={target:Zf(t.page.borderBox,l),destination:n,withDroppableDisplacement:o,viewport:i};return s?function(e){return bm((0,qo.Z)({},e,{isVisibleThroughFrameFn:(t=e.destination.axis,function(e){var n=fm(e.top,e.bottom),r=fm(e.left,e.right);return function(e){return t===vm?n(e.top)&&n(e.bottom):r(e.left)&&r(e.right)}})}));var t}(c):wm(c)},Bm=function(e){var t=e.isMovingForward,n=e.draggable,r=e.destination,i=e.draggables,o=e.previousImpact,a=e.viewport,s=e.previousPageBorderBoxCenter,l=e.previousClientSelection,c=e.afterCritical;if(!r.isEnabled)return null;var u=am(r.descriptor.id,i),d=um(n,r),h=function(e){var t=e.isMovingForward,n=e.draggable,r=e.destination,i=e.insideDestination,o=e.previousImpact;if(!r.isCombineEnabled)return null;if(!sm(o))return null;function a(e){var t={type:"COMBINE",combine:{draggableId:e,droppableId:r.descriptor.id}};return(0,qo.Z)({},o,{at:t})}var s=o.displaced.all,l=s.length?s[0]:null;if(t)return l?a(l):null;var c=cm(n,i);if(!l)return c.length?a(c[c.length-1].descriptor.id):null;var u=Jf(c,(function(e){return e.descriptor.id===l}));-1===u&&If(!1);var d=u-1;return d<0?null:a(c[d].descriptor.id)}({isMovingForward:t,draggable:n,destination:r,insideDestination:u,previousImpact:o})||Om({isMovingForward:t,isInHomeList:d,draggable:n,draggables:i,destination:r,insideDestination:u,previousImpact:o,viewport:a,afterCritical:c});if(!h)return null;var p=Rm({impact:h,draggable:n,droppable:r,draggables:i,afterCritical:c});if(zm({draggable:n,destination:r,newPageBorderBoxCenter:p,viewport:a.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0}))return{clientSelection:Fm({pageBorderBoxCenter:p,draggable:n,viewport:a}),impact:h,scrollJumpRequest:null};var f=Bf(p,s),m=function(e){var t=e.impact,n=e.viewport,r=e.destination,i=e.draggables,o=e.maxScrollChange,a=Mm(n,zf(n.scroll.current,o)),s=r.frame?Xf(r,zf(r.frame.scroll.current,o)):r,l=t.displaced,c=_m({afterDragging:Lm(l.all,i),destination:r,displacedBy:t.displacedBy,viewport:a.frame,last:l,forceShouldAnimate:!1}),u=_m({afterDragging:Lm(l.all,i),destination:s,displacedBy:t.displacedBy,viewport:n.frame,last:l,forceShouldAnimate:!1}),d={},h={},p=[l,c,u];return l.all.forEach((function(e){var t=function(e,t){for(var n=0;n<t.length;n++){var r=t[n].visible[e];if(r)return r}return null}(e,p);t?h[e]=t:d[e]=!0})),(0,qo.Z)({},t,{displaced:{all:l.all,invisible:d,visible:h}})}({impact:h,viewport:a,destination:r,draggables:i,maxScrollChange:f});return{clientSelection:l,impact:m,scrollJumpRequest:f}},Um=function(e){var t=e.subject.active;return t||If(!1),t},Hm=function(e,t){var n=e.page.borderBox.center;return Tm(e.descriptor.id,t)?Bf(n,t.displacedBy.point):n},Vm=function(e,t){var n=e.page.borderBox;return Tm(e.descriptor.id,t)?Zf(n,Hf(t.displacedBy.point)):n},Gm=gf((function(e,t){var n=t[e.line];return{value:n,point:Vf(e.line,n)}})),Wm=function(e,t){return(0,qo.Z)({},e,{scroll:(0,qo.Z)({},e.scroll,{max:t})})},qm=function(e,t,n){var r=e.frame;um(t,e)&&If(!1),e.subject.withPlaceholder&&If(!1);var i=Gm(e.axis,t.displaceBy).point,o=function(e,t,n){var r=e.axis;if("virtual"===e.descriptor.mode)return Vf(r.line,t[r.line]);var i=e.subject.page.contentBox[r.size],o=am(e.descriptor.id,n).reduce((function(e,t){return e+t.client.marginBox[r.size]}),0)+t[r.line]-i;return o<=0?null:Vf(r.line,o)}(e,i,n),a={placeholderSize:i,increasedBy:o,oldFrameMaxScroll:e.frame?e.frame.scroll.max:null};if(!r){var s=Qf({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:e.frame});return(0,qo.Z)({},e,{subject:s})}var l=o?zf(r.scroll.max,o):r.scroll.max,c=Wm(r,l),u=Qf({page:e.subject.page,withPlaceholder:a,axis:e.axis,frame:c});return(0,qo.Z)({},e,{subject:u,frame:c})},Zm=function(e){var t=e.isMovingForward,n=e.previousPageBorderBoxCenter,r=e.draggable,i=e.isOver,o=e.draggables,a=e.droppables,s=e.viewport,l=e.afterCritical,c=function(e){var t=e.isMovingForward,n=e.pageBorderBoxCenter,r=e.source,i=e.droppables,o=e.viewport,a=r.subject.active;if(!a)return null;var s=r.axis,l=fm(a[s.start],a[s.end]),c=im(i).filter((function(e){return e!==r})).filter((function(e){return e.isEnabled})).filter((function(e){return Boolean(e.subject.active)})).filter((function(e){return mm(o.frame)(Um(e))})).filter((function(e){var n=Um(e);return t?a[s.crossAxisEnd]<n[s.crossAxisEnd]:n[s.crossAxisStart]<a[s.crossAxisStart]})).filter((function(e){var t=Um(e),n=fm(t[s.start],t[s.end]);return l(t[s.start])||l(t[s.end])||n(a[s.start])||n(a[s.end])})).sort((function(e,n){var r=Um(e)[s.crossAxisStart],i=Um(n)[s.crossAxisStart];return t?r-i:i-r})).filter((function(e,t,n){return Um(e)[s.crossAxisStart]===Um(n[0])[s.crossAxisStart]}));if(!c.length)return null;if(1===c.length)return c[0];var u=c.filter((function(e){return fm(Um(e)[s.start],Um(e)[s.end])(n[s.line])}));return 1===u.length?u[0]:u.length>1?u.sort((function(e,t){return Um(e)[s.start]-Um(t)[s.start]}))[0]:c.sort((function(e,t){var r=Wf(n,Yf(Um(e))),i=Wf(n,Yf(Um(t)));return r!==i?r-i:Um(e)[s.start]-Um(t)[s.start]}))[0]}({isMovingForward:t,pageBorderBoxCenter:n,source:i,droppables:a,viewport:s});if(!c)return null;var u=am(c.descriptor.id,o),d=function(e){var t=e.pageBorderBoxCenter,n=e.viewport,r=e.destination,i=e.insideDestination,o=e.afterCritical,a=i.filter((function(e){return wm({target:Vm(e,o),destination:r,viewport:n.frame,withDroppableDisplacement:!0})})).sort((function(e,n){var i=Gf(t,Am(r,Hm(e,o))),a=Gf(t,Am(r,Hm(n,o)));return i<a?-1:a<i?1:e.descriptor.index-n.descriptor.index}));return a[0]||null}({pageBorderBoxCenter:n,viewport:s,destination:c,insideDestination:u,afterCritical:l}),h=function(e){var t=e.previousPageBorderBoxCenter,n=e.moveRelativeTo,r=e.insideDestination,i=e.draggable,o=e.draggables,a=e.destination,s=e.viewport,l=e.afterCritical;if(!n){if(r.length)return null;var c={displaced:hm,displacedBy:dm,at:{type:"REORDER",destination:{droppableId:a.descriptor.id,index:0}}},u=Rm({impact:c,draggable:i,droppable:a,draggables:o,afterCritical:l}),d=um(i,a)?a:qm(a,i,o);return zm({draggable:i,destination:d,newPageBorderBoxCenter:u,viewport:s.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0})?c:null}var h=Boolean(t[a.axis.line]<=n.page.borderBox.center[a.axis.line]),p=function(){var e=n.descriptor.index;return n.descriptor.id===i.descriptor.id||h?e:e+1}(),f=Gm(a.axis,i.displaceBy);return Em({draggable:i,insideDestination:r,destination:a,viewport:s,displacedBy:f,last:hm,index:p})}({previousPageBorderBoxCenter:n,destination:c,draggable:r,draggables:o,moveRelativeTo:d,insideDestination:u,viewport:s,afterCritical:l});if(!h)return null;var p=Rm({impact:h,draggable:r,droppable:c,draggables:o,afterCritical:l});return{clientSelection:Fm({pageBorderBoxCenter:p,draggable:r,viewport:s}),impact:h,scrollJumpRequest:null}},Ym=function(e){var t=e.at;return t?"REORDER"===t.type?t.destination.droppableId:t.combine.droppableId:null},Km=function(e){var t=e.state,n=e.type,r=function(e,t){var n=Ym(e);return n?t[n]:null}(t.impact,t.dimensions.droppables),i=Boolean(r),o=t.dimensions.droppables[t.critical.droppable.id],a=r||o,s=a.axis.direction,l="vertical"===s&&("MOVE_UP"===n||"MOVE_DOWN"===n)||"horizontal"===s&&("MOVE_LEFT"===n||"MOVE_RIGHT"===n);if(l&&!i)return null;var c="MOVE_DOWN"===n||"MOVE_RIGHT"===n,u=t.dimensions.draggables[t.critical.draggable.id],d=t.current.page.borderBoxCenter,h=t.dimensions,p=h.draggables,f=h.droppables;return l?Bm({isMovingForward:c,previousPageBorderBoxCenter:d,draggable:u,destination:a,draggables:p,viewport:t.viewport,previousClientSelection:t.current.client.selection,previousImpact:t.impact,afterCritical:t.afterCritical}):Zm({isMovingForward:c,previousPageBorderBoxCenter:d,draggable:u,isOver:a,draggables:p,droppables:f,viewport:t.viewport,afterCritical:t.afterCritical})};function Qm(e){return"DRAGGING"===e.phase||"COLLECTING"===e.phase}function Xm(e){var t=fm(e.top,e.bottom),n=fm(e.left,e.right);return function(e){return t(e.y)&&n(e.x)}}function $m(e){var t=e.pageBorderBox,n=e.draggable,r=e.droppables,i=im(r).filter((function(e){if(!e.isEnabled)return!1;var n,r,i=e.subject.active;if(!i)return!1;if(r=i,!((n=t).left<r.right&&n.right>r.left&&n.top<r.bottom&&n.bottom>r.top))return!1;if(Xm(i)(t.center))return!0;var o=e.axis,a=i.center[o.crossAxisLine],s=t[o.crossAxisStart],l=t[o.crossAxisEnd],c=fm(i[o.crossAxisStart],i[o.crossAxisEnd]),u=c(s),d=c(l);return!u&&!d||(u?s<a:l>a)}));return i.length?1===i.length?i[0].descriptor.id:function(e){var t=e.pageBorderBox,n=e.draggable,r=e.candidates,i=n.page.borderBox.center,o=r.map((function(e){var n=e.axis,r=Vf(e.axis.line,t.center[n.line],e.page.borderBox.center[n.crossAxisLine]);return{id:e.descriptor.id,distance:Gf(i,r)}})).sort((function(e,t){return t.distance-e.distance}));return o[0]?o[0].id:null}({pageBorderBox:t,draggable:n,candidates:i}):null}var Jm=function(e,t){return rf(Zf(e,t))};function eg(e){var t=e.displaced,n=e.id;return Boolean(t.visible[n]||t.invisible[n])}var tg=function(e){var t=e.pageOffset,n=e.draggable,r=e.draggables,i=e.droppables,o=e.previousImpact,a=e.viewport,s=e.afterCritical,l=Jm(n.page.borderBox,t),c=$m({pageBorderBox:l,draggable:n,droppables:i});if(!c)return pm;var u=i[c],d=am(u.descriptor.id,r),h=function(e,t){var n=e.frame;return n?Jm(t,n.scroll.diff.value):t}(u,l);return function(e){var t=e.draggable,n=e.pageBorderBoxWithDroppableScroll,r=e.previousImpact,i=e.destination,o=e.insideDestination,a=e.afterCritical;if(!i.isCombineEnabled)return null;var s=i.axis,l=Gm(i.axis,t.displaceBy),c=l.value,u=n[s.start],d=n[s.end],h=em(cm(t,o),(function(e){var t=e.descriptor.id,n=e.page.borderBox,i=n[s.size]/4,o=Tm(t,a),l=eg({displaced:r.displaced,id:t});return o?l?d>n[s.start]+i&&d<n[s.end]-i:u>n[s.start]-c+i&&u<n[s.end]-c-i:l?d>n[s.start]+c+i&&d<n[s.end]+c-i:u>n[s.start]+i&&u<n[s.end]-i}));return h?{displacedBy:l,displaced:r.displaced,at:{type:"COMBINE",combine:{draggableId:h.descriptor.id,droppableId:i.descriptor.id}}}:null}({pageBorderBoxWithDroppableScroll:h,draggable:n,previousImpact:o,destination:u,insideDestination:d,afterCritical:s})||function(e){var t=e.pageBorderBoxWithDroppableScroll,n=e.draggable,r=e.destination,i=e.insideDestination,o=e.last,a=e.viewport,s=e.afterCritical,l=r.axis,c=Gm(r.axis,n.displaceBy),u=c.value,d=t[l.start],h=t[l.end],p=function(e){var t=e.draggable,n=e.closest,r=e.inHomeList;return n?r&&n.descriptor.index>t.descriptor.index?n.descriptor.index-1:n.descriptor.index:null}({draggable:n,closest:em(cm(n,i),(function(e){var t=e.descriptor.id,n=e.page.borderBox.center[l.line],r=Tm(t,s),i=eg({displaced:o,id:t});return r?i?h<=n:d<n-u:i?h<=n+u:d<n})),inHomeList:um(n,r)});return Em({draggable:n,insideDestination:i,destination:r,viewport:a,last:o,displacedBy:c,index:p})}({pageBorderBoxWithDroppableScroll:h,draggable:n,destination:u,insideDestination:d,last:o.displaced,viewport:a,afterCritical:s})},ng=function(e,t){var n;return(0,qo.Z)({},e,((n={})[t.descriptor.id]=t,n))},rg=function(e){var t=e.previousImpact,n=e.impact,r=e.droppables,i=Ym(t),o=Ym(n);if(!i)return r;if(i===o)return r;var a=r[i];if(!a.subject.withPlaceholder)return r;var s=function(e){var t=e.subject.withPlaceholder;t||If(!1);var n=e.frame;if(!n){var r=Qf({page:e.subject.page,axis:e.axis,frame:null,withPlaceholder:null});return(0,qo.Z)({},e,{subject:r})}var i=t.oldFrameMaxScroll;i||If(!1);var o=Wm(n,i),a=Qf({page:e.subject.page,axis:e.axis,frame:o,withPlaceholder:null});return(0,qo.Z)({},e,{subject:a,frame:o})}(a);return ng(r,s)},ig=function(e){var t=e.state,n=e.clientSelection,r=e.dimensions,i=e.viewport,o=e.impact,a=e.scrollJumpRequest,s=i||t.viewport,l=r||t.dimensions,c=n||t.current.client.selection,u=Bf(c,t.initial.client.selection),d={offset:u,selection:c,borderBoxCenter:zf(t.initial.client.borderBoxCenter,u)},h={selection:zf(d.selection,s.scroll.current),borderBoxCenter:zf(d.borderBoxCenter,s.scroll.current),offset:zf(d.offset,s.scroll.diff.value)},p={client:d,page:h};if("COLLECTING"===t.phase)return(0,qo.Z)({phase:"COLLECTING"},t,{dimensions:l,viewport:s,current:p});var f=l.draggables[t.critical.draggable.id],m=o||tg({pageOffset:h.offset,draggable:f,draggables:l.draggables,droppables:l.droppables,previousImpact:t.impact,viewport:s,afterCritical:t.afterCritical}),g=function(e){var t=e.draggable,n=e.draggables,r=e.droppables,i=e.previousImpact,o=e.impact,a=rg({previousImpact:i,impact:o,droppables:r}),s=Ym(o);if(!s)return a;var l=r[s];if(um(t,l))return a;if(l.subject.withPlaceholder)return a;var c=qm(l,t,n);return ng(a,c)}({draggable:f,impact:m,previousImpact:t.impact,draggables:l.draggables,droppables:l.droppables});return(0,qo.Z)({},t,{current:p,dimensions:{draggables:l.draggables,droppables:g},impact:m,viewport:s,scrollJumpRequest:a||null,forceShouldAnimate:!a&&null})};var og=function(e){var t=e.impact,n=e.viewport,r=e.draggables,i=e.destination,o=e.forceShouldAnimate,a=t.displaced,s=function(e,t){return e.map((function(e){return t[e]}))}(a.all,r),l=_m({afterDragging:s,destination:i,displacedBy:t.displacedBy,viewport:n.frame,forceShouldAnimate:o,last:a});return(0,qo.Z)({},t,{displaced:l})},ag=function(e){var t=e.impact,n=e.draggable,r=e.droppable,i=e.draggables,o=e.viewport,a=e.afterCritical,s=Rm({impact:t,draggable:n,draggables:i,droppable:r,afterCritical:a});return Fm({pageBorderBoxCenter:s,draggable:n,viewport:o})},sg=function(e){var t=e.state,n=e.dimensions,r=e.viewport;"SNAP"!==t.movementMode&&If(!1);var i=t.impact,o=r||t.viewport,a=n||t.dimensions,s=a.draggables,l=a.droppables,c=s[t.critical.draggable.id],u=Ym(i);u||If(!1);var d=l[u],h=og({impact:i,viewport:o,destination:d,draggables:s}),p=ag({impact:h,draggable:c,droppable:d,draggables:s,viewport:o,afterCritical:t.afterCritical});return ig({impact:h,clientSelection:p,state:t,dimensions:a,viewport:o})},lg=function(e){var t=e.draggable,n=e.home,r=e.draggables,i=e.viewport,o=Gm(n.axis,t.displaceBy),a=am(n.descriptor.id,r),s=a.indexOf(t);-1===s&&If(!1);var l,c=a.slice(s+1),u=c.reduce((function(e,t){return e[t.descriptor.id]=!0,e}),{}),d={inVirtualList:"virtual"===n.descriptor.mode,displacedBy:o,effected:u};return{impact:{displaced:_m({afterDragging:c,destination:n,displacedBy:o,last:null,viewport:i.frame,forceShouldAnimate:!1}),displacedBy:o,at:{type:"REORDER",destination:(l=t.descriptor,{index:l.index,droppableId:l.droppableId})}},afterCritical:d}},cg=function(e){0},ug=function(e){0},dg=function(e){var t=e.additions,n=e.updatedDroppables,r=e.viewport,i=r.scroll.diff.value;return t.map((function(e){var t=e.descriptor.droppableId,o=function(e){var t=e.frame;return t||If(!1),t}(n[t]),a=o.scroll.diff.value,s=function(e){var t=e.draggable,n=e.offset,r=e.initialWindowScroll,i=uf(t.client,n),o=df(i,r);return(0,qo.Z)({},t,{placeholder:(0,qo.Z)({},t.placeholder,{client:i}),client:i,page:o})}({draggable:e,offset:zf(i,a),initialWindowScroll:r.scroll.initial});return s}))},hg=function(e){return"SNAP"===e.movementMode},pg=function(e,t,n){var r=function(e,t){return{draggables:e.draggables,droppables:ng(e.droppables,t)}}(e.dimensions,t);return!hg(e)||n?ig({state:e,dimensions:r}):sg({state:e,dimensions:r})};function fg(e){return e.isDragging&&"SNAP"===e.movementMode?(0,qo.Z)({phase:"DRAGGING"},e,{scrollJumpRequest:null}):e}var mg={phase:"IDLE",completed:null,shouldFlush:!1},gg=function(e,t){if(void 0===e&&(e=mg),"FLUSH"===t.type)return(0,qo.Z)({},mg,{shouldFlush:!0});if("INITIAL_PUBLISH"===t.type){"IDLE"!==e.phase&&If(!1);var n=t.payload,r=n.critical,i=n.clientSelection,o=n.viewport,a=n.dimensions,s=n.movementMode,l=a.draggables[r.draggable.id],c=a.droppables[r.droppable.id],u={selection:i,borderBoxCenter:l.client.borderBox.center,offset:Ff},d={client:u,page:{selection:zf(u.selection,o.scroll.initial),borderBoxCenter:zf(u.selection,o.scroll.initial),offset:zf(u.selection,o.scroll.diff.value)}},h=im(a.droppables).every((function(e){return!e.isFixedOnPage})),p=lg({draggable:l,home:c,draggables:a.draggables,viewport:o}),f=p.impact;return{phase:"DRAGGING",isDragging:!0,critical:r,movementMode:s,dimensions:a,initial:d,current:d,isWindowScrollAllowed:h,impact:f,afterCritical:p.afterCritical,onLiftImpact:f,viewport:o,scrollJumpRequest:null,forceShouldAnimate:null}}if("COLLECTION_STARTING"===t.type)return"COLLECTING"===e.phase||"DROP_PENDING"===e.phase?e:("DRAGGING"!==e.phase&&If(!1),(0,qo.Z)({phase:"COLLECTING"},e,{phase:"COLLECTING"}));if("PUBLISH_WHILE_DRAGGING"===t.type)return"COLLECTING"!==e.phase&&"DROP_PENDING"!==e.phase&&If(!1),function(e){var t=e.state,n=e.published;cg();var r=n.modified.map((function(e){var n=t.dimensions.droppables[e.droppableId];return Xf(n,e.scroll)})),i=(0,qo.Z)({},t.dimensions.droppables,{},nm(r)),o=rm(dg({additions:n.additions,updatedDroppables:i,viewport:t.viewport})),a=(0,qo.Z)({},t.dimensions.draggables,{},o);n.removals.forEach((function(e){delete a[e]}));var s={droppables:i,draggables:a},l=Ym(t.impact),c=l?s.droppables[l]:null,u=s.draggables[t.critical.draggable.id],d=s.droppables[t.critical.droppable.id],h=lg({draggable:u,home:d,draggables:a,viewport:t.viewport}),p=h.impact,f=h.afterCritical,m=c&&c.isCombineEnabled?t.impact:p,g=tg({pageOffset:t.current.page.offset,draggable:s.draggables[t.critical.draggable.id],draggables:s.draggables,droppables:s.droppables,previousImpact:m,viewport:t.viewport,afterCritical:f});ug();var v=(0,qo.Z)({phase:"DRAGGING"},t,{phase:"DRAGGING",impact:g,onLiftImpact:p,dimensions:s,afterCritical:f,forceShouldAnimate:!1});return"COLLECTING"===t.phase?v:(0,qo.Z)({phase:"DROP_PENDING"},v,{phase:"DROP_PENDING",reason:t.reason,isWaiting:!1})}({state:e,published:t.payload});if("MOVE"===t.type){if("DROP_PENDING"===e.phase)return e;Qm(e)||If(!1);var m=t.payload.client;return Uf(m,e.current.client.selection)?e:ig({state:e,clientSelection:m,impact:hg(e)?e.impact:null})}if("UPDATE_DROPPABLE_SCROLL"===t.type){if("DROP_PENDING"===e.phase)return fg(e);if("COLLECTING"===e.phase)return fg(e);Qm(e)||If(!1);var g=t.payload,v=g.id,y=g.newScroll,b=e.dimensions.droppables[v];if(!b)return e;var x=Xf(b,y);return pg(e,x,!1)}if("UPDATE_DROPPABLE_IS_ENABLED"===t.type){if("DROP_PENDING"===e.phase)return e;Qm(e)||If(!1);var w=t.payload,S=w.id,_=w.isEnabled,C=e.dimensions.droppables[S];C||If(!1),C.isEnabled===_&&If(!1);var E=(0,qo.Z)({},C,{isEnabled:_});return pg(e,E,!0)}if("UPDATE_DROPPABLE_IS_COMBINE_ENABLED"===t.type){if("DROP_PENDING"===e.phase)return e;Qm(e)||If(!1);var T=t.payload,O=T.id,N=T.isCombineEnabled,k=e.dimensions.droppables[O];k||If(!1),k.isCombineEnabled===N&&If(!1);var j=(0,qo.Z)({},k,{isCombineEnabled:N});return pg(e,j,!0)}if("MOVE_BY_WINDOW_SCROLL"===t.type){if("DROP_PENDING"===e.phase||"DROP_ANIMATING"===e.phase)return e;Qm(e)||If(!1),e.isWindowScrollAllowed||If(!1);var I=t.payload.newScroll;if(Uf(e.viewport.scroll.current,I))return fg(e);var P=Mm(e.viewport,I);return hg(e)?sg({state:e,viewport:P}):ig({state:e,viewport:P})}if("UPDATE_VIEWPORT_MAX_SCROLL"===t.type){if(!Qm(e))return e;var D=t.payload.maxScroll;if(Uf(D,e.viewport.scroll.max))return e;var A=(0,qo.Z)({},e.viewport,{scroll:(0,qo.Z)({},e.viewport.scroll,{max:D})});return(0,qo.Z)({phase:"DRAGGING"},e,{viewport:A})}if("MOVE_UP"===t.type||"MOVE_DOWN"===t.type||"MOVE_LEFT"===t.type||"MOVE_RIGHT"===t.type){if("COLLECTING"===e.phase||"DROP_PENDING"===e.phase)return e;"DRAGGING"!==e.phase&&If(!1);var R=Km({state:e,type:t.type});return R?ig({state:e,impact:R.impact,clientSelection:R.clientSelection,scrollJumpRequest:R.scrollJumpRequest}):e}if("DROP_PENDING"===t.type){var M=t.payload.reason;return"COLLECTING"!==e.phase&&If(!1),(0,qo.Z)({phase:"DROP_PENDING"},e,{phase:"DROP_PENDING",isWaiting:!0,reason:M})}if("DROP_ANIMATE"===t.type){var L=t.payload,F=L.completed,z=L.dropDuration,B=L.newHomeClientOffset;return"DRAGGING"!==e.phase&&"DROP_PENDING"!==e.phase&&If(!1),{phase:"DROP_ANIMATING",completed:F,dropDuration:z,newHomeClientOffset:B,dimensions:e.dimensions}}return"DROP_COMPLETE"===t.type?{phase:"IDLE",completed:t.payload.completed,shouldFlush:!1}:e},vg=function(e){return{type:"LIFT",payload:e}},yg=function(e){return{type:"PUBLISH_WHILE_DRAGGING",payload:e}},bg=function(){return{type:"COLLECTION_STARTING",payload:null}},xg=function(e){return{type:"UPDATE_DROPPABLE_SCROLL",payload:e}},wg=function(e){return{type:"UPDATE_DROPPABLE_IS_ENABLED",payload:e}},Sg=function(e){return{type:"UPDATE_DROPPABLE_IS_COMBINE_ENABLED",payload:e}},_g=function(e){return{type:"MOVE",payload:e}},Cg=function(){return{type:"MOVE_UP",payload:null}},Eg=function(){return{type:"MOVE_DOWN",payload:null}},Tg=function(){return{type:"MOVE_RIGHT",payload:null}},Og=function(){return{type:"MOVE_LEFT",payload:null}},Ng=function(){return{type:"FLUSH",payload:null}},kg=function(e){return{type:"DROP_COMPLETE",payload:e}},jg=function(e){return{type:"DROP",payload:e}},Ig=function(){return{type:"DROP_ANIMATION_FINISHED",payload:null}};var Pg={outOfTheWay:"cubic-bezier(0.2, 0, 0, 1)",drop:"cubic-bezier(.2,1,.1,1)"},Dg={opacity:{drop:0,combining:.7},scale:{drop:.75}},Ag=.33,Rg=.55,Mg=.2+"s "+Pg.outOfTheWay,Lg={fluid:"opacity "+Mg,snap:"transform "+Mg+", opacity "+Mg,drop:function(e){var t=e+"s "+Pg.drop;return"transform "+t+", opacity "+t},outOfTheWay:"transform "+Mg,placeholder:"height "+Mg+", width "+Mg+", margin "+Mg},Fg=function(e){return Uf(e,Ff)?null:"translate("+e.x+"px, "+e.y+"px)"},zg={moveTo:Fg,drop:function(e,t){var n=Fg(e);return n?t?n+" scale("+Dg.scale.drop+")":n:null}},Bg=Ag,Ug=Rg,Hg=Ug-Bg,Vg=function(e){var t=e.getState,n=e.dispatch;return function(e){return function(r){if("DROP"===r.type){var i=t(),o=r.payload.reason;if("COLLECTING"!==i.phase){if("IDLE"!==i.phase){"DROP_PENDING"===i.phase&&i.isWaiting&&If(!1),"DRAGGING"!==i.phase&&"DROP_PENDING"!==i.phase&&If(!1);var a=i.critical,s=i.dimensions,l=s.draggables[i.critical.draggable.id],c=function(e){var t=e.draggables,n=e.reason,r=e.lastImpact,i=e.home,o=e.viewport,a=e.onLiftImpact;return r.at&&"DROP"===n?"REORDER"===r.at.type?{impact:r,didDropInsideDroppable:!0}:{impact:(0,qo.Z)({},r,{displaced:hm}),didDropInsideDroppable:!0}:{impact:og({draggables:t,impact:a,destination:i,viewport:o,forceShouldAnimate:!0}),didDropInsideDroppable:!1}}({reason:o,lastImpact:i.impact,afterCritical:i.afterCritical,onLiftImpact:i.onLiftImpact,home:i.dimensions.droppables[i.critical.droppable.id],viewport:i.viewport,draggables:i.dimensions.draggables}),u=c.impact,d=c.didDropInsideDroppable,h=d?sm(u):null,p=d?lm(u):null,f={index:a.draggable.index,droppableId:a.droppable.id},m={draggableId:l.descriptor.id,type:l.descriptor.type,source:f,reason:o,mode:i.movementMode,destination:h,combine:p},g=function(e){var t=e.impact,n=e.draggable,r=e.dimensions,i=e.viewport,o=e.afterCritical,a=r.draggables,s=r.droppables,l=Ym(t),c=l?s[l]:null,u=s[n.descriptor.droppableId],d=ag({impact:t,draggable:n,draggables:a,afterCritical:o,droppable:c||u,viewport:i});return Bf(d,n.client.borderBox.center)}({impact:u,draggable:l,dimensions:s,viewport:i.viewport,afterCritical:i.afterCritical}),v={critical:i.critical,afterCritical:i.afterCritical,result:m,impact:u};if(!Uf(i.current.client.offset,g)||Boolean(m.combine)){var y=function(e){var t=e.current,n=e.destination,r=e.reason,i=Gf(t,n);if(i<=0)return Bg;if(i>=1500)return Ug;var o=Bg+Hg*(i/1500);return Number(("CANCEL"===r?.6*o:o).toFixed(2))}({current:i.current.client.offset,destination:g,reason:o});n(function(e){return{type:"DROP_ANIMATE",payload:e}}({newHomeClientOffset:g,dropDuration:y,completed:v}))}else n(kg({completed:v}))}}else n(function(e){return{type:"DROP_PENDING",payload:e}}({reason:o}))}else e(r)}}},Gg=function(){return{x:window.pageXOffset,y:window.pageYOffset}};function Wg(e){var t=e.onWindowScroll;var n=vf((function(){t(Gg())})),r=function(e){return{eventName:"scroll",options:{passive:!0,capture:!1},fn:function(t){t.target!==window&&t.target!==window.document||e()}}}(n),i=Tf;function o(){return i!==Tf}return{start:function(){o()&&If(!1),i=Of(window,[r])},stop:function(){o()||If(!1),n.cancel(),i(),i=Tf},isActive:o}}var qg=function(e){var t=Wg({onWindowScroll:function(t){e.dispatch({type:"MOVE_BY_WINDOW_SCROLL",payload:{newScroll:t}})}});return function(e){return function(n){t.isActive()||"INITIAL_PUBLISH"!==n.type||t.start(),t.isActive()&&function(e){return"DROP_COMPLETE"===e.type||"DROP_ANIMATE"===e.type||"FLUSH"===e.type}(n)&&t.stop(),e(n)}}},Zg=function(){var e=[];return{add:function(t){var n=setTimeout((function(){return function(t){var n=Jf(e,(function(e){return e.timerId===t}));-1===n&&If(!1),e.splice(n,1)[0].callback()}(n)})),r={timerId:n,callback:t};e.push(r)},flush:function(){if(e.length){var t=[].concat(e);e.length=0,t.forEach((function(e){clearTimeout(e.timerId),e.callback()}))}}}},Yg=function(e,t){cg(),t(),ug()},Kg=function(e,t){return{draggableId:e.draggable.id,type:e.droppable.type,source:{droppableId:e.droppable.id,index:e.draggable.index},mode:t}},Qg=function(e,t,n,r){if(e){var i=function(e){var t=!1,n=!1,r=setTimeout((function(){n=!0})),i=function(i){t||n||(t=!0,e(i),clearTimeout(r))};return i.wasCalled=function(){return t},i}(n);e(t,{announce:i}),i.wasCalled()||n(r(t))}else n(r(t))},Xg=function(e,t){var n=function(e,t){var n=Zg(),r=null,i=function(n){r||If(!1),r=null,Yg(0,(function(){return Qg(e().onDragEnd,n,t,Lf.onDragEnd)}))};return{beforeCapture:function(t,n){r&&If(!1),Yg(0,(function(){var r=e().onBeforeCapture;r&&r({draggableId:t,mode:n})}))},beforeStart:function(t,n){r&&If(!1),Yg(0,(function(){var r=e().onBeforeDragStart;r&&r(Kg(t,n))}))},start:function(i,o){r&&If(!1);var a=Kg(i,o);r={mode:o,lastCritical:i,lastLocation:a.source,lastCombine:null},n.add((function(){Yg(0,(function(){return Qg(e().onDragStart,a,t,Lf.onDragStart)}))}))},update:function(i,o){var a=sm(o),s=lm(o);r||If(!1);var l=!function(e,t){if(e===t)return!0;var n=e.draggable.id===t.draggable.id&&e.draggable.droppableId===t.draggable.droppableId&&e.draggable.type===t.draggable.type&&e.draggable.index===t.draggable.index,r=e.droppable.id===t.droppable.id&&e.droppable.type===t.droppable.type;return n&&r}(i,r.lastCritical);l&&(r.lastCritical=i);var c,u,d=(u=a,!(null==(c=r.lastLocation)&&null==u||null!=c&&null!=u&&c.droppableId===u.droppableId&&c.index===u.index));d&&(r.lastLocation=a);var h=!function(e,t){return null==e&&null==t||null!=e&&null!=t&&e.draggableId===t.draggableId&&e.droppableId===t.droppableId}(r.lastCombine,s);if(h&&(r.lastCombine=s),l||d||h){var p=(0,qo.Z)({},Kg(i,r.mode),{combine:s,destination:a});n.add((function(){Yg(0,(function(){return Qg(e().onDragUpdate,p,t,Lf.onDragUpdate)}))}))}},flush:function(){r||If(!1),n.flush()},drop:i,abort:function(){if(r){var e=(0,qo.Z)({},Kg(r.lastCritical,r.mode),{combine:null,destination:null,reason:"CANCEL"});i(e)}}}}(e,t);return function(e){return function(t){return function(r){if("BEFORE_INITIAL_CAPTURE"!==r.type){if("INITIAL_PUBLISH"===r.type){var i=r.payload.critical;return n.beforeStart(i,r.payload.movementMode),t(r),void n.start(i,r.payload.movementMode)}if("DROP_COMPLETE"===r.type){var o=r.payload.completed.result;return n.flush(),t(r),void n.drop(o)}if(t(r),"FLUSH"!==r.type){var a=e.getState();"DRAGGING"===a.phase&&n.update(a.critical,a.impact)}else n.abort()}else n.beforeCapture(r.payload.draggableId,r.payload.movementMode)}}}},$g=function(e){return function(t){return function(n){if("DROP_ANIMATION_FINISHED"===n.type){var r=e.getState();"DROP_ANIMATING"!==r.phase&&If(!1),e.dispatch(kg({completed:r.completed}))}else t(n)}}},Jg=function(e){var t=null,n=null;return function(r){return function(i){if("FLUSH"!==i.type&&"DROP_COMPLETE"!==i.type&&"DROP_ANIMATION_FINISHED"!==i.type||(n&&(cancelAnimationFrame(n),n=null),t&&(t(),t=null)),r(i),"DROP_ANIMATE"===i.type){var o={eventName:"scroll",options:{capture:!0,passive:!1,once:!0},fn:function(){"DROP_ANIMATING"===e.getState().phase&&e.dispatch({type:"DROP_ANIMATION_FINISHED",payload:null})}};n=requestAnimationFrame((function(){n=null,t=Of(window,[o])}))}}}},ev=function(e){return function(t){return function(n){if(t(n),"PUBLISH_WHILE_DRAGGING"===n.type){var r=e.getState();"DROP_PENDING"===r.phase&&(r.isWaiting||e.dispatch(jg({reason:r.reason})))}}}},tv=gp.qC,nv=function(e){var t,n=e.dimensionMarshal,r=e.focusMarshal,i=e.styleMarshal,o=e.getResponders,a=e.announce,s=e.autoScroller;return(0,gp.MT)(gg,tv((0,gp.md)((t=i,function(){return function(e){return function(n){"INITIAL_PUBLISH"===n.type&&t.dragging(),"DROP_ANIMATE"===n.type&&t.dropping(n.payload.completed.result.reason),"FLUSH"!==n.type&&"DROP_COMPLETE"!==n.type||t.resting(),e(n)}}}),function(e){return function(){return function(t){return function(n){"DROP_COMPLETE"!==n.type&&"FLUSH"!==n.type&&"DROP_ANIMATE"!==n.type||e.stopPublishing(),t(n)}}}}(n),function(e){return function(t){var n=t.getState,r=t.dispatch;return function(t){return function(i){if("LIFT"===i.type){var o=i.payload,a=o.id,s=o.clientSelection,l=o.movementMode,c=n();"DROP_ANIMATING"===c.phase&&r(kg({completed:c.completed})),"IDLE"!==n().phase&&If(!1),r(Ng()),r({type:"BEFORE_INITIAL_CAPTURE",payload:{draggableId:a,movementMode:l}});var u={draggableId:a,scrollOptions:{shouldPublishImmediately:"SNAP"===l}},d=e.startPublishing(u),h=d.critical,p=d.dimensions,f=d.viewport;r({type:"INITIAL_PUBLISH",payload:{critical:h,dimensions:p,clientSelection:s,movementMode:l,viewport:f}})}else t(i)}}}}(n),Vg,$g,Jg,ev,function(e){return function(t){return function(n){return function(r){if(function(e){return"DROP_COMPLETE"===e.type||"DROP_ANIMATE"===e.type||"FLUSH"===e.type}(r))return e.stop(),void n(r);if("INITIAL_PUBLISH"===r.type){n(r);var i=t.getState();return"DRAGGING"!==i.phase&&If(!1),void e.start(i)}n(r),e.scroll(t.getState())}}}}(s),qg,function(e){var t=!1;return function(){return function(n){return function(r){if("INITIAL_PUBLISH"===r.type)return t=!0,e.tryRecordFocus(r.payload.critical.draggable.id),n(r),void e.tryRestoreFocusRecorded();if(n(r),t){if("FLUSH"===r.type)return t=!1,void e.tryRestoreFocusRecorded();if("DROP_COMPLETE"===r.type){t=!1;var i=r.payload.completed.result;i.combine&&e.tryShiftRecord(i.draggableId,i.combine.draggableId),e.tryRestoreFocusRecorded()}}}}}}(r),Xg(o,a))))},rv=function(){return{additions:{},removals:{},modified:{}}};var iv=function(e){var t=e.scrollHeight,n=e.scrollWidth,r=e.height,i=e.width,o=Bf({x:n,y:t},{x:i,y:r});return{x:Math.max(0,o.x),y:Math.max(0,o.y)}},ov=function(){var e=document.documentElement;return e||If(!1),e},av=function(){var e=ov();return iv({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,width:e.clientWidth,height:e.clientHeight})},sv=function(e){var t=e.critical,n=e.scrollOptions,r=e.registry;cg();var i=function(){var e=Gg(),t=av(),n=e.y,r=e.x,i=ov(),o=i.clientWidth,a=i.clientHeight;return{frame:rf({top:n,left:r,right:r+o,bottom:n+a}),scroll:{initial:e,current:e,max:t,diff:{value:Ff,displacement:Ff}}}}(),o=i.scroll.current,a=t.droppable,s=r.droppable.getAllByType(a.type).map((function(e){return e.callbacks.getDimensionAndWatchScroll(o,n)})),l=r.draggable.getAllByType(t.draggable.type).map((function(e){return e.getDimension(o)})),c={draggables:rm(l),droppables:nm(s)};return ug(),{dimensions:c,critical:t,viewport:i}};function lv(e,t,n){return n.descriptor.id!==t.id&&(n.descriptor.type===t.type&&"virtual"===e.droppable.getById(n.descriptor.droppableId).descriptor.mode)}var cv=function(e,t){var n=null,r=function(e){var t=e.registry,n=e.callbacks,r=rv(),i=null,o=function(){i||(n.collectionStarting(),i=requestAnimationFrame((function(){i=null,cg();var e=r,o=e.additions,a=e.removals,s=e.modified,l=Object.keys(o).map((function(e){return t.draggable.getById(e).getDimension(Ff)})).sort((function(e,t){return e.descriptor.index-t.descriptor.index})),c=Object.keys(s).map((function(e){return{droppableId:e,scroll:t.droppable.getById(e).callbacks.getScrollWhileDragging()}})),u={additions:l,removals:Object.keys(a),modified:c};r=rv(),ug(),n.publish(u)})))};return{add:function(e){var t=e.descriptor.id;r.additions[t]=e,r.modified[e.descriptor.droppableId]=!0,r.removals[t]&&delete r.removals[t],o()},remove:function(e){var t=e.descriptor;r.removals[t.id]=!0,r.modified[t.droppableId]=!0,r.additions[t.id]&&delete r.additions[t.id],o()},stop:function(){i&&(cancelAnimationFrame(i),i=null,r=rv())}}}({callbacks:{publish:t.publishWhileDragging,collectionStarting:t.collectionStarting},registry:e}),i=function(t){n||If(!1);var i=n.critical.draggable;"ADDITION"===t.type&&lv(e,i,t.value)&&r.add(t.value),"REMOVAL"===t.type&&lv(e,i,t.value)&&r.remove(t.value)},o={updateDroppableIsEnabled:function(r,i){e.droppable.exists(r)||If(!1),n&&t.updateDroppableIsEnabled({id:r,isEnabled:i})},updateDroppableIsCombineEnabled:function(r,i){n&&(e.droppable.exists(r)||If(!1),t.updateDroppableIsCombineEnabled({id:r,isCombineEnabled:i}))},scrollDroppable:function(t,r){n&&e.droppable.getById(t).callbacks.scroll(r)},updateDroppableScroll:function(r,i){n&&(e.droppable.exists(r)||If(!1),t.updateDroppableScroll({id:r,newScroll:i}))},startPublishing:function(t){n&&If(!1);var r=e.draggable.getById(t.draggableId),o=e.droppable.getById(r.descriptor.droppableId),a={draggable:r.descriptor,droppable:o.descriptor},s=e.subscribe(i);return n={critical:a,unsubscribe:s},sv({critical:a,registry:e,scrollOptions:t.scrollOptions})},stopPublishing:function(){if(n){r.stop();var t=n.critical.droppable;e.droppable.getAllByType(t.type).forEach((function(e){return e.callbacks.dragStopped()})),n.unsubscribe(),n=null}}};return o},uv=function(e,t){return"IDLE"===e.phase||"DROP_ANIMATING"===e.phase&&(e.completed.result.draggableId!==t&&"DROP"===e.completed.result.reason)},dv=function(e){window.scrollBy(e.x,e.y)},hv=gf((function(e){return im(e).filter((function(e){return!!e.isEnabled&&!!e.frame}))})),pv=function(e){var t=e.center,n=e.destination,r=e.droppables;if(n){var i=r[n];return i.frame?i:null}var o=function(e,t){var n=em(hv(t),(function(t){return t.frame||If(!1),Xm(t.frame.pageMarginBox)(e)}));return n}(t,r);return o},fv=.25,mv=.05,gv=28,vv=function(e){return Math.pow(e,2)},yv={stopDampeningAt:1200,accelerateAt:360},bv=function(e){var t=e.startOfRange,n=e.endOfRange,r=e.current,i=n-t;return 0===i?0:(r-t)/i},xv=yv.accelerateAt,wv=yv.stopDampeningAt,Sv=function(e){var t=e.distanceToEdge,n=e.thresholds,r=e.dragStartTime,i=e.shouldUseTimeDampening,o=function(e,t){if(e>t.startScrollingFrom)return 0;if(e<=t.maxScrollValueAt)return gv;if(e===t.startScrollingFrom)return 1;var n=bv({startOfRange:t.maxScrollValueAt,endOfRange:t.startScrollingFrom,current:e}),r=gv*vv(1-n);return Math.ceil(r)}(t,n);return 0===o?0:i?Math.max(function(e,t){var n=t,r=wv,i=Date.now()-n;if(i>=wv)return e;if(i<xv)return 1;var o=bv({startOfRange:xv,endOfRange:r,current:i}),a=e*vv(o);return Math.ceil(a)}(o,r),1):o},_v=function(e){var t=e.container,n=e.distanceToEdges,r=e.dragStartTime,i=e.axis,o=e.shouldUseTimeDampening,a=function(e,t){return{startScrollingFrom:e[t.size]*fv,maxScrollValueAt:e[t.size]*mv}}(t,i);return n[i.end]<n[i.start]?Sv({distanceToEdge:n[i.end],thresholds:a,dragStartTime:r,shouldUseTimeDampening:o}):-1*Sv({distanceToEdge:n[i.start],thresholds:a,dragStartTime:r,shouldUseTimeDampening:o})},Cv=qf((function(e){return 0===e?0:e})),Ev=function(e){var t=e.dragStartTime,n=e.container,r=e.subject,i=e.center,o=e.shouldUseTimeDampening,a={top:i.y-n.top,right:n.right-i.x,bottom:n.bottom-i.y,left:i.x-n.left},s=_v({container:n,distanceToEdges:a,dragStartTime:t,axis:vm,shouldUseTimeDampening:o}),l=_v({container:n,distanceToEdges:a,dragStartTime:t,axis:ym,shouldUseTimeDampening:o}),c=Cv({x:l,y:s});if(Uf(c,Ff))return null;var u=function(e){var t=e.container,n=e.subject,r=e.proposedScroll,i=n.height>t.height,o=n.width>t.width;return o||i?o&&i?null:{x:o?0:r.x,y:i?0:r.y}:r}({container:n,subject:r,proposedScroll:c});return u?Uf(u,Ff)?null:u:null},Tv=qf((function(e){return 0===e?0:e>0?1:-1})),Ov=function(){var e=function(e,t){return e<0?e:e>t?e-t:0};return function(t){var n=t.current,r=t.max,i=t.change,o=zf(n,i),a={x:e(o.x,r.x),y:e(o.y,r.y)};return Uf(a,Ff)?null:a}}(),Nv=function(e){var t=e.max,n=e.current,r=e.change,i={x:Math.max(n.x,t.x),y:Math.max(n.y,t.y)},o=Tv(r),a=Ov({max:i,current:n,change:o});return!a||(0!==o.x&&0===a.x||0!==o.y&&0===a.y)},kv=function(e,t){return Nv({current:e.scroll.current,max:e.scroll.max,change:t})},jv=function(e,t){var n=e.frame;return!!n&&Nv({current:n.scroll.current,max:n.scroll.max,change:t})},Iv=function(e){var t=e.state,n=e.dragStartTime,r=e.shouldUseTimeDampening,i=e.scrollWindow,o=e.scrollDroppable,a=t.current.page.borderBoxCenter,s=t.dimensions.draggables[t.critical.draggable.id].page.marginBox;if(t.isWindowScrollAllowed){var l=function(e){var t=e.viewport,n=e.subject,r=e.center,i=e.dragStartTime,o=e.shouldUseTimeDampening,a=Ev({dragStartTime:i,container:t.frame,subject:n,center:r,shouldUseTimeDampening:o});return a&&kv(t,a)?a:null}({dragStartTime:n,viewport:t.viewport,subject:s,center:a,shouldUseTimeDampening:r});if(l)return void i(l)}var c=pv({center:a,destination:Ym(t.impact),droppables:t.dimensions.droppables});if(c){var u=function(e){var t=e.droppable,n=e.subject,r=e.center,i=e.dragStartTime,o=e.shouldUseTimeDampening,a=t.frame;if(!a)return null;var s=Ev({dragStartTime:i,container:a.pageMarginBox,subject:n,center:r,shouldUseTimeDampening:o});return s&&jv(t,s)?s:null}({dragStartTime:n,droppable:c,subject:s,center:a,shouldUseTimeDampening:r});u&&o(c.descriptor.id,u)}},Pv=function(e){var t=e.move,n=e.scrollDroppable,r=e.scrollWindow,i=function(e,t){if(!jv(e,t))return t;var r=function(e,t){var n=e.frame;return n&&jv(e,t)?Ov({current:n.scroll.current,max:n.scroll.max,change:t}):null}(e,t);if(!r)return n(e.descriptor.id,t),null;var i=Bf(t,r);return n(e.descriptor.id,i),Bf(t,i)},o=function(e,t,n){if(!e)return n;if(!kv(t,n))return n;var i=function(e,t){if(!kv(e,t))return null;var n=e.scroll.max,r=e.scroll.current;return Ov({current:r,max:n,change:t})}(t,n);if(!i)return r(n),null;var o=Bf(n,i);return r(o),Bf(n,o)};return function(e){var n=e.scrollJumpRequest;if(n){var r=Ym(e.impact);r||If(!1);var a=i(e.dimensions.droppables[r],n);if(a){var s=e.viewport,l=o(e.isWindowScrollAllowed,s,a);l&&function(e,n){var r=zf(e.current.client.selection,n);t({client:r})}(e,l)}}}},Dv=function(e){var t=e.scrollDroppable,n=e.scrollWindow,r=e.move,i=function(e){var t=e.scrollWindow,n=e.scrollDroppable,r=vf(t),i=vf(n),o=null,a=function(e){o||If(!1);var t=o,n=t.shouldUseTimeDampening,a=t.dragStartTime;Iv({state:e,scrollWindow:r,scrollDroppable:i,dragStartTime:a,shouldUseTimeDampening:n})};return{start:function(e){cg(),o&&If(!1);var t=Date.now(),n=!1,r=function(){n=!0};Iv({state:e,dragStartTime:0,shouldUseTimeDampening:!1,scrollWindow:r,scrollDroppable:r}),o={dragStartTime:t,shouldUseTimeDampening:n},ug(),n&&a(e)},stop:function(){o&&(r.cancel(),i.cancel(),o=null)},scroll:a}}({scrollWindow:n,scrollDroppable:t}),o=Pv({move:r,scrollWindow:n,scrollDroppable:t});return{scroll:function(e){"DRAGGING"===e.phase&&("FLUID"!==e.movementMode?e.scrollJumpRequest&&o(e):i.scroll(e))},start:i.start,stop:i.stop}},Av="data-rbd",Rv=function(){var e=Av+"-drag-handle";return{base:e,draggableId:e+"-draggable-id",contextId:e+"-context-id"}}(),Mv=function(){var e=Av+"-draggable";return{base:e,contextId:e+"-context-id",id:e+"-id"}}(),Lv=function(){var e=Av+"-droppable";return{base:e,contextId:e+"-context-id",id:e+"-id"}}(),Fv={contextId:Av+"-scroll-container-context-id"},zv=function(e,t){return e.map((function(e){var n=e.styles[t];return n?e.selector+" { "+n+" }":""})).join(" ")},Bv=function(e){var t=function(e){return function(t){return"["+t+'="'+e+'"]'}}(e),n=function(){var e="\n cursor: -webkit-grab;\n cursor: grab;\n ";return{selector:t(Rv.contextId),styles:{always:"\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n touch-action: manipulation;\n ",resting:e,dragging:"pointer-events: none;",dropAnimating:e}}}(),r=function(){var e="\n transition: "+Lg.outOfTheWay+";\n ";return{selector:t(Mv.contextId),styles:{dragging:e,dropAnimating:e,userCancel:e}}}(),i=[r,n,{selector:t(Lv.contextId),styles:{always:"overflow-anchor: none;"}},{selector:"body",styles:{dragging:"\n cursor: grabbing;\n cursor: -webkit-grabbing;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n overflow-anchor: none;\n "}}];return{always:zv(i,"always"),resting:zv(i,"resting"),dragging:zv(i,"dragging"),dropAnimating:zv(i,"dropAnimating"),userCancel:zv(i,"userCancel")}},Uv="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement?a.useLayoutEffect:a.useEffect,Hv=function(){var e=document.querySelector("head");return e||If(!1),e},Vv=function(e){var t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.type="text/css",t};var Gv=function(e){return e&&e.ownerDocument?e.ownerDocument.defaultView:window};function Wv(e){return e instanceof Gv(e).HTMLElement}function qv(e,t){var n="["+Rv.contextId+'="'+e+'"]',r=tm(document.querySelectorAll(n));if(!r.length)return null;var i=em(r,(function(e){return e.getAttribute(Rv.draggableId)===t}));return i&&Wv(i)?i:null}function Zv(){var e={draggables:{},droppables:{}},t=[];function n(e){t.length&&t.forEach((function(t){return t(e)}))}function r(t){return e.draggables[t]||null}function i(t){return e.droppables[t]||null}return{draggable:{register:function(t){e.draggables[t.descriptor.id]=t,n({type:"ADDITION",value:t})},update:function(t,n){var r=e.draggables[n.descriptor.id];r&&r.uniqueId===t.uniqueId&&(delete e.draggables[n.descriptor.id],e.draggables[t.descriptor.id]=t)},unregister:function(t){var i=t.descriptor.id,o=r(i);o&&t.uniqueId===o.uniqueId&&(delete e.draggables[i],n({type:"REMOVAL",value:t}))},getById:function(e){var t=r(e);return t||If(!1),t},findById:r,exists:function(e){return Boolean(r(e))},getAllByType:function(t){return $f(e.draggables).filter((function(e){return e.descriptor.type===t}))}},droppable:{register:function(t){e.droppables[t.descriptor.id]=t},unregister:function(t){var n=i(t.descriptor.id);n&&t.uniqueId===n.uniqueId&&delete e.droppables[t.descriptor.id]},getById:function(e){var t=i(e);return t||If(!1),t},findById:i,exists:function(e){return Boolean(i(e))},getAllByType:function(t){return $f(e.droppables).filter((function(e){return e.descriptor.type===t}))}},subscribe:function(e){return t.push(e),function(){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}},clean:function(){e.draggables={},e.droppables={},t.length=0}}}var Yv=a.createContext(null),Kv=function(){var e=document.body;return e||If(!1),e},Qv={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)","clip-path":"inset(100%)"},Xv=function(e){return"rbd-announcement-"+e};var $v=0,Jv={separator:"::"};function ey(e,t){return void 0===t&&(t=Jv),tf((function(){return""+e+t.separator+$v++}),[t.separator,e])}var ty=a.createContext(null);function ny(e){0}function ry(e,t){ny()}function iy(e){var t=(0,a.useRef)(e);return(0,a.useEffect)((function(){t.current=e})),t}var oy,ay=27,sy=32,ly=37,cy=38,uy=39,dy=40,hy=((oy={})[13]=!0,oy[9]=!0,oy),py=function(e){hy[e.keyCode]&&e.preventDefault()},fy=function(){var e="visibilitychange";return"undefined"===typeof document?e:em([e,"ms"+e,"webkit"+e,"moz"+e,"o"+e],(function(e){return"on"+e in document}))||e}(),my=0,gy=5;var vy,yy={type:"IDLE"};function by(e){var t=e.cancel,n=e.completed,r=e.getPhase,i=e.setPhase;return[{eventName:"mousemove",fn:function(e){var t=e.button,n=e.clientX,o=e.clientY;if(t===my){var a={x:n,y:o},s=r();if("DRAGGING"===s.type)return e.preventDefault(),void s.actions.move(a);"PENDING"!==s.type&&If(!1);var l=s.point;if(c=l,u=a,Math.abs(u.x-c.x)>=gy||Math.abs(u.y-c.y)>=gy){var c,u;e.preventDefault();var d=s.actions.fluidLift(a);i({type:"DRAGGING",actions:d})}}}},{eventName:"mouseup",fn:function(e){var i=r();"DRAGGING"===i.type?(e.preventDefault(),i.actions.drop({shouldBlockNextClick:!0}),n()):t()}},{eventName:"mousedown",fn:function(e){"DRAGGING"===r().type&&e.preventDefault(),t()}},{eventName:"keydown",fn:function(e){if("PENDING"!==r().type)return e.keyCode===ay?(e.preventDefault(),void t()):void py(e);t()}},{eventName:"resize",fn:t},{eventName:"scroll",options:{passive:!0,capture:!1},fn:function(){"PENDING"===r().type&&t()}},{eventName:"webkitmouseforcedown",fn:function(e){var n=r();"IDLE"===n.type&&If(!1),n.actions.shouldRespectForcePress()?t():e.preventDefault()}},{eventName:fy,fn:t}]}function xy(){}var wy=((vy={})[34]=!0,vy[33]=!0,vy[36]=!0,vy[35]=!0,vy);function Sy(e,t){function n(){t(),e.cancel()}return[{eventName:"keydown",fn:function(r){return r.keyCode===ay?(r.preventDefault(),void n()):r.keyCode===sy?(r.preventDefault(),t(),void e.drop()):r.keyCode===dy?(r.preventDefault(),void e.moveDown()):r.keyCode===cy?(r.preventDefault(),void e.moveUp()):r.keyCode===uy?(r.preventDefault(),void e.moveRight()):r.keyCode===ly?(r.preventDefault(),void e.moveLeft()):void(wy[r.keyCode]?r.preventDefault():py(r))}},{eventName:"mousedown",fn:n},{eventName:"mouseup",fn:n},{eventName:"click",fn:n},{eventName:"touchstart",fn:n},{eventName:"resize",fn:n},{eventName:"wheel",fn:n,options:{passive:!0}},{eventName:fy,fn:n}]}var _y={type:"IDLE"},Cy=120,Ey=.15;var Ty={input:!0,button:!0,textarea:!0,select:!0,option:!0,optgroup:!0,video:!0,audio:!0};function Oy(e,t){if(null==t)return!1;if(Boolean(Ty[t.tagName.toLowerCase()]))return!0;var n=t.getAttribute("contenteditable");return"true"===n||""===n||t!==e&&Oy(e,t.parentElement)}function Ny(e,t){var n=t.target;return!!Wv(n)&&Oy(e,n)}var ky=function(e){return rf(e.getBoundingClientRect()).center};var jy=function(){var e="matches";return"undefined"===typeof document?e:em([e,"msMatchesSelector","webkitMatchesSelector"],(function(e){return e in Element.prototype}))||e}();function Iy(e,t){return null==e?null:e[jy](t)?e:Iy(e.parentElement,t)}function Py(e,t){return e.closest?e.closest(t):Iy(e,t)}function Dy(e,t){var n,r=t.target;if(!((n=r)instanceof Gv(n).Element))return null;var i=function(e){return"["+Rv.contextId+'="'+e+'"]'}(e),o=Py(r,i);return o&&Wv(o)?o:null}function Ay(e){e.preventDefault()}function Ry(e){var t=e.expected,n=e.phase,r=e.isLockActive;e.shouldWarn;return!!r()&&t===n}function My(e){var t=e.lockAPI,n=e.store,r=e.registry,i=e.draggableId;if(t.isClaimed())return!1;var o=r.draggable.findById(i);return!!o&&(!!o.options.isEnabled&&!!uv(n.getState(),i))}function Ly(e){var t=e.lockAPI,n=e.contextId,r=e.store,i=e.registry,o=e.draggableId,a=e.forceSensorStop,s=e.sourceEvent;if(!My({lockAPI:t,store:r,registry:i,draggableId:o}))return null;var l=i.draggable.getById(o),c=function(e,t){var n="["+Mv.contextId+'="'+e+'"]',r=em(tm(document.querySelectorAll(n)),(function(e){return e.getAttribute(Mv.id)===t}));return r&&Wv(r)?r:null}(n,l.descriptor.id);if(!c)return null;if(s&&!l.options.canDragInteractiveElements&&Ny(c,s))return null;var u=t.claim(a||Tf),d="PRE_DRAG";function h(){return l.options.shouldRespectForcePress}function p(){return t.isActive(u)}var f=function(e,t){Ry({expected:e,phase:d,isLockActive:p,shouldWarn:!0})&&r.dispatch(t())}.bind(null,"DRAGGING");function m(e){function n(){t.release(),d="COMPLETED"}function i(t,i){if(void 0===i&&(i={shouldBlockNextClick:!1}),e.cleanup(),i.shouldBlockNextClick){var o=Of(window,[{eventName:"click",fn:Ay,options:{once:!0,passive:!1,capture:!0}}]);setTimeout(o)}n(),r.dispatch(jg({reason:t}))}return"PRE_DRAG"!==d&&(n(),"PRE_DRAG"!==d&&If(!1)),r.dispatch(vg(e.liftActionArgs)),d="DRAGGING",(0,qo.Z)({isActive:function(){return Ry({expected:"DRAGGING",phase:d,isLockActive:p,shouldWarn:!1})},shouldRespectForcePress:h,drop:function(e){return i("DROP",e)},cancel:function(e){return i("CANCEL",e)}},e.actions)}var g={isActive:function(){return Ry({expected:"PRE_DRAG",phase:d,isLockActive:p,shouldWarn:!1})},shouldRespectForcePress:h,fluidLift:function(e){var t=vf((function(e){f((function(){return _g({client:e})}))})),n=m({liftActionArgs:{id:o,clientSelection:e,movementMode:"FLUID"},cleanup:function(){return t.cancel()},actions:{move:t}});return(0,qo.Z)({},n,{move:t})},snapLift:function(){var e={moveUp:function(){return f(Cg)},moveRight:function(){return f(Tg)},moveDown:function(){return f(Eg)},moveLeft:function(){return f(Og)}};return m({liftActionArgs:{id:o,clientSelection:ky(c),movementMode:"SNAP"},cleanup:Tf,actions:e})},abort:function(){Ry({expected:"PRE_DRAG",phase:d,isLockActive:p,shouldWarn:!0})&&t.release()}};return g}var Fy=[function(e){var t=(0,a.useRef)(yy),n=(0,a.useRef)(Tf),r=tf((function(){return{eventName:"mousedown",fn:function(t){if(!t.defaultPrevented&&t.button===my&&!(t.ctrlKey||t.metaKey||t.shiftKey||t.altKey)){var r=e.findClosestDraggableId(t);if(r){var i=e.tryGetLock(r,s,{sourceEvent:t});if(i){t.preventDefault();var o={x:t.clientX,y:t.clientY};n.current(),u(i,o)}}}}}}),[e]),i=tf((function(){return{eventName:"webkitmouseforcewillbegin",fn:function(t){if(!t.defaultPrevented){var n=e.findClosestDraggableId(t);if(n){var r=e.findOptionsForDraggable(n);r&&(r.shouldRespectForcePress||e.canGetLock(n)&&t.preventDefault())}}}}}),[e]),o=nf((function(){n.current=Of(window,[i,r],{passive:!1,capture:!0})}),[i,r]),s=nf((function(){"IDLE"!==t.current.type&&(t.current=yy,n.current(),o())}),[o]),l=nf((function(){var e=t.current;s(),"DRAGGING"===e.type&&e.actions.cancel({shouldBlockNextClick:!0}),"PENDING"===e.type&&e.actions.abort()}),[s]),c=nf((function(){var e=by({cancel:l,completed:s,getPhase:function(){return t.current},setPhase:function(e){t.current=e}});n.current=Of(window,e,{capture:!0,passive:!1})}),[l,s]),u=nf((function(e,n){"IDLE"!==t.current.type&&If(!1),t.current={type:"PENDING",point:n,actions:e},c()}),[c]);Uv((function(){return o(),function(){n.current()}}),[o])},function(e){var t=(0,a.useRef)(xy),n=tf((function(){return{eventName:"keydown",fn:function(n){if(!n.defaultPrevented&&n.keyCode===sy){var i=e.findClosestDraggableId(n);if(i){var o=e.tryGetLock(i,l,{sourceEvent:n});if(o){n.preventDefault();var a=!0,s=o.snapLift();t.current(),t.current=Of(window,Sy(s,l),{capture:!0,passive:!1})}}}function l(){a||If(!1),a=!1,t.current(),r()}}}}),[e]),r=nf((function(){t.current=Of(window,[n],{passive:!1,capture:!0})}),[n]);Uv((function(){return r(),function(){t.current()}}),[r])},function(e){var t=(0,a.useRef)(_y),n=(0,a.useRef)(Tf),r=nf((function(){return t.current}),[]),i=nf((function(e){t.current=e}),[]),o=tf((function(){return{eventName:"touchstart",fn:function(t){if(!t.defaultPrevented){var r=e.findClosestDraggableId(t);if(r){var i=e.tryGetLock(r,l,{sourceEvent:t});if(i){var o=t.touches[0],a={x:o.clientX,y:o.clientY};n.current(),h(i,a)}}}}}}),[e]),s=nf((function(){n.current=Of(window,[o],{capture:!0,passive:!1})}),[o]),l=nf((function(){var e=t.current;"IDLE"!==e.type&&("PENDING"===e.type&&clearTimeout(e.longPressTimerId),i(_y),n.current(),s())}),[s,i]),c=nf((function(){var e=t.current;l(),"DRAGGING"===e.type&&e.actions.cancel({shouldBlockNextClick:!0}),"PENDING"===e.type&&e.actions.abort()}),[l]),u=nf((function(){var e={capture:!0,passive:!1},t={cancel:c,completed:l,getPhase:r},i=Of(window,function(e){var t=e.cancel,n=e.completed,r=e.getPhase;return[{eventName:"touchmove",options:{capture:!1},fn:function(e){var n=r();if("DRAGGING"===n.type){n.hasMoved=!0;var i=e.touches[0],o={x:i.clientX,y:i.clientY};e.preventDefault(),n.actions.move(o)}else t()}},{eventName:"touchend",fn:function(e){var i=r();"DRAGGING"===i.type?(e.preventDefault(),i.actions.drop({shouldBlockNextClick:!0}),n()):t()}},{eventName:"touchcancel",fn:function(e){"DRAGGING"===r().type?(e.preventDefault(),t()):t()}},{eventName:"touchforcechange",fn:function(e){var n=r();"IDLE"===n.type&&If(!1);var i=e.touches[0];if(i&&i.force>=Ey){var o=n.actions.shouldRespectForcePress();if("PENDING"!==n.type)return o?n.hasMoved?void e.preventDefault():void t():void e.preventDefault();o&&t()}}},{eventName:fy,fn:t}]}(t),e),o=Of(window,function(e){var t=e.cancel,n=e.getPhase;return[{eventName:"orientationchange",fn:t},{eventName:"resize",fn:t},{eventName:"contextmenu",fn:function(e){e.preventDefault()}},{eventName:"keydown",fn:function(e){"DRAGGING"===n().type?(e.keyCode===ay&&e.preventDefault(),t()):t()}},{eventName:fy,fn:t}]}(t),e);n.current=function(){i(),o()}}),[c,r,l]),d=nf((function(){var e=r();"PENDING"!==e.type&&If(!1);var t=e.actions.fluidLift(e.point);i({type:"DRAGGING",actions:t,hasMoved:!1})}),[r,i]),h=nf((function(e,t){"IDLE"!==r().type&&If(!1);var n=setTimeout(d,Cy);i({type:"PENDING",point:t,actions:e,longPressTimerId:n}),u()}),[u,r,i,d]);Uv((function(){return s(),function(){n.current();var e=r();"PENDING"===e.type&&(clearTimeout(e.longPressTimerId),i(_y))}}),[r,s,i]),Uv((function(){return Of(window,[{eventName:"touchmove",fn:function(){},options:{capture:!1,passive:!1}}])}),[])}];function zy(e){var t=e.contextId,n=e.store,r=e.registry,i=e.customSensors,o=e.enableDefaultSensors,s=[].concat(o?Fy:[],i||[]),l=(0,a.useState)((function(){return function(){var e=null;function t(){e||If(!1),e=null}return{isClaimed:function(){return Boolean(e)},isActive:function(t){return t===e},claim:function(t){e&&If(!1);var n={abandon:t};return e=n,n},release:t,tryAbandon:function(){e&&(e.abandon(),t())}}}()}))[0],c=nf((function(e,t){e.isDragging&&!t.isDragging&&l.tryAbandon()}),[l]);Uv((function(){var e=n.getState();return n.subscribe((function(){var t=n.getState();c(e,t),e=t}))}),[l,n,c]),Uv((function(){return l.tryAbandon}),[l.tryAbandon]);var u=nf((function(e){return My({lockAPI:l,registry:r,store:n,draggableId:e})}),[l,r,n]),d=nf((function(e,i,o){return Ly({lockAPI:l,registry:r,contextId:t,store:n,draggableId:e,forceSensorStop:i,sourceEvent:o&&o.sourceEvent?o.sourceEvent:null})}),[t,l,r,n]),h=nf((function(e){return function(e,t){var n=Dy(e,t);return n?n.getAttribute(Rv.draggableId):null}(t,e)}),[t]),p=nf((function(e){var t=r.draggable.findById(e);return t?t.options:null}),[r.draggable]),f=nf((function(){l.isClaimed()&&(l.tryAbandon(),"IDLE"!==n.getState().phase&&n.dispatch(Ng()))}),[l,n]),m=nf(l.isClaimed,[l]),g=tf((function(){return{canGetLock:u,tryGetLock:d,findClosestDraggableId:h,findOptionsForDraggable:p,tryReleaseLock:f,isLockClaimed:m}}),[u,d,h,p,f,m]);ny();for(var v=0;v<s.length;v++)s[v](g)}var By=function(e){return{onBeforeCapture:e.onBeforeCapture,onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragEnd:e.onDragEnd,onDragUpdate:e.onDragUpdate}};function Uy(e){return e.current||If(!1),e.current}function Hy(e){var t=e.contextId,n=e.setCallbacks,r=e.sensors,i=e.nonce,o=e.dragHandleUsageInstructions,s=(0,a.useRef)(null);ry();var l=iy(e),c=nf((function(){return By(l.current)}),[l]),u=function(e){var t=tf((function(){return Xv(e)}),[e]),n=(0,a.useRef)(null);return(0,a.useEffect)((function(){var e=document.createElement("div");return n.current=e,e.id=t,e.setAttribute("aria-live","assertive"),e.setAttribute("aria-atomic","true"),(0,qo.Z)(e.style,Qv),Kv().appendChild(e),function(){setTimeout((function(){var t=Kv();t.contains(e)&&t.removeChild(e),e===n.current&&(n.current=null)}))}}),[t]),nf((function(e){var t=n.current;t&&(t.textContent=e)}),[])}(t),d=function(e){var t=e.contextId,n=e.text,r=ey("hidden-text",{separator:"-"}),i=tf((function(){return"rbd-hidden-text-"+(e={contextId:t,uniqueId:r}).contextId+"-"+e.uniqueId;var e}),[r,t]);return(0,a.useEffect)((function(){var e=document.createElement("div");return e.id=i,e.textContent=n,e.style.display="none",Kv().appendChild(e),function(){var t=Kv();t.contains(e)&&t.removeChild(e)}}),[i,n]),i}({contextId:t,text:o}),h=function(e,t){var n=tf((function(){return Bv(e)}),[e]),r=(0,a.useRef)(null),i=(0,a.useRef)(null),o=nf(gf((function(e){var t=i.current;t||If(!1),t.textContent=e})),[]),s=nf((function(e){var t=r.current;t||If(!1),t.textContent=e}),[]);Uv((function(){(r.current||i.current)&&If(!1);var a=Vv(t),l=Vv(t);return r.current=a,i.current=l,a.setAttribute(Av+"-always",e),l.setAttribute(Av+"-dynamic",e),Hv().appendChild(a),Hv().appendChild(l),s(n.always),o(n.resting),function(){var e=function(e){var t=e.current;t||If(!1),Hv().removeChild(t),e.current=null};e(r),e(i)}}),[t,s,o,n.always,n.resting,e]);var l=nf((function(){return o(n.dragging)}),[o,n.dragging]),c=nf((function(e){o("DROP"!==e?n.userCancel:n.dropAnimating)}),[o,n.dropAnimating,n.userCancel]),u=nf((function(){i.current&&o(n.resting)}),[o,n.resting]);return tf((function(){return{dragging:l,dropping:c,resting:u}}),[l,c,u])}(t,i),p=nf((function(e){Uy(s).dispatch(e)}),[]),f=tf((function(){return(0,gp.DE)({publishWhileDragging:yg,updateDroppableScroll:xg,updateDroppableIsEnabled:wg,updateDroppableIsCombineEnabled:Sg,collectionStarting:bg},p)}),[p]),m=function(){var e=tf(Zv,[]);return(0,a.useEffect)((function(){return function(){requestAnimationFrame(e.clean)}}),[e]),e}(),g=tf((function(){return cv(m,f)}),[m,f]),v=tf((function(){return Dv((0,qo.Z)({scrollWindow:dv,scrollDroppable:g.scrollDroppable},(0,gp.DE)({move:_g},p)))}),[g.scrollDroppable,p]),y=function(e){var t=(0,a.useRef)({}),n=(0,a.useRef)(null),r=(0,a.useRef)(null),i=(0,a.useRef)(!1),o=nf((function(e,n){var r={id:e,focus:n};return t.current[e]=r,function(){var n=t.current;n[e]!==r&&delete n[e]}}),[]),s=nf((function(t){var n=qv(e,t);n&&n!==document.activeElement&&n.focus()}),[e]),l=nf((function(e,t){n.current===e&&(n.current=t)}),[]),c=nf((function(){r.current||i.current&&(r.current=requestAnimationFrame((function(){r.current=null;var e=n.current;e&&s(e)})))}),[s]),u=nf((function(e){n.current=null;var t=document.activeElement;t&&t.getAttribute(Rv.draggableId)===e&&(n.current=e)}),[]);return Uv((function(){return i.current=!0,function(){i.current=!1;var e=r.current;e&&cancelAnimationFrame(e)}}),[]),tf((function(){return{register:o,tryRecordFocus:u,tryRestoreFocusRecorded:c,tryShiftRecord:l}}),[o,u,c,l])}(t),b=tf((function(){return nv({announce:u,autoScroller:v,dimensionMarshal:g,focusMarshal:y,getResponders:c,styleMarshal:h})}),[u,v,g,y,c,h]);s.current=b;var x=nf((function(){var e=Uy(s);"IDLE"!==e.getState().phase&&e.dispatch(Ng())}),[]),w=nf((function(){var e=Uy(s).getState();return e.isDragging||"DROP_ANIMATING"===e.phase}),[]);n(tf((function(){return{isDragging:w,tryAbort:x}}),[w,x]));var S=nf((function(e){return uv(Uy(s).getState(),e)}),[]),_=nf((function(){return Qm(Uy(s).getState())}),[]),C=tf((function(){return{marshal:g,focus:y,contextId:t,canLift:S,isMovementAllowed:_,dragHandleUsageInstructionsId:d,registry:m}}),[t,g,d,y,S,_,m]);return zy({contextId:t,store:b,registry:m,customSensors:r,enableDefaultSensors:!1!==e.enableDefaultSensors}),(0,a.useEffect)((function(){return x}),[x]),a.createElement(ty.Provider,{value:C},a.createElement(_p,{context:Yv,store:b},e.children))}var Vy=0;function Gy(e){var t=tf((function(){return""+Vy++}),[]),n=e.dragHandleUsageInstructions||Lf.dragHandleUsageInstructions;return a.createElement(Pf,null,(function(r){return a.createElement(Hy,{nonce:e.nonce,contextId:t,setCallbacks:r,dragHandleUsageInstructions:n,enableDefaultSensors:e.enableDefaultSensors,sensors:e.sensors,onBeforeCapture:e.onBeforeCapture,onBeforeDragStart:e.onBeforeDragStart,onDragStart:e.onDragStart,onDragUpdate:e.onDragUpdate,onDragEnd:e.onDragEnd},e.children)}))}var Wy=function(e){return function(t){return e===t}},qy=Wy("scroll"),Zy=Wy("auto"),Yy=(Wy("visible"),function(e,t){return t(e.overflowX)||t(e.overflowY)}),Ky=function(e){var t=window.getComputedStyle(e),n={overflowX:t.overflowX,overflowY:t.overflowY};return Yy(n,qy)||Yy(n,Zy)},Qy=function e(t){return null==t||t===document.body||t===document.documentElement?null:Ky(t)?t:e(t.parentElement)},Xy=function(e){return{x:e.scrollLeft,y:e.scrollTop}},$y=function e(t){return!!t&&("fixed"===window.getComputedStyle(t).position||e(t.parentElement))},Jy=function(e){return{closestScrollable:Qy(e),isFixedOnPage:$y(e)}},eb=function(e){var t=e.ref,n=e.descriptor,r=e.env,i=e.windowScroll,o=e.direction,a=e.isDropDisabled,s=e.isCombineEnabled,l=e.shouldClipSubject,c=r.closestScrollable,u=function(e,t){var n=pf(e);if(!t)return n;if(e!==t)return n;var r=n.paddingBox.top-t.scrollTop,i=n.paddingBox.left-t.scrollLeft,o=r+t.scrollHeight,a=i+t.scrollWidth,s=of({top:r,right:a,bottom:o,left:i},n.border);return lf({borderBox:s,margin:n.margin,border:n.border,padding:n.padding})}(t,c),d=df(u,i),h=function(){if(!c)return null;var e=pf(c),t={scrollHeight:c.scrollHeight,scrollWidth:c.scrollWidth};return{client:e,page:df(e,i),scroll:Xy(c),scrollSize:t,shouldClipSubject:l}}(),p=function(e){var t=e.descriptor,n=e.isEnabled,r=e.isCombineEnabled,i=e.isFixedOnPage,o=e.direction,a=e.client,s=e.page,l=e.closest,c=function(){if(!l)return null;var e=l.scrollSize,t=l.client,n=iv({scrollHeight:e.scrollHeight,scrollWidth:e.scrollWidth,height:t.paddingBox.height,width:t.paddingBox.width});return{pageMarginBox:l.page.marginBox,frameClient:t,scrollSize:e,shouldClipSubject:l.shouldClipSubject,scroll:{initial:l.scroll,current:l.scroll,max:n,diff:{value:Ff,displacement:Ff}}}}(),u="vertical"===o?vm:ym;return{descriptor:t,isCombineEnabled:r,isFixedOnPage:i,axis:u,isEnabled:n,client:a,page:s,frame:c,subject:Qf({page:s,withPlaceholder:null,axis:u,frame:c})}}({descriptor:n,isEnabled:!a,isCombineEnabled:s,isFixedOnPage:r.isFixedOnPage,direction:o,client:u,page:d,closest:h});return p},tb={passive:!1},nb={passive:!0},rb=function(e){return e.shouldPublishImmediately?tb:nb};function ib(e){var t=(0,a.useContext)(e);return t||If(!1),t}var ob=function(e){return e&&e.env.closestScrollable||null};function ab(){}var sb={width:0,height:0,margin:{top:0,right:0,bottom:0,left:0}},lb=function(e){var t=e.isAnimatingOpenOnMount,n=e.placeholder,r=e.animate,i=function(e){var t=e.isAnimatingOpenOnMount,n=e.placeholder,r=e.animate;return t||"close"===r?sb:{height:n.client.borderBox.height,width:n.client.borderBox.width,margin:n.client.margin}}({isAnimatingOpenOnMount:t,placeholder:n,animate:r});return{display:n.display,boxSizing:"border-box",width:i.width,height:i.height,marginTop:i.margin.top,marginRight:i.margin.right,marginBottom:i.margin.bottom,marginLeft:i.margin.left,flexShrink:"0",flexGrow:"0",pointerEvents:"none",transition:"none"!==r?Lg.placeholder:null}};var cb=a.memo((function(e){var t=(0,a.useRef)(null),n=nf((function(){t.current&&(clearTimeout(t.current),t.current=null)}),[]),r=e.animate,i=e.onTransitionEnd,o=e.onClose,s=e.contextId,l=(0,a.useState)("open"===e.animate),c=l[0],u=l[1];(0,a.useEffect)((function(){return c?"open"!==r?(n(),u(!1),ab):t.current?ab:(t.current=setTimeout((function(){t.current=null,u(!1)})),n):ab}),[r,c,n]);var d=nf((function(e){"height"===e.propertyName&&(i(),"close"===r&&o())}),[r,o,i]),h=lb({isAnimatingOpenOnMount:c,animate:e.animate,placeholder:e.placeholder});return a.createElement(e.placeholder.tagName,{style:h,"data-rbd-placeholder-context-id":s,onTransitionEnd:d,ref:e.innerRef})})),ub=a.createContext(null);var db=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return(t=e.call.apply(e,[this].concat(r))||this).state={isVisible:Boolean(t.props.on),data:t.props.on,animate:t.props.shouldAnimate&&t.props.on?"open":"none"},t.onClose=function(){"close"===t.state.animate&&t.setState({isVisible:!1})},t}return(0,Uo.Z)(t,e),t.getDerivedStateFromProps=function(e,t){return e.shouldAnimate?e.on?{isVisible:!0,data:e.on,animate:"open"}:t.isVisible?{isVisible:!0,data:t.data,animate:"close"}:{isVisible:!1,animate:"close",data:null}:{isVisible:Boolean(e.on),data:e.on,animate:"none"}},t.prototype.render=function(){if(!this.state.isVisible)return null;var e={onClose:this.onClose,data:this.state.data,animate:this.state.animate};return this.props.children(e)},t}(a.PureComponent),hb={dragging:5e3,dropAnimating:4500},pb=function(e,t){return t?Lg.drop(t.duration):e?Lg.snap:Lg.fluid},fb=function(e,t){return e?t?Dg.opacity.drop:Dg.opacity.combining:null},mb=function(e){return null!=e.forceShouldAnimate?e.forceShouldAnimate:"SNAP"===e.mode};function gb(e){return"DRAGGING"===e.type?function(e){var t=e.dimension.client,n=e.offset,r=e.combineWith,i=e.dropping,o=Boolean(r),a=mb(e),s=Boolean(i),l=s?zg.drop(n,o):zg.moveTo(n);return{position:"fixed",top:t.marginBox.top,left:t.marginBox.left,boxSizing:"border-box",width:t.borderBox.width,height:t.borderBox.height,transition:pb(a,i),transform:l,opacity:fb(o,s),zIndex:s?hb.dropAnimating:hb.dragging,pointerEvents:"none"}}(e):(t=e,{transform:zg.moveTo(t.offset),transition:t.shouldAnimateDisplacement?null:"none"});var t}function vb(e){var t=ey("draggable"),n=e.descriptor,r=e.registry,i=e.getDraggableRef,o=e.canDragInteractiveElements,s=e.shouldRespectForcePress,l=e.isEnabled,c=tf((function(){return{canDragInteractiveElements:o,shouldRespectForcePress:s,isEnabled:l}}),[o,l,s]),u=nf((function(e){var t=i();return t||If(!1),function(e,t,n){void 0===n&&(n=Ff);var r=window.getComputedStyle(t),i=t.getBoundingClientRect(),o=hf(i,r),a=df(o,n);return{descriptor:e,placeholder:{client:o,tagName:t.tagName.toLowerCase(),display:r.display},displaceBy:{x:o.marginBox.width,y:o.marginBox.height},client:o,page:a}}(n,t,e)}),[n,i]),d=tf((function(){return{uniqueId:t,descriptor:n,options:c,getDimension:u}}),[n,u,c,t]),h=(0,a.useRef)(d),p=(0,a.useRef)(!0);Uv((function(){return r.draggable.register(h.current),function(){return r.draggable.unregister(h.current)}}),[r.draggable]),Uv((function(){if(p.current)p.current=!1;else{var e=h.current;h.current=d,r.draggable.update(d,e)}}),[d,r.draggable])}function yb(e,t,n){ry()}function bb(e){e.preventDefault()}var xb=function(e,t){return e===t},wb=function(e){var t=e.combine,n=e.destination;return n?n.droppableId:t?t.droppableId:null},Sb=function(e){return e.combine?e.combine.draggableId:null},_b=function(e){return e.at&&"COMBINE"===e.at.type?e.at.combine.draggableId:null};function Cb(e){return{isDragging:!1,isDropAnimating:!1,isClone:!1,dropAnimation:null,mode:null,draggingOver:null,combineTargetFor:e,combineWith:null}}var Eb={mapped:{type:"SECONDARY",offset:Ff,combineTargetFor:null,shouldAnimateDisplacement:!0,snapshot:Cb(null)}};var Tb=$p((function(){var e=function(){var e=gf((function(e,t){return{x:e,y:t}})),t=gf((function(e,t,n,r,i){return{isDragging:!0,isClone:t,isDropAnimating:Boolean(i),dropAnimation:i,mode:e,draggingOver:n,combineWith:r,combineTargetFor:null}})),n=gf((function(e,n,r,i,o,a,s){return{mapped:{type:"DRAGGING",dropping:null,draggingOver:o,combineWith:a,mode:n,offset:e,dimension:r,forceShouldAnimate:s,snapshot:t(n,i,o,a,null)}}}));return function(r,i){if(r.isDragging){if(r.critical.draggable.id!==i.draggableId)return null;var o=r.current.client.offset,a=r.dimensions.draggables[i.draggableId],s=Ym(r.impact),l=_b(r.impact),c=r.forceShouldAnimate;return n(e(o.x,o.y),r.movementMode,a,i.isClone,s,l,c)}if("DROP_ANIMATING"===r.phase){var u=r.completed;if(u.result.draggableId!==i.draggableId)return null;var d=i.isClone,h=r.dimensions.draggables[i.draggableId],p=u.result,f=p.mode,m=wb(p),g=Sb(p),v={duration:r.dropDuration,curve:Pg.drop,moveTo:r.newHomeClientOffset,opacity:g?Dg.opacity.drop:null,scale:g?Dg.scale.drop:null};return{mapped:{type:"DRAGGING",offset:r.newHomeClientOffset,dimension:h,dropping:v,draggingOver:m,combineWith:g,mode:f,forceShouldAnimate:null,snapshot:t(f,d,m,g,v)}}}return null}}(),t=function(){var e=gf((function(e,t){return{x:e,y:t}})),t=gf(Cb),n=gf((function(e,n,r){return void 0===n&&(n=null),{mapped:{type:"SECONDARY",offset:e,combineTargetFor:n,shouldAnimateDisplacement:r,snapshot:t(n)}}})),r=function(e){return e?n(Ff,e,!0):null},i=function(t,i,o,a){var s=o.displaced.visible[t],l=Boolean(a.inVirtualList&&a.effected[t]),c=lm(o),u=c&&c.draggableId===t?i:null;if(!s){if(!l)return r(u);if(o.displaced.invisible[t])return null;var d=Hf(a.displacedBy.point),h=e(d.x,d.y);return n(h,u,!0)}if(l)return r(u);var p=o.displacedBy.point,f=e(p.x,p.y);return n(f,u,s.shouldAnimate)};return function(e,t){if(e.isDragging)return e.critical.draggable.id===t.draggableId?null:i(t.draggableId,e.critical.draggable.id,e.impact,e.afterCritical);if("DROP_ANIMATING"===e.phase){var n=e.completed;return n.result.draggableId===t.draggableId?null:i(t.draggableId,n.result.draggableId,n.impact,n.afterCritical)}return null}}();return function(n,r){return e(n,r)||t(n,r)||Eb}}),{dropAnimationFinished:Ig},null,{context:Yv,pure:!0,areStatePropsEqual:xb})((function(e){var t=(0,a.useRef)(null),n=nf((function(e){t.current=e}),[]),r=nf((function(){return t.current}),[]),i=ib(ty),o=i.contextId,s=i.dragHandleUsageInstructionsId,l=i.registry,c=ib(ub),u=c.type,d=c.droppableId,h=tf((function(){return{id:e.draggableId,index:e.index,type:u,droppableId:d}}),[e.draggableId,e.index,u,d]),p=e.children,f=e.draggableId,m=e.isEnabled,g=e.shouldRespectForcePress,v=e.canDragInteractiveElements,y=e.isClone,b=e.mapped,x=e.dropAnimationFinished;yb(),ny(),y||vb(tf((function(){return{descriptor:h,registry:l,getDraggableRef:r,canDragInteractiveElements:v,shouldRespectForcePress:g,isEnabled:m}}),[h,l,r,v,g,m]));var w=tf((function(){return m?{tabIndex:0,role:"button","aria-describedby":s,"data-rbd-drag-handle-draggable-id":f,"data-rbd-drag-handle-context-id":o,draggable:!1,onDragStart:bb}:null}),[o,s,f,m]),S=nf((function(e){"DRAGGING"===b.type&&b.dropping&&"transform"===e.propertyName&&x()}),[x,b]),_=tf((function(){var e=gb(b),t="DRAGGING"===b.type&&b.dropping?S:null;return{innerRef:n,draggableProps:{"data-rbd-draggable-context-id":o,"data-rbd-draggable-id":f,style:e,onTransitionEnd:t},dragHandleProps:w}}),[o,w,f,b,S,n]),C=tf((function(){return{draggableId:h.id,type:h.type,source:{index:h.index,droppableId:h.droppableId}}}),[h.droppableId,h.id,h.index,h.type]);return p(_,b.snapshot,C)}));function Ob(e){return ib(ub).isUsingCloneFor!==e.draggableId||e.isClone?a.createElement(Tb,e):null}function Nb(e){var t="boolean"!==typeof e.isDragDisabled||!e.isDragDisabled,n=Boolean(e.disableInteractiveElementBlocking),r=Boolean(e.shouldRespectForcePress);return a.createElement(Ob,(0,qo.Z)({},e,{isClone:!1,isEnabled:t,canDragInteractiveElements:n,shouldRespectForcePress:r}))}var kb=function(e,t){return e===t.droppable.type},jb=function(e,t){return t.draggables[e.draggable.id]};var Ib={mode:"standard",type:"DEFAULT",direction:"vertical",isDropDisabled:!1,isCombineEnabled:!1,ignoreContainerClipping:!1,renderClone:null,getContainerForClone:function(){return document.body||If(!1),document.body}},Pb=$p((function(){var e={placeholder:null,shouldAnimatePlaceholder:!0,snapshot:{isDraggingOver:!1,draggingOverWith:null,draggingFromThisWith:null,isUsingPlaceholder:!1},useClone:null},t=(0,qo.Z)({},e,{shouldAnimatePlaceholder:!1}),n=gf((function(e){return{draggableId:e.id,type:e.type,source:{index:e.index,droppableId:e.droppableId}}})),r=gf((function(r,i,o,a,s,l){var c=s.descriptor.id;if(s.descriptor.droppableId===r){var u=l?{render:l,dragging:n(s.descriptor)}:null,d={isDraggingOver:o,draggingOverWith:o?c:null,draggingFromThisWith:c,isUsingPlaceholder:!0};return{placeholder:s.placeholder,shouldAnimatePlaceholder:!1,snapshot:d,useClone:u}}if(!i)return t;if(!a)return e;var h={isDraggingOver:o,draggingOverWith:c,draggingFromThisWith:null,isUsingPlaceholder:!0};return{placeholder:s.placeholder,shouldAnimatePlaceholder:!0,snapshot:h,useClone:null}}));return function(n,i){var o=i.droppableId,a=i.type,s=!i.isDropDisabled,l=i.renderClone;if(n.isDragging){var c=n.critical;if(!kb(a,c))return t;var u=jb(c,n.dimensions),d=Ym(n.impact)===o;return r(o,s,d,d,u,l)}if("DROP_ANIMATING"===n.phase){var h=n.completed;if(!kb(a,h.critical))return t;var p=jb(h.critical,n.dimensions);return r(o,s,wb(h.result)===o,Ym(h.impact)===o,p,l)}if("IDLE"===n.phase&&n.completed&&!n.shouldFlush){var f=n.completed;if(!kb(a,f.critical))return t;var m=Ym(f.impact)===o,g=Boolean(f.impact.at&&"COMBINE"===f.impact.at.type),v=f.critical.droppable.id===o;return m?g?e:t:v?e:t}return t}}),{updateViewportMaxScroll:function(e){return{type:"UPDATE_VIEWPORT_MAX_SCROLL",payload:e}}},null,{context:Yv,pure:!0,areStatePropsEqual:xb})((function(e){var t=(0,a.useContext)(ty);t||If(!1);var n=t.contextId,r=t.isMovementAllowed,i=(0,a.useRef)(null),o=(0,a.useRef)(null),s=e.children,l=e.droppableId,c=e.type,u=e.mode,d=e.direction,h=e.ignoreContainerClipping,p=e.isDropDisabled,f=e.isCombineEnabled,m=e.snapshot,g=e.useClone,v=e.updateViewportMaxScroll,y=e.getContainerForClone,b=nf((function(){return i.current}),[]),x=nf((function(e){i.current=e}),[]),w=(nf((function(){return o.current}),[]),nf((function(e){o.current=e}),[]));ry();var S=nf((function(){r()&&v({maxScroll:av()})}),[r,v]);!function(e){var t=(0,a.useRef)(null),n=ib(ty),r=ey("droppable"),i=n.registry,o=n.marshal,s=iy(e),l=tf((function(){return{id:e.droppableId,type:e.type,mode:e.mode}}),[e.droppableId,e.mode,e.type]),c=(0,a.useRef)(l),u=tf((function(){return gf((function(e,n){t.current||If(!1);var r={x:e,y:n};o.updateDroppableScroll(l.id,r)}))}),[l.id,o]),d=nf((function(){var e=t.current;return e&&e.env.closestScrollable?Xy(e.env.closestScrollable):Ff}),[]),h=nf((function(){var e=d();u(e.x,e.y)}),[d,u]),p=tf((function(){return vf(h)}),[h]),f=nf((function(){var e=t.current,n=ob(e);e&&n||If(!1),e.scrollOptions.shouldPublishImmediately?h():p()}),[p,h]),m=nf((function(e,r){t.current&&If(!1);var i=s.current,o=i.getDroppableRef();o||If(!1);var a=Jy(o),c={ref:o,descriptor:l,env:a,scrollOptions:r};t.current=c;var u=eb({ref:o,descriptor:l,env:a,windowScroll:e,direction:i.direction,isDropDisabled:i.isDropDisabled,isCombineEnabled:i.isCombineEnabled,shouldClipSubject:!i.ignoreContainerClipping}),d=a.closestScrollable;return d&&(d.setAttribute(Fv.contextId,n.contextId),d.addEventListener("scroll",f,rb(c.scrollOptions))),u}),[n.contextId,l,f,s]),g=nf((function(){var e=t.current,n=ob(e);return e&&n||If(!1),Xy(n)}),[]),v=nf((function(){var e=t.current;e||If(!1);var n=ob(e);t.current=null,n&&(p.cancel(),n.removeAttribute(Fv.contextId),n.removeEventListener("scroll",f,rb(e.scrollOptions)))}),[f,p]),y=nf((function(e){var n=t.current;n||If(!1);var r=ob(n);r||If(!1),r.scrollTop+=e.y,r.scrollLeft+=e.x}),[]),b=tf((function(){return{getDimensionAndWatchScroll:m,getScrollWhileDragging:g,dragStopped:v,scroll:y}}),[v,m,g,y]),x=tf((function(){return{uniqueId:r,descriptor:l,callbacks:b}}),[b,l,r]);Uv((function(){return c.current=x.descriptor,i.droppable.register(x),function(){t.current&&v(),i.droppable.unregister(x)}}),[b,l,v,x,o,i.droppable]),Uv((function(){t.current&&o.updateDroppableIsEnabled(c.current.id,!e.isDropDisabled)}),[e.isDropDisabled,o]),Uv((function(){t.current&&o.updateDroppableIsCombineEnabled(c.current.id,e.isCombineEnabled)}),[e.isCombineEnabled,o])}({droppableId:l,type:c,mode:u,direction:d,isDropDisabled:p,isCombineEnabled:f,ignoreContainerClipping:h,getDroppableRef:b});var _=a.createElement(db,{on:e.placeholder,shouldAnimate:e.shouldAnimatePlaceholder},(function(e){var t=e.onClose,r=e.data,i=e.animate;return a.createElement(cb,{placeholder:r,onClose:t,innerRef:w,animate:i,contextId:n,onTransitionEnd:S})})),C=tf((function(){return{innerRef:x,placeholder:_,droppableProps:{"data-rbd-droppable-id":l,"data-rbd-droppable-context-id":n}}}),[n,l,_,x]),E=g?g.dragging.draggableId:null,T=tf((function(){return{droppableId:l,type:c,isUsingCloneFor:E}}),[l,E,c]);return a.createElement(ub.Provider,{value:T},s(C,m),function(){if(!g)return null;var e=g.dragging,t=g.render,n=a.createElement(Ob,{draggableId:e.draggableId,index:e.source.index,isClone:!0,isEnabled:!0,shouldRespectForcePress:!1,canDragInteractiveElements:!0},(function(n,r){return t(n,r,e)}));return Dt.createPortal(n,y())}())}));let Db;Pb.defaultProps=Ib,Db="undefined"!==typeof window?window:"undefined"!==typeof self?self:n.g;let Ab=null,Rb=null;const Mb=Db.clearTimeout,Lb=Db.setTimeout,Fb=Db.cancelAnimationFrame||Db.mozCancelAnimationFrame||Db.webkitCancelAnimationFrame,zb=Db.requestAnimationFrame||Db.mozRequestAnimationFrame||Db.webkitRequestAnimationFrame;function Bb(e){let t,n,r,i,o,a,s;const l="undefined"!==typeof document&&document.attachEvent;if(!l){a=function(e){const t=e.__resizeTriggers__,n=t.firstElementChild,r=t.lastElementChild,i=n.firstElementChild;r.scrollLeft=r.scrollWidth,r.scrollTop=r.scrollHeight,i.style.width=n.offsetWidth+1+"px",i.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)return;const t=this;a(this),this.__resizeRAF__&&Ab(this.__resizeRAF__),this.__resizeRAF__=Rb((function(){o(t)&&(t.__resizeLast__.width=t.offsetWidth,t.__resizeLast__.height=t.offsetHeight,t.__resizeListeners__.forEach((function(n){n.call(t,e)})))}))};let e=!1,l="";r="animationstart";const c="Webkit Moz O ms".split(" ");let u="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),d="";{const t=document.createElement("fakeelement");if(void 0!==t.style.animationName&&(e=!0),!1===e)for(let n=0;n<c.length;n++)if(void 0!==t.style[c[n]+"AnimationName"]){d=c[n],l="-"+d.toLowerCase()+"-",r=u[n],e=!0;break}}n="resizeanim",t="@"+l+"keyframes "+n+" { from { opacity: 0; } to { opacity: 0; } } ",i=l+"animation: 1ms "+n+"; "}return{addResizeListener:function(o,c){if(l)o.attachEvent("onresize",c);else{if(!o.__resizeTriggers__){const l=o.ownerDocument,c=Db.getComputedStyle(o);c&&"static"===c.position&&(o.style.position="relative"),function(n){if(!n.getElementById("detectElementResize")){const r=(t||"")+".resize-triggers { "+(i||"")+'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=r:a.appendChild(n.createTextNode(r)),o.appendChild(a)}}(l),o.__resizeLast__={},o.__resizeListeners__=[],(o.__resizeTriggers__=l.createElement("div")).className="resize-triggers";const u=l.createElement("div");u.className="expand-trigger",u.appendChild(l.createElement("div"));const d=l.createElement("div");d.className="contract-trigger",o.__resizeTriggers__.appendChild(u),o.__resizeTriggers__.appendChild(d),o.appendChild(o.__resizeTriggers__),a(o),o.addEventListener("scroll",s,!0),r&&(o.__resizeTriggers__.__animationListener__=function(e){e.animationName===n&&a(o)},o.__resizeTriggers__.addEventListener(r,o.__resizeTriggers__.__animationListener__))}o.__resizeListeners__.push(c)}},removeResizeListener:function(e,t){if(l)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(r,e.__resizeTriggers__.__animationListener__),e.__resizeTriggers__.__animationListener__=null);try{e.__resizeTriggers__=!e.removeChild(e.__resizeTriggers__)}catch(tD){}}}}}null==Fb||null==zb?(Ab=Mb,Rb=function(e){return Lb(e,20)}):(Ab=function(e){let[t,n]=e;Fb(t),Mb(n)},Rb=function(e){const t=zb((function(){Mb(n),e()})),n=Lb((function(){Fb(t),e()}),20);return[t,n]});class Ub extends a.Component{constructor(){super(...arguments),this.state={height:this.props.defaultHeight||0,scaledHeight:this.props.defaultHeight||0,scaledWidth:this.props.defaultWidth||0,width:this.props.defaultWidth||0},this._autoSizer=null,this._detectElementResize=null,this._parentNode=null,this._resizeObserver=null,this._timeoutId=null,this._onResize=()=>{this._timeoutId=null;const{disableHeight:e,disableWidth:t,onResize:n}=this.props;if(this._parentNode){const r=window.getComputedStyle(this._parentNode)||{},i=parseFloat(r.paddingLeft||"0"),o=parseFloat(r.paddingRight||"0"),a=parseFloat(r.paddingTop||"0"),s=parseFloat(r.paddingBottom||"0"),l=this._parentNode.getBoundingClientRect(),c=l.height-a-s,u=l.width-i-o,d=this._parentNode.offsetHeight-a-s,h=this._parentNode.offsetWidth-i-o;(e||this.state.height===d&&this.state.scaledHeight===c)&&(t||this.state.width===h&&this.state.scaledWidth===u)||(this.setState({height:d,width:h,scaledHeight:c,scaledWidth:u}),"function"===typeof n&&n({height:d,scaledHeight:c,scaledWidth:u,width:h}))}},this._setRef=e=>{this._autoSizer=e}}componentDidMount(){const{nonce:e}=this.props,t=this._autoSizer?this._autoSizer.parentNode:null;if(null!=t&&t.ownerDocument&&t.ownerDocument.defaultView&&t instanceof t.ownerDocument.defaultView.HTMLElement){this._parentNode=t;const n=t.ownerDocument.defaultView.ResizeObserver;null!=n?(this._resizeObserver=new n((()=>{this._timeoutId=setTimeout(this._onResize,0)})),this._resizeObserver.observe(t)):(this._detectElementResize=Bb(e),this._detectElementResize.addResizeListener(t,this._onResize)),this._onResize()}}componentWillUnmount(){this._parentNode&&(this._detectElementResize&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize),null!==this._timeoutId&&clearTimeout(this._timeoutId),this._resizeObserver&&this._resizeObserver.disconnect())}render(){const{children:e,defaultHeight:t,defaultWidth:n,disableHeight:r=!1,disableWidth:i=!1,doNotBailOutOnEmptyChildren:o=!1,nonce:s,onResize:l,style:c={},tagName:u="div",...d}=this.props,{height:h,scaledHeight:p,scaledWidth:f,width:m}=this.state,g={overflow:"visible"},v={};let y=!1;return r||(0===h&&(y=!0),g.height=0,v.height=h,v.scaledHeight=p),i||(0===m&&(y=!0),g.width=0,v.width=m,v.scaledWidth=f),o&&(y=!1),(0,a.createElement)(u,{ref:this._setRef,style:{...g,...c},...d},!y&&e(v))}}var Hb=n(97326),Vb="object"===typeof performance&&"function"===typeof performance.now?function(){return performance.now()}:function(){return Date.now()};function Gb(e){cancelAnimationFrame(e.id)}function Wb(e,t){var n=Vb();var r={id:requestAnimationFrame((function i(){Vb()-n>=t?e.call(null):r.id=requestAnimationFrame(i)}))};return r}var qb=-1;function Zb(e){if(void 0===e&&(e=!1),-1===qb||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",document.body.appendChild(t),qb=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return qb}var Yb=null;function Kb(e){if(void 0===e&&(e=!1),null===Yb||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",n.direction="rtl";var r=document.createElement("div"),i=r.style;return i.width="100px",i.height="100px",t.appendChild(r),document.body.appendChild(t),t.scrollLeft>0?Yb="positive-descending":(t.scrollLeft=1,Yb=0===t.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(t),Yb}return Yb}var Qb=150,Xb=function(e,t){return e};function $b(e){var t,n=e.getItemOffset,r=e.getEstimatedTotalSize,i=e.getItemSize,o=e.getOffsetForIndexAndAlignment,s=e.getStartIndexForOffset,l=e.getStopIndexForStartIndex,c=e.initInstanceProps,u=e.shouldResetStyleCacheOnItemSizeChange,d=e.validateProps;return t=function(e){function t(t){var r;return(r=e.call(this,t)||this)._instanceProps=c(r.props,(0,Hb.Z)(r)),r._outerRef=void 0,r._resetIsScrollingTimeoutId=null,r.state={instance:(0,Hb.Z)(r),isScrolling:!1,scrollDirection:"forward",scrollOffset:"number"===typeof r.props.initialScrollOffset?r.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},r._callOnItemsRendered=void 0,r._callOnItemsRendered=gf((function(e,t,n,i){return r.props.onItemsRendered({overscanStartIndex:e,overscanStopIndex:t,visibleStartIndex:n,visibleStopIndex:i})})),r._callOnScroll=void 0,r._callOnScroll=gf((function(e,t,n){return r.props.onScroll({scrollDirection:e,scrollOffset:t,scrollUpdateWasRequested:n})})),r._getItemStyle=void 0,r._getItemStyle=function(e){var t,o=r.props,a=o.direction,s=o.itemSize,l=o.layout,c=r._getItemStyleCache(u&&s,u&&l,u&&a);if(c.hasOwnProperty(e))t=c[e];else{var d=n(r.props,e,r._instanceProps),h=i(r.props,e,r._instanceProps),p="horizontal"===a||"horizontal"===l,f="rtl"===a,m=p?d:0;c[e]=t={position:"absolute",left:f?void 0:m,right:f?m:void 0,top:p?0:d,height:p?"100%":h,width:p?h:"100%"}}return t},r._getItemStyleCache=void 0,r._getItemStyleCache=gf((function(e,t,n){return{}})),r._onScrollHorizontal=function(e){var t=e.currentTarget,n=t.clientWidth,i=t.scrollLeft,o=t.scrollWidth;r.setState((function(e){if(e.scrollOffset===i)return null;var t=r.props.direction,a=i;if("rtl"===t)switch(Kb()){case"negative":a=-i;break;case"positive-descending":a=o-n-i}return a=Math.max(0,Math.min(a,o-n)),{isScrolling:!0,scrollDirection:e.scrollOffset<a?"forward":"backward",scrollOffset:a,scrollUpdateWasRequested:!1}}),r._resetIsScrollingDebounced)},r._onScrollVertical=function(e){var t=e.currentTarget,n=t.clientHeight,i=t.scrollHeight,o=t.scrollTop;r.setState((function(e){if(e.scrollOffset===o)return null;var t=Math.max(0,Math.min(o,i-n));return{isScrolling:!0,scrollDirection:e.scrollOffset<t?"forward":"backward",scrollOffset:t,scrollUpdateWasRequested:!1}}),r._resetIsScrollingDebounced)},r._outerRefSetter=function(e){var t=r.props.outerRef;r._outerRef=e,"function"===typeof t?t(e):null!=t&&"object"===typeof t&&t.hasOwnProperty("current")&&(t.current=e)},r._resetIsScrollingDebounced=function(){null!==r._resetIsScrollingTimeoutId&&Gb(r._resetIsScrollingTimeoutId),r._resetIsScrollingTimeoutId=Wb(r._resetIsScrolling,Qb)},r._resetIsScrolling=function(){r._resetIsScrollingTimeoutId=null,r.setState({isScrolling:!1},(function(){r._getItemStyleCache(-1,null)}))},r}(0,Uo.Z)(t,e),t.getDerivedStateFromProps=function(e,t){return Jb(e,t),d(e),null};var h=t.prototype;return h.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)},h.scrollToItem=function(e,t){void 0===t&&(t="auto");var n=this.props,r=n.itemCount,i=n.layout,a=this.state.scrollOffset;e=Math.max(0,Math.min(e,r-1));var s=0;if(this._outerRef){var l=this._outerRef;s="vertical"===i?l.scrollWidth>l.clientWidth?Zb():0:l.scrollHeight>l.clientHeight?Zb():0}this.scrollTo(o(this.props,e,t,a,this._instanceProps,s))},h.componentDidMount=function(){var e=this.props,t=e.direction,n=e.initialScrollOffset,r=e.layout;if("number"===typeof n&&null!=this._outerRef){var i=this._outerRef;"horizontal"===t||"horizontal"===r?i.scrollLeft=n:i.scrollTop=n}this._callPropsCallbacks()},h.componentDidUpdate=function(){var e=this.props,t=e.direction,n=e.layout,r=this.state,i=r.scrollOffset;if(r.scrollUpdateWasRequested&&null!=this._outerRef){var o=this._outerRef;if("horizontal"===t||"horizontal"===n)if("rtl"===t)switch(Kb()){case"negative":o.scrollLeft=-i;break;case"positive-ascending":o.scrollLeft=i;break;default:var a=o.clientWidth,s=o.scrollWidth;o.scrollLeft=s-a-i}else o.scrollLeft=i;else o.scrollTop=i}this._callPropsCallbacks()},h.componentWillUnmount=function(){null!==this._resetIsScrollingTimeoutId&&Gb(this._resetIsScrollingTimeoutId)},h.render=function(){var e=this.props,t=e.children,n=e.className,i=e.direction,o=e.height,s=e.innerRef,l=e.innerElementType,c=e.innerTagName,u=e.itemCount,d=e.itemData,h=e.itemKey,p=void 0===h?Xb:h,f=e.layout,m=e.outerElementType,g=e.outerTagName,v=e.style,y=e.useIsScrolling,b=e.width,x=this.state.isScrolling,w="horizontal"===i||"horizontal"===f,S=w?this._onScrollHorizontal:this._onScrollVertical,_=this._getRangeToRender(),C=_[0],E=_[1],T=[];if(u>0)for(var O=C;O<=E;O++)T.push((0,a.createElement)(t,{data:d,key:p(O,d),index:O,isScrolling:y?x:void 0,style:this._getItemStyle(O)}));var N=r(this.props,this._instanceProps);return(0,a.createElement)(m||g||"div",{className:n,onScroll:S,ref:this._outerRefSetter,style:(0,qo.Z)({position:"relative",height:o,width:b,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:i},v)},(0,a.createElement)(l||c||"div",{children:T,ref:s,style:{height:w?"100%":N,pointerEvents:x?"none":void 0,width:w?N:"100%"}}))},h._callPropsCallbacks=function(){if("function"===typeof this.props.onItemsRendered&&this.props.itemCount>0){var e=this._getRangeToRender(),t=e[0],n=e[1],r=e[2],i=e[3];this._callOnItemsRendered(t,n,r,i)}if("function"===typeof this.props.onScroll){var o=this.state,a=o.scrollDirection,s=o.scrollOffset,l=o.scrollUpdateWasRequested;this._callOnScroll(a,s,l)}},h._getRangeToRender=function(){var e=this.props,t=e.itemCount,n=e.overscanCount,r=this.state,i=r.isScrolling,o=r.scrollDirection,a=r.scrollOffset;if(0===t)return[0,0,0,0];var c=s(this.props,a,this._instanceProps),u=l(this.props,c,a,this._instanceProps),d=i&&"backward"!==o?1:Math.max(1,n),h=i&&"forward"!==o?1:Math.max(1,n);return[Math.max(0,c-d),Math.max(0,Math.min(t-1,u+h)),c,u]},t}(a.PureComponent),t.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},t}var Jb=function(e,t){e.children,e.direction,e.height,e.layout,e.innerTagName,e.outerTagName,e.width,t.instance},ex=function(e,t,n){var r=e.itemSize,i=n.itemMetadataMap,o=n.lastMeasuredIndex;if(t>o){var a=0;if(o>=0){var s=i[o];a=s.offset+s.size}for(var l=o+1;l<=t;l++){var c=r(l);i[l]={offset:a,size:c},a+=c}n.lastMeasuredIndex=t}return i[t]},tx=function(e,t,n,r,i){for(;r<=n;){var o=r+Math.floor((n-r)/2),a=ex(e,o,t).offset;if(a===i)return o;a<i?r=o+1:a>i&&(n=o-1)}return r>0?r-1:0},nx=function(e,t,n,r){for(var i=e.itemCount,o=1;n<i&&ex(e,n,t).offset<r;)n+=o,o*=2;return tx(e,t,Math.min(n,i-1),Math.floor(n/2),r)},rx=function(e,t){var n=e.itemCount,r=t.itemMetadataMap,i=t.estimatedItemSize,o=t.lastMeasuredIndex,a=0;if(o>=n&&(o=n-1),o>=0){var s=r[o];a=s.offset+s.size}return a+(n-o-1)*i},ix=$b({getItemOffset:function(e,t,n){return ex(e,t,n).offset},getItemSize:function(e,t,n){return n.itemMetadataMap[t].size},getEstimatedTotalSize:rx,getOffsetForIndexAndAlignment:function(e,t,n,r,i,o){var a=e.direction,s=e.height,l=e.layout,c=e.width,u="horizontal"===a||"horizontal"===l?c:s,d=ex(e,t,i),h=rx(e,i),p=Math.max(0,Math.min(h-u,d.offset)),f=Math.max(0,d.offset-u+d.size+o);switch("smart"===n&&(n=r>=f-u&&r<=p+u?"auto":"center"),n){case"start":return p;case"end":return f;case"center":return Math.round(f+(p-f)/2);default:return r>=f&&r<=p?r:r<f?f:p}},getStartIndexForOffset:function(e,t,n){return function(e,t,n){var r=t.itemMetadataMap,i=t.lastMeasuredIndex;return(i>0?r[i].offset:0)>=n?tx(e,t,i,0,n):nx(e,t,Math.max(0,i),n)}(e,n,t)},getStopIndexForStartIndex:function(e,t,n,r){for(var i=e.direction,o=e.height,a=e.itemCount,s=e.layout,l=e.width,c="horizontal"===i||"horizontal"===s?l:o,u=ex(e,t,r),d=n+c,h=u.offset+u.size,p=t;p<a-1&&h<d;)p++,h+=ex(e,p,r).size;return p},initInstanceProps:function(e,t){var n={itemMetadataMap:{},estimatedItemSize:e.estimatedItemSize||50,lastMeasuredIndex:-1};return t.resetAfterIndex=function(e,r){void 0===r&&(r=!0),n.lastMeasuredIndex=Math.min(n.lastMeasuredIndex,e-1),t._getItemStyleCache(-1),r&&t.forceUpdate()},n},shouldResetStyleCacheOnItemSizeChange:!1,validateProps:function(e){e.itemSize}});var ox=n(84584);const ax=e=>{let{element:t,options:n,onIntersect:r}=e;a.useEffect((()=>{const e=new IntersectionObserver((e=>{let[t]=e;t.isIntersecting&&(null===r||void 0===r||r())}),n);return t&&e.observe(t),()=>null===t?void 0:e.unobserve(t)}),[t,n,r])},sx=(0,le.Ge)("list"),lx=e=>{const t=a.useRef(null);return ax({element:t.current,onIntersect:null===e||void 0===e?void 0:e.onIntersect}),a.createElement("div",{ref:t,className:sx("loading-indicator")},a.createElement(Di,{qa:"list-loader"}))},cx=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M7 3a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM5.5 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm0-5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM7 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm3.5 1.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z",clipRule:"evenodd"})),ux="list-active-item",dx=[Zr.V.TAB],hx=(0,le.Ge)("list"),px=e=>String(e);function fx(e,t){return t?Object.assign(Object.assign({},null===e||void 0===e?void 0:e.draggableProps.style),t):null===e||void 0===e?void 0:e.draggableProps.style}class mx extends a.Component{constructor(){super(...arguments),this.node=null,this.getNode=()=>this.node,this.setRef=e=>{var t;this.node=e,null===(t=this.props.provided)||void 0===t||t.innerRef(e)},this.onClick=()=>{var e,t;return null===(t=(e=this.props).onClick)||void 0===t?void 0:t.call(e,this.props.item,this.props.itemIndex)},this.onClickCapture=e=>{mx.publishEvent({domEvent:e,eventId:"click"})},this.onMouseEnter=()=>!this.props.item.disabled&&this.props.onActivate(this.props.itemIndex),this.onMouseLeave=()=>this.props.onActivate(void 0)}render(){var e,t;const{item:n,style:r,sortable:i,sortHandleAlign:o,itemClassName:s,selected:l,active:c,role:u="listitem",isDragging:d=!1}=this.props,h=Object.assign(Object.assign({},r),{right:void 0});return a.createElement("div",Object.assign({role:u,"aria-selected":l,"data-qa":c?ux:void 0,className:hx("item",{sortable:i,active:c,selected:l,inactive:n.disabled,"sort-handle-align":o,dragging:d},s)},null===(e=this.props.provided)||void 0===e?void 0:e.draggableProps,null===(t=this.props.provided)||void 0===t?void 0:t.dragHandleProps,{style:fx(this.props.provided,h),onClick:n.disabled?void 0:this.onClick,onClickCapture:n.disabled?void 0:this.onClickCapture,onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave,ref:this.setRef,id:"".concat(this.props.listId,"-item-").concat(this.props.itemIndex)}),this.renderSortIcon(),this.renderContent())}renderSortIcon(){const{sortable:e}=this.props;return e?a.createElement("div",{className:hx("item-sort-icon")},a.createElement(we.J,{data:cx,size:12})):null}renderContent(){const{renderItem:e=px,item:t,active:n,itemIndex:r}=this.props;return a.createElement("div",{className:hx("item-content")},e(t,n,r))}}mx.publishEvent=Yr.P.withEventPublisher("List");var gx=n(28925),vx=n.n(gx);function yx(e){return vx()(e).reduce(((e,t)=>(e[t]=a.createRef(),e)),{})}class bx extends a.Component{static getDerivedStateFromProps(e,t){let{itemCount:n}=e;return n===Object.keys(t.refsList).length?t:{refsList:yx(n)}}constructor(e){super(e),this.node=null,this.setRef=e=>{var t;this.node=e,null===(t=this.props.provided)||void 0===t||t.innerRef(e)},this.state={refsList:yx(e.itemCount)}}render(){const e=a.Children.map(this.props.children,((e,t)=>a.cloneElement(e,{ref:this.state.refsList[t]})));return a.createElement("div",{ref:this.setRef},e)}scrollToItem(e){var t,n;const r=null===(t=this.state.refsList[e])||void 0===t?void 0:t.current;if(r&&"function"===typeof r.getNode){const e=r.getNode();e&&(null===(n=e.scrollIntoView)||void 0===n||n.call(e,{block:"nearest"}))}}}const xx=(0,le.Ge)("list"),wx=a.forwardRef(((e,t)=>a.createElement(ix,Object.assign({ref:t},e,{direction:ir()}))));wx.displayName="ListContainer";class Sx extends a.Component{constructor(){super(...arguments),this.state={items:this.props.items,filter:""},this.refFilter=a.createRef(),this.refContainer=a.createRef(),this.blurTimer=null,this.loadingItem={value:"__LIST_ITEM_LOADING__",disabled:!1},this.uniqId=(0,ce.x)(),this.onKeyDown=e=>{const{activeItem:t,pageSize:n}=this.state;if(dx.includes(e.key))return;const r=e.target instanceof HTMLInputElement;switch(e.key){case"ArrowDown":this.handleKeyMove(e,1,-1);break;case"ArrowUp":this.handleKeyMove(e,-1);break;case"PageDown":this.handleKeyMove(e,n);break;case"PageUp":this.handleKeyMove(e,-n);break;case"Home":if(r)return;this.handleKeyMove(e,this.state.items.length-(t||0));break;case"End":if(r)return;this.handleKeyMove(e,-(t||0)-1);break;case"Enter":"number"===typeof t&&this.props.onItemClick&&this.props.onItemClick(this.state.items[t],t,!0);break;default:this.refFilter.current&&this.refFilter.current.focus()}},this.renderItemContent=(e,t,n)=>{const{onLoadMore:r}=this.props;return mp()(e)&&"value"in e&&e.value===this.loadingItem.value?a.createElement(lx,{onIntersect:0===n?void 0:r}):this.props.renderItem?this.props.renderItem(e,t,n):px(e)},this.renderItem=e=>{let{index:t,style:n,provided:r,isDragging:i}=e;var o;const{sortHandleAlign:s,role:l}=this.props,{items:c,activeItem:u}=this.state,d=this.getItemsWithLoading()[t],h=this.props.sortable&&c.length>1&&!this.getFilter(),p=t===u||t===this.props.activeItemIndex,f=Array.isArray(this.props.selectedItemIndex)?this.props.selectedItemIndex.includes(t):t===this.props.selectedItemIndex;return a.createElement(mx,{key:t,style:n,itemIndex:t,item:d,sortable:h,sortHandleAlign:s,renderItem:this.renderItemContent,itemClassName:this.props.itemClassName,active:p,selected:f,onActivate:this.onItemActivate,onClick:this.props.onItemClick,role:"listbox"===l?"option":"listitem",listId:null!==(o=this.props.id)&&void 0!==o?o:this.uniqId,provided:r,isDragging:i})},this.renderVirtualizedItem=e=>{let{index:t,style:n}=e;return a.createElement(Nb,{draggableId:String(t),index:t,key:"item-key-".concat(t)},(e=>this.renderItem({index:t,style:n,provided:e})))},this.filterItem=e=>t=>String(t).includes(e),this.scrollToIndex=e=>{const t=this.refContainer.current;t&&t.scrollToItem(e)},this.deactivate=()=>{this.blurTimer&&this.props.deactivateOnLeave&&this.setState({activeItem:void 0})},this.handleFocus=()=>{this.blurTimer&&(clearTimeout(this.blurTimer),this.blurTimer=null)},this.handleBlur=()=>{this.blurTimer||(this.blurTimer=setTimeout(this.deactivate,50))},this.onUpdateFilterInternal=e=>{const{items:t,filterItem:n=this.filterItem,onFilterEnd:r}=this.props;this.setState({filter:e,items:e?t.filter(n(e)):t},(()=>{r&&r({items:this.state.items})}))},this.onFilterUpdate=e=>{this.props.onFilterUpdate?this.props.onFilterUpdate(e):this.onUpdateFilterInternal(e)},this.onItemsRendered=e=>{let{visibleStartIndex:t,visibleStopIndex:n}=e;this.setState({pageSize:n-t})},this.onItemActivate=e=>{this.state.sorting||this.activateItem(e,!1)},this.onMouseLeave=()=>{this.deactivate()},this.onSortStart=()=>{this.setState({sorting:!0})},this.onSortEnd=e=>{if(!e.destination)return void this.setState({sorting:!1});if(e.source.index===e.destination.index)return void this.setState({sorting:!1});const t=e.source.index,n=e.destination.index;this.props.onSortEnd&&this.props.onSortEnd({oldIndex:t,newIndex:n});const r=((e,t,n)=>{const r=Array.from(e),[i]=r.splice(t,1);return r.splice(n,0,i),r})(this.getItems(),t,n);this.setState({activeItem:n,items:r,sorting:!1})},this.getItemHeight=e=>{const{itemHeight:t}=this.props;if("function"===typeof t){const{items:n}=this.state;return t(n[e],e)}return t},this.getVirtualizedItemHeight=e=>this.getItemHeight(e)||28}static moveListElement(e,t,n){if(t!==n){const[r]=e.splice(t,1);e.splice(n,0,r)}return e}static findNextIndex(e,t,n){const r=e.length;let i=(t+r)%r;for(let o=0;o<r;o+=1){if(e[i]&&!e[i].disabled)return i;i=(i+r+n)%r}}componentDidUpdate(e,t){if(!pp()(this.props.items,e.items)){const e=this.getFilter();e&&!this.props.onFilterUpdate?this.onUpdateFilterInternal(e):this.setState({items:this.props.items})}this.props.activeItemIndex!==e.activeItemIndex&&this.activateItem(this.props.activeItemIndex),this.props.onChangeActive&&this.state.activeItem!==t.activeItem&&this.props.onChangeActive(this.state.activeItem)}componentWillUnmount(){this.blurTimer=null}render(){const{emptyPlaceholder:e,virtualized:t,className:n,itemsClassName:r,qa:i,role:o="list"}=this.props,{items:s}=this.state;return a.createElement(ox.z.Consumer,null,(l=>{let{mobile:c}=l;return a.createElement("div",{className:xx({mobile:c},n),"data-qa":i,tabIndex:-1,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeyDown:this.onKeyDown},this.renderFilter(),a.createElement("div",{className:xx("items",{virtualized:t},r),style:this.getItemsStyle(),onMouseLeave:this.onMouseLeave,role:o},this.renderItems(),0===s.length&&Boolean(e)&&a.createElement("div",{className:xx("empty-placeholder")},e)))}))}getItems(){return this.state.items}getItemsWithLoading(){return this.props.sortable?this.getItems():this.props.loading?[...this.state.items,this.loadingItem]:this.getItems()}getActiveItem(){return"number"===typeof this.state.activeItem?this.state.activeItem:null}activateItem(e){"number"===typeof e&&(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&this.scrollToIndex(e),this.setState({activeItem:e})}renderFilter(){const{size:e,filterable:t,filter:n=this.state.filter,filterPlaceholder:r,filterClassName:i="",autoFocus:o}=this.props;return t?a.createElement("div",{className:xx("filter",i)},a.createElement(Ii,{controlRef:this.refFilter,size:e,placeholder:r,value:n,hasClear:!0,onUpdate:this.onFilterUpdate,autoFocus:o})):null}renderSimpleContainer(){const{sortable:e}=this.props,t=this.getItemsWithLoading();return e?a.createElement(Gy,{onDragStart:this.onSortStart,onDragEnd:this.onSortEnd},a.createElement(Pb,{droppableId:"droppable",renderClone:(e,t,n)=>this.renderItem({index:n.source.index,provided:e,isDragging:t.isDragging})},(e=>a.createElement(bx,{ref:this.refContainer,itemCount:t.length,provided:e},t.map(((e,t)=>a.createElement(Nb,{draggableId:String(t),index:t,key:"item-key-".concat(t)},((e,n)=>this.renderItem({index:t,isDragging:n.isDragging,provided:e,style:{height:this.getItemHeight(t)}}))))))))):a.createElement(bx,{itemCount:t.length,ref:this.refContainer},t.map(((e,t)=>this.renderItem({index:t,style:{height:this.getItemHeight(t)}}))))}renderVirtualizedContainer(){const e=[...this.getItemsWithLoading()];return this.props.sortable?a.createElement(Gy,{onDragStart:this.onSortStart,onDragEnd:this.onSortEnd},a.createElement(Pb,{droppableId:"droppable",mode:"virtual",renderClone:(e,t,n)=>this.renderItem({index:n.source.index,provided:e,isDragging:t.isDragging})},(t=>a.createElement(Ub,null,(n=>{let{width:r,height:i}=n;return a.createElement(wx,{ref:this.refContainer,outerRef:t.innerRef,width:r,height:i,itemSize:this.getVirtualizedItemHeight,itemData:e,itemCount:e.length,overscanCount:10,onItemsRendered:this.onItemsRendered,activeItem:this.state.activeItem},this.renderVirtualizedItem)}))))):a.createElement(Ub,null,(t=>{let{width:n,height:r}=t;return a.createElement(wx,{ref:this.refContainer,width:n,height:r,itemSize:this.getVirtualizedItemHeight,itemData:e,itemCount:e.length,overscanCount:10,onItemsRendered:this.onItemsRendered,activeItem:this.state.activeItem},this.renderItem)}))}renderItems(){return this.props.virtualized?this.renderVirtualizedContainer():this.renderSimpleContainer()}getFilter(){const{filter:e=this.state.filter}=this.props;return e}getItemsStyle(){let{itemsHeight:e}=this.props;return"function"===typeof e&&(e=e(this.state.items)),e?{height:e}:void 0}handleKeyMove(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;const{activeItem:r=n}=this.state;e.preventDefault();const i=this.getItemsWithLoading();this.activateItem(Sx.findNextIndex(i,r+t,Math.sign(t)))}}Sx.defaultProps={items:[],itemClassName:"",filterable:!0,sortable:!1,virtualized:!0,deactivateOnLeave:!0};const _x=e=>Boolean(e&&"label"in e),Cx=e=>{const t=e.reduce(((e,t)=>("label"in t?(e.push({label:t.label,disabled:!0}),e.push(...t.options||[])):e.push(t),e)),[]);return Object.defineProperty(t,lp,{enumerable:!1,value:{}}),t},Ex=e=>{const{getOptionHeight:t,getOptionGroupHeight:n,size:r,option:i,index:o,mobile:a}=e;let s=a?32:tp[r];if(_x(i)){const e=0===o?0:5;return s=""===i.label?0:s,n?n(i,o):s+e}return t?t(i,o):s},Tx=e=>"string"===typeof e.content?e.content:"string"===typeof e.children?e.children:e.text?e.text:e.value,Ox=e=>(e=>a.Children.toArray(e))(e).reduce(((e,t)=>{let{props:n}=t;if("label"in n){const t=n.options||(e=>a.Children.toArray(e).reduce(((e,t)=>{let{props:n}=t;return"value"in n&&e.push(n),e}),[]))(n.children);e.push({options:t,label:n.label})}return"value"in n&&e.push(Object.assign({},n)),e}),[]),Nx=(e,t)=>t?t.findIndex((t=>{if(_x(t))return!1;if(t.disabled)return!1;const n=Tx(t);return(r=e,new RegExp(r.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"i")).test(n);var r})):-1,kx=e=>{var t;return(null===(t=null===e||void 0===e?void 0:e.current)||void 0===t?void 0:t.getItems())||[]},jx=e=>{const{options:t,filter:n,filterOption:r}=e,i=t.filter((e=>!!_x(e)||(r?r(e,n):((e,t)=>{const n=Tx(e).toLocaleLowerCase(),r=t.toLocaleLowerCase();return-1!==n.indexOf(r)})(e,n))));return i.reduce(((e,t,n)=>{const r=_x(t),o=_x(e[e.length-1]),a=n===i.length-1;return r&&o&&e.pop(),(!r||r&&!a)&&e.push(t),e}),[])},Ix=(0,le.Ge)("select-list"),Px=e=>{let{option:t,renderOptionGroup:n}=e;return n?a.createElement("div",{className:Ix("group-label-custom")},n(t)):a.createElement("div",{className:Ix("group-label",{empty:""===t.label})},a.createElement("div",{className:Ix("group-label-content")},t.label))},Dx=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M13.488 3.43a.75.75 0 0 1 .081 1.058l-6 7a.75.75 0 0 1-1.1.042l-3.5-3.5A.75.75 0 0 1 4.03 6.97l2.928 2.927 5.473-6.385a.75.75 0 0 1 1.057-.081Z",clipRule:"evenodd"})),Ax=(0,le.Ge)("select-list"),Rx=e=>{let{option:t}=e;const{content:n,children:r,disabled:i}=t;return a.createElement("span",{className:Ax("option-default-label",{disabled:i})},n||r)},Mx=e=>{const{renderOption:t,value:n,option:r,multiple:i}=e,o=-1!==n.indexOf(r.value),s=t?t(r):a.createElement(Rx,{option:r});return a.createElement("div",{"data-qa":r.qa,className:Ax("option",{colored:o&&!i,disabled:r.disabled})},i&&a.createElement(we.J,{className:Ax("tick-icon",{shown:o&&i}),data:Dx}),s)},Lx=e=>{const t=a.useRef(null);return ax({element:t.current,onIntersect:null===e||void 0===e?void 0:e.onIntersect}),a.createElement("div",{ref:t,className:Jh("loading-indicator")},a.createElement(Di,null))},Fx={value:"__SELECT_LIST_ITEM_LOADING__",disabled:!0},zx=a.forwardRef(((e,t)=>{const{onOptionClick:n,renderOption:r,renderOptionGroup:i,getOptionHeight:o,getOptionGroupHeight:s,size:l,flattenOptions:c,value:u,multiple:d,virtualized:h,mobile:p,loading:f,onLoadMore:m,selectId:g,onChangeActive:v}=e,y=a.useMemo((()=>f?[...c,Fx]:c),[c,f]),b=a.useMemo((()=>c.reduce(((e,t,n)=>("value"in t&&u.includes(t.value)&&e.push(n),e)),[])),[c,u]),x=(e=>{const{getOptionHeight:t,getOptionGroupHeight:n,size:r,options:i,mobile:o}=e;return i.reduce(((e,i,a)=>e+Ex({getOptionHeight:t,getOptionGroupHeight:n,size:r,option:i,index:a,mobile:o})),0)})({options:y,getOptionHeight:o,getOptionGroupHeight:s,size:l,mobile:p}),w=a.useCallback(((e,t)=>Ex({getOptionHeight:o,getOptionGroupHeight:s,size:l,option:e,index:t,mobile:p})),[o,s,p,l]),S=a.useCallback(((e,t,n)=>{if("label"in e){const t=i?e=>i(e,{itemHeight:w(e,n)}):void 0;return a.createElement(Px,{option:e,renderOptionGroup:t})}if(e.value===Fx.value)return a.createElement(Lx,{onIntersect:0===n?void 0:m});const o=r?e=>r(e,{itemHeight:w(e,n)}):void 0;return a.createElement(Mx,{option:e,value:u,multiple:d,renderOption:o})}),[r,i,u,d,w,m]);return a.createElement(Sx,{ref:t,className:Jh({size:l,virtualized:h,mobile:p}),qa:rp,itemClassName:Jh("item"),itemHeight:w,itemsHeight:h?x:void 0,items:y,filterable:!1,virtualized:h,renderItem:S,onItemClick:n,selectedItemIndex:b,id:"".concat(g,"-list"),role:"listbox",onChangeActive:v})}));zx.displayName="SelectList";const Bx=(0,le.Ge)("select-empty-placeholder"),Ux=e=>{let{renderEmptyOptions:t,filter:n}=e;return a.createElement("div",{className:Bx({empty:!t})},null===t||void 0===t?void 0:t({filter:n}))};var Hx=n(85198),Vx=n.n(Hx);const Gx=JSON.parse('{"label_clear":"Clear","label_show-error-info":"Show popup with error info"}'),Wx=JSON.parse('{"label_clear":"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c","label_show-error-info":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u043f\u0430\u043f \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0435\u0439 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435"}'),qx=(0,mi.e)({en:Gx,ru:Wx},"Select"),Zx=e=>{const{size:t,onClick:n,onMouseEnter:r,onMouseLeave:i,renderIcon:o}=e,s=o?o():a.createElement(we.J,{className:ep("clear"),data:tt.Z});return a.createElement("button",{className:ep({size:t}),"aria-label":qx("label_clear"),onClick:n,onMouseEnter:r,onMouseLeave:i,"data-qa":ap,type:"button"},s)};Zx.displayName="SelectClear";const Yx=(0,le.Ge)("select-counter"),Kx=a.forwardRef((function(e,t){let{count:n,size:r,disabled:i}=e;return a.createElement("div",{className:Yx({size:r}),ref:t},a.createElement(Fi.x,{variant:"xl"===r?"body-2":"body-1",color:i?"hint":"primary",className:Yx("text")},n))})),Qx=a.forwardRef(((e,t)=>{const{toggleOpen:n,clearValue:r,onKeyDown:i,renderControl:o,view:s,size:l,pin:c,selectedOptionsContent:u,className:d,qa:h,name:p,label:f,placeholder:m,isErrorVisible:g,errorMessage:v,open:y,disabled:b,value:x,hasClear:w,popupId:S,selectId:_,activeIndex:C,renderCounter:E,hasCounter:T,title:O}=e,N=Boolean(u),k=Boolean(m&&!N),j=Array.isArray(x)&&!Vx()(x.filter(Boolean)),I=ue(),[P,D]=a.useState(!1),A={open:y,size:l,pin:c,disabled:b,error:g,"has-clear":w,"no-active":P,"has-value":j},R={open:y,size:l,view:s,pin:c,disabled:b,error:g},M=a.useCallback((e=>{e&&e.currentTarget!==document.activeElement&&"focus"in e.currentTarget&&e.currentTarget.focus(),n()}),[n]),L=a.useCallback((()=>{D(!0)}),[]),F=a.useCallback((()=>{D(!1)}),[]),z=a.useCallback((()=>{D(!1),r()}),[r]),B=()=>{if(!T)return null;const e=Number(null===x||void 0===x?void 0:x.length)||0,t=a.createElement(Kx,{count:e,size:l,disabled:b});return E?E(t,{count:e,size:l,disabled:b}):t},U=e=>{const t=!(null===x||void 0===x?void 0:x[0]);return!w||!r||t||b?null:a.createElement(Zx,{size:l,onClick:z,onMouseEnter:L,onMouseLeave:F,renderIcon:e.renderIcon})};return o?o({onKeyDown:i,onClear:r,onClick:M,renderClear:e=>U(e),renderCounter:B,ref:t,open:Boolean(y),popupId:S,selectId:_,activeIndex:C},{value:x}):a.createElement(a.Fragment,null,a.createElement("div",{className:Xh(A),role:"group"},a.createElement("button",{ref:t,role:"combobox","aria-controls":S,className:$h(R,d),"aria-haspopup":"listbox","aria-expanded":y,"aria-activedescendant":void 0===C?void 0:"".concat(_,"-list-item-").concat(C),name:p,disabled:b,onClick:M,onKeyDown:i,type:"button","data-qa":h,title:O},f&&a.createElement("span",{className:Xh("label")},f),k&&a.createElement("span",{className:Xh("placeholder")},m),N&&a.createElement("span",{className:Xh("option-text")},u)),B(),U({}),v&&a.createElement(fi,{content:v,tooltipId:I},a.createElement("button",{"aria-label":qx("label_show-error-info"),"aria-describedby":I,className:Xh("error-icon")},a.createElement(we.J,{data:St.Z,size:"s"===l?12:16}))),a.createElement(we.J,{className:Xh("chevron-icon",{disabled:b}),data:xe,"aria-hidden":"true"})))}));Qx.displayName="SelectControl";let Xx,$x=0;function Jx(e){let{enabled:t}=e;a.useLayoutEffect((()=>{if(t)return $x++,1===$x&&function(){const e=window.innerWidth-document.documentElement.clientWidth,t=window.innerHeight-document.documentElement.clientHeight,n=function(){const 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)}}();Xx=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"))}(),()=>{$x--,0===$x&&(Xx?document.body.style.cssText=Xx:document.body.removeAttribute("style"))}}),[t])}var ew=n(66573);const tw=(0,le.Ge)("sheet");class nw{constructor(e,t){this.x=e,this.y=t,this.timeStamp=Date.now()}}class rw{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5;this.points=[],this.pointsLen=e,this.clear()}clear(){this.points=new Array(this.pointsLen)}addMovement(e){let{x:t,y:n}=e;this.points.pop(),this.points.unshift(new nw(t,n))}getYAcceleration(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;const t=this.points[0],n=this.points[e];return t&&n?(t.y-n.y)/Math.pow(t.timeStamp-n.timeStamp,2):0}}let iw=[];class ow extends a.Component{constructor(){super(...arguments),this.veilRef=a.createRef(),this.sheetRef=a.createRef(),this.sheetTopRef=a.createRef(),this.sheetContentRef=a.createRef(),this.sheetInnerContentRef=a.createRef(),this.sheetTitleRef=a.createRef(),this.velocityTracker=new rw,this.observer=null,this.state={startScrollTop:0,startY:0,deltaY:0,prevSheetHeight:0,swipeAreaTouched:!1,contentTouched:!1,veilTouched:!1,isAnimating:!1,inWindowResizeScope:!1},this.setStyles=e=>{let{status:t,deltaHeight:n=0}=e;if(!this.sheetRef.current||!this.veilRef.current)return;const r=this.sheetHeight-n,i="showing"===t?"translate3d(0, -".concat(r,"px, 0)"):"translate3d(0, 0, 0)";let o=0;"showing"===t&&(o=0===n?1:r/this.sheetHeight),this.veilRef.current.style.opacity=String(o),this.sheetRef.current.style.transform=i},this.show=()=>{this.setState({isAnimating:!0},(()=>{this.setStyles({status:"showing"}),this.setHash()}))},this.hide=()=>{this.setState({isAnimating:!0},(()=>{this.setStyles({status:"hiding"}),this.removeHash()}))},this.onSwipeAreaTouchStart=e=>{this.velocityTracker.clear(),this.setState({startY:e.nativeEvent.touches[0].clientY,swipeAreaTouched:!0})},this.onContentTouchStart=e=>{this.props.allowHideOnContentScroll&&!this.state.swipeAreaTouched&&(this.velocityTracker.clear(),this.setState({startY:e.nativeEvent.touches[0].clientY,startScrollTop:this.sheetScrollTop,contentTouched:!0}))},this.onSwipeAriaTouchMove=e=>{const t=e.nativeEvent.touches[0].clientY-this.state.startY;this.velocityTracker.addMovement({x:e.nativeEvent.touches[0].clientX,y:e.nativeEvent.touches[0].clientY}),this.setState({deltaY:t}),t<=0||this.setStyles({status:"showing",deltaHeight:t})},this.onContentTouchMove=e=>{if(!this.props.allowHideOnContentScroll)return;const{startScrollTop:t,swipeAreaTouched:n}=this.state;if(n||this.sheetScrollTop>0||t>0&&t!==this.sheetScrollTop)return;const r=e.nativeEvent.touches[0].clientY-this.state.startY;this.velocityTracker.addMovement({x:e.nativeEvent.touches[0].clientX,y:e.nativeEvent.touches[0].clientY}),this.setState({deltaY:r}),r<=0||this.setStyles({status:"showing",deltaHeight:r})},this.onTouchEndAction=e=>{const t=this.velocityTracker.getYAcceleration();this.sheetHeight<=e?this.props.hideSheet():e>50&&t<=.08&&t>=-.02||t>.08?this.hide():0!==e&&this.show()},this.onSwipeAriaTouchEnd=()=>{const{deltaY:e}=this.state;this.onTouchEndAction(e),this.setState({startY:0,deltaY:0,swipeAreaTouched:!1})},this.onContentTouchEnd=()=>{const{deltaY:e,swipeAreaTouched:t}=this.state;this.props.allowHideOnContentScroll&&!t&&(this.onTouchEndAction(e),this.setState({startY:0,deltaY:0,contentTouched:!1}))},this.onVeilClick=()=>{this.setState({veilTouched:!0}),this.hide()},this.onVeilTransitionEnd=()=>{this.setState({isAnimating:!1}),"0"===this.veilOpacity&&this.props.hideSheet()},this.onContentTransitionEnd=e=>{"height"===e.propertyName&&this.sheetContentRef.current&&(this.sheetContentRef.current.style.transition="none")},this.onResizeWindow=()=>{this.setState({inWindowResizeScope:!0}),this.onResize(),setTimeout((()=>this.setState({inWindowResizeScope:!1})),0)},this.onResize=()=>{if(!this.sheetRef.current||!this.sheetContentRef.current)return;const e=this.sheetTitleHeight+this.innerContentHeight+this.sheetTopHeight;if(e===this.state.prevSheetHeight&&!this.state.inWindowResizeScope)return;const t=.9*window.innerHeight,n=e>=t?t:e;this.sheetContentRef.current.style.transition=this.state.prevSheetHeight>e?"height 0s ease ".concat("0.3s"):"none",this.sheetContentRef.current.style.height="".concat(n-this.sheetTopHeight,"px"),this.sheetRef.current.style.transform="translate3d(0, -".concat(n,"px, 0)"),this.setState({prevSheetHeight:e})}}componentDidMount(){this.addListeners(),this.show(),this.setInitialStyles(),this.setState({prevSheetHeight:this.sheetTitleHeight+this.innerContentHeight+this.sheetTopHeight})}componentDidUpdate(e){const{visible:t,location:n}=this.props;!e.visible&&t&&this.show(),(e.visible&&!t||this.shouldClose(e))&&this.hide(),e.location.pathname!==n.pathname&&(iw=[])}componentWillUnmount(){this.removeListeners()}render(){const{content:e,contentClassName:t,swipeAreaClassName:n,hideTopBar:r,title:i}=this.props,{deltaY:o,swipeAreaTouched:s,contentTouched:l,veilTouched:c,isAnimating:u,inWindowResizeScope:d}=this.state,h={"with-transition":!o||c},p={"with-transition":!d&&h["with-transition"]},f={"without-scroll":o>0&&l||s};return a.createElement(a.Fragment,null,a.createElement("div",{ref:this.veilRef,className:tw("veil",h),onClick:u?void 0:this.onVeilClick,onTransitionEnd:this.onVeilTransitionEnd,role:"presentation"}),a.createElement("div",{ref:this.sheetRef,className:tw("sheet",p),role:"dialog","aria-modal":"true","aria-label":i},!r&&a.createElement("div",{ref:this.sheetTopRef,className:tw("sheet-top")},a.createElement("div",{className:tw("sheet-top-resizer")})),a.createElement("div",{className:tw("sheet-swipe-area",n),onTouchStart:this.onSwipeAreaTouchStart,onTouchMove:this.onSwipeAriaTouchMove,onTouchEnd:this.onSwipeAriaTouchEnd}),a.createElement("div",{ref:this.sheetContentRef,className:tw("sheet-content",f,t),onTouchStart:this.onContentTouchStart,onTouchMove:this.onContentTouchMove,onTouchEnd:this.onContentTouchEnd,onTransitionEnd:this.onContentTransitionEnd},i&&a.createElement("div",{ref:this.sheetTitleRef,className:tw("sheet-content-title")},i),a.createElement("div",{ref:this.sheetInnerContentRef},e))))}get veilOpacity(){var e;return(null===(e=this.veilRef.current)||void 0===e?void 0:e.style.opacity)||0}get sheetTopHeight(){var e;return(null===(e=this.sheetTopRef.current)||void 0===e?void 0:e.getBoundingClientRect().height)||0}get sheetHeight(){var e;return(null===(e=this.sheetRef.current)||void 0===e?void 0:e.getBoundingClientRect().height)||0}get innerContentHeight(){var e;return(null===(e=this.sheetInnerContentRef.current)||void 0===e?void 0:e.getBoundingClientRect().height)||0}get sheetTitleHeight(){var e;return(null===(e=this.sheetTitleRef.current)||void 0===e?void 0:e.getBoundingClientRect().height)||0}get sheetScrollTop(){var e;return(null===(e=this.sheetContentRef.current)||void 0===e?void 0:e.scrollTop)||0}setInitialStyles(){if(this.sheetContentRef.current&&this.sheetInnerContentRef.current){const e=this.sheetHeight-this.sheetTopHeight;this.sheetContentRef.current.style.height="".concat(e,"px")}}addListeners(){window.addEventListener("resize",this.onResizeWindow),this.sheetInnerContentRef.current&&(this.observer=new ResizeObserver((()=>{this.state.inWindowResizeScope||this.onResize()})),this.observer.observe(this.sheetInnerContentRef.current))}removeListeners(){window.removeEventListener("resize",this.onResizeWindow),this.observer&&this.observer.disconnect()}setHash(){const{id:e,platform:t,location:n,history:r}=this.props;if(t===ew.t.BROWSER)return;const i=Object.assign(Object.assign({},n),{hash:e});switch(t){case ew.t.IOS:n.hash&&iw.push(n.hash),r.replace(i);break;case ew.t.ANDROID:r.push(i)}}removeHash(){var e;const{id:t,platform:n,location:r,history:i}=this.props;if(n!==ew.t.BROWSER&&r.hash==="#".concat(t))switch(n){case ew.t.IOS:i.replace(Object.assign(Object.assign({},r),{hash:null!==(e=iw.pop())&&void 0!==e?e:""}));break;case ew.t.ANDROID:i.goBack()}}shouldClose(e){const{id:t,platform:n,location:r,history:i}=this.props;return n!==ew.t.BROWSER&&"POP"===i.action&&e.location.hash!==r.hash&&r.hash!=="#".concat(t)}}ow.defaultProps={id:"sheet",allowHideOnContentScroll:!0};const aw=function(e){var t;const n=(r=e).displayName||r.name||"Component";var r;return(t=class extends a.Component{render(){return a.createElement(e,Object.assign({},this.props,{mobile:this.context.mobile,platform:this.context.platform,useHistory:this.context.useHistory,useLocation:this.context.useLocation}))}}).displayName="withMobile(".concat(n,")"),t.contextType=ox.z,t}(function(e){const t=t=>{const{useHistory:n,useLocation:r}=t,i=(0,nt._T)(t,["useHistory","useLocation"]);return a.createElement(e,Object.assign({},i,{history:n(),location:r()}))},n=e.displayName||e.name||"Component";return t.displayName="withRouterWrapper(".concat(n,")"),t}(ow)),sw=e=>{let{children:t,onClose:n,visible:r,id:i,title:o,className:s,contentClassName:l,swipeAreaClassName:c,allowHideOnContentScroll:u,hideTopBar:d,qa:h}=e;const[p,f]=a.useState(r),[m,g]=a.useState(r);Jx({enabled:p}),!m&&r&&f(!0),r!==m&&g(r);return p?a.createElement(jr.h,null,a.createElement("div",{"data-qa":h,className:tw(null,s)},a.createElement(aw,{id:i,content:t,contentClassName:l,swipeAreaClassName:c,title:o,visible:r,allowHideOnContentScroll:u,hideTopBar:d,hideSheet:()=>{n&&n(),f(!1)}}))):null},lw=e=>e-2,cw=(e,t,n)=>{let r=t;return r="number"===typeof e?e:"fit"===e?lw(t):((e,t)=>t?e>100?e:100:lw(e))(t,n),"".concat(r,"px")},uw=e=>{const{width:t,disablePortal:n,virtualized:r}=e;return[{name:"sameWidth",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:e=>{let{state:n,name:i}=e;var o;if(null===(o=n.modifiersData["".concat(i,"#persistent")])||void 0===o?void 0:o.skip)return;const a=cw(t,n.rects.reference.width,r);"number"!==typeof t&&"fit"!==t?(n.styles.popper.minWidth=a,n.styles.popper.width=void 0):(n.styles.popper.minWidth=a,n.styles.popper.width=a),n.styles.popper.maxWidth="max(90vw, ".concat(lw(n.rects.reference.width),"px)"),n.modifiersData["".concat(i,"#persistent")]={skip:"number"!==typeof t}},effect:e=>{let{state:n,name:i}=e;var o;if(null===(o=n.modifiersData["".concat(i,"#persistent")])||void 0===o?void 0:o.skip)return;const a=cw(t,n.elements.reference.offsetWidth,r);"number"!==typeof t&&"fit"!==t?n.elements.popper.style.minWidth=a:(n.elements.popper.style.minWidth=a,n.elements.popper.style.width=a),n.elements.popper.style.maxWidth="max(90vw, ".concat(n.elements.reference.offsetWidth,"px)")}},{name:"preventOverflow",options:{padding:10,altBoundary:n,altAxis:!0}}]},dw=(0,le.Ge)("select-popup"),hw=["bottom-start","bottom-end","top-start","top-end"],pw=a.forwardRef(((e,t)=>{let{handleClose:n,width:r,open:i,placement:o=hw,controlRef:s,children:l,className:c,disablePortal:u,virtualized:d,mobile:h,id:p}=e;return h?a.createElement(sw,{qa:op,className:c,visible:Boolean(i),onClose:n},l):a.createElement(ti,{contentClassName:dw(null,c),qa:ip,anchorRef:t,placement:o,offset:[1,1],open:i,onClose:n,disablePortal:u,restoreFocus:!0,restoreFocusRef:s,modifiers:uw({width:r,disablePortal:u,virtualized:d}),id:p},l)}));pw.displayName="SelectPopup";const fw=e=>{const{onChange:t,open:n,disabled:r}=e,[i,o]=a.useState(""),[s,l]=a.useState(),c=a.useCallback((e=>{if(clearTimeout(s),e){const e=window.setTimeout((()=>o("")),2e3);l(e)}}),[s]),u=a.useCallback((e=>{e.stopPropagation();const t=((e,t)=>{const n=1===e.length;let r="";return e===Zr.V.BACKSPACE&&t.length?r=t.slice(0,t.length-1):n&&(r=(t+e).trim()),r})(e.key,i);i!==t&&(c(t),o(t))}),[c,i]);a.useEffect((()=>(n&&!r?document.addEventListener("keydown",u):n||r||o(""),()=>{n&&!r&&document.removeEventListener("keydown",u)})),[u,n,r]),a.useEffect((()=>(n||clearTimeout(s),()=>clearTimeout(s))),[n,s]),a.useEffect((()=>{t(i)}),[t,i])};var mw=n(63639),gw=n.n(mw);function vw(e){return gw()(e,[lp])}const yw={filter:""},bw=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:yw,t=arguments.length>1?arguments[1]:void 0;if("SET_FILTER"===t.type){const{filter:n}=t.payload;return Object.assign(Object.assign({},e),{filter:n})}return e},xw=e=>{let{renderFilter:t,renderList:n}=e;return a.createElement(a.Fragment,null,t(),n())},ww=a.forwardRef((function(e,t){const{onUpdate:n,onOpenChange:r,onFilterChange:i,renderControl:o,renderFilter:s,renderOption:l,renderOptionGroup:c,renderSelectedOption:u,renderEmptyOptions:d,renderPopup:h=xw,getOptionHeight:p,getOptionGroupHeight:f,filterOption:m,name:g,className:v,controlClassName:y,popupClassName:b,qa:x,value:w,defaultValue:S,defaultOpen:_,open:C,label:E,placeholder:T,filterPlaceholder:O,width:N,popupWidth:k,popupPlacement:j,error:I,virtualizationThreshold:P=np,view:D="normal",size:A="m",pin:R="round-round",multiple:M=!1,disabled:L=!1,filterable:F=!1,disablePortal:z,hasClear:B=!1,onClose:U,id:H,hasCounter:V,renderCounter:G,title:W}=e,q=(0,Kh.X)(),[{filter:Z},Y]=a.useReducer(bw,yw),K=a.useRef(null),Q=a.useRef(null),X=a.useRef(null),$=a.useRef(null),J=Et(t,Q),ee=a.useCallback((e=>{null===i||void 0===i||i(e),Y({type:"SET_FILTER",payload:{filter:e}})}),[i]),te=a.useCallback((e=>{null===r||void 0===r||r(e),!e&&F&&setTimeout((()=>{ee("")}),100)}),[F,r,ee]),{value:ne,open:re,activeIndex:ie,toggleOpen:oe,handleSelection:ae,handleClearValue:se,setActiveIndex:le}=(e=>{let{defaultOpen:t,onClose:n,onOpenChange:r,open:i,value:o,defaultValue:s=[],multiple:l,onUpdate:c}=e;const[u,d]=_t(o,s,c),[h,p]=a.useState(),f=qh({defaultOpen:t,onClose:n,onOpenChange:r,open:i}),{toggleOpen:m}=f,g=(0,nt._T)(f,["toggleOpen"]),v=a.useCallback((e=>{if(!u.includes(e.value)){const t=[e.value];d(t)}m(!1)}),[u,d,m]),y=a.useCallback((e=>{const t=u.includes(e.value)?u.filter((t=>t!==e.value)):[...u,e.value];d(t)}),[u,d]),b=a.useCallback((e=>{l?y(e):v(e)}),[l,v,y]),x=a.useCallback((()=>{d([])}),[d]);return Object.assign({value:u,activeIndex:h,handleSelection:b,handleClearValue:x,toggleOpen:m,setActiveIndex:p},g)})({onUpdate:n,value:w,defaultValue:S,defaultOpen:_,multiple:M,open:C,onClose:U,onOpenChange:te}),ce=ue(),de=null!==H&&void 0!==H?H:ce,he=function(e){const{filter:t="",filterable:n,filterOption:r}=e,i=a.useMemo((()=>vw(e.options)?e.options:Cx(e.options)),[e.options]),o=a.useMemo((()=>n?jx({options:i,filter:t,filterOption:r}):i),[t,n,r,i]);return i[lp].filteredOptions=o,i}({options:e.options||Ox(e.children),filter:Z,filterable:F,filterOption:m}),pe=function(e){if(!vw(e))throw Error("You should use options generated by useSelectOptions hook");return gw()(e,[lp,"filteredOptions"])}(he),fe=((e,t,n)=>{if(0===t.length)return null;const r=e.filter((e=>!_x(e))),i=t.reduce(((e,t)=>{const n=r.find((e=>e.value===t));return e.push(n||{value:t}),e}),[]);return n?i.map(((e,t)=>a.createElement(a.Fragment,{key:e.value},n(e,t)))):i.map((e=>Tx(e))).join(", ")})(he,ne,u),me=pe.length>=P,{errorMessage:ge,errorPlacement:ve,validationState:ye}=_i({error:I,errorMessage:e.errorMessage,errorPlacement:e.errorPlacement||"outside",validationState:e.validationState}),be=ue(),xe="invalid"===ye,we=xe&&Boolean(ge)&&"outside"===ve,Se=xe&&Boolean(ge)&&"inside"===ve,_e=a.useCallback((e=>{var t,n;if(e&&!(null===e||void 0===e?void 0:e.disabled)&&!("label"in e)){if(M){const e=null===(t=null===$||void 0===$?void 0:$.current)||void 0===t?void 0:t.getActiveItem();null===(n=X.current)||void 0===n||n.focus(),"number"===typeof e&&setTimeout((()=>{var t;null===(t=null===$||void 0===$?void 0:$.current)||void 0===t||t.activateItem(e,!0)}),50)}ae(e)}}),[ae,M]),Ce=a.useCallback((e=>{var t;[Zr.V.ENTER,Zr.V.SPACEBAR].includes(e.key)&&re&&(e.preventDefault(),e.key===Zr.V.SPACEBAR&&_e((e=>{var t;const n=kx(e),r=null===(t=null===e||void 0===e?void 0:e.current)||void 0===t?void 0:t.getActiveItem();return"number"===typeof r?n[r]:void 0})($))),[Zr.V.ARROW_DOWN,Zr.V.ARROW_UP].includes(e.key)&&!re&&(e.preventDefault(),oe()),null===(t=null===$||void 0===$?void 0:$.current)||void 0===t||t.onKeyDown(e)}),[_e,re,oe]),Ee=a.useCallback((e=>{var t;null===(t=null===$||void 0===$?void 0:$.current)||void 0===t||t.onKeyDown(e)}),[]),Te=a.useCallback((e=>{var t;if(e){const n=Nx(e,kx($));"number"===typeof n&&-1!==n&&(null===(t=null===$||void 0===$?void 0:$.current)||void 0===t||t.activateItem(n,!0))}}),[]);fw({onChange:Te,open:re,disabled:F}),a.useEffect((()=>{var e;re&&((e=>{var t;const n=kx(e);null===(t=null===e||void 0===e?void 0:e.current)||void 0===t||t.activateItem(Sx.findNextIndex(n,0,1),!1)})($),F&&(null===(e=X.current)||void 0===e||e.focus()))}),[re,F]);const Oe=Object.assign({},"max"===N&&{width:N}),Ne={};"number"===typeof N&&(Ne.width=N);const ke=a.useCallback((()=>oe(!1)),[oe]),{onFocus:je,onBlur:Ie}=e,{focusWithinProps:Pe}=Yh({onFocusWithin:je,onBlurWithin:a.useCallback((e=>{null===Ie||void 0===Ie||Ie(e),ke()}),[ke,Ie])});return a.createElement("div",Object.assign({ref:K,className:Qh(Oe,v)},Pe,{style:Ne}),a.createElement(Qx,{toggleOpen:oe,hasClear:B,clearValue:se,ref:J,className:y,qa:x,name:g,view:D,size:A,pin:R,label:E,placeholder:T,selectedOptionsContent:fe,isErrorVisible:xe,errorMessage:Se?ge:void 0,open:re,disabled:L,onKeyDown:Ce,renderControl:o,value:ne,popupId:"select-popup-".concat(de),selectId:"select-".concat(de),activeIndex:ie,hasCounter:M&&V,renderCounter:G,title:W}),a.createElement(pw,{ref:K,className:b,controlRef:Q,width:k,open:re,handleClose:ke,disablePortal:z,virtualized:me,mobile:q,id:"select-popup-".concat(de),placement:j},h({renderFilter:()=>F?a.createElement(dp,{ref:X,size:A,value:Z,placeholder:O,onChange:ee,onKeyDown:Ee,renderFilter:s}):null,renderList:()=>pe.length||e.loading?a.createElement(zx,{ref:$,size:A,value:ne,mobile:q,flattenOptions:pe,multiple:M,virtualized:me,onOptionClick:_e,renderOption:l,renderOptionGroup:c,getOptionHeight:p,getOptionGroupHeight:f,loading:e.loading,onLoadMore:e.onLoadMore,selectId:"select-".concat(de),onChangeActive:le}):a.createElement(Ux,{filter:Z,renderEmptyOptions:d})})),a.createElement(Ei,{errorMessage:we?ge:null,errorMessageId:be}))}));ww.Option=e=>null,ww.OptionGroup=e=>null;const Sw=tu(1,2,["success","warning","danger"]),_w={"block-4-2":tu(1,2,["success","warning","danger"]),"mirror-3-dc":tu(1,3,["success","warning","danger"])},Cw=e=>{var t;return(void 0!==(t=e.ErasureSpecies)&&t in _w?_w[e.ErasureSpecies]:Sw)(e.Degraded)},Ew=tu(80,85,["success","warning","danger"]),Tw=tu(80,85,[al.K.Green,al.K.Yellow,al.K.Red]),Ow={sortValue:Na.Hk.NodeId,sortOrder:zo.zE},Nw={sortValue:sh.PoolName,sortOrder:zo.zE},kw={sortValue:sh.Degraded,sortOrder:zo.hr},jw={sortValue:sh.Usage,sortOrder:zo.hr};const Iw=JSON.parse('{"label":"Usage:","default_value":"Any","groups_count":["{{count}} group","{{count}} groups","{{count}} groups","No groups"]}'),Pw=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"]}'),Dw=(0,We.wZ)("ydb-usage-filter",{ru:Pw,en:Iw}),Aw=Me("usage-filter"),Rw=e=>{const{className:t,value:n=[],groups:r=[],onChange:i,debounce:o=200}=e,[s,l]=a.useState(n),c=a.useRef();a.useEffect((()=>{l((e=>e.join(",")!==n.join(",")?n:e))}),[n]);const u=a.useMemo((()=>r.map((e=>{let{threshold:t,count:n}=e;return{value:String(t),text:"".concat(t,"%"),data:{count:n}}}))),[r]),d=Math.max(...r.map((e=>{let{count:t}=e;return t})));return(0,Le.jsx)(ww,{className:Aw(null,t),label:Dw("label"),value:s,placeholder:Dw("default_value"),options:u,multiple:!0,onUpdate:e=>{l(e),window.clearTimeout(c.current),c.current=window.setTimeout((()=>{null===i||void 0===i||i(e)}),o)},renderOption:e=>{let{value:t,data:n,text:r}=e;return(0,Le.jsxs)("div",{className:Aw("option"),children:[(0,Le.jsx)(Il,{className:Aw("option-title"),status:Tw(Number(t)),name:r,size:"xs"}),(0,Le.jsxs)("div",{className:Aw("option-meta"),children:[Dw("groups_count",{count:n.count}),(0,Le.jsx)("div",{className:Aw("option-bar"),style:{width:"".concat(n.count/d*100,"%")}})]})]})},getOptionHeight:()=>50,popupWidth:280,disabled:0===r.length})},Mw=JSON.parse('{"groups":"Groups","nodes":"Nodes","controls_groups-search-placeholder":"Group ID, Pool name","controls_nodes-search-placeholder":"Node ID, FQDN"}'),Lw=JSON.parse('{"groups":"\u0413\u0440\u0443\u043f\u043f\u044b","nodes":"\u041d\u043e\u0434\u044b","controls_groups-search-placeholder":"ID \u0433\u0440\u0443\u043f\u043f\u044b, \u0438\u043c\u044f \u043f\u0443\u043b\u0430","controls_nodes-search-placeholder":"ID \u0443\u0437\u043b\u0430, FQDN"}'),Fw=(0,We.wZ)("ydb-storage",{ru:Lw,en:Mw}),zw=Me("global-storage"),Bw=e=>{let{searchValue:t,handleSearchValueChange:n,withTypeSelector:r,storageType:i,handleStorageTypeChange:o,visibleEntities:s,handleVisibleEntitiesChange:l,nodesUptimeFilter:c,handleNodesUptimeFilterChange:u,withGroupsUsageFilter:d,groupsUsageFilter:h,groupsUsageFilterOptions:p,handleGroupsUsageFilterChange:f,entitiesCountCurrent:m,entitiesCountTotal:g,entitiesLoading:v}=e;const y=i===oh.nodes,b=Fw(y?"nodes":"groups");return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(Yc,{value:t,onChange:n,placeholder:Fw(y?"controls_nodes-search-placeholder":"controls_groups-search-placeholder"),className:zw("search")}),r&&(0,Le.jsx)(Vh,{value:i,onChange:o}),(0,Le.jsx)(Wh,{value:s,onChange:l}),y&&(0,Le.jsx)(Jc,{value:c,onChange:u}),!y&&d&&(0,Le.jsx)(Rw,{value:h,onChange:f,groups:p}),(0,Le.jsx)(yc,{label:b,loading:v,total:g,current:m})]})},Uw=JSON.parse('{"default_message":"Everything is fine!","default_button_label":"Show All"}'),Hw=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"}'),Vw=(0,We.wZ)("ydb-storage-empty-filter",{ru:Hw,en:Uw}),Gw=e=>{let{title:t,message:n=Vw("default_message"),showAll:r=Vw("default_button_label"),onShowAll:i}=e;return(0,Le.jsx)(Ac,{image:(0,Le.jsx)(Ge,{name:"thumbsUp"}),position:"left",title:t,description:n,actions:i&&[(0,Le.jsx)(Ie.z,{onClick:i,children:r},"show-all")]})},Ww=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"}'),qw=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"}'),Zw=(0,We.wZ)("ydb-storage-groups",{ru:qw,en:Ww}),Yw=e=>{let t,{visibleEntities:n,onShowAll:r}=e;return n===ih.space&&(t=Zw("empty.out_of_space")),n===ih.missing&&(t=Zw("empty.degraded")),t?(0,Le.jsx)(Gw,{title:t,showAll:Zw("show_all"),onShowAll:r}):null},Kw=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"m3.003 4.702 4.22-2.025a1.796 1.796 0 0 1 1.554 0l4.22 2.025a.886.886 0 0 1 .503.8V6a8.55 8.55 0 0 1-3.941 7.201l-.986.631a1.063 1.063 0 0 1-1.146 0l-.986-.63A8.55 8.55 0 0 1 2.5 6v-.498c0-.341.196-.652.503-.8Zm3.57-3.377L2.354 3.35A2.387 2.387 0 0 0 1 5.502V6a10.05 10.05 0 0 0 4.632 8.465l.986.63a2.563 2.563 0 0 0 2.764 0l.986-.63A10.05 10.05 0 0 0 15 6v-.498c0-.918-.526-1.755-1.354-2.152l-4.22-2.025a3.296 3.296 0 0 0-2.852 0ZM9.5 7a1.5 1.5 0 0 1-.75 1.3v1.95a.75.75 0 0 1-1.5 0V8.3A1.5 1.5 0 1 1 9.5 7Z",clipRule:"evenodd"})),Qw=Me("stack"),Xw=e=>{let{children:t,className:n}=e;return(0,Le.jsx)("div",{className:Qw(null,n),children:a.Children.map(t,((e,t)=>a.isValidElement(e)?(0,Le.jsx)("div",{className:Qw("layer"),style:{"--ydb-stack-level":t},children:e}):null))})},$w=Me("storage-disk-progress-bar");function Jw(e){let{diskAllocatedPercent:t=-1,severity:n,compact:r}=e;const[i]=Mo(Lo.yT),o={inverted:i,compact:r},s=void 0!==n&&_h(n);return s&&(o[s.toLocaleLowerCase()]=!0),(0,Le.jsx)("div",{className:$w(o),role:"meter","aria-label":"Disk allocated space","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":t,children:r?(0,Le.jsx)("div",{className:$w("filled"),style:{width:"100%"}}):t>=0&&(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)("div",{className:$w("filled"),style:{width:"".concat(i?100-t:t,"%")}}),(0,Le.jsx)("div",{className:$w("filled-title"),children:"".concat(Math.round(t),"%")})]})})}const eS=Me("pdisk-storage-popup"),tS=[al.K.Orange,al.K.Red,al.K.Yellow],nS=(e,t)=>{const{AvailableSize:n,TotalSize:r,State:i,PDiskId:o,NodeId:a,Path:s,Realtime:l,Type:c,Device:u}=e,d=[{label:"PDisk",value:(0,ks.CH)({NodeId:a,PDiskId:o})||Lo.jX},{label:"State",value:i||"not available"},{label:"Type",value:c||"unknown"}];return a&&d.push({label:"Node Id",value:a}),t&&a&&t.get(a)&&d.push({label:"Host",value:t.get(a)}),s&&d.push({label:"Path",value:s}),d.push({label:"Available",value:"".concat((0,Ou.Uz)(n)," of ").concat((0,Ou.Uz)(r))}),l&&tS.includes(l)&&d.push({label:"Realtime",value:l}),u&&tS.includes(u)&&d.push({label:"Device",value:u}),d},rS=e=>{let{data:t,nodes:n,...r}=e;const i=a.useMemo((()=>nS(t,n)),[t,n]);return(0,Le.jsx)(ti,{contentClassName:eS(),placement:["top","bottom"],offset:[0,12],...r,children:(0,Le.jsx)(Ss,{title:"PDisk",info:i,size:"s"})})},iS=Me("vdisk-storage-popup"),oS=e=>{let{data:t,nodes:n,...r}=e;const i=Sh(t),o=a.useMemo((()=>i?(e=>{var t,n,r,i;const{VDiskId:o,VDiskState:a,SatisfactionRank:s,DiskSpace:l,FrontQueues:c,Replicated:u,UnsyncedVDisks:d,AllocatedSize:h,ReadThroughput:p,WriteThroughput:f,StoragePoolName:m}=e,g=[{label:"VDisk",value:(0,ks.a2)(o)},{label:"State",value:null!==a&&void 0!==a?a:"not available"}];var v,y;return m&&g.push({label:"StoragePool",value:m}),s&&(null===(t=s.FreshRank)||void 0===t?void 0:t.Flag)!==al.K.Green&&g.push({label:"Fresh",value:null===(v=s.FreshRank)||void 0===v?void 0:v.Flag}),s&&(null===(n=s.LevelRank)||void 0===n?void 0:n.Flag)!==al.K.Green&&g.push({label:"Level",value:null===(y=s.LevelRank)||void 0===y?void 0:y.Flag}),s&&null!==(r=s.FreshRank)&&void 0!==r&&r.RankPercent&&g.push({label:"Fresh",value:s.FreshRank.RankPercent}),s&&null!==(i=s.LevelRank)&&void 0!==i&&i.RankPercent&&g.push({label:"Level",value:s.LevelRank.RankPercent}),l&&l!==al.K.Green&&g.push({label:"Space",value:l}),c&&c!==al.K.Green&&g.push({label:"FrontQueues",value:c}),u||g.push({label:"Replicated",value:"NO"}),d&&g.push({label:"UnsyncVDisks",value:d}),Number(h)&&g.push({label:"Allocated",value:(0,Ou.Uz)(h)}),Number(p)&&g.push({label:"Read",value:(0,Ou.Qt)(p)}),Number(f)&&g.push({label:"Write",value:(0,Ou.Qt)(f)}),g})(t):(e=>{const{NodeId:t,PDiskId:n,VSlotId:r,StoragePoolName:i}=e,o=[{label:"State",value:"not available"}];return i&&o.push({label:"StoragePool",value:i}),o.push({label:"NodeId",value:null!==t&&void 0!==t?t:Lo.jX},{label:"PDiskId",value:null!==n&&void 0!==n?n:Lo.jX},{label:"VSlotId",value:null!==r&&void 0!==r?r:Lo.jX}),o})(t)),[t,i]),s=a.useMemo((()=>i&&t.PDisk&&nS(t.PDisk,n)),[t,n,i]);return(0,Le.jsxs)(ti,{contentClassName:iS(),placement:["top","bottom"],offset:[0,12],...r,children:[t.DonorMode&&(0,Le.jsx)(ft,{className:iS("donor-label"),children:"Donor"}),(0,Le.jsx)(Ss,{title:"VDisk",info:o,size:"s"}),s&&(0,Le.jsx)(Ss,{title:"PDisk",info:s,size:"s"})]})},aS=Me("ydb-vdisk-component"),sS=e=>{var t,n;let{data:r={},nodes:i,compact:o}=e;const s=Sh(r),[l,c]=a.useState(!1),u=a.useRef(null);return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(oS,{data:r,nodes:i,anchorRef:u,open:l}),(0,Le.jsx)("div",{className:aS(),ref:u,onMouseEnter:()=>{c(!0)},onMouseLeave:()=>{c(!1)},children:r.NodeId&&s?(0,Le.jsx)(_l,{to:(0,Ta.ax)(Ta.ZP.node,{id:r.NodeId,activeTab:vu},{pdiskId:null!==(t=r.PDiskId)&&void 0!==t?t:null===(n=r.PDisk)||void 0===n?void 0:n.PDiskId,vdiskId:(0,ks.a2)(r.VDiskId)}),className:aS("content"),children:(0,Le.jsx)(Jw,{diskAllocatedPercent:r.AllocatedPercent,severity:r.Severity,compact:o})}):(0,Le.jsx)(Jw,{diskAllocatedPercent:r.AllocatedPercent,severity:r.Severity,compact:o})})]})};function lS(e){let{data:t,nodes:n,compact:r,className:i,stackClassName:o}=e;const a=null===t||void 0===t?void 0:t.Donors,s=a&&a.length>0?(0,Le.jsxs)(Xw,{className:o,children:[(0,Le.jsx)(sS,{data:t,nodes:n,compact:r}),a.map((e=>{const t=Sh(e);return(0,Le.jsx)(sS,{data:e,nodes:n,compact:r},(0,ks.a2)(t?e.VDiskId:e))}))]}):(0,Le.jsx)(sS,{data:t,nodes:n,compact:r});return(0,Le.jsx)("div",{className:i,children:s})}const cS=Me("global-storage-groups"),uS="storageGroupsColumnsWidth",dS="MediaType",hS="Erasure",pS="GroupId",fS="Used",mS="Limit",gS="Usage",vS="UsedSpaceFlag",yS="Read",bS="Write",xS="VDisks",wS="Degraded",SS={name:"PoolName",header:"Pool Name",width:250,render:e=>{var t;let{row:n}=e;const r=null===(t=n.PoolName)||void 0===t?void 0:t.split("/");return r&&(0,Le.jsx)(hu,{wrapperClassName:cS("pool-name-wrapper"),content:n.PoolName,placement:["right"],behavior:di.Immediate,children:r[r.length-1]})},align:Hc.ZP.LEFT},_S={name:dS,header:"Type",width:100,resizeMinWidth:100,align:Hc.ZP.LEFT,render:e=>{let{row:t}=e;return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(ft,{children:t.MediaType||"\u2014"}),"\xa0",t.Encryption&&(0,Le.jsx)(fi,{content:Zw("encrypted"),placement:"right",behavior:di.Immediate,children:(0,Le.jsx)(ft,{children:(0,Le.jsx)(we.J,{data:Kw,size:18})})})]})},sortable:!1},CS={name:hS,header:"Erasure",width:100,render:e=>{let{row:t}=e;return t.ErasureSpecies?t.ErasureSpecies:"-"},align:Hc.ZP.LEFT,sortable:!1},ES={name:wS,header:"Degraded",width:100,render:e=>{let{row:t}=e;return t.Degraded?(0,Le.jsxs)(ft,{theme:Cw(t),children:["Degraded: ",t.Degraded]}):"-"},align:Hc.ZP.LEFT,defaultOrder:Hc.ZP.DESCENDING},TS={name:gS,header:"Usage",width:100,resizeMinWidth:70,render:e=>{let{row:t}=e;return t.Limit?(0,Le.jsx)(Uu,{value:t.Usage,theme:Ew(t.Usage)}):"-"},sortAccessor:e=>e.Limit?e.Usage:null,align:Hc.ZP.LEFT,sortable:!1},OS={name:pS,header:"Group ID",width:130,render:e=>{let{row:t}=e;return(0,Le.jsx)("span",{className:cS("group-id"),children:t.GroupID})},sortAccessor:e=>Number(e.GroupID),align:Hc.ZP.RIGHT,sortable:!1},NS={name:fS,header:"Used",width:100,render:e=>{let{row:t}=e;return(0,Ou.Uz)(t.Used,!0)},align:Hc.ZP.RIGHT,sortable:!1},kS={name:mS,header:"Limit",width:100,render:e=>{let{row:t}=e;return(0,Ou.Uz)(t.Limit)},align:Hc.ZP.RIGHT,sortable:!1},jS={name:vS,header:"Space",width:110,render:e=>{let{row:t}=e;const n=t.UsedSpaceFlag;let r=al.K.Red;return n<100?r=al.K.Green:n<1e4?r=al.K.Yellow:n<1e6&&(r=al.K.Orange),(0,Le.jsx)(Il,{status:r})},align:Hc.ZP.CENTER},IS={name:yS,header:"Read",width:100,render:e=>{let{row:t}=e;return t.Read?(0,Ou.Qt)(t.Read):"-"},align:Hc.ZP.RIGHT},PS={name:bS,header:"Write",width:100,render:e=>{let{row:t}=e;return t.Write?(0,Ou.Qt)(t.Write):"-"},align:Hc.ZP.RIGHT},DS=e=>({name:xS,className:cS("vdisks-column"),header:"VDisks",render:t=>{var n;let{row:r}=t;return(0,Le.jsx)("div",{className:cS("vdisks-wrapper"),children:null===(n=r.VDisks)||void 0===n?void 0:n.map((t=>(0,Le.jsx)(lS,{data:t,nodes:e,className:cS("vdisks-item")},(0,ks.a2)(t.VDiskId))))})},align:Hc.ZP.CENTER,width:900,resizeable:!1}),AS=()=>[OS,_S,CS,TS,NS,kS],RS=e=>[SS,_S,CS,ES,OS,TS,NS,DS(e)],MS=(e,t)=>{const n=(e=>[SS,_S,CS,ES,TS,OS,NS,kS,jS,IS,PS,DS(e)])(e),r=((e,t)=>t===ih.space?e.filter((e=>e.name!==wS)):t===ih.missing?e.filter((e=>e.name!==vS)):e.filter((e=>e.name!==wS&&e.name!==vS)))(n,t);return r.map((e=>{return{...e,sortable:(t=e.name,Object.values(sh).includes(t))};var t}))};function LS(e){let{data:t,tableSettings:n,visibleEntities:r,nodes:i,onShowAll:o,sort:s,handleSort:l}=e;const c=a.useMemo((()=>MS(i,r)),[i,r]);return t.length||r===ih.all?(0,Le.jsx)(qc,{columnsWidthLSKey:uS,data:t,columns:c,settings:n,emptyDataMessage:Zw("empty.default"),sortOrder:s,onSort:l},r):(0,Le.jsx)(Yw,{onShowAll:o,visibleEntities:r})}const FS=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"}'),zS=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"}'),BS=(0,We.wZ)("ydb-storage-nodes",{ru:zS,en:FS}),US=e=>{let t,{visibleEntities:n,nodesUptimeFilter:r,onShowAll:i}=e;return n===ih.space&&(t=BS("empty.out_of_space")),n===ih.missing&&(t=BS("empty.degraded")),r===Na.Uu.SmallUptime&&(t=BS("empty.small_uptime")),n!==ih.all&&r!==Na.Uu.All&&(t=BS("empty.several_filters")),t?(0,Le.jsx)(Gw,{title:t,showAll:BS("show_all"),onShowAll:i}):null},HS=Me("pdisk-storage"),VS=e=>{let{nodeId:t,data:n={},vDisks:r}=e;const[i,o]=a.useState(!1),s=a.useRef(null);return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(rS,{data:n,anchorRef:s,open:i}),(0,Le.jsxs)("div",{className:HS(),ref:s,children:[null!==r&&void 0!==r&&r.length?(0,Le.jsx)("div",{className:HS("vdisks"),children:r.map((e=>(0,Le.jsx)("div",{className:HS("vdisks-item"),style:{flexGrow:Number(e.AllocatedSize)||1},children:(0,Le.jsx)(lS,{data:e,compact:!0,stackClassName:HS("donors-stack")})},(0,ks.a2)(e.VDiskId))))}):null,(0,Le.jsxs)(_l,{to:(0,Ta.ax)(Ta.ZP.node,{id:t,activeTab:vu},{pdiskId:n.PDiskId||""}),className:HS("content"),onMouseEnter:()=>{o(!0)},onMouseLeave:()=>{o(!1)},children:[(0,Le.jsx)(Jw,{diskAllocatedPercent:n.AllocatedPercent,severity:n.Severity}),(0,Le.jsx)("div",{className:HS("media-type"),children:n.Type})]})]})]})},GS=Me("global-storage-nodes"),WS=e=>GS("node",{unavailable:(0,Na.TA)(e)}),qS="storageNodesColumnsWidth",ZS="NodeId",YS="Host",KS="DC",QS="Rack",XS="Uptime",$S="PDisks",JS="Missing",e_=(e,t)=>{const n=(e=>{const t=null===e||void 0===e?void 0:e.getNodeRef;return[{name:ZS,header:"Node ID",width:100,align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return t.NodeId}},{name:YS,header:"Host",width:350,render:e=>{let{row:n}=e;return(0,Le.jsx)(wu,{node:n,getNodeRef:t})},align:Hc.ZP.LEFT},{name:KS,header:"DC",width:100,render:e=>{let{row:t}=e;return t.DC||Lo.jX},align:Hc.ZP.LEFT},{name:QS,header:"Rack",width:100,render:e=>{let{row:t}=e;return t.Rack||"\u2014"},align:Hc.ZP.LEFT},{name:XS,header:"Uptime",width:130,sortAccessor:e=>{let{StartTime:t}=e;return t?-t:0},align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return t.Uptime}},{name:JS,header:"Missing",width:100,align:Hc.ZP.CENTER,defaultOrder:Hc.ZP.DESCENDING,render:e=>{let{row:t}=e;return t.Missing}},{name:$S,className:GS("pdisks-column"),header:"PDisks",render:e=>{var t;let{row:n}=e;return(0,Le.jsx)("div",{className:GS("pdisks-wrapper"),children:null===(t=n.PDisks)||void 0===t?void 0:t.map((e=>{var t;const r=null===(t=n.VDisks)||void 0===t?void 0:t.filter((t=>t.PDiskId===e.PDiskId));return(0,Le.jsx)("div",{className:GS("pdisks-item"),children:(0,Le.jsx)(VS,{data:e,nodeId:n.NodeId,vDisks:r})},e.PDiskId)}))})},align:Hc.ZP.CENTER,sortable:!1,width:900,resizeable:!1}]})(e),r=n.map((e=>({...e,sortable:(0,Na.oh)(e.name)})));return t!==ih.missing?r.filter((e=>e.name!==JS)):r};function t_(e){let{data:t,tableSettings:n,visibleEntities:r,onShowAll:i,nodesUptimeFilter:o,additionalNodesProps:a,sort:s,handleSort:l}=e;const c=e_(a,r);return t.length||r===ih.all&&o===Na.Uu.All?(0,Le.jsx)(qc,{columnsWidthLSKey:qS,data:t,columns:c,settings:{...n,dynamicRenderType:"variable"},emptyDataMessage:BS("empty.default"),rowClassName:WS,sortOrder:s,onSort:l},r):(0,Le.jsx)(US,{visibleEntities:r,nodesUptimeFilter:o,onShowAll:i})}const n_=Bl({encode:Wl.encode,decode:e=>null===e||void 0===e?e:Array.isArray(e)?e.filter(Boolean):e?[e]:[]},[]),r_=e=>{var t;let{additionalNodesProps:n,tenant:r,nodeId:i}=e;const{autorefresh:o}=Do((e=>e.schema)),[s,l]=mc({type:Gl,visible:Gl,search:Gl,uptimeFilter:Gl,usageFilter:n_}),c=Uh.parse(s.type),u=Bh.parse(s.visible),d=null!==(t=s.search)&&void 0!==t?t:"",h=Na.U8.parse(s.uptimeFilter),p=s.usageFilter,f=Do(Zs.d),[m,g]=a.useState({sortOrder:void 0,sortValue:void 0}),v=m.sortValue?m:Ow,[y,b]=a.useState({sortOrder:void 0,sortValue:void 0}),x=y.sortOrder?y:function(e){return e===ih.missing?kw:e===ih.space?jw:Nw}(u),w=void 0!==i,S=w?oh.groups:c,_=(e=>{let{filter:t,problemFilter:n,nodesUptimeFilter:r,sortOrder:i,sortValue:o}=e;const[s]=Mo(Lo.ET);return a.useMemo((()=>{if(s){const e=(0,Na.eV)(n),a=(0,Na.RW)(r);return{filter:t,problems_only:e,uptime:a,sortOrder:i,sortValue:o}}}),[s,t,n,r,i,o])})({filter:d,nodesUptimeFilter:h,...v}),C=(e=>{let{filter:t,sortOrder:n,sortValue:r}=e;const[i]=Mo(Lo.ET);return a.useMemo((()=>{if(i)return{version:ka.v2,filter:t,sortOrder:n,sortValue:r}}),[i,t,n,r])})({filter:d,...x}),E=r?o:Lo.ME,T=Fh.useGetStorageNodesInfoQuery({tenant:r,visibleEntities:u,..._},{skip:S!==oh.nodes,pollingInterval:E}),O=Fh.useGetStorageGroupsInfoQuery({tenant:r,visibleEntities:u,nodeId:i,...C},{skip:S!==oh.groups,pollingInterval:E}),{currentData:N,isFetching:k,error:j}=S===oh.nodes?T:O,{currentData:{nodes:I=[]}={}}=T,{currentData:{groups:P=[]}={}}=O,{nodes:D,groups:A,...R}=null!==N&&void 0!==N?N:{found:0,total:0},M=void 0===N&&k,L=a.useMemo((()=>function(e,t,n){let r=e||[];return r=ch(r,t),r=cu(r,n),r}(I,d,h)),[d,I,h]),F=a.useMemo((()=>function(e,t,n){let r=e||[];return r=uh(r,t),r=dh(r,n),r}(P,d,p)),[d,P,p]),z=a.useMemo((()=>function(e){const t={};return null===e||void 0===e||e.forEach((e=>{const n=ah(e,5);Object.prototype.hasOwnProperty.call(t,n)||(t[n]=0),t[n]+=1})),Object.entries(t).map((e=>{let[t,n]=e;return{threshold:Number(t),count:n}})).sort(((e,t)=>t.threshold-e.threshold))}(P)),[P]),[B,U]=Bo(v,(e=>g(e))),[H,V]=Bo(x,(e=>b(e))),G=e=>{l({usageFilter:e.length?e:void 0},"replaceIn")},W=e=>{l({search:e||void 0},"replaceIn")},q=e=>{l({visible:e},"replaceIn")},Z=e=>{l({type:e},"replaceIn")},Y=e=>{l({uptimeFilter:e},"replaceIn")},K=()=>{q(ih.all),Y(Na.Uu.All)};return j?403===j.status?(0,Le.jsx)(Fc,{position:"left"}):(0,Le.jsx)(zc,{error:j}):(0,Le.jsxs)($c,{children:[(0,Le.jsx)($c.Controls,{children:(0,Le.jsx)(Bw,{searchValue:d,handleSearchValueChange:W,withTypeSelector:!w,storageType:S,handleStorageTypeChange:Z,visibleEntities:u,handleVisibleEntitiesChange:q,nodesUptimeFilter:h,handleNodesUptimeFilterChange:Y,groupsUsageFilter:p,groupsUsageFilterOptions:z,handleGroupsUsageFilterChange:G,entitiesCountCurrent:S===oh.groups?F.length:L.length,entitiesCountTotal:R.total,entitiesLoading:M})}),(0,Le.jsx)($c.Table,{loading:M,className:zw("table"),children:(0,Le.jsxs)(a.Fragment,{children:[S===oh.groups&&(0,Le.jsx)(LS,{visibleEntities:u,data:F,tableSettings:Lo.LE,nodes:f,onShowAll:()=>q(ih.all),sort:H,handleSort:V},"groups"),S===oh.nodes&&(0,Le.jsx)(t_,{visibleEntities:u,nodesUptimeFilter:h,data:L,tableSettings:Lo.LE,onShowAll:K,additionalNodesProps:n,sort:B,handleSort:U},"nodes")]})})]})},i_=(e,t)=>"getStorageGroups|offset".concat(t,"|limit").concat(e),o_=async e=>{let{limit:t,offset:n,...r}=e;const i=await window.api.getStorageInfo({version:ka.v2,limit:t,offset:n,...r},{concurrentId:i_(t,n)}),o=Lh(i);return{data:o.groups||[],found:o.found||0,total:o.total||0}},a_=e=>{let{searchValue:t,visibleEntities:n,tenant:r,nodeId:i,nodesMap:o,onShowAll:s,parentContainer:l,renderControls:c,renderErrorMessage:u}=e;const d=a.useMemo((()=>[t,n,r,i]),[t,n,r,i]),h=a.useCallback((async function(e,o){let{sortOrder:a,columnId:s}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return await o_({limit:e,offset:o,filter:t,visibleEntities:n,tenant:r,nodeId:i,sortOrder:a,sortValue:s})}),[i,t,r,n]),p=a.useMemo((()=>MS(o,n)),[o,n]);return(0,Le.jsx)($d,{columnsWidthLSKey:uS,parentContainer:l,columns:p,fetchData:h,limit:50,renderControls:c,renderErrorMessage:u,renderEmptyDataMessage:()=>n!==ih.all?(0,Le.jsx)(Yw,{onShowAll:s,visibleEntities:n}):Zw("empty.default"),dependencyArray:d})},s_=(e,t)=>"getStorageNodes|offset".concat(t,"|limit").concat(e),l_=async e=>{let{type:t="static",storage:n=!0,limit:r,offset:i,...o}=e;const a=await window.api.getNodes({type:t,storage:n,limit:r,offset:i,...o},{concurrentId:s_(r,i)}),s=Mh(a);return{data:s.nodes||[],found:s.found||0,total:s.total||0}},c_=e=>{let{searchValue:t,visibleEntities:n,nodesUptimeFilter:r,tenant:i,additionalNodesProps:o,onShowAll:s,parentContainer:l,renderControls:c,renderErrorMessage:u}=e;const d=a.useMemo((()=>[t,n,r,i]),[t,n,r,i]),h=a.useCallback((async function(e,o){let{sortOrder:a,columnId:s}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return await l_({limit:e,offset:o,filter:t,uptime:(0,Na.RW)(r),visibleEntities:n,tenant:i,sortOrder:a,sortValue:s})}),[r,t,i,n]),p=a.useMemo((()=>e_(o,n)),[o,n]);return(0,Le.jsx)($d,{columnsWidthLSKey:qS,parentContainer:l,columns:p,fetchData:h,rowHeight:50,limit:50,renderControls:c,renderErrorMessage:u,renderEmptyDataMessage:()=>n!==ih.all||r!==Na.Uu.All?(0,Le.jsx)(US,{onShowAll:s,nodesUptimeFilter:r,visibleEntities:n}):BS("empty.default"),getRowClassName:WS,dependencyArray:d})},u_=e=>{var t;let{tenant:n,nodeId:r,parentContainer:i,additionalNodesProps:o}=e;const[a,s]=mc({type:Gl,visible:Gl,search:Gl,uptimeFilter:Gl}),l=Uh.parse(a.type),c=Bh.parse(a.visible),u=null!==(t=a.search)&&void 0!==t?t:"",d=Na.U8.parse(a.uptimeFilter),h=e=>{s({search:e||void 0},"replaceIn")},p=e=>{s({visible:e},"replaceIn")},f=e=>{s({type:e},"replaceIn")},m=e=>{s({uptimeFilter:e},"replaceIn")},g=Do(Zs.d),v=()=>{s({visible:ih.all,uptimeFilter:Na.Uu.All},"replaceIn")},y=e=>{let{totalEntities:t,foundEntities:n,inited:i}=e;return(0,Le.jsx)(Bw,{searchValue:u,handleSearchValueChange:h,withTypeSelector:!r,storageType:l,handleStorageTypeChange:f,visibleEntities:c,handleVisibleEntitiesChange:p,nodesUptimeFilter:d,handleNodesUptimeFilterChange:m,withGroupsUsageFilter:!1,entitiesCountCurrent:n,entitiesCountTotal:t,entitiesLoading:!i})},b=e=>403===e.status?(0,Le.jsx)(Fc,{position:"left"}):(0,Le.jsx)(zc,{error:e});return l===oh.nodes?(0,Le.jsx)(c_,{searchValue:u,visibleEntities:c,nodesUptimeFilter:d,tenant:n,additionalNodesProps:o,onShowAll:v,parentContainer:i,renderControls:y,renderErrorMessage:b}):(0,Le.jsx)(a_,{searchValue:u,visibleEntities:c,tenant:n,nodeId:r,nodesMap:g,onShowAll:()=>{p(ih.all)},parentContainer:i,renderControls:y,renderErrorMessage:b})},d_=e=>{let{parentContainer:t,...n}=e;const[r]=Mo(Lo.ET);return r?(0,Le.jsx)(u_,{parentContainer:t,...n}):(0,Le.jsx)(r_,{...n})};var h_=n(27102),p_=n(36313),f_=n(43680),m_=n.n(f_),g_=n(53809);const v_=(0,p_.P1)((e=>e),(e=>g_.Xv.endpoints.getTenantsInfo.select({clusterName:e}))),y_=(0,p_.P1)((e=>e),((e,t)=>v_(t)),((e,t)=>{var n;return null!==(n=t(e).data)&&void 0!==n?n:[]})),b_=e=>e.tenants.searchValue,x_=(0,p_.P1)([y_,Ro.qz,b_],((e,t,n)=>{let r=((e,t)=>t===Ro.pu.ALL?e:e.filter((e=>e.Overall&&e.Overall!==al.K.Green)))(e,t);return r=((e,t)=>e.filter((e=>{const n=new RegExp(m_()(t),"i");return n.test(e.Name||"")||n.test(e.controlPlaneName)})))(r,n),r})),w_=Me("tenants"),S_=e=>{let{additionalTenantsProps:t}=e;const n=Ao(),{currentData:r,isFetching:i,error:o}=g_.Xv.useGetTenantsInfoQuery({clusterName:h_.qw},{pollingInterval:Lo.ME}),s=i&&void 0===r,l=null!==r&&void 0!==r?r:[],c=Do(b_),u=Do((e=>x_(e,h_.qw))),d=Do(Ro.qz),h=e=>{n((0,Ro.M6)(e))},p=e=>{n((0,g_.gI)(e))};return o?(0,Le.jsx)(zc,{error:o}):(0,Le.jsxs)($c,{children:[(0,Le.jsx)($c.Controls,{children:(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(Yc,{value:c,onChange:p,placeholder:"Database name",className:w_("search")}),(0,Le.jsx)(Bc,{value:d,onChange:h}),(0,Le.jsx)(yc,{total:l.length,current:(null===u||void 0===u?void 0:u.length)||0,label:"Databases",loading:s})]})}),(0,Le.jsx)($c.Table,{loading:s,children:(()=>{const e=e=>{var n,r;const i=null!==(n=e.MonitoringEndpoint)&&void 0!==n?n:e.backend;return null===t||void 0===t||null===(r=t.prepareTenantBackend)||void 0===r?void 0:r.call(t,i)},n=[{name:"Name",header:"Database",render:n=>{var r;let{row:i}=n;const o=e(i),a=Boolean(o);return(0,Le.jsx)(Il,{externalLink:a,className:w_("name"),name:i.Name||"unknown database",withLeftTrim:!0,status:i.Overall,hasClipboardButton:!0,path:fs({name:i.Name,backend:o}),additionalControls:(0,Le.jsx)("span",{className:w_("monitoring-button"),children:null===t||void 0===t||null===(r=t.getMonitoringLink)||void 0===r?void 0:r.call(t,i.Name,i.Type)})})},width:440,sortable:!0,defaultOrder:Hc.ZP.DESCENDING},{name:"controlPlaneName",header:"Name",render:e=>{let{row:t}=e;return t.controlPlaneName},width:200,sortable:!0,defaultOrder:Hc.ZP.DESCENDING},{name:"Type",width:200,resizeMinWidth:150,render:e=>{let{row:t}=e;return"Serverless"!==t.Type?t.Type:(0,Le.jsxs)("div",{className:w_("type"),children:[(0,Le.jsx)("span",{className:w_("type-value"),children:t.Type}),(0,Le.jsx)(Ie.z,{className:w_("type-button"),onClick:()=>p(t.sharedTenantName||""),children:"Show shared"})]})}},{name:"State",width:90,render:e=>{let{row:t}=e;return t.State?t.State.toLowerCase():"\u2014"},customStyle:()=>({textTransform:"capitalize"})},{name:"cpu",header:"CPU",width:80,render:e=>{let{row:t}=e;return t.cpu&&t.cpu>1e4?(0,ks.LO)(t.cpu):"\u2014"},align:Hc.ZP.RIGHT,defaultOrder:Hc.ZP.DESCENDING},{name:"memory",header:"Memory",width:120,render:e=>{let{row:t}=e;return t.memory?(0,ks.SX)(t.memory):"\u2014"},align:Hc.ZP.RIGHT,defaultOrder:Hc.ZP.DESCENDING},{name:"storage",header:"Storage",width:120,render:e=>{let{row:t}=e;return t.storage?(0,ks.SX)(t.storage):"\u2014"},align:Hc.ZP.RIGHT,defaultOrder:Hc.ZP.DESCENDING},{name:"nodesCount",header:"Nodes",width:100,render:e=>{let{row:t}=e;return t.nodesCount?(0,ks.uf)(t.nodesCount):"\u2014"},align:Hc.ZP.RIGHT,defaultOrder:Hc.ZP.DESCENDING},{name:"groupsCount",header:"Groups",width:100,render:e=>{let{row:t}=e;return t.groupsCount?(0,ks.uf)(t.groupsCount):"\u2014"},align:Hc.ZP.RIGHT,defaultOrder:Hc.ZP.DESCENDING},{name:"PoolStats",header:"Pools",width:100,resizeMinWidth:60,sortAccessor:e=>{let{PoolStats:t=[]}=e;return t.reduce(((e,t)=>e+(t.Usage||0)),0)},defaultOrder:Hc.ZP.DESCENDING,align:Hc.ZP.LEFT,render:e=>{let{row:t}=e;return(0,Le.jsx)(Tu,{pools:t.PoolStats})}},{name:"Tablets",header:"Tablets States",sortable:!1,width:500,resizeMinWidth:500,render:t=>{let{row:n}=t;const r=e(n);return n.Tablets?(0,Le.jsx)(zu,{path:n.Name,tablets:n.Tablets,nodeIds:n.NodeIds||[],backend:r}):"\u2014"}}];return 0===u.length&&d!==Ro.pu.ALL?(0,Le.jsx)(Ge,{name:"thumbsUp",width:"200"}):(0,Le.jsx)(qc,{columnsWidthLSKey:"databasesTableColumnsWidth",data:u,columns:n,settings:Lo.LE,emptyDataMessage:"No such tenants"})})()})]})};function __(e){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 17 17",width:"16",height:"16",fill:"currentColor"},e),a.createElement("path",{d:"M4 7h9v3H4z"}))}function C_(e){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 12 10",width:"16",height:"16",fill:"currentColor"},e),a.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"}))}const E_=(0,le.Ge)("checkbox"),T_=a.forwardRef((function(e,t){const{size:n="m",indeterminate:r,disabled:i=!1,content:o,children:s,title:l,style:c,className:u,qa:d}=e,{checked:h,inputProps:p}=bo(e),f=o||s,m=a.createElement("span",{className:E_("indicator")},a.createElement("span",{className:E_("icon"),"aria-hidden":!0},r?a.createElement(__,{className:E_("icon-svg",{type:"dash"})}):a.createElement(C_,{className:E_("icon-svg",{type:"tick"})})),a.createElement("input",Object.assign({},p,{className:E_("control")})),a.createElement("span",{className:E_("outline")}));return a.createElement(wo,{ref:t,title:l,style:c,size:n,disabled:i,className:E_({size:n,disabled:i,indeterminate:r,checked:h},u),qa:d,control:m},f)})),O_=Me("ydb-loader"),N_=e=>{let{size:t="m",className:n}=e;return(0,Le.jsx)("div",{className:O_(null,n),children:(0,Le.jsx)(Di,{size:t})})},k_=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M3 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM9.5 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm5 0a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z",clipRule:"evenodd"})),j_=(0,le.Ge)("dropdown-menu"),I_=a.createContext({toggle(){},data:void 0});I_.displayName="DropdownMenu.Context";const P_=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M10.53 2.97a.75.75 0 0 1 0 1.06L6.56 8l3.97 3.97a.75.75 0 1 1-1.06 1.06l-4.5-4.5a.75.75 0 0 1 0-1.06l4.5-4.5a.75.75 0 0 1 1.06 0Z",clipRule:"evenodd"})),D_=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M5.47 13.03a.75.75 0 0 1 0-1.06L9.44 8 5.47 4.03a.75.75 0 0 1 1.06-1.06l4.5 4.5a.75.75 0 0 1 0 1.06l-4.5 4.5a.75.75 0 0 1-1.06 0Z",clipRule:"evenodd"})),A_=(0,le.Ge)("menu"),R_=a.forwardRef((function(e,t){let{label:n,children:r,style:i,className:o,qa:s}=e;const l=ue();return a.createElement("li",{ref:t,className:A_("list-group-item")},a.createElement("div",{style:i,className:A_("group",o),"data-qa":s},n&&a.createElement("div",{id:l,className:A_("group-label")},n),a.createElement("ul",{role:"group","aria-labelledby":l,className:A_("group-list")},r)))})),M_=(0,le.Ge)("menu"),L_=a.forwardRef((function(e,t){let{icon:n,iconStart:r=n,iconEnd:i,title:o,disabled:s,active:l,selected:c,href:u,target:d,rel:h,onClick:p,style:f,className:m,theme:g,extraProps:v,children:y,qa:b}=e;const{onKeyDown:x}=(0,ci.b)(p),w=a.useCallback((e=>{Yr.P.publish({componentId:"MenuItem",eventId:"click",domEvent:e})}),[]),S={role:"menuitem",onKeyDown:p&&!s?x:void 0},_={title:o,onClick:s?void 0:p,onClickCapture:s?void 0:w,style:f,tabIndex:s?-1:0,className:M_("item",{disabled:s,active:l,selected:c,theme:g,interactive:Boolean(p)},m),"data-qa":b},C=[r&&a.createElement("div",{key:"icon-start",className:M_("item-icon")},r),a.createElement("div",{key:"content",className:M_("item-content")},y),i&&a.createElement("div",{key:"icon-end",className:M_("item-icon-end")},i)];let E;return E=u?a.createElement("a",Object.assign({},S,v,_,{href:u,target:d,rel:h}),C):a.createElement("div",Object.assign({},S,v,_),C),a.createElement("li",{ref:t,className:M_("list-item")},E)})),F_=(0,le.Ge)("menu"),z_=a.forwardRef((function(e,t){let{size:n="m",children:r,style:i,className:o,qa:s}=e;return a.createElement("ul",{ref:t,role:"menu",style:i,className:F_({size:n},o),"data-qa":s},r)}));function B_(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3?arguments[3]:void 0;const i=(e.length+t-n%e.length)%e.length;return r&&r(e[i])?B_(e,i,1,r):i}function U_(e,t){let n=arguments.length>3?arguments[3]:void 0;const r=(t+(arguments.length>2&&void 0!==arguments[2]?arguments[2]:1))%e.length;return n&&n(e[r])?U_(e,r,1,n):r}z_.Item=L_,z_.Group=R_;const H_=[],V_=a.createContext({activeMenuPath:H_,setActiveMenuPath:()=>{},anchorRef:{current:null}}),G_=e=>{let{anchorRef:t,children:n,disabled:r}=e;const[i,o]=a.useState(H_);a.useEffect((()=>{r&&o(H_)}),[r]);const s=a.useMemo((()=>({activeMenuPath:i,setActiveMenuPath:o,anchorRef:t})),[i,t]);return a.createElement(V_.Provider,{value:s},n)},W_={text:"",action:()=>{},path:[]};function q_(e){return e===W_}function Z_(e){return e.disabled||q_(e)}function Y_(e){var t;return null!==(t=null===e||void 0===e?void 0:e.join(" "))&&void 0!==t?t:""}const K_=e=>{let{items:t,open:n,anchorRef:r,onClose:i,size:o,menuProps:s,children:l,popupProps:c,path:u=[]}=e;const{toggle:d,data:h}=a.useContext(I_),{activeMenuPath:p,setActiveMenuPath:f,anchorRef:m}=a.useContext(V_),g=u.length>0,v=a.useCallback((()=>{f(u.slice(0,u.length-1))}),[f,u]),y=a.useCallback((e=>{var t;f(u),null===(t=null===c||void 0===c?void 0:c.onMouseEnter)||void 0===t||t.call(c,e)}),[u,c,f]),b=a.useCallback((e=>{var t;v(),null===(t=null===c||void 0===c?void 0:c.onMouseLeave)||void 0===t||t.call(c,e)}),[v,c]),x=a.useCallback(((e,t)=>{var n;e.items&&e.path?f(e.path):(null===(n=e.action)||void 0===n||n.call(e,t,h),d(!1))}),[h,f,d]),w=a.useCallback(((e,n)=>{switch(n.key){case"Escape":return g&&(n.stopPropagation(),null===v||void 0===v||v()),!1;case"Enter":case" ":{const r=t[e],i=null===r||void 0===r?void 0:r.items;return(g||i)&&(n.stopPropagation(),n.preventDefault()),r&&x(r,n),!1}}return!0}),[v,x,g,t]),S=n&&Y_(u)===Y_(p),{activeItemIndex:_,setActiveItemIndex:C,reset:E}=function(e){let{items:t,skip:n,pageSize:r,processHomeKey:i=!0,processEndKey:o=!0,anchorRef:s,disabled:l=!1,initialValue:c=-1,onAnchorKeyDown:u}=e;const[d,h]=a.useState(c),p=a.useCallback((()=>{h(c)}),[c]);return a.useEffect((()=>{t&&p()}),[t,p]),a.useLayoutEffect((()=>{if(l)return;if(!t.some((e=>!(null===n||void 0===n?void 0:n(e)))))return;const e=null===s||void 0===s?void 0:s.current;if(!e)return;const a=e=>{if(!1!==(null===u||void 0===u?void 0:u(d,e)))switch(e.key){case"ArrowDown":e.preventDefault(),h((e=>U_(t,e,1,n)));break;case"ArrowUp":e.preventDefault(),h((e=>B_(t,e,1,n)));break;case"PageDown":if(!r)return;e.preventDefault(),h((e=>U_(t,e,r,n)));break;case"PageUp":if(!r)return;e.preventDefault(),h((e=>B_(t,e,r,n)));break;case"Home":if(!i)return;e.preventDefault(),h((e=>B_(t,e,e,n)));break;case"End":if(!o)return;e.preventDefault(),h((e=>B_(t,e,e+1,n)))}};return e.addEventListener("keydown",a),()=>{e.removeEventListener("keydown",a)}}),[d,s,l,t,u,r,o,i,n]),{activeItemIndex:d,setActiveItemIndex:h,reset:p}}({items:t,skip:Z_,anchorRef:m,onAnchorKeyDown:w,disabled:!S,initialValue:g?0:-1});return a.useEffect((()=>{n||E()}),[n,E]),a.createElement(ti,Object.assign({open:n,anchorRef:r,onClose:i},c,{onMouseEnter:y,onMouseLeave:b}),l||a.createElement(z_,Object.assign({className:j_("menu"),size:o},s),t.map(((e,t)=>{var r;const o=S&&_===t,s=n&&!o&&0!==p.length&&Y_(e.path)===Y_(p.slice(0,e.path.length)),l=Object.assign(Object.assign({},e.extraProps),{onMouseEnter:()=>C(t)});return a.createElement($_,Object.assign({key:t,className:j_("menu-item",{separator:q_(e),"active-parent":s,"with-submenu":Boolean(null===(r=e.items)||void 0===r?void 0:r.length)},e.className),selected:o,popupProps:c,closeMenu:i},e,{extraProps:l}))}))))};function Q_(e,t){var n;return null!==(n=null===e||void 0===e?void 0:e.every(((e,n)=>e===(null===t||void 0===t?void 0:t[n]))))&&void 0!==n&&n}function X_(e){let{items:t,path:n}=e;const{activeMenuPath:r,setActiveMenuPath:i}=a.useContext(V_),o=Boolean(n)&&Boolean(null===t||void 0===t?void 0:t.length),s=a.useCallback((()=>{n&&i(n.slice(0,n.length-1))}),[n,i]),l=a.useCallback((()=>{n&&i(n)}),[n,i]);return{hasSubmenu:o,isSubmenuOpen:Q_(n,r),openSubmenu:l,closeSubmenu:s}}const $_=e=>{var{text:t,action:n,items:r,popupProps:i,closeMenu:o,children:s,path:l}=e,c=(0,nt._T)(e,["text","action","items","popupProps","closeMenu","children","path"]);const{toggle:u,data:d}=a.useContext(I_),h=a.useRef(null),p=ir(),{hasSubmenu:f,isSubmenuOpen:m,closeSubmenu:g,openSubmenu:v}=X_({items:r,path:l}),y=a.useCallback((()=>{const e=()=>{o?o():u(!1)};f?(g(),requestAnimationFrame(e)):e()}),[o,g,f,u]),b=a.useCallback((e=>{f||(null===n||void 0===n||n(e,d),y())}),[n,d,y,f]),x=a.useMemo((()=>Object.assign(Object.assign({},c.extraProps),{onMouseEnter:e=>{var t,n;null===(n=null===(t=c.extraProps)||void 0===t?void 0:t.onMouseEnter)||void 0===n||n.call(t,e),f&&v()},onMouseLeave:e=>{var t,n;null===(n=null===(t=c.extraProps)||void 0===t?void 0:t.onMouseLeave)||void 0===n||n.call(t,e),f&&g()}})),[c.extraProps,g,f,v]),w=a.useMemo((()=>"rtl"===p?["left-start","right-start"]:["right-start","left-start"]),[p]),S=a.useMemo((()=>f?a.createElement(we.J,{data:"rtl"===p?P_:D_,size:10,className:j_("sub-menu-arrow")}):c.iconEnd),[f,p,c.iconEnd]);return a.createElement(a.Fragment,null,a.createElement(z_.Item,Object.assign({ref:h},c,{extraProps:x,onClick:b,iconEnd:S}),t||s),f&&r&&a.createElement(K_,{popupProps:Object.assign(Object.assign({},i),{className:j_("sub-menu",null===i||void 0===i?void 0:i.className),placement:w}),items:r,path:l,open:m,anchorRef:h,onClose:y}))},J_=e=>"function"===typeof e;function eC(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0!==e&&void 0!==t;const i=function(e,t){const[n,r]=a.useState(e);return[n,a.useCallback((e=>{J_(e)?r((n=>{const r=e(n);return null===t||void 0===t||t(r),r})):(null===t||void 0===t||t(e),r(e))}),[t])]}(e||n,t);return r?[e,t]:i}function tC(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];const r=[];let i=!1,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;for(const a of e)if(Array.isArray(a)){const e=tC(a,t,n,o);0!==r.length&&r.push(t),r.push(...e),o+=e.length,i=!0}else{if(a.hidden)continue;i&&r.push(t);const e=Object.assign(Object.assign({},a),{path:[...n,o++]});a.items&&(e.items=tC(a.items,t,e.path)),r.push(e),i=!1}return r}const nC=Object.assign((e=>{let{items:t=[],size:n="m",icon:r=a.createElement(we.J,{data:k_}),open:i,onOpenToggle:o,hideOnScroll:s=!0,data:l,disabled:c,switcher:u,renderSwitcher:d,switcherWrapperClassName:h,defaultSwitcherProps:p,defaultSwitcherClassName:f,onSwitcherClick:m,menuProps:g,popupProps:v,children:y}=e;const b=a.useRef(null),{isPopupShown:x,togglePopup:w,closePopup:S}=function(e,t,n){const[r,i]=eC(e,t,!1),o=a.useCallback((e=>{i((t=>"boolean"===typeof e?e:!t))}),[i]),s=a.useCallback((()=>{i(!1)}),[i]);return a.useEffect((()=>{n&&r&&s()}),[s,n,r]),{isPopupShown:r,togglePopup:o,closePopup:s}}(i,o,c);!function(e,t,n){a.useEffect((()=>{if(n)return;const r=n=>{n.target.contains(t.current)&&e(n)};return document.addEventListener("scroll",r,!0),()=>{document.removeEventListener("scroll",r,!0)}}),[t,e,n])}(S,b,!x||!s);const _=a.useMemo((()=>({toggle:w,data:l})),[l,w]),C=a.useMemo((()=>tC(t,W_)),[t]),E=a.useCallback((e=>{c||(null===m||void 0===m||m(e),w())}),[c,m,w]),{onKeyDown:T}=(0,ci.b)(E),O=a.useMemo((()=>({onClick:E,onKeyDown:T})),[E,T]);return a.createElement(I_.Provider,{value:_},a.createElement("div",Object.assign({ref:b,className:j_("switcher-wrapper",h)},d?{}:O),(null===d||void 0===d?void 0:d(O))||u||a.createElement(Ie.z,Object.assign({view:"flat",size:n},p,{className:j_("switcher-button",f),disabled:c}),r)),a.createElement(G_,{anchorRef:b,disabled:!x},a.createElement(K_,{items:C,open:x,size:n,menuProps:g,anchorRef:b,onClose:S,popupProps:v},y)))}),{Item:$_}),rC=(0,Re.withNaming)({e:"__",m:"_"}),iC="--ydb-tree-view-level",oC=rC("ydb-tree-view");function aC(e){let{children:t,name:n,title:r,icon:i,collapsed:o=!0,active:s=!1,onClick:l,onArrowClick:c,hasArrow:u=!1,actions:d,additionalNodeElements:h,level:p}=e;const f=a.useCallback((e=>{if(!l)return;e.nativeEvent.composedPath().some((e=>e instanceof HTMLElement&&("BUTTON"===e.nodeName&&!e.hasAttribute("disabled")||e.hasAttribute("tabindex")&&e.tabIndex>-1)))||l()}),[l]),m=c||l;let g="tree-view_arrow",v="tree-view_children";return o&&(g+=" tree-view_arrow-collapsed",v+=" tree-view_children-collapsed"),(0,Le.jsx)("div",{className:oC(),style:{[iC]:p},children:(0,Le.jsxs)("div",{className:"tree-view",children:[(0,Le.jsxs)("div",{className:"".concat("tree-view_item"," ").concat(oC("item",{active:s})),onClick:f,children:[(0,Le.jsx)("button",{type:"button",className:"".concat(g," ").concat(oC("arrow",{collapsed:o,hidden:!u})),disabled:!m,onClick:m}),(0,Le.jsxs)("div",{className:oC("content"),children:[i&&(0,Le.jsx)("div",{className:oC("icon"),children:i}),(0,Le.jsx)("div",{className:oC("text"),title:r,children:n}),d&&d.length>0&&(0,Le.jsxs)("div",{className:oC("actions"),children:[h,(0,Le.jsx)(nC,{defaultSwitcherProps:{view:"flat-secondary",size:"s",pin:"brick-brick"},items:d})]})]})]}),(0,Le.jsx)("div",{className:"".concat(v," ").concat(oC("container",{collapsed:o})),children:o?null:t})]})})}const sC=[{name:"NodeId",header:"#",width:80,resizeMinWidth:80,align:Hc.ZP.LEFT,render:e=>{let{row:t}=e;return t.NodeId}},{name:"Host",render:e=>{var t;let{row:n}=e;const r=n.Endpoints&&(null===(t=n.Endpoints.find((e=>"http-mon"===e.Name)))||void 0===t?void 0:t.Address),i=n.Host&&"".concat(n.Host).concat(r||"")||"unknown",o=!(0,Na.TA)(n)&&n.NodeId?bu(n.NodeId):void 0;return(0,Le.jsx)(Il,{name:i,path:o,hasClipboardButton:!0,showStatus:!1})},width:400,align:Hc.ZP.LEFT},{name:"Endpoints",sortable:!1,render:e=>{let{row:t}=e;return t.Endpoints?t.Endpoints.map((e=>{let{Name:t,Address:n}=e;return"".concat(t," ").concat(n)})).join(", "):"-"},width:300,align:Hc.ZP.LEFT},{name:"uptime",header:"Uptime",sortAccessor:e=>{let{StartTime:t}=e;return t&&-t},width:120,align:Hc.ZP.LEFT,render:e=>{let{row:t}=e;return t.uptime}},{name:"MemoryUsed",header:"Memory used",sortAccessor:e=>{let{MemoryUsed:t=0}=e;return Number(t)},defaultOrder:Hc.ZP.DESCENDING,render:e=>{let{row:t}=e;return t.MemoryUsed?(0,ks.td)(t.MemoryUsed):"\u2014"},width:120,align:Hc.ZP.RIGHT},{name:"MemoryLimit",header:"Memory limit",sortAccessor:e=>{let{MemoryLimit:t=0}=e;return Number(t)},defaultOrder:Hc.ZP.DESCENDING,render:e=>{let{row:t}=e;return t.MemoryLimit?(0,ks.td)(t.MemoryLimit):"\u2014"},width:120,align:Hc.ZP.RIGHT},{name:"PoolStats",header:"Pools",sortAccessor:e=>{let{PoolStats:t=[]}=e;return t.reduce(((e,t)=>e+(t.Usage||0)),0)},defaultOrder:Hc.ZP.DESCENDING,width:80,resizeMinWidth:60,render:e=>{let{row:t}=e;return t.PoolStats?(0,Le.jsx)(Tu,{pools:t.PoolStats}):"\u2014"},align:Hc.ZP.LEFT},{name:"LoadAverage",header:"Load average",sortAccessor:e=>{let{LoadAverage:t=[]}=e;return t.slice(0,1).reduce(((e,t)=>e+t),0)},defaultOrder:Hc.ZP.DESCENDING,width:140,resizeMinWidth:140,render:e=>{let{row:t}=e;return t.LoadAverage&&t.LoadAverage.length>0?(0,Le.jsx)(Iu,{value:t.LoadAverage[0],percents:!0,capacity:100,colorizeProgress:!0}):"\u2014"},align:Hc.ZP.LEFT}],lC=e=>{let{nodes:t}=e;return(0,Le.jsx)(qc,{columnsWidthLSKey:"versionsTableColumnsWidth",data:t,columns:sC,settings:Lo.LE})},cC=(0,le.Ge)("progress");function uC(e){const{text:t,offset:n=0}=e;return t?a.createElement("div",{className:cC("text-inner"),style:{transform:"translateX(calc(var(--g-flow-direction) * ".concat(-n,"%))")}},t):null}function dC(e){let{item:t}=e;const{value:n,color:r,className:i,theme:o,title:s,content:l,loading:c}=t,u={loading:c};return"undefined"===typeof r&&(u.theme=o||"default"),Number.isFinite(n)?a.createElement("div",{className:cC("item",u,i),style:{width:"".concat(n,"%"),backgroundColor:r},title:s},l):null}function hC(e){return e<100?e-100:0}function pC(e){const{theme:t,colorStops:n,colorStopsValue:r,value:i}=e;if(n){const e=n.find(((e,t)=>{const o="number"===typeof r?r:i,a=t>1?n[t-1].stop:0,s=t<n.length-1?e.stop:100;return o>=a&&o<=s}));return e?e.theme:t}return t}function fC(e){const{stack:t,stackClassName:n,value:r,text:i}=e,o=hC(r||function(e){return e.reduce(((e,t)=>{let{value:n}=t;return e+n}),0)}(t));return a.createElement("div",{className:cC("stack",n),style:{transform:"translateX(calc(var(--g-flow-direction) * ".concat(o,"%))")}},a.createElement("div",{className:cC("item"),style:{width:"".concat(-o,"%")}}),t.map(((e,t)=>a.createElement(dC,{key:t,item:e}))),a.createElement(uC,{offset:o,text:i}))}function mC(e){const{value:t,loading:n,text:r}=e,i=hC(t);return Number.isFinite(t)?a.createElement("div",{className:cC("item",{theme:pC(e),loading:n}),style:{transform:"translateX(calc(var(--g-flow-direction) * ".concat(i,"%))")}},a.createElement(uC,{offset:i,text:r})):null}const gC=a.forwardRef((function(e,t){const{text:n="",theme:r="default",size:i="m",loading:o=!1,className:s,qa:l}=e,c=Object.assign(Object.assign({},e),{text:n,theme:r,size:i,loading:o});return a.createElement("div",{ref:t,className:cC({size:i},s),"data-qa":l},a.createElement("div",{className:cC("text")},n),function(e){return void 0!==e.stack}(c)?a.createElement(fC,Object.assign({},c)):a.createElement(mC,Object.assign({},c)))})),vC=Me("ydb-versions-nodes-tree-title"),yC=e=>{let t,{title:n,nodes:r,items:i,versionColor:o,versionsValues:a}=e;return t=i?i.reduce(((e,t)=>t.nodes?e+t.nodes.length:e),0):r?r.length:0,(0,Le.jsxs)("div",{className:vC("overview"),children:[(0,Le.jsxs)("div",{className:vC("overview-container"),children:[o?(0,Le.jsx)("div",{className:vC("version-color"),style:{background:o}}):null,n?(0,Le.jsxs)("span",{className:vC("overview-title"),children:[n,(0,Le.jsx)(pl,{text:n,size:"s",className:vC("clipboard-button")})]}):null]}),(0,Le.jsxs)("div",{className:vC("overview-info"),children:[(0,Le.jsxs)("div",{children:[(0,Le.jsx)("span",{className:vC("info-value"),children:t}),(0,Le.jsx)("span",{className:vC("info-label",{margin:"left"}),children:"Nodes"})]}),a?(0,Le.jsxs)("div",{className:vC("version-progress"),children:[(0,Le.jsx)("span",{className:vC("info-label",{margin:"right"}),children:"Versions"}),(0,Le.jsx)(gC,{size:"s",value:100,stack:a})]}):null]})]})},bC=Me("ydb-versions-grouped-node-tree"),xC=e=>{let{title:t,nodes:n,items:r,expanded:i=!1,versionColor:o,versionsValues:s,level:l=0}=e;const[c,u]=a.useState(!1);a.useEffect((()=>{u(i)}),[i]);const d=(0,Le.jsx)(yC,{title:t,nodes:n,items:r,versionColor:o,versionsValues:s}),h=()=>{u((e=>!e))};return r?(0,Le.jsx)("div",{className:bC({"first-level":0===l}),children:(0,Le.jsx)(aC,{name:d,collapsed:!c,hasArrow:!0,onClick:h,onArrowClick:h,children:r.map(((e,t)=>(0,Le.jsx)(xC,{title:e.title,nodes:e.nodes,expanded:i,versionColor:e.versionColor,level:l+1},t)))},t)}):(0,Le.jsx)("div",{className:bC({"first-level":0===l}),children:(0,Le.jsx)(aC,{name:d,collapsed:!c,hasArrow:!0,onClick:h,onArrowClick:h,children:(0,Le.jsx)("div",{className:bC("dt-wrapper"),children:(0,Le.jsx)(lC,{nodes:n||[]})})},t)})};var wC=n(46754),SC=n.n(wC);let _C;!function(e){e.VERSION="Version",e.TENANT="Database",e.STORAGE="Storage"}(_C||(_C={}));const CC=(e,t)=>{var n;return(null===(n=e.title)||void 0===n?void 0:n.localeCompare(t.title||""))||-1},EC=Me("ydb-versions"),TC=e=>{let{versionToColor:t}=e;const{data:n=[],isLoading:r}=Al.useGetClusterNodesQuery(void 0,{pollingInterval:Lo.ME}),[i,o]=a.useState(_C.VERSION),[s,l]=a.useState(!1),c=e=>{o(e)};if(r)return(0,Le.jsx)(N_,{});const u=((e,t,n)=>{if(e&&e.length){if(n===_C.VERSION){const n=SC()(e,"Version");return Object.keys(n).map((e=>{const r=n[e].filter((e=>{let{Tenants:t}=e;return Boolean(t)})),i=SC()(r,"Tenants"),o=Object.keys(i).map((e=>({title:e,nodes:i[e]}))).sort(CC);return o.length?{title:e,items:o,versionColor:null===t||void 0===t?void 0:t.get((0,Ll.H)(e))}:null})).filter((e=>Boolean(e)))}{const n=e.filter((e=>{let{Tenants:t}=e;return Boolean(t)})),r=SC()(n,"Tenants");return Object.keys(r).map((e=>{const n=Fl(r[e],t),i=SC()(r[e],"Version"),o=Object.keys(i).map((e=>({title:e,nodes:i[e],versionColor:null===t||void 0===t?void 0:t.get((0,Ll.H)(e))})));return o.length?{title:e,items:o,versionsValues:n}:null})).filter((e=>Boolean(e))).sort(CC)}}})(n,t,i),d=((e,t)=>{if(!e||!e.length)return;const n=e.filter((e=>{let{Roles:t}=e;return null===t||void 0===t?void 0:t.includes("Storage")})),r=SC()(n,"Version");return Object.keys(r).map((e=>({title:e,nodes:r[e],versionColor:null===t||void 0===t?void 0:t.get((0,Ll.H)(e))})))})(n,t),h=((e,t)=>{if(!e||!e.length)return;const n=e.filter((e=>{let{Roles:t}=e;return!t})),r=SC()(n,"Version");return Object.keys(r).map((e=>({title:e,nodes:r[e],versionColor:null===t||void 0===t?void 0:t.get((0,Ll.H)(e))})))})(n,t),p=null!==d&&void 0!==d&&d.length?(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)("h3",{children:"Storage nodes"}),d.map((e=>{let{title:t,nodes:n,items:r,versionColor:i}=e;return(0,Le.jsx)(xC,{title:t,nodes:n,items:r,versionColor:i},"storage-nodes-".concat(t))}))]}):null,f=null!==u&&void 0!==u&&u.length?(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)("h3",{children:"Database nodes"}),(0,Le.jsxs)("div",{className:EC("controls"),children:[(0,Le.jsxs)("div",{className:EC("group"),children:[(0,Le.jsx)("span",{className:EC("label"),children:"Group by:"}),(0,Le.jsxs)(Oo,{value:i,onUpdate:c,children:[(0,Le.jsx)(Oo.Option,{value:_C.TENANT,children:_C.TENANT}),(0,Le.jsx)(Oo.Option,{value:_C.VERSION,children:_C.VERSION})]})]}),(0,Le.jsx)(T_,{className:EC("checkbox"),onChange:()=>l((e=>!e)),checked:s,children:"All expanded"})]}),u.map((e=>{let{title:t,nodes:n,items:r,versionColor:i,versionsValues:o}=e;return(0,Le.jsx)(xC,{title:t,nodes:n,items:r,expanded:s,versionColor:i,versionsValues:o},"tenant-nodes-".concat(t))}))]}):null,m=null!==h&&void 0!==h&&h.length?(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)("h3",{children:"Other nodes"}),h.map((e=>{let{title:t,nodes:n,items:r,versionColor:i,versionsValues:o}=e;return(0,Le.jsx)(xC,{title:t,nodes:n,items:r,versionColor:i,versionsValues:o},"other-nodes-".concat(t))}))]}):null;return(0,Le.jsxs)("div",{className:EC("versions"),children:[p,f,m]})},OC=Me("ydb-info-viewer-skeleton"),NC=()=>(0,Le.jsxs)("div",{className:OC("label"),children:[(0,Le.jsx)(rl,{className:OC("label__text")}),(0,Le.jsx)("div",{className:OC("label__dots")})]}),kC=e=>{let{rows:t=8,className:n}=e;return(0,Le.jsx)("div",{className:OC(null,n),children:[...new Array(t)].map(((e,t)=>(0,Le.jsxs)("div",{className:OC("row"),children:[(0,Le.jsx)(NC,{}),(0,Le.jsx)(rl,{className:OC("value")})]},"skeleton-row-".concat(t))))})},jC=Me("ydb-link-with-icon"),IC=e=>{let{title:t,url:n,external:r=!0}=e;const i=(0,Le.jsxs)(a.Fragment,{children:[t,"\xa0",(0,Le.jsx)(pu,{})]});return r?(0,Le.jsx)(si,{href:n,target:"_blank",className:jC(),children:i}):(0,Le.jsx)(_l,{to:n,className:jC(),children:i})},PC=Me("tablet-icon"),DC=e=>{let{text:t,className:n}=e;return(0,Le.jsx)("div",{className:PC(null,n),children:(0,Le.jsx)("div",{className:PC("type"),children:t||"T"})})},AC=Me("tablet"),RC=e=>{var t;let{tablet:n={},tenantName:r}=e;const{TabletId:i,NodeId:o,Type:a}=n,s=null===(t=n.Overall)||void 0===t?void 0:t.toLowerCase(),l=i&&(0,Ta.ax)(Ta.ZP.tablet,{id:i},{nodeId:o,tenantName:r,type:a});return(0,Le.jsx)(Su,{className:AC("wrapper"),content:(0,Le.jsx)(Is,{data:n,className:AC("popup-content")}),children:(0,Le.jsx)(_l,{to:l,children:(0,Le.jsx)(DC,{className:AC({status:s}),text:(0,Lo.qV)(n.Type)})})})},MC=Me("tag"),LC=e=>{let{text:t,type:n}=e;return(0,Le.jsx)("div",{className:MC({type:n}),children:t})},FC=Me("tags"),zC=e=>{let{tags:t,tagsType:n,className:r=""}=e;return(0,Le.jsx)("div",{className:FC(null,r),children:t&&t.map(((e,t)=>(0,Le.jsx)(LC,{text:e,type:n},t)))})};var BC=n(81854);const UC=Me("ydb-cluster-versions-bar"),HC=e=>{let{versionsValues:t=[]}=e;return(0,Le.jsxs)("div",{className:UC(),children:[(0,Le.jsx)(gC,{value:100,stack:t,size:"s"}),(0,Le.jsx)("div",{className:UC("versions"),children:t.map(((e,n)=>(0,Le.jsx)("div",{className:UC("version-title"),style:{color:e.color},title:e.version,children:"".concat(e.version).concat(n===t.length-1?"":",")},e.version)))})]})},VC=JSON.parse('{"disk-type":"Disk Type","erasure":"Erasure","allocated":"Allocated","available":"Available","usage":"Usage","dc":"DC","tablets":"Tablets","databases":"Databases","nodes":"Nodes","load":"Load","storage-size":"Storage size","storage-groups":"Storage groups, {{diskType}}","links":"Links","versions":"Versions"}'),GC=JSON.parse('{"disk-type":"\u0422\u0438\u043f \u0434\u0438\u0441\u043a\u0430","erasure":"\u0420\u0435\u0436\u0438\u043c","allocated":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e","available":"\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e","usage":"\u041f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435","dc":"\u0414\u0426","tablets":"\u0422\u0430\u0431\u043b\u0435\u0442\u043a\u0438","databases":"\u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445","nodes":"\u0423\u0437\u043b\u044b","load":"\u041d\u0430\u0433\u0440\u0443\u0437\u043a\u0430","storage-size":"\u0420\u0430\u0437\u043c\u0435\u0440 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430","storage-groups":"\u0413\u0440\u0443\u043f\u043f\u044b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, {{diskType}}","links":"\u0421\u0441\u044b\u043b\u043a\u0438","versions":"\u0412\u0435\u0440\u0441\u0438\u0438"}'),WC=(0,We.wZ)("ydb-cluster",{ru:GC,en:VC}),qC=(e,t)=>e.Type===Pu.F.TxAllocator?1:t.Type===Pu.F.TxAllocator?-1:0,ZC=Me("cluster-info"),YC=e=>{let{stats:t}=e;const{diskType:n,erasure:r,allocatedSize:i,availableSize:o}=t,a=(0,BC.dT)(Math.max(i,o),2),s=(0,BC.td)({value:i,size:a}),l=(0,BC.td)({value:o,size:a}),c=Math.round(i/(i+o)*100),u=[{label:WC("disk-type"),value:n},{label:WC("erasure"),value:r},{label:WC("allocated"),value:s},{label:WC("available"),value:l},{label:WC("usage"),value:c+"%"}];return(0,Le.jsx)(Ss,{dots:!0,info:u,className:ZC("groups-stats-popup-content"),size:"s"})},KC=e=>{let{stats:t}=e;return(0,Le.jsx)("div",{className:ZC("storage-groups-stats"),children:Object.values(t).map((e=>(0,Le.jsx)(Su,{placement:["right"],content:(0,Le.jsx)(YC,{stats:e}),children:(0,Le.jsx)(Iu,{className:ZC("groups-stats-bar"),value:e.createdGroups,capacity:e.totalGroups})},e.erasure)))})},QC=(e,t,n,r,i)=>{const o=[];if(e.DataCenters&&o.push({label:WC("dc"),value:(0,Le.jsx)(zC,{tags:e.DataCenters})}),e.SystemTablets){const t=e.SystemTablets.slice(0).sort(qC);o.push({label:WC("tablets"),value:(0,Le.jsx)("div",{className:ZC("system-tablets"),children:t.map(((e,t)=>(0,Le.jsx)(RC,{tablet:e},t)))})})}return e.Tenants&&o.push({label:WC("databases"),value:e.Tenants}),o.push({label:WC("nodes"),value:(0,Le.jsx)(Iu,{value:null===e||void 0===e?void 0:e.NodesAlive,capacity:null===e||void 0===e?void 0:e.NodesTotal})},{label:WC("load"),value:(0,Le.jsx)(Iu,{value:null===e||void 0===e?void 0:e.LoadAverage,capacity:null===e||void 0===e?void 0:e.NumberOfCpus})},{label:WC("storage-size"),value:(0,Le.jsx)(Iu,{value:null===e||void 0===e?void 0:e.StorageUsed,capacity:null===e||void 0===e?void 0:e.StorageTotal,formatValues:ks.QO})}),Object.keys(n).length&&o.push(...(e=>Object.keys(e).map((t=>({label:WC("storage-groups",{diskType:t}),value:(0,Le.jsx)(KC,{stats:e[t]})}))))(n)),o.push(...r,{label:WC("links"),value:(0,Le.jsx)("div",{className:ZC("links"),children:i.map((e=>{let{title:t,url:n}=e;return(0,Le.jsx)(IC,{title:t,url:n},t)}))})},{label:WC("versions"),value:(0,Le.jsx)(HC,{versionsValues:t})}),o},XC=e=>{let{cluster:t={},versionsValues:n=[],groupsStats:r={},loading:i,error:o,additionalClusterProps:a={}}=e;const s=Do((e=>e.singleClusterMode));let l=h_.y3+"/internal";s&&!h_.j4&&(l="/internal");const{info:c=[],links:u=[]}=a,d=QC(t,n,r,c,[{title:Lo.Ah,url:l},...u]);return(0,Le.jsx)("div",{className:ZC(),children:(0,Le.jsx)("div",{className:ZC("info"),children:i?(0,Le.jsx)(kC,{className:ZC("skeleton"),rows:9}):o?(0,Le.jsx)(zc,{error:o,className:ZC("error")}):(0,Le.jsx)(Ss,{dots:!0,info:d})})})};var $C=n(81003);const JC=Me("cluster");const eE=function(e){var t,n;let{additionalClusterProps:r,additionalTenantsProps:i,additionalNodesProps:o,additionalVersionsProps:s}=e;const l=a.useRef(null),c=Ao(),u=function(){const e=Ao(),t=Do((e=>e.cluster.defaultClusterTab)),n=Ea(Ta.ZP.cluster),{activeTab:r}=(null===n||void 0===n?void 0:n.params)||{};let i;i=(0,$C.V2)(r)?r:t;return a.useEffect((()=>{i!==t&&e((0,Pl.LQ)(i))}),[i,t,e]),i}(),d=Ca(),h=ol().parse(d.search,{ignoreQueryPrefix:!0}),{clusterName:p,backend:f}=h,{data:{clusterData:m={},groupsStats:g}={},isLoading:v,error:y}=Pl.UM.useGetClusterInfoQuery(p?String(p):void 0,{pollingInterval:Lo.ME}),b=y&&"object"===typeof y?y:void 0,{data:x=[],isLoading:w}=Al.useGetClusterNodesQuery(void 0),S=v||w,{Name:_}=m;a.useEffect((()=>{c((0,Rl.J)("cluster",{}))}),[c,_]);const C=a.useMemo((()=>null!==s&&void 0!==s&&s.getVersionToColorMap?null===s||void 0===s?void 0:s.getVersionToColorMap():(0,Ml.ZP)(null===m||void 0===m?void 0:m.Versions)),[s,m]),E=a.useMemo((()=>Fl(x,C)),[x,C]),T=null!==(t=null!==(n=null===m||void 0===m?void 0:m.Name)&&void 0!==n?n:p)&&void 0!==t?t:Lo.DO,O=a.useMemo((()=>$C._Y.find((e=>{let{id:t}=e;return t===u}))),[u]);return(0,Le.jsxs)("div",{className:JC(),ref:l,children:[(0,Le.jsx)(oe,{defaultTitle:"".concat(T," \u2014 YDB Monitoring"),titleTemplate:"%s \u2014 ".concat(T," \u2014 YDB Monitoring"),children:O?(0,Le.jsx)("title",{children:O.title}):null}),(0,Le.jsx)("div",{className:JC("header"),children:(()=>{var e;return S?(0,Le.jsx)(rl,{className:JC("title-skeleton")}):(0,Le.jsx)(Il,{size:"m",status:null===m||void 0===m?void 0:m.Overall,name:null!==(e=null===m||void 0===m?void 0:m.Name)&&void 0!==e?e:Lo.DO,className:JC("title")})})()}),(0,Le.jsx)("div",{className:JC("tabs"),children:(0,Le.jsx)(wt,{size:"l",allowNotSelected:!0,activeTab:u,items:$C._Y,wrapTo:(e,t)=>{let{id:n}=e;const r=(0,$C.B7)(n,{clusterName:p,backend:f});return(0,Le.jsx)(_l,{to:r,onClick:()=>{c((0,Pl.LQ)(n))},children:t},n)}})}),(0,Le.jsx)("div",{children:(0,Le.jsxs)(wa,{children:[(0,Le.jsx)(ma,{path:(0,Ta.Fz)((0,$C.B7)($C.xu.overview)).pathname,children:(0,Le.jsx)(XC,{cluster:m,groupsStats:g,versionsValues:E,loading:S,error:b,additionalClusterProps:r})}),(0,Le.jsx)(ma,{path:(0,Ta.Fz)((0,$C.B7)($C.xu.tenants)).pathname,children:(0,Le.jsx)(S_,{additionalTenantsProps:i})}),(0,Le.jsx)(ma,{path:(0,Ta.Fz)((0,$C.B7)($C.xu.nodes)).pathname,children:(0,Le.jsx)(rh,{parentContainer:l.current,additionalNodesProps:o})}),(0,Le.jsx)(ma,{path:(0,Ta.Fz)((0,$C.B7)($C.xu.storage)).pathname,children:(0,Le.jsx)(d_,{parentContainer:l.current,additionalNodesProps:o})}),(0,Le.jsx)(ma,{path:(0,Ta.Fz)((0,$C.B7)($C.xu.versions)).pathname,children:(0,Le.jsx)(TC,{versionToColor:C})}),(0,Le.jsx)(ua,{to:(0,Ta.Fz)((0,$C.B7)(u))})]})})]})},tE=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("g",{clipPath:"url(#a)"},a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M7.199 2H8.8a.2.2 0 0 1 .2.2c0 1.808 1.958 2.939 3.524 2.034a.199.199 0 0 1 .271.073l.802 1.388a.199.199 0 0 1-.073.272c-1.566.904-1.566 3.164 0 4.069a.199.199 0 0 1 .073.271l-.802 1.388a.199.199 0 0 1-.271.073C10.958 10.863 9 11.993 9 13.8a.2.2 0 0 1-.199.2H7.2a.199.199 0 0 1-.2-.2c0-1.808-1.958-2.938-3.524-2.034a.199.199 0 0 1-.272-.073l-.8-1.388a.199.199 0 0 1 .072-.271c1.566-.905 1.566-3.165 0-4.07a.199.199 0 0 1-.073-.271l.801-1.388a.199.199 0 0 1 .272-.073C5.042 5.138 7 4.007 7 2.2c0-.11.089-.199.199-.199ZM5.5 2.2c0-.94.76-1.7 1.699-1.7H8.8c.94 0 1.7.76 1.7 1.7a.85.85 0 0 0 1.274.735 1.699 1.699 0 0 1 2.32.622l.802 1.388c.469.813.19 1.851-.622 2.32a.85.85 0 0 0 0 1.472 1.7 1.7 0 0 1 .622 2.32l-.802 1.388a1.699 1.699 0 0 1-2.32.622.85.85 0 0 0-1.274.735c0 .939-.76 1.7-1.699 1.7H7.2a1.7 1.7 0 0 1-1.699-1.7.85.85 0 0 0-1.274-.735 1.698 1.698 0 0 1-2.32-.622l-.802-1.388a1.699 1.699 0 0 1 .622-2.32.85.85 0 0 0 0-1.471 1.699 1.699 0 0 1-.622-2.321l.801-1.388a1.699 1.699 0 0 1 2.32-.622A.85.85 0 0 0 5.5 2.2Zm4 5.8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z",clipRule:"evenodd"})),a.createElement("defs",null,a.createElement("clipPath",{id:"a"},a.createElement("path",{fill:"currentColor",d:"M0 0h16v16H0z"})))),nE=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M10.5 6V5a2.5 2.5 0 0 0-5 0v1h5ZM4 5v1a3 3 0 0 0-3 3v3a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V9a3 3 0 0 0-3-3V5a4 4 0 0 0-8 0Zm6.5 2.5H12A1.5 1.5 0 0 1 13.5 9v3a1.5 1.5 0 0 1-1.5 1.5H4A1.5 1.5 0 0 1 2.5 12V9A1.5 1.5 0 0 1 4 7.5h6.5Zm-1.75 2a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0v-2Z",clipRule:"evenodd"})),rE=e=>null!==e&&"object"===typeof e&&"data"in e,iE=e=>{let{item:t,groupedId:n,getItemId:r}=e,i=n;return"function"===typeof r?i=r(rE(t)?t.data:t):t&&"object"===typeof t&&"id"in t&&t.id&&(i=t.id),i},oE="data-list-item",aE={s:[22,44],m:[26,44],l:[34,52],xl:[44,62]},sE=(e,t)=>t?"".concat(t).concat("-").concat(e):"".concat(e),lE=e=>e.split("-");function cE(e){let{items:t,expandedById:n,getItemId:r}=e;const i=a.useMemo((()=>function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;const r=(e,i,o,a)=>{const s=sE(o,a),l=iE({groupedId:s,item:i,getItemId:n});return e.push(l),rE(i)&&i.children&&(l in t&&!t[l]||e.push(...i.children.reduce(((e,t,n)=>r(e,t,n,l)),[]))),e},i=e.reduce(((e,t,n)=>r(e,t,n)),[]),o={};for(const[a,s]of i.entries())o[s]=a;return{visibleFlattenIds:i,idToFlattenIndex:o}}(t,n,r)),[t,n,r]);return i}function uE(e,t){const n={itemsById:{},groupsState:{},itemsState:{},initialState:{disabledById:{},selectedById:{},expandedById:{}}},r=e=>{let{item:i,index:o,parentGroupedId:a,parentId:s}=e;const l=sE(o,a),c=iE({groupedId:l,item:i,getItemId:t});s&&n.groupsState[s].childrenIds.push(c),n.itemsById[c]=i.data,n.itemsState[c]||(n.itemsState[c]={indentation:0}),"undefined"!==typeof s&&(n.itemsState[c].parentId=s),"undefined"!==typeof i.selected&&(n.initialState.selectedById[c]=i.selected),"undefined"!==typeof i.disabled&&(n.initialState.disabledById[c]=i.disabled),l&&(n.itemsState[c].indentation=lE(l).length-1),i.children&&(n.groupsState[c]={childrenIds:[]},"undefined"!==typeof i.expanded&&(n.initialState.expandedById[c]=i.expanded),i.children.forEach(((e,t)=>{r({item:e,index:t,parentGroupedId:l,parentId:c})})))};return e.forEach(((e,i)=>rE(e)?r({item:e,index:i}):(e=>{let{item:r,index:i}=e;const o=iE({groupedId:String(i),item:r,getItemId:t});n.itemsById[o]=r,n.itemsState[o]||(n.itemsState[o]={indentation:0}),r&&"object"===typeof r&&("selected"in r&&"boolean"===typeof r.selected&&(n.initialState.selectedById[o]=r.selected),"disabled"in r&&"boolean"===typeof r.disabled&&(n.initialState.disabledById[o]=r.disabled))})({item:e,index:i}))),n}const dE=e=>{let{items:t,expandedById:n,getItemId:r}=e;const{itemsById:i,groupsState:o,itemsState:s,initialState:l}=function(e){let{items:t,getItemId:n}=e;return a.useMemo((()=>uE(t,n)),[n,t])}({items:t,getItemId:r}),{visibleFlattenIds:c,idToFlattenIndex:u}=cE({items:t,expandedById:n||l.expandedById,getItemId:r});return{items:t,visibleFlattenIds:c,idToFlattenIndex:u,itemsById:i,groupsState:o,itemsState:s,initialState:l}},hE=e=>{let{list:t,index:n,step:r,disabledItems:i={}}=e;const o=t.length;let a=(n+o)%o;for(let s=0;s<o;s+=1){if(t[a]&&!i[a])return a;a=(a+o+r)%o}},pE=(e,t)=>{var n;if(document){const r=(t||document).querySelector("[".concat(oE,'="').concat(e,'"]'));r&&(null===(n=r.scrollIntoView)||void 0===n||n.call(r,{block:"nearest"}))}},fE=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M13.03 10.53a.75.75 0 0 1-1.06 0L8 6.56l-3.97 3.97a.75.75 0 1 1-1.06-1.06l4.5-4.5a.75.75 0 0 1 1.06 0l4.5 4.5a.75.75 0 0 1 0 1.06Z",clipRule:"evenodd"}));var mE=n(39137),gE=n(95216);const vE=(0,le.Ge)("list-item-view"),yE=e=>{var{children:t,indentation:n=1,className:r}=e,i=(0,nt._T)(e,["children","indentation","className"]);return a.createElement(Ai.k,Object.assign({width:16*n,className:vE("slot",r)},i),t)},bE=a.forwardRef(((e,t)=>{var{id:n,as:r="div",size:i="m",active:o,selected:s,disabled:l,activeOnHover:c,className:u,hasSelectionIcon:d=!0,indentation:h,startSlot:p,subtitle:f,endSlot:m,title:g,height:v,expanded:y,dragging:b,style:x,role:w="option",onClick:S}=e,_=(0,nt._T)(e,["id","as","size","active","selected","disabled","activeOnHover","className","hasSelectionIcon","indentation","startSlot","subtitle","endSlot","title","height","expanded","dragging","style","role","onClick"]);const C="boolean"===typeof y,E=l?void 0:S,T="boolean"===typeof c?c:Boolean(E);return a.createElement(Ai.k,Object.assign({[oE]:n,role:w,"aria-selected":s,onClick:E,className:vE({active:b||o,selected:s&&!d,activeOnHover:T,radius:i,dragging:b,clickable:Boolean(E)},(0,gE.W)({px:2},u)),style:Object.assign({minHeight:null!==v&&void 0!==v?v:aE[i][Number(Boolean(f))]},x),as:r,ref:t,alignItems:"center",gap:"4",justifyContent:"space-between"},_),a.createElement(Ai.k,{gap:"2",alignItems:"center",grow:!0},d&&a.createElement(yE,null,s?a.createElement(we.J,{data:Dx,size:16,className:(0,mE.V)({color:"info"})}):null),(e=>e&&e>=1?a.createElement(yE,{indentation:Math.floor(e)}):null)(h),C?a.createElement(we.J,{className:vE("icon",(0,mE.V)({color:l?"hint":void 0})),data:y?xe:fE,size:16}):null,p,a.createElement("div",{className:vE("main-content")},"string"===typeof g?a.createElement(Fi.x,{ellipsis:!0,color:l?"hint":void 0,variant:C?"subheader-1":void 0},g):g,"string"===typeof f?a.createElement(Fi.x,{ellipsis:!0,color:l?"hint":"secondary"},f):f)),m)}));bE.displayName="ListItemView";const xE=(0,le.Ge)("list-container-view"),wE=a.forwardRef((function(e,t){let{as:n="div",role:r="listbox",children:i,id:o,className:s,fixedHeight:l,extraProps:c,qa:u}=e;return a.createElement(Ai.k,Object.assign({"data-qa":u,as:n,direction:"column",ref:t,grow:!0,tabIndex:-1,id:o,role:r,className:xE({"fixed-height":l},s)},c),i)})),SE=(0,le.Ge)("list-recursive-renderer");function _E(e){var{itemSchema:t,index:n,parentId:r}=e,i=(0,nt._T)(e,["itemSchema","index","parentId"]);const o=sE(n,r),s=iE({item:t,groupedId:o,getItemId:i.getItemId}),l=i.children(s,i.idToFlattenIndex[s]);if(rE(t)&&t.children){const e=!i.expandedById||!(s in i.expandedById)||i.expandedById[s];return a.createElement("ul",{style:i.style,className:SE(null,i.className),role:"group"},l,e&&t.children.map(((e,t)=>a.createElement(_E,Object.assign({itemSchema:e,key:t,index:t,parentId:o},i)))))}return l}const CE=e=>{let{qa:t,items:n,id:r,containerRef:i,expandedById:o,renderItem:s,className:l,idToFlattenIndex:c,getItemId:u}=e;return a.createElement(wE,{ref:i,className:l,id:r,qa:t},n.map(((e,t)=>a.createElement(_E,{key:t,idToFlattenIndex:c,itemSchema:e,index:t,expandedById:o,getItemId:u},s))))},EE=(0,le.Ge)("tree-list"),TE=e=>{let{qa:t,id:n,size:r="m",items:i,className:o,expandedById:s,disabledById:l,selectedById:c,activeItemId:u,defaultGroupsExpanded:d=!0,getItemId:h,renderItem:p,renderContainer:f=CE,onItemClick:m,multiple:g,setActiveItemId:v,containerRef:y,mapItemDataToProps:b}=e;const x=ue(),w=null!==n&&void 0!==n?n:x,S=a.useRef(null),_=null!==y&&void 0!==y?y:S,C=dE({items:i,getItemId:h,expandedById:s,disabledById:l,selectedById:c,activeItemId:u}),E=s||C.initialState.expandedById,T=l||C.initialState.disabledById,O=c||C.initialState.selectedById,N=a.useMemo((()=>{if(m)return e=>{null===m||void 0===m||m({id:e,index:C.idToFlattenIndex[e],data:C.itemsById[e],expanded:E&&e in E?E[e]:e in C.initialState.expandedById?C.initialState.expandedById[e]:d,disabled:T?Boolean(T[e]):Boolean(C.initialState.disabledById[e]),selected:O?Boolean(O[e]):Boolean(C.initialState.selectedById[e]),context:{isLastItem:C.visibleFlattenIds[C.visibleFlattenIds.length-1]===e,groupState:C.groupsState[e],itemState:C.itemsState[e]}})}}),[d,T,E,O,C,m]);(e=>{let{visibleFlattenIds:t,onItemClick:n,containerRef:r,disabledById:i={},activeItemId:o,setActiveItemId:s,enabled:l}=e;const c=a.useCallback((function(e){let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];"number"===typeof e&&t[e]&&(n&&pE(t[e],null===r||void 0===r?void 0:r.current),null===s||void 0===s||s(t[e]))}),[r,t,s]),u=a.useCallback((function(e,n){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;e.preventDefault();const a=t.findIndex((e=>e===o)),s=hE({list:t,index:(a>-1?a:r)+n,step:Math.sign(n),disabledItems:i});c(s)}),[c,o,i,t]);a.useLayoutEffect((()=>{const e=null===r||void 0===r?void 0:r.current;if(l||!e)return;const t=e=>{switch(e.key){case Zr.V.ARROW_DOWN:u(e,1,-1);break;case Zr.V.ARROW_UP:u(e,-1);break;case Zr.V.SPACEBAR:case Zr.V.ENTER:o&&!i[o]&&(e.preventDefault(),null===n||void 0===n||n(o))}};return e.addEventListener("keydown",t),()=>{e.removeEventListener("keydown",t)}}),[o,r,i,l,u,n])})(Object.assign(Object.assign({containerRef:_,onItemClick:N},C),{activeItemId:u,disabledById:T,setActiveItemId:v}));return f(Object.assign(Object.assign({qa:t,id:"list-".concat(w),size:r,containerRef:_,className:EE(null,o)},C),{expandedById:E,disabledById:T,activeItemId:u,selectedById:O,renderItem:(e,n,i)=>{const o=(e=>{let{qa:t,itemsById:n,disabledById:r,expandedById:i,groupsState:o,onItemClick:a,mapItemDataToProps:s,visibleFlattenIds:l,size:c="m",itemsState:u,selectedById:d,activeItemId:h,multiple:p=!1,defaultExpanded:f=!0,id:m}=e;var g;const v={itemState:u[m],groupState:o[m],isLastItem:m===l[l.length-1]};let y,b;o[m]&&i&&(y=null!==(g=i[m])&&void 0!==g?g:f),d&&(b=Boolean(d[m]));const x=Object.assign({id:m,size:c,expanded:y,active:m===h,indentation:v.itemState.indentation,disabled:Boolean(null===r||void 0===r?void 0:r[m]),selected:b,hasSelectionIcon:Boolean(p)&&!v.groupState,onClick:a?()=>a(m):void 0},s(n[m]));return t&&(x.qa=((e,t)=>"".concat(e,"-").concat(t))(t,m)),{data:n[m],props:x,context:v}})(Object.assign(Object.assign({qa:t,id:e,size:r,multiple:g,mapItemDataToProps:b,onItemClick:N},C),{expandedById:E,disabledById:T,activeItemId:u,selectedById:O,defaultExpanded:d}));return p?p({data:o.data,props:o.props,context:o.context,index:n,renderContainerProps:i}):a.createElement(bE,Object.assign({},o.props,i))},getItemId:h}))};function OE(e,t){const[n,r]=a.useState(e||t);return[e||n,r]}const NE=(0,le.Ge)("tree-select"),kE=e=>a.createElement(bE,Object.assign({},e.props,e.renderContainerProps)),jE=a.forwardRef((function(e,t){let{id:n,qa:r,placement:i,slotBeforeListBody:o,slotAfterListBody:s,size:l,items:c,defaultOpen:u,width:d,containerRef:h,className:p,containerClassName:f,popupClassName:m,open:g,multiple:v,popupWidth:y,expandedById:b,disabledById:x,activeItemId:w,defaultValue:S,popupDisablePortal:_,groupsBehavior:C="expandable",value:E,defaultGroupsExpanded:T,onClose:O,onUpdate:N,getItemId:k,onOpenChange:j,renderControl:I,renderItem:P=kE,renderContainer:D,onItemClick:A,setActiveItemId:R,mapItemDataToProps:M,title:L}=e;const F=(0,Kh.X)(),z=ue(),B=null!==n&&void 0!==n?n:z,U=a.useRef(null),H=a.useRef(null),V=a.useRef(null),G=null!==h&&void 0!==h?h:V,W=Et(t,H),{value:q,setInnerValue:Z,selected:Y}=(e=>{let{defaultValue:t,value:n}=e;const[r,i]=a.useState(t||[]),o=n||r,s=!n;return{selected:a.useMemo((()=>o.reduce(((e,t)=>(e[t]=!0,e)),{})),[o]),value:o,setInnerValue:s?i:void 0}})({value:E,defaultValue:S}),K=function(){let{initialValues:e,controlledValues:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const[n,r]=OE(null===t||void 0===t?void 0:t.disabledById,(null===e||void 0===e?void 0:e.disabledById)||{}),[i,o]=OE(null===t||void 0===t?void 0:t.selectedById,(null===e||void 0===e?void 0:e.selectedById)||{}),[a,s]=OE(null===t||void 0===t?void 0:t.expandedById,(null===e||void 0===e?void 0:e.expandedById)||{}),[l,c]=OE(null===t||void 0===t?void 0:t.activeItemId,null===e||void 0===e?void 0:e.activeItemId);return{disabledById:n,setDisabled:r,selectedById:i,setSelected:o,expandedById:a,setExpanded:s,activeItemId:l,setActiveItemId:c}}({controlledValues:{expandedById:b,disabledById:x,activeItemId:w,selectedById:Y}}),Q=null!==R&&void 0!==R?R:K.setActiveItemId,X=dE(Object.assign({items:c,getItemId:k},K)),$=a.useCallback((e=>null===N||void 0===N?void 0:N(e,e.map((e=>X.itemsById[e])))),[X.itemsById,N]),{open:J,toggleOpen:ee,handleClearValue:te,handleMultipleSelection:ne,handleSingleSelection:re}=(e=>{let{value:t,setInnerValue:n,defaultOpen:r,onClose:i,onOpenChange:o,open:s,onUpdate:l}=e;const{toggleOpen:c,open:u}=qh({defaultOpen:r,onClose:i,onOpenChange:o,open:s}),d=a.useCallback((e=>{if(!t.includes(e)){const t=[e];null===l||void 0===l||l(t),null===n||void 0===n||n(t)}c(!1)}),[t,c,l,n]),h=a.useCallback((e=>{const r=t.includes(e)?t.filter((t=>t!==e)):[...t,e];null===l||void 0===l||l(r),null===n||void 0===n||n(r)}),[t,l,n]),p=a.useCallback((()=>{null===l||void 0===l||l([]),null===n||void 0===n||n([])}),[l,n]);return{open:u,toggleOpen:c,handleSingleSelection:d,handleMultipleSelection:h,handleClearValue:p}})({setInnerValue:Z,value:q,onUpdate:$,defaultOpen:u,open:g,onClose:O,onOpenChange:j}),ie=a.useCallback((e=>{const{groupState:t}=e.context,n=()=>{K.disabledById[e.id]||(Q(e.id),t&&"expandable"===C?K.setExpanded((t=>Object.assign(Object.assign({},t),{[e.id]:!e.expanded}))):v?ne(e.id):(re(e.id),ee(!1)))};return A?A(e,n):n()}),[A,K,Q,C,v,ne,re,ee]);a.useLayoutEffect((()=>{var e;if(J){const t=q[q.length-1];null===(e=G.current)||void 0===e||e.focus(),Q(t),t&&pE(t,G.current)}}),[J]);const oe=a.useCallback((()=>ee(!1)),[ee]),ae={open:J,toggleOpen:ee,clearValue:te,ref:W,size:l,value:q,id:B,activeItemId:K.activeItemId,title:L},se=I?I(ae):a.createElement(Qx,Object.assign({},ae,{selectedOptionsContent:a.Children.toArray(q.map((e=>M(X.itemsById[e]).title))).join(", "),view:"normal",pin:"round-round",popupId:"tree-select-popup-".concat(B),selectId:"tree-select-".concat(B)})),le=Object.assign({},"max"===d&&{width:d}),ce={};return"number"===typeof d&&(ce.width=d),a.createElement(Ai.k,{direction:"column",gap:"5",ref:U,className:NE(le,p),style:ce},se,a.createElement(pw,{ref:U,className:NE("popup",{size:l},m),controlRef:H,width:y,placement:i,open:J,handleClose:oe,disablePortal:_,mobile:F,id:"tree-select-popup-".concat(B)},o,a.createElement(TE,{size:l,className:NE("list",f),qa:r,multiple:v,id:"list-".concat(B),containerRef:G,getItemId:k,disabledById:K.disabledById,selectedById:K.selectedById,expandedById:K.expandedById,activeItemId:K.activeItemId,setActiveItemId:Q,onItemClick:ie,items:c,defaultGroupsExpanded:T,renderContainer:D,mapItemDataToProps:M,renderItem:null!==P&&void 0!==P?P:kE}),s))})),IE=JSON.parse('{"button_apply":"Apply","button_reset":"Reset","button_switcher":"Columns"}'),PE=JSON.parse('{"button_apply":"\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c","button_reset":"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c","button_switcher":"\u041a\u043e\u043b\u043e\u043d\u043a\u0438"}'),DE=(0,mi.e)({en:IE,ru:PE},"TableColumnSetupInner"),AE=(0,le.Ge)("inner-table-column-setup"),RE=AE("controls"),ME={isDragDisabled:!0},LE=e=>({title:e.title}),FE=e=>{const{renderSwitcher:t,popupWidth:n,popupPlacement:r,items:i,onUpdate:o,sortable:s,renderControls:l,className:c,defaultItems:u=i,showResetButton:d}=e,[h,p]=a.useState(!1),[f,m]=a.useState(i),[g,v]=a.useState(i);i!==g&&(v(i),m(i));const y=()=>{const e=f.map((e=>{let{id:t,isSelected:n}=e;return{id:t,isSelected:n}}));o(e),p(!1)},b=()=>a.createElement(Ie.z,{view:"action",width:"max",onClick:y},DE("button_apply")),x="function"===typeof d?d(f):d,w=(e=>{let{onDragEnd:t,renderControls:n}=e;const r=ue();return e=>{let{renderItem:i,visibleFlattenIds:o,itemsById:s,containerRef:l,id:c,className:u}=e;const{stickyStartItemIdList:d,sortableItemIdList:h,stickyEndItemIdList:p}=((e,t)=>{let n=0;for(;n!==t.length;n++){const r=e[t[n]];if("left"!==(null===r||void 0===r?void 0:r.sticky)&&"start"!==(null===r||void 0===r?void 0:r.sticky))break}let r=t.length;for(;0!==r;r--){const n=e[t[r-1]];if("right"!==(null===n||void 0===n?void 0:n.sticky)&&"end"!==(null===n||void 0===n?void 0:n.sticky))break}return{stickyStartItemIdList:t.slice(0,n),sortableItemIdList:t.slice(n,r),stickyEndItemIdList:t.slice(r)}})(s,o),f=d.map(((e,t)=>i(e,t,ME))),m=h.map(((e,t)=>i(e,t+d.length))),g=p.map(((e,t)=>i(e,f.length+m.length+t,ME)));return a.createElement(a.Fragment,null,a.createElement(wE,{ref:l,id:c,className:u},f,a.createElement(Gy,{onDragEnd:t},a.createElement(Pb,{droppableId:r,renderClone:(e,t,n)=>{const r={provided:e,snapshot:t};return i(o[n.source.index],n.source.index,r)}},(e=>a.createElement("div",Object.assign({},e.droppableProps,{ref:e.innerRef}),m,e.placeholder)))),g),a.createElement("div",{className:RE},n()))}})({onDragEnd:e=>{let{destination:t,source:n}=e;void 0!==(null===t||void 0===t?void 0:t.index)&&(null===t||void 0===t?void 0:t.index)!==n.index&&m((e=>((e,t,n)=>{const r=[...e],[i]=r.splice(t,1);return r.splice(n,0,i),r})(e,n.index,t.index)))},renderControls:()=>l?l({DefaultApplyButton:b,onApply:y}):a.createElement(Ai.k,{gapRow:1,direction:"column",className:RE},x&&a.createElement(Ie.z,{onClick:()=>{m(u)},width:"max"},DE("button_reset")),a.createElement(b,null))}),S=(e=>t=>{let{data:n,props:r,index:i,renderContainerProps:o}=t;const s=!1===e||!0===(null===o||void 0===o?void 0:o.isDragDisabled),l=s?void 0:a.createElement(we.J,{data:cx,size:16}),c=!n.isRequired,u=n.isRequired?a.createElement(we.J,{data:nE}):void 0,d=!n.isRequired&&r.selected,h=Object.assign(Object.assign({},r),{selected:d,startSlot:u,hasSelectionIcon:c,endSlot:l});if(s)return a.createElement(bE,Object.assign({},h,{key:h.id}));const p=(e,t)=>a.createElement(bE,Object.assign({},h,e.draggableProps,e.dragHandleProps,{ref:e.innerRef,dragging:t.isDragging}));return(null===o||void 0===o?void 0:o.provided)&&o.snapshot?p(o.provided,o.snapshot):a.createElement(Nb,{draggableId:r.id,index:i,key:"item-key-".concat(r.id),isDragDisabled:s},p)})(s),_=a.useMemo((()=>(e=>{const t=[];return e.forEach((e=>{let{id:n,isSelected:r}=e;r&&t.push(n)})),t})(f)),[f]);return a.createElement(jE,{className:AE(null,c),mapItemDataToProps:LE,multiple:!0,size:"l",open:h,value:_,items:f,onUpdate:e=>{m((t=>t.map((t=>Object.assign(Object.assign({},t),{isSelected:t.isRequired||e.includes(t.id)})))))},popupWidth:n,onOpenChange:e=>{p(e),!1===e&&m(i)},placement:r,renderContainer:w,renderControl:e=>{let{toggleOpen:n}=e;const r=(0,ci.S)(n);return(null===t||void 0===t?void 0:t({onClick:n,onKeyDown:r}))||a.createElement(Ie.z,{onClick:n,extraProps:{onKeyDown:r}},a.createElement(we.J,{data:tE}),DE("button_switcher"))},renderItem:S})},zE=JSON.parse('{"button_switcher":"Columns"}'),BE=JSON.parse('{"button_switcher":"\u041a\u043e\u043b\u043e\u043d\u043a\u0438"}'),UE=(0,mi.e)({en:zE,ru:BE},"TableColumnSetup"),HE=(0,le.Ge)("table-column-setup"),VE=e=>{const{switcher:t,renderSwitcher:n,disabled:r,popupWidth:i,popupPlacement:o,className:s,items:l,sortable:c=!0,showStatus:u,onUpdate:d}=e,h=l.map((e=>{let{id:t,title:n,required:r,selected:i,sticky:o}=e;return{id:t,title:n,isRequired:r,isSelected:i,sticky:o}}));return a.createElement(FE,{items:h,onUpdate:e=>{d(e.map((e=>{let{id:t,isSelected:n}=e;const r=l.find((e=>e.id===t));return{id:t,selected:n,title:null===r||void 0===r?void 0:r.title,required:null===r||void 0===r?void 0:r.required}})))},popupPlacement:o,popupWidth:i,renderSwitcher:e=>(null===n||void 0===n?void 0:n(e))||t||a.createElement(Ie.z,{disabled:r,onClick:e.onClick},a.createElement(we.J,{data:tE}),UE("button_switcher"),(()=>{if(!u)return null;const e=l.reduce(((e,t)=>t.selected?e+1:e),0),t=l.length,n="".concat(e,"/").concat(t);return a.createElement("span",{className:HE("status")},n)})()),sortable:c,className:HE(null,s)})};var GE=n(20163);const WE=e=>e.clusters.clusterName,qE=e=>e.clusters.status,ZE=e=>e.clusters.service,YE=e=>e.clusters.version,KE=(e,t)=>0===t.length||e.status&&t.includes(e.status),QE=(e,t)=>0===t.length||e.service&&t.includes(e.service),XE=(e,t)=>0===t.length||t.some((t=>{var n,r;return null===(n=e.cluster)||void 0===n||null===(r=n.Versions)||void 0===r?void 0:r.some((e=>e.startsWith(t)))})),$E=function(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(!n)return!0;const r=n.toLowerCase(),i=r.split(" "),o=(null===(t=e.title)||void 0===t?void 0:t.toLowerCase().match(/[^\d\s]+|\d+|[^-\s]+|[^_\s]+/g))||[],a=i.every((t=>{const n=m_()(t),r=new RegExp("^".concat(n,"|[\\s\\-_]").concat(n),"i");return e.title&&r.test(e.title)||o.some((e=>e.startsWith(t)))})),s=e.preparedVersions.some((e=>e.version.includes(r))),l=Boolean(e.hosts&&e.hosts[r]);return a||s||l};const JE=JSON.parse('{"controls_status-select-label":"Status:","controls_service-select-label":"Service:","controls_version-select-label":"Version:","controls_search-placeholder":"Cluster name, version, host","controls_select-placeholder":"All","statistics_clusters":"Clusters","statistics_hosts":"Hosts","statistics_tenants":"Tenants","statistics_nodes":"Nodes","statistics_load":"Load","statistics_storage":"Storage","tooltip_no-cluster-data":"No cluster data","page_title":"Clusters"}'),eT=JSON.parse('{"controls_status-select-label":"\u0421\u0442\u0430\u0442\u0443\u0441:","controls_service-select-label":"\u0421\u0435\u0440\u0432\u0438\u0441:","controls_version-select-label":"\u0412\u0435\u0440\u0441\u0438\u044f:","controls_search-placeholder":"\u0418\u043c\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u0432\u0435\u0440\u0441\u0438\u044f \u0438\u043b\u0438 \u0445\u043e\u0441\u0442","controls_select-placeholder":"\u0412\u0441\u0435","statistics_clusters":"\u041a\u043b\u0430\u0441\u0442\u0435\u0440\u044b","statistics_hosts":"\u0425\u043e\u0441\u0442\u044b","statistics_tenants":"\u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445","statistics_nodes":"\u0423\u0437\u043b\u044b","statistics_load":"\u041d\u0430\u0433\u0440\u0443\u0437\u043a\u0430","statistics_storage":"\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435","tooltip_no-cluster-data":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430","page_title":"\u041a\u043b\u0430\u0441\u0442\u0435\u0440\u044b"}'),tT=(0,We.wZ)("ydb-clusters-page",{ru:eT,en:JE}),nT=Me("clusters"),rT=e=>{let{count:t,stats:n}=e;const{NodesTotal:r,NodesAlive:i,Hosts:o,Tenants:a,LoadAverage:s,NumberOfCpus:l,StorageUsed:c,StorageTotal:u}=n;return(0,Le.jsxs)("div",{className:nT("aggregation"),children:[(0,Le.jsxs)("div",{className:nT("aggregation-value-container"),children:[(0,Le.jsx)("span",{className:nT("aggregation-label"),children:tT("statistics_clusters")}),t]}),(0,Le.jsxs)("div",{className:nT("aggregation-value-container"),children:[(0,Le.jsx)("span",{className:nT("aggregation-label"),children:tT("statistics_hosts")}),o]}),(0,Le.jsxs)("div",{className:nT("aggregation-value-container"),children:[(0,Le.jsx)("span",{className:nT("aggregation-label"),children:tT("statistics_tenants")}),a]}),(0,Le.jsxs)("div",{className:nT("aggregation-value-container"),children:[(0,Le.jsx)("span",{className:nT("aggregation-label"),children:tT("statistics_nodes")}),(0,Le.jsx)(Iu,{size:"ns",value:i,capacity:r,colorizeProgress:!0,inverseColorize:!0})]}),(0,Le.jsxs)("div",{className:nT("aggregation-value-container"),children:[(0,Le.jsx)("span",{className:nT("aggregation-label"),children:tT("statistics_load")}),(0,Le.jsx)(Iu,{size:"ns",value:s,capacity:l,colorizeProgress:!0})]}),(0,Le.jsxs)("div",{className:nT("aggregation-value-container"),children:[(0,Le.jsx)("span",{className:nT("aggregation-label"),children:tT("statistics_storage")}),(0,Le.jsx)(Iu,{size:"ns",value:c,capacity:u,formatValues:ks.QO,colorizeProgress:!0})]})]})},iT={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"}}};var oT=n(6381),aT=n.n(oT),sT=n(60619),lT=n.n(sT);const cT=()=>"undefined"!==typeof navigator&&/Mac|iP(hone|[oa]d)/.test(navigator.platform);function uT(e,t){return e.trim().split(t).filter(Boolean)}const dT=/\s/,hT="+";function pT(e,t){return uT(t,dT).map((t=>lT()(uT(t,hT).map(function(e){return function(t){var n;const r=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:r,priority:null!==(n=e.Priority[r])&&void 0!==n?n:0,displayName:e.DisplayName[r]}}}(e)).sort(((e,t)=>t.priority-e.priority)),(e=>e.id)).map(fT)))}function fT(e){var t;return null!==(t=e.displayName)&&void 0!==t?t:aT()(e.id)}const mT=(0,le.Ge)("hotkey"),gT={BetweenGroups:String.fromCharCode(160),BetweenKeys:String.fromCharCode(8239)},vT=a.forwardRef((function(e,t){const{value:n,platform:r,view:i="light",qa:o,style:s,className:l}=e,c=function(e,t){var n;const r=null!==(n=t.platform)&&void 0!==n?n:cT()?"mac":"pc",i=iT[r];return pT(i,e)}(n,{platform:r}),u=[];let d=!1;return c.forEach(((e,t)=>{0!==e.length&&(d?u.push(gT.BetweenGroups):d=!0,e.forEach(((e,n)=>{0===n||u.push(gT.BetweenKeys,a.createElement("span",{key:"".concat(e,"_").concat(t,"_").concat(n,"_plus"),className:mT("plus")},"+"),gT.BetweenKeys),u.push(a.createElement("kbd",{key:"".concat(e,"_").concat(t,"_").concat(n)},e))})))})),0===u.length?null:a.createElement("kbd",{ref:t,style:s,"data-qa":o,className:mT({view:i},l)},u)}));const yT=["bottom","top"],bT=(0,le.Ge)("action-tooltip");function xT(e){const{placement:t=yT,title:n,hotkey:r,children:i,className:o,contentClassName:s,description:l,disabled:c=!1,style:u,qa:d,id:h,disablePortal:p}=e,f=(0,nt._T)(e,["placement","title","hotkey","children","className","contentClassName","description","disabled","style","qa","id","disablePortal"]),[m,g]=a.useState(null),v=sl(m,f),y=a.Children.only(i),b=Et(g,y.ref);return a.createElement(a.Fragment,null,a.cloneElement(y,{ref:b}),m?a.createElement(ti,{id:h,disablePortal:p,role:"tooltip",className:bT(null,o),style:u,open:v&&!c,placement:t,anchorRef:{current:m},disableEscapeKeyDown:!0,disableOutsideClick:!0,disableLayer:!0,qa:d},a.createElement("div",{className:bT("content",s)},a.createElement("div",{className:bT("heading")},a.createElement("div",{className:bT("title")},n),r&&a.createElement(vT,{view:"dark",value:r,className:bT("hotkey")})),l&&a.createElement("div",{className:bT("description")},l))):null)}const wT=JSON.parse('{"startCopy":"Copy","endCopy":"Copied!"}'),ST=JSON.parse('{"startCopy":"\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c","endCopy":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043e!"}'),_T=(0,mi.e)({en:wT,ru:ST},"ClipboardButton"),CT=1e3,ET={xs:12,s:16,m:16,l:16,xl:20},TT=e=>{const{size:t="m",hasTooltip:n=!0,tooltipInitialText:r=_T("startCopy"),tooltipSuccessText:i=_T("endCopy"),status:o,view:s="flat",extraProps:l={}}=e,c=(0,nt._T)(e,["size","hasTooltip","tooltipInitialText","tooltipSuccessText","status","view","extraProps"]);return a.createElement(xT,{disabled:!n,title:"success"===o?i:r},a.createElement(Ie.z,Object.assign({view:s,size:t,extraProps:Object.assign({"aria-label":r},l)},c),a.createElement(Ie.z.Icon,null,a.createElement(at,{size:ET[t],status:o}))))};function OT(e){const{text:t,timeout:n=CT,onCopy:r,options:i}=e,o=(0,nt._T)(e,["text","timeout","onCopy","options"]);return a.createElement(ut,{text:t,timeout:n,onCopy:r,options:i},(e=>a.createElement(TT,Object.assign({},o,{status:e}))))}const NT=Me("kv-user");function kT(e){let{login:t,className:n}=e;const r=Be("StaffCard");return(0,Le.jsx)("div",{className:NT(null,n),children:(0,Le.jsx)(r,{login:t,children:(0,Le.jsx)("div",{className:NT("name"),children:t})})})}const jT=e=>e.replace(/\/viewer\/json/,""),IT=e=>{const t=jT((e=>e.replace(/http[s]?:\/\//,""))(e)),n=t.split("/");if(1===n.length)return{balancer:n[0],proxy:void 0};const r=n[0];return{balancer:t.replace(r+"/",""),proxy:r}},PT=e=>IT(e).balancer.replace(/:\d+$/,""),DT="selectedColumns",AT={TITLE:"title",VERSIONS:"versions",CLUSTER:"cluster",SERVICE:"service",STATUS:"status",NODES:"nodes",LOAD:"load",STORAGE:"storage",HOSTS:"hosts",TENANTS:"tenants",OWNER:"owner",DESCRIPTION:"description",BALANCER:"balancer"},RT=[AT.TITLE,AT.VERSIONS,AT.SERVICE,AT.STATUS,AT.NODES,AT.LOAD,AT.STORAGE,AT.HOSTS,AT.TENANTS,AT.OWNER,AT.BALANCER],MT={[AT.TITLE]:"Cluster",[AT.VERSIONS]:"Versions",[AT.CLUSTER]:"DC",[AT.SERVICE]:"Service",[AT.STATUS]:"Status",[AT.NODES]:"Nodes",[AT.LOAD]:"Load",[AT.STORAGE]:"Storage",[AT.HOSTS]:"Hosts",[AT.TENANTS]:"Tenants",[AT.OWNER]:"Owner",[AT.DESCRIPTION]:"Description",[AT.BALANCER]:"Balancer"},LT="clustersTableColumnsWidth",FT=(0,Le.jsx)("span",{className:nT("empty-cell"),children:"\u2014"}),zT=[{name:AT.TITLE,header:MT[AT.TITLE],width:230,render:e=>{var t,n;let{row:r}=e;const{balancer:i,name:o}=r,a=i&&jT(i),s=(0,$C.B7)(void 0,{backend:a,clusterName:o}),l=null===(t=r.cluster)||void 0===t?void 0:t.Overall;return(0,Le.jsxs)("div",{className:nT("cluster"),children:[l?(0,Le.jsx)(si,{href:s,children:(0,Le.jsx)("div",{className:nT("cluster-status",{type:l&&l.toLowerCase()})})}):(0,Le.jsx)("div",{className:nT("cluster-status"),children:(0,Le.jsx)(Io,{content:(0,Le.jsx)("span",{className:nT("tooltip-content"),children:(null===(n=r.cluster)||void 0===n?void 0:n.error)||tT("tooltip_no-cluster-data")}),offset:{left:0}})}),(0,Le.jsx)("div",{className:nT("cluster-name"),children:(0,Le.jsx)(si,{href:s,children:r.title})})]})},defaultOrder:Hc.ZP.ASCENDING},{name:AT.VERSIONS,header:MT[AT.VERSIONS],width:300,defaultOrder:Hc.ZP.DESCENDING,sortAccessor:e=>{let{preparedVersions:t}=e;return t.map((e=>e.version.replace(/^[0-9]\+\./g,""))).sort(((e,t)=>e.localeCompare(t)))[0]||void 0},render:e=>{let{row:t}=e;const{preparedVersions:n,versions:r=[],balancer:i,name:o}=t;if(!r.length||r.some((e=>!e.version)))return FT;const s=r.reduce(((e,t)=>e+t.count),0),l=r.map((e=>{var t;return{value:e.count/s*100,color:null===(t=n.find((t=>t.version===e.version)))||void 0===t?void 0:t.color}})),c=i&&jT(i);return n.length>0&&(0,Le.jsx)(si,{className:nT("cluster-versions"),href:(0,$C.B7)($C.xu.versions,{backend:c,clusterName:o}),children:(0,Le.jsxs)(a.Fragment,{children:[n.map(((e,t)=>(0,Le.jsx)("div",{className:nT("cluster-version"),style:{color:e.color},title:e.version,children:e.version},t))),(0,Le.jsx)(gC,{size:"s",value:100,stack:l})]})})}},{name:AT.CLUSTER,header:MT[AT.CLUSTER],width:120,sortable:!1,render:e=>{let{row:t}=e;const n=t.cluster&&t.cluster.DataCenters||[];return(0,Le.jsx)("div",{className:nT("cluster-dc"),children:n.join(", ")||FT})}},{name:AT.SERVICE,header:MT[AT.SERVICE],width:100,sortable:!0},{name:AT.STATUS,header:MT[AT.STATUS],width:150,sortable:!0},{name:AT.NODES,header:MT[AT.NODES],resizeMinWidth:140,defaultOrder:Hc.ZP.DESCENDING,sortAccessor:e=>{let{cluster:t={}}=e;const{NodesTotal:n=0}=t;return n},render:e=>{let{row:t}=e;const{NodesAlive:n=0,NodesTotal:r=0,Overall:i}=t.cluster||{};return i?(0,Le.jsx)(Iu,{value:n,capacity:r}):FT}},{name:AT.LOAD,header:MT[AT.LOAD],resizeMinWidth:140,defaultOrder:Hc.ZP.DESCENDING,sortAccessor:e=>{let{cluster:t}=e;return null===t||void 0===t?void 0:t.NumberOfCpus},render:e=>{let{row:t}=e;const{LoadAverage:n=0,NumberOfCpus:r=0,Overall:i}=t.cluster||{};return i?(0,Le.jsx)(Iu,{value:n,capacity:r}):FT}},{name:AT.STORAGE,header:MT[AT.STORAGE],resizeMinWidth:140,defaultOrder:Hc.ZP.DESCENDING,sortAccessor:e=>{let{cluster:t}=e;return Number(null===t||void 0===t?void 0:t.StorageTotal)},render:e=>{let{row:t}=e;const{StorageUsed:n=0,StorageTotal:r=0,Overall:i}=t.cluster||{};return i?(0,Le.jsx)(Iu,{value:n,capacity:r,formatValues:ks.JD}):FT}},{name:AT.HOSTS,header:MT[AT.HOSTS],width:80,defaultOrder:Hc.ZP.DESCENDING,sortAccessor:e=>{let{cluster:t}=e;return Number(null===t||void 0===t?void 0:t.Hosts)||0},render:e=>{var t;let{row:n}=e;return Number(null===(t=n.cluster)||void 0===t?void 0:t.Hosts)||FT}},{name:AT.TENANTS,header:MT[AT.TENANTS],width:80,defaultOrder:Hc.ZP.DESCENDING,sortAccessor:e=>{let{cluster:t}=e;return Number(null===t||void 0===t?void 0:t.Tenants)||0},render:e=>{var t;let{row:n}=e;return Number(null===(t=n.cluster)||void 0===t?void 0:t.Tenants)||FT}},{name:AT.OWNER,header:MT[AT.OWNER],sortable:!1,width:120,render:e=>{var t;let{row:n}=e;const r=null===(t=n.owner)||void 0===t?void 0:t.split(", ");return null!==r&&void 0!==r&&r.length?r.map((e=>(0,Le.jsx)(kT,{login:e},e))):FT}},{name:AT.DESCRIPTION,header:MT[AT.DESCRIPTION],sortable:!1,width:150,render:e=>{let{row:t}=e;return t.description?(0,Le.jsx)("div",{className:nT("description"),children:t.description}):FT}},{name:AT.BALANCER,header:MT[AT.BALANCER],sortable:!1,width:290,render:e=>{let{row:t}=e;if(!t.balancer)return FT;const n=PT(t.balancer);return(0,Le.jsxs)("div",{className:nT("balancer-cell"),children:[(0,Le.jsx)("div",{className:nT("balancer-text"),children:n}),(0,Le.jsx)(OT,{size:"s",text:n,className:nT("balancer-icon")})]})}}],BT=(e,t,n,r,i)=>{const[o,a]=Mo(t,r),s=e.map((e=>e.name));return{columnsToShow:e.filter((e=>o.find((t=>t===e.name)))),columnsToSelect:s.map((e=>{const t=null===i||void 0===i?void 0:i.includes(e);return{id:e,title:n[e],selected:o.includes(e),required:t,sticky:t?"start":void 0}})),setColumns:e=>{const t=e.filter((e=>e.selected)).map((e=>e.id));a(t)}}};function UT(){const e=GE.W1.useGetClustersListQuery(void 0,{pollingInterval:Lo.ME}),t=Ao(),n=Do(WE),r=Do(qE),i=Do(ZE),o=Do(YE),{columnsToShow:s,columnsToSelect:l,setColumns:c}=BT(zT,DT,MT,RT,[AT.TITLE]),u=e.data,{servicesToSelect:d,versions:h}=a.useMemo((()=>{const e=new Set,t=new Set;return(null!==u&&void 0!==u?u:[]).forEach((n=>{var r,i;n.service&&e.add(n.service),null===(r=n.cluster)||void 0===r||null===(i=r.Versions)||void 0===i||i.forEach((e=>{t.add((0,Ll.H)(e))}))})),{servicesToSelect:Array.from(e).map((e=>({value:e,content:e}))),versions:Array.from(t).map((e=>({value:e,content:e})))}}),[u]),p=a.useMemo((()=>function(e,t){return e.filter((e=>KE(e,t.status)&&QE(e,t.service)&&XE(e,t.version)&&$E(e,t.clusterName)))}(null!==u&&void 0!==u?u:[],{clusterName:n,status:r,service:i,version:o})),[n,u,i,r,o]),f=a.useMemo((()=>function(e){let t=0,n=0,r=0,i=0,o=0,a=0,s=0;const l=new Set;return e.filter((e=>{let{cluster:t}=e;return!(null!==t&&void 0!==t&&t.error)})).forEach((e=>{let{cluster:c,hosts:u={}}=e;t+=(null===c||void 0===c?void 0:c.NodesTotal)||0,n+=(null===c||void 0===c?void 0:c.NodesAlive)||0,Object.keys(u).forEach((e=>l.add(e))),s+=Number(null===c||void 0===c?void 0:c.Tenants)||0,r+=Number(null===c||void 0===c?void 0:c.LoadAverage)||0,i+=(null===c||void 0===c?void 0:c.NumberOfCpus)||0,o+=null!==c&&void 0!==c&&c.StorageUsed?Math.floor(parseInt(c.StorageUsed,10)):0,a+=null!==c&&void 0!==c&&c.StorageTotal?Math.floor(parseInt(c.StorageTotal,10)):0})),{NodesTotal:t,NodesAlive:n,Hosts:l.size,Tenants:s,LoadAverage:r,NumberOfCpus:i,StorageUsed:o,StorageTotal:a}}(p)),[p]),m=a.useMemo((()=>Array.from(new Set((null!==u&&void 0!==u?u:[]).map((e=>e.status)).filter(Boolean))).sort().map((e=>({value:e,content:e})))),[u]);return e.isLoading?(0,Le.jsx)(N_,{size:"l"}):(0,Le.jsxs)("div",{className:nT(),children:[(0,Le.jsx)(oe,{children:(0,Le.jsx)("title",{children:tT("page_title")})}),(0,Le.jsx)(rT,{stats:f,count:p.length}),(0,Le.jsxs)("div",{className:nT("controls"),children:[(0,Le.jsx)("div",{className:nT("control",{wide:!0}),children:(0,Le.jsx)(Yc,{placeholder:tT("controls_search-placeholder"),onChange:e=>{t((0,GE.g_)({clusterName:e}))},value:n})}),(0,Le.jsx)("div",{className:nT("control"),children:(0,Le.jsx)(ww,{multiple:!0,filterable:!0,hasClear:!0,placeholder:tT("controls_select-placeholder"),label:tT("controls_status-select-label"),value:r,options:m,onUpdate:e=>{t((0,GE.g_)({status:e}))},width:"max"})}),(0,Le.jsx)("div",{className:nT("control"),children:(0,Le.jsx)(ww,{multiple:!0,filterable:!0,hasClear:!0,placeholder:tT("controls_select-placeholder"),label:tT("controls_service-select-label"),value:i,options:d,onUpdate:e=>{t((0,GE.g_)({service:e}))},width:"max"})}),(0,Le.jsx)("div",{className:nT("control"),children:(0,Le.jsx)(ww,{multiple:!0,filterable:!0,hasClear:!0,placeholder:tT("controls_select-placeholder"),label:tT("controls_version-select-label"),value:o,options:h,onUpdate:e=>{t((0,GE.g_)({version:e}))},width:"max"})}),(0,Le.jsx)("div",{className:nT("control"),children:(0,Le.jsx)(VE,{popupWidth:242,items:l,showStatus:!0,onUpdate:c,sortable:!1},"TableColumnSetup")})]}),e.isError?(0,Le.jsx)(zc,{error:e.error,className:nT("error")}):null,(0,Le.jsx)("div",{className:nT("table-wrapper"),children:(0,Le.jsx)("div",{className:nT("table-content"),children:(0,Le.jsx)(qc,{columnsWidthLSKey:LT,wrapperClassName:nT("table"),data:p,columns:s,settings:{...Lo.LE,dynamicRender:!1},initialSortOrder:{columnId:AT.TITLE,order:Hc.ZP.ASCENDING}})})})]})}const HT=(0,le.Ge)("breadcrumbs");function VT(e){return a.createElement("button",Object.assign({},e,{type:"button",className:HT("switcher",{more:!0})}))}const GT=(0,le.Ge)("breadcrumbs");const WT=a.memo((function(e){let{item:t,isCurrent:n,isPrevCurrent:r,renderItemContent:i,renderItem:o}=e;const s=i?i(t,n,r):t.text;if(o)return o({item:t,children:s,isCurrent:n,isPrevCurrent:r});const l=t.title||t.text;return r||!n?void 0!==t.href?a.createElement(si,{key:t.text,view:"secondary",href:t.href,title:l,onClick:t.action,className:GT("item",{"prev-current":r})},s):a.createElement(VT,{key:t.text,title:l,onClick:t.action},s):a.createElement("div",{title:l,className:GT("item",{current:!0})},s)}));WT.displayName="Breadcrumbs.Item";const qT=JSON.parse('{"label_more":"Show more"}'),ZT=JSON.parse('{"label_more":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435"}'),YT=(0,mi.e)({en:qT,ru:ZT},"Breadcrumbs"),KT=(0,le.Ge)("breadcrumbs");function QT(e){let{popupStyle:t,popupPlacement:n,items:r}=e;return a.createElement(nC,{items:r,popupProps:{className:KT("popup",{staircase:"staircase"===t}),placement:n},renderSwitcher:e=>{let{onClick:t}=e;return a.createElement(VT,{title:YT("label_more"),onClick:t},"...")}})}QT.displayName="Breadcrumbs.More";const XT=(0,le.Ge)("breadcrumbs");function $T(e){let{renderItemDivider:t}=e;return a.createElement("div",{"aria-hidden":!0,className:XT("divider")},t?t():"/")}$T.displayName="Breadcrumbs.Separator";const JT=(0,le.Ge)("breadcrumbs");var eO,tO;!function(e){e[e.One=1]="One",e[e.Two=2]="Two"}(eO||(eO={})),function(e){e[e.Zero=0]="Zero",e[e.One=1]="One"}(tO||(tO={}));class nO extends a.Component{static prepareInitialState(e){const{firstDisplayedItemsCount:t}=e;return{calculated:!1,rootItem:t?e.items[0]:void 0,visibleItems:e.items.slice(t),hiddenItems:[],allItems:e.items}}static getDerivedStateFromProps(e,t){return t.allItems!==e.items?nO.prepareInitialState(e):null}constructor(e){super(e),this.handleResize=()=>{const e=nO.prepareInitialState(this.props);this.setState(e,this.recalculate)},this.handleResize=kt()(this.handleResize,200),"undefined"!==typeof window&&(this.resizeObserver=new ResizeObserver(this.handleResize)),this.container=a.createRef(),this.state=nO.prepareInitialState(e)}componentDidMount(){var e;this.recalculate(),null===(e=this.resizeObserver)||void 0===e||e.observe(this.container.current)}componentDidUpdate(e){e.items!==this.state.allItems&&this.recalculate()}componentWillUnmount(){var e;null===(e=this.resizeObserver)||void 0===e||e.disconnect()}render(){const{className:e,qa:t}=this.props,{calculated:n}=this.state;return a.createElement("div",{className:JT({calculated:n?"yes":"no"},e),"data-qa":t},a.createElement("div",{className:JT("inner"),ref:this.container},this.renderRootItem(),this.renderMoreItem(),this.renderVisibleItems()))}renderItem(e,t,n,r){return a.createElement(WT,{item:e,isCurrent:t,isPrevCurrent:n,renderItemContent:r||this.props.renderItemContent,renderItem:this.props.renderItem})}renderItemDivider(){const{renderItemDivider:e}=this.props;return a.createElement($T,{renderItemDivider:e})}renderRootItem(){const{renderRootContent:e}=this.props,{rootItem:t,visibleItems:n}=this.state,r=0===n.length;return t?this.renderItem(t,r,!1,e):null}renderVisibleItems(){const{visibleItems:e}=this.state;return e.map(((e,t,n)=>{const r=t===n.length-1,i=t===n.length-2;return a.createElement(a.Fragment,{key:t},this.renderItemDivider(),this.renderItem(e,r,i))}))}renderMoreItem(){const{hiddenItems:e}=this.state;if(0===e.length)return null;const{popupStyle:t,popupPlacement:n,renderItemDivider:r}=this.props;return a.createElement(a.Fragment,null,a.createElement($T,{renderItemDivider:r}),a.createElement(QT,{items:e,popupPlacement:n,popupStyle:t}))}recalculate(){var e;const{items:t,lastDisplayedItemsCount:n,firstDisplayedItemsCount:r}=this.props;let i=(null===(e=this.container.current)||void 0===e?void 0:e.offsetWidth)||0;if(this.container.current&&i>0){i+=4;const e=Array.from(this.container.current.querySelectorAll(".".concat(JT("divider")))),o=[...Array.from(this.container.current.querySelectorAll(".".concat(JT("switcher")))),...Array.from(this.container.current.querySelectorAll(".".concat(JT("item"))))],a=o.map(((e,t)=>e.scrollWidth+(t===o.length-1?4:8))),s=e.map((e=>e.offsetWidth)),l=a.reduce(((e,t,r,i)=>{const o=i.length-1===r,a=n===eO.Two&&i.length-2===r;return o||a?e+Math.min(t,200):e+t}),0);let c=l+s.reduce(((e,t)=>e+t),0),u=1;for(;c>i&&u<o.length-n;)1===u&&(c+=34+s[u]),c-=a[u]+s[u],u++;this.setState({calculated:!0,visibleItems:t.slice(u-(1-r)),hiddenItems:t.slice(r,u-(1-r))})}}}nO.defaultProps={popupPlacement:["bottom","top"]};const rO=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M11 2.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3ZM14 4a3 3 0 1 0-5.895.79L6.15 5.908a3 3 0 1 0 0 4.185l1.955 1.117A3.003 3.003 0 0 0 11 15a3 3 0 1 0-2.15-5.092L6.895 8.79a3.003 3.003 0 0 0 0-1.58L8.85 6.092A3 3 0 0 0 14 4Zm-3 6.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3ZM2.5 8a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Z",clipRule:"evenodd"})),iO=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.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"})),oO=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M12 8.5a1.5 1.5 0 0 1 1.5 1.5v1a1.5 1.5 0 0 1-1.5 1.5H4A1.5 1.5 0 0 1 2.5 11v-1A1.5 1.5 0 0 1 4 8.5h8Zm.89-1.366L11.488 4.33a1.5 1.5 0 0 0-1.342-.829H5.854a1.5 1.5 0 0 0-1.342.83L3.11 7.133A3 3 0 0 1 4 7h8a3 3 0 0 1 .89.134ZM15 9.18V11a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V9.18a5 5 0 0 1 .528-2.236L3.17 3.658A3 3 0 0 1 5.854 2h4.292a3 3 0 0 1 2.683 1.658l1.643 3.286A5 5 0 0 1 15 9.18Zm-6 .57a.75.75 0 0 0 0 1.5h2.5a.75.75 0 0 0 0-1.5H9Z",clipRule:"evenodd"})),aO=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M7 1.25a.75.75 0 0 0-1.5 0V2.5a3 3 0 0 0-3 3H1.25a.75.75 0 0 0 0 1.5H2.5v2H1.25a.75.75 0 0 0 0 1.5H2.5a3 3 0 0 0 3 3v1.25a.75.75 0 0 0 1.5 0V13.5h2v1.25a.75.75 0 0 0 1.5 0V13.5a3 3 0 0 0 3-3h1.25a.75.75 0 1 0 0-1.5H13.5V7h1.25a.75.75 0 1 0 0-1.5H13.5a3 3 0 0 0-3-3V1.25a.75.75 0 0 0-1.5 0V2.5H7V1.25ZM10.5 4h-5A1.5 1.5 0 0 0 4 5.5v5A1.5 1.5 0 0 0 5.5 12h5a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 10.5 4Zm0 2.25a.75.75 0 0 0-.75-.75h-3.5a.75.75 0 0 0-.75.75v3.5a.75.75 0 0 0 .75.75h3.5a.75.75 0 0 0 .75-.75v-3.5ZM7 7h2v2H7V7Z",clipRule:"evenodd"})),sO=JSON.parse('{"breadcrumbs.tenant":"Tenant","breadcrumbs.node":"Node","breadcrumbs.pDisk":"PDisk","breadcrumbs.vDisk":"VDisk","breadcrumbs.tablet":"Tablet","breadcrumbs.tablets":"Tablets"}'),lO=(0,We.wZ)("ydb-header",{en:sO}),cO=e=>e.startsWith("/")?e.slice(1):e,uO=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{clusterName:n,clusterTab:r}=e;return[{text:n||Lo.DO,link:(0,$C.B7)(r,t),icon:(0,Le.jsx)(rO,{})}]},dO=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{tenantName:n}=e,r=n?cO(n):lO("breadcrumbs.tenant"),i=n?fs({...t,name:n}):void 0;return[...uO(e,t),{text:r,link:i,icon:(0,Le.jsx)(iO,{})}]},hO=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{tenantName:n,nodeId:r}=e;let i;const o=!n,a={...t,[us.bS]:us.m2.diagnostics,[ds.diagnosticsTab]:us.qQ.nodes};i=o?uO(e,t):dO(e,a);const s=r?"".concat(lO("breadcrumbs.node")," ").concat(r):lO("breadcrumbs.node"),l=r?bu(r,t):void 0,c=o?(0,Le.jsx)(oO,{}):(0,Le.jsx)(aO,{});return i.push({text:s,link:l,icon:c}),i},pO=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{nodeId:n,pDiskId:r}=e,i=hO({tenantName:void 0,nodeId:n}),o=r?"".concat(lO("breadcrumbs.pDisk")," ").concat(r):lO("breadcrumbs.pDisk"),a=r&&n?(0,Ta.ds)(r,n,t):void 0;return i.push({text:o,link:a}),i},fO=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{vDiskSlotId:n}=e,r=pO(e,t),i=n?"".concat(lO("breadcrumbs.vDisk")," ").concat(n):lO("breadcrumbs.vDisk");return r.push({text:i}),r},mO=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{tenantName:n,nodeIds:r}=e,i={...t,[us.bS]:us.m2.diagnostics,[ds.diagnosticsTab]:us.qQ.tablets};let o;o=n?dO(e,i):uO(e,t);const a=(0,Ta.ax)(Ta.ZP.tabletsFilters,void 0,{...t,nodeIds:r,path:n});return o.push({text:lO("breadcrumbs.tablets"),link:a}),o},gO=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{tabletId:n,tabletType:r}=e,i=mO(e,t);return i.push({text:n||lO("breadcrumbs.tablet"),icon:(0,Le.jsx)(DC,{text:(0,Lo.qV)(r)})}),i},vO=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};switch(e){case"cluster":return[...n,...uO(t,r)];case"tenant":return[...n,...dO(t,r)];case"node":return[...n,...hO(t,r)];case"pDisk":return[...n,...pO(t,r)];case"vDisk":return[...n,...fO(t,r)];case"tablets":return[...n,...mO(t,r)];case"tablet":return[...n,...gO(t,r)];default:return n}},yO=Me("header"),bO=e=>e&&!h_.j4?"/internal":h_.y3+"/internal";const xO=function(e){var t;let{mainPage:n}=e;const r=_a(),i=Ca(),o=Do((e=>e.singleClusterMode)),{page:s,pageBreadcrumbsOptions:l}=Do((e=>e.header)),c=(0,Ta.mB)(i),u=null===(t=c.clusterName)||void 0===t?void 0:t.toString(),{currentData:{clusterData:d}={}}=Pl.UM.useGetClusterInfoQuery(u),h=(null===d||void 0===d?void 0:d.Name)||u,p=a.useMemo((()=>{const e=[];let t=l;n&&e.push(n),h&&(t={...l,clusterName:h});return vO(s,t,e,c).map((e=>({...e,action:()=>{e.link&&r.push(e.link)}})))}),[h,n,r,c,s,l]);return(0,Le.jsxs)("header",{className:yO(),children:[(0,Le.jsx)("div",{children:(0,Le.jsx)(nO,{items:p,lastDisplayedItemsCount:1,firstDisplayedItemsCount:1,renderItemContent:e=>{let{icon:t,text:n}=e;return t?(0,Le.jsxs)("span",{className:yO("breadcrumb"),children:[(0,Le.jsx)("div",{className:yO("breadcrumb__icon"),children:t}),n]}):n}})}),(0,Le.jsx)(IC,{title:Lo.Ah,url:bO(o)})]})};var wO=n(48169);const SO=Me("basic-node-viewer"),_O=e=>{let t,{node:n,additionalNodesProps:r,className:i}=e;return null!==r&&void 0!==r&&r.getNodeRef?t=r.getNodeRef(n)+"internal":n.NodeId&&(t=(0,wO.wq)(n.NodeId)+"internal"),(0,Le.jsx)("div",{className:SO(null,i),children:n?(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)("div",{className:SO("title"),children:"Node"}),(0,Le.jsx)(Il,{status:n.SystemState,name:n.Host}),t&&(0,Le.jsx)("a",{rel:"noopener noreferrer",className:SO("link",{external:!0}),href:t,target:"_blank",children:(0,Le.jsx)(we.J,{data:pu})}),(0,Le.jsxs)("div",{className:SO("id"),children:[(0,Le.jsx)("label",{className:SO("label"),children:"NodeID"}),(0,Le.jsx)("label",{children:n.NodeId})]}),n.DC&&(0,Le.jsx)(zC,{tags:[n.DC]}),n.Roles&&(0,Le.jsx)(zC,{tags:n.Roles,tagsType:"blue"})]}):(0,Le.jsx)("div",{className:"error",children:"no data"})})},CO=Me("ydb-pool-usage"),EO=e=>{let t="green";return e>60&&e<=80?t="yellow":e>80&&(t="red"),t},TO=e=>{let{data:t={}}=e;const{Threads:n,Name:r="Unknown",Usage:i=0}=t,o=i&&n,a=Math.floor(100*i),s=a>100?100:a;return(0,Le.jsxs)("div",{className:CO(),children:[(0,Le.jsxs)("div",{className:CO("info"),children:[(0,Le.jsx)("div",{className:CO("pool-name"),children:r}),o&&(0,Le.jsxs)("div",{className:CO("value"),children:[(0,Le.jsxs)("div",{className:CO("percents"),children:[a<1?"<1":a,"%"]}),(0,Le.jsxs)("div",{className:CO("threads"),children:["(\xd7",n,")"]})]})]}),(0,Le.jsx)("div",{className:CO("visual"),children:(0,Le.jsx)("div",{className:CO("usage-line",{type:EO(s)}),style:{width:"".concat(s,"%")}})})]})},OO=Me("full-node-viewer"),NO=e=>{var t,n,r,i;let{node:o,className:a}=e;const s=null===o||void 0===o||null===(t=o.Endpoints)||void 0===t?void 0:t.map((e=>{let{Name:t,Address:n}=e;return{label:t,value:n}})),l=[];null!==o&&void 0!==o&&null!==(n=o.Tenants)&&void 0!==n&&n.length&&l.push({label:"Database",value:o.Tenants[0]}),l.push({label:"Version",value:null===o||void 0===o?void 0:o.Version},{label:"Uptime",value:null===o||void 0===o?void 0:o.Uptime},{label:"DC",value:(null===o||void 0===o?void 0:o.DataCenterDescription)||(null===o||void 0===o?void 0:o.DC)},{label:"Rack",value:null===o||void 0===o?void 0:o.Rack});const c=null===o||void 0===o||null===(r=o.LoadAverage)||void 0===r?void 0:r.map(((e,t)=>({label:Lo.x5[t],value:(0,Le.jsx)(Iu,{value:e,percents:!0,colorizeProgress:!0,capacity:100})})));return(0,Le.jsx)("div",{className:"".concat(OO()," ").concat(a),children:o?(0,Le.jsxs)("div",{className:OO("common-info"),children:[(0,Le.jsxs)("div",{children:[(0,Le.jsx)("div",{className:OO("section-title"),children:"Pools"}),(0,Le.jsx)("div",{className:OO("section",{pools:!0}),children:null===o||void 0===o||null===(i=o.PoolStats)||void 0===i?void 0:i.map(((e,t)=>(0,Le.jsx)(TO,{data:e},t)))})]}),s&&s.length&&(0,Le.jsx)(Ss,{title:"Endpoints",className:OO("section"),info:s}),(0,Le.jsx)(Ss,{title:"Common info",className:OO("section"),info:l}),(0,Le.jsx)(Ss,{title:"Load average",className:OO("section",{average:!0}),info:c})]}):(0,Le.jsx)("div",{className:"error",children:"no data"})})},kO=e=>{var t;if(null===(t=e.SystemStateInfo)||void 0===t||!t.length)return{};const n=e.SystemStateInfo[0];return(0,Na.Ns)(n)},jO=Dl.h.injectEndpoints({endpoints:e=>({getNodeInfo:e.query({queryFn:async(e,t)=>{let{nodeId:n}=e,{signal:r}=t;try{const e=await window.api.getNodeInfo(n,{signal:r});return{data:kO(e)}}catch(i){return{error:i}}},providesTags:["All"]}),getNodeStructure:e.query({queryFn:async(e,t)=>{let{nodeId:n}=e,{signal:r}=t;try{return{data:await window.api.getStorageInfo({nodeId:n},{signal:r})}}catch(i){return{error:i}}},providesTags:["All"]})}),overrideExisting:"throw"}),IO=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 1.5a6.501 6.501 0 0 0-6.445 5.649.75.75 0 1 0 1.488.194A5.001 5.001 0 0 1 11.57 4.5h-1.32a.75.75 0 0 0 0 1.5h3a.75.75 0 0 0 .75-.75v-3a.75.75 0 0 0-1.5 0v1.06A6.48 6.48 0 0 0 8 1.5Zm-5.25 13a.75.75 0 0 1-.75-.75v-3a.75.75 0 0 1 .75-.75h3a.75.75 0 0 1 0 1.5H4.43a5.001 5.001 0 0 0 8.528-2.843.75.75 0 1 1 1.487.194A6.501 6.501 0 0 1 3.5 12.691v1.059a.75.75 0 0 1-.75.75Z",clipRule:"evenodd"}));var PO=n(76506);const DO=(0,le.Ge)("modal");function AO(e){let{open:t=!1,keepMounted:n=!1,disableBodyScrollLock:r=!1,disableEscapeKeyDown:i,disableOutsideClick:o,disableFocusTrap:s,disableAutoFocus:l,focusTrap:c=!0,autoFocus:u=!0,restoreFocusRef:d,onEscapeKeyDown:h,onEnterKeyDown:p,onOutsideClick:f,onClose:m,onTransitionEnter:g,onTransitionEntered:v,onTransitionExit:y,onTransitionExited:b,children:x,style:w,contentOverflow:S="visible",className:_,contentClassName:C,"aria-labelledby":E,"aria-label":T,container:O,qa:N}=e;const k=a.useRef(null),j=a.useRef(null),[I,P]=a.useState(!1);Jx({enabled:!r&&(t||I)});const D=kr({enabled:t||I,restoreFocusRef:d,focusTrapped:!0});return Qr({open:t,disableEscapeKeyDown:i,disableOutsideClick:o,onEscapeKeyDown:h,onEnterKeyDown:p,onOutsideClick:f,onClose:m,contentRefs:[j],type:"modal"}),a.createElement(me.Z,{nodeRef:k,in:t,addEndListener:e=>{var t;return null===(t=k.current)||void 0===t?void 0:t.addEventListener("animationend",e)},classNames:(0,ge.Y)(DO),mountOnEnter:!n,unmountOnExit:!n,appear:!0,onEnter:()=>{P(!0),null===g||void 0===g||g()},onExit:()=>{P(!0),null===y||void 0===y||y()},onEntered:()=>{P(!1),null===v||void 0===v||v()},onExited:()=>{P(!1),null===b||void 0===b||b()}},a.createElement(jr.h,{container:O},a.createElement("div",{ref:k,style:w,className:DO({open:t},_),"data-qa":N},a.createElement("div",{className:DO("content-aligner")},a.createElement("div",{className:DO("content-wrapper")},a.createElement(qr,{enabled:!s&&c&&t&&!I,autoFocus:!l&&u},a.createElement("div",Object.assign({ref:j,tabIndex:-1,role:"dialog","aria-modal":t,"aria-label":T,"aria-labelledby":E,className:DO("content",{"has-scroll":"auto"===S},C)},D),x)))))))}const RO=JSON.parse('{"close":"Close dialog"}'),MO=JSON.parse('{"close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e"}'),LO=(0,mi.e)({en:RO,ru:MO},"Dialog"),FO=(0,le.Ge)("dialog-btn-close");function zO(e){let{onClose:t}=e;return a.createElement("div",{className:FO()},a.createElement(Ie.z,{view:"flat",size:"l",className:FO("btn"),onClick:e=>t(e,{isOutsideClick:!1}),extraProps:{"aria-label":LO("close")}},a.createElement(we.J,{data:tt.Z,size:20})))}const BO=(0,le.Ge)("dialog-body");const UO=(0,le.Ge)("dialog-divider");const HO=(0,le.Ge)("dialog-footer");class VO extends a.Component{constructor(){super(...arguments),this.errorTooltipRef=a.createRef(),this.handleKeyDown=e=>{"Enter"===e.key&&(e.preventDefault(),this.props.onClickButtonApply&&this.props.onClickButtonApply(e))}}componentDidMount(){this.props.listenKeyEnter&&this.attachKeyDownListeners()}componentDidUpdate(e){!this.props.listenKeyEnter&&e.listenKeyEnter&&this.detachKeyDownListeners(),this.props.listenKeyEnter&&!e.listenKeyEnter&&this.attachKeyDownListeners()}componentWillUnmount(){this.detachKeyDownListeners()}render(){const{onClickButtonCancel:e,onClickButtonApply:t,loading:n,textButtonCancel:r,textButtonApply:i,propsButtonCancel:o,propsButtonApply:s,preset:l,children:c,errorText:u,showError:d,renderButtons:h}=this.props,p=a.createElement("div",{className:HO("button",{action:"cancel"})},a.createElement(Ie.z,Object.assign({view:i?"flat":"normal",size:"l",width:"max",onClick:e,disabled:n},o),r)),f=a.createElement("div",{className:HO("button",{action:"apply"})},a.createElement(Ie.z,Object.assign({ref:this.errorTooltipRef,type:"submit",view:"action",size:"l",width:"max",onClick:t,loading:n,className:HO("button-apply",{preset:l})},s),i),u&&a.createElement(ti,{open:d,anchorRef:this.errorTooltipRef,placement:["bottom","top"],disableLayer:!0,hasArrow:!0},a.createElement("div",{className:HO("error")},u)));return a.createElement("div",{className:HO()},a.createElement("div",{className:HO("children")},c),a.createElement("div",{className:HO("bts-wrapper")},h?h(f,p):a.createElement(a.Fragment,null,r&&p,i&&f)))}attachKeyDownListeners(){setTimeout((()=>{window.addEventListener("keydown",this.handleKeyDown)}),0)}detachKeyDownListeners(){window.removeEventListener("keydown",this.handleKeyDown)}}VO.defaultProps={preset:"default",showError:!1,listenKeyEnter:!1};const GO=(0,le.Ge)("dialog-header");const WO=(0,le.Ge)("dialog");class qO extends a.Component{constructor(){super(...arguments),this.handleCloseButtonClick=e=>{const{onClose:t}=this.props;t(e.nativeEvent,"closeButtonClick")}}render(){const{container:e,children:t,open:n,disableBodyScrollLock:r,disableEscapeKeyDown:i,disableOutsideClick:o,disableFocusTrap:s,disableAutoFocus:l,restoreFocusRef:c,keepMounted:u,size:d,contentOverflow:h="visible",className:p,modalClassName:f,hasCloseButton:m,onEscapeKeyDown:g,onEnterKeyDown:v,onOutsideClick:y,onClose:b,onTransitionEnter:x,onTransitionEntered:w,onTransitionExit:S,onTransitionExited:_,"aria-label":C,"aria-labelledby":E,qa:T}=this.props;return a.createElement(AO,{open:n,contentOverflow:h,disableBodyScrollLock:r,disableEscapeKeyDown:i,disableOutsideClick:o,disableFocusTrap:s,disableAutoFocus:l,restoreFocusRef:c,keepMounted:u,onEscapeKeyDown:g,onEnterKeyDown:v,onOutsideClick:y,onClose:b,onTransitionEnter:x,onTransitionEntered:w,onTransitionExit:S,onTransitionExited:_,className:WO("modal",f),"aria-label":C,"aria-labelledby":E,container:e,qa:T},a.createElement("div",{className:WO({size:d,"has-close":m,"has-scroll":"auto"===h},p)},t,m&&a.createElement(zO,{onClose:this.handleCloseButtonClick})))}}qO.defaultProps={disableBodyScrollLock:!1,disableEscapeKeyDown:!1,disableOutsideClick:!1,keepMounted:!1,hasCloseButton:!0},qO.Footer=VO,qO.Header=function(e){const{caption:t="",insertBefore:n,insertAfter:r,className:i,id:o}=e;return a.createElement("div",{className:GO(null,i)},n,a.createElement("div",{className:GO("caption"),id:o},t),r)},qO.Body=function(e){const{className:t,hasBorders:n=!1}=e;return a.createElement("div",{className:BO({"has-borders":n},t)},e.children)},qO.Divider=function(e){let{className:t}=e;return a.createElement("div",{className:UO(null,t)})};const ZO=JSON.parse('{"default-error":"Something went wrong, action cannot be completed","no-rights-error":"You don\'t have enough rights to complete the operation","button-confirm":"Confirm","button-cancel":"Cancel","button-close":"Close"}'),YO=(0,We.wZ)("ydb-critical-action-dialog",{en:ZO}),KO=Me("ydb-critical-dialog"),QO=e=>403===e.status?YO("no-rights-error"):e.statusText?e.statusText:YO("default-error");function XO(e){let{visible:t,text:n,onClose:r,onConfirm:i,onConfirmActionSuccess:o,onConfirmActionError:s}=e;const[l,c]=a.useState(!1),[u,d]=a.useState(),h=async e=>(e.preventDefault(),c(!0),i().then((()=>{o(),r()})).catch((e=>{s(),d(e)})).finally((()=>{c(!1)})));return(0,Le.jsx)(qO,{open:t,hasCloseButton:!1,className:KO(),size:"s",onClose:r,onTransitionExited:()=>d(void 0),children:u?(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsxs)(qO.Body,{className:KO("body"),children:[(0,Le.jsx)("span",{className:KO("error-icon"),children:(0,Le.jsx)(PO.Z,{width:"24",height:"22"})}),QO(u)]}),(0,Le.jsx)(qO.Footer,{loading:!1,preset:"default",textButtonCancel:YO("button-close"),onClickButtonCancel:r})]}):(0,Le.jsxs)("form",{onSubmit:h,children:[(0,Le.jsxs)(qO.Body,{className:KO("body"),children:[(0,Le.jsx)("span",{className:KO("warning-icon"),children:(0,Le.jsx)(we.J,{data:Tl.Z,size:24})}),n]}),(0,Le.jsx)(qO.Footer,{loading:l,preset:"default",textButtonApply:YO("button-confirm"),textButtonCancel:YO("button-cancel"),propsButtonApply:{type:"submit"},onClickButtonCancel:r,onClickButtonApply:()=>{}})]})})}function $O(e){let{children:t,onConfirmAction:n,onConfirmActionSuccess:r,dialogContent:i,buttonDisabled:o=!1,buttonView:s="action",buttonClassName:l,withPopover:c=!1,popoverContent:u,popoverPlacement:d="right",popoverDisabled:h=!0}=e;const[p,f]=a.useState(!1),[m,g]=a.useState(!1),v=()=>(0,Le.jsx)(Ie.z,{onClick:()=>f(!0),view:s,disabled:o,loading:!o&&m,className:l,children:t});return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(XO,{visible:p,text:i,onConfirm:async()=>{g(!0),await n(),g(!1)},onConfirmActionSuccess:async()=>{if(r){g(!0);try{await r()}catch{}finally{g(!1)}}},onConfirmActionError:()=>{g(!1)},onClose:()=>{f(!1)}}),c?(0,Le.jsx)(fi,{content:u,placement:d,disabled:h,children:v()}):v()]})}var JO=n(99399);const eN=JSON.parse('{"noTabletsData":"No tablets data","Type":"Type","Tablet":"Tablet","State":"State","Node ID":"Node ID","Node FQDN":"Node FQDN","Generation":"Generation","Uptime":"Uptime","dialog.kill":"The tablet will be restarted. Do you want to proceed?","controls.kill-not-allowed":"You don\'t have enough rights to restart tablet"}'),tN=(0,We.wZ)("ydb-tablets",{en:eN}),nN=Me("tablets"),rN=[{name:"Type",get header(){return tN("Type")},render:e=>{let{row:t}=e;return(0,Le.jsxs)("span",{children:[t.Type," ",t.Leader?(0,Le.jsx)(Fi.x,{color:"secondary",children:"leader"}):""]})}},{name:"TabletId",get header(){return tN("Tablet")},render:e=>{let{row:t}=e;const n=t.TabletId&&(0,Ta.ax)(Ta.ZP.tablet,{id:t.TabletId},{nodeId:t.NodeId,type:t.Type});return(0,Le.jsx)(_l,{to:n,children:t.TabletId})}},{name:"State",get header(){return tN("State")},render:e=>{let{row:t}=e;return(0,Le.jsx)(ft,{theme:Lu(t.State),children:t.State})}},{name:"NodeId",get header(){return tN("Node ID")},render:e=>{let{row:t}=e;const n=void 0===t.NodeId?void 0:bu(t.NodeId);return(0,Le.jsx)(_l,{to:n,children:t.NodeId})},align:"right"},{name:"FQDN",get header(){return tN("Node FQDN")},render:e=>{let{row:t}=e;return t.fqdn?(0,Le.jsx)(Il,{name:t.fqdn,showStatus:!1,hasClipboardButton:!0}):(0,Le.jsx)("span",{children:"\u2014"})}},{name:"Generation",get header(){return tN("Generation")},align:"right"},{name:"Uptime",get header(){return tN("Uptime")},render:e=>{let{row:t}=e;return(0,ks.fG)(t.ChangeTime)},sortAccessor:e=>-Number(e.ChangeTime),align:"right"},{name:"Actions",sortable:!1,resizeable:!1,header:"",render:e=>{let{row:t}=e;return(0,Le.jsx)(iN,{...t})}}];function iN(e){const t=e.State===Pu.g.Stopped,n=Ao(),{isUserAllowedToMakeChanges:r}=Do((e=>e.authentication));return(0,Le.jsx)($O,{buttonView:"outlined",dialogContent:tN("dialog.kill"),onConfirmAction:()=>window.api.killTablet(e.TabletId),onConfirmActionSuccess:()=>{n(JO.zg.util.invalidateTags(["All"]))},buttonDisabled:t||!r,withPopover:!0,popoverContent:tN("controls.kill-not-allowed"),popoverDisabled:r,children:(0,Le.jsx)(we.J,{data:IO})})}function oN(e){let{nodeId:t,path:n,className:r}=e;const{autorefresh:i}=Do((e=>e.schema));let o=zl.CN;const a=void 0===t?void 0:String(t);void 0!==a?o={nodes:[String(a)]}:n&&(o={path:n});const{currentData:s,isFetching:l,error:c}=JO.zg.useGetTabletsInfoQuery(o,{pollingInterval:i}),u=l&&void 0===s,d=Do((e=>(0,JO.Sq)(e,a,n)));return u?(0,Le.jsx)(Qc,{}):c?(0,Le.jsx)(zc,{error:c}):(0,Le.jsx)("div",{className:nN(null,r),children:(0,Le.jsx)(qc,{columns:rN,data:d,settings:Lo.LE,emptyDataMessage:tN("noTabletsData")})})}var aN=n(92820);const sN=(0,p_.P1)((e=>e),(e=>jO.endpoints.getNodeStructure.select({nodeId:e}))),lN=(0,p_.P1)((e=>e),((e,t)=>sN(t)),((e,t)=>t(e).data)),cN=(0,p_.P1)(((e,t)=>Number(t)),((e,t)=>lN(e,t)),((e,t)=>{const n=null===t||void 0===t?void 0:t.StoragePools,r={};null===n||void 0===n||n.forEach((t=>{const n=t.Groups;null===n||void 0===n||n.forEach((n=>{var i;const o=null===(i=n.VDisks)||void 0===i?void 0:i.filter((t=>t.NodeId===e));null===o||void 0===o||o.forEach((n=>{const i=(0,ks.a2)(n.VDiskId),o=kh(n.PDisk),a=o.PDiskId;r[String(a)]||(r[String(a)]={vDisks:{},...o}),r[String(a)].vDisks[i]={...n,PDiskId:a,NodeId:e,StoragePoolName:t.Name}}))}))}));const i=Object.keys(r).reduce(((e,t)=>{const n=r[t].vDisks,i=Object.keys(n).reduce(((e,t,r)=>(e.push({...n[t],id:t,order:r}),e)),[]);return e[t]={...r[t],vDisks:i},e}),{});return i})),uN=JSON.parse('{"path":"Path","guid":"GUID","category":"Category","type":"Type","size":"Size","state":"State","device":"Device","realtime":"Realtime","serial-number":"SerialNumber","links":"Links","developer-ui":"Developer UI","pdisk-page":"PDisk page"}'),dN=(0,We.wZ)("ydb-pDisk-info",{en:uN}),hN=Me("ydb-pdisk-info");function pN(e){let{pDisk:t,nodeId:n,isPDiskPage:r=!1,...i}=e;const{PDiskId:o,Path:a,Guid:s,Category:l,Type:c,Device:u,Realtime:d,State:h,SerialNumber:p,TotalSize:f,AvailableSize:m}=t,g=Number(f),v=Number(m),y=[];if(Td(a)&&y.push({label:dN("path"),value:a}),Td(s)&&y.push({label:dN("guid"),value:s}),Td(l)&&(y.push({label:dN("category"),value:l}),y.push({label:dN("type"),value:c})),g>=0&&v>=0&&y.push({label:dN("size"),value:(0,Le.jsx)(Iu,{value:g-v,capacity:g,formatValues:ks.q3,colorizeProgress:!0})}),Td(h)&&y.push({label:dN("state"),value:h}),Td(u)&&y.push({label:dN("device"),value:(0,Le.jsx)(Il,{status:u})}),Td(d)&&y.push({label:dN("realtime"),value:(0,Le.jsx)(Il,{status:d})}),Td(p)&&y.push({label:dN("serial-number"),value:p||Lo.jX}),Td(o)&&Td(n)){const e=(0,Ta.ds)(o,n),t=(0,wO.ok)({nodeId:n,pDiskId:o});y.push({label:dN("links"),value:(0,Le.jsxs)("span",{className:hN("links"),children:[!r&&(0,Le.jsx)(IC,{title:dN("pdisk-page"),url:e,external:!1}),(0,Le.jsx)(IC,{title:dN("developer-ui"),url:t})]})})}return(0,Le.jsx)(ws,{info:y,...i})}const fN=JSON.parse('{"pdisk.developer-ui-button-title":"PDisk Developer UI page","vdisk.developer-ui-button-title":"VDisk Developer UI page"}'),mN=JSON.parse('{"pdisk.developer-ui-button-title":"\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 PDisk \u0432 Developer UI","vdisk.developer-ui-button-title":"\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 VDisk \u0432 Developer UI"}'),gN=(0,We.wZ)("ydb-node-page",{en:fN,ru:mN}),vN=Me("kv-node-structure");function yN(e){let{label:t,value:n,className:r}=e;return(0,Le.jsxs)("span",{className:vN("pdisk-title-item",r),children:[t&&(0,Le.jsxs)("span",{className:vN("pdisk-title-item-label"),children:[t,":"]}),(0,Le.jsx)("span",{className:vN("pdisk-title-item-value"),children:n})]})}const bN=JSON.parse('{"slot-id":"VDisk Slot Id","pool-name":"Storage Pool Name","kind":"Kind","guid":"GUID","incarnation-guid":"Incarnation GUID","instance-guid":"Instance GUID","replication-status":"Replicated","state-status":"VDisk State","space-status":"Disk Space","fresh-rank-satisfaction":"Fresh Rank Satisfaction","level-rank-satisfaction":"Level Rank Satisfaction","front-queues":"Front Queues","has-unreadable-blobs":"Has Unreadable Blobs","size":"Size","read-throughput":"Read Throughput","write-throughput":"Write Throughput","links":"Links","vdisk-page":"VDisk Page","developer-ui":"Developer UI","yes":"Yes","no":"No"}'),xN=(0,We.wZ)("ydb-vDisk-info",{en:bN}),wN=Me("ydb-vdisk-info");function SN(e){var t,n;let{data:r,isVDiskPage:i=!1,...o}=e;const{AllocatedSize:a,DiskSpace:s,FrontQueues:l,Guid:c,Replicated:u,VDiskState:d,VDiskSlotId:h,Kind:p,SatisfactionRank:f,AvailableSize:m,HasUnreadableBlobs:g,IncarnationGuid:v,InstanceGuid:y,StoragePoolName:b,ReadThroughput:x,WriteThroughput:w,PDiskId:S,NodeId:_}=r,C=[];var E,T;(Td(h)&&C.push({label:xN("slot-id"),value:h}),Td(b)&&C.push({label:xN("pool-name"),value:b}),Td(d)&&C.push({label:xN("state-status"),value:d}),Number(a)>=0&&Number(m)>=0&&C.push({label:xN("size"),value:(0,Le.jsx)(Iu,{value:a,capacity:Number(a)+Number(m),formatValues:ks.q3,colorizeProgress:!0})}),Td(p)&&C.push({label:xN("kind"),value:p}),Td(c)&&C.push({label:xN("guid"),value:c}),Td(v)&&C.push({label:xN("incarnation-guid"),value:v}),Td(y)&&C.push({label:xN("instance-guid"),value:y}),Td(u)&&C.push({label:xN("replication-status"),value:xN(u?"yes":"no")}),Td(s)&&C.push({label:xN("space-status"),value:(0,Le.jsx)(Il,{status:s})}),Td(null===f||void 0===f||null===(t=f.FreshRank)||void 0===t?void 0:t.Flag))&&C.push({label:xN("fresh-rank-satisfaction"),value:(0,Le.jsx)(Il,{status:null===f||void 0===f||null===(E=f.FreshRank)||void 0===E?void 0:E.Flag})});Td(null===f||void 0===f||null===(n=f.LevelRank)||void 0===n?void 0:n.Flag)&&C.push({label:xN("level-rank-satisfaction"),value:(0,Le.jsx)(Il,{status:null===f||void 0===f||null===(T=f.LevelRank)||void 0===T?void 0:T.Flag})});if(Td(l)&&C.push({label:xN("front-queues"),value:(0,Le.jsx)(Il,{status:l})}),Td(g)&&C.push({label:xN("has-unreadable-blobs"),value:xN(g?"yes":"no")}),Td(x)&&C.push({label:xN("read-throughput"),value:(0,Ou.Qt)(x)}),Td(w)&&C.push({label:xN("write-throughput"),value:(0,Ou.Qt)(w)}),Td(S)&&Td(_)&&Td(h)){const e=(0,Ta.By)(h,S,_),t=(0,wO.yf)({nodeId:_,pDiskId:S,vDiskSlotId:h});C.push({label:xN("links"),value:(0,Le.jsxs)("span",{className:wN("links"),children:[!i&&(0,Le.jsx)(IC,{title:xN("vdisk-page"),url:e,external:!1}),(0,Le.jsx)(IC,{title:xN("developer-ui"),url:t})]})})}return(0,Le.jsx)(Ss,{info:C,...o})}const _N=Me("kv-node-structure");function CN(e){let{data:t}=e;const{VDiskState:n,VDiskId:r}=t;return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsxs)("div",{className:_N("row"),children:[(0,Le.jsx)("span",{className:_N("title"),children:"VDisk "}),(0,Le.jsx)(Il,{status:n===ph.OK?al.K.Green:al.K.Red,name:(0,ks.a2)(r)})]}),(0,Le.jsx)("div",{className:_N("column"),children:(0,Le.jsx)(SN,{className:_N("section"),data:t})})]})}const EN=Me("kv-node-structure");var TN;!function(e){e.slotId="VDiskSlotId",e.VDiskState="VDiskState",e.Size="Size",e.Info="Info"}(TN||(TN={}));const ON={VDiskSlotId:"Slot id",VDiskState:"Status",Size:"Size",Info:""};function NN(e){let{pDiskId:t,selectedVdiskId:n,nodeId:r}=e;return[{name:TN.slotId,header:ON[TN.slotId],width:100,render:e=>{let{row:i}=e;const o=i.VDiskSlotId;let a=null;return Td(r)&&Td(t)&&Td(o)&&(a=(0,wO.yf)({nodeId:r,pDiskId:t,vDiskSlotId:o})),(0,Le.jsxs)("div",{className:EN("vdisk-id",{selected:i.id===n}),children:[(0,Le.jsx)("span",{children:o}),a&&(0,Le.jsx)(Ie.z,{size:"s",className:EN("external-button",{hidden:!0}),href:a,target:"_blank",title:gN("vdisk.developer-ui-button-title"),children:(0,Le.jsx)(we.J,{data:pu})})]})},align:Hc.ZP.LEFT},{name:TN.VDiskState,header:ON[TN.VDiskState],width:70,render:e=>{let{row:t}=e;return(0,Le.jsx)(Il,{status:t.VDiskState===ph.OK?al.K.Green:al.K.Red})},sortAccessor:e=>e.VDiskState===ph.OK?1:0,align:Hc.ZP.CENTER},{name:TN.Size,header:ON[TN.Size],width:100,render:e=>{let{row:t}=e;return(0,Le.jsx)(Iu,{value:t.AllocatedSize,capacity:Number(t.AllocatedSize)+Number(t.AvailableSize),formatValues:ks.q3,colorizeProgress:!0})},sortAccessor:e=>Number(e.AllocatedSize),align:Hc.ZP.CENTER},{name:TN.Info,header:ON[TN.Info],width:70,render:e=>{let{row:t}=e;return(0,Le.jsx)(fi,{placement:["right"],content:(0,Le.jsx)(CN,{data:t}),tooltipContentClassName:EN("vdisk-details"),children:(0,Le.jsx)(Ie.z,{view:"flat-secondary",className:EN("vdisk-details-button",{selected:t.id===n}),children:(0,Le.jsx)(we.J,{data:Cl.Z,size:18})})})},sortable:!1}]}function kN(e){let{id:t,data:n,selectedVdiskId:r,nodeId:i,unfolded:o}=e;const[s,l]=a.useState(null!==o&&void 0!==o&&o),{TotalSize:c=0,AvailableSize:u=0,Device:d,PDiskId:h,Type:p,vDisks:f}=n,m=Number(c),g=Number(u);return(0,Le.jsxs)("div",{className:EN("pdisk"),id:t,children:[(0,Le.jsxs)("div",{className:EN("pdisk-header"),children:[(0,Le.jsxs)("div",{className:EN("pdisk-title-wrapper"),children:[(0,Le.jsx)(Il,{status:d}),(0,Le.jsx)(yN,{label:"PDiskID",value:h,className:EN("pdisk-title-id")}),(0,Le.jsx)(yN,{value:p,className:EN("pdisk-title-type")}),(0,Le.jsx)(Iu,{value:m-g,capacity:m,formatValues:ks.q3,colorizeProgress:!0,className:EN("pdisk-title-size")}),(0,Le.jsx)(yN,{label:"VDisks",value:f.length})]}),(0,Le.jsx)(Ie.z,{onClick:s?()=>{l(!1)}:()=>{l(!0)},view:"flat-secondary",children:(0,Le.jsx)(_e,{direction:s?"top":"bottom"})})]}),s&&(Vx()(n)?(0,Le.jsx)("div",{children:"No information about PDisk"}):(0,Le.jsxs)("div",{children:[(0,Le.jsx)(pN,{pDisk:n,nodeId:i,className:EN("pdisk-details")}),(0,Le.jsxs)("div",{className:EN("vdisks-container"),children:[(0,Le.jsx)("div",{className:EN("vdisks-header"),children:"VDisks"}),(0,Le.jsx)(Hc.ZP,{theme:"yandex-cloud",data:f,columns:NN({nodeId:i,pDiskId:h,selectedVdiskId:r}),settings:{...Lo.LE,dynamicRender:!1},rowClassName:e=>e.id===r?EN("selected-vdisk"):""})]})]}))]})}const jN=Me("kv-node-structure");function IN(e){let{type:t,id:n}=e;return"".concat(t,"-").concat(n)}const PN=function(e){let{nodeId:t,className:n}=e;const r=Do((e=>cN(e,t))),{currentData:i,isFetching:o,error:s}=jO.useGetNodeStructureQuery({nodeId:t},{pollingInterval:Lo.ME}),l=o&&void 0===i,{pdiskId:c,vdiskId:u}=aN.parse(window.location.href,!0).query,d=a.useRef(null),h=a.useRef(!1);return a.useEffect((()=>{if(!Vx()(r)&&!h.current&&d.current){const t=document.getElementById(IN({type:"pdisk",id:c}));let n=0;if(u){var e;const t=null===(e=r[c])||void 0===e?void 0:e.vDisks,i=null===t||void 0===t?void 0:t.find((e=>e.id===u)),o=i?document.querySelector(".data-table"):void 0,a=(null===i||void 0===i?void 0:i.order)||0;o&&(n+=o.offsetTop+40*a)}t&&(d.current.scrollTo({behavior:"smooth",top:n||t.offsetTop}),h.current=!0)}}),[r,c,u]),(0,Le.jsx)("div",{className:jN(),ref:d,children:(0,Le.jsx)("div",{className:n,children:l?(0,Le.jsx)(N_,{size:"m"}):s?(0,Le.jsx)(zc,{error:s}):(()=>{const e=Object.keys(r);return e.length>0?e.map((e=>(0,Le.jsx)(kN,{data:r[e],id:IN({type:"pdisk",id:e}),unfolded:c===e,selectedVdiskId:u,nodeId:t},e))):"There is no information about node structure."})()})})},DN=Me("node"),AN="Storage";const RN=function(e){var t;const n=a.useRef(null),r=Ao(),i=Ca(),o=null!==(t=Ea(Ta.ZP.node))&&void 0!==t?t:Object.create(null),{id:s,activeTab:l}=o.params,{tenantName:c}=(0,Ta.mB)(i),{currentData:u,isFetching:d,error:h}=jO.useGetNodeInfoQuery({nodeId:s},{pollingInterval:Lo.ME}),p=d&&void 0===u,f=u,{activeTabVerified:m,nodeTabs:g}=a.useMemo((()=>{var e;const t=((null===f||void 0===f||null===(e=f.Roles)||void 0===e?void 0:e.find((e=>e===AN)))?yu:yu.filter((e=>e.id!==fu))).map((e=>({...e,title:e.name})));let n=t.find((e=>{let{id:t}=e;return t===l}));return n||(n=t[0]),{activeTabVerified:n,nodeTabs:t}}),[l,f]);a.useEffect((()=>{var e;const t=(null===f||void 0===f||null===(e=f.Tenants)||void 0===e?void 0:e[0])||(null===c||void 0===c?void 0:c.toString());r((0,Rl.J)("node",{tenantName:t,nodeId:s}))}),[r,f,s,c]);const v=()=>{switch(m.id){case fu:return(0,Le.jsx)("div",{className:DN("storage"),children:(0,Le.jsx)(d_,{nodeId:s,parentContainer:n.current})});case mu:return(0,Le.jsx)(oN,{nodeId:s,className:DN("node-page-wrapper")});case gu:return(0,Le.jsx)(NO,{node:f,className:DN("overview-wrapper")});case vu:return(0,Le.jsx)(PN,{className:DN("node-page-wrapper"),nodeId:s});default:return!1}};return p?(0,Le.jsx)(N_,{size:"l"}):h?(0,Le.jsx)(zc,{error:h}):f?(0,Le.jsxs)("div",{className:DN(null,e.className),ref:n,children:[(0,Le.jsx)(oe,{titleTemplate:"%s \u2014 ".concat(f.Host," \u2014 YDB Monitoring"),defaultTitle:"".concat(f.Host," \u2014 YDB Monitoring"),children:(0,Le.jsx)("title",{children:m.title})}),(0,Le.jsx)(_O,{node:f,additionalNodesProps:e.additionalNodesProps,className:DN("header")}),(0,Le.jsx)("div",{className:DN("tabs"),children:(0,Le.jsx)(wt,{size:"l",items:g,activeTab:m.id,wrapTo:(e,t)=>{let{id:n}=e;return(0,Le.jsx)(bl,{to:(0,Ta.ax)(Ta.ZP.node,{id:s,activeTab:n}),className:DN("tab"),children:t},n)},allowNotSelected:!0})}),(0,Le.jsx)("div",{className:DN("content"),children:v()})]}):(0,Le.jsx)("div",{className:"error",children:"no node data"})},MN=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 1.5a6.5 6.5 0 1 1-6.445 7.348.75.75 0 1 1 1.487-.194A5.001 5.001 0 1 0 4.43 4.5h1.32a.75.75 0 0 1 0 1.5h-3A.75.75 0 0 1 2 5.25v-3a.75.75 0 0 1 1.5 0v1.06A6.48 6.48 0 0 1 8 1.5Z",clipRule:"evenodd"})),LN=Me("ydb-disk-page-title");function FN(e){let{entityName:t,status:n,id:r,className:i}=e;return(0,Le.jsxs)("div",{className:LN(null,i),children:[(0,Le.jsx)("span",{className:LN("prefix"),children:t}),(0,Le.jsx)(kl,{className:LN("icon"),status:n,size:"s"}),r]})}const zN=Me("ydb-page-meta");function BN(e){let{items:t,loading:n,className:r}=e;return(0,Le.jsx)("div",{className:zN(null,r),children:n?(0,Le.jsx)(rl,{className:zN("skeleton")}):t.filter((e=>Boolean(e))).join("\xa0\xa0\xb7\xa0\xa0")})}const UN=Dl.h.injectEndpoints({endpoints:e=>({getPdiskInfo:e.query({queryFn:async(e,t)=>{let{nodeId:n,pDiskId:r}=e,{signal:i}=t;try{const e=function(e){var t,n,r,i;let[o,a]=e;const s=kh(null===(t=o.PDiskStateInfo)||void 0===t?void 0:t[0]),l=null===(n=a.SystemStateInfo)||void 0===n?void 0:n[0],c=(0,Na.Ns)(l);return{...s,NodeId:null!==(r=s.NodeId)&&void 0!==r?r:c.NodeId,NodeHost:c.Host,NodeType:null===(i=c.Roles)||void 0===i?void 0:i[0],NodeDC:c.DC}}(await Promise.all([window.api.getPDiskInfo({nodeId:n,pDiskId:r},{signal:i}),window.api.getNodeInfo(n,{signal:i})]));return{data:e}}catch(o){return{error:o}}},providesTags:["All"]}),getStorageInfo:e.query({queryFn:async(e,t)=>{let{nodeId:n,pDiskId:r}=e,{signal:i}=t;try{const e=function(e,t,n){var r;const i=[];return null===(r=e.StoragePools)||void 0===r||r.forEach((e=>{var r;return null===(r=e.Groups)||void 0===r?void 0:r.forEach((r=>{var o;(null===(o=r.VDisks)||void 0===o?void 0:o.some((e=>{var r,i,o,a;const s=null!==(r=e.PDiskId)&&void 0!==r?r:null===(i=e.PDisk)||void 0===i?void 0:i.PDiskId,l=null!==(o=e.NodeId)&&void 0!==o?o:null===(a=e.PDisk)||void 0===a?void 0:a.NodeId;return s===Number(t)&&l===Number(n)})))&&i.push(Ph(r,e))}))})),i}(await window.api.getStorageInfo({nodeId:n,version:ka.v1},{signal:i}),r,n);return{data:e}}catch(o){return{error:o}}},providesTags:["All"]})}),overrideExisting:"throw"}),HN=JSON.parse('{"fqdn":"FQDN","pdisk":"PDisk","groups":"Groups","node":"Node","restart-pdisk-button":"Restart PDisk","restart-pdisk-dialog":"PDisk will be restarted. Do you want to proceed?","restart-pdisk-not-allowed":"You don\'t have enough rights to restart PDisk"}'),VN=(0,We.wZ)("ydb-pDisk-page",{en:HN}),GN=Me("ydb-pdisk-page");function WN(e){let{data:t,nodesMap:n,loading:r}=e;const i=a.useMemo((()=>RS(n)),[n]);return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)("div",{className:GN("groups-title"),children:VN("groups")}),(0,Le.jsx)("div",{children:r?(0,Le.jsx)(Qc,{}):(0,Le.jsx)(qc,{columnsWidthLSKey:uS,data:t,columns:i,settings:Lo.LE})})]})}const qN=Dl.h.injectEndpoints({endpoints:e=>({getTablet:e.query({queryFn:async(e,t)=>{let{id:n}=e,{signal:r}=t;try{const[e,t,i]=await Promise.all([window.api.getTablet({id:n},{signal:r}),window.api.getTabletHistory({id:n},{signal:r}),window.api.getNodesList({signal:r})]),o=(0,Na.dn)(i),a=Object.keys(t).reduce(((e,n)=>{var r;const i=null===(r=t[n])||void 0===r?void 0:r.TabletStateInfo;if(i&&i.length){const t=i.find((e=>e.Leader))||i[0],{ChangeTime:r,Generation:a,State:s,Leader:l,FollowerId:c}=t,u=o&&n?o.get(Number(n)):void 0;e.push({nodeId:n,generation:a,changeTime:r,state:s,leader:l,followerId:c,fqdn:u})}return e}),[]),{TabletStateInfo:s=[]}=e,[l={}]=s,{TabletId:c}=l;return{data:{id:c,data:l,history:a}}}catch(i){return{error:i}}},providesTags:["All"]}),getTabletDescribe:e.query({queryFn:async(e,t)=>{let{tenantId:n}=e,{signal:r}=t;try{const e=await window.api.getTabletDescribe(n,{signal:r}),{SchemeShard:t,PathId:i}=n;return{data:(null===e||void 0===e?void 0:e.Path)||"".concat(t,":").concat(i)}}catch(i){return{error:i}}},providesTags:["All"]})}),overrideExisting:"throw"}),ZN=JSON.parse('{"tablet.header":"Tablet","controls.kill":"Restart","controls.stop":"Stop","controls.resume":"Resume","controls.kill-not-allowed":"You don\'t have enough rights to restart tablet","controls.stop-not-allowed":"You don\'t have enough rights to stop tablet","controls.resume-not-allowed":"You don\'t have enough rights to resume tablet","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"}'),YN=(0,We.wZ)("ydb-tablet-page",{en:ZN}),KN=e=>{let{tablet:t,fetchData:n}=e;const{TabletId:r,HiveId:i}=t,{isUserAllowedToMakeChanges:o}=Do((e=>e.authentication)),s=t.State===Pu.g.Stopped,l=t.State!==Pu.g.Stopped&&t.State!==Pu.g.Dead,c=t.State===Pu.g.Stopped||t.State===Pu.g.Deleted;return(0,Le.jsxs)("div",{className:ek("controls"),children:[(0,Le.jsx)($O,{dialogContent:YN("dialog.kill"),onConfirmAction:()=>window.api.killTablet(r),onConfirmActionSuccess:n,buttonClassName:ek("control"),buttonDisabled:s||!o,withPopover:!0,popoverContent:YN("controls.kill-not-allowed"),popoverPlacement:"bottom",popoverDisabled:o,children:YN("controls.kill")}),i&&"0"!==i?(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)($O,{dialogContent:YN("dialog.stop"),onConfirmAction:()=>window.api.stopTablet(r,i),onConfirmActionSuccess:n,buttonClassName:ek("control"),buttonDisabled:c||!o,withPopover:!0,popoverContent:YN("controls.stop-not-allowed"),popoverPlacement:"bottom",popoverDisabled:o,children:YN("controls.stop")}),(0,Le.jsx)($O,{dialogContent:YN("dialog.resume"),onConfirmAction:()=>window.api.resumeTablet(r,i),onConfirmActionSuccess:n,buttonClassName:ek("control"),buttonDisabled:l||!o,withPopover:!0,popoverContent:YN("controls.resume-not-allowed"),popoverPlacement:"bottom",popoverDisabled:o,children:YN("controls.resume")})]}):null]})},QN=e=>{let{tablet:t,tenantPath:n}=e;const{ChangeTime:r,Generation:i,FollowerId:o,NodeId:a,HiveId:s,State:l,Type:c,TenantId:{SchemeShard:u}={}}=t,d=s&&"0"!==s,h=l===Pu.g.Active,p=[{label:"Database",value:n||"-"}];return d&&p.push({label:"HiveId",value:(0,Le.jsx)(si,{href:(0,Ta.ax)(Ta.ZP.tablet,{id:s}),target:"_blank",children:s})}),u&&p.push({label:"SchemeShard",value:(0,Le.jsx)(si,{href:(0,Ta.ax)(Ta.ZP.tablet,{id:u}),target:"_blank",children:u})}),p.push({label:"Type",value:c},{label:"State",value:l}),h&&p.push({label:"Uptime",value:(0,ks.fG)(r)}),p.push({label:"Generation",value:i},{label:"Node",value:(0,Le.jsx)(bl,{className:ek("link"),to:bu(String(a)),children:a})}),o&&p.push({label:"Follower",value:o}),(0,Le.jsx)(Ss,{info:p})},XN=[{name:"Generation",align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return t.generation}},{name:"Change time",align:Hc.ZP.RIGHT,sortable:!1,render:e=>{let{row:t}=e;return(0,ks.fG)(t.changeTime)}},{name:"State",sortable:!1,render:e=>{let{row:t}=e;return t.state}},{name:"Follower ID",sortable:!1,render:e=>{let{row:t}=e;return t.leader?"leader":t.followerId}},{name:"Node ID",align:Hc.ZP.RIGHT,sortable:!1,render:e=>{let{row:t}=e;return(0,Le.jsx)(_l,{to:bu(t.nodeId),children:t.nodeId})}},{name:"Node FQDN",sortable:!1,width:300,render:e=>{let{row:t}=e;return t.fqdn?(0,Le.jsx)(Il,{name:t.fqdn,showStatus:!1,hasClipboardButton:!0}):(0,Le.jsx)("span",{children:"\u2014"})}}],$N={displayIndices:!1},JN=e=>{let{history:t}=e;return(0,Le.jsx)(qc,{columnsWidthLSKey:"tabletTableColumnsWidth",data:t,columns:XN,settings:$N,initialSortOrder:{columnId:"Generation",order:Hc.ZP.DESCENDING}})},ek=Me("tablet-page");var tk=n(99090),nk=n.n(tk),rk=n(83570),ik=n.n(rk),ok=n(40510);const ak=JSON.parse('{"page.title":"Tablets"}'),sk=JSON.parse('{"page.title":"\u0422\u0430\u0431\u043b\u0435\u0442\u043a\u0438"}'),lk=(0,We.wZ)("ydb-tablets-filters-page",{en:ak,ru:sk}),ck=Me("tablets-filters");class uk extends a.Component{constructor(){super(...arguments),this.state={nodeFilter:[],tenantPath:"",clusterName:""},this.reloadDescriptor=-1,this.makeRequest=()=>{const{nodeFilter:e,tenantPath:t}=this.state;this.props.getTabletsInfo({nodes:e,path:[t]})},this.getTablets=()=>{const{timeoutForRequest:e}=this.props;clearInterval(this.reloadDescriptor),this.reloadDescriptor=setTimeout((()=>{this.makeRequest(),this.reloadDescriptor=-1}),e)},this.handleNodeFilterChange=e=>{this.setState({nodeFilter:e},(()=>{this.props.clearWasLoadingFlag(),this.makeRequest()}))},this.handleStateFilterChange=e=>{const{setStateFilter:t}=this.props;t(e)},this.handleTypeFilterChange=e=>{const{setTypeFilter:t}=this.props;t(e)},this.renderTablet=(e,t)=>{const{filteredTablets:n,size:r}=this.props;return(0,Le.jsx)(RC,{tablet:n[e],tenantName:this.state.tenantPath,size:r,className:ck("tablet")},t)},this.renderContent=()=>{const{nodeFilter:e,tenantPath:t}=this.state,{tablets:n,filteredTablets:r,nodes:i,stateFilter:o,typeFilter:s,error:l}=this.props,c=Au.map((e=>({value:e,content:e}))),u=Array.from(new Set(...[nk()(n,(e=>e.Type))])).map((e=>({value:e,content:e}))),d=nk()(i,(e=>({content:e.Id,value:e.Id,meta:e.Host})));return(0,Le.jsxs)("div",{className:ck(),children:[t?(0,Le.jsx)("div",{className:ck("tenant"),children:(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)("span",{className:ck("label"),children:"Database: "})," ",t]})}):null,(0,Le.jsx)(hk,{nodesForSelect:d,nodeFilter:e,onChangeNodes:this.handleNodeFilterChange,states:c,stateFilter:o,onChangeStates:this.handleStateFilterChange,types:u,typeFilter:s,onChangeTypes:this.handleTypeFilterChange}),l&&(0,Le.jsx)("div",{className:"error",children:l}),r.length>0?(0,Le.jsx)("div",{className:ck("items"),children:(0,Le.jsx)(ik(),{itemRenderer:this.renderTablet,length:r.length,type:"uniform"})}):!l&&(0,Le.jsx)("div",{className:ck("empty-message"),children:"no tablets"})]})},this.renderView=()=>{const{loading:e,wasLoaded:t,error:n}=this.props;return e&&!t?uk.renderLoader():n&&"object"===typeof n?403===n.status?(0,Le.jsx)(Fc,{}):(0,Le.jsx)("div",{children:n.statusText}):this.renderContent()}}static renderLoader(){return(0,Le.jsx)("div",{className:"loader",children:(0,Le.jsx)(Di,{size:"l"})})}componentDidMount(){const{setStateFilter:e,setTypeFilter:t,setHeaderBreadcrumbs:n}=this.props,r=(0,Ta.mB)(this.props.location),{nodeIds:i,type:o,path:a,state:s,clusterName:l}=r,c=uk.parseNodes(i);if(s){e(uk.getStateFiltersFromColor(s))}o&&t([o]),this.setState({nodeFilter:c,tenantPath:a,clusterName:l},(()=>{this.makeRequest()})),n("tablets",{tenantName:a})}componentDidUpdate(e){const{loading:t,error:n}=this.props;!n&&e.path&&this.props.path&&e.path!==this.props.path&&(this.props.clearWasLoadingFlag(),this.getTablets()),n||t||-1!==this.reloadDescriptor||this.getTablets()}componentWillUnmount(){clearInterval(this.reloadDescriptor)}render(){const{tenantPath:e,clusterName:t}=this.state;return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(oe,{children:(0,Le.jsx)("title",{children:"".concat(lk("page.title")," \u2014 ").concat(e||t||Lo.DO)})}),this.renderView()]})}}uk.parseNodes=e=>{if(Array.isArray(e))return e.map(Number).filter(Number.isInteger)},uk.getStateFiltersFromColor=e=>Ru[e]||[e],uk.CONTROL_WIDTH=220,uk.POPUP_WIDTH=300;const dk=e=>{let{nodesForSelect:t,nodeFilter:n,onChangeNodes:r,states:i,stateFilter:o,onChangeStates:a,types:s,typeFilter:l,onChangeTypes:c}=e;return(0,Le.jsxs)("div",{className:ck("filters"),children:[(0,Le.jsx)("div",{className:ck("filter-wrapper"),children:(0,Le.jsx)(ww,{multiple:!0,label:"Node ID",width:uk.CONTROL_WIDTH,popupWidth:uk.POPUP_WIDTH,placeholder:"All",options:t,value:n,onUpdate:r,renderOption:e=>(0,Le.jsxs)("div",{className:ck("node"),children:[(0,Le.jsx)("div",{children:e.content}),(0,Le.jsx)("div",{className:ck("node-meta"),title:e.meta,children:e.meta})]}),getOptionHeight:()=>40})}),(0,Le.jsx)("div",{className:ck("filter-wrapper"),children:(0,Le.jsx)(ww,{multiple:!0,label:"multiple",width:uk.CONTROL_WIDTH,placeholder:"All",options:i,value:o,onUpdate:a})}),(0,Le.jsx)("div",{className:ck("filter-wrapper"),children:(0,Le.jsx)(ww,{multiple:!0,label:"Types",width:uk.CONTROL_WIDTH,placeholder:"All",options:s,value:l,onUpdate:c})})]})},hk=a.memo(dk,((e,t)=>pp()(e.nodeFilter,t.nodeFilter)&&pp()(e.stateFilter,t.stateFilter)&&pp()(e.typeFilter,t.typeFilter))),pk={getTabletsInfo:ok.NM,clearWasLoadingFlag:ok.$S,setStateFilter:ok.nq,setTypeFilter:ok.jk,setHeaderBreadcrumbs:Rl.J},fk=(0,ae.$j)((e=>{const{nodes:t,wasLoaded:n,loading:r,timeoutForRequest:i,stateFilter:o,typeFilter:a,error:s}=e.tabletsFilters;return{tablets:(0,ok.ct)(e),filteredTablets:(0,ok.TI)(e),nodes:t,timeoutForRequest:i,wasLoaded:n,loading:r,stateFilter:o,typeFilter:a,error:s}}),pk)(uk);var mk="undefined"!==typeof window?window:null,gk=null===mk,vk=gk?void 0:mk.document,yk="addEventListener",bk="removeEventListener",xk="getBoundingClientRect",wk="_a",Sk="_b",_k="_c",Ck="horizontal",Ek=function(){return!1},Tk=gk?"calc":["","-webkit-","-moz-","-o-"].filter((function(e){var t=vk.createElement("div");return t.style.cssText="width:"+e+"calc(9px)",!!t.style.length})).shift()+"calc",Ok=function(e){return"string"===typeof e||e instanceof String},Nk=function(e){if(Ok(e)){var t=vk.querySelector(e);if(!t)throw new Error("Selector "+e+" did not match a DOM element");return t}return e},kk=function(e,t,n){var r=e[t];return void 0!==r?r:n},jk=function(e,t,n,r){if(t){if("end"===r)return 0;if("center"===r)return e/2}else if(n){if("start"===r)return 0;if("center"===r)return e/2}return e},Ik=function(e,t){var n=vk.createElement("div");return n.className="gutter gutter-"+t,n},Pk=function(e,t,n){var r={};return Ok(t)?r[e]=t:r[e]=Tk+"("+t+"% - "+n+"px)",r},Dk=function(e,t){var n;return(n={})[e]=t+"px",n};const Ak=function(e,t){if(void 0===t&&(t={}),gk)return{};var n,r,i,o,a,s,l=e;Array.from&&(l=Array.from(l));var c=Nk(l[0]).parentNode,u=getComputedStyle?getComputedStyle(c):null,d=u?u.flexDirection:null,h=kk(t,"sizes")||l.map((function(){return 100/l.length})),p=kk(t,"minSize",100),f=Array.isArray(p)?p:l.map((function(){return p})),m=kk(t,"maxSize",1/0),g=Array.isArray(m)?m:l.map((function(){return m})),v=kk(t,"expandToMin",!1),y=kk(t,"gutterSize",10),b=kk(t,"gutterAlign","center"),x=kk(t,"snapOffset",30),w=Array.isArray(x)?x:l.map((function(){return x})),S=kk(t,"dragInterval",1),_=kk(t,"direction",Ck),C=kk(t,"cursor",_===Ck?"col-resize":"row-resize"),E=kk(t,"gutter",Ik),T=kk(t,"elementStyle",Pk),O=kk(t,"gutterStyle",Dk);function N(e,t,r,i){var o=T(n,t,r,i);Object.keys(o).forEach((function(t){e.style[t]=o[t]}))}function k(){return s.map((function(e){return e.size}))}function j(e){return"touches"in e?e.touches[0][r]:e[r]}function I(e){var t=s[this.a],n=s[this.b],r=t.size+n.size;t.size=e/this.size*r,n.size=r-e/this.size*r,N(t.element,t.size,this[Sk],t.i),N(n.element,n.size,this[_k],n.i)}function P(e){var n,r=s[this.a],i=s[this.b];this.dragging&&(n=j(e)-this.start+(this[Sk]-this.dragOffset),S>1&&(n=Math.round(n/S)*S),n<=r.minSize+r.snapOffset+this[Sk]?n=r.minSize+this[Sk]:n>=this.size-(i.minSize+i.snapOffset+this[_k])&&(n=this.size-(i.minSize+this[_k])),n>=r.maxSize-r.snapOffset+this[Sk]?n=r.maxSize+this[Sk]:n<=this.size-(i.maxSize-i.snapOffset+this[_k])&&(n=this.size-(i.maxSize+this[_k])),I.call(this,n),kk(t,"onDrag",Ek)(k()))}function D(){var e=s[this.a].element,t=s[this.b].element,r=e[xk](),a=t[xk]();this.size=r[n]+a[n]+this[Sk]+this[_k],this.start=r[i],this.end=r[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-=_===Ck?parseFloat(t.paddingLeft)+parseFloat(t.paddingRight):parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)}(c);if(null===t)return e;if(f.reduce((function(e,t){return e+t}),0)>t)return e;var n=0,r=[],i=e.map((function(i,o){var a=t*i/100,s=jk(y,0===o,o===e.length-1,b),l=f[o]+s;return a<l?(n+=l-a,r.push(0),l):(r.push(a-l),a)}));return 0===n?e:i.map((function(e,i){var o=e;if(n>0&&r[i]-n>0){var a=Math.min(n,r[i]-n);n-=a,o=e-a}return o/t*100}))}function R(){var e=this,n=s[e.a].element,r=s[e.b].element;e.dragging&&kk(t,"onDragEnd",Ek)(k()),e.dragging=!1,mk[bk]("mouseup",e.stop),mk[bk]("touchend",e.stop),mk[bk]("touchcancel",e.stop),mk[bk]("mousemove",e.move),mk[bk]("touchmove",e.move),e.stop=null,e.move=null,n[bk]("selectstart",Ek),n[bk]("dragstart",Ek),r[bk]("selectstart",Ek),r[bk]("dragstart",Ek),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",e.gutter.style.cursor="",e.parent.style.cursor="",vk.body.style.cursor=""}function M(e){if(!("button"in e)||0===e.button){var n=this,r=s[n.a].element,i=s[n.b].element;n.dragging||kk(t,"onDragStart",Ek)(k()),e.preventDefault(),n.dragging=!0,n.move=P.bind(n),n.stop=R.bind(n),mk[yk]("mouseup",n.stop),mk[yk]("touchend",n.stop),mk[yk]("touchcancel",n.stop),mk[yk]("mousemove",n.move),mk[yk]("touchmove",n.move),r[yk]("selectstart",Ek),r[yk]("dragstart",Ek),i[yk]("selectstart",Ek),i[yk]("dragstart",Ek),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",i.style.userSelect="none",i.style.webkitUserSelect="none",i.style.MozUserSelect="none",i.style.pointerEvents="none",n.gutter.style.cursor=C,n.parent.style.cursor=C,vk.body.style.cursor=C,D.call(n),n.dragOffset=j(e)-n.end}}_===Ck?(n="width",r="clientX",i="left",o="right",a="clientWidth"):"vertical"===_&&(n="height",r="clientY",i="top",o="bottom",a="clientHeight"),h=A(h);var L=[];function F(e){var t=e.i===L.length,n=t?L[e.i-1]:L[e.i];D.call(n);var r=t?n.size-e.minSize-n[_k]:e.minSize+n[Sk];I.call(n,r)}return s=l.map((function(e,t){var r,i={element:Nk(e),size:h[t],minSize:f[t],maxSize:g[t],snapOffset:w[t],i:t};if(t>0&&((r={a:t-1,b:t,dragging:!1,direction:_,parent:c})[Sk]=jk(y,t-1===0,!1,b),r[_k]=jk(y,!1,t===l.length-1,b),"row-reverse"===d||"column-reverse"===d)){var o=r.a;r.a=r.b,r.b=o}if(t>0){var a=E(t,_,i.element);!function(e,t,r){var i=O(n,t,r);Object.keys(i).forEach((function(t){e.style[t]=i[t]}))}(a,y,t),r[wk]=M.bind(r),a[yk]("mousedown",r[wk]),a[yk]("touchstart",r[wk]),c.insertBefore(a,i.element),r.gutter=a}return N(i.element,i.size,jk(y,0===t,t===l.length-1,b),t),t>0&&L.push(r),i})),s.forEach((function(e){var t=e.element[xk]()[n];t<e.minSize&&(v?F(e):e.minSize=t)})),{setSizes:function(e){var t=A(e);t.forEach((function(e,n){if(n>0){var r=L[n-1],i=s[r.a],o=s[r.b];i.size=t[n-1],o.size=e,N(i.element,i.size,r[Sk],i.i),N(o.element,o.size,r[_k],o.i)}}))},getSizes:k,collapse:function(e){F(s[e])},destroy:function(e,t){L.forEach((function(r){if(!0!==t?r.parent.removeChild(r.gutter):(r.gutter[bk]("mousedown",r[wk]),r.gutter[bk]("touchstart",r[wk])),!0!==e){var i=T(n,r.a.size,r[Sk]);Object.keys(i).forEach((function(e){s[r.a].element.style[e]="",s[r.b].element.style[e]=""}))}}))},parent:c,pairs:L}};function Rk(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===t.indexOf(r)&&(n[r]=e[r]);return n}var Mk=function(e){function t(){e.apply(this,arguments)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.componentDidMount=function(){var e=this.props;e.children;var t=e.gutter,n=Rk(e,["children","gutter"]);n.gutter=function(e,n){var r;return t?r=t(e,n):(r=document.createElement("div")).className="gutter gutter-"+n,r.__isSplitGutter=!0,r},this.split=Ak(this.parent.children,n)},t.prototype.componentDidUpdate=function(e){var t=this,n=this.props;n.children;var r=n.minSize,i=n.sizes,o=n.collapsed,a=Rk(n,["children","minSize","sizes","collapsed"]),s=e.minSize,l=e.sizes,c=e.collapsed,u=["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(r)&&Array.isArray(s)){var d=!1;r.forEach((function(e,t){d=d||e!==s[t]})),u=u||d}else u=!(!Array.isArray(r)&&!Array.isArray(s))||(u||r!==s);if(u)a.minSize=r,a.sizes=i||this.split.getSizes(),this.split.destroy(!0,!0),a.gutter=function(e,t,n){return n.previousSibling},this.split=Ak(Array.from(this.parent.children).filter((function(e){return!e.__isSplitGutter})),a);else if(i){var h=!1;i.forEach((function(e,t){h=h||e!==l[t]})),h&&this.split.setSizes(this.props.sizes)}Number.isInteger(o)&&(o!==c||u)&&this.split.collapse(o)},t.prototype.componentWillUnmount=function(){this.split.destroy(),delete this.split},t.prototype.render=function(){var e=this,t=this.props;t.sizes,t.minSize,t.maxSize,t.expandToMin,t.gutterSize,t.gutterAlign,t.snapOffset,t.dragInterval,t.direction,t.cursor,t.gutter,t.elementStyle,t.gutterStyle,t.onDrag,t.onDragStart,t.onDragEnd,t.collapsed;var n=t.children,r=Rk(t,["sizes","minSize","maxSize","expandToMin","gutterSize","gutterAlign","snapOffset","dragInterval","direction","cursor","gutter","elementStyle","gutterStyle","onDrag","onDragStart","onDragEnd","collapsed","children"]);return a.createElement("div",Object.assign({},{ref:function(t){e.parent=t}},r),n)},t}(a.Component);Mk.propTypes={sizes:Vo().arrayOf(Vo().number),minSize:Vo().oneOfType([Vo().number,Vo().arrayOf(Vo().number)]),maxSize:Vo().oneOfType([Vo().number,Vo().arrayOf(Vo().number)]),expandToMin:Vo().bool,gutterSize:Vo().number,gutterAlign:Vo().string,snapOffset:Vo().oneOfType([Vo().number,Vo().arrayOf(Vo().number)]),dragInterval:Vo().number,direction:Vo().string,cursor:Vo().string,gutter:Vo().func,elementStyle:Vo().func,gutterStyle:Vo().func,onDrag:Vo().func,onDragStart:Vo().func,onDragEnd:Vo().func,collapsed:Vo().number,children:Vo().arrayOf(Vo().element)},Mk.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};const Lk=Mk,Fk=Me("kv-split"),zk=[0,100],Bk=[50,50];const Uk=function(e){const[t,n]=a.useState(),r=t=>{const{defaultSizePaneKey:n}=e;localStorage.setItem(n,t.join(","))};return a.useEffect((()=>{const{collapsedSizes:t,triggerCollapse:i}=e;if(i){const e=t||zk;r(e),n(e)}}),[e.triggerCollapse]),a.useEffect((()=>{const{triggerExpand:t,defaultSizes:i}=e,o=i||Bk;t&&(r(o),n(o))}),[e.triggerExpand]),(0,Le.jsx)(a.Fragment,{children:(0,Le.jsx)(Lk,{direction:e.direction||"horizontal",sizes:t||(()=>{var t;const{defaultSizePaneKey:n,defaultSizes:r=Bk,initialSizes:i}=e;if(i)return i;return(null===(t=localStorage.getItem(n))||void 0===t?void 0:t.split(",").map(Number))||r})(),minSize:e.minSize||[0,0],onDrag:t=>{const{onSplitDragAdditional:n}=e;n&&n(),r(t)},className:Fk(null,e.direction||"horizontal"),gutterSize:8,onDragStart:()=>{const{onSplitStartDragAdditional:t}=e;t&&t(),n(void 0)},expandToMin:!0,children:e.children})})},Hk=Uk;var Vk=n(6748),Gk=n(8511),Wk=n(93717);const qk=Me("heatmap"),Zk={width:0,height:0},Yk=10,Kk=2,Qk=e=>{const[t,n]=a.useState(Zk),{tablets:r}=e,i=a.useRef(null),o=a.useRef(null);a.useEffect((()=>{const e=i.current,n=e.getContext("2d");n.clearRect(0,0,e.offsetWidth,e.offsetHeight),r.map(function(e){return(n,r)=>{const{columnsCount:i}=t,o=r%i*(Yk+Kk),a=Math.floor(r/i)*(Yk+Kk);e.fillStyle=n.color||"grey",e.fillRect(o,a,Yk,Yk)}}(n))})),a.useLayoutEffect((()=>{const e=o.current;if(e){const t=e.offsetWidth-15,i=Math.floor(t/(Yk+Kk)),o=Math.ceil(r.length/i);n({width:t,height:o*(Yk+Kk),columnsCount:i,rowsCount:o})}}),[]);const s=()=>{let e=i.current,t=0;for(;e;)t+=e.offsetTop,e=e.offsetParent;return t},l=()=>{let e=i.current,t=0;for(;e;)t+=e.offsetLeft,e=e.offsetParent;return t},c=(e,n)=>{const{columnsCount:r}=t,i=Yk+Kk,o=Yk+Kk,a=Math.floor(e/i);return r*Math.floor(n/o)+a},u=kt()(((t,n)=>{const i=new CustomEvent("scroll");window.dispatchEvent(i);const o=e.parentRef.current,a=t-l()+o.scrollLeft,u=n-s()+o.scrollTop,d=c(a,u),h=r[d];if(h){const r={name:h.currentMetric,value:h.formattedValue};e.showTooltip(void 0,h,"tablet",r,{left:t-20,top:n-20})}else e.hideTooltip()}),20);return(0,Le.jsx)("div",{ref:o,className:qk("canvas-container"),onMouseLeave:()=>{setTimeout((()=>{e.hideTooltip()}),40)},children:(0,Le.jsx)("canvas",{ref:i,width:t.width,height:t.height,onClick:t=>{const n=e.parentRef.current,i=t.clientX-l()+n.scrollLeft,o=t.clientY-s()+n.scrollTop,a=c(i,o),u=r[a];u&&window.open((e=>{const{TabletId:t}=e,n=window.location.hostname,r=(0,Ta.ax)(Ta.ZP.tablet,{id:t}),i=[n,h_.EZ,r].map((e=>e.startsWith("/")?e.slice(1):e)).filter(Boolean).join("/");return"".concat("https://").concat(i)})(u),"_blank")},onMouseMove:e=>u(e.clientX,e.clientY)})})},Xk={r:255,g:4,b:0},$k={r:255,g:219,b:77},Jk={r:59,g:201,b:53},ej={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}},tj=e=>{const t=e.toString(16);return 1===t.length?"0".concat(t):t},nj=(e,t,n)=>{if(1===e)return[t];if(2===e)return[t,n];const r=(t.r-n.r)/(e-1),i=(t.g-n.g)/(e-1),o=(t.b-n.b)/(e-1),a=[];for(let s=0;s<e;s++)a.push({r:Math.round(t.r-r*s),g:Math.round(t.g-i*s),b:Math.round(t.b-o*s)});return a.map((e=>(e=>{let{r:t,g:n,b:r}=e;return"#".concat(tj(t)).concat(tj(n)).concat(tj(r))})(e)))},rj=e=>{const t=Math.floor(e/2),n=t+1;return[...nj(e%2===0?t:t+1,Jk,$k),...nj(n,$k,Xk).slice(1)]},ij=(e,t)=>{const n=new Set,r=ej[e]||{};t.forEach((t=>{n.add(Number(t.metrics[e]))})),Number.isInteger(r.min)&&n.add(r.min),Number.isInteger(r.max)&&n.add(r.max);const i=Array.from(n.values()).sort(((e,t)=>e-t));return{min:i[0],max:i[i.length-1]}},oj=Me("histogram"),aj=e=>{const t=a.useRef(),{data:n={},maxCount:r}=e,{count:i,leftBound:o,rightBound:s,color:l}=n,c=i/r*100;return(0,Le.jsx)("div",{ref:t,className:oj("item"),style:{backgroundColor:l,height:"".concat(c,"%")},onMouseEnter:()=>{const n=t.current;e.showTooltip(n,{count:i,leftBound:o,rightBound:s},"histogram")},onMouseLeave:e.hideTooltip})},sj=e=>{const{tablets:t,currentMetric:n}=e,{min:r,max:i}=ij(n,t),o=rj(50),a=(i-r)/50,s=o.map(((e,t)=>({color:e,count:0,leftBound:(0,ks.uf)(r+t*a),rightBound:(0,ks.uf)(r+(t+1)*a)})));let l=0;t.forEach((e=>{var t;const r=n&&Number(e.metrics[n]),i=Math.floor(r/a),o=(null===(t=s[i])||void 0===t?void 0:t.count)+1;o>l&&(l=o),s[i]={...s[i],count:o}}));return(0,Le.jsx)("div",{className:oj(),children:(0,Le.jsxs)("div",{className:oj("chart"),children:[Boolean(i)&&s.map(((t,n)=>(0,Le.jsx)(aj,{data:t,maxCount:l,showTooltip:e.showTooltip,hideTooltip:e.hideTooltip},n))),(0,Le.jsx)("div",{className:oj("x-min"),children:(0,ks.uf)(r)}),(0,Le.jsx)("div",{className:oj("x-max"),children:(0,ks.uf)(i)}),(0,Le.jsx)("div",{className:oj("y-min"),children:"0"}),(0,Le.jsx)("div",{className:oj("y-max"),children:(0,ks.uf)(l)})]})})},lj=Me("heatmap"),cj=rj(500),uj=e=>{let{path:t}=e;const n=Ao(),r=a.createRef(),{autorefresh:i}=Do((e=>e.schema)),{currentData:o,isFetching:s,error:l}=Wk.Vc.useGetHeatmapTabletsInfoQuery({path:t},{pollingInterval:i}),c=s&&void 0===o,{tablets:u=[],metrics:d}=o||{},{sort:h,heatmap:p,currentMetric:f}=Do((e=>e.heatmap)),m=function(){n((0,vs.hJ)(...arguments))},g=()=>{n((0,vs.i8)())},v=e=>{n((0,Wk.U_)({currentMetric:e[0]}))},y=()=>{n((0,Wk.U_)({sort:!h}))},b=()=>{n((0,Wk.U_)({heatmap:!p}))},x=()=>{const{min:e,max:t}=ij(f,u),n=u.map((n=>{var r;const i=f&&Number(null===(r=n.metrics)||void 0===r?void 0:r[f]),o=((e,t,n)=>0===n?0:Math.round((e-t)/(n-t)*499))(i,e,t),a=cj[o];return{...n,color:a,value:i,formattedValue:(0,ks.uf)(i),currentMetric:f}})),i=h?n.sort(((e,t)=>Number(t.value)-Number(e.value))):n;return(0,Le.jsx)("div",{ref:r,className:lj("items"),children:(0,Le.jsx)(Qk,{tablets:i,parentRef:r,showTooltip:m,hideTooltip:g})})};return c?(0,Le.jsx)(N_,{}):l?(0,Le.jsx)(zc,{error:l}):(()=>{const{min:e,max:t}=ij(f,u);return(0,Le.jsxs)("div",{className:lj(),children:[(0,Le.jsxs)("div",{className:lj("filters"),children:[(0,Le.jsx)(ww,{className:lj("heatmap-select"),value:f?[f]:[],options:d,onUpdate:v,width:200}),(0,Le.jsx)("div",{className:lj("sort-checkbox"),children:(0,Le.jsx)(T_,{onUpdate:y,checked:h,children:"Sort"})}),(0,Le.jsx)("div",{className:lj("histogram-checkbox"),children:(0,Le.jsx)(T_,{onUpdate:b,checked:p,children:"Heatmap"})}),(0,Le.jsxs)("div",{className:lj("limits"),children:[(0,Le.jsxs)("div",{className:lj("limits-block"),children:[(0,Le.jsx)("div",{className:lj("limits-title"),children:"min:"}),(0,Le.jsx)("div",{className:lj("limits-value"),children:Number.isInteger(e)?(0,ks.uf)(e):"\u2014"})]}),(0,Le.jsxs)("div",{className:lj("limits-block"),children:[(0,Le.jsx)("div",{className:lj("limits-title"),children:"max:"}),(0,Le.jsx)("div",{className:lj("limits-value"),children:Number.isInteger(t)?(0,ks.uf)(t):"\u2014"})]}),(0,Le.jsxs)("div",{className:lj("limits-block"),children:[(0,Le.jsx)("div",{className:lj("limits-title"),children:"count:"}),(0,Le.jsx)("div",{className:lj("limits-value"),children:(0,ks.uf)(u.length)})]})]})]}),p?x():(0,Le.jsx)(sj,{tablets:u,currentMetric:f,showTooltip:m,hideTooltip:g})]})})()};var dj,hj=n(35638),pj=n(6523);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 r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},fj.apply(this,arguments)}const mj=function(e){return a.createElement("svg",fj({viewBox:"0 0 12 7",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},e),dj||(dj=a.createElement("path",{d:"M8 7h3V5h1V2H6.66C6.085.79 4.86 0 3.5 0 1.57 0 0 1.57 0 3.5S1.57 7 3.5 7c1.36 0 2.59-.79 3.16-2H8v2zm2-1H9V4H5.97l-.115.335a2.5 2.5 0 110-1.67L5.97 3H11v1h-1v2zM3.5 5a1.5 1.5 0 110-3 1.5 1.5 0 010 3zM3 3.5a.5.5 0 111 0 .5.5 0 01-1 0z"})))},gj={id:"Id",name:"Name",key:"Key",type:"Type",notNull:"NotNull",familyName:"Family",preferredPoolKind:"Media",columnCodec:"Compression"};function vj(e){const t=e.keyColumnIds.reduce(((t,n,r)=>(t[n]=r-e.keyColumnIds.length,t)),{}),n=[{name:gj.id,width:60}];return(0,pj.uL)(e.type)||n.push({name:gj.key,width:70,resizeMinWidth:70,defaultOrder:Hc.ZP.ASCENDING,sortAccessor:e=>e.Id&&t[e.Id]||1,render:t=>{let{row:n}=t;return n.Id&&e.keyColumnIds.includes(n.Id)?(0,Le.jsx)("div",{className:e.b("key-icon"),children:(0,Le.jsx)(we.J,{data:mj,width:12,height:7})}):null}}),n.push({name:gj.name,width:100},{name:gj.type,width:100},{name:gj.notNull,width:100,defaultOrder:Hc.ZP.DESCENDING,render:e=>{let{row:t}=e;if(t.NotNull)return"\u2713"}}),e.withFamilies&&(0,pj.fd)(e.type)&&n.push({name:gj.familyName,width:100,render:t=>{let{row:n}=t;return n.Family?e.families[n.Family].Name:void 0},sortAccessor:t=>t.Family?e.families[t.Family].Name:void 0},{name:gj.preferredPoolKind,width:100,render:t=>{var n,r;let{row:i}=t;return i.Family?null===(n=e.families[i.Family].StorageConfig)||void 0===n||null===(r=n.Data)||void 0===r?void 0:r.PreferredPoolKind:void 0},sortAccessor:t=>{var n,r;return t.Family?null===(n=e.families[t.Family].StorageConfig)||void 0===n||null===(r=n.Data)||void 0===r?void 0:r.PreferredPoolKind:void 0}},{name:gj.columnCodec,width:100,render:t=>{let{row:n}=t;return n.Family?(r=e.families[n.Family].ColumnCodec)?r===hj.C6.ColumnCodecPlain?"None":r.replace("ColumnCodec","").toLocaleLowerCase():null:void 0;var r},sortAccessor:t=>t.Family?e.families[t.Family].ColumnCodec:void 0}),n}const yj=Me("schema-viewer"),bj=e=>{let{type:t,path:n,withFamilies:r=!1}=e;const{data:i,loading:o}=Do((e=>e.schema)),a=n?i[n]:void 0,{columns:s,keyColumnIds:l}=function(e,t){let n=[],r=[];if((0,pj.vp)(e)&&(0,pj.Jp)(e)){var i,o,a;const e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{Name:t,Schema:n}=e;if(n){const{Columns:e,KeyColumnNames:r}=n,i=null===r||void 0===r?void 0:r.map((t=>{const n=null===e||void 0===e?void 0:e.find((e=>e.Name===t));return null===n||void 0===n?void 0:n.Id})).filter((e=>void 0!==e));return{Columns:e,KeyColumnNames:r,Name:t,KeyColumnIds:i}}return{Name:t}}(null===t||void 0===t||null===(i=t.PathDescription)||void 0===i?void 0:i.ColumnTableDescription);n=null!==(o=e.KeyColumnIds)&&void 0!==o?o:[],r=null!==(a=e.Columns)&&void 0!==a?a:[]}else if((0,pj.uL)(e)){var s,l,c;r=null!==(s=null===t||void 0===t||null===(l=t.PathDescription)||void 0===l||null===(c=l.ExternalTableDescription)||void 0===c?void 0:c.Columns)&&void 0!==s?s:[]}else{var u,d,h,p,f,m;n=null!==(u=null===t||void 0===t||null===(d=t.PathDescription)||void 0===d||null===(h=d.Table)||void 0===h?void 0:h.KeyColumnIds)&&void 0!==u?u:[],r=null!==(p=null===t||void 0===t||null===(f=t.PathDescription)||void 0===f||null===(m=f.Table)||void 0===m?void 0:m.Columns)&&void 0!==p?p:[]}return{columns:r,keyColumnIds:n}}(t,a),c=function(e){var t,n,r,i,o;return null!==(t=null===e||void 0===e||null===(n=e.PathDescription)||void 0===n||null===(r=n.Table)||void 0===r||null===(i=r.PartitionConfig)||void 0===i||null===(o=i.ColumnFamilies)||void 0===o?void 0:o.reduce(((e,t)=>(t.Id&&(e[t.Id]=t),e)),{}))&&void 0!==t?t:{}}(a);return(0,Le.jsx)("div",{className:yj(null),children:o?(0,Le.jsx)(Qc,{}):(0,Le.jsx)(qc,{columnsWidthLSKey:"schemaTableColumnsWidth",data:s,columns:vj({type:t,b:yj,families:c,keyColumnIds:l,withFamilies:r}),settings:Lo.LE,initialSortOrder:{columnId:gj.key,order:Hc.ZP.ASCENDING}})})},xj=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 1.5a6.501 6.501 0 0 1 6.445 5.649.75.75 0 1 1-1.488.194A5.001 5.001 0 0 0 4.43 4.5h1.32a.75.75 0 0 1 0 1.5h-3A.75.75 0 0 1 2 5.25v-3a.75.75 0 1 1 1.5 0v1.06A6.48 6.48 0 0 1 8 1.5Zm5.25 13a.75.75 0 0 0 .75-.75v-3a.75.75 0 0 0-.75-.75h-3a.75.75 0 1 0 0 1.5h1.32a5.001 5.001 0 0 1-8.528-2.843.75.75 0 1 0-1.487.194 6.501 6.501 0 0 0 10.945 3.84v1.059c0 .414.336.75.75.75Z",clipRule:"evenodd"})),wj=JSON.parse('{"None":"None","15 sec":"15 sec","1 min":"1 min","2 min":"2 min","5 min":"5 min","Refresh":"Refresh"}'),Sj=(0,We.wZ)("ydb-diagnostics-autorefresh-control",{en:wj}),_j=Me("autorefresh-control");function Cj(e){let{className:t}=e;const n=Ao(),r=Do((e=>e.schema.autorefresh));return(0,Le.jsxs)("div",{className:_j(null,t),children:[(0,Le.jsx)(Ie.z,{view:"flat",onClick:()=>{n(Dl.h.util.invalidateTags(["All"]))},extraProps:{"aria-label":Sj("Refresh")},children:(0,Le.jsx)(Ie.z.Icon,{children:(0,Le.jsx)(xj,{})})}),(0,Le.jsxs)(ww,{value:[String(r)],onUpdate:e=>{n((0,Vk.w4)(Number(e)))},width:85,children:[(0,Le.jsx)(ww.Option,{value:"0",children:Sj("None")}),(0,Le.jsx)(ww.Option,{value:"15000",children:Sj("15 sec")}),(0,Le.jsx)(ww.Option,{value:"60000",children:Sj("1 min")}),(0,Le.jsx)(ww.Option,{value:"120000",children:Sj("2 min")}),(0,Le.jsx)(ww.Option,{value:"300000",children:Sj("5 min")})]})]})}var Ej=n(1504);const Tj=Dl.h.injectEndpoints({endpoints:e=>({getTopic:e.query({queryFn:async e=>{try{const t=await window.api.getTopic(e);return"object"!==typeof t?{error:{}}:{data:t}}catch(t){return{error:t}}},providesTags:["All"]})}),overrideExisting:"throw"}),Oj=(0,p_.P1)((e=>e),(e=>Tj.endpoints.getTopic.select({path:e}))),Nj=(0,p_.P1)((e=>e),((e,t)=>Oj(t)),((e,t)=>{var n;return null===(n=t(e).data)||void 0===n?void 0:n.topic_stats})),kj=(0,p_.P1)((e=>e),((e,t)=>Oj(t)),((e,t)=>{var n;return null===(n=t(e).data)||void 0===n?void 0:n.consumers})),jj=(0,p_.P1)(kj,(e=>null===e||void 0===e?void 0:e.map((e=>null===e||void 0===e?void 0:e.name)).filter((e=>void 0!==e)))),Ij=(0,p_.P1)(Nj,(e=>{if(!e)return;const{store_size_bytes:t="0",min_last_write_time:n,max_write_time_lag:r,bytes_written:i}=e||{};return{storeSize:t,partitionsIdleTime:(0,Ej.lE)(n),partitionsWriteLag:(0,Ej.DA)(r),writeSpeed:(0,BC.c4)(i)}})),Pj=(0,p_.P1)(kj,(e=>null===e||void 0===e?void 0:e.map((e=>{const{name:t,consumer_stats:n}=e||{},{min_partitions_last_read_time:r,max_read_time_lag:i,max_write_time_lag:o,bytes_read:a}=n||{};return{name:t,readSpeed:(0,BC.c4)(a),writeLag:(0,Ej.DA)(o),readLag:(0,Ej.DA)(i),readIdleTime:(0,Ej.lE)(r)}})))),Dj=JSON.parse('{"averageSpeed":"Average speed","perMinute":"per minute","perHour":"per hour","perDay":"per day"}'),Aj=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"}'),Rj=(0,We.wZ)("ydb-components-speed-multimeter",{ru:Aj,en:Dj}),Mj=Me("speed-multimeter"),Lj=e=>{let{data:t,speedSize:n="kb",withValue:r=!0,withPopover:i=!0}=e;const{perMinute:o=0,perHour:s=0,perDay:l=0}=t||{},c=[o,s,l],u=e=>(0,BC.td)({value:e,size:n,withSpeedLabel:!0}),d=[{value:u(o),label:Rj("perMinute")},{value:u(s),label:Rj("perHour")},{value:u(l),label:Rj("perDay")}],[h,p]=a.useState(o),[f,m]=a.useState(r?0:void 0),[g,v]=a.useState(),y=(e,t)=>{p(e[t]),m(t),v(t)},b=e=>f===e,x=e=>g===e;return(0,Le.jsx)("div",{className:Mj(),children:(0,Le.jsxs)("div",{className:Mj("content"),children:[r&&(0,Le.jsx)("div",{className:Mj("displayed-value"),children:u(h)}),(0,Le.jsx)(fi,{content:(0,Le.jsxs)("div",{className:Mj("popover-content"),children:[(0,Le.jsx)("span",{className:Mj("popover-header"),children:Rj("averageSpeed")}),d.map(((e,t)=>{return(0,Le.jsx)("span",{className:Mj("popover-row",(n=b(t),n?{color:"primary"}:{color:"secondary"})),children:"".concat(e.label,": ").concat(e.value)},t);var n}))]}),className:Mj("popover-container"),placement:"bottom",disabled:!i,hasArrow:!0,size:"s",children:(0,Le.jsx)("div",{className:Mj("bars"),onMouseLeave:()=>{p(o),m(r?0:void 0),v(void 0)},children:(()=>{const e=Math.max(...c,0)||1;return c.map(((t,n)=>(0,Le.jsx)("div",{className:Mj("bar-container",{highlighted:x(n)}),onMouseEnter:y.bind(null,c,n),children:(0,Le.jsx)("div",{className:Mj("bar",{color:b(n)?"dark":"light"}),style:{width:"".concat(100*t/e,"%")}})},n)))})()})})]})})},Fj=Me("ydb-diagnostics-consumers-topic-stats"),zj=e=>{let{data:t}=e;const{writeSpeed:n,partitionsWriteLag:r,partitionsIdleTime:i}=t||{},o=[{label:"Write speed",value:(0,Le.jsx)(Lj,{data:n})},{label:"Write lag",value:(0,ks.gC)(r||0)},{label:"Write idle time",value:(0,ks.gC)(i||0)}];return(0,Le.jsx)("div",{className:Fj("wrapper"),children:o.map(((e,t)=>(0,Le.jsxs)("div",{className:Fj("item"),children:[(0,Le.jsx)("div",{className:Fj("label"),children:e.label}),(0,Le.jsx)("div",{className:Fj("value"),children:e.value})]},t)))})},Bj=70,Uj=54,Hj=268,Vj="#ADE8F5",Gj="#f5be9d",Wj=e=>{let{width:t,height:n,transform:r}=e;return(0,Le.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:r})},qj=e=>{let{width:t}=e;return(0,Le.jsx)("path",{fill:"none",strokeWidth:"2",d:"M0 0 h".concat(t," l-10 -5 m0 10 l10 -5")})},Zj=()=>(0,Le.jsxs)("g",{fill:"var(--g-color-text-primary)",fontSize:"12",children:[(0,Le.jsx)("g",{transform:"translate(0, ".concat(27,")"),stroke:Gj,children:(0,Le.jsx)(qj,{width:203})}),(0,Le.jsxs)("g",{transform:"translate(".concat(30,", 0)"),children:[(0,Le.jsxs)("g",{transform:"translate(".concat(35,", ").concat(27,")"),children:[(0,Le.jsx)(Wj,{width:Bj,height:15}),(0,Le.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,Le.jsx)("tspan",{x:"0",dy:"0",children:"write lag"})})]}),(0,Le.jsxs)("g",{transform:"translate(".concat(119,", ").concat(27,")"),children:[(0,Le.jsx)(Wj,{width:98,height:15}),(0,Le.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,Le.jsx)("tspan",{x:"0",dy:"0",children:"write idle time"})})]})]}),(0,Le.jsxs)("g",{transform:"translate(".concat(30,", 0)"),children:[(0,Le.jsxs)("g",{transform:"translate(".concat(0,", ",27,")"),children:[(0,Le.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:Gj}),(0,Le.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,Le.jsx)("tspan",{x:"0",dy:"0",children:"create time"})})]}),(0,Le.jsxs)("g",{transform:"translate(".concat(Bj,", ").concat(27,")"),children:[(0,Le.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:Gj}),(0,Le.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,Le.jsx)("tspan",{x:"0",dy:"0",children:"write time"})})]}),(0,Le.jsx)("g",{transform:"translate(".concat(168,", ").concat(27,")"),children:(0,Le.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,Le.jsx)("tspan",{x:"0",dy:"0",children:"now"})})})]})]}),Yj=()=>(0,Le.jsxs)("g",{fill:"var(--g-color-text-primary)",fontSize:"12",children:[(0,Le.jsx)("g",{transform:"translate(0, ".concat(27,")"),stroke:Vj,children:(0,Le.jsx)(qj,{width:Hj})}),(0,Le.jsxs)("g",{transform:"translate(".concat(30,", 0)"),children:[(0,Le.jsxs)("g",{transform:"translate(".concat(105,", ").concat(27,")"),children:[(0,Le.jsx)(Wj,{width:Bj,height:15}),(0,Le.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,Le.jsx)("tspan",{x:"0",dy:"0",children:"read lag"})})]}),(0,Le.jsxs)("g",{transform:"translate(".concat(35,", ").concat(27,")"),children:[(0,Le.jsx)(Wj,{width:Bj,height:15}),(0,Le.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,Le.jsx)("tspan",{x:"0",dy:"0",children:"write lag"})})]}),(0,Le.jsxs)("g",{transform:"translate(".concat(182,", ").concat(27,")"),children:[(0,Le.jsx)(Wj,{width:91,height:15}),(0,Le.jsx)("text",{x:"0",y:"-15",textAnchor:"middle",children:(0,Le.jsx)("tspan",{x:"0",dy:"0",children:"read idle time"})})]})]}),(0,Le.jsxs)("g",{transform:"translate(".concat(30,", ").concat(27,")"),children:[(0,Le.jsxs)("g",{transform:"translate(".concat(0,", 0)"),children:[(0,Le.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:Vj}),(0,Le.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,Le.jsx)("tspan",{x:"0",dy:"0",children:"create time"})})]}),(0,Le.jsxs)("g",{transform:"translate(".concat(Bj,", 0)"),children:[(0,Le.jsx)("use",{y:"-10",xlinkHref:"#check",stroke:Vj}),(0,Le.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,Le.jsx)("tspan",{x:"0",dy:"0",children:"write time"})})]}),(0,Le.jsxs)("g",{transform:"translate(".concat(140,", 0)"),children:[(0,Le.jsx)("use",{x:"-2",y:"-10",xlinkHref:"#check",stroke:Vj}),(0,Le.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,Le.jsx)("tspan",{x:"0",dy:"0",children:"read time"})})]}),(0,Le.jsx)("g",{transform:"translate(".concat(224,", 0)"),children:(0,Le.jsx)("text",{x:"0",y:"20",textAnchor:"middle",children:(0,Le.jsx)("tspan",{x:"0",dy:"0",children:"now"})})})]})]}),Kj=e=>{let{id:t,fill:n}=e;return(0,Le.jsx)("pattern",{id:t,x:"0",y:"0",width:"8",height:"8",patternUnits:"userSpaceOnUse",children:(0,Le.jsx)("path",{d:"M0 5L5 0H8L0 8V5M5 8L8 5V8Z",fill:n})})},Qj=()=>(0,Le.jsxs)("svg",{className:"paint",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 ".concat(Hj," ").concat(Uj),width:Hj,height:Uj,children:[(0,Le.jsxs)("defs",{children:[(0,Le.jsx)("g",{id:"check",children:(0,Le.jsx)("path",{d:"M0 3 v14",strokeWidth:"2"})}),(0,Le.jsx)(Kj,{id:"latest-read",fill:Vj}),(0,Le.jsx)(Kj,{id:"latest-write",fill:Gj})]}),(0,Le.jsx)(Zj,{})]}),Xj=()=>(0,Le.jsxs)("svg",{className:"paint",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 ".concat(Hj," ").concat(Uj),width:Hj,height:Uj,children:[(0,Le.jsxs)("defs",{children:[(0,Le.jsx)("g",{id:"check",children:(0,Le.jsx)("path",{d:"M0 3 v14",strokeWidth:"2"})}),(0,Le.jsx)(Kj,{id:"latest-read",fill:Vj}),(0,Le.jsx)(Kj,{id:"latest-write",fill:Gj})]}),(0,Le.jsx)(Yj,{})]}),$j=Me("ydb-lag-popover-content"),Jj=e=>{let{text:t,type:n}=e;return(0,Le.jsxs)("div",{className:$j({type:n}),children:[(0,Le.jsx)("div",{className:$j("text"),children:t}),(0,Le.jsx)("div",{children:"read"===n?(0,Le.jsx)(Xj,{}):(0,Le.jsx)(Qj,{})})]})},eI=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"}'),tI=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"}'),nI=(0,We.wZ)("ydb-diagnostics-consumers",{ru:tI,en:eI}),rI="consumer",iI="readSpeed",oI="readLags",aI={[rI]:"Consumer",[iI]:"Read speed",[oI]:"Read lags, duration"},sI="writeLag",lI="readLag",cI="readIdleTime",uI={[sI]:"write lag",[lI]:"read lag",[cI]:"read idle time"},dI=Me("ydb-diagnostics-consumers-columns-header"),hI=()=>(0,Le.jsx)(Po,{className:dI("lags"),text:aI[oI],popoverContent:(0,Le.jsx)(Jj,{text:nI("lagsPopover.readLags"),type:"read"})}),pI=Me("ydb-diagnostics-consumers-columns"),fI=[{name:rI,header:aI[rI],align:Hc.ZP.LEFT,render:e=>{let{row:t}=e;if(!t.name)return"\u2013";const n=ol().parse(location.search,{ignoreQueryPrefix:!0});return(0,Le.jsx)(_l,{to:(0,Ta.ax)(Ta.ZP.tenant,void 0,{...n,[ds.diagnosticsTab]:us.qQ.partitions,selectedConsumer:t.name}),children:t.name})}},{name:iI,header:aI[iI],align:Hc.ZP.RIGHT,resizeMinWidth:140,sortAccessor:e=>e.readSpeed.perMinute,render:e=>{let{row:t}=e;return(0,Le.jsx)(Lj,{data:t.readSpeed})}},{name:oI,header:(0,Le.jsx)(hI,{}),className:pI("lags-header"),sub:[{name:sI,header:uI[sI],align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return(0,ks.gC)(t.writeLag)}},{name:lI,header:uI[lI],align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return(0,ks.gC)(t.readLag)}},{name:cI,header:uI[cI],align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return(0,ks.gC)(t.readIdleTime)}}]}],mI=Me("ydb-diagnostics-consumers"),gI=e=>{let{path:t,type:n}=e;const r=(0,pj.zf)(n),[i,o]=a.useState(""),{autorefresh:s}=Do((e=>e.schema)),{currentData:l,isFetching:c,error:u}=Tj.useGetTopicQuery({path:t},{pollingInterval:s}),d=c&&void 0===l,h=Do((e=>Pj(e,t))),p=Do((e=>Ij(e,t))),f=a.useMemo((()=>{if(!h)return[];const e=new RegExp(m_()(i),"i");return h.filter((t=>e.test(String(t.name))))}),[h,i]);return d?(0,Le.jsx)(N_,{size:"m"}):u?(0,Le.jsx)(zc,{error:u}):h&&h.length?(0,Le.jsxs)("div",{className:mI(),children:[(0,Le.jsxs)("div",{className:mI("controls"),children:[(0,Le.jsx)(Yc,{onChange:e=>{o(e)},placeholder:nI("controls.search"),className:mI("search"),value:i}),p&&(0,Le.jsx)(zj,{data:p})]}),(0,Le.jsx)("div",{className:mI("table-wrapper"),children:(0,Le.jsx)("div",{className:mI("table-content"),children:(0,Le.jsx)(qc,{columnsWidthLSKey:"consumersColumnsWidth",wrapperClassName:mI("table"),data:f,columns:fI,settings:Lo.LE,emptyDataMessage:nI("table.emptyDataMessage")})})})]}):(0,Le.jsx)("div",{children:nI("noConsumersMessage.".concat(r?"stream":"topic"))})},vI=Dl.h.injectEndpoints({endpoints:e=>({getDescribe:e.query({queryFn:async(e,t)=>{let{signal:n}=t;try{const t=await Promise.all(e.map((e=>window.api.getDescribe({path:e},{signal:n}))));return{data:t.reduce(((e,t)=>(null!==t&&void 0!==t&&t.Path&&(e[t.Path]=t),e)),{})}}catch(r){return{error:r}}},providesTags:["All"]})}),overrideExisting:"throw"}),yI=Me("kv-describe"),bI=new Map,xI=e=>{let{tenant:t,type:n}=e;const{autorefresh:r,currentSchemaPath:i}=Do((e=>e.schema)),o=(0,pj.St)(n),a=Do((e=>(0,Vk.eU)(e,i,n)),ae.wU),s=i||t;let l=zl.CN;o?a&&(l=[s,...a]):l=[s];const{currentData:c,isFetching:u,error:d}=vI.useGetDescribeQuery(l,{pollingInterval:r}),h=u&&void 0===c,p=c;let f;if(p){const e=Object.keys(p);f=1===e.length?p[e[0]]:p}return h||o&&!a?(0,Le.jsx)(N_,{size:"m"}):d?(0,Le.jsx)(zc,{error:d,className:yI("message-container")}):h||f?(0,Le.jsx)("div",{className:yI(),children:(0,Le.jsx)("div",{className:yI("result"),children:(0,Le.jsx)(bs(),{data:f,className:yI("tree"),onClick:e=>{let{path:t}=e;const n=!bI.get(t);bI.set(t,n)},searchOptions:{debounceTime:300},isExpanded:e=>bI.get(e)||!1})})}):(0,Le.jsx)("div",{className:yI("message-container"),children:"Empty"})},wI=e=>{const{PathType:t,PathSubType:n}=(null===e||void 0===e?void 0:e.Self)||{};return(0,pj.d)(t,n)},SI=JSON.parse('{"common.created":"Created","common.type":"Type"}'),_I=JSON.parse('{"common.created":"\u0421\u043e\u0437\u0434\u0430\u043d\u043e","common.type":"\u0422\u0438\u043f"}'),CI=(0,We.wZ)("ydb-components-info-viewer",{ru:_I,en:SI}),EI=Es({values:{PathType:e=>null===e||void 0===e?void 0:e.substring("EPathType".length),CreateStep:ks.o0},labels:{PathType:CI("common.type"),CreateStep:CI("common.created")}}),TI=e=>{let{value:t,withSpeedLabel:n,...r}=e;const i=(0,BC.td)({value:t,withSpeedLabel:n,...r}),o=(0,BC.td)({value:t,withSpeedLabel:n,size:"b"});return(0,Le.jsx)("span",{title:o,children:i})},OI=(e,t)=>e?(0,Le.jsx)(TI,{value:e,significantDigits:2,...t}):null,NI=Es({values:{Type:e=>null===e||void 0===e?void 0:e.substring(10),State:e=>null===e||void 0===e?void 0:e.substring(11),KeyColumnNames:e=>null===e||void 0===e?void 0:e.join(", "),DataColumnNames:e=>null===e||void 0===e?void 0:e.join(", "),DataSize:OI},labels:{KeyColumnNames:"Columns",DataColumnNames:"Includes"}}),kI={[hj.tB.METERING_MODE_REQUEST_UNITS]:"request-units",[hj.tB.METERING_MODE_RESERVED_CAPACITY]:"reserved-capacity"},jI=Es({values:{Partitions:e=>(0,ks.uf)((null===e||void 0===e?void 0:e.length)||0),PQTabletConfig:e=>{const t=Math.round(e.PartitionConfig.LifetimeSeconds/Lo.RQ*100)/100;return"".concat((0,ks.uf)(t)," hours")}},labels:{Partitions:"Partitions count",PQTabletConfig:"Retention"}}),II=Es({values:{Codecs:e=>e&&Object.values(e.Codecs||{}).join(", "),MeteringMode:e=>e&&kI[e]},labels:{MeteringMode:"Metering mode"}}),PI=Es({values:{StorageLimitBytes:ks.td,WriteSpeedInBytesPerSecond:ks.t$},labels:{StorageLimitBytes:"Retention storage",WriteSpeedInBytesPerSecond:"Partitions write speed"}}),DI=Es({values:{Mode:e=>null===e||void 0===e?void 0:e.substring("ECdcStreamMode".length),Format:e=>null===e||void 0===e?void 0:e.substring("ECdcStreamFormat".length)}}),AI=Es({values:{CPU:ks.LO,Memory:OI,Storage:OI,Network:ks.t$,ReadThroughput:ks.t$,WriteThroughput:ks.t$},defaultValueFormatter:ks.uf}),RI=Es({values:{FollowerCount:ks.uf},labels:{FollowerCountPerDataCenter:"FollowerCountPerDC"},defaultValueFormatter:e=>e&&String(e)}),MI=Es({values:{FollowerCount:ks.uf,CrossDataCenterFollowerCount:ks.uf}}),LI=Es({values:{DataSize:OI,IndexSize:OI,LastAccessTime:ks.o0,LastUpdateTime:ks.o0},defaultValueFormatter:ks.uf}),FI=new Set(["Type","State","DataSize","KeyColumnNames","DataColumnNames"]),zI=e=>{var t;let{data:n}=e;const r=wI(null===n||void 0===n?void 0:n.PathDescription);if(!n)return(0,Le.jsxs)("div",{className:"error",children:["No ",r," data"]});const i=null===(t=n.PathDescription)||void 0===t?void 0:t.TableIndex,o=[];let a;for(a in i)FI.has(a)&&o.push(NI(a,null===i||void 0===i?void 0:i[a]));return(0,Le.jsx)(Ss,{title:r,info:o})};var BI=n(39623);function UI(e){return"SELECT * FROM `".concat(e,"/.sys/primary_index_stats`")}const HI="execute-scan",VI=Dl.h.injectEndpoints({endpoints:e=>({getOlapStats:e.query({queryFn:async function(){let{path:e=""}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{signal:t}=arguments.length>1?arguments[1]:void 0;try{const n=await window.api.sendQuery({schema:"modern",query:UI(e),database:e,action:HI},{signal:t});return(0,BI.gW)(n)?{error:n}:{data:(0,BI.gY)(n)}}catch(n){return{error:n||new Error("Unauthorized")}}},providesTags:["All"]})}),overrideExisting:"throw"}),GI=Dl.h.injectEndpoints({endpoints:e=>({getOverview:e.query({queryFn:async(e,t)=>{let{signal:n}=t;try{const[t,...r]=await Promise.all(e.map((e=>window.api.getDescribe({path:e},{signal:n}))));return{data:{data:t,additionalData:r}}}catch(r){return{error:r}}}})})}),WI=JSON.parse('{"external-objects.source-type":"Source Type","external-objects.data-source":"Data Source","external-objects.location":"Location","external-objects.auth-method":"Auth Method","external-objects.auth-method.none":"None","external-objects.auth-method.service-account":"Service Account"}'),qI=JSON.parse('{"external-objects.source-type":"\u0422\u0438\u043f \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430","external-objects.data-source":"\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a","external-objects.location":"\u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435","external-objects.auth-method":"\u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f","external-objects.auth-method.none":"\u041d\u0435\u0442","external-objects.auth-method.service-account":"\u0421\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442"}'),ZI=(0,We.wZ)("ydb-tenant-objects-info",{ru:qI,en:WI}),YI=Me("ydb-external-data-source-info"),KI=e=>{var t,n,r,i;return[{label:ZI("external-objects.source-type"),value:null===(t=e.PathDescription)||void 0===t||null===(n=t.ExternalDataSourceDescription)||void 0===n?void 0:n.SourceType},EI("CreateStep",null===(r=e.PathDescription)||void 0===r||null===(i=r.Self)||void 0===i?void 0:i.CreateStep)]},QI=e=>{var t;const{Location:n,Auth:r}=(null===(t=e.PathDescription)||void 0===t?void 0:t.ExternalDataSourceDescription)||{};return[...KI(e),{label:ZI("external-objects.location"),value:(0,Le.jsx)(Il,{name:n,showStatus:!1,hasClipboardButton:!0,clipboardButtonAlwaysVisible:!0,className:YI("location")})},{label:ZI("external-objects.auth-method"),value:null!==r&&void 0!==r&&r.ServiceAccount?ZI("external-objects.auth-method.service-account"):ZI("external-objects.auth-method.none")}]},XI=e=>{let{data:t,prepareData:n}=e;const r=wI(null===t||void 0===t?void 0:t.PathDescription),{error:i}=Do((e=>e.schema));return i?(0,Le.jsx)(zc,{error:i}):t?(0,Le.jsx)(Ss,{title:r,info:n(t)}):(0,Le.jsxs)("div",{className:"error",children:["No ",r," data"]})},$I=e=>{let{data:t}=e;return(0,Le.jsx)(XI,{data:t,prepareData:QI})},JI=e=>{let{data:t}=e;return(0,Le.jsx)(XI,{data:t,prepareData:KI})},eP=Me("ydb-external-table-info"),tP=(e,t)=>{var n,r;const{CreateStep:i}=(null===(n=e.PathDescription)||void 0===n?void 0:n.Self)||{},{SourceType:o,DataSourcePath:a}=(null===(r=e.PathDescription)||void 0===r?void 0:r.ExternalTableDescription)||{},s=null===a||void 0===a?void 0:a.split("/").pop();return[{label:ZI("external-objects.source-type"),value:o},EI("CreateStep",i),{label:ZI("external-objects.data-source"),value:a&&(0,Le.jsx)("span",{title:a,children:(0,Le.jsx)(IC,{title:s||"",url:t})})}]},nP=(e,t)=>{var n,r;const i=null===(n=e.PathDescription)||void 0===n||null===(r=n.ExternalTableDescription)||void 0===r?void 0:r.Location;return[...tP(e,t),{label:ZI("external-objects.location"),value:(0,Le.jsx)(Il,{name:i,showStatus:!1,hasClipboardButton:!0,clipboardButtonAlwaysVisible:!0,className:eP("location")})}]},rP=e=>{var t,n;let{data:r,prepareData:i}=e;const o=Ca(),a=(0,Ta.mB)(o),s=(0,Ta.vF)({...a,schema:null===r||void 0===r||null===(t=r.PathDescription)||void 0===t||null===(n=t.ExternalTableDescription)||void 0===n?void 0:n.DataSourcePath}),l=wI(null===r||void 0===r?void 0:r.PathDescription),{error:c}=Do((e=>e.schema));return c?(0,Le.jsx)(zc,{error:c}):r?(0,Le.jsx)(Ss,{title:l,info:i(r,s)}):(0,Le.jsxs)("div",{className:"error",children:["No ",l," data"]})},iP=e=>{let{data:t}=e;return(0,Le.jsx)(rP,{data:t,prepareData:nP})},oP=e=>{let{data:t}=e;return(0,Le.jsx)(rP,{data:t,prepareData:tP})};function aP(e){let{state:t}=e;return t?"StandBy"in t?(0,Le.jsx)(ft,{theme:"info",children:"Standby"}):"Paused"in t?(0,Le.jsx)(ft,{theme:"info",children:"Paused"}):"Done"in t?(0,Le.jsx)(ft,{theme:"success",children:"Done"}):"Error"in t?(0,Le.jsx)(ft,{theme:"danger",children:"Error"}):(0,Le.jsx)(ft,{size:"s",children:"Unknown"}):null}const sP=JSON.parse('{"column.dstPath.name":"Dist","column.srcPath.name":"Source","everythingWithPrefix":"Everything with prefix:","noData":"No data.","title":"Replicated Paths"}'),lP=(0,We.wZ)("ydb-diagnostics-async-replication-paths",{en:sP}),cP=Me("ydb-async-replication-paths"),uP=[{name:lP("column.srcPath.name"),render:e=>{let{row:t}=e;return t.SrcPath},sortAccessor:e=>e.SrcPath},{name:lP("column.dstPath.name"),render:e=>{let{row:t}=e;return t.DstPath},sortAccessor:e=>e.DstPath}];function dP(e){let{config:t}=e;if(!t)return null;let n=lP("noData");var r,i;t.Everything&&(n=(0,Le.jsxs)("span",{children:[lP("everythingWithPrefix")," ",(0,Le.jsx)(Fi.x,{variant:"code-inline-2",children:null!==(r=null===(i=t.Everything)||void 0===i?void 0:i.DstPrefix)&&void 0!==r?r:"undefined"}),"."]}));return t.Specific&&(n=(0,Le.jsx)(qc,{data:t.Specific.Targets,settings:Lo.E6,columns:uP})),(0,Le.jsxs)("div",{className:cP(),children:[(0,Le.jsx)("div",{className:cP("title"),children:lP("title")}),n]})}function hP(e){let{connection:t}=e;return t?t.StaticCredentials?(0,Le.jsx)(ft,{value:t.StaticCredentials.User,theme:"normal",children:"user"}):"OAuthToken"in t?"OAuth":"unknown":null}const pP=JSON.parse('{"credentials.label":"Credentials","noData":"No data for entity:","srcConnection.database.label":"Source Database Path","srcConnection.endpoint.label":"Source Cluster Endpoint","state.label":"State"}'),fP=(0,We.wZ)("ydb-diagnostics-async-replication-info",{en:pP});function mP(e){var t,n,r,i,o,a,s,l,c,u,d,h,p,f,m;let{data:g}=e;const v=wI(null===g||void 0===g?void 0:g.PathDescription),{error:y}=Do((e=>e.schema));return y?(0,Le.jsx)("div",{className:"error",children:y.statusText}):g?(0,Le.jsxs)(Ai.k,{direction:"column",gap:"4",children:[(0,Le.jsx)(Ss,{title:v,info:[{label:fP("state.label"),value:(0,Le.jsx)(aP,{state:null===(t=g.PathDescription)||void 0===t||null===(n=t.ReplicationDescription)||void 0===n?void 0:n.State})},{label:fP("srcConnection.endpoint.label"),value:(0,Le.jsx)(Fi.x,{variant:"code-inline-2",children:null===(r=g.PathDescription)||void 0===r||null===(i=r.ReplicationDescription)||void 0===i||null===(o=i.Config)||void 0===o||null===(a=o.SrcConnectionParams)||void 0===a?void 0:a.Endpoint})},{label:fP("srcConnection.database.label"),value:(0,Le.jsx)(Fi.x,{variant:"code-inline-2",children:null===(s=g.PathDescription)||void 0===s||null===(l=s.ReplicationDescription)||void 0===l||null===(c=l.Config)||void 0===c||null===(u=c.SrcConnectionParams)||void 0===u?void 0:u.Database})},{label:fP("credentials.label"),value:(0,Le.jsx)(hP,{connection:null===(d=g.PathDescription)||void 0===d||null===(h=d.ReplicationDescription)||void 0===h||null===(p=h.Config)||void 0===p?void 0:p.SrcConnectionParams})}]}),(0,Le.jsx)(dP,{config:null===(f=g.PathDescription)||void 0===f||null===(m=f.ReplicationDescription)||void 0===m?void 0:m.Config})]}):(0,Le.jsxs)("div",{className:"error",children:[fP("noData")," ",v]})}const gP=JSON.parse('{"writeLagPopover":"Write lag, maximum among all topic partitions","writeIdleTimePopover":"Write idle time, maximum among all topic partitions"}'),vP=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"}'),yP=(0,We.wZ)("ydb-diagnostics-overview-topic-stats",{ru:vP,en:gP}),bP=Me("ydb-overview-topic-stats"),xP=e=>[{label:"Store size",value:(0,ks.td)(e.storeSize)},{label:(0,Le.jsx)(Po,{text:"Write idle time",popoverContent:(0,Le.jsx)(Jj,{text:yP("writeIdleTimePopover"),type:"write"})}),value:(0,Ej.tt)(e.partitionsIdleTime)},{label:(0,Le.jsx)(Po,{text:"Write lag",popoverContent:(0,Le.jsx)(Jj,{text:yP("writeLagPopover"),type:"write"})}),value:(0,Ej.tt)(e.partitionsWriteLag)},{label:"Average write speed",value:(0,Le.jsx)(Lj,{data:e.writeSpeed,withValue:!1})}],wP=e=>{const t=e.writeSpeed;return[{label:"per minute",value:(0,ks.t$)(t.perMinute)},{label:"per hour",value:(0,ks.t$)(t.perHour)},{label:"per day",value:(0,ks.t$)(t.perDay)}]},SP=()=>{const{autorefresh:e,currentSchemaPath:t}=Do((e=>e.schema)),{currentData:n,isFetching:r,error:i}=Tj.useGetTopicQuery({path:t},{pollingInterval:e}),o=r&&void 0===n,a=Do((e=>Ij(e,t)));return o?(0,Le.jsx)("div",{className:bP(),children:(0,Le.jsx)(N_,{size:"s"})}):i||!a?(0,Le.jsxs)("div",{className:bP(),children:[(0,Le.jsx)("div",{className:bP("title"),children:"Stats"}),(0,Le.jsx)(zc,{error:i})]}):(0,Le.jsxs)("div",{className:bP(),children:[(0,Le.jsx)("div",{className:bP("title"),children:"Stats"}),(0,Le.jsx)("div",{className:bP("info"),children:(0,Le.jsx)(Ss,{info:xP(a),multilineLabels:!0})}),(0,Le.jsx)("div",{className:bP("bytes-written"),children:(0,Le.jsx)(Ss,{info:wP(a)})})]})},_P=e=>{var t;const n=null===e||void 0===e||null===(t=e.PathDescription)||void 0===t?void 0:t.PersQueueGroup;if(!n)return[];const{Partitions:r=[],PQTabletConfig:i={PartitionConfig:{LifetimeSeconds:0}}}=n,{Codecs:o,MeteringMode:a}=i,{WriteSpeedInBytesPerSecond:s,StorageLimitBytes:l}=i.PartitionConfig;return[...Ts(jI,{Partitions:r,PQTabletConfig:i}),...Ts(PI,{StorageLimitBytes:l,WriteSpeedInBytesPerSecond:s}),...Ts(II,{Codecs:o,MeteringMode:a})]},CP=(e,t)=>{var n,r,i;if(!e&&!t)return[];const o=null===e||void 0===e||null===(n=e.PathDescription)||void 0===n?void 0:n.CdcStreamDescription,{Mode:a,Format:s}=o||{};return[EI("CreateStep",null===e||void 0===e||null===(r=e.PathDescription)||void 0===r||null===(i=r.Self)||void 0===i?void 0:i.CreateStep),...Ts(DI,{Mode:a,Format:s}),..._P(t)]},EP=e=>{let{data:t,topic:n}=e;const r=wI(null===t||void 0===t?void 0:t.PathDescription),{error:i}=Do((e=>e.schema));return i?(0,Le.jsx)("div",{className:"error",children:i.statusText}):t&&n?(0,Le.jsxs)("div",{children:[(0,Le.jsx)(Ss,{title:r,info:CP(t,n)}),(0,Le.jsx)(SP,{})]}):(0,Le.jsxs)("div",{className:"error",children:["No ",r," data"]})},TP=JSON.parse('{"tableStats":"Table Stats","tabletMetrics":"Tablet Metrics","partitionConfig":"Partition Config"}'),OP=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"}'),NP=(0,We.wZ)("ydb-diagnostics-overview-table-info",{ru:OP,en:TP}),kP=e=>e.SchemaPresetName&&void 0!==e.SchemaPresetId,jP=e=>{var t,n,r;const i=null===e||void 0===e?void 0:e.reduce(((e,t)=>e+((0,Ou.kE)(t.Bytes)?Number(t.Bytes):0)),0),o=null===e||void 0===e?void 0:e.reduce(((e,t)=>e+((0,Ou.kE)(t.Rows)?Number(t.Rows):0)),0),a=null===e||void 0===e?void 0:e.reduce(((e,t)=>(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=(0,ks.uf)(o))&&void 0!==n?n:0},{label:"DataSize",value:null!==(r=(0,ks.td)(i))&&void 0!==r?r:0}]},IP=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((0,Ej.tt)(1e3*e.Enabled.ExpireAfterSeconds,1))}}};const PP=(e,t,n)=>{if(!e)return{};const{PathDescription:r={}}=e,{TableStats:i={},TabletMetrics:o={},Table:{PartitionConfig:a={},TTLSettings:s}={},ColumnTableDescription:l={}}=r,{PartCount:c,RowCount:u,DataSize:d,IndexSize:h,LastAccessTime:p,LastUpdateTime:f,ImmediateTxCompleted:m,PlannedTxCompleted:g,TxRejectedByOverload:v,TxRejectedBySpace:y,TxCompleteLagMsec:b,InFlightTxCount:x,RowUpdates:w,RowDeletes:S,RowReads:_,RangeReads:C,RangeReadRows:E}=i,{FollowerGroups:T,FollowerCount:O,CrossDataCenterFollowerCount:N}=a;let k,j=[];switch(t){case hj.gb.EPathTypeTable:j=((e,t)=>{var n;const{PartitioningPolicy:r={},FollowerGroups:i,EnableFilterByKey:o}=e,a=[],s=r.SizeToSplit&&Number(r.SizeToSplit)>0?"Enabled, split size: ".concat((0,ks.td)(r.SizeToSplit)):"Disabled",l=null!==(n=r.SplitByLoadSettings)&&void 0!==n&&n.Enabled?"Enabled":"Disabled";if(a.push({label:"Partitioning by size",value:s},{label:"Partitioning by load",value:l},{label:"Min number of partitions",value:(0,ks.uf)(r.MinPartitionsCount||0)}),r.MaxPartitionsCount&&a.push({label:"Max number of partitions",value:(0,ks.uf)(r.MaxPartitionsCount)}),i&&i.length){const{RequireAllDataCenters:e,FollowerCountPerDataCenter:t,FollowerCount:n}=i[0];let r;r=e&&t?"PER_AZ: ".concat(n):"ANY_AZ: ".concat(n),a.push({label:"Read replicas (followers)",value:r})}if(t){const e=IP(t);e&&a.push(e)}return a.push({label:"Bloom filter",value:o?"Enabled":"Disabled"}),a})(a,s);break;case hj.gb.EPathTypeColumnTable:j=function(e){const t=[];if(t.push({label:"Standalone",value:String(!kP(e))}),e.Sharding&&e.Sharding.HashSharding&&t.push({label:"Sharding",value:"hash"}),e.TtlSettings){const n=IP(null===e||void 0===e?void 0:e.TtlSettings);n&&t.push(n)}return t}(l)}k=t===hj.gb.EPathTypeColumnTable&&kP(l)?[jP(n)]:[Ts(LI,{PartCount:c,RowCount:u,DataSize:d,IndexSize:h}),Ts(LI,{LastAccessTime:p,LastUpdateTime:f}),Ts(LI,{ImmediateTxCompleted:m,PlannedTxCompleted:g,TxRejectedByOverload:v,TxRejectedBySpace:y,TxCompleteLagMsec:b,InFlightTxCount:x}),Ts(LI,{RowUpdates:w,RowDeletes:S,RowReads:_,RangeReads:C,RangeReadRows:E})];const I=Ts(AI,o);let P=[];return Array.isArray(T)&&T.length>0?P=Ts(RI,T[0]):void 0!==O?P.push(MI("FollowerCount",O)):void 0!==N&&P.push(MI("CrossDataCenterFollowerCount",N)),{generalInfo:j,tableStatsInfo:k,tabletMetricsInfo:I,partitionConfigInfo:P}},DP=Me("ydb-diagnostics-table-info"),AP=e=>{let{data:t,type:n,olapStats:r}=e;const i=wI(null===t||void 0===t?void 0:t.PathDescription),{generalInfo:o=[],tableStatsInfo:s=[],tabletMetricsInfo:l=[],partitionConfigInfo:c=[]}=a.useMemo((()=>PP(t,n,r)),[t,n,r]);return(0,Le.jsxs)("div",{className:DP(),children:[(0,Le.jsx)(Ss,{info:o,title:i,className:DP("info-block"),renderEmptyState:()=>(0,Le.jsx)("div",{className:DP("title"),children:i})}),(0,Le.jsxs)("div",{className:DP("row"),children:[(0,Le.jsx)("div",{className:DP("col"),children:s.map(((e,t)=>(0,Le.jsx)(Ss,{info:e,title:0===t?NP("tableStats"):void 0,className:DP("info-block"),renderEmptyState:()=>null},t)))}),l.length>0||c.length>0?(0,Le.jsxs)("div",{className:DP("col"),children:[(0,Le.jsx)(Ss,{info:l,title:NP("tabletMetrics"),className:DP("info-block"),renderEmptyState:()=>null}),(0,Le.jsx)(Ss,{info:c,title:NP("partitionConfig"),className:DP("info-block"),renderEmptyState:()=>null})]}):null]})]})},RP=e=>{let{data:t}=e;const n=wI(null===t||void 0===t?void 0:t.PathDescription),{error:r}=Do((e=>e.schema));return r?(0,Le.jsx)("div",{className:"error",children:r.statusText}):t?(0,Le.jsxs)("div",{children:[(0,Le.jsx)(Ss,{title:n,info:_P(t)}),(0,Le.jsx)(SP,{})]}):(0,Le.jsxs)("div",{className:"error",children:["No ",n," data"]})};const MP=function(e){let{type:t,tenantName:n}=e;const{autorefresh:r,currentSchemaPath:i}=Do((e=>e.schema)),o=i||n,a=(0,pj.vp)(t)&&(0,pj.Jp)(t)?{path:o}:zl.CN,{currentData:s,isFetching:l}=VI.useGetOlapStatsQuery(a,{pollingInterval:r}),c=l&&void 0===s,{result:u}=s||{result:void 0},d=(0,pj.St)(t),h=Do((e=>(0,Vk.eU)(e,i,t)),ae.wU);let p=zl.CN;o&&(d?h&&(p=[o,...h]):p=[o]);const{currentData:f,isFetching:m,error:g}=GI.useGetOverviewQuery(p,{pollingInterval:r}),v=m&&void 0===f,{data:y,additionalData:b}=f||{};return v||c||d&&!h?(0,Le.jsx)(N_,{size:"m"}):g?(0,Le.jsx)(zc,{error:g}):(0,Le.jsx)("div",{children:(()=>{var e;const n=null!==y&&void 0!==y?y:void 0,r={[hj.gb.EPathTypeInvalid]:void 0,[hj.gb.EPathTypeDir]:void 0,[hj.gb.EPathTypeTable]:void 0,[hj.gb.EPathTypeSubDomain]:void 0,[hj.gb.EPathTypeTableIndex]:()=>(0,Le.jsx)(zI,{data:n}),[hj.gb.EPathTypeExtSubDomain]:void 0,[hj.gb.EPathTypeColumnStore]:void 0,[hj.gb.EPathTypeColumnTable]:void 0,[hj.gb.EPathTypeCdcStream]:()=>{var e;return(0,Le.jsx)(EP,{data:n,topic:null!==(e=null===b||void 0===b?void 0:b[0])&&void 0!==e?e:void 0})},[hj.gb.EPathTypePersQueueGroup]:()=>(0,Le.jsx)(RP,{data:n}),[hj.gb.EPathTypeExternalTable]:()=>(0,Le.jsx)(iP,{data:n}),[hj.gb.EPathTypeExternalDataSource]:()=>(0,Le.jsx)($I,{data:n}),[hj.gb.EPathTypeView]:void 0,[hj.gb.EPathTypeReplication]:()=>(0,Le.jsx)(mP,{data:n})};return t&&(null===(e=r[t])||void 0===e?void 0:e.call(r))||(0,Le.jsx)(AP,{data:n,type:t,olapStats:u})})()})};var LP=n(30696),FP=n(8978),zP=n(66307),BP=n(30746);const UP=()=>"ck.".concat(((e,t)=>{let n="";for(let r=e;r>0;--r)n+=t[Math.floor(Math.random()*t.length)];return n})(10,"0123456789abcdefghijklmnopqrstuvwxyz")),HP=a.memo,VP=(0,Re.withNaming)({e:"__",m:"_"}),GP=(0,Re.withNaming)({n:"chartkit-",e:"__",m:"_"});class WP extends a.Component{constructor(){super(...arguments),this.state={error:void 0},this.resetError=()=>{this.state.error&&this.setState({error:void 0})}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(){var e,t;const{error:n}=this.state;n&&(null===(t=(e=this.props).onError)||void 0===t||t.call(e,{error:n}))}componentDidUpdate(e){if(e.data!==this.props.data){const{error:e}=this.state;e&&"code"in e&&e.code===BP.Wn.NO_DATA&&this.resetError()}}render(){const{error:e}=this.state;if(e){const t=function(e){const t="code"in e&&e.code;return(e.message||t||(0,zP.a)("error","label_unknown-error")).toString()}(e);return this.props.renderError?this.props.renderError({error:e,message:t,resetError:this.resetError}):a.createElement("div",null,t)}return this.props.children}}const qP=GP("loader"),ZP=e=>{var{renderPluginLoader:t}=e,n=(0,nt._T)(e,["renderPluginLoader"]);const r=null===t||void 0===t?void 0:t();return"undefined"!==typeof r?r:a.createElement("div",{className:qP()},a.createElement(Di,Object.assign({},n)))},YP=VP("chartkit"),KP=e=>{const t=a.useRef(),{instanceRef:n,id:r,type:i,isMobile:o,renderPluginLoader:s}=e,l=(0,nt._T)(e,["instanceRef","id","type","isMobile","renderPluginLoader"]),c=a.useMemo((()=>UP()),[]),u=r||c,d=FP.X.get("lang"),h=FP.X.get("plugins").find((e=>e.type===i));if(!h)throw new BP.Dx({code:BP.Wn.UNKNOWN_PLUGIN,message:(0,zP.a)("error","label_unknown-plugin",{type:i})});const p=h.renderer;return a.useImperativeHandle(n,(()=>({reflow(e){var n;(null===(n=t.current)||void 0===n?void 0:n.reflow)&&t.current.reflow(e)}})),[]),a.createElement(a.Suspense,{fallback:a.createElement(ZP,{renderPluginLoader:s})},a.createElement("div",{className:YP({mobile:o},"chartkit-theme_common")},a.createElement(p,Object.assign({ref:t,id:u,lang:d},l))))},QP=HP(a.forwardRef((function(e,t){return a.createElement(WP,{onError:e.onError,data:e.data,renderError:e.renderError},a.createElement(KP,Object.assign({instanceRef:t},e)))}))),XP={type:"yagr",renderer:a.lazy((()=>Promise.all([n.e(7645),n.e(4983)]).then(n.bind(n,87645))))};var $P={grad:.9,turn:360,rad:360/(2*Math.PI)},JP=function(e){return"string"==typeof e?e.length>0:"number"==typeof e},eD=function(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=Math.pow(10,t)),Math.round(n*e)/n+0},tD=function(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),e>n?n:e>t?e:t},nD=function(e){return(e=isFinite(e)?e%360:0)>0?e:e+360},rD=function(e){return{r:tD(e.r,0,255),g:tD(e.g,0,255),b:tD(e.b,0,255),a:tD(e.a)}},iD=function(e){return{r:eD(e.r),g:eD(e.g),b:eD(e.b),a:eD(e.a,3)}},oD=/^#([0-9a-f]{3,8})$/i,aD=function(e){var t=e.toString(16);return t.length<2?"0"+t:t},sD=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,o=Math.max(t,n,r),a=o-Math.min(t,n,r),s=a?o===t?(n-r)/a:o===n?2+(r-t)/a:4+(t-n)/a:0;return{h:60*(s<0?s+6:s),s:o?a/o*100:0,v:o/255*100,a:i}},lD=function(e){var t=e.h,n=e.s,r=e.v,i=e.a;t=t/360*6,n/=100,r/=100;var o=Math.floor(t),a=r*(1-n),s=r*(1-(t-o)*n),l=r*(1-(1-t+o)*n),c=o%6;return{r:255*[r,s,a,a,l,r][c],g:255*[l,r,r,s,a,a][c],b:255*[a,a,l,r,r,s][c],a:i}},cD=function(e){return{h:nD(e.h),s:tD(e.s,0,100),l:tD(e.l,0,100),a:tD(e.a)}},uD=function(e){return{h:eD(e.h),s:eD(e.s),l:eD(e.l),a:eD(e.a,3)}},dD=function(e){return lD((n=(t=e).s,{h:t.h,s:(n*=((r=t.l)<50?r:100-r)/100)>0?2*n/(r+n)*100:0,v:r+n,a:t.a}));var t,n,r},hD=function(e){return{h:(t=sD(e)).h,s:(i=(200-(n=t.s))*(r=t.v)/100)>0&&i<200?n*r/100/(i<=100?i:200-i)*100:0,l:i/2,a:t.a};var t,n,r,i},pD=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,fD=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,mD=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,gD=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,vD={string:[[function(e){var t=oD.exec(e);return t?(e=t[1]).length<=4?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:4===e.length?eD(parseInt(e[3]+e[3],16)/255,2):1}:6===e.length||8===e.length?{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16),a:8===e.length?eD(parseInt(e.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(e){var t=mD.exec(e)||gD.exec(e);return t?t[2]!==t[4]||t[4]!==t[6]?null:rD({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:void 0===t[7]?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(e){var t=pD.exec(e)||fD.exec(e);if(!t)return null;var n,r,i=cD({h:(n=t[1],r=t[2],void 0===r&&(r="deg"),Number(n)*($P[r]||1)),s:Number(t[3]),l:Number(t[4]),a:void 0===t[5]?1:Number(t[5])/(t[6]?100:1)});return dD(i)},"hsl"]],object:[[function(e){var t=e.r,n=e.g,r=e.b,i=e.a,o=void 0===i?1:i;return JP(t)&&JP(n)&&JP(r)?rD({r:Number(t),g:Number(n),b:Number(r),a:Number(o)}):null},"rgb"],[function(e){var t=e.h,n=e.s,r=e.l,i=e.a,o=void 0===i?1:i;if(!JP(t)||!JP(n)||!JP(r))return null;var a=cD({h:Number(t),s:Number(n),l:Number(r),a:Number(o)});return dD(a)},"hsl"],[function(e){var t=e.h,n=e.s,r=e.v,i=e.a,o=void 0===i?1:i;if(!JP(t)||!JP(n)||!JP(r))return null;var a=function(e){return{h:nD(e.h),s:tD(e.s,0,100),v:tD(e.v,0,100),a:tD(e.a)}}({h:Number(t),s:Number(n),v:Number(r),a:Number(o)});return lD(a)},"hsv"]]},yD=function(e,t){for(var n=0;n<t.length;n++){var r=t[n][0](e);if(r)return[r,t[n][1]]}return[null,void 0]},bD=function(e){return"string"==typeof e?yD(e.trim(),vD.string):"object"==typeof e&&null!==e?yD(e,vD.object):[null,void 0]},xD=function(e,t){var n=hD(e);return{h:n.h,s:tD(n.s+100*t,0,100),l:n.l,a:n.a}},wD=function(e){return(299*e.r+587*e.g+114*e.b)/1e3/255},SD=function(e,t){var n=hD(e);return{h:n.h,s:n.s,l:tD(n.l+100*t,0,100),a:n.a}},_D=function(){function e(e){this.parsed=bD(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return e.prototype.isValid=function(){return null!==this.parsed},e.prototype.brightness=function(){return eD(wD(this.rgba),2)},e.prototype.isDark=function(){return wD(this.rgba)<.5},e.prototype.isLight=function(){return wD(this.rgba)>=.5},e.prototype.toHex=function(){return t=(e=iD(this.rgba)).r,n=e.g,r=e.b,o=(i=e.a)<1?aD(eD(255*i)):"","#"+aD(t)+aD(n)+aD(r)+o;var e,t,n,r,i,o},e.prototype.toRgb=function(){return iD(this.rgba)},e.prototype.toRgbString=function(){return t=(e=iD(this.rgba)).r,n=e.g,r=e.b,(i=e.a)<1?"rgba("+t+", "+n+", "+r+", "+i+")":"rgb("+t+", "+n+", "+r+")";var e,t,n,r,i},e.prototype.toHsl=function(){return uD(hD(this.rgba))},e.prototype.toHslString=function(){return t=(e=uD(hD(this.rgba))).h,n=e.s,r=e.l,(i=e.a)<1?"hsla("+t+", "+n+"%, "+r+"%, "+i+")":"hsl("+t+", "+n+"%, "+r+"%)";var e,t,n,r,i},e.prototype.toHsv=function(){return e=sD(this.rgba),{h:eD(e.h),s:eD(e.s),v:eD(e.v),a:eD(e.a,3)};var e},e.prototype.invert=function(){return CD({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},e.prototype.saturate=function(e){return void 0===e&&(e=.1),CD(xD(this.rgba,e))},e.prototype.desaturate=function(e){return void 0===e&&(e=.1),CD(xD(this.rgba,-e))},e.prototype.grayscale=function(){return CD(xD(this.rgba,-1))},e.prototype.lighten=function(e){return void 0===e&&(e=.1),CD(SD(this.rgba,e))},e.prototype.darken=function(e){return void 0===e&&(e=.1),CD(SD(this.rgba,-e))},e.prototype.rotate=function(e){return void 0===e&&(e=15),this.hue(this.hue()+e)},e.prototype.alpha=function(e){return"number"==typeof e?CD({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):eD(this.rgba.a,3);var t},e.prototype.hue=function(e){var t=hD(this.rgba);return"number"==typeof e?CD({h:e,s:t.s,l:t.l,a:t.a}):eD(t.h)},e.prototype.isEqual=function(e){return this.toHex()===CD(e).toHex()},e}(),CD=function(e){return e instanceof _D?e:new _D(e)};const ED=["#7EB26D","#EAB839","#6ED0E0","#EF843C","#E24D42","#1F78C1","#BA43A9","#705DA0","#508642","#CCA300"];const TD=e=>{switch(e){case"ms":return OD;case"size":return ND;case"percent":return kD;default:return}};function OD(e){return null===e?Lo.jX:(0,Ej.zm)((0,ks.W0)(jD(e),2))}function ND(e){return null===e?Lo.jX:(0,BC.td)({value:jD(e),precision:3})}function kD(e){return null===e?Lo.jX:Math.round(100*jD(e))+"%"}function jD(e){return(0,Ou.kE)(e)?Number(e):0}const ID={"30m":30*Lo.sU,"1h":Lo.RQ,"1d":Lo.ii,"1w":7*Lo.ii},PD=JSON.parse('{"not-supported":"Charts are not supported on current ydb version"}'),DD=(0,We.wZ)("ydb-metric-chart",{en:PD}),AD=Dl.h.injectEndpoints({endpoints:e=>({getChartData:e.query({queryFn:async(e,t)=>{let{signal:n}=t;try{const t=await async function(e){let{database:t,metrics:n,timeFrame:r,maxDataPoints:i}=e,{signal:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=n.map((e=>"target=".concat(e.target))).join("&"),s=Math.round(Date.now()/1e3),l=s-ID[r];return window.api.getChartData({target:a,from:l,until:s,maxDataPoints:i,database:t},{signal:o})}(e,{signal:n});if(Array.isArray(t)){const n=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;const n=e.map((e=>{let{datapoints:n,target:r}=e;const i=t.find((e=>e.target===r));if(!i)return;const o=n.map((e=>e[0]));return{...i,data:o}})).filter((e=>void 0!==e));return{timeline:e[0].datapoints.map((e=>1e3*e[1])),metrics:n}}(t,e.metrics);return{data:n}}return{error:new Error("string"===typeof t?DD("not-supported"):t.error)}}catch(r){return{error:r}}},providesTags:["All"],keepUnusedDataFor:0})}),overrideExisting:"throw"}),RD=Me("ydb-metric-chart");FP.X.set({plugins:[XP]});const MD=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{dataType:n,scaleRange:r}=t,i=TD(n),o=!e.metrics.length,a=e.metrics.map(((e,t)=>{const n=e.color||ED[t],r=function(e,t){const n=CD(e);if(!n.isValid())throw new Error("Invalid color is passed");return n.alpha(t).toRgbString()}(n,.1);return{id:e.target,name:e.title||e.target,data:e.data,formatter:i,lineColor:n,color:r,legendColorKey:"lineColor"}}));return{data:{timeline:e.timeline,graphs:a},libraryConfig:{chart:{size:{padding:o?[10,0,10,0]:void 0},series:{type:"area",spanGaps:!0,lineWidth:1.5},select:{zoom:!1}},scales:{y:{type:"linear",range:"nice",min:(null===r||void 0===r?void 0:r.min)||0,max:null===r||void 0===r?void 0:r.max}},axes:{y:{values:i?(e,t)=>t.map(i):void 0}},tooltip:{show:!0,tracking:"sticky"}}}},LD={timeline:[],metrics:[]},FD=e=>{let{database:t,title:n,metrics:r,timeFrame:i="1h",autorefresh:o,width:s=400,height:l=s/1.5,chartOptions:c,onChartDataStatusChange:u,isChartVisible:d}=e;const{currentData:h,error:p,isFetching:f,status:m}=AD.useGetChartDataQuery({database:t,metrics:r,timeFrame:i,maxDataPoints:s/2},{pollingInterval:o}),g=f&&!h;a.useEffect((()=>null===u||void 0===u?void 0:u("fulfilled"===m?"success":"loading")),[m,u]);const v=MD(h||LD,c);return(0,Le.jsxs)("div",{className:RD(null),style:{height:l,width:s},children:[(0,Le.jsx)("div",{className:RD("title"),children:n}),g?(0,Le.jsx)(N_,{}):d?(0,Le.jsxs)("div",{className:RD("chart"),children:[(0,Le.jsx)(QP,{type:"yagr",data:v}),p?(0,Le.jsx)(zc,{className:RD("error"),error:p}):null]}):null]})},zD=Me("ydb-timeframe-selector"),BD=e=>{let{value:t,onChange:n,className:r}=e;return(0,Le.jsx)("div",{className:zD(null,r),children:Object.keys(ID).map((e=>(0,Le.jsx)(Ie.z,{view:"flat",selected:t===e,onClick:()=>n(e),children:e},e)))})},UD=Me("ydb-tenant-dashboard"),HD=e=>{let{database:t,charts:n}=e;const[r,i]=a.useState(!0),[o="1h",s]=((e,t,n)=>{const r=(0,a.useMemo)((()=>({[e]:null!=t?t:"inherit"})),[e,t]),[i,o]=gc(r,n);return[i[e],(0,a.useCallback)(((t,n)=>o("function"===typeof t?n=>{const r=t(n[e]);return{[e]:r}}:{[e]:t},n)),[e,o])]})("timeframe",Gl),{autorefresh:l}=Do((e=>e.schema)),c=r?0:l,u=e=>{"success"===e&&i(!1)},d=1===n.length?872:428;return(0,Le.jsxs)("div",{className:UD(null),style:{display:r?"none":void 0},children:[(0,Le.jsx)("div",{className:UD("controls"),children:(0,Le.jsx)(BD,{value:o,onChange:s})}),(0,Le.jsx)("div",{className:UD("charts"),children:n.map((e=>{const n=e.metrics.map((e=>{let{target:t}=e;return t})).join("&");return(0,Le.jsx)(FD,{database:t,title:e.title,metrics:e.metrics,timeFrame:o,chartOptions:e.options,autorefresh:c,width:d,height:285.3333333333333,onChartDataStatusChange:u,isChartVisible:!r},n)}))})]})},VD=JSON.parse('{"no-data":"No data","no-pools-data":"No pools data","top-nodes.empty-data":"No such nodes","top-groups.empty-data":"No such groups","top":"Top","nodes":"nodes","shards":"shards","groups":"groups","queries":"queries","tables":"tables","by-pools-usage":"by pools usage","by-cpu-time":"by cpu time","by-cpu-usage":"by cpu usage","by-load":"by load","by-memory":"by memory","by-usage":"by usage","by-size":"by size","cards.cpu-label":"CPU","cards.storage-label":"Storage","cards.memory-label":"Memory","charts.queries-per-second":"Queries per second","charts.transaction-latency":"Transactions latencies {{percentile}}","charts.cpu-usage":"CPU usage by pool","charts.storage-usage":"Tablet storage usage","charts.memory-usage":"Memory usage","storage.tablet-storage-title":"Tablet storage","storage.tablet-storage-description":"Size of user data and indexes stored in schema objects (tables, topics, etc.)","storage.db-storage-title":"Database storage","storage.db-storage-description":"Size of data stored in distributed storage with all overheads for redundancy"}'),GD=(0,We.wZ)("ydb-diagnostics-tenant-overview",{en:VD}),WD=[{title:GD("charts.queries-per-second"),metrics:[{target:"queries.requests",title:GD("charts.queries-per-second")}]},{title:GD("charts.transaction-latency",{percentile:""}),metrics:[{target:"queries.latencies.p50",title:GD("charts.transaction-latency",{percentile:"p50"})},{target:"queries.latencies.p75",title:GD("charts.transaction-latency",{percentile:"p75"})},{target:"queries.latencies.p90",title:GD("charts.transaction-latency",{percentile:"p90"})},{target:"queries.latencies.p99",title:GD("charts.transaction-latency",{percentile:"p99"})}],options:{dataType:"ms"}}],qD=e=>{let{database:t}=e;return(0,Le.jsx)(HD,{database:t,charts:WD})};var ZD=n(87863),YD=n.n(ZD);let KD,QD;!function(e){e.UNSPECIFIED="UNSPECIFIED",e.GOOD="GOOD",e.DEGRADED="DEGRADED",e.MAINTENANCE_REQUIRED="MAINTENANCE_REQUIRED",e.EMERGENCY="EMERGENCY"}(KD||(KD={})),function(e){e.UNSPECIFIED="UNSPECIFIED",e.GREY="GREY",e.GREEN="GREEN",e.BLUE="BLUE",e.YELLOW="YELLOW",e.ORANGE="ORANGE",e.RED="RED"}(QD||(QD={}));const XD={[QD.UNSPECIFIED]:al.K.Grey,[QD.GREY]:al.K.Grey,[QD.GREEN]:al.K.Green,[QD.BLUE]:al.K.Blue,[QD.YELLOW]:al.K.Yellow,[QD.ORANGE]:al.K.Orange,[QD.RED]:al.K.Red},$D=Me("issue-tree-item"),JD=e=>{let{status:t,message:n,type:r,onClick:i}=e;return(0,Le.jsxs)("div",{className:$D(),onClick:i,children:[(0,Le.jsx)("div",{className:$D("field",{status:!0}),children:(0,Le.jsx)(Il,{mode:"icons",status:t,name:r})}),(0,Le.jsx)("div",{className:$D("field",{message:!0}),children:n})]})},eA=Me("issue-tree"),tA=e=>{let{issueTree:t}=e;const[n,r]=a.useState({}),i=a.useCallback((e=>e?(0,Le.jsx)("div",{className:eA("info-panel"),children:(0,Le.jsx)(bs(),{data:e,search:!1,isExpanded:()=>!0,className:eA("inspector")})}):null),[]),o=a.useCallback((e=>e.map((e=>{const{id:t}=e,{status:a,message:s,type:l,reasonsItems:c,level:u,...d}=e,h="undefined"===typeof n[t]||n[t],p=()=>{r((e=>({...e,[t]:!h})))};return(0,Le.jsxs)(aC,{name:(0,Le.jsx)(JD,{status:XD[a],message:s,type:l}),collapsed:h,hasArrow:!0,onClick:p,onArrowClick:p,level:u-1,children:[i(YD()(d,["reason"])),o(c||[])]},t)}))),[n,i]);return(0,Le.jsx)("div",{className:eA(),children:(0,Le.jsx)("div",{className:eA("block"),children:o([t])})})},nA=JSON.parse('{"title.healthcheck":"Healthcheck","label.update":"Update","label.show-details":"Show details","label.issues":"Issues:","status_message.ok":"No issues","no-data":"no healthcheck data"}'),rA=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","label.issues":"\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b:","status_message.ok":"\u041d\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c","no-data":"\u043d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 healthcheck"}'),iA=(0,We.wZ)("ydb-diagnostics-healthcheck",{ru:rA,en:nA}),oA=Me("healthcheck");function aA(e){const{issueTrees:t,loading:n,error:r}=e;return(0,Le.jsx)("div",{className:oA("details"),children:(0,Le.jsx)("div",{className:oA("details-content-wrapper"),children:r?(0,Le.jsx)(zc,{error:r,defaultMessage:iA("no-data")}):n?(0,Le.jsx)(N_,{size:"m"}):t&&t.length?(0,Le.jsx)(a.Fragment,{children:t.map((e=>(0,Le.jsx)(tA,{issueTree:e},e.id)))}):iA("status_message.ok")})})}var sA=n(35240);const lA=Me("ydb-diagnostic-card");function cA(e){let{children:t,className:n,active:r}=e;return(0,Le.jsx)("div",{className:lA({active:r},n),children:t})}const uA=Me("healthcheck");function dA(e){const{selfCheckResult:t,issuesStatistics:n,loading:r,onUpdate:i,error:o,active:s}=e;return(0,Le.jsxs)(cA,{className:uA("preview"),active:s,children:[(()=>{const e=t.toLowerCase();return r?null:(0,Le.jsxs)("div",{className:uA("preview-header"),children:[(0,Le.jsxs)("div",{className:uA("preview-title-wrapper"),children:[(0,Le.jsx)("div",{className:uA("preview-title"),children:iA("title.healthcheck")}),(0,Le.jsx)(Ie.z,{size:"s",onClick:e=>{e.preventDefault(),i()},loading:r,view:"flat-secondary",children:(0,Le.jsx)(we.J,{data:IO,size:20})})]}),(0,Le.jsx)("div",{className:uA("self-check-status-indicator",{[e]:!0}),children:t})]})})(),o?(0,Le.jsx)(zc,{error:o,defaultMessage:iA("no-data")}):r?(0,Le.jsx)(N_,{size:"m"}):(0,Le.jsx)("div",{className:uA("preview-content"),children:n&&n.length?(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)("div",{children:iA("label.issues")}),(0,Le.jsx)("div",{className:uA("issues-statistics"),children:n.map((e=>{let[t,n]=e;return(0,Le.jsx)(Il,{mode:"icons",status:XD[t],label:n.toString(),size:"l"},t)}))})]}):iA("status_message.ok")})]})}const hA=Me("ydb-metrics-card"),pA=e=>{let t;return"Warning"===e&&(t=al.K.Yellow),"Danger"===e&&(t=al.K.Red),t?(0,Le.jsx)(kl,{status:t,mode:"icons",size:"l"}):null};function fA(e){let{active:t,label:n,status:r,metrics:i}=e;return(0,Le.jsxs)(cA,{className:hA({active:t}),active:t,children:[(0,Le.jsxs)("div",{className:hA("header"),children:[n&&(0,Le.jsx)("div",{className:hA("label"),children:n}),pA(r)]}),(0,Le.jsx)("div",{className:hA("content"),children:i.map(((e,t)=>{let{title:n,...r}=e;return(0,Le.jsxs)("div",{className:hA("metric"),children:[(0,Le.jsx)("div",{className:hA("metric-title"),children:n}),(0,Le.jsx)(Iu,{size:"xs",colorizeProgress:!0,...r})]},t)}))})]})}const mA=Me("metrics-cards");function gA(e){let{poolsCpuStats:t,memoryStats:n,blobStorageStats:r,tabletStorageStats:i,issuesStatistics:o,selfCheckResult:a,fetchHealthcheck:s,healthcheckLoading:l,healthcheckError:c}=e;const u=Ca(),{metricsTab:d}=Do((e=>e.tenant)),h=(0,Ta.mB)(u),p=e=>e===d?"":e,f={[us.Xk.cpu]:fs({...h,[ds.metricsTab]:p(us.Xk.cpu)}),[us.Xk.storage]:fs({...h,[ds.metricsTab]:p(us.Xk.storage)}),[us.Xk.memory]:fs({...h,[ds.metricsTab]:p(us.Xk.memory)}),[us.Xk.healthcheck]:fs({...h,[ds.metricsTab]:p(us.Xk.healthcheck)})};return(0,Le.jsxs)("div",{className:mA(),children:[(0,Le.jsx)(bl,{to:f.cpu,className:mA("tab"),children:(0,Le.jsx)(vA,{poolsCpuStats:t,active:d===us.Xk.cpu})}),(0,Le.jsx)(bl,{to:f.storage,className:mA("tab"),children:(0,Le.jsx)(yA,{blobStorageStats:r,tabletStorageStats:i,active:d===us.Xk.storage})}),(0,Le.jsx)(bl,{to:f.memory,className:mA("tab"),children:(0,Le.jsx)(bA,{memoryStats:n,active:d===us.Xk.memory})}),(0,Le.jsx)(bl,{to:f.healthcheck,className:mA("tab"),children:(0,Le.jsx)(dA,{selfCheckResult:a,issuesStatistics:o,onUpdate:s,loading:l,error:c,active:d===us.Xk.healthcheck})})]})}function vA(e){let{poolsCpuStats:t=[],active:n}=e,r=sA.L.Unspecified;const i=t.filter((e=>!("Batch"===e.name||"IO"===e.name))).map((e=>{const{name:t,usage:n,limit:i,used:o}=e,a=(0,LP.Vn)(n);return sA.l[a]>sA.l[r]&&(r=a),{title:t,value:o,capacity:i,warningThreshold:LP.hJ,dangerThreshold:LP.Gz}}));return(0,Le.jsx)(fA,{label:GD("cards.cpu-label"),active:n,metrics:i,status:r})}function yA(e){let{blobStorageStats:t=[],tabletStorageStats:n,active:r}=e,i=sA.L.Unspecified;const o=(n||t).map((e=>{const{name:t,used:n,limit:r,usage:o}=e,a=(0,LP._W)(o);return sA.l[a]>sA.l[i]&&(i=a),{title:t,value:n,capacity:r,warningThreshold:LP._g,dangerThreshold:LP.nD,formatValues:ks.QO}}));return(0,Le.jsx)(fA,{label:GD("cards.storage-label"),active:r,metrics:o,status:i})}function bA(e){let{active:t,memoryStats:n=[]}=e,r=sA.L.Unspecified;const i=n.map((e=>{const{name:t,used:n,limit:i,usage:o}=e,a=(0,LP.Lv)(o);return sA.l[a]>sA.l[r]&&(r=a),{title:t,value:n,capacity:i,warningThreshold:LP.B8,dangerThreshold:LP.nr,formatValues:ks.QO}}));return(0,Le.jsx)(fA,{label:GD("cards.memory-label"),active:t,metrics:i,status:r})}const xA=Dl.h.injectEndpoints({endpoints:e=>({getTopNodes:e.query({queryFn:async(e,t)=>{let{signal:n}=t;try{const t=await window.api.getNodes({type:"any",sortOrder:-1,limit:Lo.fl,...e},{signal:n});return{data:iu(t).Nodes}}catch(r){return{error:r}}},providesTags:["All"]})}),overrideExisting:"throw"}),wA=Me("tenant-overview");function SA(e){let{title:t,error:n,loading:r,tableClassNameModifiers:i={},...o}=e;return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)("div",{className:wA("title"),children:t}),(0,Le.jsx)("div",{className:wA("table",i),children:n?(0,Le.jsx)(zc,{error:n}):r?(0,Le.jsx)(Qc,{rows:Lo.fl}):(0,Le.jsx)(qc,{settings:Lo.E6,...o})})]})}const _A=e=>{let{prefix:t=GD("top"),entity:n,postfix:r,link:i}=e;return i?(0,Le.jsxs)(a.Fragment,{children:[t," ",(0,Le.jsx)(_l,{to:i,children:n})," ",r]}):"".concat(t," ").concat(n," ").concat(r)};function CA(e){let{path:t,additionalNodesProps:n}=e;const r=Oa(),{autorefresh:i}=Do((e=>e.schema)),o=(a=null===n||void 0===n?void 0:n.getNodeRef,[dd,rd,od(a)]);var a;const{currentData:s,isFetching:l,error:c}=xA.useGetTopNodesQuery({tenant:t,sortValue:"CPU"},{pollingInterval:i}),u=l&&void 0===s,d=s,h=_A({entity:GD("nodes"),postfix:GD("by-pools-usage"),link:fs({...r,[ds.diagnosticsTab]:us.qQ.nodes})});return(0,Le.jsx)(SA,{columnsWidthLSKey:Hu,data:d||[],columns:o,title:h,loading:u,error:c,emptyDataMessage:GD("top-nodes.empty-data")})}function EA(e){let{path:t,additionalNodesProps:n}=e;const r=Oa(),{autorefresh:i}=Do((e=>e.schema)),o=(a=null===n||void 0===n?void 0:n.getNodeRef,[fd,rd,od(a),ld]);var a;const{currentData:s,isFetching:l,error:c}=xA.useGetTopNodesQuery({tenant:t,sortValue:"LoadAverage"},{pollingInterval:i}),u=l&&void 0===s,d=s,h=_A({entity:GD("nodes"),postfix:GD("by-load"),link:fs({...r,[ds.diagnosticsTab]:us.qQ.nodes})});return(0,Le.jsx)(SA,{columnsWidthLSKey:Hu,data:d||[],columns:o,title:h,loading:u,error:c,emptyDataMessage:GD("top-nodes.empty-data")})}var TA=n(83786);const OA=Dl.h.injectEndpoints({endpoints:e=>({getOverviewTopQueries:e.query({queryFn:async(e,t)=>{let{database:n}=e,{signal:r}=t;try{const e=await window.api.sendQuery({schema:"modern",query:(i=n,"\nSELECT\n CPUTime as CPUTimeUs,\n QueryText,\nFROM `".concat(i,"/.sys/top_queries_by_cpu_time_one_hour`\nORDER BY CPUTimeUs DESC\nLIMIT ").concat(Lo.fl,"\n")),database:n,action:"execute-scan"},{signal:r});return(0,BI.gW)(e)?{error:e}:{data:(0,BI.gY)(e)}}catch(o){return{error:o||new Error("Unauthorized")}}var i},providesTags:["All"]})}),overrideExisting:"throw"}),NA=Me("kv-truncated-query"),kA=e=>{let{value:t="",maxQueryHeight:n=6}=e;const r=t.split("\n");if(r.length>n){const e=r.slice(0,n).join("\n"),t="\n...\nThe request was truncated. Click on the line to show the full query on the query tab";return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)("span",{className:NA(),children:e}),(0,Le.jsx)("span",{className:NA("message",{color:"secondary"}),children:t})]})}return(0,Le.jsx)(a.Fragment,{children:t})},jA=e=>{let{value:t=""}=e;return(0,Le.jsx)(hu,{contentClassName:NA("popover-content"),content:t,children:t})};var IA=n(47694),PA=n.n(IA);const DA=6,AA={...Lo.LE,dynamicRenderType:"variable"},RA=Me("kv-top-queries"),MA="topQueriesColumnsWidth",LA="QueryText",FA="EndTime",zA="ReadRows",BA="ReadBytes",UA="UserSID",HA="OneLineQueryText",VA="QueryHash",GA="Duration",WA={name:"CPUTimeUs",sortAccessor:e=>Number(e.CPUTimeUs),width:120,align:Hc.ZP.RIGHT,sortable:!1},qA={name:LA,sortAccessor:e=>Number(e.CPUTimeUs),render:e=>{var t;let{row:n}=e;return(0,Le.jsx)("div",{className:RA("query"),children:(0,Le.jsx)(kA,{value:null===(t=n.QueryText)||void 0===t?void 0:t.toString(),maxQueryHeight:DA})})},sortable:!1,width:500},ZA={name:FA,render:e=>{let{row:t}=e;return(0,ks.o0)(new Date(t.EndTime).getTime())},align:Hc.ZP.RIGHT,width:200},YA={name:zA,render:e=>{let{row:t}=e;return(0,ks.uf)(t.ReadRows)},sortAccessor:e=>Number(e.ReadRows),align:Hc.ZP.RIGHT,width:150},KA={name:BA,render:e=>{let{row:t}=e;return(0,ks.uf)(t.ReadBytes)},sortAccessor:e=>Number(e.ReadBytes),align:Hc.ZP.RIGHT,width:150},QA={name:UA,render:e=>{let{row:t}=e;return(0,Le.jsx)("div",{className:RA("user-sid"),children:t.UserSID||"\u2013"})},sortAccessor:e=>String(e.UserSID),align:Hc.ZP.LEFT},XA={name:HA,header:"QueryText",render:e=>{var t;let{row:n}=e;return(0,Le.jsx)(jA,{value:null===(t=n.QueryText)||void 0===t?void 0:t.toString()})},sortable:!1,width:500},$A={name:VA,render:e=>{let{row:t}=e;return n=String(t.QueryText),(PA().str(n)>>>0).toString(16).toUpperCase().padStart(8,"0");var n},width:130,sortable:!1},JA={name:GA,header:"Duration, ms",render:e=>{var t;let{row:n}=e;return(0,ks.uf)((0,Ej.BO)(null!==(t=n.Duration)&&void 0!==t?t:void 0))},sortAccessor:e=>Number(e.Duration),align:Hc.ZP.RIGHT,width:150},eR=()=>[$A,XA,WA];function tR(e){let{path:t}=e;const n=Ao(),r=Ca(),i=_a(),o=(0,Ta.mB)(r),{autorefresh:s}=Do((e=>e.schema)),l=eR(),{currentData:c,isFetching:u,error:d}=OA.useGetOverviewTopQueriesQuery({database:t},{pollingInterval:s}),h=u&&void 0===c,{result:p}=c||{},f=a.useCallback((e=>{const{QueryText:t}=e;n((0,TA.B8)({input:t}));const o=(0,Ta.mB)(r),a=fs({...o,[us.bS]:us.m2.query,[ds.queryTab]:us._0.newQuery});i.push(a)}),[n,i,r]),m=_A({entity:GD("queries"),postfix:GD("by-cpu-time"),link:fs({...o,[ds.diagnosticsTab]:us.qQ.topQueries})});return(0,Le.jsx)(SA,{columnsWidthLSKey:MA,data:p||[],columns:l,onRowClick:f,title:m,loading:h,error:(0,BI.fV)(d),rowClassName:()=>wA("top-queries-row")})}function nR(e,t){const n=t?"CAST(SUBSTRING(CAST(Path AS String), ".concat(t.length,") AS Utf8) AS Path"):"Path";return"SELECT\n ".concat(n,",\n TabletId,\n CPUCores,\nFROM `.sys/partition_stats`\nWHERE\n Path='").concat(e,"'\n OR Path LIKE '").concat(e,"/%'\nORDER BY CPUCores DESC\nLIMIT ").concat(Lo.fl)}const rR=Dl.h.injectEndpoints({endpoints:e=>({getTopShards:e.query({queryFn:async(e,t)=>{let{database:n,path:r=""}=e,{signal:i}=t;try{const e=await window.api.sendQuery({schema:"modern",query:nR(r,n),database:n,action:"execute-scan"},{signal:i});return(0,BI.gW)(e)?{error:e}:{data:(0,BI.gY)(e)}}catch(o){return{error:o||new Error("Unauthorized")}}},providesTags:["All"]})}),overrideExisting:"throw"});function iR(e){let{path:t,location:n,...r}=e;const i=(0,Ta.mB)(n),o=(0,Ta.vF)({...i,schema:t});return(0,Le.jsx)(si,{view:"normal",...r,href:o})}const oR=tu(60,80,["success","warning","danger"]),aR="topShardsColumnsWidth",sR="TabletId",lR="CPUCores",cR="DataSize",uR="Path",dR="NodeId",hR="InFlightTxCount",pR={TabletId:"TabletId",CPUCores:"CPUCores",DataSize:"DataSize (B)",Path:"Path",NodeId:"NodeId",PeakTime:"PeakTime",InFlightTxCount:"InFlightTxCount",IntervalEnd:"IntervalEnd"};const fR=(e,t)=>({name:uR,header:pR[uR],render:n=>{let{row:r}=n;return(0,Le.jsx)(iR,{path:e+r.Path,location:t,children:r.Path})},sortable:!1,width:300}),mR={name:lR,header:pR[lR],render:e=>{let{row:t}=e;return n=t.CPUCores||0,"".concat((0,ks.W0)(100*Number(n),2),"%");var n},align:Hc.ZP.RIGHT},gR={name:cR,header:pR[cR],render:e=>{let{row:t}=e;return(0,ks.uf)(t.DataSize)},align:Hc.ZP.RIGHT},vR={name:sR,header:pR[sR],render:e=>{let{row:t}=e;return t.TabletId?(0,Le.jsx)(_l,{to:(0,Ta.ax)(Ta.ZP.tablet,{id:t.TabletId}),children:t.TabletId}):"\u2013"},sortable:!1,width:190},yR={name:dR,header:pR[dR],render:e=>{let{row:t}=e;return t.NodeId?(0,Le.jsx)(_l,{to:bu(t.NodeId),children:t.NodeId}):"\u2013"},align:Hc.ZP.RIGHT},bR={name:lR,header:pR[lR],render:e=>{let{row:t}=e;return(0,Le.jsx)(Uu,{value:(0,ks.W0)(100*Number(t.CPUCores),2),theme:oR(100*Number(t.CPUCores))})},align:Hc.ZP.RIGHT,sortable:!1,width:140,resizeMinWidth:140},xR={name:hR,header:pR[hR],render:e=>{let{row:t}=e;return(0,ks.uf)(t.InFlightTxCount)},align:Hc.ZP.RIGHT},wR=e=>{let{path:t}=e;const n=Ca(),r=(0,Ta.mB)(n),{autorefresh:i,currentSchemaPath:o}=Do((e=>e.schema)),{currentData:a,isFetching:s,error:l}=rR.useGetTopShardsQuery({database:t,path:o},{pollingInterval:i}),c=s&&void 0===a,{result:u}=a||{},d=((e,t)=>[vR,fR(e,t),bR])(t,n),h=_A({entity:GD("shards"),postfix:GD("by-cpu-usage"),link:fs({...r,[ds.diagnosticsTab]:us.qQ.topShards})});return(0,Le.jsx)(SA,{columnsWidthLSKey:aR,data:u||[],columns:d,title:h,loading:c,error:(0,BI.fV)(l)})},SR=[{title:GD("charts.cpu-usage"),metrics:["IC","IO","Batch","User","System"].map((e=>({target:"resources.cpu.".concat(e,".usage"),title:e}))),options:{dataType:"percent",scaleRange:{min:0,max:1}}}];function _R(e){let{path:t,additionalNodesProps:n}=e;return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(HD,{database:t,charts:SR}),(0,Le.jsx)(EA,{path:t,additionalNodesProps:n}),(0,Le.jsx)(CA,{path:t,additionalNodesProps:n}),(0,Le.jsx)(wR,{path:t}),(0,Le.jsx)(tR,{path:t})]})}function CR(e){let{path:t,additionalNodesProps:n}=e;const r=Oa(),{autorefresh:i}=Do((e=>e.schema)),o=function(e){let{tabletsPath:t,getNodeRef:n}=e;return[rd,id(n),cd,fd,md,gd,vd,yd,pd(t)]}({getNodeRef:null===n||void 0===n?void 0:n.getNodeRef}),{currentData:a,isFetching:s,error:l}=xA.useGetTopNodesQuery({tenant:t,sortValue:"Memory"},{pollingInterval:i}),c=s&&void 0===a,u=a,d=_A({entity:GD("nodes"),postfix:GD("by-memory"),link:fs({...r,[ds.diagnosticsTab]:us.qQ.nodes})});return(0,Le.jsx)(SA,{columnsWidthLSKey:Hu,data:u||[],columns:o,title:d,loading:c,error:l,emptyDataMessage:GD("top-nodes.empty-data")})}const ER=[{title:GD("charts.memory-usage"),metrics:[{target:"resources.memory.used_bytes",title:GD("charts.memory-usage")}],options:{dataType:"size"}}];function TR(e){let{path:t}=e;return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(HD,{database:t,charts:ER}),(0,Le.jsx)(CR,{path:t})]})}const OR=e=>{const{StoragePools:t,StorageGroups:n}=e,r=Ah(n,t);return t&&r.sort(((e,t)=>t.Usage-e.Usage)),{groups:r.slice(0,Lo.fl)}},NR=Dl.h.injectEndpoints({endpoints:e=>({getTopStorageGroups:e.query({queryFn:async(e,t)=>{let{signal:n}=t;try{const t=await window.api.getStorageInfo({visibleEntities:"all",sortOrder:-1,sortValue:"Usage",limit:Lo.fl,version:ka.v2,...e},{signal:n});return{data:OR(t).groups||[]}}catch(r){return{error:r}}},providesTags:["All"]})}),overrideExisting:"throw"});function kR(e){let{tenant:t}=e;const n=Oa(),{autorefresh:r}=Do((e=>e.schema)),i=AS(),{currentData:o,isFetching:a,error:s}=NR.useGetTopStorageGroupsQuery({tenant:t},{pollingInterval:r}),l=a&&void 0===o,c=o,u=_A({entity:GD("groups"),postfix:GD("by-usage"),link:fs({...n,[ds.diagnosticsTab]:us.qQ.storage})});return(0,Le.jsx)(SA,{columnsWidthLSKey:uS,data:c||[],columns:i,title:u,loading:l,error:s})}const jR=e=>"\nSELECT\n Path, SUM(DataSize) as Size\nFROM `".concat(e,"/.sys/partition_stats`\nGROUP BY Path\n ORDER BY Size DESC\n LIMIT ").concat(Lo.fl,"\n"),IR=Dl.h.injectEndpoints({endpoints:e=>({getTopTables:e.query({queryFn:async(e,t)=>{let{path:n}=e,{signal:r}=t;try{const e=await window.api.sendQuery({schema:"modern",query:jR(n),database:n,action:"execute-scan"},{signal:r});return(0,BI.gW)(e)?{error:e}:{data:(0,BI.gY)(e)}}catch(i){return{error:i||"Unauthorized"}}},providesTags:["All"]})}),overrideExisting:"throw"}),PR="topTablesTableColumnsWidth";function DR(e){let{path:t}=e;const n=Ca(),{autorefresh:r}=Do((e=>e.schema)),{currentData:i,error:o,isFetching:a}=IR.useGetTopTablesQuery({path:t},{pollingInterval:r}),s=a&&void 0===i,{result:l}=i||{},c=[{name:"Size",width:100,sortable:!1,render:e=>{let{row:t}=e;return(e=>{const t=(0,BC.dT)(null!==l&&void 0!==l&&l.length?Number(l[0].Size):0,0);return(0,BC.td)({value:e,size:t,precision:1})})(Number(t.Size))},align:Hc.ZP.RIGHT},{name:"Path",width:700,sortable:!1,render:e=>{let{row:t}=e;return t.Path?(0,Le.jsx)(hu,{content:t.Path,children:(0,Le.jsx)(iR,{path:String(t.Path),location:n,children:t.Path})}):null}}],u=_A({entity:GD("tables"),postfix:GD("by-size")});return(0,Le.jsx)(SA,{columnsWidthLSKey:PR,data:l||[],columns:c,title:u,loading:s,error:(0,BI.fV)(o)})}const AR=[{title:GD("charts.storage-usage"),metrics:[{target:"resources.storage.used_bytes",title:GD("charts.storage-usage")}],options:{dataType:"size"}}];function RR(e){let{tenantName:t,metrics:n}=e;const{blobStorageUsed:r,tabletStorageUsed:i,blobStorageLimit:o,tabletStorageLimit:s}=n,l=[{label:(0,Le.jsx)(Po,{text:GD("storage.tablet-storage-title"),popoverContent:GD("storage.tablet-storage-description")}),value:(0,Le.jsx)(Iu,{value:i,capacity:s,formatValues:ks.QO,colorizeProgress:!0,warningThreshold:75,dangerThreshold:85})},{label:(0,Le.jsx)(Po,{text:GD("storage.db-storage-title"),popoverContent:GD("storage.db-storage-description")}),value:(0,Le.jsx)(Iu,{value:r,capacity:o,formatValues:ks.QO,colorizeProgress:!0,warningThreshold:75,dangerThreshold:85})}];return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(HD,{database:t,charts:AR}),(0,Le.jsx)(Ss,{className:wA("storage-info"),title:"Storage details",info:l}),(0,Le.jsx)(DR,{path:t}),(0,Le.jsx)(kR,{tenant:t})]})}const MR=Dl.h.injectEndpoints({endpoints:e=>({getHealthcheckInfo:e.query({queryFn:async(e,t)=>{let{signal:n}=t;try{return{data:await window.api.getHealthcheckInfo(e,{signal:n})}}catch(r){return{error:r}}},providesTags:["All"]})}),overrideExisting:"throw"}),LR={RED:0,ORANGE:1,YELLOW:2,BLUE:3,GREEN:4},FR=e=>e.sort(((e,t)=>(LR[e.status]||0)-(LR[t.status]||0))),zR=e=>{let{issue:t,data:n}=e;return FR(n.filter((e=>t.reason&&-1!==t.reason.indexOf(e.id))))},BR=e=>FR(e.filter((t=>!e.find((e=>e.reason&&-1!==e.reason.indexOf(t.id)))))),UR=e=>{let{data:t,roots:n}=e;return n?n.map((e=>{const n=UR({roots:zR({issue:e,data:t}),data:t});return{...e,reasonsItems:n}})):[]},HR=e=>{const t={};for(const n of e)t[n.status]||(t[n.status]=0),t[n.status]++;return Object.entries(t).sort(((e,t)=>{let[n]=e,[r]=t;return(LR[n]||0)-(LR[r]||0)}))},VR=(0,p_.P1)((e=>e),(e=>MR.endpoints.getHealthcheckInfo.select(e))),GR=(0,p_.P1)((e=>e),((e,t)=>VR(t)),((e,t)=>{var n;return(null===(n=t(e).data)||void 0===n?void 0:n.issue_log)||[]})),WR=(0,p_.P1)(GR,(function(){return BR(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])})),qR=(0,p_.P1)([GR,WR],(function(){return UR({data:arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],roots:arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]})})),ZR=(0,p_.P1)(GR,(function(){return HR(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[])})),YR=function(e){let{autorefresh:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{currentData:n,isFetching:r,error:i,refetch:o}=MR.useGetHealthcheckInfoQuery(e,{pollingInterval:t}),a=(null===n||void 0===n?void 0:n.self_check_result)||KD.UNSPECIFIED,s=Do((t=>ZR(t,e)));return{issueTrees:Do((t=>qR(t,e))),issuesStatistics:s,loading:void 0===n&&r,error:i,refetch:o,selfCheckResult:a}};function KR(e){var t;let{tenantName:n,additionalTenantProps:r,additionalNodesProps:i}=e;const{metricsTab:o}=Do((e=>e.tenant)),{autorefresh:a}=Do((e=>e.schema)),{issueTrees:s,issuesStatistics:l,selfCheckResult:c,loading:u,error:d,refetch:h}=YR(n,{autorefresh:a}),{currentData:p,isFetching:f}=Gk.$1.useGetTenantInfoQuery({path:n},{pollingInterval:a}),m=f&&void 0===p,{Name:g,Type:v,Overall:y}=p||{},b=(0,pj.TV)(v),{blobStorage:x,tabletStorage:w,blobStorageLimit:S,tabletStorageLimit:_,poolsStats:C,memoryStats:E,blobStorageStats:T,tabletStorageStats:O}=(0,LP.HH)(null!==p&&void 0!==p?p:void 0),N={blobStorageUsed:x,blobStorageLimit:S,tabletStorageUsed:w,tabletStorageLimit:_};return m?(0,Le.jsx)("div",{className:wA("loader"),children:(0,Le.jsx)(Di,{size:"m"})}):(0,Le.jsxs)("div",{className:wA(),children:[(0,Le.jsxs)("div",{className:wA("info"),children:[(0,Le.jsx)("div",{className:wA("top-label"),children:b}),(0,Le.jsxs)("div",{className:wA("top"),children:[(0,Le.jsx)("div",{className:wA("tenant-name-wrapper"),children:(0,Le.jsx)(Il,{status:y,name:g||Lo.FU,withLeftTrim:!0,hasClipboardButton:Boolean(p),clipboardButtonAlwaysVisible:!0})}),null===r||void 0===r||null===(t=r.getMonitoringLink)||void 0===t?void 0:t.call(r,g,v)]}),(0,Le.jsx)(gA,{poolsCpuStats:C,memoryStats:E,blobStorageStats:T,tabletStorageStats:O,issuesStatistics:l,selfCheckResult:c,fetchHealthcheck:h,healthcheckLoading:u,healthcheckError:d})]}),(()=>{switch(o){case us.Xk.cpu:return(0,Le.jsx)(_R,{path:n,additionalNodesProps:i});case us.Xk.storage:return(0,Le.jsx)(RR,{tenantName:n,metrics:N});case us.Xk.memory:return(0,Le.jsx)(TR,{path:n});case us.Xk.healthcheck:return(0,Le.jsx)(aA,{issueTrees:s,loading:u,error:d});default:return(0,Le.jsx)(qD,{database:n})}})()]})}const QR=Me("kv-detailed-overview");const XR=function(e){const{type:t,tenantName:n,additionalTenantProps:r,additionalNodesProps:i}=e,{currentSchemaPath:o}=(0,ae.v9)((e=>e.schema)),a=n===o;return(0,Le.jsx)("div",{className:QR(),children:a?(0,Le.jsx)("div",{className:QR("section"),children:(0,Le.jsx)(KR,{tenantName:n,additionalTenantProps:r,additionalNodesProps:i})}):(0,Le.jsx)(MP,{type:t,tenantName:n})})},$R={id:us.qQ.overview,title:"Info"},JR={id:us.qQ.schema,title:"Schema"},eM={id:us.qQ.topQueries,title:"Top queries"},tM={id:us.qQ.topShards,title:"Top shards"},nM={id:us.qQ.nodes,title:"Nodes"},rM={id:us.qQ.tablets,title:"Tablets"},iM={id:us.qQ.storage,title:"Storage"},oM={id:us.qQ.network,title:"Network"},aM={id:us.qQ.describe,title:"Describe"},sM={id:us.qQ.hotKeys,title:"Hot keys"},lM={id:us.qQ.graph,title:"Graph"},cM={id:us.qQ.consumers,title:"Consumers"},uM={id:us.qQ.partitions,title:"Partitions"},dM=[$R,aM],hM=[$R,eM,tM,nM,rM,iM,oM,aM],pM=[$R,JR,tM,nM,lM,rM,sM,aM],fM=[$R,JR,tM,nM,lM,rM,aM],mM=[$R,tM,nM,aM],gM=[$R,cM,uM,nM,aM],vM=[$R,cM,uM,nM,aM],yM=[$R,aM],bM=[$R,aM],xM=[$R,aM],wM={[hj.gb.EPathTypeInvalid]:void 0,[hj.gb.EPathTypeSubDomain]:hM,[hj.gb.EPathTypeExtSubDomain]:hM,[hj.gb.EPathTypeColumnStore]:hM,[hj.gb.EPathTypeTable]:pM,[hj.gb.EPathTypeColumnTable]:fM,[hj.gb.EPathTypeDir]:mM,[hj.gb.EPathTypeTableIndex]:mM,[hj.gb.EPathTypeCdcStream]:gM,[hj.gb.EPathTypePersQueueGroup]:vM,[hj.gb.EPathTypeExternalDataSource]:yM,[hj.gb.EPathTypeExternalTable]:bM,[hj.gb.EPathTypeView]:xM,[hj.gb.EPathTypeReplication]:dM},SM=e=>e&&wM[e]||mM;var _M=n(91387),CM=n(77952);const EM=JSON.parse('{"hot-keys-collecting":"Please wait a little while we are collecting hot keys samples...","no-data":"No information about hot keys","help":"Hot keys contains a list of table primary key values that are accessed most often. Sample is collected upon request to the tab during 5s time interval. Samples column indicates how many requests to the particular key value were registered during collection phase."}'),TM=(0,We.wZ)("ydb-hot-keys",{en:EM}),OM=Me("ydb-hot-keys"),NM={accessSample:"accessSample",keyValues:"keyValues"},kM=function(){const e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).map(((e,t)=>({name:e,header:(0,Le.jsxs)("div",{className:OM("primary-key-column"),children:[(0,Le.jsx)(we.J,{data:mj,width:12,height:7}),e]}),render:e=>{let{row:n}=e;return n.keyValues[t]},align:Hc.ZP.RIGHT,sortable:!1})));return[...e,{name:NM.accessSample,header:"Samples",render:e=>{let{row:t}=e;return t.accessSample},align:Hc.ZP.RIGHT,sortable:!1}]};function jM(e){var t,n,r;let{path:i}=e;const o=Ao(),[s,l]=Mo(Lo.JZ),c=a.useRef(),{loading:u,wasLoaded:d,data:h,error:p}=Do((e=>e.hotKeys)),{loading:f,data:m}=Do((e=>e.schema)),g=null===(t=m[i])||void 0===t||null===(n=t.PathDescription)||void 0===n||null===(r=n.Table)||void 0===r?void 0:r.KeyColumnNames,v=a.useMemo((()=>kM(g)),[g]);a.useEffect((()=>{const e=async e=>{try{return await window.api.getHotKeys(i,e)}catch(t){return void o((0,CM.Ou)(t))}};(async()=>{void 0!==c.current&&window.clearInterval(c.current),o((0,CM.eE)()),o((0,CM.AE)());const t=await e(!0);if(t&&t.hotkeys)o((0,CM.Vd)(t));else if(t){const t=setTimeout((async()=>{const t=await e(!1);t&&o((0,CM.Vd)(t))}),5e3);c.current=t}})()}),[o,i]);return(0,Le.jsxs)(a.Fragment,{children:[s?null:(0,Le.jsxs)(_M.Z,{theme:"info",view:"filled",type:"container",className:OM("help-card"),children:[TM("help"),(0,Le.jsx)(Ie.z,{className:OM("help-card__close-button"),view:"flat",onClick:()=>l(!0),children:(0,Le.jsx)(we.J,{data:tt.Z,size:18})})]}),u&&!d||f?(0,Le.jsx)("div",{children:TM("hot-keys-collecting")}):p?(0,Le.jsx)(zc,{error:p}):h?(0,Le.jsx)(qc,{wrapperClassName:OM("table"),columns:v,data:h,settings:Lo.LE,initialSortOrder:{columnId:NM.accessSample,order:Hc.ZP.DESCENDING}}):(0,Le.jsx)("div",{children:TM("no-data")})]})}const IM=Dl.h.injectEndpoints({endpoints:e=>({getNetworkInfo:e.query({queryFn:async(e,t)=>{let{signal:n}=t;try{return{data:await window.api.getNetwork(e,{signal:n})}}catch(r){return{error:r}}},providesTags:["All"]})}),overrideExisting:"throw"}),PM=Me("node-network");function DM(){}function AM(e){let{nodeId:t,connected:n,capacity:r,rack:i,status:o,onClick:s=DM,onMouseEnter:l=DM,onMouseLeave:c=DM,showID:u,isBlurred:d}=e;const h=a.useRef(null),p=o||function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const n=Math.floor(e/t*100);return 100===n?al.K.Green:n>=70?al.K.Yellow:n>=1?al.K.Red:al.K.Grey}(n,r);return(0,Le.jsx)("div",{ref:h,className:PM({[p.toLowerCase()]:!0,id:u,blur:d}),onMouseEnter:()=>{l(h.current,{nodeId:t,connected:n,capacity:r,rack:i},"node")},onMouseLeave:()=>{c()},onClick:()=>s(t),children:u?t:null})}const RM=e=>null===e||void 0===e?void 0:e.reduce(((e,t)=>t.Connected?e+1:e),0);var MM,LM,FM,zM,BM,UM,HM,VM,GM,WM,qM,ZM,YM,KM,QM;function XM(){return XM=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},XM.apply(this,arguments)}const $M=function(e){return a.createElement("svg",XM({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 221 204"},e),MM||(MM=a.createElement("path",{d:"M68.46 2.529v25.227c0 1.227.876 2.278 2.102 2.511 16.643 2.979 29.14 17.812 28.498 35.448-.642 18.045-15.359 32.703-33.345 33.403-17.636.643-32.41-11.854-35.448-28.44a2.562 2.562 0 00-2.51-2.102H2.528c-1.519 0-2.687 1.285-2.512 2.745 3.446 32.703 31.243 58.106 64.939 57.814 35.155-.292 63.829-29.024 64.121-64.18.292-33.695-25.17-61.492-57.873-64.938-1.46-.175-2.744.993-2.744 2.512z",fill:"#EBF2FA"})),LM||(LM=a.createElement("path",{d:"M22.736 18.354l17.811 17.812c.876.876 2.278.992 3.329.233 4.146-3.095 9.052-5.197 14.366-6.19 1.226-.233 2.102-1.226 2.102-2.511V2.528a2.502 2.502 0 00-2.803-2.51C44.46 1.418 32.488 6.674 22.91 14.674c-1.168.935-1.226 2.628-.175 3.68zm-9.403 6.133C6.093 33.83 1.303 45.16.02 57.54c-.176 1.46 1.05 2.745 2.51 2.745H27.7a2.562 2.562 0 002.511-2.103c.818-4.672 2.628-9.051 5.14-12.847a2.642 2.642 0 00-.293-3.212L17.13 24.312c-1.05-1.11-2.861-.993-3.796.175zm67.275 107.392h32.995c1.868 0 3.387 1.518 3.445 3.445v65.231a3.451 3.451 0 01-3.445 3.445H80.608a3.452 3.452 0 01-3.446-3.445v-65.231a3.451 3.451 0 013.446-3.445zm77.844 27.097h-32.878a3.514 3.514 0 00-3.503 3.504v37.959a3.514 3.514 0 003.503 3.504h32.878a3.515 3.515 0 003.504-3.504V162.48a3.515 3.515 0 00-3.504-3.504zm12.205 18.28h32.586a3.639 3.639 0 013.621 3.62v19.388a3.639 3.639 0 01-3.621 3.621h-32.586a3.639 3.639 0 01-3.62-3.621v-19.388a3.638 3.638 0 013.62-3.62z",fill:"#EBF2FA"})),FM||(FM=a.createElement("path",{d:"M134.275 171.532h-113c-5.84 0-10.628-4.789-10.628-10.629v-73.23c0-5.84 4.788-10.629 10.628-10.629h112.941c5.84 0 10.629 4.789 10.629 10.629v73.23c.058 5.899-4.731 10.629-10.57 10.629v0z",stroke:"#2EE5C0",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round"})),zM||(zM=a.createElement("path",{d:"M21.625 90.769a3.037 3.037 0 100-6.074 3.037 3.037 0 000 6.074zM31.494 90.769a3.037 3.037 0 100-6.074 3.037 3.037 0 000 6.074zM41.363 90.769a3.037 3.037 0 100-6.074 3.037 3.037 0 000 6.074z",fill:"#2EE5C0"})),BM||(BM=a.createElement("path",{d:"M10.822 98.592h133.673",stroke:"#2EE5C0",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round"})),UM||(UM=a.createElement("path",{d:"M184.555 149.164L57.89 156.172c-4.263.234-7.767-3.037-7.767-7.3V51.114c0-4.263 3.504-7.533 7.767-7.3l126.665 7.008c3.27.176 5.898 3.33 5.898 7.008v84.327c0 3.679-2.628 6.832-5.898 7.007z",fill:"#027BF3"})),HM||(HM=a.createElement("path",{d:"M65.13 54.151c0 1.986-1.576 3.504-3.562 3.387-1.985-.058-3.562-1.752-3.562-3.737 0-1.986 1.635-3.504 3.562-3.387 1.927.058 3.562 1.752 3.562 3.737zm11.506.466a3.38 3.38 0 01-3.504 3.388c-1.927-.059-3.504-1.753-3.504-3.68a3.38 3.38 0 013.504-3.387c1.927.117 3.504 1.752 3.504 3.68zm7.825 3.855c1.869.117 3.387-1.402 3.387-3.329 0-1.927-1.518-3.562-3.387-3.62-1.927-.117-3.445 1.401-3.445 3.328 0 1.927 1.576 3.562 3.445 3.62z",fill:"#fff"})),VM||(VM=a.createElement("path",{d:"M75.467 142.974V85.277c-3.971-.525-8.584-.409-13.899.7v57.64l13.899-.643zM88.84 90.651v51.799l-11.096.467v-57.23c4.322.934 7.942 2.745 11.096 4.964zm13.431 13.899a1.618 1.618 0 01-.146-.176 1.487 1.487 0 00-.146-.175c-.42-.51-.841-1.026-1.265-1.546-2.875-3.522-5.874-7.197-9.538-10.25v49.93l11.095-.467V104.55zm13.432 5.722c-3.913-.058-7.709-.701-11.096-3.445v34.922l11.096-.468v-31.009zm13.431-.409c-2.764-.173-5.529.006-8.246.181-.957.062-1.907.123-2.849.169v30.951l11.095-.467v-30.834zm24.002 29.841l-8.234.35v-22.191c8.176 9.285 8.234 21.841 8.234 21.841zM140.113 113.6a19.774 19.774 0 012.453 1.927v24.644l-11.096.467v-30.483c2.92.467 5.782 1.46 8.643 3.445z",fill:"#00236B"})),GM||(GM=a.createElement("path",{d:"M55.745 76.436a2 2 0 103.123 2.499l-3.123-2.499zm5.766-4.006l1.575-1.233a2 2 0 00-3.136-.017l1.561 1.25zm2.63 6.605a2 2 0 103.15-2.465l-3.15 2.465zm107.94 53.502a2 2 0 00-2.499 3.123l2.499-3.123zm4.006 5.766l1.214 1.59a1.999 1.999 0 00.036-3.151l-1.25 1.561zm-6.644 2.557a1.999 1.999 0 102.427 3.179l-2.427-3.179zM58.868 78.935l4.205-5.256-3.123-2.499-4.205 5.256 3.123 2.499zm1.068-5.273l4.205 5.373 3.15-2.465-4.205-5.373-3.15 2.465zm109.646 61.998l5.256 4.205 2.499-3.123-5.256-4.205-2.499 3.123zm5.292 1.054l-5.431 4.146 2.427 3.179 5.431-4.146-2.427-3.179zM147.137 69.146a2 2 0 10-.149 3.998l.149-3.998zm29.634 5.107a2 2 0 10.149-3.997l-.149 3.997zm-29.657 5.404a2 2 0 00-.102 3.999l.102-3.999zm29.681 4.758a2 2 0 00.102-3.999l-.102 4zm-29.72 5.928a2 2 0 10-.023 4l.023-4zm29.759 4.176a2 2 0 10.024-4l-.024 4zm-29.846-21.375l29.783 1.11.149-3.998-29.783-1.11-.149 3.998zm.024 10.512l29.783.76.102-4-29.783-.759-.102 3.999zm.04 10.687l29.782.176.024-4-29.783-.175-.023 4zM143.442 71.202a2.458 2.458 0 01-2.57 2.453c-1.401-.058-2.569-1.285-2.569-2.686 0-1.402 1.168-2.57 2.569-2.453 1.46.058 2.57 1.285 2.57 2.686zm.001 10.396a2.458 2.458 0 01-2.57 2.453c-1.401-.059-2.569-1.285-2.569-2.686 0-1.46 1.168-2.57 2.569-2.453 1.46.058 2.57 1.284 2.57 2.686zm-2.57 12.848a2.458 2.458 0 002.57-2.453c0-1.402-1.11-2.628-2.57-2.686-1.401-.117-2.569 1.05-2.569 2.452s1.168 2.628 2.569 2.687z",fill:"#fff"})),WM||(WM=a.createElement("path",{opacity:.2,d:"M190.452 91.875V57.771c0-3.68-2.628-6.833-5.899-7.008l-23.651-1.285a35.18 35.18 0 00-1.752 10.98c0 17.635 12.79 31.826 28.09 31.65 1.051.06 2.16-.058 3.212-.233z",fill:"#00236B"})),qM||(qM=a.createElement("path",{d:"M220.645 58.883c0-16.585-11.621-30.775-26.454-31.651-15.3-.876-28.089 12.672-28.089 30.308s12.789 31.827 28.089 31.652c14.833-.117 26.454-13.724 26.454-30.309z",fill:"#FF4645"})),ZM||(ZM=a.createElement("path",{d:"M215.329 40.372c-4.788-7.475-12.38-12.614-21.14-13.14v31.01l21.14-17.87z",fill:"#FC0"})),YM||(YM=a.createElement("path",{d:"M215.329 40.372l-21.14 17.87 26.455.642c0-6.89-1.986-13.315-5.315-18.512z",fill:"#00236B"})),KM||(KM=a.createElement("path",{d:"M194.248 58.24V27.233c-15.301-.876-28.09 12.672-28.09 30.308l28.09.7z",fill:"#FF4645"})),QM||(QM=a.createElement("path",{d:"M161.151 14.734a2 2 0 10-4 0h4zm-4 4.204a2 2 0 004 0h-4zm4 8.876a2 2 0 10-4 0h4zm-4 4.555a2 2 0 004 0h-4zm10.819-6.816a2 2 0 000-4v4zm-4.263-4a2 2 0 100 4v-4zm-9.169 4a2 2 0 100-4v4zm-4.263-4a2 2 0 000 4v-4zm6.876-6.82v4.205h4v-4.204h-4zm0 13.08v4.556h4v-4.555h-4zm10.819-6.26h-4.263v4h4.263v-4zm-13.432 0h-4.263v4h4.263v-4z",fill:"#2EE5C0"})))},JM=Me("network");function eL(e){var t,n;let{path:r}=e;const{autorefresh:i}=Do((e=>e.schema)),o=Do(Ro.qz),s=Ao(),[l,c]=a.useState(),[u,d]=a.useState(!1),[h,p]=a.useState(!1),{currentData:f,isFetching:m,error:g}=IM.useGetNetworkInfoQuery(r,{pollingInterval:i});if(m&&void 0===f)return(0,Le.jsx)("div",{className:"loader",children:(0,Le.jsx)(Di,{size:"l"})});if(g)return(0,Le.jsx)(zc,{error:g});const v=f,y=null!==(t=(null===v||void 0===v?void 0:v.Tenants)&&v.Tenants[0].Nodes)&&void 0!==t?t:[];if(0===y.length)return(0,Le.jsx)("div",{className:"error",children:"no nodes data"});const b=nL(y,"NodeType"),x=l?nL(null!==(n=l.Peers)&&void 0!==n?n:[],"NodeType"):{};return(0,Le.jsx)("div",{className:JM(),children:(0,Le.jsx)("div",{className:JM("inner"),children:(0,Le.jsxs)("div",{className:JM("nodes-row"),children:[(0,Le.jsxs)("div",{className:JM("left"),children:[(0,Le.jsx)("div",{className:JM("controls-wrapper"),children:(0,Le.jsxs)("div",{className:JM("controls"),children:[(0,Le.jsx)(Bc,{value:o,onChange:e=>{s((0,Ro.M6)(e))},className:JM("problem-filter")}),(0,Le.jsx)("div",{className:JM("checkbox-wrapper"),children:(0,Le.jsx)(T_,{onUpdate:()=>{d(!u)},checked:u,children:"ID"})}),(0,Le.jsx)("div",{className:JM("checkbox-wrapper"),children:(0,Le.jsx)(T_,{onUpdate:()=>{p(!h)},checked:h,children:"Racks"})})]})}),(0,Le.jsx)(tL,{nodes:b,showId:u,showRacks:h,clickedNode:l,onClickNode:c})]}),(0,Le.jsx)("div",{className:JM("right"),children:l?(0,Le.jsxs)("div",{children:[(0,Le.jsxs)("div",{className:JM("label"),children:["Connectivity of node"," ",(0,Le.jsx)(bl,{className:JM("link"),to:bu(l.NodeId),children:l.NodeId})," ","to other nodes"]}),(0,Le.jsx)("div",{className:JM("nodes-row"),children:(0,Le.jsx)(tL,{nodes:x,isRight:!0,showId:u,showRacks:h,clickedNode:l,onClickNode:c})})]}):(0,Le.jsxs)("div",{className:JM("placeholder"),children:[(0,Le.jsx)("div",{className:JM("placeholder-img"),children:(0,Le.jsx)(we.J,{data:$M,width:221,height:204})}),(0,Le.jsx)("div",{className:JM("placeholder-text"),children:"Select node to see its connectivity to other nodes"})]})})]})})})}function tL(e){let{nodes:t,isRight:n,showId:r,showRacks:i,clickedNode:o,onClickNode:a}=e;const s=Do(Ro.qz),l=Ao();let c=0;const u=Object.keys(t).map(((e,u)=>{const d=nL(t[e],"Rack");return(0,Le.jsxs)("div",{className:JM("nodes-container",{right:n}),children:[(0,Le.jsxs)("div",{className:JM("nodes-title"),children:[e," nodes"]}),(0,Le.jsx)("div",{className:JM("nodes"),children:i?Object.keys(d).map(((e,t)=>(0,Le.jsxs)("div",{className:JM("rack-column"),children:[(0,Le.jsx)("div",{className:JM("rack-index"),children:"undefined"===e?"?":e}),d[e].map(((e,t)=>{let i,u;return!n&&"Peers"in e&&e.Peers&&(i=Object.keys(e.Peers).length,u=RM(e.Peers)),s===Ro.pu.PROBLEMS&&i!==u||s===Ro.pu.ALL||n?(c++,(0,Le.jsx)(AM,{nodeId:e.NodeId,showID:r,rack:e.Rack,status:"ConnectStatus"in e?e.ConnectStatus:void 0,capacity:i,connected:u,onMouseEnter:function(){l((0,vs.hJ)(...arguments))},onMouseLeave:()=>{l((0,vs.i8)())},onClick:n?void 0:()=>{a(o&&e.NodeId===o.NodeId?void 0:e)},isBlurred:!n&&o&&o.NodeId!==e.NodeId},t)):null}))]},t))):t[e].map(((e,t)=>{let i,u;const d=e&&"Peers"in e?e.Peers:void 0;return!n&&"Peers"in e&&e.Peers&&(i=e.Peers.length,u=RM(d)),s===Ro.pu.PROBLEMS&&i!==u||s===Ro.pu.ALL||n?(c++,(0,Le.jsx)(AM,{nodeId:e.NodeId,showID:r,rack:e.Rack,status:"ConnectStatus"in e?e.ConnectStatus:void 0,capacity:null===d||void 0===d?void 0:d.length,connected:u,onMouseEnter:function(){l((0,vs.hJ)(...arguments))},onMouseLeave:()=>{l((0,vs.i8)())},onClick:n?void 0:()=>{a(o&&e.NodeId===o.NodeId?void 0:e)},isBlurred:!n&&o&&o.NodeId!==e.NodeId},t)):null}))})]},u)}));return s===Ro.pu.PROBLEMS&&0===c?(0,Le.jsx)(Ge,{name:"thumbsUp",width:"200"}):u}function nL(e,t){return e.reduce(((e,n)=>(e[n[t]]?e[n[t]].push(n):e[n[t]]=[n],e)),{})}var rL=n(42703);const iL=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"}'),oL=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"}'),aL=(0,We.wZ)("ydb-diagnostics-partitions",{ru:oL,en:iL}),sL={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"},lL={[sL.PARTITION_ID]:"Partition ID",[sL.STORE_SIZE]:"Store size",[sL.WRITE_SPEED]:"Write speed",[sL.READ_SPEED]:"Read speed",[sL.WRITE_LAGS]:"Write lags, duration",[sL.READ_LAGS]:"Read lags, duration",[sL.UNCOMMITED_MESSAGES]:"Uncommited messages",[sL.UNREAD_MESSAGES]:"Unread messages",[sL.START_OFFSET]:"Start offset",[sL.END_OFFSET]:"End offset",[sL.COMMITED_OFFSET]:"Commited offset",[sL.READ_SESSION_ID]:"Read session ID",[sL.READER_NAME]:"Reader name",[sL.PARTITION_HOST]:"Partition host",[sL.CONNECTION_HOST]:"Connection host"},cL="partitionWriteLag",uL="partitionWriteIdleTime",dL={[cL]:"write lag",[uL]:"write idle time"},hL="consumerWriteLag",pL="consumerReadLag",fL="consumerReadIdleTime",mL={[hL]:"write lag",[pL]:"read lag",[fL]:"read idle time"},gL=[sL.PARTITION_ID,sL.STORE_SIZE,sL.WRITE_SPEED,sL.WRITE_LAGS,sL.START_OFFSET,sL.END_OFFSET,sL.PARTITION_HOST],vL=Object.values(sL),yL=e=>{let{consumers:t,selectedConsumer:n,onSelectedConsumerChange:r,selectDisabled:i,partitions:o,onSearchChange:s,hiddenColumns:l,onHiddenColumnsChange:c,initialColumnsIds:u}=e;const[d,h]=a.useState(""),[p,f]=a.useState("");a.useEffect((()=>{if(!o)return;const e=new RegExp(m_()(p),"i"),t=new RegExp(m_()(d),"i"),n=o.filter((n=>{const{partitionId:r,readerName:i,readSessionId:o,partitionNodeId:a,connectionNodeId:s,partitionHost:l,connectionHost:c}=n,u=e.test(r),d=[i,o,a,s,l,c].filter(Boolean).map(String),h=0===d.length||d.some((e=>t.test(e)));return u&&h}));s(n)}),[p,d,o,s]);const m=a.useMemo((()=>{const e=t&&t.length?t.map((e=>({value:e,content:e}))):[];return[{value:"",content:aL("controls.consumerSelector.emptyOption")},...e]}),[t]),g=a.useMemo((()=>{const e=[];for(const t of u){const n=t===sL.PARTITION_ID,r={title:lL[t],selected:Boolean(!l.includes(t)),id:t,required:n,sticky:n?"start":void 0};n?e.unshift(r):e.push(r)}return e}),[u,l]),v=e=>(0,Le.jsx)("div",{className:kL("select-option",{empty:""===e.value}),children:e.content});return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(ww,{className:kL("consumer-select"),label:aL("controls.consumerSelector"),options:m,value:[n],onUpdate:e=>{r(e[0])},filterable:t&&t.length>5,disabled:i||!t||!t.length,renderOption:v,renderSelectedOption:v}),(0,Le.jsx)(Yc,{onChange:e=>{f(e)},placeholder:aL("controls.partitionSearch"),className:kL("search",{partition:!0}),value:p}),(0,Le.jsx)(Yc,{onChange:e=>{h(e)},placeholder:aL("controls.generalSearch"),className:kL("search",{general:!0}),value:d}),(0,Le.jsx)(VE,{popupWidth:242,items:g,showStatus:!0,onUpdate:e=>{const t=[...l];e.forEach((e=>{e.selected||l.includes(e.id)?e.selected&&l.includes(e.id)&&t.splice(l.indexOf(e.id)):t.push(e.id)})),c(t)},sortable:!1},"TableColumnSetup")]})},bL=Me("ydb-diagnostics-partitions-columns-header"),xL=e=>{let{title:t}=e;return(0,Le.jsx)("div",{className:bL("multiline"),children:t})},wL=()=>(0,Le.jsx)("div",{className:bL("read-session"),children:lL[sL.READ_SESSION_ID]}),SL=()=>(0,Le.jsx)(Po,{className:bL("lags"),text:lL[sL.WRITE_LAGS],popoverContent:(0,Le.jsx)(Jj,{text:aL("lagsPopover.writeLags"),type:"write"})}),_L=()=>(0,Le.jsx)(Po,{className:bL("lags"),text:lL[sL.READ_LAGS],popoverContent:(0,Le.jsx)(Jj,{text:aL("lagsPopover.readLags"),type:"read"})}),CL=()=>(0,Le.jsx)(Po,{className:bL("messages"),text:lL[sL.UNREAD_MESSAGES],popoverContent:(0,Le.jsx)("div",{className:bL("messages-popover-content"),children:aL("headers.unread")})}),EL=()=>(0,Le.jsx)(Po,{className:bL("messages"),text:lL[sL.UNCOMMITED_MESSAGES],popoverContent:(0,Le.jsx)("div",{className:bL("messages-popover-content"),children:aL("headers.uncommited")})}),TL=Me("ydb-diagnostics-partitions-columns"),OL=[{name:sL.PARTITION_ID,header:(0,Le.jsx)(xL,{title:lL[sL.PARTITION_ID]}),sortAccessor:e=>(0,Ou.kE)(e.partitionId)&&Number(e.partitionId),align:Hc.ZP.LEFT,render:e=>{let{row:t}=e;return t.partitionId}},{name:sL.STORE_SIZE,header:(0,Le.jsx)(xL,{title:lL[sL.STORE_SIZE]}),align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return(0,ks.td)(t.storeSize)}},{name:sL.WRITE_SPEED,header:lL[sL.WRITE_SPEED],align:Hc.ZP.LEFT,resizeMinWidth:140,sortAccessor:e=>e.writeSpeed.perMinute,render:e=>{let{row:t}=e;return(0,Le.jsx)(Lj,{data:t.writeSpeed})}},{name:sL.READ_SPEED,header:lL[sL.READ_SPEED],align:Hc.ZP.LEFT,resizeMinWidth:140,sortAccessor:e=>{var t;return null===(t=e.readSpeed)||void 0===t?void 0:t.perMinute},render:e=>{let{row:t}=e;return(0,Le.jsx)(Lj,{data:t.readSpeed})}},{name:sL.WRITE_LAGS,header:(0,Le.jsx)(SL,{}),className:TL("lags-header"),sub:[{name:cL,header:dL[cL],align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return(0,ks.gC)(t.partitionWriteLag)}},{name:uL,header:dL[uL],align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return(0,ks.gC)(t.partitionWriteIdleTime)}}]},{name:sL.READ_LAGS,header:(0,Le.jsx)(_L,{}),className:TL("lags-header"),sub:[{name:hL,header:mL[hL],align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return(0,ks.gC)(t.consumerWriteLag)}},{name:pL,header:mL[pL],align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return(0,ks.gC)(t.consumerReadLag)}},{name:fL,header:mL[fL],align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return(0,ks.gC)(t.consumerReadIdleTime)}}]},{name:sL.UNCOMMITED_MESSAGES,header:(0,Le.jsx)(EL,{}),align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return t.uncommitedMessages}},{name:sL.UNREAD_MESSAGES,header:(0,Le.jsx)(CL,{}),align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return t.unreadMessages}},{name:sL.START_OFFSET,header:(0,Le.jsx)(xL,{title:lL[sL.START_OFFSET]}),sortAccessor:e=>(0,Ou.kE)(e.startOffset)&&Number(e.startOffset),align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return t.startOffset}},{name:sL.END_OFFSET,header:(0,Le.jsx)(xL,{title:lL[sL.END_OFFSET]}),sortAccessor:e=>(0,Ou.kE)(e.endOffset)&&Number(e.endOffset),align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return t.endOffset}},{name:sL.COMMITED_OFFSET,header:(0,Le.jsx)(xL,{title:lL[sL.COMMITED_OFFSET]}),sortAccessor:e=>(0,Ou.kE)(e.commitedOffset)&&Number(e.commitedOffset),align:Hc.ZP.RIGHT,render:e=>{let{row:t}=e;return t.commitedOffset}},{name:sL.READ_SESSION_ID,header:(0,Le.jsx)(wL,{}),align:Hc.ZP.LEFT,width:150,render:e=>{let{row:t}=e;return t.readSessionId?(0,Le.jsx)(Il,{name:t.readSessionId,showStatus:!1,hasClipboardButton:!0}):"\u2013"}},{name:sL.READER_NAME,header:(0,Le.jsx)(xL,{title:lL[sL.READER_NAME]}),align:Hc.ZP.LEFT,width:150,render:e=>{let{row:t}=e;return t.readerName?(0,Le.jsx)(Il,{name:t.readerName,showStatus:!1,hasClipboardButton:!0}):"\u2013"}},{name:sL.PARTITION_HOST,header:(0,Le.jsx)(xL,{title:lL[sL.PARTITION_HOST]}),align:Hc.ZP.LEFT,width:200,render:e=>{let{row:t}=e;return t.partitionNodeId&&t.partitionHost?(0,Le.jsx)(Il,{name:t.partitionHost,path:bu(t.partitionNodeId),showStatus:!1,hasClipboardButton:!0}):"\u2013"}},{name:sL.CONNECTION_HOST,header:(0,Le.jsx)(xL,{title:lL[sL.CONNECTION_HOST]}),align:Hc.ZP.LEFT,width:200,render:e=>{let{row:t}=e;return t.connectionNodeId&&t.connectionHost?(0,Le.jsx)(Il,{name:t.connectionHost,path:bu(t.connectionNodeId),showStatus:!1,hasClipboardButton:!0}):"\u2013"}}],NL=OL.filter((e=>gL.includes(e.name))),kL=Me("ydb-diagnostics-partitions"),jL=e=>{let{path:t}=e;const n=Ao(),[r,i]=a.useState(t),[o,s]=a.useState([]),l=Do((e=>jj(e,t))),{autorefresh:c}=Do((e=>e.schema)),{selectedConsumer:u}=Do((e=>e.partitions)),{currentData:d,isFetching:h,error:p}=Tj.useGetTopicQuery({path:t}),f=h&&void 0===d,{currentData:m,isFetching:g,error:v}=Zs.W.useGetNodesListQuery(void 0),y=g&&void 0===m,b=Do(Zs.d),[x,w]=Mo(Lo.ZY),[S,_]=(e=>{const[t,n]=a.useState([]),[r,i]=a.useState([]);return a.useEffect((()=>{e?(n(OL),i(vL)):(n(NL),i(gL))}),[e]),[t,r]})(u);a.useEffect((()=>{i(t)}),[n,t]);const C=!f&&r?{path:r,consumerName:u}:zl.CN,{currentData:E,isFetching:T,error:O}=rL.TB.useGetPartitionsQuery(C,{pollingInterval:c}),N=T&&void 0===E,k=E,j=a.useMemo((()=>function(){let 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((e=>{const n=e.partitionNodeId&&t?t.get(e.partitionNodeId):void 0,r=e.connectionNodeId&&t?t.get(e.connectionNodeId):void 0;return{...e,partitionHost:n,connectionHost:r}}))}(k,b)),[k,b]);a.useEffect((()=>{const e=!f&&!l,t=u&&l&&!l.includes(u);(e||t)&&n((0,rL.M$)(""))}),[n,f,u,l]);const I=a.useMemo((()=>S.filter((e=>!x.includes(e.name)))),[S,x]),P=e=>{w(e)},D=e=>{n((0,rL.M$)(e))},A=f||y||N,R=v||p||O;return(0,Le.jsxs)("div",{className:kL(),children:[(0,Le.jsx)("div",{className:kL("controls"),children:(0,Le.jsx)(yL,{consumers:l,selectedConsumer:u,onSelectedConsumerChange:D,selectDisabled:Boolean(R)||A,partitions:j,onSearchChange:s,hiddenColumns:x,onHiddenColumnsChange:P,initialColumnsIds:_})}),(0,Le.jsx)("div",{className:kL("table-wrapper"),children:(0,Le.jsx)("div",{className:kL("table-content"),children:A?(0,Le.jsx)(Qc,{className:kL("loader")}):R?(0,Le.jsx)(zc,{error:R}):(0,Le.jsx)(qc,{columnsWidthLSKey:"partitionsColumnsWidth",wrapperClassName:kL("table"),data:o,columns:I,settings:Lo.LE,emptyDataMessage:aL("table.emptyDataMessage")})})})]})},IL=Me("date-range"),PL=e=>{if(!e||isNaN(e))return;const t=e-60*(new Date).getTimezoneOffset()*1e3;return new Date(t).toISOString().substring(0,"yyyy-MM-DDThh:mm".length)},DL=e=>{let{from:t,to:n,className:r,onChange:i}=e;const o=PL(t),a=PL(n);return(0,Le.jsxs)("div",{className:IL(null,r),children:[(0,Le.jsx)("input",{type:"datetime-local",value:o||"",max:a,onChange:e=>{let{target:{value:t}}=e,r=t?new Date(t).getTime():void 0;r&&n&&r>n&&(r=n),null===i||void 0===i||i({from:r,to:n})},className:IL("input")}),"\u2014",(0,Le.jsx)("input",{type:"datetime-local",min:o,value:a||"",onChange:e=>{let{target:{value:n}}=e,r=n?new Date(n).getTime():void 0;t&&r&&t>r&&(r=t),null===i||void 0===i||i({from:t,to:r})},className:IL("input")})]})};var AL=n(30667);const RL={CPUCores:"CPUCores",DataSize:"DataSize",InFlightTxCount:"InFlightTxCount"},ML={CPUTimeUs:"CPUTimeUs",EndTime:"EndTime",ReadRows:"ReadRows",ReadBytes:"ReadBytes",UserSID:"UserSID",Duration:"Duration"},LL=e=>Object.values(RL).includes(e),FL=JSON.parse('{"no-data":"No data","filter.text.placeholder":"Search by query text..."}'),zL=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..."}'),BL=(0,We.wZ)("ydb-diagnostics-top-queries",{ru:zL,en:FL}),UL=Me("kv-top-queries"),HL=e=>{let{path:t,type:n}=e;const r=Ao(),i=Ca(),o=_a(),{autorefresh:s}=Do((e=>e.schema)),l=Do((e=>e.executeTopQueries)),{currentData:c,isFetching:u,error:d}=AL.MU.useGetTopQueriesQuery({database:t,filters:l},{pollingInterval:s}),h=u&&void 0===c,{result:p}=c||{},f=[WA,qA,ZA,JA,YA,KA,QA].map((e=>{return{...e,sortable:(t=e.name,Object.values(ML).includes(t))};var t})),m=a.useCallback((e=>{const{QueryText:t}=e;r((0,TA.B8)({input:t}));const n=(0,Ta.mB)(i),a=fs({...n,[us.bS]:us.m2.query,[ds.queryTab]:us._0.newQuery});o.push(a)}),[r,o,i]),g=e=>{r((0,AL.Im)({text:e}))},v=e=>{r((0,AL.Im)(e))};return(0,Le.jsxs)($c,{children:[(0,Le.jsx)($c.Controls,{children:(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(Yc,{value:l.text,onChange:g,placeholder:BL("filter.text.placeholder"),className:UL("search")}),(0,Le.jsx)(DL,{from:l.from,to:l.to,onChange:v})]})}),(0,Le.jsx)($c.Table,{loading:h,children:d?(0,Le.jsx)("div",{className:"error",children:(0,BI.fV)(d)}):!p||(0,pj.Jp)(n)?BL("no-data"):(0,Le.jsx)(qc,{columnsWidthLSKey:MA,columns:f,data:p,settings:AA,onRowClick:m,rowClassName:()=>UL("row")})})]})};var VL=n(9345),GL=n(58660);const WL=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%"}'),qL=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%"}'),ZL=(0,We.wZ)("ydb-diagnostics-top-shards",{ru:qL,en:WL}),YL=e=>{let{value:t,onChange:n}=e;const r=t.mode===GL.F.Immediate?void 0:t.from,i=t.mode===GL.F.Immediate?void 0:t.to;return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsxs)(Oo,{value:t.mode,onUpdate:e=>{if(!((e,t)=>Object.values(e).includes(t))(GL.F,e)){const t=Object.values(GL.F).join(", ");throw new Error('Unexpected TopShards mode "'.concat(e,'". Should be one of: ').concat(t))}n({mode:e})},children:[(0,Le.jsx)(Oo.Option,{value:GL.F.Immediate,children:ZL("filters.mode.immediate")}),(0,Le.jsx)(Oo.Option,{value:GL.F.History,children:ZL("filters.mode.history")})]}),(0,Le.jsx)(DL,{from:r,to:i,onChange:e=>{n({mode:GL.F.History,...e})}})]})},KL=Me("top-shards"),QL={...Lo.LE,dynamicRender:!1,externalSort:!0,disableSortReset:!0,defaultOrder:Hc.ZP.DESCENDING},XL="CPUCores",$L="PeakTime",JL="IntervalEnd";function eF(e){return e?(0,ks.o0)(new Date(e).getTime()):"\u2013"}function tF(e){return e?e.split(",").map((e=>({columnId:e,order:Hc.ZP.DESCENDING}))):void 0}function nF(e){return e.to=Date.now(),e.from=e.to-1e3*Lo.RQ,e}const rF=e=>{let{tenantPath:t,type:n}=e;const r=Ao(),i=Ca(),{autorefresh:o,currentSchemaPath:s}=Do((e=>e.schema)),l=Do((e=>e.shardsWorkload)),[c,u]=a.useState((()=>{const e={...l};return e.mode||(e.mode=GL.F.Immediate),e.from||e.to||nF(e),e})),[d,h]=a.useState(XL),{data:p,isFetching:f,error:m}=VL.Ag.useSendShardQueryQuery({database:t,path:s,sortOrder:(g=d,g?g.split(",").map((e=>({columnId:e,order:"DESC"}))):void 0),filters:c},{pollingInterval:o});var g;const v=f&&void 0===p,{result:y}=null!==p&&void 0!==p?p:{},b=e=>{h(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return(Array.isArray(e)?e:[e]).map((e=>{let{columnId:t}=e;return t})).join(",")}(e))},x=e=>{const t={...e};if(!l.from&&!l.to&&!e.from&&!e.to)switch(e.mode){case GL.F.Immediate:t.from=t.to=void 0;break;case GL.F.History:nF(t)}r((0,VL.K2)(e)),u((e=>({...e,...t})))},w=a.useMemo((()=>{const e=((e,t)=>[fR(e,t),mR,gR,vR,yR,xR])(t,i),n=e.map((e=>({...e,sortable:LL(e.name)})));return c.mode===GL.F.History&&(n.splice(5,0,{name:$L,render:e=>{let{row:t}=e;return eF(t.PeakTime)},sortable:!1}),n.push({name:JL,render:e=>{let{row:t}=e;return eF(t.IntervalEnd)}})),n}),[c.mode,t,i]);return(0,Le.jsxs)($c,{children:[(0,Le.jsx)($c.Controls,{children:(0,Le.jsx)(YL,{value:c,onChange:x})}),c.mode===GL.F.History&&(0,Le.jsx)("div",{className:KL("hint"),children:ZL("description")}),(0,Le.jsx)($c.Table,{loading:v,children:m?(0,Le.jsx)("div",{className:"error",children:(0,BI.fV)(m)}):!y||(0,pj.Jp)(n)?ZL("no-data"):(0,Le.jsx)(qc,{columnsWidthLSKey:aR,columns:w,data:y,settings:QL,onSort:b,sortOrder:tF(d)})})]})},iF=Me("kv-tenant-diagnostics");const oF=function(e){const t=a.useRef(null),n=Ao(),{currentSchemaPath:r,wasLoaded:i}=Do((e=>e.schema)),{diagnosticsTab:o=us.qQ.overview}=Do((e=>e.tenant)),[s]=mc({name:Gl,backend:Gl,clusterName:Gl}),{name:l}=s,c=(0,pj.dw)(e.type)?r:l,u=(0,pj.dw)(e.type)||r===l,d=a.useMemo((()=>u?hM:SM(e.type)),[e.type,u]),h=a.useMemo((()=>{if(i){let e=d.find((e=>e.id===o));return e||(e=d[0]),e&&e.id!==o&&(e=>{n((0,Gk.$v)(e))})(e.id),e}}),[d,o,i]);return i?(0,Le.jsxs)("div",{className:iF(),ref:t,children:[h?(0,Le.jsx)(oe,{children:(0,Le.jsx)("title",{children:h.title})}):null,(0,Le.jsx)("div",{className:iF("header-wrapper"),children:(0,Le.jsxs)("div",{className:iF("tabs"),children:[(0,Le.jsx)(wt,{size:"l",items:d,activeTab:null===h||void 0===h?void 0:h.id,wrapTo:(e,t)=>{let{id:n}=e;const r=(0,Ta.ax)(Ta.ZP.tenant,void 0,{...s,[ds.diagnosticsTab]:n});return(0,Le.jsx)(bl,{to:r,className:iF("tab"),children:t},n)},allowNotSelected:!0}),(0,Le.jsx)(Cj,{})]})}),(0,Le.jsx)("div",{className:iF("page-wrapper"),children:(()=>{const{type:n}=e,i=c;switch(null===h||void 0===h?void 0:h.id){case us.qQ.overview:return(0,Le.jsx)(XR,{type:n,tenantName:i,additionalTenantProps:e.additionalTenantProps,additionalNodesProps:e.additionalNodesProps});case us.qQ.schema:return(0,Le.jsx)(bj,{path:r,type:n,withFamilies:!0});case us.qQ.topQueries:return(0,Le.jsx)(HL,{path:i,type:n});case us.qQ.topShards:return(0,Le.jsx)(rF,{tenantPath:i,type:n});case us.qQ.nodes:return(0,Le.jsx)(rh,{path:r,additionalNodesProps:e.additionalNodesProps,parentContainer:t.current});case us.qQ.tablets:return(0,Le.jsx)(oN,{path:r});case us.qQ.storage:return(0,Le.jsx)(d_,{tenant:i,parentContainer:t.current});case us.qQ.network:return(0,Le.jsx)(eL,{path:i});case us.qQ.describe:return(0,Le.jsx)(xI,{tenant:i,type:n});case us.qQ.hotKeys:return(0,Le.jsx)(jM,{path:r});case us.qQ.graph:return(0,Le.jsx)(uj,{path:r});case us.qQ.consumers:return(0,Le.jsx)(gI,{path:r,type:n});case us.qQ.partitions:return(0,Le.jsx)(jL,{path:r});default:return(0,Le.jsx)("div",{children:"No data..."})}})()})]}):(0,Le.jsx)(N_,{size:"l"})},aF=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","method-description.script":"For YQL-scripts combining DDL and DML.\\nAPI call: schema.scripting","method-description.scan":"Read-only queries, potentially reading a lot of data.\\nAPI call: table.ExecuteScan","method-description.data":"DML queries for changing and fetching data in serialization mode.\\nAPI call: table.executeDataQuery","method-description.query":"Any query. An experimental API call supposed to replace all existing methods.\\nAPI Call: query.ExecuteScript","method-description.pg":"Queries in postgresql syntax.\\nAPI call: query.ExecuteScript","query-duration.description":"Duration of server-side query execution","action.send-query":"Send query","action.send-selected-query":"Send selected query","action.previous-query":"Previous query in history","action.next-query":"Next query in history"}'),sF=(0,We.wZ)("ydb-query-editor",{en:aF}),lF=Me("ydb-queries-history"),cF="queriesHistoryTableColumnsWidth";const uF=function(e){let{changeUserInput:t}=e;const n=Ao(),[r,i]=Fo(),o=[...Do(TA.qV)].reverse(),a=[{name:"queryText",header:"Query Text",render:e=>{let{row:t}=e;return(0,Le.jsx)("div",{className:lF("query"),children:(0,Le.jsx)(kA,{value:t.queryText,maxQueryHeight:DA})})},sortable:!1,width:600},{name:"syntax",header:"Syntax",render:e=>{let{row:t}=e;return t.syntax===BI.jM.pg?"PostgreSQL":"YQL"},sortable:!1,width:200}];return(0,Le.jsx)("div",{className:lF(),children:(0,Le.jsx)(qc,{columnsWidthLSKey:cF,columns:a,data:o,settings:AA,emptyDataMessage:sF("history.empty"),onRowClick:e=>{return(o=e).syntax===BI.jM.pg&&r!==BI.wZ.pg?i(BI.wZ.pg):o.syntax!==BI.jM.pg&&r===BI.wZ.pg&&i(BI.wZ.script),t({input:o.queryText}),void n((0,Gk.jk)(us._0.newQuery));var o},rowClassName:()=>lF("table-row")})})};function dF(){return(0,Le.jsx)("div",{style:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,Le.jsx)(Di,{size:"l"})})}const hF=function(e,t,n){const r=a.lazy((()=>e().then((e=>({default:e[t]}))).catch((e=>({default:()=>(0,Le.jsx)($e,{error:e})}))))),i=(e,t)=>{const i=Be("ErrorBoundary");return(0,Le.jsx)(i,{children:(0,Le.jsx)(a.Suspense,{fallback:null!==n&&void 0!==n?n:(0,Le.jsx)(dF,{}),children:(0,Le.jsx)(r,{ref:t,...e})})})};return i.displayName=t,a.forwardRef(i)}((async()=>{const e=(await Promise.all([n.e(1551),n.e(3757)]).then(n.bind(n,93757))).default,{registerLanguages:t}=await Promise.all([n.e(1551),n.e(8424),n.e(4842)]).then(n.bind(n,14842));return t(),{Editor:e}}),"Editor"),pF=new Set(["PlanNodeId","PlanNodeType","Node Type","Plans"]);function fF(e){const t=[];if(e.Operators){const n=[];for(const t of e.Operators){const e={name:t.Name,items:[]};for(const[n,r]of Object.entries(t)){if("Name"===n)continue;const t=Array.isArray(r)?r.join(", "):r;e.items.push({name:n,value:t})}n.push(e)}t.push({group:"Operators",stats:n})}if("Connection"===e.PlanNodeType){const n=[];for(const[t,r]of Object.entries(e))pF.has(t)||n.push({name:t,value:String(r)});n.length>0&&t.push({group:"Attributes",stats:n})}return t}function mF(e){switch(e.PlanNodeType){case"Connection":return"connection";case"ResultSet":return"result";case"Query":return"query";default:return"stage"}}const gF={v2:"0.2"},vF=Object.values(gF),yF=e=>{const{plan:t,ast:n}=(0,BI.CC)(e);if(!t)return{ast:n};const{tables:r,meta:i,Plan:o}=(0,BI.y5)(t);if(-1===vF.indexOf(i.version))return{plan:{pristine:t,version:i.version},ast:n};let a=[],s=[];if(o){const e=function(e){const t=[],n=[],r=e,i={name:String(r.PlanNodeId),data:{id:r.PlanNodeId,type:mF(r),name:r["Node Type"]}};return t.push(i),function e(){let r=arguments.length>1?arguments[1]:void 0;(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach((i=>{var o;const a={name:String(i.PlanNodeId),data:{id:i.PlanNodeId,type:mF(i),name:i["Node Type"],operators:null===(o=i.Operators)||void 0===o?void 0:o.map((e=>e.Name)),stats:fF(i),tables:i.Tables}};t.push(a),n.push({from:r,to:a.name}),e(i.Plans,a.name)}))}(r.Plans,i.name),{nodes:t,links:n}}(o);a=e.links,s=e.nodes}return{plan:{links:a,nodes:s,tables:r,version:i.version,pristine:t},ast:n}},bF=Dl.h.injectEndpoints({endpoints:e=>({explainQuery:e.mutation({queryFn:async e=>{let{query:t,database:n,mode:r}=e,i="explain",o=BI.jM.yql;"pg"===r?(i="explain-query",o=BI.jM.pg):r&&(i="explain-".concat(r));try{const e=await window.api.getExplainQuery(t,n,i,o);if((0,BI.gW)(e))return{error:e};return{data:yF(e)}}catch(a){return{error:a}}}})}),overrideExisting:"throw"});var xF=n(62729);const wF=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M10.97 12.53a.75.75 0 1 0 1.06-1.06l-3.5-3.5a.75.75 0 0 0-1.06 0l-3.5 3.5a.75.75 0 1 0 1.06 1.06L8 9.56l2.97 2.97Zm0-5a.75.75 0 1 0 1.06-1.06l-3.5-3.5a.75.75 0 0 0-1.06 0l-3.5 3.5a.75.75 0 0 0 1.06 1.06L8 4.56l2.97 2.97Z",clipRule:"evenodd"}));let SF;!function(e){e.triggerCollapse="triggerCollapse",e.triggerExpand="triggerExpand",e.clear="clear"}(SF||(SF={}));const _F=e=>{localStorage.setItem(e,"true")},CF=e=>{localStorage.removeItem(e)};function EF(e){return function(t,n){switch(n){case SF.triggerCollapse:return _F(e),{...t,triggerCollapse:!0,triggerExpand:!1,collapsed:!0};case SF.triggerExpand:return CF(e),{...t,triggerCollapse:!1,triggerExpand:!0,collapsed:!1};case SF.clear:return CF(e),{triggerCollapse:!1,triggerExpand:!1,collapsed:!1};default:return t}}}const TF=Me("kv-pane-visibility-button");function OF(e){let{onCollapse:t,onExpand:n,isCollapsed:r,initialDirection:i="top",className:o}=e;return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(Ie.z,{view:"flat-secondary",onClick:t,className:TF({hidden:r},o),title:"Collapse",children:(0,Le.jsx)(we.J,{data:wF,className:TF({[i]:!0})})}),(0,Le.jsx)(Ie.z,{view:"flat-secondary",onClick:n,className:TF({hidden:!r},o),title:"Expand",children:(0,Le.jsx)(we.J,{data:wF,className:TF({[i]:!0},"rotate")})})]})}const NF=Me("kv-divider");const kF=function(){return(0,Le.jsx)("div",{className:NF()})},jF=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M4.5 3A1.5 1.5 0 0 0 3 4.5v1.75a.75.75 0 0 1-1.5 0V4.5a3 3 0 0 1 3-3h1.75a.75.75 0 0 1 0 1.5H4.5ZM9 2.25a.75.75 0 0 1 .75-.75h1.75a3 3 0 0 1 3 3v1.75a.75.75 0 0 1-1.5 0V4.5A1.5 1.5 0 0 0 11.5 3H9.75A.75.75 0 0 1 9 2.25ZM2.25 9a.75.75 0 0 1 .75.75v1.75A1.5 1.5 0 0 0 4.5 13h1.75a.75.75 0 0 1 0 1.5H4.5a3 3 0 0 1-3-3V9.75A.75.75 0 0 1 2.25 9Zm11.5 0a.75.75 0 0 1 .75.75v1.75a3 3 0 0 1-3 3H9.75a.75.75 0 0 1 0-1.5h1.75a1.5 1.5 0 0 0 1.5-1.5V9.75a.75.75 0 0 1 .75-.75Z",clipRule:"evenodd"}));var IF=n(56963);const PF=function(e){let{disabled:t}=e;const n=Ao();return(0,Le.jsx)(Ie.z,{onClick:()=>{n((0,IF.Xl)())},view:"flat-secondary",disabled:t,title:"Fullscreen",children:(0,Le.jsx)(we.J,{data:jF})})};var DF;function AF(){return AF=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},AF.apply(this,arguments)}const RF=function(e){return a.createElement("svg",AF({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),DF||(DF=a.createElement("path",{fill:"currentColor",d:"M13.383 6.5a.309.309 0 00.305-.305V5.18a.328.328 0 00-.305-.305H11.25V2.742a.328.328 0 00-.305-.304H9.93a.309.309 0 00-.305.304v3.149c0 .355.254.609.61.609h3.148zm-7.008-.61V2.743a.328.328 0 00-.305-.304H5.055a.309.309 0 00-.305.304v2.133H2.617a.309.309 0 00-.304.305v1.015c0 .178.126.305.304.305h3.149c.33 0 .609-.254.609-.61zm0 7.618v-3.149c0-.33-.28-.609-.61-.609H2.618a.309.309 0 00-.304.305v1.015c0 .178.126.305.304.305H4.75v2.133c0 .178.127.305.305.305H6.07a.309.309 0 00.305-.305zm4.875 0v-2.133h2.133a.309.309 0 00.305-.305v-1.015a.328.328 0 00-.305-.305h-3.149c-.355 0-.609.28-.609.61v3.148c0 .178.127.305.305.305h1.015a.309.309 0 00.305-.305z"})))},MF=Me("kv-fullscreen");class LF extends a.Component{constructor(e){super(e),this.modalRoot=null,this.el=void 0,this.el=document.createElement("div")}componentDidMount(){this.modalRoot=document.getElementById("fullscreen-root"),this.modalRoot&&this.modalRoot.appendChild(this.el)}componentWillUnmount(){this.modalRoot&&this.modalRoot.removeChild(this.el)}render(){return Dt.createPortal(this.props.children,this.el)}}const FF=function(e){const t=Ao(),n=a.useCallback((()=>{t((0,IF.vj)())}),[t]);return a.useEffect((()=>{const e=e=>{"Escape"===e.key&&n()};return document.addEventListener("keydown",e,!1),()=>{document.removeEventListener("keydown",e,!1)}}),[n]),(0,Le.jsx)(LF,{children:(0,Le.jsxs)("div",{className:MF(null,e.className),children:[(0,Le.jsx)(Ie.z,{onClick:n,view:"raised",className:MF("close-button"),children:(0,Le.jsx)(we.J,{data:RF})}),e.children]})})},zF=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14ZM6.44 4.54c.43-.354.994-.565 1.56-.565 1.217 0 2.34.82 2.34 2.14 0 .377-.079.745-.298 1.1-.208.339-.513.614-.875.867-.217.153-.326.257-.379.328-.038.052-.038.07-.038.089a.75.75 0 0 1-1.5 0c0-.794.544-1.286 1.056-1.645.28-.196.402-.332.46-.425a.543.543 0 0 0 .073-.313c0-.3-.243-.641-.839-.641a.997.997 0 0 0-.608.224c-.167.137-.231.286-.231.417a.75.75 0 0 1-1.5 0c0-.673.345-1.22.78-1.577ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z",clipRule:"evenodd"}));var BF=n(80518),UF=n(96261),HF=n(52369);const VF=Me("kv-query-execution-status"),GF=e=>{let t,n,{className:r,error:i}=e;if((0,HF.IZ)(i)&&"ECONNABORTED"===i.code)t=(0,Le.jsx)(we.J,{data:zF}),n="Connection aborted";else{const e=Boolean(i);t=(0,Le.jsx)(we.J,{data:e?BF.Z:UF.Z,className:VF("result-status-icon",{error:e})}),n=e?"Failed":"Completed"}return(0,Le.jsxs)("div",{className:VF(null,r),children:[t,n]})},WF=a.memo((function(e){const{className:t,value:n}=e,r=Ao();return a.useEffect((()=>()=>{r((0,vs.i8)())}),[r]),(0,Le.jsx)("span",{className:QF("cell",t),onClick:e=>r((0,vs.hJ)(e.target,n,"cell")),children:n})})),qF=JSON.parse('{"empty":"Table is empty"}'),ZF=JSON.parse('{"empty":"\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u0443\u0441\u0442\u0430\u044f"}'),YF=(0,We.wZ)("ydb-query-result-table",{ru:ZF,en:qF}),KF={...Lo.LE,stripedRows:!0,dynamicRenderType:"variable",dynamicItemSizeGetter:()=>40},QF=Me("ydb-query-result-table"),XF=(e,t)=>t,$F=e=>{const{columns:t,data:n,settings:r,...i}=e,o=a.useMemo((()=>(0,BI.Xh)(n)),[n]),s=a.useMemo((()=>t?(e=>e.length?e.map((e=>{let{name:t,type:n}=e;const r=(0,BI.T$)(n);return{name:t,align:"number"===r?Hc.ZP.RIGHT:Hc.ZP.LEFT,sortAccessor:e=>{const n=e[t];return void 0===n||null===n?null:"number"===r?BigInt(n):n},render:e=>{let{row:n}=e;return(0,Le.jsx)(WF,{value:String(n[t])})}}})):[])(t):(e=>e.length?Object.keys(e[0]).map((t=>({name:t,align:(0,Ou.kE)(e[0][t])?Hc.ZP.RIGHT:Hc.ZP.LEFT,sortAccessor:e=>(0,Ou.kE)(e[t])?Number(e[t]):e[t],render:e=>{let{row:n}=e;return(0,Le.jsx)(WF,{value:String(n[t])})}}))):[])(o)),[o,t]),l=a.useMemo((()=>({...KF,...r})),[r]);return Array.isArray(n)?s.length?(0,Le.jsx)(qc,{data:o,columns:s,settings:l,rowKey:XF,...i}):(0,Le.jsx)("div",{className:QF("message"),children:YF("empty")}):null},JF=JSON.parse('{"default_collapse_label":"Show less","default_expand_label":"Show more","chars_count":[" ({{count}} symbol)"," ({{count}} symbols)"," ({{count}} symbols)"," ({{count}} symbols)"]}'),ez=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)"]}'),tz=(0,We.wZ)("ydb-shorty-string",{ru:ez,en:JF}),nz=Me("kv-shorty-string");function rz(e){let{value:t="",limit:n=200,strict:r=!1,displayLength:i=!0,render:o=(e=>e),onToggle:s,expandLabel:l=tz("default_expand_label"),collapseLabel:c=tz("default_collapse_label")}=e;const[u,d]=a.useState(!1),h=(u?c:l)+(i&&!u?tz("chars_count",{count:t.length}):""),p=t.length>n+(r?0:h.length),f=u||!p?t:t.slice(0,n-4)+"\xa0...";return(0,Le.jsxs)("div",{className:nz(),children:[o(f),p?(0,Le.jsx)(si,{className:nz("toggle"),href:"#",onClick:e=>{e.stopPropagation(),e.preventDefault(),d((e=>!e)),null===s||void 0===s||s()},children:h}):null]})}const iz=["S_FATAL","S_ERROR","S_WARNING","S_INFO"];function oz(e){return function(e){return!!e&&void 0!==iz[e]}(e)?iz[e]:"S_INFO"}const az=Me("kv-result-issues"),sz=Me("kv-issues"),lz=Me("kv-issue");function cz(e){let{data:t}=e;const[n,r]=a.useState(!1),i="string"===typeof t||null===t||void 0===t?void 0:t.issues,o=Array.isArray(i)&&i.length>0;return(0,Le.jsxs)("div",{className:az(),children:[(0,Le.jsxs)("div",{className:az("error-message"),children:[(()=>{let e;if("string"===typeof t)e=t;else{var n,r;const i=oz(null===t||void 0===t||null===(n=t.error)||void 0===n?void 0:n.severity);e=(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(mz,{severity:i})," ",(0,Le.jsx)("span",{className:az("error-message-text"),children:null===t||void 0===t||null===(r=t.error)||void 0===r?void 0:r.message})]})}return e})(),o&&(0,Le.jsx)(Ie.z,{view:"normal",onClick:()=>r(!n),children:n?"Hide details":"Show details"})]}),o&&n&&(0,Le.jsx)(uz,{issues:i})]})}function uz(e){let{issues:t}=e;const n=null===t||void 0===t?void 0:t.reduce(((e,t)=>{var n;const r=null!==(n=t.severity)&&void 0!==n?n:10;return Math.min(e,r)}),10);return(0,Le.jsx)("div",{className:sz(null),children:null===t||void 0===t?void 0:t.map(((e,t)=>(0,Le.jsx)(dz,{issue:e,expanded:e===n},t)))})}function dz(e){let{issue:t,level:n=0}=e;const[r,i]=a.useState(!0),o=oz(t.severity),s=function(e){const{position:t={}}=e;if(!t)return!1;const{file:n,row:r,column:i}=t;return"".concat(n?"file:":"").concat(r,":").concat(i)}(t),l=t.issues,c=Array.isArray(l)&&l.length>0,u=r?"bottom":"right";return(0,Le.jsxs)("div",{className:lz({leaf:!c,"has-issues":c}),children:[(0,Le.jsxs)("div",{className:lz("line"),children:[c&&(0,Le.jsx)(Ie.z,{view:"flat-secondary",onClick:()=>i(!r),className:lz("arrow-toggle"),children:(0,Le.jsx)(_e,{direction:u,size:16})}),(0,Le.jsx)(mz,{severity:o}),(0,Le.jsxs)("span",{className:lz("message"),children:[s&&(0,Le.jsx)("span",{className:lz("place-text"),title:"Position",children:s}),(0,Le.jsx)("div",{className:lz("message-text"),children:(0,Le.jsx)(rz,{value:t.message,expandLabel:"Show full message"})})]}),t.issue_code?(0,Le.jsxs)("span",{className:lz("code"),children:["Code: ",t.issue_code]}):null]}),c&&r&&(0,Le.jsx)("div",{className:lz("issues"),children:(0,Le.jsx)(hz,{issues:l,level:n+1,expanded:r})})]})}function hz(e){const{issues:t,level:n,expanded:r}=e;return(0,Le.jsx)("div",{className:lz("list"),children:t.map(((e,t)=>(0,Le.jsx)(dz,{issue:e,level:n,expanded:r},t)))})}const pz={S_INFO:Cl.Z,S_WARNING:El,S_ERROR:Tl.Z,S_FATAL:PO.Z},fz=Me("yql-issue-severity");function mz(e){let{severity:t}=e;const n=t.slice(2).toLowerCase();return(0,Le.jsxs)("span",{className:fz({severity:n}),children:[(0,Le.jsx)(we.J,{className:fz("icon"),data:pz[t]}),(0,Le.jsx)("span",{className:fz("title"),children:n})]})}const gz=Me("ydb-query-duration"),vz=e=>{let{duration:t}=e;if(!t)return null;const n=(0,Ej.tt)((0,Ej.BO)(t),1);return(0,Le.jsx)("span",{className:gz(),children:(0,Le.jsx)(Po,{className:gz("item-with-popover"),contentClassName:gz("popover"),text:n,popoverContent:sF("query-duration.description")})})};function yz(e){return e.replaceAll("\\","\\\\").replaceAll("\n","\\n").replaceAll("\r","\\r").replaceAll("\t","\\t")}const bz=Me("ydb-query-execute-result"),xz={result:"result",stats:"stats"},wz=[{value:xz.result,content:"Result"},{value:xz.stats,content:"Stats"}];function Sz(e){var t,n,r;let{data:i,stats:o,error:s,isResultsCollapsed:l,onCollapseResults:c,onExpandResults:u}=e;const[d,h]=a.useState(0),[p,f]=a.useState(xz.result),m=Do((e=>e.fullscreen)),g=Ao(),v=null===i||void 0===i||null===(t=i.resultSets)||void 0===t?void 0:t.length,y=v&&v>0,b=y?null===i||void 0===i||null===(n=i.resultSets)||void 0===n?void 0:n[d].result:null===i||void 0===i?void 0:i.result,x=y?null===i||void 0===i||null===(r=i.resultSets)||void 0===r?void 0:r[d].columns:null===i||void 0===i?void 0:i.columns,w=function(e){if(null===e||void 0===e||!e.length)return"";const t=Object.keys(e[0]),n=[t.map(yz).join("\t")];for(const r of e){const e=[];for(const n of t){const t=r[n];e.push(yz("object"===typeof t?JSON.stringify(t):"".concat(t)))}n.push(e.join("\t"))}return n.join("\n")}(b),S=!w.length,_=(0,BI.dt)(s);a.useEffect((()=>()=>{g((0,IF.vj)())}),[g]);const C=(e,t)=>(0,Le.jsx)($F,{data:e,columns:t,settings:{sortable:!1}}),E=()=>{const e=(0,Le.jsx)(bs(),{data:o,isExpanded:()=>!0,className:bz("inspector"),searchOptions:{debounceTime:300}});return(0,Le.jsxs)(a.Fragment,{children:[e,m&&(0,Le.jsx)(FF,{children:(0,Le.jsx)("div",{className:bz("inspector",{fullscreen:!0}),children:e})})]})},T=()=>{const e=(0,Le.jsxs)(a.Fragment,{children:[y&&v>1&&(0,Le.jsx)("div",{children:(0,Le.jsx)(wt,{className:bz("result-tabs"),size:"l",items:Ed(v).map((e=>({id:String(e),title:"Result #".concat(e+1)}))),activeTab:String(d),onSelectTab:e=>h(Number(e))})}),(0,Le.jsx)("div",{className:bz("result"),children:C(b,x)})]});return(0,Le.jsxs)(a.Fragment,{children:[e,m&&(0,Le.jsx)(FF,{children:(0,Le.jsx)("div",{className:bz("result-fullscreen-wrapper"),children:e})})]})},O=()=>{if(!_)return null;if("object"===typeof _){const e=(0,Le.jsx)(cz,{data:_});return(0,Le.jsxs)(a.Fragment,{children:[e,m&&(0,Le.jsx)(FF,{children:(0,Le.jsx)("div",{className:bz("result-fullscreen-wrapper",bz("result")),children:e})})]})}return(0,Le.jsx)("div",{className:bz("error"),children:_})};return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsxs)("div",{className:bz("controls"),children:[(0,Le.jsxs)("div",{className:bz("controls-right"),children:[(0,Le.jsx)(GF,{error:s}),o&&!s&&(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(vz,{duration:null===o||void 0===o?void 0:o.DurationUs}),(0,Le.jsx)(kF,{}),(0,Le.jsx)(Oo,{options:wz,value:p,onUpdate:e=>{f(e)}})]})]}),(0,Le.jsxs)("div",{className:bz("controls-left"),children:[(0,Le.jsx)(pl,{text:w,view:"flat-secondary",title:"Copy results",disabled:S}),(0,Le.jsx)(PF,{}),(0,Le.jsx)(OF,{onCollapse:c,onExpand:u,isCollapsed:l,initialDirection:"bottom"})]})]}),p!==xz.result||s?(0,Le.jsxs)("div",{className:bz("result"),children:[p===xz.stats&&!s&&E(),O()]}):T()]})}var _z=n(14702);function Cz(e,t){const n=document.createElement("button");return n.innerText=e,n.className="paranoid-button paranoid-button_".concat(t),n}const Ez="ParanoidC";function Tz(e,t){const n=document.getElementById(e);if(!n)throw new Error("Not found element with id ".concat(e));n.style.position="relative";const r=Cz("+","plus"),i=Cz("-","minus"),o=Cz("1:1","normal"),a=function(e,t){const n=document.createElement("canvas");n.setAttribute("id",Ez),n.setAttribute("width",String(e.offsetWidth)),n.setAttribute("height",String(e.offsetHeight)),e.appendChild(n);const r=t.colors||{};return new _z.fabric.Canvas(Ez,{selection:!1,backgroundColor:r.fill,defaultCursor:"grab"})}(n,t),s=function(e,t,n,r){const i=document.createElement("div");i.className="paranoid-controls";const 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")}(r),i.appendChild(o),i.appendChild(t),i.appendChild(e),i.appendChild(n),i}(r,i,o,t.colors);return n.appendChild(s),function(e,t,n,r,i){const o=i.minZoom||.2,a=i.zoomStep||.2,s=i.maxZoom||2,l=i.startZoom||1;e.setZoom(l),n.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation();let n=e.getZoom();n-=a,n<o&&(n=o),e.setZoom(n)})),t.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation();let n=e.getZoom();n+=a,n>s&&(n=s),e.setZoom(n)})),r.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation(),e.setZoom(1)}))}(a,r,i,o,t),function(e){let t=!1,n=0,r=0;e.on("mouse:down",(i=>{i.target||(e.setCursor("grabbing"),t=!0,n=i.pointer.x,r=i.pointer.y)})),e.on("mouse:move",(i=>{t&&(e.viewportTransform[4]+=i.pointer.x-n,e.viewportTransform[5]+=i.pointer.y-r,e.setCursor("grabbing"),e.getObjects().forEach((e=>e.setCoords())),e.requestRenderAll(),n=i.pointer.x,r=i.pointer.y)})),e.on("mouse:up",(()=>{t&&(e.setCursor("grab"),t=!1)}))}(a),a}const Oz={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)"},Nz={hasControls:!1,hasRotatingPoint:!1,lockMovementX:!0,lockMovementY:!0,selectable:!1,hoverCursor:"default",subTargetCheck:!0},kz="Arial, sans-serif",jz=13,Iz=1.38;var Pz;!function(e){e.Group="GROUP"}(Pz||(Pz={}));var Dz=n(69886),Az=n.n(Dz);class Rz{constructor(e,t){this.children=[],this.members=[],this.data=e,this.canvasNode=t}add(e,t){const n=new Rz(e,t);n.addParent(this),this.children.push(n)}addNode(e){e.addParent(this),this.children.push(e)}addNodes(e){e.forEach((e=>{e.addParent(this)})),this.children=this.children.concat(e)}addCanvasNode(e){this.canvasNode=e}addShapeInstance(e){this.shapeInstance=e}hasChildren(){return this.children.length>0}addParent(e){this.parent=e}getLeftSibling(){if(!this.parent)return;const e=this.parent.children.findIndex((e=>e===this));return this.parent.children[e-1]}getRightSibling(){if(!this.parent)return;const e=this.parent.children.findIndex((e=>e===this));return this.parent.children[e+1]}}class Mz{constructor(e){this.nodesWithChildren=[],this.root=e}traverseBF(e){const t=[this.root];for(;t.length>0;){const n=t.shift();n&&(t.push(...n.children),e(n))}}traverseDF(e){const t=[this.root];for(;t.length;){const n=t.shift();let r=!1;n&&(n.children.length>0?t.unshift(...n.children):r=!0,e(n,r))}}traverseByLevels(e){let t=0,n=this.root.children;for(e([this.root],0);n.length>0;)t++,e(n,t),n=n.reduce(((e,t)=>e.concat(t.children)),[])}getTreeDepth(){let e=0;return this.traverseByLevels(((t,n)=>{e=n})),e}setCanvas(e){this.canvas=e}setNodesWithChildren(e){this.nodesWithChildren=e}}class Lz{constructor(e,t){this.nodes=new Map,this.data=e,this.opts=t}parseData(){const e=this.data,t=this.getGroups(e),n=[...e.nodes];t.forEach(((e,t)=>{n.push({name:t,children:e,type:Pz.Group})}));const r=this.findSources(n,e.links);let i=[],o={},a=new Map;return r.forEach((t=>{const r=this.mapNodesToTree(t,n,e.links);o=Object.assign(Object.assign({},r.groups),o),a=new Map([...a,...r.notGroupMemebersChildren]),i.push(r.tree)})),a.forEach(((e,t)=>{o[t]&&o[t].addNodes(e)})),i=i.reduce(((e,t)=>{const n=t.root.data.group;return n?o[n].members.push(t):e.push(t),e}),[]),i}getGroups(e){let{nodes:t}=e;const n=new Map;return t.forEach((e=>{if(e.group){const t=n.get(e.group);t?t.push(e.name):n.set(e.group,[e.name])}})),n}findSources(e,t){const n=t.map((e=>{let{to:t}=e;return t}));return e.reduce(((e,t)=>(n.includes(t.name)||e.push(t),e)),[])}mapNodesToTree(e,t,n){var r;const i=this.createNode(e),o={};this.appendGoup(o,i);const a=t.map((e=>{const t=n.reduce(((t,n)=>(n.from===e.name&&t.push(n.to),t)),[]);return Object.assign(Object.assign({},e),{children:t})})),s=this.getAppender(a,o)(i,(null===(r=a.find((t=>t.name===e.name)))||void 0===r?void 0:r.children)||[]);return{tree:new Mz(i),groups:o,notGroupMemebersChildren:s}}appendGoup(e,t){const n=t.data;t.data.type===Pz.Group&&(e[n.name]=t)}getAppender(e,t){const n=new Map,r=(i,o)=>{const a=o.map((n=>{const i=e.find((e=>{let{name:t}=e;return t===n})),o=this.createNode(i);return this.appendGoup(t,o),i.children.length>0&&r(o,i.children),o})),s=i.data.group,l=Boolean(s),c=[],u=[];if(a.forEach((e=>{const t=e.data.group;l?s===t?c.push(e):u.push(e):c.push(e)})),i.addNodes(c),s&&u.length>0){const e=n.get(s);e?e.push(...u):n.set(s,u)}return n};return r}createNode(e){const t=new Rz(e);return this.nodes.set(e.name,t),t}}class Fz extends CustomEvent{}class zz extends EventTarget{dispatch(e,t){this.dispatchEvent(new Fz(e,{detail:t}))}}const Bz=16,Uz=16,Hz=24;function Vz(e){switch(e){case 0:return 0;case 1:return Uz;default:return Hz}}function Gz(e,t,n,r,i,o){const a=function(e,t,n,r,i,o,a){const s=new Map,l=new Map,c=new Map,u=[];return r.traverseBF((r=>{const{object:i,width:o,height:l}=function(e,t,n,r,i,o,a){var s,l;const c=null!==(s=t.shapeInstance)&&void 0!==s?s:o.node(e,{top:n,left:r},t,i,a),u=null!==(l=t.canvasNode)&&void 0!==l?l:c.getShape();return t.addShapeInstance(c),t.addCanvasNode(u),{object:u,top:n,left:r,width:u.getScaledWidth(),height:u.getScaledHeight()}}(e,r,0,0,t,n,a);s.set(r,{width:o,height:l}),u.push(i)})),function e(t){const{width:n}=s.get(t);let r=n,i=0;if(t.parent&&1===t.parent.children.length&&l.has(t.parent)){const e=l.get(t.parent);r<e&&(r=e)}return l.set(t,r),t.children.length>0&&(i=(t.children.length-1)*Bz+t.children.reduce(((t,n)=>t+e(n)),0),c.set(t,i)),r=Math.max(r,i),l.set(t,r),r}(r.root),function e(t,n,r){let i=r,o=r;for(const a of t){const{width:t,height:r}=s.get(a),u=l.get(a),d=n,h=i+Math.floor(u/2)-Math.floor(t/2);if(a.canvasNode.set({top:d,left:h}),a.canvasNode.setCoords(),i=i+u+Bz,a.children.length){let t=0;const i=c.get(a);i<u&&(t=Math.floor((u-i)/2));const s=n+r+Vz(a.children.length),l=o+t;e(a.children,s,l)}o=i}}([r.root],i,o),u}(e.canvas,r,i,e,t,n,o);let s=0,l=0;return a.forEach((e=>{s=Math.max(s,(e.left||0)+e.getScaledWidth()),l=Math.max(l,(e.top||0)+e.getScaledHeight())})),{nodes:a,bottom:l,right:s}}function Wz(e){const t=e.canvasNode;if(t){const e=t.left||0,n=(t.top||0)+t.getScaledHeight();return{x:e+t.getScaledWidth()/2,y:n}}return{x:0,y:0}}function qz(e){const t=e.canvasNode;if(t){const e=t.left||0,n=t.top||0;return{x:e+t.getScaledWidth()/2,y:n}}return{x:0,y:0}}class Zz{constructor(e,t,n,r){this.canvas=Tz(e,t),this.parser=new Lz(n,t),this.opts=t,this.shapes=r,this.em=new zz,this.trees=[],this.nodes=[],this.links=[],this.listenNodeResize()}render(){requestAnimationFrame((()=>{this.trees=this.parser.parseData(),this.renderIntoCanvas(),this.opts.initialZoomFitsCanvas&&this.zoomObjectsToFitCanvas()}))}destroy(){const e=document.getElementById(Ez);e&&(this.canvas.dispose(),e.remove())}getEventEmmiter(){return this.em}getGraphNode(e){return this.parser.nodes.get(e)}getOpts(){return this.opts}getColors(){return this.opts.colors}getCanvas(){return this.canvas}renderIntoCanvas(){this.nodes.forEach((e=>{this.canvas.remove(e)})),this.nodes=[],this.links.forEach((e=>{this.canvas.remove(e)})),this.links=[];const e=this.canvas.getHeight()||0,t=this.canvas.getWidth()||0;let n=e,r=t;const i=this.opts.initialTop;let o=this.opts.initialLeft;this.trees.forEach((e=>{e.setCanvas(this.canvas);const{nodes:t,bottom:a,right:s}=Gz(e,i,o,this.opts,this.shapes,this.em);o=s+15,n=Math.max(a,n),r=Math.max(s,r),this.nodes.push(...t),this.canvas.add(...t)}));const a=function(e,t){const n=t.colors,r=[];return e.data.links.reduce(((t,i)=>{let{from:o}=i;const a=e.nodes.get(o);if(a&&1===a.children.length&&!r.includes(o)){const{x:e,y:i}=Wz(a),s=new _z.fabric.Path("M ".concat(e," ").concat(i,"\n V ").concat(i+Uz),{fill:"",stroke:n.stroke,strokeWidth:1});t.push(new _z.fabric.Group([s],Object.assign({},Nz))),r.push(o)}if(a&&a.children.length>1&&!r.includes(o)){const{x:e,y:i}=Wz(a),s=Hz/2,l=6,c=[new _z.fabric.Path("M ".concat(e," ").concat(i,"\n V ").concat(i+s),{fill:"",stroke:n.stroke,strokeWidth:1})],{x:u,y:d}=qz(a.children[0]),{x:h,y:p}=qz(a.children[a.children.length-1]),f=new _z.fabric.Path("M ".concat(u," ").concat(d,"\n V ").concat(d-s+l,"\n Q ").concat(u," ").concat(d-s," ").concat(u+l," ").concat(d-s,"\n H ").concat(h-l,"\n Q ").concat(h," ").concat(p-s," ").concat(h," ").concat(p+l-s,"\n V ").concat(p,"\n "),{fill:"",stroke:n.stroke,strokeWidth:1});c.push(f),a.children.forEach(((e,t)=>{if(0===t||t===a.children.length-1)return;const{x:r,y:i}=qz(e),o=new _z.fabric.Path("M ".concat(r," ").concat(i,"\n V ").concat(i-s,"\n "),{fill:"",stroke:n.stroke,strokeWidth:1});c.push(o)})),t.push(new _z.fabric.Group(c,Object.assign({},Nz))),r.push(o)}return t}),[])}(this.parser,this.opts);this.links.push(...a),this.canvas.add(...a),this.bringNodesToFront()}bringNodesToFront(){var e;const t=null===(e=this.parser)||void 0===e?void 0:e.nodes;t&&t.forEach((e=>{e.canvasNode&&e.canvasNode.bringToFront()}))}listenNodeResize(){this.em.addEventListener("node:resize",(()=>{this.renderIntoCanvas()}))}zoomObjectsToFitCanvas(){let e=0,t=0;this.canvas.getObjects().forEach((n=>{const{top:r,left:i,height:o,width:a}=n.getBoundingRect(),s=i+a,l=r+o;s>e&&(e=s),l>t&&(t=l)})),e+=this.opts.initialLeft,t+=this.opts.initialTop;const n=this.canvas.getWidth()/e,r=this.canvas.getHeight()/t,i=Math.min(n,r);if(i<1){this.canvas.setZoom(i);const e=this.opts.initialTop*i,t=this.opts.initialLeft*i,n=this.opts.initialTop-e,r=this.opts.initialLeft-t;this.canvas.relativePan(new _z.fabric.Point(r,n))}}}function Yz(){const e={success:"--g-color-text-positive",error:"--g-color-text-danger",warning:"--g-color-text-warning",errorBackground:"--g-color-base-danger-light",warningBackground:"--g-color-base-warning-light",mute:"--g-color-line-generic",stroke:"--g-color-text-hint",fill:"--g-color-base-generic-ultralight",nodeFill:"--g-color-base-float",nodeShadow:"--g-color-sfx-shadow",titleColor:"--g-color-text-primary",textColor:"--g-color-text-complementary",buttonBorderColor:"--g-color-line-generic",groupBorderColor:"--g-color-base-info-light-hover",groupFill:"--g-color-base-info-light",titleHoverColor:"--g-color-text-link-hover",nodeHover:"--g-color-base-float-hover",specialHover:"--g-color-line-brand"},t=getComputedStyle(document.body),n=Object.keys(e).reduce(((n,r)=>{const i=t.getPropertyValue(e[r]).replace(/ /g,"");return i&&(n[r]=i),n}),{});return Object.assign(Object.assign(Object.assign({},Oz),n),{getCommonColor:e=>t.getPropertyValue("--g-color-".concat(e)).replace(/ /g,"")})}const Kz={linkType:"arrow"};function Qz(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Kz;const t=e.colors||{};return Object.assign(Object.assign({initialTop:10,initialLeft:10},e),{colors:Object.assign(Object.assign(Object.assign({},Oz),Yz()),t)})}n(57002);var Xz=function(){if("undefined"!==typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!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),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,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,r=this.__entries__;n<r.length;n++){var i=r[n];e.call(t,i[1],i[0])}},t}()}(),$z="undefined"!==typeof window&&"undefined"!==typeof document&&window.document===document,Jz="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")(),eB="function"===typeof requestAnimationFrame?requestAnimationFrame.bind(Jz):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)},tB=2;var nB=20,rB=["top","right","bottom","left","width","height","size","weight"],iB="undefined"!==typeof MutationObserver,oB=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,r=!1,i=0;function o(){n&&(n=!1,e()),r&&s()}function a(){eB(o)}function s(){var e=Date.now();if(n){if(e-i<tB)return;r=!0}else n=!0,r=!1,setTimeout(a,t);i=e}return s}(this.refresh.bind(this),nB)}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(){$z&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),iB?(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(){$z&&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,r=rB.some((function(e){return!!~n.indexOf(e)}));r&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),aB=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var i=r[n];Object.defineProperty(e,i,{value:t[i],enumerable:!1,writable:!1,configurable:!0})}return e},sB=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||Jz},lB=fB(0,0,0,0);function cB(e){return parseFloat(e)||0}function uB(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+cB(e["border-"+n+"-width"])}),0)}function dB(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return lB;var r=sB(e).getComputedStyle(e),i=function(e){for(var t={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var i=r[n],o=e["padding-"+i];t[i]=cB(o)}return t}(r),o=i.left+i.right,a=i.top+i.bottom,s=cB(r.width),l=cB(r.height);if("border-box"===r.boxSizing&&(Math.round(s+o)!==t&&(s-=uB(r,"left","right")+o),Math.round(l+a)!==n&&(l-=uB(r,"top","bottom")+a)),!function(e){return e===sB(e).document.documentElement}(e)){var c=Math.round(s+o)-t,u=Math.round(l+a)-n;1!==Math.abs(c)&&(s-=c),1!==Math.abs(u)&&(l-=u)}return fB(i.left,i.top,s,l)}var hB="undefined"!==typeof SVGGraphicsElement?function(e){return e instanceof sB(e).SVGGraphicsElement}:function(e){return e instanceof sB(e).SVGElement&&"function"===typeof e.getBBox};function pB(e){return $z?hB(e)?function(e){var t=e.getBBox();return fB(0,0,t.width,t.height)}(e):dB(e):lB}function fB(e,t,n,r){return{x:e,y:t,width:n,height:r}}var mB=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=fB(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=pB(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}(),gB=function(e,t){var n=function(e){var t=e.x,n=e.y,r=e.width,i=e.height,o="undefined"!==typeof DOMRectReadOnly?DOMRectReadOnly:Object,a=Object.create(o.prototype);return aB(a,{x:t,y:n,width:r,height:i,top:n,right:t+r,bottom:i+n,left:t}),a}(t);aB(this,{target:e,contentRect:n})},vB=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new Xz,"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 sB(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new mB(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 sB(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 gB(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}(),yB="undefined"!==typeof WeakMap?new WeakMap:new Xz,bB=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=oB.getInstance(),r=new vB(t,n,this);yB.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){bB.prototype[e]=function(){var t;return(t=yB.get(this))[e].apply(t,arguments)}}));"undefined"!==typeof Jz.ResizeObserver&&Jz.ResizeObserver;class xB extends a.Component{constructor(e){super(e),this.handleResize=debounce((e=>{var t,n,r;const{contentRect:i}=e[0];null===this.paranoid||void 0===t||t.getCanvas().setWidth(i.width),null===this.paranoid||void 0===n||n.getCanvas().setHeight(i.height),null===this.paranoid||void 0===r||r.getCanvas().renderAll()}),300),this.container=React.createRef(),this.resizeObserver=new ResizeObserver(this.handleResize)}componentDidMount(){this.paranoid=getTopology(paranoidRoot,this.props.data,this.props.opts,this.props.shapes),this.paranoid.render(),this.resizeObserver.observe(this.container.current),this.props.initListeners&&this.props.initListeners(this.paranoid)}componentDidUpdate(e){let{data:t,opts:n}=e;var r;!this.paranoid||isEqual(t,this.props.data)&&isEqual(n,this.props.opts)||(null===this.paranoid||void 0===r||r.destroy(),this.paranoid=getTopology(paranoidRoot,this.props.data,this.props.opts,this.props.shapes),this.paranoid.render(),this.props.initListeners&&this.props.initListeners(this.paranoid))}componentWillUnmount(){this.paranoid&&(this.paranoid.destroy(),this.paranoid=void 0),this.resizeObserver.disconnect()}render(){const{styles:e}=this.props;return React.createElement("div",{ref:this.container,id:paranoidRoot,style:e||{height:"100%"}})}}class wB extends a.Component{componentDidMount(){this.paranoid=getCompactTopology(CompactTopology_paranoidRoot,this.props.data,this.props.opts),this.paranoid.renderCompactTopology()}componentDidUpdate(e){let{data:t,opts:n}=e;var r;!this.paranoid||isEqual(t,this.props.data)&&isEqual(n,this.props.opts)||(null===this.paranoid||void 0===r||r.destroy(),this.paranoid=getCompactTopology(CompactTopology_paranoidRoot,this.props.data,this.props.opts),this.paranoid.renderCompactTopology())}componentWillUnmount(){this.paranoid&&this.paranoid.destroy()}render(){const{styles:e}=this.props;return React.createElement("div",{id:CompactTopology_paranoidRoot,style:e||{height:"100%"}})}}const SB={width:280,expandedWidth:360,borderRadius:4,titleFontSize:jz,titleLineHeight:Iz,textFontSize:jz,textLineHeight:Iz,padding:12,timeMaxWidth:25,percentageMaxWidth:25,textOffset:8,tagLeftOffset:4,tagTopOffset:5,statsOffset:24};class _B{constructor(e,t,n,r){this.top=0,this.left=0,this.canvas=e,this.stats=t,this.coords=n,this.colors=r,this.textProps={fontSize:SB.textFontSize,lineHeight:SB.textLineHeight,fontFamily:kz,fill:null===r||void 0===r?void 0:r.titleColor},this.selectedGroup=t[0].group;const i=this.createTitles(),o=i.map((e=>e.getScaledHeight())),a=Math.max.apply(null,o);this.lineTop=this.top+a+SB.textOffset;const s=this.createLine();this.content=this.createContent(i),this.group=this.createGroup(i,s,this.content),this.initListeners()}getCanvasObject(){return this.group}createTitles(){let e=this.left;return this.stats.map((e=>{let{group:t}=e;return t})).map((t=>{var n,r;const i=new _z.fabric.Text(t,Object.assign(Object.assign({left:e,top:this.top},this.textProps),{fill:t===this.selectedGroup?null===(n=this.colors)||void 0===n?void 0:n.titleColor:null===(r=this.colors)||void 0===r?void 0:r.textColor}));return e+=i.getScaledWidth()+SB.statsOffset,i}))}createLine(){return new _z.fabric.Path("M ".concat(this.left," ").concat(this.lineTop,"\n H ").concat(SB.expandedWidth-2*SB.padding),{fill:"",stroke:this.colors.stroke,strokeWidth:1})}createContent(e){return this.stats.map(((t,n)=>{let{group:r,stats:i}=t;const o=this.getContentItems(i,this.lineTop),a=e[n],s=a.left||0,l=s+a.getScaledWidth();return{group:r,items:new _z.fabric.Group(o,{opacity:this.selectedGroup===r?1:0}),title:a,hoverLine:this.createHoverLine(s,l,r)}}))}getContentItems(e,t){let n=t+2*SB.textOffset;const r=[],i=e=>{e.forEach((e=>{let{name:t,value:i}=e;var o;const a=new _z.fabric.Text(t,Object.assign({left:this.left,top:n},this.textProps)),s=SB.expandedWidth/2-SB.padding,l=SB.expandedWidth-2*SB.padding,c=new _z.fabric.Textbox(String(i),Object.assign(Object.assign({left:s,top:n},this.textProps),{fill:null===(o=this.colors)||void 0===o?void 0:o.textColor,splitByGrapheme:!0,width:l-s}));r.push(a,c),n+=Math.max(a.getScaledHeight(),c.getScaledHeight())+SB.textOffset}))};return!function(e){var t;return Boolean(null===(t=e[0])||void 0===t?void 0:t.items)}(e)?i(e):e.forEach(((t,o)=>{let{name:a,items:s}=t;const l=new _z.fabric.Text(a,Object.assign(Object.assign({left:this.left,top:n},this.textProps),{fontWeight:"bold"}));if(r.push(l),n+=l.getScaledHeight()+SB.textOffset,i(s),o!==e.length-1){const e=new _z.fabric.Path("M ".concat(this.left," ").concat(n,"\n H ").concat(SB.expandedWidth-2*SB.padding),{fill:"",stroke:this.colors.stroke,strokeWidth:1,strokeDashArray:[6,4]});r.push(e),n+=e.getScaledHeight()+SB.textOffset}})),r}createGroup(e,t,n){const r=n.map((e=>{let{items:t}=e;return t})),i=n.map((e=>{let{hoverLine:t}=e;return t}));return new _z.fabric.Group([...e,t,...r,...i],Object.assign({left:this.coords.left,top:this.coords.top},Nz))}createHoverLine(e,t,n){return new _z.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})}initListeners(){this.content.forEach((e=>{let{group:t,title:n,items:r,hoverLine:i}=e;n.on("mousedown",(()=>{const e=this.selectedGroup,o=this.content.find((t=>t.group===e));o&&(o.title.set({fill:this.colors.textColor}),o.items.set({opacity:0}),o.hoverLine.set({opacity:0}),n.set({fill:this.colors.titleColor}),r.set({opacity:1}),i.set({opacity:1}),this.selectedGroup=t,this.canvas.requestRenderAll())}))}))}}function CB(e,t,n,r,i){return new _B(e,t,{top:n,left:r},i).getCanvasObject()}function EB(e,t,n){return new _z.fabric.Textbox(e?"#".concat(e):"",{fontSize:12,lineHeight:14,textAlign:"right",fontFamily:kz,fill:n.getCommonColor("text-secondary"),hoverCursor:t?"pointer":"default"})}const TB={width:112,expandedWidth:360,borderRadius:6,titleFontSize:jz,titleLineHeight:Iz,textFontSize:jz,textLineHeight:Iz,padding:16,textOffset:8},OB={scaleX:16/512,scaleY:16/512,originY:"center"};function NB(e,t,n){const r=new _z.fabric.Text(e,{fontSize:TB.textFontSize,lineHeight:TB.textFontSize,fontFamily:kz,fill:n.getCommonColor("text-misc"),originY:"center"}),i=[r];let o;switch(e){case"Merge":o=new _z.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",OB);break;case"UnionAll":o=new _z.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",OB);break;case"HashShuffle":o=new _z.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",OB);break;case"Map":o=new _z.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",OB);break;case"Broadcast":o=new _z.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",OB)}return o&&(o.set({fill:n.getCommonColor("text-misc"),top:0,left:0,originY:"center"}),r.set({left:22}),i.push(o)),new _z.fabric.Group(i,Object.assign(Object.assign({},Nz),{hoverCursor:t?"pointer":"default"}))}class kB{constructor(e,t,n,r,i){this.expanded=!1,this.expandedNodeHeight=0,this.nodeHeight=0,this.canvas=e,this.coords=t,this.treeNode=n,this.opts=r,this.em=i,this.data=gw()(n,["data","data"]),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup(),this.initListeners()}getShape(){return this.group}getFillColor(){return this.opts.colors.getCommonColor("base-misc-light")}getHoverFillColor(){return this.opts.colors.getCommonColor("base-misc-light-hover")}getShadow(){}getHoverShadow(){}toggleHighlight(e){this.isExpandable()&&!this.expanded&&this.body.set({fill:e?this.getHoverFillColor():this.getFillColor()}),this.canvas.requestRenderAll()}prepareNodeBody(){const e=this.opts.colors,t=this.objects[this.objects.length-1];return this.nodeHeight=(t.top||0)+t.getScaledHeight()+TB.padding,new _z.fabric.Rect({width:TB.width,height:this.nodeHeight,fill:this.getFillColor(),shadow:this.getShadow(),stroke:e.getCommonColor("line-misc"),rx:TB.borderRadius,ry:TB.borderRadius,hoverCursor:this.isExpandable()?"pointer":"default"})}prepareShapeObjects(){return[EB(this.data.id,this.isExpandable(),this.opts.colors),NB(this.data.name||"",this.isExpandable(),this.opts.colors)]}setShapeObjectsCoords(){const[e,t]=this.objects,n=TB.padding,r=this.expanded?TB.expandedWidth:TB.width,i=t.getScaledWidth();e.set({left:0,top:4,width:r-4}),t.set({left:r/2-i/2,top:n})}createGroup(){const{top:e,left:t}=this.coords;return new _z.fabric.Group([this.body,...this.objects],Object.assign({top:e,left:t},Nz))}initListeners(){this.initHover(),this.isExpandable()&&this.initExpand()}initHover(){this.group.on("mouseover",(()=>{this.em.dispatch("node:mouseover",this.treeNode),this.toggleHighlight(!0)})),this.group.on("mouseout",(()=>{this.em.dispatch("node:mouseout",this.treeNode),this.toggleHighlight(!1)}))}initExpand(){this.group.on("mousedown",(e=>{var t;this.stats&&(null===(t=e.subTargets)||void 0===t?void 0:t.includes(this.stats))||(this.expanded=!this.expanded,this.updateDimensions(),this.em.dispatch("node:resize",this.treeNode))}))}updateDimensions(){const e=this.opts.colors,[t,n]=this.objects,r=n.getScaledWidth();let i,o;this.expanded?(this.stats=CB(this.canvas,this.data.stats,(this.group.top||0)+this.body.getScaledHeight()+TB.padding,(this.group.left||0)+TB.padding,e),this.expandedNodeHeight=this.nodeHeight+this.stats.getScaledHeight()+2*TB.padding,i=TB.expandedWidth,o=this.expandedNodeHeight,this.group.addWithUpdate(this.stats)):(i=TB.width,o=this.nodeHeight,this.group.removeWithUpdate(this.stats),this.stats=void 0);const a=function(e,t){const n=[];return t.forEachObject((r=>{n.push(r),t.removeWithUpdate(r),e.add(r)})),()=>{n.forEach((n=>{e.remove(n),t.addWithUpdate(n)}))}}(this.canvas,this.group);this.body.set({width:i,height:o,fill:this.getFillColor(),shadow:this.getShadow()}),t.set({width:i-4}),n.set({left:(this.body.left||0)+(this.body.width||0)/2-r/2}),a()}isExpandable(){return Boolean(this.data.stats&&this.data.stats.length>0)}}const jB={width:190,bevelSize:10,titleFontSize:jz,titleLineHeight:Iz,padding:12};class IB{constructor(e,t,n,r,i){this.nodeHeight=0,this.coords=t,this.opts=r,this.data=gw()(n,["data","data"]),this.shadow=new _z.fabric.Shadow({color:r.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new _z.fabric.Shadow({color:r.colors.nodeShadow,offsetY:3,blur:8}),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup()}getShape(){return this.group}getFillColor(){return this.opts.colors.nodeFill}getHoverFillColor(){return this.opts.colors.nodeHover}getShadow(){return this.shadow}getHoverShadow(){return this.hoverShadow}toggleHighlight(){}prepareNodeBody(){const e=this.opts.colors,t=this.objects[this.objects.length-1];return this.nodeHeight=(t.top||0)+t.getScaledHeight()+jB.padding,new _z.fabric.Polygon([{x:jB.bevelSize,y:0},{x:jB.width-jB.bevelSize,y:0},{x:jB.width,y:jB.bevelSize},{x:jB.width,y:this.nodeHeight-jB.bevelSize},{x:jB.width-jB.bevelSize,y:this.nodeHeight},{x:jB.bevelSize,y:this.nodeHeight},{x:0,y:this.nodeHeight-jB.bevelSize},{x:0,y:jB.bevelSize}],{fill:this.getFillColor(),stroke:null===e||void 0===e?void 0:e.nodeShadow,shadow:this.getShadow(),hoverCursor:"default"})}prepareShapeObjects(){const e=function(e,t){return new _z.fabric.Text(e.join("\n"),{fontSize:jB.titleFontSize,lineHeight:jB.titleLineHeight,left:0,top:26,fontFamily:kz,fontStyle:"italic",fill:t.getCommonColor("text-primary")})}([this.data.name||""],this.opts.colors);return[e]}setShapeObjectsCoords(){const[e]=this.objects,t=jB.padding,n=e.getScaledWidth();e.set({left:jB.width/2-n/2,top:t})}createGroup(){const{top:e,left:t}=this.coords;return new _z.fabric.Group([this.body,...this.objects],Object.assign({top:e,left:t},Nz))}}const PB=40,DB=40,AB=20;class RB{constructor(e,t,n,r,i){this.coords=t,this.opts=r,this.shadow=new _z.fabric.Shadow({color:r.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new _z.fabric.Shadow({color:r.colors.nodeShadow,offsetY:3,blur:8}),this.body=this.prepareNodeBody(),this.group=this.createGroup()}getShape(){return this.group}getFillColor(){return this.opts.colors.nodeFill}getHoverFillColor(){return this.opts.colors.nodeHover}getShadow(){return this.shadow}getHoverShadow(){return this.hoverShadow}toggleHighlight(){}prepareNodeBody(){const e=this.opts.colors;return new _z.fabric.Rect({width:PB,height:DB,fill:this.getFillColor(),stroke:null===e||void 0===e?void 0:e.nodeShadow,rx:AB,ry:AB,shadow:this.getShadow(),hoverCursor:"default"})}createGroup(){const{top:e,left:t}=this.coords;return new _z.fabric.Group([this.body],Object.assign({top:e,left:t},Nz))}}const MB={width:112,borderRadius:6,titleFontSize:jz,titleLineHeight:Iz,textFontSize:jz,textLineHeight:Iz,padding:12,textOffset:8};class LB{constructor(e,t,n,r,i){this.nodeHeight=0,this.coords=t,this.opts=r,this.data=gw()(n,["data","data"]),this.shadow=new _z.fabric.Shadow({color:r.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new _z.fabric.Shadow({color:r.colors.nodeShadow,offsetY:3,blur:8}),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup()}getShape(){return this.group}getFillColor(){return this.opts.colors.nodeFill}getHoverFillColor(){return this.opts.colors.nodeHover}getShadow(){return this.shadow}getHoverShadow(){return this.hoverShadow}toggleHighlight(){}prepareNodeBody(){const e=this.opts.colors,t=this.objects[this.objects.length-1];return this.nodeHeight=(t.top||0)+t.getScaledHeight()+MB.padding,new _z.fabric.Rect({width:MB.width,height:this.nodeHeight,fill:this.getFillColor(),stroke:null===e||void 0===e?void 0:e.nodeShadow,shadow:this.getShadow(),hoverCursor:"default"})}prepareShapeObjects(){const e=function(e,t){return new _z.fabric.Text(e.join("\n"),{fontSize:MB.textFontSize,lineHeight:MB.textLineHeight,left:0,top:26,fontFamily:kz,fill:t.getCommonColor("text-primary")})}([this.data.name||""],this.opts.colors);return[e]}setShapeObjectsCoords(){const[e]=this.objects,t=MB.padding,n=e.getScaledWidth();e.set({left:MB.width/2-n/2,top:t})}createGroup(){const{top:e,left:t}=this.coords;return new _z.fabric.Group([this.body,...this.objects],Object.assign({top:e,left:t},Nz))}}const FB={width:248,expandedWidth:360,borderRadius:6,titleFontSize:jz,titleLineHeight:Iz,textFontSize:jz,textLineHeight:Iz,padding:12,textOffset:8};class zB{constructor(e,t,n,r,i){this.expanded=!1,this.expandedNodeHeight=0,this.nodeHeight=0,this.canvas=e,this.coords=t,this.treeNode=n,this.opts=r,this.em=i,this.data=gw()(n,["data","data"]),this.shadow=new _z.fabric.Shadow({color:r.colors.nodeShadow,offsetY:1,blur:5}),this.hoverShadow=new _z.fabric.Shadow({color:r.colors.nodeShadow,offsetY:3,blur:8}),this.objects=this.prepareShapeObjects(),this.setShapeObjectsCoords(),this.body=this.prepareNodeBody(),this.group=this.createGroup(),this.initListeners()}getShape(){return this.group}getFillColor(){return this.opts.colors.nodeFill}getHoverFillColor(){return this.opts.colors.nodeHover}getShadow(){return this.shadow}getHoverShadow(){return this.hoverShadow}toggleHighlight(e){this.isExpandable()&&!this.expanded&&this.body.set({fill:e?this.getHoverFillColor():this.getFillColor(),shadow:e?this.getHoverShadow():this.getShadow()}),this.canvas.requestRenderAll()}prepareNodeBody(){const e=this.opts.colors,t=this.objects[this.objects.length-1];return this.nodeHeight=(t.top||0)+t.getScaledHeight()+FB.padding,new _z.fabric.Rect({width:FB.width,height:this.nodeHeight,fill:this.getFillColor(),stroke:null===e||void 0===e?void 0:e.nodeShadow,rx:FB.borderRadius,ry:FB.borderRadius,shadow:this.getShadow(),hoverCursor:this.isExpandable()?"pointer":"default"})}prepareShapeObjects(){const e=EB(this.data.id,this.isExpandable(),this.opts.colors),t=function(e,t,n){return new _z.fabric.Text(e.join("\n"),{fontSize:FB.textFontSize,lineHeight:FB.textLineHeight,fontFamily:kz,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 _z.fabric.Group([],Object.assign({top:0,left:0},Nz));const n=new _z.fabric.Text("Tables:",{fontSize:FB.textFontSize,lineHeight:FB.textLineHeight,fontFamily:kz,fill:t.getCommonColor("text-secondary"),hoverCursor:"pointer"}),r=n.getScaledWidth()+2,i=FB.width-2*FB.padding-r,o=new _z.fabric.Textbox(e.join("\n"),{left:r,width:i,fontSize:FB.textFontSize,lineHeight:FB.textLineHeight,fontFamily:kz,fill:t.getCommonColor("text-primary"),splitByGrapheme:!0,hoverCursor:"pointer"});return new _z.fabric.Group([n,o],Object.assign({top:0,left:0},Nz))}(this.data.tables||[],this.opts.colors),r=function(e,t){if(!e)return new _z.fabric.Group([],Object.assign({top:0,left:0},Nz));const n=new _z.fabric.Text("CTE:",{fontSize:FB.textFontSize,lineHeight:FB.textLineHeight,fontFamily:kz,fill:t.getCommonColor("text-secondary"),hoverCursor:"pointer"}),r=n.getScaledWidth()+2,i=FB.width-2*FB.padding-r,o=new _z.fabric.Textbox(e,{left:r,width:i,fontSize:FB.textFontSize,lineHeight:FB.textLineHeight,fontFamily:kz,fill:t.getCommonColor("text-primary"),splitByGrapheme:!0,hoverCursor:"pointer"});return new _z.fabric.Group([n,o],Object.assign({top:0,left:0},Nz))}(this.data.cte||"",this.opts.colors);return[e,t,n,r]}setShapeObjectsCoords(){const[e,t,n,r]=this.objects;let i=FB.padding;const o=FB.padding;e.set({left:0,top:4,width:(this.expanded?FB.expandedWidth:FB.width)-4}),t.set({left:o,top:i}),i+=t.getScaledHeight(),n.set({left:o,top:i+(0===n.size()?0:FB.textOffset)}),i+=n.getScaledHeight(),r.set({left:o,top:i+(0===r.size()?0:FB.textOffset)})}createGroup(){const{top:e,left:t}=this.coords;return new _z.fabric.Group([this.body,...this.objects],Object.assign({top:e,left:t},Nz))}initListeners(){this.initHover(),this.isExpandable()&&this.initExpand()}initHover(){this.group.on("mouseover",(()=>{this.em.dispatch("node:mouseover",this.treeNode),this.toggleHighlight(!0)})),this.group.on("mouseout",(()=>{this.em.dispatch("node:mouseout",this.treeNode),this.toggleHighlight(!1)}))}initExpand(){this.group.on("mousedown",(e=>{var t;this.stats&&(null===(t=e.subTargets)||void 0===t?void 0:t.includes(this.stats))||(this.updateDimensions(),this.expanded=!this.expanded,this.em.dispatch("node:resize",this.treeNode))}))}updateDimensions(){const e=this.opts.colors;if(this.expanded){const e=FB.width,t=this.nodeHeight;this.body.set({width:e,height:t,fill:this.getFillColor(),shadow:this.getShadow()}).setCoords(),this.objects[0].set({width:e-4}).setCoords(),this.group.removeWithUpdate(this.stats),this.stats=void 0}else{this.stats=CB(this.canvas,this.data.stats,(this.group.top||0)+this.body.getScaledHeight()+FB.padding,(this.group.left||0)+FB.padding,e),this.expandedNodeHeight=this.nodeHeight+this.stats.getScaledHeight()+2*FB.padding;const t=FB.expandedWidth,n=this.expandedNodeHeight;this.body.set({width:t,height:n,fill:this.getFillColor(),shadow:this.getShadow()}).setCoords(),this.objects[0].set({width:t-4}).setCoords(),this.group.addWithUpdate(this.stats)}}isExpandable(){return Boolean(this.data.stats&&this.data.stats.length>0)}}function BB(e,t,n,r,i){return function(e){const t=gw()(e,["data","data"]);return"connection"===(null===t||void 0===t?void 0:t.type)}(n)?new kB(e,t,n,r,i):function(e){const t=gw()(e,["data","data"]);return"result"===(null===t||void 0===t?void 0:t.type)}(n)?new LB(e,t,n,r,i):function(e){const t=gw()(e,["data","data"]);return"query"===(null===t||void 0===t?void 0:t.type)}(n)?new RB(e,t,n,r,i):function(e){const t=gw()(e,["data","data"]);return"materialize"===(null===t||void 0===t?void 0:t.type)}(n)?new IB(e,t,n,r,i):new zB(e,t,n,r,i)}var UB=n(60749);const HB=e=>{const t=e.name.split("|");return t.length>1?t[1]:e.name},VB=Me("ydb-query-explain-result"),GB={automaticLayout:!0,selectOnLineNumbers:!0,readOnly:!0,minimap:{enabled:!1},wrappingIndent:"indent"},WB={schema:"schema",json:"json",ast:"ast"},qB=[{value:WB.schema,content:"Schema"},{value:WB.json,content:"JSON"},{value:WB.ast,content:"AST"}];function ZB(e){const t=a.useRef(),{data:n,opts:r,shapes:i,theme:o}=e;return a.useEffect((()=>{const e=document.getElementById("graphRoot");if(!e)throw new Error("Can't find element with id #graphRoot");return e.innerHTML="",t.current=function(e,t,n,r){const i=Qz(n);return new Zz(e,i,t,r)}("graphRoot",n,r,i),t.current.render(),()=>{t.current=void 0}}),[o]),a.useEffect((()=>{var n,r;null===(n=t.current)||void 0===n||null===(r=n.updateData)||void 0===r||r.call(n,e.data)}),[e.data]),(0,Le.jsx)("div",{id:"graphRoot",style:{height:"100vh"}})}function YB(e){const t=Ao(),[n,r]=a.useState(WB.schema),i=Do((e=>e.fullscreen));a.useEffect((()=>()=>{t((0,IF.vj)())}),[t]);const o=()=>{var t,r;switch(n){case WB.schema:return Boolean(null===(t=e.explain)||void 0===t||null===(r=t.nodes)||void 0===r?void 0:r.length);case WB.json:return Boolean(e.explain);case WB.ast:return Boolean(e.ast);default:return!1}};return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)("div",{className:VB("controls"),children:!e.loading&&(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsxs)("div",{className:VB("controls-right"),children:[(0,Le.jsx)(GF,{error:e.error}),!e.error&&(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(kF,{}),(0,Le.jsx)(Oo,{options:qB,value:n,onUpdate:e=>{r(e)}})]})]}),(0,Le.jsxs)("div",{className:VB("controls-left"),children:[(0,Le.jsx)(PF,{disabled:Boolean(e.error)||!o()}),(0,Le.jsx)(OF,{onCollapse:e.onCollapseResults,onExpand:e.onExpandResults,isCollapsed:e.isResultsCollapsed,initialDirection:"bottom"})]})]})}),(0,Le.jsx)("div",{className:VB("result"),children:(()=>{const{error:t,loading:r}=e;if(r)return(0,Le.jsx)("div",{className:VB("loader"),children:(0,Le.jsx)(Di,{size:"m"})});if(t)return(0,Le.jsx)("div",{className:VB("text-message"),children:(0,BI.fV)(e.error)});if(!o())return(0,Le.jsx)("div",{className:VB("text-message"),children:"There is no ".concat(n," for the request")});switch(n){case WB.json:return(()=>{var t;const n=(0,Le.jsx)(bs(),{data:null===(t=e.explain)||void 0===t?void 0:t.pristine,isExpanded:()=>!0,className:VB("inspector"),searchOptions:{debounceTime:300}});return(0,Le.jsxs)(a.Fragment,{children:[n,i&&(0,Le.jsx)(FF,{children:n})]})})();case WB.ast:return(()=>{const t=(0,Le.jsx)("div",{className:VB("ast"),children:(0,Le.jsx)(hF,{language:UB.K,value:e.ast,options:GB,wrappingIndent:"indent",theme:"vs-".concat(e.theme)})});return(0,Le.jsxs)(a.Fragment,{children:[t,i&&(0,Le.jsx)(FF,{children:t})]})})();case WB.schema:return(()=>{const{explain:t={},theme:r}=e,{links:o,nodes:s,version:l}=t,c=l===gF.v2,u=o&&s&&s.length,d=c&&u?(0,Le.jsx)("div",{className:VB("explain-canvas-container",{hidden:n!==WB.schema}),children:(0,Le.jsx)(ZB,{theme:r,data:{links:o,nodes:s},opts:{renderNodeTitle:HB,textOverflow:"normal",initialZoomFitsCanvas:!0},shapes:{node:BB}})}):null;return(0,Le.jsxs)(a.Fragment,{children:[!i&&d,i&&(0,Le.jsx)(FF,{children:d})]})})();default:return null}})()})]})}const KB=Dl.h.injectEndpoints({endpoints:e=>({sendQuery:e.query({queryFn:async(e,t)=>{let{query:n,database:r,action:i}=e,{signal:o}=t;try{const e=await window.api.sendQuery({schema:"modern",query:n,database:r,action:i},{signal:o});return(0,BI.gW)(e)?{error:e}:{data:(0,BI.gY)(e)}}catch(a){return{error:a||new Error("Unauthorized")}}},providesTags:["All"]})}),overrideExisting:"throw"}),QB=Me("kv-preview"),XB=e=>{var t;let{database:n,type:r}=e;const i=Ao(),o=(0,pj.vp)(r),{autorefresh:a,currentSchemaPath:s}=Do((e=>e.schema)),l=Do((e=>e.fullscreen)),c="--!syntax_v1\nselect * from `".concat(s,"` limit 32"),{currentData:u,isFetching:d,error:h}=KB.useSendQueryQuery({database:n,query:c,action:(0,pj.uL)(r)?"execute-query":"execute-scan"},{pollingInterval:a,skip:!o}),p=null!==u&&void 0!==u?u:{},f=()=>{i((0,Vk.m7)(!1))};if(d&&void 0===u)return(0,Le.jsx)("div",{className:QB("loader-container"),children:(0,Le.jsx)(Di,{size:"m"})});let m;o?h&&(m=(0,Le.jsx)("div",{className:QB("message-container","error"),children:(0,BI.fV)(h)})):m=(0,Le.jsx)("div",{className:QB("message-container"),children:sF("preview.not-available")});const g=null!==(t=m)&&void 0!==t?t:(0,Le.jsx)("div",{className:QB("result"),children:(0,Le.jsx)($F,{data:p.result,columns:p.columns})});return(0,Le.jsxs)("div",{className:QB(),children:[(0,Le.jsxs)("div",{className:QB("header"),children:[(0,Le.jsxs)("div",{className:QB("title"),children:[sF("preview.title")," ",(0,Le.jsx)("div",{className:QB("table-name"),children:s})]}),(0,Le.jsxs)("div",{className:QB("controls-left"),children:[(0,Le.jsx)(PF,{disabled:Boolean(h)}),(0,Le.jsx)(Ie.z,{view:"flat-secondary",onClick:f,title:sF("preview.close"),children:(0,Le.jsx)(we.J,{data:tt.Z,size:18})})]})]}),l?(0,Le.jsx)(FF,{children:g}):g]})},$B=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("g",{clipPath:"url(#a)"},a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M14.756 10.164c1.665-.962 1.665-3.366 0-4.329L6.251.918C4.585-.045 2.5 1.158 2.5 3.083v9.834c0 1.925 2.085 3.128 3.751 2.164l8.505-4.917Z",clipRule:"evenodd"})),a.createElement("defs",null,a.createElement("clipPath",{id:"a"},a.createElement("path",{fill:"currentColor",d:"M0 0h16v16H0z"}))));var JB=n(26364),eU=n.n(JB),tU=n(97894);const nU=Me("kv-save-query");const rU=function(e){let{savedQueries:t,onSaveQuery:n,saveButtonDisabled:r}=e;const i=Do((e=>e.singleClusterMode)),[o,s]=a.useState(!1),[l,c]=a.useState(""),[u,d]=a.useState(null),h=Do((e=>e.saveQuery)),p=Ao(),f=()=>{s(!0),p((0,tU.GC)(null))},m=()=>{s(!1),c(""),d(null)},g=e=>{c(e),d(v(e))},v=e=>eU()(t,(t=>t.name.toLowerCase()===e.trim().toLowerCase()))?"This name already exists":null,y=()=>{l&&!u&&(n(l),m())},b=()=>{n(h),p((0,tU.GC)(null))},x=e=>(0,Le.jsx)(Ie.z,{onClick:e,disabled:r,children:h?"Edit query":"Save query"});return(0,Le.jsxs)(a.Fragment,{children:[h?(()=>{const e=[{action:b,text:"Edit existing"},{action:f,text:"Save as new"}];return(0,Le.jsx)(nC,{items:e,switcher:x(),popupPlacement:["top"]})})():x(f),o&&(0,Le.jsxs)(qO,{open:o,hasCloseButton:!1,size:"s",onClose:m,onEnterKeyDown:y,children:[(0,Le.jsx)(qO.Header,{caption:"Save query"}),(0,Le.jsxs)(qO.Body,{className:nU("dialog-body"),children:[i&&(0,Le.jsx)("div",{className:nU("dialog-row"),children:"The query will be saved in your browser"}),(0,Le.jsxs)("div",{className:nU("dialog-row"),children:[(0,Le.jsx)("label",{htmlFor:"queryName",className:nU("field-title","required"),children:"Query name"}),(0,Le.jsxs)("div",{className:nU("control-wrapper"),children:[(0,Le.jsx)(Ii,{id:"queryName",placeholder:"Enter query name",value:l,onUpdate:g,hasClear:!0,autoFocus:!0}),(0,Le.jsx)("span",{className:nU("error"),children:u})]})]})]}),(0,Le.jsx)(qO.Footer,{textButtonApply:"Save",textButtonCancel:"Cancel",onClickButtonCancel:m,onClickButtonApply:y,propsButtonApply:{disabled:!l||Boolean(u)}})]})]})},iU=Me("ydb-query-editor-controls"),oU={[BI.wZ.script]:{title:BI.U4[BI.wZ.script],description:sF("method-description.script")},[BI.wZ.scan]:{title:BI.U4[BI.wZ.scan],description:sF("method-description.scan")},[BI.wZ.data]:{title:BI.U4[BI.wZ.data],description:sF("method-description.data")},[BI.wZ.query]:{title:BI.U4[BI.wZ.query],description:sF("method-description.query")},[BI.wZ.pg]:{title:BI.U4[BI.wZ.pg],description:sF("method-description.pg")}},aU=e=>{let{onRunButtonClick:t,runIsLoading:n,onExplainButtonClick:r,explainIsLoading:i,onSaveQueryClick:o,savedQueries:s,disabled:l,onUpdateQueryMode:c,queryMode:u,highlightedAction:d}=e;const h=a.useMemo((()=>Object.entries(oU).map((e=>{let[t,{title:n,description:r}]=e;return{text:(0,Le.jsx)(Po,{className:iU("item-with-popover"),contentClassName:iU("popover"),text:n,popoverContent:r}),action:()=>{c(t)}}}))),[c]),p="execute"===d?"action":void 0,f="explain"===d?"action":void 0;return(0,Le.jsxs)("div",{className:iU(),children:[(0,Le.jsxs)("div",{className:iU("left"),children:[(0,Le.jsxs)(Ie.z,{onClick:()=>{t(u)},disabled:l,loading:n,view:p,children:[(0,Le.jsx)(we.J,{data:$B,size:14}),"Run"]}),(0,Le.jsx)(Ie.z,{onClick:()=>{r(u)},disabled:l,loading:i,view:f,children:"Explain"}),(0,Le.jsx)("div",{className:iU("mode-selector"),children:(0,Le.jsx)(nC,{items:h,popupProps:{className:iU("mode-selector__popup"),qa:"query-mode-selector-popup"},switcher:(0,Le.jsx)(Ie.z,{className:iU("mode-selector__button"),qa:"query-mode-selector",children:(0,Le.jsxs)("span",{className:iU("mode-selector__button-content"),children:["".concat(sF("controls.query-mode-selector_type")," ").concat(oU[u].title),(0,Le.jsx)(we.J,{data:xe})]})})})})]}),(0,Le.jsx)(rU,{savedQueries:s,onSaveQuery:o,saveButtonDisabled:l})]})},sU={automaticLayout:!0,selectOnLineNumbers:!0,minimap:{enabled:!1}};const lU="navigation",cU={EXECUTE:"execute",EXPLAIN:"explain"},uU={sendQuery:"sendQuery",sendSelectedQuery:"sendSelectedQuery"},dU=Me("query-editor"),hU={triggerExpand:!1,triggerCollapse:!1,collapsed:!0};const pU={saveQueryToHistory:TA.hO,goToPreviousQuery:TA.NU,goToNextQuery:TA.AJ,setShowPreview:Vk.m7,setTenantPath:TA.K0},fU=(0,ae.$j)((e=>({executeQuery:e.executeQuery,showPreview:e.schema.showPreview})),pU)((function(e){const t=function(){const[e]=Mo(Lo.y6),[t]=Mo(Lo.XX);return a.useMemo((()=>{const n=Boolean(e);return{quickSuggestions:n,suggestOnTriggerCharacters:n,acceptSuggestionOnEnter:t?"on":"off",...sU}}),[e,t])}(),{path:n,setTenantPath:r,executeQuery:i,type:o,theme:s,changeUserInput:l,showPreview:c}=e,{tenantPath:u}=i,[d,h]=a.useState(cU.EXECUTE),[p,f]=a.useState(!1),[m,g]=Fo(),[v]=Mo(Lo.Rq),[y,b]=Mo(Lo.w7),[x,w]=Mo(Lo.DG),[S,_]=a.useState(null),[C,E]=TA.mg.useExecuteQueryMutation(),[T,O]=bF.useExplainQueryMutation();a.useEffect((()=>{u!==n&&(u&&l({input:""}),r(n))}),[l,r,n,u]);const[N,k]=a.useReducer(EF(Lo.eG),hU),j=a.useRef();a.useEffect((()=>{const e=()=>{j.current&&j.current.layout()},t=kt()((()=>{e()}),100);return e(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}}),[]),a.useEffect((()=>{const e=e=>{if(e.key===Lo.DG){const t=(0,Ou.Mo)(e.newValue);w(t)}};return window.addEventListener("storage",e),()=>{window.removeEventListener("storage",e)}}),[w]),a.useEffect((()=>{k(SF.triggerCollapse)}),[]),a.useEffect((()=>{e.showPreview||p?k(SF.triggerExpand):k(SF.triggerCollapse)}),[e.showPreview,p]),a.useEffect((()=>{var e;const{input:t,history:n}=i,r=!!t&&t!==(null===(e=n.queries[n.queries.length-1])||void 0===e?void 0:e.queryText);return window.onbeforeunload=r?e=>{e.preventDefault(),e.returnValue=""}:null,()=>{window.onbeforeunload=null}}),[i]);const I=(t,r)=>{if(!t)return;const{input:o,history:a}=i,s=v?"multi":"modern",l=null!==r&&void 0!==r?r:o;if(b(BI.Jf.execute),h(cU.EXECUTE),C({query:l,database:n,mode:t,schema:s}),f(!0),e.setShowPreview(!1),!r){var c;const{queries:n,currentIndex:r}=a;l!==(null===(c=n[r])||void 0===c?void 0:c.queryText)&&e.saveQueryToHistory(o,t)}k(SF.triggerExpand)},P=t=>{const{input:r}=i;b(BI.Jf.explain),h(cU.EXPLAIN),T({query:r,database:n,mode:t}),f(!0),e.setShowPreview(!1),k(SF.triggerExpand)};a.useEffect((()=>{if(null!==S)switch(_(null),S){case uU.sendQuery:y===BI.Jf.explain?P(m):I(m);break;case uU.sendSelectedQuery:{var e,t;const n=null===(e=j.current)||void 0===e?void 0:e.getSelection(),r=null===(t=j.current)||void 0===t?void 0:t.getModel();if(n&&r){const e=r.getValueInRange({startLineNumber:n.getSelectionStart().lineNumber,startColumn:n.getSelectionStart().column,endLineNumber:n.getPosition().lineNumber,endColumn:n.getPosition().column});I(m,e)}break}}}),[S]);const D=e=>{const{input:t}=i,n=x.findIndex((t=>t.name.toLowerCase()===e.toLowerCase())),r=[...x],o={name:e,body:t};-1===n?r.push(o):r[n]=o,w(r)};return(0,Le.jsx)("div",{className:dU(),children:(0,Le.jsxs)(Hk,{direction:"vertical",defaultSizePaneKey:Lo.XN,triggerCollapse:N.triggerCollapse,triggerExpand:N.triggerExpand,minSize:[0,52],collapsedSizes:[100,0],onSplitStartDragAdditional:()=>{k(SF.clear)},children:[(0,Le.jsxs)("div",{className:dU("pane-wrapper",{top:!0}),children:[(0,Le.jsx)("div",{className:dU("monaco-wrapper"),children:(0,Le.jsx)("div",{className:dU("monaco"),children:(0,Le.jsx)(hF,{language:xF.Oo,value:i.input,options:t,onChange:t=>{e.changeUserInput({input:t})},editorDidMount:(t,n)=>{j.current=t,t.focus(),t.addAction({id:"sendQuery",label:sF("action.send-query"),keybindings:[n.KeyMod.CtrlCmd|n.KeyCode.Enter],precondition:void 0,keybindingContext:void 0,contextMenuGroupId:lU,contextMenuOrder:1,run:()=>_(uU.sendQuery)});const r=t.createContextKey("canSendSelectedText",!1);t.onDidChangeCursorSelection((e=>{let{selection:t,secondarySelections:n}=e;const i=t.selectionStartLineNumber!==t.positionLineNumber||t.selectionStartColumn!==t.positionColumn,o=n.length>0;r.set(i&&!o)})),t.addAction({id:"sendSelectedQuery",label:sF("action.send-selected-query"),keybindings:[n.KeyMod.CtrlCmd|n.KeyMod.Shift|n.KeyCode.Enter],precondition:"canSendSelectedText",contextMenuGroupId:lU,contextMenuOrder:1,run:()=>_(uU.sendSelectedQuery)}),t.addAction({id:"previous-query",label:sF("action.previous-query"),keybindings:[n.KeyMod.CtrlCmd|n.KeyCode.UpArrow],contextMenuGroupId:lU,contextMenuOrder:2,run:()=>{e.goToPreviousQuery()}}),t.addAction({id:"next-query",label:sF("action.next-query"),keybindings:[n.KeyMod.CtrlCmd|n.KeyCode.DownArrow],contextMenuGroupId:lU,contextMenuOrder:3,run:()=>{e.goToNextQuery()}})},theme:"vs-".concat(s)})})}),(0,Le.jsx)(aU,{onRunButtonClick:I,runIsLoading:E.isLoading,onExplainButtonClick:P,explainIsLoading:O.isLoading,onSaveQueryClick:D,savedQueries:x,disabled:!i.input,onUpdateQueryMode:g,queryMode:m,highlightedAction:y})]}),(0,Le.jsx)("div",{className:dU("pane-wrapper"),children:(0,Le.jsx)(mU,{executeQueryData:E.data,executeQueryError:E.error,explainQueryData:O.data,explainQueryError:O.error,explainQueryLoading:O.isLoading,resultVisibilityState:N,onExpandResultHandler:()=>{k(SF.triggerExpand)},onCollapseResultHandler:()=>{k(SF.triggerCollapse)},type:o,theme:s,resultType:d,path:n,showPreview:c})})]})})}));function mU(e){let{executeQueryData:t,executeQueryError:n,explainQueryData:r,explainQueryError:i,explainQueryLoading:o,resultVisibilityState:a,onExpandResultHandler:s,onCollapseResultHandler:l,type:c,theme:u,resultType:d,path:h,showPreview:p}=e;if(p)return(0,Le.jsx)(XB,{database:h,type:c});if(d===cU.EXECUTE){if(t||n){const{stats:e,...r}=t||{};return(0,Le.jsx)(Sz,{data:r,stats:e,error:n,isResultsCollapsed:a.collapsed,onExpandResults:s,onCollapseResults:l})}return null}if(d===cU.EXPLAIN){const{plan:e,ast:t}=r||{};return(0,Le.jsx)(YB,{error:i,explain:e,ast:t,loading:o,theme:u,isResultsCollapsed:a.collapsed,onExpandResults:s,onCollapseResults:l})}return null}const gU=[{id:us._0.newQuery,title:sF("tabs.newQuery")},{id:us._0.history,title:sF("tabs.history")},{id:us._0.saved,title:sF("tabs.saved")}],vU=e=>{let{className:t,activeTab:n}=e;const r=Ca(),i=(0,Ta.mB)(r);return(0,Le.jsx)("div",{className:t,children:(0,Le.jsx)(wt,{size:"l",allowNotSelected:!0,activeTab:n,items:gU,wrapTo:(e,t)=>{let{id:n}=e;const r=fs({...i,[ds.queryTab]:n});return(0,Le.jsx)(_l,{to:r,children:t},n)}})})},yU=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M11.423 1A3.577 3.577 0 0 1 15 4.577c0 .27-.108.53-.3.722l-.528.529-1.971 1.971-5.059 5.059a3 3 0 0 1-1.533.82l-2.638.528a1 1 0 0 1-1.177-1.177l.528-2.638a3 3 0 0 1 .82-1.533l5.059-5.059 2.5-2.5c.191-.191.451-.299.722-.299Zm-2.31 4.009-4.91 4.91a1.5 1.5 0 0 0-.41.766l-.38 1.903 1.902-.38a1.5 1.5 0 0 0 .767-.41l4.91-4.91a2.077 2.077 0 0 0-1.88-1.88Zm3.098.658a3.59 3.59 0 0 0-1.878-1.879l1.28-1.28c.995.09 1.788.884 1.878 1.88l-1.28 1.28Z",clipRule:"evenodd"})),bU=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M9 2H7a.5.5 0 0 0-.5.5V3h3v-.5A.5.5 0 0 0 9 2Zm2 1v-.5a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2V3H2.251a.75.75 0 0 0 0 1.5h.312l.317 7.625A3 3 0 0 0 5.878 15h4.245a3 3 0 0 0 2.997-2.875l.318-7.625h.312a.75.75 0 0 0 0-1.5H11Zm.936 1.5H4.064l.315 7.562A1.5 1.5 0 0 0 5.878 13.5h4.245a1.5 1.5 0 0 0 1.498-1.438l.315-7.562Zm-6.186 2v5a.75.75 0 0 0 1.5 0v-5a.75.75 0 0 0-1.5 0Zm3.75-.75a.75.75 0 0 1 .75.75v5a.75.75 0 0 1-1.5 0v-5a.75.75 0 0 1 .75-.75Z",clipRule:"evenodd"})),xU=Me("ydb-saved-queries"),wU=e=>{let{visible:t,queryName:n,onCancelClick:r,onConfirmClick:i}=e;return(0,Le.jsxs)(qO,{open:t,hasCloseButton:!1,size:"s",onClose:r,onEnterKeyDown:i,children:[(0,Le.jsx)(qO.Header,{caption:sF("delete-dialog.header")}),(0,Le.jsxs)(qO.Body,{className:xU("dialog-body"),children:[sF("delete-dialog.question"),(0,Le.jsx)("span",{className:xU("dialog-query-name"),children:" ".concat(n,"?")})]}),(0,Le.jsx)(qO.Footer,{textButtonApply:sF("delete-dialog.delete"),textButtonCancel:sF("delete-dialog.cancel"),onClickButtonCancel:r,onClickButtonApply:i})]})},SU=e=>{let{savedQueries:t,changeUserInput:n,onDeleteQuery:r}=e;const i=Ao(),[o,s]=a.useState(!1),[l,c]=a.useState(""),u=()=>{s(!1),c("")},d=[{name:"name",header:"Name",render:e=>{let{row:t}=e;return(0,Le.jsx)("div",{className:xU("query-name"),children:t.name})},width:200},{name:"body",header:"Query Text",render:e=>{let{row:t}=e;return(0,Le.jsxs)("div",{className:xU("query"),children:[(0,Le.jsx)("div",{className:xU("query-body"),children:(0,Le.jsx)(kA,{value:t.body,maxQueryHeight:DA})}),(0,Le.jsxs)("span",{className:xU("controls"),children:[(0,Le.jsx)(Ie.z,{view:"flat-secondary",children:(0,Le.jsx)(we.J,{data:yU})}),(0,Le.jsx)(Ie.z,{view:"flat-secondary",onClick:(n=t.name,e=>{e.stopPropagation(),s(!0),c(n)}),children:(0,Le.jsx)(we.J,{data:bU})})]})]});var n},sortable:!1,resizeMinWidth:650}];return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)("div",{className:xU(),children:(0,Le.jsx)(qc,{columnsWidthLSKey:"savedQueriesTableColumnsWidth",columns:d,data:t,settings:AA,emptyDataMessage:sF("saved.empty"),rowClassName:()=>xU("row"),onRowClick:e=>{return t=e.body,r=e.name,n({input:t}),i((0,tU.GC)(r)),void i((0,Gk.jk)(us._0.newQuery));var t,r},initialSortOrder:{columnId:"name",order:Hc.ZP.ASCENDING}})}),(0,Le.jsx)(wU,{visible:o,queryName:l,onCancelClick:()=>{u()},onConfirmClick:()=>{u(),r(l),c("")}})]})},_U=Me("ydb-query"),CU=e=>{const t=Ao(),{queryTab:n=us._0.newQuery}=Do((e=>e.tenant)),[r,i]=Mo(Lo.DG,[]),o=e=>{const t=r.filter((t=>t.name.toLowerCase()!==e.toLowerCase()));i(t)},s=e=>{t((0,TA.B8)(e))},l=a.useMemo((()=>gU.find((e=>{let{id:t}=e;return t===n}))),[n]);return(0,Le.jsxs)("div",{className:_U(),children:[l?(0,Le.jsx)(oe,{children:(0,Le.jsx)("title",{children:l.title})}):null,(0,Le.jsx)(vU,{className:_U("tabs"),activeTab:n}),(0,Le.jsx)("div",{className:_U("content"),children:(()=>{switch(n){case us._0.newQuery:return(0,Le.jsx)(fU,{changeUserInput:s,...e});case us._0.history:return(0,Le.jsx)(uF,{changeUserInput:s});case us._0.saved:return(0,Le.jsx)(SU,{changeUserInput:s,savedQueries:r,onDeleteQuery:o});default:return null}})()})]})},EU=Me("object-general");const TU=function(e){const t=(0,Ue.C)(),{tenantPage:n}=Do((e=>e.tenant)),r=()=>{const{type:r,additionalTenantProps:i,additionalNodesProps:o,tenantName:a}=e;return n===us.m2.query?(0,Le.jsx)(CU,{path:a,theme:t,type:r}):(0,Le.jsx)(oF,{type:r,additionalTenantProps:i,additionalNodesProps:o})};return(()=>{const{tenantName:t}=e;return t?(0,Le.jsx)("div",{className:EU(),children:r()}):null})()},OU=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M13.5 6H8.75v2.5h4.75V6ZM7.25 6H2.5v2.5h4.75V6ZM1 6V5a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V6Zm7.75 4h4.75v1a1.5 1.5 0 0 1-1.5 1.5H8.75V10ZM2.5 10h4.75v2.5H4A1.5 1.5 0 0 1 2.5 11v-1Z",clipRule:"evenodd"})),NU=e=>{var t,n,r,i,o;let{data:s}=e;if(!s)return(0,Le.jsx)("div",{className:"error",children:"No CDC Stream data"});const l=null===(t=s.PathDescription)||void 0===t?void 0:t.CdcStreamDescription,c=[];c.push(EI("PathType",null===(n=s.PathDescription)||void 0===n||null===(r=n.Self)||void 0===r?void 0:r.PathType)),c.push(EI("CreateStep",null===(i=s.PathDescription)||void 0===i||null===(o=i.Self)||void 0===o?void 0:o.CreateStep));const{Mode:u,Format:d}=l||{};return c.push(...Ts(DI,{Mode:u,Format:d})),(0,Le.jsx)(a.Fragment,{children:c.length?(0,Le.jsx)(Ss,{info:c}):"Empty"})},kU=e=>{var t,n,r,i,o;let{data:s}=e;if(!s)return(0,Le.jsx)("div",{className:"error",children:"No PersQueueGroup data"});const l=null===(t=s.PathDescription)||void 0===t?void 0:t.PersQueueGroup,c=[];return c.push(EI("PathType",null===(n=s.PathDescription)||void 0===n||null===(r=n.Self)||void 0===r?void 0:r.PathType)),c.push(EI("CreateStep",null===(i=s.PathDescription)||void 0===i||null===(o=i.Self)||void 0===o?void 0:o.CreateStep)),c.push(jI("Partitions",(null===l||void 0===l?void 0:l.Partitions)||[])),c.push(jI("PQTabletConfig",(null===l||void 0===l?void 0:l.PQTabletConfig)||{PartitionConfig:{LifetimeSeconds:0}})),(0,Le.jsx)(a.Fragment,{children:c.length?(0,Le.jsx)(Ss,{info:c}):"Empty"})};var jU=n(71336);const IU=JSON.parse('{"page.title":"Database","acl.owner":"Owner","acl.empty":"No Acl data","summary.navigation":"Navigation","summary.showPreview":"Show preview","summary.copySchemaPath":"Copy schema path","actions.copied":"The path is copied to the clipboard","actions.notCopied":"Couldn\u2019t copy the path","actions.copyPath":"Copy path","actions.openPreview":"Open preview","actions.createTable":"Create table...","actions.createExternalTable":"Create external table...","actions.createTopic":"Create topic...","actions.createView":"Create view...","actions.dropTable":"Drop table...","actions.dropTopic":"Drop topic...","actions.dropView":"Drop view...","actions.alterTable":"Alter table...","actions.alterTopic":"Alter topic...","actions.selectQuery":"Select query...","actions.upsertQuery":"Upsert query..."}'),PU=(0,We.wZ)("ydb-tenant",{en:IU}),DU=Me("ydb-acl"),AU={...Lo.LE,dynamicRender:!1,stickyTop:36},RU=e=>{if(e&&e.endsWith("@staff")&&!e.startsWith("svc_")){return e.split("@")[0]}return e},MU=[{name:"AccessType",header:"Access Type",sortable:!1,render:e=>{let{row:t}=e;return t.AccessType}},{name:"AccessRights",header:"Access Rights",render:e=>{var t;let{row:n}=e;return null===(t=n.AccessRights)||void 0===t?void 0:t.map(((e,t)=>(0,Le.jsx)("div",{children:e},t)))},sortable:!1},{name:"Subject",sortable:!1,render:e=>{let{row:t}=e;return RU(t.Subject)},width:140},{name:"InheritanceType",header:"Inheritance Type",render:e=>{var t;let{row:n}=e;return null===(t=n.InheritanceType)||void 0===t?void 0:t.map(((e,t)=>(0,Le.jsx)("div",{children:e},t)))},sortable:!1}],LU=()=>{const e=Ao(),{currentSchemaPath:t}=Do((e=>e.schema)),{loading:n,error:r,acl:i,owner:o,wasLoaded:s}=Do((e=>e.schemaAcl));a.useEffect((()=>(t&&e((0,jU.Y)({path:t})),()=>{e((0,jU.Yg)())})),[t,e]);return n&&!s?(0,Le.jsx)(N_,{}):r?(0,Le.jsx)(zc,{error:r}):n||i||o?(0,Le.jsx)("div",{className:DU(),children:(0,Le.jsxs)("div",{className:DU("result"),children:[o?(0,Le.jsxs)("div",{className:DU("owner-container"),children:[(0,Le.jsx)("span",{className:DU("owner-label"),children:"".concat(PU("acl.owner"),": ")}),RU(o)]}):null,i&&i.length?(0,Le.jsx)(qc,{columnsWidthLSKey:"aclTableColumnsWidth",columns:MU,data:i,settings:AU}):null]})}):(0,Le.jsx)(a.Fragment,{children:PU("acl.empty")})},FU=JSON.parse('{"label_error":"Error","label_empty":"No data"}'),zU=JSON.parse('{"label_error":"\u041e\u0448\u0438\u0431\u043a\u0430","label_empty":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445"}'),BU=(0,mi.e)({en:FU,ru:zU},"ydb-navigation-tree"),UU=rC("ydb-navigation-tree-view-empty");function HU(e){let{level:t}=e;return(0,Le.jsx)(aC,{name:(0,Le.jsx)("span",{className:UU(),children:BU("label_empty")}),level:t})}const VU=rC("ydb-navigation-tree-view-error");function GU(e){let{level:t}=e;return(0,Le.jsx)(aC,{name:(0,Le.jsx)("span",{className:VU(),children:BU("label_error")}),level:t})}const WU=(0,le.Ge)("spin"),qU=a.forwardRef((function(e,t){const{size:n="m",style:r,className:i,qa:o}=e;return a.createElement("div",{ref:t,style:r,className:WU({size:n},i),"data-qa":o},a.createElement("div",{className:WU("inner")}))})),ZU=rC("ydb-navigation-tree-view-loader");function YU(e){let{level:t}=e;return(0,Le.jsx)(aC,{name:(0,Le.jsx)("div",{className:ZU(),children:(0,Le.jsx)(qU,{size:"xs"})}),level:t})}function KU(e){return(0,Le.jsx)("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e,{children:(0,Le.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.22 15.03s-.001 0 0 0a.75.75 0 0 0 1.06-1.06l-.47-.47H10a3.016 3.016 0 0 0 1.507-.405A2.999 2.999 0 0 0 13 10.5V7.896h.003a2.735 2.735 0 0 0 .785-.366 2.75 2.75 0 1 0-2.288.366V10.5A1.5 1.5 0 0 1 10 12h-.19l.47-.47s0 .001 0 0a.75.75 0 0 0-1.06-1.06l-.47.47-1.28 1.28a.75.75 0 0 0 0 1.06l1.75 1.75ZM5.72 2.97a.75.75 0 0 1 1.06 0l.47.47 1.28 1.28a.748.748 0 0 1 0 1.06L6.78 7.53c.001 0 0 0 0 0a.751.751 0 0 1-1.06-1.06L6.19 6H6a1.5 1.5 0 0 0-1.5 1.5v2.604a2.757 2.757 0 0 1 2 2.646 2.738 2.738 0 0 1-1.212 2.28 2.737 2.737 0 0 1-1.538.47A2.747 2.747 0 0 1 1 12.75a2.751 2.751 0 0 1 2-2.646V7.5a2.999 2.999 0 0 1 3-3h.19l-.47-.47a.75.75 0 0 1 0-1.06Zm-.908 9.121A1.246 1.246 0 0 1 5 12.75a1.25 1.25 0 1 1-.188-.659ZM11 5.25a1.25 1.25 0 1 1 2.5 0 1.25 1.25 0 0 1-2.5 0Z"})}))}function QU(e){return(0,Le.jsx)("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e,{children:(0,Le.jsx)("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"})}))}function XU(e){return(0,Le.jsx)("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 448 512",fill:"currentColor"},e,{children:(0,Le.jsx)("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"})}))}function $U(e){return(0,Le.jsx)("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e,{children:(0,Le.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0 6.75C0 6.35156 0.338542 6 0.722222 6L3.61111 6V3L0.722222 3C0.338542 3 0 2.67188 0 2.25C0 1.85156 0.338542 1.5 0.722222 1.5L3.61111 1.5V0.750001C3.61111 0.351563 3.94965 0 4.33333 0C4.73958 0 5.05556 0.351563 5.05556 0.750001H5.77778C7.53819 0.750001 8.98264 2.03906 9.32118 3.75H12V5.25H9.32118C9.29095 5.4049 9.25189 5.55606 9.20457 5.70291C9.10459 5.73587 9.00778 5.77066 8.9144 5.80723C8.505 5.96755 8.12646 6.17556 7.83841 6.44187C7.5498 6.70871 7.3 7.08678 7.3 7.56255V7.90902C6.83862 8.12843 6.32337 8.25 5.77778 8.25H5.05556C5.05556 8.67188 4.73958 9 4.33333 9C3.94965 9 3.61111 8.67188 3.61111 8.25V7.5L0.722222 7.5C0.338542 7.5 0 7.17188 0 6.75ZM16 8.5V7.5625C16 6.70312 14.1964 6 12 6C9.78571 6 8 6.70312 8 7.5625V8.5C8 9.37891 9.78571 10.0625 12 10.0625C14.1964 10.0625 16 9.37891 16 8.5ZM16 9.65234C15.7321 9.86719 15.375 10.0625 15.0179 10.1992C14.2143 10.5117 13.1429 10.6875 12 10.6875C10.8393 10.6875 9.76786 10.5117 8.96429 10.1992C8.60714 10.0625 8.25 9.86719 8 9.65234V11.625C8 12.5039 9.78571 13.1875 12 13.1875C14.1964 13.1875 16 12.5039 16 11.625V9.65234ZM12 13.8125C10.8393 13.8125 9.76786 13.6367 8.96429 13.3242C8.60714 13.1875 8.25 12.9922 8 12.7773V14.4375C8 15.3164 9.78571 16 12 16C14.1964 16 16 15.3164 16 14.4375V12.7773C15.7321 12.9922 15.375 13.1875 15.0179 13.3242C14.2143 13.6367 13.1429 13.8125 12 13.8125Z"})}))}function JU(e){return(0,Le.jsx)("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e,{children:(0,Le.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0 6.75C0 6.35156 0.351562 6 0.75 6L3.75 6V3L0.75 3C0.351562 3 0 2.67188 0 2.25C0 1.85156 0.351562 1.5 0.75 1.5L3.75 1.5V0.750001C3.75 0.351563 4.10156 0 4.5 0C4.92188 0 5.25 0.351563 5.25 0.750001H6C7.82812 0.750001 9.32812 2.03906 9.67969 3.75H12V5.25H9.67969C9.60376 5.62455 9.47428 5.97724 9.2995 6.30005H7.19969C6.09701 6.30005 5.26846 7.20143 5.25 8.25C5.25 8.67188 4.92188 9 4.5 9C4.10156 9 3.75 8.67188 3.75 8.25V7.5L0.75 7.5C0.351562 7.5 0 7.17188 0 6.75ZM16 8.28571C16 7.58259 15.4336 7 14.75 7H7.25C6.54688 7 6 7.58259 6 8.28571V14.7143C6 15.4375 6.54688 16 7.25 16H14.75C15.4336 16 16 15.4375 16 14.7143V8.28571ZM10.375 9.57143V11.5H7.25V9.57143H10.375ZM7.25 14.7143V12.7857H10.375V14.7143H7.25ZM14.75 14.7143H11.625V12.7857H14.75V14.7143ZM14.75 9.57143V11.5H11.625V9.57143H14.75Z"})}))}function eH(e){return(0,Le.jsx)("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e,{children:(0,Le.jsx)("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"})}))}function tH(e){return(0,Le.jsx)("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e,{children:(0,Le.jsx)("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"})}))}function nH(e){return(0,Le.jsx)("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e,{children:(0,Le.jsx)("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"})}))}function rH(e){return(0,Le.jsx)("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e,{children:(0,Le.jsx)("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"})}))}function iH(e){return(0,Le.jsxs)("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e,{children:[(0,Le.jsx)("rect",{x:"2",y:"2.20001",width:"9",height:"2.5",rx:"0.5"}),(0,Le.jsx)("rect",{x:"5",y:"6.70001",width:"9",height:"2.5",rx:"0.5"}),(0,Le.jsx)("rect",{x:"2",y:"11.2",width:"9",height:"2.5",rx:"0.5"})]}))}function oH(e){return(0,Le.jsxs)("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor"},e,{children:[(0,Le.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.625 2H7.49951C6.47457 2.77006 5.7552 3.92488 5.55588 5.25H1.625V7.6875H5.79193C6.48417 9.6186 8.33076 11 10.5 11C10.877 11 11.2443 10.9583 11.5974 10.8792L12.7748 12.5799C12.4905 13.0601 11.9665 13.375 11.375 13.375H1.625C0.710938 13.375 0 12.6641 0 11.75V3.625C0 2.73633 0.710938 2 1.625 2ZM1.625 11.75V9.3125H5.6875V11.75H1.625Z"}),(0,Le.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.4411 8.71106C14.0985 7.9983 14.5 7.04604 14.5 6C14.5 3.79086 12.7091 2 10.5 2C8.29086 2 6.5 3.79086 6.5 6C6.5 8.20914 8.29086 10 10.5 10C11.0316 10 11.5389 9.89631 12.0029 9.70806L14.2807 12.9981C14.5557 13.3955 15.1008 13.4946 15.4981 13.2195C15.8955 12.9444 15.9946 12.3993 15.7195 12.002L13.4411 8.71106ZM12.5 6C12.5 7.10457 11.6046 8 10.5 8C9.39543 8 8.5 7.10457 8.5 6C8.5 4.89543 9.39543 4 10.5 4C11.6046 4 12.5 4.89543 12.5 6Z"})]}))}function aH(e){return"status"in e}function sH(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;const i=e[t];if(i&&(n(i,r,t,e),!i.collapsed))for(const o of i.children)sH(e,"".concat(t,"/").concat(o),n,r+1)}var lH;function cH(e){return Object.assign(Object.assign(Object.assign({},{collapsed:!0,loading:!1,loaded:!1,error:!1,children:[]}),{expandable:"database"===e.type||"directory"===e.type}),e)}function uH(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;var n,r;switch(t.type){case lH.ToggleCollapsed:return Object.assign(Object.assign({},e),{[t.payload.path]:Object.assign(Object.assign({},e[t.payload.path]),{collapsed:!e[t.payload.path].collapsed})});case lH.StartLoading:return Object.assign(Object.assign({},e),{[t.payload.path]:Object.assign(Object.assign({},e[t.payload.path]),{loading:!0,loaded:!1,error:!1,children:[]})});case lH.FinishLoading:{const i=Object.assign(Object.assign({},e),{[t.payload.path]:Object.assign(Object.assign({},e[t.payload.path]),{loading:!1,loaded:Boolean(t.payload.data),error:!1})});if(t.payload.data){i[t.payload.path].children=t.payload.data.map((e=>{let{name:t}=e;return t}));for(const o of t.payload.data){const a="".concat(t.payload.path,"/").concat(o.name),{activePath:s=""}=t.payload,l=null!==(r=null===(n=e[a])||void 0===n?void 0:n.collapsed)&&void 0!==r?r:!s.startsWith("".concat(a,"/"));i[a]=cH(Object.assign(Object.assign({},o),{collapsed:l,path:a}))}}return i}case lH.ErrorLoading:return Object.assign(Object.assign({},e),{[t.payload.path]:Object.assign(Object.assign({},e[t.payload.path]),{loading:!1,loaded:!1,error:!0})});case lH.ResetNode:return Object.assign(Object.assign({},e),{[t.payload.path]:Object.assign(Object.assign({},e[t.payload.path]),{collapsed:!0,loading:!1,loaded:!1,error:!1,children:[]})});default:return e}}function dH(e,t){const n=[];return sH(e,t,((e,t)=>{n.push(Object.assign(Object.assign({},e),{level:t}));const r=function(e,t){if(!e.collapsed)return e.loading?{path:e.path,status:"loading",level:t+1}:e.error?{path:e.path,status:"error",level:t+1}:e.loaded&&0===e.children.length?{path:e.path,status:"empty",level:t+1}:void 0}(e,t);r&&n.push(r)})),n}function hH(e,t){switch(e){case"async_replication":return(0,Le.jsx)(KU,{height:16});case"database":return(0,Le.jsx)(XU,{height:14});case"directory":return t?(0,Le.jsx)(eH,{height:16}):(0,Le.jsx)(tH,{height:16});case"index":return(0,Le.jsx)(nH,{height:16});case"table":case"index_table":return(0,Le.jsx)(rH,{height:16});case"column_table":return(0,Le.jsx)(QU,{height:16});case"stream":case"topic":return(0,Le.jsx)(iH,{height:16});case"external_table":return(0,Le.jsx)(JU,{height:16});case"external_data_source":return(0,Le.jsx)($U,{height:16});case"view":return(0,Le.jsx)(oH,{height:16});default:return null}}function pH(e){let{path:t,fetchPath:n,activePath:r,state:i,level:o,dispatch:s,children:l,onActivate:c,getActions:u,renderAdditionalNodeElements:d,cache:h}=e;const p=i[t];a.useEffect((()=>{p.collapsed?h||s({type:lH.ResetNode,payload:{path:t}}):p.loaded||p.loading||(s({type:lH.StartLoading,payload:{path:t}}),n(t).then((e=>{s({type:lH.FinishLoading,payload:{path:t,activePath:r,data:e}})})).catch((e=>{s({type:lH.ErrorLoading,payload:{path:t,error:e}})})))}),[p.collapsed]);const f=a.useCallback((()=>{c&&c(t)}),[t,c]),m=a.useCallback((()=>{s({type:lH.ToggleCollapsed,payload:{path:t}})}),[s,t]),g=a.useMemo((()=>null===d||void 0===d?void 0:d(p.path,p.type)),[d,p]),v=a.useMemo((()=>null===u||void 0===u?void 0:u(p.path,p.type)),[u,p]);return(0,Le.jsx)(aC,{name:p.name,icon:hH(p.type,p.collapsed),collapsed:p.collapsed,active:p.path===r,actions:v,additionalNodeElements:g,hasArrow:p.expandable,onClick:f,onArrowClick:m,level:o,children:l})}!function(e){e.ToggleCollapsed="toggle-collapsed",e.StartLoading="start-loading",e.FinishLoading="finish-loading",e.ErrorLoading="error-loading",e.ResetNode="reset-node"}(lH||(lH={}));const fH=e=>{const t="".concat(e.path,"|").concat(e.status);return"loading"===e.status?(0,Le.jsx)(YU,{level:e.level},t):"error"===e.status?(0,Le.jsx)(GU,{level:e.level},t):(0,Le.jsx)(HU,{level:e.level},t)};function mH(e){let{rootState:t,fetchPath:n,getActions:r,renderAdditionalNodeElements:i,activePath:o,onActivePathUpdate:s,cache:l=!0,virtualize:c=!1}=e;const[u,d]=a.useReducer(uH,{[t.path]:cH(t)}),h=a.useMemo((()=>dH(u,t.path)),[t.path,u]),p=e=>(0,Le.jsx)(pH,{state:u,path:e.path,activePath:o,fetchPath:n,dispatch:d,onActivate:s,getActions:r,renderAdditionalNodeElements:i,cache:l,level:e.level},e.path);return c?(0,Le.jsx)(ik(),{type:"uniform",length:h.length,useStaticSize:!0,itemRenderer:e=>{const t=h[e];return aH(t)?fH(t):p(t)}}):(0,Le.jsx)(a.Fragment,{children:h.map((e=>aH(e)?fH(e):p(e)))})}var gH=n(80977);const vH=e=>"-- docs: https://ydb.tech/en/docs/yql/reference/syntax/create_table\nCREATE TABLE `".concat(e,"/ydb_row_table` (\n category_id Uint64 NOT NULL,\n id Uint64,\n expire_at Datetime,\n updated_on Datetime,\n name Text,\n `binary-payload` Bytes,\n attributes JsonDocument,\n -- uncomment to add a secondary index\n -- INDEX idx_row_table_id GLOBAL SYNC ON ( id ) COVER ( name, attributes ), -- Secondary indexes docs https://ydb.tech/en/docs/yql/reference/syntax/create_table#secondary_index\n PRIMARY KEY (category_id, id)\n) \nWITH (\n AUTO_PARTITIONING_BY_SIZE = ENABLED,\n AUTO_PARTITIONING_PARTITION_SIZE_MB = 2048,\n AUTO_PARTITIONING_BY_LOAD = ENABLED,\n AUTO_PARTITIONING_MIN_PARTITIONS_COUNT = 4,\n AUTO_PARTITIONING_MAX_PARTITIONS_COUNT = 1024,\n -- uncomment to create a table with predefined partitions\n -- UNIFORM_PARTITIONS = 4, -- The number of partitions for uniform initial table partitioning.\n -- The primary key's first column must have type Uint64 or Uint32.\n -- A created table is immediately divided into the specified number of partitions\n -- uncomment to launch read only replicas in every AZ\n -- READ_REPLICAS_SETTINGS = 'PER_AZ:1', -- Enable read replicas for stale read, launch one replica in every availability zone\n -- uncomment to enable ttl\n -- TTL = Interval(\"PT1H\") ON expire_at, -- Enable background deletion of expired rows https://ydb.tech/en/docs/concepts/ttl\n KEY_BLOOM_FILTER = ENABLED -- With a Bloom filter, you can more efficiently determine\n -- if some keys are missing in a table when making multiple single queries by the primary key.\n)"),yH=e=>"ALTER TABLE `".concat(e,"`\n ADD COLUMN is_deleted Bool;"),bH=e=>"SELECT *\n FROM `".concat(e,"`\n LIMIT 10;"),xH=e=>"UPSERT INTO `".concat(e,"`\n ( `id`, `name` )\nVALUES ( );"),wH=e=>"DROP EXTERNAL TABLE `".concat(e,"`;"),SH=e=>{const t=e.split("/").slice(0,-1).join("/");return"CREATE EXTERNAL TABLE `".concat(t,'/my_external_table` (\n column1 Int,\n column2 Int\n) WITH (\n DATA_SOURCE="').concat(e,'",\n LOCATION="",\n FORMAT="json_as_string",\n `file_pattern`=""\n);')},_H=e=>"-- docs: https://ydb.tech/en/docs/yql/reference/syntax/create_topic\nCREATE TOPIC `".concat(e,"/my_topic` (\n CONSUMER consumer1,\n CONSUMER consumer2 WITH (read_from = Datetime('1970-01-01T00:00:00Z')) -- Sets up the message write time starting from which the consumer will receive data.\n -- Value type: Datetime OR Timestamp OR integer (unix-timestamp in the numeric format). \n -- Default value: now\n) WITH (\n min_active_partitions = 1, -- Minimum number of topic partitions.\n partition_count_limit = 0, -- Maximum number of active partitions in the topic. 0 is interpreted as unlimited.\n retention_period = Interval('PT18H'), -- Data retention period in the topic. Value type: Interval.\n retention_storage_mb = 0, -- Limit on the maximum disk space occupied by the topic data. \n -- When this value is exceeded, the older data is cleared, like under a retention policy. \n -- 0 is interpreted as unlimited.\n partition_write_speed_bytes_per_second = 1048576, -- Maximum allowed write speed per partition.\n partition_write_burst_bytes = 0 -- Write quota allocated for write bursts. \n -- When set to zero, the actual write_burst value is equalled to \n -- the quota value (this allows write bursts of up to one second).\n);"),CH=e=>"-- docs: https://ydb.tech/en/docs/yql/reference/syntax/alter_topic\nALTER TOPIC `".concat(e,"`\n ADD CONSUMER new_consumer WITH (read_from = Datetime('1970-01-01T00:00:00Z')), -- Sets up the message write time starting from which the consumer will receive data.\n -- Value type: Datetime OR Timestamp OR integer (unix-timestamp in the numeric format).\n -- Default value: now\n ALTER CONSUMER consumer1 SET (read_from = Datetime('1970-01-01T00:00:00Z')),\n DROP CONSUMER consumer2,\n SET (\n min_active_partitions = 1, -- Minimum number of topic partitions.\n partition_count_limit = 0, -- Maximum number of active partitions in the topic. 0 is interpreted as unlimited.\n retention_period = Interval('PT18H'), -- Data retention period in the topic. Value type: Interval.\n retention_storage_mb = 0, -- Limit on the maximum disk space occupied by the topic data. \n -- When this value is exceeded, the older data is cleared, like under a retention policy. \n -- 0 is interpreted as unlimited.\n partition_write_speed_bytes_per_second = 1048576, -- Maximum allowed write speed per partition.\n partition_write_burst_bytes = 0 -- Write quota allocated for write bursts. \n -- When set to zero, the actual write_burst value is equalled to\n -- the quota value (this allows write bursts of up to one second).\n );"),EH=e=>"DROP TOPIC `".concat(e,"`;"),TH=e=>"CREATE VIEW `".concat(e,"/my_view` WITH (security_invoker = TRUE) AS SELECT 1;"),OH=e=>"DROP VIEW `".concat(e,"`;"),NH=(e,t)=>(n,r)=>{const i=((e,t,n)=>{const{setActivePath:r,setQueryMode:i}=n,o=(n,o)=>()=>{o&&i(o),t((0,TA.B8)({input:n(e)})),t((0,Gk.Cs)(us.m2.query)),t((0,Gk.jk)(us._0.newQuery)),r(e)};return{createTable:o(vH,"script"),alterTable:o(yH,"script"),selectQuery:o(bH),upsertQuery:o(xH),createExternalTable:o(SH,"script"),dropExternalTable:o(wH,"script"),selectQueryFromExternalTable:o(bH,"query"),createTopic:o(_H,"script"),alterTopic:o(CH,"script"),dropTopic:o(EH,"script"),createView:o(TH,"script"),dropView:o(OH,"script"),copyPath:()=>{try{Az()(e),(0,gH.Z)({name:"Copied",title:PU("actions.copied"),type:"success"})}catch{(0,gH.Z)({name:"Not copied",title:PU("actions.notCopied"),type:"error"})}}}})(n,e,t),o={text:PU("actions.copyPath"),action:i.copyPath},a=[[o],[{text:PU("actions.createTable"),action:i.createTable},{text:PU("actions.createTopic"),action:i.createTopic},{text:PU("actions.createView"),action:i.createView}]],s=[[o],[{text:PU("actions.alterTable"),action:i.alterTable},{text:PU("actions.selectQuery"),action:i.selectQuery},{text:PU("actions.upsertQuery"),action:i.upsertQuery}]],l=[o];return{async_replication:l,database:a,directory:a,table:s,column_table:s,index_table:l,topic:[[o],[{text:PU("actions.alterTopic"),action:i.alterTopic},{text:PU("actions.dropTopic"),action:i.dropTopic}]],stream:l,index:l,external_table:[[o],[{text:PU("actions.selectQuery"),action:i.selectQueryFromExternalTable}],[{text:PU("actions.dropTable"),action:i.dropExternalTable}]],external_data_source:[[o],[{text:PU("actions.createExternalTable"),action:i.createExternalTable}]],view:[[o],[{text:PU("actions.selectQuery"),action:i.selectQuery}],[{text:PU("actions.dropView"),action:i.dropView}]]}[r]},kH=(e,t)=>(n,r)=>{const i=((e,t,n)=>{const{setActivePath:r}=n;return{openPreview:()=>{t((0,Vk.m7)(!0)),t((0,Gk.Cs)(us.m2.query)),t((0,Gk.jk)(us._0.newQuery)),r(e)}}})(n,e,t),o=(0,Le.jsx)(Ie.z,{view:"flat-secondary",onClick:i.openPreview,title:PU("actions.openPreview"),size:"s",children:(0,Le.jsx)(we.J,{data:OU})});return{async_replication:void 0,database:void 0,directory:void 0,table:o,column_table:o,index_table:void 0,topic:void 0,stream:void 0,index:void 0,external_table:o,external_data_source:void 0,view:o}[r]};function jH(e){const{rootPath:t,rootName:n,rootType:r,currentPath:i}=e,o=Ao(),[s,l]=Fo(),c=e=>{o((0,Vk.Ii)(e))};return a.useEffect((()=>{null!==i&&void 0!==i&&i.startsWith(t)||c(t)}),[]),(0,Le.jsx)(mH,{rootState:{path:t,name:n,type:(0,pj.lZ)(r),collapsed:!1},fetchPath:e=>window.api.getSchema({path:e},{concurrentId:"NavigationTree.getSchema|".concat(e)}).then((t=>{if(!t)throw new Error("no describe data about path ".concat(e));const{PathDescription:{Children:n=[]}={}}=t,r={[e]:t},i=n.map((t=>{const{Name:n="",PathType:i,PathSubType:o}=t;return r["".concat(e,"/").concat(n)]={PathDescription:{Self:t}},{name:n,type:(0,pj.lZ)(i,o),expandable:!(0,pj.Sb)(i,o)}}));return o((0,Vk.yM)(r)),i})),getActions:NH(o,{setActivePath:c,setQueryMode:l}),renderAdditionalNodeElements:kH(o,{setActivePath:c}),activePath:i,onActivePathUpdate:c,cache:!1,virtualize:!0})}const IH=Me("object-summary"),PH=()=>({triggerExpand:!1,triggerCollapse:!1,collapsed:Boolean(localStorage.getItem(Lo.Mn))});function DH(e){var t,n,r;let{type:i,subType:o,onCollapseSummary:s,onExpandSummary:l,isCollapsed:c}=e;const u=Ao(),[d,h]=a.useReducer(EF(Lo.Mn),void 0,PH),{data:p,currentSchemaPath:f,currentSchema:m={}}=Do((e=>e.schema)),{summaryTab:g=us.uw.overview}=Do((e=>e.tenant)),v=Ca(),y=ol().parse(v.search,{ignoreQueryPrefix:!0}),{name:b}=y,x=b?null===(t=p[b.toString()])||void 0===t||null===(n=t.PathDescription)||void 0===n?void 0:n.Self:void 0,w=f?p[f]:void 0,S=null===w||void 0===w||null===(r=w.PathDescription)||void 0===r?void 0:r.Self;a.useEffect((()=>{const e=(0,pj.vp)(i)&&!(0,pj.$J)(i);!i||e||hs.find((e=>e.id===g))||u((0,Gk.Tu)(us.uw.overview))}),[u,i,g]);const _=()=>{const e=(0,pj.vp)(i)&&!(0,pj.$J)(i)?[...hs,...ps]:hs;return(0,Le.jsx)("div",{className:IH("tabs"),children:(0,Le.jsx)(wt,{size:"l",items:e,activeTab:g,wrapTo:(e,t)=>{let{id:n}=e;const r=(0,Ta.ax)(Ta.ZP.tenant,void 0,{...y,name:b,[ds.summaryTab]:n});return(0,Le.jsx)(bl,{to:r,className:IH("tab"),children:t},n)},allowNotSelected:!0})})},C=()=>{switch(g){case us.uw.acl:return(0,Le.jsx)(LU,{});case us.uw.schema:return(0,Le.jsx)(bj,{type:i,path:f});default:return(()=>{var e;const t=Number(null===S||void 0===S?void 0:S.CreateStep),n=t?(0,ks.o0)(t):"unknown",r="Created At",i={[hj.gb.EPathTypeInvalid]:void 0,[hj.gb.EPathTypeDir]:void 0,[hj.gb.EPathTypeTable]:void 0,[hj.gb.EPathTypeSubDomain]:void 0,[hj.gb.EPathTypeTableIndex]:void 0,[hj.gb.EPathTypeExtSubDomain]:void 0,[hj.gb.EPathTypeColumnStore]:void 0,[hj.gb.EPathTypeColumnTable]:void 0,[hj.gb.EPathTypeCdcStream]:()=>(0,Le.jsx)(NU,{data:w}),[hj.gb.EPathTypePersQueueGroup]:()=>(0,Le.jsx)(kU,{data:w}),[hj.gb.EPathTypeExternalTable]:()=>(0,Le.jsx)(oP,{data:w}),[hj.gb.EPathTypeExternalDataSource]:()=>(0,Le.jsx)(JI,{data:w}),[hj.gb.EPathTypeView]:void 0,[hj.gb.EPathTypeReplication]:()=>{var e,t;return(0,Le.jsx)(Ss,{info:[{label:r,value:n},{label:"State",value:(0,Le.jsx)(aP,{state:null===w||void 0===w||null===(e=w.PathDescription)||void 0===e||null===(t=e.ReplicationDescription)||void 0===t?void 0:t.State})}]})}};let o=(null===S||void 0===S?void 0:S.PathType)&&(null===(e=i[S.PathType])||void 0===e?void 0:e.call(i));return o||(o=(0,Le.jsx)(Ss,{info:[{label:r,value:n}]})),o})()}},E=()=>{h(SF.triggerCollapse)},T=()=>{h(SF.triggerExpand)},O=()=>{h(SF.clear)},N=()=>{u((0,Vk.m7)(!0)),u((0,Gk.Cs)(us.m2.query)),u((0,Gk.jk)(us._0.newQuery))},k=()=>{const e=(0,pj.vp)(i)&&!(0,pj.dC)(o);return(0,Le.jsxs)(a.Fragment,{children:[e&&(0,Le.jsx)(Ie.z,{view:"flat-secondary",onClick:N,title:PU("summary.showPreview"),children:(0,Le.jsx)(we.J,{data:OU})}),f&&(0,Le.jsx)(pl,{text:f,view:"flat-secondary",title:PU("summary.copySchemaPath")}),(0,Le.jsx)(OF,{onCollapse:E,onExpand:T,isCollapsed:d.collapsed,initialDirection:"bottom"})]})},j=()=>{const{Status:e,Reason:t}=m;let n;return!i&&e&&t&&(n="".concat(e,": ").concat(t)),i?(0,Le.jsx)("div",{className:IH("entity-type"),children:i.replace("EPathType","")}):(0,Le.jsx)("div",{className:IH("entity-type",{error:!0}),children:(0,Le.jsx)(Io,{content:n,offset:{left:0}})})};return b?(0,Le.jsxs)("div",{className:IH(),children:[(0,Le.jsx)("div",{className:IH({hidden:c}),children:(0,Le.jsxs)(Hk,{direction:"vertical",defaultSizePaneKey:Lo.wr,onSplitStartDragAdditional:O,triggerCollapse:d.triggerCollapse,triggerExpand:d.triggerExpand,minSize:[200,52],collapsedSizes:[100,0],children:[f?(0,Le.jsxs)("div",{className:IH("tree-wrapper"),children:[(0,Le.jsx)("div",{className:IH("tree-header"),children:PU("summary.navigation")}),(0,Le.jsx)("div",{className:IH("tree"),children:x&&(0,Le.jsx)(jH,{rootPath:b,rootName:x.Name||String(b),rootType:x.PathType,currentPath:f})})]}):(0,Le.jsx)("div",{children:(0,Le.jsx)(N_,{})}),(0,Le.jsxs)("div",{className:IH("info"),children:[(0,Le.jsxs)("div",{className:IH("sticky-top"),children:[(0,Le.jsxs)("div",{className:IH("info-header"),children:[(0,Le.jsxs)("div",{className:IH("info-title"),children:[j(),(0,Le.jsx)("div",{className:IH("path-name"),children:f})]}),(0,Le.jsx)("div",{className:IH("info-controls"),children:k()})]}),_()]}),(0,Le.jsx)("div",{className:IH("overview-wrapper"),children:C()})]})]})}),(0,Le.jsx)(OF,{onCollapse:s,onExpand:l,isCollapsed:c,initialDirection:"left",className:IH("action-button")})]}):null}const AH=Me("tenant-page"),RH=()=>({triggerExpand:!1,triggerCollapse:!1,collapsed:Boolean(localStorage.getItem(Lo.sO))});const MH=function(e){var t;const[r,i]=a.useReducer(EF(Lo.sO),void 0,RH),o=a.useRef(),{currentSchemaPath:s,currentSchema:l={}}=Do((e=>e.schema)),{PathType:c,PathSubType:u}=Do((e=>{var t,n;return s?null===(t=e.schema.data[s])||void 0===t||null===(n=t.PathDescription)||void 0===n?void 0:n.Self:void 0}))||{},{PathType:d,PathSubType:h}=(null===(t=l.PathDescription)||void 0===t?void 0:t.Self)||{},{error:{status:p=200}={}}=Do((e=>e.schema)),f=Ao(),m=Ca(),g=ol().parse(m.search,{ignoreQueryPrefix:!0}),{name:v}=g,y=v;a.useEffect((()=>{if(y&&"string"===typeof y&&o.current!==y){(async()=>{const{registerYQLCompletionItemProvider:e}=await Promise.all([n.e(1551),n.e(8424),n.e(6531)]).then(n.bind(n,16531));e(y)})().catch(console.error),o.current=y}}),[y]),a.useEffect((()=>{f((0,Vk.J1)({path:y}))}),[y,f]),a.useEffect((()=>{s&&s!==y&&f((0,Vk.J1)({path:s}))}),[s,f,y]),a.useEffect((()=>{y&&f((0,Rl.J)("tenant",{tenantName:y}))}),[y,f]);const b=403===p,x=s||y||PU("page.title");return(0,Le.jsxs)("div",{className:AH(),children:[(0,Le.jsx)(oe,{defaultTitle:"".concat(x," \u2014 YDB Monitoring"),titleTemplate:"%s \u2014 ".concat(x," \u2014 YDB Monitoring")}),b?(0,Le.jsx)(Fc,{}):(0,Le.jsxs)(Hk,{defaultSizePaneKey:Lo.z4,defaultSizes:[25,75],triggerCollapse:r.triggerCollapse,triggerExpand:r.triggerExpand,minSize:[36,200],onSplitStartDragAdditional:()=>{i(SF.clear)},children:[(0,Le.jsx)(DH,{type:c||d,subType:u||h,onCollapseSummary:()=>{i(SF.triggerCollapse)},onExpandSummary:()=>{i(SF.triggerExpand)},isCollapsed:r.collapsed}),(0,Le.jsx)(TU,{type:c||d,additionalTenantProps:e.additionalTenantProps,additionalNodesProps:e.additionalNodesProps,tenantName:y})]})]})},LH=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M9.28 4.78a.75.75 0 0 0 0-1.06l-2.5-2.5a.75.75 0 1 0-1.06 1.06L6.94 3.5H1.75a.75.75 0 1 0 0 1.5h5.19L5.72 6.22a.75.75 0 1 0 1.06 1.06l2.5-2.5Zm-.06 3.94-2.5 2.5a.75.75 0 0 0 0 1.06l2.5 2.5a.75.75 0 1 0 1.06-1.06L9.06 12.5h5.19a.75.75 0 0 0 0-1.5H9.06l1.22-1.22a.75.75 0 1 0-1.06-1.06ZM14 4.25a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0ZM3.75 13.5a1.75 1.75 0 1 0 0-3.5 1.75 1.75 0 0 0 0 3.5Z",clipRule:"evenodd"})),FH=JSON.parse('{"group-id":"Group ID","pool-name":"Storage Pool Name","size":"Size","erasure":"Erasure"}'),zH=(0,We.wZ)("ydb-group-info",{en:FH});function BH(e){let{data:t,...n}=e;const{GroupID:r,PoolName:i,Used:o,Limit:a,ErasureSpecies:s}=t,l=[];return Td(r)&&l.push({label:zH("group-id"),value:r}),Td(i)&&l.push({label:zH("pool-name"),value:i}),Td(s)&&l.push({label:zH("erasure"),value:s}),Number(o)>=0&&Number(a)>=0&&l.push({label:zH("size"),value:(0,Le.jsx)(Iu,{value:o,capacity:a,formatValues:ks.q3,colorizeProgress:!0})}),(0,Le.jsx)(Ss,{info:l,...n})}const UH=Dl.h.injectEndpoints({endpoints:e=>({getVDiskData:e.query({queryFn:async e=>{let{nodeId:t,pDiskId:n,vDiskSlotId:r}=e;try{const{vDiskData:e,groupData:i}=await async function(e){let{nodeId:t,pDiskId:n,vDiskSlotId:r}=e,{signal:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=await Promise.all([window.api.getVDiskInfo({nodeId:t,pDiskId:n,vDiskSlotId:r},{signal:i}),window.api.getPDiskInfo({nodeId:t,pDiskId:n},{signal:i}),window.api.getNodeInfo(t,{signal:i})]),a=function(e){var t,n,r,i,o,a,s;let[l,c,u]=e;const d=Nh(null===(t=l.VDiskStateInfo)||void 0===t?void 0:t[0]),h=kh(null===(n=c.PDiskStateInfo)||void 0===n?void 0:n[0]),p=null===(r=u.SystemStateInfo)||void 0===r?void 0:r[0],f=(0,Na.Ns)(p),m=null!==(i=null!==(o=d.NodeId)&&void 0!==o?o:h.NodeId)&&void 0!==i?i:f.NodeId,g=f.Host,v=null===(a=f.Roles)||void 0===a?void 0:a[0],y=f.DC,b=null!==(s=d.PDiskId)&&void 0!==s?s:h.PDiskId,x=h.Type;return{...d,NodeId:m,NodeHost:g,NodeType:v,NodeDC:y,PDiskId:b,PDiskType:x}}(o),{StoragePoolName:s,VDiskId:l={}}=a,{GroupID:c}=l;let u;if(Td(s)&&Td(c)){u=function(e,t,n){var r,i;const o=null===(r=e.StoragePools)||void 0===r?void 0:r.find((e=>e.Name===t)),a=null===o||void 0===o||null===(i=o.Groups)||void 0===i?void 0:i.find((e=>e.GroupID===n));if(a&&o)return Ph(a,o)}(await window.api.getStorageInfo({nodeId:t,poolName:s,groupId:c,version:ka.v1},{signal:i}),s,c)}return{vDiskData:a,groupData:u}}({nodeId:t,pDiskId:n,vDiskSlotId:r});return{data:{vDiskData:e,groupData:i}}}catch(i){return{error:i}}},providesTags:["All"]})}),overrideExisting:"throw"});const HH=JSON.parse('{"fqdn":"FQDN","node":"Node","pdisk":"PDisk","vdisk":"VDisk","group":"Group","evict-vdisk-button":"Evict VDisk","evict-vdisk-dialog":"VDisk will be evicted. Do you want to proceed?","evict-vdisk-not-allowed":"You don\'t have enough rights to evict VDisk"}'),VH=(0,We.wZ)("ydb-vDisk-page",{en:HH}),GH=Me("ydb-vdisk-page");const WH=Gs("clusters"),qH=Gs("cluster"),ZH=Gs("tenant"),YH=Gs("node"),KH=Gs("pDisk"),QH=Gs("vDisk"),XH=Gs("tablet"),$H=Gs("tabletsFilters"),JH=Gs("routes"),eV=Gs("redirect"),tV=JSON.parse('{"pages.clusters":"All clusters"}'),nV=JSON.parse('{"pages.clusters":"\u0412\u0441\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u044b"}'),rV=(0,We.wZ)("ydb-app-content",{ru:nV,en:tV}),iV=Me("app"),oV=[{path:Ta.ZP.cluster,slot:qH,component:eE},{path:Ta.ZP.tenant,slot:ZH,component:MH},{path:Ta.ZP.node,slot:YH,component:RN},{path:Ta.ZP.pDisk,slot:KH,component:function(){var e;const t=Ao(),n=Do(Zs.d),{isUserAllowedToMakeChanges:r}=Do((e=>e.authentication)),[{nodeId:i,pDiskId:o}]=mc({nodeId:Gl,pDiskId:Gl});a.useEffect((()=>{t((0,Rl.J)("pDisk",{nodeId:i,pDiskId:o}))}),[t,i,o]);const s=Td(i)&&Td(o)?{nodeId:i,pDiskId:o}:zl.CN,l=UN.useGetPdiskInfoQuery(s,{pollingInterval:Lo.ME}),c=l.isFetching&&void 0===l.currentData,u=l.currentData||{},{NodeHost:d,NodeId:h,NodeType:p,NodeDC:f,Severity:m}=u,g=UN.useGetStorageInfoQuery(s,{pollingInterval:Lo.ME}),v=g.isFetching&&void 0===g.currentData,y=null!==(e=g.currentData)&&void 0!==e?e:[],b=async()=>{if(Td(i)&&Td(o))return window.api.restartPDisk(i,o).then((e=>{if(!1===(null===e||void 0===e?void 0:e.result)){throw{statusText:e.error}}}))},x=async()=>Promise.all([l.refetch(),g.refetch()]);return(0,Le.jsxs)("div",{className:GN(null),children:[(()=>{const e=o?"".concat(VN("pdisk")," ").concat(o):VN("pdisk"),t=d||VN("node");return(0,Le.jsx)(oe,{titleTemplate:"%s - ".concat(e," \u2014 ").concat(t," \u2014 YDB Monitoring"),defaultTitle:"".concat(e," \u2014 ").concat(t," \u2014 YDB Monitoring")})})(),(()=>{const e=d?"".concat(VN("fqdn"),": ").concat(d):void 0,t=h?"".concat(VN("node"),": ").concat(h):void 0;return(0,Le.jsx)(BN,{className:GN("meta"),loading:c,items:[e,t,p,f]})})(),(0,Le.jsx)(FN,{entityName:VN("pdisk"),status:_h(m),id:o,className:GN("title")}),(0,Le.jsx)("div",{className:GN("controls"),children:(0,Le.jsxs)($O,{onConfirmAction:b,onConfirmActionSuccess:x,buttonDisabled:!i||!o||!r,buttonView:"normal",dialogContent:VN("restart-pdisk-dialog"),withPopover:!0,popoverContent:VN("restart-pdisk-not-allowed"),popoverDisabled:r,children:[(0,Le.jsx)(we.J,{data:MN}),VN("restart-pdisk-button")]})}),c?(0,Le.jsx)(kC,{className:GN("info"),rows:10}):(0,Le.jsx)(pN,{pDisk:u,nodeId:i,className:GN("info"),isPDiskPage:!0}),(0,Le.jsx)(WN,{data:y,nodesMap:n,loading:v})]})}},{path:Ta.ZP.vDisk,slot:QH,component:function(){const e=Ao(),t=Do(Zs.d),{isUserAllowedToMakeChanges:n}=Do((e=>e.authentication)),[{nodeId:r,pDiskId:i,vDiskSlotId:o}]=mc({nodeId:Gl,pDiskId:Gl,vDiskSlotId:Gl});a.useEffect((()=>{e((0,Rl.J)("vDisk",{nodeId:r,pDiskId:i,vDiskSlotId:o}))}),[e,r,i,o]);const s=Td(r)&&Td(i)&&Td(o)?{nodeId:r,pDiskId:i,vDiskSlotId:o}:zl.CN,{currentData:l,isFetching:c,refetch:u}=UH.useGetVDiskDataQuery(s,{pollingInterval:Lo.ME}),d=c&&void 0===l,{vDiskData:h={},groupData:p}=l||{},{NodeHost:f,NodeId:m,NodeType:g,NodeDC:v,PDiskId:y,PDiskType:b,Severity:x,VDiskId:w}=h,S=async()=>{const{GroupID:e,GroupGeneration:t,Ring:n,Domain:r,VDisk:i}=w||{};if(Td(e)&&Td(t)&&Td(n)&&Td(r)&&Td(i))return window.api.evictVDisk({groupId:e,groupGeneration:t,failRealmIdx:n,failDomainIdx:r,vDiskIdx:i})},_=async()=>u(),C=()=>{var e;return p?(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)("div",{className:GH("group-title"),children:VH("group")}),(0,Le.jsx)(BH,{data:p}),(0,Le.jsx)("div",{className:GH("group-disks"),children:null===(e=p.VDisks)||void 0===e?void 0:e.map((e=>(0,Le.jsx)(lS,{data:e,nodes:t,className:GH("group-disk")},(0,ks.a2)(e.VDiskId))))})]}):null};return(0,Le.jsxs)("div",{className:GH(null),children:[(()=>{const e=o?"".concat(VH("vdisk")," ").concat(o):VH("vdisk"),t=i?"".concat(VH("pdisk")," ").concat(i):VH("pdisk"),n=f||VH("node");return(0,Le.jsx)(oe,{titleTemplate:"%s - ".concat(e," - ").concat(t," \u2014 ").concat(n," \u2014 YDB Monitoring"),defaultTitle:"".concat(e," - ").concat(t," \u2014 ").concat(n," \u2014 YDB Monitoring")})})(),(()=>{const e=f?"".concat(VH("fqdn"),": ").concat(f):void 0,t=m?"".concat(VH("node"),": ").concat(m):void 0,n=m?"".concat(VH("pdisk"),": ").concat(y):void 0;return(0,Le.jsx)(BN,{loading:d,items:[e,t,g,v,n,b]})})(),(0,Le.jsx)(FN,{entityName:VH("vdisk"),status:_h(x),id:(0,ks.a2)(null===h||void 0===h?void 0:h.VDiskId)}),(0,Le.jsx)("div",{children:(0,Le.jsxs)($O,{onConfirmAction:S,onConfirmActionSuccess:_,buttonDisabled:!w||!n,buttonView:"normal",dialogContent:VH("evict-vdisk-dialog"),withPopover:!0,popoverContent:VH("evict-vdisk-not-allowed"),popoverDisabled:n,children:[(0,Le.jsx)(we.J,{data:LH}),VH("evict-vdisk-button")]})}),d?(0,Le.jsx)(kC,{rows:20}):(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(SN,{data:h,isVDiskPage:!0}),C()]})]})}},{path:Ta.ZP.tablet,slot:XH,component:()=>{var e;const t=a.useRef(!0),n=Ao(),r=Ca(),i=function(){var e=Sa(ra).match;return e?e.params:{}}(),{id:o}=i,{nodeId:s,tenantName:l,type:c,clusterName:u}=(0,Ta.mB)(r),{currentData:d,isFetching:h,error:p,refetch:f}=qN.useGetTabletQuery({id:o},{pollingInterval:Lo.ME}),m=h&&void 0===d,{id:g,data:v={},history:y=[]}=d||{},{currentData:b}=qN.useGetTabletDescribeQuery(v.TenantId?{tenantId:v.TenantId}:zl.CN),x=(null===(e=v.NodeId)||void 0===e?void 0:e.toString())||(null===s||void 0===s?void 0:s.toString()),w=b||(null===l||void 0===l?void 0:l.toString()),S=v.Type||(null===c||void 0===c?void 0:c.toString());a.useEffect((()=>{n((0,Rl.J)("tablet",{nodeIds:x?[x]:[],tenantName:w,tabletId:o,tabletType:S}))}),[n,w,o,x,S]);const _=(e,t)=>(0,Le.jsx)("li",{className:ek("link",{external:!0}),children:(0,Le.jsx)(si,{href:"".concat(h_.y3).concat(e.path),target:"_blank",children:e.name})},t);return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(oe,{children:(0,Le.jsx)("title",{children:"".concat(o," \u2014 ").concat(YN("tablet.header")," \u2014 ").concat(w||u||Lo.DO)})}),(()=>{if(m&&o!==g&&t.current)return(0,Le.jsx)(N_,{size:"l"});if(p)return(0,Le.jsx)(zc,{error:p});if(!v||!Object.keys(v).length)return(0,Le.jsx)("div",{className:ek("placeholder"),children:(0,Le.jsx)(Ac,{title:YN("emptyState")})});const{TabletId:e,Overall:n,Leader:r}=v,i=[{name:"".concat(Lo.Ah," - tablet"),path:"/tablets?TabletID=".concat(e)}];return(0,Le.jsx)("div",{className:ek(),children:(0,Le.jsxs)("div",{className:ek("pane-wrapper"),children:[(0,Le.jsxs)("div",{className:ek("left-pane"),children:[(0,Le.jsx)("ul",{className:ek("links"),children:i.map(_)}),(0,Le.jsxs)("div",{className:ek("row",{header:!0}),children:[(0,Le.jsx)("span",{className:ek("title"),children:YN("tablet.header")}),(0,Le.jsx)(Il,{status:n,name:e}),(0,Le.jsx)("a",{rel:"noopener noreferrer",className:ek("link",{external:!0}),href:"".concat(h_.y3,"/tablets?TabletID=").concat(e),target:"_blank",children:(0,Le.jsx)(we.J,{data:pu})}),r&&(0,Le.jsx)(LC,{text:"Leader",type:"blue"}),(0,Le.jsx)("span",{className:ek("loader"),children:m&&(0,Le.jsx)(N_,{size:"s"})})]}),(0,Le.jsx)(QN,{tablet:v,tenantPath:w}),(0,Le.jsx)(KN,{tablet:v,fetchData:f})]}),(0,Le.jsx)("div",{className:ek("rigth-pane"),children:(0,Le.jsx)(JN,{history:y})})]})})})()]})}},{path:Ta.ZP.tabletsFilters,slot:$H,component:fk}];function aV(e,t){return(0,Le.jsx)(ma,{path:t.path,exact:t.exact,render:n=>{const r=e.get(t.slot);let i;if(r)i="function"===typeof r.rendered?r.rendered({component:t.component,...n}):r.rendered;else{const e=t.component;i=(0,Le.jsx)(e,{...n})}return(0,Le.jsx)("main",{className:iV("main"),children:i})}},t.path)}function sV(e){var t;const{singleClusterMode:n}=e,r=function(e){const{children:t}=e;return a.useMemo((()=>new qs(t)),[t])}(e),i=r.get(JH),o=r.get(eV),s=null!==(t=null===o||void 0===o?void 0:o.props)&&void 0!==t?t:n?{to:(0,$C.B7)()}:{to:Ta.ZP.clusters};let l;return n||(l={text:rV("pages.clusters"),link:Ta.ZP.clusters}),(0,Le.jsxs)(wa,{children:[n?null:aV(r,{path:Ta.ZP.clusters,exact:!0,component:UT,slot:WH}),null===i||void 0===i?void 0:i.rendered,(0,Le.jsxs)(ma,{children:[(0,Le.jsx)(lV,{}),(0,Le.jsx)(cV,{}),(0,Le.jsx)(xO,{mainPage:l}),(0,Le.jsxs)(wa,{children:[oV.map((e=>aV(r,e))),(0,Le.jsx)(ua,{...s})]})]},"single-cluster")]})}function lV(){const e=Ao(),{isAuthenticated:t,isInternalUser:n}=Do((e=>({isAuthenticated:e.authentication.isAuthenticated,isInternalUser:Boolean(e.authentication.user)})),ae.wU);return a.useEffect((()=>{t&&!n&&e((0,ns.PR)())}),[e,t,n]),null}function cV(){return Zs.W.useGetNodesListQuery(void 0),null}const uV=(0,ae.$j)((function(e){return{isAuthenticated:e.authentication.isAuthenticated,singleClusterMode:e.singleClusterMode}}))((function(e){const{singleClusterMode:t,isAuthenticated:n}=e;return(0,Le.jsxs)(wa,{children:[(0,Le.jsx)(ma,{path:Ta.ZP.auth,children:(0,Le.jsx)(tl,{closable:!0})}),(0,Le.jsx)(ma,{children:(0,Le.jsx)("div",{className:iV({embedded:t}),children:n?e.children:(0,Le.jsx)(tl,{})})})]})}));var dV=n(87720);const hV=e=>{let{children:t}=e;Ca();const n=_a();return t({replace(e){n.replace(e.search||"?",e.state)},push(e){n.push(e.search||"?",e.state)},get location(){return n.location}})},pV=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M10 4.5a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm1.5 0a3.5 3.5 0 1 1-7 0 3.5 3.5 0 0 1 7 0Zm-9 8c0-.204.22-.809 1.32-1.459C4.838 10.44 6.32 10 8 10c1.68 0 3.162.44 4.18 1.041 1.1.65 1.32 1.255 1.32 1.459a1 1 0 0 1-1 1h-9a1 1 0 0 1-1-1Zm5.5-4c-3.85 0-7 2-7 4A2.5 2.5 0 0 0 3.5 15h9a2.5 2.5 0 0 0 2.5-2.5c0-2-3.15-4-7-4Z",clipRule:"evenodd"})),fV=a.createContext(void 0);fV.displayName="AsideHeaderInnerContext";const mV=fV.Provider,gV=()=>{const e=a.useContext(fV);if(void 0===e)throw new Error("AsideHeaderInnerContext is not initialized.\n Please check if you wrapped your component with AsideHeaderInnerContext.Provider");return e},vV=a.createContext({compact:!1,size:0});vV.displayName="AsideHeaderContext";const yV=vV.Provider,bV=()=>{const e=a.useContext(vV);if(void 0===e)throw new Error("AsideHeaderContext is not initialized.\n Please check if you wrapped your component with AsideHeader\n Context.Provider");return e},xV=40;Mi('.gn-composite-bar-highlighted-item{--_--background-color:var(--g-color-base-background);--_--item-icon-background-size:38px;--_--item-background-color-hover:var(--g-color-base-selection-hover);--_--item-selected-background-color-active:var(--g-color-base-selection);display:flex;justify-content:center;position:absolute;z-index:10000}.gn-composite-bar-highlighted-item__icon{align-items:center;background-color:var(--gn-aside-header-background-color,var(--_--background-color));border-radius:7px;box-shadow:0 8px 20px 0 var(--g-color-sfx-shadow);cursor:pointer;display:flex;height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));justify-content:center;overflow:hidden;position:relative;transform:translateY(1px);width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size))}.gn-composite-bar-highlighted-item__icon:before{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color-active));content:"";height:100%;position:absolute;width:100%;z-index:-1}.gn-composite-bar-highlighted-item__icon:hover:before{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover))}');const wV=(0,Ri.b)("composite-bar-highlighted-item"),SV=e=>{let{iconRef:t,iconNode:n,onClick:r,onClickCapture:i}=e;const{openModalSubscriber:o}=gV(),[{top:s,left:l,width:c,height:u},d]=(0,a.useState)({top:0,left:0,width:0,height:0}),[h,p]=(0,a.useState)(!1),f=(0,a.useMemo)((()=>(0,Li.d)((()=>{var e;const{top:n=0,left:r=0,width:i=0,height:o=0}=(null===(e=null===t||void 0===t?void 0:t.current)||void 0===e?void 0:e.getBoundingClientRect())||{};d({top:n+window.scrollY,left:r+window.scrollX,width:i,height:o})}),200,{leading:!0})),[t]),m=(0,a.useCallback)((()=>f()),[f]);return(0,a.useEffect)((()=>{if(h)return m(),window.addEventListener("resize",m),()=>window.removeEventListener("resize",m)}),[m,h]),null===o||void 0===o||o((e=>{p(e)})),n&&h?a.createElement(jr.h,null,a.createElement("div",{className:wV(),style:{left:l,top:s,width:c,height:u},onClick:r,onClickCapture:i,"data-toast":!0},a.createElement("div",{className:wV("icon")},n))):null};SV.displayName="HighlightedItem";const _V="collapse-item-id",CV=["right-start","right-end","right"],EV=28;function TV(e){if(!kV(e))return xV;switch(e.type){case"action":return 50;case"divider":return 15;default:return xV}}function OV(e){return e.reduce(((e,t)=>e+TV(t)),0)}function NV(e){const t=e.findIndex((e=>{let{current:t}=e;return Boolean(t)}));return-1===t?void 0:t}function kV(e){return void 0!==(null===e||void 0===e?void 0:e.id)}Mi('.gn-composite-bar-item{--gn-composite-bar-item-action-size:36px;--_--horizontal-divider-line-color:var(--g-color-line-generic);--_--item-background-color-hover:var(--g-color-base-simple-hover);--_--item-general-icon-color:var(--g-color-text-primary);--_--item-icon-color:var(--g-color-text-misc);--_--item-text-color:var(--g-color-text-primary);--_--item-selected-text-color:var(--g-color-text-primary);--_--item-selected-background-color-active:var(--g-color-base-selection);align-items:center;cursor:pointer;display:flex;height:100%;width:100%}.gn-composite-bar-item__icon{color:var(--gn-aside-header-item-icon-color,var(--_--item-icon-color))}.gn-composite-bar-item_current .gn-composite-bar-item__icon{color:var(--gn-aside-header-item-current-icon-color,var(--gn-aside-header-item-icon-color,var(--_--item-icon-color)))}.gn-composite-bar-highlighted-item .gn-composite-bar-item__icon,.gn-composite-bar_subheader .gn-composite-bar-item__icon,.gn-footer-item .gn-composite-bar-item__icon{color:var(--gn-aside-header-general-item-icon-color,var(--_--item-general-icon-color))}.gn-composite-bar-highlighted-item.gn-composite-bar-item_current .gn-composite-bar-item__icon,.gn-composite-bar_subheader .gn-composite-bar-item_current .gn-composite-bar-item__icon,.gn-footer-item.gn-composite-bar-item_current .gn-composite-bar-item__icon{color:var(--gn-aside-header-item-current-icon-color,var(--gn-aside-header-general-item-icon-color,var(--_--item-general-icon-color)))}.gn-composite-bar-item__icon-tooltip .g-action-tooltip__description{color:var(--g-color-text-light-primary);margin-block-start:0}.gn-composite-bar-item__icon-place{align-items:center;display:flex;flex-shrink:0;height:100%;justify-content:center;width:var(--gn-aside-header-min-width)}.gn-composite-bar-item__title{display:flex;overflow:hidden}.gn-composite-bar-item__title-text{color:var(--gn-aside-header-item-text-color,var(--_--item-text-color));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gn-composite-bar-item_current .gn-composite-bar-item__title-text{color:var(--gn-aside-header-item-current-text-color,var(--_--item-selected-text-color))}.gn-composite-bar-item__title-adornment{margin:0 10px}.gn-composite-bar-item__collapse-item{align-items:center;cursor:pointer;display:flex;height:100%;padding:0 16px;width:100%}.gn-composite-bar-item__collapse-item .gn-composite-bar-item__title-adornment{margin-right:0}.gn-composite-bar-item__menu-divider{border-top:1px solid var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));cursor:default;margin:0 8px;width:100%}.gn-composite-bar-item__collapse-items-popup-content{padding:4px 0}.gn-composite-bar-item__link{align-items:center;display:flex;height:100%;width:100%}.gn-composite-bar-item__link,.gn-composite-bar-item__link:active,.gn-composite-bar-item__link:focus,.gn-composite-bar-item__link:hover,.gn-composite-bar-item__link:visited{color:inherit;outline:none;text-decoration:none}.gn-composite-bar-item__btn-icon{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.gn-composite-bar-item_type_action{background:var(--g-color-base-float);border-radius:var(--gn-composite-bar-item-action-size);box-shadow:0 0 0 1px rgba(0,0,0,.03),0 5px 6px rgba(0,0,0,.12);height:var(--gn-composite-bar-item-action-size);justify-content:center;margin:0 10px 8px;transition:transform .1s ease-out,background-color .15s linear}.gn-composite-bar-item_type_action:focus-visible{box-shadow:0 0 0 2px var(--g-color-line-misc)}.gn-composite-bar-item_type_action:hover{background-color:var(--g-color-base-float-hover)}.gn-composite-bar-item_type_action:active{box-shadow:0 1px 2px var(--g-color-sfx-shadow);transform:scale(.96);transition:none}.gn-composite-bar-item_type_action .gn-composite-bar-item__icon-place{width:var(--gn-composite-bar-item-action-size)}.gn-composite-bar-item_type_action .gn-composite-bar-item__title{margin-right:16px}.gn-composite-bar-item__icon-tooltip_item-type_action{margin-left:10px}.gn-composite-bar-item:not(.gn-composite-bar-item_compact).gn-composite-bar-item_current.gn-composite-bar-item_type_regular{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color-active))}.gn-composite-bar-item:not(.gn-composite-bar-item_compact):hover.gn-composite-bar-item_type_regular{background-color:var(--gn-aside-header-item-current-background-color-hover,var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color-active)))}.gn-composite-bar-item:not(.gn-composite-bar-item_compact):not(.gn-composite-bar-item_current):hover.gn-composite-bar-item_type_regular{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover))}.gn-composite-bar-item_compact.gn-composite-bar-item_type_action{width:var(--gn-composite-bar-item-action-size)}.gn-composite-bar-item_compact.gn-composite-bar-item_type_action .gn-composite-bar-item__title{margin:0}.gn-composite-bar-item_compact.gn-composite-bar-item_current.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon{background-color:transparent;position:relative}.gn-composite-bar-item_compact.gn-composite-bar-item_current.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon:before{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color-active));border-radius:7px;content:"";height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));left:50%;margin-left:-19px;margin-top:-19px;position:absolute;top:50%;width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));z-index:-1}.gn-composite-bar-item_compact:hover.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon{background-color:transparent;position:relative}.gn-composite-bar-item_compact:hover.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon:before{background-color:var(--gn-aside-header-item-current-background-color-hover,var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color-active)));border-radius:7px;content:"";height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));left:50%;margin-left:-19px;margin-top:-19px;position:absolute;top:50%;width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));z-index:-1}.gn-composite-bar-item_compact:not(.gn-composite-bar-item_current):hover.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon{background-color:transparent;position:relative}.gn-composite-bar-item_compact:not(.gn-composite-bar-item_current):hover.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon:before{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover));border-radius:7px;content:"";height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));left:50%;margin-left:-19px;margin-top:-19px;position:absolute;top:50%;width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));z-index:-1}');const jV=(0,Ri.b)("composite-bar-item");function IV(e){let t=a.createElement("div",{className:jV("title-text")},e.title);return e.rightAdornment&&(t=a.createElement(a.Fragment,null,t,a.createElement("div",{className:jV("title-adornment")},e.rightAdornment))),t}const PV=["right-end"],DV=[-20,8],AV=e=>{const{item:t,className:n,collapseItems:r,onMouseLeave:i,onMouseEnter:o,enableTooltip:s=!0,popupVisible:l=!1,popupAnchor:c,popupPlacement:u=PV,popupOffset:d=DV,popupKeepMounted:h,popupContentClassName:p,renderPopupContent:f,onClosePopup:m,onItemClick:g,onItemClickCapture:v,bringForward:y}=e,{compact:b}=bV(),[x,w]=a.useState(!1),S=a.useRef(null),_=c||S,C=a.useRef(null),E=t.type||"regular",T=t.current||!1,O=t.tooltipText||t.title,N=t.icon,k=t.iconSize||18,j=t.iconQa,I=t.id===_V,P=a.useMemo((()=>[{name:"compact",enabled:!0,options:{compact:b},phase:"main",fn(){}}]),[b]),D=a.useCallback((e=>{var t;e instanceof MouseEvent&&e.target&&(null===(t=S.current)||void 0===t?void 0:t.contains(e.target))||null===m||void 0===m||m()}),[m]);if("divider"===t.type)return a.createElement("div",{className:jV("menu-divider")});const A=e=>b?a.createElement(xT,{title:"",description:O,disabled:!s||I&&x||l,placement:"right",className:jV("icon-tooltip",{"item-type":E})},a.createElement("div",{onMouseEnter:()=>null===o||void 0===o?void 0:o(),onMouseLeave:()=>null===i||void 0===i?void 0:i(),className:jV("btn-icon")},e)):e,R=e=>{let{icon:r,title:s}=e;const c=a.createElement(a.Fragment,null,a.createElement("div",{className:jV({type:E,current:T,compact:b},n),ref:S,onClick:e=>{I?w(!x):null===g||void 0===g||g(t,!1,e)},onClickCapture:v,onMouseEnter:()=>{b||null===o||void 0===o||o()},onMouseLeave:()=>{b||null===i||void 0===i||i()}},a.createElement("div",{className:jV("icon-place"),ref:C},A(r)),a.createElement("div",{className:jV("title"),title:"string"===typeof t.title?t.title:void 0},s)),f&&Boolean(null===_||void 0===_?void 0:_.current)&&a.createElement(ti,{contentClassName:jV("popup",p),open:l,keepMounted:h,placement:u,offset:d,anchorRef:_,onClose:D,modifiers:P},f()));return t.link?a.createElement("a",{href:t.link,className:jV("link")},c):c},M=N?a.createElement(we.J,{qa:j,data:N,size:k,className:jV("icon")}):null,L={icon:M,title:IV(t)};let F,z=null;const B={compact:Boolean(b),collapsed:!1,item:t,ref:S};return"function"===typeof t.itemWrapper?(F=t.itemWrapper(L,R,B),z=y&&t.itemWrapper(L,(e=>{let{icon:t}=e;return A(t)}),B)):(F=R(L),z=y&&A(M)),a.createElement(a.Fragment,null,y&&a.createElement(SV,{iconNode:z,iconRef:C,onClick:e=>null===g||void 0===g?void 0:g(t,!1,e),onClickCapture:v}),F,x&&I&&(null===r||void 0===r?void 0:r.length)&&Boolean(null===_||void 0===_?void 0:_.current)&&a.createElement(RV,Object.assign({},e,{anchorRef:S,onClose:()=>w(!1)})))};function RV(e){let{onItemClick:t,collapseItems:n,anchorRef:r,onClose:i}=e;const{compact:o}=bV();return(null===n||void 0===n?void 0:n.length)?a.createElement(ti,{placement:CV,open:!0,anchorRef:r,onClose:i},a.createElement("div",{className:jV("collapse-items-popup-content")},a.createElement(Sx,{itemClassName:jV("root-collapse-item"),items:n,selectedItemIndex:NV(n),itemHeight:EV,itemsHeight:n.length*EV,virtualized:!1,filterable:!1,sortable:!1,onItemClick:i,renderItem:e=>{const n=n=>{let{title:r}=n;const i=a.createElement("div",{className:jV("collapse-item"),onClick:n=>{null===t||void 0===t||t(e,!0,n)}},r);return e.link?a.createElement("a",{href:e.link,className:jV("link")},i):i},i={title:IV(e)},s={compact:Boolean(o),collapsed:!0,item:e,ref:r};return"function"===typeof e.itemWrapper?e.itemWrapper(i,n,s):n(i)}}))):null}AV.displayName="Item";Mi(".gn-footer-item{height:40px;width:100%}");const MV=(0,Ri.b)("footer-item"),LV=e=>{var{item:t}=e,n=Je(e,["item"]);return a.createElement(AV,Object.assign({},n,{item:Object.assign({iconSize:18},t),className:MV({compact:n.compact}),onItemClick:t.onItemClick,onItemClickCapture:t.onItemClickCapture}))},FV=a.memo((e=>{let{renderContent:t,size:n}=e;return a.createElement(a.Fragment,null,t({size:n}))}));FV.displayName="RenderContent";const zV=e=>{let{size:t,className:n,cssSizeVariableName:r="--gn-aside-header-size",renderContent:i,children:o}=e;return a.createElement("div",{className:n,style:Object.assign({},{[r]:"".concat(t,"px")})},"function"===typeof i?a.createElement(FV,{size:t,renderContent:i}):o)};var BV=n(50528);Mi('.g-root{--gn-aside-top-panel-height:0px}.gn-aside-header{--gn-aside-header-min-width:56px;--_--item-icon-background-size:38px;--_--background-color:var(--g-color-base-background);--_--decoration-collapsed-background-color:var(--g-color-base-warning-light);--_--decoration-expanded-background-color:var(--g-color-base-warning-light);--_--vertical-divider-line-color:var(--g-color-line-generic);--_--horizontal-divider-line-color:var(--g-color-line-generic);background-color:var(--g-color-base-background);height:100%;position:relative;width:100%}.gn-aside-header__aside{background-color:var(--gn-aside-header-background-color,var(--_--background-color));box-sizing:border-box;display:flex;flex-direction:column;height:100vh;left:0;margin-top:var(--gn-aside-top-panel-height);max-height:calc(100vh - var(--gn-aside-top-panel-height));position:sticky;top:var(--gn-aside-top-panel-height);width:inherit;z-index:100}.gn-aside-header__aside:after{background-color:var(--gn-aside-header-divider-vertical-color,var(--_--vertical-divider-line-color));content:"";height:100%;position:absolute;right:0;top:0;width:1px;z-index:2}.gn-aside-header__aside-popup-anchor{inset:0;position:absolute;z-index:1}.gn-aside-header__aside-content{--gradient-height:334px;display:flex;flex-direction:column;height:inherit;overflow-x:hidden;position:relative;user-select:none;width:inherit;z-index:2}.gn-aside-header__aside-content>.gn-aside-header-logo{margin:8px 0}.gn-aside-header__aside-content_with-decoration{background:linear-gradient(180deg,var(--gn-aside-header-decoration-expanded-background-color,var(--_--decoration-expanded-background-color)) calc(var(--gradient-height)*.33),transparent calc(var(--gradient-height)*.88))}.gn-aside-header__aside-custom-background{bottom:0;display:flex;position:absolute;top:0;z-index:-1}.gn-aside-header_compact .gn-aside-header__aside-content{background:transparent}.gn-aside-header__header{--gn-aside-header-header-divider-height:29px;box-sizing:border-box;flex:none;padding-bottom:22px;padding-top:8px;position:relative;width:100%;z-index:1}.gn-aside-header__header .gn-aside-header__header-divider{bottom:0;color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));display:none;left:0;position:absolute;z-index:-2}.gn-aside-header__header_with-decoration:before{background-color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));content:"";display:none;height:calc(100% - var(--gn-aside-header-header-divider-height));left:0;position:absolute;top:0;width:100%;z-index:-2}.gn-aside-header__header:after{background-color:var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));bottom:12px;content:"";height:1px;left:0;position:absolute;width:100%;z-index:-2}.gn-aside-header_compact .gn-aside-header__header:before,.gn-aside-header_compact .gn-aside-header__header_with-decoration .gn-aside-header__header-divider{display:block}.gn-aside-header_compact .gn-aside-header__header_with-decoration:after{display:none}.gn-aside-header__logo-button-wrapper{width:var(--gn-aside-header-min-width)}.gn-aside-header__logo-button[class],.gn-aside-header__logo-button[class] .g-button__icon{height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size))}.gn-aside-header__menu-items{flex-grow:1}.gn-aside-header__footer{display:flex;flex-direction:column;flex-shrink:0;margin:8px 0;width:100%}.gn-aside-header__panels{inset:var(--gn-aside-top-panel-height) 0 0;max-height:calc(100vh - var(--gn-aside-top-panel-height));overflow:auto;position:fixed;z-index:98}.gn-aside-header__panel{height:100%}.gn-aside-header__pane-container{display:flex;flex-direction:row;outline:none;overflow:visible;user-select:text}.gn-aside-header__pane-top-divider{background-color:var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));height:1px;margin-top:-1px}.gn-aside-header__pane-top{background:var(--g-color-base-background);position:fixed;top:0;width:100%;z-index:98}.gn-aside-header__pane-top-alert_centered{display:flex;justify-content:space-around}.gn-aside-header__pane-top-alert_dense{padding-bottom:var(--g-spacing-2);padding-top:var(--g-spacing-2)}.gn-aside-header__content{margin-top:var(--gn-aside-top-panel-height);width:calc(100% - var(--gn-aside-header-size));z-index:95}.gn-aside-header__collapse-button{--g-button-background-color-hover:transparent;border-top:1px solid var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));box-sizing:border-box;flex:none;height:20px;margin-top:auto;overflow:hidden;width:100%}.gn-aside-header__collapse-button>.g-button__text{align-items:center;display:flex;height:20px;justify-content:center}.gn-aside-header__collapse-button:not(.gn-aside-header__collapse-button_compact) .gn-aside-header__collapse-icon{transform:rotate(180deg)}.gn-aside-header__collapse-button .gn-aside-header__collapse-icon{color:var(--g-color-text-secondary)}.gn-aside-header__collapse-button:hover .gn-aside-header__collapse-icon{color:var(--g-color-text-primary)}');const UV=a.lazy((()=>n.e(328).then(n.bind(n,30328)).then((e=>({default:e.TopPanel}))))),HV=Object.assign((e=>{let{compact:t,className:n,children:r,topAlert:i}=e;const o=t?56:236,s=(0,a.useMemo)((()=>({size:o,compact:t})),[t,o]);return a.createElement(yV,{value:s},a.createElement("div",{className:(0,BV.b)({compact:t},n),style:Object.assign({},{"--gn-aside-header-size":"".concat(o,"px")})},i&&a.createElement(a.Suspense,{fallback:null},a.createElement(UV,{topAlert:i})),a.createElement("div",{className:(0,BV.b)("pane-container")},r)))}),{Content:e=>{let{children:t,renderContent:n}=e;const{size:r}=bV();return a.createElement(zV,{size:r,className:(0,BV.b)("content"),renderContent:n},t)}}),VV=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M10.5 2.255v-.01c.003-.03.013-.157-.361-.35C9.703 1.668 8.966 1.5 8 1.5c-.967 0-1.703.169-2.138.394-.375.194-.365.32-.362.351v.01c-.003.03-.013.157.362.35C6.297 2.832 7.033 3 8 3c.967 0 1.703-.169 2.139-.394.374-.194.364-.32.361-.351ZM8 4.5c.506 0 .99-.04 1.436-.118l.84 2.352.253.707.717.221c.648.2 1.055.44 1.277.65.192.18.227.31.227.438 0 .14-.055.488-.937.878-.869.384-2.2.622-3.813.622s-2.944-.238-3.813-.622c-.882-.39-.937-.738-.937-.878 0-.128.035-.259.227-.439.222-.209.629-.448 1.277-.649l.717-.221.253-.707.84-2.352c.445.079.93.118 1.436.118Zm4-2.25c0 .738-.433 1.294-1.136 1.669l.825 2.31c1.553.48 2.561 1.32 2.561 2.52 0 1.854-2.402 2.848-5.5 2.985V15a.75.75 0 0 1-1.5 0v-3.266c-3.098-.136-5.5-1.131-5.5-2.984 0-1.2 1.008-2.04 2.561-2.52l.825-2.311C4.433 3.544 4 2.988 4 2.25 4 .75 5.79 0 8 0s4 .75 4 2.25Z",clipRule:"evenodd"})),GV=e=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M10.5 2.255v-.01c.003-.03.013-.157-.361-.35C9.703 1.668 8.966 1.5 8 1.5c-.967 0-1.703.169-2.138.394-.375.194-.365.32-.362.351v.01c-.003.03-.013.157.362.35C6.297 2.832 7.033 3 8 3c.967 0 1.703-.169 2.139-.394.374-.194.364-.32.361-.351ZM12 2.25c0 .738-.433 1.294-1.136 1.669l.825 2.31c1.553.48 2.561 1.32 2.561 2.52 0 1.854-2.402 2.848-5.5 2.985V15a.75.75 0 0 1-1.5 0v-3.266c-3.098-.136-5.5-1.131-5.5-2.984 0-1.2 1.008-2.04 2.561-2.52l.825-2.311C4.433 3.544 4 2.988 4 2.25 4 .75 5.79 0 8 0s4 .75 4 2.25Z",clipRule:"evenodd"}));var WV;function qV(){return qV=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},qV.apply(this,arguments)}var ZV=function(e){return a.createElement("svg",qV({width:56,height:29,viewBox:"0 0 56 29",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},e),WV||(WV=a.createElement("path",{d:"M56 0v29c-.8-1-7-6.1-17.7-8.4L13 15.7A16 16 0 0 1 0 0Z"})))};function YV(){return YV=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},YV.apply(this,arguments)}function KV(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}function QV(e,t){return QV=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},QV(e,t)}function XV(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,QV(e,t)}var $V,JV,eG,tG;function nG(){if(JV)return $V;JV=1;return $V="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}function rG(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}(function(){if(tG)return eG;tG=1;var e=nG();function t(){}function n(){}return n.resetWarningCache=t,eG=function(){function r(t,n,r,i,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 i(){return r}r.isRequired=r;var o={array:r,bigint:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:i,element:r,elementType:r,instanceOf:i,node:r,objectOf:i,oneOf:i,oneOfType:i,shape:i,exact:i,checkPropTypes:n,resetWarningCache:t};return o.PropTypes=o,o}})()();var iG=!1,oG=a.createContext(null),aG=function(e){return e.scrollTop},sG="unmounted",lG="exited",cG="entering",uG="entered",dG="exiting",hG=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var i,o=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?o?(i=lG,r.appearStatus=cG):i=uG:i=t.unmountOnExit||t.mountOnEnter?sG:lG,r.state={status:i},r.nextCallback=null,r}XV(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===sG?{status:lG}: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!==cG&&n!==uG&&(t=cG):n!==cG&&n!==uG||(t=dG)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!==typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.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===cG){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:Dt.findDOMNode(this);n&&aG(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===lG&&this.setState({status:sG})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,i=this.props.nodeRef?[r]:[Dt.findDOMNode(this),r],o=i[0],a=i[1],s=this.getTimeouts(),l=r?s.appear:s.enter;!e&&!n||iG?this.safeSetState({status:uG},(function(){t.props.onEntered(o)})):(this.props.onEnter(o,a),this.safeSetState({status:cG},(function(){t.props.onEntering(o,a),t.onTransitionEnd(l,(function(){t.safeSetState({status:uG},(function(){t.props.onEntered(o,a)}))}))})))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:Dt.findDOMNode(this);t&&!iG?(this.props.onExit(r),this.safeSetState({status:dG},(function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:lG},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:lG},(function(){e.props.onExited(r)}))},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(r){n&&(n=!1,t.nextCallback=null,e(r))},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:Dt.findDOMNode(this),r=null==e&&!this.props.addEndListener;if(n&&!r){if(this.props.addEndListener){var i=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],o=i[0],a=i[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===sG)return null;var t=this.props,n=t.children;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;var r=KV(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return a.createElement(oG.Provider,{value:null},"function"===typeof n?n(e,r):a.cloneElement(a.Children.only(n),r))},t}(a.Component);function pG(){}hG.contextType=oG,hG.propTypes={},hG.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:pG,onEntering:pG,onEntered:pG,onExit:pG,onExiting:pG,onExited:pG},hG.UNMOUNTED=sG,hG.EXITED=lG,hG.ENTERING=cG,hG.ENTERED=uG,hG.EXITING=dG;var fG=function(e,t){return e&&t&&t.split(" ").forEach((function(t){return r=t,void((n=e).classList?n.classList.add(r):function(e,t){return e.classList?!!t&&e.classList.contains(t):-1!==(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")}(n,r)||("string"===typeof n.className?n.className=n.className+" "+r:n.setAttribute("class",(n.className&&n.className.baseVal||"")+" "+r)));var n,r}))},mG=function(e,t){return e&&t&&t.split(" ").forEach((function(t){return r=t,void((n=e).classList?n.classList.remove(r):"string"===typeof n.className?n.className=rG(n.className,r):n.setAttribute("class",rG(n.className&&n.className.baseVal||"",r)));var n,r}))},gG=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return(t=e.call.apply(e,[this].concat(r))||this).appliedClasses={appear:{},enter:{},exit:{}},t.onEnter=function(e,n){var r=t.resolveArguments(e,n),i=r[0],o=r[1];t.removeClasses(i,"exit"),t.addClass(i,o?"appear":"enter","base"),t.props.onEnter&&t.props.onEnter(e,n)},t.onEntering=function(e,n){var r=t.resolveArguments(e,n),i=r[0],o=r[1]?"appear":"enter";t.addClass(i,o,"active"),t.props.onEntering&&t.props.onEntering(e,n)},t.onEntered=function(e,n){var r=t.resolveArguments(e,n),i=r[0],o=r[1]?"appear":"enter";t.removeClasses(i,o),t.addClass(i,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,r="string"===typeof n,i=r?""+(r&&n?n+"-":"")+e:n[e];return{baseClassName:i,activeClassName:r?i+"-active":n[e+"Active"],doneClassName:r?i+"-done":n[e+"Done"]}},t}XV(t,e);var n=t.prototype;return n.addClass=function(e,t,n){var r=this.getClassNames(t)[n+"ClassName"],i=this.getClassNames("enter").doneClassName;"appear"===t&&"done"===n&&i&&(r+=" "+i),"active"===n&&e&&aG(e),r&&(this.appliedClasses[t][n]=r,fG(e,r))},n.removeClasses=function(e,t){var n=this.appliedClasses[t],r=n.base,i=n.active,o=n.done;this.appliedClasses[t]={},r&&mG(e,r),i&&mG(e,i),o&&mG(e,o)},n.render=function(){var e=this.props;e.classNames;var t=KV(e,["classNames"]);return a.createElement(hG,YV({},t,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},t}(a.Component);function vG(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 yG(e,t,n){return null!=n[t]?n[t]:e.props[t]}function bG(e,t,n){var r=vG(e.children),i=function(e,t){function n(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var r,i=Object.create(null),o=[];for(var a in e)a in t?o.length&&(i[a]=o,o=[]):o.push(a);var s={};for(var l in t){if(i[l])for(r=0;r<i[l].length;r++){var c=i[l][r];s[i[l][r]]=n(c)}s[l]=n(l)}for(r=0;r<o.length;r++)s[o[r]]=n(o[r]);return s}(t,r);return Object.keys(i).forEach((function(o){var s=i[o];if((0,a.isValidElement)(s)){var l=o in t,c=o in r,u=t[o],d=(0,a.isValidElement)(u)&&!u.props.in;!c||l&&!d?c||!l||d?c&&l&&(0,a.isValidElement)(u)&&(i[o]=(0,a.cloneElement)(s,{onExited:n.bind(null,s),in:u.props.in,exit:yG(s,"exit",e),enter:yG(s,"enter",e)})):i[o]=(0,a.cloneElement)(s,{in:!1}):i[o]=(0,a.cloneElement)(s,{onExited:n.bind(null,s),in:!0,exit:yG(s,"exit",e),enter:yG(s,"enter",e)})}})),i}gG.defaultProps={classNames:""},gG.propTypes={};var xG,wG,SG=Object.values||function(e){return Object.keys(e).map((function(t){return e[t]}))},_G=function(e){function t(t,n){var r,i=(r=e.call(this,t,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}(r));return r.state={contextValue:{isMounting:!0},handleExited:i,firstRender:!0},r}XV(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,r,i=t.children,o=t.handleExited;return{children:t.firstRender?(n=e,r=o,vG(n.children,(function(e){return(0,a.cloneElement)(e,{onExited:r.bind(null,e),in:!0,appear:yG(e,"appear",n),enter:yG(e,"enter",n),exit:yG(e,"exit",n)})}))):bG(e,i,o),firstRender:!1}},n.handleExited=function(e,t){var n=vG(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState((function(t){var n=YV({},t.children);return delete n[e.key],{children:n}})))},n.render=function(){var e=this.props,t=e.component,n=e.childFactory,r=KV(e,["component","childFactory"]),i=this.state.contextValue,o=SG(this.state.children).map(n);return delete r.appear,delete r.enter,delete r.exit,null===t?a.createElement(oG.Provider,{value:i},o):a.createElement(oG.Provider,{value:i},a.createElement(t,r,o))},t}(a.Component);_G.propTypes={},_G.defaultProps={component:"div",childFactory:function(e){return e}},(function(e){function t(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return(t=e.call.apply(e,[this].concat(r))||this).handleEnter=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t.handleLifecycle("onEnter",0,n)},t.handleEntering=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t.handleLifecycle("onEntering",0,n)},t.handleEntered=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t.handleLifecycle("onEntered",0,n)},t.handleExit=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t.handleLifecycle("onExit",1,n)},t.handleExiting=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t.handleLifecycle("onExiting",1,n)},t.handleExited=function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t.handleLifecycle("onExited",1,n)},t}XV(t,e);var n=t.prototype;return n.handleLifecycle=function(e,t,n){var r,i=this.props.children,o=a.Children.toArray(i)[t];if(o.props[e]&&(r=o.props)[e].apply(r,n),this.props[e]){var s=o.props.nodeRef?void 0:Dt.findDOMNode(this);this.props[e](s)}},n.render=function(){var e=this.props,t=e.children,n=e.in,r=KV(e,["children","in"]),i=a.Children.toArray(t),o=i[0],s=i[1];return delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,a.createElement(_G,r,n?a.cloneElement(o,{key:"first",onEnter:this.handleEnter,onEntering:this.handleEntering,onEntered:this.handleEntered}):a.cloneElement(s,{key:"second",onEnter:this.handleExit,onEntering:this.handleExiting,onEntered:this.handleExited}))},t}(a.Component)).propTypes={};var CG="out-in",EG="in-out",TG=function(e,t,n){return function(){var r;e.props[t]&&(r=e.props)[t].apply(r,arguments),n()}},OG=((xG={})[CG]=function(e){var t=e.current,n=e.changeState;return a.cloneElement(t,{in:!1,onExited:TG(t,"onExited",(function(){n(cG,null)}))})},xG[EG]=function(e){var t=e.current,n=e.changeState,r=e.children;return[t,a.cloneElement(r,{in:!0,onEntered:TG(r,"onEntered",(function(){n(cG)}))})]},xG),NG=((wG={})[CG]=function(e){var t=e.children,n=e.changeState;return a.cloneElement(t,{in:!0,onEntered:TG(t,"onEntered",(function(){n(uG,a.cloneElement(t,{in:!0}))}))})},wG[EG]=function(e){var t=e.current,n=e.children,r=e.changeState;return[a.cloneElement(t,{in:!1,onExited:TG(t,"onExited",(function(){r(uG,a.cloneElement(n,{in:!0}))}))}),a.cloneElement(n,{in:!0})]},wG),kG=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return(t=e.call.apply(e,[this].concat(r))||this).state={status:uG,current:null},t.appeared=!1,t.changeState=function(e,n){void 0===n&&(n=t.state.current),t.setState({status:e,current:n})},t}XV(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===cG&&e.mode===EG?{status:cG}:!t.current||(n=t.current,r=e.children,n===r||a.isValidElement(n)&&a.isValidElement(r)&&null!=n.key&&n.key===r.key)?{current:a.cloneElement(e.children,{in:!0})}:{status:dG};var n,r},n.render=function(){var e,t=this.props,n=t.children,r=t.mode,i=this.state,o=i.status,s=i.current,l={children:n,current:s,changeState:this.changeState,status:o};switch(o){case cG:e=NG[r](l);break;case dG:e=OG[r](l);break;case uG:e=s}return a.createElement(oG.Provider,{value:{isMounting:!this.appeared}},e)},t}(a.Component);kG.propTypes={},kG.defaultProps={mode:CG};Mi(".gn-drawer__item{background-color:var(--g-color-base-background);bottom:0;height:100%;left:0;position:absolute;top:0;will-change:transform}.gn-drawer__item_direction_right{left:auto;right:0}.gn-drawer__item-transition-enter{transform:translate(-100%)}.gn-drawer__item-transition_direction_right-enter{transform:translate(100%)}.gn-drawer__item-transition-enter-active,.gn-drawer__item-transition_direction_right-enter-active{transform:translate(0);transition:transform .3s}.gn-drawer__item-transition-enter-done,.gn-drawer__item-transition_direction_right-enter-done{filter:blur(0);transform:translateZ(0)}.gn-drawer__item-transition-exit,.gn-drawer__item-transition_direction_right-exit{transform:translate(0)}.gn-drawer__item-transition-exit-active,.gn-drawer__item-transition_direction_right-exit-active{transition:transform .3s}.gn-drawer__item-transition-exit-active{transform:translate(-100%)}.gn-drawer__item-transition_direction_right-exit-active{transform:translate(100%)}.gn-drawer__item-transition-exit-done,.gn-drawer__item-transition_direction_right-exit-done{visibility:hidden}.gn-drawer__veil{background-color:var(--g-color-sfx-veil);inset:0;position:absolute}.gn-drawer__veil-transition-enter{opacity:0}.gn-drawer__veil-transition-enter-active{opacity:1;transition:opacity .3s}.gn-drawer__veil-transition-exit{opacity:1}.gn-drawer__veil-transition-exit-active{opacity:0;transition:opacity .3s}.gn-drawer__veil-transition-exit-done{visibility:hidden}");const jG=(0,Ri.b)("drawer"),IG=e=>{let{visible:t,content:n,direction:r,className:i}=e;const o=a.useRef(null),s="left"===r?void 0:r;return a.createElement(gG,{in:t,timeout:300,unmountOnExit:!0,classNames:jG("item-transition",{direction:s}),nodeRef:o},a.createElement("div",{ref:o,className:jG("item",{direction:s},i)},n))},PG=e=>{let{className:t,children:n,style:r,onVeilClick:i,onEscape:o,preventScrollBody:s=!0}=e,l=!1;a.Children.forEach(n,(e=>{const t=e;if(t.type===IG){Boolean(t.props.visible)&&(l=!0)}})),a.useEffect((()=>{function e(e){"Escape"===e.key&&(null===o||void 0===o||o())}return l&&window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}),[o,l]),Jx({enabled:s&&l});const c=a.useRef(null),u=a.useRef(null);return a.createElement(hG,{in:l,timeout:{enter:0,exit:300},mountOnEnter:!0,unmountOnExit:!0,nodeRef:c},(e=>{const o=l&&"entered"===e;return a.createElement("div",{ref:c,className:jG(null,t),style:r},a.createElement(gG,{in:o,timeout:300,unmountOnExit:!0,classNames:jG("veil-transition"),nodeRef:u},a.createElement("div",{ref:u,className:jG("veil"),onClick:i})),a.Children.map(n,(e=>{const t=e;if(t.type===IG){const e=Boolean(t.props.visible);return a.cloneElement(t,Object.assign(Object.assign({},t.props),{visible:e&&o}))}return e})))}))};Mi(".gn-all-pages-list-item{align-items:center;column-gap:var(--g-spacing-4);display:flex;height:40px;padding:0 var(--g-spacing-6);width:100%}.gn-all-pages-list-item__text{flex:1}.gn-all-pages-list-item__icon{color:var(--g-color-text-misc)}");const DG=(0,Ri.b)("all-pages-list-item"),AG=e=>{const{item:t,editMode:n,onToggle:r}=e,i=(0,a.useCallback)((e=>{e.stopPropagation(),e.preventDefault(),r()}),[r]);return a.createElement("div",{className:DG(),onClick:e=>{n&&(e.stopPropagation(),e.preventDefault())}},t.icon?a.createElement(we.J,{className:DG("icon"),data:t.icon,size:t.iconSize}):null,a.createElement("span",{className:DG("text")},t.title),n&&a.createElement(Ie.z,{onClick:i,view:t.hidden?"flat-secondary":"flat-action"},a.createElement(Ie.z.Icon,null,t.hidden?a.createElement(VV,null):a.createElement(GV,null))))};var RG=(0,mi.e)({en:{"menu-item.all-pages.title":"All pages","all-panel.menu.category.allOther":"All other","all-panel.resetToDefault":"Reset to default","all-panel.title.editing":"Editing","all-panel.title.main":"All pages"},ru:{"menu-item.all-pages.title":"\u0412\u0441\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b","all-panel.menu.category.allOther":"\u041e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435","all-panel.resetToDefault":"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","all-panel.title.editing":"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435","all-panel.title.main":"\u0412\u0441\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b"}},"".concat(Ri.N).concat("AllPagesPanel"));const MG="all-pages";Mi(".gn-all-pages-panel{box-sizing:border-box;height:100%;min-width:300px;padding:var(--g-spacing-4) var(--g-spacing-6)}.gn-all-pages-panel__content{flex:1;margin:0 calc(var(--g-spacing-6)*-1);overflow:auto}.gn-all-pages-panel__category{padding:0 var(--g-spacing-6)}.gn-all-pages-panel__discoverable-feature-wrapper{display:flex}");const LG=(0,Ri.b)("all-pages-panel"),FG=e=>{const{startEditIcon:t,onEditModeChanged:n,className:r}=e,{menuItems:i,onMenuItemsChanged:o}=gV(),s=(0,a.useRef)(i);s.current=i;const[l,c]=(0,a.useState)(!1),u=(0,a.useCallback)((()=>{c((e=>!e))}),[]),d=(e=>{const t=(0,a.useMemo)((()=>{const t=e.filter((e=>"divider"!==e.type&&e.id!==MG));return t.sort(((e,t)=>"action"===e.type?1:"action"===t.type?-1:0)),t.reduce(((e,t)=>{const n=t.category||RG("all-panel.menu.category.allOther");return e[n]||(e[n]=[]),e[n].push(t),e}),{})}),[e]);return t})(i);(0,a.useEffect)((()=>{null===n||void 0===n||n(l)}),[l,n]);const h=(0,a.useCallback)((e=>{var t;null===(t=e.onItemClick)||void 0===t||t.call(e,e,!1)}),[]),p=(0,a.useCallback)((e=>{if(!o)return;const t=Object.assign(Object.assign({},e),{hidden:!e.hidden}),n=s.current.filter((e=>e.id!==MG));o(n.map((e=>e.id!==t.id?e:t)))}),[o]),f=(0,a.useCallback)(((e,t,n)=>a.createElement(AG,{item:e,editMode:l,onToggle:()=>p(e)})),[l,p]),m=(0,a.useCallback)((()=>{if(!o)return;const e=s.current.filter((e=>e.id!==MG));o(e.map((e=>Object.assign(Object.assign({},e),{hidden:!1}))))}),[o]);return a.createElement(Ai.k,{className:LG(null,r),gap:"5",direction:"column"},a.createElement(Ai.k,{gap:"4",alignItems:"center",justifyContent:"space-between"},a.createElement(Fi.x,{variant:"subheader-2"},RG(l?"all-panel.title.editing":"all-panel.title.main")),a.createElement(Ie.z,{selected:l,view:"normal",onClick:u},t||a.createElement(we.J,{data:tE}))),a.createElement(Ai.k,{className:LG("content"),gap:"5",direction:"column"},Object.keys(d).map((e=>a.createElement(Ai.k,{key:e,direction:"column",gap:"3"},a.createElement(Fi.x,{className:LG("category"),variant:"body-1",color:"secondary"},e),a.createElement(Sx,{virtualized:!1,filterable:!1,items:d[e],onItemClick:h,renderItem:f}))))),l&&a.createElement(Ie.z,{onClick:m},RG("all-panel.resetToDefault")))};let zG;zG="undefined"!==typeof window?window:"undefined"!==typeof self?self:n.g;let BG=null,UG=null;const HG=zG.clearTimeout,VG=zG.setTimeout,GG=zG.cancelAnimationFrame||zG.mozCancelAnimationFrame||zG.webkitCancelAnimationFrame,WG=zG.requestAnimationFrame||zG.mozRequestAnimationFrame||zG.webkitRequestAnimationFrame;function qG(e){let t,n,r,i,o,a,s;const l="undefined"!==typeof document&&document.attachEvent;if(!l){a=function(e){const t=e.__resizeTriggers__,n=t.firstElementChild,r=t.lastElementChild,i=n.firstElementChild;r.scrollLeft=r.scrollWidth,r.scrollTop=r.scrollHeight,i.style.width=n.offsetWidth+1+"px",i.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)return;const t=this;a(this),this.__resizeRAF__&&BG(this.__resizeRAF__),this.__resizeRAF__=UG((function(){o(t)&&(t.__resizeLast__.width=t.offsetWidth,t.__resizeLast__.height=t.offsetHeight,t.__resizeListeners__.forEach((function(n){n.call(t,e)})))}))};let e=!1,l="";r="animationstart";const c="Webkit Moz O ms".split(" ");let u="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),d="";{const t=document.createElement("fakeelement");if(void 0!==t.style.animationName&&(e=!0),!1===e)for(let n=0;n<c.length;n++)if(void 0!==t.style[c[n]+"AnimationName"]){d=c[n],l="-"+d.toLowerCase()+"-",r=u[n],e=!0;break}}n="resizeanim",t="@"+l+"keyframes "+n+" { from { opacity: 0; } to { opacity: 0; } } ",i=l+"animation: 1ms "+n+"; "}return{addResizeListener:function(o,c){if(l)o.attachEvent("onresize",c);else{if(!o.__resizeTriggers__){const l=o.ownerDocument,c=zG.getComputedStyle(o);c&&"static"===c.position&&(o.style.position="relative"),function(n){if(!n.getElementById("detectElementResize")){const r=(t||"")+".resize-triggers { "+(i||"")+'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=r:a.appendChild(n.createTextNode(r)),o.appendChild(a)}}(l),o.__resizeLast__={},o.__resizeListeners__=[],(o.__resizeTriggers__=l.createElement("div")).className="resize-triggers";const u=l.createElement("div");u.className="expand-trigger",u.appendChild(l.createElement("div"));const d=l.createElement("div");d.className="contract-trigger",o.__resizeTriggers__.appendChild(u),o.__resizeTriggers__.appendChild(d),o.appendChild(o.__resizeTriggers__),a(o),o.addEventListener("scroll",s,!0),r&&(o.__resizeTriggers__.__animationListener__=function(e){e.animationName===n&&a(o)},o.__resizeTriggers__.addEventListener(r,o.__resizeTriggers__.__animationListener__))}o.__resizeListeners__.push(c)}},removeResizeListener:function(e,t){if(l)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(r,e.__resizeTriggers__.__animationListener__),e.__resizeTriggers__.__animationListener__=null);try{e.__resizeTriggers__=!e.removeChild(e.__resizeTriggers__)}catch(tD){}}}}}null==GG||null==WG?(BG=HG,UG=function(e){return VG(e,20)}):(BG=function(e){let[t,n]=e;GG(t),HG(n)},UG=function(e){const t=WG((function(){HG(n),e()})),n=VG((function(){GG(t),e()}),20);return[t,n]});class ZG extends a.Component{constructor(){super(...arguments),this.state={height:this.props.defaultHeight||0,scaledHeight:this.props.defaultHeight||0,scaledWidth:this.props.defaultWidth||0,width:this.props.defaultWidth||0},this._autoSizer=null,this._detectElementResize=null,this._parentNode=null,this._resizeObserver=null,this._timeoutId=null,this._onResize=()=>{this._timeoutId=null;const{disableHeight:e,disableWidth:t,onResize:n}=this.props;if(this._parentNode){const r=window.getComputedStyle(this._parentNode)||{},i=parseFloat(r.paddingLeft||"0"),o=parseFloat(r.paddingRight||"0"),a=parseFloat(r.paddingTop||"0"),s=parseFloat(r.paddingBottom||"0"),l=this._parentNode.getBoundingClientRect(),c=l.height-a-s,u=l.width-i-o,d=this._parentNode.offsetHeight-a-s,h=this._parentNode.offsetWidth-i-o;(e||this.state.height===d&&this.state.scaledHeight===c)&&(t||this.state.width===h&&this.state.scaledWidth===u)||(this.setState({height:d,width:h,scaledHeight:c,scaledWidth:u}),"function"===typeof n&&n({height:d,scaledHeight:c,scaledWidth:u,width:h}))}},this._setRef=e=>{this._autoSizer=e}}componentDidMount(){const{nonce:e}=this.props;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,null!=this._parentNode&&("undefined"!==typeof ResizeObserver?(this._resizeObserver=new ResizeObserver((()=>{this._timeoutId=setTimeout(this._onResize,0)})),this._resizeObserver.observe(this._parentNode)):(this._detectElementResize=qG(e),this._detectElementResize.addResizeListener(this._parentNode,this._onResize)),this._onResize()))}componentWillUnmount(){this._parentNode&&(this._detectElementResize&&this._detectElementResize.removeResizeListener(this._parentNode,this._onResize),null!==this._timeoutId&&clearTimeout(this._timeoutId),this._resizeObserver&&(this._resizeObserver.observe(this._parentNode),this._resizeObserver.disconnect()))}render(){const{children:e,defaultHeight:t,defaultWidth:n,disableHeight:r=!1,disableWidth:i=!1,nonce:o,onResize:s,style:l={},tagName:c="div",...u}=this.props,{height:d,scaledHeight:h,scaledWidth:p,width:f}=this.state,m={overflow:"visible"},g={};let v=!1;return r||(0===d&&(v=!0),m.height=0,g.height=d,g.scaledHeight=h),i||(0===f&&(v=!0),m.width=0,g.width=f,g.scaledWidth=p),(0,a.createElement)(c,{ref:this._setRef,style:{...m,...l},...u},!v&&e(g))}}const YG={active:!1,activeIndex:void 0,hideCollapseItemTooltip:!1,lastClickedItemIndex:void 0,setValue:()=>{}},KG=a.createContext(YG);class QG extends a.PureComponent{constructor(){super(...arguments),this.state=Object.assign({},YG),this.setValue=e=>{this.setState(Object.assign({},e))}}render(){const{children:e}=this.props;return a.createElement(KG.Provider,{value:Object.assign(Object.assign({},this.state),{setValue:this.setValue})},e)}}Mi('.g-root_theme_dark .gn-multiple-tooltip,.g-root_theme_dark-hc .gn-multiple-tooltip{--multiple-tooltip-item-active-bg-color:var(--g-color-base-float-heavy);--multiple-tooltip-backdrop-background:linear-gradient(90deg,var(--g-color-base-background) 50%,transparent);--multiple-tooltip-backdrop-filter:blur(16px)}.g-root_theme_light .gn-multiple-tooltip,.g-root_theme_light-hc .gn-multiple-tooltip{--multiple-tooltip-item-active-bg-color:var(--g-color-base-float-heavy);--multiple-tooltip-backdrop-background:linear-gradient(90deg,var(--g-color-base-background) 50%,transparent);--multiple-tooltip-backdrop-filter:blur(12px)}.gn-multiple-tooltip.gn-multiple-tooltip{background-color:transparent;box-shadow:none}.gn-multiple-tooltip:before{background:var(--multiple-tooltip-backdrop-background);box-shadow:none;content:"";filter:var(--multiple-tooltip-backdrop-filter);height:100%;opacity:.7;position:absolute;width:100%;z-index:-1}.gn-multiple-tooltip__items-container{align-items:flex-start;display:flex;flex-direction:column;padding:32px 40px 32px 12px}.gn-multiple-tooltip__item{align-items:center;background-color:var(--g-color-base-float-medium);border-radius:5px;box-sizing:border-box;color:var(--g-color-text-light-primary);display:flex;height:30px;margin-bottom:5px;padding:8px 12px;position:relative;transition:transform .1s ease-in-out}.gn-multiple-tooltip__item:first-child,.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider)+.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider){margin-top:5px}.gn-multiple-tooltip__item_divider+.gn-multiple-tooltip__item:not(.gn-multiple-tooltip__item_divider){margin-top:4px}.gn-multiple-tooltip__item_active{background-color:var(--multiple-tooltip-item-active-bg-color);transform:translateX(-12px)}.gn-multiple-tooltip__item_divider{height:15px;margin:0;visibility:hidden}');const XG=(0,Ri.b)("multiple-tooltip"),$G=[-32,4],JG=[{name:"preventOverflow",enabled:!1}],eW=e=>{let{items:t,open:n,anchorRef:r,placement:i}=e;const{activeIndex:o,hideCollapseItemTooltip:s}=a.useContext(KG),l=void 0===o?null:t[o];return a.createElement(ti,{open:n,anchorRef:r,placement:i,offset:$G,contentClassName:XG(null),modifiers:JG,disableLayer:!0},a.createElement("div",{className:XG("items-container")},t.filter((e=>{let{type:t="regular",id:n}=e;return!s||n!==_V&&"action"!==t})).map(((e,t)=>"divider"===e.type?a.createElement("div",{className:XG("item",{divider:!0}),key:t},e.title):a.createElement("div",{className:XG("item",{active:e===l}),key:t},e.title)))))};Mi(".gn-composite-bar{flex:1 0 auto;min-height:40px;width:100%}.gn-composite-bar .gn-composite-bar__root-menu-item[class]{background-color:transparent}");const tW=(0,Ri.b)("composite-bar"),nW=e=>{let{type:t,items:n,onItemClick:r,collapseItems:i,multipleTooltip:o=!1}=e;const s=(0,a.useRef)(null),l=(0,a.useRef)(null),{setValue:c,active:u,activeIndex:d,lastClickedItemIndex:h}=(0,a.useContext)(KG),{compact:p}=bV();a.useEffect((()=>{function e(){o&&u&&c({active:!1})}return window.addEventListener("blur",e),()=>{window.removeEventListener("blur",e)}}),[o,u,c]);const f=(0,a.useCallback)((e=>{o&&p&&!u&&document.hasFocus()&&d!==h&&e.clientX<=56&&(null===c||void 0===c||c({active:!0}))}),[o,p,u,d,h,c]),m=(0,a.useCallback)((()=>{o&&u&&document.hasFocus()&&(null===c||void 0===c||c({active:!1,lastClickedItemIndex:void 0}))}),[o,u,c]),g=(0,a.useCallback)((e=>()=>{if(o&&document.hasFocus()){let t=u;if(u||e===h||(t=!0),d===e&&u===t)return;c({activeIndex:e,active:t})}}),[o,u,h,d,c]),v=(0,a.useCallback)((()=>{var e;p&&document.hasFocus()&&(null===(e=s.current)||void 0===e||e.activateItem(void 0),!o||void 0===d&&void 0===h||c({activeIndex:void 0,lastClickedItemIndex:void 0}))}),[d,p,h,o,c]),y=(0,a.useCallback)((e=>(t,n,i)=>{p&&o&&e!==h&&t.id!==_V&&c({lastClickedItemIndex:e,active:!1}),null===r||void 0===r||r(t,n,i)}),[p,h,o,r,c]);return a.createElement(a.Fragment,null,a.createElement("div",{ref:l,onMouseEnter:f,onMouseLeave:m},a.createElement(Sx,{ref:s,items:n,selectedItemIndex:"menu"===t?NV(n):void 0,itemHeight:TV,itemsHeight:OV,itemClassName:tW("root-menu-item"),virtualized:!1,filterable:!1,sortable:!1,renderItem:(e,t,n)=>{const r=kV(e)?{item:e}:e,s=kV(e)?!o:e.enableTooltip;return a.createElement(AV,Object.assign({},r,{enableTooltip:s,onMouseEnter:g(n),onMouseLeave:v,onItemClick:y(n),collapseItems:i}))}})),"menu"===t&&o&&a.createElement(eW,{open:p&&u,anchorRef:l,placement:["right-start"],items:n}))},rW=e=>{let t,{type:n,items:r,menuMoreTitle:i,onItemClick:o,multipleTooltip:s=!1}=e;if(0===r.length)return null;if("menu"===n){const e=function(e){const t=function(e){const t=[];for(const n of e)(n.pinned||"divider"===n.type&&t.length>0&&"divider"!==t[t.length-1].type)&&t.push(n);return t}(e),n=e.filter((e=>e.afterMoreButton));return OV(t)+OV(n)+(t.length===e.length?0:xV)}(r),n=function(e){return{id:_V,title:e,icon:k_,iconSize:18}}(i);t=a.createElement("div",{className:tW({autosizer:!0}),style:{minHeight:e}},0!==r.length&&a.createElement(ZG,null,(e=>{const t=Number.isNaN(e.width)?0:e.width,i=Number.isNaN(e.height)?0:e.height,{listItems:l,collapseItems:c}=function(e,t,n){var r,i,o;const a=e.filter((e=>e.afterMoreButton)),s=e.filter((e=>!e.afterMoreButton)),l=[...s,...a],c=OV(l);if(c<=t)return{listItems:l,collapseItems:[]};const u=TV(n);l.splice(s.length,0,n);const d=[];let h=c+u,p=l.length;for(;h>t&&0!==p;){p--;const e=l[p];e.pinned||e.id===_V||e.afterMoreButton||("divider"!==e.type?(h-=TV(e),d.unshift(...l.splice(p,1))):p+1<l.length&&"divider"===(null===(r=l[p+1])||void 0===r?void 0:r.type)&&(h-=TV(e),l.splice(p,1)))}return"divider"!==(null===(i=l[p])||void 0===i?void 0:i.type)||0!==p&&"divider"!==(null===(o=l[p-1])||void 0===o?void 0:o.type)||l.splice(p,1),{listItems:l,collapseItems:d}}(r,i,n);return a.createElement("div",{style:{width:t,height:i}},a.createElement(nW,{type:"menu",items:l,onItemClick:o,collapseItems:c,multipleTooltip:s}))})))}else t=a.createElement("div",{className:tW({subheader:!0})},a.createElement(nW,{type:"subheader",items:r,onItemClick:o}));return a.createElement(QG,null,t)};var iW={button_collapse:"Collapse",button_expand:"Expand",label_more:"More"},oW={button_collapse:"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c",button_expand:"\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c",label_more:"\u0415\u0449\u0451"};var aW,sW=(0,mi.e)({en:iW,ru:oW},"".concat(Ri.N).concat("AsideHeader"));function lW(){return lW=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},lW.apply(this,arguments)}var cW=function(e){return a.createElement("svg",lW({width:8,height:8,viewBox:"0 0 8 8",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},e),aW||(aW=a.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"})))};const uW=function(e,t){const n=e=>a.createElement(t,Object.assign({},e));return n.displayName=e,n}("NotIcon",we.J),dW=()=>{const{onChangeCompact:e,compact:t,expandTitle:n,collapseTitle:r}=gV(),i=(0,a.useCallback)((()=>{null===e||void 0===e||e(!t)}),[t,e]),o=t?n||sW("button_expand"):r||sW("button_collapse");return a.createElement(Ie.z,{className:(0,BV.b)("collapse-button",{compact:t}),view:"flat",pin:"brick-brick",onClick:i,title:o},a.createElement(uW,{data:cW,className:(0,BV.b)("collapse-icon"),width:"16",height:"10"}))};Mi(".gn-logo{height:40px}.gn-logo,.gn-logo__logo-btn-place{align-items:center;display:flex;flex-shrink:0}.gn-logo__logo-btn-place{cursor:pointer;justify-content:center}.gn-logo__logo-btn-place .g-button:before{background-color:transparent}.gn-logo__logo{cursor:pointer;font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-2-line-height);vertical-align:middle}.gn-logo__logo-link,.gn-logo__logo-link:active,.gn-logo__logo-link:focus,.gn-logo__logo-link:hover,.gn-logo__logo-link:visited{color:inherit;outline:none;text-decoration:none}.g-root .gn-logo__btn-logo.button2_theme_flat.button2_hovered_yes:before{background-color:transparent}");const hW=(0,Ri.b)("logo"),pW=e=>{let{text:t,icon:n,iconSrc:r,iconClassName:i,iconSize:o=24,textSize:s=15,href:l,target:c="_self",wrapper:u,onClick:d,compact:h,className:p,buttonWrapperClassName:f,buttonClassName:m,"aria-label":g,"aria-labelledby":v}=e;const y="function"===typeof u;let b;r?b=a.createElement(Ie.z.Icon,{className:i},a.createElement("img",{alt:"logo icon",src:r,width:o,height:o})):n&&(b=a.createElement(we.J,{data:n,size:o,className:i}));const x=a.createElement(Ie.z,{view:"flat",size:"l",className:hW("btn-logo",m),component:y?"span":void 0,onClick:d,target:c,rel:"_self"===c?void 0:"noreferrer",href:l,extraProps:{"aria-label":g,"aria-labelledby":v}},b);let w;return w="function"===typeof t?t():a.createElement("div",{className:hW("logo"),style:{fontSize:s}},t),a.createElement("div",{className:hW(null,p)},a.createElement("div",{className:hW("logo-btn-place",f)},y?u(x,Boolean(h)):x),!h&&(y?a.createElement("div",{onClick:d},u(w,Boolean(h))):a.createElement("a",{href:null!==l&&void 0!==l?l:"/",target:c,rel:"_self"===c?void 0:"noreferrer",className:hW("logo-link"),onClick:d},w)))},fW=[],mW=()=>{const{logo:e,onItemClick:t,onClosePanel:n,headerDecoration:r,subheaderItems:i}=gV(),{compact:o}=bV(),{onClick:s}=e,l=(0,a.useCallback)((e=>{null===n||void 0===n||n(),null===s||void 0===s||s(e)}),[n,s]);return a.createElement("div",{className:(0,BV.b)("header",{"with-decoration":r})},a.createElement(pW,Object.assign({},e,{onClick:l,compact:o,buttonWrapperClassName:(0,BV.b)("logo-button-wrapper"),buttonClassName:(0,BV.b)("logo-button")})),a.createElement(rW,{type:"subheader",items:i||fW,onItemClick:t}),a.createElement(we.J,{data:ZV,className:(0,BV.b)("header-divider"),width:56,height:29}))},gW=()=>{const{panelItems:e,onClosePanel:t,size:n}=gV();return e?a.createElement(PG,{className:(0,BV.b)("panels"),onVeilClick:t,onEscape:t,style:{left:n}},e.map((e=>a.createElement(IG,Object.assign({key:e.id},e))))):null},vW=a.forwardRef(((e,t)=>{const{size:n,onItemClick:r,headerDecoration:i,multipleTooltip:o,menuMoreTitle:s,renderFooter:l,compact:c,customBackground:u,customBackgroundClassName:d,className:h,hideCollapseButton:p}=gV(),f=(()=>{const{menuItems:e,allPagesIsAvailable:t}=gV();return(0,a.useMemo)((()=>{if(!t)return e;let n=0;return e.filter(((e,t,r)=>!e.hidden&&(!(t>0&&"divider"===e.type)||"divider"!==r[n].type&&!r[n].hidden)&&(n=t,!0)))}),[t,e])})(),m=(0,a.useRef)(null);return a.useEffect((()=>{Ct(t,m.current)}),[t]),a.createElement(a.Fragment,null,a.createElement("div",{className:(0,BV.b)("aside",h),style:{width:n}},a.createElement("div",{className:(0,BV.b)("aside-popup-anchor"),ref:m}),a.createElement("div",{className:(0,BV.b)("aside-content",{"with-decoration":i})},u&&a.createElement("div",{className:(0,BV.b)("aside-custom-background",d)},u),a.createElement(mW,null),(null===f||void 0===f?void 0:f.length)?a.createElement(rW,{type:"menu",items:f,menuMoreTitle:null!==s&&void 0!==s?s:sW("label_more"),onItemClick:r,multipleTooltip:o}):a.createElement("div",{className:(0,BV.b)("menu-items")}),a.createElement("div",{className:(0,BV.b)("footer")},null===l||void 0===l?void 0:l({size:n,compact:Boolean(c),asideRef:m})),!p&&a.createElement(dW,null))),a.createElement(gW,null))}));var yW;vW.displayName="FirstPanel",function(e){e.AllPages="all-pages"}(yW||(yW={}));const bW=[],xW=e=>{const{size:t,onClosePanel:n,menuItems:r,panelItems:i,onMenuItemsChanged:o}=e,[s,l]=(0,a.useState)(),c=a.useMemo((()=>({id:MG,title:RG("menu-item.all-pages.title"),tooltipText:RG("menu-item.all-pages.title"),icon:k_})),[]),u=Boolean(o)&&(!r||(null===r||void 0===r?void 0:r.length)>0);(0,a.useEffect)((()=>{(null===i||void 0===i?void 0:i.some((e=>e.visible)))&&l(void 0)}),[i]);const d=(0,a.useCallback)((()=>{l(void 0),null===n||void 0===n||n()}),[n]),h=(0,a.useCallback)(((e,t,n)=>{var r;e.id===c.id?l((e=>e===yW.AllPages?void 0:yW.AllPages)):d(),null===(r=e.onItemClick)||void 0===r||r.call(e,e,t,n)}),[d,c]),p=(0,a.useMemo)((()=>u?[...r||bW,Object.assign(Object.assign({},c),{current:s===yW.AllPages})]:r||bW),[u,r,s,c]),f=(0,a.useMemo)((()=>u?[...i||[],{id:yW.AllPages,content:a.createElement(FG,null),visible:s===yW.AllPages}]:i),[u,i,s]);return Object.assign(Object.assign({},e),{onClosePanel:d,allPagesIsAvailable:u,menuItems:p,panelItems:f,size:t,onItemClick:h})},wW=a.forwardRef(((e,t)=>{const{size:n,compact:r}=bV(),i=xW(Object.assign({size:n,compact:r},e));return a.createElement(mV,{value:i},a.createElement(vW,{ref:t}))}));wW.displayName="PageLayoutAside";const SW=a.forwardRef(((e,t)=>{var{compact:n,className:r,topAlert:i}=e,o=Je(e,["compact","className","topAlert"]);return a.createElement(HV,{compact:n,className:r,topAlert:i},a.createElement(wW,Object.assign({ref:t},o)),a.createElement(HV.Content,{renderContent:o.renderContent}))}));var _W;function CW(){return CW=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},CW.apply(this,arguments)}SW.displayName="AsideHeader";const EW=function(e){return a.createElement("svg",CW({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},e),_W||(_W=a.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"})))},TW=Me("kv-navigation");function OW(e){let{isCompact:t,popupAnchor:n,ydbUser:r,children:i}=e;const[o,s]=a.useState(!1),l=r.login?pV:EW;return(0,Le.jsx)(LV,{compact:t,item:{id:"user-popup",title:r.login?r.login:os("navigation-item.account"),current:o,icon:l,onItemClick:()=>s(!0)},enableTooltip:!o,popupAnchor:n,popupVisible:o,onClosePopup:()=>s(!1),renderPopupContent:()=>(0,Le.jsx)("div",{className:TW("ydb-user-wrapper"),children:i})})}var NW;!function(e){e.UserSettings="UserSettings"}(NW||(NW={}));const kW=(new class{constructor(){this.type=void 0,this.entities={}}set(e,t){return this.entities[e]=t,this}get(e){return this.entities[e]}register(e,t){return this.entities[e]=t,this}}).register("StaffCard",(function(e){let{children:t}=e;return(0,Le.jsx)(a.Fragment,{children:t})})).register("AsideNavigation",(function(e){const t=_a(),[n,r]=a.useState(),{user:i}=Do((e=>e.authentication)),[o,s]=Mo(Lo.Ac);return(0,Le.jsx)(a.Fragment,{children:(0,Le.jsx)(SW,{logo:{text:"YDB",icon:Js,onClick:()=>t.push("/")},menuItems:e.menuItems,compact:o,onChangeCompact:s,className:TW(),renderContent:()=>e.content,renderFooter:t=>{let{compact:o,asideRef:s}=t;return(0,Le.jsxs)(a.Fragment,{children:[(0,Le.jsx)(LV,{compact:o,item:{id:"documentation",title:os("navigation-item.documentation"),icon:No,onItemClick:()=>{window.open("https://ydb.tech/docs","_blank","noreferrer")}}}),(0,Le.jsx)(LV,{item:{id:"user-settings",title:os("navigation-item.settings"),icon:tE,current:n===NW.UserSettings,onItemClick:()=>{r(n===NW.UserSettings?void 0:NW.UserSettings)}},compact:o}),(0,Le.jsx)(OW,{isCompact:o,popupAnchor:s,ydbUser:{login:i},children:e.ydbInternalUser})]})},panelItems:[{id:"user-settings",visible:n===NW.UserSettings,content:e.settings}],onClosePanel:()=>{r(void 0)}})})})).register("ErrorBoundary",Xe);function jW(e){let{store:t,history:n,componentsRegistry:r=kW,children:i}=e;return(0,Le.jsx)($,{children:(0,Le.jsx)(ae.zt,{store:t,children:(0,Le.jsx)(ia,{history:n,children:(0,Le.jsx)(uc,{adapter:hV,children:(0,Le.jsx)(IW,{children:(0,Le.jsx)(ze,{registry:r,children:i})})})})})})}function IW(e){let{children:t}=e;const[n]=Mo(Lo.bw);return(0,Le.jsx)(dV.f,{theme:n,children:t})}const PW=(0,ae.$j)((function(e){return{singleClusterMode:e.singleClusterMode}}))((function(e){let{store:t,history:n,singleClusterMode:r,children:i,userSettings:o=Xa}=e;return(0,Le.jsxs)(jW,{store:t,history:n,children:[(0,Le.jsx)(oe,{defaultTitle:"YDB Monitoring",titleTemplate:"%s \u2014 YDB Monitoring"}),(0,Le.jsx)(uV,{children:(0,Le.jsx)(ms,{userSettings:o,children:(0,Le.jsxs)(Qe,{children:[(0,Le.jsx)(sV,{singleClusterMode:r,children:i}),(0,Le.jsx)("div",{id:"fullscreen-root"})]})})}),(0,Le.jsx)(Vs,{})]})}));var DW,AW=n(9416);function RW(e){let{monitoring:t,dbName:n,dbType:r,clusterName:i}=e;try{const e=LW(t);if(e){var o,a;const t=null!==(o=e.host)&&void 0!==o?o:"cluster",s=null!==(a=e.slot)&&void 0!==a?a:"static",l=e.cluster_name||i||"",c=new URL(e.monitoring_url);if(!c.search){const t=r===AW.Hi.Serverless?e.serverless_dashboard:e.dedicated_dashboard;c.pathname+="/".concat(t)}return c.searchParams.has("p.cluster")||c.searchParams.set("p.cluster",l),c.searchParams.set("p.host",t),c.searchParams.set("p.slot",s),c.searchParams.set("p.database",n),c.toString()}}catch{}return""}function MW(e,t){try{const n=LW(e);if(n){const e=n.cluster_dashboard,r=n.cluster_name||t||"",i=new URL(n.monitoring_url);return!i.search&&e&&(i.pathname+="/".concat(e,"/view")),i.searchParams.has("p.cluster")||i.searchParams.set("p.cluster",r),i.searchParams.set("p.database","-"),i.toString()}}catch{}return""}function LW(e){try{const t=JSON.parse(e);if("object"===typeof t&&"monitoring_url"in t)return t}catch{}}function FW(){return FW=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},FW.apply(this,arguments)}const zW=function(e){return a.createElement("svg",FW({fill:"currentColor",viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg"},e),DW||(DW=a.createElement("path",{d:"M14.195 11.375H3.125v-7.82a.328.328 0 00-.305-.305H1.805a.309.309 0 00-.305.305v9.14c0 .178.127.305.305.305h12.39a.309.309 0 00.305-.305V11.68a.328.328 0 00-.305-.305zm-3.25-5.688L8.812 7.11 6.63 4.24c-.127-.178-.38-.178-.508.026L3.937 7.922v2.64h9.75l-2.285-4.748c-.101-.177-.304-.228-.457-.127z"})))},BW=Me("kv-monitoring-button");function UW(e){let{href:t,visible:n=!1,className:r}=e;return(0,Le.jsx)(Ie.z,{href:t,target:"_blank",className:BW({visible:n},r),size:"s",title:"Monitoring dashboard",children:(0,Le.jsx)(we.J,{data:zW})})}var HW=n(90860);const VW="https://",GW=(e,t)=>{const n=null!==(r=e)&&void 0!==r&&r.startsWith("vm-")?"u-".concat(r):r;var r;const i=IT(t).proxy;return i?VW+i+"/"+n:VW+n},WW=(e,t,n)=>{const{Host:r,Endpoints:i,NodeId:o}=e;if(n&&o){const e=jT(t);return"".concat(e,"/node/").concat(o,"/")}if(r&&i){var a;const e=null===(a=i.find((e=>"http-mon"===e.Name)))||void 0===a?void 0:a.Address;if(!e||!r)return null;return GW(r+e,t)+"/"}return null},qW=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h_.y3,t=arguments.length>1?arguments[1]:void 0;return{getNodeRef:function(){return WW(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},null!==e&&void 0!==e?e:"",t)}}};function ZW(){const e=Ca(),{clusterName:t}=(0,Ta.mB)(e),{data:n}=GE.W1.useGetClustersListQuery(void 0),r=a.useMemo((()=>(n||[]).find((e=>e.name===t))),[n,t]),{solomon:i,balancer:o,versions:s,cluster:l}=r||{},[c]=Mo(Lo.IG);return{monitoring:i,balancer:o,versions:s,cluster:l,useClusterBalancerAsBackend:c,additionalNodesProps:qW(o,c)}}const YW=Me("extended-cluster"),KW=e=>{const t=PT(e);return{label:"Balancer",value:(0,Le.jsxs)("div",{className:YW("balancer"),children:[t,(0,Le.jsx)(OT,{text:t,size:"s",className:YW("clipboard-button")})]})}},QW=(e,t,n,r)=>{const i={};if(t&&r){const n=r(t,e);n&&(i.links=[{title:"Monitoring",url:n}])}return n&&(i.info=[KW(n)]),i},XW=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return{getVersionToColorMap:()=>(0,HW.n$)((0,HW.kn)(e))}},$W=(e,t,n,r,i)=>{const o={prepareTenantBackend:e=>{if(n){if(r)return jT(n);if(e)return GW(e,n)}}};return t&&i&&(o.getMonitoringLink=(n,r)=>{if(n&&r){const o=i({monitoring:t,dbName:n,dbType:r,clusterName:e});return(0,Le.jsx)(UW,{href:o})}return null}),o};function JW(e){let{component:t,getMonitoringLink:n,getMonitoringClusterLink:r}=e;const{monitoring:i,balancer:o,versions:a,cluster:s,useClusterBalancerAsBackend:l,additionalNodesProps:c}=ZW();return(0,Le.jsx)("div",{className:YW(),children:(0,Le.jsx)(t,{additionalClusterProps:QW(null===s||void 0===s?void 0:s.Name,i,o,r),additionalVersionsProps:XW(a),additionalTenantsProps:$W(null===s||void 0===s?void 0:s.Name,i,o,l,n),additionalNodesProps:c})})}function eq(e){let{component:t}=e;const{additionalNodesProps:n}=ZW();return(0,Le.jsx)(t,{additionalNodesProps:n})}function tq(e){let{component:t,getMonitoringLink:n}=e;const{additionalNodesProps:r,cluster:i,monitoring:o}=ZW(),a={getMonitoringLink:(e,t)=>{if(o&&e&&t&&n){const r=n({monitoring:o,dbName:e,dbType:t,clusterName:null===i||void 0===i?void 0:i.Name});return r?(0,Le.jsx)(UW,{href:r,visible:!0}):null}return null}};return(0,Le.jsx)(t,{additionalTenantProps:a,additionalNodesProps:r})}const nq=JSON.parse('{"settings.useClusterBalancerAsBackend.title":"Use cluster balancer as backend","settings.useClusterBalancerAsBackend.popover":"By default random cluster node is used as backend. It causes saved links to become invalid after some time, when node is restarted. Using balancer as backend fixes it"}'),rq=JSON.parse('{"settings.useClusterBalancerAsBackend.title":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u043b\u0430\u043d\u0441\u0435\u0440 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043a\u0430\u043a \u0431\u044d\u043a\u0435\u043d\u0434","settings.useClusterBalancerAsBackend.popover":"\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u044d\u043a\u0435\u043d\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u0443\u0437\u0435\u043b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u042d\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c\u0438 \u0441\u043f\u0443\u0441\u0442\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u0443\u0437\u0435\u043b \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0435\u0440\u0430 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u0442\u043e"}'),iq=(0,We.wZ)("ydb-extended-user-settings",{ru:rq,en:nq}),oq=Xa;function aq(e){let{store:t,history:n,getMonitoringLink:r=RW,getMonitoringClusterLink:i=MW,userSettings:o=oq,children:a}=e;return(0,Le.jsxs)(PW,{store:t,history:n,userSettings:o,children:[(0,Le.jsx)(qH,{children:e=>{let{component:t}=e;return(0,Le.jsx)(JW,{component:t,getMonitoringLink:r,getMonitoringClusterLink:i})}}),(0,Le.jsx)(YH,{children:e=>{let{component:t}=e;return(0,Le.jsx)(eq,{component:t})}}),(0,Le.jsx)(ZH,{children:e=>{let{component:t}=e;return(0,Le.jsx)(tq,{component:t,getMonitoringLink:r})}}),a]})}oq[2].sections[0].settings.push({title:iq("settings.useClusterBalancerAsBackend.title"),helpPopoverContent:iq("settings.useClusterBalancerAsBackend.popover"),settingKey:Lo.IG});var sq=n(43066),lq=n(63660),cq=n(90058)},90058:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=e=>{e&&e instanceof Function&&n.e(599).then(n.bind(n,40599)).then((t=>{let{getCLS:n,getFID:r,getFCP:i,getLCP:o,getTTFB:a}=t;n(e),r(e),i(e),o(e),a(e)}))}},54665:(e,t,n)=>{"use strict";n.d(t,{By:()=>v,Fz:()=>m,ZP:()=>u,ax:()=>p,ds:()=>g,mB:()=>d,vF:()=>f});var r=n(85198),i=n.n(r),o=n(7856),a=n(63041),s=n.n(a),l=n(27102);const c={clusters:"/".concat("clusters"),cluster:"/".concat("cluster","/:activeTab?"),tenant:"/".concat("tenant"),node:"/".concat("node","/:id/:activeTab?"),pDisk:"/".concat("pDisk"),vDisk:"/".concat("vDisk"),tablet:"/".concat("tablet","/:id"),tabletsFilters:"/tabletsFilters",auth:"/auth"},u=c,d=e=>s().parse(e.search,{ignoreQueryPrefix:!0}),h=e=>{let t=e;const n=/:\d{3,5}/g,r=e.match(n);if(r){const i=r[0];t=e.replace(n,":\\"+i.slice(1))}return t};function p(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n;const a=Boolean(n.backend);l.y3&&!a&&l.dx&&(r={...n,backend:l.y3});const c=Boolean(n.clusterName);l.qw&&!c&&l.dx&&(r={...r,clusterName:l.qw});const u=i()(r)?"":"?".concat(s().stringify(r,{encode:!1})),d=h(e);return"".concat((0,o.compile)(d)(t)).concat(u)}const f=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return p(window.location.pathname,void 0,e)};function m(e){const{pathname:t,search:n,hash:r}=new URL(e,"http://localhost");return{pathname:t,search:n,hash:r}}function g(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return p(c.pDisk,void 0,{...n,nodeId:t,pDiskId:e})}function v(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return p(c.vDisk,void 0,{...r,nodeId:n,pDiskId:t,vDiskSlotId:e})}},43066:(e,t,n)=>{"use strict";n.d(t,{su:()=>m,Iy:()=>g,LC:()=>v});var r=n(63585),i=n.n(r),o=n(52369),a=n(27208);class s{constructor(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.setApiEndpoint=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";"undefined"!==typeof location&&(t=t.replace("%CURRENT_HOST%",location.host)),e.apiEndpoint=t},this.setCSRFToken=e=>{this._axios.defaults.headers.post["X-CSRF-Token"]=e,this._axios.defaults.headers.put["X-CSRF-Token"]=e,this._axios.defaults.headers.delete["X-CSRF-Token"]=e},this.setDefaultHeader=e=>{let{name:t,value:n,methods:r}=e;const i=this._axios.defaults.headers;Array.isArray(r)?r.forEach((e=>{const r=i[e];r&&r instanceof o.uu&&(r[t]=n)})):i.common[t]=n},this.apiPath=e=>"".concat(this.apiEndpoint).concat(e);const{config:n={},apiEndpoint:r="/api",collector:l={}}=t,c=Object.assign({xsrfCookieName:"",timeout:s.DEFAULT_TIMEOUT,withCredentials:!0},n);this._axios=a.Z.create(c),this._axios.defaults.headers=i()(this._axios.defaults.headers),this.requestTokens={},this.setApiEndpoint(r),this.collectorSettings=l,this.collector={errors:[],requests:[]}}collectRequest(e){let{method:t,url:n,data:r,requestStart:i,response:o,responseError:a,error:s=!1,cancelled:l=!1}=e;const{collectErrors:c,collectRequests:u}=this.collectorSettings;if(!c&&!u)return;const{responseText:d="",responseURL:h=n}=o&&o.request||{},p=s&&a instanceof Error?a.message:"",f={method:t,url:h,time:{start:i,end:Number(new Date)},status:o&&o.status,size:d.length,requestData:r&&JSON.stringify(r,null,2)||"",responseData:o&&o.data&&JSON.stringify(o.data,null,2)||p,isError:s,isCancelled:l};c&&s&&(this.collector.errors=[...this.collector.errors,f].slice(-c)),u&&(this.collector.requests=[...this.collector.requests,f].slice(-u))}getCollectedRequests(){return{errors:[...this.collector.errors],requests:[...this.collector.requests]}}async request(e){const{method:t,url:n,data:r=null,params:i,options:o={},retries:s=0}=e,l=o.requestConfig||{},{concurrentId:c,collectRequest:u=!0,timeout:d,headers:h,onDownloadProgress:p}=o;c&&(this.cancelRequest(c),l.cancelToken=this.createRequestToken(c)),h&&(l.headers=h),"undefined"!==typeof d&&(l.timeout=d);const f=Number(new Date),m={method:t,url:n,data:r,params:i,onDownloadProgress:p};try{const e=await this._axios.request(Object.assign(Object.assign({},l),m));return this.clearRequestToken(c),u&&this.collectRequest(Object.assign(Object.assign({},m),{requestStart:f,response:e})),e.data}catch(g){if(a.Z.isCancel(g))throw{isCancelled:!0,error:g};let t;return this.clearRequestToken(c),t=g.response?g.response:"function"===typeof g.toJSON?g.toJSON():g,u&&this.collectRequest(Object.assign(Object.assign({},m),{requestStart:f,response:t,error:!0,cancelled:a.Z.isCancel(g),responseError:g})),this.handleRequestError(t,(()=>this.request(Object.assign(Object.assign({},e),{retries:s+1}))),s,new Error(g instanceof Error?g.message:"Unknown error"))}}cancelRequest(e){e&&this.requestTokens[e]&&this.requestTokens[e].cancel("Concurrent request")}get(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request({method:"GET",url:e,params:t,options:n})}post(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.request({method:"POST",url:e,data:t,params:n,options:r})}put(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.request({method:"PUT",url:e,data:t,params:n,options:r})}patch(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.request({method:"PATCH",url:e,data:t,params:n,options:r})}delete(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.request({method:"DELETE",url:e,data:t,params:n,options:r})}head(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.request({method:"HEAD",url:e,params:t,options:n})}handleRequestError(e){throw e}createRequestToken(e){if(e){const t=a.Z.CancelToken.source();return this.requestTokens[e]=t,t.token}}clearRequestToken(e){e&&this.requestTokens[e]&&delete this.requestTokens[e]}}s.DEFAULT_TIMEOUT=6e4;var l=n(27102),c=n(52317),u=n(48169),d=n(27070);const h=e=>{const{cluster:t={}}=e,{cluster:n,balancer:r,solomon:i}=t;return{...n,Name:t.title||(null===n||void 0===n?void 0:n.Name),Balancer:r,Solomon:i}},p=e=>({TenantInfo:null===e||void 0===e?void 0:e.databases});var f=n(18193);class m extends s{getPath(e){return"".concat(null!==l.y3&&void 0!==l.y3?l.y3:"").concat(e)}getClusterInfo(e){let{concurrentId:t,signal:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/cluster"),{name:e,tablets:!0},{concurrentId:t||"getClusterInfo",requestConfig:{signal:n}})}getClusterNodes(){let{concurrentId:e,signal:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.get(this.getPath("/viewer/json/sysinfo"),{},{concurrentId:e||"getClusterNodes",requestConfig:{signal:t}})}getNodeInfo(e){let{concurrentId:t,signal:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/sysinfo?enums=true"),{node_id:e},{concurrentId:t,requestConfig:{signal:n}})}getTenants(e){let{concurrentId:t,signal:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/tenantinfo"),{tablets:1,storage:1,cluster_name:e},{concurrentId:t,requestConfig:{signal:n}})}getTenantInfo(e){let{path:t}=e,{concurrentId:n,signal:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/tenantinfo"),{path:t,tablets:!0,storage:!0},{concurrentId:n||"getTenantInfo|".concat(t),requestConfig:{signal:r}})}getNodes(e){let{visibleEntities:t,type:n="any",tablets:r=!0,sortOrder:i,sortValue:o,...a}=e,{concurrentId:s,signal:l}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const c=(0,d.A)(o,i);return this.get(this.getPath("/viewer/json/nodes?enums=true"),{with:t,type:n,tablets:r,sort:c,...a},{concurrentId:s,requestConfig:{signal:l}})}getCompute(e){let{sortOrder:t,sortValue:n,...r}=e,{concurrentId:i,signal:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const a=(0,d.A)(n,t);return this.get(this.getPath("/viewer/json/compute?enums=true"),{sort:a,...r},{concurrentId:i,requestConfig:{signal:o}})}getStorageInfo(e){let{tenant:t,visibleEntities:n,nodeId:r,poolName:i,groupId:o,sortOrder:a,sortValue:s,...l}=e,{concurrentId:c,signal:u}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const h=(0,d.A)(s,a);return this.get(this.getPath("/viewer/json/storage?enums=true"),{tenant:t,node_id:r,pool:i,group_id:o,with:n,sort:h,...l},{concurrentId:c,requestConfig:{signal:u}})}getPDiskInfo(e){let{nodeId:t,pDiskId:n}=e,{concurrentId:r,signal:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/pdiskinfo?enums=true"),{filter:"(NodeId=".concat(t).concat(n?";PDiskId=".concat(n):"",")")},{concurrentId:r,requestConfig:{signal:i}})}getVDiskInfo(e){let{vDiskSlotId:t,pDiskId:n,nodeId:r}=e,{concurrentId:i,signal:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/vdiskinfo?enums=true"),{node_id:r,filter:"(PDiskId=".concat(n,";VDiskSlotId=").concat(t,")")},{concurrentId:i,requestConfig:{signal:o}})}getGroupInfo(e){let{concurrentId:t,signal:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/storage?enums=true"),{group_id:e},{concurrentId:t,requestConfig:{signal:n}})}getHostInfo(){let{concurrentId:e,signal:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.get(this.getPath("/viewer/json/sysinfo?node_id=.&enums=true"),{concurrentId:e,requestConfig:{signal:t}})}getTabletsInfo(e){let{nodes:t=[],path:n}=e,{concurrentId:r,signal:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=t.length>0&&"(NodeId=[".concat(t.join(","),"])");return this.get(this.getPath("/viewer/json/tabletinfo"),{filter:o,path:n,enums:!0},{concurrentId:r,requestConfig:{signal:i}})}getSchema(e){let{path:t}=e,{concurrentId:n,signal:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};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),requestConfig:{signal:r}})}getDescribe(e){let{path:t}=e,{concurrentId:n,signal:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/describe"),{path:t,enums:!0,partition_stats:!0,subs:0},{concurrentId:n||"getDescribe|".concat(t),requestConfig:{signal:r}})}getSchemaAcl(e){let{path:t}=e,{concurrentId:n,signal:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/acl"),{path:t},{concurrentId:n||"getSchemaAcl",requestConfig:{signal:r}})}getHeatmapData(e){let{path:t}=e,{concurrentId:n,signal:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/describe"),{path:t,enums:!0,backup:!1,children:!1,partition_config:!1,partition_stats:!0},{concurrentId:n,requestConfig:{signal:r}})}getNetwork(e){let{concurrentId:t,signal:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/netinfo"),{enums:!0,path:e},{concurrentId:t,requestConfig:{signal:n}})}getTopic(e){let{path:t}=e,{concurrentId:n,signal:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/describe_topic"),{enums:!0,include_stats:!0,path:t},{concurrentId:n,requestConfig:{signal:r}})}getConsumer(e){let{path:t,consumer:n}=e,{concurrentId:r,signal:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/describe_consumer"),{enums:!0,include_stats:!0,path:t,consumer:n},{concurrentId:r||"getConsumer",requestConfig:{signal:i}})}getPoolInfo(e){let{concurrentId:t,signal:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/storage"),{pool:e,enums:!0},{concurrentId:t,requestConfig:{signal:n}})}getTablet(e){let{id:t}=e,{concurrentId:n,signal:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/tabletinfo?filter=(TabletId=".concat(t,")")),{enums:!0},{concurrentId:n,requestConfig:{signal:r}})}getTabletHistory(e){let{id:t}=e,{concurrentId:n,signal:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/tabletinfo?filter=(TabletId=".concat(t,")")),{enums:!0,merge:!1},{concurrentId:n,requestConfig:{signal:r}})}getNodesList(){let{concurrentId:e,signal:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.get(this.getPath("/viewer/json/nodelist"),{enums:!0},{concurrentId:e,requestConfig:{signal:t}})}getTenantsList(){let{concurrentId:e,signal:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.get(this.getPath("/viewer/json/tenants"),{enums:!0,state:0},{concurrentId:e,requestConfig:{signal:t}})}sendQuery(e){let{schema:t,...n}=e,{concurrentId:r,signal:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=!f.r.readUserSettingsValue(c.N1,!0);return this.post(this.getPath("/viewer/json/query?timeout=".concat(6e5,"&base64=").concat(o).concat(t?"&schema=".concat(t):"")),n,{},{concurrentId:r,timeout:54e4,requestConfig:{signal:i}})}getExplainQuery(e,t,n,r){return this.post(this.getPath("/viewer/json/query"),{query:e,database:t,action:n||"explain",syntax:r,timeout:6e5},{})}getExplainQueryAst(e,t){return this.post(this.getPath("/viewer/json/query"),{query:e,database:t,action:"explain-ast",timeout:6e5},{})}getHotKeys(e,t){let{concurrentId:n,signal:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.get(this.getPath("/viewer/json/hotkeys"),{path:e,enable_sampling:t},{concurrentId:n||"getHotKeys",requestConfig:{signal:r}})}getHealthcheckInfo(e){let{concurrentId:t,signal:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get(this.getPath("/viewer/json/healthcheck?merge_records=true"),{tenant:e},{concurrentId:t,requestConfig:{signal:n}})}evictVDisk(e){let{groupId:t,groupGeneration:n,failRealmIdx:r,failDomainIdx:i,vDiskIdx:o}=e;return this.post(this.getPath("/tablets/app?TabletID=".concat("72057594037932033","&exec=1")),{Command:{ReassignGroupDisk:{GroupId:t,GroupGeneration:n,FailRealmIdx:r,FailDomainIdx:i,VDiskIdx:o}}},{},{headers:{Accept:"application/json"}})}restartPDisk(e,t){const n=(0,u.ok)({nodeId:e,pDiskId:t,host:this.getPath("")});return this.post(n,"restartPDisk=",{},{headers:{"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}})}killTablet(e){return this.get(this.getPath("/tablets?KillTabletID=".concat(e)),{})}stopTablet(e,t){return this.get(this.getPath("/tablets/app?TabletID=".concat(t,"&page=StopTablet&tablet=").concat(e)),{})}resumeTablet(e,t){return this.get(this.getPath("/tablets/app?TabletID=".concat(t,"&page=ResumeTablet&tablet=").concat(e)),{})}getTabletDescribe(e){let{concurrentId:t,signal:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};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},{concurrentId:t,requestConfig:{signal:n}})}getChartData(e){let{target:t,from:n,until:r,maxDataPoints:i,database:o}=e,{concurrentId:a,signal:s}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const l="".concat(t,"&from=").concat(n,"&until=").concat(r,"&maxDataPoints=").concat(i,"&format=json");return this.post(this.getPath("/viewer/json/render?database=".concat(o)),l,{},{concurrentId:a,headers:{"Content-Type":"application/x-www-form-urlencoded"},requestConfig:{signal:s}})}postSetting(e,t,n){return this.request({method:"PATCH",url:e,data:{[t]:n}})}authenticate(e,t){return this.post(this.getPath("/login"),{user:e,password:t},{})}logout(){return this.post(this.getPath("/logout"),{},{})}whoami(){return this.get(this.getPath("/viewer/json/whoami"),{})}autocomplete(e){const{table:t,...n}=e,r=null===t||void 0===t?void 0:t.join(",");return this.get(this.getPath("/viewer/json/autocomplete"),{...n,table:r},{concurrentId:"sql-autocomplete"})}getClustersList(e){let{signal:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get("".concat(l.Vq||"","/meta/clusters"),null,{requestConfig:{signal:t}})}}class g extends m{getClusterInfo(e){let{signal:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get("".concat(l.Vq||"","/meta/cluster"),{name:e},{concurrentId:"getCluster".concat(e),requestConfig:{signal:t}}).then(h)}getTenants(e){let{concurrentId:t,signal:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.get("".concat(l.Vq||"","/meta/cp_databases"),{cluster_name:e},{concurrentId:t,requestConfig:{signal:n}}).then(p)}}function v(){let{webVersion:e=!1,withCredentials:t=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n={withCredentials:t};return e?new g({config:n}):new m({config:n})}},18193:(e,t,n)=>{"use strict";n.d(t,{r:()=>l,t:()=>s});var r=n(24015),i=n(52317),o=n(39623),a=n(47651);const s={[i.bw]:"system",[i.Px]:void 0,[i.yT]:!1,[i.UF]:!1,[i.Rq]:!1,[i.N1]:!0,[i.DG]:[],[i.pf]:r.m2.query,[i.Wm]:o.wZ.script,[i.w7]:o.Jf.execute,[i.Ac]:!0,[i.ZY]:[],[i.ET]:!1,[i.IG]:!0,[i.y6]:!1,[i.XX]:!0,[i.JZ]:!1};const l=new class{constructor(){this.extractSettingsFromLS=e=>Object.entries(e).reduce(((e,t)=>{let[n,r]=t;return e[n]=this.readUserSettingsValue(n,r),e}),{}),this.readValueFromLS=e=>{try{const t=localStorage.getItem(e);return(0,a.Mo)(t)}catch{return}},this.setValueToLS=(e,t)=>{try{"string"===typeof t?localStorage.setItem(e,t):localStorage.setItem(e,JSON.stringify(t))}catch{}}}readUserSettingsValue(e,t){var n;return null!==(n=this.readValueFromLS(e))&&void 0!==n?n:t}setUserSettingsValue(e,t){return this.setValueToLS(e,t)}}},67510:(e,t,n)=>{"use strict";n.d(t,{y3:()=>O,EZ:()=>N,qw:()=>k,xC:()=>F,j4:()=>R,Vq:()=>M,dx:()=>A});var r=n(1399),i=n(91668),o=n(91087),a=n(43066),s=n(92820);const l=e=>{let{href:t,singleClusterMode:n,customBackend:r}=e;if(n){if(r){const{backend:e}=s.parse(t,!0).query;return{basename:"/",backend:e?String(e):r}}{const e=window.location.pathname.match(/.*(?=\/monitoring)/)||[],t=e.length>0?e[0]:"";return{basename:[t,"monitoring"].filter(Boolean).join("/"),backend:t||""}}}{const{backend:e,clusterName:n}=s.parse(t,!0).query;return{basename:"/",backend:e?String(e):e,clusterName:n?String(n):n}}};var c=n(9869),u=n(905),d=n(3027),h=n(84142),p=n.n(h),f=n(25484),m=n.n(f),g=n(3186),v=n.n(g),y=n(63041),b=n.n(y),x=n(94909),w=n(58102),S=n(43903),_=n(78103),C=n(93717);const E={global:{problemFilter:{stateKey:"settings.problemFilter",initialState:n(80839).E3.problemFilter}},"/tenant":{sort:{stateKey:"heatmap.sort",initialState:C.E3.sort,type:"bool"},heatmap:{stateKey:"heatmap.heatmap",initialState:C.E3.heatmap,type:"bool"},currentMetric:{stateKey:"heatmap.currentMetric",initialState:C.E3.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"},summaryTab:{stateKey:"tenant.summaryTab"},metricsTab:{stateKey:"tenant.metricsTab"},shardsMode:{stateKey:"shardsWorkload.mode"},shardsDateFrom:{stateKey:"shardsWorkload.from",type:"number"},shardsDateTo:{stateKey:"shardsWorkload.to",type:"number"},topQueriesDateFrom:{stateKey:"executeTopQueries.from",type:"number"},topQueriesDateTo:{stateKey:"executeTopQueries.to",type:"number"},selectedConsumer:{stateKey:"partitions.selectedConsumer"}},"/cluster/tenants":{search:{stateKey:"tenants.searchValue"}}};function T(e,t){return v()({},e,t.query)}let O,N,k,j="";function I(e,t,n){const r=(0,_.stateToParams)(e,t,n);let{location:i}=r;if(i.search===j)return{location:n,shouldPush:!1};{const e=/\?\w+/;return j=i.search,e.test(n.search)&&(i=function(e,t){const{search:n,...r}=e,i=b().parse(t.search.slice(1)),o=(0,w.getMatchingDeclaredPath)(E,e),a=o&&E[o];p()(m()(a),(e=>{delete i[e]})),p()(m()(E.global||{}),(e=>{delete i[e]}));const s=b().stringify(i,{encoder:encodeURIComponent}),l=n.startsWith("?")?"&":"?";return{search:"".concat(n).concat(l).concat(s),...r}}(i,n)),{...r,location:i}}}function P(e,t,n){return(r,i)=>{const o=((n,r)=>{const{type:i,payload:o}=r;if(!o)return n;if(x.LOCATION_POP===i||x.LOCATION_PUSH===i){const r=o;return r.query=(0,S.parseQuery)(e,o),t(n,r)}return n})(n(r,i),i);return o!==r?o:r}}function D(e,t,n,i){const{locationMiddleware:a,reducersWithLocation:s}=function(e,t){const{locationMiddleware:n}=(0,o.zl)(E,T,e,t,I);return{locationMiddleware:n,reducersWithLocation:P(E,T,t)}}(t,e);return(0,r.xC)({reducer:s,preloadedState:n,middleware:e=>e({immutableCheck:{ignoredPaths:["tooltip.currentHoveredRef"]},serializableCheck:{ignoredPaths:["tooltip.currentHoveredRef","api"],ignoredActions:[d.MB,"api/executeQuery/rejected"]}}).concat(a,...i)})}const A=window.web_version,R=window.custom_backend,M=window.meta_backend,L="undefined"==="".concat(M);function F(){let{aRootReducer:e=c.Z,singleClusterMode:t=L,api:n=(0,a.LC)({webVersion:A,withCredentials:!R})}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};({backend:O,basename:N,clusterName:k}=l({href:window.location.href,singleClusterMode:t,customBackend:R}));const r=(0,i.lX)({basename:N}),s=D(e,r,{singleClusterMode:t},[u.h.middleware]);return(0,o.C1)(s,r),n._axios.interceptors.response.use((function(e){return Promise.resolve(e)}),(function(e){var t;const n=e.response;return n&&401===n.status&&null!==(t=n.data)&&void 0!==t&&t.authUrl?window.location.assign(n.data.authUrl):Promise.reject(e)})),window.api=n,{history:r,store:s}}},27102:(e,t,n)=>{"use strict";n.d(t,{EZ:()=>r.EZ,QW:()=>i.Q,Vq:()=>r.Vq,dx:()=>r.dx,j4:()=>r.j4,qw:()=>r.qw,xC:()=>r.xC,y3:()=>r.y3});var r=n(67510),i=n(9869)},905:(e,t,n)=>{"use strict";n.d(t,{h:()=>x});var r=n(17095),i=n(38907),o=n(1399),a=n(68963),s=n(87555),l=n(36313);function c(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return Object.assign(e,...n)}function u(e){return e.replace(e[0],e[0].toUpperCase())}var d=WeakMap?new WeakMap:void 0,h=e=>{let{endpointName:t,queryArgs:n}=e,r="";const o=null===d||void 0===d?void 0:d.get(n);if("string"===typeof o)r=o;else{const e=JSON.stringify(n,((e,t)=>(0,i.PO)(t)?Object.keys(t).sort().reduce(((e,n)=>(e[n]=t[n],e)),{}):t));(0,i.PO)(n)&&(null===d||void 0===d||d.set(n,e)),r=e}return"".concat(t,"(").concat(r,")")},p=Symbol();function f(e,t,n,r){const i=(0,a.useMemo)((()=>({queryArgs:e,serialized:"object"==typeof e?t({queryArgs:e,endpointDefinition:n,endpointName:r}):e})),[e,t,n,r]),o=(0,a.useRef)(i);return(0,a.useEffect)((()=>{o.current.serialized!==i.serialized&&(o.current=i)}),[i]),o.current.serialized===i.serialized?o.current.queryArgs:e}function m(e){const t=(0,a.useRef)(e);return(0,a.useEffect)((()=>{(0,s.wU)(t.current,e)||(t.current=e)}),[e]),(0,s.wU)(t.current,e)?t.current:e}var g="undefined"!==typeof window&&window.document&&window.document.createElement?a.useLayoutEffect:a.useEffect,v=e=>e.isUninitialized?{...e,isUninitialized:!1,isFetching:!0,isLoading:void 0===e.data,status:r.oZ.pending}:e;var y=Symbol();var b=(0,r.Tk)((0,r.hF)(),function(){let{batch:e=s.dC,hooks:t={useDispatch:s.I0,useSelector:s.v9,useStore:s.oR},createSelector:n=l.P1,unstable__sideEffectsInRender:i=!1,...d}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{name:y,init(l,d,y){let{serializeQueryArgs:b}=d;const x=l,{buildQueryHooks:w,buildMutationHook:S,usePrefetch:_}=function(e){let{api:t,moduleOptions:{batch:n,hooks:{useDispatch:i,useSelector:l,useStore:c},unstable__sideEffectsInRender:u,createSelector:d},serializeQueryArgs:y,context:b}=e;const x=u?e=>e():a.useEffect;return{buildQueryHooks:function(e){const u=function(n){let{refetchOnReconnect:s,refetchOnFocus:l,refetchOnMountOrArgChange:c,skip:u=!1,pollingInterval:d=0,skipPollingIfUnfocused:p=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{initiate:g}=t.endpoints[e],v=i(),y=(0,a.useRef)();if(!y.current){const e=v(t.internalActions.internal_getRTKQSubscriptions());y.current=e}const w=f(u?r.CN:n,h,b.endpointDefinitions[e],e),S=m({refetchOnReconnect:s,refetchOnFocus:l,pollingInterval:d,skipPollingIfUnfocused:p}),_=(0,a.useRef)(!1),C=(0,a.useRef)();let{queryCacheKey:E,requestId:T}=C.current||{},O=!1;E&&T&&(O=y.current.isRequestSubscribed(E,T));const N=!O&&_.current;return x((()=>{_.current=O})),x((()=>{N&&(C.current=void 0)}),[N]),x((()=>{var e;const t=C.current;if(w===r.CN)return null===t||void 0===t||t.unsubscribe(),void(C.current=void 0);const n=null===(e=C.current)||void 0===e?void 0:e.subscriptionOptions;if(t&&t.arg===w)S!==n&&t.updateSubscriptionOptions(S);else{null===t||void 0===t||t.unsubscribe();const e=v(g(w,{subscriptionOptions:S,forceRefetch:c}));C.current=e}}),[v,g,c,w,S,N]),(0,a.useEffect)((()=>()=>{var e;null===(e=C.current)||void 0===e||e.unsubscribe(),C.current=void 0}),[]),(0,a.useMemo)((()=>({refetch:()=>{var e;if(!C.current)throw new Error((0,o.rJ)(38));return null===(e=C.current)||void 0===e?void 0:e.refetch()}})),[])},S=function(){let{refetchOnReconnect:r,refetchOnFocus:o,pollingInterval:s=0,skipPollingIfUnfocused:l=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{initiate:c}=t.endpoints[e],u=i(),[d,h]=(0,a.useState)(p),f=(0,a.useRef)(),g=m({refetchOnReconnect:r,refetchOnFocus:o,pollingInterval:s,skipPollingIfUnfocused:l});x((()=>{var e;const t=null===(e=f.current)||void 0===e?void 0:e.subscriptionOptions;var n;g!==t&&(null===(n=f.current)||void 0===n||n.updateSubscriptionOptions(g))}),[g]);const v=(0,a.useRef)(g);x((()=>{v.current=g}),[g]);const y=(0,a.useCallback)((function(e){let t,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return n((()=>{var n;null===(n=f.current)||void 0===n||n.unsubscribe(),f.current=t=u(c(e,{subscriptionOptions:v.current,forceRefetch:!r})),h(e)})),t}),[u,c]);return(0,a.useEffect)((()=>()=>{var e;null===f||void 0===f||null===(e=f.current)||void 0===e||e.unsubscribe()}),[]),(0,a.useEffect)((()=>{d===p||f.current||y(d,!0)}),[d,y]),(0,a.useMemo)((()=>[y,d]),[y,d])},_=function(n){let{skip:i=!1,selectFromResult:o}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{select:u}=t.endpoints[e],h=f(i?r.CN:n,y,b.endpointDefinitions[e],e),p=(0,a.useRef)(),m=(0,a.useMemo)((()=>d([u(h),(e,t)=>t,e=>h],w,{memoizeOptions:{resultEqualityCheck:s.wU}})),[u,h]),v=(0,a.useMemo)((()=>o?d([m],o,{devModeChecks:{identityFunctionCheck:"never"}}):m),[m,o]),x=l((e=>v(e,p.current)),s.wU),S=c(),_=m(S.getState(),p.current);return g((()=>{p.current=_}),[_]),x};return{useQueryState:_,useQuerySubscription:u,useLazyQuerySubscription:S,useLazyQuery(e){const[t,n]=S(e),r=_(n,{...e,skip:n===p}),i=(0,a.useMemo)((()=>({lastArg:n})),[n]);return(0,a.useMemo)((()=>[t,r,i]),[t,r,i])},useQuery(e,t){const n=u(e,t),i=_(e,{selectFromResult:e===r.CN||null!==t&&void 0!==t&&t.skip?void 0:v,...t}),{data:o,status:s,isLoading:l,isSuccess:c,isError:d,error:h}=i;return(0,a.useDebugValue)({data:o,status:s,isLoading:l,isSuccess:c,isError:d,error:h}),(0,a.useMemo)((()=>({...i,...n})),[i,n])}}},buildMutationHook:function(e){return function(){let{selectFromResult:r,fixedCacheKey:o}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{select:c,initiate:u}=t.endpoints[e],h=i(),[p,f]=(0,a.useState)();(0,a.useEffect)((()=>()=>{null!==p&&void 0!==p&&p.arg.fixedCacheKey||null===p||void 0===p||p.reset()}),[p]);const m=(0,a.useCallback)((function(e){const t=h(u(e,{fixedCacheKey:o}));return f(t),t}),[h,u,o]),{requestId:g}=p||{},v=(0,a.useMemo)((()=>c({fixedCacheKey:o,requestId:null===p||void 0===p?void 0:p.requestId})),[o,p,c]),y=(0,a.useMemo)((()=>r?d([v],r):v),[r,v]),b=l(y,s.wU),x=null==o?null===p||void 0===p?void 0:p.arg.originalArgs:void 0,w=(0,a.useCallback)((()=>{n((()=>{p&&f(void 0),o&&h(t.internalActions.removeMutationResult({requestId:g,fixedCacheKey:o}))}))}),[h,o,p,g]),{endpointName:S,data:_,status:C,isLoading:E,isSuccess:T,isError:O,error:N}=b;(0,a.useDebugValue)({endpointName:S,data:_,status:C,isLoading:E,isSuccess:T,isError:O,error:N});const k=(0,a.useMemo)((()=>({...b,originalArgs:x,reset:w})),[b,x,w]);return(0,a.useMemo)((()=>[m,k]),[m,k])}},usePrefetch:function(e,n){const r=i(),o=m(n);return(0,a.useCallback)(((n,i)=>r(t.util.prefetch(e,n,{...o,...i}))),[e,r,o])}};function w(e,t,n){var r,i;if(null!==(r=t)&&void 0!==r&&r.endpointName&&e.isUninitialized){const{endpointName:e}=t,r=b.endpointDefinitions[e];y({queryArgs:t.originalArgs,endpointDefinition:r,endpointName:e})===y({queryArgs:n,endpointDefinition:r,endpointName:e})&&(t=void 0)}let o=e.isSuccess?e.data:null===(i=t)||void 0===i?void 0:i.data;void 0===o&&(o=e.data);const a=void 0!==o,s=e.isLoading,l=!a&&s,c=e.isSuccess||s&&a;return{...e,data:o,currentData:e.data,isFetching:s,isLoading:l,isSuccess:c}}}({api:l,moduleOptions:{batch:e,hooks:t,unstable__sideEffectsInRender:i,createSelector:n},serializeQueryArgs:b,context:y});return c(x,{usePrefetch:_}),c(y,{batch:e}),{injectEndpoint(e,t){if("query"===t.type){const{useQuery:t,useLazyQuery:n,useLazyQuerySubscription:r,useQueryState:i,useQuerySubscription:o}=w(e);c(x.endpoints[e],{useQuery:t,useLazyQuery:n,useLazyQuerySubscription:r,useQueryState:i,useQuerySubscription:o}),l["use".concat(u(e),"Query")]=t,l["useLazy".concat(u(e),"Query")]=n}else if(function(e){return"mutation"===e.type}(t)){const t=S(e);c(x.endpoints[e],{useMutation:t}),l["use".concat(u(e),"Mutation")]=t}}}}}}());const x=b({baseQuery:function(){throw new Error("When using `fakeBaseQuery`, all queries & mutations must use the `queryFn` definition syntax.")},endpoints:()=>({}),refetchOnMountOrArgChange:!0,invalidationBehavior:"immediately",tagTypes:["All"]});Symbol()},14146:(e,t,n)=>{"use strict";n.d(t,{PR:()=>u,Pq:()=>i,YR:()=>l,ZP:()=>d,kS:()=>c});var r=n(76765);const i=(0,r.U)("authentication","SET_UNAUTHENTICATED"),o=(0,r.U)("authentication","SET_AUTHENTICATED"),a=(0,r.U)("authentication","FETCH_USER"),s={isAuthenticated:!0,user:"",error:void 0},l=(e,t)=>(0,r.Sz)({request:window.api.authenticate(e,t),actions:o}),c=()=>(0,r.Sz)({request:window.api.logout(),actions:i}),u=()=>(0,r.Sz)({request:window.api.whoami(),actions:a,dataHandler:e=>{const{UserSID:t,AuthType:n,IsMonitoringAllowed:r}=e;return{user:"Login"===n?t:void 0,isUserAllowedToMakeChanges:!1!==r}}}),d=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.SUCCESS:return{...e,isAuthenticated:!1,user:"",error:void 0};case o.SUCCESS:return{...e,isAuthenticated:!0,error:void 0};case o.FAILURE:return{...e,error:t.error};case a.SUCCESS:{const{user:n,isUserAllowedToMakeChanges:r}=t.data;return{...e,user:n,isUserAllowedToMakeChanges:r}}default:return{...e}}}},77915:(e,t,n)=>{"use strict";n.d(t,{UM:()=>g,ZP:()=>m,LQ:()=>f});var r=n(1399),i=n(81003),o=n(52317),a=n(39623),s=n(905);const l=e=>"\nSELECT \n PDiskFilter,\n ErasureSpecies,\n CurrentAvailableSize,\n CurrentAllocatedSize,\n CurrentGroupsCreated,\n AvailableGroupsToCreate\n FROM `".concat(e,"/.sys/ds_storage_stats`\n ORDER BY CurrentGroupsCreated DESC;\n"),c=e=>{const t=(0,a.gY)(e).result,n={};return null===t||void 0===t||t.forEach((e=>{const{PDiskFilter:t,ErasureSpecies:r,CurrentAvailableSize:i,CurrentAllocatedSize:o,CurrentGroupsCreated:a,AvailableGroupsToCreate:s}=e,l=Number(a)||0,c=l+(Number(s)||0),u=Number(o)||0,d=Number(i)||0,h=t&&"string"===typeof t&&(e=>{var t,n;const r=null===(t=e.match(/^Type:(?<type>[A-Za-z]+)/))||void 0===t||null===(n=t.groups)||void 0===n?void 0:n.type;return"ROT"===r?"HDD":r})(t);if(h&&r&&"string"===typeof r&&l){const e={diskType:h,erasure:r,createdGroups:l,totalGroups:c,allocatedSize:u,availableSize:d};if(n[h])if(n[h][r]){const e={...n[h][r]};n[h][r]={diskType:h,erasure:r,createdGroups:e.createdGroups+l,totalGroups:e.totalGroups+c,allocatedSize:e.allocatedSize+u,availableSize:e.availableSize+d}}else n[h][r]=e;else n[h]={[r]:e}}})),n},u=localStorage.getItem(o.S7);let d;d=(0,i.V2)(u)?u:i.xu.overview;const h={defaultClusterTab:d},p=(0,r.oM)({name:"cluster",initialState:h,reducers:{setDefaultClusterTab(e,t){e.defaultClusterTab=t.payload}}});function f(e){return t=>{(0,i.V2)(e)&&(localStorage.setItem(o.S7,e),t(p.actions.setDefaultClusterTab(e)))}}const m=p.reducer,g=s.h.injectEndpoints({endpoints:e=>({getClusterInfo:e.query({queryFn:async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",{signal:t}=arguments.length>1?arguments[1]:void 0;try{const n=await window.api.getClusterInfo(e,{signal:t}),r=n.Domain;if(!r)return{data:{clusterData:n}};try{const e=l(r),t=await window.api.sendQuery({schema:"modern",query:e,database:r,action:"execute-scan"});return(0,a.gW)(t)?{data:{clusterData:n}}:{data:{clusterData:n,groupsStats:c(t)}}}catch{return{data:{clusterData:n}}}}catch(n){return{error:n}}},providesTags:["All"]})}),overrideExisting:"throw"})},20163:(e,t,n)=>{"use strict";n.d(t,{g_:()=>c,W1:()=>u,ZP:()=>l});var r=n(1399),i=n(905),o=n(90860);const a=e=>{const{clusters:t=[]}=e;let n=new Map;t.forEach((e=>{let{versions:t=[]}=e;n=(0,o.kn)(t,n)}));const r=(0,o.n$)(n);return t.map((e=>({...e,preparedVersions:(0,o.B_)(e.versions,r)})))},s=(0,r.oM)({name:"clusters",initialState:{clusterName:"",status:[],service:[],version:[]},reducers:{changeClustersFilters:(e,t)=>({...e,...t.payload})}}),l=s.reducer,{changeClustersFilters:c}=s.actions,u=i.h.injectEndpoints({endpoints:e=>({getClustersList:e.query({queryFn:async(e,t)=>{let{signal:n}=t;try{const e=await window.api.getClustersList(void 0,{signal:n});return{data:a(e)}}catch(r){return{error:r}}},providesTags:["All"]})}),overrideExisting:"throw"})},83786:(e,t,n)=>{"use strict";n.d(t,{AJ:()=>x,B8:()=>w,K0:()=>S,NU:()=>b,ZP:()=>C,hO:()=>y,mg:()=>v,qV:()=>_});var r=n(18193),i=n(52317),o=n(39623),a=n(76765),s=n(905);const l=20,c=((0,a.U)("query","SEND_QUERY"),"query/CHANGE_USER_INPUT"),u="query/SAVE_QUERY_TO_HISTORY",d="query/GO_TO_PREVIOUS_QUERY",h="query/GO_TO_NEXT_QUERY",p="query/SET_TENANT_PATH",f=r.r.readUserSettingsValue(i.if,[]),m=f.length-l,g={loading:!1,input:"",history:{queries:f.slice(m<0?0:m).map((function(e){if("string"===typeof e)return{queryText:e};return e})),currentIndex:f.length>l?l-1:f.length-1}},v=s.h.injectEndpoints({endpoints:e=>({executeQuery:e.mutation({queryFn:async e=>{let{query:t,database:n,mode:r,schema:i="modern"}=e,a="execute",s=o.jM.yql;"pg"===r?(a="execute-query",s=o.jM.pg):r&&(a="execute-".concat(r));try{const e=await window.api.sendQuery({schema:i,query:t,database:n,action:a,syntax:s,stats:"full"});if((0,o.gW)(e))return{error:e};return{data:(0,o.gY)(e)}}catch(l){return{error:l}}}})}),overrideExisting:"throw"}),y=(e,t)=>({type:u,data:{queryText:e,mode:t}}),b=()=>({type:d}),x=()=>({type:h}),w=e=>{let{input:t}=e;return{type:c,data:{input:t}}},S=e=>({type:p,data:e}),_=e=>e.executeQuery.history.queries;const C=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case c:return{...e,input:t.data.input};case u:{const n=t.data.queryText,a=t.data.mode===o.wZ.pg?o.jM.pg:void 0,s=[...e.history.queries,{queryText:n,syntax:a}].slice(e.history.queries.length>=l?1:0);r.r.setUserSettingsValue(i.if,s);const c=s.length-1;return{...e,history:{queries:s,currentIndex:c}}}case d:{const t=e.history.currentIndex;if(t<=0)return e;const n=t-1,r=e.history.queries[n];return{...e,history:{...e.history,currentIndex:n},input:r.queryText}}case h:{const t=e.history.queries.length-1,n=e.history.currentIndex;if(n>=t)return e;const r=n+1,i=e.history.queries[r];return{...e,history:{...e.history,currentIndex:r},input:i.queryText}}case p:return{...e,tenantPath:t.data};default:return e}}},30667:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>h,Im:()=>d,MU:()=>f});var r=n(1399),i=n(52317),o=n(39623),a=n(905);const s="EndTime",l="IntervalEnd",c=e=>"(\n SELECT\n MAX(".concat(l,")\n FROM `").concat(e,"/.sys/top_queries_by_cpu_time_one_hour`\n)");const u=(0,r.oM)({name:"executeTopQueries",initialState:{},reducers:{setTopQueriesFilters:(e,t)=>({...e,...t.payload})}}),{setTopQueriesFilters:d}=u.actions,h=u.reducer,p=(e,t)=>{const n=function(e,t){const 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){const e=t.to===t.from?">=":">";n.push("".concat(s," ").concat(e," Timestamp('").concat(new Date(t.from).toISOString(),"')"))}return null!==t&&void 0!==t&&t.to&&n.push("".concat(s," <= Timestamp('").concat(new Date(t.to).toISOString(),"')")),null!==t&&void 0!==t&&t.from||null!==t&&void 0!==t&&t.to||n.push("".concat(l," IN ").concat(c(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,\n Duration\nFROM `".concat(e,"/.sys/top_queries_by_cpu_time_one_hour`\nWHERE ").concat(n||"true","\n")},f=a.h.injectEndpoints({endpoints:e=>({getTopQueries:e.query({queryFn:async(e,t)=>{let{database:n,filters:r}=e,{signal:a,dispatch:s}=t;try{const e=await window.api.sendQuery({schema:"modern",query:p(n,r),database:n,action:"execute-scan"},{signal:a});if((0,o.gW)(e))return{error:e};const t=(0,o.gY)(e);if((null===r||void 0===r||!r.from)&&(null===r||void 0===r||!r.to)){var l,c;const e=null===t||void 0===t||null===(l=t.result)||void 0===l||null===(c=l[0])||void 0===c?void 0:c.IntervalEnd;if(e){const t=new Date(e).getTime(),n=new Date(t-1e3*i.RQ).getTime();s(d({from:n,to:t}))}}return{data:t}}catch(u){return{error:u}}}})}),overrideExisting:"throw"})},56963:(e,t,n)=>{"use strict";n.d(t,{Xl:()=>a,ZP:()=>l,vj:()=>s});const r="ENABLE_FULLSCREEN_MODE",i="DISABLE_FULLSCREEN_MODE",o=!1;function a(){return{type:r}}function s(){return{type:i}}const l=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o;switch((arguments.length>1?arguments[1]:void 0).type){case i:return!1;case r:return!0;default:return e}}},79061:(e,t,n)=>{"use strict";n.d(t,{J:()=>o,Z:()=>a});const r="header/SET_HEADER_BREADCRUMBS",i={pageBreadcrumbsOptions:{}};function o(e,t){return{type:r,page:e,options:t}}const a=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i,t=arguments.length>1?arguments[1]:void 0;return t.type===r?{page:t.page,pageBreadcrumbsOptions:t.options}:e}},93717:(e,t,n)=>{"use strict";n.d(t,{E3:()=>o,U_:()=>l,Vc:()=>c,ZP:()=>s});var r=n(1399),i=n(905);const o={currentMetric:void 0,sort:!1,heatmap:!1},a=(0,r.oM)({name:"heatmap",initialState:o,reducers:{setHeatmapOptions:(e,t)=>({...e,...t.payload})}}),s=a.reducer,{setHeatmapOptions:l}=a.actions,c=i.h.injectEndpoints({endpoints:e=>({getHeatmapTabletsInfo:e.query({queryFn:async(e,t)=>{let{nodes:n,path:r}=e,{signal:i,getState:o,dispatch:a}=t;try{var s;const e=function(e){let[t,n]=e;const{TabletStateInfo:r=[]}=t,i=new Map,{PathDescription:o={}}=null!==n&&void 0!==n?n:{},{TablePartitions:a=[],TablePartitionStats:s=[],TablePartitionMetrics:l=[]}=o;r.forEach((e=>{e.TabletId&&i.set(e.TabletId,e)})),a.forEach(((e,t)=>{const n=Object.assign({},s[t],l[t]);e.DatashardId&&i.set(e.DatashardId,{...i.get(e.DatashardId),metrics:n})}));const c=Array.from(i.values()),u=c[0]&&c[0].metrics&&Object.keys(c[0].metrics).map((e=>({value:e,content:e})));return{tablets:c,metrics:u}}(await Promise.all([window.api.getTabletsInfo({nodes:n,path:r},{signal:i}),window.api.getHeatmapData({path:r},{signal:i})]));if(null!==(s=e.metrics)&&void 0!==s&&s.length){const t=o().heatmap.currentMetric;t&&e.metrics.find((e=>e.value===t))||a(l({currentMetric:e.metrics[0].value}))}return{data:e}}catch(c){return{error:c}}},providesTags:["All"]})}),overrideExisting:"throw"})},77952:(e,t,n)=>{"use strict";n.d(t,{AE:()=>s,Ou:()=>c,Vd:()=>l,ZP:()=>u,eE:()=>a});const r=(0,n(76765).U)("hot_keys","FETCH_HOT_KEYS"),i="hot_keys/SET_DATA_WAS_NOT_LOADED",o={loading:!0,wasLoaded:!1,data:null};function a(){return{type:i}}function s(){return{type:r.REQUEST}}function l(e){return{type:r.SUCCESS,data:e}}function c(e){return{type:r.FAILURE,error:e}}const u=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case r.REQUEST:return{...e,loading:!0};case r.SUCCESS:return{...e,data:t.data.hotkeys,loading:!1,error:void 0,wasLoaded:!0};case r.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:{...e,error:t.error,loading:!1};case i:return{...e,wasLoaded:!1};default:return e}}},9869:(e,t,n)=>{"use strict";n.d(t,{Z:()=>j,Q:()=>k});var r=n(38907),i=n(905),o=n(14146),a=n(77915),s=n(20163),l=n(83786),c=n(30667),u=n(56963),d=n(79061),h=n(93717);const p=(0,n(76765).U)("host","FETCH_HOST"),f={loading:!0,wasLoaded:!1,data:{}};const m=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case p.REQUEST:return{...e,loading:!0};case p.SUCCESS:var n;return{...e,data:null===(n=t.data.SystemStateInfo)||void 0===n?void 0:n[0],loading:!1,wasLoaded:!0,error:void 0};case p.FAILURE:return{...e,error:t.error,loading:!1};default:return e}};var g=n(77952),v=n(42703),y=n(97894),b=n(6748),x=n(71336),w=n(80839),S=n(9345);const _=function(){return!(arguments.length>0&&void 0!==arguments[0])||arguments[0]};var C=n(99399),E=n(40510),T=n(8511),O=n(53809),N=n(3027);const k={[i.h.reducerPath]:i.h.reducer,singleClusterMode:_,cluster:a.ZP,tenant:T.ZP,tooltip:N.ZP,tablets:C.ZP,schema:b.ZP,host:m,tenants:O.ZP,partitions:v.ZP,executeQuery:l.ZP,tabletsFilters:E.ZP,heatmap:h.ZP,settings:w.ZP,schemaAcl:x.ZP,executeTopQueries:c.ZP,shardsWorkload:S.ZP,hotKeys:g.ZP,authentication:o.ZP,header:d.Z,saveQuery:y.ZP,fullscreen:u.ZP,clusters:s.ZP},j=(0,r.UY)({...k})},99337:(e,t,n)=>{"use strict";n.d(t,{W:()=>o,d:()=>s});var r=n(36313),i=n(51688);const o=n(905).h.injectEndpoints({endpoints:e=>({getNodesList:e.query({queryFn:async(e,t)=>{let{signal:n}=t;try{return{data:await window.api.getNodesList({signal:n})}}catch(r){return{error:r}}},providesTags:["All"]})}),overrideExisting:"throw"}),a=o.endpoints.getNodesList.select(void 0),s=(0,r.P1)((e=>a(e).data),(e=>(0,i.dn)(e)))},42703:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>d,TB:()=>h,M$:()=>u});var r=n(1399),i=n(905),o=n(81854),a=n(1504),s=n(47651);const l=e=>{const{partition_offsets:t,store_size_bytes:n="0",last_write_time:r,max_write_time_lag:i,bytes_written:s,partition_node_id:l=0}=e||{},{start:c="0",end:u="0"}=t||{};return{storeSize:n,writeSpeed:(0,o.c4)(s),partitionWriteLag:(0,a.DA)(i),partitionWriteIdleTime:(0,a.lE)(r),startOffset:c,endOffset:u,partitionNodeId:l}},c=(0,r.oM)({name:"partitions",initialState:{selectedConsumer:""},reducers:{setSelectedConsumer:(e,t)=>{e.selectedConsumer=t.payload}}}),{setSelectedConsumer:u}=c.actions,d=c.reducer,h=i.h.injectEndpoints({endpoints:e=>({getPartitions:e.query({queryFn:async(e,t)=>{let{path:n,consumerName:r}=e,{signal:i}=t;try{if(r){const e=await window.api.getConsumer({path:n,consumer:r},{signal:i}),t=(e=>null===e||void 0===e?void 0:e.map((e=>{const{partition_id:t="0",partition_stats:n,partition_consumer_stats:r}=e,i=l(n),{endOffset:c}=i,{last_read_offset:u="0",committed_offset:d="0",read_session_id:h,last_read_time:p,max_read_time_lag:f,max_write_time_lag:m,bytes_read:g,reader_name:v,connection_node_id:y=0}=r||{},b=(0,s.kE)(c)&&(0,s.kE)(d)?Number(c)-Number(d):0,x=(0,s.kE)(c)&&(0,s.kE)(u)?Number(c)-Number(u):0;return{...i,partitionId:t,readSpeed:(0,o.c4)(g),consumerWriteLag:(0,a.DA)(m),consumerReadLag:(0,a.DA)(f),consumerReadIdleTime:(0,a.lE)(p),uncommitedMessages:b,unreadMessages:x,commitedOffset:d,readSessionId:h,readerName:v,connectionNodeId:y}})))(e.partitions);return{data:t}}{const e=await window.api.getTopic({path:n},{signal:i}),t=(e=>null===e||void 0===e?void 0:e.map((e=>{const{partition_id:t="0",partition_stats:n}=e;return{partitionId:t,...l(n)}})))(e.partitions);return{data:t}}}catch(c){return{error:c}}},providesTags:["All"]})}),overrideExisting:"throw"})},97894:(e,t,n)=>{"use strict";n.d(t,{GC:()=>a,ZP:()=>s});const r="SET_QUERY_NAME_TO_EDIT",i="CLEAR_QUERY_NAME_TO_EDIT",o=null;function a(e){return{type:r,data:e}}const s=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case r:return t.data;case i:return null;default:return e}}},6748:(e,t,n)=>{"use strict";n.d(t,{Ii:()=>v,J1:()=>g,ZP:()=>S,eU:()=>w,m7:()=>b,w4:()=>y,yM:()=>x});var r=n(36313),i=n(6523),o=n(18193),a=n(52317),s=n(76765);const l=(0,s.U)("schema","FETCH_SCHEMA"),c="schema/PRELOAD_SCHEMAS",u="schema/SET_SCHEMA",d="schema/SET_SHOW_PREVIEW",h="schema/SET_AUTOREFRESH_INTERVAL",p="schema/RESET_LOADING_STATE",f=Number(o.r.readUserSettingsValue(a.KU,0)),m={loading:!0,wasLoaded:!1,data:{},currentSchemaPath:void 0,autorefresh:isNaN(f)?0:f,showPreview:!1};function g(e){let{path:t}=e;const n=window.api.getSchema({path:t});return(0,s.Sz)({request:n,actions:l,dataHandler:e=>{const t={};return null!==e&&void 0!==e&&e.Path&&(t[e.Path]=e),{path:null===e||void 0===e?void 0:e.Path,currentSchema:null!==e&&void 0!==e?e:void 0,data:t}}})}function v(e){return{type:u,data:e}}function y(e){return t=>{o.r.setUserSettingsValue(a.KU,e),t({type:h,data:e})}}function b(e){return{type:d,data:e}}function x(e){return{type:c,data:e}}const w=(0,r.P1)([(e,t)=>t,(e,t,n)=>n,(e,t)=>{var n,r;return t?null===(n=e.schema.data[t])||void 0===n||null===(r=n.PathDescription)||void 0===r?void 0:r.Children:void 0}],((e,t,n)=>(0,i.St)(t)?null===n||void 0===n?void 0:n.map((t=>{let{Name:n}=t;return e+"/"+n})):void 0)),S=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case l.REQUEST:return{...e,loading:!0};case l.SUCCESS:{const n=!e.currentSchemaPath||e.currentSchemaPath===t.data.path,r={...e.data,...t.data.data};return n?{...e,error:void 0,data:r,currentSchema:t.data.currentSchema,currentSchemaPath:t.data.path,loading:!1,wasLoaded:!0}:{...e,data:r}}case l.FAILURE:var n;return null!==(n=t.error)&&void 0!==n&&n.isCancelled?e:{...e,error:t.error,loading:!1};case c:return{...e,data:{...t.data,...e.data}};case u:return{...e,currentSchemaPath:t.data};case h:return{...e,autorefresh:t.data};case d:return{...e,showPreview:t.data};case p:return{...e,wasLoaded:m.wasLoaded};default:return e}}},71336:(e,t,n)=>{"use strict";n.d(t,{Y:()=>s,Yg:()=>l,ZP:()=>c});var r=n(76765);const i=(0,r.U)("schemaAcl","FETCH_SCHEMA_ACL"),o="schemaAcl/SET_DATA_WAS_NOT_LOADED",a={loading:!1,wasLoaded:!1};function s(e){let{path:t}=e;return(0,r.Sz)({request:window.api.getSchemaAcl({path:t}),actions:i})}const l=()=>({type:o}),c=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.REQUEST:return{...e,loading:!0};case i.SUCCESS:{var n,r;const i=null===(n=t.data.Common)||void 0===n?void 0:n.ACL,o=null===(r=t.data.Common)||void 0===r?void 0:r.Owner;return{...e,acl:i,owner:o,loading:!1,wasLoaded:!0,error:void 0}}case i.FAILURE:var s;return null!==(s=t.error)&&void 0!==s&&s.isCancelled?e:{...e,error:t.error,loading:!1};case o:return{...e,wasLoaded:!1};default:return e}}},80839:(e,t,n)=>{"use strict";n.d(t,{Cx:()=>p,E3:()=>u,M6:()=>f,ZP:()=>g,m9:()=>h,pu:()=>s,qz:()=>m,xI:()=>d});var r=n(18193);const i="settings/CHANGE_PROBLEM_FILTER",o="settings/SET_VALUE",a="settings/SET_USER_SETTINGS",s={ALL:"All",PROBLEMS:"With problems"},l=r.r.extractSettingsFromLS(r.t),c=window.systemSettings||{},u={problemFilter:s.ALL,userSettings:l,systemSettings:c},d=(e,t)=>n=>{n({type:o,data:{name:e,value:t}}),r.r.setUserSettingsValue(e,t)},h=e=>({type:a,data:e}),p=(e,t)=>e.settings.userSettings[t],f=e=>({type:i,data:e}),m=e=>e.settings.problemFilter,g=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i:return{...e,problemFilter:t.data};case o:{const n={...e.userSettings,[t.data.name]:t.data.value};return{...e,userSettings:n}}case a:return{...e,userSettings:{...e.userSettings,...t.data}};default:return e}}},9345:(e,t,n)=>{"use strict";n.d(t,{Ag:()=>p,K2:()=>d,ZP:()=>h});var r=n(1399),i=n(39623),o=n(905),a=n(58660);function s(e){let{columnId:t,order:n}=e;return"".concat(t," ").concat(n)}function l(e,t,n,r){const i=r?"CAST(SUBSTRING(CAST(Path AS String), ".concat(r.length,") AS Utf8) AS Path"):"Path";let o="Path='".concat(e,"' OR Path LIKE '").concat(e,"/%'");const a=function(e){const 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){const 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));const l=n?"ORDER BY ".concat(n.map(s).join(", ")):"";return"SELECT\n ".concat(i,",\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(l,"\nLIMIT 20")}function c(e,t,n){const r=n?"CAST(SUBSTRING(CAST(Path AS String), ".concat(n.length,") AS Utf8) AS Path"):"Path",i=t?"ORDER BY ".concat(t.map(s).join(", ")):"";return"SELECT\n ".concat(r,",\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(i,"\nLIMIT 20")}const u=(0,r.oM)({name:"shardsWorkload",initialState:{},reducers:{setShardsQueryFilters:(e,t)=>({...e,...t.payload})}}),{setShardsQueryFilters:d}=u.actions,h=u.reducer,p=o.h.injectEndpoints({endpoints:e=>({sendShardQuery:e.query({queryFn:async(e,t)=>{let{database:n,path:r="",sortOrder:o,filters:s}=e,{signal:u}=t;try{const e=await window.api.sendQuery({schema:"modern",query:(null===s||void 0===s?void 0:s.mode)===a.F.Immediate?c(r,o,n):l(r,s,o,n),database:n,action:"execute-scan"},{signal:u});if((0,i.gW)(e))return{error:e};return{data:(0,i.gY)(e)}}catch(d){return{error:d}}},providesTags:["All"]})}),overrideExisting:"throw"})},58660:(e,t,n)=>{"use strict";let r;n.d(t,{F:()=>r}),function(e){e.Immediate="immediate",e.History="history"}(r||(r={}))},99399:(e,t,n)=>{"use strict";n.d(t,{Sq:()=>f,ZP:()=>u,zg:()=>d});var r=n(1399),i=n(36313),o=n(905),a=n(99337);const s=(0,r.oM)({name:"tablets",initialState:{stateFilter:[],typeFilter:[]},reducers:{setStateFilter:(e,t)=>{e.stateFilter=t.payload},setTypeFilter:(e,t)=>{e.typeFilter=t.payload}}}),{setStateFilter:l,setTypeFilter:c}=s.actions,u=s.reducer,d=o.h.injectEndpoints({endpoints:e=>({getTabletsInfo:e.query({queryFn:async(e,t)=>{let{signal:n}=t;try{return{data:await window.api.getTabletsInfo(e,{signal:n})}}catch(r){return{error:r}}},providesTags:["All"]})}),overrideExisting:"throw"}),h=(0,i.P1)(((e,t)=>({nodeId:e,path:t})),(e=>{let{nodeId:t,path:n}=e;return d.endpoints.getTabletsInfo.select(void 0===t?{path:n}:{nodes:[t]})})),p=(0,i.P1)((e=>e),((e,t,n)=>h(t,n)),((e,t)=>t(e).data)),f=(0,i.P1)(((e,t,n)=>p(e,t,n)),(e=>(0,a.d)(e)),((e,t)=>null!==e&&void 0!==e&&e.TabletStateInfo?t?e.TabletStateInfo.map((e=>{const n=void 0===e.NodeId?void 0:t.get(e.NodeId);return{...e,fqdn:n}})):e.TabletStateInfo:[]))},40510:(e,t,n)=>{"use strict";n.d(t,{$S:()=>l,NM:()=>d,TI:()=>p,ZP:()=>f,ct:()=>h,jk:()=>u,nq:()=>c});var r=n(36313),i=n(52317),o=n(76765);const a=(0,o.U)("tabletsFilters","FETCH_TABLETS_FILTERS"),s={data:void 0,loading:!0,wasLoaded:!1,stateFilter:[],typeFilter:[]},l=()=>({type:"CLEAR_WAS_LOADING_TABLETS"}),c=e=>({type:"SET_STATE_FILTER",data:e}),u=e=>({type:"SET_TYPE_FILTER",data:e});function d(e){return(0,o.Sz)({request:Promise.all([window.api.getTabletsInfo(e),window.api.getNodesList()]),actions:a})}const h=e=>{const{tabletsData:t}=e.tabletsFilters;return(null===t||void 0===t?void 0:t.TabletStateInfo)||[]},p=(0,r.P1)([h,e=>e.tabletsFilters.stateFilter,e=>e.tabletsFilters.typeFilter],((e,t,n)=>{let r=e;return n.length>0&&(r=r.filter((e=>n.some((t=>e.Type===t))))),t.length>0&&(r=r.filter((e=>t.some((t=>e.State===t))))),r})),f=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case a.REQUEST:return{...e,loading:!0,requestTime:(new Date).getTime()};case a.SUCCESS:{const n=(new Date).getTime()-e.requestTime,[r,o]=t.data;return{...e,tabletsData:r,nodes:o,loading:!1,wasLoaded:!0,timeoutForRequest:n>i.t_?n:i.t_,error:void 0}}case a.FAILURE:return{...e,error:t.error||"Request-URI Too Large. Please reload the page",loading:!1};case"CLEAR_WAS_LOADING_TABLETS":{const{stateFilter:t,typeFilter:n}=e;return{...s,stateFilter:t,typeFilter:n}}case"SET_STATE_FILTER":return{...e,stateFilter:t.data};case"SET_TYPE_FILTER":return{...e,typeFilter:t.data};default:return e}}},24015:(e,t,n)=>{"use strict";n.d(t,{Xk:()=>l,_0:()=>o,bS:()=>r,m2:()=>i,qQ:()=>a,uw:()=>s});const r="tenantPage",i={query:"query",diagnostics:"diagnostics"},o={newQuery:"newQuery",history:"history",saved:"saved"},a={overview:"overview",schema:"schema",topQueries:"topQueries",topShards:"topShards",nodes:"nodes",tablets:"tablets",storage:"storage",network:"network",describe:"describe",hotKeys:"hotKeys",graph:"graph",consumers:"consumers",partitions:"partitions"},s={overview:"overview",acl:"acl",schema:"schema"},l={cpu:"cpu",storage:"storage",memory:"memory",healthcheck:"healthcheck"}},8511:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>d,$v:()=>f,jk:()=>p,Tu:()=>m,Cs:()=>h,$1:()=>v});var r=n(1399),i=n(18193),o=n(52317),a=n(905),s=n(95408),l=n(24015);const c={tenantPage:s.z.nativeEnum(l.m2).catch(i.t[o.pf]).parse(i.r.readUserSettingsValue(o.pf))},u=(0,r.oM)({name:"tenant",initialState:c,reducers:{setTenantPage:(e,t)=>{e.tenantPage=t.payload},setQueryTab:(e,t)=>{e.queryTab=t.payload},setDiagnosticsTab:(e,t)=>{e.diagnosticsTab=t.payload},setSummaryTab:(e,t)=>{e.summaryTab=t.payload},setMetricsTab:(e,t)=>{e.metricsTab=t.payload}}}),d=u.reducer,{setTenantPage:h,setQueryTab:p,setDiagnosticsTab:f,setSummaryTab:m,setMetricsTab:g}=u.actions,v=a.h.injectEndpoints({endpoints:e=>({getTenantInfo:e.query({queryFn:async(e,t)=>{let{path:n}=e,{signal:r}=t;try{var i,o;return{data:null!==(i=null===(o=(await window.api.getTenantInfo({path:n},{signal:r})).TenantInfo)||void 0===o?void 0:o[0])&&void 0!==i?i:null}}catch(a){return{error:a}}},providesTags:["All"]})}),overrideExisting:"throw"})},35240:(e,t,n)=>{"use strict";n.d(t,{L:()=>r,l:()=>i});const r={Unspecified:"Unspecified",Good:"Good",Warning:"Warning",Danger:"Danger"},i={[r.Unspecified]:0,[r.Good]:1,[r.Warning]:2,[r.Danger]:3}},53809:(e,t,n)=>{"use strict";n.d(t,{Xv:()=>c,ZP:()=>l,gI:()=>s});var r=n(1399),i=n(905),o=n(30696);const a=(0,r.oM)({name:"tenants",initialState:{searchValue:""},reducers:{setSearchValue:(e,t)=>{e.searchValue=t.payload}}}),{setSearchValue:s}=a.actions,l=a.reducer,c=i.h.injectEndpoints({endpoints:e=>({getTenantsInfo:e.query({queryFn:async(e,t)=>{let{clusterName:n}=e,{signal:r,getState:i}=t;try{const e=await window.api.getTenants(n,{signal:r});let t;if(Array.isArray(e.TenantInfo)){const{singleClusterMode:n}=i();t=(0,o.Rp)(e.TenantInfo,n)}else t=[];return{data:t}}catch(a){return{error:a}}},providesTags:["All"]})}),overrideExisting:"throw"})},30696:(e,t,n)=>{"use strict";n.d(t,{B8:()=>m,Gz:()=>u,HH:()=>s,Lv:()=>y,Rp:()=>l,Vn:()=>g,_W:()=>v,_g:()=>p,hJ:()=>d,nD:()=>h,nr:()=>f});var r=n(9416),i=(n(81854),n(4119),n(47651)),o=n(35240);const a=e=>{if(e)return e.map((e=>{if(e.Name){const t=Number(e.Usage)||0,n=Number(e.Threads),r=n*t;return{name:e.Name,usage:100*t,limit:n,used:r}}})).filter((e=>void 0!==e))},s=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{CoresUsed:t,MemoryUsed:n,StorageAllocatedSize:o,MemoryLimit:s,StorageAllocatedLimit:l,PoolStats:u,Metrics:d={},DatabaseQuotas:h={},StorageUsage:p,QuotaUsage:f}=e,m=1e6*Number(t)||0,g=Number(n)||0,v=Number(o)||0,y=Number(d.Storage)||0,b=(0,i.kE)(s)?Number(s):void 0,x=(0,i.kE)(l)?Number(l):void 0,w=(0,i.kE)(h.data_size_soft_quota)?Number(h.data_size_soft_quota):void 0,S=a(u);let _,C;_=p?p.map((e=>{const{Type:t,Size:n,Limit:r}=e,i=Number(n),o=Number(r);return{name:t,used:i,limit:o,usage:c(i,o)}})):[{name:r.Fx.SSD,used:v,limit:x,usage:c(v,x)}],f?C=f.map((e=>{const{Type:t,Size:n,Limit:r}=e,i=Number(n),o=Number(r);return{name:t,used:i,limit:o,usage:c(i,o)}})):w&&(C=[{name:r.Fx.SSD,used:y,limit:w,usage:c(y,w)}]);return{memory:g,blobStorage:v,tabletStorage:y,memoryLimit:b,blobStorageLimit:x,tabletStorageLimit:w,cpu:m,poolsStats:S,memoryStats:[{name:"Process",used:g,limit:b,usage:c(g,b)}],blobStorageStats:_,tabletStorageStats:C}},l=(e,t)=>e.map((n=>{var r;const o=t?(e=>{var t;const n=e.Nodes?e.Nodes[0]:{},r=n.Host&&n.Endpoints?null===(t=n.Endpoints.find((e=>"http-mon"===e.Name)))||void 0===t?void 0:t.Address:void 0;return n.Host?"".concat(n.Host).concat(r||""):void 0})(n):void 0,a=null===(r=e.find((e=>e.Id===n.ResourceId)))||void 0===r?void 0:r.Name,l=(e=>{var t,n;const r=null===(t=e.Name)||void 0===t?void 0:t.split("/"),i=null!==r&&void 0!==r&&r.length?r[r.length-1]:"\u2014",o=null===(n=e.ControlPlane)||void 0===n?void 0:n.name;return null!==o&&void 0!==o?o:i})(n),{cpu:c,memory:u,blobStorage:d}=s(n),{nodesCount:h,groupsCount:p}=(e=>{var t;const{StorageGroups:n,NodeIds:r}=e;return{nodesCount:null!==(t=null===r||void 0===r?void 0:r.length)&&void 0!==t?t:0,groupsCount:(0,i.kE)(n)?Number(n):0}})(n);return{...n,backend:o,sharedTenantName:a,controlPlaneName:l,cpu:c,memory:u,storage:d,nodesCount:h,groupsCount:p}}));function c(e,t){if(e&&t)return 100*e/t}const u=70,d=60,h=85,p=75,f=70,m=60,g=e=>e?e>u?o.L.Danger:e>d?o.L.Warning:o.L.Good:o.L.Unspecified,v=e=>e?e>h?o.L.Danger:e>p?o.L.Warning:o.L.Good:o.L.Unspecified,y=e=>e?e>f?o.L.Danger:e>m?o.L.Warning:o.L.Good:o.L.Unspecified},3027:(e,t,n)=>{"use strict";n.d(t,{MB:()=>a,ZP:()=>u,hJ:()=>c,i8:()=>l});var r=n(85690),i=n.n(r);const o="tooltip/HIDE_TOOLTIP",a="tooltip/UPDATE_REF",s={toolTipVisible:!1,currentHoveredRef:void 0,data:void 0,templateType:"pool"},l=()=>({type:o}),c=(e,t,n,r,i)=>({type:a,node:e,data:t,templateType:n,additionalData:r,positions:i}),u=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o:return{...e,currentHoveredRef:void 0,toolTipVisible:!1};case a:return"cell"===t.templateType&&i()(t.node,e.currentHoveredRef)?{...e,currentHoveredRef:void 0,toolTipVisible:!1}:{...e,toolTipVisible:!0,currentHoveredRef:t.node,positions:t.positions,data:t.data,additionalData:t.additionalData,templateType:t.templateType};default:return e}}},76765:(e,t,n)=>{"use strict";n.d(t,{Sz:()=>l,U:()=>s});var r=n(80977),i=n(30490),o=n(14146);const a=e=>e;function s(e,t){return{REQUEST:"".concat(e,"/").concat(t,"_REQUEST"),SUCCESS:"".concat(e,"/").concat(t,"_SUCCESS"),FAILURE:"".concat(e,"/").concat(t,"_FAILURE")}}function l(e){let{actions:t,request:n,dataHandler:s=a}=e;return async function(e,a){e({type:t.REQUEST});try{const r=await n,i=s(r,a);return e({type:t.SUCCESS,data:i}),i}catch(l){return(0,i.$)(l)&&401===l.status?e({type:o.Pq.SUCCESS}):(0,i.$)(l)&&l.status>=500&&l.statusText&&(0,r.Z)({name:"Request failure",title:"Request failure",type:"error",content:"".concat(l.status," ").concat(l.statusText)}),void e({type:t.FAILURE,error:l})}}}},75850:(e,t,n)=>{"use strict";let r;n.d(t,{K:()=>r}),function(e){e.Grey="Grey",e.Green="Green",e.Blue="Blue",e.Yellow="Yellow",e.Orange="Orange",e.Red="Red"}(r||(r={}))},35638:(e,t,n)=>{"use strict";var r,i;let o,a;var s;let l,c;var u,d,h,p,f;let m;var g,v,y,b,x,w,S;n.d(t,{C6:()=>l,tB:()=>m,mR:()=>a,gb:()=>o}),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"}(r||(r={})),function(e){e.UNKNOWN="UNKNOWN",e.USER="USER",e.GROUP="GROUP"}(i||(i={})),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",e.EPathTypeExternalDataSource="EPathTypeExternalDataSource",e.EPathTypeExternalTable="EPathTypeExternalTable",e.EPathTypeView="EPathTypeView",e.EPathTypeReplication="EPathTypeReplication"}(o||(o={})),function(e){e.EPathSubTypeEmpty="EPathSubTypeEmpty",e.EPathSubTypeSyncIndexImplTable="EPathSubTypeSyncIndexImplTable",e.EPathSubTypeAsyncIndexImplTable="EPathSubTypeAsyncIndexImplTable",e.EPathSubTypeStreamImpl="EPathSubTypeStreamImpl"}(a||(a={})),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"}(s||(s={})),function(e){e.ColumnCodecPlain="ColumnCodecPlain",e.ColumnCodecLZ4="ColumnCodecLZ4",e.ColumnCodecZSTD="ColumnCodecZSTD"}(l||(l={})),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"}(c||(c={})),function(e){e.ECdcStreamModeInvalid="ECdcStreamModeInvalid",e.ECdcStreamModeKeysOnly="ECdcStreamModeKeysOnly",e.ECdcStreamModeUpdate="ECdcStreamModeUpdate",e.ECdcStreamModeNewImage="ECdcStreamModeNewImage",e.ECdcStreamModeOldImage="ECdcStreamModeOldImage",e.ECdcStreamModeNewAndOldImages="ECdcStreamModeNewAndOldImages"}(u||(u={})),function(e){e.ECdcStreamFormatInvalid="ECdcStreamFormatInvalid",e.ECdcStreamFormatProto="ECdcStreamFormatProto",e.ECdcStreamFormatJson="ECdcStreamFormatJson"}(d||(d={})),function(e){e.ECdcStreamStateInvalid="ECdcStreamStateInvalid",e.ECdcStreamStateReady="ECdcStreamStateReady",e.ECdcStreamStateDisabled="ECdcStreamStateDisabled"}(h||(h={})),function(e){e.HASH_FUNCTION_MODULO_N="HASH_FUNCTION_MODULO_N",e.HASH_FUNCTION_CLOUD_LOGS="HASH_FUNCTION_CLOUD_LOGS"}(p||(p={})),function(e){e.COLUMN_ENGINE_NONE="COLUMN_ENGINE_NONE",e.COLUMN_ENGINE_REPLACING_TIMESERIES="COLUMN_ENGINE_REPLACING_TIMESERIES"}(f||(f={})),function(e){e.METERING_MODE_RESERVED_CAPACITY="METERING_MODE_RESERVED_CAPACITY",e.METERING_MODE_REQUEST_UNITS="METERING_MODE_REQUEST_UNITS"}(m||(m={})),function(e){e.SysLog="SysLog",e.Log="Log",e.Data="Data",e.External="External"}(g||(g={})),function(e){e.Unspecified="Unspecified",e.Freeze="Freeze",e.Unfreeze="Unfreeze"}(v||(v={})),function(e){e.ColumnCacheNone="ColumnCacheNone",e.ColumnCacheOnce="ColumnCacheOnce",e.ColumnCacheEver="ColumnCacheEver"}(y||(y={})),function(e){e.ColumnStorage1="ColumnStorage1",e.ColumnStorage2="ColumnStorage2",e.ColumnStorage1Ext1="ColumnStorage1Ext1",e.ColumnStorage1Ext2="ColumnStorage1Ext2",e.ColumnStorage2Ext1="ColumnStorage2Ext1",e.ColumnStorage2Ext2="ColumnStorage2Ext2",e.ColumnStorage1Med2Ext2="ColumnStorage1Med2Ext2",e.ColumnStorage2Med2Ext2="ColumnStorage2Med2Ext2",e.ColumnStorageTest_1_2_1k="ColumnStorageTest_1_2_1k"}(b||(b={})),function(e){e.CompactionStrategyUnset="CompactionStrategyUnset",e.CompactionStrategyGenerational="CompactionStrategyGenerational",e.CompactionStrategySharded="CompactionStrategySharded"}(x||(x={})),function(e){e.EIndexTypeInvalid="EIndexTypeInvalid",e.EIndexTypeGlobal="EIndexTypeGlobal",e.EIndexTypeGlobalAsync="EIndexTypeGlobalAsync"}(w||(w={})),function(e){e.EIndexStateInvalid="EIndexStateInvalid",e.EIndexStateReady="EIndexStateReady",e.EIndexStateNotReady="EIndexStateNotReady",e.EIndexStateWriteOnly="EIndexStateWriteOnly"}(S||(S={}))},28164:(e,t,n)=>{"use strict";let r,i;n.d(t,{F:()=>r,g:()=>i}),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"}(r||(r={})),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"}(i||(i={}))},9416:(e,t,n)=>{"use strict";let r,i,o,a;n.d(t,{Fx:()=>a,Hi:()=>r}),function(e){e.UnknownTenantType="UnknownTenantType",e.Domain="Domain",e.Dedicated="Dedicated",e.Shared="Shared",e.Serverless="Serverless"}(r||(r={})),function(e){e.STATE_UNSPECIFIED="STATE_UNSPECIFIED",e.CREATING="CREATING",e.RUNNING="RUNNING",e.REMOVING="REMOVING",e.PENDING_RESOURCES="PENDING_RESOURCES",e.CONFIGURING="CONFIGURING"}(i||(i={})),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"}(o||(o={})),function(e){e.None="None",e.HDD="HDD",e.SSD="SSD"}(a||(a={}))},57510:(e,t,n)=>{"use strict";n.d(t,{t:()=>p,d:()=>d});var r=n(52317),i=n(4119),o=n(47651),a=n(30817);const s=JSON.parse('{"b":"B","kb":"KB","mb":"MB","gb":"GB","tb":"TB","perSecond":"/s"}'),l=JSON.parse('{"b":"\u0411","kb":"\u041a\u0411","mb":"\u041c\u0411","gb":"\u0413\u0411","tb":"\u0422\u0411","perSecond":"/\u0441"}'),c=(0,a.wZ)("ydb-bytes-parsers",{ru:l,en:s}),u={b:{value:1,label:c("b")},kb:{value:r.h0,label:c("kb")},mb:{value:r.nQ,label:c("mb")},gb:{value:r.GS,label:c("gb")},tb:{value:r.Bp,label:c("tb")}},d=(e,t)=>{const n=10**t,r=u.tb.value*n,i=u.gb.value*n,o=u.mb.value*n;let a="b";return e>=u.kb.value*n&&(a="kb"),e>=o&&(a="mb"),e>=i&&(a="gb"),e>=r&&(a="tb"),a},h=(e,t)=>e+" ".concat(u[t].label),p=e=>{let{value:t,size:n,withSpeedLabel:r=!1,withSizeLabel:a=!0,significantDigits:s=0,...l}=e;if(!(0,o.kE)(t))return"";const p=Number(t),f=null!==n&&void 0!==n?n:d(p,s),m=(e=>{let{value:t,size:n="mb",precision:r=0}=e;const o=(0,i.W0)(Number(t)/u[n].value,r);return(0,i.uf)(o)})({value:p,size:f,...l});return r?((e,t)=>h(e,t)+c("perSecond"))(m,f):a?h(m,f):m}},81854:(e,t,n)=>{"use strict";n.d(t,{c4:()=>o,td:()=>r.t,dT:()=>r.d});var r=n(57510),i=n(52317);const o=e=>({perMinute:e&&e.per_minute?Math.round(Number(e.per_minute)/i.sU):0,perHour:e&&e.per_hour?Math.round(Number(e.per_hour)/i.RQ):0,perDay:e&&e.per_day?Math.round(Number(e.per_day)/i.ii):0})},90860:(e,t,n)=>{"use strict";n.d(t,{B_:()=>u,kn:()=>l,n$:()=>c});var r=n(60619),i=n.n(r),o=n(30601),a=n(94076);const s="__no_color__",l=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Map;return e.forEach((e=>{var n;let{version:r,version_base_color_index:i=s}=e;const a=(0,o.H)(r);t.has(i)||t.set(i,new Set),null===(n=t.get(i))||void 0===n||n.add(a)})),t},c=e=>{const t=new Map;for(const[n,r]of e)Array.from(r).sort(((e,t)=>(0,a.un)(t)-(0,a.un)(e))).forEach(((e,i)=>{if(n===s)t.set(e,a.HD);else{const o=Number(n)%a.DM.length,s=r.size,l=a.DM[o],c=Math.max(100-i*(100/s),20),u=Math.round(255*c/100).toString(16),d="".concat(l).concat(u);t.set(e,d)}}));return t},u=function(){let e=arguments.length>1?arguments[1]:void 0;const t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).filter((e=>e.version));return i()(t,"version").map((e=>({...e,minorVersion:(0,o.H)(e.version)}))).reduce(((t,n)=>{const r=e.get(n.minorVersion);return t.push({...n,color:r}),t}),[])}},52317:(e,t,n)=>{"use strict";n.d(t,{Ac:()=>j,Ah:()=>S,Bp:()=>u,DG:()=>k,DO:()=>_,E6:()=>V,ET:()=>Y,FU:()=>C,GS:()=>c,HN:()=>m,IG:()=>Q,JZ:()=>J,KS:()=>P,KU:()=>A,LE:()=>H,ME:()=>a,Mn:()=>z,N1:()=>D,Px:()=>T,RQ:()=>h,Rq:()=>K,S7:()=>U,UF:()=>N,Wm:()=>G,XN:()=>R,XX:()=>$,ZY:()=>q,bw:()=>E,eG:()=>B,fl:()=>x,h0:()=>s,if:()=>I,ii:()=>p,jX:()=>w,nQ:()=>l,pf:()=>Z,qV:()=>v,sO:()=>F,sU:()=>d,sl:()=>b,tV:()=>g,t_:()=>o,w7:()=>W,wr:()=>M,x5:()=>y,y6:()=>X,yD:()=>f,yT:()=>O,z4:()=>L});var r=n(19812),i=n(28164);const o=1e4,a=3e4,s=1e3,l=1e6,c=1e9,u=1e12,d=60,h=60*d,p=24*h,f=1e6,m={Created:"grey",ResolveStateStorage:"lightgrey",Candidate:"lightgrey",BlockBlobStorage:"lightgrey",RebuildGraph:"yellow",Restored:"yellow",Discover:"orange",Lock:"lightblue",Dead:"black",Active:"lightgreen"},g={[i.F.OldTxProxy]:"P",[i.F.TxProxy]:"P",[i.F.BSController]:"BS",[i.F.Dummy]:"DY",[i.F.RTMRPartition]:"RP",[i.F.PersQueueReadBalancer]:"PB",[i.F.Cms]:"CM",[i.F.BlockStorePartition]:"BP",[i.F.BlockStoreVolume]:"BV",[i.F.Console]:"CN",[i.F.TenantSlotBroker]:"TB",[i.F.BlockStoreDiskRegistry]:"BDR"},v=e=>{var t;if(!e)return;const n=null===(t=e.match(/[A-Z]/g))||void 0===t?void 0:t.join("");return(e=>e in g)(e)?g[e]:n},y=["1 min","5 min","15 min"],b={green:5,yellow:4,orange:3,red:2,blue:1,grey:1},x=5,w="\u2014",S="Developer UI",_="Cluster",C="Database",E="theme",T="language",O="invertedDisks",N="useNodesEndpointInDiagnostics",k="saved_queries",j="asideHeaderCompact",I="queries_history",P="tune-columns-popup",D="binaryDataInPlainTextDisplay",A="auto-refresh-interval",R="default-size-result-pane",M="default-size-tenant-summary-pane",L="default-size-tenant-pane",F="default-is-tenant-summary-collapsed",z="default-is-tenant-common-info-collapsed",B="default-is-query-result-collapsed",U="default-cluster-tab",H={displayIndices:!1,stickyHead:r.ZP.MOVING,syncHeadOnResize:!0,dynamicRender:!0,highlightRows:!0},V={...H,stickyHead:"fixed",dynamicRender:!1},G="query_initial_mode",W="last_used_query_action",q="partitionsHiddenColumns",Z="saved_tenant_initial_tab",Y="useBackendParamsForTables",K="queryUseMultiSchema",Q="useClusterBalancerAsBacked",X="enableAutocomplete",$="autocompleteOnEnter",J="isHotKeysHelpHidden"},80977:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(63660);const i=function(e){let{name:t,title:n,type:i,content:o}=e;return r.m.add({name:null!==t&&void 0!==t?t:"Request succeeded",title:null!==n&&void 0!==n?n:"Request succeeded",theme:"error"===i?"danger":"success",content:o,isClosable:!0,autoHiding:"success"===i&&5e3})}},4119:(e,t,n)=>{"use strict";n.d(t,{fG:()=>k,OW:()=>N,t$:()=>f,td:()=>p,SX:()=>m,LO:()=>T,o0:()=>O,gC:()=>b,uf:()=>_,QO:()=>x,q3:()=>w,JD:()=>S,CH:()=>v,W0:()=>C,a2:()=>g});var r=n(396),i=n(57510),o=n(52317),a=n(36453),s=n.n(a),l=(n(40022),n(30817));Object.values(l.Uo).forEach((e=>{s().locales[e]&&(s().locales[e].delimiters.thousands=" ")})),s().locale(l.ag.lang);const c=s();var u=n(47651);const d=JSON.parse('{"format-cpu.cores":["core","cores","cores","cores"]}'),h=JSON.parse('{"format-cpu.cores":["\u044f\u0434\u0440\u043e","\u044f\u0434\u0440\u0430","\u044f\u0434\u0435\u0440","\u044f\u0434\u0435\u0440"]}'),p=((0,l.wZ)("ydb-format-cpu",{ru:h,en:d}),e=>(0,u.kE)(e)?c(e).format("0 b"):""),f=e=>{const t=p(e);return t?t+"/s":""},m=e=>"".concat(Math.floor(Number(e)/o.GS)," GB"),g=e=>e?Object.values(e).join("-"):"",v=e=>e.NodeId&&e.PDiskId?"".concat(e.NodeId,"-").concat(e.PDiskId):void 0,y=e=>{const t=Math.floor(e/o.ii),n=e%o.ii;return[t&&"".concat(t,"d"),c(n).format("00:00:00")].filter(Boolean).join(" ")},b=e=>e&&y(e/1e3),x=(e,t,n)=>{let r=(0,i.d)(Number(e),0),o=!0,a=0;(0,u.kE)(t)&&(r=(0,i.d)(Number(t),0),o=!1,a=1);return[(0,i.t)({value:e,withSizeLabel:o,size:n||r,precision:a}),(0,i.t)({value:t,size:n||r})]},w=(e,t)=>x(e,t,"gb"),S=(e,t)=>x(e,t,"tb"),_=e=>(0,u.kE)(e)?c(e).format("0,0.[00000]"):"",C=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,[n]=String(e).split(".");return Number(e)<1&&(n=""),n.length>=t?Math.round(Number(e)):Number(Number(e).toFixed(t-n.length))},E=e=>{const t=Number(e)/1e6;return C(t,3)},T=e=>{if(void 0!==e)return c(E(e)).format("0.[000]")},O=e=>{var t;if(!(0,u.kE)(e))return"";const n=null===(t=(0,r.J)(Number(e)))||void 0===t?void 0:t.format("YYYY-MM-DD HH:mm");return Number(e)>0&&n?n:"N/A"},N=e=>{const t=(new Date).getTime()-Number(e);return t<=0?0:t/1e3},k=e=>y(N(Number(e)))},48169:(e,t,n)=>{"use strict";n.d(t,{ok:()=>a,wq:()=>o,yf:()=>s});var r=n(27102),i=n(47651);const o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.y3;const n=/\/node\/\d+\/?$/g;return n.test(String(t))?String(t).replace(n,"/node/".concat(e,"/")):"".concat(null!==t&&void 0!==t?t:"","/node/").concat(e,"/")},a=e=>{let{nodeId:t,pDiskId:n,host:r}=e;const a="actors/pdisks/pdisk"+(0,i.bJ)(n);return o(t,r)+a},s=e=>{let{nodeId:t,pDiskId:n,vDiskSlotId:r,host:a}=e;const s="actors/vdisks/vdisk"+(0,i.bJ)(n)+"_"+(0,i.bJ)(r);return o(t,a)+s}},27070:(e,t,n)=>{"use strict";n.d(t,{A:()=>a,Y:()=>s});var r=n(81413),i=n(43680),o=n.n(i);const a=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.hr;return e?t===r.hr?"-"+e:e:""},s=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return new RegExp(o()(e),"i")}},30817:(e,t,n)=>{"use strict";n.d(t,{Uo:()=>r,Fp:()=>l,ag:()=>u,wZ:()=>d});var r,i=n(31329),o=n(24205),a=n(18193),s=n(52317);!function(e){e.En="en",e.Ru="ru"}(r||(r={}));const l=r.En,c=a.r.readUserSettingsValue(s.Px,l),u=new i.mb({lang:c,fallbackLang:r.En});function d(e,t){for(const n of Object.keys(t))u.registerKeyset(n,e,t[n]);return u.keyset(e)}(0,o.jQ)({lang:c})},60749:(e,t,n)=>{"use strict";n.d(t,{K:()=>r});const r="s-expression"},62729:(e,t,n)=>{"use strict";n.d(t,{EQ:()=>u,JX:()=>l,Oo:()=>r,Ot:()=>a,S8:()=>d,j:()=>o,t6:()=>s,vy:()=>i,yJ:()=>c});const r="yql",i=["String","Bool","Int32","Uint32","Int64","Uint64","Float","Double","Void","Yson","Utf8","Unit","Json","Date","Datetime","Timestamp","Interval","Null","Int8","Uint8","Int16","Uint16","TzDate","TzDatetime","TzTimestamp","Uuid","EmptyList","EmptyDict","JsonDocument","DyNumber"],o=["CAST","COALESCE","LENGTH","LEN","SUBSTRING","FIND","RFIND","StartsWith","EndsWith","IF","NANVL","Random","RandomNumber","RandomUuid","CurrentUtcDate","CurrentUtcDatetime","CurrentUtcTimestamp","CurrentTzDate","CurrentTzDatetime","CurrentTzTimestamp","AddTimezone","RemoveTimezone","MAX_OF","MIN_OF","GREATEST","LEAST","AsTuple","AsStruct","AsList","AsDict","AsSet","AsListStrict","AsDictStrict","AsSetStrict","Variant","AsVariant","Enum","AsEnum","AsTagged","Untag","TableRow","JoinTableRow","Ensure","EnsureType","EnsureConvertibleTo","ToBytes","FromBytes","ByteAt","TestBit","ClearBit","SetBit","FlipBit","Abs","Just","Unwrap","Nothing","Callable","StaticMap","StaticZip","ListCreate","AsListStrict","ListLength","ListHasItems","ListCollect","ListSort","ListSortAsc","ListSortDesc","ListExtend","ListExtendStrict","ListUnionAll","ListZip","ListZipAll","ListEnumerate","ListReverse","ListSkip","ListTake","ListIndexOf","ListMap","ListFilter","ListFlatMap","ListNotNull","ListFlatten","ListUniq","ListAny","ListAll","ListHas","ListHead","ListLast","ListMin","ListMax","ListSum","ListAvg","ListFold","ListFold1","ListFoldMap","ListFold1Map","ListFromRange","ListReplicate","ListConcat","ListExtract","ListTakeWhile","ListSkipWhile","ListAggregate","ToDict","ToMultiDict","ToSet","DictCreate","SetCreate","DictLength","DictHasItems","DictItems","DictKeys","DictPayloads","DictLookup","DictContains","DictAggregate","SetIsDisjoint","SetIntersection","SetIncludes","SetUnion","SetDifference","SetSymmetricDifference","TryMember","ExpandStruct","AddMember","RemoveMember","ForceRemoveMember","ChooseMembers","RemoveMembers","ForceRemoveMembers","CombineMembers","FlattenMembers","StructMembers","RenameMembers","ForceRenameMembers","GatherMembers","SpreadMembers","ForceSpreadMembers","FormatType","ParseType","TypeOf","InstanceOf","DataType","OptionalType","ListType","StreamType","DictType","TupleType","StructType","VariantType","ResourceType","CallableType","GenericType","UnitType","VoidType","OptionalItemType","ListItemType","StreamItemType","DictKeyType","DictPayloadType","TupleElementType","StructMemberType","CallableResultType","CallableArgumentType","VariantUnderlyingType","JSON_EXISTS","JSON_VALUE","JSON_QUERY"],a=["COUNT","MIN","MAX","SUM","AVG","COUNT_IF","SUM_IF","AVG_IF","SOME","CountDistinctEstimate","HyperLogLog","AGGREGATE_LIST","AGGREGATE_LIST_DISTINCT","AGG_LIST","AGG_LIST_DISTINCT","MAX_BY","MIN_BY","AGGREGATE_BY","MULTI_AGGREGATE_BY","TOP","BOTTOM","TOP_BY","BOTTOM_BY","TOPFREQ","MODE","STDDEV","VARIANCE","CORRELATION","COVARIANCE","PERCENTILE","MEDIAN","HISTOGRAM","LogarithmicHistogram","LogHistogram","LinearHistogram","BOOL_AND","BOOL_OR","BOOL_XOR","BIT_AND","BIT_OR","BIT_XOR","SessionStart"],s=Object.entries({DateTime:["EndOfMonth","Format","FromMicroseconds","FromMilliseconds","FromSeconds","GetDayOfMonth","GetDayOfWeek","GetDayOfWeekName","GetDayOfYear","GetHour","GetMicrosecondOfSecond","GetMillisecondOfSecond","GetMinute","GetMonth","GetMonthName","GetSecond","GetTimezoneId","GetTimezoneName","GetWeekOfYear","GetWeekOfYearIso8601","GetYear","IntervalFromDays","IntervalFromHours","IntervalFromMicroseconds","IntervalFromMilliseconds","IntervalFromMinutes","IntervalFromSeconds","MakeDate","MakeDatetime","MakeTimestamp","MakeTzDate","MakeTzDatetime","MakeTzTimestamp","Parse","ParseHttp","ParseIso8601","ParseRfc822","ParseX509","ShiftMonths","ShiftQuarters","ShiftYears","Split","StartOf","StartOfDay","StartOfMonth","StartOfQuarter","StartOfWeek","StartOfYear","TimeOfDay","ToDays","ToHours","ToMicroseconds","ToMilliseconds","ToMinutes","ToSeconds","Update"],Dsv:["Parse","ReadRecord","Serialize"],String:["AsciiToLower","AsciiToTitle","AsciiToUpper","Base32Decode","Base32Encode","Base32StrictDecode","Base64Decode","Base64Encode","Base64EncodeUrl","Base64StrictDecode","Bin","BinText","CgiEscape","CgiUnescape","Collapse","CollapseText","Contains","DecodeHtml","EncodeHtml","EndsWith","EndsWithIgnoreCase","EscapeC","FromByteList","HasPrefix","HasPrefixIgnoreCase","HasSuffix","HasSuffixIgnoreCase","Hex","HexDecode","HexEncode","HexText","HumanReadableBytes","HumanReadableDuration","HumanReadableQuantity","IsAscii","IsAsciiAlnum","IsAsciiAlpha","IsAsciiDigit","IsAsciiHex","IsAsciiLower","IsAsciiSpace","IsAsciiUpper","JoinFromList","LeftPad","LevensteinDistance","Prec","RemoveAll","RemoveFirst","RemoveLast","ReplaceAll","ReplaceFirst","ReplaceLast","RightPad","SBin","SHex","SplitToList","StartsWith","StartsWithIgnoreCase","Strip","ToByteList","UnescapeC"],Unicode:["Find","Fold","FromCodePointList","GetLength","IsAlnum","IsAlpha","IsAscii","IsDigit","IsHex","IsLower","IsSpace","IsUnicodeSet","IsUpper","IsUtf","JoinFromList","LevensteinDistance","Normalize","NormalizeNFC","NormalizeNFD","NormalizeNFKC","NormalizeNFKD","RFind","RemoveAll","RemoveFirst","RemoveLast","ReplaceAll","ReplaceFirst","ReplaceLast","Reverse","SplitToList","Strip","Substring","ToCodePointList","ToLower","ToTitle","ToUint64","ToUpper","Translit","TryToUint64"],Url:["BuildQueryString","CanBePunycodeHostName","CutQueryStringAndFragment","CutScheme","CutWWW","CutWWW2","Decode","Encode","ForceHostNameToPunycode","ForcePunycodeToHostName","GetCGIParam","GetDomain","GetDomainLevel","GetFragment","GetHost","GetHostPort","GetOwner","GetPath","GetPort","GetScheme","GetSchemeHost","GetSchemeHostPort","GetSignificantDomain","GetTLD","GetTail","HostNameToPunycode","IsAllowedByRobotsTxt","IsKnownTLD","IsWellKnownTLD","Normalize","NormalizeWithDefaultHttpScheme","Parse","PunycodeToHostName","QueryStringToDict","QueryStringToList"],Yson:["Attributes","Contains","ConvertTo","ConvertToBool","ConvertToBoolDict","ConvertToBoolList","ConvertToDict","ConvertToDouble","ConvertToDoubleDict","ConvertToDoubleList","ConvertToInt64","ConvertToInt64Dict","ConvertToInt64List","ConvertToList","ConvertToString","ConvertToStringDict","ConvertToStringList","ConvertToUint64","ConvertToUint64Dict","ConvertToUint64List","Equals","From","GetHash","GetLength","IsBool","IsDict","IsDouble","IsEntity","IsInt64","IsList","IsString","IsUint64","Lookup","LookupBool","LookupDict","LookupDouble","LookupInt64","LookupList","LookupString","LookupUint64","Options","Parse","ParseJson","ParseJsonDecodeUtf8","Serialize","SerializeJson","SerializePretty","SerializeText","WithAttributes","YPath","YPathBool","YPathDict","YPathDouble","YPathInt64","YPathList","YPathString","YPathUint64"],HyperLogLog:["AddValue","Create","Deserialize","GetResult","Merge","Serialize"],Hyperscan:["BacktrackingGrep","BacktrackingMatch","Capture","Grep","Match","MultiGrep","MultiMatch","Replace"],Ip:["ConvertToIPv6","FromString","GetSubnet","GetSubnetByMask","IsEmbeddedIPv4","IsIPv4","IsIPv6","SubnetFromString","SubnetMatch","SubnetToString","ToFixedIPv6String","ToString"],Json:["BoolAsJsonNode","CompilePath","DoubleAsJsonNode","JsonAsJsonNode","JsonDocumentSqlExists","JsonDocumentSqlQuery","JsonDocumentSqlQueryConditionalWrap","JsonDocumentSqlQueryWrap","JsonDocumentSqlTryExists","JsonDocumentSqlValueBool","JsonDocumentSqlValueConvertToUtf8","JsonDocumentSqlValueInt64","JsonDocumentSqlValueNumber","JsonDocumentSqlValueUtf8","Parse","Serialize","SerializeToJsonDocument","SqlExists","SqlQuery","SqlQueryConditionalWrap","SqlQueryWrap","SqlTryExists","SqlValueBool","SqlValueConvertToUtf8","SqlValueInt64","SqlValueNumber","SqlValueUtf8","Utf8AsJsonNode"],Math:["Abs","Acos","Asin","Asinh","Atan","Atan2","Cbrt","Ceil","Cos","Cosh","E","Eps","Erf","ErfInv","ErfcInv","Exp","Exp2","Fabs","Floor","Fmod","FuzzyEquals","Hypot","IsFinite","IsInf","IsNaN","Ldexp","Lgamma","Log","Log10","Log2","Mod","NearbyInt","Pi","Pow","Rem","Remainder","Rint","Round","RoundDownward","RoundToNearest","RoundTowardZero","RoundUpward","Sigmoid","Sin","Sinh","Sqrt","Tan","Tanh","Tgamma","Trunc"],Pire:["Capture","Grep","Match","MultiGrep","MultiMatch","Replace"],Re2:["Capture","Count","Escape","FindAndConsume","Grep","Match","Options","PatternFromLike","Replace"],Re2posix:["Capture","Count","Escape","FindAndConsume","Grep","Match","Options","PatternFromLike","Replace"],Digest:["Argon2","Blake2B","CityHash","CityHash128","Crc32c","Crc64","FarmHashFingerprint","FarmHashFingerprint128","FarmHashFingerprint2","FarmHashFingerprint32","FarmHashFingerprint64","Fnv32","Fnv64","HighwayHash","IntHash64","Md5HalfMix","Md5Hex","Md5Raw","MurMurHash","MurMurHash2A","MurMurHash2A32","MurMurHash32","NumericHash","Sha1","Sha256","SipHash","SuperFastHash","XXH3","XXH3_128"],Histogram:["CalcLowerBound","CalcLowerBoundSafe","CalcUpperBound","CalcUpperBoundSafe","GetSumAboveBound","GetSumBelowBound","GetSumInRange","Normalize","Print","ToCumulativeDistributionFunction"]}).reduce(((e,t)=>{let[n,r]=t;const i=r.map((e=>"".concat(n,"::").concat(e)));return e.concat(i)}),[]),l=["ROW_NUMBER","LAG","LEAD","FIRST_VALUE","LAST_VALUE","RANK","DENSE_RANK","SessionState"],c=[],u=["TablePathPrefix","Warning"],d={table:["AUTO_PARTITIONING_BY_SIZE","AUTO_PARTITIONING_PARTITION_SIZE_MB","AUTO_PARTITIONING_BY_LOAD","AUTO_PARTITIONING_MIN_PARTITIONS_COUNT","AUTO_PARTITIONING_MAX_PARTITIONS_COUNT","UNIFORM_PARTITIONS","READ_REPLICAS_SETTINGS","TTL","KEY_BLOOM_FILTER","STORE"],view:["security_invoker"],topic:["min_active_partitions","partition_count_limit","retention_period","retention_storage_mb","partition_write_speed_bytes_per_second","partition_write_burst_bytes","metering_mode"],object:[],user:[],group:[],externalDataSource:[],externalTable:[],tableStore:[],replication:["ENDPOINT","DATABASE","USER","PASSWORD"],tableIndex:[],topicConsumer:["important","read_from"]}},51688:(e,t,n)=>{"use strict";n.d(t,{Hk:()=>g,Ns:()=>p,RW:()=>m,TA:()=>d,U8:()=>c,Uu:()=>l,dn:()=>h,eV:()=>f,oh:()=>v,qU:()=>u});var r=n(95408),i=n(80839),o=n(75850),a=n(52317),s=n(4119);let l;!function(e){e.All="All",e.SmallUptime="SmallUptime"}(l||(l={}));const c=r.z.nativeEnum(l).catch(l.All),u={[l.All]:"All",[l.SmallUptime]:"Uptime < 1h"},d=e=>!e.SystemState||e.SystemState===o.K.Grey,h=e=>null===e||void 0===e?void 0:e.reduce(((e,t)=>(t.Id&&t.Host&&e.set(Number(t.Id),t.Host),e)),new Map),p=function(){var e,t;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r=(null===(e=n.Location)||void 0===e?void 0:e.Rack)||n.Rack,i=(null===(t=n.Location)||void 0===t?void 0:t.DataCenter)||n.DataCenter,o=(0,s.fG)(n.StartTime);return{...n,Rack:r,DC:i,Uptime:o}},f=e=>e===i.pu.PROBLEMS,m=e=>e===l.SmallUptime?a.RQ:void 0,g={NodeId:"NodeId",Host:"Host",DC:"DC",Rack:"Rack",Version:"Version",Uptime:"Uptime",Memory:"Memory",CPU:"CPU",LoadAverage:"LoadAverage"},v=e=>Object.values(g).includes(e)},39623:(e,t,n)=>{"use strict";let r;n.d(t,{Jf:()=>o,wZ:()=>a,U4:()=>s,jM:()=>l,T$:()=>c,gW:()=>h,gY:()=>p,CC:()=>f,dt:()=>v,fV:()=>y,y5:()=>m,Xh:()=>g}),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"}(r||(r={}));var i=n(30490);const o={execute:"execute",explain:"explain"},a={scan:"scan",script:"script",data:"data",query:"query",pg:"pg"},s={scan:"Scan",script:"YQL Script",data:"Data",query:"YQL - QueryService",pg:"PostgreSQL"},l={yql:"yql_v1",pg:"pg"},c=e=>{switch(e.replace(/\?$/,"")){case r.Bool:return"boolean";case r.Int8:case r.Int16:case r.Int32:case r.Int64:case r.Uint8:case r.Uint16:case r.Uint32:case r.Uint64:case r.Float:case r.Double:case r.Decimal:return"number";case r.String:case r.Utf8:case r.Json:case r.JsonDocument:case r.Yson:case r.Uuid:return"string";case r.Date:case r.Datetime:case r.Timestamp:case r.Interval:case r.TzDate:case r.TzDateTime:case r.TzTimestamp:return"date";default:return}},u=(e,t)=>e.map((e=>e.reduce(((e,n,r)=>{const{name:i}=t[r];return e[i]=n,e}),{}))),d=e=>Boolean(!e||"object"!==typeof e||Array.isArray(e)||"result"in e&&!Array.isArray(e.result));function h(e){return Boolean(e&&"object"===typeof e&&"error"in e&&"issues"in e)}const p=e=>d(e)?{}:(e=>Boolean(e&&!Array.isArray(e)&&Array.isArray(e.result)&&"object"===typeof e.result[0]&&"rows"in e.result[0]&&"columns"in e.result[0]))(e)?(e=>{const{result:t,...n}=e;return{resultSets:null===t||void 0===t?void 0:t.map((e=>{const{rows:t,columns:n}=e;let r;return n&&(r=[]),t&&n&&(r=u(t,n)),{columns:n,result:r}})),...n}})(e):(e=>Boolean(e&&!Array.isArray(e)&&Array.isArray(e.result)&&Array.isArray(e.columns)))(e)?(e=>{const{result:t,columns:n,...r}=e;return{result:t&&n&&u(t,n),columns:n,...r}})(e):e,f=e=>d(e)?{}:e,m=e=>(e=>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,g=e=>Array.isArray(e)?e.map((e=>{const t={};for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)){const r=typeof e[n];null!==e[n]&&"object"===r||"boolean"===r||Array.isArray(e[n])?t[n]=JSON.stringify(e[n]):t[n]=e[n]}return t})):[],v=e=>"string"===typeof e||h(e)?e:(0,i.e)(e)?e.message:(0,i.$)(e)?"data"in e&&h(e.data)?e.data:e.statusText:void 0,y=e=>{var t;const n=v(e);return"string"===typeof n?n:null===n||void 0===n||null===(t=n.error)||void 0===t?void 0:t.message}},30490:(e,t,n)=>{"use strict";n.d(t,{$:()=>i,e:()=>r});const r=e=>Boolean(e&&"object"===typeof e&&"message"in e&&"Network Error"===e.message),i=e=>Boolean(e&&"object"===typeof e&&"status"in e)},1504:(e,t,n)=>{"use strict";n.d(t,{tt:()=>c,zm:()=>u,DA:()=>p,lE:()=>f,BO:()=>m});var r=n(52317),i=n(4119),o=n(30817);const a=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"}'),s=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"}'),l=(0,o.wZ)("ydb-time-parsers",{ru:s,en:a}),c=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;const n=e%1e3;let i=Math.floor(e/1e3);const o=Math.floor(i/r.ii);i%=r.ii;const a=Math.floor(i/r.RQ);i%=r.RQ;const s=Math.floor(i/60);i%=60;const c=i,u={days:o,hours:a,minutes:s,seconds:c,ms:n};if(2===t){if(o>0)return l("daysHours",u);if(a>0)return l("hoursMin",u);if(s>0)return l("minSec",u);if(c>0)return l("secMs",u)}if(1===t){if(o>0)return l("days",u);if(a>0)return l("hours",u);if(s>0)return l("min",u);if(c>0)return l("sec",u)}return l("ms",u)},u=e=>l("ms",{ms:(0,i.uf)(e)}),d=e=>(e.seconds?1e3*Number(e.seconds):0)+(e.nanos?e.nanos/r.yD:0);var h=n(47651);const p=e=>e?(e=>"string"===typeof e?1e3*parseInt(e,10):d(e))(e):0,f=e=>{if(!e)return 0;const t=Date.now()-(e=>"string"===typeof e?Date.parse(e):d(e))(e);return t<0?0:t},m=e=>e&&(0,h.kE)(e)?Math.round(Number(e)/1e3):0},47651:(e,t,n)=>{"use strict";function r(e){if(e)try{return JSON.parse(e)}catch(t){return e}}n.d(t,{Mo:()=>r,Qt:()=>a,Uz:()=>s,bJ:()=>l,kE:()=>c});const i=[" B"," KB"," MB"," GB"," TB"," PB"," EB"],o=1e3;function a(e){return"".concat(function(e){if(isNaN(e))return"";const t=e/o**2;return t<10?t.toFixed(2)+i[2]:t<100?t.toFixed(1)+i[2]:t.toFixed()+i[2]}(e)).concat(e?"ps":"")}function s(e,t){if(isNaN(e))return"N/A";const n=e/1e9;return t?n.toFixed()+i[3]:n<10?n.toFixed(2)+i[3]:n<100?n.toFixed(1)+i[3]:n.toFixed()+i[3]}function l(e){let t=e;for(let n=String(e).length;n<9;n++)t="0"+t;return t}function c(e){return!isNaN(e)&&!isNaN(parseFloat(e))}},94076:(e,t,n)=>{"use strict";n.d(t,{DM:()=>o,HD:()=>a,ZP:()=>c,un:()=>i});var r=n(30601);const i=e=>e.split("").reduce(((e,t)=>{const n=(e<<5)-e+t.charCodeAt(0);return n&n}),0),o=["#008000","#4169e1","#ffd700","#ff8c00","#808000","#e9967a","#ff1493","#00bfff","#da70d6","#3cb371","#b22222"],a="#bfbfbf",s=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Map;return e.forEach((e=>{var n;const i=(0,r.X)(e),o=(0,r.H)(e);t.has(i)||t.set(i,new Set),null===(n=t.get(i))||void 0===n||n.add(o)})),t},l=e=>{const t=Array.from(e.keys()).map((e=>({version:e,hash:i(e)}))),n=new Map;let r=o.length-1;return t.sort(((e,t)=>e.hash-t.hash)).forEach((t=>{if(/^(\w+-)?stable/.test(t.version)){r=(r+1)%o.length,n.set(t.version,o[r]);const a=Array.from(e.get(t.version)||[]).filter((e=>e!==t.version)).map((e=>({version:e,hash:i(e)}))),s=a.length;a.sort(((e,t)=>t.hash-e.hash)).forEach(((e,t)=>{const i=o[r],a=Math.max(100-t*(100/s),20),l=Math.round(255*a/100).toString(16),c="".concat(i).concat(l);n.set(e.version,c)}))}else n.set(t.version,a)})),n},c=function(){return l(s(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]))}},30601:(e,t,n)=>{"use strict";n.d(t,{H:()=>r,X:()=>i});const r=e=>{let 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},i=e=>{const t=r(e);return/\d{1,}-\d{1,}-\d{1,}/.test(t)?t.replace(/-\d{1,}$/,""):t}},36767:(e,t)=>{"use strict";function n(e){function t(t,i,o,a){var s=i?n+t+e.e+i:n+t,l=s;if(o){var c=" "+l+e.m;for(var u in o)if(o.hasOwnProperty(u)){var d=o[u];!0===d?l+=c+u:d&&(l+=c+u+r+d)}}if(void 0!==a)for(var h=0,p=(a=Array.isArray(a)?a:[a]).length;h<p;h++){var f=a[h];if(f&&"string"==typeof f.valueOf())for(var m=f.valueOf().split(" "),g=0;g<m.length;g++){var v=m[g];v!==s&&(l+=" "+v)}}return l}var n=e.n||"",r=e.v||e.m;return function(e,n){return function(r,i,o){return"string"==typeof r?"string"==typeof i||Array.isArray(i)?t(e,r,void 0,i):t(e,r,i,o):t(e,n,r,i)}}}n({e:"-",m:"_"}),t.withNaming=n},5247:(e,t,n)=>{"use strict";e.exports=n(36767)},66307:(e,t,n)=>{"use strict";n.d(t,{a:()=>s,p:()=>a});var r=n(31329);const i=JSON.parse('{"common":{"tooltip-sum":"Sum","tooltip-rest":"Rest"},"chartkit":{"error":"Error","legend-series-hide":"Hide all lines","legend-series-show":"Show all lines","tooltip-point-format-size":"Size","tooltip-sum":"Sum","tooltip-rest":"Rest","error-incorrect-key-value-intro":"Incorrect notation of an object passed to","error-incorrect-key":", object keys must be convertible to integer","error-incorrect-value":", object values must be a string or a function which returns a string"},"chartkit-table":{"message-no-data":"No data","paginator-rows":"Rows"},"chartkit-ymap-legend":{"label-more":"Show more {{count}}","label-hide":"Hide","label-heatmap":"Heatmap"},"error":{"label_no-data":"No data","label_unknown-plugin":"Unknown plugin type \\"{{type}}\\"","label_unknown-error":"Unknown error","label_invalid-axis-category-data-point":"It seems you are trying to use inappropriate data type for \\"{{key}}\\" value in series \\"{{seriesName}}\\" for axis with type \\"category\\". Strings and numbers are allowed.","label_invalid-axis-datetime-data-point":"It seems you are trying to use inappropriate data type for \\"{{key}}\\" value in series \\"{{seriesName}}\\" for axis with type \\"datetime\\". Only numbers are allowed.","label_invalid-axis-linear-data-point":"It seems you are trying to use inappropriate data type for \\"{{key}}\\" value in series \\"{{seriesName}}\\" for axis with type \\"linear\\". Numbers and nulls are allowed.","label_invalid-pie-data-value":"It seems you are trying to use inappropriate data type for \\"value\\" value. Only numbers are allowed.","label_invalid-series-type":"It seems you haven\'t defined \\"series.type\\" property, or defined it incorrectly. Available values: [{{types}}].","label_invalid-series-property":"It seems you are trying to use inappropriate value for \\"{{key}}\\", or defined it incorrectly. Available values: [{{values}}].","label_invalid-treemap-redundant-value":"It seems you are trying to set \\"value\\" for container node. Check node with this properties: { id: \\"{{id}}\\", name: \\"{{name}}\\" }","label_invalid-treemap-missing-value":"It seems you are trying to use node without \\"value\\". Check node with this properties: { id: \\"{{id}}\\", name: \\"{{name}}\\" }"},"highcharts":{"reset-zoom-title":"Reset zoom","decimal-point":".","thousands-sep":" ","Mon":"Mon","Tue":"Tue","Wed":"Wed","Thu":"Thu","Fri":"Fri","Sat":"Sat","Sun":"Sun","Jan":"Jan","January":"January","Feb":"Feb","February":"February","Mar":"Mar","March":"March","Apr":"Apr","April":"April","May":"May","Jun":"Jun","June":"June","Jul":"Jul","July":"July","Aug":"Aug","August":"August","Sep":"Sep","September":"September","Oct":"Oct","October":"October","Nov":"Nov","November":"November","Dec":"Dec","December":"December"}}'),o=JSON.parse('{"common":{"tooltip-sum":"\u0421\u0443\u043c\u043c\u0430","tooltip-rest":"\u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435"},"chartkit":{"error":"\u041e\u0448\u0438\u0431\u043a\u0430","legend-series-hide":"\u0421\u043a\u0440\u044b\u0442\u044c \u0432\u0441\u0435 \u043b\u0438\u043d\u0438\u0438","legend-series-show":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0435 \u043b\u0438\u043d\u0438\u0438","loading":"\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430","tooltip-point-format-size":"\u0420\u0430\u0437\u043c\u0435\u0440","tooltip-sum":"\u0421\u0443\u043c\u043c\u0430","tooltip-rest":"\u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435","error-incorrect-key-value-intro":"\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u0430\u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432","error-incorrect-key":", \u043a\u043b\u044e\u0447\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c\u044b \u0432 \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e","error-incorrect-value":", \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043b\u0438\u0431\u043e \u0441\u0442\u0440\u043e\u043a\u0430, \u043b\u0438\u0431\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0443"},"chartkit-table":{"message-no-data":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445","paginator-rows":"\u0421\u0442\u0440\u043e\u043a\u0438"},"chartkit-ymap-legend":{"label-more":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0435\u0449\u0451 {{count}}","label-hide":"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c","label-heatmap":"\u0422\u0435\u043f\u043b\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430"},"error":{"label_no-data":"\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445","label_unknown-plugin":"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0442\u0438\u043f \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \\"{{type}}\\"","label_unknown-error":"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430","label_invalid-axis-category-data-point":"\u041f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u0432\u044b \u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \\"{{key}}\\" \u0432 \u0441\u0435\u0440\u0438\u0438 \\"{{seriesName}}\\" \u0434\u043b\u044f \u043e\u0441\u0438 \u0441 \u0442\u0438\u043f\u043e\u043c \\"category\\". \u0414\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a \u0438 \u0447\u0438\u0441\u0435\u043b.","label_invalid-axis-datetime-data-point":"\u041f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u0432\u044b \u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \\"{{key}}\\" \u0432 \u0441\u0435\u0440\u0438\u0438 \\"{{seriesName}}\\" \u0434\u043b\u044f \u043e\u0441\u0438 \u0441 \u0442\u0438\u043f\u043e\u043c \\"datetime\\". \u0414\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0438\u0441\u0435\u043b.","label_invalid-axis-linear-data-point":"\u041f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u0432\u044b \u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \\"{{key}}\\" \u0432 \u0441\u0435\u0440\u0438\u0438 \\"{{seriesName}}\\" \u0434\u043b\u044f \u043e\u0441\u0438 \u0441 \u0442\u0438\u043f\u043e\u043c \\"linear\\". \u0414\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0438\u0441\u0435\u043b \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 null.","label_invalid-pie-data-value":"\u041f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u0432\u044b \u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \\"value\\". \u0414\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0438\u0441\u0435\u043b.","label_invalid-series-type":"\u041f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u0432\u044b \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \\"series.type\\" \u0438\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u0435\u0433\u043e \u043d\u0435\u0432\u0435\u0440\u043d\u043e. \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: [{{types}}].","label_invalid-series-property":"\u041f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u0432\u044b \u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \\"{{key}}\\", \u0438\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u0435\u0433\u043e \u043d\u0435\u0432\u0435\u0440\u043d\u043e. \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: [{{values}}].","label_invalid-treemap-redundant-value":"\u041f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u0432\u044b \u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \\"value\\" \u0434\u043b\u044f \u0443\u0437\u043b\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0443\u0437\u0435\u043b \u0441 \u044d\u0442\u0438\u043c\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438: { id: \\"{{id}}\\", name: \\"{{name}}\\" }","label_invalid-treemap-missing-value":"\u041f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e \u0432\u044b \u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0437\u0435\u043b \u0431\u0435\u0437 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \\"value\\". \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0443\u0437\u0435\u043b \u0441 \u044d\u0442\u0438\u043c\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438: { id: \\"{{id}}\\", name: \\"{{name}}\\" }"},"highcharts":{"reset-zoom-title":"\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435","decimal-point":",","thousands-sep":" ","Mon":"\u041f\u043d","Tue":"\u0412\u0442","Wed":"\u0421\u0440","Thu":"\u0427\u0442","Fri":"\u041f\u0442","Sat":"\u0421\u0431","Sun":"\u0412\u0441","Jan":"\u042f\u043d\u0432","January":"\u042f\u043d\u0432\u0430\u0440\u044c","Feb":"\u0424\u0435\u0432","February":"\u0424\u0435\u0432\u0440\u0430\u043b\u044c","Mar":"\u041c\u0430\u0440","March":"\u041c\u0430\u0440\u0442","Apr":"\u0410\u043f\u0440","April":"\u0410\u043f\u0440\u0435\u043b\u044c","May":"\u041c\u0430\u0439","Jun":"\u0418\u044e\u043d","June":"\u0418\u044e\u043d\u044c","Jul":"\u0418\u044e\u043b","July":"\u0418\u044e\u043b\u044c","Aug":"\u0410\u0432\u0433","August":"\u0410\u0432\u0433\u0443\u0441\u0442","Sep":"\u0421\u0435\u043d","September":"\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c","Oct":"\u041e\u043a\u0442","October":"\u041e\u043a\u0442\u044f\u0431\u0440\u044c","Nov":"\u041d\u043e\u044f","November":"\u041d\u043e\u044f\u0431\u0440\u044c","Dec":"\u0414\u0435\u043a","December":"\u0414\u0435\u043a\u0430\u0431\u0440\u044c"}}'),a=new r.mb;a.registerKeysets("en",i),a.registerKeysets("ru",o);const s=a.i18n.bind(a)},30746:(e,t,n)=>{"use strict";n.d(t,{Dx:()=>i,Wn:()=>r});const r={NO_DATA:"ERR.CK.NO_DATA",INVALID_DATA:"ERR.CK.INVALID_DATA",UNKNOWN:"ERR.CK.UNKNOWN_ERROR",UNKNOWN_PLUGIN:"ERR.CK.UNKNOWN_PLUGIN",TOO_MANY_LINES:"ERR.CK.TOO_MANY_LINES"};class i extends Error{constructor(){let{originalError:e,message:t,code:n=r.UNKNOWN}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(t),this.isCustomError=!0,this.code=n,e&&(this.name=e.name,this.stack=e.stack)}}},8978:(e,t,n)=>{"use strict";n.d(t,{X:()=>f});var r=n(24205),i=n(63639),o=n.n(i),a=n(51804),s=n.n(a),l=n(66307);var c=n(95188),u=n.n(c);function d(e,t,n){if("plugins"===n){const n=[...e],r=[...t];let i=n.map((e=>{const t=r.findIndex((t=>{let{type:n}=t;return n===e.type}));if(-1!==t){const n=r[t];return r.splice(t,1),{type:e.type,renderer:n.renderer}}return e}));return r.length>0&&(i=[...i,...r]),i}return u()(e)?s()(e,t,d):t}const h=new class{constructor(){this.events={}}on(e,t){this.events[e]?this.events[e].push(t):this.events[e]=[t]}off(e,t){this.events[e]&&(this.events[e]=this.events[e].filter((e=>{let{id:n}=e;return n!==t})))}dispatch(e,t){this.events[e]&&this.events[e].forEach((e=>{let{action:n}=e;n(t)}))}},p=e=>{(0,r.jQ)({lang:e}),l.p.setLang(e)};const f=new class{constructor(){this.settings={plugins:[],lang:"en"},p(this.get("lang"))}get(e){return o()(this.settings,e)}set(e){const t=(n=e,Object.entries(n).reduce(((e,t)=>{let[n,r]=t;return"undefined"!==typeof r&&(e[n]=r),e}),{}));var n;if(this.settings=s()(this.settings,t,d),t.lang){const e=t.lang||this.get("lang");p(e),h.dispatch("change-lang",e)}}}},66857:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.STRICT=void 0,t.STRICT=!0},85688:(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"},20843:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(66857),t),i(n(85688),t),i(n(38346),t)},38346:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UtcTimeZone=void 0,t.UtcTimeZone="UTC"},79376:function(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},r.apply(this,arguments)},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.dateTimeUtc=t.dateTime=t.isDateTime=void 0;var o=n(20843),a=i(n(4796)),s=n(98507),l=n(14783),c=n(87116),u=n(59318),d=Symbol("isDateTime"),h=function(){function e(e){this[d]=!0,this._timestamp=e.ts,this._locale=e.locale,this._timeZone=e.timeZone,this._offset=e.offset,this._date=e.date}return e.isDateTime=function(e){return"object"===typeof e&&e&&d in e&&!0===e[d]||!1},e.prototype.format=function(e){return this._date.format(e)},e.prototype.toISOString=function(e){return e?this._date.format("YYYY-MM-DDTHH:mm:ss.SSSZ"):this._date.toISOString()},e.prototype.utcOffset=function(e,t){var n=void 0!==e&&null!==e;if(!this.isValid())return n?this:NaN;if(n){var r=void 0;if("string"===typeof e){if(null===(r=(0,u.offsetFromString)(e)))return this}else r=Math.abs(e)<16?60*e:e;var i=this.valueOf();return t&&(i-=60*(r-this._offset)*1e3),f({ts:i,timeZone:o.UtcTimeZone,offset:r,locale:this._locale})}return this._offset},e.prototype.timeZone=function(e,t){var n;if(void 0===e)return"system"===this._timeZone?(0,c.guessUserTimeZone)():this._timeZone;var r=(0,c.normalizeTimeZone)(e,l.settings.getDefaultTimeZone()),i=this.valueOf(),o=(0,c.timeZoneOffset)(r,i);return t&&(i+=60*this._offset*1e3,i=(n=(0,c.fixOffset)(i,o,r))[0],o=n[1]),f({ts:i,timeZone:r,offset:o,locale:this._locale})},e.prototype.add=function(e,t){return this.addSubtract(e,t,1)},e.prototype.subtract=function(e,t){return this.addSubtract(e,t,-1)},e.prototype.startOf=function(e){if(!this.isValid())return this;var t={},n=(0,u.normalizeComponent)(e);switch(n){case"year":case"quarter":t.month="quarter"===n?this.month()-this.month()%3:0;case"month":case"weekNumber":case"isoWeekNumber":t.date="weekNumber"===n?this.date()-this.weekday():"isoWeekNumber"===n?this.date()-(this.isoWeekday()-1):1;case"day":case"date":case"isoWeekday":t.hour=0;case"hour":t.minute=0;case"minute":t.second=0;case"second":t.millisecond=0}return this.set(t)},e.prototype.endOf=function(e){var t;if(!this.isValid())return this;var n={},r=(0,u.normalizeComponent)(e);switch(r){case"year":case"quarter":n.month="quarter"===r?this.month()-this.month()%3+2:11;case"month":case"weekNumber":case"isoWeekNumber":n.date="weekNumber"===r?this.date()-this.weekday()+6:"isoWeekNumber"===r?this.date()-(this.isoWeekday()-1)+6:(0,u.daysInMonth)(this.year(),null!==(t=n.month)&&void 0!==t?t:this.month());case"day":case"date":case"isoWeekday":n.hour=23;case"hour":n.minute=59;case"minute":n.second=59;case"second":n.millisecond=999}return this.set(n)},e.prototype.local=function(e){return this.timeZone("system",e)},e.prototype.valueOf=function(){return this._timestamp},e.prototype.isSame=function(e,t){var n=m(e);return!(!this.isValid()||isNaN(n))&&(!this.isBefore(n,t)&&!this.isAfter(n,t))},e.prototype.isBefore=function(e,t){var n=m(e);if(!this.isValid()||isNaN(n))return!1;var r=(0,u.normalizeComponent)(null!==t&&void 0!==t?t:"millisecond");return("millisecond"===r?this.valueOf():this.endOf(r).valueOf())<n},e.prototype.isAfter=function(e,t){var n=m(e);if(!this.isValid()||isNaN(n))return!1;var r=(0,u.normalizeComponent)(null!==t&&void 0!==t?t:"millisecond");return("millisecond"===r?this.valueOf():this.startOf(r).valueOf())>n},e.prototype.isValid=function(){return this._date.isValid()},e.prototype.diff=function(t,n,r){var i=e.isDateTime(t)?t.valueOf():t;return this._date.diff(i,n,r)},e.prototype.fromNow=function(e){return this._date.fromNow(e)},e.prototype.from=function(t,n){var r=e.isDateTime(t)?t.valueOf():t;return this._date.from(r,n)},e.prototype.locale=function(e){return e?f({ts:this.valueOf(),timeZone:this._timeZone,offset:this._offset,locale:a.default.locale(e,void 0,!0)}):this._locale},e.prototype.toDate=function(){return new Date(this.valueOf())},e.prototype.unix=function(){return Math.floor(this.valueOf()/1e3)},e.prototype.utc=function(e){return this.timeZone(o.UtcTimeZone,e)},e.prototype.daysInMonth=function(){return this._date.daysInMonth()},e.prototype.set=function(e,t){var n,i,s,l=(0,u.tsToObject)(this._timestamp,this._offset),d=(0,u.normalizeDateComponents)("object"===typeof e?e:((n={})[e]=t,n),u.normalizeComponent),h=void 0!==d.weekNumber||void 0!==d.day||void 0!==d.isoWeekNumber||void 0!==d.isoWeekday,p=void 0!==d.year||void 0!==d.month||void 0!==d.date;if(h&&p)throw new Error("Can't mix weekYear/weekNumber units with year/month/day");if(h){for(var m=a.default.utc((0,u.objToTS)(r(r({},l),d))),g={weekNumber:"week",day:"day",isoWeekNumber:"isoWeek",isoWeekday:"isoWeekday"},v=0,y=["weekNumber","day","isoWeekNumber","isoWeekday"];v<y.length;v++){var b=y[v],x=d[b];void 0!==x&&(m=m[g[b]](x))}s=(0,u.tsToObject)(m.valueOf(),0)}else s=r(r({},l),d),void 0===d.date&&(s.date=Math.min((0,u.daysInMonth)(s.year,s.month),s.date));var w=(0,u.objToTS)(s),S=this._offset;return this._timeZone===o.UtcTimeZone?w-=60*S*1e3:(w=(i=(0,c.fixOffset)(w,S,this._timeZone))[0],S=i[1]),f({ts:w,timeZone:this._timeZone,offset:S,locale:this._locale})},e.prototype.date=function(e){return"number"===typeof e?this.set("date",e):this._date.date()},e.prototype.month=function(e){return"number"===typeof e?this.set("month",e):this._date.month()},e.prototype.quarter=function(e){return"number"===typeof e?this.set("quarter",e):this._date.quarter()},e.prototype.year=function(e){return"number"===typeof e?this.set("year",e):this._date.year()},e.prototype.day=function(e){return"number"===typeof e?this.set("day",e):this._date.day()},e.prototype.isoWeekday=function(e){return void 0===e?this._date.isoWeekday():this.day(this.day()%7?e:e-7)},e.prototype.hour=function(e){return"number"===typeof e?this.set("hour",e):this._date.hour()},e.prototype.minute=function(e){return"number"===typeof e?this.set("minute",e):this._date.minute()},e.prototype.second=function(e){return"number"===typeof e?this.set("second",e):this._date.second()},e.prototype.millisecond=function(e){return"number"===typeof e?this.set("millisecond",e):this._date.millisecond()},e.prototype.week=function(e){return"number"===typeof e?this.set("week",e):this._date.week()},e.prototype.isoWeek=function(e){return"number"===typeof e?this.set("isoWeek",e):this._date.isoWeek()},e.prototype.weekday=function(){var e=this._date.$locale().weekStart||0,t=this.day();return(t<e?t+7:t)-e},e.prototype.toString=function(){return this._date.toString()},e.prototype.addSubtract=function(e,t,n){var i;if(!this.isValid())return this;var a=this._timeZone,l=this.valueOf(),d=this._offset,h=(0,s.duration)(e,t),m=(0,u.tsToObject)(l,d),g=p(h.months()+3*h.quarters()+12*h.years()),v=p(h.days()+7*h.weeks()),y=h.milliseconds()+1e3*h.seconds()+60*h.minutes()*1e3+60*h.hours()*60*1e3;if(g||v){var b=m.month+n*g,x=Math.min(m.date,(0,u.daysInMonth)(m.year,b))+n*v;l=(0,u.objToTS)(r(r({},m),{month:b,date:x})),a===o.UtcTimeZone?l-=60*d*1e3:(l=(i=(0,c.fixOffset)(l,d,a))[0],d=i[1])}return y&&(l+=n*y,a!==o.UtcTimeZone&&(d=(0,c.timeZoneOffset)(a,l))),f({ts:l,timeZone:a,offset:d,locale:this._locale})},e}();function p(e){var t=e<0?-1:1;return Math.round(t*e)*t}function f(e){var t,n,r=e.ts,i=e.timeZone,o=e.offset,s=e.locale;if("system"===i)n=(0,a.default)(r,{locale:s});else{var l=(0,c.timeZoneOffset)("system",r),u=r;0!==o&&l!==o&&(u+=60*o*1e3,u=(t=(0,c.fixOffset)(u,l,"system"))[0],l=t[1]),n=(0,a.default)(u,{locale:s,utc:0===o,$offset:o||void 0,x:{$timezone:i,$localOffset:-l}})}return new h({ts:r,timeZone:i,offset:o,locale:s,date:n})}function m(e,t,n){var r,i=a.default.locale(n||l.settings.getLocale(),void 0,!0);h.isDateTime(e)||"number"===typeof e||e instanceof Date?r=Number(e):r=(t?(0,a.default)(e,t,i,o.STRICT):(0,a.default)(e,void 0,i)).valueOf();return r}t.isDateTime=function(e){return h.isDateTime(e)},t.dateTime=function(e){var t=e||{},n=t.input,r=t.format,i=t.timeZone,o=t.lang,s=(0,c.normalizeTimeZone)(i,l.settings.getDefaultTimeZone()),u=a.default.locale(o||l.settings.getLocale(),void 0,!0),d=m(n,r,o);return f({ts:d,timeZone:s,offset:(0,c.timeZoneOffset)(s,d),locale:u})},t.dateTimeUtc=function(e){var t=e||{},n=t.input,r=t.format,i=t.lang,s=a.default.locale(i||l.settings.getLocale(),void 0,!0);return f({ts:h.isDateTime(n)||"number"===typeof n||n instanceof Date?Number(n):a.default.utc(n,r,o.STRICT).valueOf(),timeZone:o.UtcTimeZone,offset:0,locale:s})}},18916:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(79376),t)},43104:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseDateMath=t.parse=t.isLikeRelative=void 0;var r=n(18916),i=["y","Q","M","w","d","h","m","s"];function o(e,t,n){for(var r=e.replace(/\s/g,""),o=t,a=0,s=r.length;a<s;){var l=r.charAt(a++),c=void 0,u=void 0;if("/"===l)c=0;else if("+"===l)c=1;else{if("-"!==l)return;c=2}if(isNaN(parseInt(r.charAt(a),10)))u=1;else if(2===r.length)u=parseInt(r.charAt(a),10);else{for(var d=a;!isNaN(parseInt(r.charAt(a),10));)if(++a>10)return;u=parseInt(r.substring(d,a),10)}if(0===c&&1!==u)return;var h=r.charAt(a++);if(!i.includes(h))return;0===c?o=n?o.endOf(h):o.startOf(h):1===c?o=o.add(u,h):2===c&&(o=o.subtract(u,h))}return o}t.isLikeRelative=function(e){return e.startsWith("now")},t.parse=function(e,t){if(void 0===t&&(t={}),e){var n,i,a,s=t.roundUp,l=t.timeZone,c="";if("now"===e.substring(0,3)?(n=(0,r.dateTime)({timeZone:l}),c=e.substring("now".length)):(-1===(i=e.indexOf("||"))?(a=e,c=""):(a=e.substring(0,i),c=e.substring(i+2)),n=(0,r.dateTime)({input:a,timeZone:l})),n.isValid())return c.length?o(c,n,s):n}},t.parseDateMath=o},97553:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(43104),t)},4796:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(22877)),o=r(n(46770)),a=r(n(9817)),s=r(n(52703)),l=r(n(46635)),c=r(n(13708)),u=r(n(93876)),d=r(n(87134)),h=r(n(72209)),p=r(n(85226)),f=r(n(1035)),m=r(n(54591)),g=r(n(8901));i.default.extend(a.default),i.default.extend(s.default),i.default.extend(g.default),i.default.extend(l.default),i.default.extend(d.default),i.default.extend(h.default),i.default.extend(c.default),i.default.extend(o.default),i.default.extend(m.default),i.default.extend(p.default),i.default.extend(f.default),i.default.extend(u.default),t.default=i.default},48132:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createDuration=void 0;var r=n(39232),i=n(46808),o=n(90390),a=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9]+)(?:[.,]([0-9]+)?)?S)?)?$/;function s(e){var t=e?parseFloat(e.replace(",",".")):0;return isNaN(t)?0:t}t.createDuration=function(e,t,n){void 0===n&&(n={});var l={},c=null,u=(t&&"object"===typeof t?t:n).lang,d="string"===typeof t?t:"milliseconds";if((0,i.isDuration)(e))return e;if(isNaN(Number(e)))if("string"===typeof e&&(c=a.exec(e))){var h="-"===c[1]?-1:1,p=c[8]&&"-"===c[8][0]?-1:1;l=(0,o.removeZeros)({y:s(c[2])*h,M:s(c[3])*h,w:s(c[4])*h,d:s(c[5])*h,h:s(c[6])*h,m:s(c[7])*h,s:s(c[8])*h,ms:Math.floor(1e3*s(c[9]?"0.".concat(c[9]):c[9]))*p*h})}else{if(!e||"object"!==typeof e)throw new Error("Unknown duration: ".concat(e));l=e}else l[d]=Number(e);return new i.DurationImpl({values:(0,r.normalizeDateComponents)(l,r.normalizeDurationUnit),locale:u})}},46808:function(e,t,n){"use strict";var r,i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},i.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0}),t.isDuration=t.DurationImpl=void 0;var o=n(18916),a=n(14783),s=n(59318),l=n(55353),c=n(48132),u=n(90390),d=Symbol("isDuration"),h=function(){function e(e){this[r]=!0,this._values=e.values,this._locale=e.locale||a.settings.getLocale(),this._isValid=e.isValid||!0}return e.isDuration=function(e){return"object"===typeof e&&e&&d in e&&!0===e[d]||!1},e.prototype.get=function(e){if(!this.isValid())return NaN;var t=(0,s.normalizeDurationUnit)(e);return this._values[t]||0},e.prototype.set=function(t){return this.isValid()?new e({values:i(i({},this._values),(0,s.normalizeDateComponents)(t,s.normalizeDurationUnit)),locale:this._locale}):this},e.prototype.as=function(e){if(!this.isValid())return NaN;var t=(0,s.normalizeDurationUnit)(e),n=this.days()+7*this.weeks()+this.hours()/24+this.minutes()/1440+this.seconds()/86400,r=this.months()+3*this.quarters()+12*this.years(),i=this.milliseconds();if("months"===t||"quarters"===t||"years"===t){var o=r+function(e){return 4800*e/146097}(n+i/864e5);switch(t){case"months":return o;case"quarters":return o/3;case"years":return o/12}}var a=n+function(e){return 146097*e/4800}(r);switch(t){case"weeks":return a/7+i/6048e5;case"days":return a+i/864e5;case"hours":return 24*a+i/36e5;case"minutes":return 1440*a+i/6e4;case"seconds":return 86400*a+i/1e3;case"milliseconds":return Math.floor(864e5*a)+i;default:throw new Error("Unknown unit "+t)}},e.prototype.milliseconds=function(){return this.isValid()?this._values.milliseconds||0:NaN},e.prototype.asMilliseconds=function(){return this.as("milliseconds")},e.prototype.seconds=function(){return this.isValid()?this._values.seconds||0:NaN},e.prototype.asSeconds=function(){return this.as("seconds")},e.prototype.minutes=function(){return this.isValid()?this._values.minutes||0:NaN},e.prototype.asMinutes=function(){return this.as("minutes")},e.prototype.hours=function(){return this.isValid()?this._values.hours||0:NaN},e.prototype.asHours=function(){return this.as("hours")},e.prototype.days=function(){return this.isValid()?this._values.days||0:NaN},e.prototype.asDays=function(){return this.as("days")},e.prototype.weeks=function(){return this.isValid()?this._values.weeks||0:NaN},e.prototype.asWeeks=function(){return this.as("weeks")},e.prototype.months=function(){return this.isValid()?this._values.months||0:NaN},e.prototype.asMonths=function(){return this.as("months")},e.prototype.quarters=function(){return this.isValid()?this._values.quarters||0:NaN},e.prototype.asQuarters=function(){return this.as("quarters")},e.prototype.years=function(){return this.isValid()?this._values.years||0:NaN},e.prototype.asYears=function(){return this.as("years")},e.prototype.add=function(t,n){if(!this.isValid())return this;for(var r=this.toObject(),i=(0,c.createDuration)(t,n).toObject(),o=0,a=Object.entries(i);o<a.length;o++){var s=a[o],l=s[0],u=s[1],d=l;r[d]=(r[d]||0)+u}return new e({values:r,locale:this._locale})},e.prototype.subtract=function(e,t){var n=(0,c.createDuration)(e,t).negate();return this.add(n)},e.prototype.negate=function(){for(var t={},n=0,r=Object.entries(this._values);n<r.length;n++){var i=r[n],o=i[0],a=i[1];t[o]=a?-a:0}return new e({values:t,locale:this._locale})},e.prototype.normalize=function(t){return this.isValid()?new e({values:(0,u.normalizeValues)(this._values,t),locale:this._locale}):this},e.prototype.shiftTo=function(t,n){if(!this.isValid())return this;var r=t.map((function(e){return(0,s.normalizeDurationUnit)(e)}));return new e({values:(0,u.shiftTo)(this._values,r,n),locale:this._locale})},e.prototype.rescale=function(t){return this.isValid()?new e({values:(0,u.rescale)(this._values,t),locale:this._locale}):this},e.prototype.toISOString=function(){if(!this.isValid())return"Invalid Duration";var e="P";return 0!==this.years()&&(e+=this.years()+"Y"),0===this.months()&&0===this.quarters()||(e+=this.months()+3*this.quarters()+"M"),0!==this.weeks()&&(e+=this.weeks()+"W"),0!==this.days()&&(e+=this.days()+"D"),0===this.hours()&&0===this.minutes()&&0===this.seconds()&&0===this.milliseconds()||(e+="T"),0!==this.hours()&&(e+=this.hours()+"H"),0!==this.minutes()&&(e+=this.minutes()+"M"),0===this.seconds()&&0===this.milliseconds()||(e+=Math.round(1e3*this.seconds()+this.milliseconds())/1e3+"S"),"P"===e&&(e+="T0S"),e},e.prototype.toJSON=function(){return this.toISOString()},e.prototype.toObject=function(){return this.isValid()?i({},this._values):{}},e.prototype.toString=function(){return this.toISOString()},e.prototype.valueOf=function(){return this.asMilliseconds()},e.prototype[(r=d,Symbol.for("nodejs.util.inspect.custom"))]=function(){return this.isValid()?"Duration { values: ".concat(JSON.stringify(this._values)," }"):"Duration { Invalid Duration }"},e.prototype.humanize=function(e){if(!this.isValid())return"Invalid Duration";var t=(0,o.dateTimeUtc)({lang:this._locale});return t.add(this.valueOf(),"ms").from(t,!e)},e.prototype.humanizeIntl=function(e){var t=this;if(void 0===e&&(e={}),!this.isValid())return"Invalid Duration";var n=u.orderedUnits.map((function(n){var r=t._values[n];return void 0===r?null:(0,l.getNumberFormat)(t._locale,i(i({style:"unit",unitDisplay:"long"},e),{unit:n.slice(0,-1)})).format(r)})).filter(Boolean);return(0,l.getListFormat)(this._locale,{type:"conjunction",style:e.listStyle||"narrow"}).format(n)},e.prototype.isValid=function(){return this._isValid},e.prototype.locale=function(t){return t?new e({values:this._values,locale:t}):this._locale},e}();t.DurationImpl=h,t.isDuration=function(e){return h.isDuration(e)}},98507:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isDuration=t.duration=void 0;var r=n(48132);Object.defineProperty(t,"duration",{enumerable:!0,get:function(){return r.createDuration}});var i=n(46808);Object.defineProperty(t,"isDuration",{enumerable:!0,get:function(){return i.isDuration}})},90390:function(e,t){"use strict";var n=this&&this.__assign||function(){return n=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},n.apply(this,arguments)};Object.defineProperty(t,"__esModule",{value:!0}),t.rescale=t.shiftTo=t.removeZeros=t.normalizeValues=t.orderedUnits=void 0;var r=365.2425,i=30.436875,o=n({years:{quarters:4,months:12,weeks:52.1775,days:r,hours:8765.82,minutes:525949.2,seconds:525949.2*60,milliseconds:525949.2*60*1e3},quarters:{months:3,weeks:13.044375,days:91.310625,hours:2191.455,minutes:131487.3,seconds:525949.2*60/4,milliseconds:7889237999.999999},months:{weeks:4.3481250000000005,days:i,hours:730.485,minutes:43829.1,seconds:2629746,milliseconds:2629746e3}},{weeks:{days:7,hours:168,minutes:10080,seconds:604800,milliseconds:6048e5},days:{hours:24,minutes:1440,seconds:86400,milliseconds:864e5},hours:{minutes:60,seconds:3600,milliseconds:36e5},minutes:{seconds:60,milliseconds:6e4},seconds:{milliseconds:1e3}});t.orderedUnits=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"];var a=t.orderedUnits.slice(0).reverse();function s(e,r){for(var i,s,l,c,u,d,h,p=(void 0===r?{}:r).roundUp,f=n({},e),m=function(e){for(var t,n=null!==(t=e.milliseconds)&&void 0!==t?t:0,r=0,i=a.slice(1);r<i.length;r++){var s=i[r],l=e[s];l&&(n+=l*o[s].milliseconds)}return n}(e)<0?-1:1,g=null,v=0;v<a.length;v++){if(void 0!==f[w=a[v]]&&null!==f[w])if(g){var y=(null!==(i=f[g])&&void 0!==i?i:0)*m,b=o[w][g],x=Math.floor(y/b);f[w]=(null!==(s=f[w])&&void 0!==s?s:0)+x*m,f[g]=(null!==(l=f[g])&&void 0!==l?l:0)-x*b*m,g=w}else g=w}g=null;for(v=0;v<t.orderedUnits.length;v++){var w;if(void 0!==f[w=t.orderedUnits[v]]&&null!==f[w])if(g){var S=(null!==(c=f[g])&&void 0!==c?c:0)%1;f[g]=(null!==(u=f[g])&&void 0!==u?u:0)-S,f[w]=(null!==(d=f[w])&&void 0!==d?d:0)+S*o[g][w],g=w}else g=w}return p&&g&&f[g]&&(f[g]=Math.round(null!==(h=f[g])&&void 0!==h?h:0)),f}function l(e){for(var t={},n=0,r=Object.entries(e);n<r.length;n++){var i=r[n],o=i[0],a=i[1];0!==a&&(t[o]=a)}return t}function c(e,n,r){var i;if(!n.length)return e;for(var a,l={},c={},u=0,d=t.orderedUnits;u<d.length;u++){var h=d[u];if(n.includes(h)){a=h;for(var p=0,f=0,m=Object.keys(c);f<m.length;f++){var g=m[f];p+=o[g][h]*c[g],c[g]=0}var v=e[h];v&&(p+=v);var y=Math.trunc(p);l[h]=y,c[h]=(1e3*p-1e3*y)/1e3}else e[h]&&(c[h]=e[h])}for(var b=0,x=Object.entries(c);b<x.length;b++){var w=x[b],S=w[0],_=w[1];0!==_&&(l[a]=(null!==(i=l[a])&&void 0!==i?i:0)+(S===a?_:_/o[a][S]))}return s(l,r)}t.normalizeValues=s,t.removeZeros=l,t.shiftTo=c,t.rescale=function(e,t){return l(c(s(e),["years","months","weeks","days","hours","minutes","seconds","milliseconds"],t))}},396:(e,t,n)=>{"use strict";t.J=t.CQ=void 0,n(14783).settings;var r=n(18916);Object.defineProperty(t,"CQ",{enumerable:!0,get:function(){return r.dateTime}});var i=n(97553);var o=n(77757);Object.defineProperty(t,"J",{enumerable:!0,get:function(){return o.dateTimeParse}});var a=n(87116);var s=n(20843);var l=n(98507)},77757:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(4093),t)},4093:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isValid=t.dateTimeParse=t.isLikeRelative=void 0;var r=n(18916),i=n(14783);function o(e){return"string"===typeof e&&i.settings.getRelativeParser().isLikeRelative(e)}t.isLikeRelative=o;t.dateTimeParse=function(e,t){if(e){var n=function(e,t){var n;if(o(e)){if(null!==(n=null===t||void 0===t?void 0:t.allowRelative)&&void 0!==n&&!n)return;return i.settings.getRelativeParser().parse(e,t)}var a=t||{},s=a.format,l=a.lang,c=(0,r.dateTime)({input:e,format:s,lang:l,timeZone:null===t||void 0===t?void 0:t.timeZone});return c.isValid()?c:void 0}(e,t);return n}},t.isValid=function(e){if((0,r.isDateTime)(e))return e.isValid();var n=(0,t.dateTimeParse)(e,{allowRelative:!0});return!!n&&n.isValid()}},14783:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(82936),t)},24033:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.localeLoaders=void 0,t.localeLoaders={af:function(){return n.e(6392).then(n.t.bind(n,80246,23))},am:function(){return n.e(4618).then(n.t.bind(n,24618,23))},"ar-dz":function(){return n.e(704).then(n.t.bind(n,704,23))},"ar-iq":function(){return n.e(515).then(n.t.bind(n,60515,23))},"ar-kw":function(){return n.e(8858).then(n.t.bind(n,48858,23))},"ar-ly":function(){return n.e(6887).then(n.t.bind(n,96887,23))},"ar-ma":function(){return n.e(4848).then(n.t.bind(n,94848,23))},"ar-sa":function(){return n.e(4198).then(n.t.bind(n,34198,23))},"ar-tn":function(){return n.e(620).then(n.t.bind(n,20620,23))},ar:function(){return n.e(9204).then(n.t.bind(n,89204,23))},az:function(){return n.e(1736).then(n.t.bind(n,11736,23))},be:function(){return n.e(8747).then(n.t.bind(n,38747,23))},bg:function(){return n.e(1528).then(n.t.bind(n,31528,23))},bi:function(){return n.e(6877).then(n.t.bind(n,36877,23))},bm:function(){return n.e(4814).then(n.t.bind(n,34814,23))},"bn-bd":function(){return n.e(202).then(n.t.bind(n,10202,23))},bn:function(){return n.e(9280).then(n.t.bind(n,9280,23))},bo:function(){return n.e(5863).then(n.t.bind(n,65863,23))},br:function(){return n.e(6058).then(n.t.bind(n,46058,23))},bs:function(){return n.e(632).then(n.t.bind(n,70632,23))},ca:function(){return n.e(7202).then(n.t.bind(n,47202,23))},cs:function(){return n.e(7999).then(n.t.bind(n,47999,23))},cv:function(){return n.e(2367).then(n.t.bind(n,52367,23))},cy:function(){return n.e(5373).then(n.t.bind(n,45373,23))},da:function(){return n.e(6393).then(n.t.bind(n,66393,23))},"de-at":function(){return n.e(5448).then(n.t.bind(n,45448,23))},"de-ch":function(){return n.e(6679).then(n.t.bind(n,96679,23))},de:function(){return n.e(4132).then(n.t.bind(n,84132,23))},dv:function(){return n.e(9219).then(n.t.bind(n,29219,23))},el:function(){return n.e(556).then(n.t.bind(n,20556,23))},"en-au":function(){return n.e(8850).then(n.t.bind(n,98850,23))},"en-ca":function(){return n.e(9297).then(n.t.bind(n,29297,23))},"en-gb":function(){return n.e(3630).then(n.t.bind(n,63630,23))},"en-ie":function(){return n.e(3231).then(n.t.bind(n,83231,23))},"en-il":function(){return n.e(6815).then(n.t.bind(n,6815,23))},"en-in":function(){return n.e(2620).then(n.t.bind(n,12620,23))},"en-nz":function(){return n.e(6961).then(n.t.bind(n,96961,23))},"en-sg":function(){return n.e(7257).then(n.t.bind(n,7257,23))},"en-tt":function(){return n.e(8702).then(n.t.bind(n,58702,23))},en:function(){return n.e(3304).then(n.t.bind(n,73304,23))},eo:function(){return n.e(1508).then(n.t.bind(n,11508,23))},"es-do":function(){return n.e(3271).then(n.t.bind(n,53271,23))},"es-mx":function(){return n.e(30).then(n.t.bind(n,50030,23))},"es-pr":function(){return n.e(5117).then(n.t.bind(n,85117,23))},"es-us":function(){return n.e(5387).then(n.t.bind(n,95387,23))},es:function(){return n.e(5670).then(n.t.bind(n,5670,23))},et:function(){return n.e(7388).then(n.t.bind(n,27388,23))},eu:function(){return n.e(3333).then(n.t.bind(n,3333,23))},fa:function(){return n.e(1278).then(n.t.bind(n,61278,23))},fi:function(){return n.e(178).then(n.t.bind(n,10178,23))},fo:function(){return n.e(6892).then(n.t.bind(n,46892,23))},"fr-ca":function(){return n.e(2229).then(n.t.bind(n,62229,23))},"fr-ch":function(){return n.e(4326).then(n.t.bind(n,94326,23))},fr:function(){return n.e(7276).then(n.t.bind(n,97276,23))},fy:function(){return n.e(7803).then(n.t.bind(n,67803,23))},ga:function(){return n.e(5720).then(n.t.bind(n,85720,23))},gd:function(){return n.e(6954).then(n.t.bind(n,6954,23))},gl:function(){return n.e(9413).then(n.t.bind(n,19413,23))},"gom-latn":function(){return n.e(3945).then(n.t.bind(n,53945,23))},gu:function(){return n.e(2981).then(n.t.bind(n,72981,23))},he:function(){return n.e(1150).then(n.t.bind(n,11150,23))},hi:function(){return n.e(3926).then(n.t.bind(n,3926,23))},hr:function(){return n.e(5643).then(n.t.bind(n,45643,23))},ht:function(){return n.e(5161).then(n.t.bind(n,25161,23))},hu:function(){return n.e(2238).then(n.t.bind(n,42238,23))},"hy-am":function(){return n.e(8133).then(n.t.bind(n,18133,23))},id:function(){return n.e(4949).then(n.t.bind(n,84949,23))},is:function(){return n.e(383).then(n.t.bind(n,20383,23))},"it-ch":function(){return n.e(2701).then(n.t.bind(n,32701,23))},it:function(){return n.e(3645).then(n.t.bind(n,73645,23))},ja:function(){return n.e(2677).then(n.t.bind(n,92677,23))},jv:function(){return n.e(2477).then(n.t.bind(n,22477,23))},ka:function(){return n.e(5399).then(n.t.bind(n,45399,23))},kk:function(){return n.e(4985).then(n.t.bind(n,34985,23))},km:function(){return n.e(674).then(n.t.bind(n,10674,23))},kn:function(){return n.e(9207).then(n.t.bind(n,89207,23))},ko:function(){return n.e(7779).then(n.t.bind(n,77779,23))},ku:function(){return n.e(1148).then(n.t.bind(n,61148,23))},ky:function(){return n.e(8011).then(n.t.bind(n,8011,23))},lb:function(){return n.e(96).then(n.t.bind(n,80096,23))},lo:function(){return n.e(8167).then(n.t.bind(n,68167,23))},lt:function(){return n.e(4347).then(n.t.bind(n,64347,23))},lv:function(){return n.e(2223).then(n.t.bind(n,62223,23))},me:function(){return n.e(2033).then(n.t.bind(n,2033,23))},mi:function(){return n.e(8695).then(n.t.bind(n,68695,23))},mk:function(){return n.e(8140).then(n.t.bind(n,18140,23))},ml:function(){return n.e(6227).then(n.t.bind(n,36227,23))},mn:function(){return n.e(148).then(n.t.bind(n,50148,23))},mr:function(){return n.e(9572).then(n.t.bind(n,59572,23))},"ms-my":function(){return n.e(1179).then(n.t.bind(n,81179,23))},ms:function(){return n.e(1746).then(n.t.bind(n,81746,23))},mt:function(){return n.e(3466).then(n.t.bind(n,33466,23))},my:function(){return n.e(4684).then(n.t.bind(n,44684,23))},nb:function(){return n.e(5226).then(n.t.bind(n,45226,23))},ne:function(){return n.e(115).then(n.t.bind(n,50115,23))},"nl-be":function(){return n.e(4964).then(n.t.bind(n,14964,23))},nl:function(){return n.e(1869).then(n.t.bind(n,11869,23))},nn:function(){return n.e(9917).then(n.t.bind(n,59917,23))},"oc-lnc":function(){return n.e(163).then(n.t.bind(n,51343,23))},"pa-in":function(){return n.e(3025).then(n.t.bind(n,73025,23))},pl:function(){return n.e(6156).then(n.t.bind(n,26156,23))},"pt-br":function(){return n.e(6361).then(n.t.bind(n,56361,23))},pt:function(){return n.e(4663).then(n.t.bind(n,74663,23))},rn:function(){return n.e(7992).then(n.t.bind(n,17992,23))},ro:function(){return n.e(3756).then(n.t.bind(n,83756,23))},ru:function(){return n.e(678).then(n.t.bind(n,40678,23))},rw:function(){return n.e(436).then(n.t.bind(n,75643,23))},sd:function(){return n.e(5112).then(n.t.bind(n,5112,23))},se:function(){return n.e(9555).then(n.t.bind(n,49555,23))},si:function(){return n.e(5809).then(n.t.bind(n,25809,23))},sk:function(){return n.e(5450).then(n.t.bind(n,95450,23))},sl:function(){return n.e(5491).then(n.t.bind(n,75491,23))},sq:function(){return n.e(8591).then(n.t.bind(n,98591,23))},"sr-cyrl":function(){return n.e(7016).then(n.t.bind(n,77016,23))},sr:function(){return n.e(9308).then(n.t.bind(n,69308,23))},ss:function(){return n.e(9411).then(n.t.bind(n,99411,23))},"sv-fi":function(){return n.e(6521).then(n.t.bind(n,86521,23))},sv:function(){return n.e(4159).then(n.t.bind(n,14159,23))},sw:function(){return n.e(9528).then(n.t.bind(n,99528,23))},ta:function(){return n.e(4826).then(n.t.bind(n,14826,23))},te:function(){return n.e(5352).then(n.t.bind(n,45352,23))},tet:function(){return n.e(9292).then(n.t.bind(n,49292,23))},tg:function(){return n.e(7684).then(n.t.bind(n,77684,23))},th:function(){return n.e(9212).then(n.t.bind(n,89212,23))},tk:function(){return n.e(6065).then(n.t.bind(n,16065,23))},"tl-ph":function(){return n.e(5341).then(n.t.bind(n,45341,23))},tlh:function(){return n.e(4583).then(n.t.bind(n,4583,23))},tr:function(){return n.e(3920).then(n.t.bind(n,33920,23))},tzl:function(){return n.e(7119).then(n.t.bind(n,97119,23))},"tzm-latn":function(){return n.e(6144).then(n.t.bind(n,36144,23))},tzm:function(){return n.e(1350).then(n.t.bind(n,31350,23))},"ug-cn":function(){return n.e(2590).then(n.t.bind(n,92590,23))},uk:function(){return n.e(6291).then(n.t.bind(n,26291,23))},ur:function(){return n.e(3397).then(n.t.bind(n,53397,23))},"uz-latn":function(){return n.e(1168).then(n.t.bind(n,51168,23))},uz:function(){return n.e(8853).then(n.t.bind(n,8853,23))},vi:function(){return n.e(4535).then(n.t.bind(n,44535,23))},"x-pseudo":function(){return n.e(9101).then(n.t.bind(n,79101,23))},yo:function(){return n.e(2986).then(n.t.bind(n,42986,23))},"zh-cn":function(){return n.e(4080).then(n.t.bind(n,4080,23))},"zh-hk":function(){return n.e(3898).then(n.t.bind(n,73898,23))},"zh-tw":function(){return n.e(1616).then(n.t.bind(n,33739,23))},zh:function(){return n.e(7522).then(n.t.bind(n,87522,23))}}},82936:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function s(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[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(l){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,r&&(i=2&s[0]?r.return:s[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,s[1])).done)return i;switch(r=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]<i[3])){a.label=s[1];break}if(6===s[0]&&a.label<i[1]){a.label=i[1],i=s;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(s);break}i[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(l){s=[6,l],r=0}finally{n=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}},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(63585)),s=n(97553),l=o(n(4796)),c=n(87116),u=n(24033),d=function(){function e(){this.loadedLocales=new Set(["en"]),this.defaultLocale="en",this.defaultTimeZone="system",this.parser={parse:s.parse,isLikeRelative:s.isLikeRelative},this.updateLocale({weekStart:1,yearStart:1})}return e.prototype.loadLocale=function(e){return r(this,void 0,void 0,(function(){var t;return i(this,(function(n){switch(n.label){case 0:if(this.isLocaleLoaded(e))return[3,4];n.label=1;case 1:return n.trys.push([1,3,,4]),t=e.toLocaleLowerCase(),[4,(0,u.localeLoaders[t])()];case 2:return n.sent(),this.loadedLocales.add(t),[3,4];case 3:throw n.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 this.defaultLocale},e.prototype.getLocaleData=function(){var e=l.default.Ls,t=e[this.getLocale()];if(t||(t=e.en),!t)throw new Error("There is something really wrong happening. Locale data is absent.");return(0,a.default)(t)},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"));this.defaultLocale=e},e.prototype.updateLocale=function(e){var t=this.getLocale();l.default.updateLocale(t,e)},e.prototype.setDefaultTimeZone=function(e){this.defaultTimeZone=(0,c.normalizeTimeZone)(e,"system")},e.prototype.getDefaultTimeZone=function(){return this.defaultTimeZone},e.prototype.setRelativeParser=function(e){this.parser=e},e.prototype.getRelativeParser=function(){return this.parser},e.prototype.isLocaleLoaded=function(e){var t=e.toLocaleLowerCase();return this.loadedLocales.has(t)},e}();t.settings=new d},87116:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(94693),t)},94693:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.fixOffset=t.normalizeTimeZone=t.timeZoneOffset=t.isValidTimeZone=t.getTimeZonesList=t.guessUserTimeZone=void 0;var i=n(20843),o=r(n(4796)),a=n(55353);t.guessUserTimeZone=function(){return o.default.tz.guess()};t.getTimeZonesList=function(){var e;return(null===(e=Intl.supportedValuesOf)||void 0===e?void 0:e.call(Intl,"timeZone"))||[]};var s={};function l(e){if(!e)return!1;if(Object.prototype.hasOwnProperty.call(s,e))return s[e];try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),s[e]=!0,!0}catch(t){return s[e]=!1,!1}}t.isValidTimeZone=l;var c=["year","month","day","hour","minute","second","era"];function u(e,t){var n=new Date(t);if(isNaN(n.valueOf())||"system"!==e&&!l(e))return NaN;if("system"===e)return-n.getTimezoneOffset();for(var r,i={year:1,month:1,day:1,hour:0,minute:0,second:0,era:"AD"},o=0,s=(0,a.getDateTimeFormat)("en-US",{hour12:!1,timeZone:"system"===e?void 0:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}).formatToParts(n);o<s.length;o++){var u=s[o],d=u.type,h=u.value;"era"===d?i.era=h:(r=d,c.includes(r)&&(i[d]=parseInt(h,10)))}var p="BC"===i.era?1-Math.abs(i.year):i.year,f=i.month-1,m=24===i.hour?0:i.hour,g=Date.UTC(p,f,i.day,m,i.minute,i.second,0);if(p<100&&p>=0){var v=new Date(g);v.setUTCFullYear(p,f,i.day),g=v.valueOf()}var y=n.valueOf(),b=y%1e3;return(g-(y-=b>=0?b:1e3+b))/6e4}t.timeZoneOffset=u,t.normalizeTimeZone=function(e,t){if(void 0===e||null===e)return t;var n=e.toLowerCase();if("utc"===n||"gmt"===n)return i.UtcTimeZone;if("system"===n)return"system";if("default"===n)return t;if(l(e))return e;throw new Error("InvalidZone: ".concat(e))},t.fixOffset=function(e,t,n){var r=e-60*t*1e3,i=u(n,r);if(t===i)return[r,t];var o=u(n,r-=60*(i-t)*1e3);return i===o?[r,i]:[e-60*Math.min(i,o)*1e3,Math.min(i,o)]}},59318:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(39232),t)},55353:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getNumberFormat=t.getListFormat=t.getDateTimeFormat=void 0;var n=new Map;t.getDateTimeFormat=function(e,t){void 0===t&&(t={});var r=JSON.stringify([e,t]),i=n.get(r);return i||(i=new Intl.DateTimeFormat(e,t),n.set(r,i)),i};var r=new Map;t.getListFormat=function(e,t){void 0===t&&(t={});var n=JSON.stringify([e,t]),i=r.get(n);return i||(i=new Intl.ListFormat(e,t),r.set(n,i)),i};var i=new Map;t.getNumberFormat=function(e,t){void 0===t&&(t={});var n=JSON.stringify([e,t]),r=i.get(n);return r||(r=new Intl.NumberFormat(e,t),i.set(n,r)),r}},39232:(e,t)=>{"use strict";function n(e,t){return e-t*Math.floor(e/t)}function r(e){return e%4===0&&(e%100!==0||e%400===0)}Object.defineProperty(t,"__esModule",{value:!0}),t.offsetFromString=t.normalizeDateComponents=t.normalizeComponent=t.normalizeDurationUnit=t.objToTS=t.tsToObject=t.daysInMonth=t.isLeapYear=t.floorMod=void 0,t.floorMod=n,t.isLeapYear=r,t.daysInMonth=function(e,t){var i=n(t,12);return 1===i?r(e+(t-i)/12)?29:28:[31,-1,31,30,31,30,31,31,30,31,30,31][i]},t.tsToObject=function(e,t){var n=new Date(e+60*t*1e3);return{year:n.getUTCFullYear(),month:n.getUTCMonth(),date:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}},t.objToTS=function(e){var t=Date.UTC(e.year,e.month,e.date,e.hour,e.minute,e.second,e.millisecond);if(e.year<100&&e.year>=0){var n=new Date(t);return n.setUTCFullYear(e.year,e.month,e.date),n.valueOf()}return t};var i={y:"years",year:"years",years:"years",Q:"quarters",quarter:"quarters",quarters:"quarters",M:"months",month:"months",months:"months",w:"weeks",week:"weeks",weeks:"weeks",d:"days",day:"days",days:"days",h:"hours",hour:"hours",hours:"hours",m:"minutes",minute:"minutes",minutes:"minutes",s:"seconds",second:"seconds",seconds:"seconds",ms:"milliseconds",millisecond:"milliseconds",milliseconds:"milliseconds"};t.normalizeDurationUnit=function(e){var t=["d","D","m","M","w","W","E","Q"].includes(e)?e:e.toLowerCase();if(t in i)return i[t];throw new Error("Invalid unit ".concat(e))};var o={y:"year",year:"year",years:"year",M:"month",month:"month",months:"month",D:"date",date:"date",dates:"date",h:"hour",hour:"hour",hours:"hour",m:"minute",minute:"minute",minutes:"minute",Q:"quarter",quarter:"quarter",quarters:"quarter",s:"second",second:"second",seconds:"second",ms:"millisecond",millisecond:"millisecond",milliseconds:"millisecond",d:"day",day:"day",days:"day",weeknumber:"weekNumber",w:"weekNumber",week:"weekNumber",weeks:"weekNumber",isoweeknumber:"isoWeekNumber",W:"isoWeekNumber",isoweek:"isoWeekNumber",isoweeks:"isoWeekNumber",E:"isoWeekday",isoweekday:"isoWeekday",isoweekdays:"isoWeekday",weekday:"day",weekdays:"day",e:"day"};function a(e){var t=Number(e);if("boolean"===typeof e||""===e||Number.isNaN(t))throw new Error("Invalid unit value ".concat(e));return t}t.normalizeComponent=function(e){var t=["d","D","m","M","w","W","E","Q"].includes(e)?e:e.toLowerCase();if(t in o)return o[t];throw new Error("Invalid unit ".concat(e))},t.normalizeDateComponents=function(e,t){for(var n={},r=0,i=Object.entries(e);r<i.length;r++){var o=i[r],s=o[0],l=o[1];void 0!==l&&null!==l&&(n[t(s)]=a(l))}return n};var s=/Z|[+-]\d\d(?::?\d\d)?/gi,l=/([+-]|\d\d)/gi;t.offsetFromString=function(e){var t=(e||"").match(s);if(null===t)return null;var n=t[t.length-1]||"",r=String(n).match(l)||["-",0,0],i=r[0],o=r[1],a=r[2],c=Number(60*Number(o))+(isFinite(Number(a))?Number(a):0);return"+"===i?c:-c}},31329:(e,t,n)=>{"use strict";n.d(t,{mb:()=>u});const r=/{{(.*?)}}/g;const i={EmptyKeyset:"EMPTY_KEYSET",EmptyLanguageData:"EMPTY_LANGUAGE_DATA",KeysetNotFound:"KEYSET_NOT_FOUND",MissingKey:"MISSING_KEY",MissingKeyFor0:"MISSING_KEY_FOR_0",MissingKeyParamsCount:"MISSING_KEY_PARAMS_COUNT",MissingKeyPlurals:"MISSING_KEY_PLURALS",NoLanguageData:"NO_LANGUAGE_DATA"};Object.values(i);function o(e){const{code:t,fallbackLang:n,lang:r}=e;let o="Using language ".concat(r,". ");switch(t){case i.EmptyKeyset:o+="Keyset is empty.";break;case i.EmptyLanguageData:o+="Language data is empty.";break;case i.KeysetNotFound:o+="Keyset not found.";break;case i.MissingKey:o+="Missing key.";break;case i.MissingKeyFor0:return o+="Missing key for 0",o;case i.MissingKeyParamsCount:o+="Missing params.count for key.";break;case i.MissingKeyPlurals:o+="Missing required plurals.";break;case i.NoLanguageData:o='Language "'.concat(r,'" is not defined, make sure you call setLang for the same language you called registerKeysets for!')}return n&&(o+=' Trying to use fallback language "'.concat(n,'"...')),o}var a;function s(e,t){return 0===e?t.None:1===e||-1===e?t.One:t.Many}function l(e,t){const n=Math.abs(e%10),r=Math.abs(e%100);return 0===e?t.None:1===n&&11!==r?t.One:n>1&&n<5&&(r<10||r>20)?t.Few:t.Many}function c(e){let{value:t,count:n,lang:r,pluralizers:i,log:o,key:s}=e;if(!Array.isArray(t))return function(e,t,n,r){if("undefined"===typeof t.other)throw new Error("Missing required plural form 'other' for key '".concat(e,"'"));if(t.zero&&0===n)return t.zero;if(!Intl.PluralRules)throw new Error("Intl.PluralRules is not available. Use polyfill.");const i=new Intl.PluralRules(r).select(n);return"other"===i&&"undefined"===typeof t.other?t.many||t.few:t[i]||t.other}(s,t,n,r)||s;if(!i)return o("Can not use deprecated plural format without pluralizers"),s;if(i[r]||o("Pluralization is not configured for language '".concat(r,"', falling back to the english ruleset")),t.length<3)return o("Missing required plurals"),s;const l=i[r]||i.en;return l?t[l(n,a)]||t[a.Many]||s:(o("Fallback pluralization is not configured!"),s)}!function(e){e[e.One=0]="One",e[e.Few=1]="Few",e[e.Many=2]="Many",e[e.None=3]="None"}(a||(a={}));class u{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.data={},this.pluralizers={en:s,ru:l},this.logger=null;const{data:t,fallbackLang:n,lang:r,logger:i=null}=e;this.fallbackLang=n,this.lang=r,this.logger=i,t&&Object.entries(t).forEach((e=>{let[t,n]=e;this.registerKeysets(t,n)}))}setLang(e){this.lang=e}setFallbackLang(e){this.fallbackLang=e}configurePluralization(e){this.pluralizers=Object.assign({},this.pluralizers,e)}registerKeyset(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=this.data[e]&&Object.prototype.hasOwnProperty.call(this.data[e],t);if(r)throw new Error("Keyset '".concat(t,"' is already registered, aborting!"));r&&this.warn("Keyset '".concat(t,"' is already registered.")),this.data[e]=Object.assign({},this.data[e],{[t]:n})}registerKeysets(e,t){Object.keys(t).forEach((n=>{this.registerKeyset(e,n,t[n])}))}has(e,t,n){var r;const i=this.getLanguageData(n);return Boolean(i&&i[e]&&(null===(r=i[e])||void 0===r?void 0:r[t]))}i18n(e,t,n){if(!this.lang&&!this.fallbackLang)throw new Error('Language is not specified. You should set at least one of these: "lang", "fallbackLang"');let r,i;if(this.lang){if(({text:r,details:i}=this.getTranslationData({keysetName:e,key:t,params:n,lang:this.lang})),i){const e=o({code:i.code,lang:this.lang,fallbackLang:this.fallbackLang===this.lang?void 0:this.fallbackLang});this.warn(e,i.keysetName,i.key)}}else this.warn("Target language is not specified.");if(void 0===r&&this.fallbackLang&&this.fallbackLang!==this.lang&&(({text:r,details:i}=this.getTranslationData({keysetName:e,key:t,params:n,lang:this.fallbackLang})),i)){const e=o({code:i.code,lang:this.fallbackLang});this.warn(e,i.keysetName,i.key)}return null!==r&&void 0!==r?r:t}keyset(e){return(t,n)=>this.i18n(e,t,n)}warn(e,t,n){var r;let i="";t?(i+=t,n&&(i+=".".concat(n))):i="languageData",null===(r=this.logger)||void 0===r||r.log("I18n: ".concat(e),{level:"info",logger:i,extra:{type:"i18n"}})}getLanguageData(e){const t=e||this.lang;return t?this.data[t]:void 0}getTranslationData(e){const{lang:t,key:n,keysetName:o,params:a}=e,s=this.getLanguageData(t);if("undefined"===typeof s)return{details:{code:i.NoLanguageData}};if(0===Object.keys(s).length)return{details:{code:i.EmptyLanguageData}};const l=s[o];if(!l)return{details:{code:i.KeysetNotFound,keysetName:o}};if(0===Object.keys(l).length)return{details:{code:i.EmptyKeyset,keysetName:o}};const u=l&&l[n],d={};if(void 0===u)return{details:{code:i.MissingKey,keysetName:o,key:n}};if("string"!==typeof u){const e=Number(null===a||void 0===a?void 0:a.count);if(Number.isNaN(e))return{details:{code:i.MissingKeyParamsCount,keysetName:o,key:n}};d.text=c({key:n,value:u,count:e,lang:this.lang||"en",pluralizers:this.pluralizers,log:e=>this.warn(e,o,n)})}else d.text=u;return a&&(d.text=function(e,t){let n,i="",o=r.lastIndex=0;for(;n=r.exec(e);){o!==n.index&&(i+=e.slice(o,n.index)),o=r.lastIndex;const[a,s]=n;s&&Object.prototype.hasOwnProperty.call(t,s)?i+=t[s]:i+=a}return o<e.length&&(i+=e.slice(o)),i}(d.text,a)),d}}},96261:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(68963);const i=e=>r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),r.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M13.5 8a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0ZM15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0Zm-3.9-1.55a.75.75 0 1 0-1.2-.9L7.419 8.858 6.03 7.47a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.13-.08l3-4Z",clipRule:"evenodd"}))},68010:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(68963);const i=e=>r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),r.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 13.5a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11ZM8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14Zm1-9.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm-.25 3a.75.75 0 0 0-1.5 0V11a.75.75 0 0 0 1.5 0V8.5Z",clipRule:"evenodd"}))},67585:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(68963);const i=e=>r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),r.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14Zm1-9.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM8 7.75a.75.75 0 0 1 .75.75V11a.75.75 0 0 1-1.5 0V8.5A.75.75 0 0 1 8 7.75Z",clipRule:"evenodd"}))},80518:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(68963);const i=e=>r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),r.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M13.5 8a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0ZM15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0ZM6.53 5.47a.75.75 0 0 0-1.06 1.06L6.94 8 5.47 9.47a.75.75 0 1 0 1.06 1.06L8 9.06l1.47 1.47a.75.75 0 1 0 1.06-1.06L9.06 8l1.47-1.47a.75.75 0 1 0-1.06-1.06L8 6.94 6.53 5.47Z",clipRule:"evenodd"}))},76506:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(68963);const i=e=>r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),r.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14ZM6.53 5.47a.75.75 0 0 0-1.06 1.06L6.94 8 5.47 9.47a.75.75 0 1 0 1.06 1.06L8 9.06l1.47 1.47a.75.75 0 1 0 1.06-1.06L9.06 8l1.47-1.47a.75.75 0 1 0-1.06-1.06L8 6.94 6.53 5.47Z",clipRule:"evenodd"}))},3442:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(68963);const i=e=>r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),r.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"m7.835 6 .76-2.027L9.336 2H5.5a.716.716 0 0 0-.664.45L2.513 8.257a.177.177 0 0 0 .164.243h4.965l-.732 2.013-1.082 2.975a.382.382 0 0 0 .637.392l6.956-7.391A.29.29 0 0 0 13.21 6H7.835Zm1.558-4.154ZM10.563 3l.235-.627A1.386 1.386 0 0 0 9.5.5h-4c-.906 0-1.72.552-2.057 1.393L1.12 7.7A1.677 1.677 0 0 0 2.677 10H5.5l-.545 1.5-.537 1.475a1.882 1.882 0 0 0 3.14 1.933l6.956-7.391A1.79 1.79 0 0 0 13.21 4.5H10l.563-1.5Z",clipRule:"evenodd"}))},93316:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(68963);const i=e=>r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),r.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M7.134 2.994 2.217 11.5a1 1 0 0 0 .866 1.5h9.834a1 1 0 0 0 .866-1.5L8.866 2.993a1 1 0 0 0-1.732 0Zm3.03-.75c-.962-1.665-3.366-1.665-4.328 0L.919 10.749c-.964 1.666.239 3.751 2.164 3.751h9.834c1.925 0 3.128-2.085 2.164-3.751l-4.917-8.505ZM8 5a.75.75 0 0 1 .75.75v2a.75.75 0 0 1-1.5 0v-2A.75.75 0 0 1 8 5Zm1 5.75a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z",clipRule:"evenodd"}))},71586:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(68963);const i=e=>r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),r.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M5.836 2.244c.962-1.665 3.366-1.665 4.328 0l4.917 8.505c.964 1.666-.239 3.751-2.164 3.751H3.083c-1.925 0-3.128-2.085-2.164-3.751l4.917-8.505ZM8 5a.75.75 0 0 1 .75.75v2a.75.75 0 1 1-1.5 0v-2A.75.75 0 0 1 8 5Zm1 5.75a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z",clipRule:"evenodd"}))},77280:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(68963);const i=e=>r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),r.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M3.47 3.47a.75.75 0 0 1 1.06 0L8 6.94l3.47-3.47a.75.75 0 1 1 1.06 1.06L9.06 8l3.47 3.47a.75.75 0 1 1-1.06 1.06L8 9.06l-3.47 3.47a.75.75 0 0 1-1.06-1.06L6.94 8 3.47 4.53a.75.75 0 0 1 0-1.06Z",clipRule:"evenodd"}))},5718:(e,t,n)=>{"use strict";n.d(t,{N:()=>i,b:()=>o});var r=n(5247);const i="gn-";(0,r.withNaming)({e:"__",m:"_"});const o=(0,r.withNaming)({n:i,e:"__",m:"_"})},5687:(e,t,n)=>{"use strict";n.d(t,{d:()=>G});var r="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window?window:"undefined"!==typeof n.g?n.g:"undefined"!==typeof self?self:{};var i=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},o="object"==typeof r&&r&&r.Object===Object&&r,a="object"==typeof self&&self&&self.Object===Object&&self,s=o||a||Function("return this")(),l=s,c=function(){return l.Date.now()},u=/\s/;var d=function(e){for(var t=e.length;t--&&u.test(e.charAt(t)););return t},h=/^\s+/;var p=function(e){return e?e.slice(0,d(e)+1).replace(h,""):e},f=s.Symbol,m=f,g=Object.prototype,v=g.hasOwnProperty,y=g.toString,b=m?m.toStringTag:void 0;var x=function(e){var t=v.call(e,b),n=e[b];try{e[b]=void 0;var r=!0}catch(o){}var i=y.call(e);return r&&(t?e[b]=n:delete e[b]),i},w=Object.prototype.toString;var S=x,_=function(e){return w.call(e)},C="[object Null]",E="[object Undefined]",T=f?f.toStringTag:void 0;var O=function(e){return null==e?void 0===e?E:C:T&&T in Object(e)?S(e):_(e)},N=function(e){return null!=e&&"object"==typeof e},k="[object Symbol]";var j=p,I=i,P=function(e){return"symbol"==typeof e||N(e)&&O(e)==k},D=NaN,A=/^[-+]0x[0-9a-f]+$/i,R=/^0b[01]+$/i,M=/^0o[0-7]+$/i,L=parseInt;var F=i,z=c,B=function(e){if("number"==typeof e)return e;if(P(e))return D;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=j(e);var n=R.test(e);return n||M.test(e)?L(e.slice(2),n?2:8):A.test(e)?D:+e},U="Expected a function",H=Math.max,V=Math.min;var G=function(e,t,n){var r,i,o,a,s,l,c=0,u=!1,d=!1,h=!0;if("function"!=typeof e)throw new TypeError(U);function p(t){var n=r,o=i;return r=i=void 0,c=t,a=e.apply(o,n)}function f(e){var n=e-l;return void 0===l||n>=t||n<0||d&&e-c>=o}function m(){var e=z();if(f(e))return g(e);s=setTimeout(m,function(e){var n=t-(e-l);return d?V(n,o-(e-c)):n}(e))}function g(e){return s=void 0,h&&r?p(e):(r=i=void 0,a)}function v(){var e=z(),n=f(e);if(r=arguments,i=this,l=e,n){if(void 0===s)return function(e){return c=e,s=setTimeout(m,t),u?p(e):a}(l);if(d)return clearTimeout(s),s=setTimeout(m,t),p(l)}return void 0===s&&(s=setTimeout(m,t)),a}return t=B(t)||0,F(n)&&(u=!!n.leading,o=(d="maxWait"in n)?H(B(n.maxWait)||0,t):o,h="trailing"in n?!!n.trailing:h),v.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=l=i=s=void 0},v.flush=function(){return void 0===s?a:g(z())},v}},50528:(e,t,n)=>{"use strict";n.d(t,{b:()=>r});const r=(0,n(5718).b)("aside-header")},81413:(e,t,n)=>{"use strict";n.d(t,{RL:()=>o,dv:()=>a,hA:()=>l,hr:()=>i,oc:()=>u,pX:()=>s,qA:()=>c,zE:()=>r});const r=1,i=-1,o="left",a="center",s="right",l="fixed",c="moving",u="__index__"},19812:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>D});var r=n(95097),i=n(68963),o=n(83570),a=n.n(o),s=n(5247),l=n(81413);const c=(0,s.withNaming)({e:"__",m:"_"})("data-table");function u(e,t){let{name:n,defaultOrder:i}=e,{sortOrder:o={},sortColumns:a=[]}=t,s=arguments.length>2&&void 0!==arguments[2]&&arguments[2],{defaultOrder:c,disableSortReset:u}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const d=i||c,h={sortOrder:{},sortColumns:[]};if(!n)return s?{sortOrder:o,sortColumns:a}:h;let p=a;const f=o[n];let m=d;if(f&&(m=f===d||u?f===l.zE?l.hr:l.zE:void 0),!s)return m?{sortOrder:{[n]:m},sortColumns:[n]}:h;const g=o,v=n,y=(g[v],(0,r._T)(g,["symbol"===typeof v?v:v+""]));return m?(y[n]=m,new Set(a).has(n)||(p=[...a,n])):p=a.filter((e=>e!==n)),{sortOrder:y,sortColumns:p}}function d(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=t,{sortAscending:i}=e;return"function"===typeof i?(e,t)=>r*i(e,t):(t,i)=>{const o=e._getSortValue(t.row),a=e._getSortValue(i.row);return null==o&&null!=a?n.nullBeforeNumbers?-r:1:null==a&&null!=o?n.nullBeforeNumbers?r:-1:o<a?Number(-r):o>a?Number(r):0}}function h(e,t,n,r){let{sortOrder:i,sortColumns:o}=n;const a={};t.forEach((e=>{i[e.name]?a[e.name]=d(e,i[e.name],r):e.group&&e.autogroup&&(a[e.name]=d(e,l.zE,r))}));const s=t.filter((e=>e.group)),c=s.length>0,u=[...s.map((e=>a[e.name])).filter(Boolean),...o.map((e=>a[e])).filter(Boolean)],h=e.map(((e,t)=>c?{row:e,index:t,span:{}}:{row:e,index:t}));if(u.length&&!r.externalSort&&h.sort(((e,t)=>{let n=0;return u.some((r=>(n=r(e,t),Boolean(n)))),n||e.index-t.index})),h.length>1&&c){const e=[],t=[];h.forEach((n=>{s.every(((r,i)=>{const o=r._getValue(n.row);return e[i]&&o===t[i]?(e[i].span[r.name]+=1,n.span[r.name]=0,!0):(s.slice(i).forEach(((r,o)=>{e[i+o]=n,t[i+o]=r._getValue(n.row),n.span[r.name]=1})),!1)}))}))}return h}function p(e,t){return(Array.isArray(e)?e:[e]).reduce(((e,n)=>{let{columnId:r,order:i}=n;return u({name:r,defaultOrder:i},e,!0,t)}),{sortOrder:{},sortColumns:[]})}function f(e){let{getColumn:t,columnIndex:n,columnId:r,minWidth:o,maxWidth:a,onResize:s}=e;const l=i.useRef(null),[u,d]=i.useState(!1);return i.useEffect((()=>{const e=l.current;if(!e)return;let i,c,u;const h=function(e){let t,n=null;return function(){for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];t=i,"number"!==typeof n&&(n=requestAnimationFrame((()=>{e(...t),n=null})))}}((e=>{if(m(e),"number"!==typeof i||"number"!==typeof c)return;const t=e.clientX-i,n=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:40,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0;return Math.max(t,Math.min(e,n))}(c+t,o,a);n!==u&&(u=n,null===s||void 0===s||s(r,u))})),p=e=>{m(e),void 0!==u&&(null===s||void 0===s||s(r,u)),d(!1),i=void 0,document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",p)},f=e=>{var r;c=null===(r=t(n))||void 0===r?void 0:r.getBoundingClientRect().width,m(e),i=e.clientX,d(!0),document.addEventListener("mousemove",h),document.addEventListener("mouseup",p)};return e.addEventListener("mousedown",f),()=>{e.removeEventListener("mousedown",f),document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",p)}}),[r,s,o,a,t,n]),i.createElement("span",{ref:l,className:c("resize-handler",{resizing:u}),onClick:e=>m(e)})}function m(e){e.preventDefault(),e.stopPropagation()}const g=function(){const e=document.createElement("a").style;return e.cssText="position:sticky; position:-webkit-sticky;",-1!==e.position.indexOf("sticky")}(),v={getSrcElement:()=>null,onHeightChange:()=>{}};class y{constructor(e){this.prevHeight=0,this.params=v,this.checkAndUpdateHeight=()=>{this.node?requestAnimationFrame((()=>{const e=this.node;e?this.updateHeight(e.offsetHeight):this.updateHeight(0)})):this.updateHeight(0)},this.params=Object.assign({},e)}destroy(){this.updateHeight(0),this.params=v}get node(){return this.params.getSrcElement()}updateHeight(e){this.prevHeight!==e&&(this.prevHeight=e,this.params.onHeightChange(e))}}const b=i.createElement("svg",{className:c("icon"),viewBox:"0 0 10 6",width:"10",height:"6"},i.createElement("path",{fill:"currentColor",d:"M0 5h10l-5 -5z"})),x=i.createElement("svg",{className:c("icon"),viewBox:"0 0 10 6",width:"10",height:"6"},i.createElement("path",{fill:"currentColor",d:"M0 1h10l-5 5z"})),w={ICON_ASC:b,ICON_DESC:x};const S=e=>{let{sortOrder:t,sortIndex:n,sortable:r,defaultOrder:o}=e;return r?i.createElement("span",{className:c("sort-icon",{shadow:!t}),"data-index":n},function(e){switch(e){case l.zE:return w.ICON_ASC;case l.hr:return w.ICON_DESC;default:return!1}}(t||o)):null};class _ extends i.PureComponent{constructor(){super(...arguments),this.onClick=e=>{if(this.props.onClick){const{row:t,index:n}=this.props;this.props.onClick(t,n,e)}}}render(){const{className:e,columns:t,row:n,index:r,odd:o,footer:a,span:s,getColSpansOfRow:l,headerData:u}=this.props,d=l?l(this.props):void 0;let h=0;return i.createElement("tr",{className:c("row",{odd:o,footer:a,"header-data":u},e),onClick:this.onClick},t.map(((e,t)=>{if(d){if(--h>0)return null;d[e.name]>1&&(h=d[e.name])}let o;if(s){if(0===s[e.name])return null;o=s[e.name]}const l=e._getValue(n);let c=e.customStyle({row:n,index:r,name:e.name,header:!1,footer:a,headerData:u});return e.resizeable&&(c=Object.assign(Object.assign({},c),{width:e.width,maxWidth:e.width})),i.createElement("td",{key:t,className:e._className,title:e._getTitle(n),style:c,colSpan:d?d[e.name]:void 0,rowSpan:o,onClick:e._getOnClick({row:n,index:r,footer:a,headerData:u})},e._renderValue({value:l,row:n,index:r,footer:a,headerData:u}))})))}}_.defaultProps={footer:!1};class C extends i.Component{constructor(){super(...arguments),this._dataRowsRef=null,this.renderedColumns=[],this.renderHeadCell=e=>{var t;const{onResize:n}=this.props,{column:r,rowSpan:o,colSpan:a}=e,{sortable:s=!1,header:l=r.name,className:u,index:d,columnIndex:h,align:p,name:m,width:g,resizeable:v,resizeMinWidth:y,resizeMaxWidth:b}=r,{headerTitle:x="string"===typeof l&&l||void 0}=r;let w=null===(t=r.customStyle)||void 0===t?void 0:t.call(r,{header:!0,name:m});return v&&(w=Object.assign(Object.assign({},w),{width:g,maxWidth:g})),i.createElement("th",{ref:r.dataColumn?this._getColumnRef(h):null,className:c("th",{sortable:s,align:p},u),key:m,title:x,"data-index":d,colSpan:a,rowSpan:o,style:w,onClick:this._getOnSortClick(r)},i.createElement("div",{className:c("head-cell")},l,i.createElement(S,Object.assign({},r))),v&&i.createElement(f,{getColumn:this._getRenderedColumn,columnIndex:h,onResize:n,columnId:m,minWidth:y,maxWidth:b}))},this.renderHeadLevel=(e,t)=>i.createElement("tr",{key:t,className:c("head-row")},e.map(this.renderHeadCell)),this.dataRowsRef=e=>{var t;this._dataRowsRef=e,e&&(null===(t=this.dataRowsHeightObserver)||void 0===t||t.checkAndUpdateHeight())},this._getColumnRef=e=>t=>{this.renderedColumns[e]=t},this._getRenderedColumn=e=>{if(void 0!==e)return this.renderedColumns[e]}}componentDidMount(){this._calculateColumnsWidth(),"function"===typeof this.props.onDataRowsHeightChange&&(this.dataRowsHeightObserver=new y({getSrcElement:()=>this._dataRowsRef,onHeightChange:e=>{"function"===typeof this.props.onDataRowsHeightChange&&this.props.onDataRowsHeightChange(e)}}))}componentDidUpdate(){var e;this._calculateColumnsWidth(),null===(e=this.dataRowsHeightObserver)||void 0===e||e.checkAndUpdateHeight()}componentWillUnmount(){var e;null===(e=this.dataRowsHeightObserver)||void 0===e||e.destroy()}render(){const{headColumns:e,dataColumns:t,renderedDataRows:n}=this.props;return this.renderedColumns.length=t.length,i.createElement(i.Fragment,null,i.createElement("thead",{className:c("head")},e.map(this.renderHeadLevel)),void 0===n?null:i.createElement("tbody",{ref:this.dataRowsRef},n))}_calculateColumnsWidth(){const{onColumnsUpdated:e}=this.props;"function"===typeof e&&requestAnimationFrame((()=>{const t=this.renderedColumns.map((e=>e&&e.getBoundingClientRect().width));e(t)}))}onSort(e,t){const{onSort:n}=this.props;"function"===typeof n&&n(e,t)}_getOnSortClick(e){const{sortable:t=!1,name:n}=e;return n===l.oc?()=>{this.onSort()}:t?t=>{this.onSort(e,t.ctrlKey||t.metaKey)}:void 0}}class E extends i.Component{constructor(){super(...arguments),this.state={style:{top:E.defaultProps.top}},this.onDataRowsHeightChange=e=>{this.props.onDataRowsHeightChange(e+1)},this._nodeRef=e=>{this._node=e}}static getDerivedStateFromProps(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}render(){const e=this.props,{mode:t,top:n}=e,o=(0,r._T)(e,["mode","top"]);if(t===l.qA){const{style:e}=this.state;return i.createElement("div",{className:c("sticky",{moving:!0,head:!0}),style:e},this.renderHeader(o))}{const{widths:e=[],right:t=0}=this.state,n=e.reduce(((e,t)=>e+t),0);return i.createElement("div",{ref:this._nodeRef,className:c("sticky",{fixed:!0,head:!0}),style:{right:t,display:n?void 0:"none"}},this.renderHeader(o))}}setScrollLeft(e){requestAnimationFrame((()=>{this._node&&(this._node.scrollLeft=e)}))}setRightPosition(e){this.state.right===e||this.props.top||this.props.mode===l.qA||this.setState({right:e})}renderHeader(e){const{widths:t=[]}=this.state,n=t.reduce(((e,t)=>e+t),0);return i.createElement("div",{className:c("table-wrapper",{sticky:!0})},i.createElement("table",{className:c("table",{sticky:!0}),style:{width:n||"auto"}},i.createElement("colgroup",null,t.map(((e,t)=>i.createElement("col",{key:t,style:{width:e}})))),i.createElement(C,Object.assign({},e,{onDataRowsHeightChange:this.onDataRowsHeightChange}))))}updateWidths(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const{widths:t=[]}=this.state;e.some(((e,n)=>e!==t[n]))&&this.setState({widths:e})}}E.defaultProps={top:0};class T extends i.PureComponent{constructor(){super(...arguments),this.state={style:{bottom:0}},this._nodeFixed=null,this._nodeMoving=null,this._nodeFixedRef=e=>{this._nodeFixed=e},this._nodeMovingRef=e=>{var t;this._nodeMoving=e,e&&(null===(t=this.heightObserver)||void 0===t||t.checkAndUpdateHeight())}}static getDerivedStateFromProps(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}componentDidMount(){this.heightObserver=new y({getSrcElement:()=>this._nodeMoving,onHeightChange:this.props.onMovingHeightChange})}componentDidUpdate(){var e;null===(e=this.heightObserver)||void 0===e||e.checkAndUpdateHeight()}componentWillUnmount(){var e;null===(e=this.heightObserver)||void 0===e||e.destroy()}render(){if(!this.props.renderedRows)return null;const{mode:e,renderedRows:t}=this.props;if(e===l.qA){const{style:e}=this.state;return i.createElement("div",{ref:this._nodeMovingRef,className:c("sticky",{footer:!0,moving:!0}),style:e},this.renderFooter(t))}{const{widths:e=[],right:n=0}=this.state,r=e.reduce(((e,t)=>e+t),0);return i.createElement("div",{ref:this._nodeFixedRef,className:c("sticky",{footer:!0,fixed:!0}),style:{right:n,display:r?void 0:"none"}},this.renderFooter(t))}}setScrollLeft(e){requestAnimationFrame((()=>{this._nodeFixed&&(this._nodeFixed.scrollLeft=e)}))}setRightPosition(e){this.state.right!==e&&!this.props.bottom&&this._nodeFixed&&this.setState({right:e})}renderFooter(e){const{widths:t=[]}=this.state,n=t.reduce(((e,t)=>e+t),0);return i.createElement("div",{className:c("table-wrapper",{sticky:!0})},i.createElement("table",{className:c("table",{sticky:!0}),style:{width:n||"auto"}},i.createElement("colgroup",null,t.map(((e,t)=>i.createElement("col",{key:t,style:{width:e}})))),i.createElement("tbody",null,e)))}updateWidths(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const{widths:t=[]}=this.state;e.some(((e,n)=>e!==t[n]))&&this.setState({widths:e})}}T.defaultProps={bottom:0};class O extends i.PureComponent{constructor(){var e;super(...arguments),e=this,this.state={},this._refBody=e=>{this._body=e},this._refBox=e=>{this._box=e},this._refHead=e=>{this._head=e},this._refStickyHead=e=>{this._stickyHead=e},this._refStickyFooter=e=>{this._stickyFooter=e},this._onBoxScroll=()=>{this._updateBoxConstraints()},this._onColumnsUpdated=e=>{this._stickyHead&&this._stickyHead.updateWidths(e),this._stickyFooter&&this._stickyFooter.updateWidths(e)},this.onMovingHeaderDataRowsHeightChange=e=>{var t;-e!==(null===(t=this.state.movingHeaderStyle)||void 0===t?void 0:t.marginTop)&&this.setState({movingHeaderStyle:{marginTop:-e}})},this.onMovingFooterHeightChange=e=>{var t;-e!==(null===(t=this.state.movingFooterStyle)||void 0===t?void 0:t.marginBottom)&&this.setState({movingFooterStyle:{marginBottom:-e}})},this.renderRow=e=>{const{data:t,onRowClick:n}=this.props,{row:r,index:i,span:o}=t[e];return this.renderRowImpl(r,i,{onRowClick:n,odd:e%2===0,span:o})},this.renderFooterRow=(e,t)=>this.renderRowImpl(e,t,{footer:!0}),this.renderHeaderRow=(e,t)=>this.renderRowImpl(e,t,{headerData:!0}),this.renderRowImpl=function(t,n){let{onRowClick:r,odd:o,span:a,footer:s,headerData:l}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{columns:{dataColumns:c},rowClassName:u,rowKey:d,getColSpansOfRow:h}=e.props,p="function"===typeof u?u(t,n,s,l):"";return i.createElement(_,{getColSpansOfRow:h,key:d(t,n),className:p,columns:c,row:t,index:n,span:a,odd:o,onClick:r,footer:s,headerData:l})},this.renderTable=(e,t)=>{const{footerData:n,columns:{dataColumns:r},settings:{stickyHead:o}}=this.props,{movingHeaderStyle:a,movingFooterStyle:s}=this.state,u=this.getStickyFooterMode();return i.createElement("div",{className:c("table-wrapper"),style:u===l.qA?s:void 0},i.createElement("table",{className:c("table"),style:o===l.qA?a:void 0},i.createElement("colgroup",null,r.map(((e,t)=>{let{width:n}=e;return i.createElement("col",{key:t,width:n})}))),this.renderHead(),i.createElement("tbody",{ref:t},e.length?e:this._getEmptyRow()),n&&i.createElement("tfoot",{className:c("foot",{"has-sticky-footer":u})},n.map(this.renderFooterRow))))}}componentDidMount(){const{stickyHead:e,syncHeadOnResize:t}=this.props.settings;this._updateBoxConstraints(),e&&t&&!this._onWindowResize&&(this._onWindowResize=()=>{this.syncHeadWidths()},window.addEventListener("resize",this._onWindowResize))}componentDidUpdate(){this._updateBoxConstraints()}componentWillUnmount(){this._onWindowResize&&(window.removeEventListener("resize",this._onWindowResize),delete this._onWindowResize)}render(){const{className:e}=this.props,{stickyHead:t,dynamicRender:n}=this.props.settings,r=this.getStickyFooterMode();return i.createElement("div",{className:e,ref:this._refBody},t&&this.renderStickyHead(),i.createElement("div",{ref:this._refBox,className:c("box",{"sticky-head":t,"sticky-footer":r}),onScroll:this._onBoxScroll},n?this.renderTableDynamic():this.renderTableSimple()),r&&this.renderStickyFooter())}_updateBoxConstraints(){const e=this._stickyHead||this._stickyFooter;if(this._box&&e){const e=this._box.offsetWidth-this._box.clientWidth;this._stickyHead&&(this._stickyHead.setRightPosition(e),this._stickyHead.setScrollLeft(this._box.scrollLeft)),this._stickyFooter&&(this._stickyFooter.setRightPosition(e),this._stickyFooter.setScrollLeft(this._box.scrollLeft))}}syncHeadWidths(){this._head&&this._head._calculateColumnsWidth()}_getEmptyRow(){const{columns:{dataColumns:e},emptyDataMessage:t,renderEmptyRow:n}=this.props;return"function"===typeof n?n(e):i.createElement("tr",{className:c("row")},i.createElement("td",{className:c("td",c("no-data")),colSpan:e.length},t))}renderHead(){const{columns:e,onSort:t,onResize:n}=this.props,{displayIndices:r}=this.props.settings,o=this.renderHeaderRows();return i.createElement(C,Object.assign({ref:this._refHead},e,{displayIndices:Boolean(r),onSort:t,onResize:n,onColumnsUpdated:this._onColumnsUpdated,renderedDataRows:o}))}renderStickyHead(){const{columns:e,onSort:t,onResize:n}=this.props,{displayIndices:r,stickyTop:o,stickyHead:a}=this.props.settings,s="auto"===o&&this._body&&this._body.parentNode?this._body.parentNode.offsetTop:Number(o)||0,l=this.renderHeaderRows();return i.createElement(E,Object.assign({mode:a,top:s,ref:this._refStickyHead},e,{displayIndices:r,onSort:t,onResize:n,renderedDataRows:l,onDataRowsHeightChange:this.onMovingHeaderDataRowsHeightChange}))}renderStickyFooter(){const{columns:e}=this.props,{stickyBottom:t}=this.props.settings;let n=Number(t)||0;if("auto"===t&&this._body&&this._body.parentNode){const e=this._body.parentNode;n=e.offsetTop+e.offsetHeight}const r=this.renderFooterRows();return i.createElement(T,{ref:this._refStickyFooter,mode:this.getStickyFooterMode(),bottom:n,dataColumns:e.dataColumns,renderedRows:r,onMovingHeightChange:this.onMovingFooterHeightChange})}renderTableDynamic(){const{data:e,settings:{dynamicInnerRef:t,dynamicRenderType:n="uniform",dynamicRenderUseStaticSize:r,dynamicRenderThreshold:o,dynamicRenderMinSize:s,dynamicRenderScrollParentGetter:l,dynamicRenderScrollParentViewportSizeGetter:c,dynamicItemSizeEstimator:u,dynamicItemSizeGetter:d}={}}=this.props;return i.createElement(a(),{ref:t,type:n,useStaticSize:r,threshold:o,minSize:s,itemSizeEstimator:u,itemSizeGetter:d,length:e.length,itemRenderer:this.renderRow,itemsRenderer:this.renderTable,scrollParentGetter:l,scrollParentViewportSizeGetter:c})}renderTableSimple(){const{data:e}=this.props,t=e.map(((e,t)=>this.renderRow(t)));return this.renderTable(t,null)}renderHeaderRows(){const{headerData:e}=this.props;return e&&e.map(this.renderHeaderRow)}renderFooterRows(){const{footerData:e}=this.props;return null===e||void 0===e?void 0:e.map(this.renderFooterRow)}getStickyFooterMode(){const{footerData:e}=this.props;if(!(null===e||void 0===e?void 0:e.length))return!1;const{stickyFooter:t}=this.props.settings;return t}}const N=i.memo((function(e){const{column:t,value:n,row:r,index:o,footer:a,headerData:s}=e;return i.createElement(i.Fragment,null,t.render({value:n,row:r,index:o,footer:a,headerData:s}))}));class k extends i.Component{constructor(){super(...arguments),this.state=Object.assign({settings:{}},p(this.props.initialSortOrder,this.props.settings)),this._tableRef=e=>{this.table=e},this.renderMemoizedCell=e=>{let{column:t,value:n,row:r,index:o,footer:a,headerData:s}=e;return i.createElement(N,{column:t,value:n,row:r,index:o,footer:a,headerData:s})},this.getColumn=(e,t)=>{var n;const{onResize:r}=this.props,{settings:i}=this.state,{defaultOrder:o}=i,{sortOrder:a={},sortColumns:s,indexColumn:l}=this.state,u=Number(Boolean(l)),d=this.isSortEnabled(),{name:h,accessor:p=e.name,align:f,sortable:m=i.sortable,group:g,autogroup:v=!0}=e,{sortAccessor:y,onClick:b}=e,x=c("td",{align:f},e.className),w=(null!==(n=e.resizeable)&&void 0!==n?n:i.defaultResizeable)&&Boolean(r),S="function"===typeof p?e=>p(e):e=>Object.prototype.hasOwnProperty.call(e,p)?e[p]:void 0,_="function"===typeof e.title?t=>e.title(t):()=>"string"===typeof e.title&&e.title||void 0,C="function"===typeof y?e=>y(e):S,E="function"===typeof e.render?t=>{let{value:n,row:r,index:i,footer:o,headerData:a}=t;return this.renderMemoizedCell({column:e,value:n,row:r,index:i,footer:o,headerData:a})}:e=>{let{value:t}=e;return t},T="function"===typeof e.customStyle?e.customStyle:()=>{},O="function"===typeof b?t=>n=>b(t,e,n):()=>{};return Object.assign(Object.assign({index:t-u,columnIndex:t,dataColumn:!0,defaultOrder:o},e),{resizeable:w,sortable:m&&d,_className:x,_getValue:S,_getTitle:_,_getSortValue:C,_renderValue:E,_getOnClick:O,customStyle:T,group:g,autogroup:v,sortOrder:a[h]||void 0,sortIndex:s.length>1?s.indexOf(h)+1:void 0})},this.isSortEnabled=()=>{const{data:e}=this.props;return Array.isArray(e)&&e.length>1},this.onSort=(e,t)=>{if(e){const{sortOrder:n,sortColumns:r}=u(e,this.state,t,this.props.settings);this.setState({sortOrder:n,sortColumns:r});const{onSort:i}=this.props;if("function"===typeof i){const e=function(e){return Object.keys(e).map((t=>({columnId:t,order:e[t]})))}(n);i(e)}}else{this.setState({sortOrder:{},sortColumns:[]});const{onSort:e}=this.props;"function"===typeof e&&e([])}}}static normalizeStickyHead(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e!==l.qA||g?e:(console.warn("Your browser does not support position: sticky, moving sticky headers will be disabled."),!1)}static calculateSettings(e){return Object.assign(Object.assign(Object.assign({},k.defaultProps.settings),e),{stickyHead:k.normalizeStickyHead(e.stickyHead),stickyFooter:k.normalizeStickyHead(e.stickyFooter)})}static getIndexColumn(e){let{startIndex:t,data:n,visibleRowIndex:r}=e;const i=t+n.length+1;return{name:l.oc,header:"#",className:c("index"),render:e=>{let{row:n,index:i,footer:o,headerData:a}=e;var s,l;return a?null!==(s=n.headerIndex)&&void 0!==s?s:t+i:o?null!==(l=n.footerIndex)&&void 0!==l?l:t+i:"function"===typeof r?r(n,i):t+i},sortable:!1,resizeable:!1,width:20+10*Math.ceil(Math.log10(i))}}static getDerivedStateFromProps(e){const t=k.calculateSettings(e.settings);return Object.assign({settings:t,indexColumn:Boolean(t.displayIndices)&&k.getIndexColumn(e)},e.sortOrder?Object.assign({},p(e.sortOrder,e.settings)):void 0)}render(){const{getColSpansOfRow:e,headerData:t,data:n,footerData:r,columns:o,startIndex:a,emptyDataMessage:s,rowClassName:l,rowKey:u,onRowClick:d,onResize:p,theme:f,renderEmptyRow:m,nullBeforeNumbers:g}=this.props,{settings:v,sortOrder:y,sortColumns:b}=this.state,{highlightRows:x=!1,stripedRows:w=!1,headerMod:S=!1}=v,_=c({"highlight-rows":x,"striped-rows":w,header:S,theme:f}),C=this.getComplexColumns(o);return v.dynamicRender&&C.dataColumns.some((e=>e.group))&&console.warn("Simultaneously used grouping cells and dynamic render. The table will render unpredictable."),i.createElement(O,{ref:this._tableRef,getColSpansOfRow:e,className:_,settings:v,startIndex:a,columns:C,emptyDataMessage:s,renderEmptyRow:m,rowClassName:l,rowKey:u||k.defaultProps.rowKey,onRowClick:d,headerData:t,data:h(n,C.dataColumns,{sortOrder:y,sortColumns:b},{nullBeforeNumbers:g,externalSort:null===v||void 0===v?void 0:v.externalSort}),footerData:r,onSort:this.onSort,onResize:p})}getComplexColumns(e){const t=[],n=[],r=[],{indexColumn:i}=this.state,o=i?[i,...e]:e,a=(e,i)=>{t[i]||(t[i]=[]);const o=t[i];return e.reduce(((e,t)=>{let s=1,l=-1,c=t;if(Array.isArray(t.sub))s=a(t.sub,i+1);else{const e=this.getColumn(t,n.length);n.push(e),l=i,c=e}const u={column:c,itemLevel:l,colSpan:s,rowSpan:0};return r.push(u),o.push(u),s+e}),0)};return a(o,0),r.forEach((e=>{e.rowSpan=e.itemLevel<0?1:t.length-e.itemLevel})),{headColumns:t,dataColumns:n}}resize(){this.table&&this.table.syncHeadWidths()}}function j(e){return new Set(e.map((e=>e.name))).size!==e.length}k.defaultProps={startIndex:0,emptyDataMessage:"No data",settings:{displayIndices:!0,dynamicRenderMinSize:1,stickyHead:!1,stickyFooter:!1,sortable:!0,externalSort:!1,defaultOrder:l.zE,defaultResizeable:!1},rowKey:(e,t)=>Object.prototype.hasOwnProperty.call(e,"id")?e.id:t,initialSortOrder:{},initialSortColumns:[],theme:"yandex-cloud"},k.getSortedData=h;const I="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.";class P extends i.PureComponent{constructor(){super(...arguments),this.state={},this._tableRef=e=>{this.table=e}}static setCustomIcons(e){w.ICON_ASC=e.ICON_ASC||b,w.ICON_DESC=e.ICON_DESC||x}componentDidMount(){j(this.props.columns)&&console.warn(I)}componentDidUpdate(e){const{columns:t}=this.props;t!==e.columns&&j(t)&&console.warn(I)}componentDidCatch(e){console.error(e),this.setState({error:e});const{onError:t}=this.props;"function"===typeof t&&t(e)}render(){const{error:e}=this.state;return e?i.createElement("pre",{className:c("error")},"DataTable got stuck in invalid state. Please tell developers about it.","\n\n",e.stack&&String(e.stack)||String(e)):i.createElement(k,Object.assign({ref:this._tableRef},this.props))}resize(){this.table&&this.table.resize()}}P.FIXED=l.hA,P.MOVING=l.qA,P.ASCENDING=l.zE,P.DESCENDING=l.hr,P.LEFT=l.RL,P.CENTER=l.dv,P.RIGHT=l.pX;const D=P},17176:(e,t,n)=>{"use strict";n.d(t,{z:()=>f});var r=n(68963),i=n(36951),o=n(99742),a=n(93404),s=n(70292),l=n(12913);const c=(0,i.Ge)("button");function u(){(0,l.O)('[Button.Icon] Physical values (left, right) of "side" property are deprecated. Use logical values (start, end) instead.')}const d=e=>{let{side:t,className:n,children:i}=e,o=t;return"left"===o&&(u(),o="start"),"right"===o&&(u(),o="end"),r.createElement("span",{className:c("icon",{side:o},n)},r.createElement("span",{className:c("icon-inner")},i))};d.displayName="Button.Icon";const h=(0,i.Ge)("button"),p=r.forwardRef((function(e,t){let{view:n="normal",size:i="m",pin:o="round-round",selected:s,disabled:l=!1,loading:c=!1,width:u,title:d,tabIndex:p,type:f="button",component:m,href:v,target:y,rel:b,extraProps:x,onClick:w,onMouseEnter:S,onMouseLeave:_,onFocus:C,onBlur:E,children:T,id:O,style:N,className:k,qa:j}=e;const I={title:d,tabIndex:p,onClick:w,onClickCapture:r.useCallback((e=>{a.P.publish({componentId:"Button",eventId:"click",domEvent:e,meta:{content:e.currentTarget.textContent,view:n}})}),[n]),onMouseEnter:S,onMouseLeave:_,onFocus:C,onBlur:E,id:O,style:N,className:h({view:n,size:i,pin:o,selected:s,disabled:l||c,loading:c,width:u},k),"data-qa":j};if("string"===typeof v||m){const e={href:v,target:y,rel:"_blank"!==y||b?b:"noopener noreferrer"};return r.createElement(m||"a",Object.assign(Object.assign(Object.assign(Object.assign({},x),I),m?{}:e),{ref:t,"aria-disabled":l||c}),g(T))}return r.createElement("button",Object.assign({},x,I,{ref:t,type:f,disabled:l||c,"aria-pressed":s}),g(T))}));p.displayName="Button";const f=Object.assign(p,{Icon:d}),m=(0,s.s)(d);function g(e){const t=r.Children.toArray(e);if(1===t.length){const e=t[0];return m(e)?e:(0,o.y)(e)?r.createElement(f.Icon,{key:"icon"},e):r.createElement("span",{key:"text",className:h("text")},e)}{let e,n,i;const a=[];for(const s of t){const t=(0,o.y)(s),i=m(s);if(t||i)if(e||0!==a.length){if(!n&&0!==a.length){const e="icon-end",i="end";n=t?r.createElement(f.Icon,{key:e,side:i},s):r.cloneElement(s,{side:i})}}else{const n="icon-start",i="start";e=t?r.createElement(f.Icon,{key:n,side:i},s):r.cloneElement(s,{side:i})}else a.push(s)}return a.length>0&&(i=r.createElement("span",{key:"text",className:h("text")},a)),[e,n,i]}}},91387:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var r=n(95097),i=n(68963),o=n(68512),a=n(28989);const s=(0,n(36951).Ge)("card"),l=i.forwardRef((function(e,t){const{type:n="container",theme:l,view:c,size:u="m",children:d,className:h,onClick:p,disabled:f,selected:m}=e,g=(0,r._T)(e,["type","theme","view","size","children","className","onClick","disabled","selected"]),v="selection"===n,y="container"===n,b=("action"===n||v)&&Boolean(p)&&!(f||m),x=y?"normal":void 0,w=y||v?"outlined":void 0,S=b?p:void 0,{onKeyDown:_}=(0,o.b)(p);return i.createElement(a.x,Object.assign({ref:t,role:b?"button":void 0,className:s({theme:l||x,view:c||w,type:n,selected:m,size:u,disabled:f,clickable:b},h),onClick:S,onKeyDown:b?_:void 0,tabIndex:b?0:void 0},g),d)}))},88776:(e,t,n)=>{"use strict";n.d(t,{J:()=>c});var r=n(68963),i=n(36951);const o={"aria-hidden":!0};function a(e){return"object"===typeof e}function s(e){return"string"===typeof e}const l=(0,i.Ge)("icon"),c=r.forwardRef(((e,t)=>{let n,i,u,{data:d,width:h,height:p,size:f,className:m,fill:g="currentColor",stroke:v="none",qa:y}=e;if(f&&(n=f,i=f),h&&(n=h),p&&(i=p),a(d))({viewBox:u}=d);else if(s(d))u=function(e){const t=e.match(/viewBox=(["']?)([\d\s,-]+)\1/);return t?t[2]:void 0}(d);else if(function(e){return"object"===typeof e&&"defaultProps"in e}(d))({viewBox:u}=d.defaultProps);else if(function(e){return"function"===typeof e&&(!e.prototype||!e.prototype.render)}(d)){const e=d({});e&&({viewBox:u}=e.props)}if(u&&(!n||!i)){const e=u.split(/\s+|\s*,\s*/);n||(n=e[2]),i||(i=e[3])}const b=Object.assign({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:n,height:i,className:l(null,m),fill:g,stroke:v,"data-qa":y},o);if(s(d)){const e=function(e){return e.replace(/<svg[^>]*>/,(e=>e.replace(/(width|height)=(["']?)\d+\2/g,"").replace(/(\s){2,}\b/g,"$1").replace(/(\s)+>/g,">")))}(d);return r.createElement("svg",Object.assign({},b,{ref:t,dangerouslySetInnerHTML:{__html:e}}))}if(a(d)){const e=c.prefix+(d.url||"#".concat(d.id));return r.createElement("svg",Object.assign({},b,{viewBox:u,ref:t}),r.createElement("use",{href:e,xlinkHref:e}))}const x=d;return x.defaultProps&&(x.defaultProps.width=x.defaultProps.height=void 0),r.createElement("svg",Object.assign({},b,{ref:t}),r.createElement(x,{width:void 0,height:void 0}))}));c.displayName="Icon",c.prefix=""},57107:(e,t,n)=>{"use strict";n.d(t,{h:()=>c});var r=n(68963),i=n(38886);const o=r.createContext({current:null});o.displayName="PortalContext";var a=n(87720),s=n(40797);const l=(0,n(36951).Ge)("portal");function c(e){let{container:t,children:n,disablePortal:c}=e;const u=function(){var e;const t=r.useContext(o);let n=null;return"object"===typeof window&&(n=window.document.body),null!==(e=t.current)&&void 0!==e?e:n}(),{scoped:d}=(0,s.T)(),h=null!==t&&void 0!==t?t:u;return c?r.createElement(r.Fragment,null,n):h?i.createPortal(d?r.createElement(a.f,{rootClassName:l("theme-wrapper"),scoped:!0},n):n,h):null}},10288:(e,t,n)=>{"use strict";n.d(t,{x:()=>l});var r=n(95097),i=n(68963),o=n(39137);const a=(0,n(36951).Ge)("text"),s=(e,t)=>{let{variant:n="body-1",ellipsis:r,ellipsisLines:i,whiteSpace:o,wordBreak:s}=e;return a({variant:n,ellipsis:r,ws:o,wb:s,"ellipsis-lines":i},t)},l=i.forwardRef((function(e,t){var{as:n,children:a,variant:l,className:c,ellipsis:u,color:d,whiteSpace:h,wordBreak:p,ellipsisLines:f,style:m,qa:g}=e,v=(0,r._T)(e,["as","children","variant","className","ellipsis","color","whiteSpace","wordBreak","ellipsisLines","style","qa"]);const y=n||"span",b=Object.assign({},m);return"number"===typeof f&&(b.WebkitLineClamp=f),i.createElement(y,Object.assign({ref:t,className:s({variant:l,ellipsis:u,whiteSpace:h,wordBreak:p,ellipsisLines:"number"===typeof f},d?(0,o.V)({color:d},c):c),style:b,"data-qa":g},v),a)}));l.displayName="Text"},39137:(e,t,n)=>{"use strict";n.d(t,{V:()=>i});const r=(0,n(36951).Ge)("color-text"),i=(e,t)=>{let{color:n}=e;return r({color:n},t)}},28989:(e,t,n)=>{"use strict";n.d(t,{x:()=>l});var r=n(95097),i=n(68963),o=n(36951),a=n(95216);const s=(0,o.Ge)("box"),l=i.forwardRef((function(e,t){var{as:n,children:o,qa:l,className:c,width:u,height:d,minWidth:h,minHeight:p,maxHeight:f,maxWidth:m,style:g,spacing:v,overflow:y}=e,b=(0,r._T)(e,["as","children","qa","className","width","height","minWidth","minHeight","maxHeight","maxWidth","style","spacing","overflow"]);const x=n||"div",w=Object.assign({width:u,height:d,minWidth:h,minHeight:p,maxHeight:f,maxWidth:m},g);return i.createElement(x,Object.assign({},b,{"data-qa":l,style:w,ref:t,className:s({overflow:y},v?(0,a.sp)(v,c):c)}),o)}))},77796:(e,t,n)=>{"use strict";n.d(t,{k:()=>u});var r=n(95097),i=n(68963),o=n(36951),a=n(28989),s=n(35490),l=n(34293);const c=(0,o.Ge)("flex"),u=i.forwardRef((function(e,t){const{direction:n,grow:o,basis:u,children:d,style:h,alignContent:p,alignItems:f,alignSelf:m,justifyContent:g,justifyItems:v,justifySelf:y,shrink:b,wrap:x,inline:w,gap:S,gapRow:_,className:C,space:E,centerContent:T}=e,O=(0,r._T)(e,["direction","grow","basis","children","style","alignContent","alignItems","alignSelf","justifyContent","justifyItems","justifySelf","shrink","wrap","inline","gap","gapRow","className","space","centerContent"]),{getClosestMediaProps:N,theme:{spaceBaseSize:k}}=(()=>{const{activeMediaQuery:e,theme:t}=i.useContext(s.V),{isMediaActive:n,getClosestMediaProps:r}=i.useMemo((()=>({isMediaActive:(0,l.ur)(e),getClosestMediaProps:(0,l.GD)(e)})),[e]);return{theme:t,activeMediaQuery:e,isMediaActive:n,getClosestMediaProps:r}})(),j=e=>"object"===typeof e&&null!==e?N(e):e,I=j(S),P=I?k*Number(I):void 0,D=j(_)||I,A=D?k*Number(D):void 0,R=j(E),M=S||_||!R?void 0:(0,l.cA)(R);return i.createElement(a.x,Object.assign({className:c({"center-content":T,inline:w,s:M},C),style:Object.assign({flexDirection:j(n),flexGrow:!0===o?1:o,flexWrap:!0===x?"wrap":x,flexBasis:u,flexShrink:b,columnGap:P,rowGap:A,alignContent:j(p),alignItems:j(f),alignSelf:j(m),justifyContent:j(g),justifyItems:j(v),justifySelf:j(y)},h),ref:t},O),E?i.Children.map(d,(e=>e?i.createElement("div",{className:c("wr")},e):e)):d)}))},14399:(e,t,n)=>{"use strict";n.d(t,{A:()=>i,Q:()=>r});const r={.5:"half"},i={breakpoints:{s:576,m:768,l:1080,xl:1200,xxl:1400,xxxl:1920},spaceBaseSize:4,components:{container:{gutters:"3",media:{l:{gutters:"5"}}}}}},35490:(e,t,n)=>{"use strict";n.d(t,{V:()=>o});var r=n(68963),i=n(14399);const o=r.createContext({theme:i.A,activeMediaQuery:"s"})},95216:(e,t,n)=>{"use strict";n.d(t,{sp:()=>s,W:()=>a});var r=n(36951),i=n(34293);const o=(0,r.Ge)("s"),a=(e,t)=>{const n=[];for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){const t=e[r];"undefined"!==typeof t&&n.push(o("".concat(r,"_").concat((0,i.cA)(t))))}return t&&n.push(t),n.join(" ")},s=a},34293:(e,t,n)=>{"use strict";n.d(t,{GD:()=>s,cA:()=>l,ur:()=>o});var r=n(14399);const i={s:0,m:1,l:2,xl:3,xxl:4,xxxl:5},o=e=>t=>e in i&&i[e]-i[t]>=0,a=["s","m","l","xl","xxl","xxxl"],s=e=>function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!e)return;let n=e;for(;n;){if(t[n])return t[n];n=a[i[n]-1]}},l=e=>e in r.Q?r.Q[e]:String(e)},84584:(e,t,n)=>{"use strict";n.d(t,{z:()=>o});var r=n(68963);const i={mobile:!1,platform:n(66573).t.BROWSER,useHistory:()=>({action:"",replace(){},push(){},goBack(){}}),useLocation:()=>({pathname:"",search:"",hash:""})},o=r.createContext(i)},66573:(e,t,n)=>{"use strict";n.d(t,{t:()=>r});var r,i=n(36951);!function(e){e.IOS="ios",e.ANDROID="android",e.BROWSER="browser"}(r||(r={}));(0,i.Ge)("root")({mobile:!0}).split(/\s+/)[1]},79805:(e,t,n)=>{"use strict";n.d(t,{X:()=>o});var r=n(68963),i=n(84584);function o(){return r.useContext(i.z).mobile}},57840:(e,t,n)=>{"use strict";n.d(t,{N:()=>r});const r=n(68963).createContext(void 0);r.displayName="ThemeContext"},87720:(e,t,n)=>{"use strict";n.d(t,{f:()=>O});var r=n(68963),i=n(35490);const o={media:"",matches:!1,onchange:()=>{},addListener:()=>{},removeListener:()=>{},addEventListener:()=>{},removeEventListener:()=>{},dispatchEvent:e=>!0},a=e=>"undefined"===typeof window||"function"!==typeof window.matchMedia?o:window.matchMedia(e);class s{constructor(e){this.queryListsDecl=[];const t={s:"(max-width: ".concat((n=e).m-1,"px)"),m:"(min-width: ".concat(n.m,"px) and (max-width: ").concat(n.l-1,"px)"),l:"(min-width: ".concat(n.l,"px) and (max-width: ").concat(n.xl-1,"px)"),xl:"(min-width: ".concat(n.xl,"px) and (max-width: ").concat(n.xxl-1,"px)"),xxl:"(min-width: ".concat(n.xxl,"px) and (max-width: ").concat(n.xxxl-1,"px)"),xxxl:"(min-width: ".concat(n.xxxl,"px)")};var n;this.queryListsDecl=[["s",a(t.s)],["m",a(t.m)],["l",a(t.l)],["xl",a(t.xl)],["xxl",a(t.xxl)],["xxxl",a(t.xxxl)]]}getCurrentActiveMedia(){const e=this.queryListsDecl.find((e=>{let[t,n]=e;return n.matches}));return e?e[0]:"s"}addListeners(e){this.queryListsDecl.forEach((t=>{let[n,r]=t;return r.addEventListener("change",e)}))}removeListeners(e){this.queryListsDecl.forEach((t=>{let[n,r]=t;return r.removeEventListener("change",e)}))}}const l=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"s";const[n,i]=r.useState(t);return r.useLayoutEffect((()=>{const t=new s(e),n=()=>{i(t.getCurrentActiveMedia())};return t.addListeners(n),n(),()=>{t.removeListeners(n)}}),[e]),n};var c=n(3186),u=n.n(c);function d(e){let{children:t,config:n,initialMediaQuery:o}=e;const a=r.useContext(i.V),s=r.useMemo((()=>function(e){let{theme:t,override:n}=e;return u()(t,n)}({theme:a.theme,override:n})),[n,a.theme]),c=l(s.breakpoints,o),d=r.useMemo((()=>({activeMediaQuery:c,theme:s})),[c,s]);return r.createElement(i.V.Provider,{value:d},t)}var h=n(36951),p=n(57840);const f=r.createContext(void 0);f.displayName="ThemeSettingsContext";const m="system",g="light",v="dark",y="root",b="ltr",x=(0,h.Ge)(y),w=x();function S(e){let{theme:t,nativeScrollbar:n=!1,className:r,prevClassName:i}=e;const o=document.body;if(o.classList.contains(w)||o.classList.add(w),i){i.split(" ").forEach((e=>{e&&o.classList.remove(e)}))}if(r){r.split(" ").forEach((e=>{e&&!o.classList.contains(e)&&o.classList.add(e)}))}[...o.classList].forEach((e=>{e.startsWith((0,h.Ui)(x({theme:!0})))&&o.classList.remove(e)})),o.classList.add((0,h.Ui)(x({theme:t})));const a={"native-scrollbar":n};for(const[s,l]of Object.entries(a))o.classList.toggle((0,h.Ui)(x({[s]:!0})),l)}const _="undefined"!==typeof window&&"function"===typeof window.matchMedia,C=()=>window.matchMedia("(prefers-color-scheme: dark)");function E(){const[e,t]=r.useState(_&&C().matches?"dark":"light");return r.useEffect((()=>{if(!_)return;const e=function(e,t){const n="function"!==typeof e.addEventListener;return n?e.addListener(t):e.addEventListener("change",t),()=>{n?e.removeListener(t):e.removeEventListener("change",t)}}(C(),(function(e){t(e.matches?"dark":"light")}));return()=>e()}),[]),e}const T=(0,h.Ge)(y);function O(e){let{theme:t,systemLightTheme:n,systemDarkTheme:i,direction:o,nativeScrollbar:a,scoped:s=!1,rootClassName:l="",children:c,layout:u}=e;var h,y,x,w;const _=r.useContext(p.N),C=r.useContext(f),O=void 0!==_||s,N=null!==(h=null===_||void 0===_?void 0:_.theme)&&void 0!==h?h:m,k=null!==t&&void 0!==t?t:N,j=null!==(y=null!==n&&void 0!==n?n:null===C||void 0===C?void 0:C.systemLightTheme)&&void 0!==y?y:g,I=null!==(x=null!==i&&void 0!==i?i:null===C||void 0===C?void 0:C.systemDarkTheme)&&void 0!==x?x:v,P=null!==(w=null===_||void 0===_?void 0:_.direction)&&void 0!==w?w:b,D=null!==o&&void 0!==o?o:P,A="light"===E()?j:I,R="system"===k?A:k,M=r.useRef("");r.useLayoutEffect((()=>{O||(S({theme:R,nativeScrollbar:a,className:l,prevClassName:M.current}),function(e){const t=document.body;e===b?t.removeAttribute("dir"):t.setAttribute("dir",e)}(D),M.current=l)}),[O,R,D,a,l]);const L=r.useMemo((()=>({theme:k,themeValue:R,direction:D,scoped:O})),[k,R,D,O]),F=r.useMemo((()=>({systemLightTheme:j,systemDarkTheme:I})),[j,I]);return r.createElement(d,Object.assign({},u),r.createElement(p.N.Provider,{value:L},r.createElement(f.Provider,{value:F},O?r.createElement("div",{className:T({theme:R,"native-scrollbar":!1!==a},l),dir:D},c):c)))}O.displayName="ThemeProvider"},40797:(e,t,n)=>{"use strict";n.d(t,{T:()=>o});var r=n(68963),i=n(57840);function o(){const e=r.useContext(i.N);if(void 0===e)throw new Error("useTheme* hooks must be used within ThemeProvider");return e}},64270:(e,t,n)=>{"use strict";n.d(t,{C:()=>i});var r=n(40797);function i(){return(0,r.T)().themeValue}},54973:(e,t,n)=>{"use strict";n.d(t,{e:()=>s});var r=n(31329),i=n(24205);const o=(0,i.iE)().lang,a=new r.mb({lang:o,fallbackLang:o});function s(e,t){return Object.entries(e).forEach((e=>{let[n,r]=e;return a.registerKeyset(n,t,r)})),a.keyset(t)}(0,i.Pe)((e=>{a.setLang(e.lang)}))},36951:(e,t,n)=>{"use strict";n.d(t,{A7:()=>i,Ge:()=>o,Ui:()=>a});var r=n(5247);const i="g-",o=((0,r.withNaming)({e:"__",m:"_"}),(0,r.withNaming)({n:i,e:"__",m:"_"}));function a(e){return e.split(/\s(.*)/)[1]}},99742:(e,t,n)=>{"use strict";n.d(t,{x:()=>s,y:()=>l});var r=n(88776),i=n(36951),o=n(70292);let a=1;function s(){return"".concat(i.A7,"uniq-").concat(a++)}const l=(0,o.s)(r.J)},24205:(e,t,n)=>{"use strict";var r;n.d(t,{Pe:()=>s,iE:()=>l,jQ:()=>a}),function(e){e.Ru="ru",e.En="en"}(r||(r={}));let i=[];const o={lang:r.En},a=e=>{Object.assign(o,e),i.forEach((e=>{e(o)}))},s=e=>(i.push(e),()=>{i=i.filter((t=>t!==e))}),l=()=>o},93404:(e,t,n)=>{"use strict";n.d(t,{P:()=>o});var r=n(95097),i=n(36951);const o=new class{constructor(e){this.subscriptions=[],this.componentPrefix=e}subscribe(e){this.subscriptions.push(e)}unsubscribe(e){const t=this.subscriptions.indexOf(e);t>-1&&this.subscriptions.splice(t,1)}publish(e){var{componentId:t}=e,n=(0,r._T)(e,["componentId"]);this.subscriptions.forEach((e=>e(Object.assign(Object.assign({},n),{componentId:this.componentPrefix?"".concat(this.componentPrefix).concat(t):t}))))}withEventPublisher(e,t){return n=>{this.publish(Object.assign(Object.assign({},n),{componentId:e,qa:t}))}}}(i.A7)},70292:(e,t,n)=>{"use strict";n.d(t,{s:()=>i});var r=n(68963);function i(e){return function(t){if(!r.isValidElement(t))return!1;const{type:n}=t;if(n===e)return!0;if("string"===typeof e||"string"===typeof n)return!1;const i=n.displayName;return Boolean(i&&i===e.displayName)}}},31445:(e,t,n)=>{"use strict";n.d(t,{Y:()=>i});var r=n(36951);function i(e){return{appear:(0,r.Ui)(e({appear:!0})),appearActive:(0,r.Ui)(e({appear:"active"})),appearDone:(0,r.Ui)(e({appear:"done"})),enter:(0,r.Ui)(e({enter:!0})),enterActive:(0,r.Ui)(e({enter:"active"})),enterDone:(0,r.Ui)(e({enter:"done"})),exit:(0,r.Ui)(e({exit:!0})),exitActive:(0,r.Ui)(e({exit:"active"})),exitDone:(0,r.Ui)(e({exit:"done"}))}}},12913:(e,t,n)=>{"use strict";n.d(t,{O:()=>i});const r=new Map;function i(e){!e||r.has(e)}},59926:(e,t,n)=>{"use strict";n.d(t,{V:()=>r});const r={BACKSPACE:"Backspace",ENTER:"Enter",TAB:"Tab",SPACEBAR:" ",SPACEBAR_OLD:"Spacebar",ESCAPE:"Escape",ARROW_UP:"ArrowUp",ARROW_DOWN:"ArrowDown"}},68512:(e,t,n)=>{"use strict";n.d(t,{S:()=>o,b:()=>a});var r=n(68963),i=n(59926);function o(e){return t=>{e&&[i.V.ENTER,i.V.SPACEBAR,i.V.SPACEBAR_OLD].includes(t.key)&&(t.preventDefault(),e(t))}}function a(e){return{onKeyDown:r.useMemo((()=>o(e)),[e])}}},63660:(e,t,n)=>{"use strict";n.d(t,{m:()=>re});var r=n(63609),i=n(68963),o=n(63639),a=n.n(o),s=n(38886),l=n(36951);function c(e,t){return e.findIndex((e=>e.name===t))}function u(e,t){return-1!==c(e,t)}function d(e,t){return u(e,t)?e.filter((e=>e.name!==t)):e}const h=i.createContext(null);h.displayName="ToasterContext";const p=i.createContext([]);p.displayName="ToastsContext";const f=i.forwardRef((function(e,t){let{children:n}=e;const[r,o]=i.useState([]),a=i.useCallback((e=>{const{name:t}=e;o((n=>{let r=n;return u(n,t)&&(r=d(n,t)),[...r,Object.assign(Object.assign({},e),{addedAt:Date.now(),ref:i.createRef()})]}))}),[]),s=i.useCallback((e=>{o((t=>d(t,e)))}),[]),l=i.useCallback((()=>{o((()=>[]))}),[]),f=i.useCallback(((e,t)=>{o((n=>{if(!u(n,e))return n;const r=c(n,e);return[...n.slice(0,r),Object.assign(Object.assign({},n[r]),t),...n.slice(r+1)]}))}),[]),m=i.useRef(r);i.useEffect((()=>{m.current=r}),[r]);const g=i.useCallback((e=>!!m.current&&u(m.current,e)),[]),v=i.useMemo((()=>({add:a,remove:s,removeAll:l,update:f,has:g})),[a,s,l,f,g]);return i.useImperativeHandle(t,(()=>({add:a,remove:s,removeAll:l,update:f,has:g}))),i.createElement(h.Provider,{value:v},i.createElement(p.Provider,{value:r},n))}));f.displayName="ToasterProvider";var m=n(79805),g=n(63366),v=n(87462),y=n(97326),b=n(51721),x=n(24330);function w(e,t){var n=Object.create(null);return e&&i.Children.map(e,(function(e){return e})).forEach((function(e){n[e.key]=function(e){return t&&(0,i.isValidElement)(e)?t(e):e}(e)})),n}function S(e,t,n){return null!=n[t]?n[t]:e.props[t]}function _(e,t,n){var r=w(e.children),o=function(e,t){function n(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var r,i=Object.create(null),o=[];for(var a in e)a in t?o.length&&(i[a]=o,o=[]):o.push(a);var s={};for(var l in t){if(i[l])for(r=0;r<i[l].length;r++){var c=i[l][r];s[i[l][r]]=n(c)}s[l]=n(l)}for(r=0;r<o.length;r++)s[o[r]]=n(o[r]);return s}(t,r);return Object.keys(o).forEach((function(a){var s=o[a];if((0,i.isValidElement)(s)){var l=a in t,c=a in r,u=t[a],d=(0,i.isValidElement)(u)&&!u.props.in;!c||l&&!d?c||!l||d?c&&l&&(0,i.isValidElement)(u)&&(o[a]=(0,i.cloneElement)(s,{onExited:n.bind(null,s),in:u.props.in,exit:S(s,"exit",e),enter:S(s,"enter",e)})):o[a]=(0,i.cloneElement)(s,{in:!1}):o[a]=(0,i.cloneElement)(s,{onExited:n.bind(null,s),in:!0,exit:S(s,"exit",e),enter:S(s,"enter",e)})}})),o}var C=Object.values||function(e){return Object.keys(e).map((function(t){return e[t]}))},E=function(e){function t(t,n){var r,i=(r=e.call(this,t,n)||this).handleExited.bind((0,y.Z)(r));return r.state={contextValue:{isMounting:!0},handleExited:i,firstRender:!0},r}(0,b.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,r,o=t.children,a=t.handleExited;return{children:t.firstRender?(n=e,r=a,w(n.children,(function(e){return(0,i.cloneElement)(e,{onExited:r.bind(null,e),in:!0,appear:S(e,"appear",n),enter:S(e,"enter",n),exit:S(e,"exit",n)})}))):_(e,o,a),firstRender:!1}},n.handleExited=function(e,t){var n=w(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState((function(t){var n=(0,v.Z)({},t.children);return delete n[e.key],{children:n}})))},n.render=function(){var e=this.props,t=e.component,n=e.childFactory,r=(0,g.Z)(e,["component","childFactory"]),o=this.state.contextValue,a=C(this.state.children).map(n);return delete r.appear,delete r.enter,delete r.exit,null===t?i.createElement(x.Z.Provider,{value:o},a):i.createElement(x.Z.Provider,{value:o},i.createElement(t,r,a))},t}(i.Component);E.propTypes={},E.defaultProps={component:"div",childFactory:function(e){return e}};const T=E;var O=n(62685),N=n(31445),k=n(68010),j=n(96261),I=n(93316),P=n(3442),D=n(77280);function A(e){let{onClose:t,timeout:n}=e;const[r,o,a]=function(){const[e,t]=i.useState(!1);return[i.useCallback((()=>{t(!0)}),[]),i.useCallback((()=>{t(!1)}),[]),e]}();var s,l;return s=t,l=a?null:n,i.useEffect((()=>{if("number"!==typeof l)return;const e=setTimeout((()=>{s()}),l);return()=>{clearTimeout(e)}}),[s,l]),{onMouseOver:r,onMouseLeave:o}}var R=n(17176),M=n(88776),L=n(54973);const F=JSON.parse('{"label_close-button":"Close"}'),z=JSON.parse('{"label_close-button":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c"}'),B=(0,L.e)({en:F,ru:z},"Toaster"),U=(0,l.Ge)("toast"),H=5e3,V={normal:null,info:k.Z,success:j.Z,warning:I.Z,danger:I.Z,utility:P.Z};const G=i.forwardRef((function(e,t){const{name:n,content:r,actions:o,title:a,className:s,theme:l="normal",renderIcon:c,autoHiding:u=H,isClosable:d=!0,mobile:h=!1,removeCallback:p}=e,f=i.useCallback((()=>p(n)),[p,n]),m=A({onClose:f,timeout:"number"===typeof u?u:void 0}),g={mobile:h,theme:l},v=Boolean(a),y=Boolean(r),b=c?c(e):function(e){let{theme:t}=e;return t&&V[t]?i.createElement(M.J,{data:V[t],size:20,className:U("icon",{[t]:!0})}):null}({theme:l});return i.createElement("div",Object.assign({ref:t,className:U(g,s)},m,{"data-toast":!0}),b&&i.createElement("div",{className:U("icon-container")},b),i.createElement("div",{className:U("container")},v&&i.createElement("h3",{className:U("title")},a),d&&i.createElement(R.z,{size:"s",view:"flat",className:U("btn-close"),onClick:f,extraProps:{"aria-label":B("label_close-button")}},i.createElement(M.J,{data:D.Z})),y&&i.createElement("div",{className:U("content",{"without-title":!v})},r),function(e){let{actions:t,onClose:n}=e;return t&&t.length?i.createElement("div",{className:U("actions")},t.map(((e,t)=>{let{label:r,onClick:o,view:a="outlined",removeAfterClick:s=!0}=e;return i.createElement(R.z,{key:"".concat(r,"__").concat(t),className:U("action"),onClick:()=>{o(),s&&n()},type:"button",size:"l",view:a,width:"auto"},r)}))):null}({actions:o,onClose:f})))})),W=(0,N.Y)((0,l.Ge)("toast-animation-desktop")),q=(0,N.Y)((0,l.Ge)("toast-animation-mobile"));function Z(e){const{toasts:t,mobile:n,removeCallback:r}=e;return i.createElement(T,{component:null},t.map((e=>i.createElement(O.Z,{key:"".concat(e.name,"_").concat(e.addedAt),nodeRef:e.ref,classNames:n?q:W,addEndListener:t=>{var n,r;return null===(r=null===(n=e.ref)||void 0===n?void 0:n.current)||void 0===r?void 0:r.addEventListener("animationend",t)},onEnter:()=>Y(e),onExit:()=>Y(e)},i.createElement(G,Object.assign({},e,{mobile:n,removeCallback:r}))))))}function Y(e){var t;(null===(t=e.ref)||void 0===t?void 0:t.current)&&e.ref.current.style.setProperty("--_--item-height","".concat(e.ref.current.offsetHeight,"px"))}var K=n(57107);const Q=(0,l.Ge)("toaster");function X(e){let{children:t,className:n,mobile:r}=e;const o=i.useRef("undefined"===typeof document?void 0:document.createElement("div"));return i.useEffect((()=>{const e=o.current;if(e)return document.body.appendChild(e),()=>{document.body.removeChild(e)}}),[]),i.useEffect((()=>{o.current&&(o.current.className=Q({mobile:r},n))}),[n,r]),i.createElement(K.h,{container:o.current},t)}function $(e){let{className:t,mobile:n,hasPortal:r=!0}=e;const o=(0,m.X)(),{remove:a}=function(){const e=i.useContext(h);if(null===e)throw new Error("Toaster: `useToaster` hook is used out of context");return i.useMemo((()=>e),[e])}(),s=i.useContext(p),l=i.createElement(Z,{toasts:s,removeCallback:a,mobile:null!==n&&void 0!==n?n:o});return r?i.createElement(X,{className:t||"",mobile:null!==n&&void 0!==n?n:o},l):l}X.displayName="ToasterPortal",$.displayName="ToasterComponent";const J=Symbol("Toaster instance key"),ee=(0,l.Ge)("toaster");let te;class ne{static injectReactDOMClient(e){te=e}constructor(e){this.className="",this.mobile=!1,this.componentAPI=null,this.add=e=>{var t;null===(t=this.componentAPI)||void 0===t||t.add(e)},this.remove=e=>{var t;null===(t=this.componentAPI)||void 0===t||t.remove(e)},this.removeAll=()=>{var e;null===(e=this.componentAPI)||void 0===e||e.removeAll()},this.update=(e,t)=>{var n;null===(n=this.componentAPI)||void 0===n||n.update(e,t)},this.has=e=>{var t,n;return null!==(n=null===(t=this.componentAPI)||void 0===t?void 0:t.has(e))&&void 0!==n&&n};const t=a()(e,["className"],""),n=a()(e,["mobile"],!1);if(window[J]instanceof ne){const e=window[J];return e.className=t,e.mobile=n,e.setRootNodeClassName(),e}this.className=t,this.mobile=n,this.createRootNode(),this.createReactRoot(),this.render(),window[J]=this}destroy(){s.unmountComponentAtNode(this.rootNode),document.body.removeChild(this.rootNode)}createRootNode(){this.rootNode=document.createElement("div"),this.setRootNodeClassName(),document.body.appendChild(this.rootNode)}createReactRoot(){te&&(this.reactRoot=te.createRoot(this.rootNode))}render(){const e=i.createElement(f,{ref:e=>{this.componentAPI=e}},i.createElement($,{hasPortal:!1,mobile:this.mobile}));this.reactRoot?this.reactRoot.render(e):s.render(e,this.rootNode,(()=>Promise.resolve()))}setRootNodeClassName(){this.rootNode.className=ee({mobile:this.mobile},this.className)}}ne.injectReactDOMClient(r);const re="object"===typeof window?new ne:{}},69039:(e,t,n)=>{"use strict";var r=n(42780),i=n(9371),o=i(r("String.prototype.indexOf"));e.exports=function(e,t){var n=r(e,!!t);return"function"===typeof n&&o(e,".prototype.")>-1?i(n):n}},9371:(e,t,n)=>{"use strict";var r=n(88050),i=n(42780),o=n(18083),a=n(84968),s=i("%Function.prototype.apply%"),l=i("%Function.prototype.call%"),c=i("%Reflect.apply%",!0)||r.call(l,s),u=n(85122),d=i("%Math.max%");e.exports=function(e){if("function"!==typeof e)throw new a("a function is required");var t=c(r,l,arguments);return o(t,1+d(0,e.length-(arguments.length-1)),!0)};var h=function(){return c(r,s,arguments)};u?u(e.exports,"apply",{value:h}):e.exports.apply=h},69886:(e,t,n)=>{"use strict";var r=n(21034),i={"text/plain":"Text","text/html":"Url",default:"Text"},o="Copy to clipboard: #{key}, Enter";e.exports=function(e,t){var n,a,s,l,c,u,d=!1;t||(t={}),n=t.debug||!1;try{if(s=r(),l=document.createRange(),c=document.getSelection(),(u=document.createElement("span")).textContent=e,u.ariaHidden="true",u.style.all="unset",u.style.position="fixed",u.style.top=0,u.style.clip="rect(0, 0, 0, 0)",u.style.whiteSpace="pre",u.style.webkitUserSelect="text",u.style.MozUserSelect="text",u.style.msUserSelect="text",u.style.userSelect="text",u.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),"undefined"===typeof r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var o=i[t.format]||i.default;window.clipboardData.setData(o,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(u),l.selectNodeContents(u),c.addRange(l),!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{c&&("function"==typeof c.removeRange?c.removeRange(l):c.removeAllRanges()),u&&document.body.removeChild(u),s()}return d}},47694:(e,t)=>{var n;n=function(e){e.version="1.2.2";var t=function(){for(var e=0,t=new Array(256),n=0;256!=n;++n)e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=1&(e=n)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1)?-306674912^e>>>1:e>>>1,t[n]=e;return"undefined"!==typeof Int32Array?new Int32Array(t):t}(),n=function(e){var t=0,n=0,r=0,i="undefined"!==typeof Int32Array?new Int32Array(4096):new Array(4096);for(r=0;256!=r;++r)i[r]=e[r];for(r=0;256!=r;++r)for(n=e[r],t=256+r;t<4096;t+=256)n=i[t]=n>>>8^e[255&n];var o=[];for(r=1;16!=r;++r)o[r-1]="undefined"!==typeof Int32Array?i.subarray(256*r,256*r+256):i.slice(256*r,256*r+256);return o}(t),r=n[0],i=n[1],o=n[2],a=n[3],s=n[4],l=n[5],c=n[6],u=n[7],d=n[8],h=n[9],p=n[10],f=n[11],m=n[12],g=n[13],v=n[14];e.table=t,e.bstr=function(e,n){for(var r=-1^n,i=0,o=e.length;i<o;)r=r>>>8^t[255&(r^e.charCodeAt(i++))];return~r},e.buf=function(e,n){for(var y=-1^n,b=e.length-15,x=0;x<b;)y=v[e[x++]^255&y]^g[e[x++]^y>>8&255]^m[e[x++]^y>>16&255]^f[e[x++]^y>>>24]^p[e[x++]]^h[e[x++]]^d[e[x++]]^u[e[x++]]^c[e[x++]]^l[e[x++]]^s[e[x++]]^a[e[x++]]^o[e[x++]]^i[e[x++]]^r[e[x++]]^t[e[x++]];for(b+=15;x<b;)y=y>>>8^t[255&(y^e[x++])];return~y},e.str=function(e,n){for(var r=-1^n,i=0,o=e.length,a=0,s=0;i<o;)(a=e.charCodeAt(i++))<128?r=r>>>8^t[255&(r^a)]:a<2048?r=(r=r>>>8^t[255&(r^(192|a>>6&31))])>>>8^t[255&(r^(128|63&a))]:a>=55296&&a<57344?(a=64+(1023&a),s=1023&e.charCodeAt(i++),r=(r=(r=(r=r>>>8^t[255&(r^(240|a>>8&7))])>>>8^t[255&(r^(128|a>>2&63))])>>>8^t[255&(r^(128|s>>6&15|(3&a)<<4))])>>>8^t[255&(r^(128|63&s))]):r=(r=(r=r>>>8^t[255&(r^(224|a>>12&15))])>>>8^t[255&(r^(128|a>>6&63))])>>>8^t[255&(r^(128|63&a))];return~r}},"undefined"===typeof DO_NOT_EXPORT_CRC?n(t):n({})},44937:(e,t,n)=>{"use strict";var r=n(29335),i={};var o=function(e){};function a(e,t,n,r,i,a,s,l){if(o(t),!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,i,a,s,l],d=0;(c=new Error(t.replace(/%s/g,(function(){return u[d++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}var s="mixins";e.exports=function(e,t,n){var o=[],l={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"},c={getDerivedStateFromProps:"DEFINE_MANY_MERGED"},u={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=r({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=r({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=f(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=r({},e.propTypes,t)},statics:function(e,t){!function(e,t){if(!t)return;for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){if(a(!(n in u),'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"===(c.hasOwnProperty(n)?c[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]=f(e[n],r));e[n]=r}}}(e,t)},autobind:function(){}};function d(e,t){var n=l.hasOwnProperty(t)?l[t]:null;b.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 r=e.prototype,i=r.__reactAutoBindPairs;for(var o in n.hasOwnProperty(s)&&u.mixins(e,n.mixins),n)if(n.hasOwnProperty(o)&&o!==s){var c=n[o],h=r.hasOwnProperty(o);if(d(h,o),u.hasOwnProperty(o))u[o](e,c);else{var p=l.hasOwnProperty(o);if("function"===typeof c&&!p&&!h&&!1!==n.autobind)i.push(o,c),r[o]=c;else if(h){var g=l[o];a(p&&("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?r[o]=f(r[o],c):"DEFINE_MANY"===g&&(r[o]=m(r[o],c))}else r[o]=c}}}else;}function p(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 f(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var i={};return p(i,n),p(i,r),i}}function m(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function g(e,t){return t.bind(e)}var v={componentDidMount:function(){this.__isMounted=!0}},y={componentWillUnmount:function(){this.__isMounted=!1}},b={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},x=function(){};return r(x.prototype,e.prototype,b),function(e){var t=function(e,r,o){this.__reactAutoBindPairs.length&&function(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],i=t[n+1];e[r]=g(e,i)}}(this),this.props=e,this.context=r,this.refs=i,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 r in t.prototype=new x,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],o.forEach(h.bind(null,t)),h(t,v),h(t,e),h(t,y),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),a(t.prototype.render,"createClass(...): Class specification must implement a `render` method."),l)t.prototype[r]||(t.prototype[r]=null);return t}}},77065:(e,t,n)=>{"use strict";var r=n(68963),i=n(44937);if("undefined"===typeof r)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 r.Component).updater;e.exports=i(r.Component,r.isValidElement,o)},75812:e=>{e.exports=Date.now||function(){return(new Date).getTime()}},22877:function(e){e.exports=function(){"use strict";var e=1e3,t=6e4,n=36e5,r="millisecond",i="second",o="minute",a="hour",s="day",l="week",c="month",u="quarter",d="year",h="date",p="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|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])+"]"}},v=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},y={s:v,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?"+":"-")+v(r,2,"0")+":"+v(i,2,"0")},m:function e(t,n){if(t.date()<n.date())return-e(n,t);var r=12*(n.year()-t.year())+(n.month()-t.month()),i=t.clone().add(r,c),o=n-i<0,a=t.clone().add(r+(o?-1:1),c);return+(-(r+(n-i)/(o?i-a:a-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(e){return{M:c,y:d,w:l,d:s,D:h,h:a,m:o,s:i,ms:r,Q:u}[e]||String(e||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}},b="en",x={};x[b]=g;var w="$isDayjsObject",S=function(e){return e instanceof T||!(!e||!e[w])},_=function e(t,n,r){var i;if(!t)return b;if("string"==typeof t){var o=t.toLowerCase();x[o]&&(i=o),n&&(x[o]=n,i=o);var a=t.split("-");if(!i&&a.length>1)return e(a[0])}else{var s=t.name;x[s]=t,i=s}return!r&&i&&(b=i),i||!r&&b},C=function(e,t){if(S(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new T(n)},E=y;E.l=_,E.i=S,E.w=function(e,t){return C(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var T=function(){function g(e){this.$L=_(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[w]=!0}var v=g.prototype;return v.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(E.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(f);if(r){var i=r[2]-1||0,o=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)}}return new Date(t)}(e),this.init()},v.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()},v.$utils=function(){return E},v.isValid=function(){return!(this.$d.toString()===p)},v.isSame=function(e,t){var n=C(e);return this.startOf(t)<=n&&n<=this.endOf(t)},v.isAfter=function(e,t){return C(e)<this.startOf(t)},v.isBefore=function(e,t){return this.endOf(t)<C(e)},v.$g=function(e,t,n){return E.u(e)?this[t]:this.set(n,e)},v.unix=function(){return Math.floor(this.valueOf()/1e3)},v.valueOf=function(){return this.$d.getTime()},v.startOf=function(e,t){var n=this,r=!!E.u(t)||t,u=E.p(e),p=function(e,t){var i=E.w(n.$u?Date.UTC(n.$y,t,e):new Date(n.$y,t,e),n);return r?i:i.endOf(s)},f=function(e,t){return E.w(n.toDate()[e].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(t)),n)},m=this.$W,g=this.$M,v=this.$D,y="set"+(this.$u?"UTC":"");switch(u){case d:return r?p(1,0):p(31,11);case c:return r?p(1,g):p(0,g+1);case l:var b=this.$locale().weekStart||0,x=(m<b?m+7:m)-b;return p(r?v-x:v+(6-x),g);case s:case h:return f(y+"Hours",0);case a:return f(y+"Minutes",1);case o:return f(y+"Seconds",2);case i:return f(y+"Milliseconds",3);default:return this.clone()}},v.endOf=function(e){return this.startOf(e,!1)},v.$set=function(e,t){var n,l=E.p(e),u="set"+(this.$u?"UTC":""),p=(n={},n[s]=u+"Date",n[h]=u+"Date",n[c]=u+"Month",n[d]=u+"FullYear",n[a]=u+"Hours",n[o]=u+"Minutes",n[i]=u+"Seconds",n[r]=u+"Milliseconds",n)[l],f=l===s?this.$D+(t-this.$W):t;if(l===c||l===d){var m=this.clone().set(h,1);m.$d[p](f),m.init(),this.$d=m.set(h,Math.min(this.$D,m.daysInMonth())).$d}else p&&this.$d[p](f);return this.init(),this},v.set=function(e,t){return this.clone().$set(e,t)},v.get=function(e){return this[E.p(e)]()},v.add=function(r,u){var h,p=this;r=Number(r);var f=E.p(u),m=function(e){var t=C(p);return E.w(t.date(t.date()+Math.round(e*r)),p)};if(f===c)return this.set(c,this.$M+r);if(f===d)return this.set(d,this.$y+r);if(f===s)return m(1);if(f===l)return m(7);var g=(h={},h[o]=t,h[a]=n,h[i]=e,h)[f]||1,v=this.$d.getTime()+r*g;return E.w(v,this)},v.subtract=function(e,t){return this.add(-1*e,t)},v.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return n.invalidDate||p;var r=e||"YYYY-MM-DDTHH:mm:ssZ",i=E.z(this),o=this.$H,a=this.$m,s=this.$M,l=n.weekdays,c=n.months,u=n.meridiem,d=function(e,n,i,o){return e&&(e[n]||e(t,r))||i[n].slice(0,o)},h=function(e){return E.s(o%12||12,e,"0")},f=u||function(e,t,n){var r=e<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(m,(function(e,r){return r||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return E.s(t.$y,4,"0");case"M":return s+1;case"MM":return E.s(s+1,2,"0");case"MMM":return d(n.monthsShort,s,c,3);case"MMMM":return d(c,s);case"D":return t.$D;case"DD":return E.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return d(n.weekdaysMin,t.$W,l,2);case"ddd":return d(n.weekdaysShort,t.$W,l,3);case"dddd":return l[t.$W];case"H":return String(o);case"HH":return E.s(o,2,"0");case"h":return h(1);case"hh":return h(2);case"a":return f(o,a,!0);case"A":return f(o,a,!1);case"m":return String(a);case"mm":return E.s(a,2,"0");case"s":return String(t.$s);case"ss":return E.s(t.$s,2,"0");case"SSS":return E.s(t.$ms,3,"0");case"Z":return i}return null}(e)||i.replace(":","")}))},v.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},v.diff=function(r,h,p){var f,m=this,g=E.p(h),v=C(r),y=(v.utcOffset()-this.utcOffset())*t,b=this-v,x=function(){return E.m(m,v)};switch(g){case d:f=x()/12;break;case c:f=x();break;case u:f=x()/3;break;case l:f=(b-y)/6048e5;break;case s:f=(b-y)/864e5;break;case a:f=b/n;break;case o:f=b/t;break;case i:f=b/e;break;default:f=b}return p?f:E.a(f)},v.daysInMonth=function(){return this.endOf(c).$D},v.$locale=function(){return x[this.$L]},v.locale=function(e,t){if(!e)return this.$L;var n=this.clone(),r=_(e,t,!0);return r&&(n.$L=r),n},v.clone=function(){return E.w(this.$d,this)},v.toDate=function(){return new Date(this.valueOf())},v.toJSON=function(){return this.isValid()?this.toISOString():null},v.toISOString=function(){return this.$d.toISOString()},v.toString=function(){return this.$d.toUTCString()},g}(),O=T.prototype;return C.prototype=O,[["$ms",r],["$s",i],["$m",o],["$H",a],["$W",s],["$M",c],["$y",d],["$D",h]].forEach((function(e){O[e[1]]=function(t){return this.$g(t,e[0],e[1])}})),C.extend=function(e,t){return e.$i||(e(t,T,C),e.$i=!0),C},C.locale=_,C.isDayjs=S,C.unix=function(e){return C(1e3*e)},C.en=x[b],C.Ls=x,C.p={},C}()},46770:function(e){e.exports=function(){"use strict";return function(e,t){var n=t.prototype,r=n.format;n.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return r.bind(this)(e);var i=this.$utils(),o=(e||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case"Q":return Math.ceil((t.$M+1)/3);case"Do":return n.ordinal(t.$D);case"gggg":return t.weekYear();case"GGGG":return t.isoWeekYear();case"wo":return n.ordinal(t.week(),"W");case"w":case"ww":return i.s(t.week(),"w"===e?1:2,"0");case"W":case"WW":return i.s(t.isoWeek(),"W"===e?1:2,"0");case"k":case"kk":return i.s(String(0===t.$H?24:t.$H),"k"===e?1:2,"0");case"X":return Math.floor(t.$d.getTime()/1e3);case"x":return t.$d.getTime();case"z":return"["+t.offsetName()+"]";case"zzz":return"["+t.offsetName("long")+"]";default:return e}}));return r.bind(this)(o)}}}()},9817:function(e){e.exports=function(){"use strict";return function(e,t,n){var r=t.prototype,i=function(e){var t=e.date,r=e.utc;return Array.isArray(t)?r?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=r.parse;r.parse=function(e){e.date=i.bind(this)(e),o.bind(this)(e)}}}()},52703: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/,r=/\d\d?/,i=/\d*[^-_:/,()\s\d]+/,o={},a=function(e){return(e=+e)+(e>68?1900:2e3)},s=function(e){return function(t){this[e]=+t}},l=[/[+-]\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)}],c=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},u=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?"pm":"PM");return n},d={A:[i,function(e){this.afternoon=u(e,!1)}],a:[i,function(e){this.afternoon=u(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:[r,s("seconds")],ss:[r,s("seconds")],m:[r,s("minutes")],mm:[r,s("minutes")],H:[r,s("hours")],h:[r,s("hours")],HH:[r,s("hours")],hh:[r,s("hours")],D:[r,s("day")],DD:[n,s("day")],Do:[i,function(e){var t=o.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,"")===e&&(this.day=r)}],M:[r,s("month")],MM:[n,s("month")],MMM:[i,function(e){var t=c("months"),n=(c("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:[i,function(e){var t=c("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:l,ZZ:l};function h(n){var r,i;r=n,i=o&&o.formats;for(var a=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),s=a.length,l=0;l<s;l+=1){var c=a[l],u=d[c],h=u&&u[0],p=u&&u[1];a[l]=p?{regex:h,parser:p}:c.replace(/^\[|\]$/g,"")}return function(e){for(var t={},n=0,r=0;n<s;n+=1){var i=a[n];if("string"==typeof i)r+=i.length;else{var o=i.regex,l=i.parser,c=e.slice(r),u=o.exec(c)[0];l.call(t,u),e=e.replace(u,"")}}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 r=t.prototype,i=r.parse;r.parse=function(e){var t=e.date,r=e.utc,a=e.args;this.$u=r;var s=a[1];if("string"==typeof s){var l=!0===a[2],c=!0===a[3],u=l||c,d=a[2];c&&(d=a[2]),o=this.$locale(),!l&&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 r=h(t)(e),i=r.year,o=r.month,a=r.day,s=r.hours,l=r.minutes,c=r.seconds,u=r.milliseconds,d=r.zone,p=new Date,f=a||(i||o?1:p.getDate()),m=i||p.getFullYear(),g=0;i&&!o||(g=o>0?o-1:p.getMonth());var v=s||0,y=l||0,b=c||0,x=u||0;return d?new Date(Date.UTC(m,g,f,v,y,b,x+60*d.offset*1e3)):n?new Date(Date.UTC(m,g,f,v,y,b,x)):new Date(m,g,f,v,y,b,x)}catch(e){return new Date("")}}(t,s,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(s)&&(this.$d=new Date("")),o={}}else if(s instanceof Array)for(var p=s.length,f=1;f<=p;f+=1){a[1]=s[f-1];var m=n.apply(this,a);if(m.isValid()){this.$d=m.$d,this.$L=m.$L,this.init();break}f===p&&(this.$d=new Date(""))}else i.call(this,e)}}}()},46635:function(e){e.exports=function(){"use strict";var e="day";return function(t,n,r){var i=function(t){return t.add(4-t.isoWeekday(),e)},o=n.prototype;o.isoWeekYear=function(){return i(this).year()},o.isoWeek=function(t){if(!this.$utils().u(t))return this.add(7*(t-this.isoWeek()),e);var n,o,a,s=i(this),l=(n=this.isoWeekYear(),a=4-(o=(this.$u?r.utc:r)().year(n).startOf("year")).isoWeekday(),o.isoWeekday()>4&&(a+=7),o.add(a,e));return s.diff(l,"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(),r=!!n.u(t)||t;return"isoweek"===n.p(e)?r?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)}}}()},13708: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,r){var i=n.prototype,o=i.format;r.en.formats=e,i.format=function(t){void 0===t&&(t="YYYY-MM-DDTHH:mm:ssZ");var n=this.$locale().formats,r=function(t,n){return t.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,r,i){var o=i&&i.toUpperCase();return r||n[i]||e[i]||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,r)}}}()},93876:function(e){e.exports=function(){"use strict";return function(e,t,n){var r=t.prototype,i=function(e){var t,i=e.date,o=e.utc,a={};if(!(null===(t=i)||t instanceof Date||t instanceof Array||r.$utils().u(t)||"Object"!==t.constructor.name)){if(!Object.keys(i).length)return new Date;var s=o?n.utc():n();Object.keys(i).forEach((function(e){var t,n;a[(t=e,n=r.$utils().p(t),"date"===n?"day":n)]=i[e]}));var l=a.day||(a.year||a.month>=0?1:s.date()),c=a.year||s.year(),u=a.month>=0?a.month:a.year||a.day?0:s.month(),d=a.hour||0,h=a.minute||0,p=a.second||0,f=a.millisecond||0;return o?new Date(Date.UTC(c,u,l,d,h,p,f)):new Date(c,u,l,d,h,p,f)}return i},o=r.parse;r.parse=function(e){e.date=i.bind(this)(e),o.bind(this)(e)};var a=r.set,s=r.add,l=r.subtract,c=function(e,t,n,r){void 0===r&&(r=1);var i=Object.keys(t),o=this;return i.forEach((function(n){o=e.bind(o)(t[n]*r,n)})),o};r.set=function(e,t){return t=void 0===t?e:t,"Object"===e.constructor.name?c.bind(this)((function(e,t){return a.bind(this)(t,e)}),t,e):a.bind(this)(e,t)},r.add=function(e,t){return"Object"===e.constructor.name?c.bind(this)(s,e,t):s.bind(this)(e,t)},r.subtract=function(e,t){return"Object"===e.constructor.name?c.bind(this)(s,e,t,-1):l.bind(this)(e,t)}}}()},87134:function(e){e.exports=function(){"use strict";var e="month",t="quarter";return function(n,r){var i=r.prototype;i.quarter=function(e){return this.$utils().u(e)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(e-1))};var o=i.add;i.add=function(n,r){return n=Number(n),this.$utils().p(r)===t?this.add(3*n,e):o.bind(this)(n,r)};var a=i.startOf;i.startOf=function(n,r){var i=this.$utils(),o=!!i.u(r)||r;if(i.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,r)}}}()},72209:function(e){e.exports=function(){"use strict";return function(e,t,n){e=e||{};var r=t.prototype,i={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,i){return r.fromToBase(e,t,n,i)}n.en.relativeTime=i,r.fromToBase=function(t,r,o,a,s){for(var l,c,u,d=o.$locale().relativeTime||i,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"}],p=h.length,f=0;f<p;f+=1){var m=h[f];m.d&&(l=a?n(t).diff(o,m.d,!0):o.diff(t,m.d,!0));var g=(e.rounding||Math.round)(Math.abs(l));if(u=l>0,g<=m.r||!m.r){g<=1&&f>0&&(m=h[f-1]);var v=d[m.l];s&&(g=s(""+g)),c="string"==typeof v?v.replace("%d",g):v(g,r,m.l,u);break}}if(r)return c;var y=u?d.future:d.past;return"function"==typeof y?y(c):y.replace("%s",c)},r.to=function(e,t){return o(e,t,this,!0)},r.from=function(e,t){return o(e,t,this)};var a=function(e){return e.$u?n.utc():n()};r.toNow=function(e){return this.to(a(this),e)},r.fromNow=function(e){return this.from(a(this),e)}}}()},85226: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,r,i){var o,a=function(e,n,r){void 0===r&&(r={});var i=new Date(e),o=function(e,n){void 0===n&&(n={});var r=n.timeZoneName||"short",i=e+"|"+r,o=t[i];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:r}),t[i]=o),o}(n,r);return o.formatToParts(i)},s=function(t,n){for(var r=a(t,n),o=[],s=0;s<r.length;s+=1){var l=r[s],c=l.type,u=l.value,d=e[c];d>=0&&(o[d]=parseInt(u,10))}var h=o[3],p=24===h?0:h,f=o[0]+"-"+o[1]+"-"+o[2]+" "+p+":"+o[4]+":"+o[5]+":000",m=+t;return(i.utc(f).valueOf()-(m-=m%1e3))/6e4},l=r.prototype;l.tz=function(e,t){void 0===e&&(e=o);var n=this.utcOffset(),r=this.toDate(),a=r.toLocaleString("en-US",{timeZone:e}),s=Math.round((r-new Date(a))/1e3/60),l=i(a,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(15*-Math.round(r.getTimezoneOffset()/15)-s,!0);if(t){var c=l.utcOffset();l=l.add(n-c,"minute")}return l.$x.$timezone=e,l},l.offsetName=function(e){var t=this.$x.$timezone||i.tz.guess(),n=a(this.valueOf(),t,{timeZoneName:e}).find((function(e){return"timezonename"===e.type.toLowerCase()}));return n&&n.value};var c=l.startOf;l.startOf=function(e,t){if(!this.$x||!this.$x.$timezone)return c.call(this,e,t);var n=i(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return c.call(n,e,t).tz(this.$x.$timezone,!0)},i.tz=function(e,t,n){var r=n&&t,a=n||t||o,l=s(+i(),a);if("string"!=typeof e)return i(e).tz(a);var c=function(e,t,n){var r=e-60*t*1e3,i=s(r,n);if(t===i)return[r,t];var o=s(r-=60*(i-t)*1e3,n);return i===o?[r,i]:[e-60*Math.min(i,o)*1e3,Math.max(i,o)]}(i.utc(e,r).valueOf(),l,a),u=c[0],d=c[1],h=i(u).utcOffset(d);return h.$x.$timezone=a,h},i.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},i.tz.setDefault=function(e){o=e}}}()},1035:function(e){e.exports=function(){"use strict";return function(e,t,n){n.updateLocale=function(e,t){var r=n.Ls[e];if(r)return(t?Object.keys(t):[]).forEach((function(e){r[e]=t[e]})),r}}}()},54591:function(e){e.exports=function(){"use strict";var e="minute",t=/[+-]\d\d(?::?\d\d)?/g,n=/([+-]|\d\d)/g;return function(r,i,o){var a=i.prototype;o.utc=function(e){return new i({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 l=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 l.call(this)};var c=a.utcOffset;a.utcOffset=function(r,i){var o=this.$utils().u;if(o(r))return this.$u?0:o(this.$offset)?c.call(this):this.$offset;if("string"==typeof r&&(r=function(e){void 0===e&&(e="");var r=e.match(t);if(!r)return null;var i=(""+r[0]).match(n)||["-",0,0],o=i[0],a=60*+i[1]+ +i[2];return 0===a?0:"+"===o?a:-a}(r),null===r))return this;var a=Math.abs(r)<=16?60*r:r,s=this;if(i)return s.$offset=a,s.$u=0===r,s;if(0!==r){var l=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(s=this.local().add(a+l,e)).$offset=a,s.$x.$localOffset=l}else s=this.utc();return s};var u=a.format;a.format=function(e){var t=e||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return u.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 r=this.local(),i=o(e).local();return h.call(r,i,t,n)}}}()},8901:function(e){e.exports=function(){"use strict";var e="week",t="year";return function(n,r,i){var o=r.prototype;o.week=function(n){if(void 0===n&&(n=null),null!==n)return this.add(7*(n-this.week()),"day");var r=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var o=i(this).startOf(t).add(1,t).date(r),a=i(this).endOf(e);if(o.isBefore(a))return 1}var s=i(this).startOf(t).date(r).startOf(e).subtract(1,"millisecond"),l=this.diff(s,e,!0);return l<0?i(this).startOf("week").week():Math.ceil(l)},o.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}()},60305:(e,t,n)=>{var r=n(75812);e.exports=function(e,t,n){var i,o,a,s,l;function c(){var u=r()-s;u<t&&u>0?i=setTimeout(c,t-u):(i=null,n||(l=e.apply(a,o),i||(a=o=null)))}return null==t&&(t=100),function(){a=this,o=arguments,s=r();var u=n&&!i;return i||(i=setTimeout(c,t)),u&&(l=e.apply(a,o),a=o=null),l}}},10854:(e,t,n)=>{"use strict";var r=n(85122),i=n(47849),o=n(84968),a=n(81687);e.exports=function(e,t,n){if(!e||"object"!==typeof e&&"function"!==typeof e)throw new o("`obj` must be an object or a function`");if("string"!==typeof t&&"symbol"!==typeof t)throw new o("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!==typeof arguments[3]&&null!==arguments[3])throw new o("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!==typeof arguments[4]&&null!==arguments[4])throw new o("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!==typeof arguments[5]&&null!==arguments[5])throw new o("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!==typeof arguments[6])throw new o("`loose`, if provided, must be a boolean");var s=arguments.length>3?arguments[3]:null,l=arguments.length>4?arguments[4]:null,c=arguments.length>5?arguments[5]:null,u=arguments.length>6&&arguments[6],d=!!a&&a(e,t);if(r)r(e,t,{configurable:null===c&&d?d.configurable:!c,enumerable:null===s&&d?d.enumerable:!s,value:n,writable:null===l&&d?d.writable:!l});else{if(!u&&(s||l||c))throw new i("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[t]=n}}},85122:(e,t,n)=>{"use strict";var r=n(42780)("%Object.defineProperty%",!0)||!1;if(r)try{r({},"a",{value:1})}catch(i){r=!1}e.exports=r},16101:e=>{"use strict";e.exports=EvalError},41830:e=>{"use strict";e.exports=Error},69715:e=>{"use strict";e.exports=RangeError},64546:e=>{"use strict";e.exports=ReferenceError},47849:e=>{"use strict";e.exports=SyntaxError},84968:e=>{"use strict";e.exports=TypeError},68344:e=>{"use strict";e.exports=URIError},14702:(e,t,n)=>{var r,i=i||{version:"5.3.0"};if(t.fabric=i,"undefined"!==typeof document&&"undefined"!==typeof window)document instanceof("undefined"!==typeof HTMLDocument?HTMLDocument:Document)?i.document=document:i.document=document.implementation.createHTMLDocument(""),i.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;i.document=o.document,i.jsdomImplForWrapper=n(26759).implForWrapper,i.nodeCanvas=n(56272).Canvas,i.window=o,DOMParser=i.window.DOMParser}function a(e,t){var n=e.canvas,r=t.targetCanvas,i=r.getContext("2d");i.translate(0,r.height),i.scale(1,-1);var o=n.height-r.height;i.drawImage(n,0,o,r.width,r.height,0,0,r.width,r.height)}function s(e,t){var n=t.targetCanvas.getContext("2d"),r=t.destinationWidth,i=t.destinationHeight,o=r*i*4,a=new Uint8Array(this.imageBuffer,0,o),s=new Uint8ClampedArray(this.imageBuffer,0,o);e.readPixels(0,0,r,i,e.RGBA,e.UNSIGNED_BYTE,a);var l=new ImageData(s,r,i);n.putImageData(l,0,0)}i.isTouchSupported="ontouchstart"in i.window||"ontouchstart"in i.document||i.window&&i.window.navigator&&i.window.navigator.maxTouchPoints>0,i.isLikelyNode="undefined"!==typeof Buffer&&"undefined"===typeof window,i.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"],i.DPI=96,i.reNum="(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:[eE][-+]?\\d+)?)",i.commaWsp="(?:\\s+,?\\s*|,\\s*)",i.rePathCommand=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:[eE][-+]?\d+)?)/gi,i.reNonWord=/[ \n\.,;!\?\-]/,i.fontPaths={},i.iMatrix=[1,0,0,1,0,0],i.svgNS="http://www.w3.org/2000/svg",i.perfLimitSizeTotal=2097152,i.maxCacheSideLimit=4096,i.minCacheSideLimit=256,i.charWidthsCache={},i.textureSize=2048,i.disableStyleCopyPaste=!1,i.enableGLFiltering=!0,i.devicePixelRatio=i.window.devicePixelRatio||i.window.webkitDevicePixelRatio||i.window.mozDevicePixelRatio||1,i.browserShadowBlurConstant=1,i.arcToSegmentsCache={},i.boundsOfCurveCache={},i.cachesBoundsOfCurve=!0,i.forceGLPutImageData=!1,i.initFilterBackend=function(){return i.enableGLFiltering&&i.isWebglSupported&&i.isWebglSupported(i.textureSize)?(console.log("max texture size: "+i.maxTextureSize),new i.WebglFilterBackend({tileSize:i.textureSize})):i.Canvas2dFilterBackend?new i.Canvas2dFilterBackend:void 0},"undefined"!==typeof document&&"undefined"!==typeof window&&(window.fabric=i),function(){function e(e,t){if(this.__eventListeners[e]){var n=this.__eventListeners[e];t?n[n.indexOf(t)]=!1:i.util.array.fill(n,!1)}}function t(e,t){var n=function(){t.apply(this,arguments),this.off(e,n)}.bind(this);this.on(e,n)}i.Observable={fire:function(e,t){if(!this.__eventListeners)return this;var n=this.__eventListeners[e];if(!n)return this;for(var r=0,i=n.length;r<i;r++)n[r]&&n[r].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},once:function(e,n){if(1===arguments.length)for(var r in e)t.call(this,r,e[r]);else t.call(this,e,n);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 r in t)e.call(this,r,t[r]);else e.call(this,t,n);return this}}}(),i.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 r=this._objects;return n?r[t]=e:r.splice(t,0,e),this._onObjectAdded&&this._onObjectAdded(e),this.renderOnAddRemove&&this.requestRenderAll(),this},remove:function(){for(var e,t=this._objects,n=!1,r=0,i=arguments.length;r<i;r++)-1!==(e=t.indexOf(arguments[r]))&&(n=!0,t.splice(e,1),this._onObjectRemoved&&this._onObjectRemoved(arguments[r]));return this.renderOnAddRemove&&n&&this.requestRenderAll(),this},forEachObject:function(e,t){for(var n=this.getObjects(),r=0,i=n.length;r<i;r++)e.call(t,n[r],r,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,t){return this._objects.indexOf(e)>-1||!!t&&this._objects.some((function(t){return"function"===typeof t.contains&&t.contains(e,!0)}))},complexity:function(){return this._objects.reduce((function(e,t){return e+=t.complexity?t.complexity():0}),0)}},i.CommonMethods={_setOptions:function(e){for(var t in e)this.set(t,e[t])},_initGradient:function(e,t){!e||!e.colorStops||e instanceof i.Gradient||this.set(t,new i.Gradient(e))},_initPattern:function(e,t,n){!e||!e.source||e instanceof i.Pattern?n&&n():this.set(t,new i.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,r=Math.pow,o=Math.PI/180,a=Math.PI/2;i.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){var r=new i.Point(e.x-t.x,e.y-t.y),o=i.util.rotateVector(r,n);return new i.Point(o.x,o.y).addEquals(t)},rotateVector:function(e,t){var n=i.util.sin(t),r=i.util.cos(t);return{x:e.x*r-e.y*n,y:e.x*n+e.y*r}},createVector:function(e,t){return new i.Point(t.x-e.x,t.y-e.y)},calcAngleBetweenVectors:function(e,t){return Math.acos((e.x*t.x+e.y*t.y)/(Math.hypot(e.x,e.y)*Math.hypot(t.x,t.y)))},getHatVector:function(e){return new i.Point(e.x,e.y).multiply(1/Math.hypot(e.x,e.y))},getBisector:function(e,t,n){var r=i.util.createVector(e,t),o=i.util.createVector(e,n),a=i.util.calcAngleBetweenVectors(r,o),s=a*(0===i.util.calcAngleBetweenVectors(i.util.rotateVector(r,a),o)?1:-1)/2;return{vector:i.util.getHatVector(i.util.rotateVector(r,s)),angle:a}},projectStrokeOnPoints:function(e,t,n){var r=[],o=t.strokeWidth/2,a=t.strokeUniform?new i.Point(1/t.scaleX,1/t.scaleY):new i.Point(1,1),s=function(e){var t=o/Math.hypot(e.x,e.y);return new i.Point(e.x*t*a.x,e.y*t*a.y)};return e.length<=1||e.forEach((function(l,c){var u,d,h=new i.Point(l.x,l.y);0===c?(d=e[c+1],u=n?s(i.util.createVector(d,h)).addEquals(h):e[e.length-1]):c===e.length-1?(u=e[c-1],d=n?s(i.util.createVector(u,h)).addEquals(h):e[0]):(u=e[c-1],d=e[c+1]);var p,f,m=i.util.getBisector(h,u,d),g=m.vector,v=m.angle;if("miter"===t.strokeLineJoin&&(p=-o/Math.sin(v/2),f=new i.Point(g.x*p*a.x,g.y*p*a.y),Math.hypot(f.x,f.y)/o<=t.strokeMiterLimit))return r.push(h.add(f)),void r.push(h.subtract(f));p=-o*Math.SQRT2,f=new i.Point(g.x*p*a.x,g.y*p*a.y),r.push(h.add(f)),r.push(h.subtract(f))})),r},transformPoint:function(e,t,n){return n?new i.Point(t[0]*e.x+t[2]*e.y,t[1]*e.x+t[3]*e.y):new i.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]=i.util.transformPoint(e[n],t);var r=[e[0].x,e[1].x,e[2].x,e[3].x],o=i.util.array.min(r),a=i.util.array.max(r)-o,s=[e[0].y,e[1].y,e[2].y,e[3].y],l=i.util.array.min(s);return{left:o,top:l,width:a,height:i.util.array.max(s)-l}},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]],r=i.util.transformPoint({x:e[4],y:e[5]},n,!0);return n[4]=-r.x,n[5]=-r.y,n},toFixed:function(e,t){return parseFloat(Number(e).toFixed(t))},parseUnit:function(e,t){var n=/\D{0,2}$/.exec(e),r=parseFloat(e);switch(t||(t=i.Text.DEFAULT_SVG_FONT_SIZE),n[0]){case"mm":return r*i.DPI/25.4;case"cm":return r*i.DPI/2.54;case"in":return r*i.DPI;case"pt":return r*i.DPI/72;case"pc":return r*i.DPI/72*12;case"em":return r*t;default:return r}},falseFunction:function(){return!1},getKlass:function(e,t){return e=i.util.string.camelize(e.charAt(0).toUpperCase()+e.slice(1)),i.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 i;var n,r=t.split("."),o=r.length,a=e||i.window;for(n=0;n<o;++n)a=a[r[n]];return a},loadImage:function(e,t,n,r){if(e){var o=i.util.createImage(),a=function(){t&&t.call(n,o,!1),o=o.onload=o.onerror=null};o.onload=a,o.onerror=function(){i.log("Error loading "+o.src),t&&t.call(n,null,!0),o=o.onload=o.onerror=null},0!==e.indexOf("data")&&void 0!==r&&null!==r&&(o.crossOrigin=r),"data:image/svg"===e.substring(0,14)&&(o.onload=null,i.util.loadImageInDom(o,a)),o.src=e}else t&&t.call(n,e)},loadImageInDom:function(e,t){var n=i.document.createElement("div");n.style.width=n.style.height="1px",n.style.left=n.style.top="-100%",n.style.position="absolute",n.appendChild(e),i.document.querySelector("body").appendChild(n),e.onload=function(){t(),n.parentNode.removeChild(n),n=null}},enlivenObjects:function(e,t,n,r){var o=[],a=0,s=(e=e||[]).length;function l(){++a===s&&t&&t(o.filter((function(e){return e})))}s?e.forEach((function(e,t){e&&e.type?i.util.getKlass(e.type,n).fromObject(e,(function(n,i){i||(o[t]=n),r&&r(e,n,i),l()})):l()})):t&&t(o)},enlivenObjectEnlivables:function(e,t,n){var r=i.Object.ENLIVEN_PROPS.filter((function(t){return!!e[t]}));i.util.enlivenObjects(r.map((function(t){return e[t]})),(function(e){var i={};r.forEach((function(n,r){i[n]=e[r],t&&(t[n]=e[r])})),n&&n(i)}))},enlivenPatterns:function(e,t){function n(){++o===a&&t&&t(r)}var r=[],o=0,a=(e=e||[]).length;a?e.forEach((function(e,t){e&&e.source?new i.Pattern(e,(function(e){r[t]=e,n()})):(r[t]=e,n())})):t&&t(r)},groupSVGElements:function(e,t,n){var r;return e&&1===e.length?("undefined"!==typeof n&&(e[0].sourcePath=n),e[0]):(t&&(t.width&&t.height?t.centerPoint={x:t.width/2,y:t.height/2}:(delete t.width,delete t.height)),r=new i.Group(e,t),"undefined"!==typeof n&&(r.sourcePath=n),r)},populateWithProperties:function(e,t,n){if(n&&Array.isArray(n))for(var r=0,i=n.length;r<i;r++)n[r]in e&&(t[n[r]]=e[n[r]])},createCanvasElement:function(){return i.document.createElement("canvas")},copyCanvasElement:function(e){var t=i.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 i.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 i=n(e[1],e[0]),a=r(e[0],2)+r(e[1],2),s=t(a),l=(e[0]*e[3]-e[2]*e[1])/s,c=n(e[0]*e[2]+e[1]*e[3],a);return{angle:i/o,scaleX:s,scaleY:l,skewX:c/o,skewY:0,translateX:e[4],translateY:e[5]}},calcRotateMatrix:function(e){if(!e.angle)return i.iMatrix.concat();var t=i.util.degreesToRadians(e.angle),n=i.util.cos(t),r=i.util.sin(t);return[n,r,-r,n,0,0]},calcDimensionsMatrix:function(e){var t="undefined"===typeof e.scaleX?1:e.scaleX,n="undefined"===typeof e.scaleY?1:e.scaleY,r=[e.flipX?-t:t,0,0,e.flipY?-n:n,0,0],o=i.util.multiplyTransformMatrices,a=i.util.degreesToRadians;return e.skewX&&(r=o(r,[1,0,Math.tan(a(e.skewX)),1],!0)),e.skewY&&(r=o(r,[1,Math.tan(a(e.skewY)),0,1],!0)),r},composeMatrix:function(e){var t=[1,0,0,1,e.translateX||0,e.translateY||0],n=i.util.multiplyTransformMatrices;return e.angle&&(t=n(t,i.util.calcRotateMatrix(e))),(1!==e.scaleX||1!==e.scaleY||e.skewX||e.skewY||e.flipX||e.flipY)&&(t=n(t,i.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,r){r>0&&(t>r?t-=r:t=0,n>r?n-=r:n=0);var i,o=!0,a=e.getImageData(t,n,2*r||1,2*r||1),s=a.data.length;for(i=3;i<s&&!1!==(o=a.data[i]<=0);i+=4);return a=null,o},parsePreserveAspectRatioAttribute:function(e){var t,n="meet",r=e.split(" ");return r&&r.length&&("meet"!==(n=r.pop())&&"slice"!==n?(t=n,n="meet"):r.length&&(t=r.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())?i.charWidthsCache[e]&&delete i.charWidthsCache[e]:i.charWidthsCache={}},limitDimsByArea:function(e,t){var n=Math.sqrt(t*e),r=Math.floor(t/n);return{x:Math.floor(n),y:r}},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 i.util.toFixed(e,i.Object.NUM_FRACTION_DIGITS)})).join(" ")+")"},removeTransformFromObject:function(e,t){var n=i.util.invertTransform(t),r=i.util.multiplyTransformMatrices(n,e.calcOwnMatrix());i.util.applyTransformToObject(e,r)},addTransformToObject:function(e,t){i.util.applyTransformToObject(e,i.util.multiplyTransformMatrices(t,e.calcOwnMatrix()))},applyTransformToObject:function(e,t){var n=i.util.qrDecompose(t),r=new i.Point(n.translateX,n.translateY);e.flipX=!1,e.flipY=!1,e.set("scaleX",n.scaleX),e.set("scaleY",n.scaleY),e.skewX=n.skewX,e.skewY=n.skewY,e.angle=n.angle,e.setPositionByOrigin(r,"center","center")},sizeAfterTransform:function(e,t,n){var r=e/2,o=t/2,a=[{x:-r,y:-o},{x:r,y:-o},{x:-r,y:o},{x:r,y:o}],s=i.util.calcDimensionsMatrix(n),l=i.util.makeBoundingBoxFromPoints(a,s);return{x:l.width,y:l.height}},mergeClipPaths:function(e,t){var n=e,r=t;n.inverted&&!r.inverted&&(n=t,r=e),i.util.applyTransformToObject(r,i.util.multiplyTransformMatrices(i.util.invertTransform(n.calcTransformMatrix()),r.calcTransformMatrix()));var o=n.inverted&&r.inverted;return o&&(n.inverted=r.inverted=!1),new i.Group([n],{clipPath:r,inverted:o})},hasStyleChanged:function(e,t,n){return n=n||!1,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.textBackgroundColor!==t.textBackgroundColor||e.deltaY!==t.deltaY||n&&(e.overline!==t.overline||e.underline!==t.underline||e.linethrough!==t.linethrough)},stylesToArray:function(e,t){e=i.util.object.clone(e,!0);for(var n=t.split("\n"),r=-1,o={},a=[],s=0;s<n.length;s++)if(e[s])for(var l=0;l<n[s].length;l++){r++;var c=e[s][l];if(c&&Object.keys(c).length>0)i.util.hasStyleChanged(o,c,!0)?a.push({start:r,end:r+1,style:c}):a[a.length-1].end++;o=c||{}}else r+=n[s].length;return a},stylesFromArray:function(e,t){if(!Array.isArray(e))return e;for(var n=t.split("\n"),r=-1,i=0,o={},a=0;a<n.length;a++)for(var s=0;s<n[a].length;s++)r++,e[i]&&e[i].start<=r&&r<e[i].end&&(o[a]=o[a]||{},o[a][s]=Object.assign({},e[i].style),r===e[i].end-1&&i++);return o}}}(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 r(e,t,n,r,o,a,s,l,c,u,d){var h=i.util.cos(e),p=i.util.sin(e),f=i.util.cos(t),m=i.util.sin(t),g=n*o*f-r*a*m+s,v=r*o*f+n*a*m+l;return["C",u+c*(-n*o*p-r*a*h),d+c*(-r*o*p+n*a*h),g+c*(n*o*m+r*a*f),v+c*(r*o*m-n*a*f),g,v]}function o(e,t,n,r){var i=Math.atan2(t,e),o=Math.atan2(r,n);return o>=i?o-i:2*Math.PI-(i-o)}function a(e,t,n){for(var a=n[1],s=n[2],l=n[3],c=n[4],u=n[5],d=function(e,t,n,a,s,l,c){var u=Math.PI,d=c*u/180,h=i.util.sin(d),p=i.util.cos(d),f=0,m=0,g=-p*e*.5-h*t*.5,v=-p*t*.5+h*e*.5,y=(n=Math.abs(n))*n,b=(a=Math.abs(a))*a,x=v*v,w=g*g,S=y*b-y*x-b*w,_=0;if(S<0){var C=Math.sqrt(1-S/(y*b));n*=C,a*=C}else _=(s===l?-1:1)*Math.sqrt(S/(y*x+b*w));var E=_*n*v/a,T=-_*a*g/n,O=p*E-h*T+.5*e,N=h*E+p*T+.5*t,k=o(1,0,(g-E)/n,(v-T)/a),j=o((g-E)/n,(v-T)/a,(-g-E)/n,(-v-T)/a);0===l&&j>0?j-=2*u:1===l&&j<0&&(j+=2*u);for(var I=Math.ceil(Math.abs(j/u*2)),P=[],D=j/I,A=8/3*Math.sin(D/4)*Math.sin(D/4)/Math.sin(D/2),R=k+D,M=0;M<I;M++)P[M]=r(k,R,p,h,n,a,O,N,A,f,m),f=P[M][5],m=P[M][6],k=R,R+=D;return P}(n[6]-e,n[7]-t,a,s,c,u,l),h=0,p=d.length;h<p;h++)d[h][1]+=e,d[h][2]+=t,d[h][3]+=e,d[h][4]+=t,d[h][5]+=e,d[h][6]+=t;return d}function s(e,t,n,r){return Math.sqrt((n-e)*(n-e)+(r-t)*(r-t))}function l(e,t,n,r,i,o,a,s){return function(l){var c,u=(c=l)*c*c,d=function(e){return 3*e*e*(1-e)}(l),h=function(e){return 3*e*(1-e)*(1-e)}(l),p=function(e){return(1-e)*(1-e)*(1-e)}(l);return{x:a*u+i*d+n*h+e*p,y:s*u+o*d+r*h+t*p}}}function c(e,t,n,r,i,o,a,s){return function(l){var c=1-l,u=3*c*c*(n-e)+6*c*l*(i-n)+3*l*l*(a-i),d=3*c*c*(r-t)+6*c*l*(o-r)+3*l*l*(s-o);return Math.atan2(d,u)}}function u(e,t,n,r,i,o){return function(a){var s,l=(s=a)*s,c=function(e){return 2*e*(1-e)}(a),u=function(e){return(1-e)*(1-e)}(a);return{x:i*l+n*c+e*u,y:o*l+r*c+t*u}}}function d(e,t,n,r,i,o){return function(a){var s=1-a,l=2*s*(n-e)+2*a*(i-n),c=2*s*(r-t)+2*a*(o-r);return Math.atan2(c,l)}}function h(e,t,n){var r,i,o={x:t,y:n},a=0;for(i=1;i<=100;i+=1)r=e(i/100),a+=s(o.x,o.y,r.x,r.y),o=r;return a}function p(e,t){for(var n,r,i,o=0,a=0,l=e.iterator,c={x:e.x,y:e.y},u=.01,d=e.angleFinder;a<t&&u>1e-4;)n=l(o),i=o,(r=s(c.x,c.y,n.x,n.y))+a>t?(o-=u,u/=2):(c=n,o+=u,a+=r);return n.angle=d(i),n}function f(e){for(var t,n,r,i,o=0,a=e.length,p=0,f=0,m=0,g=0,v=[],y=0;y<a;y++){switch(r={x:p,y:f,command:(t=e[y])[0]},t[0]){case"M":r.length=0,m=p=t[1],g=f=t[2];break;case"L":r.length=s(p,f,t[1],t[2]),p=t[1],f=t[2];break;case"C":n=l(p,f,t[1],t[2],t[3],t[4],t[5],t[6]),i=c(p,f,t[1],t[2],t[3],t[4],t[5],t[6]),r.iterator=n,r.angleFinder=i,r.length=h(n,p,f),p=t[5],f=t[6];break;case"Q":n=u(p,f,t[1],t[2],t[3],t[4]),i=d(p,f,t[1],t[2],t[3],t[4]),r.iterator=n,r.angleFinder=i,r.length=h(n,p,f),p=t[3],f=t[4];break;case"Z":case"z":r.destX=m,r.destY=g,r.length=s(p,f,m,g),p=m,f=g}o+=r.length,v.push(r)}return v.push({length:o,x:p,y:f}),v}i.util.joinPath=function(e){return e.map((function(e){return e.join(" ")})).join(" ")},i.util.parsePath=function(e){var r,o,a,s,l,c=[],u=[],d=i.rePathCommand,h="[-+]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][-+]?\\d+)?\\s*",p="("+h+")"+i.commaWsp,f="([01])"+i.commaWsp+"?",m=new RegExp(p+"?"+p+"?"+p+f+f+p+"?("+h+")","g");if(!e||!e.match)return c;for(var g,v=0,y=(l=e.match(/[mzlhvcsqta][^mzlhvcsqta]*/gi)).length;v<y;v++){s=(r=l[v]).slice(1).trim(),u.length=0;var b=r.charAt(0);if(g=[b],"a"===b.toLowerCase())for(var x;x=m.exec(s);)for(var w=1;w<x.length;w++)u.push(x[w]);else for(;a=d.exec(s);)u.push(a[0]);w=0;for(var S=u.length;w<S;w++)o=parseFloat(u[w]),isNaN(o)||g.push(o);var _=t[b.toLowerCase()],C=n[b]||b;if(g.length-1>_)for(var E=1,T=g.length;E<T;E+=_)c.push([b].concat(g.slice(E,E+_))),b=C;else c.push(g)}return c},i.util.makePathSimpler=function(e){var t,n,r,i,o,s,l=0,c=0,u=e.length,d=0,h=0,p=[];for(n=0;n<u;++n){switch(r=!1,(t=e[n].slice(0))[0]){case"l":t[0]="L",t[1]+=l,t[2]+=c;case"L":l=t[1],c=t[2];break;case"h":t[1]+=l;case"H":t[0]="L",t[2]=c,l=t[1];break;case"v":t[1]+=c;case"V":t[0]="L",c=t[1],t[1]=l,t[2]=c;break;case"m":t[0]="M",t[1]+=l,t[2]+=c;case"M":l=t[1],c=t[2],d=t[1],h=t[2];break;case"c":t[0]="C",t[1]+=l,t[2]+=c,t[3]+=l,t[4]+=c,t[5]+=l,t[6]+=c;case"C":o=t[3],s=t[4],l=t[5],c=t[6];break;case"s":t[0]="S",t[1]+=l,t[2]+=c,t[3]+=l,t[4]+=c;case"S":"C"===i?(o=2*l-o,s=2*c-s):(o=l,s=c),l=t[3],c=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]=s,o=t[3],s=t[4];break;case"q":t[0]="Q",t[1]+=l,t[2]+=c,t[3]+=l,t[4]+=c;case"Q":o=t[1],s=t[2],l=t[3],c=t[4];break;case"t":t[0]="T",t[1]+=l,t[2]+=c;case"T":"Q"===i?(o=2*l-o,s=2*c-s):(o=l,s=c),t[0]="Q",l=t[1],c=t[2],t[1]=o,t[2]=s,t[3]=l,t[4]=c;break;case"a":t[0]="A",t[6]+=l,t[7]+=c;case"A":r=!0,p=p.concat(a(l,c,t)),l=t[6],c=t[7];break;case"z":case"Z":l=d,c=h}r||p.push(t),i=t[0]}return p},i.util.getSmoothPathFromPoints=function(e,t){var n,r=[],o=new i.Point(e[0].x,e[0].y),a=new i.Point(e[1].x,e[1].y),s=e.length,l=1,c=0,u=s>2;for(t=t||0,u&&(l=e[2].x<a.x?-1:e[2].x===a.x?0:1,c=e[2].y<a.y?-1:e[2].y===a.y?0:1),r.push(["M",o.x-l*t,o.y-c*t]),n=1;n<s;n++){if(!o.eq(a)){var d=o.midPointFrom(a);r.push(["Q",o.x,o.y,d.x,d.y])}o=e[n],n+1<e.length&&(a=e[n+1])}return u&&(l=o.x>e[n-2].x?1:o.x===e[n-2].x?0:-1,c=o.y>e[n-2].y?1:o.y===e[n-2].y?0:-1),r.push(["L",o.x+l*t,o.y+c*t]),r},i.util.getPathSegmentsInfo=f,i.util.getBoundsOfCurve=function(t,n,r,o,a,s,l,c){var u;if(i.cachesBoundsOfCurve&&(u=e.call(arguments),i.boundsOfCurveCache[u]))return i.boundsOfCurveCache[u];var d,h,p,f,m,g,v,y,b=Math.sqrt,x=Math.min,w=Math.max,S=Math.abs,_=[],C=[[],[]];h=6*t-12*r+6*a,d=-3*t+9*r-9*a+3*l,p=3*r-3*t;for(var E=0;E<2;++E)if(E>0&&(h=6*n-12*o+6*s,d=-3*n+9*o-9*s+3*c,p=3*o-3*n),S(d)<1e-12){if(S(h)<1e-12)continue;0<(f=-p/h)&&f<1&&_.push(f)}else(v=h*h-4*p*d)<0||(0<(m=(-h+(y=b(v)))/(2*d))&&m<1&&_.push(m),0<(g=(-h-y)/(2*d))&&g<1&&_.push(g));for(var T,O,N,k=_.length,j=k;k--;)T=(N=1-(f=_[k]))*N*N*t+3*N*N*f*r+3*N*f*f*a+f*f*f*l,C[0][k]=T,O=N*N*N*n+3*N*N*f*o+3*N*f*f*s+f*f*f*c,C[1][k]=O;C[0][j]=t,C[1][j]=n,C[0][j+1]=l,C[1][j+1]=c;var I=[{x:x.apply(null,C[0]),y:x.apply(null,C[1])},{x:w.apply(null,C[0]),y:w.apply(null,C[1])}];return i.cachesBoundsOfCurve&&(i.boundsOfCurveCache[u]=I),I},i.util.getPointOnPath=function(e,t,n){n||(n=f(e));for(var r=0;t-n[r].length>0&&r<n.length-2;)t-=n[r].length,r++;var o,a=n[r],s=t/a.length,l=a.command,c=e[r];switch(l){case"M":return{x:a.x,y:a.y,angle:0};case"Z":case"z":return(o=new i.Point(a.x,a.y).lerp(new i.Point(a.destX,a.destY),s)).angle=Math.atan2(a.destY-a.y,a.destX-a.x),o;case"L":return(o=new i.Point(a.x,a.y).lerp(new i.Point(c[1],c[2]),s)).angle=Math.atan2(c[2]-a.y,c[1]-a.x),o;case"C":case"Q":return p(a,t)}},i.util.transformPath=function(e,t,n){return n&&(t=i.util.multiplyTransformMatrices(t,[1,0,0,1,-n.x,-n.y])),e.map((function(e){for(var n=e.slice(0),r={},o=1;o<e.length-1;o+=2)r.x=e[o],r.y=e[o+1],r=i.util.transformPoint(r,t),n[o]=r.x,n[o+1]=r.y;return n}))}}(),function(){var e=Array.prototype.slice;function t(e,t,n){if(e&&0!==e.length){var r=e.length-1,i=t?e[r][t]:e[r];if(t)for(;r--;)n(e[r][t],i)&&(i=e[r][t]);else for(;r--;)n(e[r],i)&&(i=e[r]);return i}}i.util.array={fill:function(e,t){for(var n=e.length;n--;)e[n]=t;return e},invoke:function(t,n){for(var r=e.call(arguments,2),i=[],o=0,a=t.length;o<a;o++)i[o]=r.length?t[o][n].apply(t[o],r):t[o][n].call(t[o]);return i},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,r){if(r)if(!i.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],r)}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],r));else t=n;else for(var s in n)t[s]=n[s];return t}i.util.object={extend:e,clone:function(t,n){return e({},t,n)}},i.util.object.extend(i.util,i.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 r=e.charCodeAt(t+1);if(56320>r||r>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 i=e.charCodeAt(t-1);if(55296>i||i>56319)throw"Low surrogate without preceding high surrogate";return!1}i.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,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")},graphemeSplit:function(t){var n,r=0,i=[];for(r=0;r<t.length;r++)!1!==(n=e(t,r))&&i.push(n);return i}}}(),function(){var e=Array.prototype.slice,t=function(){},n=function(){for(var e in{toString:1})if("toString"===e)return!1;return!0}(),r=function(e,t,r){for(var i in t)i in e.prototype&&"function"===typeof e.prototype[i]&&(t[i]+"").indexOf("callSuper")>-1?e.prototype[i]=function(e){return function(){var n=this.constructor.superclass;this.constructor.superclass=r;var i=t[e].apply(this,arguments);if(this.constructor.superclass=n,"initialize"!==e)return i}}(i):e.prototype[i]=t[i],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,r=this;r.constructor.superclass;){var i=r.constructor.superclass.prototype[t];if(r[t]!==i){n=i;break}r=r.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)}i.util.createClass=function(){var n=null,i=e.call(arguments,0);function s(){this.initialize.apply(this,arguments)}"function"===typeof i[0]&&(n=i.shift()),s.superclass=n,s.subclasses=[],n&&(o.prototype=n.prototype,s.prototype=new o,n.subclasses.push(s));for(var l=0,c=i.length;l<c;l++)r(s,i[l],n);return s.prototype.initialize||(s.prototype.initialize=t),s.prototype.constructor=s,s.prototype.callSuper=a,s}}(),function(){var e=!!i.document.createElement("div").attachEvent,t=["touchstart","touchmove","touchend"];i.util.addListener=function(t,n,r,i){t&&t.addEventListener(n,r,!e&&i)},i.util.removeListener=function(t,n,r,i){t&&t.removeEventListener(n,r,!e&&i)},i.util.getPointer=function(e){var t=e.target,n=i.util.getScrollLeftTop(t),r=function(e){var t=e.changedTouches;return t&&t[0]?t[0]:e}(e);return{x:r.clientX+n.left,y:r.clientY+n.top}},i.util.isTouchEvent=function(e){return t.indexOf(e.type)>-1||"touch"===e.pointerType}}(),function(){var e=i.document.createElement("div"),t="string"===typeof e.style.opacity,n="string"===typeof e.style.filter,r=/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),r.test(n.filter)?(t=t>=.9999?"":"alpha(opacity="+100*t+")",n.filter=n.filter.replace(r,t)):n.filter+=" alpha(opacity="+100*t+")",e}),i.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 r in t)if("opacity"===r)o(e,t[r]);else{var i="float"===r||"cssFloat"===r?"undefined"===typeof n.styleFloat?"cssFloat":"styleFloat":r;n.setProperty(i,t[r])}return e}}(),function(){var e=Array.prototype.slice;var t,n,r=function(t){return e.call(t,0)};try{t=r(i.document.childNodes)instanceof Array}catch(s){}function o(e,t){var n=i.document.createElement(e);for(var r in t)"class"===r?n.className=t[r]:"for"===r?n.htmlFor=t[r]:n.setAttribute(r,t[r]);return n}function a(e){for(var t=0,n=0,r=i.document.documentElement,o=i.document.body||{scrollLeft:0,scrollTop:0};e&&(e.parentNode||e.host)&&((e=e.parentNode||e.host)===i.document?(t=o.scrollLeft||r.scrollLeft||0,n=o.scrollTop||r.scrollTop||0):(t+=e.scrollLeft||0,n+=e.scrollTop||0),1!==e.nodeType||"fixed"!==e.style.position););return{left:t,top:n}}t||(r=function(e){for(var t=new Array(e.length),n=e.length;n--;)t[n]=e[n];return t}),n=i.document.defaultView&&i.document.defaultView.getComputedStyle?function(e,t){var n=i.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=i.document.documentElement.style,t="userSelect"in e?"userSelect":"MozUserSelect"in e?"MozUserSelect":"WebkitUserSelect"in e?"WebkitUserSelect":"KhtmlUserSelect"in e?"KhtmlUserSelect":"";i.util.makeElementUnselectable=function(e){return"undefined"!==typeof e.onselectstart&&(e.onselectstart=i.util.falseFunction),t?e.style[t]="none":"string"===typeof e.unselectable&&(e.unselectable="on"),e},i.util.makeElementSelectable=function(e){return"undefined"!==typeof e.onselectstart&&(e.onselectstart=null),t?e.style[t]="":"string"===typeof e.unselectable&&(e.unselectable=""),e}}(),i.util.setImageSmoothing=function(e,t){e.imageSmoothingEnabled=e.imageSmoothingEnabled||e.webkitImageSmoothingEnabled||e.mozImageSmoothingEnabled||e.msImageSmoothingEnabled||e.oImageSmoothingEnabled,e.imageSmoothingEnabled=t},i.util.getById=function(e){return"string"===typeof e?i.document.getElementById(e):e},i.util.toArray=r,i.util.addClass=function(e,t){e&&-1===(" "+e.className+" ").indexOf(" "+t+" ")&&(e.className+=(e.className?" ":"")+t)},i.util.makeElement=o,i.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},i.util.getScrollLeftTop=a,i.util.getElementOffset=function(e){var t,r,i=e&&e.ownerDocument,o={left:0,top:0},s={left:0,top:0},l={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"};if(!i)return s;for(var c in l)s[l[c]]+=parseInt(n(e,c),10)||0;return t=i.documentElement,"undefined"!==typeof e.getBoundingClientRect&&(o=e.getBoundingClientRect()),r=a(e),{left:o.left+r.left-(t.clientLeft||0)+s.left,top:o.top+r.top-(t.clientTop||0)+s.top}},i.util.getNodeCanvas=function(e){var t=i.jsdomImplForWrapper(e);return t._canvas||t._image},i.util.cleanUpJsdomNode=function(e){if(i.isLikelyNode){var t=i.jsdomImplForWrapper(e);t&&(t._image=null,t._canvas=null,t._currentSrc=null,t._attributes=null,t._classList=null)}}}(),function(){function e(){}i.util.request=function(t,n){n||(n={});var r=n.method?n.method.toUpperCase():"GET",o=n.onComplete||function(){},a=new i.window.XMLHttpRequest,s=n.body||n.parameters;return a.onreadystatechange=function(){4===a.readyState&&(o(a),a.onreadystatechange=e)},"GET"===r&&(s=null,"string"===typeof n.parameters&&(t=function(e,t){return e+(/\?/.test(e)?"&":"?")+t}(t,n.parameters))),a.open(r,t,!0),"POST"!==r&&"PUT"!==r||a.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),a.send(s),a}}(),i.log=console.log,i.warn=console.warn,function(){var e=i.util.object.extend,t=i.util.object.clone,n=[];function r(){return!1}function o(e,t,n,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t}i.util.object.extend(n,{cancelAll:function(){var e=this.splice(0);return e.forEach((function(e){e.cancel()})),e},cancelByCanvas:function(e){if(!e)return[];var t=this.filter((function(t){return"object"===typeof t.target&&t.target.canvas===e}));return t.forEach((function(e){e.cancel()})),t},cancelByTarget:function(e){var t=this.findAnimationsByTarget(e);return t.forEach((function(e){e.cancel()})),t},findAnimationIndex:function(e){return this.indexOf(this.findAnimation(e))},findAnimation:function(e){return this.find((function(t){return t.cancel===e}))},findAnimationsByTarget:function(e){return e?this.filter((function(t){return t.target===e})):[]}});var a=i.window.requestAnimationFrame||i.window.webkitRequestAnimationFrame||i.window.mozRequestAnimationFrame||i.window.oRequestAnimationFrame||i.window.msRequestAnimationFrame||function(e){return i.window.setTimeout(e,1e3/60)},s=i.window.cancelAnimationFrame||i.window.clearTimeout;function l(){return a.apply(i.window,arguments)}i.util.animate=function(n){n||(n={});var a,s=!1,c=function(){var e=i.runningAnimations.indexOf(a);return e>-1&&i.runningAnimations.splice(e,1)[0]};return a=e(t(n),{cancel:function(){return s=!0,c()},currentValue:"startValue"in n?n.startValue:0,completionRate:0,durationRate:0}),i.runningAnimations.push(a),l((function(e){var t,i=e||+new Date,u=n.duration||500,d=i+u,h=n.onChange||r,p=n.abort||r,f=n.onComplete||r,m=n.easing||o,g="startValue"in n&&n.startValue.length>0,v="startValue"in n?n.startValue:0,y="endValue"in n?n.endValue:100,b=n.byValue||(g?v.map((function(e,t){return y[t]-v[t]})):y-v);n.onStart&&n.onStart(),function e(n){var r=(t=n||+new Date)>d?u:t-i,o=r/u,x=g?v.map((function(e,t){return m(r,v[t],b[t],u)})):m(r,v,b,u),w=g?Math.abs((x[0]-v[0])/b[0]):Math.abs((x-v)/b);if(a.currentValue=g?x.slice():x,a.completionRate=w,a.durationRate=o,!s){if(!p(x,w,o))return t>d?(a.currentValue=g?y.slice():y,a.completionRate=1,a.durationRate=1,h(g?y.slice():y,1,1),f(y,1,1),void c()):(h(x,w,o),void l(e));c()}}(i)})),a.cancel},i.util.requestAnimFrame=l,i.util.cancelAnimFrame=function(){return s.apply(i.window,arguments)},i.runningAnimations=n}(),function(){function e(e,t,n){var r="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 r+=","+(e&&t?parseFloat(e[3]+n*(t[3]-e[3])):1),r+=")"}i.util.animateColor=function(t,n,r,o){var a=new i.Color(t).getSource(),s=new i.Color(n).getSource(),l=o.onComplete,c=o.onChange;return o=o||{},i.util.animate(i.util.object.extend(o,{duration:r||500,startValue:a,endValue:s,byValue:s,easing:function(t,n,r,i){return e(n,r,o.colorEasing?o.colorEasing(t,i):1-Math.cos(t/i*(Math.PI/2)))},onComplete:function(t,n,r){if(l)return l(e(s,s,0),n,r)},onChange:function(t,n,r){if(c){if(Array.isArray(t))return c(e(t,t,0),n,r);c(t,n,r)}}}))}}(),function(){function e(e,t,n,r){return e<Math.abs(t)?(e=t,r=n/4):r=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:r}}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,i){return n-r(i-e,0,n,i)+t}function r(e,t,n,r){return(e/=r)<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}i.util.ease={easeInQuad:function(e,t,n,r){return n*(e/=r)*e+t},easeOutQuad:function(e,t,n,r){return-n*(e/=r)*(e-2)+t},easeInOutQuad:function(e,t,n,r){return(e/=r/2)<1?n/2*e*e+t:-n/2*(--e*(e-2)-1)+t},easeInCubic:function(e,t,n,r){return n*(e/=r)*e*e+t},easeOutCubic:function(e,t,n,r){return n*((e=e/r-1)*e*e+1)+t},easeInOutCubic:function(e,t,n,r){return(e/=r/2)<1?n/2*e*e*e+t:n/2*((e-=2)*e*e+2)+t},easeInQuart:function(e,t,n,r){return n*(e/=r)*e*e*e+t},easeOutQuart:function(e,t,n,r){return-n*((e=e/r-1)*e*e*e-1)+t},easeInOutQuart:function(e,t,n,r){return(e/=r/2)<1?n/2*e*e*e*e+t:-n/2*((e-=2)*e*e*e-2)+t},easeInQuint:function(e,t,n,r){return n*(e/=r)*e*e*e*e+t},easeOutQuint:function(e,t,n,r){return n*((e=e/r-1)*e*e*e*e+1)+t},easeInOutQuint:function(e,t,n,r){return(e/=r/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,r){return-n*Math.cos(e/r*(Math.PI/2))+n+t},easeOutSine:function(e,t,n,r){return n*Math.sin(e/r*(Math.PI/2))+t},easeInOutSine:function(e,t,n,r){return-n/2*(Math.cos(Math.PI*e/r)-1)+t},easeInExpo:function(e,t,n,r){return 0===e?t:n*Math.pow(2,10*(e/r-1))+t},easeOutExpo:function(e,t,n,r){return e===r?t+n:n*(1-Math.pow(2,-10*e/r))+t},easeInOutExpo:function(e,t,n,r){return 0===e?t:e===r?t+n:(e/=r/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,r){return-n*(Math.sqrt(1-(e/=r)*e)-1)+t},easeOutCirc:function(e,t,n,r){return n*Math.sqrt(1-(e=e/r-1)*e)+t},easeInOutCirc:function(e,t,n,r){return(e/=r/2)<1?-n/2*(Math.sqrt(1-e*e)-1)+t:n/2*(Math.sqrt(1-(e-=2)*e)+1)+t},easeInElastic:function(n,r,i,o){var a=0;return 0===n?r:1===(n/=o)?r+i:(a||(a=.3*o),-t(e(i,i,a,1.70158),n,o)+r)},easeOutElastic:function(t,n,r,i){var o=0;if(0===t)return n;if(1===(t/=i))return n+r;o||(o=.3*i);var a=e(r,r,o,1.70158);return a.a*Math.pow(2,-10*t)*Math.sin((t*i-a.s)*(2*Math.PI)/a.p)+a.c+n},easeInOutElastic:function(n,r,i,o){var a=0;if(0===n)return r;if(2===(n/=o/2))return r+i;a||(a=o*(.3*1.5));var s=e(i,i,a,1.70158);return n<1?-.5*t(s,n,o)+r:s.a*Math.pow(2,-10*(n-=1))*Math.sin((n*o-s.s)*(2*Math.PI)/s.p)*.5+s.c+r},easeInBack:function(e,t,n,r,i){return void 0===i&&(i=1.70158),n*(e/=r)*e*((i+1)*e-i)+t},easeOutBack:function(e,t,n,r,i){return void 0===i&&(i=1.70158),n*((e=e/r-1)*e*((i+1)*e+i)+1)+t},easeInOutBack:function(e,t,n,r,i){return void 0===i&&(i=1.70158),(e/=r/2)<1?n/2*(e*e*((1+(i*=1.525))*e-i))+t:n/2*((e-=2)*e*((1+(i*=1.525))*e+i)+2)+t},easeInBounce:n,easeOutBounce:r,easeInOutBounce:function(e,t,i,o){return e<o/2?.5*n(2*e,0,i,o)+t:.5*r(2*e-o,0,i,o)+.5*i+t}}}(),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.object.clone,i=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"},l={stroke:"strokeOpacity",fill:"fillOpacity"},c="font-size",u="clip-path";function d(e){return e in s?s[e]:e}function h(e,n,r,i){var s,l=Array.isArray(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=r&&r.transformMatrix?a(r.transformMatrix,t.parseTransformAttribute(n)):t.parseTransformAttribute(n);else if("visible"===e)n="none"!==n&&"hidden"!==n,r&&!1===r.visible&&(n=!1);else if("opacity"===e)n=parseFloat(n),r&&"undefined"!==typeof r.opacity&&(n*=r.opacity);else if("textAnchor"===e)n="start"===n?"left":"end"===n?"right":"center";else if("charSpacing"===e)s=o(n,i)/i*1e3;else if("paintFirst"===e){var c=n.indexOf("fill"),u=n.indexOf("stroke");n="fill";(c>-1&&u>-1&&u<c||-1===c&&u>-1)&&(n="stroke")}else{if("href"===e||"xlink:href"===e||"font"===e)return n;if("imageSmoothing"===e)return"optimizeQuality"===n;s=l?n.map(o):o(n,i)}}else n="";return!l&&isNaN(s)?n:s}function p(e){return new RegExp("^("+e.join("|")+")\\b","i")}function f(e,t){var n,r,i,o,a=[];for(i=0,o=t.length;i<o;i++)n=t[i],r=e.getElementsByTagName(n),a=a.concat(Array.prototype.slice.call(r));return a}function m(e,t){var n,r=!0;return(n=g(e,t.pop()))&&t.length&&(r=function(e,t){var n,r=!0;for(;e.parentNode&&1===e.parentNode.nodeType&&t.length;)r&&(n=t.pop()),r=g(e=e.parentNode,n);return 0===t.length}(e,t)),n&&r&&0===t.length}function g(e,t){var n,r,i=e.nodeName,o=e.getAttribute("class"),a=e.getAttribute("id");if(n=new RegExp("^"+i,"i"),t=t.replace(n,""),a&&t.length&&(n=new RegExp("#"+a+"(?![a-zA-Z\\-]+)","i"),t=t.replace(n,"")),o&&t.length)for(r=(o=o.split(" ")).length;r--;)n=new RegExp("\\."+o[r]+"(?![a-zA-Z\\-]+)","i"),t=t.replace(n,"");return 0===t.length}function v(e,t){var n;if(e.getElementById&&(n=e.getElementById(t)),n)return n;var r,i,o,a=e.getElementsByTagName("*");for(i=0,o=a.length;i<o;i++)if(t===(r=a[i]).getAttribute("id"))return r}t.svgValidTagNamesRegEx=p(["path","circle","polygon","polyline","ellipse","rect","line","image","text"]),t.svgViewBoxElementsRegEx=p(["symbol","image","marker","pattern","view","svg"]),t.svgInvalidAncestorsRegEx=p(["pattern","defs","symbol","metadata","clipPath","mask","desc"]),t.svgValidParentsRegEx=p(["symbol","g","a","svg","clipPath","defs"]),t.cssRules={},t.gradientDefs={},t.clipPaths={},t.parseTransformAttribute=function(){function e(e,n,r){e[r]=Math.tan(t.util.degreesToRadians(n[0]))}var n=t.iMatrix,r=t.reNum,i=t.commaWsp,o="(?:"+("(?:(matrix)\\s*\\(\\s*("+r+")"+i+"("+r+")"+i+"("+r+")"+i+"("+r+")"+i+"("+r+")"+i+"("+r+")\\s*\\))")+"|"+("(?:(translate)\\s*\\(\\s*("+r+")(?:"+i+"("+r+"))?\\s*\\))")+"|"+("(?:(scale)\\s*\\(\\s*("+r+")(?:"+i+"("+r+"))?\\s*\\))")+"|"+("(?:(rotate)\\s*\\(\\s*("+r+")(?:"+i+"("+r+")"+i+"("+r+"))?\\s*\\))")+"|"+("(?:(skewX)\\s*\\(\\s*("+r+")\\s*\\))")+"|"+("(?:(skewY)\\s*\\(\\s*("+r+")\\s*\\))")+")",a=new RegExp("^\\s*(?:"+("(?:"+o+"(?:"+i+"*"+o+")*)")+"?)\\s*$"),s=new RegExp(o,"g");return function(r){var i=n.concat(),l=[];if(!r||r&&!a.test(r))return i;r.replace(s,(function(r){var a=new RegExp(o).exec(r).filter((function(e){return!!e})),s=a[1],c=a.slice(2).map(parseFloat);switch(s){case"translate":!function(e,t){e[4]=t[0],2===t.length&&(e[5]=t[1])}(i,c);break;case"rotate":c[0]=t.util.degreesToRadians(c[0]),function(e,n){var r=t.util.cos(n[0]),i=t.util.sin(n[0]),o=0,a=0;3===n.length&&(o=n[1],a=n[2]),e[0]=r,e[1]=i,e[2]=-i,e[3]=r,e[4]=o-(r*o-i*a),e[5]=a-(i*o+r*a)}(i,c);break;case"scale":!function(e,t){var n=t[0],r=2===t.length?t[1]:t[0];e[0]=n,e[3]=r}(i,c);break;case"skewX":e(i,c,2);break;case"skewY":e(i,c,1);break;case"matrix":i=c}l.push(i.concat()),i=n.concat()}));for(var c=l[0];l.length>1;)l.shift(),c=t.util.multiplyTransformMatrices(c,l[0]);return c}}();var y=new RegExp("^\\s*("+t.reNum+"+)\\s*,?\\s*("+t.reNum+"+)\\s*,?\\s*("+t.reNum+"+)\\s*,?\\s*("+t.reNum+"+)\\s*$");function b(e){if(!t.svgViewBoxElementsRegEx.test(e.nodeName))return{};var n,r,i,a,s,l,c=e.getAttribute("viewBox"),u=1,d=1,h=e.getAttribute("width"),p=e.getAttribute("height"),f=e.getAttribute("x")||0,m=e.getAttribute("y")||0,g=e.getAttribute("preserveAspectRatio")||"",v=!c||!(c=c.match(y)),b=!h||!p||"100%"===h||"100%"===p,x=v&&b,w={},S="",_=0,C=0;if(w.width=0,w.height=0,w.toBeParsed=x,v&&(f||m)&&e.parentNode&&"#document"!==e.parentNode.nodeName&&(S=" translate("+o(f)+" "+o(m)+") ",s=(e.getAttribute("transform")||"")+S,e.setAttribute("transform",s),e.removeAttribute("x"),e.removeAttribute("y")),x)return w;if(v)return w.width=o(h),w.height=o(p),w;if(n=-parseFloat(c[1]),r=-parseFloat(c[2]),i=parseFloat(c[3]),a=parseFloat(c[4]),w.minX=n,w.minY=r,w.viewBoxWidth=i,w.viewBoxHeight=a,b?(w.width=i,w.height=a):(w.width=o(h),w.height=o(p),u=w.width/i,d=w.height/a),"none"!==(g=t.util.parsePreserveAspectRatioAttribute(g)).alignX&&("meet"===g.meetOrSlice&&(d=u=u>d?d:u),"slice"===g.meetOrSlice&&(d=u=u>d?u:d),_=w.width-i*u,C=w.height-a*u,"Mid"===g.alignX&&(_/=2),"Mid"===g.alignY&&(C/=2),"Min"===g.alignX&&(_=0),"Min"===g.alignY&&(C=0)),1===u&&1===d&&0===n&&0===r&&0===f&&0===m)return w;if((f||m)&&"#document"!==e.parentNode.nodeName&&(S=" translate("+o(f)+" "+o(m)+") "),s=S+" matrix("+u+" 0 0 "+d+" "+(n*u+_)+" "+(r*d+C)+") ","svg"===e.nodeName){for(l=e.ownerDocument.createElementNS(t.svgNS,"g");e.firstChild;)l.appendChild(e.firstChild);e.appendChild(l)}else(l=e).removeAttribute("x"),l.removeAttribute("y"),s=l.getAttribute("transform")+s;return l.setAttribute("transform",s),w}function x(e,t){var n="xlink:href",r=v(e,t.getAttribute(n).slice(1));if(r&&r.getAttribute(n)&&x(e,r),["gradientTransform","x1","x2","y1","y2","gradientUnits","cx","cy","r","fx","fy"].forEach((function(e){r&&!t.hasAttribute(e)&&r.hasAttribute(e)&&t.setAttribute(e,r.getAttribute(e))})),!t.children.length)for(var i=r.cloneNode(!0);i.firstChild;)t.appendChild(i.firstChild);t.removeAttribute(n)}t.parseSVGDocument=function(e,n,i,o){if(e){!function(e){for(var n=f(e,["use","svg:use"]),r=0;n.length&&r<n.length;){var i=n[r],o=i.getAttribute("xlink:href")||i.getAttribute("href");if(null===o)return;var a,s,l,c,u=o.slice(1),d=i.getAttribute("x")||0,h=i.getAttribute("y")||0,p=v(e,u).cloneNode(!0),m=(p.getAttribute("transform")||"")+" translate("+d+", "+h+")",g=n.length,y=t.svgNS;if(b(p),/^svg$/i.test(p.nodeName)){var x=p.ownerDocument.createElementNS(y,"g");for(s=0,c=(l=p.attributes).length;s<c;s++)a=l.item(s),x.setAttributeNS(y,a.nodeName,a.nodeValue);for(;p.firstChild;)x.appendChild(p.firstChild);p=x}for(s=0,c=(l=i.attributes).length;s<c;s++)"x"!==(a=l.item(s)).nodeName&&"y"!==a.nodeName&&"xlink:href"!==a.nodeName&&"href"!==a.nodeName&&("transform"===a.nodeName?m=a.nodeValue+" "+m:p.setAttribute(a.nodeName,a.nodeValue));p.setAttribute("transform",m),p.setAttribute("instantiated_by_use","1"),p.removeAttribute("id"),i.parentNode.replaceChild(p,i),n.length===g&&r++}}(e);var a,s,l=t.Object.__uid++,c=b(e),u=t.util.toArray(e.getElementsByTagName("*"));if(c.crossOrigin=o&&o.crossOrigin,c.svgUid=l,0===u.length&&t.isLikelyNode){var d=[];for(a=0,s=(u=e.selectNodes('//*[name(.)!="svg"]')).length;a<s;a++)d[a]=u[a];u=d}var h=u.filter((function(e){return b(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 p={};u.filter((function(e){return"clipPath"===e.nodeName.replace("svg:","")})).forEach((function(e){var n=e.getAttribute("id");p[n]=t.util.toArray(e.getElementsByTagName("*")).filter((function(e){return t.svgValidTagNamesRegEx.test(e.nodeName.replace("svg:",""))}))})),t.gradientDefs[l]=t.getGradientDefs(e),t.cssRules[l]=t.getCSSRules(e),t.clipPaths[l]=p,t.parseElements(h,(function(e,r){n&&(n(e,c,r,u),delete t.gradientDefs[l],delete t.cssRules[l],delete t.clipPaths[l])}),r(c),i,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 r=n[1],i=n[3],a=n[4],s=n[5],l=n[6];r&&(t.fontStyle=r),i&&(t.fontWeight=isNaN(parseFloat(i))?i:parseFloat(i)),a&&(t.fontSize=o(a)),l&&(t.fontFamily=l),s&&(t.lineHeight="normal"===s?1:s)}},getGradientDefs:function(e){var t,n=f(e,["linearGradient","radialGradient","svg:linearGradient","svg:radialGradient"]),r=0,i={};for(r=n.length;r--;)(t=n[r]).getAttribute("xlink:href")&&x(e,t),i[t.getAttribute("id")]=t;return i},parseAttributes:function(e,r,a){if(e){var s,p,f,g={};"undefined"===typeof a&&(a=e.getAttribute("svgUid")),e.parentNode&&t.svgValidParentsRegEx.test(e.parentNode.nodeName)&&(g=t.parseAttributes(e.parentNode,r,a));var v=r.reduce((function(t,n){return(s=e.getAttribute(n))&&(t[n]=s),t}),{}),y=n(function(e,n){var r={};for(var i in t.cssRules[n])if(m(e,i.split(" ")))for(var o in t.cssRules[n][i])r[o]=t.cssRules[n][i][o];return r}(e,a),t.parseStyleAttribute(e));v=n(v,y),y[u]&&e.setAttribute(u,y[u]),p=f=g.fontSize||t.Text.DEFAULT_SVG_FONT_SIZE,v[c]&&(v[c]=p=o(v[c],f));var b,x,w={};for(var S in v)x=h(b=d(S),v[S],g,p),w[b]=x;w&&w.font&&t.parseFontDeclaration(w.font,w);var _=n(g,w);return t.svgValidParentsRegEx.test(e.nodeName)?_:function(e){for(var n in l)if("undefined"!==typeof e[l[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 r=new t.Color(e[n]);e[n]=r.setAlpha(i(r.getAlpha()*e[l[n]],2)).toRgba()}}return e}(_)}},parseElements:function(e,n,r,i,o){new t.ElementsParser(e,n,r,i,o).parse()},parseStyleAttribute:function(e){var t={},n=e.getAttribute("style");return n?("string"===typeof n?function(e,t){var n,r;e.replace(/;\s*$/,"").split(";").forEach((function(e){var i=e.split(":");n=i[0].trim().toLowerCase(),r=i[1].trim(),t[n]=r}))}(n,t):function(e,t){var n,r;for(var i in e)"undefined"!==typeof e[i]&&(n=i.toLowerCase(),r=e[i],t[n]=r)}(n,t),t):t},parsePointsAttribute:function(e){if(!e)return null;var t,n,r=[];for(t=0,n=(e=(e=e.replace(/,/g," ").trim()).split(/\s+/)).length;t<n;t+=2)r.push({x:parseFloat(e[t]),y:parseFloat(e[t+1])});return r},getCSSRules:function(e){var n,r,i=e.getElementsByTagName("style"),o={};for(n=0,r=i.length;n<r;n++){var a=i[n].textContent;""!==(a=a.replace(/\/\*[\s\S]*?\*\//g,"")).trim()&&a.split("}").filter((function(e){return e.trim()})).forEach((function(e){var i=e.split("{"),a={},s=i[1].trim().split(";").filter((function(e){return e.trim()}));for(n=0,r=s.length;n<r;n++){var l=s[n].split(":"),c=l[0].trim(),u=l[1].trim();a[c]=u}(e=i[0].trim()).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,r,i){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,r,i){n&&n(e,t,r,i)}),r,i)}})},loadSVGFromString:function(e,n,r,i){var o=(new t.window.DOMParser).parseFromString(e.trim(),"text/xml");t.parseSVGDocument(o.documentElement,(function(e,t,r,i){n(e,t,r,i)}),r,i)}})}(t),i.ElementsParser=function(e,t,n,r,i,o){this.elements=e,this.callback=t,this.options=n,this.reviver=r,this.svgUid=n&&n.svgUid||0,this.parsingOptions=i,this.regexUrl=/^url\(['"]?#([^'"]+)['"]?\)/g,this.doc=o},(r=i.ElementsParser.prototype).parse=function(){this.instances=new Array(this.elements.length),this.numElements=this.elements.length,this.createObjects()},r.createObjects=function(){var e=this;this.elements.forEach((function(t,n){t.setAttribute("svgUid",e.svgUid),e.createObject(t,n)}))},r.findTag=function(e){return i[i.util.string.capitalize(e.tagName.replace("svg:",""))]},r.createObject=function(e,t){var n=this.findTag(e);if(n&&n.fromElement)try{n.fromElement(e,this.createCallback(t,e),this.options)}catch(r){i.log(r)}else this.checkIfDone()},r.createCallback=function(e,t){var n=this;return function(r){var o;n.resolveGradient(r,t,"fill"),n.resolveGradient(r,t,"stroke"),r instanceof i.Image&&r._originalElement&&(o=r.parsePreserveAspectRatioAttribute(t)),r._removeTransformMatrix(o),n.resolveClipPath(r,t),n.reviver&&n.reviver(t,r),n.instances[e]=r,n.checkIfDone()}},r.extractPropertyDefinition=function(e,t,n){var r=e[t],o=this.regexUrl;if(o.test(r)){o.lastIndex=0;var a=o.exec(r)[1];return o.lastIndex=0,i[n][this.svgUid][a]}},r.resolveGradient=function(e,t,n){var r=this.extractPropertyDefinition(e,n,"gradientDefs");if(r){var o=t.getAttribute(n+"-opacity"),a=i.Gradient.fromElement(r,e,o,this.options);e.set(n,a)}},r.createClipPathCallback=function(e,t){return function(e){e._removeTransformMatrix(),e.fillRule=e.clipRule,t.push(e)}},r.resolveClipPath=function(e,t){var n,r,o,a,s=this.extractPropertyDefinition(e,"clipPath","clipPaths");if(s){o=[],r=i.util.invertTransform(e.calcTransformMatrix());for(var l=s[0].parentNode,c=t;c.parentNode&&c.getAttribute("clip-path")!==e.clipPath;)c=c.parentNode;c.parentNode.appendChild(l);for(var u=0;u<s.length;u++)n=s[u],this.findTag(n).fromElement(n,this.createClipPathCallback(e,o),this.options);s=1===o.length?o[0]:new i.Group(o),a=i.util.multiplyTransformMatrices(r,s.calcTransformMatrix()),s.clipPath&&this.resolveClipPath(s,c);var d=i.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},r.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,r,i,o){var a,s=(o.x-i.x)*(e.y-i.y)-(o.y-i.y)*(e.x-i.x),l=(r.x-e.x)*(e.y-i.y)-(r.y-e.y)*(e.x-i.x),c=(o.y-i.y)*(r.x-e.x)-(o.x-i.x)*(r.y-e.y);if(0!==c){var u=s/c,d=l/c;0<=u&&u<=1&&0<=d&&d<=1?(a=new n("Intersection")).appendPoint(new t.Point(e.x+u*(r.x-e.x),e.y+u*(r.y-e.y))):a=new n}else a=new n(0===s||0===l?"Coincident":"Parallel");return a},t.Intersection.intersectLinePolygon=function(e,t,r){var i,o,a,s,l=new n,c=r.length;for(s=0;s<c;s++)i=r[s],o=r[(s+1)%c],a=n.intersectLineLine(e,t,i,o),l.appendPoints(a.points);return l.points.length>0&&(l.status="Intersection"),l},t.Intersection.intersectPolygonPolygon=function(e,t){var r,i=new n,o=e.length;for(r=0;r<o;r++){var a=e[r],s=e[(r+1)%o],l=n.intersectLinePolygon(a,s,t);i.appendPoints(l.points)}return i.points.length>0&&(i.status="Intersection"),i},t.Intersection.intersectPolygonRectangle=function(e,r,i){var o=r.min(i),a=r.max(i),s=new t.Point(a.x,o.y),l=new t.Point(o.x,a.y),c=n.intersectLinePolygon(o,s,e),u=n.intersectLinePolygon(s,a,e),d=n.intersectLinePolygon(a,l,e),h=n.intersectLinePolygon(l,o,e),p=new n;return p.appendPoints(c.points),p.appendPoints(u.points),p.appendPoints(d.points),p.appendPoints(h.points),p.points.length>0&&(p.status="Intersection"),p})}(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 r(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,r){e/=255,n/=255,r/=255;var i,o,a,s=t.util.array.max([e,n,r]),l=t.util.array.min([e,n,r]);if(a=(s+l)/2,s===l)i=o=0;else{var c=s-l;switch(o=a>.5?c/(2-s-l):c/(s+l),s){case e:i=(n-r)/c+(n<r?6:0);break;case n:i=(r-e)/c+2;break;case r:i=(e-n)/c+4}i/=6}return[Math.round(360*i),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,r=this.getSource();return e=1===(e=r[0].toString(16)).length?"0"+e:e,t=1===(t=r[1].toString(16)).length?"0"+t:t,n=1===(n=r[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),r=t[3];return e=e||127,n=Number(n)<Number(e)?0:255,this.setSource([n,n,n,r]),this},overlayWith:function(e){e instanceof n||(e=new n(e));var t,r=[],i=this.getAlpha(),o=this.getSource(),a=e.getSource();for(t=0;t<3;t++)r.push(Math.round(.5*o[t]+.5*a[t]));return r[3]=i,this.setSource(r),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 r=parseInt(t[1],10)/(/%$/.test(t[1])?100:1)*(/%$/.test(t[1])?255:1),i=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(r,10),parseInt(i,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 i,o,a,s=(parseFloat(t[1])%360+360)%360/360,l=parseFloat(t[2])/(/%$/.test(t[2])?100:1),c=parseFloat(t[3])/(/%$/.test(t[3])?100:1);if(0===l)i=o=a=c;else{var u=c<=.5?c*(l+1):c+l-c*l,d=2*c-u;i=r(d,u,s+1/3),o=r(d,u,s),a=r(d,u,s-1/3)}return[Math.round(255*i),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),r=3===t.length||4===t.length,i=8===t.length||4===t.length,o=r?t.charAt(0)+t.charAt(0):t.substring(0,2),a=r?t.charAt(1)+t.charAt(1):t.substring(2,4),s=r?t.charAt(2)+t.charAt(2):t.substring(4,6),l=i?r?t.charAt(3)+t.charAt(3):t.substring(6,8):"FF";return[parseInt(o,16),parseInt(a,16),parseInt(s,16),parseFloat((parseInt(l,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"],r=["ns","nesw","ew","nwse"],i={},o="left",a="top",s="right",l="bottom",c="center",u={top:l,bottom:a,left:s,right:o,center:c},d=t.util.radiansToDegrees,h=Math.sign||function(e){return(e>0)-(e<0)||+e};function p(e,t){var n=e.angle+d(Math.atan2(t.y,t.x))+360;return Math.round(n%360/45)}function f(e,n){var r=n.transform.target,i=r.canvas,o=t.util.object.clone(n);o.target=r,i&&i.fire("object:"+e,o),r.fire(e,n)}function m(e,t){var n=t.canvas,r=e[n.uniScaleKey];return n.uniformScaling&&!r||!n.uniformScaling&&r}function g(e){return e.originX===c&&e.originY===c}function v(e,t,n){var r=e.lockScalingX,i=e.lockScalingY;return!(!r||!i)||(!(t||!r&&!i||!n)||(!(!r||"x"!==t)||!(!i||"y"!==t)))}function y(e,t,n,r){return{e:e,transform:t,pointer:{x:n,y:r}}}function b(e){return function(t,n,r,i){var o=n.target,a=o.getCenterPoint(),s=o.translateToOriginPoint(a,n.originX,n.originY),l=e(t,n,r,i);return o.setPositionByOrigin(s,n.originX,n.originY),l}}function x(e,t){return function(n,r,i,o){var a=t(n,r,i,o);return a&&f(e,y(n,r,i,o)),a}}function w(e,n,r,i,o){var a=e.target,s=a.controls[e.corner],l=a.canvas.getZoom(),c=a.padding/l,u=a.toLocalPoint(new t.Point(i,o),n,r);return u.x>=c&&(u.x-=c),u.x<=-c&&(u.x+=c),u.y>=c&&(u.y-=c),u.y<=c&&(u.y+=c),u.x-=s.offsetX,u.y-=s.offsetY,u}function S(e){return e.flipX!==e.flipY}function _(e,t,n,r,i){if(0!==e[t]){var o=i/e._getTransformedDimensions()[r]*e[n];e.set(n,o)}}function C(e,t,n,r){var i,c=t.target,u=c._getTransformedDimensions(0,c.skewY),h=w(t,t.originX,t.originY,n,r),p=Math.abs(2*h.x)-u.x,f=c.skewX;p<2?i=0:(i=d(Math.atan2(p/c.scaleX,u.y/c.scaleY)),t.originX===o&&t.originY===l&&(i=-i),t.originX===s&&t.originY===a&&(i=-i),S(c)&&(i=-i));var m=f!==i;if(m){var g=c._getTransformedDimensions().y;c.set("skewX",i),_(c,"skewY","scaleY","y",g)}return m}function E(e,t,n,r){var i,c=t.target,u=c._getTransformedDimensions(c.skewX,0),h=w(t,t.originX,t.originY,n,r),p=Math.abs(2*h.y)-u.y,f=c.skewY;p<2?i=0:(i=d(Math.atan2(p/c.scaleY,u.x/c.scaleX)),t.originX===o&&t.originY===l&&(i=-i),t.originX===s&&t.originY===a&&(i=-i),S(c)&&(i=-i));var m=f!==i;if(m){var g=c._getTransformedDimensions().x;c.set("skewY",i),_(c,"skewX","scaleX","x",g)}return m}function T(e,t,n,r,i){i=i||{};var o,a,s,l,c,d,p=t.target,f=p.lockScalingX,y=p.lockScalingY,b=i.by,x=m(e,p),S=v(p,b,x),_=t.gestureScale;if(S)return!1;if(_)a=t.scaleX*_,s=t.scaleY*_;else{if(o=w(t,t.originX,t.originY,n,r),c="y"!==b?h(o.x):1,d="x"!==b?h(o.y):1,t.signX||(t.signX=c),t.signY||(t.signY=d),p.lockScalingFlip&&(t.signX!==c||t.signY!==d))return!1;if(l=p._getTransformedDimensions(),x&&!b){var C=Math.abs(o.x)+Math.abs(o.y),E=t.original,T=C/(Math.abs(l.x*E.scaleX/p.scaleX)+Math.abs(l.y*E.scaleY/p.scaleY));a=E.scaleX*T,s=E.scaleY*T}else a=Math.abs(o.x*p.scaleX/l.x),s=Math.abs(o.y*p.scaleY/l.y);g(t)&&(a*=2,s*=2),t.signX!==c&&"y"!==b&&(t.originX=u[t.originX],a*=-1,t.signX=c),t.signY!==d&&"x"!==b&&(t.originY=u[t.originY],s*=-1,t.signY=d)}var O=p.scaleX,N=p.scaleY;return b?("x"===b&&p.set("scaleX",a),"y"===b&&p.set("scaleY",s)):(!f&&p.set("scaleX",a),!y&&p.set("scaleY",s)),O!==p.scaleX||N!==p.scaleY}i.scaleCursorStyleHandler=function(e,t,r){var i=m(e,r),o="";if(0!==t.x&&0===t.y?o="x":0===t.x&&0!==t.y&&(o="y"),v(r,o,i))return"not-allowed";var a=p(r,t);return n[a]+"-resize"},i.skewCursorStyleHandler=function(e,t,n){var i="not-allowed";if(0!==t.x&&n.lockSkewingY)return i;if(0!==t.y&&n.lockSkewingX)return i;var o=p(n,t)%4;return r[o]+"-resize"},i.scaleSkewCursorStyleHandler=function(e,t,n){return e[n.canvas.altActionKey]?i.skewCursorStyleHandler(e,t,n):i.scaleCursorStyleHandler(e,t,n)},i.rotationWithSnapping=x("rotating",b((function(e,t,n,r){var i=t,o=i.target,a=o.translateToOriginPoint(o.getCenterPoint(),i.originX,i.originY);if(o.lockRotation)return!1;var s,l=Math.atan2(i.ey-a.y,i.ex-a.x),c=Math.atan2(r-a.y,n-a.x),u=d(c-l+i.theta);if(o.snapAngle>0){var h=o.snapAngle,p=o.snapThreshold||h,f=Math.ceil(u/h)*h,m=Math.floor(u/h)*h;Math.abs(u-m)<p?u=m:Math.abs(u-f)<p&&(u=f)}return u<0&&(u=360+u),u%=360,s=o.angle!==u,o.angle=u,s}))),i.scalingEqually=x("scaling",b((function(e,t,n,r){return T(e,t,n,r)}))),i.scalingX=x("scaling",b((function(e,t,n,r){return T(e,t,n,r,{by:"x"})}))),i.scalingY=x("scaling",b((function(e,t,n,r){return T(e,t,n,r,{by:"y"})}))),i.scalingYOrSkewingX=function(e,t,n,r){return e[t.target.canvas.altActionKey]?i.skewHandlerX(e,t,n,r):i.scalingY(e,t,n,r)},i.scalingXOrSkewingY=function(e,t,n,r){return e[t.target.canvas.altActionKey]?i.skewHandlerY(e,t,n,r):i.scalingX(e,t,n,r)},i.changeWidth=x("resizing",b((function(e,t,n,r){var i=t.target,o=w(t,t.originX,t.originY,n,r),a=i.strokeWidth/(i.strokeUniform?i.scaleX:1),s=g(t)?2:1,l=i.width,c=Math.abs(o.x*s/i.scaleX)-a;return i.set("width",Math.max(c,0)),l!==c}))),i.skewHandlerX=function(e,t,n,r){var i,l=t.target,u=l.skewX,d=t.originY;return!l.lockSkewingX&&(0===u?i=w(t,c,c,n,r).x>0?o:s:(u>0&&(i=d===a?o:s),u<0&&(i=d===a?s:o),S(l)&&(i=i===o?s:o)),t.originX=i,x("skewing",b(C))(e,t,n,r))},i.skewHandlerY=function(e,t,n,r){var i,s=t.target,u=s.skewY,d=t.originX;return!s.lockSkewingY&&(0===u?i=w(t,c,c,n,r).y>0?a:l:(u>0&&(i=d===o?a:l),u<0&&(i=d===o?l:a),S(s)&&(i=i===a?l:a)),t.originY=i,x("skewing",b(E))(e,t,n,r))},i.dragHandler=function(e,t,n,r){var i=t.target,o=n-t.offsetX,a=r-t.offsetY,s=!i.get("lockMovementX")&&i.left!==o,l=!i.get("lockMovementY")&&i.top!==a;return s&&i.set("left",o),l&&i.set("top",a),(s||l)&&f("moving",y(e,t,n,r)),s||l},i.scaleOrSkewActionName=function(e,t,n){var r=e[n.canvas.altActionKey];return 0===t.x?r?"skewX":"scaleY":0===t.y?r?"skewY":"scaleX":void 0},i.rotationStyleHandler=function(e,t,n){return n.lockRotation?"not-allowed":t.cursorStyle},i.fireEvent=f,i.wrapWithFixedAnchor=b,i.wrapWithFireEvent=x,i.getLocalPoint=w,t.controlsUtils=i}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.degreesToRadians,r=t.controlsUtils;r.renderCircleControl=function(e,t,n,r,i){r=r||{};var o,a=this.sizeX||r.cornerSize||i.cornerSize,s=this.sizeY||r.cornerSize||i.cornerSize,l="undefined"!==typeof r.transparentCorners?r.transparentCorners:i.transparentCorners,c=l?"stroke":"fill",u=!l&&(r.cornerStrokeColor||i.cornerStrokeColor),d=t,h=n;e.save(),e.fillStyle=r.cornerColor||i.cornerColor,e.strokeStyle=r.cornerStrokeColor||i.cornerStrokeColor,a>s?(o=a,e.scale(1,s/a),h=n*a/s):s>a?(o=s,e.scale(a/s,1),d=t*s/a):o=a,e.lineWidth=1,e.beginPath(),e.arc(d,h,o/2,0,2*Math.PI,!1),e[c](),u&&e.stroke(),e.restore()},r.renderSquareControl=function(e,t,r,i,o){i=i||{};var a=this.sizeX||i.cornerSize||o.cornerSize,s=this.sizeY||i.cornerSize||o.cornerSize,l="undefined"!==typeof i.transparentCorners?i.transparentCorners:o.transparentCorners,c=l?"stroke":"fill",u=!l&&(i.cornerStrokeColor||o.cornerStrokeColor),d=a/2,h=s/2;e.save(),e.fillStyle=i.cornerColor||o.cornerColor,e.strokeStyle=i.cornerStrokeColor||o.cornerStrokeColor,e.lineWidth=1,e.translate(t,r),e.rotate(n(o.angle)),e[c+"Rect"](-d,-h,a,s),u&&e.strokeRect(-d,-h,a,s),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,sizeX:null,sizeY:null,touchSizeX:null,touchSizeY:null,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)},calcCornerCoords:function(e,n,r,i,o){var a,s,l,c,u=o?this.touchSizeX:this.sizeX,d=o?this.touchSizeY:this.sizeY;if(u&&d&&u!==d){var h=Math.atan2(d,u),p=Math.sqrt(u*u+d*d)/2,f=h-t.util.degreesToRadians(e),m=Math.PI/2-h-t.util.degreesToRadians(e);a=p*t.util.cos(f),s=p*t.util.sin(f),l=p*t.util.cos(m),c=p*t.util.sin(m)}else{p=.7071067812*(u&&d?u:n);f=t.util.degreesToRadians(45-e);a=l=p*t.util.cos(f),s=c=p*t.util.sin(f)}return{tl:{x:r-c,y:i-l},tr:{x:r+a,y:i-s},bl:{x:r-a,y:i+s},br:{x:r+c,y:i+l}}},render:function(e,n,r,i,o){if("circle"===((i=i||{}).cornerStyle||o.cornerStyle))t.controlsUtils.renderCircleControl.call(this,e,n,r,i,o);else t.controlsUtils.renderSquareControl.call(this,e,n,r,i,o)}}}(t),function(){function e(e,t){var n,r,o,a,s=e.getAttribute("style"),l=e.getAttribute("offset")||0;if(l=(l=parseFloat(l)/(/%$/.test(l)?100:1))<0?0:l>1?1:l,s){var c=s.split(/\s*;\s*/);for(""===c[c.length-1]&&c.pop(),a=c.length;a--;){var u=c[a].split(/\s*:\s*/),d=u[0].trim(),h=u[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")),r=(n=new i.Color(n)).getAlpha(),o=isNaN(parseFloat(o))?1:parseFloat(o),o*=r*t,{offset:l,color:n.toRgb(),opacity:o}}var t=i.util.object.clone;i.Gradient=i.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+="_"+i.Object.__uid++:this.id=i.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 i.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 i.util.populateWithProperties(this,t,e),t},toSVG:function(e,n){var r,o,a,s,l=t(this.coords,!0),c=(n=n||{},t(this.colorStops,!0)),u=l.r1>l.r2,d=this.gradientTransform?this.gradientTransform.concat():i.iMatrix.concat(),h=-this.offsetX,p=-this.offsetY,f=!!n.additionalTransform,m="pixels"===this.gradientUnits?"userSpaceOnUse":"objectBoundingBox";if(c.sort((function(e,t){return e.offset-t.offset})),"objectBoundingBox"===m?(h/=e.width,p/=e.height):(h+=e.width/2,p+=e.height/2),"path"===e.type&&"percentage"!==this.gradientUnits&&(h-=e.pathOffset.x,p-=e.pathOffset.y),d[4]-=h,d[5]-=p,s='id="SVGID_'+this.id+'" gradientUnits="'+m+'"',s+=' gradientTransform="'+(f?n.additionalTransform+" ":"")+i.util.matrixToSVG(d)+'" ',"linear"===this.type?a=["<linearGradient ",s,' x1="',l.x1,'" y1="',l.y1,'" x2="',l.x2,'" y2="',l.y2,'">\n']:"radial"===this.type&&(a=["<radialGradient ",s,' cx="',u?l.x1:l.x2,'" cy="',u?l.y1:l.y2,'" r="',u?l.r1:l.r2,'" fx="',u?l.x2:l.x1,'" fy="',u?l.y2:l.y1,'">\n']),"radial"===this.type){if(u)for((c=c.concat()).reverse(),r=0,o=c.length;r<o;r++)c[r].offset=1-c[r].offset;var g=Math.min(l.r1,l.r2);if(g>0){var v=g/Math.max(l.r1,l.r2);for(r=0,o=c.length;r<o;r++)c[r].offset+=v*(1-c[r].offset)}}for(r=0,o=c.length;r<o;r++){var y=c[r];a.push("<stop ",'offset="',100*y.offset+"%",'" style="stop-color:',y.color,"undefined"!==typeof y.opacity?";stop-opacity: "+y.opacity:";",'"/>\n')}return a.push("linear"===this.type?"</linearGradient>\n":"</radialGradient>\n"),a.join("")},toLive:function(e){var t,n,r,o=i.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,r=this.colorStops.length;n<r;n++){var a=this.colorStops[n].color,s=this.colorStops[n].opacity,l=this.colorStops[n].offset;"undefined"!==typeof s&&(a=new i.Color(a).setAlpha(s).toRgba()),t.addColorStop(l,a)}return t}}}),i.util.object.extend(i.Gradient,{fromElement:function(t,n,r,o){var a=parseFloat(r)/(/%$/.test(r)?100:1);a=a<0?0:a>1?1:a,isNaN(a)&&(a=1);var s,l,c,u,d=t.getElementsByTagName("stop"),h="userSpaceOnUse"===t.getAttribute("gradientUnits")?"pixels":"percentage",p=t.getAttribute("gradientTransform")||"",f=[],m=0,g=0;for("linearGradient"===t.nodeName||"LINEARGRADIENT"===t.nodeName?(s="linear",l=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",l=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)),c=d.length;c--;)f.push(e(d[c],a));return u=i.parseTransformAttribute(p),function(e,t,n,r){var i,o;Object.keys(t).forEach((function(e){"Infinity"===(i=t[e])?o=1:"-Infinity"===i?o=0:(o=parseFloat(t[e],10),"string"===typeof i&&/^(\d+\.\d+)%|(\d+)%$/.test(i)&&(o*=.01,"pixels"===r&&("x1"!==e&&"x2"!==e&&"r2"!==e||(o*=n.viewBoxWidth||n.width),"y1"!==e&&"y2"!==e||(o*=n.viewBoxHeight||n.height)))),t[e]=o}))}(0,l,o,h),"pixels"===h&&(m=-n.left,g=-n.top),new i.Gradient({id:t.getAttribute("id"),type:s,coords:l,colorStops:f,gradientUnits:h,gradientTransform:u,offsetX:m,offsetY:g})}})}(),function(){"use strict";var e=i.util.toFixed;i.Pattern=i.util.createClass({repeat:"repeat",offsetX:0,offsetY:0,crossOrigin:"",patternTransform:null,initialize:function(e,t){if(e||(e={}),this.id=i.Object.__uid++,this.setOptions(e),!e.source||e.source&&"string"!==typeof e.source)t&&t(this);else{var n=this;this.source=i.util.createImage(),i.util.loadImage(e.source,(function(e,r){n.source=e,t&&t(n,r)}),null,this.crossOrigin)}},toObject:function(t){var n,r,o=i.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()),r={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},i.util.populateWithProperties(this,r,t),r},toSVG:function(e){var t="function"===typeof this.source?this.source():this.source,n=t.width/e.width,r=t.height/e.height,i=this.offsetX/e.width,o=this.offsetY/e.height,a="";return"repeat-x"!==this.repeat&&"no-repeat"!==this.repeat||(r=1,o&&(r+=Math.abs(o))),"repeat-y"!==this.repeat&&"no-repeat"!==this.repeat||(n=1,i&&(n+=Math.abs(i))),t.src?a=t.src:t.toDataURL&&(a=t.toDataURL()),'<pattern id="SVGID_'+this.id+'" x="'+i+'" y="'+o+'" width="'+n+'" height="'+r+'">\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(),r=t.Shadow.reOffsetsAndBlur.exec(n)||[];return{color:(n.replace(t.Shadow.reOffsetsAndBlur,"")||"rgb(0,0,0)").trim(),offsetX:parseFloat(r[1],10)||0,offsetY:parseFloat(r[2],10)||0,blur:parseFloat(r[3],10)||0}},toString:function(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")},toSVG:function(e){var r=40,i=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&&(r=100*n((Math.abs(a.x)+this.blur)/e.width,o)+20,i=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="-'+i+'%" height="'+(100+2*i)+'%" x="-'+r+'%" width="'+(100+2*r)+'%" >\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+(?:\.\d*)?(?:px)?(?:\s?|$))?(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(\d+(?:\.\d*)?(?:px)?)?(?:\s?|$)(?:$|\s)/)}(t),function(){"use strict";if(i.StaticCanvas)i.warn("fabric.StaticCanvas is already defined.");else{var e=i.util.object.extend,t=i.util.getElementOffset,n=i.util.removeFromArray,r=i.util.toFixed,o=i.util.transformPoint,a=i.util.invertTransform,s=i.util.getNodeCanvas,l=i.util.createCanvasElement,c=new Error("Could not initialize `canvas` element");i.StaticCanvas=i.util.createClass(i.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:i.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 i.devicePixelRatio>1&&this.enableRetinaScaling},getRetinaScaling:function(){return this._isRetinaScaling()?Math.max(1,i.devicePixelRatio):1},_initRetinaScaling:function(){if(this._isRetinaScaling()){var e=i.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,r){return"string"===typeof t?i.util.loadImage(t,(function(t,o){if(t){var a=new i.Image(t,r);this[e]=a,a.canvas=this}n&&n(t,o)}),this,r&&r.crossOrigin):(r&&t.setOptions(r),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=l();if(!e)throw c;if(e.style||(e.style={}),"undefined"===typeof e.getContext)throw c;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=i.util.getById(e)||this._createCanvasElement(),i.util.addClass(this.lowerCanvasEl,"lower-canvas"),this._originalCanvasStyle=this.lowerCanvasEl.style,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 r in t=t||{},e)n=e[r],t.cssOnly||(this._setBackstoreDimension(r,e[r]),n+="px",this.hasLostContext=!0),t.backstoreOnly||this._setCssDimension(r,n);return this._isCurrentlyDrawing&&this.freeDrawingBrush&&this.freeDrawingBrush._setBrushStyles(this.contextTop),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,r,i=this._activeObject,o=this.backgroundImage,a=this.overlayImage;for(this.viewportTransform=e,n=0,r=this._objects.length;n<r;n++)(t=this._objects[n]).group||t.setCoords(!0);return i&&i.setCoords(),o&&o.setCoords(!0),a&&a.setCoords(!0),this.calcViewportBoundaries(),this.renderOnAddRemove&&this.requestRenderAll(),this},zoomToPoint:function(e,t){var n=e,r=this.viewportTransform.slice(0);e=o(e,a(this.viewportTransform)),r[0]=t,r[3]=t;var i=o(e,r);return r[4]+=n.x-i.x,r[5]+=n.y-i.y,this.setViewportTransform(r)},setZoom:function(e){return this.zoomToPoint(new i.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 i.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.remove.apply(this,this.getObjects()),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=i.util.requestAnimFrame(this.renderAndResetBound)),this},calcViewportBoundaries:function(){var e={},t=this.width,n=this.height,r=a(this.viewportTransform);return e.tl=o({x:0,y:0},r),e.br=o({x:t,y:n},r),e.tr=new i.Point(e.br.x,e.tl.y),e.bl=new i.Point(e.tl.x,e.br.y),this.vptCoords=e,e},cancelRequestedRender:function(){this.isRendering&&(i.util.cancelAnimFrame(this.isRendering),this.isRendering=0)},renderCanvas:function(e,t){var n=this.viewportTransform,r=this.clipPath;this.cancelRequestedRender(),this.calcViewportBoundaries(),this.clearContext(e),i.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),r&&(r.canvas=this,r.shouldCache(),r._transformDone=!0,r.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,r;for(n=0,r=t.length;n<r;++n)t[n]&&t[n].render(e)},_renderBackgroundOrOverlay:function(e,t){var n=this[t+"Color"],r=this[t+"Image"],i=this.viewportTransform,o=this[t+"Vpt"];if(n||r){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(i[0],i[1],i[2],i[3],i[4],i[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()}r&&(e.save(),o&&e.transform(i[0],i[1],i[2],i[3],i[4],i[5]),r.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}},getCenterPoint:function(){return new i.Point(this.width/2,this.height/2)},centerObjectH:function(e){return this._centerObject(e,new i.Point(this.getCenterPoint().x,e.getCenterPoint().y))},centerObjectV:function(e){return this._centerObject(e,new i.Point(e.getCenterPoint().x,this.getCenterPoint().y))},centerObject:function(e){var t=this.getCenterPoint();return this._centerObject(e,t)},viewportCenterObject:function(e){var t=this.getVpCenter();return this._centerObject(e,t)},viewportCenterObjectH:function(e){var t=this.getVpCenter();return this._centerObject(e,new i.Point(t.x,e.getCenterPoint().y)),this},viewportCenterObjectV:function(e){var t=this.getVpCenter();return this._centerObject(e,new i.Point(e.getCenterPoint().x,t.y))},getVpCenter:function(){var e=this.getCenterPoint(),t=a(this.viewportTransform);return o(e,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 r=this.clipPath,o={version:i.version,objects:this._toObjects(t,n)};return r&&!r.excludeFromExport&&(o.clipPath=this._toObject(this.clipPath,t,n)),e(o,this.__serializeBgOverlay(t,n)),i.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 r;this.includeDefaultValues||(r=e.includeDefaultValues,e.includeDefaultValues=!1);var i=e[t](n);return this.includeDefaultValues||(e.includeDefaultValues=r),i},__serializeBgOverlay:function(e,t){var n={},r=this.backgroundImage,i=this.overlayImage,o=this.backgroundColor,a=this.overlayColor;return o&&o.toObject?o.excludeFromExport||(n.background=o.toObject(t)):o&&(n.background=o),a&&a.toObject?a.excludeFromExport||(n.overlay=a.toObject(t)):a&&(n.overlay=a),r&&!r.excludeFromExport&&(n.backgroundImage=this._toObject(r,e,t)),i&&!i.excludeFromExport&&(n.overlayImage=this._toObject(i,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+'" ',l=i.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="'+r(-n[4]/n[0],l)+" "+r(-n[5]/n[3],l)+" "+r(this.width/n[0],l)+" "+r(this.height/n[3],l)+'" '),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 ",i.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_"+i.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 r=e[t+"Vpt"],o=e.viewportTransform,a={width:e.width/(r?o[0]:1),height:e.height/(r?o[3]:1)};return n.toSVG(a,{additionalTransform:r?i.util.matrixToSVG(o):""})}})).join("")},createSVGFontFacesMarkup:function(){var e,t,n,r,o,a,s,l,c="",u={},d=i.fontPaths,h=[];for(this._objects.forEach((function e(t){h.push(t),t._objects&&t._objects.forEach(e)})),s=0,l=h.length;s<l;s++)if(t=(e=h[s]).fontFamily,-1!==e.type.indexOf("text")&&!u[t]&&d[t]&&(u[t]=!0,e.styles))for(o in n=e.styles)for(a in r=n[o])!u[t=r[a].fontFamily]&&d[t]&&(u[t]=!0);for(var p in u)c+=["\t\t@font-face {\n","\t\t\tfont-family: '",p,"';\n","\t\t\tsrc: url('",d[p],"');\n","\t\t}\n"].join("");return c&&(c=['\t<style type="text/css">',"<![CDATA[\n",c,"]]>","</style>\n"].join("")),c},_setSVGObjects:function(e,t){var n,r,i,o=this._objects;for(r=0,i=o.length;r<i;r++)(n=o[r]).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"],r=this.viewportTransform,o=this.width,a=this.height;if(n)if(n.toLive){var s=n.repeat,l=i.util.invertTransform(r),c=this[t+"Vpt"]?i.util.matrixToSVG(l):"";e.push('<rect transform="'+c+" 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,r,i,o=this._activeObject;if(e===o&&"activeSelection"===e.type)for(t=(i=o._objects).length;t--;)r=i[t],n(this._objects,r),this._objects.unshift(r);else n(this._objects,e),this._objects.unshift(e);return this.renderOnAddRemove&&this.requestRenderAll(),this},bringToFront:function(e){if(!e)return this;var t,r,i,o=this._activeObject;if(e===o&&"activeSelection"===e.type)for(i=o._objects,t=0;t<i.length;t++)r=i[t],n(this._objects,r),this._objects.push(r);else n(this._objects,e),this._objects.push(e);return this.renderOnAddRemove&&this.requestRenderAll(),this},sendBackwards:function(e,t){if(!e)return this;var r,i,o,a,s,l=this._activeObject,c=0;if(e===l&&"activeSelection"===e.type)for(s=l._objects,r=0;r<s.length;r++)i=s[r],(o=this._objects.indexOf(i))>0+c&&(a=o-1,n(this._objects,i),this._objects.splice(a,0,i)),c++;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 r,i;if(n)for(r=t,i=t-1;i>=0;--i){if(e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e)){r=i;break}}else r=t-1;return r},bringForward:function(e,t){if(!e)return this;var r,i,o,a,s,l=this._activeObject,c=0;if(e===l&&"activeSelection"===e.type)for(r=(s=l._objects).length;r--;)i=s[r],(o=this._objects.indexOf(i))<this._objects.length-1-c&&(a=o+1,n(this._objects,i),this._objects.splice(a,0,i)),c++;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 r,i,o;if(n)for(r=t,i=t+1,o=this._objects.length;i<o;++i){if(e.intersectsWithObject(this._objects[i])||e.isContainedWithinObject(this._objects[i])||this._objects[i].isContainedWithinObject(e)){r=i;break}}else r=t+1;return r},moveTo:function(e,t){return n(this._objects,e),this._objects.splice(t,0,e),this.renderOnAddRemove&&this.requestRenderAll()},dispose:function(){return this.isRendering&&(i.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,this.lowerCanvasEl.classList.remove("lower-canvas"),i.util.setStyle(this.lowerCanvasEl,this._originalCanvasStyle),delete this._originalCanvasStyle,this.lowerCanvasEl.setAttribute("width",this.width),this.lowerCanvasEl.setAttribute("height",this.height),i.util.cleanUpJsdomNode(this.lowerCanvasEl),this.lowerCanvasEl=void 0,this},toString:function(){return"#<fabric.Canvas ("+this.complexity()+"): { objects: "+this._objects.length+" }>"}}),e(i.StaticCanvas.prototype,i.Observable),e(i.StaticCanvas.prototype,i.Collection),e(i.StaticCanvas.prototype,i.DataURLExporter),e(i.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',supports:function(e){var t=l();if(!t||!t.getContext)return null;var n=t.getContext("2d");return n&&"setLineDash"===e?"undefined"!==typeof n.setLineDash:null}}),i.StaticCanvas.prototype.toJSON=i.StaticCanvas.prototype.toObject,i.isLikelyNode&&(i.StaticCanvas.prototype.createPNGStream=function(){var e=s(this.lowerCanvasEl);return e&&e.createPNGStream()},i.StaticCanvas.prototype.createJPEGStream=function(e){var t=s(this.lowerCanvasEl);return t&&t.createJPEGStream(e)})}}(),i.BaseBrush=i.util.createClass({color:"rgb(0, 0, 0)",width:1,shadow:null,strokeLineCap:"round",strokeLineJoin:"round",strokeMiterLimit:10,strokeDashArray:null,limitedToCanvasSize:!1,_setBrushStyles:function(e){e.strokeStyle=this.color,e.lineWidth=this.width,e.lineCap=this.strokeLineCap,e.miterLimit=this.strokeMiterLimit,e.lineJoin=this.strokeLineJoin,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,r=e.getZoom();e&&e._isRetinaScaling()&&(r*=i.devicePixelRatio),n.shadowColor=t.color,n.shadowBlur=t.blur*r,n.shadowOffsetX=t.offsetX*r,n.shadowOffsetY=t.offsetY*r}},needsFullRender:function(){return new i.Color(this.color).getAlpha()<1||!!this.shadow},_resetShadow:function(){var e=this.canvas.contextTop;e.shadowColor="",e.shadowBlur=e.shadowOffsetX=e.shadowOffsetY=0},_isOutSideCanvas:function(e){return e.x<0||e.x>this.canvas.getWidth()||e.y<0||e.y>this.canvas.getHeight()}}),i.PencilBrush=i.util.createClass(i.BaseBrush,{decimate:.4,drawStraightLine:!1,straightLineKey:"shiftKey",initialize:function(e){this.canvas=e,this._points=[]},needsFullRender:function(){return this.callSuper("needsFullRender")||this._hasStraightLine},_drawSegment:function(e,t,n){var r=t.midPointFrom(n);return e.quadraticCurveTo(t.x,t.y,r.x,r.y),r},onMouseDown:function(e,t){this.canvas._isMainEvent(t.e)&&(this.drawStraightLine=t.e[this.straightLineKey],this._prepareForDrawing(e),this._captureDrawingPath(e),this._render())},onMouseMove:function(e,t){if(this.canvas._isMainEvent(t.e)&&(this.drawStraightLine=t.e[this.straightLineKey],(!0!==this.limitedToCanvasSize||!this._isOutSideCanvas(e))&&this._captureDrawingPath(e)&&this._points.length>1))if(this.needsFullRender())this.canvas.clearContext(this.canvas.contextTop),this._render();else{var n=this._points,r=n.length,i=this.canvas.contextTop;this._saveAndTransform(i),this.oldEnd&&(i.beginPath(),i.moveTo(this.oldEnd.x,this.oldEnd.y)),this.oldEnd=this._drawSegment(i,n[r-2],n[r-1],!0),i.stroke(),i.restore()}},onMouseUp:function(e){return!this.canvas._isMainEvent(e.e)||(this.drawStraightLine=!1,this.oldEnd=void 0,this._finalizeAndAddPath(),!1)},_prepareForDrawing:function(e){var t=new i.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.drawStraightLine&&this._points.length>1&&(this._hasStraightLine=!0,this._points.pop()),this._points.push(e),!0)},_reset:function(){this._points=[],this._setBrushStyles(this.canvas.contextTop),this._setShadow(),this._hasStraightLine=!1},_captureDrawingPath:function(e){var t=new i.Point(e.x,e.y);return this._addPoint(t)},_render:function(e){var t,n,r=this._points[0],o=this._points[1];if(e=e||this.canvas.contextTop,this._saveAndTransform(e),e.beginPath(),2===this._points.length&&r.x===o.x&&r.y===o.y){var a=this.width/1e3;r=new i.Point(r.x,r.y),o=new i.Point(o.x,o.y),r.x-=a,o.x+=a}for(e.moveTo(r.x,r.y),t=1,n=this._points.length;t<n;t++)this._drawSegment(e,r,o),r=this._points[t],o=this._points[t+1];e.lineTo(r.x,r.y),e.stroke(),e.restore()},convertPointsToSVGPath:function(e){var t=this.width/1e3;return i.util.getSmoothPathFromPoints(e,t)},_isEmptySVGPath:function(e){return"M 0 0 Q 0 0 0 0 L 0 0"===i.util.joinPath(e)},createPath:function(e){var t=new i.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 i.Shadow(this.shadow)),t},decimatePoints:function(e,t){if(e.length<=2)return e;var n,r=this.canvas.getZoom(),i=Math.pow(t/r,2),o=e.length-1,a=e[0],s=[a];for(n=1;n<o-1;n++)Math.pow(a.x-e[n].x,2)+Math.pow(a.y-e[n].y,2)>=i&&(a=e[n],s.push(a));return s.push(e[o]),s},_finalizeAndAddPath:function(){this.canvas.contextTop.closePath(),this.decimate&&(this._points=this.decimatePoints(this._points,this.decimate));var e=this.convertPointsToSVGPath(this._points);if(this._isEmptySVGPath(e))this.canvas.requestRenderAll();else{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})}}}),i.CircleBrush=i.util.createClass(i.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,r=this.points;for(this._saveAndTransform(n),e=0,t=r.length;e<t;e++)this.dot(n,r[e]);n.restore()},onMouseMove:function(e){!0===this.limitedToCanvasSize&&this._isOutSideCanvas(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 r=[];for(e=0,t=this.points.length;e<t;e++){var o=this.points[e],a=new i.Circle({radius:o.radius,left:o.x,top:o.y,originX:"center",originY:"center",fill:o.fill});this.shadow&&(a.shadow=new i.Shadow(this.shadow)),r.push(a)}var s=new i.Group(r);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 i.Point(e.x,e.y),n=i.util.getRandomInt(Math.max(0,this.width-20),this.width+20)/2,r=new i.Color(this.color).setAlpha(i.util.getRandomInt(0,100)/100).toRgba();return t.radius=n,t.fill=r,this.points.push(t),t}}),i.SprayBrush=i.util.createClass(i.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){!0===this.limitedToCanvasSize&&this._isOutSideCanvas(e)||(this.addSprayChunk(e),this.render(this.sprayChunkPoints))},onMouseUp:function(){var e=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;for(var t=[],n=0,r=this.sprayChunks.length;n<r;n++)for(var o=this.sprayChunks[n],a=0,s=o.length;a<s;a++){var l=new i.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(l)}this.optimizeOverlapping&&(t=this._getOptimizedRects(t));var c=new i.Group(t);this.shadow&&c.set("shadow",new i.Shadow(this.shadow)),this.canvas.fire("before:path:created",{path:c}),this.canvas.add(c),this.canvas.fire("path:created",{path:c}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=e,this.canvas.requestRenderAll()},_getOptimizedRects:function(e){var t,n,r,i={};for(n=0,r=e.length;n<r;n++)i[t=e[n].left+""+e[n].top]||(i[t]=e[n]);var o=[];for(t in i)o.push(i[t]);return o},render:function(e){var t,n,r=this.canvas.contextTop;for(r.fillStyle=this.color,this._saveAndTransform(r),t=0,n=e.length;t<n;t++){var i=e[t];"undefined"!==typeof i.opacity&&(r.globalAlpha=i.opacity),r.fillRect(i.x,i.y,i.width,i.width)}r.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,r,o,a=this.width/2;for(o=0;o<this.density;o++){t=i.util.getRandomInt(e.x-a,e.x+a),n=i.util.getRandomInt(e.y-a,e.y+a),r=this.dotWidthVariance?i.util.getRandomInt(Math.max(1,this.dotWidth-this.dotWidthVariance),this.dotWidth+this.dotWidthVariance):this.dotWidth;var s=new i.Point(t,n);s.width=r,this.randomOpacity&&(s.opacity=i.util.getRandomInt(0,100)/100),this.sprayChunkPoints.push(s)}this.sprayChunks.push(this.sprayChunkPoints)}}),i.PatternBrush=i.util.createClass(i.PencilBrush,{getPatternSrc:function(){var e=i.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(e){return e.createPattern(this.source||this.getPatternSrc(),"repeat")},_setBrushStyles:function(e){this.callSuper("_setBrushStyles",e),e.strokeStyle=this.getPattern(e)},createPath:function(e){var t=this.callSuper("createPath",e),n=t._getLeftTopCoords().scalarAdd(t.strokeWidth/2);return t.stroke=new i.Pattern({source:this.source||this.getPatternSrcFunction(),offsetX:-n.x,offsetY:-n.y}),t}}),function(){var e=i.util.getPointer,t=i.util.degreesToRadians,n=i.util.isTouchEvent;for(var r in i.Canvas=i.util.createClass(i.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",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:[],enablePointerEvents:!1,_hoveredTarget:null,_hoveredTargets:[],_initInteractive:function(){this._currentTransform=null,this._groupSelector=null,this._initWrapperElement(),this._createUpperCanvas(),this._initEventListeners(),this._initRetinaScaling(),this.freeDrawingBrush=i.PencilBrush&&new i.PencilBrush(this),this.calcOffset()},_chooseObjectsToRender:function(){var e,t,n,r=this.getActiveObjects();if(r.length>0&&!this.preserveObjectStacking){t=[],n=[];for(var i=0,o=this._objects.length;i<o;i++)e=this._objects[i],-1===r.indexOf(e)?t.push(e):n.push(e);r.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),this.hasLostContext=!1);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(),r=i.util.invertTransform(n),o=this.restorePointerVpt(t);return i.util.transformPoint(o,r)},isTargetTransparent:function(e,t,n){if(e.shouldCache()&&e._cacheCanvas&&e!==this._activeObject){var r=this._normalizePointer(e,{x:t,y:n}),o=Math.max(e.cacheTranslationX+r.x*e.zoomX,0),a=Math.max(e.cacheTranslationY+r.y*e.zoomY,0);return i.util.isTransparent(e._cacheContext,Math.round(o),Math.round(a),this.targetFindTolerance)}var s=this.contextCache,l=e.selectionBackgroundColor,c=this.viewportTransform;return e.selectionBackgroundColor="",this.clearContext(s),s.save(),s.transform(c[0],c[1],c[2],c[3],c[4],c[5]),e.render(s),s.restore(),e.selectionBackgroundColor=l,i.util.isTransparent(s,t,n,this.targetFindTolerance)},_isSelectionKeyPressed:function(e){return Array.isArray(this.selectionKey)?!!this.selectionKey.find((function(t){return!0===e[t]})):e[this.selectionKey]},_shouldClearSelection:function(e,t){var n=this.getActiveObjects(),r=this._activeObject;return!t||t&&r&&n.length>1&&-1===n.indexOf(t)&&r!==t&&!this._isSelectionKeyPressed(e)||t&&!t.evented||t&&!t.selectable&&r&&r!==t},_shouldCenterTransform:function(e,t,n){var r;if(e)return"scale"===t||"scaleX"===t||"scaleY"===t||"resizing"===t?r=this.centeredScaling||e.centeredScaling:"rotate"===t&&(r=this.centeredRotation||e.centeredRotation),r?!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"),n},_getActionFromCorner:function(e,t,n,r){if(!t||!e)return"drag";var i=r.controls[t];return i.getActionName(n,i,r)},_setupCurrentTransform:function(e,n,r){if(n){var o=this.getPointer(e),a=n.__corner,s=n.controls[a],l=r&&a?s.getActionHandler(e,n,s):i.controlsUtils.dragHandler,c=this._getActionFromCorner(r,a,e,n),u=this._getOriginFromCorner(n,a),d=e[this.centeredKey],h={target:n,action:c,actionHandler:l,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:u.x,originY:u.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:d,original:i.util.saveObjectTransform(n)};this._shouldCenterTransform(n,c,d)&&(h.originX="center",h.originY="center"),h.original.originX=u.x,h.original.originY=u.y,this._currentTransform=h,this._beforeTransform(e)}},setCursor:function(e){this.upperCanvasEl.style.cursor=e},_drawSelection:function(e){var t=this._groupSelector,n=new i.Point(t.ex,t.ey),r=i.util.transformPoint(n,this.viewportTransform),o=new i.Point(t.ex+t.left,t.ey+t.top),a=i.util.transformPoint(o,this.viewportTransform),s=Math.min(r.x,a.x),l=Math.min(r.y,a.y),c=Math.max(r.x,a.x),u=Math.max(r.y,a.y),d=this.selectionLineWidth/2;this.selectionColor&&(e.fillStyle=this.selectionColor,e.fillRect(s,l,c-s,u-l)),this.selectionLineWidth&&this.selectionBorderColor&&(e.lineWidth=this.selectionLineWidth,e.strokeStyle=this.selectionBorderColor,s+=d,l+=d,c-=d,u-=d,i.Object.prototype._setLineDash.call(this,e,this.selectionDashArray),e.strokeRect(s,l,c-s,u-l))},findTarget:function(e,t){if(!this.skipTargetFind){var r,i,o=this.getPointer(e,!0),a=this._activeObject,s=this.getActiveObjects(),l=n(e),c=s.length>1&&!t||1===s.length;if(this.targets=[],c&&a._findTargetCorner(o,l))return a;if(s.length>1&&!t&&a===this._searchPossibleTargets([a],o))return a;if(1===s.length&&a===this._searchPossibleTargets([a],o)){if(!this.preserveObjectStacking)return a;r=a,i=this.targets,this.targets=[]}var u=this._searchPossibleTargets(this._objects,o);return e[this.altSelectionKey]&&u&&r&&u!==r&&(u=r,this.targets=i),u}},_checkTarget:function(e,t,n){if(t&&t.visible&&t.evented&&t.containsPoint(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,r,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 i.Group&&(r=this._searchPossibleTargets(n._objects,t))&&this.targets.push(r);break}}return n},restorePointerVpt:function(e){return i.util.transformPoint(e,i.util.invertTransform(this.viewportTransform))},getPointer:function(t,n){if(this._absolutePointer&&!n)return this._absolutePointer;if(this._pointer&&n)return this._pointer;var r,i=e(t),o=this.upperCanvasEl,a=o.getBoundingClientRect(),s=a.width||0,l=a.height||0;s&&l||("top"in a&&"bottom"in a&&(l=Math.abs(a.top-a.bottom)),"right"in a&&"left"in a&&(s=Math.abs(a.right-a.left))),this.calcOffset(),i.x=i.x-this._offset.left,i.y=i.y-this._offset.top,n||(i=this.restorePointerVpt(i));var c=this.getRetinaScaling();return 1!==c&&(i.x/=c,i.y/=c),r=0===s||0===l?{width:1,height:1}:{width:o.width/s,height:o.height/l},{x:i.x*r.width,y:i.y*r.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),i.util.addClass(n,"upper-canvas "+e),this.wrapperEl.appendChild(n),this._copyCanvasStyle(t,n),this._applyCanvasStyle(n),this.contextTop=n.getContext("2d")},getTopContext:function(){return this.contextTop},_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=i.util.wrapElement(this.lowerCanvasEl,"div",{class:this.containerClass}),i.util.setStyle(this.wrapperEl,{width:this.width+"px",height:this.height+"px",position:"relative"}),i.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(e){var t=this.width||e.width,n=this.height||e.height;i.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,i.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,r=this.getActiveObjects(),i=[],o=[];e.forEach((function(e){-1===r.indexOf(e)&&(n=!0,e.fire("deselected",{e:t,target:e}),o.push(e))})),r.forEach((function(r){-1===e.indexOf(r)&&(n=!0,r.fire("selected",{e:t,target:r}),i.push(r))})),e.length>0&&r.length>0?n&&this.fire("selection:updated",{e:t,selected:i,deselected:o}):r.length>0?this.fire("selection:created",{e:t,selected:i}):e.length>0&&this.fire("selection:cleared",{e:t,deselected:o})},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){i.util.cleanUpJsdomNode(this[e]),this[e]=void 0}.bind(this)),e.parentNode&&e.parentNode.replaceChild(this.lowerCanvasEl,this.wrapperEl),delete this.wrapperEl,i.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 r=this._realizeGroupTransformOnObject(e),i=this.callSuper("_toObject",e,t,n);return this._unwindGroupTransformOnObject(e,r),i},_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]})),i.util.addTransformToObject(e,this._activeObject.calcOwnMatrix()),t}return null},_unwindGroupTransformOnObject:function(e,t){t&&e.set(t)},_setSVGObject:function(e,t,n){var r=this._realizeGroupTransformOnObject(t);this.callSuper("_setSVGObject",e,t,n),this._unwindGroupTransformOnObject(t,r)},setViewportTransform:function(e){this.renderOnAddRemove&&this._activeObject&&this._activeObject.isEditing&&this._activeObject.clearContextTop(),i.StaticCanvas.prototype.setViewportTransform.call(this,e)}}),i.StaticCanvas)"prototype"!==r&&(i.Canvas[r]=i.StaticCanvas[r])}(),function(){var e=i.util.addListener,t=i.util.removeListener,n={passive:!1};function r(e,t){return e.button&&e.button===t-1}i.util.object.extend(i.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 r=this.upperCanvasEl,o=this._getEventPrefix();e(i.window,"resize",this._onResize),e(r,o+"down",this._onMouseDown),e(r,o+"move",this._onMouseMove,n),e(r,o+"out",this._onMouseOut),e(r,o+"enter",this._onMouseEnter),e(r,"wheel",this._onMouseWheel),e(r,"contextmenu",this._onContextMenu),e(r,"dblclick",this._onDoubleClick),e(r,"dragover",this._onDragOver),e(r,"dragenter",this._onDragEnter),e(r,"dragleave",this._onDragLeave),e(r,"drop",this._onDrop),this.enablePointerEvents||e(r,"touchstart",this._onTouchStart,n),"undefined"!==typeof eventjs&&t in eventjs&&(eventjs[t](r,"gesture",this._onGesture),eventjs[t](r,"drag",this._onDrag),eventjs[t](r,"orientation",this._onOrientationChange),eventjs[t](r,"shake",this._onShake),eventjs[t](r,"longpress",this._onLongPress))},removeListeners:function(){this.addOrRemove(t,"remove");var e=this._getEventPrefix();t(i.document,e+"up",this._onMouseUp),t(i.document,"touchend",this._onTouchEnd,n),t(i.document,e+"move",this._onMouseMove,n),t(i.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._onDrop.bind(this),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(r){n.fire("mouse:out",{target:t,e:e}),r&&t.fire("mouseout",{e:e})})),this._hoveredTargets=[]},_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)},_onDrop:function(e){return this._simpleEventHandler("drop:before",e),this._simpleEventHandler("drop",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(r){r.preventDefault(),null===this.mainTouchId&&(this.mainTouchId=this.getPointerId(r)),this.__onMouseDown(r),this._resetTransformEventData();var o=this.upperCanvasEl,a=this._getEventPrefix();e(i.document,"touchend",this._onTouchEnd,n),e(i.document,"touchmove",this._onMouseMove,n),t(o,a+"down",this._onMouseDown)},_onMouseDown:function(r){this.__onMouseDown(r),this._resetTransformEventData();var o=this.upperCanvasEl,a=this._getEventPrefix();t(o,a+"move",this._onMouseMove,n),e(i.document,a+"up",this._onMouseUp),e(i.document,a+"move",this._onMouseMove,n)},_onTouchEnd:function(r){if(!(r.touches.length>0)){this.__onMouseUp(r),this._resetTransformEventData(),this.mainTouchId=null;var o=this._getEventPrefix();t(i.document,"touchend",this._onTouchEnd,n),t(i.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(r){this.__onMouseUp(r),this._resetTransformEventData();var o=this.upperCanvasEl,a=this._getEventPrefix();this._isMainEvent(r)&&(t(i.document,a+"up",this._onMouseUp),t(i.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"),r(e,3))this.fireRightClick&&this._handleEvent(e,"up",3,s);else{if(r(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 l=t===this._activeObject;this._maybeGroupObjects(e),a||(a=this._shouldRender(t)||!l&&t===this._activeObject)}var c,u;if(t){if(c=t._findTargetCorner(this.getPointer(e,!0),i.util.isTouchEvent(e)),t.selectable&&t!==this._activeObject&&"up"===t.activeOn)this.setActiveObject(t,e),a=!0;else{var d=t.controls[c],h=d&&d.getMouseUpHandler(e,t,d);h&&h(e,n,(u=this.getPointer(e)).x,u.y)}t.isMoving=!1}if(n&&(n.target!==t||n.corner!==c)){var p=n.target&&n.target.controls[n.corner],f=p&&p.getMouseUpHandler(e,t,d);u=u||this.getPointer(e),f&&f(e,n,u.x,u.y)}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),r=this.targets,i={e:t,target:n,subTargets:r};if(this.fire(e,i),n&&n.fire(e,i),!r)return n;for(var o=0;o<r.length;o++)r[o].fire(e,i);return n},_handleEvent:function(e,t,n,r){var i=this._target,o=this.targets||[],a={e:e,target:i,subTargets:o,button:n||1,isClick:r||!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),i&&i.fire("mouse"+t,a);for(var s=0;s<o.length;s++)o[s].fire("mouse"+t,a)},_finalizeCurrentTransform:function(e){var t=this._currentTransform,n=t.target,r={e:e,target:n,transform:t,action:t.action};n._scaling&&(n._scaling=!1),n.setCoords(),(t.actionPerformed||this.stateful&&n.hasStateChanged())&&this._fire("modified",r)},_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(r(e,3))this.fireRightClick&&this._handleEvent(e,"down",3);else if(r(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:this._absolutePointer.x,ey:this._absolutePointer.y,top:0,left:0}),t){var s=t===this._activeObject;t.selectable&&"down"===t.activeOn&&this.setActiveObject(t,e);var l=t._findTargetCorner(this.getPointer(e,!0),i.util.isTouchEvent(e));if(t.__corner=l,t===this._activeObject&&(l||!a)){this._setupCurrentTransform(e,t,s);var c=t.controls[l],u=(n=this.getPointer(e),c&&c.getMouseDownHandler(e,t,c));u&&u(e,this._currentTransform,n.x,n.y)}}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 r=this._groupSelector;r?(n=this._absolutePointer,r.left=n.x-r.ex,r.top=n.y-r.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,r=this._hoveredTargets,i=this.targets,o=Math.max(r.length,i.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(i[a],t,{oldTarget:r[a],evtOut:"mouseout",evtIn:"mouseover"});this._hoveredTarget=e,this._hoveredTargets=this.targets.concat()},_fireEnterLeaveEvents:function(e,t){var n=this._draggedoverTarget,r=this._hoveredTargets,i=this.targets,o=Math.max(r.length,i.length);this.fireSyntheticInOutEvents(e,t,{oldTarget:n,evtOut:"dragleave",evtIn:"dragenter"});for(var a=0;a<o;a++)this.fireSyntheticInOutEvents(i[a],t,{oldTarget:r[a],evtOut:"dragleave",evtIn:"dragenter"});this._draggedoverTarget=e},fireSyntheticInOutEvents:function(e,t,n){var r,i,o,a=n.oldTarget,s=a!==e,l=n.canvasEvtIn,c=n.canvasEvtOut;s&&(r={e:t,target:e,previousTarget:a},i={e:t,target:a,nextTarget:e}),o=e&&s,a&&s&&(c&&this.fire(c,i),a.fire(n.evtOut,i)),o&&(l&&this.fire(l,r),e.fire(n.evtIn,r))},__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.shiftKey=e.shiftKey,n.altKey=e[this.centeredKey],this._performTransformAction(e,n,t),n.actionPerformed&&this.requestRenderAll()},_performTransformAction:function(e,t,n){var r=n.x,i=n.y,o=t.action,a=!1,s=t.actionHandler;s&&(a=s(e,t,r,i)),"drag"===o&&a&&(t.target.isMoving=!0,this.setCursor(t.target.moveCursor||this.moveCursor)),t.actionPerformed=t.actionPerformed||a},_fire:i.controlsUtils.fireEvent,_setCursorFromEvent:function(e,t){if(!t)return this.setCursor(this.defaultCursor),!1;var n=t.hoverCursor||this.hoverCursor,r=this._activeObject&&"activeSelection"===this._activeObject.type?this._activeObject:null,i=(!r||!r.contains(t))&&t._findTargetCorner(this.getPointer(e,!0));i?this.setCursor(this.getCornerCursor(i,t,e)):(t.subTargetCheck&&this.targets.concat().reverse().map((function(e){n=e.hoverCursor||n})),this.setCursor(n))},getCornerCursor:function(e,t,n){var r=t.controls[e];return r.cursorStyleHandler(n,r,t)}})}(),function(){var e=Math.min,t=Math.max;i.util.object.extend(i.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,r=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(r,t)},_createActiveSelection:function(e,t){var n=this.getActiveObjects(),r=this._createGroup(e);this._hoveredTarget=r,this._setActiveObject(r,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 i.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 i.ActiveSelection(n.reverse(),{canvas:this}),this.setActiveObject(t,e))},_collectObjects:function(n){for(var r,o=[],a=this._groupSelector.ex,s=this._groupSelector.ey,l=a+this._groupSelector.left,c=s+this._groupSelector.top,u=new i.Point(e(a,l),e(s,c)),d=new i.Point(t(a,l),t(s,c)),h=!this.selectionFullyContained,p=a===l&&s===c,f=this._objects.length;f--&&!((r=this._objects[f])&&r.selectable&&r.visible&&(h&&r.intersectsWithRect(u,d,!0)||r.isContainedWithinRect(u,d,!0)||h&&r.containsPoint(u,null,!0)||h&&r.containsPoint(d,null,!0))&&(o.push(r),p)););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}})}(),i.util.object.extend(i.StaticCanvas.prototype,{toDataURL:function(e){e||(e={});var t=e.format||"png",n=e.quality||1,r=(e.multiplier||1)*(e.enableRetinaScaling?this.getRetinaScaling():1),o=this.toCanvasElement(r,e);return i.util.toDataURL(o,t,n)},toCanvasElement:function(e,t){e=e||1;var n=((t=t||{}).width||this.width)*e,r=(t.height||this.height)*e,o=this.getZoom(),a=this.width,s=this.height,l=o*e,c=this.viewportTransform,u=(c[4]-(t.left||0))*e,d=(c[5]-(t.top||0))*e,h=this.interactive,p=[l,0,0,l,u,d],f=this.enableRetinaScaling,m=i.util.createCanvasElement(),g=this.contextTop;return m.width=n,m.height=r,this.contextTop=null,this.enableRetinaScaling=!1,this.interactive=!1,this.viewportTransform=p,this.width=n,this.height=r,this.calcViewportBoundaries(),this.renderCanvas(m.getContext("2d"),this._objects),this.viewportTransform=c,this.width=a,this.height=s,this.calcViewportBoundaries(),this.interactive=h,this.enableRetinaScaling=f,this.contextTop=g,m}}),i.util.object.extend(i.StaticCanvas.prototype,{loadFromJSON:function(e,t,n){if(e){var r="string"===typeof e?JSON.parse(e):i.util.object.clone(e),o=this,a=r.clipPath,s=this.renderOnAddRemove;return this.renderOnAddRemove=!1,delete r.clipPath,this._enlivenObjects(r.objects,(function(e){o.clear(),o._setBgOverlay(r,(function(){a?o._enlivenObjects([a],(function(n){o.clipPath=n[0],o.__setupCanvas.call(o,r,e,s,t)})):o.__setupCanvas.call(o,r,e,s,t)}))}),n),this}},__setupCanvas:function(e,t,n,r){var i=this;t.forEach((function(e,t){i.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(),r&&r()},_setBgOverlay:function(e,t){var n={backgroundColor:!1,overlayColor:!1,backgroundImage:!1,overlayImage:!1};if(e.backgroundImage||e.overlayImage||e.background||e.overlay){var r=function(){n.backgroundImage&&n.overlayImage&&n.backgroundColor&&n.overlayColor&&t&&t()};this.__setBgOverlay("backgroundImage",e.backgroundImage,n,r),this.__setBgOverlay("overlayImage",e.overlayImage,n,r),this.__setBgOverlay("backgroundColor",e.background,n,r),this.__setBgOverlay("overlayColor",e.overlay,n,r)}else t&&t()},__setBgOverlay:function(e,t,n,r){var o=this;if(!t)return n[e]=!0,void(r&&r());"backgroundImage"===e||"overlayImage"===e?i.util.enlivenObjects([t],(function(t){o[e]=t[0],n[e]=!0,r&&r()})):this["set"+i.util.string.capitalize(e,!0)](t,(function(){n[e]=!0,r&&r()}))},_enlivenObjects:function(e,t,n){e&&0!==e.length?i.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(r){n(r.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=i.util.createCanvasElement();t.width=this.width,t.height=this.height;var n=new i.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,r=t.util.object.clone,i=t.util.toFixed,o=t.util.string.capitalize,a=t.util.degreesToRadians,s=!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:s,statefullCache:!1,noScaleCache:!0,strokeUniform:!1,dirty:!0,__corner:0,paintFirst:"fill",activeOn:"down",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,r=e.width,i=e.height,o=t.maxCacheSideLimit,a=t.minCacheSideLimit;if(r<=o&&i<=o&&r*i<=n)return r<a&&(e.width=a),i<a&&(e.height=a),e;var s=r/i,l=t.util.limitDimsByArea(s,n),c=t.util.capValue,u=c(a,l.x,o),d=c(a,l.y,o);return r>u&&(e.zoomX/=r/u,e.width=u,e.capped=!0),i>d&&(e.zoomY/=i/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,r=t.y*e.scaleY/this.scaleY;return{width:n+2,height:r+2,zoomX:e.scaleX,zoomY:e.scaleY,x:n,y:r}},_updateCacheCanvas:function(){var e=this.canvas;if(this.noScaleCache&&e&&e._currentTransform){var n=e._currentTransform.target,r=e._currentTransform.action;if(this===n&&r.slice&&"scale"===r.slice(0,5))return!1}var i,o,a=this._cacheCanvas,s=this._limitCacheSize(this._getCacheCanvasDimensions()),l=t.minCacheSideLimit,c=s.width,u=s.height,d=s.zoomX,h=s.zoomY,p=c!==this.cacheWidth||u!==this.cacheHeight,f=this.zoomX!==d||this.zoomY!==h,m=p||f,g=0,v=0,y=!1;if(p){var b=this._cacheCanvas.width,x=this._cacheCanvas.height,w=c>b||u>x;y=w||(c<.9*b||u<.9*x)&&b>l&&x>l,w&&!s.capped&&(c>l||u>l)&&(g=.1*c,v=.1*u)}return this instanceof t.Text&&this.path&&(m=!0,y=!0,g+=this.getHeightOfLine(0)*this.zoomX,v+=this.getHeightOfLine(0)*this.zoomY),!!m&&(y?(a.width=Math.ceil(c+g),a.height=Math.ceil(u+v)):(this._cacheContext.setTransform(1,0,0,1,0,0),this._cacheContext.clearRect(0,0,a.width,a.height)),i=s.x/2,o=s.y/2,this.cacheTranslationX=Math.round(a.width/2-i)+i,this.cacheTranslationY=Math.round(a.height/2-o)+o,this.cacheWidth=c,this.cacheHeight=u,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,r={type:this.type,version:t.version,originX:this.originX,originY:this.originY,left:i(this.left,n),top:i(this.top,n),width:i(this.width,n),height:i(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:i(this.strokeWidth,n),strokeDashArray:this.strokeDashArray?this.strokeDashArray.concat():this.strokeDashArray,strokeLineCap:this.strokeLineCap,strokeDashOffset:this.strokeDashOffset,strokeLineJoin:this.strokeLineJoin,strokeUniform:this.strokeUniform,strokeMiterLimit:i(this.strokeMiterLimit,n),scaleX:i(this.scaleX,n),scaleY:i(this.scaleY,n),angle:i(this.angle,n),flipX:this.flipX,flipY:this.flipY,opacity:i(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:i(this.skewX,n),skewY:i(this.skewY,n)};return this.clipPath&&!this.clipPath.excludeFromExport&&(r.clipPath=this.clipPath.toObject(e),r.clipPath.inverted=this.clipPath.inverted,r.clipPath.absolutePositioned=this.clipPath.absolutePositioned),t.util.populateWithProperties(this,r,e),this.includeDefaultValues||(r=this._removeDefaultValues(r)),r},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],Array.isArray(e[t])&&Array.isArray(n[t])&&0===e[t].length&&0===n[t].length&&delete e[t])})),e},toString:function(){return"#<fabric."+o(this.type)+">"},getObjectScaling:function(){if(!this.group)return{scaleX:this.scaleX,scaleY:this.scaleY};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 r=this.canvas.getZoom(),i=this.canvas.getRetinaScaling();t*=r*i,n*=r*i}return{scaleX:t,scaleY:n}},getObjectOpacity:function(){var e=this.opacity;return this.group&&(e*=this.group.getObjectOpacity()),e},_set:function(e,n){var r="scaleX"===e||"scaleY"===e,i=this[e]!==n,o=!1;return r&&(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,i&&(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._cacheContext||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._cacheContext=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,n){if(e.save(),n.inverted?e.globalCompositeOperation="destination-out":e.globalCompositeOperation="destination-in",n.absolutePositioned){var r=t.util.invertTransform(this.calcTransformMatrix());e.transform(r[0],r[1],r[2],r[3],r[4],r[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,r=this.stroke;t?(this.fill="black",this.stroke="",this._setClippingProperties(e)):this._renderBackground(e),this._render(e),this._drawClipPath(e,this.clipPath),this.fill=n,this.stroke=r},_drawClipPath:function(e,t){t&&(t.canvas=this.canvas,t.shouldCache(),t._transformDone=!0,t.renderCache({forClipping:!0}),this.drawClipPathOnCache(e,t))},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&&this._cacheContext&&!e&&this._updateCacheCanvas())return!0;if(this.dirty||this.clipPath&&this.clipPath.absolutePositioned||this.statefullCache&&this.hasStateChanged("cacheProperties")){if(this._cacheCanvas&&this._cacheContext&&!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){var n=t.stroke;n&&(e.lineWidth=t.strokeWidth,e.lineCap=t.strokeLineCap,e.lineDashOffset=t.strokeDashOffset,e.lineJoin=t.strokeLineJoin,e.miterLimit=t.strokeMiterLimit,n.toLive?"percentage"===n.gradientUnits||n.gradientTransform||n.patternTransform?this._applyPatternForTransformedGradient(e,n):(e.strokeStyle=n.toLive(e,this),this._applyPatternGradientTransform(e,n)):e.strokeStyle=t.stroke)},_setFillStyles:function(e,t){var n=t.fill;n&&(n.toLive?(e.fillStyle=n.toLive(e,this),this._applyPatternGradientTransform(e,t.fill)):e.fillStyle=n)},_setClippingProperties:function(e){e.globalAlpha=1,e.strokeStyle="transparent",e.fillStyle="#000000"},_setLineDash:function(e,t){t&&0!==t.length&&(1&t.length&&t.push.apply(t,t),e.setLineDash(t))},_renderControls:function(e,n){var r,i,o,s=this.getViewportTransform(),l=this.calcTransformMatrix();i="undefined"!==typeof(n=n||{}).hasBorders?n.hasBorders:this.hasBorders,o="undefined"!==typeof n.hasControls?n.hasControls:this.hasControls,l=t.util.multiplyTransformMatrices(s,l),r=t.util.qrDecompose(l),e.save(),e.translate(r.translateX,r.translateY),e.lineWidth=1*this.borderScaleFactor,this.group||(e.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1),this.flipX&&(r.angle-=180),e.rotate(a(this.group?r.angle:this.angle)),n.forActiveSelection||this.group?i&&this.drawBordersInGroup(e,r,n):i&&this.drawBorders(e,n),o&&this.drawControls(e,n),e.restore()},_setShadow:function(e){if(this.shadow){var n,r=this.shadow,i=this.canvas,o=i&&i.viewportTransform[0]||1,a=i&&i.viewportTransform[3]||1;n=r.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),i&&i._isRetinaScaling()&&(o*=t.devicePixelRatio,a*=t.devicePixelRatio),e.shadowColor=r.color,e.shadowBlur=r.blur*t.browserShadowBlurConstant*(o+a)*(n.scaleX+n.scaleY)/4,e.shadowOffsetX=r.offsetX*o*n.scaleX,e.shadowOffsetY=r.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,r=-this.width/2+t.offsetX||0,i=-this.height/2+t.offsetY||0;return"percentage"===t.gradientUnits?e.transform(this.width,0,0,this.height,r,i):e.transform(1,0,0,1,r,i),n&&e.transform(n[0],n[1],n[2],n[3],n[4],n[5]),{offsetX:r,offsetY:i}},_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._setFillStyles(e,this),"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._setStrokeStyles(e,this),e.stroke(),e.restore()}},_applyPatternForTransformedGradient:function(e,n){var r,i=this._limitCacheSize(this._getCacheCanvasDimensions()),o=t.util.createCanvasElement(),a=this.canvas.getRetinaScaling(),s=i.x/this.scaleX/a,l=i.y/this.scaleY/a;o.width=s,o.height=l,(r=o.getContext("2d")).beginPath(),r.moveTo(0,0),r.lineTo(s,0),r.lineTo(s,l),r.lineTo(0,l),r.closePath(),r.translate(s/2,l/2),r.scale(i.zoomX/this.scaleX/a,i.zoomY/this.scaleY/a),this._applyPatternGradientTransform(r,n),r.fillStyle=n.toLive(e),r.fill(),e.translate(-this.width/2-this.strokeWidth/2,-this.height/2-this.strokeWidth/2),e.scale(a*this.scaleX/i.zoomX,a*this.scaleY/i.zoomY),e.strokeStyle=r.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 r=this.toObject(n);this.constructor.fromObject?this.constructor.fromObject(r,e):t.Object._fromObject("Object",r,e)},cloneAsImage:function(e,n){var r=this.toCanvasElement(n);return e&&e(new t.Image(r)),this},toCanvasElement:function(e){e||(e={});var n=t.util,r=n.saveObjectTransform(this),i=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 l,c,u,d,h=t.util.createCanvasElement(),p=this.getBoundingRect(!0,!0),f=this.shadow,m={x:0,y:0};f&&(c=f.blur,l=f.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),m.x=2*Math.round(a(f.offsetX)+c)*a(l.scaleX),m.y=2*Math.round(a(f.offsetY)+c)*a(l.scaleY)),u=p.width+m.x,d=p.height+m.y,h.width=Math.ceil(u),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 v=this.canvas;g.add(this);var y=g.toCanvasElement(s||1,e);return this.shadow=o,this.set("canvas",v),i&&(this.group=i),this.set(r).setCoords(),g._objects=[],g.dispose(),g=null,y},toDataURL:function(e){return e||(e={}),t.util.toDataURL(this.toCanvasElement(e),e.format||"png",e.quality||1)},isType:function(e){return arguments.length>1?Array.from(arguments).includes(this.type):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 r=new t.Point(n.x,n.y),i=this._getLeftTopCoords();return this.angle&&(r=t.util.rotatePoint(r,i,a(-this.angle))),{x:r.x-i.x,y:r.y-i.y}},_setupCompositeOperation:function(e){this.globalCompositeOperation&&(e.globalCompositeOperation=this.globalCompositeOperation)},dispose:function(){t.runningAnimations&&t.runningAnimations.cancelByTarget(this)}}),t.util.createAccessors&&t.util.createAccessors(t.Object),n(t.Object.prototype,t.Observable),t.Object.NUM_FRACTION_DIGITS=2,t.Object.ENLIVEN_PROPS=["clipPath"],t.Object._fromObject=function(e,n,i,o){var a=t[e];n=r(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.enlivenObjectEnlivables(n,n,(function(){var e=o?new a(n[o],n):new a(n);i&&i(e)}))}))},t.Object.__uid=0)}(t),function(){var e=i.util.degreesToRadians,t={left:-.5,center:0,right:.5},n={top:-.5,center:0,bottom:.5};i.util.object.extend(i.Object.prototype,{translateToGivenOrigin:function(e,r,o,a,s){var l,c,u,d=e.x,h=e.y;return"string"===typeof r?r=t[r]:r-=.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,c=s-o,((l=a-r)||c)&&(u=this._getTransformedDimensions(),d=e.x+l*u.x,h=e.y+c*u.y),new i.Point(d,h)},translateToCenterPoint:function(t,n,r){var o=this.translateToGivenOrigin(t,n,r,"center","center");return this.angle?i.util.rotatePoint(o,t,e(this.angle)):o},translateToOriginPoint:function(t,n,r){var o=this.translateToGivenOrigin(t,"center","center",n,r);return this.angle?i.util.rotatePoint(o,t,e(this.angle)):o},getCenterPoint:function(){var e=new i.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,r){var o,a,s=this.getCenterPoint();return o="undefined"!==typeof n&&"undefined"!==typeof r?this.translateToGivenOrigin(s,"center","center",n,r):new i.Point(this.left,this.top),a=new i.Point(t.x,t.y),this.angle&&(a=i.util.rotatePoint(a,s,-e(this.angle))),a.subtractEquals(o)},setPositionByOrigin:function(e,t,n){var r=this.translateToCenterPoint(e,t,n),i=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",i.x),this.set("top",i.y)},adjustPosition:function(n){var r,o,a=e(this.angle),s=this.getScaledWidth(),l=i.util.cos(a)*s,c=i.util.sin(a)*s;r="string"===typeof this.originX?t[this.originX]:this.originX-.5,o="string"===typeof n?t[n]:n-.5,this.left+=l*(o-r),this.top+=c*(o-r),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=i.util,t=e.degreesToRadians,n=e.multiplyTransformMatrices,r=e.transformPoint;e.object.extend(i.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 i.Point(n.tl.x,n.tl.y),new i.Point(n.tr.x,n.tr.y),new i.Point(n.br.x,n.br.y),new i.Point(n.bl.x,n.bl.y)];var n},intersectsWithRect:function(e,t,n,r){var o=this.getCoords(n,r);return"Intersection"===i.Intersection.intersectPolygonRectangle(o,e,t).status},intersectsWithObject:function(e,t,n){return"Intersection"===i.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 r=this.getCoords(t,n),i=t?e.aCoords:e.lineCoords,o=0,a=e._getImageLines(i);o<4;o++)if(!e.containsPoint(r[o],a))return!1;return!0},isContainedWithinRect:function(e,t,n,r){var i=this.getBoundingRect(n,r);return i.left>=e.x&&i.left+i.width<=t.x&&i.top>=e.y&&i.top+i.height<=t.y},containsPoint:function(e,t,n,r){var i=this._getCoords(n,r),o=(t=t||this._getImageLines(i),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 r={x:(e.x+t.x)/2,y:(e.y+t.y)/2};return!!this.containsPoint(r,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,r,i,o=0;for(var a in t)if(!((i=t[a]).o.y<e.y&&i.d.y<e.y)&&!(i.o.y>=e.y&&i.d.y>=e.y)&&(i.o.x===i.d.x&&i.o.x>=e.x?r=i.o.x:(0,n=(i.d.y-i.o.y)/(i.d.x-i.o.x),r=-(e.y-0*e.x-(i.o.y-n*i.o.x))/(0-n)),r>=e.x&&(o+=1),2===o))break;return o},getBoundingRect:function(t,n){var r=this.getCoords(t,n);return e.makeBoundingBoxFromPoints(r)},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)},calcLineCoords:function(){var n=this.getViewportTransform(),i=this.padding,o=t(this.angle),a=e.cos(o)*i,s=e.sin(o)*i,l=a+s,c=a-s,u=this.calcACoords(),d={tl:r(u.tl,n),tr:r(u.tr,n),bl:r(u.bl,n),br:r(u.br,n)};return i&&(d.tl.x-=c,d.tl.y-=l,d.tr.x+=l,d.tr.y-=c,d.bl.x-=l,d.bl.y+=c,d.br.x+=c,d.br.y+=l),d},calcOCoords:function(){var e=this._calcRotateMatrix(),t=this._calcTranslateMatrix(),r=this.getViewportTransform(),i=n(r,t),o=n(i,e),a=(o=n(o,[1/r[0],0,0,1/r[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(),i=n(t,e),o=this._getTransformedDimensions(),a=o.x/2,s=o.y/2;return{tl:r({x:-a,y:-s},i),tr:r({x:a,y:-s},i),bl:r({x:-a,y:s},i),br:r({x:a,y:s},i)}},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 r=this.transformMatrixKey(e),i=this.matrixCache||(this.matrixCache={});return i.key===r?i.value:(this.group&&(t=n(this.group.calcTransformMatrix(!1),t)),i.key=r,i.value=t,t)},calcOwnMatrix:function(){var t=this.transformMatrixKey(!0),n=this.ownMatrixCache||(this.ownMatrixCache={});if(n.key===t)return n.value;var r=this._calcTranslateMatrix(),i={angle:this.angle,translateX:r[4],translateY:r[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(i),n.value},_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 r,i,o,a=0===t&&0===n;if(this.strokeUniform?(i=this.width,o=this.height):(i=(r=this._getNonTransformedDimensions()).x,o=r.y),a)return this._finalizeDimensions(i*this.scaleX,o*this.scaleY);var s=e.sizeAfterTransform(i,o,{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 r(t,e,!0).scalarAdd(2*this.padding)}})}(),i.util.object.extend(i.Object.prototype,{sendToBack:function(){return this.group?i.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas&&this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?i.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas&&this.canvas.bringToFront(this),this},sendBackwards:function(e){return this.group?i.StaticCanvas.prototype.sendBackwards.call(this.group,this,e):this.canvas&&this.canvas.sendBackwards(this,e),this},bringForward:function(e){return this.group?i.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?i.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 i.Color(t),r=e+": "+n.toRgb()+"; ",o=n.getAlpha();return 1!==o&&(r+=e+"-opacity: "+o.toString()+"; "),r}return e+": none; "}var t=i.util.toFixed;i.util.object.extend(i.Object.prototype,{getSvgStyles:function(t){var n=this.fillRule?this.fillRule:"nonzero",r=this.strokeWidth?this.strokeWidth:"0",i=this.strokeDashArray?this.strokeDashArray.join(" "):"none",o=this.strokeDashOffset?this.strokeDashOffset:"0",a=this.strokeLineCap?this.strokeLineCap:"butt",s=this.strokeLineJoin?this.strokeLineJoin:"miter",l=this.strokeMiterLimit?this.strokeMiterLimit:"4",c="undefined"!==typeof this.opacity?this.opacity:"1",u=this.visible?"":" visibility: hidden;",d=t?"":this.getSvgFilter(),h=e("fill",this.fill);return[e("stroke",this.stroke),"stroke-width: ",r,"; ","stroke-dasharray: ",i,"; ","stroke-linecap: ",a,"; ","stroke-dashoffset: ",o,"; ","stroke-linejoin: ",s,"; ","stroke-miterlimit: ",l,"; ",h,"fill-rule: ",n,"; ","opacity: ",c,";",d,u].join("")},getSvgSpanStyles:function(t,n){var r="; ",i=t.fontFamily?"font-family: "+(-1===t.fontFamily.indexOf("'")&&-1===t.fontFamily.indexOf('"')?"'"+t.fontFamily+"'":t.fontFamily)+r:"",o=t.strokeWidth?"stroke-width: "+t.strokeWidth+r:"",a=(i=i,t.fontSize?"font-size: "+t.fontSize+"px"+r:""),s=t.fontStyle?"font-style: "+t.fontStyle+r:"",l=t.fontWeight?"font-weight: "+t.fontWeight+r:"",c=t.fill?e("fill",t.fill):"",u=t.stroke?e("stroke",t.stroke):"",d=this.getSvgTextDecoration(t);return d&&(d="text-decoration: "+d+r),[u,o,i,a,s,l,d,c,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="'+i.util.matrixToSVG(n)+(t||"")+'" '},_setSVGBg:function(e){if(this.backgroundColor){var n=i.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,r=t.additionalTransform||"",i=[this.getSvgTransform(!0,r),this.getSvgCommons()].join(""),o=e.indexOf("COMMON_PARTS");return e[o]=i,n?n(e.join("")):e.join("")},_createBaseSVGMarkup:function(e,t){var n,r,o=(t=t||{}).noStyle,a=t.reviver,s=o?"":'style="'+this.getSvgStyles()+'" ',l=t.withShadow?'style="'+this.getSvgFilter()+'" ':"",c=this.clipPath,u=this.strokeUniform?'vector-effect="non-scaling-stroke" ':"",d=c&&c.absolutePositioned,h=this.stroke,p=this.fill,f=this.shadow,m=[],g=e.indexOf("COMMON_PARTS"),v=t.additionalTransform;return c&&(c.clipPathId="CLIPPATH_"+i.Object.__uid++,r='<clipPath id="'+c.clipPathId+'" >\n'+c.toClipPathSVG(a)+"</clipPath>\n"),d&&m.push("<g ",l,this.getSvgCommons()," >\n"),m.push("<g ",this.getSvgTransform(!1),d?"":l+this.getSvgCommons()," >\n"),n=[s,u,o?"":this.addPaintOrder()," ",v?'transform="'+v+'" ':""].join(""),e[g]=n,p&&p.toLive&&m.push(p.toSVG(this)),h&&h.toLive&&m.push(h.toSVG(this)),f&&m.push(f.toSVG(this)),c&&m.push(r),m.push(e.join("")),m.push("</g>\n"),d&&m.push("</g>\n"),a?a(m.join("")):m.join("")},addPaintOrder:function(){return"fill"!==this.paintFirst?' paint-order="'+this.paintFirst+'" ':""}})}(),function(){var e=i.util.object.extend,t="stateProperties";function n(t,n,r){var i={};r.forEach((function(e){i[e]=t[e]})),e(t[n],i,!0)}function r(e,t,n){if(e===t)return!0;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(var i=0,o=e.length;i<o;i++)if(!r(e[i],t[i]))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(i=0,o=s.length;i<o;i++)if("canvas"!==(a=s[i])&&"group"!==a&&!r(e[a],t[a]))return!1;return!0}}i.util.object.extend(i.Object.prototype,{hasStateChanged:function(e){var n="_"+(e=e||t);return Object.keys(this[n]).length<this[e].length||!r(this[n],this,!0)},saveState:function(e){var r=e&&e.propertySet||t,i="_"+r;return this[i]?(n(this,i,this[r]),e&&e.stateProperties&&n(this,i,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=i.util.degreesToRadians;i.util.object.extend(i.Object.prototype,{_findTargetCorner:function(e,t){if(!this.hasControls||this.group||!this.canvas||this.canvas._activeObject!==this)return!1;var n,r,i,o=e.x,a=e.y,s=Object.keys(this.oCoords),l=s.length-1;for(this.__corner=0;l>=0;l--)if(i=s[l],this.isControlVisible(i)&&(r=this._getImageLines(t?this.oCoords[i].touchCorner:this.oCoords[i].corner),0!==(n=this._findCrossPoints({x:o,y:a},r))&&n%2===1))return this.__corner=i,i;return!1},forEachControl:function(e){for(var t in this.controls)e(this.controls[t],t,this)},_setCornerCoords:function(){var e=this.oCoords;for(var t in e){var n=this.controls[t];e[t].corner=n.calcCornerCoords(this.angle,this.cornerSize,e[t].x,e[t].y,!1),e[t].touchCorner=n.calcCornerCoords(this.angle,this.touchCornerSize,e[t].x,e[t].y,!0)}},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(),r=this._calculateCurrentDimensions(),i=this.canvas.viewportTransform;return t.translate(n.x,n.y),t.scale(1/i[0],1/i[3]),t.rotate(e(this.angle)),t.fillStyle=this.selectionBackgroundColor,t.fillRect(-r.x/2,-r.y/2,r.x,r.y),t.restore(),this},drawBorders:function(e,t){t=t||{};var n=this._calculateCurrentDimensions(),r=this.borderScaleFactor,i=n.x+r,o=n.y+r,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),e.strokeRect(-i/2,-o/2,i,o),a&&(e.beginPath(),this.forEachControl((function(t,n,r){t.withConnection&&t.getVisibility(r,n)&&(s=!0,e.moveTo(t.x*i,t.y*o),e.lineTo(t.x*i+t.offsetX,t.y*o+t.offsetY))})),s&&e.stroke()),e.restore(),this},drawBordersInGroup:function(e,t,n){n=n||{};var r=i.util.sizeAfterTransform(this.width,this.height,t),o=this.strokeWidth,a=this.strokeUniform,s=this.borderScaleFactor,l=r.x+o*(a?this.canvas.getZoom():t.scaleX)+s,c=r.y+o*(a?this.canvas.getZoom():t.scaleY)+s;return e.save(),this._setLineDash(e,n.borderDashArray||this.borderDashArray),e.strokeStyle=n.borderColor||this.borderColor,e.strokeRect(-l/2,-c/2,l,c),e.restore(),this},drawControls:function(e,t){t=t||{},e.save();var n,r,o=this.canvas.getRetinaScaling();return e.setTransform(o,0,0,o,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),this.setCoords(),this.group&&(n=this.group.calcTransformMatrix()),this.forEachControl((function(o,a,s){r=s.oCoords[a],o.getVisibility(s,a)&&(n&&(r=i.util.transformPoint(r,n)),o.render(e,r.x,r.y,t,s))})),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(){}})}(),i.util.object.extend(i.StaticCanvas.prototype,{FX_DURATION:500,fxCenterObjectH:function(e,t){var n=function(){},r=(t=t||{}).onComplete||n,o=t.onChange||n,a=this;return i.util.animate({target:this,startValue:e.left,endValue:this.getCenterPoint().x,duration:this.FX_DURATION,onChange:function(t){e.set("left",t),a.requestRenderAll(),o()},onComplete:function(){e.setCoords(),r()}})},fxCenterObjectV:function(e,t){var n=function(){},r=(t=t||{}).onComplete||n,o=t.onChange||n,a=this;return i.util.animate({target:this,startValue:e.top,endValue:this.getCenterPoint().y,duration:this.FX_DURATION,onChange:function(t){e.set("top",t),a.requestRenderAll(),o()},onComplete:function(){e.setCoords(),r()}})},fxRemove:function(e,t){var n=function(){},r=(t=t||{}).onComplete||n,o=t.onChange||n,a=this;return i.util.animate({target:this,startValue:e.opacity,endValue:0,duration:this.FX_DURATION,onChange:function(t){e.set("opacity",t),a.requestRenderAll(),o()},onComplete:function(){a.remove(e),r()}})}}),i.util.object.extend(i.Object.prototype,{animate:function(){if(arguments[0]&&"object"===typeof arguments[0]){var e,t,n=[],r=[];for(e in arguments[0])n.push(e);for(var i=0,o=n.length;i<o;i++)e=n[i],t=i!==o-1,r.push(this._animate(e,arguments[0][e],arguments[1],t));return r}return this._animate.apply(this,arguments)},_animate:function(e,t,n,r){var o,a=this;t=t.toString(),n=n?i.util.object.clone(n):{},~e.indexOf(".")&&(o=e.split("."));var s=a.colorProperties.indexOf(e)>-1||o&&a.colorProperties.indexOf(o[1])>-1,l=o?this.get(o[0])[o[1]]:this.get(e);"from"in n||(n.from=l),s||(t=~t.indexOf("=")?l+parseFloat(t.replace("=","")):parseFloat(t));var c={target:this,startValue:n.from,endValue:t,byValue:n.by,easing:n.easing,duration:n.duration,abort:n.abort&&function(e,t,r){return n.abort.call(a,e,t,r)},onChange:function(t,i,s){o?a[o[0]][o[1]]=t:a.set(e,t),r||n.onChange&&n.onChange(t,i,s)},onComplete:function(e,t,i){r||(a.setCoords(),n.onComplete&&n.onComplete(e,t,i))}};return s?i.util.animateColor(c.startValue,c.endValue,c.duration,c):i.util.animate(c)}}),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.object.extend,r=t.util.object.clone,i={x1:1,x2:1,y1:1,y2:1};function o(e,t){var n=e.origin,r=e.axis1,i=e.axis2,o=e.dimension,a=t.nearest,s=t.center,l=t.farthest;return function(){switch(this.get(n)){case a:return Math.min(this.get(r),this.get(i));case s:return Math.min(this.get(r),this.get(i))+.5*this.get(o);case l:return Math.max(this.get(r),this.get(i))}}}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 i[e]&&this._setWidthHeight(),this},_getLeftToOriginX:o({origin:"originX",axis1:"x1",axis2:"x2",dimension:"width"},{nearest:"left",center:"center",farthest:"right"}),_getTopToOriginY:o({origin:"originY",axis1:"y1",axis2:"y2",dimension:"height"},{nearest:"top",center:"center",farthest:"bottom"}),_render:function(e){e.beginPath();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},_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,r=t*this.height*.5;return{x1:n,x2:e*this.width*-.5,y1:r,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,r,i){i=i||{};var o=t.parseAttributes(e,t.Line.ATTRIBUTE_NAMES),a=[o.x1||0,o.y1||0,o.x2||0,o.y2||0];r(new t.Line(a,n(o,i)))},t.Line.fromObject=function(e,n){var i=r(e,!0);i.points=[e.x1,e.y1,e.x2,e.y2],t.Object._fromObject("Line",i,(function(e){delete e.points,n&&n(e)}),"points")})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.degreesToRadians;t.Circle?t.warn("fabric.Circle is already defined."):(t.Circle=t.util.createClass(t.Object,{type:"circle",radius:0,startAngle:0,endAngle:360,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,r=(this.endAngle-this.startAngle)%360;if(0===r)e=["<circle ","COMMON_PARTS",'cx="0" cy="0" ','r="',this.radius,'" />\n'];else{var i=n(this.startAngle),o=n(this.endAngle),a=this.radius;e=['<path d="M '+t.util.cos(i)*a+" "+t.util.sin(i)*a," A "+a+" "+a," 0 ",+(r>180?"1":"0")+" 1"," "+t.util.cos(o)*a+" "+t.util.sin(o)*a,'" ',"COMMON_PARTS"," />\n"]}return e},_render:function(e){e.beginPath(),e.arc(0,0,this.radius,n(this.startAngle),n(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 r,i=t.parseAttributes(e,t.Circle.ATTRIBUTE_NAMES);if(!("radius"in(r=i)&&r.radius>=0))throw new Error("value of `r` attribute is required and can not be negative");i.left=(i.left||0)-i.radius,i.top=(i.top||0)-i.radius,n(new t.Circle(i))},t.Circle.fromObject=function(e,n){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)},_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 r=t.parseAttributes(e,t.Ellipse.ATTRIBUTE_NAMES);r.left=(r.left||0)-r.rx,r.top=(r.top||0)-r.ry,n(new t.Ellipse(r))},t.Ellipse.fromObject=function(e,n){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,r=this.width,i=this.height,o=-this.width/2,a=-this.height/2,s=0!==t||0!==n,l=.4477152502;e.beginPath(),e.moveTo(o+t,a),e.lineTo(o+r-t,a),s&&e.bezierCurveTo(o+r-l*t,a,o+r,a+l*n,o+r,a+n),e.lineTo(o+r,a+i-n),s&&e.bezierCurveTo(o+r,a+i-l*n,o+r-l*t,a+i,o+r-t,a+i),e.lineTo(o+t,a+i),s&&e.bezierCurveTo(o+l*t,a+i,o,a+i-l*n,o,a+i-n),e.lineTo(o,a+n),s&&e.bezierCurveTo(o,a+l*n,o+l*t,a,o+t,a),e.closePath(),this._renderPaintInOrder(e)},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,r,i){if(!e)return r(null);i=i||{};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(i?t.util.object.clone(i):{},o));a.visible=a.visible&&a.width>0&&a.height>0,r(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,r=t.util.array.min,i=t.util.array.max,o=t.util.toFixed,a=t.util.projectStrokeOnPoints;t.Polyline?t.warn("fabric.Polyline is already defined"):(t.Polyline=t.util.createClass(t.Object,{type:"polyline",points:null,exactBoundingBox:!1,cacheProperties:t.Object.prototype.cacheProperties.concat("points"),initialize:function(e,t){t=t||{},this.points=e||[],this.callSuper("initialize",t),this._setPositionDimensions(t)},_projectStrokeOnPoints:function(){return a(this.points,this,!0)},_setPositionDimensions:function(e){var t,n=this._calcDimensions(e),r=this.exactBoundingBox?this.strokeWidth:0;this.width=n.width-r,this.height=n.height-r,e.fromSVG||(t=this.translateToGivenOrigin({x:n.left-this.strokeWidth/2+r/2,y:n.top-this.strokeWidth/2+r/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+r/2,y:n.top+this.height/2+r/2}},_calcDimensions:function(){var e=this.exactBoundingBox?this._projectStrokeOnPoints():this.points,t=r(e,"x")||0,n=r(e,"y")||0;return{left:t,top:n,width:(i(e,"x")||0)-t,height:(i(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,r=this.pathOffset.y,i=t.Object.NUM_FRACTION_DIGITS,a=0,s=this.points.length;a<s;a++)e.push(o(this.points[a].x-n,i),",",o(this.points[a].y-r,i)," ");return["<"+this.type+" ","COMMON_PARTS",'points="',e.join(""),'" />\n']},commonRender:function(e){var t,n=this.points.length,r=this.pathOffset.x,i=this.pathOffset.y;if(!n||isNaN(this.points[n-1].y))return!1;e.beginPath(),e.moveTo(this.points[0].x-r,this.points[0].y-i);for(var o=0;o<n;o++)t=this.points[o],e.lineTo(t.x-r,t.y-i);return!0},_render:function(e){this.commonRender(e)&&this._renderPaintInOrder(e)},complexity:function(){return this.get("points").length}}),t.Polyline.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat(),t.Polyline.fromElementGenerator=function(e){return function(r,i,o){if(!r)return i(null);o||(o={});var a=t.parsePointsAttribute(r.getAttribute("points")),s=t.parseAttributes(r,t[e].ATTRIBUTE_NAMES);s.fromSVG=!0,i(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={}),n=t.util.projectStrokeOnPoints;t.Polygon?t.warn("fabric.Polygon is already defined"):(t.Polygon=t.util.createClass(t.Polyline,{type:"polygon",_projectStrokeOnPoints:function(){return n(this.points,this)},_render:function(e){this.commonRender(e)&&(e.closePath(),this._renderPaintInOrder(e))}}),t.Polygon.ATTRIBUTE_NAMES=t.SHARED_ATTRIBUTES.concat(),t.Polygon.fromElement=t.Polyline.fromElementGenerator("Polygon"),t.Polygon.fromObject=function(e,n){t.Object._fromObject("Polygon",e,n,"points")})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.array.min,r=t.util.array.max,i=t.util.object.extend,o=t.util.object.clone,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,t){delete(t=o(t||{})).path,this.callSuper("initialize",t),this._setPath(e||[],t)},_setPath:function(e,n){this.path=t.util.makePathSimpler(Array.isArray(e)?e:t.util.parsePath(e)),t.Polyline.prototype._setPositionDimensions.call(this,n||{})},_renderPathCommands:function(e){var t,n=0,r=0,i=0,o=0,a=0,s=0,l=-this.pathOffset.x,c=-this.pathOffset.y;e.beginPath();for(var u=0,d=this.path.length;u<d;++u)switch((t=this.path[u])[0]){case"L":i=t[1],o=t[2],e.lineTo(i+l,o+c);break;case"M":n=i=t[1],r=o=t[2],e.moveTo(i+l,o+c);break;case"C":i=t[5],o=t[6],a=t[3],s=t[4],e.bezierCurveTo(t[1]+l,t[2]+c,a+l,s+c,i+l,o+c);break;case"Q":e.quadraticCurveTo(t[1]+l,t[2]+c,t[3]+l,t[4]+c),i=t[3],o=t[4],a=t[1],s=t[2];break;case"z":case"Z":i=n,o=r,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 i(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="',t.util.joinPath(this.path),'" 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,i,o=[],a=[],s=0,l=0,c=0,u=0,d=0,h=this.path.length;d<h;++d){switch((e=this.path[d])[0]){case"L":c=e[1],u=e[2],i=[];break;case"M":s=c=e[1],l=u=e[2],i=[];break;case"C":i=t.util.getBoundsOfCurve(c,u,e[1],e[2],e[3],e[4],e[5],e[6]),c=e[5],u=e[6];break;case"Q":i=t.util.getBoundsOfCurve(c,u,e[1],e[2],e[1],e[2],e[3],e[4]),c=e[3],u=e[4];break;case"z":case"Z":c=s,u=l}i.forEach((function(e){o.push(e.x),a.push(e.y)})),o.push(c),a.push(u)}var p=n(o)||0,f=n(a)||0;return{left:p,top:f,width:(r(o)||0)-p,height:(r(a)||0)-f}}}),t.Path.fromObject=function(e,n){if("string"===typeof e.sourcePath){var r=e.sourcePath;t.loadSVGFromURL(r,(function(r){var i=r[0];i.setOptions(e),e.clipPath?t.util.enlivenObjects([e.clipPath],(function(e){i.clipPath=e[0],n&&n(i)})):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,r){var o=t.parseAttributes(e,t.Path.ATTRIBUTE_NAMES);o.fromSVG=!0,n(new t.Path(o.d,i(o,r)))})}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.util.array.min,r=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 r=this._objects.length;r--;)this._objects[r].group=this;if(n)this._updateObjectsACoords();else{var i=t&&t.centerPoint;void 0!==t.originX&&(this.originX=t.originX),void 0!==t.originY&&(this.originY=t.originY),i||this._calcBounds(),this._updateObjectsCoords(i),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,r=e.top;e.set({left:n-t.x,top:r-t.y}),e.group=this,e.setCoords(!0)},toString:function(){return"#<fabric.Group: ("+this.complexity()+")>"},addWithUpdate:function(e){var n=!!this.group;return this._restoreObjectsState(),t.util.resetObjectTransform(this),e&&(n&&t.util.removeTransformFromObject(e,this.group.calcTransformMatrix()),this._objects.push(e),e.group=this,e._set("canvas",this.canvas)),this._calcBounds(),this._updateObjectsCoords(),this.dirty=!0,n?this.group.addWithUpdate():this.setCoords(),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 r=this._objects.length;if(this.useSetOnGroup)for(;r--;)this._objects[r].setOnGroup(e,n);if("canvas"===e)for(;r--;)this._objects[r]._set(e,n);t.Object.prototype._set.call(this,e,n)},toObject:function(e){var n=this.includeDefaultValues,r=this._objects.filter((function(e){return!e.excludeFromExport})).map((function(t){var r=t.includeDefaultValues;t.includeDefaultValues=n;var i=t.toObject(e);return t.includeDefaultValues=r,i})),i=t.Object.prototype.toObject.call(this,e);return i.objects=r,i},toDatalessObject:function(e){var n,r=this.sourcePath;if(r)n=r;else{var i=this.includeDefaultValues;n=this._objects.map((function(t){var n=t.includeDefaultValues;t.includeDefaultValues=i;var r=t.toDatalessObject(e);return t.includeDefaultValues=n,r}))}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,r=this._objects.length;n<r;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,this.clipPath)},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 r=this.cacheWidth/this.zoomX,i=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-r/2,-i/2,r,i)}return!0}return!1},_restoreObjectsState:function(){var e=this.calcOwnMatrix();return this._objects.forEach((function(n){t.util.addTransformToObject(n,e),delete n.group,n.setCoords()})),this},destroy:function(){return this._objects.forEach((function(e){e.set("dirty",!0)})),this._restoreObjectsState()},dispose:function(){this.callSuper("dispose"),this.forEachObject((function(e){e.dispose&&e.dispose()})),this._objects=[]},toActiveSelection:function(){if(this.canvas){var e=this._objects,n=this.canvas;this._objects=[];var r=this.toObject();delete r.objects;var i=new t.ActiveSelection([]);return i.set(r),i.type="activeSelection",n.remove(this),e.forEach((function(e){e.group=i,e.dirty=!0,n.add(e)})),i.canvas=n,i._objects=e,n._activeObject=i,i.setCoords(),i}},ungroupOnCanvas:function(){return this._restoreObjectsState()},setObjectsCoords:function(){return this.forEachObject((function(e){e.setCoords(true)})),this},_calcBounds:function(e){for(var t,n,r,i,o=[],a=[],s=["tr","br","bl","tl"],l=0,c=this._objects.length,u=s.length;l<c;++l){for(r=(t=this._objects[l]).calcACoords(),i=0;i<u;i++)n=s[i],o.push(r[n].x),a.push(r[n].y);t.aCoords=r}this._getBounds(o,a,e)},_getBounds:function(e,i,o){var a=new t.Point(n(e),n(i)),s=new t.Point(r(e),r(i)),l=a.y||0,c=a.x||0,u=s.x-a.x||0,d=s.y-a.y||0;this.width=u,this.height=d,o||this.setPositionByOrigin({x:c,y:l},"left","top")},_toSVG:function(e){for(var t=["<g ","COMMON_PARTS"," >\n"],n=0,r=this._objects.length;n<r;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,r=this._objects.length;n<r;n++)t.push("\t",this._objects[n].toClipPathSVG(e));return this._createBaseClipPathSVGMarkup(t,{reviver:e})}}),t.Group.fromObject=function(e,n){var r=e.objects,i=t.util.object.clone(e,!0);delete i.objects,"string"!==typeof r?t.util.enlivenObjects(r,(function(r){t.util.enlivenObjectEnlivables(e,i,(function(){n&&n(new t.Group(r,i,!0))}))})):t.loadSVGFromURL(r,(function(o){var a=t.util.groupSVGElements(o,e,r),s=i.clipPath;delete i.clipPath,a.set(i),s?t.util.enlivenObjects([s],(function(e){a.clipPath=e[0],n&&n(a)})):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 r=this._objects.length;r--;)this._objects[r].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),r=new t.Group([]);if(delete n.type,r.set(n),e.forEach((function(e){e.canvas.remove(e),e.group=r})),r._objects=e,!this.canvas)return r;var i=this.canvas;return i.add(r),i._activeObject=r,r.setCoords(),r},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 r=0,i=this._objects.length;r<i;r++)this._objects[r]._renderControls(e,n);e.restore()}}),t.ActiveSelection.fromObject=function(e,n){t.util.enlivenObjects(e.objects,(function(r){delete e.objects,n&&n(new t.ActiveSelection(r,e,!0))}))})}(t),function(e){"use strict";var t=i.util.object.extend;e.fabric||(e.fabric={}),e.fabric.Image?i.warn("fabric.Image is already defined."):(i.Image=i.util.createClass(i.Object,{type:"image",strokeWidth:0,srcFromAttribute:!1,_lastScaleX:1,_lastScaleY:1,_filterScalingX:1,_filterScalingY:1,minimumScaleTrigger:.5,stateProperties:i.Object.prototype.stateProperties.concat("cropX","cropY"),cacheProperties:i.Object.prototype.cacheProperties.concat("cropX","cropY"),cacheKey:"",cropX:0,cropY:0,imageSmoothing:!0,initialize:function(e,t){t||(t={}),this.filters=[],this.cacheKey="texture"+i.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=i.filterBackend;t&&t.evictCachesForKey&&t.evictCachesForKey(e)},dispose:function(){this.callSuper("dispose"),this.removeTexture(this.cacheKey),this.removeTexture(this.cacheKey+"_filtered"),this._cacheContext=void 0,["_originalElement","_element","_filteredEl","_cacheCanvas"].forEach(function(e){i.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()}},toObject:function(e){var n=[];this.filters.forEach((function(e){e&&n.push(e.toObject())}));var r=t(this.callSuper("toObject",["cropX","cropY"].concat(e)),{src:this.getSrc(),crossOrigin:this.getCrossOrigin(),filters:n});return this.resizeFilter&&(r.resizeFilter=this.resizeFilter.toObject()),r},hasCrop:function(){return this.cropX||this.cropY||this.width<this._element.width||this.height<this._element.height},_toSVG:function(){var e,t=[],n=[],r=this._element,o=-this.width/2,a=-this.height/2,s="",l="";if(!r)return[];if(this.hasCrop()){var c=i.Object.__uid++;t.push('<clipPath id="imageCrop_'+c+'">\n','\t<rect x="'+o+'" y="'+a+'" width="'+this.width+'" height="'+this.height+'" />\n',"</clipPath>\n"),s=' clip-path="url(#imageCrop_'+c+')" '}if(this.imageSmoothing||(l='" image-rendering="optimizeSpeed'),n.push("\t<image ","COMMON_PARTS",'xlink:href="',this.getSvgSrc(!0),'" x="',o-this.cropX,'" y="',a-this.cropY,'" width="',r.width||r.naturalWidth,'" height="',r.height||r.height,l,'"',s,"></image>\n"),this.stroke||this.strokeDashArray){var u=this.fill;this.fill=null,e=["\t<rect ",'x="',o,'" y="',a,'" width="',this.width,'" height="',this.height,'" style="',this.getSvgStyles(),'"/>\n'],this.fill=u}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 i.util.loadImage(e,(function(e,r){this.setElement(e,n),this._setWidthHeight(),t&&t(this,r)}),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(),r=n.scaleX,o=n.scaleY,a=this._filteredEl||this._originalElement;if(this.group&&this.set("dirty",!0),!e||r>t&&o>t)return this._element=a,this._filterScalingX=1,this._filterScalingY=1,this._lastScaleX=r,void(this._lastScaleY=o);i.filterBackend||(i.filterBackend=i.initFilterBackend());var s=i.util.createCanvasElement(),l=this._filteredEl?this.cacheKey+"_filtered":this.cacheKey,c=a.width,u=a.height;s.width=c,s.height=u,this._element=s,this._lastScaleX=e.scaleX=r,this._lastScaleY=e.scaleY=o,i.filterBackend.applyFilters([e],a,c,u,this._element,l),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,r=t.naturalHeight||t.height;if(this._element===this._originalElement){var o=i.util.createCanvasElement();o.width=n,o.height=r,this._element=o,this._filteredEl=o}else this._element=this._filteredEl,this._filteredEl.getContext("2d").clearRect(0,0,n,r),this._lastScaleX=1,this._lastScaleY=1;return i.filterBackend||(i.filterBackend=i.initFilterBackend()),i.filterBackend.applyFilters(e,this._originalElement,n,r,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){i.util.setImageSmoothing(e,this.imageSmoothing),!0!==this.isMoving&&this.resizeFilter&&this._needsResize()&&this.applyResizeFilters(),this._stroke(e),this._renderPaintInOrder(e)},drawCacheOnCanvas:function(e){i.util.setImageSmoothing(e,this.imageSmoothing),i.Object.prototype.drawCacheOnCanvas.call(this,e)},shouldCache:function(){return this.needsItsOwnCache()},_renderFill:function(e){var t=this._element;if(t){var n=this._filterScalingX,r=this._filterScalingY,i=this.width,o=this.height,a=Math.min,s=Math.max,l=s(this.cropX,0),c=s(this.cropY,0),u=t.naturalWidth||t.width,d=t.naturalHeight||t.height,h=l*n,p=c*r,f=a(i*n,u-h),m=a(o*r,d-p),g=-i/2,v=-o/2,y=a(i,u/n-l),b=a(o,d/r-c);t&&e.drawImage(t,h,p,f,m,g,v,y,b)}},_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(i.util.getById(e),t),i.util.addClass(this.getElement(),i.Image.CSS_CANVAS)},_initConfig:function(e){e||(e={}),this.setOptions(e),this._setWidthHeight(e)},_initFilters:function(e,t){e&&e.length?i.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=i.util.parsePreserveAspectRatioAttribute(this.preserveAspectRatio||""),n=this._element.width,r=this._element.height,o=1,a=1,s=0,l=0,c=0,u=0,d=this.width,h=this.height,p={width:d,height:h};return!t||"none"===t.alignX&&"none"===t.alignY?(o=d/n,a=h/r):("meet"===t.meetOrSlice&&(e=(d-n*(o=a=i.util.findScaleToFit(this._element,p)))/2,"Min"===t.alignX&&(s=-e),"Max"===t.alignX&&(s=e),e=(h-r*a)/2,"Min"===t.alignY&&(l=-e),"Max"===t.alignY&&(l=e)),"slice"===t.meetOrSlice&&(e=n-d/(o=a=i.util.findScaleToCover(this._element,p)),"Mid"===t.alignX&&(c=e/2),"Max"===t.alignX&&(c=e),e=r-h/a,"Mid"===t.alignY&&(u=e/2),"Max"===t.alignY&&(u=e),n=d/o,r=h/a)),{width:n,height:r,scaleX:o,scaleY:a,offsetLeft:s,offsetTop:l,cropX:c,cropY:u}}}),i.Image.CSS_CANVAS="canvas-img",i.Image.prototype.getSvgSrc=i.Image.prototype.getSrc,i.Image.fromObject=function(e,t){var n=i.util.object.clone(e);i.util.loadImage(n.src,(function(e,r){r?t&&t(null,!0):i.Image.prototype._initFilters.call(n,n.filters,(function(r){n.filters=r||[],i.Image.prototype._initFilters.call(n,[n.resizeFilter],(function(r){n.resizeFilter=r[0],i.util.enlivenObjectEnlivables(n,n,(function(){var r=new i.Image(e,n);t(r,!1)}))}))}))}),null,n.crossOrigin)},i.Image.fromURL=function(e,t,n){i.util.loadImage(e,(function(e,r){t&&t(new i.Image(e,n),r)}),null,n&&n.crossOrigin)},i.Image.ATTRIBUTE_NAMES=i.SHARED_ATTRIBUTES.concat("x y width height preserveAspectRatio xlink:href crossOrigin image-rendering".split(" ")),i.Image.fromElement=function(e,n,r){var o=i.parseAttributes(e,i.Image.ATTRIBUTE_NAMES);i.Image.fromURL(o["xlink:href"],n,t(r?i.util.object.clone(r):{},o))})}(t),i.util.object.extend(i.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())},fxStraighten:function(e){var t=function(){},n=(e=e||{}).onComplete||t,r=e.onChange||t,o=this;return i.util.animate({target:this,startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(e){o.rotate(e),r()},onComplete:function(){o.setCoords(),n()}})}}),i.util.object.extend(i.StaticCanvas.prototype,{straightenObject:function(e){return e.straighten(),this.requestRenderAll(),this},fxStraightenObject:function(e){return e.fxStraighten({onChange:this.requestRenderAllBound})}}),function(){"use strict";function e(e,t){var n="precision "+t+" float;\nvoid main(){}",r=e.createShader(e.FRAGMENT_SHADER);return e.shaderSource(r,n),e.compileShader(r),!!e.getShaderParameter(r,e.COMPILE_STATUS)}function t(e){e&&e.tileSize&&(this.tileSize=e.tileSize),this.setupGLContext(this.tileSize,this.tileSize),this.captureGPUInfo()}i.isWebglSupported=function(t){if(i.isLikelyNode)return!1;t=t||i.WebglFilterBackend.prototype.tileSize;var n=document.createElement("canvas"),r=n.getContext("webgl")||n.getContext("experimental-webgl"),o=!1;if(r){i.maxTextureSize=r.getParameter(r.MAX_TEXTURE_SIZE),o=i.maxTextureSize>=t;for(var a=["highp","mediump","lowp"],s=0;s<3;s++)if(e(r,a[s])){i.webGlPrecision=a[s];break}}return this.isSupported=o,o},i.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,r="undefined"!==typeof window.performance;try{new ImageData(1,1),n=!0}catch(f){n=!1}var o="undefined"!==typeof ArrayBuffer,l="undefined"!==typeof Uint8ClampedArray;if(r&&n&&o&&l){var c=i.util.createCanvasElement(),u=new ArrayBuffer(e*t*4);if(i.forceGLPutImageData)return this.imageBuffer=u,void(this.copyGLTo2D=s);var d,h,p={imageBuffer:u,destinationWidth:e,destinationHeight:t,targetCanvas:c};c.width=e,c.height=t,d=window.performance.now(),a.call(p,this.gl,p),h=window.performance.now()-d,d=window.performance.now(),s.call(p,this.gl,p),h>window.performance.now()-d?(this.imageBuffer=u,this.copyGLTo2D=s):this.copyGLTo2D=a}},createWebGLCanvas:function(e,t){var n=i.util.createCanvasElement();n.width=e,n.height=t;var r={alpha:!0,premultipliedAlpha:!1,depth:!1,stencil:!1,antialias:!1},o=n.getContext("webgl",r);o||(o=n.getContext("experimental-webgl",r)),o&&(o.clearColor(0,0,0,0),this.canvas=n,this.gl=o)},applyFilters:function(e,t,n,r,i,o){var a,s=this.gl;o&&(a=this.getCachedTexture(o,t));var l={originalWidth:t.width||t.originalWidth,originalHeight:t.height||t.originalHeight,sourceWidth:n,sourceHeight:r,destinationWidth:n,destinationHeight:r,context:s,sourceTexture:this.createTexture(s,n,r,!a&&t),targetTexture:this.createTexture(s,n,r),originalTexture:a||this.createTexture(s,n,r,!a&&t),passes:e.length,webgl:!0,aPosition:this.aPosition,programCache:this.programCache,pass:0,filterBackend:this,targetCanvas:i},c=s.createFramebuffer();return s.bindFramebuffer(s.FRAMEBUFFER,c),e.forEach((function(e){e&&e.applyTo(l)})),function(e){var t=e.targetCanvas,n=t.width,r=t.height,i=e.destinationWidth,o=e.destinationHeight;n===i&&r===o||(t.width=i,t.height=o)}(l),this.copyGLTo2D(s,l),s.bindTexture(s.TEXTURE_2D,null),s.deleteTexture(l.sourceTexture),s.deleteTexture(l.targetTexture),s.deleteFramebuffer(c),i.getContext("2d").setTransform(1,0,0,1,0,0),l},dispose:function(){this.canvas&&(this.canvas=null,this.gl=null),this.clearWebGLCaches()},clearWebGLCaches:function(){this.programCache={},this.textureCache={}},createTexture:function(e,t,n,r,i){var o=e.createTexture();return e.bindTexture(e.TEXTURE_2D,o),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,i||e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,i||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),r?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,r):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,t,n,0,e.RGBA,e.UNSIGNED_BYTE,null),o},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 r=e.getParameter(n.UNMASKED_RENDERER_WEBGL),i=e.getParameter(n.UNMASKED_VENDOR_WEBGL);r&&(t.renderer=r.toLowerCase()),i&&(t.vendor=i.toLowerCase())}return this.gpuInfo=t,t}}}(),function(){"use strict";var e=function(){};function t(){}i.Canvas2dFilterBackend=t,t.prototype={evictCachesForKey:e,dispose:e,clearWebGLCaches:e,resources:{},applyFilters:function(e,t,n,r,i){var o=i.getContext("2d");o.drawImage(t,0,0,n,r);var a={sourceWidth:n,sourceHeight:r,imageData:o.getImageData(0,0,n,r),originalEl:t,originalImageData:o.getImageData(0,0,n,r),canvasEl:i,ctx:o,filterBackend:this};return e.forEach((function(e){e.applyTo(a)})),a.imageData.width===n&&a.imageData.height===r||(i.width=a.imageData.width,i.height=a.imageData.height),o.putImageData(a.imageData,0,0),a}}}(),i.Image=i.Image||{},i.Image.filters=i.Image.filters||{},i.Image.filters.BaseFilter=i.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"!==i.webGlPrecision&&(t=t.replace(/precision highp float/g,"precision "+i.webGlPrecision+" float"));var r=e.createShader(e.VERTEX_SHADER);if(e.shaderSource(r,n),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS))throw new Error("Vertex shader compile error for "+this.type+": "+e.getShaderInfoLog(r));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,r),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),l=this.getUniformLocations(e,a)||{};return l.uStepW=e.getUniformLocation(a,"uStepW"),l.uStepH=e.getUniformLocation(a,"uStepH"),{program:a,attributeLocations:s,uniformLocations:l}},getAttributeLocations:function(e,t){return{aPosition:e.getAttribLocation(t,"aPosition")}},getUniformLocations:function(){return{}},sendAttributeData:function(e,t,n){var r=t.aPosition,i=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,i),e.enableVertexAttribArray(r),e.vertexAttribPointer(r,2,e.FLOAT,!1,0,0),e.bufferData(e.ARRAY_BUFFER,n,e.STATIC_DRAW)},_setupFrameBuffer:function(e){var t,n,r=e.context;e.passes>1?(t=e.destinationWidth,n=e.destinationHeight,e.sourceWidth===t&&e.sourceHeight===n||(r.deleteTexture(e.targetTexture),e.targetTexture=e.filterBackend.createTexture(r,t,n)),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e.targetTexture,0)):(r.bindFramebuffer(r.FRAMEBUFFER,null),r.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=i.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()}}),i.Image.filters.BaseFilter.fromObject=function(e,t){var n=new i.Image.filters[e.type](e);return t&&t(n),n},function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,r=t.util.createClass;n.ColorMatrix=r(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,r,i,o,a=e.imageData.data,s=a.length,l=this.matrix,c=this.colorsOnly;for(o=0;o<s;o+=4)t=a[o],n=a[o+1],r=a[o+2],c?(a[o]=t*l[0]+n*l[1]+r*l[2]+255*l[4],a[o+1]=t*l[5]+n*l[6]+r*l[7]+255*l[9],a[o+2]=t*l[10]+n*l[11]+r*l[12]+255*l[14]):(i=a[o+3],a[o]=t*l[0]+n*l[1]+r*l[2]+i*l[3]+255*l[4],a[o+1]=t*l[5]+n*l[6]+r*l[7]+i*l[8]+255*l[9],a[o+2]=t*l[10]+n*l[11]+r*l[12]+i*l[13]+255*l[14],a[o+3]=t*l[15]+n*l[16]+r*l[17]+i*l[18]+255*l[19])},getUniformLocations:function(e,t){return{uColorMatrix:e.getUniformLocation(t,"uColorMatrix"),uConstants:e.getUniformLocation(t,"uConstants")}},sendUniformData:function(e,t){var n=this.matrix,r=[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]],i=[n[4],n[9],n[14],n[19]];e.uniformMatrix4fv(t.uColorMatrix,!1,r),e.uniform4fv(t.uConstants,i)}}),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,r=t.util.createClass;n.Brightness=r(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,r=n.length,i=Math.round(255*this.brightness);for(t=0;t<r;t+=4)n[t]=n[t]+i,n[t+1]=n[t+1]+i,n[t+2]=n[t+2]+i}},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,r=t.Image.filters,i=t.util.createClass;r.Convolute=i(r.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),r=this.fragmentSource[n];return e.programCache.hasOwnProperty(n)||(e.programCache[n]=this.createProgram(e.context,r)),e.programCache[n]},applyTo2d:function(e){var t,n,r,i,o,a,s,l,c,u,d,h,p,f=e.imageData,m=f.data,g=this.matrix,v=Math.round(Math.sqrt(g.length)),y=Math.floor(v/2),b=f.width,x=f.height,w=e.ctx.createImageData(b,x),S=w.data,_=this.opaque?1:0;for(d=0;d<x;d++)for(u=0;u<b;u++){for(o=4*(d*b+u),t=0,n=0,r=0,i=0,p=0;p<v;p++)for(h=0;h<v;h++)a=u+h-y,(s=d+p-y)<0||s>=x||a<0||a>=b||(l=4*(s*b+a),c=g[p*v+h],t+=m[l]*c,n+=m[l+1]*c,r+=m[l+2]*c,_||(i+=m[l+3]*c));S[o]=t,S[o+1]=n,S[o+2]=r,S[o+3]=_?m[o+3]:i}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,r=t.util.createClass;n.Grayscale=r(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,r=e.imageData.data,i=r.length,o=this.mode;for(t=0;t<i;t+=4)"average"===o?n=(r[t]+r[t+1]+r[t+2])/3:"lightness"===o?n=(Math.min(r[t],r[t+1],r[t+2])+Math.max(r[t],r[t+1],r[t+2]))/2:"luminosity"===o&&(n=.21*r[t]+.72*r[t+1]+.07*r[t+2]),r[t]=n,r[t+1]=n,r[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,r=t.util.createClass;n.Invert=r(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,r=n.length;for(t=0;t<r;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,r=t.Image.filters,i=t.util.createClass;r.Noise=i(r.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,r=e.imageData.data,i=r.length,o=this.noise;for(t=0,i=r.length;t<i;t+=4)n=(.5-Math.random())*o,r[t]+=n,r[t+1]+=n,r[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,r=t.util.createClass;n.Pixelate=r(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,r,i,o,a,s,l,c,u,d,h=e.imageData,p=h.data,f=h.height,m=h.width;for(n=0;n<f;n+=this.blocksize)for(r=0;r<m;r+=this.blocksize)for(i=p[t=4*n*m+4*r],o=p[t+1],a=p[t+2],s=p[t+3],u=Math.min(n+this.blocksize,f),d=Math.min(r+this.blocksize,m),l=n;l<u;l++)for(c=r;c<d;c++)p[t=4*l*m+4*c]=i,p[t+1]=o,p[t+2]=a,p[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,r=t.Image.filters,i=t.util.createClass;r.RemoveColor=i(r.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,r,i,o,a=e.imageData.data,s=255*this.distance,l=new t.Color(this.color).getSource(),c=[l[0]-s,l[1]-s,l[2]-s],u=[l[0]+s,l[1]+s,l[2]+s];for(n=0;n<a.length;n+=4)r=a[n],i=a[n+1],o=a[n+2],r>c[0]&&i>c[1]&&o>c[2]&&r<u[0]&&i<u[1]&&o<u[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 r=new t.Color(this.color).getSource(),i=parseFloat(this.distance),o=[0+r[0]/255-i,0+r[1]/255-i,0+r[2]/255-i,1],a=[r[0]/255+i,r[1]/255+i,r[2]/255+i,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,r=t.util.createClass,i={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 i)n[o]=r(n.ColorMatrix,{type:o,matrix:i[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,r=t.util.createClass;n.BlendColor=r(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,r,i,o,a,s,l,c=e.imageData.data,u=c.length,d=1-this.alpha;n=(l=new t.Color(this.color).getSource())[0]*this.alpha,r=l[1]*this.alpha,i=l[2]*this.alpha;for(var h=0;h<u;h+=4)switch(o=c[h],a=c[h+1],s=c[h+2],this.mode){case"multiply":c[h]=o*n/255,c[h+1]=a*r/255,c[h+2]=s*i/255;break;case"screen":c[h]=255-(255-o)*(255-n)/255,c[h+1]=255-(255-a)*(255-r)/255,c[h+2]=255-(255-s)*(255-i)/255;break;case"add":c[h]=o+n,c[h+1]=a+r,c[h+2]=s+i;break;case"diff":case"difference":c[h]=Math.abs(o-n),c[h+1]=Math.abs(a-r),c[h+2]=Math.abs(s-i);break;case"subtract":c[h]=o-n,c[h+1]=a-r,c[h+2]=s-i;break;case"darken":c[h]=Math.min(o,n),c[h+1]=Math.min(a,r),c[h+2]=Math.min(s,i);break;case"lighten":c[h]=Math.max(o,n),c[h+1]=Math.max(a,r),c[h+2]=Math.max(s,i);break;case"overlay":c[h]=n<128?2*o*n/255:255-2*(255-o)*(255-n)/255,c[h+1]=r<128?2*a*r/255:255-2*(255-a)*(255-r)/255,c[h+2]=i<128?2*s*i/255:255-2*(255-s)*(255-i)/255;break;case"exclusion":c[h]=n+o-2*n*o/255,c[h+1]=r+a-2*r*a/255,c[h+2]=i+s-2*i*s/255;break;case"tint":c[h]=n+o*d,c[h+1]=r+a*d,c[h+2]=i+s*d}},getUniformLocations:function(e,t){return{uColor:e.getUniformLocation(t,"uColor")}},sendUniformData:function(e,n){var r=new t.Color(this.color).getSource();r[0]=this.alpha*r[0]/255,r[1]=this.alpha*r[1]/255,r[2]=this.alpha*r[2]/255,r[3]=this.alpha,e.uniform4fv(n.uColor,r)},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,r=t.util.createClass;n.BlendImage=r(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,r,i,o,a,s,l,c,u,d,h,p=e.imageData,f=e.filterBackend.resources,m=p.data,g=m.length,v=p.width,y=p.height,b=this.image;f.blendImage||(f.blendImage=t.util.createCanvasElement()),d=(u=f.blendImage).getContext("2d"),u.width!==v||u.height!==y?(u.width=v,u.height=y):d.clearRect(0,0,v,y),d.setTransform(b.scaleX,0,0,b.scaleY,b.left,b.top),d.drawImage(b._element,0,0,v,y),h=d.getImageData(0,0,v,y).data;for(var x=0;x<g;x+=4)switch(a=m[x],s=m[x+1],l=m[x+2],c=m[x+3],n=h[x],r=h[x+1],i=h[x+2],o=h[x+3],this.mode){case"multiply":m[x]=a*n/255,m[x+1]=s*r/255,m[x+2]=l*i/255,m[x+3]=c*o/255;break;case"mask":m[x+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(r){var i=t.util.object.clone(e);i.image=r,n(new t.Image.filters.BlendImage(i))}))}}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=Math.pow,r=Math.floor,i=Math.sqrt,o=Math.abs,a=Math.round,s=Math.sin,l=Math.ceil,c=t.Image.filters,u=t.util.createClass;c.Resize=u(c.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 r=this.generateShader(t);e.programCache[n]=this.createProgram(e.context,r)}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(),r=new Array(n),i=1;i<=n;i++)r[i-1]=e(i*t);return r},generateShader:function(e){for(var t=new Array(e),n=this.fragmentSourceTOP,r=1;r<=e;r++)t[r-1]=r+".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,r=this.scaleY;this.rcpScaleX=1/n,this.rcpScaleY=1/r;var i,o=t.width,s=t.height,l=a(o*n),c=a(s*r);"sliceHack"===this.resizeType?i=this.sliceByTwo(e,o,s,l,c):"hermite"===this.resizeType?i=this.hermiteFastResize(e,o,s,l,c):"bilinear"===this.resizeType?i=this.bilinearFiltering(e,o,s,l,c):"lanczos"===this.resizeType&&(i=this.lanczosResize(e,o,s,l,c)),e.imageData=i},sliceByTwo:function(e,n,i,o,a){var s,l,c=e.imageData,u=.5,d=!1,h=!1,p=n*u,f=i*u,m=t.filterBackend.resources,g=0,v=0,y=n,b=0;for(m.sliceByTwo||(m.sliceByTwo=document.createElement("canvas")),((s=m.sliceByTwo).width<1.5*n||s.height<i)&&(s.width=1.5*n,s.height=i),(l=s.getContext("2d")).clearRect(0,0,1.5*n,i),l.putImageData(c,0,0),o=r(o),a=r(a);!d||!h;)n=p,i=f,o<r(p*u)?p=r(p*u):(p=o,d=!0),a<r(f*u)?f=r(f*u):(f=a,h=!0),l.drawImage(s,g,v,n,i,y,b,p,f),g=y,v=b,b+=f;return l.getImageData(g,v,o,a)},lanczosResize:function(e,t,a,s,c){var u=e.imageData.data,d=e.ctx.createImageData(s,c),h=d.data,p=this.lanczosCreate(this.lanczosLobes),f=this.rcpScaleX,m=this.rcpScaleY,g=2/this.rcpScaleX,v=2/this.rcpScaleY,y=l(f*this.lanczosLobes/2),b=l(m*this.lanczosLobes/2),x={},w={},S={};return function e(l){var _,C,E,T,O,N,k,j,I,P,D;for(w.x=(l+.5)*f,S.x=r(w.x),_=0;_<c;_++){for(w.y=(_+.5)*m,S.y=r(w.y),O=0,N=0,k=0,j=0,I=0,C=S.x-y;C<=S.x+y;C++)if(!(C<0||C>=t)){P=r(1e3*o(C-w.x)),x[P]||(x[P]={});for(var A=S.y-b;A<=S.y+b;A++)A<0||A>=a||(D=r(1e3*o(A-w.y)),x[P][D]||(x[P][D]=p(i(n(P*g,2)+n(D*v,2))/1e3)),(E=x[P][D])>0&&(O+=E,N+=E*u[T=4*(A*t+C)],k+=E*u[T+1],j+=E*u[T+2],I+=E*u[T+3]))}h[T=4*(_*s+l)]=N/O,h[T+1]=k/O,h[T+2]=j/O,h[T+3]=I/O}return++l<s?e(l):d}(0)},bilinearFiltering:function(e,t,n,i,o){var a,s,l,c,u,d,h,p,f,m=0,g=this.rcpScaleX,v=this.rcpScaleY,y=4*(t-1),b=e.imageData.data,x=e.ctx.createImageData(i,o),w=x.data;for(l=0;l<o;l++)for(c=0;c<i;c++)for(u=g*c-(a=r(g*c)),d=v*l-(s=r(v*l)),f=4*(s*t+a),h=0;h<4;h++)p=b[f+h]*(1-u)*(1-d)+b[f+4+h]*u*(1-d)+b[f+y+h]*d*(1-u)+b[f+y+4+h]*u*d,w[m++]=p;return x},hermiteFastResize:function(e,t,n,a,s){for(var c=this.rcpScaleX,u=this.rcpScaleY,d=l(c/2),h=l(u/2),p=e.imageData.data,f=e.ctx.createImageData(a,s),m=f.data,g=0;g<s;g++)for(var v=0;v<a;v++){for(var y=4*(v+g*a),b=0,x=0,w=0,S=0,_=0,C=0,E=0,T=(g+.5)*u,O=r(g*u);O<(g+1)*u;O++)for(var N=o(T-(O+.5))/h,k=(v+.5)*c,j=N*N,I=r(v*c);I<(v+1)*c;I++){var P=o(k-(I+.5))/d,D=i(j+P*P);D>1&&D<-1||(b=2*D*D*D-3*D*D+1)>0&&(E+=b*p[(P=4*(I+O*t))+3],w+=b,p[P+3]<255&&(b=b*p[P+3]/250),S+=b*p[P],_+=b*p[P+1],C+=b*p[P+2],x+=b)}m[y]=S/x,m[y+1]=_/x,m[y+2]=C/x,m[y+3]=E/w}return f},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,r=t.util.createClass;n.Contrast=r(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,r=n.length,i=Math.floor(255*this.contrast),o=259*(i+255)/(255*(259-i));for(t=0;t<r;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,r=t.util.createClass;n.Saturation=r(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,r=e.imageData.data,i=r.length,o=-this.saturation;for(t=0;t<i;t+=4)n=Math.max(r[t],r[t+1],r[t+2]),r[t]+=n!==r[t]?(n-r[t])*o:0,r[t+1]+=n!==r[t+1]?(n-r[t+1])*o:0,r[t+2]+=n!==r[t+2]?(n-r[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,r=t.util.createClass;n.Vibrance=r(n.BaseFilter,{type:"Vibrance",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uVibrance;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat max = max(color.r, max(color.g, color.b));\nfloat avg = (color.r + color.g + color.b) / 3.0;\nfloat amt = (abs(max - avg) * 2.0) * uVibrance;\ncolor.r += max != color.r ? (max - color.r) * amt : 0.00;\ncolor.g += max != color.g ? (max - color.g) * amt : 0.00;\ncolor.b += max != color.b ? (max - color.b) * amt : 0.00;\ngl_FragColor = color;\n}",vibrance:0,mainParameter:"vibrance",applyTo2d:function(e){if(0!==this.vibrance){var t,n,r,i,o=e.imageData.data,a=o.length,s=-this.vibrance;for(t=0;t<a;t+=4)n=Math.max(o[t],o[t+1],o[t+2]),r=(o[t]+o[t+1]+o[t+2])/3,i=2*Math.abs(n-r)/255*s,o[t]+=n!==o[t]?(n-o[t])*i:0,o[t+1]+=n!==o[t+1]?(n-o[t+1])*i:0,o[t+2]+=n!==o[t+2]?(n-o[t+2])*i:0}},getUniformLocations:function(e,t){return{uVibrance:e.getUniformLocation(t,"uVibrance")}},sendUniformData:function(e,t){e.uniform1f(t.uVibrance,-this.vibrance)}}),t.Image.filters.Vibrance.fromObject=t.Image.filters.BaseFilter.fromObject}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,r=t.util.createClass;n.Blur=r(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,r,i=e.filterBackend.resources,o=e.imageData.width,a=e.imageData.height;i.blurLayer1||(i.blurLayer1=t.util.createCanvasElement(),i.blurLayer2=t.util.createCanvasElement()),n=i.blurLayer1,r=i.blurLayer2,n.width===o&&n.height===a||(r.width=n.width=o,r.height=n.height=a);var s,l,c,u,d=n.getContext("2d"),h=r.getContext("2d"),p=15,f=.06*this.blur*.5;for(d.putImageData(e.imageData,0,0),h.clearRect(0,0,o,a),u=-15;u<=p;u++)c=f*(l=u/p)*o+(s=(Math.random()-.5)/4),h.globalAlpha=1-Math.abs(l),h.drawImage(n,c,s),d.drawImage(r,0,0),h.globalAlpha=1,h.clearRect(0,0,r.width,r.height);for(u=-15;u<=p;u++)c=f*(l=u/p)*a+(s=(Math.random()-.5)/4),h.globalAlpha=1-Math.abs(l),h.drawImage(n,s,c),d.drawImage(r,0,0),h.globalAlpha=1,h.clearRect(0,0,r.width,r.height);e.ctx.drawImage(n,0,0);var m=e.ctx.getImageData(0,0,n.width,n.height);return d.globalAlpha=1,d.clearRect(0,0,n.width,n.height),m},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,r=t.util.createClass;n.Gamma=r(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,r=this.gamma,i=n.length,o=1/r[0],a=1/r[1],s=1/r[2];for(this.rVals||(this.rVals=new Uint8Array(256),this.gVals=new Uint8Array(256),this.bVals=new Uint8Array(256)),t=0,i=256;t<i;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,i=n.length;t<i;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,r=t.util.createClass;n.Composed=r(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 r=(e.subFilters||[]).map((function(e){return new t.Image.filters[e.type](e)})),i=new t.Image.filters.Composed({subFilters:r});return n&&n(i),i}}(t),function(e){"use strict";var t=e.fabric||(e.fabric={}),n=t.Image.filters,r=t.util.createClass;n.HueRotation=r(n.ColorMatrix,{type:"HueRotation",rotation:0,mainParameter:"rotation",calculateMatrix:function(){var e=this.rotation*Math.PI,n=t.util.cos(e),r=t.util.sin(e),i=1/3,o=Math.sqrt(i)*r,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]=i*a-o,this.matrix[2]=i*a+o,this.matrix[5]=i*a+o,this.matrix[6]=n+i*a,this.matrix[7]=i*a-o,this.matrix[10]=i*a-o,this.matrix[11]=i*a+o,this.matrix[12]=n+i*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;if(t.Text)t.warn("fabric.Text is already defined");else{var r="fontFamily fontWeight fontSize text underline overline linethrough textAlign fontStyle lineHeight textBackgroundColor charSpacing styles direction path pathStartOffset pathSide pathAlign".split(" ");t.Text=t.util.createClass(t.Object,{_dimensionAffectingProps:["fontSize","fontWeight","fontFamily","fontStyle","lineHeight","text","charSpacing","textAlign","styles","path","pathStartOffset","pathSide","pathAlign"],_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(r),cacheProperties:t.Object.prototype.cacheProperties.concat(r),stroke:null,shadow:null,path:null,pathStartOffset:0,pathSide:"left",pathAlign:"baseline",_fontSizeFraction:.222,offsets:{underline:.1,linethrough:-.315,overline:-.88},_fontSizeMult:1.13,charSpacing:0,styles:null,_measuringContext:null,deltaY:0,direction:"ltr",_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.path&&this.setPathInfo(),this.__skipDimension=!1,this.initDimensions(),this.setCoords(),this.setupState({propertySet:"_dimensionAffectingProps"})},setPathInfo:function(){var e=this.path;e&&(e.segmentsInfo=t.util.getPathSegmentsInfo(e.path))},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.path?(this.width=this.path.width,this.height=this.path.height):(this.width=this.calcTextWidth()||this.cursorWidth||this.MIN_TEXT_WIDTH,this.height=this.calcTextHeight()),-1!==this.textAlign.indexOf("justify")&&this.enlargeSpaces(),this.saveState({propertySet:"_dimensionAffectingProps"}))},enlargeSpaces:function(){for(var e,t,n,r,i,o,a,s=0,l=this._textLines.length;s<l;s++)if(("justify"===this.textAlign||s!==l-1&&!this.isEndOfWrapping(s))&&(r=0,i=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 c=0,u=i.length;c<=u;c++)o=this.__charBounds[s][c],this._reSpaceAndTab.test(i[c])?(o.width+=e,o.kernedWidth+=e,o.left+=r,r+=e):o.left+=r}},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){var t=this.path;t&&!t.isNotVisible()&&t._render(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){if(e.textBaseline="alphabetical",this.path)switch(this.pathAlign){case"center":e.textBaseline="middle";break;case"ascender":e.textBaseline="top";break;case"descender":e.textBaseline="bottom"}e.font=this._getFontDeclaration(t,n)},calcTextWidth:function(){for(var e=this.getLineWidth(0),t=1,n=this._textLines.length;t<n;t++){var r=this.getLineWidth(t);r>e&&(e=r)}return e},_renderTextLine:function(e,t,n,r,i,o){this._renderChars(e,t,n,r,i,o)},_renderTextLinesBackground:function(e){if(this.textBackgroundColor||this.styleHas("textBackgroundColor")){for(var t,n,r,i,o,a,s,l=e.fillStyle,c=this._getLeftOffset(),u=this._getTopOffset(),d=0,h=0,p=this.path,f=0,m=this._textLines.length;f<m;f++)if(t=this.getHeightOfLine(f),this.textBackgroundColor||this.styleHas("textBackgroundColor",f)){r=this._textLines[f],n=this._getLineLeftOffset(f),h=0,d=0,i=this.getValueOfPropertyAt(f,0,"textBackgroundColor");for(var g=0,v=r.length;g<v;g++)o=this.__charBounds[f][g],a=this.getValueOfPropertyAt(f,g,"textBackgroundColor"),p?(e.save(),e.translate(o.renderLeft,o.renderTop),e.rotate(o.angle),e.fillStyle=a,a&&e.fillRect(-o.width/2,-t/this.lineHeight*(1-this._fontSizeFraction),o.width,t/this.lineHeight),e.restore()):a!==i?(s=c+n+d,"rtl"===this.direction&&(s=this.width-s-h),e.fillStyle=i,i&&e.fillRect(s,u,h,t/this.lineHeight),d=o.left,h=o.width,i=a):h+=o.kernedWidth;a&&!p&&(s=c+n+d,"rtl"===this.direction&&(s=this.width-s-h),e.fillStyle=a,e.fillRect(s,u,h,t/this.lineHeight)),u+=t}else u+=t;e.fillStyle=l,this._removeShadow(e)}},getFontCache:function(e){var n=e.fontFamily.toLowerCase();t.charWidthsCache[n]||(t.charWidthsCache[n]={});var r=t.charWidthsCache[n],i=e.fontStyle.toLowerCase()+"_"+(e.fontWeight+"").toLowerCase();return r[i]||(r[i]={}),r[i]},_measureChar:function(e,t,n,r){var i,o,a,s,l=this.getFontCache(t),c=n+e,u=this._getFontDeclaration(t)===this._getFontDeclaration(r),d=t.fontSize/this.CACHE_FONT_SIZE;if(n&&void 0!==l[n]&&(a=l[n]),void 0!==l[e]&&(s=i=l[e]),u&&void 0!==l[c]&&(s=(o=l[c])-a),void 0===i||void 0===a||void 0===o){var h=this.getMeasuringContext();this._setTextStyles(h,t,!0)}return void 0===i&&(s=i=h.measureText(e).width,l[e]=i),void 0===a&&u&&n&&(a=h.measureText(n).width,l[n]=a),u&&void 0===o&&(o=h.measureText(c).width,l[c]=o,s=o-a),{width:i*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 n,r,i,o,a,s,l=0,c=this._textLines[e],u=new Array(c.length),d=0,h=this.path,p="right"===this.pathSide;for(this.__charBounds[e]=u,n=0;n<c.length;n++)r=c[n],o=this._getGraphemeBox(r,e,n,i),u[n]=o,l+=o.kernedWidth,i=r;if(u[n]={left:o?o.left+o.width:0,width:0,kernedWidth:0,height:this.fontSize},h){switch(s=h.segmentsInfo[h.segmentsInfo.length-1].length,(a=t.util.getPointOnPath(h.path,0,h.segmentsInfo)).x+=h.pathOffset.x,a.y+=h.pathOffset.y,this.textAlign){case"left":d=p?s-l:0;break;case"center":d=(s-l)/2;break;case"right":d=p?0:s-l}for(d+=this.pathStartOffset*(p?-1:1),n=p?c.length-1:0;p?n>=0:n<c.length;p?n--:n++)o=u[n],d>s?d%=s:d<0&&(d+=s),this._setGraphemeOnPath(d,o,a),d+=o.kernedWidth}return{width:l,numOfSpaces:0}},_setGraphemeOnPath:function(e,n,r){var i=e+n.kernedWidth/2,o=this.path,a=t.util.getPointOnPath(o.path,i,o.segmentsInfo);n.renderLeft=a.x-r.x,n.renderTop=a.y-r.y,n.angle=a.angle+("right"===this.pathSide?Math.PI:0)},_getGraphemeBox:function(e,t,n,r,i){var o,a=this.getCompleteStyleDeclaration(t,n),s=r?this.getCompleteStyleDeclaration(t,n-1):{},l=this._measureChar(e,a,r,s),c=l.kernedWidth,u=l.width;0!==this.charSpacing&&(u+=o=this._getWidthOfCharSpacing(),c+=o);var d={width:u,left:0,height:a.fontSize,kernedWidth:c,deltaY:a.deltaY};if(n>0&&!i){var h=this.__charBounds[t][n-1];d.left=h.left+h.width+l.kernedWidth-l.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),r=1,i=t.length;r<i;r++)n=Math.max(this.getHeightOfChar(e,r),n);return this.__lineHeights[e]=n*this.lineHeight*this._fontSizeMult},calcTextHeight:function(){for(var e,t=0,n=0,r=this._textLines.length;n<r;n++)e=this.getHeightOfLine(n),t+=n===r-1?e/this.lineHeight:e;return t},_getLeftOffset:function(){return"ltr"===this.direction?-this.width/2:this.width/2},_getTopOffset:function(){return-this.height/2},_renderTextCommon:function(e,t){e.save();for(var n=0,r=this._getLeftOffset(),i=this._getTopOffset(),o=0,a=this._textLines.length;o<a;o++){var s=this.getHeightOfLine(o),l=s/this.lineHeight,c=this._getLineLeftOffset(o);this._renderTextLine(t,e,this._textLines[o],r+c,i+n+l,o),n+=s}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,n,r,i,o,a){var s,l,c,u,d,h=this.getHeightOfLine(a),p=-1!==this.textAlign.indexOf("justify"),f="",m=0,g=this.path,v=!p&&0===this.charSpacing&&this.isEmptyStyles(a)&&!g,y="ltr"===this.direction,b="ltr"===this.direction?1:-1,x=n.canvas.getAttribute("dir");if(n.save(),x!==this.direction&&(n.canvas.setAttribute("dir",y?"ltr":"rtl"),n.direction=y?"ltr":"rtl",n.textAlign=y?"left":"right"),o-=h*this._fontSizeFraction/this.lineHeight,v)return this._renderChar(e,n,a,0,r.join(""),i,o,h),void n.restore();for(var w=0,S=r.length-1;w<=S;w++)u=w===S||this.charSpacing||g,f+=r[w],c=this.__charBounds[a][w],0===m?(i+=b*(c.kernedWidth-c.width),m+=c.width):m+=c.kernedWidth,p&&!u&&this._reSpaceAndTab.test(r[w])&&(u=!0),u||(s=s||this.getCompleteStyleDeclaration(a,w),l=this.getCompleteStyleDeclaration(a,w+1),u=t.util.hasStyleChanged(s,l,!1)),u&&(g?(n.save(),n.translate(c.renderLeft,c.renderTop),n.rotate(c.angle),this._renderChar(e,n,a,w,f,-m/2,0,h),n.restore()):(d=i,this._renderChar(e,n,a,w,f,d,o,h)),f="",s=l,i+=b*m,m=0);n.restore()},_applyPatternGradientTransformText:function(e){var n,r=t.util.createCanvasElement(),i=this.width+this.strokeWidth,o=this.height+this.strokeWidth;return r.width=i,r.height=o,(n=r.getContext("2d")).beginPath(),n.moveTo(0,0),n.lineTo(i,0),n.lineTo(i,o),n.lineTo(0,o),n.closePath(),n.translate(i/2,o/2),n.fillStyle=e.toLive(n),this._applyPatternGradientTransform(n,e),n.fill(),n.createPattern(r,"no-repeat")},handleFiller:function(e,t,n){var r,i;return n.toLive?"percentage"===n.gradientUnits||n.gradientTransform||n.patternTransform?(r=-this.width/2,i=-this.height/2,e.translate(r,i),e[t]=this._applyPatternGradientTransformText(n),{offsetX:r,offsetY:i}):(e[t]=n.toLive(e,this),this._applyPatternGradientTransform(e,n)):(e[t]=n,{offsetX:0,offsetY:0})},_setStrokeStyles:function(e,t){return e.lineWidth=t.strokeWidth,e.lineCap=this.strokeLineCap,e.lineDashOffset=this.strokeDashOffset,e.lineJoin=this.strokeLineJoin,e.miterLimit=this.strokeMiterLimit,this.handleFiller(e,"strokeStyle",t.stroke)},_setFillStyles:function(e,t){return this.handleFiller(e,"fillStyle",t.fill)},_renderChar:function(e,t,n,r,i,o,a){var s,l,c=this._getStyleDeclaration(n,r),u=this.getCompleteStyleDeclaration(n,r),d="fillText"===e&&u.fill,h="strokeText"===e&&u.stroke&&u.strokeWidth;(h||d)&&(t.save(),d&&(s=this._setFillStyles(t,u)),h&&(l=this._setStrokeStyles(t,u)),t.font=this._getFontDeclaration(u),c&&c.textBackgroundColor&&this._removeShadow(t),c&&c.deltaY&&(a+=c.deltaY),d&&t.fillText(i,o-s.offsetX,a-s.offsetY),h&&t.strokeText(i,o-l.offsetX,a-l.offsetY),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 r=this.get2DCursorLocation(e,!0),i=this.getValueOfPropertyAt(r.lineIndex,r.charIndex,"fontSize"),o=this.getValueOfPropertyAt(r.lineIndex,r.charIndex,"deltaY"),a={fontSize:i*n.size,deltaY:o+i*n.baseline};return this.setSelectionStyles(a,e,t),this},_getLineLeftOffset:function(e){var t=this.getLineWidth(e),n=this.width-t,r=this.textAlign,i=this.direction,o=0,a=this.isEndOfWrapping(e);return"justify"===r||"justify-center"===r&&!a||"justify-right"===r&&!a||"justify-left"===r&&!a?0:("center"===r&&(o=n/2),"right"===r&&(o=n),"justify-center"===r&&(o=n/2),"justify-right"===r&&(o=n),"rtl"===i&&(o-=n),o)},_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){if(void 0!==this.__lineWidths[e])return this.__lineWidths[e];var t=this.measureLine(e).width;return this.__lineWidths[e]=t,t},_getWidthOfCharSpacing:function(){return 0!==this.charSpacing?this.fontSize*this.charSpacing/1e3:0},getValueOfPropertyAt:function(e,t,n){var r=this._getStyleDeclaration(e,t);return r&&"undefined"!==typeof r[n]?r[n]:this[n]},_renderTextDecoration:function(e,t){if(this[t]||this.styleHas(t)){for(var n,r,i,o,a,s,l,c,u,d,h,p,f,m,g,v,y=this._getLeftOffset(),b=this._getTopOffset(),x=this.path,w=this._getWidthOfCharSpacing(),S=this.offsets[t],_=0,C=this._textLines.length;_<C;_++)if(n=this.getHeightOfLine(_),this[t]||this.styleHas(t,_)){l=this._textLines[_],m=n/this.lineHeight,o=this._getLineLeftOffset(_),d=0,h=0,c=this.getValueOfPropertyAt(_,0,t),v=this.getValueOfPropertyAt(_,0,"fill"),u=b+m*(1-this._fontSizeFraction),r=this.getHeightOfChar(_,0),a=this.getValueOfPropertyAt(_,0,"deltaY");for(var E=0,T=l.length;E<T;E++)if(p=this.__charBounds[_][E],f=this.getValueOfPropertyAt(_,E,t),g=this.getValueOfPropertyAt(_,E,"fill"),i=this.getHeightOfChar(_,E),s=this.getValueOfPropertyAt(_,E,"deltaY"),x&&f&&g)e.save(),e.fillStyle=v,e.translate(p.renderLeft,p.renderTop),e.rotate(p.angle),e.fillRect(-p.kernedWidth/2,S*i+s,p.kernedWidth,this.fontSize/15),e.restore();else if((f!==c||g!==v||i!==r||s!==a)&&h>0){var O=y+o+d;"rtl"===this.direction&&(O=this.width-O-h),c&&v&&(e.fillStyle=v,e.fillRect(O,u+S*r+a,h,this.fontSize/15)),d=p.left,h=p.width,c=f,v=g,r=i,a=s}else h+=p.kernedWidth;O=y+o+d;"rtl"===this.direction&&(O=this.width-O-h),e.fillStyle=g,f&&g&&e.fillRect(O,u+S*r+a,h-w,this.fontSize/15),b+=n}else b+=n;this._removeShadow(e)}},_getFontDeclaration:function(e,n){var r=e||this,i=this.fontFamily,o=t.Text.genericFonts.indexOf(i.toLowerCase())>-1,a=void 0===i||i.indexOf("'")>-1||i.indexOf(",")>-1||i.indexOf('"')>-1||o?r.fontFamily:'"'+r.fontFamily+'"';return[t.isLikelyNode?r.fontWeight:r.fontStyle,t.isLikelyNode?r.fontStyle:r.fontWeight,n?this.CACHE_FONT_SIZE+"px":r.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),r=new Array(n.length),i=["\n"],o=[],a=0;a<n.length;a++)r[a]=t.util.string.graphemeSplit(n[a]),o=o.concat(r[a],i);return o.pop(),{_unwrappedLines:r,lines:n,graphemeText:o,graphemeLines:r}},toObject:function(e){var n=r.concat(e),i=this.callSuper("toObject",n);return i.styles=t.util.stylesToArray(this.styles,this.text),i.path&&(i.path=this.path.toObject()),i},set:function(e,t){this.callSuper("set",e,t);var n=!1,r=!1;if("object"===typeof e)for(var i in e)"path"===i&&this.setPathInfo(),n=n||-1!==this._dimensionAffectingProps.indexOf(i),r=r||"path"===i;else n=-1!==this._dimensionAffectingProps.indexOf(e),r="path"===e;return r&&this.setPathInfo(),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,r,i){if(!e)return r(null);var o=t.parseAttributes(e,t.Text.ATTRIBUTE_NAMES),a=o.textAnchor||"left";if((i=t.util.object.extend(i?n(i):{},o)).top=i.top||0,i.left=i.left||0,o.textDecoration){var s=o.textDecoration;-1!==s.indexOf("underline")&&(i.underline=!0),-1!==s.indexOf("overline")&&(i.overline=!0),-1!==s.indexOf("line-through")&&(i.linethrough=!0),delete i.textDecoration}"dx"in o&&(i.left+=o.dx),"dy"in o&&(i.top+=o.dy),"fontSize"in i||(i.fontSize=t.Text.DEFAULT_SVG_FONT_SIZE);var l="";"textContent"in e?l=e.textContent:"firstChild"in e&&null!==e.firstChild&&"data"in e.firstChild&&null!==e.firstChild.data&&(l=e.firstChild.data),l=l.replace(/^\s+|\s+$|\n+/g,"").replace(/\s+/g," ");var c=i.strokeWidth;i.strokeWidth=0;var u=new t.Text(l,i),d=u.getScaledHeight()/u.height,h=((u.height+u.strokeWidth)*u.lineHeight-u.height)*d,p=u.getScaledHeight()+h,f=0;"center"===a&&(f=u.getScaledWidth()/2),"right"===a&&(f=u.getScaledWidth()),u.set({left:u.left-f,top:u.top-(p-u.fontSize*(.07+u._fontSizeFraction))/u.lineHeight,strokeWidth:"undefined"!==typeof c?c:1}),r(u)},t.Text.fromObject=function(e,r){var i=n(e),o=e.path;return delete i.path,t.Object._fromObject("Text",i,(function(n){n.styles=t.util.stylesFromArray(e.styles,e.text),o?t.Object._fromObject("Path",o,(function(e){n.set("path",e),r(n)}),"path"):r(n)}),"text")},t.Text.genericFonts=["sans-serif","serif","cursive","fantasy","monospace"],t.util.createAccessors&&t.util.createAccessors(t.Text)}}(t),i.util.object.extend(i.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 r in t[n])for(var i in t[n][r])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 r in n)for(var i in n[r])if("undefined"!==typeof n[r][i][e])return!0;return!1},cleanStyle:function(e){if(!this.styles||!e||""===e)return!1;var t,n,r=this.styles,i=0,o=!0,a=0;for(var s in r){for(var l in t=0,r[s]){var c;i++,(c=r[s][l]).hasOwnProperty(e)?(n?c[e]!==n&&(o=!1):n=c[e],c[e]===this[e]&&delete c[e]):o=!1,0!==Object.keys(c).length?t++:delete r[s][l]}0===t&&delete r[s]}for(var u=0;u<this._textLines.length;u++)a+=this._textLines[u].length;o&&i===a&&(this[e]=n,this.removeStyle(e))},removeStyle:function(e){if(this.styles&&e&&""!==e){var t,n,r,i=this.styles;for(n in i){for(r in t=i[n])delete t[r][e],0===Object.keys(t[r]).length&&delete t[r];0===Object.keys(t).length&&delete i[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,{}),i.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,r=n.length,i=0;i<r;i++){if(e<=n[i].length)return{lineIndex:i,charIndex:e};e-=n[i].length+this.missingNewlineOffset(i)}return{lineIndex:i-1,charIndex:n[i-1].length<e?n[i-1].length:e}},getSelectionStyles:function(e,t,n){"undefined"===typeof e&&(e=this.selectionStart||0),"undefined"===typeof t&&(t=this.selectionEnd||e);for(var r=[],i=e;i<t;i++)r.push(this.getStyleAtPosition(i,n));return r},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 r=t;r<n;r++)this._extendStyles(r,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,r=this._getStyleDeclaration(e,t)||{},i={},o=0;o<this._styleProperties.length;o++)i[n=this._styleProperties[o]]="undefined"===typeof r[n]?this[n]:r[n];return i},_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)}i.IText=i.util.createClass(i.Text,i.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,hiddenTextareaContainer:null,_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(),r=this._getCursorBoundariesOffsets(e);return{left:t,top:n,leftOffset:r.left,topOffset:r.top}},_getCursorBoundariesOffsets:function(e){if(this.cursorOffsetCache&&"top"in this.cursorOffsetCache)return this.cursorOffsetCache;var t,n,r,i,o=0,a=0,s=this.get2DCursorLocation(e);r=s.charIndex,n=s.lineIndex;for(var l=0;l<n;l++)o+=this.getHeightOfLine(l);t=this._getLineLeftOffset(n);var c=this.__charBounds[n][r];return c&&(a=c.left),0!==this.charSpacing&&r===this._textLines[n].length&&(a-=this._getWidthOfCharSpacing()),i={top:o,left:t+(a>0?a:0)},"rtl"===this.direction&&(i.left*=-1),this.cursorOffsetCache=i,this.cursorOffsetCache},renderCursor:function(e,t){var n=this.get2DCursorLocation(),r=n.lineIndex,i=n.charIndex>0?n.charIndex-1:0,o=this.getValueOfPropertyAt(r,i,"fontSize"),a=this.scaleX*this.canvas.getZoom(),s=this.cursorWidth/a,l=e.topOffset,c=this.getValueOfPropertyAt(r,i,"deltaY");l+=(1-this._fontSizeFraction)*this.getHeightOfLine(r)/this.lineHeight-o*(1-this._fontSizeFraction),this.inCompositionMode&&this.renderSelection(e,t),t.fillStyle=this.cursorColor||this.getValueOfPropertyAt(r,i,"fill"),t.globalAlpha=this.__isMousedown?1:this._currentCursorOpacity,t.fillRect(e.left+e.leftOffset-s/2,l+e.top+c,s,o)},renderSelection:function(e,t){for(var n=this.inCompositionMode?this.hiddenTextarea.selectionStart:this.selectionStart,r=this.inCompositionMode?this.hiddenTextarea.selectionEnd:this.selectionEnd,i=-1!==this.textAlign.indexOf("justify"),o=this.get2DCursorLocation(n),a=this.get2DCursorLocation(r),s=o.lineIndex,l=a.lineIndex,c=o.charIndex<0?0:o.charIndex,u=a.charIndex<0?0:a.charIndex,d=s;d<=l;d++){var h,p=this._getLineLeftOffset(d)||0,f=this.getHeightOfLine(d),m=0,g=0;if(d===s&&(m=this.__charBounds[s][c].left),d>=s&&d<l)g=i&&!this.isEndOfWrapping(d)?this.width:this.getLineWidth(d)||5;else if(d===l)if(0===u)g=this.__charBounds[l][u].left;else{var v=this._getWidthOfCharSpacing();g=this.__charBounds[l][u-1].left+this.__charBounds[l][u-1].width-v}h=f,(this.lineHeight<1||d===l&&this.lineHeight>1)&&(f/=this.lineHeight);var y=e.left+p+m,b=g-m,x=f,w=0;this.inCompositionMode?(t.fillStyle=this.compositionColor||"black",x=1,w=f):t.fillStyle=this.selectionColor,"rtl"===this.direction&&(y=this.width-y-b),t.fillRect(y,e.top+e.topOffset+w,b,x),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}}}),i.IText.fromObject=function(t,n){var r=i.util.stylesFromArray(t.styles,t.text),o=Object.assign({},t,{styles:r});if(e(o),o.styles)for(var a in o.styles)for(var s in o.styles[a])e(o.styles[a][s]);i.Object._fromObject("IText",o,n,"text")}}(),function(){var e=i.util.object.clone;i.util.object.extend(i.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||[],i.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,r){var i;return i={isAborted:!1,abort:function(){this.isAborted=!0}},e.animate("_currentCursorOpacity",t,{duration:n,onComplete:function(){i.isAborted||e[r]()},onChange:function(){e.canvas&&e.selectionStart===e.selectionEnd&&e.renderCursorOrSelection()},abort:function(){return i.isAborted}}),i},_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,r=this._reSpace.test(n[e])?e-1:e,o=n[r],a=i.reNonWord;!a.test(o)&&r>0&&r<n.length;)o=n[r+=t];return a.test(o)&&(r+=1===t?0:1),r},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){document.activeElement!==this.hiddenTextarea&&this.hiddenTextarea.focus();var t=this.getSelectionStartFromPointer(e.e),n=this.selectionStart,r=this.selectionEnd;(t===this.__selectionStartOnMouseDown&&n!==r||n!==t&&r!==t)&&(t>this.__selectionStartOnMouseDown?(this.selectionStart=this.__selectionStartOnMouseDown,this.selectionEnd=t):(this.selectionStart=t,this.selectionEnd=this.__selectionStartOnMouseDown),this.selectionStart===n&&this.selectionEnd===r||(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 r=n.slice(0,e),o=i.util.string.graphemeSplit(r).length;if(e===t)return{selectionStart:o,selectionEnd:o};var a=n.slice(e,t);return{selectionStart:o,selectionEnd:o+i.util.string.graphemeSplit(a).length}},fromGraphemeToStringSelection:function(e,t,n){var r=n.slice(0,e).join("").length;return e===t?{selectionStart:r,selectionEnd:r}:{selectionStart:r,selectionEnd:r+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),r=n.lineIndex,o=n.charIndex,a=this.getValueOfPropertyAt(r,o,"fontSize")*this.lineHeight,s=t.leftOffset,l=this.calcTransformMatrix(),c={x:t.left+s,y:t.top+t.topOffset+a},u=this.canvas.getRetinaScaling(),d=this.canvas.upperCanvasEl,h=d.width/u,p=d.height/u,f=h-a,m=p-a,g=d.clientWidth/h,v=d.clientHeight/p;return c=i.util.transformPoint(c,l),(c=i.util.transformPoint(c,this.canvas.viewportTransform)).x*=g,c.y*=v,c.x<0&&(c.x=0),c.x>f&&(c.x=f),c.y<0&&(c.y=0),c.y>m&&(c.y=m),c.x+=this.canvas._offset.left,c.y+=this.canvas._offset.top,{left:c.x+"px",top:c.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,r,i=this.get2DCursorLocation(e,!0),o=this.get2DCursorLocation(t,!0),a=i.lineIndex,s=i.charIndex,l=o.lineIndex,c=o.charIndex;if(a!==l){if(this.styles[a])for(n=s;n<this._unwrappedTextLines[a].length;n++)delete this.styles[a][n];if(this.styles[l])for(n=c;n<this._unwrappedTextLines[l].length;n++)(r=this.styles[l][n])&&(this.styles[a]||(this.styles[a]={}),this.styles[a][s+n-c]=r);for(n=a+1;n<=l;n++)delete this.styles[n];this.shiftLineStyles(l,a-l)}else if(this.styles[a]){r=this.styles[a];var u,d,h=c-s;for(n=s;n<c;n++)delete r[n];for(d in this.styles[a])(u=parseInt(d,10))>=c&&(r[u-h]=r[d],delete r[d])}},shiftLineStyles:function(t,n){var r=e(this.styles);for(var i in this.styles){var o=parseInt(i,10);o>t&&(this.styles[o+n]=r[o],r[o-n]||delete this.styles[o])}},restartCursorIfNeeded:function(){this._currentTickState&&!this._currentTickState.isAborted&&this._currentTickCompleteState&&!this._currentTickCompleteState.isAborted||this.initDelayedCursor()},insertNewlineStyleObject:function(t,n,r,i){var o,a={},s=!1,l=this._unwrappedTextLines[t].length===n;for(var c in r||(r=1),this.shiftLineStyles(t,r),this.styles[t]&&(o=this.styles[t][0===n?n:n-1]),this.styles[t]){var u=parseInt(c,10);u>=n&&(s=!0,a[u-n]=this.styles[t][c],l&&0===n||delete this.styles[t][c])}var d=!1;for(s&&!l&&(this.styles[t+r]=a,d=!0),d&&r--;r>0;)i&&i[r-1]?this.styles[t+r]={0:e(i[r-1])}:o?this.styles[t+r]={0:e(o)}:delete this.styles[t+r],r--;this._forceClearCache=!0},insertCharStyleObject:function(t,n,r,i){this.styles||(this.styles={});var o=this.styles[t],a=o?e(o):{};for(var s in r||(r=1),a){var l=parseInt(s,10);l>=n&&(o[l+r]=a[l],a[l-r]||delete o[l])}if(this._forceClearCache=!0,i)for(;r--;)Object.keys(i[r]).length&&(this.styles[t]||(this.styles[t]={}),this.styles[t][n+r]=e(i[r]));else if(o)for(var c=o[n?n-1:1];c&&r--;)this.styles[t][n+r]=e(c)},insertNewStyleBlock:function(e,t,n){for(var r=this.get2DCursorLocation(t,!0),i=[0],o=0,a=0;a<e.length;a++)"\n"===e[a]?i[++o]=0:i[o]++;i[0]>0&&(this.insertCharStyleObject(r.lineIndex,r.charIndex,i[0],n),n=n&&n.slice(i[0]+1)),o&&this.insertNewlineStyleObject(r.lineIndex,r.charIndex+i[0],o);for(a=1;a<o;a++)i[a]>0?this.insertCharStyleObject(r.lineIndex+a,0,i[a],n):n&&this.styles[r.lineIndex+a]&&n[0]&&(this.styles[r.lineIndex+a][0]=n[0]),n=n&&n.slice(i[a]+1);i[a]>0&&this.insertCharStyleObject(r.lineIndex+a,0,i[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)}})}(),i.util.object.extend(i.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,r=this.selectionEnd;e.shiftKey?this.setSelectionStartEndWithShift(n,r,t):(this.selectionStart=t,this.selectionEnd=t),this.isEditing&&(this._fireSelectionChanged(),this._updateTextarea())},getSelectionStartFromPointer:function(e){for(var t,n=this.getLocalPointer(e),r=0,i=0,o=0,a=0,s=0,l=0,c=this._textLines.length;l<c&&o<=n.y;l++)o+=this.getHeightOfLine(l)*this.scaleY,s=l,l>0&&(a+=this._textLines[l-1].length+this.missingNewlineOffset(l-1));i=this._getLineLeftOffset(s)*this.scaleX,t=this._textLines[s],"rtl"===this.direction&&(n.x=this.width*this.scaleX-n.x+i);for(var u=0,d=t.length;u<d&&(r=i,(i+=this.__charBounds[s][u].kernedWidth*this.scaleX)<=n.x);u++)a++;return this._getNewSelectionStartFromOffset(n,r,i,a,d)},_getNewSelectionStartFromOffset:function(e,t,n,r,i){var o=e.x-t,a=n-e.x,s=r+(a>o||a<0?0:1);return this.flipX&&(s=i-s),s>this._text.length&&(s=this._text.length),s}}),i.util.object.extend(i.IText.prototype,{initHiddenTextarea:function(){this.hiddenTextarea=i.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-top: "+e.fontSize+";",this.hiddenTextareaContainer?this.hiddenTextareaContainer.appendChild(this.hiddenTextarea):i.document.body.appendChild(this.hiddenTextarea),i.util.addListener(this.hiddenTextarea,"keydown",this.onKeyDown.bind(this)),i.util.addListener(this.hiddenTextarea,"keyup",this.onKeyUp.bind(this)),i.util.addListener(this.hiddenTextarea,"input",this.onInput.bind(this)),i.util.addListener(this.hiddenTextarea,"copy",this.copy.bind(this)),i.util.addListener(this.hiddenTextarea,"cut",this.copy.bind(this)),i.util.addListener(this.hiddenTextarea,"paste",this.paste.bind(this)),i.util.addListener(this.hiddenTextarea,"compositionstart",this.onCompositionStart.bind(this)),i.util.addListener(this.hiddenTextarea,"compositionupdate",this.onCompositionUpdate.bind(this)),i.util.addListener(this.hiddenTextarea,"compositionend",this.onCompositionEnd.bind(this)),!this._clickHandlerInitialized&&this.canvas&&(i.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"},keysMapRtl:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorLeft",36:"moveCursorRight",37:"moveCursorRight",38:"moveCursorUp",39:"moveCursorLeft",40:"moveCursorDown"},ctrlKeysMapUp:{67:"copy",88:"cut"},ctrlKeysMapDown:{65:"selectAll"},onClick:function(){this.hiddenTextarea&&this.hiddenTextarea.focus()},onKeyDown:function(e){if(this.isEditing){var t="rtl"===this.direction?this.keysMapRtl:this.keysMap;if(e.keyCode in t)this[t[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,r,o,a,s,l=this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,c=this._text.length,u=l.length,d=u-c,h=this.selectionStart,p=this.selectionEnd,f=h!==p;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 m=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value),g=h>m.selectionStart;f?(n=this._text.slice(h,p),d+=p-h):u<c&&(n=g?this._text.slice(p+d,p):this._text.slice(h,h-d)),r=l.slice(m.selectionEnd-d,m.selectionEnd),n&&n.length&&(r.length&&(o=this.getSelectionStyles(h,h+1,!1),o=r.map((function(){return o[0]}))),f?(a=h,s=p):g?(a=p-n.length,s=p):(a=p,s=p+n.length),this.removeStyleFromTo(a,s)),r.length&&(t&&r.join("")===i.copiedText&&!i.disableStyleCopyPaste&&(o=i.copiedTextStyle),this.insertNewStyleBlock(r,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&&(i.copiedText=this.getSelectedText(),i.disableStyleCopyPaste?i.copiedTextStyle=null:i.copiedTextStyle=this.getSelectionStyles(this.selectionStart,this.selectionEnd,!0),this._copyDone=!0)},paste:function(){this.fromPaste=!0},_getClipboardData:function(e){return e&&e.clipboardData||i.window.clipboardData},_getWidthBeforeCursor:function(e,t){var n,r=this._getLineLeftOffset(e);return t>0&&(r+=(n=this.__charBounds[e][t-1]).left+n.width),r},getDownCursorOffset:function(e,t){var n=this._getSelectionForOffset(e,t),r=this.get2DCursorLocation(n),i=r.lineIndex;if(i===this._textLines.length-1||e.metaKey||34===e.keyCode)return this._text.length-n;var o=r.charIndex,a=this._getWidthBeforeCursor(i,o),s=this._getIndexOnLine(i+1,a);return this._textLines[i].slice(o).length+s+1+this.missingNewlineOffset(i)},_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),r=this.get2DCursorLocation(n),i=r.lineIndex;if(0===i||e.metaKey||33===e.keyCode)return-n;var o=r.charIndex,a=this._getWidthBeforeCursor(i,o),s=this._getIndexOnLine(i-1,a),l=this._textLines[i].slice(0,o),c=this.missingNewlineOffset(i-1);return-this._textLines[i-1].length+s-l.length+(1-c)},_getIndexOnLine:function(e,t){for(var n,r,i=this._textLines[e],o=this._getLineLeftOffset(e),a=0,s=0,l=i.length;s<l;s++)if((o+=n=this.__charBounds[e][s].width)>t){r=!0;var c=o-n,u=o,d=Math.abs(c-t);a=Math.abs(u-t)<d?s:s-1;break}return r||(a=i.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 r;if(e.altKey)r=this["findWordBoundary"+n](this[t]);else{if(!e.metaKey&&35!==e.keyCode&&36!==e.keyCode)return this[t]+="Left"===n?-1:1,!0;r=this["findLineBoundary"+n](this[t])}if("undefined"!==typeof r&&this[t]!==r)return this[t]=r,!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,r){"undefined"===typeof r&&(r=n),r>n&&this.removeStyleFromTo(n,r);var o=i.util.string.graphemeSplit(e);this.insertNewStyleBlock(o,n,t),this._text=[].concat(this._text.slice(0,n),o,this._text.slice(r)),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()}}),function(){var e=i.util.toFixed,t=/ +/g;i.util.object.extend(i.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,r=[],i=[],o=e;this._setSVGBg(i);for(var a=0,s=this._textLines.length;a<s;a++)n=this._getLineLeftOffset(a),(this.textBackgroundColor||this.styleHas("textBackgroundColor",a))&&this._setSVGTextLineBg(i,a,t+n,o),this._setSVGTextLineText(r,a,t+n,o),o+=this.getHeightOfLine(a);return{textSpans:r,textBgRects:i}},_createTextCharSpan:function(n,r,o,a){var s=n!==n.trim()||n.match(t),l=this.getSvgSpanStyles(r,s),c=l?'style="'+l+'"':"",u=r.deltaY,d="",h=i.Object.NUM_FRACTION_DIGITS;return u&&(d=' dy="'+e(u,h)+'" '),['<tspan x="',e(o,h),'" y="',e(a,h),'" ',d,c,">",i.util.string.escapeXml(n),"</tspan>"].join("")},_setSVGTextLineText:function(e,t,n,r){var o,a,s,l,c,u=this.getHeightOfLine(t),d=-1!==this.textAlign.indexOf("justify"),h="",p=0,f=this._textLines[t];r+=u*(1-this._fontSizeFraction)/this.lineHeight;for(var m=0,g=f.length-1;m<=g;m++)c=m===g||this.charSpacing,h+=f[m],s=this.__charBounds[t][m],0===p?(n+=s.kernedWidth-s.width,p+=s.width):p+=s.kernedWidth,d&&!c&&this._reSpaceAndTab.test(f[m])&&(c=!0),c||(o=o||this.getCompleteStyleDeclaration(t,m),a=this.getCompleteStyleDeclaration(t,m+1),c=i.util.hasStyleChanged(o,a,!0)),c&&(l=this._getStyleDeclaration(t,m)||{},e.push(this._createTextCharSpan(h,l,n,r)),h="",o=a,n+=p,p=0)},_pushTextBgRect:function(t,n,r,o,a,s){var l=i.Object.NUM_FRACTION_DIGITS;t.push("\t\t<rect ",this._getFillAttributes(n),' x="',e(r,l),'" y="',e(o,l),'" width="',e(a,l),'" height="',e(s,l),'"></rect>\n')},_setSVGTextLineBg:function(e,t,n,r){for(var i,o,a=this._textLines[t],s=this.getHeightOfLine(t)/this.lineHeight,l=0,c=0,u=this.getValueOfPropertyAt(t,0,"textBackgroundColor"),d=0,h=a.length;d<h;d++)i=this.__charBounds[t][d],(o=this.getValueOfPropertyAt(t,d,"textBackgroundColor"))!==u?(u&&this._pushTextBgRect(e,u,n+c,r,l,s),c=i.left,l=i.width,u=o):l+=i.kernedWidth;o&&this._pushTextBgRect(e,o,n+c,r,l,s)},_getFillAttributes:function(e){var t=e&&"string"===typeof e?new i.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,r=0;r<e;r++)n+=this.getHeightOfLine(r);return t=this.getHeightOfLine(r),{lineTop:n,offset:(this._fontSizeMult-this._fontSizeFraction)*t/(this.lineHeight*this._fontSizeMult)}},getSvgStyles:function(e){return i.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,r=0,i={},o=0;o<e.graphemeLines.length;o++)"\n"===e.graphemeText[r]&&o>0?(n=0,r++,t++):!this.splitByGrapheme&&this._reSpaceAndTab.test(e.graphemeText[r])&&o>0&&(n++,r++),i[o]={line:t,offset:n},r+=e.graphemeLines[o].length,n+=e.graphemeLines[o].length;return i},styleHas:function(e,n){if(this._styleMap&&!this.isWrapping){var r=this._styleMap[n];r&&(n=r.line)}return t.Text.prototype.styleHas.call(this,e,n)},isEmptyStyles:function(e){if(!this.styles)return!0;var t,n,r=0,i=!1,o=this._styleMap[e],a=this._styleMap[e+1];for(var s in o&&(e=o.line,r=o.offset),a&&(i=a.line===e,t=a.offset),n="undefined"===typeof e?this.styles:{line:this.styles[e]})for(var l in n[s])if(l>=r&&(!i||l<t))for(var c in n[s][l])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 r=this._styleMap[e];e=r.line,t=r.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,r=[];for(this.isWrapping=!0,n=0;n<e.length;n++)r=r.concat(this._wrapLine(e[n],n,t));return this.isWrapping=!1,r},_measureWord:function(e,t,n){var r,i=0;n=n||0;for(var o=0,a=e.length;o<a;o++){i+=this._getGraphemeBox(e[o],t,o+n,r,true).kernedWidth,r=e[o]}return i},_wrapLine:function(e,n,r,i){var o=0,a=this.splitByGrapheme,s=[],l=[],c=a?t.util.string.graphemeSplit(e):e.split(this._wordJoiners),u="",d=0,h=a?"":" ",p=0,f=0,m=0,g=!0,v=this._getWidthOfCharSpacing();i=i||0;0===c.length&&c.push([]),r-=i;for(var y=0;y<c.length;y++)u=a?c[y]:t.util.string.graphemeSplit(c[y]),p=this._measureWord(u,n,d),d+=u.length,(o+=f+p-v)>r&&!g?(s.push(l),l=[],o=p,g=!0):o+=v,g||a||l.push(h),l=l.concat(u),f=a?0:this._measureWord([h],n,d),d++,g=!1,p>m&&(m=p);return y&&s.push(l),m+i>this.dynamicMinWidth&&(this.dynamicMinWidth=m-v+i),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),r=this._wrapText(n.lines,this.width),i=new Array(r.length),o=0;o<r.length;o++)i[o]=r[o].join("");return n.lines=i,n.graphemeLines=r,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){var r=t.util.stylesFromArray(e.styles,e.text),i=Object.assign({},e,{styles:r});return t.Object._fromObject("Textbox",i,n,"text")}}(t),function(){var e=i.controlsUtils,t=e.scaleSkewCursorStyleHandler,n=e.scaleCursorStyleHandler,r=e.scalingEqually,o=e.scalingYOrSkewingX,a=e.scalingXOrSkewingY,s=e.scaleOrSkewActionName,l=i.Object.prototype.controls;if(l.ml=new i.Control({x:-.5,y:0,cursorStyleHandler:t,actionHandler:a,getActionName:s}),l.mr=new i.Control({x:.5,y:0,cursorStyleHandler:t,actionHandler:a,getActionName:s}),l.mb=new i.Control({x:0,y:.5,cursorStyleHandler:t,actionHandler:o,getActionName:s}),l.mt=new i.Control({x:0,y:-.5,cursorStyleHandler:t,actionHandler:o,getActionName:s}),l.tl=new i.Control({x:-.5,y:-.5,cursorStyleHandler:n,actionHandler:r}),l.tr=new i.Control({x:.5,y:-.5,cursorStyleHandler:n,actionHandler:r}),l.bl=new i.Control({x:-.5,y:.5,cursorStyleHandler:n,actionHandler:r}),l.br=new i.Control({x:.5,y:.5,cursorStyleHandler:n,actionHandler:r}),l.mtr=new i.Control({x:0,y:-.5,actionHandler:e.rotationWithSnapping,cursorStyleHandler:e.rotationStyleHandler,offsetY:-40,withConnection:!0,actionName:"rotate"}),i.Textbox){var c=i.Textbox.prototype.controls={};c.mtr=l.mtr,c.tr=l.tr,c.br=l.br,c.tl=l.tl,c.bl=l.bl,c.mt=l.mt,c.mb=l.mb,c.mr=new i.Control({x:.5,y:0,actionHandler:e.changeWidth,cursorStyleHandler:t,actionName:"resizing"}),c.ml=new i.Control({x:-.5,y:0,actionHandler:e.changeWidth,cursorStyleHandler:t,actionName:"resizing"})}}()},12406:e=>{"use strict";var t="Function.prototype.bind called on incompatible ",n=Object.prototype.toString,r=Math.max,i="[object Function]",o=function(e,t){for(var n=[],r=0;r<e.length;r+=1)n[r]=e[r];for(var i=0;i<t.length;i+=1)n[i+e.length]=t[i];return n},a=function(e,t){for(var n=[],r=t||0,i=0;r<e.length;r+=1,i+=1)n[i]=e[r];return n},s=function(e,t){for(var n="",r=0;r<e.length;r+=1)n+=e[r],r+1<e.length&&(n+=t);return n};e.exports=function(e){var l=this;if("function"!==typeof l||n.apply(l)!==i)throw new TypeError(t+l);for(var c,u=a(arguments,1),d=r(0,l.length-u.length),h=[],p=0;p<d;p++)h[p]="$"+p;if(c=Function("binder","return function ("+s(h,",")+"){ return binder.apply(this,arguments); }")((function(){if(this instanceof c){var t=l.apply(this,o(u,arguments));return Object(t)===t?t:this}return l.apply(e,o(u,arguments))})),l.prototype){var f=function(){};f.prototype=l.prototype,c.prototype=new f,f.prototype=null}return c}},88050:(e,t,n)=>{"use strict";var r=n(12406);e.exports=Function.prototype.bind||r},42780:(e,t,n)=>{"use strict";var r,i=n(41830),o=n(16101),a=n(69715),s=n(64546),l=n(47849),c=n(84968),u=n(68344),d=Function,h=function(e){try{return d('"use strict"; return ('+e+").constructor;")()}catch(t){}},p=Object.getOwnPropertyDescriptor;if(p)try{p({},"")}catch(M){p=null}var f=function(){throw new c},m=p?function(){try{return f}catch(e){try{return p(arguments,"callee").get}catch(t){return f}}}():f,g=n(83895)(),v=n(29571)(),y=Object.getPrototypeOf||(v?function(e){return e.__proto__}:null),b={},x="undefined"!==typeof Uint8Array&&y?y(Uint8Array):r,w={__proto__:null,"%AggregateError%":"undefined"===typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"===typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":g&&y?y([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":b,"%AsyncGenerator%":b,"%AsyncGeneratorFunction%":b,"%AsyncIteratorPrototype%":b,"%Atomics%":"undefined"===typeof Atomics?r:Atomics,"%BigInt%":"undefined"===typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"===typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"===typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"===typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":o,"%Float32Array%":"undefined"===typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"===typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"===typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":d,"%GeneratorFunction%":b,"%Int8Array%":"undefined"===typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"===typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"===typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":g&&y?y(y([][Symbol.iterator]())):r,"%JSON%":"object"===typeof JSON?JSON:r,"%Map%":"undefined"===typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!==typeof Map&&g&&y?y((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"===typeof Promise?r:Promise,"%Proxy%":"undefined"===typeof Proxy?r:Proxy,"%RangeError%":a,"%ReferenceError%":s,"%Reflect%":"undefined"===typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"===typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!==typeof Set&&g&&y?y((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"===typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":g&&y?y(""[Symbol.iterator]()):r,"%Symbol%":g?Symbol:r,"%SyntaxError%":l,"%ThrowTypeError%":m,"%TypedArray%":x,"%TypeError%":c,"%Uint8Array%":"undefined"===typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"===typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"===typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"===typeof Uint32Array?r:Uint32Array,"%URIError%":u,"%WeakMap%":"undefined"===typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"===typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"===typeof WeakSet?r:WeakSet};if(y)try{null.error}catch(M){var S=y(y(M));w["%Error.prototype%"]=S}var _=function e(t){var n;if("%AsyncFunction%"===t)n=h("async function () {}");else if("%GeneratorFunction%"===t)n=h("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=h("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var i=e("%AsyncGenerator%");i&&y&&(n=y(i.prototype))}return w[t]=n,n},C={__proto__:null,"%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"]},E=n(88050),T=n(17652),O=E.call(Function.call,Array.prototype.concat),N=E.call(Function.apply,Array.prototype.splice),k=E.call(Function.call,String.prototype.replace),j=E.call(Function.call,String.prototype.slice),I=E.call(Function.call,RegExp.prototype.exec),P=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,D=/\\(\\)?/g,A=function(e){var t=j(e,0,1),n=j(e,-1);if("%"===t&&"%"!==n)throw new l("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new l("invalid intrinsic syntax, expected opening `%`");var r=[];return k(e,P,(function(e,t,n,i){r[r.length]=n?k(i,D,"$1"):t||e})),r},R=function(e,t){var n,r=e;if(T(C,r)&&(r="%"+(n=C[r])[0]+"%"),T(w,r)){var i=w[r];if(i===b&&(i=_(r)),"undefined"===typeof i&&!t)throw new c("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:i}}throw new l("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!==typeof e||0===e.length)throw new c("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!==typeof t)throw new c('"allowMissing" argument must be a boolean');if(null===I(/^%?[^%]*%?$/,e))throw new l("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=A(e),r=n.length>0?n[0]:"",i=R("%"+r+"%",t),o=i.name,a=i.value,s=!1,u=i.alias;u&&(r=u[0],N(n,O([0,1],u)));for(var d=1,h=!0;d<n.length;d+=1){var f=n[d],m=j(f,0,1),g=j(f,-1);if(('"'===m||"'"===m||"`"===m||'"'===g||"'"===g||"`"===g)&&m!==g)throw new l("property names with quotes must have matching quotes");if("constructor"!==f&&h||(s=!0),T(w,o="%"+(r+="."+f)+"%"))a=w[o];else if(null!=a){if(!(f in a)){if(!t)throw new c("base intrinsic for "+e+" exists, but the property is not available.");return}if(p&&d+1>=n.length){var v=p(a,f);a=(h=!!v)&&"get"in v&&!("originalValue"in v.get)?v.get:a[f]}else h=T(a,f),a=a[f];h&&!s&&(w[o]=a)}}return a}},81687:(e,t,n)=>{"use strict";var r=n(42780)("%Object.getOwnPropertyDescriptor%",!0);if(r)try{r([],"length")}catch(i){r=null}e.exports=r},43597:(e,t,n)=>{"use strict";var r=n(85122),i=function(){return!!r};i.hasArrayLengthDefineBug=function(){if(!r)return null;try{return 1!==r([],"length",{value:1}).length}catch(e){return!0}},e.exports=i},29571:e=>{"use strict";var t={__proto__:null,foo:{}},n=Object;e.exports=function(){return{__proto__:t}.foo===t.foo&&!(t instanceof n)}},83895:(e,t,n)=>{"use strict";var r="undefined"!==typeof Symbol&&Symbol,i=n(75687);e.exports=function(){return"function"===typeof r&&("function"===typeof Symbol&&("symbol"===typeof r("foo")&&("symbol"===typeof Symbol("bar")&&i())))}},75687: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 r=Object.getOwnPropertySymbols(e);if(1!==r.length||r[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"===typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},17652:(e,t,n)=>{"use strict";var r=Function.prototype.call,i=Object.prototype.hasOwnProperty,o=n(88050);e.exports=o.call(r,i)},91668:(e,t,n)=>{"use strict";n.d(t,{lX:()=>_,q_:()=>k,ob:()=>m,PP:()=>I,Ep:()=>f,Hp:()=>g});var r=n(87462);function i(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,i=e.length;r<i;n+=1,r+=1)e[n]=e[r];e.pop()}const a=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],a=t&&t.split("/")||[],s=e&&i(e),l=t&&i(t),c=s||l;if(e&&i(e)?a=r:r.length&&(a.pop(),a=a.concat(r)),!a.length)return"/";if(a.length){var u=a[a.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,h=a.length;h>=0;h--){var p=a[h];"."===p?o(a,h):".."===p?(o(a,h),d++):d&&(o(a,h),d--)}if(!c)for(;d--;d)a.unshift("..");!c||""===a[0]||a[0]&&i(a[0])||a.unshift("");var f=a.join("/");return n&&"/"!==f.substr(-1)&&(f+="/"),f};function s(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}const l=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,r){return e(t,n[r])}));if("object"===typeof t||"object"===typeof n){var r=s(t),i=s(n);return r!==t||i!==n?e(r,i):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1};var c=n(35731);function u(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function h(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 p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,i=t||"/";return n&&"?"!==n&&(i+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(i+="#"===r.charAt(0)?r:"#"+r),i}function m(e,t,n,i){var o;"string"===typeof e?(o=function(e){var t=e||"/",n="",r="",i=t.indexOf("#");-1!==i&&(r=t.substr(i),t=t.substr(0,i));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),i?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=a(o.pathname,i.pathname)):o.pathname=i.pathname:o.pathname||(o.pathname="/"),o}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&l(e.state,t.state)}function v(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,i){if(null!=e){var o="function"===typeof e?e(t,n):e;"string"===typeof o?"function"===typeof r?r(o,i):i(!0):i(!1!==o)}else i(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var y=!("undefined"===typeof window||!window.document||!window.document.createElement);function b(e,t){t(window.confirm(e))}var x="popstate",w="hashchange";function S(){try{return window.history.state||{}}catch(e){return{}}}function _(e){void 0===e&&(e={}),y||(0,c.Z)(!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")),o=e,a=o.forceRefresh,s=void 0!==a&&a,l=o.getUserConfirmation,d=void 0===l?b:l,g=o.keyLength,_=void 0===g?6:g,C=e.basename?p(u(e.basename)):"";function E(e){var t=e||{},n=t.key,r=t.state,i=window.location,o=i.pathname+i.search+i.hash;return C&&(o=h(o,C)),m(o,r,n)}function T(){return Math.random().toString(36).substr(2,_)}var O=v();function N(e){(0,r.Z)(B,e),B.length=t.length,O.notifyListeners(B.location,B.action)}function k(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||P(E(e.state))}function j(){P(E(S()))}var I=!1;function P(e){if(I)I=!1,N();else{O.confirmTransitionTo(e,"POP",d,(function(t){t?N({action:"POP",location:e}):function(e){var t=B.location,n=A.indexOf(t.key);-1===n&&(n=0);var r=A.indexOf(e.key);-1===r&&(r=0);var i=n-r;i&&(I=!0,M(i))}(e)}))}}var D=E(S()),A=[D.key];function R(e){return C+f(e)}function M(e){t.go(e)}var L=0;function F(e){1===(L+=e)&&1===e?(window.addEventListener(x,k),i&&window.addEventListener(w,j)):0===L&&(window.removeEventListener(x,k),i&&window.removeEventListener(w,j))}var z=!1;var B={length:t.length,action:"POP",location:D,createHref:R,push:function(e,r){var i="PUSH",o=m(e,r,T(),B.location);O.confirmTransitionTo(o,i,d,(function(e){if(e){var r=R(o),a=o.key,l=o.state;if(n)if(t.pushState({key:a,state:l},null,r),s)window.location.href=r;else{var c=A.indexOf(B.location.key),u=A.slice(0,c+1);u.push(o.key),A=u,N({action:i,location:o})}else window.location.href=r}}))},replace:function(e,r){var i="REPLACE",o=m(e,r,T(),B.location);O.confirmTransitionTo(o,i,d,(function(e){if(e){var r=R(o),a=o.key,l=o.state;if(n)if(t.replaceState({key:a,state:l},null,r),s)window.location.replace(r);else{var c=A.indexOf(B.location.key);-1!==c&&(A[c]=o.key),N({action:i,location:o})}else window.location.replace(r)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=O.setPrompt(e);return z||(F(1),z=!0),function(){return z&&(z=!1,F(-1)),t()}},listen:function(e){var t=O.appendListener(e);return F(1),function(){F(-1),t()}}};return B}var C="hashchange",E={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+d(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:d,decodePath:u},slash:{encodePath:u,decodePath:u}};function T(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function O(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function N(e){window.location.replace(T(window.location.href)+"#"+e)}function k(e){void 0===e&&(e={}),y||(0,c.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),i=n.getUserConfirmation,o=void 0===i?b:i,a=n.hashType,s=void 0===a?"slash":a,l=e.basename?p(u(e.basename)):"",d=E[s],g=d.encodePath,x=d.decodePath;function w(){var e=x(O());return l&&(e=h(e,l)),m(e)}var S=v();function _(e){(0,r.Z)(B,e),B.length=t.length,S.notifyListeners(B.location,B.action)}var k=!1,j=null;function I(){var e,t,n=O(),r=g(n);if(n!==r)N(r);else{var i=w(),a=B.location;if(!k&&(t=i,(e=a).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(j===f(i))return;j=null,function(e){if(k)k=!1,_();else{var t="POP";S.confirmTransitionTo(e,t,o,(function(n){n?_({action:t,location:e}):function(e){var t=B.location,n=R.lastIndexOf(f(t));-1===n&&(n=0);var r=R.lastIndexOf(f(e));-1===r&&(r=0);var i=n-r;i&&(k=!0,M(i))}(e)}))}}(i)}}var P=O(),D=g(P);P!==D&&N(D);var A=w(),R=[f(A)];function M(e){t.go(e)}var L=0;function F(e){1===(L+=e)&&1===e?window.addEventListener(C,I):0===L&&window.removeEventListener(C,I)}var z=!1;var B={length:t.length,action:"POP",location:A,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=T(window.location.href)),n+"#"+g(l+f(e))},push:function(e,t){var n="PUSH",r=m(e,void 0,void 0,B.location);S.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),i=g(l+t);if(O()!==i){j=t,function(e){window.location.hash=e}(i);var o=R.lastIndexOf(f(B.location)),a=R.slice(0,o+1);a.push(t),R=a,_({action:n,location:r})}else _()}}))},replace:function(e,t){var n="REPLACE",r=m(e,void 0,void 0,B.location);S.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),i=g(l+t);O()!==i&&(j=t,N(i));var o=R.indexOf(f(B.location));-1!==o&&(R[o]=t),_({action:n,location:r})}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=S.setPrompt(e);return z||(F(1),z=!0),function(){return z&&(z=!1,F(-1)),t()}},listen:function(e){var t=S.appendListener(e);return F(1),function(){F(-1),t()}}};return B}function j(e,t,n){return Math.min(Math.max(e,t),n)}function I(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,i=t.initialEntries,o=void 0===i?["/"]:i,a=t.initialIndex,s=void 0===a?0:a,l=t.keyLength,c=void 0===l?6:l,u=v();function d(e){(0,r.Z)(x,e),x.length=x.entries.length,u.notifyListeners(x.location,x.action)}function h(){return Math.random().toString(36).substr(2,c)}var p=j(s,0,o.length-1),g=o.map((function(e){return m(e,void 0,"string"===typeof e?h():e.key||h())})),y=f;function b(e){var t=j(x.index+e,0,x.entries.length-1),r=x.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var x={length:g.length,action:"POP",location:g[p],index:p,entries:g,createHref:y,push:function(e,t){var r="PUSH",i=m(e,t,h(),x.location);u.confirmTransitionTo(i,r,n,(function(e){if(e){var t=x.index+1,n=x.entries.slice(0);n.length>t?n.splice(t,n.length-t,i):n.push(i),d({action:r,location:i,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",i=m(e,t,h(),x.location);u.confirmTransitionTo(i,r,n,(function(e){e&&(x.entries[x.index]=i,d({action:r,location:i}))}))},go:b,goBack:function(){b(-1)},goForward:function(){b(1)},canGo:function(e){var t=x.index+e;return t>=0&&t<x.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return x}},15170:(e,t,n)=>{"use strict";var r=n(70248),i={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 l(e){return r.isMemo(e)?a:s[e.$$typeof]||i}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=a;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,h=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,f=Object.prototype;e.exports=function e(t,n,r){if("string"!==typeof n){if(f){var i=p(n);i&&i!==f&&e(t,i,r)}var a=u(n);d&&(a=a.concat(d(n)));for(var s=l(t),m=l(n),g=0;g<a.length;++g){var v=a[g];if(!o[v]&&(!r||!r[v])&&(!m||!m[v])&&(!s||!s[v])){var y=h(n,v);try{c(t,v,y)}catch(b){}}}}return t}},17943:(e,t)=>{"use strict";var n="function"===typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,i=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,l=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,h=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,f=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,b=n?Symbol.for("react.responder"):60118,x=n?Symbol.for("react.scope"):60119;function w(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case o:case s:case a:case p:return e;default:switch(e=e&&e.$$typeof){case c:case h:case g:case m:case l:return e;default:return t}}case i:return t}}}function S(e){return w(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=h,t.Fragment=o,t.Lazy=g,t.Memo=m,t.Portal=i,t.Profiler=s,t.StrictMode=a,t.Suspense=p,t.isAsyncMode=function(e){return S(e)||w(e)===u},t.isConcurrentMode=S,t.isContextConsumer=function(e){return w(e)===c},t.isContextProvider=function(e){return w(e)===l},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===r},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)===m},t.isPortal=function(e){return w(e)===i},t.isProfiler=function(e){return w(e)===s},t.isStrictMode=function(e){return w(e)===a},t.isSuspense=function(e){return w(e)===p},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===o||e===d||e===s||e===a||e===p||e===f||"object"===typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===l||e.$$typeof===c||e.$$typeof===h||e.$$typeof===y||e.$$typeof===b||e.$$typeof===x||e.$$typeof===v)},t.typeOf=w},70248:(e,t,n)=>{"use strict";e.exports=n(17943)},32733:e=>{"use strict";e.exports=function(e,t,n,r,i,o,a,s){if(!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,r,i,o,a,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},49099:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},22849:(e,t,n)=>{var r=n(72892)(n(57849),"DataView");e.exports=r},90145:(e,t,n)=>{var r=n(29076),i=n(76009),o=n(86992),a=n(59120),s=n(25899);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=i,l.prototype.get=o,l.prototype.has=a,l.prototype.set=s,e.exports=l},18084:(e,t,n)=>{var r=n(29917),i=n(43490),o=n(64872),a=n(21744),s=n(88820);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=i,l.prototype.get=o,l.prototype.has=a,l.prototype.set=s,e.exports=l},44086:(e,t,n)=>{var r=n(72892)(n(57849),"Map");e.exports=r},47059:(e,t,n)=>{var r=n(27161),i=n(65317),o=n(93297),a=n(25771),s=n(633);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}l.prototype.clear=r,l.prototype.delete=i,l.prototype.get=o,l.prototype.has=a,l.prototype.set=s,e.exports=l},42115:(e,t,n)=>{var r=n(72892)(n(57849),"Promise");e.exports=r},70607:(e,t,n)=>{var r=n(72892)(n(57849),"Set");e.exports=r},75304:(e,t,n)=>{var r=n(47059),i=n(93648),o=n(56683);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=i,a.prototype.has=o,e.exports=a},15004:(e,t,n)=>{var r=n(18084),i=n(41662),o=n(97368),a=n(87454),s=n(16596),l=n(32052);function c(e){var t=this.__data__=new r(e);this.size=t.size}c.prototype.clear=i,c.prototype.delete=o,c.prototype.get=a,c.prototype.has=s,c.prototype.set=l,e.exports=c},62279:(e,t,n)=>{var r=n(57849).Symbol;e.exports=r},91385:(e,t,n)=>{var r=n(57849).Uint8Array;e.exports=r},20177:(e,t,n)=>{var r=n(72892)(n(57849),"WeakMap");e.exports=r},12539: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)}},38626:e=>{e.exports=function(e,t,n,r){for(var i=-1,o=null==e?0:e.length;++i<o;){var a=e[i];t(r,a,n(a),e)}return r}},35219:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},82169:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,i=0,o=[];++n<r;){var a=e[n];t(a,n,e)&&(o[i++]=a)}return o}},73784:(e,t,n)=>{var r=n(34698);e.exports=function(e,t){return!!(null==e?0:e.length)&&r(e,t,0)>-1}},58713:e=>{e.exports=function(e,t,n){for(var r=-1,i=null==e?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}},34087:(e,t,n)=>{var r=n(94558),i=n(38492),o=n(46296),a=n(98267),s=n(64764),l=n(34057),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),u=!n&&i(e),d=!n&&!u&&a(e),h=!n&&!u&&!d&&l(e),p=n||u||d||h,f=p?r(e.length,String):[],m=f.length;for(var g in e)!t&&!c.call(e,g)||p&&("length"==g||d&&("offset"==g||"parent"==g)||h&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||s(g,m))||f.push(g);return f}},40341:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}},17174:e=>{e.exports=function(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}},7138:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}},58961:e=>{e.exports=function(e){return e.split("")}},17509:(e,t,n)=>{var r=n(69519),i=n(83272);e.exports=function(e,t,n){(void 0!==n&&!i(e[t],n)||void 0===n&&!(t in e))&&r(e,t,n)}},49237:(e,t,n)=>{var r=n(69519),i=n(83272),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];o.call(e,t)&&i(a,n)&&(void 0!==n||t in e)||r(e,t,n)}},11786:(e,t,n)=>{var r=n(83272);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},30277:(e,t,n)=>{var r=n(46067);e.exports=function(e,t,n,i){return r(e,(function(e,r,o){t(i,e,n(e),o)})),i}},74671:(e,t,n)=>{var r=n(81742),i=n(25484);e.exports=function(e,t){return e&&r(t,i(t),e)}},67950:(e,t,n)=>{var r=n(81742),i=n(71973);e.exports=function(e,t){return e&&r(t,i(t),e)}},69519:(e,t,n)=>{var r=n(5216);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},1952:(e,t,n)=>{var r=n(15004),i=n(35219),o=n(49237),a=n(74671),s=n(67950),l=n(78002),c=n(10073),u=n(62877),d=n(5963),h=n(20922),p=n(99970),f=n(5313),m=n(84279),g=n(96579),v=n(93750),y=n(46296),b=n(98267),x=n(92142),w=n(95188),S=n(77411),_=n(25484),C=n(71973),E=1,T=2,O=4,N="[object Arguments]",k="[object Function]",j="[object GeneratorFunction]",I="[object Object]",P={};P[N]=P["[object Array]"]=P["[object ArrayBuffer]"]=P["[object DataView]"]=P["[object Boolean]"]=P["[object Date]"]=P["[object Float32Array]"]=P["[object Float64Array]"]=P["[object Int8Array]"]=P["[object Int16Array]"]=P["[object Int32Array]"]=P["[object Map]"]=P["[object Number]"]=P[I]=P["[object RegExp]"]=P["[object Set]"]=P["[object String]"]=P["[object Symbol]"]=P["[object Uint8Array]"]=P["[object Uint8ClampedArray]"]=P["[object Uint16Array]"]=P["[object Uint32Array]"]=!0,P["[object Error]"]=P[k]=P["[object WeakMap]"]=!1,e.exports=function e(t,n,D,A,R,M){var L,F=n&E,z=n&T,B=n&O;if(D&&(L=R?D(t,A,R,M):D(t)),void 0!==L)return L;if(!w(t))return t;var U=y(t);if(U){if(L=m(t),!F)return c(t,L)}else{var H=f(t),V=H==k||H==j;if(b(t))return l(t,F);if(H==I||H==N||V&&!R){if(L=z||V?{}:v(t),!F)return z?d(t,s(L,t)):u(t,a(L,t))}else{if(!P[H])return R?t:{};L=g(t,H,F)}}M||(M=new r);var G=M.get(t);if(G)return G;M.set(t,L),S(t)?t.forEach((function(r){L.add(e(r,n,D,r,t,M))})):x(t)&&t.forEach((function(r,i){L.set(i,e(r,n,D,i,t,M))}));var W=U?void 0:(B?z?p:h:z?C:_)(t);return i(W||t,(function(r,i){W&&(r=t[i=r]),o(L,i,e(r,n,D,i,t,M))})),L}},16925:(e,t,n)=>{var r=n(95188),i=Object.create,o=function(){function e(){}return function(t){if(!r(t))return{};if(i)return i(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=o},46067:(e,t,n)=>{var r=n(56713),i=n(79607)(r);e.exports=i},81601:e=>{e.exports=function(e,t,n,r){for(var i=e.length,o=n+(r?1:-1);r?o--:++o<i;)if(t(e[o],o,e))return o;return-1}},54412:(e,t,n)=>{var r=n(17174),i=n(85157);e.exports=function e(t,n,o,a,s){var l=-1,c=t.length;for(o||(o=i),s||(s=[]);++l<c;){var u=t[l];n>0&&o(u)?n>1?e(u,n-1,o,a,s):r(s,u):a||(s[s.length]=u)}return s}},97539:(e,t,n)=>{var r=n(15375)();e.exports=r},56713:(e,t,n)=>{var r=n(97539),i=n(25484);e.exports=function(e,t){return e&&r(e,t,i)}},8013:(e,t,n)=>{var r=n(31534),i=n(6996);e.exports=function(e,t){for(var n=0,o=(t=r(t,e)).length;null!=e&&n<o;)e=e[i(t[n++])];return n&&n==o?e:void 0}},49178:(e,t,n)=>{var r=n(17174),i=n(46296);e.exports=function(e,t,n){var o=t(e);return i(e)?o:r(o,n(e))}},59704:(e,t,n)=>{var r=n(62279),i=n(6419),o=n(66949),a="[object Null]",s="[object Undefined]",l=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?s:a:l&&l in Object(e)?i(e):o(e)}},61964:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},34698:(e,t,n)=>{var r=n(81601),i=n(49690),o=n(44395);e.exports=function(e,t,n){return t===t?o(e,t,n):r(e,i,n)}},43562:(e,t,n)=>{var r=n(59704),i=n(22542),o="[object Arguments]";e.exports=function(e){return i(e)&&r(e)==o}},94193:(e,t,n)=>{var r=n(17345),i=n(22542);e.exports=function e(t,n,o,a,s){return t===n||(null==t||null==n||!i(t)&&!i(n)?t!==t&&n!==n:r(t,n,o,a,e,s))}},17345:(e,t,n)=>{var r=n(15004),i=n(89886),o=n(63811),a=n(80163),s=n(5313),l=n(46296),c=n(98267),u=n(34057),d=1,h="[object Arguments]",p="[object Array]",f="[object Object]",m=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,g,v,y){var b=l(e),x=l(t),w=b?p:s(e),S=x?p:s(t),_=(w=w==h?f:w)==f,C=(S=S==h?f:S)==f,E=w==S;if(E&&c(e)){if(!c(t))return!1;b=!0,_=!1}if(E&&!_)return y||(y=new r),b||u(e)?i(e,t,n,g,v,y):o(e,t,w,n,g,v,y);if(!(n&d)){var T=_&&m.call(e,"__wrapped__"),O=C&&m.call(t,"__wrapped__");if(T||O){var N=T?e.value():e,k=O?t.value():t;return y||(y=new r),v(N,k,n,g,y)}}return!!E&&(y||(y=new r),a(e,t,n,g,v,y))}},90247:(e,t,n)=>{var r=n(5313),i=n(22542),o="[object Map]";e.exports=function(e){return i(e)&&r(e)==o}},56358:(e,t,n)=>{var r=n(15004),i=n(94193),o=1,a=2;e.exports=function(e,t,n,s){var l=n.length,c=l,u=!s;if(null==e)return!c;for(e=Object(e);l--;){var d=n[l];if(u&&d[2]?d[1]!==e[d[0]]:!(d[0]in e))return!1}for(;++l<c;){var h=(d=n[l])[0],p=e[h],f=d[1];if(u&&d[2]){if(void 0===p&&!(h in e))return!1}else{var m=new r;if(s)var g=s(p,f,h,e,t,m);if(!(void 0===g?i(f,p,o|a,s,m):g))return!1}}return!0}},49690:e=>{e.exports=function(e){return e!==e}},70270:(e,t,n)=>{var r=n(81188),i=n(28502),o=n(95188),a=n(21616),s=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,u=l.toString,d=c.hasOwnProperty,h=RegExp("^"+u.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||i(e))&&(r(e)?h:s).test(a(e))}},81594:(e,t,n)=>{var r=n(5313),i=n(22542),o="[object Set]";e.exports=function(e){return i(e)&&r(e)==o}},77088:(e,t,n)=>{var r=n(59704),i=n(18564),o=n(22542),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)&&i(e.length)&&!!a[r(e)]}},67173:(e,t,n)=>{var r=n(61059),i=n(31451),o=n(5887),a=n(46296),s=n(90310);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?a(e)?i(e[0],e[1]):r(e):s(e)}},36539:(e,t,n)=>{var r=n(55241),i=n(8848),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return i(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}},35487:(e,t,n)=>{var r=n(95188),i=n(55241),o=n(97122),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=i(e),n=[];for(var s in e)("constructor"!=s||!t&&a.call(e,s))&&n.push(s);return n}},16484:(e,t,n)=>{var r=n(46067),i=n(75345);e.exports=function(e,t){var n=-1,o=i(e)?Array(e.length):[];return r(e,(function(e,r,i){o[++n]=t(e,r,i)})),o}},61059:(e,t,n)=>{var r=n(56358),i=n(58428),o=n(41452);e.exports=function(e){var t=i(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},31451:(e,t,n)=>{var r=n(94193),i=n(63639),o=n(32183),a=n(32014),s=n(62752),l=n(41452),c=n(6996),u=1,d=2;e.exports=function(e,t){return a(e)&&s(t)?l(c(e),t):function(n){var a=i(n,e);return void 0===a&&a===t?o(n,e):r(t,a,u|d)}}},28141:(e,t,n)=>{var r=n(15004),i=n(17509),o=n(97539),a=n(13149),s=n(95188),l=n(71973),c=n(49864);e.exports=function e(t,n,u,d,h){t!==n&&o(n,(function(o,l){if(h||(h=new r),s(o))a(t,n,l,u,e,d,h);else{var p=d?d(c(t,l),o,l+"",t,n,h):void 0;void 0===p&&(p=o),i(t,l,p)}}),l)}},13149:(e,t,n)=>{var r=n(17509),i=n(78002),o=n(39044),a=n(10073),s=n(93750),l=n(38492),c=n(46296),u=n(55109),d=n(98267),h=n(81188),p=n(95188),f=n(39010),m=n(34057),g=n(49864),v=n(78226);e.exports=function(e,t,n,y,b,x,w){var S=g(e,n),_=g(t,n),C=w.get(_);if(C)r(e,n,C);else{var E=x?x(S,_,n+"",e,t,w):void 0,T=void 0===E;if(T){var O=c(_),N=!O&&d(_),k=!O&&!N&&m(_);E=_,O||N||k?c(S)?E=S:u(S)?E=a(S):N?(T=!1,E=i(_,!0)):k?(T=!1,E=o(_,!0)):E=[]:f(_)||l(_)?(E=S,l(S)?E=v(S):p(S)&&!h(S)||(E=s(_))):T=!1}T&&(w.set(_,E),b(E,_,y,x,w),w.delete(_)),r(e,n,E)}}},16076:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},9270:(e,t,n)=>{var r=n(8013);e.exports=function(e){return function(t){return r(t,e)}}},55199:e=>{var t=Math.ceil,n=Math.max;e.exports=function(e,r,i,o){for(var a=-1,s=n(t((r-e)/(i||1)),0),l=Array(s);s--;)l[o?s:++a]=e,e+=i;return l}},42872:(e,t,n)=>{var r=n(5887),i=n(60485),o=n(37232);e.exports=function(e,t){return o(i(e,t,r),e+"")}},93848:(e,t,n)=>{var r=n(49237),i=n(31534),o=n(64764),a=n(95188),s=n(6996);e.exports=function(e,t,n,l){if(!a(e))return e;for(var c=-1,u=(t=i(t,e)).length,d=u-1,h=e;null!=h&&++c<u;){var p=s(t[c]),f=n;if("__proto__"===p||"constructor"===p||"prototype"===p)return e;if(c!=d){var m=h[p];void 0===(f=l?l(m,p,h):void 0)&&(f=a(m)?m:o(t[c+1])?[]:{})}r(h,p,f),h=h[p]}return e}},24609:(e,t,n)=>{var r=n(71715),i=n(5216),o=n(5887),a=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:o;e.exports=a},12287:e=>{e.exports=function(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(i);++r<i;)o[r]=e[r+t];return o}},40424:(e,t,n)=>{var r=n(46067);e.exports=function(e,t){var n;return r(e,(function(e,r,i){return!(n=t(e,r,i))})),!!n}},94558:e=>{e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},60139:(e,t,n)=>{var r=n(62279),i=n(40341),o=n(46296),a=n(36197),s=1/0,l=r?r.prototype:void 0,c=l?l.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return i(t,e)+"";if(a(t))return c?c.call(t):"";var n=t+"";return"0"==n&&1/t==-s?"-0":n}},10480:(e,t,n)=>{var r=n(86948),i=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(i,""):e}},31702:e=>{e.exports=function(e){return function(t){return e(t)}}},28241:(e,t,n)=>{var r=n(75304),i=n(73784),o=n(58713),a=n(58024),s=n(54289),l=n(35886),c=200;e.exports=function(e,t,n){var u=-1,d=i,h=e.length,p=!0,f=[],m=f;if(n)p=!1,d=o;else if(h>=c){var g=t?null:s(e);if(g)return l(g);p=!1,d=a,m=new r}else m=t?[]:f;e:for(;++u<h;){var v=e[u],y=t?t(v):v;if(v=n||0!==v?v:0,p&&y===y){for(var b=m.length;b--;)if(m[b]===y)continue e;t&&m.push(y),f.push(v)}else d(m,y,n)||(m!==f&&m.push(y),f.push(v))}return f}},32684:(e,t,n)=>{var r=n(31534),i=n(10207),o=n(25472),a=n(6996);e.exports=function(e,t){return t=r(t,e),null==(e=o(e,t))||delete e[a(i(t))]}},58024:e=>{e.exports=function(e,t){return e.has(t)}},44499:(e,t,n)=>{var r=n(5887);e.exports=function(e){return"function"==typeof e?e:r}},31534:(e,t,n)=>{var r=n(46296),i=n(32014),o=n(18502),a=n(51001);e.exports=function(e,t){return r(e)?e:i(e,t)?[e]:o(a(e))}},94864:(e,t,n)=>{var r=n(12287);e.exports=function(e,t,n){var i=e.length;return n=void 0===n?i:n,!t&&n>=i?e:r(e,t,n)}},83226:(e,t,n)=>{var r=n(91385);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},78002:(e,t,n)=>{e=n.nmd(e);var r=n(57849),i=t&&!t.nodeType&&t,o=i&&e&&!e.nodeType&&e,a=o&&o.exports===i?r.Buffer:void 0,s=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}},83544:(e,t,n)=>{var r=n(83226);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},51970:e=>{var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},16754:(e,t,n)=>{var r=n(62279),i=r?r.prototype:void 0,o=i?i.valueOf:void 0;e.exports=function(e){return o?Object(o.call(e)):{}}},39044:(e,t,n)=>{var r=n(83226);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},10073:e=>{e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},81742:(e,t,n)=>{var r=n(49237),i=n(69519);e.exports=function(e,t,n,o){var a=!n;n||(n={});for(var s=-1,l=t.length;++s<l;){var c=t[s],u=o?o(n[c],e[c],c,n,e):void 0;void 0===u&&(u=e[c]),a?i(n,c,u):r(n,c,u)}return n}},62877:(e,t,n)=>{var r=n(81742),i=n(2760);e.exports=function(e,t){return r(e,i(e),t)}},5963:(e,t,n)=>{var r=n(81742),i=n(68825);e.exports=function(e,t){return r(e,i(e),t)}},81401:(e,t,n)=>{var r=n(57849)["__core-js_shared__"];e.exports=r},81670:(e,t,n)=>{var r=n(38626),i=n(30277),o=n(67173),a=n(46296);e.exports=function(e,t){return function(n,s){var l=a(n)?r:i,c=t?t():{};return l(n,e,o(s,2),c)}}},89490:(e,t,n)=>{var r=n(42872),i=n(10335);e.exports=function(e){return r((function(t,n){var r=-1,o=n.length,a=o>1?n[o-1]:void 0,s=o>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,s&&i(n[0],n[1],s)&&(a=o<3?void 0:a,o=1),t=Object(t);++r<o;){var l=n[r];l&&e(t,l,r,a)}return t}))}},79607:(e,t,n)=>{var r=n(75345);e.exports=function(e,t){return function(n,i){if(null==n)return n;if(!r(n))return e(n,i);for(var o=n.length,a=t?o:-1,s=Object(n);(t?a--:++a<o)&&!1!==i(s[a],a,s););return n}}},15375:e=>{e.exports=function(e){return function(t,n,r){for(var i=-1,o=Object(t),a=r(t),s=a.length;s--;){var l=a[e?s:++i];if(!1===n(o[l],l,o))break}return t}}},57918:(e,t,n)=>{var r=n(94864),i=n(98099),o=n(92606),a=n(51001);e.exports=function(e){return function(t){t=a(t);var n=i(t)?o(t):void 0,s=n?n[0]:t.charAt(0),l=n?r(n,1).join(""):t.slice(1);return s[e]()+l}}},77529:(e,t,n)=>{var r=n(55199),i=n(10335),o=n(85850);e.exports=function(e){return function(t,n,a){return a&&"number"!=typeof a&&i(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),r(t,n,a,e)}}},411:(e,t,n)=>{var r=n(57849),i=n(94100),o=n(57630),a=n(51001),s=r.isFinite,l=Math.min;e.exports=function(e){var t=Math[e];return function(e,n){if(e=o(e),(n=null==n?0:l(i(n),292))&&s(e)){var r=(a(e)+"e").split("e"),c=t(r[0]+"e"+(+r[1]+n));return+((r=(a(c)+"e").split("e"))[0]+"e"+(+r[1]-n))}return t(e)}}},54289:(e,t,n)=>{var r=n(70607),i=n(91200),o=n(35886),a=r&&1/o(new r([,-0]))[1]==1/0?function(e){return new r(e)}:i;e.exports=a},96274:(e,t,n)=>{var r=n(39010);e.exports=function(e){return r(e)?void 0:e}},5216:(e,t,n)=>{var r=n(72892),i=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();e.exports=i},89886:(e,t,n)=>{var r=n(75304),i=n(7138),o=n(58024),a=1,s=2;e.exports=function(e,t,n,l,c,u){var d=n&a,h=e.length,p=t.length;if(h!=p&&!(d&&p>h))return!1;var f=u.get(e),m=u.get(t);if(f&&m)return f==t&&m==e;var g=-1,v=!0,y=n&s?new r:void 0;for(u.set(e,t),u.set(t,e);++g<h;){var b=e[g],x=t[g];if(l)var w=d?l(x,b,g,t,e,u):l(b,x,g,e,t,u);if(void 0!==w){if(w)continue;v=!1;break}if(y){if(!i(t,(function(e,t){if(!o(y,t)&&(b===e||c(b,e,n,l,u)))return y.push(t)}))){v=!1;break}}else if(b!==x&&!c(b,x,n,l,u)){v=!1;break}}return u.delete(e),u.delete(t),v}},63811:(e,t,n)=>{var r=n(62279),i=n(91385),o=n(83272),a=n(89886),s=n(69278),l=n(35886),c=1,u=2,d="[object Boolean]",h="[object Date]",p="[object Error]",f="[object Map]",m="[object Number]",g="[object RegExp]",v="[object Set]",y="[object String]",b="[object Symbol]",x="[object ArrayBuffer]",w="[object DataView]",S=r?r.prototype:void 0,_=S?S.valueOf:void 0;e.exports=function(e,t,n,r,S,C,E){switch(n){case w:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case x:return!(e.byteLength!=t.byteLength||!C(new i(e),new i(t)));case d:case h:case m:return o(+e,+t);case p:return e.name==t.name&&e.message==t.message;case g:case y:return e==t+"";case f:var T=s;case v:var O=r&c;if(T||(T=l),e.size!=t.size&&!O)return!1;var N=E.get(e);if(N)return N==t;r|=u,E.set(e,t);var k=a(T(e),T(t),r,S,C,E);return E.delete(e),k;case b:if(_)return _.call(e)==_.call(t)}return!1}},80163:(e,t,n)=>{var r=n(20922),i=1,o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,a,s,l){var c=n&i,u=r(e),d=u.length;if(d!=r(t).length&&!c)return!1;for(var h=d;h--;){var p=u[h];if(!(c?p in t:o.call(t,p)))return!1}var f=l.get(e),m=l.get(t);if(f&&m)return f==t&&m==e;var g=!0;l.set(e,t),l.set(t,e);for(var v=c;++h<d;){var y=e[p=u[h]],b=t[p];if(a)var x=c?a(b,y,p,t,e,l):a(y,b,p,e,t,l);if(!(void 0===x?y===b||s(y,b,n,a,l):x)){g=!1;break}v||(v="constructor"==p)}if(g&&!v){var w=e.constructor,S=t.constructor;w==S||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof S&&S instanceof S||(g=!1)}return l.delete(e),l.delete(t),g}},65573:(e,t,n)=>{var r=n(83298),i=n(60485),o=n(37232);e.exports=function(e){return o(i(e,void 0,r),e+"")}},46099:(e,t,n)=>{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},20922:(e,t,n)=>{var r=n(49178),i=n(2760),o=n(25484);e.exports=function(e){return r(e,o,i)}},99970:(e,t,n)=>{var r=n(49178),i=n(68825),o=n(71973);e.exports=function(e){return r(e,o,i)}},89511:(e,t,n)=>{var r=n(50565);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},58428:(e,t,n)=>{var r=n(62752),i=n(25484);e.exports=function(e){for(var t=i(e),n=t.length;n--;){var o=t[n],a=e[o];t[n]=[o,a,r(a)]}return t}},72892:(e,t,n)=>{var r=n(70270),i=n(97453);e.exports=function(e,t){var n=i(e,t);return r(n)?n:void 0}},36842:(e,t,n)=>{var r=n(38007)(Object.getPrototypeOf,Object);e.exports=r},6419:(e,t,n)=>{var r=n(62279),i=Object.prototype,o=i.hasOwnProperty,a=i.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(l){}var i=a.call(e);return r&&(t?e[s]=n:delete e[s]),i}},2760:(e,t,n)=>{var r=n(82169),i=n(92128),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),r(a(e),(function(t){return o.call(e,t)})))}:i;e.exports=s},68825:(e,t,n)=>{var r=n(17174),i=n(36842),o=n(2760),a=n(92128),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,o(e)),e=i(e);return t}:a;e.exports=s},5313:(e,t,n)=>{var r=n(22849),i=n(44086),o=n(42115),a=n(70607),s=n(20177),l=n(59704),c=n(21616),u="[object Map]",d="[object Promise]",h="[object Set]",p="[object WeakMap]",f="[object DataView]",m=c(r),g=c(i),v=c(o),y=c(a),b=c(s),x=l;(r&&x(new r(new ArrayBuffer(1)))!=f||i&&x(new i)!=u||o&&x(o.resolve())!=d||a&&x(new a)!=h||s&&x(new s)!=p)&&(x=function(e){var t=l(e),n="[object Object]"==t?e.constructor:void 0,r=n?c(n):"";if(r)switch(r){case m:return f;case g:return u;case v:return d;case y:return h;case b:return p}return t}),e.exports=x},97453:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},5538:(e,t,n)=>{var r=n(31534),i=n(38492),o=n(46296),a=n(64764),s=n(18564),l=n(6996);e.exports=function(e,t,n){for(var c=-1,u=(t=r(t,e)).length,d=!1;++c<u;){var h=l(t[c]);if(!(d=null!=e&&n(e,h)))break;e=e[h]}return d||++c!=u?d:!!(u=null==e?0:e.length)&&s(u)&&a(h,u)&&(o(e)||i(e))}},98099:e=>{var t=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return t.test(e)}},29076:(e,t,n)=>{var r=n(18501);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},76009:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},86992:(e,t,n)=>{var r=n(18501),i="__lodash_hash_undefined__",o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return n===i?void 0:n}return o.call(t,e)?t[e]:void 0}},59120:(e,t,n)=>{var r=n(18501),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:i.call(t,e)}},25899:(e,t,n)=>{var r=n(18501),i="__lodash_hash_undefined__";e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?i:t,this}},84279:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},96579:(e,t,n)=>{var r=n(83226),i=n(83544),o=n(51970),a=n(16754),s=n(39044),l="[object Boolean]",c="[object Date]",u="[object Map]",d="[object Number]",h="[object RegExp]",p="[object Set]",f="[object String]",m="[object Symbol]",g="[object ArrayBuffer]",v="[object DataView]",y="[object Float32Array]",b="[object Float64Array]",x="[object Int8Array]",w="[object Int16Array]",S="[object Int32Array]",_="[object Uint8Array]",C="[object Uint8ClampedArray]",E="[object Uint16Array]",T="[object Uint32Array]";e.exports=function(e,t,n){var O=e.constructor;switch(t){case g:return r(e);case l:case c:return new O(+e);case v:return i(e,n);case y:case b:case x:case w:case S:case _:case C:case E:case T:return s(e,n);case u:return new O;case d:case f:return new O(e);case h:return o(e);case p:return new O;case m:return a(e)}}},93750:(e,t,n)=>{var r=n(16925),i=n(36842),o=n(55241);e.exports=function(e){return"function"!=typeof e.constructor||o(e)?{}:r(i(e))}},85157:(e,t,n)=>{var r=n(62279),i=n(38492),o=n(46296),a=r?r.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||i(e)||!!(a&&e&&e[a])}},64764:e=>{var t=9007199254740991,n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,r){var i=typeof e;return!!(r=null==r?t:r)&&("number"==i||"symbol"!=i&&n.test(e))&&e>-1&&e%1==0&&e<r}},10335:(e,t,n)=>{var r=n(83272),i=n(75345),o=n(64764),a=n(95188);e.exports=function(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?i(n)&&o(t,n.length):"string"==s&&t in n)&&r(n[t],e)}},32014:(e,t,n)=>{var r=n(46296),i=n(36197),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!i(e))||(a.test(e)||!o.test(e)||null!=t&&e in Object(t))}},50565:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},28502:(e,t,n)=>{var r=n(81401),i=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=function(e){return!!i&&i in e}},55241:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},62752:(e,t,n)=>{var r=n(95188);e.exports=function(e){return e===e&&!r(e)}},29917:e=>{e.exports=function(){this.__data__=[],this.size=0}},43490:(e,t,n)=>{var r=n(11786),i=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():i.call(t,n,1),--this.size,!0)}},64872:(e,t,n)=>{var r=n(11786);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},21744:(e,t,n)=>{var r=n(11786);e.exports=function(e){return r(this.__data__,e)>-1}},88820:(e,t,n)=>{var r=n(11786);e.exports=function(e,t){var n=this.__data__,i=r(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this}},27161:(e,t,n)=>{var r=n(90145),i=n(18084),o=n(44086);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(o||i),string:new r}}},65317:(e,t,n)=>{var r=n(89511);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},93297:(e,t,n)=>{var r=n(89511);e.exports=function(e){return r(this,e).get(e)}},25771:(e,t,n)=>{var r=n(89511);e.exports=function(e){return r(this,e).has(e)}},633:(e,t,n)=>{var r=n(89511);e.exports=function(e,t){var n=r(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this}},69278:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},41452:e=>{e.exports=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}},75103:(e,t,n)=>{var r=n(9161),i=500;e.exports=function(e){var t=r(e,(function(e){return n.size===i&&n.clear(),e})),n=t.cache;return t}},18501:(e,t,n)=>{var r=n(72892)(Object,"create");e.exports=r},8848:(e,t,n)=>{var r=n(38007)(Object.keys,Object);e.exports=r},97122:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},24542:(e,t,n)=>{e=n.nmd(e);var r=n(46099),i=t&&!t.nodeType&&t,o=i&&e&&!e.nodeType&&e,a=o&&o.exports===i&&r.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},66949:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},38007:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},60485:(e,t,n)=>{var r=n(12539),i=Math.max;e.exports=function(e,t,n){return t=i(void 0===t?e.length-1:t,0),function(){for(var o=arguments,a=-1,s=i(o.length-t,0),l=Array(s);++a<s;)l[a]=o[t+a];a=-1;for(var c=Array(t+1);++a<t;)c[a]=o[a];return c[t]=n(l),r(e,this,c)}}},25472:(e,t,n)=>{var r=n(8013),i=n(12287);e.exports=function(e,t){return t.length<2?e:r(e,i(t,0,-1))}},57849:(e,t,n)=>{var r=n(46099),i="object"==typeof self&&self&&self.Object===Object&&self,o=r||i||Function("return this")();e.exports=o},49864:e=>{e.exports=function(e,t){if(("constructor"!==t||"function"!==typeof e[t])&&"__proto__"!=t)return e[t]}},93648:e=>{var t="__lodash_hash_undefined__";e.exports=function(e){return this.__data__.set(e,t),this}},56683:e=>{e.exports=function(e){return this.__data__.has(e)}},35886:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},37232:(e,t,n)=>{var r=n(24609),i=n(26552)(r);e.exports=i},26552:e=>{var t=800,n=16,r=Date.now;e.exports=function(e){var i=0,o=0;return function(){var a=r(),s=n-(a-o);if(o=a,s>0){if(++i>=t)return arguments[0]}else i=0;return e.apply(void 0,arguments)}}},41662:(e,t,n)=>{var r=n(18084);e.exports=function(){this.__data__=new r,this.size=0}},97368:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},87454:e=>{e.exports=function(e){return this.__data__.get(e)}},16596:e=>{e.exports=function(e){return this.__data__.has(e)}},32052:(e,t,n)=>{var r=n(18084),i=n(44086),o=n(47059),a=200;e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var s=n.__data__;if(!i||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}},44395:e=>{e.exports=function(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}},92606:(e,t,n)=>{var r=n(58961),i=n(98099),o=n(55412);e.exports=function(e){return i(e)?o(e):r(e)}},18502:(e,t,n)=>{var r=n(75103),i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,a=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(i,(function(e,n,r,i){t.push(r?i.replace(o,"$1"):n||e)})),t}));e.exports=a},6996:(e,t,n)=>{var r=n(36197),i=1/0;e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-i?"-0":t}},21616: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""}},86948:e=>{var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},55412:e=>{var t="\\ud800-\\udfff",n="["+t+"]",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",i="\\ud83c[\\udffb-\\udfff]",o="[^"+t+"]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",l="(?:"+r+"|"+i+")"+"?",c="[\\ufe0e\\ufe0f]?",u=c+l+("(?:\\u200d(?:"+[o,a,s].join("|")+")"+c+l+")*"),d="(?:"+[o+r+"?",r,a,s,n].join("|")+")",h=RegExp(i+"(?="+i+")|"+d+u,"g");e.exports=function(e){return e.match(h)||[]}},6381:(e,t,n)=>{var r=n(51001),i=n(17445);e.exports=function(e){return i(r(e).toLowerCase())}},63585:(e,t,n)=>{var r=n(1952),i=1,o=4;e.exports=function(e){return r(e,i|o)}},71715:e=>{e.exports=function(e){return function(){return e}}},57002:(e,t,n)=>{var r=n(95188),i=n(44864),o=n(57630),a="Expected a function",s=Math.max,l=Math.min;e.exports=function(e,t,n){var c,u,d,h,p,f,m=0,g=!1,v=!1,y=!0;if("function"!=typeof e)throw new TypeError(a);function b(t){var n=c,r=u;return c=u=void 0,m=t,h=e.apply(r,n)}function x(e){var n=e-f;return void 0===f||n>=t||n<0||v&&e-m>=d}function w(){var e=i();if(x(e))return S(e);p=setTimeout(w,function(e){var n=t-(e-f);return v?l(n,d-(e-m)):n}(e))}function S(e){return p=void 0,y&&c?b(e):(c=u=void 0,h)}function _(){var e=i(),n=x(e);if(c=arguments,u=this,f=e,n){if(void 0===p)return function(e){return m=e,p=setTimeout(w,t),g?b(e):h}(f);if(v)return clearTimeout(p),p=setTimeout(w,t),b(f)}return void 0===p&&(p=setTimeout(w,t)),h}return t=o(t)||0,r(n)&&(g=!!n.leading,d=(v="maxWait"in n)?s(o(n.maxWait)||0,t):d,y="trailing"in n?!!n.trailing:y),_.cancel=function(){void 0!==p&&clearTimeout(p),m=0,c=f=u=p=void 0},_.flush=function(){return void 0===p?h:S(i())},_}},84142:(e,t,n)=>{e.exports=n(27663)},83272:e=>{e.exports=function(e,t){return e===t||e!==e&&t!==t}},43680:(e,t,n)=>{var r=n(51001),i=/[\\^$.*+?()[\]{}|]/g,o=RegExp(i.source);e.exports=function(e){return(e=r(e))&&o.test(e)?e.replace(i,"\\$&"):e}},83298:(e,t,n)=>{var r=n(54412);e.exports=function(e){return(null==e?0:e.length)?r(e,1):[]}},27663:(e,t,n)=>{var r=n(35219),i=n(46067),o=n(44499),a=n(46296);e.exports=function(e,t){return(a(e)?r:i)(e,o(t))}},63639:(e,t,n)=>{var r=n(8013);e.exports=function(e,t,n){var i=null==e?void 0:r(e,t);return void 0===i?n:i}},46754:(e,t,n)=>{var r=n(69519),i=n(81670),o=Object.prototype.hasOwnProperty,a=i((function(e,t,n){o.call(e,n)?e[n].push(t):r(e,n,[t])}));e.exports=a},32183:(e,t,n)=>{var r=n(61964),i=n(5538);e.exports=function(e,t){return null!=e&&i(e,t,r)}},5887:e=>{e.exports=function(e){return e}},38492:(e,t,n)=>{var r=n(43562),i=n(22542),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,l=r(function(){return arguments}())?r:function(e){return i(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},46296:e=>{var t=Array.isArray;e.exports=t},75345:(e,t,n)=>{var r=n(81188),i=n(18564);e.exports=function(e){return null!=e&&i(e.length)&&!r(e)}},55109:(e,t,n)=>{var r=n(75345),i=n(22542);e.exports=function(e){return i(e)&&r(e)}},98267:(e,t,n)=>{e=n.nmd(e);var r=n(57849),i=n(53388),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,s=a&&a.exports===o?r.Buffer:void 0,l=(s?s.isBuffer:void 0)||i;e.exports=l},85198:(e,t,n)=>{var r=n(36539),i=n(5313),o=n(38492),a=n(46296),s=n(75345),l=n(98267),c=n(55241),u=n(34057),d="[object Map]",h="[object Set]",p=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(s(e)&&(a(e)||"string"==typeof e||"function"==typeof e.splice||l(e)||u(e)||o(e)))return!e.length;var t=i(e);if(t==d||t==h)return!e.size;if(c(e))return!r(e).length;for(var n in e)if(p.call(e,n))return!1;return!0}},85690:(e,t,n)=>{var r=n(94193);e.exports=function(e,t){return r(e,t)}},81188:(e,t,n)=>{var r=n(59704),i=n(95188),o="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",l="[object Proxy]";e.exports=function(e){if(!i(e))return!1;var t=r(e);return t==a||t==s||t==o||t==l}},18564:e=>{var t=9007199254740991;e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=t}},92142:(e,t,n)=>{var r=n(90247),i=n(31702),o=n(24542),a=o&&o.isMap,s=a?i(a):r;e.exports=s},95188:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},22542:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},39010:(e,t,n)=>{var r=n(59704),i=n(36842),o=n(22542),a="[object Object]",s=Function.prototype,l=Object.prototype,c=s.toString,u=l.hasOwnProperty,d=c.call(Object);e.exports=function(e){if(!o(e)||r(e)!=a)return!1;var t=i(e);if(null===t)return!0;var n=u.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==d}},77411:(e,t,n)=>{var r=n(81594),i=n(31702),o=n(24542),a=o&&o.isSet,s=a?i(a):r;e.exports=s},36197:(e,t,n)=>{var r=n(59704),i=n(22542),o="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||i(e)&&r(e)==o}},34057:(e,t,n)=>{var r=n(77088),i=n(31702),o=n(24542),a=o&&o.isTypedArray,s=a?i(a):r;e.exports=s},25484:(e,t,n)=>{var r=n(34087),i=n(36539),o=n(75345);e.exports=function(e){return o(e)?r(e):i(e)}},71973:(e,t,n)=>{var r=n(34087),i=n(35487),o=n(75345);e.exports=function(e){return o(e)?r(e,!0):i(e)}},10207:e=>{e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},99090:(e,t,n)=>{var r=n(40341),i=n(67173),o=n(16484),a=n(46296);e.exports=function(e,t){return(a(e)?r:o)(e,i(t,3))}},9161:(e,t,n)=>{var r=n(47059),i="Expected a function";function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(i);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(o.Cache||r),n}o.Cache=r,e.exports=o},3186:(e,t,n)=>{var r=n(28141),i=n(89490)((function(e,t,n){r(e,t,n)}));e.exports=i},51804:(e,t,n)=>{var r=n(28141),i=n(89490)((function(e,t,n,i){r(e,t,n,i)}));e.exports=i},91200:e=>{e.exports=function(){}},44864:(e,t,n)=>{var r=n(57849);e.exports=function(){return r.Date.now()}},87863:(e,t,n)=>{var r=n(40341),i=n(1952),o=n(32684),a=n(31534),s=n(81742),l=n(96274),c=n(65573),u=n(99970),d=c((function(e,t){var n={};if(null==e)return n;var c=!1;t=r(t,(function(t){return t=a(t,e),c||(c=t.length>1),t})),s(e,u(e),n),c&&(n=i(n,7,l));for(var d=t.length;d--;)o(n,t[d]);return n}));e.exports=d},90310:(e,t,n)=>{var r=n(16076),i=n(9270),o=n(32014),a=n(6996);e.exports=function(e){return o(e)?r(a(e)):i(e)}},28925:(e,t,n)=>{var r=n(77529)();e.exports=r},54466:(e,t,n)=>{var r=n(411)("round");e.exports=r},9447:(e,t,n)=>{var r=n(93848);e.exports=function(e,t,n){return null==e?e:r(e,t,n)}},26364:(e,t,n)=>{var r=n(7138),i=n(67173),o=n(40424),a=n(46296),s=n(10335);e.exports=function(e,t,n){var l=a(e)?r:o;return n&&s(e,t,n)&&(t=void 0),l(e,i(t,3))}},92128:e=>{e.exports=function(){return[]}},53388:e=>{e.exports=function(){return!1}},43832:(e,t,n)=>{var r=n(57002),i=n(95188),o="Expected a function";e.exports=function(e,t,n){var a=!0,s=!0;if("function"!=typeof e)throw new TypeError(o);return i(n)&&(a="leading"in n?!!n.leading:a,s="trailing"in n?!!n.trailing:s),r(e,t,{leading:a,maxWait:t,trailing:s})}},85850:(e,t,n)=>{var r=n(57630),i=1/0,o=17976931348623157e292;e.exports=function(e){return e?(e=r(e))===i||e===-i?(e<0?-1:1)*o:e===e?e:0:0===e?e:0}},94100:(e,t,n)=>{var r=n(85850);e.exports=function(e){var t=r(e),n=t%1;return t===t?n?t-n:t:0}},57630:(e,t,n)=>{var r=n(10480),i=n(95188),o=n(36197),a=NaN,s=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,u=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return a;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=r(e);var n=l.test(e);return n||c.test(e)?u(e.slice(2),n?2:8):s.test(e)?a:+e}},78226:(e,t,n)=>{var r=n(81742),i=n(71973);e.exports=function(e){return r(e,i(e))}},51001:(e,t,n)=>{var r=n(60139);e.exports=function(e){return null==e?"":r(e)}},60619:(e,t,n)=>{var r=n(67173),i=n(28241);e.exports=function(e,t){return e&&e.length?i(e,r(t,2)):[]}},17445:(e,t,n)=>{var r=n(57918)("toUpperCase");e.exports=r},5083:e=>{"use strict";e.exports=function(e){for(var t=function(e){var t,n=1+(e.length+8>>6),r=new Array(16*n);for(t=0;t<16*n;t++)r[t]=0;for(t=0;t<e.length;t++)r[t>>2]|=e.charCodeAt(t)<<(8*e.length+t)%4*8;r[t>>2]|=128<<(8*e.length+t)%4*8;var i=8*e.length;return r[16*n-2]=255&i,r[16*n-2]|=(i>>>8&255)<<8,r[16*n-2]|=(i>>>16&255)<<16,r[16*n-2]|=(i>>>24&255)<<24,r}(e),n=1732584193,r=-271733879,i=-1732584194,s=271733878,h=0;h<t.length;h+=16){var p=n,f=r,m=i,g=s;n=l(n,r,i,s,t[h+0],7,-680876936),s=l(s,n,r,i,t[h+1],12,-389564586),i=l(i,s,n,r,t[h+2],17,606105819),r=l(r,i,s,n,t[h+3],22,-1044525330),n=l(n,r,i,s,t[h+4],7,-176418897),s=l(s,n,r,i,t[h+5],12,1200080426),i=l(i,s,n,r,t[h+6],17,-1473231341),r=l(r,i,s,n,t[h+7],22,-45705983),n=l(n,r,i,s,t[h+8],7,1770035416),s=l(s,n,r,i,t[h+9],12,-1958414417),i=l(i,s,n,r,t[h+10],17,-42063),r=l(r,i,s,n,t[h+11],22,-1990404162),n=l(n,r,i,s,t[h+12],7,1804603682),s=l(s,n,r,i,t[h+13],12,-40341101),i=l(i,s,n,r,t[h+14],17,-1502002290),n=c(n,r=l(r,i,s,n,t[h+15],22,1236535329),i,s,t[h+1],5,-165796510),s=c(s,n,r,i,t[h+6],9,-1069501632),i=c(i,s,n,r,t[h+11],14,643717713),r=c(r,i,s,n,t[h+0],20,-373897302),n=c(n,r,i,s,t[h+5],5,-701558691),s=c(s,n,r,i,t[h+10],9,38016083),i=c(i,s,n,r,t[h+15],14,-660478335),r=c(r,i,s,n,t[h+4],20,-405537848),n=c(n,r,i,s,t[h+9],5,568446438),s=c(s,n,r,i,t[h+14],9,-1019803690),i=c(i,s,n,r,t[h+3],14,-187363961),r=c(r,i,s,n,t[h+8],20,1163531501),n=c(n,r,i,s,t[h+13],5,-1444681467),s=c(s,n,r,i,t[h+2],9,-51403784),i=c(i,s,n,r,t[h+7],14,1735328473),n=u(n,r=c(r,i,s,n,t[h+12],20,-1926607734),i,s,t[h+5],4,-378558),s=u(s,n,r,i,t[h+8],11,-2022574463),i=u(i,s,n,r,t[h+11],16,1839030562),r=u(r,i,s,n,t[h+14],23,-35309556),n=u(n,r,i,s,t[h+1],4,-1530992060),s=u(s,n,r,i,t[h+4],11,1272893353),i=u(i,s,n,r,t[h+7],16,-155497632),r=u(r,i,s,n,t[h+10],23,-1094730640),n=u(n,r,i,s,t[h+13],4,681279174),s=u(s,n,r,i,t[h+0],11,-358537222),i=u(i,s,n,r,t[h+3],16,-722521979),r=u(r,i,s,n,t[h+6],23,76029189),n=u(n,r,i,s,t[h+9],4,-640364487),s=u(s,n,r,i,t[h+12],11,-421815835),i=u(i,s,n,r,t[h+15],16,530742520),n=d(n,r=u(r,i,s,n,t[h+2],23,-995338651),i,s,t[h+0],6,-198630844),s=d(s,n,r,i,t[h+7],10,1126891415),i=d(i,s,n,r,t[h+14],15,-1416354905),r=d(r,i,s,n,t[h+5],21,-57434055),n=d(n,r,i,s,t[h+12],6,1700485571),s=d(s,n,r,i,t[h+3],10,-1894986606),i=d(i,s,n,r,t[h+10],15,-1051523),r=d(r,i,s,n,t[h+1],21,-2054922799),n=d(n,r,i,s,t[h+8],6,1873313359),s=d(s,n,r,i,t[h+15],10,-30611744),i=d(i,s,n,r,t[h+6],15,-1560198380),r=d(r,i,s,n,t[h+13],21,1309151649),n=d(n,r,i,s,t[h+4],6,-145523070),s=d(s,n,r,i,t[h+11],10,-1120210379),i=d(i,s,n,r,t[h+2],15,718787259),r=d(r,i,s,n,t[h+9],21,-343485551),n=o(n,p),r=o(r,f),i=o(i,m),s=o(s,g)}return a(n)+a(r)+a(i)+a(s)};var t="0123456789abcdef";function n(e,t){return(e>>>1|t>>>1)<<1|(1&e|1&t)}function r(e,t){return(e>>>1^t>>>1)<<1|1&e^1&t}function i(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,r="";for(n=0;n<=3;n++)r+=t.charAt(e>>8*n+4&15)+t.charAt(e>>8*n&15);return r}function s(e,t,n,r,i,a){return o((s=o(o(t,e),o(r,a)))<<(l=i)|s>>>32-l,n);var s,l}function l(e,t,r,o,a,l,c){return s(n(i(t,r),i(~t,o)),e,t,a,l,c)}function c(e,t,r,o,a,l,c){return s(n(i(t,o),i(r,~o)),e,t,a,l,c)}function u(e,t,n,i,o,a,l){return s(r(r(t,n),i),e,t,o,a,l)}function d(e,t,i,o,a,l,c){return s(r(i,n(t,~o)),e,t,a,l,c)}},40022:function(e,t,n){var r,i,o;i=[n(36453)],void 0===(o="function"===typeof(r=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,r=e%100-n,i=e>=100?100:null;return t[n]||t[r]||t[i]},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"}})})?r.apply(t,i):r)||(e.exports=o)},36453:function(e,t,n){var r,i;r=function(){var e,t,n="2.0.6",r={},i={},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 i,o,l,c;if(e.isNumeral(n))i=n.value();else if(0===n||"undefined"===typeof n)i=0;else if(null===n||t.isNaN(n))i=null;else if("string"===typeof n)if(a.zeroFormat&&n===a.zeroFormat)i=0;else if(a.nullFormat&&n===a.nullFormat||!n.replace(/[^0-9]+/g,"").length)i=null;else{for(o in r)if((c="function"===typeof r[o].regexps.unformat?r[o].regexps.unformat():r[o].regexps.unformat)&&n.match(c)){l=r[o].unformat;break}i=(l=l||e._.stringToNumber)(n)}else i=Number(n)||null;return new s(n,i)}).version=n,e.isNumeral=function(e){return e instanceof s},e._=t={numberToFormat:function(t,n,r){var o,a,s,l,c,u,d,h=i[e.options.currentLocale],p=!1,f=!1,m=0,g="",v=1e12,y=1e9,b=1e6,x=1e3,w="",S=!1;if(t=t||0,a=Math.abs(t),e._.includes(n,"(")?(p=!0,n=n.replace(/[\(|\)]/g,"")):(e._.includes(n,"+")||e._.includes(n,"-"))&&(c=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>=v&&!o||"t"===o?(g+=h.abbreviations.trillion,t/=v):a<v&&a>=y&&!o||"b"===o?(g+=h.abbreviations.billion,t/=y):a<y&&a>=b&&!o||"m"===o?(g+=h.abbreviations.million,t/=b):(a<b&&a>=x&&!o||"k"===o)&&(g+=h.abbreviations.thousand,t/=x)),e._.includes(n,"[.]")&&(f=!0,n=n.replace("[.]",".")),s=t.toString().split(".")[0],l=n.split(".")[1],u=n.indexOf(","),m=(n.split(".")[0].split(",")[0].match(/0/g)||[]).length,l?(e._.includes(l,"[")?(l=(l=l.replace("]","")).split("["),w=e._.toFixed(t,l[0].length+l[1].length,r,l[1].length)):w=e._.toFixed(t,l.length,r),s=w.split(".")[0],w=e._.includes(w,".")?h.delimiters.decimal+w.split(".")[1]:"",f&&0===Number(w.slice(1))&&(w="")):s=e._.toFixed(t,0,r),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),S=!0),s.length<m)for(var _=m-s.length;_>0;_--)s="0"+s;return u>-1&&(s=s.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1"+h.delimiters.thousands)),0===n.indexOf(".")&&(s=""),d=s+w+(g||""),p?d=(p&&S?"(":"")+d+(p&&S?")":""):c>=0?d=0===c?(S?"-":"+")+d:d+(S?"-":"+"):S&&(d="-"+d),d},stringToNumber:function(e){var t,n,r,o=i[a.currentLocale],s=e,l={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,".")),l)if(r=new RegExp("[^a-zA-Z]"+o.abbreviations[t]+"(?:\\)|(\\"+o.currency.symbol+")?(?:\\))?)?$"),s.match(r)){n*=Math.pow(10,l[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){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,r=Object(e),i=r.length>>>0,o=0;if(3===arguments.length)n=arguments[2];else{for(;o<i&&!(o in r);)o++;if(o>=i)throw new TypeError("Reduce of empty array with no initial value");n=r[o++]}for(;o<i;o++)o in r&&(n=t(n,r[o],o,r));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 r=t.multiplier(n);return e>r?e:r}),1)},toFixed:function(e,t,n,r){var i,o,a,s,l=e.toString().split("."),c=t-(r||0);return i=2===l.length?Math.min(Math.max(l[1].length,c),t):c,a=Math.pow(10,i),s=(n(e+"e+"+i)/a).toFixed(i),r>t-i&&(o=new RegExp("\\.?0{1,"+(r-(t-i))+"}$"),s=s.replace(o,"")),s}},e.options=a,e.formats=r,e.locales=i,e.locale=function(e){return e&&(a.currentLocale=e.toLowerCase()),a.currentLocale},e.localeData=function(e){if(!e)return i[a.currentLocale];if(e=e.toLowerCase(),!i[e])throw new Error("Unknown locale : "+e);return i[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 r,i,o,a,s,l,c,u;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{c=e.localeData(n)}catch(d){c=e.localeData(e.locale())}return o=c.currency.symbol,s=c.abbreviations,r=c.delimiters.decimal,i="."===c.delimiters.thousands?"\\.":c.delimiters.thousands,(null===(u=t.match(/^[^\d]+/))||(t=t.substr(1),u[0]===o))&&(null===(u=t.match(/[^\d]+$/))||(t=t.slice(0,-1),u[0]===s.thousand||u[0]===s.million||u[0]===s.billion||u[0]===s.trillion))&&(l=new RegExp(i+"{2}"),!t.match(/[^\d.,]/g)&&!((a=t.split(r)).length>2)&&(a.length<2?!!a[0].match(/^\d+.*\d$/)&&!a[0].match(l):1===a[0].length?!!a[0].match(/^\d+$/)&&!a[0].match(l)&&!!a[1].match(/^\d+$/):!!a[0].match(/^\d+.*\d$/)&&!a[0].match(l)&&!!a[1].match(/^\d+$/)))},e.fn=s.prototype={clone:function(){return e(this)},format:function(t,n){var i,o,s,l=this._value,c=t||a.defaultFormat;if(n=n||Math.round,0===l&&null!==a.zeroFormat)o=a.zeroFormat;else if(null===l&&null!==a.nullFormat)o=a.nullFormat;else{for(i in r)if(c.match(r[i].regexps.format)){s=r[i].format;break}o=(s=s||e._.numberToFormat)(l,c,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 r(e,t,r,i){return e+Math.round(n*t)}return this._value=t.reduce([this._value,e],r,0)/n,this},subtract:function(e){var n=t.correctionFactor.call(null,this._value,e);function r(e,t,r,i){return e-Math.round(n*t)}return this._value=t.reduce([e],r,Math.round(this._value*n))/n,this},multiply:function(e){function n(e,n,r,i){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,r,i){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,r){var i,o=e._.includes(n," BPS")?" ":"";return t*=1e4,n=n.replace(/\s?BPS/,""),i=e._.numberToFormat(t,n,r),e._.includes(i,")")?((i=i.split("")).splice(-1,0,o+"BPS"),i=i.join("")):i=i+o+"BPS",i},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"]},r=t.suffixes.concat(n.suffixes.filter((function(e){return t.suffixes.indexOf(e)<0}))).join("|");r="("+r.replace("B","B(?!PS)")+")",e.register("format","bytes",{regexps:{format:/([0\s]i?b)/,unformat:new RegExp(r)},format:function(r,i,o){var a,s,l,c=e._.includes(i,"ib")?n:t,u=e._.includes(i," b")||e._.includes(i," ib")?" ":"";for(i=i.replace(/\s?i?b/,""),a=0;a<=c.suffixes.length;a++)if(s=Math.pow(c.base,a),l=Math.pow(c.base,a+1),null===r||0===r||r>=s&&r<l){u+=c.suffixes[a],s>0&&(r/=s);break}return e._.numberToFormat(r,i,o)+u},unformat:function(r){var i,o,a=e._.stringToNumber(r);if(a){for(i=t.suffixes.length-1;i>=0;i--){if(e._.includes(r,t.suffixes[i])){o=Math.pow(t.base,i);break}if(e._.includes(r,n.suffixes[i])){o=Math.pow(n.base,i);break}}a*=o||1}return a}})}(),e.register("format","currency",{regexps:{format:/(\$)/},format:function(t,n,r){var i,o,a=e.locales[e.options.currentLocale],s={before:n.match(/^([\+|\-|\(|\s|\$]*)/)[0],after:n.match(/([\+|\-|\)|\s|\$]*)$/)[0]};for(n=n.replace(/\s?\$\s?/,""),i=e._.numberToFormat(t,n,r),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"$":i=e._.insert(i,a.currency.symbol,o);break;case" ":i=e._.insert(i," ",o+a.currency.symbol.length-1)}for(o=s.after.length-1;o>=0;o--)switch(s.after[o]){case"$":i=o===s.after.length-1?i+a.currency.symbol:e._.insert(i,a.currency.symbol,-(s.after.length-(1+o)));break;case" ":i=o===s.after.length-1?i+" ":e._.insert(i," ",-(s.after.length-(1+o)+a.currency.symbol.length-1))}return i}}),e.register("format","exponential",{regexps:{format:/(e\+|e-)/,unformat:/(e\+|e-)/},format:function(t,n,r){var i=("number"!==typeof t||e._.isNaN(t)?"0e+0":t.toExponential()).split("e");return n=n.replace(/e[\+|\-]{1}0/,""),e._.numberToFormat(Number(i[0]),n,r)+"e"+i[1]},unformat:function(t){var n=e._.includes(t,"e+")?t.split("e+"):t.split("e-"),r=Number(n[0]),i=Number(n[1]);function o(t,n,r,i){var o=e._.correctionFactor(t,n);return t*o*(n*o)/(o*o)}return i=e._.includes(t,"e-")?i*=-1:i,e._.reduce([r,Math.pow(10,i)],o,1)}}),e.register("format","ordinal",{regexps:{format:/(o)/},format:function(t,n,r){var i=e.locales[e.options.currentLocale],o=e._.includes(n," o")?" ":"";return n=n.replace(/\s?o/,""),o+=i.ordinal(t),e._.numberToFormat(t,n,r)+o}}),e.register("format","percentage",{regexps:{format:/(%)/,unformat:/(%)/},format:function(t,n,r){var i,o=e._.includes(n," %")?" ":"";return e.options.scalePercentBy100&&(t*=100),n=n.replace(/\s?\%/,""),i=e._.numberToFormat(t,n,r),e._.includes(i,")")?((i=i.split("")).splice(-1,0,o+"%"),i=i.join("")):i=i+o+"%",i},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 r=Math.floor(e/60/60),i=Math.floor((e-60*r*60)/60),o=Math.round(e-60*r*60-60*i);return r+":"+(i<10?"0"+i:i)+":"+(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===(i="function"===typeof r?r.call(t,n,t,e):r)||(e.exports=i)},29335:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=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 r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(i){return!1}}()?Object.assign:function(e,i){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),l=1;l<arguments.length;l++){for(var c in o=Object(arguments[l]))n.call(o,c)&&(s[c]=o[c]);if(t){a=t(o);for(var u=0;u<a.length;u++)r.call(o,a[u])&&(s[a[u]]=o[a[u]])}}return s}},68798:(e,t,n)=>{var r="function"===typeof Map&&Map.prototype,i=Object.getOwnPropertyDescriptor&&r?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,o=r&&i&&"function"===typeof i.get?i.get:null,a=r&&Map.prototype.forEach,s="function"===typeof Set&&Set.prototype,l=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,c=s&&l&&"function"===typeof l.get?l.get:null,u=s&&Set.prototype.forEach,d="function"===typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,h="function"===typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,p="function"===typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,f=Boolean.prototype.valueOf,m=Object.prototype.toString,g=Function.prototype.toString,v=String.prototype.match,y=String.prototype.slice,b=String.prototype.replace,x=String.prototype.toUpperCase,w=String.prototype.toLowerCase,S=RegExp.prototype.test,_=Array.prototype.concat,C=Array.prototype.join,E=Array.prototype.slice,T=Math.floor,O="function"===typeof BigInt?BigInt.prototype.valueOf:null,N=Object.getOwnPropertySymbols,k="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?Symbol.prototype.toString:null,j="function"===typeof Symbol&&"object"===typeof Symbol.iterator,I="function"===typeof Symbol&&Symbol.toStringTag&&(typeof Symbol.toStringTag===j||"symbol")?Symbol.toStringTag:null,P=Object.prototype.propertyIsEnumerable,D=("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||S.call(/e/,t))return t;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"===typeof e){var r=e<0?-T(-e):T(e);if(r!==e){var i=String(r),o=y.call(t,i.length+1);return b.call(i,n,"$&_")+"."+b.call(b.call(o,/([0-9]{3})/g,"$&_"),/_$/,"")}}return b.call(t,n,"$&_")}var R=n(24654),M=R.custom,L=H(M)?M:null;function F(e,t,n){var r="double"===(n.quoteStyle||t)?'"':"'";return r+e+r}function z(e){return b.call(String(e),/"/g,""")}function B(e){return"[object Array]"===W(e)&&(!I||!("object"===typeof e&&I in e))}function U(e){return"[object RegExp]"===W(e)&&(!I||!("object"===typeof e&&I in e))}function H(e){if(j)return e&&"object"===typeof e&&e instanceof Symbol;if("symbol"===typeof e)return!0;if(!e||"object"!==typeof e||!k)return!1;try{return k.call(e),!0}catch(t){}return!1}e.exports=function e(t,r,i,s){var l=r||{};if(G(l,"quoteStyle")&&"single"!==l.quoteStyle&&"double"!==l.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if(G(l,"maxStringLength")&&("number"===typeof l.maxStringLength?l.maxStringLength<0&&l.maxStringLength!==1/0:null!==l.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var m=!G(l,"customInspect")||l.customInspect;if("boolean"!==typeof m&&"symbol"!==m)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(G(l,"indent")&&null!==l.indent&&"\t"!==l.indent&&!(parseInt(l.indent,10)===l.indent&&l.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(G(l,"numericSeparator")&&"boolean"!==typeof l.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var x=l.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 Z(t,l);if("number"===typeof t){if(0===t)return 1/0/t>0?"0":"-0";var S=String(t);return x?A(t,S):S}if("bigint"===typeof t){var T=String(t)+"n";return x?A(t,T):T}var N="undefined"===typeof l.depth?5:l.depth;if("undefined"===typeof i&&(i=0),i>=N&&N>0&&"object"===typeof t)return B(t)?"[Array]":"[Object]";var M=function(e,t){var n;if("\t"===e.indent)n="\t";else{if(!("number"===typeof e.indent&&e.indent>0))return null;n=C.call(Array(e.indent+1)," ")}return{base:n,prev:C.call(Array(t+1),n)}}(l,i);if("undefined"===typeof s)s=[];else if(q(s,t)>=0)return"[Circular]";function V(t,n,r){if(n&&(s=E.call(s)).push(n),r){var o={depth:l.depth};return G(l,"quoteStyle")&&(o.quoteStyle=l.quoteStyle),e(t,o,i+1,s)}return e(t,l,i+1,s)}if("function"===typeof t&&!U(t)){var Y=function(e){if(e.name)return e.name;var t=v.call(g.call(e),/^function\s*([\w$]+)/);if(t)return t[1];return null}(t),ee=J(t,V);return"[Function"+(Y?": "+Y:" (anonymous)")+"]"+(ee.length>0?" { "+C.call(ee,", ")+" }":"")}if(H(t)){var te=j?b.call(String(t),/^(Symbol\(.*\))_[^)]*$/,"$1"):k.call(t);return"object"!==typeof t||j?te:K(te)}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 ne="<"+w.call(String(t.nodeName)),re=t.attributes||[],ie=0;ie<re.length;ie++)ne+=" "+re[ie].name+"="+F(z(re[ie].value),"double",l);return ne+=">",t.childNodes&&t.childNodes.length&&(ne+="..."),ne+="</"+w.call(String(t.nodeName))+">"}if(B(t)){if(0===t.length)return"[]";var oe=J(t,V);return M&&!function(e){for(var t=0;t<e.length;t++)if(q(e[t],"\n")>=0)return!1;return!0}(oe)?"["+$(oe,M)+"]":"[ "+C.call(oe,", ")+" ]"}if(function(e){return"[object Error]"===W(e)&&(!I||!("object"===typeof e&&I in e))}(t)){var ae=J(t,V);return"cause"in Error.prototype||!("cause"in t)||P.call(t,"cause")?0===ae.length?"["+String(t)+"]":"{ ["+String(t)+"] "+C.call(ae,", ")+" }":"{ ["+String(t)+"] "+C.call(_.call("[cause]: "+V(t.cause),ae),", ")+" }"}if("object"===typeof t&&m){if(L&&"function"===typeof t[L]&&R)return R(t,{depth:N-i});if("symbol"!==m&&"function"===typeof t.inspect)return t.inspect()}if(function(e){if(!o||!e||"object"!==typeof e)return!1;try{o.call(e);try{c.call(e)}catch(ne){return!0}return e instanceof Map}catch(t){}return!1}(t)){var se=[];return a&&a.call(t,(function(e,n){se.push(V(n,t,!0)+" => "+V(e,t))})),X("Map",o.call(t),se,M)}if(function(e){if(!c||!e||"object"!==typeof e)return!1;try{c.call(e);try{o.call(e)}catch(t){return!0}return e instanceof Set}catch(n){}return!1}(t)){var le=[];return u&&u.call(t,(function(e){le.push(V(e,t))})),X("Set",c.call(t),le,M)}if(function(e){if(!d||!e||"object"!==typeof e)return!1;try{d.call(e,d);try{h.call(e,h)}catch(ne){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(ne){return!0}return e instanceof WeakSet}catch(t){}return!1}(t))return Q("WeakSet");if(function(e){if(!p||!e||"object"!==typeof e)return!1;try{return p.call(e),!0}catch(t){}return!1}(t))return Q("WeakRef");if(function(e){return"[object Number]"===W(e)&&(!I||!("object"===typeof e&&I in e))}(t))return K(V(Number(t)));if(function(e){if(!e||"object"!==typeof e||!O)return!1;try{return O.call(e),!0}catch(t){}return!1}(t))return K(V(O.call(t)));if(function(e){return"[object Boolean]"===W(e)&&(!I||!("object"===typeof e&&I in e))}(t))return K(f.call(t));if(function(e){return"[object String]"===W(e)&&(!I||!("object"===typeof e&&I in e))}(t))return K(V(String(t)));if("undefined"!==typeof window&&t===window)return"{ [object Window] }";if(t===n.g)return"{ [object globalThis] }";if(!function(e){return"[object Date]"===W(e)&&(!I||!("object"===typeof e&&I in e))}(t)&&!U(t)){var ce=J(t,V),ue=D?D(t)===Object.prototype:t instanceof Object||t.constructor===Object,de=t instanceof Object?"":"null prototype",he=!ue&&I&&Object(t)===t&&I in t?y.call(W(t),8,-1):de?"Object":"",pe=(ue||"function"!==typeof t.constructor?"":t.constructor.name?t.constructor.name+" ":"")+(he||de?"["+C.call(_.call([],he||[],de||[]),": ")+"] ":"");return 0===ce.length?pe+"{}":M?pe+"{"+$(ce,M)+"}":pe+"{ "+C.call(ce,", ")+" }"}return String(t)};var V=Object.prototype.hasOwnProperty||function(e){return e in this};function G(e,t){return V.call(e,t)}function W(e){return m.call(e)}function q(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}function Z(e,t){if(e.length>t.maxStringLength){var n=e.length-t.maxStringLength,r="... "+n+" more character"+(n>1?"s":"");return Z(y.call(e,0,t.maxStringLength),t)+r}return F(b.call(b.call(e,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,Y),"single",t)}function Y(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":"")+x.call(t.toString(16))}function K(e){return"Object("+e+")"}function Q(e){return e+" { ? }"}function X(e,t,n,r){return e+" ("+t+") {"+(r?$(n,r):C.call(n,", "))+"}"}function $(e,t){if(0===e.length)return"";var n="\n"+t.prev+t.base;return n+C.call(e,","+n)+"\n"+t.prev}function J(e,t){var n=B(e),r=[];if(n){r.length=e.length;for(var i=0;i<e.length;i++)r[i]=G(e,i)?t(e[i],e):""}var o,a="function"===typeof N?N(e):[];if(j){o={};for(var s=0;s<a.length;s++)o["$"+a[s]]=a[s]}for(var l in e)G(e,l)&&(n&&String(Number(l))===l&&l<e.length||j&&o["$"+l]instanceof Symbol||(S.call(/[^\w$]/,l)?r.push(t(l,e)+": "+t(e[l],e)):r.push(l+": "+t(e[l],e))));if("function"===typeof N)for(var c=0;c<a.length;c++)P.call(e,a[c])&&r.push("["+t(a[c])+"]: "+t(e[a[c]],e));return r}},7856:e=>{e.exports=u,e.exports.match=function(e,t){var n=[];return i(u(e,n,t),n)},e.exports.regexpToFunction=i,e.exports.parse=r,e.exports.compile=function(e,t){return o(r(e,t),t)},e.exports.tokensToFunction=o,e.exports.tokensToRegExp=c;var t="/",n=new RegExp(["(\\\\.)","(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?"].join("|"),"g");function r(e,r){for(var i,o=[],l=0,c=0,u="",d=r&&r.delimiter||t,h=r&&r.whitelist||void 0,p=!1;null!==(i=n.exec(e));){var f=i[0],m=i[1],g=i.index;if(u+=e.slice(c,g),c=g+f.length,m)u+=m[1],p=!0;else{var v="",y=i[2],b=i[3],x=i[4],w=i[5];if(!p&&u.length){var S=u.length-1,_=u[S];(!h||h.indexOf(_)>-1)&&(v=_,u=u.slice(0,S))}u&&(o.push(u),u="",p=!1);var C="+"===w||"*"===w,E="?"===w||"*"===w,T=b||x,O=v||d;o.push({name:y||l++,prefix:v,delimiter:O,optional:E,repeat:C,pattern:T?s(T):"[^"+a(O===d?O:O+d)+"]+?"})}}return(u||c<e.length)&&o.push(u+e.substr(c)),o}function i(e,t){return function(n,r){var i=e.exec(n);if(!i)return!1;for(var o=i[0],a=i.index,s={},l=r&&r.decode||decodeURIComponent,c=1;c<i.length;c++)if(void 0!==i[c]){var u=t[c-1];u.repeat?s[u.name]=i[c].split(u.delimiter).map((function(e){return l(e,u)})):s[u.name]=l(i[c],u)}return{path:o,index:a,params:s}}}function o(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+")$",l(t)));return function(t,r){for(var i="",o=r&&r.encode||encodeURIComponent,a=!r||!1!==r.validate,s=0;s<e.length;s++){var l=e[s];if("string"!==typeof l){var c,u=t?t[l.name]:void 0;if(Array.isArray(u)){if(!l.repeat)throw new TypeError('Expected "'+l.name+'" to not repeat, but got array');if(0===u.length){if(l.optional)continue;throw new TypeError('Expected "'+l.name+'" to not be empty')}for(var d=0;d<u.length;d++){if(c=o(u[d],l),a&&!n[s].test(c))throw new TypeError('Expected all "'+l.name+'" to match "'+l.pattern+'"');i+=(0===d?l.prefix:l.delimiter)+c}}else if("string"!==typeof u&&"number"!==typeof u&&"boolean"!==typeof u){if(!l.optional)throw new TypeError('Expected "'+l.name+'" to be '+(l.repeat?"an array":"a string"))}else{if(c=o(String(u),l),a&&!n[s].test(c))throw new TypeError('Expected "'+l.name+'" to match "'+l.pattern+'", but got "'+c+'"');i+=l.prefix+c}}else i+=l}return i}}function a(e){return e.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function s(e){return e.replace(/([=!:$/()])/g,"\\$1")}function l(e){return e&&e.sensitive?"":"i"}function c(e,n,r){for(var i=(r=r||{}).strict,o=!1!==r.start,s=!1!==r.end,c=r.delimiter||t,u=[].concat(r.endsWith||[]).map(a).concat("$").join("|"),d=o?"^":"",h=0;h<e.length;h++){var p=e[h];if("string"===typeof p)d+=a(p);else{var f=p.repeat?"(?:"+p.pattern+")(?:"+a(p.delimiter)+"(?:"+p.pattern+"))*":p.pattern;n&&n.push(p),p.optional?p.prefix?d+="(?:"+a(p.prefix)+"("+f+"))?":d+="("+f+")?":d+=a(p.prefix)+"("+f+")"}}if(s)i||(d+="(?:"+a(c)+")?"),d+="$"===u?"$":"(?="+u+")";else{var m=e[e.length-1],g="string"===typeof m?m[m.length-1]===c:void 0===m;i||(d+="(?:"+a(c)+"(?="+u+"))?"),g||(d+="(?="+a(c)+"|"+u+")")}return new RegExp(d,l(r))}function u(e,t,n){return e instanceof RegExp?function(e,t){if(!t)return e;var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,pattern:null});return e}(e,t):Array.isArray(e)?function(e,t,n){for(var r=[],i=0;i<e.length;i++)r.push(u(e[i],t,n).source);return new RegExp("(?:"+r.join("|")+")",l(n))}(e,t,n):function(e,t,n){return c(r(e,n),t,n)}(e,t,n)}},62139:(e,t,n)=>{"use strict";var r=n(16630);function i(){}function o(){}o.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,o,a){if(a!==r){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:i};return n.PropTypes=n,n}},50134:(e,t,n)=>{e.exports=n(62139)()},16630:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},21777:e=>{"use strict";var t=String.prototype.replace,n=/%20/g,r="RFC1738",i="RFC3986";e.exports={default:i,formatters:{RFC1738:function(e){return t.call(e,n,"+")},RFC3986:function(e){return String(e)}},RFC1738:r,RFC3986:i}},63041:(e,t,n)=>{"use strict";var r=n(84861),i=n(36840),o=n(21777);e.exports={formats:o,parse:i,stringify:r}},36840:(e,t,n)=>{"use strict";var r=n(92113),i=Object.prototype.hasOwnProperty,o=Array.isArray,a={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!0,decoder:r.decode,delimiter:"&",depth:5,duplicates:"combine",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))}))},l=function(e,t){return e&&"string"===typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},c=function(e,t,n,r){if(e){var o=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,a=/(\[[^[\]]*])/g,s=n.depth>0&&/(\[[^[\]]*])/.exec(o),c=s?o.slice(0,s.index):o,u=[];if(c){if(!n.plainObjects&&i.call(Object.prototype,c)&&!n.allowPrototypes)return;u.push(c)}for(var d=0;n.depth>0&&null!==(s=a.exec(o))&&d<n.depth;){if(d+=1,!n.plainObjects&&i.call(Object.prototype,s[1].slice(1,-1))&&!n.allowPrototypes)return;u.push(s[1])}return s&&u.push("["+o.slice(s.index)+"]"),function(e,t,n,r){for(var i=r?t:l(t,n),o=e.length-1;o>=0;--o){var a,s=e[o];if("[]"===s&&n.parseArrays)a=n.allowEmptyArrays&&""===i?[]:[].concat(i);else{a=n.plainObjects?Object.create(null):{};var c="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,u=n.decodeDotInKeys?c.replace(/%2E/g,"."):c,d=parseInt(u,10);n.parseArrays||""!==u?!isNaN(d)&&s!==u&&String(d)===u&&d>=0&&n.parseArrays&&d<=n.arrayLimit?(a=[])[d]=i:"__proto__"!==u&&(a[u]=i):a={0:i}}i=a}return i}(u,t,n,r)}};e.exports=function(e,t){var n=function(e){if(!e)return a;if("undefined"!==typeof e.allowEmptyArrays&&"boolean"!==typeof e.allowEmptyArrays)throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if("undefined"!==typeof e.decodeDotInKeys&&"boolean"!==typeof e.decodeDotInKeys)throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");if(null!==e.decoder&&"undefined"!==typeof 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,n="undefined"===typeof e.duplicates?a.duplicates:e.duplicates;if("combine"!==n&&"first"!==n&&"last"!==n)throw new TypeError("The duplicates option must be either combine, first, or last");return{allowDots:"undefined"===typeof e.allowDots?!0===e.decodeDotInKeys||a.allowDots:!!e.allowDots,allowEmptyArrays:"boolean"===typeof e.allowEmptyArrays?!!e.allowEmptyArrays:a.allowEmptyArrays,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,decodeDotInKeys:"boolean"===typeof e.decodeDotInKeys?e.decodeDotInKeys:a.decodeDotInKeys,decoder:"function"===typeof e.decoder?e.decoder:a.decoder,delimiter:"string"===typeof e.delimiter||r.isRegExp(e.delimiter)?e.delimiter:a.delimiter,depth:"number"===typeof e.depth||!1===e.depth?+e.depth:a.depth,duplicates:n,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 u="string"===typeof e?function(e,t){var n,c={__proto__:null},u=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,d=t.parameterLimit===1/0?void 0:t.parameterLimit,h=u.split(t.delimiter,d),p=-1,f=t.charset;if(t.charsetSentinel)for(n=0;n<h.length;++n)0===h[n].indexOf("utf8=")&&("utf8=%E2%9C%93"===h[n]?f="utf-8":"utf8=%26%2310003%3B"===h[n]&&(f="iso-8859-1"),p=n,n=h.length);for(n=0;n<h.length;++n)if(n!==p){var m,g,v=h[n],y=v.indexOf("]="),b=-1===y?v.indexOf("="):y+1;-1===b?(m=t.decoder(v,a.decoder,f,"key"),g=t.strictNullHandling?null:""):(m=t.decoder(v.slice(0,b),a.decoder,f,"key"),g=r.maybeMap(l(v.slice(b+1),t),(function(e){return t.decoder(e,a.decoder,f,"value")}))),g&&t.interpretNumericEntities&&"iso-8859-1"===f&&(g=s(g)),v.indexOf("[]=")>-1&&(g=o(g)?[g]:g);var x=i.call(c,m);x&&"combine"===t.duplicates?c[m]=r.combine(c[m],g):x&&"last"!==t.duplicates||(c[m]=g)}return c}(e,n):e,d=n.plainObjects?Object.create(null):{},h=Object.keys(u),p=0;p<h.length;++p){var f=h[p],m=c(f,u[f],n,"string"===typeof e);d=r.merge(d,m,n)}return!0===n.allowSparse?d:r.compact(d)}},84861:(e,t,n)=>{"use strict";var r=n(50810),i=n(92113),o=n(21777),a=Object.prototype.hasOwnProperty,s={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},l=Array.isArray,c=Array.prototype.push,u=function(e,t){c.apply(e,l(t)?t:[t])},d=Date.prototype.toISOString,h=o.default,p={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:i.encode,encodeValuesOnly:!1,format:h,formatter:o.formatters[h],indices:!1,serializeDate:function(e){return d.call(e)},skipNulls:!1,strictNullHandling:!1},f={},m=function e(t,n,o,a,s,c,d,h,m,g,v,y,b,x,w,S,_,C){for(var E,T=t,O=C,N=0,k=!1;void 0!==(O=O.get(f))&&!k;){var j=O.get(t);if(N+=1,"undefined"!==typeof j){if(j===N)throw new RangeError("Cyclic object value");k=!0}"undefined"===typeof O.get(f)&&(N=0)}if("function"===typeof g?T=g(n,T):T instanceof Date?T=b(T):"comma"===o&&l(T)&&(T=i.maybeMap(T,(function(e){return e instanceof Date?b(e):e}))),null===T){if(c)return m&&!S?m(n,p.encoder,_,"key",x):n;T=""}if("string"===typeof(E=T)||"number"===typeof E||"boolean"===typeof E||"symbol"===typeof E||"bigint"===typeof E||i.isBuffer(T))return m?[w(S?n:m(n,p.encoder,_,"key",x))+"="+w(m(T,p.encoder,_,"value",x))]:[w(n)+"="+w(String(T))];var I,P=[];if("undefined"===typeof T)return P;if("comma"===o&&l(T))S&&m&&(T=i.maybeMap(T,m)),I=[{value:T.length>0?T.join(",")||null:void 0}];else if(l(g))I=g;else{var D=Object.keys(T);I=v?D.sort(v):D}var A=h?n.replace(/\./g,"%2E"):n,R=a&&l(T)&&1===T.length?A+"[]":A;if(s&&l(T)&&0===T.length)return R+"[]";for(var M=0;M<I.length;++M){var L=I[M],F="object"===typeof L&&"undefined"!==typeof L.value?L.value:T[L];if(!d||null!==F){var z=y&&h?L.replace(/\./g,"%2E"):L,B=l(T)?"function"===typeof o?o(R,z):R:R+(y?"."+z:"["+z+"]");C.set(t,N);var U=r();U.set(f,C),u(P,e(F,B,o,a,s,c,d,h,"comma"===o&&S&&l(T)?null:m,g,v,y,b,x,w,S,_,U))}}return P};e.exports=function(e,t){var n,i=e,c=function(e){if(!e)return p;if("undefined"!==typeof e.allowEmptyArrays&&"boolean"!==typeof e.allowEmptyArrays)throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if("undefined"!==typeof e.encodeDotInKeys&&"boolean"!==typeof e.encodeDotInKeys)throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");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 r,i=o.formatters[n],c=p.filter;if(("function"===typeof e.filter||l(e.filter))&&(c=e.filter),r=e.arrayFormat in s?e.arrayFormat:"indices"in e?e.indices?"indices":"repeat":p.arrayFormat,"commaRoundTrip"in e&&"boolean"!==typeof e.commaRoundTrip)throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var u="undefined"===typeof e.allowDots?!0===e.encodeDotInKeys||p.allowDots:!!e.allowDots;return{addQueryPrefix:"boolean"===typeof e.addQueryPrefix?e.addQueryPrefix:p.addQueryPrefix,allowDots:u,allowEmptyArrays:"boolean"===typeof e.allowEmptyArrays?!!e.allowEmptyArrays:p.allowEmptyArrays,arrayFormat:r,charset:t,charsetSentinel:"boolean"===typeof e.charsetSentinel?e.charsetSentinel:p.charsetSentinel,commaRoundTrip:e.commaRoundTrip,delimiter:"undefined"===typeof e.delimiter?p.delimiter:e.delimiter,encode:"boolean"===typeof e.encode?e.encode:p.encode,encodeDotInKeys:"boolean"===typeof e.encodeDotInKeys?e.encodeDotInKeys:p.encodeDotInKeys,encoder:"function"===typeof e.encoder?e.encoder:p.encoder,encodeValuesOnly:"boolean"===typeof e.encodeValuesOnly?e.encodeValuesOnly:p.encodeValuesOnly,filter:c,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 c.filter?i=(0,c.filter)("",i):l(c.filter)&&(n=c.filter);var d=[];if("object"!==typeof i||null===i)return"";var h=s[c.arrayFormat],f="comma"===h&&c.commaRoundTrip;n||(n=Object.keys(i)),c.sort&&n.sort(c.sort);for(var g=r(),v=0;v<n.length;++v){var y=n[v];c.skipNulls&&null===i[y]||u(d,m(i[y],y,h,f,c.allowEmptyArrays,c.strictNullHandling,c.skipNulls,c.encodeDotInKeys,c.encode?c.encoder:null,c.filter,c.sort,c.allowDots,c.serializeDate,c.format,c.formatter,c.encodeValuesOnly,c.charset,g))}var b=d.join(c.delimiter),x=!0===c.addQueryPrefix?"?":"";return c.charsetSentinel&&("iso-8859-1"===c.charset?x+="utf8=%26%2310003%3B&":x+="utf8=%E2%9C%93&"),b.length>0?x+b:""}},92113:(e,t,n)=>{"use strict";var r=n(21777),i=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):{},r=0;r<e.length;++r)"undefined"!==typeof e[r]&&(n[r]=e[r]);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=[],r=0;r<t.length;++r)for(var i=t[r],a=i.obj[i.prop],s=Object.keys(a),l=0;l<s.length;++l){var c=s[l],u=a[c];"object"===typeof u&&null!==u&&-1===n.indexOf(u)&&(t.push({obj:a,prop:c}),n.push(u))}return function(e){for(;e.length>1;){var t=e.pop(),n=t.obj[t.prop];if(o(n)){for(var r=[],i=0;i<n.length;++i)"undefined"!==typeof n[i]&&r.push(n[i]);t.obj[t.prop]=r}}}(t),e},decode:function(e,t,n){var r=e.replace(/\+/g," ");if("iso-8859-1"===n)return r.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(r)}catch(i){return r}},encode:function(e,t,n,i,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 l="",c=0;c<s.length;++c){var u=s.charCodeAt(c);45===u||46===u||95===u||126===u||u>=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122||o===r.RFC1738&&(40===u||41===u)?l+=s.charAt(c):u<128?l+=a[u]:u<2048?l+=a[192|u>>6]+a[128|63&u]:u<55296||u>=57344?l+=a[224|u>>12]+a[128|u>>6&63]+a[128|63&u]:(c+=1,u=65536+((1023&u)<<10|1023&s.charCodeAt(c)),l+=a[240|u>>18]+a[128|u>>12&63]+a[128|u>>6&63]+a[128|63&u])}return l},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=[],r=0;r<e.length;r+=1)n.push(t(e[r]));return n}return t(e)},merge:function e(t,n,r){if(!n)return t;if("object"!==typeof n){if(o(t))t.push(n);else{if(!t||"object"!==typeof t)return[t,n];(r&&(r.plainObjects||r.allowPrototypes)||!i.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,r)),o(t)&&o(n)?(n.forEach((function(n,o){if(i.call(t,o)){var a=t[o];a&&"object"===typeof a&&n&&"object"===typeof n?t[o]=e(a,n,r):t.push(n)}else t[o]=n})),t):Object.keys(n).reduce((function(t,o){var a=n[o];return i.call(t,o)?t[o]=e(t[o],a,r):t[o]=a,t}),a)}}},63637:(e,t,n)=>{"use strict";function r(e){return r="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(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var i=s(n(68963)),o=s(n(69886)),a=["text","onCopy","options","children"];function s(e){return e&&e.__esModule?e:{default:e}}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){g(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(e,t)}function p(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,i=m(e);if(t){var o=m(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return function(e,t){if(t&&("object"===r(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return f(e)}(this,n)}}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},m(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 v=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)}(l,e);var t,n,r,s=p(l);function l(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return g(f(e=s.call.apply(s,[this].concat(n))),"onClick",(function(t){var n=e.props,r=n.text,a=n.onCopy,s=n.children,l=n.options,c=i.default.Children.only(s),u=(0,o.default)(r,l);a&&a(r,u),c&&c.props&&"function"===typeof c.props.onClick&&c.props.onClick(t)})),e}return t=l,(n=[{key:"render",value:function(){var e=this.props,t=(e.text,e.onCopy,e.options,e.children),n=u(e,a),r=i.default.Children.only(t);return i.default.cloneElement(r,c(c({},n),{},{onClick:this.onClick}))}}])&&d(t.prototype,n),r&&d(t,r),Object.defineProperty(t,"prototype",{writable:!1}),l}(i.default.PureComponent);t.CopyToClipboard=v,g(v,"defaultProps",{onCopy:void 0,options:void 0})},15942:(e,t,n)=>{"use strict";var r=n(63637).CopyToClipboard;r.CopyToClipboard=r,e.exports=r},9314:(e,t,n)=>{"use strict";var r=n(68963),i=n(29558);function o(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 a=new Set,s={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)a.add(t[e])}var u=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),d=Object.prototype.hasOwnProperty,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]*$/,p={},f={};function m(e,t,n,r,i,o,a){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new m(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];g[t]=new m(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new m(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new m(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){g[e]=new m(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new m(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new m(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new m(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new m(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function b(e,t,n,r){var i=g.hasOwnProperty(t)?g[t]:null;(null!==i?0!==i.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null===t||"undefined"===typeof t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)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,i,r)&&(n=null),r||null===i?function(e){return!!d.call(f,e)||!d.call(p,e)&&(h.test(e)?f[e]=!0:(p[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):i.mustUseProperty?e[i.propertyName]=null===n?3!==i.type&&"":n:(t=i.attributeName,r=i.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(i=i.type)||4===i&&!0===n?"":""+n,r?e.setAttributeNS(r,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(v,y);g[t]=new m(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(v,y);g[t]=new m(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(v,y);g[t]=new m(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new m(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new m("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new m(e,1,!1,e.toLowerCase(),null,!0,!0)}));var x=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,w=Symbol.for("react.element"),S=Symbol.for("react.portal"),_=Symbol.for("react.fragment"),C=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),T=Symbol.for("react.provider"),O=Symbol.for("react.context"),N=Symbol.for("react.forward_ref"),k=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),I=Symbol.for("react.memo"),P=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var D=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var A=Symbol.iterator;function R(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=A&&e[A]||e["@@iterator"])?e:null}var M,L=Object.assign;function F(e){if(void 0===M)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);M=t&&t[1]||""}return"\n"+M+e}var z=!1;function B(e,t){if(!e||z)return"";z=!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(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"===typeof c.stack){for(var i=c.stack.split("\n"),o=r.stack.split("\n"),a=i.length-1,s=o.length-1;1<=a&&0<=s&&i[a]!==o[s];)s--;for(;1<=a&&0<=s;a--,s--)if(i[a]!==o[s]){if(1!==a||1!==s)do{if(a--,0>--s||i[a]!==o[s]){var l="\n"+i[a].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=a&&0<=s);break}}}finally{z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?F(e):""}function U(e){switch(e.tag){case 5:return F(e.type);case 16:return F("Lazy");case 13:return F("Suspense");case 19:return F("SuspenseList");case 0:case 2:case 15:return e=B(e.type,!1);case 11:return e=B(e.type.render,!1);case 1:return e=B(e.type,!0);default:return""}}function H(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 _:return"Fragment";case S:return"Portal";case E:return"Profiler";case C:return"StrictMode";case k:return"Suspense";case j:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case O:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case N:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case I:return null!==(t=e.displayName||null)?t:H(e.type)||"Memo";case P:t=e._payload,e=e._init;try{return H(e(t))}catch(n){}}return null}function V(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return H(t);case 8:return t===C?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"===typeof t)return t.displayName||t.name||null;if("string"===typeof t)return t}return null}function G(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function W(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function q(e){e._valueTracker||(e._valueTracker=function(e){var t=W(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&"undefined"!==typeof n&&"function"===typeof n.get&&"function"===typeof n.set){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Z(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=W(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Y(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 K(e,t){var n=t.checked;return L({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Q(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=G(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function X(e,t){null!=(t=t.checked)&&b(e,"checked",t,!1)}function $(e,t){X(e,t);var n=G(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,G(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||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 ee(e,t,n){"number"===t&&Y(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t["$"+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty("$"+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=""+G(n),t=null,i=0;i<e.length;i++){if(e[i].value===n)return e[i].selected=!0,void(r&&(e[i].defaultSelected=!0));null!==t||e[i].disabled||(t=e[i])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(o(91));return L({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ie(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(o(92));if(te(n)){if(1<n.length)throw Error(o(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:G(n)}}function oe(e,t){var n=G(t.value),r=G(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ae(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function se(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 le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,ue,de=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ue(e,t)}))}:ue);function he(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 pe={animationIterationCount:!0,aspectRatio:!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},fe=["Webkit","ms","Moz","O"];function me(e,t,n){return null==t||"boolean"===typeof t||""===t?"":n||"number"!==typeof t||0===t||pe.hasOwnProperty(e)&&pe[e]?(""+t).trim():t+"px"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),i=me(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}Object.keys(pe).forEach((function(e){fe.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),pe[t]=pe[e]}))}));var ve=L({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 ye(e,t){if(t){if(ve[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!==typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!==typeof t.style)throw Error(o(62))}}function be(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}}var xe=null;function we(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Se=null,_e=null,Ce=null;function Ee(e){if(e=bi(e)){if("function"!==typeof Se)throw Error(o(280));var t=e.stateNode;t&&(t=wi(t),Se(e.stateNode,e.type,t))}}function Te(e){_e?Ce?Ce.push(e):Ce=[e]:_e=e}function Oe(){if(_e){var e=_e,t=Ce;if(Ce=_e=null,Ee(e),t)for(e=0;e<t.length;e++)Ee(t[e])}}function Ne(e,t){return e(t)}function ke(){}var je=!1;function Ie(e,t,n){if(je)return e(t,n);je=!0;try{return Ne(e,t,n)}finally{je=!1,(null!==_e||null!==Ce)&&(ke(),Oe())}}function Pe(e,t){var n=e.stateNode;if(null===n)return null;var r=wi(n);if(null===r)return null;n=r[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":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!==typeof n)throw Error(o(231,t,typeof n));return n}var De=!1;if(u)try{var Ae={};Object.defineProperty(Ae,"passive",{get:function(){De=!0}}),window.addEventListener("test",Ae,Ae),window.removeEventListener("test",Ae,Ae)}catch(ue){De=!1}function Re(e,t,n,r,i,o,a,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var Me=!1,Le=null,Fe=!1,ze=null,Be={onError:function(e){Me=!0,Le=e}};function Ue(e,t,n,r,i,o,a,s,l){Me=!1,Le=null,Re.apply(Be,arguments)}function He(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!==(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ve(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 Ge(e){if(He(e)!==e)throw Error(o(188))}function We(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=He(e)))throw Error(o(188));return t!==e?null:e}for(var n=e,r=t;;){var i=n.return;if(null===i)break;var a=i.alternate;if(null===a){if(null!==(r=i.return)){n=r;continue}break}if(i.child===a.child){for(a=i.child;a;){if(a===n)return Ge(i),e;if(a===r)return Ge(i),t;a=a.sibling}throw Error(o(188))}if(n.return!==r.return)n=i,r=a;else{for(var s=!1,l=i.child;l;){if(l===n){s=!0,n=i,r=a;break}if(l===r){s=!0,r=i,n=a;break}l=l.sibling}if(!s){for(l=a.child;l;){if(l===n){s=!0,n=a,r=i;break}if(l===r){s=!0,r=a,n=i;break}l=l.sibling}if(!s)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(3!==n.tag)throw Error(o(188));return n.stateNode.current===n?e:t}(e))?qe(e):null}function qe(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=qe(e);if(null!==t)return t;e=e.sibling}return null}var Ze=i.unstable_scheduleCallback,Ye=i.unstable_cancelCallback,Ke=i.unstable_shouldYield,Qe=i.unstable_requestPaint,Xe=i.unstable_now,$e=i.unstable_getCurrentPriorityLevel,Je=i.unstable_ImmediatePriority,et=i.unstable_UserBlockingPriority,tt=i.unstable_NormalPriority,nt=i.unstable_LowPriority,rt=i.unstable_IdlePriority,it=null,ot=null;var at=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2;var ct=64,ut=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ht(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,a=268435455&n;if(0!==a){var s=a&~i;0!==s?r=dt(s):0!==(o&=a)&&(r=dt(o))}else 0!==(a=n&~i)?r=dt(a):0!==o&&(r=dt(o));if(0===r)return 0;if(0!==t&&t!==r&&0===(t&i)&&((i=r&-r)>=(o=t&-t)||16===i&&0!==(4194240&o)))return t;if(0!==(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)i=1<<(n=31-at(t)),r|=e[n],t&=~i;return r}function pt(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function ft(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function mt(){var e=ct;return 0===(4194240&(ct<<=1))&&(ct=64),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function vt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-at(t)]=n}function yt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-at(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}var bt=0;function xt(e){return 1<(e&=-e)?4<e?0!==(268435455&e)?16:536870912:4:1}var wt,St,_t,Ct,Et,Tt=!1,Ot=[],Nt=null,kt=null,jt=null,It=new Map,Pt=new Map,Dt=[],At="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 Rt(e,t){switch(e){case"focusin":case"focusout":Nt=null;break;case"dragenter":case"dragleave":kt=null;break;case"mouseover":case"mouseout":jt=null;break;case"pointerover":case"pointerout":It.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Pt.delete(t.pointerId)}}function Mt(e,t,n,r,i,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[i]},null!==t&&(null!==(t=bi(t))&&St(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==i&&-1===t.indexOf(i)&&t.push(i),e)}function Lt(e){var t=yi(e.target);if(null!==t){var n=He(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ve(n)))return e.blockedOn=t,void Et(e.priority,(function(){_t(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ft(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=bi(n))&&St(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);xe=r,n.target.dispatchEvent(r),xe=null,t.shift()}return!0}function zt(e,t,n){Ft(e)&&n.delete(t)}function Bt(){Tt=!1,null!==Nt&&Ft(Nt)&&(Nt=null),null!==kt&&Ft(kt)&&(kt=null),null!==jt&&Ft(jt)&&(jt=null),It.forEach(zt),Pt.forEach(zt)}function Ut(e,t){e.blockedOn===t&&(e.blockedOn=null,Tt||(Tt=!0,i.unstable_scheduleCallback(i.unstable_NormalPriority,Bt)))}function Ht(e){function t(t){return Ut(t,e)}if(0<Ot.length){Ut(Ot[0],e);for(var n=1;n<Ot.length;n++){var r=Ot[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Nt&&Ut(Nt,e),null!==kt&&Ut(kt,e),null!==jt&&Ut(jt,e),It.forEach(t),Pt.forEach(t),n=0;n<Dt.length;n++)(r=Dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Dt.length&&null===(n=Dt[0]).blockedOn;)Lt(n),null===n.blockedOn&&Dt.shift()}var Vt=x.ReactCurrentBatchConfig,Gt=!0;function Wt(e,t,n,r){var i=bt,o=Vt.transition;Vt.transition=null;try{bt=1,Zt(e,t,n,r)}finally{bt=i,Vt.transition=o}}function qt(e,t,n,r){var i=bt,o=Vt.transition;Vt.transition=null;try{bt=4,Zt(e,t,n,r)}finally{bt=i,Vt.transition=o}}function Zt(e,t,n,r){if(Gt){var i=Kt(e,t,n,r);if(null===i)Gr(e,t,r,Yt,n),Rt(e,r);else if(function(e,t,n,r,i){switch(t){case"focusin":return Nt=Mt(Nt,e,t,n,r,i),!0;case"dragenter":return kt=Mt(kt,e,t,n,r,i),!0;case"mouseover":return jt=Mt(jt,e,t,n,r,i),!0;case"pointerover":var o=i.pointerId;return It.set(o,Mt(It.get(o)||null,e,t,n,r,i)),!0;case"gotpointercapture":return o=i.pointerId,Pt.set(o,Mt(Pt.get(o)||null,e,t,n,r,i)),!0}return!1}(i,e,t,n,r))r.stopPropagation();else if(Rt(e,r),4&t&&-1<At.indexOf(e)){for(;null!==i;){var o=bi(i);if(null!==o&&wt(o),null===(o=Kt(e,t,n,r))&&Gr(e,t,r,Yt,n),o===i)break;i=o}null!==i&&r.stopPropagation()}else Gr(e,t,r,null,n)}}var Yt=null;function Kt(e,t,n,r){if(Yt=null,null!==(e=yi(e=we(r))))if(null===(t=He(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=Ve(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Yt=e,null}function Qt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch($e()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Xt=null,$t=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=$t,r=n.length,i="value"in Xt?Xt.value:Xt.textContent,o=i.length;for(e=0;e<r&&n[e]===i[e];e++);var a=r-e;for(t=1;t<=a&&n[r-t]===i[o-t];t++);return Jt=i.slice(e,1<t?1-t:void 0)}function tn(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 nn(){return!0}function rn(){return!1}function on(e){function t(t,n,r,i,o){for(var a in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(a)&&(t=e[a],this[a]=t?t(i):i[a]);return this.isDefaultPrevented=(null!=i.defaultPrevented?i.defaultPrevented:!1===i.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return L(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=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var an,sn,ln,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=on(cn),dn=L({},cn,{view:0,detail:0}),hn=on(dn),pn=L({},dn,{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!==ln&&(ln&&"mousemove"===e.type?(an=e.screenX-ln.screenX,sn=e.screenY-ln.screenY):sn=an=0,ln=e),an)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),fn=on(pn),mn=on(L({},pn,{dataTransfer:0})),gn=on(L({},dn,{relatedTarget:0})),vn=on(L({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),yn=L({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),bn=on(yn),xn=on(L({},cn,{data:0})),wn={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"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function En(){return Cn}var Tn=L({},dn,{key:function(e){if(e.key){var t=wn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(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?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),On=on(Tn),Nn=on(L({},pn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),kn=on(L({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:En})),jn=on(L({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),In=L({},pn,{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}),Pn=on(In),Dn=[9,13,27,32],An=u&&"CompositionEvent"in window,Rn=null;u&&"documentMode"in document&&(Rn=document.documentMode);var Mn=u&&"TextEvent"in window&&!Rn,Ln=u&&(!An||Rn&&8<Rn&&11>=Rn),Fn=String.fromCharCode(32),zn=!1;function Bn(e,t){switch(e){case"keyup":return-1!==Dn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Un(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Hn=!1;var Vn={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 Gn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Vn[e.type]:"textarea"===t}function Wn(e,t,n,r){Te(r),0<(t=qr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var qn=null,Zn=null;function Yn(e){Fr(e,0)}function Kn(e){if(Z(xi(e)))return e}function Qn(e,t){if("change"===e)return t}var Xn=!1;if(u){var $n;if(u){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"===typeof er.oninput}$n=Jn}else $n=!1;Xn=$n&&(!document.documentMode||9<document.documentMode)}function tr(){qn&&(qn.detachEvent("onpropertychange",nr),Zn=qn=null)}function nr(e){if("value"===e.propertyName&&Kn(Zn)){var t=[];Wn(t,Zn,e,we(e)),Ie(Yn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Zn=n,(qn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Kn(Zn)}function or(e,t){if("click"===e)return Kn(t)}function ar(e,t){if("input"===e||"change"===e)return Kn(t)}var sr="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t};function lr(e,t){if(sr(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!d.call(t,i)||!sr(e[i],t[i]))return!1}return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=cr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=cr(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=Y();t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=Y((e=t.contentWindow).document)}return t}function pr(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)}function fr(e){var t=hr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&pr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=void 0===r.end?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=ur(n,o);var a=ur(n,r);i&&a&&(1!==e.rangeCount||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&((t=t.createRange()).setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"===typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var mr=u&&"documentMode"in document&&11>=document.documentMode,gr=null,vr=null,yr=null,br=!1;function xr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;br||null==gr||gr!==Y(r)||("selectionStart"in(r=gr)&&pr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},yr&&lr(yr,r)||(yr=r,0<(r=qr(vr,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=gr)))}function wr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Sr={animationend:wr("Animation","AnimationEnd"),animationiteration:wr("Animation","AnimationIteration"),animationstart:wr("Animation","AnimationStart"),transitionend:wr("Transition","TransitionEnd")},_r={},Cr={};function Er(e){if(_r[e])return _r[e];if(!Sr[e])return e;var t,n=Sr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Cr)return _r[e]=n[t];return e}u&&(Cr=document.createElement("div").style,"AnimationEvent"in window||(delete Sr.animationend.animation,delete Sr.animationiteration.animation,delete Sr.animationstart.animation),"TransitionEvent"in window||delete Sr.transitionend.transition);var Tr=Er("animationend"),Or=Er("animationiteration"),Nr=Er("animationstart"),kr=Er("transitionend"),jr=new Map,Ir="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Pr(e,t){jr.set(e,t),l(t,[e])}for(var Dr=0;Dr<Ir.length;Dr++){var Ar=Ir[Dr];Pr(Ar.toLowerCase(),"on"+(Ar[0].toUpperCase()+Ar.slice(1)))}Pr(Tr,"onAnimationEnd"),Pr(Or,"onAnimationIteration"),Pr(Nr,"onAnimationStart"),Pr("dblclick","onDoubleClick"),Pr("focusin","onFocus"),Pr("focusout","onBlur"),Pr(kr,"onTransitionEnd"),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 Rr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Mr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Rr));function Lr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,i,a,s,l,c){if(Ue.apply(this,arguments),Me){if(!Me)throw Error(o(198));var u=Le;Me=!1,Le=null,Fe||(Fe=!0,ze=u)}}(r,t,void 0,e),e.currentTarget=null}function Fr(e,t){t=0!==(4&t);for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var a=r.length-1;0<=a;a--){var s=r[a],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==o&&i.isPropagationStopped())break e;Lr(i,s,c),o=l}else for(a=0;a<r.length;a++){if(l=(s=r[a]).instance,c=s.currentTarget,s=s.listener,l!==o&&i.isPropagationStopped())break e;Lr(i,s,c),o=l}}}if(Fe)throw e=ze,Fe=!1,ze=null,e}function zr(e,t){var n=t[mi];void 0===n&&(n=t[mi]=new Set);var r=e+"__bubble";n.has(r)||(Vr(t,e,2,!1),n.add(r))}function Br(e,t,n){var r=0;t&&(r|=4),Vr(n,e,r,t)}var Ur="_reactListening"+Math.random().toString(36).slice(2);function Hr(e){if(!e[Ur]){e[Ur]=!0,a.forEach((function(t){"selectionchange"!==t&&(Mr.has(t)||Br(t,!1,e),Br(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Ur]||(t[Ur]=!0,Br("selectionchange",!1,t))}}function Vr(e,t,n,r){switch(Qt(t)){case 1:var i=Wt;break;case 4:i=qt;break;default:i=Zt}n=i.bind(null,t,n,e),i=void 0,!De||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(i=!0),r?void 0!==i?e.addEventListener(t,n,{capture:!0,passive:i}):e.addEventListener(t,n,!0):void 0!==i?e.addEventListener(t,n,{passive:i}):e.addEventListener(t,n,!1)}function Gr(e,t,n,r,i){var o=r;if(0===(1&t)&&0===(2&t)&&null!==r)e:for(;;){if(null===r)return;var a=r.tag;if(3===a||4===a){var s=r.stateNode.containerInfo;if(s===i||8===s.nodeType&&s.parentNode===i)break;if(4===a)for(a=r.return;null!==a;){var l=a.tag;if((3===l||4===l)&&((l=a.stateNode.containerInfo)===i||8===l.nodeType&&l.parentNode===i))return;a=a.return}for(;null!==s;){if(null===(a=yi(s)))return;if(5===(l=a.tag)||6===l){r=o=a;continue e}s=s.parentNode}}r=r.return}Ie((function(){var r=o,i=we(n),a=[];e:{var s=jr.get(e);if(void 0!==s){var l=un,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":l=On;break;case"focusin":c="focus",l=gn;break;case"focusout":c="blur",l=gn;break;case"beforeblur":case"afterblur":l=gn;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":l=fn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=mn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=kn;break;case Tr:case Or:case Nr:l=vn;break;case kr:l=jn;break;case"scroll":l=hn;break;case"wheel":l=Pn;break;case"copy":case"cut":case"paste":l=bn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=Nn}var u=0!==(4&t),d=!u&&"scroll"===e,h=u?null!==s?s+"Capture":null:s;u=[];for(var p,f=r;null!==f;){var m=(p=f).stateNode;if(5===p.tag&&null!==m&&(p=m,null!==h&&(null!=(m=Pe(f,h))&&u.push(Wr(f,m,p)))),d)break;f=f.return}0<u.length&&(s=new l(s,c,null,n,i),a.push({event:s,listeners:u}))}}if(0===(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===xe||!(c=n.relatedTarget||n.fromElement)||!yi(c)&&!c[fi])&&(l||s)&&(s=i.window===i?i:(s=i.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?yi(c):null)&&(c!==(d=He(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(u=fn,m="onMouseLeave",h="onMouseEnter",f="mouse","pointerout"!==e&&"pointerover"!==e||(u=Nn,m="onPointerLeave",h="onPointerEnter",f="pointer"),d=null==l?s:xi(l),p=null==c?s:xi(c),(s=new u(m,f+"leave",l,n,i)).target=d,s.relatedTarget=p,m=null,yi(i)===r&&((u=new u(h,f+"enter",c,n,i)).target=p,u.relatedTarget=d,m=u),d=m,l&&c)e:{for(h=c,f=0,p=u=l;p;p=Zr(p))f++;for(p=0,m=h;m;m=Zr(m))p++;for(;0<f-p;)u=Zr(u),f--;for(;0<p-f;)h=Zr(h),p--;for(;f--;){if(u===h||null!==h&&u===h.alternate)break e;u=Zr(u),h=Zr(h)}u=null}else u=null;null!==l&&Yr(a,s,l,u,!1),null!==c&&null!==d&&Yr(a,d,c,u,!0)}if("select"===(l=(s=r?xi(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var g=Qn;else if(Gn(s))if(Xn)g=ar;else{g=ir;var v=rr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=or);switch(g&&(g=g(e,r))?Wn(a,g,n,i):(v&&v(e,s,r),"focusout"===e&&(v=s._wrapperState)&&v.controlled&&"number"===s.type&&ee(s,"number",s.value)),v=r?xi(r):window,e){case"focusin":(Gn(v)||"true"===v.contentEditable)&&(gr=v,vr=r,yr=null);break;case"focusout":yr=vr=gr=null;break;case"mousedown":br=!0;break;case"contextmenu":case"mouseup":case"dragend":br=!1,xr(a,n,i);break;case"selectionchange":if(mr)break;case"keydown":case"keyup":xr(a,n,i)}var y;if(An)e:{switch(e){case"compositionstart":var b="onCompositionStart";break e;case"compositionend":b="onCompositionEnd";break e;case"compositionupdate":b="onCompositionUpdate";break e}b=void 0}else Hn?Bn(e,n)&&(b="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(b="onCompositionStart");b&&(Ln&&"ko"!==n.locale&&(Hn||"onCompositionStart"!==b?"onCompositionEnd"===b&&Hn&&(y=en()):($t="value"in(Xt=i)?Xt.value:Xt.textContent,Hn=!0)),0<(v=qr(r,b)).length&&(b=new xn(b,e,null,n,i),a.push({event:b,listeners:v}),y?b.data=y:null!==(y=Un(n))&&(b.data=y))),(y=Mn?function(e,t){switch(e){case"compositionend":return Un(t);case"keypress":return 32!==t.which?null:(zn=!0,Fn);case"textInput":return(e=t.data)===Fn&&zn?null:e;default:return null}}(e,n):function(e,t){if(Hn)return"compositionend"===e||!An&&Bn(e,t)?(e=en(),Jt=$t=Xt=null,Hn=!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 Ln&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=qr(r,"onBeforeInput")).length&&(i=new xn("onBeforeInput","beforeinput",null,n,i),a.push({event:i,listeners:r}),i.data=y))}Fr(a,t)}))}function Wr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function qr(e,t){for(var n=t+"Capture",r=[];null!==e;){var i=e,o=i.stateNode;5===i.tag&&null!==o&&(i=o,null!=(o=Pe(e,n))&&r.unshift(Wr(e,o,i)),null!=(o=Pe(e,t))&&r.push(Wr(e,o,i))),e=e.return}return r}function Zr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Yr(e,t,n,r,i){for(var o=t._reactName,a=[];null!==n&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,i?null!=(l=Pe(n,o))&&a.unshift(Wr(n,l,s)):i||null!=(l=Pe(n,o))&&a.push(Wr(n,l,s))),n=n.return}0!==a.length&&e.push({event:t,listeners:a})}var Kr=/\r\n?/g,Qr=/\u0000|\uFFFD/g;function Xr(e){return("string"===typeof e?e:""+e).replace(Kr,"\n").replace(Qr,"")}function $r(e,t,n){if(t=Xr(t),Xr(e)!==t&&n)throw Error(o(425))}function Jr(){}var ei=null,ti=null;function ni(e,t){return"textarea"===e||"noscript"===e||"string"===typeof t.children||"number"===typeof t.children||"object"===typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ri="function"===typeof setTimeout?setTimeout:void 0,ii="function"===typeof clearTimeout?clearTimeout:void 0,oi="function"===typeof Promise?Promise:void 0,ai="function"===typeof queueMicrotask?queueMicrotask:"undefined"!==typeof oi?function(e){return oi.resolve(null).then(e).catch(si)}:ri;function si(e){setTimeout((function(){throw e}))}function li(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&8===i.nodeType)if("/$"===(n=i.data)){if(0===r)return e.removeChild(i),void Ht(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=i}while(n);Ht(t)}function ci(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ui(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 di=Math.random().toString(36).slice(2),hi="__reactFiber$"+di,pi="__reactProps$"+di,fi="__reactContainer$"+di,mi="__reactEvents$"+di,gi="__reactListeners$"+di,vi="__reactHandles$"+di;function yi(e){var t=e[hi];if(t)return t;for(var n=e.parentNode;n;){if(t=n[fi]||n[hi]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ui(e);null!==e;){if(n=e[hi])return n;e=ui(e)}return t}n=(e=n).parentNode}return null}function bi(e){return!(e=e[hi]||e[fi])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function xi(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(o(33))}function wi(e){return e[pi]||null}var Si=[],_i=-1;function Ci(e){return{current:e}}function Ei(e){0>_i||(e.current=Si[_i],Si[_i]=null,_i--)}function Ti(e,t){_i++,Si[_i]=e.current,e.current=t}var Oi={},Ni=Ci(Oi),ki=Ci(!1),ji=Oi;function Ii(e,t){var n=e.type.contextTypes;if(!n)return Oi;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,o={};for(i in n)o[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Pi(e){return null!==(e=e.childContextTypes)&&void 0!==e}function Di(){Ei(ki),Ei(Ni)}function Ai(e,t,n){if(Ni.current!==Oi)throw Error(o(168));Ti(Ni,t),Ti(ki,n)}function Ri(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!==typeof r.getChildContext)return n;for(var i in r=r.getChildContext())if(!(i in t))throw Error(o(108,V(e)||"Unknown",i));return L({},n,r)}function Mi(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Oi,ji=Ni.current,Ti(Ni,e),Ti(ki,ki.current),!0}function Li(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=Ri(e,t,ji),r.__reactInternalMemoizedMergedChildContext=e,Ei(ki),Ei(Ni),Ti(Ni,e)):Ei(ki),Ti(ki,n)}var Fi=null,zi=!1,Bi=!1;function Ui(e){null===Fi?Fi=[e]:Fi.push(e)}function Hi(){if(!Bi&&null!==Fi){Bi=!0;var e=0,t=bt;try{var n=Fi;for(bt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Fi=null,zi=!1}catch(i){throw null!==Fi&&(Fi=Fi.slice(e+1)),Ze(Je,Hi),i}finally{bt=t,Bi=!1}}return null}var Vi=[],Gi=0,Wi=null,qi=0,Zi=[],Yi=0,Ki=null,Qi=1,Xi="";function $i(e,t){Vi[Gi++]=qi,Vi[Gi++]=Wi,Wi=e,qi=t}function Ji(e,t,n){Zi[Yi++]=Qi,Zi[Yi++]=Xi,Zi[Yi++]=Ki,Ki=e;var r=Qi;e=Xi;var i=32-at(r)-1;r&=~(1<<i),n+=1;var o=32-at(t)+i;if(30<o){var a=i-i%5;o=(r&(1<<a)-1).toString(32),r>>=a,i-=a,Qi=1<<32-at(t)+i|n<<i|r,Xi=o+e}else Qi=1<<o|n<<i|r,Xi=e}function eo(e){null!==e.return&&($i(e,1),Ji(e,1,0))}function to(e){for(;e===Wi;)Wi=Vi[--Gi],Vi[Gi]=null,qi=Vi[--Gi],Vi[Gi]=null;for(;e===Ki;)Ki=Zi[--Yi],Zi[Yi]=null,Xi=Zi[--Yi],Zi[Yi]=null,Qi=Zi[--Yi],Zi[Yi]=null}var no=null,ro=null,io=!1,oo=null;function ao(e,t){var n=Pc(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function so(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,no=e,ro=ci(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,no=e,ro=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Ki?{id:Qi,overflow:Xi}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Pc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,no=e,ro=null,!0);default:return!1}}function lo(e){return 0!==(1&e.mode)&&0===(128&e.flags)}function co(e){if(io){var t=ro;if(t){var n=t;if(!so(e,t)){if(lo(e))throw Error(o(418));t=ci(n.nextSibling);var r=no;t&&so(e,t)?ao(r,n):(e.flags=-4097&e.flags|2,io=!1,no=e)}}else{if(lo(e))throw Error(o(418));e.flags=-4097&e.flags|2,io=!1,no=e}}}function uo(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;no=e}function ho(e){if(e!==no)return!1;if(!io)return uo(e),io=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!ni(e.type,e.memoizedProps)),t&&(t=ro)){if(lo(e))throw po(),Error(o(418));for(;t;)ao(e,t),t=ci(t.nextSibling)}if(uo(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ro=ci(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ro=null}}else ro=no?ci(e.stateNode.nextSibling):null;return!0}function po(){for(var e=ro;e;)e=ci(e.nextSibling)}function fo(){ro=no=null,io=!1}function mo(e){null===oo?oo=[e]:oo.push(e)}var go=x.ReactCurrentBatchConfig;function vo(e,t){if(e&&e.defaultProps){for(var n in t=L({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var yo=Ci(null),bo=null,xo=null,wo=null;function So(){wo=xo=bo=null}function _o(e){var t=yo.current;Ei(yo),e._currentValue=t}function Co(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Eo(e,t){bo=e,wo=xo=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!==(e.lanes&t)&&(xs=!0),e.firstContext=null)}function To(e){var t=e._currentValue;if(wo!==e)if(e={context:e,memoizedValue:t,next:null},null===xo){if(null===bo)throw Error(o(308));xo=e,bo.dependencies={lanes:0,firstContext:e}}else xo=xo.next=e;return t}var Oo=null;function No(e){null===Oo?Oo=[e]:Oo.push(e)}function ko(e,t,n,r){var i=t.interleaved;return null===i?(n.next=n,No(t)):(n.next=i.next,i.next=n),t.interleaved=n,jo(e,r)}function jo(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}var Io=!1;function Po(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Do(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 Ao(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ro(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!==(2&kl)){var i=r.pending;return null===i?t.next=t:(t.next=i.next,i.next=t),r.pending=t,jo(e,n)}return null===(i=r.interleaved)?(t.next=t,No(r)):(t.next=i.next,i.next=t),r.interleaved=t,jo(e,n)}function Mo(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!==(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}function Lo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var i=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?i=o=a:o=o.next=a,n=n.next}while(null!==n);null===o?i=o=t:o=o.next=t}else i=o=t;return n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Fo(e,t,n,r){var i=e.updateQueue;Io=!1;var o=i.firstBaseUpdate,a=i.lastBaseUpdate,s=i.shared.pending;if(null!==s){i.shared.pending=null;var l=s,c=l.next;l.next=null,null===a?o=c:a.next=c,a=l;var u=e.alternate;null!==u&&((s=(u=u.updateQueue).lastBaseUpdate)!==a&&(null===s?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(null!==o){var d=i.baseState;for(a=0,u=c=l=null,s=o;;){var h=s.lane,p=s.eventTime;if((r&h)===h){null!==u&&(u=u.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var f=e,m=s;switch(h=t,p=n,m.tag){case 1:if("function"===typeof(f=m.payload)){d=f.call(p,d,h);break e}d=f;break e;case 3:f.flags=-65537&f.flags|128;case 0:if(null===(h="function"===typeof(f=m.payload)?f.call(p,d,h):f)||void 0===h)break e;d=L({},d,h);break e;case 2:Io=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(h=i.effects)?i.effects=[s]:h.push(s))}else p={eventTime:p,lane:h,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===u?(c=u=p,l=d):u=u.next=p,a|=h;if(null===(s=s.next)){if(null===(s=i.shared.pending))break;s=(h=s).next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}if(null===u&&(l=d),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=u,null!==(t=i.shared.interleaved)){i=t;do{a|=i.lane,i=i.next}while(i!==t)}else null===o&&(i.shared.lanes=0);Ll|=a,e.lanes=a,e.memoizedState=d}}function zo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],i=r.callback;if(null!==i){if(r.callback=null,r=n,"function"!==typeof i)throw Error(o(191,i));i.call(r)}}}var Bo=(new r.Component).refs;function Uo(e,t,n,r){n=null===(n=n(r,t=e.memoizedState))||void 0===n?t:L({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var Ho={isMounted:function(e){return!!(e=e._reactInternals)&&He(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=tc(),i=nc(e),o=Ao(r,i);o.payload=t,void 0!==n&&null!==n&&(o.callback=n),null!==(t=Ro(e,o,i))&&(rc(t,e,i,r),Mo(t,e,i))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=tc(),i=nc(e),o=Ao(r,i);o.tag=1,o.payload=t,void 0!==n&&null!==n&&(o.callback=n),null!==(t=Ro(e,o,i))&&(rc(t,e,i,r),Mo(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=tc(),r=nc(e),i=Ao(n,r);i.tag=2,void 0!==t&&null!==t&&(i.callback=t),null!==(t=Ro(e,i,r))&&(rc(t,e,r,n),Mo(t,e,r))}};function Vo(e,t,n,r,i,o,a){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,a):!t.prototype||!t.prototype.isPureReactComponent||(!lr(n,r)||!lr(i,o))}function Go(e,t,n){var r=!1,i=Oi,o=t.contextType;return"object"===typeof o&&null!==o?o=To(o):(i=Pi(t)?ji:Ni.current,o=(r=null!==(r=t.contextTypes)&&void 0!==r)?Ii(e,i):Oi),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Ho,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=i,e.__reactInternalMemoizedMaskedChildContext=o),t}function Wo(e,t,n,r){e=t.state,"function"===typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"===typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Ho.enqueueReplaceState(t,t.state,null)}function qo(e,t,n,r){var i=e.stateNode;i.props=n,i.state=e.memoizedState,i.refs=Bo,Po(e);var o=t.contextType;"object"===typeof o&&null!==o?i.context=To(o):(o=Pi(t)?ji:Ni.current,i.context=Ii(e,o)),i.state=e.memoizedState,"function"===typeof(o=t.getDerivedStateFromProps)&&(Uo(e,t,o,n),i.state=e.memoizedState),"function"===typeof t.getDerivedStateFromProps||"function"===typeof i.getSnapshotBeforeUpdate||"function"!==typeof i.UNSAFE_componentWillMount&&"function"!==typeof i.componentWillMount||(t=i.state,"function"===typeof i.componentWillMount&&i.componentWillMount(),"function"===typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount(),t!==i.state&&Ho.enqueueReplaceState(i,i.state,null),Fo(e,n,i,r),i.state=e.memoizedState),"function"===typeof i.componentDidMount&&(e.flags|=4194308)}function Zo(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(o(309));var r=n.stateNode}if(!r)throw Error(o(147,e));var i=r,a=""+e;return null!==t&&null!==t.ref&&"function"===typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=i.refs;t===Bo&&(t=i.refs={}),null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!==typeof e)throw Error(o(284));if(!n._owner)throw Error(o(290,e))}return e}function Yo(e,t){throw e=Object.prototype.toString.call(t),Error(o(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Ko(e){return(0,e._init)(e._payload)}function Qo(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(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 i(e,t){return(e=Ac(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Fc(n,e.mode,r)).return=e,t):((t=i(t,n)).return=e,t)}function c(e,t,n,r){var o=n.type;return o===_?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===o||"object"===typeof o&&null!==o&&o.$$typeof===P&&Ko(o)===t.type)?((r=i(t,n.props)).ref=Zo(e,t,n),r.return=e,r):((r=Rc(n.type,n.key,n.props,null,e.mode,r)).ref=Zo(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=zc(n,e.mode,r)).return=e,t):((t=i(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Mc(n,e.mode,r,o)).return=e,t):((t=i(t,n)).return=e,t)}function h(e,t,n){if("string"===typeof t&&""!==t||"number"===typeof t)return(t=Fc(""+t,e.mode,n)).return=e,t;if("object"===typeof t&&null!==t){switch(t.$$typeof){case w:return(n=Rc(t.type,t.key,t.props,null,e.mode,n)).ref=Zo(e,null,t),n.return=e,n;case S:return(t=zc(t,e.mode,n)).return=e,t;case P:return h(e,(0,t._init)(t._payload),n)}if(te(t)||R(t))return(t=Mc(t,e.mode,n,null)).return=e,t;Yo(e,t)}return null}function p(e,t,n,r){var i=null!==t?t.key:null;if("string"===typeof n&&""!==n||"number"===typeof n)return null!==i?null:l(e,t,""+n,r);if("object"===typeof n&&null!==n){switch(n.$$typeof){case w:return n.key===i?c(e,t,n,r):null;case S:return n.key===i?u(e,t,n,r):null;case P:return p(e,t,(i=n._init)(n._payload),r)}if(te(n)||R(n))return null!==i?null:d(e,t,n,r,null);Yo(e,n)}return null}function f(e,t,n,r,i){if("string"===typeof r&&""!==r||"number"===typeof r)return l(t,e=e.get(n)||null,""+r,i);if("object"===typeof r&&null!==r){switch(r.$$typeof){case w:return c(t,e=e.get(null===r.key?n:r.key)||null,r,i);case S:return u(t,e=e.get(null===r.key?n:r.key)||null,r,i);case P:return f(e,t,n,(0,r._init)(r._payload),i)}if(te(r)||R(r))return d(t,e=e.get(n)||null,r,i,null);Yo(t,r)}return null}function m(i,o,s,l){for(var c=null,u=null,d=o,m=o=0,g=null;null!==d&&m<s.length;m++){d.index>m?(g=d,d=null):g=d.sibling;var v=p(i,d,s[m],l);if(null===v){null===d&&(d=g);break}e&&d&&null===v.alternate&&t(i,d),o=a(v,o,m),null===u?c=v:u.sibling=v,u=v,d=g}if(m===s.length)return n(i,d),io&&$i(i,m),c;if(null===d){for(;m<s.length;m++)null!==(d=h(i,s[m],l))&&(o=a(d,o,m),null===u?c=d:u.sibling=d,u=d);return io&&$i(i,m),c}for(d=r(i,d);m<s.length;m++)null!==(g=f(d,i,m,s[m],l))&&(e&&null!==g.alternate&&d.delete(null===g.key?m:g.key),o=a(g,o,m),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(i,e)})),io&&$i(i,m),c}function g(i,s,l,c){var u=R(l);if("function"!==typeof u)throw Error(o(150));if(null==(l=u.call(l)))throw Error(o(151));for(var d=u=null,m=s,g=s=0,v=null,y=l.next();null!==m&&!y.done;g++,y=l.next()){m.index>g?(v=m,m=null):v=m.sibling;var b=p(i,m,y.value,c);if(null===b){null===m&&(m=v);break}e&&m&&null===b.alternate&&t(i,m),s=a(b,s,g),null===d?u=b:d.sibling=b,d=b,m=v}if(y.done)return n(i,m),io&&$i(i,g),u;if(null===m){for(;!y.done;g++,y=l.next())null!==(y=h(i,y.value,c))&&(s=a(y,s,g),null===d?u=y:d.sibling=y,d=y);return io&&$i(i,g),u}for(m=r(i,m);!y.done;g++,y=l.next())null!==(y=f(m,i,g,y.value,c))&&(e&&null!==y.alternate&&m.delete(null===y.key?g:y.key),s=a(y,s,g),null===d?u=y:d.sibling=y,d=y);return e&&m.forEach((function(e){return t(i,e)})),io&&$i(i,g),u}return function e(r,o,a,l){if("object"===typeof a&&null!==a&&a.type===_&&null===a.key&&(a=a.props.children),"object"===typeof a&&null!==a){switch(a.$$typeof){case w:e:{for(var c=a.key,u=o;null!==u;){if(u.key===c){if((c=a.type)===_){if(7===u.tag){n(r,u.sibling),(o=i(u,a.props.children)).return=r,r=o;break e}}else if(u.elementType===c||"object"===typeof c&&null!==c&&c.$$typeof===P&&Ko(c)===u.type){n(r,u.sibling),(o=i(u,a.props)).ref=Zo(r,u,a),o.return=r,r=o;break e}n(r,u);break}t(r,u),u=u.sibling}a.type===_?((o=Mc(a.props.children,r.mode,l,a.key)).return=r,r=o):((l=Rc(a.type,a.key,a.props,null,r.mode,l)).ref=Zo(r,o,a),l.return=r,r=l)}return s(r);case S:e:{for(u=a.key;null!==o;){if(o.key===u){if(4===o.tag&&o.stateNode.containerInfo===a.containerInfo&&o.stateNode.implementation===a.implementation){n(r,o.sibling),(o=i(o,a.children||[])).return=r,r=o;break e}n(r,o);break}t(r,o),o=o.sibling}(o=zc(a,r.mode,l)).return=r,r=o}return s(r);case P:return e(r,o,(u=a._init)(a._payload),l)}if(te(a))return m(r,o,a,l);if(R(a))return g(r,o,a,l);Yo(r,a)}return"string"===typeof a&&""!==a||"number"===typeof a?(a=""+a,null!==o&&6===o.tag?(n(r,o.sibling),(o=i(o,a)).return=r,r=o):(n(r,o),(o=Fc(a,r.mode,l)).return=r,r=o),s(r)):n(r,o)}}var Xo=Qo(!0),$o=Qo(!1),Jo={},ea=Ci(Jo),ta=Ci(Jo),na=Ci(Jo);function ra(e){if(e===Jo)throw Error(o(174));return e}function ia(e,t){switch(Ti(na,t),Ti(ta,e),Ti(ea,Jo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Ei(ea),Ti(ea,t)}function oa(){Ei(ea),Ei(ta),Ei(na)}function aa(e){ra(na.current);var t=ra(ea.current),n=le(t,e.type);t!==n&&(Ti(ta,e),Ti(ea,n))}function sa(e){ta.current===e&&(Ei(ea),Ei(ta))}var la=Ci(0);function ca(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!==(128&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 ua=[];function da(){for(var e=0;e<ua.length;e++)ua[e]._workInProgressVersionPrimary=null;ua.length=0}var ha=x.ReactCurrentDispatcher,pa=x.ReactCurrentBatchConfig,fa=0,ma=null,ga=null,va=null,ya=!1,ba=!1,xa=0,wa=0;function Sa(){throw Error(o(321))}function _a(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function Ca(e,t,n,r,i,a){if(fa=a,ma=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,ha.current=null===e||null===e.memoizedState?ss:ls,e=n(r,i),ba){a=0;do{if(ba=!1,xa=0,25<=a)throw Error(o(301));a+=1,va=ga=null,t.updateQueue=null,ha.current=cs,e=n(r,i)}while(ba)}if(ha.current=as,t=null!==ga&&null!==ga.next,fa=0,va=ga=ma=null,ya=!1,t)throw Error(o(300));return e}function Ea(){var e=0!==xa;return xa=0,e}function Ta(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===va?ma.memoizedState=va=e:va=va.next=e,va}function Oa(){if(null===ga){var e=ma.alternate;e=null!==e?e.memoizedState:null}else e=ga.next;var t=null===va?ma.memoizedState:va.next;if(null!==t)va=t,ga=e;else{if(null===e)throw Error(o(310));e={memoizedState:(ga=e).memoizedState,baseState:ga.baseState,baseQueue:ga.baseQueue,queue:ga.queue,next:null},null===va?ma.memoizedState=va=e:va=va.next=e}return va}function Na(e,t){return"function"===typeof t?t(e):t}function ka(e){var t=Oa(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=ga,i=r.baseQueue,a=n.pending;if(null!==a){if(null!==i){var s=i.next;i.next=a.next,a.next=s}r.baseQueue=i=a,n.pending=null}if(null!==i){a=i.next,r=r.baseState;var l=s=null,c=null,u=a;do{var d=u.lane;if((fa&d)===d)null!==c&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var h={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};null===c?(l=c=h,s=r):c=c.next=h,ma.lanes|=d,Ll|=d}u=u.next}while(null!==u&&u!==a);null===c?s=r:c.next=l,sr(r,t.memoizedState)||(xs=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){i=e;do{a=i.lane,ma.lanes|=a,Ll|=a,i=i.next}while(i!==e)}else null===i&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function ja(e){var t=Oa(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,i=n.pending,a=t.memoizedState;if(null!==i){n.pending=null;var s=i=i.next;do{a=e(a,s.action),s=s.next}while(s!==i);sr(a,t.memoizedState)||(xs=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function Ia(){}function Pa(e,t){var n=ma,r=Oa(),i=t(),a=!sr(r.memoizedState,i);if(a&&(r.memoizedState=i,xs=!0),r=r.queue,Ga(Ra.bind(null,n,r,e),[e]),r.getSnapshot!==t||a||null!==va&&1&va.memoizedState.tag){if(n.flags|=2048,za(9,Aa.bind(null,n,r,i,t),void 0,null),null===jl)throw Error(o(349));0!==(30&fa)||Da(n,t,i)}return i}function Da(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=ma.updateQueue)?(t={lastEffect:null,stores:null},ma.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Aa(e,t,n,r){t.value=n,t.getSnapshot=r,Ma(t)&&La(e)}function Ra(e,t,n){return n((function(){Ma(t)&&La(e)}))}function Ma(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(r){return!0}}function La(e){var t=jo(e,1);null!==t&&rc(t,e,1,-1)}function Fa(e){var t=Ta();return"function"===typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Na,lastRenderedState:e},t.queue=e,e=e.dispatch=ns.bind(null,ma,e),[t.memoizedState,e]}function za(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=ma.updateQueue)?(t={lastEffect:null,stores:null},ma.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Ba(){return Oa().memoizedState}function Ua(e,t,n,r){var i=Ta();ma.flags|=e,i.memoizedState=za(1|t,n,void 0,void 0===r?null:r)}function Ha(e,t,n,r){var i=Oa();r=void 0===r?null:r;var o=void 0;if(null!==ga){var a=ga.memoizedState;if(o=a.destroy,null!==r&&_a(r,a.deps))return void(i.memoizedState=za(t,n,o,r))}ma.flags|=e,i.memoizedState=za(1|t,n,o,r)}function Va(e,t){return Ua(8390656,8,e,t)}function Ga(e,t){return Ha(2048,8,e,t)}function Wa(e,t){return Ha(4,2,e,t)}function qa(e,t){return Ha(4,4,e,t)}function Za(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 Ya(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,Ha(4,4,Za.bind(null,t,e),n)}function Ka(){}function Qa(e,t){var n=Oa();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&_a(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Xa(e,t){var n=Oa();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&_a(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function $a(e,t,n){return 0===(21&fa)?(e.baseState&&(e.baseState=!1,xs=!0),e.memoizedState=n):(sr(n,t)||(n=mt(),ma.lanes|=n,Ll|=n,e.baseState=!0),t)}function Ja(e,t){var n=bt;bt=0!==n&&4>n?n:4,e(!0);var r=pa.transition;pa.transition={};try{e(!1),t()}finally{bt=n,pa.transition=r}}function es(){return Oa().memoizedState}function ts(e,t,n){var r=nc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},rs(e))is(t,n);else if(null!==(n=ko(e,t,n,r))){rc(n,e,r,tc()),os(n,t,r)}}function ns(e,t,n){var r=nc(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(rs(e))is(t,i);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var a=t.lastRenderedState,s=o(a,n);if(i.hasEagerState=!0,i.eagerState=s,sr(s,a)){var l=t.interleaved;return null===l?(i.next=i,No(t)):(i.next=l.next,l.next=i),void(t.interleaved=i)}}catch(c){}null!==(n=ko(e,t,i,r))&&(rc(n,e,r,i=tc()),os(n,t,r))}}function rs(e){var t=e.alternate;return e===ma||null!==t&&t===ma}function is(e,t){ba=ya=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function os(e,t,n){if(0!==(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}var as={readContext:To,useCallback:Sa,useContext:Sa,useEffect:Sa,useImperativeHandle:Sa,useInsertionEffect:Sa,useLayoutEffect:Sa,useMemo:Sa,useReducer:Sa,useRef:Sa,useState:Sa,useDebugValue:Sa,useDeferredValue:Sa,useTransition:Sa,useMutableSource:Sa,useSyncExternalStore:Sa,useId:Sa,unstable_isNewReconciler:!1},ss={readContext:To,useCallback:function(e,t){return Ta().memoizedState=[e,void 0===t?null:t],e},useContext:To,useEffect:Va,useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,Ua(4194308,4,Za.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ua(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ua(4,2,e,t)},useMemo:function(e,t){var n=Ta();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ta();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=ts.bind(null,ma,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Ta().memoizedState=e},useState:Fa,useDebugValue:Ka,useDeferredValue:function(e){return Ta().memoizedState=e},useTransition:function(){var e=Fa(!1),t=e[0];return e=Ja.bind(null,e[1]),Ta().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ma,i=Ta();if(io){if(void 0===n)throw Error(o(407));n=n()}else{if(n=t(),null===jl)throw Error(o(349));0!==(30&fa)||Da(r,t,n)}i.memoizedState=n;var a={value:n,getSnapshot:t};return i.queue=a,Va(Ra.bind(null,r,a,e),[e]),r.flags|=2048,za(9,Aa.bind(null,r,a,n,t),void 0,null),n},useId:function(){var e=Ta(),t=jl.identifierPrefix;if(io){var n=Xi;t=":"+t+"R"+(n=(Qi&~(1<<32-at(Qi)-1)).toString(32)+n),0<(n=xa++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=wa++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},ls={readContext:To,useCallback:Qa,useContext:To,useEffect:Ga,useImperativeHandle:Ya,useInsertionEffect:Wa,useLayoutEffect:qa,useMemo:Xa,useReducer:ka,useRef:Ba,useState:function(){return ka(Na)},useDebugValue:Ka,useDeferredValue:function(e){return $a(Oa(),ga.memoizedState,e)},useTransition:function(){return[ka(Na)[0],Oa().memoizedState]},useMutableSource:Ia,useSyncExternalStore:Pa,useId:es,unstable_isNewReconciler:!1},cs={readContext:To,useCallback:Qa,useContext:To,useEffect:Ga,useImperativeHandle:Ya,useInsertionEffect:Wa,useLayoutEffect:qa,useMemo:Xa,useReducer:ja,useRef:Ba,useState:function(){return ja(Na)},useDebugValue:Ka,useDeferredValue:function(e){var t=Oa();return null===ga?t.memoizedState=e:$a(t,ga.memoizedState,e)},useTransition:function(){return[ja(Na)[0],Oa().memoizedState]},useMutableSource:Ia,useSyncExternalStore:Pa,useId:es,unstable_isNewReconciler:!1};function us(e,t){try{var n="",r=t;do{n+=U(r),r=r.return}while(r);var i=n}catch(o){i="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:i,digest:null}}function ds(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function hs(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var ps="function"===typeof WeakMap?WeakMap:Map;function fs(e,t,n){(n=Ao(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Wl||(Wl=!0,ql=r),hs(0,t)},n}function ms(e,t,n){(n=Ao(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"===typeof r){var i=t.value;n.payload=function(){return r(i)},n.callback=function(){hs(0,t)}}var o=e.stateNode;return null!==o&&"function"===typeof o.componentDidCatch&&(n.callback=function(){hs(0,t),"function"!==typeof r&&(null===Zl?Zl=new Set([this]):Zl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function gs(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new ps;var i=new Set;r.set(t,i)}else void 0===(i=r.get(t))&&(i=new Set,r.set(t,i));i.has(n)||(i.add(n),e=Tc.bind(null,e,t,n),t.then(e,e))}function vs(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function ys(e,t,n,r,i){return 0===(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Ao(-1,1)).tag=2,Ro(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=i,e)}var bs=x.ReactCurrentOwner,xs=!1;function ws(e,t,n,r){t.child=null===e?$o(t,null,n,r):Xo(t,e.child,n,r)}function Ss(e,t,n,r,i){n=n.render;var o=t.ref;return Eo(t,i),r=Ca(e,t,n,r,o,i),n=Ea(),null===e||xs?(io&&n&&eo(t),t.flags|=1,ws(e,t,r,i),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Ws(e,t,i))}function _s(e,t,n,r,i){if(null===e){var o=n.type;return"function"!==typeof o||Dc(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Rc(n.type,null,r,t,t.mode,i)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Cs(e,t,o,r,i))}if(o=e.child,0===(e.lanes&i)){var a=o.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(a,r)&&e.ref===t.ref)return Ws(e,t,i)}return t.flags|=1,(e=Ac(o,r)).ref=t.ref,e.return=t,t.child=e}function Cs(e,t,n,r,i){if(null!==e){var o=e.memoizedProps;if(lr(o,r)&&e.ref===t.ref){if(xs=!1,t.pendingProps=r=o,0===(e.lanes&i))return t.lanes=e.lanes,Ws(e,t,i);0!==(131072&e.flags)&&(xs=!0)}}return Os(e,t,n,r,i)}function Es(e,t,n){var r=t.pendingProps,i=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0===(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ti(Al,Dl),Dl|=n;else{if(0===(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ti(Al,Dl),Dl|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==o?o.baseLanes:n,Ti(Al,Dl),Dl|=r}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ti(Al,Dl),Dl|=r;return ws(e,t,i,n),t.child}function Ts(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Os(e,t,n,r,i){var o=Pi(n)?ji:Ni.current;return o=Ii(t,o),Eo(t,i),n=Ca(e,t,n,r,o,i),r=Ea(),null===e||xs?(io&&r&&eo(t),t.flags|=1,ws(e,t,n,i),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Ws(e,t,i))}function Ns(e,t,n,r,i){if(Pi(n)){var o=!0;Mi(t)}else o=!1;if(Eo(t,i),null===t.stateNode)Gs(e,t),Go(t,n,r),qo(t,n,r,i),r=!0;else if(null===e){var a=t.stateNode,s=t.memoizedProps;a.props=s;var l=a.context,c=n.contextType;"object"===typeof c&&null!==c?c=To(c):c=Ii(t,c=Pi(n)?ji:Ni.current);var u=n.getDerivedStateFromProps,d="function"===typeof u||"function"===typeof a.getSnapshotBeforeUpdate;d||"function"!==typeof a.UNSAFE_componentWillReceiveProps&&"function"!==typeof a.componentWillReceiveProps||(s!==r||l!==c)&&Wo(t,a,r,c),Io=!1;var h=t.memoizedState;a.state=h,Fo(t,r,a,i),l=t.memoizedState,s!==r||h!==l||ki.current||Io?("function"===typeof u&&(Uo(t,n,u,r),l=t.memoizedState),(s=Io||Vo(t,n,s,r,h,l,c))?(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|=4194308)):("function"===typeof a.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=c,r=s):("function"===typeof a.componentDidMount&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Do(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:vo(t.type,s),a.props=c,d=t.pendingProps,h=a.context,"object"===typeof(l=n.contextType)&&null!==l?l=To(l):l=Ii(t,l=Pi(n)?ji:Ni.current);var p=n.getDerivedStateFromProps;(u="function"===typeof p||"function"===typeof a.getSnapshotBeforeUpdate)||"function"!==typeof a.UNSAFE_componentWillReceiveProps&&"function"!==typeof a.componentWillReceiveProps||(s!==d||h!==l)&&Wo(t,a,r,l),Io=!1,h=t.memoizedState,a.state=h,Fo(t,r,a,i);var f=t.memoizedState;s!==d||h!==f||ki.current||Io?("function"===typeof p&&(Uo(t,n,p,r),f=t.memoizedState),(c=Io||Vo(t,n,c,r,h,f,l)||!1)?(u||"function"!==typeof a.UNSAFE_componentWillUpdate&&"function"!==typeof a.componentWillUpdate||("function"===typeof a.componentWillUpdate&&a.componentWillUpdate(r,f,l),"function"===typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(r,f,l)),"function"===typeof a.componentDidUpdate&&(t.flags|=4),"function"===typeof a.getSnapshotBeforeUpdate&&(t.flags|=1024)):("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|=1024),t.memoizedProps=r,t.memoizedState=f),a.props=r,a.state=f,a.context=l,r=c):("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|=1024),r=!1)}return ks(e,t,n,r,o,i)}function ks(e,t,n,r,i,o){Ts(e,t);var a=0!==(128&t.flags);if(!r&&!a)return i&&Li(t,n,!1),Ws(e,t,o);r=t.stateNode,bs.current=t;var s=a&&"function"!==typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&a?(t.child=Xo(t,e.child,null,o),t.child=Xo(t,null,s,o)):ws(e,t,s,o),t.memoizedState=r.state,i&&Li(t,n,!0),t.child}function js(e){var t=e.stateNode;t.pendingContext?Ai(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Ai(0,t.context,!1),ia(e,t.containerInfo)}function Is(e,t,n,r,i){return fo(),mo(i),t.flags|=256,ws(e,t,n,r),t.child}var Ps,Ds,As,Rs,Ms={dehydrated:null,treeContext:null,retryLane:0};function Ls(e){return{baseLanes:e,cachePool:null,transitions:null}}function Fs(e,t,n){var r,i=t.pendingProps,a=la.current,s=!1,l=0!==(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&0!==(2&a)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(a|=1),Ti(la,1&a),null===e)return co(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0===(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(l=i.children,e=i.fallback,s?(i=t.mode,s=t.child,l={mode:"hidden",children:l},0===(1&i)&&null!==s?(s.childLanes=0,s.pendingProps=l):s=Lc(l,i,0,null),e=Mc(e,i,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Ls(n),t.memoizedState=Ms,e):zs(t,l));if(null!==(a=e.memoizedState)&&null!==(r=a.dehydrated))return function(e,t,n,r,i,a,s){if(n)return 256&t.flags?(t.flags&=-257,Bs(e,t,s,r=ds(Error(o(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(a=r.fallback,i=t.mode,r=Lc({mode:"visible",children:r.children},i,0,null),(a=Mc(a,i,s,null)).flags|=2,r.return=t,a.return=t,r.sibling=a,t.child=r,0!==(1&t.mode)&&Xo(t,e.child,null,s),t.child.memoizedState=Ls(s),t.memoizedState=Ms,a);if(0===(1&t.mode))return Bs(e,t,s,null);if("$!"===i.data){if(r=i.nextSibling&&i.nextSibling.dataset)var l=r.dgst;return r=l,Bs(e,t,s,r=ds(a=Error(o(419)),r,void 0))}if(l=0!==(s&e.childLanes),xs||l){if(null!==(r=jl)){switch(s&-s){case 4:i=2;break;case 16:i=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:i=32;break;case 536870912:i=268435456;break;default:i=0}0!==(i=0!==(i&(r.suspendedLanes|s))?0:i)&&i!==a.retryLane&&(a.retryLane=i,jo(e,i),rc(r,e,i,-1))}return gc(),Bs(e,t,s,r=ds(Error(o(421))))}return"$?"===i.data?(t.flags|=128,t.child=e.child,t=Nc.bind(null,e),i._reactRetry=t,null):(e=a.treeContext,ro=ci(i.nextSibling),no=t,io=!0,oo=null,null!==e&&(Zi[Yi++]=Qi,Zi[Yi++]=Xi,Zi[Yi++]=Ki,Qi=e.id,Xi=e.overflow,Ki=t),t=zs(t,r.children),t.flags|=4096,t)}(e,t,l,i,r,a,n);if(s){s=i.fallback,l=t.mode,r=(a=e.child).sibling;var c={mode:"hidden",children:i.children};return 0===(1&l)&&t.child!==a?((i=t.child).childLanes=0,i.pendingProps=c,t.deletions=null):(i=Ac(a,c)).subtreeFlags=14680064&a.subtreeFlags,null!==r?s=Ac(r,s):(s=Mc(s,l,n,null)).flags|=2,s.return=t,i.return=t,i.sibling=s,t.child=i,i=s,s=t.child,l=null===(l=e.child.memoizedState)?Ls(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Ms,i}return e=(s=e.child).sibling,i=Ac(s,{mode:"visible",children:i.children}),0===(1&t.mode)&&(i.lanes=n),i.return=t,i.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=i,t.memoizedState=null,i}function zs(e,t){return(t=Lc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Bs(e,t,n,r){return null!==r&&mo(r),Xo(t,e.child,null,n),(e=zs(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Us(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Co(e.return,t,n)}function Hs(e,t,n,r,i){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i)}function Vs(e,t,n){var r=t.pendingProps,i=r.revealOrder,o=r.tail;if(ws(e,t,r.children,n),0!==(2&(r=la.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!==(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Us(e,n,t);else if(19===e.tag)Us(e,n,t);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}r&=1}if(Ti(la,r),0===(1&t.mode))t.memoizedState=null;else switch(i){case"forwards":for(n=t.child,i=null;null!==n;)null!==(e=n.alternate)&&null===ca(e)&&(i=n),n=n.sibling;null===(n=i)?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Hs(t,!1,i,n,o);break;case"backwards":for(n=null,i=t.child,t.child=null;null!==i;){if(null!==(e=i.alternate)&&null===ca(e)){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Hs(t,!0,n,null,o);break;case"together":Hs(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Gs(e,t){0===(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Ws(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ll|=t.lanes,0===(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(n=Ac(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ac(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function qs(e,t){if(!io)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 r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Zs(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;null!==i;)n|=i.lanes|i.childLanes,r|=14680064&i.subtreeFlags,r|=14680064&i.flags,i.return=e,i=i.sibling;else for(i=e.child;null!==i;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Ys(e,t,n){var r=t.pendingProps;switch(to(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Zs(t),null;case 1:case 17:return Pi(t.type)&&Di(),Zs(t),null;case 3:return r=t.stateNode,oa(),Ei(ki),Ei(Ni),da(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(ho(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0===(256&t.flags)||(t.flags|=1024,null!==oo&&(sc(oo),oo=null))),Ds(e,t),Zs(t),null;case 5:sa(t);var i=ra(na.current);if(n=t.type,null!==e&&null!=t.stateNode)As(e,t,n,r,i),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(o(166));return Zs(t),null}if(e=ra(ea.current),ho(t)){r=t.stateNode,n=t.type;var a=t.memoizedProps;switch(r[hi]=t,r[pi]=a,e=0!==(1&t.mode),n){case"dialog":zr("cancel",r),zr("close",r);break;case"iframe":case"object":case"embed":zr("load",r);break;case"video":case"audio":for(i=0;i<Rr.length;i++)zr(Rr[i],r);break;case"source":zr("error",r);break;case"img":case"image":case"link":zr("error",r),zr("load",r);break;case"details":zr("toggle",r);break;case"input":Q(r,a),zr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!a.multiple},zr("invalid",r);break;case"textarea":ie(r,a),zr("invalid",r)}for(var l in ye(n,a),i=null,a)if(a.hasOwnProperty(l)){var c=a[l];"children"===l?"string"===typeof c?r.textContent!==c&&(!0!==a.suppressHydrationWarning&&$r(r.textContent,c,e),i=["children",c]):"number"===typeof c&&r.textContent!==""+c&&(!0!==a.suppressHydrationWarning&&$r(r.textContent,c,e),i=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&zr("scroll",r)}switch(n){case"input":q(r),J(r,a,!0);break;case"textarea":q(r),ae(r);break;case"select":case"option":break;default:"function"===typeof a.onClick&&(r.onclick=Jr)}r=i,t.updateQueue=r,null!==r&&(t.flags|=4)}else{l=9===i.nodeType?i:i.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"===typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[hi]=t,e[pi]=r,Ps(e,t,!1,!1),t.stateNode=e;e:{switch(l=be(n,r),n){case"dialog":zr("cancel",e),zr("close",e),i=r;break;case"iframe":case"object":case"embed":zr("load",e),i=r;break;case"video":case"audio":for(i=0;i<Rr.length;i++)zr(Rr[i],e);i=r;break;case"source":zr("error",e),i=r;break;case"img":case"image":case"link":zr("error",e),zr("load",e),i=r;break;case"details":zr("toggle",e),i=r;break;case"input":Q(e,r),i=K(e,r),zr("invalid",e);break;case"option":default:i=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},i=L({},r,{value:void 0}),zr("invalid",e);break;case"textarea":ie(e,r),i=re(e,r),zr("invalid",e)}for(a in ye(n,i),c=i)if(c.hasOwnProperty(a)){var u=c[a];"style"===a?ge(e,u):"dangerouslySetInnerHTML"===a?null!=(u=u?u.__html:void 0)&&de(e,u):"children"===a?"string"===typeof u?("textarea"!==n||""!==u)&&he(e,u):"number"===typeof u&&he(e,""+u):"suppressContentEditableWarning"!==a&&"suppressHydrationWarning"!==a&&"autoFocus"!==a&&(s.hasOwnProperty(a)?null!=u&&"onScroll"===a&&zr("scroll",e):null!=u&&b(e,a,u,l))}switch(n){case"input":q(e),J(e,r,!1);break;case"textarea":q(e),ae(e);break;case"option":null!=r.value&&e.setAttribute("value",""+G(r.value));break;case"select":e.multiple=!!r.multiple,null!=(a=r.value)?ne(e,!!r.multiple,a,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"===typeof i.onClick&&(e.onclick=Jr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Zs(t),null;case 6:if(e&&null!=t.stateNode)Rs(e,t,e.memoizedProps,r);else{if("string"!==typeof r&&null===t.stateNode)throw Error(o(166));if(n=ra(na.current),ra(ea.current),ho(t)){if(r=t.stateNode,n=t.memoizedProps,r[hi]=t,(a=r.nodeValue!==n)&&null!==(e=no))switch(e.tag){case 3:$r(r.nodeValue,n,0!==(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&$r(r.nodeValue,n,0!==(1&e.mode))}a&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[hi]=t,t.stateNode=r}return Zs(t),null;case 13:if(Ei(la),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(io&&null!==ro&&0!==(1&t.mode)&&0===(128&t.flags))po(),fo(),t.flags|=98560,a=!1;else if(a=ho(t),null!==r&&null!==r.dehydrated){if(null===e){if(!a)throw Error(o(318));if(!(a=null!==(a=t.memoizedState)?a.dehydrated:null))throw Error(o(317));a[hi]=t}else fo(),0===(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Zs(t),a=!1}else null!==oo&&(sc(oo),oo=null),a=!0;if(!a)return 65536&t.flags?t:null}return 0!==(128&t.flags)?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!==(1&t.mode)&&(null===e||0!==(1&la.current)?0===Rl&&(Rl=3):gc())),null!==t.updateQueue&&(t.flags|=4),Zs(t),null);case 4:return oa(),Ds(e,t),null===e&&Hr(t.stateNode.containerInfo),Zs(t),null;case 10:return _o(t.type._context),Zs(t),null;case 19:if(Ei(la),null===(a=t.memoizedState))return Zs(t),null;if(r=0!==(128&t.flags),null===(l=a.rendering))if(r)qs(a,!1);else{if(0!==Rl||null!==e&&0!==(128&e.flags))for(e=t.child;null!==e;){if(null!==(l=ca(e))){for(t.flags|=128,qs(a,!1),null!==(r=l.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(a=n).flags&=14680066,null===(l=a.alternate)?(a.childLanes=0,a.lanes=e,a.child=null,a.subtreeFlags=0,a.memoizedProps=null,a.memoizedState=null,a.updateQueue=null,a.dependencies=null,a.stateNode=null):(a.childLanes=l.childLanes,a.lanes=l.lanes,a.child=l.child,a.subtreeFlags=0,a.deletions=null,a.memoizedProps=l.memoizedProps,a.memoizedState=l.memoizedState,a.updateQueue=l.updateQueue,a.type=l.type,e=l.dependencies,a.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ti(la,1&la.current|2),t.child}e=e.sibling}null!==a.tail&&Xe()>Vl&&(t.flags|=128,r=!0,qs(a,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ca(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),qs(a,!0),null===a.tail&&"hidden"===a.tailMode&&!l.alternate&&!io)return Zs(t),null}else 2*Xe()-a.renderingStartTime>Vl&&1073741824!==n&&(t.flags|=128,r=!0,qs(a,!1),t.lanes=4194304);a.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=a.last)?n.sibling=l:t.child=l,a.last=l)}return null!==a.tail?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=Xe(),t.sibling=null,n=la.current,Ti(la,r?1&n|2:1&n),t):(Zs(t),null);case 22:case 23:return hc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!==(1&t.mode)?0!==(1073741824&Dl)&&(Zs(t),6&t.subtreeFlags&&(t.flags|=8192)):Zs(t),null;case 24:case 25:return null}throw Error(o(156,t.tag))}function Ks(e,t){switch(to(t),t.tag){case 1:return Pi(t.type)&&Di(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return oa(),Ei(ki),Ei(Ni),da(),0!==(65536&(e=t.flags))&&0===(128&e)?(t.flags=-65537&e|128,t):null;case 5:return sa(t),null;case 13:if(Ei(la),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));fo()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Ei(la),null;case 4:return oa(),null;case 10:return _o(t.type._context),null;case 22:case 23:return hc(),null;default:return null}}Ps=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}},Ds=function(){},As=function(e,t,n,r){var i=e.memoizedProps;if(i!==r){e=t.stateNode,ra(ea.current);var o,a=null;switch(n){case"input":i=K(e,i),r=K(e,r),a=[];break;case"select":i=L({},i,{value:void 0}),r=L({},r,{value:void 0}),a=[];break;case"textarea":i=re(e,i),r=re(e,r),a=[];break;default:"function"!==typeof i.onClick&&"function"===typeof r.onClick&&(e.onclick=Jr)}for(u in ye(n,r),n=null,i)if(!r.hasOwnProperty(u)&&i.hasOwnProperty(u)&&null!=i[u])if("style"===u){var l=i[u];for(o in l)l.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(s.hasOwnProperty(u)?a||(a=[]):(a=a||[]).push(u,null));for(u in r){var c=r[u];if(l=null!=i?i[u]:void 0,r.hasOwnProperty(u)&&c!==l&&(null!=c||null!=l))if("style"===u)if(l){for(o in l)!l.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in c)c.hasOwnProperty(o)&&l[o]!==c[o]&&(n||(n={}),n[o]=c[o])}else n||(a||(a=[]),a.push(u,n)),n=c;else"dangerouslySetInnerHTML"===u?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(a=a||[]).push(u,c)):"children"===u?"string"!==typeof c&&"number"!==typeof c||(a=a||[]).push(u,""+c):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(s.hasOwnProperty(u)?(null!=c&&"onScroll"===u&&zr("scroll",e),a||l===c||(a=[])):(a=a||[]).push(u,c))}n&&(a=a||[]).push("style",n);var u=a;(t.updateQueue=u)&&(t.flags|=4)}},Rs=function(e,t,n,r){n!==r&&(t.flags|=4)};var Qs=!1,Xs=!1,$s="function"===typeof WeakSet?WeakSet:Set,Js=null;function el(e,t){var n=e.ref;if(null!==n)if("function"===typeof n)try{n(null)}catch(r){Ec(e,t,r)}else n.current=null}function tl(e,t,n){try{n()}catch(r){Ec(e,t,r)}}var nl=!1;function rl(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,void 0!==o&&tl(t,n,o)}i=i.next}while(i!==r)}}function il(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ol(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"===typeof t?t(e):t.current=e}}function al(e){var t=e.alternate;null!==t&&(e.alternate=null,al(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[hi],delete t[pi],delete t[mi],delete t[gi],delete t[vi])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function sl(e){return 5===e.tag||3===e.tag||4===e.tag}function ll(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||sl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function cl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,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=Jr));else if(4!==r&&null!==(e=e.child))for(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}function ul(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(ul(e,t,n),e=e.sibling;null!==e;)ul(e,t,n),e=e.sibling}var dl=null,hl=!1;function pl(e,t,n){for(n=n.child;null!==n;)fl(e,t,n),n=n.sibling}function fl(e,t,n){if(ot&&"function"===typeof ot.onCommitFiberUnmount)try{ot.onCommitFiberUnmount(it,n)}catch(s){}switch(n.tag){case 5:Xs||el(n,t);case 6:var r=dl,i=hl;dl=null,pl(e,t,n),hl=i,null!==(dl=r)&&(hl?(e=dl,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):dl.removeChild(n.stateNode));break;case 18:null!==dl&&(hl?(e=dl,n=n.stateNode,8===e.nodeType?li(e.parentNode,n):1===e.nodeType&&li(e,n),Ht(e)):li(dl,n.stateNode));break;case 4:r=dl,i=hl,dl=n.stateNode.containerInfo,hl=!0,pl(e,t,n),dl=r,hl=i;break;case 0:case 11:case 14:case 15:if(!Xs&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){i=r=r.next;do{var o=i,a=o.destroy;o=o.tag,void 0!==a&&(0!==(2&o)||0!==(4&o))&&tl(n,t,a),i=i.next}while(i!==r)}pl(e,t,n);break;case 1:if(!Xs&&(el(n,t),"function"===typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){Ec(n,t,s)}pl(e,t,n);break;case 21:pl(e,t,n);break;case 22:1&n.mode?(Xs=(r=Xs)||null!==n.memoizedState,pl(e,t,n),Xs=r):pl(e,t,n);break;default:pl(e,t,n)}}function ml(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new $s),t.forEach((function(t){var r=kc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function gl(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var i=n[r];try{var a=e,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:dl=l.stateNode,hl=!1;break e;case 3:case 4:dl=l.stateNode.containerInfo,hl=!0;break e}l=l.return}if(null===dl)throw Error(o(160));fl(a,s,i),dl=null,hl=!1;var c=i.alternate;null!==c&&(c.return=null),i.return=null}catch(u){Ec(i,t,u)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)vl(t,e),t=t.sibling}function vl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(gl(t,e),yl(e),4&r){try{rl(3,e,e.return),il(3,e)}catch(g){Ec(e,e.return,g)}try{rl(5,e,e.return)}catch(g){Ec(e,e.return,g)}}break;case 1:gl(t,e),yl(e),512&r&&null!==n&&el(n,n.return);break;case 5:if(gl(t,e),yl(e),512&r&&null!==n&&el(n,n.return),32&e.flags){var i=e.stateNode;try{he(i,"")}catch(g){Ec(e,e.return,g)}}if(4&r&&null!=(i=e.stateNode)){var a=e.memoizedProps,s=null!==n?n.memoizedProps:a,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===a.type&&null!=a.name&&X(i,a),be(l,s);var u=be(l,a);for(s=0;s<c.length;s+=2){var d=c[s],h=c[s+1];"style"===d?ge(i,h):"dangerouslySetInnerHTML"===d?de(i,h):"children"===d?he(i,h):b(i,d,h,u)}switch(l){case"input":$(i,a);break;case"textarea":oe(i,a);break;case"select":var p=i._wrapperState.wasMultiple;i._wrapperState.wasMultiple=!!a.multiple;var f=a.value;null!=f?ne(i,!!a.multiple,f,!1):p!==!!a.multiple&&(null!=a.defaultValue?ne(i,!!a.multiple,a.defaultValue,!0):ne(i,!!a.multiple,a.multiple?[]:"",!1))}i[pi]=a}catch(g){Ec(e,e.return,g)}}break;case 6:if(gl(t,e),yl(e),4&r){if(null===e.stateNode)throw Error(o(162));i=e.stateNode,a=e.memoizedProps;try{i.nodeValue=a}catch(g){Ec(e,e.return,g)}}break;case 3:if(gl(t,e),yl(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Ht(t.containerInfo)}catch(g){Ec(e,e.return,g)}break;case 4:default:gl(t,e),yl(e);break;case 13:gl(t,e),yl(e),8192&(i=e.child).flags&&(a=null!==i.memoizedState,i.stateNode.isHidden=a,!a||null!==i.alternate&&null!==i.alternate.memoizedState||(Hl=Xe())),4&r&&ml(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Xs=(u=Xs)||d,gl(t,e),Xs=u):gl(t,e),yl(e),8192&r){if(u=null!==e.memoizedState,(e.stateNode.isHidden=u)&&!d&&0!==(1&e.mode))for(Js=e,d=e.child;null!==d;){for(h=Js=d;null!==Js;){switch(f=(p=Js).child,p.tag){case 0:case 11:case 14:case 15:rl(4,p,p.return);break;case 1:el(p,p.return);var m=p.stateNode;if("function"===typeof m.componentWillUnmount){r=p,n=p.return;try{t=r,m.props=t.memoizedProps,m.state=t.memoizedState,m.componentWillUnmount()}catch(g){Ec(r,n,g)}}break;case 5:el(p,p.return);break;case 22:if(null!==p.memoizedState){Sl(h);continue}}null!==f?(f.return=p,Js=f):Sl(h)}d=d.sibling}e:for(d=null,h=e;;){if(5===h.tag){if(null===d){d=h;try{i=h.stateNode,u?"function"===typeof(a=i.style).setProperty?a.setProperty("display","none","important"):a.display="none":(l=h.stateNode,s=void 0!==(c=h.memoizedProps.style)&&null!==c&&c.hasOwnProperty("display")?c.display:null,l.style.display=me("display",s))}catch(g){Ec(e,e.return,g)}}}else if(6===h.tag){if(null===d)try{h.stateNode.nodeValue=u?"":h.memoizedProps}catch(g){Ec(e,e.return,g)}}else if((22!==h.tag&&23!==h.tag||null===h.memoizedState||h===e)&&null!==h.child){h.child.return=h,h=h.child;continue}if(h===e)break e;for(;null===h.sibling;){if(null===h.return||h.return===e)break e;d===h&&(d=null),h=h.return}d===h&&(d=null),h.sibling.return=h.return,h=h.sibling}}break;case 19:gl(t,e),yl(e),4&r&&ml(e);case 21:}}function yl(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(sl(n)){var r=n;break e}n=n.return}throw Error(o(160))}switch(r.tag){case 5:var i=r.stateNode;32&r.flags&&(he(i,""),r.flags&=-33),ul(e,ll(e),i);break;case 3:case 4:var a=r.stateNode.containerInfo;cl(e,ll(e),a);break;default:throw Error(o(161))}}catch(s){Ec(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function bl(e,t,n){Js=e,xl(e,t,n)}function xl(e,t,n){for(var r=0!==(1&e.mode);null!==Js;){var i=Js,o=i.child;if(22===i.tag&&r){var a=null!==i.memoizedState||Qs;if(!a){var s=i.alternate,l=null!==s&&null!==s.memoizedState||Xs;s=Qs;var c=Xs;if(Qs=a,(Xs=l)&&!c)for(Js=i;null!==Js;)l=(a=Js).child,22===a.tag&&null!==a.memoizedState?_l(i):null!==l?(l.return=a,Js=l):_l(i);for(;null!==o;)Js=o,xl(o,t,n),o=o.sibling;Js=i,Qs=s,Xs=c}wl(e)}else 0!==(8772&i.subtreeFlags)&&null!==o?(o.return=i,Js=o):wl(e)}}function wl(e){for(;null!==Js;){var t=Js;if(0!==(8772&t.flags)){var n=t.alternate;try{if(0!==(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Xs||il(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Xs)if(null===n)r.componentDidMount();else{var i=t.elementType===t.type?n.memoizedProps:vo(t.type,n.memoizedProps);r.componentDidUpdate(i,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var a=t.updateQueue;null!==a&&zo(t,a,r);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}zo(t,s,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var u=t.alternate;if(null!==u){var d=u.memoizedState;if(null!==d){var h=d.dehydrated;null!==h&&Ht(h)}}}break;default:throw Error(o(163))}Xs||512&t.flags&&ol(t)}catch(p){Ec(t,t.return,p)}}if(t===e){Js=null;break}if(null!==(n=t.sibling)){n.return=t.return,Js=n;break}Js=t.return}}function Sl(e){for(;null!==Js;){var t=Js;if(t===e){Js=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Js=n;break}Js=t.return}}function _l(e){for(;null!==Js;){var t=Js;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{il(4,t)}catch(l){Ec(t,n,l)}break;case 1:var r=t.stateNode;if("function"===typeof r.componentDidMount){var i=t.return;try{r.componentDidMount()}catch(l){Ec(t,i,l)}}var o=t.return;try{ol(t)}catch(l){Ec(t,o,l)}break;case 5:var a=t.return;try{ol(t)}catch(l){Ec(t,a,l)}}}catch(l){Ec(t,t.return,l)}if(t===e){Js=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Js=s;break}Js=t.return}}var Cl,El=Math.ceil,Tl=x.ReactCurrentDispatcher,Ol=x.ReactCurrentOwner,Nl=x.ReactCurrentBatchConfig,kl=0,jl=null,Il=null,Pl=0,Dl=0,Al=Ci(0),Rl=0,Ml=null,Ll=0,Fl=0,zl=0,Bl=null,Ul=null,Hl=0,Vl=1/0,Gl=null,Wl=!1,ql=null,Zl=null,Yl=!1,Kl=null,Ql=0,Xl=0,$l=null,Jl=-1,ec=0;function tc(){return 0!==(6&kl)?Xe():-1!==Jl?Jl:Jl=Xe()}function nc(e){return 0===(1&e.mode)?1:0!==(2&kl)&&0!==Pl?Pl&-Pl:null!==go.transition?(0===ec&&(ec=mt()),ec):0!==(e=bt)?e:e=void 0===(e=window.event)?16:Qt(e.type)}function rc(e,t,n,r){if(50<Xl)throw Xl=0,$l=null,Error(o(185));vt(e,n,r),0!==(2&kl)&&e===jl||(e===jl&&(0===(2&kl)&&(Fl|=n),4===Rl&&lc(e,Pl)),ic(e,r),1===n&&0===kl&&0===(1&t.mode)&&(Vl=Xe()+500,zi&&Hi()))}function ic(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,o=e.pendingLanes;0<o;){var a=31-at(o),s=1<<a,l=i[a];-1===l?0!==(s&n)&&0===(s&r)||(i[a]=pt(s,t)):l<=t&&(e.expiredLanes|=s),o&=~s}}(e,t);var r=ht(e,e===jl?Pl:0);if(0===r)null!==n&&Ye(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Ye(n),1===t)0===e.tag?function(e){zi=!0,Ui(e)}(cc.bind(null,e)):Ui(cc.bind(null,e)),ai((function(){0===(6&kl)&&Hi()})),n=null;else{switch(xt(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=jc(n,oc.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function oc(e,t){if(Jl=-1,ec=0,0!==(6&kl))throw Error(o(327));var n=e.callbackNode;if(_c()&&e.callbackNode!==n)return null;var r=ht(e,e===jl?Pl:0);if(0===r)return null;if(0!==(30&r)||0!==(r&e.expiredLanes)||t)t=vc(e,r);else{t=r;var i=kl;kl|=2;var a=mc();for(jl===e&&Pl===t||(Gl=null,Vl=Xe()+500,pc(e,t));;)try{bc();break}catch(l){fc(e,l)}So(),Tl.current=a,kl=i,null!==Il?t=0:(jl=null,Pl=0,t=Rl)}if(0!==t){if(2===t&&(0!==(i=ft(e))&&(r=i,t=ac(e,i))),1===t)throw n=Ml,pc(e,0),lc(e,r),ic(e,Xe()),n;if(6===t)lc(e,r);else{if(i=e.current.alternate,0===(30&r)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var i=n[r],o=i.getSnapshot;i=i.value;try{if(!sr(o(),i))return!1}catch(s){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(i)&&(2===(t=vc(e,r))&&(0!==(a=ft(e))&&(r=a,t=ac(e,a))),1===t))throw n=Ml,pc(e,0),lc(e,r),ic(e,Xe()),n;switch(e.finishedWork=i,e.finishedLanes=r,t){case 0:case 1:throw Error(o(345));case 2:case 5:Sc(e,Ul,Gl);break;case 3:if(lc(e,r),(130023424&r)===r&&10<(t=Hl+500-Xe())){if(0!==ht(e,0))break;if(((i=e.suspendedLanes)&r)!==r){tc(),e.pingedLanes|=e.suspendedLanes&i;break}e.timeoutHandle=ri(Sc.bind(null,e,Ul,Gl),t);break}Sc(e,Ul,Gl);break;case 4:if(lc(e,r),(4194240&r)===r)break;for(t=e.eventTimes,i=-1;0<r;){var s=31-at(r);a=1<<s,(s=t[s])>i&&(i=s),r&=~a}if(r=i,10<(r=(120>(r=Xe()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*El(r/1960))-r)){e.timeoutHandle=ri(Sc.bind(null,e,Ul,Gl),r);break}Sc(e,Ul,Gl);break;default:throw Error(o(329))}}}return ic(e,Xe()),e.callbackNode===n?oc.bind(null,e):null}function ac(e,t){var n=Bl;return e.current.memoizedState.isDehydrated&&(pc(e,t).flags|=256),2!==(e=vc(e,t))&&(t=Ul,Ul=n,null!==t&&sc(t)),e}function sc(e){null===Ul?Ul=e:Ul.push.apply(Ul,e)}function lc(e,t){for(t&=~zl,t&=~Fl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-at(t),r=1<<n;e[n]=-1,t&=~r}}function cc(e){if(0!==(6&kl))throw Error(o(327));_c();var t=ht(e,0);if(0===(1&t))return ic(e,Xe()),null;var n=vc(e,t);if(0!==e.tag&&2===n){var r=ft(e);0!==r&&(t=r,n=ac(e,r))}if(1===n)throw n=Ml,pc(e,0),lc(e,t),ic(e,Xe()),n;if(6===n)throw Error(o(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Sc(e,Ul,Gl),ic(e,Xe()),null}function uc(e,t){var n=kl;kl|=1;try{return e(t)}finally{0===(kl=n)&&(Vl=Xe()+500,zi&&Hi())}}function dc(e){null!==Kl&&0===Kl.tag&&0===(6&kl)&&_c();var t=kl;kl|=1;var n=Nl.transition,r=bt;try{if(Nl.transition=null,bt=1,e)return e()}finally{bt=r,Nl.transition=n,0===(6&(kl=t))&&Hi()}}function hc(){Dl=Al.current,Ei(Al)}function pc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,ii(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(to(r),r.tag){case 1:null!==(r=r.type.childContextTypes)&&void 0!==r&&Di();break;case 3:oa(),Ei(ki),Ei(Ni),da();break;case 5:sa(r);break;case 4:oa();break;case 13:case 19:Ei(la);break;case 10:_o(r.type._context);break;case 22:case 23:hc()}n=n.return}if(jl=e,Il=e=Ac(e.current,null),Pl=Dl=t,Rl=0,Ml=null,zl=Fl=Ll=0,Ul=Bl=null,null!==Oo){for(t=0;t<Oo.length;t++)if(null!==(r=(n=Oo[t]).interleaved)){n.interleaved=null;var i=r.next,o=n.pending;if(null!==o){var a=o.next;o.next=i,r.next=a}n.pending=r}Oo=null}return e}function fc(e,t){for(;;){var n=Il;try{if(So(),ha.current=as,ya){for(var r=ma.memoizedState;null!==r;){var i=r.queue;null!==i&&(i.pending=null),r=r.next}ya=!1}if(fa=0,va=ga=ma=null,ba=!1,xa=0,Ol.current=null,null===n||null===n.return){Rl=1,Ml=t,Il=null;break}e:{var a=e,s=n.return,l=n,c=t;if(t=Pl,l.flags|=32768,null!==c&&"object"===typeof c&&"function"===typeof c.then){var u=c,d=l,h=d.tag;if(0===(1&d.mode)&&(0===h||11===h||15===h)){var p=d.alternate;p?(d.updateQueue=p.updateQueue,d.memoizedState=p.memoizedState,d.lanes=p.lanes):(d.updateQueue=null,d.memoizedState=null)}var f=vs(s);if(null!==f){f.flags&=-257,ys(f,s,l,0,t),1&f.mode&&gs(a,u,t),c=u;var m=(t=f).updateQueue;if(null===m){var g=new Set;g.add(c),t.updateQueue=g}else m.add(c);break e}if(0===(1&t)){gs(a,u,t),gc();break e}c=Error(o(426))}else if(io&&1&l.mode){var v=vs(s);if(null!==v){0===(65536&v.flags)&&(v.flags|=256),ys(v,s,l,0,t),mo(us(c,l));break e}}a=c=us(c,l),4!==Rl&&(Rl=2),null===Bl?Bl=[a]:Bl.push(a),a=s;do{switch(a.tag){case 3:a.flags|=65536,t&=-t,a.lanes|=t,Lo(a,fs(0,c,t));break e;case 1:l=c;var y=a.type,b=a.stateNode;if(0===(128&a.flags)&&("function"===typeof y.getDerivedStateFromError||null!==b&&"function"===typeof b.componentDidCatch&&(null===Zl||!Zl.has(b)))){a.flags|=65536,t&=-t,a.lanes|=t,Lo(a,ms(a,l,t));break e}}a=a.return}while(null!==a)}wc(n)}catch(x){t=x,Il===n&&null!==n&&(Il=n=n.return);continue}break}}function mc(){var e=Tl.current;return Tl.current=as,null===e?as:e}function gc(){0!==Rl&&3!==Rl&&2!==Rl||(Rl=4),null===jl||0===(268435455&Ll)&&0===(268435455&Fl)||lc(jl,Pl)}function vc(e,t){var n=kl;kl|=2;var r=mc();for(jl===e&&Pl===t||(Gl=null,pc(e,t));;)try{yc();break}catch(i){fc(e,i)}if(So(),kl=n,Tl.current=r,null!==Il)throw Error(o(261));return jl=null,Pl=0,Rl}function yc(){for(;null!==Il;)xc(Il)}function bc(){for(;null!==Il&&!Ke();)xc(Il)}function xc(e){var t=Cl(e.alternate,e,Dl);e.memoizedProps=e.pendingProps,null===t?wc(e):Il=t,Ol.current=null}function wc(e){var t=e;do{var n=t.alternate;if(e=t.return,0===(32768&t.flags)){if(null!==(n=Ys(n,t,Dl)))return void(Il=n)}else{if(null!==(n=Ks(n,t)))return n.flags&=32767,void(Il=n);if(null===e)return Rl=6,void(Il=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===Rl&&(Rl=5)}function Sc(e,t,n){var r=bt,i=Nl.transition;try{Nl.transition=null,bt=1,function(e,t,n,r){do{_c()}while(null!==Kl);if(0!==(6&kl))throw Error(o(327));n=e.finishedWork;var i=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(o(177));e.callbackNode=null,e.callbackPriority=0;var a=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var i=31-at(n),o=1<<i;t[i]=0,r[i]=-1,e[i]=-1,n&=~o}}(e,a),e===jl&&(Il=jl=null,Pl=0),0===(2064&n.subtreeFlags)&&0===(2064&n.flags)||Yl||(Yl=!0,jc(tt,(function(){return _c(),null}))),a=0!==(15990&n.flags),0!==(15990&n.subtreeFlags)||a){a=Nl.transition,Nl.transition=null;var s=bt;bt=1;var l=kl;kl|=4,Ol.current=null,function(e,t){if(ei=Gt,pr(e=hr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var i=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch(w){n=null;break e}var s=0,l=-1,c=-1,u=0,d=0,h=e,p=null;t:for(;;){for(var f;h!==n||0!==i&&3!==h.nodeType||(l=s+i),h!==a||0!==r&&3!==h.nodeType||(c=s+r),3===h.nodeType&&(s+=h.nodeValue.length),null!==(f=h.firstChild);)p=h,h=f;for(;;){if(h===e)break t;if(p===n&&++u===i&&(l=s),p===a&&++d===r&&(c=s),null!==(f=h.nextSibling))break;p=(h=p).parentNode}h=f}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(ti={focusedElem:e,selectionRange:n},Gt=!1,Js=t;null!==Js;)if(e=(t=Js).child,0!==(1028&t.subtreeFlags)&&null!==e)e.return=t,Js=e;else for(;null!==Js;){t=Js;try{var m=t.alternate;if(0!==(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==m){var g=m.memoizedProps,v=m.memoizedState,y=t.stateNode,b=y.getSnapshotBeforeUpdate(t.elementType===t.type?g:vo(t.type,g),v);y.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var x=t.stateNode.containerInfo;1===x.nodeType?x.textContent="":9===x.nodeType&&x.documentElement&&x.removeChild(x.documentElement);break;default:throw Error(o(163))}}catch(w){Ec(t,t.return,w)}if(null!==(e=t.sibling)){e.return=t.return,Js=e;break}Js=t.return}m=nl,nl=!1}(e,n),vl(n,e),fr(ti),Gt=!!ei,ti=ei=null,e.current=n,bl(n,e,i),Qe(),kl=l,bt=s,Nl.transition=a}else e.current=n;if(Yl&&(Yl=!1,Kl=e,Ql=i),a=e.pendingLanes,0===a&&(Zl=null),function(e){if(ot&&"function"===typeof ot.onCommitFiberRoot)try{ot.onCommitFiberRoot(it,e,void 0,128===(128&e.current.flags))}catch(t){}}(n.stateNode),ic(e,Xe()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)i=t[n],r(i.value,{componentStack:i.stack,digest:i.digest});if(Wl)throw Wl=!1,e=ql,ql=null,e;0!==(1&Ql)&&0!==e.tag&&_c(),a=e.pendingLanes,0!==(1&a)?e===$l?Xl++:(Xl=0,$l=e):Xl=0,Hi()}(e,t,n,r)}finally{Nl.transition=i,bt=r}return null}function _c(){if(null!==Kl){var e=xt(Ql),t=Nl.transition,n=bt;try{if(Nl.transition=null,bt=16>e?16:e,null===Kl)var r=!1;else{if(e=Kl,Kl=null,Ql=0,0!==(6&kl))throw Error(o(331));var i=kl;for(kl|=4,Js=e.current;null!==Js;){var a=Js,s=a.child;if(0!==(16&Js.flags)){var l=a.deletions;if(null!==l){for(var c=0;c<l.length;c++){var u=l[c];for(Js=u;null!==Js;){var d=Js;switch(d.tag){case 0:case 11:case 15:rl(8,d,a)}var h=d.child;if(null!==h)h.return=d,Js=h;else for(;null!==Js;){var p=(d=Js).sibling,f=d.return;if(al(d),d===u){Js=null;break}if(null!==p){p.return=f,Js=p;break}Js=f}}}var m=a.alternate;if(null!==m){var g=m.child;if(null!==g){m.child=null;do{var v=g.sibling;g.sibling=null,g=v}while(null!==g)}}Js=a}}if(0!==(2064&a.subtreeFlags)&&null!==s)s.return=a,Js=s;else e:for(;null!==Js;){if(0!==(2048&(a=Js).flags))switch(a.tag){case 0:case 11:case 15:rl(9,a,a.return)}var y=a.sibling;if(null!==y){y.return=a.return,Js=y;break e}Js=a.return}}var b=e.current;for(Js=b;null!==Js;){var x=(s=Js).child;if(0!==(2064&s.subtreeFlags)&&null!==x)x.return=s,Js=x;else e:for(s=b;null!==Js;){if(0!==(2048&(l=Js).flags))try{switch(l.tag){case 0:case 11:case 15:il(9,l)}}catch(S){Ec(l,l.return,S)}if(l===s){Js=null;break e}var w=l.sibling;if(null!==w){w.return=l.return,Js=w;break e}Js=l.return}}if(kl=i,Hi(),ot&&"function"===typeof ot.onPostCommitFiberRoot)try{ot.onPostCommitFiberRoot(it,e)}catch(S){}r=!0}return r}finally{bt=n,Nl.transition=t}}return!1}function Cc(e,t,n){e=Ro(e,t=fs(0,t=us(n,t),1),1),t=tc(),null!==e&&(vt(e,1,t),ic(e,t))}function Ec(e,t,n){if(3===e.tag)Cc(e,e,n);else for(;null!==t;){if(3===t.tag){Cc(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"===typeof t.type.getDerivedStateFromError||"function"===typeof r.componentDidCatch&&(null===Zl||!Zl.has(r))){t=Ro(t,e=ms(t,e=us(n,e),1),1),e=tc(),null!==t&&(vt(t,1,e),ic(t,e));break}}t=t.return}}function Tc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=tc(),e.pingedLanes|=e.suspendedLanes&n,jl===e&&(Pl&n)===n&&(4===Rl||3===Rl&&(130023424&Pl)===Pl&&500>Xe()-Hl?pc(e,0):zl|=n),ic(e,t)}function Oc(e,t){0===t&&(0===(1&e.mode)?t=1:(t=ut,0===(130023424&(ut<<=1))&&(ut=4194304)));var n=tc();null!==(e=jo(e,t))&&(vt(e,t,n),ic(e,n))}function Nc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Oc(e,n)}function kc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;null!==i&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(o(314))}null!==r&&r.delete(t),Oc(e,n)}function jc(e,t){return Ze(e,t)}function Ic(e,t,n,r){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=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pc(e,t,n,r){return new Ic(e,t,n,r)}function Dc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ac(e,t){var n=e.alternate;return null===n?((n=Pc(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.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,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 Rc(e,t,n,r,i,a){var s=2;if(r=e,"function"===typeof e)Dc(e)&&(s=1);else if("string"===typeof e)s=5;else e:switch(e){case _:return Mc(n.children,i,a,t);case C:s=8,i|=8;break;case E:return(e=Pc(12,n,t,2|i)).elementType=E,e.lanes=a,e;case k:return(e=Pc(13,n,t,i)).elementType=k,e.lanes=a,e;case j:return(e=Pc(19,n,t,i)).elementType=j,e.lanes=a,e;case D:return Lc(n,i,a,t);default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case T:s=10;break e;case O:s=9;break e;case N:s=11;break e;case I:s=14;break e;case P:s=16,r=null;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=Pc(s,n,t,i)).elementType=e,t.type=r,t.lanes=a,t}function Mc(e,t,n,r){return(e=Pc(7,e,r,t)).lanes=n,e}function Lc(e,t,n,r){return(e=Pc(22,e,r,t)).elementType=D,e.lanes=n,e.stateNode={isHidden:!1},e}function Fc(e,t,n){return(e=Pc(6,e,null,t)).lanes=n,e}function zc(e,t,n){return(t=Pc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Bc(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Uc(e,t,n,r,i,o,a,s,l){return e=new Bc(e,t,n,s,l),1===t?(t=1,!0===o&&(t|=8)):t=0,o=Pc(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Po(o),e}function Hc(e){if(!e)return Oi;e:{if(He(e=e._reactInternals)!==e||1!==e.tag)throw Error(o(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Pi(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(o(171))}if(1===e.tag){var n=e.type;if(Pi(n))return Ri(e,n,t)}return t}function Vc(e,t,n,r,i,o,a,s,l){return(e=Uc(n,r,!0,e,0,o,0,s,l)).context=Hc(null),n=e.current,(o=Ao(r=tc(),i=nc(n))).callback=void 0!==t&&null!==t?t:null,Ro(n,o,i),e.current.lanes=i,vt(e,i,r),ic(e,r),e}function Gc(e,t,n,r){var i=t.current,o=tc(),a=nc(i);return n=Hc(n),null===t.context?t.context=n:t.pendingContext=n,(t=Ao(o,a)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Ro(i,t,a))&&(rc(e,i,a,o),Mo(e,i,a)),a}function Wc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function qc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Zc(e,t){qc(e,t),(e=e.alternate)&&qc(e,t)}Cl=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||ki.current)xs=!0;else{if(0===(e.lanes&n)&&0===(128&t.flags))return xs=!1,function(e,t,n){switch(t.tag){case 3:js(t),fo();break;case 5:aa(t);break;case 1:Pi(t.type)&&Mi(t);break;case 4:ia(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,i=t.memoizedProps.value;Ti(yo,r._currentValue),r._currentValue=i;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ti(la,1&la.current),t.flags|=128,null):0!==(n&t.child.childLanes)?Fs(e,t,n):(Ti(la,1&la.current),null!==(e=Ws(e,t,n))?e.sibling:null);Ti(la,1&la.current);break;case 19:if(r=0!==(n&t.childLanes),0!==(128&e.flags)){if(r)return Vs(e,t,n);t.flags|=128}if(null!==(i=t.memoizedState)&&(i.rendering=null,i.tail=null,i.lastEffect=null),Ti(la,la.current),r)break;return null;case 22:case 23:return t.lanes=0,Es(e,t,n)}return Ws(e,t,n)}(e,t,n);xs=0!==(131072&e.flags)}else xs=!1,io&&0!==(1048576&t.flags)&&Ji(t,qi,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Gs(e,t),e=t.pendingProps;var i=Ii(t,Ni.current);Eo(t,n),i=Ca(null,t,r,e,i,n);var a=Ea();return t.flags|=1,"object"===typeof i&&null!==i&&"function"===typeof i.render&&void 0===i.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Pi(r)?(a=!0,Mi(t)):a=!1,t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null,Po(t),i.updater=Ho,t.stateNode=i,i._reactInternals=t,qo(t,r,e,n),t=ks(null,t,r,!0,a,n)):(t.tag=0,io&&a&&eo(t),ws(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Gs(e,t),e=t.pendingProps,r=(i=r._init)(r._payload),t.type=r,i=t.tag=function(e){if("function"===typeof e)return Dc(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===N)return 11;if(e===I)return 14}return 2}(r),e=vo(r,e),i){case 0:t=Os(null,t,r,e,n);break e;case 1:t=Ns(null,t,r,e,n);break e;case 11:t=Ss(null,t,r,e,n);break e;case 14:t=_s(null,t,r,vo(r.type,e),n);break e}throw Error(o(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,Os(e,t,r,i=t.elementType===r?i:vo(r,i),n);case 1:return r=t.type,i=t.pendingProps,Ns(e,t,r,i=t.elementType===r?i:vo(r,i),n);case 3:e:{if(js(t),null===e)throw Error(o(387));r=t.pendingProps,i=(a=t.memoizedState).element,Do(e,t),Fo(t,r,null,n);var s=t.memoizedState;if(r=s.element,a.isDehydrated){if(a={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=a,t.memoizedState=a,256&t.flags){t=Is(e,t,r,n,i=us(Error(o(423)),t));break e}if(r!==i){t=Is(e,t,r,n,i=us(Error(o(424)),t));break e}for(ro=ci(t.stateNode.containerInfo.firstChild),no=t,io=!0,oo=null,n=$o(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(fo(),r===i){t=Ws(e,t,n);break e}ws(e,t,r,n)}t=t.child}return t;case 5:return aa(t),null===e&&co(t),r=t.type,i=t.pendingProps,a=null!==e?e.memoizedProps:null,s=i.children,ni(r,i)?s=null:null!==a&&ni(r,a)&&(t.flags|=32),Ts(e,t),ws(e,t,s,n),t.child;case 6:return null===e&&co(t),null;case 13:return Fs(e,t,n);case 4:return ia(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Xo(t,null,r,n):ws(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,Ss(e,t,r,i=t.elementType===r?i:vo(r,i),n);case 7:return ws(e,t,t.pendingProps,n),t.child;case 8:case 12:return ws(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,a=t.memoizedProps,s=i.value,Ti(yo,r._currentValue),r._currentValue=s,null!==a)if(sr(a.value,s)){if(a.children===i.children&&!ki.current){t=Ws(e,t,n);break e}}else for(null!==(a=t.child)&&(a.return=t);null!==a;){var l=a.dependencies;if(null!==l){s=a.child;for(var c=l.firstContext;null!==c;){if(c.context===r){if(1===a.tag){(c=Ao(-1,n&-n)).tag=2;var u=a.updateQueue;if(null!==u){var d=(u=u.shared).pending;null===d?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}a.lanes|=n,null!==(c=a.alternate)&&(c.lanes|=n),Co(a.return,n,t),l.lanes|=n;break}c=c.next}}else if(10===a.tag)s=a.type===t.type?null:a.child;else if(18===a.tag){if(null===(s=a.return))throw Error(o(341));s.lanes|=n,null!==(l=s.alternate)&&(l.lanes|=n),Co(s,n,t),s=a.sibling}else s=a.child;if(null!==s)s.return=a;else for(s=a;null!==s;){if(s===t){s=null;break}if(null!==(a=s.sibling)){a.return=s.return,s=a;break}s=s.return}a=s}ws(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,Eo(t,n),r=r(i=To(i)),t.flags|=1,ws(e,t,r,n),t.child;case 14:return i=vo(r=t.type,t.pendingProps),_s(e,t,r,i=vo(r.type,i),n);case 15:return Cs(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:vo(r,i),Gs(e,t),t.tag=1,Pi(r)?(e=!0,Mi(t)):e=!1,Eo(t,n),Go(t,r,i),qo(t,r,i,n),ks(null,t,r,!0,e,n);case 19:return Vs(e,t,n);case 22:return Es(e,t,n)}throw Error(o(156,t.tag))};var Yc="function"===typeof reportError?reportError:function(e){console.error(e)};function Kc(e){this._internalRoot=e}function Qc(e){this._internalRoot=e}function Xc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function $c(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Jc(){}function eu(e,t,n,r,i){var o=n._reactRootContainer;if(o){var a=o;if("function"===typeof i){var s=i;i=function(){var e=Wc(a);s.call(e)}}Gc(t,a,e,i)}else a=function(e,t,n,r,i){if(i){if("function"===typeof r){var o=r;r=function(){var e=Wc(a);o.call(e)}}var a=Vc(t,r,e,0,null,!1,0,"",Jc);return e._reactRootContainer=a,e[fi]=a.current,Hr(8===e.nodeType?e.parentNode:e),dc(),a}for(;i=e.lastChild;)e.removeChild(i);if("function"===typeof r){var s=r;r=function(){var e=Wc(l);s.call(e)}}var l=Uc(e,0,!1,null,0,!1,0,"",Jc);return e._reactRootContainer=l,e[fi]=l.current,Hr(8===e.nodeType?e.parentNode:e),dc((function(){Gc(t,l,n,r)})),l}(n,t,e,i,r);return Wc(a)}Qc.prototype.render=Kc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(o(409));Gc(e,t,null,null)},Qc.prototype.unmount=Kc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;dc((function(){Gc(null,e,null,null)})),t[fi]=null}},Qc.prototype.unstable_scheduleHydration=function(e){if(e){var t=Ct();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Dt.length&&0!==t&&t<Dt[n].priority;n++);Dt.splice(n,0,e),0===n&&Lt(e)}},wt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(yt(t,1|n),ic(t,Xe()),0===(6&kl)&&(Vl=Xe()+500,Hi()))}break;case 13:dc((function(){var t=jo(e,1);if(null!==t){var n=tc();rc(t,e,1,n)}})),Zc(e,1)}},St=function(e){if(13===e.tag){var t=jo(e,134217728);if(null!==t)rc(t,e,134217728,tc());Zc(e,134217728)}},_t=function(e){if(13===e.tag){var t=nc(e),n=jo(e,t);if(null!==n)rc(n,e,t,tc());Zc(e,t)}},Ct=function(){return bt},Et=function(e,t){var n=bt;try{return bt=e,t()}finally{bt=n}},Se=function(e,t,n){switch(t){case"input":if($(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 r=n[t];if(r!==e&&r.form===e.form){var i=wi(r);if(!i)throw Error(o(90));Z(r),$(r,i)}}}break;case"textarea":oe(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Ne=uc,ke=dc;var tu={usingClientEntryPoint:!1,Events:[bi,xi,wi,Te,Oe,uc]},nu={findFiberByHostInstance:yi,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},ru={bundleType:nu.bundleType,version:nu.version,rendererPackageName:nu.rendererPackageName,rendererConfig:nu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:x.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=We(e))?null:e.stateNode},findFiberByHostInstance:nu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var iu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!iu.isDisabled&&iu.supportsFiber)try{it=iu.inject(ru),ot=iu}catch(ue){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tu,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Xc(t))throw Error(o(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:S,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Xc(e))throw Error(o(299));var n=!1,r="",i=Yc;return null!==t&&void 0!==t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(i=t.onRecoverableError)),t=Uc(e,1,!1,null,0,n,0,r,i),e[fi]=t.current,Hr(8===e.nodeType?e.parentNode:e),new Kc(t)},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(o(188));throw e=Object.keys(e).join(","),Error(o(268,e))}return e=null===(e=We(t))?null:e.stateNode},t.flushSync=function(e){return dc(e)},t.hydrate=function(e,t,n){if(!$c(t))throw Error(o(200));return eu(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Xc(e))throw Error(o(405));var r=null!=n&&n.hydratedSources||null,i=!1,a="",s=Yc;if(null!==n&&void 0!==n&&(!0===n.unstable_strictMode&&(i=!0),void 0!==n.identifierPrefix&&(a=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=Vc(t,null,e,1,null!=n?n:null,i,0,a,s),e[fi]=t.current,Hr(e),r)for(e=0;e<r.length;e++)i=(i=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,i]:t.mutableSourceEagerHydrationData.push(n,i);return new Qc(t)},t.render=function(e,t,n){if(!$c(t))throw Error(o(200));return eu(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!$c(e))throw Error(o(40));return!!e._reactRootContainer&&(dc((function(){eu(null,null,e,!1,(function(){e._reactRootContainer=null,e[fi]=null}))})),!0)},t.unstable_batchedUpdates=uc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!$c(n))throw Error(o(200));if(null==e||void 0===e._reactInternals)throw Error(o(38));return eu(e,t,n,!1,r)},t.version="18.2.0-next-9e3b772b8-20220608"},63609:(e,t,n)=>{"use strict";var r=n(38886);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},38886:(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(9314)},77808:e=>{var t="undefined"!==typeof Element,n="function"===typeof Map,r="function"===typeof Set,i="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,l,c,u;if(Array.isArray(e)){if((s=e.length)!=a.length)return!1;for(l=s;0!==l--;)if(!o(e[l],a[l]))return!1;return!0}if(n&&e instanceof Map&&a instanceof Map){if(e.size!==a.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!a.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!o(l.value[1],a.get(l.value[0])))return!1;return!0}if(r&&e instanceof Set&&a instanceof Set){if(e.size!==a.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!a.has(l.value[0]))return!1;return!0}if(i&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(a)){if((s=e.length)!=a.length)return!1;for(l=s;0!==l--;)if(e[l]!==a[l])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=(c=Object.keys(e)).length)!==Object.keys(a).length)return!1;for(l=s;0!==l--;)if(!Object.prototype.hasOwnProperty.call(a,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=s;0!==l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!o(e[c[l]],a[c[l]]))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}}},9872:(e,t)=>{"use strict";var n=60103,r=60106,i=60107,o=60108,a=60114,s=60109,l=60110,c=60112,u=60113,d=60120,h=60115,p=60116,f=60121,m=60122,g=60117,v=60129,y=60131;if("function"===typeof Symbol&&Symbol.for){var b=Symbol.for;n=b("react.element"),r=b("react.portal"),i=b("react.fragment"),o=b("react.strict_mode"),a=b("react.profiler"),s=b("react.provider"),l=b("react.context"),c=b("react.forward_ref"),u=b("react.suspense"),d=b("react.suspense_list"),h=b("react.memo"),p=b("react.lazy"),f=b("react.block"),m=b("react.server.block"),g=b("react.fundamental"),v=b("react.debug_trace_mode"),y=b("react.legacy_hidden")}function x(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case i:case a:case o:case u:case d:return e;default:switch(e=e&&e.$$typeof){case l:case c:case p:case h:case s:return e;default:return t}}case r:return t}}}t.isContextConsumer=function(e){return x(e)===l}},60380:(e,t,n)=>{"use strict";e.exports=n(9872)},83326:(e,t,n)=>{var r=n(68963),i=n(77065),o=n(50134),a=n(60305),s=r.createElement,l=n(80254),c=n(62937),u=n(81702),d=n(96243),h=n(53767),p=n(68814);e.exports=i({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:c,searchOptions:{debounceTime:0},className:"",id:"json-"+Date.now(),onClick:p,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),r=n?t.filterer(t.query):e.data,i=n&&d(r);return s("div",{className:"json-inspector "+e.className},this.renderToolbar(),i?s("div",{className:"json-inspector__not-found"},"Nothing found"):s(l,{data:r,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:u(e,t)})},getOriginal:function(e){return h(this.props.data,e)}})},81702:(e,t,n)=>{var r=n(65263),i=Object.keys,o=n(20800),a=n(96243);function s(e,t,n){return i(e).reduce((function(i,c){var u,d=e[c];return o(d)?(l(t,c,n)||l(t,d,n))&&(i[c]=d):l(t,c,n)?i[c]=d:(u=s(d,t,n),a(u)||r(i,function(e,t){var n={};return n[e]=t,n}(c,u))),i}),{})}function l(e,t,n){if(t){var r=String(t),i=e;return n.ignoreCase&&(r=r.toLowerCase(),i=i.toLowerCase()),-1!==r.indexOf(i)}}e.exports=function(e,t){t||(t={cacheResults:!0});var n={};return function(r){if(!t.cacheResults)return s(e,r,t);var i;if(!n[r])for(var o=r.length-1;o>0;o-=1)if(i=r.substr(0,o),n[i]){n[r]=s(n[i],r,t);break}return n[r]||(n[r]=s(e,r,t)),n[r]}}},81139:(e,t,n)=>{var r=n(68963),i=n(77065),o=r.createElement;e.exports=i({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,r=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"},r):null,e)})))}})},96243:e=>{e.exports=function(e){return 0===Object.keys(e).length}},20800:(e,t,n)=>{var r=n(39032);e.exports=function(e){var t=r(e);return"Object"!==t&&"Array"!==t}},80254:(e,t,n)=>{var r=n(68963),i=n(77065),o=n(5083),a=n(88034),s=n(39032),l=n(20800),c=n(81139),u=r.createElement,d=i({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},r=this._onClick.bind(this,n);return u("div",{className:this.getClassName(),id:"leaf-"+this._rootPath()},u("input",{className:"json-inspector__radio",type:"radio",name:t.id,id:e,tabIndex:-1}),u("label",{className:"json-inspector__line",htmlFor:e,onClick:r},u("div",{className:"json-inspector__flatpath"},n.path),u("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 u("span",{className:"json-inspector__value json-inspector__value_helper"},"[] "+h(e.length));case"Object":return u("span",{className:"json-inspector__value json-inspector__value_helper"},"{} "+h(Object.keys(e).length));default:return u("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&&!l(n)?Object.keys(n).map((function(r){var i=n[r],o=!this.state.original||!!e.verboseShowOriginal&&e.query;return u(d,{data:i,label:r,prefix:t,onClick:e.onClick,id:e.id,query:e.query,getOriginal:o?e.getOriginal:null,key:p(r,i),isExpanded:e.isExpanded,interactiveLabel:e.interactiveLabel,verboseShowOriginal:e.verboseShowOriginal})}),this):null},renderShowOriginalButton:function(){var e=this.props;return l(e.data)||this.state.original||!e.getOriginal||!e.query||f(this.keypath(),e.query)?null:u("span",{className:"json-inspector__show-original",onClick:this._onShowOriginalClick})},renderInteractiveLabel:function(e,t){return"function"===typeof this.props.interactiveLabel?u(this.props.interactiveLabel,{value:String(e),originalValue:e,isKey:t,keypath:this.keypath()}):null},componentWillReceiveProps:function(e){e.query&&this.setState({expanded:!f(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 u(c,{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"),l(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?!f(t,e.query)&&"function"===typeof e.getOriginal:e.isExpanded(t,e.data))}});function h(e){return e+(1===e?" item":" items")}function p(e,t){return l(t)?e+":"+o(String(t)):e+"["+s(t)+"]"}function f(e,t){return-1!==e.indexOf(t)}e.exports=d},53767:(e,t,n)=>{var r=n(39032),i=".";function o(e){return parseInt(e,10)}e.exports=function e(t,n){var a=n.split(i),s=a.shift();if(!s)return t;var l=r(t);return"Array"===l&&t[o(s)]?e(t[o(s)],a.join(i)):"Object"===l&&t[s]?e(t[s],a.join(i)):void 0}},68814:e=>{e.exports=function(){}},62937:(e,t,n)=>{var r=n(68963),i=n(77065),o=r.createElement,a=n(68814);e.exports=i({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)}})},39032:e=>{e.exports=function(e){return Object.prototype.toString.call(e).slice(8,-1)}},88034:e=>{var t=Math.ceil(10*Math.random());e.exports=function(){return++t}},65263:e=>{"use strict";e.exports=Object.assign||function(e,t){for(var n,r,i=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],r=Object.keys(Object(n));for(var a=0;a<r.length;a++)i[r[a]]=n[r[a]]}return i}},83570:function(e,t,n){var r,i,o;"undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self&&self,i=[n(50134),n(68963)],r=function(t,n){"use strict";var r,i;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"!==l(e)&&"function"!==typeof e)return{default:e};var t=o();if(t&&t.has(e))return t.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var a=r?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(n,i,a):n[i]=e[i]}return n.default=e,t&&t.set(e,n),n}function s(e){return e&&e.__esModule?e:{default:e}}function l(e){return l="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},l(e)}function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function d(e,t,n){return t&&u(e.prototype,t),n&&u(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&&p(e,t)}function p(e,t){return p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},p(e,t)}function f(e){var t=v();return function(){var n,r=y(e);if(t){var i=y(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return m(this,n)}}function m(e,t){return!t||"object"!==l(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 v(){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 y(e){return y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},y(e)}function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?b(Object(n),!0).forEach((function(t){w(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(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 S={x:"clientWidth",y:"clientHeight"},_={x:"clientTop",y:"clientLeft"},C={x:"innerWidth",y:"innerHeight"},E={x:"offsetWidth",y:"offsetHeight"},T={x:"offsetLeft",y:"offsetTop"},O={x:"overflowX",y:"overflowY"},N={x:"scrollWidth",y:"scrollHeight"},k={x:"scrollLeft",y:"scrollTop"},j={x:"width",y:"height"},I=function(){},P=!!function(){if("undefined"===typeof window)return!1;var e=!1;try{document.createElement("div").addEventListener("test",I,{get passive(){return e=!0,!1}})}catch(t){}return e}()&&{passive:!0},D="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},M=function(e){for(var t=e.props.axis,n=e.getEl(),r=O[t];n=n.parentElement;)switch(window.getComputedStyle(n)[r]){case"auto":case"scroll":case"overlay":return n}return window},L=function(e){var t=e.props.axis,n=e.scrollParent;return n===window?window[C[t]]:n[S[t]]},F=function(e,t){var n=e.length,r=e.minSize,i=e.type,o=t.from,a=t.size,s=t.itemsPerRow,l=(a=Math.max(a,r))%s;return l&&(a+=s-l),a>n&&(a=n),(l=(o="simple"!==i&&o?Math.max(Math.min(o,n-a),0):0)%s)&&(o-=l,a+=l),o===t.from&&a==t.size?t:x(x({},t),{},{from:o,size:a})};e.exports=(i=r=function(e){h(r,e);var t=f(r);function r(e){var n;return c(this,r),(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(r,null,[{key:"getDerivedStateFromProps",value:function(e,t){var n=F(e,t);return n===t?null:n}}]),d(r,[{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(D);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,P),this.scrollParent.removeEventListener("mousewheel",I,P)}},{key:"getOffset",value:function(e){var t=this.props.axis,n=e[_[t]]||0,r=T[t];do{n+=e[r]||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=k[t],r=e===window?document.body[n]||document.documentElement[n]:e[n],i=this.getScrollSize()-this.props.scrollParentViewportSizeGetter(this),o=Math.max(0,Math.min(r,i)),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[k[n]]=e}},{key:"getScrollSize",value:function(){var e=this.scrollParent,t=document,n=t.body,r=t.documentElement,i=N[this.props.axis];return e===window?Math.max(n[i],r[i]):e[i]}},{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),r=t+this.props.scrollParentViewportSizeGetter(this)+e;return this.hasDeterminateSize()&&(r=Math.min(r,this.getSpaceBefore(this.props.length))),{start:n,end:r}}},{key:"getItemSizeAndItemsPerRow",value:function(){var e=this.props,t=e.axis,n=e.useStaticSize,r=this.state,i=r.itemSize,o=r.itemsPerRow;if(n&&i&&o)return{itemSize:i,itemsPerRow:o};var a=this.items.children;if(!a.length)return{};var s=a[0],l=s[E[t]],c=Math.abs(l-i);if((isNaN(c)||c>=1)&&(i=l),!i)return{};for(var u=T[t],d=s[u],h=a[o=1];h&&h[u]===d;h=a[o])++o;return{itemSize:i,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=I),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",I)),this.clearSizeCache(),this.scrollParent.addEventListener("scroll",this.updateFrameAndClearCache,P),this.scrollParent.addEventListener("mousewheel",I,P))}},{key:"updateSimpleFrame",value:function(e){var t=this.getStartAndEnd().end,n=this.items.children,r=0;if(n.length){var i=this.props.axis,o=n[0],a=n[n.length-1];r=this.getOffset(a)+a[E[i]]-this.getOffset(o)}if(r>t)return e();var s=this.props,l=s.pageSize,c=s.length,u=Math.min(this.state.size+l,c);this.maybeSetState({size:u},e)}},{key:"updateVariableFrame",value:function(e){this.props.itemSizeGetter||this.cacheSizes();for(var t=this.getStartAndEnd(),n=t.start,r=t.end,i=this.props,o=i.length,a=i.pageSize,s=0,l=0,c=0,u=o-1;l<u;){var d=this.getSizeOfItem(l);if(null==d||s+d>n)break;s+=d,++l}for(var h=o-l;c<h&&s<r;){var p=this.getSizeOfItem(l+c);if(null==p){c=Math.min(c+a,h);break}s+=p,++c}this.maybeSetState(F(this.props,{from:l,itemsPerRow:1,size:c}),e)}},{key:"updateUniformFrame",value:function(e){var t=this.getItemSizeAndItemsPerRow(),n=t.itemSize,r=t.itemsPerRow;if(!n||!r)return e();var i=this.getStartAndEnd(),o=i.start,a=i.end,s=F(this.props,{from:Math.floor(o/n)*r,size:(Math.ceil((a-o)/n)+1)*r,itemsPerRow:r}),l=s.from,c=s.size;return this.maybeSetState({itemsPerRow:r,from:l,itemSize:n,size:c},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,r=n.itemSize,i=n.itemsPerRow;if(r)return t[e]=Math.floor(e/i)*r;for(var o=e;o>0&&null==t[--o];);for(var a=t[o]||0,s=o;s<e;++s){t[s]=a;var l=this.getSizeOfItem(s);if(null==l)break;a+=l}return t[e]=a}},{key:"cacheSizes",value:function(){for(var e=this.cache,t=this.state.from,n=this.items.children,r=E[this.props.axis],i=0,o=n.length;i<o;++i)e[t+i]=n[i][r]}},{key:"getSizeOfItem",value:function(e){var t=this.cache,n=this.items,r=this.props,i=r.axis,o=r.itemSizeGetter,a=r.itemSizeEstimator,s=r.type,l=this.state,c=l.from,u=l.itemSize,d=l.size;if(u)return u;if(o)return o(e);if(e in t)return t[e];if("simple"===s&&e>=c&&e<c+d&&n){var h=n.children[e-c];if(h)return h[E[i]]}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),r=n-this.props.scrollParentViewportSizeGetter(this)+this.getSizeOfItem(e),i=Math.min(r,n),o=Math.max(r,n);return t<=i?this.setScroll(i):t>o?this.setScroll(o):void 0}},{key:"getVisibleRange",value:function(){for(var e,t,n=this.state,r=n.from,i=n.size,o=this.getStartAndEnd(0),a=o.start,s=o.end,l={},c=r;c<r+i;++c){var u=this.getSpaceBefore(c,l),d=u+this.getSizeOfItem(c);null==e&&d>a&&(e=c),null!=e&&u<s&&(t=c)}return[e,t]}},{key:"renderItems",value:function(){for(var e=this,t=this.props,n=t.itemRenderer,r=t.itemsRenderer,i=this.state,o=i.from,a=i.size,s=[],l=0;l<a;++l)s.push(n(o+l,l));return r(s,(function(t){return e.items=t}))}},{key:"render",value:function(){var e=this,t=this.props,r=t.axis,i=t.length,o=t.type,a=t.useTranslate3d,s=this.state,l=s.from,c=s.itemsPerRow,u=this.renderItems();if("simple"===o)return u;var d={position:"relative"},h={},p=Math.ceil(i/c)*c,f=this.getSpaceBefore(p,h);f&&(d[j[r]]=f,"x"===r&&(d.overflowX="hidden"));var m=this.getSpaceBefore(l,h),g="x"===r?m:0,v="y"===r?m:0,y=a?"translate3d(".concat(g,"px, ").concat(v,"px, 0)"):"translate(".concat(g,"px, ").concat(v,"px)"),b={msTransform:y,WebkitTransform:y,transform:y};return n.default.createElement("div",{style:d,ref:function(t){return e.el=t}},n.default.createElement("div",{style:b},u))}}]),r}(n.Component),w(r,"displayName","ReactList"),w(r,"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(r,"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:M,scrollParentViewportSizeGetter:L,threshold:100,type:"simple",useStaticSize:!1,useTranslate3d:!1}),i)},void 0===(o="function"===typeof r?r.apply(t,i):r)||(e.exports=o)},85528:(e,t,n)=>{var r=n(49099);e.exports=p,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 i=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,a=0,s="",u=t&&t.delimiter||"/";null!=(n=i.exec(e));){var d=n[0],h=n[1],p=n.index;if(s+=e.slice(a,p),a=p+d.length,h)s+=h[1];else{var f=e[a],m=n[2],g=n[3],v=n[4],y=n[5],b=n[6],x=n[7];s&&(r.push(s),s="");var w=null!=m&&null!=f&&f!==m,S="+"===b||"*"===b,_="?"===b||"*"===b,C=n[2]||u,E=v||y;r.push({name:g||o++,prefix:m||"",delimiter:C,optional:_,repeat:S,partial:w,asterisk:!!x,pattern:E?c(E):x?".*":"[^"+l(C)+"]+?"})}}return a<e.length&&(s+=e.substr(a)),s&&r.push(s),r}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),i=0;i<e.length;i++)"object"===typeof e[i]&&(n[i]=new RegExp("^(?:"+e[i].pattern+")$",d(t)));return function(t,i){for(var o="",s=t||{},l=(i||{}).pretty?a:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!==typeof u){var d,h=s[u.name];if(null==h){if(u.optional){u.partial&&(o+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(h)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(h)+"`");if(0===h.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var p=0;p<h.length;p++){if(d=l(h[p]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===p?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(h).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):l(h),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');o+=u.prefix+d}}else o+=u}return o}}function l(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function c(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function h(e,t,n){r(t)||(n=t||n,t=[]);for(var i=(n=n||{}).strict,o=!1!==n.end,a="",s=0;s<e.length;s++){var c=e[s];if("string"===typeof c)a+=l(c);else{var h=l(c.prefix),p="(?:"+c.pattern+")";t.push(c),c.repeat&&(p+="(?:"+h+p+")*"),a+=p=c.optional?c.partial?h+"("+p+")?":"(?:"+h+"("+p+"))?":h+"("+p+")"}}var f=l(n.delimiter||"/"),m=a.slice(-f.length)===f;return i||(a=(m?a.slice(0,-f.length):a)+"(?:"+f+"(?=$))?"),a+=o?"$":i&&m?"":"(?="+f+"|$)",u(new RegExp("^"+a,d(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],i=0;i<e.length;i++)r.push(p(e[i],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return h(o(e,n),t,n)}(e,t,n)}},20261:(e,t)=>{"use strict";var n="function"===typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,i=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,l=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,h=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,f=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,b=n?Symbol.for("react.responder"):60118,x=n?Symbol.for("react.scope"):60119;function w(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case o:case s:case a:case p:return e;default:switch(e=e&&e.$$typeof){case c:case h:case g:case m:case l:return e;default:return t}}case i:return t}}}function S(e){return w(e)===d}},99898:(e,t,n)=>{"use strict";n(20261)},62685:(e,t,n)=>{"use strict";n.d(t,{Z:()=>S});var r=n(87462),i=n(63366),o=n(51721);function a(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}var s=n(68963),l=n(38886);const c=!1;var u=n(24330),d=function(e){return e.scrollTop},h="unmounted",p="exited",f="entering",m="entered",g="exiting",v=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var i,o=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?o?(i=p,r.appearStatus=f):i=m:i=t.unmountOnExit||t.mountOnEnter?h:p,r.state={status:i},r.nextCallback=null,r}(0,o.Z)(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===h?{status:p}: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!==f&&n!==m&&(t=f):n!==f&&n!==m||(t=g)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!==typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.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===f){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:l.findDOMNode(this);n&&d(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===p&&this.setState({status:h})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,i=this.props.nodeRef?[r]:[l.findDOMNode(this),r],o=i[0],a=i[1],s=this.getTimeouts(),u=r?s.appear:s.enter;!e&&!n||c?this.safeSetState({status:m},(function(){t.props.onEntered(o)})):(this.props.onEnter(o,a),this.safeSetState({status:f},(function(){t.props.onEntering(o,a),t.onTransitionEnd(u,(function(){t.safeSetState({status:m},(function(){t.props.onEntered(o,a)}))}))})))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:l.findDOMNode(this);t&&!c?(this.props.onExit(r),this.safeSetState({status:g},(function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:p},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:p},(function(){e.props.onExited(r)}))},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(r){n&&(n=!1,t.nextCallback=null,e(r))},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:l.findDOMNode(this),r=null==e&&!this.props.addEndListener;if(n&&!r){if(this.props.addEndListener){var i=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],o=i[0],a=i[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,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 s.createElement(u.Z.Provider,{value:null},"function"===typeof n?n(e,r):s.cloneElement(s.Children.only(n),r))},t}(s.Component);function y(){}v.contextType=u.Z,v.propTypes={},v.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:y,onEntering:y,onEntered:y,onExit:y,onExiting:y,onExited:y},v.UNMOUNTED=h,v.EXITED=p,v.ENTERING=f,v.ENTERED=m,v.EXITING=g;const b=v;var x=function(e,t){return e&&t&&t.split(" ").forEach((function(t){return r=t,void((n=e).classList?n.classList.remove(r):"string"===typeof n.className?n.className=a(n.className,r):n.setAttribute("class",a(n.className&&n.className.baseVal||"",r)));var n,r}))},w=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return(t=e.call.apply(e,[this].concat(r))||this).appliedClasses={appear:{},enter:{},exit:{}},t.onEnter=function(e,n){var r=t.resolveArguments(e,n),i=r[0],o=r[1];t.removeClasses(i,"exit"),t.addClass(i,o?"appear":"enter","base"),t.props.onEnter&&t.props.onEnter(e,n)},t.onEntering=function(e,n){var r=t.resolveArguments(e,n),i=r[0],o=r[1]?"appear":"enter";t.addClass(i,o,"active"),t.props.onEntering&&t.props.onEntering(e,n)},t.onEntered=function(e,n){var r=t.resolveArguments(e,n),i=r[0],o=r[1]?"appear":"enter";t.removeClasses(i,o),t.addClass(i,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,r="string"===typeof n,i=r?""+(r&&n?n+"-":"")+e:n[e];return{baseClassName:i,activeClassName:r?i+"-active":n[e+"Active"],doneClassName:r?i+"-done":n[e+"Done"]}},t}(0,o.Z)(t,e);var n=t.prototype;return n.addClass=function(e,t,n){var r=this.getClassNames(t)[n+"ClassName"],i=this.getClassNames("enter").doneClassName;"appear"===t&&"done"===n&&i&&(r+=" "+i),"active"===n&&e&&d(e),r&&(this.appliedClasses[t][n]=r,function(e,t){e&&t&&t.split(" ").forEach((function(t){return r=t,void((n=e).classList?n.classList.add(r):function(e,t){return e.classList?!!t&&e.classList.contains(t):-1!==(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")}(n,r)||("string"===typeof n.className?n.className=n.className+" "+r:n.setAttribute("class",(n.className&&n.className.baseVal||"")+" "+r)));var n,r}))}(e,r))},n.removeClasses=function(e,t){var n=this.appliedClasses[t],r=n.base,i=n.active,o=n.done;this.appliedClasses[t]={},r&&x(e,r),i&&x(e,i),o&&x(e,o)},n.render=function(){var e=this.props,t=(e.classNames,(0,i.Z)(e,["classNames"]));return s.createElement(b,(0,r.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={};const S=w},24330:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=n(68963).createContext(null)},74518:(e,t,n)=>{"use strict";var r=n(68963),i=Symbol.for("react.element"),o=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,o={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)a.call(t,r)&&!l.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:i,type:e,key:c,ref:u,props:o,_owner:s.current}}t.jsx=c,t.jsxs=c},61920:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),p=Symbol.iterator;var f={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,g={};function v(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||f}function y(){}function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||f}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=v.prototype;var x=b.prototype=new y;x.constructor=b,m(x,v.prototype),x.isPureReactComponent=!0;var w=Array.isArray,S=Object.prototype.hasOwnProperty,_={current:null},C={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,r){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)S.call(t,i)&&!C.hasOwnProperty(i)&&(o[i]=t[i]);var l=arguments.length-2;if(1===l)o.children=r;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];o.children=c}if(e&&e.defaultProps)for(i in l=e.defaultProps)void 0===o[i]&&(o[i]=l[i]);return{$$typeof:n,type:e,key:a,ref:s,props:o,_owner:_.current}}function T(e){return"object"===typeof e&&null!==e&&e.$$typeof===n}var O=/\/+/g;function N(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 k(e,t,i,o,a){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case r:l=!0}}if(l)return a=a(l=e),e=""===o?"."+N(l,0):o,w(a)?(i="",null!=e&&(i=e.replace(O,"$&/")+"/"),k(a,t,i,"",(function(e){return e}))):null!=a&&(T(a)&&(a=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(a,i+(!a.key||l&&l.key===a.key?"":(""+a.key).replace(O,"$&/")+"/")+e)),t.push(a)),1;if(l=0,o=""===o?".":o+":",w(e))for(var c=0;c<e.length;c++){var u=o+N(s=e[c],c);l+=k(s,t,i,u,a)}else if(u=function(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"===typeof u)for(e=u.call(e),c=0;!(s=e.next()).done;)l+=k(s=s.value,t,i,u=o+N(s,c++),a);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function j(e,t,n){if(null==e)return e;var r=[],i=0;return k(e,r,"","",(function(e){return t.call(n,e,i++)})),r}function I(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var P={current:null},D={transition:null},A={ReactCurrentDispatcher:P,ReactCurrentBatchConfig:D,ReactCurrentOwner:_};t.Children={map:j,forEach:function(e,t,n){j(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return j(e,(function(){t++})),t},toArray:function(e){return j(e,(function(e){return e}))||[]},only:function(e){if(!T(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=v,t.Fragment=i,t.Profiler=a,t.PureComponent=b,t.StrictMode=o,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=A,t.cloneElement=function(e,t,r){if(null===e||void 0===e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var i=m({},e.props),o=e.key,a=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(a=t.ref,s=_.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)S.call(t,c)&&!C.hasOwnProperty(c)&&(i[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)i.children=r;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];i.children=l}return{$$typeof:n,type:e.type,key:o,ref:a,props:i,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=T,t.lazy=function(e){return{$$typeof:h,_payload:{_status:-1,_result:e},_init:I}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=D.transition;D.transition={};try{e()}finally{D.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return P.current.useCallback(e,t)},t.useContext=function(e){return P.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return P.current.useDeferredValue(e)},t.useEffect=function(e,t){return P.current.useEffect(e,t)},t.useId=function(){return P.current.useId()},t.useImperativeHandle=function(e,t,n){return P.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return P.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return P.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return P.current.useMemo(e,t)},t.useReducer=function(e,t,n){return P.current.useReducer(e,t,n)},t.useRef=function(e){return P.current.useRef(e)},t.useState=function(e){return P.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return P.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return P.current.useTransition()},t.version="18.2.0"},68963:(e,t,n)=>{"use strict";e.exports=n(61920)},75859:(e,t,n)=>{"use strict";e.exports=n(74518)},94909:(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="-"},45715:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.createReduxLocationActions=function(e,t,n,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:s.stateToParams;e[o.RLSCONFIG]&&e[o.RLSCONFIG][o.OVERWRITE_ACCESSORS]&&Object.keys(e[o.RLSCONFIG][o.OVERWRITE_ACCESSORS]).forEach((function(t){(0,o.overrideAccessors)(t,e[o.RLSCONFIG][o.OVERWRITE_ACCESSORS][t])}));var u={};return{locationMiddleware:function(t){return function(r){return function(i){var a=t.getState(),s=r(i),l=t.getState(),d=n.location,h=d.pathname!==u.pathname;if(l!==a||h){u=d;var p=c(e,l,d),f=p.shouldPush,m=p.location;(0,o.isEqual)(m,d)||(f&&!h?n.push(m):n.replace(m))}return s}}},reducersWithLocation:function(n,o){var s=function(n,o){var s=o.type,l=o.payload;if(s!==i.LOCATION_POP||!l)return n;var c=r({},l,{query:(0,a.parseQuery)(e,l)});return t(n,c)}(l(n,o),o);return s!==n?s:n}}};var i=n(94909),o=n(58102),a=n(43903),s=n(78103)},58102:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.paramDecoder=t.OVERWRITE_ACCESSORS=t.RLSCONFIG=void 0,t.setParamEncoder=function(e){c=e},t.setParamDecoder=function(e){t.paramDecoder=u=e},t.overrideAccessors=function(e,t){l[e]=t},t.get=function(){return l.get.apply(l,arguments)},t.set=function(){return l.set.apply(l,arguments)},t.isEqual=function(){return l.isEqual.apply(l,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 r=n.toString(),i=e[n];if(function(e){return"undefined"===typeof e||null===e}(i)||Array.isArray(i)&&!i.length)return t;var o=e[n].toString();return[].concat(s(t),[c(r)+"="+c(o)])}),[]);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 r=t?t(n):n.split("=");return e[u(r[0])]=u(r[1])||"",e}),{})||{}};var r=a(n(63639)),i=a(n(85690)),o=a(n(9447));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 l={get:r.default,set:o.default,isEqual:i.default},c=encodeURIComponent,u=t.paramDecoder=decodeURIComponent;function d(e,t){var n=t.pathname.split("/");return Object.keys(e).filter((function(e){var t=[].concat(s(n)),r=e.split("/"),i=[].concat(s(r)),o=0;return r.forEach((function(e,n){"*"===e&&(t.splice(n-o,1),i.splice(n-o,1),o++)})),t.join("/")===i.join("/")}))[0]}},91087:(e,t,n)=>{"use strict";var r=n(45715);Object.defineProperty(t,"zl",{enumerable:!0,get:function(){return r.createReduxLocationActions}});var i=n(28931);Object.defineProperty(t,"C1",{enumerable:!0,get:function(){return i.listenForHistoryChange}});var o=n(58102)},28931:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.listenForHistoryChange=function(e,t){var n=function(e){return{type:r.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:r.LOCATION_PUSH,payload:e}}(t.location))})),e.dispatch(n(t.location))};var r=n(94909)},43903:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseQuery=function(e,t){var n=(0,r.createObjectFromConfig)(e,t),o=e[r.RLSCONFIG]&&e[r.RLSCONFIG].queryParser,a=(0,r.parseParams)(t.search,o);if(!n)return t.search;return Object.keys(n).reduce((function(e,t){var o=n[t],s=o.stateKey,l=o.options,c=void 0===l?{}:l,u=o.initialState,d=o.type,h=a[t],p=void 0;return"undefined"===typeof h||null===h?((0,r.set)(e,s,u),e):(p=c.parse?c.parse(h):d?i.typeHandles[d].parse(h,c):h,(0,r.set)(e,s,p),e)}),{})};var r=n(58102),i=n(88639)},78103:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="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=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.stateToParams=function(e,t,n){var s=(0,o.createObjectFromConfig)(e,n),l=e[o.RLSCONFIG]&&e[o.RLSCONFIG].queryParser,c=(0,o.parseParams)(n.search,l);if(!s)return{location:i({},n)};var u=!1,d=Object.keys(s).reduce((function(e,n){var i=s[n],l=i.stateKey,d=i.options,h=void 0===d?{}:d,p=i.initialState,f=i.type,m=(0,o.get)(t,l),g=void 0;if("date"===f?g=m.toISOString().substring(0,10)===(p&&p.toISOString().substring(0,10)):(m&&"object"===("undefined"===typeof m?"undefined":r(m))&&!Object.keys(m).length&&(m=void 0),g="object"===("undefined"===typeof m?"undefined":r(m))?(0,o.isEqual)(p,m):m===p),("undefined"===typeof m&&!h.serialize||g)&&!h.setAsEmptyItem)return e;if(h.serialize){var v=h.serialize(m);if("undefined"===typeof v)return e;m=v}else f&&(m=a.typeHandles[f].serialize(m,h));return e[n]=m,m!==c[n]&&h.shouldPush&&(u=!0),e}),{});return{location:i({},n,{search:(0,o.createParamsString)(d)}),shouldPush:u}};var o=n(58102),a=n(88639)},88639:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.typeHandles=void 0;var r=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(l){i=!0,o=l}finally{try{!r&&s.return&&s.return()}finally{if(i)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},i=n(94909),o=n(58102);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||i.OBJECT_KEY_DELIMITER)},parse:function(e,t){return(0,o.paramDecoder)(e).split(t.delimiter||i.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(i.OBJECT_KEY_DELIMITER):Object.keys(e).sort().map((function(t,n){return""+t+i.OBJECT_KEY_DELIMITER+e[t]}))},parse:function(e,t){return t.isFlags?e.split(t.delimiter||i.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(i.OBJECT_KEY_DELIMITER),o=r(n,2),a=o[0],s=o[1];return e[a]=s,e}),{})}}}},34812:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,i=e[r];if(!(0<o(i,t)))break e;e[r]=t,e[n]=i,n=r}}function r(e){return 0===e.length?null:e[0]}function i(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,i=e.length,a=i>>>1;r<a;){var s=2*(r+1)-1,l=e[s],c=s+1,u=e[c];if(0>o(l,n))c<i&&0>o(u,l)?(e[r]=u,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(c<i&&0>o(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"===typeof performance&&"function"===typeof performance.now){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],u=[],d=1,h=null,p=3,f=!1,m=!1,g=!1,v="function"===typeof setTimeout?setTimeout:null,y="function"===typeof clearTimeout?clearTimeout:null,b="undefined"!==typeof setImmediate?setImmediate:null;function x(e){for(var t=r(u);null!==t;){if(null===t.callback)i(u);else{if(!(t.startTime<=e))break;i(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function w(e){if(g=!1,x(e),!m)if(null!==r(c))m=!0,D(S);else{var t=r(u);null!==t&&A(w,t.startTime-e)}}function S(e,n){m=!1,g&&(g=!1,y(T),T=-1),f=!0;var o=p;try{for(x(n),h=r(c);null!==h&&(!(h.expirationTime>n)||e&&!k());){var a=h.callback;if("function"===typeof a){h.callback=null,p=h.priorityLevel;var s=a(h.expirationTime<=n);n=t.unstable_now(),"function"===typeof s?h.callback=s:h===r(c)&&i(c),x(n)}else i(c);h=r(c)}if(null!==h)var l=!0;else{var d=r(u);null!==d&&A(w,d.startTime-n),l=!1}return l}finally{h=null,p=o,f=!1}}"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var _,C=!1,E=null,T=-1,O=5,N=-1;function k(){return!(t.unstable_now()-N<O)}function j(){if(null!==E){var e=t.unstable_now();N=e;var n=!0;try{n=E(!0,e)}finally{n?_():(C=!1,E=null)}}else C=!1}if("function"===typeof b)_=function(){b(j)};else if("undefined"!==typeof MessageChannel){var I=new MessageChannel,P=I.port2;I.port1.onmessage=j,_=function(){P.postMessage(null)}}else _=function(){v(j,0)};function D(e){E=e,C||(C=!0,_())}function A(e,n){T=v((function(){e(t.unstable_now())}),n)}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(){m||f||(m=!0,D(S))},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"):O=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return p},t.unstable_getFirstCallbackNode=function(){return r(c)},t.unstable_next=function(e){switch(p){case 1:case 2:case 3:var t=3;break;default:t=p}var n=p;p=t;try{return e()}finally{p=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=p;p=e;try{return t()}finally{p=n}},t.unstable_scheduleCallback=function(e,i,o){var a=t.unstable_now();switch("object"===typeof o&&null!==o?o="number"===typeof(o=o.delay)&&0<o?a+o:a:o=a,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:d++,callback:i,priorityLevel:e,startTime:o,expirationTime:s=o+s,sortIndex:-1},o>a?(e.sortIndex=o,n(u,e),null===r(c)&&e===r(u)&&(g?(y(T),T=-1):g=!0,A(w,o-a))):(e.sortIndex=s,n(c,e),m||f||(m=!0,D(S))),e},t.unstable_shouldYield=k,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},29558:(e,t,n)=>{"use strict";e.exports=n(34812)},18083:(e,t,n)=>{"use strict";var r=n(42780),i=n(10854),o=n(43597)(),a=n(81687),s=n(84968),l=r("%Math.floor%");e.exports=function(e,t){if("function"!==typeof e)throw new s("`fn` is not a function");if("number"!==typeof t||t<0||t>4294967295||l(t)!==t)throw new s("`length` must be a positive 32-bit integer");var n=arguments.length>2&&!!arguments[2],r=!0,c=!0;if("length"in e&&a){var u=a(e,"length");u&&!u.configurable&&(r=!1),u&&!u.writable&&(c=!1)}return(r||c||!n)&&(o?i(e,"length",t,!0,!0):i(e,"length",t)),e}},69612:e=>{e.exports=function(e,t,n,r){var i=n?n.call(r,e,t):void 0;if(void 0!==i)return!!i;if(e===t)return!0;if("object"!==typeof e||!e||"object"!==typeof t||!t)return!1;var o=Object.keys(e),a=Object.keys(t);if(o.length!==a.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),l=0;l<o.length;l++){var c=o[l];if(!s(c))return!1;var u=e[c],d=t[c];if(!1===(i=n?n.call(r,u,d,c):void 0)||void 0===i&&u!==d)return!1}return!0}},50810:(e,t,n)=>{"use strict";var r=n(42780),i=n(69039),o=n(68798),a=n(84968),s=r("%WeakMap%",!0),l=r("%Map%",!0),c=i("WeakMap.prototype.get",!0),u=i("WeakMap.prototype.set",!0),d=i("WeakMap.prototype.has",!0),h=i("Map.prototype.get",!0),p=i("Map.prototype.set",!0),f=i("Map.prototype.has",!0),m=function(e,t){for(var n,r=e;null!==(n=r.next);r=n)if(n.key===t)return r.next=n.next,n.next=e.next,e.next=n,n};e.exports=function(){var e,t,n,r={assert:function(e){if(!r.has(e))throw new a("Side channel does not contain "+o(e))},get:function(r){if(s&&r&&("object"===typeof r||"function"===typeof r)){if(e)return c(e,r)}else if(l){if(t)return h(t,r)}else if(n)return function(e,t){var n=m(e,t);return n&&n.value}(n,r)},has:function(r){if(s&&r&&("object"===typeof r||"function"===typeof r)){if(e)return d(e,r)}else if(l){if(t)return f(t,r)}else if(n)return function(e,t){return!!m(e,t)}(n,r);return!1},set:function(r,i){s&&r&&("object"===typeof r||"function"===typeof r)?(e||(e=new s),u(e,r,i)):l?(t||(t=new l),p(t,r,i)):(n||(n={key:{},next:null}),function(e,t,n){var r=m(e,t);r?r.value=n:e.next={key:t,next:e.next,value:n}}(n,r,i))}};return r}},35731:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,i="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(i);var n="function"===typeof t?t():t;throw new Error(n?i+": "+n:i)}}},21034:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));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()}}},46392:function(e,t,n){var r;e=n.nmd(e),function(i){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,l=36,c=1,u=26,d=38,h=700,p=72,f=128,m="-",g=/^xn--/,v=/[^\x20-\x7E]/,y=/[\x2E\u3002\uFF0E\uFF61]/g,b={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},x=l-c,w=Math.floor,S=String.fromCharCode;function _(e){throw new RangeError(b[e])}function C(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function E(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+C((e=e.replace(y,".")).split("."),t).join(".")}function T(e){for(var t,n,r=[],i=0,o=e.length;i<o;)(t=e.charCodeAt(i++))>=55296&&t<=56319&&i<o?56320==(64512&(n=e.charCodeAt(i++)))?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),i--):r.push(t);return r}function O(e){return C(e,(function(e){var t="";return e>65535&&(t+=S((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=S(e)})).join("")}function N(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function k(e,t,n){var r=0;for(e=n?w(e/h):e>>1,e+=w(e/t);e>x*u>>1;r+=l)e=w(e/x);return w(r+(x+1)*e/(e+d))}function j(e){var t,n,r,i,o,a,d,h,g,v,y,b=[],x=e.length,S=0,C=f,E=p;for((n=e.lastIndexOf(m))<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&_("not-basic"),b.push(e.charCodeAt(r));for(i=n>0?n+1:0;i<x;){for(o=S,a=1,d=l;i>=x&&_("invalid-input"),((h=(y=e.charCodeAt(i++))-48<10?y-22:y-65<26?y-65:y-97<26?y-97:l)>=l||h>w((s-S)/a))&&_("overflow"),S+=h*a,!(h<(g=d<=E?c:d>=E+u?u:d-E));d+=l)a>w(s/(v=l-g))&&_("overflow"),a*=v;E=k(S-o,t=b.length+1,0==o),w(S/t)>s-C&&_("overflow"),C+=w(S/t),S%=t,b.splice(S++,0,C)}return O(b)}function I(e){var t,n,r,i,o,a,d,h,g,v,y,b,x,C,E,O=[];for(b=(e=T(e)).length,t=f,n=0,o=p,a=0;a<b;++a)(y=e[a])<128&&O.push(S(y));for(r=i=O.length,i&&O.push(m);r<b;){for(d=s,a=0;a<b;++a)(y=e[a])>=t&&y<d&&(d=y);for(d-t>w((s-n)/(x=r+1))&&_("overflow"),n+=(d-t)*x,t=d,a=0;a<b;++a)if((y=e[a])<t&&++n>s&&_("overflow"),y==t){for(h=n,g=l;!(h<(v=g<=o?c:g>=o+u?u:g-o));g+=l)E=h-v,C=l-v,O.push(S(N(v+E%C,0))),h=w(E/C);O.push(S(N(h,0))),o=k(n,x,r==i),n=0,++r}++n,++t}return O.join("")}a={version:"1.4.1",ucs2:{decode:T,encode:O},decode:j,encode:I,toASCII:function(e){return E(e,(function(e){return v.test(e)?"xn--"+I(e):e}))},toUnicode:function(e){return E(e,(function(e){return g.test(e)?j(e.slice(4).toLowerCase()):e}))}},void 0===(r=function(){return a}.call(t,n,t,e))||(e.exports=r)}()},92820:(e,t,n)=>{"use strict";var r=n(46392);function i(){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}var o=/^([a-z0-9.+-]+:)/i,a=/:[0-9]*$/,s=/^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),c=["'"].concat(l),u=["%","/","?",";","#"].concat(c),d=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,p=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,f={javascript:!0,"javascript:":!0},m={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},v=n(63041);function y(e,t,n){if(e&&"object"===typeof e&&e instanceof i)return e;var r=new i;return r.parse(e,t,n),r}i.prototype.parse=function(e,t,n){if("string"!==typeof e)throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),a=-1!==i&&i<e.indexOf("#")?"?":"#",l=e.split(a);l[0]=l[0].replace(/\\/g,"/");var y=e=l.join(a);if(y=y.trim(),!n&&1===e.split("#").length){var b=s.exec(y);if(b)return this.path=y,this.href=y,this.pathname=b[1],b[2]?(this.search=b[2],this.query=t?v.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var x=o.exec(y);if(x){var w=(x=x[0]).toLowerCase();this.protocol=w,y=y.substr(x.length)}if(n||x||y.match(/^\/\/[^@/]+@[^@/]+/)){var S="//"===y.substr(0,2);!S||x&&m[x]||(y=y.substr(2),this.slashes=!0)}if(!m[x]&&(S||x&&!g[x])){for(var _,C,E=-1,T=0;T<d.length;T++){-1!==(O=y.indexOf(d[T]))&&(-1===E||O<E)&&(E=O)}-1!==(C=-1===E?y.lastIndexOf("@"):y.lastIndexOf("@",E))&&(_=y.slice(0,C),y=y.slice(C+1),this.auth=decodeURIComponent(_)),E=-1;for(T=0;T<u.length;T++){var O;-1!==(O=y.indexOf(u[T]))&&(-1===E||O<E)&&(E=O)}-1===E&&(E=y.length),this.host=y.slice(0,E),y=y.slice(E),this.parseHost(),this.hostname=this.hostname||"";var N="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!N)for(var k=this.hostname.split(/\./),j=(T=0,k.length);T<j;T++){var I=k[T];if(I&&!I.match(h)){for(var P="",D=0,A=I.length;D<A;D++)I.charCodeAt(D)>127?P+="x":P+=I[D];if(!P.match(h)){var R=k.slice(0,T),M=k.slice(T+1),L=I.match(p);L&&(R.push(L[1]),M.unshift(L[2])),M.length&&(y="/"+M.join(".")+y),this.hostname=R.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),N||(this.hostname=r.toASCII(this.hostname));var F=this.port?":"+this.port:"",z=this.hostname||"";this.host=z+F,this.href+=this.host,N&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==y[0]&&(y="/"+y))}if(!f[w])for(T=0,j=c.length;T<j;T++){var B=c[T];if(-1!==y.indexOf(B)){var U=encodeURIComponent(B);U===B&&(U=escape(B)),y=y.split(B).join(U)}}var H=y.indexOf("#");-1!==H&&(this.hash=y.substr(H),y=y.slice(0,H));var V=y.indexOf("?");if(-1!==V?(this.search=y.substr(V),this.query=y.substr(V+1),t&&(this.query=v.parse(this.query)),y=y.slice(0,V)):t&&(this.search="",this.query={}),y&&(this.pathname=y),g[w]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){F=this.pathname||"";var G=this.search||"";this.path=F+G}return this.href=this.format(),this},i.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",i=!1,o="";this.host?i=e+this.host:this.hostname&&(i=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(i+=":"+this.port)),this.query&&"object"===typeof this.query&&Object.keys(this.query).length&&(o=v.stringify(this.query,{arrayFormat:"repeat",addQueryPrefix:!1}));var a=this.search||o&&"?"+o||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||g[t])&&!1!==i?(i="//"+(i||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):i||(i=""),r&&"#"!==r.charAt(0)&&(r="#"+r),a&&"?"!==a.charAt(0)&&(a="?"+a),t+i+(n=n.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(a=a.replace("#","%23"))+r},i.prototype.resolve=function(e){return this.resolveObject(y(e,!1,!0)).format()},i.prototype.resolveObject=function(e){if("string"===typeof e){var t=new i;t.parse(e,!1,!0),e=t}for(var n=new i,r=Object.keys(this),o=0;o<r.length;o++){var a=r[o];n[a]=this[a]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var s=Object.keys(e),l=0;l<s.length;l++){var c=s[l];"protocol"!==c&&(n[c]=e[c])}return g[n.protocol]&&n.hostname&&!n.pathname&&(n.pathname="/",n.path=n.pathname),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!g[e.protocol]){for(var u=Object.keys(e),d=0;d<u.length;d++){var h=u[d];n[h]=e[h]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||m[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 f=n.pathname||"",v=n.search||"";n.path=f+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),x=b||y||n.host&&e.pathname,w=x,S=n.pathname&&n.pathname.split("/")||[],_=(p=e.pathname&&e.pathname.split("/")||[],n.protocol&&!g[n.protocol]);if(_&&(n.hostname="",n.port=null,n.host&&(""===S[0]?S[0]=n.host:S.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),x=x&&(""===p[0]||""===S[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,S=p;else if(p.length)S||(S=[]),S.pop(),S=S.concat(p),n.search=e.search,n.query=e.query;else if(null!=e.search){if(_)n.host=S.shift(),n.hostname=n.host,(N=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=N.shift(),n.hostname=N.shift(),n.host=n.hostname);return n.search=e.search,n.query=e.query,null===n.pathname&&null===n.search||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!S.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var C=S.slice(-1)[0],E=(n.host||e.host||S.length>1)&&("."===C||".."===C)||""===C,T=0,O=S.length;O>=0;O--)"."===(C=S[O])?S.splice(O,1):".."===C?(S.splice(O,1),T++):T&&(S.splice(O,1),T--);if(!x&&!w)for(;T--;T)S.unshift("..");!x||""===S[0]||S[0]&&"/"===S[0].charAt(0)||S.unshift(""),E&&"/"!==S.join("/").substr(-1)&&S.push("");var N,k=""===S[0]||S[0]&&"/"===S[0].charAt(0);_&&(n.hostname=k?"":S.length?S.shift():"",n.host=n.hostname,(N=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=N.shift(),n.hostname=N.shift(),n.host=n.hostname));return(x=x||n.host&&S.length)&&!k&&S.unshift(""),S.length>0?n.pathname=S.join("/"):(n.pathname=null,n.path=null),null===n.pathname&&null===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},i.prototype.parseHost=function(){var e=this.host,t=a.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},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){return"string"===typeof e&&(e=y(e)),e instanceof i?e.format():i.prototype.format.call(e)},t.Url=i},28127:(e,t,n)=>{"use strict";var r=n(68963);var i="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t},o=r.useSyncExternalStore,a=r.useRef,s=r.useEffect,l=r.useMemo,c=r.useDebugValue;t.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=a(null);if(null===d.current){var h={hasValue:!1,value:null};d.current=h}else h=d.current;d=l((function(){function e(e){if(!s){if(s=!0,o=e,e=r(e),void 0!==u&&h.hasValue){var t=h.value;if(u(t,e))return a=t}return a=e}if(t=a,i(o,e))return t;var n=r(e);return void 0!==u&&u(t,n)?t:(o=e,a=n)}var o,a,s=!1,l=void 0===n?null:n;return[function(){return e(t())},null===l?void 0:function(){return e(l())}]}),[t,n,r,u]);var p=o(e,d[0],d[1]);return s((function(){h.hasValue=!0,h.value=p}),[p]),c(p),p}},29074:(e,t,n)=>{"use strict";e.exports=n(28127)},24960:()=>{},26759:()=>{},56272:()=>{},24654:()=>{},97326:(e,t,n)=>{"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:()=>r})},64572:(e,t,n)=>{"use strict";function r(e){return r="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(e)}function i(e){var t=function(e,t){if("object"!=r(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=r(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==r(t)?t:String(t)}function o(e,t,n){return(t=i(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:()=>o})},87462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},51721:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function i(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>i})},63366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}n.d(t,{Z:()=>r})},17095:(e,t,n)=>{"use strict";n.d(t,{CN:()=>j,Tk:()=>M,hF:()=>K,oZ:()=>s});var r=n(38907),i=n(1399),o=n(89900),a=n(36313),s=(e=>(e.uninitialized="uninitialized",e.pending="pending",e.fulfilled="fulfilled",e.rejected="rejected",e))(s||{});var l=e=>[].concat(...e);var c=r.PO;function u(e,t){if(e===t||!(c(e)&&c(t)||Array.isArray(e)&&Array.isArray(t)))return t;const n=Object.keys(t),r=Object.keys(e);let i=n.length===r.length;const o=Array.isArray(t)?[]:{};for(const a of n)o[a]=u(e[a],t[a]),i&&(i=e[a]===o[a]);return i?e:o}var d=class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;this.value=e,this.meta=t}};var h=(0,i.PH)("__rtkq/focused"),p=(0,i.PH)("__rtkq/unfocused"),f=(0,i.PH)("__rtkq/online"),m=(0,i.PH)("__rtkq/offline");function g(e){return"query"===e.type}function v(e,t,n,r,i,o){return"function"===typeof e?e(t,n,r,i).map(y).map(o):Array.isArray(e)?e.map(y).map(o):[]}function y(e){return"string"===typeof e?{type:e}:e}function b(e){return null!=e}function x(e){let t=0;for(const n in e)t++;return t}var w=Symbol("forceQueryFn"),S=e=>"function"===typeof e[w];function _(e){return e}function C(e,t,n,r){return v(n[e.meta.arg.endpointName][t],(0,i.KD)(e)?e.payload:void 0,(0,i.h_)(e)?e.payload:void 0,e.meta.arg.originalArgs,"baseQueryMeta"in e.meta?e.meta.baseQueryMeta:void 0,r)}function E(e,t,n){const r=e[t];r&&n(r)}function T(e){var t;return null!==(t="arg"in e?e.arg.fixedCacheKey:e.fixedCacheKey)&&void 0!==t?t:e.requestId}function O(e,t,n){const r=e[T(t)];r&&n(r)}var N={};function k(e){let{reducerPath:t,queryThunk:n,mutationThunk:a,context:{endpointDefinitions:s,apiUid:l,extractRehydrationInfo:c,hasRehydrationInfo:d},assertTagType:g,config:v}=e;const y=(0,i.PH)("".concat(t,"/resetApiState")),b=(0,i.oM)({name:"".concat(t,"/queries"),initialState:N,reducers:{removeQueryResult:{reducer(e,t){let{payload:{queryCacheKey:n}}=t;delete e[n]},prepare:(0,i.cw)()},queryResultPatched:{reducer(e,t){let{payload:{queryCacheKey:n,patches:r}}=t;E(e,n,(e=>{e.data=(0,o.QE)(e.data,r.concat())}))},prepare:(0,i.cw)()}},extraReducers(e){e.addCase(n.pending,((e,t)=>{var n,r;let{meta:i,meta:{arg:o}}=t;const a=S(o);null!==(r=e[n=o.queryCacheKey])&&void 0!==r||(e[n]={status:"uninitialized",endpointName:o.endpointName}),E(e,o.queryCacheKey,(e=>{e.status="pending",e.requestId=a&&e.requestId?e.requestId:i.requestId,void 0!==o.originalArgs&&(e.originalArgs=o.originalArgs),e.startedTimeStamp=i.startedTimeStamp}))})).addCase(n.fulfilled,((e,t)=>{let{meta:n,payload:r}=t;E(e,n.arg.queryCacheKey,(e=>{if(e.requestId!==n.requestId&&!S(n.arg))return;const{merge:t}=s[n.arg.endpointName];var i;if(e.status="fulfilled",t)if(void 0!==e.data){const{fulfilledTimeStamp:i,arg:a,baseQueryMeta:s,requestId:l}=n;let c=(0,o.Uy)(e.data,(e=>t(e,r,{arg:a.originalArgs,baseQueryMeta:s,fulfilledTimeStamp:i,requestId:l})));e.data=c}else e.data=r;else e.data=null===(i=s[n.arg.endpointName].structuralSharing)||void 0===i||i?u((0,o.mv)(e.data)?(0,o.Js)(e.data):e.data,r):r;delete e.error,e.fulfilledTimeStamp=n.fulfilledTimeStamp}))})).addCase(n.rejected,((e,t)=>{let{meta:{condition:n,arg:r,requestId:i},error:o,payload:a}=t;E(e,r.queryCacheKey,(e=>{if(n);else{if(e.requestId!==i)return;e.status="rejected",e.error=null!==a&&void 0!==a?a:o}}))})).addMatcher(d,((e,t)=>{const{queries:n}=c(t);for(const[r,i]of Object.entries(n))"fulfilled"!==(null===i||void 0===i?void 0:i.status)&&"rejected"!==(null===i||void 0===i?void 0:i.status)||(e[r]=i)}))}}),x=(0,i.oM)({name:"".concat(t,"/mutations"),initialState:N,reducers:{removeMutationResult:{reducer(e,t){let{payload:n}=t;const r=T(n);r in e&&delete e[r]},prepare:(0,i.cw)()}},extraReducers(e){e.addCase(a.pending,((e,t)=>{let{meta:n,meta:{requestId:r,arg:i,startedTimeStamp:o}}=t;i.track&&(e[T(n)]={requestId:r,status:"pending",endpointName:i.endpointName,startedTimeStamp:o})})).addCase(a.fulfilled,((e,t)=>{let{payload:n,meta:r}=t;r.arg.track&&O(e,r,(e=>{e.requestId===r.requestId&&(e.status="fulfilled",e.data=n,e.fulfilledTimeStamp=r.fulfilledTimeStamp)}))})).addCase(a.rejected,((e,t)=>{let{payload:n,error:r,meta:i}=t;i.arg.track&&O(e,i,(e=>{e.requestId===i.requestId&&(e.status="rejected",e.error=null!==n&&void 0!==n?n:r)}))})).addMatcher(d,((e,t)=>{const{mutations:n}=c(t);for(const[r,i]of Object.entries(n))"fulfilled"!==(null===i||void 0===i?void 0:i.status)&&"rejected"!==(null===i||void 0===i?void 0:i.status)||r===(null===i||void 0===i?void 0:i.requestId)||(e[r]=i)}))}}),w=(0,i.oM)({name:"".concat(t,"/invalidation"),initialState:N,reducers:{updateProvidedBy:{reducer(e,t){const{queryCacheKey:n,providedTags:r}=t.payload;for(const l of Object.values(e))for(const e of Object.values(l)){const t=e.indexOf(n);-1!==t&&e.splice(t,1)}for(const{type:l,id:c}of r){var i,o,a,s;const t=null!==(a=(i=null!==(s=e[l])&&void 0!==s?s:e[l]={})[o=c||"__internal_without_id"])&&void 0!==a?a:i[o]=[];t.includes(n)||t.push(n)}},prepare:(0,i.cw)()}},extraReducers(e){e.addCase(b.actions.removeQueryResult,((e,t)=>{let{payload:{queryCacheKey:n}}=t;for(const r of Object.values(e))for(const e of Object.values(r)){const t=e.indexOf(n);-1!==t&&e.splice(t,1)}})).addMatcher(d,((e,t)=>{const{provided:n}=c(t);for(const[s,l]of Object.entries(n))for(const[t,n]of Object.entries(l)){var r,i,o,a;const l=null!==(o=(r=null!==(a=e[s])&&void 0!==a?a:e[s]={})[i=t||"__internal_without_id"])&&void 0!==o?o:r[i]=[];for(const e of n){l.includes(e)||l.push(e)}}})).addMatcher((0,i.Q)((0,i.KD)(n),(0,i.h_)(n)),((e,t)=>{const n=C(t,"providesTags",s,g),{queryCacheKey:r}=t.meta.arg;w.caseReducers.updateProvidedBy(e,w.actions.updateProvidedBy({queryCacheKey:r,providedTags:n}))}))}}),_=(0,i.oM)({name:"".concat(t,"/subscriptions"),initialState:N,reducers:{updateSubscriptionOptions(e,t){},unsubscribeQueryResult(e,t){},internal_getRTKQSubscriptions(){}}}),k=(0,i.oM)({name:"".concat(t,"/internalSubscriptions"),initialState:N,reducers:{subscriptionsUpdated:{reducer:(e,t)=>(0,o.QE)(e,t.payload),prepare:(0,i.cw)()}}}),j=(0,i.oM)({name:"".concat(t,"/config"),initialState:{online:"undefined"===typeof navigator||void 0===navigator.onLine||navigator.onLine,focused:"undefined"===typeof document||"hidden"!==document.visibilityState,middlewareRegistered:!1,...v},reducers:{middlewareRegistered(e,t){let{payload:n}=t;e.middlewareRegistered="conflict"!==e.middlewareRegistered&&l===n||"conflict"}},extraReducers:e=>{e.addCase(f,(e=>{e.online=!0})).addCase(m,(e=>{e.online=!1})).addCase(h,(e=>{e.focused=!0})).addCase(p,(e=>{e.focused=!1})).addMatcher(d,(e=>({...e})))}}),I=(0,r.UY)({queries:b.reducer,mutations:x.reducer,provided:w.reducer,subscriptions:k.reducer,config:j.reducer});return{reducer:(e,t)=>I(y.match(t)?void 0:e,t),actions:{...j.actions,...b.actions,..._.actions,...k.actions,...x.actions,...w.actions,resetApiState:y}}}var j=Symbol.for("RTKQ/skipToken"),I={status:"uninitialized"},P=(0,o.Uy)(I,(()=>{})),D=(0,o.Uy)(I,(()=>{}));var A=WeakMap?new WeakMap:void 0,R=e=>{let{endpointName:t,queryArgs:n}=e,i="";const o=null===A||void 0===A?void 0:A.get(n);if("string"===typeof o)i=o;else{const e=JSON.stringify(n,((e,t)=>(0,r.PO)(t)?Object.keys(t).sort().reduce(((e,n)=>(e[n]=t[n],e)),{}):t));(0,r.PO)(n)&&(null===A||void 0===A||A.set(n,e)),i=e}return"".concat(t,"(").concat(i,")")};function M(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){const n=(0,a.kO)((t=>{var n,r;return null===(n=e.extractRehydrationInfo)||void 0===n?void 0:n.call(e,t,{reducerPath:null!==(r=e.reducerPath)&&void 0!==r?r:"api"})})),r={reducerPath:"api",keepUnusedDataFor:60,refetchOnMountOrArgChange:!1,refetchOnFocus:!1,refetchOnReconnect:!1,invalidationBehavior:"delayed",...e,extractRehydrationInfo:n,serializeQueryArgs(t){let n=R;if("serializeQueryArgs"in t.endpointDefinition){const e=t.endpointDefinition.serializeQueryArgs;n=t=>{const n=e(t);return"string"===typeof n?n:R({...t,queryArgs:n})}}else e.serializeQueryArgs&&(n=e.serializeQueryArgs);return n(t)},tagTypes:[...e.tagTypes||[]]},o={endpointDefinitions:{},batch(e){e()},apiUid:(0,i.x0)(),extractRehydrationInfo:n,hasRehydrationInfo:(0,a.kO)((e=>null!=n(e)))},s={injectEndpoints:function(e){const t=e.endpoints({query:e=>({...e,type:"query"}),mutation:e=>({...e,type:"mutation"})});for(const[n,r]of Object.entries(t))if(!0!==e.overrideExisting&&n in o.endpointDefinitions){if("throw"===e.overrideExisting)throw new Error((0,i.rJ)(39))}else{o.endpointDefinitions[n]=r;for(const e of l)e.injectEndpoint(n,r)}return s},enhanceEndpoints(e){let{addTagTypes:t,endpoints:n}=e;if(t)for(const i of t)r.tagTypes.includes(i)||r.tagTypes.push(i);if(n)for(const[r,i]of Object.entries(n))"function"===typeof i?i(o.endpointDefinitions[r]):Object.assign(o.endpointDefinitions[r]||{},i);return s}},l=t.map((e=>e.init(s,r,o)));return s.injectEndpoints({endpoints:e.endpoints})}}var L=2147482.647,F=e=>{let{reducerPath:t,api:n,queryThunk:r,context:o,internalState:a}=e;const{removeQueryResult:s,unsubscribeQueryResult:l}=n.internalActions,c=(0,i.Q)(l.match,r.fulfilled,r.rejected);function u(e){const t=a.currentSubscriptions[e];return!!t&&!function(e){for(let t in e)return!1;return!0}(t)}const d={};function h(e,t,n,r){var i;const a=o.endpointDefinitions[t],l=null!==(i=null===a||void 0===a?void 0:a.keepUnusedDataFor)&&void 0!==i?i:r.keepUnusedDataFor;if(l===1/0)return;const c=Math.max(0,Math.min(l,L));if(!u(e)){const t=d[e];t&&clearTimeout(t),d[e]=setTimeout((()=>{u(e)||n.dispatch(s({queryCacheKey:e})),delete d[e]}),1e3*c)}}return(e,r,i)=>{if(c(e)){var a;const n=r.getState()[t],{queryCacheKey:i}=l.match(e)?e.payload:e.meta.arg;h(i,null===(a=n.queries[i])||void 0===a?void 0:a.endpointName,r,n.config)}if(n.util.resetApiState.match(e))for(const[t,n]of Object.entries(d))n&&clearTimeout(n),delete d[t];if(o.hasRehydrationInfo(e)){const n=r.getState()[t],{queries:i}=o.extractRehydrationInfo(e);for(const[e,t]of Object.entries(i))h(e,null===t||void 0===t?void 0:t.endpointName,r,n.config)}}},z=e=>{let{reducerPath:t,context:n,context:{endpointDefinitions:r},mutationThunk:o,queryThunk:a,api:s,assertTagType:l,refetchQuery:c,internalState:u}=e;const{removeQueryResult:d}=s.internalActions,h=(0,i.Q)((0,i.KD)(o),(0,i.h_)(o)),p=(0,i.Q)((0,i.KD)(o,a),(0,i.Iv)(o,a));let f=[];function m(e,r){const i=r.getState(),o=i[t];if(f.push(...e),"delayed"===o.config.invalidationBehavior&&function(e){for(const r in e.queries){var t;if("pending"===(null===(t=e.queries[r])||void 0===t?void 0:t.status))return!0}for(const r in e.mutations){var n;if("pending"===(null===(n=e.mutations[r])||void 0===n?void 0:n.status))return!0}return!1}(o))return;const a=f;if(f=[],0===a.length)return;const l=s.util.selectInvalidatedBy(i,a);n.batch((()=>{const e=Array.from(l.values());for(const{queryCacheKey:n}of e){var t;const e=o.queries[n],i=null!==(t=u.currentSubscriptions[n])&&void 0!==t?t:{};e&&(0===x(i)?r.dispatch(d({queryCacheKey:n})):"uninitialized"!==e.status&&r.dispatch(c(e,n)))}}))}return(e,t)=>{h(e)?m(C(e,"invalidatesTags",r,l),t):p(e)?m([],t):s.util.invalidateTags.match(e)&&m(v(e.payload,void 0,void 0,void 0,void 0,l),t)}},B=e=>{let{reducerPath:t,queryThunk:n,api:r,refetchQuery:i,internalState:o}=e;const a={};function s(e,n){let{queryCacheKey:r}=e;const l=n.getState()[t],c=l.queries[r],d=o.currentSubscriptions[r];if(!c||"uninitialized"===c.status)return;const{lowestPollingInterval:h,skipPollingIfUnfocused:p}=u(d);if(!Number.isFinite(h))return;const f=a[r];null!==f&&void 0!==f&&f.timeout&&(clearTimeout(f.timeout),f.timeout=void 0);const m=Date.now()+h;a[r]={nextPollTimestamp:m,pollingInterval:h,timeout:setTimeout((()=>{!l.config.focused&&p||n.dispatch(i(c,r)),s({queryCacheKey:r},n)}),h)}}function l(e,n){let{queryCacheKey:r}=e;const i=n.getState()[t].queries[r],l=o.currentSubscriptions[r];if(!i||"uninitialized"===i.status)return;const{lowestPollingInterval:d}=u(l);if(!Number.isFinite(d))return void c(r);const h=a[r],p=Date.now()+d;(!h||p<h.nextPollTimestamp)&&s({queryCacheKey:r},n)}function c(e){const t=a[e];null!==t&&void 0!==t&&t.timeout&&clearTimeout(t.timeout),delete a[e]}function u(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=!1,n=Number.POSITIVE_INFINITY;for(let r in e)e[r].pollingInterval&&(n=Math.min(e[r].pollingInterval,n),t=e[r].skipPollingIfUnfocused||t);return{lowestPollingInterval:n,skipPollingIfUnfocused:t}}return(e,t)=>{(r.internalActions.updateSubscriptionOptions.match(e)||r.internalActions.unsubscribeQueryResult.match(e))&&l(e.payload,t),(n.pending.match(e)||n.rejected.match(e)&&e.meta.condition)&&l(e.meta.arg,t),(n.fulfilled.match(e)||n.rejected.match(e)&&!e.meta.condition)&&s(e.meta.arg,t),r.util.resetApiState.match(e)&&function(){for(const e of Object.keys(a))c(e)}()}},U=e=>{let{reducerPath:t,context:n,api:r,refetchQuery:i,internalState:o}=e;const{removeQueryResult:a}=r.internalActions;function s(e,r){const s=e.getState()[t],l=s.queries,c=o.currentSubscriptions;n.batch((()=>{for(const t of Object.keys(c)){const n=l[t],o=c[t];if(!o||!n)continue;(Object.values(o).some((e=>!0===e[r]))||Object.values(o).every((e=>void 0===e[r]))&&s.config[r])&&(0===x(o)?e.dispatch(a({queryCacheKey:t})):"uninitialized"!==n.status&&e.dispatch(i(n,t)))}}))}return(e,t)=>{h.match(e)&&s(t,"refetchOnFocus"),f.match(e)&&s(t,"refetchOnReconnect")}},H=new Error("Promise never resolved before cacheEntryRemoved."),V=e=>{let{api:t,reducerPath:n,context:r,queryThunk:o,mutationThunk:a,internalState:s}=e;const l=(0,i.Gx)(o),c=(0,i.Gx)(a),u=(0,i.KD)(o,a),d={};function h(e,n,i,o,a){const s=r.endpointDefinitions[e],l=null===s||void 0===s?void 0:s.onCacheEntryAdded;if(!l)return;let c={};const u=new Promise((e=>{c.cacheEntryRemoved=e})),h=Promise.race([new Promise((e=>{c.valueResolved=e})),u.then((()=>{throw H}))]);h.catch((()=>{})),d[i]=c;const p=t.endpoints[e].select("query"===s.type?n:i),f=o.dispatch(((e,t,n)=>n)),m={...o,getCacheEntry:()=>p(o.getState()),requestId:a,extra:f,updateCachedData:"query"===s.type?r=>o.dispatch(t.util.updateQueryData(e,n,r)):void 0,cacheDataLoaded:h,cacheEntryRemoved:u},g=l(n,m);Promise.resolve(g).catch((e=>{if(e!==H)throw e}))}return(e,r,i)=>{const s=function(e){return l(e)?e.meta.arg.queryCacheKey:c(e)?null!==(n=e.meta.arg.fixedCacheKey)&&void 0!==n?n:e.meta.requestId:t.internalActions.removeQueryResult.match(e)?e.payload.queryCacheKey:t.internalActions.removeMutationResult.match(e)?T(e.payload):"";var n}(e);if(o.pending.match(e)){const t=i[n].queries[s],o=r.getState()[n].queries[s];!t&&o&&h(e.meta.arg.endpointName,e.meta.arg.originalArgs,s,r,e.meta.requestId)}else if(a.pending.match(e)){r.getState()[n].mutations[s]&&h(e.meta.arg.endpointName,e.meta.arg.originalArgs,s,r,e.meta.requestId)}else if(u(e)){const t=d[s];null!==t&&void 0!==t&&t.valueResolved&&(t.valueResolved({data:e.payload,meta:e.meta.baseQueryMeta}),delete t.valueResolved)}else if(t.internalActions.removeQueryResult.match(e)||t.internalActions.removeMutationResult.match(e)){const e=d[s];e&&(delete d[s],e.cacheEntryRemoved())}else if(t.util.resetApiState.match(e))for(const[t,n]of Object.entries(d))delete d[t],n.cacheEntryRemoved()}},G=e=>{let{api:t,context:n,queryThunk:r,mutationThunk:o}=e;const a=(0,i.zR)(r,o),s=(0,i.Iv)(r,o),l=(0,i.KD)(r,o),c={};return(e,r)=>{if(a(e)){const{requestId:i,arg:{endpointName:o,originalArgs:a}}=e.meta,s=n.endpointDefinitions[o],l=null===s||void 0===s?void 0:s.onQueryStarted;if(l){const e={},n=new Promise(((t,n)=>{e.resolve=t,e.reject=n}));n.catch((()=>{})),c[i]=e;const u=t.endpoints[o].select("query"===s.type?a:i),d=r.dispatch(((e,t,n)=>n)),h={...r,getCacheEntry:()=>u(r.getState()),requestId:i,extra:d,updateCachedData:"query"===s.type?e=>r.dispatch(t.util.updateQueryData(o,a,e)):void 0,queryFulfilled:n};l(a,h)}}else if(l(e)){var i;const{requestId:t,baseQueryMeta:n}=e.meta;null===(i=c[t])||void 0===i||i.resolve({data:e.payload,meta:n}),delete c[t]}else if(s(e)){var o,u;const{requestId:t,rejectedWithValue:n,baseQueryMeta:r}=e.meta;null===(o=c[t])||void 0===o||o.reject({error:null!==(u=e.payload)&&void 0!==u?u:e.error,isUnhandledError:!n,meta:r}),delete c[t]}}},W=e=>{let{api:t,context:{apiUid:n},reducerPath:r}=e;return(e,r)=>{t.util.resetApiState.match(e)&&r.dispatch(t.internalActions.middlewareRegistered(n))}},q=e=>{let{api:t,queryThunk:n,internalState:r}=e;const i="".concat(t.reducerPath,"/subscriptions");let a=null,s=null;const{updateSubscriptionOptions:l,unsubscribeQueryResult:c}=t.internalActions,u=()=>r.currentSubscriptions,d={getSubscriptions:u,getSubscriptionCount:e=>{var t;return x(null!==(t=u()[e])&&void 0!==t?t:{})},isRequestSubscribed:(e,t)=>{var n;const r=u();return!(null===r||void 0===r||null===(n=r[e])||void 0===n||!n[t])}};return(e,u)=>{if(a||(a=JSON.parse(JSON.stringify(r.currentSubscriptions))),t.util.resetApiState.match(e))return a=r.currentSubscriptions={},s=null,[!0,!1];if(t.internalActions.internal_getRTKQSubscriptions.match(e))return[!1,d];const h=((e,r)=>{if(l.match(r)){var i;const{queryCacheKey:t,requestId:n,options:o}=r.payload;return null!==e&&void 0!==e&&null!==(i=e[t])&&void 0!==i&&i[n]&&(e[t][n]=o),!0}if(c.match(r)){const{queryCacheKey:t,requestId:n}=r.payload;return e[t]&&delete e[t][n],!0}if(t.internalActions.removeQueryResult.match(r))return delete e[r.payload.queryCacheKey],!0;if(n.pending.match(r)){var o,a;const{meta:{arg:t,requestId:n}}=r,i=null!==(a=e[o=t.queryCacheKey])&&void 0!==a?a:e[o]={};var s,u;return i["".concat(n,"_running")]={},t.subscribe&&(i[n]=null!==(s=null!==(u=t.subscriptionOptions)&&void 0!==u?u:i[n])&&void 0!==s?s:{}),!0}let d=!1;if(n.fulfilled.match(r)||n.rejected.match(r)){const t=e[r.meta.arg.queryCacheKey]||{},n="".concat(r.meta.requestId,"_running");d||(d=!!t[n]),delete t[n]}if(n.rejected.match(r)){const{meta:{condition:t,arg:n,requestId:i}}=r;if(t&&n.subscribe){var h,p,f,m;const t=null!==(p=e[h=n.queryCacheKey])&&void 0!==p?p:e[h]={};t[i]=null!==(f=null!==(m=n.subscriptionOptions)&&void 0!==m?m:t[i])&&void 0!==f?f:{},d=!0}}return d})(r.currentSubscriptions,e);let p=!0;if(h){s||(s=setTimeout((()=>{const e=JSON.parse(JSON.stringify(r.currentSubscriptions)),[,n]=(0,o.aS)(a,(()=>e));u.next(t.internalActions.subscriptionsUpdated(n)),a=e,s=null}),500));const l="string"==typeof e.type&&!!e.type.startsWith(i),c=n.rejected.match(e)&&e.meta.condition&&!!e.meta.arg.subscribe;p=!l&&!c}return[p,!1]}};function Z(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return Object.assign(e,...n)}var Y=Symbol(),K=function(){let{createSelector:e=a.P1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{name:Y,init(t,n,a){let{baseQuery:s,tagTypes:c,reducerPath:u,serializeQueryArgs:C,keepUnusedDataFor:E,refetchOnMountOrArgChange:O,refetchOnFocus:N,refetchOnReconnect:I,invalidationBehavior:A}=n;(0,o.vI)();const R=e=>e;Object.assign(t,{reducerPath:u,endpoints:{},internalActions:{onOnline:f,onOffline:m,onFocus:h,onFocusLost:p},util:{}});const{queryThunk:M,mutationThunk:L,patchQueryData:H,updateQueryData:K,upsertQueryData:Q,prefetch:X,buildMatchThunkActions:$}=function(e){let{reducerPath:t,baseQuery:n,context:{endpointDefinitions:r},serializeQueryArgs:a,api:s,assertTagType:l}=e;const c=async(e,t)=>{let{signal:o,abort:a,rejectWithValue:s,fulfillWithValue:l,dispatch:c,getState:h,extra:p}=t;const f=r[e.endpointName];try{let t,r=_;const s={signal:o,abort:a,dispatch:c,getState:h,extra:p,endpoint:e.endpointName,type:e.type,forced:"query"===e.type?u(e,h()):void 0},m="query"===e.type?e[w]:void 0;if(m?t=m():f.query?(t=await n(f.query(e.originalArgs),s,f.extraOptions),f.transformResponse&&(r=f.transformResponse)):t=await f.queryFn(e.originalArgs,s,f.extraOptions,(e=>n(e,s,f.extraOptions))),t.error)throw new d(t.error,t.meta);return l(await r(t.data,t.meta,e.originalArgs),{fulfilledTimeStamp:Date.now(),baseQueryMeta:t.meta,[i.s4]:!0})}catch(m){let t=m;if(t instanceof d){let n=_;f.query&&f.transformErrorResponse&&(n=f.transformErrorResponse);try{return s(await n(t.value,t.meta,e.originalArgs),{baseQueryMeta:t.meta,[i.s4]:!0})}catch(g){t=g}}throw console.error(t),t}};function u(e,n){var r,i,o,a;const s=null===(r=n[t])||void 0===r||null===(i=r.queries)||void 0===i?void 0:i[e.queryCacheKey],l=null===(o=n[t])||void 0===o?void 0:o.config.refetchOnMountOrArgChange,c=null===s||void 0===s?void 0:s.fulfilledTimeStamp,u=null!==(a=e.forceRefetch)&&void 0!==a?a:e.subscribe&&l;return!!u&&(!0===u||(Number(new Date)-Number(c))/1e3>=u)}const h=(0,i.hg)("".concat(t,"/executeQuery"),c,{getPendingMeta:()=>({startedTimeStamp:Date.now(),[i.s4]:!0}),condition(e,n){var i,o,a;let{getState:s}=n;const l=s(),c=null===(i=l[t])||void 0===i||null===(o=i.queries)||void 0===o?void 0:o[e.queryCacheKey],d=null===c||void 0===c?void 0:c.fulfilledTimeStamp,h=e.originalArgs,p=null===c||void 0===c?void 0:c.originalArgs,f=r[e.endpointName];return!!S(e)||"pending"!==(null===c||void 0===c?void 0:c.status)&&(!!u(e,l)||!(!g(f)||null===f||void 0===f||null===(a=f.forceRefetch)||void 0===a||!a.call(f,{currentArg:h,previousArg:p,endpointState:c,state:l}))||!d)},dispatchConditionRejection:!0}),p=(0,i.hg)("".concat(t,"/executeMutation"),c,{getPendingMeta:()=>({startedTimeStamp:Date.now(),[i.s4]:!0})});function f(e){return t=>{var n,r;return(null===t||void 0===t||null===(n=t.meta)||void 0===n||null===(r=n.arg)||void 0===r?void 0:r.endpointName)===e}}return{queryThunk:h,mutationThunk:p,prefetch:(e,t,n)=>(r,i)=>{const o=(e=>"force"in e)(n)&&n.force,a=(e=>"ifOlderThan"in e)(n)&&n.ifOlderThan,l=function(){const n={forceRefetch:!(arguments.length>0&&void 0!==arguments[0])||arguments[0],isPrefetch:!0};return s.endpoints[e].initiate(t,n)},c=s.endpoints[e].select(t)(i());if(o)r(l());else if(a){const e=null===c||void 0===c?void 0:c.fulfilledTimeStamp;if(!e)return void r(l());(Number(new Date)-Number(new Date(e)))/1e3>=a&&r(l())}else r(l(!1))},updateQueryData:function(e,t,n){let r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return(i,a)=>{const l=s.endpoints[e].select(t)(a());let c,u={patches:[],inversePatches:[],undo:()=>i(s.util.patchQueryData(e,t,u.inversePatches,r))};if("uninitialized"===l.status)return u;if("data"in l)if((0,o.o$)(l.data)){const[e,t,r]=(0,o.aS)(l.data,n);u.patches.push(...t),u.inversePatches.push(...r),c=e}else c=n(l.data),u.patches.push({op:"replace",path:[],value:c}),u.inversePatches.push({op:"replace",path:[],value:l.data});return 0===u.patches.length||i(s.util.patchQueryData(e,t,u.patches,r)),u}},upsertQueryData:(e,t,n)=>r=>r(s.endpoints[e].initiate(t,{subscribe:!1,forceRefetch:!0,[w]:()=>({data:n})})),patchQueryData:(e,t,n,i)=>(o,c)=>{const u=r[e],d=a({queryArgs:t,endpointDefinition:u,endpointName:e});if(o(s.internalActions.queryResultPatched({queryCacheKey:d,patches:n})),!i)return;const h=s.endpoints[e].select(t)(c()),p=v(u.providesTags,h.data,void 0,t,{},l);o(s.internalActions.updateProvidedBy({queryCacheKey:d,providedTags:p}))},buildMatchThunkActions:function(e,t){return{matchPending:(0,i.A6)((0,i.zR)(e),f(t)),matchFulfilled:(0,i.A6)((0,i.KD)(e),f(t)),matchRejected:(0,i.A6)((0,i.Iv)(e),f(t))}}}}({baseQuery:s,reducerPath:u,context:a,api:t,serializeQueryArgs:C,assertTagType:R}),{reducer:J,actions:ee}=k({context:a,queryThunk:M,mutationThunk:L,reducerPath:u,assertTagType:R,config:{refetchOnFocus:N,refetchOnReconnect:I,refetchOnMountOrArgChange:O,keepUnusedDataFor:E,reducerPath:u,invalidationBehavior:A}});Z(t.util,{patchQueryData:H,updateQueryData:K,upsertQueryData:Q,prefetch:X,resetApiState:ee.resetApiState}),Z(t.internalActions,ee);const{middleware:te,actions:ne}=function(e){const{reducerPath:t,queryThunk:n,api:o,context:a}=e,{apiUid:s}=a,l={invalidateTags:(0,i.PH)("".concat(t,"/invalidateTags"))},c=e=>e.type.startsWith("".concat(t,"/")),u=[W,F,z,B,V,G];return{middleware:n=>{let i=!1;const l={...e,internalState:{currentSubscriptions:{}},refetchQuery:d,isThisApiSliceAction:c},h=u.map((e=>e(l))),p=q(l),f=U(l);return e=>l=>{if(!(0,r.LG)(l))return e(l);i||(i=!0,n.dispatch(o.internalActions.middlewareRegistered(s)));const u={...n,next:e},d=n.getState(),[m,g]=p(l,u,d);let v;if(v=m?e(l):g,n.getState()[t]&&(f(l,u,d),c(l)||a.hasRehydrationInfo(l)))for(let e of h)e(l,u,d);return v}},actions:l};function d(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n({type:"query",endpointName:e.endpointName,originalArgs:e.originalArgs,subscribe:!1,forceRefetch:!0,queryCacheKey:t,...r})}}({reducerPath:u,context:a,queryThunk:M,mutationThunk:L,api:t,assertTagType:R});Z(t.util,ne),Z(t,{reducer:J,middleware:te});const{buildQuerySelector:re,buildMutationSelector:ie,selectInvalidatedBy:oe,selectCachedArgsForQuery:ae}=function(e){let{serializeQueryArgs:t,reducerPath:n,createSelector:r}=e;const i=e=>P,o=e=>D;return{buildQuerySelector:function(e,n){return o=>{const l=t({queryArgs:o,endpointDefinition:n,endpointName:e});return r(o===j?i:e=>{var t,n,r;return null!==(t=null===(n=s(e))||void 0===n||null===(r=n.queries)||void 0===r?void 0:r[l])&&void 0!==t?t:P},a)}},buildMutationSelector:function(){return e=>{let t;var n;return t="object"===typeof e?null!==(n=T(e))&&void 0!==n?n:j:e,r(t===j?o:e=>{var n,r,i;return null!==(n=null===(r=s(e))||void 0===r||null===(i=r.mutations)||void 0===i?void 0:i[t])&&void 0!==n?n:D},a)}},selectInvalidatedBy:function(e,t){const r=e[n],i=new Set;for(const n of t.map(y)){var o;const e=r.provided[n.type];if(!e)continue;let t=null!==(o=void 0!==n.id?e[n.id]:l(Object.values(e)))&&void 0!==o?o:[];for(const n of t)i.add(n)}return l(Array.from(i.values()).map((e=>{const t=r.queries[e];return t?[{queryCacheKey:e,endpointName:t.endpointName,originalArgs:t.originalArgs}]:[]})))},selectCachedArgsForQuery:function(e,t){return Object.values(e[n].queries).filter((e=>(null===e||void 0===e?void 0:e.endpointName)===t&&"uninitialized"!==e.status)).map((e=>e.originalArgs))}};function a(e){return{...e,...(t=e.status,{status:t,isUninitialized:"uninitialized"===t,isLoading:"pending"===t,isSuccess:"fulfilled"===t,isError:"rejected"===t})};var t}function s(e){return e[n]}}({serializeQueryArgs:C,reducerPath:u,createSelector:e});Z(t.util,{selectInvalidatedBy:oe,selectCachedArgsForQuery:ae});const{buildInitiateQuery:se,buildInitiateMutation:le,getRunningMutationThunk:ce,getRunningMutationsThunk:ue,getRunningQueriesThunk:de,getRunningQueryThunk:he}=function(e){let{serializeQueryArgs:t,queryThunk:n,mutationThunk:r,api:i,context:o}=e;const a=new Map,s=new Map,{unsubscribeQueryResult:l,removeMutationResult:c,updateSubscriptionOptions:u}=i.internalActions;return{buildInitiateQuery:function(e,r){const o=function(s){let{subscribe:c=!0,forceRefetch:h,subscriptionOptions:p,[w]:f,...m}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(g,v)=>{var y;const b=t({queryArgs:s,endpointDefinition:r,endpointName:e}),S=n({...m,type:"query",subscribe:c,forceRefetch:h,subscriptionOptions:p,endpointName:e,originalArgs:s,queryCacheKey:b,[w]:f}),_=i.endpoints[e].select(s),C=g(S),E=_(v());d(g);const{requestId:T,abort:O}=C,N=E.requestId!==T,k=null===(y=a.get(g))||void 0===y?void 0:y[b],j=()=>_(v()),I=Object.assign(f?C.then(j):N&&!k?Promise.resolve(E):Promise.all([k,C]).then(j),{arg:s,requestId:T,subscriptionOptions:p,queryCacheKey:b,abort:O,async unwrap(){const e=await I;if(e.isError)throw e.error;return e.data},refetch:()=>g(o(s,{subscribe:!1,forceRefetch:!0})),unsubscribe(){c&&g(l({queryCacheKey:b,requestId:T}))},updateSubscriptionOptions(t){I.subscriptionOptions=t,g(u({endpointName:e,requestId:T,queryCacheKey:b,options:t}))}});if(!k&&!N&&!f){const e=a.get(g)||{};e[b]=I,a.set(g,e),I.then((()=>{delete e[b],x(e)||a.delete(g)}))}return I}};return o},buildInitiateMutation:function(e){return function(t){let{track:n=!0,fixedCacheKey:i}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(o,a)=>{const l=r({type:"mutation",endpointName:e,originalArgs:t,track:n,fixedCacheKey:i}),u=o(l);d(o);const{requestId:h,abort:p,unwrap:f}=u,m=(g=e=>({error:e}),u.unwrap().then((e=>({data:e}))).catch(g));var g;const v=Object.assign(m,{arg:u.arg,requestId:h,abort:p,unwrap:f,reset:()=>{o(c({requestId:h,fixedCacheKey:i}))}}),y=s.get(o)||{};return s.set(o,y),y[h]=v,v.then((()=>{delete y[h],x(y)||s.delete(o)})),i&&(y[i]=v,v.then((()=>{y[i]===v&&(delete y[i],x(y)||s.delete(o))}))),v}}},getRunningQueryThunk:function(e,n){return r=>{var i;const s=o.endpointDefinitions[e],l=t({queryArgs:n,endpointDefinition:s,endpointName:e});return null===(i=a.get(r))||void 0===i?void 0:i[l]}},getRunningMutationThunk:function(e,t){return e=>{var n;return null===(n=s.get(e))||void 0===n?void 0:n[t]}},getRunningQueriesThunk:function(){return e=>Object.values(a.get(e)||{}).filter(b)},getRunningMutationsThunk:function(){return e=>Object.values(s.get(e)||{}).filter(b)}};function d(e){}}({queryThunk:M,mutationThunk:L,api:t,serializeQueryArgs:C,context:a});return Z(t.util,{getRunningMutationThunk:ce,getRunningMutationsThunk:ue,getRunningQueryThunk:he,getRunningQueriesThunk:de}),{name:Y,injectEndpoint(e,n){var r,i;const o=t;null!==(i=(r=o.endpoints)[e])&&void 0!==i||(r[e]={}),g(n)?Z(o.endpoints[e],{name:e,select:re(e,n),initiate:se(e,n)},$(M,e)):"mutation"===n.type&&Z(o.endpoints[e],{name:e,select:ie(),initiate:le(e)},$(L,e))}}}}};K()},1399:(e,t,n)=>{"use strict";n.d(t,{s4:()=>v,xC:()=>_,PH:()=>h,hg:()=>U,oM:()=>Z,rJ:()=>oe,A6:()=>k,Q:()=>N,Gx:()=>M,KD:()=>R,zR:()=>P,Iv:()=>D,h_:()=>A,x0:()=>T,cw:()=>y});var r=n(64572),i=n(89900),o=n(36313),a=n(38907);function s(e){return t=>{let{dispatch:n,getState:r}=t;return t=>i=>"function"===typeof i?i(n,r,e):t(i)}}var l=s(),c=s,u=(function(){const e=(0,o.wN)(...arguments),t=Object.assign((function(){const t=e(...arguments),n=function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return t((0,i.mv)(e)?(0,i.Vk)(e):e,...r)};return Object.assign(n,t),n}),{withTypes:()=>t})}(o.kO),"undefined"!==typeof window&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(0!==arguments.length)return"object"===typeof arguments[0]?a.qC:a.qC.apply(null,arguments)}),d=("undefined"!==typeof window&&window.__REDUX_DEVTOOLS_EXTENSION__&&window.__REDUX_DEVTOOLS_EXTENSION__,e=>e&&"function"===typeof e.match);function h(e,t){function n(){if(t){let n=t(...arguments);if(!n)throw new Error(oe(0));return{type:e,payload:n.payload,..."meta"in n&&{meta:n.meta},..."error"in n&&{error:n.error}}}return{type:e,payload:arguments.length<=0?void 0:arguments[0]}}return n.toString=()=>"".concat(e),n.type=e,n.match=t=>(0,a.LG)(t)&&t.type===e,n}var p=class e extends Array{constructor(){super(...arguments),Object.setPrototypeOf(this,e.prototype)}static get[Symbol.species](){return e}concat(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return super.concat.apply(this,t)}prepend(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return 1===n.length&&Array.isArray(n[0])?new e(...n[0].concat(this)):new e(...n.concat(this))}};function f(e){return(0,i.o$)(e)?(0,i.Uy)(e,(()=>{})):e}function m(e,t,n){if(e.has(t)){let r=e.get(t);return n.update&&(r=n.update(r,t,e),e.set(t,r)),r}if(!n.insert)throw new Error(oe(10));const r=n.insert(t,e);return e.set(t,r),r}var g=()=>function(e){const{thunk:t=!0,immutableCheck:n=!0,serializableCheck:r=!0,actionCreatorCheck:i=!0}=null!==e&&void 0!==e?e:{};let o=new p;return t&&("boolean"===typeof t?o.push(l):o.push(c(t.extraArgument))),o},v="RTK_autoBatch",y=()=>e=>({payload:e,meta:{[v]:!0}}),b=e=>t=>{setTimeout(t,e)},x="undefined"!==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame:b(10),w=e=>function(t){const{autoBatch:n=!0}=null!==t&&void 0!==t?t:{};let r=new p(e);return n&&r.push(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{type:"raf"};return t=>function(){const n=t(...arguments);let r=!0,i=!1,o=!1;const a=new Set,s="tick"===e.type?queueMicrotask:"raf"===e.type?x:"callback"===e.type?e.queueNotification:b(e.timeout),l=()=>{o=!1,i&&(i=!1,a.forEach((e=>e())))};return Object.assign({},n,{subscribe(e){const t=n.subscribe((()=>r&&e()));return a.add(e),()=>{t(),a.delete(e)}},dispatch(e){try{var t;return r=!(null!==e&&void 0!==e&&null!==(t=e.meta)&&void 0!==t&&t[v]),i=!r,i&&(o||(o=!0,s(l))),n.dispatch(e)}finally{r=!0}}})}}("object"===typeof n?n:void 0)),r},S=!0;function _(e){const t=g(),{reducer:n,middleware:r,devTools:i=!0,preloadedState:o,enhancers:s}=e||{};let l,c;if("function"===typeof n)l=n;else{if(!(0,a.PO)(n))throw new Error(oe(1));l=(0,a.UY)(n)}if(!S&&r&&"function"!==typeof r)throw new Error(oe(2));if("function"===typeof r){if(c=r(t),!S&&!Array.isArray(c))throw new Error(oe(3))}else c=t();if(!S&&c.some((e=>"function"!==typeof e)))throw new Error(oe(4));let d=a.qC;i&&(d=u({trace:!S,..."object"===typeof i&&i}));const h=(0,a.md)(...c),p=w(h);if(!S&&s&&"function"!==typeof s)throw new Error(oe(5));let f="function"===typeof s?s(p):p();if(!S&&!Array.isArray(f))throw new Error(oe(6));if(!S&&f.some((e=>"function"!==typeof e)))throw new Error(oe(7));S||!c.length||f.includes(h)||console.error("middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`");const m=d(...f);return(0,a.MT)(l,o,m)}function C(e){const t={},n=[];let r;const i={addCase(e,n){const r="string"===typeof e?e:e.type;if(!r)throw new Error(oe(28));if(r in t)throw new Error(oe(29));return t[r]=n,i},addMatcher:(e,t)=>(n.push({matcher:e,reducer:t}),i),addDefaultCase:e=>(r=e,i)};return e(i),[t,n,r]}var E="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",T=function(){let e="",t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:21;for(;t--;)e+=E[64*Math.random()|0];return e},O=(e,t)=>d(e)?e.match(t):e(t);function N(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return e=>t.some((t=>O(t,e)))}function k(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return e=>t.every((t=>O(t,e)))}function j(e,t){if(!e||!e.meta)return!1;const n="string"===typeof e.meta.requestId,r=t.indexOf(e.meta.requestStatus)>-1;return n&&r}function I(e){return"function"===typeof e[0]&&"pending"in e[0]&&"fulfilled"in e[0]&&"rejected"in e[0]}function P(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?e=>j(e,["pending"]):I(t)?e=>N(...t.map((e=>e.pending)))(e):P()(t[0])}function D(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?e=>j(e,["rejected"]):I(t)?e=>N(...t.map((e=>e.rejected)))(e):D()(t[0])}function A(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];const r=e=>e&&e.meta&&e.meta.rejectedWithValue;return 0===t.length||I(t)?e=>k(D(...t),r)(e):A()(t[0])}function R(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?e=>j(e,["fulfilled"]):I(t)?e=>N(...t.map((e=>e.fulfilled)))(e):R()(t[0])}function M(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?e=>j(e,["pending","fulfilled","rejected"]):I(t)?e=>{const n=[];for(const r of t)n.push(r.pending,r.rejected,r.fulfilled);return N(...n)(e)}:M()(t[0])}var L=["name","message","stack","code"],F=class{constructor(e,t){(0,r.Z)(this,"_type",void 0),this.payload=e,this.meta=t}},z=class{constructor(e,t){(0,r.Z)(this,"_type",void 0),this.payload=e,this.meta=t}},B=e=>{if("object"===typeof e&&null!==e){const t={};for(const n of L)"string"===typeof e[n]&&(t[n]=e[n]);return t}return{message:String(e)}},U=(()=>{function e(e,t,n){const r=h(e+"/fulfilled",((e,t,n,r)=>({payload:e,meta:{...r||{},arg:n,requestId:t,requestStatus:"fulfilled"}}))),i=h(e+"/pending",((e,t,n)=>({payload:void 0,meta:{...n||{},arg:t,requestId:e,requestStatus:"pending"}}))),o=h(e+"/rejected",((e,t,r,i,o)=>({payload:i,error:(n&&n.serializeError||B)(e||"Rejected"),meta:{...o||{},arg:r,requestId:t,rejectedWithValue:!!i,requestStatus:"rejected",aborted:"AbortError"===(null===e||void 0===e?void 0:e.name),condition:"ConditionError"===(null===e||void 0===e?void 0:e.name)}})));return Object.assign((function(e){return(a,s,l)=>{const c=null!==n&&void 0!==n&&n.idGenerator?n.idGenerator(e):T(),u=new AbortController;let d,h;function p(e){h=e,u.abort()}const f=async function(){let f;try{var m,g;let o=null===n||void 0===n||null===(m=n.condition)||void 0===m?void 0:m.call(n,e,{getState:s,extra:l});if(null!==(v=o)&&"object"===typeof v&&"function"===typeof v.then&&(o=await o),!1===o||u.signal.aborted)throw{name:"ConditionError",message:"Aborted due to condition callback returning false."};const y=new Promise(((e,t)=>{d=()=>{t({name:"AbortError",message:h||"Aborted"})},u.signal.addEventListener("abort",d)}));a(i(c,e,null===n||void 0===n||null===(g=n.getPendingMeta)||void 0===g?void 0:g.call(n,{requestId:c,arg:e},{getState:s,extra:l}))),f=await Promise.race([y,Promise.resolve(t(e,{dispatch:a,getState:s,extra:l,requestId:c,signal:u.signal,abort:p,rejectWithValue:(e,t)=>new F(e,t),fulfillWithValue:(e,t)=>new z(e,t)})).then((t=>{if(t instanceof F)throw t;return t instanceof z?r(t.payload,c,e,t.meta):r(t,c,e)}))])}catch(y){f=y instanceof F?o(null,c,e,y.payload,y.meta):o(y,c,e)}finally{d&&u.signal.removeEventListener("abort",d)}var v;return n&&!n.dispatchConditionRejection&&o.match(f)&&f.meta.condition||a(f),f}();return Object.assign(f,{abort:p,requestId:c,arg:e,unwrap:()=>f.then(H)})}}),{pending:i,rejected:o,fulfilled:r,settled:N(o,r),typePrefix:e})}return e.withTypes=()=>e,e})();function H(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}var V=Symbol.for("rtk-slice-createasyncthunk");function G(e,t){return"".concat(e,"/").concat(t)}function W(){var e;let{creators:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const n=null===t||void 0===t||null===(e=t.asyncThunk)||void 0===e?void 0:e[V];return function(e){const{name:t,reducerPath:r=t}=e;if(!t)throw new Error(oe(11));const o=("function"===typeof e.reducers?e.reducers(function(){function e(e,t){return{_reducerDefinitionType:"asyncThunk",payloadCreator:e,...t}}return e.withTypes=()=>e,{reducer:e=>Object.assign({[e.name](){return e(...arguments)}}[e.name],{_reducerDefinitionType:"reducer"}),preparedReducer:(e,t)=>({_reducerDefinitionType:"reducerWithPrepare",prepare:e,reducer:t}),asyncThunk:e}}()):e.reducers)||{},a=Object.keys(o),s={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},l={addCase(e,t){const n="string"===typeof e?e:e.type;if(!n)throw new Error(oe(12));if(n in s.sliceCaseReducersByType)throw new Error(oe(13));return s.sliceCaseReducersByType[n]=t,l},addMatcher:(e,t)=>(s.sliceMatchers.push({matcher:e,reducer:t}),l),exposeAction:(e,t)=>(s.actionCreators[e]=t,l),exposeCaseReducer:(e,t)=>(s.sliceCaseReducersByName[e]=t,l)};function c(){const[t={},n=[],r]="function"===typeof e.extraReducers?C(e.extraReducers):[e.extraReducers],o={...t,...s.sliceCaseReducersByType};return function(e,t){let n,[r,o,a]=C(t);if("function"===typeof e)n=()=>f(e());else{const t=f(e);n=()=>t}function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n(),t=arguments.length>1?arguments[1]:void 0,s=[r[t.type],...o.filter((e=>{let{matcher:n}=e;return n(t)})).map((e=>{let{reducer:t}=e;return t}))];return 0===s.filter((e=>!!e)).length&&(s=[a]),s.reduce(((e,n)=>{if(n){if((0,i.mv)(e)){const r=n(e,t);return void 0===r?e:r}if((0,i.o$)(e))return(0,i.Uy)(e,(e=>n(e,t)));{const r=n(e,t);if(void 0===r){if(null===e)return e;throw new Error(oe(9))}return r}}return e}),e)}return s.getInitialState=n,s}(e.initialState,(e=>{for(let t in o)e.addCase(t,o[t]);for(let t of s.sliceMatchers)e.addMatcher(t.matcher,t.reducer);for(let t of n)e.addMatcher(t.matcher,t.reducer);r&&e.addDefaultCase(r)}))}a.forEach((r=>{const i=o[r],a={reducerName:r,type:G(t,r),createNotation:"function"===typeof e.reducers};!function(e){return"asyncThunk"===e._reducerDefinitionType}(i)?function(e,t,n){let r,i,{type:o,reducerName:a,createNotation:s}=e;if("reducer"in t){if(s&&!function(e){return"reducerWithPrepare"===e._reducerDefinitionType}(t))throw new Error(oe(17));r=t.reducer,i=t.prepare}else r=t;n.addCase(o,r).exposeCaseReducer(a,r).exposeAction(a,i?h(o,i):h(o))}(a,i,l):function(e,t,n,r){let{type:i,reducerName:o}=e;if(!r)throw new Error(oe(18));const{payloadCreator:a,fulfilled:s,pending:l,rejected:c,settled:u,options:d}=t,h=r(i,a,d);n.exposeAction(o,h),s&&n.addCase(h.fulfilled,s);l&&n.addCase(h.pending,l);c&&n.addCase(h.rejected,c);u&&n.addMatcher(h.settled,u);n.exposeCaseReducer(o,{fulfilled:s||Y,pending:l||Y,rejected:c||Y,settled:u||Y})}(a,i,l,n)}));const u=e=>e,d=new Map;let p;function g(e,t){return p||(p=c()),p(e,t)}function v(){return p||(p=c()),p.getInitialState()}function y(t){let n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];function r(e){let r=e[t];return"undefined"===typeof r&&n&&(r=v()),r}function i(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u;const r=m(d,n,{insert:()=>new WeakMap});return m(r,t,{insert:()=>{const r={};for(const[o,a]of Object.entries(null!==(i=e.selectors)&&void 0!==i?i:{})){var i;r[o]=q(a,t,v,n)}return r}})}return{reducerPath:t,getSelectors:i,get selectors(){return i(r)},selectSlice:r}}const b={name:t,reducer:g,actions:s.actionCreators,caseReducers:s.sliceCaseReducersByName,getInitialState:v,...y(r),injectInto(e){let{reducerPath:t,...n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=null!==t&&void 0!==t?t:r;return e.inject({reducerPath:i,reducer:g},n),{...b,...y(i,!0)}}};return b}}function q(e,t,n,r){function i(i){let o=t(i);"undefined"===typeof o&&r&&(o=n());for(var a=arguments.length,s=new Array(a>1?a-1:0),l=1;l<a;l++)s[l-1]=arguments[l];return e(o,...s)}return i.unwrapped=e,i}var Z=W();function Y(){}i.mv;var K="listener",Q="completed",X="cancelled",$=("task-".concat(X),"task-".concat(Q),"".concat(K,"-").concat(X),"".concat(K,"-").concat(Q),(e,t)=>{if("function"!==typeof e)throw new Error(oe(32))});var{assign:J}=Object,ee="listenerMiddleware",te=e=>{let{type:t,actionCreator:n,matcher:r,predicate:i,effect:o}=e;if(t)i=h(t).match;else if(n)t=n.type,i=n.match;else if(r)i=r;else if(!i)throw new Error(oe(21));return $(o,"options.listener"),{predicate:i,type:t,effect:o}},ne=Object.assign((e=>{const{type:t,predicate:n,effect:r}=te(e);return{id:T(),effect:r,type:t,predicate:n,pending:new Set,unsubscribe:()=>{throw new Error(oe(22))}}}),{withTypes:()=>ne}),re=Object.assign(h("".concat(ee,"/add")),{withTypes:()=>re}),ie=(h("".concat(ee,"/removeAll")),Object.assign(h("".concat(ee,"/remove")),{withTypes:()=>ie}));Symbol.for("rtk-state-proxy-original");function oe(e){return"Minified Redux Toolkit error #".concat(e,"; visit https://redux-toolkit.js.org/Errors?code=").concat(e," for the full message or use the non-minified dev environment for full errors. ")}},89900:(e,t,n)=>{"use strict";n.d(t,{Js:()=>h,QE:()=>$,Uy:()=>Q,Vk:()=>q,aS:()=>X,mv:()=>l,o$:()=>c,vI:()=>Y});var r=Symbol.for("immer-nothing"),i=Symbol.for("immer-draftable"),o=Symbol.for("immer-state");function a(e){throw new Error("[Immer] minified error nr: ".concat(e,". Full error at: https://bit.ly/3cXEKWf"))}var s=Object.getPrototypeOf;function l(e){return!!e&&!!e[o]}function c(e){var t;return!!e&&(d(e)||Array.isArray(e)||!!e[i]||!(null===(t=e.constructor)||void 0===t||!t[i])||y(e)||b(e))}var u=Object.prototype.constructor.toString();function d(e){if(!e||"object"!==typeof e)return!1;const t=s(e);if(null===t)return!0;const n=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return n===Object||"function"==typeof n&&Function.toString.call(n)===u}function h(e){return l(e)||a(15),e[o].base_}function p(e,t){0===f(e)?Object.entries(e).forEach((n=>{let[r,i]=n;t(r,i,e)})):e.forEach(((n,r)=>t(r,n,e)))}function f(e){const t=e[o];return t?t.type_:Array.isArray(e)?1:y(e)?2:b(e)?3:0}function m(e,t){return 2===f(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function g(e,t){return 2===f(e)?e.get(t):e[t]}function v(e,t,n){const r=f(e);2===r?e.set(t,n):3===r?e.add(n):e[t]=n}function y(e){return e instanceof Map}function b(e){return e instanceof Set}function x(e){return e.copy_||e.base_}function w(e,t){if(y(e))return new Map(e);if(b(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);if(!t&&d(e)){if(!s(e)){const t=Object.create(null);return Object.assign(t,e)}return{...e}}const n=Object.getOwnPropertyDescriptors(e);delete n[o];let r=Reflect.ownKeys(n);for(let i=0;i<r.length;i++){const t=r[i],o=n[t];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(n[t]={configurable:!0,writable:!0,enumerable:o.enumerable,value:e[t]})}return Object.create(s(e),n)}function S(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return C(e)||l(e)||!c(e)||(f(e)>1&&(e.set=e.add=e.clear=e.delete=_),Object.freeze(e),t&&p(e,((e,t)=>S(t,!0)))),e}function _(){a(2)}function C(e){return Object.isFrozen(e)}var E,T={};function O(e){const t=T[e];return t||a(0),t}function N(e,t){T[e]||(T[e]=t)}function k(){return E}function j(e,t){t&&(O("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function I(e){P(e),e.drafts_.forEach(A),e.drafts_=null}function P(e){e===E&&(E=e.parent_)}function D(e){return E={drafts_:[],parent_:E,immer_:e,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function A(e){const t=e[o];0===t.type_||1===t.type_?t.revoke_():t.revoked_=!0}function R(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];return void 0!==e&&e!==n?(n[o].modified_&&(I(t),a(4)),c(e)&&(e=M(t,e),t.parent_||F(t,e)),t.patches_&&O("Patches").generateReplacementPatches_(n[o].base_,e,t.patches_,t.inversePatches_)):e=M(t,n,[]),I(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==r?e:void 0}function M(e,t,n){if(C(t))return t;const r=t[o];if(!r)return p(t,((i,o)=>L(e,r,t,i,o,n))),t;if(r.scope_!==e)return t;if(!r.modified_)return F(e,r.base_,!0),r.base_;if(!r.finalized_){r.finalized_=!0,r.scope_.unfinalizedDrafts_--;const t=r.copy_;let i=t,o=!1;3===r.type_&&(i=new Set(t),t.clear(),o=!0),p(i,((i,a)=>L(e,r,t,i,a,n,o))),F(e,t,!1),n&&e.patches_&&O("Patches").generatePatches_(r,n,e.patches_,e.inversePatches_)}return r.copy_}function L(e,t,n,r,i,o,a){if(l(i)){const a=M(e,i,o&&t&&3!==t.type_&&!m(t.assigned_,r)?o.concat(r):void 0);if(v(n,r,a),!l(a))return;e.canAutoFreeze_=!1}else a&&n.add(i);if(c(i)&&!C(i)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;M(e,i),t&&t.scope_.parent_||F(e,i)}}function F(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&S(t,n)}var z={get(e,t){if(t===o)return e;const n=x(e);if(!m(n,t))return function(e,t,n){var r;const i=H(t,n);return i?"value"in i?i.value:null===(r=i.get)||void 0===r?void 0:r.call(e.draft_):void 0}(e,n,t);const r=n[t];return e.finalized_||!c(r)?r:r===U(e.base_,t)?(G(e),e.copy_[t]=W(r,e)):r},has:(e,t)=>t in x(e),ownKeys:e=>Reflect.ownKeys(x(e)),set(e,t,n){const r=H(x(e),t);if(null!==r&&void 0!==r&&r.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){const r=U(x(e),t),s=null===r||void 0===r?void 0:r[o];if(s&&s.base_===n)return e.copy_[t]=n,e.assigned_[t]=!1,!0;if(((i=n)===(a=r)?0!==i||1/i===1/a:i!==i&&a!==a)&&(void 0!==n||m(e.base_,t)))return!0;G(e),V(e)}var i,a;return e.copy_[t]===n&&(void 0!==n||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_[t]=!0),!0},deleteProperty:(e,t)=>(void 0!==U(e.base_,t)||t in e.base_?(e.assigned_[t]=!1,G(e),V(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0),getOwnPropertyDescriptor(e,t){const n=x(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r?{writable:!0,configurable:1!==e.type_||"length"!==t,enumerable:r.enumerable,value:n[t]}:r},defineProperty(){a(11)},getPrototypeOf:e=>s(e.base_),setPrototypeOf(){a(12)}},B={};function U(e,t){const n=e[o];return(n?x(n):e)[t]}function H(e,t){if(!(t in e))return;let n=s(e);for(;n;){const e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=s(n)}}function V(e){e.modified_||(e.modified_=!0,e.parent_&&V(e.parent_))}function G(e){e.copy_||(e.copy_=w(e.base_,e.scope_.immer_.useStrictShallowCopy_))}p(z,((e,t)=>{B[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),B.deleteProperty=function(e,t){return B.set.call(this,e,t,void 0)},B.set=function(e,t,n){return z.set.call(this,e[0],t,n,e[0])};function W(e,t){const n=y(e)?O("MapSet").proxyMap_(e,t):b(e)?O("MapSet").proxySet_(e,t):function(e,t){const n=Array.isArray(e),r={type_:n?1:0,scope_:t?t.scope_:k(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=r,o=z;n&&(i=[r],o=B);const{revoke:a,proxy:s}=Proxy.revocable(i,o);return r.draft_=s,r.revoke_=a,s}(e,t);return(t?t.scope_:k()).drafts_.push(n),n}function q(e){return l(e)||a(10),Z(e)}function Z(e){if(!c(e)||C(e))return e;const t=e[o];let n;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=w(e,t.scope_.immer_.useStrictShallowCopy_)}else n=w(e,!0);return p(n,((e,t)=>{v(n,e,Z(t))})),t&&(t.finalized_=!1),n}function Y(){const e=16;const t="replace",n="add",o="remove";function u(e){if(!c(e))return e;if(Array.isArray(e))return e.map(u);if(y(e))return new Map(Array.from(e.entries()).map((e=>{let[t,n]=e;return[t,u(n)]})));if(b(e))return new Set(Array.from(e).map(u));const t=Object.create(s(e));for(const n in e)t[n]=u(e[n]);return m(e,i)&&(t[i]=e[i]),t}function d(e){return l(e)?u(e):e}N("Patches",{applyPatches_:function(r,i){return i.forEach((i=>{const{path:s,op:l}=i;let c=r;for(let t=0;t<s.length-1;t++){const n=f(c);let r=s[t];"string"!==typeof r&&"number"!==typeof r&&(r=""+r),0!==n&&1!==n||"__proto__"!==r&&"constructor"!==r||a(e+3),"function"===typeof c&&"prototype"===r&&a(e+3),c=g(c,r),"object"!==typeof c&&a(e+2,s.join("/"))}const d=f(c),h=u(i.value),p=s[s.length-1];switch(l){case t:switch(d){case 2:return c.set(p,h);case 3:a(e);default:return c[p]=h}case n:switch(d){case 1:return"-"===p?c.push(h):c.splice(p,0,h);case 2:return c.set(p,h);case 3:return c.add(h);default:return c[p]=h}case o:switch(d){case 1:return c.splice(p,1);case 2:return c.delete(p);case 3:return c.delete(i.value);default:return delete c[p]}default:a(e+1)}})),r},generatePatches_:function(e,r,i,a){switch(e.type_){case 0:case 2:return function(e,r,i,a){const{base_:s,copy_:l}=e;p(e.assigned_,((e,c)=>{const u=g(s,e),h=g(l,e),p=c?m(s,e)?t:n:o;if(u===h&&p===t)return;const f=r.concat(e);i.push(p===o?{op:p,path:f}:{op:p,path:f,value:h}),a.push(p===n?{op:o,path:f}:p===o?{op:n,path:f,value:d(u)}:{op:t,path:f,value:d(u)})}))}(e,r,i,a);case 1:return function(e,r,i,a){let{base_:s,assigned_:l}=e,c=e.copy_;c.length<s.length&&([s,c]=[c,s],[i,a]=[a,i]);for(let n=0;n<s.length;n++)if(l[n]&&c[n]!==s[n]){const e=r.concat([n]);i.push({op:t,path:e,value:d(c[n])}),a.push({op:t,path:e,value:d(s[n])})}for(let t=s.length;t<c.length;t++){const e=r.concat([t]);i.push({op:n,path:e,value:d(c[t])})}for(let t=c.length-1;s.length<=t;--t){const e=r.concat([t]);a.push({op:o,path:e})}}(e,r,i,a);case 3:return function(e,t,r,i){let{base_:a,copy_:s}=e,l=0;a.forEach((e=>{if(!s.has(e)){const a=t.concat([l]);r.push({op:o,path:a,value:e}),i.unshift({op:n,path:a,value:e})}l++})),l=0,s.forEach((e=>{if(!a.has(e)){const a=t.concat([l]);r.push({op:n,path:a,value:e}),i.unshift({op:o,path:a,value:e})}l++}))}(e,r,i,a)}},generateReplacementPatches_:function(e,n,i,o){i.push({op:t,path:[],value:n===r?void 0:n}),o.push({op:t,path:[],value:e})}})}var K=new class{constructor(e){var t=this;this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(e,t,n)=>{if("function"===typeof e&&"function"!==typeof t){const n=t;t=e;const r=this;return function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n;for(var i=arguments.length,o=new Array(i>1?i-1:0),a=1;a<i;a++)o[a-1]=arguments[a];return r.produce(e,(e=>t.call(this,e,...o)))}}let i;if("function"!==typeof t&&a(6),void 0!==n&&"function"!==typeof n&&a(7),c(e)){const r=D(this),o=W(e,void 0);let a=!0;try{i=t(o),a=!1}finally{a?I(r):P(r)}return j(r,n),R(i,r)}if(!e||"object"!==typeof e){if(i=t(e),void 0===i&&(i=e),i===r&&(i=void 0),this.autoFreeze_&&S(i,!0),n){const t=[],r=[];O("Patches").generateReplacementPatches_(e,i,t,r),n(t,r)}return i}a(1)},this.produceWithPatches=(e,n)=>{if("function"===typeof e)return function(n){for(var r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];return t.produceWithPatches(n,(t=>e(t,...i)))};let r,i;return[this.produce(e,n,((e,t)=>{r=e,i=t})),r,i]},"boolean"===typeof(null===e||void 0===e?void 0:e.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),"boolean"===typeof(null===e||void 0===e?void 0:e.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy)}createDraft(e){c(e)||a(8),l(e)&&(e=q(e));const t=D(this),n=W(e,void 0);return n[o].isManual_=!0,P(t),n}finishDraft(e,t){const n=e&&e[o];n&&n.isManual_||a(9);const{scope_:r}=n;return j(r,t),R(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const r=t[n];if(0===r.path.length&&"replace"===r.op){e=r.value;break}}n>-1&&(t=t.slice(n+1));const r=O("Patches").applyPatches_;return l(e)?r(e,t):this.produce(e,(e=>r(e,t)))}},Q=K.produce,X=K.produceWithPatches.bind(K),$=(K.setAutoFreeze.bind(K),K.setUseStrictShallowCopy.bind(K),K.applyPatches.bind(K));K.createDraft.bind(K),K.finishDraft.bind(K)},52369:(e,t,n)=>{"use strict";n.d(t,{IZ:()=>h,uu:()=>m});var r=n(27208);const{Axios:i,AxiosError:o,CanceledError:a,isCancel:s,CancelToken:l,VERSION:c,all:u,Cancel:d,isAxiosError:h,spread:p,toFormData:f,AxiosHeaders:m,HttpStatusCode:g,formToJSON:v,getAdapter:y,mergeConfig:b}=r.Z},27208:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Ke});var r={};function i(e,t){return function(){return e.apply(t,arguments)}}n.r(r),n.d(r,{hasBrowserEnv:()=>ie,hasStandardBrowserEnv:()=>oe,hasStandardBrowserWebWorkerEnv:()=>se});const{toString:o}=Object.prototype,{getPrototypeOf:a}=Object,s=(l=Object.create(null),e=>{const t=o.call(e);return l[t]||(l[t]=t.slice(8,-1).toLowerCase())});var l;const c=e=>(e=e.toLowerCase(),t=>s(t)===e),u=e=>t=>typeof t===e,{isArray:d}=Array,h=u("undefined");const p=c("ArrayBuffer");const f=u("string"),m=u("function"),g=u("number"),v=e=>null!==e&&"object"===typeof e,y=e=>{if("object"!==s(e))return!1;const t=a(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},b=c("Date"),x=c("File"),w=c("Blob"),S=c("FileList"),_=c("URLSearchParams");function C(e,t){let n,r,{allOwnKeys:i=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),d(e))for(n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else{const r=i?Object.getOwnPropertyNames(e):Object.keys(e),o=r.length;let a;for(n=0;n<o;n++)a=r[n],t.call(null,e[a],a,e)}}function E(e,t){t=t.toLowerCase();const n=Object.keys(e);let r,i=n.length;for(;i-- >0;)if(r=n[i],t===r.toLowerCase())return r;return null}const T="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self?self:"undefined"!==typeof window?window:global,O=e=>!h(e)&&e!==T;const N=(k="undefined"!==typeof Uint8Array&&a(Uint8Array),e=>k&&e instanceof k);var k;const j=c("HTMLFormElement"),I=(e=>{let{hasOwnProperty:t}=e;return(e,n)=>t.call(e,n)})(Object.prototype),P=c("RegExp"),D=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};C(n,((n,i)=>{let o;!1!==(o=t(n,i,e))&&(r[i]=o||n)})),Object.defineProperties(e,r)},A="abcdefghijklmnopqrstuvwxyz",R="0123456789",M={DIGIT:R,ALPHA:A,ALPHA_DIGIT:A+A.toUpperCase()+R};const L=c("AsyncFunction"),F={isArray:d,isArrayBuffer:p,isBuffer:function(e){return null!==e&&!h(e)&&null!==e.constructor&&!h(e.constructor)&&m(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"===typeof FormData&&e instanceof FormData||m(e.append)&&("formdata"===(t=s(e))||"object"===t&&m(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&p(e.buffer),t},isString:f,isNumber:g,isBoolean:e=>!0===e||!1===e,isObject:v,isPlainObject:y,isUndefined:h,isDate:b,isFile:x,isBlob:w,isRegExp:P,isFunction:m,isStream:e=>v(e)&&m(e.pipe),isURLSearchParams:_,isTypedArray:N,isFileList:S,forEach:C,merge:function e(){const{caseless:t}=O(this)&&this||{},n={},r=(r,i)=>{const o=t&&E(n,i)||i;y(n[o])&&y(r)?n[o]=e(n[o],r):y(r)?n[o]=e({},r):d(r)?n[o]=r.slice():n[o]=r};for(let i=0,o=arguments.length;i<o;i++)arguments[i]&&C(arguments[i],r);return n},extend:function(e,t,n){let{allOwnKeys:r}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return C(t,((t,r)=>{n&&m(t)?e[r]=i(t,n):e[r]=t}),{allOwnKeys:r}),e},trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let i,o,s;const l={};if(t=t||{},null==e)return t;do{for(i=Object.getOwnPropertyNames(e),o=i.length;o-- >0;)s=i[o],r&&!r(s,e,t)||l[s]||(t[s]=e[s],l[s]=!0);e=!1!==n&&a(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:s,kindOfTest:c,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(d(e))return e;let t=e.length;if(!g(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:j,hasOwnProperty:I,hasOwnProp:I,reduceDescriptors:D,freezeMethods:e=>{D(e,((t,n)=>{if(m(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];m(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return d(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:E,global:T,isContextDefined:O,ALPHABET:M,generateString:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:M.ALPHA_DIGIT,n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&m(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(v(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const i=d(e)?[]:{};return C(e,((e,t)=>{const o=n(e,r+1);!h(o)&&(i[t]=o)})),t[r]=void 0,i}}return e};return n(e,0)},isAsyncFn:L,isThenable:e=>e&&(v(e)||m(e))&&m(e.then)&&m(e.catch)};function z(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i)}F.inherits(z,Error,{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:F.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const B=z.prototype,U={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{U[e]={value:e}})),Object.defineProperties(z,U),Object.defineProperty(B,"isAxiosError",{value:!0}),z.from=(e,t,n,r,i,o)=>{const a=Object.create(B);return F.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),z.call(a,e.message,t,n,r,i),a.cause=e,a.name=e.name,o&&Object.assign(a,o),a};const H=z,V=null;function G(e){return F.isPlainObject(e)||F.isArray(e)}function W(e){return F.endsWith(e,"[]")?e.slice(0,-2):e}function q(e,t,n){return e?e.concat(t).map((function(e,t){return e=W(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const Z=F.toFlatObject(F,{},null,(function(e){return/^is[A-Z]/.test(e)}));const Y=function(e,t,n){if(!F.isObject(e))throw new TypeError("target must be an object");t=t||new(V||FormData);const r=(n=F.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!F.isUndefined(t[e])}))).metaTokens,i=n.visitor||c,o=n.dots,a=n.indexes,s=(n.Blob||"undefined"!==typeof Blob&&Blob)&&F.isSpecCompliantForm(t);if(!F.isFunction(i))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(F.isDate(e))return e.toISOString();if(!s&&F.isBlob(e))throw new H("Blob is not supported. Use a Buffer instead.");return F.isArrayBuffer(e)||F.isTypedArray(e)?s&&"function"===typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,i){let s=e;if(e&&!i&&"object"===typeof e)if(F.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(F.isArray(e)&&function(e){return F.isArray(e)&&!e.some(G)}(e)||(F.isFileList(e)||F.endsWith(n,"[]"))&&(s=F.toArray(e)))return n=W(n),s.forEach((function(e,r){!F.isUndefined(e)&&null!==e&&t.append(!0===a?q([n],r,o):null===a?n:n+"[]",l(e))})),!1;return!!G(e)||(t.append(q(i,n,o),l(e)),!1)}const u=[],d=Object.assign(Z,{defaultVisitor:c,convertValue:l,isVisitable:G});if(!F.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!F.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+r.join("."));u.push(n),F.forEach(n,(function(n,o){!0===(!(F.isUndefined(n)||null===n)&&i.call(t,n,F.isString(o)?o.trim():o,r,d))&&e(n,r?r.concat(o):[o])})),u.pop()}}(e),t};function K(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Q(e,t){this._pairs=[],e&&Y(e,this,t)}const X=Q.prototype;X.append=function(e,t){this._pairs.push([e,t])},X.toString=function(e){const t=e?function(t){return e.call(this,t,K)}:K;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};const $=Q;function J(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ee(e,t,n){if(!t)return e;const r=n&&n.encode||J,i=n&&n.serialize;let o;if(o=i?i(t,n):F.isURLSearchParams(t)?t.toString():new $(t,n).toString(r),o){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}const te=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){F.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},ne={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},re={isBrowser:!0,classes:{URLSearchParams:"undefined"!==typeof URLSearchParams?URLSearchParams:$,FormData:"undefined"!==typeof FormData?FormData:null,Blob:"undefined"!==typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},ie="undefined"!==typeof window&&"undefined"!==typeof document,oe=(ae="undefined"!==typeof navigator&&navigator.product,ie&&["ReactNative","NativeScript","NS"].indexOf(ae)<0);var ae;const se="undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"===typeof self.importScripts,le={...r,...re};const ce=function(e){function t(e,n,r,i){let o=e[i++];if("__proto__"===o)return!0;const a=Number.isFinite(+o),s=i>=e.length;if(o=!o&&F.isArray(r)?r.length:o,s)return F.hasOwnProp(r,o)?r[o]=[r[o],n]:r[o]=n,!a;r[o]&&F.isObject(r[o])||(r[o]=[]);return t(e,n,r[o],i)&&F.isArray(r[o])&&(r[o]=function(e){const t={},n=Object.keys(e);let r;const i=n.length;let o;for(r=0;r<i;r++)o=n[r],t[o]=e[o];return t}(r[o])),!a}if(F.isFormData(e)&&F.isFunction(e.entries)){const n={};return F.forEachEntry(e,((e,r)=>{t(function(e){return F.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null};const ue={transitional:ne,adapter:["xhr","http"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,i=F.isObject(e);i&&F.isHTMLForm(e)&&(e=new FormData(e));if(F.isFormData(e))return r?JSON.stringify(ce(e)):e;if(F.isArrayBuffer(e)||F.isBuffer(e)||F.isStream(e)||F.isFile(e)||F.isBlob(e))return e;if(F.isArrayBufferView(e))return e.buffer;if(F.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let o;if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return Y(e,new le.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return le.isNode&&F.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((o=F.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return Y(o?{"files[]":e}:e,t&&new t,this.formSerializer)}}return i||r?(t.setContentType("application/json",!1),function(e,t,n){if(F.isString(e))try{return(t||JSON.parse)(e),F.trim(e)}catch(r){if("SyntaxError"!==r.name)throw r}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||ue.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&F.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(i){if(n){if("SyntaxError"===i.name)throw H.from(i,H.ERR_BAD_RESPONSE,this,null,this.response);throw i}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:le.classes.FormData,Blob:le.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};F.forEach(["delete","get","head","post","put","patch"],(e=>{ue.headers[e]={}}));const de=ue,he=F.toObjectSet(["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"]),pe=Symbol("internals");function fe(e){return e&&String(e).trim().toLowerCase()}function me(e){return!1===e||null==e?e:F.isArray(e)?e.map(me):String(e)}function ge(e,t,n,r,i){return F.isFunction(r)?r.call(this,t,n):(i&&(t=n),F.isString(t)?F.isString(r)?-1!==t.indexOf(r):F.isRegExp(r)?r.test(t):void 0:void 0)}class ve{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function i(e,t,n){const i=fe(t);if(!i)throw new Error("header name must be a non-empty string");const o=F.findKey(r,i);(!o||void 0===r[o]||!0===n||void 0===n&&!1!==r[o])&&(r[o||t]=me(e))}const o=(e,t)=>F.forEach(e,((e,n)=>i(e,n,t)));return F.isPlainObject(e)||e instanceof this.constructor?o(e,t):F.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?o((e=>{const t={};let n,r,i;return e&&e.split("\n").forEach((function(e){i=e.indexOf(":"),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!n||t[n]&&he[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t):null!=e&&i(t,e,n),this}get(e,t){if(e=fe(e)){const n=F.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(F.isFunction(t))return t.call(this,e,n);if(F.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=fe(e)){const n=F.findKey(this,e);return!(!n||void 0===this[n]||t&&!ge(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function i(e){if(e=fe(e)){const i=F.findKey(n,e);!i||t&&!ge(0,n[i],i,t)||(delete n[i],r=!0)}}return F.isArray(e)?e.forEach(i):i(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const i=t[n];e&&!ge(0,this[i],i,e,!0)||(delete this[i],r=!0)}return r}normalize(e){const t=this,n={};return F.forEach(this,((r,i)=>{const o=F.findKey(n,i);if(o)return t[o]=me(r),void delete t[i];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(i):String(i).trim();a!==i&&delete t[i],t[a]=me(r),n[a]=!0})),this}concat(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.constructor.concat(this,...t)}toJSON(e){const t=Object.create(null);return F.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&F.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((e=>{let[t,n]=e;return t+": "+n})).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e){const t=new this(e);for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return r.forEach((e=>t.set(e))),t}static accessor(e){const t=(this[pe]=this[pe]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=fe(e);t[r]||(!function(e,t){const n=F.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})}))}(n,e),t[r]=!0)}return F.isArray(e)?e.forEach(r):r(e),this}}ve.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),F.reduceDescriptors(ve.prototype,((e,t)=>{let{value:n}=e,r=t[0].toUpperCase()+t.slice(1);return{get:()=>n,set(e){this[r]=e}}})),F.freezeMethods(ve);const ye=ve;function be(e,t){const n=this||de,r=t||n,i=ye.from(r.headers);let o=r.data;return F.forEach(e,(function(e){o=e.call(n,o,i.normalize(),t?t.status:void 0)})),i.normalize(),o}function xe(e){return!(!e||!e.__CANCEL__)}function we(e,t,n){H.call(this,null==e?"canceled":e,H.ERR_CANCELED,t,n),this.name="CanceledError"}F.inherits(we,H,{__CANCEL__:!0});const Se=we;const _e=le.hasStandardBrowserEnv?{write(e,t,n,r,i,o){const a=[e+"="+encodeURIComponent(t)];F.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),F.isString(r)&&a.push("path="+r),F.isString(i)&&a.push("domain="+i),!0===o&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Ce(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const Ee=le.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=F.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0};const Te=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i,o=0,a=0;return t=void 0!==t?t:1e3,function(s){const l=Date.now(),c=r[a];i||(i=l),n[o]=s,r[o]=l;let u=a,d=0;for(;u!==o;)d+=n[u++],u%=e;if(o=(o+1)%e,o===a&&(a=(a+1)%e),l-i<t)return;const h=c&&l-c;return h?Math.round(1e3*d/h):void 0}};function Oe(e,t){let n=0;const r=Te(50,250);return i=>{const o=i.loaded,a=i.lengthComputable?i.total:void 0,s=o-n,l=r(s);n=o;const c={loaded:o,total:a,progress:a?o/a:void 0,bytes:s,rate:l||void 0,estimated:l&&a&&o<=a?(a-o)/l:void 0,event:i};c[t?"download":"upload"]=!0,e(c)}}const Ne="undefined"!==typeof XMLHttpRequest,ke={http:V,xhr:Ne&&function(e){return new Promise((function(t,n){let r=e.data;const i=ye.from(e.headers).normalize();let o,a,{responseType:s,withXSRFToken:l}=e;function c(){e.cancelToken&&e.cancelToken.unsubscribe(o),e.signal&&e.signal.removeEventListener("abort",o)}if(F.isFormData(r))if(le.hasStandardBrowserEnv||le.hasStandardBrowserWebWorkerEnv)i.setContentType(!1);else if(!1!==(a=i.getContentType())){const[e,...t]=a?a.split(";").map((e=>e.trim())).filter(Boolean):[];i.setContentType([e||"multipart/form-data",...t].join("; "))}let u=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",n=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.set("Authorization","Basic "+btoa(t+":"+n))}const d=Ce(e.baseURL,e.url);function h(){if(!u)return;const r=ye.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders());!function(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new H("Request failed with status code "+n.status,[H.ERR_BAD_REQUEST,H.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}((function(e){t(e),c()}),(function(e){n(e),c()}),{data:s&&"text"!==s&&"json"!==s?u.response:u.responseText,status:u.status,statusText:u.statusText,headers:r,config:e,request:u}),u=null}if(u.open(e.method.toUpperCase(),ee(d,e.params,e.paramsSerializer),!0),u.timeout=e.timeout,"onloadend"in u?u.onloadend=h:u.onreadystatechange=function(){u&&4===u.readyState&&(0!==u.status||u.responseURL&&0===u.responseURL.indexOf("file:"))&&setTimeout(h)},u.onabort=function(){u&&(n(new H("Request aborted",H.ECONNABORTED,e,u)),u=null)},u.onerror=function(){n(new H("Network Error",H.ERR_NETWORK,e,u)),u=null},u.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||ne;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new H(t,r.clarifyTimeoutError?H.ETIMEDOUT:H.ECONNABORTED,e,u)),u=null},le.hasStandardBrowserEnv&&(l&&F.isFunction(l)&&(l=l(e)),l||!1!==l&&Ee(d))){const t=e.xsrfHeaderName&&e.xsrfCookieName&&_e.read(e.xsrfCookieName);t&&i.set(e.xsrfHeaderName,t)}void 0===r&&i.setContentType(null),"setRequestHeader"in u&&F.forEach(i.toJSON(),(function(e,t){u.setRequestHeader(t,e)})),F.isUndefined(e.withCredentials)||(u.withCredentials=!!e.withCredentials),s&&"json"!==s&&(u.responseType=e.responseType),"function"===typeof e.onDownloadProgress&&u.addEventListener("progress",Oe(e.onDownloadProgress,!0)),"function"===typeof e.onUploadProgress&&u.upload&&u.upload.addEventListener("progress",Oe(e.onUploadProgress)),(e.cancelToken||e.signal)&&(o=t=>{u&&(n(!t||t.type?new Se(null,e,u):t),u.abort(),u=null)},e.cancelToken&&e.cancelToken.subscribe(o),e.signal&&(e.signal.aborted?o():e.signal.addEventListener("abort",o)));const p=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(d);p&&-1===le.protocols.indexOf(p)?n(new H("Unsupported protocol "+p+":",H.ERR_BAD_REQUEST,e)):u.send(r||null)}))}};F.forEach(ke,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(n){}Object.defineProperty(e,"adapterName",{value:t})}}));const je=e=>"- ".concat(e),Ie=e=>F.isFunction(e)||null===e||!1===e,Pe={getAdapter:e=>{e=F.isArray(e)?e:[e];const{length:t}=e;let n,r;const i={};for(let o=0;o<t;o++){let t;if(n=e[o],r=n,!Ie(n)&&(r=ke[(t=String(n)).toLowerCase()],void 0===r))throw new H("Unknown adapter '".concat(t,"'"));if(r)break;i[t||"#"+o]=r}if(!r){const e=Object.entries(i).map((e=>{let[t,n]=e;return"adapter ".concat(t," ")+(!1===n?"is not supported by the environment":"is not available in the build")}));let n=t?e.length>1?"since :\n"+e.map(je).join("\n"):" "+je(e[0]):"as no adapter specified";throw new H("There is no suitable adapter to dispatch the request "+n,"ERR_NOT_SUPPORT")}return r},adapters:ke};function De(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Se(null,e)}function Ae(e){De(e),e.headers=ye.from(e.headers),e.data=be.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return Pe.getAdapter(e.adapter||de.adapter)(e).then((function(t){return De(e),t.data=be.call(e,e.transformResponse,t),t.headers=ye.from(t.headers),t}),(function(t){return xe(t)||(De(e),t&&t.response&&(t.response.data=be.call(e,e.transformResponse,t.response),t.response.headers=ye.from(t.response.headers))),Promise.reject(t)}))}const Re=e=>e instanceof ye?{...e}:e;function Me(e,t){t=t||{};const n={};function r(e,t,n){return F.isPlainObject(e)&&F.isPlainObject(t)?F.merge.call({caseless:n},e,t):F.isPlainObject(t)?F.merge({},t):F.isArray(t)?t.slice():t}function i(e,t,n){return F.isUndefined(t)?F.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function o(e,t){if(!F.isUndefined(t))return r(void 0,t)}function a(e,t){return F.isUndefined(t)?F.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,i,o){return o in t?r(n,i):o in e?r(void 0,n):void 0}const l={url:o,method:o,data:o,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t)=>i(Re(e),Re(t),!0)};return F.forEach(Object.keys(Object.assign({},e,t)),(function(r){const o=l[r]||i,a=o(e[r],t[r],r);F.isUndefined(a)&&o!==s||(n[r]=a)})),n}const Le="1.6.8",Fe={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Fe[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const ze={};Fe.transitional=function(e,t,n){function r(e,t){return"[Axios v"+Le+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,i,o)=>{if(!1===e)throw new H(r(i," has been removed"+(t?" in "+t:"")),H.ERR_DEPRECATED);return t&&!ze[i]&&(ze[i]=!0,console.warn(r(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,i,o)}};const Be={assertOptions:function(e,t,n){if("object"!==typeof e)throw new H("options must be an object",H.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const o=r[i],a=t[o];if(a){const t=e[o],n=void 0===t||a(t,o,e);if(!0!==n)throw new H("option "+o+" must be "+n,H.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new H("Unknown option "+o,H.ERR_BAD_OPTION)}},validators:Fe},Ue=Be.validators;class He{constructor(e){this.defaults=e,this.interceptors={request:new te,response:new te}}async request(e,t){try{return await this._request(e,t)}catch(n){if(n instanceof Error){let e;Error.captureStackTrace?Error.captureStackTrace(e={}):e=new Error;const t=e.stack?e.stack.replace(/^.+\n/,""):"";n.stack?t&&!String(n.stack).endsWith(t.replace(/^.+\n.+\n/,""))&&(n.stack+="\n"+t):n.stack=t}throw n}}_request(e,t){"string"===typeof e?(t=t||{}).url=e:t=e||{},t=Me(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:i}=t;void 0!==n&&Be.assertOptions(n,{silentJSONParsing:Ue.transitional(Ue.boolean),forcedJSONParsing:Ue.transitional(Ue.boolean),clarifyTimeoutError:Ue.transitional(Ue.boolean)},!1),null!=r&&(F.isFunction(r)?t.paramsSerializer={serialize:r}:Be.assertOptions(r,{encode:Ue.function,serialize:Ue.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let o=i&&F.merge(i.common,i[t.method]);i&&F.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete i[e]})),t.headers=ye.concat(o,i);const a=[];let s=!0;this.interceptors.request.forEach((function(e){"function"===typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const l=[];let c;this.interceptors.response.forEach((function(e){l.push(e.fulfilled,e.rejected)}));let u,d=0;if(!s){const e=[Ae.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,l),u=e.length,c=Promise.resolve(t);d<u;)c=c.then(e[d++],e[d++]);return c}u=a.length;let h=t;for(d=0;d<u;){const e=a[d++],t=a[d++];try{h=e(h)}catch(p){t.call(this,p);break}}try{c=Ae.call(this,h)}catch(p){return Promise.reject(p)}for(d=0,u=l.length;d<u;)c=c.then(l[d++],l[d++]);return c}getUri(e){return ee(Ce((e=Me(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}F.forEach(["delete","get","head","options"],(function(e){He.prototype[e]=function(t,n){return this.request(Me(n||{},{method:e,url:t,data:(n||{}).data}))}})),F.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,i){return this.request(Me(i||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}He.prototype[e]=t(),He.prototype[e+"Form"]=t(!0)}));const Ve=He;class Ge{constructor(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const n=this;this.promise.then((e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,i){n.reason||(n.reason=new Se(e,r,i),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new Ge((function(t){e=t})),cancel:e}}}const We=Ge;const qe={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(qe).forEach((e=>{let[t,n]=e;qe[n]=t}));const Ze=qe;const Ye=function e(t){const n=new Ve(t),r=i(Ve.prototype.request,n);return F.extend(r,Ve.prototype,n,{allOwnKeys:!0}),F.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(Me(t,n))},r}(de);Ye.Axios=Ve,Ye.CanceledError=Se,Ye.CancelToken=We,Ye.isCancel=xe,Ye.VERSION=Le,Ye.toFormData=Y,Ye.AxiosError=H,Ye.Cancel=Ye.CanceledError,Ye.all=function(e){return Promise.all(e)},Ye.spread=function(e){return function(t){return e.apply(null,t)}},Ye.isAxiosError=function(e){return F.isObject(e)&&!0===e.isAxiosError},Ye.mergeConfig=Me,Ye.AxiosHeaders=ye,Ye.formToJSON=e=>ce(F.isHTMLForm(e)?new FormData(e):e),Ye.getAdapter=Pe.getAdapter,Ye.HttpStatusCode=Ze,Ye.default=Ye;const Ke=Ye},87555:(e,t,n)=>{"use strict";n.d(t,{$j:()=>se,I0:()=>pe,dC:()=>fe,oR:()=>ue,v9:()=>g,wU:()=>G,zt:()=>le});var r=n(68963),i=n(29074),o=r,a=Symbol.for("react-redux-context"),s="undefined"!==typeof globalThis?globalThis:{};function l(){var e;if(!o.createContext)return{};const t=null!==(e=s[a])&&void 0!==e?e:s[a]=new Map;let n=t.get(o.createContext);return n||(n=o.createContext(null),t.set(o.createContext,n)),n}var c=l(),u=()=>{throw new Error("uSES not initialized!")};function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c;return function(){return o.useContext(e)}}var h=d(),p=u,f=(e,t)=>e===t;function m(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c;const t=e===c?h:d(e),n=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{equalityFn:r=f,devModeChecks:i={}}="function"===typeof n?{equalityFn:n}:n;const{store:a,subscription:s,getServerState:l,stabilityCheck:c,identityFunctionCheck:u}=t(),d=(o.useRef(!0),o.useCallback({[e.name]:t=>e(t)}[e.name],[e,c,i.stabilityCheck])),h=p(s.addNestedSub,a.getState,l||a.getState,d,r);return o.useDebugValue(h),h};return Object.assign(n,{withTypes:()=>n}),n}var g=m(),v=Symbol.for("react.element"),y=Symbol.for("react.portal"),b=Symbol.for("react.fragment"),x=Symbol.for("react.strict_mode"),w=Symbol.for("react.profiler"),S=Symbol.for("react.provider"),_=Symbol.for("react.context"),C=Symbol.for("react.server_context"),E=Symbol.for("react.forward_ref"),T=Symbol.for("react.suspense"),O=Symbol.for("react.suspense_list"),N=Symbol.for("react.memo"),k=Symbol.for("react.lazy"),j=(Symbol.for("react.offscreen"),Symbol.for("react.client.reference"),E),I=N;function P(e){if("object"===typeof e&&null!==e){const t=e.$$typeof;switch(t){case v:{const n=e.type;switch(n){case b:case w:case x:case T:case O:return n;default:{const e=n&&n.$$typeof;switch(e){case C:case _:case E:case k:case N:case S:return e;default:return t}}}}case y:return t}}}function D(e,t,n,r,i){let o,a,s,l,c,{areStatesEqual:u,areOwnPropsEqual:d,areStatePropsEqual:h}=i,p=!1;function f(i,p){const f=!d(p,a),m=!u(i,o,p,a);return o=i,a=p,f&&m?(s=e(o,a),t.dependsOnOwnProps&&(l=t(r,a)),c=n(s,l,a),c):f?(e.dependsOnOwnProps&&(s=e(o,a)),t.dependsOnOwnProps&&(l=t(r,a)),c=n(s,l,a),c):m?function(){const t=e(o,a),r=!h(t,s);return s=t,r&&(c=n(s,l,a)),c}():c}return function(i,u){return p?f(i,u):(o=i,a=u,s=e(o,a),l=t(r,a),c=n(s,l,a),p=!0,c)}}function A(e){return function(t){const n=e(t);function r(){return n}return r.dependsOnOwnProps=!1,r}}function R(e){return e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function M(e,t){return function(t,n){let{displayName:r}=n;const i=function(e,t){return i.dependsOnOwnProps?i.mapToProps(e,t):i.mapToProps(e,void 0)};return i.dependsOnOwnProps=!0,i.mapToProps=function(t,n){i.mapToProps=e,i.dependsOnOwnProps=R(e);let r=i(t,n);return"function"===typeof r&&(i.mapToProps=r,i.dependsOnOwnProps=R(r),r=i(t,n)),r},i}}function L(e,t){return(n,r)=>{throw new Error("Invalid value of type ".concat(typeof e," for ").concat(t," argument when connecting component ").concat(r.wrappedComponentName,"."))}}function F(e,t,n){return{...n,...e,...t}}function z(e){e()}var B={notify(){},get:()=>[]};function U(e,t){let n,r=B,i=0,o=!1;function a(){c.onStateChange&&c.onStateChange()}function s(){i++,n||(n=t?t.addNestedSub(a):e.subscribe(a),r=function(){let e=null,t=null;return{clear(){e=null,t=null},notify(){z((()=>{let t=e;for(;t;)t.callback(),t=t.next}))},get(){const t=[];let n=e;for(;n;)t.push(n),n=n.next;return t},subscribe(n){let r=!0;const i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){r&&null!==e&&(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}())}function l(){i--,n&&0===i&&(n(),n=void 0,r.clear(),r=B)}const c={addNestedSub:function(e){s();const t=r.subscribe(e);let n=!1;return()=>{n||(n=!0,t(),l())}},notifyNestedSubs:function(){r.notify()},handleChangeWrapper:a,isSubscribed:function(){return o},trySubscribe:function(){o||(o=!0,s())},tryUnsubscribe:function(){o&&(o=!1,l())},getListeners:()=>r};return c}var H=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement)?o.useLayoutEffect:o.useEffect;function V(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function G(e,t){if(V(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let i=0;i<n.length;i++)if(!Object.prototype.hasOwnProperty.call(t,n[i])||!V(e[n[i]],t[n[i]]))return!1;return!0}var W={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},q={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Z={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Y={[j]:{$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},[I]:Z};function K(e){return P(e)===N?Z:Y[e.$$typeof]||W}var Q=Object.defineProperty,X=Object.getOwnPropertyNames,$=Object.getOwnPropertySymbols,J=Object.getOwnPropertyDescriptor,ee=Object.getPrototypeOf,te=Object.prototype;function ne(e,t){if("string"!==typeof t){if(te){const n=ee(t);n&&n!==te&&ne(e,n)}let r=X(t);$&&(r=r.concat($(t)));const i=K(e),o=K(t);for(let a=0;a<r.length;++a){const s=r[a];if(!q[s]&&(!o||!o[s])&&(!i||!i[s])){const r=J(t,s);try{Q(e,s,r)}catch(n){}}}}return e}var re=u,ie=[null,null];function oe(e,t,n,r,i,o){e.current=r,n.current=!1,i.current&&(i.current=null,o())}function ae(e,t){return e===t}var se=function(e,t,n){let{pure:r,areStatesEqual:i=ae,areOwnPropsEqual:a=G,areStatePropsEqual:s=G,areMergedPropsEqual:l=G,forwardRef:u=!1,context:d=c}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const h=d,p=function(e){return e?"function"===typeof e?M(e):L(e,"mapStateToProps"):A((()=>({})))}(e),f=function(e){return e&&"object"===typeof e?A((t=>function(e,t){const n={};for(const r in e){const i=e[r];"function"===typeof i&&(n[r]=function(){return t(i(...arguments))})}return n}(e,t))):e?"function"===typeof e?M(e):L(e,"mapDispatchToProps"):A((e=>({dispatch:e})))}(t),m=function(e){return e?"function"===typeof e?function(e){return function(t,n){let r,{displayName:i,areMergedPropsEqual:o}=n,a=!1;return function(t,n,i){const s=e(t,n,i);return a?o(s,r)||(r=s):(a=!0,r=s),r}}}(e):L(e,"mergeProps"):()=>F}(n),g=Boolean(e);return e=>{const t=e.displayName||e.name||"Component",n="Connect(".concat(t,")"),r={shouldHandleStateChanges:g,displayName:n,wrappedComponentName:t,WrappedComponent:e,initMapStateToProps:p,initMapDispatchToProps:f,initMergeProps:m,areStatesEqual:i,areStatePropsEqual:s,areOwnPropsEqual:a,areMergedPropsEqual:l};function c(t){const[n,i,a]=o.useMemo((()=>{const{reactReduxForwardedRef:e,...n}=t;return[t.context,e,n]}),[t]),s=o.useMemo((()=>{let e=h;return null!==n&&void 0!==n&&n.Consumer,e}),[n,h]),l=o.useContext(s),c=Boolean(t.store)&&Boolean(t.store.getState)&&Boolean(t.store.dispatch),u=Boolean(l)&&Boolean(l.store);const d=c?t.store:l.store,p=u?l.getServerState:d.getState,f=o.useMemo((()=>function(e,t){let{initMapStateToProps:n,initMapDispatchToProps:r,initMergeProps:i,...o}=t;return D(n(e,o),r(e,o),i(e,o),e,o)}(d.dispatch,r)),[d]),[m,v]=o.useMemo((()=>{if(!g)return ie;const e=U(d,c?void 0:l.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]}),[d,c,l]),y=o.useMemo((()=>c?l:{...l,subscription:m}),[c,l,m]),b=o.useRef(),x=o.useRef(a),w=o.useRef(),S=o.useRef(!1),_=(o.useRef(!1),o.useRef(!1)),C=o.useRef();H((()=>(_.current=!0,()=>{_.current=!1})),[]);const E=o.useMemo((()=>()=>w.current&&a===x.current?w.current:f(d.getState(),a)),[d,a]),T=o.useMemo((()=>e=>m?function(e,t,n,r,i,o,a,s,l,c,u){if(!e)return()=>{};let d=!1,h=null;const p=()=>{if(d||!s.current)return;const e=t.getState();let n,p;try{n=r(e,i.current)}catch(f){p=f,h=f}p||(h=null),n===o.current?a.current||c():(o.current=n,l.current=n,a.current=!0,u())};return n.onStateChange=p,n.trySubscribe(),p(),()=>{if(d=!0,n.tryUnsubscribe(),n.onStateChange=null,h)throw h}}(g,d,m,f,x,b,S,_,w,v,e):()=>{}),[m]);var O,N,k;let j;O=oe,N=[x,b,S,a,w,v],H((()=>O(...N)),k);try{j=re(T,E,p?()=>f(p(),a):E)}catch(P){throw C.current&&(P.message+="\nThe error may be correlated with this previous error:\n".concat(C.current.stack,"\n\n")),P}H((()=>{C.current=void 0,w.current=void 0,b.current=j}));const I=o.useMemo((()=>o.createElement(e,{...j,ref:i})),[i,e,j]);return o.useMemo((()=>g?o.createElement(s.Provider,{value:y},I):I),[s,I,y])}const d=o.memo(c);if(d.WrappedComponent=e,d.displayName=c.displayName=n,u){const t=o.forwardRef((function(e,t){return o.createElement(d,{...e,reactReduxForwardedRef:t})}));return t.displayName=n,t.WrappedComponent=e,ne(t,e)}return ne(d,e)}};var le=function(e){let{store:t,context:n,children:r,serverState:i,stabilityCheck:a="once",identityFunctionCheck:s="once"}=e;const l=o.useMemo((()=>{const e=U(t);return{store:t,subscription:e,getServerState:i?()=>i:void 0,stabilityCheck:a,identityFunctionCheck:s}}),[t,i,a,s]),u=o.useMemo((()=>t.getState()),[t]);H((()=>{const{subscription:e}=l;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),u!==t.getState()&&e.notifyNestedSubs(),()=>{e.tryUnsubscribe(),e.onStateChange=void 0}}),[l,u]);const d=n||c;return o.createElement(d.Provider,{value:l},r)};function ce(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c;const t=e===c?h:d(e),n=()=>{const{store:e}=t();return e};return Object.assign(n,{withTypes:()=>n}),n}var ue=ce();function de(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c;const t=e===c?ue:ce(e),n=()=>t().dispatch;return Object.assign(n,{withTypes:()=>n}),n}var he,pe=de(),fe=z;he=i.useSyncExternalStoreWithSelector,p=he,(e=>{re=e})(r.useSyncExternalStore)},38907:(e,t,n)=>{"use strict";function r(e){return"Minified Redux error #".concat(e,"; visit https://redux.js.org/Errors?code=").concat(e," for the full message or use the non-minified dev environment for full errors. ")}n.d(t,{DE:()=>d,LG:()=>f,MT:()=>l,PO:()=>s,UY:()=>c,md:()=>p,qC:()=>h});var i=(()=>"function"===typeof Symbol&&Symbol.observable||"@@observable")(),o=()=>Math.random().toString(36).substring(7).split("").join("."),a={INIT:"@@redux/INIT".concat(o()),REPLACE:"@@redux/REPLACE".concat(o()),PROBE_UNKNOWN_ACTION:()=>"@@redux/PROBE_UNKNOWN_ACTION".concat(o())};function s(e){if("object"!==typeof e||null===e)return!1;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||null===Object.getPrototypeOf(e)}function l(e,t,n){if("function"!==typeof e)throw new Error(r(2));if("function"===typeof t&&"function"===typeof n||"function"===typeof n&&"function"===typeof arguments[3])throw new Error(r(0));if("function"===typeof t&&"undefined"===typeof n&&(n=t,t=void 0),"undefined"!==typeof n){if("function"!==typeof n)throw new Error(r(1));return n(l)(e,t)}let o=e,c=t,u=new Map,d=u,h=0,p=!1;function f(){d===u&&(d=new Map,u.forEach(((e,t)=>{d.set(t,e)})))}function m(){if(p)throw new Error(r(3));return c}function g(e){if("function"!==typeof e)throw new Error(r(4));if(p)throw new Error(r(5));let t=!0;f();const n=h++;return d.set(n,e),function(){if(t){if(p)throw new Error(r(6));t=!1,f(),d.delete(n),u=null}}}function v(e){if(!s(e))throw new Error(r(7));if("undefined"===typeof e.type)throw new Error(r(8));if("string"!==typeof e.type)throw new Error(r(17));if(p)throw new Error(r(9));try{p=!0,c=o(c,e)}finally{p=!1}return(u=d).forEach((e=>{e()})),e}v({type:a.INIT});return{dispatch:v,subscribe:g,getState:m,replaceReducer:function(e){if("function"!==typeof e)throw new Error(r(10));o=e,v({type:a.REPLACE})},[i]:function(){const e=g;return{subscribe(t){if("object"!==typeof t||null===t)throw new Error(r(11));function n(){const e=t;e.next&&e.next(m())}n();return{unsubscribe:e(n)}},[i](){return this}}}}}function c(e){const t=Object.keys(e),n={};for(let r=0;r<t.length;r++){const i=t[r];0,"function"===typeof e[i]&&(n[i]=e[i])}const i=Object.keys(n);let o;try{!function(e){Object.keys(e).forEach((t=>{const n=e[t];if("undefined"===typeof n(void 0,{type:a.INIT}))throw new Error(r(12));if("undefined"===typeof n(void 0,{type:a.PROBE_UNKNOWN_ACTION()}))throw new Error(r(13))}))}(n)}catch(s){o=s}return function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if(o)throw o;let a=!1;const s={};for(let o=0;o<i.length;o++){const l=i[o],c=n[l],u=e[l],d=c(u,t);if("undefined"===typeof d){t&&t.type;throw new Error(r(14))}s[l]=d,a=a||d!==u}return a=a||i.length!==Object.keys(e).length,a?s:e}}function u(e,t){return function(){for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return t(e.apply(this,r))}}function d(e,t){if("function"===typeof e)return u(e,t);if("object"!==typeof e||null===e)throw new Error(r(16));const n={};for(const r in e){const i=e[r];"function"===typeof i&&(n[r]=u(i,t))}return n}function h(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?e=>e:1===t.length?t[0]:t.reduce(((e,t)=>function(){return e(t(...arguments))}))}function p(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return e=>(n,i)=>{const o=e(n,i);let a=()=>{throw new Error(r(15))};const s={getState:o.getState,dispatch:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return a(e,...n)}},l=t.map((e=>e(s)));return a=h(...l)(o.dispatch),{...o,dispatch:a}}}function f(e){return s(e)&&"type"in e&&"string"===typeof e.type}},36313:(e,t,n)=>{"use strict";n.d(t,{P1:()=>h,kO:()=>u,wN:()=>d});n(64572);function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"expected a function, instead received ".concat(typeof e);if("function"!==typeof e)throw new TypeError(t)}var i=e=>Array.isArray(e)?e:[e];function o(e){const t=Array.isArray(e[0])?e[0]:e;return function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"expected all items to be functions, instead received the following types: ";if(!e.every((e=>"function"===typeof e))){const n=e.map((e=>"function"===typeof e?"function ".concat(e.name||"unnamed","()"):typeof e)).join(", ");throw new TypeError("".concat(t,"[").concat(n,"]"))}}(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}Symbol(),Object.getPrototypeOf({});var a="undefined"!==typeof WeakRef?WeakRef:class{constructor(e){this.value=e}deref(){return this.value}},s=0,l=1;function c(){return{s:s,v:void 0,o:null,p:null}}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=c();const{resultEqualityCheck:r}=t;let i,o=0;function s(){let t=n;const{length:s}=arguments;for(let e=0,n=s;e<n;e++){const n=arguments[e];if("function"===typeof n||"object"===typeof n&&null!==n){let e=t.o;null===e&&(t.o=e=new WeakMap);const r=e.get(n);void 0===r?(t=c(),e.set(n,t)):t=r}else{let e=t.p;null===e&&(t.p=e=new Map);const r=e.get(n);void 0===r?(t=c(),e.set(n,t)):t=r}}const u=t;let d;if(t.s===l?d=t.v:(d=e.apply(null,arguments),o++),u.s=l,r){var h,p,f;const e=null!==(h=null===(p=i)||void 0===p||null===(f=p.deref)||void 0===f?void 0:f.call(p))&&void 0!==h?h:i;null!=e&&r(e,d)&&(d=e,0!==o&&o--);i="object"===typeof d&&null!==d||"function"===typeof d?new a(d):d}return u.v=d,d}return s.clearCache=()=>{n=c(),s.resetResultsCount()},s.resultsCount=()=>o,s.resetResultsCount=()=>{o=0},s}function d(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];const s="function"===typeof e?{memoize:e,memoizeOptions:n}:e,l=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];let a,l=0,c=0,d={},h=t.pop();"object"===typeof h&&(d=h,h=t.pop()),r(h,"createSelector expects an output function after the inputs, but received: [".concat(typeof h,"]"));const p={...s,...d},{memoize:f,memoizeOptions:m=[],argsMemoize:g=u,argsMemoizeOptions:v=[],devModeChecks:y={}}=p,b=i(m),x=i(v),w=o(t),S=f((function(){return l++,h.apply(null,arguments)}),...b);const _=g((function(){c++;const e=function(e,t){const n=[],{length:r}=e;for(let i=0;i<r;i++)n.push(e[i].apply(null,t));return n}(w,arguments);return a=S.apply(null,e),a}),...x);return Object.assign(_,{resultFunc:h,memoizedResultFunc:S,dependencies:w,dependencyRecomputations:()=>c,resetDependencyRecomputations:()=>{c=0},lastResult:()=>a,recomputations:()=>l,resetRecomputations:()=>{l=0},memoize:f,argsMemoize:g})};return Object.assign(l,{withTypes:()=>l}),l}var h=d(u),p=Object.assign((function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:h;!function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"expected an object, instead received ".concat(typeof e);if("object"!==typeof e)throw new TypeError(t)}(e,"createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ".concat(typeof e));const n=Object.keys(e),r=t(n.map((t=>e[t])),(function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.reduce(((e,t,r)=>(e[n[r]]=t,e)),{})}));return r}),{withTypes:()=>p})},95097:(e,t,n)=>{"use strict";n.d(t,{_T:()=>r});function r(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}Object.create;Object.create;"function"===typeof SuppressedError&&SuppressedError},95408:(e,t,n)=>{"use strict";var r,i;n.d(t,{z:()=>bt}),function(e){e.assertEqual=e=>e,e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const n of e)t[n]=n;return t},e.getValidEnumValues=t=>{const n=e.objectKeys(t).filter((e=>"number"!==typeof t[t[e]])),r={};for(const e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map((function(e){return t[e]})),e.objectKeys="function"===typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(const n of e)if(t(n))return n},e.isInteger="function"===typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"===typeof e&&isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:" | ";return e.map((e=>"string"===typeof e?"'".concat(e,"'"):e)).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"===typeof t?t.toString():t}(r||(r={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(i||(i={}));const o=r.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),a=e=>{switch(typeof e){case"undefined":return o.undefined;case"string":return o.string;case"number":return isNaN(e)?o.nan:o.number;case"boolean":return o.boolean;case"function":return o.function;case"bigint":return o.bigint;case"symbol":return o.symbol;case"object":return Array.isArray(e)?o.array:null===e?o.null:e.then&&"function"===typeof e.then&&e.catch&&"function"===typeof e.catch?o.promise:"undefined"!==typeof Map&&e instanceof Map?o.map:"undefined"!==typeof Set&&e instanceof Set?o.set:"undefined"!==typeof Date&&e instanceof Date?o.date:o.object;default:return o.unknown}},s=r.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class l extends Error{constructor(e){var t;super(),t=this,this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];t.issues=[...t.issues,...e]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=e}get errors(){return this.issues}format(e){const t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(const i of e.issues)if("invalid_union"===i.code)i.unionErrors.map(r);else if("invalid_return_type"===i.code)r(i.returnTypeError);else if("invalid_arguments"===i.code)r(i.argumentsError);else if(0===i.path.length)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){const n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(e){if(!(e instanceof l))throw new Error("Not a ZodError: ".concat(e))}toString(){return this.message}get message(){return JSON.stringify(this.issues,r.jsonStringifyReplacer,2)}get isEmpty(){return 0===this.issues.length}flatten(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e=>e.message;const t={},n=[];for(const r of this.issues)r.path.length>0?(t[r.path[0]]=t[r.path[0]]||[],t[r.path[0]].push(e(r))):n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}l.create=e=>new l(e);const c=(e,t)=>{let n;switch(e.code){case s.invalid_type:n=e.received===o.undefined?"Required":"Expected ".concat(e.expected,", received ").concat(e.received);break;case s.invalid_literal:n="Invalid literal value, expected ".concat(JSON.stringify(e.expected,r.jsonStringifyReplacer));break;case s.unrecognized_keys:n="Unrecognized key(s) in object: ".concat(r.joinValues(e.keys,", "));break;case s.invalid_union:n="Invalid input";break;case s.invalid_union_discriminator:n="Invalid discriminator value. Expected ".concat(r.joinValues(e.options));break;case s.invalid_enum_value:n="Invalid enum value. Expected ".concat(r.joinValues(e.options),", received '").concat(e.received,"'");break;case s.invalid_arguments:n="Invalid function arguments";break;case s.invalid_return_type:n="Invalid function return type";break;case s.invalid_date:n="Invalid date";break;case s.invalid_string:"object"===typeof e.validation?"includes"in e.validation?(n='Invalid input: must include "'.concat(e.validation.includes,'"'),"number"===typeof e.validation.position&&(n="".concat(n," at one or more positions greater than or equal to ").concat(e.validation.position))):"startsWith"in e.validation?n='Invalid input: must start with "'.concat(e.validation.startsWith,'"'):"endsWith"in e.validation?n='Invalid input: must end with "'.concat(e.validation.endsWith,'"'):r.assertNever(e.validation):n="regex"!==e.validation?"Invalid ".concat(e.validation):"Invalid";break;case s.too_small:n="array"===e.type?"Array must contain ".concat(e.exact?"exactly":e.inclusive?"at least":"more than"," ").concat(e.minimum," element(s)"):"string"===e.type?"String must contain ".concat(e.exact?"exactly":e.inclusive?"at least":"over"," ").concat(e.minimum," character(s)"):"number"===e.type?"Number must be ".concat(e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than ").concat(e.minimum):"date"===e.type?"Date must be ".concat(e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than ").concat(new Date(Number(e.minimum))):"Invalid input";break;case s.too_big:n="array"===e.type?"Array must contain ".concat(e.exact?"exactly":e.inclusive?"at most":"less than"," ").concat(e.maximum," element(s)"):"string"===e.type?"String must contain ".concat(e.exact?"exactly":e.inclusive?"at most":"under"," ").concat(e.maximum," character(s)"):"number"===e.type?"Number must be ".concat(e.exact?"exactly":e.inclusive?"less than or equal to":"less than"," ").concat(e.maximum):"bigint"===e.type?"BigInt must be ".concat(e.exact?"exactly":e.inclusive?"less than or equal to":"less than"," ").concat(e.maximum):"date"===e.type?"Date must be ".concat(e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"," ").concat(new Date(Number(e.maximum))):"Invalid input";break;case s.custom:n="Invalid input";break;case s.invalid_intersection_types:n="Intersection results could not be merged";break;case s.not_multiple_of:n="Number must be a multiple of ".concat(e.multipleOf);break;case s.not_finite:n="Number must be finite";break;default:n=t.defaultError,r.assertNever(e)}return{message:n}};let u=c;function d(){return u}const h=e=>{const{data:t,path:n,errorMaps:r,issueData:i}=e,o=[...n,...i.path||[]],a={...i,path:o};if(void 0!==i.message)return{...i,path:o,message:i.message};let s="";const l=r.filter((e=>!!e)).slice().reverse();for(const c of l)s=c(a,{data:t,defaultError:s}).message;return{...i,path:o,message:s}};function p(e,t){const n=d(),r=h({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===c?void 0:c].filter((e=>!!e))});e.common.issues.push(r)}class f{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const r of t){if("aborted"===r.status)return m;"dirty"===r.status&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const r of t){const e=await r.key,t=await r.value;n.push({key:e,value:t})}return f.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const r of t){const{key:t,value:i}=r;if("aborted"===t.status)return m;if("aborted"===i.status)return m;"dirty"===t.status&&e.dirty(),"dirty"===i.status&&e.dirty(),"__proto__"===t.value||"undefined"===typeof i.value&&!r.alwaysSet||(n[t.value]=i.value)}return{status:e.value,value:n}}}const m=Object.freeze({status:"aborted"}),g=e=>({status:"dirty",value:e}),v=e=>({status:"valid",value:e}),y=e=>"aborted"===e.status,b=e=>"dirty"===e.status,x=e=>"valid"===e.status,w=e=>"undefined"!==typeof Promise&&e instanceof Promise;function S(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"===typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function _(e,t,n,r,i){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"===typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?i.call(e,n):i?i.value=n:t.set(e,n),n}var C,E,T;"function"===typeof SuppressedError&&SuppressedError,function(e){e.errToObj=e=>"string"===typeof e?{message:e}:e||{},e.toString=e=>"string"===typeof e?e:null===e||void 0===e?void 0:e.message}(C||(C={}));class O{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const N=(e,t)=>{if(x(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new l(e.common.issues);return this._error=t,this._error}}};function k(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');if(t)return{errorMap:t,description:i};return{errorMap:(t,i)=>{var o,a;const{message:s}=e;return"invalid_enum_value"===t.code?{message:null!==s&&void 0!==s?s:i.defaultError}:"undefined"===typeof i.data?{message:null!==(o=null!==s&&void 0!==s?s:r)&&void 0!==o?o:i.defaultError}:"invalid_type"!==t.code?{message:i.defaultError}:{message:null!==(a=null!==s&&void 0!==s?s:n)&&void 0!==a?a:i.defaultError}},description:i}}class j{constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(e){return a(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:a(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new f,ctx:{common:e.parent.common,data:e.data,parsedType:a(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(w(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){var n;const r={common:{issues:[],async:null!==(n=null===t||void 0===t?void 0:t.async)&&void 0!==n&&n,contextualErrorMap:null===t||void 0===t?void 0:t.errorMap},path:(null===t||void 0===t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:a(e)},i=this._parseSync({data:e,path:r.path,parent:r});return N(r,i)}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:null===t||void 0===t?void 0:t.errorMap,async:!0},path:(null===t||void 0===t?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:a(e)},r=this._parse({data:e,path:n.path,parent:n}),i=await(w(r)?r:Promise.resolve(r));return N(n,i)}refine(e,t){const n=e=>"string"===typeof t||"undefined"===typeof t?{message:t}:"function"===typeof t?t(e):t;return this._refinement(((t,r)=>{const i=e(t),o=()=>r.addIssue({code:s.custom,...n(t)});return"undefined"!==typeof Promise&&i instanceof Promise?i.then((e=>!!e||(o(),!1))):!!i||(o(),!1)}))}refinement(e,t){return this._refinement(((n,r)=>!!e(n)||(r.addIssue("function"===typeof t?t(n,r):t),!1)))}_refinement(e){return new Ce({schema:this,typeName:Me.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}optional(){return Ee.create(this,this._def)}nullable(){return Te.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return oe.create(this,this._def)}promise(){return _e.create(this,this._def)}or(e){return le.create([this,e],this._def)}and(e){return he.create(this,e,this._def)}transform(e){return new Ce({...k(this._def),schema:this,typeName:Me.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"===typeof e?e:()=>e;return new Oe({...k(this._def),innerType:this,defaultValue:t,typeName:Me.ZodDefault})}brand(){return new Ie({typeName:Me.ZodBranded,type:this,...k(this._def)})}catch(e){const t="function"===typeof e?e:()=>e;return new Ne({...k(this._def),innerType:this,catchValue:t,typeName:Me.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return Pe.create(this,e)}readonly(){return De.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const I=/^c[^\s-]{8,}$/i,P=/^[0-9a-z]+$/,D=/^[0-9A-HJKMNP-TV-Z]{26}$/,A=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,R=/^[a-z0-9_-]{21}$/i,M=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,L=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let F;const z=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,B=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,U=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,H="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",V=new RegExp("^".concat(H,"$"));function G(e){let t="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return e.precision?t="".concat(t,"\\.\\d{").concat(e.precision,"}"):null==e.precision&&(t="".concat(t,"(\\.\\d+)?")),t}function W(e){let t="".concat(H,"T").concat(G(e));const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t="".concat(t,"(").concat(n.join("|"),")"),new RegExp("^".concat(t,"$"))}class q extends j{_parse(e){this._def.coerce&&(e.data=String(e.data));if(this._getType(e)!==o.string){const t=this._getOrReturnCtx(e);return p(t,{code:s.invalid_type,expected:o.string,received:t.parsedType}),m}const t=new f;let n;for(const o of this._def.checks)if("min"===o.kind)e.data.length<o.value&&(n=this._getOrReturnCtx(e,n),p(n,{code:s.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),t.dirty());else if("max"===o.kind)e.data.length>o.value&&(n=this._getOrReturnCtx(e,n),p(n,{code:s.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),t.dirty());else if("length"===o.kind){const r=e.data.length>o.value,i=e.data.length<o.value;(r||i)&&(n=this._getOrReturnCtx(e,n),r?p(n,{code:s.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):i&&p(n,{code:s.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),t.dirty())}else if("email"===o.kind)L.test(e.data)||(n=this._getOrReturnCtx(e,n),p(n,{validation:"email",code:s.invalid_string,message:o.message}),t.dirty());else if("emoji"===o.kind)F||(F=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),F.test(e.data)||(n=this._getOrReturnCtx(e,n),p(n,{validation:"emoji",code:s.invalid_string,message:o.message}),t.dirty());else if("uuid"===o.kind)A.test(e.data)||(n=this._getOrReturnCtx(e,n),p(n,{validation:"uuid",code:s.invalid_string,message:o.message}),t.dirty());else if("nanoid"===o.kind)R.test(e.data)||(n=this._getOrReturnCtx(e,n),p(n,{validation:"nanoid",code:s.invalid_string,message:o.message}),t.dirty());else if("cuid"===o.kind)I.test(e.data)||(n=this._getOrReturnCtx(e,n),p(n,{validation:"cuid",code:s.invalid_string,message:o.message}),t.dirty());else if("cuid2"===o.kind)P.test(e.data)||(n=this._getOrReturnCtx(e,n),p(n,{validation:"cuid2",code:s.invalid_string,message:o.message}),t.dirty());else if("ulid"===o.kind)D.test(e.data)||(n=this._getOrReturnCtx(e,n),p(n,{validation:"ulid",code:s.invalid_string,message:o.message}),t.dirty());else if("url"===o.kind)try{new URL(e.data)}catch(l){n=this._getOrReturnCtx(e,n),p(n,{validation:"url",code:s.invalid_string,message:o.message}),t.dirty()}else if("regex"===o.kind){o.regex.lastIndex=0;o.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),p(n,{validation:"regex",code:s.invalid_string,message:o.message}),t.dirty())}else if("trim"===o.kind)e.data=e.data.trim();else if("includes"===o.kind)e.data.includes(o.value,o.position)||(n=this._getOrReturnCtx(e,n),p(n,{code:s.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),t.dirty());else if("toLowerCase"===o.kind)e.data=e.data.toLowerCase();else if("toUpperCase"===o.kind)e.data=e.data.toUpperCase();else if("startsWith"===o.kind)e.data.startsWith(o.value)||(n=this._getOrReturnCtx(e,n),p(n,{code:s.invalid_string,validation:{startsWith:o.value},message:o.message}),t.dirty());else if("endsWith"===o.kind)e.data.endsWith(o.value)||(n=this._getOrReturnCtx(e,n),p(n,{code:s.invalid_string,validation:{endsWith:o.value},message:o.message}),t.dirty());else if("datetime"===o.kind){W(o).test(e.data)||(n=this._getOrReturnCtx(e,n),p(n,{code:s.invalid_string,validation:"datetime",message:o.message}),t.dirty())}else if("date"===o.kind){V.test(e.data)||(n=this._getOrReturnCtx(e,n),p(n,{code:s.invalid_string,validation:"date",message:o.message}),t.dirty())}else if("time"===o.kind){new RegExp("^".concat(G(o),"$")).test(e.data)||(n=this._getOrReturnCtx(e,n),p(n,{code:s.invalid_string,validation:"time",message:o.message}),t.dirty())}else"duration"===o.kind?M.test(e.data)||(n=this._getOrReturnCtx(e,n),p(n,{validation:"duration",code:s.invalid_string,message:o.message}),t.dirty()):"ip"===o.kind?(i=e.data,("v4"!==(a=o.version)&&a||!z.test(i))&&("v6"!==a&&a||!B.test(i))&&(n=this._getOrReturnCtx(e,n),p(n,{validation:"ip",code:s.invalid_string,message:o.message}),t.dirty())):"base64"===o.kind?U.test(e.data)||(n=this._getOrReturnCtx(e,n),p(n,{validation:"base64",code:s.invalid_string,message:o.message}),t.dirty()):r.assertNever(o);var i,a;return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement((t=>e.test(t)),{validation:t,code:s.invalid_string,...C.errToObj(n)})}_addCheck(e){return new q({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...C.errToObj(e)})}url(e){return this._addCheck({kind:"url",...C.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...C.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...C.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...C.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...C.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...C.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...C.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...C.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...C.errToObj(e)})}datetime(e){var t,n;return"string"===typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:"undefined"===typeof(null===e||void 0===e?void 0:e.precision)?null:null===e||void 0===e?void 0:e.precision,offset:null!==(t=null===e||void 0===e?void 0:e.offset)&&void 0!==t&&t,local:null!==(n=null===e||void 0===e?void 0:e.local)&&void 0!==n&&n,...C.errToObj(null===e||void 0===e?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"===typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:"undefined"===typeof(null===e||void 0===e?void 0:e.precision)?null:null===e||void 0===e?void 0:e.precision,...C.errToObj(null===e||void 0===e?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...C.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...C.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:null===t||void 0===t?void 0:t.position,...C.errToObj(null===t||void 0===t?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...C.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...C.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...C.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...C.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...C.errToObj(t)})}nonempty(e){return this.min(1,C.errToObj(e))}trim(){return new q({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new q({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new q({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((e=>"datetime"===e.kind))}get isDate(){return!!this._def.checks.find((e=>"date"===e.kind))}get isTime(){return!!this._def.checks.find((e=>"time"===e.kind))}get isDuration(){return!!this._def.checks.find((e=>"duration"===e.kind))}get isEmail(){return!!this._def.checks.find((e=>"email"===e.kind))}get isURL(){return!!this._def.checks.find((e=>"url"===e.kind))}get isEmoji(){return!!this._def.checks.find((e=>"emoji"===e.kind))}get isUUID(){return!!this._def.checks.find((e=>"uuid"===e.kind))}get isNANOID(){return!!this._def.checks.find((e=>"nanoid"===e.kind))}get isCUID(){return!!this._def.checks.find((e=>"cuid"===e.kind))}get isCUID2(){return!!this._def.checks.find((e=>"cuid2"===e.kind))}get isULID(){return!!this._def.checks.find((e=>"ulid"===e.kind))}get isIP(){return!!this._def.checks.find((e=>"ip"===e.kind))}get isBase64(){return!!this._def.checks.find((e=>"base64"===e.kind))}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}function Z(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r;return parseInt(e.toFixed(i).replace(".",""))%parseInt(t.toFixed(i).replace(".",""))/Math.pow(10,i)}q.create=e=>{var t;return new q({checks:[],typeName:Me.ZodString,coerce:null!==(t=null===e||void 0===e?void 0:e.coerce)&&void 0!==t&&t,...k(e)})};class Y extends j{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){this._def.coerce&&(e.data=Number(e.data));if(this._getType(e)!==o.number){const t=this._getOrReturnCtx(e);return p(t,{code:s.invalid_type,expected:o.number,received:t.parsedType}),m}let t;const n=new f;for(const i of this._def.checks)if("int"===i.kind)r.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),p(t,{code:s.invalid_type,expected:"integer",received:"float",message:i.message}),n.dirty());else if("min"===i.kind){(i.inclusive?e.data<i.value:e.data<=i.value)&&(t=this._getOrReturnCtx(e,t),p(t,{code:s.too_small,minimum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),n.dirty())}else if("max"===i.kind){(i.inclusive?e.data>i.value:e.data>=i.value)&&(t=this._getOrReturnCtx(e,t),p(t,{code:s.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),n.dirty())}else"multipleOf"===i.kind?0!==Z(e.data,i.value)&&(t=this._getOrReturnCtx(e,t),p(t,{code:s.not_multiple_of,multipleOf:i.value,message:i.message}),n.dirty()):"finite"===i.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),p(t,{code:s.not_finite,message:i.message}),n.dirty()):r.assertNever(i);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,C.toString(t))}gt(e,t){return this.setLimit("min",e,!1,C.toString(t))}lte(e,t){return this.setLimit("max",e,!0,C.toString(t))}lt(e,t){return this.setLimit("max",e,!1,C.toString(t))}setLimit(e,t,n,r){return new Y({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:C.toString(r)}]})}_addCheck(e){return new Y({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:C.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:C.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:C.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:C.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:C.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:C.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:C.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:C.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:C.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find((e=>"int"===e.kind||"multipleOf"===e.kind&&r.isInteger(e.value)))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if("finite"===n.kind||"int"===n.kind||"multipleOf"===n.kind)return!0;"min"===n.kind?(null===t||n.value>t)&&(t=n.value):"max"===n.kind&&(null===e||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}Y.create=e=>new Y({checks:[],typeName:Me.ZodNumber,coerce:(null===e||void 0===e?void 0:e.coerce)||!1,...k(e)});class K extends j{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){this._def.coerce&&(e.data=BigInt(e.data));if(this._getType(e)!==o.bigint){const t=this._getOrReturnCtx(e);return p(t,{code:s.invalid_type,expected:o.bigint,received:t.parsedType}),m}let t;const n=new f;for(const i of this._def.checks)if("min"===i.kind){(i.inclusive?e.data<i.value:e.data<=i.value)&&(t=this._getOrReturnCtx(e,t),p(t,{code:s.too_small,type:"bigint",minimum:i.value,inclusive:i.inclusive,message:i.message}),n.dirty())}else if("max"===i.kind){(i.inclusive?e.data>i.value:e.data>=i.value)&&(t=this._getOrReturnCtx(e,t),p(t,{code:s.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),n.dirty())}else"multipleOf"===i.kind?e.data%i.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),p(t,{code:s.not_multiple_of,multipleOf:i.value,message:i.message}),n.dirty()):r.assertNever(i);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,C.toString(t))}gt(e,t){return this.setLimit("min",e,!1,C.toString(t))}lte(e,t){return this.setLimit("max",e,!0,C.toString(t))}lt(e,t){return this.setLimit("max",e,!1,C.toString(t))}setLimit(e,t,n,r){return new K({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:C.toString(r)}]})}_addCheck(e){return new K({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:C.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:C.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:C.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:C.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:C.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}K.create=e=>{var t;return new K({checks:[],typeName:Me.ZodBigInt,coerce:null!==(t=null===e||void 0===e?void 0:e.coerce)&&void 0!==t&&t,...k(e)})};class Q extends j{_parse(e){this._def.coerce&&(e.data=Boolean(e.data));if(this._getType(e)!==o.boolean){const t=this._getOrReturnCtx(e);return p(t,{code:s.invalid_type,expected:o.boolean,received:t.parsedType}),m}return v(e.data)}}Q.create=e=>new Q({typeName:Me.ZodBoolean,coerce:(null===e||void 0===e?void 0:e.coerce)||!1,...k(e)});class X extends j{_parse(e){this._def.coerce&&(e.data=new Date(e.data));if(this._getType(e)!==o.date){const t=this._getOrReturnCtx(e);return p(t,{code:s.invalid_type,expected:o.date,received:t.parsedType}),m}if(isNaN(e.data.getTime())){return p(this._getOrReturnCtx(e),{code:s.invalid_date}),m}const t=new f;let n;for(const i of this._def.checks)"min"===i.kind?e.data.getTime()<i.value&&(n=this._getOrReturnCtx(e,n),p(n,{code:s.too_small,message:i.message,inclusive:!0,exact:!1,minimum:i.value,type:"date"}),t.dirty()):"max"===i.kind?e.data.getTime()>i.value&&(n=this._getOrReturnCtx(e,n),p(n,{code:s.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),t.dirty()):r.assertNever(i);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new X({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:C.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:C.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return null!=e?new Date(e):null}}X.create=e=>new X({checks:[],coerce:(null===e||void 0===e?void 0:e.coerce)||!1,typeName:Me.ZodDate,...k(e)});class $ extends j{_parse(e){if(this._getType(e)!==o.symbol){const t=this._getOrReturnCtx(e);return p(t,{code:s.invalid_type,expected:o.symbol,received:t.parsedType}),m}return v(e.data)}}$.create=e=>new $({typeName:Me.ZodSymbol,...k(e)});class J extends j{_parse(e){if(this._getType(e)!==o.undefined){const t=this._getOrReturnCtx(e);return p(t,{code:s.invalid_type,expected:o.undefined,received:t.parsedType}),m}return v(e.data)}}J.create=e=>new J({typeName:Me.ZodUndefined,...k(e)});class ee extends j{_parse(e){if(this._getType(e)!==o.null){const t=this._getOrReturnCtx(e);return p(t,{code:s.invalid_type,expected:o.null,received:t.parsedType}),m}return v(e.data)}}ee.create=e=>new ee({typeName:Me.ZodNull,...k(e)});class te extends j{constructor(){super(...arguments),this._any=!0}_parse(e){return v(e.data)}}te.create=e=>new te({typeName:Me.ZodAny,...k(e)});class ne extends j{constructor(){super(...arguments),this._unknown=!0}_parse(e){return v(e.data)}}ne.create=e=>new ne({typeName:Me.ZodUnknown,...k(e)});class re extends j{_parse(e){const t=this._getOrReturnCtx(e);return p(t,{code:s.invalid_type,expected:o.never,received:t.parsedType}),m}}re.create=e=>new re({typeName:Me.ZodNever,...k(e)});class ie extends j{_parse(e){if(this._getType(e)!==o.undefined){const t=this._getOrReturnCtx(e);return p(t,{code:s.invalid_type,expected:o.void,received:t.parsedType}),m}return v(e.data)}}ie.create=e=>new ie({typeName:Me.ZodVoid,...k(e)});class oe extends j{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==o.array)return p(t,{code:s.invalid_type,expected:o.array,received:t.parsedType}),m;if(null!==r.exactLength){const e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(p(t,{code:e?s.too_big:s.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(null!==r.minLength&&t.data.length<r.minLength.value&&(p(t,{code:s.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),null!==r.maxLength&&t.data.length>r.maxLength.value&&(p(t,{code:s.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map(((e,n)=>r.type._parseAsync(new O(t,e,t.path,n))))).then((e=>f.mergeArray(n,e)));const i=[...t.data].map(((e,n)=>r.type._parseSync(new O(t,e,t.path,n))));return f.mergeArray(n,i)}get element(){return this._def.type}min(e,t){return new oe({...this._def,minLength:{value:e,message:C.toString(t)}})}max(e,t){return new oe({...this._def,maxLength:{value:e,message:C.toString(t)}})}length(e,t){return new oe({...this._def,exactLength:{value:e,message:C.toString(t)}})}nonempty(e){return this.min(1,e)}}function ae(e){if(e instanceof se){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=Ee.create(ae(r))}return new se({...e._def,shape:()=>t})}return e instanceof oe?new oe({...e._def,type:ae(e.element)}):e instanceof Ee?Ee.create(ae(e.unwrap())):e instanceof Te?Te.create(ae(e.unwrap())):e instanceof pe?pe.create(e.items.map((e=>ae(e)))):e}oe.create=(e,t)=>new oe({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Me.ZodArray,...k(t)});class se extends j{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=r.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==o.object){const t=this._getOrReturnCtx(e);return p(t,{code:s.invalid_type,expected:o.object,received:t.parsedType}),m}const{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof re&&"strip"===this._def.unknownKeys))for(const o in n.data)i.includes(o)||a.push(o);const l=[];for(const o of i){const e=r[o],t=n.data[o];l.push({key:{status:"valid",value:o},value:e._parse(new O(n,t,n.path,o)),alwaysSet:o in n.data})}if(this._def.catchall instanceof re){const e=this._def.unknownKeys;if("passthrough"===e)for(const t of a)l.push({key:{status:"valid",value:t},value:{status:"valid",value:n.data[t]}});else if("strict"===e)a.length>0&&(p(n,{code:s.unrecognized_keys,keys:a}),t.dirty());else if("strip"!==e)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const e=this._def.catchall;for(const t of a){const r=n.data[t];l.push({key:{status:"valid",value:t},value:e._parse(new O(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then((async()=>{const e=[];for(const t of l){const n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e})).then((e=>f.mergeObjectSync(t,e))):f.mergeObjectSync(t,l)}get shape(){return this._def.shape()}strict(e){return C.errToObj,new se({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,n)=>{var r,i,o,a;const s=null!==(o=null===(i=(r=this._def).errorMap)||void 0===i?void 0:i.call(r,t,n).message)&&void 0!==o?o:n.defaultError;return"unrecognized_keys"===t.code?{message:null!==(a=C.errToObj(e).message)&&void 0!==a?a:s}:{message:s}}}:{}})}strip(){return new se({...this._def,unknownKeys:"strip"})}passthrough(){return new se({...this._def,unknownKeys:"passthrough"})}extend(e){return new se({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new se({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Me.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new se({...this._def,catchall:e})}pick(e){const t={};return r.objectKeys(e).forEach((n=>{e[n]&&this.shape[n]&&(t[n]=this.shape[n])})),new se({...this._def,shape:()=>t})}omit(e){const t={};return r.objectKeys(this.shape).forEach((n=>{e[n]||(t[n]=this.shape[n])})),new se({...this._def,shape:()=>t})}deepPartial(){return ae(this)}partial(e){const t={};return r.objectKeys(this.shape).forEach((n=>{const r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()})),new se({...this._def,shape:()=>t})}required(e){const t={};return r.objectKeys(this.shape).forEach((n=>{if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof Ee;)e=e._def.innerType;t[n]=e}})),new se({...this._def,shape:()=>t})}keyof(){return xe(r.objectKeys(this.shape))}}se.create=(e,t)=>new se({shape:()=>e,unknownKeys:"strip",catchall:re.create(),typeName:Me.ZodObject,...k(t)}),se.strictCreate=(e,t)=>new se({shape:()=>e,unknownKeys:"strict",catchall:re.create(),typeName:Me.ZodObject,...k(t)}),se.lazycreate=(e,t)=>new se({shape:e,unknownKeys:"strip",catchall:re.create(),typeName:Me.ZodObject,...k(t)});class le extends j{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;if(t.common.async)return Promise.all(n.map((async e=>{const n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}}))).then((function(e){for(const t of e)if("valid"===t.result.status)return t.result;for(const r of e)if("dirty"===r.result.status)return t.common.issues.push(...r.ctx.common.issues),r.result;const n=e.map((e=>new l(e.ctx.common.issues)));return p(t,{code:s.invalid_union,unionErrors:n}),m}));{let e;const r=[];for(const o of n){const n={...t,common:{...t.common,issues:[]},parent:null},i=o._parseSync({data:t.data,path:t.path,parent:n});if("valid"===i.status)return i;"dirty"!==i.status||e||(e={result:i,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;const i=r.map((e=>new l(e)));return p(t,{code:s.invalid_union,unionErrors:i}),m}}get options(){return this._def.options}}le.create=(e,t)=>new le({options:e,typeName:Me.ZodUnion,...k(t)});const ce=e=>e instanceof ye?ce(e.schema):e instanceof Ce?ce(e.innerType()):e instanceof be?[e.value]:e instanceof we?e.options:e instanceof Se?r.objectValues(e.enum):e instanceof Oe?ce(e._def.innerType):e instanceof J?[void 0]:e instanceof ee?[null]:e instanceof Ee?[void 0,...ce(e.unwrap())]:e instanceof Te?[null,...ce(e.unwrap())]:e instanceof Ie||e instanceof De?ce(e.unwrap()):e instanceof Ne?ce(e._def.innerType):[];class ue extends j{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==o.object)return p(t,{code:s.invalid_type,expected:o.object,received:t.parsedType}),m;const n=this.discriminator,r=t.data[n],i=this.optionsMap.get(r);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(p(t,{code:s.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),m)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const r=new Map;for(const i of t){const t=ce(i.shape[e]);if(!t.length)throw new Error("A discriminator value for key `".concat(e,"` could not be extracted from all schema options"));for(const n of t){if(r.has(n))throw new Error("Discriminator property ".concat(String(e)," has duplicate value ").concat(String(n)));r.set(n,i)}}return new ue({typeName:Me.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:r,...k(n)})}}function de(e,t){const n=a(e),i=a(t);if(e===t)return{valid:!0,data:e};if(n===o.object&&i===o.object){const n=r.objectKeys(t),i=r.objectKeys(e).filter((e=>-1!==n.indexOf(e))),o={...e,...t};for(const r of i){const n=de(e[r],t[r]);if(!n.valid)return{valid:!1};o[r]=n.data}return{valid:!0,data:o}}if(n===o.array&&i===o.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let r=0;r<e.length;r++){const i=de(e[r],t[r]);if(!i.valid)return{valid:!1};n.push(i.data)}return{valid:!0,data:n}}return n===o.date&&i===o.date&&+e===+t?{valid:!0,data:e}:{valid:!1}}class he extends j{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(y(e)||y(r))return m;const i=de(e.value,r.value);return i.valid?((b(e)||b(r))&&t.dirty(),{status:t.value,value:i.data}):(p(n,{code:s.invalid_intersection_types}),m)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then((e=>{let[t,n]=e;return r(t,n)})):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}he.create=(e,t,n)=>new he({left:e,right:t,typeName:Me.ZodIntersection,...k(n)});class pe extends j{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==o.array)return p(n,{code:s.invalid_type,expected:o.array,received:n.parsedType}),m;if(n.data.length<this._def.items.length)return p(n,{code:s.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),m;!this._def.rest&&n.data.length>this._def.items.length&&(p(n,{code:s.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const r=[...n.data].map(((e,t)=>{const r=this._def.items[t]||this._def.rest;return r?r._parse(new O(n,e,n.path,t)):null})).filter((e=>!!e));return n.common.async?Promise.all(r).then((e=>f.mergeArray(t,e))):f.mergeArray(t,r)}get items(){return this._def.items}rest(e){return new pe({...this._def,rest:e})}}pe.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new pe({items:e,typeName:Me.ZodTuple,rest:null,...k(t)})};class fe extends j{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==o.object)return p(n,{code:s.invalid_type,expected:o.object,received:n.parsedType}),m;const r=[],i=this._def.keyType,a=this._def.valueType;for(const o in n.data)r.push({key:i._parse(new O(n,o,n.path,o)),value:a._parse(new O(n,n.data[o],n.path,o)),alwaysSet:o in n.data});return n.common.async?f.mergeObjectAsync(t,r):f.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,n){return new fe(t instanceof j?{keyType:e,valueType:t,typeName:Me.ZodRecord,...k(n)}:{keyType:q.create(),valueType:e,typeName:Me.ZodRecord,...k(t)})}}class me extends j{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==o.map)return p(n,{code:s.invalid_type,expected:o.map,received:n.parsedType}),m;const r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(((e,t)=>{let[o,a]=e;return{key:r._parse(new O(n,o,n.path,[t,"key"])),value:i._parse(new O(n,a,n.path,[t,"value"]))}}));if(n.common.async){const e=new Map;return Promise.resolve().then((async()=>{for(const n of a){const r=await n.key,i=await n.value;if("aborted"===r.status||"aborted"===i.status)return m;"dirty"!==r.status&&"dirty"!==i.status||t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}))}{const e=new Map;for(const n of a){const r=n.key,i=n.value;if("aborted"===r.status||"aborted"===i.status)return m;"dirty"!==r.status&&"dirty"!==i.status||t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}}me.create=(e,t,n)=>new me({valueType:t,keyType:e,typeName:Me.ZodMap,...k(n)});class ge extends j{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==o.set)return p(n,{code:s.invalid_type,expected:o.set,received:n.parsedType}),m;const r=this._def;null!==r.minSize&&n.data.size<r.minSize.value&&(p(n,{code:s.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),null!==r.maxSize&&n.data.size>r.maxSize.value&&(p(n,{code:s.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());const i=this._def.valueType;function a(e){const n=new Set;for(const r of e){if("aborted"===r.status)return m;"dirty"===r.status&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}const l=[...n.data.values()].map(((e,t)=>i._parse(new O(n,e,n.path,t))));return n.common.async?Promise.all(l).then((e=>a(e))):a(l)}min(e,t){return new ge({...this._def,minSize:{value:e,message:C.toString(t)}})}max(e,t){return new ge({...this._def,maxSize:{value:e,message:C.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}ge.create=(e,t)=>new ge({valueType:e,minSize:null,maxSize:null,typeName:Me.ZodSet,...k(t)});class ve extends j{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==o.function)return p(t,{code:s.invalid_type,expected:o.function,received:t.parsedType}),m;function n(e,n){return h({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,d(),c].filter((e=>!!e)),issueData:{code:s.invalid_arguments,argumentsError:n}})}function r(e,n){return h({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,d(),c].filter((e=>!!e)),issueData:{code:s.invalid_return_type,returnTypeError:n}})}const i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof _e){const e=this;return v((async function(){for(var t=arguments.length,o=new Array(t),s=0;s<t;s++)o[s]=arguments[s];const c=new l([]),u=await e._def.args.parseAsync(o,i).catch((e=>{throw c.addIssue(n(o,e)),c})),d=await Reflect.apply(a,this,u);return await e._def.returns._def.type.parseAsync(d,i).catch((e=>{throw c.addIssue(r(d,e)),c}))}))}{const e=this;return v((function(){for(var t=arguments.length,o=new Array(t),s=0;s<t;s++)o[s]=arguments[s];const c=e._def.args.safeParse(o,i);if(!c.success)throw new l([n(o,c.error)]);const u=Reflect.apply(a,this,c.data),d=e._def.returns.safeParse(u,i);if(!d.success)throw new l([r(u,d.error)]);return d.data}))}}parameters(){return this._def.args}returnType(){return this._def.returns}args(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new ve({...this._def,args:pe.create(t).rest(ne.create())})}returns(e){return new ve({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new ve({args:e||pe.create([]).rest(ne.create()),returns:t||ne.create(),typeName:Me.ZodFunction,...k(n)})}}class ye extends j{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}ye.create=(e,t)=>new ye({getter:e,typeName:Me.ZodLazy,...k(t)});class be extends j{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return p(t,{received:t.data,code:s.invalid_literal,expected:this._def.value}),m}return{status:"valid",value:e.data}}get value(){return this._def.value}}function xe(e,t){return new we({values:e,typeName:Me.ZodEnum,...k(t)})}be.create=(e,t)=>new be({value:e,typeName:Me.ZodLiteral,...k(t)});class we extends j{constructor(){super(...arguments),E.set(this,void 0)}_parse(e){if("string"!==typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return p(t,{expected:r.joinValues(n),received:t.parsedType,code:s.invalid_type}),m}if(S(this,E,"f")||_(this,E,new Set(this._def.values),"f"),!S(this,E,"f").has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return p(t,{received:t.data,code:s.invalid_enum_value,options:n}),m}return v(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._def;return we.create(e,{...this._def,...t})}exclude(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._def;return we.create(this.options.filter((t=>!e.includes(t))),{...this._def,...t})}}E=new WeakMap,we.create=xe;class Se extends j{constructor(){super(...arguments),T.set(this,void 0)}_parse(e){const t=r.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==o.string&&n.parsedType!==o.number){const e=r.objectValues(t);return p(n,{expected:r.joinValues(e),received:n.parsedType,code:s.invalid_type}),m}if(S(this,T,"f")||_(this,T,new Set(r.getValidEnumValues(this._def.values)),"f"),!S(this,T,"f").has(e.data)){const e=r.objectValues(t);return p(n,{received:n.data,code:s.invalid_enum_value,options:e}),m}return v(e.data)}get enum(){return this._def.values}}T=new WeakMap,Se.create=(e,t)=>new Se({values:e,typeName:Me.ZodNativeEnum,...k(t)});class _e extends j{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==o.promise&&!1===t.common.async)return p(t,{code:s.invalid_type,expected:o.promise,received:t.parsedType}),m;const n=t.parsedType===o.promise?t.data:Promise.resolve(t.data);return v(n.then((e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap}))))}}_e.create=(e,t)=>new _e({type:e,typeName:Me.ZodPromise,...k(t)});class Ce extends j{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Me.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),i=this._def.effect||null,o={addIssue:e=>{p(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(o.addIssue=o.addIssue.bind(o),"preprocess"===i.type){const e=i.transform(n.data,o);if(n.common.async)return Promise.resolve(e).then((async e=>{if("aborted"===t.value)return m;const r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===r.status?m:"dirty"===r.status||"dirty"===t.value?g(r.value):r}));{if("aborted"===t.value)return m;const r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===r.status?m:"dirty"===r.status||"dirty"===t.value?g(r.value):r}}if("refinement"===i.type){const e=e=>{const t=i.refinement(e,o);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===n.common.async){const r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===r.status?m:("dirty"===r.status&&t.dirty(),e(r.value),{status:t.value,value:r.value})}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((n=>"aborted"===n.status?m:("dirty"===n.status&&t.dirty(),e(n.value).then((()=>({status:t.value,value:n.value}))))))}if("transform"===i.type){if(!1===n.common.async){const e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!x(e))return e;const r=i.transform(e.value,o);if(r instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:r}}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then((e=>x(e)?Promise.resolve(i.transform(e.value,o)).then((e=>({status:t.value,value:e}))):e))}r.assertNever(i)}}Ce.create=(e,t,n)=>new Ce({schema:e,typeName:Me.ZodEffects,effect:t,...k(n)}),Ce.createWithPreprocess=(e,t,n)=>new Ce({schema:t,effect:{type:"preprocess",transform:e},typeName:Me.ZodEffects,...k(n)});class Ee extends j{_parse(e){return this._getType(e)===o.undefined?v(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Ee.create=(e,t)=>new Ee({innerType:e,typeName:Me.ZodOptional,...k(t)});class Te extends j{_parse(e){return this._getType(e)===o.null?v(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Te.create=(e,t)=>new Te({innerType:e,typeName:Me.ZodNullable,...k(t)});class Oe extends j{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===o.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}Oe.create=(e,t)=>new Oe({innerType:e,typeName:Me.ZodDefault,defaultValue:"function"===typeof t.default?t.default:()=>t.default,...k(t)});class Ne extends j{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return w(r)?r.then((e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new l(n.common.issues)},input:n.data})}))):{status:"valid",value:"valid"===r.status?r.value:this._def.catchValue({get error(){return new l(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}Ne.create=(e,t)=>new Ne({innerType:e,typeName:Me.ZodCatch,catchValue:"function"===typeof t.catch?t.catch:()=>t.catch,...k(t)});class ke extends j{_parse(e){if(this._getType(e)!==o.nan){const t=this._getOrReturnCtx(e);return p(t,{code:s.invalid_type,expected:o.nan,received:t.parsedType}),m}return{status:"valid",value:e.data}}}ke.create=e=>new ke({typeName:Me.ZodNaN,...k(e)});const je=Symbol("zod_brand");class Ie extends j{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class Pe extends j{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async){return(async()=>{const e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?m:"dirty"===e.status?(t.dirty(),g(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})()}{const e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?m:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(e,t){return new Pe({in:e,out:t,typeName:Me.ZodPipeline})}}class De extends j{_parse(e){const t=this._def.innerType._parse(e),n=e=>(x(e)&&(e.value=Object.freeze(e.value)),e);return w(t)?t.then((e=>n(e))):n(t)}unwrap(){return this._def.innerType}}function Ae(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return e?te.create().superRefine(((r,i)=>{var o,a;if(!e(r)){const e="function"===typeof t?t(r):"string"===typeof t?{message:t}:t,s=null===(a=null!==(o=e.fatal)&&void 0!==o?o:n)||void 0===a||a,l="string"===typeof e?{message:e}:e;i.addIssue({code:"custom",...l,fatal:s})}})):te.create()}De.create=(e,t)=>new De({innerType:e,typeName:Me.ZodReadonly,...k(t)});const Re={object:se.lazycreate};var Me;!function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(Me||(Me={}));const Le=q.create,Fe=Y.create,ze=ke.create,Be=K.create,Ue=Q.create,He=X.create,Ve=$.create,Ge=J.create,We=ee.create,qe=te.create,Ze=ne.create,Ye=re.create,Ke=ie.create,Qe=oe.create,Xe=se.create,$e=se.strictCreate,Je=le.create,et=ue.create,tt=he.create,nt=pe.create,rt=fe.create,it=me.create,ot=ge.create,at=ve.create,st=ye.create,lt=be.create,ct=we.create,ut=Se.create,dt=_e.create,ht=Ce.create,pt=Ee.create,ft=Te.create,mt=Ce.createWithPreprocess,gt=Pe.create,vt={string:e=>q.create({...e,coerce:!0}),number:e=>Y.create({...e,coerce:!0}),boolean:e=>Q.create({...e,coerce:!0}),bigint:e=>K.create({...e,coerce:!0}),date:e=>X.create({...e,coerce:!0})},yt=m;var bt=Object.freeze({__proto__:null,defaultErrorMap:c,setErrorMap:function(e){u=e},getErrorMap:d,makeIssue:h,EMPTY_PATH:[],addIssueToContext:p,ParseStatus:f,INVALID:m,DIRTY:g,OK:v,isAborted:y,isDirty:b,isValid:x,isAsync:w,get util(){return r},get objectUtil(){return i},ZodParsedType:o,getParsedType:a,ZodType:j,datetimeRegex:W,ZodString:q,ZodNumber:Y,ZodBigInt:K,ZodBoolean:Q,ZodDate:X,ZodSymbol:$,ZodUndefined:J,ZodNull:ee,ZodAny:te,ZodUnknown:ne,ZodNever:re,ZodVoid:ie,ZodArray:oe,ZodObject:se,ZodUnion:le,ZodDiscriminatedUnion:ue,ZodIntersection:he,ZodTuple:pe,ZodRecord:fe,ZodMap:me,ZodSet:ge,ZodFunction:ve,ZodLazy:ye,ZodLiteral:be,ZodEnum:we,ZodNativeEnum:Se,ZodPromise:_e,ZodEffects:Ce,ZodTransformer:Ce,ZodOptional:Ee,ZodNullable:Te,ZodDefault:Oe,ZodCatch:Ne,ZodNaN:ke,BRAND:je,ZodBranded:Ie,ZodPipeline:Pe,ZodReadonly:De,custom:Ae,Schema:j,ZodSchema:j,late:Re,get ZodFirstPartyTypeKind(){return Me},coerce:vt,any:qe,array:Qe,bigint:Be,boolean:Ue,date:He,discriminatedUnion:et,effect:ht,enum:ct,function:at,instanceof:function(e){return Ae((t=>t instanceof e),arguments.length>1&&void 0!==arguments[1]?arguments[1]:{message:"Input not instance of ".concat(e.name)})},intersection:tt,lazy:st,literal:lt,map:it,nan:ze,nativeEnum:ut,never:Ye,null:We,nullable:ft,number:Fe,object:Xe,oboolean:()=>Ue().optional(),onumber:()=>Fe().optional(),optional:pt,ostring:()=>Le().optional(),pipeline:gt,preprocess:mt,promise:dt,record:rt,set:ot,strictObject:$e,string:Le,symbol:Ve,transformer:ht,tuple:nt,undefined:Ge,union:Je,unknown:Ze,void:Ke,NEVER:yt,ZodIssueCode:s,quotelessJson:e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),ZodError:l})}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.m=e,n.amdO={},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;n.t=function(r,i){if(1&i&&(r=this(r)),8&i)return r;if("object"===typeof r&&r){if(4&i&&r.__esModule)return r;if(16&i&&"function"===typeof r.then)return r}var o=Object.create(null);n.r(o);var a={};e=e||[null,t({}),t([]),t(t)];for(var s=2&i&&r;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach((e=>a[e]=()=>r[e]));return a.default=()=>r,n.d(o,a),o}})(),n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,r)=>(n.f[r](e,t),t)),[])),n.u=e=>"static/js/"+e+"."+{30:"b097cbb4",86:"ad271bdc",96:"6e1bf3f4",115:"2c4de87e",148:"b60f0e5e",163:"eea01641",178:"e0df04cc",185:"7d51fcfa",202:"52f13cd5",214:"99a17949",328:"f24db8bf",337:"b6fc715e",358:"d6300019",383:"4faec08b",425:"c6dd581a",436:"564ff0f8",451:"3b449e79",515:"cd9a8a90",556:"55f00ac6",598:"243fd68d",599:"c58caf58",619:"f27ddcbd",620:"7aea5425",632:"b6c03857",674:"e6536250",678:"b73063ff",704:"45771d88",785:"d2eae69c",919:"53e04507",924:"382f18b1",1148:"3c629236",1150:"2b47004d",1155:"4fce1854",1168:"91d9e2c2",1179:"15d7ac65",1278:"c0717a20",1350:"21b6a9ef",1478:"5044be66",1508:"f0158935",1528:"2a39d066",1551:"2e8e3e50",1616:"8a217b93",1736:"9f4a6b02",1746:"a8ba5c62",1747:"b4331799",1869:"d6661a03",1956:"0205a5bb",2033:"5c6dfca9",2104:"4f22ecac",2118:"bc169874",2141:"26c930aa",2183:"e2318c37",2190:"27f354f5",2194:"38bafdfc",2223:"63ae5a05",2229:"6687fc46",2238:"3cf88b79",2302:"7e7a2fb4",2322:"29255c22",2367:"052e678b",2403:"82cd0025",2435:"092e8d7f",2477:"e6121bfd",2492:"64b7d727",2521:"21bdfab9",2532:"30bb087d",2553:"5faabf5a",2590:"75b6626e",2620:"8e5c52fb",2677:"3d7ea3fc",2701:"86912840",2840:"b69eb597",2876:"afe7e47f",2931:"3ade3bc3",2962:"66e01691",2981:"6d027811",2986:"2100fcad",2994:"e6c77407",3025:"7e536c57",3074:"bbb8aaef",3231:"65396654",3271:"7b005742",3304:"f5897a96",3333:"ceb196e6",3358:"c777fe1f",3397:"9c0005a3",3457:"b193afe6",3466:"98f036ac",3498:"c7d39060",3621:"9b6c61ab",3630:"8eda2d3f",3644:"aeda46ca",3645:"bdd20200",3756:"67bd6b00",3757:"7c534899",3771:"764124c3",3898:"1fec42e6",3920:"11b8c9d7",3926:"8f2c9741",3945:"054c871d",4046:"5dac72a9",4080:"07be3744",4123:"64882a16",4132:"04be158e",4159:"5e0cfd91",4198:"d0671061",4326:"d5c34c54",4345:"9238776d",4347:"adf03999",4388:"edb51304",4535:"5d1c8322",4550:"2e04d705",4583:"1682cf86",4618:"131d9563",4635:"ffa9b6b7",4663:"b893c670",4684:"27f737c4",4789:"d52069de",4812:"73af8448",4814:"11309069",4826:"d2723706",4842:"57182d38",4848:"64f47dc3",4949:"6bf46e71",4964:"c7c75eb0",4983:"f6502102",4985:"991de003",5107:"8cac6a03",5112:"6189bbe0",5117:"896f7ffb",5161:"45b4f520",5168:"6fb23f08",5226:"675d55fb",5311:"a500a1ea",5341:"2c19c723",5352:"3d3187b7",5373:"90c95a6e",5378:"86805fba",5387:"8af1d694",5399:"f9398084",5448:"cef3c129",5450:"f0dcfc15",5491:"a460479e",5643:"00957838",5661:"c83a4eb0",5670:"5c30cef1",5720:"39a954f1",5790:"e3d88e2c",5809:"d78ebebb",5863:"e2cd2452",5868:"be04313a",6044:"2de9962d",6058:"7f474f92",6065:"b08e9640",6142:"b2452554",6144:"e1568f26",6156:"0c562627",6227:"fc562bbf",6230:"8e64216a",6289:"51f8741e",6291:"e7cdf7f2",6300:"dca75d45",6321:"aa3e44de",6329:"d78c1432",6361:"a9f11e7a",6390:"497d0ec8",6392:"134ee5e4",6393:"b0de2d9e",6521:"371403ec",6531:"7eac62d1",6619:"9e1de7a6",6679:"6e0a87d5",6692:"9322b59d",6795:"5ec0c96a",6815:"672badd5",6876:"867b698c",6877:"d2d51d98",6887:"0855fd66",6892:"2c3c2bcb",6898:"5580b941",6919:"84ed9ccc",6954:"e18be130",6961:"f4888ae1",7016:"4a34a027",7119:"e94f8dac",7202:"fefd43ee",7257:"8ce0d045",7276:"47f377a4",7388:"9f447514",7409:"4408962b",7520:"d245d6ac",7522:"1a0f9c02",7529:"ddf87a9a",7543:"3fcfd3ba",7554:"28f3da22",7645:"6565454c",7684:"a3920b72",7779:"9d9b07ae",7803:"a56cfca6",7992:"20690745",7999:"bdf4fe79",8011:"4fed4307",8065:"666ef449",8133:"2afc4db4",8140:"8d8e9309",8167:"b9a90da5",8424:"5b5c42b5",8450:"baf3a89d",8591:"93172fe9",8607:"1e377882",8622:"49f3054c",8695:"f17f8853",8702:"69a3e0d5",8747:"baf63d86",8791:"b209de42",8797:"f8f0ce13",8850:"97635389",8853:"c8f9e9d6",8858:"cd9d49a5",8905:"b8a9fd91",9101:"ce051539",9173:"71d773f2",9204:"77418f94",9207:"5881b206",9212:"870f16f0",9219:"24a20881",9280:"40cff028",9292:"91ed23f7",9297:"eadc4dba",9308:"c72b8585",9319:"40f9e46a",9371:"b42befbc",9411:"96fb3e2f",9413:"b2921c36",9433:"7ce648d0",9526:"10bb1684",9528:"9991c023",9555:"c9b5ee61",9572:"9f83f004",9621:"48073631",9876:"b336d1f5",9917:"67d792e3",9923:"270f0a19"}[e]+".chunk.js",n.miniCssF=e=>"static/css/"+e+"."+{328:"c0ade9c1",1551:"d5e5efc2",4983:"5c3e5de4",8424:"308a04db"}[e]+".chunk.css",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.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="ydb-embedded-ui:";n.l=(r,i,o,a)=>{if(e[r])e[r].push(i);else{var s,l;if(void 0!==o)for(var c=document.getElementsByTagName("script"),u=0;u<c.length;u++){var d=c[u];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==t+o){s=d;break}}s||(l=!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=r),e[r]=[i];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=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),l&&document.head.appendChild(s)}}})(),n.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="./",(()=>{if("undefined"!==typeof document){var e=e=>new Promise(((t,r)=>{var i=n.miniCssF(e),o=n.p+i;if(((e,t)=>{for(var n=document.getElementsByTagName("link"),r=0;r<n.length;r++){var i=(a=n[r]).getAttribute("data-href")||a.getAttribute("href");if("stylesheet"===a.rel&&(i===e||i===t))return a}var o=document.getElementsByTagName("style");for(r=0;r<o.length;r++){var a;if((i=(a=o[r]).getAttribute("data-href"))===e||i===t)return a}})(i,o))return t();((e,t,n,r,i)=>{var o=document.createElement("link");o.rel="stylesheet",o.type="text/css",o.onerror=o.onload=n=>{if(o.onerror=o.onload=null,"load"===n.type)r();else{var a=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.href||t,l=new Error("Loading CSS chunk "+e+" failed.\n("+s+")");l.code="CSS_CHUNK_LOAD_FAILED",l.type=a,l.request=s,o.parentNode.removeChild(o),i(l)}},o.href=t,n?n.parentNode.insertBefore(o,n.nextSibling):document.head.appendChild(o)})(e,o,null,t,r)})),t={179:0};n.f.miniCss=(n,r)=>{t[n]?r.push(t[n]):0!==t[n]&&{328:1,1551:1,4983:1,8424:1}[n]&&r.push(t[n]=e(n).then((()=>{t[n]=0}),(e=>{throw delete t[n],e})))}}})(),(()=>{var e={179:0};n.f.j=(t,r)=>{var i=n.o(e,t)?e[t]:void 0;if(0!==i)if(i)r.push(i[2]);else if(4983!=t){var o=new Promise(((n,r)=>i=e[t]=[n,r]));r.push(i[2]=o);var a=n.p+n.u(t),s=new Error;n.l(a,(r=>{if(n.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,i[1](s)}}),"chunk-"+t,t)}else e[t]=0};var t=(t,r)=>{var i,o,a=r[0],s=r[1],l=r[2],c=0;if(a.some((t=>0!==e[t]))){for(i in s)n.o(s,i)&&(n.m[i]=s[i]);if(l)l(n)}for(t&&t(r);c<a.length;c++)o=a[c],n.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self.webpackChunkydb_embedded_ui=self.webpackChunkydb_embedded_ui||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";var e=n(63609),t=n(36084),r=n(90058),i=n(67510);const{store:o,history:a}=(0,i.xC)();var s=n(75859);!async function(){let r;r=await Promise.resolve().then(n.bind(n,36084)).then((e=>{let{SingleClusterApp:t}=e;return t}));const i=document.getElementById("root");if(!i)throw new Error("Can't find root element");e.createRoot(i).render((0,s.jsx)(t.ErrorBoundary,{children:(0,s.jsx)(r,{store:o,history:a})}))}(),(0,r.Z)()})()})(); \ No newline at end of file diff --git a/ydb/core/viewer/monitoring/static/js/main.62a60ecb.js.LICENSE.txt b/ydb/core/viewer/monitoring/static/js/main.62a60ecb.js.LICENSE.txt new file mode 100644 index 000000000000..55aa6eb2a480 --- /dev/null +++ b/ydb/core/viewer/monitoring/static/js/main.62a60ecb.js.LICENSE.txt @@ -0,0 +1,113 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/*! +* focus-trap 7.5.4 +* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE +*/ + +/*! +* tabbable 6.2.0 +* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE +*/ + +/*! @preserve + * numeral.js + * locales : 2.0.6 + * license : MIT + * http://adamwdraper.github.com/Numeral-js/ + */ + +/*! @preserve + * numeral.js + * version : 2.0.6 + * author : Adam Draper + * license : MIT + * http://adamwdraper.github.com/Numeral-js/ + */ + +/*! Fabric.js Copyright 2008-2015, Printio (Juriy Zaytsev, Maxim Chernyak) */ + +/*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */ + +/*! https://mths.be/punycode v1.4.1 by @mathias */ + +/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * use-sync-external-store-with-selector.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v17.0.2 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/ydb/core/viewer/monitoring/static/media/codicon.762fced46d6cddbda272.ttf b/ydb/core/viewer/monitoring/static/media/codicon.762fced46d6cddbda272.ttf new file mode 100644 index 000000000000..57eda48f1db7 Binary files /dev/null and b/ydb/core/viewer/monitoring/static/media/codicon.762fced46d6cddbda272.ttf differ diff --git a/ydb/core/viewer/monitoring/static/media/codicon.80a4c25b73c1f97077ed.ttf b/ydb/core/viewer/monitoring/static/media/codicon.80a4c25b73c1f97077ed.ttf deleted file mode 100644 index 016e9a1e000a..000000000000 Binary files a/ydb/core/viewer/monitoring/static/media/codicon.80a4c25b73c1f97077ed.ttf and /dev/null differ diff --git a/ydb/core/viewer/protos/CMakeLists.darwin-arm64.txt b/ydb/core/viewer/protos/CMakeLists.darwin-arm64.txt index 9928b65a1d79..b90ba880f370 100644 --- a/ydb/core/viewer/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/core/viewer/protos/CMakeLists.darwin-arm64.txt @@ -29,6 +29,9 @@ target_link_libraries(core-viewer-protos PUBLIC target_proto_messages(core-viewer-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/viewer/protos/viewer.proto ) +target_sources(core-viewer-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/viewer/protos/viewer.pb.h +) target_proto_addincls(core-viewer-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/viewer/protos/CMakeLists.darwin-x86_64.txt b/ydb/core/viewer/protos/CMakeLists.darwin-x86_64.txt index 9928b65a1d79..b90ba880f370 100644 --- a/ydb/core/viewer/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/viewer/protos/CMakeLists.darwin-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(core-viewer-protos PUBLIC target_proto_messages(core-viewer-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/viewer/protos/viewer.proto ) +target_sources(core-viewer-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/viewer/protos/viewer.pb.h +) target_proto_addincls(core-viewer-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/viewer/protos/CMakeLists.linux-aarch64.txt b/ydb/core/viewer/protos/CMakeLists.linux-aarch64.txt index c7fe09bce363..8f2ceafae135 100644 --- a/ydb/core/viewer/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/core/viewer/protos/CMakeLists.linux-aarch64.txt @@ -30,6 +30,9 @@ target_link_libraries(core-viewer-protos PUBLIC target_proto_messages(core-viewer-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/viewer/protos/viewer.proto ) +target_sources(core-viewer-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/viewer/protos/viewer.pb.h +) target_proto_addincls(core-viewer-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/viewer/protos/CMakeLists.linux-x86_64.txt b/ydb/core/viewer/protos/CMakeLists.linux-x86_64.txt index c7fe09bce363..8f2ceafae135 100644 --- a/ydb/core/viewer/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/core/viewer/protos/CMakeLists.linux-x86_64.txt @@ -30,6 +30,9 @@ target_link_libraries(core-viewer-protos PUBLIC target_proto_messages(core-viewer-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/viewer/protos/viewer.proto ) +target_sources(core-viewer-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/viewer/protos/viewer.pb.h +) target_proto_addincls(core-viewer-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/viewer/protos/CMakeLists.windows-x86_64.txt b/ydb/core/viewer/protos/CMakeLists.windows-x86_64.txt index 9928b65a1d79..b90ba880f370 100644 --- a/ydb/core/viewer/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/core/viewer/protos/CMakeLists.windows-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(core-viewer-protos PUBLIC target_proto_messages(core-viewer-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/viewer/protos/viewer.proto ) +target_sources(core-viewer-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/viewer/protos/viewer.pb.h +) target_proto_addincls(core-viewer-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/viewer/protos/viewer.proto b/ydb/core/viewer/protos/viewer.proto index 62218dde8ac5..61d0bc3ce413 100644 --- a/ydb/core/viewer/protos/viewer.proto +++ b/ydb/core/viewer/protos/viewer.proto @@ -561,7 +561,7 @@ message TEvDescribeSchemeInfo { optional string Reason = 2; optional string Path = 3; optional NKikimrSchemeOp.TPathDescription PathDescription = 4; - optional fixed64 PathOwner = 5; + optional fixed64 DEPRECATED_PathOwner = 5; // replaced by PathOwnerId optional fixed64 PathId = 6; optional string LastExistedPrefixPath = 7; diff --git a/ydb/core/viewer/ut/CMakeLists.darwin-arm64.txt b/ydb/core/viewer/ut/CMakeLists.darwin-arm64.txt index 9d90a2c34433..27cd76b84b93 100644 --- a/ydb/core/viewer/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/viewer/ut/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-core-viewer-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-viewer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/viewer/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/viewer/ut/CMakeLists.darwin-x86_64.txt index af1da2c045ea..16e116e0777d 100644 --- a/ydb/core/viewer/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/viewer/ut/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-viewer-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-viewer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/viewer/ut/CMakeLists.linux-aarch64.txt b/ydb/core/viewer/ut/CMakeLists.linux-aarch64.txt index eba7834f9690..3863c33d6646 100644 --- a/ydb/core/viewer/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/viewer/ut/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-core-viewer-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-viewer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/viewer/ut/CMakeLists.linux-x86_64.txt b/ydb/core/viewer/ut/CMakeLists.linux-x86_64.txt index 5303204d4f0f..11beb0461b1c 100644 --- a/ydb/core/viewer/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/viewer/ut/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-viewer-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-viewer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/viewer/viewer_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/viewer/ut/CMakeLists.windows-x86_64.txt b/ydb/core/viewer/ut/CMakeLists.windows-x86_64.txt index 57213c4074ab..e2062ad1d105 100644 --- a/ydb/core/viewer/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/viewer/ut/CMakeLists.windows-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/viewer/ut/ya.make b/ydb/core/viewer/ut/ya.make index 305ff23d21c6..fdd4406ca5af 100644 --- a/ydb/core/viewer/ut/ya.make +++ b/ydb/core/viewer/ut/ya.make @@ -13,6 +13,8 @@ SRCS( ) PEERDIR( + library/cpp/http/misc + library/cpp/http/simple ydb/core/testlib/default ) diff --git a/ydb/core/viewer/viewer.cpp b/ydb/core/viewer/viewer.cpp index 65279dd2cbeb..42f71ad27ddb 100644 --- a/ydb/core/viewer/viewer.cpp +++ b/ydb/core/viewer/viewer.cpp @@ -152,9 +152,11 @@ class TViewer : public TActorBootstrapped<TViewer>, public IViewer { TString GetCORS(const NMon::TEvHttpInfo* request) override; TString GetHTTPOKJSON(const NMon::TEvHttpInfo* request, TString response) override; + TString GetHTTPOKTEXT(const NMon::TEvHttpInfo* request, TString response) override; TString GetHTTPOK(const NMon::TEvHttpInfo* request, TString type, TString response) override; TString GetHTTPGATEWAYTIMEOUT(const NMon::TEvHttpInfo* request) override; TString GetHTTPBADREQUEST(const NMon::TEvHttpInfo* request, TString type, TString response) override; + TString GetHTTPFORBIDDEN(const NMon::TEvHttpInfo* request) override; void RegisterVirtualHandler( NKikimrViewer::EObjectType parentObjectType, @@ -467,6 +469,22 @@ TString TViewer::GetHTTPOKJSON(const NMon::TEvHttpInfo* request, TString respons return res; } +TString TViewer::GetHTTPOKTEXT(const NMon::TEvHttpInfo* request, TString response) { + TStringBuilder res; + res << "HTTP/1.1 200 Ok\r\n" + << "Content-Type: text/plain; charset=utf-8\r\n" + << "X-Worker-Name: " << CurrentWorkerName << "\r\n"; + res << GetCORS(request); + if (response) { + res << "Content-Length: " << response.size() << "\r\n"; + } + res << "\r\n"; + if (response) { + res << response; + } + return res; +} + TString TViewer::GetHTTPGATEWAYTIMEOUT(const NMon::TEvHttpInfo* request) { TStringBuilder res; res << "HTTP/1.1 504 Gateway Time-out\r\n" @@ -492,6 +510,16 @@ TString TViewer::GetHTTPBADREQUEST(const NMon::TEvHttpInfo* request, TString con return res; } +TString TViewer::GetHTTPFORBIDDEN(const NMon::TEvHttpInfo* request) { + TStringBuilder res; + res << "HTTP/1.1 403 Forbidden\r\n" + << "Content-Type: application/json; charset=utf-8\r\n" + << "Connection: Close\r\n"; + res << GetCORS(request); + res << "\r\n"; + return res; +} + TString TViewer::GetHTTPOK(const NMon::TEvHttpInfo* request, TString contentType = {}, TString response = {}) { TStringBuilder res; res << "HTTP/1.1 200 Ok\r\n" diff --git a/ydb/core/viewer/viewer.h b/ydb/core/viewer/viewer.h index 7fdab30f8332..fd58e6d8f535 100644 --- a/ydb/core/viewer/viewer.h +++ b/ydb/core/viewer/viewer.h @@ -156,8 +156,10 @@ class IViewer { virtual TString GetCORS(const NMon::TEvHttpInfo* request) = 0; virtual TString GetHTTPOK(const NMon::TEvHttpInfo* request, TString contentType = {}, TString response = {}) = 0; virtual TString GetHTTPOKJSON(const NMon::TEvHttpInfo* request, TString response = {}) = 0; + virtual TString GetHTTPOKTEXT(const NMon::TEvHttpInfo* request, TString response = {}) = 0; virtual TString GetHTTPGATEWAYTIMEOUT(const NMon::TEvHttpInfo* request) = 0; virtual TString GetHTTPBADREQUEST(const NMon::TEvHttpInfo* request, TString contentType = {}, TString response = {}) = 0; + virtual TString GetHTTPFORBIDDEN(const NMon::TEvHttpInfo* request) = 0; }; void SetupPQVirtualHandlers(IViewer* viewer); @@ -184,12 +186,6 @@ struct TJsonRequestParameters { static TString GetParameters() { return TString(); } }; -static const char HTTPOKJSON[] = "HTTP/1.1 200 Ok\r\nAccess-Control-Allow-Origin: *\r\nContent-Type: application/json; charset=utf-8\r\nConnection: Close\r\n\r\n"; -static const char HTTPOKTEXT[] = "HTTP/1.1 200 Ok\r\nAccess-Control-Allow-Origin: *\r\nContent-Type: text/plain; charset=utf-8\r\nConnection: Close\r\n\r\n"; -static const char HTTPFORBIDDENJSON[] = "HTTP/1.1 403 Forbidden\r\nAccess-Control-Allow-Origin: *\r\nContent-Type: application/json; charset=utf-8\r\nConnection: Close\r\n\r\n"; -static const char HTTPGATEWAYTIMEOUT[] = "HTTP/1.1 504 Gateway Time-out\r\nConnection: Close\r\n\r\nGateway Time-out\r\n"; -static const char HTTPBADREQUEST[] = "HTTP/1.1 400 Bad Request\r\nConnection: Close\r\n\r\nBad Request\r\n"; - template <typename ValueType, typename OutputIteratorType> void GenericSplitIds(TStringBuf source, char delim, OutputIteratorType it) { for (TStringBuf value = source.NextTok(delim); !value.empty(); value = source.NextTok(delim)) { diff --git a/ydb/core/viewer/viewer_request.cpp b/ydb/core/viewer/viewer_request.cpp index ef8892d78777..ee4ebb7054e1 100644 --- a/ydb/core/viewer/viewer_request.cpp +++ b/ydb/core/viewer/viewer_request.cpp @@ -83,5 +83,22 @@ IActor* CreateViewerRequestHandler(TEvViewer::TEvViewerRequest::TPtr& request) { return nullptr; } +bool IsPostContent(const NMon::TEvHttpInfo::TPtr& event) { + if (event->Get()->Request.GetMethod() == HTTP_METHOD_POST) { + const THttpHeaders& headers = event->Get()->Request.GetHeaders(); + + auto itContentType = FindIf(headers, [](const auto& header) { + return AsciiEqualsIgnoreCase(header.Name(), "Content-Type"); + }); + + if (itContentType != headers.end()) { + TStringBuf contentTypeHeader = itContentType->Value(); + TStringBuf contentType = contentTypeHeader.NextTok(';'); + return contentType == "application/json"; + } + } + return false; +} + } } diff --git a/ydb/core/viewer/viewer_request.h b/ydb/core/viewer/viewer_request.h index b8b9f0f74767..6516dbb59d18 100644 --- a/ydb/core/viewer/viewer_request.h +++ b/ydb/core/viewer/viewer_request.h @@ -38,6 +38,7 @@ union ViewerWhiteboardCookie { }; IActor* CreateViewerRequestHandler(TEvViewer::TEvViewerRequest::TPtr& request); +bool IsPostContent(const NMon::TEvHttpInfo::TPtr& event); } } diff --git a/ydb/core/viewer/viewer_ut.cpp b/ydb/core/viewer/viewer_ut.cpp index 6fbcfba9583a..0fe4366afd00 100644 --- a/ydb/core/viewer/viewer_ut.cpp +++ b/ydb/core/viewer/viewer_ut.cpp @@ -2,6 +2,8 @@ #include <library/cpp/testing/unittest/tests_data.h> #include <ydb/library/actors/interconnect/interconnect.h> #include <ydb/library/actors/helpers/selfping_actor.h> +#include <library/cpp/http/misc/httpcodes.h> +#include <library/cpp/http/simple/http_client.h> #include <library/cpp/json/json_value.h> #include <library/cpp/json/json_reader.h> #include <util/stream/null.h> @@ -21,6 +23,8 @@ #include <ydb/core/node_whiteboard/node_whiteboard.h> #include <ydb/library/actors/core/interconnect.h> +#include <util/string/builder.h> + using namespace NKikimr; using namespace NViewer; using namespace NKikimrWhiteboard; @@ -601,6 +605,89 @@ Y_UNIT_TEST_SUITE(Viewer) { StorageSpaceTest("space", NKikimrWhiteboard::EFlag::Green, 90, 100, true); } + const TPathId SHARED_DOMAIN_KEY = {7000000000, 1}; + const TPathId SERVERLESS_DOMAIN_KEY = {7000000000, 2}; + const TPathId SERVERLESS_TABLE = {7000000001, 2}; + + void ChangeNavigateKeySetResultServerless(TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr* ev, + TTestActorRuntime& runtime) { + TSchemeCacheNavigate::TEntry& entry((*ev)->Get()->Request->ResultSet.front()); + TString path = CanonizePath(entry.Path); + if (path == "/Root/serverless" || entry.TableId.PathId == SERVERLESS_DOMAIN_KEY) { + entry.Status = TSchemeCacheNavigate::EStatus::Ok; + entry.Kind = TSchemeCacheNavigate::EKind::KindExtSubdomain; + entry.DomainInfo = MakeIntrusive<TDomainInfo>(SERVERLESS_DOMAIN_KEY, SHARED_DOMAIN_KEY); + } else if (path == "/Root/shared" || entry.TableId.PathId == SHARED_DOMAIN_KEY) { + entry.Status = TSchemeCacheNavigate::EStatus::Ok; + entry.Kind = TSchemeCacheNavigate::EKind::KindExtSubdomain; + entry.DomainInfo = MakeIntrusive<TDomainInfo>(SHARED_DOMAIN_KEY, SHARED_DOMAIN_KEY); + auto domains = runtime.GetAppData().DomainsInfo; + auto domain = domains->Domains.begin()->second; + ui64 hiveId = domains->GetHive(domain->DefaultHiveUid); + entry.DomainInfo->Params.SetHive(hiveId); + } else if (path == "/Root/serverless/users" || entry.TableId.PathId == SERVERLESS_TABLE) { + entry.Status = TSchemeCacheNavigate::EStatus::Ok; + entry.Kind = TSchemeCacheNavigate::EKind::KindTable; + entry.DomainInfo = MakeIntrusive<TDomainInfo>(SERVERLESS_DOMAIN_KEY, SHARED_DOMAIN_KEY); + auto dirEntryInfo = MakeIntrusive<TSchemeCacheNavigate::TDirEntryInfo>(); + dirEntryInfo->Info.SetSchemeshardId(SERVERLESS_TABLE.OwnerId); + dirEntryInfo->Info.SetPathId(SERVERLESS_TABLE.LocalPathId); + entry.Self = dirEntryInfo; + } + } + + void ChangeBoardInfoServerless(TEvStateStorage::TEvBoardInfo::TPtr* ev, + const std::vector<size_t>& sharedDynNodes = {}, + const std::vector<size_t>& exclusiveDynNodes = {}) { + auto *record = (*ev)->Get(); + using EStatus = TEvStateStorage::TEvBoardInfo::EStatus; + if (record->Path == "gpc+/Root/serverless" && !exclusiveDynNodes.empty()) { + const_cast<EStatus&>(record->Status) = EStatus::Ok; + for (auto exclusiveDynNodeId : exclusiveDynNodes) { + TActorId actorOnExclusiveDynNode = TActorId(exclusiveDynNodeId, 0, 0, 0); + record->InfoEntries[actorOnExclusiveDynNode] = {}; + } + } else if (record->Path == "gpc+/Root/shared" && !sharedDynNodes.empty()) { + const_cast<EStatus&>(record->Status) = EStatus::Ok; + for (auto sharedDynNodeId : sharedDynNodes) { + TActorId actorOnSharedDynNode = TActorId(sharedDynNodeId, 0, 0, 0); + record->InfoEntries[actorOnSharedDynNode] = {}; + } + } + } + + void ChangeResponseHiveNodeStatsServerless(TEvHive::TEvResponseHiveNodeStats::TPtr* ev, + size_t sharedDynNode = 0, + size_t exclusiveDynNode = 0, + size_t exclusiveDynNodeWithTablet = 0) { + auto &record = (*ev)->Get()->Record; + if (sharedDynNode) { + auto *sharedNodeStats = record.MutableNodeStats()->Add(); + sharedNodeStats->SetNodeId(sharedDynNode); + sharedNodeStats->MutableNodeDomain()->SetSchemeShard(SHARED_DOMAIN_KEY.OwnerId); + sharedNodeStats->MutableNodeDomain()->SetPathId(SHARED_DOMAIN_KEY.LocalPathId); + } + + if (exclusiveDynNode) { + auto *exclusiveNodeStats = record.MutableNodeStats()->Add(); + exclusiveNodeStats->SetNodeId(exclusiveDynNode); + exclusiveNodeStats->MutableNodeDomain()->SetSchemeShard(SERVERLESS_DOMAIN_KEY.OwnerId); + exclusiveNodeStats->MutableNodeDomain()->SetPathId(SERVERLESS_DOMAIN_KEY.LocalPathId); + } + + if (exclusiveDynNodeWithTablet) { + auto *exclusiveDynNodeWithTabletStats = record.MutableNodeStats()->Add(); + exclusiveDynNodeWithTabletStats->SetNodeId(exclusiveDynNodeWithTablet); + exclusiveDynNodeWithTabletStats->MutableNodeDomain()->SetSchemeShard(SERVERLESS_DOMAIN_KEY.OwnerId); + exclusiveDynNodeWithTabletStats->MutableNodeDomain()->SetPathId(SERVERLESS_DOMAIN_KEY.LocalPathId); + + auto *stateStats = exclusiveDynNodeWithTabletStats->MutableStateStats()->Add(); + stateStats->SetTabletType(NKikimrTabletBase::TTabletTypes::DataShard); + stateStats->SetVolatileState(NKikimrHive::TABLET_VOLATILE_STATE_RUNNING); + stateStats->SetCount(1); + } + } + Y_UNIT_TEST(ServerlessNodesPage) { TPortManager tp; @@ -622,7 +709,7 @@ Y_UNIT_TEST_SUITE(Viewer) { TAutoPtr<IEventHandle> handle; THttpRequest httpReq(HTTP_METHOD_GET); - httpReq.CgiParameters.emplace("tenant", "/Root/serverless"); + httpReq.CgiParameters.emplace("path", "/Root/serverless"); httpReq.CgiParameters.emplace("tablets", "true"); httpReq.CgiParameters.emplace("enums", "true"); httpReq.CgiParameters.emplace("sort", ""); @@ -631,6 +718,39 @@ Y_UNIT_TEST_SUITE(Viewer) { TMonService2HttpRequest monReq(nullptr, &httpReq, nullptr, page.Get(), "/json/nodes", nullptr); auto request = MakeHolder<NMon::TEvHttpInfo>(monReq); + size_t staticNodeId = 0; + size_t sharedDynNodeId = 0; + auto observerFunc = [&](TAutoPtr<IEventHandle>& ev) { + switch (ev->GetTypeRewrite()) { + case TEvTxProxySchemeCache::EvNavigateKeySetResult: { + auto *x = reinterpret_cast<TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr*>(&ev); + ChangeNavigateKeySetResultServerless(x, runtime); + break; + } + case TEvInterconnect::EvNodesInfo: { + auto *x = reinterpret_cast<TEvInterconnect::TEvNodesInfo::TPtr*>(&ev); + TVector<TEvInterconnect::TNodeInfo> &nodes = (*x)->Get()->Nodes; + UNIT_ASSERT_EQUAL(nodes.size(), 2); + staticNodeId = nodes[0]; + sharedDynNodeId = nodes[1]; + break; + } + case TEvStateStorage::EvBoardInfo: { + auto *x = reinterpret_cast<TEvStateStorage::TEvBoardInfo::TPtr*>(&ev); + ChangeBoardInfoServerless(x, { sharedDynNodeId }); + break; + } + case TEvHive::EvResponseHiveNodeStats: { + auto *x = reinterpret_cast<TEvHive::TEvResponseHiveNodeStats::TPtr*>(&ev); + ChangeResponseHiveNodeStatsServerless(x, sharedDynNodeId); + break; + } + } + + return TTestActorRuntime::EEventAction::PROCESS; + }; + runtime.SetObserverFunc(observerFunc); + runtime.Send(new IEventHandle(NKikimr::NViewer::MakeViewerID(0), sender, request.Release(), 0)); NMon::TEvHttpInfoRes* result = runtime.GrabEdgeEvent<NMon::TEvHttpInfoRes>(handle); @@ -669,7 +789,7 @@ Y_UNIT_TEST_SUITE(Viewer) { TAutoPtr<IEventHandle> handle; THttpRequest httpReq(HTTP_METHOD_GET); - httpReq.CgiParameters.emplace("tenant", "/Root/serverless"); + httpReq.CgiParameters.emplace("path", "/Root/serverless"); httpReq.CgiParameters.emplace("tablets", "true"); httpReq.CgiParameters.emplace("enums", "true"); httpReq.CgiParameters.emplace("sort", ""); @@ -680,9 +800,14 @@ Y_UNIT_TEST_SUITE(Viewer) { size_t staticNodeId = 0; size_t sharedDynNodeId = 0; - size_t exclusiveDynNodeId = 0; + size_t exclusiveDynNodeId = 0; auto observerFunc = [&](TAutoPtr<IEventHandle>& ev) { switch (ev->GetTypeRewrite()) { + case TEvTxProxySchemeCache::EvNavigateKeySetResult: { + auto *x = reinterpret_cast<TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr*>(&ev); + ChangeNavigateKeySetResultServerless(x, runtime); + break; + } case TEvInterconnect::EvNodesInfo: { auto *x = reinterpret_cast<TEvInterconnect::TEvNodesInfo::TPtr*>(&ev); TVector<TEvInterconnect::TNodeInfo> &nodes = (*x)->Get()->Nodes; @@ -694,11 +819,12 @@ Y_UNIT_TEST_SUITE(Viewer) { } case TEvStateStorage::EvBoardInfo: { auto *x = reinterpret_cast<TEvStateStorage::TEvBoardInfo::TPtr*>(&ev); - auto *record = (*x)->Get(); - using EStatus = TEvStateStorage::TEvBoardInfo::EStatus; - const_cast<EStatus&>(record->Status) = EStatus::Ok; - TActorId actorOnExclusiveDynNode = TActorId(exclusiveDynNodeId, 0, 0, 0); - record->InfoEntries[actorOnExclusiveDynNode] = {}; + ChangeBoardInfoServerless(x, { sharedDynNodeId }, { exclusiveDynNodeId }); + break; + } + case TEvHive::EvResponseHiveNodeStats: { + auto *x = reinterpret_cast<TEvHive::TEvResponseHiveNodeStats::TPtr*>(&ev); + ChangeResponseHiveNodeStatsServerless(x, sharedDynNodeId, exclusiveDynNodeId); break; } } @@ -748,7 +874,7 @@ Y_UNIT_TEST_SUITE(Viewer) { TAutoPtr<IEventHandle> handle; THttpRequest httpReq(HTTP_METHOD_GET); - httpReq.CgiParameters.emplace("tenant", "Root/shared"); + httpReq.CgiParameters.emplace("path", "/Root/shared"); httpReq.CgiParameters.emplace("tablets", "true"); httpReq.CgiParameters.emplace("enums", "true"); httpReq.CgiParameters.emplace("sort", ""); @@ -759,9 +885,14 @@ Y_UNIT_TEST_SUITE(Viewer) { size_t staticNodeId = 0; size_t sharedDynNodeId = 0; - size_t exclusiveDynNodeId = 0; + size_t exclusiveDynNodeId = 0; auto observerFunc = [&](TAutoPtr<IEventHandle>& ev) { switch (ev->GetTypeRewrite()) { + case TEvTxProxySchemeCache::EvNavigateKeySetResult: { + auto *x = reinterpret_cast<TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr*>(&ev); + ChangeNavigateKeySetResultServerless(x, runtime); + break; + } case TEvInterconnect::EvNodesInfo: { auto *x = reinterpret_cast<TEvInterconnect::TEvNodesInfo::TPtr*>(&ev); TVector<TEvInterconnect::TNodeInfo> &nodes = (*x)->Get()->Nodes; @@ -773,11 +904,12 @@ Y_UNIT_TEST_SUITE(Viewer) { } case TEvStateStorage::EvBoardInfo: { auto *x = reinterpret_cast<TEvStateStorage::TEvBoardInfo::TPtr*>(&ev); - auto *record = (*x)->Get(); - using EStatus = TEvStateStorage::TEvBoardInfo::EStatus; - const_cast<EStatus&>(record->Status) = EStatus::Ok; - TActorId actorOnSharedDynNode = TActorId(sharedDynNodeId, 0, 0, 0); - record->InfoEntries[actorOnSharedDynNode] = {}; + ChangeBoardInfoServerless(x, { sharedDynNodeId }, { exclusiveDynNodeId }); + break; + } + case TEvHive::EvResponseHiveNodeStats: { + auto *x = reinterpret_cast<TEvHive::TEvResponseHiveNodeStats::TPtr*>(&ev); + ChangeResponseHiveNodeStatsServerless(x, sharedDynNodeId, exclusiveDynNodeId); break; } } @@ -827,7 +959,6 @@ Y_UNIT_TEST_SUITE(Viewer) { TAutoPtr<IEventHandle> handle; THttpRequest httpReq(HTTP_METHOD_GET); - httpReq.CgiParameters.emplace("tenant", "/Root/serverless"); httpReq.CgiParameters.emplace("path", "/Root/serverless/users"); httpReq.CgiParameters.emplace("tablets", "true"); httpReq.CgiParameters.emplace("enums", "true"); @@ -837,41 +968,15 @@ Y_UNIT_TEST_SUITE(Viewer) { TMonService2HttpRequest monReq(nullptr, &httpReq, nullptr, page.Get(), "/json/nodes", nullptr); auto request = MakeHolder<NMon::TEvHttpInfo>(monReq); - const TPathId SERVERLESS_DOMAIN_KEY = {7000000000, 2}; - const TPathId SHARED_DOMAIN_KEY = {7000000000, 1}; - const TPathId SERVERLESS_TABLE = {7000000001, 2}; - size_t staticNodeId = 0; size_t sharedDynNodeId = 0; size_t exclusiveDynNodeId = 0; - size_t secondExclusiveDynNodeId = 0; + size_t secondExclusiveDynNodeId = 0; auto observerFunc = [&](TAutoPtr<IEventHandle>& ev) { switch (ev->GetTypeRewrite()) { case TEvTxProxySchemeCache::EvNavigateKeySetResult: { auto *x = reinterpret_cast<TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr*>(&ev); - TSchemeCacheNavigate::TEntry& entry((*x)->Get()->Request->ResultSet.front()); - TString path = CanonizePath(entry.Path); - if (path == "/Root/serverless" || entry.TableId.PathId == SERVERLESS_DOMAIN_KEY) { - entry.Status = TSchemeCacheNavigate::EStatus::Ok; - entry.Kind = TSchemeCacheNavigate::EKind::KindExtSubdomain; - entry.DomainInfo = MakeIntrusive<TDomainInfo>(SERVERLESS_DOMAIN_KEY, SHARED_DOMAIN_KEY); - } else if (path == "/Root/shared" || entry.TableId.PathId == SHARED_DOMAIN_KEY) { - entry.Status = TSchemeCacheNavigate::EStatus::Ok; - entry.Kind = TSchemeCacheNavigate::EKind::KindExtSubdomain; - entry.DomainInfo = MakeIntrusive<TDomainInfo>(SHARED_DOMAIN_KEY, SHARED_DOMAIN_KEY); - auto domains = runtime.GetAppData().DomainsInfo; - auto domain = domains->Domains.begin()->second; - ui64 hiveId = domains->GetHive(domain->DefaultHiveUid); - entry.DomainInfo->Params.SetHive(hiveId); - } else if (path == "/Root/serverless/users" || entry.TableId.PathId == SERVERLESS_TABLE) { - entry.Status = TSchemeCacheNavigate::EStatus::Ok; - entry.Kind = TSchemeCacheNavigate::EKind::KindTable; - entry.DomainInfo = MakeIntrusive<TDomainInfo>(SERVERLESS_DOMAIN_KEY, SHARED_DOMAIN_KEY); - auto dirEntryInfo = MakeIntrusive<TSchemeCacheNavigate::TDirEntryInfo>(); - dirEntryInfo->Info.SetSchemeshardId(SERVERLESS_TABLE.OwnerId); - dirEntryInfo->Info.SetPathId(SERVERLESS_TABLE.LocalPathId); - entry.Self = dirEntryInfo; - } + ChangeNavigateKeySetResultServerless(x, runtime); break; } case TEvInterconnect::EvNodesInfo: { @@ -886,38 +991,12 @@ Y_UNIT_TEST_SUITE(Viewer) { } case TEvStateStorage::EvBoardInfo: { auto *x = reinterpret_cast<TEvStateStorage::TEvBoardInfo::TPtr*>(&ev); - auto *record = (*x)->Get(); - using EStatus = TEvStateStorage::TEvBoardInfo::EStatus; - const_cast<EStatus&>(record->Status) = EStatus::Ok; - TActorId actorOnExclusiveDynNode = TActorId(exclusiveDynNodeId, 0, 0, 0); - record->InfoEntries[actorOnExclusiveDynNode] = {}; - TActorId actorOnSecondExclusiveDynNode = TActorId(secondExclusiveDynNodeId, 0, 0, 0); - record->InfoEntries[actorOnSecondExclusiveDynNode] = {}; + ChangeBoardInfoServerless(x, { sharedDynNodeId }, { exclusiveDynNodeId, secondExclusiveDynNodeId }); break; } case TEvHive::EvResponseHiveNodeStats: { auto *x = reinterpret_cast<TEvHive::TEvResponseHiveNodeStats::TPtr*>(&ev); - auto &record = (*x)->Get()->Record; - auto *sharedNodeStats = record.MutableNodeStats()->Add(); - sharedNodeStats->SetNodeId(sharedDynNodeId); - sharedNodeStats->MutableNodeDomain()->SetSchemeShard(SHARED_DOMAIN_KEY.OwnerId); - sharedNodeStats->MutableNodeDomain()->SetPathId(SHARED_DOMAIN_KEY.LocalPathId); - - auto *exclusiveNodeStats = record.MutableNodeStats()->Add(); - exclusiveNodeStats->SetNodeId(exclusiveDynNodeId); - exclusiveNodeStats->MutableNodeDomain()->SetSchemeShard(SERVERLESS_DOMAIN_KEY.OwnerId); - exclusiveNodeStats->MutableNodeDomain()->SetPathId(SERVERLESS_DOMAIN_KEY.LocalPathId); - - auto *secondExclusiveNodeStats = record.MutableNodeStats()->Add(); - secondExclusiveNodeStats->SetNodeId(secondExclusiveDynNodeId); - secondExclusiveNodeStats->MutableNodeDomain()->SetSchemeShard(SERVERLESS_DOMAIN_KEY.OwnerId); - secondExclusiveNodeStats->MutableNodeDomain()->SetPathId(SERVERLESS_DOMAIN_KEY.LocalPathId); - - // filtered one datashard from /Root/serverless/users - auto *stateStats = secondExclusiveNodeStats->MutableStateStats()->Add(); - stateStats->SetTabletType(NKikimrTabletBase::TTabletTypes::DataShard); - stateStats->SetVolatileState(NKikimrHive::TABLET_VOLATILE_STATE_RUNNING); - stateStats->SetCount(1); + ChangeResponseHiveNodeStatsServerless(x, sharedDynNodeId, exclusiveDynNodeId, secondExclusiveDynNodeId); break; } } @@ -953,4 +1032,142 @@ Y_UNIT_TEST_SUITE(Viewer) { UNIT_ASSERT_VALUES_EQUAL(tablet.at("State"), "Green"); UNIT_ASSERT_VALUES_EQUAL(tablet.at("Count"), 1); } + + struct TFakeTicketParserActor : public TActor<TFakeTicketParserActor> { + TFakeTicketParserActor() + : TActor<TFakeTicketParserActor>(&TFakeTicketParserActor::StFunc) + {} + + STFUNC(StFunc) { + switch (ev->GetTypeRewrite()) { + hFunc(TEvTicketParser::TEvAuthorizeTicket, Handle); + default: + break; + } + } + + void Handle(TEvTicketParser::TEvAuthorizeTicket::TPtr& ev) { + LOG_INFO_S(*TlsActivationContext, NKikimrServices::TICKET_PARSER, "Ticket parser: got TEvAuthorizeTicket event: " << ev->Get()->Ticket << " " << ev->Get()->Database << " " << ev->Get()->Entries.size()); + ++AuthorizeTicketRequests; + + if (ev->Get()->Database != "/Root") { + Fail(ev, TStringBuilder() << "Incorrect database " << ev->Get()->Database); + return; + } + + if (ev->Get()->Ticket != "test_ydb_token") { + Fail(ev, TStringBuilder() << "Incorrect token " << ev->Get()->Ticket); + return; + } + + bool databaseIdFound = false; + bool folderIdFound = false; + for (const TEvTicketParser::TEvAuthorizeTicket::TEntry& entry : ev->Get()->Entries) { + for (const std::pair<TString, TString>& attr : entry.Attributes) { + if (attr.first == "database_id") { + databaseIdFound = true; + if (attr.second != "test_database_id") { + Fail(ev, TStringBuilder() << "Incorrect database_id " << attr.second); + return; + } + } else if (attr.first == "folder_id") { + folderIdFound = true; + if (attr.second != "test_folder_id") { + Fail(ev, TStringBuilder() << "Incorrect folder_id " << attr.second); + return; + } + } + } + } + if (!databaseIdFound) { + Fail(ev, "database_id not found"); + return; + } + if (!folderIdFound) { + Fail(ev, "folder_id not found"); + return; + } + + Success(ev); + } + + void Fail(TEvTicketParser::TEvAuthorizeTicket::TPtr& ev, const TString& message) { + ++AuthorizeTicketFails; + TEvTicketParser::TError err; + err.Retryable = false; + err.Message = message ? message : "Test error"; + LOG_INFO_S(*TlsActivationContext, NKikimrServices::TICKET_PARSER, "Send TEvAuthorizeTicketResult: " << err.Message); + Send(ev->Sender, new TEvTicketParser::TEvAuthorizeTicketResult(ev->Get()->Ticket, err)); + } + + void Success(TEvTicketParser::TEvAuthorizeTicket::TPtr& ev) { + ++AuthorizeTicketSuccesses; + NACLib::TUserToken::TUserTokenInitFields args; + args.UserSID = "user_name"; + args.GroupSIDs.push_back("group_name"); + TIntrusivePtr<NACLib::TUserToken> userToken = MakeIntrusive<NACLib::TUserToken>(args); + LOG_INFO_S(*TlsActivationContext, NKikimrServices::TICKET_PARSER, "Send TEvAuthorizeTicketResult success"); + Send(ev->Sender, new TEvTicketParser::TEvAuthorizeTicketResult(ev->Get()->Ticket, userToken)); + } + + size_t AuthorizeTicketRequests = 0; + size_t AuthorizeTicketSuccesses = 0; + size_t AuthorizeTicketFails = 0; + }; + + Y_UNIT_TEST(AuthorizeYdbTokenWithDatabaseAttributes) { + TPortManager tp; + ui16 port = tp.GetPort(2134); + ui16 grpcPort = tp.GetPort(2135); + ui16 monPort = tp.GetPort(8765); + auto settings = TServerSettings(port); + settings.InitKikimrRunConfig() + .SetNodeCount(1) + .SetUseRealThreads(true) + .SetDomainName("Root") + .SetMonitoringPortOffset(monPort, true); // authorization is implemented only in async mon + + //auto& securityConfig = *settings.AppConfig->MutableDomainsConfig()->MutableSecurityConfig(); + //securityConfig.SetEnforceUserTokenCheckRequirement(true); + + TFakeTicketParserActor* ticketParser = nullptr; + settings.CreateTicketParser = [&](const TTicketParserSettings&) -> IActor* { + ticketParser = new TFakeTicketParserActor(); + return ticketParser; + }; + + TServer server(settings); + server.EnableGRpc(grpcPort); + TClient client(settings); + + const auto alterAttrsStatus = client.AlterUserAttributes("/", "Root", { + { "folder_id", "test_folder_id" }, + { "database_id", "test_database_id" }, + }); + UNIT_ASSERT_EQUAL(alterAttrsStatus, NMsgBusProxy::MSTATUS_OK); + + TTestActorRuntime& runtime = *server.GetRuntime(); + runtime.SetLogPriority(NKikimrServices::GRPC_SERVER, NLog::PRI_TRACE); + runtime.SetLogPriority(NKikimrServices::TICKET_PARSER, NLog::PRI_TRACE); + + TKeepAliveHttpClient httpClient("localhost", monPort); + TStringStream responseStream; + TKeepAliveHttpClient::THeaders headers; + headers["Content-Type"] = "application/json"; + headers["Authorization"] = "test_ydb_token"; + TString requestBody = R"json({ + "query": "SELECT 42;", + "database": "/Root", + "action": "execute-script", + "syntax": "yql_v1", + "stats": "profile" + })json"; + const TKeepAliveHttpClient::THttpCode statusCode = httpClient.DoPost("/viewer/query?timeout=600000&base64=false&schema=modern", requestBody, &responseStream, headers); + const TString response = responseStream.ReadAll(); + UNIT_ASSERT_EQUAL_C(statusCode, HTTP_OK, statusCode << ": " << response); + + UNIT_ASSERT(ticketParser); + UNIT_ASSERT_VALUES_EQUAL_C(ticketParser->AuthorizeTicketRequests, 1, response); + UNIT_ASSERT_VALUES_EQUAL_C(ticketParser->AuthorizeTicketSuccesses, 1, response); + } } diff --git a/ydb/core/viewer/ya.make b/ydb/core/viewer/ya.make index 6041359303e0..8c829a3843c4 100644 --- a/ydb/core/viewer/ya.make +++ b/ydb/core/viewer/ya.make @@ -68,100 +68,349 @@ SRCS( IF (NOT EXPORT_CMAKE) # GENERATED MONITORING RESOURCES START RESOURCE( + monitoring/asset-manifest.json monitoring/asset-manifest.json monitoring/index.html monitoring/index.html - monitoring/static/favicon.png monitoring/static/favicon.png - monitoring/static/css/8546.65946fb2.chunk.css monitoring/static/css/8546.65946fb2.chunk.css - monitoring/static/css/main.a322fb8b.css monitoring/static/css/main.a322fb8b.css - 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 - monitoring/static/js/1234.165715d4.chunk.js monitoring/static/js/1234.165715d4.chunk.js - monitoring/static/js/1474.80932b06.chunk.js monitoring/static/js/1474.80932b06.chunk.js - monitoring/static/js/1522.5645047d.chunk.js monitoring/static/js/1522.5645047d.chunk.js - monitoring/static/js/1593.571b4393.chunk.js monitoring/static/js/1593.571b4393.chunk.js - monitoring/static/js/1602.86ed3169.chunk.js monitoring/static/js/1602.86ed3169.chunk.js - monitoring/static/js/1876.2f512037.chunk.js monitoring/static/js/1876.2f512037.chunk.js - monitoring/static/js/1898.a0e4bd43.chunk.js monitoring/static/js/1898.a0e4bd43.chunk.js - monitoring/static/js/2056.b607e590.chunk.js monitoring/static/js/2056.b607e590.chunk.js - monitoring/static/js/2081.bd41025d.chunk.js monitoring/static/js/2081.bd41025d.chunk.js - monitoring/static/js/2119.9f7a5c06.chunk.js monitoring/static/js/2119.9f7a5c06.chunk.js - monitoring/static/js/2174.264d1736.chunk.js monitoring/static/js/2174.264d1736.chunk.js - monitoring/static/js/2205.e7f0b9ab.chunk.js monitoring/static/js/2205.e7f0b9ab.chunk.js - monitoring/static/js/2291.d410fd68.chunk.js monitoring/static/js/2291.d410fd68.chunk.js - monitoring/static/js/2406.180cb966.chunk.js monitoring/static/js/2406.180cb966.chunk.js - monitoring/static/js/245.6db2db52.chunk.js monitoring/static/js/245.6db2db52.chunk.js - monitoring/static/js/248.736ab237.chunk.js monitoring/static/js/248.736ab237.chunk.js - monitoring/static/js/2507.2d9c4b5c.chunk.js monitoring/static/js/2507.2d9c4b5c.chunk.js - monitoring/static/js/254.a91c0bf4.chunk.js monitoring/static/js/254.a91c0bf4.chunk.js - monitoring/static/js/2799.64ec0194.chunk.js monitoring/static/js/2799.64ec0194.chunk.js - monitoring/static/js/2862.29a56bf7.chunk.js monitoring/static/js/2862.29a56bf7.chunk.js - monitoring/static/js/2991.0db887ba.chunk.js monitoring/static/js/2991.0db887ba.chunk.js - monitoring/static/js/3001.b1a75b50.chunk.js monitoring/static/js/3001.b1a75b50.chunk.js - monitoring/static/js/3191.c6dbae35.chunk.js monitoring/static/js/3191.c6dbae35.chunk.js - monitoring/static/js/3254.78ce4d35.chunk.js monitoring/static/js/3254.78ce4d35.chunk.js - monitoring/static/js/3258.248867bd.chunk.js monitoring/static/js/3258.248867bd.chunk.js - monitoring/static/js/3451.774580b7.chunk.js monitoring/static/js/3451.774580b7.chunk.js - monitoring/static/js/371.93a1186d.chunk.js monitoring/static/js/371.93a1186d.chunk.js - monitoring/static/js/3771.0e0bb0f3.chunk.js monitoring/static/js/3771.0e0bb0f3.chunk.js - monitoring/static/js/3848.be131fc6.chunk.js monitoring/static/js/3848.be131fc6.chunk.js - monitoring/static/js/3883.62a3dee4.chunk.js monitoring/static/js/3883.62a3dee4.chunk.js - monitoring/static/js/4529.eb0068c3.chunk.js monitoring/static/js/4529.eb0068c3.chunk.js - monitoring/static/js/4546.6820709e.chunk.js monitoring/static/js/4546.6820709e.chunk.js - monitoring/static/js/4663.cc239299.chunk.js monitoring/static/js/4663.cc239299.chunk.js - monitoring/static/js/4712.4e557974.chunk.js monitoring/static/js/4712.4e557974.chunk.js - 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/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 - monitoring/static/js/569.abbf95fd.chunk.js monitoring/static/js/569.abbf95fd.chunk.js - monitoring/static/js/5695.d81b70ca.chunk.js monitoring/static/js/5695.d81b70ca.chunk.js - monitoring/static/js/5748.fa2a8e02.chunk.js monitoring/static/js/5748.fa2a8e02.chunk.js - monitoring/static/js/5784.26f46213.chunk.js monitoring/static/js/5784.26f46213.chunk.js - monitoring/static/js/5885.c5ee8345.chunk.js monitoring/static/js/5885.c5ee8345.chunk.js - monitoring/static/js/6060.eb821066.chunk.js monitoring/static/js/6060.eb821066.chunk.js - monitoring/static/js/6135.e49ec940.chunk.js monitoring/static/js/6135.e49ec940.chunk.js - monitoring/static/js/6266.db91261c.chunk.js monitoring/static/js/6266.db91261c.chunk.js - monitoring/static/js/6550.b5e85913.chunk.js monitoring/static/js/6550.b5e85913.chunk.js - monitoring/static/js/6559.41bbd3a3.chunk.js monitoring/static/js/6559.41bbd3a3.chunk.js - monitoring/static/js/6708.5cf2a45c.chunk.js monitoring/static/js/6708.5cf2a45c.chunk.js - monitoring/static/js/6892.3db15360.chunk.js monitoring/static/js/6892.3db15360.chunk.js - monitoring/static/js/698.746436d5.chunk.js monitoring/static/js/698.746436d5.chunk.js - monitoring/static/js/7168.ed7798a9.chunk.js monitoring/static/js/7168.ed7798a9.chunk.js - monitoring/static/js/7478.0bf003df.chunk.js monitoring/static/js/7478.0bf003df.chunk.js - monitoring/static/js/7548.8ef3bbc0.chunk.js monitoring/static/js/7548.8ef3bbc0.chunk.js - monitoring/static/js/758.2eb69c4e.chunk.js monitoring/static/js/758.2eb69c4e.chunk.js - monitoring/static/js/7661.dd104c3c.chunk.js monitoring/static/js/7661.dd104c3c.chunk.js - monitoring/static/js/7664.9f9f696d.chunk.js monitoring/static/js/7664.9f9f696d.chunk.js - monitoring/static/js/7768.2adb4751.chunk.js monitoring/static/js/7768.2adb4751.chunk.js - 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/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 - monitoring/static/js/8520.616efa9f.chunk.js monitoring/static/js/8520.616efa9f.chunk.js - monitoring/static/js/8546.79cce20d.chunk.js monitoring/static/js/8546.79cce20d.chunk.js - monitoring/static/js/8558.47b3557b.chunk.js monitoring/static/js/8558.47b3557b.chunk.js - monitoring/static/js/8590.b8446f1d.chunk.js monitoring/static/js/8590.b8446f1d.chunk.js - monitoring/static/js/8794.5ad5fb7d.chunk.js monitoring/static/js/8794.5ad5fb7d.chunk.js - monitoring/static/js/9005.053ddf1a.chunk.js monitoring/static/js/9005.053ddf1a.chunk.js - monitoring/static/js/9011.f3cf1dfe.chunk.js monitoring/static/js/9011.f3cf1dfe.chunk.js - monitoring/static/js/9163.de992e19.chunk.js monitoring/static/js/9163.de992e19.chunk.js - monitoring/static/js/9292.3ccb6509.chunk.js monitoring/static/js/9292.3ccb6509.chunk.js - 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.2c02e91d.js monitoring/static/js/main.2c02e91d.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 - monitoring/static/media/error.9bbd075178a739dcc30f2a7a3e2a3249.svg monitoring/static/media/error.9bbd075178a739dcc30f2a7a3e2a3249.svg - monitoring/static/media/error.ca9e31d5d3dc34da07e11a00f7af0842.svg monitoring/static/media/error.ca9e31d5d3dc34da07e11a00f7af0842.svg - monitoring/static/media/thumbsUp.d4a03fbaa64ce85a0045bf8ba77f8e2b.svg monitoring/static/media/thumbsUp.d4a03fbaa64ce85a0045bf8ba77f8e2b.svg + monitoring/static/css/1551.d5e5efc2.chunk.css monitoring/static/css/1551.d5e5efc2.chunk.css + monitoring/static/css/328.c0ade9c1.chunk.css monitoring/static/css/328.c0ade9c1.chunk.css + monitoring/static/css/4983.5c3e5de4.chunk.css monitoring/static/css/4983.5c3e5de4.chunk.css + monitoring/static/css/8424.308a04db.chunk.css monitoring/static/css/8424.308a04db.chunk.css + monitoring/static/css/main.c8ce3bba.css monitoring/static/css/main.c8ce3bba.css + monitoring/static/favicon.png monitoring/static/favicon.png + monitoring/static/js/1148.3c629236.chunk.js monitoring/static/js/1148.3c629236.chunk.js + monitoring/static/js/115.2c4de87e.chunk.js monitoring/static/js/115.2c4de87e.chunk.js + monitoring/static/js/1150.2b47004d.chunk.js monitoring/static/js/1150.2b47004d.chunk.js + monitoring/static/js/1155.4fce1854.chunk.js monitoring/static/js/1155.4fce1854.chunk.js + monitoring/static/js/1155.4fce1854.chunk.js.LICENSE.txt monitoring/static/js/1155.4fce1854.chunk.js.LICENSE.txt + monitoring/static/js/1168.91d9e2c2.chunk.js monitoring/static/js/1168.91d9e2c2.chunk.js + monitoring/static/js/1179.15d7ac65.chunk.js monitoring/static/js/1179.15d7ac65.chunk.js + monitoring/static/js/1278.c0717a20.chunk.js monitoring/static/js/1278.c0717a20.chunk.js + monitoring/static/js/1350.21b6a9ef.chunk.js monitoring/static/js/1350.21b6a9ef.chunk.js + monitoring/static/js/1478.5044be66.chunk.js monitoring/static/js/1478.5044be66.chunk.js + monitoring/static/js/1478.5044be66.chunk.js.LICENSE.txt monitoring/static/js/1478.5044be66.chunk.js.LICENSE.txt + monitoring/static/js/148.b60f0e5e.chunk.js monitoring/static/js/148.b60f0e5e.chunk.js + monitoring/static/js/1508.f0158935.chunk.js monitoring/static/js/1508.f0158935.chunk.js + monitoring/static/js/1528.2a39d066.chunk.js monitoring/static/js/1528.2a39d066.chunk.js + monitoring/static/js/1551.2e8e3e50.chunk.js monitoring/static/js/1551.2e8e3e50.chunk.js + monitoring/static/js/1551.2e8e3e50.chunk.js.LICENSE.txt monitoring/static/js/1551.2e8e3e50.chunk.js.LICENSE.txt + monitoring/static/js/1616.8a217b93.chunk.js monitoring/static/js/1616.8a217b93.chunk.js + monitoring/static/js/163.eea01641.chunk.js monitoring/static/js/163.eea01641.chunk.js + monitoring/static/js/1736.9f4a6b02.chunk.js monitoring/static/js/1736.9f4a6b02.chunk.js + monitoring/static/js/1746.a8ba5c62.chunk.js monitoring/static/js/1746.a8ba5c62.chunk.js + monitoring/static/js/1747.b4331799.chunk.js monitoring/static/js/1747.b4331799.chunk.js + monitoring/static/js/1747.b4331799.chunk.js.LICENSE.txt monitoring/static/js/1747.b4331799.chunk.js.LICENSE.txt + monitoring/static/js/178.e0df04cc.chunk.js monitoring/static/js/178.e0df04cc.chunk.js + monitoring/static/js/185.7d51fcfa.chunk.js monitoring/static/js/185.7d51fcfa.chunk.js + monitoring/static/js/185.7d51fcfa.chunk.js.LICENSE.txt monitoring/static/js/185.7d51fcfa.chunk.js.LICENSE.txt + monitoring/static/js/1869.d6661a03.chunk.js monitoring/static/js/1869.d6661a03.chunk.js + monitoring/static/js/1956.0205a5bb.chunk.js monitoring/static/js/1956.0205a5bb.chunk.js + monitoring/static/js/1956.0205a5bb.chunk.js.LICENSE.txt monitoring/static/js/1956.0205a5bb.chunk.js.LICENSE.txt + monitoring/static/js/202.52f13cd5.chunk.js monitoring/static/js/202.52f13cd5.chunk.js + monitoring/static/js/2033.5c6dfca9.chunk.js monitoring/static/js/2033.5c6dfca9.chunk.js + monitoring/static/js/2104.4f22ecac.chunk.js monitoring/static/js/2104.4f22ecac.chunk.js + monitoring/static/js/2104.4f22ecac.chunk.js.LICENSE.txt monitoring/static/js/2104.4f22ecac.chunk.js.LICENSE.txt + monitoring/static/js/2118.bc169874.chunk.js monitoring/static/js/2118.bc169874.chunk.js + monitoring/static/js/2118.bc169874.chunk.js.LICENSE.txt monitoring/static/js/2118.bc169874.chunk.js.LICENSE.txt + monitoring/static/js/214.99a17949.chunk.js monitoring/static/js/214.99a17949.chunk.js + monitoring/static/js/214.99a17949.chunk.js.LICENSE.txt monitoring/static/js/214.99a17949.chunk.js.LICENSE.txt + monitoring/static/js/2141.26c930aa.chunk.js monitoring/static/js/2141.26c930aa.chunk.js + monitoring/static/js/2141.26c930aa.chunk.js.LICENSE.txt monitoring/static/js/2141.26c930aa.chunk.js.LICENSE.txt + monitoring/static/js/2183.e2318c37.chunk.js monitoring/static/js/2183.e2318c37.chunk.js + monitoring/static/js/2183.e2318c37.chunk.js.LICENSE.txt monitoring/static/js/2183.e2318c37.chunk.js.LICENSE.txt + monitoring/static/js/2190.27f354f5.chunk.js monitoring/static/js/2190.27f354f5.chunk.js + monitoring/static/js/2190.27f354f5.chunk.js.LICENSE.txt monitoring/static/js/2190.27f354f5.chunk.js.LICENSE.txt + monitoring/static/js/2194.38bafdfc.chunk.js monitoring/static/js/2194.38bafdfc.chunk.js + monitoring/static/js/2194.38bafdfc.chunk.js.LICENSE.txt monitoring/static/js/2194.38bafdfc.chunk.js.LICENSE.txt + monitoring/static/js/2223.63ae5a05.chunk.js monitoring/static/js/2223.63ae5a05.chunk.js + monitoring/static/js/2229.6687fc46.chunk.js monitoring/static/js/2229.6687fc46.chunk.js + monitoring/static/js/2238.3cf88b79.chunk.js monitoring/static/js/2238.3cf88b79.chunk.js + monitoring/static/js/2302.7e7a2fb4.chunk.js monitoring/static/js/2302.7e7a2fb4.chunk.js + monitoring/static/js/2302.7e7a2fb4.chunk.js.LICENSE.txt monitoring/static/js/2302.7e7a2fb4.chunk.js.LICENSE.txt + monitoring/static/js/2322.29255c22.chunk.js monitoring/static/js/2322.29255c22.chunk.js + monitoring/static/js/2322.29255c22.chunk.js.LICENSE.txt monitoring/static/js/2322.29255c22.chunk.js.LICENSE.txt + monitoring/static/js/2367.052e678b.chunk.js monitoring/static/js/2367.052e678b.chunk.js + monitoring/static/js/2403.82cd0025.chunk.js monitoring/static/js/2403.82cd0025.chunk.js + monitoring/static/js/2403.82cd0025.chunk.js.LICENSE.txt monitoring/static/js/2403.82cd0025.chunk.js.LICENSE.txt + monitoring/static/js/2435.092e8d7f.chunk.js monitoring/static/js/2435.092e8d7f.chunk.js + monitoring/static/js/2477.e6121bfd.chunk.js monitoring/static/js/2477.e6121bfd.chunk.js + monitoring/static/js/2492.64b7d727.chunk.js monitoring/static/js/2492.64b7d727.chunk.js + monitoring/static/js/2492.64b7d727.chunk.js.LICENSE.txt monitoring/static/js/2492.64b7d727.chunk.js.LICENSE.txt + monitoring/static/js/2521.21bdfab9.chunk.js monitoring/static/js/2521.21bdfab9.chunk.js + monitoring/static/js/2521.21bdfab9.chunk.js.LICENSE.txt monitoring/static/js/2521.21bdfab9.chunk.js.LICENSE.txt + monitoring/static/js/2532.30bb087d.chunk.js monitoring/static/js/2532.30bb087d.chunk.js + monitoring/static/js/2532.30bb087d.chunk.js.LICENSE.txt monitoring/static/js/2532.30bb087d.chunk.js.LICENSE.txt + monitoring/static/js/2553.5faabf5a.chunk.js monitoring/static/js/2553.5faabf5a.chunk.js + monitoring/static/js/2553.5faabf5a.chunk.js.LICENSE.txt monitoring/static/js/2553.5faabf5a.chunk.js.LICENSE.txt + monitoring/static/js/2590.75b6626e.chunk.js monitoring/static/js/2590.75b6626e.chunk.js + monitoring/static/js/2620.8e5c52fb.chunk.js monitoring/static/js/2620.8e5c52fb.chunk.js + monitoring/static/js/2677.3d7ea3fc.chunk.js monitoring/static/js/2677.3d7ea3fc.chunk.js + monitoring/static/js/2701.86912840.chunk.js monitoring/static/js/2701.86912840.chunk.js + monitoring/static/js/2840.b69eb597.chunk.js monitoring/static/js/2840.b69eb597.chunk.js + monitoring/static/js/2840.b69eb597.chunk.js.LICENSE.txt monitoring/static/js/2840.b69eb597.chunk.js.LICENSE.txt + monitoring/static/js/2876.afe7e47f.chunk.js monitoring/static/js/2876.afe7e47f.chunk.js + monitoring/static/js/2876.afe7e47f.chunk.js.LICENSE.txt monitoring/static/js/2876.afe7e47f.chunk.js.LICENSE.txt + monitoring/static/js/2931.3ade3bc3.chunk.js monitoring/static/js/2931.3ade3bc3.chunk.js + monitoring/static/js/2931.3ade3bc3.chunk.js.LICENSE.txt monitoring/static/js/2931.3ade3bc3.chunk.js.LICENSE.txt + monitoring/static/js/2962.66e01691.chunk.js monitoring/static/js/2962.66e01691.chunk.js + monitoring/static/js/2962.66e01691.chunk.js.LICENSE.txt monitoring/static/js/2962.66e01691.chunk.js.LICENSE.txt + monitoring/static/js/2981.6d027811.chunk.js monitoring/static/js/2981.6d027811.chunk.js + monitoring/static/js/2986.2100fcad.chunk.js monitoring/static/js/2986.2100fcad.chunk.js + monitoring/static/js/2994.e6c77407.chunk.js monitoring/static/js/2994.e6c77407.chunk.js + monitoring/static/js/2994.e6c77407.chunk.js.LICENSE.txt monitoring/static/js/2994.e6c77407.chunk.js.LICENSE.txt + monitoring/static/js/30.b097cbb4.chunk.js monitoring/static/js/30.b097cbb4.chunk.js + monitoring/static/js/3025.7e536c57.chunk.js monitoring/static/js/3025.7e536c57.chunk.js + monitoring/static/js/3074.bbb8aaef.chunk.js monitoring/static/js/3074.bbb8aaef.chunk.js + monitoring/static/js/3074.bbb8aaef.chunk.js.LICENSE.txt monitoring/static/js/3074.bbb8aaef.chunk.js.LICENSE.txt + monitoring/static/js/3231.65396654.chunk.js monitoring/static/js/3231.65396654.chunk.js + monitoring/static/js/3271.7b005742.chunk.js monitoring/static/js/3271.7b005742.chunk.js + monitoring/static/js/328.f24db8bf.chunk.js monitoring/static/js/328.f24db8bf.chunk.js + monitoring/static/js/3304.f5897a96.chunk.js monitoring/static/js/3304.f5897a96.chunk.js + monitoring/static/js/3333.ceb196e6.chunk.js monitoring/static/js/3333.ceb196e6.chunk.js + monitoring/static/js/3358.c777fe1f.chunk.js monitoring/static/js/3358.c777fe1f.chunk.js + monitoring/static/js/3358.c777fe1f.chunk.js.LICENSE.txt monitoring/static/js/3358.c777fe1f.chunk.js.LICENSE.txt + monitoring/static/js/337.b6fc715e.chunk.js monitoring/static/js/337.b6fc715e.chunk.js + monitoring/static/js/337.b6fc715e.chunk.js.LICENSE.txt monitoring/static/js/337.b6fc715e.chunk.js.LICENSE.txt + monitoring/static/js/3397.9c0005a3.chunk.js monitoring/static/js/3397.9c0005a3.chunk.js + monitoring/static/js/3457.b193afe6.chunk.js monitoring/static/js/3457.b193afe6.chunk.js + monitoring/static/js/3466.98f036ac.chunk.js monitoring/static/js/3466.98f036ac.chunk.js + monitoring/static/js/3498.c7d39060.chunk.js monitoring/static/js/3498.c7d39060.chunk.js + monitoring/static/js/3498.c7d39060.chunk.js.LICENSE.txt monitoring/static/js/3498.c7d39060.chunk.js.LICENSE.txt + monitoring/static/js/358.d6300019.chunk.js monitoring/static/js/358.d6300019.chunk.js + monitoring/static/js/358.d6300019.chunk.js.LICENSE.txt monitoring/static/js/358.d6300019.chunk.js.LICENSE.txt + monitoring/static/js/3621.9b6c61ab.chunk.js monitoring/static/js/3621.9b6c61ab.chunk.js + monitoring/static/js/3621.9b6c61ab.chunk.js.LICENSE.txt monitoring/static/js/3621.9b6c61ab.chunk.js.LICENSE.txt + monitoring/static/js/3630.8eda2d3f.chunk.js monitoring/static/js/3630.8eda2d3f.chunk.js + monitoring/static/js/3644.aeda46ca.chunk.js monitoring/static/js/3644.aeda46ca.chunk.js + monitoring/static/js/3644.aeda46ca.chunk.js.LICENSE.txt monitoring/static/js/3644.aeda46ca.chunk.js.LICENSE.txt + monitoring/static/js/3645.bdd20200.chunk.js monitoring/static/js/3645.bdd20200.chunk.js + monitoring/static/js/3756.67bd6b00.chunk.js monitoring/static/js/3756.67bd6b00.chunk.js + monitoring/static/js/3757.7c534899.chunk.js monitoring/static/js/3757.7c534899.chunk.js + monitoring/static/js/3771.764124c3.chunk.js monitoring/static/js/3771.764124c3.chunk.js + monitoring/static/js/3771.764124c3.chunk.js.LICENSE.txt monitoring/static/js/3771.764124c3.chunk.js.LICENSE.txt + monitoring/static/js/383.4faec08b.chunk.js monitoring/static/js/383.4faec08b.chunk.js + monitoring/static/js/3898.1fec42e6.chunk.js monitoring/static/js/3898.1fec42e6.chunk.js + monitoring/static/js/3920.11b8c9d7.chunk.js monitoring/static/js/3920.11b8c9d7.chunk.js + monitoring/static/js/3926.8f2c9741.chunk.js monitoring/static/js/3926.8f2c9741.chunk.js + monitoring/static/js/3945.054c871d.chunk.js monitoring/static/js/3945.054c871d.chunk.js + monitoring/static/js/4046.5dac72a9.chunk.js monitoring/static/js/4046.5dac72a9.chunk.js + monitoring/static/js/4046.5dac72a9.chunk.js.LICENSE.txt monitoring/static/js/4046.5dac72a9.chunk.js.LICENSE.txt + monitoring/static/js/4080.07be3744.chunk.js monitoring/static/js/4080.07be3744.chunk.js + monitoring/static/js/4123.64882a16.chunk.js monitoring/static/js/4123.64882a16.chunk.js + monitoring/static/js/4123.64882a16.chunk.js.LICENSE.txt monitoring/static/js/4123.64882a16.chunk.js.LICENSE.txt + monitoring/static/js/4132.04be158e.chunk.js monitoring/static/js/4132.04be158e.chunk.js + monitoring/static/js/4159.5e0cfd91.chunk.js monitoring/static/js/4159.5e0cfd91.chunk.js + monitoring/static/js/4198.d0671061.chunk.js monitoring/static/js/4198.d0671061.chunk.js + monitoring/static/js/425.c6dd581a.chunk.js monitoring/static/js/425.c6dd581a.chunk.js + monitoring/static/js/425.c6dd581a.chunk.js.LICENSE.txt monitoring/static/js/425.c6dd581a.chunk.js.LICENSE.txt + monitoring/static/js/4326.d5c34c54.chunk.js monitoring/static/js/4326.d5c34c54.chunk.js + monitoring/static/js/4345.9238776d.chunk.js monitoring/static/js/4345.9238776d.chunk.js + monitoring/static/js/4345.9238776d.chunk.js.LICENSE.txt monitoring/static/js/4345.9238776d.chunk.js.LICENSE.txt + monitoring/static/js/4347.adf03999.chunk.js monitoring/static/js/4347.adf03999.chunk.js + monitoring/static/js/436.564ff0f8.chunk.js monitoring/static/js/436.564ff0f8.chunk.js + monitoring/static/js/4388.edb51304.chunk.js monitoring/static/js/4388.edb51304.chunk.js + monitoring/static/js/4388.edb51304.chunk.js.LICENSE.txt monitoring/static/js/4388.edb51304.chunk.js.LICENSE.txt + monitoring/static/js/451.3b449e79.chunk.js monitoring/static/js/451.3b449e79.chunk.js + monitoring/static/js/451.3b449e79.chunk.js.LICENSE.txt monitoring/static/js/451.3b449e79.chunk.js.LICENSE.txt + monitoring/static/js/4535.5d1c8322.chunk.js monitoring/static/js/4535.5d1c8322.chunk.js + monitoring/static/js/4550.2e04d705.chunk.js monitoring/static/js/4550.2e04d705.chunk.js + monitoring/static/js/4550.2e04d705.chunk.js.LICENSE.txt monitoring/static/js/4550.2e04d705.chunk.js.LICENSE.txt + monitoring/static/js/4583.1682cf86.chunk.js monitoring/static/js/4583.1682cf86.chunk.js + monitoring/static/js/4618.131d9563.chunk.js monitoring/static/js/4618.131d9563.chunk.js + monitoring/static/js/4635.ffa9b6b7.chunk.js monitoring/static/js/4635.ffa9b6b7.chunk.js + monitoring/static/js/4635.ffa9b6b7.chunk.js.LICENSE.txt monitoring/static/js/4635.ffa9b6b7.chunk.js.LICENSE.txt + monitoring/static/js/4663.b893c670.chunk.js monitoring/static/js/4663.b893c670.chunk.js + monitoring/static/js/4684.27f737c4.chunk.js monitoring/static/js/4684.27f737c4.chunk.js + monitoring/static/js/4789.d52069de.chunk.js monitoring/static/js/4789.d52069de.chunk.js + monitoring/static/js/4812.73af8448.chunk.js monitoring/static/js/4812.73af8448.chunk.js + monitoring/static/js/4812.73af8448.chunk.js.LICENSE.txt monitoring/static/js/4812.73af8448.chunk.js.LICENSE.txt + monitoring/static/js/4814.11309069.chunk.js monitoring/static/js/4814.11309069.chunk.js + monitoring/static/js/4826.d2723706.chunk.js monitoring/static/js/4826.d2723706.chunk.js + monitoring/static/js/4842.57182d38.chunk.js monitoring/static/js/4842.57182d38.chunk.js + monitoring/static/js/4848.64f47dc3.chunk.js monitoring/static/js/4848.64f47dc3.chunk.js + monitoring/static/js/4949.6bf46e71.chunk.js monitoring/static/js/4949.6bf46e71.chunk.js + monitoring/static/js/4964.c7c75eb0.chunk.js monitoring/static/js/4964.c7c75eb0.chunk.js + monitoring/static/js/4985.991de003.chunk.js monitoring/static/js/4985.991de003.chunk.js + monitoring/static/js/5107.8cac6a03.chunk.js monitoring/static/js/5107.8cac6a03.chunk.js + monitoring/static/js/5107.8cac6a03.chunk.js.LICENSE.txt monitoring/static/js/5107.8cac6a03.chunk.js.LICENSE.txt + monitoring/static/js/5112.6189bbe0.chunk.js monitoring/static/js/5112.6189bbe0.chunk.js + monitoring/static/js/5117.896f7ffb.chunk.js monitoring/static/js/5117.896f7ffb.chunk.js + monitoring/static/js/515.cd9a8a90.chunk.js monitoring/static/js/515.cd9a8a90.chunk.js + monitoring/static/js/5161.45b4f520.chunk.js monitoring/static/js/5161.45b4f520.chunk.js + monitoring/static/js/5168.6fb23f08.chunk.js monitoring/static/js/5168.6fb23f08.chunk.js + monitoring/static/js/5168.6fb23f08.chunk.js.LICENSE.txt monitoring/static/js/5168.6fb23f08.chunk.js.LICENSE.txt + monitoring/static/js/5226.675d55fb.chunk.js monitoring/static/js/5226.675d55fb.chunk.js + monitoring/static/js/5311.a500a1ea.chunk.js monitoring/static/js/5311.a500a1ea.chunk.js + monitoring/static/js/5311.a500a1ea.chunk.js.LICENSE.txt monitoring/static/js/5311.a500a1ea.chunk.js.LICENSE.txt + monitoring/static/js/5341.2c19c723.chunk.js monitoring/static/js/5341.2c19c723.chunk.js + monitoring/static/js/5352.3d3187b7.chunk.js monitoring/static/js/5352.3d3187b7.chunk.js + monitoring/static/js/5373.90c95a6e.chunk.js monitoring/static/js/5373.90c95a6e.chunk.js + monitoring/static/js/5378.86805fba.chunk.js monitoring/static/js/5378.86805fba.chunk.js + monitoring/static/js/5378.86805fba.chunk.js.LICENSE.txt monitoring/static/js/5378.86805fba.chunk.js.LICENSE.txt + monitoring/static/js/5387.8af1d694.chunk.js monitoring/static/js/5387.8af1d694.chunk.js + monitoring/static/js/5399.f9398084.chunk.js monitoring/static/js/5399.f9398084.chunk.js + monitoring/static/js/5448.cef3c129.chunk.js monitoring/static/js/5448.cef3c129.chunk.js + monitoring/static/js/5450.f0dcfc15.chunk.js monitoring/static/js/5450.f0dcfc15.chunk.js + monitoring/static/js/5491.a460479e.chunk.js monitoring/static/js/5491.a460479e.chunk.js + monitoring/static/js/556.55f00ac6.chunk.js monitoring/static/js/556.55f00ac6.chunk.js + monitoring/static/js/5643.00957838.chunk.js monitoring/static/js/5643.00957838.chunk.js + monitoring/static/js/5661.c83a4eb0.chunk.js monitoring/static/js/5661.c83a4eb0.chunk.js + monitoring/static/js/5661.c83a4eb0.chunk.js.LICENSE.txt monitoring/static/js/5661.c83a4eb0.chunk.js.LICENSE.txt + monitoring/static/js/5670.5c30cef1.chunk.js monitoring/static/js/5670.5c30cef1.chunk.js + monitoring/static/js/5720.39a954f1.chunk.js monitoring/static/js/5720.39a954f1.chunk.js + monitoring/static/js/5790.e3d88e2c.chunk.js monitoring/static/js/5790.e3d88e2c.chunk.js + monitoring/static/js/5790.e3d88e2c.chunk.js.LICENSE.txt monitoring/static/js/5790.e3d88e2c.chunk.js.LICENSE.txt + monitoring/static/js/5809.d78ebebb.chunk.js monitoring/static/js/5809.d78ebebb.chunk.js + monitoring/static/js/5863.e2cd2452.chunk.js monitoring/static/js/5863.e2cd2452.chunk.js + monitoring/static/js/5868.be04313a.chunk.js monitoring/static/js/5868.be04313a.chunk.js + monitoring/static/js/5868.be04313a.chunk.js.LICENSE.txt monitoring/static/js/5868.be04313a.chunk.js.LICENSE.txt + monitoring/static/js/598.243fd68d.chunk.js monitoring/static/js/598.243fd68d.chunk.js + monitoring/static/js/599.c58caf58.chunk.js monitoring/static/js/599.c58caf58.chunk.js + monitoring/static/js/6044.2de9962d.chunk.js monitoring/static/js/6044.2de9962d.chunk.js + monitoring/static/js/6044.2de9962d.chunk.js.LICENSE.txt monitoring/static/js/6044.2de9962d.chunk.js.LICENSE.txt + monitoring/static/js/6058.7f474f92.chunk.js monitoring/static/js/6058.7f474f92.chunk.js + monitoring/static/js/6065.b08e9640.chunk.js monitoring/static/js/6065.b08e9640.chunk.js + monitoring/static/js/6142.b2452554.chunk.js monitoring/static/js/6142.b2452554.chunk.js + monitoring/static/js/6142.b2452554.chunk.js.LICENSE.txt monitoring/static/js/6142.b2452554.chunk.js.LICENSE.txt + monitoring/static/js/6144.e1568f26.chunk.js monitoring/static/js/6144.e1568f26.chunk.js + monitoring/static/js/6156.0c562627.chunk.js monitoring/static/js/6156.0c562627.chunk.js + monitoring/static/js/619.f27ddcbd.chunk.js monitoring/static/js/619.f27ddcbd.chunk.js + monitoring/static/js/619.f27ddcbd.chunk.js.LICENSE.txt monitoring/static/js/619.f27ddcbd.chunk.js.LICENSE.txt + monitoring/static/js/620.7aea5425.chunk.js monitoring/static/js/620.7aea5425.chunk.js + monitoring/static/js/6227.fc562bbf.chunk.js monitoring/static/js/6227.fc562bbf.chunk.js + monitoring/static/js/6230.8e64216a.chunk.js monitoring/static/js/6230.8e64216a.chunk.js + monitoring/static/js/6230.8e64216a.chunk.js.LICENSE.txt monitoring/static/js/6230.8e64216a.chunk.js.LICENSE.txt + monitoring/static/js/6289.51f8741e.chunk.js monitoring/static/js/6289.51f8741e.chunk.js + monitoring/static/js/6289.51f8741e.chunk.js.LICENSE.txt monitoring/static/js/6289.51f8741e.chunk.js.LICENSE.txt + monitoring/static/js/6291.e7cdf7f2.chunk.js monitoring/static/js/6291.e7cdf7f2.chunk.js + monitoring/static/js/6300.dca75d45.chunk.js monitoring/static/js/6300.dca75d45.chunk.js + monitoring/static/js/6300.dca75d45.chunk.js.LICENSE.txt monitoring/static/js/6300.dca75d45.chunk.js.LICENSE.txt + monitoring/static/js/632.b6c03857.chunk.js monitoring/static/js/632.b6c03857.chunk.js + monitoring/static/js/6321.aa3e44de.chunk.js monitoring/static/js/6321.aa3e44de.chunk.js + monitoring/static/js/6321.aa3e44de.chunk.js.LICENSE.txt monitoring/static/js/6321.aa3e44de.chunk.js.LICENSE.txt + monitoring/static/js/6329.d78c1432.chunk.js monitoring/static/js/6329.d78c1432.chunk.js + monitoring/static/js/6329.d78c1432.chunk.js.LICENSE.txt monitoring/static/js/6329.d78c1432.chunk.js.LICENSE.txt + monitoring/static/js/6361.a9f11e7a.chunk.js monitoring/static/js/6361.a9f11e7a.chunk.js + monitoring/static/js/6390.497d0ec8.chunk.js monitoring/static/js/6390.497d0ec8.chunk.js + monitoring/static/js/6390.497d0ec8.chunk.js.LICENSE.txt monitoring/static/js/6390.497d0ec8.chunk.js.LICENSE.txt + monitoring/static/js/6392.134ee5e4.chunk.js monitoring/static/js/6392.134ee5e4.chunk.js + monitoring/static/js/6393.b0de2d9e.chunk.js monitoring/static/js/6393.b0de2d9e.chunk.js + monitoring/static/js/6521.371403ec.chunk.js monitoring/static/js/6521.371403ec.chunk.js + monitoring/static/js/6531.7eac62d1.chunk.js monitoring/static/js/6531.7eac62d1.chunk.js + monitoring/static/js/6619.9e1de7a6.chunk.js monitoring/static/js/6619.9e1de7a6.chunk.js + monitoring/static/js/6619.9e1de7a6.chunk.js.LICENSE.txt monitoring/static/js/6619.9e1de7a6.chunk.js.LICENSE.txt + monitoring/static/js/6679.6e0a87d5.chunk.js monitoring/static/js/6679.6e0a87d5.chunk.js + monitoring/static/js/6692.9322b59d.chunk.js monitoring/static/js/6692.9322b59d.chunk.js + monitoring/static/js/6692.9322b59d.chunk.js.LICENSE.txt monitoring/static/js/6692.9322b59d.chunk.js.LICENSE.txt + monitoring/static/js/674.e6536250.chunk.js monitoring/static/js/674.e6536250.chunk.js + monitoring/static/js/678.b73063ff.chunk.js monitoring/static/js/678.b73063ff.chunk.js + monitoring/static/js/6795.5ec0c96a.chunk.js monitoring/static/js/6795.5ec0c96a.chunk.js + monitoring/static/js/6795.5ec0c96a.chunk.js.LICENSE.txt monitoring/static/js/6795.5ec0c96a.chunk.js.LICENSE.txt + monitoring/static/js/6815.672badd5.chunk.js monitoring/static/js/6815.672badd5.chunk.js + monitoring/static/js/6876.867b698c.chunk.js monitoring/static/js/6876.867b698c.chunk.js + monitoring/static/js/6877.d2d51d98.chunk.js monitoring/static/js/6877.d2d51d98.chunk.js + monitoring/static/js/6887.0855fd66.chunk.js monitoring/static/js/6887.0855fd66.chunk.js + monitoring/static/js/6892.2c3c2bcb.chunk.js monitoring/static/js/6892.2c3c2bcb.chunk.js + monitoring/static/js/6898.5580b941.chunk.js monitoring/static/js/6898.5580b941.chunk.js + monitoring/static/js/6898.5580b941.chunk.js.LICENSE.txt monitoring/static/js/6898.5580b941.chunk.js.LICENSE.txt + monitoring/static/js/6919.84ed9ccc.chunk.js monitoring/static/js/6919.84ed9ccc.chunk.js + monitoring/static/js/6919.84ed9ccc.chunk.js.LICENSE.txt monitoring/static/js/6919.84ed9ccc.chunk.js.LICENSE.txt + monitoring/static/js/6954.e18be130.chunk.js monitoring/static/js/6954.e18be130.chunk.js + monitoring/static/js/6961.f4888ae1.chunk.js monitoring/static/js/6961.f4888ae1.chunk.js + monitoring/static/js/7016.4a34a027.chunk.js monitoring/static/js/7016.4a34a027.chunk.js + monitoring/static/js/704.45771d88.chunk.js monitoring/static/js/704.45771d88.chunk.js + monitoring/static/js/7119.e94f8dac.chunk.js monitoring/static/js/7119.e94f8dac.chunk.js + monitoring/static/js/7202.fefd43ee.chunk.js monitoring/static/js/7202.fefd43ee.chunk.js + monitoring/static/js/7257.8ce0d045.chunk.js monitoring/static/js/7257.8ce0d045.chunk.js + monitoring/static/js/7276.47f377a4.chunk.js monitoring/static/js/7276.47f377a4.chunk.js + monitoring/static/js/7388.9f447514.chunk.js monitoring/static/js/7388.9f447514.chunk.js + monitoring/static/js/7409.4408962b.chunk.js monitoring/static/js/7409.4408962b.chunk.js + monitoring/static/js/7520.d245d6ac.chunk.js monitoring/static/js/7520.d245d6ac.chunk.js + monitoring/static/js/7520.d245d6ac.chunk.js.LICENSE.txt monitoring/static/js/7520.d245d6ac.chunk.js.LICENSE.txt + monitoring/static/js/7522.1a0f9c02.chunk.js monitoring/static/js/7522.1a0f9c02.chunk.js + monitoring/static/js/7529.ddf87a9a.chunk.js monitoring/static/js/7529.ddf87a9a.chunk.js + monitoring/static/js/7529.ddf87a9a.chunk.js.LICENSE.txt monitoring/static/js/7529.ddf87a9a.chunk.js.LICENSE.txt + monitoring/static/js/7543.3fcfd3ba.chunk.js monitoring/static/js/7543.3fcfd3ba.chunk.js + monitoring/static/js/7543.3fcfd3ba.chunk.js.LICENSE.txt monitoring/static/js/7543.3fcfd3ba.chunk.js.LICENSE.txt + monitoring/static/js/7554.28f3da22.chunk.js monitoring/static/js/7554.28f3da22.chunk.js + monitoring/static/js/7554.28f3da22.chunk.js.LICENSE.txt monitoring/static/js/7554.28f3da22.chunk.js.LICENSE.txt + monitoring/static/js/7645.6565454c.chunk.js monitoring/static/js/7645.6565454c.chunk.js + monitoring/static/js/7684.a3920b72.chunk.js monitoring/static/js/7684.a3920b72.chunk.js + monitoring/static/js/7779.9d9b07ae.chunk.js monitoring/static/js/7779.9d9b07ae.chunk.js + monitoring/static/js/7803.a56cfca6.chunk.js monitoring/static/js/7803.a56cfca6.chunk.js + monitoring/static/js/785.d2eae69c.chunk.js monitoring/static/js/785.d2eae69c.chunk.js + monitoring/static/js/785.d2eae69c.chunk.js.LICENSE.txt monitoring/static/js/785.d2eae69c.chunk.js.LICENSE.txt + monitoring/static/js/7992.20690745.chunk.js monitoring/static/js/7992.20690745.chunk.js + monitoring/static/js/7999.bdf4fe79.chunk.js monitoring/static/js/7999.bdf4fe79.chunk.js + monitoring/static/js/8011.4fed4307.chunk.js monitoring/static/js/8011.4fed4307.chunk.js + monitoring/static/js/8065.666ef449.chunk.js monitoring/static/js/8065.666ef449.chunk.js + monitoring/static/js/8065.666ef449.chunk.js.LICENSE.txt monitoring/static/js/8065.666ef449.chunk.js.LICENSE.txt + monitoring/static/js/8133.2afc4db4.chunk.js monitoring/static/js/8133.2afc4db4.chunk.js + monitoring/static/js/8140.8d8e9309.chunk.js monitoring/static/js/8140.8d8e9309.chunk.js + monitoring/static/js/8167.b9a90da5.chunk.js monitoring/static/js/8167.b9a90da5.chunk.js + monitoring/static/js/8424.5b5c42b5.chunk.js monitoring/static/js/8424.5b5c42b5.chunk.js + monitoring/static/js/8424.5b5c42b5.chunk.js.LICENSE.txt monitoring/static/js/8424.5b5c42b5.chunk.js.LICENSE.txt + monitoring/static/js/8450.baf3a89d.chunk.js monitoring/static/js/8450.baf3a89d.chunk.js + monitoring/static/js/8450.baf3a89d.chunk.js.LICENSE.txt monitoring/static/js/8450.baf3a89d.chunk.js.LICENSE.txt + monitoring/static/js/8591.93172fe9.chunk.js monitoring/static/js/8591.93172fe9.chunk.js + monitoring/static/js/86.ad271bdc.chunk.js monitoring/static/js/86.ad271bdc.chunk.js + monitoring/static/js/86.ad271bdc.chunk.js.LICENSE.txt monitoring/static/js/86.ad271bdc.chunk.js.LICENSE.txt + monitoring/static/js/8607.1e377882.chunk.js monitoring/static/js/8607.1e377882.chunk.js + monitoring/static/js/8622.49f3054c.chunk.js monitoring/static/js/8622.49f3054c.chunk.js + monitoring/static/js/8695.f17f8853.chunk.js monitoring/static/js/8695.f17f8853.chunk.js + monitoring/static/js/8702.69a3e0d5.chunk.js monitoring/static/js/8702.69a3e0d5.chunk.js + monitoring/static/js/8747.baf63d86.chunk.js monitoring/static/js/8747.baf63d86.chunk.js + monitoring/static/js/8791.b209de42.chunk.js monitoring/static/js/8791.b209de42.chunk.js + monitoring/static/js/8791.b209de42.chunk.js.LICENSE.txt monitoring/static/js/8791.b209de42.chunk.js.LICENSE.txt + monitoring/static/js/8797.f8f0ce13.chunk.js monitoring/static/js/8797.f8f0ce13.chunk.js + monitoring/static/js/8797.f8f0ce13.chunk.js.LICENSE.txt monitoring/static/js/8797.f8f0ce13.chunk.js.LICENSE.txt + monitoring/static/js/8850.97635389.chunk.js monitoring/static/js/8850.97635389.chunk.js + monitoring/static/js/8853.c8f9e9d6.chunk.js monitoring/static/js/8853.c8f9e9d6.chunk.js + monitoring/static/js/8858.cd9d49a5.chunk.js monitoring/static/js/8858.cd9d49a5.chunk.js + monitoring/static/js/8905.b8a9fd91.chunk.js monitoring/static/js/8905.b8a9fd91.chunk.js + monitoring/static/js/8905.b8a9fd91.chunk.js.LICENSE.txt monitoring/static/js/8905.b8a9fd91.chunk.js.LICENSE.txt + monitoring/static/js/9101.ce051539.chunk.js monitoring/static/js/9101.ce051539.chunk.js + monitoring/static/js/9173.71d773f2.chunk.js monitoring/static/js/9173.71d773f2.chunk.js + monitoring/static/js/9173.71d773f2.chunk.js.LICENSE.txt monitoring/static/js/9173.71d773f2.chunk.js.LICENSE.txt + monitoring/static/js/919.53e04507.chunk.js monitoring/static/js/919.53e04507.chunk.js + monitoring/static/js/919.53e04507.chunk.js.LICENSE.txt monitoring/static/js/919.53e04507.chunk.js.LICENSE.txt + monitoring/static/js/9204.77418f94.chunk.js monitoring/static/js/9204.77418f94.chunk.js + monitoring/static/js/9207.5881b206.chunk.js monitoring/static/js/9207.5881b206.chunk.js + monitoring/static/js/9212.870f16f0.chunk.js monitoring/static/js/9212.870f16f0.chunk.js + monitoring/static/js/9219.24a20881.chunk.js monitoring/static/js/9219.24a20881.chunk.js + monitoring/static/js/924.382f18b1.chunk.js monitoring/static/js/924.382f18b1.chunk.js + monitoring/static/js/924.382f18b1.chunk.js.LICENSE.txt monitoring/static/js/924.382f18b1.chunk.js.LICENSE.txt + monitoring/static/js/9280.40cff028.chunk.js monitoring/static/js/9280.40cff028.chunk.js + monitoring/static/js/9292.91ed23f7.chunk.js monitoring/static/js/9292.91ed23f7.chunk.js + monitoring/static/js/9297.eadc4dba.chunk.js monitoring/static/js/9297.eadc4dba.chunk.js + monitoring/static/js/9308.c72b8585.chunk.js monitoring/static/js/9308.c72b8585.chunk.js + monitoring/static/js/9319.40f9e46a.chunk.js monitoring/static/js/9319.40f9e46a.chunk.js + monitoring/static/js/9319.40f9e46a.chunk.js.LICENSE.txt monitoring/static/js/9319.40f9e46a.chunk.js.LICENSE.txt + monitoring/static/js/9371.b42befbc.chunk.js monitoring/static/js/9371.b42befbc.chunk.js + monitoring/static/js/9371.b42befbc.chunk.js.LICENSE.txt monitoring/static/js/9371.b42befbc.chunk.js.LICENSE.txt + monitoring/static/js/9411.96fb3e2f.chunk.js monitoring/static/js/9411.96fb3e2f.chunk.js + monitoring/static/js/9413.b2921c36.chunk.js monitoring/static/js/9413.b2921c36.chunk.js + monitoring/static/js/9433.7ce648d0.chunk.js monitoring/static/js/9433.7ce648d0.chunk.js + monitoring/static/js/9433.7ce648d0.chunk.js.LICENSE.txt monitoring/static/js/9433.7ce648d0.chunk.js.LICENSE.txt + monitoring/static/js/9526.10bb1684.chunk.js monitoring/static/js/9526.10bb1684.chunk.js + monitoring/static/js/9526.10bb1684.chunk.js.LICENSE.txt monitoring/static/js/9526.10bb1684.chunk.js.LICENSE.txt + monitoring/static/js/9528.9991c023.chunk.js monitoring/static/js/9528.9991c023.chunk.js + monitoring/static/js/9555.c9b5ee61.chunk.js monitoring/static/js/9555.c9b5ee61.chunk.js + monitoring/static/js/9572.9f83f004.chunk.js monitoring/static/js/9572.9f83f004.chunk.js + monitoring/static/js/96.6e1bf3f4.chunk.js monitoring/static/js/96.6e1bf3f4.chunk.js + monitoring/static/js/9621.48073631.chunk.js monitoring/static/js/9621.48073631.chunk.js + monitoring/static/js/9621.48073631.chunk.js.LICENSE.txt monitoring/static/js/9621.48073631.chunk.js.LICENSE.txt + monitoring/static/js/9876.b336d1f5.chunk.js monitoring/static/js/9876.b336d1f5.chunk.js + monitoring/static/js/9876.b336d1f5.chunk.js.LICENSE.txt monitoring/static/js/9876.b336d1f5.chunk.js.LICENSE.txt + monitoring/static/js/9917.67d792e3.chunk.js monitoring/static/js/9917.67d792e3.chunk.js + monitoring/static/js/9923.270f0a19.chunk.js monitoring/static/js/9923.270f0a19.chunk.js + monitoring/static/js/9923.270f0a19.chunk.js.LICENSE.txt monitoring/static/js/9923.270f0a19.chunk.js.LICENSE.txt + monitoring/static/js/main.62a60ecb.js monitoring/static/js/main.62a60ecb.js + monitoring/static/js/main.62a60ecb.js.LICENSE.txt monitoring/static/js/main.62a60ecb.js.LICENSE.txt + 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.762fced46d6cddbda272.ttf monitoring/static/media/codicon.762fced46d6cddbda272.ttf + monitoring/static/media/error.9bbd075178a739dcc30f2a7a3e2a3249.svg monitoring/static/media/error.9bbd075178a739dcc30f2a7a3e2a3249.svg + monitoring/static/media/error.ca9e31d5d3dc34da07e11a00f7af0842.svg monitoring/static/media/error.ca9e31d5d3dc34da07e11a00f7af0842.svg + monitoring/static/media/thumbsUp.d4a03fbaa64ce85a0045bf8ba77f8e2b.svg monitoring/static/media/thumbsUp.d4a03fbaa64ce85a0045bf8ba77f8e2b.svg ) # GENERATED MONITORING RESOURCES END ENDIF() diff --git a/ydb/core/wrappers/fake_storage.h b/ydb/core/wrappers/fake_storage.h index 510fb0c2ab4c..c672835c9874 100644 --- a/ydb/core/wrappers/fake_storage.h +++ b/ydb/core/wrappers/fake_storage.h @@ -17,7 +17,22 @@ class TFakeBucketStorage { private: mutable TMutex Mutex; TMap<TString, TString> Data; + static inline TAtomicCounter WritesCount; + static inline TAtomicCounter DeletesCount; public: + static i64 GetWritesCount() { + return WritesCount.Val(); + } + + static i64 GetDeletesCount() { + return DeletesCount.Val(); + } + + static void ResetWriteCounters() { + WritesCount = 0; + DeletesCount = 0; + } + TMap<TString, TString>::const_iterator begin() const { return Data.begin(); } @@ -28,6 +43,7 @@ class TFakeBucketStorage { return Data.size(); } void PutObject(const TString& objectId, const TString& data) { + WritesCount.Inc(); TGuard<TMutex> g(Mutex); Data[objectId] = data; } @@ -40,6 +56,8 @@ class TFakeBucketStorage { return it->second; } void Remove(const TString& objectId) { + DeletesCount.Inc(); + TGuard<TMutex> g(Mutex); Data.erase(objectId); } }; @@ -57,6 +75,19 @@ class TFakeExternalStorage { } public: TFakeExternalStorage() = default; + + static i64 GetWritesCount() { + return TFakeBucketStorage::GetWritesCount(); + } + + static i64 GetDeletesCount() { + return TFakeBucketStorage::GetDeletesCount(); + } + + static void ResetWriteCounters() { + return TFakeBucketStorage::ResetWriteCounters(); + } + const TFakeBucketStorage& GetBucket(const TString& bucketId) const { TGuard<TMutex> g(Mutex); auto it = BucketStorages.find(bucketId); @@ -106,12 +137,17 @@ class TFakeExternalStorageOperator: public IExternalStorageOperator { private: const TString Bucket; const TString SecretKey; + std::shared_ptr<TFakeExternalStorage> OwnedStorage; template <class TEvent> void ExecuteImpl(TEvent& ev) const { ev->Get()->MutableRequest().WithBucket(Bucket); Y_ABORT_UNLESS(SecretKey == Singleton<TFakeExternalStorage>()->GetSecretKey()); - Singleton<TFakeExternalStorage>()->Execute(ev, ReplyAdapter); + if (OwnedStorage) { + OwnedStorage->Execute(ev, ReplyAdapter); + } else { + Singleton<TFakeExternalStorage>()->Execute(ev, ReplyAdapter); + } } virtual TString DoDebugString() const override { @@ -119,9 +155,10 @@ class TFakeExternalStorageOperator: public IExternalStorageOperator { } public: - TFakeExternalStorageOperator(const TString& bucket, const TString& secretKey) + TFakeExternalStorageOperator(const TString& bucket, const TString& secretKey, const std::shared_ptr<TFakeExternalStorage> storage = {}) : Bucket(bucket) , SecretKey(secretKey) + , OwnedStorage(storage) { } virtual void Execute(TEvCheckObjectExistsRequest::TPtr& ev) const override { diff --git a/ydb/core/wrappers/s3_storage.h b/ydb/core/wrappers/s3_storage.h index 4cbb58687f21..d678f237616e 100644 --- a/ydb/core/wrappers/s3_storage.h +++ b/ydb/core/wrappers/s3_storage.h @@ -67,9 +67,7 @@ class TS3ExternalStorage: public IExternalStorageOperator, TS3User { Y_DEFER { std::unique_lock guard(RunningQueriesMutex); --RunningQueriesCount; - bool needNotify = (RunningQueriesCount == 0); - guard.unlock(); - if (needNotify) { + if (RunningQueriesCount == 0) { RunningQueriesNotifier.notify_all(); } }; diff --git a/ydb/core/wrappers/s3_storage_config.cpp b/ydb/core/wrappers/s3_storage_config.cpp index 079cd7fb4585..ffc3016e2096 100644 --- a/ydb/core/wrappers/s3_storage_config.cpp +++ b/ydb/core/wrappers/s3_storage_config.cpp @@ -5,6 +5,8 @@ #include <contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/stream/PreallocatedStreamBuf.h> #include <contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/stream/ResponseStream.h> #include <contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/Aws.h> +#include <contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/threading/Executor.h> + #include <contrib/libs/curl/include/curl/curl.h> #include <ydb/library/actors/core/actorsystem.h> #include <ydb/library/actors/core/log.h> @@ -92,6 +94,41 @@ TS3User::~TS3User() { Singleton<TApiOwner>()->UnRef(); } +class TS3ThreadsPoolByEndpoint { +private: + + class TPool { + public: + std::shared_ptr<Aws::Utils::Threading::PooledThreadExecutor> Executor; + ui32 ThreadsCount = 0; + TPool(const std::shared_ptr<Aws::Utils::Threading::PooledThreadExecutor>& executor, const ui32 threadsCount) + : Executor(executor) + , ThreadsCount(threadsCount) + { + + } + }; + + THashMap<TString, TPool> Pools; + TMutex Mutex; + std::shared_ptr<Aws::Utils::Threading::PooledThreadExecutor> GetPoolImpl(const TString& endpoint, const ui32 threadsCount) { + TGuard<TMutex> g(Mutex); + auto it = Pools.find(endpoint); + if (it == Pools.end()) { + TPool pool(std::make_shared<Aws::Utils::Threading::PooledThreadExecutor>(threadsCount), threadsCount); + it = Pools.emplace(endpoint, std::move(pool)).first; + } else if (it->second.ThreadsCount < threadsCount) { + TPool pool(std::make_shared<Aws::Utils::Threading::PooledThreadExecutor>(threadsCount), threadsCount); + it->second = std::move(pool); + } + return it->second.Executor; + } +public: + static std::shared_ptr<Aws::Utils::Threading::PooledThreadExecutor> GetPool(const TString& endpoint, const ui32 threadsCount) { + return Singleton<TS3ThreadsPoolByEndpoint>()->GetPoolImpl(endpoint, threadsCount); + } +}; + Aws::Client::ClientConfiguration TS3ExternalStorageConfig::ConfigFromSettings(const NKikimrSchemeOp::TS3Settings& settings) { Aws::Client::ClientConfiguration config; @@ -105,9 +142,10 @@ Aws::Client::ClientConfiguration TS3ExternalStorageConfig::ConfigFromSettings(co if (settings.HasHttpRequestTimeoutMs()) { config.httpRequestTimeoutMs = settings.GetHttpRequestTimeoutMs(); } + config.executor = TS3ThreadsPoolByEndpoint::GetPool(settings.GetEndpoint(), settings.GetExecutorThreadsCount()); config.enableTcpKeepAlive = true; // config.lowSpeedLimit = 0; - config.maxConnections = 5; + config.maxConnections = settings.HasMaxConnectionsCount() ? settings.GetMaxConnectionsCount() : settings.GetExecutorThreadsCount(); config.caPath = "/etc/ssl/certs"; switch (settings.GetScheme()) { @@ -152,6 +190,7 @@ Aws::Client::ClientConfiguration TS3ExternalStorageConfig::ConfigFromSettings(co Aws::Client::ClientConfiguration config; config.endpointOverride = settings.endpoint(); + config.executor = std::make_shared<Aws::Utils::Threading::PooledThreadExecutor>(1); config.verifySSL = false; config.connectTimeoutMs = 10000; config.maxConnections = 5; diff --git a/ydb/core/wrappers/ut/CMakeLists.darwin-arm64.txt b/ydb/core/wrappers/ut/CMakeLists.darwin-arm64.txt index e71e9f85c201..5c81cf092818 100644 --- a/ydb/core/wrappers/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/wrappers/ut/CMakeLists.darwin-arm64.txt @@ -24,14 +24,13 @@ target_link_libraries(ydb-core-wrappers-ut PUBLIC cpp-testing-unittest ydb-core-protos testlib-basics-default + minikql-comp_nodes-llvm14 core-wrappers-ut_helpers ) target_link_options(ydb-core-wrappers-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-wrappers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/s3_wrapper_ut.cpp @@ -61,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/wrappers/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/wrappers/ut/CMakeLists.darwin-x86_64.txt index feea9aa33191..c98d3a32807d 100644 --- a/ydb/core/wrappers/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/wrappers/ut/CMakeLists.darwin-x86_64.txt @@ -25,14 +25,13 @@ target_link_libraries(ydb-core-wrappers-ut PUBLIC cpp-testing-unittest ydb-core-protos testlib-basics-default + minikql-comp_nodes-llvm14 core-wrappers-ut_helpers ) target_link_options(ydb-core-wrappers-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-wrappers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/s3_wrapper_ut.cpp @@ -62,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/wrappers/ut/CMakeLists.linux-aarch64.txt b/ydb/core/wrappers/ut/CMakeLists.linux-aarch64.txt index 992e329050ff..e515299a2c51 100644 --- a/ydb/core/wrappers/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/wrappers/ut/CMakeLists.linux-aarch64.txt @@ -25,6 +25,7 @@ target_link_libraries(ydb-core-wrappers-ut PUBLIC cpp-testing-unittest ydb-core-protos testlib-basics-default + minikql-comp_nodes-llvm14 core-wrappers-ut_helpers ) target_link_options(ydb-core-wrappers-ut PRIVATE @@ -33,9 +34,6 @@ target_link_options(ydb-core-wrappers-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-wrappers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/s3_wrapper_ut.cpp @@ -65,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/wrappers/ut/CMakeLists.linux-x86_64.txt b/ydb/core/wrappers/ut/CMakeLists.linux-x86_64.txt index 9f6600034beb..a616e191b232 100644 --- a/ydb/core/wrappers/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/wrappers/ut/CMakeLists.linux-x86_64.txt @@ -26,6 +26,7 @@ target_link_libraries(ydb-core-wrappers-ut PUBLIC cpp-testing-unittest ydb-core-protos testlib-basics-default + minikql-comp_nodes-llvm14 core-wrappers-ut_helpers ) target_link_options(ydb-core-wrappers-ut PRIVATE @@ -34,9 +35,6 @@ target_link_options(ydb-core-wrappers-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-wrappers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/wrappers/s3_wrapper_ut.cpp @@ -66,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/wrappers/ut/CMakeLists.windows-x86_64.txt b/ydb/core/wrappers/ut/CMakeLists.windows-x86_64.txt index c6502dd978a8..85e0d563974b 100644 --- a/ydb/core/wrappers/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/wrappers/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/wrappers/ut_helpers/s3_mock.cpp b/ydb/core/wrappers/ut_helpers/s3_mock.cpp index f69f78709515..220e3f521c2a 100644 --- a/ydb/core/wrappers/ut_helpers/s3_mock.cpp +++ b/ydb/core/wrappers/ut_helpers/s3_mock.cpp @@ -20,13 +20,13 @@ TS3Mock::TSettings::TSettings() } TS3Mock::TSettings::TSettings(ui16 port) - : HttpOptions(TOptions(port).SetThreads(1)) + : HttpOptions(THttpServer::TOptions(port).SetThreads(1)) , CorruptETags(false) , RejectUploadParts(false) { } -TS3Mock::TSettings& TS3Mock::TSettings::WithHttpOptions(const TOptions& opts) { +TS3Mock::TSettings& TS3Mock::TSettings::WithHttpOptions(const THttpServer::TOptions& opts) { HttpOptions = opts; return *this; } @@ -388,23 +388,27 @@ bool TS3Mock::TRequest::DoReply(const TReplyParams& params) { } } +bool TS3Mock::Start() { + return HttpServer.Start(); +} + TS3Mock::TS3Mock(const TSettings& settings) - : THttpServer(this, settings.HttpOptions) - , Settings(settings) + : Settings(settings) + , HttpServer(this, settings.HttpOptions) { } TS3Mock::TS3Mock(THashMap<TString, TString>&& data, const TSettings& settings) - : THttpServer(this, settings.HttpOptions) - , Settings(settings) + : Settings(settings) , Data(std::move(data)) + , HttpServer(this, settings.HttpOptions) { } TS3Mock::TS3Mock(const THashMap<TString, TString>& data, const TSettings& settings) - : THttpServer(this, settings.HttpOptions) - , Settings(settings) + : Settings(settings) , Data(data) + , HttpServer(this, settings.HttpOptions) { } diff --git a/ydb/core/wrappers/ut_helpers/s3_mock.h b/ydb/core/wrappers/ut_helpers/s3_mock.h index 512b4d51f710..19162ef62fe6 100644 --- a/ydb/core/wrappers/ut_helpers/s3_mock.h +++ b/ydb/core/wrappers/ut_helpers/s3_mock.h @@ -11,17 +11,17 @@ namespace NKikimr { namespace NWrappers { namespace NTestHelpers { -class TS3Mock: public THttpServer, public THttpServer::ICallBack { +class TS3Mock: public THttpServer::ICallBack { public: struct TSettings { - TOptions HttpOptions; + THttpServer::TOptions HttpOptions; bool CorruptETags; bool RejectUploadParts; TSettings(); explicit TSettings(ui16 port); - TSettings& WithHttpOptions(const TOptions& opts); + TSettings& WithHttpOptions(const THttpServer::TOptions& opts); TSettings& WithCorruptETags(bool value); TSettings& WithRejectUploadParts(bool value); @@ -65,7 +65,8 @@ class TS3Mock: public THttpServer, public THttpServer::ICallBack { explicit TS3Mock(THashMap<TString, TString>&& data, const TSettings& settings = {}); explicit TS3Mock(const THashMap<TString, TString>& data, const TSettings& settings = {}); - TClientRequest* CreateClient() override; + TClientRequest* CreateClient(); + bool Start(); const THashMap<TString, TString>& GetData() const { return Data; } @@ -75,6 +76,7 @@ class TS3Mock: public THttpServer, public THttpServer::ICallBack { int NextUploadId = 1; THashMap<std::pair<TString, TString>, TVector<TString>> MultipartUploads; + THttpServer HttpServer; }; // TS3Mock diff --git a/ydb/core/ya.make b/ydb/core/ya.make index ddc2239a6b06..448497f2b4cd 100644 --- a/ydb/core/ya.make +++ b/ydb/core/ya.make @@ -60,6 +60,7 @@ RECURSE( ymq driver_lib yql_testlib + jaeger_tracing ) RECURSE_FOR_TESTS( diff --git a/ydb/core/ydb_convert/table_description.cpp b/ydb/core/ydb_convert/table_description.cpp index ad283f387571..3ca7f16acd6b 100644 --- a/ydb/core/ydb_convert/table_description.cpp +++ b/ydb/core/ydb_convert/table_description.cpp @@ -151,11 +151,11 @@ bool BuildAlterTableAddIndexRequest(const Ydb::Table::AlterTableRequest* req, NK if (flags & NKqpProto::TKqpSchemeOperation::FLAG_PG_MODE) { settings->set_pg_mode(true); } - + if (flags & NKqpProto::TKqpSchemeOperation::FLAG_IF_NOT_EXISTS) { settings->set_if_not_exist(true); } - + settings->set_source_path(req->path()); auto tableIndex = settings->mutable_index(); tableIndex->CopyFrom(req->add_indexes(0)); @@ -367,13 +367,56 @@ static Ydb::Type* AddColumn(Ydb::Table::ColumnMeta* newColumn, const TColumn& co pg->set_oid(NPg::PgTypeIdFromTypeDesc(typeDesc)); pg->set_typlen(0); pg->set_typmod(0); + if (column.GetNotNull()) { + newColumn->set_not_null(column.GetNotNull()); + } } else { NYql::NProto::TypeIds protoType; if (!NYql::NProto::TypeIds_Parse(column.GetType(), &protoType)) { throw NYql::TErrorException(NKikimrIssues::TIssuesIds::DEFAULT_ERROR) << "Got invalid type: " << column.GetType() << " for column: " << column.GetName(); } + if (column.GetNotNull()) { + columnType = newColumn->mutable_type(); + } else { + columnType = newColumn->mutable_type()->mutable_optional_type()->mutable_item(); + } + Y_ENSURE(columnType); + if (protoType == NYql::NProto::TypeIds::Decimal) { + auto typeParams = columnType->mutable_decimal_type(); + // TODO: Change TEvDescribeSchemeResult to return decimal params + typeParams->set_precision(22); + typeParams->set_scale(9); + } else { + NMiniKQL::ExportPrimitiveTypeToProto(protoType, *columnType); + } + } + return columnType; +} + +template <> +Ydb::Type* AddColumn<NKikimrSchemeOp::TColumnDescription>(Ydb::Table::ColumnMeta* newColumn, const NKikimrSchemeOp::TColumnDescription& column) { + newColumn->set_name(column.GetName()); + Ydb::Type* columnType = nullptr; + auto* typeDesc = NPg::TypeDescFromPgTypeName(column.GetType()); + if (typeDesc) { + columnType = newColumn->mutable_type(); + auto* pg = columnType->mutable_pg_type(); + pg->set_type_name(NPg::PgTypeNameFromTypeDesc(typeDesc)); + pg->set_type_modifier(NPg::TypeModFromPgTypeName(column.GetType())); + pg->set_oid(NPg::PgTypeIdFromTypeDesc(typeDesc)); + pg->set_typlen(0); + pg->set_typmod(0); + if (column.GetNotNull()) { + newColumn->set_not_null(column.GetNotNull()); + } + } else { + NYql::NProto::TypeIds protoType; + if (!NYql::NProto::TypeIds_Parse(column.GetType(), &protoType)) { + throw NYql::TErrorException(NKikimrIssues::TIssuesIds::DEFAULT_ERROR) + << "Got invalid type: " << column.GetType() << " for column: " << column.GetName(); + } if (column.GetNotNull()) { columnType = newColumn->mutable_type(); } else { @@ -389,7 +432,19 @@ static Ydb::Type* AddColumn(Ydb::Table::ColumnMeta* newColumn, const TColumn& co NMiniKQL::ExportPrimitiveTypeToProto(protoType, *columnType); } } - newColumn->set_not_null(column.GetNotNull()); + switch (column.GetDefaultValueCase()) { + case NKikimrSchemeOp::TColumnDescription::kDefaultFromLiteral: { + auto fromLiteral = newColumn->mutable_from_literal(); + *fromLiteral = column.GetDefaultFromLiteral(); + break; + } + case NKikimrSchemeOp::TColumnDescription::kDefaultFromSequence: { + auto* fromSequence = newColumn->mutable_from_sequence(); + fromSequence->set_name(column.GetDefaultFromSequence()); + break; + } + default: break; + } return columnType; } @@ -607,6 +662,20 @@ bool FillColumnDescription(NKikimrSchemeOp::TTableDescription& out, if (!column.family().empty()) { cd->SetFamilyName(column.family()); } + + switch (column.default_value_case()) { + case Ydb::Table::ColumnMeta::kFromLiteral: { + auto fromLiteral = cd->MutableDefaultFromLiteral(); + *fromLiteral = column.from_literal(); + break; + } + case Ydb::Table::ColumnMeta::kFromSequence: { + auto fromSequence = cd->MutableDefaultFromSequence(); + *fromSequence = column.from_sequence().name(); + break; + } + default: break; + } } return true; @@ -1276,21 +1345,27 @@ void FillReadReplicasSettings(Ydb::Table::CreateTableRequest& out, bool FillTableDescription(NKikimrSchemeOp::TModifyScheme& out, const Ydb::Table::CreateTableRequest& in, const TTableProfiles& profiles, - Ydb::StatusIds::StatusCode& status, TString& error) + Ydb::StatusIds::StatusCode& status, TString& error, bool indexedTable) { - auto& tableDesc = *out.MutableCreateTable(); - if (!FillColumnDescription(tableDesc, in.columns(), status, error)) { + NKikimrSchemeOp::TTableDescription* tableDesc = nullptr; + if (indexedTable) { + tableDesc = out.MutableCreateIndexedTable()->MutableTableDescription(); + } else { + tableDesc = out.MutableCreateTable(); + } + + if (!FillColumnDescription(*tableDesc, in.columns(), status, error)) { return false; } - tableDesc.MutableKeyColumnNames()->CopyFrom(in.primary_key()); + tableDesc->MutableKeyColumnNames()->CopyFrom(in.primary_key()); - if (!profiles.ApplyTableProfile(in.profile(), tableDesc, status, error)) { + if (!profiles.ApplyTableProfile(in.profile(), *tableDesc, status, error)) { return false; } - TColumnFamilyManager families(tableDesc.MutablePartitionConfig()); + TColumnFamilyManager families(tableDesc->MutablePartitionConfig()); if (in.has_storage_settings() && !families.ApplyStorageSettings(in.storage_settings(), &status, &error)) { return false; } @@ -1307,11 +1382,59 @@ bool FillTableDescription(NKikimrSchemeOp::TModifyScheme& out, } TList<TString> warnings; - if (!FillCreateTableSettingsDesc(tableDesc, in, status, error, warnings, false)) { + if (!FillCreateTableSettingsDesc(*tableDesc, in, status, error, warnings, false)) { return false; } return true; } +void FillSequenceDescription(Ydb::Table::CreateTableRequest& out, const NKikimrSchemeOp::TTableDescription& in) { + THashMap<TString, NKikimrSchemeOp::TSequenceDescription> sequences; + + for (const auto& sequenceDescription : in.GetSequences()) { + sequences[sequenceDescription.GetName()] = sequenceDescription; + } + + for (auto& column : *out.mutable_columns()) { + + switch (column.default_value_case()) { + case Ydb::Table::ColumnMeta::kFromSequence: { + auto* fromSequence = column.mutable_from_sequence(); + + const auto& sequenceDescription = sequences.at(fromSequence->name()); + + if (sequenceDescription.HasMinValue()) { + fromSequence->set_min_value(sequenceDescription.GetMinValue()); + } + if (sequenceDescription.HasMaxValue()) { + fromSequence->set_max_value(sequenceDescription.GetMaxValue()); + } + if (sequenceDescription.HasStartValue()) { + fromSequence->set_start_value(sequenceDescription.GetStartValue()); + } + if (sequenceDescription.HasCache()) { + fromSequence->set_cache(sequenceDescription.GetCache()); + } + if (sequenceDescription.HasIncrement()) { + fromSequence->set_increment(sequenceDescription.GetIncrement()); + } + if (sequenceDescription.HasCycle()) { + fromSequence->set_cycle(sequenceDescription.GetCycle()); + } + if (sequenceDescription.HasSetVal()) { + auto* setVal = fromSequence->mutable_set_val(); + setVal->set_next_used(sequenceDescription.GetSetVal().GetNextUsed()); + setVal->set_next_value(sequenceDescription.GetSetVal().GetNextValue()); + } + break; + } + case Ydb::Table::ColumnMeta::kFromLiteral: { + break; + } + default: break; + } + } +} + } // namespace NKikimr diff --git a/ydb/core/ydb_convert/table_description.h b/ydb/core/ydb_convert/table_description.h index b3cd7d15a27c..8cbbe385214d 100644 --- a/ydb/core/ydb_convert/table_description.h +++ b/ydb/core/ydb_convert/table_description.h @@ -29,7 +29,7 @@ enum class EAlterOperationKind { struct TPathId; -THashSet<EAlterOperationKind> GetAlterOperationKinds(const Ydb::Table::AlterTableRequest* req); +THashSet<EAlterOperationKind> GetAlterOperationKinds(const Ydb::Table::AlterTableRequest* req); bool BuildAlterTableModifyScheme(const Ydb::Table::AlterTableRequest* req, NKikimrSchemeOp::TModifyScheme* modifyScheme, const TTableProfiles& profiles, const TPathId& resolvedPathId, Ydb::StatusIds::StatusCode& status, TString& error); @@ -125,6 +125,15 @@ void FillReadReplicasSettings(Ydb::Table::CreateTableRequest& out, // in bool FillTableDescription(NKikimrSchemeOp::TModifyScheme& out, const Ydb::Table::CreateTableRequest& in, const TTableProfiles& profiles, - Ydb::StatusIds::StatusCode& status, TString& error); + Ydb::StatusIds::StatusCode& status, TString& error, bool indexedTable = false); + + +// out +void FillSequenceDescription(Ydb::Table::CreateTableRequest& out, + const NKikimrSchemeOp::TTableDescription& in); + +// out +void FillSequenceDescription(Ydb::Table::CreateTableRequest& out, + const NKikimrSchemeOp::TTableDescription& in); } // namespace NKikimr diff --git a/ydb/core/ydb_convert/ut/CMakeLists.darwin-arm64.txt b/ydb/core/ydb_convert/ut/CMakeLists.darwin-arm64.txt index a4bd6b7a02e9..951acb6e1174 100644 --- a/ydb/core/ydb_convert/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/ydb_convert/ut/CMakeLists.darwin-arm64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-core-ydb_convert-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-ydb_convert-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ydb_convert/compression_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ydb_convert/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/ydb_convert/ut/CMakeLists.darwin-x86_64.txt index f555033f702f..c174f3670bcf 100644 --- a/ydb/core/ydb_convert/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/ydb_convert/ut/CMakeLists.darwin-x86_64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-core-ydb_convert-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-ydb_convert-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ydb_convert/compression_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ydb_convert/ut/CMakeLists.linux-aarch64.txt b/ydb/core/ydb_convert/ut/CMakeLists.linux-aarch64.txt index 41329355c027..becdd9b1f64c 100644 --- a/ydb/core/ydb_convert/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/ydb_convert/ut/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-core-ydb_convert-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-ydb_convert-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ydb_convert/compression_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ydb_convert/ut/CMakeLists.linux-x86_64.txt b/ydb/core/ydb_convert/ut/CMakeLists.linux-x86_64.txt index ae8f89f9058b..309697e05ff0 100644 --- a/ydb/core/ydb_convert/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/ydb_convert/ut/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-core-ydb_convert-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-ydb_convert-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ydb_convert/compression_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ydb_convert/ut/CMakeLists.windows-x86_64.txt b/ydb/core/ydb_convert/ut/CMakeLists.windows-x86_64.txt index 4737a057f111..c93b69a60767 100644 --- a/ydb/core/ydb_convert/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/ydb_convert/ut/CMakeLists.windows-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/actor/action.h b/ydb/core/ymq/actor/action.h index fcc52846eada..b77c9f3a7d9f 100644 --- a/ydb/core/ymq/actor/action.h +++ b/ydb/core/ymq/actor/action.h @@ -77,11 +77,14 @@ class TActionActor if (TProxyActor::NeedCreateProxyActor(Action_)) { configurationFlags |= TSqsEvents::TEvGetConfiguration::EFlags::NeedQueueLeader; } + bool enableThrottling = (Action_ != EAction::CreateQueue); this->Send(MakeSqsServiceID(this->SelfId().NodeId()), MakeHolder<TSqsEvents::TEvGetConfiguration>( RequestId_, UserName_, GetQueueName(), + FolderId_, + enableThrottling, configurationFlags) ); } @@ -252,6 +255,8 @@ class TActionActor auto* detailedCounters = UserCounters_ ? UserCounters_->GetDetailedCounters() : nullptr; const size_t errors = ErrorsCount(Response_, detailedCounters ? &detailedCounters->APIStatuses : nullptr); + FinishTs_ = TActivationContext::Now(); + const TDuration duration = GetRequestDuration(); const TDuration workingDuration = GetRequestWorkingDuration(); if (QueueLeader_ && (IsActionForQueue(Action_) || IsActionForQueueYMQ(Action_))) { @@ -287,7 +292,6 @@ class TActionActor } } - FinishTs_ = TActivationContext::Now(); if (IsRequestSlow()) { PrintSlowRequestWarning(); } @@ -630,14 +634,14 @@ class TActionActor } } - if (ev->Get()->Throttled) { - MakeError(MutableErrorDesc(), NErrors::THROTTLING_EXCEPTION, "Too many requests for nonexistent queue."); + if (ev->Get()->Fail) { + MakeError(MutableErrorDesc(), NErrors::INTERNAL_FAILURE, "Failed to get configuration."); SendReplyAndDie(); return; } - if (ev->Get()->Fail) { - MakeError(MutableErrorDesc(), NErrors::INTERNAL_FAILURE, "Failed to get configuration."); + if (ev->Get()->Throttled) { + MakeError(MutableErrorDesc(), NErrors::THROTTLING_EXCEPTION, "Too many requests for nonexistent queue."); SendReplyAndDie(); return; } @@ -648,6 +652,8 @@ class TActionActor return; } + Y_ABORT_UNLESS(SchemeCache_); + bool isACLProtectedAccount = Cfg().GetForceAccessControl(); if (!IsCloud() && (SecurityToken_ || (Cfg().GetForceAccessControl() && (isACLProtectedAccount = IsACLProtectedAccount(UserName_))))) { this->Become(&TActionActor::WaitAuthCheckMessages); @@ -665,8 +671,6 @@ class TActionActor return; } - Y_ABORT_UNLESS(SchemeCache_); - RequestSchemeCache(GetActionACLSourcePath()); // this also checks that requested queue (if any) does exist RequestTicketParser(); } else { diff --git a/ydb/core/ymq/actor/events.h b/ydb/core/ymq/actor/events.h index f8b1c2ca69a5..deef5ba29be8 100644 --- a/ydb/core/ymq/actor/events.h +++ b/ydb/core/ymq/actor/events.h @@ -160,6 +160,8 @@ struct TSqsEvents { TString RequestId; TString UserName; TString QueueName; + TString FolderId; + bool EnableThrottling = true; ui64 Flags = 0; enum EFlags { @@ -175,6 +177,20 @@ struct TSqsEvents { , QueueName(name) , Flags(flags) { } + TEvGetConfiguration( + TString requestId, + const TString& user, + const TString& name, + const TString& folderId, + bool enableThrottling, + ui64 flags = 0 + ) : RequestId(std::move(requestId)) + , UserName(user) + , QueueName(name) + , FolderId(folderId) + , EnableThrottling(enableThrottling) + , Flags(flags) + { } }; struct TQuoterResourcesForActions : public TAtomicRefCount<TQuoterResourcesForActions> { diff --git a/ydb/core/ymq/actor/queue_leader.cpp b/ydb/core/ymq/actor/queue_leader.cpp index 67fe38b66f47..ee5cca542196 100644 --- a/ydb/core/ymq/actor/queue_leader.cpp +++ b/ydb/core/ymq/actor/queue_leader.cpp @@ -1189,12 +1189,13 @@ void TQueueLeader::WaitAddMessagesToInflyOrTryAnotherShard(TReceiveMessageBatchR void TQueueLeader::Reply(TReceiveMessageBatchRequestProcessing& reqInfo) { const ui64 shard = reqInfo.GetCurrentShard(); if (!reqInfo.Answer->Failed && !reqInfo.Answer->OverLimit) { - int receiveCount = 0; int messageCount = 0; ui64 bytesRead = 0; for (auto& message : reqInfo.Answer->Messages) { - receiveCount += message.ReceiveCount; + COLLECT_HISTOGRAM_COUNTER(Counters_, MessageReceiveAttempts, message.ReceiveCount); + COLLECT_HISTOGRAM_COUNTER(Counters_, receive_attempts_count_rate, message.ReceiveCount); + messageCount++; bytesRead += message.Data.size(); @@ -1204,8 +1205,6 @@ void TQueueLeader::Reply(TReceiveMessageBatchRequestProcessing& reqInfo) { } if (messageCount > 0) { - COLLECT_HISTOGRAM_COUNTER(Counters_, MessageReceiveAttempts, receiveCount); - COLLECT_HISTOGRAM_COUNTER(Counters_, receive_attempts_count_rate, receiveCount); ADD_COUNTER_COUPLE(Counters_, ReceiveMessage_Count, received_count_per_second, messageCount); ADD_COUNTER_COUPLE(Counters_, ReceiveMessage_BytesRead, received_bytes_per_second, bytesRead); } diff --git a/ydb/core/ymq/actor/service.cpp b/ydb/core/ymq/actor/service.cpp index 04498866da82..5bb74f46c75d 100644 --- a/ydb/core/ymq/actor/service.cpp +++ b/ydb/core/ymq/actor/service.cpp @@ -579,18 +579,28 @@ void TSqsService::HandleGetConfiguration(TSqsEvents::TEvGetConfiguration::TPtr& } const auto queueIt = user->Queues_.find(queueName); - if (queueIt == user->Queues_.end()) { - if (RequestQueueListForUser(user, reqId)) { - LWPROBE(QueueRequestCacheMiss, userName, queueName, reqId, ev->Get()->ToStringHeader()); - RLOG_SQS_REQ_DEBUG(reqId, "Queue [" << userName << "/" << queueName << "] was not found in sqs service list. Requesting queues list"); - user->GetConfigurationRequests_.emplace(queueName, std::move(ev)); - } else { - AnswerThrottled(ev); - } + if (queueIt != user->Queues_.end()) { + ProcessConfigurationRequestForQueue(ev, user, queueIt->second); return; + } else if (ev->Get()->FolderId) { + const auto byNameAndFolderIt = user->QueueByNameAndFolder_ .find( + std::make_pair(ev->Get()->QueueName, ev->Get()->FolderId) + ); + if (byNameAndFolderIt != user->QueueByNameAndFolder_.end()) { + ProcessConfigurationRequestForQueue(ev, user, byNameAndFolderIt->second); + return; + } } - ProcessConfigurationRequestForQueue(ev, user, queueIt->second); + if (RequestQueueListForUser(user, reqId)) { + LWPROBE(QueueRequestCacheMiss, userName, queueName, reqId, ev->Get()->ToStringHeader()); + RLOG_SQS_REQ_DEBUG(reqId, "Queue [" << userName << "/" << queueName << "] was not found in sqs service list. Requesting queues list"); + user->GetConfigurationRequests_.emplace(queueName, std::move(ev)); + } else if (ev->Get()->EnableThrottling) { + AnswerThrottled(ev); + } else { + AnswerNotExists(ev, user); + } } void TSqsService::AnswerNotExists(TSqsEvents::TEvGetConfiguration::TPtr& ev, const TUserInfoPtr& userInfo) { @@ -685,6 +695,7 @@ void TSqsService::AnswerThrottled(TSqsEvents::TEvGetConfiguration::TPtr& ev) { RLOG_SQS_REQ_DEBUG(ev->Get()->RequestId, "Throttled because of too many requests for nonexistent queue [" << ev->Get()->QueueName << "] for user [" << ev->Get()->UserName << "] while getting configuration"); auto answer = MakeHolder<TSqsEvents::TEvConfiguration>(); answer->Throttled = true; + answer->SchemeCache = SchemeCache_; Send(ev->Sender, answer.Release()); } diff --git a/ydb/core/ymq/actor/ut/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/actor/ut/CMakeLists.darwin-arm64.txt index aeb10ec91fdc..7b906e309d31 100644 --- a/ydb/core/ymq/actor/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/ymq/actor/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-core-ymq-actor-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-ymq-actor-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/ut/attributes_md5_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/actor/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/ymq/actor/ut/CMakeLists.darwin-x86_64.txt index 28a755ddc05e..fd7a972e669b 100644 --- a/ydb/core/ymq/actor/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/ymq/actor/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-core-ymq-actor-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-ymq-actor-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/ut/attributes_md5_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/actor/ut/CMakeLists.linux-aarch64.txt b/ydb/core/ymq/actor/ut/CMakeLists.linux-aarch64.txt index 37acb96ee36a..a63c7d25c221 100644 --- a/ydb/core/ymq/actor/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/ymq/actor/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-core-ymq-actor-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-ymq-actor-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/ut/attributes_md5_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/actor/ut/CMakeLists.linux-x86_64.txt b/ydb/core/ymq/actor/ut/CMakeLists.linux-x86_64.txt index 34b58c8220f2..9aa9fe052c65 100644 --- a/ydb/core/ymq/actor/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/ymq/actor/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-core-ymq-actor-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-ymq-actor-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/ut/attributes_md5_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/actor/ut/CMakeLists.windows-x86_64.txt b/ydb/core/ymq/actor/ut/CMakeLists.windows-x86_64.txt index d615cb56e723..799c1b50de4d 100644 --- a/ydb/core/ymq/actor/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/ymq/actor/ut/CMakeLists.windows-x86_64.txt @@ -55,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/actor/yc_search_ut/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/actor/yc_search_ut/CMakeLists.darwin-arm64.txt index 03abbfb802cc..e29be46e8dc6 100644 --- a/ydb/core/ymq/actor/yc_search_ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/ymq/actor/yc_search_ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-core-ymq-actor-yc_search_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-ymq-actor-yc_search_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/yc_search_ut/index_events_processor_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/actor/yc_search_ut/CMakeLists.darwin-x86_64.txt b/ydb/core/ymq/actor/yc_search_ut/CMakeLists.darwin-x86_64.txt index a63cf5f38b5f..eb0f91952af1 100644 --- a/ydb/core/ymq/actor/yc_search_ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/ymq/actor/yc_search_ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-core-ymq-actor-yc_search_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-ymq-actor-yc_search_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/yc_search_ut/index_events_processor_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/actor/yc_search_ut/CMakeLists.linux-aarch64.txt b/ydb/core/ymq/actor/yc_search_ut/CMakeLists.linux-aarch64.txt index 4a78e903cd33..e1c453987cb8 100644 --- a/ydb/core/ymq/actor/yc_search_ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/ymq/actor/yc_search_ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-core-ymq-actor-yc_search_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-ymq-actor-yc_search_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/yc_search_ut/index_events_processor_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/actor/yc_search_ut/CMakeLists.linux-x86_64.txt b/ydb/core/ymq/actor/yc_search_ut/CMakeLists.linux-x86_64.txt index c1a30c4bffec..d8440ef66e67 100644 --- a/ydb/core/ymq/actor/yc_search_ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/ymq/actor/yc_search_ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-core-ymq-actor-yc_search_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-ymq-actor-yc_search_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/actor/yc_search_ut/index_events_processor_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/actor/yc_search_ut/CMakeLists.windows-x86_64.txt b/ydb/core/ymq/actor/yc_search_ut/CMakeLists.windows-x86_64.txt index 208c4d89fa7e..dab52968fe0c 100644 --- a/ydb/core/ymq/actor/yc_search_ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/ymq/actor/yc_search_ut/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/base/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/base/CMakeLists.darwin-arm64.txt index 3ddb1bd7253d..5735e6dc32bb 100644 --- a/ydb/core/ymq/base/CMakeLists.darwin-arm64.txt +++ b/ydb/core/ymq/base/CMakeLists.darwin-arm64.txt @@ -44,6 +44,7 @@ target_link_libraries(core-ymq-base PUBLIC public-lib-scheme_types ) target_sources(core-ymq-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/events_writer_iface.h ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/acl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/action.cpp ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/counters.cpp diff --git a/ydb/core/ymq/base/CMakeLists.darwin-x86_64.txt b/ydb/core/ymq/base/CMakeLists.darwin-x86_64.txt index 3ddb1bd7253d..5735e6dc32bb 100644 --- a/ydb/core/ymq/base/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/ymq/base/CMakeLists.darwin-x86_64.txt @@ -44,6 +44,7 @@ target_link_libraries(core-ymq-base PUBLIC public-lib-scheme_types ) target_sources(core-ymq-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/events_writer_iface.h ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/acl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/action.cpp ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/counters.cpp diff --git a/ydb/core/ymq/base/CMakeLists.linux-aarch64.txt b/ydb/core/ymq/base/CMakeLists.linux-aarch64.txt index 4f9bc2b6d93e..68e3d22f3dec 100644 --- a/ydb/core/ymq/base/CMakeLists.linux-aarch64.txt +++ b/ydb/core/ymq/base/CMakeLists.linux-aarch64.txt @@ -45,6 +45,7 @@ target_link_libraries(core-ymq-base PUBLIC public-lib-scheme_types ) target_sources(core-ymq-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/events_writer_iface.h ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/acl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/action.cpp ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/counters.cpp diff --git a/ydb/core/ymq/base/CMakeLists.linux-x86_64.txt b/ydb/core/ymq/base/CMakeLists.linux-x86_64.txt index 4f9bc2b6d93e..68e3d22f3dec 100644 --- a/ydb/core/ymq/base/CMakeLists.linux-x86_64.txt +++ b/ydb/core/ymq/base/CMakeLists.linux-x86_64.txt @@ -45,6 +45,7 @@ target_link_libraries(core-ymq-base PUBLIC public-lib-scheme_types ) target_sources(core-ymq-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/events_writer_iface.h ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/acl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/action.cpp ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/counters.cpp diff --git a/ydb/core/ymq/base/CMakeLists.windows-x86_64.txt b/ydb/core/ymq/base/CMakeLists.windows-x86_64.txt index 3ddb1bd7253d..5735e6dc32bb 100644 --- a/ydb/core/ymq/base/CMakeLists.windows-x86_64.txt +++ b/ydb/core/ymq/base/CMakeLists.windows-x86_64.txt @@ -44,6 +44,7 @@ target_link_libraries(core-ymq-base PUBLIC public-lib-scheme_types ) target_sources(core-ymq-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/events_writer_iface.h ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/acl.cpp ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/action.cpp ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/counters.cpp diff --git a/ydb/core/ymq/base/ut/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/base/ut/CMakeLists.darwin-arm64.txt index 3c52b2d2204f..e9a3adac7461 100644 --- a/ydb/core/ymq/base/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/ymq/base/ut/CMakeLists.darwin-arm64.txt @@ -19,8 +19,6 @@ target_link_options(ydb-core-ymq-base-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-ymq-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/ut/action_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/base/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/ymq/base/ut/CMakeLists.darwin-x86_64.txt index 908dcf9d0e75..24b58556a934 100644 --- a/ydb/core/ymq/base/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/ymq/base/ut/CMakeLists.darwin-x86_64.txt @@ -20,8 +20,6 @@ target_link_options(ydb-core-ymq-base-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-ymq-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/ut/action_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/base/ut/CMakeLists.linux-aarch64.txt b/ydb/core/ymq/base/ut/CMakeLists.linux-aarch64.txt index 3cfaba190fca..04814a1f560b 100644 --- a/ydb/core/ymq/base/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/ymq/base/ut/CMakeLists.linux-aarch64.txt @@ -22,9 +22,6 @@ target_link_options(ydb-core-ymq-base-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-ymq-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/ut/action_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/base/ut/CMakeLists.linux-x86_64.txt b/ydb/core/ymq/base/ut/CMakeLists.linux-x86_64.txt index 6d5983633fb2..2b2f4d4abaa3 100644 --- a/ydb/core/ymq/base/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/ymq/base/ut/CMakeLists.linux-x86_64.txt @@ -23,9 +23,6 @@ target_link_options(ydb-core-ymq-base-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-ymq-base-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/base/ut/action_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/base/ut/CMakeLists.windows-x86_64.txt b/ydb/core/ymq/base/ut/CMakeLists.windows-x86_64.txt index fe10fdab8ea8..1fe40d67404f 100644 --- a/ydb/core/ymq/base/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/ymq/base/ut/CMakeLists.windows-x86_64.txt @@ -49,6 +49,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/client/bin/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/client/bin/CMakeLists.darwin-arm64.txt index f7bb00de924a..e9b52fbae24c 100644 --- a/ydb/core/ymq/client/bin/CMakeLists.darwin-arm64.txt +++ b/ydb/core/ymq/client/bin/CMakeLists.darwin-arm64.txt @@ -19,8 +19,6 @@ target_link_options(sqs PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(sqs PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/client/bin/main.cpp diff --git a/ydb/core/ymq/client/bin/CMakeLists.darwin-x86_64.txt b/ydb/core/ymq/client/bin/CMakeLists.darwin-x86_64.txt index a2810b4b2f9e..1ea590548005 100644 --- a/ydb/core/ymq/client/bin/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/ymq/client/bin/CMakeLists.darwin-x86_64.txt @@ -20,8 +20,6 @@ target_link_options(sqs PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(sqs PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/client/bin/main.cpp diff --git a/ydb/core/ymq/client/bin/CMakeLists.linux-aarch64.txt b/ydb/core/ymq/client/bin/CMakeLists.linux-aarch64.txt index 02904ecbfba9..1216e72178b0 100644 --- a/ydb/core/ymq/client/bin/CMakeLists.linux-aarch64.txt +++ b/ydb/core/ymq/client/bin/CMakeLists.linux-aarch64.txt @@ -22,9 +22,6 @@ target_link_options(sqs PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(sqs PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/client/bin/main.cpp diff --git a/ydb/core/ymq/client/bin/CMakeLists.linux-x86_64.txt b/ydb/core/ymq/client/bin/CMakeLists.linux-x86_64.txt index 768a4762861e..0e9867411f4a 100644 --- a/ydb/core/ymq/client/bin/CMakeLists.linux-x86_64.txt +++ b/ydb/core/ymq/client/bin/CMakeLists.linux-x86_64.txt @@ -23,9 +23,6 @@ target_link_options(sqs PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(sqs PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/client/bin/main.cpp diff --git a/ydb/core/ymq/http/ut/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/http/ut/CMakeLists.darwin-arm64.txt index 5ab62098a5ba..213560c39a38 100644 --- a/ydb/core/ymq/http/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/ymq/http/ut/CMakeLists.darwin-arm64.txt @@ -20,8 +20,6 @@ target_link_options(ydb-core-ymq-http-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-ymq-http-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/http/ut/xml_builder_ut.cpp @@ -51,6 +49,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/http/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/ymq/http/ut/CMakeLists.darwin-x86_64.txt index fedc91397e7c..14784d3249af 100644 --- a/ydb/core/ymq/http/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/ymq/http/ut/CMakeLists.darwin-x86_64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-core-ymq-http-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-ymq-http-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/http/ut/xml_builder_ut.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/http/ut/CMakeLists.linux-aarch64.txt b/ydb/core/ymq/http/ut/CMakeLists.linux-aarch64.txt index afdca5e83a2d..bf078a2a4e0b 100644 --- a/ydb/core/ymq/http/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/ymq/http/ut/CMakeLists.linux-aarch64.txt @@ -23,9 +23,6 @@ target_link_options(ydb-core-ymq-http-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-ymq-http-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/http/ut/xml_builder_ut.cpp @@ -55,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/http/ut/CMakeLists.linux-x86_64.txt b/ydb/core/ymq/http/ut/CMakeLists.linux-x86_64.txt index 1d3ff48fa3dc..2994b52321ef 100644 --- a/ydb/core/ymq/http/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/ymq/http/ut/CMakeLists.linux-x86_64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-core-ymq-http-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-ymq-http-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/http/ut/xml_builder_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/http/ut/CMakeLists.windows-x86_64.txt b/ydb/core/ymq/http/ut/CMakeLists.windows-x86_64.txt index da699adb6b7b..c590f5b6486e 100644 --- a/ydb/core/ymq/http/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/ymq/http/ut/CMakeLists.windows-x86_64.txt @@ -45,6 +45,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/proto/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/proto/CMakeLists.darwin-arm64.txt index 187b3709ebf8..23a3156706b0 100644 --- a/ydb/core/ymq/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/core/ymq/proto/CMakeLists.darwin-arm64.txt @@ -42,6 +42,10 @@ target_proto_messages(core-ymq-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/proto/events.proto ${CMAKE_SOURCE_DIR}/ydb/core/ymq/proto/records.proto ) +target_sources(core-ymq-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/ymq/proto/events.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/ymq/proto/records.pb.h +) target_proto_addincls(core-ymq-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/ymq/proto/CMakeLists.darwin-x86_64.txt b/ydb/core/ymq/proto/CMakeLists.darwin-x86_64.txt index 187b3709ebf8..23a3156706b0 100644 --- a/ydb/core/ymq/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/ymq/proto/CMakeLists.darwin-x86_64.txt @@ -42,6 +42,10 @@ target_proto_messages(core-ymq-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/proto/events.proto ${CMAKE_SOURCE_DIR}/ydb/core/ymq/proto/records.proto ) +target_sources(core-ymq-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/ymq/proto/events.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/ymq/proto/records.pb.h +) target_proto_addincls(core-ymq-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/ymq/proto/CMakeLists.linux-aarch64.txt b/ydb/core/ymq/proto/CMakeLists.linux-aarch64.txt index ddf57faa3fb8..daf7e5faa954 100644 --- a/ydb/core/ymq/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/core/ymq/proto/CMakeLists.linux-aarch64.txt @@ -43,6 +43,10 @@ target_proto_messages(core-ymq-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/proto/events.proto ${CMAKE_SOURCE_DIR}/ydb/core/ymq/proto/records.proto ) +target_sources(core-ymq-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/ymq/proto/events.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/ymq/proto/records.pb.h +) target_proto_addincls(core-ymq-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/ymq/proto/CMakeLists.linux-x86_64.txt b/ydb/core/ymq/proto/CMakeLists.linux-x86_64.txt index ddf57faa3fb8..daf7e5faa954 100644 --- a/ydb/core/ymq/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/core/ymq/proto/CMakeLists.linux-x86_64.txt @@ -43,6 +43,10 @@ target_proto_messages(core-ymq-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/proto/events.proto ${CMAKE_SOURCE_DIR}/ydb/core/ymq/proto/records.proto ) +target_sources(core-ymq-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/ymq/proto/events.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/ymq/proto/records.pb.h +) target_proto_addincls(core-ymq-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/ymq/proto/CMakeLists.windows-x86_64.txt b/ydb/core/ymq/proto/CMakeLists.windows-x86_64.txt index 187b3709ebf8..23a3156706b0 100644 --- a/ydb/core/ymq/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/core/ymq/proto/CMakeLists.windows-x86_64.txt @@ -42,6 +42,10 @@ target_proto_messages(core-ymq-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/proto/events.proto ${CMAKE_SOURCE_DIR}/ydb/core/ymq/proto/records.proto ) +target_sources(core-ymq-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/core/ymq/proto/events.pb.h + ${CMAKE_BINARY_DIR}/ydb/core/ymq/proto/records.pb.h +) target_proto_addincls(core-ymq-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/core/ymq/ut/CMakeLists.darwin-arm64.txt b/ydb/core/ymq/ut/CMakeLists.darwin-arm64.txt index dd630e396cc5..e0273ee60630 100644 --- a/ydb/core/ymq/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/core/ymq/ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-core-ymq-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-ymq-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/ut/queue_id_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/ut/CMakeLists.darwin-x86_64.txt b/ydb/core/ymq/ut/CMakeLists.darwin-x86_64.txt index 2663304588c2..e21aad2e413b 100644 --- a/ydb/core/ymq/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/ymq/ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-core-ymq-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-core-ymq-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/ut/queue_id_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/ut/CMakeLists.linux-aarch64.txt b/ydb/core/ymq/ut/CMakeLists.linux-aarch64.txt index 416c7da4881e..4bd4343a988e 100644 --- a/ydb/core/ymq/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/core/ymq/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-core-ymq-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-ymq-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/ut/queue_id_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/ut/CMakeLists.linux-x86_64.txt b/ydb/core/ymq/ut/CMakeLists.linux-x86_64.txt index e94f43220686..5d6822644ad7 100644 --- a/ydb/core/ymq/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/core/ymq/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-core-ymq-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-core-ymq-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/core/ymq/ut/queue_id_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/ymq/ut/CMakeLists.windows-x86_64.txt b/ydb/core/ymq/ut/CMakeLists.windows-x86_64.txt index 0eb56d33b956..d6e78f0a25da 100644 --- a/ydb/core/ymq/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/core/ymq/ut/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/core/yql_testlib/CMakeLists.darwin-arm64.txt b/ydb/core/yql_testlib/CMakeLists.darwin-arm64.txt index 0c60bab274bb..cd6bc9bbcc9a 100644 --- a/ydb/core/yql_testlib/CMakeLists.darwin-arm64.txt +++ b/ydb/core/yql_testlib/CMakeLists.darwin-arm64.txt @@ -36,5 +36,6 @@ target_link_libraries(ydb-core-yql_testlib PUBLIC providers-common-udf_resolve ) target_sources(ydb-core-yql_testlib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/yql_testlib/yql_testlib.h ${CMAKE_SOURCE_DIR}/ydb/core/yql_testlib/yql_testlib.cpp ) diff --git a/ydb/core/yql_testlib/CMakeLists.darwin-x86_64.txt b/ydb/core/yql_testlib/CMakeLists.darwin-x86_64.txt index 0c60bab274bb..cd6bc9bbcc9a 100644 --- a/ydb/core/yql_testlib/CMakeLists.darwin-x86_64.txt +++ b/ydb/core/yql_testlib/CMakeLists.darwin-x86_64.txt @@ -36,5 +36,6 @@ target_link_libraries(ydb-core-yql_testlib PUBLIC providers-common-udf_resolve ) target_sources(ydb-core-yql_testlib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/yql_testlib/yql_testlib.h ${CMAKE_SOURCE_DIR}/ydb/core/yql_testlib/yql_testlib.cpp ) diff --git a/ydb/core/yql_testlib/CMakeLists.linux-aarch64.txt b/ydb/core/yql_testlib/CMakeLists.linux-aarch64.txt index 5e23e5d64e2c..9a856970dbc4 100644 --- a/ydb/core/yql_testlib/CMakeLists.linux-aarch64.txt +++ b/ydb/core/yql_testlib/CMakeLists.linux-aarch64.txt @@ -37,5 +37,6 @@ target_link_libraries(ydb-core-yql_testlib PUBLIC providers-common-udf_resolve ) target_sources(ydb-core-yql_testlib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/yql_testlib/yql_testlib.h ${CMAKE_SOURCE_DIR}/ydb/core/yql_testlib/yql_testlib.cpp ) diff --git a/ydb/core/yql_testlib/CMakeLists.linux-x86_64.txt b/ydb/core/yql_testlib/CMakeLists.linux-x86_64.txt index 5e23e5d64e2c..9a856970dbc4 100644 --- a/ydb/core/yql_testlib/CMakeLists.linux-x86_64.txt +++ b/ydb/core/yql_testlib/CMakeLists.linux-x86_64.txt @@ -37,5 +37,6 @@ target_link_libraries(ydb-core-yql_testlib PUBLIC providers-common-udf_resolve ) target_sources(ydb-core-yql_testlib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/yql_testlib/yql_testlib.h ${CMAKE_SOURCE_DIR}/ydb/core/yql_testlib/yql_testlib.cpp ) diff --git a/ydb/core/yql_testlib/CMakeLists.windows-x86_64.txt b/ydb/core/yql_testlib/CMakeLists.windows-x86_64.txt index 0c60bab274bb..cd6bc9bbcc9a 100644 --- a/ydb/core/yql_testlib/CMakeLists.windows-x86_64.txt +++ b/ydb/core/yql_testlib/CMakeLists.windows-x86_64.txt @@ -36,5 +36,6 @@ target_link_libraries(ydb-core-yql_testlib PUBLIC providers-common-udf_resolve ) target_sources(ydb-core-yql_testlib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/core/yql_testlib/yql_testlib.h ${CMAKE_SOURCE_DIR}/ydb/core/yql_testlib/yql_testlib.cpp ) diff --git a/ydb/library/CMakeLists.txt b/ydb/library/CMakeLists.txt index 9bcf016a7b5f..6ce0b87bd8aa 100644 --- a/ydb/library/CMakeLists.txt +++ b/ydb/library/CMakeLists.txt @@ -11,6 +11,7 @@ add_subdirectory(aclib) add_subdirectory(actors) add_subdirectory(arrow_clickhouse) add_subdirectory(arrow_kernels) +add_subdirectory(arrow_parquet) add_subdirectory(backup) add_subdirectory(binary_json) add_subdirectory(chunks_limiter) diff --git a/ydb/library/accessor/CMakeLists.darwin-arm64.txt b/ydb/library/accessor/CMakeLists.darwin-arm64.txt index c2a284076f84..9b03fdbf606d 100644 --- a/ydb/library/accessor/CMakeLists.darwin-arm64.txt +++ b/ydb/library/accessor/CMakeLists.darwin-arm64.txt @@ -11,7 +11,9 @@ add_library(ydb-library-accessor) target_link_libraries(ydb-library-accessor PUBLIC contrib-libs-cxxsupp yutil + library-actors-core ) target_sources(ydb-library-accessor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/accessor/accessor.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/accessor/validator.cpp ) diff --git a/ydb/library/accessor/CMakeLists.darwin-x86_64.txt b/ydb/library/accessor/CMakeLists.darwin-x86_64.txt index c2a284076f84..9b03fdbf606d 100644 --- a/ydb/library/accessor/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/accessor/CMakeLists.darwin-x86_64.txt @@ -11,7 +11,9 @@ add_library(ydb-library-accessor) target_link_libraries(ydb-library-accessor PUBLIC contrib-libs-cxxsupp yutil + library-actors-core ) target_sources(ydb-library-accessor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/accessor/accessor.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/accessor/validator.cpp ) diff --git a/ydb/library/accessor/CMakeLists.linux-aarch64.txt b/ydb/library/accessor/CMakeLists.linux-aarch64.txt index d233360f6a17..87967ba851cd 100644 --- a/ydb/library/accessor/CMakeLists.linux-aarch64.txt +++ b/ydb/library/accessor/CMakeLists.linux-aarch64.txt @@ -12,7 +12,9 @@ target_link_libraries(ydb-library-accessor PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + library-actors-core ) target_sources(ydb-library-accessor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/accessor/accessor.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/accessor/validator.cpp ) diff --git a/ydb/library/accessor/CMakeLists.linux-x86_64.txt b/ydb/library/accessor/CMakeLists.linux-x86_64.txt index d233360f6a17..87967ba851cd 100644 --- a/ydb/library/accessor/CMakeLists.linux-x86_64.txt +++ b/ydb/library/accessor/CMakeLists.linux-x86_64.txt @@ -12,7 +12,9 @@ target_link_libraries(ydb-library-accessor PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + library-actors-core ) target_sources(ydb-library-accessor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/accessor/accessor.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/accessor/validator.cpp ) diff --git a/ydb/library/accessor/CMakeLists.windows-x86_64.txt b/ydb/library/accessor/CMakeLists.windows-x86_64.txt index c2a284076f84..9b03fdbf606d 100644 --- a/ydb/library/accessor/CMakeLists.windows-x86_64.txt +++ b/ydb/library/accessor/CMakeLists.windows-x86_64.txt @@ -11,7 +11,9 @@ add_library(ydb-library-accessor) target_link_libraries(ydb-library-accessor PUBLIC contrib-libs-cxxsupp yutil + library-actors-core ) target_sources(ydb-library-accessor PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/accessor/accessor.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/accessor/validator.cpp ) diff --git a/ydb/library/aclib/CMakeLists.darwin-arm64.txt b/ydb/library/aclib/CMakeLists.darwin-arm64.txt index 336127fc2684..8c7633a7f452 100644 --- a/ydb/library/aclib/CMakeLists.darwin-arm64.txt +++ b/ydb/library/aclib/CMakeLists.darwin-arm64.txt @@ -18,5 +18,6 @@ target_link_libraries(ydb-library-aclib PUBLIC library-aclib-protos ) target_sources(ydb-library-aclib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/aclib/aclib.h ${CMAKE_SOURCE_DIR}/ydb/library/aclib/aclib.cpp ) diff --git a/ydb/library/aclib/CMakeLists.darwin-x86_64.txt b/ydb/library/aclib/CMakeLists.darwin-x86_64.txt index 336127fc2684..8c7633a7f452 100644 --- a/ydb/library/aclib/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/aclib/CMakeLists.darwin-x86_64.txt @@ -18,5 +18,6 @@ target_link_libraries(ydb-library-aclib PUBLIC library-aclib-protos ) target_sources(ydb-library-aclib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/aclib/aclib.h ${CMAKE_SOURCE_DIR}/ydb/library/aclib/aclib.cpp ) diff --git a/ydb/library/aclib/CMakeLists.linux-aarch64.txt b/ydb/library/aclib/CMakeLists.linux-aarch64.txt index 148291a94bfe..188748cc86e0 100644 --- a/ydb/library/aclib/CMakeLists.linux-aarch64.txt +++ b/ydb/library/aclib/CMakeLists.linux-aarch64.txt @@ -19,5 +19,6 @@ target_link_libraries(ydb-library-aclib PUBLIC library-aclib-protos ) target_sources(ydb-library-aclib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/aclib/aclib.h ${CMAKE_SOURCE_DIR}/ydb/library/aclib/aclib.cpp ) diff --git a/ydb/library/aclib/CMakeLists.linux-x86_64.txt b/ydb/library/aclib/CMakeLists.linux-x86_64.txt index 148291a94bfe..188748cc86e0 100644 --- a/ydb/library/aclib/CMakeLists.linux-x86_64.txt +++ b/ydb/library/aclib/CMakeLists.linux-x86_64.txt @@ -19,5 +19,6 @@ target_link_libraries(ydb-library-aclib PUBLIC library-aclib-protos ) target_sources(ydb-library-aclib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/aclib/aclib.h ${CMAKE_SOURCE_DIR}/ydb/library/aclib/aclib.cpp ) diff --git a/ydb/library/aclib/CMakeLists.windows-x86_64.txt b/ydb/library/aclib/CMakeLists.windows-x86_64.txt index 336127fc2684..8c7633a7f452 100644 --- a/ydb/library/aclib/CMakeLists.windows-x86_64.txt +++ b/ydb/library/aclib/CMakeLists.windows-x86_64.txt @@ -18,5 +18,6 @@ target_link_libraries(ydb-library-aclib PUBLIC library-aclib-protos ) target_sources(ydb-library-aclib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/aclib/aclib.h ${CMAKE_SOURCE_DIR}/ydb/library/aclib/aclib.cpp ) diff --git a/ydb/library/aclib/protos/CMakeLists.darwin-arm64.txt b/ydb/library/aclib/protos/CMakeLists.darwin-arm64.txt index d23f61eba431..8a0eaad714b9 100644 --- a/ydb/library/aclib/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/aclib/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-aclib-protos PUBLIC target_proto_messages(library-aclib-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/aclib/protos/aclib.proto ) +target_sources(library-aclib-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/aclib/protos/aclib.pb.h +) target_proto_addincls(library-aclib-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/aclib/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/aclib/protos/CMakeLists.darwin-x86_64.txt index d23f61eba431..8a0eaad714b9 100644 --- a/ydb/library/aclib/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/aclib/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-aclib-protos PUBLIC target_proto_messages(library-aclib-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/aclib/protos/aclib.proto ) +target_sources(library-aclib-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/aclib/protos/aclib.pb.h +) target_proto_addincls(library-aclib-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/aclib/protos/CMakeLists.linux-aarch64.txt b/ydb/library/aclib/protos/CMakeLists.linux-aarch64.txt index 361dd6900710..d32e6b04dad1 100644 --- a/ydb/library/aclib/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/aclib/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(library-aclib-protos PUBLIC target_proto_messages(library-aclib-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/aclib/protos/aclib.proto ) +target_sources(library-aclib-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/aclib/protos/aclib.pb.h +) target_proto_addincls(library-aclib-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/aclib/protos/CMakeLists.linux-x86_64.txt b/ydb/library/aclib/protos/CMakeLists.linux-x86_64.txt index 361dd6900710..d32e6b04dad1 100644 --- a/ydb/library/aclib/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/aclib/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(library-aclib-protos PUBLIC target_proto_messages(library-aclib-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/aclib/protos/aclib.proto ) +target_sources(library-aclib-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/aclib/protos/aclib.pb.h +) target_proto_addincls(library-aclib-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/aclib/protos/CMakeLists.windows-x86_64.txt b/ydb/library/aclib/protos/CMakeLists.windows-x86_64.txt index d23f61eba431..8a0eaad714b9 100644 --- a/ydb/library/aclib/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/aclib/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-aclib-protos PUBLIC target_proto_messages(library-aclib-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/aclib/protos/aclib.proto ) +target_sources(library-aclib-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/aclib/protos/aclib.pb.h +) target_proto_addincls(library-aclib-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/aclib/ut/CMakeLists.darwin-arm64.txt b/ydb/library/aclib/ut/CMakeLists.darwin-arm64.txt index 12f0fd0a474c..eb3a31bd6ddd 100644 --- a/ydb/library/aclib/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/aclib/ut/CMakeLists.darwin-arm64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/aclib/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/aclib/ut/CMakeLists.darwin-x86_64.txt index 855e04c0cfca..fc161a0aab05 100644 --- a/ydb/library/aclib/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/aclib/ut/CMakeLists.darwin-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/aclib/ut/CMakeLists.linux-aarch64.txt b/ydb/library/aclib/ut/CMakeLists.linux-aarch64.txt index 922aea54e61f..3e1e5dd3d1b9 100644 --- a/ydb/library/aclib/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/aclib/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-aclib-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-aclib-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/aclib/aclib_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/aclib/ut/CMakeLists.linux-x86_64.txt b/ydb/library/aclib/ut/CMakeLists.linux-x86_64.txt index 8f4c41ddf71b..cce8f4614065 100644 --- a/ydb/library/aclib/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/aclib/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-aclib-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-aclib-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/aclib/aclib_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/aclib/ut/CMakeLists.windows-x86_64.txt b/ydb/library/aclib/ut/CMakeLists.windows-x86_64.txt index bdb59fb4acd4..20b7b8847951 100644 --- a/ydb/library/aclib/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/aclib/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/core/CMakeLists.darwin-arm64.txt b/ydb/library/actors/core/CMakeLists.darwin-arm64.txt index f85da8cdc686..bed6b44e2682 100644 --- a/ydb/library/actors/core/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/core/CMakeLists.darwin-arm64.txt @@ -47,6 +47,52 @@ target_link_libraries(library-actors-core PUBLIC cpp-threading-future ) target_sources(library-actors-core PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_coroutine.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actorid.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actorsystem.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/ask.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/callstack.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/config.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/cpu_manager.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/cpu_state.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/event.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/event_local.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/event_pb.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/events.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executelater.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_base.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_basic.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_io.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_shared.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_thread.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/harmonizer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/hfunc.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/interconnect.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/invoke.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/io_dispatcher.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/lease.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log_buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log_metrics.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mailbox.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mailbox_queue_revolving.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mailbox_queue_simple.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mon.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mon_stats.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/monotonic.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/monotonic_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/worker_context.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/probes.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/process_stats.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_basic.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_cookie.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_queue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/servicemap.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_bootstrapped.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_coroutine.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor.cpp @@ -65,6 +111,7 @@ target_sources(library-actors-core PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_base.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_basic.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_io.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_shared.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_thread.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/harmonizer.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/interconnect.cpp diff --git a/ydb/library/actors/core/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/core/CMakeLists.darwin-x86_64.txt index f85da8cdc686..bed6b44e2682 100644 --- a/ydb/library/actors/core/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/core/CMakeLists.darwin-x86_64.txt @@ -47,6 +47,52 @@ target_link_libraries(library-actors-core PUBLIC cpp-threading-future ) target_sources(library-actors-core PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_coroutine.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actorid.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actorsystem.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/ask.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/callstack.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/config.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/cpu_manager.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/cpu_state.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/event.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/event_local.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/event_pb.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/events.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executelater.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_base.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_basic.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_io.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_shared.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_thread.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/harmonizer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/hfunc.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/interconnect.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/invoke.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/io_dispatcher.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/lease.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log_buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log_metrics.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mailbox.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mailbox_queue_revolving.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mailbox_queue_simple.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mon.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mon_stats.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/monotonic.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/monotonic_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/worker_context.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/probes.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/process_stats.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_basic.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_cookie.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_queue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/servicemap.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_bootstrapped.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_coroutine.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor.cpp @@ -65,6 +111,7 @@ target_sources(library-actors-core PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_base.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_basic.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_io.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_shared.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_thread.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/harmonizer.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/interconnect.cpp diff --git a/ydb/library/actors/core/CMakeLists.linux-aarch64.txt b/ydb/library/actors/core/CMakeLists.linux-aarch64.txt index cf33f599690b..7d123876753f 100644 --- a/ydb/library/actors/core/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/core/CMakeLists.linux-aarch64.txt @@ -48,6 +48,52 @@ target_link_libraries(library-actors-core PUBLIC cpp-threading-future ) target_sources(library-actors-core PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_coroutine.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actorid.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actorsystem.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/ask.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/callstack.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/config.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/cpu_manager.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/cpu_state.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/event.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/event_local.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/event_pb.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/events.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executelater.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_base.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_basic.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_io.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_shared.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_thread.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/harmonizer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/hfunc.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/interconnect.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/invoke.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/io_dispatcher.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/lease.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log_buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log_metrics.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mailbox.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mailbox_queue_revolving.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mailbox_queue_simple.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mon.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mon_stats.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/monotonic.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/monotonic_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/worker_context.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/probes.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/process_stats.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_basic.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_cookie.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_queue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/servicemap.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_bootstrapped.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_coroutine.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor.cpp @@ -66,6 +112,7 @@ target_sources(library-actors-core PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_base.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_basic.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_io.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_shared.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_thread.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/harmonizer.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/interconnect.cpp diff --git a/ydb/library/actors/core/CMakeLists.linux-x86_64.txt b/ydb/library/actors/core/CMakeLists.linux-x86_64.txt index cf33f599690b..7d123876753f 100644 --- a/ydb/library/actors/core/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/core/CMakeLists.linux-x86_64.txt @@ -48,6 +48,52 @@ target_link_libraries(library-actors-core PUBLIC cpp-threading-future ) target_sources(library-actors-core PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_coroutine.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actorid.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actorsystem.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/ask.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/callstack.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/config.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/cpu_manager.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/cpu_state.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/event.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/event_local.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/event_pb.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/events.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executelater.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_base.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_basic.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_io.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_shared.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_thread.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/harmonizer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/hfunc.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/interconnect.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/invoke.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/io_dispatcher.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/lease.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log_buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log_metrics.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mailbox.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mailbox_queue_revolving.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mailbox_queue_simple.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mon.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mon_stats.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/monotonic.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/monotonic_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/worker_context.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/probes.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/process_stats.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_basic.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_cookie.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_queue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/servicemap.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_bootstrapped.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_coroutine.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor.cpp @@ -66,6 +112,7 @@ target_sources(library-actors-core PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_base.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_basic.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_io.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_shared.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_thread.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/harmonizer.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/interconnect.cpp diff --git a/ydb/library/actors/core/CMakeLists.windows-x86_64.txt b/ydb/library/actors/core/CMakeLists.windows-x86_64.txt index f85da8cdc686..bed6b44e2682 100644 --- a/ydb/library/actors/core/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/core/CMakeLists.windows-x86_64.txt @@ -47,6 +47,52 @@ target_link_libraries(library-actors-core PUBLIC cpp-threading-future ) target_sources(library-actors-core PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_coroutine.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actorid.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actorsystem.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/ask.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/callstack.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/config.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/cpu_manager.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/cpu_state.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/event.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/event_local.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/event_pb.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/events.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executelater.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_base.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_basic.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_io.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_shared.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_thread.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/harmonizer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/hfunc.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/interconnect.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/invoke.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/io_dispatcher.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/lease.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log_buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/log_metrics.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mailbox.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mailbox_queue_revolving.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mailbox_queue_simple.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mon.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/mon_stats.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/monotonic.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/monotonic_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/worker_context.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/probes.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/process_stats.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_basic.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_cookie.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/scheduler_queue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/servicemap.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_bootstrapped.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_coroutine.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor.cpp @@ -65,6 +111,7 @@ target_sources(library-actors-core PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_base.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_basic.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_io.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_pool_shared.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/executor_thread.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/harmonizer.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/interconnect.cpp diff --git a/ydb/library/actors/core/actor_bootstrapped.h b/ydb/library/actors/core/actor_bootstrapped.h index 70a6163bc53c..1776be51870b 100644 --- a/ydb/library/actors/core/actor_bootstrapped.h +++ b/ydb/library/actors/core/actor_bootstrapped.h @@ -16,7 +16,7 @@ namespace NActors { } STFUNC(StateBootstrap) { - Y_ABORT_UNLESS(ev->GetTypeRewrite() == TEvents::TSystem::Bootstrap, "Unexpected bootstrap message"); + Y_ABORT_UNLESS(ev->GetTypeRewrite() == TEvents::TSystem::Bootstrap, "Unexpected bootstrap message: %s", ev->GetTypeName().data()); using T = decltype(&TDerived::Bootstrap); TDerived& self = static_cast<TDerived&>(*this); if constexpr (std::is_invocable_v<T, TDerived, const TActorContext&>) { diff --git a/ydb/library/actors/core/actor_ut.cpp b/ydb/library/actors/core/actor_ut.cpp index 0c69d7ce29e7..b062f780dcdf 100644 --- a/ydb/library/actors/core/actor_ut.cpp +++ b/ydb/library/actors/core/actor_ut.cpp @@ -25,6 +25,7 @@ Y_UNIT_TEST_SUITE(ActorBenchmark) { using TSendReceiveActorParams = TActorBenchmark::TSendReceiveActorParams; Y_UNIT_TEST(WithOnlyOneSharedExecutors) { + return; THolder<TActorSystemSetup> setup = TActorBenchmark::GetActorSystemSetup(); TActorBenchmark::AddBasicPool(setup, 1, 1, true); @@ -64,6 +65,7 @@ Y_UNIT_TEST_SUITE(ActorBenchmark) { } Y_UNIT_TEST(WithOnlyOneSharedAndOneCommonExecutors) { + return; THolder<TActorSystemSetup> setup = TActorBenchmark::GetActorSystemSetup(); TActorBenchmark::AddBasicPool(setup, 2, true, true); @@ -105,6 +107,7 @@ Y_UNIT_TEST_SUITE(ActorBenchmark) { } Y_UNIT_TEST(WithSharedExecutors) { + return; THolder<TActorSystemSetup> setup = TActorBenchmark::GetActorSystemSetup(); TActorBenchmark::AddBasicPool(setup, 2, 1, false); TActorBenchmark::AddBasicPool(setup, 2, 1, true); diff --git a/ydb/library/actors/core/actorsystem.cpp b/ydb/library/actors/core/actorsystem.cpp index 5bd15cbaf9ad..44ac5b4a5fa7 100644 --- a/ydb/library/actors/core/actorsystem.cpp +++ b/ydb/library/actors/core/actorsystem.cpp @@ -123,6 +123,7 @@ namespace NActors { if (!target) { target = actorId; ServiceMap->RegisterLocalService(recipient, target); + DynamicProxies.push_back(target); } } if (target != actorId) { @@ -230,10 +231,21 @@ namespace NActors { ui32 TActorSystem::BroadcastToProxies(const std::function<IEventHandle*(const TActorId&)>& eventFabric) { // TODO: get rid of this method + ui32 res = 0; for (ui32 i = 0; i < InterconnectCount; ++i) { Send(eventFabric(Interconnect[i])); + ++res; } - return InterconnectCount; + + auto guard = Guard(ProxyCreationLock); + for (size_t i = 0; i < DynamicProxies.size(); ++i) { + const TActorId actorId = DynamicProxies[i]; + auto unguard = Unguard(guard); + Send(eventFabric(actorId)); + ++res; + } + + return res; } TActorId TActorSystem::LookupLocalService(const TActorId& x) const { diff --git a/ydb/library/actors/core/actorsystem.h b/ydb/library/actors/core/actorsystem.h index 326c4a07ee05..90f2a0bae0a3 100644 --- a/ydb/library/actors/core/actorsystem.h +++ b/ydb/library/actors/core/actorsystem.h @@ -161,6 +161,7 @@ namespace NActors { TIntrusivePtr<NLog::TSettings> LoggerSettings0; TProxyWrapperFactory ProxyWrapperFactory; TMutex ProxyCreationLock; + mutable std::vector<TActorId> DynamicProxies; bool StartExecuted; bool StopExecuted; diff --git a/ydb/library/actors/core/executor_pool_basic.cpp b/ydb/library/actors/core/executor_pool_basic.cpp index 4c6db5d609a4..16adcd49a49e 100644 --- a/ydb/library/actors/core/executor_pool_basic.cpp +++ b/ydb/library/actors/core/executor_pool_basic.cpp @@ -162,13 +162,6 @@ namespace NActors { TWorkerId workerId = wctx.WorkerId; Y_DEBUG_ABORT_UNLESS(workerId < PoolThreads); - TlsThreadContext->Timers.Reset(); - - if (Harmonizer) { - LWPROBE(TryToHarmonize, PoolId, PoolName); - Harmonizer->Harmonize(TlsThreadContext->Timers.HPStart); - } - if (workerId >= 0) { Threads[workerId].UnsetWork(); } else { @@ -176,13 +169,16 @@ namespace NActors { wctx.SharedThread->UnsetWork(); } + if (Harmonizer) { + LWPROBE(TryToHarmonize, PoolId, PoolName); + Harmonizer->Harmonize(TlsThreadContext->StartOfProcessingEventTS.load(std::memory_order_relaxed)); + } + TAtomic x = AtomicGet(Semaphore); TSemaphore semaphore = TSemaphore::GetSemaphore(x); while (!StopFlag.load(std::memory_order_acquire)) { if (!semaphore.OldSemaphore || workerId >= 0 && semaphore.CurrentSleepThreadCount < 0) { if (workerId < 0 || !wctx.IsNeededToWaitNextActivation) { - TlsThreadContext->Timers.HPNow = GetCycleCountFast(); - wctx.AddElapsedCycles(ActorSystemIndex, TlsThreadContext->Timers.HPNow - TlsThreadContext->Timers.HPStart); return 0; } @@ -203,13 +199,6 @@ namespace NActors { wctx.SharedThread->SetWork(); } AtomicDecrement(Semaphore); - TlsThreadContext->Timers.HPNow = GetCycleCountFast(); - TlsThreadContext->Timers.Elapsed += TlsThreadContext->Timers.HPNow - TlsThreadContext->Timers.HPStart; - wctx.AddElapsedCycles(ActorSystemIndex, TlsThreadContext->Timers.Elapsed); - if (TlsThreadContext->Timers.Parked > 0) { - wctx.AddParkedCycles(TlsThreadContext->Timers.Parked); - } - return activation; } semaphore.CurrentSleepThreadCount++; diff --git a/ydb/library/actors/core/executor_pool_io.cpp b/ydb/library/actors/core/executor_pool_io.cpp index 1046d6ea66cd..1a39cf3d9662 100644 --- a/ydb/library/actors/core/executor_pool_io.cpp +++ b/ydb/library/actors/core/executor_pool_io.cpp @@ -30,31 +30,27 @@ namespace NActors { i16 workerId = wctx.WorkerId; Y_DEBUG_ABORT_UNLESS(workerId < PoolThreads); - NHPTimer::STime elapsed = 0; - NHPTimer::STime parked = 0; - NHPTimer::STime hpstart = GetCycleCountFast(); - NHPTimer::STime hpnow; - const TAtomic x = AtomicDecrement(Semaphore); if (x < 0) { TExecutorThreadCtx& threadCtx = Threads[workerId]; ThreadQueue.Push(workerId + 1, revolvingCounter); - hpnow = GetCycleCountFast(); - elapsed += hpnow - hpstart; + + NHPTimer::STime hpnow = GetCycleCountFast(); + NHPTimer::STime hpprev = TlsThreadContext->UpdateStartOfProcessingEventTS(hpnow); + TlsThreadContext->ElapsingActorActivity.store(Max<ui64>(), std::memory_order_release); + wctx.AddElapsedCycles(ActorSystemIndex, hpnow - hpprev); + if (threadCtx.WaitingPad.Park()) return 0; - hpstart = GetCycleCountFast(); - parked += hpstart - hpnow; + + hpnow = GetCycleCountFast(); + hpprev = TlsThreadContext->UpdateStartOfProcessingEventTS(hpnow); + TlsThreadContext->ElapsingActorActivity.store(ActorSystemIndex, std::memory_order_release); + wctx.AddParkedCycles(hpnow - hpprev); } while (!StopFlag.load(std::memory_order_acquire)) { if (const ui32 activation = Activations.Pop(++revolvingCounter)) { - hpnow = GetCycleCountFast(); - elapsed += hpnow - hpstart; - wctx.AddElapsedCycles(ActorSystemIndex, elapsed); - if (parked > 0) { - wctx.AddParkedCycles(parked); - } return activation; } SpinLockPause(); diff --git a/ydb/library/actors/core/executor_pool_shared.cpp b/ydb/library/actors/core/executor_pool_shared.cpp index f9b769d40494..990c7d7ca52c 100644 --- a/ydb/library/actors/core/executor_pool_shared.cpp +++ b/ydb/library/actors/core/executor_pool_shared.cpp @@ -20,7 +20,6 @@ TSharedExecutorPool::TSharedExecutorPool(const TSharedExecutorPoolConfig &config , PoolCount(poolCount) , SharedThreadCount(poolsWithThreads.size()) , Threads(new TSharedExecutorThreadCtx[SharedThreadCount]) - , Timers(new TTimers[SharedThreadCount]) , TimePerMailbox(config.TimePerMailbox) , EventsPerMailbox(config.EventsPerMailbox) , SoftProcessingDurationTs(config.SoftProcessingDurationTs) diff --git a/ydb/library/actors/core/executor_pool_shared.h b/ydb/library/actors/core/executor_pool_shared.h index 2f0eb6097323..c8a8594012d0 100644 --- a/ydb/library/actors/core/executor_pool_shared.h +++ b/ydb/library/actors/core/executor_pool_shared.h @@ -43,7 +43,6 @@ namespace NActors { i16 PoolCount; i16 SharedThreadCount; std::unique_ptr<TSharedExecutorThreadCtx[]> Threads; - std::unique_ptr<TTimers[]> Timers; std::unique_ptr<NSchedulerQueue::TReader[]> ScheduleReaders; std::unique_ptr<NSchedulerQueue::TWriter[]> ScheduleWriters; diff --git a/ydb/library/actors/core/executor_thread.cpp b/ydb/library/actors/core/executor_thread.cpp index 7262b2b4cf14..c25cc24fdd30 100644 --- a/ydb/library/actors/core/executor_thread.cpp +++ b/ydb/library/actors/core/executor_thread.cpp @@ -48,6 +48,7 @@ namespace NActors { , ThreadName(threadName) , TimePerMailbox(timePerMailbox) , EventsPerMailbox(eventsPerMailbox) + , ActorSystemIndex(TActorTypeOperator::GetActorSystemIndex()) { Ctx.Switch( ExecutorPool, @@ -75,6 +76,7 @@ namespace NActors { , EventsPerMailbox(eventsPerMailbox) , SoftProcessingDurationTs(softProcessingDurationTs) , SharedStats(poolCount) + , ActorSystemIndex(TActorTypeOperator::GetActorSystemIndex()) { Ctx.Switch( ExecutorPool, @@ -189,7 +191,6 @@ namespace NActors { Ctx.HPStart = GetCycleCountFast(); Ctx.ExecutedEvents = 0; } - NHPTimer::STime hpprev = Ctx.HPStart; IActor* actor = nullptr; const std::type_info* actorType = nullptr; @@ -198,12 +199,17 @@ namespace NActors { bool firstEvent = true; bool preempted = false; bool wasWorking = false; + NHPTimer::STime hpnow = Ctx.HPStart; + NHPTimer::STime hpprev = TlsThreadContext->UpdateStartOfProcessingEventTS(hpnow); + Ctx.AddElapsedCycles(ActorSystemIndex, hpnow - hpprev); + NHPTimer::STime eventStart = Ctx.HPStart; + TlsThreadContext->ActivationStartTS.store(Ctx.HPStart, std::memory_order_release); + for (; Ctx.ExecutedEvents < Ctx.EventsPerMailbox; ++Ctx.ExecutedEvents) { if (TAutoPtr<IEventHandle> evExt = mailbox->Pop()) { mailbox->ProcessEvents(mailbox); - NHPTimer::STime hpnow; recipient = evExt->GetRecipientRewrite(); - TActorContext ctx(*mailbox, *this, hpprev, recipient); + TActorContext ctx(*mailbox, *this, eventStart, recipient); TlsActivationContext = &ctx; // ensure dtor (if any) is called within actor system // move for destruct before ctx; auto ev = std::move(evExt); @@ -239,9 +245,14 @@ namespace NActors { if (activityType != prevActivityType) { prevActivityType = activityType; NProfiling::TMemoryTagScope::Reset(activityType); + TlsThreadContext->ElapsingActorActivity.store(activityType, std::memory_order_release); } actor->Receive(ev); + + hpnow = GetCycleCountFast(); + hpprev = TlsThreadContext->UpdateStartOfProcessingEventTS(hpnow); + mailbox->ProcessEvents(mailbox); actor->OnDequeueEvent(); @@ -255,9 +266,9 @@ namespace NActors { if (mailbox->IsEmpty()) // was not-free and become free, we must reclaim mailbox reclaimAsFree = true; - - hpnow = GetCycleCountFast(); - NHPTimer::STime elapsed = Ctx.AddEventProcessingStats(hpprev, hpnow, activityType, CurrentActorScheduledEventsCounter); + + Ctx.AddElapsedCycles(activityType, hpnow - hpprev); + NHPTimer::STime elapsed = Ctx.AddEventProcessingStats(eventStart, hpnow, activityType, CurrentActorScheduledEventsCounter); if (elapsed > 1000000) { LwTraceSlowEvent(ev.Get(), evTypeForTracing, actorType, Ctx.PoolId, CurrentRecipient, NHPTimer::GetSeconds(elapsed) * 1000.0); } @@ -277,9 +288,10 @@ namespace NActors { Ctx.IncrementNonDeliveredEvents(); } hpnow = GetCycleCountFast(); + hpprev = TlsThreadContext->UpdateStartOfProcessingEventTS(hpnow); + Ctx.AddElapsedCycles(ActorSystemIndex, hpnow - hpprev); } - - hpprev = hpnow; + eventStart = hpnow; if (TlsThreadContext->CapturedType == ESendingType::Tail) { AtomicStore(&mailbox->ScheduleMoment, hpnow); @@ -360,6 +372,8 @@ namespace NActors { break; // empty queue, leave } } + TlsThreadContext->ActivationStartTS.store(GetCycleCountFast(), std::memory_order_release); + TlsThreadContext->ElapsingActorActivity.store(ActorSystemIndex, std::memory_order_release); NProfiling::TMemoryTagScope::Reset(0); TlsActivationContext = nullptr; @@ -495,8 +509,13 @@ namespace NActors { ThreadDisableBalloc(); #endif - TThreadContext threadCtx; - TlsThreadContext = &threadCtx; + TlsThreadCtx.WorkerCtx = &Ctx; + TlsThreadCtx.ActorSystemIndex = ActorSystemIndex; + TlsThreadCtx.ElapsingActorActivity = ActorSystemIndex; + NHPTimer::STime now = GetCycleCountFast(); + TlsThreadCtx.StartOfProcessingEventTS = now; + TlsThreadCtx.ActivationStartTS = now; + TlsThreadContext = &TlsThreadCtx; if (ThreadName) { ::SetCurrentThreadName(ThreadName); } @@ -529,8 +548,13 @@ namespace NActors { ThreadDisableBalloc(); #endif - TThreadContext threadCtx; - TlsThreadContext = &threadCtx; + TlsThreadCtx.WorkerCtx = &Ctx; + TlsThreadCtx.ActorSystemIndex = ActorSystemIndex; + TlsThreadCtx.ElapsingActorActivity = ActorSystemIndex; + NHPTimer::STime now = GetCycleCountFast(); + TlsThreadCtx.StartOfProcessingEventTS = now; + TlsThreadCtx.ActivationStartTS = now; + TlsThreadContext = &TlsThreadCtx; if (ThreadName) { ::SetCurrentThreadName(ThreadName); } @@ -551,7 +575,7 @@ namespace NActors { } if (!wasWorking && !StopFlag.load(std::memory_order_relaxed)) { - TlsThreadContext->Timers.Reset(); + ThreadCtx->UnsetWork(); ThreadCtx->Wait(0, &StopFlag); } @@ -759,11 +783,31 @@ namespace NActors { } } - void TGenericExecutorThread::GetCurrentStats(TExecutorThreadStats& statsCopy) const { + void TGenericExecutorThread::UpdateThreadStats() { + NHPTimer::STime hpnow = GetCycleCountFast(); + ui64 activityType = TlsThreadCtx.ElapsingActorActivity.load(std::memory_order_acquire); + NHPTimer::STime hpprev = TlsThreadCtx.UpdateStartOfProcessingEventTS(hpnow); + if (activityType == Max<ui64>()) { + Ctx.AddParkedCycles(hpnow - hpprev); + } else { + Ctx.AddElapsedCycles(activityType, hpnow - hpprev); + } + if (activityType != Max<ui64>()) { + NHPTimer::STime activationStart = TlsThreadCtx.ActivationStartTS.load(std::memory_order_acquire); + NHPTimer::STime passedTime = Max<i64>(hpnow - activationStart, 0); + Ctx.SetCurrentActivationTime(activityType, Ts2Us(passedTime)); + } else { + Ctx.SetCurrentActivationTime(0, 0); + } + } + + void TGenericExecutorThread::GetCurrentStats(TExecutorThreadStats& statsCopy) { + UpdateThreadStats(); Ctx.GetCurrentStats(statsCopy); } - void TGenericExecutorThread::GetSharedStats(i16 poolId, TExecutorThreadStats &statsCopy) const { + void TGenericExecutorThread::GetSharedStats(i16 poolId, TExecutorThreadStats &statsCopy) { + UpdateThreadStats(); statsCopy = TExecutorThreadStats(); statsCopy.Aggregate(SharedStats[poolId]); } diff --git a/ydb/library/actors/core/executor_thread.h b/ydb/library/actors/core/executor_thread.h index b9a339648b6f..fdcf87c59f55 100644 --- a/ydb/library/actors/core/executor_thread.h +++ b/ydb/library/actors/core/executor_thread.h @@ -4,6 +4,7 @@ #include "event.h" #include "callstack.h" #include "probes.h" +#include "thread_context.h" #include "worker_context.h" #include "log_settings.h" @@ -66,8 +67,8 @@ namespace NActors { template <ESendingType SendingType = ESendingType::Common> bool Send(TAutoPtr<IEventHandle> ev); - void GetCurrentStats(TExecutorThreadStats& statsCopy) const; - void GetSharedStats(i16 poolId, TExecutorThreadStats &stats) const; + void GetCurrentStats(TExecutorThreadStats& statsCopy); + void GetSharedStats(i16 poolId, TExecutorThreadStats &stats); TThreadId GetThreadId() const; // blocks, must be called after Start() TWorkerId GetWorkerId() const; @@ -78,6 +79,8 @@ namespace NActors { template <typename TMailbox> TProcessingResult Execute(TMailbox* mailbox, ui32 hint, bool isTailExecution); + void UpdateThreadStats(); + public: TActorSystem* const ActorSystem; std::atomic<bool> StopFlag = false; @@ -92,7 +95,8 @@ namespace NActors { ui64 CurrentActorScheduledEventsCounter = 0; // Thread-specific - TWorkerContext Ctx; + mutable TThreadContext TlsThreadCtx; + mutable TWorkerContext Ctx; ui64 RevolvingReadCounter = 0; ui64 RevolvingWriteCounter = 0; const TString ThreadName; @@ -104,6 +108,7 @@ namespace NActors { ui64 SoftProcessingDurationTs; std::vector<TExecutorThreadStats> SharedStats; + const ui32 ActorSystemIndex; }; class TExecutorThread: public TGenericExecutorThread { diff --git a/ydb/library/actors/core/executor_thread_ctx.h b/ydb/library/actors/core/executor_thread_ctx.h index 7af5a085dd1d..5e7448bedcb9 100644 --- a/ydb/library/actors/core/executor_thread_ctx.h +++ b/ydb/library/actors/core/executor_thread_ctx.h @@ -2,6 +2,7 @@ #include "defs.h" #include "thread_context.h" +#include "worker_context.h" #include <ydb/library/actors/util/datetime.h> #include <ydb/library/actors/util/threadparkpad.h> @@ -95,16 +96,20 @@ namespace NActors { return false; } + NHPTimer::STime hpnow = GetCycleCountFast(); + NHPTimer::STime hpprev = TlsThreadContext->UpdateStartOfProcessingEventTS(hpnow); + TlsThreadContext->ElapsingActorActivity.store(Max<ui64>(), std::memory_order_release); + TlsThreadContext->WorkerCtx->AddElapsedCycles(TlsThreadContext->ActorSystemIndex, hpnow - hpprev); do { - TlsThreadContext->Timers.HPNow = GetCycleCountFast(); - TlsThreadContext->Timers.Elapsed += TlsThreadContext->Timers.HPNow - TlsThreadContext->Timers.HPStart; if (WaitingPad.Park()) // interrupted return true; - TlsThreadContext->Timers.HPStart = GetCycleCountFast(); - TlsThreadContext->Timers.Parked += TlsThreadContext->Timers.HPStart - TlsThreadContext->Timers.HPNow; + hpnow = GetCycleCountFast(); + hpprev = TlsThreadContext->UpdateStartOfProcessingEventTS(hpnow); + TlsThreadContext->WorkerCtx->AddParkedCycles(hpnow - hpprev); state = GetState<TWaitState>(); } while (static_cast<EThreadState>(state) == EThreadState::Sleep && !stopFlag->load(std::memory_order_relaxed)); - + TlsThreadContext->ActivationStartTS.store(hpnow, std::memory_order_release); + TlsThreadContext->ElapsingActorActivity.store(TlsThreadContext->ActorSystemIndex, std::memory_order_release); static_cast<TDerived*>(this)->AfterWakeUp(state); return false; } diff --git a/ydb/library/actors/core/mon_stats.h b/ydb/library/actors/core/mon_stats.h index f64f19155cd0..c79cf5e6e949 100644 --- a/ydb/library/actors/core/mon_stats.h +++ b/ydb/library/actors/core/mon_stats.h @@ -82,6 +82,11 @@ namespace NActors { bool IsHoggish = false; }; + struct TActivationTime { + i64 TimeUs = 0; + ui32 LastActivity = 0; + }; + struct TExecutorThreadStats { ui64 SentEvents = 0; ui64 ReceivedEvents = 0; @@ -91,6 +96,9 @@ namespace NActors { ui64 CpuUs = 0; // microseconds thread was executing on CPU (accounts for preemtion) ui64 SafeElapsedTicks = 0; ui64 WorstActivationTimeUs = 0; + + TActivationTime CurrentActivationTime; + NHPTimer::STime ElapsedTicks = 0; NHPTimer::STime ParkedTicks = 0; NHPTimer::STime BlockedTicks = 0; @@ -99,10 +107,12 @@ namespace NActors { TLogHistogram EventProcessingCountHistogram; TLogHistogram EventProcessingTimeHistogram; TVector<NHPTimer::STime> ElapsedTicksByActivity; + TVector<ui64> LongActivationDetectionsByActivity; TVector<ui64> ReceivedEventsByActivity; TVector<i64> ActorsAliveByActivity; // the sum should be positive, but per-thread might be negative TVector<ui64> ScheduledEventsByActivity; TVector<ui64> StuckActorsByActivity; + TVector<TActivationTime> AggregatedCurrentActivationTime; TVector<std::array<ui64, 10>> UsageByActivity; ui64 PoolActorRegistrations = 0; ui64 PoolDestroyedActors = 0; @@ -162,6 +172,12 @@ namespace NActors { AggregateOne(ActorsAliveByActivity, other.ActorsAliveByActivity); AggregateOne(ScheduledEventsByActivity, other.ScheduledEventsByActivity); AggregateOne(StuckActorsByActivity, other.StuckActorsByActivity); + if (other.CurrentActivationTime.TimeUs) { + AggregatedCurrentActivationTime.push_back(other.CurrentActivationTime); + } + if (other.AggregatedCurrentActivationTime.size()) { + AggregatedCurrentActivationTime.insert(AggregatedCurrentActivationTime.end(), other.AggregatedCurrentActivationTime.begin(), other.AggregatedCurrentActivationTime.end()); + } if (UsageByActivity.size() < other.UsageByActivity.size()) { UsageByActivity.resize(other.UsageByActivity.size()); diff --git a/ydb/library/actors/core/thread_context.h b/ydb/library/actors/core/thread_context.h index 0ddaffd1c5e3..dc0415660fbf 100644 --- a/ydb/library/actors/core/thread_context.h +++ b/ydb/library/actors/core/thread_context.h @@ -2,6 +2,7 @@ #include "defs.h" +#include <atomic> #include <ydb/library/actors/util/datetime.h> #include <ydb/library/actors/util/mpmc_ring_queue.h> @@ -11,26 +12,11 @@ namespace NActors { class IExecutorPool; + struct TWorkerContext; template <typename T> struct TWaitingStats; - struct TTimers { - NHPTimer::STime Elapsed = 0; - NHPTimer::STime Parked = 0; - NHPTimer::STime Blocked = 0; - NHPTimer::STime HPStart = GetCycleCountFast(); - NHPTimer::STime HPNow; - - void Reset() { - Elapsed = 0; - Parked = 0; - Blocked = 0; - HPStart = GetCycleCountFast(); - HPNow = HPStart; - } - }; - struct TThreadContext { IExecutorPool *Pool = nullptr; ui32 CapturedActivation = 0; @@ -42,8 +28,32 @@ namespace NActors { ui16 LocalQueueSize = 0; TWaitingStats<ui64> *WaitingStats = nullptr; bool IsCurrentRecipientAService = false; - TTimers Timers; TMPMCRingQueue<20>::EPopMode ActivationPopMode = TMPMCRingQueue<20>::EPopMode::ReallySlow; + + std::atomic<i64> StartOfProcessingEventTS = GetCycleCountFast(); + std::atomic<i64> ActivationStartTS = 0; + std::atomic<ui64> ElapsingActorActivity = Max<ui64>(); + TWorkerContext *WorkerCtx = nullptr; + ui32 ActorSystemIndex = 0; + + TThreadContext() { + i64 now = GetCycleCountFast(); + StartOfProcessingEventTS = now; + ActivationStartTS = now; + } + + ui64 UpdateStartOfProcessingEventTS(i64 newValue) { + i64 oldValue = StartOfProcessingEventTS.load(std::memory_order_acquire); + for (;;) { + if (newValue - oldValue <= 0) { + break; + } + if (StartOfProcessingEventTS.compare_exchange_strong(oldValue, newValue, std::memory_order_acq_rel)) { + break; + } + } + return oldValue; + } }; extern Y_POD_THREAD(TThreadContext*) TlsThreadContext; // in actor.cpp diff --git a/ydb/library/actors/core/ut/CMakeLists.darwin-arm64.txt b/ydb/library/actors/core/ut/CMakeLists.darwin-arm64.txt index 98e9cdcae187..5d6267159019 100644 --- a/ydb/library/actors/core/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/core/ut/CMakeLists.darwin-arm64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-library-actors-core-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-core-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_coroutine_ut.cpp @@ -65,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/core/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/core/ut/CMakeLists.darwin-x86_64.txt index d20fbe3e959e..e1315d1a38df 100644 --- a/ydb/library/actors/core/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/core/ut/CMakeLists.darwin-x86_64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-library-actors-core-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-core-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_coroutine_ut.cpp @@ -66,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/core/ut/CMakeLists.linux-aarch64.txt b/ydb/library/actors/core/ut/CMakeLists.linux-aarch64.txt index e47e5555b121..f928be9953d2 100644 --- a/ydb/library/actors/core/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/core/ut/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-library-actors-core-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-core-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_coroutine_ut.cpp @@ -69,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/core/ut/CMakeLists.linux-x86_64.txt b/ydb/library/actors/core/ut/CMakeLists.linux-x86_64.txt index 4610ee7de376..e7052e1054e7 100644 --- a/ydb/library/actors/core/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/core/ut/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-library-actors-core-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-core-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/actor_coroutine_ut.cpp @@ -70,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/core/ut/CMakeLists.windows-x86_64.txt b/ydb/library/actors/core/ut/CMakeLists.windows-x86_64.txt index c3834bf41d99..b4a9d14743ad 100644 --- a/ydb/library/actors/core/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/core/ut/CMakeLists.windows-x86_64.txt @@ -59,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/core/ut_fat/CMakeLists.darwin-arm64.txt b/ydb/library/actors/core/ut_fat/CMakeLists.darwin-arm64.txt index 3450db8c63b4..fa9fc3d9978d 100644 --- a/ydb/library/actors/core/ut_fat/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/core/ut_fat/CMakeLists.darwin-arm64.txt @@ -18,8 +18,6 @@ target_link_options(ydb-library-actors-core-ut_fat PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-core-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/ut_fat/actor_benchmark.cpp @@ -49,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/core/ut_fat/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/core/ut_fat/CMakeLists.darwin-x86_64.txt index 52d1619cea94..313a27f66543 100644 --- a/ydb/library/actors/core/ut_fat/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/core/ut_fat/CMakeLists.darwin-x86_64.txt @@ -19,8 +19,6 @@ target_link_options(ydb-library-actors-core-ut_fat PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-core-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/ut_fat/actor_benchmark.cpp @@ -50,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/core/ut_fat/CMakeLists.linux-aarch64.txt b/ydb/library/actors/core/ut_fat/CMakeLists.linux-aarch64.txt index 1efe7c22852d..895941c0c6ff 100644 --- a/ydb/library/actors/core/ut_fat/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/core/ut_fat/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(ydb-library-actors-core-ut_fat PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-core-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/ut_fat/actor_benchmark.cpp @@ -53,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/core/ut_fat/CMakeLists.linux-x86_64.txt b/ydb/library/actors/core/ut_fat/CMakeLists.linux-x86_64.txt index 1163a0cc02c6..d46c551f8ae3 100644 --- a/ydb/library/actors/core/ut_fat/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/core/ut_fat/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(ydb-library-actors-core-ut_fat PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-core-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/core/ut_fat/actor_benchmark.cpp @@ -54,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/core/ut_fat/CMakeLists.windows-x86_64.txt b/ydb/library/actors/core/ut_fat/CMakeLists.windows-x86_64.txt index d700cdd9e068..37d94c013664 100644 --- a/ydb/library/actors/core/ut_fat/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/core/ut_fat/CMakeLists.windows-x86_64.txt @@ -43,6 +43,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/core/worker_context.h b/ydb/library/actors/core/worker_context.h index bdec5145a1d4..5642c24969d5 100644 --- a/ydb/library/actors/core/worker_context.h +++ b/ydb/library/actors/core/worker_context.h @@ -50,14 +50,23 @@ namespace NActors { statsCopy.Aggregate(*Stats); } + void SetCurrentActivationTime(ui32 activityType, i64 elapsed) { + RelaxedStore(&Stats->CurrentActivationTime.LastActivity, activityType); + RelaxedStore(&Stats->CurrentActivationTime.TimeUs, (elapsed > 0 ? elapsed : 0)); + } + void AddElapsedCycles(ui32 activityType, i64 elapsed) { - Y_DEBUG_ABORT_UNLESS(activityType < Stats->MaxActivityType()); - RelaxedStore(&Stats->ElapsedTicks, RelaxedLoad(&Stats->ElapsedTicks) + elapsed); - RelaxedStore(&Stats->ElapsedTicksByActivity[activityType], RelaxedLoad(&Stats->ElapsedTicksByActivity[activityType]) + elapsed); + if (Y_LIKELY(elapsed > 0)) { + Y_DEBUG_ABORT_UNLESS(activityType < Stats->MaxActivityType()); + RelaxedStore(&Stats->ElapsedTicks, RelaxedLoad(&Stats->ElapsedTicks) + elapsed); + RelaxedStore(&Stats->ElapsedTicksByActivity[activityType], RelaxedLoad(&Stats->ElapsedTicksByActivity[activityType]) + elapsed); + } } void AddParkedCycles(i64 elapsed) { - RelaxedStore(&Stats->ParkedTicks, RelaxedLoad(&Stats->ParkedTicks) + elapsed); + if (Y_LIKELY(elapsed > 0)) { + RelaxedStore(&Stats->ParkedTicks, RelaxedLoad(&Stats->ParkedTicks) + elapsed); + } } void AddBlockedCycles(i64 elapsed) { @@ -126,7 +135,6 @@ namespace NActors { RelaxedStore(&Stats->ReceivedEvents, RelaxedLoad(&Stats->ReceivedEvents) + 1); RelaxedStore(&Stats->ReceivedEventsByActivity[activityType], RelaxedLoad(&Stats->ReceivedEventsByActivity[activityType]) + 1); RelaxedStore(&Stats->ScheduledEventsByActivity[activityType], RelaxedLoad(&Stats->ScheduledEventsByActivity[activityType]) + scheduled); - AddElapsedCycles(activityType, elapsed); return elapsed; } @@ -150,6 +158,7 @@ namespace NActors { } #else void GetCurrentStats(TExecutorThreadStats&) const {} + void SetCurrentActivationTime(ui32, i64) {} inline void AddElapsedCycles(ui32, i64) {} inline void AddParkedCycles(i64) {} inline void AddBlockedCycles(i64) {} diff --git a/ydb/library/actors/cppcoro/CMakeLists.darwin-arm64.txt b/ydb/library/actors/cppcoro/CMakeLists.darwin-arm64.txt index 8e2847d70bed..e285be748e39 100644 --- a/ydb/library/actors/cppcoro/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/cppcoro/CMakeLists.darwin-arm64.txt @@ -16,6 +16,11 @@ target_link_libraries(library-actors-cppcoro PUBLIC library-actors-core ) target_sources(library-actors-cppcoro PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/await_callback.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_group.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_result.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/await_callback.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_group.cpp diff --git a/ydb/library/actors/cppcoro/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/cppcoro/CMakeLists.darwin-x86_64.txt index 8e2847d70bed..e285be748e39 100644 --- a/ydb/library/actors/cppcoro/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/cppcoro/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,11 @@ target_link_libraries(library-actors-cppcoro PUBLIC library-actors-core ) target_sources(library-actors-cppcoro PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/await_callback.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_group.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_result.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/await_callback.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_group.cpp diff --git a/ydb/library/actors/cppcoro/CMakeLists.linux-aarch64.txt b/ydb/library/actors/cppcoro/CMakeLists.linux-aarch64.txt index 1e8318081352..99586f910a63 100644 --- a/ydb/library/actors/cppcoro/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/cppcoro/CMakeLists.linux-aarch64.txt @@ -17,6 +17,11 @@ target_link_libraries(library-actors-cppcoro PUBLIC library-actors-core ) target_sources(library-actors-cppcoro PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/await_callback.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_group.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_result.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/await_callback.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_group.cpp diff --git a/ydb/library/actors/cppcoro/CMakeLists.linux-x86_64.txt b/ydb/library/actors/cppcoro/CMakeLists.linux-x86_64.txt index 1e8318081352..99586f910a63 100644 --- a/ydb/library/actors/cppcoro/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/cppcoro/CMakeLists.linux-x86_64.txt @@ -17,6 +17,11 @@ target_link_libraries(library-actors-cppcoro PUBLIC library-actors-core ) target_sources(library-actors-cppcoro PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/await_callback.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_group.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_result.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/await_callback.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_group.cpp diff --git a/ydb/library/actors/cppcoro/CMakeLists.windows-x86_64.txt b/ydb/library/actors/cppcoro/CMakeLists.windows-x86_64.txt index 8e2847d70bed..e285be748e39 100644 --- a/ydb/library/actors/cppcoro/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/cppcoro/CMakeLists.windows-x86_64.txt @@ -16,6 +16,11 @@ target_link_libraries(library-actors-cppcoro PUBLIC library-actors-core ) target_sources(library-actors-cppcoro PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/await_callback.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_group.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_result.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/await_callback.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_group.cpp diff --git a/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.darwin-arm64.txt b/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.darwin-arm64.txt index c4ae691e512a..fdb3ecdeab98 100644 --- a/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.darwin-arm64.txt @@ -18,8 +18,6 @@ target_link_options(corobenchmark PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(corobenchmark PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/corobenchmark/main.cpp diff --git a/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.darwin-x86_64.txt index ffebcc68c85d..43b001c7e60f 100644 --- a/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.darwin-x86_64.txt @@ -19,8 +19,6 @@ target_link_options(corobenchmark PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(corobenchmark PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/corobenchmark/main.cpp diff --git a/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.linux-aarch64.txt b/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.linux-aarch64.txt index 8ae4d8260172..7aced2478d30 100644 --- a/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(corobenchmark PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(corobenchmark PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/corobenchmark/main.cpp diff --git a/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.linux-x86_64.txt b/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.linux-x86_64.txt index 7160c3cdfea0..618191ed382c 100644 --- a/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/cppcoro/corobenchmark/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(corobenchmark PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(corobenchmark PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/corobenchmark/main.cpp diff --git a/ydb/library/actors/cppcoro/ut/CMakeLists.darwin-arm64.txt b/ydb/library/actors/cppcoro/ut/CMakeLists.darwin-arm64.txt index c277a4b75b41..2653f3babf12 100644 --- a/ydb/library/actors/cppcoro/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/cppcoro/ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-actors-cppcoro-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-cppcoro-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/cppcoro/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/cppcoro/ut/CMakeLists.darwin-x86_64.txt index 4166f6544519..a4350c824b6d 100644 --- a/ydb/library/actors/cppcoro/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/cppcoro/ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-library-actors-cppcoro-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-cppcoro-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/cppcoro/ut/CMakeLists.linux-aarch64.txt b/ydb/library/actors/cppcoro/ut/CMakeLists.linux-aarch64.txt index a91773f80ff5..c0eaf56798c9 100644 --- a/ydb/library/actors/cppcoro/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/cppcoro/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-actors-cppcoro-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-cppcoro-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/cppcoro/ut/CMakeLists.linux-x86_64.txt b/ydb/library/actors/cppcoro/ut/CMakeLists.linux-x86_64.txt index 41f3d81b2d88..d3a88c1cf3fa 100644 --- a/ydb/library/actors/cppcoro/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/cppcoro/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-library-actors-cppcoro-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-cppcoro-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/cppcoro/task_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/cppcoro/ut/CMakeLists.windows-x86_64.txt b/ydb/library/actors/cppcoro/ut/CMakeLists.windows-x86_64.txt index ddb5bbb146ce..ca6c42192bf0 100644 --- a/ydb/library/actors/cppcoro/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/cppcoro/ut/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/dnscachelib/CMakeLists.darwin-arm64.txt b/ydb/library/actors/dnscachelib/CMakeLists.darwin-arm64.txt index fcddde2933f4..42ee0776d453 100644 --- a/ydb/library/actors/dnscachelib/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/dnscachelib/CMakeLists.darwin-arm64.txt @@ -16,6 +16,9 @@ target_link_libraries(library-actors-dnscachelib PUBLIC cpp-deprecated-atomic ) target_sources(library-actors-dnscachelib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/dnscache.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/probes.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/timekeeper.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/dnscache.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/probes.cpp ) diff --git a/ydb/library/actors/dnscachelib/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/dnscachelib/CMakeLists.darwin-x86_64.txt index fcddde2933f4..42ee0776d453 100644 --- a/ydb/library/actors/dnscachelib/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/dnscachelib/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(library-actors-dnscachelib PUBLIC cpp-deprecated-atomic ) target_sources(library-actors-dnscachelib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/dnscache.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/probes.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/timekeeper.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/dnscache.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/probes.cpp ) diff --git a/ydb/library/actors/dnscachelib/CMakeLists.linux-aarch64.txt b/ydb/library/actors/dnscachelib/CMakeLists.linux-aarch64.txt index b13cb452aa7d..74e673c6e5f9 100644 --- a/ydb/library/actors/dnscachelib/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/dnscachelib/CMakeLists.linux-aarch64.txt @@ -17,6 +17,9 @@ target_link_libraries(library-actors-dnscachelib PUBLIC cpp-deprecated-atomic ) target_sources(library-actors-dnscachelib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/dnscache.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/probes.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/timekeeper.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/dnscache.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/probes.cpp ) diff --git a/ydb/library/actors/dnscachelib/CMakeLists.linux-x86_64.txt b/ydb/library/actors/dnscachelib/CMakeLists.linux-x86_64.txt index b13cb452aa7d..74e673c6e5f9 100644 --- a/ydb/library/actors/dnscachelib/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/dnscachelib/CMakeLists.linux-x86_64.txt @@ -17,6 +17,9 @@ target_link_libraries(library-actors-dnscachelib PUBLIC cpp-deprecated-atomic ) target_sources(library-actors-dnscachelib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/dnscache.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/probes.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/timekeeper.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/dnscache.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/probes.cpp ) diff --git a/ydb/library/actors/dnscachelib/CMakeLists.windows-x86_64.txt b/ydb/library/actors/dnscachelib/CMakeLists.windows-x86_64.txt index fcddde2933f4..42ee0776d453 100644 --- a/ydb/library/actors/dnscachelib/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/dnscachelib/CMakeLists.windows-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(library-actors-dnscachelib PUBLIC cpp-deprecated-atomic ) target_sources(library-actors-dnscachelib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/dnscache.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/probes.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/timekeeper.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/dnscache.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnscachelib/probes.cpp ) diff --git a/ydb/library/actors/dnsresolver/ut/CMakeLists.darwin-arm64.txt b/ydb/library/actors/dnsresolver/ut/CMakeLists.darwin-arm64.txt index d39e015be606..ac763ec4e631 100644 --- a/ydb/library/actors/dnsresolver/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/dnsresolver/ut/CMakeLists.darwin-arm64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-library-actors-dnsresolver-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-dnsresolver-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnsresolver/dnsresolver_caching_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/dnsresolver/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/dnsresolver/ut/CMakeLists.darwin-x86_64.txt index 0ec77485fafd..6d33a8c648f6 100644 --- a/ydb/library/actors/dnsresolver/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/dnsresolver/ut/CMakeLists.darwin-x86_64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-library-actors-dnsresolver-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-dnsresolver-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnsresolver/dnsresolver_caching_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/dnsresolver/ut/CMakeLists.linux-aarch64.txt b/ydb/library/actors/dnsresolver/ut/CMakeLists.linux-aarch64.txt index f0ef871fd6c0..56994f876d6e 100644 --- a/ydb/library/actors/dnsresolver/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/dnsresolver/ut/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-library-actors-dnsresolver-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-dnsresolver-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnsresolver/dnsresolver_caching_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/dnsresolver/ut/CMakeLists.linux-x86_64.txt b/ydb/library/actors/dnsresolver/ut/CMakeLists.linux-x86_64.txt index 28de710f265e..a18251d2aa96 100644 --- a/ydb/library/actors/dnsresolver/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/dnsresolver/ut/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-library-actors-dnsresolver-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-dnsresolver-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/dnsresolver/dnsresolver_caching_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/dnsresolver/ut/CMakeLists.windows-x86_64.txt b/ydb/library/actors/dnsresolver/ut/CMakeLists.windows-x86_64.txt index e604ef5b8839..ad5cb5f59f32 100644 --- a/ydb/library/actors/dnsresolver/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/dnsresolver/ut/CMakeLists.windows-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/examples/01_ping_pong/CMakeLists.darwin-arm64.txt b/ydb/library/actors/examples/01_ping_pong/CMakeLists.darwin-arm64.txt index 9d2cf5c7006f..5febec3a3e75 100644 --- a/ydb/library/actors/examples/01_ping_pong/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/examples/01_ping_pong/CMakeLists.darwin-arm64.txt @@ -17,8 +17,6 @@ target_link_options(example_01_ping_pong PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(example_01_ping_pong PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/01_ping_pong/main.cpp diff --git a/ydb/library/actors/examples/01_ping_pong/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/examples/01_ping_pong/CMakeLists.darwin-x86_64.txt index bb175a877ac1..38ead4accfaf 100644 --- a/ydb/library/actors/examples/01_ping_pong/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/examples/01_ping_pong/CMakeLists.darwin-x86_64.txt @@ -18,8 +18,6 @@ target_link_options(example_01_ping_pong PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(example_01_ping_pong PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/01_ping_pong/main.cpp diff --git a/ydb/library/actors/examples/01_ping_pong/CMakeLists.linux-aarch64.txt b/ydb/library/actors/examples/01_ping_pong/CMakeLists.linux-aarch64.txt index 73dc0b020d3d..53fc09152e71 100644 --- a/ydb/library/actors/examples/01_ping_pong/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/examples/01_ping_pong/CMakeLists.linux-aarch64.txt @@ -20,9 +20,6 @@ target_link_options(example_01_ping_pong PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(example_01_ping_pong PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/01_ping_pong/main.cpp diff --git a/ydb/library/actors/examples/01_ping_pong/CMakeLists.linux-x86_64.txt b/ydb/library/actors/examples/01_ping_pong/CMakeLists.linux-x86_64.txt index f30012ff4164..0e22d5ba9338 100644 --- a/ydb/library/actors/examples/01_ping_pong/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/examples/01_ping_pong/CMakeLists.linux-x86_64.txt @@ -21,9 +21,6 @@ target_link_options(example_01_ping_pong PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(example_01_ping_pong PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/01_ping_pong/main.cpp diff --git a/ydb/library/actors/examples/02_discovery/CMakeLists.darwin-arm64.txt b/ydb/library/actors/examples/02_discovery/CMakeLists.darwin-arm64.txt index c5783b9062ea..c0bebf5fe10d 100644 --- a/ydb/library/actors/examples/02_discovery/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/examples/02_discovery/CMakeLists.darwin-arm64.txt @@ -33,13 +33,13 @@ target_link_options(example_02_discovery PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_proto_messages(example_02_discovery PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/protocol.proto ) target_sources(example_02_discovery PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/actors/examples/02_discovery/protocol.pb.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/services.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/endpoint.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/lookup.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/main.cpp diff --git a/ydb/library/actors/examples/02_discovery/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/examples/02_discovery/CMakeLists.darwin-x86_64.txt index 51c6fb244644..ae8f57c3b6a6 100644 --- a/ydb/library/actors/examples/02_discovery/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/examples/02_discovery/CMakeLists.darwin-x86_64.txt @@ -34,13 +34,13 @@ target_link_options(example_02_discovery PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_proto_messages(example_02_discovery PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/protocol.proto ) target_sources(example_02_discovery PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/actors/examples/02_discovery/protocol.pb.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/services.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/endpoint.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/lookup.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/main.cpp diff --git a/ydb/library/actors/examples/02_discovery/CMakeLists.linux-aarch64.txt b/ydb/library/actors/examples/02_discovery/CMakeLists.linux-aarch64.txt index 457698edeac8..092a75dbb4b2 100644 --- a/ydb/library/actors/examples/02_discovery/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/examples/02_discovery/CMakeLists.linux-aarch64.txt @@ -36,14 +36,13 @@ target_link_options(example_02_discovery PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_proto_messages(example_02_discovery PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/protocol.proto ) target_sources(example_02_discovery PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/actors/examples/02_discovery/protocol.pb.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/services.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/endpoint.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/lookup.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/main.cpp diff --git a/ydb/library/actors/examples/02_discovery/CMakeLists.linux-x86_64.txt b/ydb/library/actors/examples/02_discovery/CMakeLists.linux-x86_64.txt index 2efa983d1464..a151b0bf68e5 100644 --- a/ydb/library/actors/examples/02_discovery/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/examples/02_discovery/CMakeLists.linux-x86_64.txt @@ -37,14 +37,13 @@ target_link_options(example_02_discovery PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_proto_messages(example_02_discovery PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/protocol.proto ) target_sources(example_02_discovery PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/actors/examples/02_discovery/protocol.pb.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/services.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/endpoint.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/lookup.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/main.cpp diff --git a/ydb/library/actors/examples/02_discovery/CMakeLists.windows-x86_64.txt b/ydb/library/actors/examples/02_discovery/CMakeLists.windows-x86_64.txt index e8a950fdf724..cd095b21a41a 100644 --- a/ydb/library/actors/examples/02_discovery/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/examples/02_discovery/CMakeLists.windows-x86_64.txt @@ -34,6 +34,8 @@ target_proto_messages(example_02_discovery PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/protocol.proto ) target_sources(example_02_discovery PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/actors/examples/02_discovery/protocol.pb.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/services.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/endpoint.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/lookup.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/examples/02_discovery/main.cpp diff --git a/ydb/library/actors/helpers/CMakeLists.darwin-arm64.txt b/ydb/library/actors/helpers/CMakeLists.darwin-arm64.txt index 4392ee98f617..4763c9f2d44c 100644 --- a/ydb/library/actors/helpers/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/helpers/CMakeLists.darwin-arm64.txt @@ -16,6 +16,10 @@ target_link_libraries(library-actors-helpers PUBLIC cpp-monlib-dynamic_counters ) target_sources(library-actors-helpers PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/activeactors.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/flow_controlled_queue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/future_callback.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/mon_histogram_helper.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/activeactors.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/flow_controlled_queue.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/selfping_actor.cpp diff --git a/ydb/library/actors/helpers/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/helpers/CMakeLists.darwin-x86_64.txt index 4392ee98f617..4763c9f2d44c 100644 --- a/ydb/library/actors/helpers/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/helpers/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,10 @@ target_link_libraries(library-actors-helpers PUBLIC cpp-monlib-dynamic_counters ) target_sources(library-actors-helpers PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/activeactors.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/flow_controlled_queue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/future_callback.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/mon_histogram_helper.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/activeactors.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/flow_controlled_queue.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/selfping_actor.cpp diff --git a/ydb/library/actors/helpers/CMakeLists.linux-aarch64.txt b/ydb/library/actors/helpers/CMakeLists.linux-aarch64.txt index b9a2080232a9..f7146c5fdafd 100644 --- a/ydb/library/actors/helpers/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/helpers/CMakeLists.linux-aarch64.txt @@ -17,6 +17,10 @@ target_link_libraries(library-actors-helpers PUBLIC cpp-monlib-dynamic_counters ) target_sources(library-actors-helpers PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/activeactors.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/flow_controlled_queue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/future_callback.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/mon_histogram_helper.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/activeactors.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/flow_controlled_queue.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/selfping_actor.cpp diff --git a/ydb/library/actors/helpers/CMakeLists.linux-x86_64.txt b/ydb/library/actors/helpers/CMakeLists.linux-x86_64.txt index b9a2080232a9..f7146c5fdafd 100644 --- a/ydb/library/actors/helpers/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/helpers/CMakeLists.linux-x86_64.txt @@ -17,6 +17,10 @@ target_link_libraries(library-actors-helpers PUBLIC cpp-monlib-dynamic_counters ) target_sources(library-actors-helpers PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/activeactors.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/flow_controlled_queue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/future_callback.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/mon_histogram_helper.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/activeactors.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/flow_controlled_queue.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/selfping_actor.cpp diff --git a/ydb/library/actors/helpers/CMakeLists.windows-x86_64.txt b/ydb/library/actors/helpers/CMakeLists.windows-x86_64.txt index 4392ee98f617..4763c9f2d44c 100644 --- a/ydb/library/actors/helpers/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/helpers/CMakeLists.windows-x86_64.txt @@ -16,6 +16,10 @@ target_link_libraries(library-actors-helpers PUBLIC cpp-monlib-dynamic_counters ) target_sources(library-actors-helpers PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/activeactors.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/flow_controlled_queue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/future_callback.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/mon_histogram_helper.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/activeactors.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/flow_controlled_queue.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/selfping_actor.cpp diff --git a/ydb/library/actors/helpers/pool_stats_collector.h b/ydb/library/actors/helpers/pool_stats_collector.h index 849ff1e2e9ee..036aed7f8de3 100644 --- a/ydb/library/actors/helpers/pool_stats_collector.h +++ b/ydb/library/actors/helpers/pool_stats_collector.h @@ -52,6 +52,7 @@ class TStatsCollectingActor : public TActorBootstrapped<TStatsCollectingActor> { void Init(NMonitoring::TDynamicCounterPtr group) { Group = group; + CurrentActivationTimeByActivity.resize(GetActivityTypeCount()); ElapsedMicrosecByActivityBuckets.resize(GetActivityTypeCount()); ReceivedEventsByActivityBuckets.resize(GetActivityTypeCount()); ActorsAliveByActivityBuckets.resize(GetActivityTypeCount()); @@ -77,6 +78,7 @@ class TStatsCollectingActor : public TActorBootstrapped<TStatsCollectingActor> { } } + *CurrentActivationTimeByActivity[i] = 0; *ElapsedMicrosecByActivityBuckets[i] = ::NHPTimer::GetSeconds(ticks)*1000000; *ReceivedEventsByActivityBuckets[i] = events; *ActorsAliveByActivityBuckets[i] = actors; @@ -87,6 +89,29 @@ class TStatsCollectingActor : public TActorBootstrapped<TStatsCollectingActor> { *UsageByActivityBuckets[i][j] = stats.UsageByActivity[i][j]; } } + + auto setActivationTime = [&](TActivationTime activation) { + if (!ActorsAliveByActivityBuckets[activation.LastActivity]) { + InitCountersForActivity(activation.LastActivity); + } + *CurrentActivationTimeByActivity[activation.LastActivity] = activation.TimeUs; + }; + if (stats.CurrentActivationTime.TimeUs) { + setActivationTime(stats.CurrentActivationTime); + } + std::vector<TActivationTime> activationTimes = stats.AggregatedCurrentActivationTime; + Sort(activationTimes.begin(), activationTimes.end(), [](auto &left, auto &right) { + return left.LastActivity < right.LastActivity || + left.LastActivity == right.LastActivity && left.TimeUs > right.TimeUs; + }); + ui32 prevActivity = Max<ui32>(); + for (auto &activationTime : activationTimes) { + if (activationTime.LastActivity == prevActivity) { + continue; + } + setActivationTime(activationTime); + prevActivity = activationTime.LastActivity; + } } private: @@ -95,6 +120,8 @@ class TStatsCollectingActor : public TActorBootstrapped<TStatsCollectingActor> { auto bucketName = TString(GetActivityTypeName(activityType)); + CurrentActivationTimeByActivity[activityType] = + Group->GetSubgroup("sensor", "CurrentActivationTimeUsByActivity")->GetNamedCounter("activity", bucketName, false); ElapsedMicrosecByActivityBuckets[activityType] = Group->GetSubgroup("sensor", "ElapsedMicrosecByActivity")->GetNamedCounter("activity", bucketName, true); ReceivedEventsByActivityBuckets[activityType] = @@ -114,6 +141,7 @@ class TStatsCollectingActor : public TActorBootstrapped<TStatsCollectingActor> { private: NMonitoring::TDynamicCounterPtr Group; + TVector<NMonitoring::TDynamicCounters::TCounterPtr> CurrentActivationTimeByActivity; TVector<NMonitoring::TDynamicCounters::TCounterPtr> ElapsedMicrosecByActivityBuckets; TVector<NMonitoring::TDynamicCounters::TCounterPtr> ReceivedEventsByActivityBuckets; TVector<NMonitoring::TDynamicCounters::TCounterPtr> ActorsAliveByActivityBuckets; diff --git a/ydb/library/actors/helpers/ut/CMakeLists.darwin-arm64.txt b/ydb/library/actors/helpers/ut/CMakeLists.darwin-arm64.txt index eb490e93de8c..6c4b931d3bca 100644 --- a/ydb/library/actors/helpers/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/helpers/ut/CMakeLists.darwin-arm64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-library-actors-helpers-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-helpers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/selfping_actor_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/helpers/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/helpers/ut/CMakeLists.darwin-x86_64.txt index 613b811455a9..fac30b41f02a 100644 --- a/ydb/library/actors/helpers/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/helpers/ut/CMakeLists.darwin-x86_64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-library-actors-helpers-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-helpers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/selfping_actor_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/helpers/ut/CMakeLists.linux-aarch64.txt b/ydb/library/actors/helpers/ut/CMakeLists.linux-aarch64.txt index 7ad8585da62b..3719601a58f9 100644 --- a/ydb/library/actors/helpers/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/helpers/ut/CMakeLists.linux-aarch64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-library-actors-helpers-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-helpers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/selfping_actor_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/helpers/ut/CMakeLists.linux-x86_64.txt b/ydb/library/actors/helpers/ut/CMakeLists.linux-x86_64.txt index 937dab9a4735..bf2640b06cc5 100644 --- a/ydb/library/actors/helpers/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/helpers/ut/CMakeLists.linux-x86_64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-library-actors-helpers-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-helpers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/helpers/selfping_actor_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/helpers/ut/CMakeLists.windows-x86_64.txt b/ydb/library/actors/helpers/ut/CMakeLists.windows-x86_64.txt index e50e89233281..d5051a95c4b4 100644 --- a/ydb/library/actors/helpers/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/helpers/ut/CMakeLists.windows-x86_64.txt @@ -49,6 +49,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/http/CMakeLists.darwin-arm64.txt b/ydb/library/actors/http/CMakeLists.darwin-arm64.txt index c1852d9c0e9c..d36ec68dd34d 100644 --- a/ydb/library/actors/http/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/http/CMakeLists.darwin-arm64.txt @@ -21,6 +21,14 @@ target_link_libraries(library-actors-http PUBLIC cpp-string_utils-quote ) target_sources(library-actors-http PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_config.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_sock_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_sock64.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_ssl.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_static.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_compress.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_acceptor.cpp diff --git a/ydb/library/actors/http/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/http/CMakeLists.darwin-x86_64.txt index c1852d9c0e9c..d36ec68dd34d 100644 --- a/ydb/library/actors/http/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/http/CMakeLists.darwin-x86_64.txt @@ -21,6 +21,14 @@ target_link_libraries(library-actors-http PUBLIC cpp-string_utils-quote ) target_sources(library-actors-http PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_config.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_sock_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_sock64.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_ssl.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_static.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_compress.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_acceptor.cpp diff --git a/ydb/library/actors/http/CMakeLists.linux-aarch64.txt b/ydb/library/actors/http/CMakeLists.linux-aarch64.txt index eb987fc90c56..fb7fcdd71562 100644 --- a/ydb/library/actors/http/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/http/CMakeLists.linux-aarch64.txt @@ -22,6 +22,14 @@ target_link_libraries(library-actors-http PUBLIC cpp-string_utils-quote ) target_sources(library-actors-http PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_config.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_sock_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_sock64.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_ssl.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_static.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_compress.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_acceptor.cpp diff --git a/ydb/library/actors/http/CMakeLists.linux-x86_64.txt b/ydb/library/actors/http/CMakeLists.linux-x86_64.txt index eb987fc90c56..fb7fcdd71562 100644 --- a/ydb/library/actors/http/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/http/CMakeLists.linux-x86_64.txt @@ -22,6 +22,14 @@ target_link_libraries(library-actors-http PUBLIC cpp-string_utils-quote ) target_sources(library-actors-http PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_config.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_sock_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_sock64.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_ssl.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_static.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_compress.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_acceptor.cpp diff --git a/ydb/library/actors/http/CMakeLists.windows-x86_64.txt b/ydb/library/actors/http/CMakeLists.windows-x86_64.txt index c1852d9c0e9c..d36ec68dd34d 100644 --- a/ydb/library/actors/http/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/http/CMakeLists.windows-x86_64.txt @@ -21,6 +21,14 @@ target_link_libraries(library-actors-http PUBLIC cpp-string_utils-quote ) target_sources(library-actors-http PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_config.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_sock_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_sock64.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_ssl.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_static.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_compress.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_proxy_acceptor.cpp diff --git a/ydb/library/actors/http/ut/CMakeLists.darwin-arm64.txt b/ydb/library/actors/http/ut/CMakeLists.darwin-arm64.txt index 42ca8a551d6c..0f1327072e97 100644 --- a/ydb/library/actors/http/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/http/ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-actors-http-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-http-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/http/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/http/ut/CMakeLists.darwin-x86_64.txt index a7563e08fd07..b6ad7bb0912b 100644 --- a/ydb/library/actors/http/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/http/ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-library-actors-http-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-http-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/http/ut/CMakeLists.linux-aarch64.txt b/ydb/library/actors/http/ut/CMakeLists.linux-aarch64.txt index b8acf5c26114..c63f888cb136 100644 --- a/ydb/library/actors/http/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/http/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-actors-http-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-http-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/http/ut/CMakeLists.linux-x86_64.txt b/ydb/library/actors/http/ut/CMakeLists.linux-x86_64.txt index e33b1f6c2043..fa2a737ca377 100644 --- a/ydb/library/actors/http/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/http/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-library-actors-http-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-http-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/http/http_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/http/ut/CMakeLists.windows-x86_64.txt b/ydb/library/actors/http/ut/CMakeLists.windows-x86_64.txt index f1adc52bda7c..7725614237a6 100644 --- a/ydb/library/actors/http/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/http/ut/CMakeLists.windows-x86_64.txt @@ -44,6 +44,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/interconnect/CMakeLists.darwin-arm64.txt b/ydb/library/actors/interconnect/CMakeLists.darwin-arm64.txt index aa0d0be89c18..339fd1bcd0b5 100644 --- a/ydb/library/actors/interconnect/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/interconnect/CMakeLists.darwin-arm64.txt @@ -37,6 +37,34 @@ target_link_libraries(library-actors-interconnect PUBLIC library-cpp-packedtypes ) target_sources(library-actors-interconnect PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/channel_scheduler.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/event_filter.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/event_holder_pool.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/events_local.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_address.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_channel.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_common.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_handshake.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_mon.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_proxy_wrapper.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_tcp_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_tcp_server.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_tcp_session.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/load.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/logging.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/packet.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp_unit.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp_unit_select.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/profiler.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/slowpoke_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/types.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/watchdog_timer.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_address.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_channel.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_counters.cpp diff --git a/ydb/library/actors/interconnect/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/interconnect/CMakeLists.darwin-x86_64.txt index aa0d0be89c18..339fd1bcd0b5 100644 --- a/ydb/library/actors/interconnect/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/interconnect/CMakeLists.darwin-x86_64.txt @@ -37,6 +37,34 @@ target_link_libraries(library-actors-interconnect PUBLIC library-cpp-packedtypes ) target_sources(library-actors-interconnect PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/channel_scheduler.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/event_filter.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/event_holder_pool.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/events_local.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_address.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_channel.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_common.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_handshake.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_mon.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_proxy_wrapper.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_tcp_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_tcp_server.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_tcp_session.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/load.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/logging.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/packet.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp_unit.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp_unit_select.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/profiler.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/slowpoke_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/types.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/watchdog_timer.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_address.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_channel.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_counters.cpp diff --git a/ydb/library/actors/interconnect/CMakeLists.linux-aarch64.txt b/ydb/library/actors/interconnect/CMakeLists.linux-aarch64.txt index 0d7462732caa..ae615cacfbac 100644 --- a/ydb/library/actors/interconnect/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/interconnect/CMakeLists.linux-aarch64.txt @@ -38,6 +38,35 @@ target_link_libraries(library-actors-interconnect PUBLIC library-cpp-packedtypes ) target_sources(library-actors-interconnect PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/channel_scheduler.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/event_filter.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/event_holder_pool.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/events_local.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_address.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_channel.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_common.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_handshake.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_mon.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_proxy_wrapper.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_tcp_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_tcp_server.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_tcp_session.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/load.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/logging.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/packet.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp_unit.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp_unit_select.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/profiler.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/slowpoke_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/types.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/watchdog_timer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp_unit_epoll.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_address.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_channel.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_counters.cpp diff --git a/ydb/library/actors/interconnect/CMakeLists.linux-x86_64.txt b/ydb/library/actors/interconnect/CMakeLists.linux-x86_64.txt index 0d7462732caa..ae615cacfbac 100644 --- a/ydb/library/actors/interconnect/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/interconnect/CMakeLists.linux-x86_64.txt @@ -38,6 +38,35 @@ target_link_libraries(library-actors-interconnect PUBLIC library-cpp-packedtypes ) target_sources(library-actors-interconnect PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/channel_scheduler.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/event_filter.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/event_holder_pool.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/events_local.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_address.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_channel.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_common.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_handshake.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_mon.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_proxy_wrapper.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_tcp_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_tcp_server.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_tcp_session.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/load.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/logging.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/packet.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp_unit.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp_unit_select.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/profiler.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/slowpoke_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/types.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/watchdog_timer.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp_unit_epoll.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_address.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_channel.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_counters.cpp diff --git a/ydb/library/actors/interconnect/CMakeLists.windows-x86_64.txt b/ydb/library/actors/interconnect/CMakeLists.windows-x86_64.txt index aa0d0be89c18..339fd1bcd0b5 100644 --- a/ydb/library/actors/interconnect/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/interconnect/CMakeLists.windows-x86_64.txt @@ -37,6 +37,34 @@ target_link_libraries(library-actors-interconnect PUBLIC library-cpp-packedtypes ) target_sources(library-actors-interconnect PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/channel_scheduler.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/event_filter.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/event_holder_pool.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/events_local.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_address.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_channel.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_common.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_handshake.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_mon.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_proxy_wrapper.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_tcp_proxy.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_tcp_server.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_tcp_session.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/load.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/logging.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/packet.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp_unit.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/poller_tcp_unit_select.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/profiler.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/slowpoke_actor.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/types.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/watchdog_timer.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_address.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_channel.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/interconnect_counters.cpp diff --git a/ydb/library/actors/interconnect/event_holder_pool.h b/ydb/library/actors/interconnect/event_holder_pool.h index 0afa1d7a7ce9..d95a14402f42 100644 --- a/ydb/library/actors/interconnect/event_holder_pool.h +++ b/ydb/library/actors/interconnect/event_holder_pool.h @@ -12,7 +12,7 @@ namespace NActors { TStackVec<THolder<IEventBase>, MaxEvents> Events; TStackVec<THolder<TEventSerializedData>, MaxEvents> Buffers; std::shared_ptr<std::atomic<TAtomicBase>> Counter; - ui64 NumBytes = 0; + ui64 NumBytes = sizeof(TEvFreeItems); ~TEvFreeItems() { if (Counter) { @@ -76,6 +76,7 @@ namespace NActors { auto p = GetPendingEvent(); p->NumBytes += event->EventSerializedSize; auto& events = p->Events; + p->NumBytes += sizeof(*ev); events.push_back(std::move(ev)); trim = trim || events.size() >= TEvFreeItems::MaxEvents || p->NumBytes >= MaxBytesPerMessage; } @@ -85,7 +86,9 @@ namespace NActors { auto p = GetPendingEvent(); p->NumBytes += event->EventSerializedSize; auto& buffers = p->Buffers; - buffers.emplace_back(event->Buffer.Release()); + auto&& bufferReleased = event->Buffer.Release(); + p->NumBytes += sizeof(*bufferReleased); + buffers.emplace_back(std::move(bufferReleased)); trim = trim || buffers.size() >= TEvFreeItems::MaxEvents || p->NumBytes >= MaxBytesPerMessage; } @@ -93,11 +96,14 @@ namespace NActors { event->Clear(); Cache.splice(Cache.end(), queue, event); if (Cache.size() >= FreeQueueTrimThreshold) { - auto& freeQueue = GetPendingEvent()->FreeQueue; + auto p = GetPendingEvent(); + auto& freeQueue = p->FreeQueue; auto it = Cache.begin(); - std::advance(it, Cache.size() - MaxFreeQueueItems); + size_t addSize = Cache.size() - MaxFreeQueueItems; + std::advance(it, addSize); freeQueue.splice(freeQueue.end(), Cache, Cache.begin(), it); - trim = true; + p->NumBytes += (sizeof(TEventHolder) + 5 * sizeof(void*)) * addSize; + trim = trim || p->NumBytes >= MaxBytesPerMessage; } // release items if we have hit the limit diff --git a/ydb/library/actors/interconnect/interconnect_common.h b/ydb/library/actors/interconnect/interconnect_common.h index e1bd0c6844b9..fc23f70b5315 100644 --- a/ydb/library/actors/interconnect/interconnect_common.h +++ b/ydb/library/actors/interconnect/interconnect_common.h @@ -51,6 +51,9 @@ namespace NActors { bool EnableExternalDataChannel = false; bool ValidateIncomingPeerViaDirectLookup = false; ui32 SocketBacklogSize = 0; // SOMAXCONN if zero + TDuration FirstErrorSleep = TDuration::MilliSeconds(10); + TDuration MaxErrorSleep = TDuration::Seconds(1); + double ErrorSleepRetryMultiplier = 4.0; ui32 GetSendBufferSize() const { ui32 res = 512 * 1024; // 512 kb is the default value for send buffer @@ -71,8 +74,10 @@ namespace NActors { bool Orange; bool Red; i64 ClockSkew; + bool ReportClockSkew; - TWhiteboardSessionStatus(TActorSystem* actorSystem, ui32 peerId, const TString& peer, bool connected, bool green, bool yellow, bool orange, bool red, i64 clockSkew) + TWhiteboardSessionStatus(TActorSystem* actorSystem, ui32 peerId, const TString& peer, bool connected, + bool green, bool yellow, bool orange, bool red, i64 clockSkew, bool reportClockSkew) : ActorSystem(actorSystem) , PeerId(peerId) , Peer(peer) @@ -82,6 +87,7 @@ namespace NActors { , Orange(orange) , Red(red) , ClockSkew(clockSkew) + , ReportClockSkew(reportClockSkew) {} }; diff --git a/ydb/library/actors/interconnect/interconnect_tcp_proxy.cpp b/ydb/library/actors/interconnect/interconnect_tcp_proxy.cpp index 2feab2b2874f..10cdbc128553 100644 --- a/ydb/library/actors/interconnect/interconnect_tcp_proxy.cpp +++ b/ydb/library/actors/interconnect/interconnect_tcp_proxy.cpp @@ -9,10 +9,6 @@ namespace NActors { static constexpr TDuration GetNodeRequestTimeout = TDuration::Seconds(5); - static constexpr TDuration FirstErrorSleep = TDuration::MilliSeconds(10); - static constexpr TDuration MaxErrorSleep = TDuration::Seconds(10); - static constexpr ui32 SleepRetryMultiplier = 4; - static TString PeerNameForHuman(ui32 nodeNum, const TString& longName, ui16 port) { TStringBuf token; TStringBuf(longName).NextTok('.', token); @@ -758,9 +754,10 @@ namespace NActors { // recalculate wakeup timeout -- if this is the first failure, then we sleep for default timeout; otherwise we // sleep N times longer than the previous try, but not longer than desired number of seconds + auto& s = Common->Settings; HoldByErrorWakeupDuration = HoldByErrorWakeupDuration != TDuration::Zero() - ? Min(HoldByErrorWakeupDuration * SleepRetryMultiplier, MaxErrorSleep) - : FirstErrorSleep; + ? Min(HoldByErrorWakeupDuration * s.ErrorSleepRetryMultiplier, s.MaxErrorSleep) + : Common->Settings.FirstErrorSleep; // transit to required state and arm wakeup timer if (Terminated) { diff --git a/ydb/library/actors/interconnect/interconnect_tcp_session.cpp b/ydb/library/actors/interconnect/interconnect_tcp_session.cpp index e1f2bc735130..a5ecb2052137 100644 --- a/ydb/library/actors/interconnect/interconnect_tcp_session.cpp +++ b/ydb/library/actors/interconnect/interconnect_tcp_session.cpp @@ -999,6 +999,10 @@ namespace NActors { } while (false); } + // we need track clockskew only if it's one tenant nodes connection + // they have one scope in this case + bool reportClockSkew = Proxy->Common->LocalScopeId.first != 0 && Proxy->Common->LocalScopeId == Params.PeerScopeId; + callback({TlsActivationContext->ExecutorThread.ActorSystem, Proxy->PeerNodeId, Proxy->Metrics->GetHumanFriendlyPeerHostName(), @@ -1007,7 +1011,8 @@ namespace NActors { flagState == EFlag::YELLOW, flagState == EFlag::ORANGE, flagState == EFlag::RED, - ReceiveContext->ClockSkew_us.load()}); + ReceiveContext->ClockSkew_us.load(), + reportClockSkew}); } if (connected) { diff --git a/ydb/library/actors/interconnect/mock/CMakeLists.darwin-arm64.txt b/ydb/library/actors/interconnect/mock/CMakeLists.darwin-arm64.txt index 9f23da53a954..7f29976d3b1a 100644 --- a/ydb/library/actors/interconnect/mock/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/interconnect/mock/CMakeLists.darwin-arm64.txt @@ -14,5 +14,6 @@ target_link_libraries(actors-interconnect-mock PUBLIC library-actors-interconnect ) target_sources(actors-interconnect-mock PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/mock/ic_mock.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/mock/ic_mock.cpp ) diff --git a/ydb/library/actors/interconnect/mock/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/interconnect/mock/CMakeLists.darwin-x86_64.txt index 9f23da53a954..7f29976d3b1a 100644 --- a/ydb/library/actors/interconnect/mock/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/interconnect/mock/CMakeLists.darwin-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(actors-interconnect-mock PUBLIC library-actors-interconnect ) target_sources(actors-interconnect-mock PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/mock/ic_mock.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/mock/ic_mock.cpp ) diff --git a/ydb/library/actors/interconnect/mock/CMakeLists.linux-aarch64.txt b/ydb/library/actors/interconnect/mock/CMakeLists.linux-aarch64.txt index cc540810a79e..c9c6c31ae3d2 100644 --- a/ydb/library/actors/interconnect/mock/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/interconnect/mock/CMakeLists.linux-aarch64.txt @@ -15,5 +15,6 @@ target_link_libraries(actors-interconnect-mock PUBLIC library-actors-interconnect ) target_sources(actors-interconnect-mock PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/mock/ic_mock.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/mock/ic_mock.cpp ) diff --git a/ydb/library/actors/interconnect/mock/CMakeLists.linux-x86_64.txt b/ydb/library/actors/interconnect/mock/CMakeLists.linux-x86_64.txt index cc540810a79e..c9c6c31ae3d2 100644 --- a/ydb/library/actors/interconnect/mock/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/interconnect/mock/CMakeLists.linux-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(actors-interconnect-mock PUBLIC library-actors-interconnect ) target_sources(actors-interconnect-mock PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/mock/ic_mock.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/mock/ic_mock.cpp ) diff --git a/ydb/library/actors/interconnect/mock/CMakeLists.windows-x86_64.txt b/ydb/library/actors/interconnect/mock/CMakeLists.windows-x86_64.txt index 9f23da53a954..7f29976d3b1a 100644 --- a/ydb/library/actors/interconnect/mock/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/interconnect/mock/CMakeLists.windows-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(actors-interconnect-mock PUBLIC library-actors-interconnect ) target_sources(actors-interconnect-mock PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/mock/ic_mock.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/mock/ic_mock.cpp ) diff --git a/ydb/library/actors/interconnect/ut/CMakeLists.darwin-arm64.txt b/ydb/library/actors/interconnect/ut/CMakeLists.darwin-arm64.txt index b8d9f5448f2c..72524fbcc7b6 100644 --- a/ydb/library/actors/interconnect/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/interconnect/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-library-actors-interconnect-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-interconnect-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/channel_scheduler_ut.cpp @@ -64,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/interconnect/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/interconnect/ut/CMakeLists.darwin-x86_64.txt index 86b4d1f2cca7..1aa7f2e13171 100644 --- a/ydb/library/actors/interconnect/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/interconnect/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-library-actors-interconnect-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-interconnect-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/channel_scheduler_ut.cpp @@ -65,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/interconnect/ut/CMakeLists.linux-aarch64.txt b/ydb/library/actors/interconnect/ut/CMakeLists.linux-aarch64.txt index 279a83d646d1..a1913a79dc16 100644 --- a/ydb/library/actors/interconnect/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/interconnect/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-library-actors-interconnect-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-interconnect-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/channel_scheduler_ut.cpp @@ -68,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/interconnect/ut/CMakeLists.linux-x86_64.txt b/ydb/library/actors/interconnect/ut/CMakeLists.linux-x86_64.txt index 183c47e61bc5..72f1328ffa55 100644 --- a/ydb/library/actors/interconnect/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/interconnect/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-library-actors-interconnect-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-interconnect-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/channel_scheduler_ut.cpp @@ -69,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/interconnect/ut/CMakeLists.windows-x86_64.txt b/ydb/library/actors/interconnect/ut/CMakeLists.windows-x86_64.txt index a9e78893c496..fcaf598ff809 100644 --- a/ydb/library/actors/interconnect/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/interconnect/ut/CMakeLists.windows-x86_64.txt @@ -58,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/interconnect/ut/lib/CMakeLists.darwin-arm64.txt b/ydb/library/actors/interconnect/ut/lib/CMakeLists.darwin-arm64.txt index a6a86ac09baa..513a65b518a5 100644 --- a/ydb/library/actors/interconnect/ut/lib/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/interconnect/ut/lib/CMakeLists.darwin-arm64.txt @@ -12,3 +12,9 @@ target_link_libraries(interconnect-ut-lib INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(interconnect-ut-lib INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/node.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/test_events.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/test_actors.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/ic_test_cluster.h +) diff --git a/ydb/library/actors/interconnect/ut/lib/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/interconnect/ut/lib/CMakeLists.darwin-x86_64.txt index a6a86ac09baa..513a65b518a5 100644 --- a/ydb/library/actors/interconnect/ut/lib/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/interconnect/ut/lib/CMakeLists.darwin-x86_64.txt @@ -12,3 +12,9 @@ target_link_libraries(interconnect-ut-lib INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(interconnect-ut-lib INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/node.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/test_events.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/test_actors.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/ic_test_cluster.h +) diff --git a/ydb/library/actors/interconnect/ut/lib/CMakeLists.linux-aarch64.txt b/ydb/library/actors/interconnect/ut/lib/CMakeLists.linux-aarch64.txt index b20c3b0de902..bed00d033442 100644 --- a/ydb/library/actors/interconnect/ut/lib/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/interconnect/ut/lib/CMakeLists.linux-aarch64.txt @@ -13,3 +13,9 @@ target_link_libraries(interconnect-ut-lib INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(interconnect-ut-lib INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/node.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/test_events.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/test_actors.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/ic_test_cluster.h +) diff --git a/ydb/library/actors/interconnect/ut/lib/CMakeLists.linux-x86_64.txt b/ydb/library/actors/interconnect/ut/lib/CMakeLists.linux-x86_64.txt index b20c3b0de902..bed00d033442 100644 --- a/ydb/library/actors/interconnect/ut/lib/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/interconnect/ut/lib/CMakeLists.linux-x86_64.txt @@ -13,3 +13,9 @@ target_link_libraries(interconnect-ut-lib INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(interconnect-ut-lib INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/node.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/test_events.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/test_actors.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/ic_test_cluster.h +) diff --git a/ydb/library/actors/interconnect/ut/lib/CMakeLists.windows-x86_64.txt b/ydb/library/actors/interconnect/ut/lib/CMakeLists.windows-x86_64.txt index a6a86ac09baa..513a65b518a5 100644 --- a/ydb/library/actors/interconnect/ut/lib/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/interconnect/ut/lib/CMakeLists.windows-x86_64.txt @@ -12,3 +12,9 @@ target_link_libraries(interconnect-ut-lib INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(interconnect-ut-lib INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/node.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/test_events.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/test_actors.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/lib/ic_test_cluster.h +) diff --git a/ydb/library/actors/interconnect/ut/protos/CMakeLists.darwin-arm64.txt b/ydb/library/actors/interconnect/ut/protos/CMakeLists.darwin-arm64.txt index bf5d35cd2f9d..f9a0715be8e9 100644 --- a/ydb/library/actors/interconnect/ut/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/interconnect/ut/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(interconnect-ut-protos PUBLIC target_proto_messages(interconnect-ut-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/protos/interconnect_test.proto ) +target_sources(interconnect-ut-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/actors/interconnect/ut/protos/interconnect_test.pb.h +) target_proto_addincls(interconnect-ut-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/actors/interconnect/ut/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/interconnect/ut/protos/CMakeLists.darwin-x86_64.txt index bf5d35cd2f9d..f9a0715be8e9 100644 --- a/ydb/library/actors/interconnect/ut/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/interconnect/ut/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(interconnect-ut-protos PUBLIC target_proto_messages(interconnect-ut-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/protos/interconnect_test.proto ) +target_sources(interconnect-ut-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/actors/interconnect/ut/protos/interconnect_test.pb.h +) target_proto_addincls(interconnect-ut-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/actors/interconnect/ut/protos/CMakeLists.linux-aarch64.txt b/ydb/library/actors/interconnect/ut/protos/CMakeLists.linux-aarch64.txt index b78993ebda68..74079f59d134 100644 --- a/ydb/library/actors/interconnect/ut/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/interconnect/ut/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(interconnect-ut-protos PUBLIC target_proto_messages(interconnect-ut-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/protos/interconnect_test.proto ) +target_sources(interconnect-ut-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/actors/interconnect/ut/protos/interconnect_test.pb.h +) target_proto_addincls(interconnect-ut-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/actors/interconnect/ut/protos/CMakeLists.linux-x86_64.txt b/ydb/library/actors/interconnect/ut/protos/CMakeLists.linux-x86_64.txt index b78993ebda68..74079f59d134 100644 --- a/ydb/library/actors/interconnect/ut/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/interconnect/ut/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(interconnect-ut-protos PUBLIC target_proto_messages(interconnect-ut-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/protos/interconnect_test.proto ) +target_sources(interconnect-ut-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/actors/interconnect/ut/protos/interconnect_test.pb.h +) target_proto_addincls(interconnect-ut-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/actors/interconnect/ut/protos/CMakeLists.windows-x86_64.txt b/ydb/library/actors/interconnect/ut/protos/CMakeLists.windows-x86_64.txt index bf5d35cd2f9d..f9a0715be8e9 100644 --- a/ydb/library/actors/interconnect/ut/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/interconnect/ut/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(interconnect-ut-protos PUBLIC target_proto_messages(interconnect-ut-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut/protos/interconnect_test.proto ) +target_sources(interconnect-ut-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/actors/interconnect/ut/protos/interconnect_test.pb.h +) target_proto_addincls(interconnect-ut-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/actors/interconnect/ut_fat/CMakeLists.darwin-arm64.txt b/ydb/library/actors/interconnect/ut_fat/CMakeLists.darwin-arm64.txt index dc5e934b3d3b..f5110610e6a8 100644 --- a/ydb/library/actors/interconnect/ut_fat/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/interconnect/ut_fat/CMakeLists.darwin-arm64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-library-actors-interconnect-ut_fat PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-interconnect-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut_fat/main.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/interconnect/ut_fat/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/interconnect/ut_fat/CMakeLists.darwin-x86_64.txt index 7dada1153777..71a58fe712f8 100644 --- a/ydb/library/actors/interconnect/ut_fat/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/interconnect/ut_fat/CMakeLists.darwin-x86_64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-library-actors-interconnect-ut_fat PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-interconnect-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut_fat/main.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/interconnect/ut_fat/CMakeLists.linux-aarch64.txt b/ydb/library/actors/interconnect/ut_fat/CMakeLists.linux-aarch64.txt index 7551d04caf66..e42ecba465a5 100644 --- a/ydb/library/actors/interconnect/ut_fat/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/interconnect/ut_fat/CMakeLists.linux-aarch64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-library-actors-interconnect-ut_fat PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-interconnect-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut_fat/main.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/interconnect/ut_fat/CMakeLists.linux-x86_64.txt b/ydb/library/actors/interconnect/ut_fat/CMakeLists.linux-x86_64.txt index 22b569c1e797..6bd9ed409473 100644 --- a/ydb/library/actors/interconnect/ut_fat/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/interconnect/ut_fat/CMakeLists.linux-x86_64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-library-actors-interconnect-ut_fat PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-interconnect-ut_fat PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut_fat/main.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/interconnect/ut_fat/CMakeLists.windows-x86_64.txt b/ydb/library/actors/interconnect/ut_fat/CMakeLists.windows-x86_64.txt index bcd9e0154797..b6a5f91b93a8 100644 --- a/ydb/library/actors/interconnect/ut_fat/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/interconnect/ut_fat/CMakeLists.windows-x86_64.txt @@ -49,6 +49,7 @@ set_yunittest_property( PROPERTY LABELS LARGE + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-arm64.txt b/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-arm64.txt index 728322815b01..f3b64dce0f2b 100644 --- a/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-arm64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-library-actors-interconnect-ut_huge_cluster PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-interconnect-ut_huge_cluster PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut_huge_cluster/huge_cluster.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-x86_64.txt index 82afb6345b83..1d3589011412 100644 --- a/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.darwin-x86_64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-library-actors-interconnect-ut_huge_cluster PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-interconnect-ut_huge_cluster PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut_huge_cluster/huge_cluster.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.linux-aarch64.txt b/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.linux-aarch64.txt index 0e692cf15352..15b63a3ecd60 100644 --- a/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-library-actors-interconnect-ut_huge_cluster PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-interconnect-ut_huge_cluster PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut_huge_cluster/huge_cluster.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.linux-x86_64.txt b/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.linux-x86_64.txt index 2718ff5569ef..c8feef38e05c 100644 --- a/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-library-actors-interconnect-ut_huge_cluster PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-interconnect-ut_huge_cluster PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/interconnect/ut_huge_cluster/huge_cluster.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.windows-x86_64.txt b/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.windows-x86_64.txt index ac8a111e4ba4..9578a772a8bc 100644 --- a/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/interconnect/ut_huge_cluster/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/memory_log/CMakeLists.darwin-arm64.txt b/ydb/library/actors/memory_log/CMakeLists.darwin-arm64.txt index 8fec7339be8f..fb8d607542df 100644 --- a/ydb/library/actors/memory_log/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/memory_log/CMakeLists.darwin-arm64.txt @@ -16,6 +16,7 @@ target_link_libraries(library-actors-memory_log PUBLIC cpp-deprecated-atomic ) target_sources(library-actors-memory_log PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/memory_log/memlog.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/memory_log/memlog.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/memory_log/mmap.cpp ) diff --git a/ydb/library/actors/memory_log/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/memory_log/CMakeLists.darwin-x86_64.txt index 8fec7339be8f..fb8d607542df 100644 --- a/ydb/library/actors/memory_log/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/memory_log/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,7 @@ target_link_libraries(library-actors-memory_log PUBLIC cpp-deprecated-atomic ) target_sources(library-actors-memory_log PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/memory_log/memlog.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/memory_log/memlog.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/memory_log/mmap.cpp ) diff --git a/ydb/library/actors/memory_log/CMakeLists.linux-aarch64.txt b/ydb/library/actors/memory_log/CMakeLists.linux-aarch64.txt index ad4a71a59857..32ea1842e31d 100644 --- a/ydb/library/actors/memory_log/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/memory_log/CMakeLists.linux-aarch64.txt @@ -17,6 +17,7 @@ target_link_libraries(library-actors-memory_log PUBLIC cpp-deprecated-atomic ) target_sources(library-actors-memory_log PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/memory_log/memlog.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/memory_log/memlog.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/memory_log/mmap.cpp ) diff --git a/ydb/library/actors/memory_log/CMakeLists.linux-x86_64.txt b/ydb/library/actors/memory_log/CMakeLists.linux-x86_64.txt index ad4a71a59857..32ea1842e31d 100644 --- a/ydb/library/actors/memory_log/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/memory_log/CMakeLists.linux-x86_64.txt @@ -17,6 +17,7 @@ target_link_libraries(library-actors-memory_log PUBLIC cpp-deprecated-atomic ) target_sources(library-actors-memory_log PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/memory_log/memlog.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/memory_log/memlog.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/memory_log/mmap.cpp ) diff --git a/ydb/library/actors/memory_log/CMakeLists.windows-x86_64.txt b/ydb/library/actors/memory_log/CMakeLists.windows-x86_64.txt index 8fec7339be8f..fb8d607542df 100644 --- a/ydb/library/actors/memory_log/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/memory_log/CMakeLists.windows-x86_64.txt @@ -16,6 +16,7 @@ target_link_libraries(library-actors-memory_log PUBLIC cpp-deprecated-atomic ) target_sources(library-actors-memory_log PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/memory_log/memlog.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/memory_log/memlog.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/memory_log/mmap.cpp ) diff --git a/ydb/library/actors/prof/tag.cpp b/ydb/library/actors/prof/tag.cpp index 45328fb5cbb5..df798f002b90 100644 --- a/ydb/library/actors/prof/tag.cpp +++ b/ydb/library/actors/prof/tag.cpp @@ -121,12 +121,16 @@ namespace NProfiling { TSetThreadAllocTag* SetThreadAllocTag = SetThreadAllocTagFn(); } -TMemoryProfileGuard::TMemoryProfileGuard(const TString& id) - : Id(id) +TMemoryProfileGuard::TMemoryProfileGuard(const TString& id, const bool enabled) + : Id(enabled ? id : "") { - NProfiling::TMemoryTagScope::Reset(TLocalProcessKeyState<NActors::TActorActivityTag>::GetInstance().Register(Id + "-Start")); + if (enabled) { + NProfiling::TMemoryTagScope::Reset(TLocalProcessKeyState<NActors::TActorActivityTag>::GetInstance().Register(Id + "-Start")); + } } TMemoryProfileGuard::~TMemoryProfileGuard() { - NProfiling::TMemoryTagScope::Reset(TLocalProcessKeyState<NActors::TActorActivityTag>::GetInstance().Register(Id + "-Finish")); + if (Id) { + NProfiling::TMemoryTagScope::Reset(TLocalProcessKeyState<NActors::TActorActivityTag>::GetInstance().Register(Id + "-Finish")); + } } diff --git a/ydb/library/actors/prof/tag.h b/ydb/library/actors/prof/tag.h index 1624d9d1e0f9..cde3544bc3c6 100644 --- a/ydb/library/actors/prof/tag.h +++ b/ydb/library/actors/prof/tag.h @@ -78,7 +78,7 @@ class TMemoryProfileGuard: TNonCopyable { private: const TString Id; public: - TMemoryProfileGuard(const TString& id); + TMemoryProfileGuard(const TString& id, const bool enabled = true); ~TMemoryProfileGuard(); }; diff --git a/ydb/library/actors/prof/ut/CMakeLists.darwin-arm64.txt b/ydb/library/actors/prof/ut/CMakeLists.darwin-arm64.txt index bbe8c2ad2ba4..49815acfe6cd 100644 --- a/ydb/library/actors/prof/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/prof/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-library-actors-prof-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-prof-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/prof/ut/tag_ut.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/prof/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/prof/ut/CMakeLists.darwin-x86_64.txt index d404ef6bce5f..5a71ac4f8374 100644 --- a/ydb/library/actors/prof/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/prof/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-actors-prof-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-prof-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/prof/ut/tag_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/prof/ut/CMakeLists.linux-aarch64.txt b/ydb/library/actors/prof/ut/CMakeLists.linux-aarch64.txt index d8a0e6e13dcb..69db6a23c712 100644 --- a/ydb/library/actors/prof/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/prof/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-actors-prof-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-prof-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/prof/ut/tag_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/prof/ut/CMakeLists.linux-x86_64.txt b/ydb/library/actors/prof/ut/CMakeLists.linux-x86_64.txt index cceb96b67207..6e04530ec141 100644 --- a/ydb/library/actors/prof/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/prof/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-actors-prof-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-prof-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/prof/ut/tag_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/prof/ut/CMakeLists.windows-x86_64.txt b/ydb/library/actors/prof/ut/CMakeLists.windows-x86_64.txt index bfb38a55a6cf..1049a1086fd8 100644 --- a/ydb/library/actors/prof/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/prof/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/protos/CMakeLists.darwin-arm64.txt b/ydb/library/actors/protos/CMakeLists.darwin-arm64.txt index aa9845bc7db4..434689053e4f 100644 --- a/ydb/library/actors/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/protos/CMakeLists.darwin-arm64.txt @@ -67,6 +67,12 @@ target_proto_messages(library-actors-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/protos/services_common.proto ${CMAKE_SOURCE_DIR}/ydb/library/actors/protos/unittests.proto ) +target_sources(library-actors-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/actors.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/interconnect.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/services_common.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/unittests.pb.h +) target_proto_addincls(library-actors-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/actors/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/protos/CMakeLists.darwin-x86_64.txt index aa9845bc7db4..434689053e4f 100644 --- a/ydb/library/actors/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/protos/CMakeLists.darwin-x86_64.txt @@ -67,6 +67,12 @@ target_proto_messages(library-actors-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/protos/services_common.proto ${CMAKE_SOURCE_DIR}/ydb/library/actors/protos/unittests.proto ) +target_sources(library-actors-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/actors.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/interconnect.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/services_common.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/unittests.pb.h +) target_proto_addincls(library-actors-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/actors/protos/CMakeLists.linux-aarch64.txt b/ydb/library/actors/protos/CMakeLists.linux-aarch64.txt index 8a9d740b0fc6..78e3c66d8ca9 100644 --- a/ydb/library/actors/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/protos/CMakeLists.linux-aarch64.txt @@ -68,6 +68,12 @@ target_proto_messages(library-actors-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/protos/services_common.proto ${CMAKE_SOURCE_DIR}/ydb/library/actors/protos/unittests.proto ) +target_sources(library-actors-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/actors.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/interconnect.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/services_common.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/unittests.pb.h +) target_proto_addincls(library-actors-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/actors/protos/CMakeLists.linux-x86_64.txt b/ydb/library/actors/protos/CMakeLists.linux-x86_64.txt index 8a9d740b0fc6..78e3c66d8ca9 100644 --- a/ydb/library/actors/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/protos/CMakeLists.linux-x86_64.txt @@ -68,6 +68,12 @@ target_proto_messages(library-actors-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/protos/services_common.proto ${CMAKE_SOURCE_DIR}/ydb/library/actors/protos/unittests.proto ) +target_sources(library-actors-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/actors.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/interconnect.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/services_common.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/unittests.pb.h +) target_proto_addincls(library-actors-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/actors/protos/CMakeLists.windows-x86_64.txt b/ydb/library/actors/protos/CMakeLists.windows-x86_64.txt index aa9845bc7db4..434689053e4f 100644 --- a/ydb/library/actors/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/protos/CMakeLists.windows-x86_64.txt @@ -67,6 +67,12 @@ target_proto_messages(library-actors-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/protos/services_common.proto ${CMAKE_SOURCE_DIR}/ydb/library/actors/protos/unittests.proto ) +target_sources(library-actors-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/actors.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/interconnect.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/services_common.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/actors/protos/unittests.pb.h +) target_proto_addincls(library-actors-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/actors/testlib/CMakeLists.darwin-arm64.txt b/ydb/library/actors/testlib/CMakeLists.darwin-arm64.txt index e65674383b67..c248dba8a864 100644 --- a/ydb/library/actors/testlib/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/testlib/CMakeLists.darwin-arm64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(common) add_subdirectory(ut) add_library(library-actors-testlib) @@ -15,6 +16,7 @@ target_link_libraries(library-actors-testlib PUBLIC library-actors-core actors-interconnect-mock library-actors-protos + actors-testlib-common library-cpp-random_provider library-cpp-time_provider ) diff --git a/ydb/library/actors/testlib/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/testlib/CMakeLists.darwin-x86_64.txt index e65674383b67..c248dba8a864 100644 --- a/ydb/library/actors/testlib/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/testlib/CMakeLists.darwin-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(common) add_subdirectory(ut) add_library(library-actors-testlib) @@ -15,6 +16,7 @@ target_link_libraries(library-actors-testlib PUBLIC library-actors-core actors-interconnect-mock library-actors-protos + actors-testlib-common library-cpp-random_provider library-cpp-time_provider ) diff --git a/ydb/library/actors/testlib/CMakeLists.linux-aarch64.txt b/ydb/library/actors/testlib/CMakeLists.linux-aarch64.txt index 143acbad0ee1..ff4779a584e1 100644 --- a/ydb/library/actors/testlib/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/testlib/CMakeLists.linux-aarch64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(common) add_subdirectory(ut) add_library(library-actors-testlib) @@ -16,6 +17,7 @@ target_link_libraries(library-actors-testlib PUBLIC library-actors-core actors-interconnect-mock library-actors-protos + actors-testlib-common library-cpp-random_provider library-cpp-time_provider ) diff --git a/ydb/library/actors/testlib/CMakeLists.linux-x86_64.txt b/ydb/library/actors/testlib/CMakeLists.linux-x86_64.txt index 143acbad0ee1..ff4779a584e1 100644 --- a/ydb/library/actors/testlib/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/testlib/CMakeLists.linux-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(common) add_subdirectory(ut) add_library(library-actors-testlib) @@ -16,6 +17,7 @@ target_link_libraries(library-actors-testlib PUBLIC library-actors-core actors-interconnect-mock library-actors-protos + actors-testlib-common library-cpp-random_provider library-cpp-time_provider ) diff --git a/ydb/library/actors/testlib/CMakeLists.windows-x86_64.txt b/ydb/library/actors/testlib/CMakeLists.windows-x86_64.txt index e65674383b67..c248dba8a864 100644 --- a/ydb/library/actors/testlib/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/testlib/CMakeLists.windows-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(common) add_subdirectory(ut) add_library(library-actors-testlib) @@ -15,6 +16,7 @@ target_link_libraries(library-actors-testlib PUBLIC library-actors-core actors-interconnect-mock library-actors-protos + actors-testlib-common library-cpp-random_provider library-cpp-time_provider ) diff --git a/ydb/library/actors/testlib/common/CMakeLists.darwin-arm64.txt b/ydb/library/actors/testlib/common/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..176d2283a844 --- /dev/null +++ b/ydb/library/actors/testlib/common/CMakeLists.darwin-arm64.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(actors-testlib-common) +target_link_libraries(actors-testlib-common PUBLIC + contrib-libs-cxxsupp + yutil + library-actors-core +) +target_sources(actors-testlib-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/testlib/common/events_scheduling.cpp +) diff --git a/ydb/library/actors/testlib/common/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/testlib/common/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..176d2283a844 --- /dev/null +++ b/ydb/library/actors/testlib/common/CMakeLists.darwin-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(actors-testlib-common) +target_link_libraries(actors-testlib-common PUBLIC + contrib-libs-cxxsupp + yutil + library-actors-core +) +target_sources(actors-testlib-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/testlib/common/events_scheduling.cpp +) diff --git a/ydb/library/actors/testlib/common/CMakeLists.linux-aarch64.txt b/ydb/library/actors/testlib/common/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..283b0b0775f1 --- /dev/null +++ b/ydb/library/actors/testlib/common/CMakeLists.linux-aarch64.txt @@ -0,0 +1,19 @@ + +# 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(actors-testlib-common) +target_link_libraries(actors-testlib-common PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-actors-core +) +target_sources(actors-testlib-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/testlib/common/events_scheduling.cpp +) diff --git a/ydb/library/actors/testlib/common/CMakeLists.linux-x86_64.txt b/ydb/library/actors/testlib/common/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..283b0b0775f1 --- /dev/null +++ b/ydb/library/actors/testlib/common/CMakeLists.linux-x86_64.txt @@ -0,0 +1,19 @@ + +# 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(actors-testlib-common) +target_link_libraries(actors-testlib-common PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-actors-core +) +target_sources(actors-testlib-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/testlib/common/events_scheduling.cpp +) diff --git a/ydb/library/actors/testlib/common/CMakeLists.txt b/ydb/library/actors/testlib/common/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/actors/testlib/common/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/actors/testlib/common/CMakeLists.windows-x86_64.txt b/ydb/library/actors/testlib/common/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..176d2283a844 --- /dev/null +++ b/ydb/library/actors/testlib/common/CMakeLists.windows-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(actors-testlib-common) +target_link_libraries(actors-testlib-common PUBLIC + contrib-libs-cxxsupp + yutil + library-actors-core +) +target_sources(actors-testlib-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/testlib/common/events_scheduling.cpp +) diff --git a/ydb/library/actors/testlib/test_runtime.cpp b/ydb/library/actors/testlib/test_runtime.cpp index 1d4794ee0fb2..7f3aa4099ed4 100644 --- a/ydb/library/actors/testlib/test_runtime.cpp +++ b/ydb/library/actors/testlib/test_runtime.cpp @@ -828,7 +828,7 @@ namespace NActors { return TMonotonic::MicroSeconds(CurrentTimestamp); } - void TTestActorRuntimeBase::UpdateCurrentTime(TInstant newTime) { + void TTestActorRuntimeBase::UpdateCurrentTime(TInstant newTime, bool rewind) { static int counter = 0; ++counter; if (VERBOSE) { @@ -836,7 +836,7 @@ namespace NActors { } TGuard<TMutex> guard(Mutex); Y_ABORT_UNLESS(!UseRealThreads); - if (newTime.MicroSeconds() > CurrentTimestamp) { + if (rewind || newTime.MicroSeconds() > CurrentTimestamp) { CurrentTimestamp = newTime.MicroSeconds(); for (auto& kv : Nodes) { AtomicStore(kv.second->ActorSystemTimestamp, CurrentTimestamp); @@ -1556,6 +1556,14 @@ namespace NActors { return FindActor(actorId, node); } + TStringBuf TTestActorRuntimeBase::FindActorName(const TActorId& actorId, ui32 nodeIndex) const { + auto actor = FindActor(actorId, nodeIndex); + if (!actor) { + return {}; + } + return TLocalProcessKeyState<TActorActivityTag>::GetInstance().GetNameByIndex(actor->GetActivityType()); + } + void TTestActorRuntimeBase::EnableScheduleForActor(const TActorId& actorId, bool allow) { TGuard<TMutex> guard(Mutex); if (allow) { @@ -1584,8 +1592,10 @@ namespace NActors { return node->DynamicCounters; } - void TTestActorRuntimeBase::SetupMonitoring() { + void TTestActorRuntimeBase::SetupMonitoring(ui16 monitoringPortOffset, bool monitoringTypeAsync) { NeedMonitoring = true; + MonitoringPortOffset = monitoringPortOffset; + MonitoringTypeAsync = monitoringTypeAsync; } void TTestActorRuntimeBase::SendInternal(TAutoPtr<IEventHandle> ev, ui32 nodeIndex, bool viaActorSystem) { diff --git a/ydb/library/actors/testlib/test_runtime.h b/ydb/library/actors/testlib/test_runtime.h index bc8343863087..8a6562e40d55 100644 --- a/ydb/library/actors/testlib/test_runtime.h +++ b/ydb/library/actors/testlib/test_runtime.h @@ -254,7 +254,13 @@ namespace NActors { TIntrusivePtr<IMonotonicTimeProvider> GetMonotonicTimeProvider(); TInstant GetCurrentTime() const; TMonotonic GetCurrentMonotonicTime() const; - void UpdateCurrentTime(TInstant newTime); + /** + * When `rewind` is true allows time to go backwards. This is unsafe, + * since both wallclock and monotonic times are currently linked and + * both go backwards, but it may be necessary for testing wallclock + * time oddities. + */ + void UpdateCurrentTime(TInstant newTime, bool rewind = false); void AdvanceCurrentTime(TDuration duration); void AddLocalService(const TActorId& actorId, TActorSetupCmd cmd, ui32 nodeIndex = 0); virtual void Initialize(); @@ -291,10 +297,11 @@ namespace NActors { TActorId GetInterconnectProxy(ui32 nodeIndexFrom, ui32 nodeIndexTo); void BlockOutputForActor(const TActorId& actorId); IActor* FindActor(const TActorId& actorId, ui32 nodeIndex = Max<ui32>()) const; + TStringBuf FindActorName(const TActorId& actorId, ui32 nodeIndex = Max<ui32>()) const; void EnableScheduleForActor(const TActorId& actorId, bool allow = true); bool IsScheduleForActorEnabled(const TActorId& actorId) const; TIntrusivePtr<NMonitoring::TDynamicCounters> GetDynamicCounters(ui32 nodeIndex = 0); - void SetupMonitoring(); + void SetupMonitoring(ui16 monitoringPortOffset = 0, bool monitoringTypeAsync = false); using TEventObserverCollection = std::list<std::function<void(TAutoPtr<IEventHandle>& event)>>; class TEventObserverHolder { @@ -320,7 +327,7 @@ namespace NActors { if (this != &other) { Remove(); - + List = std::move(other.List); Iter = std::move(other.Iter); @@ -654,6 +661,8 @@ namespace NActors { TIntrusivePtr<IRandomProvider> DispatcherRandomProvider; TAutoPtr<TLogBackend> LogBackend; bool NeedMonitoring; + ui16 MonitoringPortOffset = 0; + bool MonitoringTypeAsync = false; TIntrusivePtr<IRandomProvider> RandomProvider; TIntrusivePtr<ITimeProvider> TimeProvider; diff --git a/ydb/library/actors/testlib/ut/CMakeLists.darwin-arm64.txt b/ydb/library/actors/testlib/ut/CMakeLists.darwin-arm64.txt index 34c0be7c7009..4e9f57395949 100644 --- a/ydb/library/actors/testlib/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/testlib/ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-actors-testlib-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-testlib-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/testlib/decorator_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/testlib/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/testlib/ut/CMakeLists.darwin-x86_64.txt index d1e9a26dd522..b07448718603 100644 --- a/ydb/library/actors/testlib/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/testlib/ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-library-actors-testlib-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-testlib-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/testlib/decorator_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/testlib/ut/CMakeLists.linux-aarch64.txt b/ydb/library/actors/testlib/ut/CMakeLists.linux-aarch64.txt index 8e8d2153a94f..9b1f9cd40284 100644 --- a/ydb/library/actors/testlib/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/testlib/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-actors-testlib-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-testlib-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/testlib/decorator_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/testlib/ut/CMakeLists.linux-x86_64.txt b/ydb/library/actors/testlib/ut/CMakeLists.linux-x86_64.txt index 7360d63cef38..a17ea6eccf8e 100644 --- a/ydb/library/actors/testlib/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/testlib/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-library-actors-testlib-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-testlib-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/testlib/decorator_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/testlib/ut/CMakeLists.windows-x86_64.txt b/ydb/library/actors/testlib/ut/CMakeLists.windows-x86_64.txt index a156d09b75db..f8c231171f04 100644 --- a/ydb/library/actors/testlib/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/testlib/ut/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/util/CMakeLists.darwin-arm64.txt b/ydb/library/actors/util/CMakeLists.darwin-arm64.txt index 5e9051b08679..946e742765ab 100644 --- a/ydb/library/actors/util/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/util/CMakeLists.darwin-arm64.txt @@ -17,6 +17,32 @@ target_link_libraries(library-actors-util PUBLIC library-cpp-pop_count ) target_sources(library-actors-util PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/affinity.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/cpu_load_log.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/cpumask.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/datetime.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/funnel_queue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/futex.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/intrinsics.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/local_process_key.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/named_tuple.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/queue_chunk.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/queue_oneone_inplace.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_track.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/recentwnd.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/rope.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/rc_buf.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/shared_data.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/shared_data_rope_backend.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/should_continue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/thread.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/threadparkpad.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/thread_load_log.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/ticket_lock.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/timerfd.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/unordered_cache.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/affinity.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_track.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_tracker.cpp diff --git a/ydb/library/actors/util/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/util/CMakeLists.darwin-x86_64.txt index 5e9051b08679..946e742765ab 100644 --- a/ydb/library/actors/util/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/util/CMakeLists.darwin-x86_64.txt @@ -17,6 +17,32 @@ target_link_libraries(library-actors-util PUBLIC library-cpp-pop_count ) target_sources(library-actors-util PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/affinity.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/cpu_load_log.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/cpumask.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/datetime.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/funnel_queue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/futex.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/intrinsics.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/local_process_key.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/named_tuple.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/queue_chunk.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/queue_oneone_inplace.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_track.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/recentwnd.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/rope.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/rc_buf.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/shared_data.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/shared_data_rope_backend.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/should_continue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/thread.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/threadparkpad.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/thread_load_log.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/ticket_lock.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/timerfd.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/unordered_cache.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/affinity.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_track.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_tracker.cpp diff --git a/ydb/library/actors/util/CMakeLists.linux-aarch64.txt b/ydb/library/actors/util/CMakeLists.linux-aarch64.txt index ff623584ba7f..327786431f17 100644 --- a/ydb/library/actors/util/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/util/CMakeLists.linux-aarch64.txt @@ -18,6 +18,32 @@ target_link_libraries(library-actors-util PUBLIC library-cpp-pop_count ) target_sources(library-actors-util PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/affinity.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/cpu_load_log.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/cpumask.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/datetime.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/funnel_queue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/futex.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/intrinsics.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/local_process_key.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/named_tuple.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/queue_chunk.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/queue_oneone_inplace.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_track.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/recentwnd.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/rope.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/rc_buf.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/shared_data.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/shared_data_rope_backend.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/should_continue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/thread.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/threadparkpad.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/thread_load_log.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/ticket_lock.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/timerfd.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/unordered_cache.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/affinity.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_track.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_tracker.cpp diff --git a/ydb/library/actors/util/CMakeLists.linux-x86_64.txt b/ydb/library/actors/util/CMakeLists.linux-x86_64.txt index ff623584ba7f..327786431f17 100644 --- a/ydb/library/actors/util/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/util/CMakeLists.linux-x86_64.txt @@ -18,6 +18,32 @@ target_link_libraries(library-actors-util PUBLIC library-cpp-pop_count ) target_sources(library-actors-util PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/affinity.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/cpu_load_log.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/cpumask.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/datetime.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/funnel_queue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/futex.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/intrinsics.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/local_process_key.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/named_tuple.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/queue_chunk.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/queue_oneone_inplace.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_track.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/recentwnd.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/rope.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/rc_buf.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/shared_data.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/shared_data_rope_backend.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/should_continue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/thread.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/threadparkpad.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/thread_load_log.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/ticket_lock.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/timerfd.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/unordered_cache.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/affinity.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_track.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_tracker.cpp diff --git a/ydb/library/actors/util/CMakeLists.windows-x86_64.txt b/ydb/library/actors/util/CMakeLists.windows-x86_64.txt index 5e9051b08679..946e742765ab 100644 --- a/ydb/library/actors/util/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/util/CMakeLists.windows-x86_64.txt @@ -17,6 +17,32 @@ target_link_libraries(library-actors-util PUBLIC library-cpp-pop_count ) target_sources(library-actors-util PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/affinity.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/cpu_load_log.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/cpumask.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/datetime.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/funnel_queue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/futex.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/intrinsics.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/local_process_key.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/named_tuple.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/queue_chunk.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/queue_oneone_inplace.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_track.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_tracker.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/recentwnd.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/rope.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/rc_buf.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/shared_data.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/shared_data_rope_backend.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/should_continue.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/thread.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/threadparkpad.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/thread_load_log.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/ticket_lock.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/timerfd.h + ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/unordered_cache.h ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/affinity.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_track.cpp ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/memory_tracker.cpp diff --git a/ydb/library/actors/util/datetime.h b/ydb/library/actors/util/datetime.h index cbec5965d623..c3fdaeedf6d4 100644 --- a/ydb/library/actors/util/datetime.h +++ b/ydb/library/actors/util/datetime.h @@ -1,5 +1,7 @@ #pragma once +#include <algorithm> + #include <util/system/defaults.h> #include <util/system/hp_timer.h> #include <util/system/platform.h> diff --git a/ydb/library/actors/util/ut/CMakeLists.darwin-arm64.txt b/ydb/library/actors/util/ut/CMakeLists.darwin-arm64.txt index 77a22c8dc684..448e0e08d112 100644 --- a/ydb/library/actors/util/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/util/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-library-actors-util-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-util-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/cpu_load_log_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/util/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/util/ut/CMakeLists.darwin-x86_64.txt index 1e4d43ea8d4f..956340bda8e1 100644 --- a/ydb/library/actors/util/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/util/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-actors-util-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-actors-util-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/cpu_load_log_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/util/ut/CMakeLists.linux-aarch64.txt b/ydb/library/actors/util/ut/CMakeLists.linux-aarch64.txt index 6964e48984b5..2d43727f1e98 100644 --- a/ydb/library/actors/util/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/util/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-actors-util-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-util-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/cpu_load_log_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/util/ut/CMakeLists.linux-x86_64.txt b/ydb/library/actors/util/ut/CMakeLists.linux-x86_64.txt index a058eff70998..5214ed90e793 100644 --- a/ydb/library/actors/util/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/util/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-actors-util-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-actors-util-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/actors/util/cpu_load_log_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/util/ut/CMakeLists.windows-x86_64.txt b/ydb/library/actors/util/ut/CMakeLists.windows-x86_64.txt index b3c2fd07247c..ecfadbcd4cfc 100644 --- a/ydb/library/actors/util/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/util/ut/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/actors/wilson/CMakeLists.darwin-arm64.txt b/ydb/library/actors/wilson/CMakeLists.darwin-arm64.txt index 72967708de71..a8825f703ac6 100644 --- a/ydb/library/actors/wilson/CMakeLists.darwin-arm64.txt +++ b/ydb/library/actors/wilson/CMakeLists.darwin-arm64.txt @@ -7,11 +7,14 @@ add_subdirectory(protos) +add_subdirectory(test_util) +add_subdirectory(ut) add_library(library-actors-wilson) target_link_libraries(library-actors-wilson PUBLIC contrib-libs-cxxsupp yutil + contrib-libs-opentelemetry-proto library-actors-core library-actors-protos actors-wilson-protos diff --git a/ydb/library/actors/wilson/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/wilson/CMakeLists.darwin-x86_64.txt index 72967708de71..a8825f703ac6 100644 --- a/ydb/library/actors/wilson/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/actors/wilson/CMakeLists.darwin-x86_64.txt @@ -7,11 +7,14 @@ add_subdirectory(protos) +add_subdirectory(test_util) +add_subdirectory(ut) add_library(library-actors-wilson) target_link_libraries(library-actors-wilson PUBLIC contrib-libs-cxxsupp yutil + contrib-libs-opentelemetry-proto library-actors-core library-actors-protos actors-wilson-protos diff --git a/ydb/library/actors/wilson/CMakeLists.linux-aarch64.txt b/ydb/library/actors/wilson/CMakeLists.linux-aarch64.txt index 7fce57579d5f..042bb2774efd 100644 --- a/ydb/library/actors/wilson/CMakeLists.linux-aarch64.txt +++ b/ydb/library/actors/wilson/CMakeLists.linux-aarch64.txt @@ -7,12 +7,15 @@ add_subdirectory(protos) +add_subdirectory(test_util) +add_subdirectory(ut) add_library(library-actors-wilson) target_link_libraries(library-actors-wilson PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + contrib-libs-opentelemetry-proto library-actors-core library-actors-protos actors-wilson-protos diff --git a/ydb/library/actors/wilson/CMakeLists.linux-x86_64.txt b/ydb/library/actors/wilson/CMakeLists.linux-x86_64.txt index 7fce57579d5f..042bb2774efd 100644 --- a/ydb/library/actors/wilson/CMakeLists.linux-x86_64.txt +++ b/ydb/library/actors/wilson/CMakeLists.linux-x86_64.txt @@ -7,12 +7,15 @@ add_subdirectory(protos) +add_subdirectory(test_util) +add_subdirectory(ut) add_library(library-actors-wilson) target_link_libraries(library-actors-wilson PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + contrib-libs-opentelemetry-proto library-actors-core library-actors-protos actors-wilson-protos diff --git a/ydb/library/actors/wilson/CMakeLists.windows-x86_64.txt b/ydb/library/actors/wilson/CMakeLists.windows-x86_64.txt index 72967708de71..a8825f703ac6 100644 --- a/ydb/library/actors/wilson/CMakeLists.windows-x86_64.txt +++ b/ydb/library/actors/wilson/CMakeLists.windows-x86_64.txt @@ -7,11 +7,14 @@ add_subdirectory(protos) +add_subdirectory(test_util) +add_subdirectory(ut) add_library(library-actors-wilson) target_link_libraries(library-actors-wilson PUBLIC contrib-libs-cxxsupp yutil + contrib-libs-opentelemetry-proto library-actors-core library-actors-protos actors-wilson-protos diff --git a/ydb/library/actors/wilson/test_util/CMakeLists.darwin-arm64.txt b/ydb/library/actors/wilson/test_util/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..d5bf3f777e64 --- /dev/null +++ b/ydb/library/actors/wilson/test_util/CMakeLists.darwin-arm64.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(actors-wilson-test_util INTERFACE) +target_link_libraries(actors-wilson-test_util INTERFACE + contrib-libs-cxxsupp + yutil +) +target_sources(actors-wilson-test_util INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/wilson/test_util/fake_wilson_uploader.h +) diff --git a/ydb/library/actors/wilson/test_util/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/wilson/test_util/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..d5bf3f777e64 --- /dev/null +++ b/ydb/library/actors/wilson/test_util/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(actors-wilson-test_util INTERFACE) +target_link_libraries(actors-wilson-test_util INTERFACE + contrib-libs-cxxsupp + yutil +) +target_sources(actors-wilson-test_util INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/wilson/test_util/fake_wilson_uploader.h +) diff --git a/ydb/library/actors/wilson/test_util/CMakeLists.linux-aarch64.txt b/ydb/library/actors/wilson/test_util/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..f0c8c19c444f --- /dev/null +++ b/ydb/library/actors/wilson/test_util/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(actors-wilson-test_util INTERFACE) +target_link_libraries(actors-wilson-test_util INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) +target_sources(actors-wilson-test_util INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/wilson/test_util/fake_wilson_uploader.h +) diff --git a/ydb/library/actors/wilson/test_util/CMakeLists.linux-x86_64.txt b/ydb/library/actors/wilson/test_util/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..f0c8c19c444f --- /dev/null +++ b/ydb/library/actors/wilson/test_util/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(actors-wilson-test_util INTERFACE) +target_link_libraries(actors-wilson-test_util INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) +target_sources(actors-wilson-test_util INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/wilson/test_util/fake_wilson_uploader.h +) diff --git a/ydb/library/actors/wilson/test_util/CMakeLists.txt b/ydb/library/actors/wilson/test_util/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/actors/wilson/test_util/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/actors/wilson/test_util/CMakeLists.windows-x86_64.txt b/ydb/library/actors/wilson/test_util/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..d5bf3f777e64 --- /dev/null +++ b/ydb/library/actors/wilson/test_util/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(actors-wilson-test_util INTERFACE) +target_link_libraries(actors-wilson-test_util INTERFACE + contrib-libs-cxxsupp + yutil +) +target_sources(actors-wilson-test_util INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/wilson/test_util/fake_wilson_uploader.h +) diff --git a/ydb/library/actors/wilson/ut/CMakeLists.darwin-arm64.txt b/ydb/library/actors/wilson/ut/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..3750af83dcb1 --- /dev/null +++ b/ydb/library/actors/wilson/ut/CMakeLists.darwin-arm64.txt @@ -0,0 +1,65 @@ + +# 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-actors-wilson-ut) +target_include_directories(ydb-library-actors-wilson-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/wilson +) +target_link_libraries(ydb-library-actors-wilson-ut PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + library-actors-wilson +) +target_link_options(ydb-library-actors-wilson-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-actors-wilson-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/wilson/wilson_trace_ut.cpp +) +set_property( + TARGET + ydb-library-actors-wilson-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-actors-wilson-ut + TEST_TARGET + ydb-library-actors-wilson-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-actors-wilson-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-actors-wilson-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-library-actors-wilson-ut + system_allocator +) +vcs_info(ydb-library-actors-wilson-ut) diff --git a/ydb/library/actors/wilson/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/actors/wilson/ut/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..abb61f6f2f5a --- /dev/null +++ b/ydb/library/actors/wilson/ut/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-library-actors-wilson-ut) +target_include_directories(ydb-library-actors-wilson-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/wilson +) +target_link_libraries(ydb-library-actors-wilson-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + library-actors-wilson +) +target_link_options(ydb-library-actors-wilson-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-actors-wilson-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/wilson/wilson_trace_ut.cpp +) +set_property( + TARGET + ydb-library-actors-wilson-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-actors-wilson-ut + TEST_TARGET + ydb-library-actors-wilson-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-actors-wilson-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-actors-wilson-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-library-actors-wilson-ut + system_allocator +) +vcs_info(ydb-library-actors-wilson-ut) diff --git a/ydb/library/actors/wilson/ut/CMakeLists.linux-aarch64.txt b/ydb/library/actors/wilson/ut/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..bb1af84e8d03 --- /dev/null +++ b/ydb/library/actors/wilson/ut/CMakeLists.linux-aarch64.txt @@ -0,0 +1,68 @@ + +# 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-actors-wilson-ut) +target_include_directories(ydb-library-actors-wilson-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/wilson +) +target_link_libraries(ydb-library-actors-wilson-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + library-actors-wilson +) +target_link_options(ydb-library-actors-wilson-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-actors-wilson-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/wilson/wilson_trace_ut.cpp +) +set_property( + TARGET + ydb-library-actors-wilson-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-actors-wilson-ut + TEST_TARGET + ydb-library-actors-wilson-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-actors-wilson-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-actors-wilson-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-library-actors-wilson-ut + cpp-malloc-jemalloc +) +vcs_info(ydb-library-actors-wilson-ut) diff --git a/ydb/library/actors/wilson/ut/CMakeLists.linux-x86_64.txt b/ydb/library/actors/wilson/ut/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..b3803efed8c5 --- /dev/null +++ b/ydb/library/actors/wilson/ut/CMakeLists.linux-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-actors-wilson-ut) +target_include_directories(ydb-library-actors-wilson-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/wilson +) +target_link_libraries(ydb-library-actors-wilson-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + library-actors-wilson +) +target_link_options(ydb-library-actors-wilson-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-actors-wilson-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/wilson/wilson_trace_ut.cpp +) +set_property( + TARGET + ydb-library-actors-wilson-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-actors-wilson-ut + TEST_TARGET + ydb-library-actors-wilson-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-actors-wilson-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-actors-wilson-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-library-actors-wilson-ut + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-library-actors-wilson-ut) diff --git a/ydb/library/actors/wilson/ut/CMakeLists.txt b/ydb/library/actors/wilson/ut/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/actors/wilson/ut/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/actors/wilson/ut/CMakeLists.windows-x86_64.txt b/ydb/library/actors/wilson/ut/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..d4661ee3c0ff --- /dev/null +++ b/ydb/library/actors/wilson/ut/CMakeLists.windows-x86_64.txt @@ -0,0 +1,61 @@ + +# 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-actors-wilson-ut) +target_include_directories(ydb-library-actors-wilson-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/wilson +) +target_link_libraries(ydb-library-actors-wilson-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + library-actors-wilson +) +target_sources(ydb-library-actors-wilson-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/actors/wilson/wilson_trace_ut.cpp +) +set_property( + TARGET + ydb-library-actors-wilson-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-actors-wilson-ut + TEST_TARGET + ydb-library-actors-wilson-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-actors-wilson-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-actors-wilson-ut + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-library-actors-wilson-ut + system_allocator +) +vcs_info(ydb-library-actors-wilson-ut) diff --git a/ydb/library/actors/wilson/wilson_span.cpp b/ydb/library/actors/wilson/wilson_span.cpp index ac66ac2ef002..233397a9abf2 100644 --- a/ydb/library/actors/wilson/wilson_span.cpp +++ b/ydb/library/actors/wilson/wilson_span.cpp @@ -1,5 +1,6 @@ #include "wilson_span.h" #include "wilson_uploader.h" +#include <util/system/backtrace.h> #include <google/protobuf/text_format.h> namespace NWilson { @@ -62,6 +63,19 @@ namespace NWilson { Data->Sent = true; } + TSpan& TSpan::operator=(TSpan&& other) { + if (this != &other) { + if (Y_UNLIKELY(*this)) { + TStringStream err; + err << "TSpan instance incorrectly overwritten at:\n"; + FormatBackTrace(&err); + EndError(std::move(err.Str())); + } + Data = std::exchange(other.Data, nullptr); + } + return *this; + } + const TSpan TSpan::Empty; } // NWilson diff --git a/ydb/library/actors/wilson/wilson_span.h b/ydb/library/actors/wilson/wilson_span.h index d8bd9116c6f3..20170a896ea7 100644 --- a/ydb/library/actors/wilson/wilson_span.h +++ b/ydb/library/actors/wilson/wilson_span.h @@ -126,16 +126,7 @@ namespace NWilson { } TSpan& operator =(const TSpan&) = delete; - - TSpan& operator =(TSpan&& other) { - if (this != &other) { - if (Y_UNLIKELY(*this)) { - EndError("TSpan instance incorrectly overwritten"); - } - Data = std::exchange(other.Data, nullptr); - } - return *this; - } + TSpan& operator=(TSpan&& other); explicit operator bool() const { return Data && !Data->Sent && !Data->Ignored; diff --git a/ydb/library/actors/wilson/wilson_trace.cpp b/ydb/library/actors/wilson/wilson_trace.cpp index ec244856bc43..28bdb7efa801 100644 --- a/ydb/library/actors/wilson/wilson_trace.cpp +++ b/ydb/library/actors/wilson/wilson_trace.cpp @@ -4,7 +4,7 @@ #include <util/string/hex.h> namespace NWilson { - TTraceId TTraceId::FromTraceparentHeader(const TStringBuf header) { + TTraceId TTraceId::FromTraceparentHeader(const TStringBuf header, ui8 verbosity) { constexpr size_t versionChars = 2; // Only version 0 is supported constexpr size_t versionStart = 0; @@ -61,7 +61,7 @@ namespace NWilson { return {}; } - return TTraceId(traceId, spanId, 15, Max<ui32>()); + return TTraceId(traceId, spanId, verbosity, Max<ui32>()); } TString TTraceId::GetHexTraceId() const { diff --git a/ydb/library/actors/wilson/wilson_trace.h b/ydb/library/actors/wilson/wilson_trace.h index 0db42776f922..841a4b9e40be 100644 --- a/ydb/library/actors/wilson/wilson_trace.h +++ b/ydb/library/actors/wilson/wilson_trace.h @@ -181,7 +181,7 @@ namespace NWilson { return TTraceId(); } - static TTraceId FromTraceparentHeader(const TStringBuf header); + static TTraceId FromTraceparentHeader(const TStringBuf header, ui8 verbosity = 15); TTraceId Span(ui8 verbosity) const { Validate(); diff --git a/ydb/library/actors/wilson/wilson_uploader.cpp b/ydb/library/actors/wilson/wilson_uploader.cpp index 778c2b24f772..938f856e75dd 100644 --- a/ydb/library/actors/wilson/wilson_uploader.cpp +++ b/ydb/library/actors/wilson/wilson_uploader.cpp @@ -1,12 +1,16 @@ #include "wilson_uploader.h" + #include <ydb/library/actors/core/actor_bootstrapped.h> #include <ydb/library/actors/core/hfunc.h> #include <ydb/library/actors/core/log.h> #include <contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.pb.h> #include <contrib/libs/opentelemetry-proto/opentelemetry/proto/collector/trace/v1/trace_service.grpc.pb.h> +#include <library/cpp/string_utils/url/url.h> #include <util/stream/file.h> #include <util/string/hex.h> + #include <chrono> +#include <queue> namespace NWilson { @@ -17,14 +21,92 @@ namespace NWilson { namespace { + struct TSpan { + TMonotonic ExpirationTimestamp; + NTraceProto::Span Span; + size_t Size; + }; + + class TBatch { + private: + ui64 MaxSpansInBatch; + ui64 MaxBytesInBatch; + + NServiceProto::ExportTraceServiceRequest Request; + NTraceProto::ScopeSpans* ScopeSpans; + ui64 SizeBytes = 0; + TMonotonic ExpirationTimestamp = TMonotonic::Zero(); + + public: + struct TData { + NServiceProto::ExportTraceServiceRequest Request; + ui64 SizeBytes; + ui64 SizeSpans; + TMonotonic ExpirationTimestamp; + }; + + TBatch(ui64 maxSpansInBatch, ui64 maxBytesInBatch, TString serviceName) + : MaxSpansInBatch(maxSpansInBatch) + , MaxBytesInBatch(maxBytesInBatch) + { + auto *rspan = Request.add_resource_spans(); + auto *serviceNameAttr = rspan->mutable_resource()->add_attributes(); + serviceNameAttr->set_key("service.name"); + serviceNameAttr->mutable_value()->set_string_value(std::move(serviceName)); + ScopeSpans = rspan->add_scope_spans(); + } + + size_t SizeSpans() const { + return ScopeSpans->spansSize(); + } + + bool IsEmpty() const { + return SizeSpans() == 0; + } + + bool Add(TSpan& span) { + if (SizeBytes + span.Size > MaxBytesInBatch || SizeSpans() == MaxSpansInBatch) { + return false; + } + SizeBytes += span.Size; + span.Span.Swap(ScopeSpans->add_spans()); + ExpirationTimestamp = span.ExpirationTimestamp; + return true; + } + + TData Complete() && { + return TData { + .Request = std::move(Request), + .SizeBytes = SizeBytes, + .SizeSpans = SizeSpans(), + .ExpirationTimestamp = ExpirationTimestamp, + }; + } + }; + + struct TExportRequestData : TIntrusiveListItem<TExportRequestData> { + std::unique_ptr<grpc::ClientContext> Context; + std::unique_ptr<grpc::ClientAsyncResponseReader<NServiceProto::ExportTraceServiceResponse>> Reader; + grpc::Status Status; + NServiceProto::ExportTraceServiceResponse Response; + }; + class TWilsonUploader : public TActorBootstrapped<TWilsonUploader> { static constexpr size_t WILSON_SERVICE_ID = 430; - TString Host; - ui16 Port; - TString RootCA; + ui64 MaxPendingSpanBytes = 100'000'000; + ui64 MaxSpansPerSecond; + ui64 MaxSpansInBatch; + ui64 MaxBytesInBatch; + TDuration MaxBatchAccumulation = TDuration::Seconds(1); + TDuration MaxSpanTimeInQueue; + ui64 MaxExportInflight; + + bool WakeupScheduled = false; + + TString CollectorUrl; TString ServiceName; std::shared_ptr<grpc::Channel> Channel; @@ -32,33 +114,30 @@ namespace NWilson { grpc::CompletionQueue CQ; std::unique_ptr<IGrpcSigner> GrpcSigner; - std::unique_ptr<grpc::ClientContext> Context; - std::unique_ptr<grpc::ClientAsyncResponseReader<NServiceProto::ExportTraceServiceResponse>> Reader; - NServiceProto::ExportTraceServiceResponse Response; - grpc::Status Status; - - struct TSpanQueueItem { - TMonotonic ExpirationTimestamp; - NTraceProto::Span Span; - ui32 Size; - }; - std::deque<TSpanQueueItem> Spans; - ui64 SpansSize = 0; + TBatch CurrentBatch; + std::queue<TBatch::TData> BatchQueue; + ui64 SpansSizeBytes = 0; TMonotonic NextSendTimestamp; - ui32 MaxSpansAtOnce = 25; - ui32 MaxSpansPerSecond = 10; - TDuration MaxSpanTimeInQueue = TDuration::Seconds(60); - bool WakeupScheduled = false; + bool BatchCompletionScheduled = false; + TMonotonic NextBatchCompletion; + + TIntrusiveListWithAutoDelete<TExportRequestData, TDelete> ExportRequests; + size_t ExportRequestsCount = 0; public: - TWilsonUploader(WilsonUploaderParams params) - : Host(std::move(params.Host)) - , Port(std::move(params.Port)) - , RootCA(std::move(params.RootCA)) + TWilsonUploader(TWilsonUploaderParams params) + : MaxSpansPerSecond(params.MaxExportedSpansPerSecond) + , MaxSpansInBatch(params.MaxSpansInBatch) + , MaxBytesInBatch(params.MaxBytesInBatch) + , MaxBatchAccumulation(TDuration::MilliSeconds(params.MaxBatchAccumulationMilliseconds)) + , MaxSpanTimeInQueue(TDuration::Seconds(params.SpanExportTimeoutSeconds)) + , MaxExportInflight(params.MaxExportRequestsInflight) + , CollectorUrl(std::move(params.CollectorUrl)) , ServiceName(std::move(params.ServiceName)) , GrpcSigner(std::move(params.GrpcSigner)) + , CurrentBatch(MaxSpansInBatch, MaxBytesInBatch, ServiceName) {} ~TWilsonUploader() { @@ -68,139 +147,227 @@ namespace NWilson { static constexpr char ActorName[] = "WILSON_UPLOADER_ACTOR"; void Bootstrap() { - Become(&TThis::StateFunc); + Become(&TThis::StateWork); + + if (MaxSpansPerSecond == 0) { + ALOG_WARN(WILSON_SERVICE_ID, "max_spans_per_second should be greater than 0, changing to 1"); + MaxSpansPerSecond = 1; + } + if (MaxSpansInBatch == 0) { + ALOG_WARN(WILSON_SERVICE_ID, "max_spans_in_batch shold be greater than 0, changing to 1"); + MaxSpansInBatch = 1; + } + if (MaxExportInflight == 0) { + ALOG_WARN(WILSON_SERVICE_ID, "max_span_export_inflight should be greater than 0, changing to 1"); + MaxExportInflight = 1; + } - Channel = grpc::CreateChannel(TStringBuilder() << Host << ":" << Port, RootCA ? grpc::SslCredentials({ - .pem_root_certs = TFileInput(RootCA).ReadAll(), - }) : grpc::InsecureChannelCredentials()); + TStringBuf scheme; + TStringBuf host; + ui16 port; + if (!TryGetSchemeHostAndPort(CollectorUrl, scheme, host, port)) { + ALOG_ERROR(WILSON_SERVICE_ID, "Failed to parse collector url (" << CollectorUrl << " was provided). Wilson wouldn't work"); + Become(&TThis::StateBroken); + return; + } else if (scheme != "grpc://" && scheme != "grpcs://") { + ALOG_ERROR(WILSON_SERVICE_ID, "Wrong scheme provided: " << scheme << " (only grpc:// and grpcs:// are supported). Wilson wouldn't work"); + Become(&TThis::StateBroken); + return; + } + Channel = grpc::CreateChannel(TStringBuilder() << host << ":" << port, + scheme == "grpcs://" ? grpc::SslCredentials({}) : grpc::InsecureChannelCredentials()); Stub = NServiceProto::TraceService::NewStub(Channel); - LOG_INFO_S(*TlsActivationContext, WILSON_SERVICE_ID, "TWilsonUploader::Bootstrap"); + ALOG_INFO(WILSON_SERVICE_ID, "TWilsonUploader::Bootstrap"); } void Handle(TEvWilson::TPtr ev) { - if (SpansSize >= 100'000'000) { - LOG_ERROR_S(*TlsActivationContext, WILSON_SERVICE_ID, "dropped span due to overflow"); + if (SpansSizeBytes >= MaxPendingSpanBytes) { + ALOG_ERROR(WILSON_SERVICE_ID, "dropped span due to overflow"); } else { - const TMonotonic expirationTimestamp = TActivationContext::Monotonic() + MaxSpanTimeInQueue; + const TMonotonic now = TActivationContext::Monotonic(); + const TMonotonic expirationTimestamp = now + MaxSpanTimeInQueue; auto& span = ev->Get()->Span; const ui32 size = span.ByteSizeLong(); - Spans.push_back(TSpanQueueItem{expirationTimestamp, std::move(span), size}); - SpansSize += size; + if (size > MaxBytesInBatch) { + ALOG_ERROR(WILSON_SERVICE_ID, "dropped span of size " << size << ", which exceeds max batch size " << MaxBytesInBatch); + return; + } + TSpan spanItem { + .ExpirationTimestamp = expirationTimestamp, + .Span = std::move(span), + .Size = size, + }; + SpansSizeBytes += size; + if (CurrentBatch.IsEmpty()) { + ScheduleBatchCompletion(now); + } + if (CurrentBatch.Add(spanItem)) { + return; + } + CompleteCurrentBatch(); TryMakeProgress(); + Y_ABORT_UNLESS(CurrentBatch.Add(spanItem), "failed to add span to empty batch"); + ScheduleBatchCompletion(now); + } + } + + void ScheduleBatchCompletionEvent() { + Y_ABORT_UNLESS(!BatchCompletionScheduled); + auto cookie = NextBatchCompletion.GetValue(); + TActivationContext::Schedule(NextBatchCompletion, new IEventHandle(TEvents::TSystem::Wakeup, 0, SelfId(), {}, nullptr, cookie)); + ALOG_TRACE(WILSON_SERVICE_ID, "scheduling batch completion w/ cookie=" << cookie); + BatchCompletionScheduled = true; + } + + void ScheduleBatchCompletion(TMonotonic now) { + NextBatchCompletion = now + MaxBatchAccumulation; + if (!BatchCompletionScheduled) { + ScheduleBatchCompletionEvent(); + } + } + + void CompleteCurrentBatch() { + if (CurrentBatch.IsEmpty()) { + return; } + BatchQueue.push(std::move(CurrentBatch).Complete()); + CurrentBatch = TBatch(MaxSpansInBatch, MaxBytesInBatch, ServiceName); } void TryToSend() { const TMonotonic now = TActivationContext::Monotonic(); ui32 numSpansDropped = 0; - while (!Spans.empty()) { - const TSpanQueueItem& item = Spans.front(); + while (!BatchQueue.empty()) { + const TBatch::TData& item = BatchQueue.front(); if (item.ExpirationTimestamp <= now) { - SpansSize -= item.Size; - Spans.pop_front(); - ++numSpansDropped; + SpansSizeBytes -= item.SizeBytes; + numSpansDropped += item.SizeSpans; + BatchQueue.pop(); } else { break; } } if (numSpansDropped) { - LOG_ERROR_S(*TlsActivationContext, WILSON_SERVICE_ID, + ALOG_ERROR(WILSON_SERVICE_ID, "dropped " << numSpansDropped << " span(s) due to expiration"); } - if (Context || Spans.empty()) { + if (ExportRequestsCount >= MaxExportInflight || BatchQueue.empty()) { return; } else if (now < NextSendTimestamp) { ScheduleWakeup(NextSendTimestamp); return; } - NServiceProto::ExportTraceServiceRequest request; - auto *rspan = request.add_resource_spans(); - auto *serviceNameAttr = rspan->mutable_resource()->add_attributes(); - serviceNameAttr->set_key("service.name"); - serviceNameAttr->mutable_value()->set_string_value(ServiceName); - auto *sspan = rspan->add_scope_spans(); - - NextSendTimestamp = now; - for (ui32 i = 0; i < MaxSpansAtOnce && !Spans.empty(); ++i, Spans.pop_front()) { - auto& item = Spans.front(); - auto& s = item.Span; - - LOG_DEBUG_S(*TlsActivationContext, WILSON_SERVICE_ID, "exporting span" - << " TraceId# " << HexEncode(s.trace_id()) - << " SpanId# " << HexEncode(s.span_id()) - << " ParentSpanId# " << HexEncode(s.parent_span_id()) - << " Name# " << s.name()); - - SpansSize -= item.Size; - s.Swap(sspan->add_spans()); - NextSendTimestamp += TDuration::MicroSeconds(1'000'000 / MaxSpansPerSecond); + TBatch::TData batch = std::move(BatchQueue.front()); + BatchQueue.pop(); + + ALOG_DEBUG(WILSON_SERVICE_ID, "exporting batch of " << batch.SizeSpans << " spans, total spans size: " << batch.SizeBytes); + Y_ABORT_UNLESS(batch.Request.resource_spansSize() == 1 && batch.Request.resource_spans(0).scope_spansSize() == 1); + for (const auto& span : batch.Request.resource_spans(0).scope_spans(0).spans()) { + ALOG_DEBUG(WILSON_SERVICE_ID, "exporting span" + << " TraceId# " << HexEncode(span.trace_id()) + << " SpanId# " << HexEncode(span.span_id()) + << " ParentSpanId# " << HexEncode(span.parent_span_id()) + << " Name# " << span.name()); } + NextSendTimestamp = now + TDuration::MicroSeconds((batch.SizeSpans * 1'000'000) / MaxSpansPerSecond); + SpansSizeBytes -= batch.SizeBytes; + ScheduleWakeup(NextSendTimestamp); - Context = std::make_unique<grpc::ClientContext>(); + + auto context = std::make_unique<grpc::ClientContext>(); if (GrpcSigner) { - GrpcSigner->SignClientContext(*Context); + GrpcSigner->SignClientContext(*context); } - Reader = Stub->AsyncExport(Context.get(), std::move(request), &CQ); - Reader->Finish(&Response, &Status, nullptr); + auto reader = Stub->AsyncExport(context.get(), std::move(batch.Request), &CQ); + auto uploadData = std::unique_ptr<TExportRequestData>(new TExportRequestData { + .Context = std::move(context), + .Reader = std::move(reader), + }); + uploadData->Reader->Finish(&uploadData->Response, &uploadData->Status, uploadData.get()); + ALOG_TRACE(WILSON_SERVICE_ID, "started export request " << (void*)uploadData.get()); + ExportRequests.PushBack(uploadData.release()); + ++ExportRequestsCount; } - void CheckIfDone() { - if (Context) { - void *tag; - bool ok; - if (CQ.AsyncNext(&tag, &ok, std::chrono::system_clock::now()) == grpc::CompletionQueue::GOT_EVENT) { - if (!Status.ok()) { - LOG_ERROR_S(*TlsActivationContext, WILSON_SERVICE_ID, - "failed to commit traces: " << Status.error_message()); - } - - Reader.reset(); - Context.reset(); - } else { - ScheduleWakeup(TDuration::MilliSeconds(100)); + void ReapCompletedRequests() { + if (ExportRequests.Empty()) { + return; + } + void* tag; + bool ok; + while (CQ.AsyncNext(&tag, &ok, std::chrono::system_clock::now()) == grpc::CompletionQueue::GOT_EVENT) { + auto node = std::unique_ptr<TExportRequestData>(static_cast<TExportRequestData*>(tag)); + ALOG_TRACE(WILSON_SERVICE_ID, "finished export request " << (void*)node.get()); + if (!node->Status.ok()) { + ALOG_ERROR(WILSON_SERVICE_ID, + "failed to commit traces: " << node->Status.error_message()); } + + --ExportRequestsCount; + node->Unlink(); + } + + if (!ExportRequests.Empty()) { + ScheduleWakeup(TDuration::MilliSeconds(100)); } } template<typename T> void ScheduleWakeup(T&& deadline) { if (!WakeupScheduled) { - TActivationContext::Schedule(deadline, new IEventHandle(TEvents::TSystem::Wakeup, 0, SelfId(), {}, - nullptr, 0)); + TActivationContext::Schedule(deadline, + new IEventHandle(TEvents::TSystem::Wakeup, 0, + SelfId(), {}, nullptr, 0)); WakeupScheduled = true; } } - void HandleWakeup() { - Y_ABORT_UNLESS(WakeupScheduled); - WakeupScheduled = false; + void HandleWakeup(TEvents::TEvWakeup::TPtr& ev) { + const auto cookie = ev->Cookie; + ALOG_TRACE(WILSON_SERVICE_ID, "wakeup received w/ cookie=" << cookie); + if (cookie == 0) { + Y_ABORT_UNLESS(WakeupScheduled); + WakeupScheduled = false; + } else { + Y_ABORT_UNLESS(BatchCompletionScheduled); + BatchCompletionScheduled = false; + if (cookie == NextBatchCompletion.GetValue()) { + CompleteCurrentBatch(); + } else { + ScheduleBatchCompletionEvent(); + } + } TryMakeProgress(); } void TryMakeProgress() { - CheckIfDone(); + ReapCompletedRequests(); TryToSend(); } - STRICT_STFUNC(StateFunc, + STRICT_STFUNC(StateWork, hFunc(TEvWilson, Handle); - cFunc(TEvents::TSystem::Wakeup, HandleWakeup); + hFunc(TEvents::TEvWakeup, HandleWakeup); + ); + + STRICT_STFUNC(StateBroken, + IgnoreFunc(TEvWilson); ); }; } // anonymous - IActor* CreateWilsonUploader(WilsonUploaderParams params) { + IActor* CreateWilsonUploader(TWilsonUploaderParams params) { return new TWilsonUploader(std::move(params)); } - IActor* WilsonUploaderParams::CreateUploader() && { + IActor* TWilsonUploaderParams::CreateUploader() && { return CreateWilsonUploader(std::move(*this)); } diff --git a/ydb/library/actors/wilson/wilson_uploader.h b/ydb/library/actors/wilson/wilson_uploader.h index f664292659eb..3ba1f6109d4b 100644 --- a/ydb/library/actors/wilson/wilson_uploader.h +++ b/ydb/library/actors/wilson/wilson_uploader.h @@ -25,16 +25,21 @@ namespace NWilson { return NActors::TActorId(0, TStringBuf("WilsonUpload", 12)); } - struct WilsonUploaderParams { - TString Host; - ui16 Port; - TString RootCA; + struct TWilsonUploaderParams { + TString CollectorUrl; TString ServiceName; std::unique_ptr<IGrpcSigner> GrpcSigner; + ui64 MaxExportedSpansPerSecond = Max<ui64>(); + ui64 MaxSpansInBatch = 150; + ui64 MaxBytesInBatch = 20'000'000; + ui64 MaxBatchAccumulationMilliseconds = 1'000; + ui32 SpanExportTimeoutSeconds = 60 * 60 * 24 * 365; + ui64 MaxExportRequestsInflight = 1; + NActors::IActor* CreateUploader() &&; }; - NActors::IActor* CreateWilsonUploader(WilsonUploaderParams params); + NActors::IActor* CreateWilsonUploader(TWilsonUploaderParams params); } // NWilson diff --git a/ydb/library/arrow_clickhouse/ut/CMakeLists.darwin-arm64.txt b/ydb/library/arrow_clickhouse/ut/CMakeLists.darwin-arm64.txt index 569c3db98b5b..890934effe81 100644 --- a/ydb/library/arrow_clickhouse/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/arrow_clickhouse/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-library-arrow_clickhouse-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-arrow_clickhouse-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/ut_aggregator.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/arrow_clickhouse/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/arrow_clickhouse/ut/CMakeLists.darwin-x86_64.txt index 496bf7079bbc..31aa895461e8 100644 --- a/ydb/library/arrow_clickhouse/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/arrow_clickhouse/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-arrow_clickhouse-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-arrow_clickhouse-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/ut_aggregator.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/arrow_clickhouse/ut/CMakeLists.linux-aarch64.txt b/ydb/library/arrow_clickhouse/ut/CMakeLists.linux-aarch64.txt index 49d7f4cbb31d..26332ec6a5f9 100644 --- a/ydb/library/arrow_clickhouse/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/arrow_clickhouse/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-arrow_clickhouse-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-arrow_clickhouse-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/ut_aggregator.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/arrow_clickhouse/ut/CMakeLists.linux-x86_64.txt b/ydb/library/arrow_clickhouse/ut/CMakeLists.linux-x86_64.txt index 649807cc79e6..bc2847f9ab84 100644 --- a/ydb/library/arrow_clickhouse/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/arrow_clickhouse/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-arrow_clickhouse-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-arrow_clickhouse-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/arrow_clickhouse/ut_aggregator.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/arrow_clickhouse/ut/CMakeLists.windows-x86_64.txt b/ydb/library/arrow_clickhouse/ut/CMakeLists.windows-x86_64.txt index 3fd6d7c54b91..a76ff0f05ae7 100644 --- a/ydb/library/arrow_clickhouse/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/arrow_clickhouse/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/arrow_kernels/CMakeLists.darwin-arm64.txt b/ydb/library/arrow_kernels/CMakeLists.darwin-arm64.txt index a6a7cff53e9f..12185413e5fe 100644 --- a/ydb/library/arrow_kernels/CMakeLists.darwin-arm64.txt +++ b/ydb/library/arrow_kernels/CMakeLists.darwin-arm64.txt @@ -7,14 +7,26 @@ add_subdirectory(ut) +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) add_library(ydb-library-arrow_kernels) target_link_libraries(ydb-library-arrow_kernels PUBLIC contrib-libs-cxxsupp yutil libs-apache-arrow + tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-library-arrow_kernels PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/func_cast.cpp ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/ut_common.cpp ) +generate_enum_serilization(ydb-library-arrow_kernels + ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/operations.h + INCLUDE_HEADERS + ydb/library/arrow_kernels/operations.h +) diff --git a/ydb/library/arrow_kernels/CMakeLists.darwin-x86_64.txt b/ydb/library/arrow_kernels/CMakeLists.darwin-x86_64.txt index a6a7cff53e9f..12185413e5fe 100644 --- a/ydb/library/arrow_kernels/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/arrow_kernels/CMakeLists.darwin-x86_64.txt @@ -7,14 +7,26 @@ add_subdirectory(ut) +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) add_library(ydb-library-arrow_kernels) target_link_libraries(ydb-library-arrow_kernels PUBLIC contrib-libs-cxxsupp yutil libs-apache-arrow + tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-library-arrow_kernels PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/func_cast.cpp ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/ut_common.cpp ) +generate_enum_serilization(ydb-library-arrow_kernels + ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/operations.h + INCLUDE_HEADERS + ydb/library/arrow_kernels/operations.h +) diff --git a/ydb/library/arrow_kernels/CMakeLists.linux-aarch64.txt b/ydb/library/arrow_kernels/CMakeLists.linux-aarch64.txt index a6f80d3e7173..8e66aec6cd5e 100644 --- a/ydb/library/arrow_kernels/CMakeLists.linux-aarch64.txt +++ b/ydb/library/arrow_kernels/CMakeLists.linux-aarch64.txt @@ -7,6 +7,12 @@ add_subdirectory(ut) +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) add_library(ydb-library-arrow_kernels) target_link_libraries(ydb-library-arrow_kernels PUBLIC @@ -14,8 +20,14 @@ target_link_libraries(ydb-library-arrow_kernels PUBLIC contrib-libs-cxxsupp yutil libs-apache-arrow + tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-library-arrow_kernels PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/func_cast.cpp ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/ut_common.cpp ) +generate_enum_serilization(ydb-library-arrow_kernels + ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/operations.h + INCLUDE_HEADERS + ydb/library/arrow_kernels/operations.h +) diff --git a/ydb/library/arrow_kernels/CMakeLists.linux-x86_64.txt b/ydb/library/arrow_kernels/CMakeLists.linux-x86_64.txt index a6f80d3e7173..8e66aec6cd5e 100644 --- a/ydb/library/arrow_kernels/CMakeLists.linux-x86_64.txt +++ b/ydb/library/arrow_kernels/CMakeLists.linux-x86_64.txt @@ -7,6 +7,12 @@ add_subdirectory(ut) +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) add_library(ydb-library-arrow_kernels) target_link_libraries(ydb-library-arrow_kernels PUBLIC @@ -14,8 +20,14 @@ target_link_libraries(ydb-library-arrow_kernels PUBLIC contrib-libs-cxxsupp yutil libs-apache-arrow + tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-library-arrow_kernels PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/func_cast.cpp ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/ut_common.cpp ) +generate_enum_serilization(ydb-library-arrow_kernels + ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/operations.h + INCLUDE_HEADERS + ydb/library/arrow_kernels/operations.h +) diff --git a/ydb/library/arrow_kernels/CMakeLists.windows-x86_64.txt b/ydb/library/arrow_kernels/CMakeLists.windows-x86_64.txt index a6a7cff53e9f..12185413e5fe 100644 --- a/ydb/library/arrow_kernels/CMakeLists.windows-x86_64.txt +++ b/ydb/library/arrow_kernels/CMakeLists.windows-x86_64.txt @@ -7,14 +7,26 @@ add_subdirectory(ut) +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) add_library(ydb-library-arrow_kernels) target_link_libraries(ydb-library-arrow_kernels PUBLIC contrib-libs-cxxsupp yutil libs-apache-arrow + tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-library-arrow_kernels PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/func_cast.cpp ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/ut_common.cpp ) +generate_enum_serilization(ydb-library-arrow_kernels + ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/operations.h + INCLUDE_HEADERS + ydb/library/arrow_kernels/operations.h +) diff --git a/ydb/library/arrow_kernels/ut/CMakeLists.darwin-arm64.txt b/ydb/library/arrow_kernels/ut/CMakeLists.darwin-arm64.txt index 16fbb4b260b4..0e215fb6457c 100644 --- a/ydb/library/arrow_kernels/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/arrow_kernels/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-library-arrow_kernels-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-arrow_kernels-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/ut_common.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/arrow_kernels/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/arrow_kernels/ut/CMakeLists.darwin-x86_64.txt index 65ff71fa682c..2746748be370 100644 --- a/ydb/library/arrow_kernels/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/arrow_kernels/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-library-arrow_kernels-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-arrow_kernels-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/ut_common.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/arrow_kernels/ut/CMakeLists.linux-aarch64.txt b/ydb/library/arrow_kernels/ut/CMakeLists.linux-aarch64.txt index 3d63e1b8de5b..49439c5c8c57 100644 --- a/ydb/library/arrow_kernels/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/arrow_kernels/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-library-arrow_kernels-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-arrow_kernels-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/ut_common.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/arrow_kernels/ut/CMakeLists.linux-x86_64.txt b/ydb/library/arrow_kernels/ut/CMakeLists.linux-x86_64.txt index 021182fcd9e6..a5673598da97 100644 --- a/ydb/library/arrow_kernels/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/arrow_kernels/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-library-arrow_kernels-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-arrow_kernels-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/arrow_kernels/ut_common.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/arrow_kernels/ut/CMakeLists.windows-x86_64.txt b/ydb/library/arrow_kernels/ut/CMakeLists.windows-x86_64.txt index 04dce8099b84..42a16e4c516c 100644 --- a/ydb/library/arrow_kernels/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/arrow_kernels/ut/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/arrow_parquet/CMakeLists.darwin-arm64.txt b/ydb/library/arrow_parquet/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..c35626011d6b --- /dev/null +++ b/ydb/library/arrow_parquet/CMakeLists.darwin-arm64.txt @@ -0,0 +1,19 @@ + +# 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-arrow_parquet) +target_link_libraries(ydb-library-arrow_parquet PUBLIC + contrib-libs-cxxsupp + yutil + cpp-client-ydb_value + libs-apache-arrow +) +target_sources(ydb-library-arrow_parquet PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/arrow_parquet/result_set_parquet_printer.cpp +) diff --git a/ydb/library/arrow_parquet/CMakeLists.darwin-x86_64.txt b/ydb/library/arrow_parquet/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..c35626011d6b --- /dev/null +++ b/ydb/library/arrow_parquet/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,19 @@ + +# 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-arrow_parquet) +target_link_libraries(ydb-library-arrow_parquet PUBLIC + contrib-libs-cxxsupp + yutil + cpp-client-ydb_value + libs-apache-arrow +) +target_sources(ydb-library-arrow_parquet PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/arrow_parquet/result_set_parquet_printer.cpp +) diff --git a/ydb/library/arrow_parquet/CMakeLists.linux-aarch64.txt b/ydb/library/arrow_parquet/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..4dca002a3b41 --- /dev/null +++ b/ydb/library/arrow_parquet/CMakeLists.linux-aarch64.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(ydb-library-arrow_parquet) +target_link_libraries(ydb-library-arrow_parquet PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-client-ydb_value + libs-apache-arrow +) +target_sources(ydb-library-arrow_parquet PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/arrow_parquet/result_set_parquet_printer.cpp +) diff --git a/ydb/library/arrow_parquet/CMakeLists.linux-x86_64.txt b/ydb/library/arrow_parquet/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..4dca002a3b41 --- /dev/null +++ b/ydb/library/arrow_parquet/CMakeLists.linux-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(ydb-library-arrow_parquet) +target_link_libraries(ydb-library-arrow_parquet PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-client-ydb_value + libs-apache-arrow +) +target_sources(ydb-library-arrow_parquet PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/arrow_parquet/result_set_parquet_printer.cpp +) diff --git a/ydb/library/arrow_parquet/CMakeLists.txt b/ydb/library/arrow_parquet/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/arrow_parquet/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/arrow_parquet/CMakeLists.windows-x86_64.txt b/ydb/library/arrow_parquet/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..c35626011d6b --- /dev/null +++ b/ydb/library/arrow_parquet/CMakeLists.windows-x86_64.txt @@ -0,0 +1,19 @@ + +# 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-arrow_parquet) +target_link_libraries(ydb-library-arrow_parquet PUBLIC + contrib-libs-cxxsupp + yutil + cpp-client-ydb_value + libs-apache-arrow +) +target_sources(ydb-library-arrow_parquet PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/arrow_parquet/result_set_parquet_printer.cpp +) diff --git a/ydb/library/backup/ut/CMakeLists.darwin-arm64.txt b/ydb/library/backup/ut/CMakeLists.darwin-arm64.txt index 67e2c354c966..a9baf83ce428 100644 --- a/ydb/library/backup/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/backup/ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-backup-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-backup-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/backup/ut/ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/backup/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/backup/ut/CMakeLists.darwin-x86_64.txt index a86760851919..b775d50908ca 100644 --- a/ydb/library/backup/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/backup/ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-library-backup-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-backup-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/backup/ut/ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/backup/ut/CMakeLists.linux-aarch64.txt b/ydb/library/backup/ut/CMakeLists.linux-aarch64.txt index d442a30ab524..395758ba4bfd 100644 --- a/ydb/library/backup/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/backup/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-backup-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-backup-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/backup/ut/ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/backup/ut/CMakeLists.linux-x86_64.txt b/ydb/library/backup/ut/CMakeLists.linux-x86_64.txt index 8769cd2d0144..b79e440e2145 100644 --- a/ydb/library/backup/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/backup/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-library-backup-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-backup-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/backup/ut/ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/backup/ut/CMakeLists.windows-x86_64.txt b/ydb/library/backup/ut/CMakeLists.windows-x86_64.txt index 164c83e2c047..484efd652fac 100644 --- a/ydb/library/backup/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/backup/ut/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/binary_json/ut/CMakeLists.darwin-arm64.txt b/ydb/library/binary_json/ut/CMakeLists.darwin-arm64.txt index bfb41fc4c3b8..422b30919793 100644 --- a/ydb/library/binary_json/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/binary_json/ut/CMakeLists.darwin-arm64.txt @@ -20,7 +20,7 @@ target_link_libraries(ydb-library-binary_json-ut PUBLIC cpp-testing-unittest_main ydb-library-binary_json yql-minikql-dom - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 udf-service-exception_policy core-issue-protos yql-sql-pg_dummy @@ -29,8 +29,6 @@ target_link_options(ydb-library-binary_json-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-binary_json-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/binary_json/ut/container_ut.cpp @@ -64,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/binary_json/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/binary_json/ut/CMakeLists.darwin-x86_64.txt index 2092e96b8a56..bdddd1982ab3 100644 --- a/ydb/library/binary_json/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/binary_json/ut/CMakeLists.darwin-x86_64.txt @@ -21,7 +21,7 @@ target_link_libraries(ydb-library-binary_json-ut PUBLIC cpp-testing-unittest_main ydb-library-binary_json yql-minikql-dom - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 udf-service-exception_policy core-issue-protos yql-sql-pg_dummy @@ -30,8 +30,6 @@ target_link_options(ydb-library-binary_json-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-binary_json-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/binary_json/ut/container_ut.cpp @@ -65,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/binary_json/ut/CMakeLists.linux-aarch64.txt b/ydb/library/binary_json/ut/CMakeLists.linux-aarch64.txt index c39f2ec1a1e7..9e9c222755a2 100644 --- a/ydb/library/binary_json/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/binary_json/ut/CMakeLists.linux-aarch64.txt @@ -21,7 +21,7 @@ target_link_libraries(ydb-library-binary_json-ut PUBLIC cpp-testing-unittest_main ydb-library-binary_json yql-minikql-dom - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 udf-service-exception_policy core-issue-protos yql-sql-pg_dummy @@ -32,9 +32,6 @@ target_link_options(ydb-library-binary_json-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-binary_json-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/binary_json/ut/container_ut.cpp @@ -68,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/binary_json/ut/CMakeLists.linux-x86_64.txt b/ydb/library/binary_json/ut/CMakeLists.linux-x86_64.txt index 868f374d08d9..3bcaffb566a3 100644 --- a/ydb/library/binary_json/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/binary_json/ut/CMakeLists.linux-x86_64.txt @@ -22,7 +22,7 @@ target_link_libraries(ydb-library-binary_json-ut PUBLIC cpp-testing-unittest_main ydb-library-binary_json yql-minikql-dom - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 udf-service-exception_policy core-issue-protos yql-sql-pg_dummy @@ -33,9 +33,6 @@ target_link_options(ydb-library-binary_json-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-binary_json-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/binary_json/ut/container_ut.cpp @@ -69,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/binary_json/ut/CMakeLists.windows-x86_64.txt b/ydb/library/binary_json/ut/CMakeLists.windows-x86_64.txt index a01c249595fd..1f9d42dddfe7 100644 --- a/ydb/library/binary_json/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/binary_json/ut/CMakeLists.windows-x86_64.txt @@ -21,7 +21,7 @@ target_link_libraries(ydb-library-binary_json-ut PUBLIC cpp-testing-unittest_main ydb-library-binary_json yql-minikql-dom - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 udf-service-exception_policy core-issue-protos yql-sql-pg_dummy @@ -58,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/conclusion/CMakeLists.darwin-arm64.txt b/ydb/library/conclusion/CMakeLists.darwin-arm64.txt index ee4f4c3fa297..0998b6e45627 100644 --- a/ydb/library/conclusion/CMakeLists.darwin-arm64.txt +++ b/ydb/library/conclusion/CMakeLists.darwin-arm64.txt @@ -11,6 +11,7 @@ add_library(ydb-library-conclusion) target_link_libraries(ydb-library-conclusion PUBLIC contrib-libs-cxxsupp yutil + api-protos ) target_sources(ydb-library-conclusion PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/conclusion/result.cpp diff --git a/ydb/library/conclusion/CMakeLists.darwin-x86_64.txt b/ydb/library/conclusion/CMakeLists.darwin-x86_64.txt index ee4f4c3fa297..0998b6e45627 100644 --- a/ydb/library/conclusion/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/conclusion/CMakeLists.darwin-x86_64.txt @@ -11,6 +11,7 @@ add_library(ydb-library-conclusion) target_link_libraries(ydb-library-conclusion PUBLIC contrib-libs-cxxsupp yutil + api-protos ) target_sources(ydb-library-conclusion PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/conclusion/result.cpp diff --git a/ydb/library/conclusion/CMakeLists.linux-aarch64.txt b/ydb/library/conclusion/CMakeLists.linux-aarch64.txt index 64c5c16ee3ac..28c93468552a 100644 --- a/ydb/library/conclusion/CMakeLists.linux-aarch64.txt +++ b/ydb/library/conclusion/CMakeLists.linux-aarch64.txt @@ -12,6 +12,7 @@ target_link_libraries(ydb-library-conclusion PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + api-protos ) target_sources(ydb-library-conclusion PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/conclusion/result.cpp diff --git a/ydb/library/conclusion/CMakeLists.linux-x86_64.txt b/ydb/library/conclusion/CMakeLists.linux-x86_64.txt index 64c5c16ee3ac..28c93468552a 100644 --- a/ydb/library/conclusion/CMakeLists.linux-x86_64.txt +++ b/ydb/library/conclusion/CMakeLists.linux-x86_64.txt @@ -12,6 +12,7 @@ target_link_libraries(ydb-library-conclusion PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + api-protos ) target_sources(ydb-library-conclusion PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/conclusion/result.cpp diff --git a/ydb/library/conclusion/CMakeLists.windows-x86_64.txt b/ydb/library/conclusion/CMakeLists.windows-x86_64.txt index ee4f4c3fa297..0998b6e45627 100644 --- a/ydb/library/conclusion/CMakeLists.windows-x86_64.txt +++ b/ydb/library/conclusion/CMakeLists.windows-x86_64.txt @@ -11,6 +11,7 @@ add_library(ydb-library-conclusion) target_link_libraries(ydb-library-conclusion PUBLIC contrib-libs-cxxsupp yutil + api-protos ) target_sources(ydb-library-conclusion PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/conclusion/result.cpp diff --git a/ydb/library/conclusion/result.h b/ydb/library/conclusion/result.h index 17d72180b3b5..cd4034a754c2 100644 --- a/ydb/library/conclusion/result.h +++ b/ydb/library/conclusion/result.h @@ -30,11 +30,13 @@ class TConclusion { Y_ABORT_UNLESS(IsFail()); } - TConclusion(TResult&& result) + template <class TResultArg> + TConclusion(TResultArg&& result) : Result(std::move(result)) { } - TConclusion(const TResult& result) + template <class TResultArg> + TConclusion(const TResultArg& result) : Result(result) { } @@ -50,12 +52,26 @@ class TConclusion { return *result; } + TResult& MutableResult() { + auto result = std::get_if<TResult>(&Result); + Y_ABORT_UNLESS(result, "incorrect object for result request"); + return *result; + } + TResult&& DetachResult() { auto result = std::get_if<TResult>(&Result); Y_ABORT_UNLESS(result, "incorrect object for result request"); return std::move(*result); } + const TResult* operator->() const { + return &GetResult(); + } + + TResult* operator->() { + return &MutableResult(); + } + const TResult& operator*() const { return GetResult(); } @@ -64,8 +80,8 @@ class TConclusion { return IsFail(); } - explicit operator bool() const { - return IsSuccess(); + operator TConclusionStatus() const { + return GetError(); } const TString& GetErrorMessage() const { diff --git a/ydb/library/conclusion/status.cpp b/ydb/library/conclusion/status.cpp index e946a122914b..30b85520e24e 100644 --- a/ydb/library/conclusion/status.cpp +++ b/ydb/library/conclusion/status.cpp @@ -1,5 +1,10 @@ #include "status.h" +#include <ydb/library/actors/core/log.h> namespace NKikimr { +void TConclusionStatus::Validate() const { + AFL_VERIFY(Ok())("problem", GetErrorMessage()); +} + } diff --git a/ydb/library/conclusion/status.h b/ydb/library/conclusion/status.h index 86e018cd3407..97b45911c678 100644 --- a/ydb/library/conclusion/status.h +++ b/ydb/library/conclusion/status.h @@ -20,11 +20,17 @@ class TConclusionStatus { TConclusionStatus(const char* errorMessage, Ydb::StatusIds::StatusCode status = Ydb::StatusIds::INTERNAL_ERROR) : ErrorMessage(errorMessage) - , Status(status) - { + , Status(status) { + Y_ABORT_UNLESS(!!ErrorMessage); + } + + TConclusionStatus(const std::string& errorMessage, Ydb::StatusIds::StatusCode status = Ydb::StatusIds::INTERNAL_ERROR) + : ErrorMessage(TString(errorMessage.data(), errorMessage.size())) + , Status(status) { Y_ABORT_UNLESS(!!ErrorMessage); } public: + void Validate() const; const TString& GetErrorMessage() const { return ErrorMessage ? *ErrorMessage : Default<TString>(); @@ -42,10 +48,18 @@ class TConclusionStatus { return TConclusionStatus(errorMessage); } + static TConclusionStatus Fail(const std::string& errorMessage) { + return TConclusionStatus(errorMessage); + } + bool IsFail() const { return !Ok(); } + bool IsSuccess() const { + return Ok(); + } + bool Ok() const { return !ErrorMessage; } @@ -54,10 +68,6 @@ class TConclusionStatus { return !!ErrorMessage; } - explicit operator bool() const { - return Ok(); - } - static TConclusionStatus Success() { return TConclusionStatus(); } diff --git a/ydb/library/conclusion/ya.make b/ydb/library/conclusion/ya.make index dd50013dc5a4..e6e350a5a55a 100644 --- a/ydb/library/conclusion/ya.make +++ b/ydb/library/conclusion/ya.make @@ -7,6 +7,7 @@ SRCS( PEERDIR( ydb/public/api/protos + ydb/library/actors/core ) END() diff --git a/ydb/library/db_pool/protos/CMakeLists.darwin-arm64.txt b/ydb/library/db_pool/protos/CMakeLists.darwin-arm64.txt index b27a2ed4f79e..ccbeeaffa74f 100644 --- a/ydb/library/db_pool/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/db_pool/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-db_pool-protos PUBLIC target_proto_messages(library-db_pool-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/db_pool/protos/config.proto ) +target_sources(library-db_pool-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/db_pool/protos/config.pb.h +) target_proto_addincls(library-db_pool-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/db_pool/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/db_pool/protos/CMakeLists.darwin-x86_64.txt index b27a2ed4f79e..ccbeeaffa74f 100644 --- a/ydb/library/db_pool/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/db_pool/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-db_pool-protos PUBLIC target_proto_messages(library-db_pool-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/db_pool/protos/config.proto ) +target_sources(library-db_pool-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/db_pool/protos/config.pb.h +) target_proto_addincls(library-db_pool-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/db_pool/protos/CMakeLists.linux-aarch64.txt b/ydb/library/db_pool/protos/CMakeLists.linux-aarch64.txt index d3afcddab93a..6240defb1483 100644 --- a/ydb/library/db_pool/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/db_pool/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(library-db_pool-protos PUBLIC target_proto_messages(library-db_pool-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/db_pool/protos/config.proto ) +target_sources(library-db_pool-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/db_pool/protos/config.pb.h +) target_proto_addincls(library-db_pool-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/db_pool/protos/CMakeLists.linux-x86_64.txt b/ydb/library/db_pool/protos/CMakeLists.linux-x86_64.txt index d3afcddab93a..6240defb1483 100644 --- a/ydb/library/db_pool/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/db_pool/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(library-db_pool-protos PUBLIC target_proto_messages(library-db_pool-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/db_pool/protos/config.proto ) +target_sources(library-db_pool-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/db_pool/protos/config.pb.h +) target_proto_addincls(library-db_pool-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/db_pool/protos/CMakeLists.windows-x86_64.txt b/ydb/library/db_pool/protos/CMakeLists.windows-x86_64.txt index b27a2ed4f79e..ccbeeaffa74f 100644 --- a/ydb/library/db_pool/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/db_pool/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-db_pool-protos PUBLIC target_proto_messages(library-db_pool-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/db_pool/protos/config.proto ) +target_sources(library-db_pool-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/db_pool/protos/config.pb.h +) target_proto_addincls(library-db_pool-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/dynumber/CMakeLists.darwin-arm64.txt b/ydb/library/dynumber/CMakeLists.darwin-arm64.txt index 8eba3e9ddc69..356f736137a0 100644 --- a/ydb/library/dynumber/CMakeLists.darwin-arm64.txt +++ b/ydb/library/dynumber/CMakeLists.darwin-arm64.txt @@ -15,5 +15,6 @@ target_link_libraries(ydb-library-dynumber PUBLIC cpp-containers-stack_vector ) target_sources(ydb-library-dynumber PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/dynumber/cast.h ${CMAKE_SOURCE_DIR}/ydb/library/dynumber/dynumber.cpp ) diff --git a/ydb/library/dynumber/CMakeLists.darwin-x86_64.txt b/ydb/library/dynumber/CMakeLists.darwin-x86_64.txt index 8eba3e9ddc69..356f736137a0 100644 --- a/ydb/library/dynumber/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/dynumber/CMakeLists.darwin-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(ydb-library-dynumber PUBLIC cpp-containers-stack_vector ) target_sources(ydb-library-dynumber PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/dynumber/cast.h ${CMAKE_SOURCE_DIR}/ydb/library/dynumber/dynumber.cpp ) diff --git a/ydb/library/dynumber/CMakeLists.linux-aarch64.txt b/ydb/library/dynumber/CMakeLists.linux-aarch64.txt index fe445ed48615..208e0a3de850 100644 --- a/ydb/library/dynumber/CMakeLists.linux-aarch64.txt +++ b/ydb/library/dynumber/CMakeLists.linux-aarch64.txt @@ -16,5 +16,6 @@ target_link_libraries(ydb-library-dynumber PUBLIC cpp-containers-stack_vector ) target_sources(ydb-library-dynumber PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/dynumber/cast.h ${CMAKE_SOURCE_DIR}/ydb/library/dynumber/dynumber.cpp ) diff --git a/ydb/library/dynumber/CMakeLists.linux-x86_64.txt b/ydb/library/dynumber/CMakeLists.linux-x86_64.txt index fe445ed48615..208e0a3de850 100644 --- a/ydb/library/dynumber/CMakeLists.linux-x86_64.txt +++ b/ydb/library/dynumber/CMakeLists.linux-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(ydb-library-dynumber PUBLIC cpp-containers-stack_vector ) target_sources(ydb-library-dynumber PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/dynumber/cast.h ${CMAKE_SOURCE_DIR}/ydb/library/dynumber/dynumber.cpp ) diff --git a/ydb/library/dynumber/CMakeLists.windows-x86_64.txt b/ydb/library/dynumber/CMakeLists.windows-x86_64.txt index 8eba3e9ddc69..356f736137a0 100644 --- a/ydb/library/dynumber/CMakeLists.windows-x86_64.txt +++ b/ydb/library/dynumber/CMakeLists.windows-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(ydb-library-dynumber PUBLIC cpp-containers-stack_vector ) target_sources(ydb-library-dynumber PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/dynumber/cast.h ${CMAKE_SOURCE_DIR}/ydb/library/dynumber/dynumber.cpp ) diff --git a/ydb/library/dynumber/ut/CMakeLists.darwin-arm64.txt b/ydb/library/dynumber/ut/CMakeLists.darwin-arm64.txt index 7234bb130658..2d4b6fa3e5d6 100644 --- a/ydb/library/dynumber/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/dynumber/ut/CMakeLists.darwin-arm64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/dynumber/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/dynumber/ut/CMakeLists.darwin-x86_64.txt index 1e05c67ab4ae..3cd8b3f5c1da 100644 --- a/ydb/library/dynumber/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/dynumber/ut/CMakeLists.darwin-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/dynumber/ut/CMakeLists.linux-aarch64.txt b/ydb/library/dynumber/ut/CMakeLists.linux-aarch64.txt index d8ba55b2edd6..4ff2e490f47c 100644 --- a/ydb/library/dynumber/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/dynumber/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-dynumber-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-dynumber-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/dynumber/ut/dynumber_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/dynumber/ut/CMakeLists.linux-x86_64.txt b/ydb/library/dynumber/ut/CMakeLists.linux-x86_64.txt index 67e831c1b1d3..885c872d4fcb 100644 --- a/ydb/library/dynumber/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/dynumber/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-dynumber-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-dynumber-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/dynumber/ut/dynumber_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/dynumber/ut/CMakeLists.windows-x86_64.txt b/ydb/library/dynumber/ut/CMakeLists.windows-x86_64.txt index 92c4696922ee..991ec18e2d39 100644 --- a/ydb/library/dynumber/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/dynumber/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/folder_service/CMakeLists.darwin-arm64.txt b/ydb/library/folder_service/CMakeLists.darwin-arm64.txt index e5e5e5bd264c..15b5439edbf2 100644 --- a/ydb/library/folder_service/CMakeLists.darwin-arm64.txt +++ b/ydb/library/folder_service/CMakeLists.darwin-arm64.txt @@ -18,5 +18,7 @@ target_link_libraries(ydb-library-folder_service PUBLIC library-folder_service-proto ) target_sources(ydb-library-folder_service PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/events.h + ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/folder_service.h ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/folder_service.cpp ) diff --git a/ydb/library/folder_service/CMakeLists.darwin-x86_64.txt b/ydb/library/folder_service/CMakeLists.darwin-x86_64.txt index e5e5e5bd264c..15b5439edbf2 100644 --- a/ydb/library/folder_service/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/folder_service/CMakeLists.darwin-x86_64.txt @@ -18,5 +18,7 @@ target_link_libraries(ydb-library-folder_service PUBLIC library-folder_service-proto ) target_sources(ydb-library-folder_service PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/events.h + ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/folder_service.h ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/folder_service.cpp ) diff --git a/ydb/library/folder_service/CMakeLists.linux-aarch64.txt b/ydb/library/folder_service/CMakeLists.linux-aarch64.txt index 62335e7dfcea..ae965d060690 100644 --- a/ydb/library/folder_service/CMakeLists.linux-aarch64.txt +++ b/ydb/library/folder_service/CMakeLists.linux-aarch64.txt @@ -19,5 +19,7 @@ target_link_libraries(ydb-library-folder_service PUBLIC library-folder_service-proto ) target_sources(ydb-library-folder_service PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/events.h + ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/folder_service.h ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/folder_service.cpp ) diff --git a/ydb/library/folder_service/CMakeLists.linux-x86_64.txt b/ydb/library/folder_service/CMakeLists.linux-x86_64.txt index 62335e7dfcea..ae965d060690 100644 --- a/ydb/library/folder_service/CMakeLists.linux-x86_64.txt +++ b/ydb/library/folder_service/CMakeLists.linux-x86_64.txt @@ -19,5 +19,7 @@ target_link_libraries(ydb-library-folder_service PUBLIC library-folder_service-proto ) target_sources(ydb-library-folder_service PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/events.h + ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/folder_service.h ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/folder_service.cpp ) diff --git a/ydb/library/folder_service/CMakeLists.windows-x86_64.txt b/ydb/library/folder_service/CMakeLists.windows-x86_64.txt index e5e5e5bd264c..15b5439edbf2 100644 --- a/ydb/library/folder_service/CMakeLists.windows-x86_64.txt +++ b/ydb/library/folder_service/CMakeLists.windows-x86_64.txt @@ -18,5 +18,7 @@ target_link_libraries(ydb-library-folder_service PUBLIC library-folder_service-proto ) target_sources(ydb-library-folder_service PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/events.h + ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/folder_service.h ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/folder_service.cpp ) diff --git a/ydb/library/folder_service/proto/CMakeLists.darwin-arm64.txt b/ydb/library/folder_service/proto/CMakeLists.darwin-arm64.txt index 9d9c4e98f2b7..cd716fd047fe 100644 --- a/ydb/library/folder_service/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/folder_service/proto/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-folder_service-proto PUBLIC target_proto_messages(library-folder_service-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/proto/config.proto ) +target_sources(library-folder_service-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/folder_service/proto/config.pb.h +) target_proto_addincls(library-folder_service-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/folder_service/proto/CMakeLists.darwin-x86_64.txt b/ydb/library/folder_service/proto/CMakeLists.darwin-x86_64.txt index 9d9c4e98f2b7..cd716fd047fe 100644 --- a/ydb/library/folder_service/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/folder_service/proto/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-folder_service-proto PUBLIC target_proto_messages(library-folder_service-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/proto/config.proto ) +target_sources(library-folder_service-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/folder_service/proto/config.pb.h +) target_proto_addincls(library-folder_service-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/folder_service/proto/CMakeLists.linux-aarch64.txt b/ydb/library/folder_service/proto/CMakeLists.linux-aarch64.txt index 9698675f9913..bec1821175fe 100644 --- a/ydb/library/folder_service/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/folder_service/proto/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(library-folder_service-proto PUBLIC target_proto_messages(library-folder_service-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/proto/config.proto ) +target_sources(library-folder_service-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/folder_service/proto/config.pb.h +) target_proto_addincls(library-folder_service-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/folder_service/proto/CMakeLists.linux-x86_64.txt b/ydb/library/folder_service/proto/CMakeLists.linux-x86_64.txt index 9698675f9913..bec1821175fe 100644 --- a/ydb/library/folder_service/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/folder_service/proto/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(library-folder_service-proto PUBLIC target_proto_messages(library-folder_service-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/proto/config.proto ) +target_sources(library-folder_service-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/folder_service/proto/config.pb.h +) target_proto_addincls(library-folder_service-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/folder_service/proto/CMakeLists.windows-x86_64.txt b/ydb/library/folder_service/proto/CMakeLists.windows-x86_64.txt index 9d9c4e98f2b7..cd716fd047fe 100644 --- a/ydb/library/folder_service/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/folder_service/proto/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-folder_service-proto PUBLIC target_proto_messages(library-folder_service-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/folder_service/proto/config.proto ) +target_sources(library-folder_service-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/folder_service/proto/config.pb.h +) target_proto_addincls(library-folder_service-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/fyamlcpp/CMakeLists.darwin-arm64.txt b/ydb/library/fyamlcpp/CMakeLists.darwin-arm64.txt index 4687447d7f71..b0faab420c4b 100644 --- a/ydb/library/fyamlcpp/CMakeLists.darwin-arm64.txt +++ b/ydb/library/fyamlcpp/CMakeLists.darwin-arm64.txt @@ -14,5 +14,6 @@ target_link_libraries(ydb-library-fyamlcpp PUBLIC contrib-libs-libfyaml ) target_sources(ydb-library-fyamlcpp PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/fyamlcpp/fyamlcpp.h ${CMAKE_SOURCE_DIR}/ydb/library/fyamlcpp/fyamlcpp.cpp ) diff --git a/ydb/library/fyamlcpp/CMakeLists.darwin-x86_64.txt b/ydb/library/fyamlcpp/CMakeLists.darwin-x86_64.txt index 4687447d7f71..b0faab420c4b 100644 --- a/ydb/library/fyamlcpp/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/fyamlcpp/CMakeLists.darwin-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(ydb-library-fyamlcpp PUBLIC contrib-libs-libfyaml ) target_sources(ydb-library-fyamlcpp PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/fyamlcpp/fyamlcpp.h ${CMAKE_SOURCE_DIR}/ydb/library/fyamlcpp/fyamlcpp.cpp ) diff --git a/ydb/library/fyamlcpp/CMakeLists.linux-aarch64.txt b/ydb/library/fyamlcpp/CMakeLists.linux-aarch64.txt index afa6496d4116..1dff27671c72 100644 --- a/ydb/library/fyamlcpp/CMakeLists.linux-aarch64.txt +++ b/ydb/library/fyamlcpp/CMakeLists.linux-aarch64.txt @@ -15,5 +15,6 @@ target_link_libraries(ydb-library-fyamlcpp PUBLIC contrib-libs-libfyaml ) target_sources(ydb-library-fyamlcpp PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/fyamlcpp/fyamlcpp.h ${CMAKE_SOURCE_DIR}/ydb/library/fyamlcpp/fyamlcpp.cpp ) diff --git a/ydb/library/fyamlcpp/CMakeLists.linux-x86_64.txt b/ydb/library/fyamlcpp/CMakeLists.linux-x86_64.txt index afa6496d4116..1dff27671c72 100644 --- a/ydb/library/fyamlcpp/CMakeLists.linux-x86_64.txt +++ b/ydb/library/fyamlcpp/CMakeLists.linux-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(ydb-library-fyamlcpp PUBLIC contrib-libs-libfyaml ) target_sources(ydb-library-fyamlcpp PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/fyamlcpp/fyamlcpp.h ${CMAKE_SOURCE_DIR}/ydb/library/fyamlcpp/fyamlcpp.cpp ) diff --git a/ydb/library/fyamlcpp/CMakeLists.windows-x86_64.txt b/ydb/library/fyamlcpp/CMakeLists.windows-x86_64.txt index 4687447d7f71..b0faab420c4b 100644 --- a/ydb/library/fyamlcpp/CMakeLists.windows-x86_64.txt +++ b/ydb/library/fyamlcpp/CMakeLists.windows-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(ydb-library-fyamlcpp PUBLIC contrib-libs-libfyaml ) target_sources(ydb-library-fyamlcpp PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/fyamlcpp/fyamlcpp.h ${CMAKE_SOURCE_DIR}/ydb/library/fyamlcpp/fyamlcpp.cpp ) diff --git a/ydb/library/grpc/client/ut/CMakeLists.darwin-arm64.txt b/ydb/library/grpc/client/ut/CMakeLists.darwin-arm64.txt index eccaba597cb2..aef24c4b93ee 100644 --- a/ydb/library/grpc/client/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/grpc/client/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-library-grpc-client-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-grpc-client-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/grpc/client/ut/grpc_client_low_ut.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/grpc/client/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/grpc/client/ut/CMakeLists.darwin-x86_64.txt index 485241c214c1..155324799596 100644 --- a/ydb/library/grpc/client/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/grpc/client/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-grpc-client-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-grpc-client-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/grpc/client/ut/grpc_client_low_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/grpc/client/ut/CMakeLists.linux-aarch64.txt b/ydb/library/grpc/client/ut/CMakeLists.linux-aarch64.txt index 28edb2dbf69b..3dd17f3294c5 100644 --- a/ydb/library/grpc/client/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/grpc/client/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-grpc-client-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-grpc-client-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/grpc/client/ut/grpc_client_low_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/grpc/client/ut/CMakeLists.linux-x86_64.txt b/ydb/library/grpc/client/ut/CMakeLists.linux-x86_64.txt index 09a0126be1b4..4bd2b14d0869 100644 --- a/ydb/library/grpc/client/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/grpc/client/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-grpc-client-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-grpc-client-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/grpc/client/ut/grpc_client_low_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/grpc/client/ut/CMakeLists.windows-x86_64.txt b/ydb/library/grpc/client/ut/CMakeLists.windows-x86_64.txt index 82596d01ea0b..21b02c09f429 100644 --- a/ydb/library/grpc/client/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/grpc/client/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/grpc/common/CMakeLists.darwin-arm64.txt b/ydb/library/grpc/common/CMakeLists.darwin-arm64.txt index 01d036e60721..4209dd207caf 100644 --- a/ydb/library/grpc/common/CMakeLists.darwin-arm64.txt +++ b/ydb/library/grpc/common/CMakeLists.darwin-arm64.txt @@ -13,3 +13,7 @@ target_link_libraries(library-grpc-common INTERFACE yutil contrib-libs-grpc ) +target_sources(library-grpc-common INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/grpc/common/time_point.h + ${CMAKE_SOURCE_DIR}/ydb/library/grpc/common/constants.h +) diff --git a/ydb/library/grpc/common/CMakeLists.darwin-x86_64.txt b/ydb/library/grpc/common/CMakeLists.darwin-x86_64.txt index 01d036e60721..4209dd207caf 100644 --- a/ydb/library/grpc/common/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/grpc/common/CMakeLists.darwin-x86_64.txt @@ -13,3 +13,7 @@ target_link_libraries(library-grpc-common INTERFACE yutil contrib-libs-grpc ) +target_sources(library-grpc-common INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/grpc/common/time_point.h + ${CMAKE_SOURCE_DIR}/ydb/library/grpc/common/constants.h +) diff --git a/ydb/library/grpc/common/CMakeLists.linux-aarch64.txt b/ydb/library/grpc/common/CMakeLists.linux-aarch64.txt index 219760cd6dda..dcd477cc4819 100644 --- a/ydb/library/grpc/common/CMakeLists.linux-aarch64.txt +++ b/ydb/library/grpc/common/CMakeLists.linux-aarch64.txt @@ -14,3 +14,7 @@ target_link_libraries(library-grpc-common INTERFACE yutil contrib-libs-grpc ) +target_sources(library-grpc-common INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/grpc/common/time_point.h + ${CMAKE_SOURCE_DIR}/ydb/library/grpc/common/constants.h +) diff --git a/ydb/library/grpc/common/CMakeLists.linux-x86_64.txt b/ydb/library/grpc/common/CMakeLists.linux-x86_64.txt index 219760cd6dda..dcd477cc4819 100644 --- a/ydb/library/grpc/common/CMakeLists.linux-x86_64.txt +++ b/ydb/library/grpc/common/CMakeLists.linux-x86_64.txt @@ -14,3 +14,7 @@ target_link_libraries(library-grpc-common INTERFACE yutil contrib-libs-grpc ) +target_sources(library-grpc-common INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/grpc/common/time_point.h + ${CMAKE_SOURCE_DIR}/ydb/library/grpc/common/constants.h +) diff --git a/ydb/library/grpc/common/CMakeLists.windows-x86_64.txt b/ydb/library/grpc/common/CMakeLists.windows-x86_64.txt index 01d036e60721..4209dd207caf 100644 --- a/ydb/library/grpc/common/CMakeLists.windows-x86_64.txt +++ b/ydb/library/grpc/common/CMakeLists.windows-x86_64.txt @@ -13,3 +13,7 @@ target_link_libraries(library-grpc-common INTERFACE yutil contrib-libs-grpc ) +target_sources(library-grpc-common INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/grpc/common/time_point.h + ${CMAKE_SOURCE_DIR}/ydb/library/grpc/common/constants.h +) diff --git a/ydb/library/grpc/server/actors/ya.make b/ydb/library/grpc/server/actors/ya.make index 94a143ac3414..fa71ec9a30c5 100644 --- a/ydb/library/grpc/server/actors/ya.make +++ b/ydb/library/grpc/server/actors/ya.make @@ -6,6 +6,7 @@ SRCS( PEERDIR( ydb/library/actors/core + ydb/library/grpc/server ) END() diff --git a/ydb/library/grpc/server/grpc_server.cpp b/ydb/library/grpc/server/grpc_server.cpp index b39a4f8b5de7..ffd236c22d04 100644 --- a/ydb/library/grpc/server/grpc_server.cpp +++ b/ydb/library/grpc/server/grpc_server.cpp @@ -210,13 +210,16 @@ void TGRpcServer::Stop() { break; auto spent = (TInstant::Now() - now).SecondsFloat(); - if (attempt % 300 == 0) { + if ((attempt + 1) % 300 == 0) { // don't log too much Cerr << "GRpc shutdown warning: left infly: " << infly << ", spent: " << spent << " sec" << Endl; } - if (!unsafe && spent > Options_.GRpcShutdownDeadline.SecondsFloat()) + if (!unsafe && spent > Options_.GRpcShutdownDeadline.SecondsFloat()) { + Cerr << "GRpc shutdown warning: failed to shutdown all connections, left infly: " << infly << ", spent: " << spent << " sec" + << Endl; break; + } Sleep(TDuration::MilliSeconds(10)); } diff --git a/ydb/library/grpc/server/logger.h b/ydb/library/grpc/server/logger.h index 1460afa09633..8cfae2b240a3 100644 --- a/ydb/library/grpc/server/logger.h +++ b/ydb/library/grpc/server/logger.h @@ -1,11 +1,17 @@ #pragma once +#include <ydb/library/protobuf_printer/security_printer.h> + #include <library/cpp/logger/priority.h> #include <util/generic/ptr.h> +#include <util/system/env.h> + namespace NYdbGrpc { +static bool LogBodyEnabled = "BODY" == GetEnv("YDB_GRPC_SERVER_LOGGING"); + class TLogger: public TThrRefBase { protected: TLogger() = default; @@ -40,4 +46,21 @@ using TLoggerPtr = TIntrusivePtr<TLogger>; logger->Write(ELogPriority::TLOG_INFO, format, __VA_ARGS__); \ } else { } +template <typename TMsg> +inline TString FormatMessage(const TMsg& message, bool ok = true) { + if (ok) { + if (LogBodyEnabled) { + TString text; + NKikimr::TSecurityTextFormatPrinter<TMsg> printer; + printer.SetSingleLineMode(true); + printer.PrintToString(message, &text); + return text; + } else { + return "<hidden>"; + } + } else { + return "<not ok>"; + } +} + } // namespace NYdbGrpc diff --git a/ydb/library/grpc/server/ut/CMakeLists.darwin-arm64.txt b/ydb/library/grpc/server/ut/CMakeLists.darwin-arm64.txt index a744e3c8758d..04f83052d713 100644 --- a/ydb/library/grpc/server/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/grpc/server/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-library-grpc-server-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-grpc-server-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/grpc/server/ut/grpc_response_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/grpc/server/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/grpc/server/ut/CMakeLists.darwin-x86_64.txt index 838718196351..1b51aad6f044 100644 --- a/ydb/library/grpc/server/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/grpc/server/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-grpc-server-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-grpc-server-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/grpc/server/ut/grpc_response_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/grpc/server/ut/CMakeLists.linux-aarch64.txt b/ydb/library/grpc/server/ut/CMakeLists.linux-aarch64.txt index 049e4d2a5ea5..202dae2348ed 100644 --- a/ydb/library/grpc/server/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/grpc/server/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-grpc-server-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-grpc-server-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/grpc/server/ut/grpc_response_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/grpc/server/ut/CMakeLists.linux-x86_64.txt b/ydb/library/grpc/server/ut/CMakeLists.linux-x86_64.txt index ed0ce2ccd89c..bd19b4b19a93 100644 --- a/ydb/library/grpc/server/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/grpc/server/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-grpc-server-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-grpc-server-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/grpc/server/ut/grpc_response_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/grpc/server/ut/CMakeLists.windows-x86_64.txt b/ydb/library/grpc/server/ut/CMakeLists.windows-x86_64.txt index 9bc5b10519d6..88fa6a0bbbe9 100644 --- a/ydb/library/grpc/server/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/grpc/server/ut/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/grpc/server/ya.make b/ydb/library/grpc/server/ya.make index 9ed8f30ef2e6..2e44c832ba82 100644 --- a/ydb/library/grpc/server/ya.make +++ b/ydb/library/grpc/server/ya.make @@ -10,6 +10,7 @@ SRCS( GENERATE_ENUM_SERIALIZATION(grpc_request_base.h) PEERDIR( + ydb/library/protobuf_printer contrib/libs/grpc library/cpp/monlib/dynamic_counters/percentile ) @@ -17,4 +18,3 @@ PEERDIR( END() RECURSE_FOR_TESTS(ut) - diff --git a/ydb/library/http_proxy/authorization/ut/CMakeLists.darwin-arm64.txt b/ydb/library/http_proxy/authorization/ut/CMakeLists.darwin-arm64.txt index f0c27f7ff32f..cecb854e86bc 100644 --- a/ydb/library/http_proxy/authorization/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/http_proxy/authorization/ut/CMakeLists.darwin-arm64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/http_proxy/authorization/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/http_proxy/authorization/ut/CMakeLists.darwin-x86_64.txt index c59736f16187..c295fc4c6cab 100644 --- a/ydb/library/http_proxy/authorization/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/http_proxy/authorization/ut/CMakeLists.darwin-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/http_proxy/authorization/ut/CMakeLists.linux-aarch64.txt b/ydb/library/http_proxy/authorization/ut/CMakeLists.linux-aarch64.txt index 86ac1883abcd..944c4f5ab978 100644 --- a/ydb/library/http_proxy/authorization/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/http_proxy/authorization/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-http_proxy-authorization-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-http_proxy-authorization-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/http_proxy/authorization/ut/auth_helpers_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/http_proxy/authorization/ut/CMakeLists.linux-x86_64.txt b/ydb/library/http_proxy/authorization/ut/CMakeLists.linux-x86_64.txt index da7a82bf7b25..85ac7297f15c 100644 --- a/ydb/library/http_proxy/authorization/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/http_proxy/authorization/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-library-http_proxy-authorization-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-http_proxy-authorization-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/http_proxy/authorization/ut/auth_helpers_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/http_proxy/authorization/ut/CMakeLists.windows-x86_64.txt b/ydb/library/http_proxy/authorization/ut/CMakeLists.windows-x86_64.txt index 75db995ea997..e802c35acd28 100644 --- a/ydb/library/http_proxy/authorization/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/http_proxy/authorization/ut/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/keys/ut/CMakeLists.darwin-arm64.txt b/ydb/library/keys/ut/CMakeLists.darwin-arm64.txt index 1461bee2fa31..50b5a00f8bf9 100644 --- a/ydb/library/keys/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/keys/ut/CMakeLists.darwin-arm64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/keys/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/keys/ut/CMakeLists.darwin-x86_64.txt index 6c6635f3a722..04df00e896f6 100644 --- a/ydb/library/keys/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/keys/ut/CMakeLists.darwin-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/keys/ut/CMakeLists.linux-aarch64.txt b/ydb/library/keys/ut/CMakeLists.linux-aarch64.txt index 26b4ae8d0726..033df32c5691 100644 --- a/ydb/library/keys/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/keys/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-keys-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-keys-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/keys/default_keys_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/keys/ut/CMakeLists.linux-x86_64.txt b/ydb/library/keys/ut/CMakeLists.linux-x86_64.txt index b9f4bdd132cd..a8121f625519 100644 --- a/ydb/library/keys/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/keys/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-keys-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-keys-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/keys/default_keys_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/keys/ut/CMakeLists.windows-x86_64.txt b/ydb/library/keys/ut/CMakeLists.windows-x86_64.txt index 2dd1b03275e1..2c0e613a3370 100644 --- a/ydb/library/keys/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/keys/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/login/CMakeLists.darwin-arm64.txt b/ydb/library/login/CMakeLists.darwin-arm64.txt index d9b859367bcf..d3424f8eb307 100644 --- a/ydb/library/login/CMakeLists.darwin-arm64.txt +++ b/ydb/library/login/CMakeLists.darwin-arm64.txt @@ -21,5 +21,6 @@ target_link_libraries(ydb-library-login PUBLIC library-login-protos ) target_sources(ydb-library-login PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/login/login.h ${CMAKE_SOURCE_DIR}/ydb/library/login/login.cpp ) diff --git a/ydb/library/login/CMakeLists.darwin-x86_64.txt b/ydb/library/login/CMakeLists.darwin-x86_64.txt index d9b859367bcf..d3424f8eb307 100644 --- a/ydb/library/login/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/login/CMakeLists.darwin-x86_64.txt @@ -21,5 +21,6 @@ target_link_libraries(ydb-library-login PUBLIC library-login-protos ) target_sources(ydb-library-login PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/login/login.h ${CMAKE_SOURCE_DIR}/ydb/library/login/login.cpp ) diff --git a/ydb/library/login/CMakeLists.linux-aarch64.txt b/ydb/library/login/CMakeLists.linux-aarch64.txt index e9f65247d286..616ed31ac8c4 100644 --- a/ydb/library/login/CMakeLists.linux-aarch64.txt +++ b/ydb/library/login/CMakeLists.linux-aarch64.txt @@ -22,5 +22,6 @@ target_link_libraries(ydb-library-login PUBLIC library-login-protos ) target_sources(ydb-library-login PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/login/login.h ${CMAKE_SOURCE_DIR}/ydb/library/login/login.cpp ) diff --git a/ydb/library/login/CMakeLists.linux-x86_64.txt b/ydb/library/login/CMakeLists.linux-x86_64.txt index e9f65247d286..616ed31ac8c4 100644 --- a/ydb/library/login/CMakeLists.linux-x86_64.txt +++ b/ydb/library/login/CMakeLists.linux-x86_64.txt @@ -22,5 +22,6 @@ target_link_libraries(ydb-library-login PUBLIC library-login-protos ) target_sources(ydb-library-login PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/login/login.h ${CMAKE_SOURCE_DIR}/ydb/library/login/login.cpp ) diff --git a/ydb/library/login/CMakeLists.windows-x86_64.txt b/ydb/library/login/CMakeLists.windows-x86_64.txt index d9b859367bcf..d3424f8eb307 100644 --- a/ydb/library/login/CMakeLists.windows-x86_64.txt +++ b/ydb/library/login/CMakeLists.windows-x86_64.txt @@ -21,5 +21,6 @@ target_link_libraries(ydb-library-login PUBLIC library-login-protos ) target_sources(ydb-library-login PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/login/login.h ${CMAKE_SOURCE_DIR}/ydb/library/login/login.cpp ) diff --git a/ydb/library/login/protos/CMakeLists.darwin-arm64.txt b/ydb/library/login/protos/CMakeLists.darwin-arm64.txt index bf877d4c78c9..0c35c2a3e9f8 100644 --- a/ydb/library/login/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/login/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-login-protos PUBLIC target_proto_messages(library-login-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/login/protos/login.proto ) +target_sources(library-login-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/login/protos/login.pb.h +) target_proto_addincls(library-login-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/login/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/login/protos/CMakeLists.darwin-x86_64.txt index bf877d4c78c9..0c35c2a3e9f8 100644 --- a/ydb/library/login/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/login/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-login-protos PUBLIC target_proto_messages(library-login-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/login/protos/login.proto ) +target_sources(library-login-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/login/protos/login.pb.h +) target_proto_addincls(library-login-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/login/protos/CMakeLists.linux-aarch64.txt b/ydb/library/login/protos/CMakeLists.linux-aarch64.txt index 066ed1ab3a30..b757c6ebb369 100644 --- a/ydb/library/login/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/login/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(library-login-protos PUBLIC target_proto_messages(library-login-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/login/protos/login.proto ) +target_sources(library-login-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/login/protos/login.pb.h +) target_proto_addincls(library-login-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/login/protos/CMakeLists.linux-x86_64.txt b/ydb/library/login/protos/CMakeLists.linux-x86_64.txt index 066ed1ab3a30..b757c6ebb369 100644 --- a/ydb/library/login/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/login/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(library-login-protos PUBLIC target_proto_messages(library-login-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/login/protos/login.proto ) +target_sources(library-login-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/login/protos/login.pb.h +) target_proto_addincls(library-login-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/login/protos/CMakeLists.windows-x86_64.txt b/ydb/library/login/protos/CMakeLists.windows-x86_64.txt index bf877d4c78c9..0c35c2a3e9f8 100644 --- a/ydb/library/login/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/login/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-login-protos PUBLIC target_proto_messages(library-login-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/login/protos/login.proto ) +target_sources(library-login-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/login/protos/login.pb.h +) target_proto_addincls(library-login-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/login/ut/CMakeLists.darwin-arm64.txt b/ydb/library/login/ut/CMakeLists.darwin-arm64.txt index 234a7df0d1cb..3bcf5c800b04 100644 --- a/ydb/library/login/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/login/ut/CMakeLists.darwin-arm64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/login/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/login/ut/CMakeLists.darwin-x86_64.txt index ccfa236f34c3..0d024cf2e208 100644 --- a/ydb/library/login/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/login/ut/CMakeLists.darwin-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/login/ut/CMakeLists.linux-aarch64.txt b/ydb/library/login/ut/CMakeLists.linux-aarch64.txt index a3b222a5cd62..580e961d848b 100644 --- a/ydb/library/login/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/login/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-login-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-login-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/login/login_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/login/ut/CMakeLists.linux-x86_64.txt b/ydb/library/login/ut/CMakeLists.linux-x86_64.txt index bfcd1ae8a0fd..92585d957eee 100644 --- a/ydb/library/login/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/login/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-login-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-login-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/login/login_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/login/ut/CMakeLists.windows-x86_64.txt b/ydb/library/login/ut/CMakeLists.windows-x86_64.txt index e42eb30689df..5e49264a03cf 100644 --- a/ydb/library/login/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/login/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/mkql_proto/CMakeLists.darwin-arm64.txt b/ydb/library/mkql_proto/CMakeLists.darwin-arm64.txt index 3293268a7246..938c6348aa31 100644 --- a/ydb/library/mkql_proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/mkql_proto/CMakeLists.darwin-arm64.txt @@ -17,7 +17,7 @@ target_link_libraries(ydb-library-mkql_proto PUBLIC contrib-libs-cxxsupp yutil library-mkql_proto-protos - minikql-computation-llvm + yql-minikql-computation yql-parser-pg_catalog providers-common-codec api-protos diff --git a/ydb/library/mkql_proto/CMakeLists.darwin-x86_64.txt b/ydb/library/mkql_proto/CMakeLists.darwin-x86_64.txt index 3293268a7246..938c6348aa31 100644 --- a/ydb/library/mkql_proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/mkql_proto/CMakeLists.darwin-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(ydb-library-mkql_proto PUBLIC contrib-libs-cxxsupp yutil library-mkql_proto-protos - minikql-computation-llvm + yql-minikql-computation yql-parser-pg_catalog providers-common-codec api-protos diff --git a/ydb/library/mkql_proto/CMakeLists.linux-aarch64.txt b/ydb/library/mkql_proto/CMakeLists.linux-aarch64.txt index 7f9c3130a518..687ab40b17ba 100644 --- a/ydb/library/mkql_proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/mkql_proto/CMakeLists.linux-aarch64.txt @@ -18,7 +18,7 @@ target_link_libraries(ydb-library-mkql_proto PUBLIC contrib-libs-cxxsupp yutil library-mkql_proto-protos - minikql-computation-llvm + yql-minikql-computation yql-parser-pg_catalog providers-common-codec api-protos diff --git a/ydb/library/mkql_proto/CMakeLists.linux-x86_64.txt b/ydb/library/mkql_proto/CMakeLists.linux-x86_64.txt index 7f9c3130a518..687ab40b17ba 100644 --- a/ydb/library/mkql_proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/mkql_proto/CMakeLists.linux-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(ydb-library-mkql_proto PUBLIC contrib-libs-cxxsupp yutil library-mkql_proto-protos - minikql-computation-llvm + yql-minikql-computation yql-parser-pg_catalog providers-common-codec api-protos diff --git a/ydb/library/mkql_proto/CMakeLists.windows-x86_64.txt b/ydb/library/mkql_proto/CMakeLists.windows-x86_64.txt index 3293268a7246..938c6348aa31 100644 --- a/ydb/library/mkql_proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/mkql_proto/CMakeLists.windows-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(ydb-library-mkql_proto PUBLIC contrib-libs-cxxsupp yutil library-mkql_proto-protos - minikql-computation-llvm + yql-minikql-computation yql-parser-pg_catalog providers-common-codec api-protos diff --git a/ydb/library/mkql_proto/protos/CMakeLists.darwin-arm64.txt b/ydb/library/mkql_proto/protos/CMakeLists.darwin-arm64.txt index 68671e8b3962..ba43d0115725 100644 --- a/ydb/library/mkql_proto/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/mkql_proto/protos/CMakeLists.darwin-arm64.txt @@ -38,6 +38,10 @@ target_link_libraries(library-mkql_proto-protos PUBLIC target_proto_messages(library-mkql_proto-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/mkql_proto/protos/minikql.proto ) +target_sources(library-mkql_proto-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/mkql_proto/protos/minikql.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/mkql_proto/protos/minikql.grpc.pb.h +) target_proto_addincls(library-mkql_proto-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/mkql_proto/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/mkql_proto/protos/CMakeLists.darwin-x86_64.txt index 68671e8b3962..ba43d0115725 100644 --- a/ydb/library/mkql_proto/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/mkql_proto/protos/CMakeLists.darwin-x86_64.txt @@ -38,6 +38,10 @@ target_link_libraries(library-mkql_proto-protos PUBLIC target_proto_messages(library-mkql_proto-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/mkql_proto/protos/minikql.proto ) +target_sources(library-mkql_proto-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/mkql_proto/protos/minikql.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/mkql_proto/protos/minikql.grpc.pb.h +) target_proto_addincls(library-mkql_proto-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/mkql_proto/protos/CMakeLists.linux-aarch64.txt b/ydb/library/mkql_proto/protos/CMakeLists.linux-aarch64.txt index 4ba81eed8a31..c31cc65de313 100644 --- a/ydb/library/mkql_proto/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/mkql_proto/protos/CMakeLists.linux-aarch64.txt @@ -39,6 +39,10 @@ target_link_libraries(library-mkql_proto-protos PUBLIC target_proto_messages(library-mkql_proto-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/mkql_proto/protos/minikql.proto ) +target_sources(library-mkql_proto-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/mkql_proto/protos/minikql.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/mkql_proto/protos/minikql.grpc.pb.h +) target_proto_addincls(library-mkql_proto-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/mkql_proto/protos/CMakeLists.linux-x86_64.txt b/ydb/library/mkql_proto/protos/CMakeLists.linux-x86_64.txt index 4ba81eed8a31..c31cc65de313 100644 --- a/ydb/library/mkql_proto/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/mkql_proto/protos/CMakeLists.linux-x86_64.txt @@ -39,6 +39,10 @@ target_link_libraries(library-mkql_proto-protos PUBLIC target_proto_messages(library-mkql_proto-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/mkql_proto/protos/minikql.proto ) +target_sources(library-mkql_proto-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/mkql_proto/protos/minikql.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/mkql_proto/protos/minikql.grpc.pb.h +) target_proto_addincls(library-mkql_proto-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/mkql_proto/protos/CMakeLists.windows-x86_64.txt b/ydb/library/mkql_proto/protos/CMakeLists.windows-x86_64.txt index 68671e8b3962..ba43d0115725 100644 --- a/ydb/library/mkql_proto/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/mkql_proto/protos/CMakeLists.windows-x86_64.txt @@ -38,6 +38,10 @@ target_link_libraries(library-mkql_proto-protos PUBLIC target_proto_messages(library-mkql_proto-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/mkql_proto/protos/minikql.proto ) +target_sources(library-mkql_proto-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/mkql_proto/protos/minikql.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/mkql_proto/protos/minikql.grpc.pb.h +) target_proto_addincls(library-mkql_proto-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/mkql_proto/ut/CMakeLists.darwin-arm64.txt b/ydb/library/mkql_proto/ut/CMakeLists.darwin-arm64.txt index 86919d88b785..4fbccfbf185f 100644 --- a/ydb/library/mkql_proto/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/mkql_proto/ut/CMakeLists.darwin-arm64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-library-mkql_proto-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-mkql_proto-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/mkql_proto/mkql_proto_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/mkql_proto/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/mkql_proto/ut/CMakeLists.darwin-x86_64.txt index 6a14ff38ce92..1c07499f2851 100644 --- a/ydb/library/mkql_proto/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/mkql_proto/ut/CMakeLists.darwin-x86_64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-library-mkql_proto-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-mkql_proto-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/mkql_proto/mkql_proto_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/mkql_proto/ut/CMakeLists.linux-aarch64.txt b/ydb/library/mkql_proto/ut/CMakeLists.linux-aarch64.txt index 0c46b134beee..e2eb944c22da 100644 --- a/ydb/library/mkql_proto/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/mkql_proto/ut/CMakeLists.linux-aarch64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-library-mkql_proto-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-mkql_proto-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/mkql_proto/mkql_proto_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/mkql_proto/ut/CMakeLists.linux-x86_64.txt b/ydb/library/mkql_proto/ut/CMakeLists.linux-x86_64.txt index a58fe535e504..eea32713cc8f 100644 --- a/ydb/library/mkql_proto/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/mkql_proto/ut/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-library-mkql_proto-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-mkql_proto-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/mkql_proto/mkql_proto_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/mkql_proto/ut/CMakeLists.windows-x86_64.txt b/ydb/library/mkql_proto/ut/CMakeLists.windows-x86_64.txt index 6e6659d2ff87..86ff2b66492e 100644 --- a/ydb/library/mkql_proto/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/mkql_proto/ut/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/mkql_proto/ut/helpers/CMakeLists.darwin-arm64.txt b/ydb/library/mkql_proto/ut/helpers/CMakeLists.darwin-arm64.txt index 3b9fd31457e3..f319a4127d3a 100644 --- a/ydb/library/mkql_proto/ut/helpers/CMakeLists.darwin-arm64.txt +++ b/ydb/library/mkql_proto/ut/helpers/CMakeLists.darwin-arm64.txt @@ -14,7 +14,7 @@ target_compile_options(mkql_proto-ut-helpers PRIVATE target_link_libraries(mkql_proto-ut-helpers PUBLIC contrib-libs-cxxsupp yutil - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 cpp-testing-unittest contrib-libs-protobuf ) diff --git a/ydb/library/mkql_proto/ut/helpers/CMakeLists.darwin-x86_64.txt b/ydb/library/mkql_proto/ut/helpers/CMakeLists.darwin-x86_64.txt index 3b9fd31457e3..f319a4127d3a 100644 --- a/ydb/library/mkql_proto/ut/helpers/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/mkql_proto/ut/helpers/CMakeLists.darwin-x86_64.txt @@ -14,7 +14,7 @@ target_compile_options(mkql_proto-ut-helpers PRIVATE target_link_libraries(mkql_proto-ut-helpers PUBLIC contrib-libs-cxxsupp yutil - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 cpp-testing-unittest contrib-libs-protobuf ) diff --git a/ydb/library/mkql_proto/ut/helpers/CMakeLists.linux-aarch64.txt b/ydb/library/mkql_proto/ut/helpers/CMakeLists.linux-aarch64.txt index 6d03f280d270..a94a50327a41 100644 --- a/ydb/library/mkql_proto/ut/helpers/CMakeLists.linux-aarch64.txt +++ b/ydb/library/mkql_proto/ut/helpers/CMakeLists.linux-aarch64.txt @@ -15,7 +15,7 @@ target_link_libraries(mkql_proto-ut-helpers PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 cpp-testing-unittest contrib-libs-protobuf ) diff --git a/ydb/library/mkql_proto/ut/helpers/CMakeLists.linux-x86_64.txt b/ydb/library/mkql_proto/ut/helpers/CMakeLists.linux-x86_64.txt index 6d03f280d270..a94a50327a41 100644 --- a/ydb/library/mkql_proto/ut/helpers/CMakeLists.linux-x86_64.txt +++ b/ydb/library/mkql_proto/ut/helpers/CMakeLists.linux-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(mkql_proto-ut-helpers PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 cpp-testing-unittest contrib-libs-protobuf ) diff --git a/ydb/library/mkql_proto/ut/helpers/CMakeLists.windows-x86_64.txt b/ydb/library/mkql_proto/ut/helpers/CMakeLists.windows-x86_64.txt index 3b9fd31457e3..f319a4127d3a 100644 --- a/ydb/library/mkql_proto/ut/helpers/CMakeLists.windows-x86_64.txt +++ b/ydb/library/mkql_proto/ut/helpers/CMakeLists.windows-x86_64.txt @@ -14,7 +14,7 @@ target_compile_options(mkql_proto-ut-helpers PRIVATE target_link_libraries(mkql_proto-ut-helpers PUBLIC contrib-libs-cxxsupp yutil - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 cpp-testing-unittest contrib-libs-protobuf ) diff --git a/ydb/library/naming_conventions/ut/CMakeLists.darwin-arm64.txt b/ydb/library/naming_conventions/ut/CMakeLists.darwin-arm64.txt index 9ab69002f731..11ad1f72b95f 100644 --- a/ydb/library/naming_conventions/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/naming_conventions/ut/CMakeLists.darwin-arm64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/naming_conventions/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/naming_conventions/ut/CMakeLists.darwin-x86_64.txt index 69a85ebc7405..bd27396ee821 100644 --- a/ydb/library/naming_conventions/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/naming_conventions/ut/CMakeLists.darwin-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/naming_conventions/ut/CMakeLists.linux-aarch64.txt b/ydb/library/naming_conventions/ut/CMakeLists.linux-aarch64.txt index 044e2ccb4ea6..6ee33773668f 100644 --- a/ydb/library/naming_conventions/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/naming_conventions/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-naming_conventions-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-naming_conventions-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/naming_conventions/ut/naming_conventions_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/naming_conventions/ut/CMakeLists.linux-x86_64.txt b/ydb/library/naming_conventions/ut/CMakeLists.linux-x86_64.txt index 24a509798b67..6bd7dd97aefa 100644 --- a/ydb/library/naming_conventions/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/naming_conventions/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-naming_conventions-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-naming_conventions-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/naming_conventions/ut/naming_conventions_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/naming_conventions/ut/CMakeLists.windows-x86_64.txt b/ydb/library/naming_conventions/ut/CMakeLists.windows-x86_64.txt index 4ffcb893d616..a16110b390dc 100644 --- a/ydb/library/naming_conventions/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/naming_conventions/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/pdisk_io/CMakeLists.darwin-arm64.txt b/ydb/library/pdisk_io/CMakeLists.darwin-arm64.txt index f29001c38650..771d0ae2cdbe 100644 --- a/ydb/library/pdisk_io/CMakeLists.darwin-arm64.txt +++ b/ydb/library/pdisk_io/CMakeLists.darwin-arm64.txt @@ -26,6 +26,12 @@ target_link_libraries(ydb-library-pdisk_io PUBLIC library-pdisk_io-protos ) target_sources(ydb-library-pdisk_io PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/buffers.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/device_type.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/drivedata.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/sector_map.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/wcache.h ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio_mtp.cpp ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/file_params_darwin.cpp ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio.cpp diff --git a/ydb/library/pdisk_io/CMakeLists.darwin-x86_64.txt b/ydb/library/pdisk_io/CMakeLists.darwin-x86_64.txt index f29001c38650..771d0ae2cdbe 100644 --- a/ydb/library/pdisk_io/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/pdisk_io/CMakeLists.darwin-x86_64.txt @@ -26,6 +26,12 @@ target_link_libraries(ydb-library-pdisk_io PUBLIC library-pdisk_io-protos ) target_sources(ydb-library-pdisk_io PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/buffers.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/device_type.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/drivedata.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/sector_map.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/wcache.h ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio_mtp.cpp ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/file_params_darwin.cpp ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio.cpp diff --git a/ydb/library/pdisk_io/CMakeLists.linux-aarch64.txt b/ydb/library/pdisk_io/CMakeLists.linux-aarch64.txt index 41331b6eabff..1caf9e924c92 100644 --- a/ydb/library/pdisk_io/CMakeLists.linux-aarch64.txt +++ b/ydb/library/pdisk_io/CMakeLists.linux-aarch64.txt @@ -30,6 +30,12 @@ target_link_libraries(ydb-library-pdisk_io PUBLIC library-pdisk_io-protos ) target_sources(ydb-library-pdisk_io PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/buffers.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/device_type.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/drivedata.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/sector_map.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/wcache.h ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio_linux.cpp ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/file_params_linux.cpp ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio.cpp diff --git a/ydb/library/pdisk_io/CMakeLists.linux-x86_64.txt b/ydb/library/pdisk_io/CMakeLists.linux-x86_64.txt index 41331b6eabff..1caf9e924c92 100644 --- a/ydb/library/pdisk_io/CMakeLists.linux-x86_64.txt +++ b/ydb/library/pdisk_io/CMakeLists.linux-x86_64.txt @@ -30,6 +30,12 @@ target_link_libraries(ydb-library-pdisk_io PUBLIC library-pdisk_io-protos ) target_sources(ydb-library-pdisk_io PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/buffers.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/device_type.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/drivedata.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/sector_map.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/wcache.h ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio_linux.cpp ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/file_params_linux.cpp ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio.cpp diff --git a/ydb/library/pdisk_io/CMakeLists.windows-x86_64.txt b/ydb/library/pdisk_io/CMakeLists.windows-x86_64.txt index c168c9e90875..7107409c336a 100644 --- a/ydb/library/pdisk_io/CMakeLists.windows-x86_64.txt +++ b/ydb/library/pdisk_io/CMakeLists.windows-x86_64.txt @@ -26,6 +26,12 @@ target_link_libraries(ydb-library-pdisk_io PUBLIC library-pdisk_io-protos ) target_sources(ydb-library-pdisk_io PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/buffers.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/device_type.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/drivedata.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/sector_map.h + ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/wcache.h ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio_mtp.cpp ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/file_params_win.cpp ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/aio.cpp diff --git a/ydb/library/pdisk_io/device_type.h b/ydb/library/pdisk_io/device_type.h index c4e8bdc59b71..ed5c77ff5612 100644 --- a/ydb/library/pdisk_io/device_type.h +++ b/ydb/library/pdisk_io/device_type.h @@ -19,6 +19,7 @@ namespace NKikimr::NPDisk { ui64 LastSectorReadBytesPerSec; ui64 FirstSectorWriteBytesPerSec; ui64 LastSectorWriteBytesPerSec; + ui64 BurstThresholdNs; }; const static std::unordered_map<EDeviceType, TDevicePerformanceParams> DevicePerformance = { @@ -28,27 +29,31 @@ namespace NKikimr::NPDisk { .LastSectorReadBytesPerSec = 0, .FirstSectorWriteBytesPerSec = 0, .LastSectorWriteBytesPerSec = 0, + .BurstThresholdNs = 1'000'000'000, } }, { DEVICE_TYPE_ROT, TDevicePerformanceParams{ - .SeekTimeNs = 9000, + .SeekTimeNs = 8000000, .FirstSectorReadBytesPerSec = 200ull * 1024 * 1024, .LastSectorReadBytesPerSec = 66ull * 1024 * 1024, .FirstSectorWriteBytesPerSec = 200ull * 1024 * 1024, .LastSectorWriteBytesPerSec = 66ull * 1024 * 1024, + .BurstThresholdNs = 200'000'000, } }, { DEVICE_TYPE_SSD, TDevicePerformanceParams{ - .SeekTimeNs = 0, + .SeekTimeNs = 40000, .FirstSectorReadBytesPerSec = 500ull * 1024 * 1024, .LastSectorReadBytesPerSec = 500ull * 1024 * 1024, .FirstSectorWriteBytesPerSec = 500ull * 1024 * 1024, .LastSectorWriteBytesPerSec = 500ull * 1024 * 1024, + .BurstThresholdNs = 50'000'000, } }, { DEVICE_TYPE_NVME, TDevicePerformanceParams{ - .SeekTimeNs = 0, + .SeekTimeNs = 40000, .FirstSectorReadBytesPerSec = 1000ull * 1024 * 1024, .LastSectorReadBytesPerSec = 1000ull * 1024 * 1024, .FirstSectorWriteBytesPerSec = 1000ull * 1024 * 1024, .LastSectorWriteBytesPerSec = 1000ull * 1024 * 1024, + .BurstThresholdNs = 32'000'000, } }, }; diff --git a/ydb/library/pdisk_io/protos/CMakeLists.darwin-arm64.txt b/ydb/library/pdisk_io/protos/CMakeLists.darwin-arm64.txt index ffdbd27becae..e22904c0231f 100644 --- a/ydb/library/pdisk_io/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/pdisk_io/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-pdisk_io-protos PUBLIC target_proto_messages(library-pdisk_io-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/protos/sector_map.proto ) +target_sources(library-pdisk_io-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/pdisk_io/protos/sector_map.pb.h +) target_proto_addincls(library-pdisk_io-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/pdisk_io/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/pdisk_io/protos/CMakeLists.darwin-x86_64.txt index ffdbd27becae..e22904c0231f 100644 --- a/ydb/library/pdisk_io/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/pdisk_io/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-pdisk_io-protos PUBLIC target_proto_messages(library-pdisk_io-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/protos/sector_map.proto ) +target_sources(library-pdisk_io-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/pdisk_io/protos/sector_map.pb.h +) target_proto_addincls(library-pdisk_io-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/pdisk_io/protos/CMakeLists.linux-aarch64.txt b/ydb/library/pdisk_io/protos/CMakeLists.linux-aarch64.txt index 725db4dd9a85..8bc2048abc54 100644 --- a/ydb/library/pdisk_io/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/pdisk_io/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(library-pdisk_io-protos PUBLIC target_proto_messages(library-pdisk_io-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/protos/sector_map.proto ) +target_sources(library-pdisk_io-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/pdisk_io/protos/sector_map.pb.h +) target_proto_addincls(library-pdisk_io-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/pdisk_io/protos/CMakeLists.linux-x86_64.txt b/ydb/library/pdisk_io/protos/CMakeLists.linux-x86_64.txt index 725db4dd9a85..8bc2048abc54 100644 --- a/ydb/library/pdisk_io/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/pdisk_io/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(library-pdisk_io-protos PUBLIC target_proto_messages(library-pdisk_io-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/protos/sector_map.proto ) +target_sources(library-pdisk_io-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/pdisk_io/protos/sector_map.pb.h +) target_proto_addincls(library-pdisk_io-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/pdisk_io/protos/CMakeLists.windows-x86_64.txt b/ydb/library/pdisk_io/protos/CMakeLists.windows-x86_64.txt index ffdbd27becae..e22904c0231f 100644 --- a/ydb/library/pdisk_io/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/pdisk_io/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-pdisk_io-protos PUBLIC target_proto_messages(library-pdisk_io-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/pdisk_io/protos/sector_map.proto ) +target_sources(library-pdisk_io-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/pdisk_io/protos/sector_map.pb.h +) target_proto_addincls(library-pdisk_io-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/pdisk_io/sector_map.h b/ydb/library/pdisk_io/sector_map.h index a66e68fe40eb..9b918ea215ff 100644 --- a/ydb/library/pdisk_io/sector_map.h +++ b/ydb/library/pdisk_io/sector_map.h @@ -114,7 +114,7 @@ class TSectorOperationThrottler { Y_ABORT_UNLESS((ui32)diskMode < DM_COUNT); EDeviceType deviceType = DiskModeToDeviceType(diskMode); - DiskModeParams.SeekSleepMicroSeconds = DevicePerformance.at(deviceType).SeekTimeNs; + DiskModeParams.SeekSleepMicroSeconds = (DevicePerformance.at(deviceType).SeekTimeNs + 1000) / 1000 - 1; DiskModeParams.FirstSectorReadRate = DevicePerformance.at(deviceType).FirstSectorReadBytesPerSec; DiskModeParams.LastSectorReadRate = DevicePerformance.at(deviceType).LastSectorReadBytesPerSec; DiskModeParams.FirstSectorWriteRate = DevicePerformance.at(deviceType).FirstSectorWriteBytesPerSec; diff --git a/ydb/library/persqueue/counter_time_keeper/CMakeLists.darwin-arm64.txt b/ydb/library/persqueue/counter_time_keeper/CMakeLists.darwin-arm64.txt index c620fd394bbb..ebfa9160aa8c 100644 --- a/ydb/library/persqueue/counter_time_keeper/CMakeLists.darwin-arm64.txt +++ b/ydb/library/persqueue/counter_time_keeper/CMakeLists.darwin-arm64.txt @@ -16,5 +16,6 @@ target_link_libraries(library-persqueue-counter_time_keeper PUBLIC ydb-core-protos ) target_sources(library-persqueue-counter_time_keeper PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/counter_time_keeper/counter_time_keeper.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/counter_time_keeper/counter_time_keeper.cpp ) diff --git a/ydb/library/persqueue/counter_time_keeper/CMakeLists.darwin-x86_64.txt b/ydb/library/persqueue/counter_time_keeper/CMakeLists.darwin-x86_64.txt index c620fd394bbb..ebfa9160aa8c 100644 --- a/ydb/library/persqueue/counter_time_keeper/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/persqueue/counter_time_keeper/CMakeLists.darwin-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(library-persqueue-counter_time_keeper PUBLIC ydb-core-protos ) target_sources(library-persqueue-counter_time_keeper PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/counter_time_keeper/counter_time_keeper.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/counter_time_keeper/counter_time_keeper.cpp ) diff --git a/ydb/library/persqueue/counter_time_keeper/CMakeLists.linux-aarch64.txt b/ydb/library/persqueue/counter_time_keeper/CMakeLists.linux-aarch64.txt index 1bb5d2972fff..9011130bc42c 100644 --- a/ydb/library/persqueue/counter_time_keeper/CMakeLists.linux-aarch64.txt +++ b/ydb/library/persqueue/counter_time_keeper/CMakeLists.linux-aarch64.txt @@ -17,5 +17,6 @@ target_link_libraries(library-persqueue-counter_time_keeper PUBLIC ydb-core-protos ) target_sources(library-persqueue-counter_time_keeper PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/counter_time_keeper/counter_time_keeper.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/counter_time_keeper/counter_time_keeper.cpp ) diff --git a/ydb/library/persqueue/counter_time_keeper/CMakeLists.linux-x86_64.txt b/ydb/library/persqueue/counter_time_keeper/CMakeLists.linux-x86_64.txt index 1bb5d2972fff..9011130bc42c 100644 --- a/ydb/library/persqueue/counter_time_keeper/CMakeLists.linux-x86_64.txt +++ b/ydb/library/persqueue/counter_time_keeper/CMakeLists.linux-x86_64.txt @@ -17,5 +17,6 @@ target_link_libraries(library-persqueue-counter_time_keeper PUBLIC ydb-core-protos ) target_sources(library-persqueue-counter_time_keeper PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/counter_time_keeper/counter_time_keeper.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/counter_time_keeper/counter_time_keeper.cpp ) diff --git a/ydb/library/persqueue/counter_time_keeper/CMakeLists.windows-x86_64.txt b/ydb/library/persqueue/counter_time_keeper/CMakeLists.windows-x86_64.txt index c620fd394bbb..ebfa9160aa8c 100644 --- a/ydb/library/persqueue/counter_time_keeper/CMakeLists.windows-x86_64.txt +++ b/ydb/library/persqueue/counter_time_keeper/CMakeLists.windows-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(library-persqueue-counter_time_keeper PUBLIC ydb-core-protos ) target_sources(library-persqueue-counter_time_keeper PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/counter_time_keeper/counter_time_keeper.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/counter_time_keeper/counter_time_keeper.cpp ) diff --git a/ydb/library/persqueue/obfuscate/CMakeLists.darwin-arm64.txt b/ydb/library/persqueue/obfuscate/CMakeLists.darwin-arm64.txt index 02f21933a905..b6e8fc060f01 100644 --- a/ydb/library/persqueue/obfuscate/CMakeLists.darwin-arm64.txt +++ b/ydb/library/persqueue/obfuscate/CMakeLists.darwin-arm64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-persqueue-obfuscate PUBLIC yutil ) target_sources(library-persqueue-obfuscate PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/obfuscate/obfuscate.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/obfuscate/obfuscate.cpp ) diff --git a/ydb/library/persqueue/obfuscate/CMakeLists.darwin-x86_64.txt b/ydb/library/persqueue/obfuscate/CMakeLists.darwin-x86_64.txt index 02f21933a905..b6e8fc060f01 100644 --- a/ydb/library/persqueue/obfuscate/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/persqueue/obfuscate/CMakeLists.darwin-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-persqueue-obfuscate PUBLIC yutil ) target_sources(library-persqueue-obfuscate PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/obfuscate/obfuscate.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/obfuscate/obfuscate.cpp ) diff --git a/ydb/library/persqueue/obfuscate/CMakeLists.linux-aarch64.txt b/ydb/library/persqueue/obfuscate/CMakeLists.linux-aarch64.txt index 9b03ab9bc577..2268efd2ac65 100644 --- a/ydb/library/persqueue/obfuscate/CMakeLists.linux-aarch64.txt +++ b/ydb/library/persqueue/obfuscate/CMakeLists.linux-aarch64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-persqueue-obfuscate PUBLIC yutil ) target_sources(library-persqueue-obfuscate PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/obfuscate/obfuscate.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/obfuscate/obfuscate.cpp ) diff --git a/ydb/library/persqueue/obfuscate/CMakeLists.linux-x86_64.txt b/ydb/library/persqueue/obfuscate/CMakeLists.linux-x86_64.txt index 9b03ab9bc577..2268efd2ac65 100644 --- a/ydb/library/persqueue/obfuscate/CMakeLists.linux-x86_64.txt +++ b/ydb/library/persqueue/obfuscate/CMakeLists.linux-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-persqueue-obfuscate PUBLIC yutil ) target_sources(library-persqueue-obfuscate PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/obfuscate/obfuscate.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/obfuscate/obfuscate.cpp ) diff --git a/ydb/library/persqueue/obfuscate/CMakeLists.windows-x86_64.txt b/ydb/library/persqueue/obfuscate/CMakeLists.windows-x86_64.txt index 02f21933a905..b6e8fc060f01 100644 --- a/ydb/library/persqueue/obfuscate/CMakeLists.windows-x86_64.txt +++ b/ydb/library/persqueue/obfuscate/CMakeLists.windows-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-persqueue-obfuscate PUBLIC yutil ) target_sources(library-persqueue-obfuscate PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/obfuscate/obfuscate.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/obfuscate/obfuscate.cpp ) diff --git a/ydb/library/persqueue/topic_parser/CMakeLists.darwin-arm64.txt b/ydb/library/persqueue/topic_parser/CMakeLists.darwin-arm64.txt index b53684c776db..14da9cbf85b7 100644 --- a/ydb/library/persqueue/topic_parser/CMakeLists.darwin-arm64.txt +++ b/ydb/library/persqueue/topic_parser/CMakeLists.darwin-arm64.txt @@ -17,6 +17,9 @@ target_link_libraries(library-persqueue-topic_parser PUBLIC api-protos ) target_sources(library-persqueue-topic_parser PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/topic_parser.h + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/counters.h + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/type_definitions.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/topic_parser.cpp ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/counters.cpp ) diff --git a/ydb/library/persqueue/topic_parser/CMakeLists.darwin-x86_64.txt b/ydb/library/persqueue/topic_parser/CMakeLists.darwin-x86_64.txt index b53684c776db..14da9cbf85b7 100644 --- a/ydb/library/persqueue/topic_parser/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/persqueue/topic_parser/CMakeLists.darwin-x86_64.txt @@ -17,6 +17,9 @@ target_link_libraries(library-persqueue-topic_parser PUBLIC api-protos ) target_sources(library-persqueue-topic_parser PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/topic_parser.h + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/counters.h + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/type_definitions.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/topic_parser.cpp ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/counters.cpp ) diff --git a/ydb/library/persqueue/topic_parser/CMakeLists.linux-aarch64.txt b/ydb/library/persqueue/topic_parser/CMakeLists.linux-aarch64.txt index 337eb74e3b1a..3e060753d822 100644 --- a/ydb/library/persqueue/topic_parser/CMakeLists.linux-aarch64.txt +++ b/ydb/library/persqueue/topic_parser/CMakeLists.linux-aarch64.txt @@ -18,6 +18,9 @@ target_link_libraries(library-persqueue-topic_parser PUBLIC api-protos ) target_sources(library-persqueue-topic_parser PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/topic_parser.h + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/counters.h + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/type_definitions.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/topic_parser.cpp ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/counters.cpp ) diff --git a/ydb/library/persqueue/topic_parser/CMakeLists.linux-x86_64.txt b/ydb/library/persqueue/topic_parser/CMakeLists.linux-x86_64.txt index 337eb74e3b1a..3e060753d822 100644 --- a/ydb/library/persqueue/topic_parser/CMakeLists.linux-x86_64.txt +++ b/ydb/library/persqueue/topic_parser/CMakeLists.linux-x86_64.txt @@ -18,6 +18,9 @@ target_link_libraries(library-persqueue-topic_parser PUBLIC api-protos ) target_sources(library-persqueue-topic_parser PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/topic_parser.h + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/counters.h + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/type_definitions.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/topic_parser.cpp ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/counters.cpp ) diff --git a/ydb/library/persqueue/topic_parser/CMakeLists.windows-x86_64.txt b/ydb/library/persqueue/topic_parser/CMakeLists.windows-x86_64.txt index b53684c776db..14da9cbf85b7 100644 --- a/ydb/library/persqueue/topic_parser/CMakeLists.windows-x86_64.txt +++ b/ydb/library/persqueue/topic_parser/CMakeLists.windows-x86_64.txt @@ -17,6 +17,9 @@ target_link_libraries(library-persqueue-topic_parser PUBLIC api-protos ) target_sources(library-persqueue-topic_parser PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/topic_parser.h + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/counters.h + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/type_definitions.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/topic_parser.cpp ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/counters.cpp ) diff --git a/ydb/library/persqueue/topic_parser/topic_parser.cpp b/ydb/library/persqueue/topic_parser/topic_parser.cpp index 680ea2b871ae..dec46a7d8034 100644 --- a/ydb/library/persqueue/topic_parser/topic_parser.cpp +++ b/ydb/library/persqueue/topic_parser/topic_parser.cpp @@ -320,7 +320,7 @@ bool TDiscoveryConverter::BuildFromFederationPath(const TString& rootPrefix) { auto res = topic.TrySplit("/", fst, snd); CHECK_SET_VALID(res, TStringBuilder() << "Could not split federation path: " << OriginalTopic, return false); Account_ = fst; - + if (!ParseModernPath(snd)) return false; if (!BuildFromShortModernName()) { @@ -341,7 +341,7 @@ bool TDiscoveryConverter::BuildFromFederationPath(const TString& rootPrefix) { bool TDiscoveryConverter::TryParseModernMirroredPath(TStringBuf path) { if (!path.Contains("-mirrored-from-")) { - CHECK_SET_VALID(!path.Contains("mirrored-from"), "Federation topics cannot contain 'mirrored-from' in name unless this is a mirrored topic", return false); + CHECK_SET_VALID(!path.Contains("mirrored-from"), "Federation topics cannot contain 'mirrored-from' in name unless this is a mirrored topic", return false); return false; } TStringBuf fst, snd; @@ -447,7 +447,7 @@ bool TDiscoveryConverter::BuildFromLegacyName(const TString& rootPrefix, bool fo return false); } if (Dc.empty() && !hasDcInName) { - CHECK_SET_VALID(!FstClass, TStringBuilder() << "Internal error: FirstClass mode enabled, but trying to parse Legacy-style name: " + 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", @@ -466,7 +466,7 @@ bool TDiscoveryConverter::BuildFromLegacyName(const TString& rootPrefix, bool fo Dc = fst; topic = snd; } else { - CHECK_SET_VALID(!Dc.empty(), TStringBuilder() << "Internal error: Could not determine DC (despite beleiving the name contins one) for topic " + 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; @@ -513,7 +513,7 @@ bool TDiscoveryConverter::BuildFromLegacyName(const TString& rootPrefix, bool fo topicName = topic; } modernName << topicName; - CHECK_SET_VALID(!Dc.empty(), TStringBuilder() << "Internal error: Could not determine DC for topic: " + CHECK_SET_VALID(!Dc.empty(), TStringBuilder() << "Internal error: Could not determine DC for topic: " << OriginalTopic, return false); bool isMirrored = (!LocalDc.empty() && Dc != LocalDc); @@ -522,7 +522,7 @@ bool TDiscoveryConverter::BuildFromLegacyName(const TString& rootPrefix, bool fo } else { fullModernName << topicName; } - CHECK_SET_VALID(!fullLegacyName.empty(), TStringBuilder() << "Could not form a full legacy name for topic: " + CHECK_SET_VALID(!fullLegacyName.empty(), TStringBuilder() << "Could not form a full legacy name for topic: " << OriginalTopic, return false); ShortLegacyName = shortLegacyName; @@ -669,21 +669,7 @@ TTopicConverterPtr TTopicNameConverter::ForFederation( if (!res->IsValid()) { return res; } - if (parsed) { - Y_ABORT_UNLESS(!res->Dc.empty()); - if (!localDc.empty() && localDc == res->Dc) { - res->Valid = false; - res->Reason = TStringBuilder() << "Topic in modern mirrored-like style: " << schemeName - << " cannot be created in the same cluster " << res->Dc; - return res; - } - } if (isLocal) { - if(parsed) { - res->Valid = false; - res->Reason = TStringBuilder() << "Topic in modern mirrored-like style: " << schemeName << ", created as local"; - return res; - } if (localDc.empty()) { res->Valid = false; res->Reason = "Local DC option is mandatory when creating local modern-style topic"; @@ -694,7 +680,8 @@ TTopicConverterPtr TTopicNameConverter::ForFederation( if (!ok) { return res; } - } else { + } + else { if (!parsed) { res->Valid = false; res->Reason = TStringBuilder() << "Topic in modern style with non-mirrored-name: " << schemeName @@ -943,4 +930,3 @@ TConverterFactoryPtr TTopicsListController::GetConverterFactory() const { }; } // namespace NPersQueue - diff --git a/ydb/library/persqueue/topic_parser/ut/CMakeLists.darwin-arm64.txt b/ydb/library/persqueue/topic_parser/ut/CMakeLists.darwin-arm64.txt index ccd343ccd90f..f2cf15ef7b00 100644 --- a/ydb/library/persqueue/topic_parser/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/persqueue/topic_parser/ut/CMakeLists.darwin-arm64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-library-persqueue-topic_parser-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-persqueue-topic_parser-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/ut/topic_names_converter_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/persqueue/topic_parser/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/persqueue/topic_parser/ut/CMakeLists.darwin-x86_64.txt index 643028fb1b4b..13ced15781aa 100644 --- a/ydb/library/persqueue/topic_parser/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/persqueue/topic_parser/ut/CMakeLists.darwin-x86_64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-library-persqueue-topic_parser-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-persqueue-topic_parser-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/ut/topic_names_converter_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/persqueue/topic_parser/ut/CMakeLists.linux-aarch64.txt b/ydb/library/persqueue/topic_parser/ut/CMakeLists.linux-aarch64.txt index c79bb4de324d..e4b55d816c71 100644 --- a/ydb/library/persqueue/topic_parser/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/persqueue/topic_parser/ut/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-library-persqueue-topic_parser-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-persqueue-topic_parser-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/ut/topic_names_converter_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/persqueue/topic_parser/ut/CMakeLists.linux-x86_64.txt b/ydb/library/persqueue/topic_parser/ut/CMakeLists.linux-x86_64.txt index cb2538b72461..b067f609192e 100644 --- a/ydb/library/persqueue/topic_parser/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/persqueue/topic_parser/ut/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-library-persqueue-topic_parser-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-persqueue-topic_parser-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser/ut/topic_names_converter_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/persqueue/topic_parser/ut/CMakeLists.windows-x86_64.txt b/ydb/library/persqueue/topic_parser/ut/CMakeLists.windows-x86_64.txt index 8f72dc9b39d9..fa1ecfbf523b 100644 --- a/ydb/library/persqueue/topic_parser/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/persqueue/topic_parser/ut/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 55f28de809b4..a71bddd43aaf 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 @@ -175,7 +175,7 @@ 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" ); @@ -431,10 +431,11 @@ Y_UNIT_TEST_SUITE(TopicNameConverterForCPTest) { ); UNIT_ASSERT(!converter->IsValid()); + // this is valid, corresponding check relaxed converter = TTopicNameConverter::ForFederation( "", "", "topic-mirrored-from-sas", "/LbCommunal/account", "/LbCommunal/account", true, "sas", "account" ); - UNIT_ASSERT(!converter->IsValid()); + UNIT_ASSERT(converter->IsValid()); converter = TTopicNameConverter::ForFederation( "", "", "topic-mirrored-from-", "/LbCommunal/account", "/LbCommunal/account", true, "sas", "account" diff --git a/ydb/library/persqueue/topic_parser_public/CMakeLists.darwin-arm64.txt b/ydb/library/persqueue/topic_parser_public/CMakeLists.darwin-arm64.txt index b6e8e1156adb..24be802ff972 100644 --- a/ydb/library/persqueue/topic_parser_public/CMakeLists.darwin-arm64.txt +++ b/ydb/library/persqueue/topic_parser_public/CMakeLists.darwin-arm64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-persqueue-topic_parser_public PUBLIC yutil ) target_sources(library-persqueue-topic_parser_public PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser_public/topic_parser.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser_public/topic_parser.cpp ) diff --git a/ydb/library/persqueue/topic_parser_public/CMakeLists.darwin-x86_64.txt b/ydb/library/persqueue/topic_parser_public/CMakeLists.darwin-x86_64.txt index b6e8e1156adb..24be802ff972 100644 --- a/ydb/library/persqueue/topic_parser_public/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/persqueue/topic_parser_public/CMakeLists.darwin-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-persqueue-topic_parser_public PUBLIC yutil ) target_sources(library-persqueue-topic_parser_public PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser_public/topic_parser.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser_public/topic_parser.cpp ) diff --git a/ydb/library/persqueue/topic_parser_public/CMakeLists.linux-aarch64.txt b/ydb/library/persqueue/topic_parser_public/CMakeLists.linux-aarch64.txt index 851cc4226813..a7943ddde6cd 100644 --- a/ydb/library/persqueue/topic_parser_public/CMakeLists.linux-aarch64.txt +++ b/ydb/library/persqueue/topic_parser_public/CMakeLists.linux-aarch64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-persqueue-topic_parser_public PUBLIC yutil ) target_sources(library-persqueue-topic_parser_public PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser_public/topic_parser.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser_public/topic_parser.cpp ) diff --git a/ydb/library/persqueue/topic_parser_public/CMakeLists.linux-x86_64.txt b/ydb/library/persqueue/topic_parser_public/CMakeLists.linux-x86_64.txt index 851cc4226813..a7943ddde6cd 100644 --- a/ydb/library/persqueue/topic_parser_public/CMakeLists.linux-x86_64.txt +++ b/ydb/library/persqueue/topic_parser_public/CMakeLists.linux-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-persqueue-topic_parser_public PUBLIC yutil ) target_sources(library-persqueue-topic_parser_public PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser_public/topic_parser.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser_public/topic_parser.cpp ) diff --git a/ydb/library/persqueue/topic_parser_public/CMakeLists.windows-x86_64.txt b/ydb/library/persqueue/topic_parser_public/CMakeLists.windows-x86_64.txt index b6e8e1156adb..24be802ff972 100644 --- a/ydb/library/persqueue/topic_parser_public/CMakeLists.windows-x86_64.txt +++ b/ydb/library/persqueue/topic_parser_public/CMakeLists.windows-x86_64.txt @@ -13,5 +13,6 @@ target_link_libraries(library-persqueue-topic_parser_public PUBLIC yutil ) target_sources(library-persqueue-topic_parser_public PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser_public/topic_parser.h ${CMAKE_SOURCE_DIR}/ydb/library/persqueue/topic_parser_public/topic_parser.cpp ) diff --git a/ydb/library/protobuf_printer/ut/CMakeLists.darwin-arm64.txt b/ydb/library/protobuf_printer/ut/CMakeLists.darwin-arm64.txt index 62e52c03ce91..0da37e5dd45b 100644 --- a/ydb/library/protobuf_printer/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/protobuf_printer/ut/CMakeLists.darwin-arm64.txt @@ -34,13 +34,12 @@ target_link_options(ydb-library-protobuf_printer-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_proto_messages(ydb-library-protobuf_printer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/ut/test_proto.proto ) target_sources(ydb-library-protobuf_printer-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/protobuf_printer/ut/test_proto.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/protobuf_printer_ut.cpp ) set_property( @@ -68,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/protobuf_printer/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/protobuf_printer/ut/CMakeLists.darwin-x86_64.txt index 1d31ccfea560..fa1c3d630498 100644 --- a/ydb/library/protobuf_printer/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/protobuf_printer/ut/CMakeLists.darwin-x86_64.txt @@ -35,13 +35,12 @@ target_link_options(ydb-library-protobuf_printer-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_proto_messages(ydb-library-protobuf_printer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/ut/test_proto.proto ) target_sources(ydb-library-protobuf_printer-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/protobuf_printer/ut/test_proto.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/protobuf_printer_ut.cpp ) set_property( @@ -69,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/protobuf_printer/ut/CMakeLists.linux-aarch64.txt b/ydb/library/protobuf_printer/ut/CMakeLists.linux-aarch64.txt index 74632f5235db..bb7f22b5bf01 100644 --- a/ydb/library/protobuf_printer/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/protobuf_printer/ut/CMakeLists.linux-aarch64.txt @@ -37,14 +37,12 @@ target_link_options(ydb-library-protobuf_printer-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_proto_messages(ydb-library-protobuf_printer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/ut/test_proto.proto ) target_sources(ydb-library-protobuf_printer-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/protobuf_printer/ut/test_proto.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/protobuf_printer_ut.cpp ) set_property( @@ -72,6 +70,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/protobuf_printer/ut/CMakeLists.linux-x86_64.txt b/ydb/library/protobuf_printer/ut/CMakeLists.linux-x86_64.txt index 3026af5d12b2..bd9171805e29 100644 --- a/ydb/library/protobuf_printer/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/protobuf_printer/ut/CMakeLists.linux-x86_64.txt @@ -38,14 +38,12 @@ target_link_options(ydb-library-protobuf_printer-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_proto_messages(ydb-library-protobuf_printer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/ut/test_proto.proto ) target_sources(ydb-library-protobuf_printer-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/protobuf_printer/ut/test_proto.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/protobuf_printer_ut.cpp ) set_property( @@ -73,6 +71,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/protobuf_printer/ut/CMakeLists.windows-x86_64.txt b/ydb/library/protobuf_printer/ut/CMakeLists.windows-x86_64.txt index 88b46f478546..3717c0b7a3e5 100644 --- a/ydb/library/protobuf_printer/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/protobuf_printer/ut/CMakeLists.windows-x86_64.txt @@ -35,6 +35,7 @@ target_proto_messages(ydb-library-protobuf_printer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/ut/test_proto.proto ) target_sources(ydb-library-protobuf_printer-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/protobuf_printer/ut/test_proto.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/protobuf_printer/protobuf_printer_ut.cpp ) set_property( @@ -62,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/query_actor/ut/CMakeLists.darwin-arm64.txt b/ydb/library/query_actor/ut/CMakeLists.darwin-arm64.txt index 7228ab62d98a..a943cbb00b7f 100644 --- a/ydb/library/query_actor/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/query_actor/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-library-query_actor-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-query_actor-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/query_actor/query_actor_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/query_actor/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/query_actor/ut/CMakeLists.darwin-x86_64.txt index 91813befa170..78fb218b6fc4 100644 --- a/ydb/library/query_actor/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/query_actor/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-library-query_actor-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-query_actor-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/query_actor/query_actor_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/query_actor/ut/CMakeLists.linux-aarch64.txt b/ydb/library/query_actor/ut/CMakeLists.linux-aarch64.txt index 3cebe53773cc..ed22b9345006 100644 --- a/ydb/library/query_actor/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/query_actor/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-library-query_actor-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-query_actor-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/query_actor/query_actor_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/query_actor/ut/CMakeLists.linux-x86_64.txt b/ydb/library/query_actor/ut/CMakeLists.linux-x86_64.txt index e3a9e50c8b25..2b42f4fa1541 100644 --- a/ydb/library/query_actor/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/query_actor/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-library-query_actor-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-query_actor-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/query_actor/query_actor_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/query_actor/ut/CMakeLists.windows-x86_64.txt b/ydb/library/query_actor/ut/CMakeLists.windows-x86_64.txt index cc1ab4d175de..d949278664b6 100644 --- a/ydb/library/query_actor/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/query_actor/ut/CMakeLists.windows-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/rewrapper/proto/CMakeLists.darwin-arm64.txt b/ydb/library/rewrapper/proto/CMakeLists.darwin-arm64.txt index 118580ff4cf0..5a3794dea5a7 100644 --- a/ydb/library/rewrapper/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/rewrapper/proto/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-rewrapper-proto PUBLIC target_proto_messages(library-rewrapper-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/rewrapper/proto/serialization.proto ) +target_sources(library-rewrapper-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/rewrapper/proto/serialization.pb.h +) target_proto_addincls(library-rewrapper-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/rewrapper/proto/CMakeLists.darwin-x86_64.txt b/ydb/library/rewrapper/proto/CMakeLists.darwin-x86_64.txt index 118580ff4cf0..5a3794dea5a7 100644 --- a/ydb/library/rewrapper/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/rewrapper/proto/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-rewrapper-proto PUBLIC target_proto_messages(library-rewrapper-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/rewrapper/proto/serialization.proto ) +target_sources(library-rewrapper-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/rewrapper/proto/serialization.pb.h +) target_proto_addincls(library-rewrapper-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/rewrapper/proto/CMakeLists.linux-aarch64.txt b/ydb/library/rewrapper/proto/CMakeLists.linux-aarch64.txt index 0bfb5e568442..c441c264d481 100644 --- a/ydb/library/rewrapper/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/rewrapper/proto/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(library-rewrapper-proto PUBLIC target_proto_messages(library-rewrapper-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/rewrapper/proto/serialization.proto ) +target_sources(library-rewrapper-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/rewrapper/proto/serialization.pb.h +) target_proto_addincls(library-rewrapper-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/rewrapper/proto/CMakeLists.linux-x86_64.txt b/ydb/library/rewrapper/proto/CMakeLists.linux-x86_64.txt index 0bfb5e568442..c441c264d481 100644 --- a/ydb/library/rewrapper/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/rewrapper/proto/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(library-rewrapper-proto PUBLIC target_proto_messages(library-rewrapper-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/rewrapper/proto/serialization.proto ) +target_sources(library-rewrapper-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/rewrapper/proto/serialization.pb.h +) target_proto_addincls(library-rewrapper-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/rewrapper/proto/CMakeLists.windows-x86_64.txt b/ydb/library/rewrapper/proto/CMakeLists.windows-x86_64.txt index 118580ff4cf0..5a3794dea5a7 100644 --- a/ydb/library/rewrapper/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/rewrapper/proto/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-rewrapper-proto PUBLIC target_proto_messages(library-rewrapper-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/rewrapper/proto/serialization.proto ) +target_sources(library-rewrapper-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/rewrapper/proto/serialization.pb.h +) target_proto_addincls(library-rewrapper-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/schlab/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/CMakeLists.darwin-arm64.txt index 35b5487e79e7..d266ae4e2ec4 100644 --- a/ydb/library/schlab/CMakeLists.darwin-arm64.txt +++ b/ydb/library/schlab/CMakeLists.darwin-arm64.txt @@ -21,5 +21,7 @@ target_link_libraries(ydb-library-schlab PUBLIC library-schlab-schine ) target_sources(ydb-library-schlab PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schlab_actor.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schlab_actor.cpp ) diff --git a/ydb/library/schlab/CMakeLists.darwin-x86_64.txt b/ydb/library/schlab/CMakeLists.darwin-x86_64.txt index 35b5487e79e7..d266ae4e2ec4 100644 --- a/ydb/library/schlab/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/schlab/CMakeLists.darwin-x86_64.txt @@ -21,5 +21,7 @@ target_link_libraries(ydb-library-schlab PUBLIC library-schlab-schine ) target_sources(ydb-library-schlab PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schlab_actor.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schlab_actor.cpp ) diff --git a/ydb/library/schlab/CMakeLists.linux-aarch64.txt b/ydb/library/schlab/CMakeLists.linux-aarch64.txt index 4ce9056fc0e4..84c3a1d1ab8c 100644 --- a/ydb/library/schlab/CMakeLists.linux-aarch64.txt +++ b/ydb/library/schlab/CMakeLists.linux-aarch64.txt @@ -22,5 +22,7 @@ target_link_libraries(ydb-library-schlab PUBLIC library-schlab-schine ) target_sources(ydb-library-schlab PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schlab_actor.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schlab_actor.cpp ) diff --git a/ydb/library/schlab/CMakeLists.linux-x86_64.txt b/ydb/library/schlab/CMakeLists.linux-x86_64.txt index 4ce9056fc0e4..84c3a1d1ab8c 100644 --- a/ydb/library/schlab/CMakeLists.linux-x86_64.txt +++ b/ydb/library/schlab/CMakeLists.linux-x86_64.txt @@ -22,5 +22,7 @@ target_link_libraries(ydb-library-schlab PUBLIC library-schlab-schine ) target_sources(ydb-library-schlab PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schlab_actor.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schlab_actor.cpp ) diff --git a/ydb/library/schlab/CMakeLists.windows-x86_64.txt b/ydb/library/schlab/CMakeLists.windows-x86_64.txt index 35b5487e79e7..d266ae4e2ec4 100644 --- a/ydb/library/schlab/CMakeLists.windows-x86_64.txt +++ b/ydb/library/schlab/CMakeLists.windows-x86_64.txt @@ -21,5 +21,7 @@ target_link_libraries(ydb-library-schlab PUBLIC library-schlab-schine ) target_sources(ydb-library-schlab PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schlab_actor.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schlab_actor.cpp ) diff --git a/ydb/library/schlab/mon/test/CMakeLists.linux-aarch64.txt b/ydb/library/schlab/mon/test/CMakeLists.linux-aarch64.txt index 361782b7648c..0afc23a9499b 100644 --- a/ydb/library/schlab/mon/test/CMakeLists.linux-aarch64.txt +++ b/ydb/library/schlab/mon/test/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(mon-test PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(mon-test PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/test/test.cpp diff --git a/ydb/library/schlab/mon/test/CMakeLists.linux-x86_64.txt b/ydb/library/schlab/mon/test/CMakeLists.linux-x86_64.txt index 983fa552f322..aba84a74d3ca 100644 --- a/ydb/library/schlab/mon/test/CMakeLists.linux-x86_64.txt +++ b/ydb/library/schlab/mon/test/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(mon-test PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(mon-test PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/schlab/mon/test/test.cpp diff --git a/ydb/library/schlab/probes/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/probes/CMakeLists.darwin-arm64.txt index 357d4c0baf1a..5d891bcc7095 100644 --- a/ydb/library/schlab/probes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/schlab/probes/CMakeLists.darwin-arm64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-schlab-probes PUBLIC library-cpp-lwtrace ) target_sources(library-schlab-probes PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/probes/probes.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/probes/probes.cpp ) diff --git a/ydb/library/schlab/probes/CMakeLists.darwin-x86_64.txt b/ydb/library/schlab/probes/CMakeLists.darwin-x86_64.txt index 357d4c0baf1a..5d891bcc7095 100644 --- a/ydb/library/schlab/probes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/schlab/probes/CMakeLists.darwin-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-schlab-probes PUBLIC library-cpp-lwtrace ) target_sources(library-schlab-probes PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/probes/probes.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/probes/probes.cpp ) diff --git a/ydb/library/schlab/probes/CMakeLists.linux-aarch64.txt b/ydb/library/schlab/probes/CMakeLists.linux-aarch64.txt index ef987e0506a9..c404968f8b65 100644 --- a/ydb/library/schlab/probes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/schlab/probes/CMakeLists.linux-aarch64.txt @@ -15,5 +15,6 @@ target_link_libraries(library-schlab-probes PUBLIC library-cpp-lwtrace ) target_sources(library-schlab-probes PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/probes/probes.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/probes/probes.cpp ) diff --git a/ydb/library/schlab/probes/CMakeLists.linux-x86_64.txt b/ydb/library/schlab/probes/CMakeLists.linux-x86_64.txt index ef987e0506a9..c404968f8b65 100644 --- a/ydb/library/schlab/probes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/schlab/probes/CMakeLists.linux-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(library-schlab-probes PUBLIC library-cpp-lwtrace ) target_sources(library-schlab-probes PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/probes/probes.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/probes/probes.cpp ) diff --git a/ydb/library/schlab/probes/CMakeLists.windows-x86_64.txt b/ydb/library/schlab/probes/CMakeLists.windows-x86_64.txt index 357d4c0baf1a..5d891bcc7095 100644 --- a/ydb/library/schlab/probes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/schlab/probes/CMakeLists.windows-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(library-schlab-probes PUBLIC library-cpp-lwtrace ) target_sources(library-schlab-probes PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/probes/probes.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/probes/probes.cpp ) diff --git a/ydb/library/schlab/protos/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/protos/CMakeLists.darwin-arm64.txt index 8e9addba1359..826f68068a60 100644 --- a/ydb/library/schlab/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/schlab/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-schlab-protos PUBLIC target_proto_messages(library-schlab-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/schlab/protos/schlab.proto ) +target_sources(library-schlab-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/schlab/protos/schlab.pb.h +) target_proto_addincls(library-schlab-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/schlab/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/schlab/protos/CMakeLists.darwin-x86_64.txt index 8e9addba1359..826f68068a60 100644 --- a/ydb/library/schlab/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/schlab/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-schlab-protos PUBLIC target_proto_messages(library-schlab-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/schlab/protos/schlab.proto ) +target_sources(library-schlab-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/schlab/protos/schlab.pb.h +) target_proto_addincls(library-schlab-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/schlab/protos/CMakeLists.linux-aarch64.txt b/ydb/library/schlab/protos/CMakeLists.linux-aarch64.txt index 0523a3a5a8e6..a477c9203898 100644 --- a/ydb/library/schlab/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/schlab/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(library-schlab-protos PUBLIC target_proto_messages(library-schlab-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/schlab/protos/schlab.proto ) +target_sources(library-schlab-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/schlab/protos/schlab.pb.h +) target_proto_addincls(library-schlab-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/schlab/protos/CMakeLists.linux-x86_64.txt b/ydb/library/schlab/protos/CMakeLists.linux-x86_64.txt index 0523a3a5a8e6..a477c9203898 100644 --- a/ydb/library/schlab/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/schlab/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(library-schlab-protos PUBLIC target_proto_messages(library-schlab-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/schlab/protos/schlab.proto ) +target_sources(library-schlab-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/schlab/protos/schlab.pb.h +) target_proto_addincls(library-schlab-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/schlab/protos/CMakeLists.windows-x86_64.txt b/ydb/library/schlab/protos/CMakeLists.windows-x86_64.txt index 8e9addba1359..826f68068a60 100644 --- a/ydb/library/schlab/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/schlab/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(library-schlab-protos PUBLIC target_proto_messages(library-schlab-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/schlab/protos/schlab.proto ) +target_sources(library-schlab-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/schlab/protos/schlab.pb.h +) target_proto_addincls(library-schlab-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/schlab/schemu/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/schemu/CMakeLists.darwin-arm64.txt index 007223c328db..7e3ff8947078 100644 --- a/ydb/library/schlab/schemu/CMakeLists.darwin-arm64.txt +++ b/ydb/library/schlab/schemu/CMakeLists.darwin-arm64.txt @@ -15,5 +15,7 @@ target_link_libraries(library-schlab-schemu PUBLIC library-schlab-schoot ) target_sources(library-schlab-schemu PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/schemu.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/schemu.cpp ) diff --git a/ydb/library/schlab/schemu/CMakeLists.darwin-x86_64.txt b/ydb/library/schlab/schemu/CMakeLists.darwin-x86_64.txt index 007223c328db..7e3ff8947078 100644 --- a/ydb/library/schlab/schemu/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/schlab/schemu/CMakeLists.darwin-x86_64.txt @@ -15,5 +15,7 @@ target_link_libraries(library-schlab-schemu PUBLIC library-schlab-schoot ) target_sources(library-schlab-schemu PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/schemu.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/schemu.cpp ) diff --git a/ydb/library/schlab/schemu/CMakeLists.linux-aarch64.txt b/ydb/library/schlab/schemu/CMakeLists.linux-aarch64.txt index ef80cbd3ea61..e986e313e7eb 100644 --- a/ydb/library/schlab/schemu/CMakeLists.linux-aarch64.txt +++ b/ydb/library/schlab/schemu/CMakeLists.linux-aarch64.txt @@ -16,5 +16,7 @@ target_link_libraries(library-schlab-schemu PUBLIC library-schlab-schoot ) target_sources(library-schlab-schemu PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/schemu.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/schemu.cpp ) diff --git a/ydb/library/schlab/schemu/CMakeLists.linux-x86_64.txt b/ydb/library/schlab/schemu/CMakeLists.linux-x86_64.txt index ef80cbd3ea61..e986e313e7eb 100644 --- a/ydb/library/schlab/schemu/CMakeLists.linux-x86_64.txt +++ b/ydb/library/schlab/schemu/CMakeLists.linux-x86_64.txt @@ -16,5 +16,7 @@ target_link_libraries(library-schlab-schemu PUBLIC library-schlab-schoot ) target_sources(library-schlab-schemu PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/schemu.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/schemu.cpp ) diff --git a/ydb/library/schlab/schemu/CMakeLists.windows-x86_64.txt b/ydb/library/schlab/schemu/CMakeLists.windows-x86_64.txt index 007223c328db..7e3ff8947078 100644 --- a/ydb/library/schlab/schemu/CMakeLists.windows-x86_64.txt +++ b/ydb/library/schlab/schemu/CMakeLists.windows-x86_64.txt @@ -15,5 +15,7 @@ target_link_libraries(library-schlab-schemu PUBLIC library-schlab-schoot ) target_sources(library-schlab-schemu PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/schemu.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schemu/schemu.cpp ) diff --git a/ydb/library/schlab/schine/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/schine/CMakeLists.darwin-arm64.txt index 9ab206f78598..6610fdd75235 100644 --- a/ydb/library/schlab/schine/CMakeLists.darwin-arm64.txt +++ b/ydb/library/schlab/schine/CMakeLists.darwin-arm64.txt @@ -17,6 +17,18 @@ target_link_libraries(library-schlab-schine PUBLIC library-schlab-probes ) target_sources(library-schlab-schine PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/bin_log.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_bin.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_state.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job_kind.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job_state.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/name_table.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/scheduler.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/schlog.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/schlog_frame.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs.cpp ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_bin.cpp ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_state.cpp diff --git a/ydb/library/schlab/schine/CMakeLists.darwin-x86_64.txt b/ydb/library/schlab/schine/CMakeLists.darwin-x86_64.txt index 9ab206f78598..6610fdd75235 100644 --- a/ydb/library/schlab/schine/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/schlab/schine/CMakeLists.darwin-x86_64.txt @@ -17,6 +17,18 @@ target_link_libraries(library-schlab-schine PUBLIC library-schlab-probes ) target_sources(library-schlab-schine PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/bin_log.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_bin.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_state.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job_kind.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job_state.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/name_table.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/scheduler.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/schlog.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/schlog_frame.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs.cpp ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_bin.cpp ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_state.cpp diff --git a/ydb/library/schlab/schine/CMakeLists.linux-aarch64.txt b/ydb/library/schlab/schine/CMakeLists.linux-aarch64.txt index cf733641cc95..3c07cf374235 100644 --- a/ydb/library/schlab/schine/CMakeLists.linux-aarch64.txt +++ b/ydb/library/schlab/schine/CMakeLists.linux-aarch64.txt @@ -18,6 +18,18 @@ target_link_libraries(library-schlab-schine PUBLIC library-schlab-probes ) target_sources(library-schlab-schine PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/bin_log.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_bin.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_state.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job_kind.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job_state.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/name_table.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/scheduler.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/schlog.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/schlog_frame.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs.cpp ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_bin.cpp ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_state.cpp diff --git a/ydb/library/schlab/schine/CMakeLists.linux-x86_64.txt b/ydb/library/schlab/schine/CMakeLists.linux-x86_64.txt index cf733641cc95..3c07cf374235 100644 --- a/ydb/library/schlab/schine/CMakeLists.linux-x86_64.txt +++ b/ydb/library/schlab/schine/CMakeLists.linux-x86_64.txt @@ -18,6 +18,18 @@ target_link_libraries(library-schlab-schine PUBLIC library-schlab-probes ) target_sources(library-schlab-schine PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/bin_log.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_bin.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_state.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job_kind.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job_state.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/name_table.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/scheduler.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/schlog.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/schlog_frame.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs.cpp ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_bin.cpp ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_state.cpp diff --git a/ydb/library/schlab/schine/CMakeLists.windows-x86_64.txt b/ydb/library/schlab/schine/CMakeLists.windows-x86_64.txt index 9ab206f78598..6610fdd75235 100644 --- a/ydb/library/schlab/schine/CMakeLists.windows-x86_64.txt +++ b/ydb/library/schlab/schine/CMakeLists.windows-x86_64.txt @@ -17,6 +17,18 @@ target_link_libraries(library-schlab-schine PUBLIC library-schlab-probes ) target_sources(library-schlab-schine PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/bin_log.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_bin.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_state.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job_kind.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/job_state.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/name_table.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/scheduler.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/schlog.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/schlog_frame.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs.cpp ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_bin.cpp ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schine/cbs_state.cpp diff --git a/ydb/library/schlab/schoot/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/schoot/CMakeLists.darwin-arm64.txt index f4ef52b638a5..fb04df420493 100644 --- a/ydb/library/schlab/schoot/CMakeLists.darwin-arm64.txt +++ b/ydb/library/schlab/schoot/CMakeLists.darwin-arm64.txt @@ -16,6 +16,9 @@ target_link_libraries(library-schlab-schoot PUBLIC library-schlab-protos ) target_sources(library-schlab-schoot PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen_cfg.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen.cpp ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen_cfg.cpp ) diff --git a/ydb/library/schlab/schoot/CMakeLists.darwin-x86_64.txt b/ydb/library/schlab/schoot/CMakeLists.darwin-x86_64.txt index f4ef52b638a5..fb04df420493 100644 --- a/ydb/library/schlab/schoot/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/schlab/schoot/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(library-schlab-schoot PUBLIC library-schlab-protos ) target_sources(library-schlab-schoot PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen_cfg.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen.cpp ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen_cfg.cpp ) diff --git a/ydb/library/schlab/schoot/CMakeLists.linux-aarch64.txt b/ydb/library/schlab/schoot/CMakeLists.linux-aarch64.txt index 91952ef4ad63..4bcc0689005b 100644 --- a/ydb/library/schlab/schoot/CMakeLists.linux-aarch64.txt +++ b/ydb/library/schlab/schoot/CMakeLists.linux-aarch64.txt @@ -17,6 +17,9 @@ target_link_libraries(library-schlab-schoot PUBLIC library-schlab-protos ) target_sources(library-schlab-schoot PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen_cfg.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen.cpp ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen_cfg.cpp ) diff --git a/ydb/library/schlab/schoot/CMakeLists.linux-x86_64.txt b/ydb/library/schlab/schoot/CMakeLists.linux-x86_64.txt index 91952ef4ad63..4bcc0689005b 100644 --- a/ydb/library/schlab/schoot/CMakeLists.linux-x86_64.txt +++ b/ydb/library/schlab/schoot/CMakeLists.linux-x86_64.txt @@ -17,6 +17,9 @@ target_link_libraries(library-schlab-schoot PUBLIC library-schlab-protos ) target_sources(library-schlab-schoot PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen_cfg.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen.cpp ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen_cfg.cpp ) diff --git a/ydb/library/schlab/schoot/CMakeLists.windows-x86_64.txt b/ydb/library/schlab/schoot/CMakeLists.windows-x86_64.txt index f4ef52b638a5..fb04df420493 100644 --- a/ydb/library/schlab/schoot/CMakeLists.windows-x86_64.txt +++ b/ydb/library/schlab/schoot/CMakeLists.windows-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(library-schlab-schoot PUBLIC library-schlab-protos ) target_sources(library-schlab-schoot PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen.h + ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen_cfg.h ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen.cpp ${CMAKE_SOURCE_DIR}/ydb/library/schlab/schoot/schoot_gen_cfg.cpp ) diff --git a/ydb/library/schlab/ut/CMakeLists.darwin-arm64.txt b/ydb/library/schlab/ut/CMakeLists.darwin-arm64.txt index 5571c2c3f4c6..6108b2b5f9ab 100644 --- a/ydb/library/schlab/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/schlab/ut/CMakeLists.darwin-arm64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/schlab/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/schlab/ut/CMakeLists.darwin-x86_64.txt index 4cf50db6313e..3b0017f1bd31 100644 --- a/ydb/library/schlab/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/schlab/ut/CMakeLists.darwin-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/schlab/ut/CMakeLists.linux-aarch64.txt b/ydb/library/schlab/ut/CMakeLists.linux-aarch64.txt index c21377f43e87..3f12c8044697 100644 --- a/ydb/library/schlab/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/schlab/ut/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(ydb-library-schlab-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-schlab-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/schlab/ut/schlab_ut.cpp @@ -53,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/schlab/ut/CMakeLists.linux-x86_64.txt b/ydb/library/schlab/ut/CMakeLists.linux-x86_64.txt index a17d30fdc098..ed6ba467271e 100644 --- a/ydb/library/schlab/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/schlab/ut/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(ydb-library-schlab-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-schlab-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/schlab/ut/schlab_ut.cpp @@ -54,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/schlab/ut/CMakeLists.windows-x86_64.txt b/ydb/library/schlab/ut/CMakeLists.windows-x86_64.txt index 9c41d779fd6d..370e30110bf3 100644 --- a/ydb/library/schlab/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/schlab/ut/CMakeLists.windows-x86_64.txt @@ -43,6 +43,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/security/ut/CMakeLists.darwin-arm64.txt b/ydb/library/security/ut/CMakeLists.darwin-arm64.txt index 1792e6fdaf2b..bb2f73c30b7b 100644 --- a/ydb/library/security/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/security/ut/CMakeLists.darwin-arm64.txt @@ -18,8 +18,6 @@ target_link_options(ydb-library-security-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-security-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/security/ut/util_ut.cpp @@ -49,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/security/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/security/ut/CMakeLists.darwin-x86_64.txt index c3a8502e388c..92d5db30ed93 100644 --- a/ydb/library/security/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/security/ut/CMakeLists.darwin-x86_64.txt @@ -19,8 +19,6 @@ target_link_options(ydb-library-security-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-security-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/security/ut/util_ut.cpp @@ -50,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/security/ut/CMakeLists.linux-aarch64.txt b/ydb/library/security/ut/CMakeLists.linux-aarch64.txt index 3968731ceace..f2ad29f1e2dc 100644 --- a/ydb/library/security/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/security/ut/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(ydb-library-security-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-security-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/security/ut/util_ut.cpp @@ -53,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/security/ut/CMakeLists.linux-x86_64.txt b/ydb/library/security/ut/CMakeLists.linux-x86_64.txt index 2f3e40cb5fa3..23e85da2a148 100644 --- a/ydb/library/security/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/security/ut/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(ydb-library-security-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-security-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/security/ut/util_ut.cpp @@ -54,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/security/ut/CMakeLists.windows-x86_64.txt b/ydb/library/security/ut/CMakeLists.windows-x86_64.txt index ffde3def909e..d912cc51650e 100644 --- a/ydb/library/security/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/security/ut/CMakeLists.windows-x86_64.txt @@ -43,6 +43,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/services/CMakeLists.darwin-arm64.txt b/ydb/library/services/CMakeLists.darwin-arm64.txt index bd9c4cc13df2..a7633bb60963 100644 --- a/ydb/library/services/CMakeLists.darwin-arm64.txt +++ b/ydb/library/services/CMakeLists.darwin-arm64.txt @@ -38,6 +38,10 @@ target_link_libraries(ydb-library-services PUBLIC target_proto_messages(ydb-library-services PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/services/services.proto ) +target_sources(ydb-library-services PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/services/services.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/services/services.grpc.pb.h +) target_proto_addincls(ydb-library-services ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/services/CMakeLists.darwin-x86_64.txt b/ydb/library/services/CMakeLists.darwin-x86_64.txt index bd9c4cc13df2..a7633bb60963 100644 --- a/ydb/library/services/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/services/CMakeLists.darwin-x86_64.txt @@ -38,6 +38,10 @@ target_link_libraries(ydb-library-services PUBLIC target_proto_messages(ydb-library-services PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/services/services.proto ) +target_sources(ydb-library-services PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/services/services.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/services/services.grpc.pb.h +) target_proto_addincls(ydb-library-services ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/services/CMakeLists.linux-aarch64.txt b/ydb/library/services/CMakeLists.linux-aarch64.txt index 3b4686c0b4a9..e50a1f6b29c0 100644 --- a/ydb/library/services/CMakeLists.linux-aarch64.txt +++ b/ydb/library/services/CMakeLists.linux-aarch64.txt @@ -39,6 +39,10 @@ target_link_libraries(ydb-library-services PUBLIC target_proto_messages(ydb-library-services PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/services/services.proto ) +target_sources(ydb-library-services PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/services/services.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/services/services.grpc.pb.h +) target_proto_addincls(ydb-library-services ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/services/CMakeLists.linux-x86_64.txt b/ydb/library/services/CMakeLists.linux-x86_64.txt index 3b4686c0b4a9..e50a1f6b29c0 100644 --- a/ydb/library/services/CMakeLists.linux-x86_64.txt +++ b/ydb/library/services/CMakeLists.linux-x86_64.txt @@ -39,6 +39,10 @@ target_link_libraries(ydb-library-services PUBLIC target_proto_messages(ydb-library-services PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/services/services.proto ) +target_sources(ydb-library-services PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/services/services.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/services/services.grpc.pb.h +) target_proto_addincls(ydb-library-services ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/services/CMakeLists.windows-x86_64.txt b/ydb/library/services/CMakeLists.windows-x86_64.txt index bd9c4cc13df2..a7633bb60963 100644 --- a/ydb/library/services/CMakeLists.windows-x86_64.txt +++ b/ydb/library/services/CMakeLists.windows-x86_64.txt @@ -38,6 +38,10 @@ target_link_libraries(ydb-library-services PUBLIC target_proto_messages(ydb-library-services PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/services/services.proto ) +target_sources(ydb-library-services PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/services/services.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/services/services.grpc.pb.h +) target_proto_addincls(ydb-library-services ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/services/services.proto b/ydb/library/services/services.proto index 92c8eccd3357..686aac9bbff0 100644 --- a/ydb/library/services/services.proto +++ b/ydb/library/services/services.proto @@ -72,6 +72,7 @@ enum EServiceKikimr { TX_COLUMNSHARD = 332; BLOB_CACHE = 333; TX_COLUMNSHARD_SCAN = 334; + TX_COLUMNSHARD_SCAN_MEMORY = 335; // BLOBSTORAGE again BS_HANDOFF = 298; @@ -375,6 +376,7 @@ enum EServiceKikimr { EXT_INDEX = 1900; TX_CONVEYOR = 2000; + TX_LIMITER=2001; ARROW_HELPER = 2100; KAFKA_PROXY = 2200; @@ -1018,5 +1020,6 @@ message TActivity { GRAPH_SERVICE = 624; REPLICATION_WORKER = 625; SCHEMESHARD_BACKGROUND_CLEANING = 626; + JAEGER_TRACING_CONFIGURATOR = 627; }; }; diff --git a/ydb/library/table_creator/CMakeLists.darwin-arm64.txt b/ydb/library/table_creator/CMakeLists.darwin-arm64.txt index f312fda6ba8d..5c91af3a07d3 100644 --- a/ydb/library/table_creator/CMakeLists.darwin-arm64.txt +++ b/ydb/library/table_creator/CMakeLists.darwin-arm64.txt @@ -20,5 +20,6 @@ target_link_libraries(ydb-library-table_creator PUBLIC library-actors-core ) target_sources(ydb-library-table_creator PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/table_creator/table_creator.h ${CMAKE_SOURCE_DIR}/ydb/library/table_creator/table_creator.cpp ) diff --git a/ydb/library/table_creator/CMakeLists.darwin-x86_64.txt b/ydb/library/table_creator/CMakeLists.darwin-x86_64.txt index f312fda6ba8d..5c91af3a07d3 100644 --- a/ydb/library/table_creator/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/table_creator/CMakeLists.darwin-x86_64.txt @@ -20,5 +20,6 @@ target_link_libraries(ydb-library-table_creator PUBLIC library-actors-core ) target_sources(ydb-library-table_creator PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/table_creator/table_creator.h ${CMAKE_SOURCE_DIR}/ydb/library/table_creator/table_creator.cpp ) diff --git a/ydb/library/table_creator/CMakeLists.linux-aarch64.txt b/ydb/library/table_creator/CMakeLists.linux-aarch64.txt index 260264f39f2d..6a1740ecbb09 100644 --- a/ydb/library/table_creator/CMakeLists.linux-aarch64.txt +++ b/ydb/library/table_creator/CMakeLists.linux-aarch64.txt @@ -21,5 +21,6 @@ target_link_libraries(ydb-library-table_creator PUBLIC library-actors-core ) target_sources(ydb-library-table_creator PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/table_creator/table_creator.h ${CMAKE_SOURCE_DIR}/ydb/library/table_creator/table_creator.cpp ) diff --git a/ydb/library/table_creator/CMakeLists.linux-x86_64.txt b/ydb/library/table_creator/CMakeLists.linux-x86_64.txt index 260264f39f2d..6a1740ecbb09 100644 --- a/ydb/library/table_creator/CMakeLists.linux-x86_64.txt +++ b/ydb/library/table_creator/CMakeLists.linux-x86_64.txt @@ -21,5 +21,6 @@ target_link_libraries(ydb-library-table_creator PUBLIC library-actors-core ) target_sources(ydb-library-table_creator PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/table_creator/table_creator.h ${CMAKE_SOURCE_DIR}/ydb/library/table_creator/table_creator.cpp ) diff --git a/ydb/library/table_creator/CMakeLists.windows-x86_64.txt b/ydb/library/table_creator/CMakeLists.windows-x86_64.txt index f312fda6ba8d..5c91af3a07d3 100644 --- a/ydb/library/table_creator/CMakeLists.windows-x86_64.txt +++ b/ydb/library/table_creator/CMakeLists.windows-x86_64.txt @@ -20,5 +20,6 @@ target_link_libraries(ydb-library-table_creator PUBLIC library-actors-core ) target_sources(ydb-library-table_creator PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/table_creator/table_creator.h ${CMAKE_SOURCE_DIR}/ydb/library/table_creator/table_creator.cpp ) diff --git a/ydb/library/table_creator/ut/CMakeLists.darwin-arm64.txt b/ydb/library/table_creator/ut/CMakeLists.darwin-arm64.txt index 151f8503df54..be1006ed6849 100644 --- a/ydb/library/table_creator/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/table_creator/ut/CMakeLists.darwin-arm64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-library-table_creator-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-table_creator-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/table_creator/table_creator_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/table_creator/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/table_creator/ut/CMakeLists.darwin-x86_64.txt index 8ef3f73c1b94..f3f21e07433b 100644 --- a/ydb/library/table_creator/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/table_creator/ut/CMakeLists.darwin-x86_64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-library-table_creator-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-table_creator-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/table_creator/table_creator_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/table_creator/ut/CMakeLists.linux-aarch64.txt b/ydb/library/table_creator/ut/CMakeLists.linux-aarch64.txt index 947f86769d04..be66b9b3857e 100644 --- a/ydb/library/table_creator/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/table_creator/ut/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-library-table_creator-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-table_creator-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/table_creator/table_creator_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/table_creator/ut/CMakeLists.linux-x86_64.txt b/ydb/library/table_creator/ut/CMakeLists.linux-x86_64.txt index f81d6bb00e14..4f7f00b2f9f4 100644 --- a/ydb/library/table_creator/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/table_creator/ut/CMakeLists.linux-x86_64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-library-table_creator-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-table_creator-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/table_creator/table_creator_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/table_creator/ut/CMakeLists.windows-x86_64.txt b/ydb/library/table_creator/ut/CMakeLists.windows-x86_64.txt index 2f38ae2535bc..3f8e116cea1c 100644 --- a/ydb/library/table_creator/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/table_creator/ut/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/testlib/service_mocks/CMakeLists.darwin-arm64.txt b/ydb/library/testlib/service_mocks/CMakeLists.darwin-arm64.txt index b452859068f8..a609c8b22ab1 100644 --- a/ydb/library/testlib/service_mocks/CMakeLists.darwin-arm64.txt +++ b/ydb/library/testlib/service_mocks/CMakeLists.darwin-arm64.txt @@ -13,7 +13,17 @@ target_link_libraries(library-testlib-service_mocks INTERFACE contrib-libs-cxxsupp yutil client-yc_private-servicecontrol + client-yc_private-accessservice api-grpc-draft client-yc_private-resourcemanager client-yc_private-iam ) +target_sources(library-testlib-service_mocks INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/access_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/datastreams_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/folder_service_transitional_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/folder_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/iam_token_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/service_account_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/user_account_service_mock.h +) diff --git a/ydb/library/testlib/service_mocks/CMakeLists.darwin-x86_64.txt b/ydb/library/testlib/service_mocks/CMakeLists.darwin-x86_64.txt index b452859068f8..a609c8b22ab1 100644 --- a/ydb/library/testlib/service_mocks/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/testlib/service_mocks/CMakeLists.darwin-x86_64.txt @@ -13,7 +13,17 @@ target_link_libraries(library-testlib-service_mocks INTERFACE contrib-libs-cxxsupp yutil client-yc_private-servicecontrol + client-yc_private-accessservice api-grpc-draft client-yc_private-resourcemanager client-yc_private-iam ) +target_sources(library-testlib-service_mocks INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/access_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/datastreams_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/folder_service_transitional_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/folder_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/iam_token_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/service_account_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/user_account_service_mock.h +) diff --git a/ydb/library/testlib/service_mocks/CMakeLists.linux-aarch64.txt b/ydb/library/testlib/service_mocks/CMakeLists.linux-aarch64.txt index d676c2c8c13a..d3dfc5991511 100644 --- a/ydb/library/testlib/service_mocks/CMakeLists.linux-aarch64.txt +++ b/ydb/library/testlib/service_mocks/CMakeLists.linux-aarch64.txt @@ -14,7 +14,17 @@ target_link_libraries(library-testlib-service_mocks INTERFACE contrib-libs-cxxsupp yutil client-yc_private-servicecontrol + client-yc_private-accessservice api-grpc-draft client-yc_private-resourcemanager client-yc_private-iam ) +target_sources(library-testlib-service_mocks INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/access_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/datastreams_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/folder_service_transitional_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/folder_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/iam_token_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/service_account_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/user_account_service_mock.h +) diff --git a/ydb/library/testlib/service_mocks/CMakeLists.linux-x86_64.txt b/ydb/library/testlib/service_mocks/CMakeLists.linux-x86_64.txt index d676c2c8c13a..d3dfc5991511 100644 --- a/ydb/library/testlib/service_mocks/CMakeLists.linux-x86_64.txt +++ b/ydb/library/testlib/service_mocks/CMakeLists.linux-x86_64.txt @@ -14,7 +14,17 @@ target_link_libraries(library-testlib-service_mocks INTERFACE contrib-libs-cxxsupp yutil client-yc_private-servicecontrol + client-yc_private-accessservice api-grpc-draft client-yc_private-resourcemanager client-yc_private-iam ) +target_sources(library-testlib-service_mocks INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/access_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/datastreams_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/folder_service_transitional_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/folder_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/iam_token_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/service_account_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/user_account_service_mock.h +) diff --git a/ydb/library/testlib/service_mocks/CMakeLists.windows-x86_64.txt b/ydb/library/testlib/service_mocks/CMakeLists.windows-x86_64.txt index b452859068f8..a609c8b22ab1 100644 --- a/ydb/library/testlib/service_mocks/CMakeLists.windows-x86_64.txt +++ b/ydb/library/testlib/service_mocks/CMakeLists.windows-x86_64.txt @@ -13,7 +13,17 @@ target_link_libraries(library-testlib-service_mocks INTERFACE contrib-libs-cxxsupp yutil client-yc_private-servicecontrol + client-yc_private-accessservice api-grpc-draft client-yc_private-resourcemanager client-yc_private-iam ) +target_sources(library-testlib-service_mocks INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/access_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/datastreams_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/folder_service_transitional_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/folder_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/iam_token_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/service_account_service_mock.h + ${CMAKE_SOURCE_DIR}/ydb/library/testlib/service_mocks/user_account_service_mock.h +) diff --git a/ydb/library/testlib/service_mocks/ldap_mock/ldap_message_processor.cpp b/ydb/library/testlib/service_mocks/ldap_mock/ldap_message_processor.cpp index 3a53928e99e0..8110e977f001 100644 --- a/ydb/library/testlib/service_mocks/ldap_mock/ldap_message_processor.cpp +++ b/ydb/library/testlib/service_mocks/ldap_mock/ldap_message_processor.cpp @@ -76,10 +76,6 @@ TLdapRequestProcessor::TLdapRequestProcessor(TAtomicSharedPtr<TLdapSocketWrapper : Socket(socket) {} -void TLdapRequestProcessor::SslAccept() { - Socket->SslAccept(); -} - unsigned char TLdapRequestProcessor::GetByte() { unsigned char res; GetNBytes(&res, 1); diff --git a/ydb/library/testlib/service_mocks/ldap_mock/ldap_message_processor.h b/ydb/library/testlib/service_mocks/ldap_mock/ldap_message_processor.h index d844c7faf7ce..b41607b2e49c 100644 --- a/ydb/library/testlib/service_mocks/ldap_mock/ldap_message_processor.h +++ b/ydb/library/testlib/service_mocks/ldap_mock/ldap_message_processor.h @@ -22,7 +22,6 @@ class TLdapRequestProcessor { size_t GetLength(); private: - void SslAccept(); int GetInt(); void GetNBytes(unsigned char* buf, size_t n); TString GetString(); diff --git a/ydb/library/testlib/service_mocks/ldap_mock/ldap_mock.cpp b/ydb/library/testlib/service_mocks/ldap_mock/ldap_mock.cpp index c5a1ee4c8cad..f9b1c0669feb 100644 --- a/ydb/library/testlib/service_mocks/ldap_mock/ldap_mock.cpp +++ b/ydb/library/testlib/service_mocks/ldap_mock/ldap_mock.cpp @@ -31,8 +31,8 @@ void LdapRequestHandler(TAtomicSharedPtr<TLdapSocketWrapper> socket, const TLdap if (!response.Send(socket)) { break; } - if (response.EnableTls()) { - socket->SslAccept(); + if (response.EnableTls() && !socket->IsSecure()) { + socket->EnableSecureConnection(); } } } diff --git a/ydb/library/testlib/service_mocks/ldap_mock/ldap_simple_server.cpp b/ydb/library/testlib/service_mocks/ldap_mock/ldap_simple_server.cpp index dff345d26c39..0344384e50bc 100644 --- a/ydb/library/testlib/service_mocks/ldap_mock/ldap_simple_server.cpp +++ b/ydb/library/testlib/service_mocks/ldap_mock/ldap_simple_server.cpp @@ -11,11 +11,11 @@ namespace LdapMock { -TLdapSimpleServer::TLdapSimpleServer(ui16 port, const TLdapMockResponses& responses) - : TLdapSimpleServer(port, {responses, {}}) +TLdapSimpleServer::TLdapSimpleServer(ui16 port, const TLdapMockResponses& responses, bool isSecureConnection) + : TLdapSimpleServer(port, {responses, {}}, isSecureConnection) {} -TLdapSimpleServer::TLdapSimpleServer(ui16 port, const std::pair<TLdapMockResponses, TLdapMockResponses>& responses) +TLdapSimpleServer::TLdapSimpleServer(ui16 port, const std::pair<TLdapMockResponses, TLdapMockResponses>& responses, bool isSecureConnection) : Port(port) , Responses(responses) { @@ -38,7 +38,7 @@ TLdapSimpleServer::TLdapSimpleServer(ui16 port, const std::pair<TLdapMockRespons ThreadPool->Start(1); auto receiveFinish = MakeAtomicShared<TInetStreamSocket>(socketPair[0]); - ListenerThread = ThreadPool->Run([listenSocket, receiveFinish, &useFirstSetResponses = this->UseFirstSetResponses, &responses = this->Responses] { + ListenerThread = ThreadPool->Run([listenSocket, receiveFinish, &useFirstSetResponses = this->UseFirstSetResponses, &responses = this->Responses, isSecureConnection] { TSocketPoller socketPoller; socketPoller.WaitRead(*receiveFinish, nullptr); socketPoller.WaitRead(*listenSocket, (void*)1); @@ -51,7 +51,7 @@ TLdapSimpleServer::TLdapSimpleServer(ui16 port, const std::pair<TLdapMockRespons if (!cookies[i]) { running = false; } else { - TAtomicSharedPtr<TLdapSocketWrapper> socket = MakeAtomicShared<TLdapSocketWrapper>(listenSocket); + TAtomicSharedPtr<TLdapSocketWrapper> socket = MakeAtomicShared<TLdapSocketWrapper>(listenSocket, isSecureConnection); socket->OnAccept(); SystemThreadFactory()->Run( diff --git a/ydb/library/testlib/service_mocks/ldap_mock/ldap_simple_server.h b/ydb/library/testlib/service_mocks/ldap_mock/ldap_simple_server.h index 8c22b2e6c7d6..bba666392ef5 100644 --- a/ydb/library/testlib/service_mocks/ldap_mock/ldap_simple_server.h +++ b/ydb/library/testlib/service_mocks/ldap_mock/ldap_simple_server.h @@ -19,8 +19,8 @@ class TLdapSimpleServer { using TRequestHandler = std::function<void(TAtomicSharedPtr<TStreamSocket> socket)>; public: - TLdapSimpleServer(ui16 port, const std::pair<TLdapMockResponses, TLdapMockResponses>& responses); - TLdapSimpleServer(ui16 port, const TLdapMockResponses& responses); + TLdapSimpleServer(ui16 port, const std::pair<TLdapMockResponses, TLdapMockResponses>& responses, bool isSecureConnection = false); + TLdapSimpleServer(ui16 port, const TLdapMockResponses& responses, bool isSecureConnection = false); ~TLdapSimpleServer(); void Stop(); diff --git a/ydb/library/testlib/service_mocks/ldap_mock/ldap_socket_wrapper.cpp b/ydb/library/testlib/service_mocks/ldap_mock/ldap_socket_wrapper.cpp index 40684cfa9cb5..cffb84580d93 100644 --- a/ydb/library/testlib/service_mocks/ldap_mock/ldap_socket_wrapper.cpp +++ b/ydb/library/testlib/service_mocks/ldap_mock/ldap_socket_wrapper.cpp @@ -59,18 +59,19 @@ wuQ2pZHL/HJ0laUSieHDJ5917w== }; } -TLdapSocketWrapper::TLdapSocketWrapper(TAtomicSharedPtr<TInetStreamSocket> listenSocket) +TLdapSocketWrapper::TLdapSocketWrapper(TAtomicSharedPtr<TInetStreamSocket> listenSocket, bool isSecureConnection) : ListenSocket(listenSocket) , Socket() , Ctx(CreateSslContext()) , Ssl(SSL_new(Ctx.Get())) + , IsSecureConnection(isSecureConnection) { SetupCerts(); SSL_set_accept_state(Ssl.Get()); } void TLdapSocketWrapper::Receive(void* buf, size_t len) { - TBaseSocket::Check(RecieveMsg(*this, buf, len), "Recieve"); + TBaseSocket::Check(ReceiveMsg(*this, buf, len), "Receive"); } void TLdapSocketWrapper::Send(const void* msg, size_t len) { @@ -80,22 +81,29 @@ void TLdapSocketWrapper::Send(const void* msg, size_t len) { void TLdapSocketWrapper::OnAccept() { TSockAddrInet Addr; TBaseSocket::Check(ListenSocket->Accept(&Socket, &Addr), "accept"); - RecieveMsg = &TLdapSocketWrapper::InsecureRecieve; - SendMsg = &TLdapSocketWrapper::InsecureSend; + if (IsSecureConnection) { + EnableSecureConnection(); + } else { + ReceiveMsg = &TLdapSocketWrapper::InsecureReceive; + SendMsg = &TLdapSocketWrapper::InsecureSend; + } } -void TLdapSocketWrapper::SslAccept() { +void TLdapSocketWrapper::EnableSecureConnection() { SSL_set_fd(Ssl.Get(), Socket); TBaseSocket::Check(SSL_accept(Ssl.Get()), "SslAccept"); - RecieveMsg = &TLdapSocketWrapper::SecureReceive; + ReceiveMsg = &TLdapSocketWrapper::SecureReceive; SendMsg = &TLdapSocketWrapper::SecureSend; } +bool TLdapSocketWrapper::IsSecure() const { + return IsSecureConnection; +} void TLdapSocketWrapper::Close() { Socket.Close(); } -ssize_t TLdapSocketWrapper::InsecureRecieve(void* buf, size_t len) { +ssize_t TLdapSocketWrapper::InsecureReceive(void* buf, size_t len) { return Socket.Recv(buf, len); } diff --git a/ydb/library/testlib/service_mocks/ldap_mock/ldap_socket_wrapper.h b/ydb/library/testlib/service_mocks/ldap_mock/ldap_socket_wrapper.h index f28fd6008cd2..4a499235dcbf 100644 --- a/ydb/library/testlib/service_mocks/ldap_mock/ldap_socket_wrapper.h +++ b/ydb/library/testlib/service_mocks/ldap_mock/ldap_socket_wrapper.h @@ -35,16 +35,17 @@ class TLdapSocketWrapper { using TSslHolder = THolder<T, TSslDestroy>; public: - TLdapSocketWrapper(TAtomicSharedPtr<TInetStreamSocket> listenSocket); + TLdapSocketWrapper(TAtomicSharedPtr<TInetStreamSocket> listenSocket, bool isSecureConnection = false); void Close(); void Receive(void* buf, size_t len); void Send(const void* msg, size_t len); void OnAccept(); - void SslAccept(); + void EnableSecureConnection(); + bool IsSecure() const; private: - ssize_t InsecureRecieve(void* buf, size_t len); + ssize_t InsecureReceive(void* buf, size_t len); ssize_t InsecureSend(const void* msg, size_t len); ssize_t SecureReceive(void* buf, size_t len); ssize_t SecureSend(const void* msg, size_t len); @@ -59,8 +60,9 @@ class TLdapSocketWrapper { TSslHolder<SSL> Ssl; TSslHolder<EVP_PKEY> Key; TSslHolder<X509> X509; + bool IsSecureConnection = false; - std::function<ssize_t(TLdapSocketWrapper&, void*, size_t)> RecieveMsg; + std::function<ssize_t(TLdapSocketWrapper&, void*, size_t)> ReceiveMsg; std::function<ssize_t(TLdapSocketWrapper&, const void*, size_t)> SendMsg; }; diff --git a/ydb/library/testlib/ut/CMakeLists.darwin-arm64.txt b/ydb/library/testlib/ut/CMakeLists.darwin-arm64.txt index fbcbe07c03c0..ae2415f2c82b 100644 --- a/ydb/library/testlib/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/testlib/ut/CMakeLists.darwin-arm64.txt @@ -18,8 +18,6 @@ target_link_options(ydb-library-testlib-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-testlib-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/testlib/ut/gtest_compat_ut.cpp @@ -36,6 +34,7 @@ set_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_property( TEST diff --git a/ydb/library/testlib/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/testlib/ut/CMakeLists.darwin-x86_64.txt index c6fc761faccd..212d74942f0b 100644 --- a/ydb/library/testlib/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/testlib/ut/CMakeLists.darwin-x86_64.txt @@ -19,8 +19,6 @@ target_link_options(ydb-library-testlib-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-testlib-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/testlib/ut/gtest_compat_ut.cpp @@ -37,6 +35,7 @@ set_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_property( TEST diff --git a/ydb/library/testlib/ut/CMakeLists.linux-aarch64.txt b/ydb/library/testlib/ut/CMakeLists.linux-aarch64.txt index 74336c1f6c5c..a2a1cd73ffe0 100644 --- a/ydb/library/testlib/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/testlib/ut/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(ydb-library-testlib-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-testlib-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/testlib/ut/gtest_compat_ut.cpp @@ -40,6 +37,7 @@ set_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_property( TEST diff --git a/ydb/library/testlib/ut/CMakeLists.linux-x86_64.txt b/ydb/library/testlib/ut/CMakeLists.linux-x86_64.txt index 8fa3bace4658..f4d26a6c3dbb 100644 --- a/ydb/library/testlib/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/testlib/ut/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(ydb-library-testlib-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-testlib-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/testlib/ut/gtest_compat_ut.cpp @@ -41,6 +38,7 @@ set_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_property( TEST diff --git a/ydb/library/testlib/ut/CMakeLists.windows-x86_64.txt b/ydb/library/testlib/ut/CMakeLists.windows-x86_64.txt index 1d9eb77da6d0..61facd3a5e4c 100644 --- a/ydb/library/testlib/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/testlib/ut/CMakeLists.windows-x86_64.txt @@ -30,6 +30,7 @@ set_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_property( TEST diff --git a/ydb/library/time_series_vec/CMakeLists.darwin-arm64.txt b/ydb/library/time_series_vec/CMakeLists.darwin-arm64.txt index 51cc6db3cb6c..c797c0ae6150 100644 --- a/ydb/library/time_series_vec/CMakeLists.darwin-arm64.txt +++ b/ydb/library/time_series_vec/CMakeLists.darwin-arm64.txt @@ -13,3 +13,6 @@ target_link_libraries(ydb-library-time_series_vec INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(ydb-library-time_series_vec INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/time_series_vec/time_series_vec.h +) diff --git a/ydb/library/time_series_vec/CMakeLists.darwin-x86_64.txt b/ydb/library/time_series_vec/CMakeLists.darwin-x86_64.txt index 51cc6db3cb6c..c797c0ae6150 100644 --- a/ydb/library/time_series_vec/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/time_series_vec/CMakeLists.darwin-x86_64.txt @@ -13,3 +13,6 @@ target_link_libraries(ydb-library-time_series_vec INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(ydb-library-time_series_vec INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/time_series_vec/time_series_vec.h +) diff --git a/ydb/library/time_series_vec/CMakeLists.linux-aarch64.txt b/ydb/library/time_series_vec/CMakeLists.linux-aarch64.txt index 548d33d23bac..2eec02fc4a4a 100644 --- a/ydb/library/time_series_vec/CMakeLists.linux-aarch64.txt +++ b/ydb/library/time_series_vec/CMakeLists.linux-aarch64.txt @@ -14,3 +14,6 @@ target_link_libraries(ydb-library-time_series_vec INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(ydb-library-time_series_vec INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/time_series_vec/time_series_vec.h +) diff --git a/ydb/library/time_series_vec/CMakeLists.linux-x86_64.txt b/ydb/library/time_series_vec/CMakeLists.linux-x86_64.txt index 548d33d23bac..2eec02fc4a4a 100644 --- a/ydb/library/time_series_vec/CMakeLists.linux-x86_64.txt +++ b/ydb/library/time_series_vec/CMakeLists.linux-x86_64.txt @@ -14,3 +14,6 @@ target_link_libraries(ydb-library-time_series_vec INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(ydb-library-time_series_vec INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/time_series_vec/time_series_vec.h +) diff --git a/ydb/library/time_series_vec/CMakeLists.windows-x86_64.txt b/ydb/library/time_series_vec/CMakeLists.windows-x86_64.txt index 51cc6db3cb6c..c797c0ae6150 100644 --- a/ydb/library/time_series_vec/CMakeLists.windows-x86_64.txt +++ b/ydb/library/time_series_vec/CMakeLists.windows-x86_64.txt @@ -13,3 +13,6 @@ target_link_libraries(ydb-library-time_series_vec INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(ydb-library-time_series_vec INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/time_series_vec/time_series_vec.h +) diff --git a/ydb/library/time_series_vec/ut/CMakeLists.darwin-arm64.txt b/ydb/library/time_series_vec/ut/CMakeLists.darwin-arm64.txt index 8ec87086f182..fc971fc9f6e9 100644 --- a/ydb/library/time_series_vec/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/time_series_vec/ut/CMakeLists.darwin-arm64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 index 8be10746c0df..4daf3523091c 100644 --- a/ydb/library/time_series_vec/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/time_series_vec/ut/CMakeLists.darwin-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/time_series_vec/ut/CMakeLists.linux-aarch64.txt b/ydb/library/time_series_vec/ut/CMakeLists.linux-aarch64.txt index e57f86f7b187..27cc8dbf9e29 100644 --- a/ydb/library/time_series_vec/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/time_series_vec/ut/CMakeLists.linux-aarch64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-library-time_series_vec-ut PRIVATE -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 @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 index 0dbaf30c6e56..e75cd24d0696 100644 --- a/ydb/library/time_series_vec/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/time_series_vec/ut/CMakeLists.linux-x86_64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-library-time_series_vec-ut PRIVATE -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 @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 index 17b542c9370f..2f68e5185b55 100644 --- a/ydb/library/time_series_vec/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/time_series_vec/ut/CMakeLists.windows-x86_64.txt @@ -49,6 +49,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/uuid/uuid.cpp b/ydb/library/uuid/uuid.cpp index aa12c7664b4c..ef1d2d44c00f 100644 --- a/ydb/library/uuid/uuid.cpp +++ b/ydb/library/uuid/uuid.cpp @@ -28,6 +28,12 @@ static void WriteHex(ui16 bytes, IOutputStream& out, bool reverseBytes = false) } } +void UuidBytesToString(TString in, IOutputStream& out) { + ui16 dw[8]; + std::memcpy(dw, in.Data(), sizeof(dw)); + NUuid::UuidToString(dw, out); +} + void UuidToString(ui16 dw[8], IOutputStream& out) { WriteHex(dw[1], out); WriteHex(dw[0], out); diff --git a/ydb/library/uuid/uuid.h b/ydb/library/uuid/uuid.h index abf7b53a7620..1d7ef1a4dfa9 100644 --- a/ydb/library/uuid/uuid.h +++ b/ydb/library/uuid/uuid.h @@ -13,6 +13,7 @@ namespace NUuid { static constexpr ui32 UUID_LEN = 16; +void UuidBytesToString(TString in, IOutputStream& out); void UuidToString(ui16 dw[8], IOutputStream& out); void UuidHalfsToByteString(ui64 low, ui64 hi, IOutputStream& out); diff --git a/ydb/library/wilson_ids/CMakeLists.darwin-arm64.txt b/ydb/library/wilson_ids/CMakeLists.darwin-arm64.txt index ae2afc4629d0..94fa617d9f67 100644 --- a/ydb/library/wilson_ids/CMakeLists.darwin-arm64.txt +++ b/ydb/library/wilson_ids/CMakeLists.darwin-arm64.txt @@ -12,3 +12,6 @@ target_link_libraries(ydb-library-wilson_ids INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(ydb-library-wilson_ids INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/wilson_ids/wilson.h +) diff --git a/ydb/library/wilson_ids/CMakeLists.darwin-x86_64.txt b/ydb/library/wilson_ids/CMakeLists.darwin-x86_64.txt index ae2afc4629d0..94fa617d9f67 100644 --- a/ydb/library/wilson_ids/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/wilson_ids/CMakeLists.darwin-x86_64.txt @@ -12,3 +12,6 @@ target_link_libraries(ydb-library-wilson_ids INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(ydb-library-wilson_ids INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/wilson_ids/wilson.h +) diff --git a/ydb/library/wilson_ids/CMakeLists.linux-aarch64.txt b/ydb/library/wilson_ids/CMakeLists.linux-aarch64.txt index 16ce0bf4a808..55b6831349f6 100644 --- a/ydb/library/wilson_ids/CMakeLists.linux-aarch64.txt +++ b/ydb/library/wilson_ids/CMakeLists.linux-aarch64.txt @@ -13,3 +13,6 @@ target_link_libraries(ydb-library-wilson_ids INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(ydb-library-wilson_ids INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/wilson_ids/wilson.h +) diff --git a/ydb/library/wilson_ids/CMakeLists.linux-x86_64.txt b/ydb/library/wilson_ids/CMakeLists.linux-x86_64.txt index 16ce0bf4a808..55b6831349f6 100644 --- a/ydb/library/wilson_ids/CMakeLists.linux-x86_64.txt +++ b/ydb/library/wilson_ids/CMakeLists.linux-x86_64.txt @@ -13,3 +13,6 @@ target_link_libraries(ydb-library-wilson_ids INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(ydb-library-wilson_ids INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/wilson_ids/wilson.h +) diff --git a/ydb/library/wilson_ids/CMakeLists.windows-x86_64.txt b/ydb/library/wilson_ids/CMakeLists.windows-x86_64.txt index ae2afc4629d0..94fa617d9f67 100644 --- a/ydb/library/wilson_ids/CMakeLists.windows-x86_64.txt +++ b/ydb/library/wilson_ids/CMakeLists.windows-x86_64.txt @@ -12,3 +12,6 @@ target_link_libraries(ydb-library-wilson_ids INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(ydb-library-wilson_ids INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/wilson_ids/wilson.h +) diff --git a/ydb/library/wilson_ids/wilson.h b/ydb/library/wilson_ids/wilson.h index 32cfce06998b..3de4b9dc45df 100644 --- a/ydb/library/wilson_ids/wilson.h +++ b/ydb/library/wilson_ids/wilson.h @@ -1,60 +1,100 @@ #pragma once +#include <util/system/types.h> + namespace NKikimr { + struct TComponentTracingLevels { +#ifdef DEFINE_TRACING_LEVELS +#error "Macro collision: DEFINE_TRACING_LEVELS" +#endif + +#define DEFINE_TRACING_LEVELS(COMPONENT, MINIMAL, BASIC, DETAILED, DIAGNOSTIC, TRACE) \ + struct COMPONENT { \ + enum : ui8 { \ + TopLevel = MINIMAL, \ + Basic = BASIC, \ + Detailed = DETAILED, \ + Diagnostic = DIAGNOSTIC, \ + Trace = TRACE, \ + }; \ + }; + + + DEFINE_TRACING_LEVELS(TGrpcProxy, 0, 5, 10, 14, 15) + DEFINE_TRACING_LEVELS(TQueryProcessor, 1, 6, 10, 14, 15) + DEFINE_TRACING_LEVELS(TDistributedTransactions, 2, 7, 11, 14, 15) + DEFINE_TRACING_LEVELS(TTablet, 3, 8, 12, 14, 15) + DEFINE_TRACING_LEVELS(TDistributedStorage, 4, 9, 13, 14, 15) + +#undef DEFINE_TRACING_LEVELS + + enum : ui8 { + // The most verbose detalisation level used in production + ProductionVerbose = 13, + }; + }; + struct TWilson { enum { - BlobStorage = 8, // DS proxy and lower levels - DsProxyInternals = 9, - VDiskTopLevel = 12, - VDiskInternals = 13, - PDisk = 14, + BlobStorage = TComponentTracingLevels::TDistributedStorage::TopLevel, + DsProxyInternals = TComponentTracingLevels::TDistributedStorage::Detailed, + VDiskTopLevel = TComponentTracingLevels::TDistributedStorage::Basic, + VDiskInternals = TComponentTracingLevels::TDistributedStorage::Detailed, + PDiskTopLevel = TComponentTracingLevels::TDistributedStorage::Basic, + PDiskBasic = TComponentTracingLevels::TDistributedStorage::Detailed, + PDiskDetailed = TComponentTracingLevels::TDistributedStorage::Detailed, }; }; struct TWilsonKqp { enum { - KqpSession = 8, - CompileService = 9, - CompileActor = 9, - SessionAcquireSnapshot = 9, + KqpSession = TComponentTracingLevels::TQueryProcessor::TopLevel, + CompileService = TComponentTracingLevels::TQueryProcessor::Basic, + CompileActor = TComponentTracingLevels::TQueryProcessor::Basic, + SessionAcquireSnapshot = TComponentTracingLevels::TQueryProcessor::Basic, - ExecuterTableResolve = 10, - ExecuterShardsResolve = 10, + ExecuterTableResolve = TComponentTracingLevels::TQueryProcessor::Detailed, + ExecuterShardsResolve = TComponentTracingLevels::TQueryProcessor::Detailed, - LiteralExecuter = 9, + LiteralExecuter = TComponentTracingLevels::TQueryProcessor::Basic, - DataExecuter = 9, - DataExecuterAcquireSnapshot = 10, - DataExecuterRunTasks = 10, + DataExecuter = TComponentTracingLevels::TQueryProcessor::Basic, + DataExecuterAcquireSnapshot = TComponentTracingLevels::TQueryProcessor::Detailed, + DataExecuterRunTasks = TComponentTracingLevels::TQueryProcessor::Detailed, - ScanExecuter = 9, - ScanExecuterRunTasks = 10, + ScanExecuter = TComponentTracingLevels::TQueryProcessor::Basic, + ScanExecuterRunTasks = TComponentTracingLevels::TQueryProcessor::Detailed, - KqpNodeSendTasks = 9, + KqpNodeSendTasks = TComponentTracingLevels::TQueryProcessor::Basic, - ProposeTransaction = 9, + ProposeTransaction = TComponentTracingLevels::TQueryProcessor::Basic, - ComputeActor = 9, + ComputeActor = TComponentTracingLevels::TQueryProcessor::Basic, - ReadActor = 9, - ReadActorShardsResolve = 10, + ReadActor = TComponentTracingLevels::TQueryProcessor::Basic, + ReadActorShardsResolve = TComponentTracingLevels::TQueryProcessor::Detailed, - LookupActor = 9, - LookupActorShardsResolve = 10, + LookupActor = TComponentTracingLevels::TQueryProcessor::Basic, + LookupActorShardsResolve = TComponentTracingLevels::TQueryProcessor::Detailed, + + BulkUpsertActor = TComponentTracingLevels::TQueryProcessor::TopLevel, }; }; struct TWilsonTablet { enum { - Tablet = 15 + TabletTopLevel = TComponentTracingLevels::TTablet::TopLevel, + TabletBasic = TComponentTracingLevels::TTablet::Basic, + TabletDetailed = TComponentTracingLevels::TTablet::Detailed, }; }; struct TWilsonGrpc { enum { - RequestProxy = 9, - RequestActor = 9, + RequestProxy = TComponentTracingLevels::TGrpcProxy::TopLevel, + RequestActor = TComponentTracingLevels::TGrpcProxy::TopLevel, + RequestCheckActor = TComponentTracingLevels::TGrpcProxy::Basic, }; }; diff --git a/ydb/library/workload/CMakeLists.darwin-arm64.txt b/ydb/library/workload/CMakeLists.darwin-arm64.txt index 4b6d17589ecd..afdfd0557f01 100644 --- a/ydb/library/workload/CMakeLists.darwin-arm64.txt +++ b/ydb/library/workload/CMakeLists.darwin-arm64.txt @@ -6,6 +6,12 @@ # 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 +) get_built_tool_path( TOOL_enum_parser_bin TOOL_enum_parser_dependency @@ -17,29 +23,41 @@ add_library(ydb-library-workload) target_link_libraries(ydb-library-workload PUBLIC contrib-libs-cxxsupp yutil - tools-enum_parser-enum_serialization_runtime + library-cpp-getopt api-protos cpp-client-ydb_table + tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-library-workload PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/workload/stock_workload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/kv_workload.cpp + ${CMAKE_BINARY_DIR}/ydb/library/workload/kv_workload.h_serialized.h + ${CMAKE_BINARY_DIR}/ydb/library/workload/stock_workload.h_serialized.h ${CMAKE_SOURCE_DIR}/ydb/library/workload/workload_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/tpcc_workload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/customer.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/district.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/history.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/item.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/new_order.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/oorder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/order_line.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/query_generator.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/stock.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/warehouse.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/load_data/load_thread_pool.cpp ) generate_enum_serilization(ydb-library-workload - ${CMAKE_SOURCE_DIR}/ydb/library/workload/tpcc/tpcc_config.h + ${CMAKE_SOURCE_DIR}/ydb/library/workload/kv_workload.h + GEN_HEADER + ${CMAKE_BINARY_DIR}/ydb/library/workload/kv_workload.h_serialized.h INCLUDE_HEADERS - ydb/library/workload/tpcc/tpcc_config.h + ydb/library/workload/kv_workload.h +) +generate_enum_serilization(ydb-library-workload + ${CMAKE_SOURCE_DIR}/ydb/library/workload/stock_workload.h + GEN_HEADER + ${CMAKE_BINARY_DIR}/ydb/library/workload/stock_workload.h_serialized.h + INCLUDE_HEADERS + ydb/library/workload/stock_workload.h +) + +add_global_library_for(ydb-library-workload.global ydb-library-workload) +target_link_libraries(ydb-library-workload.global PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-getopt + api-protos + cpp-client-ydb_table + tools-enum_parser-enum_serialization_runtime +) +target_sources(ydb-library-workload.global PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/workload/stock_workload.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/workload/kv_workload.cpp ) diff --git a/ydb/library/workload/CMakeLists.darwin-x86_64.txt b/ydb/library/workload/CMakeLists.darwin-x86_64.txt index 69416c94e704..afdfd0557f01 100644 --- a/ydb/library/workload/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/workload/CMakeLists.darwin-x86_64.txt @@ -6,16 +6,58 @@ # 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 +) +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) add_library(ydb-library-workload) target_link_libraries(ydb-library-workload PUBLIC contrib-libs-cxxsupp yutil + library-cpp-getopt api-protos cpp-client-ydb_table + tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-library-workload PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/workload/kv_workload.h_serialized.h + ${CMAKE_BINARY_DIR}/ydb/library/workload/stock_workload.h_serialized.h + ${CMAKE_SOURCE_DIR}/ydb/library/workload/workload_factory.cpp +) +generate_enum_serilization(ydb-library-workload + ${CMAKE_SOURCE_DIR}/ydb/library/workload/kv_workload.h + GEN_HEADER + ${CMAKE_BINARY_DIR}/ydb/library/workload/kv_workload.h_serialized.h + INCLUDE_HEADERS + ydb/library/workload/kv_workload.h +) +generate_enum_serilization(ydb-library-workload + ${CMAKE_SOURCE_DIR}/ydb/library/workload/stock_workload.h + GEN_HEADER + ${CMAKE_BINARY_DIR}/ydb/library/workload/stock_workload.h_serialized.h + INCLUDE_HEADERS + ydb/library/workload/stock_workload.h +) + +add_global_library_for(ydb-library-workload.global ydb-library-workload) +target_link_libraries(ydb-library-workload.global PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-getopt + api-protos + cpp-client-ydb_table + tools-enum_parser-enum_serialization_runtime +) +target_sources(ydb-library-workload.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/workload/stock_workload.cpp ${CMAKE_SOURCE_DIR}/ydb/library/workload/kv_workload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/workload_factory.cpp ) diff --git a/ydb/library/workload/CMakeLists.linux-aarch64.txt b/ydb/library/workload/CMakeLists.linux-aarch64.txt index d5dba36558cd..07a824c5ed8d 100644 --- a/ydb/library/workload/CMakeLists.linux-aarch64.txt +++ b/ydb/library/workload/CMakeLists.linux-aarch64.txt @@ -6,17 +6,60 @@ # 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 +) +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) add_library(ydb-library-workload) target_link_libraries(ydb-library-workload PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + library-cpp-getopt api-protos cpp-client-ydb_table + tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-library-workload PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/workload/kv_workload.h_serialized.h + ${CMAKE_BINARY_DIR}/ydb/library/workload/stock_workload.h_serialized.h + ${CMAKE_SOURCE_DIR}/ydb/library/workload/workload_factory.cpp +) +generate_enum_serilization(ydb-library-workload + ${CMAKE_SOURCE_DIR}/ydb/library/workload/kv_workload.h + GEN_HEADER + ${CMAKE_BINARY_DIR}/ydb/library/workload/kv_workload.h_serialized.h + INCLUDE_HEADERS + ydb/library/workload/kv_workload.h +) +generate_enum_serilization(ydb-library-workload + ${CMAKE_SOURCE_DIR}/ydb/library/workload/stock_workload.h + GEN_HEADER + ${CMAKE_BINARY_DIR}/ydb/library/workload/stock_workload.h_serialized.h + INCLUDE_HEADERS + ydb/library/workload/stock_workload.h +) + +add_global_library_for(ydb-library-workload.global ydb-library-workload) +target_link_libraries(ydb-library-workload.global PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-getopt + api-protos + cpp-client-ydb_table + tools-enum_parser-enum_serialization_runtime +) +target_sources(ydb-library-workload.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/workload/stock_workload.cpp ${CMAKE_SOURCE_DIR}/ydb/library/workload/kv_workload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/workload_factory.cpp ) diff --git a/ydb/library/workload/CMakeLists.linux-x86_64.txt b/ydb/library/workload/CMakeLists.linux-x86_64.txt index d5dba36558cd..07a824c5ed8d 100644 --- a/ydb/library/workload/CMakeLists.linux-x86_64.txt +++ b/ydb/library/workload/CMakeLists.linux-x86_64.txt @@ -6,17 +6,60 @@ # 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 +) +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) add_library(ydb-library-workload) target_link_libraries(ydb-library-workload PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + library-cpp-getopt api-protos cpp-client-ydb_table + tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-library-workload PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/workload/kv_workload.h_serialized.h + ${CMAKE_BINARY_DIR}/ydb/library/workload/stock_workload.h_serialized.h + ${CMAKE_SOURCE_DIR}/ydb/library/workload/workload_factory.cpp +) +generate_enum_serilization(ydb-library-workload + ${CMAKE_SOURCE_DIR}/ydb/library/workload/kv_workload.h + GEN_HEADER + ${CMAKE_BINARY_DIR}/ydb/library/workload/kv_workload.h_serialized.h + INCLUDE_HEADERS + ydb/library/workload/kv_workload.h +) +generate_enum_serilization(ydb-library-workload + ${CMAKE_SOURCE_DIR}/ydb/library/workload/stock_workload.h + GEN_HEADER + ${CMAKE_BINARY_DIR}/ydb/library/workload/stock_workload.h_serialized.h + INCLUDE_HEADERS + ydb/library/workload/stock_workload.h +) + +add_global_library_for(ydb-library-workload.global ydb-library-workload) +target_link_libraries(ydb-library-workload.global PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-getopt + api-protos + cpp-client-ydb_table + tools-enum_parser-enum_serialization_runtime +) +target_sources(ydb-library-workload.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/workload/stock_workload.cpp ${CMAKE_SOURCE_DIR}/ydb/library/workload/kv_workload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/workload_factory.cpp ) diff --git a/ydb/library/workload/CMakeLists.windows-x86_64.txt b/ydb/library/workload/CMakeLists.windows-x86_64.txt index 69416c94e704..afdfd0557f01 100644 --- a/ydb/library/workload/CMakeLists.windows-x86_64.txt +++ b/ydb/library/workload/CMakeLists.windows-x86_64.txt @@ -6,16 +6,58 @@ # 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 +) +get_built_tool_path( + TOOL_enum_parser_bin + TOOL_enum_parser_dependency + tools/enum_parser/enum_parser + enum_parser +) add_library(ydb-library-workload) target_link_libraries(ydb-library-workload PUBLIC contrib-libs-cxxsupp yutil + library-cpp-getopt api-protos cpp-client-ydb_table + tools-enum_parser-enum_serialization_runtime ) target_sources(ydb-library-workload PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/workload/kv_workload.h_serialized.h + ${CMAKE_BINARY_DIR}/ydb/library/workload/stock_workload.h_serialized.h + ${CMAKE_SOURCE_DIR}/ydb/library/workload/workload_factory.cpp +) +generate_enum_serilization(ydb-library-workload + ${CMAKE_SOURCE_DIR}/ydb/library/workload/kv_workload.h + GEN_HEADER + ${CMAKE_BINARY_DIR}/ydb/library/workload/kv_workload.h_serialized.h + INCLUDE_HEADERS + ydb/library/workload/kv_workload.h +) +generate_enum_serilization(ydb-library-workload + ${CMAKE_SOURCE_DIR}/ydb/library/workload/stock_workload.h + GEN_HEADER + ${CMAKE_BINARY_DIR}/ydb/library/workload/stock_workload.h_serialized.h + INCLUDE_HEADERS + ydb/library/workload/stock_workload.h +) + +add_global_library_for(ydb-library-workload.global ydb-library-workload) +target_link_libraries(ydb-library-workload.global PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-getopt + api-protos + cpp-client-ydb_table + tools-enum_parser-enum_serialization_runtime +) +target_sources(ydb-library-workload.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/workload/stock_workload.cpp ${CMAKE_SOURCE_DIR}/ydb/library/workload/kv_workload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/workload/workload_factory.cpp ) diff --git a/ydb/library/yaml_config/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/CMakeLists.darwin-arm64.txt index 1f24b387bde0..368bdd94ba4d 100644 --- a/ydb/library/yaml_config/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yaml_config/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(ydb-library-yaml_config PUBLIC library-yaml_config-public ) target_sources(ydb-library-yaml_config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config_parser.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config_parser.cpp diff --git a/ydb/library/yaml_config/CMakeLists.darwin-x86_64.txt b/ydb/library/yaml_config/CMakeLists.darwin-x86_64.txt index 1f24b387bde0..368bdd94ba4d 100644 --- a/ydb/library/yaml_config/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yaml_config/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(ydb-library-yaml_config PUBLIC library-yaml_config-public ) target_sources(ydb-library-yaml_config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config_parser.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config_parser.cpp diff --git a/ydb/library/yaml_config/CMakeLists.linux-aarch64.txt b/ydb/library/yaml_config/CMakeLists.linux-aarch64.txt index ab981337ee7a..88bd9259f98f 100644 --- a/ydb/library/yaml_config/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yaml_config/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(ydb-library-yaml_config PUBLIC library-yaml_config-public ) target_sources(ydb-library-yaml_config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config_parser.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config_parser.cpp diff --git a/ydb/library/yaml_config/CMakeLists.linux-x86_64.txt b/ydb/library/yaml_config/CMakeLists.linux-x86_64.txt index ab981337ee7a..88bd9259f98f 100644 --- a/ydb/library/yaml_config/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yaml_config/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(ydb-library-yaml_config PUBLIC library-yaml_config-public ) target_sources(ydb-library-yaml_config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config_parser.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config_parser.cpp diff --git a/ydb/library/yaml_config/CMakeLists.windows-x86_64.txt b/ydb/library/yaml_config/CMakeLists.windows-x86_64.txt index 1f24b387bde0..368bdd94ba4d 100644 --- a/ydb/library/yaml_config/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yaml_config/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(ydb-library-yaml_config PUBLIC library-yaml_config-public ) target_sources(ydb-library-yaml_config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config_parser.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/yaml_config_parser.cpp diff --git a/ydb/library/yaml_config/public/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/public/CMakeLists.darwin-arm64.txt index 4c870b43501b..5c825874a70b 100644 --- a/ydb/library/yaml_config/public/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yaml_config/public/CMakeLists.darwin-arm64.txt @@ -19,5 +19,6 @@ target_link_libraries(library-yaml_config-public PUBLIC ydb-library-fyamlcpp ) target_sources(library-yaml_config-public PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/public/yaml_config.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/public/yaml_config.cpp ) diff --git a/ydb/library/yaml_config/public/CMakeLists.darwin-x86_64.txt b/ydb/library/yaml_config/public/CMakeLists.darwin-x86_64.txt index 4c870b43501b..5c825874a70b 100644 --- a/ydb/library/yaml_config/public/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yaml_config/public/CMakeLists.darwin-x86_64.txt @@ -19,5 +19,6 @@ target_link_libraries(library-yaml_config-public PUBLIC ydb-library-fyamlcpp ) target_sources(library-yaml_config-public PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/public/yaml_config.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/public/yaml_config.cpp ) diff --git a/ydb/library/yaml_config/public/CMakeLists.linux-aarch64.txt b/ydb/library/yaml_config/public/CMakeLists.linux-aarch64.txt index 82c428c6bcfd..d2017e46f2a7 100644 --- a/ydb/library/yaml_config/public/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yaml_config/public/CMakeLists.linux-aarch64.txt @@ -20,5 +20,6 @@ target_link_libraries(library-yaml_config-public PUBLIC ydb-library-fyamlcpp ) target_sources(library-yaml_config-public PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/public/yaml_config.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/public/yaml_config.cpp ) diff --git a/ydb/library/yaml_config/public/CMakeLists.linux-x86_64.txt b/ydb/library/yaml_config/public/CMakeLists.linux-x86_64.txt index 82c428c6bcfd..d2017e46f2a7 100644 --- a/ydb/library/yaml_config/public/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yaml_config/public/CMakeLists.linux-x86_64.txt @@ -20,5 +20,6 @@ target_link_libraries(library-yaml_config-public PUBLIC ydb-library-fyamlcpp ) target_sources(library-yaml_config-public PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/public/yaml_config.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/public/yaml_config.cpp ) diff --git a/ydb/library/yaml_config/public/CMakeLists.windows-x86_64.txt b/ydb/library/yaml_config/public/CMakeLists.windows-x86_64.txt index 4c870b43501b..5c825874a70b 100644 --- a/ydb/library/yaml_config/public/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yaml_config/public/CMakeLists.windows-x86_64.txt @@ -19,5 +19,6 @@ target_link_libraries(library-yaml_config-public PUBLIC ydb-library-fyamlcpp ) target_sources(library-yaml_config-public PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/public/yaml_config.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/public/yaml_config.cpp ) diff --git a/ydb/library/yaml_config/static_validator/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/static_validator/CMakeLists.darwin-arm64.txt index 254d5ad015f9..b7b45d01830e 100644 --- a/ydb/library/yaml_config/static_validator/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yaml_config/static_validator/CMakeLists.darwin-arm64.txt @@ -15,5 +15,6 @@ target_link_libraries(library-yaml_config-static_validator PUBLIC library-yaml_config-validator ) target_sources(library-yaml_config-static_validator PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/builders.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/builders.cpp ) diff --git a/ydb/library/yaml_config/static_validator/CMakeLists.darwin-x86_64.txt b/ydb/library/yaml_config/static_validator/CMakeLists.darwin-x86_64.txt index 254d5ad015f9..b7b45d01830e 100644 --- a/ydb/library/yaml_config/static_validator/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yaml_config/static_validator/CMakeLists.darwin-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(library-yaml_config-static_validator PUBLIC library-yaml_config-validator ) target_sources(library-yaml_config-static_validator PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/builders.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/builders.cpp ) diff --git a/ydb/library/yaml_config/static_validator/CMakeLists.linux-aarch64.txt b/ydb/library/yaml_config/static_validator/CMakeLists.linux-aarch64.txt index b97f4674a8ec..3b4f433ecfe1 100644 --- a/ydb/library/yaml_config/static_validator/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yaml_config/static_validator/CMakeLists.linux-aarch64.txt @@ -16,5 +16,6 @@ target_link_libraries(library-yaml_config-static_validator PUBLIC library-yaml_config-validator ) target_sources(library-yaml_config-static_validator PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/builders.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/builders.cpp ) diff --git a/ydb/library/yaml_config/static_validator/CMakeLists.linux-x86_64.txt b/ydb/library/yaml_config/static_validator/CMakeLists.linux-x86_64.txt index b97f4674a8ec..3b4f433ecfe1 100644 --- a/ydb/library/yaml_config/static_validator/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yaml_config/static_validator/CMakeLists.linux-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(library-yaml_config-static_validator PUBLIC library-yaml_config-validator ) target_sources(library-yaml_config-static_validator PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/builders.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/builders.cpp ) diff --git a/ydb/library/yaml_config/static_validator/CMakeLists.windows-x86_64.txt b/ydb/library/yaml_config/static_validator/CMakeLists.windows-x86_64.txt index 254d5ad015f9..b7b45d01830e 100644 --- a/ydb/library/yaml_config/static_validator/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yaml_config/static_validator/CMakeLists.windows-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(library-yaml_config-static_validator PUBLIC library-yaml_config-validator ) target_sources(library-yaml_config-static_validator PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/builders.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/builders.cpp ) diff --git a/ydb/library/yaml_config/static_validator/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/static_validator/ut/CMakeLists.darwin-arm64.txt index 2ef879c0e242..d7e915fc05df 100644 --- a/ydb/library/yaml_config/static_validator/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yaml_config/static_validator/ut/CMakeLists.darwin-arm64.txt @@ -49,6 +49,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/static_validator/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yaml_config/static_validator/ut/CMakeLists.darwin-x86_64.txt index 83e5fe99d194..fadcb94e15a5 100644 --- a/ydb/library/yaml_config/static_validator/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yaml_config/static_validator/ut/CMakeLists.darwin-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/static_validator/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yaml_config/static_validator/ut/CMakeLists.linux-aarch64.txt index f943c0a96206..27f29ffcb018 100644 --- a/ydb/library/yaml_config/static_validator/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yaml_config/static_validator/ut/CMakeLists.linux-aarch64.txt @@ -23,9 +23,6 @@ target_link_options(ydb-library-yaml_config-static_validator-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yaml_config-static_validator-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/ut/test.cpp @@ -55,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/static_validator/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yaml_config/static_validator/ut/CMakeLists.linux-x86_64.txt index 8de063feaae5..66ff9fd1dff3 100644 --- a/ydb/library/yaml_config/static_validator/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yaml_config/static_validator/ut/CMakeLists.linux-x86_64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yaml_config-static_validator-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yaml_config-static_validator-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/ut/test.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/static_validator/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yaml_config/static_validator/ut/CMakeLists.windows-x86_64.txt index 68abb354411d..57da84ccb20d 100644 --- a/ydb/library/yaml_config/static_validator/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yaml_config/static_validator/ut/CMakeLists.windows-x86_64.txt @@ -45,6 +45,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.darwin-arm64.txt index 348c6b4e36aa..dfebe7a64bc1 100644 --- a/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.darwin-arm64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.darwin-x86_64.txt b/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.darwin-x86_64.txt index cfdca304d91e..d97d6892f282 100644 --- a/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.darwin-x86_64.txt @@ -49,6 +49,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.linux-aarch64.txt b/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.linux-aarch64.txt index f5e109052aaa..4bf5e2cde514 100644 --- a/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.linux-aarch64.txt @@ -22,9 +22,6 @@ target_link_options(static_validator-ut-example_configs PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(static_validator-ut-example_configs PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/ut/example_configs/test.cpp @@ -54,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.linux-x86_64.txt b/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.linux-x86_64.txt index f75721a24e75..e1596e306b98 100644 --- a/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.linux-x86_64.txt @@ -23,9 +23,6 @@ target_link_options(static_validator-ut-example_configs PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(static_validator-ut-example_configs PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/static_validator/ut/example_configs/test.cpp @@ -55,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.windows-x86_64.txt b/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.windows-x86_64.txt index 8521e7c92f80..16c7ca3e866b 100644 --- a/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yaml_config/static_validator/ut/example_configs/CMakeLists.windows-x86_64.txt @@ -44,6 +44,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/ut/CMakeLists.darwin-arm64.txt index 610cc3631f74..60a5c476a8f1 100644 --- a/ydb/library/yaml_config/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yaml_config/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-library-yaml_config-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yaml_config-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yaml_config/ut/CMakeLists.darwin-x86_64.txt index 16d1c98e734f..b1102d2e2705 100644 --- a/ydb/library/yaml_config/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yaml_config/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-yaml_config-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yaml_config-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yaml_config/ut/CMakeLists.linux-aarch64.txt index dc3cf97eda8a..d132dea19100 100644 --- a/ydb/library/yaml_config/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yaml_config/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yaml_config-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yaml_config-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yaml_config/ut/CMakeLists.linux-x86_64.txt index 7369ea0dd2cb..e68824511a83 100644 --- a/ydb/library/yaml_config/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yaml_config/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yaml_config-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yaml_config-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/console_dumper_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yaml_config/ut/CMakeLists.windows-x86_64.txt index 88e9923821c4..d023b2b5b19f 100644 --- a/ydb/library/yaml_config/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yaml_config/ut/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/validator/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/validator/CMakeLists.darwin-arm64.txt index effa87c8149d..42e66987015e 100644 --- a/ydb/library/yaml_config/validator/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yaml_config/validator/CMakeLists.darwin-arm64.txt @@ -22,6 +22,10 @@ target_link_libraries(library-yaml_config-validator PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(library-yaml_config-validator PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_checks.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/configurators.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_builder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_checks.cpp diff --git a/ydb/library/yaml_config/validator/CMakeLists.darwin-x86_64.txt b/ydb/library/yaml_config/validator/CMakeLists.darwin-x86_64.txt index effa87c8149d..42e66987015e 100644 --- a/ydb/library/yaml_config/validator/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yaml_config/validator/CMakeLists.darwin-x86_64.txt @@ -22,6 +22,10 @@ target_link_libraries(library-yaml_config-validator PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(library-yaml_config-validator PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_checks.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/configurators.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_builder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_checks.cpp diff --git a/ydb/library/yaml_config/validator/CMakeLists.linux-aarch64.txt b/ydb/library/yaml_config/validator/CMakeLists.linux-aarch64.txt index bbd11d351c99..92d7c6ac92ba 100644 --- a/ydb/library/yaml_config/validator/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yaml_config/validator/CMakeLists.linux-aarch64.txt @@ -23,6 +23,10 @@ target_link_libraries(library-yaml_config-validator PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(library-yaml_config-validator PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_checks.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/configurators.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_builder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_checks.cpp diff --git a/ydb/library/yaml_config/validator/CMakeLists.linux-x86_64.txt b/ydb/library/yaml_config/validator/CMakeLists.linux-x86_64.txt index bbd11d351c99..92d7c6ac92ba 100644 --- a/ydb/library/yaml_config/validator/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yaml_config/validator/CMakeLists.linux-x86_64.txt @@ -23,6 +23,10 @@ target_link_libraries(library-yaml_config-validator PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(library-yaml_config-validator PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_checks.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/configurators.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_builder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_checks.cpp diff --git a/ydb/library/yaml_config/validator/CMakeLists.windows-x86_64.txt b/ydb/library/yaml_config/validator/CMakeLists.windows-x86_64.txt index effa87c8149d..42e66987015e 100644 --- a/ydb/library/yaml_config/validator/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yaml_config/validator/CMakeLists.windows-x86_64.txt @@ -22,6 +22,10 @@ target_link_libraries(library-yaml_config-validator PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(library-yaml_config-validator PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_checks.h + ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/configurators.h ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_builder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/validator_checks.cpp diff --git a/ydb/library/yaml_config/validator/ut/validator/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/validator/ut/validator/CMakeLists.darwin-arm64.txt index 77fc23cbe957..d4316aaf92b1 100644 --- a/ydb/library/yaml_config/validator/ut/validator/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yaml_config/validator/ut/validator/CMakeLists.darwin-arm64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/validator/ut/validator/CMakeLists.darwin-x86_64.txt b/ydb/library/yaml_config/validator/ut/validator/CMakeLists.darwin-x86_64.txt index ed0bb8123497..45eeac22042f 100644 --- a/ydb/library/yaml_config/validator/ut/validator/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yaml_config/validator/ut/validator/CMakeLists.darwin-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/validator/ut/validator/CMakeLists.linux-aarch64.txt b/ydb/library/yaml_config/validator/ut/validator/CMakeLists.linux-aarch64.txt index fb8cd8343697..1e73e4def5e5 100644 --- a/ydb/library/yaml_config/validator/ut/validator/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yaml_config/validator/ut/validator/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(ydb-library-yaml_config-validator-ut-validator PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yaml_config-validator-ut-validator PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/ut/validator/validator_ut.cpp @@ -53,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/validator/ut/validator/CMakeLists.linux-x86_64.txt b/ydb/library/yaml_config/validator/ut/validator/CMakeLists.linux-x86_64.txt index 6017dd9f8356..e52211bb4da7 100644 --- a/ydb/library/yaml_config/validator/ut/validator/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yaml_config/validator/ut/validator/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(ydb-library-yaml_config-validator-ut-validator PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yaml_config-validator-ut-validator PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/ut/validator/validator_ut.cpp @@ -54,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/validator/ut/validator/CMakeLists.windows-x86_64.txt b/ydb/library/yaml_config/validator/ut/validator/CMakeLists.windows-x86_64.txt index 65ef01ab15f5..805a494642b9 100644 --- a/ydb/library/yaml_config/validator/ut/validator/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yaml_config/validator/ut/validator/CMakeLists.windows-x86_64.txt @@ -43,6 +43,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.darwin-arm64.txt index 093b059d1a48..9e4c2706e5ed 100644 --- a/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.darwin-arm64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.darwin-x86_64.txt b/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.darwin-x86_64.txt index 7584c9fe36e2..732cc310633e 100644 --- a/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.darwin-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.linux-aarch64.txt b/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.linux-aarch64.txt index cb1b241848e0..346b38efc47c 100644 --- a/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(yaml_config-validator-ut-validator_builder PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(yaml_config-validator-ut-validator_builder PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/ut/validator_builder/validator_builder_ut.cpp @@ -53,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.linux-x86_64.txt b/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.linux-x86_64.txt index a3875ea50b63..445cecd4d61e 100644 --- a/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(yaml_config-validator-ut-validator_builder PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(yaml_config-validator-ut-validator_builder PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/ut/validator_builder/validator_builder_ut.cpp @@ -54,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.windows-x86_64.txt b/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.windows-x86_64.txt index e83b948e00e1..8cdf4ee07af3 100644 --- a/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yaml_config/validator/ut/validator_builder/CMakeLists.windows-x86_64.txt @@ -43,6 +43,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.darwin-arm64.txt b/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.darwin-arm64.txt index 0b02ef5a43af..f57405d8f97d 100644 --- a/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.darwin-arm64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.darwin-x86_64.txt b/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.darwin-x86_64.txt index 34f77f222d61..aab280905380 100644 --- a/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.darwin-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.linux-aarch64.txt b/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.linux-aarch64.txt index 42f7fe333117..92de541924f1 100644 --- a/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(yaml_config-validator-ut-validator_checks PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(yaml_config-validator-ut-validator_checks PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/ut/validator_checks/validator_checks_ut.cpp @@ -53,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.linux-x86_64.txt b/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.linux-x86_64.txt index 89ff9e32ffb2..9c65e14e48d6 100644 --- a/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(yaml_config-validator-ut-validator_checks PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(yaml_config-validator-ut-validator_checks PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yaml_config/validator/ut/validator_checks/validator_checks_ut.cpp @@ -54,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.windows-x86_64.txt b/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.windows-x86_64.txt index ca67957eab43..ee586d8b89a3 100644 --- a/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yaml_config/validator/ut/validator_checks/CMakeLists.windows-x86_64.txt @@ -43,6 +43,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/ycloud/api/CMakeLists.darwin-arm64.txt b/ydb/library/ycloud/api/CMakeLists.darwin-arm64.txt index 2644f7fc5ea9..d81bd368f190 100644 --- a/ydb/library/ycloud/api/CMakeLists.darwin-arm64.txt +++ b/ydb/library/ycloud/api/CMakeLists.darwin-arm64.txt @@ -13,9 +13,17 @@ target_link_libraries(library-ycloud-api INTERFACE yutil client-yc_private-iam client-yc_private-servicecontrol + client-yc_private-accessservice client-yc_private-resourcemanager library-actors-core library-grpc-client ydb-core-base ydb-core-grpc_caching ) +target_sources(library-ycloud-api INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/access_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/folder_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/folder_service_transitional.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/iam_token_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/user_account_service.h +) diff --git a/ydb/library/ycloud/api/CMakeLists.darwin-x86_64.txt b/ydb/library/ycloud/api/CMakeLists.darwin-x86_64.txt index 2644f7fc5ea9..d81bd368f190 100644 --- a/ydb/library/ycloud/api/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/ycloud/api/CMakeLists.darwin-x86_64.txt @@ -13,9 +13,17 @@ target_link_libraries(library-ycloud-api INTERFACE yutil client-yc_private-iam client-yc_private-servicecontrol + client-yc_private-accessservice client-yc_private-resourcemanager library-actors-core library-grpc-client ydb-core-base ydb-core-grpc_caching ) +target_sources(library-ycloud-api INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/access_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/folder_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/folder_service_transitional.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/iam_token_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/user_account_service.h +) diff --git a/ydb/library/ycloud/api/CMakeLists.linux-aarch64.txt b/ydb/library/ycloud/api/CMakeLists.linux-aarch64.txt index 22bf4a03ea14..0c7b40bafcad 100644 --- a/ydb/library/ycloud/api/CMakeLists.linux-aarch64.txt +++ b/ydb/library/ycloud/api/CMakeLists.linux-aarch64.txt @@ -14,9 +14,17 @@ target_link_libraries(library-ycloud-api INTERFACE yutil client-yc_private-iam client-yc_private-servicecontrol + client-yc_private-accessservice client-yc_private-resourcemanager library-actors-core library-grpc-client ydb-core-base ydb-core-grpc_caching ) +target_sources(library-ycloud-api INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/access_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/folder_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/folder_service_transitional.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/iam_token_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/user_account_service.h +) diff --git a/ydb/library/ycloud/api/CMakeLists.linux-x86_64.txt b/ydb/library/ycloud/api/CMakeLists.linux-x86_64.txt index 22bf4a03ea14..0c7b40bafcad 100644 --- a/ydb/library/ycloud/api/CMakeLists.linux-x86_64.txt +++ b/ydb/library/ycloud/api/CMakeLists.linux-x86_64.txt @@ -14,9 +14,17 @@ target_link_libraries(library-ycloud-api INTERFACE yutil client-yc_private-iam client-yc_private-servicecontrol + client-yc_private-accessservice client-yc_private-resourcemanager library-actors-core library-grpc-client ydb-core-base ydb-core-grpc_caching ) +target_sources(library-ycloud-api INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/access_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/folder_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/folder_service_transitional.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/iam_token_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/user_account_service.h +) diff --git a/ydb/library/ycloud/api/CMakeLists.windows-x86_64.txt b/ydb/library/ycloud/api/CMakeLists.windows-x86_64.txt index 2644f7fc5ea9..d81bd368f190 100644 --- a/ydb/library/ycloud/api/CMakeLists.windows-x86_64.txt +++ b/ydb/library/ycloud/api/CMakeLists.windows-x86_64.txt @@ -13,9 +13,17 @@ target_link_libraries(library-ycloud-api INTERFACE yutil client-yc_private-iam client-yc_private-servicecontrol + client-yc_private-accessservice client-yc_private-resourcemanager library-actors-core library-grpc-client ydb-core-base ydb-core-grpc_caching ) +target_sources(library-ycloud-api INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/access_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/folder_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/folder_service_transitional.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/iam_token_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/api/user_account_service.h +) diff --git a/ydb/library/ycloud/impl/CMakeLists.darwin-arm64.txt b/ydb/library/ycloud/impl/CMakeLists.darwin-arm64.txt index 1338ae8e93aa..6c31d6eb8ee3 100644 --- a/ydb/library/ycloud/impl/CMakeLists.darwin-arm64.txt +++ b/ydb/library/ycloud/impl/CMakeLists.darwin-arm64.txt @@ -23,6 +23,16 @@ target_link_libraries(library-ycloud-impl PUBLIC lib-deprecated-kicli ) target_sources(library-ycloud-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service_transitional.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/grpc_service_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/grpc_service_client.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/grpc_service_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/iam_token_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/mock_access_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/service_account_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/user_account_service.h ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service.cpp ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service.cpp ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service_transitional.cpp diff --git a/ydb/library/ycloud/impl/CMakeLists.darwin-x86_64.txt b/ydb/library/ycloud/impl/CMakeLists.darwin-x86_64.txt index 1338ae8e93aa..6c31d6eb8ee3 100644 --- a/ydb/library/ycloud/impl/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/ycloud/impl/CMakeLists.darwin-x86_64.txt @@ -23,6 +23,16 @@ target_link_libraries(library-ycloud-impl PUBLIC lib-deprecated-kicli ) target_sources(library-ycloud-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service_transitional.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/grpc_service_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/grpc_service_client.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/grpc_service_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/iam_token_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/mock_access_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/service_account_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/user_account_service.h ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service.cpp ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service.cpp ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service_transitional.cpp diff --git a/ydb/library/ycloud/impl/CMakeLists.linux-aarch64.txt b/ydb/library/ycloud/impl/CMakeLists.linux-aarch64.txt index 0ef5e48a4ab4..25227b669d28 100644 --- a/ydb/library/ycloud/impl/CMakeLists.linux-aarch64.txt +++ b/ydb/library/ycloud/impl/CMakeLists.linux-aarch64.txt @@ -24,6 +24,16 @@ target_link_libraries(library-ycloud-impl PUBLIC lib-deprecated-kicli ) target_sources(library-ycloud-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service_transitional.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/grpc_service_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/grpc_service_client.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/grpc_service_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/iam_token_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/mock_access_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/service_account_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/user_account_service.h ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service.cpp ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service.cpp ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service_transitional.cpp diff --git a/ydb/library/ycloud/impl/CMakeLists.linux-x86_64.txt b/ydb/library/ycloud/impl/CMakeLists.linux-x86_64.txt index 0ef5e48a4ab4..25227b669d28 100644 --- a/ydb/library/ycloud/impl/CMakeLists.linux-x86_64.txt +++ b/ydb/library/ycloud/impl/CMakeLists.linux-x86_64.txt @@ -24,6 +24,16 @@ target_link_libraries(library-ycloud-impl PUBLIC lib-deprecated-kicli ) target_sources(library-ycloud-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service_transitional.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/grpc_service_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/grpc_service_client.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/grpc_service_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/iam_token_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/mock_access_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/service_account_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/user_account_service.h ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service.cpp ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service.cpp ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service_transitional.cpp diff --git a/ydb/library/ycloud/impl/CMakeLists.windows-x86_64.txt b/ydb/library/ycloud/impl/CMakeLists.windows-x86_64.txt index 1338ae8e93aa..6c31d6eb8ee3 100644 --- a/ydb/library/ycloud/impl/CMakeLists.windows-x86_64.txt +++ b/ydb/library/ycloud/impl/CMakeLists.windows-x86_64.txt @@ -23,6 +23,16 @@ target_link_libraries(library-ycloud-impl PUBLIC lib-deprecated-kicli ) target_sources(library-ycloud-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service_transitional.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/grpc_service_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/grpc_service_client.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/grpc_service_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/iam_token_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/mock_access_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/service_account_service.h + ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/user_account_service.h ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service.cpp ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service.cpp ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/folder_service_transitional.cpp diff --git a/ydb/library/ycloud/impl/ut/CMakeLists.darwin-arm64.txt b/ydb/library/ycloud/impl/ut/CMakeLists.darwin-arm64.txt index d302272e9bde..0466efe38bfd 100644 --- a/ydb/library/ycloud/impl/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/ycloud/impl/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-library-ycloud-impl-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-ycloud-impl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/ycloud/impl/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/ycloud/impl/ut/CMakeLists.darwin-x86_64.txt index bb1da9c69446..98585b4fe1ad 100644 --- a/ydb/library/ycloud/impl/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/ycloud/impl/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-library-ycloud-impl-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-ycloud-impl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/ycloud/impl/ut/CMakeLists.linux-aarch64.txt b/ydb/library/ycloud/impl/ut/CMakeLists.linux-aarch64.txt index 5192e4b68e71..f0a1b7e8318c 100644 --- a/ydb/library/ycloud/impl/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/ycloud/impl/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-library-ycloud-impl-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-ycloud-impl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/ycloud/impl/ut/CMakeLists.linux-x86_64.txt b/ydb/library/ycloud/impl/ut/CMakeLists.linux-x86_64.txt index 3c3c22851a65..9c997a9b2305 100644 --- a/ydb/library/ycloud/impl/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/ycloud/impl/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-library-ycloud-impl-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-ycloud-impl-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/ycloud/impl/access_service_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/ycloud/impl/ut/CMakeLists.windows-x86_64.txt b/ydb/library/ycloud/impl/ut/CMakeLists.windows-x86_64.txt index 3429e63f41ac..6de24534672d 100644 --- a/ydb/library/ycloud/impl/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/ycloud/impl/ut/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/ydb_issue/CMakeLists.darwin-arm64.txt b/ydb/library/ydb_issue/CMakeLists.darwin-arm64.txt index 69d90656e372..99c609c81e84 100644 --- a/ydb/library/ydb_issue/CMakeLists.darwin-arm64.txt +++ b/ydb/library/ydb_issue/CMakeLists.darwin-arm64.txt @@ -22,6 +22,7 @@ target_link_libraries(ydb-library-ydb_issue PUBLIC library-cpp-resource ) target_sources(ydb-library-ydb_issue PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/issue_helpers.h ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/issue_helpers.cpp ) diff --git a/ydb/library/ydb_issue/CMakeLists.darwin-x86_64.txt b/ydb/library/ydb_issue/CMakeLists.darwin-x86_64.txt index 69d90656e372..99c609c81e84 100644 --- a/ydb/library/ydb_issue/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/ydb_issue/CMakeLists.darwin-x86_64.txt @@ -22,6 +22,7 @@ target_link_libraries(ydb-library-ydb_issue PUBLIC library-cpp-resource ) target_sources(ydb-library-ydb_issue PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/issue_helpers.h ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/issue_helpers.cpp ) diff --git a/ydb/library/ydb_issue/CMakeLists.linux-aarch64.txt b/ydb/library/ydb_issue/CMakeLists.linux-aarch64.txt index 0184ab7c31c4..d1101d3b3595 100644 --- a/ydb/library/ydb_issue/CMakeLists.linux-aarch64.txt +++ b/ydb/library/ydb_issue/CMakeLists.linux-aarch64.txt @@ -23,6 +23,7 @@ target_link_libraries(ydb-library-ydb_issue PUBLIC library-cpp-resource ) target_sources(ydb-library-ydb_issue PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/issue_helpers.h ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/issue_helpers.cpp ) diff --git a/ydb/library/ydb_issue/CMakeLists.linux-x86_64.txt b/ydb/library/ydb_issue/CMakeLists.linux-x86_64.txt index 0184ab7c31c4..d1101d3b3595 100644 --- a/ydb/library/ydb_issue/CMakeLists.linux-x86_64.txt +++ b/ydb/library/ydb_issue/CMakeLists.linux-x86_64.txt @@ -23,6 +23,7 @@ target_link_libraries(ydb-library-ydb_issue PUBLIC library-cpp-resource ) target_sources(ydb-library-ydb_issue PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/issue_helpers.h ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/issue_helpers.cpp ) diff --git a/ydb/library/ydb_issue/CMakeLists.windows-x86_64.txt b/ydb/library/ydb_issue/CMakeLists.windows-x86_64.txt index 69d90656e372..99c609c81e84 100644 --- a/ydb/library/ydb_issue/CMakeLists.windows-x86_64.txt +++ b/ydb/library/ydb_issue/CMakeLists.windows-x86_64.txt @@ -22,6 +22,7 @@ target_link_libraries(ydb-library-ydb_issue PUBLIC library-cpp-resource ) target_sources(ydb-library-ydb_issue PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/issue_helpers.h ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/issue_helpers.cpp ) diff --git a/ydb/library/ydb_issue/proto/CMakeLists.darwin-arm64.txt b/ydb/library/ydb_issue/proto/CMakeLists.darwin-arm64.txt index d4c186028bc5..169ed2ccaea8 100644 --- a/ydb/library/ydb_issue/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/ydb_issue/proto/CMakeLists.darwin-arm64.txt @@ -39,6 +39,10 @@ target_link_libraries(library-ydb_issue-proto PUBLIC target_proto_messages(library-ydb_issue-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/proto/issue_id.proto ) +target_sources(library-ydb_issue-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/ydb_issue/proto/issue_id.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/ydb_issue/proto/issue_id.grpc.pb.h +) target_proto_addincls(library-ydb_issue-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/ydb_issue/proto/CMakeLists.darwin-x86_64.txt b/ydb/library/ydb_issue/proto/CMakeLists.darwin-x86_64.txt index d4c186028bc5..169ed2ccaea8 100644 --- a/ydb/library/ydb_issue/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/ydb_issue/proto/CMakeLists.darwin-x86_64.txt @@ -39,6 +39,10 @@ target_link_libraries(library-ydb_issue-proto PUBLIC target_proto_messages(library-ydb_issue-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/proto/issue_id.proto ) +target_sources(library-ydb_issue-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/ydb_issue/proto/issue_id.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/ydb_issue/proto/issue_id.grpc.pb.h +) target_proto_addincls(library-ydb_issue-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/ydb_issue/proto/CMakeLists.linux-aarch64.txt b/ydb/library/ydb_issue/proto/CMakeLists.linux-aarch64.txt index d5020cdff451..352a5b9f983e 100644 --- a/ydb/library/ydb_issue/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/ydb_issue/proto/CMakeLists.linux-aarch64.txt @@ -40,6 +40,10 @@ target_link_libraries(library-ydb_issue-proto PUBLIC target_proto_messages(library-ydb_issue-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/proto/issue_id.proto ) +target_sources(library-ydb_issue-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/ydb_issue/proto/issue_id.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/ydb_issue/proto/issue_id.grpc.pb.h +) target_proto_addincls(library-ydb_issue-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/ydb_issue/proto/CMakeLists.linux-x86_64.txt b/ydb/library/ydb_issue/proto/CMakeLists.linux-x86_64.txt index d5020cdff451..352a5b9f983e 100644 --- a/ydb/library/ydb_issue/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/ydb_issue/proto/CMakeLists.linux-x86_64.txt @@ -40,6 +40,10 @@ target_link_libraries(library-ydb_issue-proto PUBLIC target_proto_messages(library-ydb_issue-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/proto/issue_id.proto ) +target_sources(library-ydb_issue-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/ydb_issue/proto/issue_id.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/ydb_issue/proto/issue_id.grpc.pb.h +) target_proto_addincls(library-ydb_issue-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/ydb_issue/proto/CMakeLists.windows-x86_64.txt b/ydb/library/ydb_issue/proto/CMakeLists.windows-x86_64.txt index d4c186028bc5..169ed2ccaea8 100644 --- a/ydb/library/ydb_issue/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/ydb_issue/proto/CMakeLists.windows-x86_64.txt @@ -39,6 +39,10 @@ target_link_libraries(library-ydb_issue-proto PUBLIC target_proto_messages(library-ydb_issue-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/ydb_issue/proto/issue_id.proto ) +target_sources(library-ydb_issue-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/ydb_issue/proto/issue_id.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/ydb_issue/proto/issue_id.grpc.pb.h +) target_proto_addincls(library-ydb_issue-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/CMakeLists.darwin-arm64.txt b/ydb/library/yql/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..7f41afad8ef3 --- /dev/null +++ b/ydb/library/yql/CMakeLists.darwin-arm64.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_subdirectory(ast) +add_subdirectory(core) +add_subdirectory(dq) +add_subdirectory(minikql) +add_subdirectory(parser) +add_subdirectory(protos) +add_subdirectory(providers) +add_subdirectory(public) +add_subdirectory(sql) +add_subdirectory(tools) +add_subdirectory(udfs) +add_subdirectory(utils) diff --git a/ydb/library/yql/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..7f41afad8ef3 --- /dev/null +++ b/ydb/library/yql/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_subdirectory(ast) +add_subdirectory(core) +add_subdirectory(dq) +add_subdirectory(minikql) +add_subdirectory(parser) +add_subdirectory(protos) +add_subdirectory(providers) +add_subdirectory(public) +add_subdirectory(sql) +add_subdirectory(tools) +add_subdirectory(udfs) +add_subdirectory(utils) diff --git a/ydb/library/yql/CMakeLists.linux-aarch64.txt b/ydb/library/yql/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..f6abc3fa7fd4 --- /dev/null +++ b/ydb/library/yql/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_subdirectory(ast) +add_subdirectory(core) +add_subdirectory(dq) +add_subdirectory(minikql) +add_subdirectory(parser) +add_subdirectory(protos) +add_subdirectory(providers) +add_subdirectory(public) +add_subdirectory(sql) +add_subdirectory(tools) +add_subdirectory(udfs) +add_subdirectory(utils) +add_subdirectory(yt) diff --git a/ydb/library/yql/CMakeLists.linux-x86_64.txt b/ydb/library/yql/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..f6abc3fa7fd4 --- /dev/null +++ b/ydb/library/yql/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_subdirectory(ast) +add_subdirectory(core) +add_subdirectory(dq) +add_subdirectory(minikql) +add_subdirectory(parser) +add_subdirectory(protos) +add_subdirectory(providers) +add_subdirectory(public) +add_subdirectory(sql) +add_subdirectory(tools) +add_subdirectory(udfs) +add_subdirectory(utils) +add_subdirectory(yt) diff --git a/ydb/library/yql/CMakeLists.txt b/ydb/library/yql/CMakeLists.txt index 7f41afad8ef3..d863ebd18067 100644 --- a/ydb/library/yql/CMakeLists.txt +++ b/ydb/library/yql/CMakeLists.txt @@ -6,15 +6,14 @@ # original buildsystem will not be accepted. -add_subdirectory(ast) -add_subdirectory(core) -add_subdirectory(dq) -add_subdirectory(minikql) -add_subdirectory(parser) -add_subdirectory(protos) -add_subdirectory(providers) -add_subdirectory(public) -add_subdirectory(sql) -add_subdirectory(tools) -add_subdirectory(udfs) -add_subdirectory(utils) +if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/CMakeLists.windows-x86_64.txt b/ydb/library/yql/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..7f41afad8ef3 --- /dev/null +++ b/ydb/library/yql/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_subdirectory(ast) +add_subdirectory(core) +add_subdirectory(dq) +add_subdirectory(minikql) +add_subdirectory(parser) +add_subdirectory(protos) +add_subdirectory(providers) +add_subdirectory(public) +add_subdirectory(sql) +add_subdirectory(tools) +add_subdirectory(udfs) +add_subdirectory(utils) diff --git a/ydb/library/yql/ast/CMakeLists.darwin-arm64.txt b/ydb/library/yql/ast/CMakeLists.darwin-arm64.txt index 702a50bcc6e4..85c1c34fa320 100644 --- a/ydb/library/yql/ast/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/ast/CMakeLists.darwin-arm64.txt @@ -30,6 +30,16 @@ target_link_libraries(library-yql-ast PUBLIC api-protos ) target_sources(library-yql-ast PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_constraint.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_annotation.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_escaping.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_errors.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr_types.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_gc_nodes.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_type_string.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_constraint.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_annotation.cpp diff --git a/ydb/library/yql/ast/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/ast/CMakeLists.darwin-x86_64.txt index 702a50bcc6e4..85c1c34fa320 100644 --- a/ydb/library/yql/ast/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/ast/CMakeLists.darwin-x86_64.txt @@ -30,6 +30,16 @@ target_link_libraries(library-yql-ast PUBLIC api-protos ) target_sources(library-yql-ast PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_constraint.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_annotation.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_escaping.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_errors.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr_types.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_gc_nodes.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_type_string.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_constraint.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_annotation.cpp diff --git a/ydb/library/yql/ast/CMakeLists.linux-aarch64.txt b/ydb/library/yql/ast/CMakeLists.linux-aarch64.txt index 47978239dea2..821347803021 100644 --- a/ydb/library/yql/ast/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/ast/CMakeLists.linux-aarch64.txt @@ -31,6 +31,16 @@ target_link_libraries(library-yql-ast PUBLIC api-protos ) target_sources(library-yql-ast PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_constraint.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_annotation.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_escaping.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_errors.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr_types.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_gc_nodes.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_type_string.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_constraint.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_annotation.cpp diff --git a/ydb/library/yql/ast/CMakeLists.linux-x86_64.txt b/ydb/library/yql/ast/CMakeLists.linux-x86_64.txt index 47978239dea2..821347803021 100644 --- a/ydb/library/yql/ast/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/ast/CMakeLists.linux-x86_64.txt @@ -31,6 +31,16 @@ target_link_libraries(library-yql-ast PUBLIC api-protos ) target_sources(library-yql-ast PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_constraint.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_annotation.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_escaping.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_errors.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr_types.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_gc_nodes.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_type_string.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_constraint.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_annotation.cpp diff --git a/ydb/library/yql/ast/CMakeLists.windows-x86_64.txt b/ydb/library/yql/ast/CMakeLists.windows-x86_64.txt index 702a50bcc6e4..85c1c34fa320 100644 --- a/ydb/library/yql/ast/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/ast/CMakeLists.windows-x86_64.txt @@ -30,6 +30,16 @@ target_link_libraries(library-yql-ast PUBLIC api-protos ) target_sources(library-yql-ast PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_constraint.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_annotation.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_escaping.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_errors.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_expr_types.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_gc_nodes.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_type_string.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_constraint.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_annotation.cpp diff --git a/ydb/library/yql/ast/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/ast/ut/CMakeLists.darwin-arm64.txt index 2d2aa39df624..91dcb2804a3e 100644 --- a/ydb/library/yql/ast/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/ast/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-library-yql-ast-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-ast-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/ast/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/ast/ut/CMakeLists.darwin-x86_64.txt index f2a870304d3f..3db5300cf8c2 100644 --- a/ydb/library/yql/ast/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/ast/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-yql-ast-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-ast-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/ast/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/ast/ut/CMakeLists.linux-aarch64.txt index 88624472714d..677b546d3705 100644 --- a/ydb/library/yql/ast/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/ast/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-ast-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-ast-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/ast/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/ast/ut/CMakeLists.linux-x86_64.txt index 3266a9cadf3e..0d05ac7c09a3 100644 --- a/ydb/library/yql/ast/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/ast/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-ast-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-ast-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/ast/yql_ast_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/ast/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/ast/ut/CMakeLists.windows-x86_64.txt index 6ba9f06eaa08..6bdc81b2ad47 100644 --- a/ydb/library/yql/ast/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/ast/ut/CMakeLists.windows-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/CMakeLists.darwin-arm64.txt index 893a2f0cff9c..6efdb3a29eb6 100644 --- a/ydb/library/yql/core/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/CMakeLists.darwin-arm64.txt @@ -17,7 +17,7 @@ add_subdirectory(facade) add_subdirectory(file_storage) add_subdirectory(issue) add_subdirectory(peephole_opt) -add_subdirectory(progress_merger) +add_subdirectory(pg_settings) add_subdirectory(services) add_subdirectory(spilling) add_subdirectory(sql_types) @@ -83,6 +83,32 @@ target_link_libraries(library-yql-core PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(library-yql-core PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_atom_enums.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_callable_transform.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_csv.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_data_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_execution.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_constraint.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_csee.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_optimize.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_type_annotation.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_gc_transformer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_graph_transformer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_holding_file_storage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_join.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_match_recognize.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_proposed_by_data.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_range.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_rewrite_io.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_utils.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_window.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_type_annotation.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_type_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_index.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_index_package_set.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_user_data.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_user_data_storage.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_aggregate_expander.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_callable_transform.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_cost_function.cpp diff --git a/ydb/library/yql/core/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/CMakeLists.darwin-x86_64.txt index 893a2f0cff9c..6efdb3a29eb6 100644 --- a/ydb/library/yql/core/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/CMakeLists.darwin-x86_64.txt @@ -17,7 +17,7 @@ add_subdirectory(facade) add_subdirectory(file_storage) add_subdirectory(issue) add_subdirectory(peephole_opt) -add_subdirectory(progress_merger) +add_subdirectory(pg_settings) add_subdirectory(services) add_subdirectory(spilling) add_subdirectory(sql_types) @@ -83,6 +83,32 @@ target_link_libraries(library-yql-core PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(library-yql-core PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_atom_enums.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_callable_transform.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_csv.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_data_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_execution.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_constraint.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_csee.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_optimize.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_type_annotation.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_gc_transformer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_graph_transformer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_holding_file_storage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_join.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_match_recognize.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_proposed_by_data.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_range.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_rewrite_io.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_utils.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_window.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_type_annotation.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_type_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_index.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_index_package_set.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_user_data.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_user_data_storage.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_aggregate_expander.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_callable_transform.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_cost_function.cpp diff --git a/ydb/library/yql/core/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/CMakeLists.linux-aarch64.txt index f947778c5f20..fd3b96d74666 100644 --- a/ydb/library/yql/core/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/CMakeLists.linux-aarch64.txt @@ -17,6 +17,7 @@ add_subdirectory(facade) add_subdirectory(file_storage) add_subdirectory(issue) add_subdirectory(peephole_opt) +add_subdirectory(pg_settings) add_subdirectory(progress_merger) add_subdirectory(services) add_subdirectory(spilling) @@ -84,6 +85,32 @@ target_link_libraries(library-yql-core PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(library-yql-core PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_atom_enums.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_callable_transform.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_csv.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_data_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_execution.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_constraint.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_csee.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_optimize.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_type_annotation.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_gc_transformer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_graph_transformer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_holding_file_storage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_join.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_match_recognize.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_proposed_by_data.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_range.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_rewrite_io.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_utils.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_window.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_type_annotation.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_type_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_index.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_index_package_set.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_user_data.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_user_data_storage.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_aggregate_expander.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_callable_transform.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_cost_function.cpp diff --git a/ydb/library/yql/core/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/CMakeLists.linux-x86_64.txt index f947778c5f20..fd3b96d74666 100644 --- a/ydb/library/yql/core/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/CMakeLists.linux-x86_64.txt @@ -17,6 +17,7 @@ add_subdirectory(facade) add_subdirectory(file_storage) add_subdirectory(issue) add_subdirectory(peephole_opt) +add_subdirectory(pg_settings) add_subdirectory(progress_merger) add_subdirectory(services) add_subdirectory(spilling) @@ -84,6 +85,32 @@ target_link_libraries(library-yql-core PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(library-yql-core PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_atom_enums.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_callable_transform.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_csv.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_data_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_execution.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_constraint.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_csee.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_optimize.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_type_annotation.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_gc_transformer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_graph_transformer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_holding_file_storage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_join.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_match_recognize.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_proposed_by_data.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_range.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_rewrite_io.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_utils.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_window.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_type_annotation.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_type_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_index.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_index_package_set.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_user_data.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_user_data_storage.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_aggregate_expander.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_callable_transform.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_cost_function.cpp diff --git a/ydb/library/yql/core/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/CMakeLists.windows-x86_64.txt index 893a2f0cff9c..6efdb3a29eb6 100644 --- a/ydb/library/yql/core/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/CMakeLists.windows-x86_64.txt @@ -17,7 +17,7 @@ add_subdirectory(facade) add_subdirectory(file_storage) add_subdirectory(issue) add_subdirectory(peephole_opt) -add_subdirectory(progress_merger) +add_subdirectory(pg_settings) add_subdirectory(services) add_subdirectory(spilling) add_subdirectory(sql_types) @@ -83,6 +83,32 @@ target_link_libraries(library-yql-core PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(library-yql-core PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_atom_enums.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_callable_transform.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_csv.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_data_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_execution.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_constraint.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_csee.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_optimize.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_expr_type_annotation.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_gc_transformer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_graph_transformer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_holding_file_storage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_join.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_match_recognize.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_proposed_by_data.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_range.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_rewrite_io.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_utils.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_opt_window.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_type_annotation.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_type_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_index.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_index_package_set.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_udf_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_user_data.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_user_data_storage.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_aggregate_expander.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_callable_transform.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/yql_cost_function.cpp diff --git a/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.darwin-arm64.txt index 6a41655bc31f..642db2f019b7 100644 --- a/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.darwin-arm64.txt @@ -16,7 +16,7 @@ target_link_libraries(core-arrow_kernels-registry PUBLIC contrib-libs-cxxsupp yutil libs-apache-arrow - minikql-computation-llvm + yql-minikql-computation ) target_sources(core-arrow_kernels-registry PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/arrow_kernels/registry/registry.cpp diff --git a/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.darwin-x86_64.txt index 6a41655bc31f..642db2f019b7 100644 --- a/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.darwin-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(core-arrow_kernels-registry PUBLIC contrib-libs-cxxsupp yutil libs-apache-arrow - minikql-computation-llvm + yql-minikql-computation ) target_sources(core-arrow_kernels-registry PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/arrow_kernels/registry/registry.cpp diff --git a/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.linux-aarch64.txt index 4ab8b48283f3..a56ede852f85 100644 --- a/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.linux-aarch64.txt @@ -17,7 +17,7 @@ target_link_libraries(core-arrow_kernels-registry PUBLIC contrib-libs-cxxsupp yutil libs-apache-arrow - minikql-computation-llvm + yql-minikql-computation ) target_sources(core-arrow_kernels-registry PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/arrow_kernels/registry/registry.cpp diff --git a/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.linux-x86_64.txt index 4ab8b48283f3..a56ede852f85 100644 --- a/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.linux-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(core-arrow_kernels-registry PUBLIC contrib-libs-cxxsupp yutil libs-apache-arrow - minikql-computation-llvm + yql-minikql-computation ) target_sources(core-arrow_kernels-registry PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/arrow_kernels/registry/registry.cpp diff --git a/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.windows-x86_64.txt index 6a41655bc31f..642db2f019b7 100644 --- a/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/arrow_kernels/registry/CMakeLists.windows-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(core-arrow_kernels-registry PUBLIC contrib-libs-cxxsupp yutil libs-apache-arrow - minikql-computation-llvm + yql-minikql-computation ) target_sources(core-arrow_kernels-registry PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/arrow_kernels/registry/registry.cpp diff --git a/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.darwin-arm64.txt index 7ac91512bee6..69e47ba10f8f 100644 --- a/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.darwin-arm64.txt @@ -23,7 +23,7 @@ target_link_libraries(ydb-library-yql-core-arrow_kernels-registry-ut PUBLIC yql-public-udf udf-service-exception_policy yql-sql-pg_dummy - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 url_udf json2_udf ) @@ -31,8 +31,6 @@ target_link_options(ydb-library-yql-core-arrow_kernels-registry-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-core-arrow_kernels-registry-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/arrow_kernels/registry/ut/registry_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.darwin-x86_64.txt index db038741fe22..da212143fce1 100644 --- a/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.darwin-x86_64.txt @@ -24,7 +24,7 @@ target_link_libraries(ydb-library-yql-core-arrow_kernels-registry-ut PUBLIC yql-public-udf udf-service-exception_policy yql-sql-pg_dummy - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 url_udf json2_udf ) @@ -32,8 +32,6 @@ target_link_options(ydb-library-yql-core-arrow_kernels-registry-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-core-arrow_kernels-registry-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/arrow_kernels/registry/ut/registry_ut.cpp @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.linux-aarch64.txt index 1fb958c08e5d..482cb40c9fd9 100644 --- a/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.linux-aarch64.txt @@ -24,7 +24,7 @@ target_link_libraries(ydb-library-yql-core-arrow_kernels-registry-ut PUBLIC yql-public-udf udf-service-exception_policy yql-sql-pg_dummy - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 url_udf json2_udf ) @@ -34,9 +34,6 @@ target_link_options(ydb-library-yql-core-arrow_kernels-registry-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-core-arrow_kernels-registry-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/arrow_kernels/registry/ut/registry_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.linux-x86_64.txt index ed330312b4eb..f095babadaed 100644 --- a/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.linux-x86_64.txt @@ -25,7 +25,7 @@ target_link_libraries(ydb-library-yql-core-arrow_kernels-registry-ut PUBLIC yql-public-udf udf-service-exception_policy yql-sql-pg_dummy - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 url_udf json2_udf ) @@ -35,9 +35,6 @@ target_link_options(ydb-library-yql-core-arrow_kernels-registry-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-core-arrow_kernels-registry-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/arrow_kernels/registry/ut/registry_ut.cpp @@ -67,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.windows-x86_64.txt index 07f9af31ae66..2a3099e3cae1 100644 --- a/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/arrow_kernels/registry/ut/CMakeLists.windows-x86_64.txt @@ -24,7 +24,7 @@ target_link_libraries(ydb-library-yql-core-arrow_kernels-registry-ut PUBLIC yql-public-udf udf-service-exception_policy yql-sql-pg_dummy - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 url_udf json2_udf ) @@ -56,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/cbo/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/cbo/CMakeLists.darwin-arm64.txt index a06e4ec3c652..3c3b5585055f 100644 --- a/ydb/library/yql/core/cbo/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/cbo/CMakeLists.darwin-arm64.txt @@ -16,4 +16,5 @@ target_link_libraries(yql-core-cbo PUBLIC ) target_sources(yql-core-cbo PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer_new.cpp ) 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 a06e4ec3c652..3c3b5585055f 100644 --- a/ydb/library/yql/core/cbo/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/cbo/CMakeLists.darwin-x86_64.txt @@ -16,4 +16,5 @@ target_link_libraries(yql-core-cbo PUBLIC ) target_sources(yql-core-cbo PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer_new.cpp ) diff --git a/ydb/library/yql/core/cbo/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/cbo/CMakeLists.linux-aarch64.txt index c90606d74fbe..87ec80238957 100644 --- a/ydb/library/yql/core/cbo/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/cbo/CMakeLists.linux-aarch64.txt @@ -17,4 +17,5 @@ target_link_libraries(yql-core-cbo PUBLIC ) target_sources(yql-core-cbo PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer_new.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 c90606d74fbe..87ec80238957 100644 --- a/ydb/library/yql/core/cbo/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/cbo/CMakeLists.linux-x86_64.txt @@ -17,4 +17,5 @@ target_link_libraries(yql-core-cbo PUBLIC ) target_sources(yql-core-cbo PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer_new.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 a06e4ec3c652..3c3b5585055f 100644 --- a/ydb/library/yql/core/cbo/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/cbo/CMakeLists.windows-x86_64.txt @@ -16,4 +16,5 @@ target_link_libraries(yql-core-cbo PUBLIC ) target_sources(yql-core-cbo PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer_new.cpp ) diff --git a/ydb/library/yql/core/cbo/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/cbo/ut/CMakeLists.darwin-arm64.txt index c693089ecfec..bbf0b63df279 100644 --- a/ydb/library/yql/core/cbo/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/cbo/ut/CMakeLists.darwin-arm64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/cbo/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/cbo/ut/CMakeLists.darwin-x86_64.txt index cb1a714c04d9..a90b8daae1f3 100644 --- a/ydb/library/yql/core/cbo/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/cbo/ut/CMakeLists.darwin-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/cbo/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/cbo/ut/CMakeLists.linux-aarch64.txt index da291f0a8c88..466bd585890f 100644 --- a/ydb/library/yql/core/cbo/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/cbo/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-core-cbo-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-core-cbo-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/cbo/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/cbo/ut/CMakeLists.linux-x86_64.txt index 6e505912d7f5..6abe6333d584 100644 --- a/ydb/library/yql/core/cbo/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/cbo/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-core-cbo-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-core-cbo-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/cbo/cbo_optimizer_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/cbo/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/cbo/ut/CMakeLists.windows-x86_64.txt index 58b272fdf68c..1b175b9ac971 100644 --- a/ydb/library/yql/core/cbo/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/cbo/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/common_opt/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/common_opt/CMakeLists.darwin-arm64.txt index bc3eca545a3d..94ec2ebdbb51 100644 --- a/ydb/library/yql/core/common_opt/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/common_opt/CMakeLists.darwin-arm64.txt @@ -19,6 +19,9 @@ target_link_libraries(yql-core-common_opt PUBLIC yql-parser-pg_catalog ) target_sources(yql-core-common_opt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_pgselect.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_transformer.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_extr_members.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_flatmap_over_join.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_finalizers.cpp diff --git a/ydb/library/yql/core/common_opt/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/common_opt/CMakeLists.darwin-x86_64.txt index bc3eca545a3d..94ec2ebdbb51 100644 --- a/ydb/library/yql/core/common_opt/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/common_opt/CMakeLists.darwin-x86_64.txt @@ -19,6 +19,9 @@ target_link_libraries(yql-core-common_opt PUBLIC yql-parser-pg_catalog ) target_sources(yql-core-common_opt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_pgselect.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_transformer.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_extr_members.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_flatmap_over_join.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_finalizers.cpp diff --git a/ydb/library/yql/core/common_opt/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/common_opt/CMakeLists.linux-aarch64.txt index 35d9e8b6f7e0..bb75a6e3a5e8 100644 --- a/ydb/library/yql/core/common_opt/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/common_opt/CMakeLists.linux-aarch64.txt @@ -20,6 +20,9 @@ target_link_libraries(yql-core-common_opt PUBLIC yql-parser-pg_catalog ) target_sources(yql-core-common_opt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_pgselect.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_transformer.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_extr_members.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_flatmap_over_join.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_finalizers.cpp diff --git a/ydb/library/yql/core/common_opt/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/common_opt/CMakeLists.linux-x86_64.txt index 35d9e8b6f7e0..bb75a6e3a5e8 100644 --- a/ydb/library/yql/core/common_opt/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/common_opt/CMakeLists.linux-x86_64.txt @@ -20,6 +20,9 @@ target_link_libraries(yql-core-common_opt PUBLIC yql-parser-pg_catalog ) target_sources(yql-core-common_opt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_pgselect.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_transformer.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_extr_members.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_flatmap_over_join.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_finalizers.cpp diff --git a/ydb/library/yql/core/common_opt/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/common_opt/CMakeLists.windows-x86_64.txt index bc3eca545a3d..94ec2ebdbb51 100644 --- a/ydb/library/yql/core/common_opt/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/common_opt/CMakeLists.windows-x86_64.txt @@ -19,6 +19,9 @@ target_link_libraries(yql-core-common_opt PUBLIC yql-parser-pg_catalog ) target_sources(yql-core-common_opt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_pgselect.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_transformer.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_extr_members.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_flatmap_over_join.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/common_opt/yql_co_finalizers.cpp 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 490a089f5c1e..006fb580d2de 100644 --- a/ydb/library/yql/core/common_opt/yql_co_simple1.cpp +++ b/ydb/library/yql/core/common_opt/yql_co_simple1.cpp @@ -75,7 +75,7 @@ TExprNode::TPtr OptimizePgCastOverPgConst(const TExprNode::TPtr& input, TExprCon return input; } auto val = input->Child(0); - if (!val->IsCallable("PgConst")) { + if (!val->IsCallable("PgConst")) { return input; } @@ -85,7 +85,7 @@ TExprNode::TPtr OptimizePgCastOverPgConst(const TExprNode::TPtr& input, TExprCon YQL_CLOG(DEBUG, Core) << "Remove PgCast unknown->text over PgConst"; return ctx.ChangeChild(*val, 1, castToType); } - + return input; } @@ -6282,17 +6282,33 @@ void RegisterCoSimpleCallables1(TCallableOptimizerMap& map) { return node; }; - map["ShuffleByKeys"] = map["PartitionsByKeys"] = [](const TExprNode::TPtr& node, TExprContext& ctx, TOptimizeContext& optCtx) { + map["PartitionsByKeys"] = [](const TExprNode::TPtr& node, TExprContext& ctx, TOptimizeContext& optCtx) { if (IsEmpty(node->Head(), *optCtx.Types)) { YQL_CLOG(DEBUG, Core) << node->Content() << " over empty input."; - auto lambdaResult = ctx.Builder(node->Pos()).Apply(node->Tail()).With(0, KeepConstraints(node->HeadPtr(), node->Tail().Head().Head(), ctx)).Seal().Build(); - if (node->IsCallable("ShuffleByKeys")) { - auto lambdaType = node->Tail().GetTypeAnn(); - if (lambdaType->GetKind() == ETypeAnnotationKind::Optional) { - lambdaResult = ctx.NewCallable(lambdaResult->Pos(), "ToList", { lambdaResult }); - } else if (lambdaType->GetKind() == ETypeAnnotationKind::Stream) { - lambdaResult = ctx.NewCallable(lambdaResult->Pos(), "ForwardList", { lambdaResult }); - } + + TExprNode::TPtr sequence = KeepConstraints(node->HeadPtr(), node->Tail().Head().Head(), ctx); + auto lambdaResult = ctx.Builder(node->Pos()).Apply(node->Tail()).With(0, sequence).Seal().Build(); + return lambdaResult; + } + return node; + }; + + map["ShuffleByKeys"] = [](const TExprNode::TPtr& node, TExprContext& ctx, TOptimizeContext& optCtx) { + if (IsEmpty(node->Head(), *optCtx.Types)) { + YQL_CLOG(DEBUG, Core) << node->Content() << " over empty input."; + + auto& lambdaArg = node->Tail().Head().Head(); + + TExprNode::TPtr sequence = node->HeadPtr(); // param (list) + sequence = ctx.NewCallable(sequence->Pos(), "ToStream", { sequence }); // lambda accepts stream, but we have list type + sequence = KeepConstraints(sequence, lambdaArg, ctx); + + auto lambdaResult = ctx.Builder(node->Pos()).Apply(node->Tail()).With(0, sequence).Seal().Build(); + auto lambdaType = node->Tail().GetTypeAnn(); + if (lambdaType->GetKind() == ETypeAnnotationKind::Optional) { + lambdaResult = ctx.NewCallable(lambdaResult->Pos(), "ToList", { lambdaResult }); + } else if (lambdaType->GetKind() == ETypeAnnotationKind::Stream || lambdaType->GetKind() == ETypeAnnotationKind::Flow) { + lambdaResult = ctx.NewCallable(lambdaResult->Pos(), "ForwardList", { lambdaResult }); } return lambdaResult; } diff --git a/ydb/library/yql/core/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/expr_nodes/CMakeLists.darwin-arm64.txt index 43e5158e7913..2cd1907421b3 100644 --- a/ydb/library/yql/core/expr_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/expr_nodes/CMakeLists.darwin-arm64.txt @@ -17,6 +17,10 @@ target_link_libraries(yql-core-expr_nodes PUBLIC yql-core-issue ) target_sources(yql-core-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/core/expr_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/expr_nodes/CMakeLists.darwin-x86_64.txt index 43e5158e7913..2cd1907421b3 100644 --- a/ydb/library/yql/core/expr_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/expr_nodes/CMakeLists.darwin-x86_64.txt @@ -17,6 +17,10 @@ target_link_libraries(yql-core-expr_nodes PUBLIC yql-core-issue ) target_sources(yql-core-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/core/expr_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/expr_nodes/CMakeLists.linux-aarch64.txt index 5838e737ef49..52a2ff797a29 100644 --- a/ydb/library/yql/core/expr_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/expr_nodes/CMakeLists.linux-aarch64.txt @@ -18,6 +18,10 @@ target_link_libraries(yql-core-expr_nodes PUBLIC yql-core-issue ) target_sources(yql-core-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/core/expr_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/expr_nodes/CMakeLists.linux-x86_64.txt index 5838e737ef49..52a2ff797a29 100644 --- a/ydb/library/yql/core/expr_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/expr_nodes/CMakeLists.linux-x86_64.txt @@ -18,6 +18,10 @@ target_link_libraries(yql-core-expr_nodes PUBLIC yql-core-issue ) target_sources(yql-core-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/core/expr_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/expr_nodes/CMakeLists.windows-x86_64.txt index 43e5158e7913..2cd1907421b3 100644 --- a/ydb/library/yql/core/expr_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/expr_nodes/CMakeLists.windows-x86_64.txt @@ -17,6 +17,10 @@ target_link_libraries(yql-core-expr_nodes PUBLIC yql-core-issue ) target_sources(yql-core-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/core/expr_nodes/yql_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/core/expr_nodes_gen/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/expr_nodes_gen/CMakeLists.darwin-arm64.txt index cc364257b135..74876630826f 100644 --- a/ydb/library/yql/core/expr_nodes_gen/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/expr_nodes_gen/CMakeLists.darwin-arm64.txt @@ -15,5 +15,6 @@ target_link_libraries(yql-core-expr_nodes_gen PUBLIC yql-public-udf ) target_sources(yql-core-expr_nodes_gen PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.cpp ) diff --git a/ydb/library/yql/core/expr_nodes_gen/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/expr_nodes_gen/CMakeLists.darwin-x86_64.txt index cc364257b135..74876630826f 100644 --- a/ydb/library/yql/core/expr_nodes_gen/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/expr_nodes_gen/CMakeLists.darwin-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(yql-core-expr_nodes_gen PUBLIC yql-public-udf ) target_sources(yql-core-expr_nodes_gen PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.cpp ) diff --git a/ydb/library/yql/core/expr_nodes_gen/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/expr_nodes_gen/CMakeLists.linux-aarch64.txt index cdbd4f403dae..86373eaaff9a 100644 --- a/ydb/library/yql/core/expr_nodes_gen/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/expr_nodes_gen/CMakeLists.linux-aarch64.txt @@ -16,5 +16,6 @@ target_link_libraries(yql-core-expr_nodes_gen PUBLIC yql-public-udf ) target_sources(yql-core-expr_nodes_gen PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.cpp ) diff --git a/ydb/library/yql/core/expr_nodes_gen/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/expr_nodes_gen/CMakeLists.linux-x86_64.txt index cdbd4f403dae..86373eaaff9a 100644 --- a/ydb/library/yql/core/expr_nodes_gen/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/expr_nodes_gen/CMakeLists.linux-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(yql-core-expr_nodes_gen PUBLIC yql-public-udf ) target_sources(yql-core-expr_nodes_gen PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.cpp ) diff --git a/ydb/library/yql/core/expr_nodes_gen/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/expr_nodes_gen/CMakeLists.windows-x86_64.txt index cc364257b135..74876630826f 100644 --- a/ydb/library/yql/core/expr_nodes_gen/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/expr_nodes_gen/CMakeLists.windows-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(yql-core-expr_nodes_gen PUBLIC yql-public-udf ) target_sources(yql-core-expr_nodes_gen PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.cpp ) diff --git a/ydb/library/yql/core/extract_predicate/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/extract_predicate/CMakeLists.darwin-arm64.txt index fac989d417e2..ac57a79223b1 100644 --- a/ydb/library/yql/core/extract_predicate/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/extract_predicate/CMakeLists.darwin-arm64.txt @@ -16,8 +16,12 @@ target_link_libraries(yql-core-extract_predicate PUBLIC contrib-libs-cxxsupp yutil yql-core-services + yql-core-type_ann ) target_sources(yql-core-extract_predicate PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_dbg.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_dbg.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_impl.cpp ) diff --git a/ydb/library/yql/core/extract_predicate/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/extract_predicate/CMakeLists.darwin-x86_64.txt index fac989d417e2..ac57a79223b1 100644 --- a/ydb/library/yql/core/extract_predicate/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/extract_predicate/CMakeLists.darwin-x86_64.txt @@ -16,8 +16,12 @@ target_link_libraries(yql-core-extract_predicate PUBLIC contrib-libs-cxxsupp yutil yql-core-services + yql-core-type_ann ) target_sources(yql-core-extract_predicate PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_dbg.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_dbg.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_impl.cpp ) diff --git a/ydb/library/yql/core/extract_predicate/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/extract_predicate/CMakeLists.linux-aarch64.txt index cd26b7920e8e..ec164e9ef2eb 100644 --- a/ydb/library/yql/core/extract_predicate/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/extract_predicate/CMakeLists.linux-aarch64.txt @@ -17,8 +17,12 @@ target_link_libraries(yql-core-extract_predicate PUBLIC contrib-libs-cxxsupp yutil yql-core-services + yql-core-type_ann ) target_sources(yql-core-extract_predicate PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_dbg.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_dbg.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_impl.cpp ) diff --git a/ydb/library/yql/core/extract_predicate/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/extract_predicate/CMakeLists.linux-x86_64.txt index cd26b7920e8e..ec164e9ef2eb 100644 --- a/ydb/library/yql/core/extract_predicate/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/extract_predicate/CMakeLists.linux-x86_64.txt @@ -17,8 +17,12 @@ target_link_libraries(yql-core-extract_predicate PUBLIC contrib-libs-cxxsupp yutil yql-core-services + yql-core-type_ann ) target_sources(yql-core-extract_predicate PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_dbg.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_dbg.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_impl.cpp ) diff --git a/ydb/library/yql/core/extract_predicate/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/extract_predicate/CMakeLists.windows-x86_64.txt index fac989d417e2..ac57a79223b1 100644 --- a/ydb/library/yql/core/extract_predicate/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/extract_predicate/CMakeLists.windows-x86_64.txt @@ -16,8 +16,12 @@ target_link_libraries(yql-core-extract_predicate PUBLIC contrib-libs-cxxsupp yutil yql-core-services + yql-core-type_ann ) target_sources(yql-core-extract_predicate PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_dbg.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_dbg.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/extract_predicate_impl.cpp ) diff --git a/ydb/library/yql/core/extract_predicate/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/extract_predicate/ut/CMakeLists.darwin-arm64.txt index 50899006884a..31066a3229c3 100644 --- a/ydb/library/yql/core/extract_predicate/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/extract_predicate/ut/CMakeLists.darwin-arm64.txt @@ -32,14 +32,16 @@ target_link_libraries(ydb-library-yql-core-extract_predicate-ut PUBLIC providers-result-provider yt-gateway-file providers-yt-provider + yt-codec-codegen + yt-comp_nodes-llvm14 + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 yql-sql-pg ) target_link_options(ydb-library-yql-core-extract_predicate-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-core-extract_predicate-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/ut/extract_predicate_ut.cpp @@ -69,6 +71,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/extract_predicate/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/extract_predicate/ut/CMakeLists.darwin-x86_64.txt index cc3c69e8589d..f1937fd53d0a 100644 --- a/ydb/library/yql/core/extract_predicate/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/extract_predicate/ut/CMakeLists.darwin-x86_64.txt @@ -33,14 +33,16 @@ target_link_libraries(ydb-library-yql-core-extract_predicate-ut PUBLIC providers-result-provider yt-gateway-file providers-yt-provider + yt-codec-codegen + yt-comp_nodes-llvm14 + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 yql-sql-pg ) target_link_options(ydb-library-yql-core-extract_predicate-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-core-extract_predicate-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/ut/extract_predicate_ut.cpp @@ -70,6 +72,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/extract_predicate/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/extract_predicate/ut/CMakeLists.linux-aarch64.txt index 2833634a93be..0fd17e460b39 100644 --- a/ydb/library/yql/core/extract_predicate/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/extract_predicate/ut/CMakeLists.linux-aarch64.txt @@ -33,6 +33,10 @@ target_link_libraries(ydb-library-yql-core-extract_predicate-ut PUBLIC providers-result-provider yt-gateway-file providers-yt-provider + yt-codec-codegen + yt-comp_nodes-llvm14 + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 yql-sql-pg ) target_link_options(ydb-library-yql-core-extract_predicate-ut PRIVATE @@ -41,10 +45,6 @@ target_link_options(ydb-library-yql-core-extract_predicate-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(ydb-library-yql-core-extract_predicate-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/ut/extract_predicate_ut.cpp @@ -74,6 +74,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/extract_predicate/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/extract_predicate/ut/CMakeLists.linux-x86_64.txt index 2692d358a445..4a3c4483c0cf 100644 --- a/ydb/library/yql/core/extract_predicate/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/extract_predicate/ut/CMakeLists.linux-x86_64.txt @@ -34,6 +34,10 @@ target_link_libraries(ydb-library-yql-core-extract_predicate-ut PUBLIC providers-result-provider yt-gateway-file providers-yt-provider + yt-codec-codegen + yt-comp_nodes-llvm14 + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 yql-sql-pg ) target_link_options(ydb-library-yql-core-extract_predicate-ut PRIVATE @@ -42,10 +46,6 @@ target_link_options(ydb-library-yql-core-extract_predicate-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(ydb-library-yql-core-extract_predicate-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/extract_predicate/ut/extract_predicate_ut.cpp @@ -75,6 +75,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/extract_predicate/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/extract_predicate/ut/CMakeLists.windows-x86_64.txt index 5f4c8e6a53c0..8d30783b0ec5 100644 --- a/ydb/library/yql/core/extract_predicate/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/extract_predicate/ut/CMakeLists.windows-x86_64.txt @@ -33,6 +33,10 @@ target_link_libraries(ydb-library-yql-core-extract_predicate-ut PUBLIC providers-result-provider yt-gateway-file providers-yt-provider + yt-codec-codegen + yt-comp_nodes-llvm14 + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 yql-sql-pg ) target_sources(ydb-library-yql-core-extract_predicate-ut PRIVATE @@ -63,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/file_storage/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/file_storage/CMakeLists.darwin-arm64.txt index 574c5b1c75ed..884086dcb778 100644 --- a/ydb/library/yql/core/file_storage/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/file_storage/CMakeLists.darwin-arm64.txt @@ -31,6 +31,10 @@ target_link_libraries(yql-core-file_storage PUBLIC yql-utils-fetch ) target_sources(yql-core-file_storage PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/sized_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/storage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/url_meta.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage_decorator.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/sized_cache.cpp diff --git a/ydb/library/yql/core/file_storage/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/file_storage/CMakeLists.darwin-x86_64.txt index 574c5b1c75ed..884086dcb778 100644 --- a/ydb/library/yql/core/file_storage/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/file_storage/CMakeLists.darwin-x86_64.txt @@ -31,6 +31,10 @@ target_link_libraries(yql-core-file_storage PUBLIC yql-utils-fetch ) target_sources(yql-core-file_storage PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/sized_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/storage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/url_meta.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage_decorator.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/sized_cache.cpp diff --git a/ydb/library/yql/core/file_storage/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/file_storage/CMakeLists.linux-aarch64.txt index 479f52e981d5..77a85e938ba7 100644 --- a/ydb/library/yql/core/file_storage/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/file_storage/CMakeLists.linux-aarch64.txt @@ -32,6 +32,10 @@ target_link_libraries(yql-core-file_storage PUBLIC yql-utils-fetch ) target_sources(yql-core-file_storage PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/sized_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/storage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/url_meta.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage_decorator.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/sized_cache.cpp diff --git a/ydb/library/yql/core/file_storage/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/file_storage/CMakeLists.linux-x86_64.txt index 479f52e981d5..77a85e938ba7 100644 --- a/ydb/library/yql/core/file_storage/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/file_storage/CMakeLists.linux-x86_64.txt @@ -32,6 +32,10 @@ target_link_libraries(yql-core-file_storage PUBLIC yql-utils-fetch ) target_sources(yql-core-file_storage PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/sized_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/storage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/url_meta.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage_decorator.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/sized_cache.cpp diff --git a/ydb/library/yql/core/file_storage/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/file_storage/CMakeLists.windows-x86_64.txt index 574c5b1c75ed..884086dcb778 100644 --- a/ydb/library/yql/core/file_storage/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/file_storage/CMakeLists.windows-x86_64.txt @@ -31,6 +31,10 @@ target_link_libraries(yql-core-file_storage PUBLIC yql-utils-fetch ) target_sources(yql-core-file_storage PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/sized_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/storage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/url_meta.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage_decorator.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/sized_cache.cpp diff --git a/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.darwin-arm64.txt index a162bb7e14c7..3b01134758ef 100644 --- a/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(file_storage-http_download-proto PUBLIC target_proto_messages(file_storage-http_download-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/http_download/proto/http_download.proto ) +target_sources(file_storage-http_download-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/file_storage/http_download/proto/http_download.pb.h +) target_proto_addincls(file_storage-http_download-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.darwin-x86_64.txt index a162bb7e14c7..3b01134758ef 100644 --- a/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(file_storage-http_download-proto PUBLIC target_proto_messages(file_storage-http_download-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/http_download/proto/http_download.proto ) +target_sources(file_storage-http_download-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/file_storage/http_download/proto/http_download.pb.h +) target_proto_addincls(file_storage-http_download-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.linux-aarch64.txt index bc86b2fc123e..facc9a23dd29 100644 --- a/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(file_storage-http_download-proto PUBLIC target_proto_messages(file_storage-http_download-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/http_download/proto/http_download.proto ) +target_sources(file_storage-http_download-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/file_storage/http_download/proto/http_download.pb.h +) target_proto_addincls(file_storage-http_download-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.linux-x86_64.txt index bc86b2fc123e..facc9a23dd29 100644 --- a/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(file_storage-http_download-proto PUBLIC target_proto_messages(file_storage-http_download-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/http_download/proto/http_download.proto ) +target_sources(file_storage-http_download-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/file_storage/http_download/proto/http_download.pb.h +) target_proto_addincls(file_storage-http_download-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.windows-x86_64.txt index a162bb7e14c7..3b01134758ef 100644 --- a/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/file_storage/http_download/proto/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(file_storage-http_download-proto PUBLIC target_proto_messages(file_storage-http_download-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/http_download/proto/http_download.proto ) +target_sources(file_storage-http_download-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/file_storage/http_download/proto/http_download.pb.h +) target_proto_addincls(file_storage-http_download-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/core/file_storage/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/file_storage/proto/CMakeLists.darwin-arm64.txt index 2f9785282f06..55fdc4cecdd5 100644 --- a/ydb/library/yql/core/file_storage/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/file_storage/proto/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(core-file_storage-proto PUBLIC target_proto_messages(core-file_storage-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/proto/file_storage.proto ) +target_sources(core-file_storage-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/file_storage/proto/file_storage.pb.h +) target_proto_addincls(core-file_storage-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/core/file_storage/proto/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/file_storage/proto/CMakeLists.darwin-x86_64.txt index 2f9785282f06..55fdc4cecdd5 100644 --- a/ydb/library/yql/core/file_storage/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/file_storage/proto/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(core-file_storage-proto PUBLIC target_proto_messages(core-file_storage-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/proto/file_storage.proto ) +target_sources(core-file_storage-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/file_storage/proto/file_storage.pb.h +) target_proto_addincls(core-file_storage-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/core/file_storage/proto/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/file_storage/proto/CMakeLists.linux-aarch64.txt index b93e2f129a5f..1e420642b495 100644 --- a/ydb/library/yql/core/file_storage/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/file_storage/proto/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(core-file_storage-proto PUBLIC target_proto_messages(core-file_storage-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/proto/file_storage.proto ) +target_sources(core-file_storage-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/file_storage/proto/file_storage.pb.h +) target_proto_addincls(core-file_storage-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/core/file_storage/proto/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/file_storage/proto/CMakeLists.linux-x86_64.txt index b93e2f129a5f..1e420642b495 100644 --- a/ydb/library/yql/core/file_storage/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/file_storage/proto/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(core-file_storage-proto PUBLIC target_proto_messages(core-file_storage-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/proto/file_storage.proto ) +target_sources(core-file_storage-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/file_storage/proto/file_storage.pb.h +) target_proto_addincls(core-file_storage-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/core/file_storage/proto/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/file_storage/proto/CMakeLists.windows-x86_64.txt index 2f9785282f06..55fdc4cecdd5 100644 --- a/ydb/library/yql/core/file_storage/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/file_storage/proto/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(core-file_storage-proto PUBLIC target_proto_messages(core-file_storage-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/proto/file_storage.proto ) +target_sources(core-file_storage-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/file_storage/proto/file_storage.pb.h +) target_proto_addincls(core-file_storage-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/core/file_storage/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/file_storage/ut/CMakeLists.darwin-arm64.txt index 841ea954e0ad..dc5ef69af419 100644 --- a/ydb/library/yql/core/file_storage/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/file_storage/ut/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-library-yql-core-file_storage-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-core-file_storage-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/file_storage/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/file_storage/ut/CMakeLists.darwin-x86_64.txt index d059e1301cfa..aafac6a701e4 100644 --- a/ydb/library/yql/core/file_storage/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/file_storage/ut/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-library-yql-core-file_storage-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-core-file_storage-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/file_storage/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/file_storage/ut/CMakeLists.linux-aarch64.txt index 3f6887b081d9..ce8e3d47e6d4 100644 --- a/ydb/library/yql/core/file_storage/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/file_storage/ut/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-library-yql-core-file_storage-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-core-file_storage-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/file_storage/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/file_storage/ut/CMakeLists.linux-x86_64.txt index 52e9877be018..96aa7d66803f 100644 --- a/ydb/library/yql/core/file_storage/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/file_storage/ut/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-library-yql-core-file_storage-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-core-file_storage-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/file_storage/file_storage_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/file_storage/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/file_storage/ut/CMakeLists.windows-x86_64.txt index b3da167e1c2c..8307421400fe 100644 --- a/ydb/library/yql/core/file_storage/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/file_storage/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/issue/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/issue/protos/CMakeLists.darwin-arm64.txt index 1cc572225f45..ba9974219624 100644 --- a/ydb/library/yql/core/issue/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/issue/protos/CMakeLists.darwin-arm64.txt @@ -29,6 +29,9 @@ target_link_libraries(core-issue-protos PUBLIC target_proto_messages(core-issue-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/issue/protos/issue_id.proto ) +target_sources(core-issue-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/issue/protos/issue_id.pb.h +) target_proto_addincls(core-issue-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/core/issue/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/issue/protos/CMakeLists.darwin-x86_64.txt index 1cc572225f45..ba9974219624 100644 --- a/ydb/library/yql/core/issue/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/issue/protos/CMakeLists.darwin-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(core-issue-protos PUBLIC target_proto_messages(core-issue-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/issue/protos/issue_id.proto ) +target_sources(core-issue-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/issue/protos/issue_id.pb.h +) target_proto_addincls(core-issue-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/core/issue/protos/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/issue/protos/CMakeLists.linux-aarch64.txt index 77f8a56e52df..b9593e586356 100644 --- a/ydb/library/yql/core/issue/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/issue/protos/CMakeLists.linux-aarch64.txt @@ -30,6 +30,9 @@ target_link_libraries(core-issue-protos PUBLIC target_proto_messages(core-issue-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/issue/protos/issue_id.proto ) +target_sources(core-issue-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/issue/protos/issue_id.pb.h +) target_proto_addincls(core-issue-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/core/issue/protos/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/issue/protos/CMakeLists.linux-x86_64.txt index 77f8a56e52df..b9593e586356 100644 --- a/ydb/library/yql/core/issue/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/issue/protos/CMakeLists.linux-x86_64.txt @@ -30,6 +30,9 @@ target_link_libraries(core-issue-protos PUBLIC target_proto_messages(core-issue-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/issue/protos/issue_id.proto ) +target_sources(core-issue-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/issue/protos/issue_id.pb.h +) target_proto_addincls(core-issue-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/core/issue/protos/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/issue/protos/CMakeLists.windows-x86_64.txt index 1cc572225f45..ba9974219624 100644 --- a/ydb/library/yql/core/issue/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/issue/protos/CMakeLists.windows-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(core-issue-protos PUBLIC target_proto_messages(core-issue-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/issue/protos/issue_id.proto ) +target_sources(core-issue-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/core/issue/protos/issue_id.pb.h +) target_proto_addincls(core-issue-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/core/issue/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/issue/ut/CMakeLists.darwin-arm64.txt index 69d0a2b9e4b0..fe5312676e95 100644 --- a/ydb/library/yql/core/issue/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/issue/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-library-yql-core-issue-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-core-issue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/issue/yql_issue_ut.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/issue/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/issue/ut/CMakeLists.darwin-x86_64.txt index 7a53efee2b2e..22e48d5fe5bf 100644 --- a/ydb/library/yql/core/issue/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/issue/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-yql-core-issue-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-core-issue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/issue/yql_issue_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/issue/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/issue/ut/CMakeLists.linux-aarch64.txt index 1f2d4a182e63..1f0be0cfad28 100644 --- a/ydb/library/yql/core/issue/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/issue/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-core-issue-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-core-issue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/issue/yql_issue_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/issue/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/issue/ut/CMakeLists.linux-x86_64.txt index 2f7f1d1c96e3..d15494fe9aed 100644 --- a/ydb/library/yql/core/issue/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/issue/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-core-issue-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-core-issue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/issue/yql_issue_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/issue/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/issue/ut/CMakeLists.windows-x86_64.txt index bc433fad6d20..dee7e469c53b 100644 --- a/ydb/library/yql/core/issue/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/issue/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/peephole_opt/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/peephole_opt/CMakeLists.darwin-arm64.txt index 294ed16d9b6f..999b43c5f021 100644 --- a/ydb/library/yql/core/peephole_opt/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/peephole_opt/CMakeLists.darwin-arm64.txt @@ -19,6 +19,8 @@ target_link_libraries(yql-core-peephole_opt PUBLIC yql-core-type_ann ) target_sources(yql-core-peephole_opt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_json_peephole_physical.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_json_peephole_physical.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp ) diff --git a/ydb/library/yql/core/peephole_opt/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/peephole_opt/CMakeLists.darwin-x86_64.txt index 294ed16d9b6f..999b43c5f021 100644 --- a/ydb/library/yql/core/peephole_opt/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/peephole_opt/CMakeLists.darwin-x86_64.txt @@ -19,6 +19,8 @@ target_link_libraries(yql-core-peephole_opt PUBLIC yql-core-type_ann ) target_sources(yql-core-peephole_opt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_json_peephole_physical.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_json_peephole_physical.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp ) diff --git a/ydb/library/yql/core/peephole_opt/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/peephole_opt/CMakeLists.linux-aarch64.txt index 36a6bbe0897b..f5e2726fec8c 100644 --- a/ydb/library/yql/core/peephole_opt/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/peephole_opt/CMakeLists.linux-aarch64.txt @@ -20,6 +20,8 @@ target_link_libraries(yql-core-peephole_opt PUBLIC yql-core-type_ann ) target_sources(yql-core-peephole_opt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_json_peephole_physical.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_json_peephole_physical.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp ) diff --git a/ydb/library/yql/core/peephole_opt/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/peephole_opt/CMakeLists.linux-x86_64.txt index 36a6bbe0897b..f5e2726fec8c 100644 --- a/ydb/library/yql/core/peephole_opt/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/peephole_opt/CMakeLists.linux-x86_64.txt @@ -20,6 +20,8 @@ target_link_libraries(yql-core-peephole_opt PUBLIC yql-core-type_ann ) target_sources(yql-core-peephole_opt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_json_peephole_physical.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_json_peephole_physical.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp ) diff --git a/ydb/library/yql/core/peephole_opt/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/peephole_opt/CMakeLists.windows-x86_64.txt index 294ed16d9b6f..999b43c5f021 100644 --- a/ydb/library/yql/core/peephole_opt/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/peephole_opt/CMakeLists.windows-x86_64.txt @@ -19,6 +19,8 @@ target_link_libraries(yql-core-peephole_opt PUBLIC yql-core-type_ann ) target_sources(yql-core-peephole_opt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_json_peephole_physical.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_json_peephole_physical.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/peephole_opt/yql_opt_peephole_physical.cpp ) diff --git a/ydb/library/yql/core/pg_settings/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/pg_settings/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..a09e8279c47a --- /dev/null +++ b/ydb/library/yql/core/pg_settings/CMakeLists.darwin-arm64.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(yql-core-pg_settings) +target_link_libraries(yql-core-pg_settings PUBLIC + contrib-libs-cxxsupp + yutil +) +target_sources(yql-core-pg_settings PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/pg_settings/guc_settings.cpp +) diff --git a/ydb/library/yql/core/pg_settings/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/pg_settings/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..a09e8279c47a --- /dev/null +++ b/ydb/library/yql/core/pg_settings/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(yql-core-pg_settings) +target_link_libraries(yql-core-pg_settings PUBLIC + contrib-libs-cxxsupp + yutil +) +target_sources(yql-core-pg_settings PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/pg_settings/guc_settings.cpp +) diff --git a/ydb/library/yql/core/pg_settings/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/pg_settings/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..ca7642ae8214 --- /dev/null +++ b/ydb/library/yql/core/pg_settings/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(yql-core-pg_settings) +target_link_libraries(yql-core-pg_settings PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) +target_sources(yql-core-pg_settings PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/pg_settings/guc_settings.cpp +) diff --git a/ydb/library/yql/core/pg_settings/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/pg_settings/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..ca7642ae8214 --- /dev/null +++ b/ydb/library/yql/core/pg_settings/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(yql-core-pg_settings) +target_link_libraries(yql-core-pg_settings PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) +target_sources(yql-core-pg_settings PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/pg_settings/guc_settings.cpp +) diff --git a/ydb/library/yql/core/pg_settings/CMakeLists.txt b/ydb/library/yql/core/pg_settings/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/core/pg_settings/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/core/pg_settings/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/pg_settings/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..a09e8279c47a --- /dev/null +++ b/ydb/library/yql/core/pg_settings/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(yql-core-pg_settings) +target_link_libraries(yql-core-pg_settings PUBLIC + contrib-libs-cxxsupp + yutil +) +target_sources(yql-core-pg_settings PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/pg_settings/guc_settings.cpp +) diff --git a/ydb/library/yql/core/progress_merger/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/progress_merger/CMakeLists.linux-aarch64.txt index a70e77328078..8509c8729c6b 100644 --- a/ydb/library/yql/core/progress_merger/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/progress_merger/CMakeLists.linux-aarch64.txt @@ -15,5 +15,6 @@ target_link_libraries(yql-core-progress_merger PUBLIC library-yql-core ) target_sources(yql-core-progress_merger PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/progress_merger/progress_merger.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/progress_merger/progress_merger.cpp ) diff --git a/ydb/library/yql/core/progress_merger/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/progress_merger/CMakeLists.linux-x86_64.txt index a70e77328078..8509c8729c6b 100644 --- a/ydb/library/yql/core/progress_merger/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/progress_merger/CMakeLists.linux-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(yql-core-progress_merger PUBLIC library-yql-core ) target_sources(yql-core-progress_merger PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/progress_merger/progress_merger.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/progress_merger/progress_merger.cpp ) diff --git a/ydb/library/yql/core/progress_merger/CMakeLists.txt b/ydb/library/yql/core/progress_merger/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/ydb/library/yql/core/progress_merger/CMakeLists.txt +++ b/ydb/library/yql/core/progress_merger/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/ydb/library/yql/core/services/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/services/CMakeLists.darwin-arm64.txt index 6d3aac4b3077..1b443fd65ddb 100644 --- a/ydb/library/yql/core/services/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/services/CMakeLists.darwin-arm64.txt @@ -32,6 +32,12 @@ target_link_libraries(yql-core-services PUBLIC providers-result-expr_nodes ) target_sources(yql-core-services PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_expr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_params.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_out_transformers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_lineage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_plan.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_transform_pipeline.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_expr.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_params.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_out_transformers.cpp diff --git a/ydb/library/yql/core/services/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/services/CMakeLists.darwin-x86_64.txt index 6d3aac4b3077..1b443fd65ddb 100644 --- a/ydb/library/yql/core/services/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/services/CMakeLists.darwin-x86_64.txt @@ -32,6 +32,12 @@ target_link_libraries(yql-core-services PUBLIC providers-result-expr_nodes ) target_sources(yql-core-services PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_expr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_params.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_out_transformers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_lineage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_plan.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_transform_pipeline.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_expr.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_params.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_out_transformers.cpp diff --git a/ydb/library/yql/core/services/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/services/CMakeLists.linux-aarch64.txt index ea6113708ef0..d7af7db5b0d3 100644 --- a/ydb/library/yql/core/services/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/services/CMakeLists.linux-aarch64.txt @@ -33,6 +33,12 @@ target_link_libraries(yql-core-services PUBLIC providers-result-expr_nodes ) target_sources(yql-core-services PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_expr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_params.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_out_transformers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_lineage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_plan.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_transform_pipeline.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_expr.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_params.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_out_transformers.cpp diff --git a/ydb/library/yql/core/services/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/services/CMakeLists.linux-x86_64.txt index ea6113708ef0..d7af7db5b0d3 100644 --- a/ydb/library/yql/core/services/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/services/CMakeLists.linux-x86_64.txt @@ -33,6 +33,12 @@ target_link_libraries(yql-core-services PUBLIC providers-result-expr_nodes ) target_sources(yql-core-services PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_expr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_params.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_out_transformers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_lineage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_plan.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_transform_pipeline.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_expr.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_params.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_out_transformers.cpp diff --git a/ydb/library/yql/core/services/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/services/CMakeLists.windows-x86_64.txt index 6d3aac4b3077..1b443fd65ddb 100644 --- a/ydb/library/yql/core/services/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/services/CMakeLists.windows-x86_64.txt @@ -32,6 +32,12 @@ target_link_libraries(yql-core-services PUBLIC providers-result-expr_nodes ) target_sources(yql-core-services PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_expr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_params.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_out_transformers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_lineage.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_plan.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_transform_pipeline.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_expr.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_eval_params.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/yql_out_transformers.cpp diff --git a/ydb/library/yql/core/services/mounts/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/services/mounts/CMakeLists.darwin-arm64.txt index 656e2bf4a60b..b31254321e94 100644 --- a/ydb/library/yql/core/services/mounts/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/services/mounts/CMakeLists.darwin-arm64.txt @@ -25,6 +25,7 @@ target_link_libraries(core-services-mounts PUBLIC library-yql-core ) target_sources(core-services-mounts PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/mounts/yql_mounts.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/mounts/yql_mounts.cpp ) diff --git a/ydb/library/yql/core/services/mounts/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/services/mounts/CMakeLists.darwin-x86_64.txt index 656e2bf4a60b..b31254321e94 100644 --- a/ydb/library/yql/core/services/mounts/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/services/mounts/CMakeLists.darwin-x86_64.txt @@ -25,6 +25,7 @@ target_link_libraries(core-services-mounts PUBLIC library-yql-core ) target_sources(core-services-mounts PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/mounts/yql_mounts.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/mounts/yql_mounts.cpp ) diff --git a/ydb/library/yql/core/services/mounts/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/services/mounts/CMakeLists.linux-aarch64.txt index 336f24123f03..170c6cac621e 100644 --- a/ydb/library/yql/core/services/mounts/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/services/mounts/CMakeLists.linux-aarch64.txt @@ -26,6 +26,7 @@ target_link_libraries(core-services-mounts PUBLIC library-yql-core ) target_sources(core-services-mounts PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/mounts/yql_mounts.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/mounts/yql_mounts.cpp ) diff --git a/ydb/library/yql/core/services/mounts/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/services/mounts/CMakeLists.linux-x86_64.txt index 336f24123f03..170c6cac621e 100644 --- a/ydb/library/yql/core/services/mounts/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/services/mounts/CMakeLists.linux-x86_64.txt @@ -26,6 +26,7 @@ target_link_libraries(core-services-mounts PUBLIC library-yql-core ) target_sources(core-services-mounts PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/mounts/yql_mounts.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/mounts/yql_mounts.cpp ) diff --git a/ydb/library/yql/core/services/mounts/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/services/mounts/CMakeLists.windows-x86_64.txt index 656e2bf4a60b..b31254321e94 100644 --- a/ydb/library/yql/core/services/mounts/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/services/mounts/CMakeLists.windows-x86_64.txt @@ -25,6 +25,7 @@ target_link_libraries(core-services-mounts PUBLIC library-yql-core ) target_sources(core-services-mounts PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/mounts/yql_mounts.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/services/mounts/yql_mounts.cpp ) diff --git a/ydb/library/yql/core/spilling/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/spilling/CMakeLists.darwin-arm64.txt index e222b22bb9b9..6ffeea308ef6 100644 --- a/ydb/library/yql/core/spilling/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/spilling/CMakeLists.darwin-arm64.txt @@ -22,15 +22,13 @@ target_link_libraries(yql-core-spilling PUBLIC library-yql-utils yql-utils-log core-spilling-storage - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(yql-core-spilling PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/spilling_imp.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespaces_list.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespace_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/interface/spilling.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/spilling_imp.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespaces_list.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespace_cache.cpp diff --git a/ydb/library/yql/core/spilling/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/spilling/CMakeLists.darwin-x86_64.txt index e222b22bb9b9..6ffeea308ef6 100644 --- a/ydb/library/yql/core/spilling/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/spilling/CMakeLists.darwin-x86_64.txt @@ -22,15 +22,13 @@ target_link_libraries(yql-core-spilling PUBLIC library-yql-utils yql-utils-log core-spilling-storage - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(yql-core-spilling PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/spilling_imp.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespaces_list.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespace_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/interface/spilling.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/spilling_imp.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespaces_list.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespace_cache.cpp diff --git a/ydb/library/yql/core/spilling/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/spilling/CMakeLists.linux-aarch64.txt index de3eadabe428..6fae6a4d1cb9 100644 --- a/ydb/library/yql/core/spilling/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/spilling/CMakeLists.linux-aarch64.txt @@ -23,15 +23,13 @@ target_link_libraries(yql-core-spilling PUBLIC library-yql-utils yql-utils-log core-spilling-storage - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(yql-core-spilling PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/spilling_imp.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespaces_list.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespace_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/interface/spilling.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/spilling_imp.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespaces_list.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespace_cache.cpp diff --git a/ydb/library/yql/core/spilling/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/spilling/CMakeLists.linux-x86_64.txt index de3eadabe428..6fae6a4d1cb9 100644 --- a/ydb/library/yql/core/spilling/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/spilling/CMakeLists.linux-x86_64.txt @@ -23,15 +23,13 @@ target_link_libraries(yql-core-spilling PUBLIC library-yql-utils yql-utils-log core-spilling-storage - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(yql-core-spilling PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/spilling_imp.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespaces_list.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespace_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/interface/spilling.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/spilling_imp.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespaces_list.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespace_cache.cpp diff --git a/ydb/library/yql/core/spilling/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/spilling/CMakeLists.windows-x86_64.txt index e222b22bb9b9..6ffeea308ef6 100644 --- a/ydb/library/yql/core/spilling/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/spilling/CMakeLists.windows-x86_64.txt @@ -22,15 +22,13 @@ target_link_libraries(yql-core-spilling PUBLIC library-yql-utils yql-utils-log core-spilling-storage - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(yql-core-spilling PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/spilling_imp.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespaces_list.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespace_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/interface/spilling.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/spilling_imp.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespaces_list.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/namespace_cache.cpp diff --git a/ydb/library/yql/core/spilling/storage/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/spilling/storage/CMakeLists.darwin-arm64.txt index cd28502e3b34..2ba443623143 100644 --- a/ydb/library/yql/core/spilling/storage/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/spilling/storage/CMakeLists.darwin-arm64.txt @@ -18,14 +18,8 @@ target_link_libraries(core-spilling-storage PUBLIC contrib-libs-cxxsupp yutil spilling-storage-file_storage - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(core-spilling-storage PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.cpp ) diff --git a/ydb/library/yql/core/spilling/storage/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/spilling/storage/CMakeLists.darwin-x86_64.txt index cd28502e3b34..2ba443623143 100644 --- a/ydb/library/yql/core/spilling/storage/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/spilling/storage/CMakeLists.darwin-x86_64.txt @@ -18,14 +18,8 @@ target_link_libraries(core-spilling-storage PUBLIC contrib-libs-cxxsupp yutil spilling-storage-file_storage - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(core-spilling-storage PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.cpp ) diff --git a/ydb/library/yql/core/spilling/storage/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/spilling/storage/CMakeLists.linux-aarch64.txt index 4150b7499b73..23d52c9c37c9 100644 --- a/ydb/library/yql/core/spilling/storage/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/spilling/storage/CMakeLists.linux-aarch64.txt @@ -19,14 +19,8 @@ target_link_libraries(core-spilling-storage PUBLIC contrib-libs-cxxsupp yutil spilling-storage-file_storage - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(core-spilling-storage PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.cpp ) diff --git a/ydb/library/yql/core/spilling/storage/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/spilling/storage/CMakeLists.linux-x86_64.txt index 4150b7499b73..23d52c9c37c9 100644 --- a/ydb/library/yql/core/spilling/storage/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/spilling/storage/CMakeLists.linux-x86_64.txt @@ -19,14 +19,8 @@ target_link_libraries(core-spilling-storage PUBLIC contrib-libs-cxxsupp yutil spilling-storage-file_storage - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(core-spilling-storage PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.cpp ) diff --git a/ydb/library/yql/core/spilling/storage/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/spilling/storage/CMakeLists.windows-x86_64.txt index cd28502e3b34..2ba443623143 100644 --- a/ydb/library/yql/core/spilling/storage/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/spilling/storage/CMakeLists.windows-x86_64.txt @@ -18,14 +18,8 @@ target_link_libraries(core-spilling-storage PUBLIC contrib-libs-cxxsupp yutil spilling-storage-file_storage - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(core-spilling-storage PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/storage.cpp ) diff --git a/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.darwin-arm64.txt index 9028583a24d2..c74f29bea054 100644 --- a/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.darwin-arm64.txt @@ -16,13 +16,6 @@ target_link_libraries(spilling-storage-file_storage PUBLIC contrib-libs-cxxsupp yutil yql-utils-log - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(spilling-storage-file_storage PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/file_storage/file_storage.cpp diff --git a/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.darwin-x86_64.txt index 9028583a24d2..c74f29bea054 100644 --- a/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.darwin-x86_64.txt @@ -16,13 +16,6 @@ target_link_libraries(spilling-storage-file_storage PUBLIC contrib-libs-cxxsupp yutil yql-utils-log - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(spilling-storage-file_storage PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/file_storage/file_storage.cpp diff --git a/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.linux-aarch64.txt index e86132790a7c..c23ae3d5c886 100644 --- a/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.linux-aarch64.txt @@ -17,13 +17,6 @@ target_link_libraries(spilling-storage-file_storage PUBLIC contrib-libs-cxxsupp yutil yql-utils-log - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(spilling-storage-file_storage PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/file_storage/file_storage.cpp diff --git a/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.linux-x86_64.txt index e86132790a7c..c23ae3d5c886 100644 --- a/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.linux-x86_64.txt @@ -17,13 +17,6 @@ target_link_libraries(spilling-storage-file_storage PUBLIC contrib-libs-cxxsupp yutil yql-utils-log - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(spilling-storage-file_storage PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/file_storage/file_storage.cpp diff --git a/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.windows-x86_64.txt index 9028583a24d2..c74f29bea054 100644 --- a/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/spilling/storage/file_storage/CMakeLists.windows-x86_64.txt @@ -16,13 +16,6 @@ target_link_libraries(spilling-storage-file_storage PUBLIC contrib-libs-cxxsupp yutil yql-utils-log - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(spilling-storage-file_storage PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/file_storage/file_storage.cpp diff --git a/ydb/library/yql/core/spilling/storage/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/spilling/storage/ut/CMakeLists.darwin-arm64.txt index 38f8aecb242f..bb7257a31d98 100644 --- a/ydb/library/yql/core/spilling/storage/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/spilling/storage/ut/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-library-yql-core-spilling-storage-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-core-spilling-storage-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/ut/storage_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/spilling/storage/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/spilling/storage/ut/CMakeLists.darwin-x86_64.txt index 649467a4f98a..ca612a280a3b 100644 --- a/ydb/library/yql/core/spilling/storage/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/spilling/storage/ut/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-library-yql-core-spilling-storage-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-core-spilling-storage-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/ut/storage_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/spilling/storage/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/spilling/storage/ut/CMakeLists.linux-aarch64.txt index 44f49c0573da..ae30581790d8 100644 --- a/ydb/library/yql/core/spilling/storage/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/spilling/storage/ut/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-library-yql-core-spilling-storage-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-core-spilling-storage-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/ut/storage_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/spilling/storage/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/spilling/storage/ut/CMakeLists.linux-x86_64.txt index 3d9aeb7cdefd..8087d7cab073 100644 --- a/ydb/library/yql/core/spilling/storage/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/spilling/storage/ut/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-library-yql-core-spilling-storage-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-core-spilling-storage-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/storage/ut/storage_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/spilling/storage/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/spilling/storage/ut/CMakeLists.windows-x86_64.txt index 0185830a78a4..b8fc03cf23d2 100644 --- a/ydb/library/yql/core/spilling/storage/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/spilling/storage/ut/CMakeLists.windows-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/spilling/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/spilling/ut/CMakeLists.darwin-arm64.txt index c7f991250288..e095a24412f5 100644 --- a/ydb/library/yql/core/spilling/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/spilling/ut/CMakeLists.darwin-arm64.txt @@ -21,13 +21,12 @@ target_link_libraries(ydb-library-yql-core-spilling-ut PUBLIC yql-core-spilling yql-public-udf udf-service-exception_policy + yql-sql-pg_dummy ) target_link_options(ydb-library-yql-core-spilling-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-core-spilling-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/ut/spilling_ut.cpp @@ -57,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/spilling/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/spilling/ut/CMakeLists.darwin-x86_64.txt index ba4e853e58fd..cc634319260a 100644 --- a/ydb/library/yql/core/spilling/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/spilling/ut/CMakeLists.darwin-x86_64.txt @@ -22,13 +22,12 @@ target_link_libraries(ydb-library-yql-core-spilling-ut PUBLIC yql-core-spilling yql-public-udf udf-service-exception_policy + yql-sql-pg_dummy ) target_link_options(ydb-library-yql-core-spilling-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-core-spilling-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/ut/spilling_ut.cpp @@ -58,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/spilling/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/spilling/ut/CMakeLists.linux-aarch64.txt index 0fe44c249675..1414a8fd277f 100644 --- a/ydb/library/yql/core/spilling/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/spilling/ut/CMakeLists.linux-aarch64.txt @@ -22,6 +22,7 @@ target_link_libraries(ydb-library-yql-core-spilling-ut PUBLIC yql-core-spilling yql-public-udf udf-service-exception_policy + yql-sql-pg_dummy ) target_link_options(ydb-library-yql-core-spilling-ut PRIVATE -ldl @@ -29,9 +30,6 @@ target_link_options(ydb-library-yql-core-spilling-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-core-spilling-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/ut/spilling_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/spilling/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/spilling/ut/CMakeLists.linux-x86_64.txt index 33abfe68c084..73b7fb6fca5b 100644 --- a/ydb/library/yql/core/spilling/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/spilling/ut/CMakeLists.linux-x86_64.txt @@ -23,6 +23,7 @@ target_link_libraries(ydb-library-yql-core-spilling-ut PUBLIC yql-core-spilling yql-public-udf udf-service-exception_policy + yql-sql-pg_dummy ) target_link_options(ydb-library-yql-core-spilling-ut PRIVATE -ldl @@ -30,9 +31,6 @@ target_link_options(ydb-library-yql-core-spilling-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-core-spilling-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/ut/spilling_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/spilling/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/spilling/ut/CMakeLists.windows-x86_64.txt index 6d5ce50c09b8..9203c2457c79 100644 --- a/ydb/library/yql/core/spilling/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/spilling/ut/CMakeLists.windows-x86_64.txt @@ -22,6 +22,7 @@ target_link_libraries(ydb-library-yql-core-spilling-ut PUBLIC yql-core-spilling yql-public-udf udf-service-exception_policy + yql-sql-pg_dummy ) target_sources(ydb-library-yql-core-spilling-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/spilling/ut/spilling_ut.cpp @@ -51,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/sql_types/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/sql_types/CMakeLists.darwin-arm64.txt index 5d0fdac0e62e..d8ce4682fd79 100644 --- a/ydb/library/yql/core/sql_types/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/sql_types/CMakeLists.darwin-arm64.txt @@ -21,6 +21,8 @@ target_link_libraries(yql-core-sql_types PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(yql-core-sql_types PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/match_recognize.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/simple_types.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/match_recognize.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/simple_types.cpp ) diff --git a/ydb/library/yql/core/sql_types/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/sql_types/CMakeLists.darwin-x86_64.txt index 5d0fdac0e62e..d8ce4682fd79 100644 --- a/ydb/library/yql/core/sql_types/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/sql_types/CMakeLists.darwin-x86_64.txt @@ -21,6 +21,8 @@ target_link_libraries(yql-core-sql_types PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(yql-core-sql_types PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/match_recognize.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/simple_types.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/match_recognize.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/simple_types.cpp ) diff --git a/ydb/library/yql/core/sql_types/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/sql_types/CMakeLists.linux-aarch64.txt index f709108d6b24..5fe55bef62aa 100644 --- a/ydb/library/yql/core/sql_types/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/sql_types/CMakeLists.linux-aarch64.txt @@ -22,6 +22,8 @@ target_link_libraries(yql-core-sql_types PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(yql-core-sql_types PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/match_recognize.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/simple_types.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/match_recognize.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/simple_types.cpp ) diff --git a/ydb/library/yql/core/sql_types/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/sql_types/CMakeLists.linux-x86_64.txt index f709108d6b24..5fe55bef62aa 100644 --- a/ydb/library/yql/core/sql_types/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/sql_types/CMakeLists.linux-x86_64.txt @@ -22,6 +22,8 @@ target_link_libraries(yql-core-sql_types PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(yql-core-sql_types PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/match_recognize.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/simple_types.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/match_recognize.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/simple_types.cpp ) diff --git a/ydb/library/yql/core/sql_types/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/sql_types/CMakeLists.windows-x86_64.txt index 5d0fdac0e62e..d8ce4682fd79 100644 --- a/ydb/library/yql/core/sql_types/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/sql_types/CMakeLists.windows-x86_64.txt @@ -21,6 +21,8 @@ target_link_libraries(yql-core-sql_types PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(yql-core-sql_types PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/match_recognize.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/simple_types.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/match_recognize.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/simple_types.cpp ) diff --git a/ydb/library/yql/core/sql_types/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/sql_types/ut/CMakeLists.darwin-arm64.txt index 9728ef45fd4f..dac0ee6867ab 100644 --- a/ydb/library/yql/core/sql_types/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/sql_types/ut/CMakeLists.darwin-arm64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/sql_types/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/sql_types/ut/CMakeLists.darwin-x86_64.txt index f48e3fb51862..dc276458c32a 100644 --- a/ydb/library/yql/core/sql_types/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/sql_types/ut/CMakeLists.darwin-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/sql_types/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/sql_types/ut/CMakeLists.linux-aarch64.txt index 4e43cbcc6d30..0a136c1682fc 100644 --- a/ydb/library/yql/core/sql_types/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/sql_types/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-core-sql_types-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-core-sql_types-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/match_recognize_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/sql_types/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/sql_types/ut/CMakeLists.linux-x86_64.txt index c360cf201275..f3c6fef9671f 100644 --- a/ydb/library/yql/core/sql_types/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/sql_types/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-core-sql_types-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-core-sql_types-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/sql_types/match_recognize_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/sql_types/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/sql_types/ut/CMakeLists.windows-x86_64.txt index 6e38dd6b7b6b..d5d8dff029d8 100644 --- a/ydb/library/yql/core/sql_types/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/sql_types/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/type_ann/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/type_ann/CMakeLists.darwin-arm64.txt index 53f3b17275e8..a71929e6f70f 100644 --- a/ydb/library/yql/core/type_ann/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/type_ann/CMakeLists.darwin-arm64.txt @@ -28,6 +28,15 @@ target_link_libraries(yql-core-type_ann PUBLIC parser-pg_wrapper-interface ) target_sources(yql-core-type_ann PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_blocks.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_columnorder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_core.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_expr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_list.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_pg.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_types.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_wide.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_blocks.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_columnorder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_core.cpp diff --git a/ydb/library/yql/core/type_ann/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/type_ann/CMakeLists.darwin-x86_64.txt index 53f3b17275e8..a71929e6f70f 100644 --- a/ydb/library/yql/core/type_ann/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/type_ann/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,15 @@ target_link_libraries(yql-core-type_ann PUBLIC parser-pg_wrapper-interface ) target_sources(yql-core-type_ann PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_blocks.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_columnorder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_core.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_expr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_list.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_pg.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_types.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_wide.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_blocks.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_columnorder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_core.cpp diff --git a/ydb/library/yql/core/type_ann/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/type_ann/CMakeLists.linux-aarch64.txt index f4447a3d10e4..575af294e4bc 100644 --- a/ydb/library/yql/core/type_ann/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/type_ann/CMakeLists.linux-aarch64.txt @@ -29,6 +29,15 @@ target_link_libraries(yql-core-type_ann PUBLIC parser-pg_wrapper-interface ) target_sources(yql-core-type_ann PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_blocks.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_columnorder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_core.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_expr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_list.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_pg.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_types.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_wide.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_blocks.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_columnorder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_core.cpp diff --git a/ydb/library/yql/core/type_ann/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/type_ann/CMakeLists.linux-x86_64.txt index f4447a3d10e4..575af294e4bc 100644 --- a/ydb/library/yql/core/type_ann/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/type_ann/CMakeLists.linux-x86_64.txt @@ -29,6 +29,15 @@ target_link_libraries(yql-core-type_ann PUBLIC parser-pg_wrapper-interface ) target_sources(yql-core-type_ann PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_blocks.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_columnorder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_core.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_expr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_list.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_pg.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_types.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_wide.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_blocks.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_columnorder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_core.cpp diff --git a/ydb/library/yql/core/type_ann/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/type_ann/CMakeLists.windows-x86_64.txt index 53f3b17275e8..a71929e6f70f 100644 --- a/ydb/library/yql/core/type_ann/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/type_ann/CMakeLists.windows-x86_64.txt @@ -28,6 +28,15 @@ target_link_libraries(yql-core-type_ann PUBLIC parser-pg_wrapper-interface ) target_sources(yql-core-type_ann PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_blocks.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_columnorder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_core.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_expr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_list.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_pg.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_types.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_wide.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_blocks.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_columnorder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/type_ann/type_ann_core.cpp 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 5ad0621f1d9c..c9109ff550be 100644 --- a/ydb/library/yql/core/type_ann/type_ann_core.cpp +++ b/ydb/library/yql/core/type_ann/type_ann_core.cpp @@ -9495,7 +9495,7 @@ template <NKikimr::NUdf::EDataSlot DataSlot> // somewhat ugly attempt to find SqlProject to obtain column order auto currInput = input->HeadPtr(); TString path = ToString(input->Content()); - while (currInput->IsCallable({"PersistableRepr", "SqlAggregateAll", "RemoveSystemMembers", "Sort"})) { + while (currInput->IsCallable({"PersistableRepr", "SqlAggregateAll", "RemoveSystemMembers", "Sort", "Take", "Skip"})) { path = path + " -> " + ToString(currInput->Content()); currInput = currInput->HeadPtr(); } @@ -9510,7 +9510,7 @@ template <NKikimr::NUdf::EDataSlot DataSlot> for (const auto& item : currInput->Child(1)->ChildrenList()) { if (!item->IsCallable("SqlProjectItem")) { ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(item->Pos()), - TStringBuilder() << "Failed to deduce column order for input - star / qualified star is prosent in projection")); + TStringBuilder() << "Failed to deduce column order for input - star / qualified star is present in projection")); return IGraphTransformer::TStatus::Error; } childColumnOrder->push_back(ToString(item->Child(1)->Content())); diff --git a/ydb/library/yql/core/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/ut/CMakeLists.darwin-arm64.txt index cd9565c10210..56c24ed6d6a6 100644 --- a/ydb/library/yql/core/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/ut/CMakeLists.darwin-arm64.txt @@ -32,14 +32,16 @@ target_link_libraries(ydb-library-yql-core-ut PUBLIC providers-result-provider yt-gateway-file providers-yt-provider + yt-codec-codegen + yt-comp_nodes-llvm14 + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 yql-sql-pg ) target_link_options(ydb-library-yql-core-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-core-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut/yql_csv_ut.cpp @@ -78,6 +80,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/ut/CMakeLists.darwin-x86_64.txt index 8ec2ef772a44..3fa786bcd4df 100644 --- a/ydb/library/yql/core/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/ut/CMakeLists.darwin-x86_64.txt @@ -33,14 +33,16 @@ target_link_libraries(ydb-library-yql-core-ut PUBLIC providers-result-provider yt-gateway-file providers-yt-provider + yt-codec-codegen + yt-comp_nodes-llvm14 + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 yql-sql-pg ) target_link_options(ydb-library-yql-core-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-core-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut/yql_csv_ut.cpp @@ -79,6 +81,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/ut/CMakeLists.linux-aarch64.txt index 3e71688c69b1..730f02642725 100644 --- a/ydb/library/yql/core/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/ut/CMakeLists.linux-aarch64.txt @@ -33,6 +33,10 @@ target_link_libraries(ydb-library-yql-core-ut PUBLIC providers-result-provider yt-gateway-file providers-yt-provider + yt-codec-codegen + yt-comp_nodes-llvm14 + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 yql-sql-pg ) target_link_options(ydb-library-yql-core-ut PRIVATE @@ -41,10 +45,6 @@ target_link_options(ydb-library-yql-core-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(ydb-library-yql-core-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut/yql_csv_ut.cpp @@ -83,6 +83,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/ut/CMakeLists.linux-x86_64.txt index 70924389ddaf..810574924ccb 100644 --- a/ydb/library/yql/core/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/ut/CMakeLists.linux-x86_64.txt @@ -34,6 +34,10 @@ target_link_libraries(ydb-library-yql-core-ut PUBLIC providers-result-provider yt-gateway-file providers-yt-provider + yt-codec-codegen + yt-comp_nodes-llvm14 + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 yql-sql-pg ) target_link_options(ydb-library-yql-core-ut PRIVATE @@ -42,10 +46,6 @@ target_link_options(ydb-library-yql-core-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(ydb-library-yql-core-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut/yql_csv_ut.cpp @@ -84,6 +84,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/ut/CMakeLists.windows-x86_64.txt index 193dc53ccd59..b9efa7546a26 100644 --- a/ydb/library/yql/core/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/ut/CMakeLists.windows-x86_64.txt @@ -33,6 +33,10 @@ target_link_libraries(ydb-library-yql-core-ut PUBLIC providers-result-provider yt-gateway-file providers-yt-provider + yt-codec-codegen + yt-comp_nodes-llvm14 + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 yql-sql-pg ) target_sources(ydb-library-yql-core-ut PRIVATE @@ -72,6 +76,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/core/ut_common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/core/ut_common/CMakeLists.darwin-arm64.txt index 0ffc0edcc656..44ed6c93b849 100644 --- a/ydb/library/yql/core/ut_common/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/core/ut_common/CMakeLists.darwin-arm64.txt @@ -20,5 +20,6 @@ target_link_libraries(yql-core-ut_common PUBLIC yql-dq-expr_nodes ) target_sources(yql-core-ut_common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut_common/yql_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut_common/yql_ut_common.cpp ) diff --git a/ydb/library/yql/core/ut_common/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/core/ut_common/CMakeLists.darwin-x86_64.txt index 0ffc0edcc656..44ed6c93b849 100644 --- a/ydb/library/yql/core/ut_common/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/core/ut_common/CMakeLists.darwin-x86_64.txt @@ -20,5 +20,6 @@ target_link_libraries(yql-core-ut_common PUBLIC yql-dq-expr_nodes ) target_sources(yql-core-ut_common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut_common/yql_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut_common/yql_ut_common.cpp ) diff --git a/ydb/library/yql/core/ut_common/CMakeLists.linux-aarch64.txt b/ydb/library/yql/core/ut_common/CMakeLists.linux-aarch64.txt index 8eb14de93b0c..8bb79a153761 100644 --- a/ydb/library/yql/core/ut_common/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/core/ut_common/CMakeLists.linux-aarch64.txt @@ -21,5 +21,6 @@ target_link_libraries(yql-core-ut_common PUBLIC yql-dq-expr_nodes ) target_sources(yql-core-ut_common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut_common/yql_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut_common/yql_ut_common.cpp ) diff --git a/ydb/library/yql/core/ut_common/CMakeLists.linux-x86_64.txt b/ydb/library/yql/core/ut_common/CMakeLists.linux-x86_64.txt index 8eb14de93b0c..8bb79a153761 100644 --- a/ydb/library/yql/core/ut_common/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/core/ut_common/CMakeLists.linux-x86_64.txt @@ -21,5 +21,6 @@ target_link_libraries(yql-core-ut_common PUBLIC yql-dq-expr_nodes ) target_sources(yql-core-ut_common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut_common/yql_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut_common/yql_ut_common.cpp ) diff --git a/ydb/library/yql/core/ut_common/CMakeLists.windows-x86_64.txt b/ydb/library/yql/core/ut_common/CMakeLists.windows-x86_64.txt index 0ffc0edcc656..44ed6c93b849 100644 --- a/ydb/library/yql/core/ut_common/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/core/ut_common/CMakeLists.windows-x86_64.txt @@ -20,5 +20,6 @@ target_link_libraries(yql-core-ut_common PUBLIC yql-dq-expr_nodes ) target_sources(yql-core-ut_common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut_common/yql_ut_common.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/core/ut_common/yql_ut_common.cpp ) diff --git a/ydb/library/yql/dq/actors/compute/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/actors/compute/CMakeLists.darwin-arm64.txt index 4b7f57da1caa..c70ae888be5a 100644 --- a/ydb/library/yql/dq/actors/compute/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/dq/actors/compute/CMakeLists.darwin-arm64.txt @@ -24,11 +24,12 @@ target_link_libraries(dq-actors-compute PUBLIC yql-dq-runtime yql-dq-tasks dq-actors-spilling - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-public-issue core-quoter-public ) target_sources(dq-actors-compute PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_request_context.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_task_runner_exec_ctx.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_compute_actor_async_io_factory.cpp 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 4b7f57da1caa..c70ae888be5a 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 @@ -24,11 +24,12 @@ target_link_libraries(dq-actors-compute PUBLIC yql-dq-runtime yql-dq-tasks dq-actors-spilling - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-public-issue core-quoter-public ) target_sources(dq-actors-compute PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_request_context.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_task_runner_exec_ctx.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_compute_actor_async_io_factory.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 522fa2af6065..12e2d1839399 100644 --- a/ydb/library/yql/dq/actors/compute/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/dq/actors/compute/CMakeLists.linux-aarch64.txt @@ -25,11 +25,12 @@ target_link_libraries(dq-actors-compute PUBLIC yql-dq-runtime yql-dq-tasks dq-actors-spilling - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-public-issue core-quoter-public ) target_sources(dq-actors-compute PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_request_context.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_task_runner_exec_ctx.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_compute_actor_async_io_factory.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 522fa2af6065..12e2d1839399 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 @@ -25,11 +25,12 @@ target_link_libraries(dq-actors-compute PUBLIC yql-dq-runtime yql-dq-tasks dq-actors-spilling - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-public-issue core-quoter-public ) target_sources(dq-actors-compute PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_request_context.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_task_runner_exec_ctx.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_compute_actor_async_io_factory.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 4b7f57da1caa..c70ae888be5a 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 @@ -24,11 +24,12 @@ target_link_libraries(dq-actors-compute PUBLIC yql-dq-runtime yql-dq-tasks dq-actors-spilling - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-public-issue core-quoter-public ) target_sources(dq-actors-compute PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_request_context.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_task_runner_exec_ctx.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_async_compute_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/dq_compute_actor_async_io_factory.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 4c2b2beedfcd..9bb9b48064d5 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 @@ -461,18 +461,6 @@ class TDqAsyncComputeActor : public TDqComputeActorBase<TDqAsyncComputeActor, TC return inputChannel->FreeSpace; } - TGuard<NKikimr::NMiniKQL::TScopedAlloc> BindAllocator() override { - return TypeEnv->BindAllocator(); - } - - std::optional<TGuard<NKikimr::NMiniKQL::TScopedAlloc>> MaybeBindAllocator() override { - std::optional<TGuard<NKikimr::NMiniKQL::TScopedAlloc>> guard; - if (TypeEnv) { - guard.emplace(TypeEnv->BindAllocator()); - } - return guard; - } - void OnTaskRunnerCreated(NTaskRunnerActor::TEvTaskRunnerCreateFinished::TPtr& ev) { const auto& secureParams = ev->Get()->SecureParams; const auto& taskParams = ev->Get()->TaskParams; @@ -483,7 +471,7 @@ class TDqAsyncComputeActor : public TDqComputeActorBase<TDqAsyncComputeActor, TC Stat->AddCounters2(ev->Get()->Sensors); } TypeEnv = const_cast<NKikimr::NMiniKQL::TTypeEnvironment*>(&typeEnv); - FillIoMaps(holderFactory, typeEnv, secureParams, taskParams, readRanges); + FillIoMaps(holderFactory, typeEnv, secureParams, taskParams, readRanges, nullptr); { // say "Hello" to executer @@ -517,7 +505,6 @@ class TDqAsyncComputeActor : public TDqComputeActorBase<TDqAsyncComputeActor, TC MkqlMemoryLimit = ev->Get()->MkqlMemoryLimit; ProfileStats = std::move(ev->Get()->ProfileStats); - auto sourcesState = GetSourcesState(); auto status = ev->Get()->RunStatus; CA_LOG_T("Resume execution, run status: " << status << " checkpoint: " << (bool) ev->Get()->ProgramState @@ -536,10 +523,6 @@ class TDqAsyncComputeActor : public TDqComputeActorBase<TDqAsyncComputeActor, TC } } - if (status != ERunStatus::Finished) { - PollSources(std::move(sourcesState)); - } - if (ev->Get()->WatermarkInjectedToOutputs && !WatermarksTracker.HasOutputChannels()) { ResumeInputsByWatermark(*WatermarksTracker.GetPendingWatermark()); WatermarksTracker.PopPendingWatermark(); @@ -801,6 +784,11 @@ class TDqAsyncComputeActor : public TDqComputeActorBase<TDqAsyncComputeActor, TC return TaskRunnerStats.Get(); } + const NYql::NDq::TDqMeteringStats* GetMeteringStats() override { + // TODO: support async CA + return nullptr; + } + template<typename TSecond> TVector<ui32> GetIds(const THashMap<ui64, TSecond>& collection) { TVector<ui32> ids; 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 c3710181e7e5..88c5d8e458e9 100644 --- a/ydb/library/yql/dq/actors/compute/dq_compute_actor.h +++ b/ydb/library/yql/dq/actors/compute/dq_compute_actor.h @@ -364,9 +364,6 @@ struct TComputeMemoryLimits { IMemoryQuotaManager::TPtr MemoryQuotaManager; }; -//temporary flag to integarate changes in interface -#define Y_YQL_DQ_TASK_RUNNER_REQUIRES_ALLOCATOR 1 - using TTaskRunnerFactory = std::function< TIntrusivePtr<IDqTaskRunner>(NKikimr::NMiniKQL::TScopedAlloc& alloc, const TDqTaskSettings& task, NDqProto::EDqStatsMode statsMode, const TLogFunc& logFunc) >; diff --git a/ydb/library/yql/dq/actors/compute/dq_compute_actor_async_input_helper.h b/ydb/library/yql/dq/actors/compute/dq_compute_actor_async_input_helper.h index 1c41ac1ebd9c..95a8cc1ffd91 100644 --- a/ydb/library/yql/dq/actors/compute/dq_compute_actor_async_input_helper.h +++ b/ydb/library/yql/dq/actors/compute/dq_compute_actor_async_input_helper.h @@ -83,8 +83,9 @@ struct TComputeActorAsyncInputHelper { Pause(*watermark); } } + const bool emptyBatch = batch.empty(); AsyncInputPush(std::move(batch), space, finished); - if (!batch.empty()) { + if (!emptyBatch) { // If we have read some data, we must run such reading again // to process the case when async input notified us about new data // but we haven't read all of it. 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 5b4a3fa59793..888a8456b33d 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 @@ -186,7 +186,7 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> Alloc = std::make_shared<NKikimr::NMiniKQL::TScopedAlloc>( __LOCATION__, NKikimr::TAlignedPagePoolCounters(), - FunctionRegistry->SupportsSizedAllocators(), + true, false ); InitMonCounters(taskCounters); @@ -304,30 +304,14 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> ReportStats(TInstant::Now(), ESendStats::IfPossible); } if (Terminated) { - TaskRunner.Reset(); + DoTerminateImpl(); MemoryQuota.Reset(); MemoryLimits.MemoryQuotaManager.reset(); } } - virtual void DoExecuteImpl() { - auto sourcesState = GetSourcesState(); - - PollAsyncInput(); - ERunStatus status = TaskRunner->Run(); - - CA_LOG_T("Resume execution, run status: " << status); - - if (status != ERunStatus::Finished) { - PollSources(std::move(sourcesState)); - } - - if ((status == ERunStatus::PendingInput || status == ERunStatus::Finished) && Checkpoints && Checkpoints->HasPendingCheckpoint() && !Checkpoints->ComputeActorStateSaved() && ReadyToCheckpoint()) { - Checkpoints->DoCheckpoint(); - } - - ProcessOutputsImpl(status); - } + virtual void DoExecuteImpl() = 0; + virtual void DoTerminateImpl() {} virtual bool DoHandleChannelsAfterFinishImpl() { Y_ABORT_UNLESS(Checkpoints); @@ -477,7 +461,7 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> } { - auto guard = MaybeBindAllocator(); // Source/Sink could destroy mkql values inside PassAway, which requires allocator to be bound + auto guard = BindAllocator(); // Source/Sink could destroy mkql values inside PassAway, which requires allocator to be bound for (auto& [_, source] : SourcesMap) { if (source.Actor) { @@ -606,12 +590,11 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> InternalError(statusCode, TIssues({std::move(issue)})); } + virtual void InvalidateMeminfo() {} + void InternalError(NYql::NDqProto::StatusIds::StatusCode statusCode, TIssues issues) { CA_LOG_E(InternalErrorLogString(statusCode, issues)); - if (TaskRunner) { - TaskRunner->GetAllocator().InvalidateMemInfo(); - TaskRunner->GetAllocator().DisableStrictAllocationCheck(); - } + InvalidateMeminfo(); State = NDqProto::COMPUTE_STATE_FAILURE; ReportStateAndMaybeDie(statusCode, issues); } @@ -741,22 +724,6 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> return true; } - void SaveState(const NDqProto::TCheckpoint& checkpoint, NDqProto::TComputeActorState& state) const override { - CA_LOG_D("Save state"); - NDqProto::TMiniKqlProgramState& mkqlProgramState = *state.MutableMiniKqlProgram(); - mkqlProgramState.SetRuntimeVersion(NDqProto::RUNTIME_VERSION_YQL_1_0); - NDqProto::TStateData::TData& data = *mkqlProgramState.MutableData()->MutableStateData(); - data.SetVersion(TDqComputeActorCheckpoints::ComputeActorCurrentStateVersion); - data.SetBlob(TaskRunner->Save()); - - for (auto& [inputIndex, source] : SourcesMap) { - YQL_ENSURE(source.AsyncInput, "Source[" << inputIndex << "] is not created"); - NDqProto::TSourceState& sourceState = *state.AddSources(); - source.AsyncInput->SaveState(checkpoint, sourceState); - sourceState.SetInputIndex(inputIndex); - } - } - void CommitState(const NDqProto::TCheckpoint& checkpoint) override { CA_LOG_D("Commit state"); for (auto& [inputIndex, source] : SourcesMap) { @@ -810,15 +777,7 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> } } - virtual void DoLoadRunnerState(TString&& blob) { - TMaybe<TString> error = Nothing(); - try { - TaskRunner->Load(blob); - } catch (const std::exception& e) { - error = e.what(); - } - Checkpoints->AfterStateLoading(error); - } + virtual void DoLoadRunnerState(TString&& blob) = 0; void LoadState(NDqProto::TComputeActorState&& state) override { CA_LOG_D("Load state"); @@ -1073,13 +1032,6 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> protected: // virtual methods (TODO: replace with static_cast<TDerived*>(this)->Foo() - virtual std::any GetSourcesState() { - return nullptr; - } - - virtual void PollSources(std::any /* state */) { - } - virtual void TerminateSources(const TIssues& /* issues */, bool /* success */) { } @@ -1087,18 +1039,16 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> TerminateSources(TIssues({TIssue(message)}), success); } - virtual TGuard<NKikimr::NMiniKQL::TScopedAlloc> BindAllocator() { - return TaskRunner->BindAllocator(); - } - - virtual std::optional<TGuard<NKikimr::NMiniKQL::TScopedAlloc>> MaybeBindAllocator() { - return TaskRunner->BindAllocator(); + TGuard<NKikimr::NMiniKQL::TScopedAlloc> BindAllocator() { + return Guard(GetAllocator()); } virtual bool SayHelloOnBootstrap() { return true; } + + protected: void HandleExecuteBase(TEvDqCompute::TEvResumeExecution::TPtr&) { ResumeEventScheduled = false; @@ -1469,19 +1419,12 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> const NKikimr::NMiniKQL::TTypeEnvironment& typeEnv, const THashMap<TString, TString>& secureParams, const THashMap<TString, TString>& taskParams, - const TVector<TString>& readRanges) + const TVector<TString>& readRanges, + IRandomProvider* randomProvider + ) { - if (TaskRunner) { - for (auto& [channelId, channel] : InputChannelsMap) { - channel.Channel = TaskRunner->GetInputChannel(channelId); - } - } auto collectStatsLevel = StatsModeToCollectStatsLevel(RuntimeSettings.StatsMode); for (auto& [inputIndex, source] : SourcesMap) { - if constexpr (!TDerived::HasAsyncTaskRunner) { - source.Buffer = TaskRunner->GetSource(inputIndex); - Y_ABORT_UNLESS(source.Buffer); - } Y_ABORT_UNLESS(AsyncIoFactory); const auto& inputDesc = Task.GetInputs(inputIndex); Y_ABORT_UNLESS(inputDesc.HasSource()); @@ -1503,7 +1446,7 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> .TypeEnv = typeEnv, .HolderFactory = holderFactory, .TaskCounters = TaskCounters, - .Alloc = TaskRunner ? Alloc : nullptr, + .Alloc = Alloc, .MemoryQuotaManager = MemoryLimits.MemoryQuotaManager, .SourceSettings = (!settings.empty() ? settings.at(inputIndex) : nullptr), .Arena = Task.GetArena(), @@ -1515,71 +1458,59 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> this->RegisterWithSameMailbox(source.Actor); } for (auto& [inputIndex, transform] : InputTransformsMap) { - if constexpr (!TDerived::HasAsyncTaskRunner) { - transform.ProgramBuilder.ConstructInPlace(TaskRunner->GetTypeEnv(), *FunctionRegistry); - std::tie(transform.InputBuffer, transform.Buffer) = TaskRunner->GetInputTransform(inputIndex); - Y_ABORT_UNLESS(AsyncIoFactory); - const auto& inputDesc = Task.GetInputs(inputIndex); - CA_LOG_D("Create transform for input " << inputIndex << " " << inputDesc.ShortDebugString()); - try { - std::tie(transform.AsyncInput, transform.Actor) = AsyncIoFactory->CreateDqInputTransform( - IDqAsyncIoFactory::TInputTransformArguments { - .InputDesc = inputDesc, - .InputIndex = inputIndex, - .StatsLevel = collectStatsLevel, - .TxId = TxId, - .TaskId = Task.GetId(), - .TransformInput = transform.InputBuffer, - .SecureParams = secureParams, - .TaskParams = taskParams, - .ComputeActorId = this->SelfId(), - .TypeEnv = typeEnv, - .HolderFactory = holderFactory, - .ProgramBuilder = *transform.ProgramBuilder, - .Alloc = Alloc, - .TraceId = ComputeActorSpan.GetTraceId() - }); - } catch (const std::exception& ex) { - throw yexception() << "Failed to create input transform " << inputDesc.GetTransform().GetType() << ": " << ex.what(); - } - this->RegisterWithSameMailbox(transform.Actor); - } - } - if (TaskRunner) { - for (auto& [channelId, channel] : OutputChannelsMap) { - channel.Channel = TaskRunner->GetOutputChannel(channelId); + transform.ProgramBuilder.ConstructInPlace(typeEnv, *FunctionRegistry); + Y_ABORT_UNLESS(AsyncIoFactory); + const auto& inputDesc = Task.GetInputs(inputIndex); + CA_LOG_D("Create transform for input " << inputIndex << " " << inputDesc.ShortDebugString()); + try { + std::tie(transform.AsyncInput, transform.Actor) = AsyncIoFactory->CreateDqInputTransform( + IDqAsyncIoFactory::TInputTransformArguments { + .InputDesc = inputDesc, + .InputIndex = inputIndex, + .StatsLevel = collectStatsLevel, + .TxId = TxId, + .TaskId = Task.GetId(), + .TransformInput = transform.InputBuffer, + .SecureParams = secureParams, + .TaskParams = taskParams, + .ComputeActorId = this->SelfId(), + .TypeEnv = typeEnv, + .HolderFactory = holderFactory, + .ProgramBuilder = *transform.ProgramBuilder, + .Alloc = Alloc, + .TraceId = ComputeActorSpan.GetTraceId() + }); + } catch (const std::exception& ex) { + throw yexception() << "Failed to create input transform " << inputDesc.GetTransform().GetType() << ": " << ex.what(); } + this->RegisterWithSameMailbox(transform.Actor); } for (auto& [outputIndex, transform] : OutputTransformsMap) { - if (TaskRunner) { - transform.ProgramBuilder.ConstructInPlace(TaskRunner->GetTypeEnv(), *FunctionRegistry); - std::tie(transform.Buffer, transform.OutputBuffer) = TaskRunner->GetOutputTransform(outputIndex); - Y_ABORT_UNLESS(AsyncIoFactory); - const auto& outputDesc = Task.GetOutputs(outputIndex); - CA_LOG_D("Create transform for output " << outputIndex << " " << outputDesc.ShortDebugString()); - try { - std::tie(transform.AsyncOutput, transform.Actor) = AsyncIoFactory->CreateDqOutputTransform( - IDqAsyncIoFactory::TOutputTransformArguments { - .OutputDesc = outputDesc, - .OutputIndex = outputIndex, - .StatsLevel = collectStatsLevel, - .TxId = TxId, - .TransformOutput = transform.OutputBuffer, - .Callback = static_cast<TOutputTransformCallbacks*>(this), - .SecureParams = secureParams, - .TaskParams = taskParams, - .TypeEnv = typeEnv, - .HolderFactory = holderFactory, - .ProgramBuilder = *transform.ProgramBuilder - }); - } catch (const std::exception& ex) { - throw yexception() << "Failed to create output transform " << outputDesc.GetTransform().GetType() << ": " << ex.what(); - } - this->RegisterWithSameMailbox(transform.Actor); + transform.ProgramBuilder.ConstructInPlace(typeEnv, *FunctionRegistry); + Y_ABORT_UNLESS(AsyncIoFactory); + const auto& outputDesc = Task.GetOutputs(outputIndex); + CA_LOG_D("Create transform for output " << outputIndex << " " << outputDesc.ShortDebugString()); + try { + std::tie(transform.AsyncOutput, transform.Actor) = AsyncIoFactory->CreateDqOutputTransform( + IDqAsyncIoFactory::TOutputTransformArguments { + .OutputDesc = outputDesc, + .OutputIndex = outputIndex, + .StatsLevel = collectStatsLevel, + .TxId = TxId, + .TransformOutput = transform.OutputBuffer, + .Callback = static_cast<TOutputTransformCallbacks*>(this), + .SecureParams = secureParams, + .TaskParams = taskParams, + .TypeEnv = typeEnv, + .HolderFactory = holderFactory, + .ProgramBuilder = *transform.ProgramBuilder + }); + } catch (const std::exception& ex) { + throw yexception() << "Failed to create output transform " << outputDesc.GetTransform().GetType() << ": " << ex.what(); } + this->RegisterWithSameMailbox(transform.Actor); } for (auto& [outputIndex, sink] : SinksMap) { - if (TaskRunner) { sink.Buffer = TaskRunner->GetSink(outputIndex); } Y_ABORT_UNLESS(AsyncIoFactory); const auto& outputDesc = Task.GetOutputs(outputIndex); Y_ABORT_UNLESS(outputDesc.HasSink()); @@ -1597,7 +1528,7 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> .TaskParams = taskParams, .TypeEnv = typeEnv, .HolderFactory = holderFactory, - .RandomProvider = TaskRunner ? TaskRunner->GetRandomProvider() : nullptr + .RandomProvider = randomProvider }); } catch (const std::exception& ex) { throw yexception() << "Failed to create sink " << outputDesc.GetSink().GetType() << ": " << ex.what(); @@ -1804,9 +1735,8 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> } } - virtual const NYql::NDq::TTaskRunnerStatsBase* GetTaskRunnerStats() { - return TaskRunner ? TaskRunner->GetStats() : nullptr; - } + virtual const NYql::NDq::TTaskRunnerStatsBase* GetTaskRunnerStats() = 0; + virtual const NYql::NDq::TDqMeteringStats* GetMeteringStats() = 0; virtual const IDqAsyncOutputBuffer* GetSink(ui64, const TAsyncOutputInfoBase& sinkInfo) const { return sinkInfo.Buffer.Get(); @@ -1866,8 +1796,7 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> for (auto& [inputIndex, sourceInfo] : SourcesMap) { if (auto* source = sourceInfo.AsyncInput) { - // TODO: support async CA - source->FillExtraStats(protoTask, last, TaskRunner ? TaskRunner->GetMeteringStats() : nullptr); + source->FillExtraStats(protoTask, last, GetMeteringStats()); } } FillTaskRunnerStats(Task.GetId(), Task.GetStageId(), *taskStats, protoTask, RuntimeSettings.GetCollectStatsLevel()); @@ -1972,8 +1901,7 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> } if (auto* transform = transformInfo.AsyncInput) { - // TODO: support async CA - transform->FillExtraStats(protoTask, last, TaskRunner ? TaskRunner->GetMeteringStats() : 0); + transform->FillExtraStats(protoTask, last, GetMeteringStats()); } } @@ -2102,7 +2030,6 @@ class TDqComputeActorBase : public NActors::TActorBootstrapped<TDerived> const IDqAsyncIoFactory::TPtr AsyncIoFactory; const NKikimr::NMiniKQL::IFunctionRegistry* FunctionRegistry = nullptr; const NDqProto::ECheckpointingMode CheckpointingMode; - TIntrusivePtr<IDqTaskRunner> TaskRunner; TDqComputeActorChannels* Channels = nullptr; TDqComputeActorCheckpoints* Checkpoints = nullptr; THashMap<ui64, TInputChannelInfo> InputChannelsMap; // Channel id -> Channel info diff --git a/ydb/library/yql/dq/actors/compute/dq_sync_compute_actor_base.h b/ydb/library/yql/dq/actors/compute/dq_sync_compute_actor_base.h index 8d2ffb00924b..7e21910ca760 100644 --- a/ydb/library/yql/dq/actors/compute/dq_sync_compute_actor_base.h +++ b/ydb/library/yql/dq/actors/compute/dq_sync_compute_actor_base.h @@ -44,15 +44,73 @@ class TDqSyncComputeActorBase: public TDqComputeActorBase<TDerived, TComputeActo return inputTransformInfo.Buffer.Get(); } protected: + + void DoExecuteImpl() override{ + auto sourcesState = static_cast<TDerived*>(this)->GetSourcesState(); + + TBase::PollAsyncInput(); + ERunStatus status = TaskRunner->Run(); + + CA_LOG_T("Resume execution, run status: " << status); + + if (status != ERunStatus::Finished) { + static_cast<TDerived*>(this)->PollSources(std::move(sourcesState)); + } + + if ((status == ERunStatus::PendingInput || status == ERunStatus::Finished) && this->Checkpoints && this->Checkpoints->HasPendingCheckpoint() && !this->Checkpoints->ComputeActorStateSaved() && TBase::ReadyToCheckpoint()) { + this->Checkpoints->DoCheckpoint(); + } + + TBase::ProcessOutputsImpl(status); + } + + void DoTerminateImpl() override { + TaskRunner.Reset(); + } + + void InvalidateMeminfo() override { + if (TaskRunner) { + TaskRunner->GetAllocator().InvalidateMemInfo(); + TaskRunner->GetAllocator().DisableStrictAllocationCheck(); + } + } + + void SaveState(const NDqProto::TCheckpoint& checkpoint, NDqProto::TComputeActorState& state) const override { + CA_LOG_D("Save state"); + NDqProto::TMiniKqlProgramState& mkqlProgramState = *state.MutableMiniKqlProgram(); + mkqlProgramState.SetRuntimeVersion(NDqProto::RUNTIME_VERSION_YQL_1_0); + NDqProto::TStateData::TData& data = *mkqlProgramState.MutableData()->MutableStateData(); + data.SetVersion(TDqComputeActorCheckpoints::ComputeActorCurrentStateVersion); + data.SetBlob(TaskRunner->Save()); + + for (auto& [inputIndex, source] : this->SourcesMap) { + YQL_ENSURE(source.AsyncInput, "Source[" << inputIndex << "] is not created"); + NDqProto::TSourceState& sourceState = *state.AddSources(); + source.AsyncInput->SaveState(checkpoint, sourceState); + sourceState.SetInputIndex(inputIndex); + } + } + + void DoLoadRunnerState(TString&& blob) override { + TMaybe<TString> error = Nothing(); + try { + TaskRunner->Load(blob); + } catch (const std::exception& e) { + error = e.what(); + } + this->Checkpoints->AfterStateLoading(error); + } + void SetTaskRunner(const TIntrusivePtr<IDqTaskRunner>& taskRunner) { - this->TaskRunner = taskRunner; + TaskRunner = taskRunner; } void PrepareTaskRunner(const IDqTaskRunnerExecutionContext& execCtx) { - YQL_ENSURE(this->TaskRunner); + YQL_ENSURE(TaskRunner); - auto guard = this->TaskRunner->BindAllocator(this->MemoryQuota->GetMkqlMemoryLimit()); + auto guard = TBase::BindAllocator(); auto* alloc = guard.GetMutex(); + alloc->SetLimit(this->MemoryQuota->GetMkqlMemoryLimit()); this->MemoryQuota->TrySetIncreaseMemoryLimitCallback(alloc); @@ -60,15 +118,61 @@ class TDqSyncComputeActorBase: public TDqComputeActorBase<TDerived, TComputeActo limits.ChannelBufferSize = this->MemoryLimits.ChannelBufferSize; limits.OutputChunkMaxSize = GetDqExecutionSettings().FlowControl.MaxOutputChunkSize; - this->TaskRunner->Prepare(this->Task, limits, execCtx); + TaskRunner->Prepare(this->Task, limits, execCtx); + + for (auto& [channelId, channel] : this->InputChannelsMap) { + channel.Channel = TaskRunner->GetInputChannel(channelId); + } + + for (auto& [inputIndex, source] : this->SourcesMap) { + source.Buffer = TaskRunner->GetSource(inputIndex); + Y_ABORT_UNLESS(source.Buffer); + } + + for (auto& [inputIndex, transform] : this->InputTransformsMap) { + std::tie(transform.InputBuffer, transform.Buffer) = TaskRunner->GetInputTransform(inputIndex); + } + + for (auto& [channelId, channel] : this->OutputChannelsMap) { + channel.Channel = TaskRunner->GetOutputChannel(channelId); + } + + for (auto& [outputIndex, transform] : this->OutputTransformsMap) { + std::tie(transform.Buffer, transform.OutputBuffer) = TaskRunner->GetOutputTransform(outputIndex); + } + + for (auto& [outputIndex, sink] : this->SinksMap) { + sink.Buffer = TaskRunner->GetSink(outputIndex); + } TBase::FillIoMaps( - this->TaskRunner->GetHolderFactory(), - this->TaskRunner->GetTypeEnv(), - this->TaskRunner->GetSecureParams(), - this->TaskRunner->GetTaskParams(), - this->TaskRunner->GetReadRanges()); + TaskRunner->GetHolderFactory(), + TaskRunner->GetTypeEnv(), + TaskRunner->GetSecureParams(), + TaskRunner->GetTaskParams(), + TaskRunner->GetReadRanges(), + TaskRunner->GetRandomProvider() + ); + } + + const NYql::NDq::TTaskRunnerStatsBase* GetTaskRunnerStats() override { + return TaskRunner ? TaskRunner->GetStats() : nullptr; } + + const NYql::NDq::TDqMeteringStats* GetMeteringStats() override { + return TaskRunner ? TaskRunner->GetMeteringStats() : nullptr; + } + +protected: + // methods that are called via static_cast<TDerived*>(this) and may be overriden by a dervied class + void* GetSourcesState() const { + return nullptr; + } + void PollSources(void* /* state */) { + } + + TIntrusivePtr<IDqTaskRunner> TaskRunner; + }; } //namespace NYql::NDq diff --git a/ydb/library/yql/dq/actors/compute/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/actors/compute/ut/CMakeLists.darwin-arm64.txt index 417e0022accc..f2cdb3d5c831 100644 --- a/ydb/library/yql/dq/actors/compute/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/dq/actors/compute/ut/CMakeLists.darwin-arm64.txt @@ -8,6 +8,9 @@ add_executable(ydb-library-yql-dq-actors-compute-ut) +target_compile_options(ydb-library-yql-dq-actors-compute-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) target_include_directories(ydb-library-yql-dq-actors-compute-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute ) @@ -25,10 +28,9 @@ target_link_options(ydb-library-yql-dq-actors-compute-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-dq-actors-compute-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_compute_actor_async_input_helper_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_compute_issues_buffer_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_source_watermark_tracker_ut.cpp ) @@ -57,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/actors/compute/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/actors/compute/ut/CMakeLists.darwin-x86_64.txt index 7390a114e67d..b4f735e0e32d 100644 --- a/ydb/library/yql/dq/actors/compute/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/dq/actors/compute/ut/CMakeLists.darwin-x86_64.txt @@ -8,6 +8,9 @@ add_executable(ydb-library-yql-dq-actors-compute-ut) +target_compile_options(ydb-library-yql-dq-actors-compute-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) target_include_directories(ydb-library-yql-dq-actors-compute-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute ) @@ -26,10 +29,9 @@ target_link_options(ydb-library-yql-dq-actors-compute-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-dq-actors-compute-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_compute_actor_async_input_helper_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_compute_issues_buffer_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_source_watermark_tracker_ut.cpp ) @@ -58,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/actors/compute/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/actors/compute/ut/CMakeLists.linux-aarch64.txt index 54d71189fe83..9f358b31d1e2 100644 --- a/ydb/library/yql/dq/actors/compute/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/dq/actors/compute/ut/CMakeLists.linux-aarch64.txt @@ -8,6 +8,9 @@ add_executable(ydb-library-yql-dq-actors-compute-ut) +target_compile_options(ydb-library-yql-dq-actors-compute-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) target_include_directories(ydb-library-yql-dq-actors-compute-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute ) @@ -28,11 +31,9 @@ target_link_options(ydb-library-yql-dq-actors-compute-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-dq-actors-compute-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_compute_actor_async_input_helper_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_compute_issues_buffer_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_source_watermark_tracker_ut.cpp ) @@ -61,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/actors/compute/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/actors/compute/ut/CMakeLists.linux-x86_64.txt index b7d0ce21486f..a31e86665e83 100644 --- a/ydb/library/yql/dq/actors/compute/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/dq/actors/compute/ut/CMakeLists.linux-x86_64.txt @@ -8,6 +8,9 @@ add_executable(ydb-library-yql-dq-actors-compute-ut) +target_compile_options(ydb-library-yql-dq-actors-compute-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) target_include_directories(ydb-library-yql-dq-actors-compute-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute ) @@ -29,11 +32,9 @@ target_link_options(ydb-library-yql-dq-actors-compute-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-dq-actors-compute-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_compute_actor_async_input_helper_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_compute_issues_buffer_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_source_watermark_tracker_ut.cpp ) @@ -62,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/actors/compute/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/actors/compute/ut/CMakeLists.windows-x86_64.txt index dffae7cf8362..e0cf29135468 100644 --- a/ydb/library/yql/dq/actors/compute/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/dq/actors/compute/ut/CMakeLists.windows-x86_64.txt @@ -8,6 +8,9 @@ add_executable(ydb-library-yql-dq-actors-compute-ut) +target_compile_options(ydb-library-yql-dq-actors-compute-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) target_include_directories(ydb-library-yql-dq-actors-compute-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute ) @@ -23,6 +26,7 @@ target_link_libraries(ydb-library-yql-dq-actors-compute-ut PUBLIC yql-sql-pg_dummy ) target_sources(ydb-library-yql-dq-actors-compute-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_compute_actor_async_input_helper_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_compute_issues_buffer_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/compute/ut/dq_source_watermark_tracker_ut.cpp ) @@ -51,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/actors/compute/ut/dq_compute_actor_async_input_helper_ut.cpp b/ydb/library/yql/dq/actors/compute/ut/dq_compute_actor_async_input_helper_ut.cpp new file mode 100644 index 000000000000..137816bcbe57 --- /dev/null +++ b/ydb/library/yql/dq/actors/compute/ut/dq_compute_actor_async_input_helper_ut.cpp @@ -0,0 +1,84 @@ + +#include <ydb/library/yql/dq/actors/compute/dq_compute_actor_log.h> +#include <ydb/library/yql/dq/actors/compute/dq_compute_actor_metrics.h> +#include <ydb/library/yql/dq/actors/compute/dq_compute_actor_watermarks.h> +#include <library/cpp/testing/unittest/registar.h> + +#undef IS_CTX_LOG_PRIORITY_ENABLED +#define IS_CTX_LOG_PRIORITY_ENABLED(actorCtxOrSystem, priority, component, sampleBy) false +#include <ydb/library/yql/dq/actors/compute/dq_compute_actor_async_input_helper.h> + +namespace NYql::NDq { + +Y_UNIT_TEST_SUITE(TComputeActorAsyncInputHelperTest) { + + struct TDummyDqComputeActorAsyncInput: IDqComputeActorAsyncInput { + TDummyDqComputeActorAsyncInput() { + Batch.emplace_back(NUdf::TUnboxedValue{}); + Batch.emplace_back(NUdf::TUnboxedValue{}); + } + ui64 GetInputIndex() const override { + return 4; + } + + const TDqAsyncStats& GetIngressStats() const override{ + static TDqAsyncStats stats; + return stats; + } + + i64 GetAsyncInputData( + NKikimr::NMiniKQL::TUnboxedValueBatch& batch, + TMaybe<TInstant>& watermark, + bool& finished, + i64 freeSpace) override + { + Y_ABORT_IF(Batch.empty()); + batch = Batch; + Y_UNUSED(watermark); + Y_UNUSED(finished); + Y_UNUSED(freeSpace); + return 2; + } + + // Checkpointing. + void SaveState(const NDqProto::TCheckpoint& checkpoint, NDqProto::TSourceState& state) override { + Y_UNUSED(checkpoint); + Y_UNUSED(state); + } + void CommitState(const NDqProto::TCheckpoint& checkpoint) override { + Y_UNUSED(checkpoint); + } + void LoadState(const NDqProto::TSourceState& state) override { + Y_UNUSED(state); + } + + void PassAway() override {} + NKikimr::NMiniKQL::TUnboxedValueBatch Batch; + }; + + struct TDummyAsyncInputHelper: TComputeActorAsyncInputHelper{ + using TComputeActorAsyncInputHelper::TComputeActorAsyncInputHelper; + i64 GetFreeSpace() const override{ + return 10; + } + void AsyncInputPush(NKikimr::NMiniKQL::TUnboxedValueBatch&& batch, i64 space, bool finished) override{ + batch.clear(); + Y_UNUSED(space); + Y_UNUSED(finished); + return; + } + }; + + Y_UNIT_TEST(PollAsyncInput) { + NKikimr::NMiniKQL::TScopedAlloc alloc(__LOCATION__, NKikimr::TAlignedPagePoolCounters(), true, true); + TDummyDqComputeActorAsyncInput input; + TDummyAsyncInputHelper helper("MyPrefix", 13, NDqProto::EWatermarksMode::WATERMARKS_MODE_DISABLED); + helper.AsyncInput = &input; + TDqComputeActorMetrics metrics{NMonitoring::TDynamicCounterPtr{}}; + TDqComputeActorWatermarks watermarks(NActors::TActorIdentity{NActors::TActorId{}}, TTxId{}, 7); + auto result = helper.PollAsyncInput(metrics, watermarks, 20); + UNIT_ASSERT(result && EResumeSource::CAPollAsync == *result); + } +} + +} //namespace NYql::NDq diff --git a/ydb/library/yql/dq/actors/compute/ut/ya.make b/ydb/library/yql/dq/actors/compute/ut/ya.make index 6dfca084a033..617f9e30f149 100644 --- a/ydb/library/yql/dq/actors/compute/ut/ya.make +++ b/ydb/library/yql/dq/actors/compute/ut/ya.make @@ -1,6 +1,7 @@ UNITTEST_FOR(ydb/library/yql/dq/actors/compute) SRCS( + dq_compute_actor_async_input_helper_ut.cpp dq_compute_issues_buffer_ut.cpp dq_source_watermark_tracker_ut.cpp ) @@ -12,4 +13,6 @@ PEERDIR( ydb/library/yql/sql/pg_dummy ) +YQL_LAST_ABI_VERSION() + END() diff --git a/ydb/library/yql/dq/actors/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/actors/protos/CMakeLists.darwin-arm64.txt index e9f86e283882..9f1e583ed559 100644 --- a/ydb/library/yql/dq/actors/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/dq/actors/protos/CMakeLists.darwin-arm64.txt @@ -60,6 +60,11 @@ target_proto_messages(dq-actors-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/protos/dq_stats.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/protos/dq_status_codes.proto ) +target_sources(dq-actors-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/actors/protos/dq_events.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/actors/protos/dq_stats.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/actors/protos/dq_status_codes.pb.h +) target_proto_addincls(dq-actors-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/dq/actors/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/actors/protos/CMakeLists.darwin-x86_64.txt index e9f86e283882..9f1e583ed559 100644 --- a/ydb/library/yql/dq/actors/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/dq/actors/protos/CMakeLists.darwin-x86_64.txt @@ -60,6 +60,11 @@ target_proto_messages(dq-actors-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/protos/dq_stats.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/protos/dq_status_codes.proto ) +target_sources(dq-actors-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/actors/protos/dq_events.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/actors/protos/dq_stats.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/actors/protos/dq_status_codes.pb.h +) target_proto_addincls(dq-actors-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/dq/actors/protos/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/actors/protos/CMakeLists.linux-aarch64.txt index 48cc28edfe98..1d75333772f6 100644 --- a/ydb/library/yql/dq/actors/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/dq/actors/protos/CMakeLists.linux-aarch64.txt @@ -61,6 +61,11 @@ target_proto_messages(dq-actors-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/protos/dq_stats.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/protos/dq_status_codes.proto ) +target_sources(dq-actors-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/actors/protos/dq_events.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/actors/protos/dq_stats.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/actors/protos/dq_status_codes.pb.h +) target_proto_addincls(dq-actors-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/dq/actors/protos/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/actors/protos/CMakeLists.linux-x86_64.txt index 48cc28edfe98..1d75333772f6 100644 --- a/ydb/library/yql/dq/actors/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/dq/actors/protos/CMakeLists.linux-x86_64.txt @@ -61,6 +61,11 @@ target_proto_messages(dq-actors-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/protos/dq_stats.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/protos/dq_status_codes.proto ) +target_sources(dq-actors-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/actors/protos/dq_events.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/actors/protos/dq_stats.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/actors/protos/dq_status_codes.pb.h +) target_proto_addincls(dq-actors-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/dq/actors/protos/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/actors/protos/CMakeLists.windows-x86_64.txt index e9f86e283882..9f1e583ed559 100644 --- a/ydb/library/yql/dq/actors/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/dq/actors/protos/CMakeLists.windows-x86_64.txt @@ -60,6 +60,11 @@ target_proto_messages(dq-actors-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/protos/dq_stats.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/protos/dq_status_codes.proto ) +target_sources(dq-actors-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/actors/protos/dq_events.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/actors/protos/dq_stats.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/actors/protos/dq_status_codes.pb.h +) target_proto_addincls(dq-actors-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/dq/actors/spilling/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/actors/spilling/CMakeLists.darwin-arm64.txt index 3bdf4877d9e6..2cfea5d7a504 100644 --- a/ydb/library/yql/dq/actors/spilling/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/dq/actors/spilling/CMakeLists.darwin-arm64.txt @@ -26,6 +26,7 @@ target_link_libraries(dq-actors-spilling PUBLIC monlib-service-pages ) target_sources(dq-actors-spilling PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/channel_storage_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/channel_storage.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_counters.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_file.cpp diff --git a/ydb/library/yql/dq/actors/spilling/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/actors/spilling/CMakeLists.darwin-x86_64.txt index 3bdf4877d9e6..2cfea5d7a504 100644 --- a/ydb/library/yql/dq/actors/spilling/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/dq/actors/spilling/CMakeLists.darwin-x86_64.txt @@ -26,6 +26,7 @@ target_link_libraries(dq-actors-spilling PUBLIC monlib-service-pages ) target_sources(dq-actors-spilling PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/channel_storage_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/channel_storage.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_counters.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_file.cpp diff --git a/ydb/library/yql/dq/actors/spilling/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/actors/spilling/CMakeLists.linux-aarch64.txt index ab63187e9538..f63a3cf01d89 100644 --- a/ydb/library/yql/dq/actors/spilling/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/dq/actors/spilling/CMakeLists.linux-aarch64.txt @@ -27,6 +27,7 @@ target_link_libraries(dq-actors-spilling PUBLIC monlib-service-pages ) target_sources(dq-actors-spilling PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/channel_storage_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/channel_storage.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_counters.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_file.cpp diff --git a/ydb/library/yql/dq/actors/spilling/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/actors/spilling/CMakeLists.linux-x86_64.txt index ab63187e9538..f63a3cf01d89 100644 --- a/ydb/library/yql/dq/actors/spilling/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/dq/actors/spilling/CMakeLists.linux-x86_64.txt @@ -27,6 +27,7 @@ target_link_libraries(dq-actors-spilling PUBLIC monlib-service-pages ) target_sources(dq-actors-spilling PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/channel_storage_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/channel_storage.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_counters.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_file.cpp diff --git a/ydb/library/yql/dq/actors/spilling/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/actors/spilling/CMakeLists.windows-x86_64.txt index 3bdf4877d9e6..2cfea5d7a504 100644 --- a/ydb/library/yql/dq/actors/spilling/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/dq/actors/spilling/CMakeLists.windows-x86_64.txt @@ -26,6 +26,7 @@ target_link_libraries(dq-actors-spilling PUBLIC monlib-service-pages ) target_sources(dq-actors-spilling PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/channel_storage_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/channel_storage.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_counters.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_file.cpp diff --git a/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.darwin-arm64.txt index 17bf3ddfc89e..0511eb8fafe8 100644 --- a/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.darwin-arm64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-library-yql-dq-actors-spilling-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-dq-actors-spilling-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_file_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.darwin-x86_64.txt index b35e50368a1b..c5b023a863a6 100644 --- a/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.darwin-x86_64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-library-yql-dq-actors-spilling-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-dq-actors-spilling-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_file_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.linux-aarch64.txt index a57b12e6e8da..ee46e1db3900 100644 --- a/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-library-yql-dq-actors-spilling-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-dq-actors-spilling-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_file_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.linux-x86_64.txt index 887cf5e772b8..af6cf030590e 100644 --- a/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.linux-x86_64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-library-yql-dq-actors-spilling-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-dq-actors-spilling-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/actors/spilling/spilling_file_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.windows-x86_64.txt index 04251cab16a6..dca545cd2ca6 100644 --- a/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/dq/actors/spilling/ut/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/actors/task_runner/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/actors/task_runner/CMakeLists.darwin-arm64.txt index a3cf76d6ba55..2a60001374d4 100644 --- a/ydb/library/yql/dq/actors/task_runner/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/dq/actors/task_runner/CMakeLists.darwin-arm64.txt @@ -18,7 +18,7 @@ target_link_libraries(dq-actors-task_runner PUBLIC yql-dq-runtime yql-dq-common yql-dq-proto - minikql-computation-llvm + yql-minikql-computation yql-utils-actors ydb-library-services ) diff --git a/ydb/library/yql/dq/actors/task_runner/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/actors/task_runner/CMakeLists.darwin-x86_64.txt index a3cf76d6ba55..2a60001374d4 100644 --- a/ydb/library/yql/dq/actors/task_runner/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/dq/actors/task_runner/CMakeLists.darwin-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(dq-actors-task_runner PUBLIC yql-dq-runtime yql-dq-common yql-dq-proto - minikql-computation-llvm + yql-minikql-computation yql-utils-actors ydb-library-services ) diff --git a/ydb/library/yql/dq/actors/task_runner/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/actors/task_runner/CMakeLists.linux-aarch64.txt index 999caf7750c4..f34265ab3ff1 100644 --- a/ydb/library/yql/dq/actors/task_runner/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/dq/actors/task_runner/CMakeLists.linux-aarch64.txt @@ -19,7 +19,7 @@ target_link_libraries(dq-actors-task_runner PUBLIC yql-dq-runtime yql-dq-common yql-dq-proto - minikql-computation-llvm + yql-minikql-computation yql-utils-actors ydb-library-services ) diff --git a/ydb/library/yql/dq/actors/task_runner/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/actors/task_runner/CMakeLists.linux-x86_64.txt index 999caf7750c4..f34265ab3ff1 100644 --- a/ydb/library/yql/dq/actors/task_runner/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/dq/actors/task_runner/CMakeLists.linux-x86_64.txt @@ -19,7 +19,7 @@ target_link_libraries(dq-actors-task_runner PUBLIC yql-dq-runtime yql-dq-common yql-dq-proto - minikql-computation-llvm + yql-minikql-computation yql-utils-actors ydb-library-services ) diff --git a/ydb/library/yql/dq/actors/task_runner/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/actors/task_runner/CMakeLists.windows-x86_64.txt index a3cf76d6ba55..2a60001374d4 100644 --- a/ydb/library/yql/dq/actors/task_runner/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/dq/actors/task_runner/CMakeLists.windows-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(dq-actors-task_runner PUBLIC yql-dq-runtime yql-dq-common yql-dq-proto - minikql-computation-llvm + yql-minikql-computation yql-utils-actors ydb-library-services ) diff --git a/ydb/library/yql/dq/actors/task_runner/task_runner_actor.h b/ydb/library/yql/dq/actors/task_runner/task_runner_actor.h index 295e5ce693ca..f9acea3d2464 100644 --- a/ydb/library/yql/dq/actors/task_runner/task_runner_actor.h +++ b/ydb/library/yql/dq/actors/task_runner/task_runner_actor.h @@ -50,8 +50,6 @@ struct ITaskRunnerActorFactory { THolder<NYql::NDq::TDqMemoryQuota>&& memoryQuota = {}) = 0; }; -// temporary for YQL-17542 -#define Y_YQL_DQ_TASK_RUNNER_ACTOR_FACTORY_COMPATIBILITY_1 ITaskRunnerActorFactory::TPtr CreateLocalTaskRunnerActorFactory(const TTaskRunnerFactory& factory); } // namespace NTaskRunnerActor diff --git a/ydb/library/yql/dq/common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/common/CMakeLists.darwin-arm64.txt index b2e012b9b9e5..4218b550f0a9 100644 --- a/ydb/library/yql/dq/common/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/dq/common/CMakeLists.darwin-arm64.txt @@ -25,6 +25,7 @@ target_link_libraries(yql-dq-common PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(yql-dq-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_resource_quoter.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_common.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_value.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_serialized_batch.cpp diff --git a/ydb/library/yql/dq/common/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/common/CMakeLists.darwin-x86_64.txt index b2e012b9b9e5..4218b550f0a9 100644 --- a/ydb/library/yql/dq/common/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/dq/common/CMakeLists.darwin-x86_64.txt @@ -25,6 +25,7 @@ target_link_libraries(yql-dq-common PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(yql-dq-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_resource_quoter.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_common.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_value.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_serialized_batch.cpp diff --git a/ydb/library/yql/dq/common/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/common/CMakeLists.linux-aarch64.txt index c884eaf66eab..187cfe27afd9 100644 --- a/ydb/library/yql/dq/common/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/dq/common/CMakeLists.linux-aarch64.txt @@ -26,6 +26,7 @@ target_link_libraries(yql-dq-common PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(yql-dq-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_resource_quoter.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_common.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_value.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_serialized_batch.cpp diff --git a/ydb/library/yql/dq/common/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/common/CMakeLists.linux-x86_64.txt index c884eaf66eab..187cfe27afd9 100644 --- a/ydb/library/yql/dq/common/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/dq/common/CMakeLists.linux-x86_64.txt @@ -26,6 +26,7 @@ target_link_libraries(yql-dq-common PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(yql-dq-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_resource_quoter.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_common.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_value.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_serialized_batch.cpp diff --git a/ydb/library/yql/dq/common/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/common/CMakeLists.windows-x86_64.txt index b2e012b9b9e5..4218b550f0a9 100644 --- a/ydb/library/yql/dq/common/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/dq/common/CMakeLists.windows-x86_64.txt @@ -25,6 +25,7 @@ target_link_libraries(yql-dq-common PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(yql-dq-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_resource_quoter.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_common.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_value.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/common/dq_serialized_batch.cpp diff --git a/ydb/library/yql/dq/comp_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/comp_nodes/CMakeLists.darwin-arm64.txt index 8f8d5acd6021..191c9c835777 100644 --- a/ydb/library/yql/dq/comp_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/dq/comp_nodes/CMakeLists.darwin-arm64.txt @@ -16,7 +16,7 @@ target_link_libraries(yql-dq-comp_nodes PUBLIC yutil library-actors-core dq-actors-compute - minikql-computation-llvm + yql-minikql-computation library-yql-utils ) target_sources(yql-dq-comp_nodes PRIVATE diff --git a/ydb/library/yql/dq/comp_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/comp_nodes/CMakeLists.darwin-x86_64.txt index 8f8d5acd6021..191c9c835777 100644 --- a/ydb/library/yql/dq/comp_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/dq/comp_nodes/CMakeLists.darwin-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(yql-dq-comp_nodes PUBLIC yutil library-actors-core dq-actors-compute - minikql-computation-llvm + yql-minikql-computation library-yql-utils ) target_sources(yql-dq-comp_nodes PRIVATE diff --git a/ydb/library/yql/dq/comp_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/comp_nodes/CMakeLists.linux-aarch64.txt index 52bbbf0e046c..a1da8e4b9f06 100644 --- a/ydb/library/yql/dq/comp_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/dq/comp_nodes/CMakeLists.linux-aarch64.txt @@ -17,7 +17,7 @@ target_link_libraries(yql-dq-comp_nodes PUBLIC yutil library-actors-core dq-actors-compute - minikql-computation-llvm + yql-minikql-computation library-yql-utils ) target_sources(yql-dq-comp_nodes PRIVATE diff --git a/ydb/library/yql/dq/comp_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/comp_nodes/CMakeLists.linux-x86_64.txt index 52bbbf0e046c..a1da8e4b9f06 100644 --- a/ydb/library/yql/dq/comp_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/dq/comp_nodes/CMakeLists.linux-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(yql-dq-comp_nodes PUBLIC yutil library-actors-core dq-actors-compute - minikql-computation-llvm + yql-minikql-computation library-yql-utils ) target_sources(yql-dq-comp_nodes PRIVATE diff --git a/ydb/library/yql/dq/comp_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/comp_nodes/CMakeLists.windows-x86_64.txt index 8f8d5acd6021..191c9c835777 100644 --- a/ydb/library/yql/dq/comp_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/dq/comp_nodes/CMakeLists.windows-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(yql-dq-comp_nodes PUBLIC yutil library-actors-core dq-actors-compute - minikql-computation-llvm + yql-minikql-computation library-yql-utils ) target_sources(yql-dq-comp_nodes PRIVATE diff --git a/ydb/library/yql/dq/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/expr_nodes/CMakeLists.darwin-arm64.txt index d81b9b9d6904..e7d16fb66831 100644 --- a/ydb/library/yql/dq/expr_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/dq/expr_nodes/CMakeLists.darwin-arm64.txt @@ -21,6 +21,10 @@ target_sources(yql-dq-expr_nodes PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.decl.inl.h ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.defs.inl.h ) add_custom_command( OUTPUT diff --git a/ydb/library/yql/dq/expr_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/expr_nodes/CMakeLists.darwin-x86_64.txt index d81b9b9d6904..e7d16fb66831 100644 --- a/ydb/library/yql/dq/expr_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/dq/expr_nodes/CMakeLists.darwin-x86_64.txt @@ -21,6 +21,10 @@ target_sources(yql-dq-expr_nodes PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.decl.inl.h ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.defs.inl.h ) add_custom_command( OUTPUT diff --git a/ydb/library/yql/dq/expr_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/expr_nodes/CMakeLists.linux-aarch64.txt index 2f618c2bd20f..0fadeb467bef 100644 --- a/ydb/library/yql/dq/expr_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/dq/expr_nodes/CMakeLists.linux-aarch64.txt @@ -22,6 +22,10 @@ target_sources(yql-dq-expr_nodes PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.decl.inl.h ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.defs.inl.h ) add_custom_command( OUTPUT diff --git a/ydb/library/yql/dq/expr_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/expr_nodes/CMakeLists.linux-x86_64.txt index 2f618c2bd20f..0fadeb467bef 100644 --- a/ydb/library/yql/dq/expr_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/dq/expr_nodes/CMakeLists.linux-x86_64.txt @@ -22,6 +22,10 @@ target_sources(yql-dq-expr_nodes PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.decl.inl.h ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.defs.inl.h ) add_custom_command( OUTPUT diff --git a/ydb/library/yql/dq/expr_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/expr_nodes/CMakeLists.windows-x86_64.txt index d81b9b9d6904..e7d16fb66831 100644 --- a/ydb/library/yql/dq/expr_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/dq/expr_nodes/CMakeLists.windows-x86_64.txt @@ -21,6 +21,10 @@ target_sources(yql-dq-expr_nodes PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.decl.inl.h ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/expr_nodes/dq_expr_nodes.defs.inl.h ) add_custom_command( OUTPUT diff --git a/ydb/library/yql/dq/opt/dq_opt_peephole.cpp b/ydb/library/yql/dq/opt/dq_opt_peephole.cpp index 6ce322bfc502..d1120601ce9d 100644 --- a/ydb/library/yql/dq/opt/dq_opt_peephole.cpp +++ b/ydb/library/yql/dq/opt/dq_opt_peephole.cpp @@ -554,7 +554,9 @@ NNodes::TExprBase DqPeepholeRewriteJoinDict(const NNodes::TExprBase& node, TExpr auto unpackData = UnpackJoinedData(leftRowType, rightRowType, leftTableLabel, rightTableLabel, join.Pos(), ctx); return Build<TCoMap>(ctx, joinDict.Pos()) - .Input(join) + .Input<TCoToFlow>() + .Input(join) + .Build() .Lambda(unpackData) .Done(); } diff --git a/ydb/library/yql/dq/opt/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/opt/ut/CMakeLists.darwin-arm64.txt index 0a7f35da124a..42686752c339 100644 --- a/ydb/library/yql/dq/opt/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/dq/opt/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-library-yql-dq-opt-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-dq-opt-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_cbo_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/opt/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/opt/ut/CMakeLists.darwin-x86_64.txt index 692c17ce3d07..b8b4a8828616 100644 --- a/ydb/library/yql/dq/opt/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/dq/opt/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-library-yql-dq-opt-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-dq-opt-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_cbo_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/opt/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/opt/ut/CMakeLists.linux-aarch64.txt index 07b6d1728abf..56bc8cf69248 100644 --- a/ydb/library/yql/dq/opt/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/dq/opt/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-library-yql-dq-opt-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-dq-opt-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_cbo_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/opt/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/opt/ut/CMakeLists.linux-x86_64.txt index 93b94a42a7c4..2ac280e9fb2d 100644 --- a/ydb/library/yql/dq/opt/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/dq/opt/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-library-yql-dq-opt-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-dq-opt-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_cbo_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/opt/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/opt/ut/CMakeLists.windows-x86_64.txt index b024a91e9858..5d120ad27fdb 100644 --- a/ydb/library/yql/dq/opt/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/dq/opt/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/proto/CMakeLists.darwin-arm64.txt index c186b980f875..f7cd95a51c50 100644 --- a/ydb/library/yql/dq/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/dq/proto/CMakeLists.darwin-arm64.txt @@ -68,6 +68,12 @@ target_proto_messages(yql-dq-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/proto/dq_tasks.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/proto/dq_transport.proto ) +target_sources(yql-dq-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_checkpoint.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_state_load_plan.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_tasks.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_transport.pb.h +) target_proto_addincls(yql-dq-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/dq/proto/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/proto/CMakeLists.darwin-x86_64.txt index c186b980f875..f7cd95a51c50 100644 --- a/ydb/library/yql/dq/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/dq/proto/CMakeLists.darwin-x86_64.txt @@ -68,6 +68,12 @@ target_proto_messages(yql-dq-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/proto/dq_tasks.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/proto/dq_transport.proto ) +target_sources(yql-dq-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_checkpoint.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_state_load_plan.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_tasks.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_transport.pb.h +) target_proto_addincls(yql-dq-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/dq/proto/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/proto/CMakeLists.linux-aarch64.txt index 83444232de28..a57f7c5381ba 100644 --- a/ydb/library/yql/dq/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/dq/proto/CMakeLists.linux-aarch64.txt @@ -69,6 +69,12 @@ target_proto_messages(yql-dq-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/proto/dq_tasks.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/proto/dq_transport.proto ) +target_sources(yql-dq-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_checkpoint.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_state_load_plan.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_tasks.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_transport.pb.h +) target_proto_addincls(yql-dq-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/dq/proto/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/proto/CMakeLists.linux-x86_64.txt index 83444232de28..a57f7c5381ba 100644 --- a/ydb/library/yql/dq/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/dq/proto/CMakeLists.linux-x86_64.txt @@ -69,6 +69,12 @@ target_proto_messages(yql-dq-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/proto/dq_tasks.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/proto/dq_transport.proto ) +target_sources(yql-dq-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_checkpoint.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_state_load_plan.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_tasks.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_transport.pb.h +) target_proto_addincls(yql-dq-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/dq/proto/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/proto/CMakeLists.windows-x86_64.txt index c186b980f875..f7cd95a51c50 100644 --- a/ydb/library/yql/dq/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/dq/proto/CMakeLists.windows-x86_64.txt @@ -68,6 +68,12 @@ target_proto_messages(yql-dq-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/proto/dq_tasks.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/proto/dq_transport.proto ) +target_sources(yql-dq-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_checkpoint.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_state_load_plan.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_tasks.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/dq/proto/dq_transport.pb.h +) target_proto_addincls(yql-dq-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/dq/runtime/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/runtime/CMakeLists.darwin-arm64.txt index 73291cdd0510..6bf5756e622d 100644 --- a/ydb/library/yql/dq/runtime/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/dq/runtime/CMakeLists.darwin-arm64.txt @@ -24,7 +24,7 @@ target_link_libraries(yql-dq-runtime PUBLIC libs-apache-arrow ydb-library-yverify_stream ydb-library-mkql_proto - minikql-comp_nodes-llvm + yql-minikql-comp_nodes parser-pg_wrapper-interface yql-public-udf dq-actors-protos diff --git a/ydb/library/yql/dq/runtime/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/runtime/CMakeLists.darwin-x86_64.txt index 73291cdd0510..6bf5756e622d 100644 --- a/ydb/library/yql/dq/runtime/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/dq/runtime/CMakeLists.darwin-x86_64.txt @@ -24,7 +24,7 @@ target_link_libraries(yql-dq-runtime PUBLIC libs-apache-arrow ydb-library-yverify_stream ydb-library-mkql_proto - minikql-comp_nodes-llvm + yql-minikql-comp_nodes parser-pg_wrapper-interface yql-public-udf dq-actors-protos diff --git a/ydb/library/yql/dq/runtime/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/runtime/CMakeLists.linux-aarch64.txt index b92bafba8a05..1e697633e6eb 100644 --- a/ydb/library/yql/dq/runtime/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/dq/runtime/CMakeLists.linux-aarch64.txt @@ -25,7 +25,7 @@ target_link_libraries(yql-dq-runtime PUBLIC libs-apache-arrow ydb-library-yverify_stream ydb-library-mkql_proto - minikql-comp_nodes-llvm + yql-minikql-comp_nodes parser-pg_wrapper-interface yql-public-udf dq-actors-protos diff --git a/ydb/library/yql/dq/runtime/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/runtime/CMakeLists.linux-x86_64.txt index b92bafba8a05..1e697633e6eb 100644 --- a/ydb/library/yql/dq/runtime/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/dq/runtime/CMakeLists.linux-x86_64.txt @@ -25,7 +25,7 @@ target_link_libraries(yql-dq-runtime PUBLIC libs-apache-arrow ydb-library-yverify_stream ydb-library-mkql_proto - minikql-comp_nodes-llvm + yql-minikql-comp_nodes parser-pg_wrapper-interface yql-public-udf dq-actors-protos diff --git a/ydb/library/yql/dq/runtime/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/runtime/CMakeLists.windows-x86_64.txt index 73291cdd0510..6bf5756e622d 100644 --- a/ydb/library/yql/dq/runtime/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/dq/runtime/CMakeLists.windows-x86_64.txt @@ -24,7 +24,7 @@ target_link_libraries(yql-dq-runtime PUBLIC libs-apache-arrow ydb-library-yverify_stream ydb-library-mkql_proto - minikql-comp_nodes-llvm + yql-minikql-comp_nodes parser-pg_wrapper-interface yql-public-udf dq-actors-protos diff --git a/ydb/library/yql/dq/runtime/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/runtime/ut/CMakeLists.darwin-arm64.txt index ae3fff8b8917..4f4b10a83806 100644 --- a/ydb/library/yql/dq/runtime/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/dq/runtime/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-library-yql-dq-runtime-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-dq-runtime-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_arrow_helpers_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/runtime/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/runtime/ut/CMakeLists.darwin-x86_64.txt index 8b442c978b56..4b443b22b22b 100644 --- a/ydb/library/yql/dq/runtime/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/dq/runtime/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-library-yql-dq-runtime-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-dq-runtime-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_arrow_helpers_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/runtime/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/runtime/ut/CMakeLists.linux-aarch64.txt index fcf0bf185c4a..dfc2cce11cb5 100644 --- a/ydb/library/yql/dq/runtime/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/dq/runtime/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-library-yql-dq-runtime-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-dq-runtime-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_arrow_helpers_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/runtime/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/runtime/ut/CMakeLists.linux-x86_64.txt index 44b0a77bf272..cb5b639f421e 100644 --- a/ydb/library/yql/dq/runtime/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/dq/runtime/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-library-yql-dq-runtime-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-dq-runtime-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/runtime/dq_arrow_helpers_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/runtime/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/runtime/ut/CMakeLists.windows-x86_64.txt index 818b387e26dc..cc6b415c0177 100644 --- a/ydb/library/yql/dq/runtime/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/dq/runtime/ut/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/state/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/state/ut/CMakeLists.darwin-arm64.txt index 1e72b3b74f5b..3ce6ef92a8a2 100644 --- a/ydb/library/yql/dq/state/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/dq/state/ut/CMakeLists.darwin-arm64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-library-yql-dq-state-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-dq-state-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/state/ut/dq_state_load_plan_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/state/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/state/ut/CMakeLists.darwin-x86_64.txt index 68592dfce43f..298c90e8509c 100644 --- a/ydb/library/yql/dq/state/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/dq/state/ut/CMakeLists.darwin-x86_64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-library-yql-dq-state-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-dq-state-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/state/ut/dq_state_load_plan_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/state/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/state/ut/CMakeLists.linux-aarch64.txt index 7896f185e772..b99b9eed7989 100644 --- a/ydb/library/yql/dq/state/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/dq/state/ut/CMakeLists.linux-aarch64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-library-yql-dq-state-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-dq-state-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/state/ut/dq_state_load_plan_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/state/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/state/ut/CMakeLists.linux-x86_64.txt index dbc040cc6476..1964a88e2677 100644 --- a/ydb/library/yql/dq/state/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/dq/state/ut/CMakeLists.linux-x86_64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-library-yql-dq-state-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-dq-state-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/state/ut/dq_state_load_plan_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/state/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/state/ut/CMakeLists.windows-x86_64.txt index c5621bd199c7..26e9b3986f95 100644 --- a/ydb/library/yql/dq/state/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/dq/state/ut/CMakeLists.windows-x86_64.txt @@ -49,6 +49,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/dq/transform/CMakeLists.darwin-arm64.txt b/ydb/library/yql/dq/transform/CMakeLists.darwin-arm64.txt index c95225936df7..de72a077e7ba 100644 --- a/ydb/library/yql/dq/transform/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/dq/transform/CMakeLists.darwin-arm64.txt @@ -16,7 +16,7 @@ target_link_libraries(yql-dq-transform PUBLIC yutil library-actors-core dq-integration-transform - minikql-computation-llvm + yql-minikql-computation library-yql-utils ) target_sources(yql-dq-transform PRIVATE diff --git a/ydb/library/yql/dq/transform/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/transform/CMakeLists.darwin-x86_64.txt index c95225936df7..de72a077e7ba 100644 --- a/ydb/library/yql/dq/transform/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/dq/transform/CMakeLists.darwin-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(yql-dq-transform PUBLIC yutil library-actors-core dq-integration-transform - minikql-computation-llvm + yql-minikql-computation library-yql-utils ) target_sources(yql-dq-transform PRIVATE diff --git a/ydb/library/yql/dq/transform/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/transform/CMakeLists.linux-aarch64.txt index 0a649727a46e..8c5aba692ae7 100644 --- a/ydb/library/yql/dq/transform/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/dq/transform/CMakeLists.linux-aarch64.txt @@ -17,7 +17,7 @@ target_link_libraries(yql-dq-transform PUBLIC yutil library-actors-core dq-integration-transform - minikql-computation-llvm + yql-minikql-computation library-yql-utils ) target_sources(yql-dq-transform PRIVATE diff --git a/ydb/library/yql/dq/transform/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/transform/CMakeLists.linux-x86_64.txt index 0a649727a46e..8c5aba692ae7 100644 --- a/ydb/library/yql/dq/transform/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/dq/transform/CMakeLists.linux-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(yql-dq-transform PUBLIC yutil library-actors-core dq-integration-transform - minikql-computation-llvm + yql-minikql-computation library-yql-utils ) target_sources(yql-dq-transform PRIVATE diff --git a/ydb/library/yql/dq/transform/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/transform/CMakeLists.windows-x86_64.txt index c95225936df7..de72a077e7ba 100644 --- a/ydb/library/yql/dq/transform/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/dq/transform/CMakeLists.windows-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(yql-dq-transform PUBLIC yutil library-actors-core dq-integration-transform - minikql-computation-llvm + yql-minikql-computation library-yql-utils ) target_sources(yql-dq-transform PRIVATE diff --git a/ydb/library/yql/minikql/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/CMakeLists.darwin-arm64.txt index 80c4f99c0153..57c1508ea08f 100644 --- a/ydb/library/yql/minikql/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/CMakeLists.darwin-arm64.txt @@ -48,6 +48,30 @@ target_link_libraries(library-yql-minikql PUBLIC public-lib-scheme_types ) target_sources(library-yql-minikql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/compact_hash.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_function_metadata.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_function_registry.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_cast.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_printer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_serialization.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_visitor.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_opt_literal.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_program_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_runtime_version.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_string_util.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_terminator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_type_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_type_ops.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_watermark.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_unboxed_value_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/pack_num.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/primes.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/watermark_tracker.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/compact_hash.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_alloc.cpp diff --git a/ydb/library/yql/minikql/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/CMakeLists.darwin-x86_64.txt index 80c4f99c0153..57c1508ea08f 100644 --- a/ydb/library/yql/minikql/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/CMakeLists.darwin-x86_64.txt @@ -48,6 +48,30 @@ target_link_libraries(library-yql-minikql PUBLIC public-lib-scheme_types ) target_sources(library-yql-minikql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/compact_hash.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_function_metadata.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_function_registry.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_cast.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_printer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_serialization.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_visitor.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_opt_literal.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_program_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_runtime_version.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_string_util.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_terminator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_type_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_type_ops.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_watermark.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_unboxed_value_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/pack_num.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/primes.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/watermark_tracker.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/compact_hash.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_alloc.cpp diff --git a/ydb/library/yql/minikql/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/CMakeLists.linux-aarch64.txt index b9f012a26fd4..77940a5889ae 100644 --- a/ydb/library/yql/minikql/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/CMakeLists.linux-aarch64.txt @@ -49,6 +49,30 @@ target_link_libraries(library-yql-minikql PUBLIC public-lib-scheme_types ) target_sources(library-yql-minikql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/compact_hash.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_function_metadata.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_function_registry.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_cast.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_printer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_serialization.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_visitor.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_opt_literal.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_program_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_runtime_version.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_string_util.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_terminator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_type_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_type_ops.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_watermark.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_unboxed_value_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/pack_num.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/primes.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/watermark_tracker.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/compact_hash.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_alloc.cpp diff --git a/ydb/library/yql/minikql/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/CMakeLists.linux-x86_64.txt index b9f012a26fd4..77940a5889ae 100644 --- a/ydb/library/yql/minikql/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/CMakeLists.linux-x86_64.txt @@ -49,6 +49,30 @@ target_link_libraries(library-yql-minikql PUBLIC public-lib-scheme_types ) target_sources(library-yql-minikql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/compact_hash.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_function_metadata.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_function_registry.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_cast.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_printer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_serialization.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_visitor.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_opt_literal.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_program_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_runtime_version.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_string_util.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_terminator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_type_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_type_ops.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_watermark.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_unboxed_value_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/pack_num.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/primes.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/watermark_tracker.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/compact_hash.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_alloc.cpp diff --git a/ydb/library/yql/minikql/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/CMakeLists.windows-x86_64.txt index 80c4f99c0153..57c1508ea08f 100644 --- a/ydb/library/yql/minikql/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/CMakeLists.windows-x86_64.txt @@ -48,6 +48,30 @@ target_link_libraries(library-yql-minikql PUBLIC public-lib-scheme_types ) target_sources(library-yql-minikql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/compact_hash.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/defs.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_function_metadata.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_function_registry.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_cast.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_printer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_serialization.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_node_visitor.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_opt_literal.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_program_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_runtime_version.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_string_util.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_terminator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_type_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_type_ops.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_watermark.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_unboxed_value_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/pack_num.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/primes.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/watermark_tracker.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/compact_hash.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/mkql_alloc.cpp diff --git a/ydb/library/yql/minikql/arrow/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/arrow/ut/CMakeLists.darwin-arm64.txt index 1b3f2b2ff92e..7faba0fc81bc 100644 --- a/ydb/library/yql/minikql/arrow/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/arrow/ut/CMakeLists.darwin-arm64.txt @@ -22,14 +22,12 @@ target_link_libraries(ydb-library-yql-minikql-arrow-ut PUBLIC yql-public-udf udf-service-exception_policy yql-sql-pg_dummy - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 ) target_link_options(ydb-library-yql-minikql-arrow-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-minikql-arrow-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/arrow/mkql_functions_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/arrow/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/arrow/ut/CMakeLists.darwin-x86_64.txt index 245ab8c1813d..28afac4ac741 100644 --- a/ydb/library/yql/minikql/arrow/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/arrow/ut/CMakeLists.darwin-x86_64.txt @@ -23,14 +23,12 @@ target_link_libraries(ydb-library-yql-minikql-arrow-ut PUBLIC yql-public-udf udf-service-exception_policy yql-sql-pg_dummy - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 ) target_link_options(ydb-library-yql-minikql-arrow-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-minikql-arrow-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/arrow/mkql_functions_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/arrow/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/arrow/ut/CMakeLists.linux-aarch64.txt index 719f38573938..6f0dba6e8516 100644 --- a/ydb/library/yql/minikql/arrow/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/arrow/ut/CMakeLists.linux-aarch64.txt @@ -23,7 +23,7 @@ target_link_libraries(ydb-library-yql-minikql-arrow-ut PUBLIC yql-public-udf udf-service-exception_policy yql-sql-pg_dummy - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 ) target_link_options(ydb-library-yql-minikql-arrow-ut PRIVATE -ldl @@ -31,9 +31,6 @@ target_link_options(ydb-library-yql-minikql-arrow-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-minikql-arrow-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/arrow/mkql_functions_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/arrow/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/arrow/ut/CMakeLists.linux-x86_64.txt index d5e533c7bd52..465e6e4861ea 100644 --- a/ydb/library/yql/minikql/arrow/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/arrow/ut/CMakeLists.linux-x86_64.txt @@ -24,7 +24,7 @@ target_link_libraries(ydb-library-yql-minikql-arrow-ut PUBLIC yql-public-udf udf-service-exception_policy yql-sql-pg_dummy - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 ) target_link_options(ydb-library-yql-minikql-arrow-ut PRIVATE -ldl @@ -32,9 +32,6 @@ target_link_options(ydb-library-yql-minikql-arrow-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-minikql-arrow-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/arrow/mkql_functions_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/arrow/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/arrow/ut/CMakeLists.windows-x86_64.txt index 55cf43ffb113..c7e4d8ab99f0 100644 --- a/ydb/library/yql/minikql/arrow/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/arrow/ut/CMakeLists.windows-x86_64.txt @@ -23,7 +23,7 @@ target_link_libraries(ydb-library-yql-minikql-arrow-ut PUBLIC yql-public-udf udf-service-exception_policy yql-sql-pg_dummy - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 ) target_sources(ydb-library-yql-minikql-arrow-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/arrow/mkql_functions_ut.cpp @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.darwin-arm64.txt index e35d174b82dd..78647abad81c 100644 --- a/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.darwin-arm64.txt @@ -19,8 +19,6 @@ target_link_options(pack_num PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(pack_num PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/benchmark/pack_num/pack.cpp diff --git a/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.darwin-x86_64.txt index 0e2991b9aeb7..7edab544e202 100644 --- a/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.darwin-x86_64.txt @@ -20,8 +20,6 @@ target_link_options(pack_num PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(pack_num PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/benchmark/pack_num/pack.cpp diff --git a/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.linux-aarch64.txt index 8689949aac33..ea9d4a3cad4d 100644 --- a/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.linux-aarch64.txt @@ -22,9 +22,6 @@ target_link_options(pack_num PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(pack_num PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/benchmark/pack_num/pack.cpp diff --git a/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.linux-x86_64.txt index c13a87236043..d4fc578a3eb6 100644 --- a/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/benchmark/pack_num/CMakeLists.linux-x86_64.txt @@ -23,9 +23,6 @@ target_link_options(pack_num PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(pack_num PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/benchmark/pack_num/pack.cpp diff --git a/ydb/library/yql/minikql/codegen/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/codegen/CMakeLists.darwin-arm64.txt deleted file mode 100644 index 377a730d286a..000000000000 --- a/ydb/library/yql/minikql/codegen/CMakeLists.darwin-arm64.txt +++ /dev/null @@ -1,31 +0,0 @@ - -# 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(yql-minikql-codegen) -target_compile_options(yql-minikql-codegen PRIVATE - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> -) -target_link_libraries(yql-minikql-codegen PUBLIC - contrib-libs-cxxsupp - yutil - libs-cxxsupp-builtins - contrib-libs-re2 - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - Target-X86-Disassembler - lib-Transforms-IPO - lib-Transforms-ObjCARC -) -target_sources(yql-minikql-codegen PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp -) diff --git a/ydb/library/yql/minikql/codegen/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/codegen/CMakeLists.darwin-x86_64.txt deleted file mode 100644 index 377a730d286a..000000000000 --- a/ydb/library/yql/minikql/codegen/CMakeLists.darwin-x86_64.txt +++ /dev/null @@ -1,31 +0,0 @@ - -# 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(yql-minikql-codegen) -target_compile_options(yql-minikql-codegen PRIVATE - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> -) -target_link_libraries(yql-minikql-codegen PUBLIC - contrib-libs-cxxsupp - yutil - libs-cxxsupp-builtins - contrib-libs-re2 - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - Target-X86-Disassembler - lib-Transforms-IPO - lib-Transforms-ObjCARC -) -target_sources(yql-minikql-codegen PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp -) diff --git a/ydb/library/yql/minikql/codegen/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/codegen/CMakeLists.linux-aarch64.txt deleted file mode 100644 index 6a23884af5a9..000000000000 --- a/ydb/library/yql/minikql/codegen/CMakeLists.linux-aarch64.txt +++ /dev/null @@ -1,33 +0,0 @@ - -# 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(yql-minikql-codegen) -target_compile_options(yql-minikql-codegen PRIVATE - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> -) -target_link_libraries(yql-minikql-codegen PUBLIC - contrib-libs-linux-headers - contrib-libs-cxxsupp - yutil - libs-cxxsupp-builtins - contrib-libs-re2 - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - Target-X86-Disassembler - lib-Transforms-IPO - lib-Transforms-ObjCARC - lib-ExecutionEngine-PerfJITEvents -) -target_sources(yql-minikql-codegen PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp -) diff --git a/ydb/library/yql/minikql/codegen/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/codegen/CMakeLists.linux-x86_64.txt deleted file mode 100644 index 6a23884af5a9..000000000000 --- a/ydb/library/yql/minikql/codegen/CMakeLists.linux-x86_64.txt +++ /dev/null @@ -1,33 +0,0 @@ - -# 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(yql-minikql-codegen) -target_compile_options(yql-minikql-codegen PRIVATE - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> -) -target_link_libraries(yql-minikql-codegen PUBLIC - contrib-libs-linux-headers - contrib-libs-cxxsupp - yutil - libs-cxxsupp-builtins - contrib-libs-re2 - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - Target-X86-Disassembler - lib-Transforms-IPO - lib-Transforms-ObjCARC - lib-ExecutionEngine-PerfJITEvents -) -target_sources(yql-minikql-codegen PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp -) diff --git a/ydb/library/yql/minikql/codegen/CMakeLists.txt b/ydb/library/yql/minikql/codegen/CMakeLists.txt index d863ebd18067..a76928d6bb44 100644 --- a/ydb/library/yql/minikql/codegen/CMakeLists.txt +++ b/ydb/library/yql/minikql/codegen/CMakeLists.txt @@ -6,14 +6,6 @@ # original buildsystem will not be accepted. -if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA) - include(CMakeLists.linux-x86_64.txt) -elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) -endif() +add_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) diff --git a/ydb/library/yql/minikql/codegen/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/codegen/CMakeLists.windows-x86_64.txt deleted file mode 100644 index 7fdb97049bc0..000000000000 --- a/ydb/library/yql/minikql/codegen/CMakeLists.windows-x86_64.txt +++ /dev/null @@ -1,31 +0,0 @@ - -# 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(yql-minikql-codegen) -target_compile_options(yql-minikql-codegen PRIVATE - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> -) -target_link_libraries(yql-minikql-codegen PUBLIC - contrib-libs-cxxsupp - yutil - yql-public-decimal - contrib-libs-re2 - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - Target-X86-Disassembler - lib-Transforms-IPO - lib-Transforms-ObjCARC -) -target_sources(yql-minikql-codegen PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp -) diff --git a/ydb/library/yql/minikql/codegen/llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/codegen/llvm/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..e241474379a8 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm/CMakeLists.darwin-arm64.txt @@ -0,0 +1,41 @@ + +# 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(minikql-codegen-llvm) +target_include_directories(minikql-codegen-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen +) +target_link_libraries(minikql-codegen-llvm PUBLIC + contrib-libs-cxxsupp + yutil + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + libs-cxxsupp-builtins + contrib-libs-re2 +) +target_sources(minikql-codegen-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen_llvm_deps.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen.cpp +) diff --git a/ydb/library/yql/minikql/codegen/llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/codegen/llvm/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..e241474379a8 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,41 @@ + +# 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(minikql-codegen-llvm) +target_include_directories(minikql-codegen-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen +) +target_link_libraries(minikql-codegen-llvm PUBLIC + contrib-libs-cxxsupp + yutil + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + libs-cxxsupp-builtins + contrib-libs-re2 +) +target_sources(minikql-codegen-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen_llvm_deps.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen.cpp +) diff --git a/ydb/library/yql/minikql/codegen/llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/codegen/llvm/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..71b083074f2d --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm/CMakeLists.linux-aarch64.txt @@ -0,0 +1,43 @@ + +# 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(minikql-codegen-llvm) +target_include_directories(minikql-codegen-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen +) +target_link_libraries(minikql-codegen-llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + lib-ExecutionEngine-PerfJITEvents + libs-cxxsupp-builtins + contrib-libs-re2 +) +target_sources(minikql-codegen-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen_llvm_deps.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen.cpp +) diff --git a/ydb/library/yql/minikql/codegen/llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/codegen/llvm/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..71b083074f2d --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm/CMakeLists.linux-x86_64.txt @@ -0,0 +1,43 @@ + +# 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(minikql-codegen-llvm) +target_include_directories(minikql-codegen-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen +) +target_link_libraries(minikql-codegen-llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + lib-ExecutionEngine-PerfJITEvents + libs-cxxsupp-builtins + contrib-libs-re2 +) +target_sources(minikql-codegen-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen_llvm_deps.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen.cpp +) diff --git a/ydb/library/yql/minikql/codegen/llvm/CMakeLists.txt b/ydb/library/yql/minikql/codegen/llvm/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/codegen/llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/codegen/llvm/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..dcd37d84aaf9 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm/CMakeLists.windows-x86_64.txt @@ -0,0 +1,41 @@ + +# 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(minikql-codegen-llvm) +target_include_directories(minikql-codegen-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen +) +target_link_libraries(minikql-codegen-llvm PUBLIC + contrib-libs-cxxsupp + yutil + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + yql-public-decimal + contrib-libs-re2 +) +target_sources(minikql-codegen-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen_llvm_deps.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/codegen.cpp +) diff --git a/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..86685c436863 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.darwin-arm64.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-yql-minikql-codegen-llvm-ut) +target_include_directories(ydb-library-yql-minikql-codegen-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut +) +target_link_libraries(ydb-library-yql-minikql-codegen-llvm-ut PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + minikql-codegen-llvm +) +target_link_options(ydb-library-yql-minikql-codegen-llvm-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-codegen-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-codegen-llvm-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-minikql-codegen-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-codegen-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm-ut + PROPERTY + PROCESSORS + 1 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut_llvm_deps.h +) +target_allocator(ydb-library-yql-minikql-codegen-llvm-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-codegen-llvm-ut) diff --git a/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..4544c770a4f3 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,83 @@ + +# 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-yql-minikql-codegen-llvm-ut) +target_include_directories(ydb-library-yql-minikql-codegen-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut +) +target_link_libraries(ydb-library-yql-minikql-codegen-llvm-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + minikql-codegen-llvm +) +target_link_options(ydb-library-yql-minikql-codegen-llvm-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-codegen-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-codegen-llvm-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-minikql-codegen-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-codegen-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm-ut + PROPERTY + PROCESSORS + 1 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut_llvm_deps.h +) +target_allocator(ydb-library-yql-minikql-codegen-llvm-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-codegen-llvm-ut) diff --git a/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..53ceef668751 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.linux-aarch64.txt @@ -0,0 +1,86 @@ + +# 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-yql-minikql-codegen-llvm-ut) +target_include_directories(ydb-library-yql-minikql-codegen-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut +) +target_link_libraries(ydb-library-yql-minikql-codegen-llvm-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + lib-ExecutionEngine-PerfJITEvents + minikql-codegen-llvm +) +target_link_options(ydb-library-yql-minikql-codegen-llvm-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-codegen-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-codegen-llvm-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-minikql-codegen-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-codegen-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm-ut + PROPERTY + PROCESSORS + 1 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut_llvm_deps.h +) +target_allocator(ydb-library-yql-minikql-codegen-llvm-ut + cpp-malloc-jemalloc +) +vcs_info(ydb-library-yql-minikql-codegen-llvm-ut) diff --git a/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..e4ee4ab6a3d7 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.linux-x86_64.txt @@ -0,0 +1,88 @@ + +# 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-yql-minikql-codegen-llvm-ut) +target_include_directories(ydb-library-yql-minikql-codegen-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut +) +target_link_libraries(ydb-library-yql-minikql-codegen-llvm-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + lib-ExecutionEngine-PerfJITEvents + minikql-codegen-llvm +) +target_link_options(ydb-library-yql-minikql-codegen-llvm-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-codegen-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-codegen-llvm-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-minikql-codegen-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-codegen-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm-ut + PROPERTY + PROCESSORS + 1 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut_llvm_deps.h +) +target_allocator(ydb-library-yql-minikql-codegen-llvm-ut + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-library-yql-minikql-codegen-llvm-ut) diff --git a/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.txt b/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..3ffef7b5bd09 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm/ut/CMakeLists.windows-x86_64.txt @@ -0,0 +1,78 @@ + +# 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-yql-minikql-codegen-llvm-ut) +target_include_directories(ydb-library-yql-minikql-codegen-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut +) +target_link_libraries(ydb-library-yql-minikql-codegen-llvm-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + minikql-codegen-llvm +) +target_sources(ydb-library-yql-minikql-codegen-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-codegen-llvm-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-minikql-codegen-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-codegen-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm-ut + PROPERTY + PROCESSORS + 1 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm/ut/codegen_ut_llvm_deps.h +) +target_allocator(ydb-library-yql-minikql-codegen-llvm-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-codegen-llvm-ut) diff --git a/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..d390a4b51126 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.darwin-arm64.txt @@ -0,0 +1,41 @@ + +# 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(minikql-codegen-llvm14) +target_include_directories(minikql-codegen-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14 + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen +) +target_link_libraries(minikql-codegen-llvm14 PUBLIC + contrib-libs-cxxsupp + yutil + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + libs-cxxsupp-builtins + contrib-libs-re2 +) +target_sources(minikql-codegen-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen_llvm_deps.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen.cpp +) diff --git a/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..d390a4b51126 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,41 @@ + +# 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(minikql-codegen-llvm14) +target_include_directories(minikql-codegen-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14 + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen +) +target_link_libraries(minikql-codegen-llvm14 PUBLIC + contrib-libs-cxxsupp + yutil + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + libs-cxxsupp-builtins + contrib-libs-re2 +) +target_sources(minikql-codegen-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen_llvm_deps.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen.cpp +) diff --git a/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..9fb37b7db02d --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.linux-aarch64.txt @@ -0,0 +1,43 @@ + +# 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(minikql-codegen-llvm14) +target_include_directories(minikql-codegen-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14 + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen +) +target_link_libraries(minikql-codegen-llvm14 PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + lib-ExecutionEngine-PerfJITEvents + libs-cxxsupp-builtins + contrib-libs-re2 +) +target_sources(minikql-codegen-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen_llvm_deps.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen.cpp +) diff --git a/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..9fb37b7db02d --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.linux-x86_64.txt @@ -0,0 +1,43 @@ + +# 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(minikql-codegen-llvm14) +target_include_directories(minikql-codegen-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14 + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen +) +target_link_libraries(minikql-codegen-llvm14 PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + lib-ExecutionEngine-PerfJITEvents + libs-cxxsupp-builtins + contrib-libs-re2 +) +target_sources(minikql-codegen-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen_llvm_deps.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen.cpp +) diff --git a/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.txt b/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..8980bdee22ca --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm14/CMakeLists.windows-x86_64.txt @@ -0,0 +1,41 @@ + +# 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(minikql-codegen-llvm14) +target_include_directories(minikql-codegen-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14 + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen +) +target_link_libraries(minikql-codegen-llvm14 PUBLIC + contrib-libs-cxxsupp + yutil + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + yql-public-decimal + contrib-libs-re2 +) +target_sources(minikql-codegen-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen_llvm_deps.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/codegen.cpp +) diff --git a/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..828d561059c4 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.darwin-arm64.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-yql-minikql-codegen-llvm14-ut) +target_include_directories(ydb-library-yql-minikql-codegen-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut +) +target_link_libraries(ydb-library-yql-minikql-codegen-llvm14-ut PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + minikql-codegen-llvm14 +) +target_link_options(ydb-library-yql-minikql-codegen-llvm14-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-codegen-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-codegen-llvm14-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-minikql-codegen-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-codegen-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm14-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut_llvm_deps.h +) +target_allocator(ydb-library-yql-minikql-codegen-llvm14-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-codegen-llvm14-ut) diff --git a/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..17043c8d5be3 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,83 @@ + +# 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-yql-minikql-codegen-llvm14-ut) +target_include_directories(ydb-library-yql-minikql-codegen-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut +) +target_link_libraries(ydb-library-yql-minikql-codegen-llvm14-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + minikql-codegen-llvm14 +) +target_link_options(ydb-library-yql-minikql-codegen-llvm14-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-codegen-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-codegen-llvm14-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-minikql-codegen-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-codegen-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm14-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut_llvm_deps.h +) +target_allocator(ydb-library-yql-minikql-codegen-llvm14-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-codegen-llvm14-ut) diff --git a/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..cd4d90176b39 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.linux-aarch64.txt @@ -0,0 +1,86 @@ + +# 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-yql-minikql-codegen-llvm14-ut) +target_include_directories(ydb-library-yql-minikql-codegen-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut +) +target_link_libraries(ydb-library-yql-minikql-codegen-llvm14-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + lib-ExecutionEngine-PerfJITEvents + minikql-codegen-llvm14 +) +target_link_options(ydb-library-yql-minikql-codegen-llvm14-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-codegen-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-codegen-llvm14-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-minikql-codegen-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-codegen-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm14-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut_llvm_deps.h +) +target_allocator(ydb-library-yql-minikql-codegen-llvm14-ut + cpp-malloc-jemalloc +) +vcs_info(ydb-library-yql-minikql-codegen-llvm14-ut) diff --git a/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..faacb2e3e02a --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.linux-x86_64.txt @@ -0,0 +1,88 @@ + +# 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-yql-minikql-codegen-llvm14-ut) +target_include_directories(ydb-library-yql-minikql-codegen-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut +) +target_link_libraries(ydb-library-yql-minikql-codegen-llvm14-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + lib-ExecutionEngine-PerfJITEvents + minikql-codegen-llvm14 +) +target_link_options(ydb-library-yql-minikql-codegen-llvm14-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-codegen-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-codegen-llvm14-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-minikql-codegen-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-codegen-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm14-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut_llvm_deps.h +) +target_allocator(ydb-library-yql-minikql-codegen-llvm14-ut + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-library-yql-minikql-codegen-llvm14-ut) diff --git a/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.txt b/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..45de7172ab94 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/llvm14/ut/CMakeLists.windows-x86_64.txt @@ -0,0 +1,78 @@ + +# 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-yql-minikql-codegen-llvm14-ut) +target_include_directories(ydb-library-yql-minikql-codegen-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut +) +target_link_libraries(ydb-library-yql-minikql-codegen-llvm14-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + Target-X86-Disassembler + lib-Transforms-IPO + lib-Transforms-ObjCARC + minikql-codegen-llvm14 +) +target_sources(ydb-library-yql-minikql-codegen-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut_llvm_deps.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-codegen-llvm14-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-minikql-codegen-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-codegen-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm14-ut + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-codegen-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut.cpp +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/codegen_ut_llvm_deps.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/codegen/llvm14/ut/codegen_ut_llvm_deps.h +) +target_allocator(ydb-library-yql-minikql-codegen-llvm14-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-codegen-llvm14-ut) diff --git a/ydb/library/yql/minikql/codegen/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/codegen/no_llvm/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..780102078882 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/no_llvm/CMakeLists.darwin-arm64.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(minikql-codegen-no_llvm) +target_include_directories(minikql-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen +) +target_link_libraries(minikql-codegen-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil +) +target_sources(minikql-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/no_llvm/codegen_dummy.cpp +) diff --git a/ydb/library/yql/minikql/codegen/no_llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/codegen/no_llvm/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..780102078882 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/no_llvm/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(minikql-codegen-no_llvm) +target_include_directories(minikql-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen +) +target_link_libraries(minikql-codegen-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil +) +target_sources(minikql-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/no_llvm/codegen_dummy.cpp +) diff --git a/ydb/library/yql/minikql/codegen/no_llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/codegen/no_llvm/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..f67d25468858 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/no_llvm/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(minikql-codegen-no_llvm) +target_include_directories(minikql-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen +) +target_link_libraries(minikql-codegen-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) +target_sources(minikql-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/no_llvm/codegen_dummy.cpp +) diff --git a/ydb/library/yql/minikql/codegen/no_llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/codegen/no_llvm/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..f67d25468858 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/no_llvm/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(minikql-codegen-no_llvm) +target_include_directories(minikql-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen +) +target_link_libraries(minikql-codegen-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) +target_sources(minikql-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/no_llvm/codegen_dummy.cpp +) diff --git a/ydb/library/yql/minikql/codegen/no_llvm/CMakeLists.txt b/ydb/library/yql/minikql/codegen/no_llvm/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/no_llvm/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/codegen/no_llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/codegen/no_llvm/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..780102078882 --- /dev/null +++ b/ydb/library/yql/minikql/codegen/no_llvm/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(minikql-codegen-no_llvm) +target_include_directories(minikql-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen +) +target_link_libraries(minikql-codegen-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil +) +target_sources(minikql-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/no_llvm/codegen_dummy.cpp +) diff --git a/ydb/library/yql/minikql/comp_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/comp_nodes/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..dadbbe0dee41 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/CMakeLists.darwin-arm64.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_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) + +add_library(yql-minikql-comp_nodes INTERFACE) +target_link_libraries(yql-minikql-comp_nodes INTERFACE + contrib-libs-cxxsupp + yutil +) diff --git a/ydb/library/yql/minikql/comp_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..dadbbe0dee41 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/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_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) + +add_library(yql-minikql-comp_nodes INTERFACE) +target_link_libraries(yql-minikql-comp_nodes INTERFACE + contrib-libs-cxxsupp + yutil +) diff --git a/ydb/library/yql/minikql/comp_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/comp_nodes/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..d2d1cfa06128 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/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_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) + +add_library(yql-minikql-comp_nodes INTERFACE) +target_link_libraries(yql-minikql-comp_nodes INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) diff --git a/ydb/library/yql/minikql/comp_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..d2d1cfa06128 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/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_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) + +add_library(yql-minikql-comp_nodes INTERFACE) +target_link_libraries(yql-minikql-comp_nodes INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) diff --git a/ydb/library/yql/minikql/comp_nodes/CMakeLists.txt b/ydb/library/yql/minikql/comp_nodes/CMakeLists.txt index 4716de1ef37a..d863ebd18067 100644 --- a/ydb/library/yql/minikql/comp_nodes/CMakeLists.txt +++ b/ydb/library/yql/minikql/comp_nodes/CMakeLists.txt @@ -6,6 +6,14 @@ # original buildsystem will not be accepted. -add_subdirectory(llvm) -add_subdirectory(no_llvm) -add_subdirectory(ut) +if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/comp_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..dadbbe0dee41 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/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_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) + +add_library(yql-minikql-comp_nodes INTERFACE) +target_link_libraries(yql-minikql-comp_nodes INTERFACE + contrib-libs-cxxsupp + yutil +) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.darwin-arm64.txt index 6a486585d431..72a31e460303 100644 --- a/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.darwin-arm64.txt @@ -6,17 +6,29 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) -add_library(minikql-comp_nodes-llvm) +add_library(minikql-comp_nodes-llvm STATIC) +set_property(TARGET minikql-comp_nodes-llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-comp_nodes-llvm PRIVATE -mprfchw -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(minikql-comp_nodes-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-comp_nodes-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes ) target_link_libraries(minikql-comp_nodes-llvm PUBLIC contrib-libs-cxxsupp yutil - yql-minikql-codegen + minikql-codegen-llvm minikql-invoke_builtins-llvm llvm12-lib-IR lib-ExecutionEngine-MCJIT @@ -32,130 +44,32 @@ target_link_libraries(minikql-comp_nodes-llvm PUBLIC parser-pg_wrapper-interface library-yql-utils library-actors-core + public-issue-protos ) target_sources(minikql-comp_nodes-llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_addmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_aggrcount.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_append.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_count.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_minmax.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_some.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_sum.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_just.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_compress.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_func.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_skiptake.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_top.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_tuple.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_blocks.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_callable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain1_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_check_args.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_collect.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_contains.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_dictitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_discard.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_element.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ensure.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_enumerate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_exists.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_extend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flatmap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flow.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_frombytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromstring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromyson.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_group.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join_imp.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_guess.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hasitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_heap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_invoke.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterator.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join_dict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lazy_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_length.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_listfromrange.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lookup.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_mapnext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_match_recognize.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multimap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_next_value.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_nop.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_now.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_null.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_pickle.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_prepend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_queue.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_random.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_range.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reduce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_removemember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_replicate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reverse.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_rh_hash.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_round.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_safe_circular_buffer.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_scalar_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_seq.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_size.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_skip.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_source.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_state.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_to_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_switch.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_take.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_time_order_recover.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_timezone.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tobytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_toindexdict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tooptional.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tostring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_udf.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_unwrap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_varitem.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_visitall.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_way.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_weakmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_while.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_withcontext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_zip.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.darwin-x86_64.txt index 6a486585d431..72a31e460303 100644 --- a/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.darwin-x86_64.txt @@ -6,17 +6,29 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) -add_library(minikql-comp_nodes-llvm) +add_library(minikql-comp_nodes-llvm STATIC) +set_property(TARGET minikql-comp_nodes-llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-comp_nodes-llvm PRIVATE -mprfchw -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(minikql-comp_nodes-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-comp_nodes-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes ) target_link_libraries(minikql-comp_nodes-llvm PUBLIC contrib-libs-cxxsupp yutil - yql-minikql-codegen + minikql-codegen-llvm minikql-invoke_builtins-llvm llvm12-lib-IR lib-ExecutionEngine-MCJIT @@ -32,130 +44,32 @@ target_link_libraries(minikql-comp_nodes-llvm PUBLIC parser-pg_wrapper-interface library-yql-utils library-actors-core + public-issue-protos ) target_sources(minikql-comp_nodes-llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_addmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_aggrcount.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_append.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_count.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_minmax.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_some.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_sum.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_just.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_compress.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_func.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_skiptake.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_top.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_tuple.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_blocks.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_callable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain1_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_check_args.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_collect.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_contains.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_dictitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_discard.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_element.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ensure.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_enumerate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_exists.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_extend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flatmap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flow.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_frombytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromstring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromyson.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_group.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join_imp.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_guess.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hasitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_heap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_invoke.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterator.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join_dict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lazy_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_length.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_listfromrange.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lookup.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_mapnext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_match_recognize.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multimap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_next_value.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_nop.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_now.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_null.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_pickle.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_prepend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_queue.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_random.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_range.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reduce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_removemember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_replicate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reverse.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_rh_hash.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_round.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_safe_circular_buffer.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_scalar_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_seq.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_size.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_skip.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_source.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_state.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_to_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_switch.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_take.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_time_order_recover.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_timezone.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tobytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_toindexdict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tooptional.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tostring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_udf.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_unwrap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_varitem.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_visitall.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_way.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_weakmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_while.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_withcontext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_zip.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.linux-aarch64.txt index 33e04096ee46..87c5da0f3716 100644 --- a/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.linux-aarch64.txt @@ -6,18 +6,30 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) -add_library(minikql-comp_nodes-llvm) +add_library(minikql-comp_nodes-llvm STATIC) +set_property(TARGET minikql-comp_nodes-llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-comp_nodes-llvm PRIVATE -mprfchw -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(minikql-comp_nodes-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-comp_nodes-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes ) target_link_libraries(minikql-comp_nodes-llvm PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - yql-minikql-codegen + minikql-codegen-llvm minikql-invoke_builtins-llvm llvm12-lib-IR lib-ExecutionEngine-MCJIT @@ -33,130 +45,32 @@ target_link_libraries(minikql-comp_nodes-llvm PUBLIC parser-pg_wrapper-interface library-yql-utils library-actors-core + public-issue-protos ) target_sources(minikql-comp_nodes-llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_addmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_aggrcount.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_append.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_count.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_minmax.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_some.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_sum.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_just.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_compress.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_func.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_skiptake.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_top.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_tuple.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_blocks.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_callable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain1_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_check_args.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_collect.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_contains.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_dictitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_discard.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_element.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ensure.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_enumerate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_exists.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_extend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flatmap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flow.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_frombytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromstring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromyson.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_group.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join_imp.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_guess.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hasitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_heap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_invoke.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterator.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join_dict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lazy_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_length.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_listfromrange.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lookup.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_mapnext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_match_recognize.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multimap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_next_value.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_nop.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_now.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_null.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_pickle.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_prepend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_queue.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_random.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_range.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reduce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_removemember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_replicate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reverse.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_rh_hash.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_round.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_safe_circular_buffer.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_scalar_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_seq.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_size.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_skip.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_source.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_state.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_to_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_switch.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_take.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_time_order_recover.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_timezone.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tobytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_toindexdict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tooptional.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tostring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_udf.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_unwrap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_varitem.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_visitall.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_way.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_weakmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_while.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_withcontext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_zip.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.linux-x86_64.txt index 33e04096ee46..87c5da0f3716 100644 --- a/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.linux-x86_64.txt @@ -6,18 +6,30 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) -add_library(minikql-comp_nodes-llvm) +add_library(minikql-comp_nodes-llvm STATIC) +set_property(TARGET minikql-comp_nodes-llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-comp_nodes-llvm PRIVATE -mprfchw -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(minikql-comp_nodes-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-comp_nodes-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes ) target_link_libraries(minikql-comp_nodes-llvm PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - yql-minikql-codegen + minikql-codegen-llvm minikql-invoke_builtins-llvm llvm12-lib-IR lib-ExecutionEngine-MCJIT @@ -33,130 +45,32 @@ target_link_libraries(minikql-comp_nodes-llvm PUBLIC parser-pg_wrapper-interface library-yql-utils library-actors-core + public-issue-protos ) target_sources(minikql-comp_nodes-llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_addmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_aggrcount.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_append.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_count.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_minmax.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_some.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_sum.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_just.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_compress.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_func.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_skiptake.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_top.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_tuple.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_blocks.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_callable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain1_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_check_args.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_collect.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_contains.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_dictitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_discard.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_element.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ensure.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_enumerate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_exists.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_extend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flatmap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flow.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_frombytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromstring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromyson.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_group.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join_imp.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_guess.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hasitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_heap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_invoke.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterator.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join_dict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lazy_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_length.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_listfromrange.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lookup.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_mapnext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_match_recognize.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multimap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_next_value.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_nop.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_now.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_null.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_pickle.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_prepend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_queue.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_random.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_range.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reduce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_removemember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_replicate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reverse.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_rh_hash.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_round.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_safe_circular_buffer.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_scalar_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_seq.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_size.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_skip.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_source.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_state.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_to_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_switch.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_take.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_time_order_recover.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_timezone.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tobytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_toindexdict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tooptional.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tostring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_udf.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_unwrap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_varitem.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_visitall.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_way.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_weakmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_while.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_withcontext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_zip.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.windows-x86_64.txt index 6a486585d431..72a31e460303 100644 --- a/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/comp_nodes/llvm/CMakeLists.windows-x86_64.txt @@ -6,17 +6,29 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) -add_library(minikql-comp_nodes-llvm) +add_library(minikql-comp_nodes-llvm STATIC) +set_property(TARGET minikql-comp_nodes-llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-comp_nodes-llvm PRIVATE -mprfchw -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(minikql-comp_nodes-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-comp_nodes-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes ) target_link_libraries(minikql-comp_nodes-llvm PUBLIC contrib-libs-cxxsupp yutil - yql-minikql-codegen + minikql-codegen-llvm minikql-invoke_builtins-llvm llvm12-lib-IR lib-ExecutionEngine-MCJIT @@ -32,130 +44,32 @@ target_link_libraries(minikql-comp_nodes-llvm PUBLIC parser-pg_wrapper-interface library-yql-utils library-actors-core + public-issue-protos ) target_sources(minikql-comp_nodes-llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_addmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_aggrcount.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_append.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_count.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_minmax.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_some.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_sum.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_just.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_compress.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_func.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_skiptake.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_top.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_tuple.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_blocks.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_callable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain1_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_check_args.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_collect.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_contains.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_dictitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_discard.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_element.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ensure.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_enumerate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_exists.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_extend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flatmap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flow.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_frombytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromstring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromyson.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_group.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join_imp.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_guess.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hasitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_heap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_invoke.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterator.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join_dict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lazy_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_length.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_listfromrange.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lookup.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_mapnext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_match_recognize.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multimap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_next_value.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_nop.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_now.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_null.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_pickle.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_prepend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_queue.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_random.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_range.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reduce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_removemember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_replicate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reverse.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_rh_hash.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_round.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_safe_circular_buffer.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_scalar_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_seq.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_size.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_skip.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_source.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_state.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_to_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_switch.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_take.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_time_order_recover.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_timezone.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tobytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_toindexdict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tooptional.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tostring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_udf.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_unwrap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_varitem.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_visitall.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_way.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_weakmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_while.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_withcontext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_zip.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..a7da3e7c1526 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.darwin-arm64.txt @@ -0,0 +1,114 @@ + +# 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-yql-minikql-comp_nodes-llvm-ut) +target_compile_options(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + -mprfchw + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut +) +target_link_libraries(ydb-library-yql-minikql-comp_nodes-llvm-ut PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + minikql-codegen-llvm + minikql-comp_nodes-llvm + minikql-invoke_builtins-llvm + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + public-udf-arrow + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +set_property( + TARGET + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + SPLIT_FACTOR + 60 +) +add_yunittest( + NAME + ydb-library-yql-minikql-comp_nodes-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-comp_nodes-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + TIMEOUT + 600 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +target_allocator(ydb-library-yql-minikql-comp_nodes-llvm-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-comp_nodes-llvm-ut) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..3ff64f241acb --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,115 @@ + +# 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-yql-minikql-comp_nodes-llvm-ut) +target_compile_options(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + -mprfchw + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut +) +target_link_libraries(ydb-library-yql-minikql-comp_nodes-llvm-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm + minikql-comp_nodes-llvm + minikql-invoke_builtins-llvm + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + public-udf-arrow + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +set_property( + TARGET + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + SPLIT_FACTOR + 60 +) +add_yunittest( + NAME + ydb-library-yql-minikql-comp_nodes-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-comp_nodes-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + TIMEOUT + 600 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +target_allocator(ydb-library-yql-minikql-comp_nodes-llvm-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-comp_nodes-llvm-ut) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..f029d14f4a39 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.linux-aarch64.txt @@ -0,0 +1,117 @@ + +# 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-yql-minikql-comp_nodes-llvm-ut) +target_compile_options(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + -mprfchw + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut +) +target_link_libraries(ydb-library-yql-minikql-comp_nodes-llvm-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + minikql-codegen-llvm + minikql-comp_nodes-llvm + minikql-invoke_builtins-llvm + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + public-udf-arrow + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +set_property( + TARGET + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + SPLIT_FACTOR + 60 +) +add_yunittest( + NAME + ydb-library-yql-minikql-comp_nodes-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-comp_nodes-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + TIMEOUT + 600 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +target_allocator(ydb-library-yql-minikql-comp_nodes-llvm-ut + cpp-malloc-jemalloc +) +vcs_info(ydb-library-yql-minikql-comp_nodes-llvm-ut) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..c5412ccbe060 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.linux-x86_64.txt @@ -0,0 +1,119 @@ + +# 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-yql-minikql-comp_nodes-llvm-ut) +target_compile_options(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + -mprfchw + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut +) +target_link_libraries(ydb-library-yql-minikql-comp_nodes-llvm-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm + minikql-comp_nodes-llvm + minikql-invoke_builtins-llvm + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + public-udf-arrow + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +set_property( + TARGET + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + SPLIT_FACTOR + 60 +) +add_yunittest( + NAME + ydb-library-yql-minikql-comp_nodes-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-comp_nodes-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + TIMEOUT + 600 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +target_allocator(ydb-library-yql-minikql-comp_nodes-llvm-ut + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-library-yql-minikql-comp_nodes-llvm-ut) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.txt b/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..7301dcccefe8 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm/ut/CMakeLists.windows-x86_64.txt @@ -0,0 +1,110 @@ + +# 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-yql-minikql-comp_nodes-llvm-ut) +target_compile_options(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + -mprfchw + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut +) +target_link_libraries(ydb-library-yql-minikql-comp_nodes-llvm-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm + minikql-comp_nodes-llvm + minikql-invoke_builtins-llvm + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + public-udf-arrow + udf-service-exception_policy + yql-sql-pg_dummy +) +target_sources(ydb-library-yql-minikql-comp_nodes-llvm-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +set_property( + TARGET + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + SPLIT_FACTOR + 60 +) +add_yunittest( + NAME + ydb-library-yql-minikql-comp_nodes-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-comp_nodes-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm-ut + PROPERTY + TIMEOUT + 600 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +target_allocator(ydb-library-yql-minikql-comp_nodes-llvm-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-comp_nodes-llvm-ut) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..8e76ec9b50c9 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.darwin-arm64.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_subdirectory(ut) + +add_library(minikql-comp_nodes-llvm14 STATIC) +set_property(TARGET minikql-comp_nodes-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(minikql-comp_nodes-llvm14 PRIVATE + -mprfchw + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(minikql-comp_nodes-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes +) +target_link_libraries(minikql-comp_nodes-llvm14 PUBLIC + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + minikql-invoke_builtins-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + ydb-library-binary_json + library-yql-minikql + yql-minikql-arrow + public-udf-arrow + parser-pg_wrapper-interface + library-yql-utils + library-actors-core + public-issue-protos +) +target_sources(minikql-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..8e76ec9b50c9 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm14/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_subdirectory(ut) + +add_library(minikql-comp_nodes-llvm14 STATIC) +set_property(TARGET minikql-comp_nodes-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(minikql-comp_nodes-llvm14 PRIVATE + -mprfchw + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(minikql-comp_nodes-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes +) +target_link_libraries(minikql-comp_nodes-llvm14 PUBLIC + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + minikql-invoke_builtins-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + ydb-library-binary_json + library-yql-minikql + yql-minikql-arrow + public-udf-arrow + parser-pg_wrapper-interface + library-yql-utils + library-actors-core + public-issue-protos +) +target_sources(minikql-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..abff2108199d --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.linux-aarch64.txt @@ -0,0 +1,76 @@ + +# 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(minikql-comp_nodes-llvm14 STATIC) +set_property(TARGET minikql-comp_nodes-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(minikql-comp_nodes-llvm14 PRIVATE + -mprfchw + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(minikql-comp_nodes-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes +) +target_link_libraries(minikql-comp_nodes-llvm14 PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + minikql-invoke_builtins-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + ydb-library-binary_json + library-yql-minikql + yql-minikql-arrow + public-udf-arrow + parser-pg_wrapper-interface + library-yql-utils + library-actors-core + public-issue-protos +) +target_sources(minikql-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..abff2108199d --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.linux-x86_64.txt @@ -0,0 +1,76 @@ + +# 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(minikql-comp_nodes-llvm14 STATIC) +set_property(TARGET minikql-comp_nodes-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(minikql-comp_nodes-llvm14 PRIVATE + -mprfchw + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(minikql-comp_nodes-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes +) +target_link_libraries(minikql-comp_nodes-llvm14 PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + minikql-invoke_builtins-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + ydb-library-binary_json + library-yql-minikql + yql-minikql-arrow + public-udf-arrow + parser-pg_wrapper-interface + library-yql-utils + library-actors-core + public-issue-protos +) +target_sources(minikql-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.txt b/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..8e76ec9b50c9 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm14/CMakeLists.windows-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_subdirectory(ut) + +add_library(minikql-comp_nodes-llvm14 STATIC) +set_property(TARGET minikql-comp_nodes-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(minikql-comp_nodes-llvm14 PRIVATE + -mprfchw + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(minikql-comp_nodes-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes +) +target_link_libraries(minikql-comp_nodes-llvm14 PUBLIC + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + minikql-invoke_builtins-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + ydb-library-binary_json + library-yql-minikql + yql-minikql-arrow + public-udf-arrow + parser-pg_wrapper-interface + library-yql-utils + library-actors-core + public-issue-protos +) +target_sources(minikql-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..0691284ee0a3 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.darwin-arm64.txt @@ -0,0 +1,114 @@ + +# 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-yql-minikql-comp_nodes-llvm14-ut) +target_compile_options(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + -mprfchw + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut +) +target_link_libraries(ydb-library-yql-minikql-comp_nodes-llvm14-ut PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + minikql-codegen-llvm14 + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + public-udf-arrow + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +set_property( + TARGET + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + SPLIT_FACTOR + 60 +) +add_yunittest( + NAME + ydb-library-yql-minikql-comp_nodes-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-comp_nodes-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + TIMEOUT + 600 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +target_allocator(ydb-library-yql-minikql-comp_nodes-llvm14-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-comp_nodes-llvm14-ut) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..db2b71f81d3b --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,115 @@ + +# 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-yql-minikql-comp_nodes-llvm14-ut) +target_compile_options(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + -mprfchw + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut +) +target_link_libraries(ydb-library-yql-minikql-comp_nodes-llvm14-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm14 + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + public-udf-arrow + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +set_property( + TARGET + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + SPLIT_FACTOR + 60 +) +add_yunittest( + NAME + ydb-library-yql-minikql-comp_nodes-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-comp_nodes-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + TIMEOUT + 600 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +target_allocator(ydb-library-yql-minikql-comp_nodes-llvm14-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-comp_nodes-llvm14-ut) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..1d109229c787 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.linux-aarch64.txt @@ -0,0 +1,117 @@ + +# 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-yql-minikql-comp_nodes-llvm14-ut) +target_compile_options(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + -mprfchw + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut +) +target_link_libraries(ydb-library-yql-minikql-comp_nodes-llvm14-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + minikql-codegen-llvm14 + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + public-udf-arrow + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +set_property( + TARGET + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + SPLIT_FACTOR + 60 +) +add_yunittest( + NAME + ydb-library-yql-minikql-comp_nodes-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-comp_nodes-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + TIMEOUT + 600 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +target_allocator(ydb-library-yql-minikql-comp_nodes-llvm14-ut + cpp-malloc-jemalloc +) +vcs_info(ydb-library-yql-minikql-comp_nodes-llvm14-ut) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..5f03ad797e34 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.linux-x86_64.txt @@ -0,0 +1,119 @@ + +# 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-yql-minikql-comp_nodes-llvm14-ut) +target_compile_options(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + -mprfchw + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut +) +target_link_libraries(ydb-library-yql-minikql-comp_nodes-llvm14-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm14 + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + public-udf-arrow + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +set_property( + TARGET + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + SPLIT_FACTOR + 60 +) +add_yunittest( + NAME + ydb-library-yql-minikql-comp_nodes-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-comp_nodes-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + TIMEOUT + 600 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +target_allocator(ydb-library-yql-minikql-comp_nodes-llvm14-ut + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-library-yql-minikql-comp_nodes-llvm14-ut) diff --git a/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.txt b/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..0d518c52d0cd --- /dev/null +++ b/ydb/library/yql/minikql/comp_nodes/llvm14/ut/CMakeLists.windows-x86_64.txt @@ -0,0 +1,110 @@ + +# 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-yql-minikql-comp_nodes-llvm14-ut) +target_compile_options(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + -mprfchw + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/ut +) +target_link_libraries(ydb-library-yql-minikql-comp_nodes-llvm14-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm14 + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + public-udf-arrow + udf-service-exception_policy + yql-sql-pg_dummy +) +target_sources(ydb-library-yql-minikql-comp_nodes-llvm14-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +set_property( + TARGET + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + SPLIT_FACTOR + 60 +) +add_yunittest( + NAME + ydb-library-yql-minikql-comp_nodes-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-comp_nodes-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-comp_nodes-llvm14-ut + PROPERTY + TIMEOUT + 600 +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/llvm14/ut/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +target_allocator(ydb-library-yql-minikql-comp_nodes-llvm14-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-comp_nodes-llvm14-ut) diff --git a/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.darwin-arm64.txt index f8f0fbbc1e57..d4e7ad812c30 100644 --- a/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.darwin-arm64.txt @@ -7,7 +7,10 @@ -add_library(minikql-comp_nodes-no_llvm) +add_library(minikql-comp_nodes-no_llvm STATIC) +set_property(TARGET minikql-comp_nodes-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-comp_nodes-no_llvm PRIVATE -mprfchw -DMKQL_DISABLE_CODEGEN @@ -15,6 +18,13 @@ target_compile_options(minikql-comp_nodes-no_llvm PRIVATE ) target_include_directories(minikql-comp_nodes-no_llvm PUBLIC ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-comp_nodes-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes ) target_link_libraries(minikql-comp_nodes-no_llvm PUBLIC contrib-libs-cxxsupp @@ -27,131 +37,33 @@ target_link_libraries(minikql-comp_nodes-no_llvm PUBLIC parser-pg_wrapper-interface library-yql-utils library-actors-core + public-issue-protos minikql-invoke_builtins-no_llvm ) target_sources(minikql-comp_nodes-no_llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_addmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_aggrcount.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_append.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_count.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_minmax.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_some.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_sum.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_just.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_compress.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_func.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_skiptake.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_top.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_tuple.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_blocks.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_callable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain1_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_check_args.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_collect.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_contains.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_dictitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_discard.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_element.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ensure.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_enumerate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_exists.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_extend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flatmap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flow.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_frombytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromstring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromyson.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_group.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join_imp.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_guess.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hasitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_heap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_invoke.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterator.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join_dict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lazy_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_length.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_listfromrange.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lookup.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_mapnext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_match_recognize.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multimap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_next_value.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_nop.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_now.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_null.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_pickle.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_prepend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_queue.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_random.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_range.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reduce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_removemember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_replicate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reverse.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_rh_hash.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_round.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_safe_circular_buffer.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_scalar_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_seq.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_size.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_skip.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_source.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_state.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_to_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_switch.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_take.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_time_order_recover.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_timezone.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tobytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_toindexdict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tooptional.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tostring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_udf.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_unwrap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_varitem.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_visitall.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_way.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_weakmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_while.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_withcontext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_zip.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.darwin-x86_64.txt index f8f0fbbc1e57..d4e7ad812c30 100644 --- a/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.darwin-x86_64.txt @@ -7,7 +7,10 @@ -add_library(minikql-comp_nodes-no_llvm) +add_library(minikql-comp_nodes-no_llvm STATIC) +set_property(TARGET minikql-comp_nodes-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-comp_nodes-no_llvm PRIVATE -mprfchw -DMKQL_DISABLE_CODEGEN @@ -15,6 +18,13 @@ target_compile_options(minikql-comp_nodes-no_llvm PRIVATE ) target_include_directories(minikql-comp_nodes-no_llvm PUBLIC ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-comp_nodes-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes ) target_link_libraries(minikql-comp_nodes-no_llvm PUBLIC contrib-libs-cxxsupp @@ -27,131 +37,33 @@ target_link_libraries(minikql-comp_nodes-no_llvm PUBLIC parser-pg_wrapper-interface library-yql-utils library-actors-core + public-issue-protos minikql-invoke_builtins-no_llvm ) target_sources(minikql-comp_nodes-no_llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_addmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_aggrcount.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_append.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_count.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_minmax.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_some.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_sum.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_just.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_compress.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_func.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_skiptake.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_top.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_tuple.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_blocks.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_callable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain1_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_check_args.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_collect.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_contains.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_dictitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_discard.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_element.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ensure.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_enumerate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_exists.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_extend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flatmap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flow.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_frombytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromstring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromyson.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_group.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join_imp.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_guess.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hasitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_heap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_invoke.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterator.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join_dict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lazy_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_length.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_listfromrange.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lookup.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_mapnext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_match_recognize.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multimap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_next_value.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_nop.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_now.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_null.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_pickle.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_prepend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_queue.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_random.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_range.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reduce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_removemember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_replicate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reverse.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_rh_hash.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_round.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_safe_circular_buffer.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_scalar_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_seq.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_size.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_skip.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_source.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_state.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_to_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_switch.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_take.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_time_order_recover.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_timezone.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tobytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_toindexdict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tooptional.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tostring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_udf.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_unwrap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_varitem.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_visitall.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_way.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_weakmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_while.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_withcontext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_zip.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.linux-aarch64.txt index 3064042982b3..4d9ca7300298 100644 --- a/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.linux-aarch64.txt @@ -7,7 +7,10 @@ -add_library(minikql-comp_nodes-no_llvm) +add_library(minikql-comp_nodes-no_llvm STATIC) +set_property(TARGET minikql-comp_nodes-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-comp_nodes-no_llvm PRIVATE -mprfchw -DMKQL_DISABLE_CODEGEN @@ -15,6 +18,13 @@ target_compile_options(minikql-comp_nodes-no_llvm PRIVATE ) target_include_directories(minikql-comp_nodes-no_llvm PUBLIC ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-comp_nodes-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes ) target_link_libraries(minikql-comp_nodes-no_llvm PUBLIC contrib-libs-linux-headers @@ -28,131 +38,33 @@ target_link_libraries(minikql-comp_nodes-no_llvm PUBLIC parser-pg_wrapper-interface library-yql-utils library-actors-core + public-issue-protos minikql-invoke_builtins-no_llvm ) target_sources(minikql-comp_nodes-no_llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_addmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_aggrcount.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_append.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_count.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_minmax.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_some.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_sum.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_just.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_compress.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_func.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_skiptake.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_top.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_tuple.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_blocks.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_callable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain1_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_check_args.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_collect.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_contains.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_dictitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_discard.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_element.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ensure.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_enumerate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_exists.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_extend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flatmap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flow.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_frombytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromstring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromyson.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_group.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join_imp.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_guess.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hasitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_heap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_invoke.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterator.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join_dict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lazy_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_length.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_listfromrange.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lookup.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_mapnext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_match_recognize.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multimap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_next_value.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_nop.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_now.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_null.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_pickle.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_prepend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_queue.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_random.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_range.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reduce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_removemember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_replicate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reverse.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_rh_hash.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_round.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_safe_circular_buffer.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_scalar_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_seq.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_size.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_skip.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_source.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_state.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_to_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_switch.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_take.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_time_order_recover.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_timezone.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tobytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_toindexdict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tooptional.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tostring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_udf.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_unwrap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_varitem.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_visitall.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_way.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_weakmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_while.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_withcontext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_zip.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.linux-x86_64.txt index 3064042982b3..4d9ca7300298 100644 --- a/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.linux-x86_64.txt @@ -7,7 +7,10 @@ -add_library(minikql-comp_nodes-no_llvm) +add_library(minikql-comp_nodes-no_llvm STATIC) +set_property(TARGET minikql-comp_nodes-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-comp_nodes-no_llvm PRIVATE -mprfchw -DMKQL_DISABLE_CODEGEN @@ -15,6 +18,13 @@ target_compile_options(minikql-comp_nodes-no_llvm PRIVATE ) target_include_directories(minikql-comp_nodes-no_llvm PUBLIC ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-comp_nodes-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes ) target_link_libraries(minikql-comp_nodes-no_llvm PUBLIC contrib-libs-linux-headers @@ -28,131 +38,33 @@ target_link_libraries(minikql-comp_nodes-no_llvm PUBLIC parser-pg_wrapper-interface library-yql-utils library-actors-core + public-issue-protos minikql-invoke_builtins-no_llvm ) target_sources(minikql-comp_nodes-no_llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_addmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_aggrcount.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_append.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_count.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_minmax.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_some.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_sum.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_just.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_compress.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_func.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_skiptake.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_top.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_tuple.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_blocks.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_callable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain1_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_check_args.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_collect.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_contains.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_dictitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_discard.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_element.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ensure.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_enumerate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_exists.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_extend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flatmap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flow.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_frombytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromstring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromyson.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_group.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join_imp.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_guess.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hasitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_heap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_invoke.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterator.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join_dict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lazy_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_length.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_listfromrange.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lookup.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_mapnext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_match_recognize.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multimap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_next_value.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_nop.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_now.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_null.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_pickle.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_prepend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_queue.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_random.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_range.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reduce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_removemember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_replicate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reverse.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_rh_hash.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_round.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_safe_circular_buffer.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_scalar_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_seq.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_size.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_skip.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_source.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_state.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_to_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_switch.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_take.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_time_order_recover.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_timezone.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tobytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_toindexdict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tooptional.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tostring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_udf.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_unwrap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_varitem.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_visitall.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_way.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_weakmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_while.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_withcontext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_zip.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.windows-x86_64.txt index f8f0fbbc1e57..d4e7ad812c30 100644 --- a/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/comp_nodes/no_llvm/CMakeLists.windows-x86_64.txt @@ -7,7 +7,10 @@ -add_library(minikql-comp_nodes-no_llvm) +add_library(minikql-comp_nodes-no_llvm STATIC) +set_property(TARGET minikql-comp_nodes-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-comp_nodes-no_llvm PRIVATE -mprfchw -DMKQL_DISABLE_CODEGEN @@ -15,6 +18,13 @@ target_compile_options(minikql-comp_nodes-no_llvm PRIVATE ) target_include_directories(minikql-comp_nodes-no_llvm PUBLIC ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-comp_nodes-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes ) target_link_libraries(minikql-comp_nodes-no_llvm PUBLIC contrib-libs-cxxsupp @@ -27,131 +37,33 @@ target_link_libraries(minikql-comp_nodes-no_llvm PUBLIC parser-pg_wrapper-interface library-yql-utils library-actors-core + public-issue-protos minikql-invoke_builtins-no_llvm ) target_sources(minikql-comp_nodes-no_llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_addmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_aggrcount.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_append.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_count.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_minmax.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_some.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_agg_sum.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_just.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_compress.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_func.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_skiptake.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_top.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_block_tuple.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_blocks.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_callable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chain1_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_check_args.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_coalesce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_collect.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_contains.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_decimal_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_dictitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_discard.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_element.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ensure.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_enumerate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_exists.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_extend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_factory.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flatmap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_flow.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fold1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_frombytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromstring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_fromyson.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_group.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_grace_join_imp.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_guess.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hasitems.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_heap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_hopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_if.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_ifpresent.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_invoke.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterable.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_iterator.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_join_dict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lazy_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_length.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_listfromrange.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_logical.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_lookup.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_mapnext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_map_join.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_match_recognize.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multihopping.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_multimap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_next_value.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_nop.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_now.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_null.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_pickle.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_prepend.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_queue.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_random.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_range.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reduce.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_removemember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_replicate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_reverse.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_rh_hash.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_round.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_safe_circular_buffer.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_scalar_apply.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_seq.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_size.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_skip.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_source.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_state.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_squeeze_to_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_condense1.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_switch.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_take.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_time_order_recover.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_timezone.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tobytes.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_todict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_toindexdict.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tooptional.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_tostring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_udf.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_unwrap.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_varitem.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_visitall.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_way.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_weakmember.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_while.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chain_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_chopper.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_combine.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_condense.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_filter.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_map.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_wide_top_sort.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_withcontext.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/comp_nodes/mkql_zip.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/comp_nodes/ut/mkql_blocks_ut.cpp b/ydb/library/yql/minikql/comp_nodes/ut/mkql_blocks_ut.cpp index ca4bb2e546c5..61e5dc0e7957 100644 --- a/ydb/library/yql/minikql/comp_nodes/ut/mkql_blocks_ut.cpp +++ b/ydb/library/yql/minikql/comp_nodes/ut/mkql_blocks_ut.cpp @@ -1,6 +1,7 @@ #include "mkql_computation_node_ut.h" #include <ydb/library/yql/minikql/computation/mkql_computation_node_holders.h> +#include <ydb/library/yql/minikql/mkql_runtime_version.h> #include <arrow/compute/exec_internal.h> #include <arrow/array/builder_primitive.h> @@ -264,6 +265,10 @@ Y_UNIT_TEST(TestScalar) { } Y_UNIT_TEST_LLVM(TestReplicateScalar) { + if (RuntimeVersion < 43u) { + return; + } + const ui64 count = 1000; const ui32 value = 42; diff --git a/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_combine_ut.cpp b/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_combine_ut.cpp index 1984d7bde28e..884defdf971e 100644 --- a/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_combine_ut.cpp +++ b/ydb/library/yql/minikql/comp_nodes/ut/mkql_wide_combine_ut.cpp @@ -122,6 +122,10 @@ TRuntimeNode Combine(TProgramBuilder& pb, TRuntimeNode stream, std::function<TRu #if !defined(MKQL_RUNTIME_VERSION) || MKQL_RUNTIME_VERSION >= 18u Y_UNIT_TEST_SUITE(TMiniKQLWideCombinerTest) { Y_UNIT_TEST_LLVM(TestLongStringsRefCounting) { + if (RuntimeVersion < 46u) { + return; + } + TSetup<LLVM> setup; TProgramBuilder& pb = *setup.PgmBuilder; @@ -199,6 +203,10 @@ Y_UNIT_TEST_SUITE(TMiniKQLWideCombinerTest) { } Y_UNIT_TEST_LLVM(TestLongStringsPasstroughtRefCounting) { + if (RuntimeVersion < 46u) { + return; + } + TSetup<LLVM> setup; TProgramBuilder& pb = *setup.PgmBuilder; @@ -274,6 +282,10 @@ Y_UNIT_TEST_SUITE(TMiniKQLWideCombinerTest) { } Y_UNIT_TEST_LLVM(TestDoNotCalculateUnusedInput) { + if (RuntimeVersion < 46u) { + return; + } + TSetup<LLVM> setup; TProgramBuilder& pb = *setup.PgmBuilder; @@ -427,8 +439,12 @@ Y_UNIT_TEST_SUITE(TMiniKQLWideCombinerTest) { UNIT_ASSERT(!iterator.Next(item)); UNIT_ASSERT(!iterator.Next(item)); } -#if !defined(MKQL_RUNTIME_VERSION) || MKQL_RUNTIME_VERSION >= 46u + Y_UNIT_TEST_LLVM(TestHasLimitButPasstroughtYields) { + if (RuntimeVersion < 46u) { + return; + } + TSetup<LLVM> setup(GetNodeFactory()); TProgramBuilder& pb = *setup.PgmBuilder; @@ -458,7 +474,6 @@ Y_UNIT_TEST_SUITE(TMiniKQLWideCombinerTest) { UNIT_ASSERT_EQUAL(streamVal.Fetch(result), NUdf::EFetchStatus::Finish); UNIT_ASSERT_EQUAL(streamVal.Fetch(result), NUdf::EFetchStatus::Finish); } -#endif } Y_UNIT_TEST_SUITE(TMiniKQLWideCombinerPerfTest) { diff --git a/ydb/library/yql/minikql/computation/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/computation/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..8e29fab24ddc --- /dev/null +++ b/ydb/library/yql/minikql/computation/CMakeLists.darwin-arm64.txt @@ -0,0 +1,41 @@ + +# 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(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) + +add_library(yql-minikql-computation) +target_compile_options(yql-minikql-computation PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(yql-minikql-computation PUBLIC + contrib-libs-cxxsupp + yutil + libs-apache-arrow + yql-public-types + parser-pg_wrapper-interface + yql-public-udf + yql-minikql-arrow +) +target_sources(yql-minikql-computation PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp +) diff --git a/ydb/library/yql/minikql/computation/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/computation/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..8e29fab24ddc --- /dev/null +++ b/ydb/library/yql/minikql/computation/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,41 @@ + +# 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(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) + +add_library(yql-minikql-computation) +target_compile_options(yql-minikql-computation PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(yql-minikql-computation PUBLIC + contrib-libs-cxxsupp + yutil + libs-apache-arrow + yql-public-types + parser-pg_wrapper-interface + yql-public-udf + yql-minikql-arrow +) +target_sources(yql-minikql-computation PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp +) diff --git a/ydb/library/yql/minikql/computation/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/computation/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..d81565f71139 --- /dev/null +++ b/ydb/library/yql/minikql/computation/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_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) + +add_library(yql-minikql-computation) +target_compile_options(yql-minikql-computation PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(yql-minikql-computation PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + libs-apache-arrow + yql-public-types + parser-pg_wrapper-interface + yql-public-udf + yql-minikql-arrow +) +target_sources(yql-minikql-computation PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp +) diff --git a/ydb/library/yql/minikql/computation/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/computation/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..d81565f71139 --- /dev/null +++ b/ydb/library/yql/minikql/computation/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_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) + +add_library(yql-minikql-computation) +target_compile_options(yql-minikql-computation PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(yql-minikql-computation PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + libs-apache-arrow + yql-public-types + parser-pg_wrapper-interface + yql-public-udf + yql-minikql-arrow +) +target_sources(yql-minikql-computation PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp +) diff --git a/ydb/library/yql/minikql/computation/CMakeLists.txt b/ydb/library/yql/minikql/computation/CMakeLists.txt index 4716de1ef37a..d863ebd18067 100644 --- a/ydb/library/yql/minikql/computation/CMakeLists.txt +++ b/ydb/library/yql/minikql/computation/CMakeLists.txt @@ -6,6 +6,14 @@ # original buildsystem will not be accepted. -add_subdirectory(llvm) -add_subdirectory(no_llvm) -add_subdirectory(ut) +if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/computation/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/computation/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..8e29fab24ddc --- /dev/null +++ b/ydb/library/yql/minikql/computation/CMakeLists.windows-x86_64.txt @@ -0,0 +1,41 @@ + +# 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(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) + +add_library(yql-minikql-computation) +target_compile_options(yql-minikql-computation PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(yql-minikql-computation PUBLIC + contrib-libs-cxxsupp + yutil + libs-apache-arrow + yql-public-types + parser-pg_wrapper-interface + yql-public-udf + yql-minikql-arrow +) +target_sources(yql-minikql-computation PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp +) diff --git a/ydb/library/yql/minikql/computation/llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/computation/llvm/CMakeLists.darwin-arm64.txt index 61856a13c457..188ae0b8b636 100644 --- a/ydb/library/yql/minikql/computation/llvm/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/computation/llvm/CMakeLists.darwin-arm64.txt @@ -6,16 +6,26 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) -add_library(minikql-computation-llvm) +add_library(minikql-computation-llvm STATIC) +set_property(TARGET minikql-computation-llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-computation-llvm PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(minikql-computation-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-computation-llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation ) target_link_libraries(minikql-computation-llvm PUBLIC contrib-libs-cxxsupp yutil - yql-minikql-codegen + minikql-codegen-llvm llvm12-lib-IR lib-ExecutionEngine-MCJIT llvm12-lib-Linker @@ -30,28 +40,16 @@ target_link_libraries(minikql-computation-llvm PUBLIC library-cpp-time_provider library-yql-minikql yql-minikql-arrow + yql-minikql-computation parser-pg_wrapper-interface yql-public-udf library-yql-utils cpp-threading-future ) target_sources(minikql-computation-llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_llvm_base.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h ) diff --git a/ydb/library/yql/minikql/computation/llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/computation/llvm/CMakeLists.darwin-x86_64.txt index 61856a13c457..188ae0b8b636 100644 --- a/ydb/library/yql/minikql/computation/llvm/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/computation/llvm/CMakeLists.darwin-x86_64.txt @@ -6,16 +6,26 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) -add_library(minikql-computation-llvm) +add_library(minikql-computation-llvm STATIC) +set_property(TARGET minikql-computation-llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-computation-llvm PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(minikql-computation-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-computation-llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation ) target_link_libraries(minikql-computation-llvm PUBLIC contrib-libs-cxxsupp yutil - yql-minikql-codegen + minikql-codegen-llvm llvm12-lib-IR lib-ExecutionEngine-MCJIT llvm12-lib-Linker @@ -30,28 +40,16 @@ target_link_libraries(minikql-computation-llvm PUBLIC library-cpp-time_provider library-yql-minikql yql-minikql-arrow + yql-minikql-computation parser-pg_wrapper-interface yql-public-udf library-yql-utils cpp-threading-future ) target_sources(minikql-computation-llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_llvm_base.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h ) diff --git a/ydb/library/yql/minikql/computation/llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/computation/llvm/CMakeLists.linux-aarch64.txt index 35d3e1a93f2a..eb90eb50d3e8 100644 --- a/ydb/library/yql/minikql/computation/llvm/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/computation/llvm/CMakeLists.linux-aarch64.txt @@ -6,17 +6,27 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) -add_library(minikql-computation-llvm) +add_library(minikql-computation-llvm STATIC) +set_property(TARGET minikql-computation-llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-computation-llvm PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(minikql-computation-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-computation-llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation ) target_link_libraries(minikql-computation-llvm PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - yql-minikql-codegen + minikql-codegen-llvm llvm12-lib-IR lib-ExecutionEngine-MCJIT llvm12-lib-Linker @@ -31,28 +41,16 @@ target_link_libraries(minikql-computation-llvm PUBLIC library-cpp-time_provider library-yql-minikql yql-minikql-arrow + yql-minikql-computation parser-pg_wrapper-interface yql-public-udf library-yql-utils cpp-threading-future ) target_sources(minikql-computation-llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_llvm_base.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h ) diff --git a/ydb/library/yql/minikql/computation/llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/computation/llvm/CMakeLists.linux-x86_64.txt index 35d3e1a93f2a..eb90eb50d3e8 100644 --- a/ydb/library/yql/minikql/computation/llvm/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/computation/llvm/CMakeLists.linux-x86_64.txt @@ -6,17 +6,27 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) -add_library(minikql-computation-llvm) +add_library(minikql-computation-llvm STATIC) +set_property(TARGET minikql-computation-llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-computation-llvm PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(minikql-computation-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-computation-llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation ) target_link_libraries(minikql-computation-llvm PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - yql-minikql-codegen + minikql-codegen-llvm llvm12-lib-IR lib-ExecutionEngine-MCJIT llvm12-lib-Linker @@ -31,28 +41,16 @@ target_link_libraries(minikql-computation-llvm PUBLIC library-cpp-time_provider library-yql-minikql yql-minikql-arrow + yql-minikql-computation parser-pg_wrapper-interface yql-public-udf library-yql-utils cpp-threading-future ) target_sources(minikql-computation-llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_llvm_base.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h ) diff --git a/ydb/library/yql/minikql/computation/llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/computation/llvm/CMakeLists.windows-x86_64.txt index 61856a13c457..188ae0b8b636 100644 --- a/ydb/library/yql/minikql/computation/llvm/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/computation/llvm/CMakeLists.windows-x86_64.txt @@ -6,16 +6,26 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) -add_library(minikql-computation-llvm) +add_library(minikql-computation-llvm STATIC) +set_property(TARGET minikql-computation-llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-computation-llvm PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(minikql-computation-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-computation-llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation ) target_link_libraries(minikql-computation-llvm PUBLIC contrib-libs-cxxsupp yutil - yql-minikql-codegen + minikql-codegen-llvm llvm12-lib-IR lib-ExecutionEngine-MCJIT llvm12-lib-Linker @@ -30,28 +40,16 @@ target_link_libraries(minikql-computation-llvm PUBLIC library-cpp-time_provider library-yql-minikql yql-minikql-arrow + yql-minikql-computation parser-pg_wrapper-interface yql-public-udf library-yql-utils cpp-threading-future ) target_sources(minikql-computation-llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_llvm_base.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h ) diff --git a/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..c4666963c996 --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.darwin-arm64.txt @@ -0,0 +1,92 @@ + +# 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-yql-minikql-computation-llvm-ut) +target_compile_options(ydb-library-yql-minikql-computation-llvm-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-minikql-computation-llvm-ut PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + minikql-codegen-llvm + minikql-computation-llvm + minikql-comp_nodes-llvm + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + cpp-threading-local_executor + yql-parser-pg_wrapper + udf-service-exception_policy + yql-dq-proto +) +target_link_options(ydb-library-yql-minikql-computation-llvm-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-computation-llvm-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_list_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_dict_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-computation-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-computation-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-computation-llvm-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-computation-llvm-ut) diff --git a/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..290f62618d3f --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,93 @@ + +# 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-yql-minikql-computation-llvm-ut) +target_compile_options(ydb-library-yql-minikql-computation-llvm-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-minikql-computation-llvm-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm + minikql-computation-llvm + minikql-comp_nodes-llvm + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + cpp-threading-local_executor + yql-parser-pg_wrapper + udf-service-exception_policy + yql-dq-proto +) +target_link_options(ydb-library-yql-minikql-computation-llvm-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-computation-llvm-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_list_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_dict_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-computation-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-computation-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-computation-llvm-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-computation-llvm-ut) diff --git a/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..38554e4098f4 --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.linux-aarch64.txt @@ -0,0 +1,95 @@ + +# 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-yql-minikql-computation-llvm-ut) +target_compile_options(ydb-library-yql-minikql-computation-llvm-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-minikql-computation-llvm-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + minikql-codegen-llvm + minikql-computation-llvm + minikql-comp_nodes-llvm + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + cpp-threading-local_executor + yql-parser-pg_wrapper + udf-service-exception_policy + yql-dq-proto +) +target_link_options(ydb-library-yql-minikql-computation-llvm-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-computation-llvm-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_list_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_dict_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-computation-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-computation-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-computation-llvm-ut + cpp-malloc-jemalloc +) +vcs_info(ydb-library-yql-minikql-computation-llvm-ut) diff --git a/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..ab5ce02b7eb7 --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.linux-x86_64.txt @@ -0,0 +1,97 @@ + +# 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-yql-minikql-computation-llvm-ut) +target_compile_options(ydb-library-yql-minikql-computation-llvm-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-minikql-computation-llvm-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm + minikql-computation-llvm + minikql-comp_nodes-llvm + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + cpp-threading-local_executor + yql-parser-pg_wrapper + udf-service-exception_policy + yql-dq-proto +) +target_link_options(ydb-library-yql-minikql-computation-llvm-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-computation-llvm-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_list_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_dict_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-computation-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-computation-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-computation-llvm-ut + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-library-yql-minikql-computation-llvm-ut) diff --git a/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.txt b/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..0fbe9897eeb4 --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm/ut/CMakeLists.windows-x86_64.txt @@ -0,0 +1,88 @@ + +# 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-yql-minikql-computation-llvm-ut) +target_compile_options(ydb-library-yql-minikql-computation-llvm-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-minikql-computation-llvm-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm + minikql-computation-llvm + minikql-comp_nodes-llvm + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + cpp-threading-local_executor + yql-parser-pg_wrapper + udf-service-exception_policy + yql-dq-proto +) +target_sources(ydb-library-yql-minikql-computation-llvm-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_list_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_dict_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-computation-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-computation-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-computation-llvm-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-computation-llvm-ut) diff --git a/ydb/library/yql/minikql/computation/llvm14/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/computation/llvm14/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..e7ec6019b29b --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm14/CMakeLists.darwin-arm64.txt @@ -0,0 +1,55 @@ + +# 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(minikql-computation-llvm14 STATIC) +set_property(TARGET minikql-computation-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(minikql-computation-llvm14 PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(minikql-computation-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-computation-llvm14 PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation +) +target_link_libraries(minikql-computation-llvm14 PUBLIC + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + library-actors-util + library-cpp-enumbitset + library-cpp-packedtypes + library-cpp-random_provider + library-cpp-time_provider + library-yql-minikql + yql-minikql-arrow + yql-minikql-computation + parser-pg_wrapper-interface + yql-public-udf + library-yql-utils + cpp-threading-future +) +target_sources(minikql-computation-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) diff --git a/ydb/library/yql/minikql/computation/llvm14/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/computation/llvm14/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..e7ec6019b29b --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm14/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,55 @@ + +# 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(minikql-computation-llvm14 STATIC) +set_property(TARGET minikql-computation-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(minikql-computation-llvm14 PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(minikql-computation-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-computation-llvm14 PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation +) +target_link_libraries(minikql-computation-llvm14 PUBLIC + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + library-actors-util + library-cpp-enumbitset + library-cpp-packedtypes + library-cpp-random_provider + library-cpp-time_provider + library-yql-minikql + yql-minikql-arrow + yql-minikql-computation + parser-pg_wrapper-interface + yql-public-udf + library-yql-utils + cpp-threading-future +) +target_sources(minikql-computation-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) diff --git a/ydb/library/yql/minikql/computation/llvm14/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/computation/llvm14/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..1536df10b75a --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm14/CMakeLists.linux-aarch64.txt @@ -0,0 +1,56 @@ + +# 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(minikql-computation-llvm14 STATIC) +set_property(TARGET minikql-computation-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(minikql-computation-llvm14 PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(minikql-computation-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-computation-llvm14 PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation +) +target_link_libraries(minikql-computation-llvm14 PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + library-actors-util + library-cpp-enumbitset + library-cpp-packedtypes + library-cpp-random_provider + library-cpp-time_provider + library-yql-minikql + yql-minikql-arrow + yql-minikql-computation + parser-pg_wrapper-interface + yql-public-udf + library-yql-utils + cpp-threading-future +) +target_sources(minikql-computation-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) diff --git a/ydb/library/yql/minikql/computation/llvm14/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/computation/llvm14/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..1536df10b75a --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm14/CMakeLists.linux-x86_64.txt @@ -0,0 +1,56 @@ + +# 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(minikql-computation-llvm14 STATIC) +set_property(TARGET minikql-computation-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(minikql-computation-llvm14 PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(minikql-computation-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-computation-llvm14 PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation +) +target_link_libraries(minikql-computation-llvm14 PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + library-actors-util + library-cpp-enumbitset + library-cpp-packedtypes + library-cpp-random_provider + library-cpp-time_provider + library-yql-minikql + yql-minikql-arrow + yql-minikql-computation + parser-pg_wrapper-interface + yql-public-udf + library-yql-utils + cpp-threading-future +) +target_sources(minikql-computation-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) diff --git a/ydb/library/yql/minikql/computation/llvm14/CMakeLists.txt b/ydb/library/yql/minikql/computation/llvm14/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm14/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/computation/llvm14/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/computation/llvm14/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..e7ec6019b29b --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm14/CMakeLists.windows-x86_64.txt @@ -0,0 +1,55 @@ + +# 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(minikql-computation-llvm14 STATIC) +set_property(TARGET minikql-computation-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(minikql-computation-llvm14 PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(minikql-computation-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-computation-llvm14 PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation +) +target_link_libraries(minikql-computation-llvm14 PUBLIC + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + library-actors-util + library-cpp-enumbitset + library-cpp-packedtypes + library-cpp-random_provider + library-cpp-time_provider + library-yql-minikql + yql-minikql-arrow + yql-minikql-computation + parser-pg_wrapper-interface + yql-public-udf + library-yql-utils + cpp-threading-future +) +target_sources(minikql-computation-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) diff --git a/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..7b5290660bc8 --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.darwin-arm64.txt @@ -0,0 +1,92 @@ + +# 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-yql-minikql-computation-llvm14-ut) +target_compile_options(ydb-library-yql-minikql-computation-llvm14-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-minikql-computation-llvm14-ut PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + minikql-codegen-llvm14 + minikql-computation-llvm14 + minikql-comp_nodes-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + cpp-threading-local_executor + yql-parser-pg_wrapper + udf-service-exception_policy + yql-dq-proto +) +target_link_options(ydb-library-yql-minikql-computation-llvm14-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-computation-llvm14-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_list_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_dict_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-computation-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-computation-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-computation-llvm14-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-computation-llvm14-ut) diff --git a/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..d721312fa5f4 --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,93 @@ + +# 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-yql-minikql-computation-llvm14-ut) +target_compile_options(ydb-library-yql-minikql-computation-llvm14-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-minikql-computation-llvm14-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm14 + minikql-computation-llvm14 + minikql-comp_nodes-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + cpp-threading-local_executor + yql-parser-pg_wrapper + udf-service-exception_policy + yql-dq-proto +) +target_link_options(ydb-library-yql-minikql-computation-llvm14-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-computation-llvm14-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_list_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_dict_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-computation-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-computation-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-computation-llvm14-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-computation-llvm14-ut) diff --git a/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..ffb925a0d790 --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.linux-aarch64.txt @@ -0,0 +1,95 @@ + +# 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-yql-minikql-computation-llvm14-ut) +target_compile_options(ydb-library-yql-minikql-computation-llvm14-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-minikql-computation-llvm14-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + minikql-codegen-llvm14 + minikql-computation-llvm14 + minikql-comp_nodes-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + cpp-threading-local_executor + yql-parser-pg_wrapper + udf-service-exception_policy + yql-dq-proto +) +target_link_options(ydb-library-yql-minikql-computation-llvm14-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-computation-llvm14-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_list_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_dict_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-computation-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-computation-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-computation-llvm14-ut + cpp-malloc-jemalloc +) +vcs_info(ydb-library-yql-minikql-computation-llvm14-ut) diff --git a/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..13bb21ce3a04 --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.linux-x86_64.txt @@ -0,0 +1,97 @@ + +# 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-yql-minikql-computation-llvm14-ut) +target_compile_options(ydb-library-yql-minikql-computation-llvm14-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-minikql-computation-llvm14-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm14 + minikql-computation-llvm14 + minikql-comp_nodes-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + cpp-threading-local_executor + yql-parser-pg_wrapper + udf-service-exception_policy + yql-dq-proto +) +target_link_options(ydb-library-yql-minikql-computation-llvm14-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-minikql-computation-llvm14-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_list_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_dict_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-computation-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-computation-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-computation-llvm14-ut + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-library-yql-minikql-computation-llvm14-ut) diff --git a/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.txt b/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..96bb2bcc6a2a --- /dev/null +++ b/ydb/library/yql/minikql/computation/llvm14/ut/CMakeLists.windows-x86_64.txt @@ -0,0 +1,88 @@ + +# 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-yql-minikql-computation-llvm14-ut) +target_compile_options(ydb-library-yql-minikql-computation-llvm14-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-minikql-computation-llvm14-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm14 + minikql-computation-llvm14 + minikql-comp_nodes-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + libs-apache-arrow + cpp-threading-local_executor + yql-parser-pg_wrapper + udf-service-exception_policy + yql-dq-proto +) +target_sources(ydb-library-yql-minikql-computation-llvm14-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_list_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_dict_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder_ut.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort_ut.cpp +) +set_property( + TARGET + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-computation-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-computation-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-computation-llvm14-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-computation-llvm14-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-computation-llvm14-ut) diff --git a/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.darwin-arm64.txt index 1758ce1eba3e..2bcc37d366f8 100644 --- a/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.darwin-arm64.txt @@ -7,13 +7,21 @@ -add_library(minikql-computation-no_llvm) +add_library(minikql-computation-no_llvm STATIC) +set_property(TARGET minikql-computation-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-computation-no_llvm PRIVATE -DMKQL_DISABLE_CODEGEN -DUSE_CURRENT_UDF_ABI_VERSION ) target_include_directories(minikql-computation-no_llvm PUBLIC ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-computation-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation ) target_link_libraries(minikql-computation-no_llvm PUBLIC contrib-libs-cxxsupp @@ -26,28 +34,16 @@ target_link_libraries(minikql-computation-no_llvm PUBLIC library-cpp-time_provider library-yql-minikql yql-minikql-arrow + yql-minikql-computation parser-pg_wrapper-interface yql-public-udf library-yql-utils cpp-threading-future ) target_sources(minikql-computation-no_llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_llvm_base.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h ) diff --git a/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.darwin-x86_64.txt index 1758ce1eba3e..2bcc37d366f8 100644 --- a/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.darwin-x86_64.txt @@ -7,13 +7,21 @@ -add_library(minikql-computation-no_llvm) +add_library(minikql-computation-no_llvm STATIC) +set_property(TARGET minikql-computation-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-computation-no_llvm PRIVATE -DMKQL_DISABLE_CODEGEN -DUSE_CURRENT_UDF_ABI_VERSION ) target_include_directories(minikql-computation-no_llvm PUBLIC ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-computation-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation ) target_link_libraries(minikql-computation-no_llvm PUBLIC contrib-libs-cxxsupp @@ -26,28 +34,16 @@ target_link_libraries(minikql-computation-no_llvm PUBLIC library-cpp-time_provider library-yql-minikql yql-minikql-arrow + yql-minikql-computation parser-pg_wrapper-interface yql-public-udf library-yql-utils cpp-threading-future ) target_sources(minikql-computation-no_llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_llvm_base.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h ) diff --git a/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.linux-aarch64.txt index 36cd2a43c7e0..af6df73b4e40 100644 --- a/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.linux-aarch64.txt @@ -7,13 +7,21 @@ -add_library(minikql-computation-no_llvm) +add_library(minikql-computation-no_llvm STATIC) +set_property(TARGET minikql-computation-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-computation-no_llvm PRIVATE -DMKQL_DISABLE_CODEGEN -DUSE_CURRENT_UDF_ABI_VERSION ) target_include_directories(minikql-computation-no_llvm PUBLIC ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-computation-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation ) target_link_libraries(minikql-computation-no_llvm PUBLIC contrib-libs-linux-headers @@ -27,28 +35,16 @@ target_link_libraries(minikql-computation-no_llvm PUBLIC library-cpp-time_provider library-yql-minikql yql-minikql-arrow + yql-minikql-computation parser-pg_wrapper-interface yql-public-udf library-yql-utils cpp-threading-future ) target_sources(minikql-computation-no_llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_llvm_base.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h ) diff --git a/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.linux-x86_64.txt index 36cd2a43c7e0..af6df73b4e40 100644 --- a/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.linux-x86_64.txt @@ -7,13 +7,21 @@ -add_library(minikql-computation-no_llvm) +add_library(minikql-computation-no_llvm STATIC) +set_property(TARGET minikql-computation-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-computation-no_llvm PRIVATE -DMKQL_DISABLE_CODEGEN -DUSE_CURRENT_UDF_ABI_VERSION ) target_include_directories(minikql-computation-no_llvm PUBLIC ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-computation-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation ) target_link_libraries(minikql-computation-no_llvm PUBLIC contrib-libs-linux-headers @@ -27,28 +35,16 @@ target_link_libraries(minikql-computation-no_llvm PUBLIC library-cpp-time_provider library-yql-minikql yql-minikql-arrow + yql-minikql-computation parser-pg_wrapper-interface yql-public-udf library-yql-utils cpp-threading-future ) target_sources(minikql-computation-no_llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_llvm_base.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h ) diff --git a/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.windows-x86_64.txt index 1758ce1eba3e..2bcc37d366f8 100644 --- a/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/computation/no_llvm/CMakeLists.windows-x86_64.txt @@ -7,13 +7,21 @@ -add_library(minikql-computation-no_llvm) +add_library(minikql-computation-no_llvm STATIC) +set_property(TARGET minikql-computation-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-computation-no_llvm PRIVATE -DMKQL_DISABLE_CODEGEN -DUSE_CURRENT_UDF_ABI_VERSION ) target_include_directories(minikql-computation-no_llvm PUBLIC ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-computation-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation ) target_link_libraries(minikql-computation-no_llvm PUBLIC contrib-libs-cxxsupp @@ -26,28 +34,16 @@ target_link_libraries(minikql-computation-no_llvm PUBLIC library-cpp-time_provider library-yql-minikql yql-minikql-arrow + yql-minikql-computation parser-pg_wrapper-interface yql-public-udf library-yql-utils cpp-threading-future ) target_sources(minikql-computation-no_llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_reader.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_block_transport.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_graph_saveload.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_holders.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_pack_impl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_custom_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_llvm_base.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_validate.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_value_builder.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_pattern_cache.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/presort.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/computation/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h ) diff --git a/ydb/library/yql/minikql/datetime/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/datetime/CMakeLists.darwin-arm64.txt index 02f6f2595657..f34ab37d1e0a 100644 --- a/ydb/library/yql/minikql/datetime/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/datetime/CMakeLists.darwin-arm64.txt @@ -14,7 +14,7 @@ target_compile_options(yql-minikql-datetime PRIVATE target_link_libraries(yql-minikql-datetime PUBLIC contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation ) target_sources(yql-minikql-datetime PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/datetime/datetime.cpp diff --git a/ydb/library/yql/minikql/datetime/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/datetime/CMakeLists.darwin-x86_64.txt index 02f6f2595657..f34ab37d1e0a 100644 --- a/ydb/library/yql/minikql/datetime/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/datetime/CMakeLists.darwin-x86_64.txt @@ -14,7 +14,7 @@ target_compile_options(yql-minikql-datetime PRIVATE target_link_libraries(yql-minikql-datetime PUBLIC contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation ) target_sources(yql-minikql-datetime PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/datetime/datetime.cpp diff --git a/ydb/library/yql/minikql/datetime/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/datetime/CMakeLists.linux-aarch64.txt index a0b8d3ef22d3..f0f965f43639 100644 --- a/ydb/library/yql/minikql/datetime/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/datetime/CMakeLists.linux-aarch64.txt @@ -15,7 +15,7 @@ target_link_libraries(yql-minikql-datetime PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation ) target_sources(yql-minikql-datetime PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/datetime/datetime.cpp diff --git a/ydb/library/yql/minikql/datetime/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/datetime/CMakeLists.linux-x86_64.txt index a0b8d3ef22d3..f0f965f43639 100644 --- a/ydb/library/yql/minikql/datetime/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/datetime/CMakeLists.linux-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(yql-minikql-datetime PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation ) target_sources(yql-minikql-datetime PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/datetime/datetime.cpp diff --git a/ydb/library/yql/minikql/datetime/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/datetime/CMakeLists.windows-x86_64.txt index 02f6f2595657..f34ab37d1e0a 100644 --- a/ydb/library/yql/minikql/datetime/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/datetime/CMakeLists.windows-x86_64.txt @@ -14,7 +14,7 @@ target_compile_options(yql-minikql-datetime PRIVATE target_link_libraries(yql-minikql-datetime PUBLIC contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation ) target_sources(yql-minikql-datetime PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/datetime/datetime.cpp diff --git a/ydb/library/yql/minikql/dom/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/dom/ut/CMakeLists.darwin-arm64.txt index 9354d5a677af..d86d382c78a9 100644 --- a/ydb/library/yql/minikql/dom/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/dom/ut/CMakeLists.darwin-arm64.txt @@ -19,7 +19,7 @@ target_link_libraries(ydb-library-yql-minikql-dom-ut PUBLIC yutil cpp-testing-unittest_main yql-minikql-dom - minikql-computation-llvm + minikql-computation-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) @@ -27,8 +27,6 @@ target_link_options(ydb-library-yql-minikql-dom-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-minikql-dom-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/dom/ut/yson_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/dom/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/dom/ut/CMakeLists.darwin-x86_64.txt index 81df648f141d..d59e3dceeecd 100644 --- a/ydb/library/yql/minikql/dom/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/dom/ut/CMakeLists.darwin-x86_64.txt @@ -20,7 +20,7 @@ target_link_libraries(ydb-library-yql-minikql-dom-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main yql-minikql-dom - minikql-computation-llvm + minikql-computation-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) @@ -28,8 +28,6 @@ target_link_options(ydb-library-yql-minikql-dom-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-minikql-dom-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/dom/ut/yson_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/dom/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/dom/ut/CMakeLists.linux-aarch64.txt index 547435dce67f..c49460542215 100644 --- a/ydb/library/yql/minikql/dom/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/dom/ut/CMakeLists.linux-aarch64.txt @@ -20,7 +20,7 @@ target_link_libraries(ydb-library-yql-minikql-dom-ut PUBLIC yutil cpp-testing-unittest_main yql-minikql-dom - minikql-computation-llvm + minikql-computation-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) @@ -30,9 +30,6 @@ target_link_options(ydb-library-yql-minikql-dom-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-minikql-dom-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/dom/ut/yson_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/dom/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/dom/ut/CMakeLists.linux-x86_64.txt index bec27f0e7ebe..c1242ce21acc 100644 --- a/ydb/library/yql/minikql/dom/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/dom/ut/CMakeLists.linux-x86_64.txt @@ -21,7 +21,7 @@ target_link_libraries(ydb-library-yql-minikql-dom-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main yql-minikql-dom - minikql-computation-llvm + minikql-computation-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) @@ -31,9 +31,6 @@ target_link_options(ydb-library-yql-minikql-dom-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-minikql-dom-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/dom/ut/yson_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/invoke_builtins/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/invoke_builtins/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..eb7aee3e35f8 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/CMakeLists.darwin-arm64.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_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) + +add_library(yql-minikql-invoke_builtins INTERFACE) +target_link_libraries(yql-minikql-invoke_builtins INTERFACE + contrib-libs-cxxsupp + yutil +) diff --git a/ydb/library/yql/minikql/invoke_builtins/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..eb7aee3e35f8 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/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_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) + +add_library(yql-minikql-invoke_builtins INTERFACE) +target_link_libraries(yql-minikql-invoke_builtins INTERFACE + contrib-libs-cxxsupp + yutil +) diff --git a/ydb/library/yql/minikql/invoke_builtins/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/invoke_builtins/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..7b34147ab0ae --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/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_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) + +add_library(yql-minikql-invoke_builtins INTERFACE) +target_link_libraries(yql-minikql-invoke_builtins INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) diff --git a/ydb/library/yql/minikql/invoke_builtins/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..7b34147ab0ae --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/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_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) + +add_library(yql-minikql-invoke_builtins INTERFACE) +target_link_libraries(yql-minikql-invoke_builtins INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) diff --git a/ydb/library/yql/minikql/invoke_builtins/CMakeLists.txt b/ydb/library/yql/minikql/invoke_builtins/CMakeLists.txt index 4716de1ef37a..d863ebd18067 100644 --- a/ydb/library/yql/minikql/invoke_builtins/CMakeLists.txt +++ b/ydb/library/yql/minikql/invoke_builtins/CMakeLists.txt @@ -6,6 +6,14 @@ # original buildsystem will not be accepted. -add_subdirectory(llvm) -add_subdirectory(no_llvm) -add_subdirectory(ut) +if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/invoke_builtins/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..eb7aee3e35f8 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/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_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) + +add_library(yql-minikql-invoke_builtins INTERFACE) +target_link_libraries(yql-minikql-invoke_builtins INTERFACE + contrib-libs-cxxsupp + yutil +) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.darwin-arm64.txt index 751b74412234..5b36d0c8f9e4 100644 --- a/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.darwin-arm64.txt @@ -6,16 +6,27 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) -add_library(minikql-invoke_builtins-llvm) +add_library(minikql-invoke_builtins-llvm STATIC) +set_property(TARGET minikql-invoke_builtins-llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-invoke_builtins-llvm PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(minikql-invoke_builtins-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-invoke_builtins-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins ) target_link_libraries(minikql-invoke_builtins-llvm PUBLIC contrib-libs-cxxsupp yutil - yql-minikql-codegen + minikql-codegen-llvm minikql-computation-llvm llvm12-lib-IR lib-ExecutionEngine-MCJIT @@ -31,43 +42,29 @@ target_link_libraries(minikql-invoke_builtins-llvm PUBLIC libs-apache-arrow ) target_sources(minikql-invoke_builtins-llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_abs.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_add.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitand.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitnot.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitxor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_byteat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_concat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_countbits.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_dec.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_find.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_inc.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_invprestr.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_max.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_min.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_minus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_nanvl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_plus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_string_kernels.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_sub.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_substring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_with.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_not_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less_or_equal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater_or_equal.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.darwin-x86_64.txt index 751b74412234..5b36d0c8f9e4 100644 --- a/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.darwin-x86_64.txt @@ -6,16 +6,27 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) -add_library(minikql-invoke_builtins-llvm) +add_library(minikql-invoke_builtins-llvm STATIC) +set_property(TARGET minikql-invoke_builtins-llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-invoke_builtins-llvm PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(minikql-invoke_builtins-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-invoke_builtins-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins ) target_link_libraries(minikql-invoke_builtins-llvm PUBLIC contrib-libs-cxxsupp yutil - yql-minikql-codegen + minikql-codegen-llvm minikql-computation-llvm llvm12-lib-IR lib-ExecutionEngine-MCJIT @@ -31,43 +42,29 @@ target_link_libraries(minikql-invoke_builtins-llvm PUBLIC libs-apache-arrow ) target_sources(minikql-invoke_builtins-llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_abs.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_add.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitand.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitnot.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitxor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_byteat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_concat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_countbits.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_dec.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_find.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_inc.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_invprestr.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_max.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_min.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_minus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_nanvl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_plus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_string_kernels.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_sub.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_substring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_with.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_not_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less_or_equal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater_or_equal.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.linux-aarch64.txt index 7f52dde17d52..6eff594cd231 100644 --- a/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.linux-aarch64.txt @@ -6,17 +6,28 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) -add_library(minikql-invoke_builtins-llvm) +add_library(minikql-invoke_builtins-llvm STATIC) +set_property(TARGET minikql-invoke_builtins-llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-invoke_builtins-llvm PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(minikql-invoke_builtins-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-invoke_builtins-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins ) target_link_libraries(minikql-invoke_builtins-llvm PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - yql-minikql-codegen + minikql-codegen-llvm minikql-computation-llvm llvm12-lib-IR lib-ExecutionEngine-MCJIT @@ -32,43 +43,29 @@ target_link_libraries(minikql-invoke_builtins-llvm PUBLIC libs-apache-arrow ) target_sources(minikql-invoke_builtins-llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_abs.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_add.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitand.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitnot.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitxor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_byteat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_concat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_countbits.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_dec.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_find.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_inc.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_invprestr.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_max.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_min.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_minus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_nanvl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_plus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_string_kernels.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_sub.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_substring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_with.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_not_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less_or_equal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater_or_equal.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.linux-x86_64.txt index 7f52dde17d52..6eff594cd231 100644 --- a/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.linux-x86_64.txt @@ -6,17 +6,28 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) -add_library(minikql-invoke_builtins-llvm) +add_library(minikql-invoke_builtins-llvm STATIC) +set_property(TARGET minikql-invoke_builtins-llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-invoke_builtins-llvm PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(minikql-invoke_builtins-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-invoke_builtins-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins ) target_link_libraries(minikql-invoke_builtins-llvm PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - yql-minikql-codegen + minikql-codegen-llvm minikql-computation-llvm llvm12-lib-IR lib-ExecutionEngine-MCJIT @@ -32,43 +43,29 @@ target_link_libraries(minikql-invoke_builtins-llvm PUBLIC libs-apache-arrow ) target_sources(minikql-invoke_builtins-llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_abs.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_add.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitand.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitnot.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitxor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_byteat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_concat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_countbits.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_dec.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_find.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_inc.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_invprestr.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_max.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_min.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_minus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_nanvl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_plus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_string_kernels.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_sub.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_substring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_with.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_not_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less_or_equal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater_or_equal.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.windows-x86_64.txt index 751b74412234..5b36d0c8f9e4 100644 --- a/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/invoke_builtins/llvm/CMakeLists.windows-x86_64.txt @@ -6,16 +6,27 @@ # original buildsystem will not be accepted. +add_subdirectory(ut) -add_library(minikql-invoke_builtins-llvm) +add_library(minikql-invoke_builtins-llvm STATIC) +set_property(TARGET minikql-invoke_builtins-llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-invoke_builtins-llvm PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(minikql-invoke_builtins-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-invoke_builtins-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins ) target_link_libraries(minikql-invoke_builtins-llvm PUBLIC contrib-libs-cxxsupp yutil - yql-minikql-codegen + minikql-codegen-llvm minikql-computation-llvm llvm12-lib-IR lib-ExecutionEngine-MCJIT @@ -31,43 +42,29 @@ target_link_libraries(minikql-invoke_builtins-llvm PUBLIC libs-apache-arrow ) target_sources(minikql-invoke_builtins-llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_abs.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_add.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitand.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitnot.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitxor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_byteat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_concat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_countbits.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_dec.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_find.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_inc.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_invprestr.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_max.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_min.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_minus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_nanvl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_plus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_string_kernels.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_sub.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_substring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_with.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_not_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less_or_equal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater_or_equal.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..0d269564b6c9 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.darwin-arm64.txt @@ -0,0 +1,83 @@ + +# 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-yql-minikql-invoke_builtins-llvm-ut) +target_compile_options(ydb-library-yql-minikql-invoke_builtins-llvm-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-invoke_builtins-llvm-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins +) +target_link_libraries(ydb-library-yql-minikql-invoke_builtins-llvm-ut PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + minikql-codegen-llvm + minikql-invoke_builtins-llvm + minikql-computation-llvm + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-invoke_builtins-llvm-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +set_property( + TARGET + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-invoke_builtins-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-invoke_builtins-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-invoke_builtins-llvm-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-invoke_builtins-llvm-ut) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..9ffb3ce5bf6b --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,84 @@ + +# 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-yql-minikql-invoke_builtins-llvm-ut) +target_compile_options(ydb-library-yql-minikql-invoke_builtins-llvm-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-invoke_builtins-llvm-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins +) +target_link_libraries(ydb-library-yql-minikql-invoke_builtins-llvm-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm + minikql-invoke_builtins-llvm + minikql-computation-llvm + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-invoke_builtins-llvm-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +set_property( + TARGET + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-invoke_builtins-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-invoke_builtins-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-invoke_builtins-llvm-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-invoke_builtins-llvm-ut) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..bae55d16d3fb --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.linux-aarch64.txt @@ -0,0 +1,86 @@ + +# 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-yql-minikql-invoke_builtins-llvm-ut) +target_compile_options(ydb-library-yql-minikql-invoke_builtins-llvm-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-invoke_builtins-llvm-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins +) +target_link_libraries(ydb-library-yql-minikql-invoke_builtins-llvm-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + minikql-codegen-llvm + minikql-invoke_builtins-llvm + minikql-computation-llvm + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-invoke_builtins-llvm-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +set_property( + TARGET + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-invoke_builtins-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-invoke_builtins-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-invoke_builtins-llvm-ut + cpp-malloc-jemalloc +) +vcs_info(ydb-library-yql-minikql-invoke_builtins-llvm-ut) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..719ed36f6b75 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.linux-x86_64.txt @@ -0,0 +1,88 @@ + +# 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-yql-minikql-invoke_builtins-llvm-ut) +target_compile_options(ydb-library-yql-minikql-invoke_builtins-llvm-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-invoke_builtins-llvm-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins +) +target_link_libraries(ydb-library-yql-minikql-invoke_builtins-llvm-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm + minikql-invoke_builtins-llvm + minikql-computation-llvm + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-invoke_builtins-llvm-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +set_property( + TARGET + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-invoke_builtins-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-invoke_builtins-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-invoke_builtins-llvm-ut + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-library-yql-minikql-invoke_builtins-llvm-ut) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.txt b/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..f718f3824e5d --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm/ut/CMakeLists.windows-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-library-yql-minikql-invoke_builtins-llvm-ut) +target_compile_options(ydb-library-yql-minikql-invoke_builtins-llvm-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-invoke_builtins-llvm-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins +) +target_link_libraries(ydb-library-yql-minikql-invoke_builtins-llvm-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm + minikql-invoke_builtins-llvm + minikql-computation-llvm + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + udf-service-exception_policy + yql-sql-pg_dummy +) +set_property( + TARGET + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-invoke_builtins-llvm-ut + TEST_TARGET + ydb-library-yql-minikql-invoke_builtins-llvm-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-invoke_builtins-llvm-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-invoke_builtins-llvm-ut) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..988e90519329 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.darwin-arm64.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_subdirectory(ut) + +add_library(minikql-invoke_builtins-llvm14 STATIC) +set_property(TARGET minikql-invoke_builtins-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(minikql-invoke_builtins-llvm14 PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(minikql-invoke_builtins-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-invoke_builtins-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins +) +target_link_libraries(minikql-invoke_builtins-llvm14 PUBLIC + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + minikql-computation-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + library-cpp-pop_count + ydb-library-binary_json + library-yql-minikql + yql-minikql-arrow + yql-public-udf + libs-apache-arrow +) +target_sources(minikql-invoke_builtins-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..988e90519329 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.darwin-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_subdirectory(ut) + +add_library(minikql-invoke_builtins-llvm14 STATIC) +set_property(TARGET minikql-invoke_builtins-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(minikql-invoke_builtins-llvm14 PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(minikql-invoke_builtins-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-invoke_builtins-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins +) +target_link_libraries(minikql-invoke_builtins-llvm14 PUBLIC + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + minikql-computation-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + library-cpp-pop_count + ydb-library-binary_json + library-yql-minikql + yql-minikql-arrow + yql-public-udf + libs-apache-arrow +) +target_sources(minikql-invoke_builtins-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..c8f14ea587b0 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.linux-aarch64.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_subdirectory(ut) + +add_library(minikql-invoke_builtins-llvm14 STATIC) +set_property(TARGET minikql-invoke_builtins-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(minikql-invoke_builtins-llvm14 PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(minikql-invoke_builtins-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-invoke_builtins-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins +) +target_link_libraries(minikql-invoke_builtins-llvm14 PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + minikql-computation-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + library-cpp-pop_count + ydb-library-binary_json + library-yql-minikql + yql-minikql-arrow + yql-public-udf + libs-apache-arrow +) +target_sources(minikql-invoke_builtins-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..c8f14ea587b0 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm14/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_subdirectory(ut) + +add_library(minikql-invoke_builtins-llvm14 STATIC) +set_property(TARGET minikql-invoke_builtins-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(minikql-invoke_builtins-llvm14 PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(minikql-invoke_builtins-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-invoke_builtins-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins +) +target_link_libraries(minikql-invoke_builtins-llvm14 PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + minikql-computation-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + library-cpp-pop_count + ydb-library-binary_json + library-yql-minikql + yql-minikql-arrow + yql-public-udf + libs-apache-arrow +) +target_sources(minikql-invoke_builtins-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.txt b/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm14/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..988e90519329 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm14/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_subdirectory(ut) + +add_library(minikql-invoke_builtins-llvm14 STATIC) +set_property(TARGET minikql-invoke_builtins-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(minikql-invoke_builtins-llvm14 PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(minikql-invoke_builtins-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-invoke_builtins-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins +) +target_link_libraries(minikql-invoke_builtins-llvm14 PUBLIC + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + minikql-computation-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + library-cpp-pop_count + ydb-library-binary_json + library-yql-minikql + yql-minikql-arrow + yql-public-udf + libs-apache-arrow +) +target_sources(minikql-invoke_builtins-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..00b73893cfa6 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.darwin-arm64.txt @@ -0,0 +1,83 @@ + +# 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-yql-minikql-invoke_builtins-llvm14-ut) +target_compile_options(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins +) +target_link_libraries(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + minikql-codegen-llvm14 + minikql-invoke_builtins-llvm14 + minikql-computation-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +set_property( + TARGET + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-invoke_builtins-llvm14-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-invoke_builtins-llvm14-ut) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..7bb751e09284 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,84 @@ + +# 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-yql-minikql-invoke_builtins-llvm14-ut) +target_compile_options(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins +) +target_link_libraries(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm14 + minikql-invoke_builtins-llvm14 + minikql-computation-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +set_property( + TARGET + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-invoke_builtins-llvm14-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-invoke_builtins-llvm14-ut) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..7314ccf32bf4 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.linux-aarch64.txt @@ -0,0 +1,86 @@ + +# 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-yql-minikql-invoke_builtins-llvm14-ut) +target_compile_options(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins +) +target_link_libraries(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + minikql-codegen-llvm14 + minikql-invoke_builtins-llvm14 + minikql-computation-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +set_property( + TARGET + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-invoke_builtins-llvm14-ut + cpp-malloc-jemalloc +) +vcs_info(ydb-library-yql-minikql-invoke_builtins-llvm14-ut) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..27a33e2a3fdc --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.linux-x86_64.txt @@ -0,0 +1,88 @@ + +# 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-yql-minikql-invoke_builtins-llvm14-ut) +target_compile_options(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins +) +target_link_libraries(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm14 + minikql-invoke_builtins-llvm14 + minikql-computation-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + udf-service-exception_policy + yql-sql-pg_dummy +) +target_link_options(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +set_property( + TARGET + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-invoke_builtins-llvm14-ut + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-library-yql-minikql-invoke_builtins-llvm14-ut) diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.txt b/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..3ae112edeba4 --- /dev/null +++ b/ydb/library/yql/minikql/invoke_builtins/llvm14/ut/CMakeLists.windows-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-library-yql-minikql-invoke_builtins-llvm14-ut) +target_compile_options(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins +) +target_link_libraries(ydb-library-yql-minikql-invoke_builtins-llvm14-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + minikql-codegen-llvm14 + minikql-invoke_builtins-llvm14 + minikql-computation-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + yql-public-udf + udf-service-exception_policy + yql-sql-pg_dummy +) +set_property( + TARGET + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + SPLIT_FACTOR + 10 +) +add_yunittest( + NAME + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + TEST_TARGET + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-minikql-invoke_builtins-llvm14-ut + PROPERTY + TIMEOUT + 600 +) +target_allocator(ydb-library-yql-minikql-invoke_builtins-llvm14-ut + system_allocator +) +vcs_info(ydb-library-yql-minikql-invoke_builtins-llvm14-ut) diff --git a/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.darwin-arm64.txt index cd35db266b6c..2c8d4f8ac3e3 100644 --- a/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.darwin-arm64.txt @@ -7,13 +7,22 @@ -add_library(minikql-invoke_builtins-no_llvm) +add_library(minikql-invoke_builtins-no_llvm STATIC) +set_property(TARGET minikql-invoke_builtins-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-invoke_builtins-no_llvm PRIVATE -DMKQL_DISABLE_CODEGEN -DUSE_CURRENT_UDF_ABI_VERSION ) target_include_directories(minikql-invoke_builtins-no_llvm PUBLIC ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-invoke_builtins-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins ) target_link_libraries(minikql-invoke_builtins-no_llvm PUBLIC contrib-libs-cxxsupp @@ -27,43 +36,29 @@ target_link_libraries(minikql-invoke_builtins-no_llvm PUBLIC minikql-computation-no_llvm ) target_sources(minikql-invoke_builtins-no_llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_abs.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_add.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitand.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitnot.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitxor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_byteat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_concat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_countbits.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_dec.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_find.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_inc.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_invprestr.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_max.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_min.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_minus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_nanvl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_plus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_string_kernels.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_sub.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_substring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_with.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_not_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less_or_equal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater_or_equal.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.darwin-x86_64.txt index cd35db266b6c..2c8d4f8ac3e3 100644 --- a/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.darwin-x86_64.txt @@ -7,13 +7,22 @@ -add_library(minikql-invoke_builtins-no_llvm) +add_library(minikql-invoke_builtins-no_llvm STATIC) +set_property(TARGET minikql-invoke_builtins-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-invoke_builtins-no_llvm PRIVATE -DMKQL_DISABLE_CODEGEN -DUSE_CURRENT_UDF_ABI_VERSION ) target_include_directories(minikql-invoke_builtins-no_llvm PUBLIC ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-invoke_builtins-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins ) target_link_libraries(minikql-invoke_builtins-no_llvm PUBLIC contrib-libs-cxxsupp @@ -27,43 +36,29 @@ target_link_libraries(minikql-invoke_builtins-no_llvm PUBLIC minikql-computation-no_llvm ) target_sources(minikql-invoke_builtins-no_llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_abs.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_add.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitand.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitnot.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitxor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_byteat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_concat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_countbits.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_dec.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_find.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_inc.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_invprestr.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_max.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_min.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_minus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_nanvl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_plus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_string_kernels.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_sub.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_substring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_with.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_not_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less_or_equal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater_or_equal.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.linux-aarch64.txt index c71c6c41366b..effd9efd7e56 100644 --- a/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.linux-aarch64.txt @@ -7,13 +7,22 @@ -add_library(minikql-invoke_builtins-no_llvm) +add_library(minikql-invoke_builtins-no_llvm STATIC) +set_property(TARGET minikql-invoke_builtins-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-invoke_builtins-no_llvm PRIVATE -DMKQL_DISABLE_CODEGEN -DUSE_CURRENT_UDF_ABI_VERSION ) target_include_directories(minikql-invoke_builtins-no_llvm PUBLIC ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-invoke_builtins-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins ) target_link_libraries(minikql-invoke_builtins-no_llvm PUBLIC contrib-libs-linux-headers @@ -28,43 +37,29 @@ target_link_libraries(minikql-invoke_builtins-no_llvm PUBLIC minikql-computation-no_llvm ) target_sources(minikql-invoke_builtins-no_llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_abs.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_add.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitand.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitnot.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitxor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_byteat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_concat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_countbits.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_dec.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_find.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_inc.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_invprestr.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_max.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_min.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_minus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_nanvl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_plus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_string_kernels.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_sub.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_substring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_with.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_not_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less_or_equal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater_or_equal.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.linux-x86_64.txt index c71c6c41366b..effd9efd7e56 100644 --- a/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.linux-x86_64.txt @@ -7,13 +7,22 @@ -add_library(minikql-invoke_builtins-no_llvm) +add_library(minikql-invoke_builtins-no_llvm STATIC) +set_property(TARGET minikql-invoke_builtins-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-invoke_builtins-no_llvm PRIVATE -DMKQL_DISABLE_CODEGEN -DUSE_CURRENT_UDF_ABI_VERSION ) target_include_directories(minikql-invoke_builtins-no_llvm PUBLIC ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-invoke_builtins-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins ) target_link_libraries(minikql-invoke_builtins-no_llvm PUBLIC contrib-libs-linux-headers @@ -28,43 +37,29 @@ target_link_libraries(minikql-invoke_builtins-no_llvm PUBLIC minikql-computation-no_llvm ) target_sources(minikql-invoke_builtins-no_llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_abs.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_add.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitand.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitnot.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitxor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_byteat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_concat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_countbits.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_dec.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_find.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_inc.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_invprestr.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_max.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_min.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_minus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_nanvl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_plus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_string_kernels.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_sub.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_substring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_with.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_not_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less_or_equal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater_or_equal.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.windows-x86_64.txt index cd35db266b6c..2c8d4f8ac3e3 100644 --- a/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/invoke_builtins/no_llvm/CMakeLists.windows-x86_64.txt @@ -7,13 +7,22 @@ -add_library(minikql-invoke_builtins-no_llvm) +add_library(minikql-invoke_builtins-no_llvm STATIC) +set_property(TARGET minikql-invoke_builtins-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) target_compile_options(minikql-invoke_builtins-no_llvm PRIVATE -DMKQL_DISABLE_CODEGEN -DUSE_CURRENT_UDF_ABI_VERSION ) target_include_directories(minikql-invoke_builtins-no_llvm PUBLIC ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(minikql-invoke_builtins-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins ) target_link_libraries(minikql-invoke_builtins-no_llvm PUBLIC contrib-libs-cxxsupp @@ -27,43 +36,29 @@ target_link_libraries(minikql-invoke_builtins-no_llvm PUBLIC minikql-computation-no_llvm ) target_sources(minikql-invoke_builtins-no_llvm PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_abs.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_add.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitand.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitnot.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_bitxor.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_byteat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_concat.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_convert.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_countbits.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_dec.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_div.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_find.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_inc.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_invprestr.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_max.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_min.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_minus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mod.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_mul.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_nanvl.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_plus.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_rotright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftleft.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_shiftright.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_string_kernels.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_sub.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_substring.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_with.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_not_equals.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_less_or_equal.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_greater_or_equal.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/invoke_builtins/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h ) diff --git a/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.darwin-arm64.txt index 015d905da372..833a353fa55a 100644 --- a/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.darwin-arm64.txt @@ -17,7 +17,7 @@ target_link_libraries(jsonpath-benchmark PUBLIC testing-benchmark-main library-cpp-json yql-minikql-dom - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-minikql-jsonpath yql-public-issue udf-service-exception_policy @@ -27,8 +27,6 @@ target_link_options(jsonpath-benchmark PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(jsonpath-benchmark PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/benchmark/main.cpp diff --git a/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.darwin-x86_64.txt index 7a04e74528f9..ff0d9cdcf2f6 100644 --- a/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.darwin-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(jsonpath-benchmark PUBLIC testing-benchmark-main library-cpp-json yql-minikql-dom - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-minikql-jsonpath yql-public-issue udf-service-exception_policy @@ -28,8 +28,6 @@ target_link_options(jsonpath-benchmark PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(jsonpath-benchmark PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/benchmark/main.cpp diff --git a/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.linux-aarch64.txt index 13503cbcf8d0..efc72d08cca2 100644 --- a/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.linux-aarch64.txt @@ -18,7 +18,7 @@ target_link_libraries(jsonpath-benchmark PUBLIC testing-benchmark-main library-cpp-json yql-minikql-dom - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-minikql-jsonpath yql-public-issue udf-service-exception_policy @@ -30,9 +30,6 @@ target_link_options(jsonpath-benchmark PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(jsonpath-benchmark PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/benchmark/main.cpp diff --git a/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.linux-x86_64.txt index e88fac42ff8c..8928826ae7f5 100644 --- a/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.linux-x86_64.txt @@ -19,7 +19,7 @@ target_link_libraries(jsonpath-benchmark PUBLIC testing-benchmark-main library-cpp-json yql-minikql-dom - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-minikql-jsonpath yql-public-issue udf-service-exception_policy @@ -31,9 +31,6 @@ target_link_options(jsonpath-benchmark PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(jsonpath-benchmark PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/benchmark/main.cpp diff --git a/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.windows-x86_64.txt index 471eec5852b5..232dfba1644c 100644 --- a/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/jsonpath/benchmark/CMakeLists.windows-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(jsonpath-benchmark PUBLIC testing-benchmark-main library-cpp-json yql-minikql-dom - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-minikql-jsonpath yql-public-issue udf-service-exception_policy diff --git a/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.darwin-arm64.txt index 9aedea06f4b2..be16b99d7939 100644 --- a/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.darwin-arm64.txt @@ -22,9 +22,9 @@ target_link_libraries(ydb-library-yql-minikql-jsonpath-ut PUBLIC library-cpp-json ydb-library-binary_json library-yql-minikql - minikql-computation-llvm + minikql-computation-llvm14 yql-minikql-dom - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 udf-service-exception_policy core-issue-protos yql-sql-pg_dummy @@ -33,8 +33,6 @@ target_link_options(ydb-library-yql-minikql-jsonpath-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-minikql-jsonpath-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/ut/common_ut.cpp @@ -69,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.darwin-x86_64.txt index d130b466d351..b90e2de511bc 100644 --- a/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.darwin-x86_64.txt @@ -23,9 +23,9 @@ target_link_libraries(ydb-library-yql-minikql-jsonpath-ut PUBLIC library-cpp-json ydb-library-binary_json library-yql-minikql - minikql-computation-llvm + minikql-computation-llvm14 yql-minikql-dom - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 udf-service-exception_policy core-issue-protos yql-sql-pg_dummy @@ -34,8 +34,6 @@ target_link_options(ydb-library-yql-minikql-jsonpath-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-minikql-jsonpath-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/ut/common_ut.cpp @@ -70,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.linux-aarch64.txt index da30de491418..471e79e75ae5 100644 --- a/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.linux-aarch64.txt @@ -23,9 +23,9 @@ target_link_libraries(ydb-library-yql-minikql-jsonpath-ut PUBLIC library-cpp-json ydb-library-binary_json library-yql-minikql - minikql-computation-llvm + minikql-computation-llvm14 yql-minikql-dom - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 udf-service-exception_policy core-issue-protos yql-sql-pg_dummy @@ -36,9 +36,6 @@ target_link_options(ydb-library-yql-minikql-jsonpath-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-minikql-jsonpath-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/ut/common_ut.cpp @@ -73,6 +70,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.linux-x86_64.txt index a9532bd37b2c..1c3db09f21ba 100644 --- a/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.linux-x86_64.txt @@ -24,9 +24,9 @@ target_link_libraries(ydb-library-yql-minikql-jsonpath-ut PUBLIC library-cpp-json ydb-library-binary_json library-yql-minikql - minikql-computation-llvm + minikql-computation-llvm14 yql-minikql-dom - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 udf-service-exception_policy core-issue-protos yql-sql-pg_dummy @@ -37,9 +37,6 @@ target_link_options(ydb-library-yql-minikql-jsonpath-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-minikql-jsonpath-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/jsonpath/ut/common_ut.cpp @@ -74,6 +71,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.windows-x86_64.txt index 4c482b6b1dfc..3c5209c5c5e3 100644 --- a/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/jsonpath/ut/CMakeLists.windows-x86_64.txt @@ -23,9 +23,9 @@ target_link_libraries(ydb-library-yql-minikql-jsonpath-ut PUBLIC library-cpp-json ydb-library-binary_json library-yql-minikql - minikql-computation-llvm + minikql-computation-llvm14 yql-minikql-dom - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 udf-service-exception_policy core-issue-protos yql-sql-pg_dummy @@ -63,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/mkql_node.cpp b/ydb/library/yql/minikql/mkql_node.cpp index 82815a8e3e4b..6fa8d8f55db9 100644 --- a/ydb/library/yql/minikql/mkql_node.cpp +++ b/ydb/library/yql/minikql/mkql_node.cpp @@ -2525,7 +2525,7 @@ EValueRepresentation GetValueRepresentation(const TType* type) { } TArrayRef<TType* const> GetWideComponents(const TFlowType* type) { - if (RuntimeVersion > 35) { + if (type->GetItemType()->IsMulti()) { return AS_TYPE(TMultiType, type->GetItemType())->GetElements(); } return AS_TYPE(TTupleType, type->GetItemType())->GetElements(); diff --git a/ydb/library/yql/minikql/mkql_program_builder.cpp b/ydb/library/yql/minikql/mkql_program_builder.cpp index c12742d9a606..1812a9dd5c5f 100644 --- a/ydb/library/yql/minikql/mkql_program_builder.cpp +++ b/ydb/library/yql/minikql/mkql_program_builder.cpp @@ -5493,9 +5493,11 @@ TRuntimeNode TProgramBuilder::PgConst(TPgType* pgType, const std::string_view& v TRuntimeNode TProgramBuilder::PgResolvedCall(bool useContext, const std::string_view& name, ui32 id, const TArrayRef<const TRuntimeNode>& args, TType* returnType, bool rangeFunction) { - if constexpr (RuntimeVersion < 45U) { - THROW yexception() << "Runtime version (" << RuntimeVersion << ") too old for " << __func__; - } + + // Disable runtime compatibility checks for PG callables in 24-1 + // if constexpr (RuntimeVersion < 45U) { + // THROW yexception() << "Runtime version (" << RuntimeVersion << ") too old for " << __func__; + // } TCallableBuilder callableBuilder(Env, __func__, returnType); callableBuilder.Add(NewDataLiteral(useContext)); @@ -5540,9 +5542,11 @@ TRuntimeNode TProgramBuilder::PgTableContent( const std::string_view& cluster, const std::string_view& table, TType* returnType) { - if constexpr (RuntimeVersion < 47U) { - THROW yexception() << "Runtime version (" << RuntimeVersion << ") too old for " << __func__; - } + + // Disable runtime compatibility checks for PG callables in 24-1 + // if constexpr (RuntimeVersion < 47U) { + // THROW yexception() << "Runtime version (" << RuntimeVersion << ") too old for " << __func__; + // } TCallableBuilder callableBuilder(Env, __func__, returnType); callableBuilder.Add(NewDataLiteral<NUdf::EDataSlot::String>(cluster)); diff --git a/ydb/library/yql/minikql/mkql_runtime_version.h b/ydb/library/yql/minikql/mkql_runtime_version.h index e7f39f9b250b..d260b84b08af 100644 --- a/ydb/library/yql/minikql/mkql_runtime_version.h +++ b/ydb/library/yql/minikql/mkql_runtime_version.h @@ -30,6 +30,16 @@ namespace NMiniKQL { // 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 +// v47 is the version supported by kikimr-24-1 constexpr ui32 RuntimeVersion = MKQL_RUNTIME_VERSION; } diff --git a/ydb/library/yql/minikql/perf/alloc/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/perf/alloc/CMakeLists.darwin-arm64.txt index 3cf27097e3fe..9461f19a6eb4 100644 --- a/ydb/library/yql/minikql/perf/alloc/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/perf/alloc/CMakeLists.darwin-arm64.txt @@ -23,8 +23,6 @@ target_link_options(alloc PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(alloc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/alloc/alloc.cpp diff --git a/ydb/library/yql/minikql/perf/alloc/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/perf/alloc/CMakeLists.darwin-x86_64.txt index d8685ed67157..31f9fbd35e33 100644 --- a/ydb/library/yql/minikql/perf/alloc/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/perf/alloc/CMakeLists.darwin-x86_64.txt @@ -24,8 +24,6 @@ target_link_options(alloc PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(alloc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/alloc/alloc.cpp diff --git a/ydb/library/yql/minikql/perf/alloc/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/perf/alloc/CMakeLists.linux-aarch64.txt index 18593395ac07..39448a7ae303 100644 --- a/ydb/library/yql/minikql/perf/alloc/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/perf/alloc/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(alloc PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(alloc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/alloc/alloc.cpp diff --git a/ydb/library/yql/minikql/perf/alloc/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/perf/alloc/CMakeLists.linux-x86_64.txt index 57a3bf9ac9b9..f66e0a01ee7b 100644 --- a/ydb/library/yql/minikql/perf/alloc/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/perf/alloc/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(alloc PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(alloc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/alloc/alloc.cpp diff --git a/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.darwin-arm64.txt index 0e390eb77053..84019c2b9a96 100644 --- a/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.darwin-arm64.txt @@ -16,7 +16,7 @@ target_link_libraries(block_groupby PUBLIC yutil libs-apache-arrow yql-minikql-arrow - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -26,8 +26,6 @@ target_link_options(block_groupby PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(block_groupby PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/block_groupby/block_groupby.cpp diff --git a/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.darwin-x86_64.txt index 2363b25d5719..30d224c7350a 100644 --- a/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.darwin-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(block_groupby PUBLIC library-cpp-cpuid_check libs-apache-arrow yql-minikql-arrow - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -27,8 +27,6 @@ target_link_options(block_groupby PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(block_groupby PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/block_groupby/block_groupby.cpp diff --git a/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.linux-aarch64.txt index 5990139b8f4e..ad807559716a 100644 --- a/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.linux-aarch64.txt @@ -17,7 +17,7 @@ target_link_libraries(block_groupby PUBLIC yutil libs-apache-arrow yql-minikql-arrow - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -29,9 +29,6 @@ target_link_options(block_groupby PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(block_groupby PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/block_groupby/block_groupby.cpp diff --git a/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.linux-x86_64.txt index 6d662c8956c9..a63a43578bbd 100644 --- a/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.linux-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(block_groupby PUBLIC library-cpp-cpuid_check libs-apache-arrow yql-minikql-arrow - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -30,9 +30,6 @@ target_link_options(block_groupby PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(block_groupby PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/block_groupby/block_groupby.cpp diff --git a/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.windows-x86_64.txt index e869124c08ff..0108db7b9128 100644 --- a/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/perf/block_groupby/CMakeLists.windows-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(block_groupby PUBLIC library-cpp-cpuid_check libs-apache-arrow yql-minikql-arrow - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy diff --git a/ydb/library/yql/minikql/perf/mprefetch/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/perf/mprefetch/CMakeLists.linux-aarch64.txt index 318241f220ee..6f2f1ac90590 100644 --- a/ydb/library/yql/minikql/perf/mprefetch/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/perf/mprefetch/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(mprefetch PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(mprefetch PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/mprefetch/mprefetch.cpp diff --git a/ydb/library/yql/minikql/perf/mprefetch/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/perf/mprefetch/CMakeLists.linux-x86_64.txt index bd71fd7c81f3..af281f4e90b8 100644 --- a/ydb/library/yql/minikql/perf/mprefetch/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/perf/mprefetch/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(mprefetch PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(mprefetch PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/mprefetch/mprefetch.cpp diff --git a/ydb/library/yql/minikql/perf/mt_param/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/perf/mt_param/CMakeLists.darwin-arm64.txt index fede79848617..3d9ff191325c 100644 --- a/ydb/library/yql/minikql/perf/mt_param/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/perf/mt_param/CMakeLists.darwin-arm64.txt @@ -14,7 +14,7 @@ target_compile_options(mt_param PRIVATE target_link_libraries(mt_param PUBLIC contrib-libs-cxxsupp yutil - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -23,8 +23,6 @@ target_link_options(mt_param PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(mt_param PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/mt_param/mt_param.cpp diff --git a/ydb/library/yql/minikql/perf/mt_param/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/perf/mt_param/CMakeLists.darwin-x86_64.txt index 02fb9e6311b2..71d01912965f 100644 --- a/ydb/library/yql/minikql/perf/mt_param/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/perf/mt_param/CMakeLists.darwin-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(mt_param PUBLIC contrib-libs-cxxsupp yutil library-cpp-cpuid_check - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -24,8 +24,6 @@ target_link_options(mt_param PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(mt_param PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/mt_param/mt_param.cpp diff --git a/ydb/library/yql/minikql/perf/mt_param/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/perf/mt_param/CMakeLists.linux-aarch64.txt index 3ad79a7d6db2..0aebd50d8e55 100644 --- a/ydb/library/yql/minikql/perf/mt_param/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/perf/mt_param/CMakeLists.linux-aarch64.txt @@ -15,7 +15,7 @@ target_link_libraries(mt_param PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -26,9 +26,6 @@ target_link_options(mt_param PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(mt_param PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/mt_param/mt_param.cpp diff --git a/ydb/library/yql/minikql/perf/mt_param/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/perf/mt_param/CMakeLists.linux-x86_64.txt index 293cdde74948..63e35247f7e3 100644 --- a/ydb/library/yql/minikql/perf/mt_param/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/perf/mt_param/CMakeLists.linux-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(mt_param PUBLIC contrib-libs-cxxsupp yutil library-cpp-cpuid_check - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -27,9 +27,6 @@ target_link_options(mt_param PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(mt_param PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/mt_param/mt_param.cpp diff --git a/ydb/library/yql/minikql/perf/mt_param/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/perf/mt_param/CMakeLists.windows-x86_64.txt index ff14b61361f7..a4fcda15d565 100644 --- a/ydb/library/yql/minikql/perf/mt_param/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/perf/mt_param/CMakeLists.windows-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(mt_param PUBLIC contrib-libs-cxxsupp yutil library-cpp-cpuid_check - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy diff --git a/ydb/library/yql/minikql/perf/packer/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/perf/packer/CMakeLists.darwin-arm64.txt index 9d63daebb7a2..845237fbf5fb 100644 --- a/ydb/library/yql/minikql/perf/packer/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/perf/packer/CMakeLists.darwin-arm64.txt @@ -14,7 +14,7 @@ target_compile_options(packer PRIVATE target_link_libraries(packer PUBLIC contrib-libs-cxxsupp yutil - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -23,8 +23,6 @@ target_link_options(packer PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(packer PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/packer/packer.cpp diff --git a/ydb/library/yql/minikql/perf/packer/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/perf/packer/CMakeLists.darwin-x86_64.txt index 6a0ae062bffa..9712e7ee3471 100644 --- a/ydb/library/yql/minikql/perf/packer/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/perf/packer/CMakeLists.darwin-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(packer PUBLIC contrib-libs-cxxsupp yutil library-cpp-cpuid_check - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -24,8 +24,6 @@ target_link_options(packer PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(packer PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/packer/packer.cpp diff --git a/ydb/library/yql/minikql/perf/packer/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/perf/packer/CMakeLists.linux-aarch64.txt index a2d48e9620a6..2478b88d8c4d 100644 --- a/ydb/library/yql/minikql/perf/packer/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/perf/packer/CMakeLists.linux-aarch64.txt @@ -15,7 +15,7 @@ target_link_libraries(packer PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -26,9 +26,6 @@ target_link_options(packer PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(packer PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/packer/packer.cpp diff --git a/ydb/library/yql/minikql/perf/packer/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/perf/packer/CMakeLists.linux-x86_64.txt index 1211b8af4964..c66c2ce85f0b 100644 --- a/ydb/library/yql/minikql/perf/packer/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/perf/packer/CMakeLists.linux-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(packer PUBLIC contrib-libs-cxxsupp yutil library-cpp-cpuid_check - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -27,9 +27,6 @@ target_link_options(packer PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(packer PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/packer/packer.cpp diff --git a/ydb/library/yql/minikql/perf/packer/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/perf/packer/CMakeLists.windows-x86_64.txt index 0a35ea888792..6565a0a9e936 100644 --- a/ydb/library/yql/minikql/perf/packer/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/perf/packer/CMakeLists.windows-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(packer PUBLIC contrib-libs-cxxsupp yutil library-cpp-cpuid_check - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy diff --git a/ydb/library/yql/minikql/perf/param/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/perf/param/CMakeLists.darwin-arm64.txt index 3583196ad480..a9fee91ff3ae 100644 --- a/ydb/library/yql/minikql/perf/param/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/perf/param/CMakeLists.darwin-arm64.txt @@ -14,7 +14,7 @@ target_compile_options(param PRIVATE target_link_libraries(param PUBLIC contrib-libs-cxxsupp yutil - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -23,8 +23,6 @@ target_link_options(param PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(param PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/param/param.cpp diff --git a/ydb/library/yql/minikql/perf/param/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/perf/param/CMakeLists.darwin-x86_64.txt index 25626b17c5a9..171adad35f53 100644 --- a/ydb/library/yql/minikql/perf/param/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/perf/param/CMakeLists.darwin-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(param PUBLIC contrib-libs-cxxsupp yutil library-cpp-cpuid_check - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -24,8 +24,6 @@ target_link_options(param PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(param PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/param/param.cpp diff --git a/ydb/library/yql/minikql/perf/param/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/perf/param/CMakeLists.linux-aarch64.txt index 1cf4b96b65cc..8a51f5921079 100644 --- a/ydb/library/yql/minikql/perf/param/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/perf/param/CMakeLists.linux-aarch64.txt @@ -15,7 +15,7 @@ target_link_libraries(param PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -26,9 +26,6 @@ target_link_options(param PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(param PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/param/param.cpp diff --git a/ydb/library/yql/minikql/perf/param/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/perf/param/CMakeLists.linux-x86_64.txt index 7da21a6edd2a..4a9e81bb38ca 100644 --- a/ydb/library/yql/minikql/perf/param/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/perf/param/CMakeLists.linux-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(param PUBLIC contrib-libs-cxxsupp yutil library-cpp-cpuid_check - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -27,9 +27,6 @@ target_link_options(param PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(param PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/param/param.cpp diff --git a/ydb/library/yql/minikql/perf/param/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/perf/param/CMakeLists.windows-x86_64.txt index 7f5a2cee9de0..bc8127193b54 100644 --- a/ydb/library/yql/minikql/perf/param/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/perf/param/CMakeLists.windows-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(param PUBLIC contrib-libs-cxxsupp yutil library-cpp-cpuid_check - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy diff --git a/ydb/library/yql/minikql/perf/presort/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/perf/presort/CMakeLists.darwin-arm64.txt index 54db3d281aab..ac4c895db761 100644 --- a/ydb/library/yql/minikql/perf/presort/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/perf/presort/CMakeLists.darwin-arm64.txt @@ -15,7 +15,7 @@ target_link_libraries(presort PUBLIC contrib-libs-cxxsupp yutil library-cpp-presort - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -24,8 +24,6 @@ target_link_options(presort PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(presort PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/presort/presort.cpp diff --git a/ydb/library/yql/minikql/perf/presort/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/perf/presort/CMakeLists.darwin-x86_64.txt index eb5f43031d18..861430949497 100644 --- a/ydb/library/yql/minikql/perf/presort/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/perf/presort/CMakeLists.darwin-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(presort PUBLIC yutil library-cpp-cpuid_check library-cpp-presort - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -25,8 +25,6 @@ target_link_options(presort PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(presort PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/presort/presort.cpp diff --git a/ydb/library/yql/minikql/perf/presort/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/perf/presort/CMakeLists.linux-aarch64.txt index 6ad9ca9b3e30..6ec6b149bcfd 100644 --- a/ydb/library/yql/minikql/perf/presort/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/perf/presort/CMakeLists.linux-aarch64.txt @@ -16,7 +16,7 @@ target_link_libraries(presort PUBLIC contrib-libs-cxxsupp yutil library-cpp-presort - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -27,9 +27,6 @@ target_link_options(presort PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(presort PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/presort/presort.cpp diff --git a/ydb/library/yql/minikql/perf/presort/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/perf/presort/CMakeLists.linux-x86_64.txt index bb15a8ed3458..3385e161717c 100644 --- a/ydb/library/yql/minikql/perf/presort/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/perf/presort/CMakeLists.linux-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(presort PUBLIC yutil library-cpp-cpuid_check library-cpp-presort - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy @@ -28,9 +28,6 @@ target_link_options(presort PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(presort PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/perf/presort/presort.cpp diff --git a/ydb/library/yql/minikql/perf/presort/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/perf/presort/CMakeLists.windows-x86_64.txt index 0fee1072da98..e75e6ceb5b9d 100644 --- a/ydb/library/yql/minikql/perf/presort/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/perf/presort/CMakeLists.windows-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(presort PUBLIC yutil library-cpp-cpuid_check library-cpp-presort - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-public-udf udf-service-exception_policy yql-sql-pg_dummy diff --git a/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.darwin-arm64.txt index 5157cd41655c..e3895f440a82 100644 --- a/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.darwin-arm64.txt @@ -44,13 +44,12 @@ target_link_options(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_proto_messages(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/protobuf_ut.proto ) target_sources(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/protobuf_ut.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/type_builder_ut.cpp ) set_property( @@ -78,6 +77,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.darwin-x86_64.txt index 0ee35f2aad5b..24f396583b50 100644 --- a/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.darwin-x86_64.txt @@ -45,13 +45,12 @@ target_link_options(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_proto_messages(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/protobuf_ut.proto ) target_sources(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/protobuf_ut.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/type_builder_ut.cpp ) set_property( @@ -79,6 +78,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.linux-aarch64.txt index aa54aec6a184..c9d01bd1e3c6 100644 --- a/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.linux-aarch64.txt @@ -47,14 +47,12 @@ target_link_options(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_proto_messages(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/protobuf_ut.proto ) target_sources(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/protobuf_ut.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/type_builder_ut.cpp ) set_property( @@ -82,6 +80,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.linux-x86_64.txt index 81dc00151bb3..d60ba25153b9 100644 --- a/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.linux-x86_64.txt @@ -48,14 +48,12 @@ target_link_options(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_proto_messages(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/protobuf_ut.proto ) target_sources(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/protobuf_ut.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/type_builder_ut.cpp ) set_property( @@ -83,6 +81,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.windows-x86_64.txt index 829f4837e633..b0bb4cb5266f 100644 --- a/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/protobuf_udf/ut/CMakeLists.windows-x86_64.txt @@ -45,6 +45,7 @@ target_proto_messages(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/protobuf_ut.proto ) target_sources(ydb-library-yql-minikql-protobuf_udf-ut PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/protobuf_ut.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/protobuf_udf/ut/type_builder_ut.cpp ) set_property( @@ -72,6 +73,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/minikql/ut/CMakeLists.darwin-arm64.txt index 0f29860544a6..efee5ff36efb 100644 --- a/ydb/library/yql/minikql/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/minikql/ut/CMakeLists.darwin-arm64.txt @@ -13,6 +13,7 @@ target_compile_options(ydb-library-yql-minikql-ut PRIVATE ) target_include_directories(ydb-library-yql-minikql-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include ) target_link_libraries(ydb-library-yql-minikql-ut PUBLIC contrib-libs-cxxsupp @@ -20,7 +21,7 @@ target_link_libraries(ydb-library-yql-minikql-ut PUBLIC cpp-testing-unittest_main library-yql-minikql libs-apache-arrow - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-parser-pg_wrapper udf-service-exception_policy ) @@ -28,8 +29,6 @@ target_link_options(ydb-library-yql-minikql-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-minikql-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool_ut.cpp @@ -72,6 +71,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/minikql/ut/CMakeLists.darwin-x86_64.txt index 04c6363899a0..227985ad6d73 100644 --- a/ydb/library/yql/minikql/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/minikql/ut/CMakeLists.darwin-x86_64.txt @@ -13,6 +13,7 @@ target_compile_options(ydb-library-yql-minikql-ut PRIVATE ) target_include_directories(ydb-library-yql-minikql-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include ) target_link_libraries(ydb-library-yql-minikql-ut PUBLIC contrib-libs-cxxsupp @@ -21,7 +22,7 @@ target_link_libraries(ydb-library-yql-minikql-ut PUBLIC cpp-testing-unittest_main library-yql-minikql libs-apache-arrow - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-parser-pg_wrapper udf-service-exception_policy ) @@ -29,8 +30,6 @@ target_link_options(ydb-library-yql-minikql-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-minikql-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool_ut.cpp @@ -73,6 +72,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/minikql/ut/CMakeLists.linux-aarch64.txt index debeb23a6c1c..12d52710e9dc 100644 --- a/ydb/library/yql/minikql/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/minikql/ut/CMakeLists.linux-aarch64.txt @@ -13,6 +13,7 @@ target_compile_options(ydb-library-yql-minikql-ut PRIVATE ) target_include_directories(ydb-library-yql-minikql-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include ) target_link_libraries(ydb-library-yql-minikql-ut PUBLIC contrib-libs-linux-headers @@ -21,7 +22,7 @@ target_link_libraries(ydb-library-yql-minikql-ut PUBLIC cpp-testing-unittest_main library-yql-minikql libs-apache-arrow - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-parser-pg_wrapper udf-service-exception_policy ) @@ -31,9 +32,6 @@ target_link_options(ydb-library-yql-minikql-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-minikql-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool_ut.cpp @@ -76,6 +74,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/minikql/ut/CMakeLists.linux-x86_64.txt index 3e006b3a97c5..5a70d0764775 100644 --- a/ydb/library/yql/minikql/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/minikql/ut/CMakeLists.linux-x86_64.txt @@ -13,6 +13,7 @@ target_compile_options(ydb-library-yql-minikql-ut PRIVATE ) target_include_directories(ydb-library-yql-minikql-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include ) target_link_libraries(ydb-library-yql-minikql-ut PUBLIC contrib-libs-linux-headers @@ -22,7 +23,7 @@ target_link_libraries(ydb-library-yql-minikql-ut PUBLIC cpp-testing-unittest_main library-yql-minikql libs-apache-arrow - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-parser-pg_wrapper udf-service-exception_policy ) @@ -32,9 +33,6 @@ target_link_options(ydb-library-yql-minikql-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-minikql-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/aligned_page_pool_ut.cpp @@ -77,6 +75,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/minikql/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/minikql/ut/CMakeLists.windows-x86_64.txt index 9580b9893855..3fd6781c532d 100644 --- a/ydb/library/yql/minikql/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/minikql/ut/CMakeLists.windows-x86_64.txt @@ -13,6 +13,7 @@ target_compile_options(ydb-library-yql-minikql-ut PRIVATE ) target_include_directories(ydb-library-yql-minikql-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include ) target_link_libraries(ydb-library-yql-minikql-ut PUBLIC contrib-libs-cxxsupp @@ -21,7 +22,7 @@ target_link_libraries(ydb-library-yql-minikql-ut PUBLIC cpp-testing-unittest_main library-yql-minikql libs-apache-arrow - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-parser-pg_wrapper udf-service-exception_policy ) @@ -66,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/lexer_common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/lexer_common/CMakeLists.darwin-arm64.txt index 89fc8b0b018c..cc571c89b6a1 100644 --- a/ydb/library/yql/parser/lexer_common/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/parser/lexer_common/CMakeLists.darwin-arm64.txt @@ -15,6 +15,9 @@ target_link_libraries(yql-parser-lexer_common PUBLIC yql-public-issue ) target_sources(yql-parser-lexer_common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/lexer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/hints.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/parse_hints_impl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/tokens.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/hints.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/parse_hints_impl.cpp diff --git a/ydb/library/yql/parser/lexer_common/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/lexer_common/CMakeLists.darwin-x86_64.txt index 89fc8b0b018c..cc571c89b6a1 100644 --- a/ydb/library/yql/parser/lexer_common/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/parser/lexer_common/CMakeLists.darwin-x86_64.txt @@ -15,6 +15,9 @@ target_link_libraries(yql-parser-lexer_common PUBLIC yql-public-issue ) target_sources(yql-parser-lexer_common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/lexer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/hints.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/parse_hints_impl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/tokens.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/hints.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/parse_hints_impl.cpp diff --git a/ydb/library/yql/parser/lexer_common/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/lexer_common/CMakeLists.linux-aarch64.txt index 040e95b049d3..90a68c772152 100644 --- a/ydb/library/yql/parser/lexer_common/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/parser/lexer_common/CMakeLists.linux-aarch64.txt @@ -16,6 +16,9 @@ target_link_libraries(yql-parser-lexer_common PUBLIC yql-public-issue ) target_sources(yql-parser-lexer_common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/lexer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/hints.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/parse_hints_impl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/tokens.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/hints.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/parse_hints_impl.cpp diff --git a/ydb/library/yql/parser/lexer_common/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/lexer_common/CMakeLists.linux-x86_64.txt index 040e95b049d3..90a68c772152 100644 --- a/ydb/library/yql/parser/lexer_common/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/parser/lexer_common/CMakeLists.linux-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(yql-parser-lexer_common PUBLIC yql-public-issue ) target_sources(yql-parser-lexer_common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/lexer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/hints.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/parse_hints_impl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/tokens.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/hints.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/parse_hints_impl.cpp diff --git a/ydb/library/yql/parser/lexer_common/CMakeLists.windows-x86_64.txt b/ydb/library/yql/parser/lexer_common/CMakeLists.windows-x86_64.txt index 89fc8b0b018c..cc571c89b6a1 100644 --- a/ydb/library/yql/parser/lexer_common/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/parser/lexer_common/CMakeLists.windows-x86_64.txt @@ -15,6 +15,9 @@ target_link_libraries(yql-parser-lexer_common PUBLIC yql-public-issue ) target_sources(yql-parser-lexer_common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/lexer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/hints.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/parse_hints_impl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/tokens.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/hints.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/parse_hints_impl.cpp diff --git a/ydb/library/yql/parser/lexer_common/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/lexer_common/ut/CMakeLists.darwin-arm64.txt index f16895e70ac8..0005903c5b7f 100644 --- a/ydb/library/yql/parser/lexer_common/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/parser/lexer_common/ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-yql-parser-lexer_common-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-parser-lexer_common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/ut/hints_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/lexer_common/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/lexer_common/ut/CMakeLists.darwin-x86_64.txt index fc5a41418527..8f30881aad7b 100644 --- a/ydb/library/yql/parser/lexer_common/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/parser/lexer_common/ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-library-yql-parser-lexer_common-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-parser-lexer_common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/ut/hints_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/lexer_common/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/lexer_common/ut/CMakeLists.linux-aarch64.txt index d99f3e4b38ec..0e73b99c687c 100644 --- a/ydb/library/yql/parser/lexer_common/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/parser/lexer_common/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-parser-lexer_common-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-parser-lexer_common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/ut/hints_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/lexer_common/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/lexer_common/ut/CMakeLists.linux-x86_64.txt index d6ae73273e4b..aa7406c9f715 100644 --- a/ydb/library/yql/parser/lexer_common/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/parser/lexer_common/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-library-yql-parser-lexer_common-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-parser-lexer_common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/lexer_common/ut/hints_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/lexer_common/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/parser/lexer_common/ut/CMakeLists.windows-x86_64.txt index 8a89d0c83a8a..219ee3c4f5d3 100644 --- a/ydb/library/yql/parser/lexer_common/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/parser/lexer_common/ut/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/pg_catalog/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/pg_catalog/CMakeLists.darwin-arm64.txt index 91bb11a41946..ed68ccdc1e70 100644 --- a/ydb/library/yql/parser/pg_catalog/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/parser/pg_catalog/CMakeLists.darwin-arm64.txt @@ -67,6 +67,12 @@ get_built_tool_path( tools/rescompiler/bin rescompiler ) +get_built_tool_path( + TOOL_rescompiler_bin + TOOL_rescompiler_dependency + tools/rescompiler/bin + rescompiler +) add_library(yql-parser-pg_catalog) target_link_libraries(yql-parser-pg_catalog PUBLIC @@ -96,6 +102,7 @@ target_sources(yql-parser-pg_catalog.global PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/69148841cb58a458173a42fc4a2d34a5.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/ec0b500b671e1ef6896201d71c27c3a9.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/35d2aa467812d7360a78c1fae061c821.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/c5119519d22b2b93be0e714cfac07bca.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/d248668b32b6a4d36f76898f91cda187.cpp ) resources(yql-parser-pg_catalog.global @@ -161,6 +168,13 @@ resources(yql-parser-pg_catalog.global KEYS pg_amop.dat ) +resources(yql-parser-pg_catalog.global + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/c5119519d22b2b93be0e714cfac07bca.cpp + INPUTS + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include/catalog/pg_am.dat + KEYS + pg_am.dat +) resources(yql-parser-pg_catalog.global ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/d248668b32b6a4d36f76898f91cda187.cpp INPUTS diff --git a/ydb/library/yql/parser/pg_catalog/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/pg_catalog/CMakeLists.darwin-x86_64.txt index 91bb11a41946..ed68ccdc1e70 100644 --- a/ydb/library/yql/parser/pg_catalog/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/parser/pg_catalog/CMakeLists.darwin-x86_64.txt @@ -67,6 +67,12 @@ get_built_tool_path( tools/rescompiler/bin rescompiler ) +get_built_tool_path( + TOOL_rescompiler_bin + TOOL_rescompiler_dependency + tools/rescompiler/bin + rescompiler +) add_library(yql-parser-pg_catalog) target_link_libraries(yql-parser-pg_catalog PUBLIC @@ -96,6 +102,7 @@ target_sources(yql-parser-pg_catalog.global PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/69148841cb58a458173a42fc4a2d34a5.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/ec0b500b671e1ef6896201d71c27c3a9.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/35d2aa467812d7360a78c1fae061c821.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/c5119519d22b2b93be0e714cfac07bca.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/d248668b32b6a4d36f76898f91cda187.cpp ) resources(yql-parser-pg_catalog.global @@ -161,6 +168,13 @@ resources(yql-parser-pg_catalog.global KEYS pg_amop.dat ) +resources(yql-parser-pg_catalog.global + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/c5119519d22b2b93be0e714cfac07bca.cpp + INPUTS + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include/catalog/pg_am.dat + KEYS + pg_am.dat +) resources(yql-parser-pg_catalog.global ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/d248668b32b6a4d36f76898f91cda187.cpp INPUTS diff --git a/ydb/library/yql/parser/pg_catalog/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/pg_catalog/CMakeLists.linux-aarch64.txt index e420ebda1c46..707d1008f38a 100644 --- a/ydb/library/yql/parser/pg_catalog/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/parser/pg_catalog/CMakeLists.linux-aarch64.txt @@ -67,6 +67,12 @@ get_built_tool_path( tools/rescompiler/bin rescompiler ) +get_built_tool_path( + TOOL_rescompiler_bin + TOOL_rescompiler_dependency + tools/rescompiler/bin + rescompiler +) add_library(yql-parser-pg_catalog) target_link_libraries(yql-parser-pg_catalog PUBLIC @@ -98,6 +104,7 @@ target_sources(yql-parser-pg_catalog.global PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/69148841cb58a458173a42fc4a2d34a5.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/ec0b500b671e1ef6896201d71c27c3a9.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/35d2aa467812d7360a78c1fae061c821.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/c5119519d22b2b93be0e714cfac07bca.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/d248668b32b6a4d36f76898f91cda187.cpp ) resources(yql-parser-pg_catalog.global @@ -163,6 +170,13 @@ resources(yql-parser-pg_catalog.global KEYS pg_amop.dat ) +resources(yql-parser-pg_catalog.global + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/c5119519d22b2b93be0e714cfac07bca.cpp + INPUTS + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include/catalog/pg_am.dat + KEYS + pg_am.dat +) resources(yql-parser-pg_catalog.global ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/d248668b32b6a4d36f76898f91cda187.cpp INPUTS diff --git a/ydb/library/yql/parser/pg_catalog/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/pg_catalog/CMakeLists.linux-x86_64.txt index e420ebda1c46..707d1008f38a 100644 --- a/ydb/library/yql/parser/pg_catalog/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/parser/pg_catalog/CMakeLists.linux-x86_64.txt @@ -67,6 +67,12 @@ get_built_tool_path( tools/rescompiler/bin rescompiler ) +get_built_tool_path( + TOOL_rescompiler_bin + TOOL_rescompiler_dependency + tools/rescompiler/bin + rescompiler +) add_library(yql-parser-pg_catalog) target_link_libraries(yql-parser-pg_catalog PUBLIC @@ -98,6 +104,7 @@ target_sources(yql-parser-pg_catalog.global PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/69148841cb58a458173a42fc4a2d34a5.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/ec0b500b671e1ef6896201d71c27c3a9.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/35d2aa467812d7360a78c1fae061c821.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/c5119519d22b2b93be0e714cfac07bca.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/d248668b32b6a4d36f76898f91cda187.cpp ) resources(yql-parser-pg_catalog.global @@ -163,6 +170,13 @@ resources(yql-parser-pg_catalog.global KEYS pg_amop.dat ) +resources(yql-parser-pg_catalog.global + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/c5119519d22b2b93be0e714cfac07bca.cpp + INPUTS + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include/catalog/pg_am.dat + KEYS + pg_am.dat +) resources(yql-parser-pg_catalog.global ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/d248668b32b6a4d36f76898f91cda187.cpp INPUTS diff --git a/ydb/library/yql/parser/pg_catalog/CMakeLists.windows-x86_64.txt b/ydb/library/yql/parser/pg_catalog/CMakeLists.windows-x86_64.txt index 91bb11a41946..ed68ccdc1e70 100644 --- a/ydb/library/yql/parser/pg_catalog/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/parser/pg_catalog/CMakeLists.windows-x86_64.txt @@ -67,6 +67,12 @@ get_built_tool_path( tools/rescompiler/bin rescompiler ) +get_built_tool_path( + TOOL_rescompiler_bin + TOOL_rescompiler_dependency + tools/rescompiler/bin + rescompiler +) add_library(yql-parser-pg_catalog) target_link_libraries(yql-parser-pg_catalog PUBLIC @@ -96,6 +102,7 @@ target_sources(yql-parser-pg_catalog.global PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/69148841cb58a458173a42fc4a2d34a5.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/ec0b500b671e1ef6896201d71c27c3a9.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/35d2aa467812d7360a78c1fae061c821.cpp + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/c5119519d22b2b93be0e714cfac07bca.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/d248668b32b6a4d36f76898f91cda187.cpp ) resources(yql-parser-pg_catalog.global @@ -161,6 +168,13 @@ resources(yql-parser-pg_catalog.global KEYS pg_amop.dat ) +resources(yql-parser-pg_catalog.global + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/c5119519d22b2b93be0e714cfac07bca.cpp + INPUTS + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include/catalog/pg_am.dat + KEYS + pg_am.dat +) resources(yql-parser-pg_catalog.global ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_catalog/d248668b32b6a4d36f76898f91cda187.cpp INPUTS diff --git a/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.darwin-arm64.txt index 130c8e86f85f..108d2610f86c 100644 --- a/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.darwin-arm64.txt @@ -22,15 +22,13 @@ target_link_libraries(ydb-library-yql-parser-pg_catalog-ut PUBLIC yql-parser-pg_catalog yql-public-udf udf-service-exception_policy - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-parser-pg_wrapper ) target_link_options(ydb-library-yql-parser-pg_catalog-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-parser-pg_catalog-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_catalog/ut/catalog_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.darwin-x86_64.txt index 11b691ab52f5..7189443ba67e 100644 --- a/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.darwin-x86_64.txt @@ -23,15 +23,13 @@ target_link_libraries(ydb-library-yql-parser-pg_catalog-ut PUBLIC yql-parser-pg_catalog yql-public-udf udf-service-exception_policy - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-parser-pg_wrapper ) target_link_options(ydb-library-yql-parser-pg_catalog-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-parser-pg_catalog-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_catalog/ut/catalog_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.linux-aarch64.txt index 74f201330ac0..2e25c5491c90 100644 --- a/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.linux-aarch64.txt @@ -23,7 +23,7 @@ target_link_libraries(ydb-library-yql-parser-pg_catalog-ut PUBLIC yql-parser-pg_catalog yql-public-udf udf-service-exception_policy - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-parser-pg_wrapper ) target_link_options(ydb-library-yql-parser-pg_catalog-ut PRIVATE @@ -32,9 +32,6 @@ target_link_options(ydb-library-yql-parser-pg_catalog-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-parser-pg_catalog-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_catalog/ut/catalog_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.linux-x86_64.txt index c1c1a96f2f51..0b507137f265 100644 --- a/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.linux-x86_64.txt @@ -24,7 +24,7 @@ target_link_libraries(ydb-library-yql-parser-pg_catalog-ut PUBLIC yql-parser-pg_catalog yql-public-udf udf-service-exception_policy - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-parser-pg_wrapper ) target_link_options(ydb-library-yql-parser-pg_catalog-ut PRIVATE @@ -33,9 +33,6 @@ target_link_options(ydb-library-yql-parser-pg_catalog-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-parser-pg_catalog-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_catalog/ut/catalog_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.windows-x86_64.txt index d18edca2dfc7..2735fa1a2147 100644 --- a/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/parser/pg_catalog/ut/CMakeLists.windows-x86_64.txt @@ -23,7 +23,7 @@ target_link_libraries(ydb-library-yql-parser-pg_catalog-ut PUBLIC yql-parser-pg_catalog yql-public-udf udf-service-exception_policy - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-parser-pg_wrapper ) target_sources(ydb-library-yql-parser-pg_catalog-ut PRIVATE @@ -55,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-arm64.txt index 5a899080ef8e..ad648fb34267 100644 --- a/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-arm64.txt @@ -22,11 +22,13 @@ target_compile_options(yql-parser-pg_wrapper PRIVATE -Wno-duplicate-decl-specifier -Wno-unused-function -Wno-unused-variable + -Wno-unused-but-set-variable -Wno-unused-private-field -Wno-register -Wno-unguarded-availability-new -Wno-int-conversion -Wno-deprecated-declarations + -Wno-null-pointer-subtraction -Darray_length=yql_array_length -Dpg_encoding_max_length=yql_pg_encoding_max_length -Dpg_encoding_mblen=yql_pg_encoding_mblen @@ -107,8 +109,8 @@ target_compile_options(yql-parser-pg_wrapper PRIVATE -Dpg_hmac_init=yql_pg_hmac_init -Dpg_hmac_create=yql_pg_hmac_create -Dpg_pwritev_with_retry=yql_pg_pwritev_with_retry + -DMKQL_DISABLE_CODEGEN -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> ) target_include_directories(yql-parser-pg_wrapper PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/lz4 @@ -130,8 +132,9 @@ target_link_libraries(yql-parser-pg_wrapper PUBLIC library-cpp-yson library-yql-core yql-minikql-arrow - minikql-computation-llvm + yql-minikql-computation yql-parser-pg_catalog + parser-pg_wrapper-interface providers-common-codec yql-public-issue yql-public-udf @@ -157,6 +160,7 @@ target_sources(yql-parser-pg_wrapper PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/config.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/cost_mocks.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/syscache.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_utils_wrappers.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin.c ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin_bloom.c ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin_inclusion.c @@ -932,27 +936,3 @@ target_sources(yql-parser-pg_wrapper PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/port/posix_sema.c ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/port/sysv_shmem.c ) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.py - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.py -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.sh -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/generate_kernels.py - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/generate_kernels.py -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/generate_patch.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/generate_patch.sh -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/vars.txt - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/vars.txt -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/verify.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/verify.sh -) diff --git a/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-x86_64.txt index d5515f04cc94..42a7d5bc6fb8 100644 --- a/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/parser/pg_wrapper/CMakeLists.darwin-x86_64.txt @@ -24,11 +24,13 @@ target_compile_options(yql-parser-pg_wrapper PRIVATE -Wno-duplicate-decl-specifier -Wno-unused-function -Wno-unused-variable + -Wno-unused-but-set-variable -Wno-unused-private-field -Wno-register -Wno-unguarded-availability-new -Wno-int-conversion -Wno-deprecated-declarations + -Wno-null-pointer-subtraction -Darray_length=yql_array_length -Dpg_encoding_max_length=yql_pg_encoding_max_length -Dpg_encoding_mblen=yql_pg_encoding_mblen @@ -109,8 +111,8 @@ target_compile_options(yql-parser-pg_wrapper PRIVATE -Dpg_hmac_init=yql_pg_hmac_init -Dpg_hmac_create=yql_pg_hmac_create -Dpg_pwritev_with_retry=yql_pg_pwritev_with_retry + -DMKQL_DISABLE_CODEGEN -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> ) target_include_directories(yql-parser-pg_wrapper PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/lz4 @@ -132,8 +134,9 @@ target_link_libraries(yql-parser-pg_wrapper PUBLIC library-cpp-yson library-yql-core yql-minikql-arrow - minikql-computation-llvm + yql-minikql-computation yql-parser-pg_catalog + parser-pg_wrapper-interface providers-common-codec yql-public-issue yql-public-udf @@ -159,6 +162,7 @@ target_sources(yql-parser-pg_wrapper PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/config.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/cost_mocks.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/syscache.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_utils_wrappers.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/pg_crc32c_sse42.c ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/pg_crc32c_sse42_choose.c ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin.c @@ -936,27 +940,3 @@ target_sources(yql-parser-pg_wrapper PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/port/posix_sema.c ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/port/sysv_shmem.c ) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.py - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.py -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.sh -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/generate_kernels.py - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/generate_kernels.py -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/generate_patch.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/generate_patch.sh -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/vars.txt - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/vars.txt -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/verify.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/verify.sh -) diff --git a/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-aarch64.txt index f877af81e35c..574f528202d0 100644 --- a/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-aarch64.txt @@ -22,11 +22,13 @@ target_compile_options(yql-parser-pg_wrapper PRIVATE -Wno-duplicate-decl-specifier -Wno-unused-function -Wno-unused-variable + -Wno-unused-but-set-variable -Wno-unused-private-field -Wno-register -Wno-unguarded-availability-new -Wno-int-conversion -Wno-deprecated-declarations + -Wno-null-pointer-subtraction -Darray_length=yql_array_length -Dpg_encoding_max_length=yql_pg_encoding_max_length -Dpg_encoding_mblen=yql_pg_encoding_mblen @@ -107,8 +109,8 @@ target_compile_options(yql-parser-pg_wrapper PRIVATE -Dpg_hmac_init=yql_pg_hmac_init -Dpg_hmac_create=yql_pg_hmac_create -Dpg_pwritev_with_retry=yql_pg_pwritev_with_retry + -DMKQL_DISABLE_CODEGEN -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> ) target_include_directories(yql-parser-pg_wrapper PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/lz4 @@ -131,8 +133,9 @@ target_link_libraries(yql-parser-pg_wrapper PUBLIC library-cpp-yson library-yql-core yql-minikql-arrow - minikql-computation-llvm + yql-minikql-computation yql-parser-pg_catalog + parser-pg_wrapper-interface providers-common-codec yql-public-issue yql-public-udf @@ -158,6 +161,7 @@ target_sources(yql-parser-pg_wrapper PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/config.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/cost_mocks.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/syscache.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_utils_wrappers.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin.c ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin_bloom.c ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin_inclusion.c @@ -933,27 +937,3 @@ target_sources(yql-parser-pg_wrapper PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/port/posix_sema.c ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/port/sysv_shmem.c ) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.py - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.py -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.sh -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/generate_kernels.py - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/generate_kernels.py -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/generate_patch.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/generate_patch.sh -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/vars.txt - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/vars.txt -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/verify.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/verify.sh -) diff --git a/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-x86_64.txt index 5e4926b67db6..a746c07ed3d8 100644 --- a/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/parser/pg_wrapper/CMakeLists.linux-x86_64.txt @@ -24,11 +24,13 @@ target_compile_options(yql-parser-pg_wrapper PRIVATE -Wno-duplicate-decl-specifier -Wno-unused-function -Wno-unused-variable + -Wno-unused-but-set-variable -Wno-unused-private-field -Wno-register -Wno-unguarded-availability-new -Wno-int-conversion -Wno-deprecated-declarations + -Wno-null-pointer-subtraction -Darray_length=yql_array_length -Dpg_encoding_max_length=yql_pg_encoding_max_length -Dpg_encoding_mblen=yql_pg_encoding_mblen @@ -109,8 +111,8 @@ target_compile_options(yql-parser-pg_wrapper PRIVATE -Dpg_hmac_init=yql_pg_hmac_init -Dpg_hmac_create=yql_pg_hmac_create -Dpg_pwritev_with_retry=yql_pg_pwritev_with_retry + -DMKQL_DISABLE_CODEGEN -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> ) target_include_directories(yql-parser-pg_wrapper PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/lz4 @@ -133,8 +135,9 @@ target_link_libraries(yql-parser-pg_wrapper PUBLIC library-cpp-yson library-yql-core yql-minikql-arrow - minikql-computation-llvm + yql-minikql-computation yql-parser-pg_catalog + parser-pg_wrapper-interface providers-common-codec yql-public-issue yql-public-udf @@ -160,6 +163,7 @@ target_sources(yql-parser-pg_wrapper PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/config.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/cost_mocks.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/syscache.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_utils_wrappers.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/pg_crc32c_sse42.c ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/pg_crc32c_sse42_choose.c ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin.c @@ -937,27 +941,3 @@ target_sources(yql-parser-pg_wrapper PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/port/posix_sema.c ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/port/sysv_shmem.c ) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.py - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.py -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.sh -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/generate_kernels.py - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/generate_kernels.py -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/generate_patch.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/generate_patch.sh -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/vars.txt - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/vars.txt -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/verify.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/verify.sh -) diff --git a/ydb/library/yql/parser/pg_wrapper/CMakeLists.windows-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/CMakeLists.windows-x86_64.txt index 9cd9246e9aff..0d0c5c6044bc 100644 --- a/ydb/library/yql/parser/pg_wrapper/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/parser/pg_wrapper/CMakeLists.windows-x86_64.txt @@ -24,11 +24,13 @@ target_compile_options(yql-parser-pg_wrapper PRIVATE -Wno-duplicate-decl-specifier -Wno-unused-function -Wno-unused-variable + -Wno-unused-but-set-variable -Wno-unused-private-field -Wno-register -Wno-unguarded-availability-new -Wno-int-conversion -Wno-deprecated-declarations + -Wno-null-pointer-subtraction -D__thread=__declspec(thread) -Dfstat=microsoft_native_fstat -Dstat=microsoft_native_stat @@ -121,8 +123,8 @@ target_compile_options(yql-parser-pg_wrapper PRIVATE -Dpg_hmac_init=yql_pg_hmac_init -Dpg_hmac_create=yql_pg_hmac_create -Dpg_pwritev_with_retry=yql_pg_pwritev_with_retry + -DMKQL_DISABLE_CODEGEN -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> ) target_include_directories(yql-parser-pg_wrapper PRIVATE ${CMAKE_SOURCE_DIR}/contrib/libs/lz4 @@ -146,8 +148,9 @@ target_link_libraries(yql-parser-pg_wrapper PUBLIC library-cpp-yson library-yql-core yql-minikql-arrow - minikql-computation-llvm + yql-minikql-computation yql-parser-pg_catalog + parser-pg_wrapper-interface providers-common-codec yql-public-issue yql-public-udf @@ -173,6 +176,7 @@ target_sources(yql-parser-pg_wrapper PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/config.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/cost_mocks.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/syscache.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/pg_utils_wrappers.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/pg_crc32c_sse42.c ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/pg_crc32c_sse42_choose.c ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/backend/access/brin/brin.c @@ -975,27 +979,3 @@ target_sources(yql-parser-pg_wrapper PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/win32setlocale.c ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/port/win32stat.c ) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.py - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.py -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/copy_src.sh -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/generate_kernels.py - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/generate_kernels.py -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/generate_patch.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/generate_patch.sh -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/vars.txt - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/vars.txt -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/verify.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/pg_wrapper/verify.sh -) diff --git a/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.darwin-arm64.txt index 334631913420..f11c05c58ed0 100644 --- a/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.darwin-arm64.txt @@ -20,5 +20,14 @@ target_link_libraries(parser-pg_wrapper-interface PUBLIC yql-core-cbo ) target_sources(parser-pg_wrapper-interface PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/codec.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/compare.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/comp_factory.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/context.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/interface.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/pack.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/parser.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/type_desc.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/utils.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/interface.cpp ) diff --git a/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.darwin-x86_64.txt index 334631913420..f11c05c58ed0 100644 --- a/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.darwin-x86_64.txt @@ -20,5 +20,14 @@ target_link_libraries(parser-pg_wrapper-interface PUBLIC yql-core-cbo ) target_sources(parser-pg_wrapper-interface PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/codec.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/compare.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/comp_factory.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/context.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/interface.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/pack.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/parser.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/type_desc.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/utils.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/interface.cpp ) diff --git a/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.linux-aarch64.txt index c3d59ce35c8a..a7585600267c 100644 --- a/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.linux-aarch64.txt @@ -21,5 +21,14 @@ target_link_libraries(parser-pg_wrapper-interface PUBLIC yql-core-cbo ) target_sources(parser-pg_wrapper-interface PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/codec.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/compare.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/comp_factory.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/context.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/interface.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/pack.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/parser.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/type_desc.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/utils.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/interface.cpp ) diff --git a/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.linux-x86_64.txt index c3d59ce35c8a..a7585600267c 100644 --- a/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.linux-x86_64.txt @@ -21,5 +21,14 @@ target_link_libraries(parser-pg_wrapper-interface PUBLIC yql-core-cbo ) target_sources(parser-pg_wrapper-interface PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/codec.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/compare.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/comp_factory.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/context.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/interface.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/pack.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/parser.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/type_desc.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/utils.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/interface.cpp ) diff --git a/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.windows-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.windows-x86_64.txt index 334631913420..f11c05c58ed0 100644 --- a/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/parser/pg_wrapper/interface/CMakeLists.windows-x86_64.txt @@ -20,5 +20,14 @@ target_link_libraries(parser-pg_wrapper-interface PUBLIC yql-core-cbo ) target_sources(parser-pg_wrapper-interface PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/codec.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/compare.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/comp_factory.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/context.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/interface.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/pack.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/parser.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/type_desc.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/utils.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/interface/interface.cpp ) diff --git a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-arm64.txt index 5512b71aec2e..80786ac229cd 100644 --- a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-arm64.txt @@ -19,11 +19,13 @@ target_compile_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE -Wno-duplicate-decl-specifier -Wno-unused-function -Wno-unused-variable + -Wno-unused-but-set-variable -Wno-unused-private-field -Wno-register -Wno-unguarded-availability-new -Wno-int-conversion -Wno-deprecated-declarations + -Wno-null-pointer-subtraction -Darray_length=yql_array_length -Dpg_encoding_max_length=yql_pg_encoding_max_length -Dpg_encoding_mblen=yql_pg_encoding_mblen @@ -105,7 +107,6 @@ target_compile_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE -Dpg_hmac_create=yql_pg_hmac_create -Dpg_pwritev_with_retry=yql_pg_pwritev_with_retry -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> ) target_include_directories(ydb-library-yql-parser-pg_wrapper-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper @@ -119,19 +120,18 @@ target_link_libraries(ydb-library-yql-parser-pg_wrapper-ut PUBLIC yql-minikql-arrow yql-public-udf udf-service-exception_policy - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-parser-pg_catalog - yql-minikql-codegen + minikql-codegen-llvm14 library-cpp-resource ) target_link_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-parser-pg_wrapper-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/arrow_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/codegen_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/error_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/parser_ut.cpp @@ -164,6 +164,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-x86_64.txt index 9e8faf6346f0..071d0e65e664 100644 --- a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-x86_64.txt @@ -19,11 +19,13 @@ target_compile_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE -Wno-duplicate-decl-specifier -Wno-unused-function -Wno-unused-variable + -Wno-unused-but-set-variable -Wno-unused-private-field -Wno-register -Wno-unguarded-availability-new -Wno-int-conversion -Wno-deprecated-declarations + -Wno-null-pointer-subtraction -Darray_length=yql_array_length -Dpg_encoding_max_length=yql_pg_encoding_max_length -Dpg_encoding_mblen=yql_pg_encoding_mblen @@ -105,7 +107,6 @@ target_compile_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE -Dpg_hmac_create=yql_pg_hmac_create -Dpg_pwritev_with_retry=yql_pg_pwritev_with_retry -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> ) target_include_directories(ydb-library-yql-parser-pg_wrapper-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper @@ -120,19 +121,18 @@ target_link_libraries(ydb-library-yql-parser-pg_wrapper-ut PUBLIC yql-minikql-arrow yql-public-udf udf-service-exception_policy - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-parser-pg_catalog - yql-minikql-codegen + minikql-codegen-llvm14 library-cpp-resource ) target_link_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-parser-pg_wrapper-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/arrow_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/codegen_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/error_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/parser_ut.cpp @@ -165,6 +165,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-aarch64.txt index d87d2c915def..c5d09b265513 100644 --- a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-aarch64.txt @@ -19,11 +19,13 @@ target_compile_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE -Wno-duplicate-decl-specifier -Wno-unused-function -Wno-unused-variable + -Wno-unused-but-set-variable -Wno-unused-private-field -Wno-register -Wno-unguarded-availability-new -Wno-int-conversion -Wno-deprecated-declarations + -Wno-null-pointer-subtraction -Darray_length=yql_array_length -Dpg_encoding_max_length=yql_pg_encoding_max_length -Dpg_encoding_mblen=yql_pg_encoding_mblen @@ -105,7 +107,6 @@ target_compile_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE -Dpg_hmac_create=yql_pg_hmac_create -Dpg_pwritev_with_retry=yql_pg_pwritev_with_retry -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> ) target_include_directories(ydb-library-yql-parser-pg_wrapper-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper @@ -120,9 +121,9 @@ target_link_libraries(ydb-library-yql-parser-pg_wrapper-ut PUBLIC yql-minikql-arrow yql-public-udf udf-service-exception_policy - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-parser-pg_catalog - yql-minikql-codegen + minikql-codegen-llvm14 library-cpp-resource ) target_link_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE @@ -131,11 +132,9 @@ target_link_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-parser-pg_wrapper-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/arrow_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/codegen_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/error_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/parser_ut.cpp @@ -168,6 +167,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-x86_64.txt index 5388972443f3..749378a7f975 100644 --- a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-x86_64.txt @@ -19,11 +19,13 @@ target_compile_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE -Wno-duplicate-decl-specifier -Wno-unused-function -Wno-unused-variable + -Wno-unused-but-set-variable -Wno-unused-private-field -Wno-register -Wno-unguarded-availability-new -Wno-int-conversion -Wno-deprecated-declarations + -Wno-null-pointer-subtraction -Darray_length=yql_array_length -Dpg_encoding_max_length=yql_pg_encoding_max_length -Dpg_encoding_mblen=yql_pg_encoding_mblen @@ -105,7 +107,6 @@ target_compile_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE -Dpg_hmac_create=yql_pg_hmac_create -Dpg_pwritev_with_retry=yql_pg_pwritev_with_retry -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> ) target_include_directories(ydb-library-yql-parser-pg_wrapper-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper @@ -121,9 +122,9 @@ target_link_libraries(ydb-library-yql-parser-pg_wrapper-ut PUBLIC yql-minikql-arrow yql-public-udf udf-service-exception_policy - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-parser-pg_catalog - yql-minikql-codegen + minikql-codegen-llvm14 library-cpp-resource ) target_link_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE @@ -132,11 +133,9 @@ target_link_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-parser-pg_wrapper-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/arrow_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/codegen_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/error_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/parser_ut.cpp @@ -169,6 +168,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.windows-x86_64.txt index cd5941ee35c2..833ce1d340f5 100644 --- a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.windows-x86_64.txt @@ -19,11 +19,13 @@ target_compile_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE -Wno-duplicate-decl-specifier -Wno-unused-function -Wno-unused-variable + -Wno-unused-but-set-variable -Wno-unused-private-field -Wno-register -Wno-unguarded-availability-new -Wno-int-conversion -Wno-deprecated-declarations + -Wno-null-pointer-subtraction -D__thread=__declspec(thread) -Dfstat=microsoft_native_fstat -Dstat=microsoft_native_stat @@ -117,7 +119,6 @@ target_compile_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE -Dpg_hmac_create=yql_pg_hmac_create -Dpg_pwritev_with_retry=yql_pg_pwritev_with_retry -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> ) target_include_directories(ydb-library-yql-parser-pg_wrapper-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper @@ -132,12 +133,13 @@ target_link_libraries(ydb-library-yql-parser-pg_wrapper-ut PUBLIC yql-minikql-arrow yql-public-udf udf-service-exception_policy - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 yql-parser-pg_catalog - yql-minikql-codegen + minikql-codegen-llvm14 library-cpp-resource ) target_sources(ydb-library-yql-parser-pg_wrapper-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/arrow_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/codegen_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/error_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/parser_ut.cpp @@ -170,6 +172,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.darwin-arm64.txt index a818d5398bf8..65e9a2c7f082 100644 --- a/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.darwin-arm64.txt @@ -14,3 +14,6 @@ target_link_libraries(parser-proto_ast-collect_issues INTERFACE yql-public-issue yql-parser-proto_ast ) +target_sources(parser-proto_ast-collect_issues INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/collect_issues/collect_issues.h +) diff --git a/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.darwin-x86_64.txt index a818d5398bf8..65e9a2c7f082 100644 --- a/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.darwin-x86_64.txt @@ -14,3 +14,6 @@ target_link_libraries(parser-proto_ast-collect_issues INTERFACE yql-public-issue yql-parser-proto_ast ) +target_sources(parser-proto_ast-collect_issues INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/collect_issues/collect_issues.h +) diff --git a/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.linux-aarch64.txt index 05d0648d8179..e7ae7565233e 100644 --- a/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.linux-aarch64.txt @@ -15,3 +15,6 @@ target_link_libraries(parser-proto_ast-collect_issues INTERFACE yql-public-issue yql-parser-proto_ast ) +target_sources(parser-proto_ast-collect_issues INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/collect_issues/collect_issues.h +) diff --git a/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.linux-x86_64.txt index 05d0648d8179..e7ae7565233e 100644 --- a/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.linux-x86_64.txt @@ -15,3 +15,6 @@ target_link_libraries(parser-proto_ast-collect_issues INTERFACE yql-public-issue yql-parser-proto_ast ) +target_sources(parser-proto_ast-collect_issues INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/collect_issues/collect_issues.h +) diff --git a/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.windows-x86_64.txt b/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.windows-x86_64.txt index a818d5398bf8..65e9a2c7f082 100644 --- a/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/parser/proto_ast/collect_issues/CMakeLists.windows-x86_64.txt @@ -14,3 +14,6 @@ target_link_libraries(parser-proto_ast-collect_issues INTERFACE yql-public-issue yql-parser-proto_ast ) +target_sources(parser-proto_ast-collect_issues INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/collect_issues/collect_issues.h +) diff --git a/ydb/library/yql/parser/proto_ast/gen/CMakeLists.txt b/ydb/library/yql/parser/proto_ast/gen/CMakeLists.txt index 060018279708..c7d24086aa61 100644 --- a/ydb/library/yql/parser/proto_ast/gen/CMakeLists.txt +++ b/ydb/library/yql/parser/proto_ast/gen/CMakeLists.txt @@ -8,6 +8,7 @@ add_subdirectory(jsonpath) add_subdirectory(v0) +add_subdirectory(v0_proto_split) add_subdirectory(v1) add_subdirectory(v1_ansi) -add_subdirectory(v1_proto) +add_subdirectory(v1_proto_split) diff --git a/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.darwin-arm64.txt index 65d2f12e2ac0..c1a66b3e30ba 100644 --- a/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.darwin-arm64.txt @@ -34,6 +34,10 @@ set( PROTOBUF_HEADER_PATH ydb/library/yql/parser/proto_ast/gen/jsonpath ) +set( + PROTOBUF_SUFFIX_PATH + .pb.h +) add_library(proto_ast-gen-jsonpath) target_compile_options(proto_ast-gen-jsonpath PRIVATE @@ -52,6 +56,11 @@ target_proto_messages(proto_ast-gen-jsonpath PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.proto ) target_sources(proto_ast-gen-jsonpath PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/protobuf/protobuf.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathLexer.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.pb.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathLexer.cpp ) diff --git a/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.darwin-x86_64.txt index 65d2f12e2ac0..c1a66b3e30ba 100644 --- a/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.darwin-x86_64.txt @@ -34,6 +34,10 @@ set( PROTOBUF_HEADER_PATH ydb/library/yql/parser/proto_ast/gen/jsonpath ) +set( + PROTOBUF_SUFFIX_PATH + .pb.h +) add_library(proto_ast-gen-jsonpath) target_compile_options(proto_ast-gen-jsonpath PRIVATE @@ -52,6 +56,11 @@ target_proto_messages(proto_ast-gen-jsonpath PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.proto ) target_sources(proto_ast-gen-jsonpath PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/protobuf/protobuf.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathLexer.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.pb.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathLexer.cpp ) diff --git a/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.linux-aarch64.txt index 9b5df75f591a..7ad03356a577 100644 --- a/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.linux-aarch64.txt @@ -34,6 +34,10 @@ set( PROTOBUF_HEADER_PATH ydb/library/yql/parser/proto_ast/gen/jsonpath ) +set( + PROTOBUF_SUFFIX_PATH + .pb.h +) add_library(proto_ast-gen-jsonpath) target_compile_options(proto_ast-gen-jsonpath PRIVATE @@ -53,6 +57,11 @@ target_proto_messages(proto_ast-gen-jsonpath PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.proto ) target_sources(proto_ast-gen-jsonpath PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/protobuf/protobuf.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathLexer.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.pb.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathLexer.cpp ) diff --git a/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.linux-x86_64.txt index 9b5df75f591a..7ad03356a577 100644 --- a/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.linux-x86_64.txt @@ -34,6 +34,10 @@ set( PROTOBUF_HEADER_PATH ydb/library/yql/parser/proto_ast/gen/jsonpath ) +set( + PROTOBUF_SUFFIX_PATH + .pb.h +) add_library(proto_ast-gen-jsonpath) target_compile_options(proto_ast-gen-jsonpath PRIVATE @@ -53,6 +57,11 @@ target_proto_messages(proto_ast-gen-jsonpath PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.proto ) target_sources(proto_ast-gen-jsonpath PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/protobuf/protobuf.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathLexer.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.pb.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathLexer.cpp ) diff --git a/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.windows-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.windows-x86_64.txt index 65d2f12e2ac0..c1a66b3e30ba 100644 --- a/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/jsonpath/CMakeLists.windows-x86_64.txt @@ -34,6 +34,10 @@ set( PROTOBUF_HEADER_PATH ydb/library/yql/parser/proto_ast/gen/jsonpath ) +set( + PROTOBUF_SUFFIX_PATH + .pb.h +) add_library(proto_ast-gen-jsonpath) target_compile_options(proto_ast-gen-jsonpath PRIVATE @@ -52,6 +56,11 @@ target_proto_messages(proto_ast-gen-jsonpath PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.proto ) target_sources(proto_ast-gen-jsonpath PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/org/antlr/codegen/templates/protobuf/protobuf.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathLexer.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.pb.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathParser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/jsonpath/JsonPathLexer.cpp ) diff --git a/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.darwin-arm64.txt index e46562c7d878..c3f5da17435e 100644 --- a/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.darwin-arm64.txt @@ -6,22 +6,6 @@ # 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 -) -set( - ANTLR_PACKAGE_NAME - NSQLGenerated -) set( ANTLR_PACKAGE_NAME NSQLGenerated @@ -32,7 +16,11 @@ set( ) set( PROTOBUF_HEADER_PATH - ydb/library/yql/parser/proto_ast/gen/v0 + ydb/library/yql/parser/proto_ast/gen/v0_proto_split +) +set( + PROTOBUF_SUFFIX_PATH + .pb.main.h ) add_library(proto_ast-gen-v0) @@ -41,41 +29,19 @@ target_compile_options(proto_ast-gen-v0 PRIVATE ) target_include_directories(proto_ast-gen-v0 PUBLIC ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf ) target_link_libraries(proto_ast-gen-v0 PUBLIC contrib-libs-cxxsupp yutil - contrib-libs-protobuf -) -target_proto_messages(proto_ast-gen-v0 PRIVATE - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.proto + proto_ast-gen-v0_proto_split ) target_sources(proto_ast-gen-v0 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLLexer.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLLexer.cpp ) -run_antlr( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.proto - DEPENDS - ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf/protobuf.stg - WORKING_DIRECTORY - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0 - ANTLER_ARGS - ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g - -lib - . - -fo - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0 - -language - protobuf -) -configure_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf/protobuf.stg -) configure_file( ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/Cpp/Cpp.stg.in ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp/Cpp.stg @@ -98,16 +64,3 @@ run_antlr( -fo ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0 ) -target_proto_addincls(proto_ast-gen-v0 - ./ - ${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(proto_ast-gen-v0 - --cpp_out=${CMAKE_BINARY_DIR}/ - --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ -) diff --git a/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.darwin-x86_64.txt index e46562c7d878..c3f5da17435e 100644 --- a/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.darwin-x86_64.txt @@ -6,22 +6,6 @@ # 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 -) -set( - ANTLR_PACKAGE_NAME - NSQLGenerated -) set( ANTLR_PACKAGE_NAME NSQLGenerated @@ -32,7 +16,11 @@ set( ) set( PROTOBUF_HEADER_PATH - ydb/library/yql/parser/proto_ast/gen/v0 + ydb/library/yql/parser/proto_ast/gen/v0_proto_split +) +set( + PROTOBUF_SUFFIX_PATH + .pb.main.h ) add_library(proto_ast-gen-v0) @@ -41,41 +29,19 @@ target_compile_options(proto_ast-gen-v0 PRIVATE ) target_include_directories(proto_ast-gen-v0 PUBLIC ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf ) target_link_libraries(proto_ast-gen-v0 PUBLIC contrib-libs-cxxsupp yutil - contrib-libs-protobuf -) -target_proto_messages(proto_ast-gen-v0 PRIVATE - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.proto + proto_ast-gen-v0_proto_split ) target_sources(proto_ast-gen-v0 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLLexer.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLLexer.cpp ) -run_antlr( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.proto - DEPENDS - ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf/protobuf.stg - WORKING_DIRECTORY - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0 - ANTLER_ARGS - ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g - -lib - . - -fo - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0 - -language - protobuf -) -configure_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf/protobuf.stg -) configure_file( ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/Cpp/Cpp.stg.in ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp/Cpp.stg @@ -98,16 +64,3 @@ run_antlr( -fo ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0 ) -target_proto_addincls(proto_ast-gen-v0 - ./ - ${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(proto_ast-gen-v0 - --cpp_out=${CMAKE_BINARY_DIR}/ - --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ -) diff --git a/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.linux-aarch64.txt index 906f81b5e4e4..57db8114fa4d 100644 --- a/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.linux-aarch64.txt @@ -6,22 +6,6 @@ # 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 -) -set( - ANTLR_PACKAGE_NAME - NSQLGenerated -) set( ANTLR_PACKAGE_NAME NSQLGenerated @@ -32,7 +16,11 @@ set( ) set( PROTOBUF_HEADER_PATH - ydb/library/yql/parser/proto_ast/gen/v0 + ydb/library/yql/parser/proto_ast/gen/v0_proto_split +) +set( + PROTOBUF_SUFFIX_PATH + .pb.main.h ) add_library(proto_ast-gen-v0) @@ -41,42 +29,20 @@ target_compile_options(proto_ast-gen-v0 PRIVATE ) target_include_directories(proto_ast-gen-v0 PUBLIC ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf ) target_link_libraries(proto_ast-gen-v0 PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - contrib-libs-protobuf -) -target_proto_messages(proto_ast-gen-v0 PRIVATE - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.proto + proto_ast-gen-v0_proto_split ) target_sources(proto_ast-gen-v0 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLLexer.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLLexer.cpp ) -run_antlr( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.proto - DEPENDS - ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf/protobuf.stg - WORKING_DIRECTORY - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0 - ANTLER_ARGS - ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g - -lib - . - -fo - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0 - -language - protobuf -) -configure_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf/protobuf.stg -) configure_file( ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/Cpp/Cpp.stg.in ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp/Cpp.stg @@ -99,16 +65,3 @@ run_antlr( -fo ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0 ) -target_proto_addincls(proto_ast-gen-v0 - ./ - ${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(proto_ast-gen-v0 - --cpp_out=${CMAKE_BINARY_DIR}/ - --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ -) diff --git a/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.linux-x86_64.txt index 906f81b5e4e4..57db8114fa4d 100644 --- a/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.linux-x86_64.txt @@ -6,22 +6,6 @@ # 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 -) -set( - ANTLR_PACKAGE_NAME - NSQLGenerated -) set( ANTLR_PACKAGE_NAME NSQLGenerated @@ -32,7 +16,11 @@ set( ) set( PROTOBUF_HEADER_PATH - ydb/library/yql/parser/proto_ast/gen/v0 + ydb/library/yql/parser/proto_ast/gen/v0_proto_split +) +set( + PROTOBUF_SUFFIX_PATH + .pb.main.h ) add_library(proto_ast-gen-v0) @@ -41,42 +29,20 @@ target_compile_options(proto_ast-gen-v0 PRIVATE ) target_include_directories(proto_ast-gen-v0 PUBLIC ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf ) target_link_libraries(proto_ast-gen-v0 PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - contrib-libs-protobuf -) -target_proto_messages(proto_ast-gen-v0 PRIVATE - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.proto + proto_ast-gen-v0_proto_split ) target_sources(proto_ast-gen-v0 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLLexer.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLLexer.cpp ) -run_antlr( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.proto - DEPENDS - ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf/protobuf.stg - WORKING_DIRECTORY - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0 - ANTLER_ARGS - ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g - -lib - . - -fo - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0 - -language - protobuf -) -configure_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf/protobuf.stg -) configure_file( ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/Cpp/Cpp.stg.in ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp/Cpp.stg @@ -99,16 +65,3 @@ run_antlr( -fo ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0 ) -target_proto_addincls(proto_ast-gen-v0 - ./ - ${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(proto_ast-gen-v0 - --cpp_out=${CMAKE_BINARY_DIR}/ - --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ -) diff --git a/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.windows-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.windows-x86_64.txt index e46562c7d878..c3f5da17435e 100644 --- a/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/v0/CMakeLists.windows-x86_64.txt @@ -6,22 +6,6 @@ # 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 -) -set( - ANTLR_PACKAGE_NAME - NSQLGenerated -) set( ANTLR_PACKAGE_NAME NSQLGenerated @@ -32,7 +16,11 @@ set( ) set( PROTOBUF_HEADER_PATH - ydb/library/yql/parser/proto_ast/gen/v0 + ydb/library/yql/parser/proto_ast/gen/v0_proto_split +) +set( + PROTOBUF_SUFFIX_PATH + .pb.main.h ) add_library(proto_ast-gen-v0) @@ -41,41 +29,19 @@ target_compile_options(proto_ast-gen-v0 PRIVATE ) target_include_directories(proto_ast-gen-v0 PUBLIC ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf ) target_link_libraries(proto_ast-gen-v0 PUBLIC contrib-libs-cxxsupp yutil - contrib-libs-protobuf -) -target_proto_messages(proto_ast-gen-v0 PRIVATE - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.proto + proto_ast-gen-v0_proto_split ) target_sources(proto_ast-gen-v0 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLLexer.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLLexer.cpp ) -run_antlr( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/SQLParser.proto - DEPENDS - ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf/protobuf.stg - WORKING_DIRECTORY - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0 - ANTLER_ARGS - ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g - -lib - . - -fo - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0 - -language - protobuf -) -configure_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in - ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/protobuf/protobuf.stg -) configure_file( ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/Cpp/Cpp.stg.in ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0/org/antlr/codegen/templates/Cpp/Cpp.stg @@ -98,16 +64,3 @@ run_antlr( -fo ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0 ) -target_proto_addincls(proto_ast-gen-v0 - ./ - ${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(proto_ast-gen-v0 - --cpp_out=${CMAKE_BINARY_DIR}/ - --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ -) diff --git a/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..96b89f27034b --- /dev/null +++ b/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.darwin-arm64.txt @@ -0,0 +1,128 @@ + +# 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. + + +find_package(Python3 REQUIRED) +get_built_tool_path( + TOOL_cpp_styleguide_bin + TOOL_cpp_styleguide_dependency + contrib/tools/protoc/plugins/cpp_styleguide + cpp_styleguide +) +get_built_tool_path( + TOOL_protoc_bin + TOOL_protoc_dependency + contrib/tools/protoc/bin + protoc +) +set( + ANTLR_PACKAGE_NAME + NSQLGenerated +) + +add_library(proto_ast-gen-v0_proto_split) +target_include_directories(proto_ast-gen-v0_proto_split PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf +) +target_link_libraries(proto_ast-gen-v0_proto_split PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf +) +target_sources(proto_ast-gen-v0_proto_split PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.data.cc +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.data.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.main.h + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.cc + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + COMMAND + Python3::Interpreter + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + SQLParser +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.cc + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.proto + ${TOOL_protoc_bin} + ${TOOL_cpp_styleguide_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR} + COMMAND + ${TOOL_protoc_bin} + -I=${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + -I=${CMAKE_SOURCE_DIR} + -I=${CMAKE_BINARY_DIR} + -I=${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src + --cpp_out=${CMAKE_BINARY_DIR} + --cpp_styleguide_out=${CMAKE_BINARY_DIR} + --plugin=protoc-gen-cpp_styleguide=${CMAKE_BINARY_DIR}/contrib/tools/protoc/plugins/cpp_styleguide/cpp_styleguide + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.proto +) +run_antlr( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.proto + DEPENDS + ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + ANTLER_ARGS + ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g + -lib + . + -fo + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + -language + protobuf +) +configure_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg +) +if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(proto_ast-gen-v0_proto_split + cpp_styleguide + protoc +) +endif() diff --git a/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..96b89f27034b --- /dev/null +++ b/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,128 @@ + +# 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. + + +find_package(Python3 REQUIRED) +get_built_tool_path( + TOOL_cpp_styleguide_bin + TOOL_cpp_styleguide_dependency + contrib/tools/protoc/plugins/cpp_styleguide + cpp_styleguide +) +get_built_tool_path( + TOOL_protoc_bin + TOOL_protoc_dependency + contrib/tools/protoc/bin + protoc +) +set( + ANTLR_PACKAGE_NAME + NSQLGenerated +) + +add_library(proto_ast-gen-v0_proto_split) +target_include_directories(proto_ast-gen-v0_proto_split PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf +) +target_link_libraries(proto_ast-gen-v0_proto_split PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf +) +target_sources(proto_ast-gen-v0_proto_split PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.data.cc +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.data.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.main.h + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.cc + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + COMMAND + Python3::Interpreter + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + SQLParser +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.cc + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.proto + ${TOOL_protoc_bin} + ${TOOL_cpp_styleguide_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR} + COMMAND + ${TOOL_protoc_bin} + -I=${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + -I=${CMAKE_SOURCE_DIR} + -I=${CMAKE_BINARY_DIR} + -I=${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src + --cpp_out=${CMAKE_BINARY_DIR} + --cpp_styleguide_out=${CMAKE_BINARY_DIR} + --plugin=protoc-gen-cpp_styleguide=${CMAKE_BINARY_DIR}/contrib/tools/protoc/plugins/cpp_styleguide/cpp_styleguide + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.proto +) +run_antlr( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.proto + DEPENDS + ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + ANTLER_ARGS + ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g + -lib + . + -fo + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + -language + protobuf +) +configure_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg +) +if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(proto_ast-gen-v0_proto_split + cpp_styleguide + protoc +) +endif() diff --git a/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..62140126ba3d --- /dev/null +++ b/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.linux-aarch64.txt @@ -0,0 +1,129 @@ + +# 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. + + +find_package(Python3 REQUIRED) +get_built_tool_path( + TOOL_cpp_styleguide_bin + TOOL_cpp_styleguide_dependency + contrib/tools/protoc/plugins/cpp_styleguide + cpp_styleguide +) +get_built_tool_path( + TOOL_protoc_bin + TOOL_protoc_dependency + contrib/tools/protoc/bin + protoc +) +set( + ANTLR_PACKAGE_NAME + NSQLGenerated +) + +add_library(proto_ast-gen-v0_proto_split) +target_include_directories(proto_ast-gen-v0_proto_split PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf +) +target_link_libraries(proto_ast-gen-v0_proto_split PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf +) +target_sources(proto_ast-gen-v0_proto_split PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.data.cc +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.data.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.main.h + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.cc + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + COMMAND + Python3::Interpreter + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + SQLParser +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.cc + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.proto + ${TOOL_protoc_bin} + ${TOOL_cpp_styleguide_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR} + COMMAND + ${TOOL_protoc_bin} + -I=${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + -I=${CMAKE_SOURCE_DIR} + -I=${CMAKE_BINARY_DIR} + -I=${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src + --cpp_out=${CMAKE_BINARY_DIR} + --cpp_styleguide_out=${CMAKE_BINARY_DIR} + --plugin=protoc-gen-cpp_styleguide=${CMAKE_BINARY_DIR}/contrib/tools/protoc/plugins/cpp_styleguide/cpp_styleguide + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.proto +) +run_antlr( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.proto + DEPENDS + ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + ANTLER_ARGS + ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g + -lib + . + -fo + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + -language + protobuf +) +configure_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg +) +if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(proto_ast-gen-v0_proto_split + cpp_styleguide + protoc +) +endif() diff --git a/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..62140126ba3d --- /dev/null +++ b/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.linux-x86_64.txt @@ -0,0 +1,129 @@ + +# 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. + + +find_package(Python3 REQUIRED) +get_built_tool_path( + TOOL_cpp_styleguide_bin + TOOL_cpp_styleguide_dependency + contrib/tools/protoc/plugins/cpp_styleguide + cpp_styleguide +) +get_built_tool_path( + TOOL_protoc_bin + TOOL_protoc_dependency + contrib/tools/protoc/bin + protoc +) +set( + ANTLR_PACKAGE_NAME + NSQLGenerated +) + +add_library(proto_ast-gen-v0_proto_split) +target_include_directories(proto_ast-gen-v0_proto_split PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf +) +target_link_libraries(proto_ast-gen-v0_proto_split PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf +) +target_sources(proto_ast-gen-v0_proto_split PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.data.cc +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.data.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.main.h + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.cc + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + COMMAND + Python3::Interpreter + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + SQLParser +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.cc + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.proto + ${TOOL_protoc_bin} + ${TOOL_cpp_styleguide_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR} + COMMAND + ${TOOL_protoc_bin} + -I=${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + -I=${CMAKE_SOURCE_DIR} + -I=${CMAKE_BINARY_DIR} + -I=${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src + --cpp_out=${CMAKE_BINARY_DIR} + --cpp_styleguide_out=${CMAKE_BINARY_DIR} + --plugin=protoc-gen-cpp_styleguide=${CMAKE_BINARY_DIR}/contrib/tools/protoc/plugins/cpp_styleguide/cpp_styleguide + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.proto +) +run_antlr( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.proto + DEPENDS + ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + ANTLER_ARGS + ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g + -lib + . + -fo + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + -language + protobuf +) +configure_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg +) +if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(proto_ast-gen-v0_proto_split + cpp_styleguide + protoc +) +endif() diff --git a/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.txt b/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.windows-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..14d5d5b037d5 --- /dev/null +++ b/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/CMakeLists.windows-x86_64.txt @@ -0,0 +1,128 @@ + +# 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. + + +find_package(Python3 REQUIRED) +get_built_tool_path( + TOOL_cpp_styleguide_bin + TOOL_cpp_styleguide_dependency + contrib/tools/protoc/plugins/cpp_styleguide + cpp_styleguide +) +get_built_tool_path( + TOOL_protoc_bin + TOOL_protoc_dependency + contrib/tools/protoc/bin + protoc +) +set( + ANTLR_PACKAGE_NAME + NSQLGenerated +) + +add_library(proto_ast-gen-v0_proto_split) +target_include_directories(proto_ast-gen-v0_proto_split PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf +) +target_link_libraries(proto_ast-gen-v0_proto_split PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf +) +target_sources(proto_ast-gen-v0_proto_split PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.data.cc +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.data.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.main.h + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.cc + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + COMMAND + Python3::Interpreter + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + SQLParser +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.pb.cc + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.proto + ${TOOL_protoc_bin} + ${TOOL_cpp_styleguide_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR} + COMMAND + ${TOOL_protoc_bin} + -I=${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + -I=${CMAKE_SOURCE_DIR} + -I=${CMAKE_BINARY_DIR} + -I=${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src + --cpp_out=${CMAKE_BINARY_DIR} + --cpp_styleguide_out=${CMAKE_BINARY_DIR} + --plugin=protoc-gen-cpp_styleguide=${CMAKE_BINARY_DIR}/contrib/tools/protoc/plugins/cpp_styleguide/cpp_styleguide.exe + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.proto +) +run_antlr( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/SQLParser.proto + DEPENDS + ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + ANTLER_ARGS + ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/SQL.g + -lib + . + -fo + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split + -language + protobuf +) +configure_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v0_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg +) +if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(proto_ast-gen-v0_proto_split + cpp_styleguide + protoc +) +endif() diff --git a/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.darwin-arm64.txt index 02b893de3bd4..c2f457899fb1 100644 --- a/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.darwin-arm64.txt @@ -16,7 +16,11 @@ set( ) set( PROTOBUF_HEADER_PATH - ydb/library/yql/parser/proto_ast/gen/v1_proto + ydb/library/yql/parser/proto_ast/gen/v1_proto_split +) +set( + PROTOBUF_SUFFIX_PATH + .pb.main.h ) add_library(proto_ast-gen-v1) @@ -29,9 +33,12 @@ target_include_directories(proto_ast-gen-v1 PUBLIC target_link_libraries(proto_ast-gen-v1 PUBLIC contrib-libs-cxxsupp yutil - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(proto_ast-gen-v1 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Parser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Parser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.cpp ) diff --git a/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.darwin-x86_64.txt index 02b893de3bd4..c2f457899fb1 100644 --- a/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.darwin-x86_64.txt @@ -16,7 +16,11 @@ set( ) set( PROTOBUF_HEADER_PATH - ydb/library/yql/parser/proto_ast/gen/v1_proto + ydb/library/yql/parser/proto_ast/gen/v1_proto_split +) +set( + PROTOBUF_SUFFIX_PATH + .pb.main.h ) add_library(proto_ast-gen-v1) @@ -29,9 +33,12 @@ target_include_directories(proto_ast-gen-v1 PUBLIC target_link_libraries(proto_ast-gen-v1 PUBLIC contrib-libs-cxxsupp yutil - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(proto_ast-gen-v1 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Parser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Parser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.cpp ) diff --git a/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.linux-aarch64.txt index d1fd41654f5b..9f251fd06cd6 100644 --- a/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.linux-aarch64.txt @@ -16,7 +16,11 @@ set( ) set( PROTOBUF_HEADER_PATH - ydb/library/yql/parser/proto_ast/gen/v1_proto + ydb/library/yql/parser/proto_ast/gen/v1_proto_split +) +set( + PROTOBUF_SUFFIX_PATH + .pb.main.h ) add_library(proto_ast-gen-v1) @@ -30,9 +34,12 @@ target_link_libraries(proto_ast-gen-v1 PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(proto_ast-gen-v1 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Parser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Parser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.cpp ) diff --git a/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.linux-x86_64.txt index d1fd41654f5b..9f251fd06cd6 100644 --- a/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.linux-x86_64.txt @@ -16,7 +16,11 @@ set( ) set( PROTOBUF_HEADER_PATH - ydb/library/yql/parser/proto_ast/gen/v1_proto + ydb/library/yql/parser/proto_ast/gen/v1_proto_split +) +set( + PROTOBUF_SUFFIX_PATH + .pb.main.h ) add_library(proto_ast-gen-v1) @@ -30,9 +34,12 @@ target_link_libraries(proto_ast-gen-v1 PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(proto_ast-gen-v1 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Parser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Parser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.cpp ) diff --git a/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.windows-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.windows-x86_64.txt index 02b893de3bd4..c2f457899fb1 100644 --- a/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/v1/CMakeLists.windows-x86_64.txt @@ -16,7 +16,11 @@ set( ) set( PROTOBUF_HEADER_PATH - ydb/library/yql/parser/proto_ast/gen/v1_proto + ydb/library/yql/parser/proto_ast/gen/v1_proto_split +) +set( + PROTOBUF_SUFFIX_PATH + .pb.main.h ) add_library(proto_ast-gen-v1) @@ -29,9 +33,12 @@ target_include_directories(proto_ast-gen-v1 PUBLIC target_link_libraries(proto_ast-gen-v1 PUBLIC contrib-libs-cxxsupp yutil - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(proto_ast-gen-v1 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Parser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Parser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1/SQLv1Lexer.cpp ) diff --git a/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.darwin-arm64.txt index 7ce8f04bcfac..edd040782ea0 100644 --- a/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.darwin-arm64.txt @@ -16,7 +16,11 @@ set( ) set( PROTOBUF_HEADER_PATH - ydb/library/yql/parser/proto_ast/gen/v1_proto + ydb/library/yql/parser/proto_ast/gen/v1_proto_split +) +set( + PROTOBUF_SUFFIX_PATH + .pb.main.h ) add_library(proto_ast-gen-v1_ansi) @@ -29,9 +33,12 @@ target_include_directories(proto_ast-gen-v1_ansi PUBLIC target_link_libraries(proto_ast-gen-v1_ansi PUBLIC contrib-libs-cxxsupp yutil - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(proto_ast-gen-v1_ansi PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Parser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Lexer.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Parser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Lexer.cpp ) diff --git a/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.darwin-x86_64.txt index 7ce8f04bcfac..edd040782ea0 100644 --- a/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.darwin-x86_64.txt @@ -16,7 +16,11 @@ set( ) set( PROTOBUF_HEADER_PATH - ydb/library/yql/parser/proto_ast/gen/v1_proto + ydb/library/yql/parser/proto_ast/gen/v1_proto_split +) +set( + PROTOBUF_SUFFIX_PATH + .pb.main.h ) add_library(proto_ast-gen-v1_ansi) @@ -29,9 +33,12 @@ target_include_directories(proto_ast-gen-v1_ansi PUBLIC target_link_libraries(proto_ast-gen-v1_ansi PUBLIC contrib-libs-cxxsupp yutil - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(proto_ast-gen-v1_ansi PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Parser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Lexer.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Parser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Lexer.cpp ) diff --git a/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.linux-aarch64.txt index b0255d7b59ca..7d0113b7b0f1 100644 --- a/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.linux-aarch64.txt @@ -16,7 +16,11 @@ set( ) set( PROTOBUF_HEADER_PATH - ydb/library/yql/parser/proto_ast/gen/v1_proto + ydb/library/yql/parser/proto_ast/gen/v1_proto_split +) +set( + PROTOBUF_SUFFIX_PATH + .pb.main.h ) add_library(proto_ast-gen-v1_ansi) @@ -30,9 +34,12 @@ target_link_libraries(proto_ast-gen-v1_ansi PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(proto_ast-gen-v1_ansi PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Parser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Lexer.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Parser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Lexer.cpp ) diff --git a/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.linux-x86_64.txt index b0255d7b59ca..7d0113b7b0f1 100644 --- a/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.linux-x86_64.txt @@ -16,7 +16,11 @@ set( ) set( PROTOBUF_HEADER_PATH - ydb/library/yql/parser/proto_ast/gen/v1_proto + ydb/library/yql/parser/proto_ast/gen/v1_proto_split +) +set( + PROTOBUF_SUFFIX_PATH + .pb.main.h ) add_library(proto_ast-gen-v1_ansi) @@ -30,9 +34,12 @@ target_link_libraries(proto_ast-gen-v1_ansi PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(proto_ast-gen-v1_ansi PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Parser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Lexer.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Parser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Lexer.cpp ) diff --git a/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.windows-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.windows-x86_64.txt index 7ce8f04bcfac..edd040782ea0 100644 --- a/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/parser/proto_ast/gen/v1_ansi/CMakeLists.windows-x86_64.txt @@ -16,7 +16,11 @@ set( ) set( PROTOBUF_HEADER_PATH - ydb/library/yql/parser/proto_ast/gen/v1_proto + ydb/library/yql/parser/proto_ast/gen/v1_proto_split +) +set( + PROTOBUF_SUFFIX_PATH + .pb.main.h ) add_library(proto_ast-gen-v1_ansi) @@ -29,9 +33,12 @@ target_include_directories(proto_ast-gen-v1_ansi PUBLIC target_link_libraries(proto_ast-gen-v1_ansi PUBLIC contrib-libs-cxxsupp yutil - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(proto_ast-gen-v1_ansi PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/org/antlr/codegen/templates/Cpp/Cpp.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Parser.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Lexer.h ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Parser.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_ansi/SQLv1Lexer.cpp ) diff --git a/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.darwin-arm64.txt b/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..5f3dd30e0bc3 --- /dev/null +++ b/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.darwin-arm64.txt @@ -0,0 +1,138 @@ + +# 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. + + +find_package(Python3 REQUIRED) +get_built_tool_path( + TOOL_cpp_styleguide_bin + TOOL_cpp_styleguide_dependency + contrib/tools/protoc/plugins/cpp_styleguide + cpp_styleguide +) +get_built_tool_path( + TOOL_protoc_bin + TOOL_protoc_dependency + contrib/tools/protoc/bin + protoc +) +set( + ANTLR_PACKAGE_NAME + NSQLv1Generated +) + +add_library(proto_ast-gen-v1_proto_split) +target_include_directories(proto_ast-gen-v1_proto_split PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf +) +target_link_libraries(proto_ast-gen-v1_proto_split PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf +) +target_sources(proto_ast-gen-v1_proto_split PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.data.cc +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.data.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.main.h + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.cc + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + COMMAND + Python3::Interpreter + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + SQLv1Parser +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.cc + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.proto + ${TOOL_protoc_bin} + ${TOOL_cpp_styleguide_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR} + COMMAND + ${TOOL_protoc_bin} + -I=${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + -I=${CMAKE_SOURCE_DIR} + -I=${CMAKE_BINARY_DIR} + -I=${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src + --cpp_out=${CMAKE_BINARY_DIR} + --cpp_styleguide_out=${CMAKE_BINARY_DIR} + --plugin=protoc-gen-cpp_styleguide=${CMAKE_BINARY_DIR}/contrib/tools/protoc/plugins/cpp_styleguide/cpp_styleguide + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.proto +) +run_antlr( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.proto + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1.g + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + ANTLER_ARGS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1.g + -lib + . + -fo + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + -language + protobuf +) +configure_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg +) +if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(proto_ast-gen-v1_proto_split + cpp_styleguide + protoc +) +endif() +set(GRAMMAR_STRING_CORE_SINGLE "~(QUOTE_SINGLE | BACKSLASH) | (BACKSLASH .)") +set(GRAMMAR_STRING_CORE_DOUBLE "~(QUOTE_DOUBLE | BACKSLASH) | (BACKSLASH .)") +set(GRAMMAR_MULTILINE_COMMENT_CORE ".") + +configure_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/SQLv1.g.in + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1.g +) + + diff --git a/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..5f3dd30e0bc3 --- /dev/null +++ b/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,138 @@ + +# 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. + + +find_package(Python3 REQUIRED) +get_built_tool_path( + TOOL_cpp_styleguide_bin + TOOL_cpp_styleguide_dependency + contrib/tools/protoc/plugins/cpp_styleguide + cpp_styleguide +) +get_built_tool_path( + TOOL_protoc_bin + TOOL_protoc_dependency + contrib/tools/protoc/bin + protoc +) +set( + ANTLR_PACKAGE_NAME + NSQLv1Generated +) + +add_library(proto_ast-gen-v1_proto_split) +target_include_directories(proto_ast-gen-v1_proto_split PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf +) +target_link_libraries(proto_ast-gen-v1_proto_split PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf +) +target_sources(proto_ast-gen-v1_proto_split PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.data.cc +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.data.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.main.h + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.cc + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + COMMAND + Python3::Interpreter + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + SQLv1Parser +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.cc + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.proto + ${TOOL_protoc_bin} + ${TOOL_cpp_styleguide_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR} + COMMAND + ${TOOL_protoc_bin} + -I=${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + -I=${CMAKE_SOURCE_DIR} + -I=${CMAKE_BINARY_DIR} + -I=${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src + --cpp_out=${CMAKE_BINARY_DIR} + --cpp_styleguide_out=${CMAKE_BINARY_DIR} + --plugin=protoc-gen-cpp_styleguide=${CMAKE_BINARY_DIR}/contrib/tools/protoc/plugins/cpp_styleguide/cpp_styleguide + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.proto +) +run_antlr( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.proto + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1.g + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + ANTLER_ARGS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1.g + -lib + . + -fo + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + -language + protobuf +) +configure_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg +) +if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(proto_ast-gen-v1_proto_split + cpp_styleguide + protoc +) +endif() +set(GRAMMAR_STRING_CORE_SINGLE "~(QUOTE_SINGLE | BACKSLASH) | (BACKSLASH .)") +set(GRAMMAR_STRING_CORE_DOUBLE "~(QUOTE_DOUBLE | BACKSLASH) | (BACKSLASH .)") +set(GRAMMAR_MULTILINE_COMMENT_CORE ".") + +configure_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/SQLv1.g.in + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1.g +) + + diff --git a/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..5e8c6e90c909 --- /dev/null +++ b/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.linux-aarch64.txt @@ -0,0 +1,139 @@ + +# 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. + + +find_package(Python3 REQUIRED) +get_built_tool_path( + TOOL_cpp_styleguide_bin + TOOL_cpp_styleguide_dependency + contrib/tools/protoc/plugins/cpp_styleguide + cpp_styleguide +) +get_built_tool_path( + TOOL_protoc_bin + TOOL_protoc_dependency + contrib/tools/protoc/bin + protoc +) +set( + ANTLR_PACKAGE_NAME + NSQLv1Generated +) + +add_library(proto_ast-gen-v1_proto_split) +target_include_directories(proto_ast-gen-v1_proto_split PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf +) +target_link_libraries(proto_ast-gen-v1_proto_split PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf +) +target_sources(proto_ast-gen-v1_proto_split PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.data.cc +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.data.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.main.h + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.cc + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + COMMAND + Python3::Interpreter + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + SQLv1Parser +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.cc + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.proto + ${TOOL_protoc_bin} + ${TOOL_cpp_styleguide_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR} + COMMAND + ${TOOL_protoc_bin} + -I=${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + -I=${CMAKE_SOURCE_DIR} + -I=${CMAKE_BINARY_DIR} + -I=${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src + --cpp_out=${CMAKE_BINARY_DIR} + --cpp_styleguide_out=${CMAKE_BINARY_DIR} + --plugin=protoc-gen-cpp_styleguide=${CMAKE_BINARY_DIR}/contrib/tools/protoc/plugins/cpp_styleguide/cpp_styleguide + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.proto +) +run_antlr( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.proto + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1.g + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + ANTLER_ARGS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1.g + -lib + . + -fo + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + -language + protobuf +) +configure_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg +) +if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(proto_ast-gen-v1_proto_split + cpp_styleguide + protoc +) +endif() +set(GRAMMAR_STRING_CORE_SINGLE "~(QUOTE_SINGLE | BACKSLASH) | (BACKSLASH .)") +set(GRAMMAR_STRING_CORE_DOUBLE "~(QUOTE_DOUBLE | BACKSLASH) | (BACKSLASH .)") +set(GRAMMAR_MULTILINE_COMMENT_CORE ".") + +configure_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/SQLv1.g.in + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1.g +) + + diff --git a/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..5e8c6e90c909 --- /dev/null +++ b/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.linux-x86_64.txt @@ -0,0 +1,139 @@ + +# 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. + + +find_package(Python3 REQUIRED) +get_built_tool_path( + TOOL_cpp_styleguide_bin + TOOL_cpp_styleguide_dependency + contrib/tools/protoc/plugins/cpp_styleguide + cpp_styleguide +) +get_built_tool_path( + TOOL_protoc_bin + TOOL_protoc_dependency + contrib/tools/protoc/bin + protoc +) +set( + ANTLR_PACKAGE_NAME + NSQLv1Generated +) + +add_library(proto_ast-gen-v1_proto_split) +target_include_directories(proto_ast-gen-v1_proto_split PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf +) +target_link_libraries(proto_ast-gen-v1_proto_split PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf +) +target_sources(proto_ast-gen-v1_proto_split PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.data.cc +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.data.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.main.h + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.cc + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + COMMAND + Python3::Interpreter + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + SQLv1Parser +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.cc + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.proto + ${TOOL_protoc_bin} + ${TOOL_cpp_styleguide_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR} + COMMAND + ${TOOL_protoc_bin} + -I=${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + -I=${CMAKE_SOURCE_DIR} + -I=${CMAKE_BINARY_DIR} + -I=${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src + --cpp_out=${CMAKE_BINARY_DIR} + --cpp_styleguide_out=${CMAKE_BINARY_DIR} + --plugin=protoc-gen-cpp_styleguide=${CMAKE_BINARY_DIR}/contrib/tools/protoc/plugins/cpp_styleguide/cpp_styleguide + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.proto +) +run_antlr( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.proto + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1.g + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + ANTLER_ARGS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1.g + -lib + . + -fo + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + -language + protobuf +) +configure_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg +) +if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(proto_ast-gen-v1_proto_split + cpp_styleguide + protoc +) +endif() +set(GRAMMAR_STRING_CORE_SINGLE "~(QUOTE_SINGLE | BACKSLASH) | (BACKSLASH .)") +set(GRAMMAR_STRING_CORE_DOUBLE "~(QUOTE_DOUBLE | BACKSLASH) | (BACKSLASH .)") +set(GRAMMAR_MULTILINE_COMMENT_CORE ".") + +configure_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/SQLv1.g.in + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1.g +) + + diff --git a/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.txt b/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.windows-x86_64.txt b/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..a5bd6e7a474b --- /dev/null +++ b/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/CMakeLists.windows-x86_64.txt @@ -0,0 +1,138 @@ + +# 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. + + +find_package(Python3 REQUIRED) +get_built_tool_path( + TOOL_cpp_styleguide_bin + TOOL_cpp_styleguide_dependency + contrib/tools/protoc/plugins/cpp_styleguide + cpp_styleguide +) +get_built_tool_path( + TOOL_protoc_bin + TOOL_protoc_dependency + contrib/tools/protoc/bin + protoc +) +set( + ANTLR_PACKAGE_NAME + NSQLv1Generated +) + +add_library(proto_ast-gen-v1_proto_split) +target_include_directories(proto_ast-gen-v1_proto_split PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf +) +target_link_libraries(proto_ast-gen-v1_proto_split PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf +) +target_sources(proto_ast-gen-v1_proto_split PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.main.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.data.cc +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code0.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code1.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code2.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code3.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code4.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code5.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code6.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code7.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code8.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.code9.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.data.cc + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.classes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.main.h + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.cc + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + COMMAND + Python3::Interpreter + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/multiproto.py + SQLv1Parser +) +add_custom_command( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.pb.cc + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.proto + ${TOOL_protoc_bin} + ${TOOL_cpp_styleguide_bin} + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR} + COMMAND + ${TOOL_protoc_bin} + -I=${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + -I=${CMAKE_SOURCE_DIR} + -I=${CMAKE_BINARY_DIR} + -I=${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src + --cpp_out=${CMAKE_BINARY_DIR} + --cpp_styleguide_out=${CMAKE_BINARY_DIR} + --plugin=protoc-gen-cpp_styleguide=${CMAKE_BINARY_DIR}/contrib/tools/protoc/plugins/cpp_styleguide/cpp_styleguide.exe + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.proto +) +run_antlr( + OUTPUT + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1Parser.proto + DEPENDS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1.g + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg + WORKING_DIRECTORY + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + ANTLER_ARGS + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1.g + -lib + . + -fo + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split + -language + protobuf +) +configure_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/proto_ast/org/antlr/codegen/templates/protobuf/protobuf.stg.in + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/org/antlr/codegen/templates/protobuf/protobuf.stg +) +if(NOT CMAKE_CROSSCOMPILING) + add_dependencies(proto_ast-gen-v1_proto_split + cpp_styleguide + protoc +) +endif() +set(GRAMMAR_STRING_CORE_SINGLE "~(QUOTE_SINGLE | BACKSLASH) | (BACKSLASH .)") +set(GRAMMAR_STRING_CORE_DOUBLE "~(QUOTE_DOUBLE | BACKSLASH) | (BACKSLASH .)") +set(GRAMMAR_MULTILINE_COMMENT_CORE ".") + +configure_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/SQLv1.g.in + ${CMAKE_BINARY_DIR}/ydb/library/yql/parser/proto_ast/gen/v1_proto_split/SQLv1.g +) + + diff --git a/ydb/library/yql/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/protos/CMakeLists.darwin-arm64.txt index 3bcb29501f73..40f209f73534 100644 --- a/ydb/library/yql/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/protos/CMakeLists.darwin-arm64.txt @@ -54,6 +54,11 @@ target_proto_messages(library-yql-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/protos/yql_mount.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/protos/clickhouse.proto ) +target_sources(library-yql-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/protos/common.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/protos/yql_mount.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/protos/clickhouse.pb.h +) target_proto_addincls(library-yql-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/protos/CMakeLists.darwin-x86_64.txt index 3bcb29501f73..40f209f73534 100644 --- a/ydb/library/yql/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/protos/CMakeLists.darwin-x86_64.txt @@ -54,6 +54,11 @@ target_proto_messages(library-yql-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/protos/yql_mount.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/protos/clickhouse.proto ) +target_sources(library-yql-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/protos/common.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/protos/yql_mount.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/protos/clickhouse.pb.h +) target_proto_addincls(library-yql-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/protos/CMakeLists.linux-aarch64.txt b/ydb/library/yql/protos/CMakeLists.linux-aarch64.txt index 1ab2ef6b31b5..dc8eb37140b8 100644 --- a/ydb/library/yql/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/protos/CMakeLists.linux-aarch64.txt @@ -55,6 +55,11 @@ target_proto_messages(library-yql-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/protos/yql_mount.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/protos/clickhouse.proto ) +target_sources(library-yql-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/protos/common.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/protos/yql_mount.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/protos/clickhouse.pb.h +) target_proto_addincls(library-yql-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/protos/CMakeLists.linux-x86_64.txt b/ydb/library/yql/protos/CMakeLists.linux-x86_64.txt index 1ab2ef6b31b5..dc8eb37140b8 100644 --- a/ydb/library/yql/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/protos/CMakeLists.linux-x86_64.txt @@ -55,6 +55,11 @@ target_proto_messages(library-yql-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/protos/yql_mount.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/protos/clickhouse.proto ) +target_sources(library-yql-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/protos/common.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/protos/yql_mount.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/protos/clickhouse.pb.h +) target_proto_addincls(library-yql-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/protos/CMakeLists.windows-x86_64.txt b/ydb/library/yql/protos/CMakeLists.windows-x86_64.txt index 3bcb29501f73..40f209f73534 100644 --- a/ydb/library/yql/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/protos/CMakeLists.windows-x86_64.txt @@ -54,6 +54,11 @@ target_proto_messages(library-yql-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/protos/yql_mount.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/protos/clickhouse.proto ) +target_sources(library-yql-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/protos/common.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/protos/yql_mount.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/protos/clickhouse.pb.h +) target_proto_addincls(library-yql-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/clickhouse/actors/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/clickhouse/actors/CMakeLists.darwin-arm64.txt index 212170609f21..477f1b913119 100644 --- a/ydb/library/yql/providers/clickhouse/actors/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/clickhouse/actors/CMakeLists.darwin-arm64.txt @@ -14,7 +14,7 @@ target_compile_options(providers-clickhouse-actors PRIVATE target_link_libraries(providers-clickhouse-actors PUBLIC contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types dq-actors-compute diff --git a/ydb/library/yql/providers/clickhouse/actors/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/clickhouse/actors/CMakeLists.darwin-x86_64.txt index 212170609f21..477f1b913119 100644 --- a/ydb/library/yql/providers/clickhouse/actors/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/clickhouse/actors/CMakeLists.darwin-x86_64.txt @@ -14,7 +14,7 @@ target_compile_options(providers-clickhouse-actors PRIVATE target_link_libraries(providers-clickhouse-actors PUBLIC contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types dq-actors-compute diff --git a/ydb/library/yql/providers/clickhouse/actors/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/clickhouse/actors/CMakeLists.linux-aarch64.txt index 15fe5e1878b0..9eae5b0a45a5 100644 --- a/ydb/library/yql/providers/clickhouse/actors/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/clickhouse/actors/CMakeLists.linux-aarch64.txt @@ -15,7 +15,7 @@ target_link_libraries(providers-clickhouse-actors PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types dq-actors-compute diff --git a/ydb/library/yql/providers/clickhouse/actors/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/clickhouse/actors/CMakeLists.linux-x86_64.txt index 15fe5e1878b0..9eae5b0a45a5 100644 --- a/ydb/library/yql/providers/clickhouse/actors/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/clickhouse/actors/CMakeLists.linux-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(providers-clickhouse-actors PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types dq-actors-compute diff --git a/ydb/library/yql/providers/clickhouse/actors/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/clickhouse/actors/CMakeLists.windows-x86_64.txt index 212170609f21..477f1b913119 100644 --- a/ydb/library/yql/providers/clickhouse/actors/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/clickhouse/actors/CMakeLists.windows-x86_64.txt @@ -14,7 +14,7 @@ target_compile_options(providers-clickhouse-actors PRIVATE target_link_libraries(providers-clickhouse-actors PUBLIC contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types dq-actors-compute diff --git a/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.darwin-arm64.txt index 16666cdd9d6d..ecccf59d2204 100644 --- a/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.darwin-arm64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-clickhouse-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-clickhouse-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.darwin-x86_64.txt index 16666cdd9d6d..ecccf59d2204 100644 --- a/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-clickhouse-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-clickhouse-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.linux-aarch64.txt index 03ab381c539f..8580227da022 100644 --- a/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.linux-aarch64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-clickhouse-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-clickhouse-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.linux-x86_64.txt index 03ab381c539f..8580227da022 100644 --- a/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.linux-x86_64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-clickhouse-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-clickhouse-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.windows-x86_64.txt index 16666cdd9d6d..ecccf59d2204 100644 --- a/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/clickhouse/expr_nodes/CMakeLists.windows-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-clickhouse-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-clickhouse-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/expr_nodes/yql_clickhouse_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/clickhouse/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/clickhouse/proto/CMakeLists.darwin-arm64.txt index dc1892a574f3..398e47ee3e9d 100644 --- a/ydb/library/yql/providers/clickhouse/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/clickhouse/proto/CMakeLists.darwin-arm64.txt @@ -41,6 +41,10 @@ target_proto_messages(providers-clickhouse-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/proto/source.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/proto/range.proto ) +target_sources(providers-clickhouse-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/proto/source.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/proto/range.pb.h +) target_proto_addincls(providers-clickhouse-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/clickhouse/proto/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/clickhouse/proto/CMakeLists.darwin-x86_64.txt index dc1892a574f3..398e47ee3e9d 100644 --- a/ydb/library/yql/providers/clickhouse/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/clickhouse/proto/CMakeLists.darwin-x86_64.txt @@ -41,6 +41,10 @@ target_proto_messages(providers-clickhouse-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/proto/source.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/proto/range.proto ) +target_sources(providers-clickhouse-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/proto/source.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/proto/range.pb.h +) target_proto_addincls(providers-clickhouse-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/clickhouse/proto/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/clickhouse/proto/CMakeLists.linux-aarch64.txt index 026f01786cb9..368b176c9f1a 100644 --- a/ydb/library/yql/providers/clickhouse/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/clickhouse/proto/CMakeLists.linux-aarch64.txt @@ -42,6 +42,10 @@ target_proto_messages(providers-clickhouse-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/proto/source.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/proto/range.proto ) +target_sources(providers-clickhouse-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/proto/source.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/proto/range.pb.h +) target_proto_addincls(providers-clickhouse-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/clickhouse/proto/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/clickhouse/proto/CMakeLists.linux-x86_64.txt index 026f01786cb9..368b176c9f1a 100644 --- a/ydb/library/yql/providers/clickhouse/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/clickhouse/proto/CMakeLists.linux-x86_64.txt @@ -42,6 +42,10 @@ target_proto_messages(providers-clickhouse-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/proto/source.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/proto/range.proto ) +target_sources(providers-clickhouse-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/proto/source.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/proto/range.pb.h +) target_proto_addincls(providers-clickhouse-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/clickhouse/proto/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/clickhouse/proto/CMakeLists.windows-x86_64.txt index dc1892a574f3..398e47ee3e9d 100644 --- a/ydb/library/yql/providers/clickhouse/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/clickhouse/proto/CMakeLists.windows-x86_64.txt @@ -41,6 +41,10 @@ target_proto_messages(providers-clickhouse-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/proto/source.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/proto/range.proto ) +target_sources(providers-clickhouse-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/proto/source.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/clickhouse/proto/range.pb.h +) target_proto_addincls(providers-clickhouse-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/clickhouse/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/clickhouse/provider/CMakeLists.darwin-arm64.txt index 0550a7bbca72..6f268269827e 100644 --- a/ydb/library/yql/providers/clickhouse/provider/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/clickhouse/provider/CMakeLists.darwin-arm64.txt @@ -18,7 +18,7 @@ target_link_libraries(providers-clickhouse-provider PUBLIC library-cpp-random_provider library-cpp-time_provider library-yql-ast - minikql-comp_nodes-llvm + yql-minikql-comp_nodes library-yql-core yql-core-type_ann yql-dq-expr_nodes @@ -37,6 +37,10 @@ target_link_libraries(providers-clickhouse-provider PUBLIC providers-dq-expr_nodes ) target_sources(providers-clickhouse-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_util.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink_execution.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink_type_ann.cpp diff --git a/ydb/library/yql/providers/clickhouse/provider/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/clickhouse/provider/CMakeLists.darwin-x86_64.txt index 0550a7bbca72..6f268269827e 100644 --- a/ydb/library/yql/providers/clickhouse/provider/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/clickhouse/provider/CMakeLists.darwin-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(providers-clickhouse-provider PUBLIC library-cpp-random_provider library-cpp-time_provider library-yql-ast - minikql-comp_nodes-llvm + yql-minikql-comp_nodes library-yql-core yql-core-type_ann yql-dq-expr_nodes @@ -37,6 +37,10 @@ target_link_libraries(providers-clickhouse-provider PUBLIC providers-dq-expr_nodes ) target_sources(providers-clickhouse-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_util.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink_execution.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink_type_ann.cpp diff --git a/ydb/library/yql/providers/clickhouse/provider/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/clickhouse/provider/CMakeLists.linux-aarch64.txt index 1cdf6bb9ddeb..19305173b996 100644 --- a/ydb/library/yql/providers/clickhouse/provider/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/clickhouse/provider/CMakeLists.linux-aarch64.txt @@ -19,7 +19,7 @@ target_link_libraries(providers-clickhouse-provider PUBLIC library-cpp-random_provider library-cpp-time_provider library-yql-ast - minikql-comp_nodes-llvm + yql-minikql-comp_nodes library-yql-core yql-core-type_ann yql-dq-expr_nodes @@ -38,6 +38,10 @@ target_link_libraries(providers-clickhouse-provider PUBLIC providers-dq-expr_nodes ) target_sources(providers-clickhouse-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_util.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink_execution.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink_type_ann.cpp diff --git a/ydb/library/yql/providers/clickhouse/provider/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/clickhouse/provider/CMakeLists.linux-x86_64.txt index 1cdf6bb9ddeb..19305173b996 100644 --- a/ydb/library/yql/providers/clickhouse/provider/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/clickhouse/provider/CMakeLists.linux-x86_64.txt @@ -19,7 +19,7 @@ target_link_libraries(providers-clickhouse-provider PUBLIC library-cpp-random_provider library-cpp-time_provider library-yql-ast - minikql-comp_nodes-llvm + yql-minikql-comp_nodes library-yql-core yql-core-type_ann yql-dq-expr_nodes @@ -38,6 +38,10 @@ target_link_libraries(providers-clickhouse-provider PUBLIC providers-dq-expr_nodes ) target_sources(providers-clickhouse-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_util.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink_execution.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink_type_ann.cpp diff --git a/ydb/library/yql/providers/clickhouse/provider/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/clickhouse/provider/CMakeLists.windows-x86_64.txt index 0550a7bbca72..6f268269827e 100644 --- a/ydb/library/yql/providers/clickhouse/provider/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/clickhouse/provider/CMakeLists.windows-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(providers-clickhouse-provider PUBLIC library-cpp-random_provider library-cpp-time_provider library-yql-ast - minikql-comp_nodes-llvm + yql-minikql-comp_nodes library-yql-core yql-core-type_ann yql-dq-expr_nodes @@ -37,6 +37,10 @@ target_link_libraries(providers-clickhouse-provider PUBLIC providers-dq-expr_nodes ) target_sources(providers-clickhouse-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_util.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink_execution.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_datasink_type_ann.cpp diff --git a/ydb/library/yql/providers/common/codec/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/codec/CMakeLists.darwin-arm64.txt index 7555db6d199c..458eb26dc455 100644 --- a/ydb/library/yql/providers/common/codec/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/codec/CMakeLists.darwin-arm64.txt @@ -21,7 +21,7 @@ target_compile_options(providers-common-codec PRIVATE target_link_libraries(providers-common-codec PUBLIC contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation parser-pg_wrapper-interface providers-common-mkql cpp-yson-node @@ -31,6 +31,11 @@ target_link_libraries(providers-common-codec PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(providers-common-codec PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_buf.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_results.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_restricted_yson.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_type_flags.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_buf.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_results.cpp diff --git a/ydb/library/yql/providers/common/codec/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/codec/CMakeLists.darwin-x86_64.txt index 7555db6d199c..458eb26dc455 100644 --- a/ydb/library/yql/providers/common/codec/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/codec/CMakeLists.darwin-x86_64.txt @@ -21,7 +21,7 @@ target_compile_options(providers-common-codec PRIVATE target_link_libraries(providers-common-codec PUBLIC contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation parser-pg_wrapper-interface providers-common-mkql cpp-yson-node @@ -31,6 +31,11 @@ target_link_libraries(providers-common-codec PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(providers-common-codec PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_buf.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_results.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_restricted_yson.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_type_flags.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_buf.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_results.cpp diff --git a/ydb/library/yql/providers/common/codec/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/codec/CMakeLists.linux-aarch64.txt index c0402bf5275d..34e3740bcb5e 100644 --- a/ydb/library/yql/providers/common/codec/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/codec/CMakeLists.linux-aarch64.txt @@ -22,7 +22,7 @@ target_link_libraries(providers-common-codec PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation parser-pg_wrapper-interface providers-common-mkql cpp-yson-node @@ -32,6 +32,11 @@ target_link_libraries(providers-common-codec PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(providers-common-codec PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_buf.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_results.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_restricted_yson.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_type_flags.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_buf.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_results.cpp diff --git a/ydb/library/yql/providers/common/codec/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/codec/CMakeLists.linux-x86_64.txt index c0402bf5275d..34e3740bcb5e 100644 --- a/ydb/library/yql/providers/common/codec/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/codec/CMakeLists.linux-x86_64.txt @@ -22,7 +22,7 @@ target_link_libraries(providers-common-codec PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation parser-pg_wrapper-interface providers-common-mkql cpp-yson-node @@ -32,6 +32,11 @@ target_link_libraries(providers-common-codec PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(providers-common-codec PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_buf.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_results.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_restricted_yson.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_type_flags.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_buf.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_results.cpp diff --git a/ydb/library/yql/providers/common/codec/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/codec/CMakeLists.windows-x86_64.txt index 7555db6d199c..458eb26dc455 100644 --- a/ydb/library/yql/providers/common/codec/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/codec/CMakeLists.windows-x86_64.txt @@ -21,7 +21,7 @@ target_compile_options(providers-common-codec PRIVATE target_link_libraries(providers-common-codec PUBLIC contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation parser-pg_wrapper-interface providers-common-mkql cpp-yson-node @@ -31,6 +31,11 @@ target_link_libraries(providers-common-codec PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(providers-common-codec PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_buf.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_results.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_restricted_yson.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_type_flags.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_buf.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_codec_results.cpp diff --git a/ydb/library/yql/providers/common/codec/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/codec/ut/CMakeLists.darwin-arm64.txt index c7e50d81c02c..1036e29119fe 100644 --- a/ydb/library/yql/providers/common/codec/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/codec/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-library-yql-providers-common-codec-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-common-codec-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_json_codec_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/common/codec/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/codec/ut/CMakeLists.darwin-x86_64.txt index 1753db1f68bd..129b42fc2a78 100644 --- a/ydb/library/yql/providers/common/codec/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/codec/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-library-yql-providers-common-codec-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-common-codec-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_json_codec_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/common/codec/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/codec/ut/CMakeLists.linux-aarch64.txt index bc1dd28c05b1..524d06ad3dc1 100644 --- a/ydb/library/yql/providers/common/codec/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/codec/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-library-yql-providers-common-codec-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-common-codec-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_json_codec_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/common/codec/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/codec/ut/CMakeLists.linux-x86_64.txt index 1f38c1c8d70f..25306306db37 100644 --- a/ydb/library/yql/providers/common/codec/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/codec/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-library-yql-providers-common-codec-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-common-codec-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/codec/yql_json_codec_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/common/codec/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/codec/ut/CMakeLists.windows-x86_64.txt index bfe1b6a60dd5..c66773f2dc6b 100644 --- a/ydb/library/yql/providers/common/codec/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/codec/ut/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/common/comp_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/comp_nodes/CMakeLists.darwin-arm64.txt index f559551f3b9f..9806f1c3d7bc 100644 --- a/ydb/library/yql/providers/common/comp_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/comp_nodes/CMakeLists.darwin-arm64.txt @@ -16,20 +16,27 @@ target_link_libraries(providers-common-comp_nodes PUBLIC yutil library-yql-ast yql-ast-serialize - minikql-computation-llvm + yql-minikql-computation library-yql-core yql-core-type_ann providers-common-codec common-schema-expr - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(providers-common-comp_nodes PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_factory.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formatcode.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattype.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattypediff.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_makecode.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_maketype.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_parsetypehandle.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_position.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_reprcode.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_serializetypehandle.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_splittype.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_type_resource.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_typehandle.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_typekind.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formatcode.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattype.cpp diff --git a/ydb/library/yql/providers/common/comp_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/comp_nodes/CMakeLists.darwin-x86_64.txt index f559551f3b9f..9806f1c3d7bc 100644 --- a/ydb/library/yql/providers/common/comp_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/comp_nodes/CMakeLists.darwin-x86_64.txt @@ -16,20 +16,27 @@ target_link_libraries(providers-common-comp_nodes PUBLIC yutil library-yql-ast yql-ast-serialize - minikql-computation-llvm + yql-minikql-computation library-yql-core yql-core-type_ann providers-common-codec common-schema-expr - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(providers-common-comp_nodes PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_factory.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formatcode.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattype.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattypediff.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_makecode.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_maketype.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_parsetypehandle.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_position.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_reprcode.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_serializetypehandle.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_splittype.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_type_resource.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_typehandle.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_typekind.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formatcode.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattype.cpp diff --git a/ydb/library/yql/providers/common/comp_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/comp_nodes/CMakeLists.linux-aarch64.txt index e9e8316ac3b0..4a47cc76f02e 100644 --- a/ydb/library/yql/providers/common/comp_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/comp_nodes/CMakeLists.linux-aarch64.txt @@ -17,20 +17,27 @@ target_link_libraries(providers-common-comp_nodes PUBLIC yutil library-yql-ast yql-ast-serialize - minikql-computation-llvm + yql-minikql-computation library-yql-core yql-core-type_ann providers-common-codec common-schema-expr - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(providers-common-comp_nodes PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_factory.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formatcode.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattype.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattypediff.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_makecode.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_maketype.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_parsetypehandle.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_position.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_reprcode.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_serializetypehandle.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_splittype.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_type_resource.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_typehandle.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_typekind.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formatcode.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattype.cpp diff --git a/ydb/library/yql/providers/common/comp_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/comp_nodes/CMakeLists.linux-x86_64.txt index e9e8316ac3b0..4a47cc76f02e 100644 --- a/ydb/library/yql/providers/common/comp_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/comp_nodes/CMakeLists.linux-x86_64.txt @@ -17,20 +17,27 @@ target_link_libraries(providers-common-comp_nodes PUBLIC yutil library-yql-ast yql-ast-serialize - minikql-computation-llvm + yql-minikql-computation library-yql-core yql-core-type_ann providers-common-codec common-schema-expr - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(providers-common-comp_nodes PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_factory.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formatcode.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattype.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattypediff.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_makecode.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_maketype.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_parsetypehandle.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_position.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_reprcode.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_serializetypehandle.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_splittype.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_type_resource.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_typehandle.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_typekind.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formatcode.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattype.cpp diff --git a/ydb/library/yql/providers/common/comp_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/comp_nodes/CMakeLists.windows-x86_64.txt index f559551f3b9f..9806f1c3d7bc 100644 --- a/ydb/library/yql/providers/common/comp_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/comp_nodes/CMakeLists.windows-x86_64.txt @@ -16,20 +16,27 @@ target_link_libraries(providers-common-comp_nodes PUBLIC yutil library-yql-ast yql-ast-serialize - minikql-computation-llvm + yql-minikql-computation library-yql-core yql-core-type_ann providers-common-codec common-schema-expr - yql-minikql-codegen - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO ) target_sources(providers-common-comp_nodes PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_factory.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formatcode.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattype.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattypediff.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_makecode.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_maketype.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_parsetypehandle.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_position.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_reprcode.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_serializetypehandle.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_splittype.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_type_resource.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_typehandle.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_typekind.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formatcode.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/comp_nodes/yql_formattype.cpp diff --git a/ydb/library/yql/providers/common/config/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/config/CMakeLists.darwin-arm64.txt index 769b029dfdc3..effddd2532b8 100644 --- a/ydb/library/yql/providers/common/config/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/config/CMakeLists.darwin-arm64.txt @@ -22,6 +22,7 @@ target_link_libraries(providers-common-config PUBLIC cpp-string_utils-levenshtein_diff ) target_sources(providers-common-config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_setting.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_configuration_transformer.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_dispatch.cpp ) diff --git a/ydb/library/yql/providers/common/config/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/config/CMakeLists.darwin-x86_64.txt index 769b029dfdc3..effddd2532b8 100644 --- a/ydb/library/yql/providers/common/config/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/config/CMakeLists.darwin-x86_64.txt @@ -22,6 +22,7 @@ target_link_libraries(providers-common-config PUBLIC cpp-string_utils-levenshtein_diff ) target_sources(providers-common-config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_setting.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_configuration_transformer.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_dispatch.cpp ) diff --git a/ydb/library/yql/providers/common/config/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/config/CMakeLists.linux-aarch64.txt index bd721c96e9cf..62071afb287a 100644 --- a/ydb/library/yql/providers/common/config/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/config/CMakeLists.linux-aarch64.txt @@ -23,6 +23,7 @@ target_link_libraries(providers-common-config PUBLIC cpp-string_utils-levenshtein_diff ) target_sources(providers-common-config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_setting.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_configuration_transformer.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_dispatch.cpp ) diff --git a/ydb/library/yql/providers/common/config/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/config/CMakeLists.linux-x86_64.txt index bd721c96e9cf..62071afb287a 100644 --- a/ydb/library/yql/providers/common/config/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/config/CMakeLists.linux-x86_64.txt @@ -23,6 +23,7 @@ target_link_libraries(providers-common-config PUBLIC cpp-string_utils-levenshtein_diff ) target_sources(providers-common-config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_setting.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_configuration_transformer.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_dispatch.cpp ) diff --git a/ydb/library/yql/providers/common/config/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/config/CMakeLists.windows-x86_64.txt index 769b029dfdc3..effddd2532b8 100644 --- a/ydb/library/yql/providers/common/config/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/config/CMakeLists.windows-x86_64.txt @@ -22,6 +22,7 @@ target_link_libraries(providers-common-config PUBLIC cpp-string_utils-levenshtein_diff ) target_sources(providers-common-config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_setting.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_configuration_transformer.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/config/yql_dispatch.cpp ) diff --git a/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.darwin-arm64.txt index 2a1c24b27b01..474f0c904386 100644 --- a/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.darwin-arm64.txt @@ -25,6 +25,10 @@ target_link_libraries(providers-common-db_id_async_resolver PUBLIC yql-public-issue tools-enum_parser-enum_serialization_runtime ) +target_sources(providers-common-db_id_async_resolver PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/db_async_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/mdb_endpoint_generator.h +) generate_enum_serilization(providers-common-db_id_async_resolver ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/db_async_resolver.h INCLUDE_HEADERS diff --git a/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.darwin-x86_64.txt index 2a1c24b27b01..474f0c904386 100644 --- a/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.darwin-x86_64.txt @@ -25,6 +25,10 @@ target_link_libraries(providers-common-db_id_async_resolver PUBLIC yql-public-issue tools-enum_parser-enum_serialization_runtime ) +target_sources(providers-common-db_id_async_resolver PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/db_async_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/mdb_endpoint_generator.h +) generate_enum_serilization(providers-common-db_id_async_resolver ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/db_async_resolver.h INCLUDE_HEADERS diff --git a/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.linux-aarch64.txt index c1487ce767a9..8df14061ddd9 100644 --- a/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.linux-aarch64.txt @@ -26,6 +26,10 @@ target_link_libraries(providers-common-db_id_async_resolver PUBLIC yql-public-issue tools-enum_parser-enum_serialization_runtime ) +target_sources(providers-common-db_id_async_resolver PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/db_async_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/mdb_endpoint_generator.h +) generate_enum_serilization(providers-common-db_id_async_resolver ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/db_async_resolver.h INCLUDE_HEADERS diff --git a/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.linux-x86_64.txt index c1487ce767a9..8df14061ddd9 100644 --- a/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.linux-x86_64.txt @@ -26,6 +26,10 @@ target_link_libraries(providers-common-db_id_async_resolver PUBLIC yql-public-issue tools-enum_parser-enum_serialization_runtime ) +target_sources(providers-common-db_id_async_resolver PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/db_async_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/mdb_endpoint_generator.h +) generate_enum_serilization(providers-common-db_id_async_resolver ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/db_async_resolver.h INCLUDE_HEADERS diff --git a/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.windows-x86_64.txt index 2a1c24b27b01..474f0c904386 100644 --- a/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/db_id_async_resolver/CMakeLists.windows-x86_64.txt @@ -25,6 +25,10 @@ target_link_libraries(providers-common-db_id_async_resolver PUBLIC yql-public-issue tools-enum_parser-enum_serialization_runtime ) +target_sources(providers-common-db_id_async_resolver PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/db_async_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/mdb_endpoint_generator.h +) generate_enum_serilization(providers-common-db_id_async_resolver ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/db_id_async_resolver/db_async_resolver.h INCLUDE_HEADERS diff --git a/ydb/library/yql/providers/common/gateway/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/gateway/CMakeLists.darwin-arm64.txt index d3d0e1bddff3..8687b632636d 100644 --- a/ydb/library/yql/providers/common/gateway/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/gateway/CMakeLists.darwin-arm64.txt @@ -15,5 +15,6 @@ target_link_libraries(providers-common-gateway PUBLIC library-yql-ast ) target_sources(providers-common-gateway PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/gateway/yql_provider_gateway.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/gateway/yql_provider_gateway.cpp ) diff --git a/ydb/library/yql/providers/common/gateway/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/gateway/CMakeLists.darwin-x86_64.txt index d3d0e1bddff3..8687b632636d 100644 --- a/ydb/library/yql/providers/common/gateway/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/gateway/CMakeLists.darwin-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(providers-common-gateway PUBLIC library-yql-ast ) target_sources(providers-common-gateway PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/gateway/yql_provider_gateway.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/gateway/yql_provider_gateway.cpp ) diff --git a/ydb/library/yql/providers/common/gateway/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/gateway/CMakeLists.linux-aarch64.txt index e9f7a10f2540..813166fe202b 100644 --- a/ydb/library/yql/providers/common/gateway/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/gateway/CMakeLists.linux-aarch64.txt @@ -16,5 +16,6 @@ target_link_libraries(providers-common-gateway PUBLIC library-yql-ast ) target_sources(providers-common-gateway PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/gateway/yql_provider_gateway.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/gateway/yql_provider_gateway.cpp ) diff --git a/ydb/library/yql/providers/common/gateway/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/gateway/CMakeLists.linux-x86_64.txt index e9f7a10f2540..813166fe202b 100644 --- a/ydb/library/yql/providers/common/gateway/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/gateway/CMakeLists.linux-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(providers-common-gateway PUBLIC library-yql-ast ) target_sources(providers-common-gateway PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/gateway/yql_provider_gateway.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/gateway/yql_provider_gateway.cpp ) diff --git a/ydb/library/yql/providers/common/gateway/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/gateway/CMakeLists.windows-x86_64.txt index d3d0e1bddff3..8687b632636d 100644 --- a/ydb/library/yql/providers/common/gateway/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/gateway/CMakeLists.windows-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(providers-common-gateway PUBLIC library-yql-ast ) target_sources(providers-common-gateway PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/gateway/yql_provider_gateway.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/gateway/yql_provider_gateway.cpp ) diff --git a/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.darwin-arm64.txt index 55e75becfd17..8ae005542943 100644 --- a/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-library-yql-providers-common-http_gateway-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-common-http_gateway-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/http_gateway/yql_dns_gateway_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.darwin-x86_64.txt index fb317d341c08..eef7ecca631e 100644 --- a/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-library-yql-providers-common-http_gateway-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-common-http_gateway-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/http_gateway/yql_dns_gateway_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.linux-aarch64.txt index 83a4e5624c34..218745cd7b93 100644 --- a/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-library-yql-providers-common-http_gateway-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-common-http_gateway-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/http_gateway/yql_dns_gateway_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.linux-x86_64.txt index 5e73f3c7c410..a36059abcc9f 100644 --- a/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-library-yql-providers-common-http_gateway-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-common-http_gateway-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/http_gateway/yql_dns_gateway_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.windows-x86_64.txt index 49d6e16b092d..e276747ea03f 100644 --- a/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/http_gateway/ut/CMakeLists.windows-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/common/metrics/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/metrics/protos/CMakeLists.darwin-arm64.txt index e4138a2b75e2..e1b76a64f804 100644 --- a/ydb/library/yql/providers/common/metrics/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/metrics/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(common-metrics-protos PUBLIC target_proto_messages(common-metrics-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/metrics/protos/metrics_registry.proto ) +target_sources(common-metrics-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/metrics/protos/metrics_registry.pb.h +) target_proto_addincls(common-metrics-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/common/metrics/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/metrics/protos/CMakeLists.darwin-x86_64.txt index e4138a2b75e2..e1b76a64f804 100644 --- a/ydb/library/yql/providers/common/metrics/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/metrics/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(common-metrics-protos PUBLIC target_proto_messages(common-metrics-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/metrics/protos/metrics_registry.proto ) +target_sources(common-metrics-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/metrics/protos/metrics_registry.pb.h +) target_proto_addincls(common-metrics-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/common/metrics/protos/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/metrics/protos/CMakeLists.linux-aarch64.txt index 7cf0fa8c6a5d..0195823c91e9 100644 --- a/ydb/library/yql/providers/common/metrics/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/metrics/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(common-metrics-protos PUBLIC target_proto_messages(common-metrics-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/metrics/protos/metrics_registry.proto ) +target_sources(common-metrics-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/metrics/protos/metrics_registry.pb.h +) target_proto_addincls(common-metrics-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/common/metrics/protos/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/metrics/protos/CMakeLists.linux-x86_64.txt index 7cf0fa8c6a5d..0195823c91e9 100644 --- a/ydb/library/yql/providers/common/metrics/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/metrics/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(common-metrics-protos PUBLIC target_proto_messages(common-metrics-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/metrics/protos/metrics_registry.proto ) +target_sources(common-metrics-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/metrics/protos/metrics_registry.pb.h +) target_proto_addincls(common-metrics-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/common/metrics/protos/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/metrics/protos/CMakeLists.windows-x86_64.txt index e4138a2b75e2..e1b76a64f804 100644 --- a/ydb/library/yql/providers/common/metrics/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/metrics/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(common-metrics-protos PUBLIC target_proto_messages(common-metrics-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/metrics/protos/metrics_registry.proto ) +target_sources(common-metrics-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/metrics/protos/metrics_registry.pb.h +) target_proto_addincls(common-metrics-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/common/mkql/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/mkql/CMakeLists.darwin-arm64.txt index ee01009ed164..1ad1ce16faf3 100644 --- a/ydb/library/yql/providers/common/mkql/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/mkql/CMakeLists.darwin-arm64.txt @@ -27,6 +27,9 @@ target_link_libraries(providers-common-mkql PUBLIC yql-parser-pg_catalog ) target_sources(providers-common-mkql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/parser.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_provider_mkql.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_type_mkql.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/parser.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_type_mkql.cpp diff --git a/ydb/library/yql/providers/common/mkql/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/mkql/CMakeLists.darwin-x86_64.txt index ee01009ed164..1ad1ce16faf3 100644 --- a/ydb/library/yql/providers/common/mkql/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/mkql/CMakeLists.darwin-x86_64.txt @@ -27,6 +27,9 @@ target_link_libraries(providers-common-mkql PUBLIC yql-parser-pg_catalog ) target_sources(providers-common-mkql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/parser.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_provider_mkql.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_type_mkql.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/parser.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_type_mkql.cpp diff --git a/ydb/library/yql/providers/common/mkql/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/mkql/CMakeLists.linux-aarch64.txt index 94ae336cc2c5..a5f8baaa8c25 100644 --- a/ydb/library/yql/providers/common/mkql/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/mkql/CMakeLists.linux-aarch64.txt @@ -28,6 +28,9 @@ target_link_libraries(providers-common-mkql PUBLIC yql-parser-pg_catalog ) target_sources(providers-common-mkql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/parser.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_provider_mkql.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_type_mkql.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/parser.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_type_mkql.cpp diff --git a/ydb/library/yql/providers/common/mkql/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/mkql/CMakeLists.linux-x86_64.txt index 94ae336cc2c5..a5f8baaa8c25 100644 --- a/ydb/library/yql/providers/common/mkql/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/mkql/CMakeLists.linux-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(providers-common-mkql PUBLIC yql-parser-pg_catalog ) target_sources(providers-common-mkql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/parser.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_provider_mkql.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_type_mkql.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/parser.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_type_mkql.cpp diff --git a/ydb/library/yql/providers/common/mkql/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/mkql/CMakeLists.windows-x86_64.txt index ee01009ed164..1ad1ce16faf3 100644 --- a/ydb/library/yql/providers/common/mkql/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/mkql/CMakeLists.windows-x86_64.txt @@ -27,6 +27,9 @@ target_link_libraries(providers-common-mkql PUBLIC yql-parser-pg_catalog ) target_sources(providers-common-mkql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/parser.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_provider_mkql.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_type_mkql.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/parser.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_provider_mkql.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/mkql/yql_type_mkql.cpp diff --git a/ydb/library/yql/providers/common/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/proto/CMakeLists.darwin-arm64.txt index 962067cd496e..2895acb6466a 100644 --- a/ydb/library/yql/providers/common/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/proto/CMakeLists.darwin-arm64.txt @@ -43,6 +43,10 @@ target_proto_messages(providers-common-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/proto/gateways_config.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/proto/udf_resolver.proto ) +target_sources(providers-common-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/proto/gateways_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/proto/udf_resolver.pb.h +) target_proto_addincls(providers-common-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/common/proto/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/proto/CMakeLists.darwin-x86_64.txt index 962067cd496e..2895acb6466a 100644 --- a/ydb/library/yql/providers/common/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/proto/CMakeLists.darwin-x86_64.txt @@ -43,6 +43,10 @@ target_proto_messages(providers-common-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/proto/gateways_config.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/proto/udf_resolver.proto ) +target_sources(providers-common-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/proto/gateways_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/proto/udf_resolver.pb.h +) target_proto_addincls(providers-common-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/common/proto/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/proto/CMakeLists.linux-aarch64.txt index 9925b68fbfb3..fc268c974285 100644 --- a/ydb/library/yql/providers/common/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/proto/CMakeLists.linux-aarch64.txt @@ -44,6 +44,10 @@ target_proto_messages(providers-common-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/proto/gateways_config.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/proto/udf_resolver.proto ) +target_sources(providers-common-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/proto/gateways_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/proto/udf_resolver.pb.h +) target_proto_addincls(providers-common-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/common/proto/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/proto/CMakeLists.linux-x86_64.txt index 9925b68fbfb3..fc268c974285 100644 --- a/ydb/library/yql/providers/common/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/proto/CMakeLists.linux-x86_64.txt @@ -44,6 +44,10 @@ target_proto_messages(providers-common-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/proto/gateways_config.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/proto/udf_resolver.proto ) +target_sources(providers-common-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/proto/gateways_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/proto/udf_resolver.pb.h +) target_proto_addincls(providers-common-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/common/proto/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/proto/CMakeLists.windows-x86_64.txt index 962067cd496e..2895acb6466a 100644 --- a/ydb/library/yql/providers/common/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/proto/CMakeLists.windows-x86_64.txt @@ -43,6 +43,10 @@ target_proto_messages(providers-common-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/proto/gateways_config.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/proto/udf_resolver.proto ) +target_sources(providers-common-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/proto/gateways_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/proto/udf_resolver.pb.h +) target_proto_addincls(providers-common-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/common/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/provider/CMakeLists.darwin-arm64.txt index 8933bfd7116e..3d4baa25111c 100644 --- a/ydb/library/yql/providers/common/provider/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/provider/CMakeLists.darwin-arm64.txt @@ -20,6 +20,10 @@ target_link_libraries(providers-common-provider PUBLIC library-yql-core ) target_sources(providers-common-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_data_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider_names.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_table_lookup.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_data_provider_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_table_lookup.cpp diff --git a/ydb/library/yql/providers/common/provider/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/provider/CMakeLists.darwin-x86_64.txt index 8933bfd7116e..3d4baa25111c 100644 --- a/ydb/library/yql/providers/common/provider/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/provider/CMakeLists.darwin-x86_64.txt @@ -20,6 +20,10 @@ target_link_libraries(providers-common-provider PUBLIC library-yql-core ) target_sources(providers-common-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_data_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider_names.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_table_lookup.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_data_provider_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_table_lookup.cpp diff --git a/ydb/library/yql/providers/common/provider/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/provider/CMakeLists.linux-aarch64.txt index 1573d99d010d..d9ceba24a7cc 100644 --- a/ydb/library/yql/providers/common/provider/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/provider/CMakeLists.linux-aarch64.txt @@ -21,6 +21,10 @@ target_link_libraries(providers-common-provider PUBLIC library-yql-core ) target_sources(providers-common-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_data_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider_names.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_table_lookup.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_data_provider_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_table_lookup.cpp diff --git a/ydb/library/yql/providers/common/provider/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/provider/CMakeLists.linux-x86_64.txt index 1573d99d010d..d9ceba24a7cc 100644 --- a/ydb/library/yql/providers/common/provider/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/provider/CMakeLists.linux-x86_64.txt @@ -21,6 +21,10 @@ target_link_libraries(providers-common-provider PUBLIC library-yql-core ) target_sources(providers-common-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_data_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider_names.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_table_lookup.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_data_provider_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_table_lookup.cpp diff --git a/ydb/library/yql/providers/common/provider/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/provider/CMakeLists.windows-x86_64.txt index 8933bfd7116e..3d4baa25111c 100644 --- a/ydb/library/yql/providers/common/provider/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/provider/CMakeLists.windows-x86_64.txt @@ -20,6 +20,10 @@ target_link_libraries(providers-common-provider PUBLIC library-yql-core ) target_sources(providers-common-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_data_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider_names.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_table_lookup.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_data_provider_impl.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_provider.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/provider/yql_table_lookup.cpp diff --git a/ydb/library/yql/providers/common/structured_token/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/structured_token/CMakeLists.darwin-arm64.txt index 75b84199aa6e..ac2d1d58b456 100644 --- a/ydb/library/yql/providers/common/structured_token/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/structured_token/CMakeLists.darwin-arm64.txt @@ -17,6 +17,8 @@ target_link_libraries(providers-common-structured_token PUBLIC library-yql-utils ) target_sources(providers-common-structured_token PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_structured_token.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_token_builder.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_structured_token.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_token_builder.cpp ) diff --git a/ydb/library/yql/providers/common/structured_token/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/structured_token/CMakeLists.darwin-x86_64.txt index 75b84199aa6e..ac2d1d58b456 100644 --- a/ydb/library/yql/providers/common/structured_token/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/structured_token/CMakeLists.darwin-x86_64.txt @@ -17,6 +17,8 @@ target_link_libraries(providers-common-structured_token PUBLIC library-yql-utils ) target_sources(providers-common-structured_token PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_structured_token.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_token_builder.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_structured_token.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_token_builder.cpp ) diff --git a/ydb/library/yql/providers/common/structured_token/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/structured_token/CMakeLists.linux-aarch64.txt index 6c23ea45754e..f240cbb67585 100644 --- a/ydb/library/yql/providers/common/structured_token/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/structured_token/CMakeLists.linux-aarch64.txt @@ -18,6 +18,8 @@ target_link_libraries(providers-common-structured_token PUBLIC library-yql-utils ) target_sources(providers-common-structured_token PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_structured_token.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_token_builder.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_structured_token.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_token_builder.cpp ) diff --git a/ydb/library/yql/providers/common/structured_token/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/structured_token/CMakeLists.linux-x86_64.txt index 6c23ea45754e..f240cbb67585 100644 --- a/ydb/library/yql/providers/common/structured_token/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/structured_token/CMakeLists.linux-x86_64.txt @@ -18,6 +18,8 @@ target_link_libraries(providers-common-structured_token PUBLIC library-yql-utils ) target_sources(providers-common-structured_token PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_structured_token.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_token_builder.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_structured_token.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_token_builder.cpp ) diff --git a/ydb/library/yql/providers/common/structured_token/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/structured_token/CMakeLists.windows-x86_64.txt index 75b84199aa6e..ac2d1d58b456 100644 --- a/ydb/library/yql/providers/common/structured_token/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/structured_token/CMakeLists.windows-x86_64.txt @@ -17,6 +17,8 @@ target_link_libraries(providers-common-structured_token PUBLIC library-yql-utils ) target_sources(providers-common-structured_token PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_structured_token.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_token_builder.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_structured_token.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/structured_token/yql_token_builder.cpp ) diff --git a/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.darwin-arm64.txt index fc141ed146ec..dfe8c491440a 100644 --- a/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/structured_token/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(yql-providers-common-structured_token-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) 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 @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 75fcf42ce22d..3003289d9ffa 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 @@ -22,8 +22,6 @@ target_link_options(yql-providers-common-structured_token-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) 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 @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 55b58634b369..9cbbfd8550cd 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 @@ -24,9 +24,6 @@ target_link_options(yql-providers-common-structured_token-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) 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 @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 7072a495309c..e532566745c6 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 @@ -25,9 +25,6 @@ target_link_options(yql-providers-common-structured_token-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) 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 @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 37018fc8d9a2..28ee10a8f477 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 @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.darwin-arm64.txt index b1ce956e1c6f..cc9d3f8571a4 100644 --- a/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.darwin-arm64.txt @@ -38,6 +38,10 @@ target_link_libraries(common-token_accessor-grpc PUBLIC target_proto_messages(common-token_accessor-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.proto ) +target_sources(common-token_accessor-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.grpc.pb.h +) target_proto_addincls(common-token_accessor-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.darwin-x86_64.txt index b1ce956e1c6f..cc9d3f8571a4 100644 --- a/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.darwin-x86_64.txt @@ -38,6 +38,10 @@ target_link_libraries(common-token_accessor-grpc PUBLIC target_proto_messages(common-token_accessor-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.proto ) +target_sources(common-token_accessor-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.grpc.pb.h +) target_proto_addincls(common-token_accessor-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.linux-aarch64.txt index 9b5a78a1df24..412eeaa9a2e3 100644 --- a/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.linux-aarch64.txt @@ -39,6 +39,10 @@ target_link_libraries(common-token_accessor-grpc PUBLIC target_proto_messages(common-token_accessor-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.proto ) +target_sources(common-token_accessor-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.grpc.pb.h +) target_proto_addincls(common-token_accessor-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.linux-x86_64.txt index 9b5a78a1df24..412eeaa9a2e3 100644 --- a/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.linux-x86_64.txt @@ -39,6 +39,10 @@ target_link_libraries(common-token_accessor-grpc PUBLIC target_proto_messages(common-token_accessor-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.proto ) +target_sources(common-token_accessor-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.grpc.pb.h +) target_proto_addincls(common-token_accessor-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.windows-x86_64.txt index b1ce956e1c6f..cc9d3f8571a4 100644 --- a/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/token_accessor/grpc/CMakeLists.windows-x86_64.txt @@ -38,6 +38,10 @@ target_link_libraries(common-token_accessor-grpc PUBLIC target_proto_messages(common-token_accessor-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.proto ) +target_sources(common-token_accessor-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/common/token_accessor/grpc/token_accessor_pb.grpc.pb.h +) target_proto_addincls(common-token_accessor-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-arm64.txt index 77ba8d72e5fc..96668726f658 100644 --- a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-arm64.txt @@ -27,6 +27,10 @@ target_link_libraries(providers-common-udf_resolve PUBLIC common-schema-expr ) target_sources(providers-common-udf_resolve PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_files_box.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_outproc_udf_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_simple_udf_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_udf_resolver_with_index.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_files_box.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_outproc_udf_resolver.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_simple_udf_resolver.cpp diff --git a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-x86_64.txt index 77ba8d72e5fc..96668726f658 100644 --- a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.darwin-x86_64.txt @@ -27,6 +27,10 @@ target_link_libraries(providers-common-udf_resolve PUBLIC common-schema-expr ) target_sources(providers-common-udf_resolve PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_files_box.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_outproc_udf_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_simple_udf_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_udf_resolver_with_index.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_files_box.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_outproc_udf_resolver.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_simple_udf_resolver.cpp diff --git a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-aarch64.txt index 557d2db701f1..35ea0c66be5c 100644 --- a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-aarch64.txt @@ -28,6 +28,10 @@ target_link_libraries(providers-common-udf_resolve PUBLIC common-schema-expr ) target_sources(providers-common-udf_resolve PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_files_box.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_outproc_udf_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_simple_udf_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_udf_resolver_with_index.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_files_box.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_outproc_udf_resolver.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_simple_udf_resolver.cpp diff --git a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-x86_64.txt index 557d2db701f1..35ea0c66be5c 100644 --- a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.linux-x86_64.txt @@ -28,6 +28,10 @@ target_link_libraries(providers-common-udf_resolve PUBLIC common-schema-expr ) target_sources(providers-common-udf_resolve PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_files_box.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_outproc_udf_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_simple_udf_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_udf_resolver_with_index.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_files_box.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_outproc_udf_resolver.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_simple_udf_resolver.cpp diff --git a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.windows-x86_64.txt index 77ba8d72e5fc..96668726f658 100644 --- a/ydb/library/yql/providers/common/udf_resolve/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/udf_resolve/CMakeLists.windows-x86_64.txt @@ -27,6 +27,10 @@ target_link_libraries(providers-common-udf_resolve PUBLIC common-schema-expr ) target_sources(providers-common-udf_resolve PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_files_box.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_outproc_udf_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_simple_udf_resolver.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_udf_resolver_with_index.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_files_box.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_outproc_udf_resolver.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/common/udf_resolve/yql_simple_udf_resolver.cpp diff --git a/ydb/library/yql/providers/common/ut_helpers/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/common/ut_helpers/CMakeLists.darwin-arm64.txt index 47d6d6a20795..485a14066704 100644 --- a/ydb/library/yql/providers/common/ut_helpers/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/common/ut_helpers/CMakeLists.darwin-arm64.txt @@ -16,7 +16,7 @@ target_link_libraries(providers-common-ut_helpers PUBLIC yutil library-cpp-retry core-testlib-basics - minikql-computation-llvm + yql-minikql-computation udf-service-exception_policy library-yql-sql providers-common-comp_nodes diff --git a/ydb/library/yql/providers/common/ut_helpers/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/common/ut_helpers/CMakeLists.darwin-x86_64.txt index 47d6d6a20795..485a14066704 100644 --- a/ydb/library/yql/providers/common/ut_helpers/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/common/ut_helpers/CMakeLists.darwin-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(providers-common-ut_helpers PUBLIC yutil library-cpp-retry core-testlib-basics - minikql-computation-llvm + yql-minikql-computation udf-service-exception_policy library-yql-sql providers-common-comp_nodes diff --git a/ydb/library/yql/providers/common/ut_helpers/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/common/ut_helpers/CMakeLists.linux-aarch64.txt index b532046c4a34..7c83c84b9d32 100644 --- a/ydb/library/yql/providers/common/ut_helpers/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/common/ut_helpers/CMakeLists.linux-aarch64.txt @@ -17,7 +17,7 @@ target_link_libraries(providers-common-ut_helpers PUBLIC yutil library-cpp-retry core-testlib-basics - minikql-computation-llvm + yql-minikql-computation udf-service-exception_policy library-yql-sql providers-common-comp_nodes diff --git a/ydb/library/yql/providers/common/ut_helpers/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/common/ut_helpers/CMakeLists.linux-x86_64.txt index b532046c4a34..7c83c84b9d32 100644 --- a/ydb/library/yql/providers/common/ut_helpers/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/common/ut_helpers/CMakeLists.linux-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(providers-common-ut_helpers PUBLIC yutil library-cpp-retry core-testlib-basics - minikql-computation-llvm + yql-minikql-computation udf-service-exception_policy library-yql-sql providers-common-comp_nodes diff --git a/ydb/library/yql/providers/common/ut_helpers/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/common/ut_helpers/CMakeLists.windows-x86_64.txt index 47d6d6a20795..485a14066704 100644 --- a/ydb/library/yql/providers/common/ut_helpers/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/common/ut_helpers/CMakeLists.windows-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(providers-common-ut_helpers PUBLIC yutil library-cpp-retry core-testlib-basics - minikql-computation-llvm + yql-minikql-computation udf-service-exception_policy library-yql-sql providers-common-comp_nodes diff --git a/ydb/library/yql/providers/config/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/config/CMakeLists.darwin-arm64.txt index d2daa2064b6c..429e64ad1550 100644 --- a/ydb/library/yql/providers/config/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/config/CMakeLists.darwin-arm64.txt @@ -26,5 +26,6 @@ target_link_libraries(yql-providers-config PUBLIC providers-common-activation ) target_sources(yql-providers-config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/config/yql_config_provider.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/config/yql_config_provider.cpp ) diff --git a/ydb/library/yql/providers/config/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/config/CMakeLists.darwin-x86_64.txt index d2daa2064b6c..429e64ad1550 100644 --- a/ydb/library/yql/providers/config/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/config/CMakeLists.darwin-x86_64.txt @@ -26,5 +26,6 @@ target_link_libraries(yql-providers-config PUBLIC providers-common-activation ) target_sources(yql-providers-config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/config/yql_config_provider.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/config/yql_config_provider.cpp ) diff --git a/ydb/library/yql/providers/config/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/config/CMakeLists.linux-aarch64.txt index acfd736aac10..c8982af1de83 100644 --- a/ydb/library/yql/providers/config/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/config/CMakeLists.linux-aarch64.txt @@ -27,5 +27,6 @@ target_link_libraries(yql-providers-config PUBLIC providers-common-activation ) target_sources(yql-providers-config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/config/yql_config_provider.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/config/yql_config_provider.cpp ) diff --git a/ydb/library/yql/providers/config/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/config/CMakeLists.linux-x86_64.txt index acfd736aac10..c8982af1de83 100644 --- a/ydb/library/yql/providers/config/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/config/CMakeLists.linux-x86_64.txt @@ -27,5 +27,6 @@ target_link_libraries(yql-providers-config PUBLIC providers-common-activation ) target_sources(yql-providers-config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/config/yql_config_provider.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/config/yql_config_provider.cpp ) diff --git a/ydb/library/yql/providers/config/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/config/CMakeLists.windows-x86_64.txt index d2daa2064b6c..429e64ad1550 100644 --- a/ydb/library/yql/providers/config/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/config/CMakeLists.windows-x86_64.txt @@ -26,5 +26,6 @@ target_link_libraries(yql-providers-config PUBLIC providers-common-activation ) target_sources(yql-providers-config PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/config/yql_config_provider.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/config/yql_config_provider.cpp ) diff --git a/ydb/library/yql/providers/dq/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/CMakeLists.darwin-arm64.txt deleted file mode 100644 index a72600c8cf3d..000000000000 --- a/ydb/library/yql/providers/dq/CMakeLists.darwin-arm64.txt +++ /dev/null @@ -1,29 +0,0 @@ - -# 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(actors) -add_subdirectory(api) -add_subdirectory(common) -add_subdirectory(config) -add_subdirectory(counters) -add_subdirectory(expr_nodes) -add_subdirectory(global_worker_manager) -add_subdirectory(interface) -add_subdirectory(local_gateway) -add_subdirectory(metrics) -add_subdirectory(mkql) -add_subdirectory(opt) -add_subdirectory(planner) -add_subdirectory(provider) -add_subdirectory(runtime) -add_subdirectory(scheduler) -add_subdirectory(service) -add_subdirectory(stats_collector) -add_subdirectory(task_runner) -add_subdirectory(task_runner_actor) -add_subdirectory(worker_manager) diff --git a/ydb/library/yql/providers/dq/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/CMakeLists.darwin-x86_64.txt deleted file mode 100644 index a72600c8cf3d..000000000000 --- a/ydb/library/yql/providers/dq/CMakeLists.darwin-x86_64.txt +++ /dev/null @@ -1,29 +0,0 @@ - -# 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(actors) -add_subdirectory(api) -add_subdirectory(common) -add_subdirectory(config) -add_subdirectory(counters) -add_subdirectory(expr_nodes) -add_subdirectory(global_worker_manager) -add_subdirectory(interface) -add_subdirectory(local_gateway) -add_subdirectory(metrics) -add_subdirectory(mkql) -add_subdirectory(opt) -add_subdirectory(planner) -add_subdirectory(provider) -add_subdirectory(runtime) -add_subdirectory(scheduler) -add_subdirectory(service) -add_subdirectory(stats_collector) -add_subdirectory(task_runner) -add_subdirectory(task_runner_actor) -add_subdirectory(worker_manager) diff --git a/ydb/library/yql/providers/dq/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/CMakeLists.linux-aarch64.txt deleted file mode 100644 index a72600c8cf3d..000000000000 --- a/ydb/library/yql/providers/dq/CMakeLists.linux-aarch64.txt +++ /dev/null @@ -1,29 +0,0 @@ - -# 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(actors) -add_subdirectory(api) -add_subdirectory(common) -add_subdirectory(config) -add_subdirectory(counters) -add_subdirectory(expr_nodes) -add_subdirectory(global_worker_manager) -add_subdirectory(interface) -add_subdirectory(local_gateway) -add_subdirectory(metrics) -add_subdirectory(mkql) -add_subdirectory(opt) -add_subdirectory(planner) -add_subdirectory(provider) -add_subdirectory(runtime) -add_subdirectory(scheduler) -add_subdirectory(service) -add_subdirectory(stats_collector) -add_subdirectory(task_runner) -add_subdirectory(task_runner_actor) -add_subdirectory(worker_manager) diff --git a/ydb/library/yql/providers/dq/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/CMakeLists.linux-x86_64.txt deleted file mode 100644 index a72600c8cf3d..000000000000 --- a/ydb/library/yql/providers/dq/CMakeLists.linux-x86_64.txt +++ /dev/null @@ -1,29 +0,0 @@ - -# 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(actors) -add_subdirectory(api) -add_subdirectory(common) -add_subdirectory(config) -add_subdirectory(counters) -add_subdirectory(expr_nodes) -add_subdirectory(global_worker_manager) -add_subdirectory(interface) -add_subdirectory(local_gateway) -add_subdirectory(metrics) -add_subdirectory(mkql) -add_subdirectory(opt) -add_subdirectory(planner) -add_subdirectory(provider) -add_subdirectory(runtime) -add_subdirectory(scheduler) -add_subdirectory(service) -add_subdirectory(stats_collector) -add_subdirectory(task_runner) -add_subdirectory(task_runner_actor) -add_subdirectory(worker_manager) diff --git a/ydb/library/yql/providers/dq/CMakeLists.txt b/ydb/library/yql/providers/dq/CMakeLists.txt index d863ebd18067..a72600c8cf3d 100644 --- a/ydb/library/yql/providers/dq/CMakeLists.txt +++ b/ydb/library/yql/providers/dq/CMakeLists.txt @@ -6,14 +6,24 @@ # original buildsystem will not be accepted. -if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA) - include(CMakeLists.linux-x86_64.txt) -elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) -endif() +add_subdirectory(actors) +add_subdirectory(api) +add_subdirectory(common) +add_subdirectory(config) +add_subdirectory(counters) +add_subdirectory(expr_nodes) +add_subdirectory(global_worker_manager) +add_subdirectory(interface) +add_subdirectory(local_gateway) +add_subdirectory(metrics) +add_subdirectory(mkql) +add_subdirectory(opt) +add_subdirectory(planner) +add_subdirectory(provider) +add_subdirectory(runtime) +add_subdirectory(scheduler) +add_subdirectory(service) +add_subdirectory(stats_collector) +add_subdirectory(task_runner) +add_subdirectory(task_runner_actor) +add_subdirectory(worker_manager) diff --git a/ydb/library/yql/providers/dq/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/CMakeLists.windows-x86_64.txt deleted file mode 100644 index f57ff8ff790c..000000000000 --- a/ydb/library/yql/providers/dq/CMakeLists.windows-x86_64.txt +++ /dev/null @@ -1,27 +0,0 @@ - -# 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(actors) -add_subdirectory(api) -add_subdirectory(common) -add_subdirectory(config) -add_subdirectory(counters) -add_subdirectory(expr_nodes) -add_subdirectory(global_worker_manager) -add_subdirectory(interface) -add_subdirectory(metrics) -add_subdirectory(mkql) -add_subdirectory(opt) -add_subdirectory(planner) -add_subdirectory(provider) -add_subdirectory(runtime) -add_subdirectory(scheduler) -add_subdirectory(service) -add_subdirectory(task_runner) -add_subdirectory(task_runner_actor) -add_subdirectory(worker_manager) diff --git a/ydb/library/yql/providers/dq/actors/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/actors/ut/CMakeLists.darwin-arm64.txt index 88122dd702be..07829a1cc5a8 100644 --- a/ydb/library/yql/providers/dq/actors/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/dq/actors/ut/CMakeLists.darwin-arm64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-library-yql-providers-dq-actors-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-dq-actors-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/grouped_issues_ut.cpp @@ -63,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/actors/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/actors/ut/CMakeLists.darwin-x86_64.txt index da0b2d6dab13..30fa891bd45d 100644 --- a/ydb/library/yql/providers/dq/actors/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/dq/actors/ut/CMakeLists.darwin-x86_64.txt @@ -32,8 +32,6 @@ target_link_options(ydb-library-yql-providers-dq-actors-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-dq-actors-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/grouped_issues_ut.cpp @@ -64,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/actors/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/actors/ut/CMakeLists.linux-aarch64.txt index a6ab2878fff5..cf7953aa6310 100644 --- a/ydb/library/yql/providers/dq/actors/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/dq/actors/ut/CMakeLists.linux-aarch64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-library-yql-providers-dq-actors-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-dq-actors-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/grouped_issues_ut.cpp @@ -67,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/actors/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/actors/ut/CMakeLists.linux-x86_64.txt index 12a0d9c27fce..a7d38e03c133 100644 --- a/ydb/library/yql/providers/dq/actors/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/dq/actors/ut/CMakeLists.linux-x86_64.txt @@ -35,9 +35,6 @@ target_link_options(ydb-library-yql-providers-dq-actors-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-dq-actors-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/grouped_issues_ut.cpp @@ -68,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/actors/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/actors/ut/CMakeLists.windows-x86_64.txt index 82c094b149e2..d53335368e5d 100644 --- a/ydb/library/yql/providers/dq/actors/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/dq/actors/ut/CMakeLists.windows-x86_64.txt @@ -57,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/actors/yt/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/actors/yt/CMakeLists.darwin-arm64.txt index 4f092792ac02..7bc9b19ac96d 100644 --- a/ydb/library/yql/providers/dq/actors/yt/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/dq/actors/yt/CMakeLists.darwin-arm64.txt @@ -28,6 +28,12 @@ target_link_libraries(dq-actors-yt PUBLIC yt-yt-client ) target_sources(dq-actors-yt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_assigner.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/resource_manager.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_cleaner.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/worker_registrator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/lock.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/yt_wrapper.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_assigner.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/resource_manager.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_cleaner.cpp diff --git a/ydb/library/yql/providers/dq/actors/yt/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/actors/yt/CMakeLists.darwin-x86_64.txt index 4f092792ac02..7bc9b19ac96d 100644 --- a/ydb/library/yql/providers/dq/actors/yt/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/dq/actors/yt/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,12 @@ target_link_libraries(dq-actors-yt PUBLIC yt-yt-client ) target_sources(dq-actors-yt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_assigner.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/resource_manager.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_cleaner.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/worker_registrator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/lock.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/yt_wrapper.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_assigner.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/resource_manager.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_cleaner.cpp diff --git a/ydb/library/yql/providers/dq/actors/yt/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/actors/yt/CMakeLists.linux-aarch64.txt index fc15f03aaa22..42e56dac4a9c 100644 --- a/ydb/library/yql/providers/dq/actors/yt/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/dq/actors/yt/CMakeLists.linux-aarch64.txt @@ -29,6 +29,12 @@ target_link_libraries(dq-actors-yt PUBLIC yt-yt-client ) target_sources(dq-actors-yt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_assigner.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/resource_manager.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_cleaner.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/worker_registrator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/lock.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/yt_wrapper.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_assigner.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/resource_manager.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_cleaner.cpp diff --git a/ydb/library/yql/providers/dq/actors/yt/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/actors/yt/CMakeLists.linux-x86_64.txt index fc15f03aaa22..42e56dac4a9c 100644 --- a/ydb/library/yql/providers/dq/actors/yt/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/dq/actors/yt/CMakeLists.linux-x86_64.txt @@ -29,6 +29,12 @@ target_link_libraries(dq-actors-yt PUBLIC yt-yt-client ) target_sources(dq-actors-yt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_assigner.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/resource_manager.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_cleaner.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/worker_registrator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/lock.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/yt_wrapper.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_assigner.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/resource_manager.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_cleaner.cpp diff --git a/ydb/library/yql/providers/dq/actors/yt/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/actors/yt/CMakeLists.windows-x86_64.txt index 1f3c7886ccc2..658ce38690f9 100644 --- a/ydb/library/yql/providers/dq/actors/yt/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/dq/actors/yt/CMakeLists.windows-x86_64.txt @@ -27,6 +27,8 @@ target_link_libraries(dq-actors-yt PUBLIC dq-actors-events ) target_sources(dq-actors-yt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_assigner.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/resource_manager.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/nodeid_assigner.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/actors/yt/resource_manager.cpp ) diff --git a/ydb/library/yql/providers/dq/api/grpc/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/api/grpc/CMakeLists.darwin-arm64.txt index bead812e5aa8..6016de0c90ef 100644 --- a/ydb/library/yql/providers/dq/api/grpc/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/dq/api/grpc/CMakeLists.darwin-arm64.txt @@ -39,6 +39,10 @@ target_link_libraries(dq-api-grpc PUBLIC target_proto_messages(dq-api-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/grpc/api.proto ) +target_sources(dq-api-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/grpc/api.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/grpc/api.grpc.pb.h +) target_proto_addincls(dq-api-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/dq/api/grpc/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/api/grpc/CMakeLists.darwin-x86_64.txt index bead812e5aa8..6016de0c90ef 100644 --- a/ydb/library/yql/providers/dq/api/grpc/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/dq/api/grpc/CMakeLists.darwin-x86_64.txt @@ -39,6 +39,10 @@ target_link_libraries(dq-api-grpc PUBLIC target_proto_messages(dq-api-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/grpc/api.proto ) +target_sources(dq-api-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/grpc/api.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/grpc/api.grpc.pb.h +) target_proto_addincls(dq-api-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/dq/api/grpc/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/api/grpc/CMakeLists.linux-aarch64.txt index 85e3fb1fc1b6..942e9bb2a58a 100644 --- a/ydb/library/yql/providers/dq/api/grpc/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/dq/api/grpc/CMakeLists.linux-aarch64.txt @@ -40,6 +40,10 @@ target_link_libraries(dq-api-grpc PUBLIC target_proto_messages(dq-api-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/grpc/api.proto ) +target_sources(dq-api-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/grpc/api.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/grpc/api.grpc.pb.h +) target_proto_addincls(dq-api-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/dq/api/grpc/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/api/grpc/CMakeLists.linux-x86_64.txt index 85e3fb1fc1b6..942e9bb2a58a 100644 --- a/ydb/library/yql/providers/dq/api/grpc/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/dq/api/grpc/CMakeLists.linux-x86_64.txt @@ -40,6 +40,10 @@ target_link_libraries(dq-api-grpc PUBLIC target_proto_messages(dq-api-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/grpc/api.proto ) +target_sources(dq-api-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/grpc/api.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/grpc/api.grpc.pb.h +) target_proto_addincls(dq-api-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/dq/api/grpc/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/api/grpc/CMakeLists.windows-x86_64.txt index bead812e5aa8..6016de0c90ef 100644 --- a/ydb/library/yql/providers/dq/api/grpc/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/dq/api/grpc/CMakeLists.windows-x86_64.txt @@ -39,6 +39,10 @@ target_link_libraries(dq-api-grpc PUBLIC target_proto_messages(dq-api-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/grpc/api.proto ) +target_sources(dq-api-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/grpc/api.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/grpc/api.grpc.pb.h +) target_proto_addincls(dq-api-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/dq/api/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/api/protos/CMakeLists.darwin-arm64.txt index c490ba5b0957..6fbea1f29974 100644 --- a/ydb/library/yql/providers/dq/api/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/dq/api/protos/CMakeLists.darwin-arm64.txt @@ -59,6 +59,11 @@ target_proto_messages(dq-api-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/protos/dqs.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/protos/task_command_executor.proto ) +target_sources(dq-api-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/protos/service.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/protos/dqs.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/protos/task_command_executor.pb.h +) target_proto_addincls(dq-api-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/dq/api/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/api/protos/CMakeLists.darwin-x86_64.txt index c490ba5b0957..6fbea1f29974 100644 --- a/ydb/library/yql/providers/dq/api/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/dq/api/protos/CMakeLists.darwin-x86_64.txt @@ -59,6 +59,11 @@ target_proto_messages(dq-api-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/protos/dqs.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/protos/task_command_executor.proto ) +target_sources(dq-api-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/protos/service.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/protos/dqs.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/protos/task_command_executor.pb.h +) target_proto_addincls(dq-api-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/dq/api/protos/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/api/protos/CMakeLists.linux-aarch64.txt index e318d9e377d5..7526d187a9e9 100644 --- a/ydb/library/yql/providers/dq/api/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/dq/api/protos/CMakeLists.linux-aarch64.txt @@ -60,6 +60,11 @@ target_proto_messages(dq-api-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/protos/dqs.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/protos/task_command_executor.proto ) +target_sources(dq-api-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/protos/service.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/protos/dqs.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/protos/task_command_executor.pb.h +) target_proto_addincls(dq-api-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/dq/api/protos/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/api/protos/CMakeLists.linux-x86_64.txt index e318d9e377d5..7526d187a9e9 100644 --- a/ydb/library/yql/providers/dq/api/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/dq/api/protos/CMakeLists.linux-x86_64.txt @@ -60,6 +60,11 @@ target_proto_messages(dq-api-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/protos/dqs.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/protos/task_command_executor.proto ) +target_sources(dq-api-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/protos/service.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/protos/dqs.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/protos/task_command_executor.pb.h +) target_proto_addincls(dq-api-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/dq/api/protos/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/api/protos/CMakeLists.windows-x86_64.txt index c490ba5b0957..6fbea1f29974 100644 --- a/ydb/library/yql/providers/dq/api/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/dq/api/protos/CMakeLists.windows-x86_64.txt @@ -59,6 +59,11 @@ target_proto_messages(dq-api-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/protos/dqs.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/api/protos/task_command_executor.proto ) +target_sources(dq-api-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/protos/service.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/protos/dqs.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/api/protos/task_command_executor.pb.h +) target_proto_addincls(dq-api-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/dq/config/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/config/CMakeLists.darwin-arm64.txt index 67633d60000f..19f403217f1a 100644 --- a/ydb/library/yql/providers/dq/config/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/dq/config/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(providers-dq-config PUBLIC target_proto_messages(providers-dq-config PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/config/config.proto ) +target_sources(providers-dq-config PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/config/config.pb.h +) target_proto_addincls(providers-dq-config ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/dq/config/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/config/CMakeLists.darwin-x86_64.txt index 67633d60000f..19f403217f1a 100644 --- a/ydb/library/yql/providers/dq/config/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/dq/config/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(providers-dq-config PUBLIC target_proto_messages(providers-dq-config PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/config/config.proto ) +target_sources(providers-dq-config PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/config/config.pb.h +) target_proto_addincls(providers-dq-config ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/dq/config/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/config/CMakeLists.linux-aarch64.txt index 6081a00e96be..fcce5fccb93d 100644 --- a/ydb/library/yql/providers/dq/config/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/dq/config/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(providers-dq-config PUBLIC target_proto_messages(providers-dq-config PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/config/config.proto ) +target_sources(providers-dq-config PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/config/config.pb.h +) target_proto_addincls(providers-dq-config ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/dq/config/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/config/CMakeLists.linux-x86_64.txt index 6081a00e96be..fcce5fccb93d 100644 --- a/ydb/library/yql/providers/dq/config/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/dq/config/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(providers-dq-config PUBLIC target_proto_messages(providers-dq-config PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/config/config.proto ) +target_sources(providers-dq-config PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/config/config.pb.h +) target_proto_addincls(providers-dq-config ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/dq/config/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/config/CMakeLists.windows-x86_64.txt index 67633d60000f..19f403217f1a 100644 --- a/ydb/library/yql/providers/dq/config/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/dq/config/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(providers-dq-config PUBLIC target_proto_messages(providers-dq-config PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/config/config.proto ) +target_sources(providers-dq-config PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/config/config.pb.h +) target_proto_addincls(providers-dq-config ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.darwin-arm64.txt index 7aba0afce610..9f5d0837eefe 100644 --- a/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.darwin-arm64.txt @@ -21,6 +21,10 @@ target_sources(providers-dq-expr_nodes PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.decl.inl.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.defs.inl.h ) add_custom_command( OUTPUT diff --git a/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.darwin-x86_64.txt index 7aba0afce610..9f5d0837eefe 100644 --- a/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.darwin-x86_64.txt @@ -21,6 +21,10 @@ target_sources(providers-dq-expr_nodes PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.decl.inl.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.defs.inl.h ) add_custom_command( OUTPUT diff --git a/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.linux-aarch64.txt index aa3ec454d102..dbc58bcc34a8 100644 --- a/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.linux-aarch64.txt @@ -22,6 +22,10 @@ target_sources(providers-dq-expr_nodes PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.decl.inl.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.defs.inl.h ) add_custom_command( OUTPUT diff --git a/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.linux-x86_64.txt index aa3ec454d102..dbc58bcc34a8 100644 --- a/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.linux-x86_64.txt @@ -22,6 +22,10 @@ target_sources(providers-dq-expr_nodes PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.decl.inl.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.defs.inl.h ) add_custom_command( OUTPUT diff --git a/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.windows-x86_64.txt index 7aba0afce610..9f5d0837eefe 100644 --- a/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/dq/expr_nodes/CMakeLists.windows-x86_64.txt @@ -21,6 +21,10 @@ target_sources(providers-dq-expr_nodes PRIVATE ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.decl.inl.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.defs.inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.defs.inl.h ) add_custom_command( OUTPUT diff --git a/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.darwin-arm64.txt index cd8615e7d0b1..360c420a6827 100644 --- a/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.darwin-arm64.txt @@ -25,13 +25,13 @@ target_link_libraries(yql-providers-dq-global_worker_manager-ut PUBLIC dq-actors-yt providers-dq-actors dq-actors-compute + minikql-computation-llvm14 + minikql-comp_nodes-llvm14 ) target_link_options(yql-providers-dq-global_worker_manager-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(yql-providers-dq-global_worker_manager-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/global_worker_manager/global_worker_manager_ut.cpp @@ -62,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.darwin-x86_64.txt index 4ad3896fc4fe..6ceb1e65c6e2 100644 --- a/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.darwin-x86_64.txt @@ -26,13 +26,13 @@ target_link_libraries(yql-providers-dq-global_worker_manager-ut PUBLIC dq-actors-yt providers-dq-actors dq-actors-compute + minikql-computation-llvm14 + minikql-comp_nodes-llvm14 ) target_link_options(yql-providers-dq-global_worker_manager-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(yql-providers-dq-global_worker_manager-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/global_worker_manager/global_worker_manager_ut.cpp @@ -63,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.linux-aarch64.txt index 9b75965945a0..686cc010689e 100644 --- a/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.linux-aarch64.txt @@ -26,6 +26,8 @@ target_link_libraries(yql-providers-dq-global_worker_manager-ut PUBLIC dq-actors-yt providers-dq-actors dq-actors-compute + minikql-computation-llvm14 + minikql-comp_nodes-llvm14 ) target_link_options(yql-providers-dq-global_worker_manager-ut PRIVATE -ldl @@ -33,10 +35,6 @@ target_link_options(yql-providers-dq-global_worker_manager-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(yql-providers-dq-global_worker_manager-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/global_worker_manager/global_worker_manager_ut.cpp @@ -67,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.linux-x86_64.txt index 885e67a072e0..d4d90b95d2bd 100644 --- a/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/dq/global_worker_manager/ut/CMakeLists.linux-x86_64.txt @@ -27,6 +27,8 @@ target_link_libraries(yql-providers-dq-global_worker_manager-ut PUBLIC dq-actors-yt providers-dq-actors dq-actors-compute + minikql-computation-llvm14 + minikql-comp_nodes-llvm14 ) target_link_options(yql-providers-dq-global_worker_manager-ut PRIVATE -ldl @@ -34,10 +36,6 @@ target_link_options(yql-providers-dq-global_worker_manager-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(yql-providers-dq-global_worker_manager-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/global_worker_manager/global_worker_manager_ut.cpp @@ -68,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/local_gateway/CMakeLists.txt b/ydb/library/yql/providers/dq/local_gateway/CMakeLists.txt index 380079ac7b4a..d863ebd18067 100644 --- a/ydb/library/yql/providers/dq/local_gateway/CMakeLists.txt +++ b/ydb/library/yql/providers/dq/local_gateway/CMakeLists.txt @@ -14,4 +14,6 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL include(CMakeLists.darwin-x86_64.txt) elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) endif() diff --git a/ydb/library/yql/providers/dq/local_gateway/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/local_gateway/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..25fa35388169 --- /dev/null +++ b/ydb/library/yql/providers/dq/local_gateway/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(providers-dq-local_gateway) +target_compile_options(providers-dq-local_gateway PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(providers-dq-local_gateway PUBLIC + contrib-libs-cxxsupp + yutil + library-yql-utils + dq-actors-compute + dq-actors-spilling + providers-dq-provider + dq-api-protos + providers-dq-task_runner + providers-dq-worker_manager + providers-dq-service + providers-dq-stats_collector +) +target_sources(providers-dq-local_gateway PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/local_gateway/yql_dq_gateway_local.cpp +) diff --git a/ydb/library/yql/providers/dq/opt/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/opt/CMakeLists.darwin-arm64.txt index d7b365119715..4535b923b8ec 100644 --- a/ydb/library/yql/providers/dq/opt/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/dq/opt/CMakeLists.darwin-arm64.txt @@ -25,7 +25,7 @@ target_link_libraries(providers-dq-opt PUBLIC library-yql-core yql-core-peephole_opt yql-core-type_ann - minikql-computation-llvm + yql-minikql-computation cpp-yson-node ) target_sources(providers-dq-opt PRIVATE diff --git a/ydb/library/yql/providers/dq/opt/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/opt/CMakeLists.darwin-x86_64.txt index d7b365119715..4535b923b8ec 100644 --- a/ydb/library/yql/providers/dq/opt/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/dq/opt/CMakeLists.darwin-x86_64.txt @@ -25,7 +25,7 @@ target_link_libraries(providers-dq-opt PUBLIC library-yql-core yql-core-peephole_opt yql-core-type_ann - minikql-computation-llvm + yql-minikql-computation cpp-yson-node ) target_sources(providers-dq-opt PRIVATE diff --git a/ydb/library/yql/providers/dq/opt/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/opt/CMakeLists.linux-aarch64.txt index 7e6d60a07c1f..3ef65f628dc7 100644 --- a/ydb/library/yql/providers/dq/opt/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/dq/opt/CMakeLists.linux-aarch64.txt @@ -26,7 +26,7 @@ target_link_libraries(providers-dq-opt PUBLIC library-yql-core yql-core-peephole_opt yql-core-type_ann - minikql-computation-llvm + yql-minikql-computation cpp-yson-node ) target_sources(providers-dq-opt PRIVATE diff --git a/ydb/library/yql/providers/dq/opt/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/opt/CMakeLists.linux-x86_64.txt index 7e6d60a07c1f..3ef65f628dc7 100644 --- a/ydb/library/yql/providers/dq/opt/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/dq/opt/CMakeLists.linux-x86_64.txt @@ -26,7 +26,7 @@ target_link_libraries(providers-dq-opt PUBLIC library-yql-core yql-core-peephole_opt yql-core-type_ann - minikql-computation-llvm + yql-minikql-computation cpp-yson-node ) target_sources(providers-dq-opt PRIVATE diff --git a/ydb/library/yql/providers/dq/opt/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/opt/CMakeLists.windows-x86_64.txt index d7b365119715..4535b923b8ec 100644 --- a/ydb/library/yql/providers/dq/opt/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/dq/opt/CMakeLists.windows-x86_64.txt @@ -25,7 +25,7 @@ target_link_libraries(providers-dq-opt PUBLIC library-yql-core yql-core-peephole_opt yql-core-type_ann - minikql-computation-llvm + yql-minikql-computation cpp-yson-node ) target_sources(providers-dq-opt PRIVATE diff --git a/ydb/library/yql/providers/dq/planner/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/planner/CMakeLists.darwin-arm64.txt index e75e5ea43015..1eb527d9caff 100644 --- a/ydb/library/yql/providers/dq/planner/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/dq/planner/CMakeLists.darwin-arm64.txt @@ -15,7 +15,7 @@ target_link_libraries(providers-dq-planner PUBLIC contrib-libs-cxxsupp yutil yql-core-services - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-dq-integration yql-dq-opt yql-dq-type_ann diff --git a/ydb/library/yql/providers/dq/planner/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/planner/CMakeLists.darwin-x86_64.txt index e75e5ea43015..1eb527d9caff 100644 --- a/ydb/library/yql/providers/dq/planner/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/dq/planner/CMakeLists.darwin-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(providers-dq-planner PUBLIC contrib-libs-cxxsupp yutil yql-core-services - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-dq-integration yql-dq-opt yql-dq-type_ann diff --git a/ydb/library/yql/providers/dq/planner/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/planner/CMakeLists.linux-aarch64.txt index 301b127603a0..369876931c74 100644 --- a/ydb/library/yql/providers/dq/planner/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/dq/planner/CMakeLists.linux-aarch64.txt @@ -16,7 +16,7 @@ target_link_libraries(providers-dq-planner PUBLIC contrib-libs-cxxsupp yutil yql-core-services - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-dq-integration yql-dq-opt yql-dq-type_ann diff --git a/ydb/library/yql/providers/dq/planner/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/planner/CMakeLists.linux-x86_64.txt index 301b127603a0..369876931c74 100644 --- a/ydb/library/yql/providers/dq/planner/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/dq/planner/CMakeLists.linux-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(providers-dq-planner PUBLIC contrib-libs-cxxsupp yutil yql-core-services - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-dq-integration yql-dq-opt yql-dq-type_ann diff --git a/ydb/library/yql/providers/dq/planner/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/planner/CMakeLists.windows-x86_64.txt index e75e5ea43015..1eb527d9caff 100644 --- a/ydb/library/yql/providers/dq/planner/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/dq/planner/CMakeLists.windows-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(providers-dq-planner PUBLIC contrib-libs-cxxsupp yutil yql-core-services - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-dq-integration yql-dq-opt yql-dq-type_ann diff --git a/ydb/library/yql/providers/dq/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/provider/CMakeLists.darwin-arm64.txt index 729e4a5cb794..abfbb7c506bd 100644 --- a/ydb/library/yql/providers/dq/provider/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/dq/provider/CMakeLists.darwin-arm64.txt @@ -49,6 +49,16 @@ target_link_libraries(providers-dq-provider PUBLIC library-yql-minikql ) target_sources(providers-dq-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_control.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_type_ann.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_gateway.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasource.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_recapture.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_statistics.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_statistics_json.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_control.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_constraints.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_type_ann.cpp diff --git a/ydb/library/yql/providers/dq/provider/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/provider/CMakeLists.darwin-x86_64.txt index 729e4a5cb794..abfbb7c506bd 100644 --- a/ydb/library/yql/providers/dq/provider/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/dq/provider/CMakeLists.darwin-x86_64.txt @@ -49,6 +49,16 @@ target_link_libraries(providers-dq-provider PUBLIC library-yql-minikql ) target_sources(providers-dq-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_control.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_type_ann.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_gateway.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasource.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_recapture.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_statistics.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_statistics_json.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_control.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_constraints.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_type_ann.cpp diff --git a/ydb/library/yql/providers/dq/provider/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/provider/CMakeLists.linux-aarch64.txt index 4b90bc051f7a..18d2b47f7085 100644 --- a/ydb/library/yql/providers/dq/provider/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/dq/provider/CMakeLists.linux-aarch64.txt @@ -50,6 +50,16 @@ target_link_libraries(providers-dq-provider PUBLIC library-yql-minikql ) target_sources(providers-dq-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_control.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_type_ann.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_gateway.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasource.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_recapture.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_statistics.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_statistics_json.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_control.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_constraints.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_type_ann.cpp diff --git a/ydb/library/yql/providers/dq/provider/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/provider/CMakeLists.linux-x86_64.txt index 4b90bc051f7a..18d2b47f7085 100644 --- a/ydb/library/yql/providers/dq/provider/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/dq/provider/CMakeLists.linux-x86_64.txt @@ -50,6 +50,16 @@ target_link_libraries(providers-dq-provider PUBLIC library-yql-minikql ) target_sources(providers-dq-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_control.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_type_ann.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_gateway.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasource.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_recapture.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_statistics.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_statistics_json.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_control.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_constraints.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_type_ann.cpp diff --git a/ydb/library/yql/providers/dq/provider/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/provider/CMakeLists.windows-x86_64.txt index 729e4a5cb794..abfbb7c506bd 100644 --- a/ydb/library/yql/providers/dq/provider/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/dq/provider/CMakeLists.windows-x86_64.txt @@ -49,6 +49,16 @@ target_link_libraries(providers-dq-provider PUBLIC library-yql-minikql ) target_sources(providers-dq-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_control.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_type_ann.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_gateway.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasource.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_recapture.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_statistics.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_statistics_json.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_control.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_constraints.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_datasink_type_ann.cpp diff --git a/ydb/library/yql/providers/dq/provider/exec/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/provider/exec/CMakeLists.darwin-arm64.txt index 4f1b26c851e9..5fa38f74f974 100644 --- a/ydb/library/yql/providers/dq/provider/exec/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/dq/provider/exec/CMakeLists.darwin-arm64.txt @@ -40,5 +40,6 @@ target_link_libraries(dq-provider-exec PUBLIC providers-result-expr_nodes ) target_sources(dq-provider-exec PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp ) diff --git a/ydb/library/yql/providers/dq/provider/exec/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/provider/exec/CMakeLists.darwin-x86_64.txt index 4f1b26c851e9..5fa38f74f974 100644 --- a/ydb/library/yql/providers/dq/provider/exec/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/dq/provider/exec/CMakeLists.darwin-x86_64.txt @@ -40,5 +40,6 @@ target_link_libraries(dq-provider-exec PUBLIC providers-result-expr_nodes ) target_sources(dq-provider-exec PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp ) diff --git a/ydb/library/yql/providers/dq/provider/exec/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/provider/exec/CMakeLists.linux-aarch64.txt index 5e7983f052c9..560289b2f299 100644 --- a/ydb/library/yql/providers/dq/provider/exec/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/dq/provider/exec/CMakeLists.linux-aarch64.txt @@ -41,5 +41,6 @@ target_link_libraries(dq-provider-exec PUBLIC providers-result-expr_nodes ) target_sources(dq-provider-exec PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp ) diff --git a/ydb/library/yql/providers/dq/provider/exec/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/provider/exec/CMakeLists.linux-x86_64.txt index 5e7983f052c9..560289b2f299 100644 --- a/ydb/library/yql/providers/dq/provider/exec/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/dq/provider/exec/CMakeLists.linux-x86_64.txt @@ -41,5 +41,6 @@ target_link_libraries(dq-provider-exec PUBLIC providers-result-expr_nodes ) target_sources(dq-provider-exec PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp ) diff --git a/ydb/library/yql/providers/dq/provider/exec/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/provider/exec/CMakeLists.windows-x86_64.txt index 4f1b26c851e9..5fa38f74f974 100644 --- a/ydb/library/yql/providers/dq/provider/exec/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/dq/provider/exec/CMakeLists.windows-x86_64.txt @@ -40,5 +40,6 @@ target_link_libraries(dq-provider-exec PUBLIC providers-result-expr_nodes ) target_sources(dq-provider-exec PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp ) diff --git a/ydb/library/yql/providers/dq/provider/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/provider/ut/CMakeLists.darwin-arm64.txt index 808c4d8432ed..2ae08984c248 100644 --- a/ydb/library/yql/providers/dq/provider/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/dq/provider/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-library-yql-providers-dq-provider-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-dq-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_provider_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/provider/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/provider/ut/CMakeLists.darwin-x86_64.txt index 5cf15dc14a59..c03ba76b37a3 100644 --- a/ydb/library/yql/providers/dq/provider/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/dq/provider/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-library-yql-providers-dq-provider-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-dq-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_provider_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/provider/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/provider/ut/CMakeLists.linux-aarch64.txt index 520fcbbec5ae..30e373447ad8 100644 --- a/ydb/library/yql/providers/dq/provider/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/dq/provider/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-library-yql-providers-dq-provider-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-dq-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_provider_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/provider/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/provider/ut/CMakeLists.linux-x86_64.txt index 67361572c7a2..4236624accce 100644 --- a/ydb/library/yql/providers/dq/provider/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/dq/provider/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-library-yql-providers-dq-provider-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-dq-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/provider/yql_dq_provider_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/provider/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/provider/ut/CMakeLists.windows-x86_64.txt index e5f846b20259..b4f8749f0de9 100644 --- a/ydb/library/yql/providers/dq/provider/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/dq/provider/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/runtime/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/runtime/CMakeLists.darwin-arm64.txt index 1c490e52773d..66d221aa03f1 100644 --- a/ydb/library/yql/providers/dq/runtime/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/dq/runtime/CMakeLists.darwin-arm64.txt @@ -14,7 +14,7 @@ target_compile_options(providers-dq-runtime PRIVATE target_link_libraries(providers-dq-runtime PUBLIC contrib-libs-cxxsupp yutil - minikql-invoke_builtins-llvm + yql-minikql-invoke_builtins library-yql-utils yql-utils-log yql-utils-backtrace diff --git a/ydb/library/yql/providers/dq/runtime/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/runtime/CMakeLists.darwin-x86_64.txt index 1c490e52773d..66d221aa03f1 100644 --- a/ydb/library/yql/providers/dq/runtime/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/dq/runtime/CMakeLists.darwin-x86_64.txt @@ -14,7 +14,7 @@ target_compile_options(providers-dq-runtime PRIVATE target_link_libraries(providers-dq-runtime PUBLIC contrib-libs-cxxsupp yutil - minikql-invoke_builtins-llvm + yql-minikql-invoke_builtins library-yql-utils yql-utils-log yql-utils-backtrace diff --git a/ydb/library/yql/providers/dq/runtime/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/runtime/CMakeLists.linux-aarch64.txt index d63919158623..53f65eb6db9a 100644 --- a/ydb/library/yql/providers/dq/runtime/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/dq/runtime/CMakeLists.linux-aarch64.txt @@ -15,7 +15,7 @@ target_link_libraries(providers-dq-runtime PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-invoke_builtins-llvm + yql-minikql-invoke_builtins library-yql-utils yql-utils-log yql-utils-backtrace diff --git a/ydb/library/yql/providers/dq/runtime/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/runtime/CMakeLists.linux-x86_64.txt index d63919158623..53f65eb6db9a 100644 --- a/ydb/library/yql/providers/dq/runtime/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/dq/runtime/CMakeLists.linux-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(providers-dq-runtime PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-invoke_builtins-llvm + yql-minikql-invoke_builtins library-yql-utils yql-utils-log yql-utils-backtrace diff --git a/ydb/library/yql/providers/dq/runtime/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/runtime/CMakeLists.windows-x86_64.txt index 1c490e52773d..66d221aa03f1 100644 --- a/ydb/library/yql/providers/dq/runtime/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/dq/runtime/CMakeLists.windows-x86_64.txt @@ -14,7 +14,7 @@ target_compile_options(providers-dq-runtime PRIVATE target_link_libraries(providers-dq-runtime PUBLIC contrib-libs-cxxsupp yutil - minikql-invoke_builtins-llvm + yql-minikql-invoke_builtins library-yql-utils yql-utils-log yql-utils-backtrace diff --git a/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.darwin-arm64.txt index 84654a8a2382..accd2abdb8ed 100644 --- a/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-library-yql-providers-dq-scheduler-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-dq-scheduler-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/scheduler/ut/dq_scheduler_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.darwin-x86_64.txt index aa754d167c2b..f2d122ac9275 100644 --- a/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-library-yql-providers-dq-scheduler-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-dq-scheduler-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/scheduler/ut/dq_scheduler_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.linux-aarch64.txt index cdeda2cc9181..e09e64afee29 100644 --- a/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-library-yql-providers-dq-scheduler-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-dq-scheduler-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/scheduler/ut/dq_scheduler_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.linux-x86_64.txt index 3ee08ce18863..a47b700235a5 100644 --- a/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-library-yql-providers-dq-scheduler-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-dq-scheduler-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/scheduler/ut/dq_scheduler_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.windows-x86_64.txt index e5ba4657a5c1..4e06b6304529 100644 --- a/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/dq/scheduler/ut/CMakeLists.windows-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/dq/stats_collector/CMakeLists.txt b/ydb/library/yql/providers/dq/stats_collector/CMakeLists.txt index 380079ac7b4a..d863ebd18067 100644 --- a/ydb/library/yql/providers/dq/stats_collector/CMakeLists.txt +++ b/ydb/library/yql/providers/dq/stats_collector/CMakeLists.txt @@ -14,4 +14,6 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL include(CMakeLists.darwin-x86_64.txt) elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) endif() diff --git a/ydb/library/yql/providers/dq/stats_collector/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/stats_collector/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..78e0de74fc2c --- /dev/null +++ b/ydb/library/yql/providers/dq/stats_collector/CMakeLists.windows-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(providers-dq-stats_collector) +target_compile_options(providers-dq-stats_collector PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(providers-dq-stats_collector PUBLIC + contrib-libs-cxxsupp + yutil + library-actors-core + library-actors-helpers + cpp-monlib-dynamic_counters +) +target_sources(providers-dq-stats_collector PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/dq/stats_collector/pool_stats_collector.cpp +) diff --git a/ydb/library/yql/providers/dq/task_runner/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/dq/task_runner/CMakeLists.darwin-arm64.txt index 1b27cb756f59..b41435e0cbc0 100644 --- a/ydb/library/yql/providers/dq/task_runner/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/dq/task_runner/CMakeLists.darwin-arm64.txt @@ -18,7 +18,7 @@ target_link_libraries(providers-dq-task_runner PUBLIC cpp-threading-task_scheduler cpp-yson-node dq-integration-transform - minikql-invoke_builtins-llvm + yql-minikql-invoke_builtins library-yql-protos library-yql-utils yql-utils-backtrace diff --git a/ydb/library/yql/providers/dq/task_runner/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/dq/task_runner/CMakeLists.darwin-x86_64.txt index 1b27cb756f59..b41435e0cbc0 100644 --- a/ydb/library/yql/providers/dq/task_runner/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/dq/task_runner/CMakeLists.darwin-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(providers-dq-task_runner PUBLIC cpp-threading-task_scheduler cpp-yson-node dq-integration-transform - minikql-invoke_builtins-llvm + yql-minikql-invoke_builtins library-yql-protos library-yql-utils yql-utils-backtrace diff --git a/ydb/library/yql/providers/dq/task_runner/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/dq/task_runner/CMakeLists.linux-aarch64.txt index c83911f55132..beb4b7c26087 100644 --- a/ydb/library/yql/providers/dq/task_runner/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/dq/task_runner/CMakeLists.linux-aarch64.txt @@ -19,7 +19,7 @@ target_link_libraries(providers-dq-task_runner PUBLIC cpp-threading-task_scheduler cpp-yson-node dq-integration-transform - minikql-invoke_builtins-llvm + yql-minikql-invoke_builtins library-yql-protos library-yql-utils yql-utils-backtrace diff --git a/ydb/library/yql/providers/dq/task_runner/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/dq/task_runner/CMakeLists.linux-x86_64.txt index c83911f55132..beb4b7c26087 100644 --- a/ydb/library/yql/providers/dq/task_runner/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/dq/task_runner/CMakeLists.linux-x86_64.txt @@ -19,7 +19,7 @@ target_link_libraries(providers-dq-task_runner PUBLIC cpp-threading-task_scheduler cpp-yson-node dq-integration-transform - minikql-invoke_builtins-llvm + yql-minikql-invoke_builtins library-yql-protos library-yql-utils yql-utils-backtrace diff --git a/ydb/library/yql/providers/dq/task_runner/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/dq/task_runner/CMakeLists.windows-x86_64.txt index 1b27cb756f59..b41435e0cbc0 100644 --- a/ydb/library/yql/providers/dq/task_runner/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/dq/task_runner/CMakeLists.windows-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(providers-dq-task_runner PUBLIC cpp-threading-task_scheduler cpp-yson-node dq-integration-transform - minikql-invoke_builtins-llvm + yql-minikql-invoke_builtins library-yql-protos library-yql-utils yql-utils-backtrace diff --git a/ydb/library/yql/providers/function/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/function/expr_nodes/CMakeLists.darwin-arm64.txt index 7dd678e97adf..12102a84f2f7 100644 --- a/ydb/library/yql/providers/function/expr_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/function/expr_nodes/CMakeLists.darwin-arm64.txt @@ -15,6 +15,9 @@ target_link_libraries(providers-function-expr_nodes PUBLIC yql-core-expr_nodes ) target_sources(providers-function-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/function/expr_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/function/expr_nodes/CMakeLists.darwin-x86_64.txt index 7dd678e97adf..12102a84f2f7 100644 --- a/ydb/library/yql/providers/function/expr_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/function/expr_nodes/CMakeLists.darwin-x86_64.txt @@ -15,6 +15,9 @@ target_link_libraries(providers-function-expr_nodes PUBLIC yql-core-expr_nodes ) target_sources(providers-function-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/function/expr_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/function/expr_nodes/CMakeLists.linux-aarch64.txt index c8d502305a11..603d50e99982 100644 --- a/ydb/library/yql/providers/function/expr_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/function/expr_nodes/CMakeLists.linux-aarch64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-function-expr_nodes PUBLIC yql-core-expr_nodes ) target_sources(providers-function-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/function/expr_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/function/expr_nodes/CMakeLists.linux-x86_64.txt index c8d502305a11..603d50e99982 100644 --- a/ydb/library/yql/providers/function/expr_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/function/expr_nodes/CMakeLists.linux-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-function-expr_nodes PUBLIC yql-core-expr_nodes ) target_sources(providers-function-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/function/expr_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/function/expr_nodes/CMakeLists.windows-x86_64.txt index 7dd678e97adf..12102a84f2f7 100644 --- a/ydb/library/yql/providers/function/expr_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/function/expr_nodes/CMakeLists.windows-x86_64.txt @@ -15,6 +15,9 @@ target_link_libraries(providers-function-expr_nodes PUBLIC yql-core-expr_nodes ) target_sources(providers-function-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/expr_nodes/dq_function_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/function/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/function/proto/CMakeLists.darwin-arm64.txt index 4e85a89b0d07..bb26671a5171 100644 --- a/ydb/library/yql/providers/function/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/function/proto/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(providers-function-proto PUBLIC target_proto_messages(providers-function-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/proto/dq_function.proto ) +target_sources(providers-function-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/proto/dq_function.pb.h +) target_proto_addincls(providers-function-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/function/proto/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/function/proto/CMakeLists.darwin-x86_64.txt index 4e85a89b0d07..bb26671a5171 100644 --- a/ydb/library/yql/providers/function/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/function/proto/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(providers-function-proto PUBLIC target_proto_messages(providers-function-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/proto/dq_function.proto ) +target_sources(providers-function-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/proto/dq_function.pb.h +) target_proto_addincls(providers-function-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/function/proto/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/function/proto/CMakeLists.linux-aarch64.txt index 76e1dd4a9684..9ba69fef81ae 100644 --- a/ydb/library/yql/providers/function/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/function/proto/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(providers-function-proto PUBLIC target_proto_messages(providers-function-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/proto/dq_function.proto ) +target_sources(providers-function-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/proto/dq_function.pb.h +) target_proto_addincls(providers-function-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/function/proto/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/function/proto/CMakeLists.linux-x86_64.txt index 76e1dd4a9684..9ba69fef81ae 100644 --- a/ydb/library/yql/providers/function/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/function/proto/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(providers-function-proto PUBLIC target_proto_messages(providers-function-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/proto/dq_function.proto ) +target_sources(providers-function-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/proto/dq_function.pb.h +) target_proto_addincls(providers-function-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/function/proto/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/function/proto/CMakeLists.windows-x86_64.txt index 4e85a89b0d07..bb26671a5171 100644 --- a/ydb/library/yql/providers/function/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/function/proto/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(providers-function-proto PUBLIC target_proto_messages(providers-function-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/function/proto/dq_function.proto ) +target_sources(providers-function-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/function/proto/dq_function.pb.h +) target_proto_addincls(providers-function-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/actors/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/actors/CMakeLists.darwin-arm64.txt index bd1cd8293b82..eb51490f4d2a 100644 --- a/ydb/library/yql/providers/generic/actors/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/generic/actors/CMakeLists.darwin-arm64.txt @@ -15,7 +15,7 @@ target_link_libraries(providers-generic-actors PUBLIC contrib-libs-cxxsupp yutil dq-actors-compute - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client providers-generic-proto yql-public-types diff --git a/ydb/library/yql/providers/generic/actors/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/generic/actors/CMakeLists.darwin-x86_64.txt index bd1cd8293b82..eb51490f4d2a 100644 --- a/ydb/library/yql/providers/generic/actors/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/generic/actors/CMakeLists.darwin-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(providers-generic-actors PUBLIC contrib-libs-cxxsupp yutil dq-actors-compute - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client providers-generic-proto yql-public-types diff --git a/ydb/library/yql/providers/generic/actors/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/generic/actors/CMakeLists.linux-aarch64.txt index b037d621fbe4..da5ca5d7a8c0 100644 --- a/ydb/library/yql/providers/generic/actors/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/generic/actors/CMakeLists.linux-aarch64.txt @@ -16,7 +16,7 @@ target_link_libraries(providers-generic-actors PUBLIC contrib-libs-cxxsupp yutil dq-actors-compute - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client providers-generic-proto yql-public-types diff --git a/ydb/library/yql/providers/generic/actors/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/generic/actors/CMakeLists.linux-x86_64.txt index b037d621fbe4..da5ca5d7a8c0 100644 --- a/ydb/library/yql/providers/generic/actors/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/generic/actors/CMakeLists.linux-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(providers-generic-actors PUBLIC contrib-libs-cxxsupp yutil dq-actors-compute - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client providers-generic-proto yql-public-types diff --git a/ydb/library/yql/providers/generic/actors/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/generic/actors/CMakeLists.windows-x86_64.txt index bd1cd8293b82..eb51490f4d2a 100644 --- a/ydb/library/yql/providers/generic/actors/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/generic/actors/CMakeLists.windows-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(providers-generic-actors PUBLIC contrib-libs-cxxsupp yutil dq-actors-compute - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client providers-generic-proto yql-public-types diff --git a/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.darwin-arm64.txt index 1af4185e0700..69315c7230a9 100644 --- a/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.darwin-arm64.txt @@ -41,6 +41,10 @@ target_proto_messages(connector-api-common PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/common/data_source.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/common/endpoint.proto ) +target_sources(connector-api-common PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/common/data_source.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/common/endpoint.pb.h +) target_proto_addincls(connector-api-common ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.darwin-x86_64.txt index 1af4185e0700..69315c7230a9 100644 --- a/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.darwin-x86_64.txt @@ -41,6 +41,10 @@ target_proto_messages(connector-api-common PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/common/data_source.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/common/endpoint.proto ) +target_sources(connector-api-common PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/common/data_source.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/common/endpoint.pb.h +) target_proto_addincls(connector-api-common ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.linux-aarch64.txt index ca49587737b8..3c48b23c2029 100644 --- a/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.linux-aarch64.txt @@ -42,6 +42,10 @@ target_proto_messages(connector-api-common PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/common/data_source.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/common/endpoint.proto ) +target_sources(connector-api-common PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/common/data_source.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/common/endpoint.pb.h +) target_proto_addincls(connector-api-common ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.linux-x86_64.txt index ca49587737b8..3c48b23c2029 100644 --- a/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.linux-x86_64.txt @@ -42,6 +42,10 @@ target_proto_messages(connector-api-common PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/common/data_source.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/common/endpoint.proto ) +target_sources(connector-api-common PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/common/data_source.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/common/endpoint.pb.h +) target_proto_addincls(connector-api-common ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.windows-x86_64.txt index 1af4185e0700..69315c7230a9 100644 --- a/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/generic/connector/api/common/CMakeLists.windows-x86_64.txt @@ -41,6 +41,10 @@ target_proto_messages(connector-api-common PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/common/data_source.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/common/endpoint.proto ) +target_sources(connector-api-common PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/common/data_source.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/common/endpoint.pb.h +) target_proto_addincls(connector-api-common ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.darwin-arm64.txt index 75d63720a62e..3c2ca4b4d75f 100644 --- a/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.darwin-arm64.txt @@ -40,6 +40,10 @@ target_link_libraries(connector-api-service PUBLIC target_proto_messages(connector-api-service PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.proto ) +target_sources(connector-api-service PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.grpc.pb.h +) target_proto_addincls(connector-api-service ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.darwin-x86_64.txt index 75d63720a62e..3c2ca4b4d75f 100644 --- a/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.darwin-x86_64.txt @@ -40,6 +40,10 @@ target_link_libraries(connector-api-service PUBLIC target_proto_messages(connector-api-service PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.proto ) +target_sources(connector-api-service PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.grpc.pb.h +) target_proto_addincls(connector-api-service ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.linux-aarch64.txt index b41c8ae0980c..026d93e90810 100644 --- a/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.linux-aarch64.txt @@ -41,6 +41,10 @@ target_link_libraries(connector-api-service PUBLIC target_proto_messages(connector-api-service PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.proto ) +target_sources(connector-api-service PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.grpc.pb.h +) target_proto_addincls(connector-api-service ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.linux-x86_64.txt index b41c8ae0980c..026d93e90810 100644 --- a/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.linux-x86_64.txt @@ -41,6 +41,10 @@ target_link_libraries(connector-api-service PUBLIC target_proto_messages(connector-api-service PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.proto ) +target_sources(connector-api-service PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.grpc.pb.h +) target_proto_addincls(connector-api-service ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.windows-x86_64.txt index 75d63720a62e..3c2ca4b4d75f 100644 --- a/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/generic/connector/api/service/CMakeLists.windows-x86_64.txt @@ -40,6 +40,10 @@ target_link_libraries(connector-api-service PUBLIC target_proto_messages(connector-api-service PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.proto ) +target_sources(connector-api-service PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/service/connector.grpc.pb.h +) target_proto_addincls(connector-api-service ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.darwin-arm64.txt index f37533ca6f22..fffd64db5ee6 100644 --- a/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.darwin-arm64.txt @@ -30,6 +30,9 @@ target_link_libraries(api-service-protos PUBLIC target_proto_messages(api-service-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/service/protos/connector.proto ) +target_sources(api-service-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/service/protos/connector.pb.h +) target_proto_addincls(api-service-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.darwin-x86_64.txt index f37533ca6f22..fffd64db5ee6 100644 --- a/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.darwin-x86_64.txt @@ -30,6 +30,9 @@ target_link_libraries(api-service-protos PUBLIC target_proto_messages(api-service-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/service/protos/connector.proto ) +target_sources(api-service-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/service/protos/connector.pb.h +) target_proto_addincls(api-service-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.linux-aarch64.txt index f6fb469b6cc4..063c93eb075e 100644 --- a/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.linux-aarch64.txt @@ -31,6 +31,9 @@ target_link_libraries(api-service-protos PUBLIC target_proto_messages(api-service-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/service/protos/connector.proto ) +target_sources(api-service-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/service/protos/connector.pb.h +) target_proto_addincls(api-service-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.linux-x86_64.txt index f6fb469b6cc4..063c93eb075e 100644 --- a/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.linux-x86_64.txt @@ -31,6 +31,9 @@ target_link_libraries(api-service-protos PUBLIC target_proto_messages(api-service-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/service/protos/connector.proto ) +target_sources(api-service-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/service/protos/connector.pb.h +) target_proto_addincls(api-service-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.windows-x86_64.txt index f37533ca6f22..fffd64db5ee6 100644 --- a/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/generic/connector/api/service/protos/CMakeLists.windows-x86_64.txt @@ -30,6 +30,9 @@ target_link_libraries(api-service-protos PUBLIC target_proto_messages(api-service-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/connector/api/service/protos/connector.proto ) +target_sources(api-service-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/connector/api/service/protos/connector.pb.h +) target_proto_addincls(api-service-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/connector_client_mock.h b/ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/connector_client_mock.h index 6f09b9e5ffab..c5b4d78e2be4 100644 --- a/ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/connector_client_mock.h +++ b/ydb/library/yql/providers/generic/connector/libcpp/ut_helpers/connector_client_mock.h @@ -1,7 +1,7 @@ #pragma once #include <ydb/core/kqp/ut/common/kqp_ut_common.h> -#include <ydb/core/formats/arrow/serializer/full.h> +#include <ydb/core/formats/arrow/serializer/abstract.h> #include <ydb/library/yql/providers/generic/connector/api/common/data_source.pb.h> #include <ydb/library/yql/providers/generic/connector/libcpp/client.h> #include <ydb/library/yql/providers/generic/connector/libcpp/error.h> @@ -677,10 +677,10 @@ namespace NYql::NConnector::NTest { TBuilder& AddResponse( const std::shared_ptr<arrow::RecordBatch>& recordBatch, const NApi::TError& error) { - NKikimr::NArrow::NSerialization::TFullDataSerializer ser(arrow::ipc::IpcWriteOptions::Defaults()); + NKikimr::NArrow::NSerialization::TSerializerContainer ser = NKikimr::NArrow::NSerialization::TSerializerContainer::GetDefaultSerializer(); auto& response = this->Result_->Responses().emplace_back(); response.mutable_error()->CopyFrom(error); - response.set_arrow_ipc_streaming(ser.Serialize(recordBatch)); + response.set_arrow_ipc_streaming(ser->SerializeFull(recordBatch)); return static_cast<TBuilder&>(*this); } diff --git a/ydb/library/yql/providers/generic/connector/libcpp/utils.cpp b/ydb/library/yql/providers/generic/connector/libcpp/utils.cpp index 2f8b0a1c9c1a..cde710e529e7 100644 --- a/ydb/library/yql/providers/generic/connector/libcpp/utils.cpp +++ b/ydb/library/yql/providers/generic/connector/libcpp/utils.cpp @@ -4,8 +4,7 @@ #include <arrow/ipc/api.h> #include <util/string/builder.h> #include <util/system/type_name.h> -#include <ydb/core/formats/arrow/serializer/batch_only.h> -#include <ydb/core/formats/arrow/serializer/full.h> +#include <ydb/core/formats/arrow/serializer/abstract.h> #include <ydb/library/yql/utils/log/log.h> #include <ydb/library/yql/utils/yql_panic.h> @@ -76,8 +75,8 @@ namespace NYql::NConnector { } std::shared_ptr<arrow::RecordBatch> ArrowIPCStreamingToArrowRecordBatch(const TProtoStringType dump) { - NKikimr::NArrow::NSerialization::TFullDataDeserializer deser; - auto result = deser.Deserialize(dump); + NKikimr::NArrow::NSerialization::TSerializerContainer deser = NKikimr::NArrow::NSerialization::TSerializerContainer::GetDefaultSerializer(); + auto result = deser->Deserialize(dump); if (!result.ok()) { ythrow yexception() << result.status().ToString(); } diff --git a/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.darwin-arm64.txt index ef7d722030b6..7a7b33de9893 100644 --- a/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.darwin-arm64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-generic-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-generic-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.darwin-x86_64.txt index ef7d722030b6..7a7b33de9893 100644 --- a/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-generic-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-generic-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.linux-aarch64.txt index e07208f2e1e7..f68b910de3dc 100644 --- a/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.linux-aarch64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-generic-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-generic-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.linux-x86_64.txt index e07208f2e1e7..f68b910de3dc 100644 --- a/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.linux-x86_64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-generic-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-generic-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.windows-x86_64.txt index ef7d722030b6..7a7b33de9893 100644 --- a/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/generic/expr_nodes/CMakeLists.windows-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-generic-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-generic-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/expr_nodes/yql_generic_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/generic/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/proto/CMakeLists.darwin-arm64.txt index 9d2318ef89af..886fdde14af2 100644 --- a/ydb/library/yql/providers/generic/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/generic/proto/CMakeLists.darwin-arm64.txt @@ -43,6 +43,10 @@ target_proto_messages(providers-generic-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/proto/range.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/proto/source.proto ) +target_sources(providers-generic-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/proto/range.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/proto/source.pb.h +) target_proto_addincls(providers-generic-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/proto/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/generic/proto/CMakeLists.darwin-x86_64.txt index 9d2318ef89af..886fdde14af2 100644 --- a/ydb/library/yql/providers/generic/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/generic/proto/CMakeLists.darwin-x86_64.txt @@ -43,6 +43,10 @@ target_proto_messages(providers-generic-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/proto/range.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/proto/source.proto ) +target_sources(providers-generic-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/proto/range.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/proto/source.pb.h +) target_proto_addincls(providers-generic-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/proto/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/generic/proto/CMakeLists.linux-aarch64.txt index 4e41576ab28d..91ffb74f3cda 100644 --- a/ydb/library/yql/providers/generic/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/generic/proto/CMakeLists.linux-aarch64.txt @@ -44,6 +44,10 @@ target_proto_messages(providers-generic-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/proto/range.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/proto/source.proto ) +target_sources(providers-generic-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/proto/range.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/proto/source.pb.h +) target_proto_addincls(providers-generic-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/proto/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/generic/proto/CMakeLists.linux-x86_64.txt index 4e41576ab28d..91ffb74f3cda 100644 --- a/ydb/library/yql/providers/generic/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/generic/proto/CMakeLists.linux-x86_64.txt @@ -44,6 +44,10 @@ target_proto_messages(providers-generic-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/proto/range.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/proto/source.proto ) +target_sources(providers-generic-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/proto/range.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/proto/source.pb.h +) target_proto_addincls(providers-generic-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/proto/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/generic/proto/CMakeLists.windows-x86_64.txt index 9d2318ef89af..886fdde14af2 100644 --- a/ydb/library/yql/providers/generic/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/generic/proto/CMakeLists.windows-x86_64.txt @@ -43,6 +43,10 @@ target_proto_messages(providers-generic-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/proto/range.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/proto/source.proto ) +target_sources(providers-generic-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/proto/range.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/generic/proto/source.pb.h +) target_proto_addincls(providers-generic-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/generic/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/provider/CMakeLists.darwin-arm64.txt index 99acc2f8d302..60e46937cee3 100644 --- a/ydb/library/yql/providers/generic/provider/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/generic/provider/CMakeLists.darwin-arm64.txt @@ -25,7 +25,7 @@ target_link_libraries(providers-generic-provider PUBLIC yql-core-type_ann yql-dq-expr_nodes yql-dq-integration - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-config providers-common-db_id_async_resolver providers-common-dq @@ -43,6 +43,10 @@ target_link_libraries(providers-generic-provider PUBLIC yql-utils-plan ) target_sources(providers-generic-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_state.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_cluster_config.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_datasink_execution.cpp diff --git a/ydb/library/yql/providers/generic/provider/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/generic/provider/CMakeLists.darwin-x86_64.txt index 99acc2f8d302..60e46937cee3 100644 --- a/ydb/library/yql/providers/generic/provider/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/generic/provider/CMakeLists.darwin-x86_64.txt @@ -25,7 +25,7 @@ target_link_libraries(providers-generic-provider PUBLIC yql-core-type_ann yql-dq-expr_nodes yql-dq-integration - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-config providers-common-db_id_async_resolver providers-common-dq @@ -43,6 +43,10 @@ target_link_libraries(providers-generic-provider PUBLIC yql-utils-plan ) target_sources(providers-generic-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_state.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_cluster_config.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_datasink_execution.cpp diff --git a/ydb/library/yql/providers/generic/provider/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/generic/provider/CMakeLists.linux-aarch64.txt index ab92daf0406b..d60ea957096b 100644 --- a/ydb/library/yql/providers/generic/provider/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/generic/provider/CMakeLists.linux-aarch64.txt @@ -26,7 +26,7 @@ target_link_libraries(providers-generic-provider PUBLIC yql-core-type_ann yql-dq-expr_nodes yql-dq-integration - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-config providers-common-db_id_async_resolver providers-common-dq @@ -44,6 +44,10 @@ target_link_libraries(providers-generic-provider PUBLIC yql-utils-plan ) target_sources(providers-generic-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_state.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_cluster_config.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_datasink_execution.cpp diff --git a/ydb/library/yql/providers/generic/provider/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/generic/provider/CMakeLists.linux-x86_64.txt index ab92daf0406b..d60ea957096b 100644 --- a/ydb/library/yql/providers/generic/provider/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/generic/provider/CMakeLists.linux-x86_64.txt @@ -26,7 +26,7 @@ target_link_libraries(providers-generic-provider PUBLIC yql-core-type_ann yql-dq-expr_nodes yql-dq-integration - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-config providers-common-db_id_async_resolver providers-common-dq @@ -44,6 +44,10 @@ target_link_libraries(providers-generic-provider PUBLIC yql-utils-plan ) target_sources(providers-generic-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_state.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_cluster_config.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_datasink_execution.cpp diff --git a/ydb/library/yql/providers/generic/provider/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/generic/provider/CMakeLists.windows-x86_64.txt index 99acc2f8d302..60e46937cee3 100644 --- a/ydb/library/yql/providers/generic/provider/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/generic/provider/CMakeLists.windows-x86_64.txt @@ -25,7 +25,7 @@ target_link_libraries(providers-generic-provider PUBLIC yql-core-type_ann yql-dq-expr_nodes yql-dq-integration - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-config providers-common-db_id_async_resolver providers-common-dq @@ -43,6 +43,10 @@ target_link_libraries(providers-generic-provider PUBLIC yql-utils-plan ) target_sources(providers-generic-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_provider_impl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_settings.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_state.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_cluster_config.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/yql_generic_datasink_execution.cpp diff --git a/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.darwin-arm64.txt index 9f9f1f4e0687..3017d2559e31 100644 --- a/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.darwin-arm64.txt @@ -31,14 +31,13 @@ target_link_libraries(yql-providers-generic-provider-ut-pushdown PUBLIC providers-result-provider udf-service-stub library-yql-sql + minikql-invoke_builtins-llvm14 yql-sql-pg_dummy ) target_link_options(yql-providers-generic-provider-ut-pushdown PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(yql-providers-generic-provider-ut-pushdown PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/ut/pushdown/pushdown_ut.cpp @@ -68,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.darwin-x86_64.txt index e686f091c338..a89dae2c13f9 100644 --- a/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.darwin-x86_64.txt @@ -32,14 +32,13 @@ target_link_libraries(yql-providers-generic-provider-ut-pushdown PUBLIC providers-result-provider udf-service-stub library-yql-sql + minikql-invoke_builtins-llvm14 yql-sql-pg_dummy ) target_link_options(yql-providers-generic-provider-ut-pushdown PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(yql-providers-generic-provider-ut-pushdown PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/ut/pushdown/pushdown_ut.cpp @@ -69,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.linux-aarch64.txt index bc949cb41d53..988453319799 100644 --- a/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.linux-aarch64.txt @@ -32,6 +32,7 @@ target_link_libraries(yql-providers-generic-provider-ut-pushdown PUBLIC providers-result-provider udf-service-stub library-yql-sql + minikql-invoke_builtins-llvm14 yql-sql-pg_dummy ) target_link_options(yql-providers-generic-provider-ut-pushdown PRIVATE @@ -40,9 +41,6 @@ target_link_options(yql-providers-generic-provider-ut-pushdown PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(yql-providers-generic-provider-ut-pushdown PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/ut/pushdown/pushdown_ut.cpp @@ -72,6 +70,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.linux-x86_64.txt index 77fc10386fc4..04a91aba9292 100644 --- a/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.linux-x86_64.txt @@ -33,6 +33,7 @@ target_link_libraries(yql-providers-generic-provider-ut-pushdown PUBLIC providers-result-provider udf-service-stub library-yql-sql + minikql-invoke_builtins-llvm14 yql-sql-pg_dummy ) target_link_options(yql-providers-generic-provider-ut-pushdown PRIVATE @@ -41,9 +42,6 @@ target_link_options(yql-providers-generic-provider-ut-pushdown PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(yql-providers-generic-provider-ut-pushdown PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/generic/provider/ut/pushdown/pushdown_ut.cpp @@ -73,6 +71,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.windows-x86_64.txt index 4b418322c7cd..b9e55f786e42 100644 --- a/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/generic/provider/ut/pushdown/CMakeLists.windows-x86_64.txt @@ -32,6 +32,7 @@ target_link_libraries(yql-providers-generic-provider-ut-pushdown PUBLIC providers-result-provider udf-service-stub library-yql-sql + minikql-invoke_builtins-llvm14 yql-sql-pg_dummy ) target_sources(yql-providers-generic-provider-ut-pushdown PRIVATE @@ -62,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.darwin-arm64.txt index 0683401494c4..ab7feea705f6 100644 --- a/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.darwin-arm64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-pg-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-pg-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.darwin-x86_64.txt index 0683401494c4..ab7feea705f6 100644 --- a/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-pg-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-pg-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.linux-aarch64.txt index c693d31507e9..ae34dee0760d 100644 --- a/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.linux-aarch64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-pg-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-pg-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.linux-x86_64.txt index c693d31507e9..ae34dee0760d 100644 --- a/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.linux-x86_64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-pg-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-pg-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.windows-x86_64.txt index 0683401494c4..ab7feea705f6 100644 --- a/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/pg/expr_nodes/CMakeLists.windows-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-pg-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-pg-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pg/expr_nodes/yql_pg_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/pg/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/pg/provider/CMakeLists.darwin-arm64.txt index 25f820f2f2c5..1ebf54e642b3 100644 --- a/ydb/library/yql/providers/pg/provider/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/pg/provider/CMakeLists.darwin-arm64.txt @@ -25,6 +25,8 @@ target_link_libraries(providers-pg-provider PUBLIC yql-utils-log ) target_sources(providers-pg-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_provider_impl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_datasink_execution.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_datasink_type_ann.cpp diff --git a/ydb/library/yql/providers/pg/provider/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/pg/provider/CMakeLists.darwin-x86_64.txt index 25f820f2f2c5..1ebf54e642b3 100644 --- a/ydb/library/yql/providers/pg/provider/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/pg/provider/CMakeLists.darwin-x86_64.txt @@ -25,6 +25,8 @@ target_link_libraries(providers-pg-provider PUBLIC yql-utils-log ) target_sources(providers-pg-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_provider_impl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_datasink_execution.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_datasink_type_ann.cpp diff --git a/ydb/library/yql/providers/pg/provider/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/pg/provider/CMakeLists.linux-aarch64.txt index 5aa8a755b9c7..6c0144dba8c8 100644 --- a/ydb/library/yql/providers/pg/provider/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/pg/provider/CMakeLists.linux-aarch64.txt @@ -26,6 +26,8 @@ target_link_libraries(providers-pg-provider PUBLIC yql-utils-log ) target_sources(providers-pg-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_provider_impl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_datasink_execution.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_datasink_type_ann.cpp diff --git a/ydb/library/yql/providers/pg/provider/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/pg/provider/CMakeLists.linux-x86_64.txt index 5aa8a755b9c7..6c0144dba8c8 100644 --- a/ydb/library/yql/providers/pg/provider/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/pg/provider/CMakeLists.linux-x86_64.txt @@ -26,6 +26,8 @@ target_link_libraries(providers-pg-provider PUBLIC yql-utils-log ) target_sources(providers-pg-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_provider_impl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_datasink_execution.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_datasink_type_ann.cpp diff --git a/ydb/library/yql/providers/pg/provider/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/pg/provider/CMakeLists.windows-x86_64.txt index 25f820f2f2c5..1ebf54e642b3 100644 --- a/ydb/library/yql/providers/pg/provider/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/pg/provider/CMakeLists.windows-x86_64.txt @@ -25,6 +25,8 @@ target_link_libraries(providers-pg-provider PUBLIC yql-utils-log ) target_sources(providers-pg-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_provider_impl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_datasink.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_datasink_execution.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pg/provider/yql_pg_datasink_type_ann.cpp diff --git a/ydb/library/yql/providers/pq/async_io/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/pq/async_io/CMakeLists.darwin-arm64.txt index 7d61f0f8b52c..537674ec231f 100644 --- a/ydb/library/yql/providers/pq/async_io/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/pq/async_io/CMakeLists.darwin-arm64.txt @@ -14,7 +14,7 @@ target_compile_options(providers-pq-async_io PRIVATE target_link_libraries(providers-pq-async_io PUBLIC contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types yql-utils-log diff --git a/ydb/library/yql/providers/pq/async_io/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/pq/async_io/CMakeLists.darwin-x86_64.txt index 7d61f0f8b52c..537674ec231f 100644 --- a/ydb/library/yql/providers/pq/async_io/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/pq/async_io/CMakeLists.darwin-x86_64.txt @@ -14,7 +14,7 @@ target_compile_options(providers-pq-async_io PRIVATE target_link_libraries(providers-pq-async_io PUBLIC contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types yql-utils-log diff --git a/ydb/library/yql/providers/pq/async_io/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/pq/async_io/CMakeLists.linux-aarch64.txt index e8c53efab853..535086092d00 100644 --- a/ydb/library/yql/providers/pq/async_io/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/pq/async_io/CMakeLists.linux-aarch64.txt @@ -15,7 +15,7 @@ target_link_libraries(providers-pq-async_io PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types yql-utils-log diff --git a/ydb/library/yql/providers/pq/async_io/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/pq/async_io/CMakeLists.linux-x86_64.txt index e8c53efab853..535086092d00 100644 --- a/ydb/library/yql/providers/pq/async_io/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/pq/async_io/CMakeLists.linux-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(providers-pq-async_io PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types yql-utils-log diff --git a/ydb/library/yql/providers/pq/async_io/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/pq/async_io/CMakeLists.windows-x86_64.txt index 7d61f0f8b52c..537674ec231f 100644 --- a/ydb/library/yql/providers/pq/async_io/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/pq/async_io/CMakeLists.windows-x86_64.txt @@ -14,7 +14,7 @@ target_compile_options(providers-pq-async_io PRIVATE target_link_libraries(providers-pq-async_io PUBLIC contrib-libs-cxxsupp yutil - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types yql-utils-log diff --git a/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.darwin-arm64.txt index 7be05df4a359..94d00772a8fb 100644 --- a/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.darwin-arm64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-pq-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-pq-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.darwin-x86_64.txt index 7be05df4a359..94d00772a8fb 100644 --- a/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-pq-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-pq-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.linux-aarch64.txt index 3c61e41263a7..680d709ed191 100644 --- a/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.linux-aarch64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-pq-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-pq-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.linux-x86_64.txt index 3c61e41263a7..680d709ed191 100644 --- a/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.linux-x86_64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-pq-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-pq-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.windows-x86_64.txt index 7be05df4a359..94d00772a8fb 100644 --- a/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/pq/expr_nodes/CMakeLists.windows-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-pq-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-pq-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/expr_nodes/yql_pq_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/pq/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/pq/proto/CMakeLists.darwin-arm64.txt index 0ecfcba40b3f..b5ce922d961b 100644 --- a/ydb/library/yql/providers/pq/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/pq/proto/CMakeLists.darwin-arm64.txt @@ -54,6 +54,11 @@ target_proto_messages(providers-pq-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/proto/dq_io_state.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/proto/dq_task_params.proto ) +target_sources(providers-pq-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/proto/dq_io.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/proto/dq_io_state.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/proto/dq_task_params.pb.h +) target_proto_addincls(providers-pq-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/pq/proto/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/pq/proto/CMakeLists.darwin-x86_64.txt index 0ecfcba40b3f..b5ce922d961b 100644 --- a/ydb/library/yql/providers/pq/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/pq/proto/CMakeLists.darwin-x86_64.txt @@ -54,6 +54,11 @@ target_proto_messages(providers-pq-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/proto/dq_io_state.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/proto/dq_task_params.proto ) +target_sources(providers-pq-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/proto/dq_io.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/proto/dq_io_state.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/proto/dq_task_params.pb.h +) target_proto_addincls(providers-pq-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/pq/proto/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/pq/proto/CMakeLists.linux-aarch64.txt index 146b3d1aa814..42ad63a76ab8 100644 --- a/ydb/library/yql/providers/pq/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/pq/proto/CMakeLists.linux-aarch64.txt @@ -55,6 +55,11 @@ target_proto_messages(providers-pq-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/proto/dq_io_state.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/proto/dq_task_params.proto ) +target_sources(providers-pq-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/proto/dq_io.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/proto/dq_io_state.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/proto/dq_task_params.pb.h +) target_proto_addincls(providers-pq-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/pq/proto/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/pq/proto/CMakeLists.linux-x86_64.txt index 146b3d1aa814..42ad63a76ab8 100644 --- a/ydb/library/yql/providers/pq/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/pq/proto/CMakeLists.linux-x86_64.txt @@ -55,6 +55,11 @@ target_proto_messages(providers-pq-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/proto/dq_io_state.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/proto/dq_task_params.proto ) +target_sources(providers-pq-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/proto/dq_io.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/proto/dq_io_state.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/proto/dq_task_params.pb.h +) target_proto_addincls(providers-pq-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/pq/proto/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/pq/proto/CMakeLists.windows-x86_64.txt index 0ecfcba40b3f..b5ce922d961b 100644 --- a/ydb/library/yql/providers/pq/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/pq/proto/CMakeLists.windows-x86_64.txt @@ -54,6 +54,11 @@ target_proto_messages(providers-pq-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/proto/dq_io_state.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/pq/proto/dq_task_params.proto ) +target_sources(providers-pq-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/proto/dq_io.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/proto/dq_io_state.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/pq/proto/dq_task_params.pb.h +) target_proto_addincls(providers-pq-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/pq/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/pq/provider/CMakeLists.darwin-arm64.txt index ac95caed16f9..50750bfbc39e 100644 --- a/ydb/library/yql/providers/pq/provider/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/pq/provider/CMakeLists.darwin-arm64.txt @@ -17,7 +17,7 @@ target_link_libraries(providers-pq-provider PUBLIC library-cpp-random_provider library-cpp-time_provider library-yql-ast - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-db_id_async_resolver providers-common-structured_token yql-public-udf diff --git a/ydb/library/yql/providers/pq/provider/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/pq/provider/CMakeLists.darwin-x86_64.txt index ac95caed16f9..50750bfbc39e 100644 --- a/ydb/library/yql/providers/pq/provider/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/pq/provider/CMakeLists.darwin-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(providers-pq-provider PUBLIC library-cpp-random_provider library-cpp-time_provider library-yql-ast - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-db_id_async_resolver providers-common-structured_token yql-public-udf diff --git a/ydb/library/yql/providers/pq/provider/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/pq/provider/CMakeLists.linux-aarch64.txt index c968919088dc..8415b2d0838e 100644 --- a/ydb/library/yql/providers/pq/provider/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/pq/provider/CMakeLists.linux-aarch64.txt @@ -18,7 +18,7 @@ target_link_libraries(providers-pq-provider PUBLIC library-cpp-random_provider library-cpp-time_provider library-yql-ast - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-db_id_async_resolver providers-common-structured_token yql-public-udf diff --git a/ydb/library/yql/providers/pq/provider/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/pq/provider/CMakeLists.linux-x86_64.txt index c968919088dc..8415b2d0838e 100644 --- a/ydb/library/yql/providers/pq/provider/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/pq/provider/CMakeLists.linux-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(providers-pq-provider PUBLIC library-cpp-random_provider library-cpp-time_provider library-yql-ast - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-db_id_async_resolver providers-common-structured_token yql-public-udf diff --git a/ydb/library/yql/providers/pq/provider/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/pq/provider/CMakeLists.windows-x86_64.txt index ac95caed16f9..50750bfbc39e 100644 --- a/ydb/library/yql/providers/pq/provider/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/pq/provider/CMakeLists.windows-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(providers-pq-provider PUBLIC library-cpp-random_provider library-cpp-time_provider library-yql-ast - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-db_id_async_resolver providers-common-structured_token yql-public-udf diff --git a/ydb/library/yql/providers/result/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/result/expr_nodes/CMakeLists.darwin-arm64.txt index ea7eea1b5c81..cd8e2bc5b4ae 100644 --- a/ydb/library/yql/providers/result/expr_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/result/expr_nodes/CMakeLists.darwin-arm64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-result-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-result-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/result/expr_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/result/expr_nodes/CMakeLists.darwin-x86_64.txt index ea7eea1b5c81..cd8e2bc5b4ae 100644 --- a/ydb/library/yql/providers/result/expr_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/result/expr_nodes/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-result-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-result-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/result/expr_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/result/expr_nodes/CMakeLists.linux-aarch64.txt index 9f87a9aa6237..1145be584a96 100644 --- a/ydb/library/yql/providers/result/expr_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/result/expr_nodes/CMakeLists.linux-aarch64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-result-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-result-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/result/expr_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/result/expr_nodes/CMakeLists.linux-x86_64.txt index 9f87a9aa6237..1145be584a96 100644 --- a/ydb/library/yql/providers/result/expr_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/result/expr_nodes/CMakeLists.linux-x86_64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-result-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-result-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/result/expr_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/result/expr_nodes/CMakeLists.windows-x86_64.txt index ea7eea1b5c81..cd8e2bc5b4ae 100644 --- a/ydb/library/yql/providers/result/expr_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/result/expr_nodes/CMakeLists.windows-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-result-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-result-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/result/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/result/provider/CMakeLists.darwin-arm64.txt index 4fd2b545afcd..9e33a42c9091 100644 --- a/ydb/library/yql/providers/result/provider/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/result/provider/CMakeLists.darwin-arm64.txt @@ -25,5 +25,6 @@ target_link_libraries(providers-result-provider PUBLIC providers-result-expr_nodes ) target_sources(providers-result-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/provider/yql_result_provider.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/provider/yql_result_provider.cpp ) diff --git a/ydb/library/yql/providers/result/provider/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/result/provider/CMakeLists.darwin-x86_64.txt index 4fd2b545afcd..9e33a42c9091 100644 --- a/ydb/library/yql/providers/result/provider/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/result/provider/CMakeLists.darwin-x86_64.txt @@ -25,5 +25,6 @@ target_link_libraries(providers-result-provider PUBLIC providers-result-expr_nodes ) target_sources(providers-result-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/provider/yql_result_provider.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/provider/yql_result_provider.cpp ) diff --git a/ydb/library/yql/providers/result/provider/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/result/provider/CMakeLists.linux-aarch64.txt index 03a6a5058bf5..c246064a8ad4 100644 --- a/ydb/library/yql/providers/result/provider/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/result/provider/CMakeLists.linux-aarch64.txt @@ -26,5 +26,6 @@ target_link_libraries(providers-result-provider PUBLIC providers-result-expr_nodes ) target_sources(providers-result-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/provider/yql_result_provider.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/provider/yql_result_provider.cpp ) diff --git a/ydb/library/yql/providers/result/provider/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/result/provider/CMakeLists.linux-x86_64.txt index 03a6a5058bf5..c246064a8ad4 100644 --- a/ydb/library/yql/providers/result/provider/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/result/provider/CMakeLists.linux-x86_64.txt @@ -26,5 +26,6 @@ target_link_libraries(providers-result-provider PUBLIC providers-result-expr_nodes ) target_sources(providers-result-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/provider/yql_result_provider.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/provider/yql_result_provider.cpp ) diff --git a/ydb/library/yql/providers/result/provider/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/result/provider/CMakeLists.windows-x86_64.txt index 4fd2b545afcd..9e33a42c9091 100644 --- a/ydb/library/yql/providers/result/provider/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/result/provider/CMakeLists.windows-x86_64.txt @@ -25,5 +25,6 @@ target_link_libraries(providers-result-provider PUBLIC providers-result-expr_nodes ) target_sources(providers-result-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/provider/yql_result_provider.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/result/provider/yql_result_provider.cpp ) diff --git a/ydb/library/yql/providers/s3/actors/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/actors/CMakeLists.darwin-arm64.txt index 11a03525ea31..47fc2f842bb2 100644 --- a/ydb/library/yql/providers/s3/actors/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/s3/actors/CMakeLists.darwin-arm64.txt @@ -29,7 +29,7 @@ target_link_libraries(providers-s3-actors PUBLIC cpp-xml-document fq-libs-events dq-actors-compute - minikql-computation-llvm + yql-minikql-computation providers-common-arrow common-arrow-interface providers-common-http_gateway @@ -51,5 +51,6 @@ target_sources(providers-s3-actors PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_sink_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_source_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_write_actor.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_arrow_column_converters.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp ) diff --git a/ydb/library/yql/providers/s3/actors/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/s3/actors/CMakeLists.darwin-x86_64.txt index 11a03525ea31..47fc2f842bb2 100644 --- a/ydb/library/yql/providers/s3/actors/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/s3/actors/CMakeLists.darwin-x86_64.txt @@ -29,7 +29,7 @@ target_link_libraries(providers-s3-actors PUBLIC cpp-xml-document fq-libs-events dq-actors-compute - minikql-computation-llvm + yql-minikql-computation providers-common-arrow common-arrow-interface providers-common-http_gateway @@ -51,5 +51,6 @@ target_sources(providers-s3-actors PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_sink_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_source_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_write_actor.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_arrow_column_converters.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp ) diff --git a/ydb/library/yql/providers/s3/actors/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/s3/actors/CMakeLists.linux-aarch64.txt index 68caf1f56d3f..b418b065ff72 100644 --- a/ydb/library/yql/providers/s3/actors/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/s3/actors/CMakeLists.linux-aarch64.txt @@ -30,7 +30,7 @@ target_link_libraries(providers-s3-actors PUBLIC cpp-xml-document fq-libs-events dq-actors-compute - minikql-computation-llvm + yql-minikql-computation providers-common-arrow common-arrow-interface providers-common-http_gateway @@ -52,5 +52,6 @@ target_sources(providers-s3-actors PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_sink_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_source_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_write_actor.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_arrow_column_converters.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp ) diff --git a/ydb/library/yql/providers/s3/actors/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/s3/actors/CMakeLists.linux-x86_64.txt index 68caf1f56d3f..b418b065ff72 100644 --- a/ydb/library/yql/providers/s3/actors/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/s3/actors/CMakeLists.linux-x86_64.txt @@ -30,7 +30,7 @@ target_link_libraries(providers-s3-actors PUBLIC cpp-xml-document fq-libs-events dq-actors-compute - minikql-computation-llvm + yql-minikql-computation providers-common-arrow common-arrow-interface providers-common-http_gateway @@ -52,5 +52,6 @@ target_sources(providers-s3-actors PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_sink_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_source_factory.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_write_actor.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_arrow_column_converters.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp ) diff --git a/ydb/library/yql/providers/s3/actors/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/s3/actors/CMakeLists.windows-x86_64.txt index 4937183580db..fd4150dc0e84 100644 --- a/ydb/library/yql/providers/s3/actors/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/s3/actors/CMakeLists.windows-x86_64.txt @@ -27,7 +27,7 @@ target_link_libraries(providers-s3-actors PUBLIC cpp-xml-document fq-libs-events dq-actors-compute - minikql-computation-llvm + yql-minikql-computation providers-common-arrow common-arrow-interface providers-common-http_gateway diff --git a/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.darwin-arm64.txt index 5b22c6092159..6c2aff507ff5 100644 --- a/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-library-yql-providers-s3-credentials-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-s3-credentials-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/credentials/credentials_ut.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.darwin-x86_64.txt index 2191586958af..16fa3804c315 100644 --- a/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-yql-providers-s3-credentials-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-s3-credentials-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/credentials/credentials_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.linux-aarch64.txt index 33b5e239449a..8d88c922f463 100644 --- a/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-providers-s3-credentials-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-s3-credentials-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/credentials/credentials_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.linux-x86_64.txt index 4502d9a24a10..aa2ec90e8415 100644 --- a/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-providers-s3-credentials-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-s3-credentials-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/credentials/credentials_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.windows-x86_64.txt index 8aa38546d61e..06384fd52c32 100644 --- a/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/s3/credentials/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.darwin-arm64.txt index b710ed0a9f2d..6914cfb40f65 100644 --- a/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.darwin-arm64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-s3-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-s3-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.darwin-x86_64.txt index b710ed0a9f2d..6914cfb40f65 100644 --- a/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-s3-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-s3-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.linux-aarch64.txt index 57cfefbe9d85..8d5a32372bbb 100644 --- a/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.linux-aarch64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-s3-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-s3-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.linux-x86_64.txt index 57cfefbe9d85..8d5a32372bbb 100644 --- a/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.linux-x86_64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-s3-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-s3-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.windows-x86_64.txt index b710ed0a9f2d..6914cfb40f65 100644 --- a/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/s3/expr_nodes/CMakeLists.windows-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-s3-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-s3-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/expr_nodes/yql_s3_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.darwin-arm64.txt index 05da0564a316..1aea52a5954a 100644 --- a/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-library-yql-providers-s3-object_listers-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-s3-object_listers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/object_listers/yql_s3_path_ut.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.darwin-x86_64.txt index 8cb595c1e1c7..edae5d1e30e6 100644 --- a/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-yql-providers-s3-object_listers-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-s3-object_listers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/object_listers/yql_s3_path_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.linux-aarch64.txt index 401b4507243d..edc7c5e8ddb6 100644 --- a/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-providers-s3-object_listers-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-s3-object_listers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/object_listers/yql_s3_path_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.linux-x86_64.txt index cbb021028bac..216d64efb45a 100644 --- a/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-providers-s3-object_listers-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-s3-object_listers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/object_listers/yql_s3_path_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.windows-x86_64.txt index eeeb92a6ea2d..7710cb947660 100644 --- a/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/s3/object_listers/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.darwin-arm64.txt index 2a0d5457a042..008c9618811d 100644 --- a/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-library-yql-providers-s3-path_generator-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-s3-path_generator-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/path_generator/ut/yql_generate_partitioning_rules_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.darwin-x86_64.txt index 682675fc60ec..55c747367552 100644 --- a/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-library-yql-providers-s3-path_generator-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-s3-path_generator-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/path_generator/ut/yql_generate_partitioning_rules_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.linux-aarch64.txt index b483edc6a9ae..6cf40a74b8f7 100644 --- a/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-library-yql-providers-s3-path_generator-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-s3-path_generator-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/path_generator/ut/yql_generate_partitioning_rules_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.linux-x86_64.txt index 91608acb7e20..74053756b3a5 100644 --- a/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/s3/path_generator/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-library-yql-providers-s3-path_generator-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-s3-path_generator-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/path_generator/ut/yql_generate_partitioning_rules_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/proto/CMakeLists.darwin-arm64.txt index 4fbbfdc929b2..fb98e52c7bbd 100644 --- a/ydb/library/yql/providers/s3/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/s3/proto/CMakeLists.darwin-arm64.txt @@ -80,6 +80,13 @@ target_proto_messages(providers-s3-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/proto/sink.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/proto/source.proto ) +target_sources(providers-s3-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/credentials.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/range.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/retry_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/sink.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/source.pb.h +) target_proto_addincls(providers-s3-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/s3/proto/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/s3/proto/CMakeLists.darwin-x86_64.txt index 4fbbfdc929b2..fb98e52c7bbd 100644 --- a/ydb/library/yql/providers/s3/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/s3/proto/CMakeLists.darwin-x86_64.txt @@ -80,6 +80,13 @@ target_proto_messages(providers-s3-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/proto/sink.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/proto/source.proto ) +target_sources(providers-s3-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/credentials.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/range.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/retry_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/sink.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/source.pb.h +) target_proto_addincls(providers-s3-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/s3/proto/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/s3/proto/CMakeLists.linux-aarch64.txt index 40ffa2724b35..8dd03e2acdfb 100644 --- a/ydb/library/yql/providers/s3/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/s3/proto/CMakeLists.linux-aarch64.txt @@ -81,6 +81,13 @@ target_proto_messages(providers-s3-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/proto/sink.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/proto/source.proto ) +target_sources(providers-s3-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/credentials.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/range.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/retry_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/sink.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/source.pb.h +) target_proto_addincls(providers-s3-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/s3/proto/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/s3/proto/CMakeLists.linux-x86_64.txt index 40ffa2724b35..8dd03e2acdfb 100644 --- a/ydb/library/yql/providers/s3/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/s3/proto/CMakeLists.linux-x86_64.txt @@ -81,6 +81,13 @@ target_proto_messages(providers-s3-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/proto/sink.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/proto/source.proto ) +target_sources(providers-s3-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/credentials.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/range.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/retry_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/sink.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/source.pb.h +) target_proto_addincls(providers-s3-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/s3/proto/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/s3/proto/CMakeLists.windows-x86_64.txt index 4fbbfdc929b2..fb98e52c7bbd 100644 --- a/ydb/library/yql/providers/s3/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/s3/proto/CMakeLists.windows-x86_64.txt @@ -80,6 +80,13 @@ target_proto_messages(providers-s3-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/proto/sink.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/proto/source.proto ) +target_sources(providers-s3-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/credentials.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/range.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/retry_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/sink.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/s3/proto/source.pb.h +) target_proto_addincls(providers-s3-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/s3/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/provider/CMakeLists.darwin-arm64.txt index 4888c34be029..84f7615afeb6 100644 --- a/ydb/library/yql/providers/s3/provider/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/s3/provider/CMakeLists.darwin-arm64.txt @@ -27,7 +27,7 @@ target_link_libraries(providers-s3-provider PUBLIC yql-core-type_ann yql-dq-expr_nodes yql-dq-integration - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-config providers-common-dq providers-common-http_gateway diff --git a/ydb/library/yql/providers/s3/provider/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/s3/provider/CMakeLists.darwin-x86_64.txt index 4888c34be029..84f7615afeb6 100644 --- a/ydb/library/yql/providers/s3/provider/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/s3/provider/CMakeLists.darwin-x86_64.txt @@ -27,7 +27,7 @@ target_link_libraries(providers-s3-provider PUBLIC yql-core-type_ann yql-dq-expr_nodes yql-dq-integration - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-config providers-common-dq providers-common-http_gateway diff --git a/ydb/library/yql/providers/s3/provider/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/s3/provider/CMakeLists.linux-aarch64.txt index b28d320cdbe9..b42e7ef963cc 100644 --- a/ydb/library/yql/providers/s3/provider/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/s3/provider/CMakeLists.linux-aarch64.txt @@ -28,7 +28,7 @@ target_link_libraries(providers-s3-provider PUBLIC yql-core-type_ann yql-dq-expr_nodes yql-dq-integration - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-config providers-common-dq providers-common-http_gateway diff --git a/ydb/library/yql/providers/s3/provider/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/s3/provider/CMakeLists.linux-x86_64.txt index b28d320cdbe9..b42e7ef963cc 100644 --- a/ydb/library/yql/providers/s3/provider/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/s3/provider/CMakeLists.linux-x86_64.txt @@ -28,7 +28,7 @@ target_link_libraries(providers-s3-provider PUBLIC yql-core-type_ann yql-dq-expr_nodes yql-dq-integration - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-config providers-common-dq providers-common-http_gateway diff --git a/ydb/library/yql/providers/s3/provider/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/s3/provider/CMakeLists.windows-x86_64.txt index 4888c34be029..84f7615afeb6 100644 --- a/ydb/library/yql/providers/s3/provider/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/s3/provider/CMakeLists.windows-x86_64.txt @@ -27,7 +27,7 @@ target_link_libraries(providers-s3-provider PUBLIC yql-core-type_ann yql-dq-expr_nodes yql-dq-integration - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-config providers-common-dq providers-common-http_gateway diff --git a/ydb/library/yql/providers/s3/provider/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/provider/ut/CMakeLists.darwin-arm64.txt index a9ace22c0182..1b2a56dbfbd3 100644 --- a/ydb/library/yql/providers/s3/provider/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/s3/provider/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-library-yql-providers-s3-provider-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-s3-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_listing_strategy_ut.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/provider/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/s3/provider/ut/CMakeLists.darwin-x86_64.txt index f6dfc6f3cddc..06812b9aca41 100644 --- a/ydb/library/yql/providers/s3/provider/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/s3/provider/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-yql-providers-s3-provider-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-s3-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_listing_strategy_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/provider/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/s3/provider/ut/CMakeLists.linux-aarch64.txt index 9e66dbc5458f..5fcf0554c8b2 100644 --- a/ydb/library/yql/providers/s3/provider/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/s3/provider/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-providers-s3-provider-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-s3-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_listing_strategy_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/provider/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/s3/provider/ut/CMakeLists.linux-x86_64.txt index f9e9c70c2a74..38cf5db8cfb8 100644 --- a/ydb/library/yql/providers/s3/provider/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/s3/provider/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-providers-s3-provider-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-s3-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/provider/yql_s3_listing_strategy_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/provider/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/s3/provider/ut/CMakeLists.windows-x86_64.txt index 47804df20123..c54f14a50340 100644 --- a/ydb/library/yql/providers/s3/provider/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/s3/provider/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.darwin-arm64.txt index a9182d67a9b3..7519f9bc848b 100644 --- a/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-library-yql-providers-s3-range_helpers-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-s3-range_helpers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/range_helpers/file_tree_builder_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.darwin-x86_64.txt index 99f029dfd863..a7f0be2dfdb0 100644 --- a/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-library-yql-providers-s3-range_helpers-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-s3-range_helpers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/range_helpers/file_tree_builder_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.linux-aarch64.txt index 9fdc25968df0..d3ae9c3300f4 100644 --- a/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-library-yql-providers-s3-range_helpers-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-s3-range_helpers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/range_helpers/file_tree_builder_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.linux-x86_64.txt index 7c0b217f6655..6a972bf7ba8d 100644 --- a/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-library-yql-providers-s3-range_helpers-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-s3-range_helpers-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/range_helpers/file_tree_builder_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.windows-x86_64.txt index 826e5390f235..b99cb7d82308 100644 --- a/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/s3/range_helpers/ut/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/solomon/async_io/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/solomon/async_io/CMakeLists.darwin-arm64.txt index 3150d2b9f0cc..57efac1991ed 100644 --- a/ydb/library/yql/providers/solomon/async_io/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/solomon/async_io/CMakeLists.darwin-arm64.txt @@ -16,7 +16,7 @@ target_link_libraries(providers-solomon-async_io PUBLIC yutil cpp-json-easy_parse monlib-encode-json - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types yql-public-udf diff --git a/ydb/library/yql/providers/solomon/async_io/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/solomon/async_io/CMakeLists.darwin-x86_64.txt index 3150d2b9f0cc..57efac1991ed 100644 --- a/ydb/library/yql/providers/solomon/async_io/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/solomon/async_io/CMakeLists.darwin-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(providers-solomon-async_io PUBLIC yutil cpp-json-easy_parse monlib-encode-json - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types yql-public-udf diff --git a/ydb/library/yql/providers/solomon/async_io/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/solomon/async_io/CMakeLists.linux-aarch64.txt index 46d7ce34d585..1b57f1fce307 100644 --- a/ydb/library/yql/providers/solomon/async_io/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/solomon/async_io/CMakeLists.linux-aarch64.txt @@ -17,7 +17,7 @@ target_link_libraries(providers-solomon-async_io PUBLIC yutil cpp-json-easy_parse monlib-encode-json - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types yql-public-udf diff --git a/ydb/library/yql/providers/solomon/async_io/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/solomon/async_io/CMakeLists.linux-x86_64.txt index 46d7ce34d585..1b57f1fce307 100644 --- a/ydb/library/yql/providers/solomon/async_io/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/solomon/async_io/CMakeLists.linux-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(providers-solomon-async_io PUBLIC yutil cpp-json-easy_parse monlib-encode-json - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types yql-public-udf diff --git a/ydb/library/yql/providers/solomon/async_io/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/solomon/async_io/CMakeLists.windows-x86_64.txt index 3150d2b9f0cc..57efac1991ed 100644 --- a/ydb/library/yql/providers/solomon/async_io/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/solomon/async_io/CMakeLists.windows-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(providers-solomon-async_io PUBLIC yutil cpp-json-easy_parse monlib-encode-json - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types yql-public-udf diff --git a/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.darwin-arm64.txt index 540c22ed8f82..843d97ccac90 100644 --- a/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.darwin-arm64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-solomon-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-solomon-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.darwin-x86_64.txt index 540c22ed8f82..843d97ccac90 100644 --- a/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-solomon-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-solomon-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.linux-aarch64.txt index a3797cbf522c..8bec357bd607 100644 --- a/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.linux-aarch64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-solomon-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-solomon-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.linux-x86_64.txt index a3797cbf522c..8bec357bd607 100644 --- a/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.linux-x86_64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-solomon-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-solomon-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.windows-x86_64.txt index 540c22ed8f82..843d97ccac90 100644 --- a/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/solomon/expr_nodes/CMakeLists.windows-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-solomon-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-solomon-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/expr_nodes/yql_solomon_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/solomon/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/solomon/proto/CMakeLists.darwin-arm64.txt index b5ca6a669d3a..47a8767abc75 100644 --- a/ydb/library/yql/providers/solomon/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/solomon/proto/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(providers-solomon-proto PUBLIC target_proto_messages(providers-solomon-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/proto/dq_solomon_shard.proto ) +target_sources(providers-solomon-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/proto/dq_solomon_shard.pb.h +) target_proto_addincls(providers-solomon-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/solomon/proto/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/solomon/proto/CMakeLists.darwin-x86_64.txt index b5ca6a669d3a..47a8767abc75 100644 --- a/ydb/library/yql/providers/solomon/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/solomon/proto/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(providers-solomon-proto PUBLIC target_proto_messages(providers-solomon-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/proto/dq_solomon_shard.proto ) +target_sources(providers-solomon-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/proto/dq_solomon_shard.pb.h +) target_proto_addincls(providers-solomon-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/solomon/proto/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/solomon/proto/CMakeLists.linux-aarch64.txt index 3b4b86fc9b8b..ffd61fd69910 100644 --- a/ydb/library/yql/providers/solomon/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/solomon/proto/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(providers-solomon-proto PUBLIC target_proto_messages(providers-solomon-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/proto/dq_solomon_shard.proto ) +target_sources(providers-solomon-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/proto/dq_solomon_shard.pb.h +) target_proto_addincls(providers-solomon-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/solomon/proto/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/solomon/proto/CMakeLists.linux-x86_64.txt index 3b4b86fc9b8b..ffd61fd69910 100644 --- a/ydb/library/yql/providers/solomon/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/solomon/proto/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(providers-solomon-proto PUBLIC target_proto_messages(providers-solomon-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/proto/dq_solomon_shard.proto ) +target_sources(providers-solomon-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/proto/dq_solomon_shard.pb.h +) target_proto_addincls(providers-solomon-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/solomon/proto/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/solomon/proto/CMakeLists.windows-x86_64.txt index b5ca6a669d3a..47a8767abc75 100644 --- a/ydb/library/yql/providers/solomon/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/solomon/proto/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(providers-solomon-proto PUBLIC target_proto_messages(providers-solomon-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/solomon/proto/dq_solomon_shard.proto ) +target_sources(providers-solomon-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/solomon/proto/dq_solomon_shard.pb.h +) target_proto_addincls(providers-solomon-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.darwin-arm64.txt index ecd82e499caf..da1b55044d26 100644 --- a/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.darwin-arm64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-stat-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-stat-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.darwin-x86_64.txt index ecd82e499caf..da1b55044d26 100644 --- a/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-stat-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-stat-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.linux-aarch64.txt index 062f55f7cc2d..868e39639272 100644 --- a/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.linux-aarch64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-stat-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-stat-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.linux-x86_64.txt index 062f55f7cc2d..868e39639272 100644 --- a/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.linux-x86_64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-stat-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-stat-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.windows-x86_64.txt index ecd82e499caf..da1b55044d26 100644 --- a/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/stat/expr_nodes/CMakeLists.windows-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-stat-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-stat-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/stat/expr_nodes/yql_stat_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/ydb/actors/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/ydb/actors/CMakeLists.darwin-arm64.txt index 765fdd735e22..99a5cab4b5ce 100644 --- a/ydb/library/yql/providers/ydb/actors/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/ydb/actors/CMakeLists.darwin-arm64.txt @@ -15,7 +15,7 @@ target_link_libraries(providers-ydb-actors PUBLIC contrib-libs-cxxsupp yutil ydb-core-scheme - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types yql-utils-log diff --git a/ydb/library/yql/providers/ydb/actors/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/ydb/actors/CMakeLists.darwin-x86_64.txt index 765fdd735e22..99a5cab4b5ce 100644 --- a/ydb/library/yql/providers/ydb/actors/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/ydb/actors/CMakeLists.darwin-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(providers-ydb-actors PUBLIC contrib-libs-cxxsupp yutil ydb-core-scheme - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types yql-utils-log diff --git a/ydb/library/yql/providers/ydb/actors/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/ydb/actors/CMakeLists.linux-aarch64.txt index 83d1b45399e3..3f650874fa1f 100644 --- a/ydb/library/yql/providers/ydb/actors/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/ydb/actors/CMakeLists.linux-aarch64.txt @@ -16,7 +16,7 @@ target_link_libraries(providers-ydb-actors PUBLIC contrib-libs-cxxsupp yutil ydb-core-scheme - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types yql-utils-log diff --git a/ydb/library/yql/providers/ydb/actors/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/ydb/actors/CMakeLists.linux-x86_64.txt index 83d1b45399e3..3f650874fa1f 100644 --- a/ydb/library/yql/providers/ydb/actors/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/ydb/actors/CMakeLists.linux-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(providers-ydb-actors PUBLIC contrib-libs-cxxsupp yutil ydb-core-scheme - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types yql-utils-log diff --git a/ydb/library/yql/providers/ydb/actors/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/ydb/actors/CMakeLists.windows-x86_64.txt index 765fdd735e22..99a5cab4b5ce 100644 --- a/ydb/library/yql/providers/ydb/actors/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/ydb/actors/CMakeLists.windows-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(providers-ydb-actors PUBLIC contrib-libs-cxxsupp yutil ydb-core-scheme - minikql-computation-llvm + yql-minikql-computation common-token_accessor-client yql-public-types yql-utils-log diff --git a/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.darwin-arm64.txt index e867dae5a9d3..7d73d516d8d4 100644 --- a/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.darwin-arm64.txt @@ -17,7 +17,7 @@ target_link_libraries(providers-ydb-comp_nodes PUBLIC ydb-core-scheme library-mkql_proto-protos dq-actors-protos - minikql-computation-llvm + yql-minikql-computation providers-common-structured_token providers-ydb-proto public-lib-experimental diff --git a/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.darwin-x86_64.txt index e867dae5a9d3..7d73d516d8d4 100644 --- a/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.darwin-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(providers-ydb-comp_nodes PUBLIC ydb-core-scheme library-mkql_proto-protos dq-actors-protos - minikql-computation-llvm + yql-minikql-computation providers-common-structured_token providers-ydb-proto public-lib-experimental diff --git a/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.linux-aarch64.txt index 88f19f4552f4..f6c3fce042dd 100644 --- a/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.linux-aarch64.txt @@ -18,7 +18,7 @@ target_link_libraries(providers-ydb-comp_nodes PUBLIC ydb-core-scheme library-mkql_proto-protos dq-actors-protos - minikql-computation-llvm + yql-minikql-computation providers-common-structured_token providers-ydb-proto public-lib-experimental diff --git a/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.linux-x86_64.txt index 88f19f4552f4..f6c3fce042dd 100644 --- a/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.linux-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(providers-ydb-comp_nodes PUBLIC ydb-core-scheme library-mkql_proto-protos dq-actors-protos - minikql-computation-llvm + yql-minikql-computation providers-common-structured_token providers-ydb-proto public-lib-experimental diff --git a/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.windows-x86_64.txt index e867dae5a9d3..7d73d516d8d4 100644 --- a/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/ydb/comp_nodes/CMakeLists.windows-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(providers-ydb-comp_nodes PUBLIC ydb-core-scheme library-mkql_proto-protos dq-actors-protos - minikql-computation-llvm + yql-minikql-computation providers-common-structured_token providers-ydb-proto public-lib-experimental diff --git a/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.darwin-arm64.txt index 99d4c2103a91..425e123439a4 100644 --- a/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.darwin-arm64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-ydb-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-ydb-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.darwin-x86_64.txt index 99d4c2103a91..425e123439a4 100644 --- a/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-ydb-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-ydb-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.linux-aarch64.txt index 48a5c5cc29a4..09c9dc7332e9 100644 --- a/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.linux-aarch64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-ydb-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-ydb-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.linux-x86_64.txt index 48a5c5cc29a4..09c9dc7332e9 100644 --- a/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.linux-x86_64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-ydb-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-ydb-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.windows-x86_64.txt index 99d4c2103a91..425e123439a4 100644 --- a/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/ydb/expr_nodes/CMakeLists.windows-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-ydb-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-ydb-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/expr_nodes/yql_ydb_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/ydb/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/ydb/proto/CMakeLists.darwin-arm64.txt index 43eb51761dba..650598c8b34b 100644 --- a/ydb/library/yql/providers/ydb/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/ydb/proto/CMakeLists.darwin-arm64.txt @@ -41,6 +41,10 @@ target_proto_messages(providers-ydb-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/proto/range.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/proto/source.proto ) +target_sources(providers-ydb-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/proto/range.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/proto/source.pb.h +) target_proto_addincls(providers-ydb-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/ydb/proto/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/ydb/proto/CMakeLists.darwin-x86_64.txt index 43eb51761dba..650598c8b34b 100644 --- a/ydb/library/yql/providers/ydb/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/ydb/proto/CMakeLists.darwin-x86_64.txt @@ -41,6 +41,10 @@ target_proto_messages(providers-ydb-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/proto/range.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/proto/source.proto ) +target_sources(providers-ydb-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/proto/range.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/proto/source.pb.h +) target_proto_addincls(providers-ydb-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/ydb/proto/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/ydb/proto/CMakeLists.linux-aarch64.txt index 071884921680..5f77db85434a 100644 --- a/ydb/library/yql/providers/ydb/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/ydb/proto/CMakeLists.linux-aarch64.txt @@ -42,6 +42,10 @@ target_proto_messages(providers-ydb-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/proto/range.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/proto/source.proto ) +target_sources(providers-ydb-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/proto/range.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/proto/source.pb.h +) target_proto_addincls(providers-ydb-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/ydb/proto/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/ydb/proto/CMakeLists.linux-x86_64.txt index 071884921680..5f77db85434a 100644 --- a/ydb/library/yql/providers/ydb/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/ydb/proto/CMakeLists.linux-x86_64.txt @@ -42,6 +42,10 @@ target_proto_messages(providers-ydb-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/proto/range.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/proto/source.proto ) +target_sources(providers-ydb-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/proto/range.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/proto/source.pb.h +) target_proto_addincls(providers-ydb-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/ydb/proto/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/ydb/proto/CMakeLists.windows-x86_64.txt index 43eb51761dba..650598c8b34b 100644 --- a/ydb/library/yql/providers/ydb/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/ydb/proto/CMakeLists.windows-x86_64.txt @@ -41,6 +41,10 @@ target_proto_messages(providers-ydb-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/proto/range.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/ydb/proto/source.proto ) +target_sources(providers-ydb-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/proto/range.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/ydb/proto/source.pb.h +) target_proto_addincls(providers-ydb-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/providers/ydb/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/ydb/provider/CMakeLists.darwin-arm64.txt index fee49f06acc9..1b481280c7b7 100644 --- a/ydb/library/yql/providers/ydb/provider/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/ydb/provider/CMakeLists.darwin-arm64.txt @@ -19,7 +19,7 @@ target_link_libraries(providers-ydb-provider PUBLIC cpp-yson-node fq-libs-common library-yql-ast - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-structured_token common-token_accessor-client library-yql-core diff --git a/ydb/library/yql/providers/ydb/provider/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/ydb/provider/CMakeLists.darwin-x86_64.txt index fee49f06acc9..1b481280c7b7 100644 --- a/ydb/library/yql/providers/ydb/provider/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/ydb/provider/CMakeLists.darwin-x86_64.txt @@ -19,7 +19,7 @@ target_link_libraries(providers-ydb-provider PUBLIC cpp-yson-node fq-libs-common library-yql-ast - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-structured_token common-token_accessor-client library-yql-core diff --git a/ydb/library/yql/providers/ydb/provider/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/ydb/provider/CMakeLists.linux-aarch64.txt index d37494217eb4..374700a56721 100644 --- a/ydb/library/yql/providers/ydb/provider/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/ydb/provider/CMakeLists.linux-aarch64.txt @@ -20,7 +20,7 @@ target_link_libraries(providers-ydb-provider PUBLIC cpp-yson-node fq-libs-common library-yql-ast - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-structured_token common-token_accessor-client library-yql-core diff --git a/ydb/library/yql/providers/ydb/provider/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/ydb/provider/CMakeLists.linux-x86_64.txt index d37494217eb4..374700a56721 100644 --- a/ydb/library/yql/providers/ydb/provider/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/ydb/provider/CMakeLists.linux-x86_64.txt @@ -20,7 +20,7 @@ target_link_libraries(providers-ydb-provider PUBLIC cpp-yson-node fq-libs-common library-yql-ast - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-structured_token common-token_accessor-client library-yql-core diff --git a/ydb/library/yql/providers/ydb/provider/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/ydb/provider/CMakeLists.windows-x86_64.txt index fee49f06acc9..1b481280c7b7 100644 --- a/ydb/library/yql/providers/ydb/provider/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/ydb/provider/CMakeLists.windows-x86_64.txt @@ -19,7 +19,7 @@ target_link_libraries(providers-ydb-provider PUBLIC cpp-yson-node fq-libs-common library-yql-ast - minikql-comp_nodes-llvm + yql-minikql-comp_nodes providers-common-structured_token common-token_accessor-client library-yql-core diff --git a/ydb/library/yql/providers/yt/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/CMakeLists.darwin-arm64.txt deleted file mode 100644 index c762ef5d46c5..000000000000 --- a/ydb/library/yql/providers/yt/CMakeLists.darwin-arm64.txt +++ /dev/null @@ -1,19 +0,0 @@ - -# 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(codec) -add_subdirectory(common) -add_subdirectory(comp_nodes) -add_subdirectory(dq_task_preprocessor) -add_subdirectory(expr_nodes) -add_subdirectory(gateway) -add_subdirectory(job) -add_subdirectory(lib) -add_subdirectory(mkql_dq) -add_subdirectory(opt) -add_subdirectory(provider) diff --git a/ydb/library/yql/providers/yt/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/CMakeLists.darwin-x86_64.txt deleted file mode 100644 index c762ef5d46c5..000000000000 --- a/ydb/library/yql/providers/yt/CMakeLists.darwin-x86_64.txt +++ /dev/null @@ -1,19 +0,0 @@ - -# 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(codec) -add_subdirectory(common) -add_subdirectory(comp_nodes) -add_subdirectory(dq_task_preprocessor) -add_subdirectory(expr_nodes) -add_subdirectory(gateway) -add_subdirectory(job) -add_subdirectory(lib) -add_subdirectory(mkql_dq) -add_subdirectory(opt) -add_subdirectory(provider) diff --git a/ydb/library/yql/providers/yt/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/CMakeLists.linux-aarch64.txt deleted file mode 100644 index c762ef5d46c5..000000000000 --- a/ydb/library/yql/providers/yt/CMakeLists.linux-aarch64.txt +++ /dev/null @@ -1,19 +0,0 @@ - -# 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(codec) -add_subdirectory(common) -add_subdirectory(comp_nodes) -add_subdirectory(dq_task_preprocessor) -add_subdirectory(expr_nodes) -add_subdirectory(gateway) -add_subdirectory(job) -add_subdirectory(lib) -add_subdirectory(mkql_dq) -add_subdirectory(opt) -add_subdirectory(provider) diff --git a/ydb/library/yql/providers/yt/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/CMakeLists.linux-x86_64.txt deleted file mode 100644 index c762ef5d46c5..000000000000 --- a/ydb/library/yql/providers/yt/CMakeLists.linux-x86_64.txt +++ /dev/null @@ -1,19 +0,0 @@ - -# 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(codec) -add_subdirectory(common) -add_subdirectory(comp_nodes) -add_subdirectory(dq_task_preprocessor) -add_subdirectory(expr_nodes) -add_subdirectory(gateway) -add_subdirectory(job) -add_subdirectory(lib) -add_subdirectory(mkql_dq) -add_subdirectory(opt) -add_subdirectory(provider) diff --git a/ydb/library/yql/providers/yt/CMakeLists.txt b/ydb/library/yql/providers/yt/CMakeLists.txt index d863ebd18067..c762ef5d46c5 100644 --- a/ydb/library/yql/providers/yt/CMakeLists.txt +++ b/ydb/library/yql/providers/yt/CMakeLists.txt @@ -6,14 +6,14 @@ # original buildsystem will not be accepted. -if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA) - include(CMakeLists.linux-x86_64.txt) -elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) -endif() +add_subdirectory(codec) +add_subdirectory(common) +add_subdirectory(comp_nodes) +add_subdirectory(dq_task_preprocessor) +add_subdirectory(expr_nodes) +add_subdirectory(gateway) +add_subdirectory(job) +add_subdirectory(lib) +add_subdirectory(mkql_dq) +add_subdirectory(opt) +add_subdirectory(provider) diff --git a/ydb/library/yql/providers/yt/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/CMakeLists.windows-x86_64.txt deleted file mode 100644 index 8e464fc08e94..000000000000 --- a/ydb/library/yql/providers/yt/CMakeLists.windows-x86_64.txt +++ /dev/null @@ -1,18 +0,0 @@ - -# 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(codec) -add_subdirectory(common) -add_subdirectory(comp_nodes) -add_subdirectory(expr_nodes) -add_subdirectory(gateway) -add_subdirectory(job) -add_subdirectory(lib) -add_subdirectory(mkql_dq) -add_subdirectory(opt) -add_subdirectory(provider) diff --git a/ydb/library/yql/providers/yt/codec/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/codec/CMakeLists.darwin-arm64.txt index eae0a3b160f3..d93a3c7cf22b 100644 --- a/ydb/library/yql/providers/yt/codec/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/codec/CMakeLists.darwin-arm64.txt @@ -30,9 +30,11 @@ target_link_libraries(providers-yt-codec PUBLIC providers-yt-common yt-lib-mkql_helpers yt-lib-skiff - yt-codec-codegen ) target_sources(providers-yt-codec PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_job.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_job.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec.cpp diff --git a/ydb/library/yql/providers/yt/codec/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/codec/CMakeLists.darwin-x86_64.txt index eae0a3b160f3..d93a3c7cf22b 100644 --- a/ydb/library/yql/providers/yt/codec/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/codec/CMakeLists.darwin-x86_64.txt @@ -30,9 +30,11 @@ target_link_libraries(providers-yt-codec PUBLIC providers-yt-common yt-lib-mkql_helpers yt-lib-skiff - yt-codec-codegen ) target_sources(providers-yt-codec PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_job.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_job.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec.cpp diff --git a/ydb/library/yql/providers/yt/codec/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/codec/CMakeLists.linux-aarch64.txt index e9793a476ef9..a3bb411c1c87 100644 --- a/ydb/library/yql/providers/yt/codec/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/codec/CMakeLists.linux-aarch64.txt @@ -31,9 +31,11 @@ target_link_libraries(providers-yt-codec PUBLIC providers-yt-common yt-lib-mkql_helpers yt-lib-skiff - yt-codec-codegen ) target_sources(providers-yt-codec PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_job.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_job.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec.cpp diff --git a/ydb/library/yql/providers/yt/codec/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/codec/CMakeLists.linux-x86_64.txt index e9793a476ef9..a3bb411c1c87 100644 --- a/ydb/library/yql/providers/yt/codec/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/codec/CMakeLists.linux-x86_64.txt @@ -31,9 +31,11 @@ target_link_libraries(providers-yt-codec PUBLIC providers-yt-common yt-lib-mkql_helpers yt-lib-skiff - yt-codec-codegen ) target_sources(providers-yt-codec PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_job.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_job.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec.cpp diff --git a/ydb/library/yql/providers/yt/codec/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/codec/CMakeLists.windows-x86_64.txt index eae0a3b160f3..d93a3c7cf22b 100644 --- a/ydb/library/yql/providers/yt/codec/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/codec/CMakeLists.windows-x86_64.txt @@ -30,9 +30,11 @@ target_link_libraries(providers-yt-codec PUBLIC providers-yt-common yt-lib-mkql_helpers yt-lib-skiff - yt-codec-codegen ) target_sources(providers-yt-codec PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_job.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_job.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec.cpp diff --git a/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.darwin-arm64.txt index 31b931eb7c5d..f29c871d9db2 100644 --- a/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.darwin-arm64.txt @@ -6,13 +6,8 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_subdirectory(ut) -get_built_tool_path( - TOOL_rescompiler_bin - TOOL_rescompiler_dependency - tools/rescompiler/bin - rescompiler -) add_library(yt-codec-codegen) target_compile_options(yt-codec-codegen PRIVATE @@ -23,81 +18,12 @@ target_link_libraries(yt-codec-codegen PUBLIC yutil library-cpp-resource ydb-library-binary_json - minikql-computation-llvm + minikql-computation-llvm14 parser-pg_wrapper-interface library-yql-utils - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - llvm12-lib-Support - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO - yql-minikql-codegen + minikql-codegen-llvm14 ) target_sources(yt-codec-codegen PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg.cpp ) - -add_global_library_for(yt-codec-codegen.global yt-codec-codegen) -target_compile_options(yt-codec-codegen.global PRIVATE - -DUSE_CURRENT_UDF_ABI_VERSION -) -target_link_libraries(yt-codec-codegen.global PUBLIC - contrib-libs-cxxsupp - yutil - library-cpp-resource - ydb-library-binary_json - minikql-computation-llvm - parser-pg_wrapper-interface - library-yql-utils - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - llvm12-lib-Support - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO - yql-minikql-codegen -) -target_sources(yt-codec-codegen.global PRIVATE - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/12ec3101983db48f6ee4095b4f5fb784.cpp -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc - COMMAND - ${LLVMOPT} - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc - -internalize-public-api-list=WriteJust#WriteNothing#WriteBool#Write8#Write16#Write32#Write64#Write120#WriteDecimal32#WriteDecimal64#WriteDecimal128#WriteFloat#WriteDouble#WriteString#ReadBool#ReadInt8#ReadUint8#ReadInt16#ReadUint16#ReadInt32#ReadUint32#ReadInt64#ReadUint64#ReadInt120#ReadDecimal32#ReadDecimal64#ReadDecimal128#ReadFloat#ReadDouble#ReadOptional#ReadVariantData#SkipFixedData#SkipVarData#ReadTzDate#ReadTzDatetime#ReadTzTimestamp#WriteTzDate#WriteTzDatetime#WriteTzTimestamp#GetWrittenBytes#FillZero - -passes="default<O2>,globalopt,globaldce,internalize" -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc - COMMAND - ${LLVMLINK} - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc -) -llvm_compile_cxx(yt-codec-codegen.global - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -resources(yt-codec-codegen.global - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/12ec3101983db48f6ee4095b4f5fb784.cpp - INPUTS - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc - KEYS - /llvm_bc/YtCodecFuncs -) diff --git a/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.darwin-x86_64.txt index 31b931eb7c5d..f29c871d9db2 100644 --- a/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.darwin-x86_64.txt @@ -6,13 +6,8 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_subdirectory(ut) -get_built_tool_path( - TOOL_rescompiler_bin - TOOL_rescompiler_dependency - tools/rescompiler/bin - rescompiler -) add_library(yt-codec-codegen) target_compile_options(yt-codec-codegen PRIVATE @@ -23,81 +18,12 @@ target_link_libraries(yt-codec-codegen PUBLIC yutil library-cpp-resource ydb-library-binary_json - minikql-computation-llvm + minikql-computation-llvm14 parser-pg_wrapper-interface library-yql-utils - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - llvm12-lib-Support - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO - yql-minikql-codegen + minikql-codegen-llvm14 ) target_sources(yt-codec-codegen PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg.cpp ) - -add_global_library_for(yt-codec-codegen.global yt-codec-codegen) -target_compile_options(yt-codec-codegen.global PRIVATE - -DUSE_CURRENT_UDF_ABI_VERSION -) -target_link_libraries(yt-codec-codegen.global PUBLIC - contrib-libs-cxxsupp - yutil - library-cpp-resource - ydb-library-binary_json - minikql-computation-llvm - parser-pg_wrapper-interface - library-yql-utils - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - llvm12-lib-Support - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO - yql-minikql-codegen -) -target_sources(yt-codec-codegen.global PRIVATE - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/12ec3101983db48f6ee4095b4f5fb784.cpp -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc - COMMAND - ${LLVMOPT} - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc - -internalize-public-api-list=WriteJust#WriteNothing#WriteBool#Write8#Write16#Write32#Write64#Write120#WriteDecimal32#WriteDecimal64#WriteDecimal128#WriteFloat#WriteDouble#WriteString#ReadBool#ReadInt8#ReadUint8#ReadInt16#ReadUint16#ReadInt32#ReadUint32#ReadInt64#ReadUint64#ReadInt120#ReadDecimal32#ReadDecimal64#ReadDecimal128#ReadFloat#ReadDouble#ReadOptional#ReadVariantData#SkipFixedData#SkipVarData#ReadTzDate#ReadTzDatetime#ReadTzTimestamp#WriteTzDate#WriteTzDatetime#WriteTzTimestamp#GetWrittenBytes#FillZero - -passes="default<O2>,globalopt,globaldce,internalize" -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc - COMMAND - ${LLVMLINK} - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc -) -llvm_compile_cxx(yt-codec-codegen.global - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -resources(yt-codec-codegen.global - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/12ec3101983db48f6ee4095b4f5fb784.cpp - INPUTS - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc - KEYS - /llvm_bc/YtCodecFuncs -) diff --git a/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.linux-aarch64.txt index 66f13add1cce..7365376ac07e 100644 --- a/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.linux-aarch64.txt @@ -6,13 +6,8 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_subdirectory(ut) -get_built_tool_path( - TOOL_rescompiler_bin - TOOL_rescompiler_dependency - tools/rescompiler/bin - rescompiler -) add_library(yt-codec-codegen) target_compile_options(yt-codec-codegen PRIVATE @@ -24,82 +19,12 @@ target_link_libraries(yt-codec-codegen PUBLIC yutil library-cpp-resource ydb-library-binary_json - minikql-computation-llvm + minikql-computation-llvm14 parser-pg_wrapper-interface library-yql-utils - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - llvm12-lib-Support - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO - yql-minikql-codegen + minikql-codegen-llvm14 ) target_sources(yt-codec-codegen PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg.cpp ) - -add_global_library_for(yt-codec-codegen.global yt-codec-codegen) -target_compile_options(yt-codec-codegen.global PRIVATE - -DUSE_CURRENT_UDF_ABI_VERSION -) -target_link_libraries(yt-codec-codegen.global PUBLIC - contrib-libs-linux-headers - contrib-libs-cxxsupp - yutil - library-cpp-resource - ydb-library-binary_json - minikql-computation-llvm - parser-pg_wrapper-interface - library-yql-utils - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - llvm12-lib-Support - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO - yql-minikql-codegen -) -target_sources(yt-codec-codegen.global PRIVATE - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/12ec3101983db48f6ee4095b4f5fb784.cpp -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc - COMMAND - ${LLVMOPT} - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc - -internalize-public-api-list=WriteJust#WriteNothing#WriteBool#Write8#Write16#Write32#Write64#Write120#WriteDecimal32#WriteDecimal64#WriteDecimal128#WriteFloat#WriteDouble#WriteString#ReadBool#ReadInt8#ReadUint8#ReadInt16#ReadUint16#ReadInt32#ReadUint32#ReadInt64#ReadUint64#ReadInt120#ReadDecimal32#ReadDecimal64#ReadDecimal128#ReadFloat#ReadDouble#ReadOptional#ReadVariantData#SkipFixedData#SkipVarData#ReadTzDate#ReadTzDatetime#ReadTzTimestamp#WriteTzDate#WriteTzDatetime#WriteTzTimestamp#GetWrittenBytes#FillZero - -passes="default<O2>,globalopt,globaldce,internalize" -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc - COMMAND - ${LLVMLINK} - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc -) -llvm_compile_cxx(yt-codec-codegen.global - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -resources(yt-codec-codegen.global - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/12ec3101983db48f6ee4095b4f5fb784.cpp - INPUTS - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc - KEYS - /llvm_bc/YtCodecFuncs -) diff --git a/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.linux-x86_64.txt index 66f13add1cce..7365376ac07e 100644 --- a/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.linux-x86_64.txt @@ -6,13 +6,8 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_subdirectory(ut) -get_built_tool_path( - TOOL_rescompiler_bin - TOOL_rescompiler_dependency - tools/rescompiler/bin - rescompiler -) add_library(yt-codec-codegen) target_compile_options(yt-codec-codegen PRIVATE @@ -24,82 +19,12 @@ target_link_libraries(yt-codec-codegen PUBLIC yutil library-cpp-resource ydb-library-binary_json - minikql-computation-llvm + minikql-computation-llvm14 parser-pg_wrapper-interface library-yql-utils - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - llvm12-lib-Support - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO - yql-minikql-codegen + minikql-codegen-llvm14 ) target_sources(yt-codec-codegen PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg.cpp ) - -add_global_library_for(yt-codec-codegen.global yt-codec-codegen) -target_compile_options(yt-codec-codegen.global PRIVATE - -DUSE_CURRENT_UDF_ABI_VERSION -) -target_link_libraries(yt-codec-codegen.global PUBLIC - contrib-libs-linux-headers - contrib-libs-cxxsupp - yutil - library-cpp-resource - ydb-library-binary_json - minikql-computation-llvm - parser-pg_wrapper-interface - library-yql-utils - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - llvm12-lib-Support - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO - yql-minikql-codegen -) -target_sources(yt-codec-codegen.global PRIVATE - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/12ec3101983db48f6ee4095b4f5fb784.cpp -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc - COMMAND - ${LLVMOPT} - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc - -internalize-public-api-list=WriteJust#WriteNothing#WriteBool#Write8#Write16#Write32#Write64#Write120#WriteDecimal32#WriteDecimal64#WriteDecimal128#WriteFloat#WriteDouble#WriteString#ReadBool#ReadInt8#ReadUint8#ReadInt16#ReadUint16#ReadInt32#ReadUint32#ReadInt64#ReadUint64#ReadInt120#ReadDecimal32#ReadDecimal64#ReadDecimal128#ReadFloat#ReadDouble#ReadOptional#ReadVariantData#SkipFixedData#SkipVarData#ReadTzDate#ReadTzDatetime#ReadTzTimestamp#WriteTzDate#WriteTzDatetime#WriteTzTimestamp#GetWrittenBytes#FillZero - -passes="default<O2>,globalopt,globaldce,internalize" -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc - COMMAND - ${LLVMLINK} - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc -) -llvm_compile_cxx(yt-codec-codegen.global - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -resources(yt-codec-codegen.global - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/12ec3101983db48f6ee4095b4f5fb784.cpp - INPUTS - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc - KEYS - /llvm_bc/YtCodecFuncs -) diff --git a/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.windows-x86_64.txt index 31b931eb7c5d..f29c871d9db2 100644 --- a/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/codec/codegen/CMakeLists.windows-x86_64.txt @@ -6,13 +6,8 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_subdirectory(ut) -get_built_tool_path( - TOOL_rescompiler_bin - TOOL_rescompiler_dependency - tools/rescompiler/bin - rescompiler -) add_library(yt-codec-codegen) target_compile_options(yt-codec-codegen PRIVATE @@ -23,81 +18,12 @@ target_link_libraries(yt-codec-codegen PUBLIC yutil library-cpp-resource ydb-library-binary_json - minikql-computation-llvm + minikql-computation-llvm14 parser-pg_wrapper-interface library-yql-utils - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - llvm12-lib-Support - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO - yql-minikql-codegen + minikql-codegen-llvm14 ) target_sources(yt-codec-codegen PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg.cpp ) - -add_global_library_for(yt-codec-codegen.global yt-codec-codegen) -target_compile_options(yt-codec-codegen.global PRIVATE - -DUSE_CURRENT_UDF_ABI_VERSION -) -target_link_libraries(yt-codec-codegen.global PUBLIC - contrib-libs-cxxsupp - yutil - library-cpp-resource - ydb-library-binary_json - minikql-computation-llvm - parser-pg_wrapper-interface - library-yql-utils - llvm12-lib-IR - lib-ExecutionEngine-MCJIT - llvm12-lib-Linker - llvm12-lib-Support - lib-Target-X86 - Target-X86-AsmParser - lib-Transforms-IPO - yql-minikql-codegen -) -target_sources(yt-codec-codegen.global PRIVATE - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/12ec3101983db48f6ee4095b4f5fb784.cpp -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc - COMMAND - ${LLVMOPT} - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc - -internalize-public-api-list=WriteJust#WriteNothing#WriteBool#Write8#Write16#Write32#Write64#Write120#WriteDecimal32#WriteDecimal64#WriteDecimal128#WriteFloat#WriteDouble#WriteString#ReadBool#ReadInt8#ReadUint8#ReadInt16#ReadUint16#ReadInt32#ReadUint32#ReadInt64#ReadUint64#ReadInt120#ReadDecimal32#ReadDecimal64#ReadDecimal128#ReadFloat#ReadDouble#ReadOptional#ReadVariantData#SkipFixedData#SkipVarData#ReadTzDate#ReadTzDatetime#ReadTzTimestamp#WriteTzDate#WriteTzDatetime#WriteTzTimestamp#GetWrittenBytes#FillZero - -passes="default<O2>,globalopt,globaldce,internalize" -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc - COMMAND - ${LLVMLINK} - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_merged.bc -) -llvm_compile_cxx(yt-codec-codegen.global - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_bc.cpp.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -resources(yt-codec-codegen.global - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/12ec3101983db48f6ee4095b4f5fb784.cpp - INPUTS - ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/codec/codegen/YtCodecFuncs_optimized.bc - KEYS - /llvm_bc/YtCodecFuncs -) diff --git a/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..da1077860e31 --- /dev/null +++ b/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.darwin-arm64.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(codec-codegen-no_llvm) +target_compile_options(codec-codegen-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(codec-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen +) +target_link_libraries(codec-codegen-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil +) +target_sources(codec-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg_dummy.cpp +) diff --git a/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..da1077860e31 --- /dev/null +++ b/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.darwin-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(codec-codegen-no_llvm) +target_compile_options(codec-codegen-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(codec-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen +) +target_link_libraries(codec-codegen-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil +) +target_sources(codec-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg_dummy.cpp +) diff --git a/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..ec96f665b5ce --- /dev/null +++ b/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.linux-aarch64.txt @@ -0,0 +1,24 @@ + +# 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(codec-codegen-no_llvm) +target_compile_options(codec-codegen-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(codec-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen +) +target_link_libraries(codec-codegen-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) +target_sources(codec-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg_dummy.cpp +) diff --git a/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..ec96f665b5ce --- /dev/null +++ b/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.linux-x86_64.txt @@ -0,0 +1,24 @@ + +# 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(codec-codegen-no_llvm) +target_compile_options(codec-codegen-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(codec-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen +) +target_link_libraries(codec-codegen-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) +target_sources(codec-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg_dummy.cpp +) diff --git a/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.txt b/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..da1077860e31 --- /dev/null +++ b/ydb/library/yql/providers/yt/codec/codegen/no_llvm/CMakeLists.windows-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(codec-codegen-no_llvm) +target_compile_options(codec-codegen-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(codec-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen +) +target_link_libraries(codec-codegen-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil +) +target_sources(codec-codegen-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/yt_codec_cg_dummy.cpp +) diff --git a/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.darwin-arm64.txt index 613308b30c56..5343bd29f2cf 100644 --- a/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.darwin-arm64.txt @@ -19,7 +19,7 @@ target_link_libraries(ydb-library-yql-providers-yt-codec-codegen-ut PUBLIC yutil cpp-testing-unittest_main yt-codec-codegen - minikql-computation-llvm + minikql-computation-llvm14 udf-service-exception_policy library-yql-sql yql-sql-pg_dummy @@ -29,8 +29,6 @@ target_link_options(ydb-library-yql-providers-yt-codec-codegen-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-yt-codec-codegen-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/ut/yt_codec_cg_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.darwin-x86_64.txt index e9fafaccff9c..f5919cd3c2b4 100644 --- a/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.darwin-x86_64.txt @@ -20,7 +20,7 @@ target_link_libraries(ydb-library-yql-providers-yt-codec-codegen-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main yt-codec-codegen - minikql-computation-llvm + minikql-computation-llvm14 udf-service-exception_policy library-yql-sql yql-sql-pg_dummy @@ -30,8 +30,6 @@ target_link_options(ydb-library-yql-providers-yt-codec-codegen-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-yt-codec-codegen-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/ut/yt_codec_cg_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.linux-aarch64.txt index 940a32c07bdc..771c46d65755 100644 --- a/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.linux-aarch64.txt @@ -20,7 +20,7 @@ target_link_libraries(ydb-library-yql-providers-yt-codec-codegen-ut PUBLIC yutil cpp-testing-unittest_main yt-codec-codegen - minikql-computation-llvm + minikql-computation-llvm14 udf-service-exception_policy library-yql-sql yql-sql-pg_dummy @@ -32,9 +32,6 @@ target_link_options(ydb-library-yql-providers-yt-codec-codegen-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-yt-codec-codegen-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/ut/yt_codec_cg_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.linux-x86_64.txt index 4455b224355a..676bf3104432 100644 --- a/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.linux-x86_64.txt @@ -21,7 +21,7 @@ target_link_libraries(ydb-library-yql-providers-yt-codec-codegen-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main yt-codec-codegen - minikql-computation-llvm + minikql-computation-llvm14 udf-service-exception_policy library-yql-sql yql-sql-pg_dummy @@ -33,9 +33,6 @@ target_link_options(ydb-library-yql-providers-yt-codec-codegen-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-yt-codec-codegen-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/codegen/ut/yt_codec_cg_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.windows-x86_64.txt index 0189d49889c9..28ce4b567d4a 100644 --- a/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/codec/codegen/ut/CMakeLists.windows-x86_64.txt @@ -20,7 +20,7 @@ target_link_libraries(ydb-library-yql-providers-yt-codec-codegen-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main yt-codec-codegen - minikql-computation-llvm + minikql-computation-llvm14 udf-service-exception_policy library-yql-sql yql-sql-pg_dummy @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/codec/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/codec/ut/CMakeLists.darwin-arm64.txt index 97d7a200e627..db1535689ed8 100644 --- a/ydb/library/yql/providers/yt/codec/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/codec/ut/CMakeLists.darwin-arm64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_executable(ydb-library-yql-providers-yt-codec-ut) target_compile_options(ydb-library-yql-providers-yt-codec-ut PRIVATE @@ -20,20 +21,19 @@ target_link_libraries(ydb-library-yql-providers-yt-codec-ut PUBLIC cpp-testing-unittest_main providers-yt-codec cpp-yson-node - minikql-computation-llvm + minikql-computation-llvm14 udf-service-exception_policy library-yql-sql yql-sql-pg_dummy providers-common-codec providers-common-mkql yt-lib-yson_helpers + yt-codec-codegen ) target_link_options(ydb-library-yql-providers-yt-codec-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-yt-codec-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io_ut.cpp @@ -63,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/codec/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/codec/ut/CMakeLists.darwin-x86_64.txt index d60b5ec3fb50..475a13284a20 100644 --- a/ydb/library/yql/providers/yt/codec/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/codec/ut/CMakeLists.darwin-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_executable(ydb-library-yql-providers-yt-codec-ut) target_compile_options(ydb-library-yql-providers-yt-codec-ut PRIVATE @@ -21,20 +22,19 @@ target_link_libraries(ydb-library-yql-providers-yt-codec-ut PUBLIC cpp-testing-unittest_main providers-yt-codec cpp-yson-node - minikql-computation-llvm + minikql-computation-llvm14 udf-service-exception_policy library-yql-sql yql-sql-pg_dummy providers-common-codec providers-common-mkql yt-lib-yson_helpers + yt-codec-codegen ) target_link_options(ydb-library-yql-providers-yt-codec-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-yt-codec-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io_ut.cpp @@ -64,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/codec/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/codec/ut/CMakeLists.linux-aarch64.txt index d00ff286f945..5f71d1286168 100644 --- a/ydb/library/yql/providers/yt/codec/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/codec/ut/CMakeLists.linux-aarch64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_executable(ydb-library-yql-providers-yt-codec-ut) target_compile_options(ydb-library-yql-providers-yt-codec-ut PRIVATE @@ -21,13 +22,14 @@ target_link_libraries(ydb-library-yql-providers-yt-codec-ut PUBLIC cpp-testing-unittest_main providers-yt-codec cpp-yson-node - minikql-computation-llvm + minikql-computation-llvm14 udf-service-exception_policy library-yql-sql yql-sql-pg_dummy providers-common-codec providers-common-mkql yt-lib-yson_helpers + yt-codec-codegen ) target_link_options(ydb-library-yql-providers-yt-codec-ut PRIVATE -ldl @@ -35,9 +37,6 @@ target_link_options(ydb-library-yql-providers-yt-codec-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-yt-codec-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io_ut.cpp @@ -67,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/codec/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/codec/ut/CMakeLists.linux-x86_64.txt index 1004710d7ffb..50747a696240 100644 --- a/ydb/library/yql/providers/yt/codec/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/codec/ut/CMakeLists.linux-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_executable(ydb-library-yql-providers-yt-codec-ut) target_compile_options(ydb-library-yql-providers-yt-codec-ut PRIVATE @@ -22,13 +23,14 @@ target_link_libraries(ydb-library-yql-providers-yt-codec-ut PUBLIC cpp-testing-unittest_main providers-yt-codec cpp-yson-node - minikql-computation-llvm + minikql-computation-llvm14 udf-service-exception_policy library-yql-sql yql-sql-pg_dummy providers-common-codec providers-common-mkql yt-lib-yson_helpers + yt-codec-codegen ) target_link_options(ydb-library-yql-providers-yt-codec-ut PRIVATE -ldl @@ -36,9 +38,6 @@ target_link_options(ydb-library-yql-providers-yt-codec-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-providers-yt-codec-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io_ut.cpp @@ -68,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/codec/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/codec/ut/CMakeLists.windows-x86_64.txt index f5ea5a23c573..2d0fcf95a02a 100644 --- a/ydb/library/yql/providers/yt/codec/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/codec/ut/CMakeLists.windows-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_executable(ydb-library-yql-providers-yt-codec-ut) target_compile_options(ydb-library-yql-providers-yt-codec-ut PRIVATE @@ -21,13 +22,14 @@ target_link_libraries(ydb-library-yql-providers-yt-codec-ut PUBLIC cpp-testing-unittest_main providers-yt-codec cpp-yson-node - minikql-computation-llvm + minikql-computation-llvm14 udf-service-exception_policy library-yql-sql yql-sql-pg_dummy providers-common-codec providers-common-mkql yt-lib-yson_helpers + yt-codec-codegen ) target_sources(ydb-library-yql-providers-yt-codec-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io_ut.cpp @@ -57,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..23c00ba1d280 --- /dev/null +++ b/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.darwin-arm64.txt @@ -0,0 +1,78 @@ + +# 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-yql-providers-yt-codec-ut-no_llvm) +target_compile_options(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec +) +target_link_libraries(ydb-library-yql-providers-yt-codec-ut-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + providers-yt-codec + cpp-yson-node + minikql-codegen-no_llvm + minikql-computation-no_llvm + udf-service-exception_policy + library-yql-sql + yql-sql-pg_dummy + providers-common-codec + providers-common-mkql + yt-lib-yson_helpers + codec-codegen-no_llvm +) +target_link_options(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io_ut.cpp +) +set_property( + TARGET + ydb-library-yql-providers-yt-codec-ut-no_llvm + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-providers-yt-codec-ut-no_llvm + TEST_TARGET + ydb-library-yql-providers-yt-codec-ut-no_llvm + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-providers-yt-codec-ut-no_llvm + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-providers-yt-codec-ut-no_llvm + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-library-yql-providers-yt-codec-ut-no_llvm + system_allocator +) +vcs_info(ydb-library-yql-providers-yt-codec-ut-no_llvm) diff --git a/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..587fe23ad0eb --- /dev/null +++ b/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.darwin-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-library-yql-providers-yt-codec-ut-no_llvm) +target_compile_options(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec +) +target_link_libraries(ydb-library-yql-providers-yt-codec-ut-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + providers-yt-codec + cpp-yson-node + minikql-codegen-no_llvm + minikql-computation-no_llvm + udf-service-exception_policy + library-yql-sql + yql-sql-pg_dummy + providers-common-codec + providers-common-mkql + yt-lib-yson_helpers + codec-codegen-no_llvm +) +target_link_options(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io_ut.cpp +) +set_property( + TARGET + ydb-library-yql-providers-yt-codec-ut-no_llvm + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-providers-yt-codec-ut-no_llvm + TEST_TARGET + ydb-library-yql-providers-yt-codec-ut-no_llvm + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-providers-yt-codec-ut-no_llvm + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-providers-yt-codec-ut-no_llvm + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-library-yql-providers-yt-codec-ut-no_llvm + system_allocator +) +vcs_info(ydb-library-yql-providers-yt-codec-ut-no_llvm) diff --git a/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..c4c50add3cf4 --- /dev/null +++ b/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.linux-aarch64.txt @@ -0,0 +1,81 @@ + +# 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-yql-providers-yt-codec-ut-no_llvm) +target_compile_options(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec +) +target_link_libraries(ydb-library-yql-providers-yt-codec-ut-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + providers-yt-codec + cpp-yson-node + minikql-codegen-no_llvm + minikql-computation-no_llvm + udf-service-exception_policy + library-yql-sql + yql-sql-pg_dummy + providers-common-codec + providers-common-mkql + yt-lib-yson_helpers + codec-codegen-no_llvm +) +target_link_options(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io_ut.cpp +) +set_property( + TARGET + ydb-library-yql-providers-yt-codec-ut-no_llvm + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-providers-yt-codec-ut-no_llvm + TEST_TARGET + ydb-library-yql-providers-yt-codec-ut-no_llvm + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-providers-yt-codec-ut-no_llvm + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-providers-yt-codec-ut-no_llvm + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-library-yql-providers-yt-codec-ut-no_llvm + cpp-malloc-jemalloc +) +vcs_info(ydb-library-yql-providers-yt-codec-ut-no_llvm) diff --git a/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..d7d1a525c02b --- /dev/null +++ b/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.linux-x86_64.txt @@ -0,0 +1,83 @@ + +# 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-yql-providers-yt-codec-ut-no_llvm) +target_compile_options(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec +) +target_link_libraries(ydb-library-yql-providers-yt-codec-ut-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + providers-yt-codec + cpp-yson-node + minikql-codegen-no_llvm + minikql-computation-no_llvm + udf-service-exception_policy + library-yql-sql + yql-sql-pg_dummy + providers-common-codec + providers-common-mkql + yt-lib-yson_helpers + codec-codegen-no_llvm +) +target_link_options(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io_ut.cpp +) +set_property( + TARGET + ydb-library-yql-providers-yt-codec-ut-no_llvm + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-providers-yt-codec-ut-no_llvm + TEST_TARGET + ydb-library-yql-providers-yt-codec-ut-no_llvm + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-providers-yt-codec-ut-no_llvm + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-providers-yt-codec-ut-no_llvm + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-library-yql-providers-yt-codec-ut-no_llvm + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-library-yql-providers-yt-codec-ut-no_llvm) diff --git a/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.txt b/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..d1bf960b2b3f --- /dev/null +++ b/ydb/library/yql/providers/yt/codec/ut/no_llvm/CMakeLists.windows-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-library-yql-providers-yt-codec-ut-no_llvm) +target_compile_options(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec +) +target_link_libraries(ydb-library-yql-providers-yt-codec-ut-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + providers-yt-codec + cpp-yson-node + minikql-codegen-no_llvm + minikql-computation-no_llvm + udf-service-exception_policy + library-yql-sql + yql-sql-pg_dummy + providers-common-codec + providers-common-mkql + yt-lib-yson_helpers + codec-codegen-no_llvm +) +target_sources(ydb-library-yql-providers-yt-codec-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/codec/yt_codec_io_ut.cpp +) +set_property( + TARGET + ydb-library-yql-providers-yt-codec-ut-no_llvm + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-providers-yt-codec-ut-no_llvm + TEST_TARGET + ydb-library-yql-providers-yt-codec-ut-no_llvm + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-providers-yt-codec-ut-no_llvm + PROPERTY + LABELS + SMALL + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-providers-yt-codec-ut-no_llvm + PROPERTY + PROCESSORS + 1 +) +target_allocator(ydb-library-yql-providers-yt-codec-ut-no_llvm + system_allocator +) +vcs_info(ydb-library-yql-providers-yt-codec-ut-no_llvm) diff --git a/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.darwin-arm64.txt index e724b2788838..254f2ac72774 100644 --- a/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.darwin-arm64.txt @@ -7,31 +7,12 @@ add_subdirectory(dq) -add_subdirectory(ut) +add_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) -add_library(providers-yt-comp_nodes) -target_compile_options(providers-yt-comp_nodes PRIVATE - -DUSE_CURRENT_UDF_ABI_VERSION -) -target_link_libraries(providers-yt-comp_nodes PUBLIC +add_library(providers-yt-comp_nodes INTERFACE) +target_link_libraries(providers-yt-comp_nodes INTERFACE contrib-libs-cxxsupp yutil - cpp-streams-brotli - library-yql-minikql - yql-public-udf - library-yql-utils - providers-common-codec - providers-common-mkql - providers-yt-codec - providers-yt-expr_nodes -) -target_sources(providers-yt-comp_nodes PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_file_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_input_stream.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_input.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_output.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_table_content.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_table.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_ungrouping_list.cpp ) diff --git a/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.darwin-x86_64.txt index e724b2788838..254f2ac72774 100644 --- a/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.darwin-x86_64.txt @@ -7,31 +7,12 @@ add_subdirectory(dq) -add_subdirectory(ut) +add_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) -add_library(providers-yt-comp_nodes) -target_compile_options(providers-yt-comp_nodes PRIVATE - -DUSE_CURRENT_UDF_ABI_VERSION -) -target_link_libraries(providers-yt-comp_nodes PUBLIC +add_library(providers-yt-comp_nodes INTERFACE) +target_link_libraries(providers-yt-comp_nodes INTERFACE contrib-libs-cxxsupp yutil - cpp-streams-brotli - library-yql-minikql - yql-public-udf - library-yql-utils - providers-common-codec - providers-common-mkql - providers-yt-codec - providers-yt-expr_nodes -) -target_sources(providers-yt-comp_nodes PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_file_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_input_stream.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_input.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_output.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_table_content.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_table.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_ungrouping_list.cpp ) diff --git a/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.linux-aarch64.txt index 70f9622a1894..8f33d2fc6018 100644 --- a/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.linux-aarch64.txt @@ -7,32 +7,13 @@ add_subdirectory(dq) -add_subdirectory(ut) +add_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) -add_library(providers-yt-comp_nodes) -target_compile_options(providers-yt-comp_nodes PRIVATE - -DUSE_CURRENT_UDF_ABI_VERSION -) -target_link_libraries(providers-yt-comp_nodes PUBLIC +add_library(providers-yt-comp_nodes INTERFACE) +target_link_libraries(providers-yt-comp_nodes INTERFACE contrib-libs-linux-headers contrib-libs-cxxsupp yutil - cpp-streams-brotli - library-yql-minikql - yql-public-udf - library-yql-utils - providers-common-codec - providers-common-mkql - providers-yt-codec - providers-yt-expr_nodes -) -target_sources(providers-yt-comp_nodes PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_file_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_input_stream.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_input.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_output.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_table_content.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_table.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_ungrouping_list.cpp ) diff --git a/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.linux-x86_64.txt index 70f9622a1894..8f33d2fc6018 100644 --- a/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.linux-x86_64.txt @@ -7,32 +7,13 @@ add_subdirectory(dq) -add_subdirectory(ut) +add_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) -add_library(providers-yt-comp_nodes) -target_compile_options(providers-yt-comp_nodes PRIVATE - -DUSE_CURRENT_UDF_ABI_VERSION -) -target_link_libraries(providers-yt-comp_nodes PUBLIC +add_library(providers-yt-comp_nodes INTERFACE) +target_link_libraries(providers-yt-comp_nodes INTERFACE contrib-libs-linux-headers contrib-libs-cxxsupp yutil - cpp-streams-brotli - library-yql-minikql - yql-public-udf - library-yql-utils - providers-common-codec - providers-common-mkql - providers-yt-codec - providers-yt-expr_nodes -) -target_sources(providers-yt-comp_nodes PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_file_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_input_stream.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_input.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_output.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_table_content.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_table.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_ungrouping_list.cpp ) diff --git a/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.windows-x86_64.txt index e724b2788838..254f2ac72774 100644 --- a/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/comp_nodes/CMakeLists.windows-x86_64.txt @@ -7,31 +7,12 @@ add_subdirectory(dq) -add_subdirectory(ut) +add_subdirectory(llvm) +add_subdirectory(llvm14) +add_subdirectory(no_llvm) -add_library(providers-yt-comp_nodes) -target_compile_options(providers-yt-comp_nodes PRIVATE - -DUSE_CURRENT_UDF_ABI_VERSION -) -target_link_libraries(providers-yt-comp_nodes PUBLIC +add_library(providers-yt-comp_nodes INTERFACE) +target_link_libraries(providers-yt-comp_nodes INTERFACE contrib-libs-cxxsupp yutil - cpp-streams-brotli - library-yql-minikql - yql-public-udf - library-yql-utils - providers-common-codec - providers-common-mkql - providers-yt-codec - providers-yt-expr_nodes -) -target_sources(providers-yt-comp_nodes PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_file_list.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_input_stream.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_input.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_output.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_table_content.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_table.cpp - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/yql_mkql_ungrouping_list.cpp ) diff --git a/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.darwin-arm64.txt index 9082a770b58d..02de73b47a2c 100644 --- a/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.darwin-arm64.txt @@ -17,11 +17,12 @@ target_include_directories(yt-comp_nodes-dq PRIVATE target_link_libraries(yt-comp_nodes-dq PUBLIC contrib-libs-cxxsupp yutil - minikql-computation-llvm + library-yql-minikql + minikql-computation-llvm14 providers-yt-comp_nodes providers-yt-codec providers-common-codec - core-formats-arrow + yql-utils-failure_injector cpp-mapreduce-interface cpp-mapreduce-common cpp-yson-node diff --git a/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.darwin-x86_64.txt index 9082a770b58d..02de73b47a2c 100644 --- a/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.darwin-x86_64.txt @@ -17,11 +17,12 @@ target_include_directories(yt-comp_nodes-dq PRIVATE target_link_libraries(yt-comp_nodes-dq PUBLIC contrib-libs-cxxsupp yutil - minikql-computation-llvm + library-yql-minikql + minikql-computation-llvm14 providers-yt-comp_nodes providers-yt-codec providers-common-codec - core-formats-arrow + yql-utils-failure_injector cpp-mapreduce-interface cpp-mapreduce-common cpp-yson-node diff --git a/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.linux-aarch64.txt index 06ae4cb2da3f..28a4c1a75173 100644 --- a/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.linux-aarch64.txt @@ -19,11 +19,12 @@ target_link_libraries(yt-comp_nodes-dq PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-computation-llvm + library-yql-minikql + minikql-computation-llvm14 providers-yt-comp_nodes providers-yt-codec providers-common-codec - core-formats-arrow + yql-utils-failure_injector cpp-mapreduce-interface cpp-mapreduce-common cpp-yson-node @@ -36,6 +37,7 @@ target_link_libraries(yt-comp_nodes-dq PUBLIC yt-lib-yt_rpc_helpers ) target_sources(yt-comp_nodes-dq PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/dq/arrow_converter.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/dq/stream_decoder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/dq/dq_yt_rpc_reader.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/dq/dq_yt_rpc_helpers.cpp diff --git a/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.linux-x86_64.txt index 06ae4cb2da3f..28a4c1a75173 100644 --- a/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.linux-x86_64.txt @@ -19,11 +19,12 @@ target_link_libraries(yt-comp_nodes-dq PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - minikql-computation-llvm + library-yql-minikql + minikql-computation-llvm14 providers-yt-comp_nodes providers-yt-codec providers-common-codec - core-formats-arrow + yql-utils-failure_injector cpp-mapreduce-interface cpp-mapreduce-common cpp-yson-node @@ -36,6 +37,7 @@ target_link_libraries(yt-comp_nodes-dq PUBLIC yt-lib-yt_rpc_helpers ) target_sources(yt-comp_nodes-dq PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/dq/arrow_converter.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/dq/stream_decoder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/dq/dq_yt_rpc_reader.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes/dq/dq_yt_rpc_helpers.cpp diff --git a/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.windows-x86_64.txt index 9082a770b58d..02de73b47a2c 100644 --- a/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/comp_nodes/dq/CMakeLists.windows-x86_64.txt @@ -17,11 +17,12 @@ target_include_directories(yt-comp_nodes-dq PRIVATE target_link_libraries(yt-comp_nodes-dq PUBLIC contrib-libs-cxxsupp yutil - minikql-computation-llvm + library-yql-minikql + minikql-computation-llvm14 providers-yt-comp_nodes providers-yt-codec providers-common-codec - core-formats-arrow + yql-utils-failure_injector cpp-mapreduce-interface cpp-mapreduce-common cpp-yson-node diff --git a/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..84fb6d2aab15 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.darwin-arm64.txt @@ -0,0 +1,73 @@ + +# 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(yt-comp_nodes-llvm STATIC) +set_property(TARGET yt-comp_nodes-llvm PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(yt-comp_nodes-llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION + $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(yt-comp_nodes-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(yt-comp_nodes-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes +) +target_link_libraries(yt-comp_nodes-llvm PUBLIC + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm + minikql-invoke_builtins-llvm14 + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + cpp-streams-brotli + library-yql-minikql + yql-public-udf + library-yql-utils + providers-common-codec + providers-common-mkql + providers-yt-codec + providers-yt-expr_nodes +) +target_sources(yt-comp_nodes-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..84fb6d2aab15 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,73 @@ + +# 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(yt-comp_nodes-llvm STATIC) +set_property(TARGET yt-comp_nodes-llvm PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(yt-comp_nodes-llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION + $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(yt-comp_nodes-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(yt-comp_nodes-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes +) +target_link_libraries(yt-comp_nodes-llvm PUBLIC + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm + minikql-invoke_builtins-llvm14 + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + cpp-streams-brotli + library-yql-minikql + yql-public-udf + library-yql-utils + providers-common-codec + providers-common-mkql + providers-yt-codec + providers-yt-expr_nodes +) +target_sources(yt-comp_nodes-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..0c4498c1d38f --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.linux-aarch64.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_library(yt-comp_nodes-llvm STATIC) +set_property(TARGET yt-comp_nodes-llvm PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(yt-comp_nodes-llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION + $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(yt-comp_nodes-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(yt-comp_nodes-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes +) +target_link_libraries(yt-comp_nodes-llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm + minikql-invoke_builtins-llvm14 + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + cpp-streams-brotli + library-yql-minikql + yql-public-udf + library-yql-utils + providers-common-codec + providers-common-mkql + providers-yt-codec + providers-yt-expr_nodes +) +target_sources(yt-comp_nodes-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..0c4498c1d38f --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.linux-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_library(yt-comp_nodes-llvm STATIC) +set_property(TARGET yt-comp_nodes-llvm PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(yt-comp_nodes-llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION + $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(yt-comp_nodes-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(yt-comp_nodes-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes +) +target_link_libraries(yt-comp_nodes-llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm + minikql-invoke_builtins-llvm14 + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + cpp-streams-brotli + library-yql-minikql + yql-public-udf + library-yql-utils + providers-common-codec + providers-common-mkql + providers-yt-codec + providers-yt-expr_nodes +) +target_sources(yt-comp_nodes-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.txt b/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..84fb6d2aab15 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/llvm/CMakeLists.windows-x86_64.txt @@ -0,0 +1,73 @@ + +# 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(yt-comp_nodes-llvm STATIC) +set_property(TARGET yt-comp_nodes-llvm PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(yt-comp_nodes-llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION + $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(yt-comp_nodes-llvm PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/computation +) +target_include_directories(yt-comp_nodes-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes +) +target_link_libraries(yt-comp_nodes-llvm PUBLIC + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm + minikql-invoke_builtins-llvm14 + llvm12-lib-IR + lib-ExecutionEngine-MCJIT + llvm12-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + cpp-streams-brotli + library-yql-minikql + yql-public-udf + library-yql-utils + providers-common-codec + providers-common-mkql + providers-yt-codec + providers-yt-expr_nodes +) +target_sources(yt-comp_nodes-llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..20f3cf9c5705 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.darwin-arm64.txt @@ -0,0 +1,73 @@ + +# 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(yt-comp_nodes-llvm14 STATIC) +set_property(TARGET yt-comp_nodes-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(yt-comp_nodes-llvm14 PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION + $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(yt-comp_nodes-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(yt-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes +) +target_link_libraries(yt-comp_nodes-llvm14 PUBLIC + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + minikql-invoke_builtins-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + cpp-streams-brotli + library-yql-minikql + yql-public-udf + library-yql-utils + providers-common-codec + providers-common-mkql + providers-yt-codec + providers-yt-expr_nodes +) +target_sources(yt-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..20f3cf9c5705 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,73 @@ + +# 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(yt-comp_nodes-llvm14 STATIC) +set_property(TARGET yt-comp_nodes-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(yt-comp_nodes-llvm14 PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION + $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(yt-comp_nodes-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(yt-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes +) +target_link_libraries(yt-comp_nodes-llvm14 PUBLIC + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + minikql-invoke_builtins-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + cpp-streams-brotli + library-yql-minikql + yql-public-udf + library-yql-utils + providers-common-codec + providers-common-mkql + providers-yt-codec + providers-yt-expr_nodes +) +target_sources(yt-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..a0f4e895d353 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.linux-aarch64.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_library(yt-comp_nodes-llvm14 STATIC) +set_property(TARGET yt-comp_nodes-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(yt-comp_nodes-llvm14 PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION + $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(yt-comp_nodes-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(yt-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes +) +target_link_libraries(yt-comp_nodes-llvm14 PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + minikql-invoke_builtins-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + cpp-streams-brotli + library-yql-minikql + yql-public-udf + library-yql-utils + providers-common-codec + providers-common-mkql + providers-yt-codec + providers-yt-expr_nodes +) +target_sources(yt-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..a0f4e895d353 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.linux-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_library(yt-comp_nodes-llvm14 STATIC) +set_property(TARGET yt-comp_nodes-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(yt-comp_nodes-llvm14 PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION + $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(yt-comp_nodes-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(yt-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes +) +target_link_libraries(yt-comp_nodes-llvm14 PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + minikql-invoke_builtins-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + cpp-streams-brotli + library-yql-minikql + yql-public-udf + library-yql-utils + providers-common-codec + providers-common-mkql + providers-yt-codec + providers-yt-expr_nodes +) +target_sources(yt-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.txt b/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..20f3cf9c5705 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/llvm14/CMakeLists.windows-x86_64.txt @@ -0,0 +1,73 @@ + +# 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(yt-comp_nodes-llvm14 STATIC) +set_property(TARGET yt-comp_nodes-llvm14 PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(yt-comp_nodes-llvm14 PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION + $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> +) +target_include_directories(yt-comp_nodes-llvm14 PUBLIC + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14 + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/computation +) +target_include_directories(yt-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes +) +target_link_libraries(yt-comp_nodes-llvm14 PUBLIC + contrib-libs-cxxsupp + yutil + minikql-codegen-llvm14 + minikql-invoke_builtins-llvm14 + llvm14-lib-IR + lib-ExecutionEngine-MCJIT + llvm14-lib-Linker + lib-Target-X86 + Target-X86-AsmParser + lib-Transforms-IPO + cpp-streams-brotli + library-yql-minikql + yql-public-udf + library-yql-utils + providers-common-codec + providers-common-mkql + providers-yt-codec + providers-yt-expr_nodes +) +target_sources(yt-comp_nodes-llvm14 PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/llvm14/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..cb5b81707316 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.darwin-arm64.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_library(yt-comp_nodes-no_llvm STATIC) +set_property(TARGET yt-comp_nodes-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(yt-comp_nodes-no_llvm PRIVATE + -DMKQL_DISABLE_CODEGEN + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(yt-comp_nodes-no_llvm PUBLIC + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(yt-comp_nodes-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes +) +target_link_libraries(yt-comp_nodes-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + cpp-streams-brotli + library-yql-minikql + yql-public-udf + library-yql-utils + providers-common-codec + providers-common-mkql + providers-yt-codec + providers-yt-expr_nodes + minikql-invoke_builtins-no_llvm +) +target_sources(yt-comp_nodes-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..cb5b81707316 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.darwin-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_library(yt-comp_nodes-no_llvm STATIC) +set_property(TARGET yt-comp_nodes-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(yt-comp_nodes-no_llvm PRIVATE + -DMKQL_DISABLE_CODEGEN + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(yt-comp_nodes-no_llvm PUBLIC + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(yt-comp_nodes-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes +) +target_link_libraries(yt-comp_nodes-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + cpp-streams-brotli + library-yql-minikql + yql-public-udf + library-yql-utils + providers-common-codec + providers-common-mkql + providers-yt-codec + providers-yt-expr_nodes + minikql-invoke_builtins-no_llvm +) +target_sources(yt-comp_nodes-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..9072a823dbd3 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.linux-aarch64.txt @@ -0,0 +1,68 @@ + +# 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(yt-comp_nodes-no_llvm STATIC) +set_property(TARGET yt-comp_nodes-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(yt-comp_nodes-no_llvm PRIVATE + -DMKQL_DISABLE_CODEGEN + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(yt-comp_nodes-no_llvm PUBLIC + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(yt-comp_nodes-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes +) +target_link_libraries(yt-comp_nodes-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-streams-brotli + library-yql-minikql + yql-public-udf + library-yql-utils + providers-common-codec + providers-common-mkql + providers-yt-codec + providers-yt-expr_nodes + minikql-invoke_builtins-no_llvm +) +target_sources(yt-comp_nodes-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..9072a823dbd3 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.linux-x86_64.txt @@ -0,0 +1,68 @@ + +# 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(yt-comp_nodes-no_llvm STATIC) +set_property(TARGET yt-comp_nodes-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(yt-comp_nodes-no_llvm PRIVATE + -DMKQL_DISABLE_CODEGEN + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(yt-comp_nodes-no_llvm PUBLIC + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(yt-comp_nodes-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes +) +target_link_libraries(yt-comp_nodes-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-streams-brotli + library-yql-minikql + yql-public-udf + library-yql-utils + providers-common-codec + providers-common-mkql + providers-yt-codec + providers-yt-expr_nodes + minikql-invoke_builtins-no_llvm +) +target_sources(yt-comp_nodes-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.txt b/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/comp_nodes/no_llvm/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..cb5b81707316 --- /dev/null +++ b/ydb/library/yql/providers/yt/comp_nodes/no_llvm/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_library(yt-comp_nodes-no_llvm STATIC) +set_property(TARGET yt-comp_nodes-no_llvm PROPERTY + LINKER_LANGUAGE CXX +) +target_compile_options(yt-comp_nodes-no_llvm PRIVATE + -DMKQL_DISABLE_CODEGEN + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(yt-comp_nodes-no_llvm PUBLIC + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/codegen/llvm_stub + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/computation +) +target_include_directories(yt-comp_nodes-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/comp_nodes +) +target_link_libraries(yt-comp_nodes-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + cpp-streams-brotli + library-yql-minikql + yql-public-udf + library-yql-utils + providers-common-codec + providers-common-mkql + providers-yt-codec + providers-yt-expr_nodes + minikql-invoke_builtins-no_llvm +) +target_sources(yt-comp_nodes-no_llvm PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/computation/mkql_computation_node_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_codegen_llvm.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_impl.h +) +copy_file( + ${CMAKE_SOURCE_DIR}/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h.txt + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/comp_nodes/no_llvm/ydb/library/yql/minikql/invoke_builtins/mkql_builtins_decimal.h +) diff --git a/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.darwin-arm64.txt index 7d03fe3302f5..e62f2859e678 100644 --- a/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.darwin-arm64.txt @@ -22,7 +22,7 @@ target_link_libraries(providers-yt-dq_task_preprocessor PUBLIC yql-utils-log yql-utils-failure_injector library-yql-minikql - minikql-computation-llvm + yql-minikql-computation providers-common-codec providers-dq-interface providers-yt-codec diff --git a/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.darwin-x86_64.txt index 7d03fe3302f5..e62f2859e678 100644 --- a/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.darwin-x86_64.txt @@ -22,7 +22,7 @@ target_link_libraries(providers-yt-dq_task_preprocessor PUBLIC yql-utils-log yql-utils-failure_injector library-yql-minikql - minikql-computation-llvm + yql-minikql-computation providers-common-codec providers-dq-interface providers-yt-codec diff --git a/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.linux-aarch64.txt index b03d0481c588..88925398a5cb 100644 --- a/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.linux-aarch64.txt @@ -23,7 +23,7 @@ target_link_libraries(providers-yt-dq_task_preprocessor PUBLIC yql-utils-log yql-utils-failure_injector library-yql-minikql - minikql-computation-llvm + yql-minikql-computation providers-common-codec providers-dq-interface providers-yt-codec diff --git a/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.linux-x86_64.txt index b03d0481c588..88925398a5cb 100644 --- a/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.linux-x86_64.txt @@ -23,7 +23,7 @@ target_link_libraries(providers-yt-dq_task_preprocessor PUBLIC yql-utils-log yql-utils-failure_injector library-yql-minikql - minikql-computation-llvm + yql-minikql-computation providers-common-codec providers-dq-interface providers-yt-codec diff --git a/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.txt b/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.txt index 380079ac7b4a..d863ebd18067 100644 --- a/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.txt +++ b/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.txt @@ -14,4 +14,6 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL include(CMakeLists.darwin-x86_64.txt) elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) endif() diff --git a/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/dq_task_preprocessor/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..e62f2859e678 --- /dev/null +++ b/ydb/library/yql/providers/yt/dq_task_preprocessor/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. + + + +add_library(providers-yt-dq_task_preprocessor) +target_compile_options(providers-yt-dq_task_preprocessor PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(providers-yt-dq_task_preprocessor PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-yson + cpp-yson-node + cpp-mapreduce-common + cpp-mapreduce-interface + library-yql-utils + yql-utils-log + yql-utils-failure_injector + library-yql-minikql + yql-minikql-computation + providers-common-codec + providers-dq-interface + providers-yt-codec + yt-gateway-lib + yt-lib-yson_helpers +) +target_sources(providers-yt-dq_task_preprocessor PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/dq_task_preprocessor/yql_yt_dq_task_preprocessor.cpp +) diff --git a/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.darwin-arm64.txt index ed0dc39cb7dd..f93289639b10 100644 --- a/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.darwin-arm64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-yt-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-yt-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.darwin-x86_64.txt index ed0dc39cb7dd..f93289639b10 100644 --- a/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-yt-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-yt-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.linux-aarch64.txt index b1b99d65f9d4..fcc572b061b0 100644 --- a/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.linux-aarch64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-yt-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-yt-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.linux-x86_64.txt index b1b99d65f9d4..fcc572b061b0 100644 --- a/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.linux-x86_64.txt @@ -17,6 +17,9 @@ target_link_libraries(providers-yt-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-yt-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.windows-x86_64.txt index ed0dc39cb7dd..f93289639b10 100644 --- a/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/expr_nodes/CMakeLists.windows-x86_64.txt @@ -16,6 +16,9 @@ target_link_libraries(providers-yt-expr_nodes PUBLIC providers-common-provider ) target_sources(providers-yt-expr_nodes PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.gen.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.decl.inl.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.defs.inl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.cpp ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.gen.h ${CMAKE_BINARY_DIR}/ydb/library/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.decl.inl.h diff --git a/ydb/library/yql/providers/yt/gateway/file/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/gateway/file/CMakeLists.darwin-arm64.txt index 323acc09e87d..429e5b4e1e5b 100644 --- a/ydb/library/yql/providers/yt/gateway/file/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/gateway/file/CMakeLists.darwin-arm64.txt @@ -21,7 +21,7 @@ target_link_libraries(yt-gateway-file PUBLIC yql-core-file_storage core-file_storage-proto core-file_storage-http_download - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-public-udf library-yql-utils yql-utils-threading diff --git a/ydb/library/yql/providers/yt/gateway/file/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/gateway/file/CMakeLists.darwin-x86_64.txt index 323acc09e87d..429e5b4e1e5b 100644 --- a/ydb/library/yql/providers/yt/gateway/file/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/gateway/file/CMakeLists.darwin-x86_64.txt @@ -21,7 +21,7 @@ target_link_libraries(yt-gateway-file PUBLIC yql-core-file_storage core-file_storage-proto core-file_storage-http_download - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-public-udf library-yql-utils yql-utils-threading diff --git a/ydb/library/yql/providers/yt/gateway/file/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/gateway/file/CMakeLists.linux-aarch64.txt index 33f1a8c2fcc2..e6945c9bd465 100644 --- a/ydb/library/yql/providers/yt/gateway/file/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/gateway/file/CMakeLists.linux-aarch64.txt @@ -22,7 +22,7 @@ target_link_libraries(yt-gateway-file PUBLIC yql-core-file_storage core-file_storage-proto core-file_storage-http_download - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-public-udf library-yql-utils yql-utils-threading diff --git a/ydb/library/yql/providers/yt/gateway/file/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/gateway/file/CMakeLists.linux-x86_64.txt index 33f1a8c2fcc2..e6945c9bd465 100644 --- a/ydb/library/yql/providers/yt/gateway/file/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/gateway/file/CMakeLists.linux-x86_64.txt @@ -22,7 +22,7 @@ target_link_libraries(yt-gateway-file PUBLIC yql-core-file_storage core-file_storage-proto core-file_storage-http_download - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-public-udf library-yql-utils yql-utils-threading diff --git a/ydb/library/yql/providers/yt/gateway/file/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/gateway/file/CMakeLists.windows-x86_64.txt index 323acc09e87d..429e5b4e1e5b 100644 --- a/ydb/library/yql/providers/yt/gateway/file/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/gateway/file/CMakeLists.windows-x86_64.txt @@ -21,7 +21,7 @@ target_link_libraries(yt-gateway-file PUBLIC yql-core-file_storage core-file_storage-proto core-file_storage-http_download - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-public-udf library-yql-utils yql-utils-threading diff --git a/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.darwin-arm64.txt index 6721e4c5ba97..ea4e3c1ab9ec 100644 --- a/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.darwin-arm64.txt @@ -36,6 +36,11 @@ target_link_libraries(yt-gateway-lib PUBLIC yt-lib-yson_helpers ) target_sources(yt-gateway-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/query_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/temp_files.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/transaction_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/user_files.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/yt_helpers.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/query_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/temp_files.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/transaction_cache.cpp diff --git a/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.darwin-x86_64.txt index 6721e4c5ba97..ea4e3c1ab9ec 100644 --- a/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.darwin-x86_64.txt @@ -36,6 +36,11 @@ target_link_libraries(yt-gateway-lib PUBLIC yt-lib-yson_helpers ) target_sources(yt-gateway-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/query_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/temp_files.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/transaction_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/user_files.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/yt_helpers.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/query_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/temp_files.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/transaction_cache.cpp diff --git a/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.linux-aarch64.txt index fee6ac163b66..9203828499f4 100644 --- a/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.linux-aarch64.txt @@ -37,6 +37,11 @@ target_link_libraries(yt-gateway-lib PUBLIC yt-lib-yson_helpers ) target_sources(yt-gateway-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/query_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/temp_files.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/transaction_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/user_files.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/yt_helpers.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/query_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/temp_files.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/transaction_cache.cpp diff --git a/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.linux-x86_64.txt index fee6ac163b66..9203828499f4 100644 --- a/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.linux-x86_64.txt @@ -37,6 +37,11 @@ target_link_libraries(yt-gateway-lib PUBLIC yt-lib-yson_helpers ) target_sources(yt-gateway-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/query_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/temp_files.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/transaction_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/user_files.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/yt_helpers.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/query_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/temp_files.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/transaction_cache.cpp diff --git a/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.windows-x86_64.txt index 6721e4c5ba97..ea4e3c1ab9ec 100644 --- a/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/gateway/lib/CMakeLists.windows-x86_64.txt @@ -36,6 +36,11 @@ target_link_libraries(yt-gateway-lib PUBLIC yt-lib-yson_helpers ) target_sources(yt-gateway-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/query_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/temp_files.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/transaction_cache.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/user_files.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/yt_helpers.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/query_cache.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/temp_files.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/lib/transaction_cache.cpp diff --git a/ydb/library/yql/providers/yt/gateway/native/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/gateway/native/CMakeLists.darwin-arm64.txt index f8b5242d5612..a6b920fbc757 100644 --- a/ydb/library/yql/providers/yt/gateway/native/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/gateway/native/CMakeLists.darwin-arm64.txt @@ -27,7 +27,7 @@ target_link_libraries(yt-gateway-native PUBLIC cpp-mapreduce-interface library-yql-ast yql-core-file_storage - minikql-comp_nodes-llvm + yql-minikql-comp_nodes library-yql-utils yql-utils-log yql-utils-threading diff --git a/ydb/library/yql/providers/yt/gateway/native/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/gateway/native/CMakeLists.darwin-x86_64.txt index f8b5242d5612..a6b920fbc757 100644 --- a/ydb/library/yql/providers/yt/gateway/native/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/gateway/native/CMakeLists.darwin-x86_64.txt @@ -27,7 +27,7 @@ target_link_libraries(yt-gateway-native PUBLIC cpp-mapreduce-interface library-yql-ast yql-core-file_storage - minikql-comp_nodes-llvm + yql-minikql-comp_nodes library-yql-utils yql-utils-log yql-utils-threading diff --git a/ydb/library/yql/providers/yt/gateway/native/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/gateway/native/CMakeLists.linux-aarch64.txt index 06abdf6b882f..8aa735476506 100644 --- a/ydb/library/yql/providers/yt/gateway/native/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/gateway/native/CMakeLists.linux-aarch64.txt @@ -28,7 +28,7 @@ target_link_libraries(yt-gateway-native PUBLIC cpp-mapreduce-interface library-yql-ast yql-core-file_storage - minikql-comp_nodes-llvm + yql-minikql-comp_nodes library-yql-utils yql-utils-log yql-utils-threading diff --git a/ydb/library/yql/providers/yt/gateway/native/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/gateway/native/CMakeLists.linux-x86_64.txt index 06abdf6b882f..8aa735476506 100644 --- a/ydb/library/yql/providers/yt/gateway/native/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/gateway/native/CMakeLists.linux-x86_64.txt @@ -28,7 +28,7 @@ target_link_libraries(yt-gateway-native PUBLIC cpp-mapreduce-interface library-yql-ast yql-core-file_storage - minikql-comp_nodes-llvm + yql-minikql-comp_nodes library-yql-utils yql-utils-log yql-utils-threading diff --git a/ydb/library/yql/providers/yt/gateway/native/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/gateway/native/CMakeLists.windows-x86_64.txt index f8b5242d5612..a6b920fbc757 100644 --- a/ydb/library/yql/providers/yt/gateway/native/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/gateway/native/CMakeLists.windows-x86_64.txt @@ -27,7 +27,7 @@ target_link_libraries(yt-gateway-native PUBLIC cpp-mapreduce-interface library-yql-ast yql-core-file_storage - minikql-comp_nodes-llvm + yql-minikql-comp_nodes library-yql-utils yql-utils-log yql-utils-threading diff --git a/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.darwin-arm64.txt index 3212f5b67fd8..e3cc8565b489 100644 --- a/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.darwin-arm64.txt @@ -17,18 +17,20 @@ target_link_libraries(ydb-library-yql-providers-yt-gateway-native-ut PUBLIC cpp-testing-unittest_main yt-gateway-native yt-gateway-file + yt-codec-codegen + yt-comp_nodes-llvm14 yql-core-ut_common cpp-testing-mock_server cpp-testing-common udf-service-terminate_policy yql-sql-pg + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 ) target_link_options(ydb-library-yql-providers-yt-gateway-native-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-yt-gateway-native-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/native/ut/yql_yt_native_folders_ut.cpp @@ -58,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.darwin-x86_64.txt index f82906144be5..de6ef5bd3caa 100644 --- a/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.darwin-x86_64.txt @@ -18,18 +18,20 @@ target_link_libraries(ydb-library-yql-providers-yt-gateway-native-ut PUBLIC cpp-testing-unittest_main yt-gateway-native yt-gateway-file + yt-codec-codegen + yt-comp_nodes-llvm14 yql-core-ut_common cpp-testing-mock_server cpp-testing-common udf-service-terminate_policy yql-sql-pg + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 ) target_link_options(ydb-library-yql-providers-yt-gateway-native-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-yt-gateway-native-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/native/ut/yql_yt_native_folders_ut.cpp @@ -59,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.linux-aarch64.txt index db240f6fe494..ebb2fa774530 100644 --- a/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.linux-aarch64.txt @@ -18,11 +18,15 @@ target_link_libraries(ydb-library-yql-providers-yt-gateway-native-ut PUBLIC cpp-testing-unittest_main yt-gateway-native yt-gateway-file + yt-codec-codegen + yt-comp_nodes-llvm14 yql-core-ut_common cpp-testing-mock_server cpp-testing-common udf-service-terminate_policy yql-sql-pg + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 ) target_link_options(ydb-library-yql-providers-yt-gateway-native-ut PRIVATE -ldl @@ -30,10 +34,6 @@ target_link_options(ydb-library-yql-providers-yt-gateway-native-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(ydb-library-yql-providers-yt-gateway-native-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/native/ut/yql_yt_native_folders_ut.cpp @@ -63,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.linux-x86_64.txt index 706267e53940..625ff5300e11 100644 --- a/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.linux-x86_64.txt @@ -19,11 +19,15 @@ target_link_libraries(ydb-library-yql-providers-yt-gateway-native-ut PUBLIC cpp-testing-unittest_main yt-gateway-native yt-gateway-file + yt-codec-codegen + yt-comp_nodes-llvm14 yql-core-ut_common cpp-testing-mock_server cpp-testing-common udf-service-terminate_policy yql-sql-pg + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 ) target_link_options(ydb-library-yql-providers-yt-gateway-native-ut PRIVATE -ldl @@ -31,10 +35,6 @@ target_link_options(ydb-library-yql-providers-yt-gateway-native-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(ydb-library-yql-providers-yt-gateway-native-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/native/ut/yql_yt_native_folders_ut.cpp @@ -64,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.windows-x86_64.txt index ca24288198f4..c6f91f0b23ea 100644 --- a/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/gateway/native/ut/CMakeLists.windows-x86_64.txt @@ -18,11 +18,15 @@ target_link_libraries(ydb-library-yql-providers-yt-gateway-native-ut PUBLIC cpp-testing-unittest_main yt-gateway-native yt-gateway-file + yt-codec-codegen + yt-comp_nodes-llvm14 yql-core-ut_common cpp-testing-mock_server cpp-testing-common udf-service-terminate_policy yql-sql-pg + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 ) target_sources(ydb-library-yql-providers-yt-gateway-native-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/gateway/native/ut/yql_yt_native_folders_ut.cpp @@ -52,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/job/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/job/CMakeLists.darwin-arm64.txt index d8fe463cb8a4..6ecc1f2c62d0 100644 --- a/ydb/library/yql/providers/yt/job/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/job/CMakeLists.darwin-arm64.txt @@ -20,7 +20,7 @@ target_link_libraries(providers-yt-job PUBLIC cpp-yson-node cpp-mapreduce-interface mapreduce-library-user_job_statistics - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-public-udf library-yql-utils yql-utils-backtrace @@ -37,6 +37,7 @@ target_link_libraries(providers-yt-job PUBLIC yt-lib-mkql_helpers ) target_sources(providers-yt-job PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_registry.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_base.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_calc.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_factory.cpp diff --git a/ydb/library/yql/providers/yt/job/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/job/CMakeLists.darwin-x86_64.txt index d8fe463cb8a4..6ecc1f2c62d0 100644 --- a/ydb/library/yql/providers/yt/job/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/job/CMakeLists.darwin-x86_64.txt @@ -20,7 +20,7 @@ target_link_libraries(providers-yt-job PUBLIC cpp-yson-node cpp-mapreduce-interface mapreduce-library-user_job_statistics - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-public-udf library-yql-utils yql-utils-backtrace @@ -37,6 +37,7 @@ target_link_libraries(providers-yt-job PUBLIC yt-lib-mkql_helpers ) target_sources(providers-yt-job PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_registry.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_base.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_calc.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_factory.cpp diff --git a/ydb/library/yql/providers/yt/job/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/job/CMakeLists.linux-aarch64.txt index 2b08e8872b6e..9a4d4d86fb1e 100644 --- a/ydb/library/yql/providers/yt/job/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/job/CMakeLists.linux-aarch64.txt @@ -21,7 +21,7 @@ target_link_libraries(providers-yt-job PUBLIC cpp-yson-node cpp-mapreduce-interface mapreduce-library-user_job_statistics - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-public-udf library-yql-utils yql-utils-backtrace @@ -38,6 +38,7 @@ target_link_libraries(providers-yt-job PUBLIC yt-lib-mkql_helpers ) target_sources(providers-yt-job PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_registry.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_base.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_calc.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_factory.cpp diff --git a/ydb/library/yql/providers/yt/job/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/job/CMakeLists.linux-x86_64.txt index 2b08e8872b6e..9a4d4d86fb1e 100644 --- a/ydb/library/yql/providers/yt/job/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/job/CMakeLists.linux-x86_64.txt @@ -21,7 +21,7 @@ target_link_libraries(providers-yt-job PUBLIC cpp-yson-node cpp-mapreduce-interface mapreduce-library-user_job_statistics - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-public-udf library-yql-utils yql-utils-backtrace @@ -38,6 +38,7 @@ target_link_libraries(providers-yt-job PUBLIC yt-lib-mkql_helpers ) target_sources(providers-yt-job PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_registry.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_base.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_calc.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_factory.cpp diff --git a/ydb/library/yql/providers/yt/job/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/job/CMakeLists.windows-x86_64.txt index d8fe463cb8a4..6ecc1f2c62d0 100644 --- a/ydb/library/yql/providers/yt/job/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/job/CMakeLists.windows-x86_64.txt @@ -20,7 +20,7 @@ target_link_libraries(providers-yt-job PUBLIC cpp-yson-node cpp-mapreduce-interface mapreduce-library-user_job_statistics - minikql-comp_nodes-llvm + yql-minikql-comp_nodes yql-public-udf library-yql-utils yql-utils-backtrace @@ -37,6 +37,7 @@ target_link_libraries(providers-yt-job PUBLIC yt-lib-mkql_helpers ) target_sources(providers-yt-job PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_registry.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_base.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_calc.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/job/yql_job_factory.cpp diff --git a/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.darwin-arm64.txt index 65bef0287b89..9255c145df54 100644 --- a/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.darwin-arm64.txt @@ -14,5 +14,6 @@ target_link_libraries(yt-lib-config_clusters PUBLIC providers-common-proto ) target_sources(yt-lib-config_clusters PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/config_clusters/config_clusters.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/config_clusters/config_clusters.cpp ) diff --git a/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.darwin-x86_64.txt index 65bef0287b89..9255c145df54 100644 --- a/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.darwin-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(yt-lib-config_clusters PUBLIC providers-common-proto ) target_sources(yt-lib-config_clusters PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/config_clusters/config_clusters.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/config_clusters/config_clusters.cpp ) diff --git a/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.linux-aarch64.txt index 5ea0218edbe0..3705fb96a3d5 100644 --- a/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.linux-aarch64.txt @@ -15,5 +15,6 @@ target_link_libraries(yt-lib-config_clusters PUBLIC providers-common-proto ) target_sources(yt-lib-config_clusters PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/config_clusters/config_clusters.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/config_clusters/config_clusters.cpp ) diff --git a/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.linux-x86_64.txt index 5ea0218edbe0..3705fb96a3d5 100644 --- a/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.linux-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(yt-lib-config_clusters PUBLIC providers-common-proto ) target_sources(yt-lib-config_clusters PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/config_clusters/config_clusters.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/config_clusters/config_clusters.cpp ) diff --git a/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.windows-x86_64.txt index 65bef0287b89..9255c145df54 100644 --- a/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/lib/config_clusters/CMakeLists.windows-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(yt-lib-config_clusters PUBLIC providers-common-proto ) target_sources(yt-lib-config_clusters PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/config_clusters/config_clusters.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/config_clusters/config_clusters.cpp ) diff --git a/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.darwin-arm64.txt index 043abfbe19ae..3eb100b1d142 100644 --- a/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.darwin-arm64.txt @@ -15,7 +15,7 @@ target_link_libraries(yt-lib-expr_traits PUBLIC contrib-libs-cxxsupp yutil library-yql-ast - minikql-computation-llvm + yql-minikql-computation yql-utils-log library-yql-core yql-core-expr_nodes diff --git a/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.darwin-x86_64.txt index 043abfbe19ae..3eb100b1d142 100644 --- a/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.darwin-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(yt-lib-expr_traits PUBLIC contrib-libs-cxxsupp yutil library-yql-ast - minikql-computation-llvm + yql-minikql-computation yql-utils-log library-yql-core yql-core-expr_nodes diff --git a/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.linux-aarch64.txt index 2f1f86b50efb..37eaaa620071 100644 --- a/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.linux-aarch64.txt @@ -16,7 +16,7 @@ target_link_libraries(yt-lib-expr_traits PUBLIC contrib-libs-cxxsupp yutil library-yql-ast - minikql-computation-llvm + yql-minikql-computation yql-utils-log library-yql-core yql-core-expr_nodes diff --git a/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.linux-x86_64.txt index 2f1f86b50efb..37eaaa620071 100644 --- a/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.linux-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(yt-lib-expr_traits PUBLIC contrib-libs-cxxsupp yutil library-yql-ast - minikql-computation-llvm + yql-minikql-computation yql-utils-log library-yql-core yql-core-expr_nodes diff --git a/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.windows-x86_64.txt index 043abfbe19ae..3eb100b1d142 100644 --- a/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/lib/expr_traits/CMakeLists.windows-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(yt-lib-expr_traits PUBLIC contrib-libs-cxxsupp yutil library-yql-ast - minikql-computation-llvm + yql-minikql-computation yql-utils-log library-yql-core yql-core-expr_nodes diff --git a/ydb/library/yql/providers/yt/lib/hash/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/hash/CMakeLists.darwin-arm64.txt index 83599316ec7a..6f86785c374c 100644 --- a/ydb/library/yql/providers/yt/lib/hash/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/lib/hash/CMakeLists.darwin-arm64.txt @@ -16,6 +16,7 @@ target_link_libraries(yt-lib-hash PUBLIC library-yql-utils yql-utils-log library-yql-core + yql-core-expr_nodes ) target_sources(yt-lib-hash PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/hash/yql_hash_builder.cpp diff --git a/ydb/library/yql/providers/yt/lib/hash/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/lib/hash/CMakeLists.darwin-x86_64.txt index 83599316ec7a..6f86785c374c 100644 --- a/ydb/library/yql/providers/yt/lib/hash/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/lib/hash/CMakeLists.darwin-x86_64.txt @@ -16,6 +16,7 @@ target_link_libraries(yt-lib-hash PUBLIC library-yql-utils yql-utils-log library-yql-core + yql-core-expr_nodes ) target_sources(yt-lib-hash PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/hash/yql_hash_builder.cpp diff --git a/ydb/library/yql/providers/yt/lib/hash/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/lib/hash/CMakeLists.linux-aarch64.txt index 99d1aa98ac18..2c8e7fe1afbe 100644 --- a/ydb/library/yql/providers/yt/lib/hash/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/lib/hash/CMakeLists.linux-aarch64.txt @@ -17,6 +17,7 @@ target_link_libraries(yt-lib-hash PUBLIC library-yql-utils yql-utils-log library-yql-core + yql-core-expr_nodes ) target_sources(yt-lib-hash PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/hash/yql_hash_builder.cpp diff --git a/ydb/library/yql/providers/yt/lib/hash/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/lib/hash/CMakeLists.linux-x86_64.txt index 99d1aa98ac18..2c8e7fe1afbe 100644 --- a/ydb/library/yql/providers/yt/lib/hash/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/lib/hash/CMakeLists.linux-x86_64.txt @@ -17,6 +17,7 @@ target_link_libraries(yt-lib-hash PUBLIC library-yql-utils yql-utils-log library-yql-core + yql-core-expr_nodes ) target_sources(yt-lib-hash PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/hash/yql_hash_builder.cpp diff --git a/ydb/library/yql/providers/yt/lib/hash/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/lib/hash/CMakeLists.windows-x86_64.txt index 83599316ec7a..6f86785c374c 100644 --- a/ydb/library/yql/providers/yt/lib/hash/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/lib/hash/CMakeLists.windows-x86_64.txt @@ -16,6 +16,7 @@ target_link_libraries(yt-lib-hash PUBLIC library-yql-utils yql-utils-log library-yql-core + yql-core-expr_nodes ) target_sources(yt-lib-hash PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/hash/yql_hash_builder.cpp diff --git a/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.darwin-arm64.txt index aaf3957c88ac..978eba334842 100644 --- a/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.darwin-arm64.txt @@ -17,7 +17,7 @@ target_link_libraries(yt-lib-lambda_builder PUBLIC library-cpp-random_provider library-cpp-time_provider library-yql-ast - minikql-computation-llvm + yql-minikql-computation yql-public-udf library-yql-utils providers-common-mkql diff --git a/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.darwin-x86_64.txt index aaf3957c88ac..978eba334842 100644 --- a/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.darwin-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(yt-lib-lambda_builder PUBLIC library-cpp-random_provider library-cpp-time_provider library-yql-ast - minikql-computation-llvm + yql-minikql-computation yql-public-udf library-yql-utils providers-common-mkql diff --git a/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.linux-aarch64.txt index d4bdc5f092b5..2214fcb2349d 100644 --- a/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.linux-aarch64.txt @@ -18,7 +18,7 @@ target_link_libraries(yt-lib-lambda_builder PUBLIC library-cpp-random_provider library-cpp-time_provider library-yql-ast - minikql-computation-llvm + yql-minikql-computation yql-public-udf library-yql-utils providers-common-mkql diff --git a/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.linux-x86_64.txt index d4bdc5f092b5..2214fcb2349d 100644 --- a/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.linux-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(yt-lib-lambda_builder PUBLIC library-cpp-random_provider library-cpp-time_provider library-yql-ast - minikql-computation-llvm + yql-minikql-computation yql-public-udf library-yql-utils providers-common-mkql diff --git a/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.windows-x86_64.txt index aaf3957c88ac..978eba334842 100644 --- a/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/lib/lambda_builder/CMakeLists.windows-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(yt-lib-lambda_builder PUBLIC library-cpp-random_provider library-cpp-time_provider library-yql-ast - minikql-computation-llvm + yql-minikql-computation yql-public-udf library-yql-utils providers-common-mkql diff --git a/ydb/library/yql/providers/yt/lib/log/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/lib/log/CMakeLists.darwin-arm64.txt index a9eff09932fc..c61a342045dc 100644 --- a/ydb/library/yql/providers/yt/lib/log/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/lib/log/CMakeLists.darwin-arm64.txt @@ -16,5 +16,6 @@ target_link_libraries(yt-lib-log PUBLIC yql-utils-log ) target_sources(yt-lib-log PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/log/yt_logger.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/log/yt_logger.cpp ) diff --git a/ydb/library/yql/providers/yt/lib/log/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/lib/log/CMakeLists.darwin-x86_64.txt index a9eff09932fc..c61a342045dc 100644 --- a/ydb/library/yql/providers/yt/lib/log/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/lib/log/CMakeLists.darwin-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(yt-lib-log PUBLIC yql-utils-log ) target_sources(yt-lib-log PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/log/yt_logger.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/log/yt_logger.cpp ) diff --git a/ydb/library/yql/providers/yt/lib/log/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/lib/log/CMakeLists.linux-aarch64.txt index 1e2645d272ed..3264f6fd429c 100644 --- a/ydb/library/yql/providers/yt/lib/log/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/lib/log/CMakeLists.linux-aarch64.txt @@ -17,5 +17,6 @@ target_link_libraries(yt-lib-log PUBLIC yql-utils-log ) target_sources(yt-lib-log PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/log/yt_logger.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/log/yt_logger.cpp ) diff --git a/ydb/library/yql/providers/yt/lib/log/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/lib/log/CMakeLists.linux-x86_64.txt index 1e2645d272ed..3264f6fd429c 100644 --- a/ydb/library/yql/providers/yt/lib/log/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/lib/log/CMakeLists.linux-x86_64.txt @@ -17,5 +17,6 @@ target_link_libraries(yt-lib-log PUBLIC yql-utils-log ) target_sources(yt-lib-log PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/log/yt_logger.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/log/yt_logger.cpp ) diff --git a/ydb/library/yql/providers/yt/lib/log/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/lib/log/CMakeLists.windows-x86_64.txt index a9eff09932fc..c61a342045dc 100644 --- a/ydb/library/yql/providers/yt/lib/log/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/lib/log/CMakeLists.windows-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(yt-lib-log PUBLIC yql-utils-log ) target_sources(yt-lib-log PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/log/yt_logger.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/lib/log/yt_logger.cpp ) diff --git a/ydb/library/yql/providers/yt/provider/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/provider/CMakeLists.darwin-arm64.txt index 0ccf8f945474..769d7bdc605e 100644 --- a/ydb/library/yql/providers/yt/provider/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/provider/CMakeLists.darwin-arm64.txt @@ -73,6 +73,8 @@ target_link_libraries(providers-yt-provider PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(providers-yt-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_provider_impl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_constraints.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_exec.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_finalize.cpp diff --git a/ydb/library/yql/providers/yt/provider/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/provider/CMakeLists.darwin-x86_64.txt index 0ccf8f945474..769d7bdc605e 100644 --- a/ydb/library/yql/providers/yt/provider/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/provider/CMakeLists.darwin-x86_64.txt @@ -73,6 +73,8 @@ target_link_libraries(providers-yt-provider PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(providers-yt-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_provider_impl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_constraints.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_exec.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_finalize.cpp diff --git a/ydb/library/yql/providers/yt/provider/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/provider/CMakeLists.linux-aarch64.txt index 1ddc770b112e..f8a494c5c7d5 100644 --- a/ydb/library/yql/providers/yt/provider/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/provider/CMakeLists.linux-aarch64.txt @@ -74,6 +74,8 @@ target_link_libraries(providers-yt-provider PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(providers-yt-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_provider_impl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_constraints.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_exec.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_finalize.cpp diff --git a/ydb/library/yql/providers/yt/provider/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/provider/CMakeLists.linux-x86_64.txt index 1ddc770b112e..f8a494c5c7d5 100644 --- a/ydb/library/yql/providers/yt/provider/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/provider/CMakeLists.linux-x86_64.txt @@ -74,6 +74,8 @@ target_link_libraries(providers-yt-provider PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(providers-yt-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_provider_impl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_constraints.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_exec.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_finalize.cpp diff --git a/ydb/library/yql/providers/yt/provider/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/provider/CMakeLists.windows-x86_64.txt index 0ccf8f945474..769d7bdc605e 100644 --- a/ydb/library/yql/providers/yt/provider/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/provider/CMakeLists.windows-x86_64.txt @@ -73,6 +73,8 @@ target_link_libraries(providers-yt-provider PUBLIC tools-enum_parser-enum_serialization_runtime ) target_sources(providers-yt-provider PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_provider.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_provider_impl.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_constraints.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_exec.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/yql_yt_datasink_finalize.cpp diff --git a/ydb/library/yql/providers/yt/provider/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/providers/yt/provider/ut/CMakeLists.darwin-arm64.txt index efcc86d4c365..11de8467a5e0 100644 --- a/ydb/library/yql/providers/yt/provider/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/providers/yt/provider/ut/CMakeLists.darwin-arm64.txt @@ -21,6 +21,8 @@ target_link_libraries(ydb-library-yql-providers-yt-provider-ut PUBLIC providers-yt-provider yt-lib-schema yt-gateway-file + yt-codec-codegen + yt-comp_nodes-llvm14 yql-core-ut_common library-yql-ast udf-service-terminate_policy @@ -34,15 +36,14 @@ target_link_libraries(ydb-library-yql-providers-yt-provider-ut PUBLIC providers-dq-provider providers-result-provider yql-sql-v1 - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 yql-sql-pg ) target_link_options(ydb-library-yql-providers-yt-provider-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-yt-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/ut/yql_yt_dq_integration_ut.cpp @@ -74,6 +75,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/provider/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/yt/provider/ut/CMakeLists.darwin-x86_64.txt index dfa077e6df60..d79caca22122 100644 --- a/ydb/library/yql/providers/yt/provider/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/yt/provider/ut/CMakeLists.darwin-x86_64.txt @@ -22,6 +22,8 @@ target_link_libraries(ydb-library-yql-providers-yt-provider-ut PUBLIC providers-yt-provider yt-lib-schema yt-gateway-file + yt-codec-codegen + yt-comp_nodes-llvm14 yql-core-ut_common library-yql-ast udf-service-terminate_policy @@ -35,15 +37,14 @@ target_link_libraries(ydb-library-yql-providers-yt-provider-ut PUBLIC providers-dq-provider providers-result-provider yql-sql-v1 - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 yql-sql-pg ) target_link_options(ydb-library-yql-providers-yt-provider-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-providers-yt-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/ut/yql_yt_dq_integration_ut.cpp @@ -75,6 +76,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/provider/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/yt/provider/ut/CMakeLists.linux-aarch64.txt index 1389d843ed45..6f8dccf160e7 100644 --- a/ydb/library/yql/providers/yt/provider/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/yt/provider/ut/CMakeLists.linux-aarch64.txt @@ -22,6 +22,8 @@ target_link_libraries(ydb-library-yql-providers-yt-provider-ut PUBLIC providers-yt-provider yt-lib-schema yt-gateway-file + yt-codec-codegen + yt-comp_nodes-llvm14 yql-core-ut_common library-yql-ast udf-service-terminate_policy @@ -35,7 +37,8 @@ target_link_libraries(ydb-library-yql-providers-yt-provider-ut PUBLIC providers-dq-provider providers-result-provider yql-sql-v1 - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 yql-sql-pg ) target_link_options(ydb-library-yql-providers-yt-provider-ut PRIVATE @@ -44,10 +47,6 @@ target_link_options(ydb-library-yql-providers-yt-provider-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(ydb-library-yql-providers-yt-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/ut/yql_yt_dq_integration_ut.cpp @@ -79,6 +78,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/provider/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/yt/provider/ut/CMakeLists.linux-x86_64.txt index 4f29f9c95769..f2c066cd6754 100644 --- a/ydb/library/yql/providers/yt/provider/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/yt/provider/ut/CMakeLists.linux-x86_64.txt @@ -23,6 +23,8 @@ target_link_libraries(ydb-library-yql-providers-yt-provider-ut PUBLIC providers-yt-provider yt-lib-schema yt-gateway-file + yt-codec-codegen + yt-comp_nodes-llvm14 yql-core-ut_common library-yql-ast udf-service-terminate_policy @@ -36,7 +38,8 @@ target_link_libraries(ydb-library-yql-providers-yt-provider-ut PUBLIC providers-dq-provider providers-result-provider yql-sql-v1 - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 yql-sql-pg ) target_link_options(ydb-library-yql-providers-yt-provider-ut PRIVATE @@ -45,10 +48,6 @@ target_link_options(ydb-library-yql-providers-yt-provider-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(ydb-library-yql-providers-yt-provider-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/yt/provider/ut/yql_yt_dq_integration_ut.cpp @@ -80,6 +79,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/providers/yt/provider/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/yt/provider/ut/CMakeLists.windows-x86_64.txt index 8bc613ff3e79..9efaed8aabe3 100644 --- a/ydb/library/yql/providers/yt/provider/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/yt/provider/ut/CMakeLists.windows-x86_64.txt @@ -22,6 +22,8 @@ target_link_libraries(ydb-library-yql-providers-yt-provider-ut PUBLIC providers-yt-provider yt-lib-schema yt-gateway-file + yt-codec-codegen + yt-comp_nodes-llvm14 yql-core-ut_common library-yql-ast udf-service-terminate_policy @@ -35,7 +37,8 @@ target_link_libraries(ydb-library-yql-providers-yt-provider-ut PUBLIC providers-dq-provider providers-result-provider yql-sql-v1 - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 yql-sql-pg ) target_sources(ydb-library-yql-providers-yt-provider-ut PRIVATE @@ -68,6 +71,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/decimal/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/decimal/CMakeLists.darwin-arm64.txt index f63cbd1d01df..ff8057cfdf7a 100644 --- a/ydb/library/yql/public/decimal/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/decimal/CMakeLists.darwin-arm64.txt @@ -14,6 +14,8 @@ target_link_libraries(yql-public-decimal PUBLIC yutil ) target_sources(yql-public-decimal PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal_serialize.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal_serialize.cpp ) diff --git a/ydb/library/yql/public/decimal/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/decimal/CMakeLists.darwin-x86_64.txt index f63cbd1d01df..ff8057cfdf7a 100644 --- a/ydb/library/yql/public/decimal/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/decimal/CMakeLists.darwin-x86_64.txt @@ -14,6 +14,8 @@ target_link_libraries(yql-public-decimal PUBLIC yutil ) target_sources(yql-public-decimal PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal_serialize.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal_serialize.cpp ) diff --git a/ydb/library/yql/public/decimal/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/decimal/CMakeLists.linux-aarch64.txt index 1d7ff6d8fb38..b5531667245f 100644 --- a/ydb/library/yql/public/decimal/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/decimal/CMakeLists.linux-aarch64.txt @@ -15,6 +15,8 @@ target_link_libraries(yql-public-decimal PUBLIC yutil ) target_sources(yql-public-decimal PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal_serialize.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal_serialize.cpp ) diff --git a/ydb/library/yql/public/decimal/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/decimal/CMakeLists.linux-x86_64.txt index 1d7ff6d8fb38..b5531667245f 100644 --- a/ydb/library/yql/public/decimal/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/decimal/CMakeLists.linux-x86_64.txt @@ -15,6 +15,8 @@ target_link_libraries(yql-public-decimal PUBLIC yutil ) target_sources(yql-public-decimal PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal_serialize.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal_serialize.cpp ) diff --git a/ydb/library/yql/public/decimal/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/decimal/CMakeLists.windows-x86_64.txt index f63cbd1d01df..ff8057cfdf7a 100644 --- a/ydb/library/yql/public/decimal/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/decimal/CMakeLists.windows-x86_64.txt @@ -14,6 +14,8 @@ target_link_libraries(yql-public-decimal PUBLIC yutil ) target_sources(yql-public-decimal PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal_serialize.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/yql_decimal_serialize.cpp ) diff --git a/ydb/library/yql/public/decimal/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/decimal/ut/CMakeLists.darwin-arm64.txt index 2a49ed970565..acb75b4a6073 100644 --- a/ydb/library/yql/public/decimal/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/decimal/ut/CMakeLists.darwin-arm64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/decimal/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/decimal/ut/CMakeLists.darwin-x86_64.txt index 4f60b7bba223..2cae57418ba8 100644 --- a/ydb/library/yql/public/decimal/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/decimal/ut/CMakeLists.darwin-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/decimal/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/decimal/ut/CMakeLists.linux-aarch64.txt index 2af52bbe6fed..facaba00504b 100644 --- a/ydb/library/yql/public/decimal/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/decimal/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-public-decimal-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-public-decimal-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/ut/yql_decimal_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/decimal/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/decimal/ut/CMakeLists.linux-x86_64.txt index 6d09d433fb74..b66eca4f27ce 100644 --- a/ydb/library/yql/public/decimal/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/decimal/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-public-decimal-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-public-decimal-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/decimal/ut/yql_decimal_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/decimal/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/decimal/ut/CMakeLists.windows-x86_64.txt index 81a8aab8c60b..d7bbc6d8d490 100644 --- a/ydb/library/yql/public/decimal/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/decimal/ut/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/embedded/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/embedded/CMakeLists.darwin-arm64.txt index 25dad8fc57b6..73faef2c98b1 100644 --- a/ydb/library/yql/public/embedded/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/embedded/CMakeLists.darwin-arm64.txt @@ -6,6 +6,8 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) +add_subdirectory(ut) add_library(yql-public-embedded) target_compile_options(yql-public-embedded PRIVATE @@ -30,6 +32,9 @@ target_link_libraries(yql-public-embedded PUBLIC core-services-mounts yql-core-user_data library-yql-minikql + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 + minikql-computation-llvm14 library-yql-protos udf-service-exception_policy yql-utils-backtrace @@ -44,7 +49,10 @@ target_link_libraries(yql-public-embedded PUBLIC yt-lib-yt_download yt-lib-yt_url_lister providers-yt-provider + yt-codec-codegen + yt-comp_nodes-llvm14 ) target_sources(yql-public-embedded PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.cpp ) diff --git a/ydb/library/yql/public/embedded/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/embedded/CMakeLists.darwin-x86_64.txt index 25dad8fc57b6..73faef2c98b1 100644 --- a/ydb/library/yql/public/embedded/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/embedded/CMakeLists.darwin-x86_64.txt @@ -6,6 +6,8 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) +add_subdirectory(ut) add_library(yql-public-embedded) target_compile_options(yql-public-embedded PRIVATE @@ -30,6 +32,9 @@ target_link_libraries(yql-public-embedded PUBLIC core-services-mounts yql-core-user_data library-yql-minikql + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 + minikql-computation-llvm14 library-yql-protos udf-service-exception_policy yql-utils-backtrace @@ -44,7 +49,10 @@ target_link_libraries(yql-public-embedded PUBLIC yt-lib-yt_download yt-lib-yt_url_lister providers-yt-provider + yt-codec-codegen + yt-comp_nodes-llvm14 ) target_sources(yql-public-embedded PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.cpp ) diff --git a/ydb/library/yql/public/embedded/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/embedded/CMakeLists.linux-aarch64.txt index 747f38d1a5c4..2b40db71629a 100644 --- a/ydb/library/yql/public/embedded/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/embedded/CMakeLists.linux-aarch64.txt @@ -6,6 +6,8 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) +add_subdirectory(ut) add_library(yql-public-embedded) target_compile_options(yql-public-embedded PRIVATE @@ -31,6 +33,9 @@ target_link_libraries(yql-public-embedded PUBLIC core-services-mounts yql-core-user_data library-yql-minikql + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 + minikql-computation-llvm14 library-yql-protos udf-service-exception_policy yql-utils-backtrace @@ -45,7 +50,10 @@ target_link_libraries(yql-public-embedded PUBLIC yt-lib-yt_download yt-lib-yt_url_lister providers-yt-provider + yt-codec-codegen + yt-comp_nodes-llvm14 ) target_sources(yql-public-embedded PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.cpp ) diff --git a/ydb/library/yql/public/embedded/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/embedded/CMakeLists.linux-x86_64.txt index 747f38d1a5c4..2b40db71629a 100644 --- a/ydb/library/yql/public/embedded/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/embedded/CMakeLists.linux-x86_64.txt @@ -6,6 +6,8 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) +add_subdirectory(ut) add_library(yql-public-embedded) target_compile_options(yql-public-embedded PRIVATE @@ -31,6 +33,9 @@ target_link_libraries(yql-public-embedded PUBLIC core-services-mounts yql-core-user_data library-yql-minikql + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 + minikql-computation-llvm14 library-yql-protos udf-service-exception_policy yql-utils-backtrace @@ -45,7 +50,10 @@ target_link_libraries(yql-public-embedded PUBLIC yt-lib-yt_download yt-lib-yt_url_lister providers-yt-provider + yt-codec-codegen + yt-comp_nodes-llvm14 ) target_sources(yql-public-embedded PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.cpp ) diff --git a/ydb/library/yql/public/embedded/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/embedded/CMakeLists.windows-x86_64.txt index 25dad8fc57b6..73faef2c98b1 100644 --- a/ydb/library/yql/public/embedded/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/embedded/CMakeLists.windows-x86_64.txt @@ -6,6 +6,8 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) +add_subdirectory(ut) add_library(yql-public-embedded) target_compile_options(yql-public-embedded PRIVATE @@ -30,6 +32,9 @@ target_link_libraries(yql-public-embedded PUBLIC core-services-mounts yql-core-user_data library-yql-minikql + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 + minikql-computation-llvm14 library-yql-protos udf-service-exception_policy yql-utils-backtrace @@ -44,7 +49,10 @@ target_link_libraries(yql-public-embedded PUBLIC yt-lib-yt_download yt-lib-yt_url_lister providers-yt-provider + yt-codec-codegen + yt-comp_nodes-llvm14 ) target_sources(yql-public-embedded PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.cpp ) diff --git a/ydb/library/yql/public/embedded/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/embedded/no_llvm/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..a588e014802a --- /dev/null +++ b/ydb/library/yql/public/embedded/no_llvm/CMakeLists.darwin-arm64.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_library(public-embedded-no_llvm) +target_compile_options(public-embedded-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(public-embedded-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded +) +target_link_libraries(public-embedded-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf + library-cpp-resource + library-cpp-yson + cpp-yson-node + cpp-mapreduce-client + cpp-mapreduce-common + library-yql-ast + yql-sql-pg + yql-core-facade + yql-core-file_storage + core-file_storage-defs + core-file_storage-proto + core-file_storage-http_download + core-services-mounts + yql-core-user_data + library-yql-minikql + minikql-invoke_builtins-no_llvm + minikql-comp_nodes-no_llvm + minikql-computation-no_llvm + minikql-codegen-no_llvm + library-yql-protos + udf-service-exception_policy + yql-utils-backtrace + yql-utils-log + yql-parser-pg_wrapper + providers-common-proto + providers-common-udf_resolve + yql-core-url_preprocessing + yql-core-url_lister + yt-gateway-native + yt-lib-log + yt-lib-yt_download + yt-lib-yt_url_lister + providers-yt-provider + codec-codegen-no_llvm + yt-comp_nodes-no_llvm +) +target_sources(public-embedded-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.cpp +) diff --git a/ydb/library/yql/public/embedded/no_llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/embedded/no_llvm/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..a588e014802a --- /dev/null +++ b/ydb/library/yql/public/embedded/no_llvm/CMakeLists.darwin-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_library(public-embedded-no_llvm) +target_compile_options(public-embedded-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(public-embedded-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded +) +target_link_libraries(public-embedded-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf + library-cpp-resource + library-cpp-yson + cpp-yson-node + cpp-mapreduce-client + cpp-mapreduce-common + library-yql-ast + yql-sql-pg + yql-core-facade + yql-core-file_storage + core-file_storage-defs + core-file_storage-proto + core-file_storage-http_download + core-services-mounts + yql-core-user_data + library-yql-minikql + minikql-invoke_builtins-no_llvm + minikql-comp_nodes-no_llvm + minikql-computation-no_llvm + minikql-codegen-no_llvm + library-yql-protos + udf-service-exception_policy + yql-utils-backtrace + yql-utils-log + yql-parser-pg_wrapper + providers-common-proto + providers-common-udf_resolve + yql-core-url_preprocessing + yql-core-url_lister + yt-gateway-native + yt-lib-log + yt-lib-yt_download + yt-lib-yt_url_lister + providers-yt-provider + codec-codegen-no_llvm + yt-comp_nodes-no_llvm +) +target_sources(public-embedded-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.cpp +) diff --git a/ydb/library/yql/public/embedded/no_llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/embedded/no_llvm/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..61572a6a4f76 --- /dev/null +++ b/ydb/library/yql/public/embedded/no_llvm/CMakeLists.linux-aarch64.txt @@ -0,0 +1,60 @@ + +# 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-embedded-no_llvm) +target_compile_options(public-embedded-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(public-embedded-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded +) +target_link_libraries(public-embedded-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf + library-cpp-resource + library-cpp-yson + cpp-yson-node + cpp-mapreduce-client + cpp-mapreduce-common + library-yql-ast + yql-sql-pg + yql-core-facade + yql-core-file_storage + core-file_storage-defs + core-file_storage-proto + core-file_storage-http_download + core-services-mounts + yql-core-user_data + library-yql-minikql + minikql-invoke_builtins-no_llvm + minikql-comp_nodes-no_llvm + minikql-computation-no_llvm + minikql-codegen-no_llvm + library-yql-protos + udf-service-exception_policy + yql-utils-backtrace + yql-utils-log + yql-parser-pg_wrapper + providers-common-proto + providers-common-udf_resolve + yql-core-url_preprocessing + yql-core-url_lister + yt-gateway-native + yt-lib-log + yt-lib-yt_download + yt-lib-yt_url_lister + providers-yt-provider + codec-codegen-no_llvm + yt-comp_nodes-no_llvm +) +target_sources(public-embedded-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.cpp +) diff --git a/ydb/library/yql/public/embedded/no_llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/embedded/no_llvm/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..61572a6a4f76 --- /dev/null +++ b/ydb/library/yql/public/embedded/no_llvm/CMakeLists.linux-x86_64.txt @@ -0,0 +1,60 @@ + +# 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-embedded-no_llvm) +target_compile_options(public-embedded-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(public-embedded-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded +) +target_link_libraries(public-embedded-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf + library-cpp-resource + library-cpp-yson + cpp-yson-node + cpp-mapreduce-client + cpp-mapreduce-common + library-yql-ast + yql-sql-pg + yql-core-facade + yql-core-file_storage + core-file_storage-defs + core-file_storage-proto + core-file_storage-http_download + core-services-mounts + yql-core-user_data + library-yql-minikql + minikql-invoke_builtins-no_llvm + minikql-comp_nodes-no_llvm + minikql-computation-no_llvm + minikql-codegen-no_llvm + library-yql-protos + udf-service-exception_policy + yql-utils-backtrace + yql-utils-log + yql-parser-pg_wrapper + providers-common-proto + providers-common-udf_resolve + yql-core-url_preprocessing + yql-core-url_lister + yt-gateway-native + yt-lib-log + yt-lib-yt_download + yt-lib-yt_url_lister + providers-yt-provider + codec-codegen-no_llvm + yt-comp_nodes-no_llvm +) +target_sources(public-embedded-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.cpp +) diff --git a/ydb/library/yql/public/embedded/no_llvm/CMakeLists.txt b/ydb/library/yql/public/embedded/no_llvm/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/public/embedded/no_llvm/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/public/embedded/no_llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/embedded/no_llvm/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..a588e014802a --- /dev/null +++ b/ydb/library/yql/public/embedded/no_llvm/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_library(public-embedded-no_llvm) +target_compile_options(public-embedded-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(public-embedded-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded +) +target_link_libraries(public-embedded-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf + library-cpp-resource + library-cpp-yson + cpp-yson-node + cpp-mapreduce-client + cpp-mapreduce-common + library-yql-ast + yql-sql-pg + yql-core-facade + yql-core-file_storage + core-file_storage-defs + core-file_storage-proto + core-file_storage-http_download + core-services-mounts + yql-core-user_data + library-yql-minikql + minikql-invoke_builtins-no_llvm + minikql-comp_nodes-no_llvm + minikql-computation-no_llvm + minikql-codegen-no_llvm + library-yql-protos + udf-service-exception_policy + yql-utils-backtrace + yql-utils-log + yql-parser-pg_wrapper + providers-common-proto + providers-common-udf_resolve + yql-core-url_preprocessing + yql-core-url_lister + yt-gateway-native + yt-lib-log + yt-lib-yt_download + yt-lib-yt_url_lister + providers-yt-provider + codec-codegen-no_llvm + yt-comp_nodes-no_llvm +) +target_sources(public-embedded-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/yql_embedded.cpp +) diff --git a/ydb/library/yql/public/embedded/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/embedded/ut/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..962369957337 --- /dev/null +++ b/ydb/library/yql/public/embedded/ut/CMakeLists.darwin-arm64.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_subdirectory(no_llvm) + +add_executable(ydb-library-yql-public-embedded-ut) +target_compile_options(ydb-library-yql-public-embedded-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-public-embedded-ut PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + udf-service-exception_policy + yql-public-embedded +) +target_link_options(ydb-library-yql-public-embedded-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-public-embedded-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/ut/yql_embedded_ut.cpp +) +set_property( + TARGET + ydb-library-yql-public-embedded-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-public-embedded-ut + TEST_TARGET + ydb-library-yql-public-embedded-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut + PROPERTY + TIMEOUT + 300 +) +target_allocator(ydb-library-yql-public-embedded-ut + system_allocator +) +vcs_info(ydb-library-yql-public-embedded-ut) diff --git a/ydb/library/yql/public/embedded/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/embedded/ut/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..bd9e8d9b9bc0 --- /dev/null +++ b/ydb/library/yql/public/embedded/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_subdirectory(no_llvm) + +add_executable(ydb-library-yql-public-embedded-ut) +target_compile_options(ydb-library-yql-public-embedded-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-public-embedded-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + udf-service-exception_policy + yql-public-embedded +) +target_link_options(ydb-library-yql-public-embedded-ut PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-public-embedded-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/ut/yql_embedded_ut.cpp +) +set_property( + TARGET + ydb-library-yql-public-embedded-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-public-embedded-ut + TEST_TARGET + ydb-library-yql-public-embedded-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut + PROPERTY + TIMEOUT + 300 +) +target_allocator(ydb-library-yql-public-embedded-ut + system_allocator +) +vcs_info(ydb-library-yql-public-embedded-ut) diff --git a/ydb/library/yql/public/embedded/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/embedded/ut/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..043641458439 --- /dev/null +++ b/ydb/library/yql/public/embedded/ut/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_subdirectory(no_llvm) + +add_executable(ydb-library-yql-public-embedded-ut) +target_compile_options(ydb-library-yql-public-embedded-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-public-embedded-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + udf-service-exception_policy + yql-public-embedded +) +target_link_options(ydb-library-yql-public-embedded-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-public-embedded-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/ut/yql_embedded_ut.cpp +) +set_property( + TARGET + ydb-library-yql-public-embedded-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-public-embedded-ut + TEST_TARGET + ydb-library-yql-public-embedded-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut + PROPERTY + TIMEOUT + 300 +) +target_allocator(ydb-library-yql-public-embedded-ut + cpp-malloc-jemalloc +) +vcs_info(ydb-library-yql-public-embedded-ut) diff --git a/ydb/library/yql/public/embedded/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/embedded/ut/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..4bb97b8abbd7 --- /dev/null +++ b/ydb/library/yql/public/embedded/ut/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_subdirectory(no_llvm) + +add_executable(ydb-library-yql-public-embedded-ut) +target_compile_options(ydb-library-yql-public-embedded-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-public-embedded-ut PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + udf-service-exception_policy + yql-public-embedded +) +target_link_options(ydb-library-yql-public-embedded-ut PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-public-embedded-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/ut/yql_embedded_ut.cpp +) +set_property( + TARGET + ydb-library-yql-public-embedded-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-public-embedded-ut + TEST_TARGET + ydb-library-yql-public-embedded-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut + PROPERTY + TIMEOUT + 300 +) +target_allocator(ydb-library-yql-public-embedded-ut + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-library-yql-public-embedded-ut) diff --git a/ydb/library/yql/public/embedded/ut/CMakeLists.txt b/ydb/library/yql/public/embedded/ut/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/public/embedded/ut/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/public/embedded/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/embedded/ut/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..2314c4832941 --- /dev/null +++ b/ydb/library/yql/public/embedded/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_subdirectory(no_llvm) + +add_executable(ydb-library-yql-public-embedded-ut) +target_compile_options(ydb-library-yql-public-embedded-ut PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-public-embedded-ut PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + udf-service-exception_policy + yql-public-embedded +) +target_sources(ydb-library-yql-public-embedded-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/ut/yql_embedded_ut.cpp +) +set_property( + TARGET + ydb-library-yql-public-embedded-ut + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-public-embedded-ut + TEST_TARGET + ydb-library-yql-public-embedded-ut + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut + PROPERTY + TIMEOUT + 300 +) +target_allocator(ydb-library-yql-public-embedded-ut + system_allocator +) +vcs_info(ydb-library-yql-public-embedded-ut) diff --git a/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..294f5a602027 --- /dev/null +++ b/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.darwin-arm64.txt @@ -0,0 +1,73 @@ + +# 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-yql-public-embedded-ut-no_llvm) +target_compile_options(ydb-library-yql-public-embedded-ut-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-public-embedded-ut-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + udf-service-exception_policy + public-embedded-no_llvm +) +target_link_options(ydb-library-yql-public-embedded-ut-no_llvm PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-public-embedded-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/ut/yql_embedded_ut.cpp +) +set_property( + TARGET + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-public-embedded-ut-no_llvm + TEST_TARGET + ydb-library-yql-public-embedded-ut-no_llvm + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + TIMEOUT + 300 +) +target_allocator(ydb-library-yql-public-embedded-ut-no_llvm + system_allocator +) +vcs_info(ydb-library-yql-public-embedded-ut-no_llvm) diff --git a/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..f319e29ed64e --- /dev/null +++ b/ydb/library/yql/public/embedded/ut/no_llvm/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-library-yql-public-embedded-ut-no_llvm) +target_compile_options(ydb-library-yql-public-embedded-ut-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-public-embedded-ut-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + udf-service-exception_policy + public-embedded-no_llvm +) +target_link_options(ydb-library-yql-public-embedded-ut-no_llvm PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(ydb-library-yql-public-embedded-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/ut/yql_embedded_ut.cpp +) +set_property( + TARGET + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-public-embedded-ut-no_llvm + TEST_TARGET + ydb-library-yql-public-embedded-ut-no_llvm + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + TIMEOUT + 300 +) +target_allocator(ydb-library-yql-public-embedded-ut-no_llvm + system_allocator +) +vcs_info(ydb-library-yql-public-embedded-ut-no_llvm) diff --git a/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..cf51eb733de2 --- /dev/null +++ b/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.linux-aarch64.txt @@ -0,0 +1,76 @@ + +# 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-yql-public-embedded-ut-no_llvm) +target_compile_options(ydb-library-yql-public-embedded-ut-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-public-embedded-ut-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + udf-service-exception_policy + public-embedded-no_llvm +) +target_link_options(ydb-library-yql-public-embedded-ut-no_llvm PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-public-embedded-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/ut/yql_embedded_ut.cpp +) +set_property( + TARGET + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-public-embedded-ut-no_llvm + TEST_TARGET + ydb-library-yql-public-embedded-ut-no_llvm + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + TIMEOUT + 300 +) +target_allocator(ydb-library-yql-public-embedded-ut-no_llvm + cpp-malloc-jemalloc +) +vcs_info(ydb-library-yql-public-embedded-ut-no_llvm) diff --git a/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..7bd72af87f69 --- /dev/null +++ b/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.linux-x86_64.txt @@ -0,0 +1,78 @@ + +# 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-yql-public-embedded-ut-no_llvm) +target_compile_options(ydb-library-yql-public-embedded-ut-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-public-embedded-ut-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + udf-service-exception_policy + public-embedded-no_llvm +) +target_link_options(ydb-library-yql-public-embedded-ut-no_llvm PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(ydb-library-yql-public-embedded-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/ut/yql_embedded_ut.cpp +) +set_property( + TARGET + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-public-embedded-ut-no_llvm + TEST_TARGET + ydb-library-yql-public-embedded-ut-no_llvm + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + TIMEOUT + 300 +) +target_allocator(ydb-library-yql-public-embedded-ut-no_llvm + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(ydb-library-yql-public-embedded-ut-no_llvm) diff --git a/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.txt b/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..a180a94fb705 --- /dev/null +++ b/ydb/library/yql/public/embedded/ut/no_llvm/CMakeLists.windows-x86_64.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-library-yql-public-embedded-ut-no_llvm) +target_compile_options(ydb-library-yql-public-embedded-ut-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(ydb-library-yql-public-embedded-ut-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + udf-service-exception_policy + public-embedded-no_llvm +) +target_sources(ydb-library-yql-public-embedded-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/embedded/ut/yql_embedded_ut.cpp +) +set_property( + TARGET + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + ydb-library-yql-public-embedded-ut-no_llvm + TEST_TARGET + ydb-library-yql-public-embedded-ut-no_llvm + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + ydb-library-yql-public-embedded-ut-no_llvm + PROPERTY + TIMEOUT + 300 +) +target_allocator(ydb-library-yql-public-embedded-ut-no_llvm + system_allocator +) +vcs_info(ydb-library-yql-public-embedded-ut-no_llvm) diff --git a/ydb/library/yql/public/fastcheck/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/fastcheck/ut/CMakeLists.darwin-arm64.txt index 54d5d97733a8..3c218247b21d 100644 --- a/ydb/library/yql/public/fastcheck/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/fastcheck/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-library-yql-public-fastcheck-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-public-fastcheck-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/fastcheck/fastcheck_ut.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/fastcheck/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/fastcheck/ut/CMakeLists.darwin-x86_64.txt index ff1721ab9b7b..7787887ca07e 100644 --- a/ydb/library/yql/public/fastcheck/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/fastcheck/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-yql-public-fastcheck-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-public-fastcheck-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/fastcheck/fastcheck_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/fastcheck/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/fastcheck/ut/CMakeLists.linux-aarch64.txt index 9b4ba9f94da3..dee5a36eb666 100644 --- a/ydb/library/yql/public/fastcheck/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/fastcheck/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-public-fastcheck-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-public-fastcheck-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/fastcheck/fastcheck_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/fastcheck/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/fastcheck/ut/CMakeLists.linux-x86_64.txt index 6f6db82494f1..4ca26479e986 100644 --- a/ydb/library/yql/public/fastcheck/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/fastcheck/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-public-fastcheck-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-public-fastcheck-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/fastcheck/fastcheck_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/fastcheck/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/fastcheck/ut/CMakeLists.windows-x86_64.txt index 57cad616bcd1..a2042a05af7f 100644 --- a/ydb/library/yql/public/fastcheck/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/fastcheck/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/issue/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/issue/protos/CMakeLists.darwin-arm64.txt index bacc602d9892..9cb748edaf46 100644 --- a/ydb/library/yql/public/issue/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/issue/protos/CMakeLists.darwin-arm64.txt @@ -41,6 +41,10 @@ target_proto_messages(public-issue-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/protos/issue_message.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/protos/issue_severity.proto ) +target_sources(public-issue-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/issue/protos/issue_message.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/issue/protos/issue_severity.pb.h +) target_proto_addincls(public-issue-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/public/issue/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/issue/protos/CMakeLists.darwin-x86_64.txt index bacc602d9892..9cb748edaf46 100644 --- a/ydb/library/yql/public/issue/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/issue/protos/CMakeLists.darwin-x86_64.txt @@ -41,6 +41,10 @@ target_proto_messages(public-issue-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/protos/issue_message.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/protos/issue_severity.proto ) +target_sources(public-issue-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/issue/protos/issue_message.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/issue/protos/issue_severity.pb.h +) target_proto_addincls(public-issue-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/public/issue/protos/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/issue/protos/CMakeLists.linux-aarch64.txt index d56790b5b095..1e643b139b79 100644 --- a/ydb/library/yql/public/issue/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/issue/protos/CMakeLists.linux-aarch64.txt @@ -42,6 +42,10 @@ target_proto_messages(public-issue-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/protos/issue_message.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/protos/issue_severity.proto ) +target_sources(public-issue-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/issue/protos/issue_message.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/issue/protos/issue_severity.pb.h +) target_proto_addincls(public-issue-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/public/issue/protos/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/issue/protos/CMakeLists.linux-x86_64.txt index d56790b5b095..1e643b139b79 100644 --- a/ydb/library/yql/public/issue/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/issue/protos/CMakeLists.linux-x86_64.txt @@ -42,6 +42,10 @@ target_proto_messages(public-issue-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/protos/issue_message.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/protos/issue_severity.proto ) +target_sources(public-issue-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/issue/protos/issue_message.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/issue/protos/issue_severity.pb.h +) target_proto_addincls(public-issue-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/public/issue/protos/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/issue/protos/CMakeLists.windows-x86_64.txt index bacc602d9892..9cb748edaf46 100644 --- a/ydb/library/yql/public/issue/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/issue/protos/CMakeLists.windows-x86_64.txt @@ -41,6 +41,10 @@ target_proto_messages(public-issue-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/protos/issue_message.proto ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/protos/issue_severity.proto ) +target_sources(public-issue-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/issue/protos/issue_message.pb.h + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/issue/protos/issue_severity.pb.h +) target_proto_addincls(public-issue-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/public/issue/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/issue/ut/CMakeLists.darwin-arm64.txt index 2553a2e1ba3c..2f537906dd05 100644 --- a/ydb/library/yql/public/issue/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/issue/ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-yql-public-issue-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-public-issue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/yql_issue_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/issue/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/issue/ut/CMakeLists.darwin-x86_64.txt index f06b86e548a1..18d77c7b85e0 100644 --- a/ydb/library/yql/public/issue/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/issue/ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-library-yql-public-issue-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-public-issue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/yql_issue_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/issue/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/issue/ut/CMakeLists.linux-aarch64.txt index 2b4f7d747b3c..54dcb933522b 100644 --- a/ydb/library/yql/public/issue/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/issue/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-public-issue-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-public-issue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/yql_issue_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/issue/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/issue/ut/CMakeLists.linux-x86_64.txt index 55e9451c4d58..ee317eae7b9d 100644 --- a/ydb/library/yql/public/issue/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/issue/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-library-yql-public-issue-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-public-issue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/issue/yql_issue_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/issue/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/issue/ut/CMakeLists.windows-x86_64.txt index 1b8f13a0c28c..66676e387559 100644 --- a/ydb/library/yql/public/issue/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/issue/ut/CMakeLists.windows-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/CMakeLists.darwin-arm64.txt index a417180394bc..007142b25213 100644 --- a/ydb/library/yql/public/purecalc/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/purecalc/CMakeLists.darwin-arm64.txt @@ -10,6 +10,7 @@ add_subdirectory(common) add_subdirectory(examples) add_subdirectory(helpers) add_subdirectory(io_specs) +add_subdirectory(no_llvm) add_subdirectory(ut) add_library(yql-public-purecalc) diff --git a/ydb/library/yql/public/purecalc/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/CMakeLists.darwin-x86_64.txt index a417180394bc..007142b25213 100644 --- a/ydb/library/yql/public/purecalc/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/purecalc/CMakeLists.darwin-x86_64.txt @@ -10,6 +10,7 @@ add_subdirectory(common) add_subdirectory(examples) add_subdirectory(helpers) add_subdirectory(io_specs) +add_subdirectory(no_llvm) add_subdirectory(ut) add_library(yql-public-purecalc) diff --git a/ydb/library/yql/public/purecalc/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/CMakeLists.linux-aarch64.txt index 7d72508c1ff3..11cc4f503497 100644 --- a/ydb/library/yql/public/purecalc/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/purecalc/CMakeLists.linux-aarch64.txt @@ -10,6 +10,7 @@ add_subdirectory(common) add_subdirectory(examples) add_subdirectory(helpers) add_subdirectory(io_specs) +add_subdirectory(no_llvm) add_subdirectory(ut) add_library(yql-public-purecalc) diff --git a/ydb/library/yql/public/purecalc/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/CMakeLists.linux-x86_64.txt index 7d72508c1ff3..11cc4f503497 100644 --- a/ydb/library/yql/public/purecalc/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/purecalc/CMakeLists.linux-x86_64.txt @@ -10,6 +10,7 @@ add_subdirectory(common) add_subdirectory(examples) add_subdirectory(helpers) add_subdirectory(io_specs) +add_subdirectory(no_llvm) add_subdirectory(ut) add_library(yql-public-purecalc) diff --git a/ydb/library/yql/public/purecalc/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/purecalc/CMakeLists.windows-x86_64.txt index a417180394bc..007142b25213 100644 --- a/ydb/library/yql/public/purecalc/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/purecalc/CMakeLists.windows-x86_64.txt @@ -10,6 +10,7 @@ add_subdirectory(common) add_subdirectory(examples) add_subdirectory(helpers) add_subdirectory(io_specs) +add_subdirectory(no_llvm) add_subdirectory(ut) add_library(yql-public-purecalc) diff --git a/ydb/library/yql/public/purecalc/common/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/common/CMakeLists.darwin-arm64.txt index 301054c4de73..245865857353 100644 --- a/ydb/library/yql/public/purecalc/common/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/purecalc/common/CMakeLists.darwin-arm64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) get_built_tool_path( TOOL_enum_parser_bin TOOL_enum_parser_dependency @@ -17,6 +18,9 @@ add_library(public-purecalc-common) target_compile_options(public-purecalc-common PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) +target_include_directories(public-purecalc-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common +) target_link_libraries(public-purecalc-common PUBLIC contrib-libs-cxxsupp yutil @@ -25,7 +29,6 @@ target_link_libraries(public-purecalc-common PUBLIC yql-core-services core-services-mounts yql-core-user_data - minikql-comp_nodes-llvm yql-utils-backtrace yql-utils-log library-yql-core @@ -38,6 +41,10 @@ target_link_libraries(public-purecalc-common PUBLIC common-schema-expr providers-common-udf_resolve tools-enum_parser-enum_serialization_runtime + yt-codec-codegen + minikql-computation-llvm14 + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 ) target_sources(public-purecalc-common PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/compile_mkql.cpp diff --git a/ydb/library/yql/public/purecalc/common/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/common/CMakeLists.darwin-x86_64.txt index 301054c4de73..245865857353 100644 --- a/ydb/library/yql/public/purecalc/common/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/purecalc/common/CMakeLists.darwin-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) get_built_tool_path( TOOL_enum_parser_bin TOOL_enum_parser_dependency @@ -17,6 +18,9 @@ add_library(public-purecalc-common) target_compile_options(public-purecalc-common PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) +target_include_directories(public-purecalc-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common +) target_link_libraries(public-purecalc-common PUBLIC contrib-libs-cxxsupp yutil @@ -25,7 +29,6 @@ target_link_libraries(public-purecalc-common PUBLIC yql-core-services core-services-mounts yql-core-user_data - minikql-comp_nodes-llvm yql-utils-backtrace yql-utils-log library-yql-core @@ -38,6 +41,10 @@ target_link_libraries(public-purecalc-common PUBLIC common-schema-expr providers-common-udf_resolve tools-enum_parser-enum_serialization_runtime + yt-codec-codegen + minikql-computation-llvm14 + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 ) target_sources(public-purecalc-common PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/compile_mkql.cpp diff --git a/ydb/library/yql/public/purecalc/common/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/common/CMakeLists.linux-aarch64.txt index b6d800550b56..5266f760475d 100644 --- a/ydb/library/yql/public/purecalc/common/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/purecalc/common/CMakeLists.linux-aarch64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) get_built_tool_path( TOOL_enum_parser_bin TOOL_enum_parser_dependency @@ -17,6 +18,9 @@ add_library(public-purecalc-common) target_compile_options(public-purecalc-common PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) +target_include_directories(public-purecalc-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common +) target_link_libraries(public-purecalc-common PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp @@ -26,7 +30,6 @@ target_link_libraries(public-purecalc-common PUBLIC yql-core-services core-services-mounts yql-core-user_data - minikql-comp_nodes-llvm yql-utils-backtrace yql-utils-log library-yql-core @@ -39,6 +42,10 @@ target_link_libraries(public-purecalc-common PUBLIC common-schema-expr providers-common-udf_resolve tools-enum_parser-enum_serialization_runtime + yt-codec-codegen + minikql-computation-llvm14 + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 ) target_sources(public-purecalc-common PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/compile_mkql.cpp diff --git a/ydb/library/yql/public/purecalc/common/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/common/CMakeLists.linux-x86_64.txt index b6d800550b56..5266f760475d 100644 --- a/ydb/library/yql/public/purecalc/common/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/purecalc/common/CMakeLists.linux-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) get_built_tool_path( TOOL_enum_parser_bin TOOL_enum_parser_dependency @@ -17,6 +18,9 @@ add_library(public-purecalc-common) target_compile_options(public-purecalc-common PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) +target_include_directories(public-purecalc-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common +) target_link_libraries(public-purecalc-common PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp @@ -26,7 +30,6 @@ target_link_libraries(public-purecalc-common PUBLIC yql-core-services core-services-mounts yql-core-user_data - minikql-comp_nodes-llvm yql-utils-backtrace yql-utils-log library-yql-core @@ -39,6 +42,10 @@ target_link_libraries(public-purecalc-common PUBLIC common-schema-expr providers-common-udf_resolve tools-enum_parser-enum_serialization_runtime + yt-codec-codegen + minikql-computation-llvm14 + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 ) target_sources(public-purecalc-common PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/compile_mkql.cpp diff --git a/ydb/library/yql/public/purecalc/common/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/purecalc/common/CMakeLists.windows-x86_64.txt index 301054c4de73..245865857353 100644 --- a/ydb/library/yql/public/purecalc/common/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/purecalc/common/CMakeLists.windows-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) get_built_tool_path( TOOL_enum_parser_bin TOOL_enum_parser_dependency @@ -17,6 +18,9 @@ add_library(public-purecalc-common) target_compile_options(public-purecalc-common PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) +target_include_directories(public-purecalc-common PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common +) target_link_libraries(public-purecalc-common PUBLIC contrib-libs-cxxsupp yutil @@ -25,7 +29,6 @@ target_link_libraries(public-purecalc-common PUBLIC yql-core-services core-services-mounts yql-core-user_data - minikql-comp_nodes-llvm yql-utils-backtrace yql-utils-log library-yql-core @@ -38,6 +41,10 @@ target_link_libraries(public-purecalc-common PUBLIC common-schema-expr providers-common-udf_resolve tools-enum_parser-enum_serialization_runtime + yt-codec-codegen + minikql-computation-llvm14 + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 ) target_sources(public-purecalc-common PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/compile_mkql.cpp diff --git a/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..f7379bc8ff3d --- /dev/null +++ b/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.darwin-arm64.txt @@ -0,0 +1,72 @@ + +# 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(purecalc-common-no_llvm) +target_compile_options(purecalc-common-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(purecalc-common-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common +) +target_link_libraries(purecalc-common-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + yql-sql-pg + library-yql-ast + yql-core-services + core-services-mounts + yql-core-user_data + yql-utils-backtrace + yql-utils-log + library-yql-core + yql-core-type_ann + yql-parser-pg_wrapper + providers-common-codec + providers-common-comp_nodes + providers-common-mkql + providers-common-provider + common-schema-expr + providers-common-udf_resolve + tools-enum_parser-enum_serialization_runtime + codec-codegen-no_llvm + minikql-computation-no_llvm + minikql-invoke_builtins-no_llvm + minikql-comp_nodes-no_llvm + minikql-codegen-no_llvm +) +target_sources(purecalc-common-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/compile_mkql.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/fwd.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/inspect_input.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/interface.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/logger_init.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/names.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/processor_mode.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/program_factory.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/align_output_schema.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/extract_used_columns.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/output_columns_filter.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/replace_table_reads.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/type_annotation.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/type_from_schema.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/worker.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/worker_factory.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/wrappers.cpp +) +generate_enum_serilization(purecalc-common-no_llvm + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/interface.h + INCLUDE_HEADERS + ydb/library/yql/public/purecalc/common/interface.h +) diff --git a/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..f7379bc8ff3d --- /dev/null +++ b/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,72 @@ + +# 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(purecalc-common-no_llvm) +target_compile_options(purecalc-common-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(purecalc-common-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common +) +target_link_libraries(purecalc-common-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + yql-sql-pg + library-yql-ast + yql-core-services + core-services-mounts + yql-core-user_data + yql-utils-backtrace + yql-utils-log + library-yql-core + yql-core-type_ann + yql-parser-pg_wrapper + providers-common-codec + providers-common-comp_nodes + providers-common-mkql + providers-common-provider + common-schema-expr + providers-common-udf_resolve + tools-enum_parser-enum_serialization_runtime + codec-codegen-no_llvm + minikql-computation-no_llvm + minikql-invoke_builtins-no_llvm + minikql-comp_nodes-no_llvm + minikql-codegen-no_llvm +) +target_sources(purecalc-common-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/compile_mkql.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/fwd.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/inspect_input.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/interface.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/logger_init.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/names.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/processor_mode.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/program_factory.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/align_output_schema.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/extract_used_columns.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/output_columns_filter.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/replace_table_reads.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/type_annotation.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/type_from_schema.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/worker.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/worker_factory.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/wrappers.cpp +) +generate_enum_serilization(purecalc-common-no_llvm + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/interface.h + INCLUDE_HEADERS + ydb/library/yql/public/purecalc/common/interface.h +) diff --git a/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..1d865126987a --- /dev/null +++ b/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.linux-aarch64.txt @@ -0,0 +1,73 @@ + +# 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(purecalc-common-no_llvm) +target_compile_options(purecalc-common-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(purecalc-common-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common +) +target_link_libraries(purecalc-common-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + yql-sql-pg + library-yql-ast + yql-core-services + core-services-mounts + yql-core-user_data + yql-utils-backtrace + yql-utils-log + library-yql-core + yql-core-type_ann + yql-parser-pg_wrapper + providers-common-codec + providers-common-comp_nodes + providers-common-mkql + providers-common-provider + common-schema-expr + providers-common-udf_resolve + tools-enum_parser-enum_serialization_runtime + codec-codegen-no_llvm + minikql-computation-no_llvm + minikql-invoke_builtins-no_llvm + minikql-comp_nodes-no_llvm + minikql-codegen-no_llvm +) +target_sources(purecalc-common-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/compile_mkql.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/fwd.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/inspect_input.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/interface.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/logger_init.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/names.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/processor_mode.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/program_factory.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/align_output_schema.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/extract_used_columns.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/output_columns_filter.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/replace_table_reads.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/type_annotation.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/type_from_schema.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/worker.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/worker_factory.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/wrappers.cpp +) +generate_enum_serilization(purecalc-common-no_llvm + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/interface.h + INCLUDE_HEADERS + ydb/library/yql/public/purecalc/common/interface.h +) diff --git a/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..1d865126987a --- /dev/null +++ b/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.linux-x86_64.txt @@ -0,0 +1,73 @@ + +# 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(purecalc-common-no_llvm) +target_compile_options(purecalc-common-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(purecalc-common-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common +) +target_link_libraries(purecalc-common-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + yql-sql-pg + library-yql-ast + yql-core-services + core-services-mounts + yql-core-user_data + yql-utils-backtrace + yql-utils-log + library-yql-core + yql-core-type_ann + yql-parser-pg_wrapper + providers-common-codec + providers-common-comp_nodes + providers-common-mkql + providers-common-provider + common-schema-expr + providers-common-udf_resolve + tools-enum_parser-enum_serialization_runtime + codec-codegen-no_llvm + minikql-computation-no_llvm + minikql-invoke_builtins-no_llvm + minikql-comp_nodes-no_llvm + minikql-codegen-no_llvm +) +target_sources(purecalc-common-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/compile_mkql.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/fwd.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/inspect_input.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/interface.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/logger_init.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/names.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/processor_mode.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/program_factory.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/align_output_schema.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/extract_used_columns.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/output_columns_filter.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/replace_table_reads.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/type_annotation.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/type_from_schema.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/worker.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/worker_factory.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/wrappers.cpp +) +generate_enum_serilization(purecalc-common-no_llvm + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/interface.h + INCLUDE_HEADERS + ydb/library/yql/public/purecalc/common/interface.h +) diff --git a/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.txt b/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..f7379bc8ff3d --- /dev/null +++ b/ydb/library/yql/public/purecalc/common/no_llvm/CMakeLists.windows-x86_64.txt @@ -0,0 +1,72 @@ + +# 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(purecalc-common-no_llvm) +target_compile_options(purecalc-common-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(purecalc-common-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common +) +target_link_libraries(purecalc-common-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + yql-sql-pg + library-yql-ast + yql-core-services + core-services-mounts + yql-core-user_data + yql-utils-backtrace + yql-utils-log + library-yql-core + yql-core-type_ann + yql-parser-pg_wrapper + providers-common-codec + providers-common-comp_nodes + providers-common-mkql + providers-common-provider + common-schema-expr + providers-common-udf_resolve + tools-enum_parser-enum_serialization_runtime + codec-codegen-no_llvm + minikql-computation-no_llvm + minikql-invoke_builtins-no_llvm + minikql-comp_nodes-no_llvm + minikql-codegen-no_llvm +) +target_sources(purecalc-common-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/compile_mkql.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/fwd.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/inspect_input.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/interface.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/logger_init.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/names.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/processor_mode.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/program_factory.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/align_output_schema.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/extract_used_columns.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/output_columns_filter.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/replace_table_reads.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/transformations/type_annotation.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/type_from_schema.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/worker.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/worker_factory.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/wrappers.cpp +) +generate_enum_serilization(purecalc-common-no_llvm + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/common/interface.h + INCLUDE_HEADERS + ydb/library/yql/public/purecalc/common/interface.h +) diff --git a/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.darwin-arm64.txt index b2253069523d..b1bc77dd93e0 100644 --- a/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.darwin-arm64.txt @@ -35,13 +35,12 @@ target_link_options(protobuf PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_proto_messages(protobuf PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.proto ) target_sources(protobuf PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.cpp ) target_allocator(protobuf diff --git a/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.darwin-x86_64.txt index 711c14629991..31c30138fe33 100644 --- a/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.darwin-x86_64.txt @@ -36,13 +36,12 @@ target_link_options(protobuf PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_proto_messages(protobuf PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.proto ) target_sources(protobuf PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.cpp ) target_allocator(protobuf diff --git a/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.linux-aarch64.txt index 6bc0ca6ea039..eddc6fef814f 100644 --- a/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.linux-aarch64.txt @@ -38,14 +38,12 @@ target_link_options(protobuf PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_proto_messages(protobuf PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.proto ) target_sources(protobuf PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.cpp ) target_allocator(protobuf diff --git a/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.linux-x86_64.txt index 9a176f6229ba..553e50f7c197 100644 --- a/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.linux-x86_64.txt @@ -39,14 +39,12 @@ target_link_options(protobuf PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_proto_messages(protobuf PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.proto ) target_sources(protobuf PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.cpp ) target_allocator(protobuf diff --git a/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.windows-x86_64.txt index d6221c45d206..9125b3877d81 100644 --- a/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/purecalc/examples/protobuf/CMakeLists.windows-x86_64.txt @@ -36,6 +36,7 @@ target_proto_messages(protobuf PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.proto ) target_sources(protobuf PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf/main.cpp ) target_allocator(protobuf diff --git a/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.darwin-arm64.txt index 1c92824ec539..910cc5f868cf 100644 --- a/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.darwin-arm64.txt @@ -35,13 +35,12 @@ target_link_options(protobuf_pull_list PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_proto_messages(protobuf_pull_list PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.proto ) target_sources(protobuf_pull_list PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.cpp ) target_allocator(protobuf_pull_list diff --git a/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.darwin-x86_64.txt index d33d5a41fa56..9c59ef8ace64 100644 --- a/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.darwin-x86_64.txt @@ -36,13 +36,12 @@ target_link_options(protobuf_pull_list PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_proto_messages(protobuf_pull_list PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.proto ) target_sources(protobuf_pull_list PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.cpp ) target_allocator(protobuf_pull_list diff --git a/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.linux-aarch64.txt index efb081bc44f2..38a2d1a8ccb5 100644 --- a/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.linux-aarch64.txt @@ -38,14 +38,12 @@ target_link_options(protobuf_pull_list PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_proto_messages(protobuf_pull_list PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.proto ) target_sources(protobuf_pull_list PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.cpp ) target_allocator(protobuf_pull_list diff --git a/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.linux-x86_64.txt index f27cca0d51f5..2046bbf60c2e 100644 --- a/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.linux-x86_64.txt @@ -39,14 +39,12 @@ target_link_options(protobuf_pull_list PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_proto_messages(protobuf_pull_list PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.proto ) target_sources(protobuf_pull_list PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.cpp ) target_allocator(protobuf_pull_list diff --git a/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.windows-x86_64.txt index e74c8255b652..c2006eb138b4 100644 --- a/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/CMakeLists.windows-x86_64.txt @@ -36,6 +36,7 @@ target_proto_messages(protobuf_pull_list PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.proto ) target_sources(protobuf_pull_list PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.pb.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/protobuf_pull_list/main.cpp ) target_allocator(protobuf_pull_list diff --git a/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.darwin-arm64.txt index 5bf94873614a..27d7e05ffe1b 100644 --- a/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(skiff_pull_list PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(skiff_pull_list PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/skiff_pull_list/main.cpp diff --git a/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.darwin-x86_64.txt index d2cf21e85566..acf68cd387f8 100644 --- a/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(skiff_pull_list PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(skiff_pull_list PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/skiff_pull_list/main.cpp diff --git a/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.linux-aarch64.txt index 596b226847b6..2f965220bd2b 100644 --- a/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(skiff_pull_list PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(skiff_pull_list PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/skiff_pull_list/main.cpp diff --git a/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.linux-x86_64.txt index ebcdf0080716..fe4ab63d9c4c 100644 --- a/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/purecalc/examples/skiff_pull_list/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(skiff_pull_list PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(skiff_pull_list PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/examples/skiff_pull_list/main.cpp diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.darwin-arm64.txt index a94716ee3e5d..bfecbc7ebde9 100644 --- a/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.darwin-arm64.txt @@ -6,22 +6,27 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_subdirectory(ut) add_library(purecalc-io_specs-mkql) target_compile_options(purecalc-io_specs-mkql PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) +target_include_directories(purecalc-io_specs-mkql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql +) target_link_libraries(purecalc-io_specs-mkql PUBLIC contrib-libs-cxxsupp yutil - public-purecalc-common providers-yt-codec providers-yt-common yt-lib-mkql_helpers providers-common-codec common-schema-mkql + public-purecalc-common ) target_sources(purecalc-io_specs-mkql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.cpp ) diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.darwin-x86_64.txt index a94716ee3e5d..bfecbc7ebde9 100644 --- a/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.darwin-x86_64.txt @@ -6,22 +6,27 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_subdirectory(ut) add_library(purecalc-io_specs-mkql) target_compile_options(purecalc-io_specs-mkql PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) +target_include_directories(purecalc-io_specs-mkql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql +) target_link_libraries(purecalc-io_specs-mkql PUBLIC contrib-libs-cxxsupp yutil - public-purecalc-common providers-yt-codec providers-yt-common yt-lib-mkql_helpers providers-common-codec common-schema-mkql + public-purecalc-common ) target_sources(purecalc-io_specs-mkql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.cpp ) diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.linux-aarch64.txt index 2c6e3a6bee29..41709254914f 100644 --- a/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.linux-aarch64.txt @@ -6,23 +6,28 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_subdirectory(ut) add_library(purecalc-io_specs-mkql) target_compile_options(purecalc-io_specs-mkql PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) +target_include_directories(purecalc-io_specs-mkql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql +) target_link_libraries(purecalc-io_specs-mkql PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - public-purecalc-common providers-yt-codec providers-yt-common yt-lib-mkql_helpers providers-common-codec common-schema-mkql + public-purecalc-common ) target_sources(purecalc-io_specs-mkql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.cpp ) diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.linux-x86_64.txt index 2c6e3a6bee29..41709254914f 100644 --- a/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.linux-x86_64.txt @@ -6,23 +6,28 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_subdirectory(ut) add_library(purecalc-io_specs-mkql) target_compile_options(purecalc-io_specs-mkql PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) +target_include_directories(purecalc-io_specs-mkql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql +) target_link_libraries(purecalc-io_specs-mkql PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - public-purecalc-common providers-yt-codec providers-yt-common yt-lib-mkql_helpers providers-common-codec common-schema-mkql + public-purecalc-common ) target_sources(purecalc-io_specs-mkql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.cpp ) diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.windows-x86_64.txt index a94716ee3e5d..bfecbc7ebde9 100644 --- a/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/CMakeLists.windows-x86_64.txt @@ -6,22 +6,27 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_subdirectory(ut) add_library(purecalc-io_specs-mkql) target_compile_options(purecalc-io_specs-mkql PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) +target_include_directories(purecalc-io_specs-mkql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql +) target_link_libraries(purecalc-io_specs-mkql PUBLIC contrib-libs-cxxsupp yutil - public-purecalc-common providers-yt-codec providers-yt-common yt-lib-mkql_helpers providers-common-codec common-schema-mkql + public-purecalc-common ) target_sources(purecalc-io_specs-mkql PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.cpp ) diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..c309e2dabd6b --- /dev/null +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/CMakeLists.darwin-arm64.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(io_specs-mkql-no_llvm) +target_compile_options(io_specs-mkql-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(io_specs-mkql-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql +) +target_link_libraries(io_specs-mkql-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + providers-yt-codec + providers-yt-common + yt-lib-mkql_helpers + providers-common-codec + common-schema-mkql + purecalc-common-no_llvm +) +target_sources(io_specs-mkql-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.cpp +) diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..c309e2dabd6b --- /dev/null +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/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(io_specs-mkql-no_llvm) +target_compile_options(io_specs-mkql-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(io_specs-mkql-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql +) +target_link_libraries(io_specs-mkql-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + providers-yt-codec + providers-yt-common + yt-lib-mkql_helpers + providers-common-codec + common-schema-mkql + purecalc-common-no_llvm +) +target_sources(io_specs-mkql-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.cpp +) diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..93903ca5324d --- /dev/null +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/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(io_specs-mkql-no_llvm) +target_compile_options(io_specs-mkql-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(io_specs-mkql-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql +) +target_link_libraries(io_specs-mkql-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + providers-yt-codec + providers-yt-common + yt-lib-mkql_helpers + providers-common-codec + common-schema-mkql + purecalc-common-no_llvm +) +target_sources(io_specs-mkql-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.cpp +) diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..93903ca5324d --- /dev/null +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/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(io_specs-mkql-no_llvm) +target_compile_options(io_specs-mkql-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(io_specs-mkql-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql +) +target_link_libraries(io_specs-mkql-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + providers-yt-codec + providers-yt-common + yt-lib-mkql_helpers + providers-common-codec + common-schema-mkql + purecalc-common-no_llvm +) +target_sources(io_specs-mkql-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.cpp +) diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/CMakeLists.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..c309e2dabd6b --- /dev/null +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/no_llvm/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(io_specs-mkql-no_llvm) +target_compile_options(io_specs-mkql-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(io_specs-mkql-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql +) +target_link_libraries(io_specs-mkql-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + providers-yt-codec + providers-yt-common + yt-lib-mkql_helpers + providers-common-codec + common-schema-mkql + purecalc-common-no_llvm +) +target_sources(io_specs-mkql-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/spec.cpp +) diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.darwin-arm64.txt index de063c0433ce..e2e19ce9c1a9 100644 --- a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.darwin-arm64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_executable(ydb-library-yql-public-purecalc-io_specs-mkql-ut) target_compile_options(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE @@ -16,7 +17,7 @@ target_link_libraries(ydb-library-yql-public-purecalc-io_specs-mkql-ut PUBLIC yutil cpp-testing-unittest_main udf-service-exception_policy - public-purecalc-common + yql-public-purecalc purecalc-io_specs-mkql purecalc-ut-lib ) @@ -24,8 +25,6 @@ target_link_options(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/ut/test_spec.cpp @@ -55,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.darwin-x86_64.txt index 08edd65bf81c..e8dcda8e266d 100644 --- a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.darwin-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_executable(ydb-library-yql-public-purecalc-io_specs-mkql-ut) target_compile_options(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE @@ -17,7 +18,7 @@ target_link_libraries(ydb-library-yql-public-purecalc-io_specs-mkql-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main udf-service-exception_policy - public-purecalc-common + yql-public-purecalc purecalc-io_specs-mkql purecalc-ut-lib ) @@ -25,8 +26,6 @@ target_link_options(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/ut/test_spec.cpp @@ -56,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.linux-aarch64.txt index 50277026691c..2f7d00a809ac 100644 --- a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.linux-aarch64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_executable(ydb-library-yql-public-purecalc-io_specs-mkql-ut) target_compile_options(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE @@ -17,7 +18,7 @@ target_link_libraries(ydb-library-yql-public-purecalc-io_specs-mkql-ut PUBLIC yutil cpp-testing-unittest_main udf-service-exception_policy - public-purecalc-common + yql-public-purecalc purecalc-io_specs-mkql purecalc-ut-lib ) @@ -27,9 +28,6 @@ target_link_options(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/ut/test_spec.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.linux-x86_64.txt index 36c85aeacb30..631e126fbcc6 100644 --- a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.linux-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_executable(ydb-library-yql-public-purecalc-io_specs-mkql-ut) target_compile_options(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE @@ -18,7 +19,7 @@ target_link_libraries(ydb-library-yql-public-purecalc-io_specs-mkql-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main udf-service-exception_policy - public-purecalc-common + yql-public-purecalc purecalc-io_specs-mkql purecalc-ut-lib ) @@ -28,9 +29,6 @@ target_link_options(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/ut/test_spec.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.windows-x86_64.txt index be8ef1154c36..b4d65b084d81 100644 --- a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/CMakeLists.windows-x86_64.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(no_llvm) add_executable(ydb-library-yql-public-purecalc-io_specs-mkql-ut) target_compile_options(ydb-library-yql-public-purecalc-io_specs-mkql-ut PRIVATE @@ -17,7 +18,7 @@ target_link_libraries(ydb-library-yql-public-purecalc-io_specs-mkql-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main udf-service-exception_policy - public-purecalc-common + yql-public-purecalc purecalc-io_specs-mkql purecalc-ut-lib ) @@ -49,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..10e981b4d943 --- /dev/null +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.darwin-arm64.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(public-purecalc-io_specs-mkql-ut-no_llvm) +target_compile_options(public-purecalc-io_specs-mkql-ut-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(public-purecalc-io_specs-mkql-ut-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + udf-service-exception_policy + public-purecalc-no_llvm + io_specs-mkql-no_llvm + purecalc-ut-lib +) +target_link_options(public-purecalc-io_specs-mkql-ut-no_llvm PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(public-purecalc-io_specs-mkql-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/ut/test_spec.cpp +) +set_property( + TARGET + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + public-purecalc-io_specs-mkql-ut-no_llvm + TEST_TARGET + public-purecalc-io_specs-mkql-ut-no_llvm + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + TIMEOUT + 300 +) +target_allocator(public-purecalc-io_specs-mkql-ut-no_llvm + system_allocator +) +vcs_info(public-purecalc-io_specs-mkql-ut-no_llvm) diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..112bcbdba15d --- /dev/null +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,76 @@ + +# 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(public-purecalc-io_specs-mkql-ut-no_llvm) +target_compile_options(public-purecalc-io_specs-mkql-ut-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(public-purecalc-io_specs-mkql-ut-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + udf-service-exception_policy + public-purecalc-no_llvm + io_specs-mkql-no_llvm + purecalc-ut-lib +) +target_link_options(public-purecalc-io_specs-mkql-ut-no_llvm PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(public-purecalc-io_specs-mkql-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/ut/test_spec.cpp +) +set_property( + TARGET + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + public-purecalc-io_specs-mkql-ut-no_llvm + TEST_TARGET + public-purecalc-io_specs-mkql-ut-no_llvm + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + TIMEOUT + 300 +) +target_allocator(public-purecalc-io_specs-mkql-ut-no_llvm + system_allocator +) +vcs_info(public-purecalc-io_specs-mkql-ut-no_llvm) diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..6e24deaed82c --- /dev/null +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.linux-aarch64.txt @@ -0,0 +1,78 @@ + +# 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(public-purecalc-io_specs-mkql-ut-no_llvm) +target_compile_options(public-purecalc-io_specs-mkql-ut-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(public-purecalc-io_specs-mkql-ut-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + cpp-testing-unittest_main + udf-service-exception_policy + public-purecalc-no_llvm + io_specs-mkql-no_llvm + purecalc-ut-lib +) +target_link_options(public-purecalc-io_specs-mkql-ut-no_llvm PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(public-purecalc-io_specs-mkql-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/ut/test_spec.cpp +) +set_property( + TARGET + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + public-purecalc-io_specs-mkql-ut-no_llvm + TEST_TARGET + public-purecalc-io_specs-mkql-ut-no_llvm + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + TIMEOUT + 300 +) +target_allocator(public-purecalc-io_specs-mkql-ut-no_llvm + cpp-malloc-jemalloc +) +vcs_info(public-purecalc-io_specs-mkql-ut-no_llvm) diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..3448543edfaf --- /dev/null +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.linux-x86_64.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(public-purecalc-io_specs-mkql-ut-no_llvm) +target_compile_options(public-purecalc-io_specs-mkql-ut-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(public-purecalc-io_specs-mkql-ut-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + udf-service-exception_policy + public-purecalc-no_llvm + io_specs-mkql-no_llvm + purecalc-ut-lib +) +target_link_options(public-purecalc-io_specs-mkql-ut-no_llvm PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(public-purecalc-io_specs-mkql-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/ut/test_spec.cpp +) +set_property( + TARGET + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + public-purecalc-io_specs-mkql-ut-no_llvm + TEST_TARGET + public-purecalc-io_specs-mkql-ut-no_llvm + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + TIMEOUT + 300 +) +target_allocator(public-purecalc-io_specs-mkql-ut-no_llvm + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(public-purecalc-io_specs-mkql-ut-no_llvm) diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..decde8f2f2f2 --- /dev/null +++ b/ydb/library/yql/public/purecalc/io_specs/mkql/ut/no_llvm/CMakeLists.windows-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(public-purecalc-io_specs-mkql-ut-no_llvm) +target_compile_options(public-purecalc-io_specs-mkql-ut-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(public-purecalc-io_specs-mkql-ut-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + cpp-testing-unittest_main + udf-service-exception_policy + public-purecalc-no_llvm + io_specs-mkql-no_llvm + purecalc-ut-lib +) +target_sources(public-purecalc-io_specs-mkql-ut-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/mkql/ut/test_spec.cpp +) +set_property( + TARGET + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + SPLIT_FACTOR + 1 +) +add_yunittest( + NAME + public-purecalc-io_specs-mkql-ut-no_llvm + TEST_TARGET + public-purecalc-io_specs-mkql-ut-no_llvm + TEST_ARG + --print-before-suite + --print-before-test + --fork-tests + --print-times + --show-fails +) +set_yunittest_property( + TEST + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + LABELS + MEDIUM + $FILTER_ONLY_TEST_TAGS +) +set_yunittest_property( + TEST + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + PROCESSORS + 1 +) +set_yunittest_property( + TEST + public-purecalc-io_specs-mkql-ut-no_llvm + PROPERTY + TIMEOUT + 300 +) +target_allocator(public-purecalc-io_specs-mkql-ut-no_llvm + system_allocator +) +vcs_info(public-purecalc-io_specs-mkql-ut-no_llvm) diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.darwin-arm64.txt index 21f5abdd56b8..d6d8dcdd5e78 100644 --- a/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.darwin-arm64.txt @@ -17,7 +17,7 @@ target_link_libraries(yql-public-purecalc-io_specs-protobuf-ut PUBLIC cpp-testing-unittest_main cpp-protobuf-util udf-service-exception_policy - public-purecalc-common + yql-public-purecalc purecalc-io_specs-protobuf purecalc-ut-protos ) @@ -25,8 +25,6 @@ target_link_options(yql-public-purecalc-io_specs-protobuf-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(yql-public-purecalc-io_specs-protobuf-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/test_spec.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.darwin-x86_64.txt index b5599ef49618..16e70037b516 100644 --- a/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.darwin-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(yql-public-purecalc-io_specs-protobuf-ut PUBLIC cpp-testing-unittest_main cpp-protobuf-util udf-service-exception_policy - public-purecalc-common + yql-public-purecalc purecalc-io_specs-protobuf purecalc-ut-protos ) @@ -26,8 +26,6 @@ target_link_options(yql-public-purecalc-io_specs-protobuf-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(yql-public-purecalc-io_specs-protobuf-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/test_spec.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.linux-aarch64.txt index 2ff8d5a7fc07..7f4fb0ab0e69 100644 --- a/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.linux-aarch64.txt @@ -18,7 +18,7 @@ target_link_libraries(yql-public-purecalc-io_specs-protobuf-ut PUBLIC cpp-testing-unittest_main cpp-protobuf-util udf-service-exception_policy - public-purecalc-common + yql-public-purecalc purecalc-io_specs-protobuf purecalc-ut-protos ) @@ -28,9 +28,6 @@ target_link_options(yql-public-purecalc-io_specs-protobuf-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(yql-public-purecalc-io_specs-protobuf-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/test_spec.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.linux-x86_64.txt index 2defc0237f49..a2f68aa84bde 100644 --- a/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.linux-x86_64.txt @@ -19,7 +19,7 @@ target_link_libraries(yql-public-purecalc-io_specs-protobuf-ut PUBLIC cpp-testing-unittest_main cpp-protobuf-util udf-service-exception_policy - public-purecalc-common + yql-public-purecalc purecalc-io_specs-protobuf purecalc-ut-protos ) @@ -29,9 +29,6 @@ target_link_options(yql-public-purecalc-io_specs-protobuf-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(yql-public-purecalc-io_specs-protobuf-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/test_spec.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.windows-x86_64.txt index 4e2687f66062..f91ce9529cb8 100644 --- a/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/protobuf/ut/CMakeLists.windows-x86_64.txt @@ -18,7 +18,7 @@ target_link_libraries(yql-public-purecalc-io_specs-protobuf-ut PUBLIC cpp-testing-unittest_main cpp-protobuf-util udf-service-exception_policy - public-purecalc-common + yql-public-purecalc purecalc-io_specs-protobuf purecalc-ut-protos ) @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.darwin-arm64.txt index e482710c074d..9d656e2799a2 100644 --- a/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.darwin-arm64.txt @@ -18,6 +18,7 @@ target_link_libraries(purecalc-io_specs-protobuf_raw PUBLIC purecalc-helpers-protobuf ) target_sources(purecalc-io_specs-protobuf_raw PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/spec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/proto_holder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/spec.cpp ) diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.darwin-x86_64.txt index e482710c074d..9d656e2799a2 100644 --- a/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.darwin-x86_64.txt @@ -18,6 +18,7 @@ target_link_libraries(purecalc-io_specs-protobuf_raw PUBLIC purecalc-helpers-protobuf ) target_sources(purecalc-io_specs-protobuf_raw PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/spec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/proto_holder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/spec.cpp ) diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.linux-aarch64.txt index eb794e6f378b..242ab97bac22 100644 --- a/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.linux-aarch64.txt @@ -19,6 +19,7 @@ target_link_libraries(purecalc-io_specs-protobuf_raw PUBLIC purecalc-helpers-protobuf ) target_sources(purecalc-io_specs-protobuf_raw PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/spec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/proto_holder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/spec.cpp ) diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.linux-x86_64.txt index eb794e6f378b..242ab97bac22 100644 --- a/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.linux-x86_64.txt @@ -19,6 +19,7 @@ target_link_libraries(purecalc-io_specs-protobuf_raw PUBLIC purecalc-helpers-protobuf ) target_sources(purecalc-io_specs-protobuf_raw PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/spec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/proto_holder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/spec.cpp ) diff --git a/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.windows-x86_64.txt index e482710c074d..9d656e2799a2 100644 --- a/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/CMakeLists.windows-x86_64.txt @@ -18,6 +18,7 @@ target_link_libraries(purecalc-io_specs-protobuf_raw PUBLIC purecalc-helpers-protobuf ) target_sources(purecalc-io_specs-protobuf_raw PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/spec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/proto_holder.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/io_specs/protobuf_raw/spec.cpp ) diff --git a/ydb/library/yql/public/purecalc/no_llvm/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/no_llvm/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..2361ef39c61a --- /dev/null +++ b/ydb/library/yql/public/purecalc/no_llvm/CMakeLists.darwin-arm64.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(public-purecalc-no_llvm) +target_compile_options(public-purecalc-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(public-purecalc-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc +) +target_link_libraries(public-purecalc-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + udf-service-exception_policy + purecalc-common-no_llvm + codec-codegen-no_llvm + minikql-codegen-no_llvm + minikql-computation-no_llvm + minikql-invoke_builtins-no_llvm + minikql-comp_nodes-no_llvm +) +target_sources(public-purecalc-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/purecalc.cpp +) diff --git a/ydb/library/yql/public/purecalc/no_llvm/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/no_llvm/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..2361ef39c61a --- /dev/null +++ b/ydb/library/yql/public/purecalc/no_llvm/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(public-purecalc-no_llvm) +target_compile_options(public-purecalc-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(public-purecalc-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc +) +target_link_libraries(public-purecalc-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + udf-service-exception_policy + purecalc-common-no_llvm + codec-codegen-no_llvm + minikql-codegen-no_llvm + minikql-computation-no_llvm + minikql-invoke_builtins-no_llvm + minikql-comp_nodes-no_llvm +) +target_sources(public-purecalc-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/purecalc.cpp +) diff --git a/ydb/library/yql/public/purecalc/no_llvm/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/no_llvm/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..22308601d256 --- /dev/null +++ b/ydb/library/yql/public/purecalc/no_llvm/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(public-purecalc-no_llvm) +target_compile_options(public-purecalc-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(public-purecalc-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc +) +target_link_libraries(public-purecalc-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + udf-service-exception_policy + purecalc-common-no_llvm + codec-codegen-no_llvm + minikql-codegen-no_llvm + minikql-computation-no_llvm + minikql-invoke_builtins-no_llvm + minikql-comp_nodes-no_llvm +) +target_sources(public-purecalc-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/purecalc.cpp +) diff --git a/ydb/library/yql/public/purecalc/no_llvm/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/no_llvm/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..22308601d256 --- /dev/null +++ b/ydb/library/yql/public/purecalc/no_llvm/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(public-purecalc-no_llvm) +target_compile_options(public-purecalc-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(public-purecalc-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc +) +target_link_libraries(public-purecalc-no_llvm PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + udf-service-exception_policy + purecalc-common-no_llvm + codec-codegen-no_llvm + minikql-codegen-no_llvm + minikql-computation-no_llvm + minikql-invoke_builtins-no_llvm + minikql-comp_nodes-no_llvm +) +target_sources(public-purecalc-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/purecalc.cpp +) diff --git a/ydb/library/yql/public/purecalc/no_llvm/CMakeLists.txt b/ydb/library/yql/public/purecalc/no_llvm/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/public/purecalc/no_llvm/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/public/purecalc/no_llvm/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/purecalc/no_llvm/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..2361ef39c61a --- /dev/null +++ b/ydb/library/yql/public/purecalc/no_llvm/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(public-purecalc-no_llvm) +target_compile_options(public-purecalc-no_llvm PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_include_directories(public-purecalc-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc +) +target_link_libraries(public-purecalc-no_llvm PUBLIC + contrib-libs-cxxsupp + yutil + udf-service-exception_policy + purecalc-common-no_llvm + codec-codegen-no_llvm + minikql-codegen-no_llvm + minikql-computation-no_llvm + minikql-invoke_builtins-no_llvm + minikql-comp_nodes-no_llvm +) +target_sources(public-purecalc-no_llvm PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/purecalc.cpp +) diff --git a/ydb/library/yql/public/purecalc/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/ut/CMakeLists.darwin-arm64.txt index db6a308f3a60..42ec79d4e87e 100644 --- a/ydb/library/yql/public/purecalc/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/purecalc/ut/CMakeLists.darwin-arm64.txt @@ -25,10 +25,10 @@ target_link_options(ydb-library-yql-public-purecalc-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-public-purecalc-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/empty_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/fake_spec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/fake_spec.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_schema.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_sexpr.cpp @@ -63,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/ut/CMakeLists.darwin-x86_64.txt index 4a4c7b68a29f..7b6cf87f54cc 100644 --- a/ydb/library/yql/public/purecalc/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/purecalc/ut/CMakeLists.darwin-x86_64.txt @@ -26,10 +26,10 @@ target_link_options(ydb-library-yql-public-purecalc-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-public-purecalc-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/empty_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/fake_spec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/fake_spec.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_schema.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_sexpr.cpp @@ -64,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/ut/CMakeLists.linux-aarch64.txt index 01d22ca88f7a..3e546cdc51cb 100644 --- a/ydb/library/yql/public/purecalc/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/purecalc/ut/CMakeLists.linux-aarch64.txt @@ -28,11 +28,10 @@ target_link_options(ydb-library-yql-public-purecalc-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-public-purecalc-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/empty_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/fake_spec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/fake_spec.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_schema.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_sexpr.cpp @@ -67,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/ut/CMakeLists.linux-x86_64.txt index 5c64f772cb05..fd869c2acabb 100644 --- a/ydb/library/yql/public/purecalc/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/purecalc/ut/CMakeLists.linux-x86_64.txt @@ -29,11 +29,10 @@ target_link_options(ydb-library-yql-public-purecalc-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-public-purecalc-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/empty_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/fake_spec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/fake_spec.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_schema.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_sexpr.cpp @@ -68,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/purecalc/ut/CMakeLists.windows-x86_64.txt index eb1ce4c4c3fa..510603f3b453 100644 --- a/ydb/library/yql/public/purecalc/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/purecalc/ut/CMakeLists.windows-x86_64.txt @@ -23,6 +23,8 @@ target_link_libraries(ydb-library-yql-public-purecalc-ut PUBLIC purecalc-ut-protos ) target_sources(ydb-library-yql-public-purecalc-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/empty_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/fake_spec.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/fake_spec.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_schema.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/test_sexpr.cpp @@ -57,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.darwin-arm64.txt index 36bfa6b4d555..fea668350439 100644 --- a/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.darwin-arm64.txt @@ -15,5 +15,6 @@ target_link_libraries(purecalc-ut-lib PUBLIC cpp-yson-node ) target_sources(purecalc-ut-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/lib/helpers.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/lib/helpers.cpp ) diff --git a/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.darwin-x86_64.txt index 36bfa6b4d555..fea668350439 100644 --- a/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.darwin-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(purecalc-ut-lib PUBLIC cpp-yson-node ) target_sources(purecalc-ut-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/lib/helpers.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/lib/helpers.cpp ) diff --git a/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.linux-aarch64.txt index b32b5970c1f4..048fd6d9170e 100644 --- a/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.linux-aarch64.txt @@ -16,5 +16,6 @@ target_link_libraries(purecalc-ut-lib PUBLIC cpp-yson-node ) target_sources(purecalc-ut-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/lib/helpers.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/lib/helpers.cpp ) diff --git a/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.linux-x86_64.txt index b32b5970c1f4..048fd6d9170e 100644 --- a/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.linux-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(purecalc-ut-lib PUBLIC cpp-yson-node ) target_sources(purecalc-ut-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/lib/helpers.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/lib/helpers.cpp ) diff --git a/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.windows-x86_64.txt index 36bfa6b4d555..fea668350439 100644 --- a/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/purecalc/ut/lib/CMakeLists.windows-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(purecalc-ut-lib PUBLIC cpp-yson-node ) target_sources(purecalc-ut-lib PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/lib/helpers.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/lib/helpers.cpp ) diff --git a/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.darwin-arm64.txt index 12f10544f8b7..112ce14740b6 100644 --- a/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(purecalc-ut-protos PUBLIC target_proto_messages(purecalc-ut-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/protos/test_structs.proto ) +target_sources(purecalc-ut-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/purecalc/ut/protos/test_structs.pb.h +) target_proto_addincls(purecalc-ut-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.darwin-x86_64.txt index 12f10544f8b7..112ce14740b6 100644 --- a/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(purecalc-ut-protos PUBLIC target_proto_messages(purecalc-ut-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/protos/test_structs.proto ) +target_sources(purecalc-ut-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/purecalc/ut/protos/test_structs.pb.h +) target_proto_addincls(purecalc-ut-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.linux-aarch64.txt index 806ee8016556..9447e5e67472 100644 --- a/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(purecalc-ut-protos PUBLIC target_proto_messages(purecalc-ut-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/protos/test_structs.proto ) +target_sources(purecalc-ut-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/purecalc/ut/protos/test_structs.pb.h +) target_proto_addincls(purecalc-ut-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.linux-x86_64.txt index 806ee8016556..9447e5e67472 100644 --- a/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(purecalc-ut-protos PUBLIC target_proto_messages(purecalc-ut-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/protos/test_structs.proto ) +target_sources(purecalc-ut-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/purecalc/ut/protos/test_structs.pb.h +) target_proto_addincls(purecalc-ut-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.windows-x86_64.txt index 12f10544f8b7..112ce14740b6 100644 --- a/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/purecalc/ut/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(purecalc-ut-protos PUBLIC target_proto_messages(purecalc-ut-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/purecalc/ut/protos/test_structs.proto ) +target_sources(purecalc-ut-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/purecalc/ut/protos/test_structs.pb.h +) target_proto_addincls(purecalc-ut-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/public/types/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/types/CMakeLists.darwin-arm64.txt index 6af082dd5750..c78ead6383bf 100644 --- a/ydb/library/yql/public/types/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/types/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(yql-public-types PUBLIC target_proto_messages(yql-public-types PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/types/yql_types.proto ) +target_sources(yql-public-types PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/types/yql_types.pb.h +) target_proto_addincls(yql-public-types ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/public/types/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/types/CMakeLists.darwin-x86_64.txt index 6af082dd5750..c78ead6383bf 100644 --- a/ydb/library/yql/public/types/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/types/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(yql-public-types PUBLIC target_proto_messages(yql-public-types PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/types/yql_types.proto ) +target_sources(yql-public-types PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/types/yql_types.pb.h +) target_proto_addincls(yql-public-types ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/public/types/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/types/CMakeLists.linux-aarch64.txt index 9f51523b7dad..7ccf949ffd62 100644 --- a/ydb/library/yql/public/types/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/types/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(yql-public-types PUBLIC target_proto_messages(yql-public-types PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/types/yql_types.proto ) +target_sources(yql-public-types PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/types/yql_types.pb.h +) target_proto_addincls(yql-public-types ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/public/types/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/types/CMakeLists.linux-x86_64.txt index 9f51523b7dad..7ccf949ffd62 100644 --- a/ydb/library/yql/public/types/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/types/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(yql-public-types PUBLIC target_proto_messages(yql-public-types PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/types/yql_types.proto ) +target_sources(yql-public-types PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/types/yql_types.pb.h +) target_proto_addincls(yql-public-types ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/public/types/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/types/CMakeLists.windows-x86_64.txt index 6af082dd5750..c78ead6383bf 100644 --- a/ydb/library/yql/public/types/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/types/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(yql-public-types PUBLIC target_proto_messages(yql-public-types PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/types/yql_types.proto ) +target_sources(yql-public-types PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/public/types/yql_types.pb.h +) target_proto_addincls(yql-public-types ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/public/udf/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/CMakeLists.darwin-arm64.txt index b23af34525d8..5163d05676eb 100644 --- a/ydb/library/yql/public/udf/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/udf/CMakeLists.darwin-arm64.txt @@ -26,6 +26,27 @@ target_link_libraries(yql-public-udf PUBLIC cpp-deprecated-atomic ) target_sources(yql-public-udf PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_allocator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_data_type.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_pg_type_description.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_ptr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_registrator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_static_registry.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_string.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_inspection.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_ops.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_printer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_size_check.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_types.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_ut_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_validate.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value_inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_version.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_allocator.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_data_type.cpp diff --git a/ydb/library/yql/public/udf/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/udf/CMakeLists.darwin-x86_64.txt index b23af34525d8..5163d05676eb 100644 --- a/ydb/library/yql/public/udf/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/udf/CMakeLists.darwin-x86_64.txt @@ -26,6 +26,27 @@ target_link_libraries(yql-public-udf PUBLIC cpp-deprecated-atomic ) target_sources(yql-public-udf PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_allocator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_data_type.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_pg_type_description.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_ptr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_registrator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_static_registry.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_string.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_inspection.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_ops.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_printer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_size_check.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_types.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_ut_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_validate.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value_inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_version.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_allocator.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_data_type.cpp diff --git a/ydb/library/yql/public/udf/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/udf/CMakeLists.linux-aarch64.txt index 4903599672f9..98791bb489ae 100644 --- a/ydb/library/yql/public/udf/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/udf/CMakeLists.linux-aarch64.txt @@ -27,6 +27,27 @@ target_link_libraries(yql-public-udf PUBLIC cpp-deprecated-atomic ) target_sources(yql-public-udf PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_allocator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_data_type.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_pg_type_description.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_ptr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_registrator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_static_registry.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_string.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_inspection.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_ops.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_printer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_size_check.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_types.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_ut_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_validate.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value_inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_version.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_allocator.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_data_type.cpp diff --git a/ydb/library/yql/public/udf/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/udf/CMakeLists.linux-x86_64.txt index 4903599672f9..98791bb489ae 100644 --- a/ydb/library/yql/public/udf/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/udf/CMakeLists.linux-x86_64.txt @@ -27,6 +27,27 @@ target_link_libraries(yql-public-udf PUBLIC cpp-deprecated-atomic ) target_sources(yql-public-udf PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_allocator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_data_type.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_pg_type_description.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_ptr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_registrator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_static_registry.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_string.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_inspection.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_ops.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_printer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_size_check.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_types.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_ut_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_validate.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value_inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_version.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_allocator.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_data_type.cpp diff --git a/ydb/library/yql/public/udf/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/udf/CMakeLists.windows-x86_64.txt index b23af34525d8..5163d05676eb 100644 --- a/ydb/library/yql/public/udf/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/udf/CMakeLists.windows-x86_64.txt @@ -26,6 +26,27 @@ target_link_libraries(yql-public-udf PUBLIC cpp-deprecated-atomic ) target_sources(yql-public-udf PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_allocator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_data_type.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_pg_type_description.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_ptr.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_registrator.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_static_registry.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_string.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_inspection.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_ops.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_printer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_type_size_check.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_types.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_ut_helpers.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_validate.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value_builder.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_value_inl.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_version.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_allocator.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_data_type.cpp diff --git a/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.darwin-arm64.txt index c0011de5e5fa..2b10475457ff 100644 --- a/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.darwin-arm64.txt @@ -7,16 +7,24 @@ -add_library(udf-service-exception_policy) -target_compile_options(udf-service-exception_policy PRIVATE +add_library(udf-service-exception_policy INTERFACE) +target_link_libraries(udf-service-exception_policy INTERFACE + contrib-libs-cxxsupp + yutil + library-yql-minikql + yql-public-udf +) + +add_global_library_for(udf-service-exception_policy.global udf-service-exception_policy) +target_compile_options(udf-service-exception_policy.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(udf-service-exception_policy PUBLIC +target_link_libraries(udf-service-exception_policy.global PUBLIC contrib-libs-cxxsupp yutil library-yql-minikql yql-public-udf ) -target_sources(udf-service-exception_policy PRIVATE +target_sources(udf-service-exception_policy.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/exception_policy/udf_service.cpp ) diff --git a/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.darwin-x86_64.txt index c0011de5e5fa..2b10475457ff 100644 --- a/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.darwin-x86_64.txt @@ -7,16 +7,24 @@ -add_library(udf-service-exception_policy) -target_compile_options(udf-service-exception_policy PRIVATE +add_library(udf-service-exception_policy INTERFACE) +target_link_libraries(udf-service-exception_policy INTERFACE + contrib-libs-cxxsupp + yutil + library-yql-minikql + yql-public-udf +) + +add_global_library_for(udf-service-exception_policy.global udf-service-exception_policy) +target_compile_options(udf-service-exception_policy.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(udf-service-exception_policy PUBLIC +target_link_libraries(udf-service-exception_policy.global PUBLIC contrib-libs-cxxsupp yutil library-yql-minikql yql-public-udf ) -target_sources(udf-service-exception_policy PRIVATE +target_sources(udf-service-exception_policy.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/exception_policy/udf_service.cpp ) diff --git a/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.linux-aarch64.txt index 6481ad202204..f7fb7e3707ae 100644 --- a/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.linux-aarch64.txt @@ -7,17 +7,26 @@ -add_library(udf-service-exception_policy) -target_compile_options(udf-service-exception_policy PRIVATE +add_library(udf-service-exception_policy INTERFACE) +target_link_libraries(udf-service-exception_policy INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-yql-minikql + yql-public-udf +) + +add_global_library_for(udf-service-exception_policy.global udf-service-exception_policy) +target_compile_options(udf-service-exception_policy.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(udf-service-exception_policy PUBLIC +target_link_libraries(udf-service-exception_policy.global PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil library-yql-minikql yql-public-udf ) -target_sources(udf-service-exception_policy PRIVATE +target_sources(udf-service-exception_policy.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/exception_policy/udf_service.cpp ) diff --git a/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.linux-x86_64.txt index 6481ad202204..f7fb7e3707ae 100644 --- a/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.linux-x86_64.txt @@ -7,17 +7,26 @@ -add_library(udf-service-exception_policy) -target_compile_options(udf-service-exception_policy PRIVATE +add_library(udf-service-exception_policy INTERFACE) +target_link_libraries(udf-service-exception_policy INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-yql-minikql + yql-public-udf +) + +add_global_library_for(udf-service-exception_policy.global udf-service-exception_policy) +target_compile_options(udf-service-exception_policy.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(udf-service-exception_policy PUBLIC +target_link_libraries(udf-service-exception_policy.global PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil library-yql-minikql yql-public-udf ) -target_sources(udf-service-exception_policy PRIVATE +target_sources(udf-service-exception_policy.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/exception_policy/udf_service.cpp ) diff --git a/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.windows-x86_64.txt index c0011de5e5fa..2b10475457ff 100644 --- a/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/udf/service/exception_policy/CMakeLists.windows-x86_64.txt @@ -7,16 +7,24 @@ -add_library(udf-service-exception_policy) -target_compile_options(udf-service-exception_policy PRIVATE +add_library(udf-service-exception_policy INTERFACE) +target_link_libraries(udf-service-exception_policy INTERFACE + contrib-libs-cxxsupp + yutil + library-yql-minikql + yql-public-udf +) + +add_global_library_for(udf-service-exception_policy.global udf-service-exception_policy) +target_compile_options(udf-service-exception_policy.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(udf-service-exception_policy PUBLIC +target_link_libraries(udf-service-exception_policy.global PUBLIC contrib-libs-cxxsupp yutil library-yql-minikql yql-public-udf ) -target_sources(udf-service-exception_policy PRIVATE +target_sources(udf-service-exception_policy.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/exception_policy/udf_service.cpp ) diff --git a/ydb/library/yql/public/udf/service/stub/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/service/stub/CMakeLists.darwin-arm64.txt index dca6cc3d42b5..68cbe171d8a4 100644 --- a/ydb/library/yql/public/udf/service/stub/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/udf/service/stub/CMakeLists.darwin-arm64.txt @@ -7,15 +7,22 @@ -add_library(udf-service-stub) -target_compile_options(udf-service-stub PRIVATE +add_library(udf-service-stub INTERFACE) +target_link_libraries(udf-service-stub INTERFACE + contrib-libs-cxxsupp + yutil + yql-public-udf +) + +add_global_library_for(udf-service-stub.global udf-service-stub) +target_compile_options(udf-service-stub.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(udf-service-stub PUBLIC +target_link_libraries(udf-service-stub.global PUBLIC contrib-libs-cxxsupp yutil yql-public-udf ) -target_sources(udf-service-stub PRIVATE +target_sources(udf-service-stub.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/stub/udf_service.cpp ) diff --git a/ydb/library/yql/public/udf/service/stub/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/udf/service/stub/CMakeLists.darwin-x86_64.txt index dca6cc3d42b5..68cbe171d8a4 100644 --- a/ydb/library/yql/public/udf/service/stub/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/udf/service/stub/CMakeLists.darwin-x86_64.txt @@ -7,15 +7,22 @@ -add_library(udf-service-stub) -target_compile_options(udf-service-stub PRIVATE +add_library(udf-service-stub INTERFACE) +target_link_libraries(udf-service-stub INTERFACE + contrib-libs-cxxsupp + yutil + yql-public-udf +) + +add_global_library_for(udf-service-stub.global udf-service-stub) +target_compile_options(udf-service-stub.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(udf-service-stub PUBLIC +target_link_libraries(udf-service-stub.global PUBLIC contrib-libs-cxxsupp yutil yql-public-udf ) -target_sources(udf-service-stub PRIVATE +target_sources(udf-service-stub.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/stub/udf_service.cpp ) diff --git a/ydb/library/yql/public/udf/service/stub/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/udf/service/stub/CMakeLists.linux-aarch64.txt index fdf4e0405fd1..10051ef29fb6 100644 --- a/ydb/library/yql/public/udf/service/stub/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/udf/service/stub/CMakeLists.linux-aarch64.txt @@ -7,16 +7,24 @@ -add_library(udf-service-stub) -target_compile_options(udf-service-stub PRIVATE +add_library(udf-service-stub INTERFACE) +target_link_libraries(udf-service-stub INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + yql-public-udf +) + +add_global_library_for(udf-service-stub.global udf-service-stub) +target_compile_options(udf-service-stub.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(udf-service-stub PUBLIC +target_link_libraries(udf-service-stub.global PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil yql-public-udf ) -target_sources(udf-service-stub PRIVATE +target_sources(udf-service-stub.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/stub/udf_service.cpp ) diff --git a/ydb/library/yql/public/udf/service/stub/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/udf/service/stub/CMakeLists.linux-x86_64.txt index fdf4e0405fd1..10051ef29fb6 100644 --- a/ydb/library/yql/public/udf/service/stub/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/udf/service/stub/CMakeLists.linux-x86_64.txt @@ -7,16 +7,24 @@ -add_library(udf-service-stub) -target_compile_options(udf-service-stub PRIVATE +add_library(udf-service-stub INTERFACE) +target_link_libraries(udf-service-stub INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + yql-public-udf +) + +add_global_library_for(udf-service-stub.global udf-service-stub) +target_compile_options(udf-service-stub.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(udf-service-stub PUBLIC +target_link_libraries(udf-service-stub.global PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil yql-public-udf ) -target_sources(udf-service-stub PRIVATE +target_sources(udf-service-stub.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/stub/udf_service.cpp ) diff --git a/ydb/library/yql/public/udf/service/stub/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/udf/service/stub/CMakeLists.windows-x86_64.txt index dca6cc3d42b5..68cbe171d8a4 100644 --- a/ydb/library/yql/public/udf/service/stub/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/udf/service/stub/CMakeLists.windows-x86_64.txt @@ -7,15 +7,22 @@ -add_library(udf-service-stub) -target_compile_options(udf-service-stub PRIVATE +add_library(udf-service-stub INTERFACE) +target_link_libraries(udf-service-stub INTERFACE + contrib-libs-cxxsupp + yutil + yql-public-udf +) + +add_global_library_for(udf-service-stub.global udf-service-stub) +target_compile_options(udf-service-stub.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(udf-service-stub PUBLIC +target_link_libraries(udf-service-stub.global PUBLIC contrib-libs-cxxsupp yutil yql-public-udf ) -target_sources(udf-service-stub PRIVATE +target_sources(udf-service-stub.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/stub/udf_service.cpp ) diff --git a/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.darwin-arm64.txt index 83f4698355c6..e8e9310f775f 100644 --- a/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.darwin-arm64.txt @@ -7,16 +7,24 @@ -add_library(udf-service-terminate_policy) -target_compile_options(udf-service-terminate_policy PRIVATE +add_library(udf-service-terminate_policy INTERFACE) +target_link_libraries(udf-service-terminate_policy INTERFACE + contrib-libs-cxxsupp + yutil + library-yql-minikql + yql-public-udf +) + +add_global_library_for(udf-service-terminate_policy.global udf-service-terminate_policy) +target_compile_options(udf-service-terminate_policy.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(udf-service-terminate_policy PUBLIC +target_link_libraries(udf-service-terminate_policy.global PUBLIC contrib-libs-cxxsupp yutil library-yql-minikql yql-public-udf ) -target_sources(udf-service-terminate_policy PRIVATE +target_sources(udf-service-terminate_policy.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/terminate_policy/udf_service.cpp ) diff --git a/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.darwin-x86_64.txt index 83f4698355c6..e8e9310f775f 100644 --- a/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.darwin-x86_64.txt @@ -7,16 +7,24 @@ -add_library(udf-service-terminate_policy) -target_compile_options(udf-service-terminate_policy PRIVATE +add_library(udf-service-terminate_policy INTERFACE) +target_link_libraries(udf-service-terminate_policy INTERFACE + contrib-libs-cxxsupp + yutil + library-yql-minikql + yql-public-udf +) + +add_global_library_for(udf-service-terminate_policy.global udf-service-terminate_policy) +target_compile_options(udf-service-terminate_policy.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(udf-service-terminate_policy PUBLIC +target_link_libraries(udf-service-terminate_policy.global PUBLIC contrib-libs-cxxsupp yutil library-yql-minikql yql-public-udf ) -target_sources(udf-service-terminate_policy PRIVATE +target_sources(udf-service-terminate_policy.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/terminate_policy/udf_service.cpp ) diff --git a/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.linux-aarch64.txt index bb9ae9269713..2034704ce19c 100644 --- a/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.linux-aarch64.txt @@ -7,17 +7,26 @@ -add_library(udf-service-terminate_policy) -target_compile_options(udf-service-terminate_policy PRIVATE +add_library(udf-service-terminate_policy INTERFACE) +target_link_libraries(udf-service-terminate_policy INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-yql-minikql + yql-public-udf +) + +add_global_library_for(udf-service-terminate_policy.global udf-service-terminate_policy) +target_compile_options(udf-service-terminate_policy.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(udf-service-terminate_policy PUBLIC +target_link_libraries(udf-service-terminate_policy.global PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil library-yql-minikql yql-public-udf ) -target_sources(udf-service-terminate_policy PRIVATE +target_sources(udf-service-terminate_policy.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/terminate_policy/udf_service.cpp ) diff --git a/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.linux-x86_64.txt index bb9ae9269713..2034704ce19c 100644 --- a/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.linux-x86_64.txt @@ -7,17 +7,26 @@ -add_library(udf-service-terminate_policy) -target_compile_options(udf-service-terminate_policy PRIVATE +add_library(udf-service-terminate_policy INTERFACE) +target_link_libraries(udf-service-terminate_policy INTERFACE + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-yql-minikql + yql-public-udf +) + +add_global_library_for(udf-service-terminate_policy.global udf-service-terminate_policy) +target_compile_options(udf-service-terminate_policy.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(udf-service-terminate_policy PUBLIC +target_link_libraries(udf-service-terminate_policy.global PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil library-yql-minikql yql-public-udf ) -target_sources(udf-service-terminate_policy PRIVATE +target_sources(udf-service-terminate_policy.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/terminate_policy/udf_service.cpp ) diff --git a/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.windows-x86_64.txt index 83f4698355c6..e8e9310f775f 100644 --- a/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/udf/service/terminate_policy/CMakeLists.windows-x86_64.txt @@ -7,16 +7,24 @@ -add_library(udf-service-terminate_policy) -target_compile_options(udf-service-terminate_policy PRIVATE +add_library(udf-service-terminate_policy INTERFACE) +target_link_libraries(udf-service-terminate_policy INTERFACE + contrib-libs-cxxsupp + yutil + library-yql-minikql + yql-public-udf +) + +add_global_library_for(udf-service-terminate_policy.global udf-service-terminate_policy) +target_compile_options(udf-service-terminate_policy.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(udf-service-terminate_policy PUBLIC +target_link_libraries(udf-service-terminate_policy.global PUBLIC contrib-libs-cxxsupp yutil library-yql-minikql yql-public-udf ) -target_sources(udf-service-terminate_policy PRIVATE +target_sources(udf-service-terminate_policy.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/service/terminate_policy/udf_service.cpp ) diff --git a/ydb/library/yql/public/udf/tz/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/tz/CMakeLists.darwin-arm64.txt index 764f26f8b150..6b03da991044 100644 --- a/ydb/library/yql/public/udf/tz/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/udf/tz/CMakeLists.darwin-arm64.txt @@ -14,5 +14,6 @@ target_link_libraries(public-udf-tz PUBLIC yutil ) target_sources(public-udf-tz PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/tz/udf_tz.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/tz/udf_tz.cpp ) diff --git a/ydb/library/yql/public/udf/tz/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/udf/tz/CMakeLists.darwin-x86_64.txt index 764f26f8b150..6b03da991044 100644 --- a/ydb/library/yql/public/udf/tz/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/udf/tz/CMakeLists.darwin-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(public-udf-tz PUBLIC yutil ) target_sources(public-udf-tz PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/tz/udf_tz.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/tz/udf_tz.cpp ) diff --git a/ydb/library/yql/public/udf/tz/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/udf/tz/CMakeLists.linux-aarch64.txt index 85f78011a685..d3df14d5d59e 100644 --- a/ydb/library/yql/public/udf/tz/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/udf/tz/CMakeLists.linux-aarch64.txt @@ -15,5 +15,6 @@ target_link_libraries(public-udf-tz PUBLIC yutil ) target_sources(public-udf-tz PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/tz/udf_tz.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/tz/udf_tz.cpp ) diff --git a/ydb/library/yql/public/udf/tz/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/udf/tz/CMakeLists.linux-x86_64.txt index 85f78011a685..d3df14d5d59e 100644 --- a/ydb/library/yql/public/udf/tz/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/udf/tz/CMakeLists.linux-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(public-udf-tz PUBLIC yutil ) target_sources(public-udf-tz PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/tz/udf_tz.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/tz/udf_tz.cpp ) diff --git a/ydb/library/yql/public/udf/tz/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/udf/tz/CMakeLists.windows-x86_64.txt index 764f26f8b150..6b03da991044 100644 --- a/ydb/library/yql/public/udf/tz/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/udf/tz/CMakeLists.windows-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(public-udf-tz PUBLIC yutil ) target_sources(public-udf-tz PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/tz/udf_tz.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/tz/udf_tz.cpp ) diff --git a/ydb/library/yql/public/udf/tz/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/tz/ut/CMakeLists.darwin-arm64.txt index 5008efd00001..c3087d57e4bb 100644 --- a/ydb/library/yql/public/udf/tz/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/udf/tz/ut/CMakeLists.darwin-arm64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/udf/tz/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/udf/tz/ut/CMakeLists.darwin-x86_64.txt index a26f52dd9861..5d8d8a54bb3a 100644 --- a/ydb/library/yql/public/udf/tz/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/udf/tz/ut/CMakeLists.darwin-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/udf/tz/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/udf/tz/ut/CMakeLists.linux-aarch64.txt index de01319ee970..347bc758039e 100644 --- a/ydb/library/yql/public/udf/tz/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/udf/tz/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-public-udf-tz-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-public-udf-tz-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/tz/udf_tz_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/udf/tz/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/udf/tz/ut/CMakeLists.linux-x86_64.txt index d7f98a2a6c23..46c8d6d3761a 100644 --- a/ydb/library/yql/public/udf/tz/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/udf/tz/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-public-udf-tz-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-public-udf-tz-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/tz/udf_tz_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/udf/tz/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/udf/tz/ut/CMakeLists.windows-x86_64.txt index fa8472deae75..9b70f9b63145 100644 --- a/ydb/library/yql/public/udf/tz/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/udf/tz/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/udf/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/public/udf/ut/CMakeLists.darwin-arm64.txt index 29683f107691..5be8e033417d 100644 --- a/ydb/library/yql/public/udf/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/public/udf/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-library-yql-public-udf-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-public-udf-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/udf/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/public/udf/ut/CMakeLists.darwin-x86_64.txt index ee73b96b6022..fad56e22856f 100644 --- a/ydb/library/yql/public/udf/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/public/udf/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-library-yql-public-udf-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-public-udf-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/udf/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/public/udf/ut/CMakeLists.linux-aarch64.txt index 635c2a5e757e..83073ea16a48 100644 --- a/ydb/library/yql/public/udf/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/public/udf/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-library-yql-public-udf-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-public-udf-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/udf/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/public/udf/ut/CMakeLists.linux-x86_64.txt index 77be018e0215..e8e7b16c3c0e 100644 --- a/ydb/library/yql/public/udf/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/public/udf/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-library-yql-public-udf-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-public-udf-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udf_counter_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/public/udf/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/public/udf/ut/CMakeLists.windows-x86_64.txt index 23cf79558120..2ea653195f9f 100644 --- a/ydb/library/yql/public/udf/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/public/udf/ut/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/pg/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/pg/CMakeLists.darwin-arm64.txt index 709a61367801..c2a030de50f2 100644 --- a/ydb/library/yql/sql/pg/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/sql/pg/CMakeLists.darwin-arm64.txt @@ -13,7 +13,6 @@ target_compile_options(yql-sql-pg PRIVATE -Dpalloc0=yql_palloc0 -Dpfree=yql_pfree -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> ) target_include_directories(yql-sql-pg PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include diff --git a/ydb/library/yql/sql/pg/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/sql/pg/CMakeLists.darwin-x86_64.txt index 709a61367801..c2a030de50f2 100644 --- a/ydb/library/yql/sql/pg/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/sql/pg/CMakeLists.darwin-x86_64.txt @@ -13,7 +13,6 @@ target_compile_options(yql-sql-pg PRIVATE -Dpalloc0=yql_palloc0 -Dpfree=yql_pfree -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> ) target_include_directories(yql-sql-pg PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include diff --git a/ydb/library/yql/sql/pg/CMakeLists.linux-aarch64.txt b/ydb/library/yql/sql/pg/CMakeLists.linux-aarch64.txt index a158724b0f62..72f5cd10eda6 100644 --- a/ydb/library/yql/sql/pg/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/sql/pg/CMakeLists.linux-aarch64.txt @@ -13,7 +13,6 @@ target_compile_options(yql-sql-pg PRIVATE -Dpalloc0=yql_palloc0 -Dpfree=yql_pfree -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> ) target_include_directories(yql-sql-pg PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include diff --git a/ydb/library/yql/sql/pg/CMakeLists.linux-x86_64.txt b/ydb/library/yql/sql/pg/CMakeLists.linux-x86_64.txt index a158724b0f62..72f5cd10eda6 100644 --- a/ydb/library/yql/sql/pg/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/sql/pg/CMakeLists.linux-x86_64.txt @@ -13,7 +13,6 @@ target_compile_options(yql-sql-pg PRIVATE -Dpalloc0=yql_palloc0 -Dpfree=yql_pfree -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> ) target_include_directories(yql-sql-pg PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include diff --git a/ydb/library/yql/sql/pg/CMakeLists.windows-x86_64.txt b/ydb/library/yql/sql/pg/CMakeLists.windows-x86_64.txt index 25a4744632c3..97618be93e6b 100644 --- a/ydb/library/yql/sql/pg/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/sql/pg/CMakeLists.windows-x86_64.txt @@ -16,7 +16,6 @@ target_compile_options(yql-sql-pg PRIVATE -Dfstat=microsoft_native_fstat -Dstat=microsoft_native_stat -DUSE_CURRENT_UDF_ABI_VERSION - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> ) target_include_directories(yql-sql-pg PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include diff --git a/ydb/library/yql/sql/pg/pg_sql.cpp b/ydb/library/yql/sql/pg/pg_sql.cpp index 723b77ab518d..013cd63ec3e1 100644 --- a/ydb/library/yql/sql/pg/pg_sql.cpp +++ b/ydb/library/yql/sql/pg/pg_sql.cpp @@ -222,6 +222,7 @@ class TConverter : public IPGParseEvents { bool AllowOver = false; bool AllowReturnSet = false; bool AllowSubLinks = false; + bool AutoParametrizeEnabled = true; TVector<TAstNode*>* WindowItems = nullptr; TString Scope; }; @@ -1702,6 +1703,7 @@ class TConverter : public IPGParseEvents { TExprSettings settings; settings.AllowColumns = false; settings.Scope = "DEFAULT"; + settings.AutoParametrizeEnabled = false; cinfo.Default = ParseExpr(constraintNode->raw_expr, settings); if (!cinfo.Default) { return false; @@ -3094,7 +3096,7 @@ class TConverter : public IPGParseEvents { ? L(A("PgType"), QA(TPgConst::ToString(valueNType->type))) : L(A("PgType"), QA("unknown")); - if (Settings.AutoParametrizeEnabled && !Settings.AutoParametrizeExprDisabledScopes.contains(settings.Scope)) { + if (Settings.AutoParametrizeEnabled && settings.AutoParametrizeEnabled) { return AutoParametrizeConst(std::move(valueNType.GetRef()), pgTypeNode); } diff --git a/ydb/library/yql/sql/pg/pg_sql_autoparam_ut.cpp b/ydb/library/yql/sql/pg/pg_sql_autoparam_ut.cpp index 1de71ead7df9..01d674db3ec5 100644 --- a/ydb/library/yql/sql/pg/pg_sql_autoparam_ut.cpp +++ b/ydb/library/yql/sql/pg/pg_sql_autoparam_ut.cpp @@ -13,14 +13,13 @@ Y_UNIT_TEST_SUITE(PgSqlParsingAutoparam) { UNIT_ASSERT_C(res.Issues.Empty(), "Failed to parse statement, issues: " + res.Issues.ToString()); UNIT_ASSERT_C(res.PgAutoParamValues.Empty(), "Expected no auto parametrization"); } - - Y_UNIT_TEST(AutoParamValues_DifferentTypes) { + + Y_UNIT_TEST(AutoParamValues_NoParametersWithDefaults) { TTranslationSettings settings; settings.AutoParametrizeEnabled = true; settings.AutoParametrizeValuesStmt = true; - settings.AutoParametrizeExprDisabledScopes = {"VALUES"}; auto res = SqlToYqlWithMode( - R"(insert into plato.Output values (1,2,3), (1,2.0,3))", + R"(CREATE TABLE t (a int PRIMARY KEY, b int DEFAULT 0))", NSQLTranslation::ESqlMode::QUERY, 10, {}, @@ -33,10 +32,10 @@ Y_UNIT_TEST_SUITE(PgSqlParsingAutoparam) { } using TUsedParamsGetter = std::function<void(TSet<TString>&, const NYql::TAstNode& node)>; - + void GetUsedParamsInValues(TSet<TString>& usedParams, const NYql::TAstNode& node) { - const bool isPgSetItem = - node.IsListOfSize(2) && node.GetChild(0)->IsAtom() + const bool isPgSetItem = + node.IsListOfSize(2) && node.GetChild(0)->IsAtom() && node.GetChild(0)->GetContent() == "PgSetItem"; if (!isPgSetItem) { return; @@ -45,7 +44,7 @@ Y_UNIT_TEST_SUITE(PgSqlParsingAutoparam) { for (const auto* pgOption : pgSetItemOptions->GetChildren()) { const bool isQuotedList = - pgOption->IsListOfSize(2) && pgOption->GetChild(0)->IsAtom() + pgOption->IsListOfSize(2) && pgOption->GetChild(0)->IsAtom() && pgOption->GetChild(0)->GetContent() == "quote"; if (!isQuotedList) { continue; @@ -54,7 +53,7 @@ Y_UNIT_TEST_SUITE(PgSqlParsingAutoparam) { const auto* option = pgOption->GetChild(1); const auto* optionName = option->GetChild(0); - const bool isValuesNode = + const bool isValuesNode = optionName->IsListOfSize(2) && optionName->GetChild(0)->IsAtom() && optionName->GetChild(0)->GetContent() == "quote" && optionName->GetChild(1)->GetContent() == "values"; @@ -68,11 +67,10 @@ Y_UNIT_TEST_SUITE(PgSqlParsingAutoparam) { } } - void TestAutoParam(const TString& query, const THashMap<TString, TString>& expectedParamNameToJsonYdbVal, const TMap<TString, TString>& expectedParamTypes, TUsedParamsGetter usedParamsGetter, THashSet<TString> disabledParametrizeScopes = {}) { + void TestAutoParam(const TString& query, const THashMap<TString, TString>& expectedParamNameToJsonYdbVal, const TMap<TString, TString>& expectedParamTypes, TUsedParamsGetter usedParamsGetter) { TTranslationSettings settings; settings.AutoParametrizeEnabled = true; settings.AutoParametrizeValuesStmt = true; - settings.AutoParametrizeExprDisabledScopes = disabledParametrizeScopes; auto res = SqlToYqlWithMode( query, NSQLTranslation::ESqlMode::QUERY, @@ -87,9 +85,9 @@ Y_UNIT_TEST_SUITE(PgSqlParsingAutoparam) { TSet<TString> declaredParams; TMap<TString, TString> actualParamTypes; VisitAstNodes(*res.Root, [&declaredParams, &actualParamTypes] (const NYql::TAstNode& node) { - const bool isDeclareNode = - node.IsList() && node.GetChildrenCount() > 0 - && node.GetChild(0)->IsAtom() + const bool isDeclareNode = + node.IsList() && node.GetChildrenCount() > 0 + && node.GetChild(0)->IsAtom() && node.GetChild(0)->GetContent() == "declare"; if (isDeclareNode) { UNIT_ASSERT_VALUES_EQUAL(node.GetChildrenCount(), 3); @@ -114,7 +112,7 @@ Y_UNIT_TEST_SUITE(PgSqlParsingAutoparam) { auto actualParam = res.PgAutoParamValues.GetRef()[expectedParamName]; UNIT_ASSERT_STRINGS_EQUAL(expectedParam.ShortUtf8DebugString(), actualParam.ShortUtf8DebugString()); - UNIT_ASSERT_C(declaredParams.contains(expectedParamName), + UNIT_ASSERT_C(declaredParams.contains(expectedParamName), "Declared params don't contain expected param name: " << expectedParamName); } @@ -184,7 +182,7 @@ Y_UNIT_TEST_SUITE(PgSqlParsingAutoparam) { TString type = "(ListType (TupleType (PgType 'unknown) (PgType 'int4)))"; TestAutoParam(query, {{"a0", expectedParamJson}}, {{"a0", type}}, GetUsedParamsInValues); } - + Y_UNIT_TEST(AutoParamConsts_Where) { TString query = R"( select * from plato.Output where key > 1 @@ -201,8 +199,8 @@ Y_UNIT_TEST_SUITE(PgSqlParsingAutoparam) { return; } const auto quotedVal = maybeQuote.GetRef(); - const bool isWhere = - quotedVal->IsListOfSize(2) && quotedVal->GetChild(1)->IsListOfSize(3) + const bool isWhere = + quotedVal->IsListOfSize(2) && quotedVal->GetChild(1)->IsListOfSize(3) && quotedVal->GetChild(1)->IsListOfSize(3) && quotedVal->GetChild(1)->GetChild(0)->IsAtom() && quotedVal->GetChild(1)->GetChild(0)->GetContent() == "PgWhere"; @@ -224,7 +222,7 @@ Y_UNIT_TEST_SUITE(PgSqlParsingAutoparam) { TString type = "(PgType 'int4)"; TestAutoParam(query, {{"a0", expectedParamJson}}, {{"a0", type}}, usedInWhereComp); } - + Y_UNIT_TEST(AutoParamConsts_Select) { TString query = R"( select 1, 'test', B'10001' @@ -250,7 +248,7 @@ Y_UNIT_TEST_SUITE(PgSqlParsingAutoparam) { {"a2", "(PgType 'bit)"}, }; TestAutoParam(query, { - {"a0", expectedParamJsonInt4}, + {"a0", expectedParamJsonInt4}, {"a1", expectedParamJsonText}, {"a2", expectedParamJsonBit}, }, expectedParamTypes, dummyGetter); @@ -270,7 +268,7 @@ Y_UNIT_TEST_SUITE(PgSqlParsingAutoparam) { const TUsedParamsGetter dummyGetter = [] (TSet<TString>& usedParams, const NYql::TAstNode&) { usedParams = {"a0", "a1"}; }; - TestAutoParam(query, {{"a0", expectedParamJsonInt4}, {"a1", expectedParamJsonText}}, paramToType, dummyGetter, {}); + TestAutoParam(query, {{"a0", expectedParamJsonInt4}, {"a1", expectedParamJsonText}}, paramToType, dummyGetter); } } diff --git a/ydb/library/yql/sql/pg/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/pg/ut/CMakeLists.darwin-arm64.txt index 56205d86ef37..42b46372a651 100644 --- a/ydb/library/yql/sql/pg/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/sql/pg/ut/CMakeLists.darwin-arm64.txt @@ -8,9 +8,6 @@ add_executable(ydb-library-yql-sql-pg-ut) -target_compile_options(ydb-library-yql-sql-pg-ut PRIVATE - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> -) target_include_directories(ydb-library-yql-sql-pg-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include @@ -29,8 +26,6 @@ target_link_options(ydb-library-yql-sql-pg-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-sql-pg-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg/pg_sql_ut.cpp @@ -63,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/pg/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/sql/pg/ut/CMakeLists.darwin-x86_64.txt index a0996ad8f0dc..570919556626 100644 --- a/ydb/library/yql/sql/pg/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/sql/pg/ut/CMakeLists.darwin-x86_64.txt @@ -8,9 +8,6 @@ add_executable(ydb-library-yql-sql-pg-ut) -target_compile_options(ydb-library-yql-sql-pg-ut PRIVATE - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> -) target_include_directories(ydb-library-yql-sql-pg-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include @@ -30,8 +27,6 @@ target_link_options(ydb-library-yql-sql-pg-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-sql-pg-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg/pg_sql_ut.cpp @@ -64,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/pg/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/sql/pg/ut/CMakeLists.linux-aarch64.txt index 578b34964149..31be5b6ca5ba 100644 --- a/ydb/library/yql/sql/pg/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/sql/pg/ut/CMakeLists.linux-aarch64.txt @@ -8,9 +8,6 @@ add_executable(ydb-library-yql-sql-pg-ut) -target_compile_options(ydb-library-yql-sql-pg-ut PRIVATE - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> -) target_include_directories(ydb-library-yql-sql-pg-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include @@ -32,9 +29,6 @@ target_link_options(ydb-library-yql-sql-pg-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-sql-pg-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg/pg_sql_ut.cpp @@ -67,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/pg/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/sql/pg/ut/CMakeLists.linux-x86_64.txt index 98c6e63806a1..d27db26fe267 100644 --- a/ydb/library/yql/sql/pg/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/sql/pg/ut/CMakeLists.linux-x86_64.txt @@ -8,9 +8,6 @@ add_executable(ydb-library-yql-sql-pg-ut) -target_compile_options(ydb-library-yql-sql-pg-ut PRIVATE - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> -) target_include_directories(ydb-library-yql-sql-pg-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include @@ -33,9 +30,6 @@ target_link_options(ydb-library-yql-sql-pg-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-sql-pg-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg/pg_sql_ut.cpp @@ -68,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/pg/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/sql/pg/ut/CMakeLists.windows-x86_64.txt index 1f3abeea56af..55b44b70e884 100644 --- a/ydb/library/yql/sql/pg/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/sql/pg/ut/CMakeLists.windows-x86_64.txt @@ -8,9 +8,6 @@ add_executable(ydb-library-yql-sql-pg-ut) -target_compile_options(ydb-library-yql-sql-pg-ut PRIVATE - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> -) target_include_directories(ydb-library-yql-sql-pg-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/pg ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/postgresql/src/include @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/settings/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/settings/CMakeLists.darwin-arm64.txt index ccb58a596bd4..4849acab3c9a 100644 --- a/ydb/library/yql/sql/settings/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/sql/settings/CMakeLists.darwin-arm64.txt @@ -14,6 +14,7 @@ target_link_libraries(yql-sql-settings PUBLIC cpp-deprecated-split library-cpp-json yql-core-issue + yql-core-pg_settings core-issue-protos library-yql-utils ) diff --git a/ydb/library/yql/sql/settings/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/sql/settings/CMakeLists.darwin-x86_64.txt index ccb58a596bd4..4849acab3c9a 100644 --- a/ydb/library/yql/sql/settings/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/sql/settings/CMakeLists.darwin-x86_64.txt @@ -14,6 +14,7 @@ target_link_libraries(yql-sql-settings PUBLIC cpp-deprecated-split library-cpp-json yql-core-issue + yql-core-pg_settings core-issue-protos library-yql-utils ) diff --git a/ydb/library/yql/sql/settings/CMakeLists.linux-aarch64.txt b/ydb/library/yql/sql/settings/CMakeLists.linux-aarch64.txt index 115422bd4a62..ee788e907fd4 100644 --- a/ydb/library/yql/sql/settings/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/sql/settings/CMakeLists.linux-aarch64.txt @@ -15,6 +15,7 @@ target_link_libraries(yql-sql-settings PUBLIC cpp-deprecated-split library-cpp-json yql-core-issue + yql-core-pg_settings core-issue-protos library-yql-utils ) diff --git a/ydb/library/yql/sql/settings/CMakeLists.linux-x86_64.txt b/ydb/library/yql/sql/settings/CMakeLists.linux-x86_64.txt index 115422bd4a62..ee788e907fd4 100644 --- a/ydb/library/yql/sql/settings/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/sql/settings/CMakeLists.linux-x86_64.txt @@ -15,6 +15,7 @@ target_link_libraries(yql-sql-settings PUBLIC cpp-deprecated-split library-cpp-json yql-core-issue + yql-core-pg_settings core-issue-protos library-yql-utils ) diff --git a/ydb/library/yql/sql/settings/CMakeLists.windows-x86_64.txt b/ydb/library/yql/sql/settings/CMakeLists.windows-x86_64.txt index ccb58a596bd4..4849acab3c9a 100644 --- a/ydb/library/yql/sql/settings/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/sql/settings/CMakeLists.windows-x86_64.txt @@ -14,6 +14,7 @@ target_link_libraries(yql-sql-settings PUBLIC cpp-deprecated-split library-cpp-json yql-core-issue + yql-core-pg_settings core-issue-protos library-yql-utils ) diff --git a/ydb/library/yql/sql/settings/translation_settings.h b/ydb/library/yql/sql/settings/translation_settings.h index 2dad2e646dda..4626b47ed653 100644 --- a/ydb/library/yql/sql/settings/translation_settings.h +++ b/ydb/library/yql/sql/settings/translation_settings.h @@ -27,7 +27,7 @@ namespace NSQLTranslation { }; enum class EBindingsMode { - // raise error + // raise error DISABLED, // classic support for bindings ENABLED, @@ -111,7 +111,6 @@ namespace NSQLTranslation { TVector<ui32> PgParameterTypeOids; bool AutoParametrizeEnabled = false; bool AutoParametrizeValuesStmt = false; - THashSet<TString> AutoParametrizeExprDisabledScopes = {}; TGUCSettings::TPtr GUCSettings = std::make_shared<TGUCSettings>(); }; diff --git a/ydb/library/yql/sql/v0/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v0/CMakeLists.darwin-arm64.txt index 3a805a5ebcab..1a6afee835e3 100644 --- a/ydb/library/yql/sql/v0/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/sql/v0/CMakeLists.darwin-arm64.txt @@ -33,6 +33,7 @@ target_link_libraries(yql-sql-v0 PUBLIC yql-parser-proto_ast parser-proto_ast-collect_issues proto_ast-gen-v0 + proto_ast-gen-v0_proto_split tools-enum_parser-enum_serialization_runtime ) target_sources(yql-sql-v0 PRIVATE diff --git a/ydb/library/yql/sql/v0/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/sql/v0/CMakeLists.darwin-x86_64.txt index 3a805a5ebcab..1a6afee835e3 100644 --- a/ydb/library/yql/sql/v0/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/sql/v0/CMakeLists.darwin-x86_64.txt @@ -33,6 +33,7 @@ target_link_libraries(yql-sql-v0 PUBLIC yql-parser-proto_ast parser-proto_ast-collect_issues proto_ast-gen-v0 + proto_ast-gen-v0_proto_split tools-enum_parser-enum_serialization_runtime ) target_sources(yql-sql-v0 PRIVATE diff --git a/ydb/library/yql/sql/v0/CMakeLists.linux-aarch64.txt b/ydb/library/yql/sql/v0/CMakeLists.linux-aarch64.txt index 52c5ad75fc23..4055fd632990 100644 --- a/ydb/library/yql/sql/v0/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/sql/v0/CMakeLists.linux-aarch64.txt @@ -34,6 +34,7 @@ target_link_libraries(yql-sql-v0 PUBLIC yql-parser-proto_ast parser-proto_ast-collect_issues proto_ast-gen-v0 + proto_ast-gen-v0_proto_split tools-enum_parser-enum_serialization_runtime ) target_sources(yql-sql-v0 PRIVATE diff --git a/ydb/library/yql/sql/v0/CMakeLists.linux-x86_64.txt b/ydb/library/yql/sql/v0/CMakeLists.linux-x86_64.txt index 52c5ad75fc23..4055fd632990 100644 --- a/ydb/library/yql/sql/v0/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/sql/v0/CMakeLists.linux-x86_64.txt @@ -34,6 +34,7 @@ target_link_libraries(yql-sql-v0 PUBLIC yql-parser-proto_ast parser-proto_ast-collect_issues proto_ast-gen-v0 + proto_ast-gen-v0_proto_split tools-enum_parser-enum_serialization_runtime ) target_sources(yql-sql-v0 PRIVATE diff --git a/ydb/library/yql/sql/v0/CMakeLists.windows-x86_64.txt b/ydb/library/yql/sql/v0/CMakeLists.windows-x86_64.txt index 3a805a5ebcab..1a6afee835e3 100644 --- a/ydb/library/yql/sql/v0/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/sql/v0/CMakeLists.windows-x86_64.txt @@ -33,6 +33,7 @@ target_link_libraries(yql-sql-v0 PUBLIC yql-parser-proto_ast parser-proto_ast-collect_issues proto_ast-gen-v0 + proto_ast-gen-v0_proto_split tools-enum_parser-enum_serialization_runtime ) target_sources(yql-sql-v0 PRIVATE diff --git a/ydb/library/yql/sql/v0/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v0/ut/CMakeLists.darwin-arm64.txt index 8f0f52496952..7efc62b43bfe 100644 --- a/ydb/library/yql/sql/v0/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/sql/v0/ut/CMakeLists.darwin-arm64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-library-yql-sql-v0-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-sql-v0-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/sql_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/v0/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/sql/v0/ut/CMakeLists.darwin-x86_64.txt index dab39fc9adbe..710c6f271250 100644 --- a/ydb/library/yql/sql/v0/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/sql/v0/ut/CMakeLists.darwin-x86_64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-library-yql-sql-v0-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-sql-v0-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/sql_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/v0/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/sql/v0/ut/CMakeLists.linux-aarch64.txt index 69099ea12003..1a5a296bbaa4 100644 --- a/ydb/library/yql/sql/v0/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/sql/v0/ut/CMakeLists.linux-aarch64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-library-yql-sql-v0-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-sql-v0-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/sql_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/v0/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/sql/v0/ut/CMakeLists.linux-x86_64.txt index d39e61187c32..1c418366ef77 100644 --- a/ydb/library/yql/sql/v0/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/sql/v0/ut/CMakeLists.linux-x86_64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-library-yql-sql-v0-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-sql-v0-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v0/sql_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/v0/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/sql/v0/ut/CMakeLists.windows-x86_64.txt index e8b26a38f798..fd3a9e5ccba0 100644 --- a/ydb/library/yql/sql/v0/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/sql/v0/ut/CMakeLists.windows-x86_64.txt @@ -49,6 +49,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/v1/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v1/CMakeLists.darwin-arm64.txt index 6e0ae494e7da..b34e759b4cc7 100644 --- a/ydb/library/yql/sql/v1/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/sql/v1/CMakeLists.darwin-arm64.txt @@ -53,7 +53,7 @@ target_link_libraries(yql-sql-v1 PUBLIC parser-proto_ast-collect_issues proto_ast-gen-v1 proto_ast-gen-v1_ansi - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split yql-parser-pg_catalog sql-v1-lexer sql-v1-proto_parser 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 6e0ae494e7da..b34e759b4cc7 100644 --- a/ydb/library/yql/sql/v1/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/sql/v1/CMakeLists.darwin-x86_64.txt @@ -53,7 +53,7 @@ target_link_libraries(yql-sql-v1 PUBLIC parser-proto_ast-collect_issues proto_ast-gen-v1 proto_ast-gen-v1_ansi - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split yql-parser-pg_catalog sql-v1-lexer sql-v1-proto_parser diff --git a/ydb/library/yql/sql/v1/CMakeLists.linux-aarch64.txt b/ydb/library/yql/sql/v1/CMakeLists.linux-aarch64.txt index 17cb39be0ffa..7deea879f42a 100644 --- a/ydb/library/yql/sql/v1/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/sql/v1/CMakeLists.linux-aarch64.txt @@ -54,7 +54,7 @@ target_link_libraries(yql-sql-v1 PUBLIC parser-proto_ast-collect_issues proto_ast-gen-v1 proto_ast-gen-v1_ansi - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split yql-parser-pg_catalog sql-v1-lexer sql-v1-proto_parser 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 17cb39be0ffa..7deea879f42a 100644 --- a/ydb/library/yql/sql/v1/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/sql/v1/CMakeLists.linux-x86_64.txt @@ -54,7 +54,7 @@ target_link_libraries(yql-sql-v1 PUBLIC parser-proto_ast-collect_issues proto_ast-gen-v1 proto_ast-gen-v1_ansi - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split yql-parser-pg_catalog sql-v1-lexer sql-v1-proto_parser 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 6e0ae494e7da..b34e759b4cc7 100644 --- a/ydb/library/yql/sql/v1/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/sql/v1/CMakeLists.windows-x86_64.txt @@ -53,7 +53,7 @@ target_link_libraries(yql-sql-v1 PUBLIC parser-proto_ast-collect_issues proto_ast-gen-v1 proto_ast-gen-v1_ansi - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split yql-parser-pg_catalog sql-v1-lexer sql-v1-proto_parser diff --git a/ydb/library/yql/sql/v1/SQLv1.g.in b/ydb/library/yql/sql/v1/SQLv1.g.in index 9be5921ef070..e58e33c584b5 100644 --- a/ydb/library/yql/sql/v1/SQLv1.g.in +++ b/ydb/library/yql/sql/v1/SQLv1.g.in @@ -623,7 +623,7 @@ object_features: object_feature | LPAREN object_feature (COMMA object_feature)* object_type_ref: an_id_or_type; -create_table_stmt: CREATE (OR REPLACE)? (TABLE | TABLESTORE | EXTERNAL TABLE) (IF NOT EXISTS)? simple_table_ref LPAREN create_table_entry (COMMA create_table_entry)* COMMA? RPAREN +create_table_stmt: CREATE (OR REPLACE)? (TABLE | TABLESTORE | EXTERNAL TABLE | TEMP TABLE | TEMPORARY TABLE) (IF NOT EXISTS)? simple_table_ref LPAREN create_table_entry (COMMA create_table_entry)* COMMA? RPAREN table_inherits? table_partition_by? with_table_settings? diff --git a/ydb/library/yql/sql/v1/format/sql_format_ut.cpp b/ydb/library/yql/sql/v1/format/sql_format_ut.cpp index cef8e235cc83..4952be3413b0 100644 --- a/ydb/library/yql/sql/v1/format/sql_format_ut.cpp +++ b/ydb/library/yql/sql/v1/format/sql_format_ut.cpp @@ -307,7 +307,9 @@ Y_UNIT_TEST_SUITE(CheckSqlFormatter) { ")\n" "PARTITION BY HASH (a, b, hash)\n" "WITH (tiering = 'some');\n"}, - {"create table if not exists user(user int32)", "CREATE TABLE IF NOT EXISTS user (\n\tuser int32\n);\n"} + {"create table if not exists user(user int32)", "CREATE TABLE IF NOT EXISTS user (\n\tuser int32\n);\n"}, + {"create temp table user(user int32)", "CREATE TEMP TABLE user (\n\tuser int32\n);\n"}, + {"create temporary table user(user int32)", "CREATE TEMPORARY TABLE user (\n\tuser int32\n);\n"} }; TSetup setup; diff --git a/ydb/library/yql/sql/v1/format/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v1/format/ut/CMakeLists.darwin-arm64.txt index 43eaa810dbe6..ad98664c073c 100644 --- a/ydb/library/yql/sql/v1/format/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/sql/v1/format/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-library-yql-sql-v1-format-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-sql-v1-format-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/format/sql_format_ut.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/v1/format/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/sql/v1/format/ut/CMakeLists.darwin-x86_64.txt index 4a924acf8715..c9ad2b0d5d5b 100644 --- a/ydb/library/yql/sql/v1/format/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/sql/v1/format/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-yql-sql-v1-format-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-sql-v1-format-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/format/sql_format_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/v1/format/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/sql/v1/format/ut/CMakeLists.linux-aarch64.txt index 9b78b99e8c03..4388eff41504 100644 --- a/ydb/library/yql/sql/v1/format/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/sql/v1/format/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-sql-v1-format-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-sql-v1-format-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/format/sql_format_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/v1/format/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/sql/v1/format/ut/CMakeLists.linux-x86_64.txt index d8fed6326eb6..aacebe32c49a 100644 --- a/ydb/library/yql/sql/v1/format/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/sql/v1/format/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-sql-v1-format-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-sql-v1-format-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/format/sql_format_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/v1/format/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/sql/v1/format/ut/CMakeLists.windows-x86_64.txt index c130d8785051..8875b096ca19 100644 --- a/ydb/library/yql/sql/v1/format/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/sql/v1/format/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/v1/lexer/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v1/lexer/CMakeLists.darwin-arm64.txt index 39f7d128eee3..798e95e2c919 100644 --- a/ydb/library/yql/sql/v1/lexer/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/sql/v1/lexer/CMakeLists.darwin-arm64.txt @@ -15,7 +15,7 @@ target_link_libraries(sql-v1-lexer PUBLIC yql-parser-proto_ast proto_ast-gen-v1 proto_ast-gen-v1_ansi - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(sql-v1-lexer PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/lexer/lexer.cpp diff --git a/ydb/library/yql/sql/v1/lexer/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/sql/v1/lexer/CMakeLists.darwin-x86_64.txt index 39f7d128eee3..798e95e2c919 100644 --- a/ydb/library/yql/sql/v1/lexer/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/sql/v1/lexer/CMakeLists.darwin-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(sql-v1-lexer PUBLIC yql-parser-proto_ast proto_ast-gen-v1 proto_ast-gen-v1_ansi - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(sql-v1-lexer PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/lexer/lexer.cpp diff --git a/ydb/library/yql/sql/v1/lexer/CMakeLists.linux-aarch64.txt b/ydb/library/yql/sql/v1/lexer/CMakeLists.linux-aarch64.txt index 88b5433a1ff2..9f096e47ee52 100644 --- a/ydb/library/yql/sql/v1/lexer/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/sql/v1/lexer/CMakeLists.linux-aarch64.txt @@ -16,7 +16,7 @@ target_link_libraries(sql-v1-lexer PUBLIC yql-parser-proto_ast proto_ast-gen-v1 proto_ast-gen-v1_ansi - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(sql-v1-lexer PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/lexer/lexer.cpp diff --git a/ydb/library/yql/sql/v1/lexer/CMakeLists.linux-x86_64.txt b/ydb/library/yql/sql/v1/lexer/CMakeLists.linux-x86_64.txt index 88b5433a1ff2..9f096e47ee52 100644 --- a/ydb/library/yql/sql/v1/lexer/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/sql/v1/lexer/CMakeLists.linux-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(sql-v1-lexer PUBLIC yql-parser-proto_ast proto_ast-gen-v1 proto_ast-gen-v1_ansi - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(sql-v1-lexer PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/lexer/lexer.cpp diff --git a/ydb/library/yql/sql/v1/lexer/CMakeLists.windows-x86_64.txt b/ydb/library/yql/sql/v1/lexer/CMakeLists.windows-x86_64.txt index 39f7d128eee3..798e95e2c919 100644 --- a/ydb/library/yql/sql/v1/lexer/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/sql/v1/lexer/CMakeLists.windows-x86_64.txt @@ -15,7 +15,7 @@ target_link_libraries(sql-v1-lexer PUBLIC yql-parser-proto_ast proto_ast-gen-v1 proto_ast-gen-v1_ansi - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(sql-v1-lexer PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/lexer/lexer.cpp diff --git a/ydb/library/yql/sql/v1/node.h b/ydb/library/yql/sql/v1/node.h index 8bb0ba2030bd..26c0d1d30aff 100644 --- a/ydb/library/yql/sql/v1/node.h +++ b/ydb/library/yql/sql/v1/node.h @@ -1046,6 +1046,7 @@ namespace NSQLTranslationV1 { TVector<TChangefeedDescription> Changefeeds; TTableSettings TableSettings; ETableType TableType = ETableType::Table; + bool Temporary = false; }; struct TAlterTableParameters { diff --git a/ydb/library/yql/sql/v1/perf/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v1/perf/CMakeLists.darwin-arm64.txt index c6361ac99be9..17f398c7776a 100644 --- a/ydb/library/yql/sql/v1/perf/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/sql/v1/perf/CMakeLists.darwin-arm64.txt @@ -20,8 +20,6 @@ target_link_options(perf PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(perf PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/perf/parse.cpp diff --git a/ydb/library/yql/sql/v1/perf/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/sql/v1/perf/CMakeLists.darwin-x86_64.txt index 72d47a87fddf..68fca80fafd6 100644 --- a/ydb/library/yql/sql/v1/perf/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/sql/v1/perf/CMakeLists.darwin-x86_64.txt @@ -21,8 +21,6 @@ target_link_options(perf PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(perf PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/perf/parse.cpp diff --git a/ydb/library/yql/sql/v1/perf/CMakeLists.linux-aarch64.txt b/ydb/library/yql/sql/v1/perf/CMakeLists.linux-aarch64.txt index 281da18021b5..ad17479a2f2a 100644 --- a/ydb/library/yql/sql/v1/perf/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/sql/v1/perf/CMakeLists.linux-aarch64.txt @@ -23,9 +23,6 @@ target_link_options(perf PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(perf PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/perf/parse.cpp diff --git a/ydb/library/yql/sql/v1/perf/CMakeLists.linux-x86_64.txt b/ydb/library/yql/sql/v1/perf/CMakeLists.linux-x86_64.txt index c7a3a02791e0..377df23e84ad 100644 --- a/ydb/library/yql/sql/v1/perf/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/sql/v1/perf/CMakeLists.linux-x86_64.txt @@ -24,9 +24,6 @@ target_link_options(perf PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(perf PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/perf/parse.cpp diff --git a/ydb/library/yql/sql/v1/proto_parser/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v1/proto_parser/CMakeLists.darwin-arm64.txt index 349b52115a91..5534498f55b1 100644 --- a/ydb/library/yql/sql/v1/proto_parser/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/sql/v1/proto_parser/CMakeLists.darwin-arm64.txt @@ -16,7 +16,7 @@ target_link_libraries(sql-v1-proto_parser PUBLIC parser-proto_ast-collect_issues proto_ast-gen-v1 proto_ast-gen-v1_ansi - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(sql-v1-proto_parser PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/proto_parser/proto_parser.cpp diff --git a/ydb/library/yql/sql/v1/proto_parser/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/sql/v1/proto_parser/CMakeLists.darwin-x86_64.txt index 349b52115a91..5534498f55b1 100644 --- a/ydb/library/yql/sql/v1/proto_parser/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/sql/v1/proto_parser/CMakeLists.darwin-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(sql-v1-proto_parser PUBLIC parser-proto_ast-collect_issues proto_ast-gen-v1 proto_ast-gen-v1_ansi - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(sql-v1-proto_parser PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/proto_parser/proto_parser.cpp diff --git a/ydb/library/yql/sql/v1/proto_parser/CMakeLists.linux-aarch64.txt b/ydb/library/yql/sql/v1/proto_parser/CMakeLists.linux-aarch64.txt index 6148a1c88e61..c3c979474e7c 100644 --- a/ydb/library/yql/sql/v1/proto_parser/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/sql/v1/proto_parser/CMakeLists.linux-aarch64.txt @@ -17,7 +17,7 @@ target_link_libraries(sql-v1-proto_parser PUBLIC parser-proto_ast-collect_issues proto_ast-gen-v1 proto_ast-gen-v1_ansi - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(sql-v1-proto_parser PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/proto_parser/proto_parser.cpp diff --git a/ydb/library/yql/sql/v1/proto_parser/CMakeLists.linux-x86_64.txt b/ydb/library/yql/sql/v1/proto_parser/CMakeLists.linux-x86_64.txt index 6148a1c88e61..c3c979474e7c 100644 --- a/ydb/library/yql/sql/v1/proto_parser/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/sql/v1/proto_parser/CMakeLists.linux-x86_64.txt @@ -17,7 +17,7 @@ target_link_libraries(sql-v1-proto_parser PUBLIC parser-proto_ast-collect_issues proto_ast-gen-v1 proto_ast-gen-v1_ansi - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(sql-v1-proto_parser PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/proto_parser/proto_parser.cpp diff --git a/ydb/library/yql/sql/v1/proto_parser/CMakeLists.windows-x86_64.txt b/ydb/library/yql/sql/v1/proto_parser/CMakeLists.windows-x86_64.txt index 349b52115a91..5534498f55b1 100644 --- a/ydb/library/yql/sql/v1/proto_parser/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/sql/v1/proto_parser/CMakeLists.windows-x86_64.txt @@ -16,7 +16,7 @@ target_link_libraries(sql-v1-proto_parser PUBLIC parser-proto_ast-collect_issues proto_ast-gen-v1 proto_ast-gen-v1_ansi - proto_ast-gen-v1_proto + proto_ast-gen-v1_proto_split ) target_sources(sql-v1-proto_parser PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/proto_parser/proto_parser.cpp diff --git a/ydb/library/yql/sql/v1/query.cpp b/ydb/library/yql/sql/v1/query.cpp index 4ea558ead15c..3c75331ea690 100644 --- a/ydb/library/yql/sql/v1/query.cpp +++ b/ydb/library/yql/sql/v1/query.cpp @@ -120,8 +120,8 @@ class TTopicKey: public ITableKeys { return Name.GetLiteral() ? &Full : nullptr; } - TNodePtr BuildKeys(TContext&, ITableKeys::EBuildKeysMode) override { - auto path = Name.Build(); // ToDo Need some prefix here? + TNodePtr BuildKeys(TContext& ctx, ITableKeys::EBuildKeysMode) override { + const auto path = ctx.GetPrefixedPath(Service, Cluster, Name); if (!path) { return nullptr; } @@ -1140,6 +1140,10 @@ class TCreateTableNode final: public TAstListNode { break; } + if (Params.Temporary) { + opts = L(opts, Q(Y(Q("temporary")))); + } + Add("block", Q(Y( Y("let", "sink", Y("DataSink", BuildQuotedAtom(Pos, Table.Service), Scoped->WrapCluster(Table.Cluster, ctx))), Y("let", "world", Y(TString(WriteName), "world", "sink", keys, Y("Void"), Q(opts))), diff --git a/ydb/library/yql/sql/v1/select.cpp b/ydb/library/yql/sql/v1/select.cpp index c32307cd6469..1dd8713be08e 100644 --- a/ydb/library/yql/sql/v1/select.cpp +++ b/ydb/library/yql/sql/v1/select.cpp @@ -412,8 +412,9 @@ class IRealSource: public ISource { } TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override { - auto& label = *column.GetSourceName(); - if (!label.empty() && label != GetLabel()) { + const auto& label = *column.GetSourceName(); + const auto& source = GetLabel(); + if (!label.empty() && label != source && !(source.StartsWith(label) && source[label.size()] == ':')) { if (column.IsReliable()) { ctx.Error(column.GetPos()) << "Unknown correlation name: " << label; } @@ -694,7 +695,8 @@ class TTableSource: public IRealSource { } bool ShouldUseSourceAsColumn(const TString& source) const override { - return source && source != GetLabel(); + const auto& label = GetLabel(); + return source && source != label && !(label.StartsWith(source) && label[source.size()] == ':'); } TMaybe<bool> AddColumn(TContext& ctx, TColumnNode& column) override { diff --git a/ydb/library/yql/sql/v1/sql_query.cpp b/ydb/library/yql/sql/v1/sql_query.cpp index 79f9c3469644..ac6859afeb34 100644 --- a/ydb/library/yql/sql/v1/sql_query.cpp +++ b/ydb/library/yql/sql/v1/sql_query.cpp @@ -166,10 +166,14 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& const auto& block = rule.GetBlock3(); ETableType tableType = ETableType::Table; + bool temporary = false; 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; + } else if (block.HasAlt4() && block.GetAlt4().GetToken1().GetId() == SQLv1LexerTokens::TOKEN_TEMP || + block.HasAlt5() && block.GetAlt5().GetToken1().GetId() == SQLv1LexerTokens::TOKEN_TEMPORARY) { + temporary = true; } bool existingOk = false; @@ -193,7 +197,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& return false; } - TCreateTableParameters params{.TableType=tableType}; + TCreateTableParameters params{.TableType=tableType, .Temporary=temporary}; if (!CreateTableEntry(rule.GetRule_create_table_entry7(), params)) { return false; } diff --git a/ydb/library/yql/sql/v1/sql_translation.cpp b/ydb/library/yql/sql/v1/sql_translation.cpp index 073dd5e07397..aaef357bd06c 100644 --- a/ydb/library/yql/sql/v1/sql_translation.cpp +++ b/ydb/library/yql/sql/v1/sql_translation.cpp @@ -53,6 +53,33 @@ TString CollectTokens(const TRule_select_stmt& selectStatement) { return tokenCollector.Tokens; } +NSQLTranslation::TTranslationSettings CreateViewTranslationSettings(const NSQLTranslation::TTranslationSettings& base) { + NSQLTranslation::TTranslationSettings settings; + + settings.ClusterMapping = base.ClusterMapping; + settings.Mode = NSQLTranslation::ESqlMode::LIMITED_VIEW; + + return settings; +} + +TNodePtr BuildViewSelect(const TRule_select_stmt& query, TContext& ctx) { + const auto viewTranslationSettings = CreateViewTranslationSettings(ctx.Settings); + TContext viewParsingContext(viewTranslationSettings, {}, ctx.Issues); + TSqlSelect select(viewParsingContext, viewTranslationSettings.Mode); + TPosition pos; + auto source = select.Build(query, pos); + if (!source) { + return nullptr; + } + return BuildSelectResult( + pos, + std::move(source), + false, + false, + viewParsingContext.Scoped + ); +} + } namespace NSQLTranslationV1 { @@ -4484,19 +4511,11 @@ bool TSqlTranslation::ParseViewQuery(std::map<TString, TDeferredAtom>& features, const TString queryText = CollectTokens(query); features["query_text"] = {Ctx.Pos(), queryText}; - { - TSqlSelect select(Ctx, Mode); - TPosition pos; - auto source = select.Build(query, pos); - if (!source) { - return false; - } - features["query_ast"] = {BuildSelectResult(pos, - std::move(source), - false, - false, - Ctx.Scoped), Ctx}; + const auto viewSelect = BuildViewSelect(query, Ctx); + if (!viewSelect) { + return false; } + features["query_ast"] = {viewSelect, Ctx}; return true; } diff --git a/ydb/library/yql/sql/v1/sql_ut.cpp b/ydb/library/yql/sql/v1/sql_ut.cpp index 6da68c791bf7..089c6c76feec 100644 --- a/ydb/library/yql/sql/v1/sql_ut.cpp +++ b/ydb/library/yql/sql/v1/sql_ut.cpp @@ -1007,6 +1007,40 @@ Y_UNIT_TEST_SUITE(SqlParsingOnly) { UNIT_ASSERT_VALUES_EQUAL(1, elementStat["Write!"]); } + Y_UNIT_TEST(CreateTempTable) { + NYql::TAstParseResult res = SqlToYql("USE plato; CREATE TEMP TABLE t (a int32, primary key(a));"); + UNIT_ASSERT(res.Root); + + TVerifyLineFunc verifyLine = [](const TString& word, const TString& line) { + if (word == "Write!") { + UNIT_ASSERT_VALUES_UNEQUAL_C(TString::npos, + line.find(R"__((Write! world sink (Key '('tablescheme (String '"t"))) (Void) '('('mode 'create) '('columns '('('"a" (AsOptionalType (DataType 'Int32)) '('columnConstrains '()) '()))) '('primarykey '('"a")) '('temporary))))__"), line); + } + }; + + TWordCountHive elementStat = {{TString("Write!"), 0}}; + VerifyProgram(res, elementStat, verifyLine); + + UNIT_ASSERT_VALUES_EQUAL(1, elementStat["Write!"]); + } + + Y_UNIT_TEST(CreateTemporaryTable) { + NYql::TAstParseResult res = SqlToYql("USE plato; CREATE TEMPORARY TABLE t (a int32, primary key(a));"); + UNIT_ASSERT(res.Root); + + TVerifyLineFunc verifyLine = [](const TString& word, const TString& line) { + if (word == "Write!") { + UNIT_ASSERT_VALUES_UNEQUAL_C(TString::npos, + line.find(R"__((Write! world sink (Key '('tablescheme (String '"t"))) (Void) '('('mode 'create) '('columns '('('"a" (AsOptionalType (DataType 'Int32)) '('columnConstrains '()) '()))) '('primarykey '('"a")) '('temporary))))__"), line); + } + }; + + TWordCountHive elementStat = {{TString("Write!"), 0}}; + VerifyProgram(res, elementStat, verifyLine); + + UNIT_ASSERT_VALUES_EQUAL(1, elementStat["Write!"]); + } + Y_UNIT_TEST(CreateTableDuplicatedPkColumnsFail) { NYql::TAstParseResult res = SqlToYql("USE plato; CREATE TABLE t (a int32 not null, primary key(a, a));"); UNIT_ASSERT(!res.Root); @@ -6245,6 +6279,20 @@ Y_UNIT_TEST_SUITE(TopicsDDL) { ALTER CONSUMER consumer3 SET (read_from = 2); )", false); } + + Y_UNIT_TEST(TopicWithPrefix) { + NYql::TAstParseResult res = SqlToYql(R"( + USE plato; + PRAGMA TablePathPrefix = '/database/path/to/tables'; + ALTER TOPIC `my_table/my_feed` ADD CONSUMER `my_consumer`; + )"); + UNIT_ASSERT(res.Root); + + TWordCountHive elementStat = {{TString("/database/path/to/tables/my_table/my_feed"), 0}, {"topic", 0}}; + VerifyProgram(res, elementStat); + UNIT_ASSERT_VALUES_EQUAL(1, elementStat["topic"]); + UNIT_ASSERT_VALUES_EQUAL(1, elementStat["/database/path/to/tables/my_table/my_feed"]); + } } Y_UNIT_TEST_SUITE(BlockEnginePragma) { @@ -6422,4 +6470,15 @@ Y_UNIT_TEST_SUITE(TViewSyntaxTest) { UNIT_ASSERT_VALUES_EQUAL(elementStat["Write!"], 1); } + + Y_UNIT_TEST(UseViewAndFullColumnId) { + NYql::TAstParseResult res = SqlToYql("USE plato; SELECT Input.x FROM Input VIEW uitzicht;"); + UNIT_ASSERT(res.Root); + + TWordCountHive elementStat = {{TString("SqlAccess"), 0}, {"SqlProjectItem", 0}, {"Read!", 0}}; + VerifyProgram(res, elementStat); + UNIT_ASSERT_VALUES_EQUAL(0, elementStat["SqlAccess"]); + UNIT_ASSERT_VALUES_EQUAL(1, elementStat["SqlProjectItem"]); + UNIT_ASSERT_VALUES_EQUAL(1, elementStat["Read!"]); + } } diff --git a/ydb/library/yql/sql/v1/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/sql/v1/ut/CMakeLists.darwin-arm64.txt index c39cfa618d89..ab783c02c5d9 100644 --- a/ydb/library/yql/sql/v1/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/sql/v1/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-library-yql-sql-v1-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-sql-v1-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/v1/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/sql/v1/ut/CMakeLists.darwin-x86_64.txt index 80dcef14ef01..5abc52106065 100644 --- a/ydb/library/yql/sql/v1/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/sql/v1/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-library-yql-sql-v1-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-sql-v1-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/v1/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/sql/v1/ut/CMakeLists.linux-aarch64.txt index 54041a090268..e99f2745ff2f 100644 --- a/ydb/library/yql/sql/v1/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/sql/v1/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-library-yql-sql-v1-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-sql-v1-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/v1/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/sql/v1/ut/CMakeLists.linux-x86_64.txt index 0cda4c5e185c..5e0666c78ac1 100644 --- a/ydb/library/yql/sql/v1/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/sql/v1/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-library-yql-sql-v1-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-sql-v1-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/sql/v1/sql_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/sql/v1/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/sql/v1/ut/CMakeLists.windows-x86_64.txt index 0e8469627aff..322df610ed49 100644 --- a/ydb/library/yql/sql/v1/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/sql/v1/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/tests/s-expressions/common_file.py b/ydb/library/yql/tests/s-expressions/common_file.py index e17ada446df7..e1c7d337146f 100644 --- a/ydb/library/yql/tests/s-expressions/common_file.py +++ b/ydb/library/yql/tests/s-expressions/common_file.py @@ -68,6 +68,12 @@ def yqlrun_yt_results(provider, prepare, suite, case, config): def run_test(provider, prepare, suite, case, tmpdir, what): + if "TimeOrder" in suite: + pytest.skip('Unsupported in runtime version v39') + + if "SelfJoinCore" in case: + pytest.skip('Unsupported in runtime version v39') + if get_param('TARGET_PLATFORM'): if "ArcPython" in case: pytest.skip('ArcPython is not supported on non-default target platform') diff --git a/ydb/library/yql/tests/sql/dq_file/part1/canondata/result.json b/ydb/library/yql/tests/sql/dq_file/part1/canondata/result.json index bd6b83b0e943..dd38a7d87385 100644 --- a/ydb/library/yql/tests/sql/dq_file/part1/canondata/result.json +++ b/ydb/library/yql/tests/sql/dq_file/part1/canondata/result.json @@ -736,6 +736,28 @@ } ], "test.test[case-case_val_then_else-default.txt-Results]": [], + "test.test[column_order-insert_reorder_without_columnorder--Analyze]": [ + { + "checksum": "9f976dc964b65317600df5a37ad5c299", + "size": 5708, + "uri": "https://{canondata_backend}/1936273/9c0654be6d8c964c541bdf0c96b4980357ef29d2/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Analyze_/plan.txt" + } + ], + "test.test[column_order-insert_reorder_without_columnorder--Debug]": [ + { + "checksum": "e31bd3307574142ad420a09e5ad536e0", + "size": 2462, + "uri": "https://{canondata_backend}/1031349/a0b3e3db5f104c4fb6b8f2733a1f6bdd159cebf8/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Debug_/opt.yql_patched" + } + ], + "test.test[column_order-insert_reorder_without_columnorder--Plan]": [ + { + "checksum": "9f976dc964b65317600df5a37ad5c299", + "size": 5708, + "uri": "https://{canondata_backend}/1936273/9c0654be6d8c964c541bdf0c96b4980357ef29d2/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Plan_/plan.txt" + } + ], + "test.test[column_order-insert_reorder_without_columnorder--Results]": [], "test.test[column_order-select_limit_offset_reorder-default.txt-Analyze]": [ { "checksum": "e0cc08c6479b76e82c514b6c219d04a9", diff --git a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json index 0a281e083086..0b798cfdc8f5 100644 --- a/ydb/library/yql/tests/sql/sql2yql/canondata/result.json +++ b/ydb/library/yql/tests/sql/sql2yql/canondata/result.json @@ -3695,6 +3695,13 @@ "uri": "https://{canondata_backend}/1936947/659b615f15086142a8960946dabd06b519d43335/resource.tar.gz#test_sql2yql.test_column_order-insert_/sql.yql" } ], + "test_sql2yql.test[column_order-insert_reorder_without_columnorder]": [ + { + "checksum": "d3105827a0ca8e095bcecc797540f34e", + "size": 1553, + "uri": "https://{canondata_backend}/1923547/0aba22156762a55d9c7578c76fffd5395d319f8b/resource.tar.gz#test_sql2yql.test_column_order-insert_reorder_without_columnorder_/sql.yql" + } + ], "test_sql2yql.test[column_order-insert_tmp]": [ { "checksum": "f7020067b63cf9ba560ad9e409933221", @@ -21167,6 +21174,13 @@ "uri": "https://{canondata_backend}/1880306/64654158d6bfb1289c66c626a8162239289559d0/resource.tar.gz#test_sql_format.test_column_order-insert_/formatted.sql" } ], + "test_sql_format.test[column_order-insert_reorder_without_columnorder]": [ + { + "checksum": "e0526a3060fc6b9c9a2d0c295066f135", + "size": 223, + "uri": "https://{canondata_backend}/1923547/0aba22156762a55d9c7578c76fffd5395d319f8b/resource.tar.gz#test_sql_format.test_column_order-insert_reorder_without_columnorder_/formatted.sql" + } + ], "test_sql_format.test[column_order-insert_tmp]": [ { "checksum": "ce56494a4e05ac5ccd812e10665c7541", diff --git a/ydb/library/yql/tests/sql/suites/column_order/insert_reorder_without_columnorder.cfg b/ydb/library/yql/tests/sql/suites/column_order/insert_reorder_without_columnorder.cfg new file mode 100644 index 000000000000..ad52c79527f6 --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/column_order/insert_reorder_without_columnorder.cfg @@ -0,0 +1,2 @@ +in Input input.txt +out Output output.txt diff --git a/ydb/library/yql/tests/sql/suites/column_order/insert_reorder_without_columnorder.sql b/ydb/library/yql/tests/sql/suites/column_order/insert_reorder_without_columnorder.sql new file mode 100644 index 000000000000..0b9f6613ac24 --- /dev/null +++ b/ydb/library/yql/tests/sql/suites/column_order/insert_reorder_without_columnorder.sql @@ -0,0 +1,14 @@ +/* postgres can not */ +use plato; +pragma DisableOrderedColumns; +pragma warning("disable", "4517"); + +$Group = 1u; + +INSERT INTO Output(Group, Name) +SELECT + $Group, + value +FROM Input +WHERE key = "150" +LIMIT 1; diff --git a/ydb/library/yql/tests/sql/yt_file.py b/ydb/library/yql/tests/sql/yt_file.py index 17afde5cdda5..a299f18a4e4d 100644 --- a/ydb/library/yql/tests/sql/yt_file.py +++ b/ydb/library/yql/tests/sql/yt_file.py @@ -18,6 +18,9 @@ def run_test(suite, case, cfg, tmpdir, what, yql_http_file_server): + if "match_recognize" in suite: + pytest.skip('Unsupported TimeOrder* in runtime version v39') + if get_param('SQL_FLAGS'): if what == 'Debug' or what == 'Plan' or what == 'Peephole' or what == 'Lineage': pytest.skip('SKIP') diff --git a/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json b/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json index e416956271d9..528406c3c24d 100644 --- a/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json +++ b/ydb/library/yql/tests/sql/yt_native_file/part1/canondata/result.json @@ -719,6 +719,27 @@ "uri": "https://{canondata_backend}/1924537/4423f8f88aaeda4e03b0c158e2e6b0df92c41109/resource.tar.gz#test.test_case-case_val_then_else-default.txt-Results_/results.txt" } ], + "test.test[column_order-insert_reorder_without_columnorder--Debug]": [ + { + "checksum": "e2f603569cbeb53f1f75cc535fe4a542", + "size": 2248, + "uri": "https://{canondata_backend}/1817427/944e3e51d311ff192b733679255631e4b144c75c/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Debug_/opt.yql" + } + ], + "test.test[column_order-insert_reorder_without_columnorder--Plan]": [ + { + "checksum": "3fc5cf899c15ced58a2e419bbef6d2ce", + "size": 6210, + "uri": "https://{canondata_backend}/1936273/bfda7491784aceaa88c55429ca2306196db27d7c/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Plan_/plan.txt" + } + ], + "test.test[column_order-insert_reorder_without_columnorder--Results]": [ + { + "checksum": "e09e785295186f47f7f26ab8e0f0fbb3", + "size": 27, + "uri": "https://{canondata_backend}/1817427/944e3e51d311ff192b733679255631e4b144c75c/resource.tar.gz#test.test_column_order-insert_reorder_without_columnorder--Results_/Output.txt" + } + ], "test.test[column_order-select_limit_offset_reorder-default.txt-Debug]": [ { "checksum": "f810b94782294b9bafa467567637b4a3", diff --git a/ydb/library/yql/tools/CMakeLists.txt b/ydb/library/yql/tools/CMakeLists.txt index b662ca88934b..65879f169d0a 100644 --- a/ydb/library/yql/tools/CMakeLists.txt +++ b/ydb/library/yql/tools/CMakeLists.txt @@ -10,6 +10,7 @@ add_subdirectory(astdiff) add_subdirectory(dq) add_subdirectory(dqrun) add_subdirectory(mrjob) +add_subdirectory(mrrun) add_subdirectory(pgrun) add_subdirectory(sql2yql) add_subdirectory(sql_formatter) diff --git a/ydb/library/yql/tools/astdiff/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/astdiff/CMakeLists.darwin-arm64.txt index 87c04a039c5f..673e6c2a1ca6 100644 --- a/ydb/library/yql/tools/astdiff/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/tools/astdiff/CMakeLists.darwin-arm64.txt @@ -20,8 +20,6 @@ target_link_options(astdiff PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(astdiff PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/astdiff/astdiff.cpp diff --git a/ydb/library/yql/tools/astdiff/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/tools/astdiff/CMakeLists.darwin-x86_64.txt index 0b4989a63216..1942beff69a2 100644 --- a/ydb/library/yql/tools/astdiff/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/tools/astdiff/CMakeLists.darwin-x86_64.txt @@ -21,8 +21,6 @@ target_link_options(astdiff PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(astdiff PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/astdiff/astdiff.cpp diff --git a/ydb/library/yql/tools/astdiff/CMakeLists.linux-aarch64.txt b/ydb/library/yql/tools/astdiff/CMakeLists.linux-aarch64.txt index bda84f3b09bc..98acdbbd72b4 100644 --- a/ydb/library/yql/tools/astdiff/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/tools/astdiff/CMakeLists.linux-aarch64.txt @@ -23,9 +23,6 @@ target_link_options(astdiff PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(astdiff PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/astdiff/astdiff.cpp diff --git a/ydb/library/yql/tools/astdiff/CMakeLists.linux-x86_64.txt b/ydb/library/yql/tools/astdiff/CMakeLists.linux-x86_64.txt index a49bc32e7208..c1adc83a84a1 100644 --- a/ydb/library/yql/tools/astdiff/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/tools/astdiff/CMakeLists.linux-x86_64.txt @@ -24,9 +24,6 @@ target_link_options(astdiff PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(astdiff PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/astdiff/astdiff.cpp diff --git a/ydb/library/yql/tools/dq/dq_cli/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/dq/dq_cli/CMakeLists.darwin-arm64.txt index 04600c637afc..ae50379f4e2c 100644 --- a/ydb/library/yql/tools/dq/dq_cli/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/tools/dq/dq_cli/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(dq_cli PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(dq_cli PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dq/dq_cli/main.cpp diff --git a/ydb/library/yql/tools/dq/dq_cli/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/tools/dq/dq_cli/CMakeLists.darwin-x86_64.txt index 929258583e1f..d398037ddcb4 100644 --- a/ydb/library/yql/tools/dq/dq_cli/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/tools/dq/dq_cli/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(dq_cli PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(dq_cli PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dq/dq_cli/main.cpp diff --git a/ydb/library/yql/tools/dq/dq_cli/CMakeLists.linux-aarch64.txt b/ydb/library/yql/tools/dq/dq_cli/CMakeLists.linux-aarch64.txt index f0fd5e85845f..e45536ceda4f 100644 --- a/ydb/library/yql/tools/dq/dq_cli/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/tools/dq/dq_cli/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(dq_cli PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(dq_cli PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dq/dq_cli/main.cpp diff --git a/ydb/library/yql/tools/dq/dq_cli/CMakeLists.linux-x86_64.txt b/ydb/library/yql/tools/dq/dq_cli/CMakeLists.linux-x86_64.txt index f3a18da1b39b..d8df104d02bf 100644 --- a/ydb/library/yql/tools/dq/dq_cli/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/tools/dq/dq_cli/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(dq_cli PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(dq_cli PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dq/dq_cli/main.cpp diff --git a/ydb/library/yql/tools/dq/service_node/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/dq/service_node/CMakeLists.darwin-arm64.txt index 5e131c34f9f8..62d7085d86fc 100644 --- a/ydb/library/yql/tools/dq/service_node/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/tools/dq/service_node/CMakeLists.darwin-arm64.txt @@ -24,7 +24,7 @@ target_link_libraries(service_node PUBLIC utils-log-proto providers-dq-provider dq-worker_manager-interface - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-utils-backtrace providers-dq-service providers-dq-metrics @@ -32,14 +32,14 @@ target_link_libraries(service_node PUBLIC providers-yt-dq_task_preprocessor providers-dq-global_worker_manager dq-actors-yt + yt-comp_nodes-llvm14 + yt-codec-codegen yt-yt-client ) target_link_options(service_node PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(service_node PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dq/service_node/main.cpp diff --git a/ydb/library/yql/tools/dq/service_node/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/tools/dq/service_node/CMakeLists.darwin-x86_64.txt index a9eb732340be..e55694ea0cc2 100644 --- a/ydb/library/yql/tools/dq/service_node/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/tools/dq/service_node/CMakeLists.darwin-x86_64.txt @@ -25,7 +25,7 @@ target_link_libraries(service_node PUBLIC utils-log-proto providers-dq-provider dq-worker_manager-interface - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-utils-backtrace providers-dq-service providers-dq-metrics @@ -33,14 +33,14 @@ target_link_libraries(service_node PUBLIC providers-yt-dq_task_preprocessor providers-dq-global_worker_manager dq-actors-yt + yt-comp_nodes-llvm14 + yt-codec-codegen yt-yt-client ) target_link_options(service_node PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(service_node PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dq/service_node/main.cpp diff --git a/ydb/library/yql/tools/dq/service_node/CMakeLists.linux-aarch64.txt b/ydb/library/yql/tools/dq/service_node/CMakeLists.linux-aarch64.txt index 822001577e01..d90a45f3ee02 100644 --- a/ydb/library/yql/tools/dq/service_node/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/tools/dq/service_node/CMakeLists.linux-aarch64.txt @@ -25,7 +25,7 @@ target_link_libraries(service_node PUBLIC utils-log-proto providers-dq-provider dq-worker_manager-interface - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-utils-backtrace providers-dq-service providers-dq-metrics @@ -33,6 +33,8 @@ target_link_libraries(service_node PUBLIC providers-yt-dq_task_preprocessor providers-dq-global_worker_manager dq-actors-yt + yt-comp_nodes-llvm14 + yt-codec-codegen yt-yt-client ) target_link_options(service_node PRIVATE @@ -41,10 +43,6 @@ target_link_options(service_node PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(service_node PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dq/service_node/main.cpp diff --git a/ydb/library/yql/tools/dq/service_node/CMakeLists.linux-x86_64.txt b/ydb/library/yql/tools/dq/service_node/CMakeLists.linux-x86_64.txt index 673a21b27885..1e453f56a83b 100644 --- a/ydb/library/yql/tools/dq/service_node/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/tools/dq/service_node/CMakeLists.linux-x86_64.txt @@ -26,7 +26,7 @@ target_link_libraries(service_node PUBLIC utils-log-proto providers-dq-provider dq-worker_manager-interface - minikql-invoke_builtins-llvm + minikql-invoke_builtins-llvm14 yql-utils-backtrace providers-dq-service providers-dq-metrics @@ -34,6 +34,8 @@ target_link_libraries(service_node PUBLIC providers-yt-dq_task_preprocessor providers-dq-global_worker_manager dq-actors-yt + yt-comp_nodes-llvm14 + yt-codec-codegen yt-yt-client ) target_link_options(service_node PRIVATE @@ -42,10 +44,6 @@ target_link_options(service_node PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(service_node PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dq/service_node/main.cpp diff --git a/ydb/library/yql/tools/dq/worker_node/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/dq/worker_node/CMakeLists.darwin-arm64.txt index 355cc365ec95..d907669f2694 100644 --- a/ydb/library/yql/tools/dq/worker_node/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/tools/dq/worker_node/CMakeLists.darwin-arm64.txt @@ -22,7 +22,7 @@ target_link_libraries(worker_node PUBLIC yql-dq-comp_nodes dq-integration-transform yql-dq-transform - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 providers-clickhouse-actors providers-common-comp_nodes providers-dq-runtime @@ -42,6 +42,8 @@ target_link_libraries(worker_node PUBLIC yql-utils-failure_injector yql-utils-backtrace yt-comp_nodes-dq + yt-comp_nodes-llvm14 + yt-codec-codegen providers-yt-mkql_dq dq-actors-yt providers-dq-global_worker_manager @@ -52,8 +54,6 @@ target_link_options(worker_node PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(worker_node PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dq/worker_node/main.cpp diff --git a/ydb/library/yql/tools/dq/worker_node/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/tools/dq/worker_node/CMakeLists.darwin-x86_64.txt index 31b7fb97c136..9fafd3037430 100644 --- a/ydb/library/yql/tools/dq/worker_node/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/tools/dq/worker_node/CMakeLists.darwin-x86_64.txt @@ -23,7 +23,7 @@ target_link_libraries(worker_node PUBLIC yql-dq-comp_nodes dq-integration-transform yql-dq-transform - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 providers-clickhouse-actors providers-common-comp_nodes providers-dq-runtime @@ -43,6 +43,8 @@ target_link_libraries(worker_node PUBLIC yql-utils-failure_injector yql-utils-backtrace yt-comp_nodes-dq + yt-comp_nodes-llvm14 + yt-codec-codegen providers-yt-mkql_dq dq-actors-yt providers-dq-global_worker_manager @@ -53,8 +55,6 @@ target_link_options(worker_node PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(worker_node PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dq/worker_node/main.cpp diff --git a/ydb/library/yql/tools/dq/worker_node/CMakeLists.linux-aarch64.txt b/ydb/library/yql/tools/dq/worker_node/CMakeLists.linux-aarch64.txt index ef56db89b79a..42e92deea520 100644 --- a/ydb/library/yql/tools/dq/worker_node/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/tools/dq/worker_node/CMakeLists.linux-aarch64.txt @@ -23,7 +23,7 @@ target_link_libraries(worker_node PUBLIC yql-dq-comp_nodes dq-integration-transform yql-dq-transform - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 providers-clickhouse-actors providers-common-comp_nodes providers-dq-runtime @@ -43,6 +43,8 @@ target_link_libraries(worker_node PUBLIC yql-utils-failure_injector yql-utils-backtrace yt-comp_nodes-dq + yt-comp_nodes-llvm14 + yt-codec-codegen providers-yt-mkql_dq dq-actors-yt providers-dq-global_worker_manager @@ -55,10 +57,6 @@ target_link_options(worker_node PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(worker_node PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dq/worker_node/main.cpp diff --git a/ydb/library/yql/tools/dq/worker_node/CMakeLists.linux-x86_64.txt b/ydb/library/yql/tools/dq/worker_node/CMakeLists.linux-x86_64.txt index 3739d1ca709e..173280374527 100644 --- a/ydb/library/yql/tools/dq/worker_node/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/tools/dq/worker_node/CMakeLists.linux-x86_64.txt @@ -24,7 +24,7 @@ target_link_libraries(worker_node PUBLIC yql-dq-comp_nodes dq-integration-transform yql-dq-transform - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 providers-clickhouse-actors providers-common-comp_nodes providers-dq-runtime @@ -44,6 +44,8 @@ target_link_libraries(worker_node PUBLIC yql-utils-failure_injector yql-utils-backtrace yt-comp_nodes-dq + yt-comp_nodes-llvm14 + yt-codec-codegen providers-yt-mkql_dq dq-actors-yt providers-dq-global_worker_manager @@ -56,10 +58,6 @@ target_link_options(worker_node PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(worker_node PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dq/worker_node/main.cpp diff --git a/ydb/library/yql/tools/dqrun/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/dqrun/CMakeLists.darwin-arm64.txt index d963c4b238a1..bb2ee3fa4d34 100644 --- a/ydb/library/yql/tools/dqrun/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/tools/dqrun/CMakeLists.darwin-arm64.txt @@ -33,8 +33,8 @@ target_link_libraries(dqrun PUBLIC yql-dq-comp_nodes dq-integration-transform yql-dq-transform - minikql-comp_nodes-llvm - minikql-invoke_builtins-llvm + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 providers-clickhouse-actors providers-clickhouse-provider providers-common-comp_nodes @@ -67,8 +67,10 @@ target_link_libraries(dqrun PUBLIC providers-yt-dq_task_preprocessor yt-gateway-file yt-gateway-native + yt-codec-codegen providers-yt-mkql_dq providers-yt-provider + yt-comp_nodes-llvm14 yt-lib-yt_download yt-lib-yt_url_lister yt-lib-config_clusters @@ -83,8 +85,6 @@ target_link_options(dqrun PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(dqrun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dqrun/dqrun.cpp diff --git a/ydb/library/yql/tools/dqrun/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/tools/dqrun/CMakeLists.darwin-x86_64.txt index 895c759c5129..5844161875aa 100644 --- a/ydb/library/yql/tools/dqrun/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/tools/dqrun/CMakeLists.darwin-x86_64.txt @@ -34,8 +34,8 @@ target_link_libraries(dqrun PUBLIC yql-dq-comp_nodes dq-integration-transform yql-dq-transform - minikql-comp_nodes-llvm - minikql-invoke_builtins-llvm + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 providers-clickhouse-actors providers-clickhouse-provider providers-common-comp_nodes @@ -68,8 +68,10 @@ target_link_libraries(dqrun PUBLIC providers-yt-dq_task_preprocessor yt-gateway-file yt-gateway-native + yt-codec-codegen providers-yt-mkql_dq providers-yt-provider + yt-comp_nodes-llvm14 yt-lib-yt_download yt-lib-yt_url_lister yt-lib-config_clusters @@ -84,8 +86,6 @@ target_link_options(dqrun PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(dqrun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dqrun/dqrun.cpp diff --git a/ydb/library/yql/tools/dqrun/CMakeLists.linux-aarch64.txt b/ydb/library/yql/tools/dqrun/CMakeLists.linux-aarch64.txt index ecb0c3504bc4..e274cd5ee815 100644 --- a/ydb/library/yql/tools/dqrun/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/tools/dqrun/CMakeLists.linux-aarch64.txt @@ -34,8 +34,8 @@ target_link_libraries(dqrun PUBLIC yql-dq-comp_nodes dq-integration-transform yql-dq-transform - minikql-comp_nodes-llvm - minikql-invoke_builtins-llvm + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 providers-clickhouse-actors providers-clickhouse-provider providers-common-comp_nodes @@ -68,8 +68,10 @@ target_link_libraries(dqrun PUBLIC providers-yt-dq_task_preprocessor yt-gateway-file yt-gateway-native + yt-codec-codegen providers-yt-mkql_dq providers-yt-provider + yt-comp_nodes-llvm14 yt-lib-yt_download yt-lib-yt_url_lister yt-lib-config_clusters @@ -86,10 +88,6 @@ target_link_options(dqrun PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(dqrun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dqrun/dqrun.cpp diff --git a/ydb/library/yql/tools/dqrun/CMakeLists.linux-x86_64.txt b/ydb/library/yql/tools/dqrun/CMakeLists.linux-x86_64.txt index d98045e536e9..1223e290d1c6 100644 --- a/ydb/library/yql/tools/dqrun/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/tools/dqrun/CMakeLists.linux-x86_64.txt @@ -35,8 +35,8 @@ target_link_libraries(dqrun PUBLIC yql-dq-comp_nodes dq-integration-transform yql-dq-transform - minikql-comp_nodes-llvm - minikql-invoke_builtins-llvm + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 providers-clickhouse-actors providers-clickhouse-provider providers-common-comp_nodes @@ -69,8 +69,10 @@ target_link_libraries(dqrun PUBLIC providers-yt-dq_task_preprocessor yt-gateway-file yt-gateway-native + yt-codec-codegen providers-yt-mkql_dq providers-yt-provider + yt-comp_nodes-llvm14 yt-lib-yt_download yt-lib-yt_url_lister yt-lib-config_clusters @@ -87,10 +89,6 @@ target_link_options(dqrun PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(dqrun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/dqrun/dqrun.cpp diff --git a/ydb/library/yql/tools/mrjob/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/mrjob/CMakeLists.darwin-arm64.txt index b67410869c94..88061a8a4edf 100644 --- a/ydb/library/yql/tools/mrjob/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/tools/mrjob/CMakeLists.darwin-arm64.txt @@ -21,13 +21,16 @@ target_link_libraries(mrjob PUBLIC yql-parser-pg_wrapper yql-sql-pg providers-yt-job + yt-codec-codegen + yt-comp_nodes-llvm14 + minikql-computation-llvm14 + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 ) target_link_options(mrjob PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(mrjob PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrjob/mrjob.cpp diff --git a/ydb/library/yql/tools/mrjob/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/tools/mrjob/CMakeLists.darwin-x86_64.txt index 247502db46ab..d7cd30e73a34 100644 --- a/ydb/library/yql/tools/mrjob/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/tools/mrjob/CMakeLists.darwin-x86_64.txt @@ -22,13 +22,16 @@ target_link_libraries(mrjob PUBLIC yql-parser-pg_wrapper yql-sql-pg providers-yt-job + yt-codec-codegen + yt-comp_nodes-llvm14 + minikql-computation-llvm14 + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 ) target_link_options(mrjob PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(mrjob PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrjob/mrjob.cpp diff --git a/ydb/library/yql/tools/mrjob/CMakeLists.linux-aarch64.txt b/ydb/library/yql/tools/mrjob/CMakeLists.linux-aarch64.txt index af1caa79eddc..e1e3abf7d084 100644 --- a/ydb/library/yql/tools/mrjob/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/tools/mrjob/CMakeLists.linux-aarch64.txt @@ -22,6 +22,11 @@ target_link_libraries(mrjob PUBLIC yql-parser-pg_wrapper yql-sql-pg providers-yt-job + yt-codec-codegen + yt-comp_nodes-llvm14 + minikql-computation-llvm14 + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 ) target_link_options(mrjob PRIVATE -ldl @@ -29,10 +34,6 @@ target_link_options(mrjob PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(mrjob PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrjob/mrjob.cpp diff --git a/ydb/library/yql/tools/mrjob/CMakeLists.linux-x86_64.txt b/ydb/library/yql/tools/mrjob/CMakeLists.linux-x86_64.txt index 18e74ea77dfb..82b27e2e3024 100644 --- a/ydb/library/yql/tools/mrjob/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/tools/mrjob/CMakeLists.linux-x86_64.txt @@ -23,6 +23,11 @@ target_link_libraries(mrjob PUBLIC yql-parser-pg_wrapper yql-sql-pg providers-yt-job + yt-codec-codegen + yt-comp_nodes-llvm14 + minikql-computation-llvm14 + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 ) target_link_options(mrjob PRIVATE -ldl @@ -30,10 +35,6 @@ target_link_options(mrjob PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(mrjob PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrjob/mrjob.cpp diff --git a/ydb/library/yql/tools/mrjob/CMakeLists.windows-x86_64.txt b/ydb/library/yql/tools/mrjob/CMakeLists.windows-x86_64.txt index a2c958a6d016..e0c3b7176055 100644 --- a/ydb/library/yql/tools/mrjob/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/tools/mrjob/CMakeLists.windows-x86_64.txt @@ -22,6 +22,11 @@ target_link_libraries(mrjob PUBLIC yql-parser-pg_wrapper yql-sql-pg providers-yt-job + yt-codec-codegen + yt-comp_nodes-llvm14 + minikql-computation-llvm14 + minikql-invoke_builtins-llvm14 + minikql-comp_nodes-llvm14 ) target_sources(mrjob PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrjob/mrjob.cpp diff --git a/ydb/library/yql/tools/mrrun/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/mrrun/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..2b588d3efdab --- /dev/null +++ b/ydb/library/yql/tools/mrrun/CMakeLists.darwin-arm64.txt @@ -0,0 +1,88 @@ + +# 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(mrrun) +target_compile_options(mrrun PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(mrrun PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf + client-ydb_persqueue_public-codecs + cpp-digest-md5 + library-cpp-getopt + library-cpp-logger + library-cpp-resource + library-cpp-yson + cpp-yson-node + library-cpp-sighandler + cpp-mapreduce-client + cpp-mapreduce-common + ydb-core-util + yql-sql-pg + library-yql-core + yql-core-facade + core-file_storage-proto + core-file_storage-http_download + yql-core-file_storage + core-services-mounts + yql-core-url_lister + yql-dq-comp_nodes + dq-integration-transform + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 + library-yql-protos + providers-clickhouse-actors + providers-clickhouse-provider + providers-common-comp_nodes + providers-common-http_gateway + providers-common-proto + providers-common-udf_resolve + providers-dq-local_gateway + providers-dq-provider + dq-provider-exec + providers-pq-async_io + providers-s3-actors + providers-ydb-actors + providers-ydb-comp_nodes + providers-ydb-provider + providers-pg-provider + udf-service-terminate_policy + yql-utils-log + yql-utils-backtrace + yql-utils-failure_injector + cpp-client-ydb_driver + yql-core-url_preprocessing + yt-comp_nodes-dq + yt-comp_nodes-llvm14 + yt-codec-codegen + providers-yt-dq_task_preprocessor + yt-gateway-native + yt-lib-log + providers-yt-mkql_dq + yt-lib-yt_download + yt-lib-yt_url_lister + yt-lib-config_clusters + yql-parser-pg_wrapper + providers-dq-global_worker_manager +) +target_link_options(mrrun PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(mrrun PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrrun/mrrun.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrrun/mrrun.cpp +) +target_allocator(mrrun + cpp-malloc-jemalloc +) +vcs_info(mrrun) diff --git a/ydb/library/yql/tools/mrrun/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/tools/mrrun/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..ee82ba895cc2 --- /dev/null +++ b/ydb/library/yql/tools/mrrun/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,89 @@ + +# 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(mrrun) +target_compile_options(mrrun PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(mrrun PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + contrib-libs-protobuf + client-ydb_persqueue_public-codecs + cpp-digest-md5 + library-cpp-getopt + library-cpp-logger + library-cpp-resource + library-cpp-yson + cpp-yson-node + library-cpp-sighandler + cpp-mapreduce-client + cpp-mapreduce-common + ydb-core-util + yql-sql-pg + library-yql-core + yql-core-facade + core-file_storage-proto + core-file_storage-http_download + yql-core-file_storage + core-services-mounts + yql-core-url_lister + yql-dq-comp_nodes + dq-integration-transform + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 + library-yql-protos + providers-clickhouse-actors + providers-clickhouse-provider + providers-common-comp_nodes + providers-common-http_gateway + providers-common-proto + providers-common-udf_resolve + providers-dq-local_gateway + providers-dq-provider + dq-provider-exec + providers-pq-async_io + providers-s3-actors + providers-ydb-actors + providers-ydb-comp_nodes + providers-ydb-provider + providers-pg-provider + udf-service-terminate_policy + yql-utils-log + yql-utils-backtrace + yql-utils-failure_injector + cpp-client-ydb_driver + yql-core-url_preprocessing + yt-comp_nodes-dq + yt-comp_nodes-llvm14 + yt-codec-codegen + providers-yt-dq_task_preprocessor + yt-gateway-native + yt-lib-log + providers-yt-mkql_dq + yt-lib-yt_download + yt-lib-yt_url_lister + yt-lib-config_clusters + yql-parser-pg_wrapper + providers-dq-global_worker_manager +) +target_link_options(mrrun PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(mrrun PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrrun/mrrun.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrrun/mrrun.cpp +) +target_allocator(mrrun + cpp-malloc-jemalloc +) +vcs_info(mrrun) diff --git a/ydb/library/yql/tools/mrrun/CMakeLists.linux-aarch64.txt b/ydb/library/yql/tools/mrrun/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..3e3d72f01aec --- /dev/null +++ b/ydb/library/yql/tools/mrrun/CMakeLists.linux-aarch64.txt @@ -0,0 +1,91 @@ + +# 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(mrrun) +target_compile_options(mrrun PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(mrrun PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf + client-ydb_persqueue_public-codecs + cpp-digest-md5 + library-cpp-getopt + library-cpp-logger + library-cpp-resource + library-cpp-yson + cpp-yson-node + library-cpp-sighandler + cpp-mapreduce-client + cpp-mapreduce-common + ydb-core-util + yql-sql-pg + library-yql-core + yql-core-facade + core-file_storage-proto + core-file_storage-http_download + yql-core-file_storage + core-services-mounts + yql-core-url_lister + yql-dq-comp_nodes + dq-integration-transform + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 + library-yql-protos + providers-clickhouse-actors + providers-clickhouse-provider + providers-common-comp_nodes + providers-common-http_gateway + providers-common-proto + providers-common-udf_resolve + providers-dq-local_gateway + providers-dq-provider + dq-provider-exec + providers-pq-async_io + providers-s3-actors + providers-ydb-actors + providers-ydb-comp_nodes + providers-ydb-provider + providers-pg-provider + udf-service-terminate_policy + yql-utils-log + yql-utils-backtrace + yql-utils-failure_injector + cpp-client-ydb_driver + yql-core-url_preprocessing + yt-comp_nodes-dq + yt-comp_nodes-llvm14 + yt-codec-codegen + providers-yt-dq_task_preprocessor + yt-gateway-native + yt-lib-log + providers-yt-mkql_dq + yt-lib-yt_download + yt-lib-yt_url_lister + yt-lib-config_clusters + yql-parser-pg_wrapper + providers-dq-global_worker_manager +) +target_link_options(mrrun PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(mrrun PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrrun/mrrun.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrrun/mrrun.cpp +) +target_allocator(mrrun + cpp-malloc-jemalloc +) +vcs_info(mrrun) diff --git a/ydb/library/yql/tools/mrrun/CMakeLists.linux-x86_64.txt b/ydb/library/yql/tools/mrrun/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..ccc599b7dc1e --- /dev/null +++ b/ydb/library/yql/tools/mrrun/CMakeLists.linux-x86_64.txt @@ -0,0 +1,92 @@ + +# 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(mrrun) +target_compile_options(mrrun PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(mrrun PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + contrib-libs-protobuf + client-ydb_persqueue_public-codecs + cpp-digest-md5 + library-cpp-getopt + library-cpp-logger + library-cpp-resource + library-cpp-yson + cpp-yson-node + library-cpp-sighandler + cpp-mapreduce-client + cpp-mapreduce-common + ydb-core-util + yql-sql-pg + library-yql-core + yql-core-facade + core-file_storage-proto + core-file_storage-http_download + yql-core-file_storage + core-services-mounts + yql-core-url_lister + yql-dq-comp_nodes + dq-integration-transform + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 + library-yql-protos + providers-clickhouse-actors + providers-clickhouse-provider + providers-common-comp_nodes + providers-common-http_gateway + providers-common-proto + providers-common-udf_resolve + providers-dq-local_gateway + providers-dq-provider + dq-provider-exec + providers-pq-async_io + providers-s3-actors + providers-ydb-actors + providers-ydb-comp_nodes + providers-ydb-provider + providers-pg-provider + udf-service-terminate_policy + yql-utils-log + yql-utils-backtrace + yql-utils-failure_injector + cpp-client-ydb_driver + yql-core-url_preprocessing + yt-comp_nodes-dq + yt-comp_nodes-llvm14 + yt-codec-codegen + providers-yt-dq_task_preprocessor + yt-gateway-native + yt-lib-log + providers-yt-mkql_dq + yt-lib-yt_download + yt-lib-yt_url_lister + yt-lib-config_clusters + yql-parser-pg_wrapper + providers-dq-global_worker_manager +) +target_link_options(mrrun PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(mrrun PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrrun/mrrun.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrrun/mrrun.cpp +) +target_allocator(mrrun + cpp-malloc-jemalloc +) +vcs_info(mrrun) diff --git a/ydb/library/yql/tools/mrrun/CMakeLists.txt b/ydb/library/yql/tools/mrrun/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/tools/mrrun/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/tools/mrrun/CMakeLists.windows-x86_64.txt b/ydb/library/yql/tools/mrrun/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..fc66053c9123 --- /dev/null +++ b/ydb/library/yql/tools/mrrun/CMakeLists.windows-x86_64.txt @@ -0,0 +1,83 @@ + +# 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(mrrun) +target_compile_options(mrrun PRIVATE + -DUSE_CURRENT_UDF_ABI_VERSION +) +target_link_libraries(mrrun PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + contrib-libs-protobuf + client-ydb_persqueue_public-codecs + cpp-digest-md5 + library-cpp-getopt + library-cpp-logger + library-cpp-resource + library-cpp-yson + cpp-yson-node + library-cpp-sighandler + cpp-mapreduce-client + cpp-mapreduce-common + ydb-core-util + yql-sql-pg + library-yql-core + yql-core-facade + core-file_storage-proto + core-file_storage-http_download + yql-core-file_storage + core-services-mounts + yql-core-url_lister + yql-dq-comp_nodes + dq-integration-transform + minikql-comp_nodes-llvm14 + minikql-invoke_builtins-llvm14 + library-yql-protos + providers-clickhouse-actors + providers-clickhouse-provider + providers-common-comp_nodes + providers-common-http_gateway + providers-common-proto + providers-common-udf_resolve + providers-dq-local_gateway + providers-dq-provider + dq-provider-exec + providers-pq-async_io + providers-s3-actors + providers-ydb-actors + providers-ydb-comp_nodes + providers-ydb-provider + providers-pg-provider + udf-service-terminate_policy + yql-utils-log + yql-utils-backtrace + yql-utils-failure_injector + cpp-client-ydb_driver + yql-core-url_preprocessing + yt-comp_nodes-dq + yt-comp_nodes-llvm14 + yt-codec-codegen + providers-yt-dq_task_preprocessor + yt-gateway-native + yt-lib-log + providers-yt-mkql_dq + yt-lib-yt_download + yt-lib-yt_url_lister + yt-lib-config_clusters + yql-parser-pg_wrapper +) +target_sources(mrrun PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrrun/mrrun.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/mrrun/mrrun.cpp +) +target_allocator(mrrun + system_allocator +) +vcs_info(mrrun) diff --git a/ydb/library/yql/tools/pgrun/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/pgrun/CMakeLists.darwin-arm64.txt index 0f049c974617..e2aa438f8891 100644 --- a/ydb/library/yql/tools/pgrun/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/tools/pgrun/CMakeLists.darwin-arm64.txt @@ -16,6 +16,7 @@ target_link_libraries(pgrun PUBLIC yutil contrib-libs-protobuf library-cpp-getopt + cpp-string_utils-base64 contrib-libs-fmt library-cpp-yson yql-sql-pg @@ -24,7 +25,7 @@ target_link_libraries(pgrun PUBLIC core-file_storage-proto core-file_storage-http_download core-services-mounts - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 library-yql-protos udf-service-exception_policy yql-utils-backtrace @@ -37,6 +38,9 @@ target_link_libraries(pgrun PUBLIC providers-common-udf_resolve providers-dq-provider yt-gateway-file + yt-comp_nodes-llvm14 + yt-codec-codegen + providers-pg-provider yql-core-url_preprocessing yql-parser-pg_wrapper ) @@ -44,8 +48,6 @@ target_link_options(pgrun PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(pgrun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/pgrun/pgrun.cpp diff --git a/ydb/library/yql/tools/pgrun/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/tools/pgrun/CMakeLists.darwin-x86_64.txt index 359f46db6896..19b278ed4300 100644 --- a/ydb/library/yql/tools/pgrun/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/tools/pgrun/CMakeLists.darwin-x86_64.txt @@ -17,6 +17,7 @@ target_link_libraries(pgrun PUBLIC library-cpp-cpuid_check contrib-libs-protobuf library-cpp-getopt + cpp-string_utils-base64 contrib-libs-fmt library-cpp-yson yql-sql-pg @@ -25,7 +26,7 @@ target_link_libraries(pgrun PUBLIC core-file_storage-proto core-file_storage-http_download core-services-mounts - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 library-yql-protos udf-service-exception_policy yql-utils-backtrace @@ -38,6 +39,9 @@ target_link_libraries(pgrun PUBLIC providers-common-udf_resolve providers-dq-provider yt-gateway-file + yt-comp_nodes-llvm14 + yt-codec-codegen + providers-pg-provider yql-core-url_preprocessing yql-parser-pg_wrapper ) @@ -45,8 +49,6 @@ target_link_options(pgrun PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(pgrun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/pgrun/pgrun.cpp diff --git a/ydb/library/yql/tools/pgrun/CMakeLists.linux-aarch64.txt b/ydb/library/yql/tools/pgrun/CMakeLists.linux-aarch64.txt index c88b5ad999ae..0221a90b0ccc 100644 --- a/ydb/library/yql/tools/pgrun/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/tools/pgrun/CMakeLists.linux-aarch64.txt @@ -17,6 +17,7 @@ target_link_libraries(pgrun PUBLIC yutil contrib-libs-protobuf library-cpp-getopt + cpp-string_utils-base64 contrib-libs-fmt library-cpp-yson yql-sql-pg @@ -25,7 +26,7 @@ target_link_libraries(pgrun PUBLIC core-file_storage-proto core-file_storage-http_download core-services-mounts - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 library-yql-protos udf-service-exception_policy yql-utils-backtrace @@ -38,6 +39,9 @@ target_link_libraries(pgrun PUBLIC providers-common-udf_resolve providers-dq-provider yt-gateway-file + yt-comp_nodes-llvm14 + yt-codec-codegen + providers-pg-provider yql-core-url_preprocessing yql-parser-pg_wrapper ) @@ -47,10 +51,6 @@ target_link_options(pgrun PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(pgrun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/pgrun/pgrun.cpp diff --git a/ydb/library/yql/tools/pgrun/CMakeLists.linux-x86_64.txt b/ydb/library/yql/tools/pgrun/CMakeLists.linux-x86_64.txt index a57a34a2049a..4e76307d0208 100644 --- a/ydb/library/yql/tools/pgrun/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/tools/pgrun/CMakeLists.linux-x86_64.txt @@ -18,6 +18,7 @@ target_link_libraries(pgrun PUBLIC library-cpp-cpuid_check contrib-libs-protobuf library-cpp-getopt + cpp-string_utils-base64 contrib-libs-fmt library-cpp-yson yql-sql-pg @@ -26,7 +27,7 @@ target_link_libraries(pgrun PUBLIC core-file_storage-proto core-file_storage-http_download core-services-mounts - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 library-yql-protos udf-service-exception_policy yql-utils-backtrace @@ -39,6 +40,9 @@ target_link_libraries(pgrun PUBLIC providers-common-udf_resolve providers-dq-provider yt-gateway-file + yt-comp_nodes-llvm14 + yt-codec-codegen + providers-pg-provider yql-core-url_preprocessing yql-parser-pg_wrapper ) @@ -48,10 +52,6 @@ target_link_options(pgrun PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(pgrun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/pgrun/pgrun.cpp diff --git a/ydb/library/yql/tools/pgrun/CMakeLists.windows-x86_64.txt b/ydb/library/yql/tools/pgrun/CMakeLists.windows-x86_64.txt index 23156e952fa4..753bd96756c7 100644 --- a/ydb/library/yql/tools/pgrun/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/tools/pgrun/CMakeLists.windows-x86_64.txt @@ -17,6 +17,7 @@ target_link_libraries(pgrun PUBLIC library-cpp-cpuid_check contrib-libs-protobuf library-cpp-getopt + cpp-string_utils-base64 contrib-libs-fmt library-cpp-yson yql-sql-pg @@ -25,7 +26,7 @@ target_link_libraries(pgrun PUBLIC core-file_storage-proto core-file_storage-http_download core-services-mounts - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 library-yql-protos udf-service-exception_policy yql-utils-backtrace @@ -38,6 +39,9 @@ target_link_libraries(pgrun PUBLIC providers-common-udf_resolve providers-dq-provider yt-gateway-file + yt-comp_nodes-llvm14 + yt-codec-codegen + providers-pg-provider yql-core-url_preprocessing yql-parser-pg_wrapper ) diff --git a/ydb/library/yql/tools/sql2yql/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/sql2yql/CMakeLists.darwin-arm64.txt index 75c88bee992c..b13fe89ab5f3 100644 --- a/ydb/library/yql/tools/sql2yql/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/tools/sql2yql/CMakeLists.darwin-arm64.txt @@ -8,9 +8,6 @@ add_executable(sql2yql) -target_compile_options(sql2yql PRIVATE - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> -) target_link_libraries(sql2yql PUBLIC contrib-libs-cxxsupp yutil @@ -28,8 +25,6 @@ target_link_options(sql2yql PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(sql2yql PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/sql2yql/sql2yql.cpp diff --git a/ydb/library/yql/tools/sql2yql/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/tools/sql2yql/CMakeLists.darwin-x86_64.txt index 6490a346a351..7d8a8887b798 100644 --- a/ydb/library/yql/tools/sql2yql/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/tools/sql2yql/CMakeLists.darwin-x86_64.txt @@ -8,9 +8,6 @@ add_executable(sql2yql) -target_compile_options(sql2yql PRIVATE - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> -) target_link_libraries(sql2yql PUBLIC contrib-libs-cxxsupp yutil @@ -29,8 +26,6 @@ target_link_options(sql2yql PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(sql2yql PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/sql2yql/sql2yql.cpp diff --git a/ydb/library/yql/tools/sql2yql/CMakeLists.linux-aarch64.txt b/ydb/library/yql/tools/sql2yql/CMakeLists.linux-aarch64.txt index d2bf38f9c09d..4b05d5ae69f3 100644 --- a/ydb/library/yql/tools/sql2yql/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/tools/sql2yql/CMakeLists.linux-aarch64.txt @@ -8,9 +8,6 @@ add_executable(sql2yql) -target_compile_options(sql2yql PRIVATE - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> -) target_link_libraries(sql2yql PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp @@ -31,9 +28,6 @@ target_link_options(sql2yql PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(sql2yql PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/sql2yql/sql2yql.cpp diff --git a/ydb/library/yql/tools/sql2yql/CMakeLists.linux-x86_64.txt b/ydb/library/yql/tools/sql2yql/CMakeLists.linux-x86_64.txt index a0e8f3864a00..b4598b69d624 100644 --- a/ydb/library/yql/tools/sql2yql/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/tools/sql2yql/CMakeLists.linux-x86_64.txt @@ -8,9 +8,6 @@ add_executable(sql2yql) -target_compile_options(sql2yql PRIVATE - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> -) target_link_libraries(sql2yql PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp @@ -32,9 +29,6 @@ target_link_options(sql2yql PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(sql2yql PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/sql2yql/sql2yql.cpp diff --git a/ydb/library/yql/tools/sql2yql/CMakeLists.windows-x86_64.txt b/ydb/library/yql/tools/sql2yql/CMakeLists.windows-x86_64.txt index 2ee47824b416..b0b1a8326f86 100644 --- a/ydb/library/yql/tools/sql2yql/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/tools/sql2yql/CMakeLists.windows-x86_64.txt @@ -8,9 +8,6 @@ add_executable(sql2yql) -target_compile_options(sql2yql PRIVATE - $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything> -) target_link_libraries(sql2yql PUBLIC contrib-libs-cxxsupp yutil diff --git a/ydb/library/yql/tools/sql_formatter/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/sql_formatter/CMakeLists.darwin-arm64.txt index 3c0daff9400e..3c4d46a0da24 100644 --- a/ydb/library/yql/tools/sql_formatter/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/tools/sql_formatter/CMakeLists.darwin-arm64.txt @@ -19,8 +19,6 @@ target_link_options(sql_formatter PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(sql_formatter PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/sql_formatter/sql_formatter.cpp diff --git a/ydb/library/yql/tools/sql_formatter/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/tools/sql_formatter/CMakeLists.darwin-x86_64.txt index 7fc0c27e3f51..6788b1af2d4b 100644 --- a/ydb/library/yql/tools/sql_formatter/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/tools/sql_formatter/CMakeLists.darwin-x86_64.txt @@ -20,8 +20,6 @@ target_link_options(sql_formatter PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(sql_formatter PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/sql_formatter/sql_formatter.cpp diff --git a/ydb/library/yql/tools/sql_formatter/CMakeLists.linux-aarch64.txt b/ydb/library/yql/tools/sql_formatter/CMakeLists.linux-aarch64.txt index af05b914a5e8..698ef666ccc0 100644 --- a/ydb/library/yql/tools/sql_formatter/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/tools/sql_formatter/CMakeLists.linux-aarch64.txt @@ -22,9 +22,6 @@ target_link_options(sql_formatter PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(sql_formatter PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/sql_formatter/sql_formatter.cpp diff --git a/ydb/library/yql/tools/sql_formatter/CMakeLists.linux-x86_64.txt b/ydb/library/yql/tools/sql_formatter/CMakeLists.linux-x86_64.txt index 56f07291b9ef..e4d785d91001 100644 --- a/ydb/library/yql/tools/sql_formatter/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/tools/sql_formatter/CMakeLists.linux-x86_64.txt @@ -23,9 +23,6 @@ target_link_options(sql_formatter PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(sql_formatter PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/sql_formatter/sql_formatter.cpp diff --git a/ydb/library/yql/tools/udf_dep_stub/CMakeLists.linux-aarch64.txt b/ydb/library/yql/tools/udf_dep_stub/CMakeLists.linux-aarch64.txt index 4cc94a170c02..2d1536a7118f 100644 --- a/ydb/library/yql/tools/udf_dep_stub/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/tools/udf_dep_stub/CMakeLists.linux-aarch64.txt @@ -20,9 +20,6 @@ target_link_options(yql_udf_dep_stub PRIVATE -fPIC -Wl,-z,notext -fPIC - -lpthread - -lrt - -ldl ) target_sources(yql_udf_dep_stub PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/udf_dep_stub/main.cpp diff --git a/ydb/library/yql/tools/udf_dep_stub/CMakeLists.linux-x86_64.txt b/ydb/library/yql/tools/udf_dep_stub/CMakeLists.linux-x86_64.txt index 4cc94a170c02..2d1536a7118f 100644 --- a/ydb/library/yql/tools/udf_dep_stub/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/tools/udf_dep_stub/CMakeLists.linux-x86_64.txt @@ -20,9 +20,6 @@ target_link_options(yql_udf_dep_stub PRIVATE -fPIC -Wl,-z,notext -fPIC - -lpthread - -lrt - -ldl ) target_sources(yql_udf_dep_stub PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/udf_dep_stub/main.cpp diff --git a/ydb/library/yql/tools/udf_probe/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/udf_probe/CMakeLists.darwin-arm64.txt index 44e6f2d2996f..4ddea215b85a 100644 --- a/ydb/library/yql/tools/udf_probe/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/tools/udf_probe/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(udf_probe PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(udf_probe PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/udf_probe/udf_probe.cpp diff --git a/ydb/library/yql/tools/udf_probe/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/tools/udf_probe/CMakeLists.darwin-x86_64.txt index 1edbd44aebde..40546f9418f7 100644 --- a/ydb/library/yql/tools/udf_probe/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/tools/udf_probe/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(udf_probe PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(udf_probe PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/udf_probe/udf_probe.cpp diff --git a/ydb/library/yql/tools/udf_probe/CMakeLists.linux-aarch64.txt b/ydb/library/yql/tools/udf_probe/CMakeLists.linux-aarch64.txt index 98f390f52392..557e4e463993 100644 --- a/ydb/library/yql/tools/udf_probe/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/tools/udf_probe/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(udf_probe PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(udf_probe PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/udf_probe/udf_probe.cpp diff --git a/ydb/library/yql/tools/udf_probe/CMakeLists.linux-x86_64.txt b/ydb/library/yql/tools/udf_probe/CMakeLists.linux-x86_64.txt index abc6b25228f3..9b7ce321fa65 100644 --- a/ydb/library/yql/tools/udf_probe/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/tools/udf_probe/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(udf_probe PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(udf_probe PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/udf_probe/udf_probe.cpp diff --git a/ydb/library/yql/tools/udf_resolver/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/udf_resolver/CMakeLists.darwin-arm64.txt index 9019b69f7cdd..306c446f892f 100644 --- a/ydb/library/yql/tools/udf_resolver/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/tools/udf_resolver/CMakeLists.darwin-arm64.txt @@ -29,8 +29,6 @@ target_link_options(udf_resolver PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(udf_resolver PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/udf_resolver/udf_resolver.cpp diff --git a/ydb/library/yql/tools/udf_resolver/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/tools/udf_resolver/CMakeLists.darwin-x86_64.txt index 553a90185ca9..93354000537b 100644 --- a/ydb/library/yql/tools/udf_resolver/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/tools/udf_resolver/CMakeLists.darwin-x86_64.txt @@ -30,8 +30,6 @@ target_link_options(udf_resolver PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(udf_resolver PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/udf_resolver/udf_resolver.cpp diff --git a/ydb/library/yql/tools/udf_resolver/CMakeLists.linux-aarch64.txt b/ydb/library/yql/tools/udf_resolver/CMakeLists.linux-aarch64.txt index a614caa4eaf2..312b3b55038b 100644 --- a/ydb/library/yql/tools/udf_resolver/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/tools/udf_resolver/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(udf_resolver PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(udf_resolver PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/udf_resolver/udf_resolver.cpp diff --git a/ydb/library/yql/tools/udf_resolver/CMakeLists.linux-x86_64.txt b/ydb/library/yql/tools/udf_resolver/CMakeLists.linux-x86_64.txt index c3223efa173a..cefe97e209a8 100644 --- a/ydb/library/yql/tools/udf_resolver/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/tools/udf_resolver/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(udf_resolver PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(udf_resolver PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/udf_resolver/udf_resolver.cpp diff --git a/ydb/library/yql/tools/yqlrun/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/yqlrun/CMakeLists.darwin-arm64.txt index 31b2a2b422fd..ef22d21da3e8 100644 --- a/ydb/library/yql/tools/yqlrun/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/tools/yqlrun/CMakeLists.darwin-arm64.txt @@ -25,7 +25,7 @@ target_link_libraries(yqlrun PUBLIC core-file_storage-proto core-file_storage-http_download core-services-mounts - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 library-yql-protos udf-service-exception_policy yql-utils-backtrace @@ -38,6 +38,8 @@ target_link_libraries(yqlrun PUBLIC providers-common-udf_resolve providers-dq-provider yt-gateway-file + yt-codec-codegen + yt-comp_nodes-llvm14 yql-core-url_preprocessing tools-yqlrun-http yql-parser-pg_wrapper @@ -46,21 +48,11 @@ target_link_options(yqlrun PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(yqlrun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/yqlrun.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/gateway_spec.cpp ) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/ui.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/ui.sh -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/uig.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/uig.sh -) target_allocator(yqlrun cpp-malloc-jemalloc ) diff --git a/ydb/library/yql/tools/yqlrun/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/tools/yqlrun/CMakeLists.darwin-x86_64.txt index 1cfaf9478895..bd3f3cc87423 100644 --- a/ydb/library/yql/tools/yqlrun/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/tools/yqlrun/CMakeLists.darwin-x86_64.txt @@ -26,7 +26,7 @@ target_link_libraries(yqlrun PUBLIC core-file_storage-proto core-file_storage-http_download core-services-mounts - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 library-yql-protos udf-service-exception_policy yql-utils-backtrace @@ -39,6 +39,8 @@ target_link_libraries(yqlrun PUBLIC providers-common-udf_resolve providers-dq-provider yt-gateway-file + yt-codec-codegen + yt-comp_nodes-llvm14 yql-core-url_preprocessing tools-yqlrun-http yql-parser-pg_wrapper @@ -47,21 +49,11 @@ target_link_options(yqlrun PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(yqlrun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/yqlrun.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/gateway_spec.cpp ) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/ui.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/ui.sh -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/uig.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/uig.sh -) target_allocator(yqlrun cpp-malloc-jemalloc ) diff --git a/ydb/library/yql/tools/yqlrun/CMakeLists.linux-aarch64.txt b/ydb/library/yql/tools/yqlrun/CMakeLists.linux-aarch64.txt index b9906b532184..0c2f26fdc821 100644 --- a/ydb/library/yql/tools/yqlrun/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/tools/yqlrun/CMakeLists.linux-aarch64.txt @@ -26,7 +26,7 @@ target_link_libraries(yqlrun PUBLIC core-file_storage-proto core-file_storage-http_download core-services-mounts - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 library-yql-protos udf-service-exception_policy yql-utils-backtrace @@ -39,6 +39,8 @@ target_link_libraries(yqlrun PUBLIC providers-common-udf_resolve providers-dq-provider yt-gateway-file + yt-codec-codegen + yt-comp_nodes-llvm14 yql-core-url_preprocessing tools-yqlrun-http yql-parser-pg_wrapper @@ -49,23 +51,11 @@ target_link_options(yqlrun PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(yqlrun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/yqlrun.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/gateway_spec.cpp ) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/ui.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/ui.sh -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/uig.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/uig.sh -) target_allocator(yqlrun cpp-malloc-jemalloc ) diff --git a/ydb/library/yql/tools/yqlrun/CMakeLists.linux-x86_64.txt b/ydb/library/yql/tools/yqlrun/CMakeLists.linux-x86_64.txt index c4fd1665765d..2ec9357a7873 100644 --- a/ydb/library/yql/tools/yqlrun/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/tools/yqlrun/CMakeLists.linux-x86_64.txt @@ -27,7 +27,7 @@ target_link_libraries(yqlrun PUBLIC core-file_storage-proto core-file_storage-http_download core-services-mounts - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 library-yql-protos udf-service-exception_policy yql-utils-backtrace @@ -40,6 +40,8 @@ target_link_libraries(yqlrun PUBLIC providers-common-udf_resolve providers-dq-provider yt-gateway-file + yt-codec-codegen + yt-comp_nodes-llvm14 yql-core-url_preprocessing tools-yqlrun-http yql-parser-pg_wrapper @@ -50,23 +52,11 @@ target_link_options(yqlrun PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(yqlrun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/yqlrun.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/gateway_spec.cpp ) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/ui.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/ui.sh -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/uig.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/uig.sh -) target_allocator(yqlrun cpp-malloc-jemalloc ) diff --git a/ydb/library/yql/tools/yqlrun/CMakeLists.windows-x86_64.txt b/ydb/library/yql/tools/yqlrun/CMakeLists.windows-x86_64.txt index 8a95ad8a7ef5..58663956bf2a 100644 --- a/ydb/library/yql/tools/yqlrun/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/tools/yqlrun/CMakeLists.windows-x86_64.txt @@ -26,7 +26,7 @@ target_link_libraries(yqlrun PUBLIC core-file_storage-proto core-file_storage-http_download core-services-mounts - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 library-yql-protos udf-service-exception_policy yql-utils-backtrace @@ -39,6 +39,8 @@ target_link_libraries(yqlrun PUBLIC providers-common-udf_resolve providers-dq-provider yt-gateway-file + yt-codec-codegen + yt-comp_nodes-llvm14 yql-core-url_preprocessing tools-yqlrun-http yql-parser-pg_wrapper @@ -47,14 +49,6 @@ target_sources(yqlrun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/yqlrun.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/gateway_spec.cpp ) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/ui.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/ui.sh -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/uig.sh - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/uig.sh -) target_allocator(yqlrun system_allocator ) diff --git a/ydb/library/yql/tools/yqlrun/http/CMakeLists.darwin-arm64.txt b/ydb/library/yql/tools/yqlrun/http/CMakeLists.darwin-arm64.txt index 47268f2584ae..d1f24d7c378f 100644 --- a/ydb/library/yql/tools/yqlrun/http/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/tools/yqlrun/http/CMakeLists.darwin-arm64.txt @@ -44,51 +44,3 @@ target_sources(tools-yqlrun-http PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/yql_servlet.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/yql_server.cpp ) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/bower.json - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/bower.json -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/favicon.ico - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/favicon.ico -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/file-index.html - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/file-index.html -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/css/base.css - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/css/base.css -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/ace.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/ace.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/app.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/app.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre-d3.core.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre-d3.core.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre.core.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre.core.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/graphlib.core.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/graphlib.core.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-sql.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-sql.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-yql.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-yql.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/theme-tomorrow.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/theme-tomorrow.min.js -) diff --git a/ydb/library/yql/tools/yqlrun/http/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/tools/yqlrun/http/CMakeLists.darwin-x86_64.txt index 47268f2584ae..d1f24d7c378f 100644 --- a/ydb/library/yql/tools/yqlrun/http/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/tools/yqlrun/http/CMakeLists.darwin-x86_64.txt @@ -44,51 +44,3 @@ target_sources(tools-yqlrun-http PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/yql_servlet.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/yql_server.cpp ) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/bower.json - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/bower.json -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/favicon.ico - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/favicon.ico -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/file-index.html - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/file-index.html -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/css/base.css - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/css/base.css -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/ace.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/ace.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/app.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/app.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre-d3.core.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre-d3.core.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre.core.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre.core.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/graphlib.core.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/graphlib.core.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-sql.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-sql.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-yql.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-yql.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/theme-tomorrow.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/theme-tomorrow.min.js -) diff --git a/ydb/library/yql/tools/yqlrun/http/CMakeLists.linux-aarch64.txt b/ydb/library/yql/tools/yqlrun/http/CMakeLists.linux-aarch64.txt index 12516cb5055c..6b038befd0dc 100644 --- a/ydb/library/yql/tools/yqlrun/http/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/tools/yqlrun/http/CMakeLists.linux-aarch64.txt @@ -45,51 +45,3 @@ target_sources(tools-yqlrun-http PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/yql_servlet.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/yql_server.cpp ) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/bower.json - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/bower.json -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/favicon.ico - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/favicon.ico -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/file-index.html - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/file-index.html -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/css/base.css - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/css/base.css -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/ace.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/ace.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/app.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/app.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre-d3.core.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre-d3.core.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre.core.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre.core.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/graphlib.core.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/graphlib.core.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-sql.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-sql.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-yql.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-yql.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/theme-tomorrow.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/theme-tomorrow.min.js -) diff --git a/ydb/library/yql/tools/yqlrun/http/CMakeLists.linux-x86_64.txt b/ydb/library/yql/tools/yqlrun/http/CMakeLists.linux-x86_64.txt index 12516cb5055c..6b038befd0dc 100644 --- a/ydb/library/yql/tools/yqlrun/http/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/tools/yqlrun/http/CMakeLists.linux-x86_64.txt @@ -45,51 +45,3 @@ target_sources(tools-yqlrun-http PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/yql_servlet.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/yql_server.cpp ) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/bower.json - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/bower.json -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/favicon.ico - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/favicon.ico -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/file-index.html - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/file-index.html -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/css/base.css - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/css/base.css -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/ace.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/ace.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/app.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/app.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre-d3.core.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre-d3.core.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre.core.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre.core.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/graphlib.core.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/graphlib.core.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-sql.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-sql.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-yql.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-yql.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/theme-tomorrow.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/theme-tomorrow.min.js -) diff --git a/ydb/library/yql/tools/yqlrun/http/CMakeLists.windows-x86_64.txt b/ydb/library/yql/tools/yqlrun/http/CMakeLists.windows-x86_64.txt index 47268f2584ae..d1f24d7c378f 100644 --- a/ydb/library/yql/tools/yqlrun/http/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/tools/yqlrun/http/CMakeLists.windows-x86_64.txt @@ -44,51 +44,3 @@ target_sources(tools-yqlrun-http PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/yql_servlet.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/yql_server.cpp ) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/bower.json - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/bower.json -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/favicon.ico - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/favicon.ico -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/file-index.html - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/file-index.html -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/css/base.css - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/css/base.css -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/ace.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/ace.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/app.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/app.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre-d3.core.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre-d3.core.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre.core.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/dagre.core.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/graphlib.core.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/graphlib.core.min.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-sql.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-sql.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-yql.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/mode-yql.js -) -copy_file( - ${CMAKE_SOURCE_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/theme-tomorrow.min.js - ${CMAKE_BINARY_DIR}/ydb/library/yql/tools/yqlrun/http/www/js/theme-tomorrow.min.js -) diff --git a/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.darwin-arm64.txt index 01c796b5a3eb..fb1a43c32206 100644 --- a/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.darwin-arm64.txt @@ -524,8 +524,6 @@ target_link_options(clickhouse_client_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(clickhouse_client_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/clickhouse_client_udf.cpp diff --git a/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.darwin-x86_64.txt index 01c796b5a3eb..fb1a43c32206 100644 --- a/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.darwin-x86_64.txt @@ -524,8 +524,6 @@ target_link_options(clickhouse_client_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(clickhouse_client_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/clickhouse_client_udf.cpp diff --git a/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.linux-aarch64.txt index 70d8d1a13944..c3b96845690f 100644 --- a/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.linux-aarch64.txt @@ -529,9 +529,6 @@ target_link_options(clickhouse_client_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(clickhouse_client_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/clickhouse_client_udf.cpp diff --git a/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.linux-x86_64.txt index 70d8d1a13944..c3b96845690f 100644 --- a/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/clickhouse/client/CMakeLists.linux-x86_64.txt @@ -529,9 +529,6 @@ target_link_options(clickhouse_client_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(clickhouse_client_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/clickhouse_client_udf.cpp diff --git a/ydb/library/yql/udfs/common/compress_base/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/compress_base/CMakeLists.linux-aarch64.txt index ef6f71bda19e..11b349069b09 100644 --- a/ydb/library/yql/udfs/common/compress_base/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/compress_base/CMakeLists.linux-aarch64.txt @@ -62,9 +62,6 @@ target_link_options(compress_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(compress_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/compress_base/compress_udf.cpp diff --git a/ydb/library/yql/udfs/common/compress_base/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/compress_base/CMakeLists.linux-x86_64.txt index ef6f71bda19e..11b349069b09 100644 --- a/ydb/library/yql/udfs/common/compress_base/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/compress_base/CMakeLists.linux-x86_64.txt @@ -62,9 +62,6 @@ target_link_options(compress_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(compress_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/compress_base/compress_udf.cpp diff --git a/ydb/library/yql/udfs/common/datetime/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/datetime/CMakeLists.linux-aarch64.txt index 38d475c85fa3..4347f1937bcd 100644 --- a/ydb/library/yql/udfs/common/datetime/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/datetime/CMakeLists.linux-aarch64.txt @@ -64,9 +64,6 @@ target_link_options(datetime_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(datetime_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/datetime/datetime_udf.cpp diff --git a/ydb/library/yql/udfs/common/datetime/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/datetime/CMakeLists.linux-x86_64.txt index 38d475c85fa3..4347f1937bcd 100644 --- a/ydb/library/yql/udfs/common/datetime/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/datetime/CMakeLists.linux-x86_64.txt @@ -64,9 +64,6 @@ target_link_options(datetime_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(datetime_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/datetime/datetime_udf.cpp diff --git a/ydb/library/yql/udfs/common/datetime2/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/datetime2/CMakeLists.darwin-arm64.txt index a4d4d342741c..4030e300f40f 100644 --- a/ydb/library/yql/udfs/common/datetime2/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/udfs/common/datetime2/CMakeLists.darwin-arm64.txt @@ -68,8 +68,6 @@ target_link_options(datetime2_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(datetime2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/datetime2/datetime_udf.cpp diff --git a/ydb/library/yql/udfs/common/datetime2/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/udfs/common/datetime2/CMakeLists.darwin-x86_64.txt index a4d4d342741c..4030e300f40f 100644 --- a/ydb/library/yql/udfs/common/datetime2/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/udfs/common/datetime2/CMakeLists.darwin-x86_64.txt @@ -68,8 +68,6 @@ target_link_options(datetime2_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(datetime2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/datetime2/datetime_udf.cpp diff --git a/ydb/library/yql/udfs/common/datetime2/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/datetime2/CMakeLists.linux-aarch64.txt index 166ca178103d..316300fd6d97 100644 --- a/ydb/library/yql/udfs/common/datetime2/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/datetime2/CMakeLists.linux-aarch64.txt @@ -73,9 +73,6 @@ target_link_options(datetime2_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(datetime2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/datetime2/datetime_udf.cpp diff --git a/ydb/library/yql/udfs/common/datetime2/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/datetime2/CMakeLists.linux-x86_64.txt index 166ca178103d..316300fd6d97 100644 --- a/ydb/library/yql/udfs/common/datetime2/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/datetime2/CMakeLists.linux-x86_64.txt @@ -73,9 +73,6 @@ target_link_options(datetime2_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(datetime2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/datetime2/datetime_udf.cpp diff --git a/ydb/library/yql/udfs/common/digest/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/digest/CMakeLists.linux-aarch64.txt index b87acb48be39..0d16b8e05fd0 100644 --- a/ydb/library/yql/udfs/common/digest/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/digest/CMakeLists.linux-aarch64.txt @@ -91,9 +91,6 @@ target_link_options(digest_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(digest_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/digest/digest_udf.cpp diff --git a/ydb/library/yql/udfs/common/digest/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/digest/CMakeLists.linux-x86_64.txt index b87acb48be39..0d16b8e05fd0 100644 --- a/ydb/library/yql/udfs/common/digest/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/digest/CMakeLists.linux-x86_64.txt @@ -91,9 +91,6 @@ target_link_options(digest_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(digest_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/digest/digest_udf.cpp diff --git a/ydb/library/yql/udfs/common/file/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/file/CMakeLists.darwin-arm64.txt index a5093aaeef3f..7d5029603cd5 100644 --- a/ydb/library/yql/udfs/common/file/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/udfs/common/file/CMakeLists.darwin-arm64.txt @@ -30,8 +30,6 @@ target_link_options(file_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(file_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/file/file_udf.cpp diff --git a/ydb/library/yql/udfs/common/file/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/udfs/common/file/CMakeLists.darwin-x86_64.txt index a5093aaeef3f..7d5029603cd5 100644 --- a/ydb/library/yql/udfs/common/file/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/udfs/common/file/CMakeLists.darwin-x86_64.txt @@ -30,8 +30,6 @@ target_link_options(file_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(file_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/file/file_udf.cpp diff --git a/ydb/library/yql/udfs/common/file/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/file/CMakeLists.linux-aarch64.txt index e9410d24a01b..e40207692a87 100644 --- a/ydb/library/yql/udfs/common/file/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/file/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(file_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(file_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/file/file_udf.cpp diff --git a/ydb/library/yql/udfs/common/file/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/file/CMakeLists.linux-x86_64.txt index e9410d24a01b..e40207692a87 100644 --- a/ydb/library/yql/udfs/common/file/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/file/CMakeLists.linux-x86_64.txt @@ -33,9 +33,6 @@ target_link_options(file_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(file_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/file/file_udf.cpp diff --git a/ydb/library/yql/udfs/common/histogram/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/histogram/CMakeLists.linux-aarch64.txt index bd397b46765a..b12cd2b823cf 100644 --- a/ydb/library/yql/udfs/common/histogram/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/histogram/CMakeLists.linux-aarch64.txt @@ -61,9 +61,6 @@ target_link_options(histogram_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(histogram_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/histogram/histogram_udf.cpp diff --git a/ydb/library/yql/udfs/common/histogram/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/histogram/CMakeLists.linux-x86_64.txt index bd397b46765a..b12cd2b823cf 100644 --- a/ydb/library/yql/udfs/common/histogram/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/histogram/CMakeLists.linux-x86_64.txt @@ -61,9 +61,6 @@ target_link_options(histogram_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(histogram_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/histogram/histogram_udf.cpp diff --git a/ydb/library/yql/udfs/common/hyperloglog/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/hyperloglog/CMakeLists.linux-aarch64.txt index 93cc7a37063f..93eac0cd4a94 100644 --- a/ydb/library/yql/udfs/common/hyperloglog/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/hyperloglog/CMakeLists.linux-aarch64.txt @@ -61,9 +61,6 @@ target_link_options(hyperloglog_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(hyperloglog_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/hyperloglog/hyperloglog_udf.cpp diff --git a/ydb/library/yql/udfs/common/hyperloglog/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/hyperloglog/CMakeLists.linux-x86_64.txt index 93cc7a37063f..93eac0cd4a94 100644 --- a/ydb/library/yql/udfs/common/hyperloglog/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/hyperloglog/CMakeLists.linux-x86_64.txt @@ -61,9 +61,6 @@ target_link_options(hyperloglog_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(hyperloglog_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/hyperloglog/hyperloglog_udf.cpp diff --git a/ydb/library/yql/udfs/common/hyperscan/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/hyperscan/CMakeLists.linux-x86_64.txt index 18cf2b78c938..858d4fff9347 100644 --- a/ydb/library/yql/udfs/common/hyperscan/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/hyperscan/CMakeLists.linux-x86_64.txt @@ -64,9 +64,6 @@ target_link_options(hyperscan_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(hyperscan_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/hyperscan/hyperscan_udf.cpp diff --git a/ydb/library/yql/udfs/common/ip_base/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/ip_base/CMakeLists.linux-aarch64.txt index f868a2ec44ea..75d6e5598aa0 100644 --- a/ydb/library/yql/udfs/common/ip_base/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/ip_base/CMakeLists.linux-aarch64.txt @@ -62,9 +62,6 @@ target_link_options(ip_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(ip_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/ip_base/ip_base.cpp diff --git a/ydb/library/yql/udfs/common/ip_base/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/ip_base/CMakeLists.linux-x86_64.txt index f868a2ec44ea..75d6e5598aa0 100644 --- a/ydb/library/yql/udfs/common/ip_base/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/ip_base/CMakeLists.linux-x86_64.txt @@ -62,9 +62,6 @@ target_link_options(ip_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(ip_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/ip_base/ip_base.cpp diff --git a/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.darwin-arm64.txt index 5c41eeae1a4c..b17eecc1e1cc 100644 --- a/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.darwin-arm64.txt @@ -17,6 +17,8 @@ target_link_libraries(common-ip_base-lib PUBLIC contrib-libs-cxxsupp yutil yql-public-udf + library-cpp-ipmath + library-cpp-ipv6_address ) target_sources(common-ip_base-lib PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/ip_base/lib/ip_base_udf.cpp diff --git a/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.darwin-x86_64.txt index 5c41eeae1a4c..b17eecc1e1cc 100644 --- a/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.darwin-x86_64.txt @@ -17,6 +17,8 @@ target_link_libraries(common-ip_base-lib PUBLIC contrib-libs-cxxsupp yutil yql-public-udf + library-cpp-ipmath + library-cpp-ipv6_address ) target_sources(common-ip_base-lib PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/ip_base/lib/ip_base_udf.cpp diff --git a/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.linux-aarch64.txt index 347d03fbe00d..01d3cf22b141 100644 --- a/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.linux-aarch64.txt @@ -18,6 +18,8 @@ target_link_libraries(common-ip_base-lib PUBLIC contrib-libs-cxxsupp yutil yql-public-udf + library-cpp-ipmath + library-cpp-ipv6_address ) target_sources(common-ip_base-lib PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/ip_base/lib/ip_base_udf.cpp diff --git a/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.linux-x86_64.txt index 347d03fbe00d..01d3cf22b141 100644 --- a/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.linux-x86_64.txt @@ -18,6 +18,8 @@ target_link_libraries(common-ip_base-lib PUBLIC contrib-libs-cxxsupp yutil yql-public-udf + library-cpp-ipmath + library-cpp-ipv6_address ) target_sources(common-ip_base-lib PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/ip_base/lib/ip_base_udf.cpp diff --git a/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.windows-x86_64.txt b/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.windows-x86_64.txt index 5c41eeae1a4c..b17eecc1e1cc 100644 --- a/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/udfs/common/ip_base/lib/CMakeLists.windows-x86_64.txt @@ -17,6 +17,8 @@ target_link_libraries(common-ip_base-lib PUBLIC contrib-libs-cxxsupp yutil yql-public-udf + library-cpp-ipmath + library-cpp-ipv6_address ) target_sources(common-ip_base-lib PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/ip_base/lib/ip_base_udf.cpp diff --git a/ydb/library/yql/udfs/common/json/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/json/CMakeLists.linux-aarch64.txt index 62f5b11617cc..6fe03bbdad86 100644 --- a/ydb/library/yql/udfs/common/json/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/json/CMakeLists.linux-aarch64.txt @@ -61,9 +61,6 @@ target_link_options(json_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(json_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/json/json_udf.cpp diff --git a/ydb/library/yql/udfs/common/json/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/json/CMakeLists.linux-x86_64.txt index 62f5b11617cc..6fe03bbdad86 100644 --- a/ydb/library/yql/udfs/common/json/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/json/CMakeLists.linux-x86_64.txt @@ -61,9 +61,6 @@ target_link_options(json_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(json_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/json/json_udf.cpp diff --git a/ydb/library/yql/udfs/common/json2/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/json2/CMakeLists.darwin-arm64.txt index a952f4ce4613..5b1dd9dbeba2 100644 --- a/ydb/library/yql/udfs/common/json2/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/udfs/common/json2/CMakeLists.darwin-arm64.txt @@ -62,8 +62,6 @@ target_link_options(json2_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(json2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/json2/json2_udf.cpp diff --git a/ydb/library/yql/udfs/common/json2/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/udfs/common/json2/CMakeLists.darwin-x86_64.txt index a952f4ce4613..5b1dd9dbeba2 100644 --- a/ydb/library/yql/udfs/common/json2/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/udfs/common/json2/CMakeLists.darwin-x86_64.txt @@ -62,8 +62,6 @@ target_link_options(json2_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(json2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/json2/json2_udf.cpp diff --git a/ydb/library/yql/udfs/common/json2/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/json2/CMakeLists.linux-aarch64.txt index cfc0cea2b1a8..16b4532aec76 100644 --- a/ydb/library/yql/udfs/common/json2/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/json2/CMakeLists.linux-aarch64.txt @@ -67,9 +67,6 @@ target_link_options(json2_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(json2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/json2/json2_udf.cpp diff --git a/ydb/library/yql/udfs/common/json2/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/json2/CMakeLists.linux-x86_64.txt index cfc0cea2b1a8..16b4532aec76 100644 --- a/ydb/library/yql/udfs/common/json2/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/json2/CMakeLists.linux-x86_64.txt @@ -67,9 +67,6 @@ target_link_options(json2_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(json2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/json2/json2_udf.cpp diff --git a/ydb/library/yql/udfs/common/knn/knn-defines.h b/ydb/library/yql/udfs/common/knn/knn-defines.h new file mode 100644 index 000000000000..647a4c9c1866 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/knn-defines.h @@ -0,0 +1,37 @@ +#pragma once + +#include "util/system/types.h" + +enum EFormat: ui8 { + FloatVector = 1, // 4-byte per element + Uint8Vector = 2, // 1-byte per element, better than Int8 for positive-only Float + Int8Vector = 3, // 1-byte per element + BitVector = 10, // 1-bit per element +}; + +template <typename T> +struct TTypeToFormat; + +template <> +struct TTypeToFormat<float> { + static constexpr auto Format = EFormat::FloatVector; +}; + +template <> +struct TTypeToFormat<i8> { + static constexpr auto Format = EFormat::Int8Vector; +}; + +template <> +struct TTypeToFormat<ui8> { + static constexpr auto Format = EFormat::Uint8Vector; +}; + +template <> +struct TTypeToFormat<bool> { + static constexpr auto Format = EFormat::BitVector; +}; + +template <typename T> +inline constexpr auto Format = TTypeToFormat<T>::Format; +inline constexpr auto HeaderLen = sizeof(ui8); diff --git a/ydb/library/yql/udfs/common/knn/knn-distance.h b/ydb/library/yql/udfs/common/knn/knn-distance.h new file mode 100644 index 000000000000..ba78f3e2895d --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/knn-distance.h @@ -0,0 +1,234 @@ +#pragma once + +#include "knn-defines.h" +#include "knn-serializer.h" + +#include <ydb/library/yql/public/udf/udf_helpers.h> + +#include <library/cpp/dot_product/dot_product.h> +#include <library/cpp/l1_distance/l1_distance.h> +#include <library/cpp/l2_distance/l2_distance.h> +#include <util/generic/array_ref.h> +#include <util/generic/buffer.h> +#include <util/stream/format.h> + +#include <bit> + +using namespace NYql; +using namespace NYql::NUdf; + +inline void BitVectorHandleShort(ui64 byteLen, const ui64* v1, const ui64* v2, auto&& op) { + Y_ASSERT(0 < byteLen); + Y_ASSERT(byteLen < sizeof(ui64)); + ui64 d1 = 0; + ui64 d2 = 0; + // TODO manual switch for [1..7]? + std::memcpy(&d1, v1, byteLen); + std::memcpy(&d2, v2, byteLen); + op(d1, d2); +} + +inline void BitVectorHandleTail(ui64 byteLen, const ui64* v1, const ui64* v2, auto&& op) { + if (Y_LIKELY(byteLen == 0)) // fast-path for aligned case + return; + Y_ASSERT(byteLen < sizeof(ui64)); + const auto unneededBytes = sizeof(ui64) - byteLen; + const auto* r1 = reinterpret_cast<const char*>(v1) - unneededBytes; + const auto* r2 = reinterpret_cast<const char*>(v2) - unneededBytes; + ui64 d1, d2; // unaligned loads + std::memcpy(&d1, r1, sizeof(ui64)); + std::memcpy(&d2, r2, sizeof(ui64)); + ui64 mask = 0; + // big endian: 0 1 2 3 4 5 6 7 | 0 1 2 3 | 0 1 | 0 | 0 => needs to zero high bits + // little endian: 7 6 5 4 3 2 1 0 | 3 2 1 0 | 1 0 | 0 | 0 => needs to zero low bits + if constexpr (std::endian::native == std::endian::big) { + mask = (ui64{1} << (byteLen * 8)) - 1; + } else { + mask = ~((ui64{1} << (unneededBytes * 8)) - 1); + } + op(d1 & mask, d2 & mask); +} + +inline void BitVectorHandleOp(ui64 bitLen, const ui64* v1, const ui64* v2, auto&& op) { + if (Y_UNLIKELY(bitLen == 0)) + return; + auto byteLen = (bitLen + 7) / 8; + const auto wordLen = byteLen / sizeof(ui64); + if (Y_LIKELY(wordLen == 0)) // fast-path for short case + return BitVectorHandleShort(byteLen, v1, v2, op); + byteLen %= sizeof(ui64); + for (const auto* end = v1 + wordLen; v1 != end; ++v1, ++v2) { + op(*v1, *v2); + } + BitVectorHandleTail(byteLen, v1, v2, op); +} + +using TDistanceResult = std::optional<float>; + +template <typename Func> +inline TDistanceResult VectorFuncImpl(const auto* v1, const auto* v2, auto len1, auto len2, Func&& func) { + if (Y_UNLIKELY(len1 != len2)) + return {}; + return {func(v1, v2, len1)}; +} + +template <typename T, typename Func> +inline auto VectorFunc(const TStringRef& str1, const TStringRef& str2, Func&& func) { + const TArrayRef<const T> v1 = TKnnVectorSerializer<T>::GetArray(str1); + const TArrayRef<const T> v2 = TKnnVectorSerializer<T>::GetArray(str2); + return VectorFuncImpl(v1.data(), v2.data(), v1.size(), v2.size(), std::forward<Func>(func)); +} + +template <typename Func> +inline auto BitVectorFunc(const TStringRef& str1, const TStringRef& str2, Func&& func) { + auto [v1, bitLen1] = TKnnSerializerFacade::GetBitArray(str1); + auto [v2, bitLen2] = TKnnSerializerFacade::GetBitArray(str2); + return VectorFuncImpl(v1, v2, bitLen1, bitLen2, std::forward<Func>(func)); +} + +inline TDistanceResult KnnManhattanDistance(const TStringRef& str1, const TStringRef& str2) { + const ui8 format1 = str1.Data()[str1.Size() - HeaderLen]; + const ui8 format2 = str2.Data()[str2.Size() - HeaderLen]; + if (Y_UNLIKELY(format1 != format2)) + return {}; + + switch (format1) { + case EFormat::FloatVector: + return VectorFunc<float>(str1, str2, [](const float* v1, const float* v2, size_t len) { + return ::L1Distance(v1, v2, len); + }); + case EFormat::Int8Vector: + return VectorFunc<i8>(str1, str2, [](const i8* v1, const i8* v2, size_t len) { + return ::L1Distance(v1, v2, len); + }); + case EFormat::Uint8Vector: + return VectorFunc<ui8>(str1, str2, [](const ui8* v1, const ui8* v2, size_t len) { + return ::L1Distance(v1, v2, len); + }); + case EFormat::BitVector: + return BitVectorFunc(str1, str2, [](const ui64* v1, const ui64* v2, ui64 bitLen) { + ui64 ret = 0; + BitVectorHandleOp(bitLen, v1, v2, [&](ui64 d1, ui64 d2) { + ret += std::popcount(d1 ^ d2); + }); + return ret; + }); + default: + return {}; + } +} + +inline TDistanceResult KnnEuclideanDistance(const TStringRef& str1, const TStringRef& str2) { + const ui8 format1 = str1.Data()[str1.Size() - HeaderLen]; + const ui8 format2 = str2.Data()[str2.Size() - HeaderLen]; + if (Y_UNLIKELY(format1 != format2)) + return {}; + + switch (format1) { + case EFormat::FloatVector: + return VectorFunc<float>(str1, str2, [](const float* v1, const float* v2, size_t len) { + return ::L2Distance(v1, v2, len); + }); + case EFormat::Int8Vector: + return VectorFunc<i8>(str1, str2, [](const i8* v1, const i8* v2, size_t len) { + return ::L2Distance(v1, v2, len); + }); + case EFormat::Uint8Vector: + return VectorFunc<ui8>(str1, str2, [](const ui8* v1, const ui8* v2, size_t len) { + return ::L2Distance(v1, v2, len); + }); + case EFormat::BitVector: + return BitVectorFunc(str1, str2, [](const ui64* v1, const ui64* v2, ui64 bitLen) { + ui64 ret = 0; + BitVectorHandleOp(bitLen, v1, v2, [&](ui64 d1, ui64 d2) { + ret += std::popcount(d1 ^ d2); + }); + return NPrivate::NL2Distance::L2DistanceSqrt(ret); + }); + default: + return {}; + } +} + +inline TDistanceResult KnnDotProduct(const TStringRef& str1, const TStringRef& str2) { + const ui8 format1 = str1.Data()[str1.Size() - HeaderLen]; + const ui8 format2 = str2.Data()[str2.Size() - HeaderLen]; + if (Y_UNLIKELY(format1 != format2)) + return {}; + + switch (format1) { + case EFormat::FloatVector: + return VectorFunc<float>(str1, str2, [](const float* v1, const float* v2, size_t len) { + return ::DotProduct(v1, v2, len); + }); + case EFormat::Int8Vector: + return VectorFunc<i8>(str1, str2, [](const i8* v1, const i8* v2, size_t len) { + return ::DotProduct(v1, v2, len); + }); + case EFormat::Uint8Vector: + return VectorFunc<ui8>(str1, str2, [](const ui8* v1, const ui8* v2, size_t len) { + return ::DotProduct(v1, v2, len); + }); + case EFormat::BitVector: + return BitVectorFunc(str1, str2, [](const ui64* v1, const ui64* v2, ui64 bitLen) { + ui64 ret = 0; + BitVectorHandleOp(bitLen, v1, v2, [&](ui64 d1, ui64 d2) { + ret += std::popcount(d1 & d2); + }); + return ret; + }); + default: + return {}; + } +} + +inline TDistanceResult KnnCosineSimilarity(const TStringRef& str1, const TStringRef& str2) { + const ui8 format1 = str1.Data()[str1.Size() - HeaderLen]; + const ui8 format2 = str2.Data()[str2.Size() - HeaderLen]; + if (Y_UNLIKELY(format1 != format2)) + return {}; + + auto compute = [](auto ll, float lr, auto rr) { + const float norm = std::sqrt(ll * rr); + const float cosine = norm != 0 ? lr / norm : 1; + return cosine; + }; + + switch (format1) { + case EFormat::FloatVector: + return VectorFunc<float>(str1, str2, [&](const float* v1, const float* v2, size_t len) { + const auto res = ::TriWayDotProduct(v1, v2, len); + return compute(res.LL, res.LR, res.RR); + }); + case EFormat::Int8Vector: + return VectorFunc<i8>(str1, str2, [&](const i8* v1, const i8* v2, size_t len) { + // TODO We can optimize it if we will iterate over both vector at the same time, look to the float implementation + const i64 ll = ::DotProduct(v1, v1, len); + const i64 lr = ::DotProduct(v1, v2, len); + const i64 rr = ::DotProduct(v2, v2, len); + return compute(ll, lr, rr); + }); + case EFormat::Uint8Vector: + return VectorFunc<ui8>(str1, str2, [&](const ui8* v1, const ui8* v2, size_t len) { + // TODO We can optimize it if we will iterate over both vector at the same time, look to the float implementation + const ui64 ll = ::DotProduct(v1, v1, len); + const ui64 lr = ::DotProduct(v1, v2, len); + const ui64 rr = ::DotProduct(v2, v2, len); + return compute(ll, lr, rr); + }); + case EFormat::BitVector: + return BitVectorFunc(str1, str2, [&](const ui64* v1, const ui64* v2, ui64 bitLen) { + ui64 ll = 0; + ui64 rr = 0; + ui64 lr = 0; + BitVectorHandleOp(bitLen, v1, v2, [&](ui64 d1, ui64 d2) { + ll += std::popcount(d1); + rr += std::popcount(d2); + lr += std::popcount(d1 & d2); + }); + return compute(ll, lr, rr); + }); + default: + return {}; + } +} diff --git a/ydb/library/yql/udfs/common/knn/knn-enumerator.h b/ydb/library/yql/udfs/common/knn/knn-enumerator.h new file mode 100644 index 000000000000..7526f96bb613 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/knn-enumerator.h @@ -0,0 +1,24 @@ +#pragma once + +#include <ydb/library/yql/public/udf/udf_helpers.h> + +#include <util/generic/array_ref.h> + +using namespace NYql; +using namespace NYql::NUdf; + +template <typename T, typename TCallback> +void EnumerateVector(const TUnboxedValuePod vector, TCallback&& callback) { + const auto* elements = vector.GetElements(); + if (elements) { + for (auto& value : TArrayRef{elements, vector.GetListLength()}) { + callback(value.Get<T>()); + } + } else { + TUnboxedValue value; + const auto it = vector.GetListIterator(); + while (it.Next(value)) { + callback(value.Get<T>()); + } + } +} diff --git a/ydb/library/yql/udfs/common/knn/knn-serializer.h b/ydb/library/yql/udfs/common/knn/knn-serializer.h new file mode 100644 index 000000000000..83c52484458a --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/knn-serializer.h @@ -0,0 +1,174 @@ +#pragma once + +#include "knn-defines.h" +#include "knn-enumerator.h" + +#include <ydb/library/yql/public/udf/udf_helpers.h> + +#include <util/generic/array_ref.h> +#include <util/generic/buffer.h> +#include <util/stream/format.h> + +using namespace NYql; +using namespace NYql::NUdf; + +template <typename TTo, typename TFrom = TTo> +class TKnnVectorSerializer { +public: + static TUnboxedValue Serialize(const IValueBuilder* valueBuilder, const TUnboxedValue x) { + auto serialize = [&](IOutputStream& outStream) { + EnumerateVector<TFrom>(x, [&](TFrom from) { + TTo to = static_cast<TTo>(from); + outStream.Write(&to, sizeof(TTo)); + }); + const auto format = Format<TTo>; + outStream.Write(&format, HeaderLen); + }; + + if (x.HasFastListLength()) { + auto str = valueBuilder->NewStringNotFilled(x.GetListLength() * sizeof(TTo) + HeaderLen); + auto strRef = str.AsStringRef(); + TMemoryOutput memoryOutput(strRef.Data(), strRef.Size()); + + serialize(memoryOutput); + return str; + } else { + TString str; + TStringOutput stringOutput(str); + + serialize(stringOutput); + return valueBuilder->NewString(str); + } + } + + static TUnboxedValue Deserialize(const IValueBuilder* valueBuilder, const TStringRef& str) { + auto vector = GetArray(str); + if (Y_UNLIKELY(vector.empty())) + return {}; + + TUnboxedValue* items = nullptr; + auto res = valueBuilder->NewArray(vector.size(), items); + + for (auto element : vector) { + *items++ = TUnboxedValuePod{static_cast<TFrom>(element)}; + } + + return res.Release(); + } + + static TArrayRef<const TTo> GetArray(const TStringRef& str) { + const char* buf = str.Data(); + const size_t len = str.Size() - HeaderLen; + + if (Y_UNLIKELY(len % sizeof(TTo) != 0)) + return {}; + + const ui32 count = len / sizeof(TTo); + + return {reinterpret_cast<const TTo*>(buf), count}; + } +}; + +// Encode all positive floats as bit 1, negative floats as bit 0. +// Bits serialized to ui64, from high to low bit and written in native endianess. +// The tail encoded as ui64 or ui32, ui16, ui8 respectively. +// After these we write count of not written bits in last byte that we need to respect. +// So length of vector in bits is 8 * ((count of written bytes) - 1 (format) - 1 (for x)) - x (count of bits not written in last byte). +template <typename TFrom> +class TKnnBitVectorSerializer { +public: + static TUnboxedValue Serialize(const IValueBuilder* valueBuilder, const TUnboxedValue x) { + auto serialize = [&x](IOutputStream& outStream) { + ui64 accumulator = 0; + ui8 filledBits = 0; + + EnumerateVector<TFrom>(x, [&](TFrom element) { + if (element > 0) + accumulator |= 1; + + if (++filledBits == 64) { + outStream.Write(&accumulator, sizeof(ui64)); + accumulator = 0; + filledBits = 0; + } + accumulator <<= 1; + }); + accumulator >>= 1; + Y_ASSERT(filledBits < 64); + filledBits += 7; + + auto write = [&](auto v) { + outStream.Write(&v, sizeof(v)); + }; + auto tailWriteIf = [&]<typename T>() { + if (filledBits < sizeof(T) * 8) { + return; + } + write(static_cast<T>(accumulator)); + if constexpr (sizeof(T) < sizeof(accumulator)) { + accumulator >>= sizeof(T) * 8; + } + filledBits -= sizeof(T) * 8; + }; + tailWriteIf.template operator()<ui64>(); + tailWriteIf.template operator()<ui32>(); + tailWriteIf.template operator()<ui16>(); + tailWriteIf.template operator()<ui8>(); + + Y_ASSERT(filledBits < 8); + write(static_cast<ui8>(7 - filledBits)); + write(EFormat::BitVector); + }; + + if (x.HasFastListLength()) { + // We expect byte lenght of the result is (bit-length / 8 + bit-length % 8 != 0) + bits-count (1 byte) + HeaderLen + // First part can be optimized to (bit-length + 7) / 8 + auto str = valueBuilder->NewStringNotFilled((x.GetListLength() + 7) / 8 + 1 + HeaderLen); + auto strRef = str.AsStringRef(); + TMemoryOutput memoryOutput(strRef.Data(), strRef.Size()); + + serialize(memoryOutput); + return str; + } else { + TString str; + TStringOutput stringOutput(str); + + serialize(stringOutput); + return valueBuilder->NewString(str); + } + } +}; + +class TKnnSerializerFacade { +public: + static TUnboxedValue Deserialize(const IValueBuilder* valueBuilder, const TStringRef& str) { + if (Y_UNLIKELY(str.Size() == 0)) + return {}; + + const ui8 format = str.Data()[str.Size() - HeaderLen]; + switch (format) { + case EFormat::FloatVector: + return TKnnVectorSerializer<float>::Deserialize(valueBuilder, str); + case EFormat::Int8Vector: + return TKnnVectorSerializer<i8, float>::Deserialize(valueBuilder, str); + case EFormat::Uint8Vector: + return TKnnVectorSerializer<ui8, float>::Deserialize(valueBuilder, str); + case EFormat::BitVector: + default: + return {}; + } + } + + struct TBitArray { + const ui64* data = nullptr; + ui64 bitLen = 0; + }; + + static TBitArray GetBitArray(const TStringRef& str) { + if (Y_UNLIKELY(str.Size() < 2)) + return {}; + const char* buf = str.Data(); + const ui64 len = 8 * (str.Size() - HeaderLen - 1) - static_cast<ui8>(buf[str.Size() - HeaderLen - 1]); + return {reinterpret_cast<const ui64*>(buf), len}; + } +}; diff --git a/ydb/library/yql/udfs/common/knn/knn.cpp b/ydb/library/yql/udfs/common/knn/knn.cpp new file mode 100644 index 000000000000..cb304c2077d4 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/knn.cpp @@ -0,0 +1,406 @@ +#include "knn-enumerator.h" +#include "knn-serializer.h" +#include "knn-distance.h" + +#include <ydb/library/yql/public/udf/udf_helpers.h> + +#include <util/generic/buffer.h> +#include <util/generic/queue.h> +#include <util/stream/format.h> + +#include <format> + +using namespace NYql; +using namespace NYql::NUdf; + +template <> +struct std::formatter<TStringRef>: std::formatter<std::string_view> { + template <typename FormatContext> + auto format(const TStringRef& param, FormatContext& fc) const { + return std::formatter<std::string_view>::format(std::string_view{param.Data(), param.Size()}, fc); + } +}; + +static constexpr const char TagStoredVector[] = "StoredVector"; + +static constexpr const char TagFloatVector[] = "FloatVector"; +using TFloatVector = TTagged<const char*, TagFloatVector>; +static constexpr const char TagInt8Vector[] = "Int8Vector"; +using TInt8Vector = TTagged<const char*, TagInt8Vector>; +static constexpr const char TagUint8Vector[] = "Uint8Vector"; +using TUint8Vector = TTagged<const char*, TagUint8Vector>; +static constexpr const char TagBitVector[] = "BitVector"; +using TBitVector = TTagged<const char*, TagBitVector>; + +SIMPLE_STRICT_UDF(TToBinaryStringFloat, TFloatVector(TAutoMap<TListType<float>>)) { + return TKnnVectorSerializer<float>::Serialize(valueBuilder, args[0]); +} + +SIMPLE_STRICT_UDF(TToBinaryStringInt8, TInt8Vector(TAutoMap<TListType<i8>>)) { + return TKnnVectorSerializer<i8>::Serialize(valueBuilder, args[0]); +} + +SIMPLE_STRICT_UDF(TToBinaryStringUint8, TUint8Vector(TAutoMap<TListType<ui8>>)) { + return TKnnVectorSerializer<ui8>::Serialize(valueBuilder, args[0]); +} + +template <typename Derived> +class TMultiSignatureBase: public TBoxedValue { +public: + using TBlockType = void; + using TTypeAwareMarker = void; + + explicit TMultiSignatureBase(IFunctionTypeInfoBuilder& builder) + : Pos_{GetSourcePosition(builder)} + { + } + + TUnboxedValue Run(const IValueBuilder* valueBuilder, const TUnboxedValuePod* args) const final try { + return static_cast<const Derived&>(*this).RunImpl(valueBuilder, args); + } catch (const std::exception&) { + TStringBuilder sb; + sb << Pos_ << " "; + sb << CurrentExceptionMessage(); + sb << Endl << "[" << TStringBuf(Derived::Name()) << "]"; + UdfTerminate(sb.c_str()); + } + + TSourcePosition GetPos() const { + return Pos_; + } + +protected: + static TStringRef GetArg(ITypeInfoHelper& typeInfoHelper, const TType*& argType, IFunctionTypeInfoBuilder& builder) { + TStringRef tag = TagStoredVector; + if (const auto kind = typeInfoHelper.GetTypeKind(argType); kind == ETypeKind::Null) { + argType = builder.SimpleType<const char*>(); + return tag; + } + const TOptionalTypeInspector optional{typeInfoHelper, argType}; + if (optional) { + argType = optional.GetItemType(); + } + const auto* dataType = argType; + const TTaggedTypeInspector tagged{typeInfoHelper, dataType}; + if (tagged) { + tag = tagged.GetTag(); + dataType = tagged.GetBaseType(); + } + const TDataTypeInspector data{typeInfoHelper, dataType}; + if (data && data.GetTypeId() == TDataType<const char*>::Id) { + return tag; + } + return {}; + } + + static bool ValidTag(const TStringRef& tag, std::initializer_list<TStringRef>&& allowedTags) { + return std::count(allowedTags.begin(), allowedTags.end(), tag) != 0; + } + +private: + TSourcePosition Pos_; +}; + +template <typename TFrom> +class TToBinaryStringBitImpl: public TMultiSignatureBase<TToBinaryStringBitImpl<TFrom>> { +public: + using TMultiSignatureBase<TToBinaryStringBitImpl<TFrom>>::TMultiSignatureBase; + + static const TStringRef& Name() { + static auto name = TStringRef::Of("ToBinaryStringBit"); + return name; + } + + TUnboxedValue RunImpl(const IValueBuilder* valueBuilder, const TUnboxedValuePod* args) const { + return TKnnBitVectorSerializer<TFrom>::Serialize(valueBuilder, args[0]); + } +}; + +class TToBinaryStringBit: public TMultiSignatureBase<TToBinaryStringBit> { +public: + using TMultiSignatureBase::TMultiSignatureBase; + + static const TStringRef& Name() { + static auto name = TStringRef::Of("ToBinaryStringBit"); + return name; + } + + static bool DeclareSignature(const TStringRef& name, TType* userType, IFunctionTypeInfoBuilder& builder, bool typesOnly) { + if (Name() != name) { + return false; + } + + auto typeInfoHelper = builder.TypeInfoHelper(); + Y_ENSURE(userType); + TTupleTypeInspector tuple{*typeInfoHelper, userType}; + Y_ENSURE(tuple); + Y_ENSURE(tuple.GetElementsCount() > 0); + TTupleTypeInspector argsTuple{*typeInfoHelper, tuple.GetElementType(0)}; + Y_ENSURE(argsTuple); + if (argsTuple.GetElementsCount() != 1) { + builder.SetError("One argument is expected"); + return true; + } + + auto argType = argsTuple.GetElementType(0); + if (const auto kind = typeInfoHelper->GetTypeKind(argType); kind == ETypeKind::Null) { + argType = builder.SimpleType<TListType<float>>(); + } + if (const TOptionalTypeInspector optional{*typeInfoHelper, argType}; optional) { + argType = optional.GetItemType(); + } + auto type = EType::None; + if (const TListTypeInspector list{*typeInfoHelper, argType}; list) { + if (const TDataTypeInspector data{*typeInfoHelper, list.GetItemType()}; data) { + if (data.GetTypeId() == TDataType<double>::Id) { + type = EType::Double; + } else if (data.GetTypeId() == TDataType<float>::Id) { + type = EType::Float; + } else if (data.GetTypeId() == TDataType<ui8>::Id) { + type = EType::Uint8; + } else if (data.GetTypeId() == TDataType<i8>::Id) { + type = EType::Int8; + } + } + } + if (type == EType::None) { + builder.SetError("'List<Double|Float|Uint8|Int8>' is expected"); + return true; + } + + builder.UserType(userType); + builder.Args(1)->Add(argType).Flags(ICallablePayload::TArgumentFlags::AutoMap); + builder.Returns<TBitVector>().IsStrict(); + + if (!typesOnly) { + if (type == EType::Double) { + builder.Implementation(new TToBinaryStringBitImpl<double>(builder)); + } else if (type == EType::Float) { + builder.Implementation(new TToBinaryStringBitImpl<float>(builder)); + } else if (type == EType::Uint8) { + builder.Implementation(new TToBinaryStringBitImpl<ui8>(builder)); + } else if (type == EType::Int8) { + builder.Implementation(new TToBinaryStringBitImpl<i8>(builder)); + } + } + return true; + } + +private: + enum class EType { + None, + Double, + Float, + Uint8, + Int8, + }; +}; + +class TFloatFromBinaryString: public TMultiSignatureBase<TFloatFromBinaryString> { +public: + using TMultiSignatureBase::TMultiSignatureBase; + + static const TStringRef& Name() { + static auto name = TStringRef::Of("FloatFromBinaryString"); + return name; + } + + TUnboxedValue RunImpl(const IValueBuilder* valueBuilder, const TUnboxedValuePod* args) const { + return TKnnSerializerFacade::Deserialize(valueBuilder, args[0].AsStringRef()); + } + + static bool DeclareSignature(const TStringRef& name, TType* userType, IFunctionTypeInfoBuilder& builder, bool typesOnly) { + if (Name() != name) { + return false; + } + + auto typeInfoHelper = builder.TypeInfoHelper(); + Y_ENSURE(userType); + TTupleTypeInspector tuple{*typeInfoHelper, userType}; + Y_ENSURE(tuple); + Y_ENSURE(tuple.GetElementsCount() > 0); + TTupleTypeInspector argsTuple{*typeInfoHelper, tuple.GetElementType(0)}; + Y_ENSURE(argsTuple); + if (argsTuple.GetElementsCount() != 1) { + builder.SetError("One argument is expected"); + return true; + } + + auto argType = argsTuple.GetElementType(0); + auto argTag = GetArg(*typeInfoHelper, argType, builder); + if (!ValidTag(argTag, {TagStoredVector, TagFloatVector, TagInt8Vector, TagUint8Vector})) { + builder.SetError("A result from 'ToBinaryString[Float|Int8|Uint8]' is expected as an argument"); + return true; + } + + builder.UserType(userType); + builder.Args(1)->Add(argType).Flags(ICallablePayload::TArgumentFlags::AutoMap); + if (ValidTag(argTag, {TagFloatVector, TagInt8Vector, TagUint8Vector}) && argType == argsTuple.GetElementType(0)) { + builder.Returns<TListType<float>>().IsStrict(); + } else { + builder.Returns<TOptional<TListType<float>>>().IsStrict(); + } + + if (!typesOnly) { + builder.Implementation(new TFloatFromBinaryString(builder)); + } + return true; + } +}; + +template <typename Derived> +class TDistanceBase: public TMultiSignatureBase<Derived> { + using Base = TMultiSignatureBase<Derived>; + +public: + using Base::Base; + + static bool DeclareSignature(const TStringRef& name, TType* userType, IFunctionTypeInfoBuilder& builder, bool typesOnly) { + if (Derived::Name() != name) { + return false; + } + + auto typeInfoHelper = builder.TypeInfoHelper(); + Y_ENSURE(userType); + TTupleTypeInspector tuple{*typeInfoHelper, userType}; + Y_ENSURE(tuple); + Y_ENSURE(tuple.GetElementsCount() > 0); + TTupleTypeInspector argsTuple{*typeInfoHelper, tuple.GetElementType(0)}; + Y_ENSURE(argsTuple); + if (argsTuple.GetElementsCount() != 2) { + builder.SetError("Two arguments are expected"); + return true; + } + + auto arg0Type = argsTuple.GetElementType(0); + auto arg0Tag = Base::GetArg(*typeInfoHelper, arg0Type, builder); + auto arg1Type = argsTuple.GetElementType(1); + auto arg1Tag = Base::GetArg(*typeInfoHelper, arg1Type, builder); + + if (!Base::ValidTag(arg0Tag, {TagStoredVector, TagFloatVector, TagInt8Vector, TagUint8Vector, TagBitVector}) || + !Base::ValidTag(arg1Tag, {TagStoredVector, TagFloatVector, TagInt8Vector, TagUint8Vector, TagBitVector})) { + builder.SetError("A result from 'ToBinaryString[Float|Int8|Uint8]' is expected as an argument"); + return true; + } + + if (arg0Tag != arg1Tag && arg0Tag != TagStoredVector && arg1Tag != TagStoredVector) { + builder.SetError(std::format("Arguments should have same tags, but '{}' is not equal to '{}'", arg0Tag, arg1Tag)); + return true; + } + + builder.UserType(userType); + builder.Args(2)->Add(arg0Type).Flags(ICallablePayload::TArgumentFlags::AutoMap).Add(arg1Type).Flags(ICallablePayload::TArgumentFlags::AutoMap); + builder.Returns<TOptional<float>>().IsStrict(); + + if (!typesOnly) { + builder.Implementation(new Derived(builder)); + } + return true; + } +}; + +class TInnerProductSimilarity: public TDistanceBase<TInnerProductSimilarity> { +public: + using TDistanceBase::TDistanceBase; + + static const TStringRef& Name() { + static auto name = TStringRef::Of("InnerProductSimilarity"); + return name; + } + + TUnboxedValue RunImpl(const IValueBuilder* valueBuilder, const TUnboxedValuePod* args) const { + Y_UNUSED(valueBuilder); + const auto ret = KnnDotProduct(args[0].AsStringRef(), args[1].AsStringRef()); + if (Y_UNLIKELY(!ret)) + return {}; + return TUnboxedValuePod{*ret}; + } +}; + +class TCosineSimilarity: public TDistanceBase<TCosineSimilarity> { +public: + using TDistanceBase::TDistanceBase; + + static const TStringRef& Name() { + static auto name = TStringRef::Of("CosineSimilarity"); + return name; + } + + TUnboxedValue RunImpl(const IValueBuilder* valueBuilder, const TUnboxedValuePod* args) const { + Y_UNUSED(valueBuilder); + const auto ret = KnnCosineSimilarity(args[0].AsStringRef(), args[1].AsStringRef()); + if (Y_UNLIKELY(!ret)) + return {}; + return TUnboxedValuePod{*ret}; + } +}; + +class TCosineDistance: public TDistanceBase<TCosineDistance> { +public: + using TDistanceBase::TDistanceBase; + + static const TStringRef& Name() { + static auto name = TStringRef::Of("CosineDistance"); + return name; + } + + TUnboxedValue RunImpl(const IValueBuilder* valueBuilder, const TUnboxedValuePod* args) const { + Y_UNUSED(valueBuilder); + const auto ret = KnnCosineSimilarity(args[0].AsStringRef(), args[1].AsStringRef()); + if (Y_UNLIKELY(!ret)) + return {}; + return TUnboxedValuePod{1 - *ret}; + } +}; + +class TManhattanDistance: public TDistanceBase<TManhattanDistance> { +public: + using TDistanceBase::TDistanceBase; + + static const TStringRef& Name() { + static auto name = TStringRef::Of("ManhattanDistance"); + return name; + } + + TUnboxedValue RunImpl(const IValueBuilder* valueBuilder, const TUnboxedValuePod* args) const { + Y_UNUSED(valueBuilder); + const auto ret = KnnManhattanDistance(args[0].AsStringRef(), args[1].AsStringRef()); + if (Y_UNLIKELY(!ret)) + return {}; + return TUnboxedValuePod{*ret}; + } +}; + +class TEuclideanDistance: public TDistanceBase<TEuclideanDistance> { +public: + using TDistanceBase::TDistanceBase; + + static const TStringRef& Name() { + static auto name = TStringRef::Of("EuclideanDistance"); + return name; + } + + TUnboxedValue RunImpl(const IValueBuilder* valueBuilder, const TUnboxedValuePod* args) const { + Y_UNUSED(valueBuilder); + const auto ret = KnnEuclideanDistance(args[0].AsStringRef(), args[1].AsStringRef()); + if (Y_UNLIKELY(!ret)) + return {}; + return TUnboxedValuePod{*ret}; + } +}; + +// TODO IR for Distance functions? + +SIMPLE_MODULE(TKnnModule, + TToBinaryStringFloat, + TToBinaryStringInt8, + TToBinaryStringUint8, + TToBinaryStringBit, + TFloatFromBinaryString, + TInnerProductSimilarity, + TCosineSimilarity, + TCosineDistance, + TManhattanDistance, + TEuclideanDistance) + +REGISTER_MODULES(TKnnModule) diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/result.json b/ydb/library/yql/udfs/common/knn/test/canondata/result.json new file mode 100644 index 000000000000..3185a3e7c98b --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/result.json @@ -0,0 +1,97 @@ +{ + "test.test[BitSerialization]": [ + { + "uri": "file://test.test_BitSerialization_/results.txt" + } + ], + "test.test[CosineDistance]": [ + { + "uri": "file://test.test_CosineDistance_/results.txt" + } + ], + "test.test[CosineSimilarity]": [ + { + "uri": "file://test.test_CosineSimilarity_/results.txt" + } + ], + "test.test[ErrorDistanceInvalidFormat]": [ + { + "uri": "file://test.test_ErrorDistanceInvalidFormat_/results.txt" + } + ], + "test.test[ErrorDistanceSameFormat]": [ + { + "uri": "file://test.test_ErrorDistanceSameFormat_/results.txt" + } + ], + "test.test[ErrorDistanceSameSize]": [ + { + "uri": "file://test.test_ErrorDistanceSameSize_/results.txt" + } + ], + "test.test[ErrorDistanceSameTag]": [ + { + "uri": "file://test.test_ErrorDistanceSameTag_/extracted" + } + ], + "test.test[ErrorFloatFromBinaryStringBitVector]": [ + { + "uri": "file://test.test_ErrorFloatFromBinaryStringBitVector_/extracted" + } + ], + "test.test[ErrorFloatFromBinaryStringEmpty]": [ + { + "uri": "file://test.test_ErrorFloatFromBinaryStringEmpty_/results.txt" + } + ], + "test.test[ErrorFloatFromBinaryStringInvalid]": [ + { + "uri": "file://test.test_ErrorFloatFromBinaryStringInvalid_/results.txt" + } + ], + "test.test[EuclideanDistance]": [ + { + "uri": "file://test.test_EuclideanDistance_/results.txt" + } + ], + "test.test[InnerProductSimilarity]": [ + { + "uri": "file://test.test_InnerProductSimilarity_/results.txt" + } + ], + "test.test[Int8Serialization]": [ + { + "uri": "file://test.test_Int8Serialization_/results.txt" + } + ], + "test.test[LazyListSerialization]": [ + { + "uri": "file://test.test_LazyListSerialization_/results.txt" + } + ], + "test.test[ListSerialization]": [ + { + "uri": "file://test.test_ListSerialization_/results.txt" + } + ], + "test.test[ManhattanDistance]": [ + { + "uri": "file://test.test_ManhattanDistance_/results.txt" + } + ], + "test.test[NullForwarding]": [ + { + "uri": "file://test.test_NullForwarding_/results.txt" + } + ], + "test.test[OptionalAutoUnpacking]": [ + { + "uri": "file://test.test_OptionalAutoUnpacking_/results.txt" + } + ], + "test.test[Uint8Serialization]": [ + { + "uri": "file://test.test_Uint8Serialization_/results.txt" + } + ] +} diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_BitSerialization_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_BitSerialization_/results.txt new file mode 100644 index 000000000000..46103e18ad49 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_BitSerialization_/results.txt @@ -0,0 +1,1482 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "//////////8ACg==" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "//////////8PBAo=" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "////////////AAo=" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "/////////////wAK" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "//////////////8ACg==" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "////////////////AAo=" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "/////////////////wAK" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "//////////////////8ACg==" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "////////////////////AAo=" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "////////////////////DwQK" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\0\0\0\0\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\0\0\0\0\0\4\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\0\0\0\0\0\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\0\0\0\0\0\0\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\0\0\0\0\0\0\0\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\0\0\0\0\0\0\0\0\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\x0F\4\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "/wAK" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "//8ACg==" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "////AAo=" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "/////wAK" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "//////8ACg==" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "////////AAo=" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "/////////wAK" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + [ + "/////////w8ECg==" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\4\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\0\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\0\0\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\0\0\0\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ]; + [ + "column1"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true; + "\0\0\0\0\0\0\0\0\4\n" + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_CosineDistance_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_CosineDistance_/results.txt new file mode 100644 index 000000000000..afc1172eaabe --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_CosineDistance_/results.txt @@ -0,0 +1,3370 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.025368094" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.025368094" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.025368094" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.29289323" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.29289323" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "0" + ] + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_CosineSimilarity_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_CosineSimilarity_/results.txt new file mode 100644 index 000000000000..2bcfadd0de08 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_CosineSimilarity_/results.txt @@ -0,0 +1,3370 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.9746319" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.9746319" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.9746319" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.70710677" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.70710677" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "1" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "1" + ] + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorDistanceInvalidFormat_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorDistanceInvalidFormat_/results.txt new file mode 100644 index 000000000000..b7f6606a2521 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorDistanceInvalidFormat_/results.txt @@ -0,0 +1,31 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + # + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorDistanceSameFormat_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorDistanceSameFormat_/results.txt new file mode 100644 index 000000000000..b7f6606a2521 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorDistanceSameFormat_/results.txt @@ -0,0 +1,31 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + # + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorDistanceSameSize_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorDistanceSameSize_/results.txt new file mode 100644 index 000000000000..b7f6606a2521 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorDistanceSameSize_/results.txt @@ -0,0 +1,31 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + # + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorDistanceSameTag_/extracted b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorDistanceSameTag_/extracted new file mode 100644 index 000000000000..5c24d77bbe99 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorDistanceSameTag_/extracted @@ -0,0 +1,11 @@ +<tmp_path>/program.sql:<main>: Error: Type annotation + + <tmp_path>/program.sql:<main>:6:1: Error: At function: RemovePrefixMembers, At function: Unordered, At function: PersistableRepr, At function: OrderedSqlProject, At function: SqlProjectItem + select Knn::CosineDistance($vector1, $vector2); + ^ + <tmp_path>/program.sql:<main>:6:13: Error: At function: Apply, At function: Udf, At Knn.CosineDistance + select Knn::CosineDistance($vector1, $vector2); + ^ + <tmp_path>/program.sql:<main>:6:13: Error: Failed to find UDF function: Knn.CosineDistance, reason: Error: Module: Knn, function: CosineDistance, error: Arguments should have same tags, but 'FloatVector' is not equal to 'Uint8Vector' + select Knn::CosineDistance($vector1, $vector2); + ^ \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorFloatFromBinaryStringBitVector_/extracted b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorFloatFromBinaryStringBitVector_/extracted new file mode 100644 index 000000000000..5919d1fd61bb --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorFloatFromBinaryStringBitVector_/extracted @@ -0,0 +1,11 @@ +<tmp_path>/program.sql:<main>: Error: Type annotation + + <tmp_path>/program.sql:<main>:4:1: Error: At function: RemovePrefixMembers, At function: Unordered, At function: PersistableRepr, At function: OrderedSqlProject, At function: SqlProjectItem + select Knn::FloatFromBinaryString($bitvector); + ^ + <tmp_path>/program.sql:<main>:4:13: Error: At function: Apply, At function: Udf, At Knn.FloatFromBinaryString + select Knn::FloatFromBinaryString($bitvector); + ^ + <tmp_path>/program.sql:<main>:4:13: Error: Failed to find UDF function: Knn.FloatFromBinaryString, reason: Error: Module: Knn, function: FloatFromBinaryString, error: A result from 'ToBinaryString[Float|Int8|Uint8]' is expected as an argument + select Knn::FloatFromBinaryString($bitvector); + ^ \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorFloatFromBinaryStringEmpty_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorFloatFromBinaryStringEmpty_/results.txt new file mode 100644 index 000000000000..9c8a428ca922 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorFloatFromBinaryStringEmpty_/results.txt @@ -0,0 +1,34 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "ListType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + # + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorFloatFromBinaryStringInvalid_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorFloatFromBinaryStringInvalid_/results.txt new file mode 100644 index 000000000000..9c8a428ca922 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ErrorFloatFromBinaryStringInvalid_/results.txt @@ -0,0 +1,34 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "ListType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + # + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_EuclideanDistance_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_EuclideanDistance_/results.txt new file mode 100644 index 000000000000..d83d2f972f9d --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_EuclideanDistance_/results.txt @@ -0,0 +1,3370 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "5.196152" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "2" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "5.196152" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "5" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "8" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "8" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "5" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "8" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "8" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "8" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "8" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "9" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "9" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "10" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "10" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "10" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "11" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "8" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "8" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "8" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "8" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "9" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "9" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "10" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "10" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "10" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "11" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "2" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "2" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "4" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "4" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "5" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "6" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "6" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "7" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "7" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "2" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "2" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "4" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "4" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "5" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "6" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "6" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "7" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "7" + ] + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_InnerProductSimilarity_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_InnerProductSimilarity_/results.txt new file mode 100644 index 000000000000..814fd28cba4c --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_InnerProductSimilarity_/results.txt @@ -0,0 +1,3370 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + %true + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "14" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "32" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "32" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "64" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "32" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "64" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "68" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "72" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "80" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "88" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "96" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "104" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "112" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "120" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "124" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "4" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "8" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "16" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "24" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "32" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "40" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "48" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "56" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "60" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "0" + ] + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_Int8Serialization_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_Int8Serialization_/results.txt new file mode 100644 index 000000000000..3d0013376b0d --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_Int8Serialization_/results.txt @@ -0,0 +1,217 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "TaggedType"; + "Int8Vector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "\1\2\3\4\5\3" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "ListType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "1"; + "2"; + "3"; + "4"; + "5" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.025368094" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.025368094" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.025368094" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.025368094" + ] + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_LazyListSerialization_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_LazyListSerialization_/results.txt new file mode 100644 index 000000000000..d8041dfae7c9 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_LazyListSerialization_/results.txt @@ -0,0 +1,95 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "TaggedType"; + "FloatVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "AACAPwAAAEAAAEBAAACAQAAAoEAB" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "ListType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "1"; + "2"; + "3"; + "4"; + "5" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ListSerialization_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ListSerialization_/results.txt new file mode 100644 index 000000000000..6ea5ffdac643 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ListSerialization_/results.txt @@ -0,0 +1,215 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "TaggedType"; + "FloatVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "mpmZPzMzE0CamVlAAACQQDMzs0AB" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "ListType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "1.2"; + "2.3"; + "3.4"; + "4.5"; + "5.6" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "@\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "@\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "@\0\n" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "TaggedType"; + "BitVector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "@\0\n" + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ManhattanDistance_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ManhattanDistance_/results.txt new file mode 100644 index 000000000000..ecc547e2fe8f --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_ManhattanDistance_/results.txt @@ -0,0 +1,3370 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "9" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "3" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "9" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "9" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "64" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "64" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "32" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "64" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "68" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "72" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "80" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "88" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "96" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "104" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "112" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "120" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "124" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "64"; + [ + "64" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "68"; + [ + "68" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "72"; + [ + "72" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "80"; + [ + "80" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "88"; + [ + "88" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "96"; + [ + "96" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "104"; + [ + "104" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "112"; + [ + "112" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "120"; + [ + "120" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "124"; + [ + "124" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "4" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "8" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "16" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "24" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "32" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "40" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "48" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "56" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "60" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "0"; + [ + "0" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "4"; + [ + "4" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "8"; + [ + "8" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "16"; + [ + "16" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "24"; + [ + "24" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "32"; + [ + "32" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "40"; + [ + "40" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "48"; + [ + "48" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "56"; + [ + "56" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Int32" + ] + ]; + [ + "column1"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "60"; + [ + "60" + ] + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_NullForwarding_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_NullForwarding_/results.txt new file mode 100644 index 000000000000..594282ab208b --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_NullForwarding_/results.txt @@ -0,0 +1,184 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_OptionalAutoUnpacking_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_OptionalAutoUnpacking_/results.txt new file mode 100644 index 000000000000..f4ba19bab626 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_OptionalAutoUnpacking_/results.txt @@ -0,0 +1,215 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + %true + ] + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/canondata/test.test_Uint8Serialization_/results.txt b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_Uint8Serialization_/results.txt new file mode 100644 index 000000000000..6e5fe282f1c3 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/canondata/test.test_Uint8Serialization_/results.txt @@ -0,0 +1,217 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "TaggedType"; + "Uint8Vector"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + "\1\2\3\4\5\2" + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "DataType"; + "Bool" + ] + ] + ] + ] + ]; + "Data" = [ + [ + %true + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "ListType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "1"; + "2"; + "3"; + "4"; + "5" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.025368094" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.025368094" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.025368094" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "column0"; + [ + "OptionalType"; + [ + "DataType"; + "Float" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "0.025368094" + ] + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/knn/test/cases/BitSerialization.sql b/ydb/library/yql/udfs/common/knn/test/cases/BitSerialization.sql new file mode 100644 index 000000000000..cf8a6ccc1e26 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/BitSerialization.sql @@ -0,0 +1,83 @@ +$bitvector_pos_1_00 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 00)); +$bitvector_pos_1_04 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 04)); +$bitvector_pos_1_08 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 08)); +$bitvector_pos_1_16 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 16)); +$bitvector_pos_1_24 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 24)); +$bitvector_pos_1_32 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 32)); +$bitvector_pos_1_40 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 40)); +$bitvector_pos_1_48 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 48)); +$bitvector_pos_1_56 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 56)); +$bitvector_pos_1_60 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 60)); + +$bitvector_neg_1_00 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 00)); +$bitvector_neg_1_04 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 04)); +$bitvector_neg_1_08 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 08)); +$bitvector_neg_1_16 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 16)); +$bitvector_neg_1_24 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 24)); +$bitvector_neg_1_32 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 32)); +$bitvector_neg_1_40 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 40)); +$bitvector_neg_1_48 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 48)); +$bitvector_neg_1_56 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 56)); +$bitvector_neg_1_60 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 60)); + +$bitvector_pos_04 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 04)); +$bitvector_pos_08 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 08)); +$bitvector_pos_16 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 16)); +$bitvector_pos_24 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 24)); +$bitvector_pos_32 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 32)); +$bitvector_pos_40 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 40)); +$bitvector_pos_48 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 48)); +$bitvector_pos_56 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 56)); +$bitvector_pos_60 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 60)); + +$bitvector_neg_04 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 04)); +$bitvector_neg_08 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 08)); +$bitvector_neg_16 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 16)); +$bitvector_neg_24 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 24)); +$bitvector_neg_32 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 32)); +$bitvector_neg_40 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 40)); +$bitvector_neg_48 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 48)); +$bitvector_neg_56 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 56)); +$bitvector_neg_60 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 60)); + +select Len(Untag($bitvector_pos_1_00, "BitVector")) == 8 + 0 + 2, $bitvector_pos_1_00; +select Len(Untag($bitvector_pos_1_04, "BitVector")) == 8 + 1 + 2, $bitvector_pos_1_04; +select Len(Untag($bitvector_pos_1_08, "BitVector")) == 8 + 1 + 2, $bitvector_pos_1_08; +select Len(Untag($bitvector_pos_1_16, "BitVector")) == 8 + 2 + 2, $bitvector_pos_1_16; +select Len(Untag($bitvector_pos_1_24, "BitVector")) == 8 + 3 + 2, $bitvector_pos_1_24; +select Len(Untag($bitvector_pos_1_32, "BitVector")) == 8 + 4 + 2, $bitvector_pos_1_32; +select Len(Untag($bitvector_pos_1_40, "BitVector")) == 8 + 5 + 2, $bitvector_pos_1_40; +select Len(Untag($bitvector_pos_1_48, "BitVector")) == 8 + 6 + 2, $bitvector_pos_1_48; +select Len(Untag($bitvector_pos_1_56, "BitVector")) == 8 + 7 + 2, $bitvector_pos_1_56; +select Len(Untag($bitvector_pos_1_60, "BitVector")) == 8 + 8 + 2, $bitvector_pos_1_60; + +select Len(Untag($bitvector_neg_1_00, "BitVector")) == 8 + 0 + 2, $bitvector_neg_1_00; +select Len(Untag($bitvector_neg_1_04, "BitVector")) == 8 + 1 + 2, $bitvector_neg_1_04; +select Len(Untag($bitvector_neg_1_08, "BitVector")) == 8 + 1 + 2, $bitvector_neg_1_08; +select Len(Untag($bitvector_neg_1_16, "BitVector")) == 8 + 2 + 2, $bitvector_neg_1_16; +select Len(Untag($bitvector_neg_1_24, "BitVector")) == 8 + 3 + 2, $bitvector_neg_1_24; +select Len(Untag($bitvector_neg_1_32, "BitVector")) == 8 + 4 + 2, $bitvector_neg_1_32; +select Len(Untag($bitvector_neg_1_40, "BitVector")) == 8 + 5 + 2, $bitvector_neg_1_40; +select Len(Untag($bitvector_neg_1_48, "BitVector")) == 8 + 6 + 2, $bitvector_neg_1_48; +select Len(Untag($bitvector_neg_1_56, "BitVector")) == 8 + 7 + 2, $bitvector_neg_1_56; +select Len(Untag($bitvector_neg_1_60, "BitVector")) == 8 + 8 + 2, $bitvector_neg_1_60; + +select Len(Untag($bitvector_pos_04, "BitVector")) == 1 + 2, $bitvector_pos_04; +select Len(Untag($bitvector_pos_08, "BitVector")) == 1 + 2, $bitvector_pos_08; +select Len(Untag($bitvector_pos_16, "BitVector")) == 2 + 2, $bitvector_pos_16; +select Len(Untag($bitvector_pos_24, "BitVector")) == 3 + 2, $bitvector_pos_24; +select Len(Untag($bitvector_pos_32, "BitVector")) == 4 + 2, $bitvector_pos_32; +select Len(Untag($bitvector_pos_40, "BitVector")) == 5 + 2, $bitvector_pos_40; +select Len(Untag($bitvector_pos_48, "BitVector")) == 6 + 2, $bitvector_pos_48; +select Len(Untag($bitvector_pos_56, "BitVector")) == 7 + 2, $bitvector_pos_56; +select Len(Untag($bitvector_pos_60, "BitVector")) == 8 + 2, $bitvector_pos_60; + +select Len(Untag($bitvector_neg_04, "BitVector")) == 1 + 2, $bitvector_neg_04; +select Len(Untag($bitvector_neg_08, "BitVector")) == 1 + 2, $bitvector_neg_08; +select Len(Untag($bitvector_neg_16, "BitVector")) == 2 + 2, $bitvector_neg_16; +select Len(Untag($bitvector_neg_24, "BitVector")) == 3 + 2, $bitvector_neg_24; +select Len(Untag($bitvector_neg_32, "BitVector")) == 4 + 2, $bitvector_neg_32; +select Len(Untag($bitvector_neg_40, "BitVector")) == 5 + 2, $bitvector_neg_40; +select Len(Untag($bitvector_neg_48, "BitVector")) == 6 + 2, $bitvector_neg_48; +select Len(Untag($bitvector_neg_56, "BitVector")) == 7 + 2, $bitvector_neg_56; +select Len(Untag($bitvector_neg_60, "BitVector")) == 8 + 2, $bitvector_neg_60; diff --git a/ydb/library/yql/udfs/common/knn/test/cases/CosineDistance.sql b/ydb/library/yql/udfs/common/knn/test/cases/CosineDistance.sql new file mode 100644 index 000000000000..30ca96ce1771 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/CosineDistance.sql @@ -0,0 +1,168 @@ +--fixed size vector +$vector1 = Knn::ToBinaryStringFloat([1.0f, 2.0f, 3.0f]); +$vector2 = Knn::ToBinaryStringFloat([4.0f, 5.0f, 6.0f]); +select Knn::CosineDistance($vector1, $vector2); + +--exact vectors +select Knn::CosineDistance($vector1, $vector1); + +--orthogonal vectors +$orthogonal_vector1 = Knn::ToBinaryStringUint8([1ut, 0ut]); +$orthogonal_vector2 = Knn::ToBinaryStringUint8([0ut, 2ut]); +select Knn::CosineDistance($orthogonal_vector1, $orthogonal_vector2); + + +--float vector +$float_vector1 = Knn::ToBinaryStringFloat([1.0f, 2.0f, 3.0f]); +$float_vector2 = Knn::ToBinaryStringFloat([4.0f, 5.0f, 6.0f]); +select Knn::CosineDistance($float_vector1, $float_vector2); + +--byte vector +$byte_vector1 = Knn::ToBinaryStringUint8([1ut, 2ut, 3ut]); +$byte_vector2 = Knn::ToBinaryStringUint8([4ut, 5ut, 6ut]); +select Knn::CosineDistance($byte_vector1, $byte_vector2); + +--bit vector +$bitvector_positive = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64)); +$bitvector_positive_double_size = Knn::ToBinaryStringBit(ListReplicate(1.0f, 128)); +$bitvector_negative = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64)); +$bitvector_negative_and_positive = Knn::ToBinaryStringBit(ListFromRange(-63.0f, 64.1f)); +$bitvector_negative_and_positive_striped = Knn::ToBinaryStringBit(ListFlatten(ListReplicate([-1.0f, 1.0f], 32))); + +select Knn::CosineDistance($bitvector_positive, $bitvector_negative); +select Knn::CosineDistance($bitvector_positive_double_size, $bitvector_negative_and_positive); +select Knn::CosineDistance($bitvector_positive, $bitvector_negative_and_positive_striped); + +--bit vector -- with tail +$bitvector_pos_1_00 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 00)); +$bitvector_pos_1_04 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 04)); +$bitvector_pos_1_08 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 08)); +$bitvector_pos_1_16 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 16)); +$bitvector_pos_1_24 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 24)); +$bitvector_pos_1_32 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 32)); +$bitvector_pos_1_40 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 40)); +$bitvector_pos_1_48 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 48)); +$bitvector_pos_1_56 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 56)); +$bitvector_pos_1_60 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 60)); + +$bitvector_neg_1_00 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 00)); +$bitvector_neg_1_04 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 04)); +$bitvector_neg_1_08 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 08)); +$bitvector_neg_1_16 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 16)); +$bitvector_neg_1_24 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 24)); +$bitvector_neg_1_32 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 32)); +$bitvector_neg_1_40 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 40)); +$bitvector_neg_1_48 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 48)); +$bitvector_neg_1_56 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 56)); +$bitvector_neg_1_60 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 60)); + +select 64 + 00, Knn::CosineDistance($bitvector_pos_1_00, $bitvector_pos_1_00); +select 64 + 04, Knn::CosineDistance($bitvector_pos_1_04, $bitvector_pos_1_04); +select 64 + 08, Knn::CosineDistance($bitvector_pos_1_08, $bitvector_pos_1_08); +select 64 + 16, Knn::CosineDistance($bitvector_pos_1_16, $bitvector_pos_1_16); +select 64 + 24, Knn::CosineDistance($bitvector_pos_1_24, $bitvector_pos_1_24); +select 64 + 32, Knn::CosineDistance($bitvector_pos_1_32, $bitvector_pos_1_32); +select 64 + 40, Knn::CosineDistance($bitvector_pos_1_40, $bitvector_pos_1_40); +select 64 + 48, Knn::CosineDistance($bitvector_pos_1_48, $bitvector_pos_1_48); +select 64 + 56, Knn::CosineDistance($bitvector_pos_1_56, $bitvector_pos_1_56); +select 64 + 60, Knn::CosineDistance($bitvector_pos_1_60, $bitvector_pos_1_60); + +select 64 + 00, Knn::CosineDistance($bitvector_neg_1_00, $bitvector_neg_1_00); +select 64 + 04, Knn::CosineDistance($bitvector_neg_1_04, $bitvector_neg_1_04); +select 64 + 08, Knn::CosineDistance($bitvector_neg_1_08, $bitvector_neg_1_08); +select 64 + 16, Knn::CosineDistance($bitvector_neg_1_16, $bitvector_neg_1_16); +select 64 + 24, Knn::CosineDistance($bitvector_neg_1_24, $bitvector_neg_1_24); +select 64 + 32, Knn::CosineDistance($bitvector_neg_1_32, $bitvector_neg_1_32); +select 64 + 40, Knn::CosineDistance($bitvector_neg_1_40, $bitvector_neg_1_40); +select 64 + 48, Knn::CosineDistance($bitvector_neg_1_48, $bitvector_neg_1_48); +select 64 + 56, Knn::CosineDistance($bitvector_neg_1_56, $bitvector_neg_1_56); +select 64 + 60, Knn::CosineDistance($bitvector_neg_1_60, $bitvector_neg_1_60); + +select 64 + 00, Knn::CosineDistance($bitvector_pos_1_00, $bitvector_neg_1_00); +select 64 + 04, Knn::CosineDistance($bitvector_pos_1_04, $bitvector_neg_1_04); +select 64 + 08, Knn::CosineDistance($bitvector_pos_1_08, $bitvector_neg_1_08); +select 64 + 16, Knn::CosineDistance($bitvector_pos_1_16, $bitvector_neg_1_16); +select 64 + 24, Knn::CosineDistance($bitvector_pos_1_24, $bitvector_neg_1_24); +select 64 + 32, Knn::CosineDistance($bitvector_pos_1_32, $bitvector_neg_1_32); +select 64 + 40, Knn::CosineDistance($bitvector_pos_1_40, $bitvector_neg_1_40); +select 64 + 48, Knn::CosineDistance($bitvector_pos_1_48, $bitvector_neg_1_48); +select 64 + 56, Knn::CosineDistance($bitvector_pos_1_56, $bitvector_neg_1_56); +select 64 + 60, Knn::CosineDistance($bitvector_pos_1_60, $bitvector_neg_1_60); + +select 64 + 00, Knn::CosineDistance($bitvector_neg_1_00, $bitvector_pos_1_00); +select 64 + 04, Knn::CosineDistance($bitvector_neg_1_04, $bitvector_pos_1_04); +select 64 + 08, Knn::CosineDistance($bitvector_neg_1_08, $bitvector_pos_1_08); +select 64 + 16, Knn::CosineDistance($bitvector_neg_1_16, $bitvector_pos_1_16); +select 64 + 24, Knn::CosineDistance($bitvector_neg_1_24, $bitvector_pos_1_24); +select 64 + 32, Knn::CosineDistance($bitvector_neg_1_32, $bitvector_pos_1_32); +select 64 + 40, Knn::CosineDistance($bitvector_neg_1_40, $bitvector_pos_1_40); +select 64 + 48, Knn::CosineDistance($bitvector_neg_1_48, $bitvector_pos_1_48); +select 64 + 56, Knn::CosineDistance($bitvector_neg_1_56, $bitvector_pos_1_56); +select 64 + 60, Knn::CosineDistance($bitvector_neg_1_60, $bitvector_pos_1_60); + +--bit vector -- only tail +$bitvector_pos_00 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 00)); +$bitvector_pos_04 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 04)); +$bitvector_pos_08 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 08)); +$bitvector_pos_16 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 16)); +$bitvector_pos_24 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 24)); +$bitvector_pos_32 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 32)); +$bitvector_pos_40 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 40)); +$bitvector_pos_48 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 48)); +$bitvector_pos_56 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 56)); +$bitvector_pos_60 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 60)); + +$bitvector_neg_00 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 00)); +$bitvector_neg_04 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 04)); +$bitvector_neg_08 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 08)); +$bitvector_neg_16 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 16)); +$bitvector_neg_24 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 24)); +$bitvector_neg_32 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 32)); +$bitvector_neg_40 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 40)); +$bitvector_neg_48 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 48)); +$bitvector_neg_56 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 56)); +$bitvector_neg_60 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 60)); + +select 00, Knn::CosineDistance($bitvector_pos_00, $bitvector_pos_00); +select 04, Knn::CosineDistance($bitvector_pos_04, $bitvector_pos_04); +select 08, Knn::CosineDistance($bitvector_pos_08, $bitvector_pos_08); +select 16, Knn::CosineDistance($bitvector_pos_16, $bitvector_pos_16); +select 24, Knn::CosineDistance($bitvector_pos_24, $bitvector_pos_24); +select 32, Knn::CosineDistance($bitvector_pos_32, $bitvector_pos_32); +select 40, Knn::CosineDistance($bitvector_pos_40, $bitvector_pos_40); +select 48, Knn::CosineDistance($bitvector_pos_48, $bitvector_pos_48); +select 56, Knn::CosineDistance($bitvector_pos_56, $bitvector_pos_56); +select 60, Knn::CosineDistance($bitvector_pos_60, $bitvector_pos_60); + +select 00, Knn::CosineDistance($bitvector_neg_00, $bitvector_neg_00); +select 04, Knn::CosineDistance($bitvector_neg_04, $bitvector_neg_04); +select 08, Knn::CosineDistance($bitvector_neg_08, $bitvector_neg_08); +select 16, Knn::CosineDistance($bitvector_neg_16, $bitvector_neg_16); +select 24, Knn::CosineDistance($bitvector_neg_24, $bitvector_neg_24); +select 32, Knn::CosineDistance($bitvector_neg_32, $bitvector_neg_32); +select 40, Knn::CosineDistance($bitvector_neg_40, $bitvector_neg_40); +select 48, Knn::CosineDistance($bitvector_neg_48, $bitvector_neg_48); +select 56, Knn::CosineDistance($bitvector_neg_56, $bitvector_neg_56); +select 60, Knn::CosineDistance($bitvector_neg_60, $bitvector_neg_60); + +select 00, Knn::CosineDistance($bitvector_pos_00, $bitvector_neg_00); +select 04, Knn::CosineDistance($bitvector_pos_04, $bitvector_neg_04); +select 08, Knn::CosineDistance($bitvector_pos_08, $bitvector_neg_08); +select 16, Knn::CosineDistance($bitvector_pos_16, $bitvector_neg_16); +select 24, Knn::CosineDistance($bitvector_pos_24, $bitvector_neg_24); +select 32, Knn::CosineDistance($bitvector_pos_32, $bitvector_neg_32); +select 40, Knn::CosineDistance($bitvector_pos_40, $bitvector_neg_40); +select 48, Knn::CosineDistance($bitvector_pos_48, $bitvector_neg_48); +select 56, Knn::CosineDistance($bitvector_pos_56, $bitvector_neg_56); +select 60, Knn::CosineDistance($bitvector_pos_60, $bitvector_neg_60); + +select 00, Knn::CosineDistance($bitvector_neg_00, $bitvector_pos_00); +select 04, Knn::CosineDistance($bitvector_neg_04, $bitvector_pos_04); +select 08, Knn::CosineDistance($bitvector_neg_08, $bitvector_pos_08); +select 16, Knn::CosineDistance($bitvector_neg_16, $bitvector_pos_16); +select 24, Knn::CosineDistance($bitvector_neg_24, $bitvector_pos_24); +select 32, Knn::CosineDistance($bitvector_neg_32, $bitvector_pos_32); +select 40, Knn::CosineDistance($bitvector_neg_40, $bitvector_pos_40); +select 48, Knn::CosineDistance($bitvector_neg_48, $bitvector_pos_48); +select 56, Knn::CosineDistance($bitvector_neg_56, $bitvector_pos_56); +select 60, Knn::CosineDistance($bitvector_neg_60, $bitvector_pos_60); diff --git a/ydb/library/yql/udfs/common/knn/test/cases/CosineSimilarity.sql b/ydb/library/yql/udfs/common/knn/test/cases/CosineSimilarity.sql new file mode 100644 index 000000000000..aaaa1346eaa3 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/CosineSimilarity.sql @@ -0,0 +1,167 @@ +--fixed size vector +$vector1 = Knn::ToBinaryStringFloat([1.0f, 2.0f, 3.0f]); +$vector2 = Knn::ToBinaryStringFloat([4.0f, 5.0f, 6.0f]); +select Knn::CosineSimilarity($vector1, $vector2); + +--exact vectors +select Knn::CosineSimilarity($vector1, $vector1); + +--orthogonal vectors +$orthogonal_vector1 = Knn::ToBinaryStringUint8([1ut, 0ut]); +$orthogonal_vector2 = Knn::ToBinaryStringUint8([0ut, 2ut]); +select Knn::CosineSimilarity($orthogonal_vector1, $orthogonal_vector2); + +--float vector +$float_vector1 = Knn::ToBinaryStringFloat([1.0f, 2.0f, 3.0f]); +$float_vector2 = Knn::ToBinaryStringFloat([4.0f, 5.0f, 6.0f]); +select Knn::CosineSimilarity($float_vector1, $float_vector2); + +--byte vector +$byte_vector1 = Knn::ToBinaryStringUint8([1ut, 2ut, 3ut]); +$byte_vector2 = Knn::ToBinaryStringUint8([4ut, 5ut, 6ut]); +select Knn::CosineSimilarity($byte_vector1, $byte_vector2); + +--bit vector +$bitvector_positive = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64)); +$bitvector_positive_double_size = Knn::ToBinaryStringBit(ListReplicate(1.0f, 128)); +$bitvector_negative = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64)); +$bitvector_negative_and_positive = Knn::ToBinaryStringBit(ListFromRange(-63.0f, 64.1f)); +$bitvector_negative_and_positive_striped = Knn::ToBinaryStringBit(ListFlatten(ListReplicate([-1.0f, 1.0f], 32))); + +select Knn::CosineSimilarity($bitvector_positive, $bitvector_negative); +select Knn::CosineSimilarity($bitvector_positive_double_size, $bitvector_negative_and_positive); +select Knn::CosineSimilarity($bitvector_positive, $bitvector_negative_and_positive_striped); + +--bit vector -- with tail +$bitvector_pos_1_00 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 00)); +$bitvector_pos_1_04 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 04)); +$bitvector_pos_1_08 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 08)); +$bitvector_pos_1_16 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 16)); +$bitvector_pos_1_24 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 24)); +$bitvector_pos_1_32 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 32)); +$bitvector_pos_1_40 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 40)); +$bitvector_pos_1_48 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 48)); +$bitvector_pos_1_56 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 56)); +$bitvector_pos_1_60 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 60)); + +$bitvector_neg_1_00 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 00)); +$bitvector_neg_1_04 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 04)); +$bitvector_neg_1_08 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 08)); +$bitvector_neg_1_16 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 16)); +$bitvector_neg_1_24 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 24)); +$bitvector_neg_1_32 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 32)); +$bitvector_neg_1_40 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 40)); +$bitvector_neg_1_48 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 48)); +$bitvector_neg_1_56 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 56)); +$bitvector_neg_1_60 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 60)); + +select 64 + 00, Knn::CosineSimilarity($bitvector_pos_1_00, $bitvector_pos_1_00); +select 64 + 04, Knn::CosineSimilarity($bitvector_pos_1_04, $bitvector_pos_1_04); +select 64 + 08, Knn::CosineSimilarity($bitvector_pos_1_08, $bitvector_pos_1_08); +select 64 + 16, Knn::CosineSimilarity($bitvector_pos_1_16, $bitvector_pos_1_16); +select 64 + 24, Knn::CosineSimilarity($bitvector_pos_1_24, $bitvector_pos_1_24); +select 64 + 32, Knn::CosineSimilarity($bitvector_pos_1_32, $bitvector_pos_1_32); +select 64 + 40, Knn::CosineSimilarity($bitvector_pos_1_40, $bitvector_pos_1_40); +select 64 + 48, Knn::CosineSimilarity($bitvector_pos_1_48, $bitvector_pos_1_48); +select 64 + 56, Knn::CosineSimilarity($bitvector_pos_1_56, $bitvector_pos_1_56); +select 64 + 60, Knn::CosineSimilarity($bitvector_pos_1_60, $bitvector_pos_1_60); + +select 64 + 00, Knn::CosineSimilarity($bitvector_neg_1_00, $bitvector_neg_1_00); +select 64 + 04, Knn::CosineSimilarity($bitvector_neg_1_04, $bitvector_neg_1_04); +select 64 + 08, Knn::CosineSimilarity($bitvector_neg_1_08, $bitvector_neg_1_08); +select 64 + 16, Knn::CosineSimilarity($bitvector_neg_1_16, $bitvector_neg_1_16); +select 64 + 24, Knn::CosineSimilarity($bitvector_neg_1_24, $bitvector_neg_1_24); +select 64 + 32, Knn::CosineSimilarity($bitvector_neg_1_32, $bitvector_neg_1_32); +select 64 + 40, Knn::CosineSimilarity($bitvector_neg_1_40, $bitvector_neg_1_40); +select 64 + 48, Knn::CosineSimilarity($bitvector_neg_1_48, $bitvector_neg_1_48); +select 64 + 56, Knn::CosineSimilarity($bitvector_neg_1_56, $bitvector_neg_1_56); +select 64 + 60, Knn::CosineSimilarity($bitvector_neg_1_60, $bitvector_neg_1_60); + +select 64 + 00, Knn::CosineSimilarity($bitvector_pos_1_00, $bitvector_neg_1_00); +select 64 + 04, Knn::CosineSimilarity($bitvector_pos_1_04, $bitvector_neg_1_04); +select 64 + 08, Knn::CosineSimilarity($bitvector_pos_1_08, $bitvector_neg_1_08); +select 64 + 16, Knn::CosineSimilarity($bitvector_pos_1_16, $bitvector_neg_1_16); +select 64 + 24, Knn::CosineSimilarity($bitvector_pos_1_24, $bitvector_neg_1_24); +select 64 + 32, Knn::CosineSimilarity($bitvector_pos_1_32, $bitvector_neg_1_32); +select 64 + 40, Knn::CosineSimilarity($bitvector_pos_1_40, $bitvector_neg_1_40); +select 64 + 48, Knn::CosineSimilarity($bitvector_pos_1_48, $bitvector_neg_1_48); +select 64 + 56, Knn::CosineSimilarity($bitvector_pos_1_56, $bitvector_neg_1_56); +select 64 + 60, Knn::CosineSimilarity($bitvector_pos_1_60, $bitvector_neg_1_60); + +select 64 + 00, Knn::CosineSimilarity($bitvector_neg_1_00, $bitvector_pos_1_00); +select 64 + 04, Knn::CosineSimilarity($bitvector_neg_1_04, $bitvector_pos_1_04); +select 64 + 08, Knn::CosineSimilarity($bitvector_neg_1_08, $bitvector_pos_1_08); +select 64 + 16, Knn::CosineSimilarity($bitvector_neg_1_16, $bitvector_pos_1_16); +select 64 + 24, Knn::CosineSimilarity($bitvector_neg_1_24, $bitvector_pos_1_24); +select 64 + 32, Knn::CosineSimilarity($bitvector_neg_1_32, $bitvector_pos_1_32); +select 64 + 40, Knn::CosineSimilarity($bitvector_neg_1_40, $bitvector_pos_1_40); +select 64 + 48, Knn::CosineSimilarity($bitvector_neg_1_48, $bitvector_pos_1_48); +select 64 + 56, Knn::CosineSimilarity($bitvector_neg_1_56, $bitvector_pos_1_56); +select 64 + 60, Knn::CosineSimilarity($bitvector_neg_1_60, $bitvector_pos_1_60); + +--bit vector -- only tail +$bitvector_pos_00 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 00)); +$bitvector_pos_04 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 04)); +$bitvector_pos_08 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 08)); +$bitvector_pos_16 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 16)); +$bitvector_pos_24 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 24)); +$bitvector_pos_32 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 32)); +$bitvector_pos_40 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 40)); +$bitvector_pos_48 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 48)); +$bitvector_pos_56 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 56)); +$bitvector_pos_60 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 60)); + +$bitvector_neg_00 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 00)); +$bitvector_neg_04 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 04)); +$bitvector_neg_08 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 08)); +$bitvector_neg_16 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 16)); +$bitvector_neg_24 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 24)); +$bitvector_neg_32 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 32)); +$bitvector_neg_40 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 40)); +$bitvector_neg_48 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 48)); +$bitvector_neg_56 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 56)); +$bitvector_neg_60 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 60)); + +select 00, Knn::CosineSimilarity($bitvector_pos_00, $bitvector_pos_00); +select 04, Knn::CosineSimilarity($bitvector_pos_04, $bitvector_pos_04); +select 08, Knn::CosineSimilarity($bitvector_pos_08, $bitvector_pos_08); +select 16, Knn::CosineSimilarity($bitvector_pos_16, $bitvector_pos_16); +select 24, Knn::CosineSimilarity($bitvector_pos_24, $bitvector_pos_24); +select 32, Knn::CosineSimilarity($bitvector_pos_32, $bitvector_pos_32); +select 40, Knn::CosineSimilarity($bitvector_pos_40, $bitvector_pos_40); +select 48, Knn::CosineSimilarity($bitvector_pos_48, $bitvector_pos_48); +select 56, Knn::CosineSimilarity($bitvector_pos_56, $bitvector_pos_56); +select 60, Knn::CosineSimilarity($bitvector_pos_60, $bitvector_pos_60); + +select 00, Knn::CosineSimilarity($bitvector_neg_00, $bitvector_neg_00); +select 04, Knn::CosineSimilarity($bitvector_neg_04, $bitvector_neg_04); +select 08, Knn::CosineSimilarity($bitvector_neg_08, $bitvector_neg_08); +select 16, Knn::CosineSimilarity($bitvector_neg_16, $bitvector_neg_16); +select 24, Knn::CosineSimilarity($bitvector_neg_24, $bitvector_neg_24); +select 32, Knn::CosineSimilarity($bitvector_neg_32, $bitvector_neg_32); +select 40, Knn::CosineSimilarity($bitvector_neg_40, $bitvector_neg_40); +select 48, Knn::CosineSimilarity($bitvector_neg_48, $bitvector_neg_48); +select 56, Knn::CosineSimilarity($bitvector_neg_56, $bitvector_neg_56); +select 60, Knn::CosineSimilarity($bitvector_neg_60, $bitvector_neg_60); + +select 00, Knn::CosineSimilarity($bitvector_pos_00, $bitvector_neg_00); +select 04, Knn::CosineSimilarity($bitvector_pos_04, $bitvector_neg_04); +select 08, Knn::CosineSimilarity($bitvector_pos_08, $bitvector_neg_08); +select 16, Knn::CosineSimilarity($bitvector_pos_16, $bitvector_neg_16); +select 24, Knn::CosineSimilarity($bitvector_pos_24, $bitvector_neg_24); +select 32, Knn::CosineSimilarity($bitvector_pos_32, $bitvector_neg_32); +select 40, Knn::CosineSimilarity($bitvector_pos_40, $bitvector_neg_40); +select 48, Knn::CosineSimilarity($bitvector_pos_48, $bitvector_neg_48); +select 56, Knn::CosineSimilarity($bitvector_pos_56, $bitvector_neg_56); +select 60, Knn::CosineSimilarity($bitvector_pos_60, $bitvector_neg_60); + +select 00, Knn::CosineSimilarity($bitvector_neg_00, $bitvector_pos_00); +select 04, Knn::CosineSimilarity($bitvector_neg_04, $bitvector_pos_04); +select 08, Knn::CosineSimilarity($bitvector_neg_08, $bitvector_pos_08); +select 16, Knn::CosineSimilarity($bitvector_neg_16, $bitvector_pos_16); +select 24, Knn::CosineSimilarity($bitvector_neg_24, $bitvector_pos_24); +select 32, Knn::CosineSimilarity($bitvector_neg_32, $bitvector_pos_32); +select 40, Knn::CosineSimilarity($bitvector_neg_40, $bitvector_pos_40); +select 48, Knn::CosineSimilarity($bitvector_neg_48, $bitvector_pos_48); +select 56, Knn::CosineSimilarity($bitvector_neg_56, $bitvector_pos_56); +select 60, Knn::CosineSimilarity($bitvector_neg_60, $bitvector_pos_60); diff --git a/ydb/library/yql/udfs/common/knn/test/cases/ErrorDistanceInvalidFormat.sql b/ydb/library/yql/udfs/common/knn/test/cases/ErrorDistanceInvalidFormat.sql new file mode 100644 index 000000000000..2f12807a9536 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/ErrorDistanceInvalidFormat.sql @@ -0,0 +1 @@ +select Knn::CosineDistance("0", "0"); diff --git a/ydb/library/yql/udfs/common/knn/test/cases/ErrorDistanceSameFormat.sql b/ydb/library/yql/udfs/common/knn/test/cases/ErrorDistanceSameFormat.sql new file mode 100644 index 000000000000..f04816b56cb8 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/ErrorDistanceSameFormat.sql @@ -0,0 +1 @@ +select Knn::CosineDistance("\u0001", "u0002"); diff --git a/ydb/library/yql/udfs/common/knn/test/cases/ErrorDistanceSameSize.sql b/ydb/library/yql/udfs/common/knn/test/cases/ErrorDistanceSameSize.sql new file mode 100644 index 000000000000..12a5b6d6a5d9 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/ErrorDistanceSameSize.sql @@ -0,0 +1,3 @@ +$vector1 = Knn::ToBinaryStringBit([1.0f, 2.0f]); +$vector2 = Knn::ToBinaryStringBit([4.0f, 5.0f, 6.0f]); +select Knn::CosineDistance($vector1, $vector2); diff --git a/ydb/library/yql/udfs/common/knn/test/cases/ErrorDistanceSameTag.cfg b/ydb/library/yql/udfs/common/knn/test/cases/ErrorDistanceSameTag.cfg new file mode 100644 index 000000000000..5dae597903c3 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/ErrorDistanceSameTag.cfg @@ -0,0 +1 @@ +xfail diff --git a/ydb/library/yql/udfs/common/knn/test/cases/ErrorDistanceSameTag.sql b/ydb/library/yql/udfs/common/knn/test/cases/ErrorDistanceSameTag.sql new file mode 100644 index 000000000000..b0076f7f9feb --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/ErrorDistanceSameTag.sql @@ -0,0 +1,3 @@ +$vector1 = Knn::ToBinaryStringFloat([1.0f]); +$vector2 = Knn::ToBinaryStringUint8([4ut, 5ut, 6ut, 7ut]); +select Knn::CosineDistance($vector1, $vector2); diff --git a/ydb/library/yql/udfs/common/knn/test/cases/ErrorFloatFromBinaryStringBitVector.cfg b/ydb/library/yql/udfs/common/knn/test/cases/ErrorFloatFromBinaryStringBitVector.cfg new file mode 100644 index 000000000000..5dae597903c3 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/ErrorFloatFromBinaryStringBitVector.cfg @@ -0,0 +1 @@ +xfail diff --git a/ydb/library/yql/udfs/common/knn/test/cases/ErrorFloatFromBinaryStringBitVector.sql b/ydb/library/yql/udfs/common/knn/test/cases/ErrorFloatFromBinaryStringBitVector.sql new file mode 100644 index 000000000000..922cd851d4cf --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/ErrorFloatFromBinaryStringBitVector.sql @@ -0,0 +1,2 @@ +$bitvector = Knn::ToBinaryStringBit([-1.0f, 1.0f]); +select Knn::FloatFromBinaryString($bitvector); diff --git a/ydb/library/yql/udfs/common/knn/test/cases/ErrorFloatFromBinaryStringEmpty.sql b/ydb/library/yql/udfs/common/knn/test/cases/ErrorFloatFromBinaryStringEmpty.sql new file mode 100644 index 000000000000..09d80fc9da07 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/ErrorFloatFromBinaryStringEmpty.sql @@ -0,0 +1 @@ +select Knn::FloatFromBinaryString(""); diff --git a/ydb/library/yql/udfs/common/knn/test/cases/ErrorFloatFromBinaryStringInvalid.sql b/ydb/library/yql/udfs/common/knn/test/cases/ErrorFloatFromBinaryStringInvalid.sql new file mode 100644 index 000000000000..f2fb0c8de22d --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/ErrorFloatFromBinaryStringInvalid.sql @@ -0,0 +1 @@ +select Knn::FloatFromBinaryString("Invalid"); diff --git a/ydb/library/yql/udfs/common/knn/test/cases/EuclideanDistance.sql b/ydb/library/yql/udfs/common/knn/test/cases/EuclideanDistance.sql new file mode 100644 index 000000000000..82f297a7c783 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/EuclideanDistance.sql @@ -0,0 +1,167 @@ +--fixed size vector +$vector1 = Knn::ToBinaryStringFloat([1.0f, 2.0f, 3.0f]); +$vector2 = Knn::ToBinaryStringFloat([4.0f, 5.0f, 6.0f]); +select Knn::EuclideanDistance($vector1, $vector2); + +--exact vectors +select Knn::EuclideanDistance($vector1, $vector1); + +--orthogonal vectors +$orthogonal_vector1 = Knn::ToBinaryStringUint8([1ut, 0ut]); +$orthogonal_vector2 = Knn::ToBinaryStringUint8([0ut, 2ut]); +select Knn::EuclideanDistance($orthogonal_vector1, $orthogonal_vector2); + +--float vector +$float_vector1 = Knn::ToBinaryStringFloat([1.0f, 2.0f, 3.0f]); +$float_vector2 = Knn::ToBinaryStringFloat([4.0f, 5.0f, 6.0f]); +select Knn::EuclideanDistance($float_vector1, $float_vector2); + +--byte vector +$byte_vector1 = Knn::ToBinaryStringUint8([1ut, 2ut, 3ut]); +$byte_vector2 = Knn::ToBinaryStringUint8([4ut, 5ut, 6ut]); +select Knn::EuclideanDistance($byte_vector1, $byte_vector2); + +--bit vector +$bitvector_positive = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64)); +$bitvector_positive_double_size = Knn::ToBinaryStringBit(ListReplicate(1.0f, 128)); +$bitvector_negative = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64)); +$bitvector_negative_and_positive = Knn::ToBinaryStringBit(ListFromRange(-63.0f, 64.1f)); +$bitvector_negative_and_positive_striped = Knn::ToBinaryStringBit(ListFlatten(ListReplicate([-1.0f, 1.0f], 32))); + +select Knn::EuclideanDistance($bitvector_positive, $bitvector_negative); +select Knn::EuclideanDistance($bitvector_positive_double_size, $bitvector_negative_and_positive); +select Knn::EuclideanDistance($bitvector_positive, $bitvector_negative_and_positive_striped); + +--bit vector -- with tail +$bitvector_pos_1_00 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 00)); +$bitvector_pos_1_04 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 04)); +$bitvector_pos_1_08 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 08)); +$bitvector_pos_1_16 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 16)); +$bitvector_pos_1_24 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 24)); +$bitvector_pos_1_32 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 32)); +$bitvector_pos_1_40 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 40)); +$bitvector_pos_1_48 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 48)); +$bitvector_pos_1_56 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 56)); +$bitvector_pos_1_60 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 60)); + +$bitvector_neg_1_00 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 00)); +$bitvector_neg_1_04 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 04)); +$bitvector_neg_1_08 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 08)); +$bitvector_neg_1_16 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 16)); +$bitvector_neg_1_24 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 24)); +$bitvector_neg_1_32 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 32)); +$bitvector_neg_1_40 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 40)); +$bitvector_neg_1_48 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 48)); +$bitvector_neg_1_56 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 56)); +$bitvector_neg_1_60 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 60)); + +select 64 + 00, Knn::EuclideanDistance($bitvector_pos_1_00, $bitvector_pos_1_00); +select 64 + 04, Knn::EuclideanDistance($bitvector_pos_1_04, $bitvector_pos_1_04); +select 64 + 08, Knn::EuclideanDistance($bitvector_pos_1_08, $bitvector_pos_1_08); +select 64 + 16, Knn::EuclideanDistance($bitvector_pos_1_16, $bitvector_pos_1_16); +select 64 + 24, Knn::EuclideanDistance($bitvector_pos_1_24, $bitvector_pos_1_24); +select 64 + 32, Knn::EuclideanDistance($bitvector_pos_1_32, $bitvector_pos_1_32); +select 64 + 40, Knn::EuclideanDistance($bitvector_pos_1_40, $bitvector_pos_1_40); +select 64 + 48, Knn::EuclideanDistance($bitvector_pos_1_48, $bitvector_pos_1_48); +select 64 + 56, Knn::EuclideanDistance($bitvector_pos_1_56, $bitvector_pos_1_56); +select 64 + 60, Knn::EuclideanDistance($bitvector_pos_1_60, $bitvector_pos_1_60); + +select 64 + 00, Knn::EuclideanDistance($bitvector_neg_1_00, $bitvector_neg_1_00); +select 64 + 04, Knn::EuclideanDistance($bitvector_neg_1_04, $bitvector_neg_1_04); +select 64 + 08, Knn::EuclideanDistance($bitvector_neg_1_08, $bitvector_neg_1_08); +select 64 + 16, Knn::EuclideanDistance($bitvector_neg_1_16, $bitvector_neg_1_16); +select 64 + 24, Knn::EuclideanDistance($bitvector_neg_1_24, $bitvector_neg_1_24); +select 64 + 32, Knn::EuclideanDistance($bitvector_neg_1_32, $bitvector_neg_1_32); +select 64 + 40, Knn::EuclideanDistance($bitvector_neg_1_40, $bitvector_neg_1_40); +select 64 + 48, Knn::EuclideanDistance($bitvector_neg_1_48, $bitvector_neg_1_48); +select 64 + 56, Knn::EuclideanDistance($bitvector_neg_1_56, $bitvector_neg_1_56); +select 64 + 60, Knn::EuclideanDistance($bitvector_neg_1_60, $bitvector_neg_1_60); + +select 64 + 00, Knn::EuclideanDistance($bitvector_pos_1_00, $bitvector_neg_1_00); +select 64 + 04, Knn::EuclideanDistance($bitvector_pos_1_04, $bitvector_neg_1_04); +select 64 + 08, Knn::EuclideanDistance($bitvector_pos_1_08, $bitvector_neg_1_08); +select 64 + 16, Knn::EuclideanDistance($bitvector_pos_1_16, $bitvector_neg_1_16); +select 64 + 24, Knn::EuclideanDistance($bitvector_pos_1_24, $bitvector_neg_1_24); +select 64 + 32, Knn::EuclideanDistance($bitvector_pos_1_32, $bitvector_neg_1_32); +select 64 + 40, Knn::EuclideanDistance($bitvector_pos_1_40, $bitvector_neg_1_40); +select 64 + 48, Knn::EuclideanDistance($bitvector_pos_1_48, $bitvector_neg_1_48); +select 64 + 56, Knn::EuclideanDistance($bitvector_pos_1_56, $bitvector_neg_1_56); +select 64 + 60, Knn::EuclideanDistance($bitvector_pos_1_60, $bitvector_neg_1_60); + +select 64 + 00, Knn::EuclideanDistance($bitvector_neg_1_00, $bitvector_pos_1_00); +select 64 + 04, Knn::EuclideanDistance($bitvector_neg_1_04, $bitvector_pos_1_04); +select 64 + 08, Knn::EuclideanDistance($bitvector_neg_1_08, $bitvector_pos_1_08); +select 64 + 16, Knn::EuclideanDistance($bitvector_neg_1_16, $bitvector_pos_1_16); +select 64 + 24, Knn::EuclideanDistance($bitvector_neg_1_24, $bitvector_pos_1_24); +select 64 + 32, Knn::EuclideanDistance($bitvector_neg_1_32, $bitvector_pos_1_32); +select 64 + 40, Knn::EuclideanDistance($bitvector_neg_1_40, $bitvector_pos_1_40); +select 64 + 48, Knn::EuclideanDistance($bitvector_neg_1_48, $bitvector_pos_1_48); +select 64 + 56, Knn::EuclideanDistance($bitvector_neg_1_56, $bitvector_pos_1_56); +select 64 + 60, Knn::EuclideanDistance($bitvector_neg_1_60, $bitvector_pos_1_60); + +--bit vector -- only tail +$bitvector_pos_00 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 00)); +$bitvector_pos_04 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 04)); +$bitvector_pos_08 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 08)); +$bitvector_pos_16 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 16)); +$bitvector_pos_24 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 24)); +$bitvector_pos_32 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 32)); +$bitvector_pos_40 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 40)); +$bitvector_pos_48 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 48)); +$bitvector_pos_56 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 56)); +$bitvector_pos_60 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 60)); + +$bitvector_neg_00 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 00)); +$bitvector_neg_04 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 04)); +$bitvector_neg_08 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 08)); +$bitvector_neg_16 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 16)); +$bitvector_neg_24 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 24)); +$bitvector_neg_32 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 32)); +$bitvector_neg_40 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 40)); +$bitvector_neg_48 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 48)); +$bitvector_neg_56 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 56)); +$bitvector_neg_60 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 60)); + +select 00, Knn::EuclideanDistance($bitvector_pos_00, $bitvector_pos_00); +select 04, Knn::EuclideanDistance($bitvector_pos_04, $bitvector_pos_04); +select 08, Knn::EuclideanDistance($bitvector_pos_08, $bitvector_pos_08); +select 16, Knn::EuclideanDistance($bitvector_pos_16, $bitvector_pos_16); +select 24, Knn::EuclideanDistance($bitvector_pos_24, $bitvector_pos_24); +select 32, Knn::EuclideanDistance($bitvector_pos_32, $bitvector_pos_32); +select 40, Knn::EuclideanDistance($bitvector_pos_40, $bitvector_pos_40); +select 48, Knn::EuclideanDistance($bitvector_pos_48, $bitvector_pos_48); +select 56, Knn::EuclideanDistance($bitvector_pos_56, $bitvector_pos_56); +select 60, Knn::EuclideanDistance($bitvector_pos_60, $bitvector_pos_60); + +select 00, Knn::EuclideanDistance($bitvector_neg_00, $bitvector_neg_00); +select 04, Knn::EuclideanDistance($bitvector_neg_04, $bitvector_neg_04); +select 08, Knn::EuclideanDistance($bitvector_neg_08, $bitvector_neg_08); +select 16, Knn::EuclideanDistance($bitvector_neg_16, $bitvector_neg_16); +select 24, Knn::EuclideanDistance($bitvector_neg_24, $bitvector_neg_24); +select 32, Knn::EuclideanDistance($bitvector_neg_32, $bitvector_neg_32); +select 40, Knn::EuclideanDistance($bitvector_neg_40, $bitvector_neg_40); +select 48, Knn::EuclideanDistance($bitvector_neg_48, $bitvector_neg_48); +select 56, Knn::EuclideanDistance($bitvector_neg_56, $bitvector_neg_56); +select 60, Knn::EuclideanDistance($bitvector_neg_60, $bitvector_neg_60); + +select 00, Knn::EuclideanDistance($bitvector_pos_00, $bitvector_neg_00); +select 04, Knn::EuclideanDistance($bitvector_pos_04, $bitvector_neg_04); +select 08, Knn::EuclideanDistance($bitvector_pos_08, $bitvector_neg_08); +select 16, Knn::EuclideanDistance($bitvector_pos_16, $bitvector_neg_16); +select 24, Knn::EuclideanDistance($bitvector_pos_24, $bitvector_neg_24); +select 32, Knn::EuclideanDistance($bitvector_pos_32, $bitvector_neg_32); +select 40, Knn::EuclideanDistance($bitvector_pos_40, $bitvector_neg_40); +select 48, Knn::EuclideanDistance($bitvector_pos_48, $bitvector_neg_48); +select 56, Knn::EuclideanDistance($bitvector_pos_56, $bitvector_neg_56); +select 60, Knn::EuclideanDistance($bitvector_pos_60, $bitvector_neg_60); + +select 00, Knn::EuclideanDistance($bitvector_neg_00, $bitvector_pos_00); +select 04, Knn::EuclideanDistance($bitvector_neg_04, $bitvector_pos_04); +select 08, Knn::EuclideanDistance($bitvector_neg_08, $bitvector_pos_08); +select 16, Knn::EuclideanDistance($bitvector_neg_16, $bitvector_pos_16); +select 24, Knn::EuclideanDistance($bitvector_neg_24, $bitvector_pos_24); +select 32, Knn::EuclideanDistance($bitvector_neg_32, $bitvector_pos_32); +select 40, Knn::EuclideanDistance($bitvector_neg_40, $bitvector_pos_40); +select 48, Knn::EuclideanDistance($bitvector_neg_48, $bitvector_pos_48); +select 56, Knn::EuclideanDistance($bitvector_neg_56, $bitvector_pos_56); +select 60, Knn::EuclideanDistance($bitvector_neg_60, $bitvector_pos_60); diff --git a/ydb/library/yql/udfs/common/knn/test/cases/InnerProductSimilarity.sql b/ydb/library/yql/udfs/common/knn/test/cases/InnerProductSimilarity.sql new file mode 100644 index 000000000000..ec5146dd64f6 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/InnerProductSimilarity.sql @@ -0,0 +1,169 @@ +--fixed size vector +$vector1 = Knn::ToBinaryStringFloat([1.0f, 2.0f, 3.0f]); +$vector2 = Knn::ToBinaryStringFloat([4.0f, 5.0f, 6.0f]); +$extected_distance = 32; +$distance = Knn::InnerProductSimilarity($vector1, $vector2); +select $distance = $extected_distance; + +--exact vectors +select Knn::InnerProductSimilarity($vector1, $vector1); + +--orthogonal vectors +$orthogonal_vector1 = Knn::ToBinaryStringUint8([1ut, 0ut]); +$orthogonal_vector2 = Knn::ToBinaryStringUint8([0ut, 2ut]); +select Knn::InnerProductSimilarity($orthogonal_vector1, $orthogonal_vector2); + +--float vector +$float_vector1 = Knn::ToBinaryStringFloat([1.0f, 2.0f, 3.0f]); +$float_vector2 = Knn::ToBinaryStringFloat([4.0f, 5.0f, 6.0f]); +select Knn::InnerProductSimilarity($float_vector1, $float_vector2); + +--byte vector +$byte_vector1 = Knn::ToBinaryStringUint8([1ut, 2ut, 3ut]); +$byte_vector2 = Knn::ToBinaryStringUint8([4ut, 5ut, 6ut]); +select Knn::InnerProductSimilarity($byte_vector1, $byte_vector2); + +--bit vector +$bitvector_positive = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64)); +$bitvector_positive_double_size = Knn::ToBinaryStringBit(ListReplicate(1.0f, 128)); +$bitvector_negative = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64)); +$bitvector_negative_and_positive = Knn::ToBinaryStringBit(ListFromRange(-63.0f, 64.1f)); +$bitvector_negative_and_positive_striped = Knn::ToBinaryStringBit(ListFlatten(ListReplicate([-1.0f, 1.0f], 32))); + +select Knn::InnerProductSimilarity($bitvector_positive, $bitvector_negative); +select Knn::InnerProductSimilarity($bitvector_positive_double_size, $bitvector_negative_and_positive); +select Knn::InnerProductSimilarity($bitvector_positive, $bitvector_negative_and_positive_striped); + +--bit vector -- with tail +$bitvector_pos_1_00 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 00)); +$bitvector_pos_1_04 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 04)); +$bitvector_pos_1_08 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 08)); +$bitvector_pos_1_16 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 16)); +$bitvector_pos_1_24 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 24)); +$bitvector_pos_1_32 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 32)); +$bitvector_pos_1_40 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 40)); +$bitvector_pos_1_48 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 48)); +$bitvector_pos_1_56 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 56)); +$bitvector_pos_1_60 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 60)); + +$bitvector_neg_1_00 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 00)); +$bitvector_neg_1_04 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 04)); +$bitvector_neg_1_08 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 08)); +$bitvector_neg_1_16 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 16)); +$bitvector_neg_1_24 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 24)); +$bitvector_neg_1_32 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 32)); +$bitvector_neg_1_40 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 40)); +$bitvector_neg_1_48 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 48)); +$bitvector_neg_1_56 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 56)); +$bitvector_neg_1_60 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 60)); + +select 64 + 00, Knn::InnerProductSimilarity($bitvector_pos_1_00, $bitvector_pos_1_00); +select 64 + 04, Knn::InnerProductSimilarity($bitvector_pos_1_04, $bitvector_pos_1_04); +select 64 + 08, Knn::InnerProductSimilarity($bitvector_pos_1_08, $bitvector_pos_1_08); +select 64 + 16, Knn::InnerProductSimilarity($bitvector_pos_1_16, $bitvector_pos_1_16); +select 64 + 24, Knn::InnerProductSimilarity($bitvector_pos_1_24, $bitvector_pos_1_24); +select 64 + 32, Knn::InnerProductSimilarity($bitvector_pos_1_32, $bitvector_pos_1_32); +select 64 + 40, Knn::InnerProductSimilarity($bitvector_pos_1_40, $bitvector_pos_1_40); +select 64 + 48, Knn::InnerProductSimilarity($bitvector_pos_1_48, $bitvector_pos_1_48); +select 64 + 56, Knn::InnerProductSimilarity($bitvector_pos_1_56, $bitvector_pos_1_56); +select 64 + 60, Knn::InnerProductSimilarity($bitvector_pos_1_60, $bitvector_pos_1_60); + +select 64 + 00, Knn::InnerProductSimilarity($bitvector_neg_1_00, $bitvector_neg_1_00); +select 64 + 04, Knn::InnerProductSimilarity($bitvector_neg_1_04, $bitvector_neg_1_04); +select 64 + 08, Knn::InnerProductSimilarity($bitvector_neg_1_08, $bitvector_neg_1_08); +select 64 + 16, Knn::InnerProductSimilarity($bitvector_neg_1_16, $bitvector_neg_1_16); +select 64 + 24, Knn::InnerProductSimilarity($bitvector_neg_1_24, $bitvector_neg_1_24); +select 64 + 32, Knn::InnerProductSimilarity($bitvector_neg_1_32, $bitvector_neg_1_32); +select 64 + 40, Knn::InnerProductSimilarity($bitvector_neg_1_40, $bitvector_neg_1_40); +select 64 + 48, Knn::InnerProductSimilarity($bitvector_neg_1_48, $bitvector_neg_1_48); +select 64 + 56, Knn::InnerProductSimilarity($bitvector_neg_1_56, $bitvector_neg_1_56); +select 64 + 60, Knn::InnerProductSimilarity($bitvector_neg_1_60, $bitvector_neg_1_60); + +select 64 + 00, Knn::InnerProductSimilarity($bitvector_pos_1_00, $bitvector_neg_1_00); +select 64 + 04, Knn::InnerProductSimilarity($bitvector_pos_1_04, $bitvector_neg_1_04); +select 64 + 08, Knn::InnerProductSimilarity($bitvector_pos_1_08, $bitvector_neg_1_08); +select 64 + 16, Knn::InnerProductSimilarity($bitvector_pos_1_16, $bitvector_neg_1_16); +select 64 + 24, Knn::InnerProductSimilarity($bitvector_pos_1_24, $bitvector_neg_1_24); +select 64 + 32, Knn::InnerProductSimilarity($bitvector_pos_1_32, $bitvector_neg_1_32); +select 64 + 40, Knn::InnerProductSimilarity($bitvector_pos_1_40, $bitvector_neg_1_40); +select 64 + 48, Knn::InnerProductSimilarity($bitvector_pos_1_48, $bitvector_neg_1_48); +select 64 + 56, Knn::InnerProductSimilarity($bitvector_pos_1_56, $bitvector_neg_1_56); +select 64 + 60, Knn::InnerProductSimilarity($bitvector_pos_1_60, $bitvector_neg_1_60); + +select 64 + 00, Knn::InnerProductSimilarity($bitvector_neg_1_00, $bitvector_pos_1_00); +select 64 + 04, Knn::InnerProductSimilarity($bitvector_neg_1_04, $bitvector_pos_1_04); +select 64 + 08, Knn::InnerProductSimilarity($bitvector_neg_1_08, $bitvector_pos_1_08); +select 64 + 16, Knn::InnerProductSimilarity($bitvector_neg_1_16, $bitvector_pos_1_16); +select 64 + 24, Knn::InnerProductSimilarity($bitvector_neg_1_24, $bitvector_pos_1_24); +select 64 + 32, Knn::InnerProductSimilarity($bitvector_neg_1_32, $bitvector_pos_1_32); +select 64 + 40, Knn::InnerProductSimilarity($bitvector_neg_1_40, $bitvector_pos_1_40); +select 64 + 48, Knn::InnerProductSimilarity($bitvector_neg_1_48, $bitvector_pos_1_48); +select 64 + 56, Knn::InnerProductSimilarity($bitvector_neg_1_56, $bitvector_pos_1_56); +select 64 + 60, Knn::InnerProductSimilarity($bitvector_neg_1_60, $bitvector_pos_1_60); + +--bit vector -- only tail +$bitvector_pos_00 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 00)); +$bitvector_pos_04 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 04)); +$bitvector_pos_08 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 08)); +$bitvector_pos_16 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 16)); +$bitvector_pos_24 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 24)); +$bitvector_pos_32 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 32)); +$bitvector_pos_40 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 40)); +$bitvector_pos_48 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 48)); +$bitvector_pos_56 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 56)); +$bitvector_pos_60 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 60)); + +$bitvector_neg_00 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 00)); +$bitvector_neg_04 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 04)); +$bitvector_neg_08 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 08)); +$bitvector_neg_16 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 16)); +$bitvector_neg_24 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 24)); +$bitvector_neg_32 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 32)); +$bitvector_neg_40 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 40)); +$bitvector_neg_48 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 48)); +$bitvector_neg_56 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 56)); +$bitvector_neg_60 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 60)); + +select 00, Knn::InnerProductSimilarity($bitvector_pos_00, $bitvector_pos_00); +select 04, Knn::InnerProductSimilarity($bitvector_pos_04, $bitvector_pos_04); +select 08, Knn::InnerProductSimilarity($bitvector_pos_08, $bitvector_pos_08); +select 16, Knn::InnerProductSimilarity($bitvector_pos_16, $bitvector_pos_16); +select 24, Knn::InnerProductSimilarity($bitvector_pos_24, $bitvector_pos_24); +select 32, Knn::InnerProductSimilarity($bitvector_pos_32, $bitvector_pos_32); +select 40, Knn::InnerProductSimilarity($bitvector_pos_40, $bitvector_pos_40); +select 48, Knn::InnerProductSimilarity($bitvector_pos_48, $bitvector_pos_48); +select 56, Knn::InnerProductSimilarity($bitvector_pos_56, $bitvector_pos_56); +select 60, Knn::InnerProductSimilarity($bitvector_pos_60, $bitvector_pos_60); + +select 00, Knn::InnerProductSimilarity($bitvector_neg_00, $bitvector_neg_00); +select 04, Knn::InnerProductSimilarity($bitvector_neg_04, $bitvector_neg_04); +select 08, Knn::InnerProductSimilarity($bitvector_neg_08, $bitvector_neg_08); +select 16, Knn::InnerProductSimilarity($bitvector_neg_16, $bitvector_neg_16); +select 24, Knn::InnerProductSimilarity($bitvector_neg_24, $bitvector_neg_24); +select 32, Knn::InnerProductSimilarity($bitvector_neg_32, $bitvector_neg_32); +select 40, Knn::InnerProductSimilarity($bitvector_neg_40, $bitvector_neg_40); +select 48, Knn::InnerProductSimilarity($bitvector_neg_48, $bitvector_neg_48); +select 56, Knn::InnerProductSimilarity($bitvector_neg_56, $bitvector_neg_56); +select 60, Knn::InnerProductSimilarity($bitvector_neg_60, $bitvector_neg_60); + +select 00, Knn::InnerProductSimilarity($bitvector_pos_00, $bitvector_neg_00); +select 04, Knn::InnerProductSimilarity($bitvector_pos_04, $bitvector_neg_04); +select 08, Knn::InnerProductSimilarity($bitvector_pos_08, $bitvector_neg_08); +select 16, Knn::InnerProductSimilarity($bitvector_pos_16, $bitvector_neg_16); +select 24, Knn::InnerProductSimilarity($bitvector_pos_24, $bitvector_neg_24); +select 32, Knn::InnerProductSimilarity($bitvector_pos_32, $bitvector_neg_32); +select 40, Knn::InnerProductSimilarity($bitvector_pos_40, $bitvector_neg_40); +select 48, Knn::InnerProductSimilarity($bitvector_pos_48, $bitvector_neg_48); +select 56, Knn::InnerProductSimilarity($bitvector_pos_56, $bitvector_neg_56); +select 60, Knn::InnerProductSimilarity($bitvector_pos_60, $bitvector_neg_60); + +select 00, Knn::InnerProductSimilarity($bitvector_neg_00, $bitvector_pos_00); +select 04, Knn::InnerProductSimilarity($bitvector_neg_04, $bitvector_pos_04); +select 08, Knn::InnerProductSimilarity($bitvector_neg_08, $bitvector_pos_08); +select 16, Knn::InnerProductSimilarity($bitvector_neg_16, $bitvector_pos_16); +select 24, Knn::InnerProductSimilarity($bitvector_neg_24, $bitvector_pos_24); +select 32, Knn::InnerProductSimilarity($bitvector_neg_32, $bitvector_pos_32); +select 40, Knn::InnerProductSimilarity($bitvector_neg_40, $bitvector_pos_40); +select 48, Knn::InnerProductSimilarity($bitvector_neg_48, $bitvector_pos_48); +select 56, Knn::InnerProductSimilarity($bitvector_neg_56, $bitvector_pos_56); +select 60, Knn::InnerProductSimilarity($bitvector_neg_60, $bitvector_pos_60); diff --git a/ydb/library/yql/udfs/common/knn/test/cases/Int8Serialization.sql b/ydb/library/yql/udfs/common/knn/test/cases/Int8Serialization.sql new file mode 100644 index 000000000000..ffbe75ea6d04 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/Int8Serialization.sql @@ -0,0 +1,18 @@ +--list serialization +$vector = Cast([1, 2, 3, 4, 5] AS List<Int8>); +$vector_binary_str = Knn::ToBinaryStringInt8($vector); +select $vector_binary_str; +select Len(Untag($vector_binary_str, "Int8Vector")) == 6; + +--deserialization +$deserialized_vector = Knn::FloatFromBinaryString($vector_binary_str); +select $deserialized_vector; + +--fixed size vector +$vector1 = Knn::ToBinaryStringInt8([1ut, 2ut, 3ut]); +$vector2 = Knn::ToBinaryStringInt8([4ut, 5ut, 6ut]); + +select Knn::CosineDistance($vector1, $vector2); +select Knn::CosineDistance($vector1, "\u0004\u0005\u0006\u0003"); +select Knn::CosineDistance("\u0001\u0002\u0003\u0003", $vector2); +select Knn::CosineDistance("\u0001\u0002\u0003\u0003", "\u0004\u0005\u0006\u0003"); diff --git a/ydb/library/yql/udfs/common/knn/test/cases/LazyListSerialization.sql b/ydb/library/yql/udfs/common/knn/test/cases/LazyListSerialization.sql new file mode 100644 index 000000000000..a4bb466e0dae --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/LazyListSerialization.sql @@ -0,0 +1,9 @@ +--lazy list serialization +$vector = ListFromRange(1.0f, 5.1f); +$vector_binary_str = Knn::ToBinaryStringFloat($vector); +select $vector_binary_str; + +--deserialization +$deserialized_vector = Knn::FloatFromBinaryString($vector_binary_str); +select $deserialized_vector; +select $deserialized_vector = $vector; diff --git a/ydb/library/yql/udfs/common/knn/test/cases/ListSerialization.sql b/ydb/library/yql/udfs/common/knn/test/cases/ListSerialization.sql new file mode 100644 index 000000000000..7960b4d9788e --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/ListSerialization.sql @@ -0,0 +1,18 @@ +--list serialization +$vector = [1.2f, 2.3f, 3.4f, 4.5f, 5.6f]; +$vector_binary_str = Knn::ToBinaryStringFloat($vector); +select $vector_binary_str; + +--deserialization +$deserialized_vector = Knn::FloatFromBinaryString($vector_binary_str); +select $deserialized_vector; +select $deserialized_vector = $vector; + +$vector_d = Cast([0, 1, 0, 0, 0, 0, 0, 0] AS List<Double>); +$vector_f = Cast([0, 1, 0, 0, 0, 0, 0, 0] AS List<Float>); +$vector_u8 = Cast([0, 1, 0, 0, 0, 0, 0, 0] AS List<Uint8>); +$vector_i8 = Cast([0, 1, 0, 0, 0, 0, 0, 0] AS List<Int8>); +select Knn::ToBinaryStringBit($vector_d); +select Knn::ToBinaryStringBit($vector_f); +select Knn::ToBinaryStringBit($vector_u8); +select Knn::ToBinaryStringBit($vector_i8); diff --git a/ydb/library/yql/udfs/common/knn/test/cases/ManhattanDistance.sql b/ydb/library/yql/udfs/common/knn/test/cases/ManhattanDistance.sql new file mode 100644 index 000000000000..c6a106b9bea5 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/ManhattanDistance.sql @@ -0,0 +1,167 @@ +--fixed size vector +$vector1 = Knn::ToBinaryStringFloat([1.0f, 2.0f, 3.0f]); +$vector2 = Knn::ToBinaryStringFloat([4.0f, 5.0f, 6.0f]); +select Knn::ManhattanDistance($vector1, $vector2); + +--exact vectors +select Knn::ManhattanDistance($vector1, $vector1); + +--orthogonal vectors +$orthogonal_vector1 = Knn::ToBinaryStringUint8([1ut, 0ut]); +$orthogonal_vector2 = Knn::ToBinaryStringUint8([0ut, 2ut]); +select Knn::ManhattanDistance($orthogonal_vector1, $orthogonal_vector2); + +--float vector +$float_vector1 = Knn::ToBinaryStringFloat([1.0f, 2.0f, 3.0f]); +$float_vector2 = Knn::ToBinaryStringFloat([4.0f, 5.0f, 6.0f]); +select Knn::ManhattanDistance($float_vector1, $float_vector2); + +--byte vector +$byte_vector1 = Knn::ToBinaryStringUint8([1ut, 2ut, 3ut]); +$byte_vector2 = Knn::ToBinaryStringUint8([4ut, 5ut, 6ut]); +select Knn::ManhattanDistance($byte_vector1, $byte_vector2); + +--bit vector +$bitvector_positive = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64)); +$bitvector_positive_double_size = Knn::ToBinaryStringBit(ListReplicate(1.0f, 128)); +$bitvector_negative = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64)); +$bitvector_negative_and_positive = Knn::ToBinaryStringBit(ListFromRange(-63.0f, 64.1f)); +$bitvector_negative_and_positive_striped = Knn::ToBinaryStringBit(ListFlatten(ListReplicate([-1.0f, 1.0f], 32))); + +select Knn::ManhattanDistance($bitvector_positive, $bitvector_negative); +select Knn::ManhattanDistance($bitvector_positive_double_size, $bitvector_negative_and_positive); +select Knn::ManhattanDistance($bitvector_positive, $bitvector_negative_and_positive_striped); + +--bit vector -- with tail +$bitvector_pos_1_00 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 00)); +$bitvector_pos_1_04 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 04)); +$bitvector_pos_1_08 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 08)); +$bitvector_pos_1_16 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 16)); +$bitvector_pos_1_24 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 24)); +$bitvector_pos_1_32 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 32)); +$bitvector_pos_1_40 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 40)); +$bitvector_pos_1_48 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 48)); +$bitvector_pos_1_56 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 56)); +$bitvector_pos_1_60 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 64 + 60)); + +$bitvector_neg_1_00 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 00)); +$bitvector_neg_1_04 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 04)); +$bitvector_neg_1_08 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 08)); +$bitvector_neg_1_16 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 16)); +$bitvector_neg_1_24 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 24)); +$bitvector_neg_1_32 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 32)); +$bitvector_neg_1_40 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 40)); +$bitvector_neg_1_48 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 48)); +$bitvector_neg_1_56 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 56)); +$bitvector_neg_1_60 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 64 + 60)); + +select 64 + 00, Knn::ManhattanDistance($bitvector_pos_1_00, $bitvector_pos_1_00); +select 64 + 04, Knn::ManhattanDistance($bitvector_pos_1_04, $bitvector_pos_1_04); +select 64 + 08, Knn::ManhattanDistance($bitvector_pos_1_08, $bitvector_pos_1_08); +select 64 + 16, Knn::ManhattanDistance($bitvector_pos_1_16, $bitvector_pos_1_16); +select 64 + 24, Knn::ManhattanDistance($bitvector_pos_1_24, $bitvector_pos_1_24); +select 64 + 32, Knn::ManhattanDistance($bitvector_pos_1_32, $bitvector_pos_1_32); +select 64 + 40, Knn::ManhattanDistance($bitvector_pos_1_40, $bitvector_pos_1_40); +select 64 + 48, Knn::ManhattanDistance($bitvector_pos_1_48, $bitvector_pos_1_48); +select 64 + 56, Knn::ManhattanDistance($bitvector_pos_1_56, $bitvector_pos_1_56); +select 64 + 60, Knn::ManhattanDistance($bitvector_pos_1_60, $bitvector_pos_1_60); + +select 64 + 00, Knn::ManhattanDistance($bitvector_neg_1_00, $bitvector_neg_1_00); +select 64 + 04, Knn::ManhattanDistance($bitvector_neg_1_04, $bitvector_neg_1_04); +select 64 + 08, Knn::ManhattanDistance($bitvector_neg_1_08, $bitvector_neg_1_08); +select 64 + 16, Knn::ManhattanDistance($bitvector_neg_1_16, $bitvector_neg_1_16); +select 64 + 24, Knn::ManhattanDistance($bitvector_neg_1_24, $bitvector_neg_1_24); +select 64 + 32, Knn::ManhattanDistance($bitvector_neg_1_32, $bitvector_neg_1_32); +select 64 + 40, Knn::ManhattanDistance($bitvector_neg_1_40, $bitvector_neg_1_40); +select 64 + 48, Knn::ManhattanDistance($bitvector_neg_1_48, $bitvector_neg_1_48); +select 64 + 56, Knn::ManhattanDistance($bitvector_neg_1_56, $bitvector_neg_1_56); +select 64 + 60, Knn::ManhattanDistance($bitvector_neg_1_60, $bitvector_neg_1_60); + +select 64 + 00, Knn::ManhattanDistance($bitvector_pos_1_00, $bitvector_neg_1_00); +select 64 + 04, Knn::ManhattanDistance($bitvector_pos_1_04, $bitvector_neg_1_04); +select 64 + 08, Knn::ManhattanDistance($bitvector_pos_1_08, $bitvector_neg_1_08); +select 64 + 16, Knn::ManhattanDistance($bitvector_pos_1_16, $bitvector_neg_1_16); +select 64 + 24, Knn::ManhattanDistance($bitvector_pos_1_24, $bitvector_neg_1_24); +select 64 + 32, Knn::ManhattanDistance($bitvector_pos_1_32, $bitvector_neg_1_32); +select 64 + 40, Knn::ManhattanDistance($bitvector_pos_1_40, $bitvector_neg_1_40); +select 64 + 48, Knn::ManhattanDistance($bitvector_pos_1_48, $bitvector_neg_1_48); +select 64 + 56, Knn::ManhattanDistance($bitvector_pos_1_56, $bitvector_neg_1_56); +select 64 + 60, Knn::ManhattanDistance($bitvector_pos_1_60, $bitvector_neg_1_60); + +select 64 + 00, Knn::ManhattanDistance($bitvector_neg_1_00, $bitvector_pos_1_00); +select 64 + 04, Knn::ManhattanDistance($bitvector_neg_1_04, $bitvector_pos_1_04); +select 64 + 08, Knn::ManhattanDistance($bitvector_neg_1_08, $bitvector_pos_1_08); +select 64 + 16, Knn::ManhattanDistance($bitvector_neg_1_16, $bitvector_pos_1_16); +select 64 + 24, Knn::ManhattanDistance($bitvector_neg_1_24, $bitvector_pos_1_24); +select 64 + 32, Knn::ManhattanDistance($bitvector_neg_1_32, $bitvector_pos_1_32); +select 64 + 40, Knn::ManhattanDistance($bitvector_neg_1_40, $bitvector_pos_1_40); +select 64 + 48, Knn::ManhattanDistance($bitvector_neg_1_48, $bitvector_pos_1_48); +select 64 + 56, Knn::ManhattanDistance($bitvector_neg_1_56, $bitvector_pos_1_56); +select 64 + 60, Knn::ManhattanDistance($bitvector_neg_1_60, $bitvector_pos_1_60); + +--bit vector -- only tail +$bitvector_pos_00 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 00)); +$bitvector_pos_04 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 04)); +$bitvector_pos_08 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 08)); +$bitvector_pos_16 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 16)); +$bitvector_pos_24 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 24)); +$bitvector_pos_32 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 32)); +$bitvector_pos_40 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 40)); +$bitvector_pos_48 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 48)); +$bitvector_pos_56 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 56)); +$bitvector_pos_60 = Knn::ToBinaryStringBit(ListReplicate(1.0f, 60)); + +$bitvector_neg_00 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 00)); +$bitvector_neg_04 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 04)); +$bitvector_neg_08 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 08)); +$bitvector_neg_16 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 16)); +$bitvector_neg_24 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 24)); +$bitvector_neg_32 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 32)); +$bitvector_neg_40 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 40)); +$bitvector_neg_48 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 48)); +$bitvector_neg_56 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 56)); +$bitvector_neg_60 = Knn::ToBinaryStringBit(ListReplicate(-1.0f, 60)); + +select 00, Knn::ManhattanDistance($bitvector_pos_00, $bitvector_pos_00); +select 04, Knn::ManhattanDistance($bitvector_pos_04, $bitvector_pos_04); +select 08, Knn::ManhattanDistance($bitvector_pos_08, $bitvector_pos_08); +select 16, Knn::ManhattanDistance($bitvector_pos_16, $bitvector_pos_16); +select 24, Knn::ManhattanDistance($bitvector_pos_24, $bitvector_pos_24); +select 32, Knn::ManhattanDistance($bitvector_pos_32, $bitvector_pos_32); +select 40, Knn::ManhattanDistance($bitvector_pos_40, $bitvector_pos_40); +select 48, Knn::ManhattanDistance($bitvector_pos_48, $bitvector_pos_48); +select 56, Knn::ManhattanDistance($bitvector_pos_56, $bitvector_pos_56); +select 60, Knn::ManhattanDistance($bitvector_pos_60, $bitvector_pos_60); + +select 00, Knn::ManhattanDistance($bitvector_neg_00, $bitvector_neg_00); +select 04, Knn::ManhattanDistance($bitvector_neg_04, $bitvector_neg_04); +select 08, Knn::ManhattanDistance($bitvector_neg_08, $bitvector_neg_08); +select 16, Knn::ManhattanDistance($bitvector_neg_16, $bitvector_neg_16); +select 24, Knn::ManhattanDistance($bitvector_neg_24, $bitvector_neg_24); +select 32, Knn::ManhattanDistance($bitvector_neg_32, $bitvector_neg_32); +select 40, Knn::ManhattanDistance($bitvector_neg_40, $bitvector_neg_40); +select 48, Knn::ManhattanDistance($bitvector_neg_48, $bitvector_neg_48); +select 56, Knn::ManhattanDistance($bitvector_neg_56, $bitvector_neg_56); +select 60, Knn::ManhattanDistance($bitvector_neg_60, $bitvector_neg_60); + +select 00, Knn::ManhattanDistance($bitvector_pos_00, $bitvector_neg_00); +select 04, Knn::ManhattanDistance($bitvector_pos_04, $bitvector_neg_04); +select 08, Knn::ManhattanDistance($bitvector_pos_08, $bitvector_neg_08); +select 16, Knn::ManhattanDistance($bitvector_pos_16, $bitvector_neg_16); +select 24, Knn::ManhattanDistance($bitvector_pos_24, $bitvector_neg_24); +select 32, Knn::ManhattanDistance($bitvector_pos_32, $bitvector_neg_32); +select 40, Knn::ManhattanDistance($bitvector_pos_40, $bitvector_neg_40); +select 48, Knn::ManhattanDistance($bitvector_pos_48, $bitvector_neg_48); +select 56, Knn::ManhattanDistance($bitvector_pos_56, $bitvector_neg_56); +select 60, Knn::ManhattanDistance($bitvector_pos_60, $bitvector_neg_60); + +select 00, Knn::ManhattanDistance($bitvector_neg_00, $bitvector_pos_00); +select 04, Knn::ManhattanDistance($bitvector_neg_04, $bitvector_pos_04); +select 08, Knn::ManhattanDistance($bitvector_neg_08, $bitvector_pos_08); +select 16, Knn::ManhattanDistance($bitvector_neg_16, $bitvector_pos_16); +select 24, Knn::ManhattanDistance($bitvector_neg_24, $bitvector_pos_24); +select 32, Knn::ManhattanDistance($bitvector_neg_32, $bitvector_pos_32); +select 40, Knn::ManhattanDistance($bitvector_neg_40, $bitvector_pos_40); +select 48, Knn::ManhattanDistance($bitvector_neg_48, $bitvector_pos_48); +select 56, Knn::ManhattanDistance($bitvector_neg_56, $bitvector_pos_56); +select 60, Knn::ManhattanDistance($bitvector_neg_60, $bitvector_pos_60); diff --git a/ydb/library/yql/udfs/common/knn/test/cases/NullForwarding.sql b/ydb/library/yql/udfs/common/knn/test/cases/NullForwarding.sql new file mode 100644 index 000000000000..ae2abf147b48 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/NullForwarding.sql @@ -0,0 +1,7 @@ +select Knn::ToBinaryStringFloat(null) is null; +select Knn::ToBinaryStringUint8(null) is null; +select Knn::ToBinaryStringBit(null) is null; +select Knn::FloatFromBinaryString(null) is null; +select Knn::CosineDistance(null, null) is null; +select Knn::CosineDistance(null, "\u0002") is null; +select Knn::CosineDistance("\u0002", null) is null; diff --git a/ydb/library/yql/udfs/common/knn/test/cases/OptionalAutoUnpacking.sql b/ydb/library/yql/udfs/common/knn/test/cases/OptionalAutoUnpacking.sql new file mode 100644 index 000000000000..d8aa12e0a3c6 --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/OptionalAutoUnpacking.sql @@ -0,0 +1,8 @@ +select Knn::ToBinaryStringFloat(Nothing(List<Float>?)) is null; +select Knn::ToBinaryStringUint8(Nothing(List<Uint8>?)) is null; +select Knn::ToBinaryStringBit(Nothing(List<Float>?)) is null; +select Knn::FloatFromBinaryString(Nothing(String?)) is null; +select Knn::CosineDistance(Nothing(String?), Nothing(String?)) is null; +select Knn::CosineDistance(Nothing(String?), Just("\u0002")) is null; +select Knn::CosineDistance(Just("\u0002"), Nothing(String?)) is null; +select Knn::CosineDistance(Just("\u0002"), Just("\u0002")) == 0; diff --git a/ydb/library/yql/udfs/common/knn/test/cases/Uint8Serialization.sql b/ydb/library/yql/udfs/common/knn/test/cases/Uint8Serialization.sql new file mode 100644 index 000000000000..99e8f1d176cf --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/cases/Uint8Serialization.sql @@ -0,0 +1,18 @@ +--list serialization +$vector = Cast([1, 2, 3, 4, 5] AS List<Uint8>); +$vector_binary_str = Knn::ToBinaryStringUint8($vector); +select $vector_binary_str; +select Len(Untag($vector_binary_str, "Uint8Vector")) == 6; + +--deserialization +$deserialized_vector = Knn::FloatFromBinaryString($vector_binary_str); +select $deserialized_vector; + +--fixed size vector +$vector1 = Knn::ToBinaryStringUint8([1ut, 2ut, 3ut]); +$vector2 = Knn::ToBinaryStringUint8([4ut, 5ut, 6ut]); + +select Knn::CosineDistance($vector1, $vector2); +select Knn::CosineDistance($vector1, "\u0004\u0005\u0006\u0002"); +select Knn::CosineDistance("\u0001\u0002\u0003\u0002", $vector2); +select Knn::CosineDistance("\u0001\u0002\u0003\u0002", "\u0004\u0005\u0006\u0002"); diff --git a/ydb/library/yql/udfs/common/knn/test/ya.make b/ydb/library/yql/udfs/common/knn/test/ya.make new file mode 100644 index 000000000000..09726ccb31ae --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/test/ya.make @@ -0,0 +1,13 @@ +YQL_UDF_YDB_TEST() + +TIMEOUT(300) + +SIZE(MEDIUM) + +IF (SANITIZER_TYPE == "memory") + TAG(ya:not_autocheck) # YQL-15385 +ENDIF() + +DEPENDS(ydb/library/yql/udfs/common/knn) + +END() diff --git a/ydb/library/yql/udfs/common/knn/ya.make b/ydb/library/yql/udfs/common/knn/ya.make new file mode 100644 index 000000000000..634856360aac --- /dev/null +++ b/ydb/library/yql/udfs/common/knn/ya.make @@ -0,0 +1,24 @@ +YQL_UDF_YDB(knn) + +YQL_ABI_VERSION( + 2 + 35 + 0 +) + +SRCS( + knn.cpp +) + +PEERDIR( + library/cpp/dot_product + library/cpp/l1_distance + library/cpp/l2_distance +) + + +END() + +RECURSE_FOR_TESTS( + test +) \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/math/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/math/CMakeLists.darwin-arm64.txt index 22a9599041de..fe5d0146f5a5 100644 --- a/ydb/library/yql/udfs/common/math/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/udfs/common/math/CMakeLists.darwin-arm64.txt @@ -7,18 +7,6 @@ add_subdirectory(lib) -get_built_tool_path( - TOOL_rescompiler_bin - TOOL_rescompiler_dependency - tools/rescompiler/bin - rescompiler -) -get_built_tool_path( - TOOL_rescompiler_bin - TOOL_rescompiler_dependency - tools/rescompiler/bin - rescompiler -) add_library(math_udf INTERFACE) target_link_libraries(math_udf INTERFACE @@ -27,7 +15,6 @@ target_link_libraries(math_udf INTERFACE yql-public-udf public-udf-support common-math-lib - library-cpp-resource ) add_global_library_for(math_udf.global math_udf) @@ -42,58 +29,9 @@ target_link_libraries(math_udf.global PUBLIC yql-public-udf public-udf-support common-math-lib - library-cpp-resource ) target_sources(math_udf.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_udf.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/d7ae26bd65dd2aef1aa80f78b00c6984.cpp -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc - COMMAND - ${LLVMOPT} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc - -internalize-public-api-list=PiIR#EIR#EpsIR#RoundDownwardIR#RoundToNearestIR#RoundTowardZeroIR#RoundUpwardIR#AbsIR#AcosIR#AsinIR#AsinhIR#AtanIR#CbrtIR#CeilIR#CosIR#CoshIR#ErfIR#ErfInvIR#ErfcInvIR#ExpIR#Exp2IR#FabsIR#FloorIR#LgammaIR#RintIR#SinIR#SinhIR#SqrtIR#TanIR#TanhIR#TgammaIR#TruncIR#IsFiniteIR#IsInfIR#IsNaNIR#Atan2IR#FmodIR#HypotIR#RemainderIR#PowIR#LdexpIR#LogIR#Log2IR#Log10IR#SigmoidIR#FuzzyEqualsIR#RoundIR#ModIR#RemIR - -passes="default<O2>,globalopt,globaldce,internalize" -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc - COMMAND - ${LLVMLINK} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc -) -llvm_compile_cxx(math_udf.global - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -llvm_compile_cxx(math_udf.global - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -resources(math_udf.global - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/d7ae26bd65dd2aef1aa80f78b00c6984.cpp - INPUTS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc - KEYS - /llvm_bc/Math ) add_shared_library(math_udf.dyn) @@ -112,7 +50,6 @@ target_link_libraries(math_udf.dyn PUBLIC yql-public-udf public-udf-support common-math-lib - library-cpp-resource ) target_link_options(math_udf.dyn PRIVATE -Wl,-platform_version,macos,11.0,11.0 @@ -123,54 +60,6 @@ target_link_options(math_udf.dyn PRIVATE ) target_sources(math_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_udf.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/e16170b202418194bf58dc2778af9bd8.cpp -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc - COMMAND - ${LLVMOPT} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc - -internalize-public-api-list=PiIR#EIR#EpsIR#RoundDownwardIR#RoundToNearestIR#RoundTowardZeroIR#RoundUpwardIR#AbsIR#AcosIR#AsinIR#AsinhIR#AtanIR#CbrtIR#CeilIR#CosIR#CoshIR#ErfIR#ErfInvIR#ErfcInvIR#ExpIR#Exp2IR#FabsIR#FloorIR#LgammaIR#RintIR#SinIR#SinhIR#SqrtIR#TanIR#TanhIR#TgammaIR#TruncIR#IsFiniteIR#IsInfIR#IsNaNIR#Atan2IR#FmodIR#HypotIR#RemainderIR#PowIR#LdexpIR#LogIR#Log2IR#Log10IR#SigmoidIR#FuzzyEqualsIR#RoundIR#ModIR#RemIR - -passes="default<O2>,globalopt,globaldce,internalize" -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc - COMMAND - ${LLVMLINK} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc -) -llvm_compile_cxx(math_udf.dyn - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -llvm_compile_cxx(math_udf.dyn - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -resources(math_udf.dyn - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/e16170b202418194bf58dc2778af9bd8.cpp - INPUTS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc - KEYS - /llvm_bc/Math ) use_export_script(math_udf.dyn ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports diff --git a/ydb/library/yql/udfs/common/math/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/udfs/common/math/CMakeLists.darwin-x86_64.txt index 22a9599041de..fe5d0146f5a5 100644 --- a/ydb/library/yql/udfs/common/math/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/udfs/common/math/CMakeLists.darwin-x86_64.txt @@ -7,18 +7,6 @@ add_subdirectory(lib) -get_built_tool_path( - TOOL_rescompiler_bin - TOOL_rescompiler_dependency - tools/rescompiler/bin - rescompiler -) -get_built_tool_path( - TOOL_rescompiler_bin - TOOL_rescompiler_dependency - tools/rescompiler/bin - rescompiler -) add_library(math_udf INTERFACE) target_link_libraries(math_udf INTERFACE @@ -27,7 +15,6 @@ target_link_libraries(math_udf INTERFACE yql-public-udf public-udf-support common-math-lib - library-cpp-resource ) add_global_library_for(math_udf.global math_udf) @@ -42,58 +29,9 @@ target_link_libraries(math_udf.global PUBLIC yql-public-udf public-udf-support common-math-lib - library-cpp-resource ) target_sources(math_udf.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_udf.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/d7ae26bd65dd2aef1aa80f78b00c6984.cpp -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc - COMMAND - ${LLVMOPT} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc - -internalize-public-api-list=PiIR#EIR#EpsIR#RoundDownwardIR#RoundToNearestIR#RoundTowardZeroIR#RoundUpwardIR#AbsIR#AcosIR#AsinIR#AsinhIR#AtanIR#CbrtIR#CeilIR#CosIR#CoshIR#ErfIR#ErfInvIR#ErfcInvIR#ExpIR#Exp2IR#FabsIR#FloorIR#LgammaIR#RintIR#SinIR#SinhIR#SqrtIR#TanIR#TanhIR#TgammaIR#TruncIR#IsFiniteIR#IsInfIR#IsNaNIR#Atan2IR#FmodIR#HypotIR#RemainderIR#PowIR#LdexpIR#LogIR#Log2IR#Log10IR#SigmoidIR#FuzzyEqualsIR#RoundIR#ModIR#RemIR - -passes="default<O2>,globalopt,globaldce,internalize" -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc - COMMAND - ${LLVMLINK} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc -) -llvm_compile_cxx(math_udf.global - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -llvm_compile_cxx(math_udf.global - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -resources(math_udf.global - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/d7ae26bd65dd2aef1aa80f78b00c6984.cpp - INPUTS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc - KEYS - /llvm_bc/Math ) add_shared_library(math_udf.dyn) @@ -112,7 +50,6 @@ target_link_libraries(math_udf.dyn PUBLIC yql-public-udf public-udf-support common-math-lib - library-cpp-resource ) target_link_options(math_udf.dyn PRIVATE -Wl,-platform_version,macos,11.0,11.0 @@ -123,54 +60,6 @@ target_link_options(math_udf.dyn PRIVATE ) target_sources(math_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_udf.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/e16170b202418194bf58dc2778af9bd8.cpp -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc - COMMAND - ${LLVMOPT} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc - -internalize-public-api-list=PiIR#EIR#EpsIR#RoundDownwardIR#RoundToNearestIR#RoundTowardZeroIR#RoundUpwardIR#AbsIR#AcosIR#AsinIR#AsinhIR#AtanIR#CbrtIR#CeilIR#CosIR#CoshIR#ErfIR#ErfInvIR#ErfcInvIR#ExpIR#Exp2IR#FabsIR#FloorIR#LgammaIR#RintIR#SinIR#SinhIR#SqrtIR#TanIR#TanhIR#TgammaIR#TruncIR#IsFiniteIR#IsInfIR#IsNaNIR#Atan2IR#FmodIR#HypotIR#RemainderIR#PowIR#LdexpIR#LogIR#Log2IR#Log10IR#SigmoidIR#FuzzyEqualsIR#RoundIR#ModIR#RemIR - -passes="default<O2>,globalopt,globaldce,internalize" -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc - COMMAND - ${LLVMLINK} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc -) -llvm_compile_cxx(math_udf.dyn - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -llvm_compile_cxx(math_udf.dyn - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -resources(math_udf.dyn - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/e16170b202418194bf58dc2778af9bd8.cpp - INPUTS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc - KEYS - /llvm_bc/Math ) use_export_script(math_udf.dyn ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports diff --git a/ydb/library/yql/udfs/common/math/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/math/CMakeLists.linux-aarch64.txt index 07c4251d6169..e96164d76693 100644 --- a/ydb/library/yql/udfs/common/math/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/math/CMakeLists.linux-aarch64.txt @@ -7,18 +7,6 @@ add_subdirectory(lib) -get_built_tool_path( - TOOL_rescompiler_bin - TOOL_rescompiler_dependency - tools/rescompiler/bin - rescompiler -) -get_built_tool_path( - TOOL_rescompiler_bin - TOOL_rescompiler_dependency - tools/rescompiler/bin - rescompiler -) add_library(math_udf INTERFACE) target_link_libraries(math_udf INTERFACE @@ -28,7 +16,6 @@ target_link_libraries(math_udf INTERFACE yql-public-udf public-udf-support common-math-lib - library-cpp-resource ) add_global_library_for(math_udf.global math_udf) @@ -44,58 +31,9 @@ target_link_libraries(math_udf.global PUBLIC yql-public-udf public-udf-support common-math-lib - library-cpp-resource ) target_sources(math_udf.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_udf.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/d7ae26bd65dd2aef1aa80f78b00c6984.cpp -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc - COMMAND - ${LLVMOPT} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc - -internalize-public-api-list=PiIR#EIR#EpsIR#RoundDownwardIR#RoundToNearestIR#RoundTowardZeroIR#RoundUpwardIR#AbsIR#AcosIR#AsinIR#AsinhIR#AtanIR#CbrtIR#CeilIR#CosIR#CoshIR#ErfIR#ErfInvIR#ErfcInvIR#ExpIR#Exp2IR#FabsIR#FloorIR#LgammaIR#RintIR#SinIR#SinhIR#SqrtIR#TanIR#TanhIR#TgammaIR#TruncIR#IsFiniteIR#IsInfIR#IsNaNIR#Atan2IR#FmodIR#HypotIR#RemainderIR#PowIR#LdexpIR#LogIR#Log2IR#Log10IR#SigmoidIR#FuzzyEqualsIR#RoundIR#ModIR#RemIR - -passes="default<O2>,globalopt,globaldce,internalize" -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc - COMMAND - ${LLVMLINK} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc -) -llvm_compile_cxx(math_udf.global - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -llvm_compile_cxx(math_udf.global - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -resources(math_udf.global - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/d7ae26bd65dd2aef1aa80f78b00c6984.cpp - INPUTS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc - KEYS - /llvm_bc/Math ) add_shared_library(math_udf.dyn) @@ -115,7 +53,6 @@ target_link_libraries(math_udf.dyn PUBLIC yql-public-udf public-udf-support common-math-lib - library-cpp-resource ) target_link_options(math_udf.dyn PRIVATE -ldl @@ -125,60 +62,9 @@ target_link_options(math_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(math_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_udf.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/e16170b202418194bf58dc2778af9bd8.cpp -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc - COMMAND - ${LLVMOPT} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc - -internalize-public-api-list=PiIR#EIR#EpsIR#RoundDownwardIR#RoundToNearestIR#RoundTowardZeroIR#RoundUpwardIR#AbsIR#AcosIR#AsinIR#AsinhIR#AtanIR#CbrtIR#CeilIR#CosIR#CoshIR#ErfIR#ErfInvIR#ErfcInvIR#ExpIR#Exp2IR#FabsIR#FloorIR#LgammaIR#RintIR#SinIR#SinhIR#SqrtIR#TanIR#TanhIR#TgammaIR#TruncIR#IsFiniteIR#IsInfIR#IsNaNIR#Atan2IR#FmodIR#HypotIR#RemainderIR#PowIR#LdexpIR#LogIR#Log2IR#Log10IR#SigmoidIR#FuzzyEqualsIR#RoundIR#ModIR#RemIR - -passes="default<O2>,globalopt,globaldce,internalize" -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc - COMMAND - ${LLVMLINK} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc -) -llvm_compile_cxx(math_udf.dyn - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -llvm_compile_cxx(math_udf.dyn - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -resources(math_udf.dyn - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/e16170b202418194bf58dc2778af9bd8.cpp - INPUTS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc - KEYS - /llvm_bc/Math ) use_export_script(math_udf.dyn ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports diff --git a/ydb/library/yql/udfs/common/math/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/math/CMakeLists.linux-x86_64.txt index 07c4251d6169..e96164d76693 100644 --- a/ydb/library/yql/udfs/common/math/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/math/CMakeLists.linux-x86_64.txt @@ -7,18 +7,6 @@ add_subdirectory(lib) -get_built_tool_path( - TOOL_rescompiler_bin - TOOL_rescompiler_dependency - tools/rescompiler/bin - rescompiler -) -get_built_tool_path( - TOOL_rescompiler_bin - TOOL_rescompiler_dependency - tools/rescompiler/bin - rescompiler -) add_library(math_udf INTERFACE) target_link_libraries(math_udf INTERFACE @@ -28,7 +16,6 @@ target_link_libraries(math_udf INTERFACE yql-public-udf public-udf-support common-math-lib - library-cpp-resource ) add_global_library_for(math_udf.global math_udf) @@ -44,58 +31,9 @@ target_link_libraries(math_udf.global PUBLIC yql-public-udf public-udf-support common-math-lib - library-cpp-resource ) target_sources(math_udf.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_udf.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/d7ae26bd65dd2aef1aa80f78b00c6984.cpp -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc - COMMAND - ${LLVMOPT} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc - -internalize-public-api-list=PiIR#EIR#EpsIR#RoundDownwardIR#RoundToNearestIR#RoundTowardZeroIR#RoundUpwardIR#AbsIR#AcosIR#AsinIR#AsinhIR#AtanIR#CbrtIR#CeilIR#CosIR#CoshIR#ErfIR#ErfInvIR#ErfcInvIR#ExpIR#Exp2IR#FabsIR#FloorIR#LgammaIR#RintIR#SinIR#SinhIR#SqrtIR#TanIR#TanhIR#TgammaIR#TruncIR#IsFiniteIR#IsInfIR#IsNaNIR#Atan2IR#FmodIR#HypotIR#RemainderIR#PowIR#LdexpIR#LogIR#Log2IR#Log10IR#SigmoidIR#FuzzyEqualsIR#RoundIR#ModIR#RemIR - -passes="default<O2>,globalopt,globaldce,internalize" -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc - COMMAND - ${LLVMLINK} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc -) -llvm_compile_cxx(math_udf.global - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -llvm_compile_cxx(math_udf.global - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -resources(math_udf.global - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/d7ae26bd65dd2aef1aa80f78b00c6984.cpp - INPUTS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc - KEYS - /llvm_bc/Math ) add_shared_library(math_udf.dyn) @@ -115,7 +53,6 @@ target_link_libraries(math_udf.dyn PUBLIC yql-public-udf public-udf-support common-math-lib - library-cpp-resource ) target_link_options(math_udf.dyn PRIVATE -ldl @@ -125,60 +62,9 @@ target_link_options(math_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(math_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_udf.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/e16170b202418194bf58dc2778af9bd8.cpp -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc - COMMAND - ${LLVMOPT} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc - -internalize-public-api-list=PiIR#EIR#EpsIR#RoundDownwardIR#RoundToNearestIR#RoundTowardZeroIR#RoundUpwardIR#AbsIR#AcosIR#AsinIR#AsinhIR#AtanIR#CbrtIR#CeilIR#CosIR#CoshIR#ErfIR#ErfInvIR#ErfcInvIR#ExpIR#Exp2IR#FabsIR#FloorIR#LgammaIR#RintIR#SinIR#SinhIR#SqrtIR#TanIR#TanhIR#TgammaIR#TruncIR#IsFiniteIR#IsInfIR#IsNaNIR#Atan2IR#FmodIR#HypotIR#RemainderIR#PowIR#LdexpIR#LogIR#Log2IR#Log10IR#SigmoidIR#FuzzyEqualsIR#RoundIR#ModIR#RemIR - -passes="default<O2>,globalopt,globaldce,internalize" -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc - COMMAND - ${LLVMLINK} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc -) -llvm_compile_cxx(math_udf.dyn - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -llvm_compile_cxx(math_udf.dyn - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -resources(math_udf.dyn - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/e16170b202418194bf58dc2778af9bd8.cpp - INPUTS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc - KEYS - /llvm_bc/Math ) use_export_script(math_udf.dyn ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports diff --git a/ydb/library/yql/udfs/common/math/CMakeLists.windows-x86_64.txt b/ydb/library/yql/udfs/common/math/CMakeLists.windows-x86_64.txt index 6fea6a625c3f..ed40e622104e 100644 --- a/ydb/library/yql/udfs/common/math/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/udfs/common/math/CMakeLists.windows-x86_64.txt @@ -7,18 +7,6 @@ add_subdirectory(lib) -get_built_tool_path( - TOOL_rescompiler_bin - TOOL_rescompiler_dependency - tools/rescompiler/bin - rescompiler -) -get_built_tool_path( - TOOL_rescompiler_bin - TOOL_rescompiler_dependency - tools/rescompiler/bin - rescompiler -) add_library(math_udf INTERFACE) target_link_libraries(math_udf INTERFACE @@ -27,7 +15,6 @@ target_link_libraries(math_udf INTERFACE yql-public-udf public-udf-support common-math-lib - library-cpp-resource ) add_global_library_for(math_udf.global math_udf) @@ -42,58 +29,9 @@ target_link_libraries(math_udf.global PUBLIC yql-public-udf public-udf-support common-math-lib - library-cpp-resource ) target_sources(math_udf.global PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_udf.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/d7ae26bd65dd2aef1aa80f78b00c6984.cpp -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc - COMMAND - ${LLVMOPT} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc - -internalize-public-api-list=PiIR#EIR#EpsIR#RoundDownwardIR#RoundToNearestIR#RoundTowardZeroIR#RoundUpwardIR#AbsIR#AcosIR#AsinIR#AsinhIR#AtanIR#CbrtIR#CeilIR#CosIR#CoshIR#ErfIR#ErfInvIR#ErfcInvIR#ExpIR#Exp2IR#FabsIR#FloorIR#LgammaIR#RintIR#SinIR#SinhIR#SqrtIR#TanIR#TanhIR#TgammaIR#TruncIR#IsFiniteIR#IsInfIR#IsNaNIR#Atan2IR#FmodIR#HypotIR#RemainderIR#PowIR#LdexpIR#LogIR#Log2IR#Log10IR#SigmoidIR#FuzzyEqualsIR#RoundIR#ModIR#RemIR - -passes="default<O2>,globalopt,globaldce,internalize" -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc - COMMAND - ${LLVMLINK} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.udfs.bc -) -llvm_compile_cxx(math_udf.global - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.udfs.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -llvm_compile_cxx(math_udf.global - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.udfs.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -resources(math_udf.global - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/d7ae26bd65dd2aef1aa80f78b00c6984.cpp - INPUTS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.udfs.bc - KEYS - /llvm_bc/Math ) add_shared_library(math_udf.dyn) @@ -112,58 +50,9 @@ target_link_libraries(math_udf.dyn PUBLIC yql-public-udf public-udf-support common-math-lib - library-cpp-resource ) target_sources(math_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_udf.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/e16170b202418194bf58dc2778af9bd8.cpp -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc - COMMAND - ${LLVMOPT} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc - -internalize-public-api-list=PiIR#EIR#EpsIR#RoundDownwardIR#RoundToNearestIR#RoundTowardZeroIR#RoundUpwardIR#AbsIR#AcosIR#AsinIR#AsinhIR#AtanIR#CbrtIR#CeilIR#CosIR#CoshIR#ErfIR#ErfInvIR#ErfcInvIR#ExpIR#Exp2IR#FabsIR#FloorIR#LgammaIR#RintIR#SinIR#SinhIR#SqrtIR#TanIR#TanhIR#TgammaIR#TruncIR#IsFiniteIR#IsInfIR#IsNaNIR#Atan2IR#FmodIR#HypotIR#RemainderIR#PowIR#LdexpIR#LogIR#Log2IR#Log10IR#SigmoidIR#FuzzyEqualsIR#RoundIR#ModIR#RemIR - -passes="default<O2>,globalopt,globaldce,internalize" -) -add_custom_command( - OUTPUT - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc - DEPENDS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc - COMMAND - ${LLVMLINK} - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc - -o - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_merged.bc -) -llvm_compile_cxx(math_udf.dyn - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/math_ir.cpp.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -llvm_compile_cxx(math_udf.dyn - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/lib/erfinv.cpp.bc - ${CLANGPLUSPLUS} - -Wno-unknown-warning-option - -emit-llvm -) -resources(math_udf.dyn - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/e16170b202418194bf58dc2778af9bd8.cpp - INPUTS - ${CMAKE_BINARY_DIR}/ydb/library/yql/udfs/common/math/Math_optimized.bc - KEYS - /llvm_bc/Math ) use_export_script(math_udf.dyn ${CMAKE_SOURCE_DIR}/ydb/library/yql/public/udf/udfs_exports.exports diff --git a/ydb/library/yql/udfs/common/pire/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/pire/CMakeLists.linux-aarch64.txt index 0e418dabd089..2f8cbc7a9ccf 100644 --- a/ydb/library/yql/udfs/common/pire/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/pire/CMakeLists.linux-aarch64.txt @@ -61,9 +61,6 @@ target_link_options(pire_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(pire_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/pire/pire_udf.cpp diff --git a/ydb/library/yql/udfs/common/pire/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/pire/CMakeLists.linux-x86_64.txt index 0e418dabd089..2f8cbc7a9ccf 100644 --- a/ydb/library/yql/udfs/common/pire/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/pire/CMakeLists.linux-x86_64.txt @@ -61,9 +61,6 @@ target_link_options(pire_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(pire_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/pire/pire_udf.cpp diff --git a/ydb/library/yql/udfs/common/protobuf/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/protobuf/CMakeLists.linux-aarch64.txt index 1fab62cf3061..4f16d9afde8d 100644 --- a/ydb/library/yql/udfs/common/protobuf/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/protobuf/CMakeLists.linux-aarch64.txt @@ -34,9 +34,6 @@ target_link_options(protobuf_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(protobuf_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/protobuf/protobuf_udf.cpp diff --git a/ydb/library/yql/udfs/common/protobuf/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/protobuf/CMakeLists.linux-x86_64.txt index 1fab62cf3061..4f16d9afde8d 100644 --- a/ydb/library/yql/udfs/common/protobuf/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/protobuf/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(protobuf_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(protobuf_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/protobuf/protobuf_udf.cpp diff --git a/ydb/library/yql/udfs/common/re2/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/re2/CMakeLists.darwin-arm64.txt index 4c5d1d039174..64324683819f 100644 --- a/ydb/library/yql/udfs/common/re2/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/udfs/common/re2/CMakeLists.darwin-arm64.txt @@ -59,8 +59,6 @@ target_link_options(re2_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(re2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/re2/re2_udf.cpp diff --git a/ydb/library/yql/udfs/common/re2/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/udfs/common/re2/CMakeLists.darwin-x86_64.txt index 4c5d1d039174..64324683819f 100644 --- a/ydb/library/yql/udfs/common/re2/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/udfs/common/re2/CMakeLists.darwin-x86_64.txt @@ -59,8 +59,6 @@ target_link_options(re2_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(re2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/re2/re2_udf.cpp diff --git a/ydb/library/yql/udfs/common/re2/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/re2/CMakeLists.linux-aarch64.txt index 21075ec6cfe7..688c9ff4b660 100644 --- a/ydb/library/yql/udfs/common/re2/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/re2/CMakeLists.linux-aarch64.txt @@ -64,9 +64,6 @@ target_link_options(re2_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(re2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/re2/re2_udf.cpp diff --git a/ydb/library/yql/udfs/common/re2/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/re2/CMakeLists.linux-x86_64.txt index 21075ec6cfe7..688c9ff4b660 100644 --- a/ydb/library/yql/udfs/common/re2/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/re2/CMakeLists.linux-x86_64.txt @@ -64,9 +64,6 @@ target_link_options(re2_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(re2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/re2/re2_udf.cpp diff --git a/ydb/library/yql/udfs/common/roaring/roaring.cpp b/ydb/library/yql/udfs/common/roaring/roaring.cpp new file mode 100644 index 000000000000..03b5772d969a --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/roaring.cpp @@ -0,0 +1,450 @@ +#include <ydb/library/yql/public/udf/udf_registrator.h> +#include <ydb/library/yql/public/udf/udf_terminator.h> +#include <ydb/library/yql/public/udf/udf_type_builder.h> +#include <ydb/library/yql/public/udf/udf_value.h> +#include <ydb/library/yql/public/udf/udf_value_builder.h> + +#include <contrib/libs/croaring/include/roaring/memory.h> +#include <contrib/libs/croaring/include/roaring/roaring.h> + +#include <util/generic/vector.h> +#include <util/string/builder.h> +#include <util/system/yassert.h> + +using namespace NKikimr; +using namespace NUdf; + +namespace { + + using namespace roaring::api; + + inline roaring_bitmap_t* DeserializePortable(TStringRef binaryString) { + auto bitmap = roaring_bitmap_portable_deserialize_safe(binaryString.Data(), binaryString.Size()); + Y_ENSURE(bitmap); + return bitmap; + } + + struct TRoaringWrapper: public TBoxedValue { + TRoaringWrapper(TStringRef binaryString) + : Roaring(DeserializePortable(binaryString)) + { + } + + ~TRoaringWrapper() { + roaring_bitmap_free(Roaring); + } + + roaring_bitmap_t* Roaring; + }; + + inline roaring_bitmap_t* GetBitmapFromArg(TUnboxedValuePod arg) { + return static_cast<TRoaringWrapper*>(arg.AsBoxed().Get())->Roaring; + } + + class TRoaringOrWithBinary: public TBoxedValue { + public: + TRoaringOrWithBinary() { + } + + static TStringRef Name() { + return TStringRef::Of("OrWithBinary"); + } + + private: + TUnboxedValue Run(const IValueBuilder* valueBuilder, + const TUnboxedValuePod* args) const override { + Y_UNUSED(valueBuilder); + auto binaryString = args[1].AsStringRef(); + auto bitmap = DeserializePortable(binaryString); + + roaring_bitmap_or_inplace(GetBitmapFromArg(args[0]), bitmap); + roaring_bitmap_free(bitmap); + + return args[0]; + } + }; + + class TRoaringAndWithBinary: public TBoxedValue { + public: + TRoaringAndWithBinary() { + } + + static TStringRef Name() { + return TStringRef::Of("AndWithBinary"); + } + + private: + TUnboxedValue Run(const IValueBuilder* valueBuilder, + const TUnboxedValuePod* args) const override { + Y_UNUSED(valueBuilder); + auto binaryString = args[1].AsStringRef(); + auto bitmap = DeserializePortable(binaryString); + + roaring_bitmap_and_inplace(GetBitmapFromArg(args[0]), bitmap); + roaring_bitmap_free(bitmap); + + return args[0]; + } + }; + + class TRoaringAnd: public TBoxedValue { + public: + TRoaringAnd() { + } + + static TStringRef Name() { + return TStringRef::Of("And"); + } + + private: + TUnboxedValue Run(const IValueBuilder* valueBuilder, + const TUnboxedValuePod* args) const override { + Y_UNUSED(valueBuilder); + roaring_bitmap_and_inplace(GetBitmapFromArg(args[0]), GetBitmapFromArg(args[1])); + return args[0]; + } + }; + + class TRoaringOr: public TBoxedValue { + public: + TRoaringOr() { + } + + static TStringRef Name() { + return TStringRef::Of("Or"); + } + + private: + TUnboxedValue Run(const IValueBuilder* valueBuilder, + const TUnboxedValuePod* args) const override { + Y_UNUSED(valueBuilder); + roaring_bitmap_or_inplace(GetBitmapFromArg(args[0]), GetBitmapFromArg(args[1])); + return args[0]; + } + }; + + class TRoaringUint32List: public TBoxedValue { + public: + static TStringRef Name() { + return TStringRef::Of("Uint32List"); + } + + private: + class TIterator: public TManagedBoxedValue { + public: + TIterator(roaring_bitmap_t* Roaring) { + Iter_ = roaring_iterator_create(Roaring); + } + ~TIterator() { + roaring_uint32_iterator_free(Iter_); + } + // Any iterator. + bool Skip() override { + if (!Iter_->has_value) { + return false; + } + roaring_uint32_iterator_advance(Iter_); + return true; + }; + + // List iterator. + bool Next(TUnboxedValue& value) override { + if (!Iter_->has_value) { + return false; + } + value = TUnboxedValuePod(Iter_->current_value); + roaring_uint32_iterator_advance(Iter_); + return true; + }; + + private: + roaring_uint32_iterator_t* Iter_; + }; + + class TList: public TBoxedValue { + public: + TList(TUnboxedValue UnboxedValue) + : UnboxedValue_(UnboxedValue) + { + auto wrapper = static_cast<TRoaringWrapper*>(UnboxedValue_.AsBoxed().Get()); + Length_ = roaring_bitmap_get_cardinality(wrapper->Roaring); + } + + bool HasFastListLength() const override { + return true; + }; + + ui64 GetListLength() const override { + return Length_; + }; + + ui64 GetEstimatedListLength() const override { + return GetListLength(); + }; + + TUnboxedValue GetListIterator() const override { + auto wrapper = static_cast<TRoaringWrapper*>(UnboxedValue_.AsBoxed().Get()); + return TUnboxedValuePod(new TIterator(wrapper->Roaring)); + }; + + private: + TUnboxedValue UnboxedValue_; + ui64 Length_; + }; + + TUnboxedValue Run(const IValueBuilder* valueBuilder, + const TUnboxedValuePod* args) const override { + Y_UNUSED(valueBuilder); + return TUnboxedValuePod(new TList(args[0])); + } + }; + + class TRoaringDeserialize: public TBoxedValue { + public: + TRoaringDeserialize(TSourcePosition pos) + : Pos_(pos) + { + } + + static TStringRef Name() { + return TStringRef::Of("Deserialize"); + } + + private: + TUnboxedValue Run(const IValueBuilder* valueBuilder, + const TUnboxedValuePod* args) const override { + Y_UNUSED(valueBuilder); + try { + return TUnboxedValuePod(new TRoaringWrapper(args[0].AsStringRef())); + } catch (const std::exception& e) { + UdfTerminate((TStringBuilder() << Pos_ << " " << e.what()).data()); + } + } + TSourcePosition Pos_; + }; + + class TRoaringSerialize: public TBoxedValue { + public: + TRoaringSerialize() { + } + + static TStringRef Name() { + return TStringRef::Of("Serialize"); + } + + private: + TUnboxedValue Run(const IValueBuilder* valueBuilder, + const TUnboxedValuePod* args) const override { + auto bitmap = GetBitmapFromArg(args[0]); + roaring_bitmap_run_optimize(bitmap); + + auto sizeInBytes = roaring_bitmap_portable_size_in_bytes(bitmap); + + auto string = valueBuilder->NewStringNotFilled(sizeInBytes); + roaring_bitmap_portable_serialize(bitmap, string.AsStringRef().Data()); + + return string; + } + }; + + class TRoaringCardinality: public TBoxedValue { + public: + TRoaringCardinality() { + } + + static TStringRef Name() { + return TStringRef::Of("Cardinality"); + } + + private: + TUnboxedValue Run(const IValueBuilder* valueBuilder, + const TUnboxedValuePod* args) const override { + Y_UNUSED(valueBuilder); + auto bitmap = GetBitmapFromArg(args[0]); + auto cardinality = (ui32)roaring_bitmap_get_cardinality(bitmap); + return TUnboxedValuePod(cardinality); + } + }; + + class TRoaringModule: public IUdfModule { + public: + TRoaringModule() { + auto memoryHook = roaring_memory_t{ + RoaringMallocUdf, RoaringReallocUdf, RoaringCallocUdf, + RoaringFreeUdf, RoaringAlignedMallocUdf, RoaringFreeUdf}; + roaring_init_memory_hook(memoryHook); + } + + TStringRef Name() const { + return TStringRef::Of("Roaring"); + } + + void GetAllFunctions(IFunctionsSink& sink) const final { + sink.Add(TRoaringSerialize::Name()); + sink.Add(TRoaringDeserialize::Name()); + + sink.Add(TRoaringCardinality::Name()); + + sink.Add(TRoaringUint32List::Name()); + + sink.Add(TRoaringOrWithBinary::Name()); + sink.Add(TRoaringOr::Name()); + + sink.Add(TRoaringAndWithBinary::Name()); + sink.Add(TRoaringAnd::Name()); + } + + void CleanupOnTerminate() const final { + } + + void BuildFunctionTypeInfo(const TStringRef& name, NUdf::TType* userType, + const TStringRef& typeConfig, ui32 flags, + IFunctionTypeInfoBuilder& builder) const final { + try { + Y_UNUSED(typeConfig); + Y_UNUSED(userType); + + auto typesOnly = (flags & TFlags::TypesOnly); + + if (TRoaringDeserialize::Name() == name) { + builder.Returns<TResource<RoaringResourceName>>().Args()->Add<TAutoMap<char*>>(); + + if (!typesOnly) { + builder.Implementation(new TRoaringDeserialize(builder.GetSourcePosition())); + } + } else if (TRoaringSerialize::Name() == name) { + builder.Returns(builder.SimpleType<char*>()) + .Args() + ->Add<TAutoMap<TResource<RoaringResourceName>>>(); + + if (!typesOnly) { + builder.Implementation(new TRoaringSerialize()); + } + } else if (TRoaringCardinality::Name() == name) { + builder.Returns(builder.SimpleType<ui32>()) + .Args() + ->Add<TAutoMap<TResource<RoaringResourceName>>>(); + + if (!typesOnly) { + builder.Implementation(new TRoaringCardinality()); + } + } else if (TRoaringUint32List::Name() == name) { + builder.Returns<TListType<ui32>>() + .Args() + ->Add<TAutoMap<TResource<RoaringResourceName>>>(); + + if (!typesOnly) { + builder.Implementation(new TRoaringUint32List()); + } + } else if (TRoaringOrWithBinary::Name() == name) { + builder.Returns<TResource<RoaringResourceName>>() + .Args() + ->Add<TAutoMap<TResource<RoaringResourceName>>>() + .Add<TAutoMap<char*>>(); + + if (!typesOnly) { + builder.Implementation(new TRoaringOrWithBinary()); + } + } else if (TRoaringOr::Name() == name) { + builder.Returns<TResource<RoaringResourceName>>() + .Args() + ->Add<TAutoMap<TResource<RoaringResourceName>>>() + .Add<TAutoMap<TResource<RoaringResourceName>>>(); + + if (!typesOnly) { + builder.Implementation(new TRoaringOr()); + } + } else if (TRoaringAndWithBinary::Name() == name) { + builder.Returns<TResource<RoaringResourceName>>() + .Args() + ->Add<TAutoMap<TResource<RoaringResourceName>>>() + .Add<TAutoMap<char*>>(); + + if (!typesOnly) { + builder.Implementation(new TRoaringAndWithBinary()); + } + } else if (TRoaringAnd::Name() == name) { + builder.Returns<TResource<RoaringResourceName>>() + .Args() + ->Add<TAutoMap<TResource<RoaringResourceName>>>() + .Add<TAutoMap<TResource<RoaringResourceName>>>(); + + if (!typesOnly) { + builder.Implementation(new TRoaringAnd()); + } + } else { + TStringBuilder sb; + sb << "Unknown function: " << name.Data(); + builder.SetError(sb); + } + } catch (const std::exception& e) { + builder.SetError(CurrentExceptionMessage()); + } + } + + private: + inline static const char RoaringResourceName[] = "roaring_bitmap"; + + static void* RoaringMallocUdf(size_t size) { + auto allocationSize = size + 2 * sizeof(void*); + auto allocatedMemPointer = UdfAllocateWithSize(allocationSize); + + auto roaringMemPointer = ((char*)allocatedMemPointer) + 2 * sizeof(void*); + + ((void**)roaringMemPointer)[-1] = allocatedMemPointer; + ((void**)roaringMemPointer)[-2] = ((char*)allocatedMemPointer) + allocationSize; + return roaringMemPointer; + } + + static void* RoaringReallocUdf(void* oldPointer, size_t newSize) { + if (oldPointer == nullptr) { + return RoaringMallocUdf(newSize); + } + + if (oldPointer != nullptr && newSize == 0) { + RoaringFreeUdf(oldPointer); + return nullptr; + } + + auto reallocatedPointer = RoaringMallocUdf(newSize); + auto oldAllocatedMemPointer = (char*)((void**)oldPointer)[-1]; + auto oldSizePointer = (char*)((void**)oldPointer)[-2]; + memcpy(reallocatedPointer, oldPointer, oldSizePointer - oldAllocatedMemPointer); + RoaringFreeUdf(oldPointer); + + return reallocatedPointer; + } + + static void* RoaringCallocUdf(size_t elements, size_t elementSize) { + auto newMem = RoaringMallocUdf(elements * elementSize); + memset(newMem, 0, elements * elementSize); + return newMem; + } + + static void RoaringFreeUdf(void* pointer) { + if (pointer == nullptr) { + return; + } + auto allocatedMemPointer = (char*)((void**)pointer)[-1]; + auto sizePointer = (char*)((void**)pointer)[-2]; + UdfFreeWithSize(allocatedMemPointer, sizePointer - allocatedMemPointer); + } + + static void* RoaringAlignedMallocUdf(size_t alignment, size_t size) { + auto allocationSize = size + (alignment - 1) + 2 * sizeof(void*); + auto allocatedMemPointer = UdfAllocateWithSize(allocationSize); + + auto roaringMemPointer = ((char*)allocatedMemPointer) + 2 * sizeof(void*); + if ((size_t)roaringMemPointer & (alignment - 1)) { + roaringMemPointer += alignment - ((size_t)roaringMemPointer & (alignment - 1)); + } + + ((void**)roaringMemPointer)[-1] = allocatedMemPointer; + ((void**)roaringMemPointer)[-2] = ((char*)allocatedMemPointer) + allocationSize; + return roaringMemPointer; + } + }; + +} // namespace + +REGISTER_MODULES(TRoaringModule) diff --git a/ydb/library/yql/udfs/common/roaring/test/canondata/result.json b/ydb/library/yql/udfs/common/roaring/test/canondata/result.json new file mode 100644 index 000000000000..8c592fb352ad --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/canondata/result.json @@ -0,0 +1,22 @@ +{ + "test.test[cardinality]": [ + { + "uri": "file://test.test_cardinality_/results.txt" + } + ], + "test.test[intersect]": [ + { + "uri": "file://test.test_intersect_/results.txt" + } + ], + "test.test[serialize_deserialize]": [ + { + "uri": "file://test.test_serialize_deserialize_/results.txt" + } + ], + "test.test[union]": [ + { + "uri": "file://test.test_union_/results.txt" + } + ] +} diff --git a/ydb/library/yql/udfs/common/roaring/test/canondata/test.test_cardinality_/results.txt b/ydb/library/yql/udfs/common/roaring/test/canondata/test.test_cardinality_/results.txt new file mode 100644 index 000000000000..315e3b881a91 --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/canondata/test.test_cardinality_/results.txt @@ -0,0 +1,69 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "OrCardinality"; + [ + "OptionalType"; + [ + "DataType"; + "Uint32" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + "3" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "AndCardinality"; + [ + "OptionalType"; + [ + "ListType"; + [ + "DataType"; + "Uint32" + ] + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + [ + "1" + ] + ] + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/roaring/test/canondata/test.test_intersect_/results.txt b/ydb/library/yql/udfs/common/roaring/test/canondata/test.test_intersect_/results.txt new file mode 100644 index 000000000000..326216669869 --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/canondata/test.test_intersect_/results.txt @@ -0,0 +1,106 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "AndList"; + [ + "OptionalType"; + [ + "ListType"; + [ + "DataType"; + "Uint32" + ] + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + [ + "1" + ] + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "AndWithBinaryList"; + [ + "OptionalType"; + [ + "ListType"; + [ + "DataType"; + "Uint32" + ] + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + [ + "1" + ] + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "AndWithBinaryListEmpty"; + [ + "OptionalType"; + [ + "ListType"; + [ + "DataType"; + "Uint32" + ] + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + # + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/roaring/test/canondata/test.test_serialize_deserialize_/results.txt b/ydb/library/yql/udfs/common/roaring/test/canondata/test.test_serialize_deserialize_/results.txt new file mode 100644 index 000000000000..05f944c62233 --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/canondata/test.test_serialize_deserialize_/results.txt @@ -0,0 +1,176 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "DeserializedList"; + [ + "OptionalType"; + [ + "ListType"; + [ + "DataType"; + "Uint32" + ] + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + [ + "10"; + "567" + ] + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "Serialized"; + [ + "OptionalType"; + [ + "DataType"; + "String" + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + ":0\0\0\1\0\0\0\0\0\1\0\x10\0\0\0\n\0007\2" + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "LimitedList"; + [ + "OptionalType"; + [ + "ListType"; + [ + "DataType"; + "Uint32" + ] + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + [ + "10" + ] + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "OffsetedList"; + [ + "OptionalType"; + [ + "ListType"; + [ + "DataType"; + "Uint32" + ] + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + [ + "567" + ] + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "EmptyList"; + [ + "OptionalType"; + [ + "ListType"; + [ + "DataType"; + "Uint32" + ] + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + [] + ] + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/roaring/test/canondata/test.test_union_/results.txt b/ydb/library/yql/udfs/common/roaring/test/canondata/test.test_union_/results.txt new file mode 100644 index 000000000000..208f1ff2c42e --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/canondata/test.test_union_/results.txt @@ -0,0 +1,78 @@ +[ + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "OrList"; + [ + "OptionalType"; + [ + "ListType"; + [ + "DataType"; + "Uint32" + ] + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + [ + "1"; + "2"; + "3" + ] + ] + ] + ] + } + ] + }; + { + "Write" = [ + { + "Type" = [ + "ListType"; + [ + "StructType"; + [ + [ + "OrWithBinaryList"; + [ + "OptionalType"; + [ + "ListType"; + [ + "DataType"; + "Uint32" + ] + ] + ] + ] + ] + ] + ]; + "Data" = [ + [ + [ + [ + "1"; + "2"; + "3" + ] + ] + ] + ] + } + ] + } +] \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/roaring/test/cases/cardinality.in b/ydb/library/yql/udfs/common/roaring/test/cases/cardinality.in new file mode 100644 index 000000000000..12431657f3b8 --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/cases/cardinality.in @@ -0,0 +1 @@ +{"left"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x02\x00";"right"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x03\x00";}; diff --git a/ydb/library/yql/udfs/common/roaring/test/cases/cardinality.in.attr b/ydb/library/yql/udfs/common/roaring/test/cases/cardinality.in.attr new file mode 100644 index 000000000000..6bfd01839a56 --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/cases/cardinality.in.attr @@ -0,0 +1 @@ +{schema=[{name=left;type=string};{name=right;type=string}]} diff --git a/ydb/library/yql/udfs/common/roaring/test/cases/cardinality.sql b/ydb/library/yql/udfs/common/roaring/test/cases/cardinality.sql new file mode 100644 index 000000000000..729fc50bd383 --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/cases/cardinality.sql @@ -0,0 +1,2 @@ +SELECT Roaring::Cardinality(Roaring::OrWithBinary(Roaring::Deserialize(left), right)) AS OrCardinality FROM Input; +SELECT Roaring::Uint32List(Roaring::AndWithBinary(Roaring::Deserialize(right), left)) AS AndCardinality FROM Input; diff --git a/ydb/library/yql/udfs/common/roaring/test/cases/intersect.in b/ydb/library/yql/udfs/common/roaring/test/cases/intersect.in new file mode 100644 index 000000000000..12431657f3b8 --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/cases/intersect.in @@ -0,0 +1 @@ +{"left"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x02\x00";"right"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x03\x00";}; diff --git a/ydb/library/yql/udfs/common/roaring/test/cases/intersect.in.attr b/ydb/library/yql/udfs/common/roaring/test/cases/intersect.in.attr new file mode 100644 index 000000000000..6bfd01839a56 --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/cases/intersect.in.attr @@ -0,0 +1 @@ +{schema=[{name=left;type=string};{name=right;type=string}]} diff --git a/ydb/library/yql/udfs/common/roaring/test/cases/intersect.sql b/ydb/library/yql/udfs/common/roaring/test/cases/intersect.sql new file mode 100644 index 000000000000..60c968946ead --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/cases/intersect.sql @@ -0,0 +1,3 @@ +SELECT Roaring::Uint32List(Roaring::And(Roaring::Deserialize(left), Roaring::Deserialize(right))) AS AndList FROM Input; +SELECT Roaring::Uint32List(Roaring::AndWithBinary(Roaring::Deserialize(right), left)) AS AndWithBinaryList FROM Input; +SELECT Roaring::Uint32List(Roaring::AndWithBinary(Roaring::Deserialize(right), NULL)) AS AndWithBinaryListEmpty FROM Input; diff --git a/ydb/library/yql/udfs/common/roaring/test/cases/serialize_deserialize.in b/ydb/library/yql/udfs/common/roaring/test/cases/serialize_deserialize.in new file mode 100644 index 000000000000..0023cbae96fe --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/cases/serialize_deserialize.in @@ -0,0 +1 @@ +{"binaryString"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\n\x007\x02";}; diff --git a/ydb/library/yql/udfs/common/roaring/test/cases/serialize_deserialize.in.attr b/ydb/library/yql/udfs/common/roaring/test/cases/serialize_deserialize.in.attr new file mode 100644 index 000000000000..158676c2c5b3 --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/cases/serialize_deserialize.in.attr @@ -0,0 +1 @@ +{schema=[{name=binaryString;type=string}]} \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/roaring/test/cases/serialize_deserialize.sql b/ydb/library/yql/udfs/common/roaring/test/cases/serialize_deserialize.sql new file mode 100644 index 000000000000..9735432181c9 --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/cases/serialize_deserialize.sql @@ -0,0 +1,15 @@ +/* syntax version 1 */ +SELECT Roaring::Uint32List(Roaring::Deserialize(binaryString)) AS DeserializedList +FROM Input; + +SELECT Roaring::Serialize(Roaring::Deserialize(binaryString)) AS Serialized +FROM Input; + +SELECT ListTake(Roaring::Uint32List(Roaring::Deserialize(binaryString)), 1) AS LimitedList +FROM Input; + +SELECT ListTake(ListSkip(Roaring::Uint32List(Roaring::Deserialize(binaryString)), 1), 1) AS OffsetedList +FROM Input; + +SELECT ListTake(ListSkip(Roaring::Uint32List(Roaring::Deserialize(binaryString)), 10), 1) AS EmptyList +FROM Input; diff --git a/ydb/library/yql/udfs/common/roaring/test/cases/union.in b/ydb/library/yql/udfs/common/roaring/test/cases/union.in new file mode 100644 index 000000000000..12431657f3b8 --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/cases/union.in @@ -0,0 +1 @@ +{"left"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x02\x00";"right"=":0\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x10\x00\x00\x00\x01\x00\x03\x00";}; diff --git a/ydb/library/yql/udfs/common/roaring/test/cases/union.in.attr b/ydb/library/yql/udfs/common/roaring/test/cases/union.in.attr new file mode 100644 index 000000000000..6bfd01839a56 --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/cases/union.in.attr @@ -0,0 +1 @@ +{schema=[{name=left;type=string};{name=right;type=string}]} diff --git a/ydb/library/yql/udfs/common/roaring/test/cases/union.sql b/ydb/library/yql/udfs/common/roaring/test/cases/union.sql new file mode 100644 index 000000000000..54d44054b03e --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/cases/union.sql @@ -0,0 +1,3 @@ +SELECT Roaring::Uint32List(Roaring::Or(Roaring::Deserialize(left), Roaring::Deserialize(right))) AS OrList FROM Input; +SELECT Roaring::Uint32List(Roaring::OrWithBinary(Roaring::Deserialize(right), left)) AS OrWithBinaryList FROM Input; + diff --git a/ydb/library/yql/udfs/common/roaring/test/ya.make b/ydb/library/yql/udfs/common/roaring/test/ya.make new file mode 100644 index 000000000000..157190e5b3ad --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/test/ya.make @@ -0,0 +1,12 @@ +YQL_UDF_YDB_TEST() + +DEPENDS(ydb/library/yql/udfs/common/roaring) + +TIMEOUT(300) +SIZE(MEDIUM) + +IF (SANITIZER_TYPE == "memory") + TAG(ya:not_autocheck) # YQL-15385 +ENDIF() + +END() diff --git a/ydb/library/yql/udfs/common/roaring/ya.make b/ydb/library/yql/udfs/common/roaring/ya.make new file mode 100644 index 000000000000..841ba775520d --- /dev/null +++ b/ydb/library/yql/udfs/common/roaring/ya.make @@ -0,0 +1,22 @@ +YQL_UDF_YDB(roaring) + +YQL_ABI_VERSION( + 2 + 35 + 0 +) + +SRCS( + roaring.cpp +) + +PEERDIR( + contrib/libs/croaring +) + + +END() + +RECURSE_FOR_TESTS( + test +) \ No newline at end of file diff --git a/ydb/library/yql/udfs/common/set/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/set/CMakeLists.linux-aarch64.txt index 7dae015a39ac..21f37777dada 100644 --- a/ydb/library/yql/udfs/common/set/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/set/CMakeLists.linux-aarch64.txt @@ -58,9 +58,6 @@ target_link_options(set_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(set_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/set/set_udf.cpp diff --git a/ydb/library/yql/udfs/common/set/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/set/CMakeLists.linux-x86_64.txt index 7dae015a39ac..21f37777dada 100644 --- a/ydb/library/yql/udfs/common/set/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/set/CMakeLists.linux-x86_64.txt @@ -58,9 +58,6 @@ target_link_options(set_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(set_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/set/set_udf.cpp diff --git a/ydb/library/yql/udfs/common/stat/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/stat/CMakeLists.linux-aarch64.txt index 1f56316a8aa8..1516f23daebf 100644 --- a/ydb/library/yql/udfs/common/stat/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/stat/CMakeLists.linux-aarch64.txt @@ -63,9 +63,6 @@ target_link_options(stat_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(stat_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/stat_udf.cpp diff --git a/ydb/library/yql/udfs/common/stat/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/stat/CMakeLists.linux-x86_64.txt index 1f56316a8aa8..1516f23daebf 100644 --- a/ydb/library/yql/udfs/common/stat/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/stat/CMakeLists.linux-x86_64.txt @@ -63,9 +63,6 @@ target_link_options(stat_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(stat_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/stat_udf.cpp diff --git a/ydb/library/yql/udfs/common/stat/static/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/stat/static/CMakeLists.darwin-arm64.txt index 7dee63a8c0c9..ed93ef452833 100644 --- a/ydb/library/yql/udfs/common/stat/static/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/udfs/common/stat/static/CMakeLists.darwin-arm64.txt @@ -20,5 +20,6 @@ target_link_libraries(common-stat-static PUBLIC library-cpp-tdigest ) target_sources(common-stat-static PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/static/stat_udf.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/static/static_udf.cpp ) diff --git a/ydb/library/yql/udfs/common/stat/static/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/udfs/common/stat/static/CMakeLists.darwin-x86_64.txt index 7dee63a8c0c9..ed93ef452833 100644 --- a/ydb/library/yql/udfs/common/stat/static/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/udfs/common/stat/static/CMakeLists.darwin-x86_64.txt @@ -20,5 +20,6 @@ target_link_libraries(common-stat-static PUBLIC library-cpp-tdigest ) target_sources(common-stat-static PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/static/stat_udf.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/static/static_udf.cpp ) diff --git a/ydb/library/yql/udfs/common/stat/static/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/stat/static/CMakeLists.linux-aarch64.txt index 9302da9ae4d1..dabe2e6a213f 100644 --- a/ydb/library/yql/udfs/common/stat/static/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/stat/static/CMakeLists.linux-aarch64.txt @@ -21,5 +21,6 @@ target_link_libraries(common-stat-static PUBLIC library-cpp-tdigest ) target_sources(common-stat-static PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/static/stat_udf.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/static/static_udf.cpp ) diff --git a/ydb/library/yql/udfs/common/stat/static/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/stat/static/CMakeLists.linux-x86_64.txt index 9302da9ae4d1..dabe2e6a213f 100644 --- a/ydb/library/yql/udfs/common/stat/static/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/stat/static/CMakeLists.linux-x86_64.txt @@ -21,5 +21,6 @@ target_link_libraries(common-stat-static PUBLIC library-cpp-tdigest ) target_sources(common-stat-static PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/static/stat_udf.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/static/static_udf.cpp ) diff --git a/ydb/library/yql/udfs/common/stat/static/CMakeLists.windows-x86_64.txt b/ydb/library/yql/udfs/common/stat/static/CMakeLists.windows-x86_64.txt index 7dee63a8c0c9..ed93ef452833 100644 --- a/ydb/library/yql/udfs/common/stat/static/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/udfs/common/stat/static/CMakeLists.windows-x86_64.txt @@ -20,5 +20,6 @@ target_link_libraries(common-stat-static PUBLIC library-cpp-tdigest ) target_sources(common-stat-static PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/static/stat_udf.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/static/static_udf.cpp ) diff --git a/ydb/library/yql/udfs/common/stat/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/stat/ut/CMakeLists.darwin-arm64.txt index da941d939b2d..a6892759c505 100644 --- a/ydb/library/yql/udfs/common/stat/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/udfs/common/stat/ut/CMakeLists.darwin-arm64.txt @@ -19,7 +19,7 @@ target_link_libraries(ydb-library-yql-udfs-common-stat-ut PUBLIC yutil cpp-testing-unittest_main common-stat-static - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) @@ -27,8 +27,6 @@ target_link_options(ydb-library-yql-udfs-common-stat-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-udfs-common-stat-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/stat_udf_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/udfs/common/stat/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/udfs/common/stat/ut/CMakeLists.darwin-x86_64.txt index e39ac7c38e40..f90d95bddf7d 100644 --- a/ydb/library/yql/udfs/common/stat/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/udfs/common/stat/ut/CMakeLists.darwin-x86_64.txt @@ -20,7 +20,7 @@ target_link_libraries(ydb-library-yql-udfs-common-stat-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main common-stat-static - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) @@ -28,8 +28,6 @@ target_link_options(ydb-library-yql-udfs-common-stat-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-udfs-common-stat-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/stat_udf_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/udfs/common/stat/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/stat/ut/CMakeLists.linux-aarch64.txt index 4abfa4fc9af7..961b7d57875e 100644 --- a/ydb/library/yql/udfs/common/stat/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/stat/ut/CMakeLists.linux-aarch64.txt @@ -20,7 +20,7 @@ target_link_libraries(ydb-library-yql-udfs-common-stat-ut PUBLIC yutil cpp-testing-unittest_main common-stat-static - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) @@ -30,9 +30,6 @@ target_link_options(ydb-library-yql-udfs-common-stat-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-udfs-common-stat-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/stat_udf_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/udfs/common/stat/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/stat/ut/CMakeLists.linux-x86_64.txt index 3bab713e43b7..4cc3eae66aa1 100644 --- a/ydb/library/yql/udfs/common/stat/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/stat/ut/CMakeLists.linux-x86_64.txt @@ -21,7 +21,7 @@ target_link_libraries(ydb-library-yql-udfs-common-stat-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main common-stat-static - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) @@ -31,9 +31,6 @@ target_link_options(ydb-library-yql-udfs-common-stat-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-udfs-common-stat-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/stat/stat_udf_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/udfs/common/stat/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/udfs/common/stat/ut/CMakeLists.windows-x86_64.txt index a26c302b4d6d..042f38848776 100644 --- a/ydb/library/yql/udfs/common/stat/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/udfs/common/stat/ut/CMakeLists.windows-x86_64.txt @@ -20,7 +20,7 @@ target_link_libraries(ydb-library-yql-udfs-common-stat-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main common-stat-static - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/udfs/common/streaming/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/streaming/CMakeLists.linux-aarch64.txt index c5805213d7b5..18258effa951 100644 --- a/ydb/library/yql/udfs/common/streaming/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/streaming/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(streaming_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(streaming_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/streaming/streaming_udf.cpp diff --git a/ydb/library/yql/udfs/common/streaming/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/streaming/CMakeLists.linux-x86_64.txt index c5805213d7b5..18258effa951 100644 --- a/ydb/library/yql/udfs/common/streaming/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/streaming/CMakeLists.linux-x86_64.txt @@ -33,9 +33,6 @@ target_link_options(streaming_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(streaming_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/streaming/streaming_udf.cpp diff --git a/ydb/library/yql/udfs/common/string/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/string/CMakeLists.darwin-arm64.txt index 93a05508d72c..e3329b889713 100644 --- a/ydb/library/yql/udfs/common/string/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/udfs/common/string/CMakeLists.darwin-arm64.txt @@ -77,8 +77,6 @@ target_link_options(string_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(string_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/string/string_udf.cpp diff --git a/ydb/library/yql/udfs/common/string/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/udfs/common/string/CMakeLists.darwin-x86_64.txt index 93a05508d72c..e3329b889713 100644 --- a/ydb/library/yql/udfs/common/string/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/udfs/common/string/CMakeLists.darwin-x86_64.txt @@ -77,8 +77,6 @@ target_link_options(string_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(string_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/string/string_udf.cpp diff --git a/ydb/library/yql/udfs/common/string/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/string/CMakeLists.linux-aarch64.txt index de90a655d0bb..09ba72e1484f 100644 --- a/ydb/library/yql/udfs/common/string/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/string/CMakeLists.linux-aarch64.txt @@ -82,9 +82,6 @@ target_link_options(string_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(string_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/string/string_udf.cpp diff --git a/ydb/library/yql/udfs/common/string/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/string/CMakeLists.linux-x86_64.txt index de90a655d0bb..09ba72e1484f 100644 --- a/ydb/library/yql/udfs/common/string/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/string/CMakeLists.linux-x86_64.txt @@ -82,9 +82,6 @@ target_link_options(string_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(string_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/string/string_udf.cpp diff --git a/ydb/library/yql/udfs/common/top/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/top/CMakeLists.linux-aarch64.txt index 6cfab7c009a8..825a168d3dd4 100644 --- a/ydb/library/yql/udfs/common/top/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/top/CMakeLists.linux-aarch64.txt @@ -61,9 +61,6 @@ target_link_options(top_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(top_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/top/top_udf.cpp diff --git a/ydb/library/yql/udfs/common/top/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/top/CMakeLists.linux-x86_64.txt index 6cfab7c009a8..825a168d3dd4 100644 --- a/ydb/library/yql/udfs/common/top/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/top/CMakeLists.linux-x86_64.txt @@ -61,9 +61,6 @@ target_link_options(top_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(top_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/top/top_udf.cpp diff --git a/ydb/library/yql/udfs/common/topfreq/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/topfreq/CMakeLists.linux-aarch64.txt index 0133493e2c9f..5cd0701d3ebc 100644 --- a/ydb/library/yql/udfs/common/topfreq/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/topfreq/CMakeLists.linux-aarch64.txt @@ -63,9 +63,6 @@ target_link_options(topfreq_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(topfreq_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/topfreq/topfreq_udf.cpp diff --git a/ydb/library/yql/udfs/common/topfreq/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/topfreq/CMakeLists.linux-x86_64.txt index 0133493e2c9f..5cd0701d3ebc 100644 --- a/ydb/library/yql/udfs/common/topfreq/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/topfreq/CMakeLists.linux-x86_64.txt @@ -63,9 +63,6 @@ target_link_options(topfreq_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(topfreq_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/topfreq/topfreq_udf.cpp diff --git a/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.darwin-arm64.txt index 87d89dfd0277..b0d957485785 100644 --- a/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.darwin-arm64.txt @@ -19,7 +19,7 @@ target_link_libraries(ydb-library-yql-udfs-common-topfreq-ut PUBLIC yutil cpp-testing-unittest_main common-topfreq-static - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) @@ -27,8 +27,6 @@ target_link_options(ydb-library-yql-udfs-common-topfreq-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-udfs-common-topfreq-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/topfreq/topfreq_udf_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.darwin-x86_64.txt index 400fb61d7eac..eca62483347e 100644 --- a/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.darwin-x86_64.txt @@ -20,7 +20,7 @@ target_link_libraries(ydb-library-yql-udfs-common-topfreq-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main common-topfreq-static - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) @@ -28,8 +28,6 @@ target_link_options(ydb-library-yql-udfs-common-topfreq-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-udfs-common-topfreq-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/topfreq/topfreq_udf_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.linux-aarch64.txt index 0fb361ea785d..8ec0adc83959 100644 --- a/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.linux-aarch64.txt @@ -20,7 +20,7 @@ target_link_libraries(ydb-library-yql-udfs-common-topfreq-ut PUBLIC yutil cpp-testing-unittest_main common-topfreq-static - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) @@ -30,9 +30,6 @@ target_link_options(ydb-library-yql-udfs-common-topfreq-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-udfs-common-topfreq-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/topfreq/topfreq_udf_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.linux-x86_64.txt index a572bc4ebcac..bfca9488c07f 100644 --- a/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.linux-x86_64.txt @@ -21,7 +21,7 @@ target_link_libraries(ydb-library-yql-udfs-common-topfreq-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main common-topfreq-static - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) @@ -31,9 +31,6 @@ target_link_options(ydb-library-yql-udfs-common-topfreq-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-udfs-common-topfreq-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/topfreq/topfreq_udf_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.windows-x86_64.txt index ae2c0638d6c9..5f85c344b5d7 100644 --- a/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/udfs/common/topfreq/ut/CMakeLists.windows-x86_64.txt @@ -20,7 +20,7 @@ target_link_libraries(ydb-library-yql-udfs-common-topfreq-ut PUBLIC library-cpp-cpuid_check cpp-testing-unittest_main common-topfreq-static - minikql-comp_nodes-llvm + minikql-comp_nodes-llvm14 udf-service-exception_policy yql-sql-pg_dummy ) @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/udfs/common/unicode_base/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/unicode_base/CMakeLists.darwin-arm64.txt index 8f0ecb8b6f1a..06ed9015e9f6 100644 --- a/ydb/library/yql/udfs/common/unicode_base/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/udfs/common/unicode_base/CMakeLists.darwin-arm64.txt @@ -57,8 +57,6 @@ target_link_options(unicode_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(unicode_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/unicode_base/unicode_base.cpp diff --git a/ydb/library/yql/udfs/common/unicode_base/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/udfs/common/unicode_base/CMakeLists.darwin-x86_64.txt index 8f0ecb8b6f1a..06ed9015e9f6 100644 --- a/ydb/library/yql/udfs/common/unicode_base/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/udfs/common/unicode_base/CMakeLists.darwin-x86_64.txt @@ -57,8 +57,6 @@ target_link_options(unicode_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(unicode_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/unicode_base/unicode_base.cpp diff --git a/ydb/library/yql/udfs/common/unicode_base/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/unicode_base/CMakeLists.linux-aarch64.txt index 3ce78359ae1e..7e6be79748c6 100644 --- a/ydb/library/yql/udfs/common/unicode_base/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/unicode_base/CMakeLists.linux-aarch64.txt @@ -62,9 +62,6 @@ target_link_options(unicode_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(unicode_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/unicode_base/unicode_base.cpp diff --git a/ydb/library/yql/udfs/common/unicode_base/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/unicode_base/CMakeLists.linux-x86_64.txt index 3ce78359ae1e..7e6be79748c6 100644 --- a/ydb/library/yql/udfs/common/unicode_base/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/unicode_base/CMakeLists.linux-x86_64.txt @@ -62,9 +62,6 @@ target_link_options(unicode_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(unicode_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/unicode_base/unicode_base.cpp diff --git a/ydb/library/yql/udfs/common/url_base/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/url_base/CMakeLists.darwin-arm64.txt index a70ee1d09338..f1c20511cb9c 100644 --- a/ydb/library/yql/udfs/common/url_base/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/udfs/common/url_base/CMakeLists.darwin-arm64.txt @@ -57,8 +57,6 @@ target_link_options(url_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(url_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/url_base/url_base.cpp diff --git a/ydb/library/yql/udfs/common/url_base/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/udfs/common/url_base/CMakeLists.darwin-x86_64.txt index a70ee1d09338..f1c20511cb9c 100644 --- a/ydb/library/yql/udfs/common/url_base/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/udfs/common/url_base/CMakeLists.darwin-x86_64.txt @@ -57,8 +57,6 @@ target_link_options(url_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(url_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/url_base/url_base.cpp diff --git a/ydb/library/yql/udfs/common/url_base/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/url_base/CMakeLists.linux-aarch64.txt index c7bb69173a29..45698aec83b5 100644 --- a/ydb/library/yql/udfs/common/url_base/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/url_base/CMakeLists.linux-aarch64.txt @@ -62,9 +62,6 @@ target_link_options(url_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(url_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/url_base/url_base.cpp diff --git a/ydb/library/yql/udfs/common/url_base/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/url_base/CMakeLists.linux-x86_64.txt index c7bb69173a29..45698aec83b5 100644 --- a/ydb/library/yql/udfs/common/url_base/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/url_base/CMakeLists.linux-x86_64.txt @@ -62,9 +62,6 @@ target_link_options(url_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(url_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/url_base/url_base.cpp diff --git a/ydb/library/yql/udfs/common/ya.make b/ydb/library/yql/udfs/common/ya.make index b1c226bc20ac..ff8d917ea529 100644 --- a/ydb/library/yql/udfs/common/ya.make +++ b/ydb/library/yql/udfs/common/ya.make @@ -11,9 +11,11 @@ RECURSE( json json2 math + knn pire protobuf re2 + roaring set stat streaming diff --git a/ydb/library/yql/udfs/common/yson2/CMakeLists.darwin-arm64.txt b/ydb/library/yql/udfs/common/yson2/CMakeLists.darwin-arm64.txt index 6eebbe0d8839..c19999f588fb 100644 --- a/ydb/library/yql/udfs/common/yson2/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/udfs/common/yson2/CMakeLists.darwin-arm64.txt @@ -62,8 +62,6 @@ target_link_options(yson2_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(yson2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/yson2/yson2_udf.cpp diff --git a/ydb/library/yql/udfs/common/yson2/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/udfs/common/yson2/CMakeLists.darwin-x86_64.txt index 6eebbe0d8839..c19999f588fb 100644 --- a/ydb/library/yql/udfs/common/yson2/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/udfs/common/yson2/CMakeLists.darwin-x86_64.txt @@ -62,8 +62,6 @@ target_link_options(yson2_udf.dyn PRIVATE -undefined dynamic_lookup -fPIC - -framework - CoreFoundation ) target_sources(yson2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/yson2/yson2_udf.cpp diff --git a/ydb/library/yql/udfs/common/yson2/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/common/yson2/CMakeLists.linux-aarch64.txt index f622c7817ad9..73406107375c 100644 --- a/ydb/library/yql/udfs/common/yson2/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/common/yson2/CMakeLists.linux-aarch64.txt @@ -67,9 +67,6 @@ target_link_options(yson2_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(yson2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/yson2/yson2_udf.cpp diff --git a/ydb/library/yql/udfs/common/yson2/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/common/yson2/CMakeLists.linux-x86_64.txt index f622c7817ad9..73406107375c 100644 --- a/ydb/library/yql/udfs/common/yson2/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/common/yson2/CMakeLists.linux-x86_64.txt @@ -67,9 +67,6 @@ target_link_options(yson2_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(yson2_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/yson2/yson2_udf.cpp diff --git a/ydb/library/yql/udfs/examples/callables/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/examples/callables/CMakeLists.linux-aarch64.txt index aee691422fde..2514dd48691e 100644 --- a/ydb/library/yql/udfs/examples/callables/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/examples/callables/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(callables_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(callables_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/callables/callables_udf.cpp diff --git a/ydb/library/yql/udfs/examples/callables/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/examples/callables/CMakeLists.linux-x86_64.txt index aee691422fde..2514dd48691e 100644 --- a/ydb/library/yql/udfs/examples/callables/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/examples/callables/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(callables_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(callables_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/callables/callables_udf.cpp diff --git a/ydb/library/yql/udfs/examples/dicts/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/examples/dicts/CMakeLists.linux-aarch64.txt index d2be991c3fd4..a65e7736103e 100644 --- a/ydb/library/yql/udfs/examples/dicts/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/examples/dicts/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(dicts_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(dicts_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/dicts/dicts_udf.cpp diff --git a/ydb/library/yql/udfs/examples/dicts/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/examples/dicts/CMakeLists.linux-x86_64.txt index d2be991c3fd4..a65e7736103e 100644 --- a/ydb/library/yql/udfs/examples/dicts/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/examples/dicts/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(dicts_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(dicts_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/dicts/dicts_udf.cpp diff --git a/ydb/library/yql/udfs/examples/dummylog/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/examples/dummylog/CMakeLists.linux-aarch64.txt index 3119053e45ca..adf84ac0d2e6 100644 --- a/ydb/library/yql/udfs/examples/dummylog/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/examples/dummylog/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(dummylog.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(dummylog.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/dummylog/dummylog_udf.cpp diff --git a/ydb/library/yql/udfs/examples/dummylog/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/examples/dummylog/CMakeLists.linux-x86_64.txt index 3119053e45ca..adf84ac0d2e6 100644 --- a/ydb/library/yql/udfs/examples/dummylog/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/examples/dummylog/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(dummylog.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(dummylog.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/dummylog/dummylog_udf.cpp diff --git a/ydb/library/yql/udfs/examples/lists/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/examples/lists/CMakeLists.linux-aarch64.txt index 2ea6cdd9c81f..a71446829ba6 100644 --- a/ydb/library/yql/udfs/examples/lists/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/examples/lists/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(lists_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(lists_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/lists/lists_udf.cpp diff --git a/ydb/library/yql/udfs/examples/lists/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/examples/lists/CMakeLists.linux-x86_64.txt index 2ea6cdd9c81f..a71446829ba6 100644 --- a/ydb/library/yql/udfs/examples/lists/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/examples/lists/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(lists_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(lists_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/lists/lists_udf.cpp diff --git a/ydb/library/yql/udfs/examples/structs/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/examples/structs/CMakeLists.linux-aarch64.txt index 5471f039a0f3..3562ed04f5fa 100644 --- a/ydb/library/yql/udfs/examples/structs/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/examples/structs/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(structs_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(structs_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/structs/structs_udf.cpp diff --git a/ydb/library/yql/udfs/examples/structs/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/examples/structs/CMakeLists.linux-x86_64.txt index 5471f039a0f3..3562ed04f5fa 100644 --- a/ydb/library/yql/udfs/examples/structs/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/examples/structs/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(structs_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(structs_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/structs/structs_udf.cpp diff --git a/ydb/library/yql/udfs/examples/tagged/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/examples/tagged/CMakeLists.linux-aarch64.txt index 16f05b930485..9b2d9e743f2d 100644 --- a/ydb/library/yql/udfs/examples/tagged/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/examples/tagged/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(tagged_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(tagged_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/tagged/tagged_udf.cpp diff --git a/ydb/library/yql/udfs/examples/tagged/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/examples/tagged/CMakeLists.linux-x86_64.txt index 16f05b930485..9b2d9e743f2d 100644 --- a/ydb/library/yql/udfs/examples/tagged/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/examples/tagged/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(tagged_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(tagged_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/tagged/tagged_udf.cpp diff --git a/ydb/library/yql/udfs/examples/type_inspection/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/examples/type_inspection/CMakeLists.linux-aarch64.txt index 93b97b41bdd0..8f3f4ff2e73d 100644 --- a/ydb/library/yql/udfs/examples/type_inspection/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/examples/type_inspection/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(type_inspection_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(type_inspection_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/type_inspection/type_inspection_udf.cpp diff --git a/ydb/library/yql/udfs/examples/type_inspection/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/examples/type_inspection/CMakeLists.linux-x86_64.txt index 93b97b41bdd0..8f3f4ff2e73d 100644 --- a/ydb/library/yql/udfs/examples/type_inspection/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/examples/type_inspection/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(type_inspection_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(type_inspection_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/examples/type_inspection/type_inspection_udf.cpp diff --git a/ydb/library/yql/udfs/logs/dsv/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/logs/dsv/CMakeLists.linux-aarch64.txt index ce6da0c75350..8cb269f55a62 100644 --- a/ydb/library/yql/udfs/logs/dsv/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/logs/dsv/CMakeLists.linux-aarch64.txt @@ -61,9 +61,6 @@ target_link_options(dsv_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(dsv_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/logs/dsv/dsv_udf.cpp diff --git a/ydb/library/yql/udfs/logs/dsv/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/logs/dsv/CMakeLists.linux-x86_64.txt index ce6da0c75350..8cb269f55a62 100644 --- a/ydb/library/yql/udfs/logs/dsv/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/logs/dsv/CMakeLists.linux-x86_64.txt @@ -61,9 +61,6 @@ target_link_options(dsv_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(dsv_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/logs/dsv/dsv_udf.cpp diff --git a/ydb/library/yql/udfs/test/simple/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/test/simple/CMakeLists.linux-aarch64.txt index b4cc69f406b1..047476dbc389 100644 --- a/ydb/library/yql/udfs/test/simple/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/test/simple/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(simple_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(simple_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/test/simple/simple_udf.cpp diff --git a/ydb/library/yql/udfs/test/simple/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/test/simple/CMakeLists.linux-x86_64.txt index b4cc69f406b1..047476dbc389 100644 --- a/ydb/library/yql/udfs/test/simple/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/test/simple/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(simple_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(simple_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/test/simple/simple_udf.cpp diff --git a/ydb/library/yql/udfs/test/test_import/CMakeLists.linux-aarch64.txt b/ydb/library/yql/udfs/test/test_import/CMakeLists.linux-aarch64.txt index 4aaa550a0778..4c1747b45c40 100644 --- a/ydb/library/yql/udfs/test/test_import/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/udfs/test/test_import/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(test_import_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(test_import_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/test/test_import/test_import_udf.cpp diff --git a/ydb/library/yql/udfs/test/test_import/CMakeLists.linux-x86_64.txt b/ydb/library/yql/udfs/test/test_import/CMakeLists.linux-x86_64.txt index 4aaa550a0778..4c1747b45c40 100644 --- a/ydb/library/yql/udfs/test/test_import/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/udfs/test/test_import/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(test_import_udf.dyn PRIVATE -Wl,-z,notext -Wl,-Bsymbolic -fPIC - -lpthread - -lrt - -ldl ) target_sources(test_import_udf.dyn PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/test/test_import/test_import_udf.cpp diff --git a/ydb/library/yql/utils/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/CMakeLists.darwin-arm64.txt index 4ebccd3a7549..1b35bb2b9be2 100644 --- a/ydb/library/yql/utils/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/utils/CMakeLists.darwin-arm64.txt @@ -15,6 +15,7 @@ add_subdirectory(failure_injector) add_subdirectory(fetch) add_subdirectory(log) add_subdirectory(plan) +add_subdirectory(signals) add_subdirectory(simd) add_subdirectory(sys) add_subdirectory(test_http_server) @@ -34,6 +35,24 @@ target_link_libraries(library-yql-utils PUBLIC contrib-libs-miniselect ) target_sources(library-yql-utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bind_in_range.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/cast.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/debug_info.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/future_action.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/hash.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/md5_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/method_index.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/multi_resource_lock.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/parse_double.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/proc_alive.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/rand_guid.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/resetable_setting.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/retry.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/rope_over_buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sort.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/swap_bytes.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/yql_panic.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/yql_paths.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bind_in_range.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/debug_info.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/future_action.cpp diff --git a/ydb/library/yql/utils/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/utils/CMakeLists.darwin-x86_64.txt index 4ebccd3a7549..1b35bb2b9be2 100644 --- a/ydb/library/yql/utils/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/utils/CMakeLists.darwin-x86_64.txt @@ -15,6 +15,7 @@ add_subdirectory(failure_injector) add_subdirectory(fetch) add_subdirectory(log) add_subdirectory(plan) +add_subdirectory(signals) add_subdirectory(simd) add_subdirectory(sys) add_subdirectory(test_http_server) @@ -34,6 +35,24 @@ target_link_libraries(library-yql-utils PUBLIC contrib-libs-miniselect ) target_sources(library-yql-utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bind_in_range.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/cast.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/debug_info.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/future_action.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/hash.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/md5_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/method_index.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/multi_resource_lock.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/parse_double.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/proc_alive.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/rand_guid.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/resetable_setting.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/retry.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/rope_over_buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sort.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/swap_bytes.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/yql_panic.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/yql_paths.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bind_in_range.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/debug_info.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/future_action.cpp diff --git a/ydb/library/yql/utils/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/CMakeLists.linux-aarch64.txt index c2c2785e4c3b..419af3afb917 100644 --- a/ydb/library/yql/utils/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/CMakeLists.linux-aarch64.txt @@ -15,6 +15,7 @@ add_subdirectory(failure_injector) add_subdirectory(fetch) add_subdirectory(log) add_subdirectory(plan) +add_subdirectory(signals) add_subdirectory(simd) add_subdirectory(sys) add_subdirectory(test_http_server) @@ -35,6 +36,24 @@ target_link_libraries(library-yql-utils PUBLIC contrib-libs-miniselect ) target_sources(library-yql-utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bind_in_range.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/cast.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/debug_info.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/future_action.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/hash.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/md5_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/method_index.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/multi_resource_lock.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/parse_double.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/proc_alive.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/rand_guid.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/resetable_setting.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/retry.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/rope_over_buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sort.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/swap_bytes.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/yql_panic.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/yql_paths.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bind_in_range.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/debug_info.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/future_action.cpp diff --git a/ydb/library/yql/utils/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/CMakeLists.linux-x86_64.txt index c2c2785e4c3b..419af3afb917 100644 --- a/ydb/library/yql/utils/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/CMakeLists.linux-x86_64.txt @@ -15,6 +15,7 @@ add_subdirectory(failure_injector) add_subdirectory(fetch) add_subdirectory(log) add_subdirectory(plan) +add_subdirectory(signals) add_subdirectory(simd) add_subdirectory(sys) add_subdirectory(test_http_server) @@ -35,6 +36,24 @@ target_link_libraries(library-yql-utils PUBLIC contrib-libs-miniselect ) target_sources(library-yql-utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bind_in_range.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/cast.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/debug_info.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/future_action.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/hash.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/md5_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/method_index.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/multi_resource_lock.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/parse_double.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/proc_alive.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/rand_guid.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/resetable_setting.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/retry.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/rope_over_buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sort.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/swap_bytes.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/yql_panic.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/yql_paths.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bind_in_range.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/debug_info.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/future_action.cpp diff --git a/ydb/library/yql/utils/CMakeLists.windows-x86_64.txt b/ydb/library/yql/utils/CMakeLists.windows-x86_64.txt index 4ebccd3a7549..1b35bb2b9be2 100644 --- a/ydb/library/yql/utils/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/utils/CMakeLists.windows-x86_64.txt @@ -15,6 +15,7 @@ add_subdirectory(failure_injector) add_subdirectory(fetch) add_subdirectory(log) add_subdirectory(plan) +add_subdirectory(signals) add_subdirectory(simd) add_subdirectory(sys) add_subdirectory(test_http_server) @@ -34,6 +35,24 @@ target_link_libraries(library-yql-utils PUBLIC contrib-libs-miniselect ) target_sources(library-yql-utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bind_in_range.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/cast.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/debug_info.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/future_action.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/hash.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/md5_stream.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/method_index.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/multi_resource_lock.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/parse_double.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/proc_alive.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/rand_guid.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/resetable_setting.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/retry.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/rope_over_buffer.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sort.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/swap_bytes.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/yql_panic.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/yql_paths.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bind_in_range.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/debug_info.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/future_action.cpp diff --git a/ydb/library/yql/utils/actor_system/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/actor_system/CMakeLists.darwin-arm64.txt index e15bd8c09099..e8dfb29604c8 100644 --- a/ydb/library/yql/utils/actor_system/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/utils/actor_system/CMakeLists.darwin-arm64.txt @@ -17,5 +17,6 @@ target_link_libraries(yql-utils-actor_system PUBLIC library-yql-utils ) target_sources(yql-utils-actor_system PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actor_system/manager.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actor_system/manager.cpp ) diff --git a/ydb/library/yql/utils/actor_system/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/utils/actor_system/CMakeLists.darwin-x86_64.txt index e15bd8c09099..e8dfb29604c8 100644 --- a/ydb/library/yql/utils/actor_system/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/utils/actor_system/CMakeLists.darwin-x86_64.txt @@ -17,5 +17,6 @@ target_link_libraries(yql-utils-actor_system PUBLIC library-yql-utils ) target_sources(yql-utils-actor_system PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actor_system/manager.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actor_system/manager.cpp ) diff --git a/ydb/library/yql/utils/actor_system/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/actor_system/CMakeLists.linux-aarch64.txt index 31f2c67a5f24..c7cd339e3416 100644 --- a/ydb/library/yql/utils/actor_system/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/actor_system/CMakeLists.linux-aarch64.txt @@ -18,5 +18,6 @@ target_link_libraries(yql-utils-actor_system PUBLIC library-yql-utils ) target_sources(yql-utils-actor_system PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actor_system/manager.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actor_system/manager.cpp ) diff --git a/ydb/library/yql/utils/actor_system/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/actor_system/CMakeLists.linux-x86_64.txt index 31f2c67a5f24..c7cd339e3416 100644 --- a/ydb/library/yql/utils/actor_system/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/actor_system/CMakeLists.linux-x86_64.txt @@ -18,5 +18,6 @@ target_link_libraries(yql-utils-actor_system PUBLIC library-yql-utils ) target_sources(yql-utils-actor_system PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actor_system/manager.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actor_system/manager.cpp ) diff --git a/ydb/library/yql/utils/actor_system/CMakeLists.windows-x86_64.txt b/ydb/library/yql/utils/actor_system/CMakeLists.windows-x86_64.txt index e15bd8c09099..e8dfb29604c8 100644 --- a/ydb/library/yql/utils/actor_system/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/utils/actor_system/CMakeLists.windows-x86_64.txt @@ -17,5 +17,6 @@ target_link_libraries(yql-utils-actor_system PUBLIC library-yql-utils ) target_sources(yql-utils-actor_system PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actor_system/manager.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actor_system/manager.cpp ) diff --git a/ydb/library/yql/utils/actors/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/actors/ut/CMakeLists.darwin-arm64.txt index b08582f0ad72..824b3de07958 100644 --- a/ydb/library/yql/utils/actors/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/utils/actors/ut/CMakeLists.darwin-arm64.txt @@ -17,13 +17,12 @@ target_link_libraries(ydb-library-yql-utils-actors-ut PUBLIC cpp-testing-unittest_main yql-utils-actors testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-library-yql-utils-actors-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-utils-actors-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actors/http_sender_actor_ut.cpp @@ -53,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/actors/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/utils/actors/ut/CMakeLists.darwin-x86_64.txt index 3ae843ac4042..735a2ceb57b8 100644 --- a/ydb/library/yql/utils/actors/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/utils/actors/ut/CMakeLists.darwin-x86_64.txt @@ -18,13 +18,12 @@ target_link_libraries(ydb-library-yql-utils-actors-ut PUBLIC cpp-testing-unittest_main yql-utils-actors testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-library-yql-utils-actors-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-utils-actors-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actors/http_sender_actor_ut.cpp @@ -54,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/actors/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/actors/ut/CMakeLists.linux-aarch64.txt index 8f0ddb98fdba..0eb5c03ca76e 100644 --- a/ydb/library/yql/utils/actors/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/actors/ut/CMakeLists.linux-aarch64.txt @@ -18,6 +18,7 @@ target_link_libraries(ydb-library-yql-utils-actors-ut PUBLIC cpp-testing-unittest_main yql-utils-actors testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-library-yql-utils-actors-ut PRIVATE -ldl @@ -25,9 +26,6 @@ target_link_options(ydb-library-yql-utils-actors-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-actors-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actors/http_sender_actor_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/actors/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/actors/ut/CMakeLists.linux-x86_64.txt index 264cde4a66a9..9c779da5dcf5 100644 --- a/ydb/library/yql/utils/actors/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/actors/ut/CMakeLists.linux-x86_64.txt @@ -19,6 +19,7 @@ target_link_libraries(ydb-library-yql-utils-actors-ut PUBLIC cpp-testing-unittest_main yql-utils-actors testlib-basics-default + minikql-comp_nodes-llvm14 ) target_link_options(ydb-library-yql-utils-actors-ut PRIVATE -ldl @@ -26,9 +27,6 @@ target_link_options(ydb-library-yql-utils-actors-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-actors-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/actors/http_sender_actor_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/backtrace/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/backtrace/CMakeLists.darwin-arm64.txt index eec03a6e782e..3d4d1d9ccf1a 100644 --- a/ydb/library/yql/utils/backtrace/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/utils/backtrace/CMakeLists.darwin-arm64.txt @@ -6,15 +6,12 @@ # original buildsystem will not be accepted. -add_subdirectory(fake_llvm_symbolizer) add_subdirectory(ut) add_library(yql-utils-backtrace) target_link_libraries(yql-utils-backtrace PUBLIC contrib-libs-cxxsupp yutil - utils-backtrace-fake_llvm_symbolizer - lib-DebugInfo-Symbolize cpp-deprecated-atomic ) target_sources(yql-utils-backtrace PRIVATE diff --git a/ydb/library/yql/utils/backtrace/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/utils/backtrace/CMakeLists.darwin-x86_64.txt index eec03a6e782e..3d4d1d9ccf1a 100644 --- a/ydb/library/yql/utils/backtrace/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/utils/backtrace/CMakeLists.darwin-x86_64.txt @@ -6,15 +6,12 @@ # original buildsystem will not be accepted. -add_subdirectory(fake_llvm_symbolizer) add_subdirectory(ut) add_library(yql-utils-backtrace) target_link_libraries(yql-utils-backtrace PUBLIC contrib-libs-cxxsupp yutil - utils-backtrace-fake_llvm_symbolizer - lib-DebugInfo-Symbolize cpp-deprecated-atomic ) target_sources(yql-utils-backtrace PRIVATE diff --git a/ydb/library/yql/utils/backtrace/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/backtrace/CMakeLists.linux-aarch64.txt index 2ac25c993aaf..f3af34382f55 100644 --- a/ydb/library/yql/utils/backtrace/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/backtrace/CMakeLists.linux-aarch64.txt @@ -6,7 +6,6 @@ # original buildsystem will not be accepted. -add_subdirectory(fake_llvm_symbolizer) add_subdirectory(ut) add_library(yql-utils-backtrace) @@ -14,8 +13,6 @@ target_link_libraries(yql-utils-backtrace PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - utils-backtrace-fake_llvm_symbolizer - lib-DebugInfo-Symbolize cpp-deprecated-atomic ) target_sources(yql-utils-backtrace PRIVATE diff --git a/ydb/library/yql/utils/backtrace/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/backtrace/CMakeLists.linux-x86_64.txt index 505dcd7252f5..bed4f084364e 100644 --- a/ydb/library/yql/utils/backtrace/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/backtrace/CMakeLists.linux-x86_64.txt @@ -6,7 +6,6 @@ # original buildsystem will not be accepted. -add_subdirectory(fake_llvm_symbolizer) add_subdirectory(ut) add_library(yql-utils-backtrace) @@ -14,9 +13,8 @@ target_link_libraries(yql-utils-backtrace PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - utils-backtrace-fake_llvm_symbolizer contrib-libs-libunwind - lib-DebugInfo-Symbolize + library-cpp-dwarf_backtrace cpp-deprecated-atomic ) target_sources(yql-utils-backtrace PRIVATE diff --git a/ydb/library/yql/utils/backtrace/CMakeLists.windows-x86_64.txt b/ydb/library/yql/utils/backtrace/CMakeLists.windows-x86_64.txt index eec03a6e782e..3d4d1d9ccf1a 100644 --- a/ydb/library/yql/utils/backtrace/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/utils/backtrace/CMakeLists.windows-x86_64.txt @@ -6,15 +6,12 @@ # original buildsystem will not be accepted. -add_subdirectory(fake_llvm_symbolizer) add_subdirectory(ut) add_library(yql-utils-backtrace) target_link_libraries(yql-utils-backtrace PUBLIC contrib-libs-cxxsupp yutil - utils-backtrace-fake_llvm_symbolizer - lib-DebugInfo-Symbolize cpp-deprecated-atomic ) target_sources(yql-utils-backtrace PRIVATE diff --git a/ydb/library/yql/utils/backtrace/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/backtrace/ut/CMakeLists.darwin-arm64.txt index 908415e23d24..d880ef5af778 100644 --- a/ydb/library/yql/utils/backtrace/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/utils/backtrace/ut/CMakeLists.darwin-arm64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/backtrace/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/utils/backtrace/ut/CMakeLists.darwin-x86_64.txt index 404418f5cba5..2dc9e3893eab 100644 --- a/ydb/library/yql/utils/backtrace/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/utils/backtrace/ut/CMakeLists.darwin-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/backtrace/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/backtrace/ut/CMakeLists.linux-aarch64.txt index 2ff3f2232959..37af60f1b4b8 100644 --- a/ydb/library/yql/utils/backtrace/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/backtrace/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-utils-backtrace-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-backtrace-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/backtrace/backtrace_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/backtrace/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/backtrace/ut/CMakeLists.linux-x86_64.txt index 64250ca5db69..ff92b992001a 100644 --- a/ydb/library/yql/utils/backtrace/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/backtrace/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-utils-backtrace-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-backtrace-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/backtrace/backtrace_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/backtrace/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/utils/backtrace/ut/CMakeLists.windows-x86_64.txt index a30274e5f05a..8f29fac3aa7a 100644 --- a/ydb/library/yql/utils/backtrace/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/utils/backtrace/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/bindings/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/bindings/ut/CMakeLists.darwin-arm64.txt index 685e63d5edd0..e78b6f7e30b9 100644 --- a/ydb/library/yql/utils/bindings/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/utils/bindings/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-library-yql-utils-bindings-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-utils-bindings-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bindings/utils_ut.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/bindings/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/utils/bindings/ut/CMakeLists.darwin-x86_64.txt index cd892f3b41b3..88f573066848 100644 --- a/ydb/library/yql/utils/bindings/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/utils/bindings/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-yql-utils-bindings-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-utils-bindings-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bindings/utils_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/bindings/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/bindings/ut/CMakeLists.linux-aarch64.txt index 2315efa9aeea..770c165c48f4 100644 --- a/ydb/library/yql/utils/bindings/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/bindings/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-utils-bindings-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-bindings-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bindings/utils_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/bindings/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/bindings/ut/CMakeLists.linux-x86_64.txt index b0d5a389c6bd..9b6ffc8ed74a 100644 --- a/ydb/library/yql/utils/bindings/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/bindings/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-utils-bindings-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-bindings-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/bindings/utils_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/bindings/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/utils/bindings/ut/CMakeLists.windows-x86_64.txt index b5bd5b0763d1..d91b99596f08 100644 --- a/ydb/library/yql/utils/bindings/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/utils/bindings/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/failure_injector/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/failure_injector/ut/CMakeLists.darwin-arm64.txt index ba992194f807..a43068c79c8e 100644 --- a/ydb/library/yql/utils/failure_injector/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/utils/failure_injector/ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-yql-utils-failure_injector-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-utils-failure_injector-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/failure_injector/failure_injector_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/failure_injector/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/utils/failure_injector/ut/CMakeLists.darwin-x86_64.txt index a6ea9d7d8036..58ac2ee89536 100644 --- a/ydb/library/yql/utils/failure_injector/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/utils/failure_injector/ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-library-yql-utils-failure_injector-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-utils-failure_injector-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/failure_injector/failure_injector_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/failure_injector/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/failure_injector/ut/CMakeLists.linux-aarch64.txt index ce6281064f96..3b391c75084c 100644 --- a/ydb/library/yql/utils/failure_injector/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/failure_injector/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-utils-failure_injector-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-failure_injector-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/failure_injector/failure_injector_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/failure_injector/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/failure_injector/ut/CMakeLists.linux-x86_64.txt index 3c3f6bfe11f0..503d6136ba62 100644 --- a/ydb/library/yql/utils/failure_injector/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/failure_injector/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-library-yql-utils-failure_injector-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-failure_injector-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/failure_injector/failure_injector_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/log/proto/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/log/proto/CMakeLists.darwin-arm64.txt index d4898e8a174e..927b2b450583 100644 --- a/ydb/library/yql/utils/log/proto/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/utils/log/proto/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(utils-log-proto PUBLIC target_proto_messages(utils-log-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/log/proto/logger_config.proto ) +target_sources(utils-log-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/utils/log/proto/logger_config.pb.h +) target_proto_addincls(utils-log-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/utils/log/proto/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/utils/log/proto/CMakeLists.darwin-x86_64.txt index d4898e8a174e..927b2b450583 100644 --- a/ydb/library/yql/utils/log/proto/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/utils/log/proto/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(utils-log-proto PUBLIC target_proto_messages(utils-log-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/log/proto/logger_config.proto ) +target_sources(utils-log-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/utils/log/proto/logger_config.pb.h +) target_proto_addincls(utils-log-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/utils/log/proto/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/log/proto/CMakeLists.linux-aarch64.txt index e853dc92651b..83d1e9caac25 100644 --- a/ydb/library/yql/utils/log/proto/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/log/proto/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(utils-log-proto PUBLIC target_proto_messages(utils-log-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/log/proto/logger_config.proto ) +target_sources(utils-log-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/utils/log/proto/logger_config.pb.h +) target_proto_addincls(utils-log-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/utils/log/proto/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/log/proto/CMakeLists.linux-x86_64.txt index e853dc92651b..83d1e9caac25 100644 --- a/ydb/library/yql/utils/log/proto/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/log/proto/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(utils-log-proto PUBLIC target_proto_messages(utils-log-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/log/proto/logger_config.proto ) +target_sources(utils-log-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/utils/log/proto/logger_config.pb.h +) target_proto_addincls(utils-log-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/utils/log/proto/CMakeLists.windows-x86_64.txt b/ydb/library/yql/utils/log/proto/CMakeLists.windows-x86_64.txt index d4898e8a174e..927b2b450583 100644 --- a/ydb/library/yql/utils/log/proto/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/utils/log/proto/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(utils-log-proto PUBLIC target_proto_messages(utils-log-proto PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/log/proto/logger_config.proto ) +target_sources(utils-log-proto PRIVATE + ${CMAKE_BINARY_DIR}/ydb/library/yql/utils/log/proto/logger_config.pb.h +) target_proto_addincls(utils-log-proto ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/library/yql/utils/log/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/log/ut/CMakeLists.darwin-arm64.txt index f1923d17acec..19920571c6cd 100644 --- a/ydb/library/yql/utils/log/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/utils/log/ut/CMakeLists.darwin-arm64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/log/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/utils/log/ut/CMakeLists.darwin-x86_64.txt index cfd266b90ac1..9b20c9613f7b 100644 --- a/ydb/library/yql/utils/log/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/utils/log/ut/CMakeLists.darwin-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/log/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/log/ut/CMakeLists.linux-aarch64.txt index 89eaf1d6aa5b..8698def6cf38 100644 --- a/ydb/library/yql/utils/log/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/log/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-utils-log-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-log-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/log/log_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/log/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/log/ut/CMakeLists.linux-x86_64.txt index 8a097ac0d5b1..e102e496c0bf 100644 --- a/ydb/library/yql/utils/log/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/log/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-utils-log-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-log-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/log/log_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/log/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/utils/log/ut/CMakeLists.windows-x86_64.txt index 394f27cff06f..bdd3fd8bd5df 100644 --- a/ydb/library/yql/utils/log/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/utils/log/ut/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/plan/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/plan/ut/CMakeLists.darwin-arm64.txt index 85757d6ead2e..6e4daec1e6e7 100644 --- a/ydb/library/yql/utils/plan/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/utils/plan/ut/CMakeLists.darwin-arm64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-library-yql-utils-plan-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-utils-plan-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/plan/plan_utils_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/plan/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/utils/plan/ut/CMakeLists.darwin-x86_64.txt index f0993ecba4f7..a55bbf3a1ceb 100644 --- a/ydb/library/yql/utils/plan/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/utils/plan/ut/CMakeLists.darwin-x86_64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-library-yql-utils-plan-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-utils-plan-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/plan/plan_utils_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/plan/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/plan/ut/CMakeLists.linux-aarch64.txt index 9a243ec55e43..75ca43e3a41c 100644 --- a/ydb/library/yql/utils/plan/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/plan/ut/CMakeLists.linux-aarch64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-library-yql-utils-plan-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-plan-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/plan/plan_utils_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/plan/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/plan/ut/CMakeLists.linux-x86_64.txt index 333c096d4606..42fe2992f4b1 100644 --- a/ydb/library/yql/utils/plan/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/plan/ut/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-library-yql-utils-plan-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-plan-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/plan/plan_utils_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/plan/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/utils/plan/ut/CMakeLists.windows-x86_64.txt index a80bb850fa7a..9a6159f24e87 100644 --- a/ydb/library/yql/utils/plan/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/utils/plan/ut/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/signals/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/signals/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..aa9567a75fb2 --- /dev/null +++ b/ydb/library/yql/utils/signals/CMakeLists.darwin-arm64.txt @@ -0,0 +1,27 @@ + +# 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(yql-utils-signals) +target_link_libraries(yql-utils-signals PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf + cpp-logger-global + cpp-protobuf-json + cpp-json-yson + yql-utils-log + yql-utils-backtrace + yt-lib-log +) +target_sources(yql-utils-signals PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/signals.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/utils.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/signals.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/utils.cpp +) diff --git a/ydb/library/yql/utils/signals/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/utils/signals/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..aa9567a75fb2 --- /dev/null +++ b/ydb/library/yql/utils/signals/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,27 @@ + +# 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(yql-utils-signals) +target_link_libraries(yql-utils-signals PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf + cpp-logger-global + cpp-protobuf-json + cpp-json-yson + yql-utils-log + yql-utils-backtrace + yt-lib-log +) +target_sources(yql-utils-signals PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/signals.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/utils.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/signals.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/utils.cpp +) diff --git a/ydb/library/yql/utils/signals/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/signals/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..c3c2c9b07fbc --- /dev/null +++ b/ydb/library/yql/utils/signals/CMakeLists.linux-aarch64.txt @@ -0,0 +1,28 @@ + +# 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(yql-utils-signals) +target_link_libraries(yql-utils-signals PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf + cpp-logger-global + cpp-protobuf-json + cpp-json-yson + yql-utils-log + yql-utils-backtrace + yt-lib-log +) +target_sources(yql-utils-signals PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/signals.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/utils.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/signals.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/utils.cpp +) diff --git a/ydb/library/yql/utils/signals/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/signals/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..c3c2c9b07fbc --- /dev/null +++ b/ydb/library/yql/utils/signals/CMakeLists.linux-x86_64.txt @@ -0,0 +1,28 @@ + +# 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(yql-utils-signals) +target_link_libraries(yql-utils-signals PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf + cpp-logger-global + cpp-protobuf-json + cpp-json-yson + yql-utils-log + yql-utils-backtrace + yt-lib-log +) +target_sources(yql-utils-signals PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/signals.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/utils.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/signals.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/utils.cpp +) diff --git a/ydb/library/yql/utils/signals/CMakeLists.txt b/ydb/library/yql/utils/signals/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/utils/signals/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/utils/signals/CMakeLists.windows-x86_64.txt b/ydb/library/yql/utils/signals/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..aa9567a75fb2 --- /dev/null +++ b/ydb/library/yql/utils/signals/CMakeLists.windows-x86_64.txt @@ -0,0 +1,27 @@ + +# 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(yql-utils-signals) +target_link_libraries(yql-utils-signals PUBLIC + contrib-libs-cxxsupp + yutil + contrib-libs-protobuf + cpp-logger-global + cpp-protobuf-json + cpp-json-yson + yql-utils-log + yql-utils-backtrace + yt-lib-log +) +target_sources(yql-utils-signals PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/signals.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/utils.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/signals.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/signals/utils.cpp +) diff --git a/ydb/library/yql/utils/simd/exec/CMakeLists.txt b/ydb/library/yql/utils/simd/exec/CMakeLists.txt index ecb5351e0897..80182039d023 100644 --- a/ydb/library/yql/utils/simd/exec/CMakeLists.txt +++ b/ydb/library/yql/utils/simd/exec/CMakeLists.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(add_columns) add_subdirectory(pack_tuple) add_subdirectory(stream_store) add_subdirectory(tuples_to_bucket) diff --git a/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..25c87c2d02ff --- /dev/null +++ b/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.darwin-arm64.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_executable(add_columns) +target_compile_options(add_columns PRIVATE + -mavx2 +) +target_link_libraries(add_columns PUBLIC + contrib-libs-cxxsupp + yutil + yql-utils-simd +) +target_link_options(add_columns PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(add_columns PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/exec/add_columns/main.cpp +) +target_allocator(add_columns + system_allocator +) +vcs_info(add_columns) diff --git a/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..e5a0139aed66 --- /dev/null +++ b/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.darwin-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_executable(add_columns) +target_compile_options(add_columns PRIVATE + -mavx2 +) +target_link_libraries(add_columns PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + yql-utils-simd +) +target_link_options(add_columns PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(add_columns PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/exec/add_columns/main.cpp +) +target_allocator(add_columns + system_allocator +) +vcs_info(add_columns) diff --git a/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..0d1883ada810 --- /dev/null +++ b/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.linux-aarch64.txt @@ -0,0 +1,33 @@ + +# 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(add_columns) +target_compile_options(add_columns PRIVATE + -mavx2 +) +target_link_libraries(add_columns PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + yql-utils-simd +) +target_link_options(add_columns PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(add_columns PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/exec/add_columns/main.cpp +) +target_allocator(add_columns + cpp-malloc-jemalloc +) +vcs_info(add_columns) diff --git a/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..bb8b3dc7c1bc --- /dev/null +++ b/ydb/library/yql/utils/simd/exec/add_columns/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. + + + +add_executable(add_columns) +target_compile_options(add_columns PRIVATE + -mavx2 +) +target_link_libraries(add_columns PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + yql-utils-simd +) +target_link_options(add_columns PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(add_columns PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/exec/add_columns/main.cpp +) +target_allocator(add_columns + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(add_columns) diff --git a/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.txt b/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.windows-x86_64.txt b/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..70742198e3c0 --- /dev/null +++ b/ydb/library/yql/utils/simd/exec/add_columns/CMakeLists.windows-x86_64.txt @@ -0,0 +1,26 @@ + +# 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(add_columns) +target_compile_options(add_columns PRIVATE + -mavx2 +) +target_link_libraries(add_columns PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + yql-utils-simd +) +target_sources(add_columns PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/exec/add_columns/main.cpp +) +target_allocator(add_columns + system_allocator +) +vcs_info(add_columns) diff --git a/ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.linux-aarch64.txt index 2d3669066755..8f0343e297fd 100644 --- a/ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.linux-aarch64.txt @@ -23,9 +23,6 @@ target_link_options(pack_tuple PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(pack_tuple PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/exec/pack_tuple/main.cpp diff --git a/ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.linux-x86_64.txt index 6299f9b65a81..3dfb810d8143 100644 --- a/ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/simd/exec/pack_tuple/CMakeLists.linux-x86_64.txt @@ -24,9 +24,6 @@ target_link_options(pack_tuple PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(pack_tuple PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/exec/pack_tuple/main.cpp diff --git a/ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.linux-aarch64.txt index d4dd5985c4ed..60f00ecbb780 100644 --- a/ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.linux-aarch64.txt @@ -20,9 +20,6 @@ target_link_options(stream_store PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(stream_store PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/exec/stream_store/main.cpp diff --git a/ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.linux-x86_64.txt index 2dbcba4a9eef..a4a23be31d73 100644 --- a/ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/simd/exec/stream_store/CMakeLists.linux-x86_64.txt @@ -21,9 +21,6 @@ target_link_options(stream_store PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(stream_store PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/exec/stream_store/main.cpp diff --git a/ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.linux-aarch64.txt index 36edc4e5e3bc..7149f312dc95 100644 --- a/ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.linux-aarch64.txt @@ -20,9 +20,6 @@ target_link_options(tuples_to_bucket PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(tuples_to_bucket PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/exec/tuples_to_bucket/main.cpp diff --git a/ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.linux-x86_64.txt index 0114e548deac..d09ee38dc425 100644 --- a/ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/simd/exec/tuples_to_bucket/CMakeLists.linux-x86_64.txt @@ -21,9 +21,6 @@ target_link_options(tuples_to_bucket PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(tuples_to_bucket PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/exec/tuples_to_bucket/main.cpp diff --git a/ydb/library/yql/utils/simd/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/simd/ut/CMakeLists.darwin-arm64.txt index 8a0ecfef7588..ea3586c7593f 100644 --- a/ydb/library/yql/utils/simd/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/utils/simd/ut/CMakeLists.darwin-arm64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/simd/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/utils/simd/ut/CMakeLists.darwin-x86_64.txt index e03efb8a13fb..4a2572c0c1c5 100644 --- a/ydb/library/yql/utils/simd/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/utils/simd/ut/CMakeLists.darwin-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/simd/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/simd/ut/CMakeLists.linux-aarch64.txt index 4c8657d7a5a7..a7c525f8ed21 100644 --- a/ydb/library/yql/utils/simd/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/simd/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-utils-simd-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-simd-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/simd_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/simd/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/simd/ut/CMakeLists.linux-x86_64.txt index fc49024e6956..7ce12574b780 100644 --- a/ydb/library/yql/utils/simd/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/simd/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-utils-simd-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-simd-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/simd/simd_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/simd/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/utils/simd/ut/CMakeLists.windows-x86_64.txt index 66276687c8a4..580fbc74c7ba 100644 --- a/ydb/library/yql/utils/simd/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/utils/simd/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/sys/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/sys/CMakeLists.darwin-arm64.txt index 2a8129ae24e7..dcf7a81a31f9 100644 --- a/ydb/library/yql/utils/sys/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/utils/sys/CMakeLists.darwin-arm64.txt @@ -13,6 +13,8 @@ target_link_libraries(yql-utils-sys PUBLIC yutil ) target_sources(yql-utils-sys PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/become_user.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/linux_version.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/become_user_dummy.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/linux_version.cpp ) diff --git a/ydb/library/yql/utils/sys/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/utils/sys/CMakeLists.darwin-x86_64.txt index 2a8129ae24e7..dcf7a81a31f9 100644 --- a/ydb/library/yql/utils/sys/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/utils/sys/CMakeLists.darwin-x86_64.txt @@ -13,6 +13,8 @@ target_link_libraries(yql-utils-sys PUBLIC yutil ) target_sources(yql-utils-sys PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/become_user.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/linux_version.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/become_user_dummy.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/linux_version.cpp ) diff --git a/ydb/library/yql/utils/sys/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/sys/CMakeLists.linux-aarch64.txt index 98acee73f568..0509b8d6f4ed 100644 --- a/ydb/library/yql/utils/sys/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/sys/CMakeLists.linux-aarch64.txt @@ -15,6 +15,8 @@ target_link_libraries(yql-utils-sys PUBLIC contrib-libs-libcap ) target_sources(yql-utils-sys PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/become_user.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/linux_version.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/become_user_dummy.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/linux_version.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/become_user.cpp diff --git a/ydb/library/yql/utils/sys/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/sys/CMakeLists.linux-x86_64.txt index 98acee73f568..0509b8d6f4ed 100644 --- a/ydb/library/yql/utils/sys/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/sys/CMakeLists.linux-x86_64.txt @@ -15,6 +15,8 @@ target_link_libraries(yql-utils-sys PUBLIC contrib-libs-libcap ) target_sources(yql-utils-sys PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/become_user.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/linux_version.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/become_user_dummy.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/linux_version.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/become_user.cpp diff --git a/ydb/library/yql/utils/sys/CMakeLists.windows-x86_64.txt b/ydb/library/yql/utils/sys/CMakeLists.windows-x86_64.txt index 2a8129ae24e7..dcf7a81a31f9 100644 --- a/ydb/library/yql/utils/sys/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/utils/sys/CMakeLists.windows-x86_64.txt @@ -13,6 +13,8 @@ target_link_libraries(yql-utils-sys PUBLIC yutil ) target_sources(yql-utils-sys PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/become_user.h + ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/linux_version.h ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/become_user_dummy.cpp ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/sys/linux_version.cpp ) diff --git a/ydb/library/yql/utils/ut/CMakeLists.darwin-arm64.txt b/ydb/library/yql/utils/ut/CMakeLists.darwin-arm64.txt index 51b5a24b65a0..24a26944166c 100644 --- a/ydb/library/yql/utils/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yql/utils/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-library-yql-utils-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-utils-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/fp_bits_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/utils/ut/CMakeLists.darwin-x86_64.txt index 7ca160482969..0e808aedb5bd 100644 --- a/ydb/library/yql/utils/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/utils/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-library-yql-utils-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-library-yql-utils-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/fp_bits_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/utils/ut/CMakeLists.linux-aarch64.txt index 7115c27f6ee2..8bdc5d882f81 100644 --- a/ydb/library/yql/utils/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/utils/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-library-yql-utils-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/fp_bits_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/utils/ut/CMakeLists.linux-x86_64.txt index 97c369b43611..838d3947d967 100644 --- a/ydb/library/yql/utils/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/utils/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-library-yql-utils-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-library-yql-utils-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/utils/fp_bits_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/utils/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/utils/ut/CMakeLists.windows-x86_64.txt index 9d75569a31d2..69870ddd94ec 100644 --- a/ydb/library/yql/utils/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/utils/ut/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/library/yql/yt/CMakeLists.linux-aarch64.txt b/ydb/library/yql/yt/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..e23f01db1e64 --- /dev/null +++ b/ydb/library/yql/yt/CMakeLists.linux-aarch64.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_subdirectory(dynamic) +add_subdirectory(native) + +add_library(library-yql-yt) +target_link_libraries(library-yql-yt PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) +target_sources(library-yql-yt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/yt/plugin.cpp +) diff --git a/ydb/library/yql/yt/CMakeLists.linux-x86_64.txt b/ydb/library/yql/yt/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..e23f01db1e64 --- /dev/null +++ b/ydb/library/yql/yt/CMakeLists.linux-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_subdirectory(dynamic) +add_subdirectory(native) + +add_library(library-yql-yt) +target_link_libraries(library-yql-yt PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil +) +target_sources(library-yql-yt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/yt/plugin.cpp +) diff --git a/ydb/library/yql/yt/CMakeLists.txt b/ydb/library/yql/yt/CMakeLists.txt new file mode 100644 index 000000000000..d6c5c0bbeb44 --- /dev/null +++ b/ydb/library/yql/yt/CMakeLists.txt @@ -0,0 +1,13 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-aarch64.txt) +endif() diff --git a/ydb/library/yql/yt/dynamic/CMakeLists.linux-aarch64.txt b/ydb/library/yql/yt/dynamic/CMakeLists.linux-aarch64.txt index 63edf774f285..a60f0b89f78f 100644 --- a/ydb/library/yql/yt/dynamic/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/yt/dynamic/CMakeLists.linux-aarch64.txt @@ -12,7 +12,7 @@ target_link_libraries(yqlplugin PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - yql-plugin-native + yql-yt-native ) target_link_options(yqlplugin PRIVATE -ldl @@ -21,15 +21,11 @@ target_link_options(yqlplugin PRIVATE -fPIC -Wl,-z,notext -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(yqlplugin PRIVATE - ${CMAKE_SOURCE_DIR}/yt/yql/plugin/dynamic/impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/yt/dynamic/impl.cpp ) use_export_script(yqlplugin - ${CMAKE_SOURCE_DIR}/yt/yql/plugin/dynamic/dylib.exports + ${CMAKE_SOURCE_DIR}/ydb/library/yql/yt/dynamic/dylib.exports ) vcs_info(yqlplugin) diff --git a/ydb/library/yql/yt/dynamic/CMakeLists.linux-x86_64.txt b/ydb/library/yql/yt/dynamic/CMakeLists.linux-x86_64.txt index 63edf774f285..a60f0b89f78f 100644 --- a/ydb/library/yql/yt/dynamic/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/yt/dynamic/CMakeLists.linux-x86_64.txt @@ -12,7 +12,7 @@ target_link_libraries(yqlplugin PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil - yql-plugin-native + yql-yt-native ) target_link_options(yqlplugin PRIVATE -ldl @@ -21,15 +21,11 @@ target_link_options(yqlplugin PRIVATE -fPIC -Wl,-z,notext -fPIC - -lpthread - -lrt - -ldl - -lutil ) target_sources(yqlplugin PRIVATE - ${CMAKE_SOURCE_DIR}/yt/yql/plugin/dynamic/impl.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/yt/dynamic/impl.cpp ) use_export_script(yqlplugin - ${CMAKE_SOURCE_DIR}/yt/yql/plugin/dynamic/dylib.exports + ${CMAKE_SOURCE_DIR}/ydb/library/yql/yt/dynamic/dylib.exports ) vcs_info(yqlplugin) diff --git a/ydb/library/yql/yt/dynamic/CMakeLists.txt b/ydb/library/yql/yt/dynamic/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/ydb/library/yql/yt/dynamic/CMakeLists.txt +++ b/ydb/library/yql/yt/dynamic/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/ydb/library/yql/yt/native/CMakeLists.linux-aarch64.txt b/ydb/library/yql/yt/native/CMakeLists.linux-aarch64.txt index b9ac27203cd6..2bc97adc47d9 100644 --- a/ydb/library/yql/yt/native/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/yt/native/CMakeLists.linux-aarch64.txt @@ -7,11 +7,11 @@ -add_library(yql-plugin-native) -target_compile_options(yql-plugin-native PRIVATE +add_library(yql-yt-native) +target_compile_options(yql-yt-native PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(yql-plugin-native PUBLIC +target_link_libraries(yql-yt-native PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil @@ -47,18 +47,18 @@ target_link_libraries(yql-plugin-native PUBLIC yt-lib-log yt-lib-yt_download providers-yt-provider - yt-yql-plugin + library-yql-yt ) -target_sources(yql-plugin-native PRIVATE - ${CMAKE_SOURCE_DIR}/yt/yql/plugin/native/error_helpers.cpp - ${CMAKE_SOURCE_DIR}/yt/yql/plugin/native/progress_merger.cpp +target_sources(yql-yt-native PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/yt/native/error_helpers.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/yt/native/progress_merger.cpp ) -add_global_library_for(yql-plugin-native.global yql-plugin-native) -target_compile_options(yql-plugin-native.global PRIVATE +add_global_library_for(yql-yt-native.global yql-yt-native) +target_compile_options(yql-yt-native.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(yql-plugin-native.global PUBLIC +target_link_libraries(yql-yt-native.global PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil @@ -94,8 +94,8 @@ target_link_libraries(yql-plugin-native.global PUBLIC yt-lib-log yt-lib-yt_download providers-yt-provider - yt-yql-plugin + library-yql-yt ) -target_sources(yql-plugin-native.global PRIVATE - ${CMAKE_SOURCE_DIR}/yt/yql/plugin/native/plugin.cpp +target_sources(yql-yt-native.global PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/yt/native/plugin.cpp ) diff --git a/ydb/library/yql/yt/native/CMakeLists.linux-x86_64.txt b/ydb/library/yql/yt/native/CMakeLists.linux-x86_64.txt index b9ac27203cd6..2bc97adc47d9 100644 --- a/ydb/library/yql/yt/native/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/yt/native/CMakeLists.linux-x86_64.txt @@ -7,11 +7,11 @@ -add_library(yql-plugin-native) -target_compile_options(yql-plugin-native PRIVATE +add_library(yql-yt-native) +target_compile_options(yql-yt-native PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(yql-plugin-native PUBLIC +target_link_libraries(yql-yt-native PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil @@ -47,18 +47,18 @@ target_link_libraries(yql-plugin-native PUBLIC yt-lib-log yt-lib-yt_download providers-yt-provider - yt-yql-plugin + library-yql-yt ) -target_sources(yql-plugin-native PRIVATE - ${CMAKE_SOURCE_DIR}/yt/yql/plugin/native/error_helpers.cpp - ${CMAKE_SOURCE_DIR}/yt/yql/plugin/native/progress_merger.cpp +target_sources(yql-yt-native PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/yt/native/error_helpers.cpp + ${CMAKE_SOURCE_DIR}/ydb/library/yql/yt/native/progress_merger.cpp ) -add_global_library_for(yql-plugin-native.global yql-plugin-native) -target_compile_options(yql-plugin-native.global PRIVATE +add_global_library_for(yql-yt-native.global yql-yt-native) +target_compile_options(yql-yt-native.global PRIVATE -DUSE_CURRENT_UDF_ABI_VERSION ) -target_link_libraries(yql-plugin-native.global PUBLIC +target_link_libraries(yql-yt-native.global PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil @@ -94,8 +94,8 @@ target_link_libraries(yql-plugin-native.global PUBLIC yt-lib-log yt-lib-yt_download providers-yt-provider - yt-yql-plugin + library-yql-yt ) -target_sources(yql-plugin-native.global PRIVATE - ${CMAKE_SOURCE_DIR}/yt/yql/plugin/native/plugin.cpp +target_sources(yql-yt-native.global PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/library/yql/yt/native/plugin.cpp ) diff --git a/ydb/library/yql/yt/native/CMakeLists.txt b/ydb/library/yql/yt/native/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/ydb/library/yql/yt/native/CMakeLists.txt +++ b/ydb/library/yql/yt/native/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/ydb/library/yverify_stream/CMakeLists.darwin-arm64.txt b/ydb/library/yverify_stream/CMakeLists.darwin-arm64.txt index 32f3123873bc..870ca0ebca40 100644 --- a/ydb/library/yverify_stream/CMakeLists.darwin-arm64.txt +++ b/ydb/library/yverify_stream/CMakeLists.darwin-arm64.txt @@ -12,3 +12,6 @@ target_link_libraries(ydb-library-yverify_stream INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(ydb-library-yverify_stream INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/yverify_stream/yverify_stream.h +) diff --git a/ydb/library/yverify_stream/CMakeLists.darwin-x86_64.txt b/ydb/library/yverify_stream/CMakeLists.darwin-x86_64.txt index 32f3123873bc..870ca0ebca40 100644 --- a/ydb/library/yverify_stream/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yverify_stream/CMakeLists.darwin-x86_64.txt @@ -12,3 +12,6 @@ target_link_libraries(ydb-library-yverify_stream INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(ydb-library-yverify_stream INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/yverify_stream/yverify_stream.h +) diff --git a/ydb/library/yverify_stream/CMakeLists.linux-aarch64.txt b/ydb/library/yverify_stream/CMakeLists.linux-aarch64.txt index 1fe4c0e9c0ab..a1e53dafd860 100644 --- a/ydb/library/yverify_stream/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yverify_stream/CMakeLists.linux-aarch64.txt @@ -13,3 +13,6 @@ target_link_libraries(ydb-library-yverify_stream INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(ydb-library-yverify_stream INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/yverify_stream/yverify_stream.h +) diff --git a/ydb/library/yverify_stream/CMakeLists.linux-x86_64.txt b/ydb/library/yverify_stream/CMakeLists.linux-x86_64.txt index 1fe4c0e9c0ab..a1e53dafd860 100644 --- a/ydb/library/yverify_stream/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yverify_stream/CMakeLists.linux-x86_64.txt @@ -13,3 +13,6 @@ target_link_libraries(ydb-library-yverify_stream INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(ydb-library-yverify_stream INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/yverify_stream/yverify_stream.h +) diff --git a/ydb/library/yverify_stream/CMakeLists.windows-x86_64.txt b/ydb/library/yverify_stream/CMakeLists.windows-x86_64.txt index 32f3123873bc..870ca0ebca40 100644 --- a/ydb/library/yverify_stream/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yverify_stream/CMakeLists.windows-x86_64.txt @@ -12,3 +12,6 @@ target_link_libraries(ydb-library-yverify_stream INTERFACE contrib-libs-cxxsupp yutil ) +target_sources(ydb-library-yverify_stream INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/library/yverify_stream/yverify_stream.h +) diff --git a/ydb/public/api/client/yc_private/CMakeLists.txt b/ydb/public/api/client/yc_private/CMakeLists.txt index 7869b2eaa912..844a2b3d1e6f 100644 --- a/ydb/public/api/client/yc_private/CMakeLists.txt +++ b/ydb/public/api/client/yc_private/CMakeLists.txt @@ -6,6 +6,7 @@ # original buildsystem will not be accepted. +add_subdirectory(accessservice) add_subdirectory(compute) add_subdirectory(iam) add_subdirectory(kms) diff --git a/ydb/public/api/client/yc_private/accessservice/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_private/accessservice/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..4ee4ecf64e92 --- /dev/null +++ b/ydb/public/api/client/yc_private/accessservice/CMakeLists.darwin-arm64.txt @@ -0,0 +1,93 @@ + +# 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_grpc_cpp_bin + TOOL_grpc_cpp_dependency + contrib/tools/protoc/plugins/grpc_cpp + grpc_cpp +) +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 +) +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 +) +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(client-yc_private-accessservice) +set_property(TARGET client-yc_private-accessservice PROPERTY + PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h +) +target_link_libraries(client-yc_private-accessservice PUBLIC + contrib-libs-googleapis-common-protos + contrib-libs-cxxsupp + yutil + contrib-libs-grpc + contrib-libs-protobuf +) +target_proto_messages(client-yc_private-accessservice PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/accessservice/access_service.proto + ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/accessservice/resource.proto + ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/accessservice/sensitive.proto +) +target_sources(client-yc_private-accessservice PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/access_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/access_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/resource.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/sensitive.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/sensitive.grpc.pb.h +) +target_proto_addincls(client-yc_private-accessservice + ./ + ${CMAKE_SOURCE_DIR}/ + ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos + ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src + ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src +) +target_proto_outs(client-yc_private-accessservice + --cpp_out=${CMAKE_BINARY_DIR}/ + --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ +) +target_proto_plugin(client-yc_private-accessservice + grpc_cpp + grpc_cpp +) diff --git a/ydb/public/api/client/yc_private/accessservice/CMakeLists.darwin-x86_64.txt b/ydb/public/api/client/yc_private/accessservice/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..4ee4ecf64e92 --- /dev/null +++ b/ydb/public/api/client/yc_private/accessservice/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,93 @@ + +# 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_grpc_cpp_bin + TOOL_grpc_cpp_dependency + contrib/tools/protoc/plugins/grpc_cpp + grpc_cpp +) +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 +) +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 +) +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(client-yc_private-accessservice) +set_property(TARGET client-yc_private-accessservice PROPERTY + PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h +) +target_link_libraries(client-yc_private-accessservice PUBLIC + contrib-libs-googleapis-common-protos + contrib-libs-cxxsupp + yutil + contrib-libs-grpc + contrib-libs-protobuf +) +target_proto_messages(client-yc_private-accessservice PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/accessservice/access_service.proto + ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/accessservice/resource.proto + ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/accessservice/sensitive.proto +) +target_sources(client-yc_private-accessservice PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/access_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/access_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/resource.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/sensitive.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/sensitive.grpc.pb.h +) +target_proto_addincls(client-yc_private-accessservice + ./ + ${CMAKE_SOURCE_DIR}/ + ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos + ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src + ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src +) +target_proto_outs(client-yc_private-accessservice + --cpp_out=${CMAKE_BINARY_DIR}/ + --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ +) +target_proto_plugin(client-yc_private-accessservice + grpc_cpp + grpc_cpp +) diff --git a/ydb/public/api/client/yc_private/accessservice/CMakeLists.linux-aarch64.txt b/ydb/public/api/client/yc_private/accessservice/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..a0f947598ea8 --- /dev/null +++ b/ydb/public/api/client/yc_private/accessservice/CMakeLists.linux-aarch64.txt @@ -0,0 +1,94 @@ + +# 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_grpc_cpp_bin + TOOL_grpc_cpp_dependency + contrib/tools/protoc/plugins/grpc_cpp + grpc_cpp +) +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 +) +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 +) +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(client-yc_private-accessservice) +set_property(TARGET client-yc_private-accessservice PROPERTY + PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h +) +target_link_libraries(client-yc_private-accessservice PUBLIC + contrib-libs-googleapis-common-protos + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + contrib-libs-grpc + contrib-libs-protobuf +) +target_proto_messages(client-yc_private-accessservice PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/accessservice/access_service.proto + ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/accessservice/resource.proto + ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/accessservice/sensitive.proto +) +target_sources(client-yc_private-accessservice PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/access_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/access_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/resource.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/sensitive.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/sensitive.grpc.pb.h +) +target_proto_addincls(client-yc_private-accessservice + ./ + ${CMAKE_SOURCE_DIR}/ + ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos + ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src + ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src +) +target_proto_outs(client-yc_private-accessservice + --cpp_out=${CMAKE_BINARY_DIR}/ + --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ +) +target_proto_plugin(client-yc_private-accessservice + grpc_cpp + grpc_cpp +) diff --git a/ydb/public/api/client/yc_private/accessservice/CMakeLists.linux-x86_64.txt b/ydb/public/api/client/yc_private/accessservice/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..a0f947598ea8 --- /dev/null +++ b/ydb/public/api/client/yc_private/accessservice/CMakeLists.linux-x86_64.txt @@ -0,0 +1,94 @@ + +# 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_grpc_cpp_bin + TOOL_grpc_cpp_dependency + contrib/tools/protoc/plugins/grpc_cpp + grpc_cpp +) +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 +) +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 +) +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(client-yc_private-accessservice) +set_property(TARGET client-yc_private-accessservice PROPERTY + PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h +) +target_link_libraries(client-yc_private-accessservice PUBLIC + contrib-libs-googleapis-common-protos + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + contrib-libs-grpc + contrib-libs-protobuf +) +target_proto_messages(client-yc_private-accessservice PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/accessservice/access_service.proto + ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/accessservice/resource.proto + ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/accessservice/sensitive.proto +) +target_sources(client-yc_private-accessservice PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/access_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/access_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/resource.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/sensitive.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/sensitive.grpc.pb.h +) +target_proto_addincls(client-yc_private-accessservice + ./ + ${CMAKE_SOURCE_DIR}/ + ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos + ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src + ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src +) +target_proto_outs(client-yc_private-accessservice + --cpp_out=${CMAKE_BINARY_DIR}/ + --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ +) +target_proto_plugin(client-yc_private-accessservice + grpc_cpp + grpc_cpp +) diff --git a/ydb/public/api/client/yc_private/accessservice/CMakeLists.txt b/ydb/public/api/client/yc_private/accessservice/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/public/api/client/yc_private/accessservice/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/public/api/client/yc_private/accessservice/CMakeLists.windows-x86_64.txt b/ydb/public/api/client/yc_private/accessservice/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..4ee4ecf64e92 --- /dev/null +++ b/ydb/public/api/client/yc_private/accessservice/CMakeLists.windows-x86_64.txt @@ -0,0 +1,93 @@ + +# 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_grpc_cpp_bin + TOOL_grpc_cpp_dependency + contrib/tools/protoc/plugins/grpc_cpp + grpc_cpp +) +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 +) +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 +) +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(client-yc_private-accessservice) +set_property(TARGET client-yc_private-accessservice PROPERTY + PROTOC_EXTRA_OUTS .grpc.pb.cc .grpc.pb.h +) +target_link_libraries(client-yc_private-accessservice PUBLIC + contrib-libs-googleapis-common-protos + contrib-libs-cxxsupp + yutil + contrib-libs-grpc + contrib-libs-protobuf +) +target_proto_messages(client-yc_private-accessservice PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/accessservice/access_service.proto + ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/accessservice/resource.proto + ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/accessservice/sensitive.proto +) +target_sources(client-yc_private-accessservice PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/access_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/access_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/resource.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/resource.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/sensitive.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/accessservice/sensitive.grpc.pb.h +) +target_proto_addincls(client-yc_private-accessservice + ./ + ${CMAKE_SOURCE_DIR}/ + ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR} + ${CMAKE_SOURCE_DIR}/contrib/libs/googleapis-common-protos + ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src + ${CMAKE_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/contrib/libs/protobuf/src +) +target_proto_outs(client-yc_private-accessservice + --cpp_out=${CMAKE_BINARY_DIR}/ + --cpp_styleguide_out=${CMAKE_BINARY_DIR}/ +) +target_proto_plugin(client-yc_private-accessservice + grpc_cpp + grpc_cpp +) diff --git a/ydb/public/api/client/yc_private/compute/inner/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_private/compute/inner/CMakeLists.darwin-arm64.txt index 9f7e92b4da2d..c06027184ba9 100644 --- a/ydb/public/api/client/yc_private/compute/inner/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/client/yc_private/compute/inner/CMakeLists.darwin-arm64.txt @@ -38,6 +38,10 @@ target_link_libraries(yc_private-compute-inner PUBLIC target_proto_messages(yc_private-compute-inner PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.proto ) +target_sources(yc_private-compute-inner PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.grpc.pb.h +) target_proto_addincls(yc_private-compute-inner ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/compute/inner/CMakeLists.darwin-x86_64.txt b/ydb/public/api/client/yc_private/compute/inner/CMakeLists.darwin-x86_64.txt index 9f7e92b4da2d..c06027184ba9 100644 --- a/ydb/public/api/client/yc_private/compute/inner/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/client/yc_private/compute/inner/CMakeLists.darwin-x86_64.txt @@ -38,6 +38,10 @@ target_link_libraries(yc_private-compute-inner PUBLIC target_proto_messages(yc_private-compute-inner PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.proto ) +target_sources(yc_private-compute-inner PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.grpc.pb.h +) target_proto_addincls(yc_private-compute-inner ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/compute/inner/CMakeLists.linux-aarch64.txt b/ydb/public/api/client/yc_private/compute/inner/CMakeLists.linux-aarch64.txt index 487041d279cc..d93f739bb54c 100644 --- a/ydb/public/api/client/yc_private/compute/inner/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/client/yc_private/compute/inner/CMakeLists.linux-aarch64.txt @@ -39,6 +39,10 @@ target_link_libraries(yc_private-compute-inner PUBLIC target_proto_messages(yc_private-compute-inner PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.proto ) +target_sources(yc_private-compute-inner PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.grpc.pb.h +) target_proto_addincls(yc_private-compute-inner ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/compute/inner/CMakeLists.linux-x86_64.txt b/ydb/public/api/client/yc_private/compute/inner/CMakeLists.linux-x86_64.txt index 487041d279cc..d93f739bb54c 100644 --- a/ydb/public/api/client/yc_private/compute/inner/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/client/yc_private/compute/inner/CMakeLists.linux-x86_64.txt @@ -39,6 +39,10 @@ target_link_libraries(yc_private-compute-inner PUBLIC target_proto_messages(yc_private-compute-inner PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.proto ) +target_sources(yc_private-compute-inner PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.grpc.pb.h +) target_proto_addincls(yc_private-compute-inner ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/compute/inner/CMakeLists.windows-x86_64.txt b/ydb/public/api/client/yc_private/compute/inner/CMakeLists.windows-x86_64.txt index 9f7e92b4da2d..c06027184ba9 100644 --- a/ydb/public/api/client/yc_private/compute/inner/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/client/yc_private/compute/inner/CMakeLists.windows-x86_64.txt @@ -38,6 +38,10 @@ target_link_libraries(yc_private-compute-inner PUBLIC target_proto_messages(yc_private-compute-inner PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.proto ) +target_sources(yc_private-compute-inner PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/compute/inner/disk_service.grpc.pb.h +) target_proto_addincls(yc_private-compute-inner ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/iam/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_private/iam/CMakeLists.darwin-arm64.txt index 218cc74d277b..ad19916c15b1 100644 --- a/ydb/public/api/client/yc_private/iam/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/client/yc_private/iam/CMakeLists.darwin-arm64.txt @@ -157,6 +157,28 @@ target_proto_messages(client-yc_private-iam PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/user_account.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.proto ) +target_sources(client-yc_private-iam PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service_subject.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service_subject.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/oauth_request.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/oauth_request.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/reference.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/reference.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.grpc.pb.h +) target_proto_addincls(client-yc_private-iam ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/iam/CMakeLists.darwin-x86_64.txt b/ydb/public/api/client/yc_private/iam/CMakeLists.darwin-x86_64.txt index 218cc74d277b..ad19916c15b1 100644 --- a/ydb/public/api/client/yc_private/iam/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/client/yc_private/iam/CMakeLists.darwin-x86_64.txt @@ -157,6 +157,28 @@ target_proto_messages(client-yc_private-iam PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/user_account.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.proto ) +target_sources(client-yc_private-iam PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service_subject.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service_subject.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/oauth_request.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/oauth_request.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/reference.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/reference.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.grpc.pb.h +) target_proto_addincls(client-yc_private-iam ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/iam/CMakeLists.linux-aarch64.txt b/ydb/public/api/client/yc_private/iam/CMakeLists.linux-aarch64.txt index 498f2017e86f..a8333416dda4 100644 --- a/ydb/public/api/client/yc_private/iam/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/client/yc_private/iam/CMakeLists.linux-aarch64.txt @@ -158,6 +158,28 @@ target_proto_messages(client-yc_private-iam PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/user_account.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.proto ) +target_sources(client-yc_private-iam PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service_subject.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service_subject.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/oauth_request.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/oauth_request.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/reference.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/reference.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.grpc.pb.h +) target_proto_addincls(client-yc_private-iam ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/iam/CMakeLists.linux-x86_64.txt b/ydb/public/api/client/yc_private/iam/CMakeLists.linux-x86_64.txt index 498f2017e86f..a8333416dda4 100644 --- a/ydb/public/api/client/yc_private/iam/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/client/yc_private/iam/CMakeLists.linux-x86_64.txt @@ -158,6 +158,28 @@ target_proto_messages(client-yc_private-iam PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/user_account.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.proto ) +target_sources(client-yc_private-iam PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service_subject.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service_subject.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/oauth_request.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/oauth_request.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/reference.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/reference.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.grpc.pb.h +) target_proto_addincls(client-yc_private-iam ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/iam/CMakeLists.windows-x86_64.txt b/ydb/public/api/client/yc_private/iam/CMakeLists.windows-x86_64.txt index 218cc74d277b..ad19916c15b1 100644 --- a/ydb/public/api/client/yc_private/iam/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/client/yc_private/iam/CMakeLists.windows-x86_64.txt @@ -157,6 +157,28 @@ target_proto_messages(client-yc_private-iam PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/user_account.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.proto ) +target_sources(client-yc_private-iam PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service_subject.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service_subject.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/iam_token.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/oauth_request.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/oauth_request.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/reference.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/reference.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/service_account.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/user_account.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/iam/yandex_passport_cookie.grpc.pb.h +) target_proto_addincls(client-yc_private-iam ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/kms/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_private/kms/CMakeLists.darwin-arm64.txt index d358f81b1137..de8ef2f2ee00 100644 --- a/ydb/public/api/client/yc_private/kms/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/client/yc_private/kms/CMakeLists.darwin-arm64.txt @@ -55,6 +55,12 @@ target_proto_messages(client-yc_private-kms PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/symmetric_crypto_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/symmetric_key.proto ) +target_sources(client-yc_private-kms PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_crypto_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_crypto_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_key.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_key.grpc.pb.h +) target_proto_addincls(client-yc_private-kms ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/kms/CMakeLists.darwin-x86_64.txt b/ydb/public/api/client/yc_private/kms/CMakeLists.darwin-x86_64.txt index d358f81b1137..de8ef2f2ee00 100644 --- a/ydb/public/api/client/yc_private/kms/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/client/yc_private/kms/CMakeLists.darwin-x86_64.txt @@ -55,6 +55,12 @@ target_proto_messages(client-yc_private-kms PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/symmetric_crypto_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/symmetric_key.proto ) +target_sources(client-yc_private-kms PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_crypto_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_crypto_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_key.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_key.grpc.pb.h +) target_proto_addincls(client-yc_private-kms ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/kms/CMakeLists.linux-aarch64.txt b/ydb/public/api/client/yc_private/kms/CMakeLists.linux-aarch64.txt index cc5fd5548e3b..ad319ee84e4a 100644 --- a/ydb/public/api/client/yc_private/kms/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/client/yc_private/kms/CMakeLists.linux-aarch64.txt @@ -56,6 +56,12 @@ target_proto_messages(client-yc_private-kms PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/symmetric_crypto_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/symmetric_key.proto ) +target_sources(client-yc_private-kms PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_crypto_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_crypto_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_key.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_key.grpc.pb.h +) target_proto_addincls(client-yc_private-kms ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/kms/CMakeLists.linux-x86_64.txt b/ydb/public/api/client/yc_private/kms/CMakeLists.linux-x86_64.txt index cc5fd5548e3b..ad319ee84e4a 100644 --- a/ydb/public/api/client/yc_private/kms/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/client/yc_private/kms/CMakeLists.linux-x86_64.txt @@ -56,6 +56,12 @@ target_proto_messages(client-yc_private-kms PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/symmetric_crypto_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/symmetric_key.proto ) +target_sources(client-yc_private-kms PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_crypto_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_crypto_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_key.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_key.grpc.pb.h +) target_proto_addincls(client-yc_private-kms ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/kms/CMakeLists.windows-x86_64.txt b/ydb/public/api/client/yc_private/kms/CMakeLists.windows-x86_64.txt index d358f81b1137..de8ef2f2ee00 100644 --- a/ydb/public/api/client/yc_private/kms/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/client/yc_private/kms/CMakeLists.windows-x86_64.txt @@ -55,6 +55,12 @@ target_proto_messages(client-yc_private-kms PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/symmetric_crypto_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/symmetric_key.proto ) +target_sources(client-yc_private-kms PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_crypto_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_crypto_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_key.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/symmetric_key.grpc.pb.h +) target_proto_addincls(client-yc_private-kms ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.darwin-arm64.txt index 1c930dcaa7fa..f1bb622fd4ab 100644 --- a/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.darwin-arm64.txt @@ -38,6 +38,10 @@ target_link_libraries(yc_private-kms-asymmetricencryption PUBLIC target_proto_messages(yc_private-kms-asymmetricencryption PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/asymmetricencryption/asymmetric_encryption_key.proto ) +target_sources(yc_private-kms-asymmetricencryption PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricencryption/asymmetric_encryption_key.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricencryption/asymmetric_encryption_key.grpc.pb.h +) target_proto_addincls(yc_private-kms-asymmetricencryption ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.darwin-x86_64.txt b/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.darwin-x86_64.txt index 1c930dcaa7fa..f1bb622fd4ab 100644 --- a/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.darwin-x86_64.txt @@ -38,6 +38,10 @@ target_link_libraries(yc_private-kms-asymmetricencryption PUBLIC target_proto_messages(yc_private-kms-asymmetricencryption PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/asymmetricencryption/asymmetric_encryption_key.proto ) +target_sources(yc_private-kms-asymmetricencryption PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricencryption/asymmetric_encryption_key.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricencryption/asymmetric_encryption_key.grpc.pb.h +) target_proto_addincls(yc_private-kms-asymmetricencryption ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.linux-aarch64.txt b/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.linux-aarch64.txt index eaed0d19a4db..ecce1618fbb6 100644 --- a/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.linux-aarch64.txt @@ -39,6 +39,10 @@ target_link_libraries(yc_private-kms-asymmetricencryption PUBLIC target_proto_messages(yc_private-kms-asymmetricencryption PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/asymmetricencryption/asymmetric_encryption_key.proto ) +target_sources(yc_private-kms-asymmetricencryption PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricencryption/asymmetric_encryption_key.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricencryption/asymmetric_encryption_key.grpc.pb.h +) target_proto_addincls(yc_private-kms-asymmetricencryption ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.linux-x86_64.txt b/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.linux-x86_64.txt index eaed0d19a4db..ecce1618fbb6 100644 --- a/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.linux-x86_64.txt @@ -39,6 +39,10 @@ target_link_libraries(yc_private-kms-asymmetricencryption PUBLIC target_proto_messages(yc_private-kms-asymmetricencryption PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/asymmetricencryption/asymmetric_encryption_key.proto ) +target_sources(yc_private-kms-asymmetricencryption PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricencryption/asymmetric_encryption_key.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricencryption/asymmetric_encryption_key.grpc.pb.h +) target_proto_addincls(yc_private-kms-asymmetricencryption ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.windows-x86_64.txt b/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.windows-x86_64.txt index 1c930dcaa7fa..f1bb622fd4ab 100644 --- a/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/client/yc_private/kms/asymmetricencryption/CMakeLists.windows-x86_64.txt @@ -38,6 +38,10 @@ target_link_libraries(yc_private-kms-asymmetricencryption PUBLIC target_proto_messages(yc_private-kms-asymmetricencryption PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/asymmetricencryption/asymmetric_encryption_key.proto ) +target_sources(yc_private-kms-asymmetricencryption PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricencryption/asymmetric_encryption_key.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricencryption/asymmetric_encryption_key.grpc.pb.h +) target_proto_addincls(yc_private-kms-asymmetricencryption ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.darwin-arm64.txt index 2d51592240b3..ef15b0f1c792 100644 --- a/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.darwin-arm64.txt @@ -38,6 +38,10 @@ target_link_libraries(yc_private-kms-asymmetricsignature PUBLIC target_proto_messages(yc_private-kms-asymmetricsignature PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/asymmetricsignature/asymmetric_signature_key.proto ) +target_sources(yc_private-kms-asymmetricsignature PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricsignature/asymmetric_signature_key.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricsignature/asymmetric_signature_key.grpc.pb.h +) target_proto_addincls(yc_private-kms-asymmetricsignature ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.darwin-x86_64.txt b/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.darwin-x86_64.txt index 2d51592240b3..ef15b0f1c792 100644 --- a/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.darwin-x86_64.txt @@ -38,6 +38,10 @@ target_link_libraries(yc_private-kms-asymmetricsignature PUBLIC target_proto_messages(yc_private-kms-asymmetricsignature PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/asymmetricsignature/asymmetric_signature_key.proto ) +target_sources(yc_private-kms-asymmetricsignature PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricsignature/asymmetric_signature_key.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricsignature/asymmetric_signature_key.grpc.pb.h +) target_proto_addincls(yc_private-kms-asymmetricsignature ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.linux-aarch64.txt b/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.linux-aarch64.txt index d32b93b44e4b..60b23eb688b0 100644 --- a/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.linux-aarch64.txt @@ -39,6 +39,10 @@ target_link_libraries(yc_private-kms-asymmetricsignature PUBLIC target_proto_messages(yc_private-kms-asymmetricsignature PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/asymmetricsignature/asymmetric_signature_key.proto ) +target_sources(yc_private-kms-asymmetricsignature PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricsignature/asymmetric_signature_key.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricsignature/asymmetric_signature_key.grpc.pb.h +) target_proto_addincls(yc_private-kms-asymmetricsignature ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.linux-x86_64.txt b/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.linux-x86_64.txt index d32b93b44e4b..60b23eb688b0 100644 --- a/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.linux-x86_64.txt @@ -39,6 +39,10 @@ target_link_libraries(yc_private-kms-asymmetricsignature PUBLIC target_proto_messages(yc_private-kms-asymmetricsignature PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/asymmetricsignature/asymmetric_signature_key.proto ) +target_sources(yc_private-kms-asymmetricsignature PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricsignature/asymmetric_signature_key.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricsignature/asymmetric_signature_key.grpc.pb.h +) target_proto_addincls(yc_private-kms-asymmetricsignature ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.windows-x86_64.txt b/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.windows-x86_64.txt index 2d51592240b3..ef15b0f1c792 100644 --- a/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/client/yc_private/kms/asymmetricsignature/CMakeLists.windows-x86_64.txt @@ -38,6 +38,10 @@ target_link_libraries(yc_private-kms-asymmetricsignature PUBLIC target_proto_messages(yc_private-kms-asymmetricsignature PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/kms/asymmetricsignature/asymmetric_signature_key.proto ) +target_sources(yc_private-kms-asymmetricsignature PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricsignature/asymmetric_signature_key.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/kms/asymmetricsignature/asymmetric_signature_key.grpc.pb.h +) target_proto_addincls(yc_private-kms-asymmetricsignature ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/operation/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_private/operation/CMakeLists.darwin-arm64.txt index 97cc8932f73a..9d9bab04c306 100644 --- a/ydb/public/api/client/yc_private/operation/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/client/yc_private/operation/CMakeLists.darwin-arm64.txt @@ -39,6 +39,10 @@ target_link_libraries(client-yc_private-operation PUBLIC target_proto_messages(client-yc_private-operation PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/operation/operation.proto ) +target_sources(client-yc_private-operation PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/operation/operation.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/operation/operation.grpc.pb.h +) target_proto_addincls(client-yc_private-operation ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/operation/CMakeLists.darwin-x86_64.txt b/ydb/public/api/client/yc_private/operation/CMakeLists.darwin-x86_64.txt index 97cc8932f73a..9d9bab04c306 100644 --- a/ydb/public/api/client/yc_private/operation/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/client/yc_private/operation/CMakeLists.darwin-x86_64.txt @@ -39,6 +39,10 @@ target_link_libraries(client-yc_private-operation PUBLIC target_proto_messages(client-yc_private-operation PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/operation/operation.proto ) +target_sources(client-yc_private-operation PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/operation/operation.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/operation/operation.grpc.pb.h +) target_proto_addincls(client-yc_private-operation ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/operation/CMakeLists.linux-aarch64.txt b/ydb/public/api/client/yc_private/operation/CMakeLists.linux-aarch64.txt index 19e60d143fd2..bcc0989f7dd5 100644 --- a/ydb/public/api/client/yc_private/operation/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/client/yc_private/operation/CMakeLists.linux-aarch64.txt @@ -40,6 +40,10 @@ target_link_libraries(client-yc_private-operation PUBLIC target_proto_messages(client-yc_private-operation PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/operation/operation.proto ) +target_sources(client-yc_private-operation PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/operation/operation.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/operation/operation.grpc.pb.h +) target_proto_addincls(client-yc_private-operation ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/operation/CMakeLists.linux-x86_64.txt b/ydb/public/api/client/yc_private/operation/CMakeLists.linux-x86_64.txt index 19e60d143fd2..bcc0989f7dd5 100644 --- a/ydb/public/api/client/yc_private/operation/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/client/yc_private/operation/CMakeLists.linux-x86_64.txt @@ -40,6 +40,10 @@ target_link_libraries(client-yc_private-operation PUBLIC target_proto_messages(client-yc_private-operation PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/operation/operation.proto ) +target_sources(client-yc_private-operation PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/operation/operation.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/operation/operation.grpc.pb.h +) target_proto_addincls(client-yc_private-operation ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/operation/CMakeLists.windows-x86_64.txt b/ydb/public/api/client/yc_private/operation/CMakeLists.windows-x86_64.txt index 97cc8932f73a..9d9bab04c306 100644 --- a/ydb/public/api/client/yc_private/operation/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/client/yc_private/operation/CMakeLists.windows-x86_64.txt @@ -39,6 +39,10 @@ target_link_libraries(client-yc_private-operation PUBLIC target_proto_messages(client-yc_private-operation PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/operation/operation.proto ) +target_sources(client-yc_private-operation PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/operation/operation.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/operation/operation.grpc.pb.h +) target_proto_addincls(client-yc_private-operation ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.darwin-arm64.txt index 267a6c51527f..6c354be68ca0 100644 --- a/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.darwin-arm64.txt @@ -67,6 +67,14 @@ target_proto_messages(client-yc_private-resourcemanager PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.proto ) +target_sources(client-yc_private-resourcemanager PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.grpc.pb.h +) target_proto_addincls(client-yc_private-resourcemanager ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.darwin-x86_64.txt b/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.darwin-x86_64.txt index 267a6c51527f..6c354be68ca0 100644 --- a/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.darwin-x86_64.txt @@ -67,6 +67,14 @@ target_proto_messages(client-yc_private-resourcemanager PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.proto ) +target_sources(client-yc_private-resourcemanager PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.grpc.pb.h +) target_proto_addincls(client-yc_private-resourcemanager ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.linux-aarch64.txt b/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.linux-aarch64.txt index 1c78669b473b..f83e0541b941 100644 --- a/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.linux-aarch64.txt @@ -68,6 +68,14 @@ target_proto_messages(client-yc_private-resourcemanager PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.proto ) +target_sources(client-yc_private-resourcemanager PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.grpc.pb.h +) target_proto_addincls(client-yc_private-resourcemanager ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.linux-x86_64.txt b/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.linux-x86_64.txt index 1c78669b473b..f83e0541b941 100644 --- a/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.linux-x86_64.txt @@ -68,6 +68,14 @@ target_proto_messages(client-yc_private-resourcemanager PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.proto ) +target_sources(client-yc_private-resourcemanager PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.grpc.pb.h +) target_proto_addincls(client-yc_private-resourcemanager ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.windows-x86_64.txt b/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.windows-x86_64.txt index 267a6c51527f..6c354be68ca0 100644 --- a/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/client/yc_private/resourcemanager/CMakeLists.windows-x86_64.txt @@ -67,6 +67,14 @@ target_proto_messages(client-yc_private-resourcemanager PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.proto ) +target_sources(client-yc_private-resourcemanager PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/transitional/folder_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/resourcemanager/folder_service.grpc.pb.h +) target_proto_addincls(client-yc_private-resourcemanager ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.darwin-arm64.txt index 0a8651e29d9f..e988965acb69 100644 --- a/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.darwin-arm64.txt @@ -52,6 +52,12 @@ target_proto_messages(client-yc_private-servicecontrol PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.proto ) +target_sources(client-yc_private-servicecontrol PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.grpc.pb.h +) target_proto_addincls(client-yc_private-servicecontrol ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.darwin-x86_64.txt b/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.darwin-x86_64.txt index 0a8651e29d9f..e988965acb69 100644 --- a/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.darwin-x86_64.txt @@ -52,6 +52,12 @@ target_proto_messages(client-yc_private-servicecontrol PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.proto ) +target_sources(client-yc_private-servicecontrol PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.grpc.pb.h +) target_proto_addincls(client-yc_private-servicecontrol ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.linux-aarch64.txt b/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.linux-aarch64.txt index ed9cff8ba65a..0f5d610c2507 100644 --- a/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.linux-aarch64.txt @@ -53,6 +53,12 @@ target_proto_messages(client-yc_private-servicecontrol PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.proto ) +target_sources(client-yc_private-servicecontrol PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.grpc.pb.h +) target_proto_addincls(client-yc_private-servicecontrol ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.linux-x86_64.txt b/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.linux-x86_64.txt index ed9cff8ba65a..0f5d610c2507 100644 --- a/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.linux-x86_64.txt @@ -53,6 +53,12 @@ target_proto_messages(client-yc_private-servicecontrol PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.proto ) +target_sources(client-yc_private-servicecontrol PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.grpc.pb.h +) target_proto_addincls(client-yc_private-servicecontrol ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.windows-x86_64.txt b/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.windows-x86_64.txt index 0a8651e29d9f..e988965acb69 100644 --- a/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/client/yc_private/servicecontrol/CMakeLists.windows-x86_64.txt @@ -52,6 +52,12 @@ target_proto_messages(client-yc_private-servicecontrol PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.proto ) +target_sources(client-yc_private-servicecontrol PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/access_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_private/servicecontrol/resource.grpc.pb.h +) target_proto_addincls(client-yc_private-servicecontrol ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/common/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_public/common/CMakeLists.darwin-arm64.txt index f33957c22e07..e135331434bf 100644 --- a/ydb/public/api/client/yc_public/common/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/client/yc_public/common/CMakeLists.darwin-arm64.txt @@ -39,6 +39,10 @@ target_link_libraries(client-yc_public-common PUBLIC target_proto_messages(client-yc_public-common PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/common/validation.proto ) +target_sources(client-yc_public-common PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/common/validation.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/common/validation.grpc.pb.h +) target_proto_addincls(client-yc_public-common ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/common/CMakeLists.darwin-x86_64.txt b/ydb/public/api/client/yc_public/common/CMakeLists.darwin-x86_64.txt index f33957c22e07..e135331434bf 100644 --- a/ydb/public/api/client/yc_public/common/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/client/yc_public/common/CMakeLists.darwin-x86_64.txt @@ -39,6 +39,10 @@ target_link_libraries(client-yc_public-common PUBLIC target_proto_messages(client-yc_public-common PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/common/validation.proto ) +target_sources(client-yc_public-common PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/common/validation.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/common/validation.grpc.pb.h +) target_proto_addincls(client-yc_public-common ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/common/CMakeLists.linux-aarch64.txt b/ydb/public/api/client/yc_public/common/CMakeLists.linux-aarch64.txt index c883515f4383..3a55b247f941 100644 --- a/ydb/public/api/client/yc_public/common/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/client/yc_public/common/CMakeLists.linux-aarch64.txt @@ -40,6 +40,10 @@ target_link_libraries(client-yc_public-common PUBLIC target_proto_messages(client-yc_public-common PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/common/validation.proto ) +target_sources(client-yc_public-common PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/common/validation.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/common/validation.grpc.pb.h +) target_proto_addincls(client-yc_public-common ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/common/CMakeLists.linux-x86_64.txt b/ydb/public/api/client/yc_public/common/CMakeLists.linux-x86_64.txt index c883515f4383..3a55b247f941 100644 --- a/ydb/public/api/client/yc_public/common/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/client/yc_public/common/CMakeLists.linux-x86_64.txt @@ -40,6 +40,10 @@ target_link_libraries(client-yc_public-common PUBLIC target_proto_messages(client-yc_public-common PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/common/validation.proto ) +target_sources(client-yc_public-common PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/common/validation.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/common/validation.grpc.pb.h +) target_proto_addincls(client-yc_public-common ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/common/CMakeLists.windows-x86_64.txt b/ydb/public/api/client/yc_public/common/CMakeLists.windows-x86_64.txt index f33957c22e07..e135331434bf 100644 --- a/ydb/public/api/client/yc_public/common/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/client/yc_public/common/CMakeLists.windows-x86_64.txt @@ -39,6 +39,10 @@ target_link_libraries(client-yc_public-common PUBLIC target_proto_messages(client-yc_public-common PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/common/validation.proto ) +target_sources(client-yc_public-common PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/common/validation.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/common/validation.grpc.pb.h +) target_proto_addincls(client-yc_public-common ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/events/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_public/events/CMakeLists.darwin-arm64.txt index 554d97242b11..969363e46970 100644 --- a/ydb/public/api/client/yc_public/events/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/client/yc_public/events/CMakeLists.darwin-arm64.txt @@ -66,6 +66,14 @@ target_proto_messages(client-yc_public-events PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/events/common.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/events/yq.proto ) +target_sources(client-yc_public-events PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/options.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/options.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/common.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/common.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/yq.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/yq.grpc.pb.h +) target_proto_addincls(client-yc_public-events ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/events/CMakeLists.darwin-x86_64.txt b/ydb/public/api/client/yc_public/events/CMakeLists.darwin-x86_64.txt index 554d97242b11..969363e46970 100644 --- a/ydb/public/api/client/yc_public/events/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/client/yc_public/events/CMakeLists.darwin-x86_64.txt @@ -66,6 +66,14 @@ target_proto_messages(client-yc_public-events PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/events/common.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/events/yq.proto ) +target_sources(client-yc_public-events PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/options.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/options.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/common.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/common.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/yq.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/yq.grpc.pb.h +) target_proto_addincls(client-yc_public-events ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/events/CMakeLists.linux-aarch64.txt b/ydb/public/api/client/yc_public/events/CMakeLists.linux-aarch64.txt index 96d965d41af4..7769ac3279e1 100644 --- a/ydb/public/api/client/yc_public/events/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/client/yc_public/events/CMakeLists.linux-aarch64.txt @@ -67,6 +67,14 @@ target_proto_messages(client-yc_public-events PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/events/common.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/events/yq.proto ) +target_sources(client-yc_public-events PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/options.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/options.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/common.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/common.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/yq.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/yq.grpc.pb.h +) target_proto_addincls(client-yc_public-events ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/events/CMakeLists.linux-x86_64.txt b/ydb/public/api/client/yc_public/events/CMakeLists.linux-x86_64.txt index 96d965d41af4..7769ac3279e1 100644 --- a/ydb/public/api/client/yc_public/events/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/client/yc_public/events/CMakeLists.linux-x86_64.txt @@ -67,6 +67,14 @@ target_proto_messages(client-yc_public-events PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/events/common.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/events/yq.proto ) +target_sources(client-yc_public-events PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/options.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/options.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/common.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/common.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/yq.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/yq.grpc.pb.h +) target_proto_addincls(client-yc_public-events ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/events/CMakeLists.windows-x86_64.txt b/ydb/public/api/client/yc_public/events/CMakeLists.windows-x86_64.txt index 554d97242b11..969363e46970 100644 --- a/ydb/public/api/client/yc_public/events/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/client/yc_public/events/CMakeLists.windows-x86_64.txt @@ -66,6 +66,14 @@ target_proto_messages(client-yc_public-events PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/events/common.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/events/yq.proto ) +target_sources(client-yc_public-events PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/options.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/options.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/common.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/common.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/yq.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/events/yq.grpc.pb.h +) target_proto_addincls(client-yc_public-events ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/iam/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_public/iam/CMakeLists.darwin-arm64.txt index 1b286b49c6c4..4b441f29b40f 100644 --- a/ydb/public/api/client/yc_public/iam/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/client/yc_public/iam/CMakeLists.darwin-arm64.txt @@ -40,6 +40,10 @@ target_link_libraries(client-yc_public-iam PUBLIC target_proto_messages(client-yc_public-iam PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.proto ) +target_sources(client-yc_public-iam PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.grpc.pb.h +) target_proto_addincls(client-yc_public-iam ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/iam/CMakeLists.darwin-x86_64.txt b/ydb/public/api/client/yc_public/iam/CMakeLists.darwin-x86_64.txt index 1b286b49c6c4..4b441f29b40f 100644 --- a/ydb/public/api/client/yc_public/iam/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/client/yc_public/iam/CMakeLists.darwin-x86_64.txt @@ -40,6 +40,10 @@ target_link_libraries(client-yc_public-iam PUBLIC target_proto_messages(client-yc_public-iam PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.proto ) +target_sources(client-yc_public-iam PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.grpc.pb.h +) target_proto_addincls(client-yc_public-iam ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/iam/CMakeLists.linux-aarch64.txt b/ydb/public/api/client/yc_public/iam/CMakeLists.linux-aarch64.txt index f6794279095b..44726e846693 100644 --- a/ydb/public/api/client/yc_public/iam/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/client/yc_public/iam/CMakeLists.linux-aarch64.txt @@ -41,6 +41,10 @@ target_link_libraries(client-yc_public-iam PUBLIC target_proto_messages(client-yc_public-iam PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.proto ) +target_sources(client-yc_public-iam PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.grpc.pb.h +) target_proto_addincls(client-yc_public-iam ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/iam/CMakeLists.linux-x86_64.txt b/ydb/public/api/client/yc_public/iam/CMakeLists.linux-x86_64.txt index f6794279095b..44726e846693 100644 --- a/ydb/public/api/client/yc_public/iam/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/client/yc_public/iam/CMakeLists.linux-x86_64.txt @@ -41,6 +41,10 @@ target_link_libraries(client-yc_public-iam PUBLIC target_proto_messages(client-yc_public-iam PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.proto ) +target_sources(client-yc_public-iam PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.grpc.pb.h +) target_proto_addincls(client-yc_public-iam ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/iam/CMakeLists.windows-x86_64.txt b/ydb/public/api/client/yc_public/iam/CMakeLists.windows-x86_64.txt index 1b286b49c6c4..4b441f29b40f 100644 --- a/ydb/public/api/client/yc_public/iam/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/client/yc_public/iam/CMakeLists.windows-x86_64.txt @@ -40,6 +40,10 @@ target_link_libraries(client-yc_public-iam PUBLIC target_proto_messages(client-yc_public-iam PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.proto ) +target_sources(client-yc_public-iam PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/iam/iam_token_service.grpc.pb.h +) target_proto_addincls(client-yc_public-iam ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/logging/CMakeLists.darwin-arm64.txt b/ydb/public/api/client/yc_public/logging/CMakeLists.darwin-arm64.txt index 6ff708119f18..3e88e2d01029 100644 --- a/ydb/public/api/client/yc_public/logging/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/client/yc_public/logging/CMakeLists.darwin-arm64.txt @@ -66,6 +66,14 @@ target_proto_messages(client-yc_public-logging PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/logging/log_resource.proto ) +target_sources(client-yc_public-logging PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_entry.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_entry.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_resource.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_resource.grpc.pb.h +) target_proto_addincls(client-yc_public-logging ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/logging/CMakeLists.darwin-x86_64.txt b/ydb/public/api/client/yc_public/logging/CMakeLists.darwin-x86_64.txt index 6ff708119f18..3e88e2d01029 100644 --- a/ydb/public/api/client/yc_public/logging/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/client/yc_public/logging/CMakeLists.darwin-x86_64.txt @@ -66,6 +66,14 @@ target_proto_messages(client-yc_public-logging PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/logging/log_resource.proto ) +target_sources(client-yc_public-logging PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_entry.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_entry.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_resource.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_resource.grpc.pb.h +) target_proto_addincls(client-yc_public-logging ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/logging/CMakeLists.linux-aarch64.txt b/ydb/public/api/client/yc_public/logging/CMakeLists.linux-aarch64.txt index 8e1ae13a9d6e..bb356d3a2d31 100644 --- a/ydb/public/api/client/yc_public/logging/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/client/yc_public/logging/CMakeLists.linux-aarch64.txt @@ -67,6 +67,14 @@ target_proto_messages(client-yc_public-logging PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/logging/log_resource.proto ) +target_sources(client-yc_public-logging PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_entry.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_entry.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_resource.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_resource.grpc.pb.h +) target_proto_addincls(client-yc_public-logging ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/logging/CMakeLists.linux-x86_64.txt b/ydb/public/api/client/yc_public/logging/CMakeLists.linux-x86_64.txt index 8e1ae13a9d6e..bb356d3a2d31 100644 --- a/ydb/public/api/client/yc_public/logging/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/client/yc_public/logging/CMakeLists.linux-x86_64.txt @@ -67,6 +67,14 @@ target_proto_messages(client-yc_public-logging PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/logging/log_resource.proto ) +target_sources(client-yc_public-logging PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_entry.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_entry.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_resource.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_resource.grpc.pb.h +) target_proto_addincls(client-yc_public-logging ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/client/yc_public/logging/CMakeLists.windows-x86_64.txt b/ydb/public/api/client/yc_public/logging/CMakeLists.windows-x86_64.txt index 6ff708119f18..3e88e2d01029 100644 --- a/ydb/public/api/client/yc_public/logging/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/client/yc_public/logging/CMakeLists.windows-x86_64.txt @@ -66,6 +66,14 @@ target_proto_messages(client-yc_public-logging PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/client/yc_public/logging/log_resource.proto ) +target_sources(client-yc_public-logging PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_entry.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_entry.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_ingestion_service.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_resource.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/client/yc_public/logging/log_resource.grpc.pb.h +) target_proto_addincls(client-yc_public-logging ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/grpc/CMakeLists.darwin-arm64.txt b/ydb/public/api/grpc/CMakeLists.darwin-arm64.txt index 2c51f9ed46ee..90daf131ae3a 100644 --- a/ydb/public/api/grpc/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/grpc/CMakeLists.darwin-arm64.txt @@ -235,6 +235,40 @@ target_proto_messages(api-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_topic_v1.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.proto ) +target_sources(api-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_federation_discovery_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_federation_discovery_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_auth_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_auth_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_cms_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_cms_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_coordination_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_coordination_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_discovery_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_discovery_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_export_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_export_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_import_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_import_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_monitoring_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_monitoring_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_operation_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_operation_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_query_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_query_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_rate_limiter_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_rate_limiter_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scheme_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scheme_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scripting_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scripting_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_table_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_table_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_topic_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_topic_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.grpc.pb.h +) target_proto_addincls(api-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/grpc/CMakeLists.darwin-x86_64.txt b/ydb/public/api/grpc/CMakeLists.darwin-x86_64.txt index 2c51f9ed46ee..90daf131ae3a 100644 --- a/ydb/public/api/grpc/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/grpc/CMakeLists.darwin-x86_64.txt @@ -235,6 +235,40 @@ target_proto_messages(api-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_topic_v1.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.proto ) +target_sources(api-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_federation_discovery_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_federation_discovery_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_auth_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_auth_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_cms_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_cms_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_coordination_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_coordination_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_discovery_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_discovery_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_export_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_export_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_import_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_import_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_monitoring_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_monitoring_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_operation_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_operation_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_query_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_query_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_rate_limiter_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_rate_limiter_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scheme_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scheme_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scripting_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scripting_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_table_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_table_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_topic_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_topic_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.grpc.pb.h +) target_proto_addincls(api-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/grpc/CMakeLists.linux-aarch64.txt b/ydb/public/api/grpc/CMakeLists.linux-aarch64.txt index cee7a6b962e7..bf961ce4fbd6 100644 --- a/ydb/public/api/grpc/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/grpc/CMakeLists.linux-aarch64.txt @@ -236,6 +236,40 @@ target_proto_messages(api-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_topic_v1.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.proto ) +target_sources(api-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_federation_discovery_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_federation_discovery_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_auth_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_auth_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_cms_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_cms_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_coordination_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_coordination_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_discovery_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_discovery_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_export_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_export_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_import_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_import_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_monitoring_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_monitoring_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_operation_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_operation_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_query_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_query_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_rate_limiter_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_rate_limiter_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scheme_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scheme_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scripting_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scripting_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_table_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_table_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_topic_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_topic_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.grpc.pb.h +) target_proto_addincls(api-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/grpc/CMakeLists.linux-x86_64.txt b/ydb/public/api/grpc/CMakeLists.linux-x86_64.txt index cee7a6b962e7..bf961ce4fbd6 100644 --- a/ydb/public/api/grpc/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/grpc/CMakeLists.linux-x86_64.txt @@ -236,6 +236,40 @@ target_proto_messages(api-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_topic_v1.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.proto ) +target_sources(api-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_federation_discovery_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_federation_discovery_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_auth_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_auth_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_cms_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_cms_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_coordination_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_coordination_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_discovery_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_discovery_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_export_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_export_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_import_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_import_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_monitoring_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_monitoring_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_operation_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_operation_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_query_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_query_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_rate_limiter_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_rate_limiter_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scheme_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scheme_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scripting_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scripting_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_table_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_table_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_topic_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_topic_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.grpc.pb.h +) target_proto_addincls(api-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/grpc/CMakeLists.windows-x86_64.txt b/ydb/public/api/grpc/CMakeLists.windows-x86_64.txt index 2c51f9ed46ee..90daf131ae3a 100644 --- a/ydb/public/api/grpc/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/grpc/CMakeLists.windows-x86_64.txt @@ -235,6 +235,40 @@ target_proto_messages(api-grpc PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_topic_v1.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.proto ) +target_sources(api-grpc PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_federation_discovery_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_federation_discovery_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_auth_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_auth_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_cms_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_cms_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_coordination_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_coordination_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_discovery_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_discovery_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_export_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_export_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_import_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_import_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_monitoring_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_monitoring_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_operation_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_operation_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_query_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_query_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_rate_limiter_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_rate_limiter_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scheme_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scheme_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scripting_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_scripting_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_table_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_table_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_topic_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_topic_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/ydb_keyvalue_v1.grpc.pb.h +) target_proto_addincls(api-grpc ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/grpc/draft/CMakeLists.darwin-arm64.txt b/ydb/public/api/grpc/draft/CMakeLists.darwin-arm64.txt index ec91e2feae26..fae6890103ba 100644 --- a/ydb/public/api/grpc/draft/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/grpc/draft/CMakeLists.darwin-arm64.txt @@ -108,18 +108,6 @@ 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(api-grpc-draft) set_property(TARGET api-grpc-draft PROPERTY @@ -142,6 +130,24 @@ target_proto_messages(api-grpc-draft PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.proto ) +target_sources(api-grpc-draft PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/dummy.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/dummy.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/fq_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/fq_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_clickhouse_internal_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_clickhouse_internal_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_persqueue_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_persqueue_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_datastreams_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_datastreams_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_maintenance_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_maintenance_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.grpc.pb.h +) target_proto_addincls(api-grpc-draft ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/grpc/draft/CMakeLists.darwin-x86_64.txt b/ydb/public/api/grpc/draft/CMakeLists.darwin-x86_64.txt index ec91e2feae26..fae6890103ba 100644 --- a/ydb/public/api/grpc/draft/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/grpc/draft/CMakeLists.darwin-x86_64.txt @@ -108,18 +108,6 @@ 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(api-grpc-draft) set_property(TARGET api-grpc-draft PROPERTY @@ -142,6 +130,24 @@ target_proto_messages(api-grpc-draft PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.proto ) +target_sources(api-grpc-draft PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/dummy.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/dummy.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/fq_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/fq_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_clickhouse_internal_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_clickhouse_internal_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_persqueue_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_persqueue_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_datastreams_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_datastreams_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_maintenance_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_maintenance_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.grpc.pb.h +) target_proto_addincls(api-grpc-draft ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/grpc/draft/CMakeLists.linux-aarch64.txt b/ydb/public/api/grpc/draft/CMakeLists.linux-aarch64.txt index bf26eb685a8e..fb49e4844753 100644 --- a/ydb/public/api/grpc/draft/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/grpc/draft/CMakeLists.linux-aarch64.txt @@ -108,18 +108,6 @@ 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(api-grpc-draft) set_property(TARGET api-grpc-draft PROPERTY @@ -143,6 +131,24 @@ target_proto_messages(api-grpc-draft PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.proto ) +target_sources(api-grpc-draft PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/dummy.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/dummy.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/fq_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/fq_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_clickhouse_internal_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_clickhouse_internal_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_persqueue_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_persqueue_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_datastreams_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_datastreams_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_maintenance_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_maintenance_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.grpc.pb.h +) target_proto_addincls(api-grpc-draft ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/grpc/draft/CMakeLists.linux-x86_64.txt b/ydb/public/api/grpc/draft/CMakeLists.linux-x86_64.txt index bf26eb685a8e..fb49e4844753 100644 --- a/ydb/public/api/grpc/draft/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/grpc/draft/CMakeLists.linux-x86_64.txt @@ -108,18 +108,6 @@ 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(api-grpc-draft) set_property(TARGET api-grpc-draft PROPERTY @@ -143,6 +131,24 @@ target_proto_messages(api-grpc-draft PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.proto ) +target_sources(api-grpc-draft PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/dummy.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/dummy.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/fq_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/fq_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_clickhouse_internal_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_clickhouse_internal_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_persqueue_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_persqueue_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_datastreams_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_datastreams_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_maintenance_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_maintenance_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.grpc.pb.h +) target_proto_addincls(api-grpc-draft ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/grpc/draft/CMakeLists.windows-x86_64.txt b/ydb/public/api/grpc/draft/CMakeLists.windows-x86_64.txt index ec91e2feae26..fae6890103ba 100644 --- a/ydb/public/api/grpc/draft/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/grpc/draft/CMakeLists.windows-x86_64.txt @@ -108,18 +108,6 @@ 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(api-grpc-draft) set_property(TARGET api-grpc-draft PROPERTY @@ -142,6 +130,24 @@ target_proto_messages(api-grpc-draft PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.proto ) +target_sources(api-grpc-draft PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/dummy.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/dummy.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/fq_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/fq_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_clickhouse_internal_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_clickhouse_internal_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_persqueue_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_persqueue_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_datastreams_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_datastreams_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_maintenance_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_maintenance_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.grpc.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/grpc/draft/ydb_dynamic_config_v1.grpc.pb.h +) target_proto_addincls(api-grpc-draft ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/protos/CMakeLists.darwin-arm64.txt b/ydb/public/api/protos/CMakeLists.darwin-arm64.txt index 472587120819..aae6327b1e3c 100644 --- a/ydb/public/api/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/protos/CMakeLists.darwin-arm64.txt @@ -410,18 +410,6 @@ 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 -) get_built_tool_path( TOOL_enum_parser_bin TOOL_enum_parser_dependency @@ -490,6 +478,41 @@ target_proto_messages(api-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_value.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_keyvalue.proto ) +target_sources(api-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/datastreams.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/fq.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_common.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_error_codes.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/ydb_maintenance.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/ydb_logstore.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/ydb_dynamic_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_federation_discovery.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/persqueue_error_codes_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_auth.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_persqueue_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_persqueue_cluster_discovery.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_clickhouse_internal.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_cms.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_common.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_coordination.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_discovery.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_export.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_formats.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_import.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_issue_message.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_monitoring.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_operation.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_query_stats.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_query.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_rate_limiter.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_scheme.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_scripting.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_status_codes.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_table.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_topic.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_value.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_keyvalue.pb.h +) generate_enum_serilization(api-protos ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_common.pb.h INCLUDE_HEADERS diff --git a/ydb/public/api/protos/CMakeLists.darwin-x86_64.txt b/ydb/public/api/protos/CMakeLists.darwin-x86_64.txt index 472587120819..aae6327b1e3c 100644 --- a/ydb/public/api/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/protos/CMakeLists.darwin-x86_64.txt @@ -410,18 +410,6 @@ 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 -) get_built_tool_path( TOOL_enum_parser_bin TOOL_enum_parser_dependency @@ -490,6 +478,41 @@ target_proto_messages(api-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_value.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_keyvalue.proto ) +target_sources(api-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/datastreams.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/fq.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_common.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_error_codes.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/ydb_maintenance.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/ydb_logstore.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/ydb_dynamic_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_federation_discovery.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/persqueue_error_codes_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_auth.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_persqueue_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_persqueue_cluster_discovery.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_clickhouse_internal.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_cms.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_common.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_coordination.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_discovery.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_export.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_formats.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_import.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_issue_message.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_monitoring.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_operation.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_query_stats.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_query.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_rate_limiter.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_scheme.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_scripting.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_status_codes.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_table.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_topic.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_value.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_keyvalue.pb.h +) generate_enum_serilization(api-protos ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_common.pb.h INCLUDE_HEADERS diff --git a/ydb/public/api/protos/CMakeLists.linux-aarch64.txt b/ydb/public/api/protos/CMakeLists.linux-aarch64.txt index ff7dd71ab01c..de639fffb530 100644 --- a/ydb/public/api/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/protos/CMakeLists.linux-aarch64.txt @@ -410,18 +410,6 @@ 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 -) get_built_tool_path( TOOL_enum_parser_bin TOOL_enum_parser_dependency @@ -491,6 +479,41 @@ target_proto_messages(api-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_value.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_keyvalue.proto ) +target_sources(api-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/datastreams.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/fq.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_common.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_error_codes.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/ydb_maintenance.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/ydb_logstore.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/ydb_dynamic_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_federation_discovery.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/persqueue_error_codes_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_auth.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_persqueue_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_persqueue_cluster_discovery.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_clickhouse_internal.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_cms.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_common.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_coordination.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_discovery.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_export.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_formats.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_import.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_issue_message.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_monitoring.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_operation.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_query_stats.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_query.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_rate_limiter.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_scheme.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_scripting.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_status_codes.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_table.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_topic.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_value.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_keyvalue.pb.h +) generate_enum_serilization(api-protos ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_common.pb.h INCLUDE_HEADERS diff --git a/ydb/public/api/protos/CMakeLists.linux-x86_64.txt b/ydb/public/api/protos/CMakeLists.linux-x86_64.txt index ff7dd71ab01c..de639fffb530 100644 --- a/ydb/public/api/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/protos/CMakeLists.linux-x86_64.txt @@ -410,18 +410,6 @@ 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 -) get_built_tool_path( TOOL_enum_parser_bin TOOL_enum_parser_dependency @@ -491,6 +479,41 @@ target_proto_messages(api-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_value.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_keyvalue.proto ) +target_sources(api-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/datastreams.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/fq.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_common.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_error_codes.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/ydb_maintenance.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/ydb_logstore.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/ydb_dynamic_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_federation_discovery.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/persqueue_error_codes_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_auth.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_persqueue_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_persqueue_cluster_discovery.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_clickhouse_internal.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_cms.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_common.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_coordination.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_discovery.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_export.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_formats.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_import.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_issue_message.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_monitoring.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_operation.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_query_stats.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_query.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_rate_limiter.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_scheme.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_scripting.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_status_codes.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_table.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_topic.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_value.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_keyvalue.pb.h +) generate_enum_serilization(api-protos ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_common.pb.h INCLUDE_HEADERS diff --git a/ydb/public/api/protos/CMakeLists.windows-x86_64.txt b/ydb/public/api/protos/CMakeLists.windows-x86_64.txt index 472587120819..aae6327b1e3c 100644 --- a/ydb/public/api/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/protos/CMakeLists.windows-x86_64.txt @@ -410,18 +410,6 @@ 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 -) get_built_tool_path( TOOL_enum_parser_bin TOOL_enum_parser_dependency @@ -490,6 +478,41 @@ target_proto_messages(api-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_value.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_keyvalue.proto ) +target_sources(api-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/datastreams.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/fq.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_common.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_error_codes.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/ydb_maintenance.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/ydb_logstore.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/ydb_dynamic_config.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_federation_discovery.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/persqueue_error_codes_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_auth.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_persqueue_v1.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_persqueue_cluster_discovery.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_clickhouse_internal.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_cms.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_common.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_coordination.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_discovery.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_export.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_formats.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_import.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_issue_message.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_monitoring.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_operation.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_query_stats.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_query.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_rate_limiter.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_scheme.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_scripting.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_status_codes.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_table.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_topic.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_value.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/ydb_keyvalue.pb.h +) generate_enum_serilization(api-protos ${CMAKE_BINARY_DIR}/ydb/public/api/protos/draft/persqueue_common.pb.h INCLUDE_HEADERS diff --git a/ydb/public/api/protos/annotations/CMakeLists.darwin-arm64.txt b/ydb/public/api/protos/annotations/CMakeLists.darwin-arm64.txt index 4c41d677bdbf..19f200a7520a 100644 --- a/ydb/public/api/protos/annotations/CMakeLists.darwin-arm64.txt +++ b/ydb/public/api/protos/annotations/CMakeLists.darwin-arm64.txt @@ -41,6 +41,10 @@ target_proto_messages(api-protos-annotations PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/annotations/sensitive.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/annotations/validation.proto ) +target_sources(api-protos-annotations PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/annotations/sensitive.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/annotations/validation.pb.h +) target_proto_addincls(api-protos-annotations ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/protos/annotations/CMakeLists.darwin-x86_64.txt b/ydb/public/api/protos/annotations/CMakeLists.darwin-x86_64.txt index 4c41d677bdbf..19f200a7520a 100644 --- a/ydb/public/api/protos/annotations/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/api/protos/annotations/CMakeLists.darwin-x86_64.txt @@ -41,6 +41,10 @@ target_proto_messages(api-protos-annotations PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/annotations/sensitive.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/annotations/validation.proto ) +target_sources(api-protos-annotations PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/annotations/sensitive.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/annotations/validation.pb.h +) target_proto_addincls(api-protos-annotations ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/protos/annotations/CMakeLists.linux-aarch64.txt b/ydb/public/api/protos/annotations/CMakeLists.linux-aarch64.txt index 559ce387ba5d..e932ba6318d1 100644 --- a/ydb/public/api/protos/annotations/CMakeLists.linux-aarch64.txt +++ b/ydb/public/api/protos/annotations/CMakeLists.linux-aarch64.txt @@ -42,6 +42,10 @@ target_proto_messages(api-protos-annotations PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/annotations/sensitive.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/annotations/validation.proto ) +target_sources(api-protos-annotations PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/annotations/sensitive.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/annotations/validation.pb.h +) target_proto_addincls(api-protos-annotations ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/protos/annotations/CMakeLists.linux-x86_64.txt b/ydb/public/api/protos/annotations/CMakeLists.linux-x86_64.txt index 559ce387ba5d..e932ba6318d1 100644 --- a/ydb/public/api/protos/annotations/CMakeLists.linux-x86_64.txt +++ b/ydb/public/api/protos/annotations/CMakeLists.linux-x86_64.txt @@ -42,6 +42,10 @@ target_proto_messages(api-protos-annotations PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/annotations/sensitive.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/annotations/validation.proto ) +target_sources(api-protos-annotations PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/annotations/sensitive.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/annotations/validation.pb.h +) target_proto_addincls(api-protos-annotations ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/protos/annotations/CMakeLists.windows-x86_64.txt b/ydb/public/api/protos/annotations/CMakeLists.windows-x86_64.txt index 4c41d677bdbf..19f200a7520a 100644 --- a/ydb/public/api/protos/annotations/CMakeLists.windows-x86_64.txt +++ b/ydb/public/api/protos/annotations/CMakeLists.windows-x86_64.txt @@ -41,6 +41,10 @@ target_proto_messages(api-protos-annotations PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/annotations/sensitive.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/annotations/validation.proto ) +target_sources(api-protos-annotations PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/annotations/sensitive.pb.h + ${CMAKE_BINARY_DIR}/ydb/public/api/protos/annotations/validation.pb.h +) target_proto_addincls(api-protos-annotations ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/api/protos/draft/persqueue_common.proto b/ydb/public/api/protos/draft/persqueue_common.proto index 87bb3f236d9f..bad67b8e551b 100644 --- a/ydb/public/api/protos/draft/persqueue_common.proto +++ b/ydb/public/api/protos/draft/persqueue_common.proto @@ -2,6 +2,8 @@ syntax = "proto3"; import "google/protobuf/descriptor.proto"; import "ydb/public/api/protos/draft/persqueue_error_codes.proto"; +import "ydb/public/api/protos/annotations/sensitive.proto"; + package NPersQueueCommon; option java_package = "com.yandex.ydb.persqueue"; @@ -35,8 +37,7 @@ enum ECodec { message Credentials { oneof credentials { - bytes tvm_service_ticket = 1; - bytes oauth_token = 2; + bytes tvm_service_ticket = 1 [(Ydb.sensitive) = true]; + bytes oauth_token = 2 [(Ydb.sensitive) = true]; } } - diff --git a/ydb/public/api/protos/draft/ydb_maintenance.proto b/ydb/public/api/protos/draft/ydb_maintenance.proto index 904fdc2ed331..7a5e1cdc480e 100644 --- a/ydb/public/api/protos/draft/ydb_maintenance.proto +++ b/ydb/public/api/protos/draft/ydb_maintenance.proto @@ -41,6 +41,11 @@ message Node { StorageNode storage = 6; DynamicNode dynamic = 7; } + // start_time defines time when node was registered in cms. + google.protobuf.Timestamp start_time = 8; + // version defines YDB version for current Node. + // For example, 'ydb-stable-24-1'. + string version = 9; } message ListClusterNodesRequest { @@ -85,6 +90,8 @@ message MaintenanceTaskOptions { // Availability mode. AvailabilityMode availability_mode = 3; bool dry_run = 4; + // Priority of the task. Lower value indicates higher priority. + int32 priority = 5 [(value) = "[-100; 100]"]; } // Used to describe the scope of a single action. diff --git a/ydb/public/api/protos/ydb_discovery.proto b/ydb/public/api/protos/ydb_discovery.proto index 4c94372eb714..3b388db55c21 100644 --- a/ydb/public/api/protos/ydb_discovery.proto +++ b/ydb/public/api/protos/ydb_discovery.proto @@ -103,6 +103,8 @@ message NodeRegistrationResult { repeated NodeInfo nodes = 4; optional uint64 scope_tablet_id = 5; optional uint64 scope_path_id = 6; + // A unique name within the tenant generated by the system + optional string node_name = 7; } message NodeRegistrationResponse { diff --git a/ydb/public/api/protos/ydb_persqueue_v1.proto b/ydb/public/api/protos/ydb_persqueue_v1.proto index 5262d50f3079..e4eecdbdee2f 100644 --- a/ydb/public/api/protos/ydb_persqueue_v1.proto +++ b/ydb/public/api/protos/ydb_persqueue_v1.proto @@ -3,6 +3,7 @@ import "ydb/public/api/protos/ydb_operation.proto"; import "ydb/public/api/protos/ydb_scheme.proto"; import "ydb/public/api/protos/ydb_status_codes.proto"; import "ydb/public/api/protos/ydb_issue_message.proto"; +import "ydb/public/api/protos/annotations/sensitive.proto"; import "ydb/public/api/protos/annotations/validation.proto"; package Ydb.PersQueue.V1; @@ -38,7 +39,7 @@ message OffsetsRange { // In-session reauthentication and reauthorization, lets user increase session lifetime. You should wait for 'update_token_response' before sending next 'update_token_request'. message UpdateTokenRequest { - string token = 1; + string token = 1 [(Ydb.sensitive) = true]; } message UpdateTokenResponse { @@ -788,7 +789,7 @@ message MigrationStreamingReadClientMessage { } // User credentials if update is needed or empty string. - bytes token = 20; + bytes token = 20 [(Ydb.sensitive) = true]; } /** @@ -1073,8 +1074,8 @@ message Credentials { string service_account_key = 2; } oneof credentials { - string oauth_token = 1; - string jwt_params = 2; + string oauth_token = 1 [(Ydb.sensitive) = true]; + string jwt_params = 2 [(Ydb.sensitive) = true]; Iam iam = 3; } } diff --git a/ydb/public/api/protos/ydb_table.proto b/ydb/public/api/protos/ydb_table.proto index a5d1abcb483c..f48a9695c442 100644 --- a/ydb/public/api/protos/ydb_table.proto +++ b/ydb/public/api/protos/ydb_table.proto @@ -333,6 +333,21 @@ message TableProfile { CachingPolicy caching_policy = 7; } +message SequenceDescription { + message SetVal { + optional sint64 next_value = 1; + optional bool next_used = 2; + } + optional string name = 1; // mandatorys + optional sint64 min_value = 2; // minimum value, defaults to 1 or Min<i64> + optional sint64 max_value = 3; // maximum value, defaults to Max<i64> or -1 + optional sint64 start_value = 4; // start value, defaults to min_value + optional uint64 cache = 5; // number of items to cache, defaults to 1 + optional sint64 increment = 6; // increment at each call, defaults to 1 + optional bool cycle = 7; // true when cycle on overflow is allowed + optional SetVal set_val = 8; // set_val(next_value, next_used) is executed atomically when creating +} + message ColumnMeta { // Name of column string name = 1; @@ -342,6 +357,11 @@ message ColumnMeta { string family = 3; // Column nullability optional bool not_null = 4; + // Column default value option + oneof default_value { + TypedValue from_literal = 5; + SequenceDescription from_sequence = 6; + } } message DateTypeColumnModeSettings { @@ -1070,6 +1090,7 @@ message ReadTableRequest { // greater than any of the limits uint64 batch_limit_bytes = 8; uint64 batch_limit_rows = 9; + Ydb.FeatureFlag.Status return_not_null_data_as_optional = 10; } // ReadTable doesn't use Operation, returns result directly diff --git a/ydb/public/api/protos/ydb_topic.proto b/ydb/public/api/protos/ydb_topic.proto index 8b5c0aac9cf4..9bcf13e6972b 100644 --- a/ydb/public/api/protos/ydb_topic.proto +++ b/ydb/public/api/protos/ydb_topic.proto @@ -3,6 +3,7 @@ import "ydb/public/api/protos/ydb_operation.proto"; import "ydb/public/api/protos/ydb_scheme.proto"; import "ydb/public/api/protos/ydb_status_codes.proto"; import "ydb/public/api/protos/ydb_issue_message.proto"; +import "ydb/public/api/protos/annotations/sensitive.proto"; import "ydb/public/api/protos/annotations/validation.proto"; import "google/protobuf/duration.proto"; @@ -43,7 +44,7 @@ message OffsetsRange { // In-session reauthentication and reauthorization, lets user increase session lifetime. // Client should wait for UpdateTokenResponse before sending next UpdateTokenRequest. message UpdateTokenRequest { - string token = 1; + string token = 1 [(Ydb.sensitive) = true]; } message UpdateTokenResponse { @@ -167,7 +168,7 @@ message StreamWriteMessage { // Explicit partition id to write to. int64 partition_id = 6; // Explicit partition location to write to. - PartitionWithGeneration partition_with_generation = 8; + PartitionWithGeneration partition_with_generation = 8; } // Message metadata. Overall size is limited to 4096 symbols (all keys and values combined). repeated MetadataItem metadata_items = 7 [(Ydb.size).le = 1000]; @@ -534,7 +535,7 @@ message StreamReadMessage { // Flag of graceful stop, used only when InitRequest.direct_read is true // Client must pass this value unchanged from the StopPartitionSessionRequest. - // Server can sent two StopPartitionSessionRequests, the first with graceful=true, the second with graceful=false. The client must answer both of them. + // Server can sent two StopPartitionSessionRequests, the first with graceful=true, the second with graceful=false. The client must answer both of them. bool graceful = 2; } @@ -563,22 +564,22 @@ message StreamReadMessage { // Messages for bidirectional streaming rpc StreamDirectRead message StreamDirectReadMessage { - // Client-server message for direct read session. + // Client-server message for direct read session. // InitDirectRead - command from client to create and start a direct read session. // StartDirectReadPartitionSession - command from client to create and start a direct read partition session. - // UpdateTokenRequest - request to update auth token + // UpdateTokenRequest - request to update auth token message FromClient { oneof client_message { InitDirectRead init_direct_read = 1; StartDirectReadPartitionSession start_direct_read_partition_session = 2; - UpdateTokenRequest update_token_request = 3; + UpdateTokenRequest update_token_request = 3; } } - // Server-client message for direct read session. + // Server-client message for direct read session. // DirectReadResponse - portion of message data. // StopDirectReadPartitionSession - command from server to stop a direct read partition session. - // UpdateTokenResponse - acknowledgment of token update. + // UpdateTokenResponse - acknowledgment of token update. message FromServer { // Server status of response. Ydb.StatusIds.StatusCode status = 1; @@ -642,13 +643,13 @@ message StreamDirectReadMessage { message DirectReadResponse { // Partition session identifier. int64 partition_session_id = 1; - + // Read request identifier. int64 direct_read_id = 2; // Messages data StreamReadMessage.ReadResponse.PartitionData partition_data = 3; - } + } } message TransactionIdentity { @@ -843,7 +844,7 @@ message CreateTopicRequest { // How long data in partition should be stored. Must be greater than 0 and less than limit for this database. // Default limit - 36 hours. google.protobuf.Duration retention_period = 4; - + // How much data in partition should be stored. Must be greater than 0 and less than limit for this database. // Zero value means infinite limit. int64 retention_storage_mb = 5 [(Ydb.value) = ">= 0"]; @@ -923,7 +924,7 @@ message DescribeTopicResult { // Settings for partitioning PartitioningSettings partitioning_settings = 2; - + // Partitions description. repeated PartitionInfo partitions = 3; @@ -932,7 +933,7 @@ message DescribeTopicResult { // // How long data in partition should be stored. google.protobuf.Duration retention_period = 4; - + // How much data in partition should be stored. // Zero value means infinite limit. int64 retention_storage_mb = 5; @@ -943,7 +944,7 @@ message DescribeTopicResult { // Writes with codec not from this list are forbidden. // If empty, codec compatibility check for the topic is disabled. SupportedCodecs supported_codecs = 7; - + // Partition write speed in bytes per second. // Zero value means default limit: 1 MB per second. int64 partition_write_speed_bytes_per_second = 8; @@ -1135,7 +1136,7 @@ message AlterTopicRequest { // How long data in partition should be stored. Must be greater than 0 and less than limit for this database. // Default limit - 36 hours. google.protobuf.Duration set_retention_period = 4; - + // How much data in partition should be stored. Must be greater than 0 and less than limit for this database. optional int64 set_retention_storage_mb = 5 [(Ydb.value) = ">= 0"]; @@ -1148,7 +1149,7 @@ message AlterTopicRequest { // Partition write speed in bytes per second. Must be less than database limit. Default limit - 1 MB/s. optional int64 set_partition_write_speed_bytes_per_second = 8 [(Ydb.value) = ">= 0"]; - + // Burst size for write in partition, in bytes. Must be less than database limit. Default limit - 1 MB. optional int64 set_partition_write_burst_bytes = 9 [(Ydb.value) = ">= 0"]; diff --git a/ydb/public/lib/base/CMakeLists.darwin-arm64.txt b/ydb/public/lib/base/CMakeLists.darwin-arm64.txt index d721624bf8ef..e5cde95faf36 100644 --- a/ydb/public/lib/base/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/base/CMakeLists.darwin-arm64.txt @@ -18,5 +18,8 @@ target_link_libraries(public-lib-base PUBLIC ydb-core-protos ) target_sources(public-lib-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus_status.h + ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus.cpp ) diff --git a/ydb/public/lib/base/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/base/CMakeLists.darwin-x86_64.txt index d721624bf8ef..e5cde95faf36 100644 --- a/ydb/public/lib/base/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/base/CMakeLists.darwin-x86_64.txt @@ -18,5 +18,8 @@ target_link_libraries(public-lib-base PUBLIC ydb-core-protos ) target_sources(public-lib-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus_status.h + ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus.cpp ) diff --git a/ydb/public/lib/base/CMakeLists.linux-aarch64.txt b/ydb/public/lib/base/CMakeLists.linux-aarch64.txt index da7ca2cd24af..1e329d7c7bec 100644 --- a/ydb/public/lib/base/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/base/CMakeLists.linux-aarch64.txt @@ -19,5 +19,8 @@ target_link_libraries(public-lib-base PUBLIC ydb-core-protos ) target_sources(public-lib-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus_status.h + ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus.cpp ) diff --git a/ydb/public/lib/base/CMakeLists.linux-x86_64.txt b/ydb/public/lib/base/CMakeLists.linux-x86_64.txt index da7ca2cd24af..1e329d7c7bec 100644 --- a/ydb/public/lib/base/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/base/CMakeLists.linux-x86_64.txt @@ -19,5 +19,8 @@ target_link_libraries(public-lib-base PUBLIC ydb-core-protos ) target_sources(public-lib-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus_status.h + ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus.cpp ) diff --git a/ydb/public/lib/base/CMakeLists.windows-x86_64.txt b/ydb/public/lib/base/CMakeLists.windows-x86_64.txt index d721624bf8ef..e5cde95faf36 100644 --- a/ydb/public/lib/base/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/base/CMakeLists.windows-x86_64.txt @@ -18,5 +18,8 @@ target_link_libraries(public-lib-base PUBLIC ydb-core-protos ) target_sources(public-lib-base PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/defs.h + ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus_status.h + ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/base/msgbus.cpp ) diff --git a/ydb/public/lib/deprecated/client/CMakeLists.darwin-arm64.txt b/ydb/public/lib/deprecated/client/CMakeLists.darwin-arm64.txt index d3b179d754a3..f26c1ad5b0d0 100644 --- a/ydb/public/lib/deprecated/client/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/deprecated/client/CMakeLists.darwin-arm64.txt @@ -16,7 +16,8 @@ target_link_libraries(lib-deprecated-client PUBLIC public-lib-base ) target_sources(lib-deprecated-client PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client.h + ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client_config.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_player.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/grpc_client.cpp ) diff --git a/ydb/public/lib/deprecated/client/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/deprecated/client/CMakeLists.darwin-x86_64.txt index d3b179d754a3..f26c1ad5b0d0 100644 --- a/ydb/public/lib/deprecated/client/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/deprecated/client/CMakeLists.darwin-x86_64.txt @@ -16,7 +16,8 @@ target_link_libraries(lib-deprecated-client PUBLIC public-lib-base ) target_sources(lib-deprecated-client PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client.h + ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client_config.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_player.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/grpc_client.cpp ) diff --git a/ydb/public/lib/deprecated/client/CMakeLists.linux-aarch64.txt b/ydb/public/lib/deprecated/client/CMakeLists.linux-aarch64.txt index f0b5b6da861c..ee11525e30df 100644 --- a/ydb/public/lib/deprecated/client/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/deprecated/client/CMakeLists.linux-aarch64.txt @@ -17,7 +17,8 @@ target_link_libraries(lib-deprecated-client PUBLIC public-lib-base ) target_sources(lib-deprecated-client PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client.h + ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client_config.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_player.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/grpc_client.cpp ) diff --git a/ydb/public/lib/deprecated/client/CMakeLists.linux-x86_64.txt b/ydb/public/lib/deprecated/client/CMakeLists.linux-x86_64.txt index f0b5b6da861c..ee11525e30df 100644 --- a/ydb/public/lib/deprecated/client/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/deprecated/client/CMakeLists.linux-x86_64.txt @@ -17,7 +17,8 @@ target_link_libraries(lib-deprecated-client PUBLIC public-lib-base ) target_sources(lib-deprecated-client PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client.h + ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client_config.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_player.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/grpc_client.cpp ) diff --git a/ydb/public/lib/deprecated/client/CMakeLists.windows-x86_64.txt b/ydb/public/lib/deprecated/client/CMakeLists.windows-x86_64.txt index d3b179d754a3..f26c1ad5b0d0 100644 --- a/ydb/public/lib/deprecated/client/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/deprecated/client/CMakeLists.windows-x86_64.txt @@ -16,7 +16,8 @@ target_link_libraries(lib-deprecated-client PUBLIC public-lib-base ) target_sources(lib-deprecated-client PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client.h + ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client_config.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_client.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/msgbus_player.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/client/grpc_client.cpp ) diff --git a/ydb/public/lib/deprecated/kicli/CMakeLists.darwin-arm64.txt b/ydb/public/lib/deprecated/kicli/CMakeLists.darwin-arm64.txt index 875785e53f17..6b2bece8356d 100644 --- a/ydb/public/lib/deprecated/kicli/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/deprecated/kicli/CMakeLists.darwin-arm64.txt @@ -28,6 +28,7 @@ target_link_libraries(lib-deprecated-kicli PUBLIC yql-public-issue ) target_sources(lib-deprecated-kicli PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/kicli.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/configurator.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/dynamic_node.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/error.cpp diff --git a/ydb/public/lib/deprecated/kicli/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/deprecated/kicli/CMakeLists.darwin-x86_64.txt index 875785e53f17..6b2bece8356d 100644 --- a/ydb/public/lib/deprecated/kicli/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/deprecated/kicli/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,7 @@ target_link_libraries(lib-deprecated-kicli PUBLIC yql-public-issue ) target_sources(lib-deprecated-kicli PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/kicli.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/configurator.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/dynamic_node.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/error.cpp diff --git a/ydb/public/lib/deprecated/kicli/CMakeLists.linux-aarch64.txt b/ydb/public/lib/deprecated/kicli/CMakeLists.linux-aarch64.txt index a3a0449ffffc..3e350e2b96c5 100644 --- a/ydb/public/lib/deprecated/kicli/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/deprecated/kicli/CMakeLists.linux-aarch64.txt @@ -29,6 +29,7 @@ target_link_libraries(lib-deprecated-kicli PUBLIC yql-public-issue ) target_sources(lib-deprecated-kicli PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/kicli.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/configurator.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/dynamic_node.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/error.cpp diff --git a/ydb/public/lib/deprecated/kicli/CMakeLists.linux-x86_64.txt b/ydb/public/lib/deprecated/kicli/CMakeLists.linux-x86_64.txt index a3a0449ffffc..3e350e2b96c5 100644 --- a/ydb/public/lib/deprecated/kicli/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/deprecated/kicli/CMakeLists.linux-x86_64.txt @@ -29,6 +29,7 @@ target_link_libraries(lib-deprecated-kicli PUBLIC yql-public-issue ) target_sources(lib-deprecated-kicli PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/kicli.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/configurator.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/dynamic_node.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/error.cpp diff --git a/ydb/public/lib/deprecated/kicli/CMakeLists.windows-x86_64.txt b/ydb/public/lib/deprecated/kicli/CMakeLists.windows-x86_64.txt index 875785e53f17..6b2bece8356d 100644 --- a/ydb/public/lib/deprecated/kicli/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/deprecated/kicli/CMakeLists.windows-x86_64.txt @@ -28,6 +28,7 @@ target_link_libraries(lib-deprecated-kicli PUBLIC yql-public-issue ) target_sources(lib-deprecated-kicli PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/kicli.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/configurator.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/dynamic_node.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/error.cpp diff --git a/ydb/public/lib/deprecated/kicli/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/deprecated/kicli/ut/CMakeLists.darwin-arm64.txt index 5618b3cd0462..88976e0b9299 100644 --- a/ydb/public/lib/deprecated/kicli/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/deprecated/kicli/ut/CMakeLists.darwin-arm64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-public-lib-deprecated-kicli-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-lib-deprecated-kicli-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/cpp_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/deprecated/kicli/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/deprecated/kicli/ut/CMakeLists.darwin-x86_64.txt index 87f47b6c4605..6ef05f88cda1 100644 --- a/ydb/public/lib/deprecated/kicli/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/deprecated/kicli/ut/CMakeLists.darwin-x86_64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-public-lib-deprecated-kicli-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-lib-deprecated-kicli-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/cpp_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/deprecated/kicli/ut/CMakeLists.linux-aarch64.txt b/ydb/public/lib/deprecated/kicli/ut/CMakeLists.linux-aarch64.txt index 05d14b80658f..e00caeca259e 100644 --- a/ydb/public/lib/deprecated/kicli/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/deprecated/kicli/ut/CMakeLists.linux-aarch64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-public-lib-deprecated-kicli-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-deprecated-kicli-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/cpp_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/deprecated/kicli/ut/CMakeLists.linux-x86_64.txt b/ydb/public/lib/deprecated/kicli/ut/CMakeLists.linux-x86_64.txt index e37ffae6edbc..b7382dd9c60f 100644 --- a/ydb/public/lib/deprecated/kicli/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/deprecated/kicli/ut/CMakeLists.linux-x86_64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-public-lib-deprecated-kicli-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-deprecated-kicli-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/deprecated/kicli/cpp_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/deprecated/kicli/ut/CMakeLists.windows-x86_64.txt b/ydb/public/lib/deprecated/kicli/ut/CMakeLists.windows-x86_64.txt index c0d41371f0af..06d98414e310 100644 --- a/ydb/public/lib/deprecated/kicli/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/deprecated/kicli/ut/CMakeLists.windows-x86_64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/idx_test/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/idx_test/ut/CMakeLists.darwin-arm64.txt index 3eab6d6fa468..e30b9632aa75 100644 --- a/ydb/public/lib/idx_test/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/idx_test/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-public-lib-idx_test-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-lib-idx_test-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/idx_test/ut/idx_test_data_provider_ut.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/idx_test/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/idx_test/ut/CMakeLists.darwin-x86_64.txt index ec517de8b95a..083430ec549e 100644 --- a/ydb/public/lib/idx_test/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/idx_test/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-public-lib-idx_test-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-lib-idx_test-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/idx_test/ut/idx_test_data_provider_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/idx_test/ut/CMakeLists.linux-aarch64.txt b/ydb/public/lib/idx_test/ut/CMakeLists.linux-aarch64.txt index 134f617db177..fb516f707692 100644 --- a/ydb/public/lib/idx_test/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/idx_test/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-public-lib-idx_test-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-idx_test-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/idx_test/ut/idx_test_data_provider_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/idx_test/ut/CMakeLists.linux-x86_64.txt b/ydb/public/lib/idx_test/ut/CMakeLists.linux-x86_64.txt index 041a5f24f7e4..529c094aebb0 100644 --- a/ydb/public/lib/idx_test/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/idx_test/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-public-lib-idx_test-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-idx_test-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/idx_test/ut/idx_test_data_provider_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/idx_test/ut/CMakeLists.windows-x86_64.txt b/ydb/public/lib/idx_test/ut/CMakeLists.windows-x86_64.txt index e691ab819cfd..620912b583bd 100644 --- a/ydb/public/lib/idx_test/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/idx_test/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/json_value/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/json_value/ut/CMakeLists.darwin-arm64.txt index 12d78895c8c5..32d0463fa250 100644 --- a/ydb/public/lib/json_value/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/json_value/ut/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-public-lib-json_value-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-lib-json_value-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/json_value/ydb_json_value_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/json_value/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/json_value/ut/CMakeLists.darwin-x86_64.txt index 49dddabd4d40..1fd6b0d97e31 100644 --- a/ydb/public/lib/json_value/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/json_value/ut/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(ydb-public-lib-json_value-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-lib-json_value-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/json_value/ydb_json_value_ut.cpp @@ -57,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/json_value/ut/CMakeLists.linux-aarch64.txt b/ydb/public/lib/json_value/ut/CMakeLists.linux-aarch64.txt index dbb9b04ed126..4c3a429177ae 100644 --- a/ydb/public/lib/json_value/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/json_value/ut/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-public-lib-json_value-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-json_value-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/json_value/ydb_json_value_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/json_value/ut/CMakeLists.linux-x86_64.txt b/ydb/public/lib/json_value/ut/CMakeLists.linux-x86_64.txt index 4bf278ad0f7a..8a6967e48f28 100644 --- a/ydb/public/lib/json_value/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/json_value/ut/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(ydb-public-lib-json_value-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-json_value-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/json_value/ydb_json_value_ut.cpp @@ -61,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/json_value/ut/CMakeLists.windows-x86_64.txt b/ydb/public/lib/json_value/ut/CMakeLists.windows-x86_64.txt index 493d8cf2eaa2..3acd3defed96 100644 --- a/ydb/public/lib/json_value/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/json_value/ut/CMakeLists.windows-x86_64.txt @@ -50,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/jwt/CMakeLists.darwin-arm64.txt b/ydb/public/lib/jwt/CMakeLists.darwin-arm64.txt index a8da4b49f7b5..fcaef2fe78bb 100644 --- a/ydb/public/lib/jwt/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/jwt/CMakeLists.darwin-arm64.txt @@ -16,5 +16,6 @@ target_link_libraries(public-lib-jwt PUBLIC impl-ydb_internal-common ) target_sources(public-lib-jwt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/jwt/jwt.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/jwt/jwt.cpp ) diff --git a/ydb/public/lib/jwt/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/jwt/CMakeLists.darwin-x86_64.txt index a8da4b49f7b5..fcaef2fe78bb 100644 --- a/ydb/public/lib/jwt/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/jwt/CMakeLists.darwin-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(public-lib-jwt PUBLIC impl-ydb_internal-common ) target_sources(public-lib-jwt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/jwt/jwt.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/jwt/jwt.cpp ) diff --git a/ydb/public/lib/jwt/CMakeLists.linux-aarch64.txt b/ydb/public/lib/jwt/CMakeLists.linux-aarch64.txt index 276c34d4fb00..baab181cd036 100644 --- a/ydb/public/lib/jwt/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/jwt/CMakeLists.linux-aarch64.txt @@ -17,5 +17,6 @@ target_link_libraries(public-lib-jwt PUBLIC impl-ydb_internal-common ) target_sources(public-lib-jwt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/jwt/jwt.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/jwt/jwt.cpp ) diff --git a/ydb/public/lib/jwt/CMakeLists.linux-x86_64.txt b/ydb/public/lib/jwt/CMakeLists.linux-x86_64.txt index 276c34d4fb00..baab181cd036 100644 --- a/ydb/public/lib/jwt/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/jwt/CMakeLists.linux-x86_64.txt @@ -17,5 +17,6 @@ target_link_libraries(public-lib-jwt PUBLIC impl-ydb_internal-common ) target_sources(public-lib-jwt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/jwt/jwt.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/jwt/jwt.cpp ) diff --git a/ydb/public/lib/jwt/CMakeLists.windows-x86_64.txt b/ydb/public/lib/jwt/CMakeLists.windows-x86_64.txt index a8da4b49f7b5..fcaef2fe78bb 100644 --- a/ydb/public/lib/jwt/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/jwt/CMakeLists.windows-x86_64.txt @@ -16,5 +16,6 @@ target_link_libraries(public-lib-jwt PUBLIC impl-ydb_internal-common ) target_sources(public-lib-jwt PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/jwt/jwt.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/jwt/jwt.cpp ) diff --git a/ydb/public/lib/operation_id/protos/CMakeLists.darwin-arm64.txt b/ydb/public/lib/operation_id/protos/CMakeLists.darwin-arm64.txt index a800067d564c..aa5f6751595f 100644 --- a/ydb/public/lib/operation_id/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/operation_id/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(lib-operation_id-protos PUBLIC target_proto_messages(lib-operation_id-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/operation_id/protos/operation_id.proto ) +target_sources(lib-operation_id-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/lib/operation_id/protos/operation_id.pb.h +) target_proto_addincls(lib-operation_id-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/lib/operation_id/protos/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/operation_id/protos/CMakeLists.darwin-x86_64.txt index a800067d564c..aa5f6751595f 100644 --- a/ydb/public/lib/operation_id/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/operation_id/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(lib-operation_id-protos PUBLIC target_proto_messages(lib-operation_id-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/operation_id/protos/operation_id.proto ) +target_sources(lib-operation_id-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/lib/operation_id/protos/operation_id.pb.h +) target_proto_addincls(lib-operation_id-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/lib/operation_id/protos/CMakeLists.linux-aarch64.txt b/ydb/public/lib/operation_id/protos/CMakeLists.linux-aarch64.txt index d316cb2ab758..d3c3ee55d144 100644 --- a/ydb/public/lib/operation_id/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/operation_id/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(lib-operation_id-protos PUBLIC target_proto_messages(lib-operation_id-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/operation_id/protos/operation_id.proto ) +target_sources(lib-operation_id-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/lib/operation_id/protos/operation_id.pb.h +) target_proto_addincls(lib-operation_id-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/lib/operation_id/protos/CMakeLists.linux-x86_64.txt b/ydb/public/lib/operation_id/protos/CMakeLists.linux-x86_64.txt index d316cb2ab758..d3c3ee55d144 100644 --- a/ydb/public/lib/operation_id/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/operation_id/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(lib-operation_id-protos PUBLIC target_proto_messages(lib-operation_id-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/operation_id/protos/operation_id.proto ) +target_sources(lib-operation_id-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/lib/operation_id/protos/operation_id.pb.h +) target_proto_addincls(lib-operation_id-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/lib/operation_id/protos/CMakeLists.windows-x86_64.txt b/ydb/public/lib/operation_id/protos/CMakeLists.windows-x86_64.txt index a800067d564c..aa5f6751595f 100644 --- a/ydb/public/lib/operation_id/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/operation_id/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(lib-operation_id-protos PUBLIC target_proto_messages(lib-operation_id-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/operation_id/protos/operation_id.proto ) +target_sources(lib-operation_id-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/lib/operation_id/protos/operation_id.pb.h +) target_proto_addincls(lib-operation_id-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/lib/operation_id/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/operation_id/ut/CMakeLists.darwin-arm64.txt index e9699b6cb300..b2c4cf6cfaf1 100644 --- a/ydb/public/lib/operation_id/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/operation_id/ut/CMakeLists.darwin-arm64.txt @@ -51,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/operation_id/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/operation_id/ut/CMakeLists.darwin-x86_64.txt index 499cf1c0918a..0c5bc9441904 100644 --- a/ydb/public/lib/operation_id/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/operation_id/ut/CMakeLists.darwin-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/operation_id/ut/CMakeLists.linux-aarch64.txt b/ydb/public/lib/operation_id/ut/CMakeLists.linux-aarch64.txt index c45408716466..b41f961d0316 100644 --- a/ydb/public/lib/operation_id/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/operation_id/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-public-lib-operation_id-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-operation_id-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/operation_id/operation_id_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/operation_id/ut/CMakeLists.linux-x86_64.txt b/ydb/public/lib/operation_id/ut/CMakeLists.linux-x86_64.txt index 75e1b10e6ec1..1dd45fa877a6 100644 --- a/ydb/public/lib/operation_id/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/operation_id/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-public-lib-operation_id-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-operation_id-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/operation_id/operation_id_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/operation_id/ut/CMakeLists.windows-x86_64.txt b/ydb/public/lib/operation_id/ut/CMakeLists.windows-x86_64.txt index a42b3c0cf571..cf7712180187 100644 --- a/ydb/public/lib/operation_id/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/operation_id/ut/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/scheme_types/CMakeLists.darwin-arm64.txt b/ydb/public/lib/scheme_types/CMakeLists.darwin-arm64.txt index 80504edf4858..942913938f2a 100644 --- a/ydb/public/lib/scheme_types/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/scheme_types/CMakeLists.darwin-arm64.txt @@ -14,5 +14,6 @@ target_link_libraries(public-lib-scheme_types PUBLIC yql-public-types ) target_sources(public-lib-scheme_types PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/scheme_types/scheme_type_id.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/scheme_types/scheme_type_id.cpp ) diff --git a/ydb/public/lib/scheme_types/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/scheme_types/CMakeLists.darwin-x86_64.txt index 80504edf4858..942913938f2a 100644 --- a/ydb/public/lib/scheme_types/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/scheme_types/CMakeLists.darwin-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(public-lib-scheme_types PUBLIC yql-public-types ) target_sources(public-lib-scheme_types PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/scheme_types/scheme_type_id.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/scheme_types/scheme_type_id.cpp ) diff --git a/ydb/public/lib/scheme_types/CMakeLists.linux-aarch64.txt b/ydb/public/lib/scheme_types/CMakeLists.linux-aarch64.txt index 48f32db0226e..183b76c48983 100644 --- a/ydb/public/lib/scheme_types/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/scheme_types/CMakeLists.linux-aarch64.txt @@ -15,5 +15,6 @@ target_link_libraries(public-lib-scheme_types PUBLIC yql-public-types ) target_sources(public-lib-scheme_types PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/scheme_types/scheme_type_id.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/scheme_types/scheme_type_id.cpp ) diff --git a/ydb/public/lib/scheme_types/CMakeLists.linux-x86_64.txt b/ydb/public/lib/scheme_types/CMakeLists.linux-x86_64.txt index 48f32db0226e..183b76c48983 100644 --- a/ydb/public/lib/scheme_types/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/scheme_types/CMakeLists.linux-x86_64.txt @@ -15,5 +15,6 @@ target_link_libraries(public-lib-scheme_types PUBLIC yql-public-types ) target_sources(public-lib-scheme_types PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/scheme_types/scheme_type_id.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/scheme_types/scheme_type_id.cpp ) diff --git a/ydb/public/lib/scheme_types/CMakeLists.windows-x86_64.txt b/ydb/public/lib/scheme_types/CMakeLists.windows-x86_64.txt index 80504edf4858..942913938f2a 100644 --- a/ydb/public/lib/scheme_types/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/scheme_types/CMakeLists.windows-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(public-lib-scheme_types PUBLIC yql-public-types ) target_sources(public-lib-scheme_types PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/scheme_types/scheme_type_id.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/scheme_types/scheme_type_id.cpp ) diff --git a/ydb/public/lib/validation/CMakeLists.linux-aarch64.txt b/ydb/public/lib/validation/CMakeLists.linux-aarch64.txt index 8cc45373dc94..7175cd4da4e1 100644 --- a/ydb/public/lib/validation/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/validation/CMakeLists.linux-aarch64.txt @@ -22,9 +22,6 @@ target_link_options(validation PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(validation PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/validation/helpers.cpp diff --git a/ydb/public/lib/validation/CMakeLists.linux-x86_64.txt b/ydb/public/lib/validation/CMakeLists.linux-x86_64.txt index f6191a1c2eaf..d08f491bb09f 100644 --- a/ydb/public/lib/validation/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/validation/CMakeLists.linux-x86_64.txt @@ -23,9 +23,6 @@ target_link_options(validation PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(validation PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/validation/helpers.cpp diff --git a/ydb/public/lib/validation/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/validation/ut/CMakeLists.darwin-arm64.txt index 268969d25838..437791af5a76 100644 --- a/ydb/public/lib/validation/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/validation/ut/CMakeLists.darwin-arm64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/validation/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/validation/ut/CMakeLists.darwin-x86_64.txt index 560a5fabf3f0..a77131c9bfc5 100644 --- a/ydb/public/lib/validation/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/validation/ut/CMakeLists.darwin-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/validation/ut/CMakeLists.linux-aarch64.txt b/ydb/public/lib/validation/ut/CMakeLists.linux-aarch64.txt index 1aee1aa3c239..a8ac4e1038d8 100644 --- a/ydb/public/lib/validation/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/validation/ut/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-public-lib-validation-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-validation-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/validation/ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/validation/ut/CMakeLists.linux-x86_64.txt b/ydb/public/lib/validation/ut/CMakeLists.linux-x86_64.txt index 4ac352e78ccd..05b9aef7773d 100644 --- a/ydb/public/lib/validation/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/validation/ut/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-public-lib-validation-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-validation-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/validation/ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/validation/ut/CMakeLists.windows-x86_64.txt b/ydb/public/lib/validation/ut/CMakeLists.windows-x86_64.txt index ac4d4fcbb524..e428412faf14 100644 --- a/ydb/public/lib/validation/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/validation/ut/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/validation/ut/protos/CMakeLists.darwin-arm64.txt b/ydb/public/lib/validation/ut/protos/CMakeLists.darwin-arm64.txt index 7f7553fb8036..81f4ae337573 100644 --- a/ydb/public/lib/validation/ut/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/validation/ut/protos/CMakeLists.darwin-arm64.txt @@ -35,6 +35,9 @@ target_link_libraries(validation-ut-protos PUBLIC target_proto_messages(validation-ut-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/validation/ut/protos/validation_test.proto ) +target_sources(validation-ut-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/lib/validation/ut/protos/validation_test.pb.h +) target_proto_addincls(validation-ut-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/lib/validation/ut/protos/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/validation/ut/protos/CMakeLists.darwin-x86_64.txt index 7f7553fb8036..81f4ae337573 100644 --- a/ydb/public/lib/validation/ut/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/validation/ut/protos/CMakeLists.darwin-x86_64.txt @@ -35,6 +35,9 @@ target_link_libraries(validation-ut-protos PUBLIC target_proto_messages(validation-ut-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/validation/ut/protos/validation_test.proto ) +target_sources(validation-ut-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/lib/validation/ut/protos/validation_test.pb.h +) target_proto_addincls(validation-ut-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/lib/validation/ut/protos/CMakeLists.linux-aarch64.txt b/ydb/public/lib/validation/ut/protos/CMakeLists.linux-aarch64.txt index 880fa86a9bcb..c7cc0e0a9804 100644 --- a/ydb/public/lib/validation/ut/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/validation/ut/protos/CMakeLists.linux-aarch64.txt @@ -36,6 +36,9 @@ target_link_libraries(validation-ut-protos PUBLIC target_proto_messages(validation-ut-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/validation/ut/protos/validation_test.proto ) +target_sources(validation-ut-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/lib/validation/ut/protos/validation_test.pb.h +) target_proto_addincls(validation-ut-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/lib/validation/ut/protos/CMakeLists.linux-x86_64.txt b/ydb/public/lib/validation/ut/protos/CMakeLists.linux-x86_64.txt index 880fa86a9bcb..c7cc0e0a9804 100644 --- a/ydb/public/lib/validation/ut/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/validation/ut/protos/CMakeLists.linux-x86_64.txt @@ -36,6 +36,9 @@ target_link_libraries(validation-ut-protos PUBLIC target_proto_messages(validation-ut-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/validation/ut/protos/validation_test.proto ) +target_sources(validation-ut-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/lib/validation/ut/protos/validation_test.pb.h +) target_proto_addincls(validation-ut-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/lib/validation/ut/protos/CMakeLists.windows-x86_64.txt b/ydb/public/lib/validation/ut/protos/CMakeLists.windows-x86_64.txt index 7f7553fb8036..81f4ae337573 100644 --- a/ydb/public/lib/validation/ut/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/validation/ut/protos/CMakeLists.windows-x86_64.txt @@ -35,6 +35,9 @@ target_link_libraries(validation-ut-protos PUBLIC target_proto_messages(validation-ut-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/validation/ut/protos/validation_test.proto ) +target_sources(validation-ut-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/public/lib/validation/ut/protos/validation_test.pb.h +) target_proto_addincls(validation-ut-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-arm64.txt index 7715907a5798..afa22114a896 100644 --- a/ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-arm64.txt @@ -19,6 +19,7 @@ add_library(clicommands) target_link_libraries(clicommands PUBLIC contrib-libs-cxxsupp yutil + contrib-libs-fmt restricted-patched-replxx cpp-histogram-hdr cpp-protobuf-json @@ -26,6 +27,7 @@ target_link_libraries(clicommands PUBLIC cpp-threading-local_executor kikimr_backup ydb-library-workload + library-yaml_config-public public-lib-operation_id public-lib-stat_visualization common @@ -54,17 +56,16 @@ target_sources(clicommands PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/interactive/line_reader.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/benchmark_utils.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/kv_workload.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/stock_workload.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_read_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_write_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_readwrite_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpcc_workload.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/query_workload.cpp + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_admin.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_sdk_core_access.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_command.cpp + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_dynamic_config.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_profile.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_root_common.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_service_auth.cpp @@ -86,6 +87,7 @@ add_global_library_for(clicommands.global clicommands) target_link_libraries(clicommands.global PUBLIC contrib-libs-cxxsupp yutil + contrib-libs-fmt restricted-patched-replxx cpp-histogram-hdr cpp-protobuf-json @@ -93,6 +95,7 @@ target_link_libraries(clicommands.global PUBLIC cpp-threading-local_executor kikimr_backup ydb-library-workload + library-yaml_config-public public-lib-operation_id public-lib-stat_visualization common @@ -117,14 +120,15 @@ target_link_libraries(clicommands.global PUBLIC library-cpp-resource ) target_sources(clicommands.global PRIVATE - ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/6b4a693856d7dfaada0935e4f9b61c1b.cpp + ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/93bc55e26f576673786aed13327b5397.cpp ) resources(clicommands.global - ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/6b4a693856d7dfaada0935e4f9b61c1b.cpp + ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/93bc55e26f576673786aed13327b5397.cpp INPUTS ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_queries.sql ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_schema.sql ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch_schema.sql + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch_queries.sql ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q0.result ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q1.result ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q2.result @@ -172,6 +176,7 @@ resources(clicommands.global click_bench_queries.sql click_bench_schema.sql tpch_schema.sql + tpch_queries.sql q0.result q1.result q2.result diff --git a/ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-x86_64.txt index 3639c457ab9b..afa22114a896 100644 --- a/ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/ydb_cli/commands/CMakeLists.darwin-x86_64.txt @@ -19,6 +19,7 @@ add_library(clicommands) target_link_libraries(clicommands PUBLIC contrib-libs-cxxsupp yutil + contrib-libs-fmt restricted-patched-replxx cpp-histogram-hdr cpp-protobuf-json @@ -26,6 +27,7 @@ target_link_libraries(clicommands PUBLIC cpp-threading-local_executor kikimr_backup ydb-library-workload + library-yaml_config-public public-lib-operation_id public-lib-stat_visualization common @@ -54,16 +56,16 @@ target_sources(clicommands PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/interactive/line_reader.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/benchmark_utils.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/kv_workload.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/stock_workload.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_read_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_write_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_readwrite_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/query_workload.cpp + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_admin.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_sdk_core_access.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_command.cpp + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_dynamic_config.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_profile.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_root_common.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_service_auth.cpp @@ -85,6 +87,7 @@ add_global_library_for(clicommands.global clicommands) target_link_libraries(clicommands.global PUBLIC contrib-libs-cxxsupp yutil + contrib-libs-fmt restricted-patched-replxx cpp-histogram-hdr cpp-protobuf-json @@ -92,6 +95,7 @@ target_link_libraries(clicommands.global PUBLIC cpp-threading-local_executor kikimr_backup ydb-library-workload + library-yaml_config-public public-lib-operation_id public-lib-stat_visualization common @@ -116,14 +120,15 @@ target_link_libraries(clicommands.global PUBLIC library-cpp-resource ) target_sources(clicommands.global PRIVATE - ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/6b4a693856d7dfaada0935e4f9b61c1b.cpp + ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/93bc55e26f576673786aed13327b5397.cpp ) resources(clicommands.global - ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/6b4a693856d7dfaada0935e4f9b61c1b.cpp + ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/93bc55e26f576673786aed13327b5397.cpp INPUTS ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_queries.sql ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_schema.sql ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch_schema.sql + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch_queries.sql ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q0.result ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q1.result ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q2.result @@ -171,6 +176,7 @@ resources(clicommands.global click_bench_queries.sql click_bench_schema.sql tpch_schema.sql + tpch_queries.sql q0.result q1.result q2.result diff --git a/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-aarch64.txt b/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-aarch64.txt index 7f9290ee765b..1618854322c6 100644 --- a/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-aarch64.txt @@ -20,6 +20,7 @@ target_link_libraries(clicommands PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + contrib-libs-fmt restricted-patched-replxx cpp-histogram-hdr cpp-protobuf-json @@ -27,6 +28,7 @@ target_link_libraries(clicommands PUBLIC cpp-threading-local_executor kikimr_backup ydb-library-workload + library-yaml_config-public public-lib-operation_id public-lib-stat_visualization common @@ -55,16 +57,16 @@ target_sources(clicommands PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/interactive/line_reader.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/benchmark_utils.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/kv_workload.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/stock_workload.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_read_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_write_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_readwrite_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/query_workload.cpp + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_admin.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_sdk_core_access.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_command.cpp + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_dynamic_config.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_profile.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_root_common.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_service_auth.cpp @@ -87,6 +89,7 @@ target_link_libraries(clicommands.global PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + contrib-libs-fmt restricted-patched-replxx cpp-histogram-hdr cpp-protobuf-json @@ -94,6 +97,7 @@ target_link_libraries(clicommands.global PUBLIC cpp-threading-local_executor kikimr_backup ydb-library-workload + library-yaml_config-public public-lib-operation_id public-lib-stat_visualization common @@ -118,14 +122,15 @@ target_link_libraries(clicommands.global PUBLIC library-cpp-resource ) target_sources(clicommands.global PRIVATE - ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/6b4a693856d7dfaada0935e4f9b61c1b.cpp + ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/93bc55e26f576673786aed13327b5397.cpp ) resources(clicommands.global - ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/6b4a693856d7dfaada0935e4f9b61c1b.cpp + ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/93bc55e26f576673786aed13327b5397.cpp INPUTS ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_queries.sql ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_schema.sql ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch_schema.sql + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch_queries.sql ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q0.result ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q1.result ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q2.result @@ -173,6 +178,7 @@ resources(clicommands.global click_bench_queries.sql click_bench_schema.sql tpch_schema.sql + tpch_queries.sql q0.result q1.result q2.result diff --git a/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-x86_64.txt b/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-x86_64.txt index 7f9290ee765b..1618854322c6 100644 --- a/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/ydb_cli/commands/CMakeLists.linux-x86_64.txt @@ -20,6 +20,7 @@ target_link_libraries(clicommands PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + contrib-libs-fmt restricted-patched-replxx cpp-histogram-hdr cpp-protobuf-json @@ -27,6 +28,7 @@ target_link_libraries(clicommands PUBLIC cpp-threading-local_executor kikimr_backup ydb-library-workload + library-yaml_config-public public-lib-operation_id public-lib-stat_visualization common @@ -55,16 +57,16 @@ target_sources(clicommands PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/interactive/line_reader.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/benchmark_utils.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/kv_workload.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/stock_workload.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_read_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_write_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_readwrite_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/query_workload.cpp + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_admin.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_sdk_core_access.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_command.cpp + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_dynamic_config.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_profile.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_root_common.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_service_auth.cpp @@ -87,6 +89,7 @@ target_link_libraries(clicommands.global PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + contrib-libs-fmt restricted-patched-replxx cpp-histogram-hdr cpp-protobuf-json @@ -94,6 +97,7 @@ target_link_libraries(clicommands.global PUBLIC cpp-threading-local_executor kikimr_backup ydb-library-workload + library-yaml_config-public public-lib-operation_id public-lib-stat_visualization common @@ -118,14 +122,15 @@ target_link_libraries(clicommands.global PUBLIC library-cpp-resource ) target_sources(clicommands.global PRIVATE - ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/6b4a693856d7dfaada0935e4f9b61c1b.cpp + ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/93bc55e26f576673786aed13327b5397.cpp ) resources(clicommands.global - ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/6b4a693856d7dfaada0935e4f9b61c1b.cpp + ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/93bc55e26f576673786aed13327b5397.cpp INPUTS ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_queries.sql ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_schema.sql ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch_schema.sql + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch_queries.sql ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q0.result ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q1.result ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q2.result @@ -173,6 +178,7 @@ resources(clicommands.global click_bench_queries.sql click_bench_schema.sql tpch_schema.sql + tpch_queries.sql q0.result q1.result q2.result diff --git a/ydb/public/lib/ydb_cli/commands/CMakeLists.windows-x86_64.txt b/ydb/public/lib/ydb_cli/commands/CMakeLists.windows-x86_64.txt index 3639c457ab9b..afa22114a896 100644 --- a/ydb/public/lib/ydb_cli/commands/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/ydb_cli/commands/CMakeLists.windows-x86_64.txt @@ -19,6 +19,7 @@ add_library(clicommands) target_link_libraries(clicommands PUBLIC contrib-libs-cxxsupp yutil + contrib-libs-fmt restricted-patched-replxx cpp-histogram-hdr cpp-protobuf-json @@ -26,6 +27,7 @@ target_link_libraries(clicommands PUBLIC cpp-threading-local_executor kikimr_backup ydb-library-workload + library-yaml_config-public public-lib-operation_id public-lib-stat_visualization common @@ -54,16 +56,16 @@ target_sources(clicommands PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/interactive/line_reader.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/benchmark_utils.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/kv_workload.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/stock_workload.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_read_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_write_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_readwrite_scenario.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/query_workload.cpp + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_admin.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_sdk_core_access.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_command.cpp + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_dynamic_config.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_profile.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_root_common.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/ydb_service_auth.cpp @@ -85,6 +87,7 @@ add_global_library_for(clicommands.global clicommands) target_link_libraries(clicommands.global PUBLIC contrib-libs-cxxsupp yutil + contrib-libs-fmt restricted-patched-replxx cpp-histogram-hdr cpp-protobuf-json @@ -92,6 +95,7 @@ target_link_libraries(clicommands.global PUBLIC cpp-threading-local_executor kikimr_backup ydb-library-workload + library-yaml_config-public public-lib-operation_id public-lib-stat_visualization common @@ -116,14 +120,15 @@ target_link_libraries(clicommands.global PUBLIC library-cpp-resource ) target_sources(clicommands.global PRIVATE - ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/6b4a693856d7dfaada0935e4f9b61c1b.cpp + ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/93bc55e26f576673786aed13327b5397.cpp ) resources(clicommands.global - ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/6b4a693856d7dfaada0935e4f9b61c1b.cpp + ${CMAKE_BINARY_DIR}/ydb/public/lib/ydb_cli/commands/93bc55e26f576673786aed13327b5397.cpp INPUTS ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_queries.sql ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_schema.sql ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch_schema.sql + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/tpch_queries.sql ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q0.result ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q1.result ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/click_bench_canonical/q2.result @@ -171,6 +176,7 @@ resources(clicommands.global click_bench_queries.sql click_bench_schema.sql tpch_schema.sql + tpch_queries.sql q0.result q1.result q2.result diff --git a/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.cpp b/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.cpp index 01860f43c19c..037e921ccf7a 100644 --- a/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.cpp +++ b/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.cpp @@ -206,6 +206,7 @@ void TTopicOperationsScenario::StartConsumerThreads(std::vector<std::future<void .UseTopicCommit = OnlyTableInTx, .UseTableSelect = UseTableSelect && !OnlyTopicInTx, .UseTableUpsert = !OnlyTopicInTx, + .ReadWithoutConsumer = ReadWithoutConsumer, .CommitPeriod = CommitPeriod, .CommitMessages = CommitMessages }; diff --git a/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.h b/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.h index 6974df0ea17a..04d675d31f82 100644 --- a/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.h +++ b/ydb/public/lib/ydb_cli/commands/topic_operations_scenario.h @@ -70,6 +70,7 @@ class TTopicOperationsScenario { bool OnlyTopicInTx = false; bool OnlyTableInTx = false; bool UseTableSelect = true; + bool ReadWithoutConsumer = false; protected: void CreateTopic(const TString& database, diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.cpp b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.cpp index f671f0b0be57..27b374e0e5d9 100644 --- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.cpp +++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.cpp @@ -24,23 +24,33 @@ void TTopicWorkloadReader::ReaderLoop(TTopicWorkloadReaderParams& params, TInsta auto topicClient = std::make_unique<NYdb::NTopic::TTopicClient>(params.Driver); std::optional<TTransactionSupport> txSupport; - auto consumerName = TCommandWorkloadTopicDescribe::GenerateConsumerName(params.ConsumerPrefix, params.ConsumerIdx); auto describeTopicResult = TCommandWorkloadTopicDescribe::DescribeTopic(params.Database, params.TopicName, params.Driver); - auto consumers = describeTopicResult.GetConsumers(); + NYdb::NTopic::TReadSessionSettings settings; + + if (!params.ReadWithoutConsumer) { + auto consumerName = TCommandWorkloadTopicDescribe::GenerateConsumerName(params.ConsumerPrefix, params.ConsumerIdx); + auto consumers = describeTopicResult.GetConsumers(); - if (!std::any_of(consumers.begin(), consumers.end(), [consumerName](const auto& consumer) { return consumer.GetConsumerName() == consumerName; })) - { - WRITE_LOG(params.Log, ELogPriority::TLOG_EMERG, TStringBuilder() << "Topic '" << params.TopicName << "' doesn't have a consumer '" << consumerName << "'. Run command 'workload init' with parameter '--consumers'."); - exit(EXIT_FAILURE); + if (!std::any_of(consumers.begin(), consumers.end(), [consumerName](const auto& consumer) { return consumer.GetConsumerName() == consumerName; })) + { + WRITE_LOG(params.Log, ELogPriority::TLOG_EMERG, TStringBuilder() << "Topic '" << params.TopicName << "' doesn't have a consumer '" << consumerName << "'. Run command 'workload init' with parameter '--consumers'."); + exit(EXIT_FAILURE); + } + settings.ConsumerName(consumerName).AppendTopics(params.TopicName); + } else { + NYdb::NTopic::TTopicReadSettings topic = params.TopicName; + auto partitions = describeTopicResult.GetPartitions(); + for(auto partition: partitions) { + topic.AppendPartitionIds(partition.GetPartitionId()); + } + settings.WithoutConsumer().AppendTopics(topic); } + if (params.UseTransactions) { txSupport.emplace(params.Driver, params.ReadOnlyTableName, params.TableName); } - NYdb::NTopic::TReadSessionSettings settings; - settings.ConsumerName(consumerName).AppendTopics(params.TopicName); - auto readSession = topicClient->CreateReadSession(settings); WRITE_LOG(params.Log, ELogPriority::TLOG_INFO, "Reader session was created."); @@ -93,7 +103,7 @@ void TTopicWorkloadReader::ReaderLoop(TTopicWorkloadReaderParams& params, TInsta << " createTime " << message.GetCreateTime() << " fullTimeMs " << fullTime); } - if (!txSupport || params.UseTopicCommit) { + if (!params.ReadWithoutConsumer && (!txSupport || params.UseTopicCommit)) { dataEvent->Commit(); } } else if (auto* createPartitionStreamEvent = std::get_if<NYdb::NTopic::TReadSessionEvent::TStartPartitionSessionEvent>(&event)) { diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.h b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.h index 09ced96f1786..39b091856dab 100644 --- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.h +++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_reader.h @@ -30,6 +30,7 @@ namespace NYdb { bool UseTopicCommit = false; bool UseTableSelect = true; bool UseTableUpsert = true; + bool ReadWithoutConsumer = false; size_t CommitPeriod = 15; size_t CommitMessages = 1'000'000; }; diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_read.cpp b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_read.cpp index 555ca5eb488b..11ac51580b02 100644 --- a/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_read.cpp +++ b/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_run_read.cpp @@ -34,6 +34,9 @@ void TCommandWorkloadTopicRunRead::Config(TConfig& config) config.Opts->AddLongOption("topic", "Topic name.") .DefaultValue(TOPIC) .StoreResult(&Scenario.TopicName); + config.Opts->AddLongOption("no-consumer", "Read without consumer") + .Hidden() + .StoreTrue(&Scenario.ReadWithoutConsumer); // Specific params config.Opts->AddLongOption("consumer-prefix", "Use consumers with names '<consumer-prefix>-0' ... '<consumer-prefix>-<n-1>' where n is set in the '--consumers' option.") diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.darwin-arm64.txt index ce905a532ac4..12c0cb11b430 100644 --- a/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.darwin-arm64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-public-lib-ydb_cli-commands-topic_workload-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-lib-ydb_cli-commands-topic_workload-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_params_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.darwin-x86_64.txt index 7f8275fc0d19..04ae7b643e42 100644 --- a/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.darwin-x86_64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-public-lib-ydb_cli-commands-topic_workload-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-lib-ydb_cli-commands-topic_workload-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_params_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.linux-aarch64.txt b/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.linux-aarch64.txt index d4763a78e3ba..55be209fe256 100644 --- a/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.linux-aarch64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-public-lib-ydb_cli-commands-topic_workload-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-ydb_cli-commands-topic_workload-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_params_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.linux-x86_64.txt b/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.linux-x86_64.txt index a9e9e79c61e9..abd6818c21fd 100644 --- a/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.linux-x86_64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-public-lib-ydb_cli-commands-topic_workload-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-ydb_cli-commands-topic_workload-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/commands/topic_workload/topic_workload_params_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.windows-x86_64.txt b/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.windows-x86_64.txt index 26b646c82224..20a5d7410d1d 100644 --- a/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/ydb_cli/commands/topic_workload/ut/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.cpp b/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.cpp index 537f66baf7ee..b5d028c1dcb6 100644 --- a/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.cpp +++ b/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.cpp @@ -858,6 +858,8 @@ void TCommandList::Config(TConfig& config) { .StoreTrue(&Recursive); config.Opts->AddCharOption('1', "List one object per line") .StoreTrue(&FromNewLine); + config.Opts->AddCharOption('m', "Multithread recursive request") + .StoreTrue(&Multithread); AddFormats(config, { EOutputFormat::Pretty, EOutputFormat::Json }); config.SetFreeArgsMax(1); SetFreeArgTitle(0, "<path>", "Path to list"); @@ -877,6 +879,7 @@ int TCommandList::Run(TConfig& config) { ISchemePrinter::TSettings settings = { Path, Recursive, + Multithread, FromNewLine, FillSettings(NScheme::TListDirectorySettings()), FillSettings(NTable::TDescribeTableSettings().WithTableStatistics(true)) diff --git a/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.h b/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.h index 080a5ac91a45..fe3a089305f3 100644 --- a/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.h +++ b/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.h @@ -102,6 +102,7 @@ class TCommandList : public TYdbOperationCommand, public TCommandWithPath, publi bool AdvancedMode = false; bool Recursive = false; bool FromNewLine = false; + bool Multithread = false; }; class TCommandPermissions : public TClientCommandTree { diff --git a/ydb/public/lib/ydb_cli/common/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/common/CMakeLists.darwin-arm64.txt index c684a660f2de..739483ec8c94 100644 --- a/ydb/public/lib/ydb_cli/common/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/ydb_cli/common/CMakeLists.darwin-arm64.txt @@ -24,6 +24,7 @@ add_library(common) target_link_libraries(common PUBLIC contrib-libs-cxxsupp yutil + libs-aws-sdk-cpp-aws-cpp-sdk-s3 library-cpp-config library-cpp-getopt cpp-json-writer @@ -39,6 +40,7 @@ target_link_libraries(common PUBLIC cpp-client-ydb_topic cpp-client-ydb_types client-ydb_types-credentials + ydb-library-arrow_parquet tools-enum_parser-enum_serialization_runtime ) target_sources(common PRIVATE diff --git a/ydb/public/lib/ydb_cli/common/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/ydb_cli/common/CMakeLists.darwin-x86_64.txt index c684a660f2de..739483ec8c94 100644 --- a/ydb/public/lib/ydb_cli/common/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/ydb_cli/common/CMakeLists.darwin-x86_64.txt @@ -24,6 +24,7 @@ add_library(common) target_link_libraries(common PUBLIC contrib-libs-cxxsupp yutil + libs-aws-sdk-cpp-aws-cpp-sdk-s3 library-cpp-config library-cpp-getopt cpp-json-writer @@ -39,6 +40,7 @@ target_link_libraries(common PUBLIC cpp-client-ydb_topic cpp-client-ydb_types client-ydb_types-credentials + ydb-library-arrow_parquet tools-enum_parser-enum_serialization_runtime ) target_sources(common PRIVATE diff --git a/ydb/public/lib/ydb_cli/common/CMakeLists.linux-aarch64.txt b/ydb/public/lib/ydb_cli/common/CMakeLists.linux-aarch64.txt index 740a58d60cbc..c04d06e63f9b 100644 --- a/ydb/public/lib/ydb_cli/common/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/ydb_cli/common/CMakeLists.linux-aarch64.txt @@ -25,6 +25,7 @@ target_link_libraries(common PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + libs-aws-sdk-cpp-aws-cpp-sdk-s3 library-cpp-config library-cpp-getopt cpp-json-writer @@ -40,6 +41,7 @@ target_link_libraries(common PUBLIC cpp-client-ydb_topic cpp-client-ydb_types client-ydb_types-credentials + ydb-library-arrow_parquet tools-enum_parser-enum_serialization_runtime ) target_sources(common PRIVATE diff --git a/ydb/public/lib/ydb_cli/common/CMakeLists.linux-x86_64.txt b/ydb/public/lib/ydb_cli/common/CMakeLists.linux-x86_64.txt index 740a58d60cbc..c04d06e63f9b 100644 --- a/ydb/public/lib/ydb_cli/common/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/ydb_cli/common/CMakeLists.linux-x86_64.txt @@ -25,6 +25,7 @@ target_link_libraries(common PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + libs-aws-sdk-cpp-aws-cpp-sdk-s3 library-cpp-config library-cpp-getopt cpp-json-writer @@ -40,6 +41,7 @@ target_link_libraries(common PUBLIC cpp-client-ydb_topic cpp-client-ydb_types client-ydb_types-credentials + ydb-library-arrow_parquet tools-enum_parser-enum_serialization_runtime ) target_sources(common PRIVATE diff --git a/ydb/public/lib/ydb_cli/common/CMakeLists.windows-x86_64.txt b/ydb/public/lib/ydb_cli/common/CMakeLists.windows-x86_64.txt index c684a660f2de..739483ec8c94 100644 --- a/ydb/public/lib/ydb_cli/common/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/ydb_cli/common/CMakeLists.windows-x86_64.txt @@ -24,6 +24,7 @@ add_library(common) target_link_libraries(common PUBLIC contrib-libs-cxxsupp yutil + libs-aws-sdk-cpp-aws-cpp-sdk-s3 library-cpp-config library-cpp-getopt cpp-json-writer @@ -39,6 +40,7 @@ target_link_libraries(common PUBLIC cpp-client-ydb_topic cpp-client-ydb_types client-ydb_types-credentials + ydb-library-arrow_parquet tools-enum_parser-enum_serialization_runtime ) target_sources(common PRIVATE diff --git a/ydb/public/lib/ydb_cli/common/csv_parser_ut.cpp b/ydb/public/lib/ydb_cli/common/csv_parser_ut.cpp index 9887c9fc7ea2..0619bca36b5d 100644 --- a/ydb/public/lib/ydb_cli/common/csv_parser_ut.cpp +++ b/ydb/public/lib/ydb_cli/common/csv_parser_ut.cpp @@ -106,6 +106,10 @@ Y_UNIT_TEST_SUITE(YdbCliCsvParserTests) { CommonTestParams("name", "1.183", {{"$name", TValueBuilder().Double(1.183).Build()}}); CommonTestParams("name", "1.183", {{"$name", TValueBuilder().DyNumber("1.183").Build()}}); CommonTestParams("name", "1.183", {{"$name", TValueBuilder().Decimal(TString("1.183")).Build()}}); + CommonTestParams("name", "inf", {{"$name", TValueBuilder().Decimal(TString("inf")).Build()}}); + CommonTestParams("name", "-inf", {{"$name", TValueBuilder().Decimal(TString("-inf")).Build()}}); + CommonTestParams("name", "nan", {{"$name", TValueBuilder().Decimal(TString("nan")).Build()}}); + CommonTestParams("name", "-nan", {{"$name", TValueBuilder().Decimal(TString("-nan")).Build()}}); CommonTestParams("name", "550e8400-e29b-41d4-a716-446655440000", {{"$name", TValueBuilder().Uuid(TUuidValue("550e8400-e29b-41d4-a716-446655440000")).Build()}}); CommonTestParams("name", "\"{\"\"a\"\":10, \"\"b\"\":\"\"string\"\"}\"", {{"$name", TValueBuilder().Json("{\"a\":10, \"b\":\"string\"}").Build()}}); CommonTestParams("name", "строка", {{"$name", TValueBuilder().OptionalUtf8("строка").Build()}}); diff --git a/ydb/public/lib/ydb_cli/common/recursive_remove.cpp b/ydb/public/lib/ydb_cli/common/recursive_remove.cpp index d42b58fe4529..3c9946e29c55 100644 --- a/ydb/public/lib/ydb_cli/common/recursive_remove.cpp +++ b/ydb/public/lib/ydb_cli/common/recursive_remove.cpp @@ -72,18 +72,18 @@ template <typename TClient, typename TSettings> using TRemoveFunc = TStatus(*)(TClient&, const TString&, const TSettings&); template <typename TClient, typename TSettings> -TStatus Remove(TRemoveFunc<TClient, TSettings> func, TSchemeClient& schemeClient, TClient* client, const TSchemeEntry& entry, - ERecursiveRemovePrompt prompt, const TRemoveDirectorySettings& settings) +TStatus Remove(TRemoveFunc<TClient, TSettings> func, TSchemeClient& schemeClient, TClient* client, const ESchemeEntryType type, + const TString& path, ERecursiveRemovePrompt prompt, const TRemoveDirectorySettings& settings) { if (!client) { return TStatus(EStatus::GENERIC_ERROR, MakeIssues(TStringBuilder() << TypeName<TClient>() << " not specified")); } - if (Prompt(prompt, entry.Name, entry.Type, false)) { - auto status = func(*client, entry.Name, TSettings(settings)); - if (status.GetStatus() == EStatus::SCHEME_ERROR && schemeClient.DescribePath(entry.Name).ExtractValueSync().GetStatus() == EStatus::SCHEME_ERROR) { - Cerr << "WARNING: Couldn't delete path: \'" << entry.Name << "\'. It was probably already deleted in another process" << Endl; + if (Prompt(prompt, path, type, false)) { + auto status = func(*client, path, TSettings(settings)); + if (status.GetStatus() == EStatus::SCHEME_ERROR && schemeClient.DescribePath(path).ExtractValueSync().GetStatus() == EStatus::SCHEME_ERROR) { + Cerr << "WARNING: Couldn't delete path: \'" << path << "\'. It was probably already deleted in another process" << Endl; return TStatus(EStatus::SUCCESS, {}); } return status; @@ -93,26 +93,26 @@ TStatus Remove(TRemoveFunc<TClient, TSettings> func, TSchemeClient& schemeClient } TStatus Remove( - TSchemeClient& schemeClient, TTableClient* tableClient, TTopicClient* topicClient, const TSchemeEntry& entry, - ERecursiveRemovePrompt prompt, const TRemoveDirectorySettings& settings) + TSchemeClient& schemeClient, TTableClient* tableClient, TTopicClient* topicClient, const ESchemeEntryType type, + const TString& path, ERecursiveRemovePrompt prompt, const TRemoveDirectorySettings& settings) { - switch (entry.Type) { + switch (type) { case ESchemeEntryType::Directory: - return Remove(&RemoveDirectory, schemeClient, &schemeClient, entry, prompt, settings); + return Remove(&RemoveDirectory, schemeClient, &schemeClient, type, path, prompt, settings); case ESchemeEntryType::ColumnStore: - return Remove(&RemoveColumnStore, schemeClient, tableClient, entry, prompt, settings); + return Remove(&RemoveColumnStore, schemeClient, tableClient, type, path, prompt, settings); case ESchemeEntryType::ColumnTable: case ESchemeEntryType::Table: - return Remove(&RemoveTable, schemeClient, tableClient, entry, prompt, settings); + return Remove(&RemoveTable, schemeClient, tableClient, type, path, prompt, settings); case ESchemeEntryType::Topic: - return Remove(&RemoveTopic, schemeClient, topicClient, entry, prompt, settings); + return Remove(&RemoveTopic, schemeClient, topicClient, type, path, prompt, settings); default: return TStatus(EStatus::UNSUPPORTED, MakeIssues(TStringBuilder() - << "Unsupported entry type: " << entry.Type)); + << "Unsupported entry type: " << type)); } } @@ -144,7 +144,7 @@ TStatus RemoveDirectoryRecursive( // output order is: Root, Recursive(children)... // we need to reverse it to delete recursively for (auto it = recursiveListResult.Entries.rbegin(); it != recursiveListResult.Entries.rend(); ++it) { - if (auto result = Remove(schemeClient, tableClient, topicClient, *it, prompt, settings); !result.IsSuccess()) { + if (auto result = Remove(schemeClient, tableClient, topicClient, it->Type, it->Name, prompt, settings); !result.IsSuccess()) { return result; } if (createProgressBar) { @@ -189,7 +189,7 @@ NYdb::TStatus RemovePathRecursive(NScheme::TSchemeClient& schemeClient, NTable:: case ESchemeEntryType::ColumnStore: return RemoveDirectoryRecursive(schemeClient, tableClient, topicClient, path, prompt, settings, true, createProgressBar); default: - return Remove(schemeClient, &tableClient, &topicClient, entity.GetEntry(), prompt, settings); + return Remove(schemeClient, &tableClient, &topicClient, entity.GetEntry().Type, path, prompt, settings); } } } diff --git a/ydb/public/lib/ydb_cli/common/scheme_printers.cpp b/ydb/public/lib/ydb_cli/common/scheme_printers.cpp index 24fd0ce7945c..9175afc7e591 100644 --- a/ydb/public/lib/ydb_cli/common/scheme_printers.cpp +++ b/ydb/public/lib/ydb_cli/common/scheme_printers.cpp @@ -15,7 +15,7 @@ TSchemePrinterBase::TSchemePrinterBase(const TDriver& driver, TSettings&& settin {} void TSchemePrinterBase::Print() { - PrintDirectoryRecursive(Settings.Path, ""); + PrintDirectoryRecursive(Settings.Path, "").GetValueSync(); } bool TSchemePrinterBase::IsDirectoryLike(const NScheme::TSchemeEntry& entry) { @@ -24,30 +24,41 @@ bool TSchemePrinterBase::IsDirectoryLike(const NScheme::TSchemeEntry& entry) { || entry.Type == NScheme::ESchemeEntryType::ColumnStore; } -void TSchemePrinterBase::PrintDirectoryRecursive(const TString& fullPath, const TString& relativePath) { - NScheme::TListDirectoryResult result = SchemeClient.ListDirectory( +NThreading::TFuture<void> TSchemePrinterBase::PrintDirectoryRecursive(const TString& fullPath, const TString& relativePath) { + return SchemeClient.ListDirectory( fullPath, Settings.ListDirectorySettings - ).GetValueSync(); - ThrowOnError(result); + ).Apply([this, fullPath, relativePath](const NScheme::TAsyncListDirectoryResult& resultFuture) { + const auto& result = resultFuture.GetValueSync(); + ThrowOnError(result); - if (relativePath || IsDirectoryLike(result.GetEntry())) { - PrintDirectory(relativePath, result); - } else { - PrintEntry(relativePath, result.GetEntry()); - } + if (relativePath || IsDirectoryLike(result.GetEntry())) { + std::lock_guard g(Lock); + PrintDirectory(relativePath, result); + } else { + std::lock_guard g(Lock); + PrintEntry(relativePath, result.GetEntry()); + } - if (Settings.Recursive) { - for (const auto& child : result.GetChildren()) { - TString childRelativePath = relativePath + (relativePath ? "/" : "") + child.Name; - TString childFullPath = fullPath + "/" + child.Name; - if (IsDirectoryLike(child)) { - PrintDirectoryRecursive(childFullPath, childRelativePath); - } else { - PrintEntry(childRelativePath, child); + TVector<NThreading::TFuture<void>> childFutures; + if (Settings.Recursive) { + for (const auto& child : result.GetChildren()) { + TString childRelativePath = relativePath + (relativePath ? "/" : "") + child.Name; + TString childFullPath = fullPath + "/" + child.Name; + if (IsDirectoryLike(child)) { + childFutures.push_back(PrintDirectoryRecursive(childFullPath, childRelativePath)); + if (!Settings.Multithread) { + childFutures.back().Wait(); + childFutures.back().TryRethrow(); + } + } else { + std::lock_guard g(Lock); + PrintEntry(childRelativePath, child); + } } } - } + return NThreading::WaitExceptionOrAll(childFutures); + }); } NTable::TDescribeTableResult TSchemePrinterBase::DescribeTable(const TString& relativePath) { diff --git a/ydb/public/lib/ydb_cli/common/scheme_printers.h b/ydb/public/lib/ydb_cli/common/scheme_printers.h index 84b791d70b19..c8ca0a2fd322 100644 --- a/ydb/public/lib/ydb_cli/common/scheme_printers.h +++ b/ydb/public/lib/ydb_cli/common/scheme_printers.h @@ -13,6 +13,7 @@ class ISchemePrinter { struct TSettings { TString Path; bool Recursive; + bool Multithread; bool FromNewLine; NScheme::TListDirectorySettings ListDirectorySettings; NTable::TDescribeTableSettings DescribeTableSettings; @@ -37,13 +38,14 @@ class TSchemePrinterBase : public ISchemePrinter { NTable::TDescribeTableResult DescribeTable(const TString& relativePath); private: - void PrintDirectoryRecursive(const TString& fullPath, const TString& relativePath); + NThreading::TFuture<void> PrintDirectoryRecursive(const TString& fullPath, const TString& relativePath); static bool IsDirectoryLike(const NScheme::TSchemeEntry& entry); protected: NTable::TTableClient TableClient; NScheme::TSchemeClient SchemeClient; const TSettings Settings; + std::mutex Lock; }; class TDefaultSchemePrinter : public TSchemePrinterBase { diff --git a/ydb/public/lib/ydb_cli/common/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/common/ut/CMakeLists.darwin-arm64.txt index 18ba45ebb3ef..4fc28b42bbaf 100644 --- a/ydb/public/lib/ydb_cli/common/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/ydb_cli/common/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-public-lib-ydb_cli-common-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-lib-ydb_cli-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/normalize_path_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/ydb_cli/common/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/ydb_cli/common/ut/CMakeLists.darwin-x86_64.txt index 329a4c7e3fa1..d261603a3727 100644 --- a/ydb/public/lib/ydb_cli/common/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/ydb_cli/common/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-public-lib-ydb_cli-common-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-lib-ydb_cli-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/normalize_path_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/ydb_cli/common/ut/CMakeLists.linux-aarch64.txt b/ydb/public/lib/ydb_cli/common/ut/CMakeLists.linux-aarch64.txt index 129ee56e45a1..b9070bddd466 100644 --- a/ydb/public/lib/ydb_cli/common/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/ydb_cli/common/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-public-lib-ydb_cli-common-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-ydb_cli-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/normalize_path_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/ydb_cli/common/ut/CMakeLists.linux-x86_64.txt b/ydb/public/lib/ydb_cli/common/ut/CMakeLists.linux-x86_64.txt index 6763952b32fc..1ba992335148 100644 --- a/ydb/public/lib/ydb_cli/common/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/ydb_cli/common/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-public-lib-ydb_cli-common-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-ydb_cli-common-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/common/normalize_path_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/ydb_cli/common/ut/CMakeLists.windows-x86_64.txt b/ydb/public/lib/ydb_cli/common/ut/CMakeLists.windows-x86_64.txt index 982a141b099c..28be79da1efc 100644 --- a/ydb/public/lib/ydb_cli/common/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/ydb_cli/common/ut/CMakeLists.windows-x86_64.txt @@ -48,6 +48,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.darwin-arm64.txt b/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.darwin-arm64.txt index 52f2c7e9c291..97529436ef95 100644 --- a/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.darwin-arm64.txt @@ -34,10 +34,9 @@ target_link_options(ydb-public-lib-ydb_cli-topic-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-lib-ydb_cli-topic-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_read_ut.cpp @@ -67,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.darwin-x86_64.txt index 8747791be6f8..5591d6ea18a8 100644 --- a/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.darwin-x86_64.txt @@ -35,10 +35,9 @@ target_link_options(ydb-public-lib-ydb_cli-topic-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-lib-ydb_cli-topic-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_read_ut.cpp @@ -68,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.linux-aarch64.txt b/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.linux-aarch64.txt index 4cb79809b827..9c9c93d3255b 100644 --- a/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.linux-aarch64.txt @@ -37,11 +37,9 @@ target_link_options(ydb-public-lib-ydb_cli-topic-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-ydb_cli-topic-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_read_ut.cpp @@ -71,6 +69,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.linux-x86_64.txt b/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.linux-x86_64.txt index 3b132c9fb458..12b1c739d83b 100644 --- a/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.linux-x86_64.txt @@ -38,11 +38,9 @@ target_link_options(ydb-public-lib-ydb_cli-topic-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-lib-ydb_cli-topic-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_read_ut.cpp @@ -72,6 +70,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.windows-x86_64.txt b/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.windows-x86_64.txt index f2b29d20758c..1fdd21424901 100644 --- a/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/lib/ydb_cli/topic/ut/CMakeLists.windows-x86_64.txt @@ -32,6 +32,7 @@ target_link_libraries(ydb-public-lib-ydb_cli-topic-ut PUBLIC ydb_persqueue_core-ut-ut_utils ) target_sources(ydb-public-lib-ydb_cli-topic-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write.h ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_write_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/ydb_cli/topic/topic_read_ut.cpp @@ -61,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.darwin-arm64.txt index 8d6480229603..8a44042157b5 100644 --- a/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-public-sdk-cpp-client-draft-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-draft-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/draft/ydb_scripting_response_headers_ut.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.darwin-x86_64.txt index eca60737ff47..3582ab3ee68b 100644 --- a/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-public-sdk-cpp-client-draft-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-draft-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/draft/ydb_scripting_response_headers_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.linux-aarch64.txt index 049facf2bc34..29491eb62b45 100644 --- a/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-public-sdk-cpp-client-draft-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-draft-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/draft/ydb_scripting_response_headers_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.linux-x86_64.txt index 24da5572fff3..ca76c1ddd9c5 100644 --- a/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-public-sdk-cpp-client-draft-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-draft-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/draft/ydb_scripting_response_headers_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.windows-x86_64.txt index 7f70ecd4a5ed..bf43d512ea06 100644 --- a/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/draft/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.darwin-arm64.txt index 772c1373c88e..1059de59581e 100644 --- a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(client-extensions-discovery_mutator-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(client-extensions-discovery_mutator-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/extensions/discovery_mutator/discovery_mutator_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.darwin-x86_64.txt index 0bdb739b6c6f..34488bb24228 100644 --- a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(client-extensions-discovery_mutator-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(client-extensions-discovery_mutator-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/extensions/discovery_mutator/discovery_mutator_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.linux-aarch64.txt index 90a75827f594..dbe91f811d40 100644 --- a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(client-extensions-discovery_mutator-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(client-extensions-discovery_mutator-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/extensions/discovery_mutator/discovery_mutator_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.linux-x86_64.txt index 4f6fb263bf55..3b4ea43f52cb 100644 --- a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(client-extensions-discovery_mutator-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(client-extensions-discovery_mutator-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/extensions/discovery_mutator/discovery_mutator_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.windows-x86_64.txt index bab4b5096422..76382ba917e0 100644 --- a/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/extensions/discovery_mutator/ut/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.darwin-arm64.txt index bc0b4bf5c433..0ee0a92733e7 100644 --- a/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.darwin-arm64.txt @@ -19,3 +19,6 @@ target_link_libraries(client-iam-impl INTERFACE client-ydb_types-credentials client-iam-common ) +target_sources(client-iam-impl INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/iam/impl/iam_impl.h +) diff --git a/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.darwin-x86_64.txt index bc0b4bf5c433..0ee0a92733e7 100644 --- a/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.darwin-x86_64.txt @@ -19,3 +19,6 @@ target_link_libraries(client-iam-impl INTERFACE client-ydb_types-credentials client-iam-common ) +target_sources(client-iam-impl INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/iam/impl/iam_impl.h +) diff --git a/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.linux-aarch64.txt index 814d7a7be534..844006fe79b6 100644 --- a/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.linux-aarch64.txt @@ -20,3 +20,6 @@ target_link_libraries(client-iam-impl INTERFACE client-ydb_types-credentials client-iam-common ) +target_sources(client-iam-impl INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/iam/impl/iam_impl.h +) diff --git a/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.linux-x86_64.txt index 814d7a7be534..844006fe79b6 100644 --- a/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.linux-x86_64.txt @@ -20,3 +20,6 @@ target_link_libraries(client-iam-impl INTERFACE client-ydb_types-credentials client-iam-common ) +target_sources(client-iam-impl INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/iam/impl/iam_impl.h +) diff --git a/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.windows-x86_64.txt index bc0b4bf5c433..0ee0a92733e7 100644 --- a/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/iam/impl/CMakeLists.windows-x86_64.txt @@ -19,3 +19,6 @@ target_link_libraries(client-iam-impl INTERFACE client-ydb_types-credentials client-iam-common ) +target_sources(client-iam-impl INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/iam/impl/iam_impl.h +) diff --git a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.darwin-arm64.txt index 445bbca32119..2eb49ba2aaf1 100644 --- a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ target_link_options(ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_endpoints/endpoints_ut.cpp @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.darwin-x86_64.txt index 58188feff55e..dcbb5eb21ecc 100644 --- a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.darwin-x86_64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_endpoints/endpoints_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.linux-aarch64.txt index f13f739002a9..e0e609ab4409 100644 --- a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_endpoints/endpoints_ut.cpp @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.linux-x86_64.txt index 358dacf72ac7..b4c8fb365201 100644 --- a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.linux-x86_64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-impl-ydb_endpoints-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/impl/ydb_endpoints/endpoints_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.windows-x86_64.txt index cffc724457f9..d8b58887cb68 100644 --- a/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/impl/ydb_endpoints/ut/CMakeLists.windows-x86_64.txt @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.darwin-arm64.txt index 89b0e5b07e3d..c191c9b75ae9 100644 --- a/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_coordination-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_coordination-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/coordination_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.darwin-x86_64.txt index d865373e038d..f6f999b24f45 100644 --- a/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_coordination-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_coordination-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/coordination_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.linux-aarch64.txt index db03fcdbaa20..89c76626027f 100644 --- a/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_coordination-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_coordination-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/coordination_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.linux-x86_64.txt index af48ec55d738..b5896e0d64a8 100644 --- a/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_coordination-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_coordination-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_coordination/coordination_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.windows-x86_64.txt index 83ec97a9d1b3..c45556acc817 100644 --- a/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_coordination/ut/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_discovery/discovery.cpp b/ydb/public/sdk/cpp/client/ydb_discovery/discovery.cpp index 20c71a20385e..440b2635f580 100644 --- a/ydb/public/sdk/cpp/client/ydb_discovery/discovery.cpp +++ b/ydb/public/sdk/cpp/client/ydb_discovery/discovery.cpp @@ -86,6 +86,7 @@ TNodeRegistrationResult::TNodeRegistrationResult(TStatus&& status, const Ydb::Di , Expire_(proto.expire()) , ScopeTableId_(proto.has_scope_tablet_id() ? std::make_optional(proto.scope_tablet_id()) : std::nullopt) , ScopePathId_(proto.has_scope_path_id() ? std::make_optional(proto.scope_path_id()) : std::nullopt) + , NodeName_(proto.has_node_name() ? std::make_optional(proto.node_name()) : std::nullopt) { const auto& nodes = proto.nodes(); Nodes_.reserve(nodes.size()); @@ -122,6 +123,14 @@ bool TNodeRegistrationResult::HasScopePathId() const { return ScopePathId_.value(); } +bool TNodeRegistrationResult::HasNodeName() const { + return NodeName_.has_value(); +} + +const TString& TNodeRegistrationResult::GetNodeName() const { + return NodeName_.value(); +} + const TVector<TNodeInfo>& TNodeRegistrationResult::GetNodes() const { return Nodes_; } diff --git a/ydb/public/sdk/cpp/client/ydb_discovery/discovery.h b/ydb/public/sdk/cpp/client/ydb_discovery/discovery.h index 3e9c20717b52..24241cf904c8 100644 --- a/ydb/public/sdk/cpp/client/ydb_discovery/discovery.h +++ b/ydb/public/sdk/cpp/client/ydb_discovery/discovery.h @@ -109,6 +109,8 @@ class TNodeRegistrationResult : public TStatus { bool HasScopeTabletId() const; const ui64& GetScopePathId() const; bool HasScopePathId() const; + const TString& GetNodeName() const; + bool HasNodeName() const; const TVector<TNodeInfo>& GetNodes() const; private: @@ -117,6 +119,7 @@ class TNodeRegistrationResult : public TStatus { ui64 Expire_; std::optional<ui64> ScopeTableId_; std::optional<ui64> ScopePathId_; + std::optional<TString> NodeName_; TVector<TNodeInfo> Nodes_; }; diff --git a/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.darwin-arm64.txt index 6a048be57784..01e853455fb1 100644 --- a/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_driver-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_driver-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_driver/driver_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.darwin-x86_64.txt index 09afdbc8d77e..a29ceafa3f1b 100644 --- a/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_driver-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_driver-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_driver/driver_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.linux-aarch64.txt index 115ee06e0701..930c8f38de4c 100644 --- a/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_driver-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_driver-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_driver/driver_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.linux-x86_64.txt index 771e268470c7..169098910560 100644 --- a/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_driver-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_driver-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_driver/driver_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.windows-x86_64.txt index a63492287078..715d7d8f4bc0 100644 --- a/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_driver/ut/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.darwin-arm64.txt index dce7f916340f..6947ac5b5d50 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.darwin-arm64.txt @@ -23,6 +23,9 @@ target_link_libraries(cpp-client-ydb_federated_topic PUBLIC cpp-client-ydb_topic client-ydb_federated_topic-impl ) +target_sources(cpp-client-ydb_federated_topic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/federated_topic.h +) generate_enum_serilization(cpp-client-ydb_federated_topic ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/federated_topic.h INCLUDE_HEADERS diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.darwin-x86_64.txt index dce7f916340f..6947ac5b5d50 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.darwin-x86_64.txt @@ -23,6 +23,9 @@ target_link_libraries(cpp-client-ydb_federated_topic PUBLIC cpp-client-ydb_topic client-ydb_federated_topic-impl ) +target_sources(cpp-client-ydb_federated_topic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/federated_topic.h +) generate_enum_serilization(cpp-client-ydb_federated_topic ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/federated_topic.h INCLUDE_HEADERS diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.linux-aarch64.txt index 3e5d5f67b04d..6d31b42488fd 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.linux-aarch64.txt @@ -24,6 +24,9 @@ target_link_libraries(cpp-client-ydb_federated_topic PUBLIC cpp-client-ydb_topic client-ydb_federated_topic-impl ) +target_sources(cpp-client-ydb_federated_topic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/federated_topic.h +) generate_enum_serilization(cpp-client-ydb_federated_topic ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/federated_topic.h INCLUDE_HEADERS diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.linux-x86_64.txt index 3e5d5f67b04d..6d31b42488fd 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.linux-x86_64.txt @@ -24,6 +24,9 @@ target_link_libraries(cpp-client-ydb_federated_topic PUBLIC cpp-client-ydb_topic client-ydb_federated_topic-impl ) +target_sources(cpp-client-ydb_federated_topic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/federated_topic.h +) generate_enum_serilization(cpp-client-ydb_federated_topic ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/federated_topic.h INCLUDE_HEADERS diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.windows-x86_64.txt index dce7f916340f..6947ac5b5d50 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/CMakeLists.windows-x86_64.txt @@ -23,6 +23,9 @@ target_link_libraries(cpp-client-ydb_federated_topic PUBLIC cpp-client-ydb_topic client-ydb_federated_topic-impl ) +target_sources(cpp-client-ydb_federated_topic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/federated_topic.h +) generate_enum_serilization(cpp-client-ydb_federated_topic ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/federated_topic.h INCLUDE_HEADERS diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.darwin-arm64.txt index bea5a60f1e4a..4fdc550e9cf3 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.darwin-arm64.txt @@ -25,6 +25,10 @@ target_link_libraries(client-ydb_federated_topic-impl PUBLIC cpp-client-ydb_proto ) target_sources(client-ydb_federated_topic-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_write_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_topic_impl.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federation_observer.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session_event.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_write_session.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.darwin-x86_64.txt index bea5a60f1e4a..4fdc550e9cf3 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.darwin-x86_64.txt @@ -25,6 +25,10 @@ target_link_libraries(client-ydb_federated_topic-impl PUBLIC cpp-client-ydb_proto ) target_sources(client-ydb_federated_topic-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_write_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_topic_impl.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federation_observer.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session_event.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_write_session.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.linux-aarch64.txt index efd677ea08d8..455929fdcd4c 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.linux-aarch64.txt @@ -26,6 +26,10 @@ target_link_libraries(client-ydb_federated_topic-impl PUBLIC cpp-client-ydb_proto ) target_sources(client-ydb_federated_topic-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_write_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_topic_impl.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federation_observer.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session_event.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_write_session.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.linux-x86_64.txt index efd677ea08d8..455929fdcd4c 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.linux-x86_64.txt @@ -26,6 +26,10 @@ target_link_libraries(client-ydb_federated_topic-impl PUBLIC cpp-client-ydb_proto ) target_sources(client-ydb_federated_topic-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_write_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_topic_impl.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federation_observer.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session_event.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_write_session.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.windows-x86_64.txt index bea5a60f1e4a..4fdc550e9cf3 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/CMakeLists.windows-x86_64.txt @@ -25,6 +25,10 @@ target_link_libraries(client-ydb_federated_topic-impl PUBLIC cpp-client-ydb_proto ) target_sources(client-ydb_federated_topic-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_write_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_topic_impl.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federation_observer.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session_event.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_write_session.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session.cpp b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session.cpp index df0bf1c8d079..7cfebed230a0 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session.cpp +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/impl/federated_read_session.cpp @@ -17,7 +17,7 @@ NTopic::TTopicClientSettings FromFederated(const TFederatedTopicClientSettings& template <typename TEvent, typename TFederatedEvent> typename std::function<void(TEvent&)> WrapFederatedHandler(std::function<void(TFederatedEvent&)> outerHandler, std::shared_ptr<TDbInfo> db, std::shared_ptr<TEventFederator> federator) { if (outerHandler) { - return [outerHandler, db = std::move(db), &federator](TEvent& ev) { + return [outerHandler, db = std::move(db), federator = std::move(federator)](TEvent& ev) { auto fev = federator->LocateFederate(ev, std::move(db)); return outerHandler(fev); }; diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.darwin-arm64.txt index d090bfafab60..b741639d4562 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.darwin-arm64.txt @@ -36,8 +36,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_federated_topic-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_federated_topic-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/basic_usage_ut.cpp @@ -67,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.darwin-x86_64.txt index 8ae3258bf296..770e555e4285 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.darwin-x86_64.txt @@ -37,8 +37,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_federated_topic-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_federated_topic-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/basic_usage_ut.cpp @@ -68,6 +66,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.linux-aarch64.txt index f5d7b13900c3..60df93e056dd 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.linux-aarch64.txt @@ -39,9 +39,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_federated_topic-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_federated_topic-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/basic_usage_ut.cpp @@ -71,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.linux-x86_64.txt index a70159ebcd07..5cdbf2a0461f 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.linux-x86_64.txt @@ -40,9 +40,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_federated_topic-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_federated_topic-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/basic_usage_ut.cpp @@ -72,6 +69,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.windows-x86_64.txt index 4d6c28c3cda7..0df01dfcce48 100644 --- a/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_federated_topic/ut/CMakeLists.windows-x86_64.txt @@ -61,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.darwin-arm64.txt index 0ab860b6e757..e1d1f956e626 100644 --- a/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_params-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_params-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_params/params_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.darwin-x86_64.txt index 632443160874..7d2ad67056bf 100644 --- a/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_params-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_params-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_params/params_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.linux-aarch64.txt index bf4476c73d4f..0db1581d3154 100644 --- a/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_params-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_params-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_params/params_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.linux-x86_64.txt index 1c3738dc401f..f00f4a6a0df5 100644 --- a/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_params-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_params-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_params/params_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.windows-x86_64.txt index d4eeadcc3588..03c9fa6e57ba 100644 --- a/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_params/ut/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.darwin-arm64.txt index fab78335eeb3..af62d2989a1e 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(cpp-client-ydb_persqueue_core PUBLIC api-grpc-draft api-protos ) +target_sources(cpp-client-ydb_persqueue_core PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h +) generate_enum_serilization(cpp-client-ydb_persqueue_core ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h INCLUDE_HEADERS diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.darwin-x86_64.txt index fab78335eeb3..af62d2989a1e 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(cpp-client-ydb_persqueue_core PUBLIC api-grpc-draft api-protos ) +target_sources(cpp-client-ydb_persqueue_core PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h +) generate_enum_serilization(cpp-client-ydb_persqueue_core ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h INCLUDE_HEADERS diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.linux-aarch64.txt index 6ac95f3166a3..e64bd84e8ebe 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(cpp-client-ydb_persqueue_core PUBLIC api-grpc-draft api-protos ) +target_sources(cpp-client-ydb_persqueue_core PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h +) generate_enum_serilization(cpp-client-ydb_persqueue_core ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h INCLUDE_HEADERS diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.linux-x86_64.txt index 6ac95f3166a3..e64bd84e8ebe 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(cpp-client-ydb_persqueue_core PUBLIC api-grpc-draft api-protos ) +target_sources(cpp-client-ydb_persqueue_core PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h +) generate_enum_serilization(cpp-client-ydb_persqueue_core ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h INCLUDE_HEADERS diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.windows-x86_64.txt index fab78335eeb3..af62d2989a1e 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(cpp-client-ydb_persqueue_core PUBLIC api-grpc-draft api-protos ) +target_sources(cpp-client-ydb_persqueue_core PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h +) generate_enum_serilization(cpp-client-ydb_persqueue_core ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h INCLUDE_HEADERS diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.darwin-arm64.txt index f205192103ba..827dc0713994 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.darwin-arm64.txt @@ -23,6 +23,7 @@ target_link_libraries(client-ydb_persqueue_core-impl PUBLIC cpp-client-ydb_driver ) target_sources(client-ydb_persqueue_core-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session_messages.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/common.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/write_session.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.darwin-x86_64.txt index f205192103ba..827dc0713994 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.darwin-x86_64.txt @@ -23,6 +23,7 @@ target_link_libraries(client-ydb_persqueue_core-impl PUBLIC cpp-client-ydb_driver ) target_sources(client-ydb_persqueue_core-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session_messages.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/common.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/write_session.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.linux-aarch64.txt index 031aae283b54..559674a9d2d6 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.linux-aarch64.txt @@ -24,6 +24,7 @@ target_link_libraries(client-ydb_persqueue_core-impl PUBLIC cpp-client-ydb_driver ) target_sources(client-ydb_persqueue_core-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session_messages.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/common.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/write_session.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.linux-x86_64.txt index 031aae283b54..559674a9d2d6 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.linux-x86_64.txt @@ -24,6 +24,7 @@ target_link_libraries(client-ydb_persqueue_core-impl PUBLIC cpp-client-ydb_driver ) target_sources(client-ydb_persqueue_core-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session_messages.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/common.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/write_session.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.windows-x86_64.txt index f205192103ba..827dc0713994 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/CMakeLists.windows-x86_64.txt @@ -23,6 +23,7 @@ target_link_libraries(client-ydb_persqueue_core-impl PUBLIC cpp-client-ydb_driver ) target_sources(client-ydb_persqueue_core-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session_messages.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/common.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/write_session.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/callback_context.h b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/callback_context.h index 9e7ffe2e6d6f..616a8334c465 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/callback_context.h +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/callback_context.h @@ -4,9 +4,11 @@ #include <util/system/guard.h> #include <util/system/spinlock.h> +#include <map> #include <memory> +#include <mutex> #include <shared_mutex> -#include <vector> +#include <thread> namespace NYdb::NPersQueue { @@ -17,18 +19,62 @@ template <typename TGuardedObject> class TCallbackContext { friend class TContextOwner<TGuardedObject>; + // thread_id -> number of LockShared calls from this thread + using TSharedLockCounter = std::map<std::thread::id, size_t>; + using TSharedLockCounterPtr = std::shared_ptr<TSharedLockCounter>; + using TSpinLockPtr = std::shared_ptr<TSpinLock>; + public: using TMutexPtr = std::shared_ptr<std::shared_mutex>; class TBorrowed { public: - explicit TBorrowed(const TCallbackContext& parent) : Mutex(parent.Mutex) { - Mutex->lock_shared(); + explicit TBorrowed(const TCallbackContext& parent) + : Mutex(parent.Mutex) + , SharedLockCounterMutex(parent.SharedLockCounterMutex) + , SharedLockCounter(parent.SharedLockCounter) + { + // "Recursive shared lock". + // + // https://en.cppreference.com/w/cpp/thread/shared_mutex/lock_shared says: + // If lock_shared is called by a thread that already owns the mutex + // in any mode (exclusive or shared), the behavior is UNDEFINED. + // + // So if a thread calls LockShared more than once without releasing the lock, + // we should call lock_shared only on the first call. + + bool takeLock = false; + + with_lock(*SharedLockCounterMutex) { + auto& counter = SharedLockCounter->emplace(std::this_thread::get_id(), 0).first->second; + ++counter; + takeLock = counter == 1; + } + + if (takeLock) { + Mutex->lock_shared(); + } + Ptr = parent.GuardedObjectPtr.get(); } ~TBorrowed() { - Mutex->unlock_shared(); + bool releaseLock = false; + + with_lock(*SharedLockCounterMutex) { + auto it = SharedLockCounter->find(std::this_thread::get_id()); + Y_ABORT_UNLESS(it != SharedLockCounter->end()); + auto& counter = it->second; + --counter; + if (counter == 0) { + releaseLock = true; + SharedLockCounter->erase(it); + } + } + + if (releaseLock) { + Mutex->unlock_shared(); + } } TGuardedObject* operator->() { @@ -46,12 +92,17 @@ class TCallbackContext { private: TMutexPtr Mutex; TGuardedObject* Ptr = nullptr; + + TSpinLockPtr SharedLockCounterMutex; + TSharedLockCounterPtr SharedLockCounter; }; public: explicit TCallbackContext(std::shared_ptr<TGuardedObject> ptr) : Mutex(std::make_shared<std::shared_mutex>()) , GuardedObjectPtr(std::move(ptr)) + , SharedLockCounterMutex(std::make_shared<TSpinLock>()) + , SharedLockCounter(std::make_shared<TSharedLockCounter>()) {} TBorrowed LockShared() { @@ -75,8 +126,12 @@ class TCallbackContext { } private: + TMutexPtr Mutex; std::shared_ptr<TGuardedObject> GuardedObjectPtr; + + TSpinLockPtr SharedLockCounterMutex; + TSharedLockCounterPtr SharedLockCounter; }; template<typename T> diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.cpp b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.cpp index 12d7e86b53cb..13a5517ff6c2 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.cpp +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/read_session.cpp @@ -57,6 +57,8 @@ TReadSession::TReadSession(const TReadSessionSettings& settings, } TReadSession::~TReadSession() { + Close(TDuration::Zero()); + { TDeferredActions<true> deferred; NYql::TIssues issues; 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 93b23a5749a2..49f40cf3a704 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 @@ -518,6 +518,11 @@ class TRawPartitionStreamEventQueue { (NotReady.empty() ? Ready : NotReady).pop_back(); } + void clear() noexcept { + NotReady.clear(); + Ready.clear(); + } + void SignalReadyEvents(TIntrusivePtr<TPartitionStreamImpl<UseMigrationProtocol>> stream, TReadSessionEventsQueue<UseMigrationProtocol>& queue, TDeferredActions<UseMigrationProtocol>& deferred); @@ -539,6 +544,7 @@ class TRawPartitionStreamEventQueue { TUserRetrievedEventsInfoAccumulator<UseMigrationProtocol>& accumulator, std::deque<TRawPartitionStreamEvent<UseMigrationProtocol>>& queue); +private: std::deque<TRawPartitionStreamEvent<UseMigrationProtocol>> Ready; std::deque<TRawPartitionStreamEvent<UseMigrationProtocol>> NotReady; }; @@ -719,6 +725,14 @@ class TPartitionStreamImpl : public TAPartitionStream<UseMigrationProtocol> { void DeleteNotReadyTail(TDeferredActions<UseMigrationProtocol>& deferred); + void ClearQueue() noexcept { + EventsQueue.clear(); + } + + TRawPartitionStreamEventQueue<UseMigrationProtocol> ExtractQueue() noexcept { + return std::move(EventsQueue); + } + static void GetDataEventImpl(TIntrusivePtr<TPartitionStreamImpl<UseMigrationProtocol>> partitionStream, size_t& maxEventsCount, size_t& maxByteSize, @@ -776,14 +790,27 @@ class TReadSessionEventsQueue: public TBaseSessionEventsQueue<TAReadSessionSetti bool Close(const TASessionClosedEvent<UseMigrationProtocol>& event, TDeferredActions<UseMigrationProtocol>& deferred) { TWaiter waiter; + TVector<TRawPartitionStreamEventQueue<UseMigrationProtocol>> deferredDelete; with_lock (TParent::Mutex) { - if (TParent::Closed) + if (TParent::Closed) { return false; + } + deferredDelete.reserve(TParent::Events.size()); + while (!TParent::Events.empty()) { + auto& event = TParent::Events.front(); + if (!event.IsEmpty()) { + deferredDelete.push_back(event.PartitionStream->ExtractQueue()); + } + TParent::Events.pop(); + } TParent::CloseEvent = event; TParent::Closed = true; waiter = TWaiter(TParent::Waiter.ExtractPromise(), this); } + // Delayed deletion is necessary to avoid deadlock with PushEvent + deferredDelete.clear(); + TReadSessionEventInfo<UseMigrationProtocol> info(event); ApplyHandler(info, deferred); deferred.DeferSignalWaiter(std::move(waiter)); @@ -959,6 +986,8 @@ class TSingleClusterReadSessionImpl : public NPersQueue::TEnableSelfContext<TSin { } + ~TSingleClusterReadSessionImpl(); + void Start(); void ConfirmPartitionStreamCreate(const TPartitionStreamImpl<UseMigrationProtocol>* partitionStream, TMaybe<ui64> readOffset, TMaybe<ui64> commitOffset); void ConfirmPartitionStreamDestroy(TPartitionStreamImpl<UseMigrationProtocol>* partitionStream); 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 a7eda27d9fd7..c973b0441eef 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 @@ -77,7 +77,7 @@ void TPartitionStreamImpl<UseMigrationProtocol>::Commit(ui64 startOffset, ui64 e Commits.EraseInterval(0, endOffset); // Drop only committed ranges; } for (auto range: toCommit) { - sessionShared->Commit(this, range.first, range.second); + sessionShared->Commit(this, range.first, Min(range.second, endOffset)); } } } @@ -225,6 +225,14 @@ void TRawPartitionStreamEventQueue<UseMigrationProtocol>::DeleteNotReadyTail(TDe //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // TSingleClusterReadSessionImpl +template<bool UseMigrationProtocol> +TSingleClusterReadSessionImpl<UseMigrationProtocol>::~TSingleClusterReadSessionImpl() { + for (auto&& [_, partitionStream] : PartitionStreams) { + partitionStream->ClearQueue(); + } +} + + template<bool UseMigrationProtocol> TStringBuilder TSingleClusterReadSessionImpl<UseMigrationProtocol>::GetLogPrefix() const { return TStringBuilder() << GetDatabaseLogPrefix(Database) << "[" << SessionId << "] [" << ClusterName << "] "; @@ -1057,6 +1065,7 @@ inline void TSingleClusterReadSessionImpl<true>::OnReadDoneImpl( PartitionStreams[partitionStream->GetAssignId()]; if (currentPartitionStream) { CookieMapping.RemoveMapping(currentPartitionStream->GetPartitionStreamId()); + bool pushRes = EventsQueue->PushEvent( currentPartitionStream, TReadSessionEvent::TPartitionStreamClosedEvent( diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.darwin-arm64.txt index 1d1d9438a9f2..26add22793cb 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.darwin-arm64.txt @@ -34,8 +34,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/common_ut.cpp @@ -70,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.darwin-x86_64.txt index 434fe6ea0299..fbbe5d9c4ca5 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.darwin-x86_64.txt @@ -35,8 +35,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/common_ut.cpp @@ -71,6 +69,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.linux-aarch64.txt index 0583c9c77440..5995d2b891cc 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.linux-aarch64.txt @@ -37,9 +37,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/common_ut.cpp @@ -74,6 +71,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.linux-x86_64.txt index 55e744f380e2..18473ea5103f 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.linux-x86_64.txt @@ -38,9 +38,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_persqueue_core-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/common_ut.cpp @@ -75,6 +72,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.windows-x86_64.txt index 48af9e1f445e..1afdef6e5717 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/CMakeLists.windows-x86_64.txt @@ -64,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/read_session_ut.cpp b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/read_session_ut.cpp index 627d7c0f257d..03c386b16421 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/read_session_ut.cpp +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/read_session_ut.cpp @@ -1579,8 +1579,8 @@ Y_UNIT_TEST_SUITE(ReadSessionImplTest) { } for (const auto& range : req.offset_ranges()) { Cerr << "RANGE " << range.start_offset() << " " << range.end_offset() << "\n"; - if (range.start_offset() == 10 && range.end_offset() == 12) has1 = true; - else if (range.start_offset() == 0 && range.end_offset() == 10) has2 = true; + if (range.start_offset() == 3 && range.end_offset() == 12) has1 = true; + else if (range.start_offset() == 0 && range.end_offset() == 3) has2 = true; else UNIT_ASSERT(false); } })); diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.darwin-arm64.txt index 664861b823e1..76f2d93ff0c8 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.darwin-arm64.txt @@ -25,6 +25,10 @@ target_link_libraries(ydb_persqueue_core-ut-ut_utils PUBLIC cpp-client-ydb_table ) target_sources(ydb_persqueue_core-ut-ut_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/sdk_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_utils.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_server.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/ut_utils.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/data_plane_helpers.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_server.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/ut_utils.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.darwin-x86_64.txt index 664861b823e1..76f2d93ff0c8 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.darwin-x86_64.txt @@ -25,6 +25,10 @@ target_link_libraries(ydb_persqueue_core-ut-ut_utils PUBLIC cpp-client-ydb_table ) target_sources(ydb_persqueue_core-ut-ut_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/sdk_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_utils.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_server.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/ut_utils.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/data_plane_helpers.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_server.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/ut_utils.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.linux-aarch64.txt index 13f0828a1ed4..be0815ce5277 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.linux-aarch64.txt @@ -26,6 +26,10 @@ target_link_libraries(ydb_persqueue_core-ut-ut_utils PUBLIC cpp-client-ydb_table ) target_sources(ydb_persqueue_core-ut-ut_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/sdk_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_utils.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_server.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/ut_utils.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/data_plane_helpers.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_server.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/ut_utils.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.linux-x86_64.txt index 13f0828a1ed4..be0815ce5277 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.linux-x86_64.txt @@ -26,6 +26,10 @@ target_link_libraries(ydb_persqueue_core-ut-ut_utils PUBLIC cpp-client-ydb_table ) target_sources(ydb_persqueue_core-ut-ut_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/sdk_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_utils.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_server.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/ut_utils.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/data_plane_helpers.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_server.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/ut_utils.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.windows-x86_64.txt index 664861b823e1..76f2d93ff0c8 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/CMakeLists.windows-x86_64.txt @@ -25,6 +25,10 @@ target_link_libraries(ydb_persqueue_core-ut-ut_utils PUBLIC cpp-client-ydb_table ) target_sources(ydb_persqueue_core-ut-ut_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/sdk_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_utils.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_server.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/ut_utils.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/data_plane_helpers.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/test_server.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/ut_utils.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/data_plane_helpers.cpp b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/data_plane_helpers.cpp index 6d29aa27c192..0ef9b8750f36 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/data_plane_helpers.cpp +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/ut_utils/data_plane_helpers.cpp @@ -99,6 +99,4 @@ namespace NKikimr::NPersQueueTests { } return {}; } - - } diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.darwin-arm64.txt index 9a0f943795c8..6b3f85609563 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(with_offset_ranges_mode_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(with_offset_ranges_mode_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/common_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.darwin-x86_64.txt index 9d2af3535911..175462a8dfad 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(with_offset_ranges_mode_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(with_offset_ranges_mode_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/common_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.linux-aarch64.txt index b43f232adec9..b2734e933bc4 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(with_offset_ranges_mode_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(with_offset_ranges_mode_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/common_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.linux-x86_64.txt index 5db34406b64f..35d110e7d689 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(with_offset_ranges_mode_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(with_offset_ranges_mode_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/common_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.windows-x86_64.txt index 9cc17131a2dc..4659c9ef7c5e 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/ut/with_offset_ranges_mode_ut/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.darwin-arm64.txt index 4d63969baad8..a422885d93aa 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.darwin-arm64.txt @@ -15,3 +15,6 @@ target_link_libraries(cpp-client-ydb_persqueue_public INTERFACE cpp-client-ydb_persqueue_core client-ydb_persqueue_public-codecs ) +target_sources(cpp-client-ydb_persqueue_public INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/persqueue.h +) diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.darwin-x86_64.txt index 4d63969baad8..a422885d93aa 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.darwin-x86_64.txt @@ -15,3 +15,6 @@ target_link_libraries(cpp-client-ydb_persqueue_public INTERFACE cpp-client-ydb_persqueue_core client-ydb_persqueue_public-codecs ) +target_sources(cpp-client-ydb_persqueue_public INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/persqueue.h +) diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.linux-aarch64.txt index 66a951e2cfd4..730e4884084b 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.linux-aarch64.txt @@ -16,3 +16,6 @@ target_link_libraries(cpp-client-ydb_persqueue_public INTERFACE cpp-client-ydb_persqueue_core client-ydb_persqueue_public-codecs ) +target_sources(cpp-client-ydb_persqueue_public INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/persqueue.h +) diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.linux-x86_64.txt index 66a951e2cfd4..730e4884084b 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.linux-x86_64.txt @@ -16,3 +16,6 @@ target_link_libraries(cpp-client-ydb_persqueue_public INTERFACE cpp-client-ydb_persqueue_core client-ydb_persqueue_public-codecs ) +target_sources(cpp-client-ydb_persqueue_public INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/persqueue.h +) diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.windows-x86_64.txt index 4d63969baad8..a422885d93aa 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_public/CMakeLists.windows-x86_64.txt @@ -15,3 +15,6 @@ target_link_libraries(cpp-client-ydb_persqueue_public INTERFACE cpp-client-ydb_persqueue_core client-ydb_persqueue_public-codecs ) +target_sources(cpp-client-ydb_persqueue_public INTERFACE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/persqueue.h +) diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.darwin-arm64.txt index 06fc4a13ebda..e3cbf4df0b18 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.darwin-arm64.txt @@ -18,5 +18,6 @@ target_link_libraries(client-ydb_persqueue_public-codecs PUBLIC api-protos ) target_sources(client-ydb_persqueue_public-codecs PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/codecs.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/codecs.cpp ) diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.darwin-x86_64.txt index 06fc4a13ebda..e3cbf4df0b18 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.darwin-x86_64.txt @@ -18,5 +18,6 @@ target_link_libraries(client-ydb_persqueue_public-codecs PUBLIC api-protos ) target_sources(client-ydb_persqueue_public-codecs PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/codecs.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/codecs.cpp ) diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.linux-aarch64.txt index 47a2fe8b31a8..c43a84040fa9 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.linux-aarch64.txt @@ -19,5 +19,6 @@ target_link_libraries(client-ydb_persqueue_public-codecs PUBLIC api-protos ) target_sources(client-ydb_persqueue_public-codecs PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/codecs.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/codecs.cpp ) diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.linux-x86_64.txt index 47a2fe8b31a8..c43a84040fa9 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.linux-x86_64.txt @@ -19,5 +19,6 @@ target_link_libraries(client-ydb_persqueue_public-codecs PUBLIC api-protos ) target_sources(client-ydb_persqueue_public-codecs PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/codecs.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/codecs.cpp ) diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.windows-x86_64.txt index 06fc4a13ebda..e3cbf4df0b18 100644 --- a/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/CMakeLists.windows-x86_64.txt @@ -18,5 +18,6 @@ target_link_libraries(client-ydb_persqueue_public-codecs PUBLIC api-protos ) target_sources(client-ydb_persqueue_public-codecs PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/codecs.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_persqueue_public/codecs/codecs.cpp ) diff --git a/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.darwin-arm64.txt index 6b201d4ea70e..b1a50c6510e9 100644 --- a/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.darwin-arm64.txt @@ -23,6 +23,10 @@ target_link_libraries(cpp-client-ydb_query PUBLIC client-ydb_types-operation ) target_sources(cpp-client-ydb_query PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/client.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/query.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/stats.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/tx.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/client.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/query.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/stats.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.darwin-x86_64.txt index 6b201d4ea70e..b1a50c6510e9 100644 --- a/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.darwin-x86_64.txt @@ -23,6 +23,10 @@ target_link_libraries(cpp-client-ydb_query PUBLIC client-ydb_types-operation ) target_sources(cpp-client-ydb_query PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/client.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/query.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/stats.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/tx.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/client.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/query.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/stats.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.linux-aarch64.txt index c9cf47ea1542..8862f9542a1e 100644 --- a/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.linux-aarch64.txt @@ -24,6 +24,10 @@ target_link_libraries(cpp-client-ydb_query PUBLIC client-ydb_types-operation ) target_sources(cpp-client-ydb_query PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/client.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/query.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/stats.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/tx.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/client.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/query.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/stats.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.linux-x86_64.txt index c9cf47ea1542..8862f9542a1e 100644 --- a/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.linux-x86_64.txt @@ -24,6 +24,10 @@ target_link_libraries(cpp-client-ydb_query PUBLIC client-ydb_types-operation ) target_sources(cpp-client-ydb_query PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/client.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/query.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/stats.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/tx.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/client.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/query.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/stats.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.windows-x86_64.txt index 6b201d4ea70e..b1a50c6510e9 100644 --- a/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_query/CMakeLists.windows-x86_64.txt @@ -23,6 +23,10 @@ target_link_libraries(cpp-client-ydb_query PUBLIC client-ydb_types-operation ) target_sources(cpp-client-ydb_query PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/client.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/query.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/stats.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/tx.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/client.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/query.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/stats.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-arm64.txt index 5636e882602a..c0b5c5a17a31 100644 --- a/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-arm64.txt @@ -17,6 +17,7 @@ target_link_libraries(client-ydb_query-impl PUBLIC cpp-client-ydb_proto ) target_sources(client-ydb_query-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.h ${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.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_query/impl/CMakeLists.darwin-x86_64.txt index 5636e882602a..c0b5c5a17a31 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 @@ -17,6 +17,7 @@ target_link_libraries(client-ydb_query-impl PUBLIC cpp-client-ydb_proto ) target_sources(client-ydb_query-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.h ${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 09ad124d137d..dc2eeff183d7 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 @@ -18,6 +18,7 @@ target_link_libraries(client-ydb_query-impl PUBLIC cpp-client-ydb_proto ) target_sources(client-ydb_query-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.h ${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 09ad124d137d..dc2eeff183d7 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 @@ -18,6 +18,7 @@ target_link_libraries(client-ydb_query-impl PUBLIC cpp-client-ydb_proto ) target_sources(client-ydb_query-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.h ${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 5636e882602a..c0b5c5a17a31 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 @@ -17,6 +17,7 @@ target_link_libraries(client-ydb_query-impl PUBLIC cpp-client-ydb_proto ) target_sources(client-ydb_query-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_query/impl/exec_query.h ${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_result/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.darwin-arm64.txt index 6a790873dbe4..82198ca6427e 100644 --- a/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.darwin-arm64.txt @@ -22,8 +22,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_result-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_result-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_result/result_ut.cpp @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.darwin-x86_64.txt index ef9d161b74c7..ab43b0be8edf 100644 --- a/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.darwin-x86_64.txt @@ -23,8 +23,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_result-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_result-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_result/result_ut.cpp @@ -54,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.linux-aarch64.txt index e769fb3708ac..6cacd2145b10 100644 --- a/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.linux-aarch64.txt @@ -25,9 +25,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_result-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_result-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_result/result_ut.cpp @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.linux-x86_64.txt index a6a550611f43..6e3712c8a3e4 100644 --- a/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.linux-x86_64.txt @@ -26,9 +26,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_result-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_result-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_result/result_ut.cpp @@ -58,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.windows-x86_64.txt index 1e70bf161c75..96804584b979 100644 --- a/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_result/ut/CMakeLists.windows-x86_64.txt @@ -47,6 +47,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 596e38a85846..5b0d6a6c8034 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 @@ -786,6 +786,13 @@ NThreading::TFuture<std::pair<TPlainStatus, TTableClient::TImpl::TReadTableStrea request.set_batch_limit_rows(*settings.BatchLimitRows_); } + if (settings.ReturnNotNullAsOptional_) { + request.set_return_not_null_data_as_optional( + settings.ReturnNotNullAsOptional_.GetRef() + ? Ydb::FeatureFlag::ENABLED + : Ydb::FeatureFlag::DISABLED); + } + auto promise = NewPromise<std::pair<TPlainStatus, TReadTableStreamProcessorPtr>>(); Connections_->StartReadStream<Ydb::Table::V1::TableService, Ydb::Table::ReadTableRequest, Ydb::Table::ReadTableResponse>( diff --git a/ydb/public/sdk/cpp/client/ydb_table/table.h b/ydb/public/sdk/cpp/client/ydb_table/table.h index ee1a176ee708..8355cfa13f6c 100644 --- a/ydb/public/sdk/cpp/client/ydb_table/table.h +++ b/ydb/public/sdk/cpp/client/ydb_table/table.h @@ -1577,6 +1577,8 @@ struct TReadTableSettings : public TRequestSettings<TReadTableSettings> { FLUENT_SETTING_OPTIONAL(ui64, BatchLimitBytes); FLUENT_SETTING_OPTIONAL(ui64, BatchLimitRows); + + FLUENT_SETTING_OPTIONAL(bool, ReturnNotNullAsOptional); }; //! Represents all session operations diff --git a/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.darwin-arm64.txt index afd2882e3971..d692f73f6931 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.darwin-arm64.txt @@ -32,6 +32,7 @@ target_link_libraries(cpp-client-ydb_topic PUBLIC cpp-client-ydb_table ) target_sources(cpp-client-ydb_topic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/topic.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/proto_accessor.cpp ) generate_enum_serilization(cpp-client-ydb_topic diff --git a/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.darwin-x86_64.txt index afd2882e3971..d692f73f6931 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.darwin-x86_64.txt @@ -32,6 +32,7 @@ target_link_libraries(cpp-client-ydb_topic PUBLIC cpp-client-ydb_table ) target_sources(cpp-client-ydb_topic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/topic.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/proto_accessor.cpp ) generate_enum_serilization(cpp-client-ydb_topic diff --git a/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.linux-aarch64.txt index e62148bcc980..ca8a0b07477c 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.linux-aarch64.txt @@ -33,6 +33,7 @@ target_link_libraries(cpp-client-ydb_topic PUBLIC cpp-client-ydb_table ) target_sources(cpp-client-ydb_topic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/topic.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/proto_accessor.cpp ) generate_enum_serilization(cpp-client-ydb_topic diff --git a/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.linux-x86_64.txt index e62148bcc980..ca8a0b07477c 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.linux-x86_64.txt @@ -33,6 +33,7 @@ target_link_libraries(cpp-client-ydb_topic PUBLIC cpp-client-ydb_table ) target_sources(cpp-client-ydb_topic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/topic.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/proto_accessor.cpp ) generate_enum_serilization(cpp-client-ydb_topic diff --git a/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.windows-x86_64.txt index afd2882e3971..d692f73f6931 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/CMakeLists.windows-x86_64.txt @@ -32,6 +32,7 @@ target_link_libraries(cpp-client-ydb_topic PUBLIC cpp-client-ydb_table ) target_sources(cpp-client-ydb_topic PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/topic.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/proto_accessor.cpp ) generate_enum_serilization(cpp-client-ydb_topic diff --git a/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.darwin-arm64.txt index a417b3b9cd1e..cbf8e0519f88 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.darwin-arm64.txt @@ -18,5 +18,6 @@ target_link_libraries(client-ydb_topic-codecs PUBLIC api-protos ) target_sources(client-ydb_topic-codecs PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/codecs/codecs.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/codecs/codecs.cpp ) diff --git a/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.darwin-x86_64.txt index a417b3b9cd1e..cbf8e0519f88 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.darwin-x86_64.txt @@ -18,5 +18,6 @@ target_link_libraries(client-ydb_topic-codecs PUBLIC api-protos ) target_sources(client-ydb_topic-codecs PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/codecs/codecs.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/codecs/codecs.cpp ) diff --git a/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.linux-aarch64.txt index fe17569b4f5f..452ab4c2bffe 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.linux-aarch64.txt @@ -19,5 +19,6 @@ target_link_libraries(client-ydb_topic-codecs PUBLIC api-protos ) target_sources(client-ydb_topic-codecs PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/codecs/codecs.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/codecs/codecs.cpp ) diff --git a/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.linux-x86_64.txt index fe17569b4f5f..452ab4c2bffe 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.linux-x86_64.txt @@ -19,5 +19,6 @@ target_link_libraries(client-ydb_topic-codecs PUBLIC api-protos ) target_sources(client-ydb_topic-codecs PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/codecs/codecs.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/codecs/codecs.cpp ) diff --git a/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.windows-x86_64.txt index a417b3b9cd1e..cbf8e0519f88 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/codecs/CMakeLists.windows-x86_64.txt @@ -18,5 +18,6 @@ target_link_libraries(client-ydb_topic-codecs PUBLIC api-protos ) target_sources(client-ydb_topic-codecs PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/codecs/codecs.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/codecs/codecs.cpp ) diff --git a/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.darwin-arm64.txt index 5d27cbf75206..e07cf9af2a86 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.darwin-arm64.txt @@ -25,6 +25,11 @@ target_link_libraries(client-ydb_topic-impl PUBLIC cpp-client-ydb_proto ) target_sources(client-ydb_topic-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/executor.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/topic_impl.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/executor.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session_event.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/counters.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.darwin-x86_64.txt index 5d27cbf75206..e07cf9af2a86 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.darwin-x86_64.txt @@ -25,6 +25,11 @@ target_link_libraries(client-ydb_topic-impl PUBLIC cpp-client-ydb_proto ) target_sources(client-ydb_topic-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/executor.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/topic_impl.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/executor.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session_event.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/counters.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.linux-aarch64.txt index 97dfcfbcca04..50eb072b75ab 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.linux-aarch64.txt @@ -26,6 +26,11 @@ target_link_libraries(client-ydb_topic-impl PUBLIC cpp-client-ydb_proto ) target_sources(client-ydb_topic-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/executor.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/topic_impl.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/executor.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session_event.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/counters.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.linux-x86_64.txt index 97dfcfbcca04..50eb072b75ab 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.linux-x86_64.txt @@ -26,6 +26,11 @@ target_link_libraries(client-ydb_topic-impl PUBLIC cpp-client-ydb_proto ) target_sources(client-ydb_topic-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/executor.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/topic_impl.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/executor.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session_event.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/counters.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.windows-x86_64.txt index 5d27cbf75206..e07cf9af2a86 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/impl/CMakeLists.windows-x86_64.txt @@ -25,6 +25,11 @@ target_link_libraries(client-ydb_topic-impl PUBLIC cpp-client-ydb_proto ) target_sources(client-ydb_topic-impl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/executor.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/write_session_impl.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/topic_impl.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/executor.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session_event.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/impl/counters.cpp diff --git a/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session.cpp b/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session.cpp index 949abf9ab11c..92fd3b210fe1 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session.cpp +++ b/ydb/public/sdk/cpp/client/ydb_topic/impl/read_session.cpp @@ -34,6 +34,8 @@ TReadSession::TReadSession(const TReadSessionSettings& settings, } TReadSession::~TReadSession() { + Close(TDuration::Zero()); + Abort(EStatus::ABORTED, "Aborted"); ClearAllEvents(); 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 8c527ac8437f..1b25030a8a4d 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 @@ -317,7 +317,6 @@ class TWriteSessionImpl : public TContinuationTokenIssuer, }; THandleResult OnErrorImpl(NYdb::TPlainStatus&& status); // true - should Start(), false - should Close(), empty - no action - public: TWriteSessionImpl(const TWriteSessionSettings& settings, std::shared_ptr<TTopicClient::TImpl> client, diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.darwin-arm64.txt index 8aa8c654766a..67faa14f5c65 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.darwin-arm64.txt @@ -36,8 +36,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_topic-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_topic-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/basic_usage_ut.cpp @@ -70,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.darwin-x86_64.txt index aab41b843efd..5019e120bf37 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.darwin-x86_64.txt @@ -37,8 +37,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_topic-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_topic-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/basic_usage_ut.cpp @@ -71,6 +69,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.linux-aarch64.txt index e9b30bcfbd99..417b1263f51d 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.linux-aarch64.txt @@ -39,9 +39,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_topic-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_topic-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/basic_usage_ut.cpp @@ -74,6 +71,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.linux-x86_64.txt index 45c90bfdb512..0bc937fe4c68 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.linux-x86_64.txt @@ -40,9 +40,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_topic-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_topic-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/basic_usage_ut.cpp @@ -75,6 +72,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.windows-x86_64.txt index c41eb4e0dd3f..f692b5e12bb3 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/CMakeLists.windows-x86_64.txt @@ -64,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/basic_usage_ut.cpp b/ydb/public/sdk/cpp/client/ydb_topic/ut/basic_usage_ut.cpp index d0b53205782a..09a378760e4b 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/ut/basic_usage_ut.cpp +++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/basic_usage_ut.cpp @@ -697,9 +697,29 @@ Y_UNIT_TEST_SUITE(BasicUsage) { UNIT_ASSERT_VALUES_EQUAL(stats->GetEndOffset(), count); } +} // Y_UNIT_TEST_SUITE(BasicUsage) +Y_UNIT_TEST_SUITE(TSettingsValidation) { + Y_UNIT_TEST(TWriteSessionProducerSettings) { + TTopicSdkTestSetup setup(TEST_CASE_NAME); + TTopicClient client = setup.MakeClient(); + { + auto writeSettings = TWriteSessionSettings() + .Path(TEST_TOPIC) + .ProducerId("something") + .DeduplicationEnabled(false); + try { + auto writeSession = client.CreateWriteSession(writeSettings); + auto event = writeSession->GetEvent(true); + UNIT_ASSERT(event.Defined()); + auto* closedEvent = std::get_if<TSessionClosedEvent>(&event.GetRef()); + UNIT_ASSERT(closedEvent); + } catch (NYdb::TContractViolation&) { + //pass + } + } + } +} // Y_UNIT_TEST_SUITE(TSettingsValidation) -} - -} +} // namespace diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/describe_topic_ut.cpp b/ydb/public/sdk/cpp/client/ydb_topic/ut/describe_topic_ut.cpp index 6d262b67319a..4cc3a387e4f9 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/ut/describe_topic_ut.cpp +++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/describe_topic_ut.cpp @@ -1,6 +1,8 @@ #include "ut_utils/topic_sdk_test_setup.h" +#include <format> #include <ydb/library/persqueue/topic_parser_public/topic_parser.h> +#include <ydb/public/api/protos/persqueue_error_codes_v1.pb.h> #include <ydb/public/sdk/cpp/client/ydb_topic/topic.h> #include <ydb/public/sdk/cpp/client/ydb_persqueue_core/persqueue.h> #include <ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/common.h> @@ -10,8 +12,6 @@ #include <library/cpp/threading/future/future.h> #include <library/cpp/threading/future/async.h> -#include <future> - namespace NYdb::NTopic::NTests { Y_UNIT_TEST_SUITE(Describe) { @@ -344,5 +344,73 @@ namespace NYdb::NTopic::NTests { DescribeConsumer(setup, client, false, false, true, true); DescribePartition(setup, client, false, false, true, true); } + + TDescribePartitionResult RunPermissionTest(TTopicSdkTestSetup& setup, int userId, bool existingTopic, bool allowUpdateRow, bool allowDescribeSchema) { + TString authToken = TStringBuilder() << "x-user-" << userId << "@builtin"; + Cerr << std::format("=== existingTopic={} allowUpdateRow={} allowDescribeSchema={} authToken={}\n", + existingTopic, allowUpdateRow, allowDescribeSchema, std::string(authToken)); + + auto driverConfig = setup.MakeDriverConfig().SetAuthToken(authToken); + auto client = TTopicClient(TDriver(driverConfig)); + auto settings = TDescribePartitionSettings().IncludeLocation(true); + i64 testPartitionId = 0; + + NACLib::TDiffACL acl; + if (allowDescribeSchema) { + acl.AddAccess(NACLib::EAccessType::Allow, NACLib::DescribeSchema, authToken); + } + if (allowUpdateRow) { + acl.AddAccess(NACLib::EAccessType::Allow, NACLib::UpdateRow, authToken); + } + setup.GetServer().AnnoyingClient->ModifyACL("/Root", TEST_TOPIC, acl.SerializeAsString()); + + return client.DescribePartition(existingTopic ? TEST_TOPIC : "bad-topic", testPartitionId, settings).GetValueSync(); + } + + Y_UNIT_TEST(DescribePartitionPermissions) { + TTopicSdkTestSetup setup(TEST_CASE_NAME); + setup.GetServer().EnableLogs({NKikimrServices::TX_PROXY_SCHEME_CACHE, NKikimrServices::SCHEME_BOARD_SUBSCRIBER}, NActors::NLog::PRI_TRACE); + + int userId = 0; + + struct Expectation { + bool existingTopic; + bool allowUpdateRow; + bool allowDescribeSchema; + EStatus status; + NYql::TIssueCode issueCode; + }; + + std::vector<Expectation> expectations{ + {0, 0, 0, EStatus::SCHEME_ERROR, Ydb::PersQueue::ErrorCode::ACCESS_DENIED}, + {0, 0, 1, EStatus::SCHEME_ERROR, Ydb::PersQueue::ErrorCode::ACCESS_DENIED}, + {0, 1, 0, EStatus::SCHEME_ERROR, Ydb::PersQueue::ErrorCode::ACCESS_DENIED}, + {0, 1, 1, EStatus::SCHEME_ERROR, Ydb::PersQueue::ErrorCode::ACCESS_DENIED}, + {1, 0, 0, EStatus::SCHEME_ERROR, Ydb::PersQueue::ErrorCode::ACCESS_DENIED}, + {1, 0, 1, EStatus::SUCCESS, 0}, + {1, 1, 0, EStatus::SUCCESS, 0}, + {1, 1, 1, EStatus::SUCCESS, 0}, + }; + + for (auto [existing, update, describe, status, issue] : expectations) { + auto result = RunPermissionTest(setup, userId++, existing, update, describe); + auto resultStatus = result.GetStatus(); + auto line = TStringBuilder() << "=== status=" << resultStatus; + NYql::TIssueCode resultIssue = 0; + if (!result.GetIssues().Empty()) { + resultIssue = result.GetIssues().begin()->GetCode(); + line << " issueCode=" << resultIssue; + } + Cerr << (line << " issues=" << result.GetIssues().ToOneLineString() << Endl); + + UNIT_ASSERT_EQUAL(resultStatus, status); + UNIT_ASSERT_EQUAL(resultIssue, issue); + if (resultStatus == EStatus::SUCCESS) { + auto& p = result.GetPartitionDescription().GetPartition(); + UNIT_ASSERT(p.GetActive()); + UNIT_ASSERT(p.GetPartitionLocation().Defined()); + } + } + } } } diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/local_partition_ut.cpp b/ydb/public/sdk/cpp/client/ydb_topic/ut/local_partition_ut.cpp index d99bb01a08ab..07de4d1d3d22 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/ut/local_partition_ut.cpp +++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/local_partition_ut.cpp @@ -359,4 +359,4 @@ namespace NYdb::NTopic::NTests { writeSession->Close(); } } -} \ No newline at end of file +} diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.darwin-arm64.txt index d73cda6e6205..0d897bea74df 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.darwin-arm64.txt @@ -24,6 +24,8 @@ target_link_libraries(ydb_topic-ut-ut_utils PUBLIC cpp-client-ydb_table ) target_sources(ydb_topic-ut-ut_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/managed_executor.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/topic_sdk_test_setup.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/managed_executor.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/topic_sdk_test_setup.cpp ) diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.darwin-x86_64.txt index d73cda6e6205..0d897bea74df 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.darwin-x86_64.txt @@ -24,6 +24,8 @@ target_link_libraries(ydb_topic-ut-ut_utils PUBLIC cpp-client-ydb_table ) target_sources(ydb_topic-ut-ut_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/managed_executor.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/topic_sdk_test_setup.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/managed_executor.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/topic_sdk_test_setup.cpp ) diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.linux-aarch64.txt index 2867a0d1f07f..c483c4fbe42a 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.linux-aarch64.txt @@ -25,6 +25,8 @@ target_link_libraries(ydb_topic-ut-ut_utils PUBLIC cpp-client-ydb_table ) target_sources(ydb_topic-ut-ut_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/managed_executor.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/topic_sdk_test_setup.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/managed_executor.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/topic_sdk_test_setup.cpp ) diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.linux-x86_64.txt index 2867a0d1f07f..c483c4fbe42a 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.linux-x86_64.txt @@ -25,6 +25,8 @@ target_link_libraries(ydb_topic-ut-ut_utils PUBLIC cpp-client-ydb_table ) target_sources(ydb_topic-ut-ut_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/managed_executor.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/topic_sdk_test_setup.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/managed_executor.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/topic_sdk_test_setup.cpp ) diff --git a/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.windows-x86_64.txt index d73cda6e6205..0d897bea74df 100644 --- a/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/CMakeLists.windows-x86_64.txt @@ -24,6 +24,8 @@ target_link_libraries(ydb_topic-ut-ut_utils PUBLIC cpp-client-ydb_table ) target_sources(ydb_topic-ut-ut_utils PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/managed_executor.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/topic_sdk_test_setup.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/managed_executor.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_topic/ut/ut_utils/topic_sdk_test_setup.cpp ) diff --git a/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.darwin-arm64.txt index 4e7838507f1a..058e1e348779 100644 --- a/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.darwin-arm64.txt @@ -24,8 +24,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_value-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_value-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_value/value_ut.cpp @@ -55,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.darwin-x86_64.txt index 76df06562e33..8103800770d4 100644 --- a/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.darwin-x86_64.txt @@ -25,8 +25,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_value-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-public-sdk-cpp-client-ydb_value-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_value/value_ut.cpp @@ -56,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.linux-aarch64.txt index c5cd47be4677..db8edb33d26f 100644 --- a/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.linux-aarch64.txt @@ -27,9 +27,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_value-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_value-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_value/value_ut.cpp @@ -59,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.linux-x86_64.txt index 987364b15964..9732e3fb15ad 100644 --- a/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.linux-x86_64.txt @@ -28,9 +28,6 @@ target_link_options(ydb-public-sdk-cpp-client-ydb_value-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-public-sdk-cpp-client-ydb_value-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/client/ydb_value/value_ut.cpp @@ -60,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.windows-x86_64.txt index 5069ac779b1c..64b6e7545c08 100644 --- a/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/client/ydb_value/ut/CMakeLists.windows-x86_64.txt @@ -49,6 +49,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.darwin-arm64.txt index b5869ecb9486..4d51e8645197 100644 --- a/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.darwin-arm64.txt @@ -18,8 +18,6 @@ target_link_options(basic_example PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(basic_example PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/basic_example/main.cpp diff --git a/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.darwin-x86_64.txt index 89569d4649d4..4f39f7e95707 100644 --- a/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.darwin-x86_64.txt @@ -19,8 +19,6 @@ target_link_options(basic_example PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(basic_example PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/basic_example/main.cpp diff --git a/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.linux-aarch64.txt index d856b27c723a..7d290264c462 100644 --- a/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(basic_example PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(basic_example PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/basic_example/main.cpp diff --git a/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.linux-x86_64.txt index e89b9d97e201..ab45b6389166 100644 --- a/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/basic_example/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(basic_example PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(basic_example PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/basic_example/main.cpp diff --git a/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.darwin-arm64.txt index 2ae13931a484..81e785fdadd5 100644 --- a/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.darwin-arm64.txt @@ -18,8 +18,6 @@ target_link_options(bulk_upsert_simple PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(bulk_upsert_simple PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/bulk_upsert_simple/main.cpp diff --git a/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.darwin-x86_64.txt index f4173284097f..a569f6110e65 100644 --- a/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.darwin-x86_64.txt @@ -19,8 +19,6 @@ target_link_options(bulk_upsert_simple PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(bulk_upsert_simple PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/bulk_upsert_simple/main.cpp diff --git a/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.linux-aarch64.txt index 593b8a074563..ba49663a69ae 100644 --- a/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(bulk_upsert_simple PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(bulk_upsert_simple PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/bulk_upsert_simple/main.cpp diff --git a/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.linux-x86_64.txt index 78f142f7e80f..1d25f8196716 100644 --- a/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/bulk_upsert_simple/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(bulk_upsert_simple PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(bulk_upsert_simple PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/bulk_upsert_simple/main.cpp diff --git a/ydb/public/sdk/cpp/examples/pagination/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/pagination/CMakeLists.darwin-arm64.txt index b62e3ed2541e..8c9fabfe7968 100644 --- a/ydb/public/sdk/cpp/examples/pagination/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/examples/pagination/CMakeLists.darwin-arm64.txt @@ -18,8 +18,6 @@ target_link_options(pagination PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(pagination PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/pagination/main.cpp diff --git a/ydb/public/sdk/cpp/examples/pagination/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/examples/pagination/CMakeLists.darwin-x86_64.txt index 5fdaf70b411d..d29e9e000796 100644 --- a/ydb/public/sdk/cpp/examples/pagination/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/pagination/CMakeLists.darwin-x86_64.txt @@ -19,8 +19,6 @@ target_link_options(pagination PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(pagination PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/pagination/main.cpp diff --git a/ydb/public/sdk/cpp/examples/pagination/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/examples/pagination/CMakeLists.linux-aarch64.txt index 68a6336fbc81..acdfe1844abd 100644 --- a/ydb/public/sdk/cpp/examples/pagination/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/examples/pagination/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(pagination PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(pagination PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/pagination/main.cpp diff --git a/ydb/public/sdk/cpp/examples/pagination/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/examples/pagination/CMakeLists.linux-x86_64.txt index 83ab5af0f12e..d0c4d4105436 100644 --- a/ydb/public/sdk/cpp/examples/pagination/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/pagination/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(pagination PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(pagination PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/pagination/main.cpp diff --git a/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.darwin-arm64.txt index 0c015c3a07be..acba86538403 100644 --- a/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.darwin-arm64.txt @@ -18,8 +18,6 @@ target_link_options(secondary_index PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(secondary_index PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index/main.cpp diff --git a/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.darwin-x86_64.txt index a73049d49482..3c15f8d2ed02 100644 --- a/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.darwin-x86_64.txt @@ -19,8 +19,6 @@ target_link_options(secondary_index PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(secondary_index PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index/main.cpp diff --git a/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.linux-aarch64.txt index 2ccc24de8756..48e6642eef9e 100644 --- a/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(secondary_index PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(secondary_index PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index/main.cpp diff --git a/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.linux-x86_64.txt index a7ef16f59f12..40fb58223bad 100644 --- a/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/secondary_index/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(secondary_index PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(secondary_index PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index/main.cpp diff --git a/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.darwin-arm64.txt index 03e5f962efaa..dd757b7fcb07 100644 --- a/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.darwin-arm64.txt @@ -18,8 +18,6 @@ target_link_options(secondary_index_builtin PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(secondary_index_builtin PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index_builtin/main.cpp diff --git a/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.darwin-x86_64.txt index 61eb482ec38e..ee676f9d97be 100644 --- a/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.darwin-x86_64.txt @@ -19,8 +19,6 @@ target_link_options(secondary_index_builtin PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(secondary_index_builtin PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index_builtin/main.cpp diff --git a/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.linux-aarch64.txt index 2add0ab64d22..24cda8772252 100644 --- a/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(secondary_index_builtin PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(secondary_index_builtin PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index_builtin/main.cpp diff --git a/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.linux-x86_64.txt index 98ade20a7edb..7c031caed7bf 100644 --- a/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/secondary_index_builtin/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(secondary_index_builtin PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(secondary_index_builtin PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/secondary_index_builtin/main.cpp diff --git a/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.darwin-arm64.txt index e4f45d964769..98c92ca2118a 100644 --- a/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.darwin-arm64.txt @@ -18,8 +18,6 @@ target_link_options(persqueue_reader_eventloop PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(persqueue_reader_eventloop PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/eventloop/main.cpp diff --git a/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.darwin-x86_64.txt index 1cb19aab356b..541b8c5940b8 100644 --- a/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.darwin-x86_64.txt @@ -19,8 +19,6 @@ target_link_options(persqueue_reader_eventloop PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(persqueue_reader_eventloop PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/eventloop/main.cpp diff --git a/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.linux-aarch64.txt index 7536798294f9..2febe9872a60 100644 --- a/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(persqueue_reader_eventloop PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(persqueue_reader_eventloop PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/eventloop/main.cpp diff --git a/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.linux-x86_64.txt index cfa4b2204288..d62a558bec7c 100644 --- a/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/topic_reader/eventloop/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(persqueue_reader_eventloop PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(persqueue_reader_eventloop PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/eventloop/main.cpp diff --git a/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.darwin-arm64.txt index 30ad21dbfb4d..33d31580c0b2 100644 --- a/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.darwin-arm64.txt @@ -18,8 +18,6 @@ target_link_options(simple_persqueue_reader PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(simple_persqueue_reader PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/simple/main.cpp diff --git a/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.darwin-x86_64.txt index c6f296ec5229..56315c49d9be 100644 --- a/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.darwin-x86_64.txt @@ -19,8 +19,6 @@ target_link_options(simple_persqueue_reader PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(simple_persqueue_reader PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/simple/main.cpp diff --git a/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.linux-aarch64.txt index 269f2b1544fb..22d538602a4d 100644 --- a/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(simple_persqueue_reader PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(simple_persqueue_reader PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/simple/main.cpp diff --git a/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.linux-x86_64.txt index 7816fb06207c..5386ed8ae485 100644 --- a/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/topic_reader/simple/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(simple_persqueue_reader PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(simple_persqueue_reader PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/simple/main.cpp diff --git a/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.darwin-arm64.txt index 3b54f483577f..5d6ebf2b2180 100644 --- a/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.darwin-arm64.txt @@ -18,8 +18,6 @@ target_link_options(read_from_topic_in_transaction PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(read_from_topic_in_transaction PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/transaction/application.cpp diff --git a/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.darwin-x86_64.txt index 6a330398e25a..b8ae1c081831 100644 --- a/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.darwin-x86_64.txt @@ -19,8 +19,6 @@ target_link_options(read_from_topic_in_transaction PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(read_from_topic_in_transaction PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/transaction/application.cpp diff --git a/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.linux-aarch64.txt index 0528f1dc1910..deb766c26c42 100644 --- a/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.linux-aarch64.txt @@ -21,9 +21,6 @@ target_link_options(read_from_topic_in_transaction PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(read_from_topic_in_transaction PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/transaction/application.cpp diff --git a/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.linux-x86_64.txt index 6c4059200e9d..0ab278eb75f2 100644 --- a/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/topic_reader/transaction/CMakeLists.linux-x86_64.txt @@ -22,9 +22,6 @@ target_link_options(read_from_topic_in_transaction PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(read_from_topic_in_transaction PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/topic_reader/transaction/application.cpp diff --git a/ydb/public/sdk/cpp/examples/ttl/CMakeLists.darwin-arm64.txt b/ydb/public/sdk/cpp/examples/ttl/CMakeLists.darwin-arm64.txt index 68a3862c5d30..1fb64fb929e0 100644 --- a/ydb/public/sdk/cpp/examples/ttl/CMakeLists.darwin-arm64.txt +++ b/ydb/public/sdk/cpp/examples/ttl/CMakeLists.darwin-arm64.txt @@ -18,10 +18,10 @@ target_link_options(ttl PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ttl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/ttl.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/util.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/main.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/ttl.cpp ) diff --git a/ydb/public/sdk/cpp/examples/ttl/CMakeLists.darwin-x86_64.txt b/ydb/public/sdk/cpp/examples/ttl/CMakeLists.darwin-x86_64.txt index 02cab908996a..85cef17f9116 100644 --- a/ydb/public/sdk/cpp/examples/ttl/CMakeLists.darwin-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/ttl/CMakeLists.darwin-x86_64.txt @@ -19,10 +19,10 @@ target_link_options(ttl PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ttl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/ttl.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/util.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/main.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/ttl.cpp ) diff --git a/ydb/public/sdk/cpp/examples/ttl/CMakeLists.linux-aarch64.txt b/ydb/public/sdk/cpp/examples/ttl/CMakeLists.linux-aarch64.txt index b727597c53e7..56895ad97f22 100644 --- a/ydb/public/sdk/cpp/examples/ttl/CMakeLists.linux-aarch64.txt +++ b/ydb/public/sdk/cpp/examples/ttl/CMakeLists.linux-aarch64.txt @@ -21,11 +21,10 @@ target_link_options(ttl PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ttl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/ttl.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/util.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/main.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/ttl.cpp ) diff --git a/ydb/public/sdk/cpp/examples/ttl/CMakeLists.linux-x86_64.txt b/ydb/public/sdk/cpp/examples/ttl/CMakeLists.linux-x86_64.txt index a26fc0369c0c..48e578c76d59 100644 --- a/ydb/public/sdk/cpp/examples/ttl/CMakeLists.linux-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/ttl/CMakeLists.linux-x86_64.txt @@ -22,11 +22,10 @@ target_link_options(ttl PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ttl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/ttl.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/util.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/main.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/ttl.cpp ) diff --git a/ydb/public/sdk/cpp/examples/ttl/CMakeLists.windows-x86_64.txt b/ydb/public/sdk/cpp/examples/ttl/CMakeLists.windows-x86_64.txt index fd29a09b7086..d4adeeca3008 100644 --- a/ydb/public/sdk/cpp/examples/ttl/CMakeLists.windows-x86_64.txt +++ b/ydb/public/sdk/cpp/examples/ttl/CMakeLists.windows-x86_64.txt @@ -16,6 +16,8 @@ target_link_libraries(ttl PUBLIC cpp-client-ydb_table ) target_sources(ttl PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/ttl.h + ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/util.h ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/main.cpp ${CMAKE_SOURCE_DIR}/ydb/public/sdk/cpp/examples/ttl/ttl.cpp ) diff --git a/ydb/services/bg_tasks/abstract/interface.h b/ydb/services/bg_tasks/abstract/interface.h index f6cd594e49ff..fd556a2e60b0 100644 --- a/ydb/services/bg_tasks/abstract/interface.h +++ b/ydb/services/bg_tasks/abstract/interface.h @@ -111,8 +111,14 @@ class TCommonInterfaceContainer { : Object(object) { } - bool Initialize(const TString& className) { - AFL_VERIFY(!Object)("problem", "initialize for not-empty-object"); + template <class TDerived> + TCommonInterfaceContainer(std::shared_ptr<TDerived> object) + : Object(object) { + static_assert(std::is_base_of<IInterface, TDerived>::value); + } + + bool Initialize(const TString& className, const bool maybeExists = false) { + AFL_VERIFY(maybeExists || !Object)("problem", "initialize for not-empty-object"); Object.reset(TFactory::Construct(className)); if (!Object) { ALS_ERROR(NKikimrServices::BG_TASKS) << "incorrect class name: " << className << " for " << typeid(IInterface).name(); @@ -158,10 +164,12 @@ class TCommonInterfaceContainer { } const IInterface* operator->() const { + AFL_VERIFY(Object); return Object.get(); } IInterface* operator->() { + AFL_VERIFY(Object); return Object.get(); } @@ -169,6 +177,10 @@ class TCommonInterfaceContainer { return !Object; } + operator bool() const { + return !!Object; + } + }; class TStringContainerProcessor { @@ -320,7 +332,7 @@ class TInterfaceProtoContainer: public TCommonInterfaceContainer<IInterface> { if (!Object) { return result; } - result = Object->SerializeToProto(); + Object->SerializeToProto(result); TOperatorPolicy::SetClassName(result, Object->GetClassName()); return result; } diff --git a/ydb/services/bg_tasks/protos/CMakeLists.darwin-arm64.txt b/ydb/services/bg_tasks/protos/CMakeLists.darwin-arm64.txt index cec47cc18b87..3de59d8e0159 100644 --- a/ydb/services/bg_tasks/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/services/bg_tasks/protos/CMakeLists.darwin-arm64.txt @@ -28,6 +28,9 @@ target_link_libraries(services-bg_tasks-protos PUBLIC target_proto_messages(services-bg_tasks-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/protos/container.proto ) +target_sources(services-bg_tasks-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/services/bg_tasks/protos/container.pb.h +) target_proto_addincls(services-bg_tasks-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/services/bg_tasks/protos/CMakeLists.darwin-x86_64.txt b/ydb/services/bg_tasks/protos/CMakeLists.darwin-x86_64.txt index cec47cc18b87..3de59d8e0159 100644 --- a/ydb/services/bg_tasks/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/bg_tasks/protos/CMakeLists.darwin-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(services-bg_tasks-protos PUBLIC target_proto_messages(services-bg_tasks-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/protos/container.proto ) +target_sources(services-bg_tasks-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/services/bg_tasks/protos/container.pb.h +) target_proto_addincls(services-bg_tasks-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/services/bg_tasks/protos/CMakeLists.linux-aarch64.txt b/ydb/services/bg_tasks/protos/CMakeLists.linux-aarch64.txt index 792e0c2f9af3..0299694910b9 100644 --- a/ydb/services/bg_tasks/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/services/bg_tasks/protos/CMakeLists.linux-aarch64.txt @@ -29,6 +29,9 @@ target_link_libraries(services-bg_tasks-protos PUBLIC target_proto_messages(services-bg_tasks-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/protos/container.proto ) +target_sources(services-bg_tasks-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/services/bg_tasks/protos/container.pb.h +) target_proto_addincls(services-bg_tasks-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/services/bg_tasks/protos/CMakeLists.linux-x86_64.txt b/ydb/services/bg_tasks/protos/CMakeLists.linux-x86_64.txt index 792e0c2f9af3..0299694910b9 100644 --- a/ydb/services/bg_tasks/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/services/bg_tasks/protos/CMakeLists.linux-x86_64.txt @@ -29,6 +29,9 @@ target_link_libraries(services-bg_tasks-protos PUBLIC target_proto_messages(services-bg_tasks-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/protos/container.proto ) +target_sources(services-bg_tasks-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/services/bg_tasks/protos/container.pb.h +) target_proto_addincls(services-bg_tasks-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/services/bg_tasks/protos/CMakeLists.windows-x86_64.txt b/ydb/services/bg_tasks/protos/CMakeLists.windows-x86_64.txt index cec47cc18b87..3de59d8e0159 100644 --- a/ydb/services/bg_tasks/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/services/bg_tasks/protos/CMakeLists.windows-x86_64.txt @@ -28,6 +28,9 @@ target_link_libraries(services-bg_tasks-protos PUBLIC target_proto_messages(services-bg_tasks-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/protos/container.proto ) +target_sources(services-bg_tasks-protos PRIVATE + ${CMAKE_BINARY_DIR}/ydb/services/bg_tasks/protos/container.pb.h +) target_proto_addincls(services-bg_tasks-protos ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/services/bg_tasks/ut/CMakeLists.darwin-arm64.txt b/ydb/services/bg_tasks/ut/CMakeLists.darwin-arm64.txt index e9d8655ab976..2e98f066b30c 100644 --- a/ydb/services/bg_tasks/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/bg_tasks/ut/CMakeLists.darwin-arm64.txt @@ -34,8 +34,6 @@ target_link_options(ydb-services-bg_tasks-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-bg_tasks-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ut/ut_tasks.cpp @@ -66,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/bg_tasks/ut/CMakeLists.darwin-x86_64.txt b/ydb/services/bg_tasks/ut/CMakeLists.darwin-x86_64.txt index 20b1a8316af6..68d1ffcfd8d0 100644 --- a/ydb/services/bg_tasks/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/bg_tasks/ut/CMakeLists.darwin-x86_64.txt @@ -35,8 +35,6 @@ target_link_options(ydb-services-bg_tasks-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-bg_tasks-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ut/ut_tasks.cpp @@ -67,6 +65,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/bg_tasks/ut/CMakeLists.linux-aarch64.txt b/ydb/services/bg_tasks/ut/CMakeLists.linux-aarch64.txt index 6493715f3b08..a58fd0b48cb3 100644 --- a/ydb/services/bg_tasks/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/bg_tasks/ut/CMakeLists.linux-aarch64.txt @@ -37,9 +37,6 @@ target_link_options(ydb-services-bg_tasks-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-bg_tasks-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ut/ut_tasks.cpp @@ -70,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/bg_tasks/ut/CMakeLists.linux-x86_64.txt b/ydb/services/bg_tasks/ut/CMakeLists.linux-x86_64.txt index 1ca0e89eda76..73f39558e0b0 100644 --- a/ydb/services/bg_tasks/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/bg_tasks/ut/CMakeLists.linux-x86_64.txt @@ -38,9 +38,6 @@ target_link_options(ydb-services-bg_tasks-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-bg_tasks-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/bg_tasks/ut/ut_tasks.cpp @@ -71,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/bg_tasks/ut/CMakeLists.windows-x86_64.txt b/ydb/services/bg_tasks/ut/CMakeLists.windows-x86_64.txt index 663c306f11d3..c1e46521de09 100644 --- a/ydb/services/bg_tasks/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/bg_tasks/ut/CMakeLists.windows-x86_64.txt @@ -60,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/cms/ut/CMakeLists.darwin-arm64.txt b/ydb/services/cms/ut/CMakeLists.darwin-arm64.txt index 8e9c2ac79da3..76b68438a45a 100644 --- a/ydb/services/cms/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/cms/ut/CMakeLists.darwin-arm64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-services-cms-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-cms-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/cms/cms_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/cms/ut/CMakeLists.darwin-x86_64.txt b/ydb/services/cms/ut/CMakeLists.darwin-x86_64.txt index b73e8c4c8219..26bcc9b437dd 100644 --- a/ydb/services/cms/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/cms/ut/CMakeLists.darwin-x86_64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-services-cms-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-cms-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/cms/cms_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/cms/ut/CMakeLists.linux-aarch64.txt b/ydb/services/cms/ut/CMakeLists.linux-aarch64.txt index 8c7338a6384a..f3bd94b4a6ac 100644 --- a/ydb/services/cms/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/cms/ut/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-services-cms-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-cms-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/cms/cms_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/cms/ut/CMakeLists.linux-x86_64.txt b/ydb/services/cms/ut/CMakeLists.linux-x86_64.txt index b513ccf11e56..4cc910aed53c 100644 --- a/ydb/services/cms/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/cms/ut/CMakeLists.linux-x86_64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-services-cms-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-cms-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/cms/cms_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/cms/ut/CMakeLists.windows-x86_64.txt b/ydb/services/cms/ut/CMakeLists.windows-x86_64.txt index 5b5f84fa287b..1f456496a21a 100644 --- a/ydb/services/cms/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/cms/ut/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/datastreams/datastreams_proxy.cpp b/ydb/services/datastreams/datastreams_proxy.cpp index 8b2e373acf28..11289cb4a001 100644 --- a/ydb/services/datastreams/datastreams_proxy.cpp +++ b/ydb/services/datastreams/datastreams_proxy.cpp @@ -121,7 +121,6 @@ namespace NKikimr::NDataStreams::V1 { topicRequest.mutable_retention_period()->set_seconds( TDuration::Hours(DEFAULT_STREAM_DAY_RETENTION).Seconds()); } - topicRequest.mutable_supported_codecs()->add_codecs(Ydb::Topic::CODEC_RAW); topicRequest.set_partition_write_speed_bytes_per_second( PartitionWriteSpeedInBytesPerSec(GetProtoRequest()->write_quota_kb_per_sec())); topicRequest.set_partition_write_burst_bytes( diff --git a/ydb/services/datastreams/ut/CMakeLists.darwin-arm64.txt b/ydb/services/datastreams/ut/CMakeLists.darwin-arm64.txt index b58c71af6096..b328114e13b0 100644 --- a/ydb/services/datastreams/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/datastreams/ut/CMakeLists.darwin-arm64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-services-datastreams-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-datastreams-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/datastreams/datastreams_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/datastreams/ut/CMakeLists.darwin-x86_64.txt b/ydb/services/datastreams/ut/CMakeLists.darwin-x86_64.txt index 70577ca58128..0062b8816fbd 100644 --- a/ydb/services/datastreams/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/datastreams/ut/CMakeLists.darwin-x86_64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-services-datastreams-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-datastreams-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/datastreams/datastreams_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/datastreams/ut/CMakeLists.linux-aarch64.txt b/ydb/services/datastreams/ut/CMakeLists.linux-aarch64.txt index 558f630fbc4e..623fca029888 100644 --- a/ydb/services/datastreams/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/datastreams/ut/CMakeLists.linux-aarch64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-services-datastreams-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-datastreams-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/datastreams/datastreams_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/datastreams/ut/CMakeLists.linux-x86_64.txt b/ydb/services/datastreams/ut/CMakeLists.linux-x86_64.txt index 976ef31c35db..f66301eded97 100644 --- a/ydb/services/datastreams/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/datastreams/ut/CMakeLists.linux-x86_64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-services-datastreams-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-datastreams-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/datastreams/datastreams_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/datastreams/ut/CMakeLists.windows-x86_64.txt b/ydb/services/datastreams/ut/CMakeLists.windows-x86_64.txt index 7f03282416a3..f4c3157d31ef 100644 --- a/ydb/services/datastreams/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/datastreams/ut/CMakeLists.windows-x86_64.txt @@ -54,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.darwin-arm64.txt b/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.darwin-arm64.txt index 77bda3ed067d..d3afe70beb50 100644 --- a/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.darwin-arm64.txt +++ b/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.darwin-arm64.txt @@ -40,6 +40,10 @@ target_link_libraries(api-grpc-persqueue-deprecated PUBLIC target_proto_messages(api-grpc-persqueue-deprecated PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.proto ) +target_sources(api-grpc-persqueue-deprecated PRIVATE + ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.pb.h + ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.grpc.pb.h +) target_proto_addincls(api-grpc-persqueue-deprecated ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.darwin-x86_64.txt b/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.darwin-x86_64.txt index 77bda3ed067d..d3afe70beb50 100644 --- a/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.darwin-x86_64.txt @@ -40,6 +40,10 @@ target_link_libraries(api-grpc-persqueue-deprecated PUBLIC target_proto_messages(api-grpc-persqueue-deprecated PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.proto ) +target_sources(api-grpc-persqueue-deprecated PRIVATE + ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.pb.h + ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.grpc.pb.h +) target_proto_addincls(api-grpc-persqueue-deprecated ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.linux-aarch64.txt b/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.linux-aarch64.txt index 42026a7c4dc9..8ff2150ae7f4 100644 --- a/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.linux-aarch64.txt +++ b/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.linux-aarch64.txt @@ -41,6 +41,10 @@ target_link_libraries(api-grpc-persqueue-deprecated PUBLIC target_proto_messages(api-grpc-persqueue-deprecated PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.proto ) +target_sources(api-grpc-persqueue-deprecated PRIVATE + ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.pb.h + ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.grpc.pb.h +) target_proto_addincls(api-grpc-persqueue-deprecated ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.linux-x86_64.txt b/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.linux-x86_64.txt index 42026a7c4dc9..8ff2150ae7f4 100644 --- a/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.linux-x86_64.txt +++ b/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.linux-x86_64.txt @@ -41,6 +41,10 @@ target_link_libraries(api-grpc-persqueue-deprecated PUBLIC target_proto_messages(api-grpc-persqueue-deprecated PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.proto ) +target_sources(api-grpc-persqueue-deprecated PRIVATE + ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.pb.h + ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.grpc.pb.h +) target_proto_addincls(api-grpc-persqueue-deprecated ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.windows-x86_64.txt b/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.windows-x86_64.txt index 77bda3ed067d..d3afe70beb50 100644 --- a/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.windows-x86_64.txt +++ b/ydb/services/deprecated/persqueue_v0/api/grpc/CMakeLists.windows-x86_64.txt @@ -40,6 +40,10 @@ target_link_libraries(api-grpc-persqueue-deprecated PUBLIC target_proto_messages(api-grpc-persqueue-deprecated PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.proto ) +target_sources(api-grpc-persqueue-deprecated PRIVATE + ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.pb.h + ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/grpc/persqueue.grpc.pb.h +) target_proto_addincls(api-grpc-persqueue-deprecated ./ ${CMAKE_SOURCE_DIR}/ diff --git a/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.darwin-arm64.txt b/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.darwin-arm64.txt index 14b1c5308aa0..7c9c91f69279 100644 --- a/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.darwin-arm64.txt +++ b/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.darwin-arm64.txt @@ -36,6 +36,9 @@ target_link_libraries(api-protos-persqueue-deprecated PUBLIC target_proto_messages(api-protos-persqueue-deprecated PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.proto ) +target_sources(api-protos-persqueue-deprecated PRIVATE + ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.pb.h +) generate_enum_serilization(api-protos-persqueue-deprecated ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.pb.h INCLUDE_HEADERS diff --git a/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.darwin-x86_64.txt b/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.darwin-x86_64.txt index 14b1c5308aa0..7c9c91f69279 100644 --- a/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.darwin-x86_64.txt @@ -36,6 +36,9 @@ target_link_libraries(api-protos-persqueue-deprecated PUBLIC target_proto_messages(api-protos-persqueue-deprecated PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.proto ) +target_sources(api-protos-persqueue-deprecated PRIVATE + ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.pb.h +) generate_enum_serilization(api-protos-persqueue-deprecated ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.pb.h INCLUDE_HEADERS diff --git a/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.linux-aarch64.txt b/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.linux-aarch64.txt index 2f0a5f943c17..11f7f00c6afd 100644 --- a/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.linux-aarch64.txt +++ b/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.linux-aarch64.txt @@ -37,6 +37,9 @@ target_link_libraries(api-protos-persqueue-deprecated PUBLIC target_proto_messages(api-protos-persqueue-deprecated PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.proto ) +target_sources(api-protos-persqueue-deprecated PRIVATE + ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.pb.h +) generate_enum_serilization(api-protos-persqueue-deprecated ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.pb.h INCLUDE_HEADERS diff --git a/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.linux-x86_64.txt b/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.linux-x86_64.txt index 2f0a5f943c17..11f7f00c6afd 100644 --- a/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.linux-x86_64.txt +++ b/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.linux-x86_64.txt @@ -37,6 +37,9 @@ target_link_libraries(api-protos-persqueue-deprecated PUBLIC target_proto_messages(api-protos-persqueue-deprecated PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.proto ) +target_sources(api-protos-persqueue-deprecated PRIVATE + ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.pb.h +) generate_enum_serilization(api-protos-persqueue-deprecated ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.pb.h INCLUDE_HEADERS diff --git a/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.windows-x86_64.txt b/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.windows-x86_64.txt index 14b1c5308aa0..7c9c91f69279 100644 --- a/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.windows-x86_64.txt +++ b/ydb/services/deprecated/persqueue_v0/api/protos/CMakeLists.windows-x86_64.txt @@ -36,6 +36,9 @@ target_link_libraries(api-protos-persqueue-deprecated PUBLIC target_proto_messages(api-protos-persqueue-deprecated PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.proto ) +target_sources(api-protos-persqueue-deprecated PRIVATE + ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.pb.h +) generate_enum_serilization(api-protos-persqueue-deprecated ${CMAKE_BINARY_DIR}/ydb/services/deprecated/persqueue_v0/api/protos/persqueue.pb.h INCLUDE_HEADERS diff --git a/ydb/services/deprecated/persqueue_v0/grpc_pq_actor.h b/ydb/services/deprecated/persqueue_v0/grpc_pq_actor.h index 0d5e472ca443..cb1ca35ecd86 100644 --- a/ydb/services/deprecated/persqueue_v0/grpc_pq_actor.h +++ b/ydb/services/deprecated/persqueue_v0/grpc_pq_actor.h @@ -554,6 +554,8 @@ class TWriteSessionActor : public NActors::TActorBootstrapped<TWriteSessionActor NPersQueue::TWriteRequest::TInit InitRequest; TActorId PartitionChooser; + + bool SessionClosed = false; }; class TReadSessionActor : public TActorBootstrapped<TReadSessionActor> { diff --git a/ydb/services/deprecated/persqueue_v0/grpc_pq_write_actor.cpp b/ydb/services/deprecated/persqueue_v0/grpc_pq_write_actor.cpp index 0b7b645c8b4d..43a864214ba8 100644 --- a/ydb/services/deprecated/persqueue_v0/grpc_pq_write_actor.cpp +++ b/ydb/services/deprecated/persqueue_v0/grpc_pq_write_actor.cpp @@ -310,7 +310,10 @@ void TWriteSessionActor::SetupCounters(const TString& cloudId, const TString& db void TWriteSessionActor::Handle(TEvDescribeTopicsResponse::TPtr& ev, const TActorContext& ctx) { - Y_ABORT_UNLESS(State == ES_WAIT_SCHEME || State == ES_INITED); + if (State != ES_WAIT_SCHEME && State != ES_INITED) { + return CloseSession("erroneous internal state", NPersQueue::NErrorCode::ERROR, ctx); + } + auto& res = ev->Get()->Result; Y_ABORT_UNLESS(res->ResultSet.size() == 1); @@ -448,6 +451,10 @@ void TWriteSessionActor::Handle(TEvTicketParser::TEvAuthorizeTicketResult::TPtr& void TWriteSessionActor::DiscoverPartition(const NActors::TActorContext& ctx) { State = ES_WAIT_PARTITION; + if (PartitionChooser) { + ctx.Send(PartitionChooser, new TEvents::TEvPoison()); + } + std::optional<ui32> preferedPartition = PreferedPartition == Max<ui32>() ? std::nullopt : std::optional(PreferedPartition); PartitionChooser = ctx.RegisterWithSameMailbox(NPQ::CreatePartitionChooserActor(ctx.SelfID, Config, FullConverter, SourceId, preferedPartition)); } @@ -503,6 +510,11 @@ void TWriteSessionActor::ProceedPartition(const ui32 partition, const TActorCont } void TWriteSessionActor::CloseSession(const TString& errorReason, const NPersQueue::NErrorCode::EErrorCode errorCode, const NActors::TActorContext& ctx) { + if (SessionClosed) { + return; + } + SessionClosed = true; + if (errorCode != NPersQueue::NErrorCode::OK) { if (InternalErrorCode(errorCode)) { SLIErrors.Inc(); @@ -864,7 +876,9 @@ void TWriteSessionActor::LogSession(const TActorContext& ctx) { } void TWriteSessionActor::HandleWakeup(const TActorContext& ctx) { - Y_ABORT_UNLESS(State == ES_INITED); + if (State != ES_INITED) { + return CloseSession("erroneous internal state", NPersQueue::NErrorCode::ERROR, ctx); + } auto now = ctx.Now(); @@ -884,7 +898,7 @@ void TWriteSessionActor::HandleWakeup(const TActorContext& ctx) { ctx.Send(PartitionChooser, new NPQ::TEvPartitionChooser::TEvRefreshRequest()); LastSourceIdUpdate = now + SOURCEID_UPDATE_PERIOD; } - + if (now >= LogSessionDeadline) { LogSession(ctx); } diff --git a/ydb/services/discovery/grpc_service.cpp b/ydb/services/discovery/grpc_service.cpp index a1753762e413..a0a424dceaa5 100644 --- a/ydb/services/discovery/grpc_service.cpp +++ b/ydb/services/discovery/grpc_service.cpp @@ -16,10 +16,6 @@ static TString GetSdkBuildInfo(NYdbGrpc::IRequestContextBase* reqCtx) { return TString{res[0]}; } -void TGRpcDiscoveryService::SetDynamicNodeAuthParams(const TDynamicNodeAuthorizationParams& dynamicNodeAuthorizationParams) { - DynamicNodeAuthorizationParams = dynamicNodeAuthorizationParams; -} - void TGRpcDiscoveryService::SetupIncomingRequests(NYdbGrpc::TLoggerPtr logger) { auto getCounterBlock = CreateCounterCb(Counters_, ActorSystem_); using namespace Ydb; @@ -38,10 +34,7 @@ void TGRpcDiscoveryService::SetupIncomingRequests(NYdbGrpc::TLoggerPtr logger) { #NAME, logger, getCounterBlock("discovery", #NAME))->Run(); ADD_REQUEST(WhoAmI, &DoWhoAmIRequest) - NodeRegistrationRequest = [authParams = this->DynamicNodeAuthorizationParams] (std::unique_ptr<IRequestOpCtx> p, const IFacilityProvider& f) { - DoNodeRegistrationRequest(std::move(p), f, authParams); - }; - ADD_REQUEST(NodeRegistration, NodeRegistrationRequest) + ADD_REQUEST(NodeRegistration, &DoNodeRegistrationRequest) #ifdef ADD_LEGACY_REQUEST #error macro already defined diff --git a/ydb/services/discovery/grpc_service.h b/ydb/services/discovery/grpc_service.h index dcd5781f3cb7..b0766a3117ce 100644 --- a/ydb/services/discovery/grpc_service.h +++ b/ydb/services/discovery/grpc_service.h @@ -7,7 +7,6 @@ #include <ydb/library/grpc/server/grpc_server.h> #include <ydb/core/grpc_services/base/base_service.h> -#include <ydb/core/grpc_services/auth_processor/dynamic_node_auth_processor.h> namespace NKikimr { @@ -22,12 +21,8 @@ namespace NGRpcService { public: using TGrpcServiceBase<Ydb::Discovery::V1::DiscoveryService>::TGrpcServiceBase; - void SetDynamicNodeAuthParams(const TDynamicNodeAuthorizationParams& dynamicNodeAuthorizationParams); - private: void SetupIncomingRequests(NYdbGrpc::TLoggerPtr logger); - TDynamicNodeAuthorizationParams DynamicNodeAuthorizationParams = {}; - std::function<void(std::unique_ptr<IRequestOpCtx>, const IFacilityProvider&)> NodeRegistrationRequest; }; } // namespace NGRpcService diff --git a/ydb/services/dynamic_config/ut/CMakeLists.darwin-arm64.txt b/ydb/services/dynamic_config/ut/CMakeLists.darwin-arm64.txt index 9607c8ac2c7c..5509459d9783 100644 --- a/ydb/services/dynamic_config/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/dynamic_config/ut/CMakeLists.darwin-arm64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-services-dynamic_config-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-dynamic_config-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/dynamic_config/dynamic_config_ut.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/dynamic_config/ut/CMakeLists.darwin-x86_64.txt b/ydb/services/dynamic_config/ut/CMakeLists.darwin-x86_64.txt index 1d79fbf9cb64..2686e46820b5 100644 --- a/ydb/services/dynamic_config/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/dynamic_config/ut/CMakeLists.darwin-x86_64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-services-dynamic_config-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-dynamic_config-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/dynamic_config/dynamic_config_ut.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/dynamic_config/ut/CMakeLists.linux-aarch64.txt b/ydb/services/dynamic_config/ut/CMakeLists.linux-aarch64.txt index 513f5676935f..d8c860290766 100644 --- a/ydb/services/dynamic_config/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/dynamic_config/ut/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-services-dynamic_config-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-dynamic_config-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/dynamic_config/dynamic_config_ut.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/dynamic_config/ut/CMakeLists.linux-x86_64.txt b/ydb/services/dynamic_config/ut/CMakeLists.linux-x86_64.txt index 4ba27e34ac08..5b67c321addb 100644 --- a/ydb/services/dynamic_config/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/dynamic_config/ut/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-services-dynamic_config-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-dynamic_config-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/dynamic_config/dynamic_config_ut.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/dynamic_config/ut/CMakeLists.windows-x86_64.txt b/ydb/services/dynamic_config/ut/CMakeLists.windows-x86_64.txt index 4d659ef0ee8a..92457d90db72 100644 --- a/ydb/services/dynamic_config/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/dynamic_config/ut/CMakeLists.windows-x86_64.txt @@ -55,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS SMALL + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ext_index/ut/CMakeLists.darwin-arm64.txt b/ydb/services/ext_index/ut/CMakeLists.darwin-arm64.txt index 40d9d663806f..785bf612c6da 100644 --- a/ydb/services/ext_index/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/ext_index/ut/CMakeLists.darwin-arm64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-services-ext_index-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-ext_index-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/ut/ut_ext_index.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ext_index/ut/CMakeLists.darwin-x86_64.txt b/ydb/services/ext_index/ut/CMakeLists.darwin-x86_64.txt index 36a8f09a5f20..fc10026321ff 100644 --- a/ydb/services/ext_index/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/ext_index/ut/CMakeLists.darwin-x86_64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-services-ext_index-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-ext_index-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/ut/ut_ext_index.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ext_index/ut/CMakeLists.linux-aarch64.txt b/ydb/services/ext_index/ut/CMakeLists.linux-aarch64.txt index 20b9fc391416..8c14c37e8770 100644 --- a/ydb/services/ext_index/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/ext_index/ut/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-services-ext_index-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-ext_index-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/ut/ut_ext_index.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ext_index/ut/CMakeLists.linux-x86_64.txt b/ydb/services/ext_index/ut/CMakeLists.linux-x86_64.txt index 29d4ebd4c09b..4ab045d7e1e9 100644 --- a/ydb/services/ext_index/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/ext_index/ut/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-services-ext_index-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-ext_index-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ext_index/ut/ut_ext_index.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ext_index/ut/CMakeLists.windows-x86_64.txt b/ydb/services/ext_index/ut/CMakeLists.windows-x86_64.txt index d3eb8a649d9f..c1916c1d5573 100644 --- a/ydb/services/ext_index/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/ext_index/ut/CMakeLists.windows-x86_64.txt @@ -55,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/fq/ut_integration/CMakeLists.darwin-arm64.txt b/ydb/services/fq/ut_integration/CMakeLists.darwin-arm64.txt index 8b6d337e3a92..97fc55a62d51 100644 --- a/ydb/services/fq/ut_integration/CMakeLists.darwin-arm64.txt +++ b/ydb/services/fq/ut_integration/CMakeLists.darwin-arm64.txt @@ -38,8 +38,6 @@ target_link_options(ydb-services-fq-ut_integration PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-fq-ut_integration PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/fq/ut_integration/ut_utils.cpp @@ -70,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/fq/ut_integration/CMakeLists.darwin-x86_64.txt b/ydb/services/fq/ut_integration/CMakeLists.darwin-x86_64.txt index a052b0fc6362..fe8af71a93a6 100644 --- a/ydb/services/fq/ut_integration/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/fq/ut_integration/CMakeLists.darwin-x86_64.txt @@ -39,8 +39,6 @@ target_link_options(ydb-services-fq-ut_integration PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-fq-ut_integration PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/fq/ut_integration/ut_utils.cpp @@ -71,6 +69,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/fq/ut_integration/CMakeLists.linux-aarch64.txt b/ydb/services/fq/ut_integration/CMakeLists.linux-aarch64.txt index 5095497fd40e..c9b85517bfdc 100644 --- a/ydb/services/fq/ut_integration/CMakeLists.linux-aarch64.txt +++ b/ydb/services/fq/ut_integration/CMakeLists.linux-aarch64.txt @@ -41,9 +41,6 @@ target_link_options(ydb-services-fq-ut_integration PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-fq-ut_integration PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/fq/ut_integration/ut_utils.cpp @@ -74,6 +71,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/fq/ut_integration/CMakeLists.linux-x86_64.txt b/ydb/services/fq/ut_integration/CMakeLists.linux-x86_64.txt index 508130078e31..e7647ca94c96 100644 --- a/ydb/services/fq/ut_integration/CMakeLists.linux-x86_64.txt +++ b/ydb/services/fq/ut_integration/CMakeLists.linux-x86_64.txt @@ -42,9 +42,6 @@ target_link_options(ydb-services-fq-ut_integration PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-fq-ut_integration PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/fq/ut_integration/ut_utils.cpp @@ -75,6 +72,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/fq/ut_integration/CMakeLists.windows-x86_64.txt b/ydb/services/fq/ut_integration/CMakeLists.windows-x86_64.txt index b0de82833859..18162c9ea017 100644 --- a/ydb/services/fq/ut_integration/CMakeLists.windows-x86_64.txt +++ b/ydb/services/fq/ut_integration/CMakeLists.windows-x86_64.txt @@ -64,6 +64,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/kesus/grpc_service.cpp b/ydb/services/kesus/grpc_service.cpp index 13f7ddafc4df..b5913217d90c 100644 --- a/ydb/services/kesus/grpc_service.cpp +++ b/ydb/services/kesus/grpc_service.cpp @@ -27,6 +27,9 @@ namespace NKesus { class TGRpcSessionActor : public TActorBootstrapped<TGRpcSessionActor> { + static constexpr TDuration MinPingPeriod = TDuration::MilliSeconds(10); + static constexpr TDuration MaxPingPeriod = TDuration::Seconds(5); + public: using TRequest = Ydb::Coordination::SessionRequest; using TResponse = Ydb::Coordination::SessionResponse; @@ -132,6 +135,13 @@ class TGRpcSessionActor return PassAway(); } + PingPeriod = TDuration::MilliSeconds(StartRequest->Record.session_start().timeout_millis() / 3); + if (PingPeriod > MaxPingPeriod) { + PingPeriod = MaxPingPeriod; + } else if (PingPeriod < MinPingPeriod) { + PingPeriod = MinPingPeriod; + } + KesusPath = StartRequest->Record.session_start().path(); auto resolve = MakeHolder<TEvKesusProxy::TEvResolveKesusProxy>(KesusPath); @@ -540,8 +550,7 @@ class TGRpcSessionActor ping->set_opaque(CurrentPingData); Reply(std::move(response)); - // TODO: configure timeout - Schedule(TDuration::MilliSeconds(5000), new TEvPrivate::TEvPingScheduled()); + Schedule(PingPeriod, new TEvPrivate::TEvPingScheduled()); } void Handle(const TEvPrivate::TEvPingScheduled::TPtr& ev) { @@ -599,6 +608,7 @@ class TGRpcSessionActor ui64 SessionId = 0; bool SessionEstablished = false; ui64 CurrentPingData = 0; + TDuration PingPeriod; }; //////////////////////////////////////////////////////////////////////////////// diff --git a/ydb/services/keyvalue/grpc_service.cpp b/ydb/services/keyvalue/grpc_service.cpp index 595da30097cf..4cd1cc62eaab 100644 --- a/ydb/services/keyvalue/grpc_service.cpp +++ b/ydb/services/keyvalue/grpc_service.cpp @@ -3,6 +3,7 @@ #include <ydb/core/grpc_services/grpc_helper.h> #include <ydb/core/grpc_services/base/base.h> #include <ydb/core/grpc_services/service_keyvalue.h> +#include <ydb/core/jaeger_tracing/request_discriminator.h> namespace NKikimr::NGRpcService { @@ -40,7 +41,7 @@ void TKeyValueGRpcService::SetupIncomingRequests(NYdbGrpc::TLoggerPtr logger) { #error SETUP_METHOD macro collision #endif -#define SETUP_METHOD(methodName, method, rlMode) \ +#define SETUP_METHOD(methodName, method, rlMode, requestType) \ MakeIntrusive<NGRpcService::TGRpcRequest< \ Ydb::KeyValue::Y_CAT(methodName, Request), \ Ydb::KeyValue::Y_CAT(methodName, Response), \ @@ -54,7 +55,10 @@ void TKeyValueGRpcService::SetupIncomingRequests(NYdbGrpc::TLoggerPtr logger) { ActorSystem->Send(GRpcRequestProxyId, new TGrpcRequestOperationCall< \ Ydb::KeyValue::Y_CAT(methodName, Request), \ Ydb::KeyValue::Y_CAT(methodName, Response)>(reqCtx, &method, \ - TRequestAuxSettings{rlMode, nullptr})); \ + TRequestAuxSettings { \ + .RlMode = TRateLimiterMode::rlMode, \ + .RequestType = NJaegerTracing::ERequestType::requestType, \ + })); \ }, \ &Ydb::KeyValue::V1::KeyValueService::AsyncService::Y_CAT(Request, methodName), \ "KeyValue/" Y_STRINGIZE(methodName), \ @@ -62,18 +66,18 @@ void TKeyValueGRpcService::SetupIncomingRequests(NYdbGrpc::TLoggerPtr logger) { getCounterBlock("keyvalue", Y_STRINGIZE(methodName)) \ )->Run() - SETUP_METHOD(CreateVolume, DoCreateVolumeKeyValue, TRateLimiterMode::Rps); - SETUP_METHOD(DropVolume, DoDropVolumeKeyValue, TRateLimiterMode::Rps); - SETUP_METHOD(AlterVolume, DoAlterVolumeKeyValue, TRateLimiterMode::Rps); - SETUP_METHOD(DescribeVolume, DoDescribeVolumeKeyValue, TRateLimiterMode::Rps); - SETUP_METHOD(ListLocalPartitions, DoListLocalPartitionsKeyValue, TRateLimiterMode::Rps); - - SETUP_METHOD(AcquireLock, DoAcquireLockKeyValue, TRateLimiterMode::Rps); - SETUP_METHOD(ExecuteTransaction, DoExecuteTransactionKeyValue, TRateLimiterMode::Rps); - SETUP_METHOD(Read, DoReadKeyValue, TRateLimiterMode::Rps); - SETUP_METHOD(ReadRange, DoReadRangeKeyValue, TRateLimiterMode::Rps); - SETUP_METHOD(ListRange, DoListRangeKeyValue, TRateLimiterMode::Rps); - SETUP_METHOD(GetStorageChannelStatus, DoGetStorageChannelStatusKeyValue, TRateLimiterMode::Rps); + SETUP_METHOD(CreateVolume, DoCreateVolumeKeyValue, Rps, KEYVALUE_CREATEVOLUME); + SETUP_METHOD(DropVolume, DoDropVolumeKeyValue, Rps, KEYVALUE_DROPVOLUME); + SETUP_METHOD(AlterVolume, DoAlterVolumeKeyValue, Rps, KEYVALUE_ALTERVOLUME); + SETUP_METHOD(DescribeVolume, DoDescribeVolumeKeyValue, Rps, KEYVALUE_DESCRIBEVOLUME); + SETUP_METHOD(ListLocalPartitions, DoListLocalPartitionsKeyValue, Rps, KEYVALUE_LISTLOCALPARTITIONS); + + SETUP_METHOD(AcquireLock, DoAcquireLockKeyValue, Rps, KEYVALUE_ACQUIRELOCK); + SETUP_METHOD(ExecuteTransaction, DoExecuteTransactionKeyValue, Rps, KEYVALUE_EXECUTETRANSACTION); + SETUP_METHOD(Read, DoReadKeyValue, Rps, KEYVALUE_READ); + SETUP_METHOD(ReadRange, DoReadRangeKeyValue, Rps, KEYVALUE_READRANGE); + SETUP_METHOD(ListRange, DoListRangeKeyValue, Rps, KEYVALUE_LISTRANGE); + SETUP_METHOD(GetStorageChannelStatus, DoGetStorageChannelStatusKeyValue, Rps, KEYVALUE_GETSTORAGECHANNELSTATUS); #undef SETUP_METHOD } diff --git a/ydb/services/keyvalue/ut/CMakeLists.darwin-arm64.txt b/ydb/services/keyvalue/ut/CMakeLists.darwin-arm64.txt index d771aa8ae2c5..d045fcbf4ecc 100644 --- a/ydb/services/keyvalue/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/keyvalue/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-services-keyvalue-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-keyvalue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/keyvalue/grpc_service_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/keyvalue/ut/CMakeLists.darwin-x86_64.txt b/ydb/services/keyvalue/ut/CMakeLists.darwin-x86_64.txt index 2fbf1f4e2dc9..0b42fb83b488 100644 --- a/ydb/services/keyvalue/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/keyvalue/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-services-keyvalue-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-keyvalue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/keyvalue/grpc_service_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/keyvalue/ut/CMakeLists.linux-aarch64.txt b/ydb/services/keyvalue/ut/CMakeLists.linux-aarch64.txt index 0d0ad06718bc..6b3d1e530fb7 100644 --- a/ydb/services/keyvalue/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/keyvalue/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-services-keyvalue-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-keyvalue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/keyvalue/grpc_service_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/keyvalue/ut/CMakeLists.linux-x86_64.txt b/ydb/services/keyvalue/ut/CMakeLists.linux-x86_64.txt index baa6125f0233..dde30fbee67e 100644 --- a/ydb/services/keyvalue/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/keyvalue/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-services-keyvalue-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-keyvalue-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/keyvalue/grpc_service_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/keyvalue/ut/CMakeLists.windows-x86_64.txt b/ydb/services/keyvalue/ut/CMakeLists.windows-x86_64.txt index 6bfcb33387cd..4667f35409ee 100644 --- a/ydb/services/keyvalue/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/keyvalue/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/lib/actors/pq_schema_actor.cpp b/ydb/services/lib/actors/pq_schema_actor.cpp index c6564b247985..8d18aa9edde2 100644 --- a/ydb/services/lib/actors/pq_schema_actor.cpp +++ b/ydb/services/lib/actors/pq_schema_actor.cpp @@ -136,12 +136,6 @@ namespace NKikimr::NGRpcProxy::V1 { } if (rr.important()) { - if (AppData(ctx)->PQConfig.GetTopicsAreFirstClassCitizen()) { - return TMsgPqCodes( - TStringBuilder() << "important flag is forbiden for consumer " << rr.consumer_name(), - Ydb::PersQueue::ErrorCode::VALIDATION_ERROR - ); - } config->MutablePartitionConfig()->AddImportantClientId(consumerName); } diff --git a/ydb/services/lib/actors/pq_schema_actor.h b/ydb/services/lib/actors/pq_schema_actor.h index 0703cfa52795..b39ec377f58c 100644 --- a/ydb/services/lib/actors/pq_schema_actor.h +++ b/ydb/services/lib/actors/pq_schema_actor.h @@ -128,49 +128,44 @@ namespace NKikimr::NGRpcProxy::V1 { return false; }; - void SendDescribeProposeRequest(const NActors::TActorContext& ctx, bool showPrivate) { auto navigateRequest = std::make_unique<NSchemeCache::TSchemeCacheNavigate>(); - navigateRequest->DatabaseName = CanonizePath(Database); - - NSchemeCache::TSchemeCacheNavigate::TEntry entry; - entry.Path = NKikimr::SplitPath(GetTopicPath()); - entry.SyncVersion = true; - entry.ShowPrivatePath = showPrivate; - entry.Operation = NSchemeCache::TSchemeCacheNavigate::OpList; - navigateRequest->ResultSet.emplace_back(entry); - if (!SetRequestToken(navigateRequest.get())) { AddIssue(FillIssue("Unauthenticated access is forbidden, please provide credentials", Ydb::PersQueue::ErrorCode::ACCESS_DENIED)); return RespondWithCode(Ydb::StatusIds::UNAUTHORIZED); } + + navigateRequest->DatabaseName = CanonizePath(Database); + navigateRequest->ResultSet.emplace_back(NSchemeCache::TSchemeCacheNavigate::TEntry{ + .Path = NKikimr::SplitPath(GetTopicPath()), + .Access = CheckAccessWithWriteTopicPermission ? NACLib::UpdateRow : NACLib::DescribeSchema, + .Operation = NSchemeCache::TSchemeCacheNavigate::OpList, + .ShowPrivatePath = showPrivate, + .SyncVersion = true, + }); if (!IsDead) { ctx.Send(MakeSchemeCacheID(), new TEvTxProxySchemeCache::TEvNavigateKeySet(navigateRequest.release())); } } bool ReplyIfNotTopic(TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr& ev) { - const NSchemeCache::TSchemeCacheNavigate* result = ev->Get()->Request.Get(); - Y_ABORT_UNLESS(result->ResultSet.size() == 1); - const auto& response = result->ResultSet.front(); - const TString path = JoinPath(response.Path); - - if (ev->Get()->Request.Get()->ResultSet.size() != 1 || - ev->Get()->Request.Get()->ResultSet.begin()->Kind != - NSchemeCache::TSchemeCacheNavigate::KindTopic) { - AddIssue(FillIssue(TStringBuilder() << "path '" << path << "' is not a topic", - Ydb::PersQueue::ErrorCode::VALIDATION_ERROR)); - RespondWithCode(Ydb::StatusIds::SCHEME_ERROR); - return true; + auto const& entries = ev->Get()->Request.Get()->ResultSet; + Y_ABORT_UNLESS(entries.size() == 1); + auto const& entry = entries.front(); + if (entry.Kind == NSchemeCache::TSchemeCacheNavigate::KindTopic) { + return false; } - return false; + AddIssue(FillIssue(TStringBuilder() << "path '" << JoinPath(entry.Path) << "' is not a topic", + Ydb::PersQueue::ErrorCode::VALIDATION_ERROR)); + RespondWithCode(Ydb::StatusIds::SCHEME_ERROR); + return true; } void Handle(TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr& ev) { - const NSchemeCache::TSchemeCacheNavigate* result = ev->Get()->Request.Get(); - Y_ABORT_UNLESS(result->ResultSet.size() == 1); - const auto& response = result->ResultSet.front(); + auto const& entries = ev->Get()->Request.Get()->ResultSet; + Y_ABORT_UNLESS(entries.size() == 1); + const auto& response = entries.front(); const TString path = JoinPath(response.Path); switch (response.Status) { @@ -245,7 +240,6 @@ namespace NKikimr::NGRpcProxy::V1 { } } - void StateWork(TAutoPtr<IEventHandle>& ev) { switch (ev->GetTypeRewrite()) { hFunc(TEvTxProxySchemeCache::TEvNavigateKeySetResult, Handle); @@ -256,6 +250,7 @@ namespace NKikimr::NGRpcProxy::V1 { protected: bool IsDead = false; + bool CheckAccessWithWriteTopicPermission = false; const TString TopicPath; const TString Database; }; @@ -339,13 +334,13 @@ namespace NKikimr::NGRpcProxy::V1 { } bool SetRequestToken(NSchemeCache::TSchemeCacheNavigate* request) const override { - if (this->Request_->GetSerializedToken().empty()) { - return !(AppData()->PQConfig.GetRequireCredentialsInNewProtocol()); - } else { - request->UserToken = new NACLib::TUserToken(this->Request_->GetSerializedToken()); + if (auto const& token = this->Request_->GetSerializedToken()) { + request->UserToken = new NACLib::TUserToken(token); return true; } + return !(AppData()->PQConfig.GetRequireCredentialsInNewProtocol()); } + bool ProcessCdc(const NSchemeCache::TSchemeCacheNavigate::TEntry& response) override { if constexpr (THasCdcStreamCompatibility<TDerived>::Value) { if (static_cast<TDerived*>(this)->IsCdcStreamCompatible()) { diff --git a/ydb/services/local_discovery/grpc_func_call.h b/ydb/services/local_discovery/grpc_func_call.h index 8c501bf6a585..4efe50d5662f 100644 --- a/ydb/services/local_discovery/grpc_func_call.h +++ b/ydb/services/local_discovery/grpc_func_call.h @@ -49,6 +49,14 @@ class TGrpcRequestFunctionCall return true; } } + + NJaegerTracing::TRequestDiscriminator GetRequestDiscriminator() const override { + return { + .RequestType = AuxSettings.RequestType, + .Database = TBase::GetDatabaseName(), + }; + } + private: TFuncCallback PassMethod; const TRequestAuxSettings AuxSettings; diff --git a/ydb/services/local_discovery/grpc_service.cpp b/ydb/services/local_discovery/grpc_service.cpp index 0615355a286a..3ea90d8b2191 100644 --- a/ydb/services/local_discovery/grpc_service.cpp +++ b/ydb/services/local_discovery/grpc_service.cpp @@ -76,10 +76,6 @@ void TGRpcLocalDiscoveryService::DecRequest() { Y_ASSERT(Limiter_->GetCurrentInFlight() >= 0); } -void TGRpcLocalDiscoveryService::SetDynamicNodeAuthParams(const TDynamicNodeAuthorizationParams& dynamicNodeAuthorizationParams) { - DynamicNodeAuthorizationParams = dynamicNodeAuthorizationParams; -} - void TGRpcLocalDiscoveryService::SetupIncomingRequests(NYdbGrpc::TLoggerPtr logger) { auto getCounterBlock = CreateCounterCb(Counters_, ActorSystem_); using namespace Ydb; @@ -87,22 +83,22 @@ void TGRpcLocalDiscoveryService::SetupIncomingRequests(NYdbGrpc::TLoggerPtr logg #error macro already defined #endif -#define ADD_REQUEST(NAME, CB) \ +#define ADD_REQUEST(NAME, CB, REQUEST_TYPE) \ MakeIntrusive<TGRpcRequest<Discovery::NAME##Request, Discovery::NAME##Response, TGRpcLocalDiscoveryService>> \ (this, &Service_, CQ_, \ - [this](NYdbGrpc::IRequestContextBase *ctx) { \ + [this](NYdbGrpc::IRequestContextBase *ctx) { \ NGRpcService::ReportGrpcReqToMon(*ActorSystem_, ctx->GetPeer(), GetSdkBuildInfo(ctx)); \ ActorSystem_->Send(GRpcRequestProxyId_, \ new TGrpcRequestOperationCall<Discovery::NAME##Request, Discovery::NAME##Response> \ - (ctx, CB, TRequestAuxSettings{TRateLimiterMode::Rps, nullptr})); \ + (ctx, CB, TRequestAuxSettings { \ + .RlMode = TRateLimiterMode::Rps, \ + .RequestType = NJaegerTracing::ERequestType::DISCOVERY_##REQUEST_TYPE, \ + })); \ }, &Ydb::Discovery::V1::DiscoveryService::AsyncService::Request ## NAME, \ #NAME, logger, getCounterBlock("discovery", #NAME))->Run(); - ADD_REQUEST(WhoAmI, &DoWhoAmIRequest) - NodeRegistrationRequest = [authParams = this->DynamicNodeAuthorizationParams] (std::unique_ptr<IRequestOpCtx> p, const IFacilityProvider& f) { - DoNodeRegistrationRequest(std::move(p), f, authParams); - }; - ADD_REQUEST(NodeRegistration, NodeRegistrationRequest) + ADD_REQUEST(WhoAmI, &DoWhoAmIRequest, WHOAMI) + ADD_REQUEST(NodeRegistration, &DoNodeRegistrationRequest, NODEREGISTRATION) #undef ADD_REQUEST using namespace std::placeholders; @@ -111,19 +107,22 @@ using namespace std::placeholders; #error macro already defined #endif -#define ADD_METHOD(NAME, METHOD) \ +#define ADD_METHOD(NAME, METHOD, REQUEST_TYPE) \ MakeIntrusive<TGRpcRequest<Discovery::NAME##Request, Discovery::NAME##Response, TGRpcLocalDiscoveryService>> \ (this, &Service_, CQ_, \ - [this](NYdbGrpc::IRequestContextBase *ctx) { \ + [this](NYdbGrpc::IRequestContextBase *ctx) { \ NGRpcService::ReportGrpcReqToMon(*ActorSystem_, ctx->GetPeer(), GetSdkBuildInfo(ctx)); \ TFuncCallback cb = std::bind(&TGRpcLocalDiscoveryService::METHOD, this, _1, _2); \ ActorSystem_->Send(GRpcRequestProxyId_, \ new TGrpcRequestFunctionCall<Discovery::NAME##Request, Discovery::NAME##Response> \ - (ctx, cb, TRequestAuxSettings{TRateLimiterMode::Rps, nullptr})); \ + (ctx, cb, TRequestAuxSettings { \ + .RlMode = TRateLimiterMode::Rps, \ + .RequestType = NJaegerTracing::ERequestType::DISCOVERY_##REQUEST_TYPE, \ + })); \ }, &Ydb::Discovery::V1::DiscoveryService::AsyncService::Request ## NAME, \ #NAME, logger, getCounterBlock("discovery", #NAME))->Run(); - ADD_METHOD(ListEndpoints, DoListEndpointsRequest) + ADD_METHOD(ListEndpoints, DoListEndpointsRequest, LISTENDPOINTS) #undef ADD_METHOD } diff --git a/ydb/services/local_discovery/grpc_service.h b/ydb/services/local_discovery/grpc_service.h index d4396ce96911..57a487d6ccd2 100644 --- a/ydb/services/local_discovery/grpc_service.h +++ b/ydb/services/local_discovery/grpc_service.h @@ -7,7 +7,6 @@ #include <ydb/library/grpc/server/grpc_server.h> #include <ydb/core/grpc_services/base/base_service.h> -#include <ydb/core/grpc_services/auth_processor/dynamic_node_auth_processor.h> namespace NKikimr { namespace NGRpcService { @@ -30,8 +29,6 @@ class TGRpcLocalDiscoveryService bool IncRequest(); void DecRequest(); - void SetDynamicNodeAuthParams(const TDynamicNodeAuthorizationParams& dynamicNodeAuthorizationParams); - private: void SetupIncomingRequests(NYdbGrpc::TLoggerPtr logger); void DoListEndpointsRequest(std::unique_ptr<IRequestOpCtx> p, const IFacilityProvider& provider); @@ -43,9 +40,6 @@ class TGRpcLocalDiscoveryService TIntrusivePtr<::NMonitoring::TDynamicCounters> Counters_; NActors::TActorId GRpcRequestProxyId_; NYdbGrpc::TGlobalLimiter* Limiter_ = nullptr; - - TDynamicNodeAuthorizationParams DynamicNodeAuthorizationParams = {}; - std::function<void(std::unique_ptr<IRequestOpCtx>, const IFacilityProvider&)> NodeRegistrationRequest; }; } // namespace NGRpcService diff --git a/ydb/services/metadata/abstract/CMakeLists.darwin-arm64.txt b/ydb/services/metadata/abstract/CMakeLists.darwin-arm64.txt index a92a16c44b21..b480cc86de32 100644 --- a/ydb/services/metadata/abstract/CMakeLists.darwin-arm64.txt +++ b/ydb/services/metadata/abstract/CMakeLists.darwin-arm64.txt @@ -18,12 +18,11 @@ target_link_libraries(services-metadata-abstract PUBLIC contrib-libs-cxxsupp yutil tools-enum_parser-enum_serialization_runtime + ydb-core-base ydb-library-accessor library-actors-core - services-metadata-request - api-protos - ydb-core-base yql-core-expr_nodes + api-protos ) target_sources(services-metadata-abstract PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/metadata/abstract/common.cpp diff --git a/ydb/services/metadata/abstract/CMakeLists.darwin-x86_64.txt b/ydb/services/metadata/abstract/CMakeLists.darwin-x86_64.txt index a92a16c44b21..b480cc86de32 100644 --- a/ydb/services/metadata/abstract/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/metadata/abstract/CMakeLists.darwin-x86_64.txt @@ -18,12 +18,11 @@ target_link_libraries(services-metadata-abstract PUBLIC contrib-libs-cxxsupp yutil tools-enum_parser-enum_serialization_runtime + ydb-core-base ydb-library-accessor library-actors-core - services-metadata-request - api-protos - ydb-core-base yql-core-expr_nodes + api-protos ) target_sources(services-metadata-abstract PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/metadata/abstract/common.cpp diff --git a/ydb/services/metadata/abstract/CMakeLists.linux-aarch64.txt b/ydb/services/metadata/abstract/CMakeLists.linux-aarch64.txt index f6c2750c1167..04d589a9b173 100644 --- a/ydb/services/metadata/abstract/CMakeLists.linux-aarch64.txt +++ b/ydb/services/metadata/abstract/CMakeLists.linux-aarch64.txt @@ -19,12 +19,11 @@ target_link_libraries(services-metadata-abstract PUBLIC contrib-libs-cxxsupp yutil tools-enum_parser-enum_serialization_runtime + ydb-core-base ydb-library-accessor library-actors-core - services-metadata-request - api-protos - ydb-core-base yql-core-expr_nodes + api-protos ) target_sources(services-metadata-abstract PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/metadata/abstract/common.cpp diff --git a/ydb/services/metadata/abstract/CMakeLists.linux-x86_64.txt b/ydb/services/metadata/abstract/CMakeLists.linux-x86_64.txt index f6c2750c1167..04d589a9b173 100644 --- a/ydb/services/metadata/abstract/CMakeLists.linux-x86_64.txt +++ b/ydb/services/metadata/abstract/CMakeLists.linux-x86_64.txt @@ -19,12 +19,11 @@ target_link_libraries(services-metadata-abstract PUBLIC contrib-libs-cxxsupp yutil tools-enum_parser-enum_serialization_runtime + ydb-core-base ydb-library-accessor library-actors-core - services-metadata-request - api-protos - ydb-core-base yql-core-expr_nodes + api-protos ) target_sources(services-metadata-abstract PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/metadata/abstract/common.cpp diff --git a/ydb/services/metadata/abstract/CMakeLists.windows-x86_64.txt b/ydb/services/metadata/abstract/CMakeLists.windows-x86_64.txt index a92a16c44b21..b480cc86de32 100644 --- a/ydb/services/metadata/abstract/CMakeLists.windows-x86_64.txt +++ b/ydb/services/metadata/abstract/CMakeLists.windows-x86_64.txt @@ -18,12 +18,11 @@ target_link_libraries(services-metadata-abstract PUBLIC contrib-libs-cxxsupp yutil tools-enum_parser-enum_serialization_runtime + ydb-core-base ydb-library-accessor library-actors-core - services-metadata-request - api-protos - ydb-core-base yql-core-expr_nodes + api-protos ) target_sources(services-metadata-abstract PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/metadata/abstract/common.cpp diff --git a/ydb/services/metadata/abstract/request_features.h b/ydb/services/metadata/abstract/request_features.h index c985276ceb72..01d525aded8b 100644 --- a/ydb/services/metadata/abstract/request_features.h +++ b/ydb/services/metadata/abstract/request_features.h @@ -40,5 +40,6 @@ class TFeaturesExtractor: TNonCopyable { } std::optional<TString> Extract(const TString& paramName); + }; } diff --git a/ydb/services/metadata/abstract/ya.make b/ydb/services/metadata/abstract/ya.make index 1058cebaa794..7ba40379add6 100644 --- a/ydb/services/metadata/abstract/ya.make +++ b/ydb/services/metadata/abstract/ya.make @@ -19,7 +19,6 @@ PEERDIR( ydb/library/actors/core ydb/library/yql/core/expr_nodes ydb/public/api/protos - ydb/services/metadata/request ) END() diff --git a/ydb/services/metadata/common/ya.make b/ydb/services/metadata/common/ya.make index d7f364bbcdd4..59267fd0a1f0 100644 --- a/ydb/services/metadata/common/ya.make +++ b/ydb/services/metadata/common/ya.make @@ -9,7 +9,7 @@ PEERDIR( ydb/services/metadata/initializer ydb/services/metadata/abstract ydb/services/bg_tasks/abstract - ydb/core/tx/schemeshard + ydb/core/tx/scheme_cache ) YQL_LAST_ABI_VERSION() diff --git a/ydb/services/metadata/ds_table/accessor_refresh.cpp b/ydb/services/metadata/ds_table/accessor_refresh.cpp index 27770a58ab8e..95520dc3d3c6 100644 --- a/ydb/services/metadata/ds_table/accessor_refresh.cpp +++ b/ydb/services/metadata/ds_table/accessor_refresh.cpp @@ -18,7 +18,7 @@ void TDSAccessorRefresher::OnNewEnrichedSnapshot(NFetcher::ISnapshot::TPtr snaps void TDSAccessorRefresher::OnNewParsedSnapshot(Ydb::Table::ExecuteQueryResult&& qResult, NFetcher::ISnapshot::TPtr snapshot) { *ProposedProto.mutable_result_sets() = std::move(*qResult.mutable_result_sets()); - if (CurrentSelection.SerializeAsString() != ProposedProto.SerializeAsString()) { + if (!CurrentSnapshot || CurrentSelection.SerializeAsString() != ProposedProto.SerializeAsString()) { ALS_INFO(NKikimrServices::METADATA_PROVIDER) << "New refresher data: " << ProposedProto.DebugString(); SnapshotConstructor->EnrichSnapshotData(snapshot, InternalController); } else { diff --git a/ydb/services/metadata/ds_table/accessor_snapshot_base.cpp b/ydb/services/metadata/ds_table/accessor_snapshot_base.cpp index c0d8cb721cac..662c7bbdd8c5 100644 --- a/ydb/services/metadata/ds_table/accessor_snapshot_base.cpp +++ b/ydb/services/metadata/ds_table/accessor_snapshot_base.cpp @@ -87,7 +87,7 @@ void TDSAccessorBase::Handle(TTableExistsActor::TEvController::TEvResult::TPtr& } } if (!hasExists) { - OnNewEnrichedSnapshot(SnapshotConstructor->CreateEmpty(RequestedActuality)); + OnNewParsedSnapshot(Ydb::Table::ExecuteQueryResult(), SnapshotConstructor->CreateEmpty(RequestedActuality)); } else { StartSnapshotsFetchingImpl(); } diff --git a/ydb/services/metadata/ds_table/behaviour_registrator_actor.cpp b/ydb/services/metadata/ds_table/behaviour_registrator_actor.cpp index 422b636e659a..fcce730868fa 100644 --- a/ydb/services/metadata/ds_table/behaviour_registrator_actor.cpp +++ b/ydb/services/metadata/ds_table/behaviour_registrator_actor.cpp @@ -43,7 +43,7 @@ void TBehaviourRegistrator::Handle(TEvTableDescriptionFailed::TPtr& ev) { void TBehaviourRegistrator::Handle(TEvStartRegistration::TPtr& /*ev*/) { NInitializer::TDSAccessorInitialized::Execute(ReqConfig, - Behaviour->GetTypeId(), Behaviour->GetInitializer(), InternalController, RegistrationData->GetInitializationSnapshot()); + Behaviour->GetTypeId(), Behaviour->GetInitializer(), InternalController, RegistrationData->GetSnapshotOwner()); } void TBehaviourRegistrator::Handle(NInitializer::TEvInitializationFinished::TPtr& ev) { diff --git a/ydb/services/metadata/ds_table/registration.cpp b/ydb/services/metadata/ds_table/registration.cpp index 008ef3b126f0..d15b6d89d274 100644 --- a/ydb/services/metadata/ds_table/registration.cpp +++ b/ydb/services/metadata/ds_table/registration.cpp @@ -77,9 +77,8 @@ void TRegistrationData::InitializationFinished(const TString& initId) { } void TRegistrationData::SetInitializationSnapshot(NFetcher::ISnapshot::TPtr s) { - const bool notInitializedBefore = !InitializationSnapshot; - InitializationSnapshot = dynamic_pointer_cast<NInitializer::TSnapshot>(s); - Y_ABORT_UNLESS(InitializationSnapshot); + const bool notInitializedBefore = !SnapshotOwner->HasInitializationSnapshot(); + SnapshotOwner->SetInitializationSnapshot(s); if (notInitializedBefore) { EventsWaiting->TryResendOne(); } @@ -91,11 +90,12 @@ void TRegistrationData::StartInitialization() { } TRegistrationData::TRegistrationData() { + SnapshotOwner = std::make_shared<TInitializationSnapshotOwner>(); InitializationFetcher = std::make_shared<NInitializer::TFetcher>(); } void TRegistrationData::NoInitializationSnapshot() { - InitializationSnapshot = std::make_shared<NInitializer::TSnapshot>(TInstant::Zero()); + SnapshotOwner->NoInitializationSnapshot(); EventsWaiting->TryResendOne(); } diff --git a/ydb/services/metadata/ds_table/registration.h b/ydb/services/metadata/ds_table/registration.h index c2f9bccea0e6..5fbea593122e 100644 --- a/ydb/services/metadata/ds_table/registration.h +++ b/ydb/services/metadata/ds_table/registration.h @@ -161,6 +161,37 @@ class TEventsCollector { void Initialized(const TString& initId); }; +class TRegistrationData; + +class TInitializationSnapshotOwner { +private: + mutable TMutex Mutex; + std::shared_ptr<NInitializer::TSnapshot> InitializationSnapshot; + friend class TRegistrationData; + void SetInitializationSnapshot(NFetcher::ISnapshot::TPtr s) { + auto snapshot = dynamic_pointer_cast<NInitializer::TSnapshot>(s); + Y_ABORT_UNLESS(snapshot); + TGuard<TMutex> g(Mutex); + InitializationSnapshot = snapshot; + } + + void NoInitializationSnapshot() { + TGuard<TMutex> g(Mutex); + InitializationSnapshot = std::make_shared<NInitializer::TSnapshot>(TInstant::Zero()); + } +public: + bool HasInitializationSnapshot() const { + TGuard<TMutex> g(Mutex); + return !!InitializationSnapshot; + } + bool HasModification(const TString& componentId, const TString& modificationId) const { + NInitializer::TDBInitializationKey key(componentId, modificationId); + TGuard<TMutex> g(Mutex); + return InitializationSnapshot->GetObjects().contains(key); + } + +}; + class TRegistrationData { public: enum class EStage { @@ -170,8 +201,8 @@ class TRegistrationData { }; private: YDB_READONLY(EStage, Stage, EStage::Created); - YDB_READONLY_DEF(std::shared_ptr<NInitializer::TSnapshot>, InitializationSnapshot); YDB_READONLY_DEF(std::shared_ptr<NInitializer::TFetcher>, InitializationFetcher); + YDB_READONLY_DEF(std::shared_ptr<TInitializationSnapshotOwner>, SnapshotOwner); public: TRegistrationData(); diff --git a/ydb/services/metadata/ds_table/service.cpp b/ydb/services/metadata/ds_table/service.cpp index 3293c32930a4..55d38ef5a5a3 100644 --- a/ydb/services/metadata/ds_table/service.cpp +++ b/ydb/services/metadata/ds_table/service.cpp @@ -18,7 +18,7 @@ IActor* CreateService(const TConfig& config) { void TService::PrepareManagers(std::vector<IClassBehaviour::TPtr> managers, TAutoPtr<IEventBase> ev, const NActors::TActorId& sender) { TBehavioursId id(managers); - if (RegistrationData->GetInitializationSnapshot()) { + if (RegistrationData->GetSnapshotOwner()->HasInitializationSnapshot()) { auto bInitializer = NInitializer::TDBObjectBehaviour::GetInstance(); switch (RegistrationData->GetStage()) { case TRegistrationData::EStage::Created: diff --git a/ydb/services/metadata/initializer/accessor_init.cpp b/ydb/services/metadata/initializer/accessor_init.cpp index 01a09dd68f99..e13649477f31 100644 --- a/ydb/services/metadata/initializer/accessor_init.cpp +++ b/ydb/services/metadata/initializer/accessor_init.cpp @@ -11,6 +11,15 @@ namespace NKikimr::NMetadata::NInitializer { void TDSAccessorInitialized::DoNextModifier(const bool doPop) { + if (InitializationSnapshotOwner->HasInitializationSnapshot() && !doPop) { + while (Modifiers.size() && !doPop) { + if (InitializationSnapshotOwner->HasModification(ComponentId, Modifiers.front()->GetModificationId())) { + Modifiers.pop_front(); + } else { + break; + } + } + } if (doPop) { Modifiers.pop_front(); } @@ -27,11 +36,11 @@ void TDSAccessorInitialized::DoNextModifier(const bool doPop) { TDSAccessorInitialized::TDSAccessorInitialized(const NRequest::TConfig& config, const TString& componentId, IInitializationBehaviour::TPtr initializationBehaviour, - IInitializerOutput::TPtr controller, std::shared_ptr<TSnapshot> initializationSnapshot) + IInitializerOutput::TPtr controller, const std::shared_ptr<NProvider::TInitializationSnapshotOwner>& snapshotOwner) : Config(config) , InitializationBehaviour(initializationBehaviour) , ExternalController(controller) - , InitializationSnapshot(initializationSnapshot) + , InitializationSnapshotOwner(snapshotOwner) , ComponentId(componentId) { } @@ -40,7 +49,7 @@ void TDSAccessorInitialized::OnModificationFinished(const TString& modificationI ALS_INFO(NKikimrServices::METADATA_INITIALIZER) << "modifiers count: " << Modifiers.size(); Y_ABORT_UNLESS(Modifiers.size()); Y_ABORT_UNLESS(Modifiers.front()->GetModificationId() == modificationId); - if (NProvider::TServiceOperator::IsEnabled() && InitializationSnapshot) { + if (NProvider::TServiceOperator::IsEnabled() && InitializationSnapshotOwner->HasInitializationSnapshot()) { TDBInitialization dbInit(ComponentId, Modifiers.front()->GetModificationId()); NModifications::IOperationsManager::TExternalModificationContext extContext; extContext.SetUserToken(NACLib::TSystemUsers::Metadata()); @@ -58,9 +67,6 @@ void TDSAccessorInitialized::OnModificationFinished(const TString& modificationI void TDSAccessorInitialized::OnPreparationFinished(const TVector<ITableModifier::TPtr>& modifiers) { for (auto&& i : modifiers) { TDBInitializationKey key(ComponentId, i->GetModificationId()); - if (InitializationSnapshot && InitializationSnapshot->GetObjects().contains(key)) { - continue; - } Modifiers.emplace_back(i); } DoNextModifier(false); @@ -93,10 +99,11 @@ void TDSAccessorInitialized::OnAlteringFinished() { void TDSAccessorInitialized::Execute(const NRequest::TConfig& config, const TString& componentId, IInitializationBehaviour::TPtr initializationBehaviour, IInitializerOutput::TPtr controller, - std::shared_ptr<TSnapshot> initializationSnapshot) + const std::shared_ptr<NProvider::TInitializationSnapshotOwner>& snapshotOwner) { + AFL_VERIFY(snapshotOwner); std::shared_ptr<TDSAccessorInitialized> initializer(new TDSAccessorInitialized(config, - componentId, initializationBehaviour, controller, initializationSnapshot)); + componentId, initializationBehaviour, controller, snapshotOwner)); initializer->SelfPtr = initializer; initializationBehaviour->Prepare(initializer); diff --git a/ydb/services/metadata/initializer/accessor_init.h b/ydb/services/metadata/initializer/accessor_init.h index 7bff4adba61d..1fd1c6cf9c3d 100644 --- a/ydb/services/metadata/initializer/accessor_init.h +++ b/ydb/services/metadata/initializer/accessor_init.h @@ -5,6 +5,7 @@ #include <ydb/services/metadata/abstract/common.h> #include <ydb/services/metadata/abstract/initialization.h> #include <ydb/services/metadata/ds_table/config.h> +#include <ydb/services/metadata/ds_table/registration.h> #include <ydb/library/actors/core/actor_bootstrapped.h> #include <ydb/library/actors/core/event_local.h> @@ -22,7 +23,7 @@ class TDSAccessorInitialized: public IInitializerInput, const NRequest::TConfig Config; IInitializationBehaviour::TPtr InitializationBehaviour; IInitializerOutput::TPtr ExternalController; - std::shared_ptr<TSnapshot> InitializationSnapshot; + const std::shared_ptr<NProvider::TInitializationSnapshotOwner> InitializationSnapshotOwner; const TString ComponentId; std::shared_ptr<TDSAccessorInitialized> SelfPtr; @@ -38,12 +39,12 @@ class TDSAccessorInitialized: public IInitializerInput, TDSAccessorInitialized(const NRequest::TConfig& config, const TString& componentId, IInitializationBehaviour::TPtr initializationBehaviour, - IInitializerOutput::TPtr controller, std::shared_ptr<TSnapshot> initializationSnapshot); + IInitializerOutput::TPtr controller, const std::shared_ptr<NProvider::TInitializationSnapshotOwner>& snapshotOwner); public: static void Execute(const NRequest::TConfig& config, const TString& componentId, IInitializationBehaviour::TPtr initializationBehaviour, - IInitializerOutput::TPtr controller, std::shared_ptr<TSnapshot> initializationSnapshot); + IInitializerOutput::TPtr controller, const std::shared_ptr<NProvider::TInitializationSnapshotOwner>& initializationSnapshotOwner); }; diff --git a/ydb/services/metadata/initializer/ut/CMakeLists.darwin-arm64.txt b/ydb/services/metadata/initializer/ut/CMakeLists.darwin-arm64.txt index 86beef95ab66..6329a3ddc15a 100644 --- a/ydb/services/metadata/initializer/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/metadata/initializer/ut/CMakeLists.darwin-arm64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-services-metadata-initializer-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-metadata-initializer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/metadata/initializer/ut/ut_init.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/metadata/initializer/ut/CMakeLists.darwin-x86_64.txt b/ydb/services/metadata/initializer/ut/CMakeLists.darwin-x86_64.txt index 374d2aa1319a..5e727b5eea09 100644 --- a/ydb/services/metadata/initializer/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/metadata/initializer/ut/CMakeLists.darwin-x86_64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-services-metadata-initializer-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-metadata-initializer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/metadata/initializer/ut/ut_init.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/metadata/initializer/ut/CMakeLists.linux-aarch64.txt b/ydb/services/metadata/initializer/ut/CMakeLists.linux-aarch64.txt index eb5005bbc5ec..f1b6117ed562 100644 --- a/ydb/services/metadata/initializer/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/metadata/initializer/ut/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-services-metadata-initializer-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-metadata-initializer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/metadata/initializer/ut/ut_init.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/metadata/initializer/ut/CMakeLists.linux-x86_64.txt b/ydb/services/metadata/initializer/ut/CMakeLists.linux-x86_64.txt index 78e3e9e8af01..dbb8bdc11496 100644 --- a/ydb/services/metadata/initializer/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/metadata/initializer/ut/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-services-metadata-initializer-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-metadata-initializer-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/metadata/initializer/ut/ut_init.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/metadata/initializer/ut/CMakeLists.windows-x86_64.txt b/ydb/services/metadata/initializer/ut/CMakeLists.windows-x86_64.txt index 5f1043636665..85b27bb07392 100644 --- a/ydb/services/metadata/initializer/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/metadata/initializer/ut/CMakeLists.windows-x86_64.txt @@ -55,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/metadata/manager/abstract.h b/ydb/services/metadata/manager/abstract.h index 132afb8a8a12..71c49dbf8225 100644 --- a/ydb/services/metadata/manager/abstract.h +++ b/ydb/services/metadata/manager/abstract.h @@ -139,7 +139,7 @@ class IObjectOperationsManager: public IOperationsManager { TOperationParsingResult BuildPatchFromSettings(const NYql::TObjectSettingsImpl& settings, IOperationsManager::TInternalModificationContext& context) const { TOperationParsingResult result = DoBuildPatchFromSettings(settings, context); - if (result) { + if (result.IsSuccess()) { if (!settings.GetFeaturesExtractor().IsFinished()) { return TConclusionStatus::Fail("undefined params: " + settings.GetFeaturesExtractor().GetRemainedParamsString()); } diff --git a/ydb/services/metadata/secret/secret.h b/ydb/services/metadata/secret/secret.h index f0d35df9ce3d..70920091bf31 100644 --- a/ydb/services/metadata/secret/secret.h +++ b/ydb/services/metadata/secret/secret.h @@ -106,7 +106,9 @@ class TSecretIdOrValue { static std::optional<TSecretIdOrValue> DeserializeFromOptional(const NKikimrSchemeOp::TSecretableVariable& proto, const TString& secretInfo, const TString& defaultOwnerId = Default<TString>()) { if (proto.HasSecretId()) { return DeserializeFromProto(proto, defaultOwnerId); - } else if (secretInfo) { + } else if (proto.HasValue()) { + return DeserializeFromString(proto.GetValue().GetData()); + } if (secretInfo) { return DeserializeFromString(secretInfo, defaultOwnerId); } else { return {}; diff --git a/ydb/services/metadata/secret/ut/CMakeLists.darwin-arm64.txt b/ydb/services/metadata/secret/ut/CMakeLists.darwin-arm64.txt index 5d6532c769a5..6d07d68a07d2 100644 --- a/ydb/services/metadata/secret/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/metadata/secret/ut/CMakeLists.darwin-arm64.txt @@ -30,8 +30,6 @@ target_link_options(ydb-services-metadata-secret-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-metadata-secret-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret/ut/ut_secret.cpp @@ -61,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/metadata/secret/ut/CMakeLists.darwin-x86_64.txt b/ydb/services/metadata/secret/ut/CMakeLists.darwin-x86_64.txt index e9868b72bc88..8f52cf21208b 100644 --- a/ydb/services/metadata/secret/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/metadata/secret/ut/CMakeLists.darwin-x86_64.txt @@ -31,8 +31,6 @@ target_link_options(ydb-services-metadata-secret-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-metadata-secret-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret/ut/ut_secret.cpp @@ -62,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/metadata/secret/ut/CMakeLists.linux-aarch64.txt b/ydb/services/metadata/secret/ut/CMakeLists.linux-aarch64.txt index b63bc5235642..b7bbc9454f00 100644 --- a/ydb/services/metadata/secret/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/metadata/secret/ut/CMakeLists.linux-aarch64.txt @@ -33,9 +33,6 @@ target_link_options(ydb-services-metadata-secret-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-metadata-secret-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret/ut/ut_secret.cpp @@ -65,6 +62,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/metadata/secret/ut/CMakeLists.linux-x86_64.txt b/ydb/services/metadata/secret/ut/CMakeLists.linux-x86_64.txt index 35a8805f851f..24e6ee0604f5 100644 --- a/ydb/services/metadata/secret/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/metadata/secret/ut/CMakeLists.linux-x86_64.txt @@ -34,9 +34,6 @@ target_link_options(ydb-services-metadata-secret-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-metadata-secret-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/metadata/secret/ut/ut_secret.cpp @@ -66,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/metadata/secret/ut/CMakeLists.windows-x86_64.txt b/ydb/services/metadata/secret/ut/CMakeLists.windows-x86_64.txt index 0ecbc36747d4..c8874301212c 100644 --- a/ydb/services/metadata/secret/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/metadata/secret/ut/CMakeLists.windows-x86_64.txt @@ -55,6 +55,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.darwin-arm64.txt b/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.darwin-arm64.txt index 5e02ac6c1055..578c9502e705 100644 --- a/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-services-persqueue_cluster_discovery-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-persqueue_cluster_discovery-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_cluster_discovery/cluster_discovery_service_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.darwin-x86_64.txt b/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.darwin-x86_64.txt index 8ff6d639e339..95f38e38234a 100644 --- a/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-services-persqueue_cluster_discovery-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-persqueue_cluster_discovery-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_cluster_discovery/cluster_discovery_service_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.linux-aarch64.txt b/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.linux-aarch64.txt index ee9a8cd7fd15..3a6c036801ef 100644 --- a/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-services-persqueue_cluster_discovery-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-persqueue_cluster_discovery-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_cluster_discovery/cluster_discovery_service_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.linux-x86_64.txt b/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.linux-x86_64.txt index e2c31e7894bd..1dedaeba9b13 100644 --- a/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-services-persqueue_cluster_discovery-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-persqueue_cluster_discovery-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_cluster_discovery/cluster_discovery_service_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.windows-x86_64.txt b/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.windows-x86_64.txt index c75b9885c6a2..58168b9bad24 100644 --- a/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/persqueue_cluster_discovery/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_v1/CMakeLists.darwin-arm64.txt b/ydb/services/persqueue_v1/CMakeLists.darwin-arm64.txt index 2d2cb692c4f7..b526f77ab96b 100644 --- a/ydb/services/persqueue_v1/CMakeLists.darwin-arm64.txt +++ b/ydb/services/persqueue_v1/CMakeLists.darwin-arm64.txt @@ -35,6 +35,10 @@ target_link_libraries(ydb-services-persqueue_v1 PUBLIC services-persqueue_v1-actors ) target_sources(ydb-services-persqueue_v1 PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_read.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_schema.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_write.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_read.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_schema.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_write.cpp diff --git a/ydb/services/persqueue_v1/CMakeLists.darwin-x86_64.txt b/ydb/services/persqueue_v1/CMakeLists.darwin-x86_64.txt index 2d2cb692c4f7..b526f77ab96b 100644 --- a/ydb/services/persqueue_v1/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/persqueue_v1/CMakeLists.darwin-x86_64.txt @@ -35,6 +35,10 @@ target_link_libraries(ydb-services-persqueue_v1 PUBLIC services-persqueue_v1-actors ) target_sources(ydb-services-persqueue_v1 PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_read.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_schema.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_write.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_read.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_schema.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_write.cpp diff --git a/ydb/services/persqueue_v1/CMakeLists.linux-aarch64.txt b/ydb/services/persqueue_v1/CMakeLists.linux-aarch64.txt index 7496a8ad1140..c2f507c1fd76 100644 --- a/ydb/services/persqueue_v1/CMakeLists.linux-aarch64.txt +++ b/ydb/services/persqueue_v1/CMakeLists.linux-aarch64.txt @@ -36,6 +36,10 @@ target_link_libraries(ydb-services-persqueue_v1 PUBLIC services-persqueue_v1-actors ) target_sources(ydb-services-persqueue_v1 PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_read.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_schema.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_write.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_read.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_schema.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_write.cpp diff --git a/ydb/services/persqueue_v1/CMakeLists.linux-x86_64.txt b/ydb/services/persqueue_v1/CMakeLists.linux-x86_64.txt index 7496a8ad1140..c2f507c1fd76 100644 --- a/ydb/services/persqueue_v1/CMakeLists.linux-x86_64.txt +++ b/ydb/services/persqueue_v1/CMakeLists.linux-x86_64.txt @@ -36,6 +36,10 @@ target_link_libraries(ydb-services-persqueue_v1 PUBLIC services-persqueue_v1-actors ) target_sources(ydb-services-persqueue_v1 PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_read.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_schema.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_write.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_read.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_schema.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_write.cpp diff --git a/ydb/services/persqueue_v1/CMakeLists.windows-x86_64.txt b/ydb/services/persqueue_v1/CMakeLists.windows-x86_64.txt index 2d2cb692c4f7..b526f77ab96b 100644 --- a/ydb/services/persqueue_v1/CMakeLists.windows-x86_64.txt +++ b/ydb/services/persqueue_v1/CMakeLists.windows-x86_64.txt @@ -35,6 +35,10 @@ target_link_libraries(ydb-services-persqueue_v1 PUBLIC services-persqueue_v1-actors ) target_sources(ydb-services-persqueue_v1 PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_read.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_schema.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_write.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_read.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_schema.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/grpc_pq_write.cpp diff --git a/ydb/services/persqueue_v1/actors/CMakeLists.darwin-arm64.txt b/ydb/services/persqueue_v1/actors/CMakeLists.darwin-arm64.txt index d2f25bf3c91a..9f91599be3bc 100644 --- a/ydb/services/persqueue_v1/actors/CMakeLists.darwin-arm64.txt +++ b/ydb/services/persqueue_v1/actors/CMakeLists.darwin-arm64.txt @@ -31,6 +31,21 @@ target_link_libraries(services-persqueue_v1-actors PUBLIC ydb-services-metadata ) target_sources(services-persqueue_v1-actors PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/codecs.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/commit_offset_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/events.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/persqueue_utils.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/helpers.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_id.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_init_auth_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_info_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_session_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/direct_read_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/write_session_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/schema_actors.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_writer.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_writer_cache_actor.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/codecs.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/commit_offset_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/persqueue_utils.cpp diff --git a/ydb/services/persqueue_v1/actors/CMakeLists.darwin-x86_64.txt b/ydb/services/persqueue_v1/actors/CMakeLists.darwin-x86_64.txt index d2f25bf3c91a..9f91599be3bc 100644 --- a/ydb/services/persqueue_v1/actors/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/persqueue_v1/actors/CMakeLists.darwin-x86_64.txt @@ -31,6 +31,21 @@ target_link_libraries(services-persqueue_v1-actors PUBLIC ydb-services-metadata ) target_sources(services-persqueue_v1-actors PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/codecs.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/commit_offset_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/events.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/persqueue_utils.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/helpers.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_id.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_init_auth_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_info_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_session_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/direct_read_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/write_session_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/schema_actors.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_writer.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_writer_cache_actor.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/codecs.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/commit_offset_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/persqueue_utils.cpp diff --git a/ydb/services/persqueue_v1/actors/CMakeLists.linux-aarch64.txt b/ydb/services/persqueue_v1/actors/CMakeLists.linux-aarch64.txt index 326faf12eb84..2c117a55bace 100644 --- a/ydb/services/persqueue_v1/actors/CMakeLists.linux-aarch64.txt +++ b/ydb/services/persqueue_v1/actors/CMakeLists.linux-aarch64.txt @@ -32,6 +32,21 @@ target_link_libraries(services-persqueue_v1-actors PUBLIC ydb-services-metadata ) target_sources(services-persqueue_v1-actors PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/codecs.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/commit_offset_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/events.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/persqueue_utils.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/helpers.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_id.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_init_auth_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_info_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_session_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/direct_read_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/write_session_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/schema_actors.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_writer.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_writer_cache_actor.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/codecs.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/commit_offset_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/persqueue_utils.cpp diff --git a/ydb/services/persqueue_v1/actors/CMakeLists.linux-x86_64.txt b/ydb/services/persqueue_v1/actors/CMakeLists.linux-x86_64.txt index 326faf12eb84..2c117a55bace 100644 --- a/ydb/services/persqueue_v1/actors/CMakeLists.linux-x86_64.txt +++ b/ydb/services/persqueue_v1/actors/CMakeLists.linux-x86_64.txt @@ -32,6 +32,21 @@ target_link_libraries(services-persqueue_v1-actors PUBLIC ydb-services-metadata ) target_sources(services-persqueue_v1-actors PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/codecs.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/commit_offset_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/events.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/persqueue_utils.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/helpers.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_id.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_init_auth_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_info_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_session_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/direct_read_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/write_session_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/schema_actors.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_writer.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_writer_cache_actor.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/codecs.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/commit_offset_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/persqueue_utils.cpp diff --git a/ydb/services/persqueue_v1/actors/CMakeLists.windows-x86_64.txt b/ydb/services/persqueue_v1/actors/CMakeLists.windows-x86_64.txt index d2f25bf3c91a..9f91599be3bc 100644 --- a/ydb/services/persqueue_v1/actors/CMakeLists.windows-x86_64.txt +++ b/ydb/services/persqueue_v1/actors/CMakeLists.windows-x86_64.txt @@ -31,6 +31,21 @@ target_link_libraries(services-persqueue_v1-actors PUBLIC ydb-services-metadata ) target_sources(services-persqueue_v1-actors PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/codecs.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/commit_offset_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/events.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/persqueue_utils.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/helpers.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_id.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_init_auth_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_info_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/read_session_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/direct_read_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/write_session_actor.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/schema_actors.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_writer.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/partition_writer_cache_actor.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/codecs.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/commit_offset_actor.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/actors/persqueue_utils.cpp diff --git a/ydb/services/persqueue_v1/actors/partition_actor.cpp b/ydb/services/persqueue_v1/actors/partition_actor.cpp index dd736fc68d39..6e22363df045 100644 --- a/ydb/services/persqueue_v1/actors/partition_actor.cpp +++ b/ydb/services/persqueue_v1/actors/partition_actor.cpp @@ -593,7 +593,7 @@ void TPartitionActor::Handle(TEvPersQueue::TEvResponse::TPtr& ev, const TActorCo if (!StartReading) { - ctx.Send(ParentId, new TEvPQProxy::TEvPartitionStatus(Partition, CommittedOffset, EndOffset, WriteTimestampEstimateMs, TabletGeneration, NodeId)); + ctx.Send(ParentId, new TEvPQProxy::TEvPartitionStatus(Partition, CommittedOffset, EndOffset, WriteTimestampEstimateMs, NodeId, TabletGeneration)); } else { InitStartReading(ctx); } @@ -802,15 +802,14 @@ void TPartitionActor::Handle(TEvTabletPipe::TEvClientConnected::TPtr& ev, const TEvTabletPipe::TEvClientConnected *msg = ev->Get(); LOG_INFO_S(ctx, NKikimrServices::PQ_READ_PROXY, PQ_LOG_PREFIX << " " << Partition - << " pipe restart attempt " << PipeGeneration << " pipe creation result: " << msg->Status); + << " pipe restart attempt " << PipeGeneration << " pipe creation result: " << msg->Status + << " TabletId: " << msg->TabletId << " Generation: " << msg->Generation); if (msg->Status != NKikimrProto::OK) { RestartPipe(ctx, TStringBuilder() << "pipe to tablet is dead " << msg->TabletId, NPersQueue::NErrorCode::TABLET_PIPE_DISCONNECTED); return; } - auto prevGeneration = TabletGeneration; - Y_UNUSED(prevGeneration); TabletGeneration = msg->Generation; NodeId = msg->ServerId.NodeId(); diff --git a/ydb/services/persqueue_v1/actors/partition_writer_cache_actor.cpp b/ydb/services/persqueue_v1/actors/partition_writer_cache_actor.cpp index d1a182401410..f76a36d35950 100644 --- a/ydb/services/persqueue_v1/actors/partition_writer_cache_actor.cpp +++ b/ydb/services/persqueue_v1/actors/partition_writer_cache_actor.cpp @@ -199,6 +199,8 @@ void TPartitionWriterCacheActor::Handle(TEvents::TEvPoisonPill::TPtr& ev, const for (auto& [_, writer] : Writers) { ctx.Send(writer->Actor, new TEvents::TEvPoisonPill()); } + + Die(ctx); } auto TPartitionWriterCacheActor::GetPartitionWriter(const TString& sessionId, const TString& txId, diff --git a/ydb/services/persqueue_v1/actors/schema_actors.cpp b/ydb/services/persqueue_v1/actors/schema_actors.cpp index eba8c06f68d2..b922c7f7a099 100644 --- a/ydb/services/persqueue_v1/actors/schema_actors.cpp +++ b/ydb/services/persqueue_v1/actors/schema_actors.cpp @@ -396,10 +396,6 @@ void TCreateTopicActor::FillProposeRequest(TEvTxUserProxy::TEvProposeTransaction << "' instead of " << LocalCluster, Ydb::PersQueue::ErrorCode::BAD_REQUEST)); return RespondWithCode(Ydb::StatusIds::BAD_REQUEST); } - if (Count(Clusters, config.GetDC()) == 0 && !Clusters.empty()) { - Request_->RaiseIssue(FillIssue(TStringBuilder() << "Unknown cluster '" << config.GetDC() << "'", Ydb::PersQueue::ErrorCode::BAD_REQUEST)); - return RespondWithCode(Ydb::StatusIds::BAD_REQUEST); - } } @@ -596,7 +592,7 @@ void TDescribeTopicActorImpl::Handle(TEvPQProxy::TEvRequestTablet::TPtr& ev, con Y_ABORT_UNLESS(RequestsInfly > 0); --RequestsInfly; } - + RequestTablet(tabletInfo, ctx); } @@ -635,7 +631,7 @@ void TDescribeTopicActorImpl::RequestBalancer(const TActorContext& ctx) { GotLocation = true; } - if (Settings.Mode == TDescribeTopicActorSettings::EMode::DescribeConsumer && Settings.RequireStats) { + if (Settings.Mode == TDescribeTopicActorSettings::EMode::DescribeConsumer && Settings.RequireStats) { if (!GotReadSessions) { RequestReadSessionsInfo(ctx); } @@ -671,7 +667,7 @@ void TDescribeTopicActorImpl::RequestPartitionsLocation(const TActorContext& ctx return RaiseError( TStringBuilder() << "No partition " << Settings.Partitions[0] << " in topic", Ydb::PersQueue::ErrorCode::BAD_REQUEST, Ydb::StatusIds::BAD_REQUEST, ctx - ); + ); } auto res = partIds.insert(p); if (res.second) { @@ -705,7 +701,7 @@ void TDescribeTopicActorImpl::Handle(NKikimr::TEvPersQueue::TEvStatusResponse::T auto& record = ev->Get()->Record; bool doRestart = (record.PartResultSize() == 0); - + for (auto& partResult : record.GetPartResult()) { if (partResult.GetStatus() == NKikimrPQ::TStatusResponse::STATUS_INITIALIZING || partResult.GetStatus() == NKikimrPQ::TStatusResponse::STATUS_UNKNOWN) { @@ -917,7 +913,7 @@ bool TDescribeTopicActor::ApplyResponse( } return true; } - + void TDescribeTopicActor::Reply(const TActorContext& ctx) { @@ -1030,7 +1026,7 @@ bool TDescribeConsumerActor::ApplyResponse( } return true; } - + bool FillConsumerProto(Ydb::Topic::Consumer *rr, const NKikimrPQ::TPQTabletConfig& config, ui32 i, const NActors::TActorContext& ctx, Ydb::StatusIds::StatusCode& status, TString& error) @@ -1272,11 +1268,11 @@ bool TDescribeTopicActorImpl::ProcessTablets( Tablets[pi.GetTabletId()].Partitions.push_back(pi.GetPartitionId()); Tablets[pi.GetTabletId()].TabletId = pi.GetTabletId(); } - + for (auto& pair : Tablets) { RequestTablet(pair.second, ctx); } - + if (RequestsInfly == 0) { Reply(ctx); return false; @@ -1323,8 +1319,9 @@ TDescribePartitionActor::TDescribePartitionActor(NKikimr::NGRpcService::IRequest { } -void TDescribePartitionActor::Bootstrap(const NActors::TActorContext& ctx) -{ +void TDescribePartitionActor::Bootstrap(const NActors::TActorContext& ctx) { + LOG_DEBUG_S(ctx, NKikimrServices::PQ_READ_PROXY, "TDescribePartitionActor" << ctx.SelfID.ToString() << ": Bootstrap"); + CheckAccessWithWriteTopicPermission = true; TBase::Bootstrap(ctx); SendDescribeProposeRequest(ctx); Become(&TDescribePartitionActor::StateWork); @@ -1332,21 +1329,50 @@ void TDescribePartitionActor::Bootstrap(const NActors::TActorContext& ctx) void TDescribePartitionActor::StateWork(TAutoPtr<IEventHandle>& ev) { switch (ev->GetTypeRewrite()) { - default: + case TEvTxProxySchemeCache::TEvNavigateKeySetResult::EventType: + if (NeedToRequestWithDescribeSchema(ev)) { + // We do not have the UpdateRow permission. Check if we're allowed to DescribeSchema. + CheckAccessWithWriteTopicPermission = false; + SendDescribeProposeRequest(ActorContext()); + break; + } + [[fallthrough]]; + default: if (!TDescribeTopicActorImpl::StateWork(ev, ActorContext())) { TBase::StateWork(ev); }; } } -void TDescribePartitionActor::HandleCacheNavigateResponse( - TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr& ev -) { - Y_ABORT_UNLESS(ev->Get()->Request.Get()->ResultSet.size() == 1); // describe for only one topic +// Return true if we need to send a second request to SchemeCache with DescribeSchema permission, +// because the first request checking the UpdateRow permission resulted in an AccessDenied error. +bool TDescribePartitionActor::NeedToRequestWithDescribeSchema(TAutoPtr<IEventHandle>& ev) { + if (!CheckAccessWithWriteTopicPermission) { + // We've already sent a request with DescribeSchema, ev is a response to it. + return false; + } + + auto evNav = *reinterpret_cast<typename TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr*>(&ev); + auto const& entries = evNav->Get()->Request.Get()->ResultSet; + Y_ABORT_UNLESS(entries.size() == 1); + + if (entries.front().Status != NSchemeCache::TSchemeCacheNavigate::EStatus::AccessDenied) { + // We do have access to the requested entity or there was an error. + // Transfer ownership to the ev pointer, and let the base classes' StateWork methods handle the response. + ev = *reinterpret_cast<TAutoPtr<IEventHandle>*>(&evNav); + return false; + } + + return true; +} + +void TDescribePartitionActor::HandleCacheNavigateResponse(TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr& ev) { + auto const& entries = ev->Get()->Request.Get()->ResultSet; + Y_ABORT_UNLESS(entries.size() == 1); // describe for only one topic if (ReplyIfNotTopic(ev)) { return; } - PQGroupInfo = ev->Get()->Request->ResultSet[0].PQGroupInfo; + PQGroupInfo = entries[0].PQGroupInfo; auto* partRes = Result.mutable_partition(); partRes->set_partition_id(Settings.Partitions[0]); partRes->set_active(true); @@ -1359,12 +1385,12 @@ void TDescribePartitionActor::ApplyResponse(TTabletInfo&, NKikimr::TEvPersQueue: void TDescribePartitionActor::ApplyResponse(TTabletInfo& tabletInfo, NKikimr::TEvPersQueue::TEvStatusResponse::TPtr& ev, const TActorContext&) { auto* partResult = Result.mutable_partition(); - + const auto& record = ev->Get()->Record; for (auto partData : record.GetPartResult()) { if ((ui32)partData.GetPartition() != Settings.Partitions[0]) continue; - + Y_ABORT_UNLESS((ui32)(partData.GetPartition()) == Settings.Partitions[0]); partResult->set_partition_id(partData.GetPartition()); partResult->set_active(true); @@ -1411,7 +1437,7 @@ void TDescribePartitionActor::Reply(const TActorContext& ctx) { using namespace NIcNodeCache; -TPartitionsLocationActor::TPartitionsLocationActor(const TGetPartitionsLocationRequest& request, const TActorId& requester) +TPartitionsLocationActor::TPartitionsLocationActor(const TGetPartitionsLocationRequest& request, const TActorId& requester) : TBase(request, requester) , TDescribeTopicActorImpl(TDescribeTopicActorSettings::GetPartitionsLocation(request.PartitionIds)) { @@ -1429,7 +1455,7 @@ void TPartitionsLocationActor::Bootstrap(const NActors::TActorContext&) void TPartitionsLocationActor::StateWork(TAutoPtr<IEventHandle>& ev) { switch (ev->GetTypeRewrite()) { hFunc(TEvICNodesInfoCache::TEvGetAllNodesInfoResponse, Handle); - default: + default: if (!TDescribeTopicActorImpl::StateWork(ev, ActorContext())) { TBase::StateWork(ev); }; diff --git a/ydb/services/persqueue_v1/actors/schema_actors.h b/ydb/services/persqueue_v1/actors/schema_actors.h index 22af8dbeb6b8..6b37cb91138f 100644 --- a/ydb/services/persqueue_v1/actors/schema_actors.h +++ b/ydb/services/persqueue_v1/actors/schema_actors.h @@ -71,7 +71,7 @@ struct TDescribeTopicActorSettings { TVector<ui32> Partitions; bool RequireStats = false; bool RequireLocation = false; - + TDescribeTopicActorSettings() : Mode(EMode::DescribeTopic) {} @@ -85,7 +85,7 @@ struct TDescribeTopicActorSettings { , RequireStats(requireStats) , RequireLocation(requireLocation) {} - + static TDescribeTopicActorSettings DescribeTopic(bool requireStats, bool requireLocation, const TVector<ui32>& partitions = {}) { TDescribeTopicActorSettings res{EMode::DescribeTopic, requireStats, requireLocation}; res.Partitions = partitions; @@ -104,7 +104,7 @@ struct TDescribeTopicActorSettings { res.Partitions = partitions; return res; } - + static TDescribeTopicActorSettings DescribePartitionSettings(ui32 partition, bool stats, bool location) { TDescribeTopicActorSettings res{EMode::DescribePartitions, stats, location}; res.Partitions = {partition}; @@ -261,9 +261,13 @@ using TTabletInfo = TDescribeTopicActorImpl::TTabletInfo; void ApplyResponse(TTabletInfo& tabletInfo, NKikimr::TEvPersQueue::TEvStatusResponse::TPtr& ev, const TActorContext& ctx) override; void ApplyResponse(TTabletInfo& tabletInfo, NKikimr::TEvPersQueue::TEvReadSessionsInfoResponse::TPtr& ev, const TActorContext& ctx) override; bool ApplyResponse(TEvPersQueue::TEvGetPartitionsLocationResponse::TPtr& ev, const TActorContext& ctx) override; - + virtual void Reply(const TActorContext& ctx) override; +private: + + bool NeedToRequestWithDescribeSchema(TAutoPtr<IEventHandle>& ev); + private: TIntrusiveConstPtr<NSchemeCache::TSchemeCacheNavigate::TPQGroupInfo> PQGroupInfo; Ydb::Topic::DescribePartitionResult Result; diff --git a/ydb/services/persqueue_v1/actors/write_session_actor.h b/ydb/services/persqueue_v1/actors/write_session_actor.h index 2d69db971d7f..17c47aab7837 100644 --- a/ydb/services/persqueue_v1/actors/write_session_actor.h +++ b/ydb/services/persqueue_v1/actors/write_session_actor.h @@ -271,6 +271,8 @@ class TWriteSessionActor TActorId PartitionWriterCache; TActorId PartitionChooser; + + bool SessionClosed = false; }; } diff --git a/ydb/services/persqueue_v1/actors/write_session_actor.ipp b/ydb/services/persqueue_v1/actors/write_session_actor.ipp index 972e76a179f5..9de34f08da6c 100644 --- a/ydb/services/persqueue_v1/actors/write_session_actor.ipp +++ b/ydb/services/persqueue_v1/actors/write_session_actor.ipp @@ -389,11 +389,12 @@ void TWriteSessionActor<UseMigrationProtocol>::Handle(typename TEvWriteInit::TPt // 1.2. non-empty partition_id (explicit partitioning) // 1.3. non-empty partition_with_generation (explicit partitioning && direct write to partition host) // 2. Empty producer id (no deduplication, partition is selected using round-robin). - bool isScenarioSupported = + bool isScenarioSupported = !InitRequest.producer_id().empty() && ( - InitRequest.has_message_group_id() && InitRequest.message_group_id() == InitRequest.producer_id() || + InitRequest.has_message_group_id() && InitRequest.message_group_id() == InitRequest.producer_id() || InitRequest.has_partition_id() || - InitRequest.has_partition_with_generation()) || + InitRequest.has_partition_with_generation()) + || InitRequest.producer_id().empty(); if (!isScenarioSupported) { @@ -424,7 +425,6 @@ void TWriteSessionActor<UseMigrationProtocol>::Handle(typename TEvWriteInit::TPt return InitRequest.has_message_group_id() ? InitRequest.message_group_id() : InitRequest.producer_id(); } }(); - LOG_INFO_S(ctx, NKikimrServices::PQ_WRITE_PROXY, "session request cookie: " << Cookie << " " << InitRequest.ShortDebugString() << " from " << PeerName); if (!UseDeduplication) { LOG_DEBUG_S(ctx, NKikimrServices::PQ_WRITE_PROXY, "session request cookie: " << Cookie << ". Disable deduplication for empty producer id"); @@ -467,8 +467,9 @@ template<bool UseMigrationProtocol> void TWriteSessionActor<UseMigrationProtocol>::InitAfterDiscovery(const TActorContext& ctx) { Y_UNUSED(ctx); - if (SourceId.empty()) { - Y_ABORT_UNLESS(!UseDeduplication); + if (SourceId.empty() && UseDeduplication) { + CloseSession("Internal server error: got empty SourceId with enabled deduplication", PersQueue::ErrorCode::ERROR, ctx); + return; } InitMeta = GetInitialDataChunk(InitRequest, FullConverter->GetClientsideName(), PeerName); // ToDo[migration] - check? @@ -623,6 +624,10 @@ template<bool UseMigrationProtocol> void TWriteSessionActor<UseMigrationProtocol>::DiscoverPartition(const NActors::TActorContext& ctx) { State = ES_WAIT_PARTITION; + if (PartitionChooser) { + ctx.Send(PartitionChooser, new TEvents::TEvPoison()); + } + std::optional<ui32> preferedPartition = PreferedPartition == Max<ui32>() ? std::nullopt : std::optional(PreferedPartition); PartitionChooser = ctx.RegisterWithSameMailbox(NPQ::CreatePartitionChooserActor(ctx.SelfID, Config, FullConverter, SourceId, preferedPartition)); } @@ -723,6 +728,10 @@ void TWriteSessionActor<UseMigrationProtocol>::DestroyPartitionWriterCache(const template<bool UseMigrationProtocol> void TWriteSessionActor<UseMigrationProtocol>::CloseSession(const TString& errorReason, const PersQueue::ErrorCode::ErrorCode errorCode, const NActors::TActorContext& ctx) { + if (SessionClosed) { + return; + } + SessionClosed = true; if (errorCode != PersQueue::ErrorCode::OK) { @@ -835,9 +844,14 @@ void TWriteSessionActor<UseMigrationProtocol>::Handle(NPQ::TEvPartitionWriter::T OwnerCookie = result.GetResult().OwnerCookie; const auto& maxSeqNo = result.GetResult().SourceIdInfo.GetSeqNo(); - if (!UseDeduplication) { - Y_ABORT_UNLESS(maxSeqNo == 0); - } + + // ToDo: uncomment after fixing KIKIMR-21124 + // if (!UseDeduplication) { + // if (maxSeqNo != 0) { + // return CloseSession("Internal server error: have maxSeqNo != with deduplication disabled", + // PersQueue::ErrorCode::ERROR, ctx); + // } + // } OwnerCookie = result.GetResult().OwnerCookie; MakeAndSentInitResponse(maxSeqNo, ctx); @@ -1497,7 +1511,10 @@ void TWriteSessionActor<UseMigrationProtocol>::Handle(TEvents::TEvWakeup::TPtr& template<bool UseMigrationProtocol> void TWriteSessionActor<UseMigrationProtocol>::RecheckACL(const TActorContext& ctx) { - Y_ABORT_UNLESS(State == ES_INITED); + if (State != ES_INITED) { + LOG_ERROR_S(ctx, NKikimrServices::PQ_WRITE_PROXY, "WriteSessionActor state is wrong. Actual state '" << (int)State << "'"); + return CloseSession("erroneous internal state", PersQueue::ErrorCode::ERROR, ctx); + } auto now = ctx.Now(); diff --git a/ydb/services/persqueue_v1/persqueue_compat_ut.cpp b/ydb/services/persqueue_v1/persqueue_compat_ut.cpp index 1cc7a80d50b7..82c431d69d6a 100644 --- a/ydb/services/persqueue_v1/persqueue_compat_ut.cpp +++ b/ydb/services/persqueue_v1/persqueue_compat_ut.cpp @@ -174,13 +174,15 @@ Y_UNIT_TEST_SUITE(TPQCompatTest) { // Local topic with client write disabled testServer.CreateTopic("/Root/LbCommunal/some-topic", "account", false, true); // Non-local topic with client write enabled - testServer.CreateTopic("/Root/LbCommunal/some-topic-mirrored-from-dc2", "account", true, true); testServer.CreateTopic("/Root/LbCommunal/.some-topic/mirrored-from-dc2", "account", true, true); + // this validation was relaxed + testServer.CreateTopic("/Root/LbCommunal/some-topic-mirrored-from-dc2", "account", true, false); // No account testServer.CreateTopic("/Root/LbCommunal/some-topic", "", true, true); // Mirrored-from local testServer.CreateTopic("/Root/LbCommunal/.some-topic/mirrored-from-dc1", "account", false, true); - testServer.CreateTopic("/Root/LbCommunal/some-topic-mirrored-from-dc1", "account", false, true); + // this validation was relaxed + testServer.CreateTopic("/Root/LbCommunal/some-topic-mirrored-from-dc1", "account", false, false); // Bad mirrored names testServer.CreateTopic("/Root/LbCommunal/.some-topic/some-topic", "account", false, true); // Mirrored-from non-existing diff --git a/ydb/services/persqueue_v1/persqueue_new_schemecache_ut.cpp b/ydb/services/persqueue_v1/persqueue_new_schemecache_ut.cpp index 5258dfd286b2..7d4a33371514 100644 --- a/ydb/services/persqueue_v1/persqueue_new_schemecache_ut.cpp +++ b/ydb/services/persqueue_v1/persqueue_new_schemecache_ut.cpp @@ -223,7 +223,7 @@ namespace NKikimr::NPersQueueTests { Sleep(TDuration::MilliSeconds(10)); } - // Ts and firstOffset and expectingQuantities will be set in first iteration of reading by received messages. + // Ts and firstOffset and expectingQuantities will be set in first iteration of reading by received messages. // Each will contains shifts from the message: before, equals and after. // It allow check reading from different shift. First iteration read from zero. TVector<TInstant> ts { TInstant::Zero() }; @@ -254,10 +254,10 @@ namespace NKikimr::NPersQueueTests { ui32 lastOffset = 0; settings.EventHandlers_.SimpleDataHandlers([&](NYdb::NPersQueue::TReadSessionEvent::TDataReceivedEvent& event) mutable { - Cerr << ">>>>> Iteration: " << i << " TDataReceivedEvent: " << event.DebugString(false) + Cerr << ">>>>> Iteration: " << i << " TDataReceivedEvent: " << event.DebugString(false) << " size=" << event.GetMessages().size() << Endl << Flush; for (const auto& msg : event.GetMessages()) { - Cerr << ">>>>> Iteration: " << i << " Got message: " << msg.GetData().substr(0, 16) + Cerr << ">>>>> Iteration: " << i << " Got message: " << msg.GetData().substr(0, 16) << " :: " << msg.DebugString(false) << Endl << Flush; auto count = ++map[msg.GetData()]; @@ -281,12 +281,12 @@ namespace NKikimr::NPersQueueTests { } else { if (map.size() == 1) { auto expectedOffset = firstOffset[i]; - UNIT_ASSERT_EQUAL_C(msg.GetOffset(), expectedOffset, "Iteration: " << i - << " Expected first message offset " << expectedOffset + UNIT_ASSERT_EQUAL_C(msg.GetOffset(), expectedOffset, "Iteration: " << i + << " Expected first message offset " << expectedOffset << " but got " << msg.GetOffset()); } else { - UNIT_ASSERT_C(lastOffset < msg.GetOffset(), "Iteration: " << i - << " unexpected offset order. Last offset " << lastOffset + UNIT_ASSERT_C(lastOffset < msg.GetOffset(), "Iteration: " << i + << " unexpected offset order. Last offset " << lastOffset << " Message offset " << msg.GetOffset()); } @@ -310,8 +310,8 @@ namespace NKikimr::NPersQueueTests { if (i == 0) { for (ui32 j = 1; j < ts.size(); ++j) { - Cerr << ">>>>> Planed iteration: " << j - << ". Start reading from time: " << ts[j] + Cerr << ">>>>> Planed iteration: " << j + << ". Start reading from time: " << ts[j] << ". Expected first message offset: " << firstOffset[j] << ". Expected message quantity: " << expectingQuantities[j] << Endl; } @@ -462,8 +462,10 @@ namespace NKikimr::NPersQueueTests { "topic.read.lag_milliseconds", "topic.write.bytes", "topic.write.messages", + "topic.write.discarded_bytes", + "topic.write.discarded_messages", "api.grpc.topic.stream_write.bytes", - "api.grpc.topic.stream_write.partition_throttled_milliseconds", + "topic.write.partition_throttled_milliseconds", "topic.write.message_size_bytes", "api.grpc.topic.stream_write.messages", "topic.write.lag_milliseconds", diff --git a/ydb/services/persqueue_v1/persqueue_ut.cpp b/ydb/services/persqueue_v1/persqueue_ut.cpp index a223ec34ff89..b4c8c96ca34d 100644 --- a/ydb/services/persqueue_v1/persqueue_ut.cpp +++ b/ydb/services/persqueue_v1/persqueue_ut.cpp @@ -716,7 +716,7 @@ Y_UNIT_TEST_SUITE(TPersQueueTest) { TPersQueueV1TestServer server; SET_LOCALS; MAKE_INSECURE_STUB(Ydb::Topic::V1::TopicService); - server.EnablePQLogs({ NKikimrServices::PQ_METACACHE, NKikimrServices::PQ_READ_PROXY}); + server.EnablePQLogs({ NKikimrServices::PQ_METACACHE, NKikimrServices::PQ_READ_PROXY, NKikimrServices::PERSQUEUE}); server.EnablePQLogs({ NKikimrServices::KQP_PROXY }, NLog::EPriority::PRI_EMERG); server.EnablePQLogs({ NKikimrServices::FLAT_TX_SCHEMESHARD }, NLog::EPriority::PRI_ERROR); @@ -742,8 +742,8 @@ Y_UNIT_TEST_SUITE(TPersQueueTest) { } // await and confirm CreatePartitionStreamRequest from server - i64 assignId = 0; - i64 generation = 0; + i64 assignId; + i64 generation; { Ydb::Topic::StreamReadMessage::FromServer resp; @@ -756,8 +756,8 @@ Y_UNIT_TEST_SUITE(TPersQueueTest) { UNIT_ASSERT_VALUES_EQUAL(resp.start_partition_session_request().partition_session().path(), "acc/topic1"); UNIT_ASSERT(resp.start_partition_session_request().partition_session().partition_id() == 0); UNIT_ASSERT(resp.start_partition_session_request().partition_location().generation() > 0); - generation = resp.start_partition_session_request().partition_location().generation(); assignId = resp.start_partition_session_request().partition_session().partition_session_id(); + generation = resp.start_partition_session_request().partition_location().generation(); } server.Server->AnnoyingClient->RestartPartitionTablets(server.Server->CleverServer->GetRuntime(), "rt3.dc1--acc--topic1"); @@ -3676,6 +3676,8 @@ Y_UNIT_TEST_SUITE(TPersQueueTest) { { "BytesWrittenOriginal", "CompactedBytesWrittenOriginal", + "DiscardedBytes", + "DiscardedMessages", "MessagesWrittenOriginal", "UncompressedBytesWrittenOriginal" }, @@ -6694,6 +6696,55 @@ Y_UNIT_TEST_SUITE(TPersQueueTest) { } } + Y_UNIT_TEST(DisableWrongSettings) { + NPersQueue::TTestServer server; + server.EnableLogs({NKikimrServices::PQ_READ_PROXY, NKikimrServices::BLACKBOX_VALIDATOR }); + server.EnableLogs({NKikimrServices::PERSQUEUE}, NActors::NLog::EPriority::PRI_INFO); + TString topicFullName = "rt3.dc1--acc--topic1"; + auto driver = SetupTestAndGetDriver(server, topicFullName, 3); + + std::shared_ptr<grpc::Channel> Channel_; + std::unique_ptr<Ydb::Topic::V1::TopicService::Stub> TopicStubP_; + { + Channel_ = grpc::CreateChannel("localhost:" + ToString(server.GrpcPort), grpc::InsecureChannelCredentials()); + TopicStubP_ = Ydb::Topic::V1::TopicService::NewStub(Channel_); + } + + { + grpc::ClientContext rcontext1; + auto writeStream1 = TopicStubP_->StreamWrite(&rcontext1); + UNIT_ASSERT(writeStream1); + Ydb::Topic::StreamWriteMessage::FromClient req; + Ydb::Topic::StreamWriteMessage::FromServer resp; + + req.mutable_init_request()->set_path("acc/topic1"); + req.mutable_init_request()->set_message_group_id("some-group"); + if (!writeStream1->Write(req)) { + ythrow yexception() << "write fail"; + } + UNIT_ASSERT(writeStream1->Read(&resp)); + Cerr << "===Got response: " << resp.ShortDebugString() << Endl; + UNIT_ASSERT(resp.status() == Ydb::StatusIds::SUCCESS); + } + { + grpc::ClientContext rcontext1; + auto writeStream1 = TopicStubP_->StreamWrite(&rcontext1); + UNIT_ASSERT(writeStream1); + Ydb::Topic::StreamWriteMessage::FromClient req; + Ydb::Topic::StreamWriteMessage::FromServer resp; + + req.mutable_init_request()->set_path("acc/topic1"); + req.mutable_init_request()->set_message_group_id("some-group"); + req.mutable_init_request()->set_producer_id("producer"); + if (!writeStream1->Write(req)) { + ythrow yexception() << "write fail"; + } + UNIT_ASSERT(writeStream1->Read(&resp)); + Cerr << "===Got response: " << resp.ShortDebugString() << Endl; + UNIT_ASSERT(resp.status() == Ydb::StatusIds::BAD_REQUEST); + } + } + Y_UNIT_TEST(DisableDeduplication) { NPersQueue::TTestServer server; TString topicFullName = "rt3.dc1--topic1"; diff --git a/ydb/services/persqueue_v1/ut/CMakeLists.darwin-arm64.txt b/ydb/services/persqueue_v1/ut/CMakeLists.darwin-arm64.txt index b754157dc255..a816d36bd06f 100644 --- a/ydb/services/persqueue_v1/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/persqueue_v1/ut/CMakeLists.darwin-arm64.txt @@ -39,10 +39,13 @@ target_link_options(ydb-services-persqueue_v1-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-persqueue_v1-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/test_utils.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/pq_data_writer.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/api_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/functions_executor_wrapper.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_common_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_compat_ut.cpp @@ -82,6 +85,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_v1/ut/CMakeLists.darwin-x86_64.txt b/ydb/services/persqueue_v1/ut/CMakeLists.darwin-x86_64.txt index b9ff3fbb0345..9bc64da3463b 100644 --- a/ydb/services/persqueue_v1/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/persqueue_v1/ut/CMakeLists.darwin-x86_64.txt @@ -40,10 +40,13 @@ target_link_options(ydb-services-persqueue_v1-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-persqueue_v1-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/test_utils.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/pq_data_writer.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/api_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/functions_executor_wrapper.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_common_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_compat_ut.cpp @@ -83,6 +86,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_v1/ut/CMakeLists.linux-aarch64.txt b/ydb/services/persqueue_v1/ut/CMakeLists.linux-aarch64.txt index d135c0c3dce9..5b8972d23d51 100644 --- a/ydb/services/persqueue_v1/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/persqueue_v1/ut/CMakeLists.linux-aarch64.txt @@ -42,11 +42,13 @@ target_link_options(ydb-services-persqueue_v1-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-persqueue_v1-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/test_utils.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/pq_data_writer.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/api_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/functions_executor_wrapper.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_common_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_compat_ut.cpp @@ -86,6 +88,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_v1/ut/CMakeLists.linux-x86_64.txt b/ydb/services/persqueue_v1/ut/CMakeLists.linux-x86_64.txt index fff4a470c7bc..5e20901bdfeb 100644 --- a/ydb/services/persqueue_v1/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/persqueue_v1/ut/CMakeLists.linux-x86_64.txt @@ -43,11 +43,13 @@ target_link_options(ydb-services-persqueue_v1-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-persqueue_v1-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/test_utils.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/pq_data_writer.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/api_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/functions_executor_wrapper.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_common_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_compat_ut.cpp @@ -87,6 +89,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_v1/ut/CMakeLists.windows-x86_64.txt b/ydb/services/persqueue_v1/ut/CMakeLists.windows-x86_64.txt index 1700f10ce74c..f11d54c656a8 100644 --- a/ydb/services/persqueue_v1/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/persqueue_v1/ut/CMakeLists.windows-x86_64.txt @@ -37,6 +37,11 @@ target_link_libraries(ydb-services-persqueue_v1-ut PUBLIC cpp-client-ydb_proto ) target_sources(ydb-services-persqueue_v1-ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/test_utils.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/pq_data_writer.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/api_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/functions_executor_wrapper.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_common_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_compat_ut.cpp @@ -76,6 +81,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.darwin-arm64.txt b/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.darwin-arm64.txt index b1df578d1d5b..a549f0d52727 100644 --- a/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-services-persqueue_v1-ut-describes_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-persqueue_v1-ut-describes_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/describes_ut/ic_cache_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.darwin-x86_64.txt b/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.darwin-x86_64.txt index 2933016185f5..7c7fdf5b6c2e 100644 --- a/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-services-persqueue_v1-ut-describes_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-persqueue_v1-ut-describes_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/describes_ut/ic_cache_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.linux-aarch64.txt b/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.linux-aarch64.txt index 733eac0df596..a6e05f44e65a 100644 --- a/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-services-persqueue_v1-ut-describes_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-persqueue_v1-ut-describes_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/describes_ut/ic_cache_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.linux-x86_64.txt b/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.linux-x86_64.txt index fb655893e2f5..f8c12d245ecd 100644 --- a/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-services-persqueue_v1-ut-describes_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-persqueue_v1-ut-describes_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/describes_ut/ic_cache_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.windows-x86_64.txt b/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.windows-x86_64.txt index 311d4cc3736e..2bef11564437 100644 --- a/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/persqueue_v1/ut/describes_ut/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.darwin-arm64.txt b/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.darwin-arm64.txt index 11ff4c2f3869..012ca992dcdc 100644 --- a/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.darwin-arm64.txt @@ -32,10 +32,12 @@ target_link_options(ydb-services-persqueue_v1-ut-new_schemecache_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-persqueue_v1-ut-new_schemecache_ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/api_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/test_utils.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/pq_data_writer.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_new_schemecache_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_common_new_schemecache_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.cpp @@ -65,6 +67,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.darwin-x86_64.txt b/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.darwin-x86_64.txt index 1c8bcbe935cd..001c948c2fd9 100644 --- a/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.darwin-x86_64.txt @@ -33,10 +33,12 @@ target_link_options(ydb-services-persqueue_v1-ut-new_schemecache_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-persqueue_v1-ut-new_schemecache_ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/api_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/test_utils.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/pq_data_writer.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_new_schemecache_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_common_new_schemecache_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.cpp @@ -66,6 +68,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.linux-aarch64.txt b/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.linux-aarch64.txt index 757deb67a474..c5bb87bb09d2 100644 --- a/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.linux-aarch64.txt @@ -35,11 +35,12 @@ target_link_options(ydb-services-persqueue_v1-ut-new_schemecache_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-persqueue_v1-ut-new_schemecache_ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/api_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/test_utils.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/pq_data_writer.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_new_schemecache_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_common_new_schemecache_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.cpp @@ -69,6 +70,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.linux-x86_64.txt b/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.linux-x86_64.txt index e100ca68582b..9bea86d1498d 100644 --- a/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.linux-x86_64.txt @@ -36,11 +36,12 @@ target_link_options(ydb-services-persqueue_v1-ut-new_schemecache_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-persqueue_v1-ut-new_schemecache_ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/api_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/test_utils.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/pq_data_writer.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_new_schemecache_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_common_new_schemecache_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.cpp @@ -70,6 +71,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.windows-x86_64.txt b/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.windows-x86_64.txt index a3ac31b15650..5ca6f4da7b95 100644 --- a/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/persqueue_v1/ut/new_schemecache_ut/CMakeLists.windows-x86_64.txt @@ -30,6 +30,10 @@ target_link_libraries(ydb-services-persqueue_v1-ut-new_schemecache_ut PUBLIC cpp-client-ydb_table ) target_sources(ydb-services-persqueue_v1-ut-new_schemecache_ut PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/api_test_setup.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/test_utils.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/pq_data_writer.h + ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.h ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_new_schemecache_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/persqueue_common_new_schemecache_ut.cpp ${CMAKE_SOURCE_DIR}/ydb/services/persqueue_v1/ut/rate_limiter_test_setup.cpp @@ -59,6 +63,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/rate_limiter/ut/CMakeLists.darwin-arm64.txt b/ydb/services/rate_limiter/ut/CMakeLists.darwin-arm64.txt index 79f118743ee4..53add87125b1 100644 --- a/ydb/services/rate_limiter/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/rate_limiter/ut/CMakeLists.darwin-arm64.txt @@ -27,8 +27,6 @@ target_link_options(ydb-services-rate_limiter-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-rate_limiter-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/rate_limiter/rate_limiter_ut.cpp @@ -58,6 +56,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/rate_limiter/ut/CMakeLists.darwin-x86_64.txt b/ydb/services/rate_limiter/ut/CMakeLists.darwin-x86_64.txt index 9a3d44a52a82..f5ae2cbbed5f 100644 --- a/ydb/services/rate_limiter/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/rate_limiter/ut/CMakeLists.darwin-x86_64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-services-rate_limiter-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-rate_limiter-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/rate_limiter/rate_limiter_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/rate_limiter/ut/CMakeLists.linux-aarch64.txt b/ydb/services/rate_limiter/ut/CMakeLists.linux-aarch64.txt index 95da2e42366f..eeaf0701c7c6 100644 --- a/ydb/services/rate_limiter/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/rate_limiter/ut/CMakeLists.linux-aarch64.txt @@ -30,9 +30,6 @@ target_link_options(ydb-services-rate_limiter-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-rate_limiter-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/rate_limiter/rate_limiter_ut.cpp @@ -62,6 +59,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/rate_limiter/ut/CMakeLists.linux-x86_64.txt b/ydb/services/rate_limiter/ut/CMakeLists.linux-x86_64.txt index 7d1b6ed889a4..bdb2a80d748f 100644 --- a/ydb/services/rate_limiter/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/rate_limiter/ut/CMakeLists.linux-x86_64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-services-rate_limiter-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-rate_limiter-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/rate_limiter/rate_limiter_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/rate_limiter/ut/CMakeLists.windows-x86_64.txt b/ydb/services/rate_limiter/ut/CMakeLists.windows-x86_64.txt index 79316e6be594..8bb4d4fba474 100644 --- a/ydb/services/rate_limiter/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/rate_limiter/ut/CMakeLists.windows-x86_64.txt @@ -52,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/cert_gen.cpp b/ydb/services/ydb/cert_gen.cpp deleted file mode 100644 index 4a70067ccf6b..000000000000 --- a/ydb/services/ydb/cert_gen.cpp +++ /dev/null @@ -1,499 +0,0 @@ -#include "cert_gen.h" - -#include <openssl/bio.h> -#include <openssl/err.h> -#include <openssl/evp.h> -#include <openssl/pem.h> -#include <openssl/rsa.h> -#include <openssl/x509.h> -#include <openssl/x509v3.h> -#include <openssl/x509_vfy.h> - - -#include <array> -#include <cstring> -#include <iostream> -#include <memory> -#include <stdexcept> - - -using namespace NTest; - -namespace { - -constexpr size_t maxCertSize = 17 * 1024; -constexpr size_t errStringBufSize = 1024; - -#define CHECK(expr, msg) \ - if (!expr) { \ - char errString[errStringBufSize]{0}; \ - ERR_error_string_n(ERR_get_error(), errString, errStringBufSize); \ - std::cerr << msg << std::endl; \ - std::cerr << errString << std::endl; \ - exit (1); \ - } - -template <auto fn> -struct deleter_from_fn { - template <typename T> - constexpr void operator()(T* arg) const { - fn(arg); - } -}; - -using PKeyPtr = std::unique_ptr<EVP_PKEY, deleter_from_fn<&::EVP_PKEY_free>>; -using X509Ptr = std::unique_ptr<X509, deleter_from_fn<&::X509_free>>; -using RSAPtr = std::unique_ptr<RSA, deleter_from_fn<&::RSA_free>>; -using BNPtr = std::unique_ptr<BIGNUM, deleter_from_fn<&::BN_free>>; -using BIOPtr = std::unique_ptr<BIO, deleter_from_fn<&::BIO_free>>; -using ExtPrt = std::unique_ptr<X509_EXTENSION, deleter_from_fn<&::X509_EXTENSION_free>>; -using X509REQPtr = std::unique_ptr<X509_REQ, deleter_from_fn<&::X509_REQ_free>>; -using X509StorePtr = std::unique_ptr<X509_STORE, deleter_from_fn<&::X509_STORE_free>>; -using X509StoreCtxPtr = std::unique_ptr<X509_STORE_CTX, deleter_from_fn<&::X509_STORE_CTX_free>>; - -void FillExtFromProps0(X509V3_CTX* ctx, STACK_OF(X509_EXTENSION) *exts, const TProps& props); -void FillExtFromProps1(X509V3_CTX* ctx, STACK_OF(X509_EXTENSION) *exts, const TProps& props); - -void VerifyCert(const X509Ptr& cert, const X509Ptr& cacert) { - auto store = X509StorePtr(X509_STORE_new()); - X509_STORE_add_cert(store.get(), cacert.get()); - - auto ctx = X509StoreCtxPtr(X509_STORE_CTX_new()); - X509_STORE_CTX_init(ctx.get(), store.get(), cert.get(), NULL); - - int result = X509_verify_cert(ctx.get()); - CHECK(result == 1, "VerifyCert failed."); -} - -PKeyPtr GenerateKeys() { - /* EVP_PKEY structure is for storing an algorithm-independent private key in memory. */ - auto pkey = PKeyPtr(EVP_PKEY_new()); - CHECK(pkey, "Unable to create pkey structure."); - - /* Generate a RSA key and assign it to pkey. - * RSA_generate_key is deprecated. - */ - auto bne = BNPtr(BN_new()); - CHECK(bne, "Unable to create bignum structure."); - - BN_set_word(bne.get(), RSA_F4); - - auto rsa = RSAPtr(RSA_new()); - CHECK(rsa, "Unable to create rsa structure."); - - RSA_generate_key_ex(rsa.get(), 2048, bne.get(), nullptr); - - EVP_PKEY_assign_RSA(pkey.get(), rsa.get()); - - rsa.release(); // mem is grabbed by pkkey - - return std::move(pkey); -} - -int FillNameFromProps(X509_NAME* name, const TProps& props) { - if (!name) { - return 1; - } - - if (!props.Coutry.empty()) { - X509_NAME_add_entry_by_txt(name, SN_countryName, MBSTRING_ASC, (const unsigned char*)props.Coutry.c_str(), -1, -1, 0); - } - - if (!props.State.empty()) { - X509_NAME_add_entry_by_txt(name, SN_stateOrProvinceName, MBSTRING_ASC, (const unsigned char*)props.State.c_str(), -1, -1, 0); - } - - if (!props.Location.empty()) { - X509_NAME_add_entry_by_txt(name, SN_localityName, MBSTRING_ASC, (const unsigned char*)props.Location.c_str(), -1, -1, 0); - } - - if (!props.Organization.empty()) { - X509_NAME_add_entry_by_txt(name, SN_organizationName, MBSTRING_ASC, (const unsigned char*)props.Organization.c_str(), -1, -1, 0); - } - - if (!props.Unit.empty()) { - X509_NAME_add_entry_by_txt(name, SN_organizationalUnitName, MBSTRING_ASC, (const unsigned char*)props.Unit.c_str(), -1, -1, 0); - } - - if (!props.CommonName.empty()) { - X509_NAME_add_entry_by_txt(name, SN_commonName, MBSTRING_ASC, (const unsigned char*)props.CommonName.c_str(), -1, -1, 0); - } - - return 0; -} - -/* Generates a self-signed x509 certificate. */ -X509Ptr GenerateSelfSignedCertificate(PKeyPtr& pkey, const TProps& props) { - /* Allocate memory for the X509 structure. */ - auto x509 = X509Ptr(X509_new()); - CHECK(x509, "Unable to create X509 structure."); - - X509_set_version(x509.get(), 3); - - /* Set the serial number. */ - constexpr int Serial = 1; - ASN1_INTEGER_set(X509_get_serialNumber(x509.get()), Serial); - - /* This certificate is valid from now until exactly one year from now. */ - X509_gmtime_adj(X509_get_notBefore(x509.get()), 0); - X509_gmtime_adj(X509_get_notAfter(x509.get()), props.SecondsValid); - - int errNo = 0; - /* Set the public key for our certificate. */ - errNo = X509_set_pubkey(x509.get(), pkey.get()); - CHECK(x509,"Error setting public key for X509 structure."); - - /* We want to copy the subject name to the issuer name. */ - X509_NAME* name = X509_get_subject_name(x509.get()); - CHECK(name,"Error getting subject name from X509 structure."); - - /* Set the country code and common name. */ - errNo = FillNameFromProps(name, props); - CHECK(errNo == 0,"Error setting names."); - - errNo = X509_set_subject_name(x509.get(), name); - CHECK(errNo, "Error setting subject name."); - - errNo = X509_set_issuer_name(x509.get(), name); - CHECK(errNo, "Error setting issier name."); - - { // fill ext properties witch don't requere filled issuer indentity - X509V3_CTX ctx; - X509V3_set_ctx_nodb(&ctx); - X509V3_set_ctx(&ctx, x509.get(), x509.get(), nullptr, nullptr, 0); - - STACK_OF (X509_EXTENSION)* exts = sk_X509_EXTENSION_new_null(); - CHECK(exts, "Unable to create STACK_OF X509_EXTENSION structure."); - - FillExtFromProps0(&ctx, exts, props); - - int count = X509v3_get_ext_count(exts); - for (int i = 0; i < count; ++i) { - auto tmpExt = X509v3_get_ext(exts, i); - errNo = X509_add_ext(x509.get(), tmpExt, -1); - CHECK(errNo, "Error adding ext value"); - tmpExt = nullptr; - } - - sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free); - } - - { // fill ext properties witch requere filled issuer indentity, NID_authority_key_identifier - X509V3_CTX ctx; - X509V3_set_ctx_nodb(&ctx); - X509V3_set_ctx(&ctx, x509.get(), x509.get(), nullptr, nullptr, 0); - - STACK_OF (X509_EXTENSION)* exts = sk_X509_EXTENSION_new_null(); - CHECK(exts, "Unable to create STACK_OF X509_EXTENSION structure."); - - FillExtFromProps1(&ctx, exts, props); - - int count = X509v3_get_ext_count(exts); - for (int i = 0; i < count; ++i) { - auto tmpExt = X509v3_get_ext(exts, i); - errNo = X509_add_ext(x509.get(), tmpExt, -1); - CHECK(errNo, "Error adding ext value"); - tmpExt = nullptr; - } - - sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free); - } - - - /* Actually sign the certificate with our key. */ - errNo = X509_sign(x509.get(), pkey.get(), EVP_sha1()); - CHECK(errNo, "Error signing certificate."); - - return std::move(x509); -} - -std::string WriteAsPEM(PKeyPtr& pkey) { - std::array<char, maxCertSize> buf{0}; - - auto bio = BIOPtr(BIO_new(BIO_s_mem())); - CHECK(bio, "Unable to create BIO structure."); - - PEM_write_bio_RSAPrivateKey(bio.get(), EVP_PKEY_get0_RSA(pkey.get()), nullptr, nullptr, 0, nullptr, nullptr); - - BIO_read(bio.get(), buf.data(), maxCertSize - 1); - - return std::string(buf.data()); -} - -std::string WriteAsPEM(X509Ptr& cert) { - std::array<char, maxCertSize> buf{0}; - - auto bio = BIOPtr(BIO_new(BIO_s_mem())); - CHECK(bio, "Unable to create BIO structure."); - - PEM_write_bio_X509(bio.get(), cert.get()); - - BIO_read(bio.get(), buf.data(), maxCertSize - 1); - - return std::string(buf.data()); -} - -X509Ptr ReadCertAsPEM(const std::string& cert) { - auto bio = BIOPtr(BIO_new_mem_buf(cert.data(), cert.size())); - CHECK(bio,"Unable to create BIO structure."); - - auto x509 = X509Ptr(PEM_read_bio_X509(bio.get(), NULL, NULL, NULL)); - CHECK(x509, "failed to load certificate"); - - return std::move(x509); -} - -PKeyPtr ReadPrivateKeyAsPEM(const std::string& key) { - auto bio = BIOPtr(BIO_new_mem_buf(key.data(), key.size())); - CHECK(bio,"Unable to create BIO structure."); - - auto pkey = PKeyPtr(PEM_read_bio_PrivateKey(bio.get(), NULL, NULL, NULL)); - CHECK(pkey, "failed to private key certificate"); - - return std::move(pkey); -} - -void add_ext(X509V3_CTX* ctx, STACK_OF(X509_EXTENSION)* exts, int nid, const char *value) { - X509_EXTENSION *ex; - ex = X509V3_EXT_conf_nid(NULL, ctx, nid, value); - CHECK(ex, "failed to add ext value " << value); - sk_X509_EXTENSION_push(exts, ex); -} - -void FillExtFromProps0(X509V3_CTX* ctx, STACK_OF(X509_EXTENSION) *exts, const TProps& props) { - CHECK(ctx, "no context is provided"); - - if (!props.AltNames.empty()) { - bool first = true; - std::string concat; - for (const auto& an: props.AltNames) { - if (an.empty()) { - continue; - } - if (!first) { - concat += ","; - } else { - first = false; - } - - concat += an; - } - add_ext(ctx, exts, NID_subject_alt_name, concat.c_str()); - } - - if (!props.BasicConstraints.empty()) { - add_ext(ctx, exts, NID_basic_constraints, props.BasicConstraints.c_str()); - } - - if (!props.KeyUsage.empty()) { - add_ext(ctx, exts, NID_key_usage, props.KeyUsage.c_str()); - } - - if (!props.ExtKeyUsage.empty()) { - add_ext(ctx, exts, NID_ext_key_usage, props.ExtKeyUsage.c_str()); - } - - if (!props.SubjectKeyIdentifier.empty()) { - add_ext(ctx, exts, NID_subject_key_identifier, props.SubjectKeyIdentifier.c_str()); - } - - if (!props.NsComment.empty()) { - add_ext(ctx, exts, NID_netscape_comment, props.NsComment.c_str()); - } -} - -void FillExtFromProps1(X509V3_CTX* ctx, STACK_OF(X509_EXTENSION) *exts, const TProps& props) { - CHECK(ctx, "no context is provided"); - - if (!props.AuthorityKeyIdentifier.empty()) { - add_ext(ctx, exts, NID_authority_key_identifier, props.AuthorityKeyIdentifier.c_str()); - } -} - -X509REQPtr GenerateRequest(PKeyPtr& pkey, const TProps& props) { - auto request = X509REQPtr(X509_REQ_new()); - CHECK(request, "Error creating new X509_REQ structure."); - - int errNo = 0; - - errNo = X509_REQ_set_pubkey(request.get(), pkey.get()); - CHECK(errNo, "Error setting public key for X509_REQ structure."); - - X509_NAME* name = X509_REQ_get_subject_name(request.get()); - CHECK(name, "Error setting public key for X509_REQ structure."); - - errNo = FillNameFromProps(name, props); - CHECK(errNo == 0,"Error setting names."); - - { - X509V3_CTX ctx; - X509V3_set_ctx_nodb(&ctx); - X509V3_set_ctx(&ctx, nullptr, nullptr, request.get(), nullptr, 0); - - STACK_OF (X509_EXTENSION)* exts = sk_X509_EXTENSION_new_null(); - FillExtFromProps0(&ctx, exts, props); - X509_REQ_add_extensions(request.get(), exts); - sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free); - } - - errNo = X509_REQ_sign(request.get(), pkey.get(), EVP_md5()); - CHECK(errNo, "Error MD5 signing X509_REQ structure."); - - return std::move(request); -} - -X509Ptr SingRequest(X509REQPtr& request, X509Ptr& rootCert, PKeyPtr& rootKey, const TProps& props) { - auto* pktmp = X509_REQ_get0_pubkey(request.get()); // X509_REQ_get0_pubkey returns the key, that shouldn't freed - CHECK(pktmp, "Error unpacking public key from request."); - - int errNo = 0; - errNo = X509_REQ_verify(request.get(), pktmp); - CHECK(errNo > 0, "Error verification request signature."); - - auto x509 = X509Ptr(X509_new()); - CHECK(x509, "Unable to create X509 structure."); - - X509_set_version(x509.get(), 3); - - /* Set the serial number. */ - constexpr int Serial = 2; - ASN1_INTEGER_set(X509_get_serialNumber(x509.get()), Serial); - - /* This certificate is valid from now until exactly one year from now. */ - X509_gmtime_adj(X509_get_notBefore(x509.get()), 0); - X509_gmtime_adj(X509_get_notAfter(x509.get()), props.SecondsValid); - - X509_set_pubkey(x509.get(), pktmp); - - X509_set_subject_name(x509.get(), X509_REQ_get_subject_name(request.get())); - X509_set_issuer_name(x509.get(), X509_get_subject_name(rootCert.get())); - - { - - X509V3_CTX ctx; - X509V3_set_ctx_nodb(&ctx); - X509V3_set_ctx(&ctx, rootCert.get(), x509.get(), request.get(), nullptr, 0); - - // fill ext properties witch don't requere filled issuer indentity, actually copy them from request - STACK_OF(X509_EXTENSION)* exts = X509_REQ_get_extensions(request.get()); - CHECK(exts, "Unable to get STACK_OF X509_EXTENSION structure from request."); - - // fill ext properties witch requere filled issuer indentity, NID_authority_key_identifier - FillExtFromProps1(&ctx, exts, props); - - int count = X509v3_get_ext_count(exts); - for (int i = 0; i < count; ++i) { - auto tmpExt = X509v3_get_ext(exts, i); - errNo = X509_add_ext(x509.get(), tmpExt, -1); - CHECK(errNo, "Error adding ext value"); - tmpExt = nullptr; - } - - sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free); - } - - /* Actually sign the certificate with our key. */ - errNo = X509_sign(x509.get(), rootKey.get(), EVP_sha1()); - CHECK(errNo, "Error signing certificate."); - - pktmp = nullptr; - - return std::move(x509); -} - -} - -namespace NTest { - -TCertAndKey GenerateCA(const TProps& props) { - auto keys = GenerateKeys(); - auto cert = GenerateSelfSignedCertificate(keys, props); - - TCertAndKey result; - result.Certificate = WriteAsPEM(cert); - result.PrivateKey = WriteAsPEM(keys); - - return result; -} - -TCertAndKey GenerateSignedCert(const TCertAndKey& rootCA, const TProps& props) { - auto keys = GenerateKeys(); - auto request = GenerateRequest(keys, props); - - auto rootCert = ReadCertAsPEM(rootCA.Certificate); - auto rootKey = ReadPrivateKeyAsPEM(rootCA.PrivateKey); - auto cert = SingRequest(request, rootCert, rootKey, props); // NID_authority_key_identifier must see ca - - TCertAndKey result; - result.Certificate = WriteAsPEM(cert); - result.PrivateKey = WriteAsPEM(keys); - - return result; -} - -void VerifyCert(const std::string& cert, const std::string& caCert) { - auto rootCert = ReadCertAsPEM(caCert); - auto otherCert = ReadCertAsPEM(cert); - - VerifyCert(otherCert, rootCert); -} - -TProps TProps::AsCA() { - TProps props; - - props.SecondsValid = 3*365 * 24 * 60 *60; // 3 years - props.Coutry = "RU"; - props.State = "MSK"; - props.Location = "MSK"; - props.Organization = "YA"; - props.Unit = "UtTest"; - props.CommonName = "testCA"; - - props.AltNames = {"IP:127.0.0.1", "DNS:localhost"}; - - props.BasicConstraints = "critical,CA:TRUE"; - props.AuthorityKeyIdentifier = "keyid:always,issuer"; - props.SubjectKeyIdentifier = "hash"; - props.KeyUsage = "critical,keyCertSign,cRLSign"; - props.ExtKeyUsage = ""; - props.NsComment = "Test Generated Certificate for self-signed CA"; - - return props; -} - -TProps TProps::AsServer() { - TProps props = AsCA(); - - props.CommonName = "localhost"; - props.AltNames.push_back("DNS:*.yandex.ru"); - - props.BasicConstraints = "CA:FALSE"; - props.AuthorityKeyIdentifier = "keyid,issuer"; - props.KeyUsage = "digitalSignature,nonRepudiation,keyEncipherment"; - props.ExtKeyUsage = "serverAuth"; - props.NsComment = "Test Generated Certificate for test Server"; - - return props; -} - -TProps TProps::AsClient() { - TProps props = AsServer(); - - props.ExtKeyUsage = "clientAuth"; - props.NsComment = "Test Generated Certificate for test Client"; - - return props; -} - -TProps TProps::AsClientServer() { - TProps props = AsClient(); - - props.ExtKeyUsage = "serverAuth,clientAuth"; - props.NsComment = "Test Generated Certificate for test Client/Server"; - - return props; -} - -TProps& TProps::WithValid(TDuration duration) { SecondsValid = duration.Seconds(); return *this; } - -} diff --git a/ydb/services/ydb/cert_gen.h b/ydb/services/ydb/cert_gen.h deleted file mode 100644 index 3de82e2e0e4f..000000000000 --- a/ydb/services/ydb/cert_gen.h +++ /dev/null @@ -1,45 +0,0 @@ -#pragma once - -#include <util/datetime/base.h> - -#include <string> -#include <vector> - -namespace NTest { - - struct TCertAndKey { - std::string Certificate; - std::string PrivateKey; - }; - - struct TProps { - long SecondsValid = 0; - std::string Coutry; // C - std::string State; // ST - std::string Location; // L - std::string Organization; // O - std::string Unit; // OU - std::string CommonName; // CN - - std::vector<std::string> AltNames; // X509v3 Subject Alternative Name - - std::string BasicConstraints; // X509v3 Basic Constraints - std::string AuthorityKeyIdentifier; // X509v3 Authority Key Identifier - std::string SubjectKeyIdentifier; // X509v3 Subject Key Identifier - std::string KeyUsage; // X509v3 Key Usage - std::string ExtKeyUsage; // X509v3 Extended Key Usage - std::string NsComment; // Netscape Comment - - static TProps AsCA(); - static TProps AsServer(); - static TProps AsClient(); - static TProps AsClientServer(); - - TProps& WithValid(TDuration duration); - }; - - TCertAndKey GenerateCA(const TProps& props); - TCertAndKey GenerateSignedCert(const TCertAndKey& ca, const TProps& props); - void VerifyCert(const std::string& cert, const std::string& caCert); -}; - diff --git a/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.darwin-arm64.txt b/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.darwin-arm64.txt index af988ad518c6..04ec384ffb5f 100644 --- a/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.darwin-arm64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-services-ydb-sdk_credprovider_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-ydb-sdk_credprovider_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/sdk_credprovider_ut/dummy_provider_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.darwin-x86_64.txt b/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.darwin-x86_64.txt index 4bfcbee03f50..35eda7c817ba 100644 --- a/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.darwin-x86_64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-services-ydb-sdk_credprovider_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-ydb-sdk_credprovider_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/sdk_credprovider_ut/dummy_provider_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.linux-aarch64.txt b/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.linux-aarch64.txt index 5238ae2f4871..c7fae7184197 100644 --- a/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.linux-aarch64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-services-ydb-sdk_credprovider_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-ydb-sdk_credprovider_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/sdk_credprovider_ut/dummy_provider_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.linux-x86_64.txt b/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.linux-x86_64.txt index e7545a63d0c7..d11c29dea56c 100644 --- a/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-services-ydb-sdk_credprovider_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-ydb-sdk_credprovider_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/sdk_credprovider_ut/dummy_provider_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.windows-x86_64.txt b/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.windows-x86_64.txt index 021af2c3405b..1f1dfdc76781 100644 --- a/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/ydb/sdk_credprovider_ut/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.darwin-arm64.txt b/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.darwin-arm64.txt index 677c5707fe26..e8e3e9b5c626 100644 --- a/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.darwin-arm64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-services-ydb-sdk_sessions_pool_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-ydb-sdk_sessions_pool_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/sdk_sessions_pool_ut/sdk_sessions_pool_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.darwin-x86_64.txt b/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.darwin-x86_64.txt index c21a5760fe5f..a5a872d3f554 100644 --- a/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.darwin-x86_64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-services-ydb-sdk_sessions_pool_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-ydb-sdk_sessions_pool_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/sdk_sessions_pool_ut/sdk_sessions_pool_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.linux-aarch64.txt b/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.linux-aarch64.txt index 8c018dfdc04e..0c5712e73632 100644 --- a/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.linux-aarch64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-services-ydb-sdk_sessions_pool_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-ydb-sdk_sessions_pool_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/sdk_sessions_pool_ut/sdk_sessions_pool_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.linux-x86_64.txt b/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.linux-x86_64.txt index 326761139bb9..fac5c5e90d7a 100644 --- a/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-services-ydb-sdk_sessions_pool_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-ydb-sdk_sessions_pool_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/sdk_sessions_pool_ut/sdk_sessions_pool_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.windows-x86_64.txt b/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.windows-x86_64.txt index 90af9c563bb0..588ee64a36d9 100644 --- a/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/ydb/sdk_sessions_pool_ut/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/sdk_sessions_ut/CMakeLists.darwin-arm64.txt b/ydb/services/ydb/sdk_sessions_ut/CMakeLists.darwin-arm64.txt index 6367e11d9496..a840a1ba0fa6 100644 --- a/ydb/services/ydb/sdk_sessions_ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/ydb/sdk_sessions_ut/CMakeLists.darwin-arm64.txt @@ -28,8 +28,6 @@ target_link_options(ydb-services-ydb-sdk_sessions_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-ydb-sdk_sessions_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/sdk_sessions_ut/sdk_sessions_ut.cpp @@ -59,6 +57,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/sdk_sessions_ut/CMakeLists.darwin-x86_64.txt b/ydb/services/ydb/sdk_sessions_ut/CMakeLists.darwin-x86_64.txt index 4c3d43dc90d7..40e03cce3f91 100644 --- a/ydb/services/ydb/sdk_sessions_ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/ydb/sdk_sessions_ut/CMakeLists.darwin-x86_64.txt @@ -29,8 +29,6 @@ target_link_options(ydb-services-ydb-sdk_sessions_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-ydb-sdk_sessions_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/sdk_sessions_ut/sdk_sessions_ut.cpp @@ -60,6 +58,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/sdk_sessions_ut/CMakeLists.linux-aarch64.txt b/ydb/services/ydb/sdk_sessions_ut/CMakeLists.linux-aarch64.txt index 1d55248e4472..f52cc03266c6 100644 --- a/ydb/services/ydb/sdk_sessions_ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/ydb/sdk_sessions_ut/CMakeLists.linux-aarch64.txt @@ -31,9 +31,6 @@ target_link_options(ydb-services-ydb-sdk_sessions_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-ydb-sdk_sessions_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/sdk_sessions_ut/sdk_sessions_ut.cpp @@ -63,6 +60,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/sdk_sessions_ut/CMakeLists.linux-x86_64.txt b/ydb/services/ydb/sdk_sessions_ut/CMakeLists.linux-x86_64.txt index 2cd247ba4345..a448c4f7fb36 100644 --- a/ydb/services/ydb/sdk_sessions_ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/ydb/sdk_sessions_ut/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(ydb-services-ydb-sdk_sessions_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-ydb-sdk_sessions_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/sdk_sessions_ut/sdk_sessions_ut.cpp @@ -64,6 +61,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/sdk_sessions_ut/CMakeLists.windows-x86_64.txt b/ydb/services/ydb/sdk_sessions_ut/CMakeLists.windows-x86_64.txt index a36c6e100b89..638891ff2ce2 100644 --- a/ydb/services/ydb/sdk_sessions_ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/ydb/sdk_sessions_ut/CMakeLists.windows-x86_64.txt @@ -53,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/table_split_ut/CMakeLists.darwin-arm64.txt b/ydb/services/ydb/table_split_ut/CMakeLists.darwin-arm64.txt index e25821cf8c84..e033142627cc 100644 --- a/ydb/services/ydb/table_split_ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/ydb/table_split_ut/CMakeLists.darwin-arm64.txt @@ -45,8 +45,6 @@ target_link_options(ydb-services-ydb-table_split_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-ydb-table_split_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_table_split_ut.cpp @@ -76,6 +74,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/table_split_ut/CMakeLists.darwin-x86_64.txt b/ydb/services/ydb/table_split_ut/CMakeLists.darwin-x86_64.txt index 23711239fc69..21774f56807f 100644 --- a/ydb/services/ydb/table_split_ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/ydb/table_split_ut/CMakeLists.darwin-x86_64.txt @@ -46,8 +46,6 @@ target_link_options(ydb-services-ydb-table_split_ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-ydb-table_split_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_table_split_ut.cpp @@ -77,6 +75,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/table_split_ut/CMakeLists.linux-aarch64.txt b/ydb/services/ydb/table_split_ut/CMakeLists.linux-aarch64.txt index 927b4e7fa544..af6f8f6b5cc5 100644 --- a/ydb/services/ydb/table_split_ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/ydb/table_split_ut/CMakeLists.linux-aarch64.txt @@ -48,9 +48,6 @@ target_link_options(ydb-services-ydb-table_split_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-ydb-table_split_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_table_split_ut.cpp @@ -80,6 +77,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/table_split_ut/CMakeLists.linux-x86_64.txt b/ydb/services/ydb/table_split_ut/CMakeLists.linux-x86_64.txt index 0d8ac5e1e3de..9899c49c8763 100644 --- a/ydb/services/ydb/table_split_ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/ydb/table_split_ut/CMakeLists.linux-x86_64.txt @@ -49,9 +49,6 @@ target_link_options(ydb-services-ydb-table_split_ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-ydb-table_split_ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_table_split_ut.cpp @@ -81,6 +78,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/table_split_ut/CMakeLists.windows-x86_64.txt b/ydb/services/ydb/table_split_ut/CMakeLists.windows-x86_64.txt index 6e2957020d16..c4084f0e8cde 100644 --- a/ydb/services/ydb/table_split_ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/ydb/table_split_ut/CMakeLists.windows-x86_64.txt @@ -70,6 +70,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/ut/CMakeLists.darwin-arm64.txt b/ydb/services/ydb/ut/CMakeLists.darwin-arm64.txt index ec2af8ae754d..996a277ff295 100644 --- a/ydb/services/ydb/ut/CMakeLists.darwin-arm64.txt +++ b/ydb/services/ydb/ut/CMakeLists.darwin-arm64.txt @@ -48,8 +48,6 @@ target_link_options(ydb-services-ydb-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-ydb-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_bulk_upsert_ut.cpp @@ -94,6 +92,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/ut/CMakeLists.darwin-x86_64.txt b/ydb/services/ydb/ut/CMakeLists.darwin-x86_64.txt index 236ce002b2ac..ee0f7056de80 100644 --- a/ydb/services/ydb/ut/CMakeLists.darwin-x86_64.txt +++ b/ydb/services/ydb/ut/CMakeLists.darwin-x86_64.txt @@ -49,8 +49,6 @@ target_link_options(ydb-services-ydb-ut PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(ydb-services-ydb-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_bulk_upsert_ut.cpp @@ -95,6 +93,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/ut/CMakeLists.linux-aarch64.txt b/ydb/services/ydb/ut/CMakeLists.linux-aarch64.txt index 22602791c90c..e8e1cffc5681 100644 --- a/ydb/services/ydb/ut/CMakeLists.linux-aarch64.txt +++ b/ydb/services/ydb/ut/CMakeLists.linux-aarch64.txt @@ -51,9 +51,6 @@ target_link_options(ydb-services-ydb-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-ydb-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_bulk_upsert_ut.cpp @@ -98,6 +95,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/ut/CMakeLists.linux-x86_64.txt b/ydb/services/ydb/ut/CMakeLists.linux-x86_64.txt index 500d6550c29a..2b0e06238dd2 100644 --- a/ydb/services/ydb/ut/CMakeLists.linux-x86_64.txt +++ b/ydb/services/ydb/ut/CMakeLists.linux-x86_64.txt @@ -52,9 +52,6 @@ target_link_options(ydb-services-ydb-ut PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(ydb-services-ydb-ut PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_bulk_upsert_ut.cpp @@ -99,6 +96,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/ut/CMakeLists.windows-x86_64.txt b/ydb/services/ydb/ut/CMakeLists.windows-x86_64.txt index 99cd79461a8f..4040949678c6 100644 --- a/ydb/services/ydb/ut/CMakeLists.windows-x86_64.txt +++ b/ydb/services/ydb/ut/CMakeLists.windows-x86_64.txt @@ -88,6 +88,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/services/ydb/ut/ya.make b/ydb/services/ydb/ut/ya.make index 669e766eed71..2abf09595b84 100644 --- a/ydb/services/ydb/ut/ya.make +++ b/ydb/services/ydb/ut/ya.make @@ -18,14 +18,13 @@ SRCS( ydb_index_table_ut.cpp ydb_import_ut.cpp ydb_ut.cpp - ydb_client_certs_ut.cpp + ydb_register_node_ut.cpp ydb_scripting_ut.cpp ydb_table_ut.cpp ydb_stats_ut.cpp ydb_logstore_ut.cpp ydb_olapstore_ut.cpp ydb_monitoring_ut.cpp - cert_gen.cpp ydb_query_ut.cpp ydb_ldap_login_ut.cpp ) @@ -40,6 +39,7 @@ PEERDIR( ydb/core/testlib/default ydb/core/grpc_services/base ydb/core/testlib + ydb/core/security ydb/library/yql/minikql/dom ydb/library/yql/minikql/jsonpath ydb/library/testlib/service_mocks/ldap_mock diff --git a/ydb/services/ydb/ya.make b/ydb/services/ydb/ya.make index 26c9ef2a1db9..fb155bdd5801 100644 --- a/ydb/services/ydb/ya.make +++ b/ydb/services/ydb/ya.make @@ -21,7 +21,7 @@ PEERDIR( ydb/core/formats ydb/core/grpc_services ydb/core/grpc_services/base - ydb/core/grpc_services/auth_processor + ydb/core/security ydb/core/grpc_streaming ydb/core/protos ydb/core/scheme diff --git a/ydb/services/ydb/ydb_client_certs_ut.cpp b/ydb/services/ydb/ydb_client_certs_ut.cpp deleted file mode 100644 index 9b87bd07e0d7..000000000000 --- a/ydb/services/ydb/ydb_client_certs_ut.cpp +++ /dev/null @@ -1,663 +0,0 @@ -#include <library/cpp/testing/unittest/tests_data.h> -#include <library/cpp/testing/unittest/registar.h> - -#include <grpc++/client_context.h> -#include <grpc++/create_channel.h> - -#include <ydb/core/base/storage_pools.h> -#include <ydb/core/base/location.h> -#include <ydb/core/protos/flat_scheme_op.pb.h> -#include <ydb/core/scheme/scheme_tablecell.h> -#include <ydb/core/testlib/test_client.h> -#include <ydb/core/driver_lib/cli_config_base/config_base.h> -#include <ydb/core/grpc_services/auth_processor/dynamic_node_auth_processor.h> - -#include <ydb/public/api/grpc/ydb_scheme_v1.grpc.pb.h> -#include <ydb/public/api/grpc/ydb_operation_v1.grpc.pb.h> -#include <ydb/public/api/grpc/ydb_table_v1.grpc.pb.h> -#include <ydb/public/api/grpc/draft/dummy.grpc.pb.h> -#include <ydb/public/api/protos/ydb_table.pb.h> - -#include <ydb/library/grpc/client/grpc_client_low.h> - -#include <google/protobuf/any.h> - -#include <ydb/library/yql/core/issue/yql_issue.h> -#include <ydb/library/yql/public/issue/yql_issue.h> -#include <ydb/library/yql/public/issue/yql_issue_message.h> - -#include <ydb/public/sdk/cpp/client/ydb_params/params.h> -#include <ydb/public/sdk/cpp/client/ydb_result/result.h> -#include <ydb/public/sdk/cpp/client/ydb_scheme/scheme.h> -#include <ydb/public/sdk/cpp/client/ydb_table/table.h> -#include <ydb/public/sdk/cpp/client/ydb_discovery/discovery.h> -#include <ydb/public/sdk/cpp/client/resources/ydb_resources.h> - -#include <ydb/public/lib/deprecated/kicli/kicli.h> - -#include "ydb_common_ut.h" -#include "cert_gen.h" - -#include <util/generic/ymath.h> - -namespace NKikimr { - -using namespace Tests; -using namespace NYdb; -using namespace NYdb::NTable; -using namespace NYdb::NScheme; - -struct TKikimrTestWithServerCert : TKikimrTestWithAuthAndSsl { - static constexpr bool SSL = true; - - static const NTest::TCertAndKey& GetCACertAndKey() { - static const NTest::TCertAndKey ca = NTest::GenerateCA(NTest::TProps::AsCA()); - return ca; - } - - static const NTest::TCertAndKey& GetServertCert() { - static const NTest::TCertAndKey server = NTest::GenerateSignedCert(GetCACertAndKey(), NTest::TProps::AsServer()); - return server; - } - - static TString GetCaCrt() { - return GetCACertAndKey().Certificate.c_str(); - } - - static TString GetServerCrt() { - return GetServertCert().Certificate.c_str(); - } - - static TString GetServerKey() { - return GetServertCert().PrivateKey.c_str(); - } -}; - -NKikimrConfig::TClientCertificateAuthorization::TSubjectTerm MakeSubjectTerm(TString name, const TVector<TString>& values, const TVector<TString>& suffixes = {}) { - NKikimrConfig::TClientCertificateAuthorization::TSubjectTerm term; - term.SetShortName(name); - for (const auto& val: values) { - *term.MutableValues()->Add() = val; - } - for (const auto& suf: suffixes) { - *term.MutableSuffixes()->Add() = suf; - } - return term; -} - -using TKikimrServerWithOutCertVerification = TBasicKikimrWithGrpcAndRootSchema<TKikimrTestWithServerCert>; - -struct TKikimrServerWithCertVerification: public TBasicKikimrWithGrpcAndRootSchema<TKikimrTestWithServerCert> { - using TBase = TBasicKikimrWithGrpcAndRootSchema<TKikimrTestWithServerCert>; - - TKikimrServerWithCertVerification() - : TBase(GetAppConfig()) - {} - - static NKikimrConfig::TAppConfig GetAppConfig() { - auto config = NKikimrConfig::TAppConfig(); - - config.MutableFeatureFlags()->SetEnableDynamicNodeAuthorization(true); - - auto& dynNodeDefinition = *config.MutableClientCertificateAuthorization()->MutableDynamicNodeAuthorization(); - *dynNodeDefinition.AddSubjectTerms() = MakeSubjectTerm("C", {"RU"}); - *dynNodeDefinition.AddSubjectTerms() = MakeSubjectTerm("ST", {"MSK"}); - *dynNodeDefinition.AddSubjectTerms() = MakeSubjectTerm("L", {"MSK"}); - *dynNodeDefinition.AddSubjectTerms() = MakeSubjectTerm("O", {"YA"}); - *dynNodeDefinition.AddSubjectTerms() = MakeSubjectTerm("OU", {"UtTest"}); - *dynNodeDefinition.AddSubjectTerms() = MakeSubjectTerm("CN", {"localhost"}, {".yandex.ru"}); - - return config; - } -}; - -struct TKikimrServerWithCertVerificationAndWrongIndentity : public TBasicKikimrWithGrpcAndRootSchema<TKikimrTestWithServerCert> { - using TBase = TBasicKikimrWithGrpcAndRootSchema<TKikimrTestWithServerCert>; - - TKikimrServerWithCertVerificationAndWrongIndentity() - : TBase(GetAppConfig()) - {} - - static NKikimrConfig::TAppConfig GetAppConfig() { - auto config = NKikimrConfig::TAppConfig(); - - config.MutableFeatureFlags()->SetEnableDynamicNodeAuthorization(true); - - auto& dynNodeDefinition = *config.MutableClientCertificateAuthorization()->MutableDynamicNodeAuthorization(); - *dynNodeDefinition.AddSubjectTerms() = MakeSubjectTerm("C", {"WRONG"}); - *dynNodeDefinition.AddSubjectTerms() = MakeSubjectTerm("ST", {"MSK"}); - *dynNodeDefinition.AddSubjectTerms() = MakeSubjectTerm("L", {"MSK"}); - *dynNodeDefinition.AddSubjectTerms() = MakeSubjectTerm("O", {"YA"}); - *dynNodeDefinition.AddSubjectTerms() = MakeSubjectTerm("OU", {"UtTest"}); - - return config; - } -}; - -Y_UNIT_TEST_SUITE(TGRpcClientCerts) { - -Y_UNIT_TEST(TestGenerateAndVerify) { - using namespace NTest; - TCertAndKey ca = GenerateCA(TProps::AsCA()); - - TCertAndKey server = GenerateSignedCert(ca, TProps::AsServer()); - VerifyCert(server.Certificate, ca.Certificate); - - TCertAndKey client = GenerateSignedCert(ca, TProps::AsClient()); - VerifyCert(client.Certificate, ca.Certificate); - - TCertAndKey clientServer = GenerateSignedCert(ca, TProps::AsClientServer()); - VerifyCert(clientServer.Certificate, ca.Certificate); -} - -Y_UNIT_TEST(TestClientCertAuthorizationParamsMatch) { - { - TDynamicNodeAuthorizationParams authParams; - TDynamicNodeAuthorizationParams::TDistinguishedName dn; - dn.AddRelativeDistinguishedName(TDynamicNodeAuthorizationParams::TRelativeDistinguishedName("C").AddValue("RU")) - .AddRelativeDistinguishedName(TDynamicNodeAuthorizationParams::TRelativeDistinguishedName("ST").AddValue("MSK")) - .AddRelativeDistinguishedName(TDynamicNodeAuthorizationParams::TRelativeDistinguishedName("L").AddValue("MSK")) - .AddRelativeDistinguishedName(TDynamicNodeAuthorizationParams::TRelativeDistinguishedName("O").AddValue("YA")) - .AddRelativeDistinguishedName(TDynamicNodeAuthorizationParams::TRelativeDistinguishedName("OU").AddValue("UtTest")) - .AddRelativeDistinguishedName(TDynamicNodeAuthorizationParams::TRelativeDistinguishedName("CN").AddValue("localhost").AddSuffix(".yandex.ru")); - authParams.AddCertSubjectDescription(dn); - - { - TMap<TString, TString> subjectTerms; - subjectTerms["C"] = "RU"; - subjectTerms["ST"] = "MSK"; - subjectTerms["L"] = "MSK"; - subjectTerms["O"] = "YA"; - subjectTerms["OU"] = "UtTest"; - subjectTerms["CN"] = "localhost"; - - UNIT_ASSERT(authParams.IsSubjectDescriptionMatched(subjectTerms)); - } - - { - TMap<TString, TString> subjectTerms; - subjectTerms["C"] = "RU"; - subjectTerms["ST"] = "MSK"; - subjectTerms["L"] = "MSK"; - subjectTerms["O"] = "YA"; - subjectTerms["OU"] = "UtTest"; - subjectTerms["CN"] = "test.yandex.ru"; - - UNIT_ASSERT(authParams.IsSubjectDescriptionMatched(subjectTerms)); - } - - { - TMap<TString, TString> subjectTerms; - subjectTerms["C"] = "RU"; - subjectTerms["ST"] = "MSK"; - subjectTerms["L"] = "MSK"; - subjectTerms["O"] = "YA"; - subjectTerms["OU"] = "UtTest"; - subjectTerms["CN"] = "test.yandex.ru"; - subjectTerms["ELSE"] = "WhatEver"; - - UNIT_ASSERT(authParams.IsSubjectDescriptionMatched(subjectTerms)); - } - - { - TMap<TString, TString> subjectTerms; - subjectTerms["C"] = "WRONG"; - subjectTerms["ST"] = "MSK"; - subjectTerms["L"] = "MSK"; - subjectTerms["O"] = "YA"; - subjectTerms["OU"] = "UtTest"; - subjectTerms["CN"] = "test.yandex.ru"; - - UNIT_ASSERT(!authParams.IsSubjectDescriptionMatched(subjectTerms)); - } - - { - TMap<TString, TString> subjectTerms; - subjectTerms["C"] = "RU"; - subjectTerms["ST"] = "MSK"; - subjectTerms["L"] = "MSK"; - subjectTerms["O"] = "YA"; - subjectTerms["OU"] = "UtTest"; - subjectTerms["CN"] = "test.not-yandex.ru"; - - UNIT_ASSERT(!authParams.IsSubjectDescriptionMatched(subjectTerms)); - } - - { - TMap<TString, TString> subjectTerms; - //subjectTerms["C"] = "RU"; - subjectTerms["ST"] = "MSK"; - subjectTerms["L"] = "MSK"; - subjectTerms["O"] = "YA"; - subjectTerms["OU"] = "UtTest"; - subjectTerms["CN"] = "test.yandex.ru"; - - UNIT_ASSERT(!authParams.IsSubjectDescriptionMatched(subjectTerms)); - } - } -} - -NDiscovery::TNodeRegistrationSettings GetNodeRegistrationSettings() { - NDiscovery::TNodeRegistrationSettings settings; - settings.Host("localhost"); - settings.Port(GetRandomPort()); - settings.ResolveHost("localhost"); - settings.Address("localhost"); - settings.DomainPath("Root"); - settings.FixedNodeId(false); - - NYdb::NDiscovery::TNodeLocation loc; - loc.DataCenterNum = DataCenterFromString("DataCenter"); - loc.RoomNum = 0; - loc.RackNum = RackFromString("Rack"); - loc.BodyNum = 2; - loc.DataCenter = "DataCenter"; - loc.Rack = "Rack"; - loc.Unit = "Body"; - - settings.Location(loc); - return settings; -} - -Y_UNIT_TEST(TestRegisterNodeViaDiscovery_ServerWithCertVerification_ClientWithCorrectCerts) { - TKikimrServerWithCertVerification server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - NTest::TCertAndKey clientServerCert = NTest::GenerateSignedCert(caCert, NTest::TProps::AsClientServer()); - - auto connection = NYdb::TDriver( - TDriverConfig() - .UseSecureConnection(caCert.Certificate.c_str()) - .UseClientCertificate(clientServerCert.Certificate.c_str(),clientServerCert.PrivateKey.c_str()) - .SetEndpoint(location)); - - NYdb::NDiscovery::TDiscoveryClient discoveryClient = NYdb::NDiscovery::TDiscoveryClient(connection); - const auto result = discoveryClient.NodeRegistration(GetNodeRegistrationSettings()).GetValueSync(); - connection.Stop(true); - - UNIT_ASSERT_C(!result.IsTransportError(), result.GetIssues().ToOneLineString()); - UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToOneLineString()); -} - -Y_UNIT_TEST(TestRegisterNodeViaDiscovery_ServerWithCertVerification_ClientProvidesEmptyClientCerts) { - TKikimrServerWithCertVerification server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - NTest::TCertAndKey noCert; - - auto connection = NYdb::TDriver( - TDriverConfig() - .UseSecureConnection(caCert.Certificate.c_str()) - .UseClientCertificate(noCert.Certificate.c_str(),noCert.PrivateKey.c_str()) - .SetEndpoint(location)); - - NYdb::NDiscovery::TDiscoveryClient discoveryClient = NYdb::NDiscovery::TDiscoveryClient(connection); - const auto result = discoveryClient.NodeRegistration(GetNodeRegistrationSettings()).GetValueSync(); - connection.Stop(true); - - UNIT_ASSERT_C(!result.IsSuccess(), result.GetIssues().ToOneLineString()); - UNIT_ASSERT_STRINGS_EQUAL(result.GetIssues().ToOneLineString(), "{ <main>: Error: Cannot authorize node. Node has not provided certificate }"); -} - -Y_UNIT_TEST(TestRegisterNodeViaDiscovery_ServerWithoutCertVerification_ClientProvidesCorrectCerts) { - TKikimrServerWithOutCertVerification server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - NTest::TCertAndKey clientServerCert = NTest::GenerateSignedCert(caCert, NTest::TProps::AsClientServer()); - - auto connection = NYdb::TDriver( - TDriverConfig() - .UseSecureConnection(caCert.Certificate.c_str()) - .UseClientCertificate(clientServerCert.Certificate.c_str(),clientServerCert.PrivateKey.c_str()) - .SetEndpoint(location)); - - NYdb::NDiscovery::TDiscoveryClient discoveryClient = NYdb::NDiscovery::TDiscoveryClient(connection); - const auto result = discoveryClient.NodeRegistration(GetNodeRegistrationSettings()).GetValueSync(); - connection.Stop(true); - - UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToOneLineString()); -} - -Y_UNIT_TEST(TestRegisterNodeViaDiscovery_ServerWithoutCertVerification_ClientProvidesEmptyClientCerts) { - TKikimrServerWithOutCertVerification server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - NTest::TCertAndKey noCert; - - auto connection = NYdb::TDriver( - TDriverConfig() - .UseSecureConnection(caCert.Certificate.c_str()) - .UseClientCertificate(noCert.Certificate.c_str(),noCert.PrivateKey.c_str()) - .SetEndpoint(location)); - - NYdb::NDiscovery::TDiscoveryClient discoveryClient = NYdb::NDiscovery::TDiscoveryClient(connection); - const auto result = discoveryClient.NodeRegistration(GetNodeRegistrationSettings()).GetValueSync(); - connection.Stop(true); - - UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToOneLineString()); -} - -Y_UNIT_TEST(TestRegisterNodeViaDiscovery_ServerWithCertVerification_ClientDoesNotProvideCorrectCerts) { - TKikimrServerWithCertVerificationAndWrongIndentity server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - NTest::TCertAndKey clientServerCert = NTest::GenerateSignedCert(caCert, NTest::TProps::AsClientServer()); - - auto connection = NYdb::TDriver( - TDriverConfig() - .UseSecureConnection(caCert.Certificate.c_str()) - .UseClientCertificate(clientServerCert.Certificate.c_str(),clientServerCert.PrivateKey.c_str()) - .SetEndpoint(location)); - - NYdb::NDiscovery::TDiscoveryClient discoveryClient = NYdb::NDiscovery::TDiscoveryClient(connection); - const auto result = discoveryClient.NodeRegistration(GetNodeRegistrationSettings()).GetValueSync(); - connection.Stop(true); - - UNIT_ASSERT_C(!result.IsSuccess(), result.GetIssues().ToOneLineString()); - UNIT_ASSERT_STRINGS_EQUAL(result.GetIssues().ToOneLineString(), "{ <main>: Error: Cannot authorize node by certificate }"); -} - -Y_UNIT_TEST(TestRegisterNodeViaDiscovery_ServerWithCertVerification_ClientDoesNotProvideAnyCerts) { - TKikimrServerWithCertVerification server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - auto connection = NYdb::TDriver( - TDriverConfig() - .SetEndpoint(location)); - - NYdb::NDiscovery::TDiscoveryClient discoveryClient = NYdb::NDiscovery::TDiscoveryClient(connection); - const auto result = discoveryClient.NodeRegistration(GetNodeRegistrationSettings()).GetValueSync(); - connection.Stop(true); - - UNIT_ASSERT_C(result.IsTransportError(), result.GetIssues().ToOneLineString()); -} - -Y_UNIT_TEST(TestRegisterNodeViaDiscovery_ServerWithCertVerification_ClientProvidesServerCerts) { - TKikimrServerWithCertVerification server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - const NTest::TCertAndKey& serverCert = NTest::GenerateSignedCert(caCert, NTest::TProps::AsServer()); // client or client-server is allowed, not just server - - auto connection = NYdb::TDriver( - TDriverConfig() - .UseSecureConnection(caCert.Certificate.c_str()) - .UseClientCertificate(serverCert.Certificate.c_str(),serverCert.PrivateKey.c_str()) - .SetEndpoint(location)); - - NYdb::NDiscovery::TDiscoveryClient discoveryClient = NYdb::NDiscovery::TDiscoveryClient(connection); - const auto result = discoveryClient.NodeRegistration(GetNodeRegistrationSettings()).GetValueSync(); - connection.Stop(true); - - UNIT_ASSERT_C(result.IsTransportError(), result.GetIssues().ToOneLineString()); -} - -Y_UNIT_TEST(TestRegisterNodeViaDiscovery_ServerWithCertVerification_ClientProvidesCorruptedCert) { - TKikimrServerWithCertVerification server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - NTest::TCertAndKey clientServerCert = NTest::GenerateSignedCert(caCert, NTest::TProps::AsClientServer()); - if (clientServerCert.Certificate[50] != 'a') { - clientServerCert.Certificate[50] = 'a'; - } else { - clientServerCert.Certificate[50] = 'b'; - } - auto connection = NYdb::TDriver( - TDriverConfig() - .UseSecureConnection(caCert.Certificate.c_str()) - .UseClientCertificate(clientServerCert.Certificate.c_str(), clientServerCert.PrivateKey.c_str()) - .SetEndpoint(location)); - - NYdb::NDiscovery::TDiscoveryClient discoveryClient = NYdb::NDiscovery::TDiscoveryClient(connection); - const auto result = discoveryClient.NodeRegistration(GetNodeRegistrationSettings()).GetValueSync(); - connection.Stop(true); - - UNIT_ASSERT_C(result.IsTransportError(), result.GetIssues().ToOneLineString()); -} - -Y_UNIT_TEST(TestRegisterNodeViaDiscovery_ServerWithCertVerification_ClientProvidesCorruptedPrivatekey) { - TKikimrServerWithCertVerification server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - NTest::TCertAndKey clientServerCert = NTest::GenerateSignedCert(caCert, NTest::TProps::AsClientServer()); - if (clientServerCert.PrivateKey[20] != 'a') { - clientServerCert.PrivateKey[20] = 'a'; - } else { - clientServerCert.Certificate[20] = 'b'; - } - auto connection = NYdb::TDriver( - TDriverConfig() - .UseSecureConnection(caCert.Certificate.c_str()) - .UseClientCertificate(clientServerCert.Certificate.c_str(), clientServerCert.PrivateKey.c_str()) - .SetEndpoint(location)); - - NYdb::NDiscovery::TDiscoveryClient discoveryClient = NYdb::NDiscovery::TDiscoveryClient(connection); - const auto result = discoveryClient.NodeRegistration(GetNodeRegistrationSettings()).GetValueSync(); - connection.Stop(true); - - UNIT_ASSERT_C(result.IsTransportError(), result.GetIssues().ToOneLineString()); -} - -Y_UNIT_TEST(TestRegisterNodeViaDiscovery_ServerWithCertVerification_ClientProvidesExpiredCert) { - TKikimrServerWithCertVerification server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - NTest::TCertAndKey clientServerCert = NTest::GenerateSignedCert(caCert, NTest::TProps::AsClientServer().WithValid(TDuration::Seconds(2))); - - // wait intil cert expires - Sleep(TDuration::Seconds(10)); - - auto connection = NYdb::TDriver( - TDriverConfig() - .UseSecureConnection(caCert.Certificate.c_str()) - .UseClientCertificate(clientServerCert.Certificate.c_str(), clientServerCert.PrivateKey.c_str()) - .SetEndpoint(location)); - - NYdb::NDiscovery::TDiscoveryClient discoveryClient = NYdb::NDiscovery::TDiscoveryClient(connection); - const auto result = discoveryClient.NodeRegistration(GetNodeRegistrationSettings()).GetValueSync(); - connection.Stop(true); - - UNIT_ASSERT_C(result.IsTransportError(), result.GetIssues().ToOneLineString()); -} - -Y_UNIT_TEST(TestRegisterNodeViaDiscovery_ServerWithOutCertVerification_ClientProvidesExpiredCert) { - TKikimrServerWithOutCertVerification server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - NTest::TCertAndKey clientServerCert = NTest::GenerateSignedCert(caCert, NTest::TProps::AsClientServer().WithValid(TDuration::Seconds(2))); - - // wait intil cert expires - Sleep(TDuration::Seconds(10)); - - auto connection = NYdb::TDriver( - TDriverConfig() - .UseSecureConnection(caCert.Certificate.c_str()) - .UseClientCertificate(clientServerCert.Certificate.c_str(), clientServerCert.PrivateKey.c_str()) - .SetEndpoint(location)); - - NYdb::NDiscovery::TDiscoveryClient discoveryClient = NYdb::NDiscovery::TDiscoveryClient(connection); - const auto result = discoveryClient.NodeRegistration(GetNodeRegistrationSettings()).GetValueSync(); - connection.Stop(true); - - UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToOneLineString()); -} - -Y_UNIT_TEST(TestRegisterNodeViaDiscovery_ServerWithCertVerification_ClientDoesNotProvideClientCerts) { - TKikimrServerWithCertVerification server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - - auto connection = NYdb::TDriver( - TDriverConfig() - .UseSecureConnection(caCert.Certificate.c_str()) - .SetEndpoint(location)); - - NYdb::NDiscovery::TDiscoveryClient discoveryClient = NYdb::NDiscovery::TDiscoveryClient(connection); - const auto result = discoveryClient.NodeRegistration(GetNodeRegistrationSettings()).GetValueSync(); - connection.Stop(true); - - UNIT_ASSERT_C(!result.IsSuccess(), result.GetIssues().ToOneLineString()); - UNIT_ASSERT_STRINGS_EQUAL(result.GetIssues().ToOneLineString(), "{ <main>: Error: Cannot authorize node. Node has not provided certificate }"); -} - -NClient::TKikimr GetKikimr(const TString& addr, const NTest::TCertAndKey& caCert, const NTest::TCertAndKey& clientServerCert) { - NYdbGrpc::TGRpcClientConfig grpcConfig(addr, TDuration::Seconds(15)); - grpcConfig.EnableSsl = true; - grpcConfig.SslCredentials = {.pem_root_certs = caCert.Certificate.c_str(), - .pem_private_key = clientServerCert.PrivateKey.c_str(), - .pem_cert_chain = clientServerCert.Certificate.c_str()}; - grpcConfig.LoadBalancingPolicy = "round_robin"; - - return NClient::TKikimr(grpcConfig); -} - -THolder<NClient::TRegistrationResult> TryToRegisterDynamicNode( - NClient::TKikimr& kikimr, - const TString &domainName, - const TString &nodeHost, - const TString &nodeAddress, - const TString &nodeResolveHost, - ui16 interconnectPort) -{ - auto registrant = kikimr.GetNodeRegistrant(); - - NActorsInterconnect::TNodeLocation location; - location.SetDataCenter("DataCenter"); - location.SetRack("Rack"); - location.SetUnit("Body"); - TNodeLocation loc(location); - - NActorsInterconnect::TNodeLocation legacy; - legacy.SetDataCenterNum(DataCenterFromString("DataCenter")); - legacy.SetRoomNum(0); - legacy.SetRackNum(RackFromString("Rack")); - legacy.SetBodyNum(2); - loc.InheritLegacyValue(TNodeLocation(legacy)); - - return MakeHolder<NClient::TRegistrationResult> - (registrant.SyncRegisterNode(ToString(domainName), - nodeHost, - interconnectPort, - nodeAddress, - nodeResolveHost, - std::move(loc), - false)); -} - -Y_UNIT_TEST(TestRegisterNodeViaLegacy_ServerWithCertVerification_ClientWithCorrectCerts) { - TKikimrServerWithCertVerification server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - NTest::TCertAndKey clientServerCert = NTest::GenerateSignedCert(caCert, NTest::TProps::AsClientServer()); - - NClient::TKikimr kikimr = GetKikimr(location, caCert, clientServerCert); - - Cerr << "Trying to register node" << Endl; - - auto resp = TryToRegisterDynamicNode(kikimr, "Root", "localhost", "localhost", "localhost", GetRandomPort()); - UNIT_ASSERT_C(resp->IsSuccess(), resp->GetErrorMessage()); - - Cerr << "Register node result " << resp->Record().ShortUtf8DebugString() << Endl; -} - -Y_UNIT_TEST(TestRegisterNodeViaLegacy_ServerWithCertVerification_ClientProvidesEmptyClientCerts) { - TKikimrServerWithCertVerification server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - NTest::TCertAndKey noCert; - - NClient::TKikimr kikimr = GetKikimr(location, caCert, noCert); - - Cerr << "Trying to register node" << Endl; - - auto resp = TryToRegisterDynamicNode(kikimr, "Root", "localhost", "localhost", "localhost", GetRandomPort()); - UNIT_ASSERT_C(!resp->IsSuccess(), resp->GetErrorMessage()); - UNIT_ASSERT_STRINGS_EQUAL(resp->GetErrorMessage(), "Cannot authorize node. Node has not provided certificate"); - - Cerr << "Register node result " << resp->Record().ShortUtf8DebugString() << Endl; -} - -Y_UNIT_TEST(TestRegisterNodeViaLegacy_ServerWithoutCertVerification_ClientProvidesCorrectCerts) { - TKikimrServerWithOutCertVerification server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - NTest::TCertAndKey clientServerCert = NTest::GenerateSignedCert(caCert, NTest::TProps::AsClientServer()); - - NClient::TKikimr kikimr = GetKikimr(location, caCert, clientServerCert); - - Cerr << "Trying to register node" << Endl; - - auto resp = TryToRegisterDynamicNode(kikimr, "Root", "localhost", "localhost", "localhost", GetRandomPort()); - UNIT_ASSERT_C(resp->IsSuccess(), resp->GetErrorMessage()); - - Cerr << "Register node result " << resp->Record().ShortUtf8DebugString() << Endl; -} - -Y_UNIT_TEST(TestRegisterNodeViaLegacy_ServerWithoutCertVerification_ClientProvidesEmptyClientCerts) { - TKikimrServerWithOutCertVerification server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - NTest::TCertAndKey noCert; - - NClient::TKikimr kikimr = GetKikimr(location, caCert, noCert); - - Cerr << "Trying to register node" << Endl; - - auto resp = TryToRegisterDynamicNode(kikimr, "Root", "localhost", "localhost", "localhost", GetRandomPort()); - UNIT_ASSERT_C(resp->IsSuccess(), resp->GetErrorMessage()); - - Cerr << "Register node result " << resp->Record().ShortUtf8DebugString() << Endl; -} - -Y_UNIT_TEST(TestRegisterNodeViaLegacy_ServerWithCertVerification_ClientDoesNotProvideCorrectCerts) { - TKikimrServerWithCertVerificationAndWrongIndentity server; - ui16 grpc = server.GetPort(); - TString location = TStringBuilder() << "localhost:" << grpc; - - const NTest::TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); - NTest::TCertAndKey clientServerCert = NTest::GenerateSignedCert(caCert, NTest::TProps::AsClientServer()); - - NClient::TKikimr kikimr = GetKikimr(location, caCert, clientServerCert); - - Cerr << "Trying to register node" << Endl; - - auto resp = TryToRegisterDynamicNode(kikimr, "Root", "localhost", "localhost", "localhost", GetRandomPort()); - UNIT_ASSERT_C(!resp->IsSuccess(), resp->GetErrorMessage()); - UNIT_ASSERT_STRINGS_EQUAL(resp->GetErrorMessage(), "Cannot authorize node by certificate"); - - Cerr << "Register node result " << resp->Record().ShortUtf8DebugString() << Endl; -} - -} - -} // namespace NKikimr diff --git a/ydb/services/ydb/ydb_common_ut.h b/ydb/services/ydb/ydb_common_ut.h index be7fbf73d94f..53de10574868 100644 --- a/ydb/services/ydb/ydb_common_ut.h +++ b/ydb/services/ydb/ydb_common_ut.h @@ -4,9 +4,12 @@ #include <library/cpp/testing/unittest/registar.h> #include <ydb/core/testlib/test_client.h> #include <ydb/core/formats/arrow/arrow_helpers.h> +#include <ydb/core/security/certificate_check/cert_auth_utils.h> #include <ydb/services/ydb/ydb_dummy.h> #include <ydb/public/sdk/cpp/client/ydb_value/value.h> +#include <util/system/tempfile.h> + #include "ydb_keys_ut.h" #include <contrib/libs/apache/arrow/cpp/src/arrow/csv/api.h> // for WriteCSV() @@ -30,7 +33,7 @@ struct TKikimrTestSettings { static TString GetServerCrt() { return NYdbSslTestData::ServerCrt; } static TString GetServerKey() { return NYdbSslTestData::ServerKey; } - static NKikimr::TDynamicNodeAuthorizationParams GetCertAuthParams() {return {}; } + static NKikimr::TCertificateAuthorizationParams GetCertAuthParams() {return {}; } }; struct TKikimrTestWithAuth : TKikimrTestSettings { @@ -41,6 +44,32 @@ struct TKikimrTestWithAuthAndSsl : TKikimrTestWithAuth { static constexpr bool SSL = true; }; +struct TKikimrTestWithServerCert : TKikimrTestWithAuthAndSsl { + static constexpr bool SSL = true; + + static const TCertAndKey& GetCACertAndKey() { + static const TCertAndKey ca = GenerateCA(TProps::AsCA()); + return ca; + } + + static const TCertAndKey& GetServerCert() { + static const TCertAndKey server = GenerateSignedCert(GetCACertAndKey(), TProps::AsServer()); + return server; + } + + static TString GetCaCrt() { + return GetCACertAndKey().Certificate.c_str(); + } + + static TString GetServerCrt() { + return GetServerCert().Certificate.c_str(); + } + + static TString GetServerKey() { + return GetServerCert().PrivateKey.c_str(); + } +}; + struct TKikimrTestNoSystemViews : TKikimrTestSettings { static constexpr bool EnableSystemViews = false; }; @@ -100,6 +129,9 @@ class TBasicKikimrWithGrpcAndRootSchema { builder(*ServerSettings);; } + ServerCertificateFile.Write(TestSettings::GetServerCrt().data(), TestSettings::GetServerCrt().size()); + ServerSettings->ServerCertFilePath = ServerCertificateFile.Name(); + Server_.Reset(new TServer(*ServerSettings)); Tenants_.Reset(new Tests::TTenants(Server_)); @@ -126,7 +158,7 @@ class TBasicKikimrWithGrpcAndRootSchema { sslData.Cert = TestSettings::GetServerCrt(); sslData.Key = TestSettings::GetServerKey(); sslData.Root =TestSettings::GetCaCrt(); - sslData.DoRequestClientCertificate = appConfig.GetFeatureFlags().GetEnableDynamicNodeAuthorization() && appConfig.GetClientCertificateAuthorization().HasDynamicNodeAuthorization(); + sslData.DoRequestClientCertificate = appConfig.GetClientCertificateAuthorization().GetRequestClientCertificate(); grpcOption.SetSslData(sslData); } @@ -168,6 +200,7 @@ class TBasicKikimrWithGrpcAndRootSchema { private: TPortManager PortManager; ui16 GRpcPort_; + TTempFileHandle ServerCertificateFile; }; struct TTestOlap { diff --git a/ydb/services/ydb/ydb_ldap_login_ut.cpp b/ydb/services/ydb/ydb_ldap_login_ut.cpp index 9a45c1363400..bbe63fcbab79 100644 --- a/ydb/services/ydb/ydb_ldap_login_ut.cpp +++ b/ydb/services/ydb/ydb_ldap_login_ut.cpp @@ -72,9 +72,29 @@ void InitLdapSettingsWithInvalidFilter(NKikimrProto::TLdapAuthentication* ldapSe ldapSettings->SetSearchFilter("&(uid=$username)()"); } -void InitLdapSettingsWithUnavaliableHost(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile) { +void InitLdapSettingsWithUnavailableHost(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile) { InitLdapSettings(ldapSettings, ldapPort, certificateFile); - ldapSettings->SetHost("unavaliablehost"); + ldapSettings->SetHost("unavailablehost"); +} + +void InitLdapSettingsWithEmptyHosts(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile) { + InitLdapSettings(ldapSettings, ldapPort, certificateFile); + ldapSettings->SetHost(""); +} + +void InitLdapSettingsWithEmptyBaseDn(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile) { + InitLdapSettings(ldapSettings, ldapPort, certificateFile); + ldapSettings->SetBaseDn(""); +} + +void InitLdapSettingsWithEmptyBindDn(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile) { + InitLdapSettings(ldapSettings, ldapPort, certificateFile); + ldapSettings->SetBindDn(""); +} + +void InitLdapSettingsWithEmptyBindPassword(NKikimrProto::TLdapAuthentication* ldapSettings, ui16 ldapPort, TTempFileHandle& certificateFile) { + InitLdapSettings(ldapSettings, ldapPort, certificateFile); + ldapSettings->SetBindPassword(""); } class TLoginClientConnection { @@ -188,7 +208,9 @@ Y_UNIT_TEST_SUITE(TGRpcLdapAuthentication) { auto factory = CreateLoginCredentialsProviderFactory({.User = login + "@ldap", .Password = password}); auto loginProvider = factory->CreateProvider(loginConnection.GetCoreFacility()); - TString expectedErrorMessage = "Could not perform initial LDAP bind for dn cn=invalidRobouser,dc=search,dc=yandex,dc=net on server localhost\nInvalid credentials"; + TStringBuilder expectedErrorMessage; + expectedErrorMessage << "Could not perform initial LDAP bind for dn cn=invalidRobouser,dc=search,dc=yandex,dc=net on server " + << "ldap://localhost:" << loginConnection.GetLdapPort() << "\nInvalid credentials"; UNIT_ASSERT_EXCEPTION_CONTAINS(loginProvider->GetAuthInfo(), yexception, expectedErrorMessage); loginConnection.Stop(); @@ -207,7 +229,9 @@ Y_UNIT_TEST_SUITE(TGRpcLdapAuthentication) { auto factory = CreateLoginCredentialsProviderFactory({.User = login + "@ldap", .Password = password}); auto loginProvider = factory->CreateProvider(loginConnection.GetCoreFacility()); - TString expectedErrorMessage = "Could not perform initial LDAP bind for dn cn=robouser,dc=search,dc=yandex,dc=net on server localhost\nInvalid credentials"; + TStringBuilder expectedErrorMessage; + expectedErrorMessage << "Could not perform initial LDAP bind for dn cn=robouser,dc=search,dc=yandex,dc=net on server " + << "ldap://localhost:" << loginConnection.GetLdapPort() << "\nInvalid credentials"; UNIT_ASSERT_EXCEPTION_CONTAINS(loginProvider->GetAuthInfo(), yexception, expectedErrorMessage); loginConnection.Stop(); @@ -226,32 +250,53 @@ Y_UNIT_TEST_SUITE(TGRpcLdapAuthentication) { auto factory = CreateLoginCredentialsProviderFactory({.User = login + "@ldap", .Password = password}); auto loginProvider = factory->CreateProvider(loginConnection.GetCoreFacility()); - TString expectedErrorMessage = "Could not search for filter &(uid=" + login + ")() on server localhost\nBad search filter"; + TStringBuilder expectedErrorMessage; + expectedErrorMessage << "Could not search for filter &(uid=" << login << ")() on server " + << "ldap://localhost:" << loginConnection.GetLdapPort() << "\nBad search filter"; UNIT_ASSERT_EXCEPTION_CONTAINS(loginProvider->GetAuthInfo(), yexception, expectedErrorMessage); loginConnection.Stop(); ldapServer.Stop(); } - Y_UNIT_TEST(LdapAuthServerIsUnavaliable) { + void CheckRequiredLdapSettings(std::function<void(NKikimrProto::TLdapAuthentication*, ui16, TTempFileHandle&)> initLdapSettings, const TString& expectedErrorMessage) { TString login = "ldapuser"; TString password = "ldapUserPassword"; - TLoginClientConnection loginConnection(InitLdapSettingsWithUnavaliableHost); + TLoginClientConnection loginConnection(initLdapSettings); LdapMock::TLdapMockResponses responses; LdapMock::TLdapSimpleServer ldapServer(loginConnection.GetLdapPort(), responses); auto factory = CreateLoginCredentialsProviderFactory({.User = login + "@ldap", .Password = password}); auto loginProvider = factory->CreateProvider(loginConnection.GetCoreFacility()); - TString expectedErrorMessage = "Could not start TLS\nCan't contact LDAP server"; UNIT_ASSERT_EXCEPTION_CONTAINS(loginProvider->GetAuthInfo(), yexception, expectedErrorMessage); loginConnection.Stop(); ldapServer.Stop(); } + Y_UNIT_TEST(LdapAuthServerIsUnavailable) { + CheckRequiredLdapSettings(InitLdapSettingsWithUnavailableHost, "Could not start TLS\nCan't contact LDAP server"); + } + + Y_UNIT_TEST(LdapAuthSettingsWithEmptyHosts) { + CheckRequiredLdapSettings(InitLdapSettingsWithEmptyHosts, "List of ldap server hosts is empty"); + } + + Y_UNIT_TEST(LdapAuthSettingsWithEmptyBaseDn) { + CheckRequiredLdapSettings(InitLdapSettingsWithEmptyBaseDn, "Parameter BaseDn is empty"); + } + + Y_UNIT_TEST(LdapAuthSettingsWithEmptyBindDn) { + CheckRequiredLdapSettings(InitLdapSettingsWithEmptyBindDn, "Parameter BindDn is empty"); + } + + Y_UNIT_TEST(LdapAuthSettingsWithEmptyBindPassword) { + CheckRequiredLdapSettings(InitLdapSettingsWithEmptyBindPassword, "Parameter BindPassword is empty"); + } + Y_UNIT_TEST(LdapAuthWithInvalidLogin) { - TString nonExistenUser = "nonexistenldapuser"; + TString nonExistentUser = "nonexistenldapuser"; TString password = "ldapUserPassword"; LdapMock::TLdapMockResponses responses; @@ -262,7 +307,7 @@ Y_UNIT_TEST_SUITE(TGRpcLdapAuthentication) { .BaseDn = "dc=search,dc=yandex,dc=net", .Scope = 2, .DerefAliases = 0, - .Filter = {.Type = LdapMock::EFilterType::LDAP_FILTER_EQUALITY, .Attribute = "uid", .Value = nonExistenUser}, + .Filter = {.Type = LdapMock::EFilterType::LDAP_FILTER_EQUALITY, .Attribute = "uid", .Value = nonExistentUser}, .Attributes = {"1.1"} } }; @@ -276,9 +321,12 @@ Y_UNIT_TEST_SUITE(TGRpcLdapAuthentication) { TLoginClientConnection loginConnection(InitLdapSettings); LdapMock::TLdapSimpleServer ldapServer(loginConnection.GetLdapPort(), responses); - auto factory = CreateLoginCredentialsProviderFactory({.User = nonExistenUser + "@ldap", .Password = password}); + auto factory = CreateLoginCredentialsProviderFactory({.User = nonExistentUser + "@ldap", .Password = password}); auto loginProvider = factory->CreateProvider(loginConnection.GetCoreFacility()); - TString expectedErrorMessage = "LDAP user " + nonExistenUser + " does not exist. LDAP search for filter uid=" + nonExistenUser + " on server localhost return no entries"; + TStringBuilder expectedErrorMessage; + expectedErrorMessage << "LDAP user " << nonExistentUser << " does not exist. LDAP search for filter uid=" + << nonExistentUser << " on server " + << "ldap://localhost:" << loginConnection.GetLdapPort() << " return no entries"; UNIT_ASSERT_EXCEPTION_CONTAINS(loginProvider->GetAuthInfo(), yexception, expectedErrorMessage); loginConnection.Stop(); @@ -320,7 +368,9 @@ Y_UNIT_TEST_SUITE(TGRpcLdapAuthentication) { auto factory = CreateLoginCredentialsProviderFactory({.User = login + "@ldap", .Password = password}); auto loginProvider = factory->CreateProvider(loginConnection.GetCoreFacility()); - TString expectedErrorMessage = "LDAP login failed for user uid=" + login + ",dc=search,dc=yandex,dc=net on server localhost\nInvalid credentials"; + TStringBuilder expectedErrorMessage; + expectedErrorMessage << "LDAP login failed for user uid=" << login << ",dc=search,dc=yandex,dc=net on server " + << "ldap://localhost:" << loginConnection.GetLdapPort() << "\nInvalid credentials"; UNIT_ASSERT_EXCEPTION_CONTAINS(loginProvider->GetAuthInfo(), yexception, expectedErrorMessage); loginConnection.Stop(); diff --git a/ydb/services/ydb/ydb_logstore_ut.cpp b/ydb/services/ydb/ydb_logstore_ut.cpp index 44b08f43c964..a85072d2ae88 100644 --- a/ydb/services/ydb/ydb_logstore_ut.cpp +++ b/ydb/services/ydb/ydb_logstore_ut.cpp @@ -163,7 +163,7 @@ Y_UNIT_TEST_SUITE(YdbLogStore) { } { // wrong schema: not supported PK - NYdb::NLogStore::TSchema logSchema(TestSchemaColumns(), {"json_payload", "resource_id"}); + NYdb::NLogStore::TSchema logSchema(TestSchemaColumns(EPrimitiveType::Double), {"json_payload", "resource_id"}); THashMap<TString, NYdb::NLogStore::TSchema> schemaPresets; schemaPresets["default"] = logSchema; NYdb::NLogStore::TLogStoreDescription storeDescr(4, schemaPresets); @@ -333,8 +333,10 @@ Y_UNIT_TEST_SUITE(YdbLogStore) { auto res = schemaClient.ListDirectory("/Root/LogStore/.sys").GetValueSync(); UNIT_ASSERT_VALUES_EQUAL_C(res.GetStatus(), EStatus::SUCCESS, res.GetIssues().ToString()); auto children = res.GetChildren(); - UNIT_ASSERT_VALUES_EQUAL(children.size(), 1); - UNIT_ASSERT_VALUES_EQUAL(children[0].Name, "store_primary_index_stats"); + UNIT_ASSERT_VALUES_EQUAL(children.size(), 3); + UNIT_ASSERT_VALUES_EQUAL(children[0].Name, "store_primary_index_granule_stats"); + UNIT_ASSERT_VALUES_EQUAL(children[1].Name, "store_primary_index_portion_stats"); + UNIT_ASSERT_VALUES_EQUAL(children[2].Name, "store_primary_index_stats"); } { @@ -351,8 +353,10 @@ Y_UNIT_TEST_SUITE(YdbLogStore) { auto res = schemaClient.ListDirectory("/Root/LogStore/log1/.sys").GetValueSync(); UNIT_ASSERT_VALUES_EQUAL_C(res.GetStatus(), EStatus::SUCCESS, res.GetIssues().ToString()); auto children = res.GetChildren(); - UNIT_ASSERT_VALUES_EQUAL(children.size(), 1); - UNIT_ASSERT_VALUES_EQUAL(children[0].Name, "primary_index_stats"); + UNIT_ASSERT_VALUES_EQUAL(children.size(), 3); + UNIT_ASSERT_VALUES_EQUAL(children[0].Name, "primary_index_granule_stats"); + UNIT_ASSERT_VALUES_EQUAL(children[1].Name, "primary_index_portion_stats"); + UNIT_ASSERT_VALUES_EQUAL(children[2].Name, "primary_index_stats"); } { diff --git a/ydb/services/ydb/ydb_olapstore_ut.cpp b/ydb/services/ydb/ydb_olapstore_ut.cpp index 00dd55c4cf93..d570e9cc73cc 100644 --- a/ydb/services/ydb/ydb_olapstore_ut.cpp +++ b/ydb/services/ydb/ydb_olapstore_ut.cpp @@ -374,9 +374,9 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { } } - Y_UNIT_TEST_TWIN(BulkUpsert, NotNull) { + Y_UNIT_TEST(BulkUpsert) { for (auto& [type, name] : allowedTypes) { - TestBulkUpsert<NotNull>(type); + TestBulkUpsert<true>(type); } } @@ -412,9 +412,9 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { CompareQueryResults(connection, "log1", "SELECT count(*) FROM <TABLE>;"); } - Y_UNIT_TEST_TWIN(ManyTables, NotNull) { + Y_UNIT_TEST(ManyTables) { for (auto& sharding : testShardingVariants) { - TestManyTables<NotNull>(sharding); + TestManyTables<true>(sharding); } } @@ -465,9 +465,9 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { } } - Y_UNIT_TEST_TWIN(DuplicateRows, NotNull) { + Y_UNIT_TEST(DuplicateRows) { for (auto& sharding : testShardingVariants) { - TestDuplicateRows<NotNull>(sharding); + TestDuplicateRows<true>(sharding); } } @@ -496,7 +496,7 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { CompareQueryResults(connection, "log1", query); } - Y_UNIT_TEST_TWIN(LogLast50, NotNull) { + Y_UNIT_TEST(LogLast50) { TString query(R"( SELECT `timestamp`, `resource_type`, `resource_id`, `uid`, `level`, `message` FROM <TABLE> @@ -505,11 +505,11 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { )"); for (auto& sharding : testShardingVariants) { - TestQuery<NotNull>(query, sharding); + TestQuery<true>(query, sharding); } } - Y_UNIT_TEST_TWIN(LogLast50ByResource, NotNull) { + Y_UNIT_TEST(LogLast50ByResource) { TString query(R"( SELECT `timestamp`, `resource_type`, `resource_id`, `uid`, `level`, `message` FROM <TABLE> @@ -519,11 +519,11 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { )"); for (auto& sharding : testShardingVariants) { - TestQuery<NotNull>(query, sharding); + TestQuery<true>(query, sharding); } } - Y_UNIT_TEST_TWIN(LogGrepNonExisting, NotNull) { + Y_UNIT_TEST(LogGrepNonExisting) { TString query(R"( SELECT `timestamp`, `resource_type`, `resource_id`, `uid`, `level`, `message` FROM <TABLE> @@ -533,11 +533,11 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { )"); for (auto& sharding : testShardingVariants) { - TestQuery<NotNull>(query, sharding); + TestQuery<true>(query, sharding); } } - Y_UNIT_TEST_TWIN(LogGrepExisting, NotNull) { + Y_UNIT_TEST(LogGrepExisting) { TString query(R"( SELECT `timestamp`, `resource_type`, `resource_id`, `uid`, `level`, `message` FROM <TABLE> @@ -547,11 +547,11 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { )"); for (auto& sharding : testShardingVariants) { - TestQuery<NotNull>(query, sharding); + TestQuery<true>(query, sharding); } } - Y_UNIT_TEST_TWIN(LogNonExistingRequest, NotNull) { + Y_UNIT_TEST(LogNonExistingRequest) { TString query(R"( $request_id = '0xfaceb00c'; @@ -563,11 +563,11 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { )"); for (auto& sharding : testShardingVariants) { - TestQuery<NotNull>(query, sharding); + TestQuery<true>(query, sharding); } } - Y_UNIT_TEST_TWIN(LogExistingRequest, NotNull) { + Y_UNIT_TEST(LogExistingRequest) { TString query(R"( $request_id = '1f'; @@ -579,11 +579,11 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { )"); for (auto& sharding : testShardingVariants) { - TestQuery<NotNull>(query, sharding); + TestQuery<true>(query, sharding); } } - Y_UNIT_TEST_TWIN(LogNonExistingUserId, NotNull) { + Y_UNIT_TEST(LogNonExistingUserId) { // Should be fixed after Arrow kernel implementation for JSON_VALUE // https://st.yandex-team.ru/KIKIMR-17903 TString query(R"( @@ -598,11 +598,11 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { )"); for (auto& sharding : testShardingVariants) { - TestQuery<NotNull>(query, sharding); + TestQuery<true>(query, sharding); } } - Y_UNIT_TEST_TWIN(LogExistingUserId, NotNull) { + Y_UNIT_TEST(LogExistingUserId) { // Should be fixed after Arrow kernel implementation for JSON_VALUE // https://st.yandex-team.ru/KIKIMR-17903 TString query(R"( @@ -617,11 +617,11 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { )"); for (auto& sharding : testShardingVariants) { - TestQuery<NotNull>(query, sharding); + TestQuery<true>(query, sharding); } } - Y_UNIT_TEST_TWIN(LogPagingBefore, NotNull) { + Y_UNIT_TEST(LogPagingBefore) { TString query(R"( PRAGMA kikimr.OptEnablePredicateExtract = "true"; @@ -639,11 +639,11 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { )"); for (auto& sharding : testShardingVariants) { - TestQuery<NotNull>(query, sharding); + TestQuery<true>(query, sharding); } } - Y_UNIT_TEST_TWIN(LogPagingBetween, NotNull) { + Y_UNIT_TEST(LogPagingBetween) { TString query(R"( PRAGMA kikimr.OptEnablePredicateExtract = "true"; @@ -667,11 +667,11 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { )"); for (auto& sharding : testShardingVariants) { - TestQuery<NotNull>(query, sharding); + TestQuery<true>(query, sharding); } } - Y_UNIT_TEST_TWIN(LogPagingAfter, NotNull) { + Y_UNIT_TEST(LogPagingAfter) { TString query(R"( PRAGMA kikimr.OptEnablePredicateExtract = "true"; @@ -695,11 +695,11 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { )"); for (auto& sharding : testShardingVariants) { - TestQuery<NotNull>(query, sharding); + TestQuery<true>(query, sharding); } } - Y_UNIT_TEST_TWIN(LogCountByResource, NotNull) { + Y_UNIT_TEST(LogCountByResource) { TString query(R"( SELECT count(*) FROM <TABLE> @@ -708,11 +708,11 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { )"); for (auto& sharding : testShardingVariants) { - TestQuery<NotNull>(query, sharding); + TestQuery<true>(query, sharding); } } - Y_UNIT_TEST_TWIN(LogWithUnionAllAscending, NotNull) { + Y_UNIT_TEST(LogWithUnionAllAscending) { TString query(R"( PRAGMA AnsiInForEmptyOrNullableItemsCollections; @@ -740,11 +740,11 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { )"); for (auto& sharding : testShardingVariants) { - TestQuery<NotNull>(query, sharding); + TestQuery<true>(query, sharding); } } - Y_UNIT_TEST_TWIN(LogWithUnionAllDescending, NotNull) { + Y_UNIT_TEST(LogWithUnionAllDescending) { TString query(R"( PRAGMA AnsiInForEmptyOrNullableItemsCollections; @@ -772,11 +772,11 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { )"); for (auto& sharding : testShardingVariants) { - TestQuery<NotNull>(query, sharding); + TestQuery<true>(query, sharding); } } - Y_UNIT_TEST_TWIN(LogTsRangeDescending, NotNull) { + Y_UNIT_TEST(LogTsRangeDescending) { TString query(R"( --PRAGMA AnsiInForEmptyOrNullableItemsCollections; @@ -794,7 +794,7 @@ Y_UNIT_TEST_SUITE(YdbOlapStore) { )"); for (auto& sharding : testShardingVariants) { - TestQuery<NotNull>(query, sharding); + TestQuery<true>(query, sharding); } } } diff --git a/ydb/services/ydb/ydb_query.cpp b/ydb/services/ydb/ydb_query.cpp index 03f031430f1e..b8bc700e89f3 100644 --- a/ydb/services/ydb/ydb_query.cpp +++ b/ydb/services/ydb/ydb_query.cpp @@ -7,76 +7,64 @@ namespace NKikimr::NGRpcService { +TGRpcYdbQueryService::TGRpcYdbQueryService(NActors::TActorSystem *system, + TIntrusivePtr<::NMonitoring::TDynamicCounters> counters, + const NActors::TActorId& proxyId, + bool rlAllowed, + size_t handlersPerCompletionQueue) + : TGrpcServiceBase(system, counters, proxyId, rlAllowed) + , HandlersPerCompletionQueue(Max(size_t{1}, handlersPerCompletionQueue)) +{ +} + +TGRpcYdbQueryService::TGRpcYdbQueryService(NActors::TActorSystem *system, + TIntrusivePtr<::NMonitoring::TDynamicCounters> counters, + const TVector<NActors::TActorId>& proxies, + bool rlAllowed, + size_t handlersPerCompletionQueue) + : TGrpcServiceBase(system, counters, proxies, rlAllowed) + , HandlersPerCompletionQueue(Max(size_t{1}, handlersPerCompletionQueue)) +{ +} + void TGRpcYdbQueryService::SetupIncomingRequests(NYdbGrpc::TLoggerPtr logger) { using namespace Ydb::Query; using namespace NQuery; auto getCounterBlock = CreateCounterCb(Counters_, ActorSystem_); + size_t proxyCounter = 0; #ifdef ADD_REQUEST #error ADD_REQUEST macro already defined #endif -#define ADD_REQUEST(NAME, IN, OUT, ACTION) \ - MakeIntrusive<TGRpcRequest<IN, OUT, TGRpcYdbQueryService>>(this, &Service_, CQ_, \ - [this](NYdbGrpc::IRequestContextBase* ctx) { \ - NGRpcService::ReportGrpcReqToMon(*ActorSystem_, ctx->GetPeer()); \ - ACTION; \ - }, &Ydb::Query::V1::QueryService::AsyncService::Request ## NAME, \ - #NAME, logger, getCounterBlock("query", #NAME))->Run(); - - ADD_REQUEST(ExecuteQuery, ExecuteQueryRequest, ExecuteQueryResponsePart, { - ActorSystem_->Send(GRpcRequestProxyId_, - new TGrpcRequestNoOperationCall<ExecuteQueryRequest, ExecuteQueryResponsePart> - (ctx, &DoExecuteQuery, TRequestAuxSettings{RLSWITCH(TRateLimiterMode::Rps), nullptr, TAuditMode::Auditable})); - }) - - ADD_REQUEST(ExecuteScript, ExecuteScriptRequest, Ydb::Operations::Operation, { - ActorSystem_->Send(GRpcRequestProxyId_, - new TGrpcRequestNoOperationCall<ExecuteScriptRequest, Ydb::Operations::Operation> - (ctx, &DoExecuteScript, TRequestAuxSettings{RLSWITCH(TRateLimiterMode::Rps), nullptr, TAuditMode::Auditable})); - }) - - ADD_REQUEST(FetchScriptResults, FetchScriptResultsRequest, FetchScriptResultsResponse, { - ActorSystem_->Send(GRpcRequestProxyId_, - new TGrpcRequestNoOperationCall<FetchScriptResultsRequest, FetchScriptResultsResponse> - (ctx, &DoFetchScriptResults, TRequestAuxSettings{RLSWITCH(TRateLimiterMode::Rps), nullptr})); - }) - - ADD_REQUEST(CreateSession, CreateSessionRequest, CreateSessionResponse, { - ActorSystem_->Send(GRpcRequestProxyId_, - new TGrpcRequestNoOperationCall<CreateSessionRequest, CreateSessionResponse> - (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> - (ctx, &DoAttachSession, TRequestAuxSettings{RLSWITCH(TRateLimiterMode::Rps), nullptr})); - }) - - ADD_REQUEST(BeginTransaction, BeginTransactionRequest, BeginTransactionResponse, { - ActorSystem_->Send(GRpcRequestProxyId_, - new TGrpcRequestNoOperationCall<BeginTransactionRequest, BeginTransactionResponse> - (ctx, &DoBeginTransaction, TRequestAuxSettings{RLSWITCH(TRateLimiterMode::Rps), nullptr})); - }) - - ADD_REQUEST(CommitTransaction, CommitTransactionRequest, CommitTransactionResponse, { - ActorSystem_->Send(GRpcRequestProxyId_, - new TGrpcRequestNoOperationCall<CommitTransactionRequest, CommitTransactionResponse> - (ctx, &DoCommitTransaction, TRequestAuxSettings{RLSWITCH(TRateLimiterMode::Rps), nullptr})); - }) - - ADD_REQUEST(RollbackTransaction, RollbackTransactionRequest, RollbackTransactionResponse, { - ActorSystem_->Send(GRpcRequestProxyId_, - new TGrpcRequestNoOperationCall<RollbackTransactionRequest, RollbackTransactionResponse> - (ctx, &DoRollbackTransaction, TRequestAuxSettings{RLSWITCH(TRateLimiterMode::Rps), nullptr})); - }) +#define ADD_REQUEST(NAME, IN, OUT, CB, REQUEST_TYPE, ...) \ + for (size_t i = 0; i < HandlersPerCompletionQueue; ++i) { \ + for (auto* cq: CQS) { \ + MakeIntrusive<TGRpcRequest<IN, OUT, TGRpcYdbQueryService>>(this, &Service_, cq, \ + [this, proxyCounter](NYdbGrpc::IRequestContextBase* ctx) { \ + NGRpcService::ReportGrpcReqToMon(*ActorSystem_, ctx->GetPeer()); \ + ActorSystem_->Send(GRpcProxies_[proxyCounter % GRpcProxies_.size()], \ + new TGrpcRequestNoOperationCall<IN, OUT> \ + (ctx, &CB, TRequestAuxSettings { \ + .RlMode = RLSWITCH(TRateLimiterMode::Rps), \ + __VA_OPT__(.AuditMode = TAuditMode::__VA_ARGS__,) \ + .RequestType = NJaegerTracing::ERequestType::QUERY_##REQUEST_TYPE, \ + })); \ + }, &Ydb::Query::V1::QueryService::AsyncService::Request ## NAME, \ + #NAME, logger, getCounterBlock("query", #NAME))->Run(); \ + ++proxyCounter; \ + } \ + } + + ADD_REQUEST(ExecuteQuery, ExecuteQueryRequest, ExecuteQueryResponsePart, DoExecuteQuery, EXECUTEQUERY, Auditable); + ADD_REQUEST(ExecuteScript, ExecuteScriptRequest, Ydb::Operations::Operation, DoExecuteScript, EXECUTESCRIPT, Auditable); + ADD_REQUEST(FetchScriptResults, FetchScriptResultsRequest, FetchScriptResultsResponse, DoFetchScriptResults, FETCHSCRIPTRESULTS); + ADD_REQUEST(CreateSession, CreateSessionRequest, CreateSessionResponse, DoCreateSession, CREATESESSION); + ADD_REQUEST(DeleteSession, DeleteSessionRequest, DeleteSessionResponse, DoDeleteSession, DELETESESSION); + ADD_REQUEST(AttachSession, AttachSessionRequest, SessionState, DoAttachSession, ATTACHSESSION); + ADD_REQUEST(BeginTransaction, BeginTransactionRequest, BeginTransactionResponse, DoBeginTransaction, BEGINTRANSACTION); + ADD_REQUEST(CommitTransaction, CommitTransactionRequest, CommitTransactionResponse, DoCommitTransaction, COMMITTRANSACTION); + ADD_REQUEST(RollbackTransaction, RollbackTransactionRequest, RollbackTransactionResponse, DoRollbackTransaction, ROLLBACKTRANSACTION); #undef ADD_REQUEST } diff --git a/ydb/services/ydb/ydb_query.h b/ydb/services/ydb/ydb_query.h index 8dec5cc4fa7f..04e8ab915ee7 100644 --- a/ydb/services/ydb/ydb_query.h +++ b/ydb/services/ydb/ydb_query.h @@ -11,8 +11,25 @@ class TGRpcYdbQueryService public: using TGrpcServiceBase<Ydb::Query::V1::QueryService>::TGrpcServiceBase; + TGRpcYdbQueryService( + NActors::TActorSystem *system, + TIntrusivePtr<::NMonitoring::TDynamicCounters> counters, + const NActors::TActorId& proxyId, + bool rlAllowed, + size_t handlersPerCompletionQueue = 1); + + TGRpcYdbQueryService( + NActors::TActorSystem *system, + TIntrusivePtr<::NMonitoring::TDynamicCounters> counters, + const TVector<NActors::TActorId>& proxies, + bool rlAllowed, + size_t handlersPerCompletionQueue); + private: void SetupIncomingRequests(NYdbGrpc::TLoggerPtr logger); + +private: + const size_t HandlersPerCompletionQueue; }; } // namespace NKikimr::NGRpcService diff --git a/ydb/services/ydb/ydb_register_node_ut.cpp b/ydb/services/ydb/ydb_register_node_ut.cpp new file mode 100644 index 000000000000..c5d3216cd1b0 --- /dev/null +++ b/ydb/services/ydb/ydb_register_node_ut.cpp @@ -0,0 +1,1073 @@ +#include <library/cpp/testing/unittest/tests_data.h> +#include <library/cpp/testing/unittest/registar.h> + +#include <grpcpp/client_context.h> +#include <grpcpp/create_channel.h> + +#include <ydb/core/base/storage_pools.h> +#include <ydb/core/base/location.h> +#include <ydb/core/protos/flat_scheme_op.pb.h> +#include <ydb/core/scheme/scheme_tablecell.h> +#include <ydb/core/testlib/test_client.h> +#include <ydb/core/driver_lib/cli_config_base/config_base.h> +#include <ydb/core/security/certificate_check/cert_auth_processor.h> +#include <ydb/core/security/certificate_check/cert_auth_utils.h> + +#include <ydb/public/api/grpc/ydb_scheme_v1.grpc.pb.h> +#include <ydb/public/api/grpc/ydb_operation_v1.grpc.pb.h> +#include <ydb/public/api/grpc/ydb_table_v1.grpc.pb.h> +#include <ydb/public/api/grpc/draft/dummy.grpc.pb.h> +#include <ydb/public/api/protos/ydb_table.pb.h> + +#include <ydb/library/grpc/client/grpc_client_low.h> + +#include <google/protobuf/any.h> + +#include <ydb/library/yql/core/issue/yql_issue.h> +#include <ydb/library/yql/public/issue/yql_issue.h> +#include <ydb/library/yql/public/issue/yql_issue_message.h> + +#include <ydb/public/sdk/cpp/client/ydb_params/params.h> +#include <ydb/public/sdk/cpp/client/ydb_result/result.h> +#include <ydb/public/sdk/cpp/client/ydb_scheme/scheme.h> +#include <ydb/public/sdk/cpp/client/ydb_table/table.h> +#include <ydb/public/sdk/cpp/client/ydb_discovery/discovery.h> +#include <ydb/public/sdk/cpp/client/resources/ydb_resources.h> + +#include <ydb/public/lib/deprecated/kicli/kicli.h> + +#include "ydb_common_ut.h" + +#include <util/generic/ymath.h> + +namespace NKikimr { + +using namespace Tests; +using namespace NYdb; +using namespace NYdb::NTable; +using namespace NYdb::NScheme; + +namespace { + +struct TKikimrServerForTestNodeRegistration : TBasicKikimrWithGrpcAndRootSchema<TKikimrTestWithServerCert> { + using TBase = TBasicKikimrWithGrpcAndRootSchema<TKikimrTestWithServerCert>; + + struct TServerInitialization { + bool EnforceUserToken = false; + bool EnableDynamicNodeAuth = false; + bool EnableWrongIdentity = false; + bool SetNodeAuthValues = false; + std::vector<TString> RegisterNodeAllowedSids = {"DefaultClientAuth@cert", BUILTIN_ACL_ROOT}; + }; + + TKikimrServerForTestNodeRegistration(const TServerInitialization& serverInitialization) + : TBase(GetAppConfig(serverInitialization)) + {} + +private: + static NKikimrConfig::TAppConfig GetAppConfig(const TServerInitialization& serverInitialization) { + auto config = NKikimrConfig::TAppConfig(); + + auto& securityConfig = *config.MutableDomainsConfig()->MutableSecurityConfig(); + if (serverInitialization.EnforceUserToken) { + securityConfig.SetEnforceUserTokenRequirement(true); + } + if (serverInitialization.EnableDynamicNodeAuth) { + config.MutableClientCertificateAuthorization()->SetRequestClientCertificate(true); + // config.MutableFeatureFlags()->SetEnableDynamicNodeAuthorization(true); + } + + std::vector<TString> tmpRegisterNodeAllowedSids(serverInitialization.RegisterNodeAllowedSids); + for (auto& sid : tmpRegisterNodeAllowedSids) { + securityConfig.MutableRegisterDynamicNodeAllowedSIDs()->Add(std::move(sid)); + } + + if (serverInitialization.SetNodeAuthValues) { + auto& clientCertDefinitions = *config.MutableClientCertificateAuthorization()->MutableClientCertificateDefinitions(); + auto& certDef = *clientCertDefinitions.Add(); + if (serverInitialization.EnableWrongIdentity) { + *certDef.AddSubjectTerms() = MakeSubjectTerm("C", {"WRONG"}); + } else { + *certDef.AddSubjectTerms() = MakeSubjectTerm("C", {"RU"}); + } + *certDef.AddSubjectTerms() = MakeSubjectTerm("ST", {"MSK"}); + *certDef.AddSubjectTerms() = MakeSubjectTerm("L", {"MSK"}); + *certDef.AddSubjectTerms() = MakeSubjectTerm("O", {"YA"}); + *certDef.AddSubjectTerms() = MakeSubjectTerm("OU", {"UtTest"}); + *certDef.AddSubjectTerms() = MakeSubjectTerm("CN", {"localhost"}, {".yandex.ru"}); + } + + return config; + } +}; + +} // namespace + +Y_UNIT_TEST_SUITE(TRegisterNodeOverDiscoveryService) { + +NDiscovery::TNodeRegistrationSettings GetNodeRegistrationSettings() { + NDiscovery::TNodeRegistrationSettings settings; + settings.Host("localhost"); + settings.Port(GetRandomPort()); + settings.ResolveHost("localhost"); + settings.Address("localhost"); + settings.DomainPath("Root"); + settings.FixedNodeId(false); + + NYdb::NDiscovery::TNodeLocation loc; + loc.DataCenterNum = DataCenterFromString("DataCenter"); + loc.RoomNum = 0; + loc.RackNum = RackFromString("Rack"); + loc.BodyNum = 2; + loc.DataCenter = "DataCenter"; + loc.Rack = "Rack"; + loc.Unit = "Body"; + + settings.Location(loc); + return settings; +} + +void SetLogPriority(TKikimrServerForTestNodeRegistration& server) { + server.GetRuntime()->SetLogPriority(NKikimrServices::TICKET_PARSER, NLog::PRI_TRACE); + server.GetRuntime()->SetLogPriority(NKikimrServices::GRPC_CLIENT, NLog::PRI_TRACE); +} + +NDiscovery::TNodeRegistrationResult RegisterNode(const TDriverConfig& config) { + auto connection = NYdb::TDriver(config); + NYdb::NDiscovery::TDiscoveryClient discoveryClient = NYdb::NDiscovery::TDiscoveryClient(connection); + const auto result = discoveryClient.NodeRegistration(GetNodeRegistrationSettings()).GetValueSync(); + connection.Stop(true); + return result; +} + +void CheckGood(const NDiscovery::TNodeRegistrationResult& result) { + UNIT_ASSERT_C(!result.IsTransportError(), result.GetIssues().ToOneLineString()); + UNIT_ASSERT_C(result.IsSuccess(), result.GetIssues().ToOneLineString()); +} + +void CheckAccessDenied(const NDiscovery::TNodeRegistrationResult& result, const TString& expectedError) { + UNIT_ASSERT_C(result.IsTransportError(), result.GetIssues().ToOneLineString()); + UNIT_ASSERT_C(!result.IsSuccess(), result.GetIssues().ToOneLineString()); + UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToOneLineString(), expectedError); +} + +void CheckAccessDeniedRegisterNode(const NDiscovery::TNodeRegistrationResult& result, const TString& expectedError) { + UNIT_ASSERT_C(!result.IsSuccess(), result.GetIssues().ToOneLineString()); + UNIT_ASSERT_STRING_CONTAINS(result.GetIssues().ToOneLineString(), expectedError); +} + +Y_UNIT_TEST(ServerWithCertVerification_ClientWithCorrectCerts_EmptyAllowedSids) { + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey clientServerCert = GenerateSignedCert(caCert, TProps::AsClientServer()); + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true, + .RegisterNodeAllowedSids = {} + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(),clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckGood(RegisterNode(config)); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), "Could not find correct token validator"); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true, + .RegisterNodeAllowedSids = {} + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(),clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckGood(RegisterNode(config)); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckGood(RegisterNode(config.SetAuthToken("wrong_token"))); + } +} + +Y_UNIT_TEST(ServerWithCertVerification_ClientWithCorrectCerts) { + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey clientServerCert = GenerateSignedCert(caCert, TProps::AsClientServer()); + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true, + .RegisterNodeAllowedSids = {} + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(),clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckGood(RegisterNode(config)); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), "Could not find correct token validator"); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true, + .RegisterNodeAllowedSids = {} + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(),clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckGood(RegisterNode(config)); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckGood(RegisterNode(config.SetAuthToken("wrong_token"))); + } +} + +Y_UNIT_TEST(ServerWithCertVerification_ClientWithCorrectCerts_AllowOnlyDefaultGroup) { + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey clientServerCert = GenerateSignedCert(caCert, TProps::AsClientServer()); + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true, + .RegisterNodeAllowedSids = {"DefaultClientAuth@cert"} + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(),clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckGood(RegisterNode(config)); + CheckAccessDeniedRegisterNode(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT)), "Cannot authorize node. Access denied"); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), "Could not find correct token validator"); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true, + .RegisterNodeAllowedSids = {"DefaultClientAuth@cert"} + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(),clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckGood(RegisterNode(config)); + CheckAccessDeniedRegisterNode(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT)), "Cannot authorize node. Access denied"); + CheckGood(RegisterNode(config.SetAuthToken("wrong_token"))); + } +} + +Y_UNIT_TEST(ServerWithIssuerVerification_ClientWithSameIssuer) { + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey clientServerCert = GenerateSignedCert(caCert, TProps::AsClientServer()); + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = false + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(),clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckGood(RegisterNode(config)); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), "Could not find correct token validator"); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = false + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(),clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckGood(RegisterNode(config)); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckGood(RegisterNode(config.SetAuthToken("wrong_token"))); + } +} + +Y_UNIT_TEST(ServerWithCertVerification_ClientProvidesEmptyClientCerts) { + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey noCert; + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(noCert.Certificate.c_str(),noCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckAccessDenied(RegisterNode(config), "Access denied without user token"); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), "Could not find correct token validator"); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnforceUserToken = false, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(noCert.Certificate.c_str(),noCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckGood(RegisterNode(config)); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckGood(RegisterNode(config.SetAuthToken("wrong_token"))); + } +} + +Y_UNIT_TEST(ServerWithoutCertVerification_ClientProvidesCorrectCerts) { + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey clientServerCert = GenerateSignedCert(caCert, TProps::AsClientServer()); + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(),clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckAccessDenied(RegisterNode(config), "Access denied without user token"); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), "Could not find correct token validator"); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnforceUserToken = false + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(),clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckGood(RegisterNode(config)); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckGood(RegisterNode(config.SetAuthToken("wrong_token"))); + } +} + +Y_UNIT_TEST(ServerWithoutCertVerification_ClientProvidesEmptyClientCerts) { + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey noCert; + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(noCert.Certificate.c_str(),noCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckAccessDenied(RegisterNode(config), "Access denied without user token"); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), "Could not find correct token validator"); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnforceUserToken = false + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(noCert.Certificate.c_str(),noCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckGood(RegisterNode(config)); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckGood(RegisterNode(config.SetAuthToken("wrong_token"))); + } +} + +Y_UNIT_TEST(ServerWithCertVerification_ClientProvideIncorrectCerts) { + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey clientServerCert = GenerateSignedCert(caCert, TProps::AsClientServer()); + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .EnableWrongIdentity = true, + .SetNodeAuthValues = true, + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(),clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckAccessDenied(RegisterNode(config), "Cannot create token from certificate. Client certificate failed verification"); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), "Could not find correct token validator"); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnforceUserToken = false, + .EnableDynamicNodeAuth = true, + .EnableWrongIdentity = true, + .SetNodeAuthValues = true, + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(),clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckGood(RegisterNode(config)); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckGood(RegisterNode(config.SetAuthToken("wrong_token"))); + } +} + +Y_UNIT_TEST(ServerWithCertVerification_ClientDoesNotProvideAnyCerts) { + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + TDriverConfig config; + config.SetEndpoint(location); + + const TString expectedError = "failed to connect to all addresses"; + CheckAccessDenied(RegisterNode(config), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT)), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), expectedError); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnforceUserToken = false, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + TDriverConfig config; + config.SetEndpoint(location); + + const TString expectedError = "failed to connect to all addresses"; + CheckAccessDenied(RegisterNode(config), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT)), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), expectedError); + } +} + +Y_UNIT_TEST(ServerWithCertVerification_ClientProvidesServerCerts) { + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey& serverCert = GenerateSignedCert(caCert, TProps::AsServer()); // client or client-server is allowed, not just server + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(serverCert.Certificate.c_str(),serverCert.PrivateKey.c_str()) + .SetEndpoint(location); + + const TString expectedError = "failed to connect to all addresses"; + CheckAccessDenied(RegisterNode(config), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT)), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), expectedError); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnforceUserToken = false, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(serverCert.Certificate.c_str(),serverCert.PrivateKey.c_str()) + .SetEndpoint(location); + + const TString expectedError = "failed to connect to all addresses"; + CheckAccessDenied(RegisterNode(config), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT)), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), expectedError); + } +} + +Y_UNIT_TEST(ServerWithCertVerification_ClientProvidesCorruptedCert) { + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + TCertAndKey clientServerCert = GenerateSignedCert(caCert, TProps::AsClientServer()); + if (clientServerCert.Certificate[50] != 'a') { + clientServerCert.Certificate[50] = 'a'; + } else { + clientServerCert.Certificate[50] = 'b'; + } + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(), clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + const TString expectedError = "empty address list"; + CheckAccessDenied(RegisterNode(config), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT)), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), expectedError); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnforceUserToken = false, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(), clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + const TString expectedError = "empty address list"; + CheckAccessDenied(RegisterNode(config), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT)), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), expectedError); + } +} + +Y_UNIT_TEST(ServerWithCertVerification_ClientProvidesCorruptedPrivatekey) { + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + TCertAndKey clientServerCert = GenerateSignedCert(caCert, TProps::AsClientServer()); + if (clientServerCert.PrivateKey[20] != 'a') { + clientServerCert.PrivateKey[20] = 'a'; + } else { + clientServerCert.Certificate[20] = 'b'; + } + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(), clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + const TString expectedError = "empty address list"; + CheckAccessDenied(RegisterNode(config), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT)), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), expectedError); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnforceUserToken = false, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(), clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + const TString expectedError = "empty address list"; + CheckAccessDenied(RegisterNode(config), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT)), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), expectedError); + } +} + +Y_UNIT_TEST(ServerWithCertVerification_ClientProvidesExpiredCert) { + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey clientServerCert = GenerateSignedCert(caCert, TProps::AsClientServer().WithValid(TDuration::Seconds(2))); + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + // wait until cert expires + Sleep(TDuration::Seconds(10)); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(), clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + const TString expectedError = "failed to connect to all addresses"; + CheckAccessDenied(RegisterNode(config), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT)), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), expectedError); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnforceUserToken = false, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + // wait until cert expires + Sleep(TDuration::Seconds(10)); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(), clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + const TString expectedError = "failed to connect to all addresses"; + CheckAccessDenied(RegisterNode(config), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT)), expectedError); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), expectedError); + } +} + +Y_UNIT_TEST(ServerWithOutCertVerification_ClientProvidesExpiredCert) { + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey clientServerCert = GenerateSignedCert(caCert, TProps::AsClientServer().WithValid(TDuration::Seconds(2))); + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + // wait until cert expires + Sleep(TDuration::Seconds(10)); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(), clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckAccessDenied(RegisterNode(config), "Access denied without user token"); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), "Could not find correct token validator"); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnforceUserToken = false, + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + // wait until cert expires + Sleep(TDuration::Seconds(10)); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .UseClientCertificate(clientServerCert.Certificate.c_str(), clientServerCert.PrivateKey.c_str()) + .SetEndpoint(location); + + CheckGood(RegisterNode(config)); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckGood(RegisterNode(config.SetAuthToken("wrong_token"))); + } +} + +Y_UNIT_TEST(ServerWithCertVerification_ClientDoesNotProvideClientCerts) { + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .SetEndpoint(location); + + CheckAccessDenied(RegisterNode(config), "Access denied without user token"); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), "Could not find correct token validator"); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnforceUserToken = false, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .SetEndpoint(location); + + CheckGood(RegisterNode(config)); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckGood(RegisterNode(config.SetAuthToken("wrong_token"))); + } +} + +Y_UNIT_TEST(ServerWithoutCertVerification_ClientDoesNotProvideClientCerts) { + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(server); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .SetEndpoint(location); + + CheckAccessDenied(RegisterNode(config), "Access denied without user token"); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckAccessDenied(RegisterNode(config.SetAuthToken("wrong_token")), "Could not find correct token validator"); + } + { + TKikimrServerForTestNodeRegistration serverDoesNotRequireToken({ + .EnforceUserToken = false, + }); + ui16 grpc = serverDoesNotRequireToken.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + SetLogPriority(serverDoesNotRequireToken); + + TDriverConfig config; + config.UseSecureConnection(caCert.Certificate.c_str()) + .SetEndpoint(location); + + CheckGood(RegisterNode(config)); + CheckGood(RegisterNode(config.SetAuthToken(BUILTIN_ACL_ROOT))); + CheckGood(RegisterNode(config.SetAuthToken("wrong_token"))); + } +} + +} + +namespace { + +NClient::TKikimr GetKikimr(const TString& addr, const TCertAndKey& caCert, const TCertAndKey& clientServerCert) { + NYdbGrpc::TGRpcClientConfig grpcConfig(addr, TDuration::Seconds(15)); + grpcConfig.EnableSsl = true; + grpcConfig.SslCredentials = {.pem_root_certs = caCert.Certificate.c_str(), + .pem_private_key = clientServerCert.PrivateKey.c_str(), + .pem_cert_chain = clientServerCert.Certificate.c_str()}; + grpcConfig.LoadBalancingPolicy = "round_robin"; + + return NClient::TKikimr(grpcConfig); +} + +THolder<NClient::TRegistrationResult> TryToRegisterDynamicNode( + NClient::TKikimr& kikimr, + const TString &domainName, + const TString &nodeHost, + const TString &nodeAddress, + const TString &nodeResolveHost, + ui16 interconnectPort) +{ + auto registrant = kikimr.GetNodeRegistrant(); + + NActorsInterconnect::TNodeLocation location; + location.SetDataCenter("DataCenter"); + location.SetRack("Rack"); + location.SetUnit("Body"); + TNodeLocation loc(location); + + NActorsInterconnect::TNodeLocation legacy; + legacy.SetDataCenterNum(DataCenterFromString("DataCenter")); + legacy.SetRoomNum(0); + legacy.SetRackNum(RackFromString("Rack")); + legacy.SetBodyNum(2); + loc.InheritLegacyValue(TNodeLocation(legacy)); + + return MakeHolder<NClient::TRegistrationResult> + (registrant.SyncRegisterNode(ToString(domainName), + nodeHost, + interconnectPort, + nodeAddress, + nodeResolveHost, + std::move(loc), + false)); +} + +} // namespace + +Y_UNIT_TEST_SUITE(TRegisterNodeOverLegacyService) { + +Y_UNIT_TEST(ServerWithCertVerification_ClientWithCorrectCerts) { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey clientServerCert = GenerateSignedCert(caCert, TProps::AsClientServer()); + + NClient::TKikimr kikimr = GetKikimr(location, caCert, clientServerCert); + + Cerr << "Trying to register node" << Endl; + + auto resp = TryToRegisterDynamicNode(kikimr, "Root", "localhost", "localhost", "localhost", GetRandomPort()); + UNIT_ASSERT_C(resp->IsSuccess(), resp->GetErrorMessage()); + + Cerr << "Register node result " << resp->Record().ShortUtf8DebugString() << Endl; +} + +Y_UNIT_TEST(ServerWithCertVerification_ClientWithCorrectCerts_AccessDenied) { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true, + .RegisterNodeAllowedSids = {BUILTIN_ACL_ROOT} + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey clientServerCert = GenerateSignedCert(caCert, TProps::AsClientServer()); + + NClient::TKikimr kikimr = GetKikimr(location, caCert, clientServerCert); + + Cerr << "Trying to register node" << Endl; + + auto resp = TryToRegisterDynamicNode(kikimr, "Root", "localhost", "localhost", "localhost", GetRandomPort()); + UNIT_ASSERT_C(!resp->IsSuccess(), resp->GetErrorMessage()); + UNIT_ASSERT_STRINGS_EQUAL(resp->GetErrorMessage(), "Cannot authorize node. Access denied"); + + Cerr << "Register node result " << resp->Record().ShortUtf8DebugString() << Endl; +} + +Y_UNIT_TEST(ServerWithCertVerification_ClientProvidesEmptyClientCerts) { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .SetNodeAuthValues = true + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey noCert; + + NClient::TKikimr kikimr = GetKikimr(location, caCert, noCert); + + Cerr << "Trying to register node" << Endl; + + auto resp = TryToRegisterDynamicNode(kikimr, "Root", "localhost", "localhost", "localhost", GetRandomPort()); + UNIT_ASSERT_C(resp->IsSuccess(), resp->GetErrorMessage()); + + Cerr << "Register node result " << resp->Record().ShortUtf8DebugString() << Endl; +} + +Y_UNIT_TEST(ServerWithoutCertVerification_ClientProvidesCorrectCerts) { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey clientServerCert = GenerateSignedCert(caCert, TProps::AsClientServer()); + + NClient::TKikimr kikimr = GetKikimr(location, caCert, clientServerCert); + + Cerr << "Trying to register node" << Endl; + + auto resp = TryToRegisterDynamicNode(kikimr, "Root", "localhost", "localhost", "localhost", GetRandomPort()); + UNIT_ASSERT_C(resp->IsSuccess(), resp->GetErrorMessage()); + + Cerr << "Register node result " << resp->Record().ShortUtf8DebugString() << Endl; +} + +Y_UNIT_TEST(ServerWithoutCertVerification_ClientProvidesEmptyClientCerts) { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey noCert; + + NClient::TKikimr kikimr = GetKikimr(location, caCert, noCert); + + Cerr << "Trying to register node" << Endl; + + auto resp = TryToRegisterDynamicNode(kikimr, "Root", "localhost", "localhost", "localhost", GetRandomPort()); + UNIT_ASSERT_C(resp->IsSuccess(), resp->GetErrorMessage()); + + Cerr << "Register node result " << resp->Record().ShortUtf8DebugString() << Endl; +} + +Y_UNIT_TEST(ServerWithCertVerification_ClientDoesNotProvideCorrectCerts) { + TKikimrServerForTestNodeRegistration server({ + .EnforceUserToken = true, + .EnableDynamicNodeAuth = true, + .EnableWrongIdentity = true, + .SetNodeAuthValues = true + }); + ui16 grpc = server.GetPort(); + TString location = TStringBuilder() << "localhost:" << grpc; + + const TCertAndKey& caCert = TKikimrTestWithServerCert::GetCACertAndKey(); + const TCertAndKey clientServerCert = GenerateSignedCert(caCert, TProps::AsClientServer()); + + NClient::TKikimr kikimr = GetKikimr(location, caCert, clientServerCert); + + Cerr << "Trying to register node" << Endl; + + auto resp = TryToRegisterDynamicNode(kikimr, "Root", "localhost", "localhost", "localhost", GetRandomPort()); + UNIT_ASSERT_C(!resp->IsSuccess(), resp->GetErrorMessage()); + UNIT_ASSERT_STRINGS_EQUAL(resp->GetErrorMessage(), "Cannot create token from certificate. Client certificate failed verification"); + + Cerr << "Register node result " << resp->Record().ShortUtf8DebugString() << Endl; +} + +} + +} // namespace NKikimr diff --git a/ydb/services/ydb/ydb_table.cpp b/ydb/services/ydb/ydb_table.cpp index 9324baf4d1c2..37067b16e358 100644 --- a/ydb/services/ydb/ydb_table.cpp +++ b/ydb/services/ydb/ydb_table.cpp @@ -40,63 +40,70 @@ void TGRpcYdbTableService::SetupIncomingRequests(NYdbGrpc::TLoggerPtr logger) { #error ADD_STREAM_REQUEST_LIMIT macro already defined #endif -#define ADD_REQUEST_LIMIT(NAME, CB, LIMIT_TYPE, ...) \ +#define ADD_REQUEST_LIMIT(NAME, CB, LIMIT_TYPE, REQUEST_TYPE, ...) \ for (size_t i = 0; i < HandlersPerCompletionQueue; ++i) { \ for (auto* cq: CQS) { \ MakeIntrusive<TGRpcRequest<Ydb::Table::NAME##Request, Ydb::Table::NAME##Response, TGRpcYdbTableService>> \ (this, &Service_, cq, \ - [this, proxyCounter](NYdbGrpc::IRequestContextBase *ctx) { \ + [this, proxyCounter](NYdbGrpc::IRequestContextBase *ctx) { \ NGRpcService::ReportGrpcReqToMon(*ActorSystem_, ctx->GetPeer()); \ ActorSystem_->Send(GRpcProxies_[proxyCounter % GRpcProxies_.size()], \ new TGrpcRequestOperationCall<Ydb::Table::NAME##Request, Ydb::Table::NAME##Response> \ - (ctx, &CB, TRequestAuxSettings{RLSWITCH(TRateLimiterMode::LIMIT_TYPE), nullptr __VA_OPT__(, TAuditMode::__VA_ARGS__)})); \ + (ctx, &CB, TRequestAuxSettings { \ + .RlMode = RLSWITCH(TRateLimiterMode::LIMIT_TYPE), \ + __VA_OPT__(.AuditMode = TAuditMode::__VA_ARGS__,) \ + .RequestType = NJaegerTracing::ERequestType::TABLE_##REQUEST_TYPE, \ + })); \ }, &Ydb::Table::V1::TableService::AsyncService::Request ## NAME, \ #NAME, logger, getCounterBlock("table", #NAME))->Run(); \ ++proxyCounter; \ } \ } -#define ADD_STREAM_REQUEST_LIMIT(NAME, IN, OUT, CB, LIMIT_TYPE) \ +#define ADD_STREAM_REQUEST_LIMIT(NAME, IN, OUT, CB, LIMIT_TYPE, REQUEST_TYPE) \ for (size_t i = 0; i < HandlersPerCompletionQueue; ++i) { \ for (auto* cq: CQS) { \ MakeIntrusive<TGRpcRequest<Ydb::Table::IN, Ydb::Table::OUT, TGRpcYdbTableService>> \ (this, &Service_, cq, \ - [this, proxyCounter](NYdbGrpc::IRequestContextBase *ctx) { \ + [this, proxyCounter](NYdbGrpc::IRequestContextBase *ctx) { \ NGRpcService::ReportGrpcReqToMon(*ActorSystem_, ctx->GetPeer()); \ ActorSystem_->Send(GRpcProxies_[proxyCounter % GRpcProxies_.size()], \ new TGrpcRequestNoOperationCall<Ydb::Table::IN, Ydb::Table::OUT> \ - (ctx, &CB, TRequestAuxSettings{RLSWITCH(TRateLimiterMode::LIMIT_TYPE), nullptr})); \ + (ctx, &CB, TRequestAuxSettings { \ + .RlMode = RLSWITCH(TRateLimiterMode::LIMIT_TYPE), \ + .RequestType = NJaegerTracing::ERequestType::TABLE_##REQUEST_TYPE, \ + })); \ }, &Ydb::Table::V1::TableService::AsyncService::Request ## NAME, \ #NAME, logger, getCounterBlock("table", #NAME))->Run(); \ ++proxyCounter; \ } \ } - ADD_REQUEST_LIMIT(CreateSession, DoCreateSessionRequest, Rps) - ADD_REQUEST_LIMIT(KeepAlive, DoKeepAliveRequest, Rps) - ADD_REQUEST_LIMIT(AlterTable, DoAlterTableRequest, Rps) - ADD_REQUEST_LIMIT(CreateTable, DoCreateTableRequest, Rps) - ADD_REQUEST_LIMIT(DropTable, DoDropTableRequest, Rps) - ADD_REQUEST_LIMIT(DescribeTable, DoDescribeTableRequest, Rps) - ADD_REQUEST_LIMIT(CopyTable, DoCopyTableRequest, Rps) - ADD_REQUEST_LIMIT(CopyTables, DoCopyTablesRequest, Rps) - ADD_REQUEST_LIMIT(RenameTables, DoRenameTablesRequest, Rps) - ADD_REQUEST_LIMIT(ExplainDataQuery, DoExplainDataQueryRequest, Rps) - ADD_REQUEST_LIMIT(ExecuteSchemeQuery, DoExecuteSchemeQueryRequest, Rps) - ADD_REQUEST_LIMIT(BeginTransaction, DoBeginTransactionRequest, Rps, Auditable) - ADD_REQUEST_LIMIT(DescribeTableOptions, DoDescribeTableOptionsRequest, Rps) - - ADD_REQUEST_LIMIT(DeleteSession, DoDeleteSessionRequest, Off) - ADD_REQUEST_LIMIT(CommitTransaction, DoCommitTransactionRequest, Off, Auditable) - ADD_REQUEST_LIMIT(RollbackTransaction, DoRollbackTransactionRequest, Off, Auditable) - - ADD_REQUEST_LIMIT(PrepareDataQuery, DoPrepareDataQueryRequest, Ru, Auditable) - ADD_REQUEST_LIMIT(ExecuteDataQuery, DoExecuteDataQueryRequest, Ru, Auditable) - ADD_REQUEST_LIMIT(BulkUpsert, DoBulkUpsertRequest, Ru, Auditable) - - ADD_STREAM_REQUEST_LIMIT(StreamExecuteScanQuery, ExecuteScanQueryRequest, ExecuteScanQueryPartialResponse, DoExecuteScanQueryRequest, RuOnProgress) - ADD_STREAM_REQUEST_LIMIT(StreamReadTable, ReadTableRequest, ReadTableResponse, DoReadTableRequest, RuOnProgress) - ADD_STREAM_REQUEST_LIMIT(ReadRows, ReadRowsRequest, ReadRowsResponse, DoReadRowsRequest, Ru) + ADD_REQUEST_LIMIT(CreateSession, DoCreateSessionRequest, Rps, CREATESESSION) + ADD_REQUEST_LIMIT(KeepAlive, DoKeepAliveRequest, Rps, KEEPALIVE) + ADD_REQUEST_LIMIT(AlterTable, DoAlterTableRequest, Rps, ALTERTABLE) + ADD_REQUEST_LIMIT(CreateTable, DoCreateTableRequest, Rps, CREATETABLE) + ADD_REQUEST_LIMIT(DropTable, DoDropTableRequest, Rps, DROPTABLE) + ADD_REQUEST_LIMIT(DescribeTable, DoDescribeTableRequest, Rps, DESCRIBETABLE) + ADD_REQUEST_LIMIT(CopyTable, DoCopyTableRequest, Rps, COPYTABLE) + ADD_REQUEST_LIMIT(CopyTables, DoCopyTablesRequest, Rps, COPYTABLES) + ADD_REQUEST_LIMIT(RenameTables, DoRenameTablesRequest, Rps, RENAMETABLES) + ADD_REQUEST_LIMIT(ExplainDataQuery, DoExplainDataQueryRequest, Rps, EXPLAINDATAQUERY) + ADD_REQUEST_LIMIT(ExecuteSchemeQuery, DoExecuteSchemeQueryRequest, Rps, EXECUTESCHEMEQUERY) + ADD_REQUEST_LIMIT(BeginTransaction, DoBeginTransactionRequest, Rps, BEGINTRANSACTION, Auditable) + ADD_REQUEST_LIMIT(DescribeTableOptions, DoDescribeTableOptionsRequest, Rps, DESCRIBETABLEOPTIONS) + + ADD_REQUEST_LIMIT(DeleteSession, DoDeleteSessionRequest, Off, DELETESESSION) + ADD_REQUEST_LIMIT(CommitTransaction, DoCommitTransactionRequest, Off, COMMITTRANSACTION, Auditable) + ADD_REQUEST_LIMIT(RollbackTransaction, DoRollbackTransactionRequest, Off, ROLLBACKTRANSACTION, Auditable) + + ADD_REQUEST_LIMIT(PrepareDataQuery, DoPrepareDataQueryRequest, Ru, PREPAREDATAQUERY, Auditable) + ADD_REQUEST_LIMIT(ExecuteDataQuery, DoExecuteDataQueryRequest, Ru, EXECUTEDATAQUERY, Auditable) + ADD_REQUEST_LIMIT(BulkUpsert, DoBulkUpsertRequest, Ru, BULKUPSERT, Auditable) + + ADD_STREAM_REQUEST_LIMIT(StreamExecuteScanQuery, ExecuteScanQueryRequest, ExecuteScanQueryPartialResponse, DoExecuteScanQueryRequest, RuOnProgress, STREAMEXECUTESCANQUERY) + ADD_STREAM_REQUEST_LIMIT(StreamReadTable, ReadTableRequest, ReadTableResponse, DoReadTableRequest, RuOnProgress, STREAMREADTABLE) + ADD_STREAM_REQUEST_LIMIT(ReadRows, ReadRowsRequest, ReadRowsResponse, DoReadRowsRequest, Ru, READROWS) #undef ADD_REQUEST_LIMIT #undef ADD_STREAM_REQUEST_LIMIT diff --git a/ydb/services/ydb/ydb_table_ut.cpp b/ydb/services/ydb/ydb_table_ut.cpp index 2316c15a99f3..17a4b17f9b2e 100644 --- a/ydb/services/ydb/ydb_table_ut.cpp +++ b/ydb/services/ydb/ydb_table_ut.cpp @@ -1521,6 +1521,238 @@ R"___(<main>: Error: Transaction not found: , code: 2015 } } + Y_UNIT_TEST(TestReadTableNotNullBorder) { + TKikimrWithGrpcAndRootSchema server; + ui16 grpc = server.GetPort(); + + TString location = TStringBuilder() << "localhost:" << grpc; + + auto connection = NYdb::TDriver( + TDriverConfig() + .SetEndpoint(location)); + NYdb::NTable::TTableClient client(connection); + auto session = client.CreateSession().ExtractValueSync().GetSession(); + + auto result = session.ExecuteSchemeQuery(R"___( + CREATE TABLE `Root/Test` ( + Key Uint64 NOT NULL, + Value String, + Amount Decimal(22,9) NOT NULL, + PRIMARY KEY (Key) + ); + )___").ExtractValueSync(); + UNIT_ASSERT_EQUAL(result.GetStatus(), EStatus::SUCCESS); + + result = session.ExecuteDataQuery(R"___( + UPSERT INTO `Root/Test` (Key, Value, Amount) VALUES (0u, "Zero", UNWRAP(CAST("0.11" AS Decimal(22, 9)))); + UPSERT INTO `Root/Test` (Key, Value, Amount) VALUES (1u, "One", UNWRAP(CAST("1.11" AS Decimal(22, 9)))); + )___", TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx()).ExtractValueSync(); + UNIT_ASSERT_EQUAL(result.GetStatus(), EStatus::SUCCESS); + + { + TValueBuilder valueFrom; + valueFrom.BeginTuple() + .AddElement() + .Uint64(1) + .EndTuple(); + + auto settings = TReadTableSettings() + .Ordered() + .From(TKeyBound::Inclusive(valueFrom.Build())); + + auto it = session.ReadTable("Root/Test", settings).ExtractValueSync(); + + TReadTableResultPart streamPart = it.ReadNext().GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL(streamPart.GetStatus(), EStatus::SUCCESS); + + auto str = NYdb::FormatResultSetYson(streamPart.ExtractPart()); + UNIT_ASSERT_VALUES_EQUAL(str, "[[[1u];[\"One\"];[\"1.11\"]]]"); + } + + { + TValueBuilder valueFrom; + valueFrom.BeginTuple() + .AddElement() + .Uint64(1) + .EndTuple(); + + auto settings = TReadTableSettings() + .Ordered() + .ReturnNotNullAsOptional(false) + .From(TKeyBound::Inclusive(valueFrom.Build())); + + auto it = session.ReadTable("Root/Test", settings).ExtractValueSync(); + + TReadTableResultPart streamPart = it.ReadNext().GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL(streamPart.GetStatus(), EStatus::SUCCESS); + + auto str = NYdb::FormatResultSetYson(streamPart.ExtractPart()); + UNIT_ASSERT_VALUES_EQUAL(str, "[[1u;[\"One\"];\"1.11\"]]"); + } + + { + // Allow to use Optional values for NOT NULL columns + TValueBuilder valueFrom; + valueFrom.BeginTuple() + .AddElement() + .OptionalUint64(1) + .EndTuple(); + + auto settings = TReadTableSettings() + .Ordered() + .From(TKeyBound::Inclusive(valueFrom.Build())); + + auto it = session.ReadTable("Root/Test", settings).ExtractValueSync(); + + TReadTableResultPart streamPart = it.ReadNext().GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(streamPart.GetStatus(), EStatus::SUCCESS, streamPart.GetIssues().ToString()); + + auto str = NYdb::FormatResultSetYson(streamPart.ExtractPart()); + UNIT_ASSERT_VALUES_EQUAL(str, "[[[1u];[\"One\"];[\"1.11\"]]]"); + } + + { + // Allow to use Optional values for NOT NULL columns + TValueBuilder valueFrom; + valueFrom.BeginTuple() + .AddElement() + .OptionalUint64(1) + .EndTuple(); + + auto settings = TReadTableSettings() + .Ordered() + .From(TKeyBound::Inclusive(valueFrom.Build())); + + auto it = session.ReadTable("Root/Test", settings).ExtractValueSync(); + + TReadTableResultPart streamPart = it.ReadNext().GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(streamPart.GetStatus(), EStatus::SUCCESS, streamPart.GetIssues().ToString()); + + auto str = NYdb::FormatResultSetYson(streamPart.ExtractPart()); + UNIT_ASSERT_VALUES_EQUAL(str, "[[[1u];[\"One\"];[\"1.11\"]]]"); + } + + { + // Allow to use Optional values for NOT NULL columns + TValueBuilder valueFrom; + valueFrom.BeginTuple() + .AddElement() + .OptionalUint64(Nothing()) + .EndTuple(); + + auto settings = TReadTableSettings() + .Ordered() + .From(TKeyBound::Inclusive(valueFrom.Build())); + + auto it = session.ReadTable("Root/Test", settings).ExtractValueSync(); + + TReadTableResultPart streamPart = it.ReadNext().GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL_C(streamPart.GetStatus(), EStatus::SUCCESS, streamPart.GetIssues().ToString()); + + auto str = NYdb::FormatResultSetYson(streamPart.ExtractPart()); + UNIT_ASSERT_VALUES_EQUAL(str, "[[[0u];[\"Zero\"];[\"0.11\"]];[[1u];[\"One\"];[\"1.11\"]]]"); + } + + { + TValueBuilder valueFrom; + valueFrom.BeginTuple() + .AddElement() + .Uint64(1) + .EndTuple(); + + auto settings = TReadTableSettings() + .Ordered() + .From(TKeyBound::Exclusive(valueFrom.Build())); + + auto it = session.ReadTable("Root/Test", settings).ExtractValueSync(); + + TReadTableResultPart streamPart = it.ReadNext().GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL(streamPart.GetStatus(), EStatus::SUCCESS); + + auto str = NYdb::FormatResultSetYson(streamPart.ExtractPart()); + UNIT_ASSERT_VALUES_EQUAL(str, "[]"); + } + + { + TValueBuilder valueFrom; + valueFrom.BeginTuple() + .AddElement() + .Uint64(1) + .EndTuple(); + + auto settings = TReadTableSettings() + .Ordered() + .ReturnNotNullAsOptional(false) + .From(TKeyBound::Exclusive(valueFrom.Build())); + + auto it = session.ReadTable("Root/Test", settings).ExtractValueSync(); + + TReadTableResultPart streamPart = it.ReadNext().GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL(streamPart.GetStatus(), EStatus::SUCCESS); + + auto str = NYdb::FormatResultSetYson(streamPart.ExtractPart()); + UNIT_ASSERT_VALUES_EQUAL(str, "[]"); + } + } + + // Same but use reverce order of column in tuple + Y_UNIT_TEST(TestReadTableNotNullBorder2) { + TKikimrWithGrpcAndRootSchema server; + ui16 grpc = server.GetPort(); + + TString location = TStringBuilder() << "localhost:" << grpc; + + auto connection = NYdb::TDriver( + TDriverConfig() + .SetEndpoint(location)); + NYdb::NTable::TTableClient client(connection); + auto session = client.CreateSession().ExtractValueSync().GetSession(); + + auto result = session.ExecuteSchemeQuery(R"___( + CREATE TABLE `Root/Test` ( + aaa String, + zzz Uint64 NOT NULL, + PRIMARY KEY (zzz) + ); + )___").ExtractValueSync(); + UNIT_ASSERT_EQUAL(result.GetStatus(), EStatus::SUCCESS); + + result = session.ExecuteDataQuery(R"___( + UPSERT INTO `Root/Test` (zzz, aaa) VALUES (1u, "One"); + )___", TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx()).ExtractValueSync(); + UNIT_ASSERT_EQUAL(result.GetStatus(), EStatus::SUCCESS); + + { + auto selectResult = session.ExecuteDataQuery(R"( + SELECT zzz, aaa FROM `Root/Test`; + )", TTxControl::BeginTx(TTxSettings::SerializableRW()).CommitTx()).ExtractValueSync(); + + UNIT_ASSERT_EQUAL(selectResult.GetStatus(), EStatus::SUCCESS); + auto text = FormatResultSetYson(selectResult.GetResultSet(0)); + UNIT_ASSERT_VALUES_EQUAL("[[1u;[\"One\"]]]", text); + } + + { + TValueBuilder valueFrom; + valueFrom.BeginTuple() + .AddElement() + .Uint64(1) + .EndTuple(); + + auto settings = TReadTableSettings() + .Ordered() + .From(TKeyBound::Inclusive(valueFrom.Build())); + + auto it = session.ReadTable("Root/Test", settings).ExtractValueSync(); + + TReadTableResultPart streamPart = it.ReadNext().GetValueSync(); + UNIT_ASSERT_VALUES_EQUAL(streamPart.GetStatus(), EStatus::SUCCESS); + + auto str = NYdb::FormatResultSetYson(streamPart.ExtractPart()); + UNIT_ASSERT_VALUES_EQUAL(str, "[[[\"One\"];[1u]]]"); + } + } + enum class EReadTableMultiShardMode { Normal, UseSnapshot, diff --git a/ydb/services/ydb/ydb_ut.cpp b/ydb/services/ydb/ydb_ut.cpp index cd3fc0dd6fed..a70a8f8488bf 100644 --- a/ydb/services/ydb/ydb_ut.cpp +++ b/ydb/services/ydb/ydb_ut.cpp @@ -1262,7 +1262,6 @@ columns { } } } - not_null: false } columns { name: "Value" @@ -1273,7 +1272,6 @@ columns { } } } - not_null: false } primary_key: "Key" partitioning_settings { @@ -1601,7 +1599,6 @@ columns { } } } - not_null: false } columns { name: "IValue" @@ -1612,7 +1609,6 @@ columns { } } } - not_null: false } primary_key: "Key" indexes { diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_bool.sql-plan_/pk_predicate_pk_predicate_bool.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_bool.sql-plan_/pk_predicate_pk_predicate_bool.sql.plan index 2e90591dc305..0e2fc1666096 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_bool.sql-plan_/pk_predicate_pk_predicate_bool.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_bool.sql-plan_/pk_predicate_pk_predicate_bool.sql.plan @@ -7,6 +7,19 @@ { "name": "/local/base_pk_predicate_pk_predicate_bool_sql_plan/Input4", "reads": [ + { + "columns": [ + "Value" + ], + "limit": "1001", + "scan_by": [ + "Key1 [false, false]", + "Key2 [true, true]", + "Key1 [true, true]", + "Key2 [false, false]" + ], + "type": "Scan" + }, { "columns": [ "Value" @@ -32,12 +45,6 @@ "Key2 (null, true)" ], "type": "Scan" - }, - { - "columns": [ - "Value" - ], - "type": "Lookup" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_dependent.sql-plan_/pk_predicate_pk_predicate_dependent.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_dependent.sql-plan_/pk_predicate_pk_predicate_dependent.sql.plan index 20d68d9abb57..c917ac54fb0b 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_dependent.sql-plan_/pk_predicate_pk_predicate_dependent.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_dependent.sql-plan_/pk_predicate_pk_predicate_dependent.sql.plan @@ -14,7 +14,8 @@ "Group", "Name" ], - "type": "Lookup" + "limit": "1001", + "type": "Scan" } ] }, diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_equi_multi_rp.sql-plan_/pk_predicate_pk_predicate_equi_multi_rp.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_equi_multi_rp.sql-plan_/pk_predicate_pk_predicate_equi_multi_rp.sql.plan index 8630c3197bd2..ae37c577fefd 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_equi_multi_rp.sql-plan_/pk_predicate_pk_predicate_equi_multi_rp.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_equi_multi_rp.sql-plan_/pk_predicate_pk_predicate_equi_multi_rp.sql.plan @@ -14,7 +14,13 @@ "Group", "Name" ], - "type": "Lookup" + "scan_by": [ + "Group [1, 1]", + "Name [Name1, Name1]", + "Group [4, 4]", + "Name [Name4, Name4]" + ], + "type": "Scan" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_equi_multi_rp_1.sql-plan_/pk_predicate_pk_predicate_equi_multi_rp_1.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_equi_multi_rp_1.sql-plan_/pk_predicate_pk_predicate_equi_multi_rp_1.sql.plan index 99d5ddfc731a..abe86d3d8ec2 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_equi_multi_rp_1.sql-plan_/pk_predicate_pk_predicate_equi_multi_rp_1.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_equi_multi_rp_1.sql-plan_/pk_predicate_pk_predicate_equi_multi_rp_1.sql.plan @@ -14,7 +14,15 @@ "Group", "Name" ], - "type": "Lookup" + "scan_by": [ + "Group [1, 1]", + "Name [Name1, Name1]", + "Group [4, 4]", + "Name [Name4, Name4]", + "Group [6, 6]", + "Name [Name2, Name2]" + ], + "type": "Scan" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_in.sql-plan_/pk_predicate_pk_predicate_in.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_in.sql-plan_/pk_predicate_pk_predicate_in.sql.plan index 8800e380e74f..aa77245cbddc 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_in.sql-plan_/pk_predicate_pk_predicate_in.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_in.sql-plan_/pk_predicate_pk_predicate_in.sql.plan @@ -13,7 +13,15 @@ "Value1", "Value2" ], - "type": "Lookup" + "limit": "1001", + "scan_by": [ + "Key [1, 1]", + "Key [3, 3]", + "Key [7, 7]", + "Key [9, 9]", + "Key [11, 11]" + ], + "type": "Scan" } ] } diff --git a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_in_rp.sql-plan_/pk_predicate_pk_predicate_in_rp.sql.plan b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_in_rp.sql-plan_/pk_predicate_pk_predicate_in_rp.sql.plan index 27f04a14075d..67605c614ec1 100644 --- a/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_in_rp.sql-plan_/pk_predicate_pk_predicate_in_rp.sql.plan +++ b/ydb/tests/functional/canonical/canondata/test_sql.TestCanonicalFolder1.test_case_pk_predicate_pk_predicate_in_rp.sql-plan_/pk_predicate_pk_predicate_in_rp.sql.plan @@ -13,7 +13,12 @@ "Value1", "Value2" ], - "type": "Lookup" + "scan_by": [ + "Key [1, 1]", + "Key [3, 3]", + "Key [5, 5]" + ], + "type": "Scan" } ] } 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 0b67e9ca81bc..4eceb750868b 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 @@ -121,6 +121,89 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": null, + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "GroupBy": { + "Aggregates": [ + { + "Column": { + "Id": 106 + }, + "Function": { + "Id": 2 + } + } + ] + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 106 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 764e1b46f706..65688d39bcba 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 @@ -105,7 +105,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -159,6 +160,128 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Int32": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 41 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "GroupBy": { + "Aggregates": [ + { + "Column": { + "Id": 108 + }, + "Function": { + "Id": 2 + } + } + ] + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 108 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 0ffd1a2ec833..9f33d02c188c 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 @@ -137,7 +137,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -190,6 +191,146 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: Inc(state._yql_agg_0)}", + "GroupBy": "item.MobilePhoneModel", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "MobilePhoneModel", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 35 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 35 + }, + { + "Id": 10 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 9 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 f2e4dbd35814..5a7e23644bd9 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 @@ -140,7 +140,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -196,6 +197,150 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: Inc(state._yql_agg_0)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "MobilePhone", + "MobilePhoneModel", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 35 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 34 + }, + { + "Id": 35 + }, + { + "Id": 10 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 9 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 81b5d4e191e2..52260ffa6573 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 @@ -111,7 +111,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -157,6 +158,129 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.SearchPhrase", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 40 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 40 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 b6ec7103da35..a6e7d891a6c4 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 @@ -137,7 +137,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -190,6 +191,146 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: Inc(state._yql_agg_0)}", + "GroupBy": "item.SearchPhrase", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 40 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 40 + }, + { + "Id": 10 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 9 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 da4229ffa66f..8a33167f74fa 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 @@ -113,7 +113,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -162,6 +163,133 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchEngineID", + "SearchPhrase" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 40 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 39 + }, + { + "Id": 40 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 6c67a5701a18..bc0e96d7a83a 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 @@ -121,6 +121,92 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.UserID", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Projection": { + "Columns": [ + { + "Id": 10 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 586eef700395..628fd15e1cff 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 @@ -126,6 +126,96 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Projection": { + "Columns": [ + { + "Id": 40 + }, + { + "Id": 10 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 9bc0c3c3ba33..ab3fea86d54e 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 @@ -122,6 +122,95 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Projection": { + "Columns": [ + { + "Id": 40 + }, + { + "Id": 10 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 ba67374831bf..456455447ec9 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 @@ -131,6 +131,100 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "EventTime", + "SearchPhrase", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Projection": { + "Columns": [ + { + "Id": 5 + }, + { + "Id": 40 + }, + { + "Id": 10 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 b80b9480bc63..b22a43b135ff 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 @@ -87,7 +87,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 11 } } }, @@ -126,6 +127,116 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1001", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1001", + "Name": "Limit" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "UserID" + ], + "ReadLimit": "1001", + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Int64": 435090932899640449 + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 10 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 11 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 10 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 5 + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 2154f5e92c70..2b7f77641b38 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 @@ -16,12 +16,21 @@ "Plans": [ { "CTE Name": "precompute_0_0", - "Node Type": "ConstantExpr", + "Node Type": "ConstantExpr-ConstantExpr", "Operators": [ { - "Inputs": [], + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], "Iterator": "precompute_0_0", "Name": "Iterator" + }, + { + "Inputs": [], + "Member": "precompute_0_0", + "Name": "Member" } ], "PlanNodeId": 6 @@ -172,6 +181,260 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID", + "ResolutionWidth" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "GroupBy": { + "Aggregates": [ + { + "Column": { + "Id": 106 + }, + "Function": { + "Arguments": [ + { + "Id": 21 + } + ], + "Id": 5 + } + }, + { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 21 + } + ], + "Id": 2 + } + }, + { + "Column": { + "Id": 108 + }, + "Function": { + "Id": 2 + } + }, + { + "Column": { + "Id": 109 + }, + "Function": { + "Arguments": [ + { + "Id": 41 + } + ], + "Id": 5 + } + } + ] + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 107 + }, + { + "Id": 106 + }, + { + "Id": 108 + }, + { + "Id": 109 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + }, + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 10, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 11, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID", + "ResolutionWidth" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "GroupBy": { + "Aggregates": [ + { + "Column": { + "Id": 106 + }, + "Function": { + "Arguments": [ + { + "Id": 21 + } + ], + "Id": 5 + } + }, + { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 21 + } + ], + "Id": 2 + } + }, + { + "Column": { + "Id": 108 + }, + "Function": { + "Id": 2 + } + }, + { + "Column": { + "Id": 109 + }, + "Function": { + "Arguments": [ + { + "Id": 41 + } + ], + "Id": 5 + } + } + ] + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 107 + }, + { + "Id": 106 + }, + { + "Id": 108 + }, + { + "Id": 109 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 13 + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 8dc1e19f8a34..ad9f9f48b03e 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 @@ -105,7 +105,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 10 } } }, @@ -159,6 +160,128 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "URL" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "google" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 14 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 10 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "GroupBy": { + "Aggregates": [ + { + "Column": { + "Id": 108 + }, + "Function": { + "Id": 2 + } + } + ] + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 108 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 602516439293..203b0afaf361 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 @@ -112,7 +112,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -151,7 +152,8 @@ } ], "FunctionType": 2, - "KernelIdx": 1 + "KernelIdx": 1, + "YqlOperationId": 10 } } }, @@ -200,6 +202,173 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1),_yql_agg_1: MIN(item.URL,state._yql_agg_1)}", + "GroupBy": "item.SearchPhrase", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase", + "URL" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 40 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": {} + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Constant": { + "Bytes": "google" + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, + "Function": { + "Arguments": [ + { + "Id": 14 + }, + { + "Id": 108 + } + ], + "FunctionType": 2, + "KernelIdx": 1, + "YqlOperationId": 10 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 109 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 40 + }, + { + "Id": 14 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 a46a508f1624..f4b956138363 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 @@ -136,7 +136,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -175,7 +176,8 @@ } ], "FunctionType": 2, - "KernelIdx": 1 + "KernelIdx": 1, + "YqlOperationId": 10 } } }, @@ -204,7 +206,8 @@ } ], "FunctionType": 2, - "KernelIdx": 2 + "KernelIdx": 2, + "YqlOperationId": 10 } } }, @@ -239,7 +242,8 @@ } ], "FunctionType": 2, - "KernelIdx": 4 + "KernelIdx": 4, + "YqlOperationId": 0 } } }, @@ -370,7 +374,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -409,7 +414,8 @@ } ], "FunctionType": 2, - "KernelIdx": 1 + "KernelIdx": 1, + "YqlOperationId": 10 } } }, @@ -438,7 +444,8 @@ } ], "FunctionType": 2, - "KernelIdx": 2 + "KernelIdx": 2, + "YqlOperationId": 10 } } }, @@ -473,7 +480,8 @@ } ], "FunctionType": 2, - "KernelIdx": 4 + "KernelIdx": 4, + "YqlOperationId": 0 } } }, @@ -536,6 +544,473 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Union", + "Operators": [ + { + "Name": "Union" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1),_yql_agg_2: MIN(item.URL,state._yql_agg_2),_yql_agg_3: MIN(item.Title,state._yql_agg_3)}", + "GroupBy": "item.SearchPhrase", + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase", + "Title", + "URL", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 40 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": {} + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Constant": { + "Bytes": "Google" + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, + "Function": { + "Arguments": [ + { + "Id": 3 + }, + { + "Id": 108 + } + ], + "FunctionType": 2, + "KernelIdx": 1, + "YqlOperationId": 10 + } + } + }, + { + "Assign": { + "Column": { + "Id": 110 + }, + "Constant": { + "Bytes": ".google." + } + } + }, + { + "Assign": { + "Column": { + "Id": 111 + }, + "Function": { + "Arguments": [ + { + "Id": 14 + }, + { + "Id": 110 + } + ], + "FunctionType": 2, + "KernelIdx": 2, + "YqlOperationId": 10 + } + } + }, + { + "Assign": { + "Column": { + "Id": 112 + }, + "Function": { + "Arguments": [ + { + "Id": 111 + } + ], + "FunctionType": 2, + "KernelIdx": 3 + } + } + }, + { + "Assign": { + "Column": { + "Id": 113 + }, + "Function": { + "Arguments": [ + { + "Id": 109 + }, + { + "Id": 112 + } + ], + "FunctionType": 2, + "KernelIdx": 4, + "YqlOperationId": 0 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 113 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 40 + }, + { + "Id": 3 + }, + { + "Id": 14 + }, + { + "Id": 10 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 9 + } + ] + }, + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_1: Inc(state._yql_agg_1)}", + "GroupBy": "item.SearchPhrase", + "Name": "Aggregate" + } + ], + "PlanNodeId": 11, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 13, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase", + "Title", + "URL", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 40 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": {} + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Constant": { + "Bytes": "Google" + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, + "Function": { + "Arguments": [ + { + "Id": 3 + }, + { + "Id": 108 + } + ], + "FunctionType": 2, + "KernelIdx": 1, + "YqlOperationId": 10 + } + } + }, + { + "Assign": { + "Column": { + "Id": 110 + }, + "Constant": { + "Bytes": ".google." + } + } + }, + { + "Assign": { + "Column": { + "Id": 111 + }, + "Function": { + "Arguments": [ + { + "Id": 14 + }, + { + "Id": 110 + } + ], + "FunctionType": 2, + "KernelIdx": 2, + "YqlOperationId": 10 + } + } + }, + { + "Assign": { + "Column": { + "Id": 112 + }, + "Function": { + "Arguments": [ + { + "Id": 111 + } + ], + "FunctionType": 2, + "KernelIdx": 3 + } + } + }, + { + "Assign": { + "Column": { + "Id": 113 + }, + "Function": { + "Arguments": [ + { + "Id": 109 + }, + { + "Id": 112 + } + ], + "FunctionType": 2, + "KernelIdx": 4, + "YqlOperationId": 0 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 113 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 40 + }, + { + "Id": 3 + }, + { + "Id": 14 + }, + { + "Id": 10 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 14 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 d357d2739fb8..69acb20b12ce 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 @@ -192,7 +192,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 10 } } }, @@ -546,6 +547,533 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "$4.EventTime" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID", + "Age", + "BrowserCountry", + "BrowserLanguage", + "CLID", + "ClientEventTime", + "ClientIP", + "ClientTimeZone", + "CodeVersion", + "ConnectTiming", + "CookieEnable", + "CounterClass", + "CounterID", + "DNSTiming", + "DontCountHits", + "EventDate", + "EventTime", + "FUniqID", + "FetchTiming", + "FlashMajor", + "FlashMinor", + "FlashMinor2", + "FromTag", + "GoodEvent", + "HID", + "HTTPError", + "HasGCLID", + "HistoryLength", + "HitColor", + "IPNetworkID", + "Income", + "Interests", + "IsArtifical", + "IsDownload", + "IsEvent", + "IsLink", + "IsMobile", + "IsNotBounce", + "IsOldCounter", + "IsParameter", + "IsRefresh", + "JavaEnable", + "JavascriptEnable", + "LocalEventTime", + "MobilePhone", + "MobilePhoneModel", + "NetMajor", + "NetMinor", + "OS", + "OpenerName", + "OpenstatAdID", + "OpenstatCampaignID", + "OpenstatServiceName", + "OpenstatSourceID", + "OriginalURL", + "PageCharset", + "ParamCurrency", + "ParamCurrencyID", + "ParamOrderID", + "ParamPrice", + "Params", + "Referer", + "RefererCategoryID", + "RefererHash", + "RefererRegionID", + "RegionID", + "RemoteIP", + "ResolutionDepth", + "ResolutionHeight", + "ResolutionWidth", + "ResponseEndTiming", + "ResponseStartTiming", + "Robotness", + "SearchEngineID", + "SearchPhrase", + "SendTiming", + "Sex", + "SilverlightVersion1", + "SilverlightVersion2", + "SilverlightVersion3", + "SilverlightVersion4", + "SocialAction", + "SocialNetwork", + "SocialSourceNetworkID", + "SocialSourcePage", + "Title", + "TraficSourceID", + "URL", + "URLCategoryID", + "URLHash", + "URLRegionID", + "UTMCampaign", + "UTMContent", + "UTMMedium", + "UTMSource", + "UTMTerm", + "UserAgent", + "UserAgentMajor", + "UserAgentMinor", + "UserID", + "WatchID", + "WindowClientHeight", + "WindowClientWidth", + "WindowName", + "WithHash" + ], + "ReadLimit": "10", + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "google" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 14 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 10 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 41 + }, + { + "Id": 66 + }, + { + "Id": 76 + }, + { + "Id": 75 + }, + { + "Id": 105 + }, + { + "Id": 46 + }, + { + "Id": 8 + }, + { + "Id": 45 + }, + { + "Id": 52 + }, + { + "Id": 82 + }, + { + "Id": 31 + }, + { + "Id": 11 + }, + { + "Id": 7 + }, + { + "Id": 81 + }, + { + "Id": 62 + }, + { + "Id": 6 + }, + { + "Id": 5 + }, + { + "Id": 56 + }, + { + "Id": 85 + }, + { + "Id": 24 + }, + { + "Id": 25 + }, + { + "Id": 26 + }, + { + "Id": 101 + }, + { + "Id": 4 + }, + { + "Id": 58 + }, + { + "Id": 79 + }, + { + "Id": 102 + }, + { + "Id": 74 + }, + { + "Id": 64 + }, + { + "Id": 37 + }, + { + "Id": 68 + }, + { + "Id": 69 + }, + { + "Id": 42 + }, + { + "Id": 54 + }, + { + "Id": 60 + }, + { + "Id": 53 + }, + { + "Id": 33 + }, + { + "Id": 55 + }, + { + "Id": 59 + }, + { + "Id": 61 + }, + { + "Id": 16 + }, + { + "Id": 2 + }, + { + "Id": 32 + }, + { + "Id": 65 + }, + { + "Id": 34 + }, + { + "Id": 35 + }, + { + "Id": 27 + }, + { + "Id": 28 + }, + { + "Id": 12 + }, + { + "Id": 73 + }, + { + "Id": 94 + }, + { + "Id": 93 + }, + { + "Id": 92 + }, + { + "Id": 95 + }, + { + "Id": 57 + }, + { + "Id": 51 + }, + { + "Id": 90 + }, + { + "Id": 91 + }, + { + "Id": 89 + }, + { + "Id": 88 + }, + { + "Id": 36 + }, + { + "Id": 15 + }, + { + "Id": 17 + }, + { + "Id": 103 + }, + { + "Id": 18 + }, + { + "Id": 9 + }, + { + "Id": 71 + }, + { + "Id": 23 + }, + { + "Id": 22 + }, + { + "Id": 21 + }, + { + "Id": 84 + }, + { + "Id": 83 + }, + { + "Id": 70 + }, + { + "Id": 39 + }, + { + "Id": 40 + }, + { + "Id": 80 + }, + { + "Id": 67 + }, + { + "Id": 47 + }, + { + "Id": 48 + }, + { + "Id": 49 + }, + { + "Id": 50 + }, + { + "Id": 78 + }, + { + "Id": 77 + }, + { + "Id": 86 + }, + { + "Id": 87 + }, + { + "Id": 3 + }, + { + "Id": 38 + }, + { + "Id": 14 + }, + { + "Id": 19 + }, + { + "Id": 104 + }, + { + "Id": 20 + }, + { + "Id": 98 + }, + { + "Id": 99 + }, + { + "Id": 97 + }, + { + "Id": 96 + }, + { + "Id": 100 + }, + { + "Id": 13 + }, + { + "Id": 29 + }, + { + "Id": 30 + }, + { + "Id": 10 + }, + { + "Id": 1 + }, + { + "Id": 44 + }, + { + "Id": 43 + }, + { + "Id": 72 + }, + { + "Id": 63 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 5 + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 efd72a470d02..8fa719271a8b 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 @@ -89,7 +89,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -134,6 +135,121 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "$4.EventTime" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "EventTime", + "SearchPhrase" + ], + "ReadLimit": "10", + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 40 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 5 + }, + { + "Id": 40 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 5 + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 5252f85c9b41..09bca56e623d 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 @@ -87,7 +87,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -129,6 +130,116 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "$5.SearchPhrase" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 40 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 40 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 5 + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 4047c1c399d1..80c2eea94f99 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 @@ -88,7 +88,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -134,6 +135,120 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "EventTime", + "SearchPhrase" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 40 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 5 + }, + { + "Id": 40 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 5 + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 848218e72343..990334156a71 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 @@ -121,7 +121,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -170,6 +171,145 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "25", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "25", + "Name": "TopSort", + "TopSortBy": "$13.l" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.Count0 > 100000" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1)}", + "GroupBy": "item.CounterID", + "Name": "Aggregate" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "CounterID", + "URL" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 14 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 7 + }, + { + "Id": 14 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 491ede2798c8..c51e844a7d55 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 @@ -120,7 +120,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -166,6 +167,141 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "25", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "25", + "Name": "TopSort", + "TopSortBy": "$23.l" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.Count0 > 100000" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: MIN(item.Referer,state._yql_agg_2)}", + "GroupBy": "item.key", + "Name": "Aggregate" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "Referer" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 15 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 15 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 c944f90372d8..0037dced2869 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 @@ -16,12 +16,21 @@ "Plans": [ { "CTE Name": "precompute_0_0", - "Node Type": "ConstantExpr", + "Node Type": "ConstantExpr-ConstantExpr", "Operators": [ { - "Inputs": [], + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], "Iterator": "precompute_0_0", "Name": "Iterator" + }, + { + "Inputs": [], + "Member": "precompute_0_0", + "Name": "Member" } ], "PlanNodeId": 6 @@ -117,6 +126,156 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "ResolutionWidth" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Projection": { + "Columns": [ + { + "Id": 21 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 9 + } + ] + } + ] + } + ] + }, + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 11, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 12, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 14, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "ResolutionWidth" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Projection": { + "Columns": [ + { + "Id": 21 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 15 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 febbdfb74f86..6aadebfb50ed 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 @@ -144,6 +144,112 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "GroupBy": { + "Aggregates": [ + { + "Column": { + "Id": 106 + }, + "Function": { + "Arguments": [ + { + "Id": 10 + } + ], + "Id": 5 + } + }, + { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 10 + } + ], + "Id": 2 + } + } + ] + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 107 + }, + { + "Id": 106 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 c04e7dd85fcd..137a0447c63c 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 @@ -116,7 +116,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -171,6 +172,142 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: SUM(item.IsRefresh,state._yql_agg_2)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "ClientIP", + "IsRefresh", + "ResolutionWidth", + "SearchEngineID", + "SearchPhrase" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 40 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 8 + }, + { + "Id": 16 + }, + { + "Id": 21 + }, + { + "Id": 39 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 51a3960052be..b4f172042500 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 @@ -116,7 +116,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -171,6 +172,142 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: SUM(item.IsRefresh,state._yql_agg_2)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "ClientIP", + "IsRefresh", + "ResolutionWidth", + "SearchPhrase", + "WatchID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 40 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 8 + }, + { + "Id": 16 + }, + { + "Id": 21 + }, + { + "Id": 1 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 d800c5df143e..a84b3b94e691 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 @@ -134,6 +134,104 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: SUM(item.IsRefresh,state._yql_agg_2)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "ClientIP", + "IsRefresh", + "ResolutionWidth", + "WatchID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Projection": { + "Columns": [ + { + "Id": 8 + }, + { + "Id": 16 + }, + { + "Id": 21 + }, + { + "Id": 1 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 4a0b7e89454c..2e6d25e07471 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 @@ -121,6 +121,92 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.URL", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "URL" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Projection": { + "Columns": [ + { + "Id": 14 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 67e2bafe2d12..9c0d1aa99ef1 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 @@ -126,6 +126,96 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "URL", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Projection": { + "Columns": [ + { + "Id": 14 + }, + { + "Id": 10 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 14f243ff0540..53cfbe218521 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 @@ -124,6 +124,92 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "ClientIP" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Projection": { + "Columns": [ + { + "Id": 8 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 1f496780cb58..1938d9f330ef 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 @@ -124,7 +124,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 11 } } }, @@ -153,7 +154,8 @@ } ], "FunctionType": 2, - "KernelIdx": 1 + "KernelIdx": 1, + "YqlOperationId": 11 } } }, @@ -172,7 +174,8 @@ } ], "FunctionType": 2, - "KernelIdx": 2 + "KernelIdx": 2, + "YqlOperationId": 0 } } }, @@ -201,7 +204,8 @@ } ], "FunctionType": 2, - "KernelIdx": 3 + "KernelIdx": 3, + "YqlOperationId": 11 } } }, @@ -230,7 +234,8 @@ } ], "FunctionType": 2, - "KernelIdx": 4 + "KernelIdx": 4, + "YqlOperationId": 12 } } }, @@ -249,7 +254,8 @@ } ], "FunctionType": 2, - "KernelIdx": 5 + "KernelIdx": 5, + "YqlOperationId": 0 } } }, @@ -268,7 +274,8 @@ } ], "FunctionType": 2, - "KernelIdx": 6 + "KernelIdx": 6, + "YqlOperationId": 0 } } }, @@ -317,6 +324,298 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.URL", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.EventDate >= \"15887\" And item.EventDate <= \"15917\"" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "CounterID", + "DontCountHits", + "EventDate", + "IsRefresh", + "URL" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Int32": 62 + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 7 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Constant": { + "Int32": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, + "Function": { + "Arguments": [ + { + "Id": 62 + }, + { + "Id": 108 + } + ], + "FunctionType": 2, + "KernelIdx": 1, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 110 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + }, + { + "Id": 109 + } + ], + "FunctionType": 2, + "KernelIdx": 2, + "YqlOperationId": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 111 + }, + "Constant": { + "Int32": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 112 + }, + "Function": { + "Arguments": [ + { + "Id": 16 + }, + { + "Id": 111 + } + ], + "FunctionType": 2, + "KernelIdx": 3, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 113 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 114 + }, + "Function": { + "Arguments": [ + { + "Id": 14 + }, + { + "Id": 113 + } + ], + "FunctionType": 2, + "KernelIdx": 4, + "YqlOperationId": 12 + } + } + }, + { + "Assign": { + "Column": { + "Id": 115 + }, + "Function": { + "Arguments": [ + { + "Id": 112 + }, + { + "Id": 114 + } + ], + "FunctionType": 2, + "KernelIdx": 5, + "YqlOperationId": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 116 + }, + "Function": { + "Arguments": [ + { + "Id": 110 + }, + { + "Id": 115 + } + ], + "FunctionType": 2, + "KernelIdx": 6, + "YqlOperationId": 0 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 116 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 6 + }, + { + "Id": 14 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 30852faab421..0e460302098c 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 @@ -124,7 +124,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 11 } } }, @@ -153,7 +154,8 @@ } ], "FunctionType": 2, - "KernelIdx": 1 + "KernelIdx": 1, + "YqlOperationId": 11 } } }, @@ -172,7 +174,8 @@ } ], "FunctionType": 2, - "KernelIdx": 2 + "KernelIdx": 2, + "YqlOperationId": 0 } } }, @@ -201,7 +204,8 @@ } ], "FunctionType": 2, - "KernelIdx": 3 + "KernelIdx": 3, + "YqlOperationId": 11 } } }, @@ -230,7 +234,8 @@ } ], "FunctionType": 2, - "KernelIdx": 4 + "KernelIdx": 4, + "YqlOperationId": 12 } } }, @@ -249,7 +254,8 @@ } ], "FunctionType": 2, - "KernelIdx": 5 + "KernelIdx": 5, + "YqlOperationId": 0 } } }, @@ -268,7 +274,8 @@ } ], "FunctionType": 2, - "KernelIdx": 6 + "KernelIdx": 6, + "YqlOperationId": 0 } } }, @@ -317,6 +324,298 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.Title", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.EventDate >= \"15887\" And item.EventDate <= \"15917\"" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "CounterID", + "DontCountHits", + "EventDate", + "IsRefresh", + "Title" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Int32": 62 + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 7 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Constant": { + "Int32": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, + "Function": { + "Arguments": [ + { + "Id": 62 + }, + { + "Id": 108 + } + ], + "FunctionType": 2, + "KernelIdx": 1, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 110 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + }, + { + "Id": 109 + } + ], + "FunctionType": 2, + "KernelIdx": 2, + "YqlOperationId": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 111 + }, + "Constant": { + "Int32": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 112 + }, + "Function": { + "Arguments": [ + { + "Id": 16 + }, + { + "Id": 111 + } + ], + "FunctionType": 2, + "KernelIdx": 3, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 113 + }, + "Constant": { + "Bytes": "" + } + } + }, + { + "Assign": { + "Column": { + "Id": 114 + }, + "Function": { + "Arguments": [ + { + "Id": 3 + }, + { + "Id": 113 + } + ], + "FunctionType": 2, + "KernelIdx": 4, + "YqlOperationId": 12 + } + } + }, + { + "Assign": { + "Column": { + "Id": 115 + }, + "Function": { + "Arguments": [ + { + "Id": 112 + }, + { + "Id": 114 + } + ], + "FunctionType": 2, + "KernelIdx": 5, + "YqlOperationId": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 116 + }, + "Function": { + "Arguments": [ + { + "Id": 110 + }, + { + "Id": 115 + } + ], + "FunctionType": 2, + "KernelIdx": 6, + "YqlOperationId": 0 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 116 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 6 + }, + { + "Id": 3 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 b5ecfd9969e1..80e4d3c1b68a 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 @@ -154,7 +154,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 11 } } }, @@ -183,7 +184,8 @@ } ], "FunctionType": 2, - "KernelIdx": 1 + "KernelIdx": 1, + "YqlOperationId": 11 } } }, @@ -202,7 +204,8 @@ } ], "FunctionType": 2, - "KernelIdx": 2 + "KernelIdx": 2, + "YqlOperationId": 0 } } }, @@ -231,7 +234,8 @@ } ], "FunctionType": 2, - "KernelIdx": 3 + "KernelIdx": 3, + "YqlOperationId": 12 } } }, @@ -260,7 +264,8 @@ } ], "FunctionType": 2, - "KernelIdx": 4 + "KernelIdx": 4, + "YqlOperationId": 11 } } }, @@ -279,7 +284,8 @@ } ], "FunctionType": 2, - "KernelIdx": 5 + "KernelIdx": 5, + "YqlOperationId": 0 } } }, @@ -298,7 +304,8 @@ } ], "FunctionType": 2, - "KernelIdx": 6 + "KernelIdx": 6, + "YqlOperationId": 0 } } }, @@ -351,6 +358,323 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Offset", + "Operators": [ + { + "Name": "Offset", + "Offset": "1000" + } + ], + "PlanNodeId": 3, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "SUM(10,1000)", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "SUM(10,1000)", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.URL", + "Name": "Aggregate" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.EventDate >= \"15887\" And item.EventDate <= \"15917\"" + } + ], + "PlanNodeId": 10, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "CounterID", + "EventDate", + "IsDownload", + "IsLink", + "IsRefresh", + "URL" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Int32": 62 + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 7 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Constant": { + "Int32": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, + "Function": { + "Arguments": [ + { + "Id": 16 + }, + { + "Id": 108 + } + ], + "FunctionType": 2, + "KernelIdx": 1, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 110 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + }, + { + "Id": 109 + } + ], + "FunctionType": 2, + "KernelIdx": 2, + "YqlOperationId": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 111 + }, + "Constant": { + "Int32": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 112 + }, + "Function": { + "Arguments": [ + { + "Id": 53 + }, + { + "Id": 111 + } + ], + "FunctionType": 2, + "KernelIdx": 3, + "YqlOperationId": 12 + } + } + }, + { + "Assign": { + "Column": { + "Id": 113 + }, + "Constant": { + "Int32": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 114 + }, + "Function": { + "Arguments": [ + { + "Id": 54 + }, + { + "Id": 113 + } + ], + "FunctionType": 2, + "KernelIdx": 4, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 115 + }, + "Function": { + "Arguments": [ + { + "Id": 112 + }, + { + "Id": 114 + } + ], + "FunctionType": 2, + "KernelIdx": 5, + "YqlOperationId": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 116 + }, + "Function": { + "Arguments": [ + { + "Id": 110 + }, + { + "Id": 115 + } + ], + "FunctionType": 2, + "KernelIdx": 6, + "YqlOperationId": 0 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 116 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 6 + }, + { + "Id": 14 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 11 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 31af3b96ba14..355223bb77ee 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 @@ -160,7 +160,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 11 } } }, @@ -189,7 +190,8 @@ } ], "FunctionType": 2, - "KernelIdx": 1 + "KernelIdx": 1, + "YqlOperationId": 11 } } }, @@ -208,7 +210,8 @@ } ], "FunctionType": 2, - "KernelIdx": 2 + "KernelIdx": 2, + "YqlOperationId": 0 } } }, @@ -273,6 +276,237 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Offset", + "Operators": [ + { + "Name": "Offset", + "Offset": "1000" + } + ], + "PlanNodeId": 3, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "SUM(10,1000)", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "SUM(10,1000)", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.EventDate >= \"15887\" And item.EventDate <= \"15917\"" + } + ], + "PlanNodeId": 10, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID", + "CounterID", + "EventDate", + "IsRefresh", + "Referer", + "SearchEngineID", + "TraficSourceID", + "URL" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Int32": 62 + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 7 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Constant": { + "Int32": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, + "Function": { + "Arguments": [ + { + "Id": 16 + }, + { + "Id": 108 + } + ], + "FunctionType": 2, + "KernelIdx": 1, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 110 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + }, + { + "Id": 109 + } + ], + "FunctionType": 2, + "KernelIdx": 2, + "YqlOperationId": 0 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 110 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 41 + }, + { + "Id": 6 + }, + { + "Id": 15 + }, + { + "Id": 39 + }, + { + "Id": 38 + }, + { + "Id": 14 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 11 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 3a08b8d56686..92af7df2c54b 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 @@ -145,6 +145,101 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "row.UserID", + "Name": "Aggregate" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Projection": { + "Columns": [ + { + "Id": 10 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 10 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 9013e777b91c..2b32e0ce0da6 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 @@ -155,7 +155,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 11 } } }, @@ -184,7 +185,8 @@ } ], "FunctionType": 2, - "KernelIdx": 1 + "KernelIdx": 1, + "YqlOperationId": 11 } } }, @@ -213,7 +215,8 @@ } ], "FunctionType": 2, - "KernelIdx": 2 + "KernelIdx": 2, + "YqlOperationId": 11 } } }, @@ -232,7 +235,8 @@ } ], "FunctionType": 2, - "KernelIdx": 3 + "KernelIdx": 3, + "YqlOperationId": 0 } } }, @@ -251,7 +255,8 @@ } ], "FunctionType": 2, - "KernelIdx": 4 + "KernelIdx": 4, + "YqlOperationId": 0 } } }, @@ -307,6 +312,276 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Offset", + "Operators": [ + { + "Name": "Offset", + "Offset": "100" + } + ], + "PlanNodeId": 3, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "SUM(10,100)", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "SUM(10,100)", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.EventDate >= \"15887\" And item.EventDate <= \"15917\" And item.TraficSourceID == -1 Or item.TraficSourceID == 6" + } + ], + "PlanNodeId": 10, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "CounterID", + "EventDate", + "IsRefresh", + "RefererHash", + "TraficSourceID", + "URLHash" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Int32": 62 + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 7 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Constant": { + "Int32": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, + "Function": { + "Arguments": [ + { + "Id": 16 + }, + { + "Id": 108 + } + ], + "FunctionType": 2, + "KernelIdx": 1, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 110 + }, + "Constant": { + "Int64": 3594120000172545465 + } + } + }, + { + "Assign": { + "Column": { + "Id": 111 + }, + "Function": { + "Arguments": [ + { + "Id": 103 + }, + { + "Id": 110 + } + ], + "FunctionType": 2, + "KernelIdx": 2, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 112 + }, + "Function": { + "Arguments": [ + { + "Id": 109 + }, + { + "Id": 111 + } + ], + "FunctionType": 2, + "KernelIdx": 3, + "YqlOperationId": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 113 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + }, + { + "Id": 112 + } + ], + "FunctionType": 2, + "KernelIdx": 4, + "YqlOperationId": 0 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 113 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 6 + }, + { + "Id": 38 + }, + { + "Id": 104 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 11 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 949eaccca030..e87308e15e89 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 @@ -156,7 +156,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 11 } } }, @@ -185,7 +186,8 @@ } ], "FunctionType": 2, - "KernelIdx": 1 + "KernelIdx": 1, + "YqlOperationId": 11 } } }, @@ -204,7 +206,8 @@ } ], "FunctionType": 2, - "KernelIdx": 2 + "KernelIdx": 2, + "YqlOperationId": 0 } } }, @@ -233,7 +236,8 @@ } ], "FunctionType": 2, - "KernelIdx": 3 + "KernelIdx": 3, + "YqlOperationId": 11 } } }, @@ -262,7 +266,8 @@ } ], "FunctionType": 2, - "KernelIdx": 4 + "KernelIdx": 4, + "YqlOperationId": 11 } } }, @@ -281,7 +286,8 @@ } ], "FunctionType": 2, - "KernelIdx": 5 + "KernelIdx": 5, + "YqlOperationId": 0 } } }, @@ -300,7 +306,8 @@ } ], "FunctionType": 2, - "KernelIdx": 6 + "KernelIdx": 6, + "YqlOperationId": 0 } } }, @@ -356,6 +363,327 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Offset", + "Operators": [ + { + "Name": "Offset", + "Offset": "10000" + } + ], + "PlanNodeId": 3, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "SUM(10,10000)", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "SUM(10,10000)", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.EventDate >= \"15887\" And item.EventDate <= \"15917\"" + } + ], + "PlanNodeId": 10, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "CounterID", + "DontCountHits", + "EventDate", + "IsRefresh", + "URLHash", + "WindowClientHeight", + "WindowClientWidth" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Int32": 62 + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 7 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Constant": { + "Int32": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, + "Function": { + "Arguments": [ + { + "Id": 16 + }, + { + "Id": 108 + } + ], + "FunctionType": 2, + "KernelIdx": 1, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 110 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + }, + { + "Id": 109 + } + ], + "FunctionType": 2, + "KernelIdx": 2, + "YqlOperationId": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 111 + }, + "Constant": { + "Int32": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 112 + }, + "Function": { + "Arguments": [ + { + "Id": 62 + }, + { + "Id": 111 + } + ], + "FunctionType": 2, + "KernelIdx": 3, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 113 + }, + "Constant": { + "Int64": 2868770270353813622 + } + } + }, + { + "Assign": { + "Column": { + "Id": 114 + }, + "Function": { + "Arguments": [ + { + "Id": 104 + }, + { + "Id": 113 + } + ], + "FunctionType": 2, + "KernelIdx": 4, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 115 + }, + "Function": { + "Arguments": [ + { + "Id": 112 + }, + { + "Id": 114 + } + ], + "FunctionType": 2, + "KernelIdx": 5, + "YqlOperationId": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 116 + }, + "Function": { + "Arguments": [ + { + "Id": 110 + }, + { + "Id": 115 + } + ], + "FunctionType": 2, + "KernelIdx": 6, + "YqlOperationId": 0 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 116 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 6 + }, + { + "Id": 44 + }, + { + "Id": 43 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 11 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 03b459e31d19..31ff92a28677 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 @@ -153,7 +153,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 11 } } }, @@ -182,7 +183,8 @@ } ], "FunctionType": 2, - "KernelIdx": 1 + "KernelIdx": 1, + "YqlOperationId": 11 } } }, @@ -211,7 +213,8 @@ } ], "FunctionType": 2, - "KernelIdx": 2 + "KernelIdx": 2, + "YqlOperationId": 11 } } }, @@ -230,7 +233,8 @@ } ], "FunctionType": 2, - "KernelIdx": 3 + "KernelIdx": 3, + "YqlOperationId": 0 } } }, @@ -249,7 +253,8 @@ } ], "FunctionType": 2, - "KernelIdx": 4 + "KernelIdx": 4, + "YqlOperationId": 0 } } }, @@ -302,6 +307,272 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Offset", + "Operators": [ + { + "Name": "Offset", + "Offset": "1000" + } + ], + "PlanNodeId": 3, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "SUM(10,1000)", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "SUM(10,1000)", + "Name": "TopSort", + "TopSortBy": "argument.Minute" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.Minute", + "Name": "Aggregate" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.EventDate >= \"15900\" And item.EventDate <= \"15901\"" + } + ], + "PlanNodeId": 10, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "CounterID", + "DontCountHits", + "EventDate", + "EventTime", + "IsRefresh" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Int32": 62 + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 7 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 108 + }, + "Constant": { + "Int32": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 109 + }, + "Function": { + "Arguments": [ + { + "Id": 16 + }, + { + "Id": 108 + } + ], + "FunctionType": 2, + "KernelIdx": 1, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 110 + }, + "Constant": { + "Int32": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 111 + }, + "Function": { + "Arguments": [ + { + "Id": 62 + }, + { + "Id": 110 + } + ], + "FunctionType": 2, + "KernelIdx": 2, + "YqlOperationId": 11 + } + } + }, + { + "Assign": { + "Column": { + "Id": 112 + }, + "Function": { + "Arguments": [ + { + "Id": 109 + }, + { + "Id": 111 + } + ], + "FunctionType": 2, + "KernelIdx": 3, + "YqlOperationId": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 113 + }, + "Function": { + "Arguments": [ + { + "Id": 107 + }, + { + "Id": 112 + } + ], + "FunctionType": 2, + "KernelIdx": 4, + "YqlOperationId": 0 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 113 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 6 + }, + { + "Id": 5 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 11 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 5e4d7e56cce5..a7496640f782 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 @@ -145,6 +145,101 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "row.SearchPhrase", + "Name": "Aggregate" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Projection": { + "Columns": [ + { + "Id": 40 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 10 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 46bf5a6a1394..23c4d26e9af3 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 @@ -16,12 +16,21 @@ "Plans": [ { "CTE Name": "precompute_0_0", - "Node Type": "ConstantExpr", + "Node Type": "ConstantExpr-ConstantExpr", "Operators": [ { - "Inputs": [], + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], "Iterator": "precompute_0_0", "Name": "Iterator" + }, + { + "Inputs": [], + "Member": "precompute_0_0", + "Name": "Member" } ], "PlanNodeId": 6 @@ -144,6 +153,204 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "EventDate" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "GroupBy": { + "Aggregates": [ + { + "Column": { + "Id": 106 + }, + "Function": { + "Arguments": [ + { + "Id": 6 + } + ], + "Id": 4 + } + }, + { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 6 + } + ], + "Id": 3 + } + } + ] + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 106 + }, + { + "Id": 107 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + }, + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 10, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 11, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "EventDate" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "GroupBy": { + "Aggregates": [ + { + "Column": { + "Id": 106 + }, + "Function": { + "Arguments": [ + { + "Id": 6 + } + ], + "Id": 4 + } + }, + { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 6 + } + ], + "Id": 3 + } + } + ] + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 106 + }, + { + "Id": 107 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 13 + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/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 1a47f956479f..580d8c9b0221 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 @@ -111,7 +111,8 @@ } ], "FunctionType": 2, - "KernelIdx": 0 + "KernelIdx": 0, + "YqlOperationId": 12 } } }, @@ -157,6 +158,129 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1001", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "1001", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.AdvEngineID", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Assign": { + "Column": { + "Id": 106 + }, + "Constant": { + "Int32": 0 + } + } + }, + { + "Assign": { + "Column": { + "Id": 107 + }, + "Function": { + "Arguments": [ + { + "Id": 41 + }, + { + "Id": 106 + } + ], + "FunctionType": 2, + "KernelIdx": 0, + "YqlOperationId": 12 + } + } + }, + { + "Filter": { + "Predicate": { + "Id": 107 + } + } + }, + { + "Projection": { + "Columns": [ + { + "Id": 41 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 86e1bf71d158..22a7b1c8f85e 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 @@ -154,6 +154,109 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: Inc(state._yql_agg_0)}", + "GroupBy": "item.RegionID", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "RegionID", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Projection": { + "Columns": [ + { + "Id": 9 + }, + { + "Id": 10 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 9 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", 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 dac074aa292f..690127ebbcd8 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 @@ -258,6 +258,187 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Union", + "Operators": [ + { + "Name": "Union" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_3: SUM(item.AdvEngineID,state._yql_agg_3)}", + "GroupBy": "item.RegionID", + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID", + "RegionID", + "ResolutionWidth", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Projection": { + "Columns": [ + { + "Id": 41 + }, + { + "Id": 9 + }, + { + "Id": 21 + }, + { + "Id": 10 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 9 + } + ] + }, + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_2: Inc(state._yql_agg_2)}", + "GroupBy": "item.RegionID", + "Name": "Aggregate" + } + ], + "PlanNodeId": 11, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 13, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID", + "RegionID", + "ResolutionWidth", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "SsaProgram": { + "Command": [ + { + "Projection": { + "Columns": [ + { + "Id": 41 + }, + { + "Id": 9 + }, + { + "Id": 21 + }, + { + "Id": 10 + } + ] + } + } + ], + "Version": 4 + }, + "Table": "clickbench/plans/column/hits" + } + ], + "PlanNodeId": 14 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/column/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-0 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-0 index bcea45f3e620..1ef611b809e2 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-0 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-0 @@ -101,6 +101,72 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": null, + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-1 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-1 index 700d33e66beb..1d5ca56beefb 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-1 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-1 @@ -112,6 +112,86 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.AdvEngineID != 0" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 9 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 6ce50d447f4f..9101e37d5a23 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 @@ -146,6 +146,104 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: COUNT(item.UserID,state._yql_agg_0)}", + "GroupBy": "item.MobilePhoneModel", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.MobilePhoneModel != \"\"" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "MobilePhoneModel", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 10 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 891d1590f987..8283b6313d04 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 @@ -149,6 +149,105 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: COUNT(item.UserID,state._yql_agg_0)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.MobilePhoneModel != \"\"" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "MobilePhone", + "MobilePhoneModel", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 10 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 e57e1dae5f09..e182d61c7208 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 @@ -116,6 +116,90 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.SearchPhrase", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.SearchPhrase != \"\"" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 1a7720d827c8..94f1e09a4096 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 @@ -146,6 +146,104 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: COUNT(item.UserID,state._yql_agg_0)}", + "GroupBy": "item.SearchPhrase", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.SearchPhrase != \"\"" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 10 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 933bb09440a4..1e7c671f669a 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 @@ -118,6 +118,91 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.SearchPhrase != \"\"" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchEngineID", + "SearchPhrase" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 0ae0d6d90222..e390b499b0f4 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 @@ -107,6 +107,78 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.UserID", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 2414ba574dab..71b4672498d7 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 @@ -109,6 +109,79 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-17 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-17 index 5ba6811b0e9b..f0667dbd949d 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-17 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-17 @@ -105,6 +105,78 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 15fc4d053fd4..74c39336831f 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 @@ -111,6 +111,80 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "EventTime", + "SearchPhrase", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-19 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-19 index 22d67d5a22af..c601c9a97d3f 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-19 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-19 @@ -84,6 +84,76 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1001", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1001", + "Name": "Limit" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.UserID == 435090932899640449" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 6 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-2 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-2 index de6f498faae5..8ccfa321c215 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-2 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-2 @@ -16,12 +16,21 @@ "Plans": [ { "CTE Name": "precompute_0_0", - "Node Type": "ConstantExpr", + "Node Type": "ConstantExpr-ConstantExpr", "Operators": [ { - "Inputs": [], + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], "Iterator": "precompute_0_0", "Name": "Iterator" + }, + { + "Inputs": [], + "Member": "precompute_0_0", + "Name": "Member" } ], "PlanNodeId": 6 @@ -104,6 +113,130 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID", + "ResolutionWidth" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 9 + } + ] + } + ] + } + ] + }, + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 11, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 12, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 14, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID", + "ResolutionWidth" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 15 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-20 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-20 index 08d691dc90cc..6b0f6f5c370a 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-20 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-20 @@ -112,6 +112,86 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.URL StringContains \"google\"" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "URL" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 9 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 8db645ce92d5..3d4a095eb9d5 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 @@ -117,6 +117,91 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1),_yql_agg_1: MIN(item.URL,state._yql_agg_1)}", + "GroupBy": "item.SearchPhrase", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.URL StringContains \"google\" And item.SearchPhrase != \"\"" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase", + "URL" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 d01b0792517b..a7b9fc8a11e6 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 @@ -230,6 +230,165 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Union", + "Operators": [ + { + "Name": "Union" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1),_yql_agg_2: MIN(item.URL,state._yql_agg_2),_yql_agg_3: MIN(item.Title,state._yql_agg_3)}", + "GroupBy": "item.SearchPhrase", + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.Title StringContains \"Google\" And Not item.URL StringContains \".google.\" And item.SearchPhrase != \"\"" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase", + "Title", + "URL", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 10 + } + ] + } + ] + }, + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_1: COUNT(item.UserID,state._yql_agg_1)}", + "GroupBy": "item.SearchPhrase", + "Name": "Aggregate" + } + ], + "PlanNodeId": 12, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 14, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.Title StringContains \"Google\" And Not item.URL StringContains \".google.\" And item.SearchPhrase != \"\"" + } + ], + "PlanNodeId": 15, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase", + "Title", + "URL", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 16 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-23 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-23 index 523cdda7b3ef..432897d377d0 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-23 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-23 @@ -191,6 +191,180 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.URL StringContains \"google\"" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID", + "Age", + "BrowserCountry", + "BrowserLanguage", + "CLID", + "ClientEventTime", + "ClientIP", + "ClientTimeZone", + "CodeVersion", + "ConnectTiming", + "CookieEnable", + "CounterClass", + "CounterID", + "DNSTiming", + "DontCountHits", + "EventDate", + "EventTime", + "FUniqID", + "FetchTiming", + "FlashMajor", + "FlashMinor", + "FlashMinor2", + "FromTag", + "GoodEvent", + "HID", + "HTTPError", + "HasGCLID", + "HistoryLength", + "HitColor", + "IPNetworkID", + "Income", + "Interests", + "IsArtifical", + "IsDownload", + "IsEvent", + "IsLink", + "IsMobile", + "IsNotBounce", + "IsOldCounter", + "IsParameter", + "IsRefresh", + "JavaEnable", + "JavascriptEnable", + "LocalEventTime", + "MobilePhone", + "MobilePhoneModel", + "NetMajor", + "NetMinor", + "OS", + "OpenerName", + "OpenstatAdID", + "OpenstatCampaignID", + "OpenstatServiceName", + "OpenstatSourceID", + "OriginalURL", + "PageCharset", + "ParamCurrency", + "ParamCurrencyID", + "ParamOrderID", + "ParamPrice", + "Params", + "Referer", + "RefererCategoryID", + "RefererHash", + "RefererRegionID", + "RegionID", + "RemoteIP", + "ResolutionDepth", + "ResolutionHeight", + "ResolutionWidth", + "ResponseEndTiming", + "ResponseStartTiming", + "Robotness", + "SearchEngineID", + "SearchPhrase", + "SendTiming", + "Sex", + "SilverlightVersion1", + "SilverlightVersion2", + "SilverlightVersion3", + "SilverlightVersion4", + "SocialAction", + "SocialNetwork", + "SocialSourceNetworkID", + "SocialSourcePage", + "Title", + "TraficSourceID", + "URL", + "URLCategoryID", + "URLHash", + "URLRegionID", + "UTMCampaign", + "UTMContent", + "UTMMedium", + "UTMSource", + "UTMTerm", + "UserAgent", + "UserAgentMajor", + "UserAgentMinor", + "UserID", + "WatchID", + "WindowClientHeight", + "WindowClientWidth", + "WindowName", + "WithHash" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 6 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-24 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-24 index aafd111108fa..1d61e93ad9a8 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-24 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-24 @@ -88,6 +88,77 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.SearchPhrase != \"\"" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "EventTime", + "SearchPhrase" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 6 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-25 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-25 index 8b02cd015639..367bb349f1b4 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-25 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-25 @@ -88,6 +88,77 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "$5.SearchPhrase" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.SearchPhrase != \"\"" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 6 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-26 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-26 index 73abb1c271f6..2ba90d4d2238 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-26 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-26 @@ -90,6 +90,78 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.SearchPhrase != \"\"" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "EventTime", + "SearchPhrase" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 6 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-27 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-27 index 0578a55fa92d..afca1b848d53 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-27 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-27 @@ -126,6 +126,103 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "25", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "25", + "Name": "TopSort", + "TopSortBy": "$14.l" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.Count0 > 100000" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1)}", + "GroupBy": "item.CounterID", + "Name": "Aggregate" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.URL != \"\"" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "CounterID", + "URL" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 9 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-28 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-28 index a5b57cff85ab..986403f196c0 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-28 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-28 @@ -125,6 +125,102 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "25", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "25", + "Name": "TopSort", + "TopSortBy": "$25.l" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.Count0 > 100000" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: MIN(item.Referer,state._yql_agg_2)}", + "GroupBy": "item.key", + "Name": "Aggregate" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.Referer != \"\"" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "Referer" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 9 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-29 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-29 index ed9111fb15b2..662b7d72845f 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-29 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-29 @@ -16,12 +16,21 @@ "Plans": [ { "CTE Name": "precompute_0_0", - "Node Type": "ConstantExpr", + "Node Type": "ConstantExpr-ConstantExpr", "Operators": [ { - "Inputs": [], + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], "Iterator": "precompute_0_0", "Name": "Iterator" + }, + { + "Inputs": [], + "Member": "precompute_0_0", + "Name": "Member" } ], "PlanNodeId": 6 @@ -103,6 +112,128 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "ResolutionWidth" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 9 + } + ] + } + ] + } + ] + }, + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 11, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 12, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 14, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "ResolutionWidth" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 15 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-3 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-3 index 2b220a05fff0..7893731cc961 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-3 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-3 @@ -103,6 +103,74 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 24f212f66ece..a4d5b1bc5d55 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 @@ -121,6 +121,94 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: SUM(item.IsRefresh,state._yql_agg_2)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.SearchPhrase != \"\"" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "ClientIP", + "IsRefresh", + "ResolutionWidth", + "SearchEngineID", + "SearchPhrase" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 c46804a19f9c..61bbb6c66a22 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 @@ -121,6 +121,94 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: SUM(item.IsRefresh,state._yql_agg_2)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.SearchPhrase != \"\"" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "ClientIP", + "IsRefresh", + "ResolutionWidth", + "SearchPhrase", + "WatchID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 09b4cb2acd5a..3caa0ba968b1 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 @@ -111,6 +111,81 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_2: SUM(item.IsRefresh,state._yql_agg_2)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "ClientIP", + "IsRefresh", + "ResolutionWidth", + "WatchID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 7ab52ceefc56..6ae1db1d9ea6 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 @@ -107,6 +107,78 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.URL", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "URL" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 838d9c40b5b9..87f0d196e666 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 @@ -109,6 +109,79 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "URL", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-35 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-35 index fbdf53de28d3..a3679758bf76 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-35 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-35 @@ -110,6 +110,78 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "ClientIP" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 7 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 106a07ebc1f7..45b864ae1fc4 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 @@ -120,6 +120,94 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.URL", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.CounterID == 62 And item.EventDate >= \"15887\" And item.EventDate <= \"15917\" And item.DontCountHits == 0 And item.IsRefresh == 0 And item.URL != \"\"" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "CounterID", + "DontCountHits", + "EventDate", + "IsRefresh", + "URL" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 6f9adaf10cac..d84d2e5e67bf 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 @@ -120,6 +120,94 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.Title", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.CounterID == 62 And item.EventDate >= \"15887\" And item.EventDate <= \"15917\" And item.DontCountHits == 0 And item.IsRefresh == 0 And item.Title != \"\"" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "CounterID", + "DontCountHits", + "EventDate", + "IsRefresh", + "Title" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 3900c0a0d97a..0ba3a87d8cd2 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 @@ -154,6 +154,119 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Offset", + "Operators": [ + { + "Name": "Offset", + "Offset": "1000" + } + ], + "PlanNodeId": 3, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "SUM(10,1000)", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "SUM(10,1000)", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.URL", + "Name": "Aggregate" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.CounterID == 62 And item.EventDate >= \"15887\" And item.EventDate <= \"15917\" And item.IsRefresh == 0 And item.IsLink != 0 And item.IsDownload == 0" + } + ], + "PlanNodeId": 10, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "CounterID", + "EventDate", + "IsDownload", + "IsLink", + "IsRefresh", + "URL" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 11 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 6fc4de586644..2cc5681d35ae 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 @@ -160,6 +160,121 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Offset", + "Operators": [ + { + "Name": "Offset", + "Offset": "1000" + } + ], + "PlanNodeId": 3, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "SUM(10,1000)", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "SUM(10,1000)", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.CounterID == 62 And item.EventDate >= \"15887\" And item.EventDate <= \"15917\" And item.IsRefresh == 0" + } + ], + "PlanNodeId": 10, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID", + "CounterID", + "EventDate", + "IsRefresh", + "Referer", + "SearchEngineID", + "TraficSourceID", + "URL" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 11 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-4 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-4 index f0370399cac5..77ee960840a5 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-4 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-4 @@ -131,6 +131,87 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "row.UserID", + "Name": "Aggregate" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 10 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 9b659bde678e..56e895833626 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 @@ -155,6 +155,119 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Offset", + "Operators": [ + { + "Name": "Offset", + "Offset": "100" + } + ], + "PlanNodeId": 3, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "SUM(10,100)", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "SUM(10,100)", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.CounterID == 62 And item.EventDate >= \"15887\" And item.EventDate <= \"15917\" And item.IsRefresh == 0 And If And item.RefererHash == 3594120000172545465" + } + ], + "PlanNodeId": 10, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "CounterID", + "EventDate", + "IsRefresh", + "RefererHash", + "TraficSourceID", + "URLHash" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 11 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 72c49bce7aa4..2f73b73dbf42 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 @@ -156,6 +156,120 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Offset", + "Operators": [ + { + "Name": "Offset", + "Offset": "10000" + } + ], + "PlanNodeId": 3, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "SUM(10,10000)", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "SUM(10,10000)", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.CounterID == 62 And item.EventDate >= \"15887\" And item.EventDate <= \"15917\" And item.IsRefresh == 0 And item.DontCountHits == 0 And item.URLHash == 2868770270353813622" + } + ], + "PlanNodeId": 10, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "CounterID", + "DontCountHits", + "EventDate", + "IsRefresh", + "URLHash", + "WindowClientHeight", + "WindowClientWidth" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 11 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 1acf534e32a3..f0ccfe4133e7 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 @@ -153,6 +153,118 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "Offset", + "Operators": [ + { + "Name": "Offset", + "Offset": "1000" + } + ], + "PlanNodeId": 3, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "SUM(10,1000)", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "SUM(10,1000)", + "Name": "TopSort", + "TopSortBy": "argument.Minute" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.Minute", + "Name": "Aggregate" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.CounterID == 62 And item.EventDate >= \"15900\" And item.EventDate <= \"15901\" And item.IsRefresh == 0 And item.DontCountHits == 0" + } + ], + "PlanNodeId": 10, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "CounterID", + "DontCountHits", + "EventDate", + "EventTime", + "IsRefresh" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 11 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-5 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-5 index 6af51b141aaa..ce6fcf89cc4d 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-5 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-5 @@ -131,6 +131,87 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "row.SearchPhrase", + "Name": "Aggregate" + } + ], + "PlanNodeId": 9, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "SearchPhrase" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 10 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-6 b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-6 index 4d5e196100bb..64b25c06f135 100644 --- a/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-6 +++ b/ydb/tests/functional/clickbench/canondata/test.test_plans_row_/queries-original-plan-row-6 @@ -16,12 +16,21 @@ "Plans": [ { "CTE Name": "precompute_0_0", - "Node Type": "ConstantExpr", + "Node Type": "ConstantExpr-ConstantExpr", "Operators": [ { - "Inputs": [], + "Inputs": [ + { + "InternalOperatorId": 1 + } + ], "Iterator": "precompute_0_0", "Name": "Iterator" + }, + { + "Inputs": [], + "Member": "precompute_0_0", + "Name": "Member" } ], "PlanNodeId": 6 @@ -103,6 +112,128 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet_1", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 5, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "EventDate" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 9 + } + ] + } + ] + } + ] + }, + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 11, + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1", + "Name": "Limit" + } + ], + "PlanNodeId": 12, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Name": "Aggregate" + } + ], + "PlanNodeId": 14, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "EventDate" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 15 + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 0935f1e202e0..29b3dcc1e78e 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 @@ -116,6 +116,90 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "1001", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "1001", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: SUM(state._yql_agg_0,1)}", + "GroupBy": "item.AdvEngineID", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Filter", + "Operators": [ + { + "Name": "Filter", + "Predicate": "item.AdvEngineID != 0" + } + ], + "PlanNodeId": 7, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 8 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 a0edc56657e5..3d2a2a9eda8b 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 @@ -137,6 +137,92 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_0: COUNT(item.UserID,state._yql_agg_0)}", + "GroupBy": "item.RegionID", + "Name": "Aggregate" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "RegionID", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 9 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", 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 06a0806ba1f9..569fdcf4b140 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 @@ -212,6 +212,141 @@ } ] }, + "SimplifiedPlan": { + "Node Type": "Query", + "PlanNodeId": 0, + "PlanNodeType": "Query", + "Plans": [ + { + "Node Type": "ResultSet", + "PlanNodeId": 1, + "PlanNodeType": "ResultSet", + "Plans": [ + { + "Node Type": "Limit", + "Operators": [ + { + "Limit": "10", + "Name": "Limit" + } + ], + "PlanNodeId": 2, + "Plans": [ + { + "Node Type": "TopSort", + "Operators": [ + { + "Limit": "10", + "Name": "TopSort", + "TopSortBy": "argument.Count0" + } + ], + "PlanNodeId": 4, + "Plans": [ + { + "Node Type": "Union", + "Operators": [ + { + "Name": "Union" + } + ], + "PlanNodeId": 6, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_1: SUM(state._yql_agg_1,1),_yql_agg_3: SUM(item.AdvEngineID,state._yql_agg_3)}", + "GroupBy": "item.RegionID", + "Name": "Aggregate" + } + ], + "PlanNodeId": 8, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID", + "RegionID", + "ResolutionWidth", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 9 + } + ] + }, + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "{_yql_agg_2: COUNT(item.UserID,state._yql_agg_2)}", + "GroupBy": "item.RegionID", + "Name": "Aggregate" + } + ], + "PlanNodeId": 11, + "Plans": [ + { + "Node Type": "Aggregate", + "Operators": [ + { + "Aggregation": "state", + "GroupBy": "", + "Name": "Aggregate" + } + ], + "PlanNodeId": 13, + "Plans": [ + { + "Node Type": "TableFullScan", + "Operators": [ + { + "Name": "TableFullScan", + "ReadColumns": [ + "AdvEngineID", + "RegionID", + "ResolutionWidth", + "UserID" + ], + "ReadRanges": [ + "EventTime (-\u221e, +\u221e)", + "CounterID (-\u221e, +\u221e)", + "EventDate (-\u221e, +\u221e)", + "UserID (-\u221e, +\u221e)", + "WatchID (-\u221e, +\u221e)" + ], + "Table": "clickbench/plans/row/hits" + } + ], + "PlanNodeId": 14 + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, "tables": [ { "name": "/local/clickbench/plans/row/hits", diff --git a/ydb/tests/functional/hive/test_drain.py b/ydb/tests/functional/hive/test_drain.py index cb69ad21be09..0d31d82370ec 100644 --- a/ydb/tests/functional/hive/test_drain.py +++ b/ydb/tests/functional/hive/test_drain.py @@ -68,3 +68,22 @@ def test_drain_tablets(self): ) node.start() + + def test_drain_on_stop(self): + all_tablet_ids = create_tablets_and_wait_for_start(self.cluster.client, TabletsCount, batch_size=TabletsCount) + for node_id, node in self.cluster.nodes.items(): + if node_id == 1: + continue + + logger.info(f"Stopping node {node_id}") + + node.stop() + + if not node.killed: + wait_tablets_are_active( + self.cluster.client, + all_tablet_ids, + 0, # Tablets should already be active, as drain must be finished at this point + ) + + node.start() diff --git a/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-arm64.txt b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-arm64.txt index dd2dc2d62444..ae9a63207384 100644 --- a/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-arm64.txt +++ b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-arm64.txt @@ -20,8 +20,6 @@ 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 @@ -51,6 +49,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 index 8767ebd7362a..0f71e365d2e4 100644 --- a/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-x86_64.txt +++ b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.darwin-x86_64.txt @@ -21,8 +21,6 @@ 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 @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-aarch64.txt b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-aarch64.txt index 34359df0fb81..16609b5ac024 100644 --- a/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-aarch64.txt +++ b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-aarch64.txt @@ -23,9 +23,6 @@ target_link_options(ydb-tests-functional-kqp-kqp_indexes PRIVATE -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 @@ -55,6 +52,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 index d5fd5a97a6be..37da42290865 100644 --- a/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-x86_64.txt +++ b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.linux-x86_64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-tests-functional-kqp-kqp_indexes PRIVATE -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 @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 index 9143d82474cd..39b11aeddd7d 100644 --- a/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.windows-x86_64.txt +++ b/ydb/tests/functional/kqp/kqp_indexes/CMakeLists.windows-x86_64.txt @@ -45,6 +45,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.darwin-arm64.txt b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.darwin-arm64.txt index 325c63dc74e4..5f6bcbc5f7e1 100644 --- a/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.darwin-arm64.txt +++ b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.darwin-arm64.txt @@ -21,8 +21,6 @@ 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 @@ -52,6 +50,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 index 6b738edf7e65..cef9887510b1 100644 --- 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 @@ -22,8 +22,6 @@ 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 @@ -53,6 +51,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 index 5698f4e5bf0a..5f8e51aa6858 100644 --- a/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.linux-aarch64.txt +++ b/ydb/tests/functional/kqp/kqp_query_session/CMakeLists.linux-aarch64.txt @@ -24,9 +24,6 @@ target_link_options(ydb-tests-functional-kqp-kqp_query_session PRIVATE -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 @@ -56,6 +53,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 index 07e554c14bfb..34defa601285 100644 --- 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 @@ -25,9 +25,6 @@ target_link_options(ydb-tests-functional-kqp-kqp_query_session PRIVATE -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 @@ -57,6 +54,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST 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 index c99d3c10746f..b34287aeacfc 100644 --- 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 @@ -46,6 +46,7 @@ set_yunittest_property( PROPERTY LABELS MEDIUM + $FILTER_ONLY_TEST_TAGS ) set_yunittest_property( TEST diff --git a/ydb/tests/functional/scheme_tests/canondata/tablet_scheme_tests.TestTabletSchemes.test_tablet_schemes_flat_hive_/flat_hive.schema b/ydb/tests/functional/scheme_tests/canondata/tablet_scheme_tests.TestTabletSchemes.test_tablet_schemes_flat_hive_/flat_hive.schema index 938e0d6b9dbb..81372b53e785 100644 --- a/ydb/tests/functional/scheme_tests/canondata/tablet_scheme_tests.TestTabletSchemes.test_tablet_schemes_flat_hive_/flat_hive.schema +++ b/ydb/tests/functional/scheme_tests/canondata/tablet_scheme_tests.TestTabletSchemes.test_tablet_schemes_flat_hive_/flat_hive.schema @@ -552,6 +552,11 @@ "ColumnId": 9, "ColumnName": "Location", "ColumnType": "String" + }, + { + "ColumnId": 10, + "ColumnName": "Name", + "ColumnType": "String" } ], "ColumnsDropped": [], @@ -566,7 +571,8 @@ 5, 6, 8, - 9 + 9, + 10 ], "RoomID": 0, "Codec": 0, diff --git a/ydb/tests/functional/scheme_tests/canondata/tablet_scheme_tests.TestTabletSchemes.test_tablet_schemes_flat_schemeshard_/flat_schemeshard.schema b/ydb/tests/functional/scheme_tests/canondata/tablet_scheme_tests.TestTabletSchemes.test_tablet_schemes_flat_schemeshard_/flat_schemeshard.schema index 937270748b93..de5abd702456 100644 --- a/ydb/tests/functional/scheme_tests/canondata/tablet_scheme_tests.TestTabletSchemes.test_tablet_schemes_flat_schemeshard_/flat_schemeshard.schema +++ b/ydb/tests/functional/scheme_tests/canondata/tablet_scheme_tests.TestTabletSchemes.test_tablet_schemes_flat_schemeshard_/flat_schemeshard.schema @@ -346,6 +346,16 @@ "ColumnId": 10, "ColumnName": "ReplicationConfig", "ColumnType": "String" + }, + { + "ColumnId": 11, + "ColumnName": "IsTemporary", + "ColumnType": "Bool" + }, + { + "ColumnId": 12, + "ColumnName": "OwnerActorId", + "ColumnType": "String" } ], "ColumnsDropped": [], @@ -361,7 +371,9 @@ 7, 8, 9, - 10 + 10, + 11, + 12 ], "RoomID": 0, "Codec": 0, @@ -446,6 +458,11 @@ "ColumnId": 12, "ColumnName": "ColTypeData", "ColumnType": "String" + }, + { + "ColumnId": 13, + "ColumnName": "IsBuildInProgress", + "ColumnType": "Bool" } ], "ColumnsDropped": [], @@ -463,7 +480,8 @@ 9, 10, 11, - 12 + 12, + 13 ], "RoomID": 0, "Codec": 0, @@ -959,6 +977,11 @@ "ColumnId": 12, "ColumnName": "ColTypeData", "ColumnType": "String" + }, + { + "ColumnId": 13, + "ColumnName": "IsBuildInProgress", + "ColumnType": "Bool" } ], "ColumnsDropped": [], @@ -976,7 +999,8 @@ 9, 10, 11, - 12 + 12, + 13 ], "RoomID": 0, "Codec": 0, @@ -3533,6 +3557,16 @@ "ColumnId": 11, "ColumnName": "ReplicationConfig", "ColumnType": "String" + }, + { + "ColumnId": 12, + "ColumnName": "IsTemporary", + "ColumnType": "Bool" + }, + { + "ColumnId": 13, + "ColumnName": "OwnerActorId", + "ColumnType": "String" } ], "ColumnsDropped": [], @@ -3549,7 +3583,9 @@ 8, 9, 10, - 11 + 11, + 12, + 13 ], "RoomID": 0, "Codec": 0, @@ -3640,6 +3676,11 @@ "ColumnId": 13, "ColumnName": "ColTypeData", "ColumnType": "String" + }, + { + "ColumnId": 14, + "ColumnName": "IsBuildInProgress", + "ColumnType": "Bool" } ], "ColumnsDropped": [], @@ -3658,7 +3699,8 @@ 10, 11, 12, - 13 + 13, + 14 ], "RoomID": 0, "Codec": 0, @@ -4133,6 +4175,11 @@ "ColumnId": 13, "ColumnName": "ColTypeData", "ColumnType": "String" + }, + { + "ColumnId": 14, + "ColumnName": "IsBuildInProgress", + "ColumnType": "Bool" } ], "ColumnsDropped": [], @@ -4151,7 +4198,8 @@ 10, 11, 12, - 13 + 13, + 14 ], "RoomID": 0, "Codec": 0, diff --git a/ydb/tests/functional/sqs/cloud/test_yandex_cloud_mode.py b/ydb/tests/functional/sqs/cloud/test_yandex_cloud_mode.py index c8fa26b7697d..ce34491b0946 100644 --- a/ydb/tests/functional/sqs/cloud/test_yandex_cloud_mode.py +++ b/ydb/tests/functional/sqs/cloud/test_yandex_cloud_mode.py @@ -838,3 +838,47 @@ def test_cloud_double_create_queue(self, is_fifo, tables_format): time.sleep(1) queue_url2 = self._sqs_api.create_queue(self.queue_name, is_fifo=is_fifo) assert queue_url1 == queue_url2, f'{queue_url1} vs {queue_url2}' + + @pytest.mark.parametrize(**TABLES_FORMAT_PARAMS) + @pytest.mark.parametrize(**IS_FIFO_PARAMS) + def test_not_throttling_with_custom_queue_name(self, is_fifo, tables_format): + self._init_with_params(is_fifo, tables_format) + + self._sqs_api = self._create_api_for_user( + user_name='ignored', + raise_on_error=True, + force_private=True, + iam_token=self.iam_token, + folder_id=self.folder_id, + ) + + custom_queue_name = 'MyCustomQueue' + queue_url = self._sqs_api.create_queue( + queue_name=self.queue_name, + private_api=True, + custom_name=custom_queue_name, + ) + + nonexistent_queue_url = queue_url.replace(self.queue_name, self.queue_name + '_nonex') + + def get_attributes_of_nonexistent_queue(): + self._sqs_api.get_queue_attributes(nonexistent_queue_url) + + # Draining budget + for _ in range(16): + try: + get_attributes_of_nonexistent_queue() + except Exception: + pass + + # Check that there is no more budget + assert_that( + get_attributes_of_nonexistent_queue, + raises( + RuntimeError, + pattern=".*<Code>ThrottlingException</Code>.*" + ) + ) + + received_queue_url = self._sqs_api.get_queue_url(custom_queue_name) + assert received_queue_url == queue_url diff --git a/ydb/tests/functional/sqs/common/test_queue_counters.py b/ydb/tests/functional/sqs/common/test_queue_counters.py index f4e133bc19fb..7e2fc97c1204 100644 --- a/ydb/tests/functional/sqs/common/test_queue_counters.py +++ b/ydb/tests/functional/sqs/common/test_queue_counters.py @@ -2,6 +2,8 @@ # -*- coding: utf-8 -*- from ydb.tests.library.sqs.test_base import KikimrSqsTestBase +from ydb.tests.library.sqs.requests_client import SqsSendMessageParams + class TestSqsGettingCounters(KikimrSqsTestBase): @@ -153,3 +155,32 @@ def test_purge_queue_counters(self): 'sensor': 'MessagesPurged', }) assert purged_derivative > 0 + + def test_action_duration_being_not_immediate(self): + queue_url = self._create_queue_and_assert(self.queue_name, False, True) + + for i in range(100): + message_payload = "foobar" + str(i) + self._sqs_api.send_message(queue_url, message_payload) + self._read_while_not_empty(queue_url, 1) + + sqs_counters = self._get_sqs_counters() + + durations = self._get_counter(sqs_counters, { + 'queue': self.queue_name, + 'sensor': 'ReceiveMessage_Duration', + }) + buckets_longer_than_5ms = durations['hist']['buckets'][1:] + assert any(map(lambda x: x > 0, buckets_longer_than_5ms)) + + def test_receive_attempts_are_counted_separately_for_messages_in_one_batch(self): + queue_url = self._create_queue_and_assert(self.queue_name, False, True) + self._sqs_api.send_message_batch(queue_url, [SqsSendMessageParams('data0'), SqsSendMessageParams('data1')]) + self._read_while_not_empty(queue_url, 2) + + sqs_counters = self._get_sqs_counters() + message_receive_attempts = self._get_counter(sqs_counters, { + 'queue': self.queue_name, + 'sensor': 'MessageReceiveAttempts', + }) + assert message_receive_attempts['hist']['buckets'][0] == 2 diff --git a/ydb/tests/functional/sqs/common/test_throttling.py b/ydb/tests/functional/sqs/common/test_throttling.py new file mode 100644 index 000000000000..516f6caebeef --- /dev/null +++ b/ydb/tests/functional/sqs/common/test_throttling.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +from hamcrest import assert_that, raises, not_ + +from ydb.tests.library.sqs.test_base import KikimrSqsTestBase + +throttling_exception_pattern = ".*</Message><Code>ThrottlingException</Code>.*" + + +class TestSqsThrottlingOnNonexistentQueue(KikimrSqsTestBase): + + def test_throttling_on_nonexistent_queue(self): + queue_url = self._create_queue_and_assert(self.queue_name, False, True) + nonexistent_queue_url = queue_url + "_nonex" + + def get_attributes_of_nonexistent_queue(): + self._sqs_api.get_queue_attributes(nonexistent_queue_url) + + # Draining budget + for _ in range(16): + try: + get_attributes_of_nonexistent_queue() + except Exception: + pass + + assert_that( + get_attributes_of_nonexistent_queue, + raises( + RuntimeError, + pattern=throttling_exception_pattern + ) + ) + + assert_that( + lambda: self._sqs_api.send_message(nonexistent_queue_url, "foobar"), + raises( + RuntimeError, + pattern=throttling_exception_pattern + ) + ) + + assert_that( + lambda: self._sqs_api.get_queue_url(self.queue_name + "_nonex"), + raises( + RuntimeError, + pattern=throttling_exception_pattern + ) + ) + + def test_action_which_does_not_requere_existing_queue(self): + queue_url = self._create_queue_and_assert(self.queue_name, False, True) + nonexistent_queue_url = queue_url + "_nonex" + + def get_attributes_of_nonexistent_queue(): + self._sqs_api.get_queue_attributes(nonexistent_queue_url) + + # Draining budget + for _ in range(16): + try: + get_attributes_of_nonexistent_queue() + except Exception: + pass + + assert_that( + lambda: self._sqs_api.get_queue_url(self.queue_name + "_nonex"), + raises( + RuntimeError, + pattern=throttling_exception_pattern + ) + ) + + def test_that_queue_can_be_created_despite_lack_of_throttling_budget(self): + queue_url = self._create_queue_and_assert(self.queue_name, False, True) + nonexistent_queue_url = queue_url + "_nonex" + + def get_attributes_of_nonexistent_queue(): + self._sqs_api.get_queue_attributes(nonexistent_queue_url) + + # Draining budget + for _ in range(16): + try: + get_attributes_of_nonexistent_queue() + except Exception: + pass + + assert_that( + lambda: self._create_queue_and_assert("other_queue_name", False, True), + not_(raises(RuntimeError)) + ) diff --git a/ydb/tests/functional/sqs/common/test_throttling_nonexistent_queue.py b/ydb/tests/functional/sqs/common/test_throttling_nonexistent_queue.py deleted file mode 100644 index 2ed57a9ac3af..000000000000 --- a/ydb/tests/functional/sqs/common/test_throttling_nonexistent_queue.py +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -from hamcrest import assert_that, raises - -from ydb.tests.library.sqs.test_base import KikimrSqsTestBase - - -class TestSqsThrottlingOnNonexistentQueue(KikimrSqsTestBase): - - def test_throttling_on_nonexistent_queue(self): - queue_url = self._create_queue_and_assert(self.queue_name, False, True) - nonexistent_queue_url = queue_url + "_nonex" - - def get_attributes_of_nonexistent_queue(): - self._sqs_api.get_queue_attributes(nonexistent_queue_url) - - # Draining budget - for _ in range(16): - try: - get_attributes_of_nonexistent_queue() - except Exception: - pass - - throttling_exception_pattern = ".*</Message><Code>ThrottlingException</Code>.*" - - assert_that( - get_attributes_of_nonexistent_queue, - raises( - RuntimeError, - pattern=throttling_exception_pattern - ) - ) - - assert_that( - lambda: self._sqs_api.send_message(nonexistent_queue_url, "foobar"), - raises( - RuntimeError, - pattern=throttling_exception_pattern - ) - ) - - assert_that( - lambda: self._sqs_api.get_queue_url(self.queue_name + "_nonex"), - raises( - RuntimeError, - pattern=throttling_exception_pattern - ) - ) diff --git a/ydb/tests/functional/sqs/common/ya.make b/ydb/tests/functional/sqs/common/ya.make index 664663fa2294..7fba7c875e3d 100644 --- a/ydb/tests/functional/sqs/common/ya.make +++ b/ydb/tests/functional/sqs/common/ya.make @@ -13,7 +13,7 @@ TEST_SRCS( test_queue_attributes_validation.py test_queues_managing.py test_format_without_version.py - test_throttling_nonexistent_queue.py + test_throttling.py test_queue_counters.py ) diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_4.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_4.plan index 4e79bd2696d3..8280179fba4a 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_4.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_4.plan @@ -175,26 +175,20 @@ "PlanNodeType": "Connection", "Plans": [ { - "CTE Name": "precompute_0_0", - "Node Type": "TablePointLookup-ConstantExpr", + "Node Type": "TableRangeScan", "Operators": [ { - "Inputs": [ - { - "InternalOperatorId": 1 - } - ], - "Name": "TablePointLookup", + "Inputs": [], + "Name": "TableRangeScan", "ReadColumns": [ "k", "pd" ], + "ReadRangesExpectedSize": 1, + "ReadRangesKeys": [ + "k" + ], "Table": "postgres_jointest/join3.test_plan/parent" - }, - { - "Inputs": [], - "Iterator": "precompute_0_0", - "Name": "Iterator" } ], "PlanNodeId": 1, @@ -235,7 +229,7 @@ "k", "pd" ], - "type": "Lookup" + "type": "Scan" } ] } diff --git a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_5.plan b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_5.plan index 587d33bcc4a8..5263099b2605 100644 --- a/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_5.plan +++ b/ydb/tests/functional/suite_tests/canondata/test_postgres.TestPGSQL.test_sql_suite_plan-jointest_join3.test_/query_5.plan @@ -271,26 +271,20 @@ "PlanNodeType": "Connection", "Plans": [ { - "CTE Name": "precompute_0_0", - "Node Type": "TablePointLookup-ConstantExpr", + "Node Type": "TableRangeScan", "Operators": [ { - "Inputs": [ - { - "InternalOperatorId": 1 - } - ], - "Name": "TablePointLookup", + "Inputs": [], + "Name": "TableRangeScan", "ReadColumns": [ "k", "pd" ], + "ReadRangesExpectedSize": 1, + "ReadRangesKeys": [ + "k" + ], "Table": "postgres_jointest/join3.test_plan/parent" - }, - { - "Inputs": [], - "Iterator": "precompute_0_0", - "Name": "Iterator" } ], "PlanNodeId": 1, @@ -328,14 +322,14 @@ "reads": [ { "columns": [ - "k" + "k", + "pd" ], - "type": "Lookup" + "type": "Scan" }, { "columns": [ - "k", - "pd" + "k" ], "type": "Lookup" } diff --git a/ydb/tests/library/common/wait_for.py b/ydb/tests/library/common/wait_for.py index f3104dac8a98..5c88c7ea5835 100644 --- a/ydb/tests/library/common/wait_for.py +++ b/ydb/tests/library/common/wait_for.py @@ -12,7 +12,7 @@ def wait_for(predicate, timeout_seconds=5.0, step_seconds=0.5, multiply=2, max_step_seconds=5.0): finish_time = time.time() + timeout_seconds - while time.time() < finish_time: + while time.time() <= finish_time: if predicate(): return True step_seconds = min(step_seconds * multiply, max_step_seconds) diff --git a/ydb/tests/library/harness/daemon.py b/ydb/tests/library/harness/daemon.py index dd7860dc129a..94187a38ad3d 100644 --- a/ydb/tests/library/harness/daemon.py +++ b/ydb/tests/library/harness/daemon.py @@ -74,7 +74,7 @@ def __init__( self.__command = tuple(command) self.__stderr_on_error_lines = stderr_on_error_lines self.__daemon = None - self.__killed = False + self.killed = False self.__core_pattern = core_pattern self.logger = logger.getChild(self.__class__.__name__) self.__stdout_file = open(stdout_file, mode='w+b') @@ -137,7 +137,7 @@ def start(self): max_stderr_lines=self.__stderr_on_error_lines, ) - self.__killed = False + self.killed = False return self @@ -150,7 +150,7 @@ def _acceptable_exit_codes(self): return 0, -signal.SIGTERM def __check_can_launch_stop(self, stop_type): - if self.__daemon is None or self.__killed: + if self.__daemon is None or self.killed: return False if self.__daemon is not None and self.__daemon.exit_code == 0: @@ -215,7 +215,7 @@ def kill(self): self.__daemon.process.send_signal(signal.SIGKILL) wait_for(lambda: not self.is_alive(), self.__timeout) - self.__killed = True + self.killed = True self.__check_before_end_stop("kill") diff --git a/ydb/tests/tools/idx_test/CMakeLists.darwin-arm64.txt b/ydb/tests/tools/idx_test/CMakeLists.darwin-arm64.txt index 2768da3f4549..ed374566102d 100644 --- a/ydb/tests/tools/idx_test/CMakeLists.darwin-arm64.txt +++ b/ydb/tests/tools/idx_test/CMakeLists.darwin-arm64.txt @@ -28,8 +28,6 @@ target_link_options(idx_test PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(idx_test PRIVATE ${CMAKE_SOURCE_DIR}/ydb/tests/tools/idx_test/main.cpp diff --git a/ydb/tests/tools/idx_test/CMakeLists.darwin-x86_64.txt b/ydb/tests/tools/idx_test/CMakeLists.darwin-x86_64.txt index 85f13fe714fe..6131bddf7d97 100644 --- a/ydb/tests/tools/idx_test/CMakeLists.darwin-x86_64.txt +++ b/ydb/tests/tools/idx_test/CMakeLists.darwin-x86_64.txt @@ -29,8 +29,6 @@ target_link_options(idx_test PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(idx_test PRIVATE ${CMAKE_SOURCE_DIR}/ydb/tests/tools/idx_test/main.cpp diff --git a/ydb/tests/tools/idx_test/CMakeLists.linux-aarch64.txt b/ydb/tests/tools/idx_test/CMakeLists.linux-aarch64.txt index 166ecb0c6e3d..1837dc6302e1 100644 --- a/ydb/tests/tools/idx_test/CMakeLists.linux-aarch64.txt +++ b/ydb/tests/tools/idx_test/CMakeLists.linux-aarch64.txt @@ -31,9 +31,6 @@ target_link_options(idx_test PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(idx_test PRIVATE ${CMAKE_SOURCE_DIR}/ydb/tests/tools/idx_test/main.cpp diff --git a/ydb/tests/tools/idx_test/CMakeLists.linux-x86_64.txt b/ydb/tests/tools/idx_test/CMakeLists.linux-x86_64.txt index 2bd7d6d6b696..5b1dbb68f629 100644 --- a/ydb/tests/tools/idx_test/CMakeLists.linux-x86_64.txt +++ b/ydb/tests/tools/idx_test/CMakeLists.linux-x86_64.txt @@ -32,9 +32,6 @@ target_link_options(idx_test PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(idx_test PRIVATE ${CMAKE_SOURCE_DIR}/ydb/tests/tools/idx_test/main.cpp diff --git a/ydb/tests/tools/kqprun/CMakeLists.darwin-arm64.txt b/ydb/tests/tools/kqprun/CMakeLists.darwin-arm64.txt index 5a353d6292bb..50dbef5f1d2a 100644 --- a/ydb/tests/tools/kqprun/CMakeLists.darwin-arm64.txt +++ b/ydb/tests/tools/kqprun/CMakeLists.darwin-arm64.txt @@ -25,8 +25,6 @@ target_link_options(kqprun PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(kqprun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/tests/tools/kqprun/kqprun.cpp diff --git a/ydb/tests/tools/kqprun/CMakeLists.darwin-x86_64.txt b/ydb/tests/tools/kqprun/CMakeLists.darwin-x86_64.txt index a7019ec48e46..d389b0fbbde7 100644 --- a/ydb/tests/tools/kqprun/CMakeLists.darwin-x86_64.txt +++ b/ydb/tests/tools/kqprun/CMakeLists.darwin-x86_64.txt @@ -26,8 +26,6 @@ target_link_options(kqprun PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(kqprun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/tests/tools/kqprun/kqprun.cpp diff --git a/ydb/tests/tools/kqprun/CMakeLists.linux-aarch64.txt b/ydb/tests/tools/kqprun/CMakeLists.linux-aarch64.txt index b3c1be0871ae..34f64dc93b21 100644 --- a/ydb/tests/tools/kqprun/CMakeLists.linux-aarch64.txt +++ b/ydb/tests/tools/kqprun/CMakeLists.linux-aarch64.txt @@ -28,9 +28,6 @@ target_link_options(kqprun PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(kqprun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/tests/tools/kqprun/kqprun.cpp diff --git a/ydb/tests/tools/kqprun/CMakeLists.linux-x86_64.txt b/ydb/tests/tools/kqprun/CMakeLists.linux-x86_64.txt index b86593352c46..9d1d186123fb 100644 --- a/ydb/tests/tools/kqprun/CMakeLists.linux-x86_64.txt +++ b/ydb/tests/tools/kqprun/CMakeLists.linux-x86_64.txt @@ -29,9 +29,6 @@ target_link_options(kqprun PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(kqprun PRIVATE ${CMAKE_SOURCE_DIR}/ydb/tests/tools/kqprun/kqprun.cpp diff --git a/ydb/tests/tools/pq_read/CMakeLists.darwin-arm64.txt b/ydb/tests/tools/pq_read/CMakeLists.darwin-arm64.txt index ed466635b767..c946b1704d09 100644 --- a/ydb/tests/tools/pq_read/CMakeLists.darwin-arm64.txt +++ b/ydb/tests/tools/pq_read/CMakeLists.darwin-arm64.txt @@ -20,8 +20,6 @@ target_link_options(pq_read PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(pq_read PRIVATE ${CMAKE_SOURCE_DIR}/ydb/tests/tools/pq_read/main.cpp diff --git a/ydb/tests/tools/pq_read/CMakeLists.darwin-x86_64.txt b/ydb/tests/tools/pq_read/CMakeLists.darwin-x86_64.txt index a1834fd6f092..21b5802e571b 100644 --- a/ydb/tests/tools/pq_read/CMakeLists.darwin-x86_64.txt +++ b/ydb/tests/tools/pq_read/CMakeLists.darwin-x86_64.txt @@ -21,8 +21,6 @@ target_link_options(pq_read PRIVATE -Wl,-platform_version,macos,11.0,11.0 -fPIC -fPIC - -framework - CoreFoundation ) target_sources(pq_read PRIVATE ${CMAKE_SOURCE_DIR}/ydb/tests/tools/pq_read/main.cpp diff --git a/ydb/tests/tools/pq_read/CMakeLists.linux-aarch64.txt b/ydb/tests/tools/pq_read/CMakeLists.linux-aarch64.txt index 7427ce0f1c21..cc829d8a0c2d 100644 --- a/ydb/tests/tools/pq_read/CMakeLists.linux-aarch64.txt +++ b/ydb/tests/tools/pq_read/CMakeLists.linux-aarch64.txt @@ -23,9 +23,6 @@ target_link_options(pq_read PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(pq_read PRIVATE ${CMAKE_SOURCE_DIR}/ydb/tests/tools/pq_read/main.cpp diff --git a/ydb/tests/tools/pq_read/CMakeLists.linux-x86_64.txt b/ydb/tests/tools/pq_read/CMakeLists.linux-x86_64.txt index a4436cdee8d4..fbbb7127d013 100644 --- a/ydb/tests/tools/pq_read/CMakeLists.linux-x86_64.txt +++ b/ydb/tests/tools/pq_read/CMakeLists.linux-x86_64.txt @@ -24,9 +24,6 @@ target_link_options(pq_read PRIVATE -Wl,--no-as-needed -fPIC -fPIC - -lpthread - -lrt - -ldl ) target_sources(pq_read PRIVATE ${CMAKE_SOURCE_DIR}/ydb/tests/tools/pq_read/main.cpp diff --git a/ydb/tools/CMakeLists.txt b/ydb/tools/CMakeLists.txt new file mode 100644 index 000000000000..8f630fbba278 --- /dev/null +++ b/ydb/tools/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(blobsan) +add_subdirectory(tsserver) diff --git a/ydb/tools/blobsan/CMakeLists.darwin-arm64.txt b/ydb/tools/blobsan/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..7fab2b2fd372 --- /dev/null +++ b/ydb/tools/blobsan/CMakeLists.darwin-arm64.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_executable(blobsan) +target_link_libraries(blobsan PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-pop_count + cpp-streams-bzip2 + ydb-core-blobstorage + core-blobstorage-groupinfo + blobstorage-vdisk-query +) +target_link_options(blobsan PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(blobsan PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/tools/blobsan/main.cpp +) +target_allocator(blobsan + system_allocator +) +vcs_info(blobsan) diff --git a/ydb/tools/blobsan/CMakeLists.darwin-x86_64.txt b/ydb/tools/blobsan/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..7d979d0bffc2 --- /dev/null +++ b/ydb/tools/blobsan/CMakeLists.darwin-x86_64.txt @@ -0,0 +1,32 @@ + +# 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(blobsan) +target_link_libraries(blobsan PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + library-cpp-pop_count + cpp-streams-bzip2 + ydb-core-blobstorage + core-blobstorage-groupinfo + blobstorage-vdisk-query +) +target_link_options(blobsan PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(blobsan PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/tools/blobsan/main.cpp +) +target_allocator(blobsan + system_allocator +) +vcs_info(blobsan) diff --git a/ydb/tools/blobsan/CMakeLists.linux-aarch64.txt b/ydb/tools/blobsan/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..0b86cfd68151 --- /dev/null +++ b/ydb/tools/blobsan/CMakeLists.linux-aarch64.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. + + + +add_executable(blobsan) +target_link_libraries(blobsan PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-pop_count + cpp-streams-bzip2 + ydb-core-blobstorage + core-blobstorage-groupinfo + blobstorage-vdisk-query +) +target_link_options(blobsan PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(blobsan PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/tools/blobsan/main.cpp +) +target_allocator(blobsan + cpp-malloc-jemalloc +) +vcs_info(blobsan) diff --git a/ydb/tools/blobsan/CMakeLists.linux-x86_64.txt b/ydb/tools/blobsan/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..13ffba6fad4b --- /dev/null +++ b/ydb/tools/blobsan/CMakeLists.linux-x86_64.txt @@ -0,0 +1,36 @@ + +# 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(blobsan) +target_link_libraries(blobsan PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + library-cpp-pop_count + cpp-streams-bzip2 + ydb-core-blobstorage + core-blobstorage-groupinfo + blobstorage-vdisk-query +) +target_link_options(blobsan PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(blobsan PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/tools/blobsan/main.cpp +) +target_allocator(blobsan + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(blobsan) diff --git a/ydb/tools/blobsan/CMakeLists.txt b/ydb/tools/blobsan/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/tools/blobsan/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/tools/blobsan/CMakeLists.windows-x86_64.txt b/ydb/tools/blobsan/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..47e3ef1c3045 --- /dev/null +++ b/ydb/tools/blobsan/CMakeLists.windows-x86_64.txt @@ -0,0 +1,27 @@ + +# 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(blobsan) +target_link_libraries(blobsan PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + library-cpp-pop_count + cpp-streams-bzip2 + ydb-core-blobstorage + core-blobstorage-groupinfo + blobstorage-vdisk-query +) +target_sources(blobsan PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/tools/blobsan/main.cpp +) +target_allocator(blobsan + system_allocator +) +vcs_info(blobsan) diff --git a/ydb/tools/cfg/static.py b/ydb/tools/cfg/static.py index 84bf540891da..95faefd86e5a 100644 --- a/ydb/tools/cfg/static.py +++ b/ydb/tools/cfg/static.py @@ -113,14 +113,13 @@ def __init__( ) ) self._enable_cms_config_cache = template.get("enable_cms_config_cache", enable_cms_config_cache) - if "tracing" in template: - tracing = template["tracing"] + tracing = template.get("tracing_config") + if tracing is not None: self.__tracing = ( - tracing["host"], - tracing["port"], - tracing["root_ca"], - tracing["service_name"], - tracing.get("auth_config") + tracing["backend"], + tracing.get("uploader"), + tracing.get("sampling", []), + tracing.get("external_throttling", []), ) else: self.__tracing = None @@ -1121,37 +1120,131 @@ def __generate_sys_txt(self): self.__generate_sys_txt_advanced() def __generate_tracing_txt(self): + def get_selectors(selectors): + selectors_pb = config_pb2.TTracingConfig.TSelectors() + + request_type = selectors["request_type"] + if request_type is not None: + selectors_pb.RequestType = request_type + + return selectors_pb + + def get_sampling_scope(sampling): + sampling_scope_pb = config_pb2.TTracingConfig.TSamplingRule() + selectors = sampling.get("scope") + if selectors is not None: + sampling_scope_pb.Scope.CopyFrom(get_selectors(selectors)) + sampling_scope_pb.Fraction = sampling['fraction'] + sampling_scope_pb.Level = sampling['level'] + sampling_scope_pb.MaxTracesPerMinute = sampling['max_traces_per_minute'] + sampling_scope_pb.MaxTracesBurst = sampling.get('max_traces_burst', 0) + return sampling_scope_pb + + def get_external_throttling(throttling): + throttling_scope_pb = config_pb2.TTracingConfig.TExternalThrottlingRule() + selectors = throttling.get("scope") + if selectors is not None: + throttling_scope_pb.Scope.CopyFrom(get_selectors(selectors)) + throttling_scope_pb.MaxTracesPerMinute = throttling['max_traces_per_minute'] + throttling_scope_pb.MaxTracesBurst = throttling.get('max_traces_burst', 0) + return throttling_scope_pb + + def get_auth_config(auth): + auth_pb = config_pb2.TTracingConfig.TBackendConfig.TAuthConfig() + tvm = auth.get("tvm") + if tvm is not None: + tvm_pb = auth_pb.Tvm + + if "host" in tvm: + tvm_pb.Host = tvm["host"] + if "port" in tvm: + tvm_pb.Port = tvm["port"] + tvm_pb.SelfTvmId = tvm["self_tvm_id"] + tvm_pb.TracingTvmId = tvm["tracing_tvm_id"] + if "disk_cache_dir" in tvm: + tvm_pb.DiskCacheDir = tvm["disk_cache_dir"] + + if "plain_text_secret" in tvm: + tvm_pb.PlainTextSecret = tvm["plain_text_secret"] + elif "secret_file" in tvm: + tvm_pb.SecretFile = tvm["secret_file"] + elif "secret_environment_variable" in tvm: + tvm_pb.SecretEnvironmentVariable = tvm["secret_environment_variable"] + return auth_pb + + def get_opentelemetry(opentelemetry): + opentelemetry_pb = config_pb2.TTracingConfig.TBackendConfig.TOpentelemetryBackend() + + opentelemetry_pb.CollectorUrl = opentelemetry["collector_url"] + opentelemetry_pb.ServiceName = opentelemetry["service_name"] + + return opentelemetry_pb + + def get_backend(backend): + backend_pb = config_pb2.TTracingConfig.TBackendConfig() + + auth = backend.get("auth_config") + if auth is not None: + backend_pb.AuthConfig.CopyFrom(get_auth_config(auth)) + + opentelemetry = backend["opentelemetry"] + if opentelemetry is not None: + backend_pb.Opentelemetry.CopyFrom(get_opentelemetry(opentelemetry)) + + return backend_pb + + def get_uploader(uploader): + uploader_pb = config_pb2.TTracingConfig.TUploaderConfig() + + max_exported_spans_per_second = uploader.get("max_exported_spans_per_second") + if max_exported_spans_per_second is not None: + uploader_pb.MaxExportedSpansPerSecond = max_exported_spans_per_second + + max_spans_in_batch = uploader.get("max_spans_in_batch") + if max_spans_in_batch is not None: + uploader_pb.MaxSpansInBatch = max_spans_in_batch + + max_bytes_in_batch = uploader.get("max_bytes_in_batch") + if max_bytes_in_batch is not None: + uploader_pb.MaxBytesInBatch = max_bytes_in_batch + + max_batch_accumulation_milliseconds = uploader.get("max_batch_accumulation_milliseconds") + if max_batch_accumulation_milliseconds is not None: + uploader_pb.MaxBatchAccumulationMilliseconds = max_batch_accumulation_milliseconds + + span_export_timeout_seconds = uploader.get("span_export_timeout_seconds") + if span_export_timeout_seconds is not None: + uploader_pb.SpanExportTimeoutSeconds = span_export_timeout_seconds + + max_export_requests_inflight = uploader.get("max_export_requests_inflight") + if max_export_requests_inflight is not None: + uploader_pb.MaxExportRequestsInflight = max_export_requests_inflight + + return uploader_pb + pb = config_pb2.TAppConfig() if self.__tracing: tracing_pb = pb.TracingConfig ( - tracing_pb.Host, - tracing_pb.Port, - tracing_pb.RootCA, - tracing_pb.ServiceName, - auth_config + backend, + uploader, + sampling, + external_throttling ) = self.__tracing - if auth_config: - auth_pb = tracing_pb.AuthConfig - if "tvm" in auth_config: - tvm = auth_config.get("tvm") - tvm_pb = auth_pb.Tvm - - if "host" in tvm: - tvm_pb.Host = tvm["host"] - if "port" in tvm: - tvm_pb.Port = tvm["port"] - tvm_pb.SelfTvmId = tvm["self_tvm_id"] - tvm_pb.TracingTvmId = tvm["tracing_tvm_id"] - tvm_pb.DiskCacheDir = tvm["disk_cache_dir"] + assert isinstance(sampling, list) + assert isinstance(external_throttling, list) + + tracing_pb.Backend.CopyFrom(get_backend(backend)) + + if uploader is not None: + tracing_pb.Uploader.CopyFrom(get_uploader(uploader)) + + for sampling_scope in sampling: + tracing_pb.Sampling.append(get_sampling_scope(sampling_scope)) - if "plain_text_secret" in tvm: - tvm_pb.PlainTextSecret = tvm["plain_text_secret"] - elif "secret_file" in tvm: - tvm_pb.SecretFile = tvm["secret_file"] - elif "secret_environment_variable" in tvm: - tvm_pb.SecretEnvironmentVariable = tvm["secret_environment_variable"] + for throttling_scope in external_throttling: + tracing_pb.ExternalThrottling.append(get_external_throttling(throttling_scope)) self.__proto_configs["tracing.txt"] = pb diff --git a/ydb/tools/cfg/validation.py b/ydb/tools/cfg/validation.py index 4e17e4ac78b2..e1b4315c5e40 100644 --- a/ydb/tools/cfg/validation.py +++ b/ydb/tools/cfg/validation.py @@ -126,21 +126,91 @@ "additionalProperties": False, } +SELECTORS_CONFIGS = dict( + type="object", + properties=dict( + request_type=dict(type="string"), + ), + required=[], + additionalProperties=False, +) + TRACING_SCHEMA = dict( type="object", properties=dict( - host=dict(type="string"), - port=dict(type="integer"), - root_ca=dict(type="string"), - service_name=dict(type="string"), - auth_config=dict(type="object"), + backend=dict( + type="object", + properties=dict( + auth_config=dict( + type="object", + properties=dict( + tvm=dict( + type="object", + properties=dict( + url=dict(type="string"), + self_tvm_id=dict(type="integer"), + tracing_tvm_id=dict(type="integer"), + disc_cache_dir=dict(type="string"), + plain_text_secret=dict(type="string"), + secret_file=dict(type="string"), + secret_environment_variable=dict(type="string"), + ), + required=["self_tvm_id", "tracing_tvm_id"], + ) + ), + required=["tvm"], + ), + opentelemetry=dict( + type="object", + properties=dict( + collector_url=dict(type="string"), + service_name=dict(type="string"), + ) + ), + ), + required=["opentelemetry"], + additionalProperties=False, + ), + uploader=dict( + type="object", + properties=dict( + max_exported_spans_per_second=dict(type="integer", minimum=1), + max_spans_in_batch=dict(type="integer", minimum=1), + max_bytes_in_batch=dict(type="integer"), + max_batch_accumulation_milliseconds=dict(type="integer"), + span_export_timeout_seconds=dict(type="integer", minimum=1), + max_export_requests_inflight=dict(type="integer", minimum=1), + ), + additionalProperties=False, + ), + sampling=dict( + type="array", + items=dict( + type="object", + properties=dict( + scope=SELECTORS_CONFIGS, + fraction=dict(type="number", minimum=0, maximum=1), + level=dict(type="integer", minimum=0, maximum=15), + max_traces_per_minute=dict(type="integer", minimum=0), + max_traces_burst=dict(type="integer", minimum=0), + ), + required=["fraction", "level", "max_traces_per_minute"], + ), + ), + external_throttling=dict( + type="array", + items=dict( + type="object", + properties=dict( + scope=SELECTORS_CONFIGS, + max_traces_per_minute=dict(type="integer", minimum=0), + max_traces_burst=dict(type="integer", minimum=0), + ), + required=["max_traces_per_minute"], + ), + ), ), - required=[ - "host", - "port", - "root_ca", - "service_name", - ], + required=["backend"], additionalProperties=False, ) @@ -925,7 +995,7 @@ "features": copy.deepcopy(FEATURES_SCHEMA), "shared_cache": copy.deepcopy(SHARED_CACHE_SCHEMA), "sys": copy.deepcopy(SYS_SCHEMA), - "tracing": copy.deepcopy(TRACING_SCHEMA), + "tracing_config": copy.deepcopy(TRACING_SCHEMA), "failure_injection_config": copy.deepcopy(FAILURE_INJECTION_CONFIG_SCHEMA), "solomon": copy.deepcopy(SOLOMON_SCHEMA), "cms": copy.deepcopy(CMS_SCHEMA), diff --git a/ydb/tools/tsserver/CMakeLists.darwin-arm64.txt b/ydb/tools/tsserver/CMakeLists.darwin-arm64.txt new file mode 100644 index 000000000000..4e333f3ec4de --- /dev/null +++ b/ydb/tools/tsserver/CMakeLists.darwin-arm64.txt @@ -0,0 +1,28 @@ + +# 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(tsserver) +target_link_libraries(tsserver PUBLIC + contrib-libs-cxxsupp + yutil + library-actors-interconnect + ydb-core-protos +) +target_link_options(tsserver PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(tsserver PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/tools/tsserver/main.cpp +) +target_allocator(tsserver + system_allocator +) +vcs_info(tsserver) diff --git a/ydb/tools/tsserver/CMakeLists.darwin-x86_64.txt b/ydb/tools/tsserver/CMakeLists.darwin-x86_64.txt new file mode 100644 index 000000000000..aaea022802a1 --- /dev/null +++ b/ydb/tools/tsserver/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_executable(tsserver) +target_link_libraries(tsserver PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + library-actors-interconnect + ydb-core-protos +) +target_link_options(tsserver PRIVATE + -Wl,-platform_version,macos,11.0,11.0 + -fPIC + -fPIC +) +target_sources(tsserver PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/tools/tsserver/main.cpp +) +target_allocator(tsserver + system_allocator +) +vcs_info(tsserver) diff --git a/ydb/tools/tsserver/CMakeLists.linux-aarch64.txt b/ydb/tools/tsserver/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..4cbc886b9552 --- /dev/null +++ b/ydb/tools/tsserver/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_executable(tsserver) +target_link_libraries(tsserver PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-actors-interconnect + ydb-core-protos +) +target_link_options(tsserver PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(tsserver PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/tools/tsserver/main.cpp +) +target_allocator(tsserver + cpp-malloc-jemalloc +) +vcs_info(tsserver) diff --git a/ydb/tools/tsserver/CMakeLists.linux-x86_64.txt b/ydb/tools/tsserver/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..d1da28350c3b --- /dev/null +++ b/ydb/tools/tsserver/CMakeLists.linux-x86_64.txt @@ -0,0 +1,33 @@ + +# 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(tsserver) +target_link_libraries(tsserver PUBLIC + contrib-libs-linux-headers + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + library-actors-interconnect + ydb-core-protos +) +target_link_options(tsserver PRIVATE + -ldl + -lrt + -Wl,--no-as-needed + -fPIC + -fPIC +) +target_sources(tsserver PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/tools/tsserver/main.cpp +) +target_allocator(tsserver + cpp-malloc-tcmalloc + libs-tcmalloc-no_percpu_cache +) +vcs_info(tsserver) diff --git a/ydb/tools/tsserver/CMakeLists.txt b/ydb/tools/tsserver/CMakeLists.txt new file mode 100644 index 000000000000..d863ebd18067 --- /dev/null +++ b/ydb/tools/tsserver/CMakeLists.txt @@ -0,0 +1,19 @@ + +# 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 "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + include(CMakeLists.darwin-arm64.txt) +elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) + include(CMakeLists.windows-x86_64.txt) +endif() diff --git a/ydb/tools/tsserver/CMakeLists.windows-x86_64.txt b/ydb/tools/tsserver/CMakeLists.windows-x86_64.txt new file mode 100644 index 000000000000..8eaa76723cf5 --- /dev/null +++ b/ydb/tools/tsserver/CMakeLists.windows-x86_64.txt @@ -0,0 +1,24 @@ + +# 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(tsserver) +target_link_libraries(tsserver PUBLIC + contrib-libs-cxxsupp + yutil + library-cpp-cpuid_check + library-actors-interconnect + ydb-core-protos +) +target_sources(tsserver PRIVATE + ${CMAKE_SOURCE_DIR}/ydb/tools/tsserver/main.cpp +) +target_allocator(tsserver + system_allocator +) +vcs_info(tsserver) diff --git a/yt/CMakeLists.txt b/yt/CMakeLists.txt index f7ed775592ef..8e57f8c28a14 100644 --- a/yt/CMakeLists.txt +++ b/yt/CMakeLists.txt @@ -7,6 +7,5 @@ add_subdirectory(cpp) -add_subdirectory(yql) add_subdirectory(yt) add_subdirectory(yt_proto) diff --git a/yt/cpp/mapreduce/client/CMakeLists.linux-aarch64.txt b/yt/cpp/mapreduce/client/CMakeLists.linux-aarch64.txt index 69b08c73ce97..5658f8832893 100644 --- a/yt/cpp/mapreduce/client/CMakeLists.linux-aarch64.txt +++ b/yt/cpp/mapreduce/client/CMakeLists.linux-aarch64.txt @@ -33,7 +33,8 @@ target_link_libraries(cpp-mapreduce-client PUBLIC cpp-mapreduce-io mapreduce-library-table_schema cpp-mapreduce-raw_client - yt_proto-yt-core + yt-yt-core + yt-core-http tools-enum_parser-enum_serialization_runtime ) target_sources(cpp-mapreduce-client PRIVATE diff --git a/yt/cpp/mapreduce/library/table_schema/CMakeLists.darwin-arm64.txt b/yt/cpp/mapreduce/library/table_schema/CMakeLists.darwin-arm64.txt index 92eec36f23b4..d4eae0300f3a 100644 --- a/yt/cpp/mapreduce/library/table_schema/CMakeLists.darwin-arm64.txt +++ b/yt/cpp/mapreduce/library/table_schema/CMakeLists.darwin-arm64.txt @@ -17,5 +17,6 @@ target_link_libraries(mapreduce-library-table_schema PUBLIC cpp-mapreduce-interface ) target_sources(mapreduce-library-table_schema PRIVATE + ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/library/table_schema/protobuf.h ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/library/table_schema/protobuf.cpp ) diff --git a/yt/cpp/mapreduce/library/table_schema/CMakeLists.darwin-x86_64.txt b/yt/cpp/mapreduce/library/table_schema/CMakeLists.darwin-x86_64.txt index 92eec36f23b4..d4eae0300f3a 100644 --- a/yt/cpp/mapreduce/library/table_schema/CMakeLists.darwin-x86_64.txt +++ b/yt/cpp/mapreduce/library/table_schema/CMakeLists.darwin-x86_64.txt @@ -17,5 +17,6 @@ target_link_libraries(mapreduce-library-table_schema PUBLIC cpp-mapreduce-interface ) target_sources(mapreduce-library-table_schema PRIVATE + ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/library/table_schema/protobuf.h ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/library/table_schema/protobuf.cpp ) diff --git a/yt/cpp/mapreduce/library/table_schema/CMakeLists.linux-aarch64.txt b/yt/cpp/mapreduce/library/table_schema/CMakeLists.linux-aarch64.txt index 0bb5208c97b7..9ee6030b3ae9 100644 --- a/yt/cpp/mapreduce/library/table_schema/CMakeLists.linux-aarch64.txt +++ b/yt/cpp/mapreduce/library/table_schema/CMakeLists.linux-aarch64.txt @@ -18,5 +18,6 @@ target_link_libraries(mapreduce-library-table_schema PUBLIC cpp-mapreduce-interface ) target_sources(mapreduce-library-table_schema PRIVATE + ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/library/table_schema/protobuf.h ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/library/table_schema/protobuf.cpp ) diff --git a/yt/cpp/mapreduce/library/table_schema/CMakeLists.linux-x86_64.txt b/yt/cpp/mapreduce/library/table_schema/CMakeLists.linux-x86_64.txt index 0bb5208c97b7..9ee6030b3ae9 100644 --- a/yt/cpp/mapreduce/library/table_schema/CMakeLists.linux-x86_64.txt +++ b/yt/cpp/mapreduce/library/table_schema/CMakeLists.linux-x86_64.txt @@ -18,5 +18,6 @@ target_link_libraries(mapreduce-library-table_schema PUBLIC cpp-mapreduce-interface ) target_sources(mapreduce-library-table_schema PRIVATE + ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/library/table_schema/protobuf.h ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/library/table_schema/protobuf.cpp ) diff --git a/yt/cpp/mapreduce/library/table_schema/CMakeLists.windows-x86_64.txt b/yt/cpp/mapreduce/library/table_schema/CMakeLists.windows-x86_64.txt index f8288b61f4c9..54d5e9495bae 100644 --- a/yt/cpp/mapreduce/library/table_schema/CMakeLists.windows-x86_64.txt +++ b/yt/cpp/mapreduce/library/table_schema/CMakeLists.windows-x86_64.txt @@ -14,5 +14,6 @@ target_link_libraries(mapreduce-library-table_schema PUBLIC cpp-mapreduce-interface ) target_sources(mapreduce-library-table_schema PRIVATE + ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/library/table_schema/protobuf.h ${CMAKE_SOURCE_DIR}/yt/cpp/mapreduce/library/table_schema/protobuf.cpp ) diff --git a/yt/yt/build/CMakeLists.darwin-arm64.txt b/yt/yt/build/CMakeLists.darwin-arm64.txt index 8ab1b502578a..8672f87cd1db 100644 --- a/yt/yt/build/CMakeLists.darwin-arm64.txt +++ b/yt/yt/build/CMakeLists.darwin-arm64.txt @@ -56,11 +56,11 @@ set( ) set( YT_VERSION_MAJOR - 23 + 24 ) set( YT_VERSION_MINOR - 3 + 1 ) set( YT_VERSION_PATCH @@ -83,6 +83,8 @@ target_link_libraries(yt-yt-build PUBLIC yutil ) target_sources(yt-yt-build PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/build/config.h + ${CMAKE_SOURCE_DIR}/yt/yt/build/build.h ${CMAKE_SOURCE_DIR}/yt/yt/build/ya_version.cpp ${CMAKE_BINARY_DIR}/yt/yt/build/build.cpp ) diff --git a/yt/yt/build/CMakeLists.darwin-x86_64.txt b/yt/yt/build/CMakeLists.darwin-x86_64.txt index 8ab1b502578a..8672f87cd1db 100644 --- a/yt/yt/build/CMakeLists.darwin-x86_64.txt +++ b/yt/yt/build/CMakeLists.darwin-x86_64.txt @@ -56,11 +56,11 @@ set( ) set( YT_VERSION_MAJOR - 23 + 24 ) set( YT_VERSION_MINOR - 3 + 1 ) set( YT_VERSION_PATCH @@ -83,6 +83,8 @@ target_link_libraries(yt-yt-build PUBLIC yutil ) target_sources(yt-yt-build PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/build/config.h + ${CMAKE_SOURCE_DIR}/yt/yt/build/build.h ${CMAKE_SOURCE_DIR}/yt/yt/build/ya_version.cpp ${CMAKE_BINARY_DIR}/yt/yt/build/build.cpp ) diff --git a/yt/yt/build/CMakeLists.linux-aarch64.txt b/yt/yt/build/CMakeLists.linux-aarch64.txt index ab1fb3ded158..70b88ce1089d 100644 --- a/yt/yt/build/CMakeLists.linux-aarch64.txt +++ b/yt/yt/build/CMakeLists.linux-aarch64.txt @@ -56,11 +56,11 @@ set( ) set( YT_VERSION_MAJOR - 23 + 24 ) set( YT_VERSION_MINOR - 3 + 1 ) set( YT_VERSION_PATCH @@ -84,6 +84,8 @@ target_link_libraries(yt-yt-build PUBLIC yutil ) target_sources(yt-yt-build PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/build/config.h + ${CMAKE_SOURCE_DIR}/yt/yt/build/build.h ${CMAKE_SOURCE_DIR}/yt/yt/build/ya_version.cpp ${CMAKE_BINARY_DIR}/yt/yt/build/build.cpp ) diff --git a/yt/yt/build/CMakeLists.linux-x86_64.txt b/yt/yt/build/CMakeLists.linux-x86_64.txt index ab1fb3ded158..70b88ce1089d 100644 --- a/yt/yt/build/CMakeLists.linux-x86_64.txt +++ b/yt/yt/build/CMakeLists.linux-x86_64.txt @@ -56,11 +56,11 @@ set( ) set( YT_VERSION_MAJOR - 23 + 24 ) set( YT_VERSION_MINOR - 3 + 1 ) set( YT_VERSION_PATCH @@ -84,6 +84,8 @@ target_link_libraries(yt-yt-build PUBLIC yutil ) target_sources(yt-yt-build PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/build/config.h + ${CMAKE_SOURCE_DIR}/yt/yt/build/build.h ${CMAKE_SOURCE_DIR}/yt/yt/build/ya_version.cpp ${CMAKE_BINARY_DIR}/yt/yt/build/build.cpp ) diff --git a/yt/yt/build/CMakeLists.windows-x86_64.txt b/yt/yt/build/CMakeLists.windows-x86_64.txt index 196a5c4d95c5..35e5fbdda92f 100644 --- a/yt/yt/build/CMakeLists.windows-x86_64.txt +++ b/yt/yt/build/CMakeLists.windows-x86_64.txt @@ -56,11 +56,11 @@ set( ) set( YT_VERSION_MAJOR - 23 + 24 ) set( YT_VERSION_MINOR - 3 + 1 ) set( YT_VERSION_PATCH @@ -80,6 +80,8 @@ target_link_libraries(yt-yt-build PUBLIC yutil ) target_sources(yt-yt-build PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/build/config.h + ${CMAKE_SOURCE_DIR}/yt/yt/build/build.h ${CMAKE_SOURCE_DIR}/yt/yt/build/ya_version.cpp ${CMAKE_BINARY_DIR}/yt/yt/build/build.cpp ) diff --git a/yt/yt/client/CMakeLists.darwin-arm64.txt b/yt/yt/client/CMakeLists.darwin-arm64.txt index 3cfba2d716ba..734c2d2af4d7 100644 --- a/yt/yt/client/CMakeLists.darwin-arm64.txt +++ b/yt/yt/client/CMakeLists.darwin-arm64.txt @@ -50,13 +50,14 @@ target_link_libraries(yt-yt-client PUBLIC contrib-libs-pfr ) target_sources(yt-yt-client PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/client/_/api/rpc_proxy/protocol_version_variables.h ${CMAKE_SOURCE_DIR}/yt/yt/client/api/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/client_common.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/client_cache.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/delegating_client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/delegating_transaction.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/etc_client.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/client/api/bundle_controller_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/journal_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/operation_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/security_client.cpp @@ -69,8 +70,11 @@ target_sources(yt-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rowset.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/skynet.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/transaction.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/queue_transaction_mixin.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/dynamic_table_transaction_mixin.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/persistent_queue.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/sticky_transaction_pool.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/options.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/address_helpers.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/public.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/config.cpp @@ -91,6 +95,8 @@ target_sources(yt-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/transaction_impl.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/row_stream.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/wire_row_stream.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/bundle_controller_client/bundle_controller_client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/bundle_controller_client/bundle_controller_settings.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/election/public.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/hive/timestamp_map.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/hydra/version.cpp @@ -166,6 +172,7 @@ target_sources(yt-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/common.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/consumer_client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/helpers.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/partition_reader.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/queue_rowset.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/ypath/rich.cpp diff --git a/yt/yt/client/CMakeLists.darwin-x86_64.txt b/yt/yt/client/CMakeLists.darwin-x86_64.txt index 3cfba2d716ba..734c2d2af4d7 100644 --- a/yt/yt/client/CMakeLists.darwin-x86_64.txt +++ b/yt/yt/client/CMakeLists.darwin-x86_64.txt @@ -50,13 +50,14 @@ target_link_libraries(yt-yt-client PUBLIC contrib-libs-pfr ) target_sources(yt-yt-client PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/client/_/api/rpc_proxy/protocol_version_variables.h ${CMAKE_SOURCE_DIR}/yt/yt/client/api/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/client_common.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/client_cache.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/delegating_client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/delegating_transaction.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/etc_client.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/client/api/bundle_controller_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/journal_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/operation_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/security_client.cpp @@ -69,8 +70,11 @@ target_sources(yt-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rowset.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/skynet.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/transaction.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/queue_transaction_mixin.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/dynamic_table_transaction_mixin.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/persistent_queue.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/sticky_transaction_pool.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/options.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/address_helpers.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/public.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/config.cpp @@ -91,6 +95,8 @@ target_sources(yt-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/transaction_impl.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/row_stream.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/wire_row_stream.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/bundle_controller_client/bundle_controller_client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/bundle_controller_client/bundle_controller_settings.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/election/public.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/hive/timestamp_map.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/hydra/version.cpp @@ -166,6 +172,7 @@ target_sources(yt-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/common.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/consumer_client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/helpers.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/partition_reader.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/queue_rowset.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/ypath/rich.cpp diff --git a/yt/yt/client/CMakeLists.linux-aarch64.txt b/yt/yt/client/CMakeLists.linux-aarch64.txt index 5e96b7c47dd7..3d38562c3710 100644 --- a/yt/yt/client/CMakeLists.linux-aarch64.txt +++ b/yt/yt/client/CMakeLists.linux-aarch64.txt @@ -52,13 +52,14 @@ target_link_libraries(yt-yt-client PUBLIC contrib-libs-pfr ) target_sources(yt-yt-client PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/client/_/api/rpc_proxy/protocol_version_variables.h ${CMAKE_SOURCE_DIR}/yt/yt/client/api/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/client_common.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/client_cache.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/delegating_client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/delegating_transaction.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/etc_client.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/client/api/bundle_controller_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/journal_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/operation_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/security_client.cpp @@ -71,8 +72,11 @@ target_sources(yt-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rowset.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/skynet.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/transaction.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/queue_transaction_mixin.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/dynamic_table_transaction_mixin.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/persistent_queue.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/sticky_transaction_pool.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/options.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/address_helpers.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/public.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/config.cpp @@ -93,6 +97,8 @@ target_sources(yt-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/transaction_impl.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/row_stream.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/wire_row_stream.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/bundle_controller_client/bundle_controller_client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/bundle_controller_client/bundle_controller_settings.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/election/public.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/hive/timestamp_map.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/hydra/version.cpp @@ -168,6 +174,7 @@ target_sources(yt-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/common.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/consumer_client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/helpers.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/partition_reader.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/queue_rowset.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/ypath/rich.cpp diff --git a/yt/yt/client/CMakeLists.linux-x86_64.txt b/yt/yt/client/CMakeLists.linux-x86_64.txt index 5e96b7c47dd7..3d38562c3710 100644 --- a/yt/yt/client/CMakeLists.linux-x86_64.txt +++ b/yt/yt/client/CMakeLists.linux-x86_64.txt @@ -52,13 +52,14 @@ target_link_libraries(yt-yt-client PUBLIC contrib-libs-pfr ) target_sources(yt-yt-client PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/client/_/api/rpc_proxy/protocol_version_variables.h ${CMAKE_SOURCE_DIR}/yt/yt/client/api/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/client_common.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/client_cache.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/delegating_client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/delegating_transaction.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/etc_client.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/client/api/bundle_controller_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/journal_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/operation_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/security_client.cpp @@ -71,8 +72,11 @@ target_sources(yt-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rowset.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/skynet.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/transaction.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/queue_transaction_mixin.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/dynamic_table_transaction_mixin.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/persistent_queue.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/sticky_transaction_pool.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/api/options.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/address_helpers.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/public.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/config.cpp @@ -93,6 +97,8 @@ target_sources(yt-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/transaction_impl.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/row_stream.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/api/rpc_proxy/wire_row_stream.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/bundle_controller_client/bundle_controller_client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/bundle_controller_client/bundle_controller_settings.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/election/public.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/hive/timestamp_map.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/hydra/version.cpp @@ -168,6 +174,7 @@ target_sources(yt-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/common.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/consumer_client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/helpers.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/partition_reader.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/queue_client/queue_rowset.cpp ${CMAKE_SOURCE_DIR}/yt/yt/client/ypath/rich.cpp diff --git a/yt/yt/client/arrow/fbs/CMakeLists.linux-aarch64.txt b/yt/yt/client/arrow/fbs/CMakeLists.linux-aarch64.txt index aaa3e3963857..b0d9bf1bc6b3 100644 --- a/yt/yt/client/arrow/fbs/CMakeLists.linux-aarch64.txt +++ b/yt/yt/client/arrow/fbs/CMakeLists.linux-aarch64.txt @@ -39,6 +39,18 @@ target_link_libraries(client-arrow-fbs PUBLIC contrib-libs-flatbuffers ) target_sources(client-arrow-fbs PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Message.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Message.iter.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Schema.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Schema.iter.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Tensor.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Tensor.iter.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/SparseTensor.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/SparseTensor.iter.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Message.bfbs + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Schema.bfbs + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Tensor.bfbs + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/SparseTensor.bfbs ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Message.fbs.cpp ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Schema.fbs.cpp ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Tensor.fbs.cpp diff --git a/yt/yt/client/arrow/fbs/CMakeLists.linux-x86_64.txt b/yt/yt/client/arrow/fbs/CMakeLists.linux-x86_64.txt index aaa3e3963857..b0d9bf1bc6b3 100644 --- a/yt/yt/client/arrow/fbs/CMakeLists.linux-x86_64.txt +++ b/yt/yt/client/arrow/fbs/CMakeLists.linux-x86_64.txt @@ -39,6 +39,18 @@ target_link_libraries(client-arrow-fbs PUBLIC contrib-libs-flatbuffers ) target_sources(client-arrow-fbs PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Message.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Message.iter.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Schema.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Schema.iter.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Tensor.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Tensor.iter.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/SparseTensor.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/SparseTensor.iter.fbs.h + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Message.bfbs + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Schema.bfbs + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Tensor.bfbs + ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/SparseTensor.bfbs ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Message.fbs.cpp ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Schema.fbs.cpp ${CMAKE_BINARY_DIR}/yt/yt/client/arrow/fbs/Tensor.fbs.cpp diff --git a/yt/yt/core/CMakeLists.darwin-arm64.txt b/yt/yt/core/CMakeLists.darwin-arm64.txt index 192a65f02842..df96c9ad5d4e 100644 --- a/yt/yt/core/CMakeLists.darwin-arm64.txt +++ b/yt/yt/core/CMakeLists.darwin-arm64.txt @@ -9,8 +9,6 @@ add_subdirectory(http) add_subdirectory(https) add_subdirectory(misc) -add_subdirectory(rpc) -add_subdirectory(service_discovery) add_library(yt-yt-core) target_compile_options(yt-yt-core PRIVATE @@ -129,7 +127,7 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/thread_pool.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/throughput_throttler.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/two_level_fair_share_thread_pool.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/recurring_executor_base.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/retrying_periodic_executor.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/scheduled_executor.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/crypto/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/crypto/crypto.cpp @@ -138,7 +136,6 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/formatter.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/fluent_log.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log_manager.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/logger_owner.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/serializable_logger.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/stream_output.cpp @@ -149,7 +146,6 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/zstd_compression.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/arithmetic_formula.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/backoff_strategy.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/backoff_strategy_config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bitmap.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bit_packed_unsigned_vector.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bit_packing.cpp @@ -278,6 +274,7 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/string_merger.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/ypath_designated_consumer.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/depth_limiting_yson_consumer.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/list_verb_lazy_yson_consumer.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/attributes_stripper.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/attribute_consumer.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/helpers.cpp @@ -367,6 +364,7 @@ target_link_libraries(yt-yt-core.global PUBLIC ) target_sources(yt-yt-core.global PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log_manager.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/assert.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/guid.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/ref_tracked.cpp diff --git a/yt/yt/core/CMakeLists.darwin-x86_64.txt b/yt/yt/core/CMakeLists.darwin-x86_64.txt index 0c1266e936c6..223fc5684b26 100644 --- a/yt/yt/core/CMakeLists.darwin-x86_64.txt +++ b/yt/yt/core/CMakeLists.darwin-x86_64.txt @@ -9,8 +9,6 @@ add_subdirectory(http) add_subdirectory(https) add_subdirectory(misc) -add_subdirectory(rpc) -add_subdirectory(service_discovery) add_library(yt-yt-core) target_compile_options(yt-yt-core PRIVATE @@ -130,7 +128,7 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/thread_pool.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/throughput_throttler.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/two_level_fair_share_thread_pool.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/recurring_executor_base.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/retrying_periodic_executor.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/scheduled_executor.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/crypto/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/crypto/crypto.cpp @@ -139,7 +137,6 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/formatter.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/fluent_log.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log_manager.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/logger_owner.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/serializable_logger.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/stream_output.cpp @@ -150,7 +147,6 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/zstd_compression.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/arithmetic_formula.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/backoff_strategy.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/backoff_strategy_config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bitmap.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bit_packed_unsigned_vector.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bit_packing.cpp @@ -279,6 +275,7 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/string_merger.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/ypath_designated_consumer.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/depth_limiting_yson_consumer.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/list_verb_lazy_yson_consumer.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/attributes_stripper.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/attribute_consumer.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/helpers.cpp @@ -369,6 +366,7 @@ target_link_libraries(yt-yt-core.global PUBLIC ) target_sources(yt-yt-core.global PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log_manager.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/assert.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/guid.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/ref_tracked.cpp diff --git a/yt/yt/core/CMakeLists.linux-aarch64.txt b/yt/yt/core/CMakeLists.linux-aarch64.txt index d2a2d8b06782..c2e7deebc8cf 100644 --- a/yt/yt/core/CMakeLists.linux-aarch64.txt +++ b/yt/yt/core/CMakeLists.linux-aarch64.txt @@ -130,7 +130,7 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/thread_pool.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/throughput_throttler.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/two_level_fair_share_thread_pool.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/recurring_executor_base.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/retrying_periodic_executor.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/scheduled_executor.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/crypto/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/crypto/crypto.cpp @@ -139,7 +139,6 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/formatter.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/fluent_log.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log_manager.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/logger_owner.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/serializable_logger.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/stream_output.cpp @@ -150,7 +149,6 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/zstd_compression.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/arithmetic_formula.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/backoff_strategy.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/backoff_strategy_config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bitmap.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bit_packed_unsigned_vector.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bit_packing.cpp @@ -279,6 +277,7 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/string_merger.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/ypath_designated_consumer.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/depth_limiting_yson_consumer.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/list_verb_lazy_yson_consumer.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/attributes_stripper.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/attribute_consumer.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/helpers.cpp @@ -369,6 +368,7 @@ target_link_libraries(yt-yt-core.global PUBLIC ) target_sources(yt-yt-core.global PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log_manager.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/assert.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/guid.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/ref_tracked.cpp diff --git a/yt/yt/core/CMakeLists.linux-x86_64.txt b/yt/yt/core/CMakeLists.linux-x86_64.txt index 66f859aadc63..b9a3d369147d 100644 --- a/yt/yt/core/CMakeLists.linux-x86_64.txt +++ b/yt/yt/core/CMakeLists.linux-x86_64.txt @@ -131,7 +131,7 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/thread_pool.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/throughput_throttler.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/two_level_fair_share_thread_pool.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/recurring_executor_base.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/retrying_periodic_executor.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/scheduled_executor.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/crypto/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/crypto/crypto.cpp @@ -140,7 +140,6 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/formatter.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/fluent_log.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log_manager.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/logger_owner.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/serializable_logger.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/stream_output.cpp @@ -151,7 +150,6 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/zstd_compression.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/arithmetic_formula.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/backoff_strategy.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/backoff_strategy_config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bitmap.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bit_packed_unsigned_vector.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bit_packing.cpp @@ -280,6 +278,7 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/string_merger.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/ypath_designated_consumer.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/depth_limiting_yson_consumer.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/list_verb_lazy_yson_consumer.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/attributes_stripper.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/attribute_consumer.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/helpers.cpp @@ -371,6 +370,7 @@ target_link_libraries(yt-yt-core.global PUBLIC ) target_sources(yt-yt-core.global PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log_manager.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/assert.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/guid.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/ref_tracked.cpp diff --git a/yt/yt/core/CMakeLists.windows-x86_64.txt b/yt/yt/core/CMakeLists.windows-x86_64.txt index 6c965d6cbf17..0ecf60c88904 100644 --- a/yt/yt/core/CMakeLists.windows-x86_64.txt +++ b/yt/yt/core/CMakeLists.windows-x86_64.txt @@ -9,8 +9,6 @@ add_subdirectory(http) add_subdirectory(https) add_subdirectory(misc) -add_subdirectory(rpc) -add_subdirectory(service_discovery) add_library(yt-yt-core) target_compile_options(yt-yt-core PRIVATE @@ -129,7 +127,7 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/thread_pool.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/throughput_throttler.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/two_level_fair_share_thread_pool.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/recurring_executor_base.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/retrying_periodic_executor.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/concurrency/scheduled_executor.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/crypto/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/crypto/crypto.cpp @@ -138,7 +136,6 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/formatter.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/fluent_log.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log_manager.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/logger_owner.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/serializable_logger.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/stream_output.cpp @@ -149,7 +146,6 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/zstd_compression.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/arithmetic_formula.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/backoff_strategy.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/backoff_strategy_config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bitmap.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bit_packed_unsigned_vector.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/bit_packing.cpp @@ -278,6 +274,7 @@ target_sources(yt-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/string_merger.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/ypath_designated_consumer.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/depth_limiting_yson_consumer.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/list_verb_lazy_yson_consumer.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/yson/attributes_stripper.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/attribute_consumer.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/ytree/helpers.cpp @@ -367,6 +364,7 @@ target_link_libraries(yt-yt-core.global PUBLIC ) target_sources(yt-yt-core.global PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/logging/log_manager.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/assert.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/guid.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/misc/ref_tracked.cpp diff --git a/yt/yt/core/http/CMakeLists.darwin-arm64.txt b/yt/yt/core/http/CMakeLists.darwin-arm64.txt index 92bee16f81be..1e2c6230cb37 100644 --- a/yt/yt/core/http/CMakeLists.darwin-arm64.txt +++ b/yt/yt/core/http/CMakeLists.darwin-arm64.txt @@ -14,17 +14,20 @@ target_compile_options(yt-core-http PRIVATE target_link_libraries(yt-core-http PUBLIC contrib-libs-cxxsupp yutil + cpp-blockcodecs-core yt-yt-core contrib-restricted-http-parser ) target_sources(yt-core-http PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/http/client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/http/compression.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/connection_pool.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/connection_reuse_helpers.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/http/helpers.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/http.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/retrying_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/server.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/stream.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/http/helpers.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/http/compression_opensource.cpp ) diff --git a/yt/yt/core/http/CMakeLists.darwin-x86_64.txt b/yt/yt/core/http/CMakeLists.darwin-x86_64.txt index 92bee16f81be..1e2c6230cb37 100644 --- a/yt/yt/core/http/CMakeLists.darwin-x86_64.txt +++ b/yt/yt/core/http/CMakeLists.darwin-x86_64.txt @@ -14,17 +14,20 @@ target_compile_options(yt-core-http PRIVATE target_link_libraries(yt-core-http PUBLIC contrib-libs-cxxsupp yutil + cpp-blockcodecs-core yt-yt-core contrib-restricted-http-parser ) target_sources(yt-core-http PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/http/client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/http/compression.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/connection_pool.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/connection_reuse_helpers.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/http/helpers.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/http.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/retrying_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/server.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/stream.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/http/helpers.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/http/compression_opensource.cpp ) diff --git a/yt/yt/core/http/CMakeLists.linux-aarch64.txt b/yt/yt/core/http/CMakeLists.linux-aarch64.txt index 26808f57201e..0beecf51829d 100644 --- a/yt/yt/core/http/CMakeLists.linux-aarch64.txt +++ b/yt/yt/core/http/CMakeLists.linux-aarch64.txt @@ -15,17 +15,20 @@ target_link_libraries(yt-core-http PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + cpp-blockcodecs-core yt-yt-core contrib-restricted-http-parser ) target_sources(yt-core-http PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/http/client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/http/compression.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/connection_pool.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/connection_reuse_helpers.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/http/helpers.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/http.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/retrying_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/server.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/stream.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/http/helpers.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/http/compression_opensource.cpp ) diff --git a/yt/yt/core/http/CMakeLists.linux-x86_64.txt b/yt/yt/core/http/CMakeLists.linux-x86_64.txt index 26808f57201e..0beecf51829d 100644 --- a/yt/yt/core/http/CMakeLists.linux-x86_64.txt +++ b/yt/yt/core/http/CMakeLists.linux-x86_64.txt @@ -15,17 +15,20 @@ target_link_libraries(yt-core-http PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + cpp-blockcodecs-core yt-yt-core contrib-restricted-http-parser ) target_sources(yt-core-http PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/http/client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/http/compression.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/connection_pool.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/connection_reuse_helpers.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/http/helpers.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/http.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/retrying_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/server.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/stream.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/http/helpers.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/http/compression_opensource.cpp ) diff --git a/yt/yt/core/http/CMakeLists.windows-x86_64.txt b/yt/yt/core/http/CMakeLists.windows-x86_64.txt index 3a283cbd21f9..be289e0c2e51 100644 --- a/yt/yt/core/http/CMakeLists.windows-x86_64.txt +++ b/yt/yt/core/http/CMakeLists.windows-x86_64.txt @@ -11,17 +11,20 @@ add_library(yt-core-http) target_link_libraries(yt-core-http PUBLIC contrib-libs-cxxsupp yutil + cpp-blockcodecs-core yt-yt-core contrib-restricted-http-parser ) target_sources(yt-core-http PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/http/client.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/http/compression.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/connection_pool.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/connection_reuse_helpers.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/http/helpers.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/http.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/retrying_client.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/server.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/http/stream.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/core/http/helpers.cpp + ${CMAKE_SOURCE_DIR}/yt/yt/core/http/compression_opensource.cpp ) diff --git a/yt/yt/core/rpc/CMakeLists.linux-aarch64.txt b/yt/yt/core/rpc/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..68ea682099d0 --- /dev/null +++ b/yt/yt/core/rpc/CMakeLists.linux-aarch64.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(grpc) diff --git a/yt/yt/core/rpc/CMakeLists.linux-x86_64.txt b/yt/yt/core/rpc/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..68ea682099d0 --- /dev/null +++ b/yt/yt/core/rpc/CMakeLists.linux-x86_64.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(grpc) diff --git a/yt/yt/core/rpc/CMakeLists.txt b/yt/yt/core/rpc/CMakeLists.txt index 68ea682099d0..d6c5c0bbeb44 100644 --- a/yt/yt/core/rpc/CMakeLists.txt +++ b/yt/yt/core/rpc/CMakeLists.txt @@ -6,4 +6,8 @@ # original buildsystem will not be accepted. -add_subdirectory(grpc) +if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-aarch64.txt) +endif() diff --git a/yt/yt/core/rpc/grpc/CMakeLists.linux-aarch64.txt b/yt/yt/core/rpc/grpc/CMakeLists.linux-aarch64.txt index 5f274b5b3ea6..0a33b013e88e 100644 --- a/yt/yt/core/rpc/grpc/CMakeLists.linux-aarch64.txt +++ b/yt/yt/core/rpc/grpc/CMakeLists.linux-aarch64.txt @@ -42,6 +42,7 @@ target_proto_messages(core-rpc-grpc PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/grpc/proto/grpc.proto ) target_sources(core-rpc-grpc PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/core/rpc/grpc/proto/grpc.pb.h ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/grpc/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/grpc/public.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/grpc/dispatcher.cpp diff --git a/yt/yt/core/rpc/grpc/CMakeLists.linux-x86_64.txt b/yt/yt/core/rpc/grpc/CMakeLists.linux-x86_64.txt index 5f274b5b3ea6..0a33b013e88e 100644 --- a/yt/yt/core/rpc/grpc/CMakeLists.linux-x86_64.txt +++ b/yt/yt/core/rpc/grpc/CMakeLists.linux-x86_64.txt @@ -42,6 +42,7 @@ target_proto_messages(core-rpc-grpc PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/grpc/proto/grpc.proto ) target_sources(core-rpc-grpc PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/core/rpc/grpc/proto/grpc.pb.h ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/grpc/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/grpc/public.cpp ${CMAKE_SOURCE_DIR}/yt/yt/core/rpc/grpc/dispatcher.cpp diff --git a/yt/yt/core/rpc/grpc/CMakeLists.txt b/yt/yt/core/rpc/grpc/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/yt/yt/core/rpc/grpc/CMakeLists.txt +++ b/yt/yt/core/rpc/grpc/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/yt/yt/core/service_discovery/CMakeLists.linux-aarch64.txt b/yt/yt/core/service_discovery/CMakeLists.linux-aarch64.txt new file mode 100644 index 000000000000..7f1d154d54ba --- /dev/null +++ b/yt/yt/core/service_discovery/CMakeLists.linux-aarch64.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(yp) diff --git a/yt/yt/core/service_discovery/CMakeLists.linux-x86_64.txt b/yt/yt/core/service_discovery/CMakeLists.linux-x86_64.txt new file mode 100644 index 000000000000..7f1d154d54ba --- /dev/null +++ b/yt/yt/core/service_discovery/CMakeLists.linux-x86_64.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(yp) diff --git a/yt/yt/core/service_discovery/CMakeLists.txt b/yt/yt/core/service_discovery/CMakeLists.txt index 7f1d154d54ba..d6c5c0bbeb44 100644 --- a/yt/yt/core/service_discovery/CMakeLists.txt +++ b/yt/yt/core/service_discovery/CMakeLists.txt @@ -6,4 +6,8 @@ # original buildsystem will not be accepted. -add_subdirectory(yp) +if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-x86_64.txt) +elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA) + include(CMakeLists.linux-aarch64.txt) +endif() diff --git a/yt/yt/core/service_discovery/yp/CMakeLists.txt b/yt/yt/core/service_discovery/yp/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/yt/yt/core/service_discovery/yp/CMakeLists.txt +++ b/yt/yt/core/service_discovery/yp/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/yt/yt/library/CMakeLists.darwin-arm64.txt b/yt/yt/library/CMakeLists.darwin-arm64.txt index a85455d5cbc5..d26f3bae2884 100644 --- a/yt/yt/library/CMakeLists.darwin-arm64.txt +++ b/yt/yt/library/CMakeLists.darwin-arm64.txt @@ -9,10 +9,8 @@ add_subdirectory(auth) add_subdirectory(decimal) add_subdirectory(erasure) -add_subdirectory(monitoring) add_subdirectory(numeric) add_subdirectory(profiling) -add_subdirectory(program) add_subdirectory(quantile_digest) add_subdirectory(re2) add_subdirectory(syncmap) diff --git a/yt/yt/library/CMakeLists.darwin-x86_64.txt b/yt/yt/library/CMakeLists.darwin-x86_64.txt index a85455d5cbc5..d26f3bae2884 100644 --- a/yt/yt/library/CMakeLists.darwin-x86_64.txt +++ b/yt/yt/library/CMakeLists.darwin-x86_64.txt @@ -9,10 +9,8 @@ add_subdirectory(auth) add_subdirectory(decimal) add_subdirectory(erasure) -add_subdirectory(monitoring) add_subdirectory(numeric) add_subdirectory(profiling) -add_subdirectory(program) add_subdirectory(quantile_digest) add_subdirectory(re2) add_subdirectory(syncmap) diff --git a/yt/yt/library/CMakeLists.windows-x86_64.txt b/yt/yt/library/CMakeLists.windows-x86_64.txt index eaf7bb9e34c3..20f7fe76faf9 100644 --- a/yt/yt/library/CMakeLists.windows-x86_64.txt +++ b/yt/yt/library/CMakeLists.windows-x86_64.txt @@ -6,9 +6,7 @@ # original buildsystem will not be accepted. -add_subdirectory(monitoring) add_subdirectory(profiling) -add_subdirectory(program) add_subdirectory(syncmap) add_subdirectory(tracing) add_subdirectory(tvm) diff --git a/yt/yt/library/monitoring/CMakeLists.txt b/yt/yt/library/monitoring/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/yt/yt/library/monitoring/CMakeLists.txt +++ b/yt/yt/library/monitoring/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/yt/yt/library/profiling/CMakeLists.darwin-arm64.txt b/yt/yt/library/profiling/CMakeLists.darwin-arm64.txt index 0f1318b348d4..bafd86d3101a 100644 --- a/yt/yt/library/profiling/CMakeLists.darwin-arm64.txt +++ b/yt/yt/library/profiling/CMakeLists.darwin-arm64.txt @@ -6,10 +6,7 @@ # original buildsystem will not be accepted. -add_subdirectory(perf) add_subdirectory(resource_tracker) -add_subdirectory(solomon) -add_subdirectory(tcmalloc) add_library(yt-library-profiling) target_compile_options(yt-library-profiling PRIVATE diff --git a/yt/yt/library/profiling/CMakeLists.darwin-x86_64.txt b/yt/yt/library/profiling/CMakeLists.darwin-x86_64.txt index 0f1318b348d4..bafd86d3101a 100644 --- a/yt/yt/library/profiling/CMakeLists.darwin-x86_64.txt +++ b/yt/yt/library/profiling/CMakeLists.darwin-x86_64.txt @@ -6,10 +6,7 @@ # original buildsystem will not be accepted. -add_subdirectory(perf) add_subdirectory(resource_tracker) -add_subdirectory(solomon) -add_subdirectory(tcmalloc) add_library(yt-library-profiling) target_compile_options(yt-library-profiling PRIVATE diff --git a/yt/yt/library/profiling/CMakeLists.windows-x86_64.txt b/yt/yt/library/profiling/CMakeLists.windows-x86_64.txt index 34e12beaad46..6a6f1a6dde8b 100644 --- a/yt/yt/library/profiling/CMakeLists.windows-x86_64.txt +++ b/yt/yt/library/profiling/CMakeLists.windows-x86_64.txt @@ -6,10 +6,7 @@ # original buildsystem will not be accepted. -add_subdirectory(perf) add_subdirectory(resource_tracker) -add_subdirectory(solomon) -add_subdirectory(tcmalloc) add_library(yt-library-profiling) target_link_libraries(yt-library-profiling PUBLIC diff --git a/yt/yt/library/profiling/perf/CMakeLists.txt b/yt/yt/library/profiling/perf/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/yt/yt/library/profiling/perf/CMakeLists.txt +++ b/yt/yt/library/profiling/perf/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/yt/yt/library/profiling/solomon/CMakeLists.linux-aarch64.txt b/yt/yt/library/profiling/solomon/CMakeLists.linux-aarch64.txt index 57e8fb3c6e6a..424b763eccce 100644 --- a/yt/yt/library/profiling/solomon/CMakeLists.linux-aarch64.txt +++ b/yt/yt/library/profiling/solomon/CMakeLists.linux-aarch64.txt @@ -42,6 +42,7 @@ target_proto_messages(library-profiling-solomon PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/sensor_dump.proto ) target_sources(library-profiling-solomon PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/library/profiling/solomon/sensor_dump.pb.h ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/cube.cpp ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/exporter.cpp ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/percpu.cpp diff --git a/yt/yt/library/profiling/solomon/CMakeLists.linux-x86_64.txt b/yt/yt/library/profiling/solomon/CMakeLists.linux-x86_64.txt index 57e8fb3c6e6a..424b763eccce 100644 --- a/yt/yt/library/profiling/solomon/CMakeLists.linux-x86_64.txt +++ b/yt/yt/library/profiling/solomon/CMakeLists.linux-x86_64.txt @@ -42,6 +42,7 @@ target_proto_messages(library-profiling-solomon PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/sensor_dump.proto ) target_sources(library-profiling-solomon PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/library/profiling/solomon/sensor_dump.pb.h ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/cube.cpp ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/exporter.cpp ${CMAKE_SOURCE_DIR}/yt/yt/library/profiling/solomon/percpu.cpp diff --git a/yt/yt/library/profiling/solomon/CMakeLists.txt b/yt/yt/library/profiling/solomon/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/yt/yt/library/profiling/solomon/CMakeLists.txt +++ b/yt/yt/library/profiling/solomon/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/yt/yt/library/profiling/tcmalloc/CMakeLists.txt b/yt/yt/library/profiling/tcmalloc/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/yt/yt/library/profiling/tcmalloc/CMakeLists.txt +++ b/yt/yt/library/profiling/tcmalloc/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/yt/yt/library/program/CMakeLists.linux-aarch64.txt b/yt/yt/library/program/CMakeLists.linux-aarch64.txt index 7c15fb8b7dcb..7fb1fadf4026 100644 --- a/yt/yt/library/program/CMakeLists.linux-aarch64.txt +++ b/yt/yt/library/program/CMakeLists.linux-aarch64.txt @@ -26,6 +26,7 @@ target_link_libraries(yt-library-program PUBLIC cpp-yt-mlock cpp-yt-stockpile cpp-yt-string + cpp-getopt-small ) target_sources(yt-library-program PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/library/program/build_attributes.cpp diff --git a/yt/yt/library/program/CMakeLists.linux-x86_64.txt b/yt/yt/library/program/CMakeLists.linux-x86_64.txt index 7c15fb8b7dcb..7fb1fadf4026 100644 --- a/yt/yt/library/program/CMakeLists.linux-x86_64.txt +++ b/yt/yt/library/program/CMakeLists.linux-x86_64.txt @@ -26,6 +26,7 @@ target_link_libraries(yt-library-program PUBLIC cpp-yt-mlock cpp-yt-stockpile cpp-yt-string + cpp-getopt-small ) target_sources(yt-library-program PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/library/program/build_attributes.cpp diff --git a/yt/yt/library/program/CMakeLists.txt b/yt/yt/library/program/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/yt/yt/library/program/CMakeLists.txt +++ b/yt/yt/library/program/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/yt/yt/library/quantile_digest/CMakeLists.darwin-arm64.txt b/yt/yt/library/quantile_digest/CMakeLists.darwin-arm64.txt index ceac4e685a65..11ec841ff259 100644 --- a/yt/yt/library/quantile_digest/CMakeLists.darwin-arm64.txt +++ b/yt/yt/library/quantile_digest/CMakeLists.darwin-arm64.txt @@ -35,6 +35,7 @@ target_proto_messages(yt-library-quantile_digest PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/library/quantile_digest/proto/quantile_digest.proto ) target_sources(yt-library-quantile_digest PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/library/quantile_digest/proto/quantile_digest.pb.h ${CMAKE_SOURCE_DIR}/yt/yt/library/quantile_digest/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/library/quantile_digest/quantile_digest.cpp ) diff --git a/yt/yt/library/quantile_digest/CMakeLists.darwin-x86_64.txt b/yt/yt/library/quantile_digest/CMakeLists.darwin-x86_64.txt index ceac4e685a65..11ec841ff259 100644 --- a/yt/yt/library/quantile_digest/CMakeLists.darwin-x86_64.txt +++ b/yt/yt/library/quantile_digest/CMakeLists.darwin-x86_64.txt @@ -35,6 +35,7 @@ target_proto_messages(yt-library-quantile_digest PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/library/quantile_digest/proto/quantile_digest.proto ) target_sources(yt-library-quantile_digest PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/library/quantile_digest/proto/quantile_digest.pb.h ${CMAKE_SOURCE_DIR}/yt/yt/library/quantile_digest/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/library/quantile_digest/quantile_digest.cpp ) diff --git a/yt/yt/library/quantile_digest/CMakeLists.linux-aarch64.txt b/yt/yt/library/quantile_digest/CMakeLists.linux-aarch64.txt index c0f1ecf93230..9605c37b0f5e 100644 --- a/yt/yt/library/quantile_digest/CMakeLists.linux-aarch64.txt +++ b/yt/yt/library/quantile_digest/CMakeLists.linux-aarch64.txt @@ -36,6 +36,7 @@ target_proto_messages(yt-library-quantile_digest PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/library/quantile_digest/proto/quantile_digest.proto ) target_sources(yt-library-quantile_digest PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/library/quantile_digest/proto/quantile_digest.pb.h ${CMAKE_SOURCE_DIR}/yt/yt/library/quantile_digest/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/library/quantile_digest/quantile_digest.cpp ) diff --git a/yt/yt/library/quantile_digest/CMakeLists.linux-x86_64.txt b/yt/yt/library/quantile_digest/CMakeLists.linux-x86_64.txt index c0f1ecf93230..9605c37b0f5e 100644 --- a/yt/yt/library/quantile_digest/CMakeLists.linux-x86_64.txt +++ b/yt/yt/library/quantile_digest/CMakeLists.linux-x86_64.txt @@ -36,6 +36,7 @@ target_proto_messages(yt-library-quantile_digest PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/library/quantile_digest/proto/quantile_digest.proto ) target_sources(yt-library-quantile_digest PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/library/quantile_digest/proto/quantile_digest.pb.h ${CMAKE_SOURCE_DIR}/yt/yt/library/quantile_digest/config.cpp ${CMAKE_SOURCE_DIR}/yt/yt/library/quantile_digest/quantile_digest.cpp ) diff --git a/yt/yt/library/tracing/CMakeLists.darwin-arm64.txt b/yt/yt/library/tracing/CMakeLists.darwin-arm64.txt index 68eb83d1718d..54f67f1ec567 100644 --- a/yt/yt/library/tracing/CMakeLists.darwin-arm64.txt +++ b/yt/yt/library/tracing/CMakeLists.darwin-arm64.txt @@ -6,7 +6,6 @@ # original buildsystem will not be accepted. -add_subdirectory(jaeger) add_library(yt-library-tracing) target_compile_options(yt-library-tracing PRIVATE diff --git a/yt/yt/library/tracing/CMakeLists.darwin-x86_64.txt b/yt/yt/library/tracing/CMakeLists.darwin-x86_64.txt index 68eb83d1718d..54f67f1ec567 100644 --- a/yt/yt/library/tracing/CMakeLists.darwin-x86_64.txt +++ b/yt/yt/library/tracing/CMakeLists.darwin-x86_64.txt @@ -6,7 +6,6 @@ # original buildsystem will not be accepted. -add_subdirectory(jaeger) add_library(yt-library-tracing) target_compile_options(yt-library-tracing PRIVATE diff --git a/yt/yt/library/tracing/CMakeLists.windows-x86_64.txt b/yt/yt/library/tracing/CMakeLists.windows-x86_64.txt index 0adf7dc67a19..e33cbed391f1 100644 --- a/yt/yt/library/tracing/CMakeLists.windows-x86_64.txt +++ b/yt/yt/library/tracing/CMakeLists.windows-x86_64.txt @@ -6,7 +6,6 @@ # original buildsystem will not be accepted. -add_subdirectory(jaeger) add_library(yt-library-tracing) target_link_libraries(yt-library-tracing PUBLIC diff --git a/yt/yt/library/tracing/jaeger/CMakeLists.linux-aarch64.txt b/yt/yt/library/tracing/jaeger/CMakeLists.linux-aarch64.txt index 2dfa2a2dc20f..9e30012ee44c 100644 --- a/yt/yt/library/tracing/jaeger/CMakeLists.linux-aarch64.txt +++ b/yt/yt/library/tracing/jaeger/CMakeLists.linux-aarch64.txt @@ -36,6 +36,7 @@ target_proto_messages(library-tracing-jaeger PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/library/tracing/jaeger/model.proto ) target_sources(library-tracing-jaeger PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/library/tracing/jaeger/model.pb.h ${CMAKE_SOURCE_DIR}/yt/yt/library/tracing/jaeger/sampler.cpp ) target_proto_addincls(library-tracing-jaeger diff --git a/yt/yt/library/tracing/jaeger/CMakeLists.linux-x86_64.txt b/yt/yt/library/tracing/jaeger/CMakeLists.linux-x86_64.txt index 2dfa2a2dc20f..9e30012ee44c 100644 --- a/yt/yt/library/tracing/jaeger/CMakeLists.linux-x86_64.txt +++ b/yt/yt/library/tracing/jaeger/CMakeLists.linux-x86_64.txt @@ -36,6 +36,7 @@ target_proto_messages(library-tracing-jaeger PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/library/tracing/jaeger/model.proto ) target_sources(library-tracing-jaeger PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/library/tracing/jaeger/model.pb.h ${CMAKE_SOURCE_DIR}/yt/yt/library/tracing/jaeger/sampler.cpp ) target_proto_addincls(library-tracing-jaeger diff --git a/yt/yt/library/tracing/jaeger/CMakeLists.txt b/yt/yt/library/tracing/jaeger/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/yt/yt/library/tracing/jaeger/CMakeLists.txt +++ b/yt/yt/library/tracing/jaeger/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/yt/yt/library/tvm/CMakeLists.darwin-arm64.txt b/yt/yt/library/tvm/CMakeLists.darwin-arm64.txt index 5f6d73b807ff..f92c150fd39d 100644 --- a/yt/yt/library/tvm/CMakeLists.darwin-arm64.txt +++ b/yt/yt/library/tvm/CMakeLists.darwin-arm64.txt @@ -6,7 +6,6 @@ # original buildsystem will not be accepted. -add_subdirectory(service) add_library(yt-library-tvm) target_compile_options(yt-library-tvm PRIVATE diff --git a/yt/yt/library/tvm/CMakeLists.darwin-x86_64.txt b/yt/yt/library/tvm/CMakeLists.darwin-x86_64.txt index 5f6d73b807ff..f92c150fd39d 100644 --- a/yt/yt/library/tvm/CMakeLists.darwin-x86_64.txt +++ b/yt/yt/library/tvm/CMakeLists.darwin-x86_64.txt @@ -6,7 +6,6 @@ # original buildsystem will not be accepted. -add_subdirectory(service) add_library(yt-library-tvm) target_compile_options(yt-library-tvm PRIVATE diff --git a/yt/yt/library/tvm/CMakeLists.windows-x86_64.txt b/yt/yt/library/tvm/CMakeLists.windows-x86_64.txt index 6f1972e2a8de..5b92f509ce56 100644 --- a/yt/yt/library/tvm/CMakeLists.windows-x86_64.txt +++ b/yt/yt/library/tvm/CMakeLists.windows-x86_64.txt @@ -6,7 +6,6 @@ # original buildsystem will not be accepted. -add_subdirectory(service) add_library(yt-library-tvm) target_link_libraries(yt-library-tvm PUBLIC diff --git a/yt/yt/library/tvm/service/CMakeLists.txt b/yt/yt/library/tvm/service/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/yt/yt/library/tvm/service/CMakeLists.txt +++ b/yt/yt/library/tvm/service/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/yt/yt/library/ytprof/CMakeLists.darwin-arm64.txt b/yt/yt/library/ytprof/CMakeLists.darwin-arm64.txt index ac3d970f128b..dbfb934baea2 100644 --- a/yt/yt/library/ytprof/CMakeLists.darwin-arm64.txt +++ b/yt/yt/library/ytprof/CMakeLists.darwin-arm64.txt @@ -7,35 +7,3 @@ add_subdirectory(api) -add_subdirectory(proto) - -add_library(yt-library-ytprof) -target_compile_options(yt-library-ytprof PRIVATE - -Wdeprecated-this-capture - -DYTPROF_BUILD_TYPE="RELEASE" -) -target_link_libraries(yt-library-ytprof PUBLIC - contrib-libs-cxxsupp - yutil - cpp-yt-memory - cpp-yt-threading - backtrace-cursors-interop - backtrace-cursors-frame_pointer - backtrace-cursors-libunwind - library-ytprof-api - library-ytprof-proto - contrib-libs-libunwind - libs-tcmalloc-malloc_extension - library-cpp-svnversion - yt-yt-core -) -target_sources(yt-library-ytprof PRIVATE - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/signal_safe_profiler.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/cpu_profiler.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/heap_profiler.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/spinlock_profiler.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/profile.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/build_info.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/external_pprof.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/symbolize_other.cpp -) diff --git a/yt/yt/library/ytprof/CMakeLists.darwin-x86_64.txt b/yt/yt/library/ytprof/CMakeLists.darwin-x86_64.txt index ac3d970f128b..dbfb934baea2 100644 --- a/yt/yt/library/ytprof/CMakeLists.darwin-x86_64.txt +++ b/yt/yt/library/ytprof/CMakeLists.darwin-x86_64.txt @@ -7,35 +7,3 @@ add_subdirectory(api) -add_subdirectory(proto) - -add_library(yt-library-ytprof) -target_compile_options(yt-library-ytprof PRIVATE - -Wdeprecated-this-capture - -DYTPROF_BUILD_TYPE="RELEASE" -) -target_link_libraries(yt-library-ytprof PUBLIC - contrib-libs-cxxsupp - yutil - cpp-yt-memory - cpp-yt-threading - backtrace-cursors-interop - backtrace-cursors-frame_pointer - backtrace-cursors-libunwind - library-ytprof-api - library-ytprof-proto - contrib-libs-libunwind - libs-tcmalloc-malloc_extension - library-cpp-svnversion - yt-yt-core -) -target_sources(yt-library-ytprof PRIVATE - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/signal_safe_profiler.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/cpu_profiler.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/heap_profiler.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/spinlock_profiler.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/profile.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/build_info.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/external_pprof.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/symbolize_other.cpp -) diff --git a/yt/yt/library/ytprof/CMakeLists.windows-x86_64.txt b/yt/yt/library/ytprof/CMakeLists.windows-x86_64.txt index ec5652c9e981..dbfb934baea2 100644 --- a/yt/yt/library/ytprof/CMakeLists.windows-x86_64.txt +++ b/yt/yt/library/ytprof/CMakeLists.windows-x86_64.txt @@ -7,34 +7,3 @@ add_subdirectory(api) -add_subdirectory(proto) - -add_library(yt-library-ytprof) -target_compile_options(yt-library-ytprof PRIVATE - -DYTPROF_BUILD_TYPE="RELEASE" -) -target_link_libraries(yt-library-ytprof PUBLIC - contrib-libs-cxxsupp - yutil - cpp-yt-memory - cpp-yt-threading - backtrace-cursors-interop - backtrace-cursors-frame_pointer - backtrace-cursors-libunwind - library-ytprof-api - library-ytprof-proto - contrib-libs-libunwind - libs-tcmalloc-malloc_extension - library-cpp-svnversion - yt-yt-core -) -target_sources(yt-library-ytprof PRIVATE - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/signal_safe_profiler.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/cpu_profiler.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/heap_profiler.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/spinlock_profiler.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/profile.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/build_info.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/external_pprof.cpp - ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/symbolize_other.cpp -) diff --git a/yt/yt/library/ytprof/proto/CMakeLists.linux-aarch64.txt b/yt/yt/library/ytprof/proto/CMakeLists.linux-aarch64.txt index d16987cc1d8d..608e375abf31 100644 --- a/yt/yt/library/ytprof/proto/CMakeLists.linux-aarch64.txt +++ b/yt/yt/library/ytprof/proto/CMakeLists.linux-aarch64.txt @@ -32,6 +32,9 @@ target_link_libraries(library-ytprof-proto PUBLIC target_proto_messages(library-ytprof-proto PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/proto/profile.proto ) +target_sources(library-ytprof-proto PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/library/ytprof/proto/profile.pb.h +) target_proto_addincls(library-ytprof-proto ./yt ${CMAKE_SOURCE_DIR}/yt diff --git a/yt/yt/library/ytprof/proto/CMakeLists.linux-x86_64.txt b/yt/yt/library/ytprof/proto/CMakeLists.linux-x86_64.txt index d16987cc1d8d..608e375abf31 100644 --- a/yt/yt/library/ytprof/proto/CMakeLists.linux-x86_64.txt +++ b/yt/yt/library/ytprof/proto/CMakeLists.linux-x86_64.txt @@ -32,6 +32,9 @@ target_link_libraries(library-ytprof-proto PUBLIC target_proto_messages(library-ytprof-proto PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt/library/ytprof/proto/profile.proto ) +target_sources(library-ytprof-proto PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt/library/ytprof/proto/profile.pb.h +) target_proto_addincls(library-ytprof-proto ./yt ${CMAKE_SOURCE_DIR}/yt diff --git a/yt/yt/library/ytprof/proto/CMakeLists.txt b/yt/yt/library/ytprof/proto/CMakeLists.txt index d863ebd18067..d6c5c0bbeb44 100644 --- a/yt/yt/library/ytprof/proto/CMakeLists.txt +++ b/yt/yt/library/ytprof/proto/CMakeLists.txt @@ -10,10 +10,4 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_ include(CMakeLists.linux-x86_64.txt) elseif (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 (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - include(CMakeLists.darwin-arm64.txt) -elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA) - include(CMakeLists.windows-x86_64.txt) endif() diff --git a/yt/yt_proto/yt/client/CMakeLists.darwin-arm64.txt b/yt/yt_proto/yt/client/CMakeLists.darwin-arm64.txt index bde6ffe9e08e..335bff11923a 100644 --- a/yt/yt_proto/yt/client/CMakeLists.darwin-arm64.txt +++ b/yt/yt_proto/yt/client/CMakeLists.darwin-arm64.txt @@ -246,6 +246,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(yt_proto-yt-client) target_include_directories(yt_proto-yt-client PUBLIC @@ -260,6 +272,7 @@ target_link_libraries(yt_proto-yt-client PUBLIC target_proto_messages(yt_proto-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/discovery_service.proto + ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/bundle_controller/proto/bundle_controller_service.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/cell_master/proto/cell_directory.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/chaos_client/proto/replication_card.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/chunk_client/proto/data_statistics.proto @@ -279,6 +292,29 @@ target_proto_messages(yt_proto-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/query_client/proto/query_statistics.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/misc/proto/workload.proto ) +target_sources(yt_proto-yt-client PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/discovery_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/bundle_controller/proto/bundle_controller_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/cell_master/proto/cell_directory.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chaos_client/proto/replication_card.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/data_statistics.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/chunk_meta.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/read_limit.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/chunk_spec.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/confirm_chunk_replica_info.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/discovery_client/proto/discovery_client_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/hive/proto/timestamp_map.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/hive/proto/cluster_directory.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/node_tracker_client/proto/node.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/node_tracker_client/proto/node_directory.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/table_chunk_format/proto/chunk_meta.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/table_chunk_format/proto/column_meta.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/table_chunk_format/proto/wire_protocol.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/transaction_client/proto/timestamp_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/query_client/proto/query_statistics.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/misc/proto/workload.pb.h +) target_proto_addincls(yt_proto-yt-client ./yt ${CMAKE_SOURCE_DIR}/yt diff --git a/yt/yt_proto/yt/client/CMakeLists.darwin-x86_64.txt b/yt/yt_proto/yt/client/CMakeLists.darwin-x86_64.txt index bde6ffe9e08e..335bff11923a 100644 --- a/yt/yt_proto/yt/client/CMakeLists.darwin-x86_64.txt +++ b/yt/yt_proto/yt/client/CMakeLists.darwin-x86_64.txt @@ -246,6 +246,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(yt_proto-yt-client) target_include_directories(yt_proto-yt-client PUBLIC @@ -260,6 +272,7 @@ target_link_libraries(yt_proto-yt-client PUBLIC target_proto_messages(yt_proto-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/discovery_service.proto + ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/bundle_controller/proto/bundle_controller_service.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/cell_master/proto/cell_directory.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/chaos_client/proto/replication_card.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/chunk_client/proto/data_statistics.proto @@ -279,6 +292,29 @@ target_proto_messages(yt_proto-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/query_client/proto/query_statistics.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/misc/proto/workload.proto ) +target_sources(yt_proto-yt-client PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/discovery_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/bundle_controller/proto/bundle_controller_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/cell_master/proto/cell_directory.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chaos_client/proto/replication_card.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/data_statistics.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/chunk_meta.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/read_limit.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/chunk_spec.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/confirm_chunk_replica_info.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/discovery_client/proto/discovery_client_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/hive/proto/timestamp_map.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/hive/proto/cluster_directory.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/node_tracker_client/proto/node.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/node_tracker_client/proto/node_directory.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/table_chunk_format/proto/chunk_meta.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/table_chunk_format/proto/column_meta.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/table_chunk_format/proto/wire_protocol.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/transaction_client/proto/timestamp_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/query_client/proto/query_statistics.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/misc/proto/workload.pb.h +) target_proto_addincls(yt_proto-yt-client ./yt ${CMAKE_SOURCE_DIR}/yt diff --git a/yt/yt_proto/yt/client/CMakeLists.linux-aarch64.txt b/yt/yt_proto/yt/client/CMakeLists.linux-aarch64.txt index b21f7290e77c..6d35671b7a58 100644 --- a/yt/yt_proto/yt/client/CMakeLists.linux-aarch64.txt +++ b/yt/yt_proto/yt/client/CMakeLists.linux-aarch64.txt @@ -246,6 +246,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(yt_proto-yt-client) target_include_directories(yt_proto-yt-client PUBLIC @@ -261,6 +273,7 @@ target_link_libraries(yt_proto-yt-client PUBLIC target_proto_messages(yt_proto-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/discovery_service.proto + ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/bundle_controller/proto/bundle_controller_service.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/cell_master/proto/cell_directory.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/chaos_client/proto/replication_card.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/chunk_client/proto/data_statistics.proto @@ -280,6 +293,29 @@ target_proto_messages(yt_proto-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/query_client/proto/query_statistics.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/misc/proto/workload.proto ) +target_sources(yt_proto-yt-client PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/discovery_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/bundle_controller/proto/bundle_controller_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/cell_master/proto/cell_directory.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chaos_client/proto/replication_card.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/data_statistics.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/chunk_meta.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/read_limit.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/chunk_spec.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/confirm_chunk_replica_info.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/discovery_client/proto/discovery_client_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/hive/proto/timestamp_map.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/hive/proto/cluster_directory.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/node_tracker_client/proto/node.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/node_tracker_client/proto/node_directory.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/table_chunk_format/proto/chunk_meta.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/table_chunk_format/proto/column_meta.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/table_chunk_format/proto/wire_protocol.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/transaction_client/proto/timestamp_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/query_client/proto/query_statistics.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/misc/proto/workload.pb.h +) target_proto_addincls(yt_proto-yt-client ./yt ${CMAKE_SOURCE_DIR}/yt diff --git a/yt/yt_proto/yt/client/CMakeLists.linux-x86_64.txt b/yt/yt_proto/yt/client/CMakeLists.linux-x86_64.txt index b21f7290e77c..6d35671b7a58 100644 --- a/yt/yt_proto/yt/client/CMakeLists.linux-x86_64.txt +++ b/yt/yt_proto/yt/client/CMakeLists.linux-x86_64.txt @@ -246,6 +246,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(yt_proto-yt-client) target_include_directories(yt_proto-yt-client PUBLIC @@ -261,6 +273,7 @@ target_link_libraries(yt_proto-yt-client PUBLIC target_proto_messages(yt_proto-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/discovery_service.proto + ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/bundle_controller/proto/bundle_controller_service.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/cell_master/proto/cell_directory.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/chaos_client/proto/replication_card.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/chunk_client/proto/data_statistics.proto @@ -280,6 +293,29 @@ target_proto_messages(yt_proto-yt-client PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/query_client/proto/query_statistics.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/client/misc/proto/workload.proto ) +target_sources(yt_proto-yt-client PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/api/rpc_proxy/proto/discovery_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/bundle_controller/proto/bundle_controller_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/cell_master/proto/cell_directory.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chaos_client/proto/replication_card.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/data_statistics.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/chunk_meta.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/read_limit.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/chunk_spec.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/chunk_client/proto/confirm_chunk_replica_info.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/discovery_client/proto/discovery_client_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/hive/proto/timestamp_map.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/hive/proto/cluster_directory.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/node_tracker_client/proto/node.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/node_tracker_client/proto/node_directory.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/table_chunk_format/proto/chunk_meta.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/table_chunk_format/proto/column_meta.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/table_chunk_format/proto/wire_protocol.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/transaction_client/proto/timestamp_service.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/query_client/proto/query_statistics.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/client/misc/proto/workload.pb.h +) target_proto_addincls(yt_proto-yt-client ./yt ${CMAKE_SOURCE_DIR}/yt diff --git a/yt/yt_proto/yt/core/CMakeLists.darwin-arm64.txt b/yt/yt_proto/yt/core/CMakeLists.darwin-arm64.txt index 14da9a86faa9..f6462389be7d 100644 --- a/yt/yt_proto/yt/core/CMakeLists.darwin-arm64.txt +++ b/yt/yt_proto/yt/core/CMakeLists.darwin-arm64.txt @@ -187,6 +187,21 @@ target_proto_messages(yt_proto-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/request_complexity_limits.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/ypath.proto ) +target_sources(yt_proto-yt-core PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/crypto/proto/crypto.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/bloom_filter.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/error.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/guid.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/protobuf_helpers.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/tracing/proto/span.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/tracing/proto/tracing_ext.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/bus/proto/bus.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/rpc/proto/rpc.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/yson/proto/protobuf_interop.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/ytree/proto/attributes.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/ytree/proto/request_complexity_limits.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/ytree/proto/ypath.pb.h +) target_proto_addincls(yt_proto-yt-core ./yt ${CMAKE_SOURCE_DIR}/yt diff --git a/yt/yt_proto/yt/core/CMakeLists.darwin-x86_64.txt b/yt/yt_proto/yt/core/CMakeLists.darwin-x86_64.txt index 14da9a86faa9..f6462389be7d 100644 --- a/yt/yt_proto/yt/core/CMakeLists.darwin-x86_64.txt +++ b/yt/yt_proto/yt/core/CMakeLists.darwin-x86_64.txt @@ -187,6 +187,21 @@ target_proto_messages(yt_proto-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/request_complexity_limits.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/ypath.proto ) +target_sources(yt_proto-yt-core PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/crypto/proto/crypto.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/bloom_filter.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/error.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/guid.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/protobuf_helpers.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/tracing/proto/span.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/tracing/proto/tracing_ext.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/bus/proto/bus.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/rpc/proto/rpc.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/yson/proto/protobuf_interop.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/ytree/proto/attributes.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/ytree/proto/request_complexity_limits.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/ytree/proto/ypath.pb.h +) target_proto_addincls(yt_proto-yt-core ./yt ${CMAKE_SOURCE_DIR}/yt diff --git a/yt/yt_proto/yt/core/CMakeLists.linux-aarch64.txt b/yt/yt_proto/yt/core/CMakeLists.linux-aarch64.txt index 8d49808dff74..289d242a783c 100644 --- a/yt/yt_proto/yt/core/CMakeLists.linux-aarch64.txt +++ b/yt/yt_proto/yt/core/CMakeLists.linux-aarch64.txt @@ -188,6 +188,21 @@ target_proto_messages(yt_proto-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/request_complexity_limits.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/ypath.proto ) +target_sources(yt_proto-yt-core PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/crypto/proto/crypto.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/bloom_filter.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/error.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/guid.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/protobuf_helpers.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/tracing/proto/span.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/tracing/proto/tracing_ext.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/bus/proto/bus.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/rpc/proto/rpc.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/yson/proto/protobuf_interop.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/ytree/proto/attributes.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/ytree/proto/request_complexity_limits.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/ytree/proto/ypath.pb.h +) target_proto_addincls(yt_proto-yt-core ./yt ${CMAKE_SOURCE_DIR}/yt diff --git a/yt/yt_proto/yt/core/CMakeLists.linux-x86_64.txt b/yt/yt_proto/yt/core/CMakeLists.linux-x86_64.txt index 8d49808dff74..289d242a783c 100644 --- a/yt/yt_proto/yt/core/CMakeLists.linux-x86_64.txt +++ b/yt/yt_proto/yt/core/CMakeLists.linux-x86_64.txt @@ -188,6 +188,21 @@ target_proto_messages(yt_proto-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/request_complexity_limits.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/ypath.proto ) +target_sources(yt_proto-yt-core PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/crypto/proto/crypto.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/bloom_filter.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/error.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/guid.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/protobuf_helpers.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/tracing/proto/span.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/tracing/proto/tracing_ext.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/bus/proto/bus.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/rpc/proto/rpc.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/yson/proto/protobuf_interop.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/ytree/proto/attributes.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/ytree/proto/request_complexity_limits.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/ytree/proto/ypath.pb.h +) target_proto_addincls(yt_proto-yt-core ./yt ${CMAKE_SOURCE_DIR}/yt diff --git a/yt/yt_proto/yt/core/CMakeLists.windows-x86_64.txt b/yt/yt_proto/yt/core/CMakeLists.windows-x86_64.txt index 14da9a86faa9..f6462389be7d 100644 --- a/yt/yt_proto/yt/core/CMakeLists.windows-x86_64.txt +++ b/yt/yt_proto/yt/core/CMakeLists.windows-x86_64.txt @@ -187,6 +187,21 @@ target_proto_messages(yt_proto-yt-core PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/request_complexity_limits.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/core/ytree/proto/ypath.proto ) +target_sources(yt_proto-yt-core PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/crypto/proto/crypto.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/bloom_filter.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/error.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/guid.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/misc/proto/protobuf_helpers.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/tracing/proto/span.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/tracing/proto/tracing_ext.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/bus/proto/bus.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/rpc/proto/rpc.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/yson/proto/protobuf_interop.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/ytree/proto/attributes.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/ytree/proto/request_complexity_limits.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/core/ytree/proto/ypath.pb.h +) target_proto_addincls(yt_proto-yt-core ./yt ${CMAKE_SOURCE_DIR}/yt diff --git a/yt/yt_proto/yt/formats/CMakeLists.darwin-arm64.txt b/yt/yt_proto/yt/formats/CMakeLists.darwin-arm64.txt index 031fc7a562cf..c8666d0e9393 100644 --- a/yt/yt_proto/yt/formats/CMakeLists.darwin-arm64.txt +++ b/yt/yt_proto/yt/formats/CMakeLists.darwin-arm64.txt @@ -41,6 +41,10 @@ target_proto_messages(yt_proto-yt-formats PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/extension.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/yamr.proto ) +target_sources(yt_proto-yt-formats PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/formats/extension.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/formats/yamr.pb.h +) target_proto_addincls(yt_proto-yt-formats ./ ${CMAKE_SOURCE_DIR}/ diff --git a/yt/yt_proto/yt/formats/CMakeLists.darwin-x86_64.txt b/yt/yt_proto/yt/formats/CMakeLists.darwin-x86_64.txt index 031fc7a562cf..c8666d0e9393 100644 --- a/yt/yt_proto/yt/formats/CMakeLists.darwin-x86_64.txt +++ b/yt/yt_proto/yt/formats/CMakeLists.darwin-x86_64.txt @@ -41,6 +41,10 @@ target_proto_messages(yt_proto-yt-formats PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/extension.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/yamr.proto ) +target_sources(yt_proto-yt-formats PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/formats/extension.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/formats/yamr.pb.h +) target_proto_addincls(yt_proto-yt-formats ./ ${CMAKE_SOURCE_DIR}/ diff --git a/yt/yt_proto/yt/formats/CMakeLists.linux-aarch64.txt b/yt/yt_proto/yt/formats/CMakeLists.linux-aarch64.txt index b56285969352..0b9d88e2d879 100644 --- a/yt/yt_proto/yt/formats/CMakeLists.linux-aarch64.txt +++ b/yt/yt_proto/yt/formats/CMakeLists.linux-aarch64.txt @@ -42,6 +42,10 @@ target_proto_messages(yt_proto-yt-formats PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/extension.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/yamr.proto ) +target_sources(yt_proto-yt-formats PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/formats/extension.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/formats/yamr.pb.h +) target_proto_addincls(yt_proto-yt-formats ./ ${CMAKE_SOURCE_DIR}/ diff --git a/yt/yt_proto/yt/formats/CMakeLists.linux-x86_64.txt b/yt/yt_proto/yt/formats/CMakeLists.linux-x86_64.txt index b56285969352..0b9d88e2d879 100644 --- a/yt/yt_proto/yt/formats/CMakeLists.linux-x86_64.txt +++ b/yt/yt_proto/yt/formats/CMakeLists.linux-x86_64.txt @@ -42,6 +42,10 @@ target_proto_messages(yt_proto-yt-formats PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/extension.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/yamr.proto ) +target_sources(yt_proto-yt-formats PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/formats/extension.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/formats/yamr.pb.h +) target_proto_addincls(yt_proto-yt-formats ./ ${CMAKE_SOURCE_DIR}/ diff --git a/yt/yt_proto/yt/formats/CMakeLists.windows-x86_64.txt b/yt/yt_proto/yt/formats/CMakeLists.windows-x86_64.txt index 031fc7a562cf..c8666d0e9393 100644 --- a/yt/yt_proto/yt/formats/CMakeLists.windows-x86_64.txt +++ b/yt/yt_proto/yt/formats/CMakeLists.windows-x86_64.txt @@ -41,6 +41,10 @@ target_proto_messages(yt_proto-yt-formats PRIVATE ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/extension.proto ${CMAKE_SOURCE_DIR}/yt/yt_proto/yt/formats/yamr.proto ) +target_sources(yt_proto-yt-formats PRIVATE + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/formats/extension.pb.h + ${CMAKE_BINARY_DIR}/yt/yt_proto/yt/formats/yamr.pb.h +) target_proto_addincls(yt_proto-yt-formats ./ ${CMAKE_SOURCE_DIR}/